pax_global_header00006660000000000000000000000064151431013400014502gustar00rootroot0000000000000052 comment=626b88ce70edabb993bbee463f6c28ae2899af69 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/000077500000000000000000000000001514310134000211545ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/.gitignore000066400000000000000000000022071514310134000231450ustar00rootroot00000000000000bin include lib tags src/tags doc/src/*/*.aux doc/src/*/*.bbl doc/src/*/*.blg doc/src/*/*.dvi doc/src/*/*.log doc/src/*/*.out doc/src/*/*.toc doc/src/*/*scotch*.pdf doc/src/*/*scotch*.ps.gz doc/src/handson/h.ps doc/src/maint/m.ps doc/src/ptscotch/p.ps doc/src/scotch/s.ps src/Makefile.inc* src/check/* !src/check/*[.][ch] !src/check/*[.]f90.in src/check/test_scotch_graph_dump2.c !src/check/CMakeLists.txt !src/check/Makefile !src/check/data src/esmumps/*[.][ao] src/esmumps/*[.]so src/esmumps/common.h src/esmumps/test_esmumps src/esmumps/test_fax src/libscotch/*[.][ao] src/libscotch/*[.]so src/libscotch/dummysizes src/libscotch/parser_ll.c src/libscotch/parser_lh.h src/libscotch/parser_ly.h src/libscotch/parser_yy.c src/libscotch/ptdummysizes src/libscotch/scotch.h src/libscotch/scotchf.h src/libscotch/ptscotch.h src/libscotch/ptscotchf.h src/libscotch/y.output src/libscotchmetis/*[.][ao] src/libscotchmetis/*[.]so src/libscotchmetis/adm2dgr* !src/libscotchmetis/adm2dgr.[ch] src/libscotchmetis/metis.h src/libscotchmetis/metisf.h src/libscotchmetis/parmetis.h src/scotch/* !src/scotch/*[.][ch] !src/check/CMakeLists.txt !src/scotch/Makefile build*/ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/.gitlab-ci.yml000066400000000000000000000107731514310134000236200ustar00rootroot00000000000000--- stages: - build - test - sonar # JOB_INT: [ 32 | 64 | 32-64 ] # JOB_THREAD: [ n | c | k | s | m ] # JOB_DETERMINISTIC: [ n | d ] # JOB_DEBUG: [ n | a | f ] # JOB_RENAME: [ n | r ] .matrix_32: &matrix_32 parallel: matrix: - JOB_INT: [32, 32-64] JOB_THREAD: [n] JOB_DETERMINISTIC: [n] JOB_DEBUG: [n] JOB_RENAME: [n] - JOB_INT: [32-64] JOB_THREAD: [n, k] JOB_DETERMINISTIC: [d] JOB_DEBUG: [a] JOB_RENAME: [n] - JOB_INT: [32] JOB_THREAD: [n, c, m] JOB_DETERMINISTIC: [n] JOB_DEBUG: [f] JOB_RENAME: [n] .matrix_64: &matrix_64 parallel: matrix: - JOB_INT: [64] JOB_THREAD: [n] JOB_DETERMINISTIC: [n] JOB_DEBUG: [n] JOB_RENAME: [n] - JOB_INT: [64] JOB_THREAD: [n, c, s, m] JOB_DETERMINISTIC: [d] JOB_DEBUG: [a] JOB_RENAME: [n] - JOB_INT: [64] JOB_THREAD: [m] JOB_DETERMINISTIC: [n] JOB_DEBUG: [a] JOB_RENAME: [r] # Default cache .cache_default: &cache_default untracked: true when: 'always' # GNU Makefile pipeline ## Build .build_makefile: &build_makefile stage: build script: - ./ci/build_makefile.sh interruptible: true scotch_build_32: <<: *build_makefile tags: ['32bits'] cache: key: scotch32 $CI_NODE_INDEX policy: push <<: *cache_default <<: *matrix_32 scotch_build_64: <<: *build_makefile tags: ['64bits'] cache: key: scotch64 $CI_NODE_INDEX policy: push <<: *cache_default <<: *matrix_64 ## Test .test_makefile: &test_makefile stage: test artifacts: untracked: true expire_in: 15 days script: - ./ci/test_makefile.sh interruptible: true scotch_test_32: <<: *test_makefile tags: ['32bits'] cache: key: scotch32 $CI_NODE_INDEX policy: pull <<: *cache_default <<: *matrix_32 scotch_test_64: <<: *test_makefile tags: ['64bits'] cache: key: scotch64 $CI_NODE_INDEX policy: pull <<: *cache_default <<: *matrix_64 ## Sonarqube analysis if scheduled job scotch_sonar: rules: - if: $CI_PIPELINE_SOURCE == "schedule" stage: sonar tags: ['sonar'] script: - ci/analysis.sh - sonar-scanner -X > sonar.log allow_failure: true coverage: /^\s*lines:\s*\d+.\d+\%/ artifacts: paths: - analyzer_reports - sonar-project.properties - ./*.log - ./*.cov - ./*.xml reports: coverage_report: coverage_format: cobertura path: coverage.xml expire_in: 15 days # CMake pipeline (not done if scheduled) ## Specific rule: not triggered if scheduled pipeline (for CMake jobs, for example) .rule_noschedule: &rule_noschedule rules: - if: $CI_PIPELINE_SOURCE != "schedule" ## Build .build_cmake: &build_cmake <<: *rule_noschedule stage: build tags: ['cmake'] script: - ./ci/build_cmake.sh interruptible: true build_cmake_gcc: <<: *build_cmake variables: CC: "gcc" FC: "gfortran" cache: key: cmake_gcc policy: push <<: *cache_default build_cmake_clang: <<: *build_cmake variables: CC: "clang" FC: "gfortran" cache: key: cmake_clang policy: push <<: *cache_default build_cmake_intel: <<: *build_cmake tags: ['64bits'] variables: CC: "icx" FC: "gfortran" cache: key: cmake_intel policy: push <<: *cache_default build_cmake_pgi: <<: *build_cmake tags: ['64bits'] variables: CC: "pgcc" FC: "pgf90" cache: key: cmake_pgi policy: push <<: *cache_default ## Test .test_cmake: &test_cmake <<: *rule_noschedule stage: test tags: ['cmake'] script: - ./ci/test_cmake.sh artifacts: untracked: true reports: junit: report.xml expire_in: 15 days interruptible: true test_cmake_gcc: <<: *test_cmake needs: - build_cmake_gcc variables: CC: "gcc" FC: "gfortran" cache: key: cmake_gcc policy: pull <<: *cache_default test_cmake_clang: <<: *test_cmake needs: - build_cmake_clang variables: CC: "clang" FC: "gfortran" cache: key: cmake_clang policy: pull-push <<: *cache_default test_cmake_intel: <<: *test_cmake needs: - build_cmake_intel variables: CC: "icx" FC: "ifx" cache: key: cmake_intel policy: pull-push <<: *cache_default test_cmake_pgi: <<: *test_cmake needs: - build_cmake_pgi variables: CC: "pgcc" FC: "pgf90" cache: key: cmake_pgi policy: pull-push <<: *cache_default scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/CMakeLists.txt000066400000000000000000000134641514310134000237240ustar00rootroot00000000000000## Copyright 2014-2016,2021-2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Marc FUENTES ## ## Florent PRUVOST ## ## ## ## FUNCTION : Top-level CMake configuration file ## ## ## ## DATES : # Version 7.0 : from : 18 jan 2022 ## ## to 08 oct 2025 ## ## ## ############################################################ cmake_minimum_required(VERSION 3.10) project(SCOTCH LANGUAGES C) # Use C99 as C standard set(CMAKE_C_STANDARD 99) # Set MPI components depending on language support set(MPI_COMPONENTS C) # Add Fortran support option(BUILD_FORTRAN "Enable Fortran" ON) if(BUILD_FORTRAN) enable_language(Fortran) if(NOT CMAKE_Fortran_COMPILER) message(ERROR "Fortran enabled but no compiler detected") endif() list(APPEND MPI_COMPONENTS Fortran) endif() # Add module directory list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) set(SCOTCH_VERSION 7) set(SCOTCH_RELEASE 0) set(SCOTCH_PATCHLEVEL 11) set(SCOTCH_CODENAME "Sankara") add_definitions(-DSCOTCH_VERSION_NUM=${SCOTCH_VERSION} -DSCOTCH_RELEASE_NUM=${SCOTCH_RELEASE} -DSCOTCH_PATCHLEVEL_NUM=${SCOTCH_PATCHLEVEL}) set(SCOTCH_VERSION_LONG "${SCOTCH_VERSION}.${SCOTCH_RELEASE}.${SCOTCH_PATCHLEVEL}") # Set integer size: by default, use compiler int size set(INTSIZE "" CACHE STRING "Integer size: empty string stands for C compiler int type size") # Set index size: by default, use compiler int size set(IDXSIZE "" CACHE STRING "Index size: empty string stands for C compiler int type size") # Manage suffixes set(SCOTCH_NAME_SUFFIX "" CACHE STRING "Suffix to add to every symbol in the Scotch/PT-Scotch libraries") if(NOT "${SCOTCH_NAME_SUFFIX}" STREQUAL "") set(USE_SUFFIX ON) endif() # Thread support option(THREADS "Use multi-threading in Scotch and PT-Scotch" ON) # Use MPI with threads option(MPI_THREAD_MULTIPLE "Use multi-threading with MPI in PT-Scotch" ON) # Build PT-Scotch option(BUILD_PTSCOTCH "Build PT-Scotch" ON) # Build libESMUMPS option(BUILD_LIBESMUMPS "Build EsMUMPS library" ON) # Build libScotchMeTiS option(BUILD_LIBSCOTCHMETIS "Build ScotchMeTiS library" ON) # Prefix Scotch version of MeTiS routines option(SCOTCH_METIS_PREFIX "Prefix Scotch version of MeTiS routines" OFF) # Install our MeTiS header stubs option(INSTALL_METIS_HEADERS "Install libScotchMeTiS headers in destination directory" ON) # Level of deterministic behavior set(SCOTCH_DETERMINISTIC "FIXED_SEED" CACHE STRING "Level of determinism in Scotch") set_property(CACHE SCOTCH_DETERMINISTIC PROPERTY STRINGS NONE FIXED_SEED FULL) # Compression format options option(USE_ZLIB "Use ZLIB compression format if found" ON) option(USE_LZMA "Use LZMA compression format if found" ON) option(USE_BZ2 "Use BZ2 compression format if found" ON) # Set fPIC flag when building shared libraries set(CMAKE_POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS}) # scotcherr option set(LIBSCOTCHERR "" CACHE STRING "Which error library is linked by default") set(LIBPTSCOTCHERR "" CACHE STRING "Which parallel error library is linked by default") # Allow for testing option(ENABLE_TESTS "Enable testing" ON) if(ENABLE_TESTS) enable_testing() endif(ENABLE_TESTS) # use GNU standard for file hierarchy installation system include(GNUInstallDirs) add_subdirectory(src) # Install man pages set(scotch_man_pages acpl.1 amk_ccc.1 amk_grf.1 atst.1 gbase.1 gcv.1 gdump.1 gmap.1 gmk_hy.1 gmk_m2.1 gmk_msh.1 gmtst.1 gord.1 gotst.1 gout.1 gtst.1 mcv.1 mmk_m2.1 mord.1 mtst.1 ) foreach(f IN LISTS scotch_man_pages) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/man/man1/${f} DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man1 COMPONENT scotch) endforeach() if(BUILD_PTSCOTCH) set(ptscotch_man_pages dgmap.1 dgord.1 dgscat.1 dgtst.1) foreach(f IN LISTS ptscotch_man_pages) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/man/man1/${f} DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man1 COMPONENT ptscotch) endforeach() endif(BUILD_PTSCOTCH) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/INSTALL.txt000066400000000000000000001232401514310134000230250ustar00rootroot00000000000000Scotch 7.0 installation instructions ==================================== 0) Documentation ================ The "doc/" directory contains several documents that may be useful to users, packagers and maintainers of Scotch: - the "Scotch and PT-Scotch Hands-On Guide", which provides ueful information to installers and users, as well as some troubleshooting instructions in case of unexpected crash; - The "Scotch User's Guide" and the "PT-Scotch User's Guide", which provide thorough information about the Scotch and PT-Scotch APIs; - The "Scotch Maintainer's Guide", which gives insights about the internals of Scotch and the Scotch coding style. 1) Mandatory tools ================== In order for you to compile Scotch and/or PT-Scotch, you must have Flex and Bison installed on your system, as well as GNU Make, and possibly CMake if you prefer this tool. An implementation of the MPI message-passing library is also mandatory to compile PT-Scotch library and software. To check whether Flex and Bison are present, please type: %prompt% which flex %prompt% which bison Because pure parsers are needed to ensure thread safety when handling strategy strings, versions of the Flex and Bison tools at least equal to 3.4 are required. On MacOs, an older version is provided by default; users may get an adequate version from the "HomeBrew" repository, using command "brew install bison". On Windows, a recent version is available in the chocolatey package repository, using command "choco install winflexbison3". To check whether GNU Make and/or CMake are installed and are found first, please type: %prompt% make --version %prompt% cmake --version If some of these are missing, please: - check your path variable (just in case they are located in some unusual place, such as /usr/local/bin, /opt/bin, /opt/local/bin/, /opt/gnu/bin, etc). Tools such as "which", "locate" or "find" may help you find them; - ask your system administrator (highly recommended); - if you have system administrator rights, install the packages on your system; - install a local copy of the tools on your own (less recommended, please ask your system administrator first). Flex and Bison are available from the FSF website, at: http://www.gnu.org/software/flex/ http://ftp.gnu.org/non-gnu/flex/ http://www.gnu.org/software/bison/ http://ftp.gnu.org/pub/gnu/bison/ . CMake is available from its repository, at: https://cmake.org/download/ GNU Make is available from the FSF website, at: http://www.gnu.org/software/make/ and http://ftp.gnu.org/pub/gnu/make/ . 2) Compilation ============== To compile, test and install Scotch, one can either use CMake, or GNU Make. The latter option provides most flexibility, but may be more tedious. Please read the next section ("Configuration and fine-tuning") to see what options are available, as they may either favor or hinder the performance of Scotch on your system. Since the Scotch source code makes use of some C99 constructs (e.g., format constants for the fprintf family of functions, such as "PRIu64"), C compilers must be parametrized so as to accept them (e.g., using the "-std=c99" option for gcc). 2.1) Compiling with CMake ------------------------- The following instructions are relevant for a standalone installation. In order to integrate Scotch as a library in a third-party software that already uses CMake as its compilation tool, please refer to the following example: https://gitlab.inria.fr/solverstack/distrib/-/blob/master/cmake/test/scotch/CMakeLists.txt which illustrates the necessary CMake variables to use. ### Configuration To configure all the relevant Makefiles, please type the following commands from the top-level directory: %prompt% mkdir build %prompt% cd build %prompt% cmake -DCMAKE_INSTALL_PREFIX=/path/to/install -DCMAKE_BUILD_TYPE=Release .. Some structuring options can be set during this phase, by using the "-DOPTION:TYPE=VALUE" syntax. The available options are: - INTSIZE:STRING (default value ""): set this variable to "32" or "64" to set a prescribed integer size for SCOTCH_Num integers. Else, the defaut compiler word size will be used (recommended). - IDXSIZE:STRING (default value ""): set this variable to "32" or "64" to set a prescribed integer size for SCOTCH_Idx integers. Indeed, this index data type should be able to index any byte in the virtual memory of the computer. Consequently, on modern architectures, this variable should always refer to 64-bit integers. If it is not set, the defaut compiler word size will be used (recommended for 64-bit platforms). - THREADS:BOOL (default value ON): set this flag to ON to use threads within Scotch and PT-Scotch. POSIX Pthreads and native Windows threads are supported. - MPI_THREAD_MULTIPLE:BOOL (default value ON): set this flag to ON to use multi-threaded algorithms in conjunction with MPI. In case this option is activated and PT-Scotch is linked against a thread-safe MPI library, it will take advantage of it to run some threaded algorithms in parallel across compute nodes. This option is relevant only if BUILD_PTSCOTCH is set to ON. - SCOTCH_DETERMINISTIC:STRING (default value FIXED_SEED): set this flag to NONE to use faster, non-deterministic algorithms in Scotch, and a variable random seed; FIXED_SEED to use these algorithms with a fixed random seed; FULL, to use fully deterministic algorithms with a fixed random string, enabling fully deterministic behavior with any number of threads and the same number of MPI processes. These three levels are obtained by a combination of the Make compilation flags "-DCOMMON_RANDOM_FIXED_SEED" and "-DSCOTCH_DETERMINISTIC"; see sections 3.9) and 3.10) of this document. - BUILD_PTSCOTCH:BOOL (default value ON): set this flag to ON to compile PT-Scotch in addition to Scotch (which is always compiled by default, as PT-Scotch uses Scotch). - BUILD_LIBESMUMPS:BOOL (default value ON): set this flag to ON to build the MUMPS interface component. - BUILD_LIBSCOTCHMETIS:BOOL (default value ON): set this flag to ON to compile the libScotchMeTiS compatibility library. - BUILD_FORTRAN:BOOL (default value ON): set this flag to ON to compile the Fortran test programs for the libScotch and libScotchMeTiS compatibility library. - INSTALL_METIS_HEADERS:BOOL (default value ON): set this flag to ON to install the libScotchMeTiS header stubs in the CMAKE_INSTALL_PREFIX directory. Set it to OFF to avoid clobbering preexisting, original MeTiS headers. Should you want to define your own CFLAGS, you can override this variable by defining it in the command line, e.g.: %prompt% CFLAGS="-Drestrict=" cmake .. On Windows platform where a Unix-like Make is not available, CMake can generate Microsoft NMAKE Makefiles: %prompt% cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release .. ### Compilation If the previous phase ran without error, please run the compilation phase, by typing: %prompt% make -j (The optional "-j" parameter enables multiple compilation jobs to run concurrently.) On Windows platform using NMAKE: %prompt% nmake ### Testing If the previous phase ran without error, please run the test phase, by typing: %prompt% ctest or: %prompt% make test In case of an error, more information can be obtained by typing: %prompt% env CTEST_OUTPUT_ON_FAILURE=1 ctest ### Installation If the previous phase ran without error, please run the installation phase, by typing: %prompt% make install 2.2) Compiling with GNU Make ---------------------------- ### Configuration In order for GNU Make to run, one needs to create a "Makefile.inc" file containing the proper compilation commands and variables. Go to the "src/" directory. Look in its "Make.inc/" subdirectory for a configuration file which matches your system configuration. If there is none, build a proper one in the "Make.inc/" subdirectory, basing on the structure of existing ones. In particular, the Makefile.inc file contains three variables which specify which C compiler to use. Their semantic is as follows: - The C compiler command in variable CCS is used to compile the sequential (hence the "S" in "CCS") Scotch distribution. - The C compiler command in CCP is used to compile the parallel ("P") PT-Scotch distribution, using the MPI interface. - The C compiler command in CCD is used to compile the version of the "dummysizes" ("D") executable used for compiling PT-Scotch, as explained below. - The optional Fortran compiler command FCS is used to compile Fortran tests. Create a custom "src/Makefile.inc" file, or create a symbolic link from a sample configuration file to the current "src/" working directory, renaming it as "Makefile.inc": %prompt% ln -s Make.inc/Makefile.inc.xxxx_xxx_xxx Makefile.inc If symbolic links are not available on your system, make a plain copy of the file to a file named "Makefile.inc" in the current "src/" working directory: %prompt% cp Make.inc/Makefile.inc.xxxx_xxx_xxx Makefile.inc Some additional scripts, designed to ease the installation of Scotch on specific platforms, are also present in subdirectories of the Make.inc directory. This is for instance the case for the mingw32 platform. ### Compilation Once the "Makefile.inc" configuration file has been set-up, compile the Scotch distribution by typing: %prompt% make -j scotch or just: %prompt% make -j in the current "src/" working directory. (The optional "-j" parameter enables multiple compilation jobs to run concurrently.) To compile the PT-Scotch distribution, please type: %prompt% make ptscotch in the same "src/" directory. This can be done in any order. Typing: %prompt% make ptscotch will in fact compile both Scotch and PT-Scotch, since PT-Scotch requires Scotch. In some cases (e.g. when renaming library objects, see the next section), you may only want/need to build the libraries and not the executables. To do so, type: %prompt% make -j libscotch or: %prompt% make -j libptscotch The most common problem you may encounter when trying to compile PT-Scotch on a new platform relates to the "dummysizes" and "ptdummysizes" executables. The purpose of these programs is to determine, on the target platform, the sizes of the opaque data structures of Scotch and PT-Scotch, respectively. They have to be compiled and run before any library function can be compiled. The sequential case poses no specific problems, as "dummysizes" is always compiled with the same command as that used to compile the sequential Scotch package (hence, "CCD=$(CCS)" when executing "make scotch"). In the parallel case, "ptdummysizes" has to take into account the sizes of some MPI data structures, such as MPI_Comm, and the most common way to have access to this information is to use some flavor of MPI-aware compiler such as "mpicc" which automatically refers to "mpi.h". Therefore, "CCD=mpicc" will work for most systems and MPI implementations. Yet, on some platforms, programs compiled for parallel execution cannot be run interactively. Moreover, "ptdummysizes" itself does not contain any MPI calls, as it just wants to know the sizes of the data structures, and the communication subsystem of the platform may not want to run it. In any of these cases, compilation will break. It is possible to solve this problem by specifying, in the CCD variable of "Makefile.inc", how to compile "ptdummysizes" sequentially but with knowledge of the location of the "mpi.h" include file, for instance with the following line: "CCD = my_sequential_cc -I/path/to/my/mpi/implementation/include/dir/". In case of cross-compilation, e.g. for architectures that have different word size and/or compiler tools for the front-end and the compute nodes, it is possible to provide alternate flags, by setting the "CCDFLAGS" variable. If no error occurs, all of the relevant header, library and executable files will be created and copied to the "../include/", "../lib/" and "../bin/" directories, relatively to your current "src/" working directory. Headers, libraries and binaries of Scotch and PT-Scotch can coexist in these directories without any interference. ### Testing A set of test programs is available in the "src/check" directory. They serve as non-regression checks for both sequential and parallel features of Scotch and PT-Scotch. They can be launched by typing: %prompt% make check and/or: %prompt% make ptcheck in the "src/" directory. In the case of "ptcheck", programs can be run in debug mode, by compiling with the "-DSCOTCH_CHECK_NOAUTO" flag set. In this case, process numbers are printed, so that users can attach a debugger to a given (set of) process(es), and user action is required for launching the parallel programs, by typing ENTER whenever necessary. ### Installation To install the Scotch and/or PT-Scotch files into their destination directories, please type: %prompt% make install This will perform a GNU-like installation, with header, library, binary and man files copied to the "include", "lib", "bin" and "man" subdirectories of the path specified in the "prefix" variable, which is set by default to "/usr/local". For instance, typing: %prompt% make prefix=/home/myself/usr/ install will install the Scotch/PT-Scotch files in a subtree of directory "/home/myself/usr/". 3) Configuration and fine-tuning ================================ 3.1) Parser issues ------------------ Since Scotch uses a parser to analyze its strategy strings, it may happen that the symbols of this parser conflict with those of another parser used in a third-party library. All "Makefile.inc.*" platform configuration files which are based on Flex / Bison are already tailored so as to prevent such conflicts. If you use other parsing tools, you may have to provide other options. Since version 7.0, Scotch uses re-entrant versions of the parsers produced by Flex and Bison. They are inherently thread-safe and free all their work memory, which was not the case for the previous "un-pure" versions. 3.2) Integer size issues ------------------------ By default, all integers used in Scotch and PT-Scotch are of the "int" C type, corresponding to the "INTEGER" type in Fortran. To coerce the size of the Scotch integer type to 32 or 64 bits, add the "-DINTSIZE32" or "-DINTSIZE64" flags, respectively, to the C compiler flags in the Makefile.inc configuration file. If you do so, make sure to use integer types of equivalent size to declare variables passed to Scotch routines from caller C and Fortran procedures. Also, when running on 32_64-bit architectures (that is, integer types are 32-bit wide, while address types are 64-bit wide), some integer array indices returned by the Fortran interface have to be of a size equivalent to those of memory addresses, that is, 64 bits. The size of these variables is determined by the "-DIDXSIZE32" and "-DIDXSIZE64" flags, respectively. When none of them is provided, the size of the indices is assumed to be equivalent to that of the Scotch integer type. For instance, on a 32-bit architecture, you can use 64-bit integers in Scotch by just setting the "-DINTSIZE64" flag, because addresses will remain on 32 bits. On a 32_64 architecture, you can use either 32-bit or 64-bit integers in Scotch, by setting the "-DINTSIZE32" or "-DINTSIZE64" flags accordingly, but in all cases you must set the "-DIDXSIZE64" flag in order for some of the routines of the Fortran interface to operate properly, because the array indices returned by these routines have to be stored as 64-bit quantities. Of course, on 64-bit architectures, another possibility is to tune your C and Fortran compilers to make them interpret all "int" and "INTEGER" types as 64 bit values. This solution is the simplest one, as there is no need to use any of the aforementioned flags, nor to hard-code type lengths in user's code. Yet, it prevents mixing 32 and 64-bit features, and may create problems when linking PT-Scotch if a corresponding MPI library is not available. Be careful not to mismatch the 32-bit and 64-bit versions of the "scotch.h" and "ptscotch.h" include files that are generated at compile time. When several versions of Scotch are simultaneously present on a system, Make sure to place the corresponding include and library files in separate directories. Most Scotch data structures will have different sizes, depending on integer or pointer sizes. Consequently, compiling a 64-bit executable with the 32-bit version of "scotch.h" may lead to unpredictable behavior because of memory overflow. 3.3) (Re)naming of library objects ---------------------------------- In order to prevent conflicts with third-party software, the following naming conventions have been defined: - Public C objects start with "SCOTCH_", and public Fortran objects start with "SCOTCHF"; - Internal Scotch routines start with "_SCOTCH"; - Some internal routines start with "scotch", e.g. Flex/Bison routines, see above. It is possible to make several Scotch versions coexist in the same application. To do so, libraries must be compiled with adequate function renaming, by adding an appropriate suffix. For instance, a "_64" suffix can be appended to routines, data types and symbols of a 64-bit version of the library. To activate this feature, the variable "SCOTCH_NAME_SUFFIX" must be defined in Makefile.inc, either as an environment variable (e.g., "export SCOTCH_NAME_SUFFIX=_64"), or as a definition in the CFLAGS variable (e.g., "-DSCOTCH_NAME_SUFFIX=_64"). Since error handling routines are generic and belong to a separate library, suffix transformation is never applied to them. Hence, application programs that use multiple versions of Scotch can be linked against a single instance of the error handling library. Once the library files with renamed objects have been compiled, it is up to the packager to rename adequately the various files. For instance, in the case of a 64-bit version, "scotch.h" can be renamed into "scotch_64.h", etc. By default, objects such as function option flags are not renamed, since they can be shared without harm by all library instances of the same version of Scotch. However, this can pose a risk when two different versions of Scotch are to be used concurrently. In this case, it may be necessary to rename these objects as well. It can be done by defining the "-DSCOTCH_RENAME_ALL" flag. When two different versions of the Scotch library are used without any renaming of all of the external objects, the preprocessor symbol "SCOTCH_WARNING_RENAME_UNSAFE" is defined by the include files "scotch.h", to be taken into account by the application programmer. 3.4) Portability issues ----------------------- While most of the code of Scotch poses no compatibility issues, some features are subject to many diverging implementations, such as date/time management, pipes, process forking, etc. Some of them are handled globally, thanks to system-specific flags. Others have to be finely tuned, depending on your platform. Some common platform configurations are available in the "src/Make.inc/" subdirectory. The compilation flags used to manage portability issues are the following: "-DCOMMON_OS_MACOS" tweaks some includes and definitions to resolve most issues encountered on MacOS platforms. "-DCOMMON_OS_WINDOWS" tweaks some includes and definitions to resolve most issues encountered on Windows platforms. "-DCOMMON_TIMING_OLD" selects the getrusage()-based timing routine, when "-DCOMMON_OS_WINDOWS" is not set. Else, either clock_gettime() or gettimeofday() are selected, depending on POSIX compilation flags. "-DCOMMON_STUB_FORK" provides a stub for the fork() and waitpid() system calls on systems that do not allow process forking. 3.5) Compression libraries -------------------------- The binaries of the Scotch distribution can handle compressed graphs in input or output. Three compressed graph formats are currently supported: bzip2, gzip and xz/lzma. In order for them to be actually activated, the proper libraries must be available on your system. On a Linux platform, they are called "libz" for the gzip format, "libbzip2" for the bzip2 format, and "liblzma" for the lzma format. Note that it is the "development" version (also called "-devel" or "-dev", for short, as a post-fix in package names) of each of these libraries, which is required for the compilation to succeed. According to the libraries installed on your system, you may set flags "-DCOMMON_FILE_COMPRESS_BZ2", "-DCOMMON_FILE_COMPRESS_GZ" and/or "-DCOMMON_FILE_COMPRESS_LZMA" in the CFLAGS variable of your Makefile.inc configuration file, to have these formats and their respective extensions ".bz2", ".gz" and ".xz"/".lzma", recognized and handled by Scotch. Compression and decompression are handled either by extra threads or by fork()'ed child processes if threads are not available. On systems which do not provide a functional fork() system call, compressed files cannot be handled when the "-DCOMMON_PTHREAD_FILE" flag is not set (see below). 3.6) Multi-threading -------------------- Scotch can take advantage of POSIX or Windows threads when they are available. They are used in several places: - To run in a multi-threaded way several key algorithms of the Scotch centralized library, such as graph coarsening and diffusion-based methods. This choice is controlled by the "-DSCOTCH_PTHREAD" flag (see below). When the "-DSCOTCH_DETERMINISTIC" flag is also set, Scotch will automatically prevent itself, by default, from using multi-threaded versions of some algorithms if this would yield non-deterministic results; - To compress and decompress file data. This can be done either by launching a service thread, or else by creating a separate process by means of a POSIX fork() system call. This choice is controlled by the "-DCOMMON_PTHREAD_FILE" flag: if it is set, threads will be used, else fork() calls will be performed. For systems which do not support the fork() system call, such as the MinGW32 platform, one can set the "-DCOMMON_STUB_FORK" flag, which creates stub fork() and waitpid() routines which always return an error. Therefore, without both fork() and threads, one must set the "-DCOMMON_STUB_FORK" flag without setting "-DCOMMON_PTHREAD_FILE", so that compilation will successfully complete; however, in this case, compressed graphs cannot be handled internally by Scotch; - to create distributed graphs in parallel. Since this task involves concurrent MPI communications, the MPI library must support the MPI_THREAD_MULTIPLE level in order for PT-Scotch to run the threaded version of the algorithms. In order to take advantage of these features, the "-DSCOTCH_PTHREAD_MPI" flag must be set, in addition to the "-DSCOTCH_PTHREAD" flag. These two flags are completely independent from the "-DCOMMON_PTHREAD_FILE" flag, which can be set independently from the others. Note that if you compile Scotch with the "-DSCOTCH_PTHREAD_MPI" flag, you will have to initialize your communication subsystem by using the MPI_Init_thread() MPI call instead of MPI_Init(). Note also that since PT-Scotch calls Scotch routines when operating on a single process, setting "-DSCOTCH_PTHREAD" but not "-DSCOTCH_PTHREAD_MPI" will still allow multiple threads to be used on each MPI process, without interfering with MPI itself. In this case, the MPI thread level MPI_THREAD_FUNNELED will be sufficient. Since v7.0 of Scotch, thread management is dynamic. Scotch standalone programs and library routines will detect the number of cores available on the system and will use all of them, unless explicitly prevented to do so (see the use of the "SCOTCH_PTHREAD_NUMBER" environment variable below). By default, when the "-DCOMMON_PTHREAD_AFFINITY_LINUX" flag is set (see below), the assignment of threads to cores is performed in increasing order, starting from 0 for the main thread. The compilation flags used to manage threads are the following: - "-DSCOTCH_PTHREAD" is mandatory to enable multi-threaded algorithms in Scotch and/or PT-Scotch. It has to be used in conjunction with the "-DCOMMON_PTHREAD" flag that enables thread management at the lower levels of the Scotch implementation. - "-DSCOTCH_PTHREAD_MPI" enables some algorithms of PT-Scotch that may make concurrent calls to the MPI communication subsystem. It has to be used in conjunction with the "-DCOMMON_PTHREAD" flag (hence also with the "-DCOMMON_PTHREAD" flag). Alternately, the compilation flag "-DSCOTCH_MPI_ASYNC_COLL" can be used to replace threaded synchronous communication routines by non-threaded asynchronous communication routines. - "-DSCOTCH_PTHREAD_NUMBER=x" (not to be mistaken with the environment variable of same name, see below) is an optional flag that sets the default number of threads to be used by Scotch. For instance, setting it to 1 will make Scotch run sequentially by default, unless otherwise prescribed at run time by the SCOTCH_PTHREAD_NUMBER environment variable. Indeed, some algorithms have had to be reformulated to accommodate for multi-threading, and will most probably be more efficient than sequential processing only for a number of threads strictly greater than 2. Setting "-DSCOTCH_PTHREAD_NUMBER=1" allows the user to run sequential algorithms by default instead of multi-threaded ones, while benefiting from multi-threading for file compression and distributed graph handling. If the user's platform comprises more than 2 cores, the user can set the SCOTCH_PTHREAD_NUMBER environment variable to -1, to override the compilation flag and take advantage of all available cores. When the "-DSCOTCH_PTHREAD_NUMBER" flag is not set, by default, all the available cores will be used at run time. - "-DCOMMON_PTHREAD_AFFINITY_LINUX" enables Linux extensions for handling thread affinity (see below). - "-DCOMMON_PTHREAD_FILE" enables threads for handling compressed files. This flag does not interfere with the use of threads by graph algorithms, e.g. for graph partitioning and/or ordering, which depends on other flags (see below). When compiling under mingw32 on Windows systems, it is possible to benefit from multi-threading by setting the "-DCOMMON_THREAD_WIN32" flag at compile time. This flag is not needed for Cygwin, which provides its own implementation of POSIX threads. When Scotch is compiled with "-DSCOTCH_PTHREAD", it makes use, by default, of all threads available to it on the platform it is running on (save for when the "-DSCOTCH_PTHREAD_NUMBER" flag has been used at compile time, see above). It is possible to influence this mechanism at run time, by setting the "SCOTCH_PTHREAD_NUMBER=x" environment variable, where "x" is the prescribed maximum number of threads to be used. Setting a thread number to 1 will coerce Scotch into using only purely sequential algorithms (which may differ in nature from their multi-threaded counterparts). Setting the thread number to -1 will make Scotch use all available threads, overriding the value possibly set by using the "-DSCOTCH_PTHREAD_NUMBER" flag at compile time. When the "-DCOMMON_PTHREAD_AFFINITY_LINUX" flag is set, the number of threads that are available to run a Scotch routine is determined from the run-time thread binding: as many threads will be used as the number of cores to which the main thread is bound. If this flag is not set, the number of available threads is the number of cores declared at system level. 3.7) Multi-threading and MPI ---------------------------- Running a multi-threaded version of PT-Scotch on top of MPI requires great care, not to degrade performance. The key issue is to make sure that, at run time, MPI processes that run on the same computer are bound to disjoint subsets of cores. Indeed, when several MPI processes run on the same computer without such an exclusive binding, each of the MPI processes will consider it can use all of the computer cores, and as many threads will be created and bound to each of the cores as there are MPI processes on the computer. In order to solve this problem, three conditions must be met concurrently: 1- your MPI implementation must support thread binding; and 2- you must launch your parallel program with the appropriate thread binding options; and 3- the Scotch routines must use thread binding information, i.e., Scotch must be compiled with the "-DCOMMON_PTHREAD_AFFINITY_LINUX" flag set (support for other binding APIs may be provided in the future, upon request and if documentation is available). For instance, regarding the second condition, in the OpenMPI environment, one may use options such as "--map-by socket", "--bind-to socket", "--bind-to core", etc. (the result of the binding can be displayed using "--report-bindings"), e.g.: % mpirun -np 2 --map-by socket --bind-to socket % mpirun -np 4 --map-by socket:PE=7 --bind-to core % mpirun -np 8 --map-by socket:PE=3 --bind-to core 3.8) Monitoring memory allocation --------------------------------- Some memory allocation information can be aggregated if PT-Scotch is compiled with the -DCOMMON_MEMORY_TRACE flag. When this flag is set, the "-va" option will make dgmap, dgord and dgpart output the minimum, maximum and average peak amount of memory used over all processes. Several API routines will also be made available to report the current and maximum amount of memory used by Scotch within the process they are called: SCOTCH_memCur() and SCOTCH_memMax(), respectively. A rudimentary memory checking mechanism is available for platforms that do not have efficient memory checking and debugging tools such as Valgrind or gdb. It can be activated through the "-DCOMMON_MEMORY_CHECK=x" flag. This is almost only for internal debugging purposes. The value of the "-DCOMMON_MEMORY_CHECK" is 1 if memory checking should be enabled by default, and 0 else. This mechanism is absolutely NOT thread-safe at the time being. 3.9) Randomness --------------- Many algorithms in Scotch and PT-Scotch are based on the random selection of vertices (e.g., seed vertices for graph growing algorithms, vertices to be mated for coarsening algorithms, etc.). This selection is performed by using integer pseudo-random generators to produce seemingly uncorrelated vertex indices. The advantage of pseudo-randomness over pure randomness is that the same pseudo-random seed will always yield the same sequence of pseudo-random numbers. Consequently, while using a different random seed for each run is likely to explore better the solution space, using a fixed random seed eases the debugging of programs, because algorithms behave identically across multiple runs (save for asynchronicity issues, see next section). When Scotch is compiled with the "-DCOMMON_RANDOM_FIXED_SEED" flag set, multiple executions of the same sequential programs will always yield the same results. Before version 6.0, Scotch relied on the operating system pseudo-random generator. While this posed no problem for most sequential programs, parallel runs of PT-Scotch were not reproducible on some systems, because the MPI implementation also used this pseudo-random generator for its own purposes. In order to avoid this problem, Scotch now uses its own pseudo-random generator. The use of operating system-dependent pseudo-random generators has been deprecated since version 7.0. From version v7.0, Scotch allows to parameterize the behavior of the libScotch library (and of the Scotch programs that use it) at run time, by way of environment variables which, when set, supersede compile-time definitions. The "SCOTCH_RANDOM_FIXED_SEED" environment variable may be set to 0 for setting a new, dynamically-changing pseudo-random seed at every run, and 1 for a fixed pseudo-random seed. 3.10) Deterministic behavior ---------------------------- When Scotch is compiled with the "-DCOMMON_RANDOM_FIXED_SEED" flag set, multiple executions of the same sequential programs will always yield the same results. Yet, non-deterministic multi-threaded and/or parallel algorithms may still introduce some variability in the produced results, due to operating system artifacts. To ease the tracking down of bugs, it is possible to coerce Scotch to exhibit a deterministic behavior by setting the "-DSCOTCH_DETERMINISTIC" flag. This option makes sure that two consecutive runs of Scotch on the same graph and same number of processes and/or threads will always yield the same result. However, it does not mean that two executions of Scotch on different numbers of processes and/or threads will always yield the same result. Indeed, changing the number of processes impacts graph data distribution and, consequently, the order in which vertices are processed, leading to different results. This option is likely to have adverse impact on performance, since all non-deterministic multi-threaded algorithms will be disabled. In the case of Scotch, the multi-threaded matching algorithm for coarsening will be replaced by its sequential counterpart, whatever the available number of threads is. In the case of PT-Scotch, point-to-point messages will be received in a fixed order rather than being processed on a first-come, first-serve basis. Setting this flag automatically results in setting the "-DCOMMON_RANDOM_FIXED_SEED" flag. From version v7.0, Scotch allows to parameterize the behavior of the libScotch library (and of the Scotch programs that use it) at run time, by way of environment variables which, when set, supersede compile-time definitions. The "SCOTCH_DETERMINISTIC" environment variable may be set to 0 to allow for the use of faster, non-deterministic, multi-threaded algorithms, and 1 for a fully, albeit sometimes slower, deterministic multi-threaded behavior. 3.11) Point-to-point or collective communications ------------------------------------------------- Since distributed graph vertices can have any initial distribution across processes, communication rounds are likely to involve all of the processes in an almost all-to-all scheme. In order to speed-up running time, most of these communications are performed by means of asynchronous sends and receives, which allows computations to overlap with communications. However, for large numbers of processes, this can lead to the saturation of the communication network of the target parallel machine. To avoid this, communication consuming routines also have a collective communication based version. The use of this version is enabled by default, as it greatly improves scalability for large numbers of processes. To disable it, set the "-DSCOTCH_PTOP" flag at compile time. 3.12) MeTiS compatibility library --------------------------------- In order to ease the adoption of Scotch/PT-Scotch by people who already developed code based on the MeTiS/ParMeTiS interface, a MeTiS compatibility library is included in the Scotch package. It provides compatible routines for the graph partitioning and ordering routines of MeTiS/ParMeTiS, as well as for most of the service routines that are available in these two packages. Hence, in most cases, it is sufficient to link against the proper version of the "libscotchmetis" library to use Scotch instead of MeTiS, by adding the two libraries in sequence, plus the adequate Scotch error handling library : [...] -lscotchmetisvX -lscotch -lscotcherr [...] Note that there exists a naming conflict between versions v3 and v5 of the genuine MeTiS library, as some routines have the same name but a different prototype across the two versions. Prior to Scotch v7.0, users had to choose which version of the libscotchmetis to compile, by using either the macro "-DSCOTCH_METIS_VERSION=3" or "-DSCOTCH_METIS_VERSION=5" when building the libScotch library. Starting from Scotch v7, both versions of the libscotchmetis are created simultaneously. Hence, users can link their existing software by using either "-lscotchmetisv3" or "-lscotchmetisv5" at link time. However, the "-DSCOTCH_METIS_VERSION=x" flag is still necessary when compiling third-party software using the alternate "metis.h" file provided by Scotch, to expose either the prototypes of the routines of libmetis v3 or those of v5. The same holds for ParMeTiS and the flag "-DSCOTCH_PARMETIS_VERSION=x", for which only the ParMeTiS v3 API is available. An advantage of the Scotch/PT-Scotch stubs over the genuine MeTiS/ParMeTiS routines is that they can be available in a 64-bit version. In this case, all int's that were passed to MeTiS/ParMeTiS routines must be replaced by 64-bit integer values (even the option configuration values). However, in this case, users will not be able to link against the service routines of the genuine MeTiS/ParMeTiS libraries, as the latter are only available as 32-bit implementations. For people willing to use both the Scotch and MeTiS libraries, that is, experiment with the graph partitioning features of Scotch while using the service routines of the genuine MeTiS package, special measures have to be taken. A first solution can be to coerce the linker to pick partitioning routines from the libScotch, and service routines from the libmetis. This can be done by placing the library names in this order as arguments to the linker command. Yet, some linkers may report an error, as some symbols are multiply defined. Alternately, the names of the compatibility routines can be changed so as to avoid conflicts. When the "-DSCOTCH_METIS_PREFIX" flag is set at compile time, all Scotch versions of the MeTiS routines are prefixed: C routines are prefixed with "SCOTCH_", and Fortran routines with "scotchf" (lowercase form) or "SCOTCHF" (uppercase form), with no following separating underscore. Of course, this will require an equivalent change in the user's application code. In this case, an improved solution can be to call directly the Scotch versions of these routines. Of course, this will require a change in the user's application code, but it can be limited to a small set of "#define's". The advantage of this solution is that it will make the code insensitive to changes in the MeTiS API, because matching Scotch routines are prefixed by "SCOTCH_" and by the MeTiS API version number. This prevents all naming conflicts, such as those which appeared between MeTiS v3 and MeTiS v5. 3.13) Source fortification -------------------------- Recent developments in applied software engineering for code robustness have resulted in the implementation, in some compilers, of features which generate extra code for checking at run time the compliance of the parameters of relevant library function calls. The activation and intrusiveness of these checks is conditioned by a specific compiler macro, called "_FORTIFY_SOURCE", the value of which ranges from 0 (no checks) to 3 (most intrusive checks). In the case of Scotch, while values from 0 to 2 have proven innocuous to date, setting "_FORTIFY_SOURCE" to 3 leads to false positives that abort the program. Consequently, packagers and installers are requested not to use this latter level. 4) Using the libScotch and libPTScotch ====================================== Users willing to use the features of the sequential (but possibly threaded) libScotch library have to include "scotch.h" and to link against the "libscotch" library, plus an error handling package such as "libscotcherr" or "libscotcherrexit". Users willing to use the features of the distributed-memory parallel libPTScotch library have to include "ptscotch.h" (which itself includes "scotch.h") and to link against both the "libptscotch" and "libscotch" libraries (in this order whenever order is significant), plus an error handling package such as "libptscotcherr" or "libptscotcherrexit". In the case of complex programs, which may run as sequential programs but may also call parallel routines, it is necessary to link only once against a Scotch error handling routine, and this routine cannot call MPI routines. Hence, the "libscotcherr" or "libscotcherrexit" libraries must be used. This will not impact the behavior of the parallel routines, but process numbers will not be displayed in case of an error. 5) Documentation and examples ============================= The Scotch and PT-Scotch user's manuals are located in the "doc/" directory. They describe how to use the libScotch and libPTScotch libraries and the standalone programs of the Scotch and PT-Scotch distribution. Basic samples of code are provided in the "doc/" directory. The richest source of sample code is indeed the "src/check/" directory, which contains the source code of many unit and integration tests for various library functions. However, some of these programs test internal features, and interact with the library through non-standard and non-documented procedures. It is therefore recommended NOT to imitate these calling practices and rather to follow the guidelines provided in the Scotch and PT-Scotch user's manuals. The "src/scotch/" directory, which contains the standalone programs of the Scotch and PT-Scotch distribution, provides more complex use cases. 6) Note to packagers ==================== Unlike for the v6.1 and earlier branches, Scotch v7.0 now handles threads dynamically at run time. Packagers have to decide whether to compile it with threads enabled or not. Based on the current processor market, we recommend to compile it with "-DCOMMON_PTHREAD" and "-DSCOTCH_PTHREAD" enabled (and with "-DCOMMON_PTHREAD_AFFINITY_LINUX" whenever possible). The penalty for single-threaded CPUs will be minimal, while hyper-threaded and many-core CPUs will benefit from the multi-threaded algorithms. Packagers that do not want to activate threads by default can set the compilation flag "-DSCOTCH_PTHREAD_NUMBER=1", so that only one thread will be used at run time by default (hence resorting to the sequential algorithms) unless explicitly decided by the user by way of the SCOTCH_PTHREAD_NUMBER environment variable. Also, we recommend to compile Scotch with the -DMPI_THREAD_MULTIPLE environment variable set, to benefit from added performance when Scotch is liked against a MPI library that provides the MPI_THREAD_MULTIPLE thread support level. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/LICENCE_fr.txt000066400000000000000000000006121514310134000234450ustar00rootroot00000000000000Cette copie de la distribution logicielle Scotch est distribuée selon les termes de la licence de logiciel libre CeCILL-C. Une copie du texte de cette licence se trouve dans le sous-répertoire "doc", dans le fichier appelé "CeCILL-C_V1-fr.txt". Veuillez en lire attentivement les clauses. Vous ne pourrez utiliser cette copie de la distribution logicielle Scotch 6.0 que si vous les acceptez. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/LICENSE_en.txt000066400000000000000000000005151514310134000234620ustar00rootroot00000000000000This copy of the Scotch software distribution is licensed to you under the terms of the CeCILL-C free/libre software license. A copy of this license is available in subdirectory "doc", in file named "CeCILL-C_V1-en.txt". Please read its terms carefully. Only if you accept them can you use this copy of the Scotch 6.0 distribution. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/LISEZ-MOI.txt000066400000000000000000000005621514310134000232300ustar00rootroot00000000000000Les clauses selon lesquelles cet exemplaire de la distribution logicielle Scotch 7.0 est mis à votre disposition sont définies dans le fichier "LICENCE_fr.txt", situé dans le même répertoire que le présent fichier. Si vous les acceptez, veuillez vous référer au fichier "INSTALL.txt", également situé dans ce répertoire, pour consulter les instructions d'installation. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/README.md000066400000000000000000000245761514310134000224510ustar00rootroot00000000000000Scotch: a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering =================================================================================================================== The **Scotch** distribution is a set of programs and libraries which implement the static mapping and sparse matrix reordering algorithms developed within the **Scotch** project. The development of **Scotch** is supported in part by **The Scotch Consortium** (see below). **Scotch** has many interesting features: * Its capabilities can be used through a set of stand-alone programs as well as through the **Scotch** library, which offers both C and Fortran interfaces. * It possesses an official Python interface, [ScotchPy](https://codeberg.org/fpellegr/scotchpy). * It provides algorithms to partition graph structures, as well as mesh structures defined as node-element bipartite graphs and which can also represent hypergraphs. * It can map any weighted source graph onto any weighted target graph. The source and target graphs may have any topology, and their vertices and edges may be weighted. Moreover, both source and target graphs may be disconnected. This feature allows for the mapping of programs onto disconnected subparts of a parallel architecture made up of heterogeneous processors and communication links. * Its running time is linear in the number of edges of the source graph, and logarithmic in the number of vertices of the target graph for mapping computations. * It computes amalgamated block orderings of sparse matrices, for efficient solving using BLAS routines. * It can handle indifferently graph and mesh data structures created within C or Fortran programs, with array indices starting from 0 or 1. * It offers extended support for adaptive graphs and meshes through the handling of disjoint edge arrays. * It is dynamically parametrizable thanks to strategy strings that are interpreted at run-time. * To speed-up its computations, the **Scotch** library dynamically takes advantage of either POSIX threads or native Windows threads. **The PT-Scotch** library, used to manage very large graphs distributed across the nodes of a parallel computer, uses the MPI interface, possibly in combination with multi-threading when the MPI implementation allows for it. * It uses system memory efficiently, to process large graphs and meshes without incurring out-of-memory faults. * It is highly modular and documented. Since it is available under a free/libre software license, it can be used as a testbed for the easy and quick development and testing of new partitioning and ordering methods. * It can be easily interfaced to other programs. The programs comprising the **Scotch** project have been designed to run in command-line mode without any interactive prompting, so that they can be called easily from other programs by means of system() or popen() calls, or piped together on a single command line. Moreover, vertex labeling capabilities allow for easy renumbering of vertices. * It provides many tools to build, check, and display graphs, meshes and matrix patterns. * It is written in C and uses the POSIX interface, which makes it highly portable. Additionally, **PT-Scotch** uses the **MPI** interface. Obtaining Scotch ---------------- **Scotch** is publicly available under the CeCILL-C free software license, as described [here](https://gitlab.inria.fr/scotch/scotch/blob/master/LICENSE_en.txt). The license itself is available [here](https://gitlab.inria.fr/scotch/scotch/-/blob/master/doc/CeCILL-C_V1-en.txt). To use the lastest version of **Scotch**, please clone the master branch: git clone git@gitlab.inria.fr:scotch/scotch.git Tarballs of the **Scotch** releases are available [here](https://gitlab.inria.fr/scotch/scotch/-/releases). Documentation ------------- The most recent user and maintenance manuals are available [here](https://gitlab.inria.fr/scotch/scotch/tree/master/doc). The principles and internals of **Scotch** are also described in several papers: * [Distillating knowledge about SCOTCH](https://drops.dagstuhl.de/opus/volltexte/2009/2091/pdf/09061.PellegriniFrancois.Paper.2091.pdf), in *Combinatorial Scientific Computing*, U. Naumann, O. Schenk, H. D. Simon and S. Toledo, eds., [Dagstuhl Seminar Proceedings vol. 9061](https://drops.dagstuhl.de/opus/volltexte/2009/2091/), Schloss Dagstuhl - Leibniz-Zentrum für Informatik, Dagstuhl, Germany, 2009, ISSN 1862-4405 * [Scotch and PT-Scotch Graph Partitioning Software: An Overview](https://www.taylorfrancis.com/chapters/edit/10.1201/b11644-18/scotch-pt-scotch-graph-partitioning-software-overview-franc%C2%B8ois-pellegrini), in *[Combinatorial Scientific Computing](https://www.taylorfrancis.com/books/mono/10.1201/b11644/combinatorial-scientific-computing)*, U. Naumann, O. Schenk eds., Chapman and Hall/CRC, 2012, ISBN 978-0-429-15217-7 * [Contributions to multilevel parallel graph partitioning](http://tel.archives-ouvertes.fr/docs/00/54/05/81/PDF/hdr.pdf), habilitation thesis, 2009 Installation ------------ Two flavors of installation are available: * With CMake, using version 3.10 or higher: ```bash mkdir build && cd build && cmake .. && make -j5 ``` Many options can be provided from the command line, using the CMmake flag `-D`. Linux and MacOS-X are fully supported. MacOS-X users must use recent versions of Flex and Bison that are available from [Brew](https://brew.sh/); older versions from Xcode will fail. To use them, run, e.g.: ``` bash cmake -DBUILD_SHARED_LIBS=ON -DBISON_EXECUTABLE=/usr/local/Cellar/bison/3.8.2/bin/bison -DFLEX_EXECUTABLE=/usr/local/Cellar/flex/2.6.4_2/bin/flex ``` You may also use alternate compilers, by overloading the `CMAKE_*_COMPILER` variables, e.g.: ```bash cmake -DCMAKE_Fortran_COMPILER=ifx -DCMAKE_C_COMPILER=icx -DMPI_HOME=/path/to/oneAPI/mpi/latest/ ``` Windows plaftorms are also supported, featuring native multi-threading. Processor affinity is not yet implemented. If a Unix-like version of Make is not available, CMake can generate Microsoft NMAKE Makefiles: ```bash cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release .. nmake ``` When creating dynamic libraries, the `-DLIBSCOTCHERR` flag allows one to select at compile time which error library to link against. This flag is set to "" by default, but can be set to any predefined or user-defined error handling library, e.g., ```bash cmake -DLIBSCOTCHERR=scotcherr ``` * With a traditional Makefile: CMake installation is easy and straightforward. It allows one to compile and install **Scotch** and **PT-Scotch**, depending on flags such as the use of multi-threading and/or MPI. The traditional Makefile installation provides additional freedom to perform (cross-)compilation for non-standard systems and configurations. Please refer to the `[INSTALL.txt](https://gitlab.inria.fr/scotch/scotch/blob/master/INSTALL.txt)` file at the root of the package tree for more information on the use of traditional `Makefile`s. Execution --------- The behavior of the **libScotch** library and of the **Scotch** programs that use it can be conditioned at run time by way of environment variables: * `SCOTCH_PTHREAD_NUMBER`: the prescribed maximum number of threads that **Scotch** may use in the course of its computations, or `-1` to use as many threads as provided by the system at launch time; * `SCOTCH_DETERMINISTIC`: `0` for allowing for the use of faster, non-deterministic, multi-threaded algorithms, and `1` for a fully, albeit sometimes slower, deterministic multi-threaded behavior; * `SCOTCH_RANDOM_FIXED_SEED`: `0` for setting a new, dynamically-changing pseudo-random seed at every run, and `1` for a fixed pseudo-random seed. ### Intel MPI Some hanging issues have been reported when running PT-Scotch in multi-threaded mode on Intel MPI. Until Intel fixes this issue, a workaround, available since Intel MPI version 2021.17, is to run Intel's `mpiexec` command with some variables set as follows: ``` I_MPI_THREAD_SPLIT=1, I_MPI_THREAD_SPLIT_MODE=implicit, I_MPI_THREAD_MAX=x ``` where the `x` integer value is the maximum number of threads that Scotch will use, which must be set explicitly at compile time, or at execution time as an environment variable: ``` export SCOTCH_PTHREAD_NUMBER=x ``` Consortium ---------- **The Scotch Consortium**, hosted by Inria within the InriaSoft program, aims at supporting the scientific and industrial development and the long-term maintenance of **Scotch**. Through their subscriptions, industrial and academic Consortium Members, which have a strategic need in the availability and robustness of the **Scotch** software, benefit from extended support, direct contact with the development team, participation in the project roadmap, and access to early releases. Please contact the PI at for more information. Contributing to Scotch ---------------------- To report a bug or discuss potential improvements, you can contact directly the PI at . However, the GitLab environment provides features that are worth taking advantage of, so we recommend you to take the time to use them. Before reporting a bug or submitting a patch in the Inria GitLab environment, you will need an account on the server. **Please dot not hesitate to send an e-mail to so that we create an account for you on the Inria Gitlab repository**. You will then be able to open issues in the bug tracker, request features, or propose patches using the "merge requests" feature. Contribtions to `ScotchPy` are made on the [Codeberg](https://codeberg.org/) platform, on which registration is much easier. Past and current contributors ----------------------------- The following people contribute(d) to the development of **Scotch**: * Clément BARTHÉLEMY * Cédric CHEVALIER * Sébastien FOURESTIER * Marc FUENTES * Jun-Ho HER * Amaury JACQUES * Cédric LACHAT * Selmane LEBDAOUI * Connor Alexander MAYON * Tetsuya MISHIMA * Xavier MULLER * François PELLEGRINI (PI) * Florent PRUVOST * Luca SCARANO Citing Scotch ------------- Feel free to use the following publications to reference **Scotch**: * "Scotch and PT-Scotch Graph Partitioning Software: An Overview" https://hal.inria.fr/hal-00770422 * "PT-Scotch: A tool for efficient parallel graph ordering" https://hal.inria.fr/hal-00402893 Licence ------- [https://gitlab.inria.fr/scotch/scotch/blob/master/LICENSE_en.txt](https://gitlab.inria.fr/scotch/scotch/blob/master/LICENSE_en.txt) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/README.txt000066400000000000000000000004421514310134000226520ustar00rootroot00000000000000The terms under which this copy of the Scotch 7.0 distribution is provided to you are described in file "LICENSE_en.txt", located in the same directory as this file. If you accept them, please refer to file "INSTALL.txt", also located in this directory, for the installation instructions. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/000077500000000000000000000000001514310134000215475ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/Makefile.inc000066400000000000000000000010271514310134000237570ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran FCP = mpif90 SCOTCH_NAME_SUFFIX= CFLAGS = -Wall --coverage -fdiagnostics-show-option `pkg-config --cflags mpi` -Drestrict=__restrict -DSCOTCH_GITLAB_SEPARATOR -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ2 -DSCOTCH_RENAME LDFLAGS = --coverage `pkg-config --libs --static mpi` -lz -lbz2 -llzma -lm -lrt -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/analysis.sh000077500000000000000000000052131514310134000237320ustar00rootroot00000000000000#!/bin/sh #export LCOVFILES="" #for filename in $(ls -1 scotch-*.lcov); do export LCOVFILES="$LCOVFILES -a $filename"; done #lcov $LCOVFILES -o scotch.lcov #lcov_cobertura scotch.lcov --output scotch-coverage.xml gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root . export CPPCHECK_DEFINITIONS="$(grep SCOTCH_GITLAB_SEPARATOR < src/Makefile.inc | sed -e 's#^CFLAGS.*SCOTCH_GITLAB_SEPARATOR##1' | sed -e 's#[ ][^-][^ ]*##g' -e 's#[ ][-][^D][^ ]*##g')" export CPPCHECK_INCLUDES="-Isrc/scotch -Isrc/misc -Isrc/libscotch -Isrc/esmumps -Isrc/libscotchmetis" ./ci/gitlab-ci-filelist.sh cppcheck -v --max-configs=1 --language=c ${CPPCHECK_DEFINITIONS_VM:---platform=native} --enable=all --xml --xml-version=2 --suppress=missingIncludeSystem --suppress=varFuncNullUB --suppress=invalidPrintfArgType_sint ${CPPCHECK_DEFINITIONS} ${CPPCHECK_INCLUDES} --file-list=./filelist.txt 2> scotch-cppcheck.xml rats -w 3 --xml `cat filelist.txt` > scotch-rats.xml # sonar.projectKey=tadaam:scotch:gitlab:$CI_PROJECT_NAMESPACE:$CI_COMMIT_REF_NAME # sonar.projectKey=tadaam:scotch:gitlab:$CI_PROJECT_NAMESPACE # sonar.branch.name=$CI_COMMIT_REF_NAME # sonar.exclusions=build/**,cmake_modules/**,doc/**,tools/**,**/*.xml # "sonar.lang.patterns.c++=**/*.cpp,**/*.hpp" : needed so that C files are not considered as C++ files cat > sonar-project.properties << EOF sonar.host.url=https://sonarqube.inria.fr/sonarqube sonar.login=$SONARQUBE_LOGIN sonar.links.homepage=$CI_PROJECT_URL sonar.links.scm=$CI_REPOSITORY_URL sonar.links.ci=https://gitlab.inria.fr/$CI_PROJECT_NAMESPACE/scotch/pipelines sonar.links.issue=https://gitlab.inria.fr/$CI_PROJECT_NAMESPACE/scotch/issues sonar.projectKey=tadaam:scotch:gitlab:$CI_PROJECT_NAMESPACE sonar.projectDescription=Package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering. sonar.projectVersion=7.1 sonar.branch.name=$CI_COMMIT_REF_NAME sonar.sourceEncoding=UTF-8 sonar.sources=include,src/check,src/esmumps,src/libscotch,src/libscotchmetis,src/misc,src/scotch sonar.inclusions=`cat filelist.txt | sed ':a;N;$!ba;s/\n/, /g'` sonar.exclusions=src/libscotch/dummysizes.c,src/libscotch/parser_ll.c,src/libscotch/parser_yy.c,src/libscotch/last_resort/** sonar.cxx.file.suffixes=.h,.c sonar.cxx.errorRecoveryEnabled=true sonar.cxx.gcc.encoding=UTF-8 sonar.cxx.gcc.regex=(?.*):(?[0-9]+):[0-9]+:\\\x20warning:\\\x20(?.*)\\\x20\\\[(?.*)\\\] sonar.cxx.gcc.reportPaths=scotch-build*.log sonar.cxx.clangsa.reportPaths=analyzer_reports/*/*.plist sonar.cxx.cppcheck.reportPaths=scotch-cppcheck.xml sonar.cxx.rats.reportPaths=scotch-rats.xml sonar.cxx.cobertura.reportPaths=*.cov EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/build_cmake.sh000077500000000000000000000003161514310134000243450ustar00rootroot00000000000000#!/bin/bash fatal() { echo "$0: error occurred, exit" exit 1 } source ci/env_cmake.sh mkdir -p build cd build cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON .. || fatal make -j5 || fatal scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/build_makefile.sh000077500000000000000000000010441514310134000250410ustar00rootroot00000000000000#!/bin/bash fatal() { echo "$0: error occurred, exit" exit 1 } source ci/env_makefile.sh cp ci/Makefile.inc src/Makefile.inc cd src sed -i -e "s#^\(CFLAGS.*\)#\1 ${JOBBUILDFLAGS}#1" Makefile.inc find . -name Makefile | xargs sed -i -e "s#-c \$(<)#-c \$\(shell pwd\)/\$\(<\)#g" if [[ $CI_PIPELINE_SOURCE == "schedule" ]] then SCAN="scan-build -plist --intercept-first --analyze-headers -o ../analyzer_reports " else SCAN="" fi eval '${SCAN}make -j scotch ptscotch esmumps ptesmumps 2>&1 | tee ../scotch-build-${JOBNAME}.log' || fatal scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/env_cmake.sh000077500000000000000000000003331514310134000240350ustar00rootroot00000000000000#!/bin/bash case "${CC}" in icx ) source /disk1/builds/intel/setvars.sh intel64 && export MPI_HOME=/disk1/builds/intel/mpi/latest/ ;; pgcc ) source /disk1/builds/nvidia/hpc_sdk/load_env ;; esac scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/env_makefile.sh000077500000000000000000000033621514310134000245370ustar00rootroot00000000000000#!/bin/bash export JOBNAME="${JOB_INT}${JOB_THREAD}${JOB_DETERMINISTIC}${JOB_DEBUG}${JOB_RENAME}" echo ${JOBNAME} export JOBBUILDFLAGS="-O0 -g -fPIC -DCOMMON_FILE_COMPRESS_LZMA" case "${JOB_INT}" in 32 ) export JOBBUILDFLAGS="${JOBBUILDFLAGS}" ;; 32-64 ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DINTSIZE64 -DIDXSIZE64" ;; 64 ) export JOBBUILDFLAGS="${JOBBUILDFLAGS}" ;; esac case "${JOB_THREAD}" in n ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DSCOTCH_MPI_ASYNC_COLL" ;; c ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DCOMMON_PTHREAD" ;; k ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DCOMMON_PTHREAD -DCOMMON_PTHREAD_REDUCE_CANONICAL -DCOMMON_PTHREAD_SCAN_CANONICAL -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD" ;; s ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_NUMBER=2" ;; m ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI" ;; esac case "${JOB_DETERMINISTIC}" in n ) export JOBBUILDFLAGS="${JOBBUILDFLAGS}" ;; d ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DSCOTCH_DETERMINISTIC" ;; esac export JOBCHECK="" case "${JOB_DEBUG}" in n ) export JOBBUILDFLAGS="${JOBBUILDFLAGS}" ;; a ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_ALL" ;; f ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_FULL" export JOBCHECK=_full ;; esac case "${JOB_RENAME}" in n ) export JOBBUILDFLAGS="${JOBBUILDFLAGS}" ;; r ) export JOBBUILDFLAGS="${JOBBUILDFLAGS} -DSCOTCH_RENAME" ;; esac echo ${JOBBUILDFLAGS} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/gitlab-ci-filelist.sh000077500000000000000000000002271514310134000255530ustar00rootroot00000000000000#!/bin/sh SRCDIR_TO_ANALYZE="src" echo $PWD rm -f filelist.txt for dir in ${SRCDIR_TO_ANALYZE} do find $dir -name '*\.[ch]' >> filelist.txt done scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/test_cmake.sh000077500000000000000000000002751514310134000242310ustar00rootroot00000000000000#!/bin/bash fatal() { echo "$0: error occurred, exit" exit 1 } source ci/env_cmake.sh cd build ctest -T test -O ctest.log --output-junit ../report.xml --timeout 20 || fatal cd .. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/ci/test_makefile.sh000077500000000000000000000011751514310134000247260ustar00rootroot00000000000000#!/bin/bash fatal() { echo "$0: error occurred, exit" exit 1 } source ci/env_makefile.sh cd src make check${JOBCHECK} || fatal make ptcheck${JOBCHECK} || fatal make escheck || fatal find . -print0 | xargs -0 touch cp libscotch/parser_ll.c libscotch/lex.yy.c cp libscotch/parser_yy.c libscotch/y.tab.c cat check/test_scotch_graph_dump.c /tmp/m16x16_b1.c > check/test_scotch_graph_dump2.c cd .. gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o ${JOBNAME}.cov --root . || fatal #if [[ $CI_PIPELINE_SOURCE == "schedule" ]] #then # lcov --capture --directory . --output-file scotch-${JOBNAME}.lcov || fatal #fi scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/cmake/000077500000000000000000000000001514310134000222345ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/cmake/Modules/000077500000000000000000000000001514310134000236445ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/cmake/Modules/CheckMpiThreadMultiple.cmake000066400000000000000000000026721514310134000312040ustar00rootroot00000000000000if(MPI_FOUND) # Save current values set(CMAKE_REQUIRED_INCLUDES_TMP ${CMAKE_REQUIRED_INCLUDES}) set(CMAKE_REQUIRED_LIBRARIES_TMP ${CMAKE_REQUIRED_LIBRARIES}) set(CMAKE_REQUIRED_FLAGS_TMP ${CMAKE_REQUIRED_FLAGS}) # Set flags for building test program set(CMAKE_REQUIRED_INCLUDES ${MPI_INCLUDE_PATH}) set(CMAKE_REQUIRED_LIBRARIES ${MPI_LIBRARIES}) set(CMAKE_REQUIRED_FLAGS ${MPI_COMPILE_FLAGS}) set(CODE_MPI_THREAD_MULTIPLE "#include\n#include \n int main(int argc, char **argv) { int prov\; MPI_Init_thread (&argc, &argv, MPI_THREAD_MULTIPLE, &prov)\; MPI_Finalize ()\; return ((prov < MPI_THREAD_MULTIPLE) ? EXIT_FAILURE : EXIT_SUCCESS)\; }") set(tmp_name "${CMAKE_BINARY_DIR}/test_mpi_multiple.c") file(WRITE ${tmp_name} ${CODE_MPI_THREAD_MULTIPLE}) execute_process(COMMAND ${MPI_C_COMPILER} -o ${tmp_name}.x ${tmp_name} RESULT_VARIABLE _res_compiles) if (NOT _res_compiles) execute_process(COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 3 ${tmp_name}.x ERROR_QUIET OUTPUT_QUIET OUTPUT_VARIABLE _out RESULT_VARIABLE _res_run) if (NOT _res_run) set(MPI_THREAD_MULTIPLE_OK ON) endif(NOT _res_run) endif(NOT _res_compiles) file(REMOVE ${tmp_name}) file(REMOVE ${tmp_name}.x) # Restore previous values set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_TMP}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_TMP}) set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_TMP}) endif() scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/cmake/Modules/CheckPthreadAffinity.cmake000066400000000000000000000011031514310134000306600ustar00rootroot00000000000000if(Threads_FOUND) # Save current values set(CMAKE_REQUIRED_INCLUDES_TMP ${CMAKE_REQUIRED_INCLUDES}) set(CMAKE_REQUIRED_LIBRARIES_TMP ${CMAKE_REQUIRED_LIBRARIES}) # Set flags for building test program set(CMAKE_REQUIRED_INCLUDES /usr/include) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) include(CheckFunctionExists) check_function_exists(pthread_setaffinity_np PTHREAD_AFFINITY_LINUX_OK) # Restore previous values set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_TMP}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_TMP}) endif() scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/cmake/SCOTCHConfig.cmake.in000066400000000000000000000100211514310134000257460ustar00rootroot00000000000000## Copyright 2014-2016,2021-2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Marc FUENTES ## ## Florent PRUVOST ## ## Cedric LACHAT ## ## Amaury JACQUES ## ## Xavier MULLER ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 08 jul 2025 ## ## ## ############################################################ set(SCOTCH_VERSION @SCOTCH_VERSION_LONG@) # Relocatable package @PACKAGE_INIT@ set_and_check(@PROJECT_NAME@_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") set_and_check(@PROJECT_NAME@_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") # Manage dependencies include(CMakeFindDependencyMacro) find_dependency(Threads) if(@BUILD_PTSCOTCH@) find_dependency(MPI REQUIRED) endif() # Add target files include("${CMAKE_CURRENT_LIST_DIR}/scotcherrexitTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/scotcherrTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/scotchTargets.cmake") if(@BUILD_PTSCOTCH@) set(@PROJECT_NAME@_PTSCOTCH_FOUND ON) include("${CMAKE_CURRENT_LIST_DIR}/ptscotcherrexitTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/ptscotcherrTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/ptscotchTargets.cmake") endif() if(@BUILD_LIBESMUMPS@) set(@PROJECT_NAME@_LIBESMUMPS_FOUND ON) include("${CMAKE_CURRENT_LIST_DIR}/esmumpsTargets.cmake") if(@BUILD_PTSCOTCH@) set(@PROJECT_NAME@_LIBPTESMUMPS_FOUND ON) include("${CMAKE_CURRENT_LIST_DIR}/ptesmumpsTargets.cmake") endif() endif() if(@BUILD_LIBSCOTCHMETIS@) set(@PROJECT_NAME@_LIBSCOTCH_METIS_FOUND ON) include("${CMAKE_CURRENT_LIST_DIR}/scotchmetisTargets.cmake") if(@BUILD_PTSCOTCH@) set(@PROJECT_NAME@_LIBSCOTCH_PARMETIS_FOUND ON) include("${CMAKE_CURRENT_LIST_DIR}/ptscotchparmetisTargets.cmake") endif() endif() check_required_components(@PROJECT_NAME@) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/000077500000000000000000000000001514310134000217215ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/CeCILL-C_V1-en.txt000066400000000000000000000525471514310134000246200ustar00rootroot00000000000000 CeCILL-C FREE SOFTWARE LICENSE AGREEMENT Notice This Agreement is a Free Software license agreement that is the result of discussions between its authors in order to ensure compliance with the two main principles guiding its drafting: * firstly, compliance with the principles governing the distribution of Free Software: access to source code, broad rights granted to users, * secondly, the election of a governing law, French law, with which it is conformant, both as regards the law of torts and intellectual property law, and the protection that it offers to both authors and holders of the economic rights over software. The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) license are: Commissariat à l'Energie Atomique - CEA, a public scientific, technical and industrial research establishment, having its principal place of business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. Centre National de la Recherche Scientifique - CNRS, a public scientific and technological establishment, having its principal place of business at 3 rue Michel-Ange, 75794 Paris cedex 16, France. Institut National de Recherche en Informatique et en Automatique - INRIA, a public scientific and technological establishment, having its principal place of business at Domaine de Voluceau, Rocquencourt, BP 105, 78153 Le Chesnay cedex, France. Preamble The purpose of this Free Software license agreement is to grant users the right to modify and re-use the software governed by this license. The exercising of this right is conditional upon the obligation to make available to the community the modifications made to the source code of the software so as to contribute to its evolution. In consideration of access to the source code and the rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors only have limited liability. In this respect, the risks associated with loading, using, modifying and/or developing or reproducing the software by the user are brought to the user's attention, given its Free Software status, which may make it complicated to use, with the result that its use is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the suitability of the software as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions of security. This Agreement may be freely reproduced and published, provided it is not altered, and that no provisions are either added or removed herefrom. This Agreement may apply to any or all software for which the holder of the economic rights decides to submit the use thereof to its provisions. Article 1 - DEFINITIONS For the purpose of this Agreement, when the following expressions commence with a capital letter, they shall have the following meaning: Agreement: means this license agreement, and its possible subsequent versions and annexes. Software: means the software in its Object Code and/or Source Code form and, where applicable, its documentation, "as is" when the Licensee accepts the Agreement. Initial Software: means the Software in its Source Code and possibly its Object Code form and, where applicable, its documentation, "as is" when it is first distributed under the terms and conditions of the Agreement. Modified Software: means the Software modified by at least one Integrated Contribution. Source Code: means all the Software's instructions and program lines to which access is required so as to modify the Software. Object Code: means the binary files originating from the compilation of the Source Code. Holder: means the holder(s) of the economic rights over the Initial Software. Licensee: means the Software user(s) having accepted the Agreement. Contributor: means a Licensee having made at least one Integrated Contribution. Licensor: means the Holder, or any other individual or legal entity, who distributes the Software under the Agreement. Integrated Contribution: means any or all modifications, corrections, translations, adaptations and/or new functions integrated into the Source Code by any or all Contributors. Related Module: means a set of sources files including their documentation that, without modification to the Source Code, enables supplementary functions or services in addition to those offered by the Software. Derivative Software: means any combination of the Software, modified or not, and of a Related Module. Parties: mean both the Licensee and the Licensor. These expressions may be used both in singular and plural form. Article 2 - PURPOSE The purpose of the Agreement is the grant by the Licensor to the Licensee of a non-exclusive, transferable and worldwide license for the Software as set forth in Article 5 hereinafter for the whole term of the protection granted by the rights over said Software. Article 3 - ACCEPTANCE 3.1 The Licensee shall be deemed as having accepted the terms and conditions of this Agreement upon the occurrence of the first of the following events: * (i) loading the Software by any or all means, notably, by downloading from a remote server, or by loading from a physical medium; * (ii) the first time the Licensee exercises any of the rights granted hereunder. 3.2 One copy of the Agreement, containing a notice relating to the characteristics of the Software, to the limited warranty, and to the fact that its use is restricted to experienced users has been provided to the Licensee prior to its acceptance as set forth in Article 3.1 hereinabove, and the Licensee hereby acknowledges that it has read and understood it. Article 4 - EFFECTIVE DATE AND TERM 4.1 EFFECTIVE DATE The Agreement shall become effective on the date when it is accepted by the Licensee as set forth in Article 3.1. 4.2 TERM The Agreement shall remain in force for the entire legal term of protection of the economic rights over the Software. Article 5 - SCOPE OF RIGHTS GRANTED The Licensor hereby grants to the Licensee, who accepts, the following rights over the Software for any or all use, and for the term of the Agreement, on the basis of the terms and conditions set forth hereinafter. Besides, if the Licensor owns or comes to own one or more patents protecting all or part of the functions of the Software or of its components, the Licensor undertakes not to enforce the rights granted by these patents against successive Licensees using, exploiting or modifying the Software. If these patents are transferred, the Licensor undertakes to have the transferees subscribe to the obligations set forth in this paragraph. 5.1 RIGHT OF USE The Licensee is authorized to use the Software, without any limitation as to its fields of application, with it being hereinafter specified that this comprises: 1. permanent or temporary reproduction of all or part of the Software by any or all means and in any or all form. 2. loading, displaying, running, or storing the Software on any or all medium. 3. entitlement to observe, study or test its operation so as to determine the ideas and principles behind any or all constituent elements of said Software. This shall apply when the Licensee carries out any or all loading, displaying, running, transmission or storage operation as regards the Software, that it is entitled to carry out hereunder. 5.2 RIGHT OF MODIFICATION The right of modification includes the right to translate, adapt, arrange, or make any or all modifications to the Software, and the right to reproduce the resulting software. It includes, in particular, the right to create a Derivative Software. The Licensee is authorized to make any or all modification to the Software provided that it includes an explicit notice that it is the author of said modification and indicates the date of the creation thereof. 5.3 RIGHT OF DISTRIBUTION In particular, the right of distribution includes the right to publish, transmit and communicate the Software to the general public on any or all medium, and by any or all means, and the right to market, either in consideration of a fee, or free of charge, one or more copies of the Software by any means. The Licensee is further authorized to distribute copies of the modified or unmodified Software to third parties according to the terms and conditions set forth hereinafter. 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION The Licensee is authorized to distribute true copies of the Software in Source Code or Object Code form, provided that said distribution complies with all the provisions of the Agreement and is accompanied by: 1. a copy of the Agreement, 2. a notice relating to the limitation of both the Licensor's warranty and liability as set forth in Articles 8 and 9, and that, in the event that only the Object Code of the Software is redistributed, the Licensee allows effective access to the full Source Code of the Software at a minimum during the entire period of its distribution of the Software, it being understood that the additional cost of acquiring the Source Code shall not exceed the cost of transferring the data. 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE When the Licensee makes an Integrated Contribution to the Software, the terms and conditions for the distribution of the resulting Modified Software become subject to all the provisions of this Agreement. The Licensee is authorized to distribute the Modified Software, in source code or object code form, provided that said distribution complies with all the provisions of the Agreement and is accompanied by: 1. a copy of the Agreement, 2. a notice relating to the limitation of both the Licensor's warranty and liability as set forth in Articles 8 and 9, and that, in the event that only the object code of the Modified Software is redistributed, the Licensee allows effective access to the full source code of the Modified Software at a minimum during the entire period of its distribution of the Modified Software, it being understood that the additional cost of acquiring the source code shall not exceed the cost of transferring the data. 5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE When the Licensee creates Derivative Software, this Derivative Software may be distributed under a license agreement other than this Agreement, subject to compliance with the requirement to include a notice concerning the rights over the Software as defined in Article 6.4. In the event the creation of the Derivative Software required modification of the Source Code, the Licensee undertakes that: 1. the resulting Modified Software will be governed by this Agreement, 2. the Integrated Contributions in the resulting Modified Software will be clearly identified and documented, 3. the Licensee will allow effective access to the source code of the Modified Software, at a minimum during the entire period of distribution of the Derivative Software, such that such modifications may be carried over in a subsequent version of the Software; it being understood that the additional cost of purchasing the source code of the Modified Software shall not exceed the cost of transferring the data. 5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE When a Modified Software contains an Integrated Contribution subject to the CeCILL license agreement, or when a Derivative Software contains a Related Module subject to the CeCILL license agreement, the provisions set forth in the third item of Article 6.4 are optional. Article 6 - INTELLECTUAL PROPERTY 6.1 OVER THE INITIAL SOFTWARE The Holder owns the economic rights over the Initial Software. Any or all use of the Initial Software is subject to compliance with the terms and conditions under which the Holder has elected to distribute its work and no one shall be entitled to modify the terms and conditions for the distribution of said Initial Software. The Holder undertakes that the Initial Software will remain ruled at least by this Agreement, for the duration set forth in Article 4.2. 6.2 OVER THE INTEGRATED CONTRIBUTIONS The Licensee who develops an Integrated Contribution is the owner of the intellectual property rights over this Contribution as defined by applicable law. 6.3 OVER THE RELATED MODULES The Licensee who develops a Related Module is the owner of the intellectual property rights over this Related Module as defined by applicable law and is free to choose the type of agreement that shall govern its distribution under the conditions defined in Article 5.3.3. 6.4 NOTICE OF RIGHTS The Licensee expressly undertakes: 1. not to remove, or modify, in any manner, the intellectual property notices attached to the Software; 2. to reproduce said notices, in an identical manner, in the copies of the Software modified or not; 3. to ensure that use of the Software, its intellectual property notices and the fact that it is governed by the Agreement is indicated in a text that is easily accessible, specifically from the interface of any Derivative Software. The Licensee undertakes not to directly or indirectly infringe the intellectual property rights of the Holder and/or Contributors on the Software and to take, where applicable, vis-à-vis its staff, any and all measures required to ensure respect of said intellectual property rights of the Holder and/or Contributors. Article 7 - RELATED SERVICES 7.1 Under no circumstances shall the Agreement oblige the Licensor to provide technical assistance or maintenance services for the Software. However, the Licensor is entitled to offer this type of services. The terms and conditions of such technical assistance, and/or such maintenance, shall be set forth in a separate instrument. Only the Licensor offering said maintenance and/or technical assistance services shall incur liability therefor. 7.2 Similarly, any Licensor is entitled to offer to its licensees, under its sole responsibility, a warranty, that shall only be binding upon itself, for the redistribution of the Software and/or the Modified Software, under terms and conditions that it is free to decide. Said warranty, and the financial terms and conditions of its application, shall be subject of a separate instrument executed between the Licensor and the Licensee. Article 8 - LIABILITY 8.1 Subject to the provisions of Article 8.2, the Licensee shall be entitled to claim compensation for any direct loss it may have suffered from the Software as a result of a fault on the part of the relevant Licensor, subject to providing evidence thereof. 8.2 The Licensor's liability is limited to the commitments made under this Agreement and shall not be incurred as a result of in particular: (i) loss due the Licensee's total or partial failure to fulfill its obligations, (ii) direct or consequential loss that is suffered by the Licensee due to the use or performance of the Software, and (iii) more generally, any consequential loss. In particular the Parties expressly agree that any or all pecuniary or business loss (i.e. loss of data, loss of profits, operating loss, loss of customers or orders, opportunity cost, any disturbance to business activities) or any or all legal proceedings instituted against the Licensee by a third party, shall constitute consequential loss and shall not provide entitlement to any or all compensation from the Licensor. Article 9 - WARRANTY 9.1 The Licensee acknowledges that the scientific and technical state-of-the-art when the Software was distributed did not enable all possible uses to be tested and verified, nor for the presence of possible defects to be detected. In this respect, the Licensee's attention has been drawn to the risks associated with loading, using, modifying and/or developing and reproducing the Software which are reserved for experienced users. The Licensee shall be responsible for verifying, by any or all means, the suitability of the product for its requirements, its good working order, and for ensuring that it shall not cause damage to either persons or properties. 9.2 The Licensor hereby represents, in good faith, that it is entitled to grant all the rights over the Software (including in particular the rights set forth in Article 5). 9.3 The Licensee acknowledges that the Software is supplied "as is" by the Licensor without any other express or tacit warranty, other than that provided for in Article 9.2 and, in particular, without any warranty as to its commercial value, its secured, safe, innovative or relevant nature. Specifically, the Licensor does not warrant that the Software is free from any error, that it will operate without interruption, that it will be compatible with the Licensee's own equipment and software configuration, nor that it will meet the Licensee's requirements. 9.4 The Licensor does not either expressly or tacitly warrant that the Software does not infringe any third party intellectual property right relating to a patent, software or any other property right. Therefore, the Licensor disclaims any and all liability towards the Licensee arising out of any or all proceedings for infringement that may be instituted in respect of the use, modification and redistribution of the Software. Nevertheless, should such proceedings be instituted against the Licensee, the Licensor shall provide it with technical and legal assistance for its defense. Such technical and legal assistance shall be decided on a case-by-case basis between the relevant Licensor and the Licensee pursuant to a memorandum of understanding. The Licensor disclaims any and all liability as regards the Licensee's use of the name of the Software. No warranty is given as regards the existence of prior rights over the name of the Software or as regards the existence of a trademark. Article 10 - TERMINATION 10.1 In the event of a breach by the Licensee of its obligations hereunder, the Licensor may automatically terminate this Agreement thirty (30) days after notice has been sent to the Licensee and has remained ineffective. 10.2 A Licensee whose Agreement is terminated shall no longer be authorized to use, modify or distribute the Software. However, any licenses that it may have granted prior to termination of the Agreement shall remain valid subject to their having been granted in compliance with the terms and conditions hereof. Article 11 - MISCELLANEOUS 11.1 EXCUSABLE EVENTS Neither Party shall be liable for any or all delay, or failure to perform the Agreement, that may be attributable to an event of force majeure, an act of God or an outside cause, such as defective functioning or interruptions of the electricity or telecommunications networks, network paralysis following a virus attack, intervention by government authorities, natural disasters, water damage, earthquakes, fire, explosions, strikes and labor unrest, war, etc. 11.2 Any failure by either Party, on one or more occasions, to invoke one or more of the provisions hereof, shall under no circumstances be interpreted as being a waiver by the interested Party of its right to invoke said provision(s) subsequently. 11.3 The Agreement cancels and replaces any or all previous agreements, whether written or oral, between the Parties and having the same purpose, and constitutes the entirety of the agreement between said Parties concerning said purpose. No supplement or modification to the terms and conditions hereof shall be effective as between the Parties unless it is made in writing and signed by their duly authorized representatives. 11.4 In the event that one or more of the provisions hereof were to conflict with a current or future applicable act or legislative text, said act or legislative text shall prevail, and the Parties shall make the necessary amendments so as to comply with said act or legislative text. All other provisions shall remain effective. Similarly, invalidity of a provision of the Agreement, for any reason whatsoever, shall not cause the Agreement as a whole to be invalid. 11.5 LANGUAGE The Agreement is drafted in both French and English and both versions are deemed authentic. Article 12 - NEW VERSIONS OF THE AGREEMENT 12.1 Any person is authorized to duplicate and distribute copies of this Agreement. 12.2 So as to ensure coherence, the wording of this Agreement is protected and may only be modified by the authors of the License, who reserve the right to periodically publish updates or new versions of the Agreement, each with a separate number. These subsequent versions may address new issues encountered by Free Software. 12.3 Any Software distributed under a given version of the Agreement may only be subsequently distributed under the same version of the Agreement or a subsequent version. Article 13 - GOVERNING LAW AND JURISDICTION 13.1 The Agreement is governed by French law. The Parties agree to endeavor to seek an amicable solution to any disagreements or disputes that may arise during the performance of the Agreement. 13.2 Failing an amicable solution within two (2) months as from their occurrence, and unless emergency proceedings are necessary, the disagreements or disputes shall be referred to the Paris Courts having jurisdiction, by the more diligent Party. Version 1.0 dated 2006-09-05. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/CeCILL-C_V1-fr.txt000066400000000000000000000531461514310134000246210ustar00rootroot00000000000000 CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-C Avertissement Ce contrat est une licence de logiciel libre issue d'une concertation entre ses auteurs afin que le respect de deux grands principes préside à sa rédaction: * d'une part, le respect des principes de diffusion des logiciels libres: accès au code source, droits étendus conférés aux utilisateurs, * d'autre part, la désignation d'un droit applicable, le droit français, auquel elle est conforme, tant au regard du droit de la responsabilité civile que du droit de la propriété intellectuelle et de la protection qu'il offre aux auteurs et titulaires des droits patrimoniaux sur un logiciel. Les auteurs de la licence CeCILL-C (pour Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) sont: Commissariat à l'Energie Atomique - CEA, établissement public de recherche à caractère scientifique, technique et industriel, dont le siège est situé 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris. Centre National de la Recherche Scientifique - CNRS, établissement public à caractère scientifique et technologique, dont le siège est situé 3 rue Michel-Ange, 75794 Paris cedex 16. Institut National de Recherche en Informatique et en Automatique - INRIA, établissement public à caractère scientifique et technologique, dont le siège est situé Domaine de Voluceau, Rocquencourt, BP 105, 78153 Le Chesnay cedex. Préambule Ce contrat est une licence de logiciel libre dont l'objectif est de conférer aux utilisateurs la liberté de modifier et de réutiliser le logiciel régi par cette licence. L'exercice de cette liberté est assorti d'une obligation de remettre à la disposition de la communauté les modifications apportées au code source du logiciel afin de contribuer à son évolution. L'accessibilité au code source et les droits de copie, de modification et de redistribution qui découlent de ce contrat ont pour contrepartie de n'offrir aux utilisateurs qu'une garantie limitée et de ne faire peser sur l'auteur du logiciel, le titulaire des droits patrimoniaux et les concédants successifs qu'une responsabilité restreinte. A cet égard l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation, à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve donc à des développeurs ou des professionnels avertis possédant des connaissances informatiques approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et/ou de leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. Ce contrat peut être reproduit et diffusé librement, sous réserve de le conserver en l'état, sans ajout ni suppression de clauses. Ce contrat est susceptible de s'appliquer à tout logiciel dont le titulaire des droits patrimoniaux décide de soumettre l'exploitation aux dispositions qu'il contient. Article 1 - DEFINITIONS Dans ce contrat, les termes suivants, lorsqu'ils seront écrits avec une lettre capitale, auront la signification suivante: Contrat: désigne le présent contrat de licence, ses éventuelles versions postérieures et annexes. Logiciel: désigne le logiciel sous sa forme de Code Objet et/ou de Code Source et le cas échéant sa documentation, dans leur état au moment de l'acceptation du Contrat par le Licencié. Logiciel Initial: désigne le Logiciel sous sa forme de Code Source et éventuellement de Code Objet et le cas échéant sa documentation, dans leur état au moment de leur première diffusion sous les termes du Contrat. Logiciel Modifié: désigne le Logiciel modifié par au moins une Contribution Intégrée. Code Source: désigne l'ensemble des instructions et des lignes de programme du Logiciel et auquel l'accès est nécessaire en vue de modifier le Logiciel. Code Objet: désigne les fichiers binaires issus de la compilation du Code Source. Titulaire: désigne le ou les détenteurs des droits patrimoniaux d'auteur sur le Logiciel Initial. Licencié: désigne le ou les utilisateurs du Logiciel ayant accepté le Contrat. Contributeur: désigne le Licencié auteur d'au moins une Contribution Intégrée. Concédant: désigne le Titulaire ou toute personne physique ou morale distribuant le Logiciel sous le Contrat. Contribution Intégrée: désigne l'ensemble des modifications, corrections, traductions, adaptations et/ou nouvelles fonctionnalités intégrées dans le Code Source par tout Contributeur. Module Lié: désigne un ensemble de fichiers sources y compris leur documentation qui, sans modification du Code Source, permet de réaliser des fonctionnalités ou services supplémentaires à ceux fournis par le Logiciel. Logiciel Dérivé: désigne toute combinaison du Logiciel, modifié ou non, et d'un Module Lié. Parties: désigne collectivement le Licencié et le Concédant. Ces termes s'entendent au singulier comme au pluriel. Article 2 - OBJET Le Contrat a pour objet la concession par le Concédant au Licencié d'une licence non exclusive, cessible et mondiale du Logiciel telle que définie ci-après à l'article 5 pour toute la durée de protection des droits portant sur ce Logiciel. Article 3 - ACCEPTATION 3.1 L'acceptation par le Licencié des termes du Contrat est réputée acquise du fait du premier des faits suivants: * (i) le chargement du Logiciel par tout moyen notamment par téléchargement à partir d'un serveur distant ou par chargement à partir d'un support physique; * (ii) le premier exercice par le Licencié de l'un quelconque des droits concédés par le Contrat. 3.2 Un exemplaire du Contrat, contenant notamment un avertissement relatif aux spécificités du Logiciel, à la restriction de garantie et à la limitation à un usage par des utilisateurs expérimentés a été mis à disposition du Licencié préalablement à son acceptation telle que définie à l'article 3.1 ci dessus et le Licencié reconnaît en avoir pris connaissance. Article 4 - ENTREE EN VIGUEUR ET DUREE 4.1 ENTREE EN VIGUEUR Le Contrat entre en vigueur à la date de son acceptation par le Licencié telle que définie en 3.1. 4.2 DUREE Le Contrat produira ses effets pendant toute la durée légale de protection des droits patrimoniaux portant sur le Logiciel. Article 5 - ETENDUE DES DROITS CONCEDES Le Concédant concède au Licencié, qui accepte, les droits suivants sur le Logiciel pour toutes destinations et pour la durée du Contrat dans les conditions ci-après détaillées. Par ailleurs, si le Concédant détient ou venait à détenir un ou plusieurs brevets d'invention protégeant tout ou partie des fonctionnalités du Logiciel ou de ses composants, il s'engage à ne pas opposer les éventuels droits conférés par ces brevets aux Licenciés successifs qui utiliseraient, exploiteraient ou modifieraient le Logiciel. En cas de cession de ces brevets, le Concédant s'engage à faire reprendre les obligations du présent alinéa aux cessionnaires. 5.1 DROIT D'UTILISATION Le Licencié est autorisé à utiliser le Logiciel, sans restriction quant aux domaines d'application, étant ci-après précisé que cela comporte: 1. la reproduction permanente ou provisoire du Logiciel en tout ou partie par tout moyen et sous toute forme. 2. le chargement, l'affichage, l'exécution, ou le stockage du Logiciel sur tout support. 3. la possibilité d'en observer, d'en étudier, ou d'en tester le fonctionnement afin de déterminer les idées et principes qui sont à la base de n'importe quel élément de ce Logiciel; et ceci, lorsque le Licencié effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du Logiciel qu'il est en droit d'effectuer en vertu du Contrat. 5.2 DROIT DE MODIFICATION Le droit de modification comporte le droit de traduire, d'adapter, d'arranger ou d'apporter toute autre modification au Logiciel et le droit de reproduire le logiciel en résultant. Il comprend en particulier le droit de créer un Logiciel Dérivé. Le Licencié est autorisé à apporter toute modification au Logiciel sous réserve de mentionner, de façon explicite, son nom en tant qu'auteur de cette modification et la date de création de celle-ci. 5.3 DROIT DE DISTRIBUTION Le droit de distribution comporte notamment le droit de diffuser, de transmettre et de communiquer le Logiciel au public sur tout support et par tout moyen ainsi que le droit de mettre sur le marché à titre onéreux ou gratuit, un ou des exemplaires du Logiciel par tout procédé. Le Licencié est autorisé à distribuer des copies du Logiciel, modifié ou non, à des tiers dans les conditions ci-après détaillées. 5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION Le Licencié est autorisé à distribuer des copies conformes du Logiciel, sous forme de Code Source ou de Code Objet, à condition que cette distribution respecte les dispositions du Contrat dans leur totalité et soit accompagnée: 1. d'un exemplaire du Contrat, 2. d'un avertissement relatif à la restriction de garantie et de responsabilité du Concédant telle que prévue aux articles 8 et 9, et que, dans le cas où seul le Code Objet du Logiciel est redistribué, le Licencié permette un accès effectif au Code Source complet du Logiciel pendant au moins toute la durée de sa distribution du Logiciel, étant entendu que le coût additionnel d'acquisition du Code Source ne devra pas excéder le simple coût de transfert des données. 5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE Lorsque le Licencié apporte une Contribution Intégrée au Logiciel, les conditions de distribution du Logiciel Modifié en résultant sont alors soumises à l'intégralité des dispositions du Contrat. Le Licencié est autorisé à distribuer le Logiciel Modifié sous forme de code source ou de code objet, à condition que cette distribution respecte les dispositions du Contrat dans leur totalité et soit accompagnée: 1. d'un exemplaire du Contrat, 2. d'un avertissement relatif à la restriction de garantie et de responsabilité du Concédant telle que prévue aux articles 8 et 9, et que, dans le cas où seul le code objet du Logiciel Modifié est redistribué, le Licencié permette un accès effectif à son code source complet pendant au moins toute la durée de sa distribution du Logiciel Modifié, étant entendu que le coût additionnel d'acquisition du code source ne devra pas excéder le simple coût de transfert des données. 5.3.3 DISTRIBUTION DU LOGICIEL DERIVE Lorsque le Licencié crée un Logiciel Dérivé, ce Logiciel Dérivé peut être distribué sous un contrat de licence autre que le présent Contrat à condition de respecter les obligations de mention des droits sur le Logiciel telles que définies à l'article 6.4. Dans le cas où la création du Logiciel Dérivé a nécessité une modification du Code Source le licencié s'engage à ce que: 1. le Logiciel Modifié correspondant à cette modification soit régi par le présent Contrat, 2. les Contributions Intégrées dont le Logiciel Modifié résulte soient clairement identifiées et documentées, 3. le Licencié permette un accès effectif au code source du Logiciel Modifié, pendant au moins toute la durée de la distribution du Logiciel Dérivé, de telle sorte que ces modifications puissent être reprises dans une version ultérieure du Logiciel, étant entendu que le coût additionnel d'acquisition du code source du Logiciel Modifié ne devra pas excéder le simple coût du transfert des données. 5.3.4 COMPATIBILITE AVEC LA LICENCE CeCILL Lorsqu'un Logiciel Modifié contient une Contribution Intégrée soumise au contrat de licence CeCILL, ou lorsqu'un Logiciel Dérivé contient un Module Lié soumis au contrat de licence CeCILL, les stipulations prévues au troisième item de l'article 6.4 sont facultatives. Article 6 - PROPRIETE INTELLECTUELLE 6.1 SUR LE LOGICIEL INITIAL Le Titulaire est détenteur des droits patrimoniaux sur le Logiciel Initial. Toute utilisation du Logiciel Initial est soumise au respect des conditions dans lesquelles le Titulaire a choisi de diffuser son oeuvre et nul autre n'a la faculté de modifier les conditions de diffusion de ce Logiciel Initial. Le Titulaire s'engage à ce que le Logiciel Initial reste au moins régi par le Contrat et ce, pour la durée visée à l'article 4.2. 6.2 SUR LES CONTRIBUTIONS INTEGREES Le Licencié qui a développé une Contribution Intégrée est titulaire sur celle-ci des droits de propriété intellectuelle dans les conditions définies par la législation applicable. 6.3 SUR LES MODULES LIES Le Licencié qui a développé un Module Lié est titulaire sur celui-ci des droits de propriété intellectuelle dans les conditions définies par la législation applicable et reste libre du choix du contrat régissant sa diffusion dans les conditions définies à l'article 5.3.3. 6.4 MENTIONS DES DROITS Le Licencié s'engage expressément: 1. à ne pas supprimer ou modifier de quelque manière que ce soit les mentions de propriété intellectuelle apposées sur le Logiciel; 2. à reproduire à l'identique lesdites mentions de propriété intellectuelle sur les copies du Logiciel modifié ou non; 3. à faire en sorte que l'utilisation du Logiciel, ses mentions de propriété intellectuelle et le fait qu'il est régi par le Contrat soient indiqués dans un texte facilement accessible notamment depuis l'interface de tout Logiciel Dérivé. Le Licencié s'engage à ne pas porter atteinte, directement ou indirectement, aux droits de propriété intellectuelle du Titulaire et/ou des Contributeurs sur le Logiciel et à prendre, le cas échéant, à l'égard de son personnel toutes les mesures nécessaires pour assurer le respect des dits droits de propriété intellectuelle du Titulaire et/ou des Contributeurs. Article 7 - SERVICES ASSOCIES 7.1 Le Contrat n'oblige en aucun cas le Concédant à la réalisation de prestations d'assistance technique ou de maintenance du Logiciel. Cependant le Concédant reste libre de proposer ce type de services. Les termes et conditions d'une telle assistance technique et/ou d'une telle maintenance seront alors déterminés dans un acte séparé. Ces actes de maintenance et/ou assistance technique n'engageront que la seule responsabilité du Concédant qui les propose. 7.2 De même, tout Concédant est libre de proposer, sous sa seule responsabilité, à ses licenciés une garantie, qui n'engagera que lui, lors de la redistribution du Logiciel et/ou du Logiciel Modifié et ce, dans les conditions qu'il souhaite. Cette garantie et les modalités financières de son application feront l'objet d'un acte séparé entre le Concédant et le Licencié. Article 8 - RESPONSABILITE 8.1 Sous réserve des dispositions de l'article 8.2, le Licencié a la faculté, sous réserve de prouver la faute du Concédant concerné, de solliciter la réparation du préjudice direct qu'il subirait du fait du Logiciel et dont il apportera la preuve. 8.2 La responsabilité du Concédant est limitée aux engagements pris en application du Contrat et ne saurait être engagée en raison notamment: (i) des dommages dus à l'inexécution, totale ou partielle, de ses obligations par le Licencié, (ii) des dommages directs ou indirects découlant de l'utilisation ou des performances du Logiciel subis par le Licencié et (iii) plus généralement d'un quelconque dommage indirect. En particulier, les Parties conviennent expressément que tout préjudice financier ou commercial (par exemple perte de données, perte de bénéfices, perte d'exploitation, perte de clientèle ou de commandes, manque à gagner, trouble commercial quelconque) ou toute action dirigée contre le Licencié par un tiers, constitue un dommage indirect et n'ouvre pas droit à réparation par le Concédant. Article 9 - GARANTIE 9.1 Le Licencié reconnaît que l'état actuel des connaissances scientifiques et techniques au moment de la mise en circulation du Logiciel ne permet pas d'en tester et d'en vérifier toutes les utilisations ni de détecter l'existence d'éventuels défauts. L'attention du Licencié a été attirée sur ce point sur les risques associés au chargement, à l'utilisation, la modification et/ou au développement et à la reproduction du Logiciel qui sont réservés à des utilisateurs avertis. Il relève de la responsabilité du Licencié de contrôler, par tous moyens, l'adéquation du produit à ses besoins, son bon fonctionnement et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens. 9.2 Le Concédant déclare de bonne foi être en droit de concéder l'ensemble des droits attachés au Logiciel (comprenant notamment les droits visés à l'article 5). 9.3 Le Licencié reconnaît que le Logiciel est fourni "en l'état" par le Concédant sans autre garantie, expresse ou tacite, que celle prévue à l'article 9.2 et notamment sans aucune garantie sur sa valeur commerciale, son caractère sécurisé, innovant ou pertinent. En particulier, le Concédant ne garantit pas que le Logiciel est exempt d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible avec l'équipement du Licencié et sa configuration logicielle ni qu'il remplira les besoins du Licencié. 9.4 Le Concédant ne garantit pas, de manière expresse ou tacite, que le Logiciel ne porte pas atteinte à un quelconque droit de propriété intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout autre droit de propriété. Ainsi, le Concédant exclut toute garantie au profit du Licencié contre les actions en contrefaçon qui pourraient être diligentées au titre de l'utilisation, de la modification, et de la redistribution du Logiciel. Néanmoins, si de telles actions sont exercées contre le Licencié, le Concédant lui apportera son aide technique et juridique pour sa défense. Cette aide technique et juridique est déterminée au cas par cas entre le Concédant concerné et le Licencié dans le cadre d'un protocole d'accord. Le Concédant dégage toute responsabilité quant à l'utilisation de la dénomination du Logiciel par le Licencié. Aucune garantie n'est apportée quant à l'existence de droits antérieurs sur le nom du Logiciel et sur l'existence d'une marque. Article 10 - RESILIATION 10.1 En cas de manquement par le Licencié aux obligations mises à sa charge par le Contrat, le Concédant pourra résilier de plein droit le Contrat trente (30) jours après notification adressée au Licencié et restée sans effet. 10.2 Le Licencié dont le Contrat est résilié n'est plus autorisé à utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les licences qu'il aura concédées antérieurement à la résiliation du Contrat resteront valides sous réserve qu'elles aient été effectuées en conformité avec le Contrat. Article 11 - DISPOSITIONS DIVERSES 11.1 CAUSE EXTERIEURE Aucune des Parties ne sera responsable d'un retard ou d'une défaillance d'exécution du Contrat qui serait dû à un cas de force majeure, un cas fortuit ou une cause extérieure, telle que, notamment, le mauvais fonctionnement ou les interruptions du réseau électrique ou de télécommunication, la paralysie du réseau liée à une attaque informatique, l'intervention des autorités gouvernementales, les catastrophes naturelles, les dégâts des eaux, les tremblements de terre, le feu, les explosions, les grèves et les conflits sociaux, l'état de guerre... 11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou plusieurs occasions de se prévaloir d'une ou plusieurs dispositions du Contrat, ne pourra en aucun cas impliquer renonciation par la Partie intéressée à s'en prévaloir ultérieurement. 11.3 Le Contrat annule et remplace toute convention antérieure, écrite ou orale, entre les Parties sur le même objet et constitue l'accord entier entre les Parties sur cet objet. Aucune addition ou modification aux termes du Contrat n'aura d'effet à l'égard des Parties à moins d'être faite par écrit et signée par leurs représentants dûment habilités. 11.4 Dans l'hypothèse où une ou plusieurs des dispositions du Contrat s'avèrerait contraire à une loi ou à un texte applicable, existants ou futurs, cette loi ou ce texte prévaudrait, et les Parties feraient les amendements nécessaires pour se conformer à cette loi ou à ce texte. Toutes les autres dispositions resteront en vigueur. De même, la nullité, pour quelque raison que ce soit, d'une des dispositions du Contrat ne saurait entraîner la nullité de l'ensemble du Contrat. 11.5 LANGUE Le Contrat est rédigé en langue française et en langue anglaise, ces deux versions faisant également foi. Article 12 - NOUVELLES VERSIONS DU CONTRAT 12.1 Toute personne est autorisée à copier et distribuer des copies de ce Contrat. 12.2 Afin d'en préserver la cohérence, le texte du Contrat est protégé et ne peut être modifié que par les auteurs de la licence, lesquels se réservent le droit de publier périodiquement des mises à jour ou de nouvelles versions du Contrat, qui posséderont chacune un numéro distinct. Ces versions ultérieures seront susceptibles de prendre en compte de nouvelles problématiques rencontrées par les logiciels libres. 12.3 Tout Logiciel diffusé sous une version donnée du Contrat ne pourra faire l'objet d'une diffusion ultérieure que sous la même version du Contrat ou une version postérieure. Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE 13.1 Le Contrat est régi par la loi française. Les Parties conviennent de tenter de régler à l'amiable les différends ou litiges qui viendraient à se produire par suite ou à l'occasion du Contrat. 13.2 A défaut d'accord amiable dans un délai de deux (2) mois à compter de leur survenance et sauf situation relevant d'une procédure d'urgence, les différends ou litiges seront portés par la Partie la plus diligente devant les Tribunaux compétents de Paris. Version 1.0 du 2006-09-05. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/ptscotch_user7.0.pdf000066400000000000000000031420561514310134000255410ustar00rootroot00000000000000%PDF-1.7 %Çì¢ %%Invocation: gs -sPAPERSIZE=a4 -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -sPAPERSIZE=a4 - 173 0 obj <> stream xœµZIs·¾óšKŽï”Ì«Çhì¸ENœT\±#Ûô)ÎAµ¸DQ–Lmÿ>_70o³P¬”T:ÂÃôúõ†™×3ÒÁð¿ö÷ñ˳ײs’ 2ÖäDøkè|Éc|ð«)…Ãß^ýpfÏÎ^Ÿ‘i4R‡¯/äPØá‚×6ïópÎë’\yø‰×äb4<–3ÉPHÃ+^'“bÃMÛÏ1žÎðú¹¬-8Øÿ^|+ÂåN8Cc&Öüââ<¬â¸œ†ky2Xï†ËºÄÙ‘NC—F—C™ˆ\ñq—¼+4ü*²CÞ”‡GG¥$¿¡u•vÒ”¼mZTk4M‹I®iZ÷š‚ç\o‡ìmJÃÈkom4y0óþ¦1΃ƒuùpn\oKÕçg~,æè²~É}ŒÎO”žo„´Í%–áÏrÞoä¼KOÓðÞ6Ð? og“VE³¥ÉÔluE¾I›Í¡Œ'=Kkit=wyL%ç*ì/ƒ(`,7¼;Ú4z1M2‘ec(¥ª“Àî1àzvÕ+¸Ê;0/Œç<@³ž6Çz6$›`Õå¶ y[-9ÎâMZYÄÚXB ñ¹1µlC±¶ªõ÷c¦‘‚ ÕÒÅ“s…«³9eÏrÒh³õqøãÑ»0ã+@ÈÆH®‚¨]8ÙXq‘#OŽXäˆÍ'êÁ+uX¯õ™gЏ–P3Rªm¶ÂyNcñÀù1z×`×Î;ß“yÇB,± 1uÔÅ«T¼ô“7ü$e@îGas`°öFÆóóaÞôÃ×¢˜'ãRgA­d÷àI"휷³ê*moÒð'^¦1 ªÿ%˜D¨{®qw&•áGAŽ'$èáŸKHx~¸WÉx@ôçïäଜçm nø+H&[ç†ï5™ŸêÄá×\alØÆf{Í^³ Sœ¯^ ¨ T¤/­ÅåìÈû÷¿«ú;ÛRY³ážå^Ša|ŠvÒ3×þ“JŽüâ—û•W¢ø…üÈæ-lÆöœú}&&µ,Y“Sþ]ógðóá»^*‘´$Lœ/¶§äÓ^¤* qy7 ¼ÓìàMLSF(´ ø¾Ë”catŽ6 ’¨¹eÜ®ÒÙŠçFÛ~?&J(n ;sèµWkÓ›ŒE€Mн¯4ùFê‘7%Ùá{ #Ä ü¨÷OÌ3Ò´ðœc4*ïï<;•¯K@¡1râï¼üÛ2Všm®Öû²~¦Öo–¶lû×jý—šÕúÑhŽjýTQ~Þ¬{q´Æ¤Úzœ’É\õ4dÜ®…˜£IÃHÃë#û ½ÜJ;`Wf8' vçˆÞózR*2ZôJÒ¢àÊs‹‚„OXˆV÷YRçJôբȉBëEÐ' CÝp«ˆ Il8n cÉM1ò%!Ú$¤ ø@±zÚøpj)²–âœ,÷Ò\^Qþâ$ÆEë}Õç,qÆüµ¦Ï€” ©È£õ!ÛR£œ@" SZ‹šL°”ªùÉqY{Y3XB.ß Z±Üv]sõ-1IZºÆ)ºõä”ÐLRBºîxÔ&9 jÑg6#d²aI…Û -™ qf§u}RÅp¶çÒo02pÔµÃz÷Ѷ¹®´HÝ/š÷ÃRÜ(âj^×'^—|ÀÉ•šgYwKQSÓ¦ªä0º¡áÝ•äÕ&Ï“ mwàéqžƒ4Ü=³ršƒT€™€éäâ8³’zè Ï!uâiH¯Ó aiÜ\2è|ÚÄS÷ëÔw7Ív¢ï6î1ôð<ÜàdŠšñ e.°×3jOHÜT S9=âA”#.‡uij‰;‰gBqšjˆÊ4‰mÉ“jÎL³\ÝÞÐŒÃfS3î>—`´ØöÖ aë•9b%2mJI É9‚À5~Œ]‡OgµöWr,:ïcŸ !€'ÿ¡Ì“´äSoM½ß9âq¥“áûfŠœbîä™UýmìŽÈŒ0 Gnx àâ>A‹‚L¶gÎmllYh•ú¯*u(Ô!|ɩʪѦOsƒnàMŸ6ÌÓ™V²QK«\š0(¦3ô;É[à¢o1®1ߣ´Ú.ºÖ ø·z§,¦Þê³Jyò™K‹Ò$ÛNgôUWÃFbN!øšq—ÿ£e°Ù´ˆµ“'»"r>)Ø×Ÿg °§ê´—@~®k1ËJ’‹&Ô•1xÑMÊÄqÃWUÜ!¤ŽI§Ì»#ú[(Ÿ½ßq%¹¤\¤»5BÔƒOëƒÙçótrMñà]g⻵*¢Ã4#*<À&Þ¤ý.··J¥q·‡î݆of¥ãR§Bž:_‰Äm+jjkè ½¡)t:v±*VÁ’ï þNЭjÍþ_íguZ¢ìÔjÜ4íjÜP›€[‘÷Ðr*þ:†K{…Aë¾´|ô<¥ïi¿W²täΚhŒ¢Õ®Ù¼Ço(#¿äXkz‚› yÌV³ìkÀ 3“fvׯš5„Ý^¾*Ê6êŠÖ´ZDª‹ÄæSо›Ë:3®³+'‡·K­¡ÛÌ<“-(ŸÂ‡¸˜Â§¯óp‚eWH¾ó+ކw¦J´E^eŸJOà"÷VÔæàu„¼d²œFYïüÆ8ÇJ¶© t™ N{i/u ø cBÇʬì^§Ñ2ª3ÛÓ’Hݲðµy@°Íƒ•K›KÊùÿšd݆&4}ashB½ôÎæEΜo:`R“Â'º†U´ìVÉ[ºy°Ç5sOÔ÷Ž"L]FеÔyk°9]šL] EÌÕfûùÇ-<¿¶³·]v@Š„ú2ת-㤽QËk>kAŒníR¤#ì|ølS¶©{EÄšÓ›ã¾óãÔDßǧ†.l6‚¼Á-0¦ó]¥y>2‹’æ I*h§€}_©ÁŸžXvKÕ]3ûVÄtm;”Z´,g%ð•àF†)¸ï8(°òÞ„.ÍíôT3ÂZ òTëß«øüªzïžðº¹Îøâ"Z\„\j”¯ÑxÙhY6¹ -ðý^RՊʼnña=êr¹ÓT£…ØÀ9y Æàò”lŸ°¸˜Dêü]:´š%–óŽî¦.k7Œp·›­.ðvn?eTâÙ†V£R´nõ)ÙQânë¼É°ö9oYÝ’Ò:¼›í§[=1XFu,Ë )*¦ú–KÊ´W‚öÊ[É…å˜ë\ù«‰ÛzU(n¹|…pE¹Çâº/qfMNÂ}¬ÊÚ¸r–jáØmPûõÛíÌÔR.¨½868WÞ]º^ÜÃÉ•‡Û½Uèr'à7Å-̶«f/ïÌS—èwº­Ý ±Ë0úEb~ZùðH¬¡³¨=Ra<v㪔ˆ»ßWòü¢ä³dSݘ£%ƒ‘é–6œ“±‹\À_-0ãUô°yëVKÕ¢‹CÅE× »6–½@¾SS((Ž˜ãiq¥µùÂjºµ½ûÒd®¸¨'*õW4WVo=**7;ÂÚˆ¯î~V÷RýUwfL q¹×ÞLíß ¿Z‚ŠxC_–w–Z ‹ÏÇ´¸Î9Û}D-dò²ô¬Ò݆â\šо@[,”ù›‘m­£6›À`@Ý»å}!7|üÅÐâí"?—Ün=©1¶ÞôY_ÐøÍÑI£ö^}£Kà;ÜŒÕÓ%ÔB<ñ%y•íÄù0ô.ÿU$4¹[^wë9Y½‹…Ý ÔëM¿\ÕyÛù´$ï¼e`¯ˆ8Ï·3^¹£½É ^¿ß»gYTcžõkÆ¿­áÐwdòI#`Tn~pIü®ÌÈ÷^AQ9ÛÈÏ|sqöþýß<ªendstream endobj 195 0 obj <> stream xœí\Isã6¾«æGè(§J öå˜eR“TR•E9¥æà±Ýv¦ìvï•̯Ÿ÷| ‘RËn[­êC³Ñ ø|ï{+õzɾdø'ý}q·`ËëÅë£Ëô×ÅÝòëÍâË_¹uK®©ŒXn^,â=|É9oÌÒXÙp+—›»Å«oÎÖ¬Qœ;ÉW÷xm…“F®^žIÞhîìêŽ íµ«+¼æÆ¡Ó %U6ã-^k)ŒvÿÞü€¢x·ô7Â(EˆF3¿Üü¸Ø|ñÇŠŸ­½P†Ç|7Já ã¸4k¼ô&.Í-×Ò¯Þ„Æj§PTx:w̯.qØ8õ]½'×a:ó~°ÌŸá-AXfaxy-¥Vð̵°Ä3+F™g2½‚cô`cA6·\sx­ùrs¹ÀW›¤´Ê¯šðd©­°ø†œ ØðÕoag@z'¢<ñ«óþÆ4,¸Hb¦EàUàª×ZÝÁlK&è¯Èâô:­âø†8.õõÙa œDi5ƒqþ ^*ïçÜ£>ØîzÉ]Ó7Ï#n:t´P/âCñAœ2ho˜ÑÞG=³VI8Ø+„‡l5xP¼‘E(ÆþŠ ˆZ1zâ%Oàe˜e¦¶ÞKò €6Åtƒ œiÐ;é4µÐôPoÉ5™òŸ ÝÒétü’¦F§ño€† ú©÷ÑBÃîFÆ‘OdÏÅ_Ý’ðäºOH¤BhÆ24Æ¡,~¨Ã10¯@@Â)@B’s×GNñÞÏ9‹ï1öZ‘ÞÈèmÁÔìߢ#aÀ8ðÌߥaÒyïóLEOu÷¸=wdKônn@)ƒ£%*:IÜ›Dÿ ¬Ûû²'W0Þ­~ѳP̵ÆÂé(ùHa•J@eý„ƶ¡bûëðe5«›™ñ©!àÒÆðå32Jáñ¹Q"»‰P†ƒžtö|°­œq€>¸"®x+°OÉ›)@WqΕiœ9H0oGíTÔ}TŽ|îäŒv{7ˆå°‹zxï"X8ça ÅŒp™*ÓC¤ê>O±Ûiœ—Õí2ͬ‹vµÀ XŽþÇP5"‹ñ©üW=?üÜa¦ ¡V¦ŸcêÏ4æÁ"ÀY˜ Tæ-l¯i©ŒÍ È'MŒÖTÙ}ÈGöØÛôØ£!x»ë°u3 jÌçd~¶sΘª¹'×ýpY9 Rio²ÔÆÚjL©óƒ@1âtÒ:‚¿çù!ã=3»â°ê¡8åðÕŒà‰<ÔœCÈN|¿€[ÿ@¤j8ø îðqÒó°“Üøtå´ƒóôãÖSχÍ>q@È ª«DAÇÎU€ÇM2‘ª[Ïf§¬¶Ãm`<§¸IÉjj´–MÙV7H‚.9 <Ô']ÅzNÁo`H÷c/ÓÃð'öB³ˆÅ´Ry#Ö_tN&!2t¹¡ºo½BÑæ„ª”x*|I¡ZSˆuäF­EÇžÆ —-ù¿Üaë®[¿QêŠ\!¯¤¸¯j]Ž þª½õ-,1júø‚e ‹N`í¹lI·¤È*™/GÎsõúôàã$Nf—X‚ó&Àj©§[VŒa†¦adã9Ò;Ä»˜w¼ÕŸðÀñC_¦5¯>»âªÐ¢–æ–¬^cï«Dö‚gOºJid¬Î×£çTÓ¶î-d»ÉÀü1 E ŽAEy¨´Ó¶Š ÿÁD¶Î}¯ :scÀ‡ªk hH㵚Çã[ª-‰ÇÿÕ'×ÓIØŒ)Ç5–줹z'݇_;pnâ¥Øn™‰ÞÁI¶„gÐ:²«‹à”5Üu FB9 ê4ñc@(ç}â´Œ©y¬„ás~rÄl y*ð%x ññ9¸˜~|œ1p¤Êœ ’ 2Uø“¹héóŸê ¿‡]g ôíI(ׂťÝçxÍ3^fÕ¾¾O#Tø¼„ƒã]}/•ú´cj‡RŸš*õ‘8 ÆÉèÄ8ÝpÞ…2ðÈìmÀ3·2å¥ó5¨Ö“…ü9OÅüÑ›28~Œ?<ÄíƒVÇ vÄñaGŸ°³;vÜ;¡±j+vŠýŽG‰~ÂÎNØ™æu|ةجvæcgfk–î=´ï‚+Æ„“.k¼¢[ÑcN„ÜŠt Ï…~#“>†q†¹a÷k7Ÿ~0﵌ɬq]Jˆ:\#©Sé÷q*ë”7î›-d1hó×¶œ#ÍûÐÔòÖ< vJø}ËGÿ O©ô˜Á†m᪛ǥ±þ¬Pt¬€¨ØjKOÿ/’œÓ>[ÎâüSwØ*?'ç¶Zº¦Ð*mµ&H%¸IIB6¥Ú؆Óã9¼…ü €I_¨;öIêAݱÍcŸDó¦·?ãÉØqrüLµ½!¤·—L Ô?lÜ5RF#&ø> \w’òÄÏ05S²-`‚)ûÐ}+”ªÊÚäiãJM¨þ¥‚<1r|Ÿà˰όW ºy†î®Rùµ‘ž_¿CãÒk^åÑ.ù˜8Ωk\¥.áA K^ã„GÄF^©zóøõUÞ6]…ÈT¡Ž¶MÓSÇC}öýxŽäºýPñzËM¡©,wÞ^óÚUþJeq#*î­îMTn4\n±¸±‹-ëiûtY$R©·4 ÁÖ4ò‘?þ:@}® ½f{=Ï‚õ ¢ß{÷¶cO4Xˆ™ïÎ`û™u:à =·šqKý6w©jCV¥±…€«æPÄÅþ-Laœ(m6¥¨lNST¶?Ìvl( DTóñk•ýÄqŒÙÙ¾¿ߟ(D}®xô ìUÊeœ¾þŒð’Ã¥í¬Â¥Â38ŒŸÅØNH}yÏaŸlgBÑ„péTÈ(â¥V|’FEqÂuù¦»,Æ’àYáÆí‘O9G¢5þF7óüîj½u]ö¹.‚ˆ ìÕv¸¬Ö5vÙIWÃ5Pæb ñ¨—2‰1@müi‰ºDàk+->~Ÿ+&UŽI΀RÌ5„[«å}?ú¦Äleà¯]1þ,8ì “ÿDÆÚh¬J}tÔ óªÈgó‰äd :ƒ/÷©%Ü9úÈyÛ^ A4Ó™ó³­¢ðŽévöHŽpyQ´Šr€qBžLᎠ|Ñ™Âîw¡vC¥9*ßõ£ SP<™ÂO«á´_âO4†ûá/Šáœn¿ÀŸÿ¾±;¯endstream endobj 245 0 obj <> stream xœíIsÜ6€ïý+úHM•lËq'žL9•ÄÒ̦æàÝ.[–c)qœ_? Ù|É&»A‰j©KA‰ï­Ñ¿­9k~ªß/.V|ýfõÛJÄÚuõëÅÅúÛóÕ7O…wkϼ‘F¯Ï_¯Êψµ‚™µ±Š «Öç«ÿöäÔKÍÀÙâÉÉ)gÞ¦xÊÖƒä¶xÊÆ¶øÊÊ8'Šg¡(œ3^Ñê¯'§Ò[© y™î¹*|,‚ãúçÿ Ãs¼5<ͼŸ É@±>G†RÊj_°Ø½+m!NN—xÅ¿°ðx-Q\ÅáZ0x±w¤ñÇP ÎÉâÍÉ©R oÊ'Ò1n¿“ȯC¹=íð4–µ± [mÞ’~ðaÆÂ&¯bÃ-7ø¼6÷ó’´Þ2\‡ÃUÞ†ÛŽ÷çü-µ÷Ì9w«¶»…0Ša*>W!½/øIàKJæ…%Nc8 R&´aÎßa ÉU˜ˆËØX{ ˆgÙ÷øÁOÓYå„uÛ©f¤¤€\‡ZÍŒ‡V焬˦1¶@œÁ©6oŸKÞAØ Ô£Tï|(¿#øTõ V"ƒŒ·gj6d4ÓÂå"£px~fðII“j¼Ãŧ.ŒvgG5ìDÛ,”áíg=„Ñ‹ð€-vkîF-£+¾4ÊŽâ—Ð4–Ur& ˆÆ-7ã"g†ï#§;Ù.¹q…ˆzÖØ(*~´'»‰6BP!”Ó`£™Ê£?7µç½ þ±)†‹|¾ú5\ ÜúÍÕ £XYñõ㕨54¬AÞ™[_`AKd65Vgƒ‹ÉÈëEì‚é² Æ=”Ëš±½iŠŸCQ‡QDi©j?5Å·­ûèÄFAޏòõÃJ{SÝ7àjÑæÏI7Cá&•ÌÚ~+ﭫ͉&øDú{[)y庚€{'6š@D5<@œ•ƒT‰‚Ye²¤E.$-É1“H%£ªÉ‘ lJG0.šâ«F0®&KƒôL[¸;ÂPzКL-Ùfµ ðkØ#?®nÁÎ!¾-Þ0à¶’†îß]ÔÒÒDÚµìDU“# ܇UáŽ8\öÚ‰—‰eñ]Sü˜ØC’-dàÄÝúQ^¢4T‰÷&ÿ¾J˜cq0šèõ÷ÆÝ‰^ƒ×c¦É§×´Ì F)©L@cUt¨fUôÆ1?#7µ5ÝÒqØé#öýkõÔ9Ô\hÕ¬dHoÝ·¶Û2J›±ÍQ$ðIÞ§ý¸ò„£v€·S|§G“Ëûï¡Ê¦D u‚Qqë{Vä¢,ÓôSµ IƒÊë#̻Ün™æfy¦•Ðb®¥7o˜p]×dp-Ãö|7›’þ!ùXǹxuäú®q-–æÚaì 4庪ÉáÚiÆÕlúšdóú4m’Ê@?íá´<³Ó'÷–ñtÕF¼>»öŠ' ãriÆ-rÙzƒ¨®ÉaÜ ü 7À8ÑÝ—M_Žº;Ÿëyu·Zškðgr]Õäp zζ.ùcS$©²úBVuHš›hñ_z•?ȳˆÚE0öt‰’žd•»^vmožÂ^ÕäÀ® Sv6%ÞOû1°Ìã:]–œW‰ÃÒ\+Í™¤ “º&‡ë°Ót¶´÷Ó^ÅL”8YX'iï1Øþ÷ âÔÿÞs=‡ n–F\ ÍLKuW59ˆKÁ¤™MuŸõú!diçºìÂ͹dIOáé’åž 7q»4âÜy&é†×º&qîXØo4?âDaÿÕôpLîÁuº?¯wâæZx¼áÖ uMרF/À5]=}tO¦2ž.º·Ü“lÆýÒŒ;嘠i”º&‡q‡RÂoBwï£×=9êî½¹Œ»ìÄWÍÁ¿âøc¼:p­Šoš¶?WçÕ«: ßxÀ¿î;mñõÆx¥®…®q€;¯Ö’ã2ÆV[̘:]H‡‚³í¾êš ŽÁ|/|õo¢#:ôøbÌT:ÌòNþïÌK¿½(0m¿4P×äÀ¬ùù^ø:K.‹ƒ¹,˜;_²ƒC`÷;»{Ð=«ÊQÃ'º˜ž“Óÿ©uþ³lX¬NzD/`ô$â~l›—7ã<(¢pÉÃ/:ÿRt¿u‚Év£Ö™0ãÞMç@Š0‰TŸV59ú¦Ó³éÓǽµWÇ+KŸæìÛúµ ÂÌf¾åéV590sǤ›ÍÓm†OÛöÙq„y˜Ç¶­Gn/³Ït륫º&f ð­–³­>ï3=«†,DmŠd[FóöT¯ 8…>ˆÞ7ÿ{¨Œ§æÐ6|âK[ª[Žñð…ÓÎSÆëš Æ‘F½ãÿémKV>F<•¹MO·É…MdvâÁŸîà“¾sµ<1Äì‹kZáᜇâ~žº¡c÷´–Lû䨽xò¢ ¯»mr6Íé1¶ pÐÏìpýÕK‡‹àd<Œ€|áGU“ó…a9w¶ú_·þ´Ý£œëºGϯ,U5'0 á™™øn÷ËKG‹Ø‡Ò:౪É9à¨ùÖ–Ç`8öࢷ_²ŸŸ¼ 5’Œ¾ç{ô áéFOÇ,—ëS´PΠ± ßâP8ýºú?Ù_Nendstream endobj 303 0 obj <> stream xœíKs#·Çïü4ÿFø2éƒ<ö­ý·“å}¨NüYZáÎà]·JŒ›àÎKãn¸ƒ/Œ{cÉÁÝøv:¸ ͇¤Ëý)9•ܳ*SÃÜ^å\qçîZFe–º—ŠÇlq×Tg1î%wð\™;!uÏÆ}ó·HþëM˜2‹õ??ð­#Bò±>÷IgàëÉ…×ûZKøÒ­ s?.YDÕ‚ÃnàéÎcõ\µ]ô§•Ôm/©QBñHÛKâÂûþ¥—\?:㥣6Šs'€o,9Œsÿ½Vñq!Êñ.ârâóf¤¥C8ŠQŒxcÉAœÂÚÒ2>ñ]Q¢×;#q?ÀŒ´tdެ‰ÀŽykÉÀ†ðß çCûUr„ÛTóõ,7ªˆv¼Ü8sêJÓnáÊL{cÉ¡ÝÂH¶´ó>É-êð°80}Æã<Øøè!‚ÔO}B¸®"qo,9¸es…q§ØK0i4ùN£Gæ²`¦pÒÁ]Å$§B8ÓD¥•“>Xí'ˆÜ¸¡? Âߣcàúa¸^|_ÍÝQõ?!s}²šwúÞ vâz1û»:¿À0sœ$eêRTÏ·Ž)÷öG#¥Árp¿­§Õb·úœîQH«¥‘DiucÉÑji`„ƒiu:ƃF@‡˜¼Z>*IË1øîSœ”sÕç8ç[Y"”ç}ï§—¦]HÛ-kh-9´ƒ¨êáåÓ¾cÝ|¡½C{œ ŽiÏ×vQšv.RWÛKíœÆla?ü«ÐLV>Ô‡Ø1«\Htîà)Qx”SqgÁù.žaë—(ôå”Çþ¨?xÒ¶N¬ÄQy~Nµ°0‘ò\T83³6´›Y;~vˆÖBNÉ׆)ª×N¤Ç­%CaBi_Q Z“xz“á?…æ}²ù1Œp½[B—r†1ÂË øn†ðž¤W }5\溱äpm%ŒÝ÷ª§pýyh¢Ü¿Ÿ#Ä{^5z’^ÊÏZÄ×;ËÏ&L/íJ ÃY·>¢µä n8%ýJ´)ˆ£Eæ´#üa;B[ÇØçÈY=W°ãòæà| é–¥¹VNEÒÝXr¸V¾Þú•Ã3¹Žg–1×3K4§äKr¿ûÍxE‘ID{œ>%2¹wUwi(fÝÿ3tðrŒËðÜDîEÀ÷!'ÄbÏžSêÒD éýd ucÉáZH˜Áç øŸ“ªŒ”/\šë|‡Û”æš3Û-kh-9\ƒË®%kS¸Î-JX¸ÞÇuœîzP‡Û–æš:Ñ-eh-9\SÈõ+§p}™„ùE¯ÏƒkW˜kî´ëE\·– ®a¢lž^OàÇÛì\ê²Ì=Šð8uïÚ3qþælã‹_WGUTŠÍgá‚ÞÕãOÇ :cŠ\Z¬êR·¹}ÃèA‹´‘m±ñädàÄNqXkÉW€F&ŠÃ¦ˆ+Ú0i'Zc ‰‹ÓpI•pÇøÈÚ/¶’z9 €éÜè!‰D;›ýÏ«›"†ªDzEÕãñ”,”&ðEò*Ù«$•ÿ„E¯`‚Â(kŸ;ðìfQxšò*5àÛ‘×Æ’#¯RayM} äÉ¡ËÚð±å5.G™7'àºt^p¼ÖÐZr¸†±-ÏÂzYB;6Öqÿ¼ÇÖ¥s18g’èŽ\7–¬9Ì3už\çnæ±p=•kì OˆyÈçñ†¯ûµÒ˜ÎûcÇegñ¹ºÍØ‚ÇÖðî ½øÂ;}á¸p¦/,ÓâZÚf.Xk$®­%C\}•/Ó2K\ó‚Ð @©Í(7è)ŒÞ-N-­?§–¢Eáµd&(¡jÕÉ) q\8å“ÐÝtÇyà%(í83+,axƒÖ’óXx¨+üÌÚ`éµç6ÇéûS~Zc?í¥ýifüuàÝiZKí>$¡JKþ>Úkïí®2@~éìg¦¬édµ–ò•%ª-È*FþŽºÚ^lg_UìË,×ðÄ·(¿Õ°ô€f^eøø¥ó L–»iÿ­%|©ˆk+¶Î ü™¥bé/&ý—gx_^ÞëÀ)\"›^ ÂÂË;ßÃR Pu–*p1Ú<ÉÇ%ëDÖf>4AC.:‰ .MÑ^°¤‰–p¼1„ùåâ¥WVœrDvгZKâN#y¿8kæfa;´½—½ìý‘G{\\;sÚK¯¦XŸâ0í­%ƒv+óg} ÚwÈ|o³° Õ–P£ç–Š¿ÜÜ&Î'ã®Ã¤ñ­ïÁ%`‰ê½™Wõj´F˜šå§¥¦7ê=bZª_]²q¿¨ûê` ¥ÛeÉaìªR3]euZeKÏ •åÕžø—zkKÖ/õ‚€5û¤…‰l,½uó}ÒŠDö1Œ°ü$zž°Æ•߯y|Ôá¥'†ÐN¯}´–œmKQ¢¾?+â›ïÚH;0Îdë Ы¥­o[×÷­púfõ›u(*endstream endobj 360 0 obj <> stream xœí]Gs\Ǿ£\þ {\ºˆçÉ¡|r³lYDÙÛ@•"¨ä_ïî ïõ¤·»Ø)‰,85š7¡§Ã×a_nØÄ7 ÿKÿ^Þž±ÍõÙ—g<ônÒ?—·›_]œýüSîØÆOÞ£6ŸŸÅoø†+?)­6ÆÊ‰[¹¹¸=ûçÖ>a“’Ò*¿žœ³IJm…Ýò¥Û„¦òV#ä<âß„E…ÔtQÉ'ç,.}qË<ƒÑ\:¥íöסéÛ¿.½Ý¿Ÿ›¸ÈGgÕ´Û\ߟ©‰éÍ7@ˆß .% O&'«7·ÐcÔäÌÜssölH®jç™\0Ťâ ¹>[ööºj*ÜÅöewÀ'Ý^2özž!R³ºB-&mÝLM¸ÍØd?ySyçs‰¦im¸\)\âR.¼ß²¥)ç&ÒòÈ:i¡6çþU†Gîæ{ K Ÿúí§8Bi€;Ÿ/#î°[[íà¯Hûå2äöÉ9Ì<1«Â§ÞÏp°2Ì2SLBû_?9ç3D–|Fh晤˼ŽËH.·/È|ñC#†;½!Gÿ"¶·.—@FØ÷¹‚(¼ï̆ìnÓË,‰c¶ƒ¨ ÙNëØ®«nù;R·³jUNTª5õ£Z•ÑQµÅø|iÞ-ªõª«9o÷Ò²q†Ëâ|–5@maKÉþÀ˜½§YU¥Y…¤Î,®ì‘,.Þ5‹Ã6&A9Y”/Ñd¯—Þ—æGË€‹¥ù‡¥ù¬£³p “-²JÔÙ.^©¹ç!:[€@Æ)ÀžEM‚\²³ é0NK·¡8Ÿ¬²|±,_téÆi®#b÷—ž€õ±™ íÝca³TùzíÆÙ-U‡e*ß–TÁ6 rõ"U¹ç©‚)ÐÞ TdI¨ŽÙF*º RÒRÓ³‰}þ®kàú‰§?-3|Ó]â»u©mÉÊ¡¤i’¦÷sÞwKÚa Ó·&iP°³TÒRÏ1’ææ |Hö‘Eíˆ}dQ£û8DÖþ´4$?ï=*ì X"X{Bªs Ýd9ßœ#˜ç.RÌ›*Ô¤a?Þ0cøÆ\\m¯—Ñíæ–I®b¬€;g¼Œ.³õZ0›Ûd°C¿ý‚ŒŽ¿–èJòÂrÐÛÉÉ‹þ}ljÇéí²W“GSÚl××$œu&äă0§Tô‹ÖÇǬÍMÿ*'Crœ Lf­’Öå6Æ¥sº¸)QÆT°Ç8ÏÛe¿÷(Äef˜?Ÿ]ülÈ2bf™ß†ˆ˜ôšWOCGŸåò~@œkñ:|Ú4FEf¿[cNP¨®hÓZ†jQiHùƒãXï—uêÚ‡üvžFÐ£íªª’3ßÑÄ-QD—!Œ©YYCïý®T>™3¿y"ÜWuҽƜ5\É-tæÿn 3ËÉq~4ÓF„Ý|à´ú,0=2WhŠ8@bYIü> t‡+ÂZ+d§Jk®Ê%j+ Ðs’’9.S8æÅäF]ÖFݺ Xr©°;ð“b"«f4Û\h`D,¸=ѽ×kîu„BÃ6DÌan¸@½{.ˆœ²1–b”)›—ôËÀ½Š;#Q§â¹„“&U¸Í,Ý+Ÿ|°ŸŸ! ¹![*h.”‹â¬¸ÅÍæ#¸è0­2´?ë›4 eçŠþ/È$—¨˜ À·qãR]|új™=6A xžÄÛäãàˆëe³}lå&ÒÙ˜ ¤XÁɘ҅@ÿ”Xºh µW¥iË?8 §óÁ5tŠ™w¥â †–­Nº(,ZšKn˜]Úû9öªÄä´$Y¶z®pé?4»ä è¦oâQÊ:(q1ÙÐuWM?§ "ì\²ætøíœcPtÔhƒ +ë«=-N ¢IÉBÿ’˜’tóLQžQ kFŸÞ'ŠÜ¢|ò¢É<•K†CžOSF/:ͦ×óÉÈ}0ám0ÎLë‚—ïô¢®gJòb¥«—“R|Ìçaøb™è4ØøÆ®‡8@%c̃нc²¡¶'¼Rº@bí´[– #;À¥Ü×…”uñÌU\°}y—T¢:x@Ý`b³”dÆþAWh×1 í—•ìãlóUåŠçÀüóU©¡¨£|¤s”>ùPA„t<×{ãX,eX.*ºÁ:5W)½È›;€nît±§Ñ’ôâGãk@Œ[´å´™)3hŽ€a¿~ûu°€Ò•å’ ;Qkf\Í©BS”MÏB¹u­É£å°äbTɰZ!ââÛ„Í?©Zª‰É ‰[vòwpaØû]Ä=`×™}ƒ½x®WIWj^Y£õŒô0™ðÁ²P+Óa‹Tj‚‹Ãê ‚T^-«'‰ç*Ó¹ôñÂW-VÞ·ñ†o­/*X(\á ¯êå™ t×ñSpó¦¿<Ñš”H#vƒóI€§® D\^;&òUTåÖÔl5órûe;æ²=PØWÅ9x8nõ ö 锺­SJÇ0Wé-jeØ(ØOánüÓ(1ÊÁmÎ9àÑ¥Vž{8+H™™eQUF¿‰Áÿš®aU!MÄøŽEd+ó‚Ä6 ¦…`7ƒ‹$[Œ’—èSšªŠ’G>éè]$öDO‡ÜÅàCÄàIÂ6û+2YÛ2Üø{TÕEë‰8j$£#-²ßs(›RÀà´äžª(*ä[@—@Aôˆ‡rh)ì>Ògdã®âŒ\ëöÒÄą˶ÊX,Ì’—ÎkÜØ«…ÏÞÄ}•g( Pp¬/!j®è^ŸÖƒqT¬èŒq}ã•5…ˆ}Ƨ“=Kg/¤Vg…D.þ‹‚ñjÝPè„ dL+›DAÍG±«x|»Rù8°" _?lÊœÆÅYö)Nì'/ki  ÝÖÔ[Ñp8žDiÛH ^¨mtô:[ù QœÜÄøœÃ§ô¢¦iOMæäd@EÇü§²> îˆ{*íã¨F$ò’{ï#Kcªsç9’œÄC•Ö‡·ñ˜peøÖ2}ÇŒž^gK¢ô¡i¬Qn2î—Í‘êp 61Ø7å0ÌŽ’ A_–Iï]Œp“å~"ÜÎnÖîÄÑ”P5’ì™ò­§#ºJ‚$Nx–‡…ì$l Hô®Ö„‘'ª0T'¬‰ÏÍC}J'དྷý÷}Òn ðuE%‘Y¢¹"·@ÙÉ:·Æ¥p “I-½©7q¬ñu\€û>6X٨㔞[«g¢ŠdƒÛ£„ÝdYÈppÅÿíFNh{l"¢¬]—’¼ëLšê.‚s¦ÔÐ;»k€R Ô¾žuQF§P ¶¼øp§oH$î<š5 x0 N<_^ø¾E£¹u×]ˆ?ÁUR/ îÖ¾êUÊ H[M¼f¼£v%{м(Õü@šËÓ[‡¾sOGO ó„²Z5cïˆt4S2¢Õõ–JOH…îžÝ/=:ÑÓ¸¦ïkû ÃBZ µÉ(šCÝ:%­oU3;ô!P‡fœ ê@(Úœç{é!èðŽŸ“rb`Þ0÷ßx.pj!«ÛŠ@œƒÑl¼¶ÕÔb,'˜?uLi»Ò‰‘e졟ë¥hgÔÈÆœÕ#×5°¨Ü%|ßÞx…Z6é‡jð.0zNAEÈMcÕˆý’{˜7§m7ï[¶Nn½2]ÑÅèê߃8Ï0jƒÚ®Òq]­+Î똔š‚‡´Óµ¥r÷"~g\•òz{À¶T<¥âtáâÌîÌÈ’•:=‰!" É}\=ìöš ×ROš¤¬ äŽ¡—ø6…CYÀ«ÈWÖÔAªÒýL»,ÿX  _WŒ‚ k…‡† T ŽÁ¼¨’Ýè&Ææaë‚—d%ÜÖÓ²t8õÐG¿UÇí¸u¢Ô’£Z˜Œ€Ó,÷žµ5³òx³ ¦›Pî)†ÖAŽ´ìÐ3›Û°kÖubê°J¹Ñ˜{À'n* Á Bô¯×d¾ÞÄ­g÷9c+™§y¶Ú‰#§‡~ô)sIÄ“bõ š–1)ù TÊß¸Ì ßsØ*ýÚjI[õz¯ÓŒýüëòÃg!J›XÞrÖ8½Yþoã|‚ûˆ#œÛ/½˜‡·Ulˆ.LåÊ«þi Æ\Å…¼µ¥ÛPG.Z4²–†ÇÛñ;±àJMZ*b€öð.ð´ˆ`($#*Ý• P›€–ƒýU˜øeæ´P6’¿{ÒJŸµH´%M/`Ù²°˜XS©Š1d&"ºqWDC‰¶_p'Á¤s`¨‰›P:]^J ¿îk#ñFƒÅ7q„æ+•T' ^:p,݉D£©§Â{POÑì!_—y¼îÁjgÝK%K/lÖšÑùÁÍi©©Uî2QéLG>¤¶–$ž®ôÿÇ)ÑDñå+¢ëïbØÑó:f¾«‚îôfÀØDY¬‚1j«kC@“oŸ‘-}‚m¡ºäééƒ l¿Ô] M]¥ 󎲭tLŽùš®~ê¡EŒ’â븦X·L5,JÁ"€¯Ÿh…¿Ò×+À”J§|Æ 5k„"Äy·d¯ £O£Ð:TpŽ„m›_ã¡i²ýŠ=¬–ž;½ì¾ó?HF$'nú‘]œþ'"^G!¼îxÀ²+·ƒCÀeïÀÝ&´ô–¶‰Tã±tx²‘=+v–³ßÇï¬0‡ÆNÑ9óXM²fÔ+‚4µïg*¸*Ý{¬k~ãäE©b[»+—îÙ«Aâ”"78tÔéÛQ¢ÝS ZX5ÕSB[¬OIhUÙG¯ø@+JáØ½kˆéÎqa؈í½=ÿQ—:UÎ ‰/¹ÃrªÔôcWqd•pÿÀ õñJÀWU i: ’éç,ÝÙ¦.=|…cB¯¬Ëñûfú>žWÊ•rÄS¦Î«ÔN¬…l~ æ—±HÒðá#œD„Ò Ç;•¡X©,GÔO·\®g†w(b5“¬¼žýs(9抳ð* üyÜ9·¼¦á@€)›éÉ0wªìOS­«'9¶Yƒ¤Ðëø¡ó¶Ñl@~iW+wÂ9«Â˜öí\ Þ—oçf!s¾W/Ün6ª%¼áym?ðú¥oÙ·‹;=yz§‹oh}õìúÙà[Ö£±„ÌzÁã6ò„òg´5{¢{ÈÁÂ…_ýòÞ ž$aàÒR¦_ã|Xª527cÅ•6M5øânG †GôŽ¿Þ×8úCŒbj[¬ Tˆ ³ý'Ù7ù`†«À¡÷ßd>¹VbÂ'Àã0,Ùj~”|Õ{”’ê&±£ã"Ô˜:„ƒô„uÕ-_%)XrJ˜à©²õ3,£ÞEqˆX'˜f¹Ás•Ʀ'áá èÚ".§Â_K­Òœ=o*Ôõ¸Éèá¥gŠ4Gy“«<_á T š°;Ù@ð¡ákÒ¾Œ.WÌŠóqÕ¼0Ãù´4ÛŸzUÉ•¸déµÑÍÒ,ô#^eT¥C¨h„Y©†8üeõ<ü>.dBÕq~æ1 !þ X?ƒà/5™Ï2^=wWU Ô8*1*þÚØ–x”ñó‘Qy£xL Ï|ˆÄ¯oC–|T5“JÑ\ãhWÒ?‰ÑBHpý/8¤2É0ä×>|Ç”ãR2ÎT˜eTËü“’ á”ÆŽÜdb|ú’=z¢I±J.Àcko°ðvÄž%”ƒÒÞXj£Ñcì±Rä´Ì@x›ÐH;€—gliS©9‰åBÓˆ7`½¥’w{½? ß“ÎZ[›À£Âäb®ð7 ò‰E·².^¥Ò•SX*bƒÑe^`¿ ž V­ü“aÕ_õ^t…4Lî¸Ø÷…”á`ì×SLŸkòB%|<@Yoâ,×'«”–FN$ã=#UX†Ë“>³BúÈöí6tc⡃Dœ*Šxb"ýØùÝÈótëÝ_èj\‰Tÿ*«},ÕB˜^9–)œ´çRFq°ô{öp k¿ì„Rñ_ _°©-‡Ä[çDB•áÉ,ž>ˆÀ¶cmme°ôÄ…*0P#“?Ä}Y}àY¹/x^|swh‰ÍÑ cÂ_?X¥zþØ€nÖ%õð7O1뱪:Ú¿ÔÉà‚SÔ9òoãÌ”ÂIÁ+™¼ª‹Ç/¹/…¡[Ýþ2í¿_-Òµ"øs Ë6àþM üæxP=ŸnþmÔ¿ý±Á“endstream endobj 392 0 obj <> stream xœÍ=É’7rwzÂÿ@‡/~í`×`_§×7™>H:ˆ»,©)±©…þzg&€ª YýÙ´‡<ðE…%‘ûV?^©E_)ü[ÿ}öý#uõêÑ4=½ªÿ<ûþê÷OýösÔU^r0Á]=yù¨¼£¯´ÖK¸ Ñ.:Ú«'ß?úâôÃõZ|ô)™Ó××jqÖF—Oo¯oô¢‚‹ñôG8o´É§oð·µ>šõ¹ÊÊvÏßl³Ü²ÉùþüÕõ‰¡ÛG]Üç\'s9úÓÓ2"jOß±É^”}d—NßÃh3eNaÞ—»þemާ×ÂŽž]›¸xï4Ž0Ñ-VånpM0§»òÿ.E/¾¡;ücH&Áþi´N÷oÒâ“OuËAEºß·e´ÉnlÎiç:˜/®;­Ë;û…꓆çïq!¿àO¾[>ýOeJë¬>= öâú«'ÿüȸ¼DíÞ<Œz^¨Ãé 6Ö–­XíÝ Qp"½Á0Òˆ]p|„ÙFø²¿d¼o#2l©Œü̧ÀÜæHúä¶ŠøªìÏ".×7Îøÿ# Ö9(çáúàʜӦâÊ.œnè-gUÌxü›vþmï‚.`à ÿ™.wÍŸ2ƒ­Zm—˜EdeX—mUZ`(Gx†œ˜~în AÀwØaê©wˆÎñâMk'¼#tÄ»§B¾=ñ®j5€à!œ«PiÐ^¤ãÛ=È[îÊ®£ÎÝa#X=ìäÛßÕ÷ˆZÁÔ?±9nÑ|ÃŽüŒm…§nöîJt}ÙFWxí€aÆdñ”ïVøüBÛP÷O¨_¯Wû¶Àڹȼ,P2@ ß_‹‡b<ßÑI1NT¥ˆÅ{½žk=Ì›66ÙÊgá'¼lñ)Ì_—ò.‰)ÏÍú¬¹vm·þl#7ö^ÕÄ”ÍLx8. %à‰Ù#Œ‘{¨ÐÛÛ²%ã!‚⮣’Ó=Š˜h;´ý®Ã¬õñ«íç{œÙ/Nu^°;]ni¯H ;` r²o—‘Ã¥dODãbM`DÒo€žÒ UH>r!÷õFnEý¾l5èÐ=®§ä‹|–çlò»òfRfrw8ºH=L!Ë™*-ŒßìàŠÂƒã>ž9†ÅxËGüÄT§Û‡Ï“  * ´$_¿Yi$JPÇ’¬qòûzGs Š«®ò¢î+ô —´/.«dê w૾k05ÝŒ­óç“ñ´êÿÌÏzžJm#¨öÀ €Ý–í©†;-2D· LWÙ)OÝP*ôÇŸË•N ünesW&•ÒT…M@SâpRô(:=ªŠ–r®^´œ¯GïõqÕë¼7YÔxùθaôõ|v&F2Éú£Õ ¾«S/zdq0§î”u¦•¼\TQ¨m ÒúªPÓËÿŠÍñ7(†¨©æP|À„Ñ‹VÈÄñ '1´«óÕ᥎ҷat! w‘Ñ0tg䚉¤á~_&6JH…'P0᫪˜$á4ÀéDzþª‚„N°R£ØØà9SOÛ“ÒOÂñæ>ƒÞO€ÒÛF”žNÇEÙIïð)°«_¿éFpšÃÑ Øk*Nƒí–õªÑ‹FTžIÌšÁ"[^UŽ·®E¨õójGMÌqÑ ™ø l*ÜLŸÆ¦Â];8JÐdöÉÁ¹‹‚¦3¯Þv¨oÑ¥iEêßQ!oé£ÒÖµPsú×ÍšÿãfÓü Î&À«§ß­«V6Ü›ós{ô䯿îë{m@ì,ô¢ŽAÇ“ù4ú8Nÿ‰@ `º¡?Íxu¸¶34æ·øÛÀ4ý  6BÓ’E„Â!Þã»Wé8 ífcÚ4 WÀ—ï3)8 L‰…u·|Õç´1yS%tÂá|È7ìùív¤WÛŒZƒ;4-9©ÜÀUqÁ«Þ,º±Þ7óÖu4ί°÷Šq­†h?zQ|ý¦Wp!›“¤P<¯[™êNUx­/JòMr?2|»ÏS<|â±ý ‘¸q¥»âIÎé¶t£﹜rÓXWç8 ã,”ïªPòi¹A›64°ê:Ø"isÖÌ-àÑ~Q°½ì;Î%‰tÁÆ|[ü8J÷ÖÖ{vÛ{•¹Yj4ãp 0>dIãk𩼱œ²× Î÷¯{»ú×µÀR_àÿÐ8{Á/ø3ªE`v×G~ôÁÄøòÞϺ҃•=¥Üc>ýj6Ÿ­FЊasÑ-ùŒ~^—yQ<ô*ÛÁêÇų2¢…²C«º ieÓ]O¥©¤û ¿)r¤»%ëtzrRÆ•×pÅÜ«D9>/Ú­&©„Aº®`*¾>>àÏÙ±&lzçµáÜñ{þ¾dwˆòY8E½ÞF?g¤Ë‡ï”ízøž zrt(éƒïø˜t‡<Óˆìf|ˆKòÅTU1yÑËö®Žuá“8Ph+i‰îÐOÙvÀå-ç$\pOÀ qšœdy¦G¥cU8ey >ÕŸ»‹_µà ~»Ú®@Šº>Ì E@Ù#l› ÷{cwå®@QkA$Â% ÿÍÈeD—á"ZÀfOÜz^ZCOggóPòàŒäç‘Ô“äÍ9'$ûc£rÒñH¡Ý‰@÷^Poï-aÜ—±qD pžø“ýà·Å!¬¨rØÌçÌåqv|í¬J1¶oùó·EÏ?ÛÓp#8wÐv =w¼)‹ j!0tBûÀ8SÛi½âOÀœrrx¹þÓàonP™_¶`‹m&‰v ªDœÑî=BåˆÅ"ö5,Ñð8"ÉLtqJkÂ%¹+§ð?9ã„H=Ö]·ÎŸÑ, Ä‘= Ý~`> û*æz–+XJëÜ[3„‰8Üq[æÍœ¿.M e§)ˆŽ¶ÕAË'øù<,_¿d°ÍùÇûº×0šn,Ÿ¤Å·³ÍræÛ8ÃWÎ]º¥÷~d¢ NC\xô&¼šg¾z1‰4„âŠp›¼êzfÉ9_ÁEkeʱ£ ¼îƒ¨ìíÃa3±Ra®iÃQœÞšŠgT[[{ÀM‡"Î{Wl§¦A2‰¡4o™9QßãUÞ˦§™cæšÇ A5àËÌ­7Žp¯ûû@+ǯé—¤œy€ðÛc]°Oi(tkn¨˜ ×ußUˆí} %Ýmê:o:™5Ê^ÀFÄ$Zõ$`ª²!ûÀbdê^õɘ-`»Ï•"ÿ€Ýo=ÊÃCr#Ïuv™(gðá»r4­¢Ì a„%ZØÊÀ€p¾S ˜y‰Ìoœ.é$XkÕ¥òÀ\I¥q²2ƒ¾7B! Ác»"ô™Çí.Ü(`ëI{†RÈ Àx!dÕ½$;L äÌÕ©÷õ~Ôä@Uô¸×½Æe˜Kkœú]™:æ™aÇì:l¯‘ÝŸË+0ø£Œ<¸ Ó Sæã‹¿®à±3ßÛûc/ò@W\±}zH~È-žºÅm¬Vó¿ã𲂅ÐÈ…›Šºe‚ /QDÅê¨2`ÄIc¾.Å6rôè{·=.#,&´£#Nåi¨Â—l»Éd·¹À• }W®—9 8½Û¡j\lwª”ë||>Á‰pÒj¡Ä£»éb]7`Þƒ¼[¾D½\Žô²kÐëoIÓ%›òÊ·Ñ·×pÛ°¶o‘+à:w·ØŽHí\uÄ]ÉuA ŧ{Y“àzÛhŸ^ôŸâa«»S j>ßF #G²à©U!c×:€ÇÞö;mökYzŠXøzr¿’‚*M²¾çXT©-šž¡ò›–T…Û5‡5’bÐè# †Û„TƒfGÙÓEƒ3ºÃô<§Ñ¢âÍ•>öø©8îN<ÇDÜíLî~¥A?ÀíÚžÁ¶\•%¦ºÊëóRƒ:Í6‘§ÓЦ¼ý>¸OË;)žï3+äU#@·C¡Dqn“ AOÇ/;½…ôôÌrªEKƒ9Éh ÌÁu *® ¤«5 05ÛƒÚkuwù½é83'‘l¶ŒÁ0Æ:C¸Óeœ+>Ý£W|`¦?,ÉêšøUñ€‰_4£?RÌaD gæpúuÀÞ‘6>I‚):Q³÷R0 ¯­÷çD;—·lŸoÛI=”G°&Ü„1ŽIúÙ:!F¢¡ü£*ZCÌÅ`AÜÒntßõå =Ý›‹î?" YeîáàÙ }±Î诡Dí=Ó¥"·Û’³îÇô¶¦o͵U•1Ò‚Ø©NžRšWE³²SøÓØ)=f ·°Ó”ƒóS0²¢?µ9`â /Ðð|°ÕAɲ‘¦L…ä`¬ãıÞnµÆÃCØ1ñ‰Ã· L Ýj)ƒ©|Ú¸>M53>]ÔÞʧC—›yħ±HÃìmN„}š%'/çÎùÙA–H½‰ô@BcuàP‰ð`åfë«1z¨«ÜŦSãä‚Sz QVE9â´ }þ¿qpœ ,øš±I#Út3’.”FN*fÅQQmGø'qTt K¡–'å7^ÕÉ#:KŸ K~¼@ ./ ¨ï¿èE›•krd—®!Tù¬¹Px’>Ot‹ŠÉ‘§Dê"5°ÉLÄUq1±w]íË—'ÌøãBžú¥zµ†ßð«9™¤2VTh5sªÄ(  tv6–[â‰-+“M1¤‚,b«8‹ ”dfüxKdx° %nì %PoŒÓŸÀP"ëèC)“ÙhrOî>….°,Õêp³‰‡§Ù,£ŽgÃxéU<1¥‚îÞ[‰#õž? ò± ÕËGz¤F ª½?`àa¦Ëà^aÅùa†j´é|R‚o«|¶£JIµÖé¬pá\ë¤.kÆ+±J­ý` pµ€{O?•gÔÂîUî–¯|ˆƒ…K#&)æüð}­Š6þ¸ ÍÌiIÂ÷âÒ¬ê”Èç)»6&¦v[Ý•íp‘ÕîØéÓ›)•Âè¸4y×)°±Â.,ƒ²Ûõþ¡æŽ2»4¢‰r'i½weêÆ´–e‚zž‡-MlÞ$rí5›Žýà +ú¦/¢ŒZ”•‚B7X—¸Œõ‰ô7ÕñtOÌŠpJ0‚r?.51Q²>ºG¯›Å¤c×J ì™êõŠ2DèYiϺµ!'–ÆL\ʚПyÅÞ}&Ç>eCJ_‘&wdRK“¢…¤åH= }úJ.­ •°bHH*•¡ú(»c¤¼Ò¿êw€µ…Ú‰j|Mü2½ÌâùH+×-”òóê?ÇÇÆTZ…$¶{¢yx±mwaÌ_º¯³Î.åߌ3úž¼¯¡=¾¬.õ#ÜÅm§°Âo–(8èó "Ì6‰>—BÓ|š;»§‚ÔÔ\ÝK—)¡!g=è  Rƒ„Áç Y4B[ÎcŸ·\†8Œ {“òö¶Ä:Ý.¿&A|¨Ò”,üVþÁ]uÀ—;W(Á¬¦ÅiW1&B½«¨v@s-ÓK1b1•š†ã±ZΞþ§¬Cåp Óò¯ëpbVÁDºÎ®­3ÓÛFbkÑGß(j½XÞ–!âé†n4Å…ð& 9À   +Æ‚cÝ«(½0Á!È%ƒtÀIœKÔo×܉7ƒÝ ÉÍæµYJåfÊ3Âç›J*:…Ö²•î ¼2RG)4öÔ¢ ¢#Ö ô1’Ö>‹ç¼z:‚Á^a´o0^$½«65‹Xe¹R$Œ;wD§ñÿ˜ZWÍD#¼Ê‘«ýŒ+ïÛÑÌc$ð*êã<ºœ@í;«æmî¨n’², ëí=f#î1è&7DsíR¬âÌÛG§ÝÏ™·„K½ù¬WÇÚ@!MKR(¢Sg4×ÈyI–šdš/˜rl×Ó|’1{`㣠³hTšœ¨Bà¸ÍB‹ÄâÎã´¡Ž˜ŒÒzM%/ð!šÛEyÈñì9®sB«K gzâ†#MŸ[w分Xukv£WÁËr¦ §æ:‡éêâÖ„ õyü‹.:M)m í8KlúN`¦ƒ_\?tNrò>pÁáÆ$Ú|u©(—ßóXtîÌrPÜëÛ=¶8¡ÇÊ™#rY—ÿnm›rè­çÂ[Žs§FsiŽRCÝ}²sG>r-]70\Ma¶Ž »` /ê›Xç£zµöÏD@ôzÿ¡d¹OŃbèBÅ‹`6Ý•ù¼+Áð© ‡ý"1äe¼\SºãјÑ|–‘¿z¡v¶k{uî“…›2Ñþ ä­îr¯XwZ?¤lEp¢êELóŠ÷ù¥gÔqÉy„x)!ÖJvÝ9kç.®¿wŒ³ | O G;°ÝoÀÖF3b°„>ÜÅ'1¹G'À 8FA'—Ñö¨è¤t>Û9p¡nˆiÐ[ó¥N8ù–×iΉ°ÐTªPÕœ^b¢õfÌCj–8£5Ø5¹åÃKØÏÙÓQƒ\ÌWÇ r©øbtv_àÃ;£œýE§×GÙ¯ä×éj~˜Óì‰à9;Çm½ã†zIcÏØæÖÿ`¦cÐ9«ÿßâŠØ1|3v(®ˆZµËxp‰ŠóзÇR‡T1Éöų{5t›í[º{!¨òf ªüRì¹¼¹·£™§l !WM°|‹œÃdnt{4ͪü÷àp÷õõy”=n|ˆæ ¥{¥>Æ©r^Ò&6¬JúLÑ)uàûD¢­¯3þ=.ê뾹Č%J[ ¡¹hšT¶©×8…bÎC@%–¼‚gô^9§â¿íI¢O!J"ÛI5W6RÑb•ßQ®yr©÷sëi>¦9À®ƒYóÏÖ›-·×4‹]=Â(ý$Cç`Ný‡\Þ¤J,ÛhV3æ@Ó†¨À¢.µŽ­¢ Ç›&§l-ÑrÆTèƒñõ² }Dd]‰ R9°x¨ó:ÂL®J³íy£’3-¿Bšî¦÷Ø!`õ…Rá—Š¶µ?Œõã"“1à'ùBc ÆØ¶÷Á~F0Ôv¡š– ðÌpØu5¾ Ás_L§×bº?¼`kƒÈˆ äK½šŽzÚª‘†×㸖‰Pëéø¾>¯5‚œë ŸÚîöy§-z†·t£±F.b·æL•E(™R|0ÿ5N¢Ÿp®e }ïyõ¬¯!ö˜qqà†¦ÓX‚ƒO£º ]lIjPâ&ˆ>»ö¨äPZ‡Ö áS|‚iPž¾½öh_’m¼=­ZƒõÞt£y@²¾iK6¾‚“ÃMSÇh• ³eL+uÜÅ1 ç¼µÝ>øz”ˆ°Ã0=V˜Mt™X,5ƪ›–^Ï.;SYº޽u[ž*¯Kí ˜:9êBNÊdS3 hgÞ¸YÃÁ7Z˜XµF˜i,Ê¡zTïm¢– 7”>iÌzI ‚ (‹ÌûGÚ¦ñ!¶`2л/hlñû![¢ê—'†‹Ÿ×+Êæòö*%•Ååì[5’Wp™_^ªÀ“Mh°IÅÜÛ³V"9©Ò[Xç„)’›ýçµñ’`K ¤K. úé/®±š 5lZ:SwõzÄèûÏwìk¹v&œÄük=VÊLËÓpÀ¨€ôMJZCè_ DðxèW*¡8hG³¤c^TØUìEÏÖQÞ*šx±û¬GVeô˜¿.:÷ wסr÷}.´ ðÕI!‚Æré›WÀ4ØÅ”×9¹ þ»Ú˜F÷ôp¾…<ìÜmðëÖk•[´|Ÿ‘·Vü7b3 ÿ¬ïðOªÑá×ÝÚšƒcŸ:ú()hÔÛÔÚ6î«ßi ?Z´¥•Ž\¾*}=­5‡n6ú6›T|>ù’ɮʼWªƒB8Ëñ?³þH» ô~¯‚ŽöâÔå3z­sÔP3ðÖ€àùdÇ7ËÞ’Ú pHìãn—tñF;k¸‡è#t^±X±-_:ªzFÀPa<õ¯öõå—ÛÜ< Ë'9³ßYÖÆzs{ñÑÇ-3w=—ÿ²ž­wÎKä4¯¾øzíóè½ëe…ï?9˜¡7†´O7D6{~e–ÕŽYT¥½Æàl83pHU¢€å¿™Ÿlì…&úLÛ²+ûñåù0 ~ìäÁÊó9º£¯Ñ›ÃJ}<„2âw<ñèá¼c)Åô°X7PïÒ1÷˜n瞯¼üfÂAÙp«¤Ì[ëÁï?¸Þ8Þ¥@pfË?k‡ìÊý‡c^–Ý©ù—V¦I4&+T%­æ”‡ ¤'M&cóŽ«5’óh’þÌ>ŽÆ SÆ«ù Ó)G|p\Ür y¢AíÚ¥f1» ¢,ÚQt.öFO¯Á!¸"(í¶Tuž½Ïí´yèÔþ’ˆÞ¿G̬üÔ¹;%—–Üœí €Nîȵ>ÚbÛùñ{ºtvl|˜ži©¿¤TUÏ-žó¾ÎÍé FØv}ž—´û.Àh:îƒÖ ú]Ü´ Þæ,RS£ûÁHÂàCjã§ŠŠO …†‰ç©°F¡×Ø9¡Ž½û~‹Œc 8KYê– æYꨒ³u·-W5&ìÒC±qR›G]D‹seÚ*¤/3Qf*n1 ´g~ŸAt¹uv×Õ˘{ÒÛäšÏ X¹ Œh ;:+üJ ¦o¢›ž@Vã ¿{òè?àïÿÞDOendstream endobj 419 0 obj <> stream xœÍ=É–7rwÚÑϧ*?vöÅ7ÍØžg?y<Ö´}‘t Hª%‹›HŠÿÞ +°ee5»)‹%“H ˆ}Aý|%y%ðOþÿÓ—ÄÕí£ŸIz{•ÿ÷ôåÕoýá+ÄU\¢SÎ\Ý|ÿ(}#¯¤”‹»r^/Òë«›—¾>¼?^‹ÅX…>ü€ÏÖÛÔá9½w ÷íÍ¿ã”ÞUSúÅEƒß<ƒiþv‹–Áz}x 2*íâá5N½ÕÊÀBëk6‚–ÔQ‰˜W©7b¶¬ñÇzo´03@§µ7ñð=Ma„SQ~±Ö¹Ã¯G`oONC߯å"œñ÷§C\‚‡7lÛi°S#Îd¢:üt´f¡-°™nO4SX„°‡¯ m½ò}áqY#¼ý–XŽ×N¸Å¸ÁJhýì¯Ò{m´<<>^!cäáG6áûI”®B œîÅÓ®NþÂ&̨u†óEŸáŒ~QRsŒ¿JëÈ´äŒ|)ª^“Mò UB• P~a³ðÙò¥Š1¿†)áÓ¼­|™† ˆQ,ÁÂK¤,4»(¤ô}ÚWˆ¶@`Žj²ÛÓd|ÈuB¬ž(öZk p믮¥rq2Íÿsú6çª ¥M`‰Ã vpõ!âaiøÇæ<«<|Àw@÷¾:FÍQ ÀÍCl4áðNamcÅ<|’žø[Naoùy¼îkkpå,Œñ òÁSpf‹xpˆÒq°Š…yÆèe€ÂQúŠÍ}›ç¬Ö2ÁÀ9œ8]öÈÁeÆQN/9qOð7õi"WLçWÉÇ÷¸bøðQ…Ñ!‘ ž³©öš)!(k+@9 ·ãÔÊ…‚áŽ+8ÍH*3¼…¿ídÕu©Ç(ªâ‚d—w' ±\A±œµ²ÇÑoé ƒœ±ÇSÞ¬—beEÀŽ*cè=ÑDݲM¶bq°“öé 7÷SšÍi5­&å c0„ú»´nt€³kX×[H£Fp°WëÓd¯Ëd¯²ª‘þ öJ 2rfsú!¯¬íXã²8NòéÃôýúM  ñ_`1›s@O¦0[ÁÐÆÙ<ÏÄ Í@»$¯¥›²Úo 1åxUÅß'0¬°£q†êTb…â3Æ‹‰wò^<Wü˜ÞììòC(4À ü§Áì*6"2‘ÕØJ^ÙÖ9ü•p„’‘-#žç8±vpÍÛF@¥EjÞÀc“QWè|Áíã1 š÷ŠÀ· 4†Þ¢8Ó%<£¹Aq œ°{ýÝäù.›rÈrµJJl„nE(l4¶ÐǾ„štjêK€ýbŠ/ÿ_ P‚OOÙ—p1Ê™3aÐBËËp«î ÊkcÁNʦ–³éø€š½]åjÐ#¹JŠŽi±dJ Á‡QQlÚç ô¥ðm¯a±ždb‰ðãNÛ7–m[ ðqñИ"«Mñ. 8æ™™Œ¬¹ïÁé—çv3³0g…_vI‡=°W§= ~»Ù+휅ψOzÿº#ÅsšUK½°ÄfÌ8#úìý Mnð½K»³F5,B‚0˜"C pÀP%ª÷_9¾Î£Eö™£x8 qBY§4•^äJ—#äyæ/ؾYmÁgy ¥*“Æ%8@Æ;’;0D€ùÍìà ý–Q>P2˜q8üÏ1èE…8tê³/½š}ç}§¡fõ~Ñà”íXOù¨#ì]œÞ5ç5øCKm”£Sñ:10g2Wñ÷.Ôðüªá‡1@$|0⢒[†›ˆúÃßuP£áh°5¦.¦äâÀhu ~ô¥!²Þ>$zoüqZ3ø³ÎVÏÓ4çoN /pfpŸ@í]êþáv£|c˜0YÍÇVù…©˜Y@‚k»" 0ðYô1A ~;óÌ䌎b!šžkL¾ ±d‹1.BéF© ý ¤Ä††2§&o86R 00³”°¸™Þ;ð‡Ü'=¸CBÂõ\=²èÄ|icRHnõŽþ®:­K‰Eÿk3 üg ¨1¸Ë#¸EÿÀHÀ h»å[œxSý¤Æûø#Fù"X3³aâ#fÀc «.æG€˜`)ÖmvãF–çÄbåÏ“c¼ÏÀK”`>» ¼hm'Ç:pïË3<-á,Zʇiµ„à³ S€ð¡Ô—¬"³iû QwslZ;XÙµ[AðƒÞÎ'˜òѵÊ•Â:!djVΘ¸¶†ñíÆAq®ÀÀ‰$´¿„FVW7_>ºùǯІ[©Š85 ~á¤à½” ìªÃøVz û”c`÷ó„öc” Y°çï^°çA×ʼ™Ôy7 ¤Jî0WÙD4Nù³¨Æh§Oþ€¹£-ÑX5#¹ ‘²ªSùw‚6e¢á\“Gê`G­Ï&ÖDá&qà.× ÈH­öƒN,•£A¡Ós#Tæ HЦUà´±ö #W‡Kì!ŒÎ|0Àä_á[eA>⋳ï]§ g¥ûŹ¡ °Úì°W¶Ð;)n¨qŠ'â¹9G™ç&Ç¡FoÑpì+zõÎ…Y™Ç«\ÞJ~ꉆú¬MÓÁCSÛ@‡áÜ®ú?ÎF}¢·Óš}~S}_—Mü“÷X[p ½Cnw<~‰ònOŠ“ô¸ô¥ € }K€ê$­•mÅ)ø=üÃE§UÏÒ}*Øìå5z(I2â4;ø-!ÄÉIÞ¹E†¾vÅ¢mt÷hx‡ˆH6Ð$bð"q…›7eøj?‡ã%|àýÏŠ‰ÊyHÙx/´ˆhª&¦•ꨲ•«QÊm®˜6ï{îesÑôÖ'EXëÿÞ"W'Ÿ»u+¿—ò¥Õøzœ&´MƲËèÑ|o؇Lõ–b¯B¦¦… •}8;¾‰K³`ðð ŽC„„ùy'¨.ÌÄÍ|ÂÞ·!o»6éVƒî”Y\¨ PëÕ»¡çšäw•{„øôñüÔ€ñsi$v3l¬DX¼3÷àVÓ“òÌwˆ<;ÐñRÌbi¸yGmÛ ÓE³Ýì@µjCcgÙßN'Ê‚½eå/ñQjØ+ÏÆ‡5lë°¼ãO8µÇË”•zÒí*9Ê%`áK^^”‹‡¨¼ˆAƒˆt€,(¾”ZppD¦yüwåôeA^šµ#Wþ— @¬ç¯.±as7N‚Áç«“iGµ”Mâš³æ/Hô­o‡åß%Ò™6¦©56³ü唸ïÖ?LàÔtÎ 3O£¢<ü_+#uÀ°Y28¾90X¾ùfÝ|’ FèªZE„5(÷åLðƒ1惕žÊ:˜$ ÑñG6àm"I’íÏRˆÒU#^á£8"½Õ>¢±bé“S˜ZPæH-86~щúH’8aaê”ãL3e9XÁfƒ NHX2fV9}‰Ä„%µm†`T*UÞQ…³6ŠÃ™¶ª… äq^OƒÅv²ÿáDnß¹H™ë… ˆ u2ëuø§ãuŒ`LSê?N¬ÎƒQ!ÙLjҮ5àœÀ Êt .µ~ÂÑ`F«¡Ë\è&T²q(R÷©ö•šYG·l…Ë8Çߦ@b@¸TÚ4ãÒ#DÆŠÀ?XDúÚƒ¢Œ¨·ì«û4ÈÎÄšqÅÐ6•áK+ê?¬Ž@cAá`¡ÌÈÆÖu ãÄ ÿ$›0¦6Vî¬lTsæ)ýÀÁ7ÞÞ&BwGM‰„k¦LóØ"73­xX‘&פÈ6˜KTåD þ:¬>`;Bkü©€ª·Ñ> TA¶;¥½œÑø,DÀ}¿A ¹õÛv’FÔ4{"7M¨žöÑTÒtI;ݯžX>Ÿ ›>:p@›m†³¦c^×ÂÂÓmìfì øKÔŸ\ד§8ü%=_zÞïrX!ÁÅ-_ ÷Œ‹}â±1åP9¿Ëê. ج ëß_Æ„ó†@•´w z’Àóú¬¨ô†¬ÈÉ)],&§rÉERDyÅJÿ³ê9îpy¿¤¶Ínï$Ò×€ïX5ªÜ]nõ”ýŸ¥5 á(_+lßgúQOðÝÊùS:e® úrLÞ ¬’.ÈDÒGOï¡0Ö1Ui/Þ9¹¤ƒv$——kÃ4*EʰœPÁ\ ¾˜“L­¾–³ “öÐ3UÖ»“4ß[ü;Ï:Kº¨ÆÑ“ÏõÅ>%A:½Ö\÷kb1Vw·9 ¬¦ÃëõÚáõk`úÄp™úõØ„â;˜”\Ñâ"í¦ÄIšxXöù`åtôÅiЏÅ*Ó„Ç*ø5ïâ¢ãö²®VeÆ®nÊÂ+€\{¨š<ÌÔÄU-'¼³hƒ¡2•€Ëã¯Á°¹ž£Û:×<ÙSѳQÈY¥FÙEÙŒkºžB; ÎÏo‰Ý¥“Ê­u̾䎔V!c ´Q ;z­­Ëákغ³“‚m³XéJ}³¦­õõÚr­×þ둊÷pÒTž]`C‚¿çµ×ü9³ .É.åÃ’+Z0Nà×vnL4ºL)¥[ß[,‹ø‘Mó§ñ‹³~ݺR¶úôÍq-OÀB²LìáR $¸Í` Œ ‚‹ã]òyq‘Cÿù—ÓX¾HÞO~•@ beß*šÂzg“pfDÀ`[mòÃQcÌG˜¤µWý‘À2ÍfÞtR™|ZG 8û‚L zU>Esvôž¦|ÍHãU‡Bú4åã1i¯Öë{nOŸMÚ+ÓðëµÒ¿ú×#¶›ùØÞ÷Z¥êQzôóìÆÄ%Ÿ•HµÙȨwj˜Ýôª¸Å3ñë¸9²¯tEG ;Ý8ø `«p±Ò”;pÀÓå\.غq©”ŒJŸ¸¸ojwWYµ™dîYtÎͽ¦Ôxµ fõ/ãüëö]Ù¾M‰m§±†y ¯ät¼±m©, F:˜Hyñ®,þÓñˆ» M ²¥Ùõ6u•§;a»‰z©t!âÁÕͪͅ‰TM+usêëQvu!ørïø(©ƒ%A~óŽ­Òú¹.¦i¢`ÍÅPYseŸð©âù¬R÷ÔO^ƒ¯a©ýÌ'm¦é…–&Ù´àbE«÷?²ižæ»Tv LÅs÷Ü­$&óìü9Ïâà$áæ÷·+¼óVQ@Gv¥æÅL`ð,JZð7nç™Õó·A*˜¯i8_Fv¶Mÿ%Îf×EHð-ÐfÓgIo¥ÚÙÖ=â”g |mšÛDŠîïÀ°]bw„éæ²“q­n°áb­*Y+Lö]¾*YÆ©½8 iϯþJò$ä)ôY µAa<-åödãAiò¤xæ³´w¥\})‘FRG ®ªÎ]ˆ*N ØÎTÍÛ›×3OlüŽ^Ì‚m²³¤ÀXØOšj¥)fEKÉK¯ÓªKæ@¥T¢C€Ô¬dîz+…¶7È»2zR?]pÁ`W?TôÙWF(ÑÁåÐÒí!áÛ¨†ý½)IOm;†¾9qVú_ Ûº4ÝÊ+ð^¬mAcè“Í|ŒnšØ&Wf´›!¶Ömñ)¾•Q±F›Ê°­KÕšÒÍS‡Zów“ÄÀD¥Ô]i£JçlD¥%±~[jG*w£Ã›ö3¬–íà˜ãïÒ:"¶V¾Eò:  9[£‡;tb\´n½©PÙ¡¾OZ]á;¬|(E¸+àÿ=”>Ð,·9ê‚ ¦éÞÑSïôë—ÖvªÀMžVq6Ðq™$^âxÊ ºJbôa–´½¹8«ŠÝqi´ž$dÚ2hl_éÙ鿞_ƒXØC} ³H¨ú'šIÃrSY4»X9í¦àØ3ùÙExÚ[lÒµ¨x,&¹7]2k7Zß/)›…Efg+Yj#£0ŽP«Ñ— «½NçÍfK“¥¨Àœ;W¢çvÞ:·=oÇq¾ØqTËo`8U¹ç}×5‰PÕý×EðäÁÊ›¤–xÝåôÖ¨F¢à¥5 !G…†ÍåœL}~ÌmýúŒe°u ܉ Ʀ£BãÄšù€bªÎ•Ñኮ–j‚–@·ÝÁ µ·«½ PX Ú¡½ ~­ R]Ußla¾Èà|IfÓƒD˜ÖÕ1òm]´!Rý¼‰¯42BZ;Á ˆéî+[E`íÁáh^î¶ùƒö§»*Î÷¨q,NœÛ·‰ªÅj¢áÕÎ\(¯êpr£Òø¾Öán=Öî:v;)Îâ»ax"`‡ú]/8¼½ H]Ÿo B¦—„º„ÔÅp¹ck¸ŽY©*z·qIf9Ý'¥m*a3nU´sÜ™÷t³·Þ'Ü®ß\ŠÛćÚùŸçÃK +§~‚숿ey‘IiIÒãwºwÆ×ôñæÍß½y޳o†½ÐÓ¶ä»ýpÔ™L)äæÝ'Vß.*ùbxGH<úݦZâ¾¢ßüU#Ì^ílëLØLʤÁxÌÌìïêΩŠT#ž±fU ž«³»{mI²³#çÃèþÎrÑ3Øß ˜R~æö1žl‡³_oI÷Uš.-¡1(ü{›ú§„‹Ëþ‡ °µ@ÊFjÂô'©&¦ '/¾ËÙ |AÄ”Që¶ —(¶oæÎI±-°IÏn ÍÿT®´H°>ôm#".aüæú˜3?Exú°’Ù¬<:ýÚ ¦‚»ŠX‡CmÑù<Ý‚÷GÅ0­ é’ä+4IšÃNÛl|3Ç´Àdü®DªsÈÀÏó¾\à!«qï·ÆxÜ;jdê×8û[#wÈÉlúº×Ò ßÚj;6S ÷ ÞÄ.潋¥µù”ᆠ^túµˆ‹Ü¼‹vêĹx û–.P¾òéÎs¬Ã ÏL»oM9í ZI†â¬Ôð¶;¢îÇ?Öã²÷î1»¥?Å»[d›œHV,D¶MÀg3(ñ…MX¥ä¸xÜ_ƒIôù#>;óZ B>H.1øð馾Ÿg‹EÑÖHOËhVM ‘*áñ“z·ëÐúó>2²ÆbŸ˜âŸ”'£{u·Khí~CBk"óÐz3㬣[¤å0ga¡ÍÖÚ‹ÃB“êjÃâEä…ϯ׫ÉÇBæmÚŒï"DøöÌ/Šbñ>V|ýî¢ÓªÝ7ÔR°#ÉX~Z):7ÉŽ³m Þæ7GÔä0.aX+p‘ Ìè×·J_8'nBüsuè]—míjï~rtßïX4摊èºè†Õ6)ŠÒölžÓª ü\`­ª ëA‘Êå©åæ°58 Ê+¬.÷Ô”|ñãcþ™›s¬PrVÝS¯¾ÈÉ7_5œÒ7)½Ç«[®À§]¶KÅøuû8æ_nýüù?S~»endstream endobj 443 0 obj <> stream xœÝ=KÇq>osrørÛ ´ã~?dˆ%( ˆc&`ë “e‰\=V’ÃüúTUwÏT¿æ›o¹¤)K}šíé®®®wU×|{‹< ü7ÿ÷é«+qzqõ핤§§üŸ§¯N=¹úÅÊ Nq‰N9szòùUzGž¤r‹5'çõ"½>=yuõ»ë_ÝÜjk– ¯_݈E„ ”PןÁo£µ7ñú››[±Xoá/Õï?âo­­WþúŽ=ºÅ\NŒp*\ws+áŒ÷×_oS³?}òo·ÑŽÃííRû“gêoi¨DL£Û]ŠE)Êèïq´±" ÍÖ®#Õ¢ƒ)/>¡ƒòNÎÖñÆÉ2ü) w Ç÷–Q¢–×÷øÛ{mü9÷Qh—Áfü<=…Ó‚ÁÊ/ÖJý§ °ÁÈ„÷áéüô^&0‚ô5H|7lÞo˜fg› (P®(ü;®´UÖäáÆžÌƒÔ ‡Ø´Sö4d¢‘¦ƒô‹ÓF]ÿßÒY™/JéfDbâÌ©šèÃmCChá$¢‰+þwÚhÐZ—‹PA®Ã½án8½^‚‹ñ(•»Å¿¡î÷7ÝìÆ×ãaîèËøŸÝš#Ãõßߌ&‚l±ÞlÐJ›Ùfe”桛ͼf•óš_”1ðÝ"‘ë‰Sª¸RÈõ³öpšõoµ¨=Ð’YlLÿ-̦\* ]¤ " övB€ ëÎ ,RªšéúE+'×Cü‡‹Äk´E¢|OH0,v¬G$xk¬_$’ÿ s‹ÀÄã”Ó6>tCaÎÓ¾ „S2^Åiõ?F<€ê Hv I¡uô×_0Ñúœ è¬UQ#°ÇÃ30 ÷œZHèvBè&{¶#ûK÷1 Ï:ÄÚ ¬­tÙ×c-ÈÏágq¢«Í©áà¨JéóI¾Ç!rÑÒÇAgquü’©à—iȪ2µÑ›R×€£Ê²û† Ë—lLPÕÁª@S#Àú_owgŽ”öÏëV§IBì˜tLÜ>™Ø§h% ç¨g¼R6d2YšC±„03vîÊýØ~€í{Üšöq 6âÃu‰˜}õGfSñú> '>²‰Aè]bK :G…Ÿ§->ff·q&\d:sN ²%ü±V—¢æG¨‡ð@y ö v Ï«QP«Òa&Ìp}eá÷&d/qtÞÐÓë…®w©Œ%jQFHk'G `yßÁ{NÊzØpJYpΜ²)[Ó€(¶Cú|?ºèõ€ñù–Ll·d¥;é<¾˜ùQâKR9¡â ¶Ó“__=ù‡oùW‚žP`æ£0§5àl%0ñ³0FÀ®Ñ5ˆê ˆá ~Îàúpúœ&e5<ʲmÐ|‡bÕ{!“¼ƒÜÆW¨|ÑPD4±ÌÕFįÚ]â(gE.ú_QôO€ÇòÂ\\¾ƒk\<ªÜÑ_ÙâM0„1(÷Y´œq>3(çõÎa §^Se‡ çÞˆ_D˜"Ì÷–¨1ùÛ½·§Ày¤˜pñÚVnŸœ;ð_Ño¬>—öä¾¹HT[{™¨ •.¦ *y.¶À™ ¡ÙWỗ„x¼×`C´ÀO¢A·P:ÖÏ~žÛ(P™’öbábI?Èû©ê}u’‚|û#’âÂÐ÷ÒÉÌÆ&zõó¿<#bag|\³mÁŒF%Íd_ä{Çøöí‹UÁÔ.Ün7uˆoInÓêpÝÖG"“¨½<©Á°‰Bî…"58.T¾C%k¹T½8 ¨U\L•s%£–„ÝŽ\QÒ Léô¡ì>yÖî»wÐãG»0En-mÂ<çK‚0›Ï·VqÃu¨”kV¹z TÚÐfpغó×Ùº Ï#ѱ=ß}ÉgÈ^óÇ,8âf½òDƒ&­@8vñœ#ºÞÂ"»˜Ïœ^„é„âvñÄŽ ÊÐ$,/²…/?Â?ºt-­6– V°ÅÓ-’T,ê›ÕŒ£Á]Ì9UÞ¶@,Œ0‹0Fš©Š;Æ`uòäËç‘f’B˜;w¹Û w„£ׇw€’êHiõ,}Ÿ€ÚŠ8baqFMkÉÅß´úXèƒÁŒ¾‚„}³ùDåay˜FKÿ uIœá@´o9ëcfæºI¦^ËEÂÞ{iZL¢ ¹áĘ„1ÚËr­9•žº™½¡7±KÞRÍ.wåA9‡yöY‘CU‚×Dog´;#¶W¸LXÐlHWס³(;´»ÃäÏg¢ Q Êù%SþÄÃ{^€ñïY"I¹¸xwTUÑ´oTUb™ˆÖpa™ÇÓY*ÈE­P£BÇ?¿Z ‚çõùw£*â`žËÝ5óSÚoÍO{aLª­0W°]³ƒÃè &àÜx¥å„³zדF7%G8¡™ñ» ×ð»–TOE>+Xf@é0éù„=QÕÏ®€è&W˜†d"þÎhŸ`%æk.˜QÅ Þ èà jõ¶8qSXXùù1VÖJà5®|NµŒL{?‘•îUÚƒSþþÔJìÞ@ñh)¹Áp§+fÈ >ضJ“‚¤& )Ç×%nµÕ‹ÈŸðUzŸ?›´…7䯿»eÞ¤âgP ¦5àÐͱ^^ÿ˜dŒÏuÒð¾ «o"]›¤.lÕ*:|÷í1í5ZÌkò*mN§˜€ ˜M’•H¯ã8¡Òa&€^¦ £³wy2¥J«‹éï&`éÑ¡WÁó ›˜‚%aÂ3i>"þÕËŸóZaL–6¦ƒ²µN,/€T+–oÊà‡ºov™€ó×VÏò¢ÔåÄÀÁzåü0ïÙ ñ©;C1í°®‡­Xaˆï›Y÷EËÖ°œ»ã|ÑúsY:Dw¤ƒlkZÏI}kùûƒSðGÊõmèSðGJIûÚ¾d€•ú©^ „­¨5´˜ëK@`3:ˆ€£FF[\uª<Ʀ´Œ @¨éÀ9VÄ$Þ¸­æê V­©/,B Œ[K`þ'Q fÔ†´u ^¨Å Þ[%é¶¼ >ù²Ç°^|¼+@l•ÃÁÑ•\€u| P‘4©ÞÂ\ °OÔc°ì¢©¼ˆ'“ƒó]É0Ö•±JóËŠDå€^©†³ã½dP¬œ¯J˜6“[,ub×änºÉ›\.¨ 8¾^8w®ˆ<¯@­ !¢û‘^?F)ËO·ÈÆVÙØ/ÏÈÒË«›°ø±äCüI½ïâ}\Ü´S‚#¬ÌÖ©¼ÖJ‡ƒ.³¡ã1©œÊ7Ž„à1«)b<5îœÁ ;”c/¿d¨@;‡80´“?‚Ç”ØÄ®œ$‘jGyµn^'Œø8«jík¥ ¦ÎÜ‘î³Xsøš9 E],v› l@S¬]i>]r-Œ›†}Wœ¾Ì&ªY€ ¶óº)îp3—[‰ýÝ#\b¥7SyŒÌëû.@Oâ n•®çè€×n´ã)3P9¨ù@Ñ´î²cy¯ó(Ì^•ŒÕ&K Ø›]Æ‘GF ‰–Ø*³R Š]‚uáìõïØ†hiÅÀlÄú±T<”ævÉxñÆ™2‚1¯¶‚ø”Í£=ÞÉ%#gâlXuó$™obIT@bÌ‘¬Æ,[7s§ê=-•òÓ»˜ìl‰}tvt•.êšIÑ™{ šÀÔ]¤›NÙ.¢G íLôqD¼N£ƒ]üÛÂ^Œ9âÙÙµø¾T¯? 62qbF[͉ó㌡(Y¥Š ?Ó† ‡*%Ï8ˆMüI¤>íLP¼L«Ûè+Ê.”rÑ?Œ´<°oÑ*Uª…°æa˜2¢ßÖª_p0åjýBµ|¨{Ô§ý¸.󣩥œì¶ e&ÉT“ƒ’@[Prx£8•RÀûÅòÀ)KËNo–+Ä]è*¤à© ê‰AÓ­®”#“iSáʼnó5"B‚vWSG³Â;ù6Òz-Žñ¶^No[$£¯þ֛ؑô"èÀ€zÛ2üæ|ð­^JPqQ¯çÚʨ$Ô4(Š×™(ƒ®ÔÖ¸îü6±†¾$îÒNëøæcÜЯFÿ%VÛ¨™zbq\• §ÖÃQ¯Î¶wð©ó»!t¬¦‰‚7Ö˶;•ˆ«WÊ4$} Ý"˜³«Dz¿’»­Ö­“´ˆ¯ÕBâ%0s·¦ 4á,¸oìñ5j ÖÒ!XX«[£’8¯5Yn7*ºL9µ2ÕsB_"îáe䙢*X…å™LC.?r{v {ÞÊ8¨¯jLr±œ¼óD ·ÏY@È9Üq4(p-[wV¼Ë[³z{¿mÌÍ]ZÜ%^_ìzž Wâ[“áÕ¢V"YrcVqVqÅùá>áÂJµÇþ´¬åôØlî àÜ2ĆKûj·Ø¹¬xDߦbE FÛÕ8¯x¹Z½ëU•&PÄa`‹ºº¼8U]I~:«Æ¤#>úª5ìò§TÃ;°òe› &Š:ˆ$ í"ö“¨8ŸžóÑ žtÛWyuá µ¡|Ô#9¾0RÙÜÓ¶>ëµ±Ÿóê0‰3Š0Û[´F¶us››W˜§³´0=Of+2.Ag7/Óbt5‰œ\˜ëæ;ĵáägÕDò:Fò;WšÍ¡Un±†\Mã¿?ÔçSÙšpV2¶Ô‡O±BãH5Ó}Ds°ì:Éžšç,ÏkÙh¿Ár­ÝôkE¸1Ì7ùW4„ÚÎV‰û#µ8á”ÑÛe‚5\Zl_¾îÿ2«oVÄ5Ó˜;•I¨ÄœÔg†ZQ^ 'Õ:÷I“¸ù à6îO7§{.œ«kCg§Ø70uˆ3Ûsc㈒†kEQˆGéké¶œ ÇÛäPûÉý+åàƒ‰Up±öY¹é1QFéZÛoM9òhv¶–°r„§Ÿ&0d­!ï2Äc롲üJ^|³…þ;ŽHmŠí†NŠ*²îƒ 噼GmÕ¢o3¹¡¨ð‚4Ñ+ÙÒÛÐÜœb¶æ…©îÕLüλ²úN¤«Àük|,! W¨#}–—QÅ”å¨ßË–g  èT}¶)¼èbݺæãM]ÿ×Fªáe¼‘òIzÑŸ0˜f¶€zÃfUglåÃâÁ8ý–—zŸm‰Až¬ÕI+ú¥ ÇÎatåþ­ÜyEïUH×ê¼ô¸–mI£È9 ˆ'QáÎwX¦sðÖ yÚâo b("DÙ8³éTÕ®T\öAva£v+Ïd‹ø{Ÿ•ŠxºÅI@”(ØÁ·ì€yV¦¾2¬Ü̲•‡ö?Í=ý»(g;ºª4 c5mEí°4¶ }“ÒØuø‡7·N‹·šž)-iÔ –Þ©YÜÉÑ&4HÓÙ6ú…Oݽr*Äè¡@ñ7ý±_Ø`dˆª¸8§Ž]@ +X¾¹;ÜÑv“@åÎÛ}Ú0VÔ®àjÔ(ÛÜôÃeúÐU¡mþw ­d%·gÃâÁ oO.¦'èk+úÌõÁÎ9rÇèâž¿šâÚø/ø˜JÝ£M«À>xxòƒlß74—Ždš+õ°ƒ`'YÞQ>k¨±ÄÁk¾ˆã¦uqÌ+õå>Ö øQ½ö¤ÅÕ&>¢Lóg¹áb¼è†Çj¸½°"Ôõ|M“¸Ôk¬ûØÉÜðƒ¼²GÄÎ}Ó¢ƒY4ç˜5€“ÃéLS<ÌØÄ£ŽzTéA“ˆýޏ‰¦QcîC΄ÖAMÍâ;{×Ç~ RT„h°uvó³F4뙯~àÀj’¢Ñ`vèÕì;^™[@à!Î@”Ãä Vf2s¢•ùáüaÓh¡—=Õ†Þ¸=J_ÀÓôz8Œýç›@åÂmIˆ‰¿0vÌR±ö¬íã]•,2lk†f1ìç¸:P•™~6ì.mFÉx1Û±1ã;!ÁZþ7ôª•Ú{¿»cµ×è^Q8ÆÉ;oý Áš&¶2Á¹‰ì•Ô¯n“Fè¢{ ûB(¢)’¼ ”óa®•­ëŒ">v¥dghd^~E$§­Rn¿ÆgGŸN<;bP‘ëõ©ûhÌšk(HßÖ¨ÐT 0+oó0\Àð*]|XØaÈËÀvª« Û=^ÙV°i›S5T«•¿‚$§ìTJºÀoƒETlsû8µ:£‚±¾âñc6mFXã½Õ°WÆVV_AcÓ¯~¾ább‚µš`#L'´@Ol×F¡Ó¶ jŒÛb<Ëç¥Ú/=a‰Uºèƒ½pÉÄ%¸*›ïç<£š·cêJöNt¤Ô¬©£¸Í×¢zÑTÑÕØªtb>¢T¹Guñ77úð;;ypñc-ov£ïwºÒgT¹wîJŸBšuê¤4¢/C@Ÿu“FÉÉÝ9ìÕ¢ÀóKÍåè-jëæ¥ëtx?JÃO¼Bwûîo÷Ñç'ë¯/4·ûŒô2¾·û0¯‹w¥"lõÔáÛ}½ä¹à.×Ûü|ÕÅ_JÂïW•åT߯â€}òäê7ðª²áôâÖÓþÓ•8ý m¼Ï{’ÈÓ«+-cXðã ùÉË«ßN¿yÜ^yÍß<¦+2`,à7'm”é£Ççù³tÔvî¡|ð»D[;âêvsË'VÐ¥¹ê­÷‰Ožœ™½ÐãqF¡–À(„¯Ë¥ùzÓùo¼Ñ}̇Vjÿ ø¥›Ýë˜Z/ú„QsÜ,?{Ⱥ…Õ“së5Bå`­Pö*Ók‹Ê¥¹ªƒ^eš€*Ó`ó¦2)«Ù«Lĸ1ªL€ëÒ[ðxûõ¦ïi†£*SbW™ðŽD‰Ô÷æ/WÔGRDÆc‰ORH •žâK¿Ÿ%}é8ÝüuðÛã½ôñ 8XºÇ§<ÒX}4Œ¶« ù˜èÂajÀM1ì8%Ë2Õtðä¿þSý׫À;âDÕ!óaó¡R« Ìj@éIw‚Ë* ýêÉ® ­~U¡&bcx˜*‡*Äõ¨êj›¯'û–hà¸Bc(^H˜4bσ¶q$ƒí Y+òÌÀnÁì¬?,i4~fåq$Í9ã܃þA­r‘¤Á~ì»e$ oÚð®ó¹UÖ;Ð]±8ÔÄÆê(Õ¸‰ µ ¡Çî¡.6 çÎÖS½M2ß#‡››¯Æ`»É]ŒKÊÕ:í&_†âE÷ç á<× È‚k;ÓØøvû§¸î«ŸïÂn¼à »ý‡Lm/álAx)ì¤"Ó3}õñ®¾úU¯¯êQeIg™ÖúYgšu߯’þ²`þ»tÊ1ƒ`>~ÑE蟌’´½ÀâyŠ€w´½AWþ÷!Þ2ÖƒˆÄ›G½eUÂÎ4o9¬D=”ÞrXI°>6î°vz'Q¥Aðæýˆ* Â]½Ðkª0óão³.H¹žÉƒ«èW¹Ó4>Â~M»5“tS¸4« -ˆl]{WQÉöñ:ã~F—R·9ù“6S'`›ªî¨1'³[d 8¢ññ*¬¯~2”Ø×jw}׺½z¹ ¹¬Éá:TGI]üšÊ ué «›ô-"M:Ù´6(»›±Í$xùî*ˆpAcÛ[hÄ#ؼ~ë½ÐÓ(êé‡~ùâüwS-ˆèËy5 lŸñÚÛÀ ŸÍ° S¦>aåH²w\·—f !ÙQ·Úb¿ùÌiaÅÌjþæêÿrôµIendstream endobj 468 0 obj <> stream xœÕÉr\·ñÎJå˜CNsº<ÏØ—¨t°£,N¥Ê²Å›írɵ8¢(“²lÅÉ=Ÿn௱=΢¢”šñ€Þ»ÑÝ€ܰ‰oþ7ÿûèìˆmžýxÄÃèfþçÑÙæ³“£O¾âŽmüä0jsòä(~Ã7œóÉlŒ•·rsrvôõöçc6 &¥·ÛgÇ;6i«Û‡0¬¤´Êo_ï·“õf{£ þ,X=~kæ™L¿~{{å¶Ç;>1£½ß^âznâÜoŸã)µ6ÛIY¬G:Å)fò¢d^Äqë¶/ãl©$/Æ;óæÿ ;f™!D§Ÿ/S`'%ø¤µ¦£O"„Ö«+‘ô‘ÝÉ"سc¤b°ËOdšqAíÌoÑ$Ô*:l2Š ºÄak•„}f‘p\ÆßžüíHX71”²“Ç S#PéÊ⎠=&ØÅK•VtRÊ´bøý˜¬¥ÍhXÅ ‰l˜îñ¡¡[ÄÍxe b³›ÑÙq1iexÄêEŸr„ΔjrÂm¿ïë]ãaAý<›éÔ“ázÄúeÅ¡Œ5Ñ=²'„—Ǹ)©5-Bªp¬ð.REë™*>v|òÖ&PÁŽR,ZÞXÆÃo +]ð`•Í+~ŒšI ³¦¨Rát"¬AƮ֔Öèé²÷³@aal±À“0Y1#\E¾´îÏH°Ï…>“¿£È)1y¥¶¯‘pú¼§Ô?(%¿ˆ»hY‚ÙÌÅÍTû)ŸG«¡ý$™KfãqIürwp\JÖ#‰;.öÉW€0uz@p:¥@k#•¦» Øa+Æé ·Öqâ=)/­Ž_ý1Àáç"~UyV°õL ÅG 8`‡»ý@ÐoßDé|-˜þ?”2ª!`Ö‰z6쫊ɿÄÉÌ;ž<|8pÔ´^µQI$ˆ¤€ào––ˆÇqF”=2ÇÙw»,ÊÚEcܰæ<°¦¼"ŽžhÉLu fzr <(mTú°o$4ðU™R.•ób,—BªJ.GU~úyÔ'%™õ}¹…\"™¥˜ ø$¤­|íš§’¢NÛŠ,(~GdÑn•bBѓٰ[=YM–«bšAÄs »¾ƒ™I±UwÁ¥j‰Ã.tžà˜ëx Kÿf—Ð9ã2ÀÓŽ]D§×•? 5h†ß섚Xò·aáH¶TO)g7vâ@3ŸäÜ“wÊ£Á–pv":N!…c²+Ð ^.ôfkjîg$îh ´‘º¹ú3xYÅá_ê¤!ž;i|żrÒ:9ú>Úmž^Â'Lo~†Óò_Ž88?Àdc¸P§6gGB0M"¼8z0ÍÕVÔ‰Fy;ÎSKífKŠ}Çl¦tÇlÄô‰µ·Ù*Õ^ùP¯à_åïVÝ-†­AÝð®Pw!>Tw0Ñ›ò«k©;úPÝá 3Pw„)|ôÃHôƒ=Œ]>„üC^ãµÉ[œÐÀQÔ)ÅõÁ1°–“µ9ÈÎö$þä ’ý˜OȺ2æ»U“Aà½ÊdÀ©WV7•Ô¯ û¡Œ^ƒÿų˜C[|­´ÀíçkËý’¯£†9(ðµpš}í\RÎÀ¦ñ¤áIàÔ"ÐÆ°ë±iÖT1$ Jt=R‘•bâN©Ò¼ÿ¡>]̦€Ûƒ¨0;Ëß–y†Ž|©Ž³<,êÀÁh¢ùÖö†A'G'|X̉9ëå¤HÁ9î&nk ï ˆ!Ø×6Îp ÿÜ(8Á˜4°*þØ)ÔT@8 KbÞLÌœëf¯ -^¢Ì¾õ)q½Eø¾JÄËÆ$pqðÚ#ßD×? »2><î•!‹Ô`ýœßòŠ'4è6ó‡–¯'aŠçÏhÚõULuÞ¦O5¸_œS¶»)T€QŽ&VifU•ÔÏØQé®Â]S¡çݧå2‘Br†Š‹í²ÑóÅ%¦‡ßosõȸ‡Ðɱ2ÁÅZj:eƒveæ%f TDù_$*zBx ºì ‘äÄ9ÌÀ¤[.îQQ•UªrTºª|DRå*ƒŠÖh• \Ð\ÕU\\WÉQBŠ"qˆK€e¡î“ÒI›ïiâ.® üë8¬«DÏLb[)íL³¶L+âU•$6×I¦÷+A²²9/Èä·Q*T·êR a•Ã)U§Aá¡#«³ö-Ë<-©»DX#MÎü¦R¬ @PeïºY½„ÈNï'=oçÊl·Ž¦bŽ4&K!þ1®ÒïÔp–þ —†´¶'q‹Ñcç>4nhÙËT+%~Éy¥hyµSeµ"@Q*õ¸³¹±êGê’ˆ½F •‘kÅc*¼+¢r°ÍoNþ~tòÑ×[‰ëÅ…ð¥õZéxXã¸FÀâÑ P5ÒGjÂtd¨Òw/ {p|dâ<å!þæâë Òî‚o¿  G»‘Õ‘ÌYËÓ*ΰÐÙãÆ"á‘•ÚÌzGy 0DbŒ&MËÙíg‘Z!yyq "Ý(Pš[®¥/6ŠãÆ3WŽŸ/t|I(@§Ðñ§JÜ©"RžþtY‘,NaÁõŒàwhAþ †çàìr3 É8;†÷…gÆøJèPÕÛ/Hëúñ:ÐØ?R«zO¢aVÞjjó*ÏÓ5QgqÏmÏŠD<9 l‘ Ú°îò†X.:^•8p{müJwtLìSáïX˦Lr÷¾Ãž°ÈÐ…äÙmd„*0Ì×Õ¿@&Ô'8n¤U‘S)ÂîåO-(Þòj° oR”J׫\:Ò1Vè²Û¥‘0ý"Ù .‡]÷$˰—‚N±›•,gv(wt·Ëè(+ŠÊ³· »õ îî6£÷æ|xÀ¢ Y‡àÉ»hÊšÑîf‰âFñz¿ÿç2Æ9.~QpÑ]ÆÉè Áä2Xú[¢çkÍ[¹¥-v§h¦dlé㓲¼€¶s>ìÚ¹Šh¸ˆCr‡ @„ÐKá¦ÂÚöb¶êã_mp+[®0ÿlyDÒóá!çõ2»îë„ßé÷Èø<Û4„GÛ4òFåz3’½p”‚ Vªi§¶ñú°ÄbŸËY4§äÊç· ®n8­bÝÆÀ¹ªw<"¦ot>Ÿ[ á{˜Þ¹ûÓcjlÿæ %tèty禯ßÈuw”Ú×"Š®šsfÔ–¸µÎ¨€…wkEŸŒ=«£F¢Q J‡Æ¬^‰GÀ¦„4½G…­B'ûp 9°» ¿Smƒ:F.® Õ¼’u»´Þ£9ÉK¬M ²Fµ:"Lº›IýÏ»jÕÁETåžÄµ­>@C".û·'9™ýÛ¶K´Áí¤ßçpnS{ºe¶ŸÆÖÛ¨Oˆ@å)F .œª*›qlü[=Ý]V’ø£Hé2’ÌÅd`=…¦Ê×ï»§2÷,.aà(s°’EMg¯s!ùpu›IÙ)k4d}š¸(GbÉSÏBôІgóTò,nSA]vðîÞãã-%Û¨»kæéõFpœbÊÑ5ÎΡ¼em¬áÚXH»Â%~ž¨‹/Õ²,k©`µgŒ†„°l\ØI|`þú"BÄKŸ½À©-óÿ–Í}”ïï2Þ›ò¹2úœ¢ëð~¦&á_¾ûtæbŸ¥ÝÞ]Fï.+ø° 1 _\AëŸò ™¹X­;È~cà»ýdùûGËúŸwÑyÙ•ª×™,`ùóhc-ÃÏl.…ö|¦|è2l7‹á¤Á„õGËèxDŽŽ{°ƒ÷ÙñkÈØpŒà¡çy—F§‹?tQ“&üÑ@Ô{?Ég¸… ý(Ÿ2d÷âOl‘[!¹ 7,JØ•LÅ"™/¨Eº{M/:M¬€x`À€û BÏ)uò„& Þ?ÐìU—ÔqÌ®«7‰v$1œÂ@ô` j)!ŽS¥ûÆÚOÜõùøïb;—µ«Ï£Ž)­óÀ™Qu";ï.Œi¤ýÝú<â`¾¯íTÍá‡õ5«ÈgÍh ê•âÄÊQA˕ܩìýþþ:åö^(ß¹ŠœÏöhLãÊ—4~:4Z‰h yÆ\z‰«˜Ì(“ó(ÚEîàèn‡†±gÖ.LŸ¬¨Uøy¶øôÆ0é ‹ýÔ]ÈO£Aá3bO§ÙuA·j#o›ü vð;æÑlyÛCDiy›n+prÊËdNpr·_PмWkRâ{§”Â6¬¼S¤ðbXSûÄg­vøéBúé63θáû¦¸ȲLͽÉ/ úÞFLðrý»ê9Àõ¼Ð7ºç>/ƒu1Bë2U;­,}ÜeÐ1B‰–iýb~–¢[ci.ú4ý½Ö€R+ŠÚ“2¡³K —=Ík (,›0ûÎÊšXðÝBBõ`Ý„/Ï€ Ã;‰Ÿã½*1aªVpý^ëyŠd#¢z€¤÷B5˦û6óÓ"=%ºú…¥ö-¤üžC;—’VŸu‹Ò`*»“® /ñ½ «¥µ¥Òßy¾'/ƒ”qYd–ÛFÈü^uF«U>Ú,s¤AY·¡å”WsÒ·z4÷1){]S¹qéw˜¾r£¶3ÊøQɈ¨jõ°a|—MÐpܼ:WWظfß‹ksÖüêËï«ðŠarWVú •åó` &• 'Q˜Û0Ûúª]€>¾«2÷;þ&+ñÕ ñ^ ÆO¸ÁŠî»D½Ð Ú}s' â~×íªctó¨éž&)Y…TAíV.[fljtåzJ¬…I¥ãuLx£é ñ׉P’xÑ)s¥ ûvWÌúu^à«AéÁÔ=§s{ða¹Ã8zê’¼4™®eÓzRñÔÄ.¬i ˆ)ÃÛÅqåÿ§k(Ý ~j¹Ü^G3h%ÃܰÙ@Q¦y4[D¦P“>"࿾òØãƒL?´{˜°èXšŸ¼r§ó§ž2rjý‡2/#‘‘”Þ+ÆaŠª0¶ì߀¸­Ör+PÀZf+¬Ú¤±ÑÄÀ!2¿ÌQÛ˜«ô°[—ĤE„†¯ç5¤i¿ xGÖJ¯Š^ëÔÄãöÄN¸³Œ.bB‚; Ùú ŒÊ¨dÐ_ÍÓc1+0vLsÛóÒ(°’:ð?Ø@€ÐU!ûÍ_î¾y¨ý$Ôáv…žâr¯”Æm|ÎSˆIXñ¢/„Çà D¶âoÔ_ÌŒäéêW#AaÁå±ì¦m‹Ž—O6Ó–<‹r§ëU Ø܆§õ¢kt¸ß¾ˆñ™¸îEŒóYÙR]õ€ÝNûâ«¢j\R{°mNÀ&öf¶E8Þ0؇þí…¢FC+÷†« ˆøoß.1ŸÛ…ˆ¿=ÌT­ªÂK|F°%­¬µš! «)‡^é@ x9cŸÖ˜Ûpá1!–_2 ¨È(]>ÔÃ÷¦iÚ WF‡W¦«$BÏ\·m¾~~NE Èu éÍ¥—„¼!>cwÁr\´åSh³˜³öÅ—°Ö˸ÓãžB§Ã;àWàîP+ˆ™Q+†WÁ®iâB¶’Óñ`t‡²áx:ã{“¦P Ò×- žëEÈÄãß½,9½ÜX°\‘>ì˜4ÕÞ8ÊÆOz,÷ÞÞä3…_ft™Øî6[çWyã`+˜Ä? `Ç´Öÿ“:eªœ‰†¦«~BJ ¹—øLÝŠ‘ÊN°Î¿øw<¼–UK¥Qцv{ôÆÏÿŸ”Îe‘œÁwxüÛ¿ç—ÑhËjïiŽ+‹I‰º$êëDß‘aÖéáSóqÐâÃa¶ªëÔ§÷ª?¼ŠåLïÜ•Hk¥†·nêÕ½ÏóµuÙãLÅqõáÆ}&ÃÜÍÑ–dNÑBÈ|ñI¬¨³M±å€­#\ 4$ÞjSr˜Ž‘P6¾©€w¡TÝ Ž@½Ç;a5úôD7ß €H'GÔ®rÇ(ÿõ=ÓF–ÂoŠL?ˆ©ô0âöÉQÕx‘K;Lv¯á\¦×=t—~âf­ýo„_§üCÿ? ;ÎðYGÐ XÍá«— ŸÁÍÏ~yô_«ïa¤endstream endobj 480 0 obj <> stream xœÍ=ÛŽÇqï´‘òpî¸ïyˆpà‡ØÙ\ÙÉ%c‘\IKQ¡¿ Ÿíª¾Ì©¾Ôœ9Ë]™ ÍötWW×½ªk¾?ˆEþSþýâÝqxýäû'2==”½xwøêúɯþ ƒ8Ä%:åÌáúæI~G¤v‹úà¼^¤×‡ëwO¾>¾|z%ëmêø '¼pÇä÷O¯ä"œñ¾òü)üÔÚ›x¼ÃÇÞíC3dyzå„Z¼y £•Ð:úã›vMü"¢l@¹Ms;u|?D°ÞÁ{ÏëÃÿÅ‘Z Ë½Ç Â"µj&(C¬W¾Bç‚ Ç :+¢Ðtïó«ÚhÙlýUž]H¼I3á`–ÉJÜ«t% ðm³j…½ƒW8+e›…8$¿ÌÃUŒÇož*¿£ÃñSÆ«Œ- êá=ޝO0•ö0ÁÏwd“oòÔJiXïO×ÿöD±åÈ®_I•­hå]}/À–é$ÂYÑÖè`+B5oNЗžßžfyO&§Cèó×ëp„ôª‚z%Õb“b²Ñ·äVòª&zKDÃr&à ”H'¨”[€%šá·øX/6š†€¡ÐIèQPò 3¾Âíb¤Ú:ý´¨{}÷T kYÒ§$ž'´AÁx‚ÛŠÆc§¨k9B k#‰ß-‡ºçNÊLwÚŽOÌàÔb‚­Ìð—V˜¬¿ŸÁšÆ/ÁµÂ“#ãN&)e+]Ï0øØxI9í-Aßâéüñ§$˜E4®@â¢ñ.sKÙKâk ·lRè—¢e”"i4ü¬Ó­RîRI;Q\„°ÍhN²Sêb`éÙ ]L7'Y5ó–ÐŪªvÒ¼–K°ôáM^/ˆMùp¢{m°R*`Öp»ÊXvîQ ’èá8áŽôæ·yòü1i#bw‰M,üé¤3¸Ãëè~Ø‚¥äû†G‡µ&©.|Mª+Ñ_-úè!Žª†`õ¤RÊN2“?nˆW[·èhYÚùEz„ïÀaL¯÷ ³*‡¶ éÃÌ~Ä8gA­{£ Æ›M{:þ'¼&c0±å8ºJ¯ L07þc#¸ñH@&kÛ€öFþ)xûLSOTø#™r@:6¼CqOSLä£Ô²]å.3 XêQš“ÜG=Q߃uÄ©˜—dÌ„ìˆÐ(¥ç‚ê>UÑŠ ^¬†3ÃÞæFvÑI­ €mÐ'u\pn J󧓃B÷<…DmælLiuC«T4ȉ-Ùé#NÅáú&ùnÀf§lèŠw(ã:ŠÅÉ$oº¾*Ë9ËñŸÑ5d˜÷²$026K[ÊKrFÿœ¯JÇüH¨›Ptg†Y@¹©‹Iº†´%ÿNr+2éF³fý¥QyÛÐêJfˆVÁoòJØðãÞ2”Ý©@œ›7ã2œ´Ý‘͹-O»<5l¢oóüZçv/¼JgGeæÁÕŽ!ÿûiP(D%nR+Ò™ÓZ0 á¶·™p€äA:j«FT%b$Rº•Ù›öK´«ñ>Oætœñi"QbîWºPõ2g„âçÕZ‡˜Ò!$⟼¥Se£óáСMÏ£àŒ‰à*º%2N+•ÊJäïÌRZâñ¥"ÙgôB8Q`;”5gŒŠ±r,ª}lLŽVàgÖNzù…9ê¼ÍìW©mâjµê¤& ©H ;kœTÊÏò‚δ~,}õyðt¿g#CêݾîzCxžÚ.ZÎÞ¡DMépâ[M kmßél´µ^‚”›DC|t_i Ù: ŸÒB.t6§þße¬Hç:wìü¤IEÖ—Øeߤ9@°ڲ2E”®2ÕÒe~}ƒ³ýêÆã9v)8¡ c'1æUþ Ð"x/óK]b~Zå‰QAw¸Ä4+þ¯’ý³ž9õËm4ë)7ê¬Ý"µoø˜RÔ7ù·—¢[i„ ‡ ½ÉŠÛkËR»u<ÏÛ¼­X_,ˆ<â+p&Pc+f Þ “ÎLCºÌ.ø_ÜÇÎD¯¸W|„§Ú>ŠõÑ¿i$OÏÃéäà§šò„ÊŒ°AäÔ¥f øyYNÞúšìqÿ©’ƒ'Ú¦D03@­TßCÂ?a+úpŠ8ùó"ØW³Ò¡ÏsÎàÿåe‚lé~Ÿr ßf„³ªˆ¹‡J©›Ð§¬Z¯Ck €µ&ÆÈjœÃ† €|Pˆ^œ®Zaúõ Ö¹E‘ht£*Ü[Œ ¿„ð€rT€:úqä(ÌASn§Gºí^ž2x£Q¼5sª¡Þš¾2R,NÄGŠÚ­¯¢xLj0ø…‹wO>s€xQLcg‘y—‘¢›‘L’¯ß48^-ôdÒSšÅ¥–Ë]Þº8…Ìzù^"äy+­ù!cPúÆ?¼ÒZç"ÀiC&qËI¤ä ›„â4·kG:˜ *uŠXL 9D *ezÍ,Ø$˜q°²lj–“CF'Ñ¡³“ö £+€ úi´`•ó8Ä™ñœZgnË0HÔæþ546‰Çbâv:%^Š™ – TÞ tÍiΗyBk7dÌNµvïš–xI^ºÍöìN½Ì4&:Œ^Ê{JÞ\àj>G£òµøØx9 ɸ6 ¼)‹6:ãúŸS2*z%ûؼà;³Eù½=4ì«ü*Æ2&ÁÐË ˜#ãᕼR²6 ¡¾ÏÃ¥lœíºŠh9EÐ4€û-¾g“QEÄV‰ éˆçA›îJv5G0™›GQÍ2G'§‡ž05ž(uœ¡ˆY0Ù©”d/p/ÚXÞßéN×á¼÷U È«¸h/­Õ¤‰ËWÌÖÞtòvL=66L. dü>½˜ïô ºžD4+ÍÇ¿ÚÔ@F"²MÕÈ&ê*sz»ÇŠYrö©~*BO¾îlÿÙŠ“¯²üÓÂÇUsãv[‡x_¹Š0ȶåè%amhd±áá[`mnÙe8D˜V3uúd‚…‹àyó±Ç–6$ ºNNiOÛîµi¢‡Fí˜:…U‰qÖ6Å=Hýh@ÀÃl¼¨ë÷ß'nNÇ? ­ÎJRŒX†BƒÉa©µ_->ÄNe_d ‹Õ­’¾y“I"®^ ©ÐÏ{¹çâ¡F>ëï ÖŽê9F–S+Jÿ#í.*Ëhën‰^‹£¨Lpá(º“vÄw¾Sâ S]êÀ£ˆQ®š×Zå…8Fè)à“À)È^u#WFS”Žüq¶Fƒ† k±!¸™Éß_çÁ”°j«{PäÅ—ÙÄt]²jZ+´³B é¹b@Ž#‡ˆŽã vúÄóž >„š‹&±VÅF~•Ð!†‘8†2è/ ƒöQ²ä®´gE·­½Èþ^+‹7ÝE7î2Ôð >jºgHLû€/¥¨ŽÖäÇ S¹ ôù_zÒp)J¹#¿w¬Oša…¯ßciþ J6¨º2ÅLè:œJGZô$Á Ñ}4SnÖÐÔÈÿÑ7"܃˶®è[x ^øÃ•oMþK> )#øÁqñšÎPé¥g¥`¥«ä§±¿_ŽˆÆTF0M§‹ ¸º‚=/™Ma%  M©Æ#×Ýzo†4 "°2!ÊýX³"ÖŒw ¿ôÇã‰P¦;ÓxÇ p\Èàp8¸)a›6àÓJ­’ÞjÆ÷±LšªY¥‰nJ9JæÌuþ)Ýj Ú9ÂßÍLð¾t.Àþu 8’NM!‰`ºzïI¯ù´©š™þøtÀœUÐaF ­Œ¶f:0úî„Á‹XÃÚXSp“±j•5SÒ¥KàÔÃU3Ù?ákd‚¶‚&/áÈAÀ#ãVžüŸL& a¨ chAbéeÐ…PRI Psš1áL b-»U(«9õ|8#ÅJUÿ•À*%+{™ØM.ñ,%ZÀ–TÓÙ5†š…#vpŒª2aÐôœì¢µ$—TZ„ÁÌ"=hw’72=P Z]é¢1¿‹'(H‰9¯”§bÐè•cetLœí¢AØgÓî ®iÚ!2'³Ã^Œ/Àîò.×·^—ºUp<α!  WÈS–“ BÐ?ºtÄíäéˆÃª“æ~‰` ”º+¢ü§Ä6^EŠ ¼Ö‹›®Ž¯Á€ÿéN°Œ"Ùø ‘|³ª©¹'0‚”¤äƒ¨,ýˆp‚â°nJ Ò`Á–ê)ªÜ[8Gb¬_5¯½îÀíPÒ;‘²í"Î,Ž:þÏ'³knÔ,>ÙeøbA§£P{4ò¥µ¼ø¨ƒêqOºÃŹ“ö`†Ï¥k4¹2!‚Ú3`p£´,l¿·”É–˜)–«ØiD&NP¼}Ñ:Ë)>Á¶R“›5dƒkƒ€Úô°Ä£ÜÁÖèß™!y€Ý?††³øúOXÝ a|}êu~!õÐD"!ÇnÖíÌ‚ÊÛ½à{û¾lu¹"^–ÍœÖ)huà8uð x16ÍÖ׺R—ÂámyEqwƒ,!SÑÊáÓéÕ\|%Öéí|¶p( ÓeëGw–æÏ|sY˜ J¢gÇÚ–“â‹Ò\R¹^åˆFr]~¸*Èp(Íѧ nk†p»?MBBñ)e]h#ùÒH®T¡á.í–aéÑZÒÜ‹`Äzw U{u.ŽÐQ5šBéDէמUVè³Í`´7ŒSýŽkŽ»æGM/’JžLÿ5iVƒ=ƒ˜Zï:<)mòDö©ZA/`xS.ûv NͲéČꆜұ“(ef8¡Š5>ü ½¦d€¤îc6Ó8D^QIGáww˜)ÛjŽ“V¹¨•µì ¶Ì9`½º5aßÙØipÆnEµIŽP¦»4šŒp>U4ëz—ßÈš I2 Ök·îIEê#Ý |Áý<Ók‚UéûÒøGÙ°}þ‘ÉuƘÔ_c‘SA;ttI¬ ú¾*õ¢Üj·ƒÇÕ—‹ïøÌÁ¾«?8¹”X#˜Ã'EB?ÃË=´,~œcb¤…Gc?P0(-Šý%« 0|…#€oÛzø{…!®ÇðÄg~¦¢`©å±ÝÉo¸Ë_8Øè{Ÿ›•}:‡²‘¼ïó'-ˆ¹ó…ø-ág~}×]¤5àkQz“£âæ8ÜŠ -73­©“³‰¿âŠ:¸¿uo¥g™ó°ÓÉ”à#WXÃ$K88úT£Êß‹k*Ÿ!æEgCf\ÉémÄΧò=±~k Ëu1˜œ$jIËUASËy!aøc»pAÙˆ¥Ë,‹“`t)È ÁBýظy¨ðþ­´%®ãTûø.?ë÷”¾â¡Ë¥]ªÐ™”}Bxð¾^Ú|š'$1ó„úO[¼*8Ѫ¹OAH¥ ¥§ ¥íu•KèÜ·zÖ|ð·æµV"aï¡Rï•1oV$´¨ì}uÍšúÔLö˜SUKqú޲]n|Û@µh°¼ÛœË²“øzú„PÐæIÍÔa ¾«2 \à*Ò®wäÚ6ZŸº•¯¦ýÔî$Í€ÆÏ9á’nb W£¼÷¤V~Ñø9°ÀÒÄÇÕôß ç»ET|+µ_SÝÄ5exÇÊ»LÆåÖsSƒ[ï1ÿ¾`$Õ°U%&L$L´®È4/àR\à?Ìd-Ö:7/wýœLÀ“f̽•údC\ÔhÜ27ÇìÖ–ÍXPÓj.Ê!óæVØ>ÙæLÏVš?r“ýi&ÒgÈa™f¸]ìô)έìvÓ(|dý£Tÿàú.²éÞŽ:°‡†¦3‚i:U§±cÀò Ž·¹8gw-2¡"n÷™MØRÇœ5aâz}|Ÿï‰`§=æ¬(ÙÔ(Jp³Ý§‚‰Îq¸Ý][6³×Á2 ,†Ù÷ö…³¹›­©Û÷Ú ê¸àÇ ¥ØÒÔ`)EäÌG+`“àX±"“lˆ n†¼eŠ#ö‹JìŸ;ØQ‹5÷º ›^ÕáA£õ ÿ¹¹Fÿæ °Å˜GôÓ'òÏ›»(Ýúˆ¨À>W\TS]æ;8 O5ïüÌ®OJˆK:8ï–ÿøÍ$ v&>\çà µ%Äô£¦ûòÑ_n'äÚOíáŒ.ì0 Td‚°¥¥Aeò=hxY;v­q§šÖÕe·),έq‹s î«:¾ýÂW„ëh.™fiI†u^£_Û‘6dþ»4›v¢ëÖß–&gûÄÜÇA`ÂwOÍ5]°T89Làq|õqm}Û¡{:|.]¥3lDcrŤ´ÈߣÖ7Ó6™_]—eì¼"«.(™îˆr§yÚ%\JÉëΞ•®©osV0¡ï.Xµ E\S>ÇtU© í%ÇXbùµTú$è¶½xlÓO³k}"phO›ûä÷º“µùð¦è«Ý¥cܰ+7}!ðU-#kÈsµ¢éUµÙD¦ ­âBèõô!½´~«-gèåðõ@\¿Vñ¾]O]$‹¬ W/@#7eÁ ·@í$O¶>eöûóÕŠv&4– 9D™pl9žV-¡¯¼±VOÌMíØnŠqý]Nì“ÀÇ(«P+…t|¼Ö<nK‹ÊÙ&×TÐ<¤Ñ3-Ís&}±ûqKeš´ã’!×ÁÌ„<™|;™k5óu=ç8AÅ;‡™eä¢C ¶Õø‰=ÓUHäk“¦¡õJ ©p"ß½”lÇBÚŒû$ÕDÊ''½ ÖÍ$ÆB#Ó­Q›˜Âò„6±þÄñ¿¹~ò{øç¯iÈŒ}endstream endobj 491 0 obj <> stream xœÝ=[s^·ïÚþˆïQÞ±Ny¿ìÛvÚíîÎìCÏtvÒ<8’b§•äÄJš¦¿~^Aâè“wgÜvj’Aä÷ýIlò$ð¿åßëû‹_ÿQÙpzóxñý…´Âo.œ¬“q3ê$•tøêôþöô§ÓÃÅ—'½A‰ØÂé«üÏÍ…„ÿÿéBœ~!Õî|Hà÷Ê9IKî.¾è­œ±S«R2´ÒÖO­JÉÐJI=µ*%C+áfºJÉÐÊ 9µ*%´•j¢¾– ­|˜pÕ’¡Ç6_3\j壟Z•’¡U4rjUJh+%‚8TJ†VJÅ©U)Zi?s»” ­¬œ¨¯%C«IN˜ù:½ªÐYV|úßûÛ‹oþ•¯û¢W…ÜÁl®ë`NhÍíê˜ôž›ë˜V’›ë˜qì”ìê˜ì”ì꘷ü”Ìu(Å•Ÿ ¾qulÅ7®®ƒ-ùÆÕ°߸:¶âWGÀV|ãêØŠo\[ñ«Ca"Ç7¶Ž€-øÆÖu°ߨ:¶àÀ|cëØ‚ol[ð­#` ¾±u&£fùÆÕ°߸º¶äWGÀV|ãêØŠo\[ñ«#`+¾qulÅ7®wUÍîol[ñ«ë`K¾qulÅ7®Ž€­øÆÕ°߸:¶âWGÀV|ãêÌvcëØŠo\][ò«#`+¾qulÅ7®Ž€­øÆÕ°߸:¶âW‡–§²,߸:¶âW×Á–|ãêØŠo\[ñ«#`+¾qulÅ7®Ž€­øÆÕ¡¿#X¾±uleOruliOruleOruleOruleOruleOruleOru_\ð᾿)q*ÿ\ߟ~óêâ×4QŸü¦N¯¾¹ÈÑ y’AoyâôæÓ«û‹Ëß¾xõ—ÒÚnÞasÓé ¯n..E¯/ج‚kõSàë÷êâ`›b‚˜âÅ÷ %á$½†*øVi Ò×Ř¿¯BB/†´~ÄP¿sQK¬„±Ÿ:Ç>ò7BT*j‹JeÅ0Žãyôåé+˜á›Ïxo“”ÚbX×`S/|H[xÄëTZ‡-R¾¡ç£@ÚZ ¥G õ;÷µÄÚD[Ãàô؇«3ب¨-*•Ã8Žë¼Ì>×Á%Ö…PÌV[b{½X´¯ :ÁÉàŠc©+­0m½…•#†úmuƒ(%N'Ú/Ç>|åFEmQ©¬ÆqdÖ}¶ƒ{›l1WB©¾†e[‰K´)cój¶6Ñ®ŒÉë½|_„ΡµP~ÄP¿½®µ$m§Ž!ʱ(+D¥¢¶¨TV ã8®³1ù¹.±Îªúž”de®lŒt;P6Äq;PÖGºÀ·1Ô着{IVæCVö½ºt*J 7n(ó82ë>ÛÁ 3F?é”ÿR}Ö{ù&:¥µ(£a¨ßÑ7ˆânMD§8!½U¿»Né-‚1Œãæg78dÝ—'°æ]±Èðˆí§ %mT¦‰”’êÖÜ%À £¤ŽskoiI:f)­*†ÞŠâ”²„tuª§’;Œô‹-ºV"“Äb ë6iÈ·Û;ML)±¬q—p´6¶~Ái}1EJ¯õÖ…‹UKî.”fÓ±•(´# Îþ{¥¤RvGJ2íg[íµ~WËRª4'.¶·±FbH³TJš0¸Ò,µooÊ,µéÊ,µ¡Ò,UœE­·^›â—ÑgzK àˆ!¨ÁD;àlß¹WÄQK2ew¤¤Ð^qÖ±Õ^ËwÙN´1ã,Í%wUt–”–‘öÔ¿ë,µã‹,õ›ù^q“yX{-ߨcKô–ÀaH#ª0UoWœíÛWYª%m–zI¡½â¬c«½³ÔUUSn͈&ërתoú¾v‹t¿hܶÓNTóy~Ñ=韛1Í,´š'¦»lÿs<}‹ Kêz‹†xúÉÿÃaàdñZ93 ÔnóQž,h@<¢üòòõ‹+±Á¢rQ_nø·V ÿÕ«ÿFDA ˆô&=pZ``àËËÿÂæÚ £/ðOP*!¨ËoS±Ftùþm¬ˆBå¯_@±ÖÞÄË»WP¸šËï^\©°m}ù®×?&¢À›õá,ÔTª+U>óØ´Ò[šÅï/´’°â‡fxhí‚;‹d Z‚\o­œñS+Wi¥mœZ•’¡•’vjUJ†VÂÏt•’¡•zjUJh+ÕD}-Zù0áª%Cm¾f¸ÔÊ 7µ*%C+ rjUJ†V>š©U)ZEØÇV¥„¶2"ÌÜ.%C+¥&êkÉÐj’“õ|a†‡ÖÚ삦lݽ*Ä]Д­ë`Nè]Д­#`ÒlÓj4eë˜qì”ìꘓì”ì꘷ü”Ìuf*?|ãêØŠo\][ò«#`+¾qulÅ7®Ž€­øÆÕ°߸:¶âW‡Ã–o\[ñ«ë`K¾qulÅ7®Ž€­øÆÕ°߸:¶âWGÀV|ãêP‡ Åò«#`+¾qulÉ7®Ž€­øÆÕ°߸:¶âWGÀV|ãêØŠo\Ýߨ:¶à[×ÁV|cëØ‚ol[ð­#` ¾±ulÁ7¶Ž€-øÆÖ˜ŒìþÆÖ°߸º¶äWGÀV|ãêØŠo\[ñ«#`+¾qulÅ7®-OmX¾qulÅ7®®ƒ-ùÆÕ°߸:¶âWGÀV|ãêØŠo\[ñ«CG²|cëØjãê:ØrãêØjãêØjãêØjãêØjãêØjãêžá¡­ÙòÄé1îóÏÈðÐÆÄ/¾—èt§ 5÷¤jS£*m”Ù¢%-¤1Ôo£+D-±é$®cprìÃÉ Q©¨-*•Ã8Ž!ÃãóäÛ$¥®Ö5ØÔKt:Öo‘ð:•Öa ¤”oèÙ‘hk-´1Ôï=î%6ët 9¿ª÷áê 6*j‹JeÅ0Žã:/³Ïup‰u6³Õ–Ø^/1)ûDÛ¯ :Áië‹c©+­0m½…#†ú]ÏÞ{‰KÙ'C¢÷>ê¹x§¢¶¨TV ã82ë>ÛÁ½M¶˜/¡T_ò­Ä%Ú`ùçÕlóu=#m^ïåû LÖ­…v#†úím…¨%!ÑÖ1D=öu…¨TÔ•ÊŠaÇu6&?×Á%ÖéQUß“’¬ÌnFÅ0nF…@·ø†ö]Uu/ÉʼcÈʾ÷Q·ƒNEi¡Ç eGfÝg;8ºêl¬§©½s–»`·¤BS¿»`öYì:†ú]O(›` ÁrþòM³µ(‚Ø0ŒãVÝç78&ÃC—»V¶”’êÖÐ L˜[CKÒÁNiU1ôV§F¯K d½=—Üa¤ÏI[‰N›zK'ÛýÛ”SùZÚÆäSù^„[¿à´¾˜"¥×úësBzÉÝ…mN¶ƒv$ÁÙ¿s¯€£”TÊîHI¦½â¬c«½ÖïjY*•æÄ× ás ŒÐÁq–JIÝ-æŒà,µoïÊ,µÊ,µaÒ,UœE­·^›â×ÎgzK Òóˆ* æ°Pœí;÷ 8ZI¦ìŽ”Ú+Î:¶Úkù.:IX3ÎÒ\r‡Q5AgÉhOý»ÎR+1¾ÈR/q™ï§ÉùM­×òZ { à@þâˆ*LÕÛgûöU–jI›¥^Rh¯8ëØj¯ã,5UU•[7¢ûºÜ·ê›¾ïy 9Ãc²¹TFó(» hIÙ>dALÛÆ:þçxú€8de ·Ïðxfv‡~³RÙ_cÖƒ °úšÝáŒÖ\vGô¾&wüû `g &ºËoRê„N…šu¡µ5—·ùï¾|Ÿ³8´²4wƒ&`Üb ½!/ÿötˆ…^8D!7+6¹´ÉßpAÚ!åã1K#/ï¡s‚RB!°D@míþ¢Øn2uȪé!Zy‡“s¥`óBæ\®±2ä9ù¤PêhåÐý›>àI ôj`y[.eoüo/® 6æw§@ ‡JUBA0—ÉŽ&àp ¦CÁpIÍ5ÙuoLÒa~$ÜxH3";Õ7¹£ÔÀÂÜ÷¹EÔcÊÏCcŠÎ[2¬2 ¢0å§çÁ8ÅI·=…gJ 2°…ÃJ©PÜ£PH"KyE•vsMDœtIWÁ>÷¨Š>Æo¤B$(R¨'…Õu}1N?äÙÓeÒ3?A} Óá.& …yJ‡‚Ö¨ºü JhÆUÆÔ5ŠÁiö´£¼" ýWV„ Ÿ†ñ5“øµçk•™Ξ‘×EÕÊ®SZþæÅUÚ‰¢:C&Ne•‹¯Œó0ýdptÌo·‡6´AéņßAcPÞ4e)“0w°b±Ëhca¯ÖÑÒµÏà*ÃRüªoqoÑ}èÞÂ,'t(äÁjJ¾Ìlr¦}Ü…±øçÜ¡À­ˆ”ti•¹œDóÐÙ@*ð~¦Ý:Z:mµµ’#޼G ËÕ•± y]¨#4~ð¨¢Ô¤1€¢ú§(탸RäûTVÉ;Tà\\–¬æŸ3æiN2wEäÍí)ÔŠH”° û“Ø;Ì)kŽÝ¼ $©¼)}€]ôÜM ­›ÄcP~!p²?›É•²°²>H™»³)’ÍCe… :½Ù©â°ž,¸ëà¯z¸0鯶j~E&ýa„U‹ÇMŸt­àX¢ßy•8BèÖîUÇlÈ2–âÃz¦ñª*Þ›wúÙ»dC‡.L4› æ ¦íÜìy-͵·d9g$h ìÊú-"×ýb²ž&i¾ÂkäÊÍ{Æ #ÜUÝ7ëU4KTC^™Ïñ¨Ã4WÒç:xó5c4¥Æ@ü ±À7ÔuÚ½RX³ú»þã" T‰SÎfs ¼‘Ü>¥þßw§å«XKÞL˜Ó­iXîYã¡JG¾ÙKu=^øµ£õE¯Yé)Slh±3É1Î):‘dÇa|‚áØƒYÔ#–UÞ] ùãÊø´ÎuWeZ€fàÐDmfMiÀŽ]E)YÛÆcláìʬãè*JÔm¦‡¾s/0óе±·tÌú¸e9ÚZ÷Gyg[†?gº »OÒØ ]{w&/ž4d Êѹh]1˜º0K˜&±>P}’û<áRŒ'OÔÚ"ËgCUõsï²­¤y\ œ/PtŸ+W±»ít×…MùÕvŽm¹Íˆ°-­`“ ?¿ñnü͉Ò~ßÚ¹p”•T ¨tPª`û VøðŸ/Z†EÎTÀ°Åú\+O˜rž!¬2+À2Ù¥âÜVßíöuâ ÀFÆñsGä7±•¼KȬÈD(îónÞ‡’œÒOË# c]éÔ^ø`‡MàŽègîüû*L ‡öTç{q›^²”Êx&i”ñãHŒÕa ;dÎÍ3”¢yÆÌ¼Ä@š†Ó^ó‰r€VÓÖBu©ò!EÐiÁOÜL!Y°ˆ¾'ÖÍ_ÙÏAB1ÎX:,ö ¬€Àô:·JW]¦“¦Ç¹ß‹ æ3‹ŽÆòŽ‚RTzVÈÁT¢Ù,ò_ÐЫgÉ)o†ñP†+M™Ûa#ø˜]¦éÑhÍ]ðÅ´÷i‡ –/ìÄúLenHü;nûãÉ”G©â¼>ï4) Ч´ æ(O.µ°Ï9C1ÉC8 Û «ìµHg{oÖ „Ä„Œ%h›ôjÒóùÕ~+Ùµ¹É“íB¤ÆHå¨Ñ5Ò@ªº#ûv1yq¡—2‚—ˆ9g¨ì£¯‰£e;ÈTŒÛ¡ý>g ÒÖh(+°}™„'hˆ0û© 7í Ð"ù‚ÅzГÿ“’Ësy¢Y×VO“c îÀºF¸0JÝz¸Tj’QªþAäåÙy:å½Tèk†É´äùTÙ"Js¥Y?cç›6ï ÷§*Ü Ç0‘ ýäâ eÜŸý+¹É`§\†TêF!ȳ\e³%îöØQ¢B˸DVGôÚ/åÊø#ÁÂÛçq!W»£:N®^׆Ù/ÀR˜Ü§ó$ÜJ¯íŒþ÷£‘ò£|꜒/¿$Ãq¹-­»üŠ”OÏÝí²Æ¯Zr€Bë$F’õ䢆!çY˯^þKÊiA/§¤”'ýh¢Å£nÚ<ÍfÔ‡Þ|ênt 2rFvGò§SŽàGíg)tbäLjÑ/§ž0´½Ë±ibÄIc]-rŒš¼,Ñj},Ço$«!ÐF;͸ vôo[ÉtêÌgkã” åòÊëºØ¹}©o&ž5vž#)Ìú¸H¹n“mæ•"%µç¤Ç€1½Nwƒ²žÝ& u3¯é,Gµ„T2ñç…T2æS¼9ÂŽo¤ËçŠõ¨WtŸCDšª”/íRüäÏïqD”7µ_s71íëÔ¼ô{ ±šÇÇ…ªit¥`Jî”8ì~X†%1.Œ!¸uć1ϧә£`wÍn€ÖÉ—¥rKÑp>.m3˜†Ê¦ãâ½õ›Îˆó¢{L6ë9K±måmEŽo=`M Ô”~æÔéÕìB0T~¢)ÔE5m½ìÈËRÉCú€Ìüñ\—2L&¡ô& ¥ ›š&>¶  í}›»Ð-ÊôË&È ràÀÄ­¤)f—~)XXV×O™_inŽ}Yœ ëÑý„MÆ%ŸöžZD†ÛFæ gøuˆ““‹¥æ ›¡pD~Aޗ̆ÁâÚÁ-—|æE…zÑiKœñɆ±Û$2c|åäHá æùY›è ýT>ÚåóÑ:ãÏQeÝž4Dêƒ5˜ãKA·“ƒøÌ8s°êÔ³C5yâÔwv"_¸'÷: W„ÉZ… §=­Þ÷†%qO+è-‡l”±å‘pãc¡ÓlJKªî‰tÓ$¸i  ×nrj+’v…ij'²Ô8N{ž ;Îe`é¤%c®Ë,®y-c.:nJ^JÖFÁa²Ø"Ùe%kÙnqÓÚ}—í +SŒ°‰XEéãGÇá‡QtÈ,Rhçu·$?bÖ¶å•a†dw&«N ÞgÒ{·åú& »e–¶ý&Ë%øóÃi5§¾'ôSÔ´Í.SÈçóxIóÝê×Ì3n%ëÌÎäÉt;é<£ ‡Õ™ñÁèÏN‚ÁòQ÷Ë †îÚøìîôÍOgþ§Ã:]‘Þ»™x%ƒ½r!€—ù0,‹Atße²$oõL)Ï æQ%UÆžs!4'”¹Í9YHõ ûˆn®™›‰]ãÇ…£œâÔ^"Hvb^(b·€ë½Á¥ñ1o¢ …<³Ày{»)„¾+ùÅúì½7åØòwšnkÃ¥°ÚÚ'TМØ3çôaʱTŸèÚ–Þü¸ç‹X¨xŽ#Ki4-.sð)ÉŸv[ ÃkÜR"N —?]œl¼â/©'Mr¸7!¸»a‹!$9ŸÒoa]Âp–?¤µëŠAYŒ«D÷ñanCE¾¸MðãžÒÄRü©]Œø( ‘ïü̃<Ά¼)|ÂIõÄÖøªCg»h±yôLýBÐ(áû´”) zÛjLKÙ¾R%N­Ö’‰ëò¥L² rbzJ”36̶‰bŒ×•›ŽV¸´h¢ÎùwA ÙåŒ\­Ã=\*͇'ñÈUûË\±ùÀ\ŸÿA0PžqJêI#/‰;;×Ú-€æX|êPœyÂ5ª—׌5é%#.‚M½.Î; e"0N©ñ¹ Ãü­þ3& i!.·ŒíüxºI¯ÏêŒé5&®´×”T{Ìëeé|{ÙÕdHýÅÁ¼#-Toaɘ¾ê-ν€^ˆà³ß÷ß.,F¥íˆ5q¼ ‹7Sì“;½Á½rÂprÊÔÆNÎxsi(7 bºÈ÷Ë¿bæÀHFc>aêµEðÅ :ë¹Kóä`?2ŠR¶¸3\¬ê?©W‡´UÜè(þQ%ϲ:êÈì`vœaB£­yŒH鍨?tŽ”¤ô1?ÞˆégWð%ìêû梘u1¹ÛøÌ "ç=£Õ•ñóÞ÷l“>]¾À‰ãÆÆAžyU¶fhõÄÛ©6=¹ÌIëôì_jnÝQu5)ðÉ~[©f+è9̸²šƒ »ƒìJµ¢é²a.ÇîÂófwYœ ÛDó`ƵR¶b•‘Ãß5k½JÃmó¥—§ûhà²aϹ?]nÙG>êÅ¿Š’’ò»Ä±YögîÞÃòÉXɸÍ' Ÿ(+¶ Û¹É-Àøeäïú½ÌÑzsÖ ×t&~,N(XªN®ž¦Ú G&?ëu¼àð©WʉSfxðz™TÜ×<”q™iÓËxÌĽ^zgÞS É#LÑs½g¤ Ñ¿ÌyÖd—µò—ynuÉ8, X¤É#;¨Ö]| UNb$™xiÊ»½H;ý›,Y"ì ‘´9 ךdª‚й?|GwH|-¦ü’ü'òŸö= $Þ‚S;Ä¡¨ŽÛ Ú›Þø-Yu·ï3$h«O ¢x ’~-M^þï‹à¶ˆ§oéè_Ö!«aRè nËØ¦&·TRî3íG=B›À<ãM MþBÄêºàô2å:N#ж>Ý£¾ÞÃÃgÔ£'©S•@Â)¢ße )Až &3Kþ{Ʊ©mÁ—ÞïÀø½Å‡0jh­0äö¦Ht½Þ¿^•üqa”¹2øo]xVX–½…Ò$Í;þ‘ë5jAD~É å]Ø,Ù@‡5E»|·^‚dBß´…t¸EGç°ªL¼¾ƒ§4e£Cß?dJƒ›–W˜A“dØô0>ºÎµ>–i“¼¸ëVØ7|ô“¤ÿ=uÿIÇqÀ ¯v«ß !}|ੌ©d¶PÒâöo)Edà.÷ž;‹¶pé…t¶(tÑ9¾Í{¢(¶fiAè_û(·&ëË–«n¡ž®4¢×²>BÚ¬õþg3ÿpñ?\endstream endobj 512 0 obj <> stream xœÍ=Ûr7rïÌ~Äy<Ü2gw`Syˆs«M%U¾0ñƒ7IKr(RµëU¾>}0 Ì`xHI›Ø.ë ÑÝè;zF¿æIfü7ÿyõöl>¼:ûåLÑè!ÿqõöðõåÙï¾Sq>¤)yííáò§3^£ÊøÉ꾈ĪT0‡Ë·g?_œÏ“5&Øt|8¿ÐIMÞü8O!Xâñ5~vÁŨ÷ç:ÂtoŽ¿Â:=“ÂñŽ×YëŽop®1.è<Œ+ÿ|~¡&e’SÍ„WËÖ{¼ÇÙ³7Îo„uæ¨q†õF9œÎ/¬A0êx¹ !ñ¼a”ŒÕÇ·ˆò¢k6¹x| ÐnN³)øE„_ÐgëœNÍüFe³?þù\ \Ùfô·7àÛÏÓ ;êY7Sä¦-‡/¢‹J¯ÅðWçf&:-9ß‘\/¬—4ËC•³¯óìîx Wbòýrhwçÿuù¯g:„Iévy òô³``Þ<àÃø|5àCÞÝèPöQ:%FÄL:©›“õÍdɯ—½º<ûÅz;™tpʇ)t  V»Ãû›Ã‡»¡*ÙdaÒY?%eã"jÑñî_¼¸¹{s÷êüòç3?w¸ ÿKŽï^¿x¸ÁqmŽÕþãîªY§Ô¤7 ß6ÚÅë‡}rδ›ù7£@4oaÀÙÉâ€VS:Ü„˜”f=9p°ds¦2ŒTfÈ]nÏ^Ÿýð[`¤F~óô/ˆdÂ)Þx7é˜À  ,0ÖèËዞ'ï–ï:ÅɨÃÕYqÁÃQà ’IvÒö Añ@%ê÷«3mAamá”IÃïÓÎ"ú@ÈQ€ߟ$‚¨ î®9ÓòîÑ=Î,Xl$ Y -(Ï4ã×0«€4u< yJà¶ÒäqÀ¹ Cì±u\´¢9.ÀcQçã‚/ ¾õ´Ê×zXy œ• @½[Î ð “7⬌ò*ŸMž¡Ýdt=+3GÀ'~Êa­øºâIǵïÏ´  žoÐ0ÓA+'­^Eœ ’âŸù+mÐhêïÎ5Ëëw†óË’À¼”õÎ6ðù+ˆxÙŸ*zyy‡ÿ4eðP€eIe¢Ê@Þµ6ô5?æì¬ø 8F¤¥¨¦oY]¿2tdAH Ï«ý죀ž¿Ey÷ò{E–Vw¸3AvîN©d6›Ôœ’ Ý)ל¨j»Üt§T2›ëz>… ¿œRÝŸ*zyy‡?ebjO©0ŸMpò”Œ‹í)«ä)g”§T¿>.Äç²:ŸB^O©ì^~¯Èòê÷,v)7¬e±«†¸1iˆ°,ž|d.æ¯ ¢«ú»¿%—×ï!ëF°p:3˜ÿ²Þ:/áóW˜_öÏ¿ôÊòÿ|J΄ø”Ê€xd$z%jˆQFñ1ñW´{,áòû Œ–ËËw†óË€ì“>Ôõ>h Ÿ¿¢äýóï½²¼Å?Ÿ”s-Qu c¥­“Di´Ù’(Mæ}ùB´fyù^6­«ºž‘®ð Quÿü{A¯,oñg¢xˆý€~*"aQÙ*CÝu„¸š:Ę<àXP!" @Ä·ˆ y ö1ੲ@YMЗÎÖLCÑ™·+†Äy2 8`• õ6# ½àðÛÒ ´St‘„ºd|±Ùkfn,{J€“ô ÛŽ·Ë@Ôym17ÉgèàûÙ èŒ|¡wvÀúD(y2ØyÀÍP‚¥½+Tö÷Ù”VHt™glÉ:×Aª Ë^4OèaøÀ Îhèv)êB7c²0ÂÄŽE€à8ÂC9 ̨„Q˜× á:“mófv´ÃÃÑŒòÍl €¨Œ”ʹËVXDH,ÒõÄS÷ä(lƒ¶5^-æ§0,P” rcóñCvcq¢ fH.µlí<ÏpЍ_Ð2bÍ.Û ÓR<ß.2_$ú [ѶƫÅüû§d°L%T › :Ðñwo>¼yq{x÷âýøt_sRù†RÒoÞßÿ|sõáæz™†s¤+9ëw7?½¹ë'äüõ©å*ðÍþ`ÁOhˆ˜¨Xõ¬BD(\¢ÃQ/s~auœœß©"°öy5$Ï5$œ}z É€Æ'gŽïĦ\¯ó u£Öhü¾À¸€»ÒOÅ•'Sƒ‡¨Òå’•KMaGÒ"+Où³:r!Ï ˜ãh{H® ×{@2SVÉòɘöÀ3Ú­ª®fE…*H;´¯…*Qø¬ÕÈNäá=»Â)ªv‰‚TÞ”ªZ¼“O6T^ã\éó •n‹z¢­RïŠLQLVÄ^-½&ñÒ¾RdÈEáÈ…saÄŠ1’ºk8+4|:¾:AmbÅ@)Üy*8¬fxÄ·NR,غ}9ZmÙ¬áH[²U€›¦;Cd„aÆâ.ÞÇãO¬ 3øYIÎ{&A§‚`ÍÕ9ɼUx2D­ h8îÜi¸ÅüëÁ7ŒhXDj­|ý—‡H’#,eWFL¼þ[C:AYEÇFFÇ¢À)'±|)°Ì{¤¯â aI’¤îd: DÍçÊÓWì"½xËç†gGÑ lV˜L^«0ƒò8cnSp§˜™èi”‡$t@Èž<#)-_1 —vtìÔԾeŒï—t;X Öž.4eß‚`ªâ˜F®–I5—ø­ŽKqmXxÆoŠ# ¶¾ða¼ØúèŽõ_e×±¾«j3Ø]ŠÎ;¶ÁÞ·›?r³BŒËÆHùÞÕƒúx™ÓeM‹KaÀ€äþb^7FwO” ž÷Ú–³¢´%››ü¼f(Á53$ACãâ3³ußE‘†œßÚF¬ã{¿unO¹¨#ƒnfßgúMx†<Œ©·MSË\ý¥=1(¤/iØuð¡UpcH–AÓ‡LµÚò¯¨[>^|Ì'd›€IºŽ¡‹®ø~ÕëBF˜ÍÊ0ºpÍãAÍAz1Èψ0(!Ào d^j`†„òR3€˜Çá ôñ‰…Á]g8©_䜢*¸“œ¼Ø–*¹ë L%²ýæw!3§[º8§O³t€'E¤÷S0q¦†‡=5‹§ÇlÀ­‰ÍSj¨`U‰ŠÝÚ¯G,ð©ÕΨDÛi/{pŠ&<+½J4ö¾ÓRÔ„&H%y—.c©¢MK +€m\ð#Œœ\0m¬ôhرegvB¡‘þô™4^FB}‚.„éŠ1 ºñƒ¨¬¸gµŠ0ЏO hd×ï¾S)Ê*zX@]­Ÿl ™æ¼ÆE!$§AéÕö°‡ý”ÃíÿŽÃX W˜…Âg£O9Þ÷Ñ+šÏo˜;1Žå€h€™YžyÓ»s3OÉšìUPÎ$r€0תè!ÏÚ7›¿'&ø€z7el|É›G?G>áL"‰©vü‚ŽÕ&í¼)phÙ9£”ÖJÎG§AØ .asun@ig—XJ[¦Ž’P›tÔÌŒq3åO oÀÌ:¹TP‘E¢+ŒEÈ‹AJ.ÿíìò·?¿L¹œÖè­ÕÇ¢_L~Üä³íϤš±>=XÇLòµ0%ÐÀuÒÓ{'lÔk^7wÁÏÿEmÌbrJ &Cà‘¥’–åiÔª=š6z&.€§m)è§„–ˆ0Û¶àGŠ“‘™Šôë«*žV<ð~Fû ÃHA›,†Éϲ^%ÛÃ^ñ> …'ç噘Ö× *E÷ÛqÓúLHDßæH›'çåè0£2­6‘nvnæžçúèÐQ¼Ñ îv­r²`ŒûÁ:öêV¥Æ·ܲ÷)A׸}³NÇÚ–òÕ~¨xýùC- .´–áb9å\Ä ;˜ÚV‰Æq³šRRÙ-ÉôuŽŸ’éN^j LÓû(Ó1,Ê»ÙÉú¹™ Ê_YCˆ¦VA¤-Å::*lý2q˜© ZÞôõ'•à—ÐùÈŸÁn´Ó/¥iÈ 5éÓ* HÔ}I ›gI·FMYaàeÂôt¡¬é…0TvC˜¢}j0”¨H´6f]­m£ÈH@AOUë¢.óEºRx9ªýñ ½ëFßǺ…ÖÓ¹¾p€ÜÑm~/fd«˜VÄ…@RëU-Pl¦Âw¼î%Çû˜~#Pe±‡¸¿zùÏsÐdæ4H|$ÅŒSB ÙÌ.Q— Ge*©Â¬vWWæÝìÿšQã5áÈ?Þð„å²m­9<î7áh@öàc5¬8®¼¹õ¾ÆF°¨îø¸‹áJÇïp$Ïò¯y†Ú²mýÍ÷}­$C8½QIÞ8 Jݤnc°c°)wœ1›×õJ’x­››—'kë‘Ú*- YZÍRVA;AŽÖÕÚö®¬=° ðú•b†дѣ+&5îæ÷ç¢We!Bkᑘ[˜2Û}ohèµ)‡Ñ¤7 Ñúf÷PÎ}²)ý< Ðêò 9 ±wtjè7îni)„²‰ö¡¡ÂåÚHª¤´yÃÙ¯ yÌÓGËAÈ^ËM>ì7œnnK9™öp[…_ŠKàjl‰h¸¹”ÜL¡F©’Ø(ë QÕzIÍÀÏO)R\Êuí,Œýñ(˜,]ßëmaDm zò®Ç¤òˆd!Mahçn`}B ¿’ëGcwäˆO½D¼ßì¨"…²oã ¸vò£.ËZr["sj9ò:Ÿi0"à6늞Œ2EYª(¬³XDÉ«.«Òzà ƒs]ª‚´†íÔ°z23fOµêôµ÷`üÛNf ‚ü;G¾FâóÇs¡ _qmØ“ é8è¢ÍíNÇ)Ø”ã 'Ç 6%Xù5_sùþl½Z=òȼ߯$nÉ`%Dã¼àS6É|þ¾1’ |O«öt­³­âd}©ÚCvšŠ1ßi*‘›ÐABrï:—ÄšáAp«f”ÛR»wGT÷^]?îª~\Uî»ü¥6ï;Gžõ…©ö…µ­YÆÚÉ›¾(ØßH­²W+“³y÷ÀCèeŽ÷ »þ¾Béî! š´y¼½e£uŒX‹ëÖAü[ØÏå3-IR¤$}ÅÍ0 za–n½à£™‚A™rvÂ'ñ>9*™'±‰ô•ó’ˆÙgQ”ÏÍ/Ü̵Ók‰“ìÐ5É8îc×פ#+lÎwL]›žd= ˘AÙà/xæØëožâÛMX©ŽÃ’¤;žT† Cìïñ/j–ˆÂä¤â¾{B(M줳 ÌØ÷õÙÜШ“yŽ{\UØuO0æqPW;,,†ÏdHiðR@¥­nJi#èl"¬mêY}õ™„a÷J§Ä0êVø9å/ p”€Í »o{ sA‘£ƒp¼¿Z¨Ýg§)Gn:¡álG½†æ³FŸ3˜‹½Ò£é%_–[æ$¹'ôIJ!øÀûjâ§æwù™Òï„ݦÕ)®ï2jA›ŽÆUMmiYßܯ @Ÿìm÷®Ëˆ·ƒ.ÿÁ…©èÌÕPÍ.eÔ„áí‘dý©Ï¥ <>zÐs«þ?—ÉPŸ}êâªéÁëÆË z!j ·ÇŠÛUb0‰Ðãbö¿¢ŒnG9Ðê‰.2½kM%ý›¡çFç"qõZpµ=&ê9ùȼvÖ®2,3KÑjŽ…õùóM”ìåé.z»!RÿDCsf˜UáS)¥ªÓJÃbÔGð<™ß+•ÆmA{Ý13ÉçÔ†m€P2…6å^f\3¯äÑ'ÄÈÌ-mÝN^Ž3|lšŸ~Ê£i·k™ÕnBøì* n?ƒºŽÊžå LziåyF”˜cVIVÏ}+ byM¦1'Wœö& MŸ6*}Ä•â­ÿ|%<ìE6Ÿmá#4f•+QÿjL£î”AÝèq‘+ÝØÛAÃè©¢i™“[ C<(*f)l)dFÚÒRhhºSÚF^jUÀ^{}¤ü÷ñ›s*ô k°ß>r/£VÞ²#®ã·b¹üÌØ)ˆVi 9©’¿Ù9À ó¤]ê‹`Ÿ¨£{¡žËk#*1µ©)ßË{q˳0ôͲßíµrß°r›®¨ºoâÊ^ŽY8!vd)(]J‰Fg=WGü÷(S)Ú”+#Ñ8oõ¨µ{Vµ…êïh6 bÜæ>à&}™KÁ…ߥí&d|{BÍ01®J`hªôALX:ŒJ?:15n9¯ÕmõºØQÈ/ñúmÐø˜#|ÈIí»B¹FM—b‚ÕuÙ•ã¹P~W3Ö¶ñt»`3èÌ÷$b“Â<û‘G5CmKã¨s«Í(v’×ÚûH ©k^Ž€¼R¶„üë.<„®Ž„àfM e²ƒDëjiÚ\Âô3áï£jBŽŒAªƒ P…•„¨Ça^qÜ ¾×—/=ßÈšÔ„&ˆ²ùcPcÝiŽçóp½®¶Wx™òþIõò@û$k%çõ”‰˜Õ+b) u~­ó–ÚÎf€µ”èsæ`ü¨A‹ÀšqÚÕ§ÍtaÙ˜Œ›ç1FºÑÕm‘hT—j ¦ø˜PûdÎÈ÷ ‚S­‰Ü­5½}›Ip÷ 0ÁÏ«w0—Ú6"²žÒI¢¥k]] ä‚¶º¨JíîBIÇœ›½ò2nt—ÝêDëL2ª\Üt¡º“üÖ’ Ï/ùI­üî5}â›C¥›ƒêž<ž|a‚Ùn:ú€íôsm/ø àËfAmDlñ Eò”úT€Ä¤B^ŠJðEÔ±â35r½¤4ÃiH„¶ì)ˆä¢YõhY_Šõ¨ ¾o¾.ª…ýÝ;–rg±§×ÛZö8KU  YYÞ(`¯ÞõÝ+î·Þ©Q*Q$>[Öö&Š£ÿïuWbøXÿø±ÂÓ ·D¹F|7不=p³uv¥ŒØÛ`öûqH>S¾¹ÕZ1|ÂÓ‚ŸÚ9+»/Ê‹Vð"È„t¸ð‹ðk&äðVËëß÷ðíÙÿŒÓ,endstream endobj 523 0 obj <> stream xœÍ=ÉrÉqwÚáoÀñÁ!´j_t³l9l…Yâm4’àŠ!™‡Ì×;3«º;«º²_ƒø¢Q]KVî[ÿx¡&}¡ð_ýÿÍÇêâÝ‹_hzzQÿ{óñâ÷/_üöÏ:§‹<å`‚»xùÝ‹ò޾ÐZOá"D;éh/^~|ñÍÉ^ªÉyk½;M—WjŠÙOfüX_^iíáOáôo0ÂØ•?ÝÃÓI…äÜé5)hO?áo¢Oîô76Éõå•Mn *4oØ«oèU•s§Ûu+ñ±KÊêÓet *>”YlNæôF[kM §OøXGím†Ç°¦p4_§ŒVÉ„ÓͶ{s™pÞ¸Nøs™¤"8k›Yøo¶P=[ŠQ7 ý‚ùf=è·/ÿˆw›Ts·iÊIå‹—ÿñâå?~sz‰×¢¬Íñôßô~Ë•SiŠÑÕ¤à™Q¦¬ ËDSá_‡óç/MšTÌéô3Wá4Läsźb‡Šp¹ïðÖF—C\ŒÍÚUœÀöÕ:¸nÄ:¸æë²o8~³¿2‰OÆûæC2©ÀÓy••mº. å›Ýòcòiêogcj¦yÃ~ó¥ê]š8y¯ãé4àl¹ \ßC9‰6°ä§y´Eâ…9`1ËÿPö€ÚfT£ß`D‚¯ÖáõP ÜîÕ¼ß+m`Ÿ^—m ˆ·6ލ¨µšGûì’tßgȸ®iŽü†€æ`Á÷ä-ápãÏïpB;E¸jNub^—áÞÛæVoËc×¢{qÁ#¾Çô·u Œ¿gC8`pE¿Àb/›€=í;žÊ.hFÕLÉ)„/ÝÒdYÃ7gd#~f;º)¤â¤íJ 0ƒÙ—$f»L|Soðø;$†ÇuÆ×À«-­¨>‹ˆá†É»º«ÐÐq½þ.SNÕÒ G°Û1Ïú\æ” »ô`Ý‚­™ñ6dÌž:‡sïçdÂ^ä¸.P雕Ž;úZ¸ý´GÀh7¡¾¸2~ÒJ›Y®Ú ¦«>™\µÁÂDárµ§êº+¥ž[𔽆tú† w넆Ééo˦àr{¹kƒrB‰U¶­›­C.šZñÛž g©cëÚÂÂ!%5‚Ëö7e%P@EáÙb'ŽÍŸøH4SÈ‹H¸gcÐ |„™]‰qÕ}ëöfÛˆX>ü3 *X(ðÙUÂÆ)ØYº¸åüDü ·:d]ÀèNR”=¸}aŸ@_M Ü£ úõð<)7ÂÒîÇü–ulÖþ¼¬"æ¾Èúàrƒ3ÇÏ.êC6š@¿×ºb¨¦‘åŒx?¨˜U4;‚VȘ‰¼jÄîBèïË{Ù$¢QØ’R¾Ùi%Ò¨m϶hAkùN¿+O£BRlÓÌÏ„ÁIŽëüyážIo˜gFƒ*qi7`ž=EuÌs‘Ç ªÓ0úßË ¿þT÷ŸZšc”Pl9U+a¿gâ³… ÈY¸¦U áͺm¯×Á/Ø ÚÛ¤žÑ3h^ÿ<£³íÔ_F÷8VÃXÓ C„Ž1âhä¸c°Ñ|™£X§-£wº™¹ã|H¦\{àJ{±êŠÁ6:_G¦ûõl²ßÀ’É€.¿kåV meI@&OT’ãdCž©D@_®Nòç[voôƈ ]„!Ý$ùÆ«æŒ[˜ÊªKÖ­µ¨.hjœõ23ë†6¥ÕPüÔxgL5ˆp@‘Ý (÷ø¢Óy ¦eÝ["X YmeF+³–²Ž(wEStI¼+3*˜ñ¯§Væ%Ó¼ƒŽÜ[D/àj©ö—²•½âBgÅs.1¸Aø¶ÌÞ¨‰ºÌn5ÐÅoʶ`ïðx™Ü.Â!åÅü¢¡ÈXcñ]–¡ºU4—EþzɸyTÀMƒ'ï¥ÎA9_ñÇiÃ<üäcba7Œ;r„ÄP+ä|‰r x&‘^viFû iƒ‘ ½‚sæöíuoÊ):wÄÂâBŒ“ÉÖ iîCÂ=î*OÚˈü#­’·Ð bpÛ’>/l.î`w6‚ÍÆ…é$Ñ;q_džv¾w¤ßáj§%hVg…,;“ˬ ø:C µ`‡Ž\";€•ÄËv¤oq?Þð¶ScŸ°E+‹×n†6ÜéÀ‹µŠ£ "/¶ä5CXÒÖóCø4{0´H^hWY?©NÃüÆ™±Ãg¨C¯ÛýeÂÍ»¸ïŸ€güÎ8À;ðŸ7®Y´Dóu™Å„sÞsš¤þfgù$_à<Ç5½~n{`h'œ– ]+ZpSJ§þôøŒÒ½…m;¾¿ÖŸÁÑpä8èx‘s€ü&HΞ7l‚ŸcÀ– Ü…štȳÏ?ht´Ì¼ã˼)½-´Ç& n&‰K0cí¼7tÀÓˆ0¥0‡ÌÁôf™àÊm……@[q«¬árX%ë;Aµþ„骫{-¥.ôÈݺÅÓÕ¸ËXa,m-@eµ‹ O. “_;sc˜!Ë:ICê!)Pñ#˜I.u*…îÓ¹ö®€™®é:\ûO•WiÀ\1i4¸Rßîˆ×óهώ€9ÍŽ?äâ 4Y®Çð›ãR³³eCÝ8†Žýã%bByãvÇÃࣂÊÓ)ô35£8âQ¸§ð€qÃÕœëmçɤÛñâ{S˜iãá¬vÂ\Ø0¼¤µCâ¬2S,(ödc­+©6µ¾c-VÒíO­/kÍaD‚é,6¨¤ylF´pzÝ“›87¢}ŽhŠ “õâ¥|füˆ?M~‡ñÕ­ú;ü#[r«Š.9î\©Ôy˜J+$[Ì»Î^2 ¾ÆÆf ™ÔõL'é’»MÎBÌB%Vç%Ÿè¼ýº¥¢ß’õ<Ð9úÀ×k¶þ`Ê9Óh~¾èáx„Öî݉ò8;isÐ3ƒJ—öÇ"8?÷뀄R©‘ÿN{%eƒZ?–â4hƒ}å2˜ÂLܧ#èã;<jŸ?ÈEæzÚJ&ª¦µh-w®è¼no¬7Ó— ÐXÛšÛ·õ$ÆÎE„`¨ßÌe÷è°†pÊö[5éh„¤nþ‚á~ØŽ“ë+ö×wRKÇ weEeeŠiMLGð€ÑÛ€aç¥ÄGg‹àâÀÙ"p€1Ïïÿ¥…t™ââæu3¼|§¢ñ[âèàv¸OŸÒ…«gÒWJņ‡qH{~só=›,”< ˜.o„üg¤Gu,-[©©Út”–>þ„ƒŒÓ6qÄ-v‘‡ËvÒ/”E9cZ×Ag p Jðj8ÚÕýšõÇ€åÙäš 'ÍaôÓGlj1weŤ³0Ê@›àXNJ½“LZ.ëÐÙœa_ØâBÊÞóþÙ¢´.wÞ蜇¿NÙíÆ¡mÀÔâ6¸0ÈV®…«ç ]Õi§(¹V—æ"_8§#ùëëN‚ydqµÇ0lš+-©÷ôðÑ](Î&¤gr_”T?E»ÐRe:„T|ý¶ ÀìVΛ(ä‚îŒØòiµ5ˆ…ʵÇâ¶¡MŸ:%W®¿hŸ ±¸¢C— •XJ!¸u;›qØ!A,ôKG؉/씨Èì©+õ8G"ABb„\Ä™Œ:a+Öx•”ÌðZxþ©1n‹Ï*x¨ø,ÒàÀÖstf›bÞ‹ä%iÓ­æ†(ÖuÕw=o’³ùa#z겤oêIÆ•d3=á b¶’BÇ]l}„¥î¹¥„›y±ÿ)M}N¡ÓºMÀ(Ò=bµ|Sñ¡¬èNÿ<¶S„nÛÈ:ñN¾/3“¥W‰£ž÷¸n=þ’Ìx•1ûϵšmi˜°D³ÚºQxy¥Ûx„9;¢×‰ëˆNœ#úêûw…Àp>“‚îÆ‚‰€ÉL2‡ÂÙb×¢E")­J’9lú]æÆsÔ6Òj@ѵv£3Ы\¤íª~ÀØÒcÓZä_pa¸Š¼‰Ö¹äAmíƒÇó hÊ*?¤laTι¼*µ/—Þµd` 85Ò G"—¥QFb¹B–kk‡ ú¸kÝÝg}›,Xe‘–ó©wú:áí¥Ž¹ y ¸6J<1¯a–K)/±œ›²BˆF®¦[dÇìǰÍÓ.Seê8à’K¡Éd(wöÍ{Þ½c35³ÏÆ—4å.gÎI©ýübç¤*VrKzAGÐ&·t(ZÁTúÓèÖQ{Wf´¡gð 8r]UK¡²á-_­dÇŲÖ9ktsøÓãcPŒÝdã|ÑéiçcÈñ ýï£ù¸ìåÁÒ™<…– % êÚ%„Ý Ãb‹³‰›–gx1˜]ܹ›ñ)ÍPêÒ¼\ºÆ\ ïG™àÕÐ/ûmµ¯ý®ct®[IFxß&FÛAæìpJû‚‚^ÚµÛÄ-¹:2ö¹ÌZ =pïÚîi—éɼVVƒdùæà¬BXi#Ÿø—$ró¹Žô!á—€ö¸ÎÔuK²<Ú4B2›#úêœÒ!Vï#¥¶ßUàÙQ:qMõ%¡š ÷ Ôn å¬mL¦CuëP¨Ò‰>–áXßÐiV˜\š:Ûy“ÏDµç8AhB})J…€QºÅM)JÓ· s0ƒ…£sÊýÇÞ–CÄ,{ÄÎ[÷Úím©²¤´ÃÈÉ[±¹¢¤`©‹½®κ÷ÌQFð®è/·…;-“™”±ç T;åçpº¶ºsNƒÏÝ¿Áç”Ü5(à©ïüQÚ‘ähæ.#,pî‚r×\8Ž27WÓmÕÄ&ÌCû,@ªé”ý9r'YBÖ5;|c—ý=O`»Ñímãœ,Ÿtž[ªV·aä*ýFScï÷èlÔ †>—ªÁBÄ$w…Æ8‚ݸßnÑæTÌšÉd‘XÙÔÂ*œ³³F ‚)4Zïô»5ðYà zÓ UšÔæ3T7À‡–wÜ•©¸†¼«AÖ=K³+r+·¹£«Ãûȹ:÷‰TJ#àrrv§eÔ&¡€ÿþ]«\͇oµÙ=ð¢_:¦GlÖ[Jýz¾n #·…G®(zŸì‹&L)oÅág¾wA„Ëí:ôùLæãÙ{‘rߤ. œYðI ©‰z“çk}˜LŒë¹>ƒžmÝÓ0ÉB ­õK@¥ [ ›[ýÂÜír«º1FwÒpWØÏg/ÍÁõÂìéZ–Ô;מ¾I]ÒÖœ8ŒØUŸ+¢;w¸{%i™ÞK]² w¹¼ì£KÛJ’Ø×þ Éïô,Ü þRKrNÁ‹{ñ9Gn'P-æÅIUÞgÒÃH¼Ý,-õ79õìm˜àÁ¡Þ{- –Ô~m B‚Ðí¤Ü—Pgÿ‘%¹°”ª ÄàðÀ§Æ™0"I°‚Š—Ù‘ çÁä!Ž-`Õ_¤RŸ+»8ji/ù²ÚÅ:» ×_¯ùlí¥ÍÝ­ÓZe$8sÛVÝs4’ÕQuµÖ#?LY§õÃü×åò½ÜâÝ0X#IçsÙbx• Ù|u–†Ð·4h±nôÕYr³ðYêoxÅòYÊWgµ6fùê¬Âƒñi˜_†yWÆ­l1así½öö*uÐ#áÍå dv]FcG‘A{~•O›¯»¤Mº'è½`2œ©‡†¯HìS­v"¢õë3lœ,8] ùŒY{¦aÙëáƒB@÷e}½ÄÈ·í#ÂnorœÎæ>QžÎ®ÆQ…á'Pf ’Ûê=•çm˜?W#¨]ו¶–ÈüE:×oMÿI3c.»hhŒÅDÑGë.0MTîkë.l>6?g vøQ/5¯Œ ¤í4îÄðmÂÏ´Ž\w­ê:ØÓ]3~HYº•QÂ8_Óv{Ô.¸ž«uë†2nŒ¾{\àé'¯eñq-íûV:·ß­«`“ ·%5×ï— ÃÁ&—ŽôÃ?àP–!ÿ²Ð\Pl•S=);žK >U@tÌ–7Xö,ŸÚÝF>å=ÿÌN“•!`ê9æ-f[šá/ ÷òy‘µ ÂØŸ å°ôm³,i<£ïbv5 ²bòê^‘Íw(áIJ §ÆV?]9ykÖŒ³œöÍthØ8ŠßâÜØ\!É·ñ’BFGCØ”=e9Þ:p#î:ß.§½LP¯é›ÖöYGlPaEõ‚»×Ô‘mÓC¸zÊZhìê•W©k9¸5ðÏ},àÁñaÐJ€Âó -¶¹ bÎ%_ž““ò;Ö¶£ÜPš±U97JòŒ_¯Sw´ŠU<Û_fðåFúiìÎûÞrßM%ãÃ:ÎI}t¥Û§B6C‰{ ¶â“&AÛ&?åçùž@·™òõ©ê¸Š”­;H]>¤¬ñóvé'xÞ¾|ò¦ì*´ÿgÓNwYöB›üŸé§ÿú7t0íÉÒXeТüP‡‰ÿGt’ùþs)ZJÈ”e¿öƒÚ ò@×P7%bIaRãO SEüZP-^v¾V«áø?¼|ñ?ðïÿ5Џendstream endobj 552 0 obj <> stream xœÍ}I“%Ǒ޽lL¿¡nª¦¡ßľè&™44i(“H´€nN/Côë埻G¤çöêUu7$Ãõ¼##cñåó%"ÿõÞ]ü½Ãúÿ×ïîþþ!·ûï~ºû×;ïc»øtŸ{ "ÆÖý}ËíRsºÿñÛû?Þ¿¿ó—ê:‘ÿvÇýÜÿá·w©´rqá¾”šðÿw %w¢Ôû”C¼tüýò}Šø]çï×wɇ$O%öâ/=Îæo}Çë»I©™új÷³‡æÛ¥-¯Ÿô†1ý÷1Äñøf¯ï¾¿ûòÎßã¿¿£·Q3—¨yh—Ðïcuôòvßû¥ÄÐhuîþü›¥U´ÂqÕ*´¾mUœ¿dze¼ÄF}ø”µ…,-½–öDþÖÿ½~wÿ_^Ñ–%šx½øæK¼õç;ÙLjŠ—êÛ}Iù’êý«wwÿûÅ«¿èé’R®DO¾é.­u‡>ÞÜ=ø¥¥éšZºÓýK‰%š4}¤Óî}õ[†ÃN_Fâ¯J»S±×7õ¼“Ýa©^zií~ÕôöN#Zþ·Ww¿¿ó­Ò¦Ð :G/B¤-M´IÄþ—äï©|)åÞgü.ó÷ë;‰’M OƒÃ£‡ñ[_AOLJs—Øïg™ö1øåú›ž£-ƨµƒõ$„—ÿté‘Þ1-{Ï÷_Í¿ÞÜ…û¿ÜÑZ–K€Òÿ#yE¡µz J¾ôJÆ”’Áô1­•â(£cJºxxZ¦@ÀC@1Åc½ˆfÏîâ@!‘uò‰ŸÃ¼‰I-0%_*úqô/Y(QÆìX‹1…æIý¤N,#=ûri OL$”@,„%Ì`JP¨Gâ®’jswËK”@r ©JÞ™Tò¥U¡8b0ˆ`Çü@iÿF‘‚RIN±?)éúdRZçÂïÊÄ=Ž)î’å©T.ï"Eׄ+϶õBû ­/÷ìó!­fJ ùÉŠeš;ÔN"ŠÒ÷ò.GÉ«‘í Æì2žfJ·»t©ÜOêd’P¢ qBЬXê4w¿¦8æ óT«—¸î§Ñ_›6´O}ÕO­Ìu‰ö¤D¡ƒc5h¤•Wƒ”ú%ñLý%f¡oQ?‘T²4!íXÔ`VV®Ä⊠P¨ÖêD«­öx¢De¥™©bÓô©¨Ìå“Ê­«h¬l‘ÁаÄb ÝO|Ïv|¢6?~ØBq ù6¬ÏqPÆWJ» ‰xª$X PªL<’éЧ*ëTÒÈu â™ Jìãí´WÌ)S#Ú+†… Ž 2kÁèù•La…Ne£¸5‘ ´ÂÚN¶`$!Q)bgmbkƒÒ¬z-°ÂA”©(´'Da¦ˆg¨mìͤ”Ð&%©Î³×”(,ú9,„:;p“…Û“¢h94'XIÑtkn€fÒEÕt0~O0¼P-ÏLWL´=Ç0ÌQk›YÜ„·+p]1X{Ea.bJLk‡J ¶5ƒµ™’‚ÁÚ.*{k¥BÒ¬M ´égwbm¢fû ´‰âð×´C%³–«ÚDI‹³‰àEg œ*)‰è Î&J`K:qv(]qíÀÙDñØ’ ³„G´£ÂìPH)o`v€èM˜ ð¡Ëhd—dP6¯ÞDÙ8‰'>Qv(!IÇe‡BKÁÆv l¢8Ñce[e~ÕÙDp È&Þ(—l06¢¼i á!à ¥Nd>(Iqïò”gÕb($Õuݦ².°ý©mÍ`ìKÚYô,Q#¬‰±IEËŒMÇÙ4Ù!“ºè™;dBÍŒ2x²Œ2qWŠÆ ‡LCMF[òõŬˆˆJ6;$ÒLÑ ì®*É@ìr¼0 v€±lÁ@ì®JÉ(ô¢Þ„ØD‘HÏÄØ¦Œ";Àî1~›tS“ Œ`÷غ Œz0;0ê0;`s2;`Ë\4F `ƒz3›(ÍèÄØD!nMdìb.d3ÅŒ€¥Z³›'ÊŽ»blCPŒk3;(x\06Q^“ô‚žÒÏ"Á¨¯c;à5QÀÎ º&#îeN] s tM¨Ã³ržèš(EmÅÐú5‰s2Ñ5Qdµ&º5u±]EÜüE_×Â~A×D©‚“ºµŠ¶›èš(I<³®‰RíOe\i¯X=xM0Ö‰2ðš(žÙb k"ˆÂ™èš(ª ºfJi]%A4Œf€kÂk¦änà5S  ^J¸lR^¯(>®);x=èßî6˜ö¼‘ë G¢ M¢Ô,” q”. a$c‘STÝ ¹ã0¬4‚‹D‘>ÀAsX›)™W L™;€`áuᔦ.ÀVŒ „eºÂ.¸²nl3© j¡-ü_FÕdZèˆ1´gŸÑà%ŽzÆAÃ÷¡qAŒ@ø²çÑ1+nÚѦ)«q¾ªi|eàV„‡3+Œ6à‰~Q=è &,&¸Ñ.S¯«ÓÅÑrÕ½a¥ÂæC÷ÓQŠRIó{Êd• ¸ìa¥!Šë‚!M‘ÛzŠEgDô8Ê\t¢…ì7‰jHˆCó£x¸³¾uÃXÂõgó \"*/DI”Ðl£R²–ajˆÍ%R‚èˆtÔÿÚiƒE©$yŠÖ„ƒŸª×Aa…AœÜWAg7ìçí‹n㱃žãå)X´†øE}¡ª‘¹,úBG$ˆ;òX›Þ-‚Âò ßÛé.°c1ÚF, ™ ÕÜð9`ÈÏhãÝ”è½s:E€aî IÔ/!´¯œ]\’—ç¢~(Œsû»rátž˜«Dèу=‰ß:ííµde®˜óÆ< i|[ºG‰Àƒ|%m!×ûvAÄÊ_Ï.:ß·ùÅãÜ*§T‰Ÿ^ý½ýÇÃ!æBÌ(‰ZBKNU’•3»Tî‹ä»…âéŽ{BPåžTs€O+TÁÚã÷뻉HCÍž·ñ°þÒΩ¹15Ö‡‰7=äbt?~Sûʃþó™>½ºDOÜý_è©*zf™T%ƒ~vß2ÛM’i¤-Ï}’_×8æ@ž(LÛ»5…S8ÒDL™à˜â.J¨b憢P +sBñ"LLR#7iv#Ô“H;Sà8Är’P›‰Ô­a òEÂÒ„Dª¥Ñ ¬jpѾ™”•ò¿GHX‡š´1#ÒI0ù¾ª C”ʯ!.¾È@º€AÈ&½tI1úÔĹ‹!öŠ0°*>Ñœ1¾zP¼ËûáC¼áaa5=üf!df5O*4KǤ¶)=–wÃF‚DÁE˜Q„bÓ Û"ÐÀ¼F«™Â1^«OG”ˆ@ÑÀEep¹ø„¤‚p Oáê&½4nã.Ò‹–Mh´”Ìa«ÿAj-*XHÊx@´ÚI›ÂÚVƒÕLÀ{AbŒ¥¥cpK×jDðZ~PšD5KS5‚ØB´¡HͽÑpÄ©‰Õq¾CM_¡– ò¹ˆºÂȹÛÔD‘EòÊÐM(à³Vp%Џ²¤U)…ã?Œ6›P:Sx E(´O nB`ß’Æ-6¯F À¨{Æ”$)ä0õ!1– g7 Ekàï×AÁøIt€)ð ‹O›­?RÌÖmP8¶—³š×…2§9)~gPÜΤ޵OÖý7Í#ÖUí¦)ÅlšOš=^žºBÃVðv÷®›ömªÀ¹o³¿gî›™éù÷óZÆüÈÆ}tÿAÏ%šçíÆ¡·ö癀"µéÐ3d8ô ±\. =SP,5ú„2db¦COÏ>ètè™Âå5áOH¬5ãÏ3ùéÐÏ&ß_zqѾxøó<6§?Ÿ89¹¸ó EHÁLw>!¡‰ æpç‰ °ÓO¨âe¯{¸ó Õ¸ó ™Töº‡;Ÿ²¤¤§7ŸoÏÖ›OˆÉ ˆ7Ÿ¶ÏÙxó ùb$%¦7Ÿ²ä»w>¡`†‡7Üù„ÜCÈ‹;Ÿ²„Òž(+´†?Ÿ€§;O¿tU†;Ÿ€'95üy¦´düù„Ò8ÆŸOYÓ¥š¢z Ÿi<'….L‰ò¶ÊßC×€"܋ʋ”,x>³OUµ.…'Õ•òX‰¬OéT£Ôq#«–eµ çƱ™AR\µjö;¡Š¼ðƒòN)x!8å . !ŠÇÊ1Û`± 2z*L(yC/äLEeÐÊUzÈv‘Ò"/µñdÒéØðŠ8·PpŠ®b‰º^ næImeV@ä0ò•K–§$[X— Â×ó™DÉâq$DœØÃÌ, ÐÌ+Sœ8! i0iMí"㥲§Ò ªÌÜI©aErM…½¼J"T´If=^“óD #Ö)IHaŸ§ â{p¦ò†¥0¡Dxi¾¬Û8Iò3%'ñ×e{J'ty;$Rß•Ä9OeŒºµevðA3T+JTéØÐÞ …77d•<,L âöÙ&Tš2%ªä¡ÌJãYòAã NÊxßxÚ(äHcoSŠd1Ê3Xû¤cZÔpr]ú!¥ŽÈeu² Qª-«âƒ`"‹˜sº×© éeŒŽø Š‚ëÚüài U} 5LL ú^ôxRåšÂ7u´AÍ CKÑÀZØU‘·K:(~È!¿º6äùëB3QËCèµM¯h'E„(^M  _3â’TDi”G´xçŠTv´À'„t%zã€ÖÝ1EB\R„Ïš… V 2†j\œA‘Ü…‰ˆrd! sħ¹»¡¯ø(B)•)ÈÑzUr¬¹È‡CÉ!Š-|¨kŠÖCq?|ÚJmR0É\ò%wÃÐA‡«-”j Ú¤.I_q/ÚݘԜÕÜã7‰E,ÝήP±˜ ÕIž–í«ùׄ¨KE£uÉ•cu†Â®SyšK²±¨–nNëU˜‚`]sªT˜¤Zi?ƒ„Ì€Lö<dY„É~í'J¤PN1Ej»µƒ)’¤ÐÆIÞeÚ'Ž×‰þ¯Û˜Þ°DQ«–ÓhC"PYWÍ €áSü˜E, @ t£þ¢k)ÎÔHh«@%ñ%ë„–®eÝ“ÅDDް©¦)2+'øQHɽp)…*Ù”IôE×D.Bà ¤–™FÄÜÀkˆ+Fyë–EûH¤Iœ2Êo©5‚#•¤E‘Ü7ô— ¥‰@%¯ªèˆ–4ë ]Kä5GjÙ?ÉËiC”#â>þ/Ga}+ŒiE fqÜ*„(µýWû 9šüH_Kr´ò‰À"±9Ä;âè¾qÖʶ2‚1zNù@ñfßdM–£¾Ñw±AÈÐ"<ÔrØIÒG®ÜxJDˆ­' {2Ñ'ýä cïT“‚Mï\W«‚#k8;Jõ»«Z„wÙªZø­PKþ ºvuqä˜oÛHG×ÛŒj’?ZwóOÄBÒ(±óÒc­6#áªÔà’‘‘Y+µÍ:Í4Zt $©Ó©‹E§%‹×²è´ã 4K ¼÷NÂqL8”$)\Ä Êˆ‰46oŽTV§ÒËÖŽd7³éf„+¥R`õ ºœ(q>ŽÖÇ;ŸGìÁ)ç‰'0`#±R”Éébð«WÇ/KM88Z]r)¾c®W”¥(×ðJ›ÈNQ´nF4\ò#âBFÌEB…‡ˆb7Ô.¸zÌMD#1T„¼Ç3(Œ€J¯ž6B_3®€ƒSµ,”4‚·PÊ † ÔŸ«pZ\u܇û +‰®…ãLÉüÔ\SQĽ²ì+^·EHï„¢¹š•}Á‹ùÉ\öN§J+ëùpPDcbùz‡Ò¤.f ¥*”CØn ñÄjao`ÿJåw•Ð#2™‚žRÖslz ŠM1ÒËe€½ÄÇD8`)ÆAO¶Ñ Yk>‚COuPøGlªã9âƒIÅ H3G¢ò°ÄQ Lƒ¯Z±“Q|ÊÁG-/ç·c³òÓ:Aµ¾‡‰0;f^tSŠ ‡ZÇ$¸dÜ”aýÇ$‹Ú2 x¤¾h¡=ï b>·kÞÉÃqag „ NaDâ˜ã€ÙM+8*ªøh=Ÿò7EJñ¡wuš¥K•Tr ^Ž µêèWo#jrJÉìýøÐ4Åœ«œ…ÚQÆ©r¦d)^ÊzówmÌ¡É9™¥ŒÅÉ£àM'ѲØ2T¸·AaÁªzj¡'ÅîÜ«ÉìæS‘ÕEÒ]~9fîê7UpU‹†w±ØlÎñ‹îsq€US;Ð9­’å5öd°`}Ô™àè Q´¨ž(ìÑE‹ê#üéÀ…Žm`UœqápÈ4sD‡(ip6Ôc¤pïƒâµ`RWk]2ÉX`©¥é’C*FÊi K‚W*¿R1ÍWõ]‡Ši¾ŒEVÓ|Vð4TLCì1Ó¼¿d«bšëcgTÅ4WÆþªŠÁ ×¼R1ðã½U1µkqüT1pÚËJÅTZdÝ=U18t1Ô¨¸èSS9ŦBáYƒÀêЀê6£i² †«P’U0ˆœê¥âØ\;‰ú4ÉQüj?‡›¹¢½Š‹¢[ \‘0(F»T7\“¡]–’ hÀ Dþbê5˜K‘ÐP/3¨¬oª†r•úu>!ž‡q­QÓ“…S½è±%U/®I!‘nnegŒ+‰Ti:ëp÷F¸€–M­b“›³p4v­(Jœv²i@®QYQê/…C¾ŒŽù^#9ê¡/÷oS¯Vø‡Ë„ºÕ.HŒI¹[¨$u#†zÁ)Û¨zdÍàÐXõ2ŽÈ,ê…O²d«^ x¹í²œÙÚ…OhNbíÂY¬rYŽlokþnLáÞE›¤ /$) d§Ø€”¤Lé¡u9¨õýÑe½G/ý ¥KÐÍ·,ƒÞ¼êZŽ:ô"ÄPø,K˜è~€û9ì‡|œ¢þdÝߺmÚ¢nR:6IOÖ¼]6’£Í¾1@QöR¿·y×Mû†cY!Ú}›‚OÝ·ÝLF¸ŸÅ~Ìg÷©úÿRjÖ·¾BÍÆ€3%ë=‚â›ÅÀg¬Ù€³GpÞ»t¡!8Vª°è’Å)ÄΕ·¼ÂL‘‚CXt/©Þ‡EÏW)1œÀ•2ò&/—¦Á¤Kº'Jµ›tñ #;Ù5>p¾Ú¯v}DîP›Qx¦pE,Ø_Û$°ëh¦Äj3À p¢®$u¡Ñ石ëK8)%‰Ð:ß%AŸ*×lñ¤œ”G¯^*ÎÇÛx:¯ lÛ’ÌÃòqXÞÇ‹6é’pämá…@@›ÉÕÂ.ŒÅ ’‘(}”  >vQ'J×ø9;º8tÊ¿ôtlÂ2ÎÊu7æˆ\A5ñô„‹€³×7G­–3Å $¹« Y)ˆRtRP|¬\“øô_\# ,•*œîÓ eÉïyy?pbN~zÞ“"÷^)…£ý~ŽwPœâ|¦x#VüNX5 —%ܨÀ6µù±µI¡Sô.&«œ-Ó£n R’ä˜Ó…p"° %„å+Y*xsKÌgJQ8¤m$úH+E§Â|7刦Ö:k>2Š~/ˆqÇ28"kù}Ö§’Ä£"¦såÊö†SÎu¯kEß !™ˆB2‰„;æ#"A‰ψDÂÅF¡™ˆDB…;ŸQ‰4皉H$pŸéÓD*|–Q¢\1B©ZB ÙÞ^–D*Œ–ˆDÂmM|NqD$l˜`F$˜Â“‘`Šœ€ÒˆSø”ÔˆHpÏ<Í‘àÑð¬‘H­\Ñ;"©èå#3"‘æ–3NZ.„3ÍI¡®¾à%梣àmcPà턇3 0Û‘HE0ê‘HÈÜs…ßI$w&$A”,!“’HÈ€rÈDC *‚ë•FH"ñ‘HȵJFF#‰ó±& 1ƒËKý’ÁŒ'G@"Aaa;—:¨"eþ&ö‡ó< ¦Àɉ…2Ü Ê H¤¢Ù̈¿¬3#àœaø7Éçl-<üˆÖŽ8¹?|ûâ%yWâÒø?½x‰êXÃÃEÛ@/[÷üõÒX^’zͶcÓà¼#•þða¡þ™©ÔŽþGêÀ•‡÷fˆßâïDîeÎ?áïZ‰¹ÚÃÏB'FÚ YÞÈ;‚÷øsvc‡l»Ñ¿S¬mÕÍkó·}•öCø°Ù9Ј‘ßòî¶Aþ s% ƒÙ£ÂÙ‘ ·þ(Ó¨4 ³0ÿô`:´/ÒME.ñá3í—Ò{&köðO/ÌÃß­^µìÕW¯þ®K!hÖˆÅ^½!–úÁôý½Î3Ö›VWæO“v“×bN«EüÆô®³hÃÝ_ê]8˸Ý.ó¢K »ÑæoÌ÷å˜ðKºæìeÞûaÖÖAVH v %—$?‹Õ‡/q»(Mj5FåjzéL.Ë–ò ?ìv(Õºj}!áÄÒþÈäJ„˜WÒ³y'p”ïiµ¸ß¯… óq4»Öûõõ Mª}φ¹|ÞrH çá_ä-®7?æÃoüð‚KÉ|zøuG|ìu5á/¤kòn™äÏ/xs|¥îÕ# ‹‹œÏK«ÁÙ—XÖ·’·^m¥/G%é¼9„Û„w/£àiÃõ?yùÞü­ ™C°­MºPWߘç¬üéÜɇ*oÍßfUUvx†":¸»ýz¥íºm‚IN„ë­Yñ7FÐŒ¼p'‘'·R‡:°@s]m÷†Ãðl ë½ZC¤UÂÊÀÉhüv·k«­—qËlìÚ&bÀ ûp¿¾¬4Å×£‹cùyk¥]+oÑ3Jæê[ÂG'œŸsÊ«Iáå¥~,2ÕÎö{Ó‰í|e™¾Á!‹×¿ªäübôÁ?Ÿ/Ä\¬7æMÖÚX]òÌ4ö6ô@òk=€Nµleä›UoG‚v›°ÎοXM„KWam˜¾=fÝ×s°Ò¨Êu;œ…J°zM3ÎŽßIä=féyäVúŒ¹²Í-ÛXzÍÒc±®gyÅÒs‹ ¼ãY„p®ëÅ82ßÒ­˜ï~`½åï\ÁoÞ›ï¼A!—…/±Ù¨ 䮼úÝÝ«ßüiµ/_¯&‡‚óìÃZ?!‹÷Ò6´´½Ù»¸Ó¿…àÖ+pãö$$ɼß*:ÜÕï[û ŠnÒ¿P¿¤C$cƒ’À« ¬&v".Vü$OÆž6ÃVJç¥$ pÖõ™P) 5qHxmúÚŽœ¹8¬ŽeÛÈó@L›½aŠÓen¢Ñ¶ÅSµ¹…W®§"kƒÁé`)}c†©³†ç-°ÈûÏk>9†µ† 7è$<ý÷À-ŠÖF®ú•³âqˆ6߸θwgõ׾ͯ€Úq²¨mü„=~Fã3wÓŽÄòÀIgrËcAØ,ïäâ¯íŸ—Õs€íp Ü΂Xàô …°•A¤UÚU«ÅÞæðÛ^Î…êpvçšP Wx(c=Áu`pf^Þ趸öYQˆ&nº‚IêNfrb: Ú?Ï,ã¬{Š#‡ãÃNïæ ‹ ²‘‘‡Ô­Ç‡¹<üݱßp·NŸÞÞ¾°óH‚׆ògiZ¨éÊå±Ýý•ÍàÆ¼×wÔ5ƒÿYÈy#'Àà[}{|*HOõüd´„ØF›xÃQ¾w0;“à †"¹¾‚Ú_³yÃ@uµJž³Ë+_ù½€ šó/Ë^«¿+ZCrío#{¥ÎøØ˜‘§¥ÃÅ©e«ôª|[m›å¤á2q‡U’¥=¼ZÂ"לàˆÛãS´ÔQ8Éò2O#æÏâ4rß¹Î"µ›Ü™÷c„ñÌK>sæ™6jŒ™¥íÔ61佊 ¿œé%±!˜« i9WP6Cˆ@”…Dü‰‰%æ´ÅOí¾\z-£qÖû†Çi»E©á&â»|R;(áø-ÎR4¤s¹p]Ên:ýUÓ¤\½w GG–Ì«ëpŒ'Æ{œ¹u¸M éŒÀp÷÷颱G”ä£ [÷øâP-¾axõüöÕ#]f `9²/ÃÉG`!ôS‹.x:¤º7ÑþkåsÆ^k#ùLÕõØ/®u (z’”Èãzm—þá?¿Õ×-ÂÊJ‘¼cÜùf#R›W ÐÆÓlB\½3ÖúÑÀÔfnQ4ë+~<º®©*X9Î<ç_+Z€`vÀVáî3½¾ŽÿpÙS9Hü)jãŒóîa£n6øE6Зs$³[FÜö½VœÿÁà‰×F†l”ÙÊ–uÎmû_tfì’Oký“ìL«aÕá>T-Ó]KÏ> Á«iÿ·8øb·/Íá1Ï;½úÕÆŸÈèâð á˜7^ƒÅxMo[YÁEé¦è dÎ+1µÛ°wE%b±‡ºÑäøtý!?¯ âÒ}ÄA}’k™Ÿ¨ení&Tq–ÊýWiñã[ïΜ„0yð‚þñ Æ•j³+õÁJKnè3¤ ]E_¤«€ao÷õVGÛÂÜ|”Ûeg,ÇA°ùV+ ¦w‹˜wáf‰8€¹®ÔÂÖ½³Ã4KuƤ;à;¥±ãû“½ÜÏÕê%·n@P%?ägšz…“’‡kò„jW‘eâ«°Nó÷ÏHFp¹|zã‚®¾é᳘MÞÖzZ}3- .Õt;kç/²–ÑÕ~ò_ í²P¶ âÀø²Yi«Ì¥ˆ3þÓÉñ8jgfíÕ›-NÓù®MÍ7 ý"ª¯ö«á¶ p_CßHH0´‰î>ŽóQ>á|?Q¾Ç‰[R §Sù¶>+|˜”g@{\?V* ~»4×n‡ö¨N_aû×ÛYn°=ƒ[? 7l¼ÁC_w ÷Èm‰?anˆEÏ'A¥oÕž´¼¡ZÿôPÓœ±û^žÕä<š©Ã9}v9ïM.ú±+‹ã¹=É™}Ü•8ʼar>DD}“G®lˆŸ€És`7L~ £YºÝh1¡ìܻȉñçÙ¢ç8ǃñ×M ¶Z6X]»%_<÷ˆ?HÚù·}¼t»8V1Xà—‘‹^CÎßá¤üeWŒ…›®:äÛMãÞ¹z LÚÆI™/=q*¬ º,ObQMKŒ»YÆ“`"ÐO'ãµÚ­´<Úºôü\›-:¯^Å]—d€·AB¼ÝÇ´zðÌ,¼‘^úS~rsñ£_ÃølaØ€^Œ°Åülp7FIO·übâO>Æ*_uz‡pø.ÄAyŽ’ä[èÐ)®$º]I²¾{@° W¢_W’Otb®å.Áåk‡í׊&â8jò‡aæ-P•™pƒÿ6Šøqy8ÄÐÚ'M(àÛ¨nýÆ æÑÊómB}çSOÔ,õ ßXUªáB„öÞ¬ú@;:¬F+È —]¡à›†W£LÜ$­«JϰÀyþUVü–l¤u·ñ)Ó@þö+uô8Y?ÄîÌžm4°ŒÖámk´¸Æ´ô³€‰ i\Gº¹•t”vg |bðd_D.3_OŽ‹´®EøÖ×üÔŠ­}Ñ‹æIÚq mÜ®äQ÷hÉ]?P;¶_·¨Óî‚Ýü¼ëñT|"¶×',ÏU/æ$O~ÊcöÐêH^Ü6sq¡éMs8«HÄ7û<ŒÐ(Wü]¼ªTÊÐWJ¯6ñÔÏVÑŠ÷ Êôõ±ììÃ%2ÉÛòZ×€1ÎÌù‰ÆL{Áe´cœjW¸Ç¾ Ö®ñ=Gq›zq>KåÛ•\ÒP§çEۣžâP4ù›qŠhWÉgtKÃ>efä“‹çé퓈 =Ûñ“žsû’,àõÌ Æ–Ó Ä»y–ɹh’½l«ó‘½ß¬ˆaú_–ã]'õÇÊ=9 /Û•-UÅ]Z?“¡yp ³;¯ÿw³Ø'5Ú¨m…¸^‰Ež  ¯É‚ë„kÊÂò» _h^ˈuŸPC.ü4Ç?25vrC¯Tˆ`€éz¡!®JÏŸ'ýœøòm®Ômòu7(Ú½|ŽþžX®&9­Ïíjl4©Ä³3„gBž[ÉÇZ‚x"›`Ô_gfîfpÏ6Æ¿«Ö’y¬åã×9Ï`0×âÓð‡°O“æEûó ƒéññaw5Z€·äxx$ñsŸi@m îýÍç!ßmWÃ= ~eO*ömçq tXâÚ®já_ÌFpO'#_ƒÏçÁ5|<`©k{›ûA|°„•u=1‹å݇N"_M²+Ýì뱚1Y˜ðY±Ÿ®ÍÎ:;‘çÔŒãl×¶þ9 û!? —Ú‰»¦î3<'ÓÝADq¨^|iÂ=½`ö#$ˆdºò“ë„°|€5›úZžÀ:@0Q?Ë?oÞ "Ö6¶‘[ÒržÚÞ¯ïàæ³¶–µ†ke¶U‘ϵ²4 äýkÚJ=óõy"yÅôÇFÌà½YR¡¯ ÐIMϦü¥ÏÅoË…x•«_Wæq9tº~ä™+¦“µ1g ÇÕÓ€K;×ÑÛpÛùÁ­c–pùç)@àñº;®Wº_”ÕÙô[æ6çó´`ÙZv·câB–°U(<­”7g_G™p-õž=£î„á¸0t˜°|¦}ÂgW±4V5tSA±*·?rŸLgΙÙh²O&¾'ŽžÔt Áçêp†°qaw³éÉ$dýÖ%Åe 8»Ùn@-Ð#ØUgOož3^]½ ´mx{\Ña¹ïñíY/Ü?ä¯öÂtÝú<í•,æâ‘ü2Ó›$'Mî¡ó7ž]HªI>`”“’‡E†@íc=rÈŸM’9I)ë”lPë´ÖÈð¹½xÁòüA=‡)ÿ–qžš“½Æ'‘ïñj%Ò¥…ÙŸV.z€8ÝžórQ\—ý‰J,mãôž‡‚xú¡l÷bÆ$6×%în9v¢×õïóå?Kº¾„p‚á6”3¶¿ß¨ê·‚· tÚä©­íoQÓm¸ kmwÎZ½bˆ‹öNXÝœ^Ê. Û/Use[ ýŸÁk´d¼M,Qy$ÆMÖ‚´Ítá;sÅ—V_?®“pÁeú„UŸ<Úò. àc&äºÃº—}ÉÏ`ã_d–­|†JÔÍ¥$ X9¸k…M–Æ5¾ Öê3În \"¿"ë«'|åã¶²òïðçŽ0/]õ+–?~иØg¶ñ0Q¦q-Üþ6.ö†ña·Úö ¬É͸›ÛmO،箉?˜÷¬ªÜQ¹êïY%K°Œzéî)›ô‘×Ð|!1’ìÓYŒFGåÂUW MšËÛÕvGw<\)©äEný±på§½Æn¤Óîþ·Ö˜O ù / —Öo9˜ ›Ë'•1ƒýuøXg¾Òþ˜¯¬ÁÚ=»„mAÇ׆ÂyÀó’îW}?ë-l–Ǽ•ÁÔÏÀÀ:žÄmëGíê|ÍÒø]µè7êjh˜Ãb7OXÞTŒïQC”ãâbQ\¡ùÑAyNµnô@z;ŸT»í ×J÷i]ívtÓÙcç-?ïlToY|¥+y».Ùó—>f]iv×ë’Y—££¾_,òs8Kgª¥Ü0MÜ:Ÿì,ùîøQ³”{šÖ³l7ÌrWþ…Äikó[ÏbòÕ;¦¶—ï Àmæ%Õg)ò­MD\º—¼J4×ÿœ\8¨q\¾­¹E|Ñ¥¼ÜXEx®ˆ·ÈÎïü0{kg¡¡ÛK!g•z¬7õƒ ‚8éFŒ¾R»çI“-n…X¬Üú¯•¶¸{8rþáEó$A­œ¬ü;™íÕòïÇ’U;²ÒKùsij8ä¤ã•yôfâ]ÙáÒéFÞ*zÒ=£dqzqw…À§º+âùPnÎpàÃI«B>­ë}Ó6 ”W^<Å@CŸaáë‡ÁL’ÌÂÖ³’ÝÊsÝÛæç¯–®ç,„;=q-Q€‰Û˜±xØpølB‚?üÚÇú@x%±ô¯,0àK¿-àŸ ¬)3Á/5T²ë+´ÎûÅYrZ”݆+ñIæò„#£¾®îÊãCV³fáKê;ú†øçë¸:D¾˜ý%n,È1@×N²iÁoŒ=¸cƒ¡·Ž·X1:8c¸åöãÐê//ðm3lÔrµ±Û\Fx,g«£øsÅ,çß(ïüqìÈâY}ÿai7FSw^¶šà(_wIw§ÅßÖ‘:+þ¾&¿Ä>Ñ¥åÌ­7\ÅßÊñëà”›·tN 8Rµ‚òN:,ë4‰]Ðã’“ogD¢‡¼IxÎ-øl4M~s£äs/ê qµ¡#²úßÌ:›$t£×¾2M¾ †M ßH»A‚gúücß!AI=rAºd=NlÒZôÃ{’ÅÙ&¶±œþüz={Zåö+E˜Ë7wê’rêmuV®àfn?.Ùý-šò«"3Cýªœq¡•®%<¥Ÿ9»†ÏÄû‘##ÿ¾w•P¢>Ù»ŸVÔÄðTSÏ΃é1Ä€ó{Ó9Ï®öÆõ7Jÿnö~.èðq'†½rd·Å]©Ò᪟ŸB/-ŸVˆ'úßâ¹N |kÐ@Mçdzò¸ƒ\Zû#¸2IŽw‘«N/È9{ÿ –ÛÞ(ŒË>vŸ*íɦ¢àÿÅM0¬E'­=ƒ£„éù ÚÇo·Ýç¹PÖ¤NJKùk¸-^arδºÓÚˆS7g¶ÞÇúrz3uÆË6'ep£éqªwÆQÎdó½ŽÀïŽ7¤ï£iý5ÿ0‡ù7iÐó:Mrœý ç°‹5¼Vßš0Sšzi ´0êTû+X8³½ÃkÅÇ6ë|P=Á`_v ù´UF()ˆ'¢°pQ{Ÿéó@ö~éxo’ÌuúÃ2å`Ô‚bßì ¶EQ!$‹!ˆë>þÜóÃgrÖÝFdNžz™Ò-õî?Iï{0 j‰íLÑþp Dn» wÊè6%Qð¡¿#ù¬×î_*|åšÜõŽÏöSyÔõO÷ÅÓÎîKƒ|»UÜݧö“JRâk™×7KÌàЕá%$+OÏW²žiøe’~õœ•@…£5®íäÞÓ0U²:Ãóá?¬ô9÷ŸŽ*¶ØÐ„to(H:»ÿï Dd*K^Ò®›µA„ò±=^{¹r0F!ÆíÎ\"~ÕTâ{r¹!žªi÷Ö}¢cIÇšƒ},|¢½¬î” ¸j:öæïç8ï˜M<ªá2xkäbøúVò ì©Ø3ßÙø½? Wà5æÎ1[®°¾„Ñä9Ö1^ùÉhPåP>ûz­6Ù€ï·òYƒ\ëÓ.À¶Çm¯•êSß=}´cz#®s¡É™-9)ÉÛ^އHG*›RF(mÎDn®yÁS½ZaŽ&eSˆq 7O.{>÷Ï2ûòôê`<ÖÖU?öèõ¸WW¢Œ@¯)¥:‹î²£ˆïû–-àÀzàŒÇŒÒ˜È­\™‘c«d„ek”è}'Ÿ¶3f = £[5÷˜ÞùÍ(&õäÜ*‡§¿?¼äø¬,ãúåm3JÒ …k£Ä>U^ž%o£XÉ„ógwÊ¥Ûbk\8òùQÞäø5¯…wŸìÜë!ÚøQÞXv®ÀËÕ:°5ß Ž‹øÊîAùÇ*„yj§Iæù9§÷4-*Ÿ¶ò2[ï*ÒeR7f';k'iê+f9Üv)›šHråþEšzw^:¼Mã#ZžCÑçOÆ]cwP|˜:.[}sž‡_>‘aùQúÃw·5\çOÑÓ®”D•vÝ|bEÌ ¾Ø>3Ucm6q‚dxÁï+#tÔ×2ú`œUÀ¬“ÅjF˜Î ÜÚBÏøâʳ¥pÄ~9Vc^øŸhÕCvíô´øÏZ#²½½÷äÖßÌ\™E1_ðõ@\Ìu&ù‚;”Öò+y“tͯB ù‡c8 ó¸UlþO¾€<²m;Mþ­ªŽØøà›,üF»‡v༄ˆ¬}¡õ•=æ‹(æi}uÌDËŠÈxøG<¦Ÿú½!mWÍÌìûù•MüAΪYûéßáoªÀÝ¥3\jEÈÃfÉL„«™±~%ÓɳHaVwDÆòøŒù6p`±ýÙ5^çè·€rŸµ—eXǬ€¨r+?'G¯´°˜žÅT8ß/‚ÄÕâucm¾’&uó pY§„t¸î惪ô(NdîL¿tS/sånL4îò׸Öåz\!àN¬t„ŽwÉ•«Fl9Ëó\ÍÂÓX6âÛ; »h·™Å6ÎrÛÞÔ<‡õw³ÔÌõ¿ =¸|Ó >éúÙ×0®•¾„|vaóÖÚžI!ÓàJM÷/#N“µ SõËr¦ù笻ýýÝÿœÆÕendstream endobj 566 0 obj <> stream xœÍ=É’Çqw˜áo@ø4P`š]{•n’CŽ°Ã ‡)ÜH@ *ˆH úzgfUwg-Y¯g0C™8à±Q]KVî[ÿøx]Ôãÿ”¿_¼y´>~õèÇGŠž>.½xóøÏ}ù•Šëã´$¯½}üì»GùõX)µøÇ>˜EóøÙ›G__ýíÉõºã‚Wž\›5,ëê¯Þãc\Œúê§'×jY½KéêÝ“u±Æ¦à®^³óclºzË^|u<~‰­_Ì}ƒËÄÅksõ-ýüý≋s«½ú!o)hÅÿýc~êW]Mü ¾fµÕS¶ýOe6ªí÷s盛|ôS˜D™%Âî>àã|Ôñêç|c*û×6\}+ú%*ƒ›†ùÜšVƒGçÞÏ•ÄÑ/·!–ƒ—ñ9¿ ‚GRÛæh~–çÃ)8N|¤£˜a—àT®û¯Ïþë‘vPÅb=»Dú.ŏ {÷K€Çr {øÞÊž£1ìà2àÆËî¢ Û«J'B<ÚŸòÛ£ƒç8=ØÝÖËêõ|ûò ðä×Ûѯ•^œõ*C€a,¼®§À0f ©"Ÿr 6„êØUóÇoÇhô§ö‹IÁ™ÙPNçßç%Ó Ñ©›|,ËWÎÛ÷tTœ *5?µ]|Ц±ßN²ª!@e:ÚêþÒe“ôØn\MÄœæùóyyÄÜ‹T÷ž†ïo9.‘HY„tÌ8ä\Á¡g0^I¡=›Õ VˆWo`Ä ÏôZÝyƒVk E<µ«ßÏæ’ ËÙ¡Y(.¨5pti€bõºDãšÛÁí™Õð§œ#þ”G¨f§ù0.x8/‡ÛkFãeßQ;Wžo+s:emuá˜=ÙÐj»h붸]‚•Y1ˆUœ“ñTçB‘îÌõ7¹‚¨ WÿQV%/q†Ÿ3[ÈÊÜÆ–¢¿Ì“®]Ù¼²ƒµ/Ãê–ÓÕÿà㸚mÅÿ^°áÛ,fHäü\8<³Ë„lÒT·!ïL@d>i‘£pdN |;³@U*¶lmÄ$ y[“QÌZPŠ”nõ!œÐ(‘£ð3Ìñ7¿ÊÇŸƒNaƒ^Bœ OÜÌ {¼ö6CD€…6FTo¾­€>ZT–0xóñ9øÜœV8 ݈‘ئWÒLXµa­s Ü€“^ð±§tÇ­æa¶‰p^3M„ÍÁ/Ë&"px&œr¬ZFü'í˜d¡I Ó›)jñ#‚%븸H4L¯i]Á§G F[Ø/• Gþã>­-ÜÁ[Û¨„ðþÏ4÷„»N5“WÎbm£íKsb|÷@\Ü_ýŠï™Å;3ÓD¸â‚™?y@N©0UÍÜÐ!žÚ™ãR\Ë(H톳þŠ;®_C¼¡d‚á®­;°oŽ×ж#Tô…¼ëôzö!N9€»ä âóOøXÛU9WéâÖ֪׌‰ì¢·]S€|ÑÖêe 4@²_ž6  e‘û­Y$jc›µ†'O9²Ðm è8øRfœ(!0À¨™X[×\ },ƒ[57¯¦¦É>§áŸò«I‡Æú'|^âA¯3S‹iäW@yQ¦pCÖȵqº#Áx¬oÔš†J¸úæŠòc¦è©ÂF ²1ŽØ¤ ðÅQlû¸èä**:{0âùƒƒÑïݪªe¹µ0BÕ&׈RÙLK娵ÕZs®!]!¾ƒi•oáO½7¢3…‘[9ÙìoF7`½»²³Æ%øÐšhâ‡8Õ’àÅØèW»ÿg\cgÎà:§–ype ׉¾}¼œl|¥ož°c ΢Ä1¡‘­xd¥ê=rÌÊ¢ÓÀuÿz©EýŠRoÕZ0p‚L|c”}™×kºúbLEyK>Ù,Dì$œ\¸äâäÅé’M“ ¢l».×ÁùEòùe’S²ùÕ±¶Â°q†›Õe”#ßx`ô@ œ’™S¢ŽÔ nj„ܯžcd½‘s–„j[ÎIâfT€G3±ØßèžàPxC:Èj$%ç§|–µvì@w›xm$;ÓÀ¬/ð¥®èiEBg“jt%>¾:œe;ê§r³ }ÅÙ ‰ œrEÓËæaE.¢T%¸esü.GlÌt>ñû|¾aG̳Tæ#óš.Ç:0æ+y¾WVmª|U|ÈÀC5¢±qU´%C]ZèÖ®£V'Þô£ÐmØê)è· nr!Ú èŸ+ã¡e …*Àh¾³óCžCi[o*Ç Üìs£ýX¦ºù^!`ß\Øôê>ë ÷c1d¯¢ ’ç†Û.½jÛêX# MÓ?=¦)у Ѧ(b„A›š†jMm(Œé½dU+‚)`¡ÃŒ“ãhDø÷ü|M‘Ì Ü050 ¼ÛÑl«páSt¯Ÿqsv< x7iS0ƒŸ"µ`•Ú[ˆYKHM 4rÀe*f³»º³£(nÛØ¡y\]Ž–ål¶jÆI7ú’e.NæÚèÊî7رœùv™œ>8ɽ*W¡Gì˜&ä"Ï"H·b¾äóMƒn­£yÐ †Ä‹»ƒ×’3.C#nʈ fŽ8á[*¤È…®.Ùh@2ô7ÎpÏ Kö”P,º -ŸïmÛÄ_Œ‘œ@8Ù¼kÀ€<5åd, |Ò# Ÿ^6],5rlCA«áf Gt&^äùÇþr£wœ¯=d›ÛõCŒN6ßWP Ú|-HNœ%ÿVÎ`îÚby!‚_íTôó0J ³=/`ØŒ¾Ö:QäãD̈o‹)¦È÷ ï:Æ«„µ•2¿G5¾ §(ÝAbí\îyÂj]‘¶}ûÔ½i¶Ú:Ñ»ÎéØWg“ ‚»ø!Z; ¦9'¾7=SGÇH¯8Y#\ÂËŒ^¨ÍŒ¼šÑJºßë<3ZC’7›“?¢M‚JãĨ.¤S>ùøN³Äx‘n­’k÷9é ñK¡™¯“¼ÔÈ,NŸDÇC1Cž¨Ä¤¨ÚÖ% ˜‡Aµ9óŠ‹Bý‘i¢\1 í[" îúg][e[(pP°ÌæBôf±qD\ús˜´.Ø”–àz%‚Ûh<‰¨åS riND=¼÷èoN»q–yçŒ/ÇmãS[à⢘äIhµèd*;¾'a† Õ·Ix àmeéȬ«A–d«¨E8;ÂwKSLúê8RÛàVÒäp½ ˆçÏÇÌáL†æ«’ìh§iÇ4ÄÒ-ýØò¢û«œvz…§#;¾/þ*¿Ï’%ê €r¿ïOÀ¥·‚¼¾:çñ±Ú-Ê™ž}¡]HôïÜ‹ÄÁ&®’;2€@ •=VR%¤Ö©†µåÄlN~¸†– ÈÉ7ùu`ª¨¤ÅKÌ¢cÍÖŠ—Ö4u½ˆ²Ý²Çž¦îpŠÀÒsõ>m/+LŠç Ÿ»à4(-¸k—N†ŒŽŒ" (~xùŸ#’5l…¢"9p“¬¦I$¤‡»‚Ðɉr(¿š‘炨†³ºÃwÂäê3d…àRMMp=îlQ`T«r/—Ë9¨=u%`²z–KNÅ·N¢Rç5vJ IëÃmÅ&y&G–Pï±Ú 0ªÕÊJæÂ¨‰ð¶+œóhõúÆœ—‹«ñÔª.·½(à¡WAL Ü £&’¡¹&VȶAïîÙtßÕmÚ€¿»æ]ƒë(ˆ s6æƒc“ ´=v¢Ê#eäÖis­…˜]ç2¸aL=ÁŸXòº(QÝ‘uÝ®øÓž*£ø»ü4¹xR®0‚+NÐU÷xž@®wvõ¿XÇ0÷-ÃÜ M[—µJÖ¤ à~­ ¹Ø$,žò¯má¤uÆÈõ/Ù~ú½êeUJÔz;K¢ñEòûdë}:f–X^*dcàæSÒ­Á@ë´'ÉÐ[  \¼’¦¾7·2,­bêzAñ`–5í•¢ŸÊk!H´Ñéq´Z‡N¾£Ü'yÿvûp…¤+‰óѲßY^¨]%>H½&\Ss½lÅi\»»}“|o€‡Ì!Õ!-<ñ¶\’óÚ± Nl7yJT~vr-Í‚ ÓΈñ®I ,« ¢µ-QC¸G£‘X^)ãÁÌ…Þd|5NFé: }­3˜³Ïôœ3ˆ+4ÞçܲgGÜç{á]ªt9Á¹D—¬ëd‘(&–GɯѻësþÎSðºñ̳¢PXÁÆ®Ÿ'WaIãǰKò³ÂÑÞÌå ­ÞTl/²ýýKžÙ1‹ã–•ü B‚^?¯<% ÜÞ,Æ©»„7zèÂ×QZåÏwªu©S´YxŠjòLU¢ÝžúF~\1kHÕsÁñ³بÆdM¿¬¬7i y½›ˆ Lþ6Þ˜ºêùLL°2G+1@³ G×!5)™iž2ïëÆx³XÁiuOÉÌ[ŽÌÓq¨;¼µI¾ÎƒF5kç¢n¡ñÐü¬$º*¿ÓˆÅvƒ†3¬Àû¼M\Çä>å›í° à8GEÕµí@OCmfH6pŸ…•RÛ]²@öçpvÞ;I*­)­Ý¼6®ÂÅf-L¨ôn„{æØŠ!p_¡HœÎÉuÛ\×àôÖÙ`ë’boƒÁ»ój@ZÞŠn¤ûKæOi‰>~V2?2LÌty·NCkvŠñIÕJx6‹àI M>†‘<(ü¥¿ÉNjÉÕrvÕ(ÎäÌÊ}0“|E ´K4mµõ-IlŒâ|4²^«— ç<À»2yuµTmEÝ™Ä?t?c »Ø*¬>^,úy«À¦ÉŠ»6úžr€?ß÷ˆú­´R[NáüÐzPFbV"ê§œ¾çÅUfA«³{ äA÷â.ù®NÌ›Œ_ɶ=˜ðrÒ´'pž‹ÄÚo½¿È­66äM^Û¬¶1È6¨—ø`FMhŸÓ7ûóDky=ÿïs›T!gIÇÜðѪ´øû¦eÆj…¾<—ðÓždá‘ÑßGg.`?Zöç°Ÿk}OÐX÷Ôù¬öh %%Û#AÓG´É$pG;‘…nãGt8Òøp8ì³-}…§I×|ô—=ü1öIçÝyêÂñ[4…Ë´§P_ÞZ»¹Ð;üÐKfýŒØ±ì|‚%‰Ê¦ÎÚÚHÉW3]Ëb$HÌ:»SoF)Ⱬ—xf«GJ÷çe RÇ^‡f×}fo²mûu|¼ùÓûtPehmO_¶‚·DK}Ô ÜÙ&ay-OvluG¼°hOèyÜó!Ö¤eˆM\Ú2¸=ÕR§Ö[~êÓÔÁ+tát2±£dš^´¼/}£åÙ¼íßVMŽF²î­¼F¢¨tÆ.±îôªô®± ~àïø*.[gšâ{ZÖÏz­ŸExŽÅ $?°—<¦¯]*p=Ü-waQ·î º<¹v +Àf‘âJ’·¾KËÇ;_K­1&u¦Çˆ¤“Ís!»pÚ0:-^IëЦðå —º‰t»à¬çM>»p”= j“&~BãZ׆ʆ€ûÜ*r½ €2õ©çËtU"§D ?åU’›¸•2z–„ &°ÔD~Ò•mƒæ8E’É%.8}´Îl‚¡¬§H2©¯Lç¾(@9ÄÚ²àõ¼îœåC]°&Š*‘1N·Æƒ,µî¾¢ãlfÞº´” H%ÛX°5¸ÈÕ¶_¨[Ê[ClZƒè{#çkpÃÞ ¿ÍÕ¤eŠÌjSçœvÇ·ÚÃŒ2‡ªWiJ¹Äó ï䈰–Æ©±ƒö¯—åÑX ïJœëZßÙÉMÞ®Eiq'Ó%é¶nú_g l_ÐS³¢Þ–±vo®Åš«3'ãŒF~¬£ÆÆbÆKù°£O ?aÞcíéþx6ÁÛMŒ¸;JéS­°2É8ühÜF2oóÇ>Ð3p_v%všw‡b½u†BܰGÀVý|?N»]ÒB>ù„u«nȺB ùùëœ•Ž¶ÑzYr·c¥MݾIÎ((Y¾16²^‰t§(.-hûþP§?Bv¹Ú¿ê¦îEjB…_~¥RäÞ:ö,Þþ?zö»¯s£…½¡â5V´GŸJD½r!ëTä²™}ŒÈ±q qŽ/Ø@þò†Öˆ«©^|ûK…ôæPRA9ÁÁ˜4~ºj·³äLÝÖ“ðLó¥‹ ª7ùMc/u/"Á‹khqˆž&Ñ,æÌŠúÞ ¹6}Œ7_#y'5Epo¹¾ •šRlIì4ï•.B‰½é¿`Jébƒ¼b°²Üt<§9¾Ís¾9ßfŒD·³üA/ó]E7Ä©móÌ$.ÙôòCÐÝá質ۜ6–-ª–Êõ“¾Ü§ ãã¶µ‡ô;Ên&¥9Ʀ+º Ì´ uÖˆ‡%'Ÿ%ê»ã"ø¢èlº§Ö#Ÿz`PŸ¶ð“^s5×®{öL0ø9E©/mÒÔ±ÖU±KŸy¨­=˜ù(mº[£ˆŒÓ[„l,,ç;í>ÊŸ[±ÿ¤_«Ô‚‡~ ¸}וêfÒrô9¼\t‘¿±òÿáóV­Te2ÉS K §ÒDçE׋ºêám6–ª7eó¦ä\¥ùsy-Špï~"…½ï(Ã¡Ž ^.Ij]\@«vÞ´§´zø ûdzú3ÿ\ÀŸ³"ÉQ‹{jUœù[h?MµÙæãh;ìLýDÛ£‘ª×Q˜c_¶“*Ûe°3ã=ã€l6ãj†%D½¸ôÜÞ¬«hö†$Rý<óöŽK,¥6™\wì›T³OI­˜1ßꀊÛW!›Fu[A¹®?½ñ®bÀÔ¡JMªÆ¤Ú›àîúïÕ_ëDSد^ð¼J½+O¥¥žtAÅ•Ê~î«<ÃÐA;™j±D¹+êÁ÷°L¨Fã þ²ñ³Ö—Gѱ3´¥ ÑøÏÚrß÷á—þ”Lysœœÿä: •jgCÏRU³­[døÔ|‚ËÙ¢IEÝú$ßK9ó:åÍ-J ¶ó:¹GûN×ì1oFݨº´Š©:qÌ>˜e°]òÚvÅà‡þWÆ6^hø·;«|NÐøµGçÀåÆô6Høû:¿èk$d•“Œt q)Gv´5±Ú<Œj¦FðXçÛ, W¼Cç)m"}xè\Ô‡.µùÞÏ»2‰·ãœÎ N,¨ ¸:Ë¿átƃ?é'HÓ7 g ñuß@¹œ‘Ìrß°swX³lÓ?c½ /y«m˶ÆФlƒõ¸x8úâKÎK6£u %ˆ ®]¹¨ÕVU/#‰L›ÿÂøÛmwîêk¶;ŸÏBŸ²ük>¬Ó£6¹{>þ; ¤Õ³¸`8ãbÅ„Vi­ñ‡·Bzü´@!~'¨:»Ac..´ª|+;×DG)ºY²¬”²ŽÎ”ÍÕÁMÉÝ{¢ßq]ò`ñ;¨‰G+ßu<~C| Jí .kh}.÷õc¯œä¬ÜaáØöÓÛyS¶—ºžMXhã8GòÞlõ¬©¥l\#Î[;À¬úØ.¶° ~Šär«…Z_ÝzA“sE‹ûöS¤U/Q+0d‚ÄE[b†°ñÃ~£Ó¤êíà{‡ƒÔfŸ -“IJž;ï[ V*¢n‘ {åç|Â…>Ž˜ð-ñæØ¨áÊÐ[¤í „²oº«˜S¦­g’ªžÓ/½+´„EKôÞµ=t•b£6+ºJåruØ*æó”~²ŒìÆiØ kNóBüèÛÐ ˜«Ø)™K—OeK}+gºgÕ7‰Í[®©@²é%Ý~šxá©7íίÌNJ‚˜·óÆÔUYF½œî¾asÎåL«Û¶G0.ˆÉö”ÔЛpŸ1¦ %Ê—{Ž1Qv=6¢ÆlJ²°SüFñö‘€*Òˆ¡Ù;rRB -Yêï®+g¬)G:Ò(…40¢Ó³¨©ãJŸ ë’la’擘Tļ–Aš7Už\sJþ\kûîv­å&T˜÷jÇ]¾ÚÌ£u«¼Ç…m}2P§‘÷Tœš7O,ÙÊò9yL1_÷Æ A-úøÆõ øyˆ$¸½Ìób£ŠqÀµi…€8´}é­EÂ[R±Uzö²Ë˜64}Û¹z°¸édêØ·Ûâø?={ô¿ðçÿÌѲ•endstream endobj 577 0 obj <> stream xœÄ½ÉŽeI’%¶wð#lÙ`u¸$Ø$ÀUwG½(ô‚ô¬Êêbxkhêï©ç½zß33ÒIfévÏ»Wg•á_Âk| øÏþýüåÓ?~Š1×X^jé5·—\gy‰¥Ì—úë—ÿüò÷ŸøÅË?ýïêoûçó——ÿéŸþ‡ÿTf~©¯1¿üño>©àøG­=½Ôš^[-/üòé—ÿð‡?þ½ž^gÇëëÇb{ù5¼¶2BYàŸ>ý’¯ëkÁ{¿¦Õ¶Üçúp½_{»¼0{gy­¡d¼˜ðâ¿ÿã§ÿ¸ÞNu¼üùŸ?Å×\_þÕúöŸþ×OqŽòZÖ(ÔÒ^syùr ¡¾¶ñgˆ¯c=—ž^WÏbŸóu^ÏŸ?Å6Çk¨×-Ö[ ûYuà GFÙŸ·¸ nWö¼^÷&ø»‰øü¡Ÿ?ýí§ß>ýÕšþ²&øå¿ðÿÿô)½üݧ8ZyÍ­‰Cg/ ¼öòò»$ é9[Ýù5n$ˆ¯UÏéµ¢Œ0Ñ"_H{öMx-(6dô H¯kžVK ¬¥ƒ~ÌþZšúZÕCò+_ ¯É|½¢½–A ðë…¬F©ê’Ù˜Úº $¯ª‰¬r ɯH›þNêk))Ö¼_¹°WOl¤Ö N¼² jp-Þ¾µ ®ñuª9-$¬Q\@_ÓÏö•ùš’U0‘¡îkZ함æ]Ș¤²ÖÕÒ^ø#½!¢>ô¬œŽÒ;zÃV áZXHyÚ°‚€H"u©yÚÜõ5›lrnX¯@±Y 0×*å¶Œz®*#•× Šçgæ´™ëë7,£ÛZÑÖO…¯$ïãš§ŠÖ†a­]+·ûþTÕ#½€ä}Ú eíÅl¯$~TfÛ…WËàwÑDdMNÒð×Ýi¡­¹].ÄWc›…“[éÌD<·×nåf. ßüö}4y•—×ÊZtùu†o£É½UÑÐø“irØ4ù¯i L{c @_kp€_Èš–ÜHYjë[dQ“ÎÙ±çÏXnkŽëõF[Ûÿ,a?«`GÖÔÔ—]ÀX½[ôcWaÏ ÂÖC®F²€Ç^¼G†ãÌ‘aÄE`Èo qÝéšHžYóZÈZW3‡W~Rü)ð‘lH… ÉúbÑ3¬¡|÷ÍÄ…¼üj¯Ô×€Ìi z¦L Ò×2Ά„µ‡lmÎ8À.@kæPHû¨¶içjCÊ¢wV#@òzo¶ Àá‘è$ymlì¾&B„s>. Û8E¼@ëûb%MHÉëÕ÷ÎX¤ £/’\ŒM²¢¾DÕÔšÚWIáÃ!ÎÎ@‡ú"ÙÆÎŒyHç¾>q¯Éd”'I1€X@šñÕâÆ0‘í†C©J‰ûª*¸TtŸÜŠC²d37Ö\²ÉKì3¼ÖWÀ&kš`ì‹Ko,šÇRÒ¦ük%`±vqr¢¾Bs&îÕ×B›É´w-ö>ÕmìN}Ćb}îÝ·otîÑ?isú'kaLÍÄláÎWŠI*½ñ¯…l^°Ø¸[›¾Q5h«CzNÍÊ. ?@~ó 9,*žûûÔ·¦#©ešmµí‰úªØõbˆ³¾ü ÆäTõíõÞ*0‡ÐÇ%ß =¯Xÿ¯!ä¿¥¼«á¹¼%JÅ%¡½ÜÞûæóˆ­söêX3H27²6œ/2IÃäNŽ%-Öó"Þi-ÁÖ®7– ÀÍé%ìgÕ±¾pd®-ZóË.aNŠÙ»{^_x+ü o¥—ðÐw9D "PSÝ—;BvÃÙmB7æ\R„6Ìwš–íB:éÆÙöY]„¸òÒO¤’¦.ÎýjQøZ€ $±›=E­A{s.BšøQ™’çÚ:j_ÜdÑIQº2}x’¿³zòh •ƒ³ 'ùeQ6xQ1ÃÒ%ºOÈ‘BaÀ®ËS§Ê"ל˽`Tº°XK¸ebòöeÃ&FVíË…Œb†jÌ®€ÏòlD¨$Is`hÍ Ô“â"€¨iÓf³Ä"Þ<}6KÔ‘ ˆµ/êu «]”P®¯Çÿ†ˆž©ÛULÆO4›yÍTa)݈þ¢ ’?´p “©-†Df•@—@¶Í~gl³$1†EÀ´ë†“ù¼6Ê:Õò$ˆG0 /XÄ”MYeY‹[An[,[ÒPN<ÀŽ:ü p&"Eã£ø0VOÐ ° ¦;Š ‹„RâZ‹‚…¦ÙYËbžÇ4µGvŽ›Ár/æ¤ÁE»€fC’ÖPPèÌÖP™ÊW¢Õ3tìÑO‡i‰Qi ºEäçze‰Aœž-0ÉRs€+c!ÆÔVƒúS‡Â/w$[75ósø± H QpzÅ7}ÚŠ‚ñžKÜ›ˆ„ä]H¡D8Åæ !yØD7[snžtôZ$äþä,ªèÉH·ŠKÞÓFÍ Jµ¦€“žÌ=õ©‰žh rȪhÓ“ BŠwtÖä" ”·f´s>V]o¢Í^‘Æ´BÚ‹¼ ‹p*ž—P®=]Œ.嵜wZ47¯¦Ž¢­ i¢ 8Cª®Åè‘býÌ ª(y$_ôÒ -$µÈEº‰±æ²k­¬µ|ô‚!±‹­îÛ¦þ 4;il vÁ:@^•³ Èz°W$ïád¯Þc¶®p>²wºz—žËÐÙh¦aBaI夺ùN{%¿È^ðH2JœvôÑZi\8kÊŒLê¶*Î;ù ç;ÚVç$Ë[l·ßYòZ?ZÐRÄ“@nó½äBVÙ5~›Ä‡ÆðíI,'å„Z%6 uQ*QNW¦UðP µÛ’¨k‘Pºþ¢’å€5Úc‘/QEE®Õ&Ú[×$‰Æ€,¦¾ßiZã)ûc=鮹è\È 9˶ݠœbÓ1Ø7 ¸ºéD¼bGŒ÷ývé Ý íU@‹ô’@Q¸Ã%§4¹qôðy½´žýgð³´?ö'•½^w@æúºp[áz@á^·ÿl-ó¯o-—P ‘ò_ñeÐHfž¿áØç¡#Þ¢ÓØÖàH&K(£%UX€iBrã]ù7yd9esÑf]H´ª“ˆ@DlO-Dä‘ìDš°µ¹Œƒœ*gmd©aŒ®&Pa’Z†4+§ˆ%lm¶gíh«}!ù`´ (ÚUI½^×L¹ DÓ ¤ =–@Ú¹ä†d‘„ζ™ž&AR$R‹&zö'šxȹÖ7éU û:ÄĘƒ¤×±«ÊœÝH;2`HÕEÇZƒýlƒz…/²hEãÚæº¶6lm‹øÙ³-o¬ë7%ìgÕa+œÈ"ka¾ìzÀ©bW¡G®qµÁ÷&úç÷NÜù­¬/×’é:íØ" V{±Ù×Iˆ/™!%ND¶Ðß©¢ÄDŠé)úF"€,~Ñ „†¡®d¯[Z‹4Φ@ÉÛ÷šo§Ö"AÁW‰DIG ,OêàÅf×cŒ½ãL× !¼>ê³Ü€n@¤ÙzD)™“}OfÓ‡ˆ‹[û:€°·Ûäfomî±óU5¹ÁÎJV™ÈEz×ÿ¸ŒüÙ}„†ÏÒë?mµýIe_¤·vJ}××K*Nzíá ½ûgk™}kù}UBê»®¡¾ˆZ`öÅÔBìÒi$ŸÃ(ázm~±>’!^ŠéxuPªµ×%ô”ÝoÍMìXLo{IéLWqˆ/·ÒQ.¿ùKA= ¾L#—ÈuC– "ÝÉ÷¢wfõõ$™*¶áäÅQÆmb×tm‚ïõT‰U»%ÐÖ&oh·+µä]©væÝmº&*ãØ†Å–‰s[Gô’sZJ¹ 8û‚@ðè«ÑŽÕè?Ûr³ýIe_«±¬¾ž‚@Á«¯F{8VãþÙZæ_ßZ~_…¢iiÑå€"m‚!ܼQ[HpÉ K¿Äˆ[•†:Ŷô @RrâÀW†Ó.£oeI™¡Ë³Ôº×ž®h‹SÞDnF%MòEÀ{´êlsí •½¹¶p€´½”8‚¢ãÁ öUöZøQðÅuž-ky9ãç².ÅiPþÙ:/%q%LcÙ»½ùbAa¯´q®ô’M=²—:ôNý\é×;çB/¸Ý¹ø Evcˆ@>å…Iѯ9FЂi‚.$ÙÁèúê#do{‘#Üßñ’ÿöÓþw/ÿ {ØkäÙêúm &"zYèã7Ù·üù­.~дç]ý›g›íhêÏ*ûëº>kƒŠ«c® 9æ 2N¾Uö!bÆÍu½½³KþÊ\Ù—Ç\í²~d®®.¾ß´çý`®þⲿg®J‰seÈ1WFìÊ>D¬Ñ “÷Fï’¿2Wöå1W»¬™««‹4í¹CWc?˜«¿¸ìÚò 4ä˜+Ê>D¬ÑÉîÄ`—ü•¹²/¹ÚeýÈ\]]ü iϺûÁ\ýÅeo -']øúé÷Ë…à*:Ï—œ ÕИ€g¯œ¢4öüy,¿®0L4 °üÙªÀŽ$Þz¸>.‘èk/Ñ¢wÉ·†ž×’n·/¶ð‚z¤ñ2[®Ý誌|,„zœÙÏB&Ú›–šÁ™}&霡¼²./²@ó`ÜW ßûeHyeõ$Yiaä«•S¤7Õ6AJUª«ä’½p‘é@7EÕõJ4-T^ªtm¦Ì#akÙGÛ[×¢7ÕÔéT(ñ¹ÕîÓncP¥\Ù¿¿Á» !¹ó.šä¼«ærã,ö|ñ.Á÷€°ŸUűK‘?yì¬o5ÌþÀ»öÞF+à¡·}B³ÙߊCÇpCHòtx¯Ó,?H(i&=“Ê© x ň©4´@œ&KY××¶Ž-¦æké~bVåcúÊŠÁh¾pŒÔQ.Bu “#ÒÌ…]LRa(cˆ.ok¯¾ôÔåq/^N™`í{¹…*dÚ|E*ص—5§©Ý¬9°nÃ9Ä4ýVkÒ»Q&¢~±'èÞâ~eš²46/—£Uí“u÷Ãbüj^©»ÁÕlÈM]Cö)—„‹ ÛØäñ8¢KÀÙ4Fî¹jj¥·M,ÍðÖ΂ú+ÝvTãØY°­éǺ·çkgù ¾o¼€ý\öVtDþ»€^ï5tߊ» þ†·Ñ xèÅeÝÅ—µ.š$ÂÌI!b\ w5¨G§x¹ªIÁç&=Úüf™o–E#ÎN;yŽMÓ›iÇÕ,­¹,*ªXZ=XG0ýå<7újM‰¦– ¶ ±nøMFJC•å{íNÓq© í-¯õ$n²0M¿8÷"¦ró†ÄÛ;qÒÞ“HÛ‡¦úU×yÜd´Ô¯v}Ïäϰ‘$ea¾í؆ÓtƒÅ*ù†´‰l •¹ú$Êh«ääãdKRÒ°Í}Ruܶ`If:ÅÑæ°Äéƒ`¢1 Ò\Š%Z‰ÕÚæRlÔÂMb)12̱“¾åô¹äÃVí6Þµc%™áÈV.ndkÇöW 0ŒK7-ÛC]ï¬als¨Ѧ8Ouã÷¬ßèâûM{îЇÊÅŸVö÷ÌÕ¥ó™¹”‹Ž\¦õâ¾´lu}u®.å¢ÏÕ)ßèâ»M{îÐÇÊÅŸVö÷ÌÕ¥ó™¹”‹ÙÚ±ýÕˆ7úÒ²=ÔõÕ¹º”‹>W?¤\|£‹ï7í¹C*ZÙß3W—vÌgæR.ndkÇöW ÞèKËöP×WçêR.ú\ýrñ.¾ß´ç}¨\üieÃ\%¸iÞn‚ƒÏ_]ˆÜë«vÝ÷c]ïÍUêuÜùÕjAúa~õVßoÚs‡>âW?¯ìMp÷Ìlbº‘Mp÷W!ÞèM¸ëúê\m~µçêGøÕ[]|·iÏú_ý¼²¿g®6ÁÝ3³‰é…8Á½¾úñFoÂýX×Wçjó«=W?¯ÞêâûM{îÐGüêç•ý=sµ îž™ML/Ä îõÕˆ7zîǺ¾:W›_í¹ú~õVßoÚs‡>âW?¯ìKítjp:Ny_. ô5·R^#t(ÆŒº©¸?Êð ’K ××zPÙë]=â* ¾ì›l^²=®·½jÁ[fßß[þtÿU“œ…Ú:úJ ;4†,NÎf*‚„NÎU>`;¦D†r‰4)¸¦*)iý +öfˆZ0$Ó;fJ™+=J¨•&ªÊm!MšðÚ\YLå…È4œ®²†¥œŒ-¨@†‘F5Ѽš—ù6 ä;Tþ™yßULw%6±Õ´ŠêwSœŒ¥¹@ë >{ª§J¹±íù2M&‹”Šex¯uÓmªnĬhéÔ22nÄËŽ’‘¡äÞCLÌlQ2¦L¡2ô„ìbm>‘E–Ô;JÆ…”¾ß±¯J²/f>™ûCÝ9› ŽÖQ+šÌ£=S±‰wRóöUBââ6³ÉÜ3ü:©~Ý—C£ªÆúzŸ‘˜}FÖ@sÀã^¬Ý´Ìaš~‰áGPSØË¬ L¡ñ¿mÖߟ·}ÉÍnÛ€ý÷±íá§—¯moǶ÷¸µýk=dóµÇµ¢ú±íá3®moǶ÷¼eöý½å7g ÃëL;%1@k”´D@ҳ«”îŠp˜¡a`—?C&u`!Ý7æì2«ëÍTcØ´Ôôu®fÜP¿Öý"½šW;ý’ôÑHV°k_±Ek’.ÕvPw“MדúŽ/ÍoϱyóM/Z›+0ÍÎ2có¸b4âšG»PÇ:®¦ã´Ý›¶4íÅ_ÝÞÔ÷s:5œYðdë±tS¿žH0Ä÷·™Gú#ùu¤ñÜ¦Ûæ’;™“VäóÄÍÎ1)Í·†mÿRòëÈó Ôàæ²w{–ò;‡ýŽÜý.µ(ÚO úæ.fH»)[1n”ŸÖf6"‡û‰š.¢múå`ñ$Àx×Zë 2+Ük«Szt Ï´ ‚.Iò Þ‹ƒÇ¦ÉtÃ^€“d#ôÈ=©†íì7¨FëóN5Z7ªÑÒ<©†=TÃ_ eð¯õ ²jàtpR Äï9¨†=TÃ_°–ù÷÷–ߨÆQTJ”ºtØV”#q$óä&B3Œd ¼Ã³¹êqä‹"_˜lx|{u^^ þPÞœÛCcØb³†A@ß»Ÿû¶ŸÜÅzÈBâ–$D3à­’v]]~'1­ÙÑ1ØÜfWõÖš® ËëfÞG÷ðÝi¢ü`l©§›Àh.4ô!«ŽQ}Zh6²×2‚Ù¡ú½-l:¬ ZÁëÄhÄȯæbbÃ? .Hy<Ñ·¼I4ެ9|TüêÚ4/¦ÌýŠ**u—¢¦@ÌÞZÊ‹ôØ|t»ñÏ[8étškyÓÉnŠò^ ]¡ZŽ>R²êhÙÍE€Ðæ!Íû^¶ýöÆ^!܆æ:ö²ÅšÙÛDÇ^ö´_ík>XÙ¾—av þæ=ï%Ûã±—ýoª}où]Èâ%y#¡ˆüð-TZoŸwŒº¢ÈW2©Âéj ˆÛ+À£?þ”’Áý8âõ9¬ôõ® -Cö‡£Ñ_hmÏëu¯ÜßØÍµš/ZóqMËÃ)Á‹“Û1¼æþQ½CÞí+‡Ûx¶Æ%°»†4Žñ´çc<ý Ž™®•îã $ãÙ ­ ¯©Òó1žþÆžl+á¡ùÏF¬óô߇RÛ}Y2¸À1ŒØÔç²´çcý •®•îȃä¹,[J·eiÏÇ0ú{ج„‡æÿø0Bò½«1=£Y¯È(FçjÄÁæ\ö| £¿Á¡òÏõ Ò}qv?Wc]Äÿ\ö| £¿±g%<4ÿLJªï]G¬âµóH aµÖ|.ÒãSØ3‹mý;ãYÅ͵¯ÚS˜M/nZª/¿Fœ^bÿ À±ÈéCéöÁL¿¯å½XTÿ¸À«…qôúéÍ \¿²xòíµo.ï ôÆÀ“K²i©ÑôêË…À~Õš1Çõy2ŽÐë.6ëÏŸgÉëõz#2¾]‚?[ðf"؄鳯 A–½{FQk…¿á­ôúñn€·¦pV­DÓmˆ‡%R(®Ek%˜šz!Q TŒSCÖBnfÁeÿ¥!˜b¡Ñ%ŸH´À:JÅè´Èx–ë  2$é®G$¨‰„bÁ§ lXQ®â‰Œ0Ý€˜qo¤äŒw\¡ïŠ\$¼!¬—Å B è,)3ï°;,¥{¨!ØâY±o2,,×Sôv$ê ¼Vð\aÅ}wiBª½C-½éür4¹?¿AD EUáws…ãüFa‘Žb·ÓÌ[ßc+-Ä#'!¤²Þñg †LÄ4‘ õÄajº!`Ä(¼Q=.¬SsÔŽ0,Å KÕ”-± è6bÁÊ rä®.¤Þ×,&{èÑ¢Àì-e·ThÛÚR*^nÐnMqÇ¥›ÜB°Â´¨]2@o0ײ̺ôYˆÇ¼Ê²o4ø&€ÁsòXvÇÍK|ªW±æài”  N|Gmh¡¿gFv\dÐfÙ¤7Ä_´~gíãÜLéµ§2·ì!Úñ ~•È=Ò/¬`¬ëf¦¢ª¡ö•w*gŸ)y,Z»gSž ÓìÃ5Ø«èÁŸQi<‰m® ™ˆ@±FÀ|™#ÊbP¹ã …©]v¶¤èAD „Ó§e†Ô¥;iŠí¹ª,$x<]ð.ŠÑ¼YŽ7x_гYØÍ–€ëwë$,ÝC‡Æ¤Í^ê&"t¼x¢…’DLKtú%³ûÌ. ò…ê ÐÉ^²Çƒ…¸(SwÒUE¹,Êé#-û ̰ˆ§,›"ä©)Û04Ƹ"`,zñ!jGíZuÉCÀ6EÎZÈr’èV‚³ê¬ªÝ$Ì›ë9V Ò´’‹™n¯ !Ãp©€;)tÛ8­Pu×p̰¯JÓæ HgËXdÖËj bZP¸ñ•1\rP<=rt“ÔÚ›ìÓßéY,Ä8"g̓B7.ÞëÛ0¾Y= +ôöehQÙ/Z›VŒvw% 98ãY¡œ4<‘Aä)´ÁcÃò0Ä¢Œ@Ñ£ÁýB (¤ kp‰Ð¶îÏ-Zwâ–[ó[íûD)…o‰¸G!g覼Œ¼j5n7<±ì/T -ž(›XÈo„=!;qêÒiÒ ËïçÒÄ),KC¦@JÆ6é¹-@ùFªGçi#{db{Œ]{üø¡ëöÔ¥±÷ƒƒ‡ÛV§§ é…(\Ì:¬̺cUD²LB«ž›b÷¦ªí¶ªðxÉ"D-Ä÷Ѥ݅(ø½»Ÿ/ J;í‘ùÖ‘I1¢·WøB:þ¹íéäoLÞY@4Oí¡•Q‚Ì™bA|’-û¥,YÌÁtÄ£ú;Åbè`ÍËòeE‚)™°\Šå…Ø­fÞ¾h7­KO¿ùOAœ$ÓWñÄ%³(T´Èá Ù^©¦z¾½¢˜M'¢È«Y|R¡–¿)VŽ«§çTi„å—ºÍédž/ ©àêwë,¬ îy‰dlru·ÊÙp¿[ŒlçI3 j:u-2u¤\H°¡Y,uD®v÷„XÊ¡ (‘yfK‘Ü=qîxG̤bÊö`nÿ€°Nõ¼žq>Ü3.y‘;·}i¦îi@² æ0#æ\3wv¹§Í0åJl5æ)ÞgâéŽhµ\2!y²™%•·tÅà®ý"€—tÙ†ŽÈESlÝ1„«ÅÂ^€l\pMÖmõZ<…Ô%4qiŽ+òÄz,ÉüU¹VœÂŽ6 ‘Û+‚QØæ Ï܃Q,D¦2 ^ŽEÉ÷›&;¢æõŠ_yéFwMJ2^‹7FwLÝÛ¯h iï‘©8$Û-!H/Nº|Çvs„Þãn|™áþ¨ÙWŠN RàS2l;VÍ+ÉEµ› .DŠ­Êú*Éj {Í ‘eRXÈ:‘ÌàÂÓš,ÄB ”jƒ—”Bªg‰ˆìä=sÉ®ªRsʞƶŸ°™KvUåqXUµa€:¨Ü£lm=BÜ ¶„eÓ úvÇ‘:¤ìÁaÊ¡­Ü¨t#ž„C\,¼æEmó¸Œ! õÐdu§¶Ñ2’Œì‹üÎãÛ·’,š2LýBÕ¬ƒ¨%R¬íµÙ=C`¨J&% #40ª€ëYU@^pdµ9¬7¬€¦¤»{†¸`mð7vUÀc/Þ¢—°Üt`áV‰ô—›ŽÏœ$ÏM·Æ×ðÜt|¦ÅŠç¦[ˆÖæÎM·³zñÜt ÉfjlüžxYá¹é ôÌÁâH\ˆ dç¦[€<û=7ÝDóvÐ<¦ç¦[ˆg«Ë..xü·Ô]ˆE-5«[ E´-m—`dùê¹é–¬¢Á;7ÝB‚"¸Õíš\Ù%xnº-¼ìÜt `¹é–ì"«ú!`!ÍB²^ˆì+O$Ébù@‚EñÜH6g.ÏMG±Håt§…9* ƒç¦#‰ ²å¦Û»}ç¦ãÎU¤-êY°þ›Ž,¾ófÀJs°³Óe$civhƒ´2Wvº<-ƒg§ËÈx@ƒoÏN—‘ñ€aT-;]fÂîñêUCtÙ¹éÖŽ4ßIÏM—§Üã¯Ütܵ0åt~F–¥¯‹..Ô(«F×éS¢í¦ç¦ÛB‘ç¦ËˆÞ^®Üthtyå¦{¢y¢Ãv·S^ˆææoˆíܶ¯‘æîÑ6m®±m[ñÝÔm#GßLô7Øbµe2iaSõÉÌjØéšåaAþBò%Â|ø¬4-|Éô¥“K â:"ÀfgÜ7ÛÜd¾Nó0¥a Úˆ; wR='Ò’]ˆ…ñÂd~Y„¬ß¤BmùGÑkúÖt>¹ˆÌå+l…¬&;±€Øí# 棦ãxxà8”è5Å ËÈ8e±šÃÁ«IJRÝ]â2­)xÁqZ>Êê‚—‰PU4Æ&¡Ù™µ”L!aójÆå³ºh)=ö&Å Çæäzaô‘]‚*ו¹Ñ>I¦ñ»‘Ùš&·g/ØVæ¶l_ˆÙÙ·-Ð×&³î¶å÷*Û|ò(Œ|SXˆ„]M1uF6¦X-+I0MØB‚N¦×MØèгoºê7˜-ÑA4ÛcUïz˜‘+^Æd_Ô€ö²}£‡OM{£ùÏ}ÃÃì§•ý-Sf1¡9í©J–Àn½.~z¿©îa™‹Ò,<¼‹I’Í£Må­š¯OS˜ÓôC¶oôî¦=uç©­oÌÒÏ*ú›&i˜ÀQ¹-QW‰ÛŸPù¢BÏÈ5OkdDcÓW<#Q1ÎÉ[¬þ¡®÷gÊ’`T¥ÿbÿûÇ/}«‹o4í¹CO}kª~VÙß6WÑ¢AU]5rfÂT* †ðrg”´ÄBÒ&¸⮋éâP!Þ8Ö FVâ )Ǽq牫e(Ê‹Ü`öžíú£5Ü=ø;ºBƒ »òÆÀHå6Ï,S”æ«AI¯;pÝCŸºe]\º :xˆL»,ä(Vì8Ã=\÷Ç ×׸7ÄÍŸ’P%?kݯ{RQ0ÕÖ=aX‚ë" /G®S JÀnÃ@6¨üX üð*6¯]&®9¼Ñ-(i‚MZÓº÷27 _kž 'WkáêXóÓ´¹ËÖœ`6ƒ;d\I“µÃ&Ýnž‰9eÅBl¸ëVssèxt6xÖmÍ=Ë û;háT.¤Ñ ’tL­¹_·S&š[¡až–9%Åh8cs‰%$ A¶T•ˆÝ:,„Æ-˜aCJej „*""Zc´z¸tw9ËUîÏRü#d€t“hT@‰lÞU4¿ÑÄ ·<‰S’ʽA+TJà}Œ“"¼ÝjÕuÈ X€Ý<§ï3ž´)v.ëV‡ùš&ØRaù@#¨otØiµ[N¾ÅðyØp@·ƒŒ,k³Ë®Õ\*.[­Ó?Bxö5ˆøØÔµØ]V‚*û¨æyˆ‰ˆ]‚¤Ð9“°Ô MVƒ5Ú5TÂÉ01-XÂõ&JQm4…ƒ‹„ d5^/m•Ò­jgàV\sš‚®·mãAc‡a)¦ûH¶ ­èb—€¨äá@…‰X>¢ˆÛFì¼R»¿3º,q«Ë1*ÞqèB‚ZS<›*. a>U\¶³=Úéz„×_CHGÙåà‚’mÉæµYsW7,Dö–Œòh}²ZInÛ:e-ÑJjÞ§F•e+É ‹˜0€§WÀ$Ó¬G&j.Bì¨äb:¹‡ø÷… _E!‰®'¼}Ýç?ÈôL§l$ó+ÝBr®Hø‡] Å„d£1çMß¹€ç¤Óÿâ9ûÂÍq7DV@½ºÍÝ” Cƒ%·l7°&*xYºPÍKdöt¾hzvËýJª>-ÊÐG‰!¯ˆ,)úìNª¸Z÷hñÞCd‚›çÀÁùÖÆ–ô£ ³)MTZ‘!E~%#ûqD6¤û ²óið²=Ëdˆ‹Ý Û:²Zmp“TEÊÌØš;7sw2aÄŒZ~"žâ(`PA#=ËNäl_%/ú!»È:-&}‚‘ØpÝéï@tHcÆ´qèÚ’u4k2¸D7$‘$rzs'í=4£Z`SC‡k•b‘—0 Òß@åyƒ2Ò©hÑlFc¢‚ 6è"íf´Ø²Ô.DÆ€Œá âL»#z¤”Á\ñÉ7øˆ·’]E™Ý~"ð¿A:±iæD@„Ã=LwMd!] +žMÐP2ÜWl“h¤»¡Ô“íYZÃ;[-„U$Å¿¥¦ð„=/å·Êr<§¬$:;ITÞºËJ-¿â²gZ‰fëAIŽBKí.Ël¢Á{ šŒ˜%,•éÒ¨ý<‘Ùo‰àÞ*24J0ꆱYËv꣋y‚;6— ¤Þb›ÀÄk ÏðÈ[nçˆÇ¼eû®öîÄ’E;´sšdjÅKº@–{.N»7Nôì”`šM\ÖÝß.pï<¿J?ÚpW§”h¸dÂÄ!æQ ›ÌšýœQSÔ†Li#…ëªFK.œ*m¯´ÕV“ì<ÈÀ%e1Û0¸_~¦ªT°­ ³nOU©Òɱ%p rO ?Þ}ÈÚÉŃ–'Š'`ÇÍÖ€IijVyu·b7~ €“NVt<‰‹zÐp"äèÉ_\ †q°ÌñDžU§”VtõaÏ¢2²º!ÅGs#é(GHôˆVȉ˜Še[‚ÇÀt´r¾l¢dÎ/…ñXVÿÃ䈕,Ïtþ¬ðV7’§’Ôy ûÙª€!°_eïŠÌovö¼êðVøÖH/àÞ‰wM°›âØžI_îˆ.4 ÓÍ\ í ZÕ[S"ivöª¦NJ±žùdâf) ±Õrëþ»¼¨Z²‹¬êI;|¿á.Œ°u™á—¢;4߆H}ã{™öàd=ée'£93q ý¦ 2$íŸSñ‘J‘UE¿×,f Ã|](Á³Œ~Á|Î "ÜÚáû@e%*_HÔc”ѽTo@z2“i·Ã1zš‡“ú„Hra²R«ô8¤ª8Wwëó)wÑ,ÂB’™ÁyMÕᩃu4Dä0U·À`Ð~¾úµ MÑÙ‘ã[À½ßzLæ2àHšSîWUêTù3T3,<ôó##m‹ñ5{ÇT@ ‰VŒY(©Û`yéø?Dy"hÞáí@+÷bù† v*–< ÔÅdú”í.ôÓÒ¼$‰ Gî)Dv[-E߯‰fZ ù!T.ÂãG™žë~2Òéhúq4¹ B4iQ2]‹c¸ýNÓòÇ ÜJmQæèêN¬n ^ÜÞ€™± t“œ»éÕª¿R‚ÑÉèÅd󚪒á ,Æów“5 ,¨kaGz©·Q€xH3øbìÀÍžôéf!“%š§7³>’ä³[›…Ôã¶Pj²DÏfD{¿…¸yp4¯ a#˜Õ˜.£%jGÄm«Ag¬dWÓ¿i Hä¨ôåDº·þ´â½šäC:ö+±mm/‘*׎}r±ëÃ[˜Í9¥›…@¤#jÆ!0H…þOm—j>Ižþ–¶p¶èi{&s•ûÛ”âvcÒ“´ì1ÉXYMÞöhYÚJx?ùWÖ£äæQI;Zö€c×$ßazɇ§i¡kܦ°X»½Èõ©ÝÖwêÍWUãis»„dÿšæë¤µ«\ݤ—"íÜ¢7fƒÓÍûÅ]PJ”e#ýšl§É@’N)V“Žv=å4o¨ìÖ=I‘¬4zŹ"A‰ž/S²Š @ë’s«äþªIçÄBù`j3‚%F Ý ~MF²ôË›ì7°@.@ã‹„’ ý&Ñn:iI…~ܘP‹ WŠBÇ,ÄMv™OÃ|–L´‰"A9¸¢Ô±î`ô…¾èôkŠ. ¤"O÷9]¨H’ª·_¥NÒTÀP ɼéì£äÅ´8ЉM&x`™Y7‹­‡nVÝÌŒBÀ½3J5Ÿè·„–Å›ÛùB¨““]´b|íà§Þ˜lái‹”aü²/W¹¨Dðh*c^¹VÓÁ¾8ÎQäøÑ¥CœsèUÌÕ°0@gbUˆû3¶ÿSî3»ÑÀޯʿ¶êÙ|›zòtŠÙδ'1y\Рý ›U‘÷_w?| În©\®šGöçÙN.S&Hg`u#™ôÝ=9.ÄM€0Ø‚/± ˜£êìA¼€Çç$³ç»Á‡CÅ!v¦H&á‰ð• M2¤ø’²îˆHÒ”XÜô „#²$”,Ï¢†ˆ&¢ôƒL‡Ã/åDH˜z æÊÛ\Z´bå¡Cƒ˜£q»·h)JØ÷êÙøÔ>`@°´ó…u˜™/UÁß0—á¾Eiå¹¼|{/Äs&QЄ±Ë‘ã`–!е‡Ï9ÄæÖrM`—â鬹¥åÌ[di!øöÊÊz'Þ4¥Uã ô“ei Òè{Ž4­ÛÙw¯–4â^º»Â½×´#‚T<W̹½*¶²áäLšÑÝv0w#vÖ™M€£È´£ˆ6"˜Q ¹¬}™«ˆ&ä4!Óö„š¯ê¦­9½Aà”Ëd·Ý¾Þ5_ ªË­ªÉiëØÏŸµÕR¼Þ@‚Â’®ö³êøüi#7Nùe—0Mt×aÏë o…¿á­ôúñ®ò——(Fê›/`ê6ü8›Ÿ¦èÊЀ¸NÛß’±ÕÊËŽ¸ü …)Œ™gu¾BS)À¿`ò»ù§† æó³øI aZ`5‹…n/ÐLbl²«F¨ßàºP“Âz¦±_‘;ÍLNÚpý ¬ÝÔ²Â`á# ¬Ùïз\3Õ¼àGP¬Â1]µQ¦Ò6O3‰(°ûgÜÌa.…÷­ôìÙµ`µtŒ`¹iaÚ‡‹…š²…4&›fjtEL§¢ŒÉ{qÉÑüözöÖH–$bRk¥õþXðæã£¢ô£'Ri,| ?}ô˜LUf.ÆÝÝôŠå°%û»”g˜6½Ó‰Z¾…¸;ÄwVÔÜEÈŽ ñUĨ"•jþ¹Œ ƒ7ª‹ó8s0‹Ÿ›sïêµtÔD‚Ë„ê4:h&íŒ*ÓbÚè ø “x›4R†¶eºØœ»Q›Ó´q¢›ì“®×ÁUlâ¹WlQ“È®( äå9!>©†³Ÿö§’›e‹q âÏʺ ³É6ʇ|º›5ƒÆ˜ãuÜÒ s8áÄ?ÊqH1]:EªRéxðåŽ8ÓÃñ¬ÃFX,‚4¤l¦AÂSëær ™5mjO‡òY¦3,Ýš¨dÐq’”¬Ð³®ÈéØQ.+Fi^oÀu¦² Q½qM#ýˆ›Ù+‚F…pu>9 ÔæbÐ8 dºÈNw˜0 gQ w˜ÀÂ#µÁ„½ê;¶ù+ %ÆýgÅ0ú7›ÕÔŒ|4 t¶¶@¶`¡îq“e¿¶W^çaql«Eå)ˆ£Ó¸Ýº›øŠ{Éf‹©:ª¹!Á³›5» §Ð™gLšš +=ê¸7öoûÜXá¦ÍØåDº€° {*š†¶–\Œ©¢E3X¬r?].¤îÓ¥L®gÈ·Û¢ mÿÏaû’—zÆ1‚!Ÿyfc*Ùð˜Þ˜B¿¹1𳦢¾c¸ –ÌíÃN©•Ž’›àN“ `Ï7ó™p¾7Cn׸gÚ]yÆ/ÒÉÈÔ$Õ¯[ŽÌì¾”ˆè*gv—{™åZ´Òªâ“;¾ MbOÁèF*÷ðåæn‚H„Ä?”]ÎT€ צ g÷&…pcðƒéÚ4 Y„O5ŒA0Ü›ŽÙ¯›Lˆ~^È–‹6’½›qI颈ãÃýAøû"¤làwØ,@ŒÛ69´Ïî— Åò]Ìn—­DH*»“÷"j\gsú^H{`«¨ˆôÖÙ¶þ§2õîl> Ìsæ5÷ô…ÁÆ4W¿ÓüU´ÞX´e͘µ¹^®J¬«®¯ÆIÈ]2™”>n@Ø­³²{½Ø4ü>®*+ú´a²t<3Ö= d€Èþ‰ºªkΪÝf[®R´ lkÓZú lk](-S44 ÜÖ‡ˆáïº1­&+–­ÅãnûÎÑc‚­£ëʽb`²<£ïyU*†Ñ]7\,Å$4›µÞø¼MïB§ß÷hÕ5ˆNµ÷Œ EË5ûͪ ·ÅTRÐ)*˜»qÎb)^FvG¸$g”EùFìG±Š.á‘»êpé3íœâ‹‡0pz'w4 ‡K|¡mIÒF{8)]½ž-UDûfÛAtS‰ËL‚˜á6¹°µK{4 6ã‹FKˆuª) —Ö…ûô<Íâds؈™ög¬ÆÃ9À#â_ÎW·s@†-êY‚?oÃý˜iÿ.ÁLÿwÛ9`·ÂÝJ+á±ïf3(ïÍ1à†ÈÛÈÍ1€ÈÍ1 w³FÝŽDnŽût ÈX 7Ç€ CËÃ1 #ÈýÍ1 #ÈýÍ1 #ÊýÍ1 #ÑÍ1 wÙ¹nÇ€Œ$7Ç€Ìßǀ̸ó§c@î´Ç€ÌÀ>§c@†çÍ1 ÷ÒïŽßß–ØîŽ¡¿nŽÑÌNÇ€ŒÏOÇ€Œ;7Ç€ ¿½›c@n’.Ç€ ó¹›c@f˜ÝË1 ÃÈít Èøåæa³ys XH8˜¢ât `>Š›c€%ÑÚŽÌ=qs à68<ÖåÀtX§cÓ¦Ü<Öeo™B.7&ž¸9xʜˀ߲FÜ€|w `ú¥›c³FÄ;ïŽLüt:0YÔÍ1€¹OÇ&‘¸90‹ÄÍ1 ãRææÀ´§c“DœŽë”4îŽÌäp:dæ@;2=¯Ç€ Vs ÈH¨u3Ì0@?2n o޹(¿Èå‹2\ŽƧc@Îfw²r¶`ÈÛ1 CKq:d\QŽšìÓ1 gsÖÀå›cÀúÍ1 ³RÞŽ¹Ø¥¡;ä¢$Wæ Úå@â}s rs x&ð¿A:ÉwÇ"7Ç"§c@Æê;r×í×å@©çæiáæ¯ðæ@áéæ÷ðæ™1ïp È]öh—cÀÓâÍ1€’ÜÍ1`-²xw XH»;Pj<2(À黂™_Ž”`OÇJ½§cÀž·cåö›c@†¾ææ»9mÇ€ )ÿt ÈÃ~Ü1 C¿t:ä¡cÈ凬ž?̽g;äaþ=î‘íæ‡ìj.Ç€Œ ˆ›c@f‚·Ã1 Y^ŽyÈvìr È£ö»c@† ïæq?rs ÈPâÞ’nŽnŽy˜·¢;, \Žxº;92ô 7Ç€1]‘›c‘›cÀͤ£œ›cÀ ±r Žžó~‚ý"„§Ê¸Ó-Oõa¸"‰ pkbIʦ/n†-ïÚ”¹ãð;‚ ¶°œ¼3Ò)š8t–)n(Œüˆ¶Ôüä0‚§ÞdJÆåˆ%¨rmž½“E<[âD…Æîs'Ñìr—^^=f±TS_1£Ýh=,Å·Q GeKG=bëŒÌý»ò×Q8ñ[@žD(‹´zd´K”#Æ>Šð´‚P˜ÓŸy/ñ*–§Ô좦åûlë¹ô$4ö˜évÚ½òíY›ß‘íA¸Î©U:¥ãœÊüeI‚•î’å`]Û;8Ö¹Ó_š×u-žÆ|H¨Yµª§Üú.IÂ2*7$l±ªg3Yb'Gžæ¥•ß•Q“}…áèÅb² Îk,fgwEesP8s;Ë)ÃSz]e'œ÷öäæM¾ÎKìÔÑ¢€-É8§x Æ=.0+5ÅDʲ³Ë.ø¶u¦±aˆC§“´U<¼ÂÖuÖ.;š"¦>›Ñ`Û˃OçìK(ïø‰¾Ì賸—"­½g²Ô¸sZnŽàûv2ÞÍ•œƒ‰Å™ò`˜XXÍÜÒ­ÑiVò(¯›˾}ï®»šóÌÆØ=ii Ãür! ty¾$PévyLMæ*þüùSbØÓë…*ÍÝ.ÀŸ­ FG1DçH/ÃYƒ=£kƒ¿±[m<ôÂÀ: åŽo4Æ9úVÅ®wÍö|õÍ_ð–{ûYU}«R¡îæ}ôìù蛿±Ûh<ôâ¡oCÒ­oLawô­(§Å®Ùž¯¾ù Þr/`?Œ4²Ž]€r]5tŒÝ{c·Ñ xè…÷M´)££úæÈ¢š·®Ñ•ÌaÕœô»žÙ·µYçõ†7ÝKØÏªãèO)ýe—ÐIßwzdßúŽ$½~÷&úçøüñºx±^¾ÀqÓbëy΀ IÝùøW U†ÍW€ÁǺޭŠ{„&ü²I,Xá]|¿iϺûF¼®ŸVö÷ÌBöÛ\rÌr¦ä[e!Þèe𱮯Ε}yÌÕE,|£‹ï6í¹CGc?˜«¿¸ìªèCÇ\rÌÕŽ–{}õâÞqëúê\Ù—Ç\ýPÌÂ7ºø~Óž;t5öƒ¹ú‹Ëþž¹‚‚û¾¯ 9æ ‡÷ûÂøñFà ã¾ÀvÉ_™+ûò˜«]ÖÌÕÑÅ÷›öÜ¡«±ÌÕ_\ö7ÌUìæÒKÉTvM¶{K7;f‡¢¢%îJ•Ú[£XZ¦' –]Š’³=ÔôntÉ>¬þ™,*Xr¹ß7|óL½ÑÁ7šöÔúç¶>OÔO+ú[æ ,> '£ªb¾§A–~HÛVéÛŽ(X éT¨­nD”üË»ç·-Árÿy:QKX%Œ¸cVnN‰e±XV´ÞÛ©Zæñbâ]A„2É7ÙÃ`Ÿ¯‘üë²T€…Áì–'ú@†Uµ‘‘LL2×9˜ï§{¹CŽ|WÕ3ïæY@¼ÙºmŸï^2pkÑ@Xø…`Ê€âÞúIïtÙå»|M,õI¾vÒ笨ÐWÊõU`¯c†ßÁÄ)’öï Š¤lÒ&¡†-8Ð-»õŽëÓʦß­3{Þ&ÏKüi<­ù74f?§àoÒkàKë±k¡w‘n®Ú*ܱú’"Tì„ÖÏ@UŠùTݽô^ÍÇ[Ý¥bvž#Y@²%­ôØ@´ôÒè2ÏÍW8%4O?ì+îJò¿…Ã&ÖºW¸FY ¿ÊËE‡ ¹_î»]EAgMFö^ò¢p…<¿ZTCxà ‚9ó×Û„#ûWÛ÷ޝ·iQŽw âÚ>ÜвÜëþ×—‚ü®c ‘À‹n<¼´Õýƒ±Aß^ Œ@\¼»¨¶Žó£õIÁ2|u}ÂÇi^Þþ 6†>>p[`pg¨>Ë3'ý¦„oLé1ìû·‡eÏd‘N(FÂjt4ùïˆù*H±æLŽò_ýmkT(ñ½ÎüG’¡÷’dÆ^àŒýGžÌyix˜üã—OõËÿò‡_×ì!#ý/ÿõ¿.öÏðþËŸÿ°ˆ$¼ç/ÿ ð›ÆH¿üÞ­ÎùË_ÿá×ÂH–í—r½ü?þáW(Iý寻iñÚ{Éÿûõ²*YKºž/|AkWä_þáÿF`hñ—A¹ˆ·ò/{4ÓÛ6Ê/ÿ׫ä–Þ©íwµr¶á³ÅÍZ–p†Ì©õ—Ïüg›!Œ´–Wž—tƳÝGNø¿9Jÿ{Ô¿¶A˜?2$sÜ~ùgÀ½/V1n};[{´êíÁú—?ü—?þoØQk”ÇZ[üÓZLÿpûŠš×öÜÐð+Öÿ\b¹­ƒ˜æ®,×b•µ–œÙ)fñó—?°WN}wpmÊñ˯đb¢Á¿z‹ÿ¨5ªáç¨ý=×íÿq æ{syŽæj\ÑN·Á<UTz?‡èlü?£ P‘Ž‘C?BK¾¸o¬%‹,u”‡k¸¯úcHÿo¬nßÛq¶ú¡ö½NþáÍõp¾ý߯²¼r T‚Ê+_þM qþ¿° q_¾· Ÿ0ཥÿ÷ÇÒ?wÞßÍþ3ê„ÈÝù×U8r)Î¾Þæ>€šbVß›MoÌàSwÿôq3ˆ”ÙÖö’¦5)ÌÒn[á rÀRìÓÅo•þ·cG›î÷£È³x|ÎýªZר.øLÈøÊÑ%íKÁû¾<7àú‚™\BýˆÈᕦòË9Wì¿àíµˆb~„QxZÍ´/¹ÓŽqoì-€°ác¶Åà†ÕG½ÑгQïûsRÏÂÏJÿQe†9î|徤¹ cy·¦ûžCò%üÿÆÖ˜Ó!õné\«ôq!ì*ÏòިǦ߷hX§9Û¢è1.ÇBþ*mz¯ý÷k•q6ôŸUß´w÷ä}iiÞЃùJó¶7À%øœóx”ñuå—ÿöÆ~Äpi?–®Q{ƒ¯`„†t.ñû„ôÍ´è‚ø/‰ñÆkoÌ“Ükñ·ÿïÖ%øßÚY K[§æÚ„Ö]ßw ýùåS›`küØ¡·wÿon¸Ôîœê¨ü߬ÑeþÅŸA¢EBmo ;þ'ÈùQ=ù${Þ¾S°–¬ˆõZŽ økÇ2ëÏ“¶üýÁžI—öÛ;å=zx²´ÿ³º«©Ù…ÿ͵…L¤TǸU–lú¦ pãQ°Ð›)º¿;Åÿâ/§7Æûœm‘'ã:éß{tñaEC ^Ú[cÄ:ßá ÷9Âȱ½+¿³Oäõ>ºÿþÒÉá&*OdHdä¨õÂ|A؇°Îꦖƒ­J™7U}|*7~“a~ • o¥ÈC&ÆNí§ò+¦ýŒ0„È¿V7’¡o­}—°Ÿ­ŽÏŸ6‚$e}i%0ÅÄ:Û{þŒäjÅ~Ã[i%<öÃC­zB2Ç,ˆxèý‰W¼H¨(³©_îˆôü£¼(ó†]dÄod ê^‰ñE7JÝ/Ì ¿ÊûuH¯JF”0A£€¤î·j‚§²8ÒUr~(#)Þ‚uÕu<¾‚©Uõ;>fCü…÷€^Ú¼‚3€—^Ñ»š!ÔM³ûE#Í æ—  ÌRý6T™X^BÖ<¡*Ü™E¿í,Hß´êZ]Ž(¹XÈ6ÞªN|…ôñªáýPWj6„JpÄW-Ùb`7@œU&ŠÈ6Èý±öÂú‡,"Õ‘]MùVqÌ ú»2œa¹"l›ål‹è+€ÀtÊkU‚²H?î‚$JYïDÞý,$ø;ŠŠÍdfž¿Ž† örtÌ.$V! ºÑ²–u¼#ˆD@•S7ïCUUaæÛ;ŠÉa›YHÒ£îéB£G7sZÍŠ}ÃŒmZ¡2dÂBü* Ù¸¾Â­©*B€øúÂTpº5 0­CŸИm5”LNo@Ð}a¢C8™“Q˜Æ®1øÊÄE A”bF4AçHÄö]ž²‘]Óã¡»™ öåy" &!=®iŽ»ª^ÅaMc˜£ªFº‹Ž)QF”c,i8$D™zbã#œíBx•¶3~ËC ÍÖ T@„-_ˆGkBž Ìd(ctÆÎZHÆÆ¢InCìXtB¹g!e±"µ Ióu(èîÂ3Ò8+f‹q[0¦¡W¢åbÊ`ÞñN´êá™RÜš»Ðzh!É• ¤ƒ€!§šS8tD’‡]ŒˆÒ€ßÐ÷ÆU ::åcp ïÂðý £¸êê>†ì$y𠵈újÀ:/Y™Þ!m„ÅDK*™¦YÜ$…M)¾8¦#üdÇÈ õÈ„©Z:Ca‘ 'Îè(ØH?´qÞ¾i{XMÌS7¼q|qÑûˆµ„dªÍêîz÷ŽzGÁ 26Ù”ƒ#‚ÎB‹/€Ì𢼠D :–`)Y}±CzÀíFʾ!ÒmÚŠºa)Ñbí/ S U?‘h&E ¶õ¦!Q4jmÏJ¶ÒNò’'SÛ, £8@±d˜i.(’”*¦”‘-ƒ„¬XJÇŒ@ìàÐ`Ú1çŽ4ÖHªÑb,y”“³Õ#›<Ñ):‹™F§"RT¤?U8™ >.m<£ ±ª‰Ûoà›‰cj?_„TN¨çu®ÄD˜H°äÜ6VqÛ÷W´e(HOXÅýSP] Ô–2“çGû;ÆÙSÖFc‰k9òk…xGn0L2j(ú ;µ{ð6Ê¡(åÓe¥¤PžfòI›ZsIå´$ uz0|> Màöf£ÑIÃ×*l‰ˆL±ˆaöÆ”°/îž”màล8…дË."Є›«®_¶E‹¬›EMÁlʉP_%†ì¹f•$ ŒE±<+QÛ"¸DM2¤ ©òw%@I §Gv^ô/Ž”¶}£h-Žä"žÙˆ­O³#¡á'Ew³xZ[ T¶à–Ò1`ÉÕ-U5öxBÞ)h*í²bù—‘D­’‘tí&ZãGi' R2šGâä@Ó¨Å<ÙÔ…T¬ÚÔ<\2Î;EÈYÄÎÇs f¨s!/g(;;Qüë§Û!eñØ/B°!€$ 5™@Bw$ñO€‡|Éà!ÅÓ”@4ÁþDÄÓ!96F}„ RæŒ; ñü.õUÞHÁ÷2¸Í¯Ó ]´…‘.NTd¶4mû»¼wK:*Á™¼×l˜¸•$g´5Ë¥YÈýôeÛ½ŒiÛÀàdb Z5ÆôL<<`ñôLfGxÚ˜†t!%Ù¤`Ût;mظD‘ÈmY„¡Ã¸€lÙi2á=å÷iw/p:\|U³“%ÆÀDZ#Ä>¢ÎGqD‰'TŠâz^¢7_©xáêS”lnÙ„´Ô™„Îϲ8ÖSˆæÙƒ´/[ž$³îÏÓÞœoÚÙ1Äê;LÑwõ™`Lj‡àéWí|yPÌU*P®Ùì6¬’…x:B×\.ÁÀsGÄCí/’&²¯$*…Æ^7‘Éü–T2ŒFøEQ}³­+Ä:6¤±ÙW{mÝÕ@ ‘ òØ$xO„2‰µ.U%$ ¬F”H¦3}!äib×ñ ¦¸d:$CéXº(WB ±9Z¶¼¤æôJÐKHüÈ&'‹^q ù@Ò©†YH• º»r6Ð{í$`:ö’ «iɲ86)'„ g8‘!Ìz²±¡«G8ÿ<-5jÝ‹QÆÚ´VU²ô=ðÙ´w´Õ ˜"qM؉xhÅ…tCŠèíBH$¤bjBè=A "‰II¨ï±ã)ß¡ìV©¡´rpÖÃA„‡ù„Ì^‘T:J@HH „±ÈÃWN •*Ï*þJ£x‘Òß™Rå¶WW¾?Öý‚MU4šŒ•3ÇyRBT[iƒ"¬äÎ~Ébó¶ Á–|{'tmi®µ\^墮U„úºçùÂÅÕ½âè{ÕÐŽ‘Éímrm@_ÅÝÊQÀ!T¾M)¾c¬d¹ÖHö5Ûo‰º<28ý“J®¸'»Š`»‰“-Ä"´&¤eâW-Š3‘²§éz Q¢rÊ(’[Î¥ǹ@£E€ß«:zânÙŠ/‘HÆKÄH Hs¿¿£­é }9ã,=I€Îp]BDšÙÎpyø;ësÙ ]©„°Žg‹ljª[H´Õo}¨EZœ}I*% Öxyñ,Ø|‘Ò^Sr‚½R%CÄé‹Tæv¤îµÜ‘ºÿj?¸3ð8’|iË•”ÒNV[–LMUÂò?²$èÝXŽ¥CO–°RRªX‡z’ï™ÊM¡´iÝâðBÔè*âÐÆãäÃ!ÅÁÔOß Ôµuq#Yj6œýöTuªë̤>11.X9³w`x–Û+ íJ„‚F‚v¢Ý‹±•ݪíÅd,}cã\Ð Öý5zˆ»;½"uè – –„¦ Wí4´PºÂ 9h<¬u 5«£Ñ"¹Œ‹RHÞïLi±D×(—à_Uªcqæ³Wšnh¶Êq/êkK‡<áRB&¤ÕÑ)Xû°7ÔAÚ.‚',êFŒéÈ 2K¦âW}¡$¶Å’޾H§ P›"7%Ö²x7ÖŠ9Ü·¬›”¨l¹Q¿BÊWUgRüØð!^Óò±”ð 2ÂÅcád¤ô%À†gîãyð‹Ì½>54¦E#¶&:e¦ƒ5Z6 ‡I›…´&$HPÛ÷€)*ùÅá†3ìF°>–`1HsìÏס€Ç(þ,ÿö«üÝåq+ÀŸ­ŠÏŸ6¦õ† p©ÑkðçõµÁ‘ÝF+à±ßpù‘o˜$Hå $£—D$NPqCtggÞõC ĨXæB$B9¹‹³‰yôë)Bš]ëu©("£ý·ãZ/ÂJ¿óZÚ)"ÁbÙy2"Á”ð8õ…Œà®×TO™’»†ƒ"ò R6ëżއüþ¨;ynÃ[^üHÝ\§Ër ED$¡·ëêu Òûå)ýeDèŸp VÉFuÇgšÉˆ¤pÔ^FSçDfä!›Ã‡ä9Ós4gÝKfŠp)¥ ã‰#ÍÆ¥gŽñ@ÙÂDH¿‘^Ìitá8Ã3¹Ÿx{°·Zþ7ÉnµH#|tº)¢5Rð0LôìOº×ÄÍ—½3ìËãTÀC¥æè¼ù<ž›.÷üöl!L|" ÓCèTzCLþ¬ÞÉVµzc-ÕèM¢´šò×FÞ·á-"?I®R¯§í7mÒþÈœ<]Òœùt+‰Õ–"üÉ8ä9›ú̺BHvÂcH^ŽÂÔÁ<×íN[Šû W;ÊÙ‚64]ùò6/"Oož¦Í"³ S>ð˜$ÈcœNù 2-LWÌõÕ×) 5’]ï[Š˜(mñ/p¶BÝe‡éIBEñ½„Xé`£ŒÏAΟw`ªc¬ë!q1S™šm·1X/φtüŒ‹(¤‚kû‚”86£Lg’ÉG³GìÈð¡NµH+™¼ðR_0PÊ«µWc`/¤éÀL$€½MSèG† à¥0×=±-f~-:ˆ§Èp2éF8ä$$:@b[¥+çxBFÛ‡÷3{ªbðª[P)k оªÆ ‹QCƒ¿SV ¦ñf´eSä:̃·ˆ2ÞÓÁKì6›0«°(Ž´½p*G’f#{]QzN[&àøñ°ªØÝÚ‡ÛÈ„ÇQŠÎ NUÀmLR9=8ŵýÀ†$H›èÅñPdÇv®u°b N3%‚È& áÔíPôÄè)y(¨! ø¨²\{&[Üj®Ë»ˆ$BÊ«…n‘ ”oS¯,D“?V-dˆ ä¤CÔªA·ÝûÒ-V9þS!Ùš(SòwêaMÁC™´¤Ó"ô¸úªé.™z4ÕÕº¬/<Ûg„{/Éq¬N§”0øÒ~>S·ßÀ"»éª¹òëÕ4ö@Dˆ±&«YyA R :D»Î3Ûˆx‚Dâp Hy¶ÁEÕ¹´àk¾eæ‚kFãóºÄMªy$ÙÎl8……&=ˆÖ×póšÙ7"¥)àå&•`Åi}!å bš]Þ)¦ÜÖŠC†eòªîq‚†b]7yÆÕnò¦Êé§Ô+C4%*Y‘¡“}±;ÝH%—–—(0ô)aèH®Å½¥Í¬¨°3°ˆàŒ” ®n„Ô]ƒólÖWr+”¹N2thZËl¨öt Z# ¢2Á>ªnò‚ÊÉÚYÔ%µM¥`)‘Ùì+ÆŽåùLi®D•·.O"ŒeªqM9ÎÒäž1H[ëÁ)ÔïäÊFr'ÏðÇJ†‘oŸö a¦]R¥`;ÞnÀó+,曾ÇÉ!PUl½vDö#(º^›bh‡^›ñ£c?ôÚáè{>ôÚÙù•ëµ#2ٵ󎎲hO‡b;ÂYRï˜b;2ÛÝ8Û’7yŽÞŠm—r/Öˆæ°ÞƒÆß]­½¥àë‚dÅã4p‰ðw,‡V›‘½IW\«-SÔ¥Õ^ˆ2¸Z{!ÚP[­-m´C­Maš¦)®Ö^HâjíˆÜƒBL­M[7_>ܽjm"9jm" ×[­™ô2jmÊò¼jtµ6[Hû×kG$öȇZ;Òù?jm¬:L™ÔùÔl¯qº|tÍv´ÔŠÿÇôÉ^ÄÏ`™Î¶n› €ÞuÛ¾$¶jûzÅUÛ,Äo9“-cõ¦Úæ:!§¿Ži¶…¶j›ë„ôÑUÛ{¡lÕöu¢rÕ6—ß1Õ6Ç3ŒCµÍ1OÇqoŸ°\³Í™s{ɺç[ˆi¶yìªåÐl/Ä4¾®Ù>}8êç·b{/¶­ØÞKô: Ùº¾¤ìöÉ•Ö?]±ÍàHËçætÅ6'Š _Wl“(ðbÙÛ iºXvÅvdbšy(¶b2™·ùwF<ÛuÚ{álvìÌvp©´#HÅK¥‘±õC¥-J†¶Á—u“;ÀViGfâéÜUÚ±+ä×¥ÓfR‡”6—z‡N›«¶´C§íݼĢž»l\©‘2”C©Í1ž§V;"'ä8ÕÚ¾r.µ¶Mð¥ÕvVqiµÉ“¨…w­¶ N—V›¼¢çC«ý¨†¾iµ3Ü£tˆ4­öFL)£®±Ï•äÈÊUi¹ß@ò^T¨„ý¼uÎq­´•°µÖÖŸ?y+Ù­´ûñ zí òú¥×¾×k åÐk/Dº8×kˆíÐkg¸”yèµs`"ëK­A‡øŠ«µR€íßjí ‚]­AA„¨nS.O.„1W/½vÍÚõÚ93(׸^;Ã/¡çC¯Cí1M¯aQOyÒÛ3¶Û ‘Å™ëµ3l(º^;C GÕŒËT ‡R;3Ê¡ÓÎFwÝuÚ gš|Z„%X ÓJë²h’°¶Nûº6¥6/í¨Yöû{ºäJ2ýº(KÙ¸µÚûžq«µ¯ËpWkÓ*EJaSk_ö®Ö¦ÉIˆ‡Z›&ä„vˆ¾Ì . H ¸€(c×P'³ë¼#L|Câëý£Þ%œ¸Z;ÁžŒ«µÓh¾{³©@o8É-á>¥çC­àüO½vY¦„[¯F–+Ž_ù# 6o,L­è€&®ÖNPéPîjí„[q( ±Jí„Tಠ|”¹ã¥ÔNŒÍÔ¥vêÙn~÷¥78©n´¥ÔN`ôºˆn@íÝ¥v‚”IwWj37#UÄ®ÔN<ÑÔC©Ú0“¼}9L¹¸ZíÔºÓI«s¬ßµÚ Ébý®ÕN­šá³kµSÓB¸´Ú$Ä$Ý®ÕNÌœ­v­µ÷®HÈ\O£¼„ÄìñTk'ĺýPk'ƃ=´Úâ©ÖNM:ƒK­íAȘ‡6–íˆr}•BRž‰Q£É0±ÑùRâ¿5ïèI ºsÞJ—n†„‹óð²Z±C:A"éýz §¹»Î·v®‚Yñ—;`&c‰ž6døfV¦ðrw¸Žt}Õƒ¥ cú”)[B­U좒%‘d‡ÌtbÔîØÖK8G­ž¹=Õ»%g#ªª,KePÜÞ¡åG(¶.Čʉp£¸áùU ¼ãQý Fs„Æp Ú-ÄGÉ­ÓF6_.¥Q³žO3ˆ‰ÄHC$ylD>:àE²½°q§lt(}U£S¸$ïŸP›Ûa-ò2í‚Êèb2¿1h9†S«Îý>6"}7hDéŽÐ·ÌÕièö…&¸©8 ©Q|F£|YNçjal*gÛx{džËc°k"ÔÕº90’×à¶™L `&LÑûÄb¶Ýj·W ^ ºæ ,qû?~µ ³F’ÏÕe„ÜÓõÂ{¶4ú •î|%Ù­¶ä<›Ojþ«ËÝ3 .\ëÞ†v)Òùˆ¹x^HOrK¼ Þ–€»òîö*»#›ÓîÖ°Høìú°‹xÛ>ûÙžr§3Þu”I~Ñé㤊Ç͸”BÎKsêÀ+¿L¸ÎVšÎÛTFº1Û§Ÿ_rÖWˆ7Cw@æ6í“aŒÌ¼‘Ô0˜Àbç¦bÌe;ÐòÚ$ ÉíYdRv3Ãã yÔj¥Ü¡á2LΖ³¹üBh«YìFŽP´ÐZ²$?óÔ ªàí¯¯*¯4ÈnbsÅÔúºŸk:îŸöÎk.`šƒô.ÕUH¬¹™*ÊÎ~Þº‘ES®À}Ö;Éæ"gxtm™ûÐYäwÆ"ú¨Sq7Í!8”*Ñ>óÿõ!§ Ew$W|œ'wÒ´ãaIrßÏvƒÌÙå]°s ”TÂѼµiTñl×Å5ˆåsÙ;æ{§KAíG7®4y)›–\í8}2ŠÒ×QNé¶^IýËFì¢Õ6B6Âî—±\ö2eÏ{Ù›Ëä"õ¹øfé]¤¾Ú†H×:×£kñ…ä¬gÓ3$'õçJ{™·Û¦®HEdÚ 2Ä2’élѯ3<Ç£ùr9ŽÙÁ¾44Á6r+Æf$i­e#ÝLÍp#3/)éº;jqÚoŠˆXï´Ÿˆèztújû5ÖØ-ð…ŒàDÎËEÊ]"lá>™Þdï¸5yVßt¼ê Á¼½1™¾}uO­AÓröá&ý7ÃÎ=x$8¾.,9õrú‰æŠDÁW²h=—øCñíµ‘ªiýíSxù»O yshô%' 'x4Ó}|öp¶ßÚß]o)|Î?½\¶¬ Áj\ƒ~—ŲHŠsòºŽˆ/ûËøÃÿξÀÒ«£ë lÛ¹öã¯Tj®3ôÿôé—€Wî'C„¡¥Ê¤Ìâg`ÞÔùmÊov½åß]o}gÖ3φ?؇¼ûð A‹>e˜ÝÉÏ0@¿zÀ|Hi#¿H·æõÕGH %Û{¨kg`?–X~¦vCа+¢›ež^Üoß•é­N¾ß¸ç.]Íőޮ¶þ´â¿©KŸ² ô£ºE?e|´‹º¯nô>€xÜb]Ö臊>š¯µì§,Ä|Â\Aò#öFßmÛS¾2[?©ìÓÆHtv+/Ðs€¶¨ûïg‚ß$¯“Všð³l¦ û3+ƒ–ì3ƒ,ÌÇ­¶±õ öŽëc“úd^vuGu—‹¿³uÇw0kªguÇgU1à¥[¼™ÂLôVm¿IQÒ1r™ažÊqvbœŽtÜþÊnÞøêzeÛfº{ÜöW»·&h¼ve±f÷áá½ïL¤;Æmçã–i¬ßüì7o&Í®J}³ºß |ö˜#ƒÙ΀·" Æqèä=¶=[H|þüÿtw-ÍuÝ6xŸæGd)w"Íáë<ºk;ÓnšÉ&»¬j9¶;±ìÄΣî¯/ ÀCž{%Eq{w"Å $@qHÀ¦KN· O®R2t?(“UtvS» 2ü‚™àÌ$S0RÜÒù)Ùk=i=_s§k¥ª+-¾ö[ÊJ4iQ8gRÄ”h&º*ZI¨]PY‰&-„ÇBÁJagíÂDƒi Y®Å¸#¾‡[kñ ®|;è,ûƒ¡Ç$e8‡vt§7˜¶r£ý^ŠØ´çš o>”ßo&Ô¨ ?`¸sȬ 8i—)˜™2¹|Ò’H—¶*Zñ¤çR®¢IƒÂ¹2v¡dÃst­ |µ*+Ѥ³X~oe°SvQ‚áâùçkMw¸S5ãQðTî„Èäą̊”oé°£WnQŽq„—©ÛÏT \ÁS ЩQí‚Ê·ŸU&¸…°M¬´8^¨h4mtYRÕÐ" 3^Ô@úV=aVH<6 X¥´ 'ƒ+)…©5¨Q•)\í‚U²2Á-˜ÉBÀJQ¦í2E³Ó–0¡OËF·ÈV²ðˆ¦–ÊZ6nÁœ3)cZ6¼ü¬˜ñæÍÚ•µlÜB˜$VŠfÚ.K4³HV­$åXNŒ²É½ZIJY­$Ò¢¬BËÔ‡ZIë u%A wS]PY­$ÒBØ&V »H^˜hfÚ¥íÜéL1aªå@Xú-e%š´(Œ3)bJ²rÅY%@Peí‚ÊJ4iÁ<2+…¶ ÍNiÙè¨Ò¥K”kÏTÖÂq æ)HûÐÒÑ!S¥@ðTíƒ/b¯\p á²P°r4wiÂÙ©£-žŽT²ËkÇTÖÂq f½à"õ e#à³ £€Ú•µlÜB¸.¬ÍÄ]–hfÚ$"U5Q ÙpÖ¼1ŽH…5iÁ©\…€K¼Xk6ö¬ }óÒǤ• nÁ<2+…¶ ÍN› ?µÁ![°éXÐa[0ë…€ý©5ųfÛ‘.ý&¸…ðX(X)ši»,ÑhÚàù/ønÍ»Z÷KzöD&æ2^±Ëeè6Ò´ˆtý-à"upû™ª™1ÿVà—<µ,B{fÿ_.¿6ü—ùº0™ÔDáFI Eß9‘Š?/â>¹\¥ª-ˆéJAÊØE r¨à”ªRØÕA.T‘øÄÿÎð®'é2äyM'Ræã ÂSkŸ pvªø PmN#<ÛFiŒðÀfQ!è~TâÖ n«™}ž@õQ \º•‰ÀEQ ?)ùöêoð¶ [ræIîWý‡µí³Ù‚÷)]¥ÚøOÏ®ÜVâÂÕ_s­ŸBØý6¸~m[½~æÓàðTYÒ•/‹ì‚M.SC†r”ÃÏx#Ëšš~¨^÷¨ÄÒÍŸ+2?«—ÁGŠ¿(fêÏw¤ÏÞ¼bþ‚ÏӭǺÿlýªoý‚ûͳë¾Zpéêk¨^§Ù‡dºÑÛ¤.·ÌÞ/ô@úºE͇~|ý»gð.:|%h¾6ÿÆÀEÛöMNõ„==S¼Ù×Üßý kï…{+VQ¿‚º£2´káêyŒpvÍ’]Ãý)9°ÿäý@•ß™ÆÎq@¸…†³¢|OÓÓ˜Ëj^u'7`sL¹5èŒ þ´ .ÍÄ\~ä~+•0s´Ý¼uævMm+1NfÑ ÕåTô¨÷´ú”v¶¸À…S1Û"H–EC €J;oU/·Ïð5ãÍ›!{ÇÌ“¸„ûŽšJvæ°°©œ1pÍJ·À5ÆVΑÍyM—(Ôå2AÁ/sæ^Í¿#™Ï̽Qÿ/äR&˜ÇÇjhvYÔ9ùŽF# ªÎ|L~@šÌ¨HmÍè×gøë4û-(nKÊs\%»ô~™9Œ@Û™åEÓÐKá÷¢­žÀ%É!îV¸=؇ÎR®µFsø’<ÎOcFpgs–²Ñ¸ÍÒ‡#;Gâj†çŸýÕ÷'êfrmk¼v-ÀîqB°¼ Eøþ=kÔ7uëï¬<ú‡!EaÔ­ <¼ë`ôÈð[½É¨ÒìiÖò¯Bo¦NÚ7jï{bfñ2•s1Þ™J4¨[eP½©ô¸¥ÃÃßëċ頜h9y&qõ6 )Ë¢eûï¨RÚ²”éÎl³¾ënGÙº"ÔÍigpÃ\zuÚùÒ¾cÃP™Âlª'wÏàþ€Õû¼¸ÜáçÀÑÐÓÓú/µ9èa¿-˜¸±‡i|+xæ ØÈ·j¶–ìöÙ#6ñC·Gïw}S8ÏÏÀk¢é]œÐÅkƒ`г =/ê˜,?úï·Ä¾Ë˱µ]iñ¹ÚÞª¿w.r¦’Vmto‰ç­Yà_Žmª8g$€ÝUÎ[«ánqð‚÷ŽwãÊiS{M¿›2/Z µ!uvžÅM°“]ý[™Vö﨟5ºÆiFó^­Á(^ßÀïà©?¯)kY€î]ÒcH_‰ ‡½ør¿ü´q˜îQë„füKx÷áÈþp`óÄ¿µÕ"å¯ewK6£ŠhžÂXÉ›ôø£Ù=>ÐDº¼‰éèD²íÇYƒ’¾ªÕe𔽆¤&ƒŠË¡AÑ6š¦˜½ªk¼Äíý'¸üÈu-ZÖC¸Ýo[;ÐùwVÓB€»C?%£–GE÷Ü?LÜBî£ÿâ›|öÍ¿=gT‡Ž‚øÕƒ¨\ªb'`ºYÜ|*´nçæ¾A3+ýM]™`8ðµ"ödý;žÑÃmÌéwã‡ýdïbî{CWðDº¿ôqûâhwa!æ‹ðJ€û„ªŽœgu:ô¢¶½>¶VJ¬^M˜Ôw‘N¼ˆ[ÞÛâÁõR‰7€´p‘ºY²ß²\ ã©*˜EÂjÖð{ 8/Q2¼P­­‡Së_ÑÐ.óýOL‡ðªÑù¸ÂÕå®Ùk)ÆŽÙW“û%)Ë4ûÞ²˜=?v¾QL Çu(û¥jÐßdîhè'w`)øk4 ±"\bi’ÎÐAÈO¶¶›Ücc)4ì½§n6ïŽ7 ¦I”aÍŒï0\½¦‰š€—êûíPÖUHx¤ÃbXà -à˜¢»`¾1:ÛÂ+ÕÎðúoúÝ´­|0g‡f´üa$ìâ>®…; Õrkö²Ç¿Á;rɳì¤Å{û‘¦ÆpŒ¦â@O^ã@- Õ,ªtÒ§ G‹ó\Qב+Ÿ…ŸŠlÁsá=éïçâïRh<¨žóÜv|Ò33XFÇ!pbéàq2ßJãcxËhýî,Î=Ó¾ƒ ð€B:{†Eöïç¡3ù±üÎûžÛK‹&¹½Û©5A;ì¸>4gnÊC‡¤ÜÒå<÷?Ê㤔e•pæ= ñâƒÎgOꉘ<¿~)¡Ù´ÅÙž=¨R¡©@ÔûNÿ˜ERS@>  °-m-äü Ž¯¢Bul‚ Kðb›pàó°õè…·`wâ º¦û@ëå¡ÑˆÂ´ú(ƒÚ´>LNžÑc»ŒÒã`Ͱ°Âíô# ‡ƒ × ¯'aö#©´AÞ ¾- l2c$gçD Y{:Þì¿(êæ”¹w’@ZÜìµIM‡®–N t¶àÙÍnjP øÌcŸ:P3¼6<£{  hû5îv+x0¹YÉT.ŽöEš#xÒ.µÑ0 ÃÒͪ³#eµH÷sMà釹Õf|3î$í-G$÷2ÒV¿àùÃõ„~µçJF¿´¡€¶¼Í[Ëœ—Þ¤"ÇáI'tH²Rm7_@²qœ×'ÉDi4êl[J)7'Ä8ò‘ô²4XÿÀÙ—%ÉÉ-;… u»¾I ‰wØÛ`ì ¯ÛÄãäILEš–þiÇ Kñ FFrÖk{IµÎŸ8<Íc0¥¡÷„t·ó2‘Ë >|¹Ž)s“íýëb$ð³Wpò0k¤8 T(õkŒ9iø¹ï=©ZÉ4Y_pmº ”ý¥HuþŽ‚S4ŸÆà,¤û‡1ðBMìÄì\|QÜ›æƒôFÓçjv0;0$ƒ  úaÐÐ žœxßd™¼²ü/$ʵd'É ~HÊŒêþŽR¢4)3ޏlÝå®5¿QFW tŠ,62yb\ R‚w;×(ÀsaÛÓ'BDüॻÒÖ(õûÚò¡™2sgæÛóûfÊ|ÊüS©2tnü,g1g&Í\ãÍû¾=Êø ´ò™™4wÂPtFc%\É0­¢@­ó‡Zë~±W?œ;/ŸxDZQƒWDxºl ÖUF ovÀwá37ݯ“i™kÒîv׬èj/‚Ž\Ç’8 àF¯˜ËÏp……ò…scó…µ@Y}h5Z³~$}\qma}Ôç^„Ð$Që•Ú4D?ÁÉÁcRlwŸ1m[ŒÖŽÇfå'JHÙÎÏáäåø ‡sg͆á–×ËáÙ¥`sxÌþetžN»…‘ó—(wî߸Ƿ:w'-W3õˆ_WåÅhqß¹\ýTÒO´ÈcÛÐKJ8†d‘Ïx2WçI3½òJ•wåŸ%‰|Ù–ÆËß9j.÷{< ßÈÒ´†7éVRÿЇ> O,t"Š@Ýb^Ó&!Hr9fMæÓ¥H|»³—`×#°u¼¿[w^<Ž»):*Ø>r~u=ˆðá"¼*š#õ±pg5ÚÜHŸKÓÞ;7às‚.ÃoPôÞ¥)¶ÀÜ qÛêš!žlÖ=òd6X+Ùjv£ ·0ùqîÂG§AÒ~Ô«µ^Môð¬L-ï»Uµ|0(¤KêIgMçUw 8ÇUd`«Ü/ +—îiWê¢g@øcùÝÚC@ÚÅjä:hÒs: 8:bh|Mx´2žøŽÍ BBx¾Þ§{çÂïüêŽR»,âæ6Ü^à¡Ë°ÿ´_:S'“I7>­³Å´ÍÚ¬sHF~Ÿö@?ž÷þ€ØŠ>oÂVÄQBîW£Ÿ–ÍÑA—‡\a7ÜÜv®\‡qp½OB§LdÓŸÌB6e:nw¿Âäð+ÀKöž~·-c„®GdÏâA §-~òؼš˜uÊf‘5Iyl_=CO2‰¯oŽnJø´¦£ã2xÌ}r¢3i˜1§Eï$‰C“pæíÀI{(Ê<)?î†È$üöàäéNÀ3©€úó¶ÃnÅ/E^Ö°%mí†áýï‹ìç¥?R“;Éãp )rê–¯èÈ)ìì~³ÈKéVŸ¬6z¯X»ÐÛC3FàTwuOž1’»‰c×Ïf€fáݬw³$÷ºKOÃ#üm ÇëëîŒQX-ÂAq‘»I“¥÷ÑZ>¸_“‘µãÅ¢Õì§ÅõÂalŒ“nfç†é]Àú5øfŠ™Íè”X‰„лþDbŸýÆ[~9»ì?P<­bø…»Cìó ˜‚kUç›ÅÁð;Êmã¼W  vm‹N 2Oƒò†µIµ ïæÃ>;ÿxfýPDd}è'ú3s ÄäìÊ);®j‡ŸÕû¼e®#´…óƒá)ƒpâHĺsÐG\FÊÊèOœkäÉr1È™XcámJ´¶_áÞ—k37xv<ö[IPWåOh^Þrÿ/.…ƒendstream endobj 587 0 obj <> stream xœÄ½I³fÉq%¶OÓxË,ë1桵’ZR›ÉÔ ”Œf¹«04™Y !è×+Ž»¸ßð2(4ÉòyÝïÞ˜}:~â·/á5¾ü¿ýï·ßýÍOR/¿úݻ߾‹)÷×_j™éuö—œk‰9ל^~øÅËß¿|ÿ.¾¦:g~ùÃ;yÏËOþË»8[y é¥Åºþkù¸%¡/ÉK!¾¶²þ í5Í—ØÖß9ûßß¾‹eIäöDZ•_è ø§}áÛw.IY^å/Hs½ ìOØßëlŸ`ù†›^|ûî×ï~úîg/鵯9êK­uÖúòþ¯ïÞ¥—~{¯±­÷Œþ¥÷‡äåƒü‰·×ªõ׆úÚ% åµ •´×!’ôê‚X!¯-©¤¾æ¸$½¿®éIyxq/¯½¨$½ö ÉêQTÉúZÓÖ'µ9q¾¢©-£ "XýÃ#u¼N{¤¾bÜjYs¯‚üК2_«~)†×Œ×”ò:TÖd~¦u!äW¼6¯ÖI·Ûœ¯O¤ùš‡JêëZqK²f"ª$¼BÇkÑ­Q“¡ ­„¤×ޝ•£i«»ÝÁúÔVïæ’Ä™ñIHêú$³)’²æ¥C’^£¾¹¬m‚E·†XF¸å5ž‚ôª­Y“P±dÚ°!_?ÇÎY’jCÞVK§<“0Dùæ’ý3aÌÖº“U³$urµ¯eUR0KRñz‘DŒ£H¤qu¬/ãïõ¤¾e­¸5®Éš‚v•ĵ¼õ-Q_Ó§,ÆSÒ^ÇU°ÚÍ#kYׂًƒd-0kM2ÁšSéSÆ „¤®ÕÁoíäz¸È[ÞI:àëƒv»¬QÄø–Õm}q®:Kë¿mÍÚOíË> k‘ËÖÎYc]ëû ®µô5ëtIÁÚ“C;,®)­ÒÀ²Æë3bJåÅ¥Wìù1¥òž²:Þð«5«ºªK ¯uu+Ìn «Tœlx½üµÞÄ_K±w•$ÃK²ÆJŸYs‚d-ö¡_^k1ËYô\)8Wðw°­RR~-8d[ÃÿB²†?Y+±èß»+¬…§ß²ô— Úþ+aÈAÖ™Øô3¡Ê™Ö”èÌ–µ±#Ú¶¦Ä¾³6^•g¸IóZѹ°¶”ö(¯S¸ãÍÐ.öL•õrÓæäµè1×aͰöoE—Ö!R%¢72Œ¼Æ‹<¬¹nƒ’6U"ùS 9×Á‘íw; èY%É%r:­ý%ÉN\Ða?J\DK’p’·õ¨ ºô;­¢uJ0·©ÅW{íª,%“È#k¯LΫ„‘¹LkÈç<kåtmYV—IªœÀ«jµsRxãÒ¥X¸:×ÃêL3W gp(CÃÚÚ«º ÖZ–NœãÕÑyDìèu¨™í³] À=z±m]%âËhí2Krgk¥ýkYVï"ÁöAZ}l_.‡S½ŸuÆë¡P'Lò%hæüT¡x«Úõ"Éê^¬]¨FHºbÒ2A‹™Õ¦Ê–^MnEËé¸Ö¢ªkÔRºR§ªß^(o§ÛQ‚׈V_–_Üt8S°-†Vs‰Ìø†„g–îV}‡®£}ëLh‘£SªJöŽ«`ÊIœÖh.RP sk~L]¾:_ÁlŠuØ$_Xbªšhîî,pÄóXÑ×§˜õCŽ [ÂANðJ·Gz½8hºw¢º,Ö 1zs7I ,Šiý4Oji½Ô¹, ¸Öao‡F´ÊkŽ!õrúyî\­U<&'OÔÉÒ zÌb~ƒy~Ñž‰æêMz&K"ji­Ûq¸[„ÍfN-[[n±ìOé"=œ [ÚÛ|ÁªŰ<òh=WÏn ª¹ª*æãwN—„§‚šžx±†pˆ´V¿ös©#9Ñ!1{!VÓwÉ ¸ôýlñZäâÚãG¶rÖq+þª÷a`º–pè_}òuèÛêZÿc`©áhÏ4 @‘ª:i°Š§Ú`j68‹èDj¦`¶ÄZÿUfÄbI¤[)ñxË¢²–$ÒœZí‘õµö°µË\«E¢DìÑ5*Ù¾žÅä‚bWë=…âŒk?6{&Bi,I4CãƒÚ•ÿ:ªuW(«ƒ²±}”u$‰Š sÒ–[—Ó%4¶íJ*±¥²ÚUÊõ™¤j|Zìk}ôõú„-X"6ŸA=°Vk¾è®°Î†YÏ%Œj;b=³xI"U`Ô±ÇÌE™ÅK ½}À±`ïY7õIã‹O,‹‰#,Fñ’0<Æ!†$ ΋øÙÝ—[QËÄ]q.XJ\€ênI2-µæPÛÉbI2¾KéÙ:Z HýõdÆ$Y̤nqÂõéÜ‹s%ué×÷lþ×ö’X+")“­Ã! »‰‹¯èࡳgÝ"Z*^´bX#–|]áìXæÃ+=ŠÍ.L6Yˆ®.¸hbòEb“‹Õ3OuÂàÄ-uí ³›P¶™ƒwÚUR\r„¡Å=òðvkÊ)˨¶K4(ÚRsúÏSYó“ÕNfõøÍé/àŸqv‰Å¤ýf/ú'<ªíàl#ßpÓ‹ÏŠjCiÖxD´OÉ&ùSL j‹ Ž#¨ [0ÚÔIì;¨`•œ1íÝÜÚÓNÐYØÓNÐÖð!=¦ é°q<¦$Zƒ2A]Ï|µt¨XMŒj'ѳóˆj'ÄBÕг¨vªêüxT{ ²Æ£Ö^&éÄ\ï°vBè`k/IÐ:ãÚ ±O`šV ±O ç3®½$ÑüòÀn嬯ãÚË-bõz˜%U /¹Ù´LÛ‰}äqí%PØqí5jˆº½³Œß¡aaƵ—$©še\{-ΦÊGâÚ ”8_v\;!6ªëÝâÚ q˜ü²ÃÚKU¡ZX{ÙØó³é„øŽxé‡$kI°H·…¨×™¹S¢9•S’-½%Am&¶“Ĩ¬=É$YÖG¶b]ã m'Äb%æÃÐvB\-¾ìÈöXœƒ‘íTÖ™&óD)Iд¿ìÈvʘ3väÛ¹«ñÈö’ Rnr¬ïÈvÊÕ’Œl¯õ¬nšG¶SÎr’îÈöòd¦:î4–Dmt·×)$ö·Ç¶—@óÛN9¨ã±í%‰zZl{m¥.SåÁí$®í84jJCsŒn'œEØd o/–;¼$üÛŽðö’h6ÁÃÛ ±\1ÞNˆåâ0ñðvÂÑ3ÓÞNðnÅü`tbIÄŒôðvÂé¤p ³-IRK‡ám‘hœG$éˆn‹@â2;º}x¸UU2ÎÈÃ’D™<>Èf8¢P€}åÁ‡%ѼŽr"r¸1ú ƒ¸Ð}Hˆ¤†vDD"~7£K2ô´côáØâÂæ>øÄàƒ4E£}X’¬.6£~Lme‘íÆDBpøŒ?,AÂÙ9ÉeóÄ’dU @ÈáVÊ€HˆLKäœ9ï$ÔÊÄ’4õø€P†9USEž¬U×’ DRË€_ÉÜ1±$EgŠùÖ<KÐeÓ{"!ÁøÃ$74?çÏpƒ¨‚X¯’iá @Èz”¸2{ýT’˜`ÉW0þ k ¶#þ°ÕãþŒÇä=âÂ2þ ëZ'Æd¡œùaßAu2òð…âWyŒ?Èh‰ÊcüAV…ø‡Œ?È ‹—»2µ 2›c™ñÜÄ’`îøƒ(Ê6wüá¸îZ¿éGøÁ›‡|‰nMÅ…í®»tS/Œ-ÈØH:€ñY’NÝÏЈ`üA¦*Å#þ 炸ÁŒ?$äeR?âKb¹e‹?,A×PÇnò´\8ã y™/˜šdgøa›N ?,I±0‹…–¤‰%çá‡%é*aøA$aøáð¨Ý¿Ê´,Õ•Ùá‡%©¢°ðƒH4Œaái¡$¿~X’¬A †¤_%á‡$¹¤y„2Pbbø!!K%! ?$ä±d•W)–åõðÃ’X —á‡% ⳺YëSô? ‰6·~HHÎKbúx&еÄðÃZ(š,9±¥ãñ9DM3þàÚËã~¢xüAÞ£ûH-¸¼I40þ —¿×£ã?H?GÚáY“ãŒ?ˆiÞðƒ±‡d^Ôê¾Þ4ô·­%®?,ɰhƒÅ–ç ¡H?,‰™w A,IÑŒ!oð¿õë” €dê‹¿aT µú7ìïoßy+ø[É7Üôãs‚’Ó]«wùéÍòÔ‡ ;‚lóKRfÆùœ!) W/IIfœrŠG³$Á’‚ nš›ÜR ÚT†ôÖ¶Kx 2‰§ZæmÅÒ`êCÀjKPØ>äj$ÁÂým5sJeHjÈÎ_¦3oøIè|+lX<ãí°;–¤¯Ž(^°59R–$YR£i £v>T°Ž¿=¸^$ÿZ‘ÅúÞµ3Ù=ˆA¯%R‘/¶æd„!§la?×%! Á pK’<È'ø$ñÕBÅI×\ œ¸ p‘l”\*±¨¤â.É…^~…”Ð!°”ÐE"jôx âNE–çÄiûAÑuÉ$Ár.'—ðNï,Ic2g å2–$3ý´6<Ö#Rù–ÍiU»Uº-¤ZŘX’Bhž† 0™S²þh­Çb¨·›sIwËïöeAXÒ AÌ9ŽC•¨Ã¿ZÅ 8熕³?Ë¡ÝT€tZúu{Â3°?T °’ …¦Ã`ÉX 4e–S¸b·Eƒ°DYØJºqc]â‘ a'þTÅÎÑnÁp[+mI˜Ì,9¨ÀŽ~fàsI2ñ3Kpè$`ß’–-I4$Ñ,çg ‚eð`Œ¡’®)|â`—à°XšùãUR¬#ÛAÁHIz ý4,›%i˜‡s1ðgb×3&Q€ArÆ—`±ìC¦Ìª'LÝ­:óé('N"ðIb®r¼î‰ Ù’?h|®z¼lJdFŽÅ’a`ð:ò޶H²n`?``bL¬‰Þ˜»VÔå’ønXËoÚyb‰UÀõðPèB]–lȺõü«jËÆ³5‹3¸éÆÓÐ~Å9-80ñ›0½vÕ`šWýŽ äM×gÔ_­¨Ûcý££%nºömÀö(vù  Uég1lEU˜™ì_MB"{ñ¡G;¸¬ew ¼!ï* o©±©Ä´P“¹L„%ŸFxžüËê“­8£K¦Žà˜ÖO ¤å<ÄÕæKôE0MÔõ”‚(+ ¾É [RpØìö£‚®çËÒYÅ”­-”e mMZE= ¶fÚì5bÛzâаVF:缉ÉѪo,]Ž¥Â\'°ìrŒûIÚ“t×¹YLëõ”µ[XC†×¯Ú­unêÉÐeÕFczšª:c² cxȉÈ`ÏI9— 9ÿ&qX𛩰? °”³AˆŸš¤Ø¹Å’*gñ¶ô¨§¢' áQf@±\õDD-^%†·Ý‚JÐÜ!‰ã*)ª*Ü®âG•¤é’žùIu3s‰e£d3–$:¾¾¼FØÂE-‚¼8páâ°“ÚœëÜéb9vÇC‰? ¶¤#›òTÃqÃV>…(¯ ð¬œûD)UänŠÒ Mr¤·HeÔóH§É2RgR×%ÉQö+DÔÊåÍÈj»1T¡B%!lxmüɤmµ±$Dá³ß8 ªC5ä<Õí7A²UØ%ޱX1Ýa!Q]œí†äŒM·l7(,Ì@³&£=1Õ:BXÏlǨœÔ?hº½ÙáÀ$²D¾ECØŒkÑEÐÑZ ür×ã‚È‘¡2Möæ©'9UKi[ÏKç·-'9Ñfc?H 9."p0p²˜¹KIÌt0ÖkDEBü!Q/ŒÈ3~|Lh :À¯Ÿð9 lB­£0†J:cÛ5Y¨8Ñ J¥ˆÙŶä|S¡ø­ >´GæüABÁØÇuŠEY­‹`(+ô”álY@»qÁ‰$’à’ÃC½úÀatX ’¦ñ.„ì…\…©Eÿ)I,ШŒÿT4̧íÿ$ÄðŸ¾ö’<ÓÔ†Ìø—Ä¿FQÕ›”ψz[ÓÌFF zÞ Ï^dQÑäfu=‡$ð µU3­ä½òH<ß²”-IW{V$0VgmvÖfuĦæ÷D²l,À&}‚­:«8"р̬æ/e(Ø("}&¡m *÷Õ:ðá@Íâú$iqf³¾2Kp…&¡6èêΜ¹LBÇsâ #À™UÂg²vüx&ŠI·}.h«ó®œ]Ò´ÍÉRWT_KbQ8ž)Kmƒâ=ð³fìœ+Ô+ãW±pMJÖc xj£¯ Z¹'ýìSíSrI²íKÒ|ÕAŸ¡²5eóØÔH?CVЉÌ0\â‰S¬\–NÐDPFÆQlœ9ÕÁÌHSÂþŸ§k‘ŒÕ’$[JE>YÇPŒкÓÈ·z,˾h{‹àë–¤*R)#õ*ŸFÐÀwƒÄÝ[÷XdøF+ëåhÑN*©n‡oð[ˆ‹›XÕ,ÎHIª›hÆ¡LƒÄï«ë [9£ N•ͯ¦ ¶ÊÄ@œTOUÝ»©Áæ<ò¢1$_’VfÞX’íÒe¶w ê¶K—Ç" †m¢n#OÿÞ–)%nxÚüoûÆaš– e¤þäšÖb÷oØß‡iÊ'ØJ{Ãm?žš¦öûÃ4…Ä&ÒLSHò1º /Zj™BBëUÞ4è–©`Üb„e ¬HuC–)aPÒ!°Ø9-Q@mx¬¨`­ºæ/i ¬Ëœ§ìö]`…#Ø48j³½C°LKžþ%µL4;Ï,Ó’‹ÛªjshÐí/X¦%G3¥hšñj¨iZÒ¤­j¦)†Ôújš–uÎrhý%)nDªiZR´½DÓTÊ”i–H7cf‹Õ2-a*œA-S}OûS-Ó<§Ùì´LV¬n! yÆ¢+n™JEw¤Ë4ÛkÍ,•rn:5KO‰˜¥d_v0KóŒ® Ô,NrúÙ³4ê~ˆšœYë‘q^駸Y¥¹Y2Ï­R +éZ©Ušë0ç€['×j‹Æ¬Ò ýâ»äÝŠW«4—éö¸Z¥¹ 3Èi•®ílþ­Ò\ªOœZ¥¹X<ÙÍÒ\,VL³´ô…þŒÖ‚ä\ÝŸ :ÊÙ`E[’4L«t Ê«I†+í/éòÌÀ@§sQçØøm5J—¤š1iF©HRæ"ˆù|†;ï >ç²Fc£Ý¥¦EËÊvòÁ­Ri?j•ŠÄεJ6›U*ï±µ£VéÑ ³J—¤Ð«U«tIÒëi”¶Œø\¤`б#Që¢ç0$:€˜ähè¸$ò Õ¥9©aÕ²X’Á“MÒíL”qv³ÙJ 5«tAi• 4˜Y£ÕçIsÜ*mÀêf30§”‡ŽÊ}¥ö’ƒ;j¤4KjŸR³T8¦­­é@Eêœ ÁÇM×¶v¢VsGó¸™* €Js§~±¸¡j1½‘9}j—Š‘8\r’O SÄi4ä’ª(|7 k4·¿Ïþ> S“¸Ùioð¿í‡a*¸†m—M‘ù'ìïÃ.ål¤¾à¶OÍRûùa–Bbif)$¶`mt‘G¡9 v)$6kòÖàQW5KG˜.ÑÝ=Ìw³t„FŸIÍÒ £j…‚ƒŒ‹út¡Ì,í³ºC¢‡FŸá°]`†ª§pý@ƒ÷áÛË´’5ÃCaØ‚@ú\ÌR¤ii¨ªÑlM¥ÍÓRˆ!LóªU*É{{F¬RÉÞxh ÙÓúzVöfÐp×ú€ M·J‚ü(ÚN¢­Ðë`(ʬÒ^ËA•Õ6-š!V)òöÑþT«´ãàgd0s£åeF©dOµ?j“" Û<(›Æ Õ,Ž:5KO‰˜¥È÷V÷5aõ]¨YŠL2#ªj–"ùÜ}Éd'Æñ|AijgT?]ßÖƒ¡.Ü.Eª‰Ž•Ú¥H¼w?Q°w|“kd@o¶%‚Œ~uÏviÓ rµK‘Ÿ²x³Ù¥€ïÌÉaÇŒô5§NíRÀ Jã À| X§r¾å8èõK‘›¦3£Vhëé@]‡ÈÐƒÒ Sd¨æÅ2mmK×(0tí\×­6~Ü SÐÈužh’¹ b>ŸáÖÄ{’Ï:–)$ób^´ÚiŸ™aŠæ˜d†)$Œ›¨aêM¦] -³Kw'h—¶Z{T³´UÛ™]ÚÊtý©viÛ6(z ~ÆE›”_ñ¦â7yR½šaŠûéaQ˜fRƒOLRT&3,¥&iÓ}p“Tªë#û“J’­fÔ¨I*©USÁ$E"ÕLj’"kj[ʬ%äHM˜MЍ™9f“"1n¾‚Ù¤Rv^h«É‰ !˜I  <5IGÔªh1»/£é~„+&nÝ¢)²ýÃω(’vÄMq–09/&)Øm¢Ì$­³øZT“øHš=j’Ö1ݬV“¶‚©63Iëh>ÆjñJ¥¦s…¥ž–$Á}˜¤•ª.›:,gíö( wi6Š=Šº];UÍEá®-$³GQ¸\"­kn•™= ÎB3†Í­µZ†ö(°]Ý÷ìQ ĸþÔ®l\ o@ÏÚàH@! <ÍÆF R€>£­5HQ\<\-ƒ‘][ØÒ8nÆË §îÑ2Õ5U¥ŠA Œ-T5™€&ÝØ9T\rO2ø`ØÌg$‘k\<¢“e¯yÜÕþ>Rø&ñœ½½ÁÿÖOls´ ·js{”89ÿ„ý½íQ‚´7Üôâ™=ÊŸo{T$Ñí€lмYŽÁIñ˜p³0úy,v©`÷(шƒ1i ¨‡^+ Ró™ù)X>z*èÃci]A5½xE+½o,¡8íõ4G¾YO·á›4G›ÃpÖP^-žvm Ó«VLƒTà~ñœ¡©¨AZa·>¾9l³›E*˜Ï:m/˜Ïì¦bH ÈSªXU;**Í™M‹TpA?ŸÙãhb‘VPÊY¤OMÒ%aúÈLRAcÓê›T°DÑM)¹›c6©H8|b“^$Ší?üž¨%ëŒ?øaÜøŒl•"ÉWZ5˜w­çšªs”óTCD_%‚6‚g+Z6#Ì»ê^Xk:ÑwÌ;ƒ7ˆEºù\!Âá¦yj°DkTK;l.ø©ÖÜÖë lŧM¬ÑF¢5º$¾„æîa\%3a5w[ï­¨»ù"AжðWÒëR`bÀ¬ÜÒå K(œÖh…á“Ð"­€|ÚŽ²¤²o…* r:¦ÂR÷`Y±`˜¥îAªâm,pªØ˜[æ{D÷ç#š~…„ö€&îgláÀL¤D÷0wH4ФºªgIu¯‰]ÖØLYâÔÉ[äžÖÌÜ‹AwIÝÃ\0íf©{”ãp59^Ý3ä(C’/Iíµ&=¯©ûÚ<jK§6OtZîÆ£E7%u_·h©ûZ=Êl¹{˜ŽÕ%Ò¾â°KÞ×¼1š¼¯º6?¸QZëáðhò¾&[ò^l¾|égŠ "XòDö-KÞ×íñXòåÛ9±ˆ®/¸ztfÏ9>\Õ5TOÖKö5&ãÌ/‹=8=È%Ë=$ÏÐ]¬È£tƦ©%OßSÂô=¬'Zú=$Ò‘ô}FÒnÆ#Á?£’>Úø·§Ö]Âä;ßÀä<¿±Ó÷lŸ`+ù†›~ÜÙ¥ *’w—…þQ%ðJ Qÿ¢ß$j‘AR’J²=£ô*àEà¯ÄÔP÷ª Úöw‘à9d•jH’üêûWesBÔ¿ƒæ¨=Å- ‡–ÍK®E,GIòkb©¥mö m]‘ëä×åæxãÁ½FÀ ’ä“xè Ö3³ªˆ÷dFe]’Œ D~•DbˆkùÜ3ªóëJ-útµ®Ä”|÷0ŒneMp[¿5KÝm¦fP•?׆N–³Ô]d©9Uj×3X"8EÈ**Ið1¯¹QrÅ k­‡[’$uã°àBÉlsq“Í@Ók-òp:Í>3g]­öjm\OÚ!OPË1/Iì`GeU¤a‘­£ŽA:ºšd*” u®UÅB.I⛇²~î$1â ij6Ú3Z.|DöžfwˆÛM®ŠèÞÌg"Ñô¤bnIëvÄA"ï©Ì*CÙ%Ù'Šñ¼SCZ(ɾìKod½Ï#[åô´«lðÑPú1#A^e=pÆ–Œøˆ’Y1ŽŒ¼2»2;Nf̧÷†Àq&Ã×42å%1’2Ág¨Sa¨š‰ÛΘrœÐ[Vœp¢ŒaæV5î›åÉuÚ-½V}å6¤x.eHä x¤v\‚Æ%ììõ¸„Î;.Áó{G.ô|÷7ðo \À¨_À¨?±ãlŸ`#ù†k/ôüwá.šp‰MðµV4Áï²hÂÆ¢ k7î³ ÁUK\9ZI„«O/špkOP•ñ 7¸víHoRÂô&ßËô&¿ìéMo›'@­í|ÿöä£K,;É0yÉOìô&Á'ØH{ÁM/´o÷é;˜´Æ¦aä“€Õ>¢ž¥Ä½ô‡’Äzq#Q­vêˇ»XMúû¿zùþx˜WCÎ Ÿø[’~<ÞFœõgõFn” /¿zØ«Ûö=èÂ}‹ùW‡ñs4øGzýOåÊ'?W†Fn£ ÜvXÒ0eW…oýIó½‘2ÏêLT£QaPé›…*?5²«qîL2Ì€,iânào˜ `2’Rb3?Ä:l#F·¡Sî,ƒ: ‰ãî6”æ‰MÃ(ä|­Í%jÞ_oÔ8%ž¾¥9„h^ë—7—æÆ˜¸] A7³CÌÊëÙ6ĬšÂ5³¯ËòV*»-Í[8fá™ÜÏAí|àÀ#¾gŽÑNBbP–³ã³Šðâ~*¶ ¦ $wD¸Í#-NÉâMHD<°“ºÕôPá\©aá€oÁìã£A± ºZÕ¸P,8Ìš]òd,l•BF+‘8ÚE’QD+­½î ‘¸IAA¦å:ª¦:; Âh:!G“GÍœx±ÑäÉšŠ‘ËÄöI3)–3õIs 9ËBd®=CIkK¢jã"É mú¯râÚâ‹“oàÕI¡ÆmmUYÇB_’9Z’w „übDa§[}¾ÌƒF4û´NßÊd¸SoÕ(ê ¡‰¦dd§DØðN`޲éË üQØüÅZv¹…,ÒbY>ÚcjË#|C{,{N/¸OEé ÂCqçÚ°‰`y¢fÚ™‡­ÂíÙ%+çé¢`—ö« Xt¿Ñ,#•ȈÂZI—/!øâ­‘g2Ý 6/Ûu/îöÖ¸øÍ5Fͺ çÂ'ôŽô诩¹­j#‘š®®e¶ÀÔ«W‰â>ªd¨À:ž’^Ô’a-#Ö*9 »ÆŽT”`0½‰\^1¾W³‹Ñ2e€³ÁA° +»›¹÷¤¬¾÷pa‘ò¿šç•í¾œ@%²ÁˆÚL? BÛ”ÿÕ͈Ñ–„Ho–: ­¶8»Â3Z6ßX¯;ô›e\¥Œ^·2H‚ð5Q=(]™•T‹D ó.-£tíY¤ ¨í‹£M&Ù\JꥋD5fð(•ƒÕc¶,œM¶•TZ–ìÎwÕ²E2ɺK ‰:75 iN+®™ÞpÆT¹¤·•VÃ­Õø,ƒJÆŒêë]&¶ÞN$²»‘a(#›­™”©=YÂ…¾'.ÎÙÚ$ ed³hŽ)GžsÖ¢Ëá^vÌZPã!9ª%MÀ—ãLê{¤6Ò”í(úÌ(®PD—Imd;(u†¦Hõ—ªÂîÝ*f_qô|Iòád)–dBÕTôQgX¥r º@šV¡µBoY§Å­R™6)ÓÕd)Š«¢¯Ê;·ŽoæSuò—€‰Q³1êÌŒšó‘tþƬßKèeé€z|ÙIÔÈmKEª ÃàæÑ@‚ø‰\xr,J‘\å0Hù'(]í'ŽÔ°‚¸âͳñ ™'ÂÐ.‘ã4iD.2•B(2 Ãäü¤!ú¹jvMœYë:ÐZ+Ö“BP)õoú¥i\‚LWI-—Äxs³¨W)dó  23ÂnR,; ¥ªÒ›ØjÔk…ÌÄVãìÆTÂä£Üå3•ÞÄìâ)©·M•'á¯+ŒCTIˆS­ì‚ÄÔ7Ña%lE©\P)Y±`>Êrœ„#ƒôBI¥b2J¨$ΖŽ ¤ rßœ"ÜdÙ¦±ƒQS‘NžìC# ¯‘œ?©Ûö§ÀK˜Ùœ©X‚ä-–0Kq½•7>‹}*J©Ú&’ÑIãà‘lC!Oõþæ¡®ÌT–‚¾VF8ž€ÜM! þ휌ìÈ#‘Yª5*ü¥vú]HTz}F£”: ê2N’˜zªr°lŽ8úK›Ï„æ–€lY¨å$ '6€-*T`=LFdáœóD<&¡â Á#vU(E&ÓCˆ–¡Ifß·®YóÉôP¼S$™¶¨ªHa–³í§³P§4·–º0ª»b›GÉ,MU‚Kà‘' Ì€!p«kl¹dZ\©Ð¤»çÐ1à[T)m+üz)SóPa˜yÌŒrfÛÅ"g–|?CŽH4³Ü“‚j‘Ð'±¯§É)UWK$-,’ì.œÐ»$"¨a‘·¦ºVÒíÝOØh¹tFÚíÍ1¹îÖ3W(Ï#.’S Î;{- hDgÇà¬ë…±ã?ý@•ˆípUhG£ÄÀmL§Æp»Q/g¤Õ%ÜYÜÔ” ¹BKê:ò'ID\nJóZÅÛ±_ éUuøqS§JT\ZØ¢å“uøÄY4W¬ûH ªdñgp^L•Y:;7Ü”–¶ŠµÝÙ…› ººœOŬf–¦{•ÖQ(ÿ»={j[Lz6<~*u­–ª¸Ïg5]ZÕ§}ÏÊHD ïš>¤ª×‡ø&a _ß}óM|èí7Ayâ o¾ÉzóMµ(¦ïíÞÙCßtÛðëìñ!ÁŒç›ÞÅ·?÷æ›®mzö¦sîž¾é2wOÞtñ§½»ŒøÍ›Ž{®ŠÐt¿>^¢DPº²_+7$Ó²~=$ãÛ)¤ÜW~‹ÍÉ#ڈ˞ï5zó1<Æf¡Eþ½’H‡h·¢d—#PîäðC}öy™‰K²žAò+áR/M-×ýž2yÑ¿U¯tzãH•ì’‚`á‚ÎD CØ}A¨t…¼Én©Ù$Í.* É¢“× Ù˜wƒy&Ü¡®!rÕ£À^%Zfš€çzXµê’t½‚o4^þ³II­”#·¬+–Ù„")vŸ]*4«^­; M‘P¸/÷O †Ù)‘;2Cö½ X-ËñÌ´+=\³½ØÍCŠ’¯Ë K‘W>@"W$c”–nɵ ~]BV¡:+™¹EƒwqûðxÈM$³œ:`PåüðË$ 6óªfŸ ÜnwÍi·‡([$}ßíf3*×7 wx™c܇U%z•_ÐAIK¼Á%…÷븤“åžoÞ7ˆðë=Û¥ÞÂÞ^ó¥[Ýà•Òu2˜„xžQ¸»eáyá$Q“ù%^¦f*–̧\2­Öm¯‚i„É"Ñ+ǵN7)‚¥¼ÕŠøKÒ}YD½¾&òÈ3èu´QïiNœÓv[ÝteWh¡Üþ}Á‹SåúV¿x$rã]6¼FTG®pËVÚ(¹ñ.[„~ý£(b¢˜_"’ª Þèe‚îßVA ¼¾‹/©Z´¿S-8*}Ä2‰Ò^½vÙà»—­Ú O”±§ËØ!zÔ8¾ZoUX2+rƒò0ˆ—o_bÆe#BÙ_¶Š£IéÜ@ÇmTÁ®õ#-œ‘r#Þäí"zhâo-:¡Uv(³S¢Ú¬VrÅñ.‡Z­1FÞóW…£\´™ÝGQÍ.‡l’oVºi’aW`ZD.ú«v‘¦}]®'Õ•ôo]ç¸LL· Œ\¹I¼˜=à-L 7Gޥش”Ì/Q—k•´o_;¨û¢é§õö4QCz$A"j¼QÂMUß­ê_$Íî}·Û »–sAÙ­3Ýn*eL?ãšhKŒ_q¿Ù¯Z']ó üT°»ëÃk?û€½¨©êÕ( 8R»Û¤M}&u¦ —œcÑÜ.‘È8)Ø6“°BT–Ë~v¤Vìâ’f'é5e²ä(Ë–R‰ÞÔmýcŠE}¹JøœÝ ÄÉÊv]sçE—M®é)kŽjádµh7ïVÐ{¬ZTWG$É.n´ !«Ý¡Ü&¯²u Ý}% qhovÏekó7UãóÙv5$Â$Jˆ–lAøè…Ú¶±†ÝX©wzq«Å雦jqtľ¶&Ë1Ÿì²QÛÒ)ðx–¬:Àj©*1¥hÛVU«à¡ l”© ¼Øy g‘¢ç”h{ú%œ)Û·õ¦“%h¼_IÍÉó¾Ï¢¥ÀI/l‰ >Õ €U½Í6C)ŠÛ+×F•bt‰»¾hÁõqiÑ{£·¶Ø’ÉK{(!²p¿yß}ʯû}vh piTš¨L¹6ªw½5žBEoÈÆ…{¼´T‡´û~-SŽÝ÷+çjð)ŸÏQ|ˆA.7ÎÚRç*ÍmJºhƒŒS75z¼J´R&[Ò 4VÊähWÈ8û@–PÖ&ÏrûbÔȽÖää¢×¶ þZ«}²åZbýO<Á’4‹xC (×áñÈÅ9½'4we¥ë ¬ºd°ÀJü Éj ïïD3ø·ëœÑa·›;£Í¸¡cÌÌ꣬±;° vï©0ôMç"Ë–B ‰ÔSY ŠHùpD“1)Zå[¶ÜMd*9D•`÷< f$\Hš?KÆ ’e–Aê ˆB9È•,C•½–/)ƒýÎ……d9¶Lº#H4¥üÛÅø4©ÛÏ4Væ¹dú×-cVY‰¯KV­:ÑB²”_¤kM–Cs²QH4QXYó—šöTCßÇèh*ØóäBňjŽÒˆX!èò›ÉR7Nƒ&AM"t©£°3MåòÅ…Y/¼˜3°l‘<‰²¥L7»­Kˆ37ɲռúÍ%™åyúæ“~W¿.^«G %:aärÚ/a¶%¨UÑà2°;¾’=ÙÕj)sõkåôŽWpjv\hŠÓaòqH£ùú f‰ÖRÔÈ’ÈÕe¥øºˆœ(ó ©® ´‰áZ kJãPãÖ"¬XÄ-²ç±éµsÍnÔI´+ìÒ8V3 ™QDžé,’ØÏ‰ã€@,Îx–º„” [Âj(¾føÆç—f䌓˜äpD‹ßB̨Z¬Ÿ¨²AŽCï=ÎÑaÃíd¹ÿ2²Ä S#4NÑ‹“Ý ™û·í(ñS¶š<Át0ºcåŠa˜‹Ÿäѯ“4r=<÷“?=≮×N‰ÖP!õí‘gh jÍʇ&ßÀ¬ª5^ÊÈ"ä«F`¨¬-¢Ö¬òé3Qbúç Š"o¹¨_¨X{f)å,šÓîL¼Áí¯FCkÔ°ð!ð’´9ôéœsê=ÓËͦlEé:A‚²æ&›;Hæk€x‚À;4Ml’Ué~€¤wUFšºLZh¹$¬îög¨¶€eUþb'+†DcΖïôf&v½Zgd•g qaÈÑYŒo12gQ™ô†DNàÚX—‹kªº*›^öÙœD‘š¡"¾xuê4õ©0›`…~“ß{ê%6sŸ*½¿lŽLÊÀT‡XiåÔûrædÖ2jñè’xEð Ê¥<½²xÚ"Ù†bŸC¨ì”.YѶ܆ñÀ[uáP”î†$ c[RU`Õ´CáÒ8 ¬O£ê“œZdè¹…œê8vAVØ‚tÊ•,ÝCè ä–p+¼mœi±8¢Þt^Š9h8Àqd‚®®0 ¼ñ¿Q£ôa4ÿ´>£f@%b`DÄÀøhºf ìÎ>ÞíbóFTlìrYâ¡ -Ù3Lº]~Þ±Õ›äÔZÑ+÷&ØÕ‹Â ]Wl‰3?ºÄ©½ùâ¼Å¯tÝ L"iüS~Aû”Ý2ŽÉ¡Ñ¸³'Ù€¢"Ùöi·k›£ïS›))´îçl"î°×@²à¶m]¦°Ræ;$É”€+­vúx•Ðs‰VÿÔÝÄWø.¬2ï¦Å©Õ»‘’­nïQО_¡M÷fyÜÜEæÞH46œ.Çò¯Ý¦Q·D|ðä.úé,sI ®õªæ”HÕíïIÌñú·w’¹7 Mî’‰ç™Ý¢R÷Fè*4YÝa´4S#[‰]ÙÎUR׸4š6òpºÍÖ631Úîê?Ù•ñ´çì>{/T~ùÓNÛ‘ì6s‹ÑÒÃYÖ…›‡#|¤ÕŸ‘b¾^^Ý QS’g™«²\åàŸ.FÍJ€Ý~¦Ñ¾sÉô«i›frCVm#äÒÁ‘0-m,­6Üĵ´¢s ò¤E•Ãp«K'#HÛ)˜'­.m®MêkN˰óÎY@!hs—G¨wS¥akTØ.FΞÍ/ŠN‡?#lÁ›'Ù%¼ÕÂ%ůæp 5£¿y39óëe2”ÀÖäΞõ«ÖÃÛ“Âð:^ËetšÜüTOc!&f½°OLóQÌ¿É=qõÛ"È ~ú7¹w÷rÕ¿ÙÛôoÍØ¦·°4? ÌNîí°]…*bÙËfKÛfÎ#ræÌ*†.àÇÕr†.¤®ª€>…¸8È@›Ãh94Ap‰hÎ9;^Ž­@v/ÚúòØ·ÍÅr°6g+º8%º7ƒeT¢“ؘ‚›5ì|2·o\Ý™­,¶dû[”8Q<ßœƒ7ϾÐÁ)™&ªù8¸­Ä–û]œYÔ|ð¡Ð—Òg ]%£Š©¾Wm¦ >ŒàÏfsÓ³ÐÇB±Ýkk¤.)ÝJ²)*‡ªVÈÇ«„þK´b»îv~ôš=#ç5§fÒ,ÒÇAÁí|õqvÁ } jÔÍ|¤¹ÒÅï–{+­jýbq?Hø2kgôž’\ ªƒ®?-óúLóL%“Wëû±IQ™‡“{\J+<Œ44È4¤[ñ^KËt£Kü9•‚y°3ÓâÚÌÐôn@LÈ„€Î*\ ÎmçȬP¼y8Ûü P)ÖËÔ¢È!ø3%]ض]Â"—x1ù–ì·½yóóë30’nKÙ½[³®žðgÌq¸zÂÕü†soP}Œ…áÅË´Èmâs)$ö1yªHW*ôƒ/-áµ÷’ú7›¬þM_ÏnÓ[kÿýHä/ˆnæ«#—|›· þ Êzla˜áªë»98ro}¥‡Jˆ.þ øS=¡Sß|HõKP&Õ/® îUîù*Éž)¢„7~ð5Ná_êép­FÔ ²·Ɔ\%_.½4éÞt/ØññÓ êÞ€ú‚¾²º7¸iáâÝŒHøj›÷70W£‹ ·>tw°±‘öíônF,‡/£¬Ÿà©9Hñzx7[©’êAAQF›©Ù¼›šüŠL3¾P¨ÍØ·z75û½•æÝ@©u¹ÙŠPj;ª.t9…!Aº7âмU+DJæ/þ Mt-Óož`2…fdšƒƒâé¡ïóHÙ(«wò”úR6d>„:8RØäÑç3)Ñù³šáLgÓ.ð™­¶„†ß¼ÉÔé倓½ži&Q>éÒ‹¶ÍËi{(ähLÃuq h,ún. ÝLuqÀk3¬£ÞJæ=Ëêâ€ÊnŸ0L´Ìؘö$‰=œãÒóp„ó¶R"Ês³aª‡EbDùæá€äâààžqs<ÌÁÙô"tpPtg|™æà 0Ïúd‹7M4.㹜‚!sõpÚä5ªæàôà\Õæà€DÅzdjmŽÔÁAYcvArß-æà€´y®Sn嘞,Òý eÀ”šÄPü¸šÍPóâát]uo Ì[4c 4FåiîM/á0áE »x˜V~/¾ãÌ»f°Ñ5ïÆU¨†è¾‹¨ÒÚv¶Fô&P+žeIvËÕ™ÙÊbK¶¯E‰_:À7÷àí³órz7½7O؈w³©‹¼ß#óì1ï,é1^tîÄ•îÑ~3GÓyûÒžý4U›Ø®µÙ¨¼ÔhšÕ¤}<%;§­J¥¯Ä¦Õ@]fÐ4”8Ó'PhZäu"6­: ±iRnŦA¯ÓJÖ¡†)C¡û,ZcØ=šMÉôh¶BÓPŠ<âå5¥ztÝ>U†û> Mrwc¦TAf·?š&ÜMž¥’ZÀê!Iƒ¦:K°BÓ„gÃG9[pt«©s¡Ó9ÍêZ·õkè4”‘Ú=FŠ¿ª~Œž&õ¯Ž‘šG¯X%< u½Ñ‹ „Ëå06•^¹½žN‹ÔÆòÛÅ(£ÇÝžW5ûU2ýãŠNk‡¥«è40XïtŽÒSwò¶ù´‰NuÒÅ»‘Baf dtÀåM?KÐi»™è´M6Nx¼ª^Îy€WÅD–ÂÓ@öÔ}®º_ñÁ ©´ž— †¯ufjNúv—¸ÕMÉ6†]’H^¼ùåùñm ³}=yZÍzÕ«gT†r:öá‹ÀFgl|X×Òô‘ÝêJ˜âªr™§}3ïF ãG¼¬Øëûô4‡:7í¿97U”©½&êõP¦*vßÃTæÛ<æÛ, ‰QÍê¯âGÉ›*~T¤çTgwÇWÏáˆÉ3€V¨2¹Â®V1f†`‡© ²{Z”x2ÓÞR|ÛóC•ÄIæÜÈmÃŒ:ðNoÍúØâáã5a±ð[M9zmè?€_ ™²ÍFÑßUØCTƒ;>Ó8Ãr££º‡öE%æÚTxQ<Ç•ä`SƒðÜ4ö 0mkµ-¡V#2íàû¬áöÔˆAÓ Ö¨f›V#™’ˆMCÙ9ÕµbÓ„`ÃmK¡HÃCîŠO«ûJ(牋äæq5¦uÚ‡M­ø4a¯6‰âÓªßÿE|šøLîÈ(5|:²9¢Ðìõ¤‹0 ´aÅê„‘m¦BÍ ŽNÏF´Q—G\m 1Äþbçä'>MØkÊ¥“lHìèìÎôÍňð4ððS|Úf| > ×'Ð]T|naèGʬ"\g77(> Ñ:»ÅÄði`¶pÀšh§œÝ­RxÚq‰…áÓàDqªŸ/ª»+ÓU‰ìtNrkŸÖ¶•lø4¸QÃ%r§F‹žç¦" g²e A7d¨~0²{un–ÄÍ]õn–Äóê݈6`x *¥Æð«XÅ»epÂÓªÄÙ|' Mɬîg%%ø˜Ã±qº£g#Tgã·ƒRc͹mP<“`ÛXdBÍq¹§¹Dµ"ÌþîF<“<‘ †~މÅ]\gNaupõ`Ž\ßCÀœ8¤ –ÜRGDøtvN'%Õãt_•±%õšåN ^/ov¶!ÿºßwd>Î’TÏwU¥(šî”Y×[:|°-Œ³‹u8¨»U]áT²‰àdu¿o„:± „Ihøþå2鲩$;ÅT±RÕÉ?%j\át„Z±2ÚP+Cn2>jet­4s„Zrꨕ¡K;>­Ì`„æÌB"°(ǧ¯&> /9>Í%ŽOƒDnnv|š¿Çñiþ-ǧV×:> Mx•ãÓŠUä:< í„§apF=ái…µ¿O+^uÌä_Q¶³žVFRÃÓʰ‹¤žV†Vcn@@ѤO+]k/7>­ÀCj'>­(|ãÓ ÐãÓ ‰éħ•®÷ o|Ú~†ø´-™ÇǵИ[©Ps|šÌ²âäIb;> Ib;> =—‹ßŸÆÑÙ5Œ dСÉ'”ã.¹y"Ô8¡†É’ûì¡V9 Ô iíD¨qŠ7B­` lxšýÉp²þéÀ4û“öŸ¿ÍQiþEG¥y«•æ}qT$2$D¥ùˆ´x¬»OTFVî– *ͧÃQiÈå ŽJãÔoT–"¹•VºÞi»Qi€!ɵŽJxIPŽJÃ…'‚¾sT O3tT®<™'(  ”Vº^®¹Ai€Rõt‚Ò ‘ä¿ãpO Α Jƒ$_Pià¤Û¨´-¡u°%Lyø{–æßrXÚ“/·¡ ÒB‡¥yG–†ÑIå„¥q7, ã.00‡¥anˆ+¾™û0*¤YMúF£5 xê‰Fƒ$]àhX-íD£aAÍ|¢ÑšÕ›o4Z+vô9 ’0N4—ª£Ñpó³àò&מx4fL<šýÒ‰GƒD€yŽGþá}GƦg{kÒÄí;ñh’LË'»xãÑš2+x4Ä)±&f9ñh(4™€´¦äÉ ñOQšHƒç:ç H–ÆtÒ€Eiå¤É ˆåT µ¶â€4üyÁ£µ$|7 ’qÂÑ ²\Kl Oî-!Í_ìp4~ÛÑh’ã<Áhh¾‚™iz§Ö”gú@£q87 C޼Ñhœ§Fã\n4ZÓú«Æ°Ñh§ÄÐh¥š–YTí. ríz)I½$pR/¨ÈKÃÿþö]‘ ^wIÕ8½äþ§}áÛw.Á ¾ u¾@Ìà5Ýüÿ^Ÿ°Føl#ßpÓ ½yæg/¼5,NsÊ?ú¿¾{W²æ Éâðñ*Á Š Ù1;)(†Ã’tc~ˆºE"ÞB×lyÙ­¼%˜¤ªÝߌzIбN˜YR`¦*Ÿ…ÝïPä|ÅQÔç.rƒ˜À›ƒž9%륢£²>£‹;SÓ7g™§í-ÉÉìQrbµR·(Üg ì^„‚c¹Êï\Éš;Þä$>ƒ(±`¥E< å@‘¤EI@¬J›’ôNñµK—!ÎuT/ $%5m0ˆ-â™E¥©úæ¦7Ú9¡ØÚîY‰eZ?KSŠ–ÚlÄ¡ø}_“x²»Ùc±è]«+NzѺВv·悬£‡DjE‚%1ª·b©ý‚+ÉÐ’^õï`ô5ŲV%ém׉Pf‚$ÉHÄH.2°ý*éÆü¶%júŸ’hÄ=J¾^$JatqâóDÕšÐÅYð¤ À"ÏSmö‚PŽ\o–Í+˜l…ßEÕ$r!åâ]ß\«¶±¤¼€n¶6n•xOÁ7¤Ä=Ek`V”ØTñ—hÀ4\õ ÆwQ’Ð##ß( W’ ÷lÀ(%±¬¸/¸J;· ®k”nJ§q½P¤QTJa¨ù$‰Z*jÚ£ÈE õ`©* cv©fÅr™†òòÒ†", ] ^‡¾§h¼äŽÚº¬a¤Pìæ“"·¤ƒ{« "dÙ`  ùT®6ÁÂ!œ^vW‚ÊRNÊÊß‚TW.‰ÎnE%P’œ=Ó”¡Fš ÔDFrM·Ðõƒb¬ j¹™¤¸¤ª t „ð<?ÕÁ¨•qšWAl/)lƹ/‰P5 Ñ ‹”ûa&(ÈÆ¤k ¥ÌØ„è8Îk`¶ ]‘È3|cZá5S ~@®¶ò9™)ÕÏ[’,‹*’&µ¥Scò8øž´.äËÚ] ‰kToÝt…¤¢rÌNv æu;ˆ‹pЦóàÅÒ,rÌþÊ–:غô¨@åµ°uÕjÜšÖW«¥/RfôÕS?èµ­rU•àÄ1²b›U14¸Jfjχ„»„ËLpÔGË5É<‹"dx&v‰A¡8Dô| 7Yç°ÃDñ¼ Ëhz&E½RJ.—Ö#dŸQ+¥í´‹rµÕï˜#š×^p¢I8 ˆH„,Úõœ÷GÛO¡%ô­ì“U Gö4žu‘¨ÿÔñ\C’L"8;(€¢ºvÁy.K¼mr˜ ’*Öa©'Ñꪠ«™ f]8:~YÑ´f„¦Èš$?ºJ¦ª¡nØâedd=»…ÑÜ2)¨Î"Ñô|(4xdlšE ÅL’’Ú46"æ–¼¹Fš@pR«.é›k6G…+—ÇŠö2œ÷2þ“®äíøÍ¸$sêêÒs=wu°¬=]É­¬«MIâÙ"±º*Õü¯öˆúd‰«Å5Õ÷v‚Â’§ý¤5,Þ¢dˆÓžiz­N36®âÊ`7Umà´“¾ÚÝ¥èe-cýÉ*ŸlïA°ñC6IRE˜Í{IQ¥Ò\ tDT!â4¾l>å¦aQƒÑ€±‡Ä"R"IèL͇$Û²%Æ tJ®e&|ˆ| Ë[Ø÷/Þz'U"~àNÚÕ~ö 2+â'Œ¤i^‘d3 Í-"íhI‘ù£}(°·Å+è×/Iùè%ð£‡)Beâ ìk¿Ò™Û¢Û&SzÝ®½)Iàw⤨I¡'Ú´™•Zå.ªí¤À&U’V»A½¤`Q4`Úì‹´•Ac×hh·Î4ÊŽÀ%™‚%wRðo[ð-RZ¬G£­è‹Íº¸-í™Më&%ë—mø )¥Ÿ_ddm>áøôó´JÑX„{äñª3 ÝX¸*ôôª¶lá= !²Ì660zOå LÎ7àÿì‘¡¢v_z‰lÊÔ¸™ËÅx6õC®zt»m±Èµ¦ùexŠG”ÌìWóÖËl§I/ñÑ¢¼½¹(W¸“Ž.IU…€ýjÏtu‚¯ã2ŒµÊW¤–m*U‘Èe£˜µá7¾“^ !¦¶¹”EÒv›EV¾.|:¼ÆL¼A¹fÍíhá£L/ûÒ²%ÉJpNʳŸZ,k?ÎèC ¾±sT›®É¾=¼‚ýH,/ç/HŸÊ½faø¢iT0éa……!çxpmž$UçœÜzPBYïs0g:I‚kIÓ”,žSÙœ$DîÂQ”( žÑŽ•ÌÏÍÔ–g8S[â¹ãQO°%È7ØòãØòãXóãXóãØòãØrÖØòÚlÉð¼%„[zü€ûkìŸr°¥Ç°¥Ç°¦Ç°¥Ç°¥Ç°¥Ç°¸#€-Ûy €-“y €-=~ €-|`®,=~@€-?~@€-?~@€-?~@€-A¾!À–é> À–? À|fC€·d—›ŠlI¶lùñlùñl Ùl©¹ÌáÙ`Ë `Kß`-Ë `NÅ[Šï[*zƒ€-[}€€9Ç.r’#€íÏá°”rbíO&Úüeüõ:ð×ÛäÀ_ï‰-=~}DF8^Ž'ð×òãð×çÿ– ?€¿>÷þZ~üþZ~üþZ~üþZ~|-¹{-=~5=~à~-k|à~-?~à~-?~à~-?~»,g}à~-¯}-÷½¿[@×–8J„¯qä¯Ê‘¿–?¿–'ò×{éÈ_ËÈ_>GþZnü@þZnü@þrÛnä/7àFþr)mä/7ÎFþZnü@þZnü@þò¼<‘¿¼½fë±-¡ÓÜøüµÜøüµüÝüµÜøüµÜøüµŒãüµäøüµäøüµäøüµìøüµœíüµôøüµôøüµôøüm¢¸ökèökéñök‰ìó‚1Ítoد¥Çد?â*hKûõ;ì×Räì×è°ß¦µ#†"Ô ùùE†üÀûZ†üÀûZ†üÀûZ†üÀûr´7à×2äâW3äðk òðk òC‡X‚üüZ‚üüZ‚ü@üj‚üüZ‚üüZ‚üüZ‚üüZ‚üür¹nÀ¯eÈ̯fÈȯeÈȯeÈȯeÈȯeÈ7æ—lc~5A~@~-A~@~¹•7ä×’ªäׯä×2ää×2äæ×Rºæ×2äæ×2äæ×’Åæ×2äæ×2ä‡j° ùùÕDõùµ\öùÕ$ùøµø¡+¶¤^éâ×_ìˆ_~Û¿š$?ð¾–$?¿ÞoüZ’üüúˆðk9òðëSå€_ŸNüZŽüüú"pÀï–Ü~jâS²Ý™Í·OwfóíÓŸÙ|ûôgœoßÜ™M·oîÌfÛ§;³Ùöécl¶}ú!›mŸÞËfÛw‰³íÓŸÙlûþgÛ÷o9Û>ý™Í¶Of³í›?³ÉöéÏl²}ú3›lŸþŒ‘ís¸7Ù>mÓM¶O»s“íÓ™Ùdû´Öߘ¾ÌfÛ§/³ÙöéËl¶}ú2›mŸ¾ÌfÛ§[²ÙöéÌl¶ýý Ùö·d_/õdÛ§U´ÙöéÌl¶}:3›mŸÆófÛ§-µÙö}xœnŸÎÌæÛ§½åÄÈôe6߾τóíÓ$Û|ûô6ß>}‹Í·ïsì|ûâ l²}ûs8Ô\$ŽzÕ?© öÝûûnŽ}‚}7Ç>Á¾›cŸ`ßͱOxææØ'Úwsìí»9ö ÷uŽ}¢}7Ç>Ѿ›cŸhßͱO´ïæØ'Úwsìí»9ö‰UÝûDûnŽ}Cû:Å>1°›bŸhßM±O´ï¦Ø'Úw)»)ö‰ÒÝûDònŽý-¡©»%Ž“å{œdß¿å$ûDûn’}¢}7É>{ºIö‰öÝ$ûÁM²O´ï&Ù'Úw“ìí»Iö‰öÝ$û\N›dŸhßM²O´ï&Ù/Ž€ªþWŠR’}¿Ó5Ù)9çØ§?³9öin9Ç>ݙͱOwfsìÓ>ÄSª/ãûte6Ç>]™Í±OWfsìÓ¸Þ$ûte6É>]™M²OWf“ì‹#°öé)l†}º2›aŸÇfاW²öéËl†}†h ÜDâ‹aŸ®ÌfØ÷:Ã~ãÕ.}°‹õd×_Æ©õéÊlj}º2›ZŸ®Ì¦Öçhon}º2›\ß\™Í­O_fsëÓ—qBWfsëÓ•ÙÜúte6¹¾¹2›[Ÿ®ÌæÖ§+³¹õ‰õÝÜúÄúnn}b}7·>Á¾›^ßÀ¾›]Ÿ`ßÍ®O°ïf×'Øw³ëì»éõ ö5z}Cúnv}"}7»>Q›]ŸèÐÍ®Oéf×'Ôw³ëê»éõ‰MÝôú„únz}B}7½>Q¯›^ŸPßM¯O¨ïÖ „únz}CÜnv}‚r]ßÀ¾›\Ÿ@Þ­$¶¤ÞÀ7¹¾¿×ÉõùiçÖ7°o W3íZš£ìóæÖ'Òwsës47·>‘¾›[Ÿó´¹õ9—›[ŸHßÍ­ïέJÈ­O}°)ºN «ëI:ɲÅM:ɲÅM:ɲÅM:ie‹›sÒÊ7å$Ë7å$K 7å$Ë 7å$‹7å¤Kœr’e‹›rÒßCÊIÿ”SN²jqSN²jqSNZÕâfœdÕâfœdÕâfœdÕâfœô!wÆIÚ¥›q’6çfœdÕâfœd]Þ&ùbÕ⦜dÙ¢SN²jqSN²jqSN²lqSN²qSN²lqSNîgH9¹%s¼Ô“r’ÆÐ¦œdÕ⦜dÕ¢SNÒln—ŒÌA9é#㜓¬XtÒIZX›Œ‹›t’“ओ4Â6é$½…M:Ib“Nrv7餸%íȸ•“nRÿt®Iûsyö6'šô/:Ѥ·Ê‰&½+N4IfMrH6Ñ$}˜M4IfMr26Ñ$˜~ɽ o˜MÒ‰ÙD“tb6Ñ$˜M4I'fMÒßD“tb6Ѥ91›g’¶ý晤³y&éÅ8Ï$'£_±y&é{l¢Iú'›hrK<Åæ7ý=;ÅÆo9Ó$}˜Í4If3Mz?i’>Ìfšôt¦Iú0›i’>Œ3Mr×n¦IîÁÍ4ÉÕ´™&¹{6Ó$]˜Í4If3Mò´<™&©Ú¶;%Õ¤ Ñ$ 7Ñ$í¬M4É‚ÅM4É‚ÅM4IÓpM²bqM²bqM²bqM²dqM²n3M²fq3M²fq3M²fq3MJÕߦ™dYঙdÍ⦙duᦙdùᦙdÑ⦙ä3[m‰—DÙ›7Í$ 7Í$[¸i&›R»e¨…‹cO~IV-n~IV-n~IV-n~Iö&˜dÕâf˜´ªÅM0ɪE'˜dÑâV#,ZÜ“,ZÜ“,ZÜ “V´è“¬YÜ“¬YÜ“ôc6Á$ý˜M0Éź &éÇlŽIócœb’n̦˜¤³)&éÆlŠIº1›c’ÛksLš'³)&éÉlŠInäM1IëwSLÒBÞ“ôdŒb’nÌæ˜¤á½9&éÆlŽIº1Î1I‹~sLÒ‹Ù“ôb\-ЉÙ“æI8Å$}M1iNÌf˜¤ƒ²µÄ–ìâIJÈ0é/v†I~š“æÃl~Iº1›`Ò;í“tc6Á¤¦LÒé73䓜ÅM0IfLrî`òÁdxùçw)ižHîõnÀ¾§³mggËü)ÿÝñ޽]ÅŠßV¹€¾wÐlËü)ÿÝ~*¼àÿøÕ»ß¾‹úoûŸo?¾üÏß¼û›Ÿ”µ¥QEÐ×úÍ/ßE}æ%IáÀX×pÆ—o>¾{ÿ·_}óÏö @{“_¬c;Ïuº|-H»µ¾ùîÝû°=^Ž¥¿Ößùàï\›çòÎŒGÿ×oÞýÝj$þu*#Ö—v±$ÜÓ²T«üïjÓ¿x÷Ë¿zW$‰Ÿ5οÿëõ©¿Ã Ö4¾Ô23^ŠâŵØÖc)ͲáUטª/áL"X·„åûWoHP"ªe€Q-æÛo}x÷ëwÿW/ßëàô—?ØÜþ俬G“×öc4«ÌS‚¥ð|ùûõþðò«‡}ÞÀûní&¯‘Ý õ£Å?Öû?«_SÜbQÃë{s©>aµ'*3M+#jÙêiF­/:P'÷¤ 嬎ƛpû­·&9t¹?IiU­Ê¾¬øê/ž·ý¼oß}î[üdÞ~´÷î¼E5Þòr÷²N[Ò ‚Ö+õ*úi%‹Rà㈔|O¹L\Ó"²?a·Ýwô®÷¸oòÓýö#½ÿó&nýíQDDÏ£¤Ž°"ÊÃø?xúç?,æÊxc¦rRóœ?D[….Ç«¾l¦nzö¬a7ñv>žž?ó¥_2'( Í霓³âZË~òôOk'5Ìå Ÿ3+úÃcRþ4]uÛ³'íºéÆnæ[“ò§¿õ f… ¡=+'Œˆ°QðCOÿÒFnryÿgÌ ¹'åOUF·={Ö´kGvCߘ•?ã­_2+‘j笘ä˜Ħâþîó?­ˆ€…²à ?=1öËcbü]ÊÄìÎ=kÚMWvKßš™?㵟95CËn…N¬ 0g(»§°sê^œÑîÑŒÅ0˜èN¯æ¡9œA(ØÓß\¿ôÖ$!ê–Ò©gfÊ-•)á çèQ/ïÚw×…û?™«ëõŸ;g(Iº‘ð*£3JUñ&eÀŸÊ…Ç™ ‘ôf‘Ü’bd……0§ë—>gÊ\ yà&[†éK§ì¾“w­»ïÁ]{ŸÍØóöÏ0¥¦®b£ÓsÇ'…ÉB¡ 4-ëkp)ÌŽ< º xRcú7ŸúŒ);tç,´ÀPå—ÍÙ}?ïx߉û&?›µëýŸ;oÊ¢PqÊáÕÀjšEÞU"³‘Êw˜81Ÿû'ªá“®¡Ö,Áõ#Ÿ3a[wÙ±H×éË'춃šwÓþ»Ö>›«áÕè Úù,´Gx—•Ú%´-6/LPK~óñÝÏÞÿo_}_cž5¾ÿo_}½vX†öþW_!Û”{™ïÿ b”Žôþ<s|ÿ‹¯¾Nr§Å|ßöÃÿ髯Á⸎ˆ÷ÿËWÃ^­¾¼ùçûaýH™½ž/>ø¨ß()½ÿÍ–þR¤¾âûßãÅ¥†òû_ídãòXï@q^õÒ‘G‹Î—XKGìãý×òïRkšï‡÷^ò’ÿBžÇyÔÞÿVß戗÷ŸÏ|ÿØPK,O¿ttùZÞ—YoÛ_÷?ègrÉq½úñ'?®†%Lò:ÖTXSRhŠŒP¹Ù²Žò²š$ƒë`ßÛH×¾ÿëWÿøÍÿþD^s©ë€LÅÏή<žÓs ~syŸnx­ôiäœùŠ\Ù̘æää-'¨âïþj‹Ï&‡¯¬Ý6ûû:žþù~ú[Œއ÷ÿ²ÇýüšýZ \jÔþþRIhkp¬µ¥÷³gXÄ€­¬Å B›±¾³[u<üó‡[âÙêûAß׿87ìÑŒcÜÿõX*¿Æïækˆ#ââs›ž“~NÙѪóñ:^óoÇ=z;hA¸¬o¯}»N½çálÉo.z¶oÜ.z[keáØ‘ÈÍhÑït”R¨ÜõÒæï~´ÖYôùÓZÀWrÃy0ýÓñ¥;6̧¦5Æs/?vÚ¹Ï}|çu_÷Ïußý_xjpõ]NÁ›©7Zœý-E¢lŸ2™t{MZ8·Ù'v‚üûüéÍ¡K!_~ªÕÒ¥sþl~°ßoÎÙ=†ô×üݸíƧ>ݽçR¸Ñ˜xß´ÇÚq=þä#9}z>{™ã#Ì/÷_ëÖCYÝÈ[w­mYŸžª@1Å›þá½ÿv¨¬ÿïþÝÇ’Ì. õý¿Ëgr«·çgÎEy¾û±:Ô}d½î£«öGȧöë*ù½ŠÛZ 7‹â.ÆâE3Û·=º٠!Ëh;Ú÷½~qy-—‡u¬RëÞŒåðG{[o—“ßwØñè3í\ç Ü¿ï®ëçãç^þÕjÂG±ý÷ÒGë`@/ãýÿ¤CcjÝ©eÛFÍo¶jÂé7úë6n‘jýnîGÁé÷_µM¹õsŸZâTXç«Ok÷ÙF;öåƒ~rïXeï”Úµ«ßÞ½Ÿë4v³^ù9{@obƬsôzC–2n”)åbUÚDtlºïõ‰5CO—ØwO¾ø¯ö™0oâg峟~ï›íìÚyÒýíãf»Ù»2&-ñÞÕ±|f0ÿ«Ÿ”ü ¬›˜È¿^?¿ÝNËÙ=yíxS' ˜»û¬Ôñhóєҧ¯û]&8vúEý \)Ûsú Õ²œ}žþãÞPÀ:ý©?pn–ŸÊþ:wÓo.ã3‡$›ãø¤îküU›|îz±Û¶ÿ@“+ƒ‡¯?0¹Ì‘“wyÇÿbÏÆ|kÄ£ÐEo­ ”‰/£ës­À6ÿ«æu &)rTÒË7ÿÇ»oþêgÏúzsb€3¶ñ©5vû–ÇNç9¿¹¸¶J[ïM  §G*ñÆ®<Ïœß<ÞåÇ8ÞYyý5[Ü—¸okk·“¯Ìºå­É—GÖ§ÿã`ㆠ¶`´™mÔn"䨌 ~T~³Þ˜BÎKoß.`ÔGGü.›³]tÎÀ;=æ«C…™_ÊŽIWMxㆭÕ8™ñ8^Ÿ™fOΫÏá/üv¥Ä~wC\o},Ô¥oÌxÿÝýÜ9B·‡ê/—oó‡=Ô§Ms† T.–g!ñó 0ã¶µëèœõ÷ÚÉ0ËݱŽ‚â|ê©evkÅ^UÆ–Îcòƒ~oÜ„}ŸLس1{¢;ŽÆµ“‘>E,Fðêa»ÄÖ¸€S¤Mrfמ·yã½xݺzAOΩ³é0ÈQ¤êûÿó+Ü1ûjþs¬Óêýÿ#?D]´> ºë»PÈðÓÛ¡<ÔðŒÎŒKºnMÉÅõ«'ýúqu0~)¯½tí7bsg¶èA„çvÆa@Vg¤OM8ž>=Üßi? Ã}ŽÖçô¦Q¢#Ô.q»'øç‰šG[ð;}w ãÙ>jæý rn§¶G>qªaiÞ}nÍñedžøøúŠ:Úuãü¿Ç¾X;gnKÝÕ7vN°@ímþÕÿyf‘Ó¿¾4â6û{îèûøÙ·hÔr=˸‰¼Iry¶!ÿä˜Ú}4Áº~ÝMO¢ÃÏL¯shž–³p7Æ;oußa>8Å–û¼ƒJºõ­ßÉíÁ¹ug0=™u;·r€s —$/óÜdÕ®ýew0Tv‹_¾ƒñ»2Ÿ' ®Cƒ§ëÚµ]6Ûî^ê7?Sâ÷V/a5yUz”‡ßzýv©^VöwÇ3o+,OîàJ‘›m{l¡‘æÕxݳw;ÅútÝ)WC@Æ·Ü·@çµç‘ÔSÕ<è´¼ûZúqôç. rsøãf•VŸy´áÙå{v\n[ ïÞßÍ“<~ŽÁwǺ~æ½|ÞW}¸¡Ê:n²‰/äÜAg(èÉqgÓ)þçùhÈ~QÊâkpçqQ,þg@«Î€Óƒ4©üöIvåO×4Úò¹Î›xÙ½ç[þý~BoÃß_úÕøj«]ÝÂ:ÌW/ê/£ëpsÏÄ‚¡?ôGͯÞýçÇúâ>Â*ßxÛú—CýQÓ×Èâÿ(ÞÅÙÅûLÞ³µðV<®eŒâ!žu*Ôs³<‹zÿžp…kÒõIÂô±÷ ƒŒ~ãÊ¥ˆ1ž]8{y~ðDwÒë H¢"?>2±ÒÎñõñ £ ÙõPÆïÂC ©ó“RËX5K,/¸€yΤ /%âR/ ÆP•¼ÎžG•`Üúü2£Öѹðl+ܸž Ô.Zºu¹C/(¸]£Ã3 Ôűg‹•0ÓìáÆšõ__`i¿IÒºȇ­+le ð¶Q7aÅÕùžC}Áí’-XG° åÐaÁ¯·œÍ'ðÃ!ø:ƒíäÖ61{vØŽÁúJ™˜ªs°#gõ¦_íu¤8ÀgqüæÖ—ê {Ë—ê}y®Ÿˆ×ÄqÍ‹_|)Üþ6æÕ—éÚb6wš÷‹£6þ–ßéwbºCÐÊ×Ó33ëYÔôtŽCëáDƒ(¢t7låK}MQ¬g `Ã´Ï…Ûæ*bðÍiËYî‘ Þ=òäAÁƒ\ò9þñ}.ªû‰¿b¹’Üú<£tÃiÓœÇé§ÞÁ‹ºà#.{Š·™v xÀØÕžG<ؼïô—å&,õ$·þÁÉ{W\fÀµ"îÏà¹?hKÆ2A>Oÿ<´/éÐÒå»<+¾Òâ›`<‚`ì©`ý¸!æ}Àîåï`ôèyo‚àøÅ_ܯ›3eô át—ÜùRÇKCN ¬°[O¶ìùïe€”iÅGnôÝnúöXïç î‰ï|Úpç[þx=&¿F ëúëMßøëwH`æ~Åë?9úÿý0ì߀fÜ<;îrtèÄŒoùÌYEßE/ÕÓÓ3ãÈÞcyÔDþAßrÝl_zñ‹žÝà·Õ¿¾__Ëç­xEé˜Ü)æ#Ä+‚ûqÃ5 ‹ñI=·Ìw:L}^=Ê_\‘[ÌsœÝBŒÌ’k’¾ùJ¨hËÑþ5;§.i³ó,Œ|joÕubàn®í©^) èÖ¤´º[VKT´õQf&ÇúY]‹$}ÐV.ò“0âK Û[±ø7õ*‡¥<…|¯O pÍ7Ȉ§GPÝ·iwÏœ¿ýO{œ¤z-±ïY ¹¦1â¿«—8ÔåÈp¦t¹}ä{ô˜iyˆÒ<ÜÏÓcÛš}ª#âoúëO´ŸOqþX­Ul‰8Œj.Ÿ¥¦'8“ ï¾½iûù—ǃ€ÿ~<þ¨œýKz”êm—~þR[ËQPå´l±@K__ýáû.å9nºô,:~vê8ºžì9œÖÁµúšõ¦aÕ@¶øYjãŠÖ•pæ¼Íèí·—»ÝO–Ó¹{7ò‚o¾z&þ9fYÌ[h A çù)üèôºb!ñ¢ÒS½~jß‹ Ÿ‹íöøÆûrºÅM”XÌùæ\Õ×ëZžuQÑÒ]osžh¾¾üJ&cm’Ÿ5æËG•ÿîúÀ28½(³µQ¸¿ð káÍCb€¤¤Ö/:öJ¼ }çDZ6s®v]ãˆññ8½t÷+ø€¿F¶…ùØŒªô·ÍÆ*°}¤A?¶ÝŸøüoT ú¿€„É½Îø¹³ŸàB?§4çÄRÐÍgpr!ièç‘¿ÇðëÏB×w ¹¢¥ÞleºïÃQw •/Ò>Ð8ÖöQúi内Û@$,Þ0^g©ïú䬿_>pXa5Ôˬ=9ío}.ÜÔÔëÓù>³^÷Ëö³Ë3¨žl˜™ž‰™çrRœô¿·=µÑQ·‘-u"®ë©oà>sŒä¦’f û¶Žþ'éþg³õ;}àù·ž½TQ½sÁ/cû‹¹¬àZ©§Íg‘–OY´·J¶ñ²ךoi^wà³(Ú“Úüs ¾³ú±6Ÿ­¢k¥£L{Ï£(ÏBÁO†ý™Ú>[ Ui¸›ð©}ð?½~ðz‰_ýÞ_®YþTY»ó·‡øÜÌ÷DzÏÍl®ñ,w!³8Äz³( ˆý…+‚‘]Ü;ôuÖ—¥ŒZZu\Š«M³qå ißýýÿ-ß±…‚‡1$KJh*>Y wcÂÝ{v4ÄÖ[²ƒ¼.öŽãó .ÃH‰ÛUC?¾Ž]S±†—ˆÌÚûh­2Lf¸æpÍ2>SK´â„ºÜ¿0-c)â_ïÓñŽ£å¡'`{«g¿”>à¶­|H«oR?»ùQKcAUy¨äËë쇕gÒá¥è×9¡ höU*9÷ í¤M¥½o÷=–W†-Zm1ö´=®=Á5\#hr-QîÏ´Ï“Ãú®2L Ïb5–žT¾!Ü•´ÏgÇ ×ÉõxF¡|rËû§_!Œ4P*õ-¦{æõyãÙ×ÿ!~çb}"Ï¥Çú˜-?qf>ü$D‰ w@v8’¨•ùƒ>0ú5î£Ç…`žŒä3-y£¨KÀI«cO¦úQ[s{ÃŒ8 èÂZ÷g!ÉïtšúÛØrUÌ—Ãô ¦4*ßGå-„wš%›sèvE¥•W•?¬¡}Zú;bQ&Kc§ÒlÉ&øŒ¬Ç5pý‰¬1š8ÚøÓÒxrþ7Ú=/Ï}Ä'¦ðŸÄî׺ù\êÀêÈÔA=¸Ð¯_3ûÏÖÔwÚ™0*ZÙÊça#¾íËØÞ®n-*äËÏ;܉µTO,ŒÇ ôû2%º·‘=qSÙÂÚ#Ëçi_Þ2N*RÙåÍšÓkÔèæhà¿mËYú×3tZŽ«eÿ$¥¶<õªgØêàú£Ýå)·É£¼j1Ž‹'ô(ŸKã?Fl¬6o}ñ< ø¦ÖÁý5õ¦c5Ò4Ä…Ë&ø'éAZ¼¨šûˆøPWŸèAE »ÎËç8YOfŸ®}¸qs+€pã-¾ÿÌò¥pí[‹Ï:çßfG¹Ç+<¼¤GnÄÛûÿ›»š¹A|ïSô¸9ìh à z«z¨zžN£j{È®šÕª}ûú³Ã_ÒÙª•º'0àÁÛŸq‰&OÅWuÌ nÚAü½îß;H-T.9þ´˜˜åòyp7Š“ÕÖÀÄéÈmSX ø¡0ÿ-»Ã(å¶6äÖãæË$þåJ³i¢ïìÝoäÃÝæTwk(’A0Ÿñ-ßJ£µ>pú)°$ w0ä<'Â?v)î²ÅÞõ+“±¦Ò¶BbÆ64Q §ÒrÓå†çh^ïSà ƒö;òïõÎ%<+ßôø’‹ [—Ë?FÊÄÿ™0ÂÕ=ä0šÊ™€\+ÛÿŽ«<ŸvûÈ2¢îmu($¢÷¥¾¤ú@\Ê^ëKñ}ˆy¶ Þ¥"áôiÀ«e0^ή‰Ó<2$*ÎUâHh‘VkÜØ]œrÇ!:çLòCZˆÝ‚¤Ç\œ2ùϹvÌŹø\Ídï E&¿ÿÎÏ+'äP¼û&ÊûàÝòÞU @sHiÂÌv_Gõ¢nþYÀƒóSËÆ\F¶Ou²ó·j|ñ¸Xém’ˆO‡ a²Ì;ÖæÇÒÏ.×´l23R±!IÓ@c%ŒÃÆKí‰.ûnÏð¤p˜l¼TðŽ¿bô’ÿÔ!×{/‘Q,É{³¬”? 2-U‹³ÍTUÓPHÚ-zŽÑ¸€Þ]‹ê²õü€zgâQv>~—Aq#¿äOgéQ xmLJ¯kã¥COMÊÜ kƒš®•cjŸå1Gd6ç‰4³sD’ê‡Üõ¼lŠæ“6ey¼–Œ_d`Xã røu øt6Ñã¥Á®B3–Z7i¾¬Ö©¼MY+iêS4<¬A#¥¤ªÉ> stream xœå=ÉrGrw„?âÝæaBh×¾ø&Ïp,9¬ˆq8Âò$@P \$úë™ÕÝ•µ5ú¤¶íÔŠõª³²r_ ?Ä$ÿþßg¯ÎÄáæìç3I³‡ùž½:üãåÙß'ƒ8Ä):åÌáòùYú;¿“q w|sC­½‰Ç×8m½ AÿŽoò’÷lúöüBNÂïOòЧlÅKkm½òÇëó £ÝäCÀáúù_Órƒ,æ9ˆü£ïhÞŠ(ôñ¶}y £ý`vxPåaìl±Ý,¾æ-޽wA…ãð§¦çç¼N 1O*¡uôÇì |õ3ÅZ#ùŠÿ¸üg¼OïŠû apƒâpywH¸•Òª´¡ÓJ{|ú-ý‡‹À½„Ó^w| c­¤P> ?RXÕÑÃÿ8(Nk‹—Ñé8ÃUÒ™‹ð5¡ ¸æÃÍ Ò‡‚.fÊÑÖpÊ™gmŒÇ ‡Qj>›nPª¸ÒaÐZÏ÷'VÔjXyÍÖÌwkávñ‘>¤,éãIÞ}¾B!‰œU˜ê‚>ÊúÉk}¸j²ÆÉtþOEÜ|ýÕù…Öf ÒÔ”¶þôŠùOšá±˜ÞóÓÄ%Ê–\ò’ÝéÇ.@ðsš6Âc4WF×û*-!ÄgùÖ/€0ráü7eTà}H3ECºkçëx„‹”‘:|&Ql09!ï5Vß%j”‚q%jpï "gÎ^opµ™€ÓG¼BYçRÀ&?¥oj w~[œ_çÍSH`ÓæÂò ù&3àïè\°έ™¬Vft²÷Jà@øu9Pž,g²“/èþ#]€{â¬ñä)K’7,ŽARH]`l L^2‘T1C˜€v®ZIE»ŒH†1ÄEâ;-|LB P"äÂÆ3ç»ITÐ&û-¦4¤‰Ò«\ô`/ ÜÁ[Âug Ÿ¿›+N·éãî‡Í>O³ð{äD_kJG2ËÝ‘”¨vVq¤í® ¨\«åò™¾|ß2 .D¯Ùšå/‚χ8¡‚ÿš~j…!º5ùaaÌZÕòí>0Y8àW΃oÓżK-ÄEâ9ò“µ†&²¶¨¼Ÿt6´h®ì+CœŽ09mJz¡úÝLR-G§ssYiÄS½ð¾Ò,¿àŽ2úBˆ‘m€G{šBè ‰•-¿Œ& è 'd§'…VÅY`³Sµ¿±ö“i›YæX«âŽùþdú« ì%¸)<=O2ñPæÊã÷·…Ø@]áu0Iܧ´-˜Üƒè«€þò­Ž°üø—<ü‡„¶NÃfÁŸ×!~äÑåÙ_ñK6nÞž™IØÃ/à~ýÓ˜Ù~Rêà`¾ÿ f,Òá:óòìñÐI«!Ÿ4Øb ´…ÂLnÚw¶/+0Ó9þ8>hy¸C€Ðs˜Ä zÌHVøæ?e8¾ÎÃË0?ʳì Þˆh ¸Aº« ¹3ª!G®‡Ïv%>\Øêó”®Ã*s˜Zï’­Bn‘ë¦ôÁ™‚iø—<¼ì.øjyÅ¢qì«È°h¼tAáDš1pã„À„Ÿ`€«/ëY~WS'Í~‡®É†fw÷e þPPPëšzÔê ~AmZ©ÑJåjóÎÊ „K¡ßâ4˜}® ‹¼!5bƒñŸ(»úX¶Pr\±tâS&y¹mx=B!`ßà´˜‚§ÍtÕxܦ²îhGv¹\•õŸ0´ORVÀ<Øe^wõQi·ŸhTƒ­n5l¶„E±¬ ó¡sM¬àf>oíœ&W¬h’ba²´µhèV!(ã8©×Ù;’’ã'™ Æ“3n òaè8c§ÄÈ`à€úª»ÎǬVýu s¹8Œ«ñ=žµ7U<ùtÎN19_yÒ e÷-hATúÒ!Å[ÓÉ8ºì.øª5èàÂô´£JSÄ­ž@F.3÷°F`‹I§-ÀYtÉap¼ÉÃ׿wyö:ÍÃwç›Ö°zÔjõ2F¢tÃÖëêdN²øIº»ÜDÎH>(8üÞÙ*®sÙ|z#OÿÈœ~TÔ`*)[ #`xk(Ò+ 4±±Šì$Oa%Îð!tä´CS†ëõ/òGûa ß°’ï(BŽ«“ð›íl…&ßåi&‹“¤J ’!Hf´­õ²\ ¢ .bKãEH®´ÂÌO°Åb®ûFêt䨿hi±1h¯Z¥Ly”«DB˜%Xf7yº])L°€¤98Õ$ ¹hüœ‚v’Ö6‘™.W°¨ \€Št¨¡þû°F*:Z±Êy¾LÛi16GÚÄÉ-hö2¥¨pC”ƒÙuZðÍ‘-8m?¬ÎÙ•sT›²íy!*ªIéÈ]œ †´ü:dåàŽMÀÕ «¥@vXR:RÄÿ^ê!ÿO)ˆ¥œârn»‘zK8°zÔ^½#Û0 ¾­ÅÀ3YøÈÍX&åÓÕº‡ó!é{ÂÓ0Œ‰Égq>Í7ó•ù‚'û<>T鸥ÇÒÐTéŒthŠÆûÊ&ü¼_ ²Sßµ4?£Öyköó}¾•pz«Üàoð˜—/üªÏÃmO^#R`h§ Êêñwºá_4+…£܃$9n@é¶æ‚Sìð(§_QžØôù&1NT…NÎ2Qâ‚ÞcºqHamáPp«‘AÀ C?uÔŸïX%µh…Þè»XŽ^ª¥ÿD2`’Áwˆ¼30D»÷µ›]kQ×Í_"¬+í½L›¡´°©²æ¬`C—ü´¯½¶°`AþíU’øímÀ=¢ÝÐ ¸+ñ¦«ï_%–rà„5™¹¡rñÛÚõØ‹ˆ·Ã^ú·ã®Ä#óYJù×3>îâÿsÝ £—è\¿ÏwOqE´„À*‘Ò+0{GÞWí ³ ~숹 0')µß“Ÿ½Å­ÑºÑíÁ-–î´ê·ÝÈ…ê×­¯ Èú¥ï‹pDÛdâfÅê…U¹HÊ…)Sæ"ñ–|d‰p×A+æÊ0éÆR@„à>_VÇ*º¿%«³üç½³:€¹)›¢(ßæä ‹ñ|U§rê´Ï—y6ç…FQ×*Ƨ29ÞWa-‚—%Ž«ŒÐŒcv”zÁW¤)\%`kmV 7c¸JTv¹O¸J *ôÍr[¤®b9³Ñ£ô©2 “/|p@ =|âĆ|–Bg'ùº Ú¶$m¾|mJDŒ¦¸Fõq+Ý=Âúà(5nû›4"bdÖ$‰–ÜÔ}¥o*Hò|žeõ‹G9Sº c÷ÑWq´Ú\˜Í#ÜÎÆBs¥>޼/{ Âû'ÒS^’â˜d˜SYÐçR- œyŸ«ãŸÊ1êÏh]çÐhƒ¾›#ï°¶Å!…XnÓ P³îžÍ(›Ó ´ó©üÕyÒïzMoçÂVeF:¾Ê&hôzµì®¤ÿFy¾¦ c<4€8Ÿ"YRÏÏK5,áL'4ú•H糑ÞIThÓ`  ùàxX`fgDEˆŸ6Z‰˜"êiú†í— •ÁiJwkЧA¼ ¸³¤Y•tàǤ@ëüK, KA f“èßnþa¢K «Áú!­~wņ¯Óç•qGÛž˜¶y~Pl¢NÄÃ応]þ~ ({ÑÌeØK@C MênPVÚÅy ï(£siS§Ácýë|dƒíå¹’IGi†–åF¶ ÷–Ñ~žªF­ô¤b#q:ÄaYõÈvܨ¦§]ãõátôešmeíÆQåFñ¦ú2¡ ˆýÎGHÍ¿é…k“(R —ÄÏÓù’„IAð×ݪ¹ç®o©hÃõMéJÛÑía(ü?-Áe°u&÷¦+Ùî92_”çGè-Fiv5| ¨±˜'ºˆ¿Ì+TÝuz™{tTvˆÊÜÐXIZw¶[1’ñëy*- H-TÈ.ý\T“8yVŽ^áZð Æê þ=¿W]Yì+½\uÁlsŸ:GkÒ’«ôyl™¨9§·k)ÒÁÂñOç` Ez¦@ÍR½`Ó럧^ííœ#ð(à{™`f)=kQJ!}Œ':9y¡¡‡Ç‹…ßÉ[ø8ÊW¦ 87ɲ¨ÀN—´ù%ä¸i¨:àÈT²,ÚA{èwTÅUÉÜ1À= ò ¦1[™àÀ$K/“Î6[ p‰õ=˜6áD(U™ì•àÃ>žSû^ çOîoÁïil¤ŸM0XàV œt®¬C()”] ñAĊ•*qŸh¥éÉ£iê0ÔT*?처 ×0<ÃÜMrÍÔž`K‰-ë …÷`A¾Ð$æ(›VûÌé®Ö}%e5;>Kªº.©u_i¿ÛäH˜è1Óöã’šVÌÉbÛÈ(*Š”=†¾÷ªç3³á½.ž×¶÷:k”t„±¢Ü1ï²îIFUåe /í{50Ù’ðhñoV[â’`Š»çio E0âÄ®ï(Òì߸WcCþ}·¡ˆ@#+¦“þ$Üßôp?ò|Q{ê¶jÈñWešZ¦[0O«+—¥¶6àôÞn•è€7ŦÒ.]Ù8Q{gQhPà›®ÕLs§·wKöÐü4¹œÚÁ&‡Ò "Ÿ‹Êå¤é¦Ztìr¢P®"´½À7˜+jì‰ ‚àÒÙNxê<½ÜHpm¤é%¢iÜi.ÏöÞúÉÍå”Ëqä(¸€}ÞÃ\NsUuŒTD°<ª@ô'©›´ œœ=[€¥+1’kÁwn¹O$ìË(-uîÄS$÷C†ƒ•EÞf˜ßæÙò°®±×M µÔ|² ÑDißÊ×ùîlyå? c¯Ç…ôM3) ¢<¨ 2‹:2h°í¬õ#Kh”zë3ç ©Ú]± Á(u2¶ \4*t6;á›SÛåXªÒ*± ë5—Úqå* šÌj]ÇL5’s+'t-“-*×qùÄuZ]V»œú‚Ã}ªá6‹CkݸØ+&‚ 9—½ÞCžÉ`páÓË3ÐRv>€4ÆÚmlìóÛñÖ™û4öWi ”óIžý¾›,{™a~Ùb϶…ò§sC!ö)%Yœu2q¬›˜8ÉóÑ”…å³Õ 2¹Ä"Âeºº©ï\S­'jœX™þ]¦þˆ«9-ŸµTP 4TlÍ+øí;·Ìöf ‹ª—ÏÑȦ1È­×tØ(RŘ—Û~£ÀG§7§¶Àªg*ÈçìÉ‘9¼Ì*¤3°_«ãíTÖÏ{ñëæÜ¶ƒ9÷õ”)°âC\ßa1hBÕ›.Ó° 5㪪¡Q‚ö¯HèïÌ~˜ŒVðY†ÒhÝ´Þ±c\XÇ/±:J5ýQ´KýNÚZ€»¼­j5Ή«ö:Ú’´èhUÚÖ-xIËŽÊQ[IƒC= Ë"É9¶nß4+ÛguП¬?)9‹½,´î¡Ž‹ËãöÔЯ­ÊÒC€á»U¦¶.èpU0IÊ×Aµ ýÐpý¸û¯Z¤,¹¨K×;äKaFf@rz‚œåñ^Ñõ›‰Äþk,×õUÚ·©‰!Ú0KIǨFÿ¿«…‘y¾_µ‡µ01,ˆûQSôJÝ~s©Œ v§kÆfÑÒF­ž¼¢7hìîþÌ„jûJÜÜÜGÁ™®A]ûT¦çQÃ*e.f¯!Ž«UsõÜðMÐ&ǸާakPß$©,l'—¿œ;*•I¥ù>ix¸Îü‚ÍVÃyó.v™¬†ÿ¹Ž],°2¹Vœ;D¬G±Î›¤â•ª‹û!HÇ úÍRÛKoàÞ¶©¿¼ßÚ¡¸ÿÏæÂ»ÙO‡ý+aìúsve®aézTïBö€Xn½Wª:6ßf`5kaåˆ*/ZùÅë|ß·›à°kPå®þ=…•ªz_®\=T.Ω¡}ƒ¡­(“W×kMPmúw|ÖQüdTi3pŽú)'EØ… ì@Èóê™ÏãI¯:¡´NÄ{Gø¢"&TBQ§e7W7´÷í.?TR' ¦/(òÀ]Y¶H…6X?»­(†Ðà}ñue5üÛ˜+Ë­| m vƒêQ èmú¡ðm¥ÂÜ{Aiñæë¢ø¸ó¥ÉÛ*~LV¶m¶ÜNÀg£ž»Á뵕CPÀ·™œ<’;²0êx>K/é ªôF-Çÿ¾9òû!Ò•.Ó “ëÃb! Œä¡á·Ú”xw©©õA:^±Ù¯ »Ë]¬9™^¾ªÐ®°Ÿs²V’H?¶jiè¼Í¾¦§Á_¢gÿJ†x`XGS6Vñ<0è'+¥ÁÁ…I·U‚K„‘ú¹~×( >ʨÖ:À‹N@[x[=s~Á3ç¦Þ£3ï"Ç]ÙÌó‰ªÍ¿ÈkúÉ/|ó=„ÏüòÑ)”4S^¯Î4p'€²ÎÜ'ù¾¼[™Çù/;\e8nºÉü'yö§<|‘¤¶3êA¼Îë<ü!ßæá»uØGM>«?|›OÈÉ…ñsý¨~RtØ>jEסýQ ªéwX,zgéµPÖàwÊñîàU*êëÄ¢wð*=ý²Á«#ÊÅSy5ýnu®Þè—…qùzùyìÉ÷¦vßRŽäïÜ)·bü”退YÞ­Ù> Ãm;ëÒÑE+Œ/âçýZF™ã}wa1ù5¡ú;|s6]¿6¶à ,žmëIWµ—ê5ýpÉ%§£GìÔ°aÒö§eö_ÁTLJp0ê¹'2ˆt;2hþÏF]{âý‘A¹"n\s‚­Pø˜íÐÓ_o[9ÅŸ ¡ ;;Ϫ,]/ªùã,ÖC £Þ W³Ç‹_e5xgßæá‹B¡·AããNõH¿±$‡¶^ ŽX/æÆ·PVë®6)<™ïÏé}ÍG¸v«ùþ]‰Ý½²ÔžW¦Ô|´ÂDW7ÛDd–ÞÃí÷†gá‹1*I=Ô€+yÌ‹}hßP'—Õ$x£ÅhdmÛœø¾éV¤Å—òKD¼o.j ãS1|F÷¤cAÓø$²'›<ݲ9j¼2p]rXY·õº¦à6^ø»³T8j¶!ˉUìÔ¨)»Íˆ?ù_øiø$ïPøÍ﫟-¥r ð¦<úý1O¾-#œF?,‘ãîÛ)%r É,ñ¼\Ž'W¯—{2‹)ÒüQglyó×s‚Çþªªgg…DD›ÉŽ_xX§™‘ÂW˜l°®ó'§ôç3pï}/!$€µý-#§xÐZ¨I˜-SË•­Ô÷<ÃMàªØ†>éä(}Á£wIƒùÄBˆ•HQ cÁÚzg€¯ÝoÖì°×zï«5O8ÌOY¬Xë£ö’€TÒð6ž¼KáßòìY¾Õ…’‡·yøM>ÊÃË,e¾Î³ù­£üh‘5pp0¶AðJlc‹ °+×™{D>`‹I§-P"§ÈÇ¿f0tŒùí$¾ô ÒÛIRhlEâoâÍÈ:)K’†ªÈ4û>[,”\2­¸K ;5ÕêþÝc+ác£€hkUÛÝT%QVi„5äDò·çÁ¡wæ“OEÙÛäàX"x…ßàydLÕW é½óK¹I/êÄ6І•Êôó¿[å»/6ïxobG¯-=mVæÈÕÑÔC€ )˜ºi²ût6÷êW|ñÒ´ê©Ðöm#Z\¡í]Þ<©Ð‘/Í`„@Z5+Gs Å*O‹þ | ›Ý@àÔÊ‘gÁ*PXv¸ˆèÝøÙ€fÊ7·°®Âá¯gÿ ²Vóendstream endobj 614 0 obj <> stream xœÍ=É’åÆq>ôºøµcFíUòÉ’L™¼ŒÃR‡Ù8Cq¦¹Ì"R_¯Ì¬µ$^wiQÑ…Z²rßÞ÷Wó¤®fü§üûùÛGóÕ«Gß?RôöªüëùÛ«ß=yôÏÿ­B¼Rv2Öë«'_=Êߨ+¥Ôä¯|0“ æêÉÛG_œÜõRÚM.œ>ûúúfž¬ !†Ó›üì“ñ§—ø¬|ðÚÞ]ߘà'£üé)|:ÍÖÆtº½ÆVk}z씂ƒG|ëæ`øØ÷8›vÑ…¯q6 ¾Ã×Îhïb5äz†éxú°MøœÉïÙ†{¥×}G<ŸþÏOþAç«4%¯½Ei §MêêÉŸ=ù§/NŸ]GgHéô-Ìmaj›pn“âälÈ;´nN³9½¦©ƒ‹Qã’8$Z—W Ášáœë$ß\ë0Y­b›¦`"_ä«>Ï÷;»š¨9<~dø¿À#Š# üeÙ6‘ÅF.œsÒùHXîT…SË,Ĺ ¿rê4mß )ã&5ÇLCΩŒ)hUÁsyŽÊ ñ?°×ŒŽ`´uiB¡û×k¢JÈ®u²€Òœ¢žâ«Éüð…½È"ý€ÛÁM:¼?úòË1¯æÜžË¾çž¿)'ˆ޵â‰@å„k¥¨ñ›OÎIƒ‘Ç^I‚ÝV·@Àp!íŒ2Ä#VêîE=®__Õ:‚“Á»,€¢`¯%eš'\û ÉÀ{ø,SúùŠÝPÞ c⬪ß_Äù3'£[Fj¯Ö©³¤)G©©äùª­ðï*HìmÃ(‡`_¢€Qp$å+*à„–7¢-¡žA«JmZ§pfð3úÎÉú»Dž½Å|kj¥@о>°©9ßð‹£:[’Ÿ6¥¦¨ÒŽšA-ÛÆXYÆú{”žõb¬Eñ=W Éú¨Ön¼µJið|jGõŽ…¸@¨¥— Âv8ÂjF0ïóõ¸÷C#¾J6]ÑÁò)jʨy΃ªH XßNZG‰4ò3h3Q’/eæ9æÓX4¶öù0͆lXøÐí1ĽÍäkÓ` q‘!’ØGø îèÉyÙñS>¡ÙÅg¸Í€$:¢éܤª ÊL£÷ãäÎôwˆª¯—ÕFå¸ÑÇ<`NQUØQ B¢‹¤€×†….žËÓÕ;’zÃDq±%æ^Û¹YÂ^?c¯¹¬à*Zg–”È$Q IxÂ{Ð ¬—‘™»°«çÉw¸ßqŸgvð‹ø±4£¬W¬Ÿ*‡ÙMzú?ZÒ¤ÙîiAC1òq5(Û;„ã£lËänM-ûÞ’: G¥Îí itÍÄãDV{ÏÙp«$û£ì4(Õ*ìˆ F;NÁÏŠ.å§àW¢8hƒ1… à“-âÅ‚-*Dçb¢G9z͇pü(Ç+ö\”¨|Ù\ÿ‘1 ÉŽãèÈ[Óט!ðyÐka<Òˆƒ9²È%À_78°îòñ6{±´Sä–v„¿ÎëÞ^ƒŒOn` ÖŒr°Ù¨IÙ¤IŒF‹Ö[AM.Eãa=›’·ËÕ”)ˆ.³¯}>¨¹jroÎhûT.¯|ùW\ТìzJOÖh ’D´e=Á2”lÒÎŽ«‚r&U3çý…y62-hN)+í@Ùʺêßn[}›GÛÓßèïs Aõ'Ï3oŸ =*Ï‘ÙÆXt-‰Šþ=(- N~áÓ&D¯M¼E3£ÿ °ÜY°nÝ‘x2y޾] Ô)#xNª¸¼ãé_³×Ôs€ÿgPƒTOZ¯eë ”ñϲ3„]ñ?[^}™ ¢71»Å=È~4s¶}ñÉéNàùËÖÉ_—/Íi}û†ÍÍ×)§€G7¾'°S¢2‹Ÿûw´>P­ó"O{:VìMÏn ]ÐÄn-r :˜±e€ a$=Ðû©ŒÕ^âëL”0áø2‡jêYÇâw ë^×ÄC932/Ñ…‹èڕš{ÞçÑs2d*]fÛùÆvÎPëz±²÷áák5t#/jD¾ÛÔø)²ˆÂÛôÆÊc‘¡g·€¾*r0š ÅÊNÉW _[ryf×ÐMǵk®)þM˜›)œE:æí×ZãAeÅ~dv`‘%½ò %%ªy’@dÔ y¡8YîM`¼S\ý,Ç) S}Ó?Zûð˜ K9ÖG8“a©Ê1r‹à£êâhª˜ÝÞ¥,à4(š ?äþO’÷>8$ãˆ,([L 8Ú/ÐjÖU4 Ä €‘,ñzÍ" 9^€Æ†LÛEÔ#‡á‚ÕÊÍî(PNß\ƒ4¤Å¥l¾µ +u`E5ø]¾"eVDZ—ÝÜoò`ØO3E­‡†0Á± ¥Ù¢‡îDï,, œ·?뎓¯™cH¸4wsI‚ îÚ:(øCj5ï –×ù;˜oàÒô²ÕÙœçÐ;4(ÉŽ^n‰"[þ‚§ð ¶#q+¦êÐn” G@5ŒU apޝ ¨\h-HcýdÇÒâ¸0ÿ?¤XA-Åú[h¨…£?ܘ€“Ÿ»ç²Ô±y|íSº3Ïs4ÙOUË_V¹Oø¡fwó%®ºsâ ”9IÁ§aÂŽÓÍØlÚMwX‡¿ÍË'×zòñm˜íÞ$x7«Ó—?lXˆjz¾xÍñzKËþÉ‘”Xq*šÑòÜ&D"ÈqTM:úâÜðjáäÿáõ1KBUùô¥¤!JÒ€j†-вƒ¢é–g Gx92œ¡Ž-S|(äM5§/O *{¤qá{aµ “ ©Ñ§pf4Z<%~5JòEÕ\±ëyÞšƒ°RÐÕ,X”þg`FÇU%¼TÒ!Ýñgn6 Ëkå+÷¹d›4ÈA¾øpMg16RöîÛplkL0&Ó®1¹Ëþ lV¼F¸â4Чé5ÑêÓv6Múj]åiSÁ{C¶B+9yr„©¨Œ-> ltêôø\\&è"%óÿH¯ÁÀó%d)ügPN en¶<ûÑÐär^/[ü‚Ùlè…Ù›@ì3\ןو/¯™ÌÀ8˜øQûÓ¿_¯Ù69Hd•4üâºñCÏ "ùãœ'¢Ó80f:O!µÎ¢Õ¤:$¬¤d í¡wyo³ÃO­óÌÛ)i9¿«`œ1¾Y`îQ¦ :Wëd¥oóòaG3}WÂ#„}r"nüª’ d%õM¸ézù©Éï—EÂ"ªF¨e<=ˆÉ˜±÷A¢‹Û•á1´Õ€©ÝÇÍmgÖ¬8üÛúŒ[ñ-ô¼–¶ZG8Lnü'$Üsf8²/7Ãsšœ9œŸá0‘G ,yw)6TºdHÛÈÙ‹½Çºäó ý`»êf—¿‡Ã„Ç…<Þ,y¦{fn³x4Ûáüà–sRÝ8{®1îñØŽíòÊ~k»§md‡ÄÆCQCÆNçFt†oò :Æî”ncw°½éŒq‚ú”š  í5h·Ç¡qò6³”BŒ¹º˜Ò„‰Ò‚À ”\Í ~ÈK[Pc"k’mp0º§Ÿ×3¯CaµÎM'¤ç7¡Q°‚’I Dh7)5ëŒ ¥Ö¹¤Î±¢ =‚\‡záb½²ë†7\‰!€¡ÓP§ Ýn»`ñd‚âüÐ!–är^r½ jرÓF81ÚO¾•äã[ž1m\eôb±ÎfôN¨Þ›äÉO¼>"ìHuƒ»¼×@ÍHBËl¿ÙIÑ| x¤C:Ô±jfsÀVt¥2v4{oEïÃÇÔ„#Ö˜ž}E-°›qf`™¤}]@“=qÕ¤Ü(*·O#-–’GéqöÝ$°S/VŠpûòGÄVë¶jàvêÈã. Ñ`c…úÚ=Rц„Û¾_J׬T€ÍÜ©:4‚¡Ãõ]IÃt­…G˜’t­PzžïsDó~„4c‡èƒ¤†0¥¥äWæÕydãˆ\ E¦%Ä“î\J¥ûÐ#À¦7vnU’ gÝ mµk—›´üþqëDwÇaˆ”ÚXêæ¼ùº¨÷«¼åvm4$Tþon´þeãiRF8gò\kãcHØÊ:;eäfÌóŒöÖ£» ý™›oS[èR`Pþ‡³ƒáx¤v†Ñ‡·Ü£õd‚oÉŽà çKÛ^Ÿ[KÅ´Q˜ßH™Ïi”›m•^7ô¨ÂwqK€|(‡j£9¬áNŠgÿ«Ð/ 4†t0™BQ†bXbÝ샓b—NƒQä¸嚬ôÔ“´¨å»ü¥vmreghý30,Ÿ¼3asþµ@…0,ÀÝ’uðÚ´H ¿.69ºÐÍ–¹» ænVÉýºc=“ÕhÚꙦf1&àNººÊrÀ±:™óÉŒ½³•D×y 3wÖ™Ù#³[¬sÄ}ÕÖHq<àk¶ Gn6»Ãóqw͸oä _›™fЩޮ`¯Â?PÂw}cÉÏÆ! &üº™Lz'p©§¥ Vž«yK¤ÁÖ&§ÅÁI» WÏ¯Ä ¼O ¨ÒjÉ&Y€`[«&ÁŠ¤Ò— äý×4!döñB–®¿6¹ƒIŠ3Isóf,ÛRfBÑnÙÑ“Àë÷ãá­RîüÙ¢á¼ß@¶Hî¶-å€Óˆ lV†×­û `¼{Á N€©m/d£rآΙ†}ƒ¶`«Û–bÀÙ•ixVfÝÀ6SçˆYª*-nGÍ"ÑÃ$”­¯¬m–bD,_â53°b§návn©†{Òn–SÔ$!Õ¡ÔpY%ˆÃs  È_·lA  ã°ænöê2M—œ¨1JVÇUºzjZÚd/,¢æ:}ŠOñ>žUh >Œé°k‘–”+\ew"BÚ´!¦LÝP›b3R5û|¥ÅĉSSÄVå\-iÀë&ü/7riÍðlÉV<ö ”“Ô>Ü.2¤Ë=ÀØ4€z‘RU@0ìâÿÕbXi¨‹/9¶´ú|,™Ž£ÀyòF[ü »¤´qr˜r¶ZŒaGhâv1mƒŸ茴— ¦"©†aK˜Óaœ:lû é™x¼m. Tx½N÷ù¿aõ=Òq¹“¸ãwÛ˜RÁŸX —=MÃ&Êy¸ 7cž=@ë¿ic†jŽs´T–S¥a¹.ÛõI¡™•‘Œ¶þÈåò†¡Þlüå6(Tå‡}©g¸£#$cë°”p˜¿œ´&¡Ÿ×ᯓҪ¦ø:€Ï δypœ™¤t©QØ}“:¬I¶ "ÎÏ¥mÌy<ú)D¹ˆ³N½ëÖýŒ;ƒEöe‚I½׊÷Ê“Û2 ½Üßç1Ôù3Ú%)JcsÌÚN)[]/ºïwgƒÎ9®nrq‰óqýÝmxœ@G³oÃç3ÔÊAÓC/ØF–¶2˜RnÈ{ \Þ„Z4i3SÞõ ×8Œk»Ø6³ÊÚ!XY‚_ãîîGÒ¥F-C)¥,?Ònj§)yê¸«ÕæfûvÌ ?®CI§!qܰ<_4{µÂÙ2±Ç HV5żÔ=²èºÜ®ç¡æX€§ÕÉP¦]Õ‡Øhz|÷“³èË®l±uPPhçC„¥™ó0*‰³ë‘…‹ÿøªÃäQþÌ-ôÚÁN° ã\6å»d]‚„WÕ^Å:›äÕ/(~¬ øQ~³’þ÷Fhú8SWÌ2Zm`Zh– Býnò6J·ô¢ ˜¯ì.îqòÔ¡°zö¶ùÅ ¬ÖÇÊÑ>md©–ïîèF{r8w~pdIÕÝU~û|{|sn»«ÛÛ·gU¯¶»jK½Œ¡<‘{‰0ê›@„/v¦‹XªmöÜ4X@¹Óú§Is`íèúìOl a3ŠË}Xÿ©÷õz„Cªª …¸ךۚØ\Rz÷4ë{Ä!"U¶µqx+år7λ ô’î%Ú<úVL­ô—åN·94«œØÛ] Â+飙«ùlÓì";6З´Æ7ä-hĬö![ãPÜ–ÝT²°·á§ê:Ó®Jú! ®®.*!Û¥ "˜nkØw‰Jw‰Qwg‰ÔÙÑs¢EçúTqy%?ißú¼Ø6¶’oõÆ¡¸KX¯šår“ ±çÛüÖ÷*K²TrÒ–%á‡ÓãL³Îq·ó ézß)GH,|—¡ &ó%( ÿ9¥ #2^M^“õñÕöȼÙ;'½½ÝŸm?¬£h›Óa€@5•Ú)jPÔÒ/Y_Ërÿ°TÓ(nzVÂw‰t™M{Úò¶ó¦›ÊŸµÅßn‡‰>… ózgüIŽ]‡dØþh?õ#ÃË ¬+¯Û v>•`‘â?–e(™ÿ‚Î-˱@é9ï7uÛÚo¿*·rÚ§Ûã» å3ÿ8»1s© Ÿ·î±ˆòÈÀÑ_ù¢œ†~3™R›°S£ ZÁêcî–ÒAÿ«ÍÓ]Úh·Ü«þ¡·å&ª_Un'÷««ÓåÑnªóŽ#$l½0´ ŽžÛt½Ch˜ ÊÕÅhH bn­ÔÑ·¢]/bîè·[Øž°iï·:®Tß[°”ÆKY½e@ÃPr”kO§I¨Œ/¿vÇZ[7T²>7‘CÜ 0Xñ'³õalg½ãØ¿136`Þiƒ+ñäAöÉ ›&©)6[Í «™v³i±±L톿¬ FØuÖ¼Z·Îì;¯„¦šFÌ4¾K:ø/Ÿ0 †“›£?šƒ­ßw)ÐFµg2qêzq.ÝÎK:åpŸFRæÞ¯5·nû•¾Ÿ¦ršÎD˜²ˆ€ŸÊ êŸÝö‹÷;ŽÁÎÕßþìGóÛ1¼KDp[6/öfhø¬¶+û>a_žQëƒ%=Ǻ¤OŸ]GÐBDªlÇ€ö² ¨Ô?üÏêð>VyjQÀZ 5-pxqUÒŠóÍ¡s æeú€Ž®1V–šyð~>? I^ìb%ur‘_R-¼Ã†GBrÒÔi‘YslA/qqà ç0kyæ¹ÚÄuÁÏSJmóYå>RcjÛ:wµÌX@°Ë[éDµT%òRož›}¿3õ™µ³ÕÛ¶‘Xáw4÷ÝCí/„·ÍTA£]óHf“”Oãæ7ª÷êéWDä!<Ð Iª#äêBÁ%YÉl­Wù€òCÓ&埻ÅÚ@ùµq¨IVpøp÷mAÈq‘J[X¼5÷#Xû@‰W7˜ m—²%àð{òè¿àŸ¿WÒ‡endstream endobj 624 0 obj <> stream xœÍ=ÉrÉq>3üŸD«öEsËR„ºX‚N¢À!ec™È‘è¯wfVWwÖÖ¯@Hž9LO¡–¬¬Ü3«ÞOgb’gÿÿ{}÷Fœ}|óÓI­gó®ïÎþãòÍ/þ ƒ8‹StÊ™³ËÞ¤1òL*7Ys漞¤×g—woþ|¸<“ZGøt~!&ëmêðáüB1y÷çÊOÆ(wøÂ:ÜÁ8JPg1'¼p‡Çó 9 g¼?ü›µ¶^ùÃužïðî‘Íòf1Z{×Ï·Ð9ªIC‡'ìì½ *óñåçö Ø[Ö‡MþˆËËÉ{øLÀZ…><@³S²hî!Âè½ÌwŸzh£%õÀI¼,4Cn4@Åt“ºÇàW ³:¾æFµHžã/—¿ÃCö޲’aò!ÂA_ÞÀ¹þ ä´—Æ¥itˆNG@ŠR“Œ^Á‘5E)A<ˆ)z«•™ç. HÛ)|yîbñ¸mŒÝ?2ô|J"~`•)U\æÐÖÇú~íñ9Ÿó‡?Œ”BäÚ!2ÿ%­¢•w™’Œ0™J¨™ î÷B¹8YçÏ.¤q2m³†6wSSœ½6œ:~H­.AÞ=M†7Ny>eêe–.×ì{ÞÌŸÖ4ÅQÜ"Ää Ÿ‘ó;NÞ<ƒ®ñ\81Oçð¤:|ŸÀ•záš<¡Â©¢ñ‚¦6Öªxøßr˵ð@¬ k†0Ei?Ÿ[3!mVûZ ýÒ9YÊ‹ûÔAŠmr:â¾tœÕ¹¤áÓ<%$Ki«E‘º”÷$ngæ?W¶O¾ GU^RÙÞ†ÚŠ ¢l¢ÐÑÎö0g=ZñïëÔ‰iæ}ÓX;3ÍßÎU@ùbб-¹7- @+klòÈÚJ„gÅ‚'ìϒ¦æ©„Âh8ÊŸS`â’]æcðRøRM(N ÝbÆïÓŠ°¯W!t܌ק:ŽÓ®!ôˆ*­KÅH3>ë¤ó†“̇$\¬—_ºœLéÄ-¹4dn©Hž– fUÉ8ØÛYU«_ì@Ì”H ’qât¦`§zL¬ÏÆÍ Ã* F“!ïý‚›J¬b|ÚÛ˜¸½eãk·¨r$n0 ƒè77wžKÞ¸ Ç“ÉÛÛIוZ ›ÔM}>°¯Fý¦Å0ŠÀÁP— fÀMz§¾3ŒÅ¾+>zÆ/ÖfvóŽk.‹ÿŸ!þ õ‹M–Ó1Wç@—€Ø’nã<¥9œ/”Sñ«af+óšlñl"º 8±8%°èPÝçT›HØìcÙû)5+±I¥€¾)‚C2 €‘ÿðÑ x–GÎÒVÖçˆè*ê"ÀÕªûÔC(™Ï;ØwFá°•®V-ì:Œ–§®˜ˆš…)á Ö'êkú{„a툄ÆïÏ ‹Eö˜ ·A÷ŽbÓdL§hÿÊš¹Lã;\ˆËnqHÖ¹…^Ë©½Ü3 Všxè9„þ…uaØf½'F›QRrZ‹PÔP#Ïl ¢^ºš°Yê8"oþý…ñhchø<­'|1Ë|` ö:/Jöf+æÈ»Éì rVÉs5ÂU"gÙÏݼK¯75Àê7¸¤5 N‡õc_¹2X¯úZ]EðôotnW‹Í'ØéO«J?8i(9Á™ô,:¶ø524ØF)`0Ï5@{5"’E¤’¨PΘžj0EiDÇjòv†ÎA¸f#xIYÇYðæŠ{à=všïÃav…È’‚îÔ%ÇòCCþm”PÓ+퀊ºL[ üÈÅfWÄÏ<ËÀ*A  Š±Œ-YFé0‰JhrÑûv%ž÷TÚsÜz„Õ˜#ÒX>ñÓ(©ª¥õvý|X?¯×ÏûõójáqiíbAK;³ˆÒgðÁ²uFêI‚3ýklV !{Y+™ÌBëª('¶¢½¶‡*{©Eéøœ=àPë|e€. ™|§ºñdJx+¸ˆ[Syû¡Kv™£hC°æ7‹¯I€‹M4$8²ó%eÏ´¤Þh*™ü k×Ffà–·8oCÎŒIç1¢‹ÓíÇ5¾žƒ<´`Ä&@Ÿf; @4=ÍÉ©VƒÎ¦ÙA½œe\‹(‹RiHœ~ÕÂxۘ %LéÊT[y`<|A[<’¿"LzÀdr~$âµgŽ†Ô‘-ØÏ}hQ“›D £ì6Ü]Ž›!&L:Êl†€Çüµâ±ŒŒRómáß3„[)wÝ¢¶N‹rÊ}Þ§ŒÃ!˜½«ÒMÐê·-™¹ÐÜõ†šëßßS¾0˜è2«ñt´^ht/6« êá~ôˆÍnòò¶²07a[ªä>‰ -XpeìbÁõÖ*Ùúc¥Çf< Á˜¥æ úĆB+åÕ×|¹øYݳ»þv?ÇDPé%Í»*½¤V:egQƒ¥À3ºZjð˜øÉrÛO†qhîdm‡sûÆNÑÒuÓ›KþªX¤qwº8cG•wUiX'‰.ƒù\°ä¸ðÒ=ñFíÀ$D]1`v„K5Î4Iº÷éSÊa¢8í ëjZ w’£€<³Ä¯·ÔQM/0™òo+©%«0H"¤,gë€Ø2¦Pêz`œãxºhFš“¡i¥"©SV“»Öú· ÉH~JÑžvƒ‰ul—y½-²‡%°ÑÈôÔ ¤ÌŠ–Žá%ØÚZð.ÔÐÀ…À01%줡ù·ÔÝ £“äS «õË B°yý”Ðc/X7:Ø#’DE—êD ¥M~3[jË1 Bª"@/Nt# ó^[®#•qŸQy+7Ù¸®yH‡„ª¸4O=Ûd´í’“FÁ݇&¸[›7)ꊅ$5{`”Qû1;âߥyN\S~f°ÞŽøðžl´¶#Þ¤™¢ŽuŽù7°Ô±rú+i‰4“±’X vðó§-Ý<úLÒ”=_tÒS‡Iš­-+E–§°‡úDÐ>­Vá)Í ²¦ÖkR4œA­­þÃúÓ8<^ūܸgÂÛJ×ÛùƒP°3Ã,òH˜²YxwžøÂvQ¢8ïí/^B¬b–£uóª×¹ŸbAKfÒ¦f.(jÁƒ”ãʸð¦ÛÀ Ò±ÐËsE‚>ÎFªÀBŽJ‚ŒúVBEÅI“¾†O oQfN9çdÍ‘Jøà9„ñÂHS²þ¢T¯F¡9çD´Œç¯ó@ñ2«·ˆU±êÑÈÔC(f»ˆ¦oMtŠh´–`×Äе)-Wϰ)°hÅ:ÛÛ„E¬b³V²SX"¦g§¾ˆÇ*=ô‹Ê×N !™KʱCÚƒ"‹7# ñ–GÍ6kÚSéÌ «+ˆ÷lרì«OÞ»Òd¿øƒñêÌOуeJåÇrrÆ`~£lŽ P…ÜåœI»‰ ýŒ³Ëß¿¹üwüã…öhƒN{í† ËßÖ)†>ƒÐódÆj™'3˹PÕ¾ºè¬>bò¢I/ ¿,[¶`—/½ØZÁ1à–ºF¦1Qåí¬c=ÃÄ2¶<ÀQòÌGt*O;«vŸgÅÝwXƒõ7N‹}FëT‹LQ¡•b7È —4Àl PiÐ_ WM%4Öc›Ó…BKÒ+ üæª|¹!iA  ê¹ó/Ï/•KxÅ(,1üf‰YÑÁÿc ±BIX…©‰“ï`¤aj—gñ”ÚwäTñÉ]Ê|_ ‰J<¬CûˆïäçZÝDFý5øM dÏ£ÞÙ v¡?­ £qp¤cL& Ç‚ýGÛÔ6úN]&aýÚ“ñA­ÿ‘«(%[¹7ž®ùPG&’’Ç2Y<ŒL´Þ/½«®”¹vø8“Ëü“’á¤f©·•ÊÌ#ôN¢®¹RÙ)`Õ²@GÄ~áÓ±£S¤,‘«Ðæ·ì›·¿'L%U+€(’Î8Ÿnd¹Éiäõeöy$xóö .—Úë £Ry–Gœû2\Êò;À‘äðÎ#-zwØìtM Ë5––Á„VcYæ‡èG`u.Å–ÉoYïÁÈ®EC ù0ÆqfãÐC*²@œÖç”vßù_C© á$ÍQ±Û„‡i·gð¦ñ(ÌPpfø”¶÷†´Å q’AõÛÿ 4êsžÃu*`’÷ƒºUJTázã ¶=™³ ÷”5h+ÓôZλ$égj©T‹P‰%žù©§Tš\Šs-ó#mÁ-Ù¸:cõ9Mw¤HƒV¾þ½ôŸa tè¶¹ƹÑISñz™Æ±Šm­PÄl…Û°‹ê^-YýÊ&ûU4SÆ-¹tbî»ó~Mz¹$|þs­‚º;/««RAÔÓÚúé|³6 3ç›gæT<÷WeýÌðílžc6fÇÔ™#*ŠvÿL3éCJGä7I²Jý{ÌgguB%W[U‰ÅQÜy)·.Ü~BãoãB6Vâ{_'÷q Ý¾]ToBË„~¯…Í‹S®5ò€á¨Ü¸¨“VDbôÃmòöÁ+î.}]·‘ÌÆ}†ö®Ä²Ð»wËJ}5OùN+ƒ¿_?oV p·Íö Ì=¹”hþ[Û©8ª¾œ›ŒQV¢[(‡ûâ"³b"Š·:jZûq-uðÆ–Ukìñà,y·~~X?ŸÖÏOëçïWL>¬­ï×O8R0…'¡ÌáÝam~w¾|÷ãZ©Z7ö”Ž‘ÕÔ9RÐXð`$• ý AŠÑ«2a=2'ÿ‡Ä.8KžÉí*ö§¡Á̧ñGEƒ‘ïõüF”òC ðIÅÀ©™=µÀÞbèk1‘a‰3ï´650®r’‹È ´÷9Á5¾‚ÂT§r®Ny÷NÔ§¾Ø…^©Œ“+ ›@>ú{›ñ ‚Ü…YÌ<»PH`…%óŽ—sÝÄUuyS³Z¡¸ˆUÝPX[]¾ Àª7­Ott½TUJwD;쀹ð£õXKï)?äˆZjâ;~ù¥²”ÓxA¯sZu¶~|Z˜}”FW¶o7Ô÷5ˆXAÙÅPѧÍÌ“`ÿ½žÜ(zÃ}#.¼x¶‰SËf2ŒfxŸç1õhHõ% oéônì÷d¤²Õ/ñŠÚ±ÝZÉ¥nèDUä‚GÁ¹Ïi xo€y?¤V)U1œƒY^ûÃ¨Š«yfÆH©Ò†• ë!v*U‘É:B“Ôër3[q¡ö¸’=I$—>Ýðjðföãb¦S°ú´gO‰°áT>—ñê:'4çœÛc&WYÜo_äE..p°±¬'=OÕ+¤À§Å;`°û¸Wà‹Q;öº8Tˆö¸Í„…²¼˜é¶‘ÌwõÓKæaÞÀëE Óýš….ý3/`«JêØ5O —À¥ta– Ü‚Yu´»êKòäu‡.eÕwî±'ØP ÒÁu0Ø\ÛäíýkÆg•àÿ̸ítœÏQ†Í@+bYʪ^mæ-.'ø¦ŸÒI¸«†RM—vsˆnÀâU|:]-cØççsÅpÅ¢Gñ6ãƒxÍ|ÿS"3Tœ»ÃŸ+|©IÚ*ZuãN –”…ñKƒ˜¿¬´{¸ÜÛT)‡ZóÔPJ‚A×§Feh¾[÷U1Áû¥TšŸ^eºŠTÜß—à(f èípð¯ Q®Ñ•ÙyV[·ð8¬ë¥–-ðûèfv…ìîäÛºŒô8[¦ÂÀÍKî´/3=4áL4Ó“Ô S/LàË2«¥rÔî­`,,K‰Ïy9~êäD¯¢Jjy¡[B¾ôQËàÚ²àºÉݱ_ìnUØ} ©EÃfØìÕ?¸¾µŸ´ 1ïýéywî` J.7Þ¸Ák •,˜£ë ò¦»‚Acƒ/YýÇ5zºÞ"O1¿þc—Ï?®Ÿì¢úÕúùÜÛéA®²§z•€«œ&º&¾ Q¸¢ºd˜|½JQ7í–çK °ëE~¾tŽºQsu‹JôƒnV`äwü»pb^ *ªµe;JöÂê[±,nln?fÓˆ_Øù&70ðY5[KÜ sˆe@]Q wôN¯ ¬zmõL¬s£G´´“ã÷gJ)Óu’G~ïM‚Äöoã“IÍfÜYuFàí ¤ˆSŠ€'Ðáõ’ÞÓm™„‚ì\¼i”ÁBp­Âò“¶å%¶ÐÊ+X¥¥™9o¸ô½N}f¤fJ¿½;g0¼Å;ËŠnÒ °“ë?mãñmœ¦Ë«ÅVø3hµM û%¿n}ЦcãêQ¥ÆcZ#8_»‹16^¹R¢8‰ÛîÚ¤÷p¤Þ~T»¨`†fäO‹[¿ôXÇ.šŒCžÝ›ZA§ÂB´W2# r 쥨b¢Ä;ì^ Y .{Ùs|>žŸA@ÞÖ7 ñUKÝ{^±Ÿ\†Iä7L"à|ÑùWy½ç)öú^âP5R‚š¥ïYjc/ΩI˜E@öß»íñþ–—ú&éAåWëçãòÙ— ´x\¤G#¦ñùWx¬§05F3µ®Â%¥Íe0,¶i` ¥_ÄÆJä±ç³ ‚™~b£0Û þ§Ê÷\äË7½¼ü‚cpn|3òÕ9ª%|˜÷¦Oãc&ßá¦+™¶½yõ¨Ç¿`Õ#Z"lT=f xjð˜oõB]ÐwS¬ã;“R,`¡—m8¨ŽÌ‚$“j;2ëÐTR/Ðh°†‘ͯ­à´¢ûªò‹ËhW:Ž«Ž\UùÖ üÊN!+îL¨ñ[DÍ °Š¤Í^Õ³G½ïÝ”á<«cÅiEÆ!rÑwtð⸡äëºÄñvý¼ë¶6f6µ¾†¬"„XÄRE6¾}𑉼Y>§…$"޼z†¿-UFJÆ£.yÃXèÜ °á6õðqü$"'ÿÓêöë¼æ7YFj”°÷=n½×ÞÄpÙŠabˆ@î{’¹scÒ‹Q…Ö¼ÍàFÂÛ«²['\¥÷€ÆbQâ}½ã|íþ˲‡ûù:q¸‘¢ñ»X<£ñ›Yhƒ<˜?Ž­ýÚ[|¨\59 HÒox´*š)–orÒ¨ˆ@E [ëViô3vΜ0Åq ¸GÞÌ®,¼ý˜§ßéîR-VüáåÌ …•±ä¦³’Âî2Ø]O|¤ÍŒkø7Þ¯§Óñä_©I»ÙÁø[&rý©¦ˆX1þS—=~®ú&w»­¿´£Ð§fª#4EE–4^˜oV«Š÷0£^ºšq'ÿ4¤NoˆíømÈ]¯^mÄœ0øàH9µ˜ôÌh®: ãéÞì³~=a^èôßH‚%)hÛeÎAåFûë(‹ O”mc‚â7ϵF¡ÿ¹g½Q ÀË~3ƒè¡–»¹š ŸÁèül_•'Lgç Gm”žýSTo¢=ÌñÂUz7eÍÕTð+£°•Íyâûóñ­Ë¢Ll>ÖFÂ.œRdF#¿ÃªÕÀ†3WÉ&éÙ–ÃZºUñ-ïµÙ S¹bÞå°ˆ¸© Fýêltg›öîÂÎ;Û4[y‹±Sð¢Ùµž¾Í÷±È´Ð˵õ‘œ±'@„ü*-¨€†/ª.š…%ÜXø~PLÌO—]ˆÜ©¨¤0ê)…?|åúæÐŒ’õÅ/ìþëË7ÿÿþ¼Ötendstream endobj 636 0 obj <> stream xœÍ=KsÇqwÚ?¥Ó‡±š÷Ã>Ù.¥¢”S•(¨ÊÁô"HJ Ð$E™ùõéžÇnÏ£ Œ,´ZÌötÏô»{æûû™Xä™ÀËŸ¿y"Î^=ùû™Þž•ÿ<söÇË'_'ƒ8‹KtÊ™³Ë—Oò7òLJ¹¸3çõ"½>»|óä/'y~¡½YŒ§—çbÑF8N·çb1ÚDoOïp„]bP§=r‰>Æòwø2âßå"œñþô!«¤j^_mƒo20ãôé-¶Þ\ÛršùÕ0  ÐÞÀ£€ï•P§÷Î{£’åüÂz %ØÓ·‰(+Œ®Ø‰(4ŽF²½3 ?çgm´¤SÂë´§„—]€õz‘éÒΞ~L3jë•ÏÓØÅÁ4töÛºèø¼u G £ÄTСñÁºŽ°¾Y‘vÙ×Ñ?Žö×yL0?Cøñü¯—ÿþDy`ˆ€».¯›n»Ž‹ðš¾}‰oÝ"µiP¥Ë@i/T­u?&oß逢„ˆÆU´‚×S À) a7ÁHÊE¥åBªÅ'3IÌ=?W~±ÖH¯MX€¬žP䛽]ëi¶N$:ž²¸áiéL`@½I¼ƒ®pƒC†ù>æ9D ²ÙëAÆ(g¤]çv$ÖÆô"´²ÿS@Êj€£Ê†h}C-Å„r׋¼NÒš™BÐ Ò=ž²kfÊõ¯Ê½‡;Í9•º2iG¿¤‡ÁX½C-.ÚÓ_Ò20 \>J<Åô:Æ(íé¯Ä|$N K”¾±*ï3RJ«É” àuk°òW…›F¼ÜÄ?K6©Âc|^*n7 ÍèÄÀm¶Ñ…tUz…$€_ép 3u+’ëõ!‚Ÿæ-«]ÉvÒבÌÚï Ä`úဠìÑà7Á[ æ•"θg̪“([á ÆçS^·ਭȻåTEÎKuTF×1ËF n³40Kõ-Vyy·­„¹Œuè—°Îáøq÷m4èEư]á` ¾Õ¶÷ˆGs“¡ç8ù¥AÕo¶÷F*ÆÎ]#ä° O5š0M;/:£ìx¿¸à’¥¡ÈLüEº¸AY»Nc¹É¬qx^” Ù»Ô]ÜŠh– W·‚ë¬õýÄúw!9xªÞÄy›³•tàͦá’þÒ".`:ÎÞµ‹¨yo³óÿ³ˆ ÍcK¢FØI2*¶,œ”}\‚Ò,Ú½QAËîzñ Þ0Uñ_§´ml®—"¬6÷#ZT]Zžõñ5>%Á¼éÞæÇÛíñùöx³=~¿Ax·¾ê$9a5Ô€•v ½x°‘ßàkà,rÒjµñÑÈ>rÂö>¡Ó*wEeBC2íRsþ÷«Í†3Qä$ŒKÑ= S¶›zÚjÕ¨œ£ºSȰ’ã{}ƒ¦ÍÈЯ=¼Å8îc¶ž~øl–ì¡5Ø}Ì¢ÄD`Å`;ÛÙ£ÞÏÖ½w”a/m fS¿«Ž³åfÊ4A¹C™Òh¹xàÃß'vyœçã2ÛØºEu+µIÖ°²¾‹ t²;Z-Ùç|þêól®ÒaZz×Zoz§‡däpSd/3înŠQòÍúì¤Êp°íyZ¡&äâEÆ\þ»¬RÚ©2D” Î9¦Ãé¬üÆNópôÓ~Ç×çr2^|Ò©u3š"-€ç³0)÷ä{݈.5Úè$ç´Óò¾°-¨N0_÷g®Gúõ“I’zß&/ ¦ºan©I¸”XŸI0R–5±€#¦L“ç@óé6cÉ;ú%s0|‘½tgöÕ¨Õ,ù7«nrâ@´™É;º #axÕºÃv‰ÏÑB>d¹acµ’§G—•ɺLäu°&¯rð/m“û¦ÛýüL‘CCßÏÝøOy½ƒ¢õùj$çÕ~Qî¬tßèúJŠú·í"Ñ:5Ù/IÇ¥· N1M7bX`mÁy þ~Ë¢cY‡Ú£.‹Ú–ÅO™Å 4Ïù˜ïš©…9„ëÊØÅª3ôÈ¡¼øŸ£Ð S!ª íwçyç—¦¬ßíäMø|uúÒÊ/na¬ûuã!…èè a5츿%3q!èû =¯GòŸjMß)9¯éßדBr‚j=ÃÛÊ8Ó–†ѧ!òΈ¬wÖR>’Ðzwð@‚Ä´°ÜÁé™~:„ç‰kߦÁ¶d¢±¿¤T© ¢øìûŽ]²ÚÍ«q WðÄäG¤Ô’.šÊÈ.…º¯©ªŸ´à ¹ .±•7Τ\.ÎÚþ¢«ZÑ!sT?.†dV`M>có逿ϤY´qª¤M½3’.)hfúÏŒ’‹ }ОÒIårÁØýØW䙎¹Jä0‹¯­Â\VZvpyœ  ªÂ&ÿRÑÂT0Ç"• ™ ñ¨ôH]B1`F¡€Ýœc ÒCìÿñ\‹Å“KÜØ`Jn9 ¼J8%C‘L4%„.3Ü’™S.ÚY#õÔŒ'Z¯ŒóRa9z%}W*‘V˜›°>¹ŸÔIé7ùZÍrÔê¾½$£UI:s¯è¹LãÇ(^ëÝ´Y…2/û;à|k«ŽÿoÀWˀ™ëûèÕú>üƒ ¥õ5é -ópš!Æ­ÓŒi½)az0×V$Ùr. =“Ú®p‘ÞKìyIä()”aÚ 9é5!8“•˜ScÃbåZ%9îQät?Ñc\ïÐÏ$âô¥Àš´R\æI‡Å6_¥°UûÇ5'ֱƅ xÕwU…yÕ ©¥]‹ |Ïׄój`ƒáSô›@Ó«`Ï&-:³Ú̲l^æÎ'ÆÇˆ¡ _«Ùý.ÊÁýIœ§a™U<š3µ³ˆ¨›™ŠvrXQ\ ›HzëÚ.²¹Xû:/%MîܤÛý©¬”ëë'³ÀIi(ëÍäG¿µÊ-]w޹3—Jë¨ 41t㶬‚À©[n*8$£;$f ­I¹:ñ#ö"ðµÊ¶tl ZÝ]£µ.RÚ‰˜ Sû@®6ð-(´F^§¬©§ŸuæuÚ*pq5²Q\á… Ñ>Uì~ßµ¢¾Éô£èÛƒÍ8ؘeôqW€÷5õÙë®í.mŒœ5Ì6‰ˆkç†Ô]ÓtmCÈØKüìÙúzÞDà±ü+÷ÉMƒX\zë#yûa{|±=šKçÒÊ=;m¯Ÿ¯ÏSKh4XB«êä_5¨^hpŒ…ê{ÚÚ`Œ¸®dâkŽL°ôëZ½Mxc=í o_l7…¶¸Ò–^ÚØfå½Þh\íÒ»iŸò®ÂÆ»Yü8hGdn>—²÷•J 4”O?*Ï,gÛ»¡Š®ý?ÕK„dàÉ®Õk.Cm‹òž¬æ *!듦j3 8¥*ýgí‚'WŠoìž®à‹ P8Ù'X¦]]3"ÐéOÆÜ0} ÔÂ\khѶw=6Éq¦‰¶h-mÒÛFãnmYE; ÓMWºî•©ÂäÜÐôŒ¯¥iU9é´˜½Õ\§(Ó‹ˆ»Z Ž·vš°Œ>Sì‘„®]qÊÅ!‰ƒ«c Šv©B˜—¥kæ`R‰T‹@ðøDËÚkÖ"3™õ.fÆVȦ'ñÀVŠÑF'”~ÊÍoft´;_–ìŸ]Âmuj&1F@}:Wsc¯S³cÃA²’m`“Ú¶w êŽaSЏJ&0“ÓÊIG•ƒÐˆÉ$­—Șœ—JQöeûäB‹¹užÓ†F ½5¿ËÕëuFz*fçD ªaOw}(3¦z,<‚ëìç*[ËØó€‡ +{]ìÛb»(¶Ó _ÄݘOF"ì&Yç‚uÆ÷:cÎÈ øq¬OØ|ZéqÞ°ˆïðyÝC"8•™§où8"CCO— zñ¢ÏüŽŠÊŠÐ;&ÕÚPÎÅ|eäÝM†é`YHÑêHâY«…å*#«ú½.g³ü®Omß»<‹Žú®žI)~êüØÈhè´Ý“…8œØ†e™…¨£ÃÌQ°Û™–Á6¾Ëš(;“ƒh‹`ŽÄlsàe&iÂ7y%g–qpÆú¦ÄcíŸ5$ºÃ¤µ—f#¦ž)5eÜw›N V äîŽá%íÃÒS‰ýoˆABÍ"-ÖX÷‹K½Ä;ðUqáÚÃÓÃC1K‘pé¨ï….Št0䨉tŠ$òÿ ëá­VîˆØæu;(ãäÕ6~ê!Jõ¼[½œv•ÇÊ8=Å0dArŠ@-ÑÆM"Õ*ÚYÚe/§Õõdå= “uHRÓèc.o™ÿ ¦m°ß8ˆ·& ûyX8Ž©j2)—=î¨ù`±“/êò³c¬K¼”˸Ñäƒw˜ãéVÛz”Ãϳª3_0îµ”¦ï‡œ¹HK>sxFAHõ[Ϊõ]¤6ùñU Ž¥™R(-òQšéä·ó6{2¸=DúaaˆÑÄŸ@bgþ€ ÂÛ¦“€i8!——ùCoC—99Zˆ˜©}„¿ÕÌÛ<<º!ôÔwðh\ŒS†£ÅÄ$x¹£Op„3û·i(Ði~G(g‰°{_Qb Ìýò< AËW;àÌÖó ¶ì.aJ]Íšzw2#i"‰SCAEu”rÈ‚MŒ0»P‰/ŽždÂlvQ´aÄ]Á£]qѶÁcJêþ°GJDj‹:¿ªýÆ$ÑÝžTŽÊáT*x¹gºñˆÊñîh6UJ‚êi\üÐîçjKý£ð`öPziÍPáY>+°µf§0áiÙ¬öpÅ8EøáXkk¢]¤ìOcQòiÓ%× Ö øø€Å~†um€±ös+Uòe>úĸ]%]¦žמ9:þ.Žv¯¬ŸÐ´²ñN);ïãå6¶µÅƒ¢@½)£ÄLl áéRAbíç27/´ë¼ÀÔ"LMÆ„\|‡¡ ÔÙÄÙoJ˜"·åçYa…¿râ[<™‚ʰ§3µ d¤[AøŸÜw‡ûdz°2f1aÒZ8kØ\ãœ;‰ Ž‘ƒ8?èÎ-×ÎŒ÷yJç‡ *ö”«ý WBö‘,ÒÜ+¥úÆjââ7“}B”`½Û%P°¾wn ¿‹½¥ÂU’ _Úîìªø…¸ubîgsßç9°£¤»yÁy¡[òû^„ ±l…ÿþ¾Íà!~-ÜNÛ‹¶ ŽmÛ^0SŒ9§I^Áïð ®õiµû­V²ià åÐt–ðT»7 Ö2ÌŠÍìKK7foE[éI÷`€ˆ’£‚[µ¼òþ2V‡,¥DÐe¯"ô Ž-÷GüƒÀ`’¿4hÙ=‰ˆ¼%©£ö2oBŒ~/Ä©@Jü’QeËŠä&…É*ÞÊâû !®B2W•MAJè|‘Ög<‡§ÄJÍ{| öŠ»Ž&_·~#ÆÖ]X<:Êæo \ÎèÒ½èÚszmv£O—øú‚‰ÀéIX¾û¼PÀ4GLuÉÚbzS³£¶\ª6o[IåCêÛ¸¿H:Äò”³çìŠÑsÀ¦¥;OTQ?,=Ïï êõ×{ ÊàSÖæKƒ×Ñt‰ÿ—¨èn_WˆØf Ða×{'Ô´(ûëò¶¾÷>êÖ7w¡Á÷x›]Ûd† "¥nJÔêr5¢2!¦d¹ ”†]Ì•´7% ÇÖ=) Ž l¤hƒ3mþÖ °d§KÚ‰‘íßF–ƒ&,©0ÁOw¬\„ø§¿/«íŸFpÕÁ7î=RÀ~=ÃxÀ!ŸÆb,+g4h ¦ÞÒZ°o»ep Ãw¤ â (PÊ›YˆºÕ‘žóÛ²šïìc:y('^WœUÇΈˆá›˜‹BwΦiäÐL—6VgçœgÞ7Å_€™Ybz±ökñWa®“w]r*jzÍÛ•í¯ªVaÖe^Ó_ü’`c"ÛøXêê™®VNî™!^¶ ñ²fˆéÛ?ŸÏú‰¯¶·×ëã¼YØá9SÚ ²‘nžŸéä΋)Ì7œƒx…Ðß§oåŽ6ÜNú·û¦¬žfÝK¿M¹³«=j_5Lˆ“e«gèkŒù.¶%}Î-²TtòŠé£å(ã4?±ÞŒ„ûÚ%ŒW¦Û饎4xçüûƒíuÑÔ¦bε•]XÏ\ôúqÕÎ]{LÊÄû1.ÌÜánrçƒØ”?Þ:²¾}š×3˜° #&.îµ[¦Ä½>tá¼ÍOD³\uË«í1Å'ù‚Æ÷Ý[¾”¥":ÙêÎå>ɸµ<ÔßÔ/vow¸+¦ &ùOÓ+UwrsžM1wr3]ýäz· Ž(‰j·`ŒÔKùþL<%ÈÕìË ›€ÊO5öÛo,Yö>±¹˜¹B¡MŸ¯`èLõ¢B5üPDI)²å.Ë_ñ>¾rÅs?suuWf«·Ü÷ªôéþt­»ëÔØY"V»QÖS÷Ïš²s|d§À¡…®r½-¯¥gã ªÓ´ð)²-MÆ]â¤K”xîâÛ Îv¹íúïÿ¯_Ä@ã#uê äxiñ’ÀñÏ|ÓáÁ³tÇN´¥ñ|Óþ1Ô¼qÓŸéÉ&gláÿåšµ#%`3ùÚ÷QÌ@q ™©!r‰©IWÖ´ ­Ý=›ˆ?"  ìà+øÔ <©ªú®Å=Ý+¨‡Ú[‚`ü~œÉÈOë­¿«·rŒ?ÞäélÊã4?$‘sæÞ'Z383ëéùÒí\ª%?b…#‚ãÔæà(‡g¨ŒÏw,{¼„95õÞ°ÁŠ8.äþí·Ûã›÷¶]¯ h´Wq§óÐQ.Úo§€1¢3nÁ,ÄŸÎïúÝ•J!ùOeëÜšœq–ºÔ3Ùä©\Ý® V쓱mCEŽò {R¦þPDl΀õŒ Ýo³UsÉ(}wöÈoÅÜyMôÄ#Éê5zÀØ]Ž?Ì•Lp›[¢³W+­ »]»(~É®€°£”O ×_s½774ˆ­~“Øoe,w?m¿t0¹%œ½óü]Þ]Ý'óŽöëd‹€×òÆíøàî–*W+”x¾kÊÂ[AdZ0-(„_æ’C™ ùá®6ãTPçÉ€l"ýHºŠ[UÆÍ/Õ}Nîš/‡èAO(SîøSÛ.l`áèo.Ÿüüûév‡Vendstream endobj 652 0 obj <> stream xœÝ=ÛrÇqïˆ>•*W¸„ÍÜ/qlÅI¹*¶?™y ^TA¥0_ŸîžÙÝžÛž=@«"=ðp8;ÛÓÓ÷Ëì‡s1Ésÿç?_¼=ç¯Ï>œI=ϼx{þ»«³ù^úp.å­•çW¯ÎÒ3†ääÎדôúüêíÙßîâRLÚJeÂaÂßFz'ýA]\J©ìß]ÀKEPZ~bnØï——Ú»Ix}¸ÅÙΩÏq†5J†px‹¿•ÕJYœO§Ãá#ýðÓþ÷Õ"ä1œÇ):å A¦$Àú§³«ß"´0ÛjmMÖG«Û–¸ ÿä?à° NZ„v¬•°òðfLÂcŸú3n/´˜¢Šáp¤—VÇ„ˆüÚ&ìÑEHÑAOAëbø6­œ‡kœb&üùž½2MR(wt&ÎÛ`êÕñ­Îèå·ŽAepµòn¶ü [?‰‡ÔäE<¼[ñ°h5i£l9øOì|üõ²H>Á š„CÍ'x³•Ð:úâØ%máR[?©¨Vòð]:3¬ÚDoÓµö&ò Ï×Ñ·ðSÀóJ(¤0mÃd¥ËKÐŒWé}Òºt®ÆŠ(t ’ŽðÂåyÇ7õä­òÀXW×ÀH&”¸(`Ü$д—p —4.á! B@¬’B™Ã‹‹å´ßáØ–†áûu8ÍÐ6š•ŽJÄ.†aw^›Žk¶:28¯|â4ï]P¡Ø2à Ÿþ#[æSú­–Å£y~iÃq{‹¸¼ƒM,8äçs›°o |§w™¸ò ßÍ ïe:UôÇΩØÁŽsÅÍ# Qš­éø&L±›¶÷¹T€Â„e 0OƸÑ>¨j‘BÞ¤ '‹\ ›1âE'º‚#ž¨âRZ5™àÏ/¥š,É}¤†ÁI³³àXåèûßôd4%†Ùt¹B;ù!ÌÔH$/O&h¥]ì< ³GHÞ -/iåñžï‘‹”7(þâ$`‹ßŒ‰kÙ/g›o/.ГҖ“û]ZЪ¸ICä l÷+²ç)Ç&µ™”1¿aGÃè稨Ï6ß-qJ>ZRhÕÑât°OfôÐôÎé s¦Ì° âäœ §¢@ÕmzÈÇÕ‰U•ƒ Ë̩ƧòÓEù¨õu _“CÓ‘É´L%“µ=¡vØdI‹¯Tàã°4ªý°qY´üG²…!ûÆÀÆÁ8¨cæENõ•üŵ+)÷]vÖ šóë N“QêðËмèbë £ž. g{æ;Ûç©æn-úR´p@ØÒŸêzF8#ßÀ¢Lç™Á£ÍƒC8x_cX5€¢°•Yy¤„P Ó­Œ"n¨ŽŽNÔ(FšR`‚Jg>·êAz1ÚЈCxʃ>µ=eºZ¨™s_Ê”ó<mþb!qhô“ˆ±R¦7o]d`¡û‘‘³!Šr¤çK5 ep5Ø=þÏ8ÙþÔhöË´œÔ~LÀ´{ÖF#ü8­¶,nó±7•»ºK`x[þè :†@Â;¤õ‘ÅÉ%?·Æ^&äDk™º,?R¶ÏdÒêÂ7iW»¸9!B%jˆì=àKÛ™ì3¬0RÀ4/W´mò¼ c©…¸depr¿g¤ÃYf¼ZÑšØ"C?¶1k«Gè’`’<‰+åúrµ<3RÀøÕ9öµ Ÿý-¾\NÑ4¶šåëÕP™T —v`LM¾¸ ÐÆÉæÜˆ"+uŽ KöZ¨¤uºVø0 ¿;zf¼¸ ä›d7ÑÜX»È0*Ͷo„øqñ!R†øÝA¯f¾8.nø1-gMa:š’ŸÞ'»Ì9Õ³¡Èµâ:¥rÊ`i´r™vads9«òßÏ{&~Ê».ù©uŠiód®ÂÓ`CÏvfIŒoðôâ¥å?”îœ*_JÏ™ ÜG >žÙ^|ñ’æ`7ÕËóÁg(<œÅšá‡ZA„û ¡áÄ‚ÔÛžzìáðìÙòdòLÀÏ+\¤OE=“èoÐ¥ÑÑ-UåÇL`HG9ÏþçüžØ;ÚN"F”µ•CGô kÈXt€ònü¤o„ކÊìŸÀTçúðÝIôÁu,SR@w 0LAU|JYŸJÉ‘ó%cž…½&£€Ù²‡b}!EßéC ˜ÓVGÉ@]Ù\ ‡…Ç3ÓG/qXzqìq¿“Ý”W“:ÛPÖHm; fß!ê*+˜Z H†d·dÃ&&ø@[4d‹ÁÄ+3UˆòMÜ~!?íN¹ÒÆä¶ä笜Ìdu(}•YÂ$¼ëþ¼¬;ÀÔç„mþýû’véMbŒŽuÎL#Wha¢ Ëð}\ý½ÛÐW cûM# ^£ˆ[¶ N ¥g9£’½clH›35¡b'âáw8CXÖ!¾ ª FÌÎ1†S9‹ðØ' ¾gTÚ`ØgOøÅvž'°h»=†'鱇€‹¥µ ÃÝÜJ¢6À=,k€ti‚ˆ žù #´]3˜¾MoñužCìCô<»EWé™BPTÛ.LXYèq¤‡é” ^r+.4OÙ>ÈÛ)ù¤Þ?&´oØ'R­´ñh°Œ ì`˜-°ˆ3u€ÁÀ”fHhˆÙ(š©t©n+TÁrF‡Ú‘@±qˆK3ŒÔ_+\QùFXò ±œ*ÚÈc %†;â:ºÍÖ ²ÜÏs#sÀÌ©E =5[ºÂ7;SÁápC”¹,nÐÓöK_н.±FÞFÉœ±; ïåb R¸ss\LKÐsÒ9k.XÝñÕZÃhC±‚¦Ó‹fµå‹Êèþlý’° c¾©dN†ñ“CÏ ÉŸÛ¹Ï+NNJ%'&ø²Ë#eµŒAo#žxLJ÷L*Ýy›&£wSejpiiuá„t£caên*—éä쨤͖ËçsшÛtNàÙlÍu8*dq–F8¦±£ér2­?õW¹IObl¤Æ>Ôlר Ôáå½kBø&^Oôc–éèV8Oè¬,W‡r«œ¼ÇõNÅIáTK3ù)~‚·W~Ê“i.ȯÎ%RXSy²‘E»îÖšð46Åõ’Á/¯að*¹=Å(7È8+Tmð“ÕJÍU€)xŒÅÜÐf5%¥±õ=¾G™myÂït×@{M*€) ±¨†ô²¢€ò`6(»Ås8ÅI5ës];¨dÌ õÍ]z±,ã ¯Ò²K}tO¨^z¬•irR´ñMYCû…Ž)•ç2ÜñçÙ*€R á+ZʼnᙕšÊHº&!6å §{CDUªëÔŒš™3ÁVư¥–âSX¿Õ„`ì$ŒÜÉàÆcöð'–Úø*„Ï^ÉÃBs¨§rÿßeù"K‹ÿHƒ;ß#ýr“6fKŠÚ'[ñ<ÀÈ FÎ]ÎòêRX§y²ˆäÝÝ?^Þi-(aW§‹ã¤£i•.ƹW[¢±DIÄ‘Ì qßÑŠFlVã&TØØDߘ±¬Æ”ˆNá2,KÛ^o†¢¿0ßÕßózµeª±>³–3K•Yh‰cëcZËÆÇË@¤34µøœ×^¢?Ñþ\.>LÕ 00T€üµTÍe7ÃR«Æ uÆ/¥ É[÷àÿ½$µ±‘¤—'IÒß#ढ¬µà±pÅŽ:Ö*E ç9){UÚôû)ÃBcÔ·0‡ðIoUM´ O@ððTºÙº“€ÍAWPuP´sãŸ(TD´Mâ Y5€?ù6+/Ê( £¢T²ÀºM‹Ñ•"Ô8*S¸N/wM,f~g6Dã\S'ü4‡þpQKu,À^YšÁ˜©è†hØ¢e¤W³%j¼öQWç±p÷Scøb ã=q6 ÁÃÞÂçóV7›Rúký£fgº¶_ñPê´9«½í9Ê 4tAåƒ28þnàvç-†z¯úžTë% †ÁðÓS ðκJ8š)ø8R ·ó‚~äãcìJXP_ÃR¬QÂhmTbZ–@$&î*AØÙ+J·ÙÕD/ ³;ñç%Y¡md¯pû } SÖºœ4e:>[ •¹ Û·Ò7Uü»ÒxÓ§ït468SXÃ×é}Xz»‰¸Z`‡:*C­»úf@·*nz’}à(ç^·ªÙ)ªFÐbK²ŽCZkÂäVvJ uå9 ¥êÌ €j7bm¥q³e0-Ç{Tµ£rìÖԛ´®ð­mM«©ÍU%­àjô ÞŸ¨çø|ª0ã.Ø”Aµö WLOô1ÄÁV LÑJ2ód#?Ôe~+OÎç$˜Ë|N]¬Ž%àîË:Jh<Ÿžò|˜•½tp°êÚÈãfÕé %Z©I»ÆÇÇt³Ù«Ž _&7T8ÛØ]ŠðÛ´}_ Ý¥EœoÃzؼ6#ç4ÅËGs)ò;›²£Ü0îÒHÕ (ÃR|v¤]ƒ ‰ìû„ˆèvµ—¥3–øðÉå2”’¡.5CÙw€10•ìY´ƒÕ¾àž:âK ŒkY8²¤Óµ_,ÒdØÃS ˆÂØ\ù'†›ÝݱT%QBäÝÐXJsµ+I®]M‡Ò˜AOC¡N à|½ÝDÒV­¤e7i½tôa ˜ÕÏl•>oBJÓãFŽ‹3_íÝÂt)–9=²6á”e’Ëjé7ìaµï‰î’'£éèXv9ÂâèÒB™o¹ÏŽP´ÅpSE–­i¿'øiKÍ=«2š£³FûÞM§T½±©¯3¦5¿rüîq|8Þèû9…ð¼Ü'ë磊U á–z¸ý¢›—3²–ÌX0í·‹˜°l8º£}9ðWW¾íË9–jA¿oѨü¸Ë¨/5ÒŒÛ0\Ið9Ï.ئ§•ÊaPÕGa=Òˆôuè[•@ÀÞ†n0RÁóÀ]Ós6¨æ¯ˆßb¨ŽD´x5S‡ v6j!ànQŠOÞfE*PöާT-8U¹1§ËÞ¼¤ÄÖ»8nJN|LÈC_xTi»a[ÑéíÖ(`4Ýæ®ý}n´K¥†¡Ñ Â/`EÚ‘t­W_û橹L`hÝõÌ ,Û6ÂLÊ KF~ÃÙ?Ð[)Š:P¸ì¯bBƒvtO‘ € K÷xÖü² h`+k¡‡ù¸¶!yÞB‚èñ¡w]¬¥=Úv‘fÝP%ü¼”ò|ÁðÍ|yЃr¸³%õ*ÿ»ê–b¯P*ø—q¯%ã™æÓþŠöþ=%duXºtÄG&ó¾úßÜôôݚɲQ#*x hšúg£M ;VF°ã—TžK•e™P´øeHHÏm¹±öÊñ £+Øý± †ÏFëk*"×j>”Í’ä Ç5¼¤n%=ñcÏä#¬Hä‹o›HØ#î˜@pø½%ߨ;„·¹ì PãÚuIȻ̞n³^… ²Ý&°/ šÐ;}e™'a¾Ù¾™DÉñS²(s͉§äU*VÝ{J‘K´Û>~!šD}™ å½)l bDJEÄ:×úÄ·› ¯«ºª«9›Ïû…6T@±qRki—=£p>]³ˆçfgOøËzÉ óÈÖ’DéàkrH?0­Eä5÷Þ(WN@©q©`C²£ÂëtðmB¼óæèv-^ {DýfÝíå£ìvÙz“˜)E£gŸ¼¢ ÜNq…“m+®¨Xu[\ÑqXSÔ—=V³GÚ‚:œ–lh’k À‚­ïµÛȱjp-•kZ££xéÞø ,bÝÐ8≇Ñ*×)ï#Ëà 1ß­Jâ¬êP¢)qï²vopPUIß]€mt—ÐåiÙ3ª°Ã<ÍuÞ‹ÛW1°³Aï–S;î›q mú#‡KÜ÷µàAýš'ÐÏ»m­kX'bqä8Td/~píMfÑM‡Ô÷»°°iÒ¶ YU•ÔS¸=R` SBìz§_tÙD~g#rƒØ^)Ž”çá¸.5Ó½;…TWíŠ#zƼÐŵEy^n±v$7ÚÁ[’am`øVä‰[áaíð:^û+ÈûÅfå ”PÍ]Ú6·%ª³1Ýkì$µs”7øý¹ßi—Òûsð*„Ž…ŠM:“ªì겯wÁµ’ÈGx£Š?uºÒ­æù “»Ùé¹Ð ‰àÝs=§b6ÚÒFâ|5 (ÛÇjOÈ@'§aæSë^­ †£~·FƒVà7å%mÜ#å0Çw9wCÌ^¯oMâ6g“ß©>ÍA>e´ç(cxÌi£¯rèå«ÅQ¥¢72íÌoæ{ óìô-h#µåÝ(b@g¿'ñébùVÇ {Œv¨ƒÎÌË9l¹$o0¥\1çͺÌAï\ì<%\˜¿"¥ÃÐö2;/Naß y½n~üE 0Ir/éŒ^—¹2®Øs'`éTTïÎdDEr˜&ÊʈÚÄe÷“6Ñþ¾gß¿§]`Žh1 ‰N8©1Î_>¡ïsÈÁ¸XÇûö=v@®åí “¬Á“;zƒ€géDZÌ Xß¹³ g,š 5¾ð8ÿ>âïñ} Ĭp³ÒÀ3K´ªùp‰¡,¨à¿YPÑ0eIPõàË’ ªÜ’ Eú‡õpwŒ¦âzô¡  ‚hÀ{ £êëª;¬*·€¨úÛÛ÷#±{4@ p KwLø¦r¬¹ÃÄLΆa²®[ÄÍé¶ W©îu:Z9Ô¿.÷pHó¡¢€AîÒ¢èòË(éö9¡mƒ_&4 ‡üÅ-é„Ǧü_r´K°Sœk0—Ñ©ºÛ(ý…Àò‚V¶çwÓykµ·¿§{¿ÔºH“°lfŽ–ÉÛ¸“}MƒÝn•qEe¨ÌTFp½§dè€ó˜Èd­8ííü›ŸÇ©oƒñ±Ž>¿J€ nØÛe7J¬g‹¤MHiå|•¡2öðãS™‹ô…¬X¼^ŸÀá&`Mâ}à Çwù°á*/Ë¡·<([{¤L`.£Ú(H*®”iŠÎò%0¥mTÞê‡.¨ñ(¬´¬‹¿à´1Ѳ“!ÚÓ¦º¡fœ)]²õbý™ÏœÏ~¤*Õh‹:`´î$¹e ÇiÀfïš'×PÓ°üÿ¡Ÿ0sàpn|a¨“0l®·âlÝ?Þ¦…ƒ…WDkGw£¿êÖ ©ªÔäâ0ÕÞˆ²UQ67 -tÙàБE1Nÿ;=ÕÅz·‹²rjl.#¶Âõ€c·|5e«õ­î™o¸ÉâוúÊì4ºÄà :Ž„?Î7†µEÝÑ‹d'­ÕÓ`“ÑÛ—dåÛžÝõ=ŽTÒ±#(+ °ùXLò÷ëÏÖPæ¿­£ÿµþ¼Z² ,¢š¸:û ¾ß†ó×Ï xQ翜‰ó?S.ú)êsÐØSyþh/å0ËÈÍÙÃïƒÖûÉßÅ´Z4´(ДJ_ýsâ?®»û~ýÃúó_{HÙs¦rèñåEb™ùæ©Kô$ø*ˆL}Ñ¢c…qKv+`ɺm„²Î·$SIR¦HÊ×UÉf Nލ/’Ã+ãñ"ê/5°U.¬÷ø}uÓ ïîÝ"XY:t¿¹±jg ý³•BƳ©ºVþ‡Ù<¼àK ê®…^HhÜþ˜ÎPo4^•záµVY–«œ9$½¸Zsà0Ý /‹Ðâ}‚C`¾—×6Œšç:ß©¤9Ü)EI7šð¤¥2Ïý—·l»púz¥ã'úP¤ŽØŠÖ½°ïÉA¢2œ|ŸícPHje=Õ`9ÂÜ觬¸ Æ‚“´·­Æx„o¸)# š"¥eINaý¨wì›fs‰ç¯Ó{tu¯ÿÎLÒ–õíõ~:U)©x™w&+ô‘°lNØ*’@­ë> stream xœÍ=Ûr·‘ïL>âTª¶êpKg‚û%ûä¬[­7‰ÅÔn•åJ¢˜”EJ¦,Ûtíìgo7.ƒÎáE›äÁÇ0h4úÞæw;6ñÃÿ§¾º:a»Ë“ïNxÝ¥¼ºÚýöìä×_)«v~òFµ;{s¿á;.̤•ß+'nåîìêäëýÿž²I2g-ÿæìOð­š~ ?µô¸ÂÙk˜ýfsé”¶û?½qbÿç2zÖð‡y7ùâì䯸“v»Ë'jbz÷#œç÷'Ü8=1‹ÊÉêÝÕ ·ÜLÊÍ#oOžOÝ@>ŸÚòÉh[Ÿú/-Ä ˜û¯ÊÏ/Ê„ÏÊèçóè|$Áœ›<^pÈå–˜˜¬ÿÏÐßÊÏ/ñ§\ÊýoË(þ« â_Å£;J>I+]¾éßœ¤6“0zÿýéMJ3Ïäþïø[[í`Áào)µvÿ§ëÉz±¿Ó ³Ìì¯O…”äfÿCüyÇ«oN|bF{¿*)­òð]˜-áÓý f…`½µ¹R ,6 §a­&-…ÚŸ—ÕÈtk2ã%9Ö[2å"KÐpØZ@Ÿ«À ØIXpÜ‘–W´nÿž '¥VÕâiS%aú+2N¦§Ia C8Ä›©Vy{ÊÉ)2ãù¹´üDð} *ɬGB9pf&Ïøî¤¨•á‘>("¯NaWæ¼Ù$Gº‚]½˜ÜJ¼*%Ú ðgÜe¸­À¾‰ PÒxƒ£|ÒL q<@&¹ï×dö‡¸ r¸ ù’LIldMŸRýy*0%w€Z¸?à?/µWpXÄ[øbŽ38’tØ]J¥ïr«‚kôjÞ¦¾VÀ¥~ñgTvJSñì†×œq‡í#ùC؆Ò%¹§„¤6l$=üOßR|¡V¬&í–ÍÒ-7‹P|$6s°P*ü^йՓ‘*Ò¹Ö‰Îé¾K2Úœ1“DG†Qœk«L§Ã%žú38¨ !M–[œÓM¨$úØ ßy3®a <3ÂuU9|Á¼7™dE3ðuÍÀÕ$…›m€†Pf¨(OÑ9ôŠúŒÔŠ<¼\&ê;qå¥[%fœÂ+áÿ!" Ñ~颂t‚•o#A:5&üãe n7Õ€äåv¤Þ–p’Q~xM(¹•õ°£‡#¼Œç‚EnË`ç\aí´P¨MR_‚q‰”wOÑ}¿lÖzjt±¨ §[FâQ'+r?_’€"Jo¯ðxî Ïk(_Û* ]ŽP##˜V˜|ú¼æ0\Æ =/)ñ^:Ë/øà2Ÿh»åÓ§„ØQ“rÖ’Ú-Ôd˜Ñ2LÆ`W¦AX¨ÌÔwˆD®a³ºùf &¥·’é¾P ݈è^šq‹#dýðŠ`žLéêZå&gÝX×Mštm° £®5Lé4#üŒºÖà ð¾eì íù¸0Ù b!ªpØ»JßPiudì{Ýèž5 3¼•ÿt½‰Û8Û³Úâ¤$FðŸ(ß+×]$l×þ.,h¿eÕºf̧µö“ÐáÅH'^–a‚‡µOÙ˜ >*D—wÿbO $ôÞaãx”F`®ip;ÕZÛÄ,Ãÿ÷1R™¿÷›x Z¨…¹†—§¡Dp~Š´%ŒGÌdꥈ§ÔYë5i€gD¶)â +õD,­pnº.O«Z*æ) È€Ö<} ”ÕÛåÅ.drâ1cõžBCøeÞªYi&¼ï öo^•#ä=ù°ïÄ6¶ðÌ/Nɘ *¢Tk¢B í(D·‡ïeÄöÿW4(G~4H©IZùÉ#ˆüÀÁ°Á“Ï»³v”Jt%Žþ±Œ’HÌKøåy»n™\tõ±è’@Œr2v$…j “ÅäZ‹WÁq‡cÌ@%x8&¶~= á ™<ƒ=\/Ð3ñQƒx†u‡ä¹©ä]<‚©­Ä$´cf¾cK”xT’S±MD(•mKƒÖd­Ê([…#™ 6XJ¼°ø[²xGâ…ñ¥GëÁ®l%êfYH=TÆŸåÌRq Ãp£Óv5[WÓ %Ò¨iR»¡‚Ex¸mMf6/w«$ðóœC'x Þƃa{0ÿVx0À¢ùQ&;G&tMö%*¡&Œ¶Q&)Õ·„N3>épÐÒG¢ãä’;”Lè­´$ø†ƒð€žKؤl3ˆŽR–$¬mPBÚØ/˜hü‘92PFóÑ •¼õ ôzb|@(‰¾Ÿ·jEXâjÊu$Ë[*à…JÑljŒP*yA´Ò~RK_¢¼˜XhKŒôHñ‚3ŸÈ„ IŽùqlr ìT<ʑܹӄÖáÿl6h…I+jÃ¥‘‡Øp è5Úp$9÷YkŒ‘ä\øùçž GRvhÄs³`xD<fXs-5Ì¿ëZ‚ÿ]¬Fbör‹A(r…;‘?¹°ÄdãPb½~ÑüŒ€ÖÐ-ôŽÏ‘b½*g'VÙFÕ ³19¶¦:P•=Ju`D¡ï­9µ€1Þ5Nò"P¦‚›HŽFևٮȌ,*>^qFœpbø%!¦QTR-KCǵ'`9ᇠPOž€MLÕ¹6}ÒD:a2X¤|«†Ó•©R ‰3¼•#£2ôäßÓj¾J9×Nz é ¡ø§RÒÆàŽ £4}‰€€!ædçXY åc lr"¨è!ºªM­Fè!©ÅDï†&ÀG!ÝZÇâN`ë4¥l¼Nøvn”jî]…„: ãWàZ«·5L¥˜@Ó!÷síÓ0M±­xˆš9žÈ_JYƒÚ_Q/¸ìX;ÊÚˆ~9q£ïå9¶›ß*àa#áWë),î¨t¸R“1îÞ °D'ŒKŸG’¶Ž"PkõÇ büÄw¸ j]“k®R”åCŠýÊû`i5ý4⪚˜ì‡t8¯‡¹‹…Œæç² ­Òy9X¾ÎÛ†¶Ho BÓ±Šl„!Aoka7ƒ/^ÛÍà'2ÉwÀ—X˜>BaNg·!¬`½°²ìs€ƒk{ÿ·>FM˜ô1ž$Bšà3Nyó7lSr\2ï} Ç®Â*Cfïã‡Î°‚g(î´C«–H SïO¦„´0V¦ì×3\'%f½QRÖë¸ÉÃUìÎþãäì_¿®§ƒr‰Aðz%Á…Çëˆ!¹ú†ð™…eìþ‡˜_²‹:¢ü¥cºyFý1¸¨Ë(!© \êá@ô¦ ?[`S$ö¤3z÷ôEBBÍ2ñ¾† ŠÊDÈMÊ¡®õ 7Óšê!œ„:mkõâj°‰$à…YgV$&ÂQñAEáÔÖÑé‘Î0çu—ÆÚ7j‚Ë›FϨ^Ž,($g·ž ÉAž©SêDñ©f ×F«’êx.,=ipxƆw/¬7%=*+‘0bò&Ó$³ÄРik&`ºÑu0s F:)ÏNÀ;ìÏíˆBÙíA)ë"œg'«ÌðlM=Œô¡èq­öemmÅM$_!ZÔ¤ìEŸ¨åБ•D¹g&CHT]°ÓøšyÆÈDE¬’õ>êï0cør­º"¸æ§º@Ó”†œ˜o#”¹ S–«ƒghî~³1µ\D¨ÀjØmÀÙ¼«z{ÅQaºh‹èâqjãÿý ʇ¹˜­í¤}¾Ž9Œ8”߬”Ä‚a‰¬±’lij…Á÷qÕFéÍWð­ésâ Žž°,ÍåàRÖ™r½ ÌálÍTŠ‹ã-°!÷Ò´&#K01^¼Xÿ¸’à›ŠŒ¼,?žs˜ý¨–£ÄÎ2òW &c+eÑ>s0VKy|»güù’B}G U9þÇûÀñ­jCŸ¡¸ûˆUxÄúf_ö0»Çd‡ŽáÛpÌDþ²Ý|Åw‚ä0®üèÈFŽsªµZñ¸8+¡ ûîiÁ¢‚r5Ú­Ið¶üü¹ü¼*?ÏçŸýã@Qy98“¹?šÌ It°Å«‡ãbNÉ] @¨_}–«˜@Ø3‚‚\Ôj=Ž‹8©ž/ [ßK.^ýô§oi†€&fiOÂ!ŒY>¨RŸVU+†)9Q't¨žëÂB€îbBj×`"ø-œìòwõîqásRÔjøÉx,‰.«aCï:øcW…ʇC>Jí‰< «€¦¶ iÅãƒTÅ=>ªŠi¢;ºÆ²FcÊm •ál¥õÆ·d‘Ç/êÚ$³Q¥]˃J~sõ L7jasãÚøêp˜¼8$ ¯ãµöBðˆq4¶ÚÀœXŠ'gŸÀ'ËUSb‘ß}Å‹­„ÃÝu~óð$7$†GM 2†å‘3ðcSx”!¹<›Nt™ ¿ ZÆtó¦]GÄbf¡.ɬ!ï8"ǦAÛõóN>°I–¡ï¹k™jž²­qFp—y‘ÄA…Q—µuUè«i€s¯ì¹)™-HšLU¦É@Dàár5¯u#JY¢ÿ^}ÎŽ¶‡5˜,ÜòåyÞG‚+×qÖJ7 ¿ãw<ãÈÁõj\K—â %/Ò®hDµˆ!ÔlÑš›Ø¼‚»'0ù%ö»Ù`8T%Åy°Ç§qÙƒ<>’l¦/£I2SáZQh¾£%åµ³“Iî}+waÀúÅÄAZðp¯û¾„Ae6ØÙ¯ãd@Äâl¿÷\¼(o{dŽŒh<œ`%×zU®õüŽkU(2Ä£ú– º´Áò¯,{@òznÙ‚¨ÕC 㑜…•Œ2Þ¡­ I¨¨ÃPð£Z¢p‹a#S_wËÅG¸Öõu÷­ÿ~A ‰OŠ‚tj5Qj ½+î¸liƸ"²,Bʦþ%~‡%”ýÖO[´ÊM\ÄèM}›®ãl¾Ò•ã"Na¶×Æ'[µq†=ŠÊ úäîÑt…š8¡•{ê/p:¡ÕÇŒ§yp¥í|܇5R˜a®’%MÕŽÀ\‘é*¬;6!žÀª6ö¿#¸¤•°Ô‰M›„¦Z’æùi€ õv1±F=*5>à[é¯vúÛ¸qMH·£ÌÖÒûyJ5“`(1³Z‰²ªN­Æ’·AÆÑ»Õ)=òêT•õñ†‚~‚#ÇT®)u¾>y“ÛÜ}ÈÕ•û1 Àmó,wFúOtÎu…Ñù ûè¡øEê.´–Ã-¿þoåéJ8)ÓGa…²á(Á®ù|Àô—ݹdZ8@ƒ”¼§²yôôüä° ÚZnYi|É´ö J(ÒRõÕáyµÅú¤°†‹Â×°tcØ^/®é.ÏZ(٧ͼ‘••›ê¿"^¡Àxøaíx?Ó ö•UOÞ”Q"dÕ³, b[Øi,ŸÃ‘ýðG%°7ñÒü"6>“ásÂ@£’ÌN÷ŠÀɵu‹ ™öŽ|Ù²*:ïÝîÞ.ç`…,ýW8x¦¾£ZrÚ€k*üª_g”†ÙýʤWïbŠ—3RE¸¿ÿ;C€Î`ÁŒ_DgŽB´A6ÕçZV´£y2ç3û¾§öàOŽr "qºfÃFר©ŽháwXc?¬Cª’ L°Ùƒ»G·D£±•ê¨n3[€±¬ûl…çÁ¥t3.Î ³ÝÂ&eǤi©ËÁK>õËѲc€[ZßfGgàê^¿ÅÅÓÑ'g,Æ/úÛ!àn5xq¯÷/nÈøí©CeêDw_®îwêð­kÓ'¸‚´~˜˜uöÄÕ¨(­ãÂzQ²³’¡ì6çÌŸý@d)……;4 Œ$ugm¾¹Ôl¶Ç_õ y<>Ÿ‡o’“&Ü” ïÊ( ÀôKxÈgoš¹ÑM­œkØØàU¿ì.ð®|Õß÷§òó¶ëßµïÿà/°–Ÿß¯+ŒºrôY¬›Ñ¥Ì}aÛw¬°¾ÉUr›í-4MÛ¾ãWëÖxÞÖø¹&ùPÌœ…mCB¢ã'må,–DØeçiìZÆÇ´ó°.ýaÏ âÃ6Ÿ¸ø?Ô¥°q»Ð‡ð\X[˜‰“a} ¤Ü ˆ;PhÐnr‡Æ€09bÂWš •â–Šƒœ¶{…­&ð‹ýçd8¶i`V߉‡[žšDn”Iq´4=dpŒV<¥ €ÔðÐ)ï×a:-³cÝC#ô€€¡ÔbÐ;Cõ‡ù<Üå|-ÅKqÅyá‘×…sHÚ@t'ÖºiY«é‚i¡0-š;[Ä0áaî”q¯ß)•;y„aÒ²ã=N 4€„]Õ„4ç%å<·‡ø0øÉŽ¿¨ ó²¤U¾.R!ud²D`<üc8ŸPÒ…Z°Øí6UG¦Æ&AG¦1á’\fêˆtáÃ̬a a\è‡O:ËÈZs»¼Ò…cЗ]®cs»ÐWEké‚áÀ:.UÈcóIHlŽc¼sûÄj>OÁ“X0û è$ ïû*è~YÐ,,`VIÀì¿Z1hYú{^Þ»rÚÞ-&òM®Í)˜²h#XŠ*¨öA¸rÁñ©quYnïæT#PW•‚/d¨(—*™ò““T˜ŒÂü! "]0©áZ‘üÍ,¿!šú›V·4°€ßd°–±sÅ'ôŠk¦M5Ÿðsa‘AK%.áä>¶"uI¡}Žë%¨Ð}ì/\É«E´Rjoä²é›¤&•¬jPsZújĤÓRµYÈb‘ )v9ö.C÷Tè¼{B=µèç# ¯ßßš§.´X°¼H„ãÃ2ªß_ýûø•°ÑÛ·X¼ø$FYžÝ¯™‚‹4üé“zµv|¤W†"øßáÏ,’g’ÁºCÏ÷«œH?§>¯Qý¹Ž7q”÷íôœŸÞÁ8A¶k V‚hã07§o xMbÿ2Þ ,íÖ«ÙÃ0™‘jÙˆŽ/ñTÜL8Pß,+äY8«åÊä±H 6Wý¿eŠR:^l.ÔÀšŒQÿLšŽ£~@*–ñ½F8sxNx0×;5'àÇzÙ‰h.v¼»€ê"M§»ò’îAWXôŽ%%9±mCE‹[Іr[Ž–^&ù[1§B]7ñìÖ.Fò‡dlèù;\´ëeX²Im‹Ê qXHK”–2ÈÙþøëÉÿ4Èendstream endobj 671 0 obj <> stream xœÍÉr·ñÎòG¼#™2'Ø—k–J9•TâXå‹ãƒ%ŠTR"E‹ò¢|}º˜™Æ6|›¢”z‚0@£÷ ð;1ÉÀÿòŸ¯î/ÄîîâÇ I£»üÇ«ûÝï^\üö2ˆ]œ¢SÎì^Ü^¤oäNj7Y¡wÎëIz½{qñÝåWW×bÒV}ù+¢Ð—OW×&Ø)yy%&‚RB]þ¿ÖÞÄËчÚzå/p6,îÝåO8l½…p1yo´—¯qŠ™œSÅ—ó>0ƒoÿ. Û‹á×ôÛ /ܼ¸ Š>¥é°8Ÿþ†ÁÂ>ýþÅŸIJÛIÊM2@Ô‹@Ëßá RGXΜ¾ÇŸFI­/ÿºŽþqýùbýùÕúó›å'nýÇ_ãþ6ìîž.Ì$ìî çŸ.´°rrD=y»»‡‘ 'a–‘·ß ‰^Ÿ'–˜tZb%ú·+lº…M˨§¨8JY ØIp(5Y]1CâëõçÓŠå7ë¨ZÞ¬?êÒéíÕµtn1^þórþçUqØFPC95óÀ{XeÎÂ*ïV¾Ï ®–³e®XùÍy=ó¦É«H Þ&‰Ñ&ô8vþ9ÖÏfh½+ õ“özáØ·8]Â*‚~hc._^Ó_€¿ .s­¥ v×èaœL#‡j`çËWˆ£¨´ÃS×Ñ[­ @¹ ³¯ŽJD %`KF|‚\ƒÆ$B8uÌ*Ãi)Û°K /§àLy¶¬18ž_2ÏÔÒÖp-ÅhøñêZûF)‘) U·(®`^§ùAj€¶V$6(këô/0ÖyÀí„§ðëèħÖaÑÌ åäÕµš”‹ŠØyÝ’Í!2ÏA:ˉÔPBëè;ÊÑFººQ(;#ÉY0ÖsA¼_GUwÂÝ:ú~ùÙ%¾!æYˆÿØ'2Ãë]—ÞŒ îñ>Õ${Çg¬Fî‘ !7g–WWQÖF‡¥0ÅXN @}ËhÍÙžoã:€$y»eîÀêN-Ð`æÊ«ÜgíŸÇ%ÇΛùˆ¾©Td)/C ðC:ƒw‹´hå]á2| S"|»©"é” z¾¾BSÿqá(Òˆ°€ð1©D-Q$hmÖ‰œ%øòW 4(Šÿ‡¤!| ´ï;h#*pB¡Ãѧ(,çÇÛ4 Z ¡ŸBš‚”•Å}¡WŒ‚|úËGŒü&Sh3D ‡àMXŽ%Wdsùsš b(Eç¦ääQ ö)í^%e«ù?ê¯íÎÈññÖ¤àIȤ’›’43Ó)éf¦ãœ ‡b:¦+!¡gi䞣AÀ¤’D`¶/Ø¡FÊ w`lbذ.FÇÉJÝñ£ÍÊ™¦šcÀ2˜òùÄ!°ðóP-‰çwð]úhP^" ×åº&\[5¶'mi¶,Q†o“>N…Ζx²û «©t® ñ@ÅÞuU)i=‹BãmJiLÇÛðmžA?³·éb”#ÇÁzçmn˜ØŒlLc $ ÄØÊ=>Ž™6†›¬:@(µô‘ûJç<Žç[œÁ¿\¼øÍ–;”D‡CÁ¥îߌcÒ”+œ«Òd®Ÿò9ÓFȦ ­[Nçb°ìçl/XY§eœ HÖþ) öÉ[†Ðì[ "ð Ú/`IU‡ ü¼x.LþÌJÏ>{—ñëåð¬||Û‘ªNÜà1\l24*†ÉAt¶¡*ÚörÉÆA”mõbãZN^Ã1òú™H¾™Aеtâpˆ…üòsÁÆsطɾe@Kûö’0hq¢Fª ¹éRãt êÃòõ{"°aa¡’ŽïÓ²Œ­,)3sBº<‚;|̺ø½Éˆ~ ¼,^é/àsÆç× (Q‚~¸ÏÏ‚.Kðýä$UQ‰B.˜¨s¸-=x ™C<ôÙäf´&a×'mæ3øÐ‡~umÙÓ·ÁÌ%Š¥Zöª*Z×R›úÅcn0בÙù´ Uû¢Úr 8¬Ÿótµ:_ ŒALÉnefÉ.2}AΑÍçãlj «àÖ“`°äñѤŒ¯S˜°¬ú´˜ehØùù˜6x“bné8Ôý ìS‚?l´¸”ù1 þöœ?²™EÁM‘=u·¤·´7 ¡…OÊà&‡Êr Ê̬ùïÆ?¦¹M 6U:~mj]‹"@}µc¶Ã ÌW³ŒêçË+z¬ä©3e5–öÛôya DïŸ$¹g¶I.PvÛ?/Pi¹9{^EÎqÎT µôöpjy°ب¹‚EƲH×Òf}à‰È5Ï»•<¼}ÄÌÏ}´QŒh‹<ÜǸÙõ†S´ÕgûÜ€=š.ê˜@¯Ôg„Â…Q ý6í"œ¬Dƚߌt5ÍV1j(ÕE5‚Öø¾MÃÒmÕ2¾÷4SA7f ÀÜ[Ñ-F,0ûêWK¿*í9]¼¢{º|vˆ‹æÕÆñõV*‚é\/• ‘NN%'•‹ScÕõù0¯N3»ÚßÅáÚ[ÊÈb[Z“à^¦tªÐ³·Ÿ?}g.zµwË…‰“òæðKÎl]ƒÁaÐõõÊá(šzŸ‚ç¡–2lƒÇ8Ù# ¶ãð̲iáaZü}JkQÖ~d$ù©àXGá—6Ê* œgt]w<Š‹±ð½›¾TꌣvÖQí‚_!T±“‡#ìY°¥Œ tàÇâyÛMFsª$€òbÝÕLéÙT®ª*ÔxZRqrþæòš¼÷räÞ®&t$ZÜâòÝ›ø®"Ó5¨:D¬š!YŒµöwi®tTk«í(eomÕðÇCN®?J_“”¤RKïÜ£„ÎÕIÔ-UÇGZÙ« ø®¯0ø—\‹uÂí¹ÚÓ’cFg"¸I59¾=ˆÇý”o¹·_jv2H)ÑC‰Ï}ÊfçÅyQ_­sZ¶JPo§mƒ¬Š yæ²Ödž³™ðI+šÐšPÕTý ©ëÌŠqË“¡Žs^Á­‰Z çOLX-Ã]n´»‹c³rÑÝU¯;™µ/?ÖlV¯ð÷ªÝ» ö 7· Çc Çz­$ýü° ÒµÃm°{?L1 Åò49Ûô1Q+Ã< ÅrSl˜å¦ŠTV·BêíœÞê˜õéI¨/%mÓÚ¯û]­ß«E×a!Ô9ªÂ@xÌËÿë 6Áª«˜—ŸGŽªº ¬áàžÊçKT6x¶„šbWª‚]«“@aWi‰ÔcJ ª+GI+¬ëP’PÒ¡¤¶v½Ì.1ÄŒ£Ç{L´ž„ïqÿ=yw)…Ì$B1²Þ­Uÿ„6í—Ø½„Z e¦È€ÖÂÚÉž3¬€¾ÏyH šîH’¾{žvÑ6vàÇrTÍ›T< WNd‘ZQÅÛ7ZùL¤æ€x÷®@n:Bôq üÀ ú=å°Ä$Ò{‘ÛÂ<@‚1L<’Ü*èPK‡ÜõœW`Ã$/Ž+ëx÷'áʺIÉ WAÎ[ §€Xìë‘Ï€ï<‘—îpæ{º 9[œR¿b°ûŒß3xßýjD×½š=—^³ç¶˜Ïg±6@ ¢?I<ŵ²øÉ¦³ÑøWì¾ó¯Ö«gÕñÀVx÷/¦AŒ‹—v±O“õt½Ç ÀÏZ¥~?ñ·ð8Té“^Ž,ôq `›…KÜíªƒ˜¿stjŽu'Aþ½3¾„䑤&zYèK†›Bég6ðƒ¡Za²Ôï>Ÿ#0Q¦8ÞBHfâ¼…_Êowœ‘Žq 5ü {WPµ´ {O–«êJPòðÊû±„<»ûà…›í Uoã$—°X$S¢ê¬þÃl­“’èÚñ34!ò¤3À“KKÔäVQ™Â<>çAôþÙ²Ö‘# Ìõ$â)ÈZ,6v­ÚÂ0:{.²Xo 4 æ&Ut”HÃû ñôÖ‘cÀý-±‚ó¿ñú>Hº­~'» `E™'ጔzÂN•—Ô-^ŽÑVD:=ð¡˜{šR¾#%Îò~d¬´ s-'§Gx eÿn lêãyéŠ )RtW"»w¾œ ³¬ÜÉŽ®/eÐå}²£b5më4:ŠÍÛí8%ŠòŽñy®ÖÀ¡¶nw‹Ì}h¸v×zÙ8Ô©ìdS žÏ0]];ÖWÅê¹ðF©¶ºñèNÑ˃q _¿eÚž_J./êׇ¤árÈÐ9dsÙ‹ÿž¯GëI.J”íˆó©ì¨ÌæÁ "òýàå¨ÒÏXôc¾Þ2,lïåª@$7`.•íÇ'{ôΧÅeÝåFÅMßmã*ËN8S§ú^Ô­û‘èIUÌà½ÆÓU?׌‡ƒ«×XíÐÍãQ÷r×Z*TãëJ‹ab¥nÎè?ÏÍ/ÝsûŽr`Õrœá ³G}¸Àåòv§ìÈhû·_QÏHñ°4_ä=l|[(”E{®T“*ÀÆæüØx¨â@»º…žŽ \sw™¿£(“Þí2í¡ÌÄÃPƧüšÖˆaøxÀ+¦Søxv@¬cñgûç~J‡…XŒ¬5²JðCëÃüêRõÔÛü¸ÿŽÍØOðæ]’PdàK¡(ïj\šõ² yJ™ý³j‹ý( UåO€=ÄGq¢²ÏU¤‹qö¢p^„ZYã2xç¾ßøÌ¤mEpÉ–®Ù£Y#ûÙA›êÉfÛaÚéC4Igkå‚4j;’Á)rÄÃ6ªÚaÂW‘öÁn2àј¥…¡ƒçæ C½›Û½vÕD`‰Q\4>{kl ÛºÒÆpR«ì… ± gG•5okèÍô“\øÿf@ï$ˆR#éiÂ{<¥)Ú 3¦µq6x m|OƒñÊœ_Õ¾ƒåY–± ²›úpØXS{utðêÎõÀeBOïž#³€ü˜ˆ*5¾.X_€$ÊÒ‰â7ZFÿr0>/©TåÀ$›‹aQ'ýö&}%]ÏÄ×WCŠ8©ÃH‘ÖÑ¡Ùi|•ëx6­hiY[ýJ™ºh »ÛóÝ¥ ÷¤‘°öݪÍ:DuGYƒÙ>â6öó¶óP°?¡îѼù)±îUšWx­mèož¾ä‚ð”°RXÖü.l®´\mÑmãõÊêfç¨ì¦…ÆˇŽÛèFÍ÷W«ÄñÁ÷¾1adóN3pÂm{Sp6|¸bϧ¸iA·OVk´%s)Ã¥7þ0ð ®xØ„#›Èº²Š•ÒßÀ&=µGŒo4vgTŒß­iQQ¡ÆÓ8©_g¥+™ªÉDsŸ¶_¬C%{ß´žf4øžM¡hS´ÅÝÅúºmÔ“Vl:ø®™½÷o–ŸKsÈ×ÿ6sN¡endstream endobj 682 0 obj <> stream xœÍ\Is·¾³ü#X9=¦üÆØ—c'U©¤ÛL.v–(KN$Ò-ÙʯO7€™i,=ožH¹\:èi„Á4Ðû× ¼¾“¼ø§üýôÕ…¸|~ñúB¦§—寧¯.}ñÙ—2ˆË8E§œ¹¼þî"¿#/¥v“úÒy=I¯/¯_]|}øéJ…IFoÏ®Žb2Nxá/ñ·ÖÖ+¿ÖSÔáðíŒÐÚ›x¸Ç§j²1Ò§ƒ÷„ ‡»uÄw婳‡Ó­ˆB^àoëm Á©UH_“÷.¨PÑ÷: wÁêÃÛúÍeÈí•òðÑæ;ßgƒô¡¡;­棟¤o’у ÓŠŸæY$læ+-€$%}óBlù­–Y·äùóyFYÍH×ÉíâÝÕ6À)7äñÌ· «+«6Ú×}ƒÃ%ü+ž¤ 5 ï3Uþÿû«_ÿåBù8ygAÊ®o@¦(IË÷4û×dÁ…¦ µqSºÑækå]Ùe©â"…ø©;Îä%bœÌT>%Ó¥»’¿*£®¾Jézsu”(̱æm&ÆDoé2 ÒõÙ—J[ª¨ÖLBùyŸÃRc}â½ÔÑ•™ËÏ–Ÿy¶F하¢tólŸ^µ6‰t-wøXO(%O@` °‰;°{S~¯à$ð5º‘·å©•N½%Ü~B&¾¾Y¶L[ÃéÎ 2É}^™Ô¦2?³ü»ŠÑŒw«±“WjÇj¨úߎWC‰z–iõÕbÈr Ñ6VDê,ü«âýIuÕlôÿ§Z':Ù;z3E£AGÐIؘ¥æf•Áç­à¥§ß®?߬~\ž%Sã§\œE“î!2Ó‚*œ~z°2õBèhjéŽÒ-§¦õ"6-Ëmœ”Ö C“ú³Gý¿K/áTåY>âgDtΣ‡œ‘ÒOB,»u³n3aI²FI­Ï±Þ1‘šgÁïjˆ Ĥ„ÖÑW>¥vvIRÄÈ3 2ØSÛtש<Ž LÅv©·Mìñq…$­\õ˜ø¢&™@ªP•Gá<ÍÝ:Ë-™œ¡ÏŸ/Ó39œ¤ÙY+{ v„J~¡GÁTewm4•°%9ý•mÈ…OUcètÄ_ÑÇMp3«ã£7Ë«`¬”“3úð‡Uôjó{Ò •8BÄ&¶){”µE¥•¬c»—„Â÷W£¯²>èÉ„­HU[;xí†ùàÀY¤Ïùë,‘Mnëv‰·èb^¥xè¨Üu ÂÖ¨fm~“¹¢Fv‘}¦bÜgÂüê|Ûˈ ÔÀº-â?SY‹ÿ¼˜â!5|'Ž|$ªüî€AÕ~—€ºyoá£jæ…—ÂSE¡,ú4;y+Z‹Ÿ½¼v¬¡Üz›ÝyоÕ7 µ¼Þ\eã ¾Ú8¢'MàKpJ1ïe á+kÃ9·ö´þÌ2æmÏ‘V€§u«ßM˜®þú¯׿ýúp=ö++“†"Y!–¸ø¸†O¶ý›ÄeQˆoÇÖ„HÅØý†)D9øøÓs>~×™ÉdËæjÜEÊÞò©àÑÑo$Ý‹¤fEQ•ÿ”ß‹a3éVÁN¤iOÈÿ&w¦Í&Ò$ >\æþc"Ù˜Ž¦ÑPÔY⺵ƒ:ý¾ÏÀ˜f—Up˜~íÙ¡Ù\…ZmjÈ›o¤š­u…mñ&ó†7¶irÉH$ Á£Ó‹LÑ$ˆ¤ÉÌje1#jÌì~ÇÝ™Š:¹9j#Í||Rd¼ß“r ÷çVðª:?-ïµù >ow& Ã¥®ÑŽôL9ÖÉ1ÕÂW)Mu©bÒm{iÏ š›Æ1Ñ7¶Ž`i$ü¬,ÔšlZ¨àÉD¥½7[XàÐ,á‚ä‚™OØGú7‹8òAÀ~S”hÃBá€4~”l­ápY(ÛèIÏç<ç'äùm=&¡("¦¬5*¡²@œðQ¹[ƒðWÓhp¿‡!‰ yžE8»´Ê©ŠûTâ+Å€ Îìû‘㸹g8|#t-ÒS´RU]„uÜ¢L a| `µˆ1–ýuÂ"h\ÂV!"ÎþùõŨ56\>¿¿³—?]ˆË?ƒg—frþÒ:H= Á~O ä¿ë“—_± {Cò²ƒèL!¦AKÙS¢ûæ%±H¨C(j%?/EJ¥dÞ§ü{!_ p5¯¤*„¬z©0ÅRX“úɺ¿Ii5h«‘~ð'Œ!J¤Yb$ª% ø5ôÔDªÛÃ!x·8ìN0\@°?˜Jàj?ÄÅÆŒ9ÎÓ€ð·&&MžK i Â6cÌcˆƒËIþ×͵ô&Ó‡VGH”sáÙv¶„ÀAmØqõ~ɦF5y› DjS™ÕÑ-§p05˜[H­Ž#ô¸ =èñ’Ú0 ï8ÔŽ©ˆ•º‹­˜Éê©ßsma»Â Œ^ô–©{áæÚ…ˆ|ýë)‘”ûü•ø gÃùQÃõß!ã8{öðó&—rR‚ï ΦÂlmn³xan•qwTnY¡ Š.ž)m”Û»šf¦°I+ù3iµäï ©1lØ2žè¿]´>Ø­¨"LU‡‰R~A»”pew9‹&®ÿCU»JuyTèø½Ïûþ÷ä¿ðÕd¸`0gIëÐÊêb~|´J”ˆ6‡:·y¸“¶„Kð"(éØûͯ˜þÕ¦·µÁ‡Ú¢Ãˆž‡Æ–ò$\Ž!f1j& ½>gÞåÔ(T9À–¢U3ä®,×Ö…˜Ÿó'„;×´i}îÈwpåñR8õçkÙE…”l`Ló8ÎÖ7Ã2øqèC]dv×àÜb½ïK]ⳤvŒE*@±4)UÅͶ•¿§kPë(¦•L׆fLQ=ÓÆÛº•l|òž–†õÔÚ%œÞ€¯ÛÝÒŠ$½#ö“Š<(ÚHF  ö  à} ý1 ËäÌ ¥øq'« œ«ä¤ž·)$ÈU1Yg•¥è ÆnW#ÕjÀ ‹ü×UÐØ§ã9gÀ5ç,+nbšìß ¨‹!Í$‰3ÞϘLt\É öw#ß‘ bL¡"Ò G£¡° y_ŽÇŸi®•Ø`*ï–²ò³ákYW@Z™[:Ö U'ntYgªPŽ4½98£R¶/‚äªF-&ËjZUÀX#H.M㱪ÚÅ÷%ð8sa£Ð溸XÖ¢fßZé*ûnƒÞÃc”ÛpðmYÆH[ùÖ¬gy0Cw¨ê×^®Tÿê’àQCâ¦dl`–éš±)%ì&hÓ$lqG¿ëë(#¼)Âu|ptweóB-ÌoŽ™ØÙ0YÊ™ÉÔ`f²¶–1ÔÉ’§Í!NðâÙ04n¯¯a6šaôN ˆ “„×M©!‰M ºö~’Áÿ£–ým5×R—í–€a‹h¿ÙÇuÛkÔD’œÿÅ: "žOÆí"?¦íÔɧîTW«X$¥Â ˜?Í$ '¢ó—:Ȫ÷À¨8ðà ZÙ¬jP>:0ÏDÇ h+‘ªÛ Ÿ ©÷F:¸!JwÙxfÇhºgÿ!bI%‰v¸Ô¹{\Á¹{ßtx ºgp¢“œÏ¥á*©®•4£îêì™ÂÅF…Ö¡ Ò­æ‡T‚kôiöº©£v%ðm-A9}×]j†E#we”ÛšÛ"¯\ðHiìðlŒÔ@Ò7ï—z*µz˜ÖlWêÇ:ÚÂjŠEŽJa9P¦^Iãb<)ÛAÉ7Ù€Fçæ°$HÕàG(ˆ´ÏP®18×ʪ¦¥¹ŠC Øg7Ñn*жýñŠŸiÆ0Â-?¸Iì™æñK[‰VìÆúØàpZï@’ô8 ‹¢+ðMs"ÛhQ‘´0'ê6°ª #Ùq¬„ÅŽÓœŠ6%3Ýœh›æ¯Ôò‹j1ÂÈ:›gpá“5ÆÌXAô¤.N®â6\x¤l3t¦[i¾¯ÑíTC5~ÏÜŒ!ƒ…8U‡3ìÆ YäŒ3§Ä©JÓó¹¬öÓ5aöDÄ/kIÁmEéfÃúéeO›æ6C&‡=ÐiÍ…±¦„E½Ö¦x¤dW>Î^o³¯·‰´–çM§ýq&£ŽS¸ôýªÄÎ!Ï9Q*ugHˆoÁ´ù*ê]›îq⛄!ïV1ltmãÔ¶€#Õye]Ëå²ÊóšÃwD/úZ¾‚–Â`UTo´'àº`’Ø–T‰ÐÄ6£Ž,Õ­ÆiG¬“¥] ã‰5•{ÁdnK°Cr?*»4ÄEaà Õvð®ê)Ö„p¦:X5¶óYÊ =u&y²ÿÕxžêƒî¡"Øs_]vRyt˜Ó¾Ô>xÄ ´‚0=¹Ú<Á\sZ,¦åsœ\ÌÖzq†<¶‚0êÝZóSMNï„qÒ!¥øh€Mê² p—ᙚcé0v!ø¼C{Htž€œ a€ÄÁ!štäf…° Ùg†%(¬#óíõY\þÇÊeò4¤wÌô=ÎP0öàC›­Ñ}¨ËJ 9ñÉ´ |Cïˆi™kam£ ]›97 ¿ÜôrChK6ù/w‚(øI¡$—àîhœ¼|$m¼`ᨒùÑ~g[ïl.§«=rT–´û_¥\ž/È*¡â"ø8²=YÈ‹4 'Ž/6ÛÿO£WK1˺\:Ì=¡’‹ÆÛPí§¬ “e7­lin¥ñXxÖÈØ:Óù<̦Fæ^“_ª±ô±#qæç³øø§+ì6ô‰ÈF\½o£^ëÍtÅ}ZÂûaêÓ¨¯ãi²lƒºñÂMöQ)gh—5¤É? =Õˆk¿‘Ÿiv×6% X[ÜÔhvrŠ ‹Èô˜vöÔÈpHê9Ë·{áÐ4úc¡J¡EÁ¡§ŽM‰¯Æ£B빫Y«c¨\á,X’Í¡ÙD¼Ã«Û\…ng׆§ÓAÅ#¶¨¶*ÁLzѰGÛ`>"}ªîéÇ@µ ðßIoZ»“\F;è/èvËÄ[¸SH`ú€­Ð@/ ÓšÓÑ'&çÕ†-Kœwmy.­Ë˜]}ÓT²i¢¾{¿ÜaÓØÀ´ÈP7ÄÌB—T DTe“ŽsÁs4r¹Y#6(i>Þªö`xã‹N@ãzñ‘éwëϧ+ ¸¶KžþQXž 4"üCÛXœ¬Ô]éçŶRâÉ¥¥ücªëX»D¨•’NѲ”X¥ÖØÑœN›Â¨rŸoáÈ|ëhÊÓêž,ƒéR&º§ g¸ƒñƒKKXÐæ8o'[‰kmäv%n-³Ñž ÒP¢|X×ÐïÖdaPæêºµÞc»:®@×YIÃN.É{™ç’·Âûî¼ÂY„²XÎË3~ ï0'—L8F«ji€zþ¸‘x›B‘íÏk/Š`° õÆO'Z¶éäYÙÈ?Ÿƒ¤4Guî1]Á†vLÚw@0ME °L…Šjìd}òÚoø¡‡CV:NàçFg*")Ü…X…2Iߺ¦ ঴ü= ;OÏàz¢ííü¸Vˆ¾$”gÙÙôFunIHávj¯ âÙ6(ÓÞ¶)Ü!oØ6»°åÞ9ÐÄhQØÌû‘:ûF¹…Æ@Ǚֺ ¸/ËÈí¸òaéù(·Gg©ýòF0|ˆuIjÔ„·ÝÅy¤}ý¼.«Ó‘ÒÁð¡Ã›«sBr.¹œE6¹¿Wk­àܹ­Å$a³x®E¾ƒ§´ (×ô ®Z?ñ&O`•lC~xêü6 ˜¾\em¬Kÿ8v3ݸ¯ËEïó¾hõͺï"‘hÓT!©2¾ƒ¯ô»> stream xœÍÉr·ñÎòG¼ãcÊD°4¶k*N*©¤G,_$$Ñ’\)Y¤ååëÓ `f`8\dÅ>øÄÝÞ»R¨ƒ¤Ë_]žÈÛ“OT=”ÿ¼º<üéüäÿÑÆ¢ˆN;8œ¿>Éߨƒ2NXiΡ¼9œ_ž<=žâ¢&€õÇïÒÏè‚~~þw\FÉ—ÑJDm.u~þûôL øíñãé™Ò÷ÇhÔëµ?^j/Àèp¼9=3„§R€•Qšã[úm½ A¿§ FøèØpYØX8¾GàÀñøfùY&Ø/–Ñ˼wü”a‘¶À Nzéøg×4ì=&àƒÂßl¿«¼\P|« ¦£Žú¨ÂñÛ…-ñ!ƒáìñ×üŒ¸CoÍð{›¾ƒPSN,“óI5~6Õ™Â7FçcGý©9j@¶àC[ùù¨Óì ­óHEú© ¤Ã‘"xÄÕ_Î3º¬£ÒÄ!8ZX >¯ú¤>ÿ™lˆ)âýtzÞ÷NØíåé™Â[?Óïój ,²…wÓRãì3\Ú:¾¨áPÂ(¨¾¬Ý%WtB+©kr%ergry#U!Íè“Ë‹NMë}@9/L0ÇŸñC- ц‹—ºWD3¤²¢‘‰ê/N‘d #±"! ZØöjf[N &œm¯Êv¦@ö ÕÉåógFÒ˜—vúø.æó<¯§Ñž"I¢87Ím„YiÜá]6¹ö]5…¨JK< ½4¹|Àÿ-JëÑù)…ÊÆNümU>6Î…ìÜøYq,ʹáä·Áà Še•® ˜ÿ'çxšèšE¿ÏpA8äˉáþI‹Gme¨¯ V “ûµhBí8—¼c(×4ÏBj½É¾äâ„kµ3®bBc|"fVétèÀM|WËÇÖöŒŸMù.·jå‰ÊgÈ.Öê¢/ï}4 Pn4ùïEÞ ˜ Öm¿0ÑP·Y”W ¶R(¾ _sÕ‹ @ˆAãž1V[>D/tlÙ«R.8à "s$>°O9ÛgŒbŒâÒóN.2õòˬ0U’,Ú›ìØ†î£5,®Òe@ípÑ0[õ7‰ñ¼Æ//—Ÿ7ËÏëÞh—IϦ¥“$Ó•vè¸rÄ7™ºˆ½“+WÛR3Îož&}èbZ£Ót¬9þ4P¹}øCu˜=5W¨ä]íˆÖOô‚_ððPû!y£±‘ü\pÿ@¦zÎ3pÈX"Ï8»‡a¢°8uÚf§räØ9ðé/Ù2?1¦Û–ö•Ý®$)8‘.+IäüÉ–ÞEIrÏr€Ú@_ñ³g¼™Ìšnq ¾œ‹ŒÇóÛ]ÁkÛ ©U%г“5¹ÎÆ/ïÒéc&ŽÖðhZq ‘®óâôIo\ùÄ×Õ>³/øsé¸_xsJ\†ÑŒˆÒNLµ>¾´Æ¶ÿ½Óuœ6©C#îé´5~Â#Ÿ{00†°2Tª® ”¸Ê­›,zWìXº¢ë-Ѝrµy¡³˜—ô39¢ U¢ÖvºAÒþÓj·ù»Éw>4zãæNzƒ‰Ô-HÏ¡JŽñŒ/䄪*:9K¡ý-¶@¨ÉÑR/ ŸðÑjéÐ6óp÷(Hã°høbÉ:0–x¿Œ~\~^´,Ño@ô\éð‹ºwcù¤;ˆœíä~¿`ò 'þ‡ˆì_\΂a·R™~t…¿•G84J­ €hÃûQ€Ÿ5ÏÓ–÷›ôƒ™*NÓ"%ìí#%ø¢œŒŒ1º¬œ´øUa/ÐF;Zý›ó“o ao®O@ núùDþŠ8+Œ²à>„.q ó<òîäÉ0%Ù&˜¦”d¤¼ZZBh œ/'Í‘ÓMO-ê((LàïÕ„Jú½!¥´V3øZ…ˆGÉ@Õ(TÂ怊KüKéW y“ýp K‘õuŽCšÚxÏÃ}ÏPÁ¸²"Ï`ÎB*‡¤r–“Ê#©´}©<’ uwE+y>VåŠÇPF׹Ŕ,+ül¥uœŸßTdNÈà:Vh† ò…á!¨à †Ç9upÿ/§n,J:N)ԇ¹‘Ê)Ê_Õ´Zôþ”W/u÷ä¼ Âw£œäÑ·2qxxÚÍí9³ðÏ™A~~Ë¡"+ᡪޡòÃ+¦ÔÂûRY[æ+ã¼.r £N¹V%4 ÊÀàk¤Ÿ—dñÑI@ï&oþç„;Æ–2&ìÑQ•Vq×SrÅ`$y4.UÙInKØÊ+kb5‡™Þb‘Ñàè<™U a¥•aå•­3£÷I­¨8KÐ#gCée9¯ü8I@“/Í*jMŽN7Ý=ç¬Ð?÷p§‡]<‹ÆCJÀ#¦Æšaôö¢‹W“mIàù=¾í ñðK&Žsu‚ÃÍŠ99‹N¿þ›©çíÈݾ`¨ Êáâ û´?þ-{õ>¦3¢ è*°ÅX×9ÈDSéQ½fb% S¤h4P¡«)2¬Q£àpHÜ2ž˜Îž(4]mj6m‰Ãƒ:çÎ<–mö§èTîÊ3 À`îÏ3cÂòú¤ñQPj Ijâ¨ý0‰K´´vŸÈ%tN(5Û¥º˜¸àÈÒË ƒ è+.œ"<2˜Ò‘Œ´x?éÚä'*Ù˜0¨eãEEq핲–GF}ÎJŒ¶¯f+ChôIœ7ÞWÆ\_óÍ¿¦Úµ1˺㒶ö4)ÞÞÞ0¢à/™ ýŸ)ñ¦Ð¼U8¬œ©VNäEEÖTé8ûRƒ; ßçÕÑiݲƒ„$'cJXñ#½LHâW¬c !- m¤ þD§ÞÄ ™ÄÝ€¡Kœk=;S3ÓA®ýÐÔöB÷žáNܵ çÆ—!Ïe©¤.\l¨Y¢ÜnZc¿¶é{zj+1nÐ&uO)„ [ʲë`ñ¤ÕrèÖˆT©Ü¯sþÆ¢ðwš]¦HÊ)­ à ágh*"tÀÕ¡Ò ùC5ê§D\ÓFÁñêD.öæŠ1ØóL aljö/Ô ‰GLÊ]¨:W2+">¥æ,_ÃÒÅ1Z»ïTÓySï:Æ×O;›…#[o¦‰ë9“«N>žB*éѶóÔ![¥ÈJÆ¥6B£d_?IÁg;ë(lµ±ñ5j+ÕSæ#áäÄ UéÐí´0Žc¨š–£"®G ¤8²›j!tV5‚E¤R ԨǙlFú^›U RH_g$òÚìnÓÁ飯³§Qã*Áã~×ooJèâ¹7‘9Bƒ^§·ì÷DŒïxÕ¤”ttNZpw~¯@7Ì}ÏTÄÚáï6F6_SÖtΦýub4å;3¿ï uú§XЍ’]rÚX.Á…8^IÏ·Þ—ÛÏýËþÞÖÔ÷e®s«²5#«rUz™•oø<¢72þ$dJÖ¶x„—üÔ=úuïZ†˜ÌØ„!ØÆþШRf茼·‘³<ŽÓg4çfyÏCŸÕ%¹ÒÛ˜Ä:jŒ–mS«\Å\a¶ò´ŸµÇ~aj-¨e¿º|x»hAm”Þy5,R —-ÑÝ`x£vÕ¿ØÂO9©t/dsÑ)©tÔS W†ƒ”†^ëd ÛkZÍŒÌ3L ³ÓŠZÁçHäµ5 ¶ÛòM¦g9»Š@a]SÉݸÔkæûE*vã͸(¨[b`q®2‚hág}”Só mS×­ØwkÅî0ܬ‹b+a( ×V«½”¢­Ý;Kg,=¸ÑÀ Z݈ƒjì4m¨Æ´šjU£Æ°rójÆ´t¿»ºhó=•³Ó¦_cØ™A-ÀÁ³®)® f°÷%GyG­WQ*’ÍN”1>ÈrW¿: ˆ¾…ÎMÈâ¶QZRaÀÉnB^çNe»5¤ùv±*ìjhSûÆQËÛ¶¬PÉ™òŸ£5oÊ7æ/ñr`!öäôÚb°ºÉ`…ÛÀ¶»rômÑ*¦æB³aU÷ßöì5ÙU*•‚£´ãŽÞ¨TÅ1¨|+BóÃÄ‘ëF‚ÛâàÛ7>òp€M£HSÜ8ý¿.K»© ãâaÂÿc•ëLKh¢â¡!ç8C~ëúJá€aRç–üå-ŠR‰Ë–*Ås÷jZ›´€Î7Ê2“ Ƭ:-%ªÔt—ˆà¡X¡äh6e¢7Ü¿od]Ç- ×"±y­Ï¤„ì†.Í×Oí:‹¿ÊÞÞ,wU«Þ)¤ŽéI‡Ò¿òÅ´Tî;±»LÇêRf{÷`¹''éNzÌÄNyM§½ù6] ¸Ã ‚öòÞöm‚ê¤ïÑ•b":"zÜ<—¦8ŠäëŃ)Îiïr#䌴§ù±(¦·46½[´Ê~etmíÖó†Ž)³f`ç¿]ˆ1¡Þ¾æ]UÅ0Nà%‘æï䚦$•öL;ÝLÇ;-/NÏ]ûÔm0ë½ÁÕð+îü'bÛÊúóTS§rÞ¾\´vÔÚ0~i’hn”ß©›ä/ôJ_çJHµ»še1:Yñ£Í²Œvo¸ÃPÖ Þ§S êŒ ƒˆ¹”6w* …ad7GNÓè7Amš®ÅñeÜW˜qGml1ºShÙ¿; Ô!‡=B£Ö„ãÆÁÉÆP\f¦¿)'“^aãŒN˜,/ä¬lóßbÈ'aô0× U¬}†¹®G¬ÓÒ‰(ŸæÚð÷ùá —K¥ç•M§· õ(wÄg’º“ÒžM–È„îªä´Ú$-hgŒj/ª¹ ‡»Èºë­iJÀ5f½‡QÙ„UçÒª|Õéì\IʨoŽ\@^´{^älz”]W·ìÌp±bt¦ÙV>Žˆ|{á)‘z=ÿ‰»ÊÕO-ÂÙÑ5ôâJ¯ùšsóè>…øƒ”‰'ƒéLnŠûšw3ñÚ) ]jFeï—Qfãò“7Õp:6•?T>n¼ãC3BÓaÒWï)±ÑM‚¡üýÞ'ÜF€%÷{×íø6£rÄ ¤UV.’ÓúøfkzÍ Q8yÝ c¯Á“ÌuƒL><å¶š è ›&ƒiòüôA4®užPKø«‡%?tNïèºüŸ/™{ÔÿóÛŒmýŸFéYÃ{7(j£1Šùònu~0½$6ÊþH¹ø—Ö °é Ÿ)ŒŒ-ïnëò€ÅËÙ)ÞóÙ7´G~W}­r°¯Ú¬UÊ#šŠA؇ìL/r´ã›‹!ü-æ^g:g…ÕÞ ¼²M°‘˜%õöÒ¤¹ .½<=V×_àÃ鯫߼÷}õª;¿t´nîf5•Œƒ£˜š è”|JzÙ×Í?çá·'ÿx‘endstream endobj 703 0 obj <> stream xœÍ]I“$·uö¹ƒ?¢n®v¨Ó‰ðÍ«"r„e¶­ƒ¤Ã¬M†9=Íéáô¯÷{HäÖUÙU#[:L‰åmøÞðÇÃ<‰ÃŒÿOÿ¾ùp3n~¼ÔzHÿ¼ùpø‡û›¿ý©Ì!LÁJ«÷ïoâ7â ŒŸ´tëÔ$œ:ܸùãñÇ[TymÜŸïÿ¾~.¾õ“U3ŽpÿzÿûíÝc«sÖK|º½ƒÏŒµ²èÌ¿ek›nï´Ö“ŸÅñ–)g˜Ï¿‹=Œ÷²Xæsœr–¢mÖ“Ð6‚ó˜9̪…Ȥ&òôK3v÷Ò˜ã{Q«ÙN2NIN¾Ï‰ðs8¾Ž{öÆûü®àS«ÌkjM›PÒY 7N)d‹”(£>QÂ*é¼[DìNÀ¦´Š‚öüÿR,÷Krj–a‡^Gô½œ ²bZÿ|õ•Žôü¼‹úÿ‰½Cp ʉ@Æ‚Ì&9E}ø¸®ýq ƒ¿FÁ÷BTf»NB=[éóØR?@@Î%#FêóøTòBê“õ1$}Œ5ð]\¹ ¾X9҄EAhÒߪ×]&y‘Jšl\”è—]lü—[/¦àh•°‚21~ŠÖ³(6ü†?ï’³˜ñòuk9¨ WGÞ%”mhk˜Â¨4ÑÀ@‘ˆr—‰\ÄŸVߥrHåúü28‹$"‘MÈbÁ· j¤\Å\Ÿ¶ïåxÌ’2^<l)…ŒZ?,Š-˜õ+l½Q‹F&åÈ>1ñ/9[øÞ§µ½ÏŽ…œ‘shØñ¡b‡žU!®H-—Ùñ‘æ›C€s줫ɪ¥’6î¡ìöCó>8Õ?ßßülüááùFO³9ü ë·7ÂÜßÁÎRš ”D­-?Ü|;„aõúæü$¤Ç!¦9ˆÃ>µò$-¸j!$T¾ƒ'Öþ}<ñ”î<"ÝæY;Eâ À†j™÷%…ûÅ÷ …×ÀÙKöC 3Ê=|³®ƒ„ß§_Q£cw¬w4\ ÖƈÈÜ? –ƒ°ËÑyž”GÈ@…ÑÂNA”Fw•å®8i1­E%NÞ9Ñ'eŒ\˜±Õg%»ôóäÝÁøà&0B@v`ݤז—] TÎ;¸Â§VŒ¨=‰Ž™=%:e.öà@yíe{pºr/áàø Ùl˜S ]=PC…W¥£ÞÜêqKÇaËC±0Äï±ð Xí“6™Oò],H=F†Ë|‹o§“PW bŸãšÀ¦VŠׯlqf3ÔÎOmŽA9E<¬ÙÀØæjE~=8 ³àœ½¹]~ý7éÕÑ¢…™lïïW¬É‡ƒßR[ “¯xrûw[Ò 8ø!ǩȹõêkûˆÞÏqQ¦D\¾ÞÆÊ›¡{’š ÍsÜ–rŒ!ˆ&(˜3›ËFåÕHðsµ÷À]œfGÇ.SD^8—œßàx`Ráìüùt'Žg4™yZ‡«O!Ôci 9ÔµŠ$ßirÈWÉGXSJæc’–Õ¡$s=fJßošƒ„W[±Ä^N{4S`žÊAZÚ€2W=µ£ƒßÉž©D äѵŽ$éÇ?K‹k`C³GæÊs{[ÙSã¤]‘hj„ :¤o">u´ )nêÞólð!‰EMq1ù¾Ú†¡}-m'I°y6r‘`n–*£K¤Ò®’l%QÊu¢#£Ü÷(âi%,yÌrZÐF1 ŸÃ ®74Za‚V\;æ/b/§j“™ "'ÞrëòØå¬€ŒJpQð3Ne¥-j‡ Zäy óG6 æ €26uœÈ:~™KÕW³âàú!,šb0""µ‹{÷ AfÁ$¿P‹\—±ñ,“ŸãšêÚ nÓP ¢¬¦¯$«Ú0€¡æ˜ÏZ£±‚ŸPu»iª¢€RuÔã|𻩦?㊥˜y|ñ×’A8°rbàAq@ÒjCHý÷ =Ç`?ÆÞÒo&^p‹RºÚª/$ˆu]¨^8ƒ¦|Ž]´ÍØ’ã u)amUJ$zðy„ûÉ›ØÃílÕ8p {«ÓX[tÑ«Sº˜b]#”ÁíÁèÔØÈï ™.XîàÐzÒI9C*’qG „9-h *1›!|NúЃ©Ä#Å©qbp¯ç[ª\Ѿ² I’UÀæ·à¦Û‚°è g:€Á ÙÄvàa„ŽL,¨8+Ei’k÷ކlÝ;\U‚q!%BävÚ<  :†/”# =H œëüó`–‘ÞÁÿµ<ã<3Ø%â~³Cï®!‹û ÇogK¥DØÝVFqiûåyà!,G¥jl(’Å4Ž)’E1œžk#W•`Éšæ*d÷˜Ä\€º„æ¢DNaF§WÞþåÖh@19F•dœ…-ÎÅ$íq=%99i„oln)õ¥D-|Ja¸ã ÷$Ååq`X³³6Ç¿½EJy ,ƒ… ”0†÷ƒƒÿé˜ÝŽÍ±‡ZÇ)•Võó ௕,é«rΓø*PˆÅbÈZ¹@j‡ íÇ¿Æß)äŽRmèð<þ–š}¶Lañ=‰^ŠÜŸˆc*Ÿed\P+½ .V ´Ç?³UöîNU·e>ù$|ZÀ0-ƒÈÔ!ÀЖÓï$@yUÕXô|ƒs\w¦spš‚,•„9Êo/J!ټǡiÎmlÆ©tTE%·,Å©TùHÍ1*å ÈÆx‹½õY{ƒO‡ìC" (Ý7¬ùfñÞeß vÒq,Ì¡MÙb{UÛ»e¨ÒXu2pAr®‡{HtyéÊÈâáAaQ!LúVÖ`î:ùúL‘n0 ho&àCΙÓ,éçOøð}¶k4ÑÔ# ­Â`#|ú4ÓµZŒè„Ý1$~I‰TÝ• ã]~IìeÁÃ3:VVžÒ íâŒ]µàmZ‘ÃhÃS˜°iTÒ ´Tà]ÔÒŸŒŒèí«N¡·6¦ÒðÈvyúLÈOØA ”÷Ða²rìVVaXÜ@Óƒêq|•>‹e\£ÈÊGŠeabÖâ»åòÆ‘ùF/÷9Yåt²¬æãíž²šf…,§l¬¤ùtkž`î.•PEJUGÓ¦èlÉVÎKávŽ'æ²*̬xÒ¾ìÞ—ïA‘äÈñøÇÖ€¯’гœ°¤áêewKЬÏQm¦P1”Ðib—³XªÊš‘ª’¥e(8^ç±A8­“ 1öl‰ @a^¿Ù§öØB —¤i"i RúŽ\Ôá+ÖÊ1I‰O*¹0øí 6Šº±.£xÄš¶H@Û`xÃåâ¥N}QßÎ4@³=Tõ:‡ ¦*ô‘ëËýúQ:?Õ?-Ç:ÕÔŽNè7l®Û®¥ âèÖVf:ºi&àÁÔOÒašérCûi—¡e¥W¼41Usï7Ð@fR³¸|Û0`Í¡ƒæøí,Hº§$ËFžANÅOq7•Ï5cÃvÙ4Í,:8“¯Ëcún–ÄîŒÔ"],zwÖ„%ت¢$€k“v혭5Ž·$—‡"6̧š-úM½S‚5eRm¨ŸXer´º­lb®ÿ3˜åm\ˆßòó—©ú Î]Êr‘l,­ñ÷åòAϱKwt8Ê­ÎdsCå×¾)š£Àú‚û Fé¦û ×»•“g¿Ü8Õ~à_¶¸z)¤`þI`…ÔKË…Ô0‚ƒXIÚ­Åa ÿb MëÖž_\À0’¸hq#±.îEÒ*L³Ôµšì¯ÆؽÒ,àù ¤VÚþþ› ¤íÚòÒiíppúd! ö ï‘(+Ÿ5€àk3p^¸‹–×+{iÙ³öç•=Ç‹¯žSZª‰ûåÐ;WøJo±HEiÓÛ§ÞvX)q¬²¥"·Ù”†üX ú¼]œŽ³‡¥ð1ÝN?ñlpÍ ºm/zã í¥¶ñSS$}Œó€Å8£¸W¼Œž.3¿ÁÍÀ²­P½ðÆ»´Ž`–yé`ë –õcͲ긟#¯„í)O_ Ê÷!‰”3…Ÿ1мp;ÏLW*ã *AVåÑ3‰=·ˆO²®Pv¦¿²e #k]ÆHÀ=ìwcajYÆç¿Jm*mQ§÷c¤$à›Š6ä¥j=4nƒ|ñ§8‹³â媋 ò%Ûã2žâ ñ\Y¶ö%—D¥D§aY#¥U–÷Ÿ“ÍÁJ^È€GrŸã uh¹±=¨\®ü‚ÅKþ%Þ±¿r(±£;#¿Äv*âDÌäá…µŸ÷NªUF¹(àMÐ l8Ì:¹Ð"+\¥”ÛX­ƒ¹djCt«Q´žNÕWlj/ºËG"afÙ×Lö¸y]ª‚U.K¡õ*›i¨Ûžo¤L,OÇDFuqé96×µ‡5Mð^’°}Ë:@³ ^ÐÅïë£[mØ.ÖÀ.1¼šun±»ÌEE}°8,ÌF‚©0ТäþC"Ò3„»úKÆf¼°‘®«ƒZØø"œ¨à@;7Wå"¾Y˜C#…Ã{bÊt]v79ðØ3ÚxH*á¤'„hf3b´ºô.…çËË÷Š}×^/ ¤ã/€ 0šÞ.IÛ½¨$`a×Èî–Û®ýÅÔ8DÂU[ÓØ$$‚§»>‰·¶“ðùúÌuiƒ²¨@~ç³²ÔóË9kA}D¡“©ëìÐÈMß•Nç°!®Vgò[0åÑ8®‰Ž1tüÓ‘ußïzP¶¯Tƒ ab‚Qè:ó’û£xÓ—\;3þ® ®Á”à|˜½ÊÛ«Jú©ôÕûÆ`!ʶ·º<9´»^‘2¯­ü–éÞt“z¹ kaåY˜ˆƒû\ÿkóÖu•QÊ+ÿÓ-#ÅT›ó´Ä¢XõWsÄä5…¦Daû6yÁxÛÜÍ@rÛ¸ãxçÂnJ±´ŒÆ…Vqnÿm-úΚ+Ʋh;®s9¤ª_yµt5_ç¼›áª$5–u܉:ë H7Å&=œÍëkY1µædBÒñg?`?©5 ¹¨iîƒúþ½@8%œ©Ëò÷Ü3*Jʘë:Ê™K0%:¦§J†3bS¥¯(0!;yÙ9‡ó-ˆôžÜ 1; ¯ æë_¿]3 ðWÎ]¤WϾq”S{òÅ·Ñþëv»n¸|íôŒÉ»’>×dnW‘~ÝÐNÂH®$ãZÔ˜çßx½%JÏðÝŠ§ì+ñë¯méMÍö÷]´sU‘ÿåï®}ÙUð%'ÐY¦r¹í{E}ã)öóŠB7*˜ð 4'#[ ë1jWèGÓ¢< ÙÉYŸ𖸪ìÀ‰´9ÆÅZQóe¥ÑàrÐë“ùÞ€dZ¼*©ÀIÞïÎKØL]fI¦˜ŠJq³äºRú…¦Sãw•vmº®ï›Œµn^+%v¹³66ÆkAÙµæJ(ñ{nA'¨™0õƒ@\ Û ss<ñÍù¡?Ôyzqhí£—‡ûßÝÜÿM̶œÿ,è¿áàAš¹z` T Ú/n´„Òž ¢úÞK¢;®t+¼j[98Ô_R†\OÏä©zÕê¤U¾Â«ÇÜfn–•Ÿ[$L™ pô8§û£žEÜÎ~J¬.{0aï\GÝ-l²Dn²Ö\ï>T>üŸ#å¥>ý³(Ãêó÷Å<ÙÊñ‹FÜâ¥×L¬ ™ƒ“ÜYºV-=ׄ»e¾a¦•èg¼R¶•^MEš×¿~¡è]ù³+xñ pŠE1?ua}ß` |_/ß ›Zsß/^ò[+ÏYß>n Ò:|ú]i&ü]˜©}σ3 ÞûžÇCrÆ=þ¬¹¾|ÅÖ F>ÜILÖ%*ÙÛ,Iô½ ƒºúTs—xIƒ¡Ê·+zgñ´¶®g<ކqÕ6Ô¼”šú)xøãzÎXð˜ŒÖëô˜\jþ¸nê‰5“Rè ÜâL›Mífª/ÿørŠƒuH°Â_wÏ¥°*?a)rçÖ|ÝK|`ÕÌÓ—8@ë©ÎT¨Ž»„ø­9ñÁw0Ì…¢¢S|SÕ¬-/z¨>oËH|,*•òRÞ÷ÑsÇ·Xi.ð_*¾©ñ¬‹Vºái¶’'$ŽN·Ð¸wÄË‹ÓÝDøCß¶t1²÷Â9¬<‹¼«¤Ùy7ÁÖÝÀd€ùºˆn^À¹"Kº=pQŠfàqçñçø;¾lAA祪 »â ñ{ÁR1ý¼/—ú¢ç€Š^ª”×®TW&¨‰¶•ie%ÐÑ a %­¾ÞSÞ*vùô hÄ^´¼ÙéìI~[,dºõu·Ïñ%ÃóŽK¯Ê ¯Ž×}2µà(œ6@-cñq¸‹¨e02Tqœ“è#C'mÚzÀ|ENØK–#”Å·*$þbefÈõIþªÌ¿7˜']ñ¶ù/ ð‹>ü¿†Àû3Xïµ6¾Bœ+¨zH^‰\ñâz¯4³ä÷7ÿ l‰Gendstream endobj 712 0 obj <> stream xœå\K·¾/ü#æ8hÚ|?®‰“ A€ÄÑ"Çi×’…h%Ù+ÛP~}¾"ûQd“=3;ëØA`nsº‹EÖë«*r¿Û‰Aîý3þ÷öþJì^_}w%ÓènüÏíýî·7WŸÿ]ư‹CtÊ™ÝÍ««üÜIéÜÎy=H¯w7÷W_í¿¸>ˆÁEmEÜs-­•°rÿ@Ã&Z!õþ–žµˆ1ºý÷éÙ… ÷oèÑG«„ßHT‚“Öï?Ò³ôÒêX¼óÔÕÚšý»üº‰Z}}ógâ8ˆ‚cW“&eöa´¦Ø‚[¶Â ö;h©ããî Õ`­ñ™hfݧ¦ 4Ñ[š [28«·tkš·ikZ ^š°mk÷M[û0¿Ð40'£Ü°0ò+çY˜€xƒRBíŸÑÒ mÕþ§-'SèMHÆf"¼Ý¶=Ò+ÎA{`>ÐÁ0 -½p­Â ñÕËëžl°¡žŽÏl}¯òh4çÕCþÌøµºÃüíÚÛÜ3¶;¢`X¾2Z¶,I¿ÏÚ&Ïé3b¡Øï«â²úÀô}ôTðJnbd²<<ƒŽP|<Ù„SøÂŒ&aeÖ§µ¶ïþ,-Ò5XQ€o`ÚÂW\é‚X=Xä¦ßÑÄo2m#|´¶ÐtÚéJ[ˆ¬³vÿc"«CìùɆ¯M‹â²áŸ>äáNzÆSRÁôðErÞÆXkb¢†×Ôëqá'Bñ\é¡ãÞÔ*GÃÁš-cMÛoJ?Íõ‰9ûÙe7à‡É5½a:y›ã¸ ®Íü™SyÇÆ_ÏŸ&ežæNÚlœäQ#©0Ó®EãúÕñ­iÙÃòÍK@ÒȰ»ùËÕÍo¾Ú?/…áËIѼϻ*ü»{è hqrì1Bóaý¸:ÇžwO„0~ôbNXr0÷‰¢Õ‹}ymå༠øÊ µQàïµ4Íïo®¾¤8gÃîõÕA,ÞýìýÇ+¥<êw69(¿»¿RZ`šeäíÕó.B¯xŸ:H€¦ÛY•Éý}†ßàiÜ>…ݱnæNé{לÈfˆú"NŒ„eê’“´a2‚Œ'¶c“¡hk“¥bv…ÚÝ’ð[ýT­Ü嬣\qV1ëÖùþIÐΧÌA.ÐŒÙì4mPð¼µÓ¤,Gm‡M…‡ºâçXø¬IùE B)›™E5Z‚ zòiØæY‘ŒB‘)|!¼W¼D‘’‹'\‘F5‘RÔªDTdô6$³Í˃ ÎX¶²–±l\‡*Yþ,ù…ÿÏ¢ ðvòN™¶’Ã-{µÀùg‹WÏø€ùDF¶‚XsÍÌn»<Â`&mÈSŠzN>¼™E{]f ú×7ì 1íÅ2ºÊ¸» FÌ‚õ&ŒÆj,Ò5SfÑw(——r¾›ors.³g„<ü°4}Ü)Þ@düŽù•Úi4ʸ~L’  Ûâ¸oŠãXR;1fö@ A&ËØÿ-;#!±O=ÎPPÆZ.šüJÒòà«DkÞžzs‚ËëyÊF+hT§ K°º Þò+h 7Ê*¡tå |UꑈڶƒK=ø"ŸQ€Pð`vU€5¥cº¾azyÛ1ñuÝdR6ÄCä§~ï–Qøöf5œh(Úní”41‹ÿ Öo2JâÛ;Ò½h@ª†!æ%p`Ï—ÃL›o ß×^öR¯8ïa•Pc” žëºX"ñ6Ã}‡ü`©õµ(4AìdÍI匲–@ÙšÁªå$“à · öÊK–tŒ,ÂÈqeãçïßüú()Ì¥'åÀÇ“»(ëÐe…IÂq˜8™¤[ê‰ÂX.6ía;·+Pû¿$cí ÔÃ2z[£ÚÕÞr!˜#³Gý|›¥÷¬0¯—–o—ÇÌÿVê©Î+©¾¼ðcš!9†±ÿ)[L0sÑ= ³Za8ʶÚE˜n` ï“9ªæþCÎZÀ\§„Ú¶ 3§K}«k©“™H}v*}gZ%õZèÔ•óDB¬¥9½¶ÞçÉ¥ßìc›áä_ß©Ü ‰—%˜Ä‡¯,|]¥‘Q÷äÑIßxþûïíì&q({¡bíA†R¦sßÎÉÀƉ Pˆ: o&y¼;3EÖÃ4Éú4Z…³E »dП@•Q;À¦ š­ Fby€ ÌŸHÐÜÇtbõ®ÚZ€¬óŒU%¥¥²ò¬‚Ä`e(Y}Ö¸Œ³›ûŒÉ´w‚‡7Ð"®Â/btzŠ|RêÀZ«ÍÊg¿Ûu¾-Ç–j…!Õ];-N£n Aäºb⑞¤G§å‰Ò™V¬áý!…Öž(3ï²èØÄÒóå;Õi"sA=«üBTPp]‚NhŠ­õ©ï/<¶[© Åo9†–ó€ÀL'û–th§½Æ9ÀñA-#qÑ?ÄpŠï8-ù«@óŒSÀV@Íp §‰‚Œ§t€=s2•laÐÕ ã ì±¶¿“,Í9x*»²4 ;™:€PúÁKÿ boZÓá"Øl¥uf㮣s¸‰Ùô£Íá ÷Û¯3¯V„Þ~nŸ‹º°P¢Xƒ\.u¾G›ýQI·wnè!û(Zµÿü c[͹JQlrOÙ¡Šcp½æHî‚X¡V‡dÖUÒ åS3?SÎ Ðíç‹+(Ä  •#ÒÉT…„)äRISòße""Yø‡u(Ô®©õ¡ˆ·4½¤S ›X¡ìv”í4¬¹u¶{ÂUÖ£(ÈÆRK»ýŸe5•6Ns¶ån55ËöÒX5`4Á× X#íÐ'¡S ޝªS%ÙØk’6¦ê ¥ÃˆÚô€]ql®Mú!“ŽxêªJC â:Lw„9«C¿‰rÆc;Öj·†s„fŠV7…Þù88b-‘+êí,˜^)ci?od“2gúgŸºÇwÑÉ­Ô@#ñvÕM_—Œû~ÏÆ?]Úh• 'ÕPTÙMåqìnœÆÈ" ŽÑ,/WºA¬JSÊ`>ÿÿq\Jî²wÆN;vJÅ$1§bëR ï}ÊÛF£û”g¦#UÏÏo6kUŒê٧çúTúŸÃÄ`­õ´¯NÚn–ß êÿÊo Ö»‰KêêNx)|R r/éŽÅ‘ʲ겤Ô@iKwr¯êi™Š­Ïnäáþ ¤^6JÇgß8æx_Ör‘*]¸Íùeç>_H/´§ûB÷½Á¡EKv— è~««ÛC‰´ßÿ4ÃWimË—'‹{ŠŽ\œ\Yšæ(ÕöÈÞrì›.&±.è-ÖôéjoéºÞÙ[›?Ó'µV¦{k~ë,4s_ U` óÑ¥-øz LíE¢‡|NÁ™®/0®®€'®"äß-ýö.¹pŠ?ÎgëÝk¡KPÚ™“üætM«uVÆ 9·!~œËSòD£j5Ýà›4»)n+Ô“ØŒ–mS¡K°+îY€Â 8T‡%ž——ò¬¤Û:A@oø#÷%‰LnÃHäªÎÖ¢”'Ú¶ØR_ízˆ±Û­«‚î9lU25°9‰­±òä5Æ®Š‹œÍþƒŽñÏÁó²S ÄÈ‚¡¶Î1Í·¶ìt£}ÖåÍŽjªAqÞ©ªß)ö§? CM>ßm~sÜÊhÞO'½ä^\§ÛœiÔËù7ÌÙ³î^u%H- ¾Jž4ðM糟çœZì?Î*(Œ—úär!º†æc0Çàä W üW ŽÆƒF ¾Óö r«yAunÙ*úmBœcy>µOÙòøÔl}ßfå ¾%ê~ÁÙÀÈ”¿èfÕòöãoV-ÍiÞÈ>v‰þê2êéÓ‰ ]ý#³œ‡ÿ%®.IO7Z,t[H—OòeäQ‡§RypGè6Fõd§§2¸ÈXU*ý%·KX¥ÓSø¥àô±7—¬ýÕÜ\rØ*gùVy*Ú‹¶ a˜>-öêŽqÅ…É9gã ‡‘n2+Îa4 ë"¡w4t¹4õW–J~p#0ëÝÁhª‘Žmµ„0?Îøòê?¶Y3Lendstream endobj 723 0 obj <> stream xœÕ\Ks·¾³\ù {Ë2%ŽÑx#>%eW*)§’ØL.¶¢(Q*K¤,êaåäg§ÀÌ40ÀìEɶtÐÔt7º¿~ ±?íÄ;Aó¿^œˆÝÕÉO'ßîò?^ìþ|~òù7ü. ÁJ«wçONÒ7°°ƒñvgÀ©Ýù‹“ïö_žž‰ÁeDØ?>ƒRRØßÒkŒµDÏJ„ìþU|¶ÞÃþ=º`¤pû—qoÁ¸ýkzF…bÌ Î®RFï¯Óp”üáüoD±Åø NîÎT¹;¿DRÏq)” nÿ”&0Îx/‘jf©m"#¿FJaÖ„VV:8³¿ŠÊéÀ<œß¾ÀGßK‘I“ÊpÒ, IBFš.q8(¯‘ï«ø,®ýšµ¥PåÛøØdZáÂÎO3GÑ¡´œt´*èÁjHÒÕ¸[B5¥ lÚ;çpŸYœ½I£•VÀy»«­p¦Iô ÀÔK6ÝÓ´8nMAßc65'ª7&/D2œžYéÌþ¯QFhE&&‰lüoƒ WKföÒ˜oØóëñÓ‚©¥jÕv—X2AûquáÕfÍÒ dWƒØ$\Ź<ùð­¤p#Ní¿ß³á 8|Ƭh%*õd|•¢ï˜Ÿ¤Õ½Ó|‘¥(£bsA<À¥q$Ckå _œJâSû‹Ó3|2ÞøÚæˆœé!µ’Î z›†&Êäþm\@YÓ3Z.n y+ ~Pc­-Q™¶ër~Ž*?—Ta8ÒÈç¼,d=‰òñ¬ŠY|H"ñ)ÂÝ’¥rsç÷ÛÓïOÙ q|ûø¶#YŠÄ/<§Š+I’.h]‹ˆ¾s z°ÎôqM²g-®¼MóÓg3þb‰4r‹\c9‰e+;ÊÍ÷lÅnˆ5-dk»£Å—Û­È(÷ï¢ú£-¾â‹\%­7brr¾O“-YU 2<Úòàý6»àC~N‚Óz­Ò%~5[Èu6h´¸•«Ù‹v£m¶›]Uzð“Å;×âL;7®/‘,nb?çÀ{»T ® …y0RGÑï %oÔjð»ó¯OÎÿð]-X‹‘«ê†g¤%0?õ)œZ #hy …â´cÍi4Èžqp Ÿ3e®ô!QX˜ÝmZÇšÕPr\´ƒ‰e´•:îM·s| îE÷…XÆé[EšÁïˆ>qî}åc•ÅPV#¿’sp¶þàœœ8ÿ–ò%ð?¨&È#fQ(ÅI‚Ã?:±¬Ð&ˆqIHÐÎÂà•WáûÎõá'}o˜Ï,ÌhÀËÜ73Çû|~@Lï*_ÛÃêF¸Q~Ñ5§Oùø›6T1œ%Y¦¾gS&)ñ!1ñú ó …Þ6§®”‹nH]c¦›“ddÙ· …/Ž™kZülNŸ° @ÐV~T„/I”èJžÇ…‡ä^P¬2¦šõ*p)…¼ûû2F\t™¾3[oT±¡lfžð/¹S\ñ ‹Ý8Åy6¹Œj;^UÛ¡qËøv’´Ü´×4ZírN¦zNü ²a:µ @ã´•U}Ûñ’äÂîVXÝ,a.$'ÒnMh4¹,ñ­uëir\.ÕC1Ýë4vU¥’+^$šþï6É…’ûwíª·” á–ÇBÒ øŽk·šç4Eê*ÙaD1„2ëíôeZPÀ˜¾£Ž”ñ{”¿hۜǜ)m,ØPå½)]C=rTÊ%œG®8âÿ·³Êe"3ôϘ7aN¡vgãÚݨ’3Tz»:ef„ \k®Ý5l&¥Ç¯3|UFs“^“b z”¨7vLš'`T˜5Íœwu¢@8^uàBç«/ÕfpúÏ&_ñOZOjü¶çshr<âÜvîžBÎ/|håôY£¸E[†ißéLÜ’ËD}ß(çeO3&pÉ+¥J!co™‡Åïræ]k«g?„;@°ÒVÆ­Öhdã*ÒFÌgÓ†9\ $â°Û½‰b,²kp¤ð¤VK)S^‚‘Î ÛD'ªˆ.^¿O¼ºÚú"qZ?¥MŠÑiph49•Ú9…jºî–pùŽ{̪;…ˆlL„ãš[§^8·¨*–…¢pGaŒó–m(×þ^Zz™¶¨’%4Òÿuv%jj3ÕÜn!s^x›BeX쀦ˆîιŒ$‡%`XNC-Hµ#=‹ï?JéŽ!uNf€ªU9Ý1JŽéN|Í¢œîHÑÖDÌ&mðóʱùò&dÏJ/ð䨗•Å}eÐ1Ì.‹¿¤Sr š;¹AïÐèên \*F¡]Zèr·Hù£‰ôJØÜBI7û¥7÷ïx/ája qÁ2^a‹WR!íÒžDA›UûŠ"ì¬ý-F³œª%&©\•ŠšËxøÇýMo×úþ‹§9$[ ÈÆb<‚ F¨¬Oÿ/ôÝKR¡Í/Æý08*h‘SmöÇ;«mćŒ—÷Šå³ rs¼`&Ë,œE·ìíûS†' ŒeÏ©‚Aã` ²Ìešnkl;´­g¹Mqá³¹æv1¿}9?ÖE¹ôøh~¼i\³s™ƒ›éñáz@êÈmh(“Vp6ʦ]BAç`\Év\½f;ý²_‹ü ¶ϯšÃ<ùxŒŠì,—!àatšb0¯ƒ-`óyR0ºŠH¿$¬F4Ç×§cåeYJIÇ=/Éæ®òìvJ â붉¶«Œ½ä’³Ÿ<¬Fô••3ÛíE÷ЉץŠÀR¥d½ðÞ5]¬"›J®YÌz•ÓLÕK>9$D‘à§Ë÷OÃË-8«üqf‚+^—%B~F0­ÄŸy.Ìßÿ±Ü®Ï¿ÑNF¬ '|U„ýyáQlM;ÁG£l ?¸î\£»¦úY¹Ò±½S•EbÒ¾uìµÞü 5Æ–ûs»~8ž¦V‡vM'ÃMœïU𛂮v¸Ä«½0†OØköy@8AF¥7—ê"ó`:¸8bͧçAM¶²Àñ˜×Úf²Q¶5±¨9Ô‡–#·"1 OA8 rd½|>„e) Q«Ë3œÌp \•ç£öiïƒ:˜†ŸÏ‹ÇK¿+kÌFb³ ’ú㆓ˆV'V+z® V³Ñ‰µÎ±*¸¨àK:÷Û ÖÄ£K ëËD–*WÚÞí—Ë a)™’œlžR~qÀ n»ÁºßªC ¾Lb>Ì!Ä>ëë€&„>M}"*˜ââÜeÝõãøØ0ƒyÒæ#x›ý@”qUˆ¿ù%Q%=Ôw7ªÕñn Žq I}eöCÝ€R0øâ˜~µ?.3SÂý2l;ËÌû²£A k#¤u kª5);ØûB´#íê Ú~1³ÔÆ2‚%­>ÊŽ€¬Nµ¼ÓQõ>·¿Å×0Zþ{ 2Úõ:3Ø>d  Kã·C†D] ò˜²d:,¨3ïÒwt–¾ZˆDÞýQ§¿¯Òhe–G‘Q€úÞ"Єdw‡ë-´4±x`"é8¡?AÂY)Q¬Ó‰Í ¿/;ªQk/v‚[gë˜oÙ®ºPÝ.OuD„89øª=iɲ•8*I¯Ì0.»,ã[Ð.´®›ä¢2JGs-Qj5_üi*Úƒs šlšõ0j½z_^«h©êÖþ…M"¥Át•∮íGy6XJ\54¤cõ)pÞ ©K„à„dŠT|îÆ> ñQ„^ƒ< ñÁº„øz¡Ùü0¥€zÄQrò3f #Nê&ÊÊÈÜ¡Õ;”n8ü¸×MÏ‚ª©zåœëåÏ\U¸N4"¶EÀA³*%·tÔlâMBÝKÊ” Q ãϘRGZ«šçv+”˜^÷g…Ó§·irÄŽ­ ìxXbK]âƒÑ[Bœ«1,;Ž6ÉgI‹ouïŠP¶¡ÄeyÏm«3¨ƒµxؽ)ºŸ:x€.‹6š¯‡#G(Â#¯þ`>`¦îÒÁ¨se{lVZié:ÎñÁ½ ÀЋàžf‘ý>Â;÷QÅÚQ©FñÉnSÛd_5ãqv€•ÂCÜÕª%CûJT>ÊK|”ÆüKóRõ#XÇíx®(¢ŠL-rý¶ ßLYÅ»^[·š&VµO¢ÂÐeY¨ ø+µèomßù'Cuh?V5g÷ÞÖ[G¯!ˆëÆY2£µß>ŽXV³’\¦UD]ÈZ‹î»Äš-“õÔ@°ì©Üz@=J.¨ne7Ýqн oJ¦!×ÔôÜQé'”'bcû¼!Ř2ûst´ ùÌí²ôÓ$³u›^ílŽöõªÃ"Mï]f+ ›±MCÅ“"t¯½õO‹9^/*ü5xæ^ÜôVJê(ÜÚ'^aäÈY»?”Ž”5üâ ¢lÞ¹ÿ“7ˆ¾˜gx\ÓàdÜ·ê7£âÛa~|8=¶ï•b:æg4Žâ7ˆÇ²ÆƒQ„žŽÆ…ÒvÝ&·SËA(¿¸ï/Û 2½=5SB(töÙr—ë~C®a€Š÷þƒÝâ÷ ºÒÞñbÀ0ܦTW*ulÒÏî¦QEÁöï ÞdòŒêü¾GuPQ‡mpüÃÞµ¦N WêË#ˆŠ ï=Œ u.Y TµÆ-¡Vû '¨M9RjepAÄZ$݈) ¯½n‡4Íßì8äÐéSׯk²çÊðjø¯ºt[FHþ¢n.¬N:‡4×=ºô1Še ”( dzÉX¥¨îMÆk>Îôæ/cGzŒ“UýKVÒÓõ Õ뤑6(ÓÊß1ÿÇ=ßÂeâñ' h>]Ó1æÔí`@ÓFø\søùü³ké=YNG‘U&%=šµUÁ#Vç|ÿVd•Ç]ª~Uæ&í¯Æ×<`É×÷©ó“70qâò>Q¨ Y|8dŠDWõÓ\y}§\±>×—až$Ù•:å®’Ü•™¤*Wu¢Þs ʳ|Q2¶ÊBçáå÷x#zåwŠ¢‹•¶5s< ÌLÇ+¸T}Ó]ÅAè©U]ÉŠ·"à¾Bĉ¦nždÝúõ¨{NÀi!²že¿ ÊSQ ½èFQiJ\/ý‘ókÑMÎÐ}@/wP ôq!öm(üóWç'ÿ¿ÿÌ\ > stream xœÍ=i·‘ßÁþ† <-4½Í›4vx'ÖÂv[6ˆ÷ƒ.KŠ5’¬‘|ì¯ßªb7Y¼zúÍŒÅ1DS|d‘¬»ŠÕ?æIfügùóÑÅÙ|xzöã™ ÞÃòÇ£‹ÃÝ?û÷o„ó!¦`Œ8Üÿþ,þF@—˜ìÁ:5 §÷/Îþ~twÎçI!µ?NØÖÂYáŽâιÒLþøWì•28-Ž—4bvðÿãs6úåÌjäñésåìäŒ:^ÜQbR6¨ã;ú{£…:¾`?{K‹{¬^§³ðÇs>?Ki‹1Ïò4o*XÓºãú©œ­?>À& Ðý8^&÷VùVê~š7ÿ¿÷ÿ›Îͬ´šÎÍOE8Üÿâìþ¿ýýø-üR oœ:>ÂI‚„Í_á$ö+5›ºÙˆg´LsXVñ3_EÃ@!ÜÐýÇp#à‡Z)§€Š»qÆ{ »Ií>¬Ôë,_ãpë„6úxÓê B€£Å~1‹ÐnG­;Û¡î8B™ ¯ÚŽ pw:òˆŽÞÎn¶0wÚÚÂ{‘³<¾Ž[SZ ¼WÀ•.M)ÈÏ9­  ×­‚‚ëk·õÒ/XúéŽt“ÖV½lîxÈV":ª “ €$ý4;o]󹿈P'|Õf³* £CUÚŠ1ÏØ<Ëâ îƒÃÄn›Ýð2Äxi ö«``-ÍGs¸žænvÄíQòM(„ä;y~#ñ\mÐÎïÞ9‡£ž€¨?Ã9ÃíÚâ—ü(áÉ .'«µ+p nð=¡·WJ!&à @™áp.$L¬ ˆ_ýóþ¦9ð!¿cý- Í1òö¯½RðzŽÚ¹âæøu½,„¨ jø5¶ádlçD\åKFÔ)ãñòeÀ…6$¢ôvBnÔ@ Œ\É¡ÄR¶ÄdF€¯6ùalÅ pE§ã݃–±œh1ËñKe qmá¦æÀoYÀmÁ¶>ÍÍ?cSK¡ÉðvÀ穉‹|vÿì/¸’ñ‡§—gzšÍágPÿt¦fרV9y}¸€ëáÖSÏ‹³o‡Êd ù¢L“74)\¥Œê$ƒíUn¾Ìûx›{Ÿäæ/¹ù¶ØRƒ¶*LÚ)¿ž»©‡wÎ 0`"ÇDy<ÛJ-àøÀ¯ž«ȬþÚÓ™ËX¶+XŸ±ÒK€P_e·Bºé?Zô!†±UDäD]È2ŠåÇú_öÇd•À†œô­sÁPm¤'–¸–ÓR–n´ÂàÄ\ _ÆBù¢L²>(.²«}¡05n’•àü%SÚð²G"°•uV’¤ƒu@…9‰Œ`! 7 jl¥³¬«K¹¨[ þ•ü’©[›öœÍ4g+ƒV£â„VI ¼öa4l˜gµ ¬å³Ô9ÿ[å™lD”C>XÕ7€yë °–½ñËyØb Š|†5 Q]Žd$ùŽJ¼¸µ,‡j]ÐêeœÚÎb¯R+ÁÚ†ÝGÒÓv!½‡HÛ“ñ«A¯s>ÜVW²‰ôXÑ`Yϲ,~úzq.!ÛóÓH!Ò–&—Ÿ¤_`–úø=ãÖ}!|)‘Xk£´Žø3ÀŠÉ¯G± eð±ØIãVÃßÝIýÒ#gô‘ ºÁ’1ˆÃód1½Ê£/B?ƒrNŠºõV˜á—I^°6ïÉÆ£«Å!ö‰äì=:[ÞÆn)ËÙÉc¢еá°ÀP±%+ äÿßàhXÇcNµx2:ó±_rHÇYÌì×ýXM•FÿtG¡¿†è u²±]–n™šër;LLÿŒª)(À¨}€Õ P®–!•“Ù8ïå£/q‹`q¼û{5h½áz.ê_„©uFß’Ë`DÞOã&‚vùd9*‰î³l¤=‘yÁ~Ä—àÄÜ o2Zp¨ÔO+ñKw¤~Õ­€}¬²+ö}_ Øf~R’]Šc ,á›\ŠBG¸W7½'áä>ÉþzøZj9 ÃÀ×èâ0ö&àÃÀ3\ þ—¤¯só^Rk°OÓÄË&DPÃäÂÁ›0&S'ˆ‘aäNk½Ž٭ÆxÓÂ$>-W_¨Ìq¸ÎÚâ`¤[Nt[£%Í9fãO¡UVCÛZéÀef{ cnô~'‡5ºy@èuØn‰»Œ°Z'†qóe—•¸ªx×´ “·¦ Ð t®|ò®¬ç¦IøI=X´b3“¼ž\{ÙØ~s–Ud–Èè “†úõºn˜ŒR.ý™®ÍgYD¯mmÑ™ã&KúiÕYBI†¨ ÎJ€Üƒf;Vgq„–C±Îi`D™£puTÐw}£hy:Ñ)úWü*ïÚð÷ÈyËlAuôËV‹Å51¤jб…Ìx²æ$ÝìvY€ñ(#F,€èÇ*Eó¯ðz ÎsË>Žý¼#"EÀ왃& ¤G Ö—p©çZ"ì7I“NNž "#Hè‡ÕŠƒ„Î$¯o’§È }’áø67ÿ–›_åæ§@a ´K¨ö&PƤGíÑÑ¥y”Úƒ!Ïï÷‹Ü››]%´” ìé¢$ÇìGàe´®?ÞãD»±ã˜ÚQyhq]ytÓï8|¶Ü‚²Ì§nÉÝÔÙB¶°¸cª„õF\.†6UУÕ^:ÖýŽí­´0S2Ëå‰~P1T²@¸Üeûåf~'†ú;,v‰³¬F¥#¨ ýjü ½f®$±šA5¦ `Nœww|—¤úv®³Î­Û‰L˜¦ŠÑœzFiH±´¢õ鈥 ˆ#ÿa!@6³èÚì‡MæÞEsA']cÓiVÄ¥ëXe°~CÝR&.º'_ÚW…R½y?¡T;ÍÁÞ8”ª';Û[¥z¸š”áÞ7DJòÉW^åµI'`™Üÿ·˜”~b޽ñ˜hÓ ð]Æ]”3Ü K ç(¼ñ8æ¦b¦SMv’Â\*6.粚7l©Õ¼™ú=‚VÜbXFHÄ{´3»çCÃuœ×Li´Vxœ/å…ÑíŒut$—l3réù$o#P>è‘ÖÔÛ‚+!a–míÔÅ[€»Y­¦ÑÁŽÛ̱ÿÒ¥Ž?3ÁT&óÊ÷ºÆÅ9¥vºN¤ý2k“Ìw¯P,Iã$m 8Ðx…²O=×Qzyóq T6£Ú›™¤ç¹÷íj¯ž¤Ê¾µ‡ÝÈÕr\AÏEÒD©bJ’ŸÅ9:¼‡r Ÿ.?­ÂÒ¤ºø%isÔGÙ¼\nd—ÅOâ„NšÊ‡½È£6‰\!ç½½”¶eg£%« ‚ #^÷ãOlêíø¢©HërIŧDé]™t·(½yU,™„Ö ³n¤Û±­¼Ê”‡DwTð`&Õz,c¤ì ºÂ ¬"PÔÕ!Ì”ÕÉ{8@¼)0Tñ£ dåÅÑêôç%#ÇO-,et`ïK.¨”î*^‹ø-ec ×+‚²uuPN C¿YüÇ \]Ï`XiEñÌH× ÿHŒ§âp*âæ1¹^øgOLPH=TR7Ñ'KmBµE‡¤^úá€ôqèÅ>u¨Uâ·Î¶ \ÀM>Žn(†Nô.w1Í‚¾#2Ù¯"Ü£‡kvvQ‚ò“ ©ç:*BA§ÝØ^­"ìyž ?ض‰«ßš¦Ì7Ð+Ü£Rq´óeÊ/_ô_Ø]Ž^õ@ó3¦xWé¡]=_Lbn³ÙÌQ¦-‰ñ[†‘kÀêäd¬>œ¾r%"Òý6ˆXy¶1å$0D²1À»n€‡HxFõÐ|Ä/sóyn¾í¹¸yÝlz&¯ûM€ÓøÊÜ•ÐåÅã‹ôØ|“›OróAn>NŒuô Ï£¿fãAÞèë(Ñe`Lñ!ÿ×·½F3V¡Ñ³Ï ÷âµdΟ'4¡ï*M ô' (ÑQi¢%Ž/œ¬¹»BÕ®Ñs¨Wíö®§1Hù ÝÔîíØÐ”ߥ^Ñ,Ê!üfûAÍžß‹-ݰ<Èša@c~—ã¼£fGTÿí$*-ÐË—·íøBçÙ:¸›3ßMâƒu2éå›v7’T¬UÂØÛ(Ýï訄¼Ò\ˆ ’ï”WŸ:®#ÞAÙžæÄ·û\%$0j•0ö~“›MšÛ¥`É D0“U7¦@ß} þ†œóÕ&#(Úfaެo¬)LÌÑì‘É(âΑôܘK¸‘©†ááp…5#)õ¦ÏP¢ÓGÝžÇAbö`hÜ¥x.Œ¢ü¸»À±>cÆAc%*Øe¨Ì~Ú»íjS=¢oŠÒI¼.Õ=Qó%1›‚Ñ7¡J F+ÖˆÓ÷{œ¡¥Cj6é’%ú‚õwy5ÇÐ9HP[Lê¹À9˜df·ü5CôEÍ[¨y¯&Ù*¾ÎØL¿8¾x±Ésý·\w3!ôCŸ;}ò[Ù\>g§ÁÓáŒ$ Ó1"ÚÀ%àßNŒ•h)>üÂW+]ë`…²FÆú¶¡JaxÕÉ5ôóä;Ï&0ÈU<)]‹`Wa2­2‹Óð!u¦»êšm­°o–wAyäa¿:"ký1º e'Ò(e«[ˆf5Y7´%Rh[L‰÷Qy—Ä”„&C¥IŠcKr[|=±þK¹ìŸ¥Y6ƒp1äTfP¨Ì 5L<íÂW¶ƒïFA›®Pfð¤dWrZøÀv”C:z´·ñLágßÊ}°O«gêÕ±wm«%ŸÒŽKäÂud'Í g Z ¤ÒÉ!ie„Ñ8”a˜ ü1PáRÓÚõ„u0·JIçFtÖž›è¥ËcÚFL†D|\Æ5_bÖîûa™ x”ÕÄ¢7M1æ­ÖoSŸ6çZ•ië˜E”D³Þ˜I‚ÍÌzvö]µ@{D°tºï© (n`«%¡7>âbÓ"г&Ÿù í¸ª¶€£ûRqVÍòâ^Ó„ˆÊG–q®W €~²V—tFõ/â*¶r=Å Øùn˜$ɹúiéân¸ÊÏ{hÊšEñŒ¾v჻ªÉǣķ¾z´:rÖ‰L.Óä¶@ïnmГaˆÿ{€ÝV8²&rNõË2·6×d=äÂ)­s;’h¦8ØHSŒ™mÆá %ë0z¦‰«(E¾›Òv¦¨r&èÃV5bÏÛîŠÆïŒÚXF#µëÓÕí²gñgÖw_L.±¿+\ñâ~[_W÷äÁù—Þ7²Ñs@’åŽ/.7j~Y5c“ ÈÙç••`@ïÑÈG 4õ\ÛÎÇr`³ÕïÓ÷¦½‡‹Á•ï,Úüø.ßéÔsà@WS >ƒãº?Ö–>5¿ªœsWàohÐ(\øN@¢YÜh'„‡¯.â‹fô«Œ.Ì©ñ?ÛÞ \]ëîühIOã¹·kb•÷ÅúZUV„æ¹ÚNJrUul#ÕF(÷nÖo¹»Ÿ¾ÕÑi÷bVm‡—Š{»ÎbO+ µÃ7ØT^.âûvŸµ~Ë%1÷7 Dq¥wò|…&ëlŽž›’¢Ÿš­rJ4 Þà)ƒ8`ÉšNz´T$Ó_ÅZ2tO¢´¤Ü·ŸIP²ˆÍ’“³œm@×ñ³%mY®Ý×M~NÃc ò Ý•ÑüM”æu™‘gšg.´ˆTö?]SJ¥«`SèߦþS~ÑC¯ˆwVŒ¦·fõFUf;›yÄê¤fEé´µû³ŠC¡21_Â3˪ ?†âñ°«K0žçò}+ûIûzXµþ®ð¦ÏGLžbÚ«š—´2x~†?ÒŽèÙ¿|»sE,OˆÚ´ÀR$„JS$†úÝ’¯»Úõ¤‡Võhõ¶ÜÞ‚}n‡Y(WšêÕ¡¿ p;%qNó³¤6>ÖÅ‚­Rl”€ªR›OSü%jZ-}»b—ñ¬½ví $~Ÿ¹·¨Ü^sc¹Ü]éÆ1Ÿ‘Ä2•>¯3“aܬ6<øñáR·~Kóø­ÑK…,71Ç¿~@ø¡ÃÈ•]fœ¯Uæù$ƒLã­Jä˜GjÌÎTO„P¸Â óréÕ›aûBÃÄuû¾4<å0Šl;®ò¦F! ÆÆ_¸šÂGröMœ\· ¡¯$UU™Fà\6Ò¤á)„áç§ÒÖ|mn;tEoga |Ö¾/Ñã±0×°0ö÷nÍß00 &W}š/ùÕ¢ã 0ÕRZáè[§Adõï—ù2å)tŠç¡,4Yöø-4% '“Ëx!XE©5 YÐ^¹uS¥o`·‹ŠcöZP–l„ êÆí¥äÓ2TUs4f?˜^RÐFªÌ[Ҟʷmäç.#N7>ð‡¶}°€[ÃZ~D §pº&-<½mÝá"vènÛpNi*”\§?ÃtvûÉs}qîäGËo,ÇVÌv–³Æ÷~ãt’ ݼ lékv˜…ºdÏÞ¾âI8¦œ\öv'³[ ` Ï8?" ¾íSó…ju–\Í‹ýè~Þ÷¸­usoæ[4_Ñä(B^)}«Äw‹¨ÿŒL®Ô®Jãô3ÿŒƒ<,¯bMP0gkGn¾—¼r1@5Úï5‘ 3,Ê€‹øX7³‹fzrýþ$¡wØc¥µ(¶ù®›6оCÉqöõr:¦ñâè+žˆãàÆu(*ìÐSTBo¡ {ÚYÄäŽÒLØ[%Í­À”Ïß©b ½:¡²‡yHGÄR3ŽNÆÂGÅm!ü§gè)üÀ •­|3ï(ÿÄA¦¶¾ˆEo ½C‹(¤¢®³ÚE:q²±P=­ôÝeœÐ¹°Áp„]êzÿ=3œb˜SJ2)$ÖhÑ Œ!±†=±|‰_CJqFf&ÐÁd´<¤²ðŸ\3¬R=po… àñ½`{þ ÜO-3 mD“ò0síøé¿Tçs…£·Ê’¿#WÚ ]9kàl–¡Œ’¬²Ó¶†ª^™yó*'|Èh}d3 L-O+´ã •Aˆ™WXbíªú:Õ³„I¬¾k^dšÐe lìÃÜ„Ó3ørvÒó¾>ÊóþÐõ¾^áru¨IäïFTxÁãÕ‡«OÀUQú'ð0CÊê­°*,¹~O‰eÅ(^­‡¡–ÃXzSóQnþ›OªÉÆO©=føòÂÇIrÖ& ô ©ë·×vßÜ>õ²Òuõ9ñŸ±Úv z,ç´ž `Hó&÷>IÍ>z`qÐ,jJô0`Û©òEj™ãT…³]¥ÚH;®,Ün;­zš¥}œ ½uFUoysÒK³½%TÙ€Ò¬SŽj\¦¯uNg±êé®8þ¸6}xI ?é½#~ÁÓÚ5J.ŠÊù-¾+C•h3æùöJVœ_؜˾ʽoº´Ãæel¸!Dj>¾jÀÓ< sï>çñ(çyÖ3>Ìò·$Q¡SX"6 :üܹnÞ²¼…8*ˆfÓ¸ÔfZÄØQ'ŒÁðYÔ¥\Ö*࣌õÍøiÏ h;èôìéG)å ŽÖͽϧ¤ î=GÁê£I %s2`8ØçddžÇúgõ‡Ê¶M&Ûe}"=›!ÿmT©¹û‚ˆ~÷q¾‹n²x28cvó¿ÒfñCƒˆ:ÌëEimÕ$ÿ¼Kò…µâë¹ò” Ü×Ë0D%6cåÑ>º‰žK{}=oÙ…½‘þÕü¬£WÌ7PFÿÑ=7y6ïÓj@l>¨N=6_«xõk„gJªøàMÀˆ–šç&«WôYžá?s¯[Gýèù¨»5†\O–ã«ô&ˆÈÏŸ Œ‹Üüýþû ‹¾Os8§/‘ùˆP*s˹Pƒ(¿ç/gÿ¨ÐÛyendstream endobj 742 0 obj <> stream xœí=io]Çu߉üˆ- ¾ëÙ—´1Ъrí@YÍ -¢¢(QRBR2IÅV‹ü÷œ33÷Ιí¾G‘2Z ð]æÍœ9û6ãï6lâ†ÿ¥?Ï.ØæÕÑwG<ŒnÒg—›9=úâwÜ»Ÿ¼FmNÏâoø†s>™±râVnN/þ¸ýûã›”c’ÿçé/à—Bêâ—j²ÖáïO_ÀìËc@:¥íö]øôƉí›Úï*õ?ÿ¹‡‘å<ÒJAa·ÆONÞ |k&ïE >ã«ê3‚ÿMñtô4ÏýEÅ/'QÜ9‰`d½¾ÏI`  ¬.Oò$Û—oòç¯òçïóç¿€6ò ¦’+µh…ÏßkQ¨U*iTŽN¢|Ia ®ZÑÂrIu)×(ÑhÉ´â(Ò¨É(KµÁ9ŽjÐQ«k^¹+ššqAU^r¡ÕâFO»¾^FRs¯Õ{‘°“Jƒ©'зià# +À±Â “æ6úQˆøW™ ‰ãCœ³zžQ—ü T¥Ìêš ÿ9øFà/ý· TV̈’Î\q)gõ˜r„nãlÅ$-= dX¤úÙ²2ýn8L×3™N€û†Ü°Ùçe$ê¿Ê‰ˆ\ÊW½˜¢ÀûøoFÃßoñ\Ò5’á@î ÏæŠŒ¿É‚YŒ¿ çáÂ[r ÜÊuåkäCw 7 -ùbð‚Eæ0G${ hþ< Æ€o £`ððó©âã2'Ÿž}OhqE¾GüK½†·%?¡_1p1¨sr>"œNO÷i=åÀˆ-cËäâ–ÂÚ“¢Snâ#äÌ: 륜ÞùË1(.­EÉØè¬*Ö•à&J×xKwsŽ—Ù7qAËkD.L{AÐ÷!¢L2Õ \¿¸ –\ϳD^ï@=ËHÈäX ‡ ÐädƒQ¡«ÝF8ÁÜÓÑ>f’YD¤ÛJÌž£­¦µ ¡áUÔTLLÂËFU1(3«Ø_‚É*lB1ÊZˆm&aöxÁÃâ#€J•„<€x;\¹Šp¶2­©[؆[õ`Áã"?”ظL´ÿÞ)_þ²Õ$Q”霄TF±4==Qôð•fŠô3w&µÄUÍLZ’‘#l0å]SÃðâ ã!±¾8äDœÏˆt]e¨Íê$Â"¯d× @ó1ËlI«…gÍ[haðÊ9LÉ↨ñ°PC‚Fó?e’²0!×Y޼«8TzX®ðDm¬l!÷µÙøÀD®²>LQà<8ëWsÀ=œ¼Òkù€Ähõp6c äG1GT áÛ•‘ã$Nå`Èz÷(?j*'ù)c¤£’£lE%k¡æäóàèPÞ¾(¿gž|MÄ‚°?EÁmD Y™ ùØI@â9J Cõý€×nc:lΑ–˜¤âô!%Ïxm¡Ë$"f¬Ç¾ãQvPàÎ쀩¬:;†Þ¨Ûp`ÉpJ`ÁJOlNŸ~þÇ­ Ó5ÊÅŸ*ðL¹Ý Ø”C4î ¦B1rà,¢ˆâFJ¹ä¼¥ÙéÛ™TT‘°:ÊÐr’¡õät™¨°©¾ 9&Á26zº ÂP0€E>/|$æ-ÃöWÅ‚,ds£Š€Ý ™®wP+µ4Ùs'¸â=+ Ï}9%l#˜r&äàSlómÄ•DUt7²,.:SÂ9Tn‘¸ŠÃòi۲ⲛ÷Ýq7yÿ¶·Çe Ôz-Rª;Ì‘€¹%Q0 Y  Ï€ct§`Ëù;üô ù¼jœáp"$¡ÃôJT÷ $KDRIã,!¹Ä©Ùѽ»ažÐ31³cÈ9yooÌ&¹¸h2~-5ý2Î@£ó?ÁW7b`Q¨'™ÖpžÐËóK ç4® ß*€eF¦ŠKߦŠ5ÌšcG!ÀÖ<A¢€8R¥s¥:AbŽ3$Øâ}A¢– ÷t±{ 㨿D´|?;ñ!¢ ͵ô…ŸØ8)@1ÿ2%:VÆiÙ¸° Ö¦º|jo"ä¬E•- 9ÄGùó×ùó´;!§ƒsbT:<ÓFƒÉƒC`bT¡VrËÈZ¾¬°91ªÀ¹eaQ´Ò1_öY¶æ¯DF2šÔÅkâ¹H0FiF³:J#ÂE‰pX(E÷® ]c!™²4eë1/N¤dªC9Pm+©.ŠsÅ*Ky$ž^[ãg¬ÄØç&B¥ÚXN äFh{Ñ9™ªƒÇ€½#æ ˜ñ| Dèî{@.QÿW‘§'0&ã] 2ÐD¾Œ&@B'Ášv³D]¿9í š÷O„64kQÑ2¤I 8a›ïûÌO _x½eÜ• q—¶m•ºÉÃð€‡H¿Îx™sâ†Z™ªWú]{°Â‚õöé–lJ…’¸œ)a–Ç”€’“ƒr¿*Õ†©‰ê¤ia­w î>x½ž»—½1—K7 ¤'1!n×~H5ø+²h¿c‚LxYM¸' £ÓÙ€0Oã¤àž-ëø‚ó÷Ð<ãEÁ`¡fŽØ÷øÅèÆØ¢D3t BžTÆD%0:¸”ë²`@åñYS€x} 8k i¹±šj‚ó¸‚ÒE–qÐìK¤`‰toeãÞÑÔH/Q1@*™A{S—‡ÍÊÆ¾@\_e3Wr¸øÑ½ Ø»V¨~¢ ü¢Ä!¢ pºEBH5˜t%½éUäúõVp`¹¡åV8˜1k(:NÜ®úÜa§†îÇÈ9¤óŸõ……Nùo‚ÎA)n¬¼1­,xëç8Ô”‡îaŠ“!%‹‚©gÒÏÕ°–ôF`„=ëqvrÈŸoòçíòy(éQ,ÉFâ„Í…@zÓõ.¬œ$¯Ó@”µî,é#êðPHÄ`´ >7ML£àýõ*TK9X¡3R¯ê”Wµ×ŽÒÞw<º(Â8Za¥V’a§ X#ö ÎÊ D£;ijaá^E¢°Dµ(’']Sû¬gjã&$ƒÇt¬HR-meÿ–|¤S^Å\/=!TšßOxÃ>‚÷éZ´…±‚Ù·‚¦º@ˆ£k}/±—vT[%Vš¤{£Ùµ! TÉe•‡]24}F™­m•/µF«:éú¥Žˆ­‹Ü?|û0ïjÃ׺—ŠÌiô¡`ûäêì=}7à&RBiOSÊùpŒ¹:¬ÂaU<#XüÆAKÜ`ýÁ6U×q¡ Õ£wGÓ„}JM§˜†-ëV\ZŒ5dQú¡R¯˜‚˜EUeŒP2ÎÕ¡7îÂêÔ_ÍÛ p˜; ³^Ó>\Í›qÕx†Z»Â’vÚdÂ÷Ý=hdÎKI{?XqR2ëSaÆMÌóª%®-Éõ ‰uI Ì|ô_@€1XØ/âÏæò23ñ»Ö ƒö.暃Îð¤¶LËù}I¯PrjjYj²^¥˜C™©ÉŸÔð; É<á ^쯎[ZXDs{Ž“€#}? ã Â|‚æ$b½“žÞuE0«#«DonS&m‘Ñ9íNøºðOB¢W`±Öšâ|}¹¹„³ì2ò‘°ÄÄâ<&zïQ¹w §í$sâd\Ÿ‰Ò%„à°Å' 08& !€ÍäîElm5îÁ q #< «Ý¢Ä©¶NéoØ(t~å$ÎqU’Zã•ͲÇtÑ0Cų6ö*ËW\¿AsÕ"©wÖ:9…MJ¼‰ÚB•^Ú¡3{wŸ(¨[/bÕvIˆ.“uXļý2{¡NŽTù¬ìÁ™žÛr´[. 9?ú]Ç7¤éñŒ8=|/Àdne(¨Jô=T•é edØia pPÙ•Ì#_o\ –ÐÝ=m}%ðMõRÏT ðþßã6|=•!M£%v30;Ž} 21úß/ìÍ…¾0z–?/ò„÷yôEþ|9_[´é¾^%7o»?{Sk˜0:åO¢¾,”éâ´Åjþp˜ËZ]’ÝØD‰†Ñ/—OûSÂúY}×EüM½EøÛîBƒæˆáó³’2(P¶ö̦.ž¦9KÀizïK!ÛÿÊŸäÆ×«<šË#Éì%þéˆÖ™Æˆ6Öð<¾¨×­ïÂþcËÌz9øWyâ =É£ó%áÏws‘¡,Q:Kñó"HêB ƒÔç*„Í8óK+aúóùδªÝ2Ü8La´¡]=¡¡ÁfmˆFÚu]ʈ„Ú¥œ‘Ç@˲# ÿCÅ5q‰†kÂçaä+`‰,¢Ímšgü|•[–Gãd°ñ`þ§5cëšÑHÔâ" ~‘'|žÉ÷¸+Ëo鄸3f(–ÉYÉE(‚Œ‹.î¯(’ c/£_‡Þ§^\mT ‘¨ý K©~ÞUïø—]]QRÂ_hªåâO¿ë èÕü¾@ÉYÕÒ ù×Ý… ÀEqIÛFw‘-NÒýb𺚺ptŰ‘=È „»É%ÎßW..÷¤¿ZÉþHÙf5ÔÌŽr$ïÇìDçÔ |gfìBŒ0dvH#ˆîE˜Á†¯è^œ!˜Þ¯{ñýSúnuàp“Õï°£Æîì»! ÈòIZ×\UWF°[[„[W¸¯Š"]á2ý9mìõ¬Âïy|¨N?ÌèæÃKêšÎß ¤¥w‚»k;êG‹M" GÌÊ*×tˆQx³L”>0m½ê´tÓ|$ ™˜ŒhnõÖ~sÛ,a‘=´Œ`yF‰ŽlÂ+ ¸žXo±ŸÜuÞë¬XÄ ß‹rT\ —/!Ëý(îù Z¼ôª×B…÷^ÝjýáØ¯²„Bó]ºÇE÷Vºñ¾(°ÍOˆ§·Þ—³鸉c€ÒÃ;œ™Æ«ÆãKzÔä&$pVŒÏ°ƒay®hOü<êbªûæpInÖ”›ân²¢Sé ­Ì×q ©Ü!Áß!Ï#®Ô€•`ᵂg¸©œZyFbÙŸ`³‰’çb:4-E.uþÎÊUa*l ’«õ–À€íò\KD_Àß°Ø\Ý ^}qò"¢ËOÓtP©8]ñ<Žªþ:=yi.`ïæ“–4zÄ+>Öe#W²{¬KË™/bÏm/5Of–›¥&_Äá—‘¹ÿ„øpÔÒÚÁälÝ¢Ã^zà·K'ãÀŒÔ–`/¦vÅŒº[£¶zbrüNËwð‹z?8çÕb[Go• à–ʲ¾þ˜m³ÞÕ›óy¯²€cÆ ]üv–Ù•'sÛ'fÛa6×+ÿ1/Nˆÿ/N|uì5^ö×ô_ÓoE) À-×ÒãÐøDbøl…Ë¥÷Ó¡Ø„‡Ö¼¥÷ßœð/SœÏ;ïÐìZ?WhÎúÅ ¢èà4 Â?á‹`¿üЦû¸''ðö"#Mr5ÏЇj&|Ø°íÆ ¯êÝ»Ž9¬OD«Z¬]ïÅ%]¾4¸‚C-kº¹m›qa|T½ºý#P\¹Â\ X&4¡v™ŸÙq…f]W‘Û§¹•¢ðÆ»/µãàNÐà"A7¶°ø$ŸeòÞ~(RÈ Ÿ½npn›¸ EðFvƒãsÜ.#kMÈŠÉn78:Ša‰ä½\.(ÎYºc͹°/iŽ'¥šªãRásÔ0ȸNM¤+  G¸"†Ô`ÎZ넌)+»xT“KŒF«Ê¤m¡¯}ÃÿƒÀuú8sžcÔ7¦q”ƒ JÊX^ú Ԙبï>TŒ ѦÖ÷x[ ´ì¡w½äZv ¡rÉË—pû·ïÂ]1VYÿéÚe^©&™Ij|)y:ÑáC³T2Ë/Bø ¿=úâ!¿endstream endobj 752 0 obj <> stream xœí=[“V7rïSùS~ÉÇs¢ûå!ØÛ)|YoœZR)ÌØ 0¶¯É¯O·¤sÔê#i¾a7[•r¹,kttë{«»¿_NÅ"OþSþûäå‰8}vòˉL½§å?O^ž~z~ò/d§q‰N9szþô$#O¥”‹;u^/ÒëÓó—'>ütëL,Æ /Üáwl[/b‡¿`[kë•?¼Æ¶÷Fûpx“Æ[%UÄ~£ãd8<¾½Z{ÿóüß`J[ºí—(‚‚Mœ_À¢a´ÔÁXø,5£ êðmí=ïø²öÞÛšy=#t³ž[œÐr]ïºXÊW/"Þ>åømyÚÀö àC¤€§l¤*â• 1e%kÆI`†MJ}A°õb¹·‚û¶#­mp Ñ xA¨bD!­ÀÙ±´³õ8™JŒÏ§úª*WßTÍ„(bwkó‹:€ô>`:cŽ˜ŽV¡s‹DÎ<Û)! OF˜œ•™£•€š¾½ÑKì6‹ ޳R2„o9ÔOåÃf¨ž†3ˆ3ú%Õ©ÈðW8‰^¼DŽdÍbµ2ôn([yˇó‚„}7PÛéN¨0½h"Š“8¥ L‚â!'¹‡ ó„ΗüÈ»²EØÏóB˜@è›FM%Cù þé‚ëð$<´˜€YÔ ‚›È&3ˆ” ‡-Ài–¨QML:ªô+¬‘“²< þ'±ë)t|нGÌî>}ÑPJ£ ïÇa·8{Í™itÐZŠ2³-t¹ ¦23Œ1}ý tQçã Âß*c¹¬Í¿`Ó(™øéTS`‹I·Î¶ÔfõÀ™,µÓ3dÙBªÕíô<ô²àÊÁÝÖèôEݸ©h@Ch4|2ýðqìÆLŒp”·G¹ƒ²…éQÕ¡E¡‘Šy‘Ï,Üè ¼¼ãàR¯K—(%J™Æi¥Œ=üˆ­¤Þø1 JiP‹„!`ß Ë|S»óm£ÉW®£±¯¯ëE¨ Ç"©0ôtû¶QÌ–î/„3v½]h(Zh@ ¶»óišdjSó‡¤:AËwI¯VÑBŽ’'äC:á•&ðYæ5Zølß*Ô¨×Á;&!È^¡[±L©MG1[-Z åT,qN—N­í@™:¶§@ü@j+HPe€é âlDVoòÙ÷A'l¨Û– ÐU¨âjXã·F0ò&\ä½±œzqÓð|NÛÊh £†žÔËŽ§½¹$é­_œÑDÔãÎ<¨ó[Žˆ0Ô~ÄDOˆ¸Cu”2ZrG\åZÕ}L#„‡i«ÀTvJùÜ)´6FˆñO{塇<8Ml½D¨ { z é7ÜW1UvÁ¦­gí+J-ªÚjŸs÷rj~_ŠOkï}nÕ¤æwµù€ È3õWµù°ÛKöðÍ6CW4y$e»9ž˜…«Ä®v&4c)9ÿO«ÄP¼ÆO%lŠ˜_ôËl2£lm¯ Ô=×ÀéÀ¢UÈ,] ÆryƒáÏéÒ@M–YÊçæëÚ|R›—llð¼6ŸÖæÒÐW@‘—ÕÅw»ŠÊlDÀß•ŒLúïÆ¶‰EdM;'+p°‹v±&ŽQhG&æž)d¯ëEÙ ‹!Iרüm{V`(œÚÈÐa7yõ'c,Þ°~àQ# ñÝ­ÒÜD3ìµÀœóEøµ‡[Èk åjûG”tª\Œ@ÂI2š]áÑ1p'èªø!61|‘çE¹Ù? (™‹ª ÌyˆZ€íÞŒi­?4bpi|!óø>…Q’Ê’>÷¨®¸½»ž2áû•1ܽuf•™ÍásËŒ\å¥ìñãÖA‘¶qÊfÐú®•!“äIñrÜ.•z¦D¤kØe4 R~ˆ¯~UfŠº!À´wŒ›Í ‹®pýGC‚:\}IöKÖ±EQQ !Yl­¯¶µEîP­\åìèŠ;[ïÎÊÔ…>FᣈRUÊuèÆüúx}Òšk?¨âwØd>t¼?æN?å!`©®V¨W8t3¡¬[Õ\éÃ^-¦ÖÞºbÒîb0±•>”»üžG;£V%)ðÌ’^'ÙÌ£—WB\tQê2àŠ½„K’nf5·üXÂåˆ÷j6÷_Ò­g?$°;2Ç/¨BÇ<Ë›Òʱmw»ù“‘­’Hö²WKÓ…^A_à|ðsìüd T[À×R„ô.îmDÔìkÇ&À"ÙSÕ½#D75ÒwQÁ·¢;Ù̈4l6óDˆo«:äÞEy¥6>&QœVV¦óJäÓHóušBˆN;#DèwÁS¶ÜÚ·ôJé(˘W¼¡IÓzZ¹–ªl0HM:]QAC訾Ü6¯a{>·ú}µ À7C³&} ¦³õ¯(wùNZ‘cë<ºEvŒÏê"âY´~ۃ˪ºéh!ÃÐÅJ½²a/…¿(Å.òÜÆ]el¥mS™ËÆà,p3]Àðׯg+'~@é[˜Oq"}ÒFC\{õëþÆ”¬£FÈÔ ÕÂkr³ #½CYîx8ýJkdä.¨îM3S‡þcÃOy€1ÒJy= zç”ê† ­×eÜú¸ 6ß»zÐ"~ÒÎ[ëäÍW Go/ %Šü f½@bÌ!­1z%‹û´ äÐ’Ñ›ŽÇ„‡½ÊH‘/jQNèŒ2øC8Æ5—Â}`¸°cÝ­˜8Ú©8@”¤çî|Xá(b޽ P–¨ßÇ0õ(…>”m‰§–x€‰Û·…ý—h jGv9‚êF:Ùõ4˜](”»Â2#áäuCo£ ¥é„ Py¥O”8:šñ8ŠÉž+¦opãGE#ÑuŽs¦¢Œsp_3ÕÀÚ8þŽã§ð»Ð¿Ë2K+V~$·Õúʸ½³FãaÄÚì.Vmš0šÀ­n`zAûcõžmW(Ñó®ÔèA˜‘þÑ1÷qâœRD§qûEA}Ð3µms3æ@õ½Òðç¿Dϵy¯Ê ‰{ç$NÌo·úO\rQÕÊ\=ÒÅ,Ã.Jiߨb}4mƒ€*:˜«n׺­ÁÒÂ3é’’}”‘”´m÷iø Íÿ!¿j+é§–;ê]ƒÈ‘V¡ÆÉ¨`wªÂG6D¾Ç¢Õ;ÑüñÁ=õÀšŸwå¢P×uY¥wÜ g‚6 ˜ÓLñ¦ÆPM±d`¹Ñ#la7úˆ™7ÖåÔ\ÁïS¨ÇXØMKü¾ÕCJugx W!Ëô°|¯6¿«Íokóam~Uiü‡­·K¬NbÛ¶¡‘ê6ˆ/¡Q_Ü%qNò·Ð‘ÎUÞs]‰—sm5N„Úþ¤»Ì$u83Zš£‡ÓýëpšÆ]ëqx™.d»ê4éÿ3bÿT•c$ì{`Cum€2hp×ý0ÛuOnðw²òžçÒý'‘uLÐ "O»dq³Dì†èU£èú¢Á¢]‚KXâ#„¨¤ € )ðA€À0=nÄò"é+ë seQ+|Ô|Ù…=Œâv¡Ð˜åÅÜWDA )D9KñbD»Ó'0¹Ù°ü¢”ª *XpCÛõ=‚”³áì`ëû:€0Sú¶Æ/k·Á)Ô"åì¡Ñp²Á*n´ \`¶RÒ¶ZœïD˜:¬scÝx®ÆcZE'{°ä6£r¬lٔƻ ÎW+Py&CÊc÷~õÛáöÒk¼ W…ol¾:L­Pêf¢ån‚>yRÊgk%ñ/T'ËèYVm‚œ&”­‰€ƒÇŸÎeÚ¨ïN›¹6‰òÑXèÑY*%ÆÞZ‚Ø]ñaÀ.7ÀZzÀbœÅà}V{ï×&1Å?¯½›)îS5†ÒK¸7‰]{Ÿtù›î€çu†§µwé ˆOù¶áÄý“ó?ü™n›ç*äÞOùÁyöwµÉsvÅt®—«·˜­i¨#YâN½ƒ{uM)Ïuol»ŒŠo»ßu5†ÃÕÈÊ“ “ç½üٗݽ“;ùšì½­Ù³9I2,o"›~ÃÜü3Šú§îÁîï6Hm©sT­½ø Ž#Ķ›º`bÞ'ˆŒ*ëT}Û;|QO:án2·šlC{Ï ZKÛ`"ǘüÝ«vy‡Mœï„N,9öä™o×Ñ;ª½.¤9Z2\¼W–ÒfÝØ„Yhí–m@¯Å¡oØdyãK=¤hv›ðµ¤ôýewŠöÅÜ1øÌH€ &â_)—ƒ1u0ŠÚK xDÚÁÖû¯µùϵùcmþZ›—u†]IÃÍ–Ü|Ê–È3tå˜Öï³=ìhöóÿs´þñ^÷ò¢·¡dMˆÚ,X°ë‡rß«ýîvRÜÁ¦Kn{*|Pÿ~·6ÏkóOµy§6 aí‹3/ЪÏ;ãAλ»Û˜Ððÿ3Ï1óÜ9+ΰÂVÑH:;¾A%àÎQøµ[/$ôß!ƒ_”š†2À>,æuUA7çáF‰ËÚN~mÇ]¹Î?~b7ÌI±½Ú}‚ûw`{M]×!—#ºê„è÷žeÏò³¼®˜ñ!ç^ѳ3à˜ìYrîc_²á¼à¯X)}ßíòt`·n²NÛG†ÿƱ>Û|®X‰6ÿ»ìÒïÚñ޽À¾Û × h'EyôjÑÝÒÊCþ4ìp«©6~xÍ—hzÁI¸Ù»!òð¶ßËc + œÏ÷Pv›âg°"%¹NuÈÓœù R`®’"œÓ:ò’ƒ Ã4O1ל»¢„ ‡¾º<¥¨¨ þæ´þ™òŸÐ')wén´§´ò:\ûøR^®Opµá&ÃH0O)NƒØx³ ˜ÄkðŽÞté)è’³äé€ÑN©ŽîJ{¯¸}$…a5šmÞgÝ%XN4¼èç9÷ò݃HLàÈl`œ >Îô‡.;JÃÍy f‘n⧦{øp×®f6ßìÂC…&Òîiîõº{òåì t­‡nI©êònE<§%:ùS.é1Á WáRÚÅN®ÔMF\]§Ë(½)m´_Ÿ–8&VDã9ååÃåˆ;ŒG®}DA‹+n’—±àq©XÇ‘ñ+Éç¯ôuÃÖš|ºMö¡̵Æ0írX¥ìÕ&tG¡9,ç –41î^¨~² ºq-NÀx%³Jw,d?ä‰añø ¼&öŽ90\°˜Ÿ‹8Žg¤»°¸y(!ÁÑ7AŠ“aìÓG¹`<¢ðÏߥPÈ6É’ÕhoÔáßÓ#Mì]çN•Bz7Mžàõ0¼O¡â?×WîAw–Á¢Ûs¦RŠl1Â+õn+_­ExÌP®÷ÀÐÒÚZ@}Y«)…]ij GüšçŠ@¸_'Y Ú²TkÞŠÐÿU®’cŒºÃ(ÅŒJÕŽ’ë·»Z˜å ã’9×\ä]°ÂAË*6a!O®”b4g·ðõf¦ÂWë½ó"<îN ‡‘¼…MÛ(çÚ¨%W·_4M† HŒy¢ª)[d¦‹ ´òS´P³^«X½õ¼Oˆ,FTå)ðrd&y@$n«—Õ+õrîvÆ_¡…q=áŽ#&çÝÊe.ª† Ûçßb··ó—üÒ¶ÆÜ¸x ôâUXsþj]‹€¥‹óf´ÏòX#µ_Æ-=à`¹#!u»›­·ZZ[=Lé5>ãT¼½ÎÂKYíf˜Vý—ÿzQ+‡qî ý[!9Áãˆx”K]§4\3̯â±ÂUrÒ6Ðgãé¨qlŧێåöXÓƒÇ4M|΀í«**yQ3 0?þH° ¿Ìv“>Y¼-¯§>Ù„;’‹F-êãï{[Àìt”¡e <ѯfn Ô ûÌc)Rr(0P£¬¶ž÷` éÂDâÑPÊ+ä¾ì5G T’j4`œ0Ê*jwö¸˜dí3—ËQ¿‹% ì>e'‰2,ZW¶²vÉjÇi*…ub-ãRiK~ô„Û§3°›AQ­Ô°‘Iä¨!ªý´˜Ê°QÔ’â·d?͹OÔMÕ©v¿Ò–owªR$¸¨aÎÔHs¹ë¤©þ³ìx8+TÖüÀ´b,oæ IG˜ˉýüÜOØ?1©%ŽJ¿sëçMéÆŒTàò_Äí2¼„ÑAã7“䎿wc}÷ "£XŽ2 ßÛE‰uôª¤Kš‰sQˆœ¢PöX " ÝÇùXÎJ@ÅöT¦ïöîo|ë€UÏ|búItEmÍMVýñä½nendstream endobj 761 0 obj <> stream xœÕ=Ér%ÇqwØÐ p Úµ/ŽðE”¬%l-æD8¢³q¨ CQÔ×;3«—¬¬ª~ý°¶t`O¡^­¹oõ—K5éK…ÿŸÿûæÃ…º|ñ— M­—óÞ|¸üùË‹þOÓežr0Á]¾üò¢üF_j­§p¢t´—/?\üé*^«Éyk½»š®oÔ³7*^™~³½¾ÑÚßÂÕgØl”Êð}·õþ€Í.)«¯>âgHAûxõg6È7ì›·ß²þï¯ol²“‹ñê6ë”B¶K—Tºz[ºÄmÄà¬]F´9™ªû×°ôI…äܰËûuÿóò·xŠIU§˜¦œT¾|ùï/ÿéOW/¯qÿÖæxõâ£O0à»ëgà_6\½¡³*ªùˆ¬.éIAW£L9£ù—´,˜=šyGó÷+ú©ËÑ_}¢½Ñ&WÝÙè·8¿l5å—eQoÍé<¥äøŸ¿-6öêß®“žrLAüÎç¼,@eeysYb ãÄñcõW6Ôwe¿Ö|ð±æÍ$S¹’¹Ï;v„÷e•É_}ß?z~"o®Mœ¼w{8£áBÒ2;u¾' ˆÎÂŒïʪòª YwÕì”öò [3¿/¾æoÊä&¡Êħï_¾ô{üÑx˜h=çç@Ö[·âÞ¾ê2Ã| 惟œ‹yY.mSC3£.|XÀ¨×7ô ¿Âan¬3°dsy£ \‚×åןÃÒ¬N05\Œ“ ðSnk,smf=hÁ6•»xiáÛšT­q¾ ¯ÙÍ6JØÅZâaïÑ-­HŠøÍþ¥ X*¸âS² ÃO1ô®…AÅ'ì'B5Ÿf4 ï¿-¥œ¡±¾¢m¤pÂË~Ä÷9À Ÿ¶Ï{üp¶óý•Ö»n_Öá«ísÚFØZ»—êä¬ë ÉɦçÞÇ—ÛS¯CwKè@0+.<š4ùä‰þ ´Y¿b»:±`{²´ÐЍ¬S·¬?§oYŸÈ5ál³^N¹6‡Beè«"ðɰn›.sòù±ìXw5PY²Ï. ùÖ_‘Jò‚$šk®Lk¼F9$À4¸éÏøvËÚùáùf?`p|Ýž¼ôvY°Pljßè‡À{Ÿž\MªBä'䫸l/%†Û]Æèòcán•¼ÃC¯™wXc€a½&¶`´ú_ˆ¾ÖÎuØ5— ê[ðnR&îp:”×ìPB¼Ú¸(ký¡J‘sUaä;†uº>-Ð`VTOVa—3»Zð¡KáÃÏ߀àË „i(G88ÊÿƒNÐx•âÕHZw„ ß@" IGTÚ§VÞWLŽ#?Íå“þ5[„»6Ì{ ¸&"P8o–<ÎF=ÁÞ«æûÒ¬a¾Û4Ë:!à`¿NÊöU׎ÅײÔ]iNÁ"D ùy¾T„vº\`8\.PáN×ÌWÿÈ~X"lú)é•‹²wygqÎ$»tÿ°q6ÆGÿLŸÑX=³>úüjýìâ¢Õ:§kv.°kÄÎ9ëÑ„·O¶¢/Ç‹#nÝ—Aô‰v•^l¸È²>çHC]˜1t öØbtÏÉ_<Ф°‘™zI_–ŸeGàÚƒm„8PêÈå{¬ ºä Ø]oÿë5b¢â ±niƒ.U²k—‰h¨ V}‰Ð „¬`}¨€äDíf¡…ô«çb' æ5+?%¶ÓÁî rŸf­¯«f. %Ø8R“qÓQÃë)ÅU!îÆ8!Ãà2,P™ºç)!é\W4ãD´ -Æ MNB]8Ká• þâÌ+],7±²ÖN1Ç;e8ÜÊcfì]¨õ …(¯Çj³øœ% '“+ć@Õ‚H±´ç‘­ñJ¸å|öI¥êì¢ßÍ0‘lM'Ùp5å+CC³À£•ãsLIü·S}›7 ’©”µÉÆö> 4JØòž Êp褤½CšqÄKöî·ÖI±ß‘Ôø`±_ ªûO&õ짨Šý*G²1[ØÒ\¸ÝÕà:–ØuŽ÷ ”$n¼ä+ÇÓ(WßÂ+”ÅAŒ2 IU9éÑìíþí<4%³”|íðw\˜áv F¢¹‰â¾ÀŽsfˆkTx|ȵl&»)'i¯=i‡c:Q‘6¬ëÑ9fa_îÒ€¦œ}<Î5F8ɾб8&¡¸så‹[¢ùû€”/ 6yyí”Qƒ 6#½šç O…3eBAŽ©Ã.)ÖŠè>‘¤•Ô;ë*Xp䯡ÀÐçëÍŒ·c)l ÒRÈM‰BâjÈ«})D |«½x”APúžªÕ#÷äz:f®àæˆoÒ AûÆ ÅQ:”á¿»Å^î?å'àO=\qˆ¹5%Vçzu µ\ƒ˧2‹Ö¶VO¨ÕŒB_’a" ŠçX¾¿-Û|i©¶2-]ý1aF¡ÕŽäFŒKnÈ…¬FÂ')7é°q+ ­Ôˆm«I9v×»òE‚þB]Fq† å€Cv1ô˜3YqÒC?e¨Ó•rn–­Öfçsqy`œOîâ²íCGTÏ.‘u‰{Þ~$"+Ý1ï¶Ïo»ŸÌïôjßI“,¨ù›¥JªÚ‡)š Tбj°ˆ £É!ÛÌ2H A+4Æî‰K°*tä@„“Û¯é;$?ÖúÞã€~B»q­%`«ª¹õÇZ ‘Ec×.ú.Ó iÉú×'ÔéŽñ‰²ŸPQhÖãë",¦\Ó)Ü  óÖÒU„­ZuéØ1ßI‚®Éô»zcCœq'E1’ÞP3Ó³NiQ~ :gAoHŽàŠÀì*Œ9Í–R Xf…Hq.Qrª§#õݰ!*-½.«˜Á¦˜!&êͺ£§¿¥Uÿ‡ß¹l:ðjcÄÛC‰[`"Ž ‚t€8•ÖòŸØRÙø4’5ÓÖ펱ˆB™qmšï dù<Ä•ÝÅ)%±V¯€ø®ì6 ,¤ÓFS‘¦‘7õnÕ lQÜÚÈÙþ¾À–Ï‘k²ÜÊž|c­jL{äçð/µdq³l±Æš/¾X÷Ôg½€ß!¯vñâj kÎ…?n­Ÿ¶Ï†ßRëì+;D{@ÖyÜd§b-dtȹ—Õh=/‡ZÙr>tÅŽ?ãÏ€¸QœÃþÏú1€ Õ®âÁÏ6ÀC…ÍåÉÎŽ‰¥ÐâÜùäíÚ8&X·Ã]ùÎ èÞ6PÖdŒ°ÈJÛ°e:T‡[¦`³$Md%v¶âµ E¤»Ê=°UÔ“¬Û2O´¦B⾋¢ œÃÕ!»4ÑÖLâwÀïû‘¥Ì6ÄDbœ‰x¿• F€‚ÕtcõV[Xðxå;®},‰#OfÄòbËZ+>Óq(XÁ"×Hâ;Ó*D«† ’LŠ8Ÿt¤³¶2ùâGÀ³° q,”üÜjxÅãÝÎG›ôa´pδ:¢u™™&@8`}œ™}5¯+ö‘‰¯«‰›7_«GƒkIC Ý&ÏñŠËµcÓZ©Š°ßué+œ‡eÁA6~ÕPRj}#?ÒW©?â{“`ö¿¡^)%Æì*?e‹$ƒ4‘Ƥ2Ü¢ƒÛÄМ{žõ+Ž=ae2b'ÐQt¤#Rê»2¸ª#šIÈ,èÔÞ Ã#„0=aÙ~šºD£ .0¾ÀÈh4¦á4å”m54·D Ìœ|Æ·Ë(upÒ5߯]œÐuÎ&„…ÔK@! ŒW®(¶Êq¨È½fôâH\¹£5f¡16Ÿ2ݘ§¬$|³¡™4 qì”Bê}QS ï,cRë»í³1 Që´}žg@BHËfB³^©PyPNbhõã†?v‚÷̱.ùl»íõáxèÜVÒÑR ä ?ßÎï³íó÷›¬ú²Ûá×Õ©þòåÅq&Ÿ.ßß_ ìòû uù« k5Æá\‚lá'8åÐB¡KkË7ŸÓ¢äÊç´¨Âmh4ƕĨ›bÙÇ]·Ãº­ šo·qž¯÷!,ÄÉš”‡á¨£¬6R¦•0…)UQ‡ü¦Þ{»È,Œ‡?-2÷Šñƒ0:N«k+*2{—ƒdiºàç5weøcFR)`úX©xkg½5‡bHÀ¾F‰oK¸õŽ&4ŠÑãÒñ4Ë Ç%mf¶(ª¢Ê¹æ8Ü”ÜP$r{Ü jÏa#40"#Ä­-b =³ä!­ŠÓ˜ú~ËÖã.¢wøñ¢¸šàúwqDh&6î&£atPš§ˆÜõ/ñ«2\Ðz(• ²ò·ñ‹2²D‚Œ¤V¿p¿&úŽÐ¸ø$iÙ=GÎ]›’Ÿ0ª-•€ÁÚ˜¿àZßRÌ“áì¯rRÐÒl‡ÿu òô9äCÎýè§P!ZÅŠéæîKÚ]Cª’ù/9IgQšÅ˜¯#´Påªc R úÈùš_F#”aT ý˜ ¿32™ó¥)àIí'éÀºáŠž8a3)¯¡U)èåÈ0.ˆ.pŽÖïÚˆÊîÜs„¾‘Á Eçs¹¾ŸOå(QŽb ЩëÀætënª¡U¤OªØŠ:˜¾F§Á’ÜêZ°ÐZÞÊéXsÇ,Ú#ÙOg‹HÙx-öüuUí7øè%zƒå¼ð­f@€šÐ:ýL1uŽárÝäHÛ¨ö >Àþ3ÉYy/;6j zÜÐŒ€ËæØu¬ÓЉ¼é¢Óßw“)Ê „ó™ö¢÷›-Äö(÷^âZÊ]„Vf{´âp_öt˜šì·y'5vpQï¾TÐðœA’é7ÐÄE‚¢Žéìqû$£c|äcÂçš\ö¥°böÇðНñg@Bc“´KÊíÚRª}/+èÑâ,I‹æÛ5—odvëóDÎïFÁ¤Uëº]à‚0Ë„×6à‚M­-Aw6ÜøØŠ…~ÆüîK‰ ‡.Ahð´BWY87ë” ðªéwË8¤Á‰3¨õfíâ^ŸÝU˜¨ÉE"£{ÑM›skÞÖ¸Âóæ%¬Í?ƒ V ‹ž…J¼ûPFs¡r{±Ÿ±Ö3í sý€É½¡r‰¬Cá(ôÝÀµJ±r»§>ž*–ÛTÈ=¡<ÀIiëŸÜŸä@¤UªÇ8;ð¿Ä;`¤6Œë¿h4›•Ûesë*ı9ܸ6GtÞÎ3(W02º™ž…‰­‘¡ Z§•Ô… »Òä´¬ ¾+p̨Bõ­9)o4DïËOKÈ$|‘‘”ü—h°ISí… †ÈÙBFÀtn8 Õ{›Ž¤[¢ìñáx0÷sÇu¼(Ʊ »—wï/!£ž×(yWöpNã¦ÔД}×N§â?÷Û'+t·}žSIèDµUüÖk#$ƒSI7Ö8G©l ´ Y’Ôcz¡‹ÔH XÙML즠O„_8<±'4a}i ¹ÚA‡È ÙÍ¢e"•{Û•zðH̳ò] À(líÿ•QQO6d••Y²úU!c&ëN‰}~d¤AOZ¤õrË(4S"´²“ÛŸ|W:`›A¾Ø@Tœ¶eŒ(nY yÿ r9¾_–ÎM aá‡ü($CØ•7Šè<:W)hõ‚Æø†Ç¾ ‹¹ž©_Ó}$u7WŒTƬ—R¨(4P€ŒŽU‰Û¥¨©Ö'…q™Î[ìY“Jòóï·Ï—Û'ëðëUvY³Qe²åK  ¬›Ë4ë?vŠæL´ù9éôwÛ¾Û>·gúèŒÑ{‘—¬s˜»sbÓä÷€ð㓬_8ª~Á Õ ‚røýsã‹rçXb$ Ëâ"™\ -0|²ƒ! Å¾F¼5òxˆ§ÙgB½X ÜÊK=Ê•¿ÅlË„`)2èvP[ñ¡ÏÊ¢|>mÊ…à›)üð@´Óò–êJÆgBýû±QR͇S\HôùÐn¸¨k áÊ¥žMbþßkEwîM¸HºâÒNcA ÷ô¶”¹”$¦×Ûƒ†dq%!NhAª‰(Z6²ÞQ¬ƒå_ùÁs,¦öCô¼íŒçÓR‹$Œ’šùdÓR|#:›&tómËXmdl|©…u•¾!Ѥ¢Ñ"í07ä¶ôÐ?•t!‹Žœ-]P‰%ËC(?”[­£êŽE«>ÔäàNŠq@<æ1•H‘ö—Â6X ²Ò¬G±#-áE­%ÜÌ›=\BÉ“.~D Úc¬^ó.ÒÌpÆ»Òñb1ŽD×’ ùUdŒÒú²Û¡S'˜"FD^ꀯ¸yLŒ‚X·¶<@8!0‡Àz.žÐ:¾Û>O•Ì®ýSC&^i¦‹Nó¼9“Üþ£uYù&#‚M’!¯7Ë»6:Äß@Óx©|77çÝÖdÊìNÉ7°‹¼„­Õm}¹lT8õ¾tGõõ5ÏZÄF¯ÒP…ß«/†Ó=ªÕ£‹ÌûT%/±ão¶ÖßI\¢ ïXßÿÞ:ürkµ[«Y[û&÷XèÆ²ŠAS q}AQ®Ó©½š€é ±Þ+-DîµXXf6{eçBŸr¯e„°µº}klo¯˜‰ñÐJvÅípÁ’5Oh+(W_|ÛHL¡Ê‘bk@Ç;ÂÔ—ÇÜ„Tr¤®Ì¹¯¹ÏUmýœÞt¢òN)‚‚C#?Ák¹Õ¡c…â¸+s¦ wqæuUMþøý¯ûˆ*ûûÙ5 Xžk¤úòÀ.ýŽèkkf]< &¢µ.b±§ŠwýÄËÁÄÑ5j_¶<†(¸ŒžN[+/jdç9}Ø)1„çGx¬’n{úžµ’‘‰ 'Y”j„æÝì|Zµ õuØv±¿c¡ù8`/Ô£œ¯|æ'ô¡›'Ð{ë½·ª¹h V`—±ÇÉrØ-Y&‹ð(©PÖŒŠh%ì‘eé á›úâš‚( I™áMôÕÁ4W†£€(Êg] [²|pþº@fÑOA¤du7;ú©ï¾¦5ë§4®Ë<`ÿ®Ïœ†£jÎ÷‚/":ކàòßȇ…¾îì&”`>E†Oƒ¸ó­š«—¾(c뼟€ ]`agêì(9Õ¨¬ù,x·¯Zã{ kÍ„âXo#œ¼YÕßå8\ž\¿µ,J·Yû8»ö3JÂJ_1 UF­ŠpÝgš•x¶ñ±>-€o+4äï{ùË5&qÁö"ä¢f°÷’‰H±7oJ/EV·s—xª¸bùÒÍï‹:Õð‡ý§:gëë`xÝlð°G4Ÿíø §Çý€¥³2ûr¢„ea,EcêÕW+§ ‡ÀU€^ó(/'Ž‘¢_Â3–œZ©›ãU¹*‘“3FV¡(4!ŽjN×GKžô™fßÙ0[6Z놧ùüvƒˆ5,¢­Çaj/éEt"‹i *¦x›4òÉ<®’i©«ãIê™h|W“ƒ¯–\6’ßjO'‚H~×iX¸úè;©¸V/-e_õXï{@ŒÈŠÏM‘WàÊÞHbÝ$Ì5ï@=,aŽûu șã\$Á+e…Ý-ºÎâ³Vá¹Åch$—ÄOíÕ:Õ“¡Ÿ;¤Sƒ7ez§ð:µ*‚„û$áÏf2g˜”a вÄ"\–iÞÒ=æÍèÜE•`-€ ã¡å6S¥ÈiçOSq%F<Ðfð½…$µçŽpÀ"+£¤@ÂÑQ4é+އd˜ôÝðÏ&„„·3²¼èô¡÷ÞÙ8F±$ƒ@P.ùŽìpoË¡>Ö{íuÜå( éÁEñMuK¥Kü9û{^[âìKí0VT3qö5\–ÛÛñ‰¸Òˆãv OËûtd20õ¦LšQE€ÚîѼ[ã½é<¶ù(ðw³Ø(2 y,9WGdpF¸Ý“¿çŠKüÝKçÊPQc€¨Á.o†cÈ'Þ ó3nŸ+„ýñâ÷Ú•þendstream endobj 770 0 obj <> stream xœÅ=É’Çq÷±?â….~£À´j_Ž–DSTX¤DN8l‹>€@p0 9 $ðë™ÕKVvUO¿YHòÀfM½ZsßꇃôAá¿ã_¼=S‡Wg?œij=Œÿyñöðû˳ß}©“:ä!ÜáòÛ³ò}ÐZá¢t´‡Ë·g?þëù…|ô)™ã5~[룉Ǘç6ºÁy{|ͺ?œ{7xkŸ„/ã'¶s±[ZHrÇwË/¿¥_:Lú¿Ë?ãEÅP]üĺ—uy—Cií¡×ñ ~kŒóÇo¾‚!­Ñ Öõ>uÖÚáDÐ%GZîû¥¹ô°>»r•6•Çék8ñvH:çizv$lüÐøa¾)§’4Üï ëÓ€ ƒÌ϶¾5Áz‡OPÇ€#ÀÌæŽÙÔt að>¿/ÍÉZ;ަMÎP–ïœö¸hËFà.à`:¿,gi¬çgya‚C:\h3xt9Ó7x69€­úÌp嶨µy/Ú!E=Ý _ô°þÿࢠ¡Lëý8íï±€Žò¡ºìûùêŽ ªùlðS“‘zÕØªà“Äë5è‡vF)­;×þ†]0ëñ w¹f`ÇÛߟ›8ø`3B„É~ÈpäEû ¢8óÇõYï:«þX†3^W«¸ÁU8ÄB~2ü^-Ãñæq<7„0nhÀÚ*'ð ðå£ÖóÙ†Tá_ÆÏlä-š¬ô }E±nάr† fœftúøOÅä»0ó~ºú€'Š‹N~„$3˜0HÆŽœcã·ì†~bH}]¦É¨€ºRÙ… 9¢An–Ö˜ÿëôˆ4.–mövT_0õ‰F}u~áR,Üð¸¬lá?Γj]×qÓ.Æi‡Á›kLóÁáŸs nGâC¿¨ל³?‰•Ù4d&!Ž¥ÜçG#Ç‚&ŽEÍŒ§Ž•2 r“4Ú€d†Lb –j†}‹•— å2€Þs…µ•¸‚ƒ‚ßTq–`æÁòÌk$áx7ó¨ ‘ù‚®¤ÀtFÙúÊñn]°H p>£tÅÛªùf\*€Q¦n&™RÅ5ùpãê¬3bH3R-„ðGƒ$¦²L§'´5smØ{Ž8’ŒQ•t×7hðŠ^-ó08ø¶äVØÅàbðëá&ib&®0~`·É…#ÞgÄISm³.¼NkÒ]'ó¥¬!p:ÄÀ~º0H°ísk|ÕóáxÀ¬a0Ųh8>ÇQ`¯º–©ç)z’â«qºˆƒÛAñ/™ ¹Ùöz<›Ìwã‘æØigüº@ªŠ6Áø¬kÌ48®Ï·¨»d1…­Œë¯Ñ¢Ü㱚PñZò…e€>Pß.ë±’%€˜’P85€^ è·‹ =ÛMf5H“Äg­ýÕ”7$«)eÅkÔÍf¾Bƒvù\)Öü|bE ”„ ûHÚ¤xU3îà6dŠqÜxß׳pAä &:±õpŒáœ¤'^ÜÐQIh êN¾â‘úd¡Cõൣñ£â@p&DiÀÁ0›Yñ{ˆa¯Å›²Mµ/8´jÌ*ôg‹º÷ù¢î].­Ÿ,ŸŸ.>Y>¿œ?{òOPVª†³@Ä@”"@Æ¿V%—Çmá)l°aìLÜ" x4ÚÙãJoÌSË ó7**@ϲM{ØŠW:rbËòŒ¯ËÍ ×! nQ>[nN^¸3 œ]­¼ðÒ¡\8@£n^¸ ~a‰Ñ ˆ Ž Ú†ù$ls8ßEQ~ZWB_² ¯< ƶ(ÐiXummá(ÔÅ&¼p®yQ& ˆ×ÒŸ/“ŽC+¶r'¸P;›vˆ¦=®4;šŽzµ@…W„B @¨S i+•XQÖiËëT"l}mŒ-,åTS,Mi¤:9/újœTƒ¿£6¨òñ¯ømÜ||VºøÔžù•‘@+_Û j©D¾dQӜ໌쓩¹×$V¨9ŒgqcÞ³"·-cL<<¥¹ðÚ°65@ÙK/òzÃx1-¾6#ôÑÂíPÆrͧaª& ?5ÖMÕÀr‚{8Ûà‡h‚àsØŠãÝW<„ÛÍJÿŠÆìhÕ/'¢¥÷"CYT;øiõl–/ Ømv[´`AÉÆèGaARæ8þVˆ ÷TÜHÉÎ Y´•rqt­åMB:€{B1›Šê›2nÊÆÒ<Þ`EŠ_3>Æh¿a~îWKûÈÒ€2§$XÚd±,4XÛÁ*·e¯ùŒ¥En±E7Äœ{{]zäd¹f×¶rU‚ÃÎÈ*½7RæŸéêZêY©«ÄÁy>Ä;V±P º\tÒ`„›GsYG&ìpÆ8/ì0:iî€) ½«Ü¼ [J¿ÔN˜à‰¥!•O3Kûy=#úÀ„j­*5ý)-KÊ$8;¨h3·¾™öùó‹åó²ÙáO3ÍÀI>¹<ûÎäÓáÕí¬Ïþq¦Ÿž‹Š@Í(l´ÞB‹ÏƒrsËõÙW]_µ”§G_5 ’¬¹x«?_ÖöÓòùv[b¾­àÈ®´È”Á H½^‰n…».x?‘ ô'Mž ™»!Ê¿þzž±y×ä\™iðÅB»ÿ¸|~¶Pÿ•JŸ_‰¾åó[J›DÀ95Ü? “}h+1|é8õþ͈¹‹Ô\”ü¾+­å8ì±õÚÊë4h”.¿þ±%`¿ªîœkØ!®]sZÊA‚M6Ó»û3|vEÓ‰ ŸpåÓ峩sŽ A¦M†ÿ†éDlÍB4ÓõƒôØög‡!e{ ÃçÇø ’¡’fÕŽݰ±18ÚG…ªHÍÅ„a}m½=')ß×<ï[ý kôý¿0^pfŸûú¢#ÜÛ  ,£ÎCŸ+Þ´¬S°$êmë…öœ£Š8`úÍÚ#‚®ƒ÷eÙ8Évi_¶io—<}Dé¤\Na“ˆZ| “ðèËç Æ\6;ü©’–‰aÚlZYo s„¿Éæ–{0G¸ A~7bŽŒ \-ŸÿÜfŽ"´äY ;B+ô\<\+L8‚ÏØŽ|®ÄâZ´-uM—‰U¤ ܾ‹‚ º¾¯y U%ä­ôùß’R+ë+y ÓÙÅÝÄ1ïäÎ …Ïý<°§YÞ„T£Oæd²û_ç@Aá‹÷P0Z x°D^8­ú&¾õÛÒÝ7Ìü-’‰g­7BÏhê¼ ÅU"cÐ ,1h”;Z t‘~%iÑâž—*‰t ž ¿(âefë„§¥á…nåq\gÃHAÃ(¿à®Fj”…ùKÐt«Ð\Úµy=»FeÞ«Öíâ|½P²»#nXëDz¯R†ª;Bè6ÁÓ¯4ô6+HipyŸž;ä¶,$ê¼Çôôb¶^OKÙ8 šÚÔÅÅïFïÚù¢ \ïÚ´ä¶Ü\"½¨€5,6Í‚®tñ (Áùw¶ý®M„ð‡ZÃ"‡kæá¨¾Ë¢} ušˆEH6µ=ªqºáÕšð­Ø’Ç­×Œ°ÇÓa;e“Œ5d¼©Iˆª9:?_qK¢]Å35Í?Ÿà‡‚κ˜û`o1e †H΃0Úóíw"I¯Ë€!×|¥ã(ìpÑ^äÈÃ{õå¢QÏf\"M¼ro ,±L¶„!‘o¹!µu)`l×n-ûÜfºíÀÝ·ÔüU^WKyŸå :,ØR| ǹ ÉáÀ ˆº¨Ã.øìÈ‚%›}‰aÊæþ|Ás) ž’] :éàLÏòõ²tÈ)w|ÈxÓésU†1: f²)!EŒŸ4OëTHc_xö@žÕ%ÍD€6t9ÛÓ“/?´üžo¯™wÖs%ô|#b.(MÁM÷uƒG€+qµé³;WM"6 ¸üÎ#®Z{âÜpŸxÊlÊ5¾2ÿjù¼Ãegô Íc{Ï‘tÒˆº!Ãz îõŽ<}—(²deóøor¥ÊuÀ×hhI²{ÈL‘v¯Ê0@à™Á5+2ï—yÒ ¸ûžò±iJAýx°èM cư*oö:Äq‡! dURËLnØ•#ßJ(wjìÉ®|‡©¨´Ò¨?5E$’˜Ì¾N~XÕ][˜M"ÝÒR¼ó¨Sê —¸6Z«±¡ úBÿ®¡ä_¨=©˜šž;© s¬XÛXæô@œ3Hã“Ýmv@y™ûå±ïšÈy{;…ãã<r¸d»ÕéìO{™»2 5a¤†=ÙFkM=±þe9_,–Pµ–Wà* 2qcÚŽm­ý6ø®’€q»˜Nç\¡A×å&âGXá–Ï‘øYgâ·J Ö‹iWµèÑtF¸%Ÿ=ј¶¿ÂiL¤®æ™ Ûè) ßÎ>¦—Èß ‰%f}$]³—we t=òõw¼mý/$§TÔ\LT¶;2B9êù)ÞŽëuyo—»lºoŒ%|‰Hy2÷ üUÕ!„ü¼A’ÐÚ ÉWµ“³€:W Á×4ÅSÆÐY}…¾!çÁùÜÍòù~›åõ‹VÙÀ"Sòö¸w×NâVˆ - æF„î:Y5åþ‘›d!a± o…w 6"m%ô¡ÜŸz=ÚKÉá NjWD¯°Ä8Œú ±¹’hWt'áOûÒ®„wÚþ:çP 6GQÂ\ÉÊó0í\Ì¥®‘й]ŠHÙ¬Ø]Ê­ØØ;%.»íLŸ\{ØOÕ#z¶·µGD]®Ùãoü 5P?ZOŸ…ÂY›L£²²”¼ù ”ÎEe¹kH€V—瘗 dvJµƒ9Ao§’Û!8= #c‘RÐ,\]pCRúT¼#ñ›t|­•½\È7øXE¼àFe†KøTȈC/y 6ñðÄveµùˆ§@»§é‡ƒ! d]q¾k†"HÀQV©ãçÇyí8žRU ïÍtNܵ2J•8h„Tù0Ö©àaÇÎ9ÚãUxJ{¼nDF4 áø?s4mûIÃ!ßQiP.I1ÏŽž)þ•$Ü$s^q㪋H¨#uc¸*ÔCÍ^¾Z.gíŠÁDʘMV›ÑÖ7/O¹Ý¬"&tU¨hª1¤çÀÙÚÚ‚)¡ÎßqŠWMáìéºþÆÞhЩ½‡HO°Ó‡Y›NßÉt ´ìš¿íˆ©íxe…mns±ëgßíp| ÌsºwVóòßêÛ´(Øè¾é¸f;ØÛ7=ÜSQÐ)£ ûs່PmZ®Ê‹§x‰w¦¡ï_dI£™r1rïâö&Gàw±{ƒ¾¶YÛ{’üx„#•MÍò° F>ˆt—+•áw„·/BbGÔlûl4F³êÓ¹,¥1o]‚ÓÿÞÛ%ˆqÑh¬|€K“1~ˆé¦Ô@ u4ï3R>#íYôK³9Dkˆý~ ±–±jÈì&zLßÜS+ ¯ÚXÒ“Û™€Ãàû(iõ®1o“t JU±ÀaIV-Ò,"LÛ®[nÆ„¦b†Äl±‡ VœŸîŽ #%Œ?p“ÏVüÎëVJBhÆ­“Nø¬¤™¡0ðqf£u ת½¬!"_)˜ þ‹ÈZ›[îc$¹ïÇR½Ãá*˜¡€@'L™=àTX¦Qâ í¢‰+Ií»±Ž±«d¶è»C¹ÖÕÑ”¿ÇX غ.{e*DOñÌ4â“°5‹ŠËrÒhå¿£vYUǺu3'½è¥ÄGöÞ‰3PÏd cÜ#CLDD?Á„É º»Ù*ô» CVk9š=OaÈÞ“V•:>Ç’xè-Æ„­WiïµÊ ‹¶uoª óf„$‘ÉÂO»aGi•´ˆ@*šµ@Ò’ô>c«V›‰3X|,Ý“mUp…}Z¿Ö=Æ%JÍÒpš»ã›<§zº¦F«IhIað+ jÙ8Ý:Ð[ÐRÃÃr%0׈©¹£<€[¬ä±ÀÙjºÌ#ÍÔ£ÞДÉÂ0ö0øy%"!‘%ô†¡Ëëãð…¸2I¤_tcá8¦1ÙäÔÀã ™<È™id6ÙLÙÜô‚θ,†¦A,'ûSŽJiR±”¯M·×)ØQáq@z“ïIŠ9°zùŸg—¿ýûX #G£¥ÂHÔÑÊ:7…fnÚ͉{Ùn1ŸúfÆ¢ò»³v3’›]ÅAlì›îÖÙ¨=¿få3¸Ò¦‡í êrÒ‰» [R?VuFnùx¯%€>ë§w¶“¿ëË“º”AÛ‡P÷XTÙýÕ=À|ù`°Þ¨}U†uÓÓÜr¯°²ˆ™Î8œW|@™$apÆ¢‰Xê"aõ+'E`ë4,ZúXz½0ŒÛ H7+¸b ©tjE•uÍqF1ˆQsÂDÅq—· X‘_™çˆñdKUÅ !+UꂵŒhâ`AÃŽO…éhZ<è]9?ݳæ÷,¸©[Ö: ‘ì:ýqr´]‹’’КÕfÕ+ê’RƒÜS)ôÏG Òµ…®“ÒÛ+qb¸< –ZÈUæGݹœ;Ó?;™à?°%5Þ ˜T[ž0r¡=н[i•}+¨Sð[o¥Ê]E@ÀHÉž«‘:ÓnD>Mú-ÚG3@DÒ —ÂÊ—Ò£!wå i*K¼DS [3}Þ΄¹àYi}×ìË:¼^>‡e„¥µža0‹Ú%ä`8޹lÖ¸W«â¹*‘go1vŸYè˜á4óŠck¨4ç·M8bl˜pˆØ}z¢G\Z¯„IzS+‡$w7nÄýÕ0\%î®áëpÁMㆇC7Ÿ•ÝÞwÅʦÓÜ×ÊJ¼ž³Z4±%—1z´™7“¦n: ·V‡0lPÔ6 §8!V¯W¨sOˆfŠÛ OdÈ©B¡º[ï¾H×+‚©tN®[ÞŽ4è§­ëͽ‡«ø^ª¸S½ìWvóä¯Jåºa3c¬LYÛƒJn±¼ù7 ©üyi}¹íq0X}&Ý¿)v‚¸õpÏTðä®…Z²Ù{ÇJ=—DŸµî^è¼¼gÅáb÷¹B.gÛ»Ñh’¦ß%ßz íž²Yl\I„£‘hÇÓ˜ëç?VS~à„ g }“ðö“O¸ýO>1»J‰„CCS°®š¤M.ÞŽG«ÃN¼ÒÆ»NœÊJK·jÔçªÃKùa[/¦hH[o£G“h‚wYä|‰2C @£® ¨&D«7Dw*d._xÅ‘JAm‰îÐ̳ìDTn¨f´IýFT…pX]$œÓj×4 Ô-‰Nx &öì»-ŒmñÒ1XpÝLýùMsû³â\÷°”‡D2Ìçôl´tú*ì¿Û‰±zd¡!^s‡°õɼËX³µ÷ãy:S5¯ßh@“Ÿ”ï:Q¾8qzéq-!MZûÖiwÉÒ€>M+ž>h,0(’¾6zQ¢>»~–À¦ÕÛÌ t«²ŒÁëÝã¼7JÛ±áX…K²i¥Æ–æýO/)ˆËÀ@=SM§Ö)$òu­ë¹þb\T=ifFs‰|êz¾N9Z knZ¾Y$&´Ü.¶½—Ëç‡åóù¢©^oÿÄ3RäQ׃É~Ïkªu¬+ãkD«çZÂÚmKª÷ÍΈZ¯·¥9›‹é²Œ‚žk›t—*ÎmTØV.÷âóV㧈é‹C&£7“)yähÜV[ºÆ§9¯"лÛ+sºݪ€Ú­_-¹T¡Ñ÷Ýë#¼¨7“ž;K¸V§åˆÚtZýÑJ;£ÿVŽtûÕŽ#,RmXŽÚy·iXæ1áA‘i:ä¤ å ÏͬÇ†å «° ô惮k‰%$‘Mc\Q÷±Ì&Kí>€‰Ã%v1ÔÛZ¿-&„( AK øØmá9w_{½*=’=i° ©?EæªÃ·SqèýP¨ÅÃ;ä’Š~.;®Ã¯e„F«Bìús{IXµwgÂfÌC?‰Áb9½vI9³^îÃÆã‰ôCcöøê+›âXø$X„'–|„ã´U×<¨Ð~žž8š g홂u=eb…4]v­ÕZæ¬ÎÄÝÏL2$dJ {¸@O£-,øuÉ‚š%›¿ý?på»Àendstream endobj 778 0 obj <> stream xœí]Ës&·q¿3¹æÎÊéÛDãýp*‡8ñ³\vÙf•’Kîjeg—+-)Éò_ïîÆ ¦ðÍ÷‘\EU©=ìpˆ~üºÑ¿¾“¼øoþÿöÝ…¸|sñõ…¤·—ó·ï.v}ñ“?Ê .ãræòú‹‹ô¼”RNîÒy=I¯/¯ß]|zxõâJLÖÛÔáå 1­½‰‡|m¬ˆBÃë+4҇ZGø’}ø|ÖÚzå·/”Ÿ¬µ[¨'ÇûýðâJNÂï¯ñ×~r¶~ ð¾bC¼eC”íí;ôó._Í4Áë÷kë»4CUÑø[œŠQ®¤j&ÖÆxø~ù.´Î-´50ȱ#„òîîñÙ{£}Àgd‰€·<Ã_ÏKý1ò¿Ho“i­€©ÐÃܱ *û{Iõçš hºcKtÛ ¬…‘>¿þÍ…rÐ0:®ëW M{%ʇ\ø|±0_–]%ÁAkd»‘æðMj´Ö‡w/T˜$|u-±aÐõ²ÐÐna„3kl^!ê¬X¡ÜøŠH6Zøˆs»Z&w%Õd»iŽÛ…´Ñ„…ÝE‹¯iµÖZ¸IÊBV9‡_¥ÀᢓwÐZÀï•(´”¯ž^\ÁgÀ#uø/h Ëá•,Dôå:kÆ‹¾õþ"ñB8&€LêÞÍ“Ñq´¨M9çï?n€¿QÚQ78’_9KB=K,˜ÌÄø‚³·¥|”KN-x÷iöû<ÆÆ›Çè{Ò Ëb½ádlÆN ˜Sê{"#6Õ x U•2¤·M5$>fVûÙúig[Öo––¦ýÛÚ߬Fi®¤FÖÎj´Ïñ@¼/¬É}zí¢¬ÌÒ!û“?íÜ ?)#ŽÿžÆ1ÁXZW.ÓOÁÛ¥ñg‡•ªfßz àÔÒþ[d’”ʺfßaÀª¸´þwì<€¦iÛì\ŠÉɵ9IôV¤Ù»„T!7ÿìã((›±|®ì¹òÎZ³×mæŠ)ÚÓ nm½YZÐpÄc@B¾ä=º›¸Èjˆ=O$lusäÚÞbWz6,>Gg«Bcm|Ž õHKô•vâKƒ%‹O²‡j*{@¢ï6þ_›FŠMl‹jÑ3ðŽÊ‚¥\K°dH–Š@ (jô`¾F<Êÿx³çvòûO79<¦Å5¯‚*-6±*Ž<8ò¬7ß¾GF>iÓùìè ù–ŒALòM!ÅDq}y9·¶¡V/2"¼&aXÔz‘¥»R=6’ –¤ÁTþ |zÿE,QFHk›› „Mºž‹Y¦Lj®­†å‰•÷zÂÓeÔ3t> ˜-*âµ÷¢M<¬:°YöÜЀ,ÜÐý3oÛºß +ûUI¯xªûÔ¿ñ@0 UYÆÐ[Ç-sv¦“.J¬†äK»ÁgÜznGa‡d™¤ç‹ÏJe±¨kÀxGWÂ<†y ƒ¾ר­t®ç½À2$ý£K±3â¿….Î!å :WKæà.½F& |öÒeR%‰±™éÆ20wnØ*.–¼ù ë†s‘Z1Ä2ÅHáTŸŸ!NÅd”eú3}¨#Øì%ŽEˆUcÄäñ‰¼¿ûÔG ±ŸaÁΗI“ 6æ÷sÊÀÇPø.Öu •fƒU|z°ŠÚ2CO;Œ¥q~` ûµär”r•@ïFÒ#5×°UÛ÷Ip@bÒ,B¨u*+éÅ­lG+݃ó/Ó=ÔK¹—YExn»ê¹®(y‚?™Øu\rÞck ~ÎfsFÞ&2Ùm80½<á×J¼‡kà^4ƒÈKàDM»‘YȉïȬÃ÷œ×L@{ú†‰&±“ïÆ¾4¶!óAœ±' ÿÛ óîÉ^ óc4WŽYqr¦cëѳâdÖ)p‰lm** ø<:3Å)¹'läá!÷òœ*Þ¦Ÿx¸’ÒLQÖ>g+¹Ñì%HQ÷4¶*ã¡Îfÿ’½¾é Ä@ì´¾Fê‘vCòþÎlv•ÏÚï7öøïÖÊ¡(G\Ú™5Æ„¬Û6ÙMöt¥ZLr;v>|M­]°º ƒÓÚùò>1%ÙÍ%,gÜfWn"PÚá<îR› Oþ„;X:€‡ÿ^Z‚ˆ]7ü*?â ?¿¾øŽdÃå›{ÀÂ^~w!.y,S6.qß‚Ëwð&„‰ùÍÛ‹?u÷Ù+Ê—}vèbB;] RI;í¿[iûf}|—çÑDG2$Õ¡µO´uVÐn›Óû$&˜bg¾#çÉ[0Ÿ\ÀB³€à¿/_V‚]ø“ç½±3öv“P²ÂÞ¼î3æÈÅ ¨Ù.Pf†Ã¤å£ü©…W]¸ÜUíNz¹ô…ÚÅI˜ºo"ÊèÃ/f‡¢Å›¡Ã­ ­žÃ­~uˆøèAÏÏn ' ™ì36ñS©Cc/Ðe󨓘¥¶ÝŒÖҙ̬Áôr”}Å™Ÿ9T"ä÷so6TÕÄpíæE#Iæ^•Å™7L¡^¶[×™Ò…äÒ Áö«kð÷^Ê‚»\Äž§¼FkGû‹•ÏEZÍéå5ô|²ÝìNÊ~@VEœ­ ©LOÃÒrߧ‚ W éeˆZ¡€H,¶EôYŸ¤tNœÀ×·öªž0x¤uåú°+vÌ]ÿG›[5u´€­ë@³IÓ-µç®½¸=0OÎQO—’_È2Åú¶\žŽy¹K°É7¢u¢ˆ>û,÷ÒÄE@…6 ¼YAÄÛõñæž°X…•“9ÿ:QJÏ#þ3{þÛ Ñs`dkK[Q©~a—`rŸÆï£•…=Á&jV|ð[;BvD È€={õDÀ…n擔דí2šÍt+xMûaQƒõÃ(C«îÖæ7 )OÞÈ%&ô…û¨»ÛûÿDïƒVUÜ»ÐäÜñœiJÁÀÏJUYŒNL\æÑ@G¥u-sžŠË’9ßî- «Wd‡f‚IÙ.€8º$h:”‹Œ‚xÚ¿ÔàìÆÆÂÙ#Æb)´ÔÇ ?ÜFOÓ5Òƒ4¸¼»Ì,ÄûõñödcA ÌU™Wâßq’”ÃҊذ_÷ëãù$a¿, aÁ/ÓÖV޾Ý(€S…[,uÇÆ Ͼ¢Z:°‘_­QƒÁ{!Ø4š¦ 4w–öÈ:“Ò ƒzIÑU©´¶¾IŽÛêc Rv˜›ÿtmÒ–màº!¸þíÅõ¿}š\žƦ³)zûz}üvmðr}û6?6…N™  N†T*X[Ì•›¨„;Úê"s/å^s¯AC…²€q_}P«Š@Òõ\k/ŠO[wª—…Ë>E ²¶k­šîQ§# ~µ®‚<–:Ãj‰i]?¬oÖÇ Z¢·Ltî* •Þ~(²HcÉÈzÇQRkiÏ( ÁÆý¾½%d›!p% ðâ9ŠS|µ±$Rz—HÞã(¦¹zî}°™È³w2N“b¯Ãœ²´½ZeðMÓ|ý¥Ø€¸)ý)6ýb-ÅðÖéŽi«ê›°-î\ÔRiÔí84ƒ/½µ?¤T(xŒT¯`!U‘ãëYwκ׉GÁÈšªN‘$3)&¯e™ƒ«“Ë ª~›;ëÜ9r¸„òm>ªJ^h.uá& /î§9?9Éë0˜hVÂd ;«ëÓZ؃ãü^¬b(ËYr»ÊùÖÉì\ˆ#nKƒ€0—À圂:Bãuošïf»µ#EØÚJ·++LmÕ¬Ðéa0¸LõTÅ¢®…*BkÜìuŒ¨\ª ™ @i–ãZkÿªë1–û1ÿÒsð:, œÜ`°²Íé³oƒô3]ö‰_µ|×¹ÒÛÛ·O|^d÷Üg@|ARwgÓæ,:ïËu?ñÃ`=èÎYñÒ€%ˆÉå*%¯×\9u6­ÁSGg‚Í×U4tŠÎÜ® îšáÒC3N¾9GgØ Ômô™ô„vsÁôåè³µç²Q¤ž\lÒ˜Ö‘/Á× ."[ºë‰hH—$»{Ä¡²±zŸš§ïvœ‘;+ÞÃÓ†‘O¥]”É!ÊÌp<ã\TZáË(ñ÷Ëö•Z«@†›…¨@¹Ó?é=°¬n¿°Kõß©mhd„¸×øÙ‹uºF²ÄT;ñ¹¤êOÔH@縛ù„‰xߎÓFBlV ÃRìóëAv6…ˆ{òX{žóp¼ÁSªáôbc KÝxûwæÎ³¨4ÎQëM¸­ð dÖMTûÓtHÆò§ÒMân.Ìi•K'ù:üDX¹uY '°!¸ /AùÅ‹€„KéÀ@)à ¡Â\rÁ¡_8žlçIÖt©Çr3Gnº)‹3 ¼°±ãý¾Jqºèb ·u¹Zéüôq}/à’Þ9^ö¿’¡GÊÚºbŠ>*—“g³Kp¹œý ,±AË)]¹)Ù© zHãE½ì³lJiËCqÌ4”™ŠDC¿x–ׯ•[O¼@’Á£¦ÜØÙ*bp»ú:Õú! !Ø4„À}>p5=˸K$Eoë ö×Ç5…7ùH»6v„;wiôºÅoç̦. EÌ8eóEÒ³º¿$3‡‹Ð›‚¾l}KãERÁó¬Wd<¦ÈÍ`óºÁ½9µ)Ÿ‡.·Øö»èMuš`°7øe×[?©ÐÝ´¬Ää+>]!Ú²híóYx®RæBŸt)!Ê=~`¦/D ¬Ì>¤I¯÷ê4®ï'@–Y/«Ðgµ\Ãý£jÖWIPü Ú.:lo +05R¯l«õоSÝ8 ‚7è{­E¨ËfôíL÷f}ü4?6—ù¦}uÏ„wÆì¼ †n2~®ãE-k³ÀNÞæï>¯i‚ ¼Wl¦é_¦ `ùÛD]OXVzœíyÀЦê<àG ŠæeYwö˂֦wýG5•JÓ>_ƒ¡Ù*–×üÔkªêý9Ò»Éæ4¥—±)õ°aÓ:“]Ò»¤G±ÉâEq=_ZßW$5,Éî’ÝèÁønž:Ä ®_ªØîGŽXñæ³f%Ûy…ÉÐõo³8Ëñ $æžê!¤Y—ÁBûôæt%†1ui_+ádºµáèý1ï Üñ{18D— VD¸†}»ë~ Dc o]Ãê½(ŒŽ0®•r@xu>èQUÝ/“÷‰ëŠÃUÕFt-mÄÞdyëÂÉ©£eË~’æŒÜO–y© ÿy– æZ/Êà\á£JÃð+ä‰Orc£uOœ¥¿]:µ¹Ñ³?¢3çætèZÃÍ--tc¢8Vê^™Ê²´‹?¦Ü½t>ž 6µ}XáêG±¯©[“„¤K~éˆÅ[qdÄn¡2ÀµÌ¯ÿ,Al‰Ys\ùÿ˜µYÁè­âw ³ÒcˆÿgAëæj¿Z«ýÛ+P‘ÉÒ1÷¥n?ù-Ñ£ £KÊ…Ñ´b£,fSxôrÙaS4"¸èeédhƒ^ïØ õ=sÝ»iTQÞ¨ ž+Êå©w-ì¨6þi¹&›ÕÇ:òSʉ7ç)j3ð„E'tp¥KÌýÓ××LóE´Þýšè°Âè4 ›Xn8vn)¯:J»t™¬×%#àó}ŠÆÔXWøjaÑv•Dë €¢¶ÿ–1I¨bpÙ…O7;2³Î³ë‡D0àyê)€lÎ(‘òࣩJ¤€P¼ŠbÕp[ØîÛ¨ëu‡kkØÓ­Xœ•âŒ:*Mk>tiÖR?‘åo:÷ÊÍWe$:J¿ðéÆTáÖ:C—oÙH™Œ“áÔ\–·­îH'sÕB÷ˆÑå¦T‡j¶e÷·t¶†¿ÌŒG%õh±¥}ÖÃe'Žau¯¼R‹h[¬àÈ銻¹œPÈê—£¾,o¿TFå»>ž¼8q‡=R´èñêé¹h1hõ ðç+Z¤måX«U%ØÖ••ü–§ºJæaÙ÷î_’qF¾i‰!ôºlgÆ$Àav³jfn}p0A)Ö`pþ_¶¥‘ :1¦:àÕòÌÃY)—Ÿ5­ÁO7­– ùÛÇî.qòåõjü ¿2 Íšô çõ-{ÏndKNÀ¼ܰÆà¼yB·*ε:ÖªV1ª^±±E)—á•jÛ¥|'*Ú]uy…YuÄÏD–^‡±E€B÷øýáâåƒc¤endstream endobj 786 0 obj <> stream xœí=Ë’Çq:oøè˜Ði`cÛõ~„탭°H;ä el„"Â.˜Z,A¤½3«º»²²«zzfg–Ã:z«ë‘•ï×ü°ƒÜ ü7þûöJì^_ýp%ÓÛÝøßíÛÝ?ß\ýÝ*mwqˆN9³»ùö*#wRÊÁíœ×ƒôzwóöêûŸžÁ”:ë÷¯ÒctAíÊÛ»òx_|_ÞÞ–ÇeÀËÛ—óÛonþ 6'ƒ ›SfˆBËݵTƒ5Nînî`_ÿ„Åè•Ü¿v-álŒÓ£ñPa0Z¨ý§gׯÇAû¶e´ö&î¿Ío¥¶i/å­´ŽFhØ-<«¤ŠpöôM Ë]§ÑÆZqŸ¿ –É:µÿ€/½‡£œTÆìÿ;µ^y%<[oåŽ<Ó1·iu'¼pãNòó‡<¥õº7e†(¿n­‡à-\y%¹×»òø‚±tÀâŠÓãmyäWœg8pÅÖ@…š6Dîc<Š6ZRè4¥ÄÐW§ëuyüÐ<Ë9Ž•‘°‰ ŸS‘ÅV7;"™¶fBCDP ùyDk3!pšyRа½ï(™†ŒX«…¸íkåNg³v$°%Î%ì/ÄK1¡ez4¦ì ›pÞ ½ýHú%ù’¹mB¾„Ê2%øû§<…ˆAVË Ï®½´pˆ¸ÿí³ ‡èƒ£´þw8¯}[yü¼{;Qq"£ïŸ]à SQX îñ3àN0v¼Å[·ˆ‡X¹E8’ VgL¨HÕûA 9¡P¢rœ2º‰qz0*ÄyøsØ #³ÿ3l[ àl~b -è¶Þ / ô%ü4÷KF„zäõSsì=£Ø*]ÎÀr>ÌgùkÜ]6Õ†”„4@Ê(à¶aÿùCÀÓ„™Œƒ—aþðë}I Cp1ª^ƒúcyüP_•ÇŸØØ ¨ûùmûNcºÔi½¿åÇaÛ»Ö€‰@™ÉÒgm9þžËæmrü¡ xYÞ¾?À Õ,§ÀùA½ç…욇J+JIé] ËN”Xû?p<­¸¼Õ¾O¢ ô©Hô›u"@¥âLt¿âD°NéüÒó)?þʼn!WT¯fy8H ­ lVöXrcâb¨ô¯QæemRj…,²ñ4 p)™˜Ç·Î…G‰ùIj‚5ûÒ>ž(!† +à.éZêA+ Ìò­Tõ_i›FÂùß,A4ª¤´´ž Èù&îó ,¼oÁ…ÿRóža‘W©tö;¢#~Wt:¤¡Ì¤‹¥Ê7ó Šƒ€{¡g ’“©öóÝ}È{Ô æ/5›mp€€·½9¾_|ˆB!q‡“€j`š9l¬aÅ€:޲$”5¨.GªÜI©—ùMp[Þ~l Ö"n{*wRaÇ e­GDã¦c!¦°†£ƒuø†(Ì\3*ŒÌô$¥ú-LêÀ‘p%K%Ó[Ä)ü»Š5 x c|¯`/ïªéPù„•M…0ïÈUöQn,ߤ}ÃýÚ`Cµz^ì]"’óµùùa܇7k¼´y0ï.J€e¬Ðk™—œi;ÐÊlÐxÈiÛì Ô ôù’€‡Úæ¯òäÊFFrT¡ž=ÛVÛZÃÏ»ÖÕ{g'òàý3D+ä±²ˆ«ñzµ@äNÈ"ÍdéL\ÿzú¦Vê(û"àsYA¢™fÌÍBÏΡpê¹.^ÚVV® ZÜ–¯ñüM:³Š²kÝÑ[í[béÄ \¶_ çÈô-¬ª'7E«ÃHÛ~•`Ôºöu!-µ§rƒ°DØKdèôþ_ÓÁ0ÔIf˜VlÓLôÃäBI¨Ø¸Œ„åôîÆ°x3È„Bð3¾_>§…~$Œ9O  cî íçs_УT¾„&V3Ñj%ÁÈãÈž^‡ýoq:€º­¹Öë¶X¨%¿QnÜÇ2øíüƒùETú6R9sìhÛ# ÷´Â±½Õk¥þO[ä4áa4úR_ ܰÍ32l-:òˆ}®€Î/³[)ÚxÀ¥‰8Þ>+, 4UŸ•{ÊãÝ¥õ+8›| ŒÚ&1íé½×Ôƒ\^FÍueƒÐ ²£þ¶b+ŠŽ÷(ÏÆy(®›l0@ T%`À `¾A`\²ï£~ x±I»bLTd2K•`ÕéÜòhg ×0€Õ öQ_ÜrUbÒ­*6 Öb_ÝVOÉéZ0Ql“X¹%¢äcFÏÌiêü~]¾œàS9ʉaE³¾§œ]h``g)³–ðα'ïQÕ©à÷§Ñû_WÂ¥«5³Æ + <–‹/Q[!Ù-ÁžóY¼©5 Ãìªp´4JÏ Úut±0ã?#±é1®(;b!æmm{´½ µ%‘Ä]ªñªÒ®Æ×6ôT´Fp1MØ‘SKýË8t81‰°b' %Ù<ÒÎÒ·ˆ¥Ò˜À¦xô7 ˆ³yAaŸ˜»>kˆäT‚l p ã™ÿA´â(sRÙ ÆrØî X†¡„±N ðÊ*Äód4£|¯ âåC>Ñ#Öò ¿dÈgÄO|Û<’CG$è©|–9ãmÒP£ú⨪Anh«ì×".–°õ³æRœf¬„Ù†Zh^KR'æíA8pw2R:NbÐ%Ï¢­Ì'"ø¹¦­++›l"ã ˜?_k‘l²8ÕÖAÃUÀiBO1쨗?’éF³.9¿q.gŠҧbÚÎÇÕ üÌèx\ŽE#}*i5̆ÂMÃN©nô@t»<ô±ê5qéN·“¶›a[9}'Ý-Ó¼.öíªW/}ÞIeƒEuÄHž>.–6@Ô¥àj´AyDWØZô4ÂI´¬tWŠ$oq¼Îö0¨·}/š£Žü1;a¢…®l®jê„k¶\ž®ÎÆàN„á>.ƒîXHmpƒÍ§ï/‰¨¥œF^1q€žƒ´'åN4ç­©P #¬½^PÜ´ö˜z–·¼5¬¡ÝŠ‘0ú¡ü"pES,5ØZQHÆ"ó[¿z}0´Ø)¦§ëü¶·)€&t/Ôö>o‰–Ý"¼Å8ß’p[˜Å‹4¢~4cìÑAZçïai1fÀ"wyu»H·€×’1ÚòqRd‡r†š”¢g®À uiŠ"Ë„PÀY u–¢›^*ëÚ )¨yį¾Ðóxšš³¼O,FzgÚ9e ’‡ƒJØ„<})1aÇRî¦ ·N"µ¾‹LŒ1îLj®ka¦?Æw>%ÔLiZQò܆9SFÍ6AîÂà+soõ>â$𢈠Þ×Údëßµ Ô/`U N(c\SgïË[¢¸>Azü|¯_tfYmN°TÓpF Ý•¾¸–±«‹ªtãŠÿ‰Æµˆ¬l'^õ¡šdA<é ‰–¼ÆŒÈd\aN·œqõÓHÇ…‹ÊÉ%†´ƒÐáQêyZç¶OÁ(t‘/K”Fâî¥W¸A™¥Oà ìŠDŒ·[r”,`z}´®Òõys&ëêÈêWž6S[K%ù¶%:«‹ö4CïùXÙä¦ *'įçóÌ:Z +>êk‰™wJ?>}#ù.œ>> ?liðòÝÔLJóS´S£¥Äù™ˆ‹Ô_á=fŸ£mæ¥5RTYõíì÷å‘xÃ`ÍËÖd§¸ñëfNÉêµ+œ‰T&©7®@‰DÁ¼r¸‡„œ¸ÛY…Ó.<ð­’«*p†Œ|iµ³!|mÚç±âÉõÜ&V¬Qˆ›Cn&»®¨NǵëR•ïý¸þ´3ˆÝ–®R R$o ÏøØ$Ð#ºJLc­G¸0ei€íqÊ|Ruú°G™³µ§ô(?2 Ö9T1‹IÈ%¼sD ¸4éO2<Ýgøpçmç/ìÖšº‹ @FÿŠ mv³À MºŽtÃ;Í8@ŸÔ[IqÔxêžFÔkÚˆÐþFÔ#»hwµ(> € 3æ8ý¼µß¥+ÐNˆÙYéñ…ʷαù‹¸H1×Gª¿£Fúµ5µ·²ø1ÇJ.äOz­•Êâ?^>ÊVIÛ'4k$­rÑw¥ôâ$Jãs šdƒÀ³ÅVxïO»ß$ûÉàó§lŸE±dúqßN˜÷4æœ YËõh¸³–‡$HÎÁš¤çràLyHœ—£ëQp^Þ7'1§$”‘†JÜôÑÖµú¡^6k",õþ‹D  âo®ßµHµæ2A0Õ›õ'^‹k/øY³Dêûqtœ<ÒTùœ9èÖIˆe0iX™:r3G¸%H­húEkGsm¥Í@â/§Tf(daÍø×öþ5 Û4D·)©(-ˆ=R·Ê ût¾‡%›s"=– ÇϬ:‹9SÖØ œÅrñµoÕ .[Ô(¡û û¸¿®;«yÛÜY-ëmî,. Ô`HZÍ!;ît3'¬Iñ—³dé,"ž£T`ED,––rs$èä¿»ºù›:4E÷A×ÃXýÕË#”ýÎÍ¥òÐ E­˜ä—:Þ,˜oþ%$ai9ié æù,é­tý^%~=ÇNéåôøð]ÞH0S·e:¡ c?ø•Ü’2]ÔèpûC±U‰‰)椼×G¹ú&n}T>O·X ¿Ql—60MS‡Ü5×s¦<#Z ‘úÆÀûnnµmonùnúM ?!ŠrKÊ”¾.Y—XÉ7 ”ÿÀáÎEsßà^œöÒŒ-Œ„ö/à5VÜ)“É0J™:‹\£zƼÉw˜_瑌›:*Ûwˆá;Ö?…«z]Ah¨wY„[Ù}¦T²ýXk£/g‹çEÓoÙÁ/¬áé—›:Ž‹‡ü#LÊJÆAŒKÕ ’BÉ*+ˆúezJö–l ù‡¤*ܦLâO¹¾K.›¥â!ÜZˆª‹ü°ÜV­¤ã€U´k0]W9<¡×º½Ì‘­b×Êýœd¥ÓýQDemL¹D`ÈÓ:œØ€)3Sï‹Â<S¿*|ô¦9àËJXþËÍÕïq%v¯?\™AØÝŸ¯Äî‹+¸VŒ÷ï`(VíÞÂ,Uuó›û«Çþ€#vjñ.M w˜Áq¡p5›úwåñMyü¢ùv¡®ªÙuúg€ ¾Ä[Š#W-{v­CQÆËnÂÅÃ4"’á8óÈ]e¥gy¤‘åOUyÖ·¼L×Ú( œ>Ò÷øãÏùÓèô±Jý½Þ쵤ªvÖ&0 ×ñ&lJg3é·+x® M7ÔÜ?ÌÞ—‘÷œ$­ìW‡a™4DD£˜Æ˜n¦ ônjšœ¾³®ëùÉHµÑ–Órcc;š1žRŸ[“"ÔÞ¯;Ü>›:p¼óu]+dÀåyHyÓ\&MÅo)ÕV²¾+“óòNù†±È*è4(IDZ`¼-8òGopÓÆ]0è¿& Ñ•§ÍÅ[ÚƒmO»L½¤À?Õ”ŽrÆqö—n}S[û¶¹ëz.Öb99~S¿*7Í_ÎâjË&5$+ ¶šl vyòó›D0L1¨<ªþTs? q´ØÇ»òø¦Úóµ;b1û²Xï ¿kAÕK¡UèIÁK\™ýº,ü·@Ý1_NÁëw¦¶€aën‘íßïy˜Ó"W,¶©ïÎ"Úg’ ñ¢CÂÇë‘épÁí}yKìüÆë4‡Jí4ÒÕ̸NMÌ#ï7Övöü_í7†)ª¥zlì7†5ŸbÑ4ä©U<â†úaVÒ€_*Uó×­ ñ×iëÎiÇùDm#mk„óeÅ»Ö3Ç ž£g Œÿß3è1EÉìÔõñ7{]2À¾Ú3hCBj'`J©bcq„ sýjuþ²÷çë…g¶çMlæÑum)î/ÔdØû)Ãõ^xi™š™t˜%•ݘ²žF³ÒƒM-‰¬úm[‰´j­ÿˆ×öÿޝ#0kI43e´Fb×;ðPJV-MWÉ·¼µ4Kï+ðwZ\Qß(Þ)^êqGu˜ªãKFÈè‰IQ ©£9§O¹!˜fQ³g5­¹LoS(äa¾ØžÒC/Žg?a\m#Þ7ó+xœÌb\aFç ¼Õ]¦qó㬿ÿþêl$üendstream endobj 794 0 obj <> stream xœÝ}M“Inå½~Eݦ8»Lù·‡ë(Û³µ±5‘f:´t ‹¶fIv«Iõìê×/€{dFF$«Ù:”ñÀLÀápøCdĿݻ“¿wø'ÿ?~ºû·;ï}¹ɇS»%ÕûØœ;ÕvÿËûûºÿ|çNùþÃ]ðµœj¼O-§“Ë÷K:åV«ýÿËû»¿üñ.úæOËrÀ•‚«'¸H¯v í¾„@ª-¤[¬§rÆôwÿòrÿáË]8yŸhä¿Ý±÷ÿø?oðê.¦¥žZ¹Ï­ïý§»b:ùå>WŸOÉß$¦ÐwŠmÉXRñ§A©¡Ðh,]ÊÖ5&ZÒL11¦ñ¸ª&ªy‹G‡Ú¸èb(²3ÕpZh^\ˆ4éŸîB :šôP+<ùq°äèO®‚¢<•»”™bWùVò)¤Ý«†›•6ü<]§<&ÛxºÒ7.Rëw.zuqÙ§qÙ¤cl-Ÿr.J!µS ³le±ñÇ]^•²‹»W½ºóÕûSâåZN¾ÑøJѵĎì¡7˜„0óhÐ &¥Ì\º„”¶¹™HÐ=þýòù¦/PùïñÓý?¼¦eœZ¼_("J.÷¯ÿr×ó]CÚ-±ÐN@éþõ§»‡ÿöï?ü×Ç7_ß¿»÷æë›¯ÿz÷ß_ßýùî‡{â ’rYYHà¿Ø§wwáþ¯w1ÆvjᾸHô£A¡OD¡Ä…Ùü_\h§œ:… ƒ’‘Û˜Rð7¢Pr BÖ’šÎÇSªN‘.Ÿ¯ÉHI·Œð衞²'ÂBrc§Ð2¡…Ü(׆Ü)«˜f¯ô¯þqI®§ØÈ÷È)i9-­–>L¢$ÞöFç)”‘h¸ZWßÖ_Ã)Ä• 2Gì“q–¶ˆ9¤I Ä“mI…DZG¾»’2±Ï øS¯D8./uø)2I(@”€Á”³–—LK­û!:8 /äˆìuÈ¡°ö2mùäÉŸ 9b±©%w.4€ØI³Ë²®ô¡èòߥ¦Ø¥öåÊ” i¹Ò¼ŠM©Bó\ÉnÑ—–2tmâ«Löã»Ws`õkI'™ZL¤kÍåÔ5#Sd`éæÐŸBÅk0PXxÈ%kRJÁö²š¬Ï– ¥ñNhÅ®(4ÛK˜¯*mÑ!JÒORuà‡B _<#  ç¬6PLæBS[ÔHJmDpê˜„Ê òG»ÉÑ’’YNÑtJÌwwZPI.rXĹ`; ¹­á"ïtªe–hÍž’ðpgZH„ÓÜRIr¤L ‰ÑE+AfžbU Œ ËNM""ðf›I¯ç°Êô™¢PöÌ™R‰¬vZ W‘].)‚iî|ÖxmLñ–­„BÚÂLIH<³ìo¹*‹9Q€jTwmRu§’•²pµ4DIw¬oÚ³N)«åTåD^JaöW¢É’°Ÿ¦`YüŽŸ¼e5š­9ŽþÓ ¢Í®•)&çÅiPÐZˑꃶhà¯s¬–Ä(ü(eÚ tÆ)B3ÄRØU[Btè$¾É4$ÙãrêÞ£` *: ëÂ[vF.óýò8¼­:"T ôHÕ>4)ˆ.¨EXû$&´¬ÙŸ(0!,¶ê¨Bh…Å–RjBa4S( ÝZNq«Èg¥ª2ð^ ¹‘ÜÝ-” ej  2í°XÔ“c¥yÍbœ£)I+86ZΞv‰Tæ‰ôÈ«Ù÷UëYÌ öd‘.ÞÄ‚}Æö7Å¢§™ e^až"GWs_OëÜ(.O§µâ“x“*%O›MŠsÑŠÏSÑàh¸hè ÓS¥щRd¢d iIg¢D¶ô€ðH À2š—ÝÀ“DdÅ´DYO’lI¿"…›§c’¢ÚSR-G.q …fˆ šdW %Êú*£Jæâ)êN ê+ ¹Ò†ìí‡hŒt‹§ø•UÎü%–Gš÷lÞAé) £ì\òR‘SäŸb÷eÑ-`³–íÁsˆeÍ}ôTchTouµ©à ëeÆ)q¢.B—=$#eœI%L"Ž¢‘FÔkú.&K„„Кaû&(f}Ô¬†Õ–j‰¤g5Ô<×¼aRÍ“%t)šÝšçœPÈ”yý„¬Ç^MZ@Zœ×U礱¢9(ËWi,`Ó÷ºžq@ }~¦Äȵ’CÉžW9orzªóÍö¢`½zŠcÉñ’;<¥)•ÌéШJÀÆ`¥Ð D)…5'RhP´”l Q)V …XxÁ'³Éߟ@)X{ ;"tõ'…QrÏ1'E2Qd§ \^.D‰²ç(p¬%zå¡âœæ"-´ŒbꔥŗžÆŠGŠÿ´¸¦W‘äM¢xNÑç š@:Ú¤^ÔŠ kõÔåÒÞMF'à-ê@详¾y”ÿ XR„…Ð)47 Ȳg‚ƒR¼ëÙ©’ß‹P²:QRߘ+k”Z€)cÇÐçoP¨˜¬uMq½`Z~nYIvr|œ(®WA¦O¡lQu¦EKi2ŸÊlD¡rR/RŠëû8SH±ThÏСº/J?òÏ”^Ý …&6a«ŒqE!µÂš'Hé?Q\æ!ÙËö?ô!ÓëZgç'‡Át*p{Éh.¤*“Ï”ˆ¥N”ØEªDë.Qe–úŽˆ“7²èÃgÐD5€ Ö xŒ•¥È €)m|(8P`ä”ÔH. "×^} `Ÿv} € á ÊM}³ ±oE)ctBìFÒúùí{QÇ›‹R°@åÙØVrDókJìÉ}Pªd¦À}€ üjô„³î2+H¾1ÉqO)²ØPàÐj›Ý“hˆ ³H=Ìç© 3Õ †¶Èj ¦'ïÔо„ާUW9úW‘‚B¼ølˆ=738jŠ•¿’a`x¬N’$ÄÇþ®1¥*u‰š|Jé g[Y”ÞIP¢+ xbÈ8Iw¤}§ê!IŽär+aÓ• (àMÑ•“ä^Ï2´&-ͽv¿ÖU¡ùÇ¥ ”2·Y˜B%A 8/•5%hÖÔ«rž®"MiVªF@aÀ‹(N‡êC&qC:Óù:…`i [üðU7<8óUE}G§é˜b {÷$Åå ­%쯥D‡[ØÀPCÓi6ÀbЩ£±±¿¦0Ï®ÏýøÏ@µJÂNé%$ÒUò`KÑM{—Dàç]Õ¡¦’†º&¡†Óô×wOë·ZÈb½ ÚÊmNm¨œ¢e~¬M>CÌkO4~ÎZŽ&X_A® ´dYËQw…Þéq@É‚.Í 9´|Ãj±ºlÑW¨š\L²%Kr8"–&ÁEÀæl0DvJí>6Äqž2QÎblK°4ÊÕzl4¿¹®(¥õ3‡æ¤ˆ&¥8Ç(A«£¨G'‚¶Ô<Å‘v—Fq¤í%.ޤ[ÐÛK } …pK/sb±Î·—¨jR&÷öœBx½½”!Ĺ¿d•¶—¨òŠKnÁ޶ ·—ÀÁ$¹½”Жè´}¸Æé…­´† €U7) HqE‰IÕU )ÙVb‚Wu(¯§i1%`£÷Q‚´ïz‡‰ š¢ÍºÞa"ŠSºw˜:ÒÌê&ªhªœô¥ÃDßË=í0Q“åí&ªqŠõ“¸ÃDM³.:L\âH¯¢w˜F‰£@%4ZÒKK!o.í yBûBÌêí‹„Ã¿Þ ‘zFÚ" §1³w™Nÿ‹5`PT=îb˵‹¶[¸‹Ãµ‹³f‡`pî)Á«ÙJ‰yºÍt:Æ)ºmkÀèU>YS %:Õuê)Á©5kDuý`0³jN*V’AÕÜgâb%· І#ÓDq¦27š¨4ñÚeìMhðÈE¼‹Áb´7š¨±î”Ì ¸¹Ñ”púW€»Ï/úMx¸qB”ÑžêQi÷rÖz‚‘N)ÚÈáFS©Lº]Ø0­ƒjªkw’qñĺW "I‘}ImÈ)aE %™Ûšâͨ.…v*Eí¹Í”pÚ׸îÊ:kFk<-Ry,YmÂGå1š°{=¦jnˑӭ* ɲ[o3QaÙ­E¨Îˆºìû ¤l‚;Ån¥ÓDeEÐJ:MTVh.ë&šðf!É&¢8mŒI¬{T?"† Ê„†6a¸Ó”pJׯ’ï5M\¦ÎX¢&ùÞiJŒw %ör…âOŒê),øiÖ{b\ҔݻH\Uø5ÁY[I(´Ô•GÛ­v–úPŽÖYLªüçÐP “ .[K½÷š¨„H½81ß8Ú5—qfpÁT’¹œ_¬ ÜW´s ³Êlr±Ì!@½Y¨÷š¸†°Ð"y£„Ѐä¢ÍÝÜQBèš%„¬« t½¬*i5M„´š¦ BzM^Ñ^Ó€WpðŠöš¼Â½¦­h¯i`+Úk؊‚£¢VÓÀV´×dØŠ‚€[ÑVÓÀVØŠ"×\Ñþ‡+ pE›\a<| +ÚüÈÊ (²2Qœµb„¢ÈŠˆUXE¿º©³5 SÑ^“a*¦»a*ÅM="®%S1¦2(Š©Hßh@*F°rC ¨ ‚3èT¤zk§¨.Ч }ÝèXu³Gý¡Ž3Qá^Ó€S´k4à”AQ8e¢œ2(u²ÜÆpŠ mpŠigpŠÆNÑfÓ€SÌ5 §h¯iÀ)ærƒSapJ{ÃRlɘ¢Í¦¦h³i€)ÚmhŠv›šbiÇÐí6 4EºMLÑn“)Úl20E{MMÑŽË@S´+cpжšœb¹Öàm5 8E›FÓM¢ÒXpÊD S;НR8E[MN‘VÓ@S†:Цh¯i )f•Á)f¹Â)Újpжšœ¢­¦§h·iÀ)ÚmpŠv›žbó«xŠ6›ž¢Í¦§H·iÀ)¶Ñœ"ݦ¦Ø>chŠv›šb‰ÍÐí6šbKÁÐËY†¦Ø24År–¡)ÚlhŠ6›šbkÕÐm6šbyÍÐí5šb‰ÎÐm5 8E3Ç€S$4E;KS)dES4%M¥Ð h)4(n´¬” µMIâ¬e*„¦·K¥$žß IáIä¢F‘”„ÉdŒF‘”„¹ãv•B) 3…¬jPJ‚‹—©ðIP%—A) h(šÂeq)šBß…SˆÒ!6ƒS(`›mp Q:ÄfpÊ (œ2(§ 1 §Œ¡Na ÖÁ)¬²h }œ: Ma3á?CSØX󆦰·â¦`åLHJÂÚ€ IIXQÈ熤$,CäPCRöì¥pàÐgµMB`dG¡”„Ä#”A)‰“Ë„¤p6ðuBRø\¸ÀJ™„4†ó›a) ©F–’°ã`¾ Lá̃ÍÂÀ”~‹˜’hÓ2À”„»é:˜2( ¦0g(S&ŠÀã*Sx( MaJ˜ÀÓÏÀ¦0¡`JϧaSØrœ£ Laïä8) ôŒ¥˜K LIØÕSœÀžˆ8a)6W†¥$l Ò(–¢lPJBE J±¨0(…¾0Á ”¾%Ä J±èR(… ÉOP '­ÞÔ(…)\e(–b‰M±”AP,e¢x3JÄ(˜Âƒ…30ÅÔ10…mySØN?a)LhiÂRÌ]†¥¨G Ja§s­¢PJßRã¥Ø"2,…gHa) ‚(–Â¡Ä ˆ`)my‚R8 È”b‘nPJB9“ò¥$”Ru^?„ÿòúõ_!õ¡v~éT)~¶F¸S÷ÉwÈüK§_ßÿòõÃÇ·Ÿßþb?rr÷½ Ø=È1!÷jnü~òÕ](´Z˜NΟ..ãzŒf\vÝàÒ_­$îõO)så„>D_¶e\v݆ZA±¬-¤«Öâ¶Ô\g 岕¨Á¥×M\¦Ö<`\Öš¦&êü²•¨Á¥×M\\IÔ}©dB“o:»h–3xä¢ ž½pÑËlZÎ.ZÉ1½hð<1êqØ/”K4ê?þô8GýŸÇ}w°|ç‘‹èjãÓ꧉‚Mš¾Î—˯M~;D^>+Ò´ïÆç2?Þýx÷O¼ÿ¼ù›c¹­=⤠ß)´)K‘`#\RdáÈ?ßòÓìû_Zpfâ–Aùã¶9ßEø¡5w7nòZÖE'*Oiq“¢cQMÅ{ÚPï\òÞì…†Û-Ú4{J øÅbÇßu„KÊfoËîK .­¼´i{¿Ÿüæg9VŒ`ó…»Ã©NÙ¢ØØcC™õ[ËÝ›Àèpÿü¼—sêîø0#KÀˆO%˜ðwv ëîÑŽK࿽}óåý¯o>âx@I\&iúÃÝÃÏ¿üôøøyS6þ4Ð"þúë/Âɧh{'?$+@ ÏñœŽ>à¹>Ç\¯ŒI>µ/j‡ë†Ù½†Ûá‘Pøe46¨È³ŠAFçXùîó kÖô:×+{žÕŠéòfÇ\$jYøZsMS‘7h ¼Î5‰ê? ?˜Ô«L“§ä1cžºÎ5yjfºî©ë\¯¨ ůqÒ¨¸&OíkuÌ5Di¾ß÷ú×ðÕ¨c®1ƒ+¦5R9Íà×pû¾V7p==Wpë ;í˜9,œ,¼»ž,b¦„ÕŽ’Å×4­¸7©EÈ9w$„ƒ©8f‚f½/Vå1ÓxfßJÇ\C§ÙWuºÎôê.âq^øЮ¤¸&Q»æÝÀ…'¢Axü7p==øc£ÃL?™[ð§ËØ7sv£ã®ñ¸Äÿs½²ûWöýw×Óý‡[ ª_“GXZïqîç¹c®‘Ðê˜ë•ý¦÷ l¹ÆóšDságW¸Ét9ZÇ\¸ùÃñC0DsM[ÿõ[Ræ­ïÆÛÔ÷EsM[ÿõWæ­÷þÝÔwµºkÚúwµºkÚú÷µ:æ[ÿ¾R‡LÓÖ¿¯Ó1×´õï+uÌ5mý»ZÝÀ5mýûsM[ÿ¾Ç\ÓÖ¿¯Õ1×´õïju×´õï»ý˜kÚú÷µ:æš¶þ]­nàš¶þ]­nàš¶þ}­Ž¹¾ÃÖg^/ípëß×ô˜kÚú÷ýwÌ5mýûZsM[ÿ~ØsM[ÿ¾¨c®iëß_Ç\ÓÖ¿/ê˜k‚ ñƒa®x×@Õfž«áu¦ Û•t×qïÕãÇYSþÓDÑN«_RÁï)¶(v+â‚îZžoå<“¼{+§\=ÝÊiòžp›æ†M—Ú]Zp©ï•;5¿›üî3Â/îÜÜÏ»«h)üsØ-ŠÝ!³àyŽóM4g‚wo3êOwŠ©´'Ü@´aÐ…j—Ú_*{åþ¡ï%þ†{0q3Ž_Ý1h»çÁö[»ƒïÞ(óM¾çrwo’«§›‡LÞn°Ü²èB»K.Ô½r‡å÷KZ«üæ„è#¿VãÓ à“üû:ƒñ³6(rÕÇѶÃO^øÿsÉ»iMw œ`–ÌZˆ<¡L#àÆ½–¿1Ñ]Zy©ï¥M—\KtßKþ-‰op‰ÓXF±ù x$}È[Ë ~Óð\ò~¦ë»³M˜‰³ ½„oŸ°-#/ÔÝ0éÒ€kÙï{É¿!ýáN(£tõì‡úzŸÈ00¤ÔßyfÑõg«ý®£Šè§Tà 4-”ô gvôÉ{¶ÆñªSªÃ³ÒfãœctEÅÆ¶ð­Y2®|¦ÙßEo»\¿³üÉ0—øéµf˜£pœ|׿NfÉßM=¹|­ÿzÆž‹M›ØñˆÇAqdv€L£M!´ ²‡`p&Á¾k¬ J&“ ÑfcX<šÆ¡Zª„µ+òù7cǘƒàÊìb%ðt\ LULÿ®zëåö]gzd™a=ðÌ. L3Kÿ®êéå+ý×3ö\lÒMMÞ£Ö.•ôìn•”œî§ZKÎÿƒ£ãZkÙW«µ”¢•’ ÐJJ‡°ZË”Šé(έX#ÏÍ´Ëg›Aé'“«'yœmT7ãÝõlcßíl£=™¨=¹èv¶1-„bZŠ„s;Ö÷쌛Áþ),ÒÃRpi :E®GX ´=:ò­×ÛW£hLÉõr:ÀJUA9TCpfà ð^†­¦l¤Q$ U®„›l©ªƒh®ì»ÆŠQ4šD€›Ž0ÂQuPÕQœY±ž´gfÚª˜Ôg #¥ëH‘¥ÚmÐûÇ‘)àe”eâpý¥L&A¿« F%M‚ac˜™¦…qˆ–&amÇc¿•ý¹÷#ßÎ/TK*ƒÂIÁÄJΰ-©˜jÆ!ª«ýªKÞ(’L€$ ÂÒŠ)a¢£IX[±ž¸gfO[ƫʦŽúé$eyû«œ^ô÷ã|“RmýÐÂ÷ ,Žßõì1(ýtbäôbcØùÆ´0QR¬è“ö, ÓÓ€>.n2Ï(¢ž÷«è±S~)4L[ ý… ÊÑ#hSûnS£d}ï^— ÇNcاZ¨}¦¥xfGŸºgk¯8¥ê uúSÅê TŸÀa'TQÌþ.zë Õ¾ë ÕrÄTÃäªvé ÕÌê„¡^¿üLÿõŒ=›nz¢ÝµG¹ÐaÂ9¾½þãWeú¸º?Ý=ä¸Ã;Åê’ï+Þ¯”3?'ŽŸöR_NÏ· ý™t%2« ±ø“Ÿ¤¤û—/§õá‰rÖ¿…ûÖg:áÖζüÆÆk®¸íí þžÆðgc„‹Çì}«x ¿¿’vá´liù:¹7O¯‡xê¯)&±Ocÿö™¡•F++þ¾3“ðž6¾o¼×ß›±`dx|ɶúÛM’áðJ"~ðâ'YPßÇý“Ô8ŒÈ+#B_L^¾÷x³° c-•z"ñÞ}ýÇHÌË€ ç<}ô|GÇ"ï+‘ÇG.ÓÅ)åÑ“ïÄúˆÉ—&øÝÝd³ÊJc€ö"áU—H ðÒ®EÔã ×ú/ñÛ#´c1µÐÜtÎãºë¸p´4Š~ó åë—³¦þ"唕îÓ»Oÿ2 ùì•÷¹4Ö寑ò•‘ØI…,¥ÿÙê„OÎÃ5jɇ ûÚ3õ’w’@jx¨1]Æ_ñ›£Ó‘&^©qŽª‰jRI¿Ðß9ä:¥LÁ÷2âdÑš„É*¿‡GV¶oÙ¼|³Gêà\6¤GPÕ#µ^x$˜GóHIê‰=õˆ¾gH>Äñ¡?s±~-áР÷¸‰+”´~×ÓîÿØ:ô7ý’MEBËþá__¼t'¼a;Ô‡/ð–ÅHš>ü;ȹæe ¿€› Rù=i—G'Z6Æû÷/^¦˜Iz~x5]öfp|zw].!¸ððóÄòqœE“rõ»‰eÖï >ך(=>|Åg¼™—¼;)8³¿Äˆ=1E¿ºô=.®º‚a¡ÁRfGL²'ƒ~žÄýØ}ÒŠŸ9>Oï„#­Ý-zзÓ0¶Ïye}W/S°gµ¾,ayxœÔ¾býìçÙâ™ç§•¾büÛx3XŠËÃÿë"ÑAаZæ t. ¸®‡.Ϧ÷™¸ú(…J©”Þ¾z§Æ{)î°ëù”hð—x'e¦å@ yâø‘UmÁ5~à\²ç ÃwçûÐlÒàØéã›xåz(Y ãÉùÒ'– YbŒ«X—¡—¦óÊ<lDÎùÑÁo dÜÜšªªõ2á¾)¬fmåz8<æxuž:-áÕºüi{¹’æ(ÂJÑëÈäÃ'ø’΂BóRWëàJ@}žD|€Qte*;1ŽÂ3ºiöFRà+'ó•_»Y1äóEkWNËö½(WËv²l/.ð«8QjÇ«x—øð¿9<—Ô¶|ê©RŸæåšS¿ôˆhA#iÁE:nª«ÏÉ €ÍתñýãeVdæÏÝ1©„‡_{$•¼54LÝ0Žjqt¦ V—~én\Ò•Õ5ñö²GTîK û®¹¨U7Ã,UË„ÄkÊ£âéáÿÒ误¾ˆ×¶Š9rÎ šg•F'}ýÃëKDh­ÕÏ2|þö ¯kþ|÷JT44Ž8þÃ&Éón8©1ocoVÜx¾H Ýà×)lçgÃÿÖ‡\Zžeÿ¥«šÂ:4æP{ßY2qì˼3ý.û2¯†šN.7] ß:#öù¿’=T ŸÕἦø–\ã:t>Nkî,%<%–È}9»–ÊjuuÈ2Ýcÿè+FÌZ¯˜ßà&/XŠSyuËÞÎc‹Kå÷Z»xcs!Õÿä@çc·rÐlÑüyµ½Œ „ä'…“Ú¼õöÚFó¾3Äe9›JšzÚ&ÊÊÜõLB9O9â¶õm;É—¾^ ž‚PWÅ™\÷fFëÞoÅúÅ(ïºRï7Æ:LÏ>®–šš¾¤ Ûy²íx3±Ÿ©séõî|‰µ¼ŒR¹\F?n‡ïÙ‘‚6QÒ~ˆEÞié”Z˜çê,ÓêηŽüšN©æp8^š£™XÌ‘ýwi×*’k«Ç.ˆNn'èÁàW»(¹¨îž}ñ¹_ÎÝŸ Þ¾ÊxW¢ù†f¤öÿ3-™Ђv*Á¯Î§×&ùѶ›lùˆAm+›%±PI»U žÌC®~ãÁ…]äòjÑMqf› ”_o*·×áç»ÊãˆÌ¹TCŽw¸ÿbk b¿NŸûŽl«#eßTlSÿÅ5¥ŒŒ¬ƒ­pÜõëøøq0ü4¨ç¼Ìí<íb4oº}¦¤Œ $yu¦|ÊÙ!à¼P–ëë …Ž'ëj,,–UZ-ä9Pÿc{En:·fª,|X;—ýqîÜîšÉaÎåããçññíðËsÛ{sî!DÜc°<øá *Z §¸öÝÙÑRƒtÓnüðmßèÏCåwL­ä~ ƒúu||3>¾µ·DÔÏr<\´áu¿F­±ïÏ™¦Di©ö“žIËý lØ.t6½äã‰óŸ±ô:õ†¥GeÔX"®Æ9:N %äS%Ž´mм?ŒÙcþi ¥œŠ‹ðFè"úNñOO?‰VÞªzJXdÞuÖØ~ãIÏ*-ßµp‚Zåü¬J4_Ö¥êYU×¥ö» !s)§ü½õ¸-ƳíöJ•7›ŽcÏðþ ƒøFwçTxuÕà&_ÃzÕðš=_5s†à×ͥòÔUã‹ûÆUƒ#ÖÓWL\pÐ 7-Lm]O8С Sw66hAAóí¥>DSžù½Ûs¼_n%t$¬!­Ã‡÷Æiwý0>N ‡{îç­Vö¥«{.Cñ•âg}µ®{"‰õÛC>6hÙ¾ í;¯ÜIE‘ŽE!¥yÄ/]Ur"‚VÿU ëcQꥈ†&â5'> stream xœÝ}Ms%9ní^¿B»VM<]ó›Ì·{D8¼™QExÑáEµª»ÚUÕãêv;ì_ÿp@d޼ʼ-i¥¨E)q‘ @‚ xÉüÏ[wò·ÿäÿÇ/7ÿyã½/·¾ÕåncIõ6¹²œ–vûíÇÛ»ýzãNùöÓMðµœj¼M¹-§œn[:å¥ÖþóÍOº‰~ñ§Ö¸RpõäÂéE*-·¹åv"µb‰õTΘþî/!·ÛO¿Þ„“÷‰Zþï6ðö/ÿ|…€‡›j85N<Ërûå&ºËÅÛ¸øpªíö³ñ$_Ê)WP„'‘%§˜'ʸË/%ŸBÚ½‹Ú_ý½íËM 1|›ïž![yTëÏÕÓRvïzØÜ÷ÅŒË’O9N½”BZN1ÌÒ…gh ÿÇã‡ß~üxûñÃoÞ½ÿëÍ?¾¿ùóÍ÷·éb 9XiÄýïö×Ç›pû×› Å r©ÅSƒ“Dò¼ŠH±ð\& N3€:piBrÉGR­4ºN¡B± ya‡LãÂúƒæ¢Zì”G! Ýë;Å"BJrS"¢ébéS”(ùäÐPX Sz8JþwjPºÊ¦Äåä¡£P.”ÖƒM¸ÚG·)Ò e#¸ ŠW+cÆ,I±å“°¤õeŠ´\Ô¬˜I~"ž ™ÐÐ#+ ¾¦P'¹5…¦{&™ìÍaE!µFë¬OhèHQ™:—(þäÖFx²¼¬(Žú++…¼†:¹õ `¨3ŠǩJ‰¤N ¥±……Vкæ!Ó뚇Lq%9Nuhú„:«(ÈŒƒé!Ò௺0ê&‘Ñu)ø†Å›)4 ™¦EŠgw ÔNLg¿O~¡¡(JñˆíKÄä‘Ï·¢ŽBýóäÒ¡²¿ùaSŠ.5ý2s?xšÒ¤7¬ö4?|ŸT!²ž&A J xrg±‘(˜ >rê1Sв¢P?”¸¦P[I)è=ï²N4iÝQ?ø:kèZ=ÔˆBç¨'RS+±œ8 ¡Í}ã¨'ª¨Ã>N‰çAS—»âl†p8JŽ‚F°yÓu†Úg°£¾Ð›§_ŽÄIïPôÆÈ9 â[äS4?œO:ÏH wäi B´¢“Ü®y&ù«³ÙX‹õL‚šçì¡ ¥ÏšˆÍspgJèFx[©¨ VÇ麄tê–â5E ?n¥õ4êøÓ+ÍÝ"÷$LI¢Io9“Ý•†2NKN¬yÌBo±—Z²NrØ‚¦ˆ×µ)®%XTMø-"Á'èS!V²{™Bx|Æü‰•|x‰SÈ"ŠÓÎ œ¯Å²Dõš™É?-ouž«”$4›ò¼äS–°èŠÜ#Q¼†PR5á.ᥧÚ4ÀÒ) Ž<‡òŸ9’óT‹ ‘“(Þ"¨PÈ‹ý2‰"i hC%ãoëN£«I‚Á[ÂÈŠ˜ÀÙ‹fELé‰MN¨¡¹Ø)¥'8Õc‘aJÂ<¡¬(ÁX¦O!*}X"†1•xz$‰Üåsa8ç_˜ôè*ß/ý)â×z.C_!‚ë}G„ÆÍ ¹i]7º6Ó,ìá“)œƒTñ¢‰âT]¥PlˆËJN.j£¶…°YT¬<³DeGH˜$AŒ ˆ‰{¨Š•Ü{ìMBI˜ð‰Í“Î*< ÈnxŠðaÎ’h.ÔÞR$‹ä< ó ;LD,¡e\Ô¦ª•4üœ\hj±´ WEj#}“b—š­G±V!Ù¡Á›¥-¼)g ­†S9†! jc]Ÿ{<Š…PÖÕÎ#Öš{ÎÒº‹ ¿B6A&ŠOPŒõØÇÓ€·E)Y€Xd—nº›aO£]óŠBâ—¶º‹ì¯A0!œŠªÒ8iÉ=Ê‘C3 b#ìk)¡Cˆâ­cã&žrø"móÊD Íeí*‡$¢»8~ïMG-‹ÑŽ'2`éªDÛzÜD-¶y”‰+ÂS°TQöû6P‡Ö!‚ Kb\°®‡p4!rP Lp´b9qÎöh¦z•îX”mDÿ‰C eYg<­?X/2+(³wŠê¯XÕòβ¬(9÷ÅgPRQ›ºØz²ÎÄÊ%:óhQ…BNS§04cR‹*r#—N6/2eŒR›ºŠ2‹bc%³° ­°¸ j4N±õÌBæ:Ï"¸ž1óà.Œ¼Ï&0—FSÞGušŠ|$X£.ñhÜ'sÇ‚ÅòˆÜóusÊ$jßKDlyÖn ý.¤¯X˜)+”@C.…,¦Òö0ö.E„L‚;¶F‰Ã/dJì) ¼»›E뇇ê“ä•#j”nĶ݅žJˆ§+…–œVrȰ–ã­Ã´-še-ª>èÂBk¨ÞÅF”Öd„ çŒDp}£bSh-Ô(†¨@iCP3{Ì"¢šÐ§3iÐÓx–˜Å¯Å(m ~‰CÓѤ»Y®&æ‘H¤ûdŽiâ`J –7Øl™óß÷Ý#o‹ØÈâ\˜Ð”ˆ}ƒЦ¥ïêM!‚뇠)Ñ#D”B—”%Æ(%zʰTŽ,Âcƒ'(…(¦2(…(,p@)Dq=Q(%b?Ș­B)DáØÀR" °ä',…(…AÅR˜€]´a) L@JDP¯aR&Š)ƒ¢@Ê ("bE‘K…P† ¡0ÛSƒP†î ¡ ŠB(l1' ¡X(„2 ¡0¥NŠ,Ë0‚à'FPødHM£E…OL]ƒOÌì‘vhÇ|B”ÄÛiƒO˜TÃà¢pŒðI8ÀÀ†Â'Dñ Þ|B×ÁEP¢C ‚BžÐA‰XÔsR%t¨€Â†i@!Jf+ @eBOè2aõèÉ (z2(ŠžLAO˜RÄžXÓ†ž˜zŠž0QEOØf” =±~1ô„ûŽaEO¬Ç =áqŠ~BOº×tb3Ö°žçØUv±ÃfØ Ç €¼žpLÝ žhØà G&ì¦ ià‰M3MlNiâ`³Á›0Sâ°÷ W*E¹³ah¯w› ZÅc0ÿúËã‡Ïë'`¥É…|Ÿ|v”rˆRµÒÐK9DÉV¹áZNFZ¥BÀµœ\,Hk9¹-¶*BÁ øÜK9¹ÐfÒKMƒ‘\P éW/ådt¯Àˆ2\Aj99/A¡QN]snIÑé^_ɹ×k09C¹{†(~]Ýə֨´æIiª2IlÔ¶ðDÓ¢êð„¦°g¯å%ÈYj99{«ÁôZQ¬³¸”“3âz'p%'§e”µ¸’Còz%''陞ø“þÅ ;œÝæD T´¡õ xÅ´{%'§¬@“€‰¤ôLîsŠ pvxšZýë‚ÌÐY'ŠÎ [Y•ûPOÊFIª89.‹U/`zFRY ‡N ´dx6J2’J­ëp'SHØCé ¬9®)(¡Ìe› øÔµ5…ým¾+ZùŠ!ÛÌ#UtûÀJ?rg-q!'GW·¨™´Ô䀨ڊ’5A0øÍ¡Žòrˆb5™ÞŸH-æBNFÒ(½Õ 99¤lŒ>L!Žš rÈWžOÆϧֹ¬‰lkÌ\3ÉœŽk‡ åd[ãñ|@>s‡RÍŽÒ·?+Š>c£”°ŒZ —t(Kàmoõ»üðî»<@{Iþ·|þå·|×úóx“r÷Њ<Ñ6¯â)%çÜç‹o(HùK¹ J”c&¤üÂä™äÏ7?ßüÛŸn¿^|µs \\ Â.í’¿ Ji²™³¶”œeö?áW¼{ûé¢Ý[ ¶VnmúéO-z5ù‡6ÝŠÞ«G[F± 9p rbmÑjñ×Ðð\òîª}c •R2²6„gŒà%«·úomÜZty_Oþñre‚BÄhË(6^Éw¬ðÅÚÒ"ÃÐð\òÞÆO×ÄiR¤"âÏ.Ÿ1z—,Þê¾µokÍåÑ{=ùWŒÞA­³§eŒ ÐR/QFë±ãß“†g’÷F6AEš1zF±ˆi-l)Ïà vo-ØZ¹µé‰1|5ù×Ì@ñÀ±¥û‹Px—5;dž ÷L3‚w]yö1ãÙ™¨oRm› ?~«”ò¥ +-l)h@ýƒ³pkõÖ‚­•[›žš…¯%ÿšYè>ŸÚRŠ 6º¾\ Œ¶ñp+å[“~gr¯Š c•Ì\D¶”çŒàÖê­[+/ØôÔ|-ùWŒ`íØþÔ–RlÀðL›£íêb˜ô;“{Uµ4ŠÏµ£mÖ–òœ¼`õÖ‚­•[›žÁW“<‚‘T—GÄ6Š­{14~ÑýÅ"v•êçÏ%ïah8˜aZ•`«žÉßRž±^²z«ÿÖÆ­E—Gðõä_1‚HÍ?y‹QtÊÅto¹@0_!ÊÏv.÷šñ³)¨[óLþ–òŒxÁæ­þ[/XôÄø½šükf cÄejK)6\´/Ã9[Âh[Î}šô;“»;~xfÌ-ó*ÅÖÍ5‰’§ˆõi®!J~Ü×j‡kôÕ¨c®—øZ?ɧáYƒÌ¾æý_ÓÃ^gžt®hºà·e­jݪ\âGŒ÷;õ ®ç«ðŽx[«º,OÏàè)­IG3x‡kxeÀ¯áÈ+w¸nhÆsØ«æ6C}Ìd‚V=%h‡éá&¶ÀGJîKº‚kˆÚ·î ®ÑåüvD9 <›˜²Ã5º|æÑæLÒ1ÓdÞ®¤+¸H'<£…ÂDª|*ßJsM¢$Â޹†Oí+uÈ4í«tÈ„‡ŠñT{;Pé ®IÔ®RWp=Ø)Ó«ö6Îy×$jnoZ®àš¢”ì¢ÔÓ\cí<uÌ5\aæyÒžfšâÔ®¤+¸p"9ž˜Oæ]ÁõüU,â[áá´Ð«XÚ.bz.úÑÇ\ˆ…_MÜ7ú ®!ŠR’ºIå6¢v¸Æ¨®˜žÕ® Eù$ÞNééèΰoò\ã<ü“¹žo2ŽfÀ{ÃäKy©ÌÊ}=™^êáõ JñöÕ´ˆ¶B¯àšâÞ¾¨c®±ëÛ_n®àz°tz_«+¸¦5bw庂kÒjWÔ\ã;s‘¨œù­ŠƒÔã˜kÒjßÀc®I«ýÌê˜kò«]QWp½|³ˆ¤ÄSyrbê<Ùw¶c®ïÀWš† ‘N>®rà€Ç\4ÔG„Š:您Ƨ€øò1פվ/sMZíûò1×ÃèÐ}­Ž¹^°Äàu׎}YBâþú׋‘˃ÅPfÓžÇ\#Òì¯ÿWpMAk7½‚k|sh~]Áõ`§3ˆ:æÂ§zÿá`syÌ5¾ús Õ1‰Ê•ß9;Ðê˜kêöÝ©z×ÔWû{úc®i÷µ:æzÁî‡Þðú? È© ؾªÇ\/PОњU½€œšCìÐ1× Tåã5üñÂ-Ÿ©:X"¹¦ýñþÂ}ÌEné ¿3z0…¹Æç½VÛc®ÉÀýÕö˜ë«-ŽàÝÀj×ìO–c®x Þãä¬c?10Ài?ÆsM°Ô¾Ûs Œá@«c® wÛÇ\/AhPF:Þp˜=ûªs½Y9ôpÅ}?æz ‰#2ÎzµmUÕ#5 êc.vZøT€}·¼‚ëa´·Ás½d¬)­ðípé7{vÝò ®¨êëÉŸo„/¸eŠý˜ƒ±>æzªüf?„£Ð¸<ȦäùxÆW:æz°Ïˆ}ÌQøÎä‘R‡L£‹÷Ýû˜ë%TÊaÔµ>Þwïc®¨ŠÏär<u ÷{õ˜ëªfr>G]q’ýN=dz‰¢8áLÑ‘‚¾Ð :½F¢”ñ*Žðãµ}%q¼zr&÷ªWÇ+Æ&ï/Þ\²h£ÝÖ€ºO<õÿZâ¯xf•O‰ó–JO¨âlÞœ/QÆ3—‹¼h1žË<“|Õ‹ã™U“÷Œ§R/Ø´ÕnkÁVß'žJ}5ùó>ðc³ƒu¾L”Êç^GPƒ(;ÉòÈw™ûõ#5‘ù øÁÑÕR 㺷ñhŠg>)—‡J­ ¹~¼1-„bZŠ„s;ûöì­÷3ïñ…:¾»­œú†¤Un.üI kY®'ëŒCt v-mLÖá\;~ÖL$”ÄGàŒy÷ëÉ:¡ ½»„s;ÖC÷æŒÃÐ…Jvѧ‹¿ŒëП˜¯iég»:_kßJç+ÒÇS‡d?÷—{ìf½dÙ7v]ùlÊqó‚¿L6_A¶6-?‹bzó¬7Ô[1…g”¼fªO~™(8ÙfbÈr”óüUûP|¿&‡¾úK9äÅ9“`׽ǛA)|<×Ð2"÷h£_£ ÕB9TK•°¶£Ï¨7k]î§ôOñB)/r? X£Ý#^DþXÉÄøK&@¯m*ŠLv ±@[ÑBuPÓZœYÑîš¶¶±BEVh•+믵l+´ªf ¢¹ °k]<¢Ë«ÐÕW[ë³ê ª£ 8³b=loÌ´9PZÔ„¹uK\×Ynq_Àþ.QÂn·k‰ÎƒÐ£÷¸Ÿcû/±´/¿«zzûJÿU||36ñ@UZ1]šŒ2‚h…ozyoJ×ä91£ª—S_ûïò"¿Ýn×j”D+»¿+mòÕ(k_~Wõôö•þ} ÞšMœÊ †úÕºñÊal8ïÙ÷ïâEœo™ð&~(E¯)áñKÆÙPÆ!/ ›½–6o%ò¹ &A>”cmÈ5Ý¡Z‡ê-Îìè9â›5nº”ðÊfž¬K8–™¹èr }?d¦·¬×Ã:ãÝM‚^Kú”ÅÕ$$¼;<µ!×úÁ¡z‹„3;VC÷öŒã¡“W”ñER¼xýe¢$þò¦_ø3?ü Poí8¹~¼ñKê ®qô³†½îM<Þ J㆙„@ᨕц\㎮„†Ž]À¹}àÞ¨iýêOö>ýdŸQºz!‘{ù¡¾>'; ‰vˆ©L”ìðGlU‚^këƒ"ú©Õ_Û0M å0-E™}ðÞ¬q<ë„Kæ“í¿L”˜ûãŸ]n,øþ5,—Ã6û½+>n×ëÞÀ0-–Æß45ŸµZF r=L3SQ$œ±·7fÙ1Öý·ùæ tϲ¼xžíñÍ7 PE T‚]«ß J÷,“ žgm˜ošÆ¡Zª„µkäÍ7oÛ†{J°%KÌî§ ›{ªfú»(n·ÛµºÎ tç2â|Ö‚¹§©`ª¢JX±·7f™.vŠ",Ì(’C)m9– ÕS&XöàèX·eaz=²0£H¥4ÇÒ6, 3-„2ôîÎíXAýoϸ¹J3ö>F‘‹Êµ´<í}D·ÁÑu·½^½Qdç¢tg£mØÞÇ´ÊлK8·c5toϸœœS)ꘂž©Û)¾6S¸ÁÐñ9 ×æ3ƒ"^%Ôé´…á–ªƒr˜Ö"àÌŠ8ùÖL›‡mrJ¥¨SŠ\u9my8¥¨6ºæ&@¯Í_EÕBí3-ÅÀ3;úнYãxÆ uìY¥o:U®îI¥á±gÍì÷®¸íYíÚö¬F‘§ Щ¶`{VSA(CÅ.á܈ո½1Ë®:ÎóÉ÷Î Å\~lÔŠýÔÇ~îfvjâ30#H÷øŽamùÖþÀOüÜ{‡XÓr{oiZûù¤¼_6Èr?ÞàÃ8ýòî»!ÿ=¬¿/iÁs·3§×1L2,ë—àžý.í««Vüy+A[y¶-â O[,õ²-‘Z‘1›;9[O>ûz/ªõ—OÄ7xS<Ÿ{%ÌþQ^Í*œ÷Pû¹qžýÿeøî}(…_,ðø®¸óÃO§“sßÿé{s¾ìâéOÏ6ù âúèÚ¸=A—_¨ ©ßÝø²œôœÞÌ×ãÜ^LGOñ'SJ= ä^ M¿¾¸p³—xs· ß&Ïš~aôÛòGd1ÓÈ ‘åÝ}%’‹‰¿öCv¤Áøþ£vB}ç 1Jx‡X‘nïùe{“Yï+=„(×Ô7¬—6HüܱµÓLjl:™ï‚j'§¿÷á*žÎØTâ…±ºðû½zÈZΤN·ô–) óû-«6\÷ø0.Øî§yüýlò2¤Eyk¦wd÷|5·‘×ßk?Ók’4ui9îÑUäMGªÏ—qÇ…‘é³J•¿¦ãÊá:5öñí zewE²Ö>@úgN~Ÿ ¾¹[<úK+äêø|{—§LÚ…þ•Ó"o¥årÉþî?ÞÝÓvg Ô»Oïhc#5|÷_ çš[ wßÀíJ^–»©GÈbº•t5f7þü¿ïîùãÞ.Üý?¢ú…÷q’öWn0¹Ú݇qã#È´¨® ßHíîëtçÌò?P$“"éîWk¥ü¥ÝýÖït uᤶXSô+)3û‹cNÝbäXþî—¡íOº,q%ãçIÆ]CêˆYÁÉâ/ïðáÞ(Õ¸ûÛ¤àç>"Í×6ú;σ3Y6É›eü,ÝâZwH~)ÀzÀÅ –ȽØÛí£v÷ß$€b2å¡*—í8뤀#„Iع1™‹´£Þ‰Âvq.±›åõÁÌþõ]ÀQ^-¢–ÄúˆÏÍ|"„%S ݾ{œãŠLê›Hµ®#PL D$÷Äcn¾¥ù®Ù™I |‚ÿôôç> stream xœÍ=Iw&·q9óùå7ðH&b»±¹Ù±'ωc›y9È>h†œ‘왡<‹¤É¯OUÝ](ý57)Oõ€ø°Ö¾áoçó¤Îgü¯üÿåÛ³ùüõÙßεž—ÿ½|{þË볟ÿAÅùR_7§Ù,cD"ž¶Izò0Ü ê ½scžûS}4ó‚5ð»oØekÆë€cˆSšë)ù‘°eÿùúßN´qN´Ó¬5ÀÊõ €Æw°e’§_®ŸïðÓje œÔÚúfû¼Û>_n}?Rkаү¶Ïëg^\ç'ƒZ”ÏWé”–GCËX¿»ÛRð­ýº­o·éßoŸwÛçËjQWƤiîüJiÀ¯øá(†2 møãÖÊ>¿Ú:¼X[»6îMéz×ʧKq€VCcA^ÀL_ËtyåÃ^ü…ñ'Ö…ý1/Õ¯—z0ôd3Í~š“Ê8ä\Á!AF,[ÅAŸ_€É儾#BŠ(€LAùÉ;[ÝɈðñ~È+qÁ¤† ¾V#ØPi‹Ï¸êz äÊxW Çé<Ã×Oý…|½l@µ'&gjþÊ’§tľÔ2ìÁæÂ5AwÍùå_~Ÿç›*÷\ppa|}#ôœë]oo&—V‚ùnÛ:ÿÛÌK\’sVåcJ^î· ŠËêp³pbÔ9õÖãà_LÖ¸we4q‘¦E+µI\ÒÒ›ðfÙ^ƶÀ¡‹—¥ûG¤t@†ºÔxd µ\@œÉﻬ¯‘ ¨õ¥ìK¾ÚZ_¬­}¹@O:¦uA_lï.ßÁgPé‰åÎñ·õçN­ؼ=6Ï1¨‘\£g·n‹í…màõ¶¨ÛŸn[ å~éˆW=>dú¡y$ÈÖ`L©È•í|· ÙóRLhÉVôzk](]Ÿ3fÊ9%d%Åf˵›fëwäx{Ç!„hª«Gd{üéqa‡h,”ŠMò*ÓFmÕž2‘ÏÇKî¹Þä·•’¶váÛ†ˆ8û°ÏgâäOß‹Ïôx½µ;HH qryLñjØ7ô¾iÀÕ늓²ù@F¹Ttq ­z•#T‡-ÄPœÄ;5Ö“³äPŸÜ‚Bc&&^KëcÙ0ojUTAkø¼gž}°|ûdá®Æú+lj†Ø]-Û©‘äÏøçdýnk½îvøM¥†ýúúì÷8£‹ç¯?œÙivçߟÍçÿz¦àÖ3Ͻ"ùõü-´x8·¶¼9ûãÐ #Éõb…±b²sÈf˜×]u’qÄo·Ï¯·¿ÜZ?mŸßHBO­Sèo;ÒF¼¯´5“*TÑ9x¾E¢®æÚ€ñGó Ÿ…B¿ÐØQw(¿zѧïq¸™¨™ÒÖñê?Ñ﨑ô;÷<"êª%žL”K°Ì¸/˜¼—F”cüm—ƒÿpÂàÒVð‡Ii͙㗭M=Fä¶Übò¦ÇVÌÆÄ%*J¤""ì0{ìɘ)¤ú¦8ÌõM*…Å$ ¨êDL0¶4‚ÔÒƒ_WrçÆØÉBÁf¡Ńû¯ASQÒ?1üz¸‘hŸ~ß £Yáý "VÃïT¯ÿJ¥¿¶‚‡ü{ÅÙÃæH`²…>_ ÎõNÙfó›±+û6»‡E™ ±sônåäA±4Ò€òó?'âf˜Ì¶Qš8jL¼žfÃðd¤ÂÏ£¢#¥~G ‡£Šº²×ð¿6s#Ú¾Ú»ÕacÞê‘Ý¥ gPµ…`Ï»‹šÿÚ]"eä¢ÞÈõ:[!÷u±„±šulƆÚ }ßÕVn¦™­Üo7‹xc±ïñ@lŠA_|)øŠWœWoí@_¯ õÏ'xÖ¤K’0|æ0·6~lB6Aøå¤”ëd{Ê0 ¡¥aLih< D#n2#‚Y:ƒ„è>3ƒ ì¦ ¹“>?tíßuû¾Ù'ÎhEšâDŽ&„4ľl 0 Å´¾´)Ñ Ï~8@'>6  tUxÍíê•Ѱù¬4C@kÚu¾åµµYêšÐE›FFPSôa(3-KJ+Ô"ô¯PmjIÂzS® ú=dÏXCS WS…yÊ""Ám¯/£™Œv:¤ÑÖÉŸ«wæUäÉ}ɶãjï@6KP¬‡èñórÔ¤5 þÖXKˆ‹Þ_ŒÃß)'E6~0í«Kpˆí&®Ü€†WуJ×GM¸Y8jj8 %,O5È¡–û†k§õÂ/©»í»è?ä?'×ñXÀ¯LG@χÉñ•Ë îæS;eçF¥>$ópyvc²¹c²OÍC›+•6ûúJO0ÑИè=í$Î$§Ç¾rip禉Ç9 ><(D¦ãæbï£ñ;Æ¡ÿ>N‘Ë"ßoÖ<Žà‚ŽÀÕ¾F¼2DÚ ås -mG²ð§†\lB¹G±AšOÌíî=j¤ß'âA¨Þ „þUîQŠ·=]ðþŠ¥ôg4Š¥I‘Sh½¹ÑÿnS»p `0?¯ÝÕzæÝs¶S ~³Ôþy_Œ0ÖJ²Gƒb|ãÓ#’t»}¾Û>o¶Ï“:N®Ì&)l¨Û³J:ÀŒœ ͤ¦¹rF(ê+B¬UG¯r¼þ1W>$+­Š£™´×#Á‰KCÅ ã}MF^N¨Š˜¤üP5ù| DÂi`Ü´(7©&d‹·tïU¥ÖW÷EÞg”“Ë·y§ì¹¤.¦ ˜á›"°¦!¸8Æûðƒg¯‚KÒT ËBßÉØŽ¿3jèñ⮓*Þc¹¥Åö+ß$;àÙ3„¶ï°â>ëújYƒ)Ì!OÖLÈÖRŒ†.ÑQ’¡ªFõHà¤ÿ€¾2 DºøÓÅ}Þ®'üþ»q i>]KS¡Ö‡ÑÄdïÁF|0±¥)ºÌçÀÂýAx YuÑ–\‰è`´ª«Cv\êä84‚ŒA'G:y !NZGu!B^BËËi¿*éÐX‰åpã[0ú>·õ©[8¢Á´Ÿâ]y–ÅÛÜÁh]]&¿yÖ[xr¹a“@®æI²dï†Òãp…F¢Î¾´„‰íž:§°$ب@ÎÑ#‡xå¥¡æ æpÒaagœT݃"WLPÞÜQÈL@=©,ˆÜHsˆnþš´õp‹Ò¡wÄuh0Ø ùk­-µ‰ŠœÂÕ ‡ IÉ·;4fGØkÂ?¿Ú%ÿ¸«tñgŠqÝíð›êàÉÅo #À 3ü1ºìΗX •cVSf©o<ûôùiûüfIáL6r¼}_îëüП1£öza¿{®’4„Qø=·N:Ùîi7o£Ýd„ J1çf]~$Å½ÜˆÄ j¶»¹„4cH@¥—ßÙÌè}ž/…¸'{ÚÙNÚÙÂ|=ðГI)" ðRvÄVå{±¢K<89Le°øÔØ|Y|!‹ò0Ý6Êò^å=k‚Ø|Üáþáé¸x$ࣈx.×ò5ß”8& l±²×ôÿùä*[á B/Ÿ"@É–uP¸_Å,iÀh+àÃÔ Ž£à{1M´µÚZöt!MKø’œÀ—––G„/ÙhbZNïhI’ÞñÉÄèµþ¶+o³Ÿ1’Zˆ5"7d°ÞOÑéZÕÛgBèÌߤ“§cB8öØh¯Û¹qºw%? ’Çåvò÷‰Û  DÄÍNÖ%•7%3'´‘83Ðþ—T!= 5Þ¹œ“cv\h’v)‘ Œ¦¬Ôr[¡ ï÷{sI5ʇ̫y 40`Í)Hiy  ¤Ç/y¨¤ £|:å6³­fVû3;pé`d"ë‘É`¸/6°è+"p¬Î< yI ävcÚ›¤–Çܦ¡ÌyˆíÆO`þE^´´ð3¥ì>Th¾3[ÚèÐåÒ¤“ŒÌ‡fƒ¥~…­nÏ•Û H’±D0e öâg}âqÒóœÉI Ç@]·o”cvÿ&†óqG³¿Ò yÍk|Ü¢È"MÍÔäDÝ¥e«]ø“R2C$pk‡Ê%#ïm'IæoòÐólD ÿ·ìte§á¶¸:$ájÉ;ÙOçf‘6ŠÊ]ëZ$x§¯#@}úRâHoeI¾ÏÛ&!ܬÎz 7â«®ƒ –- ë9Ì–Ò®›”@Pù]ý„ð…§,p~‹>ŒdÉîÔqxÐR9Š.SšC|”Àš1¯NÍÈÛ$’<¾ÊaQk ŒANul ‡dq¯BŒagUÄ2…9Ç¡îØÁ/ZÆK$sâ9Ja©“0áw4ð²|¯;Ëo<Ö夿ŽÎÖœÁÕ›MZ“ C“X˜Ôƒ¶ÏeI8Pÿšû¶¢%ƒÜbÔ¬lŽ®•È:Ê ‹¹ç[cºh4SîÛº òäßgëžUæ°§—tµT@°q •8+h@häfbšC>a áã¸èú³Áí3p&g¤ùy‚ÛO¥Wî?4ÓÇm„wHþ¼Ú>Õö³J,©'ˆ8Q\ØÞôˆƒY?MÌAãþ“¹[W[«ÚZO8úA·›µâ`øPò“»<ÞSƒ?S;n{Ö Vè‘},•fÝt1î)½h8¤·^ˆ&D¤öÓZËi=oøÀç¼ãtÏKõ‚ÍzÕÌz2VÝxŸ‹ UƒÌbλ:‘~Õ ž‚ØšV2saŸ”fð`—?M¥m¦ì›ŽÑÝß3h@ž÷­÷ ÜbÑO9‚ ð³“@ ש}˜¢6Òï´é\Ã=CG\ ÎùÉ¢Íb†i.塲¯@ºçÕ®:ŒNàèt—{#*Ô.«g Q›gùéC:ûÙ?>ûá)ŸÎþIóäGÉø‹!{ŽU›º×sšS´Çs÷á0A;¦ÛþDx@­Êí‡n”9wDY`Șªñ˜z3°ûÉÌVp<÷®—»Ø=îA[’{ä­ï”eìgWyòîUOå¡™xˆHQyœÓ©£¡æZRÄ“XfUBIù1<8„›¨Ñ Vd‹•^åûìû,^˜O& c@:Zædea5'»_QOkP°ß©ˆËäÁíû®. {dµUˆ`øN ^v,s9Ëv”9ˆäëÅ.6uë1`q{,=î°2ŸIwaÒ Èï‡ü³Ö›‡çç”ôæ-›ÔØâ+§ÐÒ©c Ár¤ˆÔ„dGs•1ôy¹0ÑŒ¢Á{ÄH£Õ0ù®ÉÜ͉XáunâV8®+ŸÑ„Úµ4ä¬`– R te½C4ø '¡Ý|ל{0Ôw²nMûQÊŠ,Ä]9è±YˆÏ;Z^Ð[ÿãVMüÿx|Çb²f}’å« p;à;Õ+ƒ2÷ž¨'O.)¿o2àÄlÐе~6QY…Ðà¥Î(ã/þ‡†a±N"èàè* Â,PA:ÎK1±Maâuu„K +C¡LÅ©éÀj2Rüÿš­)¾)±XaÊôdL,K¤¨endDkø  2|[‘H¬K½í@äárV­¶ÂM¡‘{ñhÔ>ï¥%§!õ ±³ïå¦ì÷$Ð …NkäcÊ„/E€íVìàuGgŒ3ìÕUÌÖü»kL‰xð6š§³%ÖS6W«N]CäÆVÒ¾aÜ4Ïu¨õh.J¤ƒa¼Ö*¶¤Ð–ôÐ#ãò~>J 2ƃhd›-ZŠ‘ú¶kÕép’ÈåúQ@—ðÄ#I±zOÄ^”ÿ¯{vý_^„Ë•°Ó/Cz.L¿Y¯Í£ÜÆYÍ«pó„!Ÿ!z`Èç:9 ´C>#ÕXY[òÕò“n>Y©Bæwý°}n1ƒýsÆï´2lH½r®CòvIeéÂ-ÅTÀàP¤ HÓ‚mÕÿçSþŽ~ŽÕoq½…ë!ƒŽŽäô·4Sœ‹o»tàó#r‚X(ø¸©EŽð9“¨˜‹ªŒµÔ|Š®´r¥€() ›p2%d¤cX,‚§ÔÐ¥z „îÄ3ô=Òoò °´ðÁù ¾.ÝEjÛ ¤.ôÅtS¤ dW¡"ñKšL®µåààfásþ‡p¶Î˜ë$W2ž"Yø»Õz·óø íÊømѪW9PDÆ Òòn½·;»]WLØaæ§WãP­¬fbÉ Õu-,W2~þ{X]çŸÞ•­š*£üït¼¤¬žJ™v™—Yk—£ð/.Å•óIµ±wàÒœ4V» Ü=Æïƒ6­'•ì¨d®0fÚ„ñ“{Ò)އï5j€¶/° ¹iV)Ø7Õ˜p¸â®by),™8rr£U™FŽq©6Kôíê}¤úÔ_ÇN}HœqÏ8SlŠËÔ²ò($r$³ÜJˆh9þÖQe)Ú¼´ÕlŒKõš›áY e±ÏGo0[vËYZ‘¢1w~Þ,J¶¨åƒga|'ß÷ ¨ýÙjü§5cï9„‡¿„Vo¬ˆ ‹ýo<¡Õ¸ŠÕQO²6Œ^ÿÛ¼•ŽXá&Ìr)¡öQaî—q\€5*b)d²%ãH—½ÂØÏ€É|Üšs…*Íšƒ7©{÷vž@h;øÔÆ»(«g¤Ë ÿEÂ`Pè#"lþá³ýß+øM»?[W¶g­]Ù5³y;IÏýÝ€ –Üî˜ FJ5¦«œ?0Gb/ÊŃlé!s®óiqµ)Å.sØ]7Þ2ûÀ9ŽÒB¨Õ¦'É»‚ùCœƒp{ ¼Î€¯êµå!yW«@C è•iät ±¬Nk£-Õ0¤psÍäºí¾:Z¶ð¨ô ЈŒüo3v6\ÝáGŃ®’2LoQuý›]À•¯=IU1fN€ÞÜ£Âw)$cMR@ßs"Ó>JrI&\qüàïúqb¤;uÎE2®—b£˜„ºã—ÂgpxÖ‡•7è¼=vÏß ˆ‡”7×ÛЉ jL6ŸË*ÌXÁ:Ufxäè\ÎÃTt÷™\çK¡ŽyvKp˜Õ<û›|'Jp‘.°Œ×si6毳[CˆçMýÓåU ýñ ãe+5ßY0¥s&_eBÆÍÏJúÍ)M/h·wå1í†Îã‘Ožù:”©g'¡È~#µ~š•ﯖÏ*t¨­ß‡b’ŒŽ„QþØ·'̰z;áö"Ø€µ®Ü å v"³ø¯U|˜c1Ò@á1öHÚ›â:ÀìÇU ½ÍkVûy¬ÔÅÄ.äƒ?_áï‡ W]ˆ‚ÍÝ,óoBÞo­*2ÃxD%K·K cÚåQèP /ÁÕ¤®©Óèƒ/´HKÛú2,Ì“êÈ„ú’¡z!YÂËúÒþ›ÂÒ†ˆ^IFà ü~«õ†VÚ‰¥§«×#5,d1ÎÙY—õE¶ÈÍiÞ;*_m1‚¬4/ç†Ë›EÖ6ÚI¤ZKÕGb›Ë¢ììº[q ëžé©Û *Ÿ¹ zsªñÜÍÜœ;íE5Q¤]1p¤€Œâãê…/I.f+*Œ±ÀLPœ_c_mµ0+.ú úï({ɧî@ 8f±ûÖ7&m KŽé3Ëöƹa"2qÖ62'"~w+ÅÁÌ"Þ*Åáë8=5¤Wpz‹'wÜì{´áš“D¯ßí ó¤ãÂÆ‚›`-6'_ç+þôÏË9øÇԡëi¸®ÒÇý`bü%Юet<ƒ' mÐq„•» –n.ÞWy–ý 4ÂN TuA;ó#HçüdC´÷ʲZÓÿNpQ‘’ cj á®ßÜTÁÀDë1»Z¹×p–ñþ5ÆA‚=f]  ;d]à†÷»›}‰«Æ÷Š[ئãÀ“ÖÒ}Gå ¶¤ü‡ÙÀ:x·@X‡°ä€)Ö»$jUÊ áà`­}ÊnkÆ"cŒ1Rj—æ5|ePeƒÅIÉgž,ù7«áˆy·Uý°CafÄÕõø©% „Óú…œßmÚ)ãÊ)%ïªVX8h3ˆ§G5‘„S€zbü¦ñðã<¬äÑ‹V\,ÎâÜÞSHôj݉‰}bPêòéõõwóžÌõ Á`ÐÖÕEmœ·êÂêIÈbÃ1F m¥JN”4¨‘0ÖOç¦ç5Ú’dÏ©1ƒ§ÖbX]víDbpƒÕ4x= 8z†_zÇsÚ ¾Ý³E|úØ„#Ãoà®ÿÒ©Õœ;#c=¿¼øG\Lœèú•àlbûnûúöþ³íøÜÐ Ví;×dç ŠdõC·º‹Ç’IVÝã ñ©'‰åïô¨NRZz"ôÚ7½êè'`’‹Gf«L;®86ÆoaŒäÎ q5hG‘ö­0ùgñ„ÐÙ¦b.#í¿.šÏÍžŠ‹ÝÓh‹k§cŠh_çÏ;Ï õ«o%óp=,ltÇÊœOoqEãû~ÜìÕJìÚ×·ò +²¶^ï©éðd¢ïISö…¯;²¡ÝäUa<ÖçÃ42_‹È@ÞfõÑrÇHxö˜1v04ZÞä>¹¤îcV½ÜWìm%"復åŽÈ¼F~Ö>àÒ³‘^0ÇS==s¤sÐvVÎ ˆº7Øt€¨ãÓ9Èé*¢.9X–¢âý+bìò)¤;¸ûìÉQ½±Œ ÙJì2ªÅ3D7ÜO¸Þ^NG¨‹UÜ!1ßUyÍ*(´”¥†1…‡{-ßÚ,¤IûcµQ6i5V£kJ)A«šë¥¶,‘šì\#g‰~òÁõÂ3húÒË÷pš?>°„(Û+q‹Ä’Çð`Ä èGÞªÆç‰¥ƒÂnÍXì¢Í¸NíóóP«ã‚9ÊC¹!,´üçót—ÏÂPFBö¿**àU¥Q ò]9÷“YbÄa˜4rÖG¬ÚJ‘ îpÍ&M$ãI_†#VZ˜cÍÐ5D¦õsõ„üþìÿn[endstream endobj 817 0 obj <> stream xœí\Is·Îù%Çü€W9=&æûâ$‡lv*åJÊ6o–I‘N‰"-J²å_Ÿn`fÐÀ3óÈGÑN¹|<ÄÃÒèåëønË:¾eø_ÿïÙõ†m/7ßmxøºíÿ9»Þþõdóñ—ܱ­ï¼FmO^lâoø– Óiµ5VvÜÊíÉõæëÝߎy'´ö|÷íÑ1ë¤ÔVØÝ¶­UÒºÝl+Í<“»×Øí}Öý9¶µÕΉÝ[Ò¦?½mÃ,3»ó£cé|ǸÉfº9‚RZå³QȤgq@¯Ž'ë³»køƒž‚‰lš~lã„Û]Å¥’¼ì#í”P»Ó4=™ò"vð^ã²ÇEÅ1´Úe󜑱ÛÔ®ÓNª)Q\Ç™†–¤¤Û½ï?Êö.ɲ_‘MÞE IÉú"nÆyKvN~öß°P%™õ´ ÝÝú«£oNþµ–wœಓs`*Úù}\†W|÷2Ò@ kz„v‹Ùè÷îèØ0×Iæv'°*Á˜W¦<ÔxNv؃ñ3J§½áªáLÇ´Ùs‚ax\=¶ršÊÚì4oãd–#ÒÕÓ>7ÙIÇ:çÊc±¾³ÈƒÐrw6ã¶Ù\øÖúî%›¬ó@é•r…K÷°ö\hÆÞß…IÓ2›Ÿ®±ñË»86:’vy%Åä{ ãE6bà>Ç­ÃÃÿøK!5Õ’‚³Î0?ððWð;.=L¸û[jþ›Jp`¬“j‡ŽMœä'›/p&í¶—w̶ý4÷g©•€~[˜z{ @+£rŽ^n¾jj÷b݃v‡:iÂ6ª÷§•½MÍëq‘¥½ð@G+J´´[² zyŠv•UÒ󞋜§=ú€X´yzÚS £Q·Pu7JÅG0šçJôˆÒo4hÇ(üZ÷ÂO¹òe£M¹x…0’ÌÈœ0¼3Æd x…Ÿax)vŸâxp|:·Ó—‹¦T ;ž:ó09­Q¨Z•€ÿã˜>q3oÔÚЬqEFúB}áW]hÀ«‰¹ÌÔG Ù°<‘[ב·úñd<ø8¹6mSS"cZÒ™Òî<övJg«¾Ñ£¡Öd’ÒœrÅM´„pŒÂ¹AvžOö4ù0«°¶3–·,ù°PP uá¸HK¦¦ï-iß’ñ¨¼R;<î0Ñ ÓÃ÷ò·JÙHÂôYà%-+*ÁDE…£!„0¾°x[çq<2 sû"Åž´‰°BÐ Àú-nÍE'÷ ?W5é Ä¤|7+ÃÝÖ›,˜BÙÀ2½˜“©áw X!ˆÁýp|à˜9¬€'ªöÇàD“`@ãÏl/ Z£Ñ,¨g×QSNI<³$¤›,`í 5MÈ’8Ž.ŽÈ›ÀÖ¼s¶ºêpûÙ^Tâ¦rÛóìÙxúU„¢e¯R\ƒê ­ÓhÛŸ_ë¶]wÆY>Œñ;X»2èj”†g$çoHû‡ØŠš`6œ› ¾:f`¹«ô ”îœ3Þ.TX®lƒÄ»šÒªiX©ygõjW¥„kJ¨QWí·äY;ôîH«NËÜñlጋ~U %)[÷XÈ GuÙÒ¿&æ 8ް$0«/BwG™¹'ã¢Í.w<£€‚Îyòý‚*†ý]Å£4`˜šØ­Ao×ÜË ,T mÔZtFñ52—‰kš¿÷Ø^]ˆâTŸBÌi©Ã©N5Joû‚FÓ7Õ(dò*‡Í9Ý/eg“-© pŠ­µÃù¼LZã&i³`ª5¤‚õí¡4‚ÿ‡:ÄÝ‚C÷Y8P±>3¡£]m#'œZþq /ÆeŠBÖQf´S=ò.ªèjü2Á›RB·‘ë*œO€ø>D.¤ô#G†Îë]â4 4ÐÜ3ÞS˜¤QÞ.“Õú$u©rÊ1gqÑöüͽ@ìÈ2§‰eîÒ׋Ô|—:œ–ö©i”X6`…BÿŠ«p9Þ§Pn<61hSÎ×jSXVSMuÊŸ‚†Ò9/š£ Qí í¸•4õ"nÅšœÐÖDŹsŽngf5H¤ƒ©•šÅñD'âÙpôŹŠý3Ø;¯4Š•²*(#Î8Æ~÷é‘ã ›ÎÙ\¤r™˜Ð; BS6¤¬B}¥ÉJ¦Õ"“aò”º¿£ô§žlø6’ÄÈlˆ©­›‚öz>Ríøxaœ´Àr•1G„dô#C¯¨ëÁß»4EˆdçµLLª¨Ãgã jïb)ÕÞ¥}¸+e½„®#=(LiÀÁºT: èŽçZ%HÚEjy]ýz“¤ò,}}U5¯çÅV ½Þ6¦]ß‚—¼”µFë­M2›…°h8{™JÍ¢´8ƹ©ƒNR zU ÜhÈm‡úY*€Ø‰t ¦ïrn‰)•^aŠ(z¾'¾"šü0–}=­‰f*vRh¦’…ྷk-^hº{YlB²©<Äbƒlùt“Mb¬ÄÙ÷½ÃHóAáΆÐeµÝçá¤aÁE ºÐ¸ÚÍ«¼Ò¯ñþNû$_½"Òò<)’²Za[Ö þ¤K"çªä>ÉÏdê Góùæä÷ûUÄMزLÞ07îùÅŒC%pâÅ\6 «'É4Ù[5ËÊβ¢î”?\åOLŸ‰GÊH«T:)Õcm”s†,¹(ïhcö‹/ˆJ,™#ÌGWÚgT•*ˆópâðyÍÇ+„û…ñÚ%o±pgeÉRD0}(1‰¥Ï+Ê=OL† XB òB­w\ o%FÁA(³w õ¢à<±Jt> ñ¥=c kò¡®seûŠok B+­It¶ 55yÇâó|zö“>˜™¢j£;œ‰þþ*¾Þaårn[z‰µÏ{ç¶Ãf°Ü[ qb¦ªT3×ÄNq4áÌÓCÕ(àþ§Ô fÅ«J5 Ýmñ ¨sºZ GTÎÀú¨>¿0\ ¸û å&ヂ@a8…¨'‘Çû…ÑóyÜbEéèEj‹»*ƒ¨%hHERu{Æ9÷Ïì•}_Î/¯’Ù‹.–;X ³&ã‰Cxªr]€`¶žíѰ;=¹ý}ûX«XÍš½<•¡“sì)01ÇòÚÐøxZ,P{;Q[ƒNÇ9+3póùÆA¤Ô“ˆÔÊ\–мK7ÌÖ±é T}Þsî–^èòøîÎÃY«\©…I㯲\úÈo¹}îŸTâUD㾿Éö÷80â§*‚ÞÏs\ËÎ85“½Ÿb‹{_€ñ†…T+@–ïêM¦0 }¯&<Ú¢:D'å%$…Õ³`zàÓkí÷Q†³»ÆÎðWª иâ[˜ñMß…•åŒÃû"бs ˜xPÝ?žŠ.cðä†[á«â12‡¾{52÷CœšIÝôæi%Jëi3ZlYX5…?À¿X÷í8Ÿ«[隇ղLTÀû6ú“€}LzuÈ2­ R1£ÂQŸ<,ŠÄâk.Õ”2Ç(U:¾pÜ¡êËH\Œ§ErRðð.ðºZ–ÙðªNøëãA-8Ül3àÀÛ±á·%œP tQ*&ù™Á…—¸þTþ²ÄѦ9“#¤[ÏX‚îýŠÉö…œ° §Öb#8[“øÿ€E5Eâ?‹>!ƒªjl¢úÖ›ät4yþE`ø!£çX#‹¡¥ÂÞ D˜¿œ‹ZÄ­¾`Œ;Ÿõ¦ˆ‰ :!ÐÕøßbê..Ú¸2U1˜íº(‚*WB­UZ&<†5Jnû'n׫2ŽT Œ4 ¹Ï#… kv½Pëñäãå5âϪ%Ý­âW­G¿Ÿ–…f)ºÑÒCVWì`6\R¤øn©¯—H|®C˜uæa´I‘Ñ…$=‰»ÔëèÂ׉«[Ÿ8•ÑSš—É e^ø:‰à¾ÉÞs‘ÙäÔYŒï€¡áÉöï㌠8§IÄÑê÷9Û“Nme´ì¡ÅyœkT%k•’Ø•—Û¦²À8X!Mîpÿ*÷tù¢XUí⣌¯yàtáˆîD‰C%ܪTиJ%TúÔß™/+ú8FÛ`IÇVDó½fQIϳì,Âóð_lþ_®þÉendstream endobj 824 0 obj <> stream xœÝ½[&IŽ%öž¿"ß”ÙÚ ¹ÛÅÝM‹] v³yìCUVu×,*»{zzg%ýzñ<$="2"§º¦ëcZ˜Û…—CöÏï·‡ýý†ÿóÿýüåÝ?¿Û÷ýxßúØ®ýý¸öó}ïë|8çû¿þôþÞÿéüöò|×úu=HsùŸóáZï¿€2Ú.”Sþf¼ÿE(çzX—PŽe?‡màçþpœFi]>sMù—®”ã²?™ûÃe„ùp0®‡±¥=œJÑeÊw0–ÑìKó|Øñ¥±?,ëwއƒëÚT)ía÷» W c=ÌÂÄÌ”r>Ì Š Óf„oâKm=´ àÚñ0Ú½Éx“Ý\Më1àíḷ™ýá<¬ŸÝ:–5™˜f“…Þ9Í]ç m%+©ë×ûÃn3?:†ª“8;°7P.LF)çC[¶:Ý&z¬‡ ³2£œÝ6Kà{u> ô,c_ÖÏÕ6Ý+Y[›ûÚ°IB¹øWk›`Ót„c[º`Çá\2ö $|#ܨCí|X²°‡}jÈt.å­ù0t ÇhÚ Fuá´µ¦Û턇tæ×öÐìd¤C)ûÃÞŒr<—QÖi” «+”våõÆ·d¾»ºó~Ç6*åxhø8dÀ:–Ù(—^l¦”ÃG(‡u,ê§ÎjÉ2&U›®ÎÜ:þM)‡~}îÒã ÉE˜F™;ÛSÛÔ£ŸqcÄ·¦°ÜqÕñLa°¾×1O™éÕ꼦Ìtõ:÷)Ì3޲<óÜSb§p“M«„Á¶½²û!*DY%Dâv2mE±9„yÚQEëo\UúŽcØÌCB lV)>D/êZ„¤2Õ”¡ Yå¹WqËõ^µÊ!k9zÕ<‡¬r›U;ØìGm†-Xh¹lCEˆ~æ¨ÊòœGU¨‡ìñÖŠÎ=°m«ªåö­¨îÃö-µû!úKÙ4 VдÄ!šQu%íÈ!&A0LÍ!û¨ræè}Ô?2{u 7=aÐT½Ãö¬_b(ÿlÏDŠþ6‚nY_ûxèþG;¤©/áCŸ€,ãTÊä:È&–Oº™-ZÝYX8dÇÏ ör lÞ’µmÞfªY²¸m',¼d§ ÎöX(ãárJWe²Ä: v{9s¶qZÂÆË®úq‰Ü÷I l뺚+ŠÜZÝ•·Û6ÉÑÖÏØDÁ­=?56¤ó‚ elÂdí(ÃÊÉ…ÒM Ĩ³Ê„|äÊå äêMX`ke……ÒÊúËÏq‰Â뤛86Xå²ÏB1¼ /ŒM¸ü: »ŒM„å< K eÁ‚$Û‰å\0qÉšcßô“É»ckê+cü=vLv;ÆÕ‹˜e†vRQÊÐ’â6v(¬«H¤P:§nR+”I¦0ÉÊé‹a²/„­úaì¢F÷¢B„0`ÿSÍå⶘*»èUÛ@¯F? £ºŠÚ«mL5 …ÈÕ§|k…²T+”Ãíª«a¡3¶©j¡ìnì\ËD/0Ph|]×f„æÆ ‡,»˜UŒ‹P_@³?BÅFÉ_ü#³cB kc‚'”œ¢æPå¤94‹)”N«*”SIË« W³hlÜ€ åÀª¥‘WŠ­¨¡L@Ð BnêO(e? æŠÈz%JpxcÐE(͵‰Ã¡ì„7„²¹`9LRŠiH‡R*jfUnásHVÚ8l+ý8´+ßrøWÆã±ŒÙad™—CÍœºƒÑ²:XË :¨-«ìÀ·ì„ƒã²[ ËŽÆÎ=w^ØÂ‘zaGó…½ ðtŸ 0©û …‘Ý·(ÌîþGʃ»(EdÜ)bå®N=w‡ŠtºËT$ØÝª"åîzMàîYÑîÂân^Ñ:î Íäîâ­ÍÔõ MB ºcZ¥;¯©Kݽ-êÖ]àÔÈî%¥íŽtQìîlåïy1î³#â~}14îûcäÁb°<€PŒšŠì ŠR‘ÆQ€ ÆZ ¨@“‡›¢CN;,¨øÂPõÍÍNžÔˆÊ™g•¼.¦UèØjë¼ÛÍ&†Áá4­à6èÖ´¾m™åI Ýëo½ñv™)r#ßDäû¨( Á÷¼*R¥ÝÐDá?fE l«¢’&ÂßFE.M„ Ç¡MA‡@%öqýÄG±[d‹2—0Ëš æ½°æ_*€Î‡R@Ÿ7q¡Ï¨@GŸu—¾2‚úê˜ê+Lëë_€®oQþ‰—}§ ¤vn(°Û¦"scªŠÞñ*Â7æ¬^€qoõŒÃ«7aRP=”ꕘ0UÏÅ®z7&“Õ2¹­^’Évq¤Lú«¯¥ ¢xc¦BnÛS§îðÕǯø†Ý¼ëâ?Zµ´1ÕXýPSŸÕW5[ýYSÃÕç5U]ýâæ!ŒôMåWÿÚÌBõÁÍtT?}÷ðR¸òfª·oVªDÜ’•¨K^‰,¸E,Á·š%@á–µ1ÜúfœÃ t‰„¸/ѳó% âP ].”ÀŒŠ»qÌ‘á‡%%äÐ¥D‰Þ”H’C mr˜T"R¥JÔÊáV‘=‡dµÁ¶ÚA»ú-ƒe<˘ E–iÎ̉;-kã`µ,ŸÚ²ÄzË680.;åà¹ì¦ìÜpÇà…'§¾q,_xËñ~á?÷ ºßPøØ}‹Âëî¤8¸‹R$ÆÝ˜"UîêÉsw¨H§»LE‚Ý­*Rî®WÑîžmá.\Ñ(îæ­ã®`ÑLæ-Þšx7›„t·´èIw]S•šo[t­»¿©ŽÝC.Û|è¢ÔÝÍ.Šß]ñbÜ[/dÓ0aX÷÷‹ò€@±T4(ÖÌ Eê¶ÙYÅmÞÌæ¨>ªi£i¤)ÌïvØQ ô†}¸Ùðí0”v~q×¹×OÅ) û}V4Êy;KÛb½**ÙŽË´ wl³®LüaRp XÕÄQt°jy›ǼŸ‚Øü[Õùxû|¼úœ vôy|ékS0¨¯_Á©¾ÀËú&ìú.%¶m,pÙwº@j熻Á. ËžgÍ¡|XÂYSÆï,äá¬Ù7.¯G´¦¨ j&ù%ð8Šˆ¥Ã‚¦ e#ÇxDkBÖ÷”F!LÌ#¶ã`å&ÓBÙ)ZÒšQƒPWâÒ«h !ÄÒyHk\ÁÏÞÐ:zAHkúžU×Õ6Ò€ÖgÑ™BYdiáh¨­¢{…¢@9õ³PBF=¤5 (§žÇÚC ?W‡Κ2îV¬‰ì@ ­dѬ‰EÅ*ɾnÕp ap#]Ö¦¡À4€Â;õ’³¦Aä4¤}DN[«l¶­b…7·e fM¸Æ{±ëBiþ-³æèŒy0k¶N ¡G Íšz¤0D›"e0 gƒf4ÌšbNšuëÁ¬9.NʃY 2<˜ù²¨ƒY.q¿d0«´ñ`VöÃ`V~‹Á¬ƒY9f³r^ fÅÌ=–•KÃ`V.ƒY¹ÄÌÊ]`0+wŠÁ¬ÜM³rÇÌJ®`0+9‡Á¬ä.:ÖÉ f%—2˜ŒÌXVò:cY)Œe…È0”BÅH– ÃX)• c¥ä2Œ•ÒÍ0Vj†±RK0Œ•š„a¬Ô6 c¥Fbˆª¶±0V*¶hÊa¬ÔÆ Ê(V*Y†±R3Œ•ºša¬ÔçŒc¥Êg+ÍãXi:ÈJóÂ@V˜ƱÒB1”•VŒ¡¬”;†²¦âþ’¡¬ ËïqR‹eÍ“Q4ƲèàޥDz 1Ý'µXÖ´¤_2˜… ŠÃ)ÏšXeãXeW÷YWæÜ5¤¯Þ)¼àaz_ásÏœí¹Ó9âN"û>qßÍSqºã§°ï¶W®8Áô•qNdFÜ⤧øX@v<=°âz Ýgåâó\ š8£Ÿ‘#…áĘÎ*0§ a[U¨.µ¤d¸Ù­ ç%k¼n| UÈ/ÑkTEpiªPjŠ ¬Wer ³Í›Â¹vÆ2¶Þ©j›gbôÓ×ü™8~Äú[¨Mž0gûŨ=Ïdm¬ò³™Å~VÅ~‰Zê³jþ »Ö«qÀ RQùYȦ)4ÅÆ`o|Ý–IULÕ)œØCÃ(£\nv({§üï~;â9-·ªXÎóœ<rëzZnU±À§åV+}´<´ä'|¡VŒýyМ–~U0(½‘H ©¸Õ;69Åó9nøå´,®‚q@ñà·ã ó WI¬$bå>ñ(rÌå¢GPV8p+8¸+r˜ƒ!HÌ;ŽÌ99ÐÌi‹ÆÊ®æÚÒæúöæç6>çVbçv†'Kª'ÛÎ'kò'ûÑ-¥ãLLç"H C¹‡Àı|U݇àÅñ~g¤„Gš@y¤„"Èt*‹LI By&m!R¨˜žÉ~`‚õ›„ Œ4‹P“‘Šª”ÉÔµ‘Îê8R>Be3)$´z䄿ܒ°ôÖÓ‚¨;Ÿ&†î~š!†ÒT1l挡:†Ò jx"-&ãaTâH»ëQ4ÍŒ“¤ùf %M<ƒ- I¨À M vr0ø“°„¢„.Œ %¼a”)!#Q “­J(E‘K´mÈ¢›€lñ©€u1œ€~1ä½é xä¼`rm„rý¨rÌrðr¯ûv&næŽ'¶&S$þV®I€N¶ ÿ‡ß½ë;6íz?¥uò”Ö84и}GœU¸Jœ½i™ ÿµB¹\Ees ¥éiDÇ?é‰rìöGh—R\ä„‚ø‰ ¬êƒŽÆ ½œ.qB9°8»áM”7'ÖZµœPvlïÄ:6ûÒ¡É¡ÜÓÚšk:±HË&%­/üÕœ\WŠèÖ íã‹6»©íçÂÄçfíV:®[›S>µŸÓzF7ÃDFç)›2ZnöGbKtýdsN_@ÍØúÎõëø#³ÉJ9lÄ‡Û ]uÖÄ7¦a‹tÕw§P¶B9uº2agr³Œ²`…2ý¯`jÁ(0ƒ¶Ÿ8éØ ‘ànýtÍežø‚5üºÐÍZü”¬ˆÆÄ'U5t‰`à7å[¡ÈA˜°‹ ;t¥†9„ÒÁ2ìk_’%>ñû2‰©û‚™(· EmŠRû£Kׄù7ÓÖBÑs1¥\FÀ×ıÖaý ëce+4hÝÅNÀü ¥û”Ü“e…ây4ˆ«Š™Æ?º tA (Cs­j›yÀn×~{}ÿ¸í6œó²ÅŠ!_³L ŽäšuÞpǪkwOÆUÖ`[gk çî,›ßîªÛÄ~Þ¶²oª¸Ën ×<ôÊpZåø!­²œ«k¯œ‡äíuTî͈±%‹ÍÀ “‹UÃd‹ t`»*+H±n«ÊS‡ÎºÉí¯*–]¾yVÉí—Þ/ÂÝ×V¥¿/ÍÒ-¢ ›õ£*ä厣*$ó¶«*#äÿ¶yoÓm¸¡Ô² ú™GUޏ_0WU ¸Æ¾Íªd‘ –NEŒ,àUuu¿ôšBQçý:L‡…ÊÇêÁܤU¼…ãáb9ú®ëGã‚‹ ÛUí..è…û¯æ&í˜Øee’9äïOppd>Ù|j7?M)*Yswo9eS•ŠãRŸÄ0ƒƒ#V_ üø|œú0„CáéÍà›Ð€× Ön7U)¦~Øy‘°áã²Èä}½L3÷ÓábG¬A5 ع“¢ÚF¸×—gèͺ Ж}(lš;œŽN k3O¼^ó`q6aÌ9ºi8̼ê—ÎÐë`šðÛÕ뀛ìÙ8뤚݌(‡ÂÛVY›vzÒe,_ƒ[W:‘Ó¶]hÂdW«;…çm»‰8ÙuÕ‡ \³rE[Ë<ÆàD«z¯Ü%ÍüÕà@Ä\y8—ÊpVÎɘ¯Žs;¾¹U ð…«Ê .›l¡•šR&¹Âe7zÖM>ñÉua¨ÆU¥cðµpM€1ì½j ñzÜxP£@YŽ›ÖÁ •h&(DZßÛx$:4(>dׂنšý«jSÕÃ-Ô-Vd¿ª>ƪ9c»ÊÆÌÚ¹V‡Eh«*~ÜÌqíáÆËçûkö¦¦ÕÄ`_|ùÜ á¢l·TL³>Ãè¸ÜWKÜ&BNÜ>˜ÙÔâ#«V¸9ÿa{Ák¾vnŸÑ4»ã&\ú7o›6ÑÁó½Ž @¹¡ òìq€²Ÿ”È_ÛQYM—8¶á†~ä|JDHCêÙY (P̸i¥Ð•6ŽØJ?Žêò[D~1dž9^¢ÇœfΛ(4׆H5–ϱl.0ÑnnqæÜIâêÜmbïäâódBøä+Âüä=ºÉŸt’‡éR$›ÓíHQ k’âB÷%%Š.NJÝ ”LzJ)¼ô¦RÀéq¥p§,•ý¶T$ôíRÙÐÿK…D±¶1?2[¶¡ò£?š ’>k*Qúµ©héû¦2¦{úštªtw²SëÓOË@_=­Ýù00ôøÓ1*vŠ‘ƒ´eŒ.¤èÁå¸ÛD¸2ú©°›û®°¥ØVd ®j~÷ÝLNšh‡Ï›ß›¡4õˆ(½ÂPVE {ëj;Tîv€ ' ‰¦¯í¾ì¢Gî”UQàŠp(AÒ`YLQöoE“€dì&a¿ÈŽƒIðÇ'@ä¤Dú¼gri‹rõ®r…Òrör§s7>û†'Â&O$ 'ß$R'ošGÚÂþêp2ÀÕpäpÅ1Šª‰tÚ9ó?gwïÑ\áeC/E(‡9qôd„Ò-ŠBoG(@N¨ý4ïÑ|&ù­*4Ý*¡4±áz eS«îYCàp4\8¡pjÓÍÊ4™®`iãî¢ö3‹G)ŸÚ=(Mº^„OÏT§Ðª÷*”å!0÷p‚׺~t…2ÒE–_”^´PTa¥£-{°)¬g\w床Ã.”ËBYô鎜ÎQüþ†ÀûVcMƒó­„DCx@!†v®eAEB4œ.hL‘І3Šq–XFÃÁ†ºœ w4\ÀÚz ‰ˆÂÚuê6i¸µ]Xi¸Õkè¥áVTßKx¦áVT«!œ†[QÆúæÊaRä‘ †;P£‹„rz\ÊJí:†É4cN¢t5ã$ãR w÷QbWíZzž”ζ DM¿*mÖ~ÚÌ£ŸÕjp«­><–ÅÁ WtÕ€\C†é(!;!œ¦MbÚkšw”K³4º¬ÞšŽ‹^SË›ä&¬¹lÖ±OË2µË^.c‹Kr¿´A x6dÚ^5(*vn·¨-\›àò1k€ ‡^‘‰Žéú-D‹ó*gE„kÝØ«4tPQIù_A£¶[Èj븅•E:G¿…ž‡‚›Šj{î¦!3È=‡ó3.‹¬ÿŒ•Q¨1÷fç%æþ4.?mÁž‰Ýg|¿k\±X`¢ÌË‚ùy”0õH§7LÍí+'Sxë¡Å8-–ÃlN9û» ó|¤_¶‚q„Òõ`¸ž²Ài8k” G¼j”ó´¦5gF¹¶}Y+¢\8 ½ÛN¡jŒ8ì+8º5mð¶›ÙI3ÃÙí¨¦|ÛÌ¥¹Ç‰®†¬àÔ÷ª¨„vCÈX×è} Íaß+@Ù¶aú$@̶õ‡ÎÙ6M÷O(‚*É@K5 ¢¢ðèŠ&ËØMb7~)à% ‡› ‘SJ Éi'ØäÒ$õÕ ÄÊõMPË=HàË}Jp̽LÍýNMžHN¾I¬NÞJy‹°?ù®Aðh¸ÁÇáb¯‡ò®JÈL¸3!Wáò„ì…[òinSpøU!äá{…"ÿ,”Eøp¡PÂÏ ¥CW0ôRx‹µ‰y”¡ßJ×ᙆž ï5Tix¸¡nà •L?™J;<éÐëám‡î<ìCxíaC±§™¡ë†(¢a¬"‚-¢ )yçÙÔ<Ð.6ä n­ØN¡œ ¢}Uf›õœIRïJ¦nÈ-ì³Ør¡¨% s/„aQ"B¥{¢!ð¨ŒK@9ëùZCÎb/ð¤!« †2 ŒR qæÅÏ©Hí­`%¥(ʉ‹*;B®lBTÝr‹/ÜÅ`ÿÅ€"rN"cÚ4ciÆêbPËMÜûØ8ö2ðsìw`ìà‰ÀáÁ7ÕÉZÏ…¹Æ *Q®ìYg%ããqÎ3´X}@(RI¡l…(w]`„²‰§p¾³IÝ€JÙªdHõ¢ „ñïåàBf*`¨JÙ‹šJgLÆT‰P67®nƹÇú™JÊð<¾lÓ<…Ñ4›¶ªüjSÚMŸE‰ å Ÿ˜¢Ȩ¼Ž¢Œe€»gjžº4-$ÕÔùÀ˜ÎYT¾PV„Õ,èòÕt ¬š3¤™—!PI© ‚+3S[vžÅ” T['?9Äìá@÷¦¢Üfd{[n§ÛÕšépÛ«œf«çöy »ņ°© ƒÛù$ì^±€°0ïˆ9\PŠUÙqH10¹^P‡®³ “)±ÄhG/¹Üí*G)&¾‚„28-Jòg÷àL)媀˥î—Àd¥‰ã¶ÒͲüŽ¿2‡e¼ Ëœd–y;Í¥1¤ZÏÁlY`¼e—rà\6ÓÁuÙpà…)¤Æq ŸÌE°Ÿ H‡À9”C²0½Šdsz) ôNR\èÁ¤HÑËI±£'”¢Io)Å—UÊ7½®ÔôÌROÐ{K]B/õ ½ÀÔIôom¦-U[i!uJSCÒoM-Jß65-ýßÔÆt‘ScÓN¥NW;?Ýñ4tÙÝzÐ¥OóB·?MCi¥>HKÆCˆ£¦Û7Ø"—*<°hÑŒqm ¯YÀC‹° È¸öÁ…°ÀÉÀ]Ÿ¶WÆ…t §XÕ_Ic`!š‹#"^0W;#x¥#¨‘擲hÐ@7ÒYÄh@12²£•; ôøm ; ”™›ƒhÈkzu†¯ŠÜµ« Jì]ãÖfÉj7 ÅdnŸZ¸:2ÊhPWó¶/””Û뤖]œ(_2ͳÕÅY=¢ ¶~KØÅÙÄ—xÉÙ.¬Q ß©…²GÝM¥p}â;EègŠuì5Æ’[5|:–@3Ý:ÿ­ë¼‡aÇÂk?½ðñÄ\|uÎÅ7‹8L|Àù„Aa”ä?‹LM(¾-Ô’—Ûâ$€î;§Îuïd Ʊûäb0ÖÝO*WÆÃe•{j“ e¹W…#”ƒ;ÃÀ»,òvKˆx.€¿3&ü4Èσ€±hxX0N†x 0•?p¹2Bïz.pv?»è‡ÄÉó>\}ðÄ#è<#içÃýE·£ð¨5Ef±Uü³Š-›¸uÜOu¶‹ÇE<ø¡°ëâq8´ñ^mëZËÝ0ÚßµxÛ‡6z-‚SÚñµXú…¶~­Áo9@1˜YÂ÷Yƒ[JégÅ:ò M@h7ø²Öæ(˜g]˽DÅ@ë¢cIйeR1 9Ö ¡ '§ç;¥!á]`ò¤Þó+x”ï—§ý”IÏ Ðfº;S (ü™v@‘© T"Ï¥/0Ãa§ŸþL„'JP§eê½L¸ n̤ מ™·A›¹T‘ýA= "Ôå™DB}Ÿ‰&´ ™ŒB»‘ù*{Ä–<¥Å­O&½Ð@EÈ ŒXDRæ,ö¶á‰´— a¤Me˜#í.C!i›.Iûí•4ñ º `\&c7‰%ßI¼á! „$Œ%la$)¡ ƒM‰~J„Ä U€¨ð°geb±è&ðZ|*0] 'p_ 9 !gè1&3'Ph,` ÕXã³Ü†À»±S‰c77ÇŽ¶® üÆ „NÞ û‰ì0Kú–Pö‡£xn y(>dÆíà|4ÍJȳõÑCqü>Z7áŒ#úÑ6C qŒ?v=")GýCÆ5{ÉböÈDÂÞ °t &à€uK<@qÕ‘œðÜ5çúÙ«ëpÓ*9#¼=ÖkÎZÇ+b×Qφ]½.mºêúâ•0MLábtÒ±KÇØ,¡$vO‚é]èØícÚõäˆÃÔtaʤ­lÄ,êµLÚ¢î«mL?fÒ–«ÐÌÙ¢–Íœ-jâÌÙ¢²Îœ-*ôÌÙ¢ÒÏœ-†ÌÙ¢ñÈœ-˜ÌÙr”)[4S™²ES–)[»¼F‹˜wÈh5óž-kÞE£õÍûj´Ðy§V<¯½ÑÐçÕ8Çy{Žp!î×Qä<¢Ž¼¦G`’Wù»äm?›¸H”W‰’òZ¡Â¨¼wHœ•BG,VÚ8^+8¦+2ØC!0ÌÑ;愈/sÒÄ ¹0Ä©±v„²¹¼D»¹DĹKD͹“DÖ¹Û¾“!ž'ÏÀ'_9ÆOÖ£ìéžBr0‰är:)tJRX踤@ѹI¡£”‚I)…—~T ¸»Z©襞 Ç–ª„^]½*mž_ª¤ç®S›ùܕ뼖mžh½ºmÞj½Þ½xÚúéi>èʇ¡·Ÿ6ˆ´S4HKƸB Þ—Ù†°ˆxàó~£€jÞwXV0\;ªõ2.Íe =¦–s+V½á–’ž·,îû»£àVEãh†ouà­Ó­¦l)E³º¼ üרgvm90šø0 ‚¦7'J¹èØŠÇØKb6~(`Ç’ÈãMtÈ9%‚ä¼eúÒ$åâ%Vå'žå&$äåF%,æf&tæ†'¼&S$'ã$L'sÕœ-ÞŽœ-^ ­'Ývɶž†ÛEÜzbnwu멺Ýçcw»ð[ÏåõNp=º·kÃõxßn×»}\Óì†rM%°[Ì5ÝÀn:ßRžf- Ï¿zšÙÙ‡¥” ‹¥–6vƒ»fZè%a÷Àk†Ý¯IvŸ¼&~\ž£“É!v/½&ØÝõšdb÷Ûk"Êòä©HVñ{ò%¡ÅïÒ—¤¿oϬ¿\ÒfüÒ~I­ñ‹ý™~ÃËÿ™¢Ã™Æã52Ó‡e2ˆ¥2cÈ«dRëdâkDjË"döK'd†“WWÈ$(Ö_ÈD)ÖhÈd*ÖqÈl+ÖzÈŒ,ÖƒÈì/Q›XY‰Ú•ž¨ŸÒâu4V¿¢ŒØk\”IyŒ2q¯•‘kãÕ4ÊòyŲÄV”£l‚•í(ûä•=Ê^zõ²ÝV ¤p„•)LãUF cy%’Â|^­„ÜiÕL ÷zÁ“Âá^¥HÕM)‚â¥UŠ0yù•"pV¡¥È¤q)rë…^Šl£L~/S„—“):ÄKÎ=ãeiŠ.ruk㉉¡Ó²MX+“St£—Ò)úÓËíë%yŠöª=EW{eŸ¢Ï½úOÑù^!¨˜¯"D»áU†ŠañJDÅøxµ¢b ¼¢Q1b^õ(Î #•t-/žTÒµ¼ÀR¦ky ¦’®åušJº–×r*éZ^賓kyM¨’®åe£J¾–U–*éZ^|ª¤kyª’®åE¬Jº–º*ùZ^ «äky½¬’¯å5µJ¾….óµ¢ óµØMækñS™¯Åád‡œ [œV&lqê™°å«“ùZ\ÀLØâ"GÂ÷!¶¸W™°ÅýÌ„-îy&l‘-2a‹¬“ [d¯LØ"f¹4¶¢‚\$lE•9&lEºHØŠZu‘°õì"a+jÞEÂVÔÅ‹„­( [Q^/¶¢_$lE™>&lE%¿ÈØŠ#ÂÈØŠŠ€‘±õÜ1"+ 2cëiõÁ¨P[QÅ02¶¬Ìa¤kEÄH׊R‰‘®ÅjŠ‘­™­5½ªŸ×ld²VTuŒd­¨üÉZ,É\­(¹ZQb’¹2Y…’ù4Q¨’)74¨‘•672wÂ.GvMw$ѸGŽPئDˆL£@‘Hƒ KF"§)Kä=ÓDjTÀžHŸ h)VŸ" +VŠQXiãH­ôãh.¿EÄ—ãqP˜#&nÌY[ÆÄ‰>smˆPsýÄÆ ææ& ç>9ZÎ$ ÎÝ&èNŽˆŠ¸Á4Q47ø* ëïEñÝàÏ(ÐK޾™‘È:¿™µÈZÀ‘ØÈrÁžøÈz‘ɒÙ;ɪę_ÉÊÅ™ƒÉêÆ™§é3•“5’3Ýói娵œi£OSK½fóÓôÓ’¢êµŸK«×‡ŽDW–Î\X–™Î|YV¢ÎœZV«Î¼[/h©¹¬y黬‹)¾,iÀ,¯™Â¬À¶‰¡‚´_Œ&¤Ðy=¤b½fR±•^W©ØS+½TL®Wg*fÙ+8ÓíUžŠy÷JP‰¼XT ^Pª «9U †—¥*pÄKWÈâå­ ¬ñ Xúx•¬¼’V"(ºÕ ²¢I1v“`ŸJ@Çá$èãrZ }æ‰/¹8‰A¹€ S¹Æ e¹ w¹W ‰¹Ÿ ›}ËY“+|“qŸ“¹žËÖʈ–Å]‹/à¡Ùâ/xø¶øá-~‡Gé˜x˜¸x.J.Þ‡›‹äéâ%yÔºxRÙ.Þ–G¿‹Gæòâµ=çÙi¤ýYï/=ÄiþWñ"áJ‹üoÔOŠÇjÅ©õ3†âõú9DñŒý¬¢xÏ~žQl?ó(N¸Ÿ‹GÝÏNŠ/ïç+Åß·#˜ðS† ,”\B ~ÐSÂvT"vZTb~ TÂ~èTB ~0UÂ$~xU")~ÀU‚-~V2~N–1?J+a?n+¡?’+á!;´+$?×+A&?û+(?,Á*?CL÷z^ãöï&³¥?¨,ßñ³Ì2;î,£õÑ2#?5-³ö“Õ\?{-kgdzeyý·lŸò–mò“ಕ~Z\¶ÛO” Kø©sá?™.Œå§×…ùü„›ÌéGà…{피ð·¤ðÃö"'~ _dÉ틼ùÁ~‘I?ü/rë E¶=‰ È¿å á©E‹xºBÑ4žÒP´‘§=Ô6–Q´Z¶¡æó‹¢= £hPOÕ(ZÖÓ9Š&öŒ¢­=+¤htK)JßRKŠ]°äÚ ÏM)†ÅóWŠñ±—bŸ< ¦Ø0Ï”IódšÏò„›b/=)'Mªçí«ë¹=Å0{þO1Þž#T ¼¥ à‰F'x2RÁ–¯Tà†§4DâiOµxjTA6ž=UÐgX„äYXEQæiE‚1v“xŸJLÇá$îãrZ‰}æ 1¹8‰B¹€‰T}Ërîr§s76sÇZ“)}“q¡“¹Å“ÿé“GÓ`Âa8 ‘“HŸ"²Ãí`bcx&L} ç…É‘áßDþd¸@‘bnR¤a†+©šánE:'=²Èø §-²Bñ‹ÌÑpþžÉ. T:‘Ïe©z&k8£Lv 5òaÃ¥œÙp{#­6\ãH½ ÷9ÒséaGoß‹áH=²€Ã‰g¢pøù‘KÌP@¤G´ R’#¢YËuˆÌæˆLТfô‚V7#´Ì¡õÎ@ -|SD¸…0!2D´!Úˆ¸I†~³dtˆ°&H„>d"<Ê@”â§ŒT_¥¸ƒ•6ŽÓJ'Žåʇ îåXˆs¼D9%"˘5±g. ñi.1l¬/anî¡pîárî$!uî¶£îd^¡ž‰KÁW¼‡¬W5‚=y›ƒ ÷=‚ÇãNHˆAÜ¡¤ÄÕ¿Ä»'”´¸žÂ7XB`ã–K5/„ÜÇ]™Ð qŸ&ÔÇ3wnâ^ÕÐsAw¿ßó40_‚÷~O¨øý.Qžøu£P®q%)pÜZ %7›B‘Çí§PöqC*ìAÜ¢ “­ÂªÄe,ž¸¯¶É£i½GH‘óšb=ɦXJOÄ)ÖÔ“uŠÅõ„žb•=é§XnO *ÖÝ“‡x~Q–‚TP„g)¤á™LŒx¶S,žU@'Màã‰UyòUâ'w©aE‹@aì%‘¿”hŽ£IÄÇ'*ä¬9ræ‰.}qrý£r‰Çrêr«s;2sËV“-y“sœ“»nÁ,$Þu<+ -¿ÍÂñ^¾„ =5¯+âuRÏ ÁÝ<Ì®§"«ÆßSØDMÆ@é^÷xìÀ¹OWNÜ̦ üè¬apv£¨,*Ò×o‰¦ØÕmœ£›Á8tÀ¶Ì1¬~P4„¯Å B¹Œéçƒý†ú¶ß—uÛµª¨P³ž5xumÆiTùXQØ›Ô<ý¯.‹¤fâ¥AÑÕzHFê`Ô6ÀI6qö Ònß‚5±‰s<@mÖ1ïVæ¡Ì vê:ËÌwÔÆ¬K³[å…²|»•^(KŒ+ÍömnÃnµÊVÁøGÝNXìó¶å»ÕZ(l±‹ë²ï•uv+&ì5v+€,8p!@gE6m6Bçä{.³ å4>¡@ŒÖ,@™ÂT¶p¡’ßµ0¡“ŸË&M©¸TÉ9ÇQ¤{Ò¬½h€ø4fÑ«UM2ÃúY”ÍTÛWQHp–¦¶Y:àÐkÙ†ºOûgQpi¦ÀSë(:vs^”ð,»VQÔ:Ïí,Ê\(Í”ú^Wᥰ B±ƒ°wD”‘h[dçVšù5U£†uŠ[Z0a‡ÃÙžB×6½Ðf^¯Ev^únb¸.c½Ó#hBÑ$ñgü`[(fmæuúJì¨ï†˜X+Å R §h¥;¡ו¢†N¾y™Ø-u#ú±9<»ÕðÐdg|ÔðX xl{ †”Éa“Ú/­ ¬)¶8 `RÂ0.O‡â„£{¥5Pä'DºÊÛÁZ)þïÇáœ'gÌà_ŽÛ@€¡Öm¤kÅ_ÙlÊbÜÀ#miŸuUÎmQ5úÊ!“Éøƒ«{î“ö@rÓuÛ%$7ù¤}'‘³FÝmdùl{å¤ÎÊ4È9ê«2Ö9½.E0ßiʓ܉dØ}VÖ²Ë+8Å\ÛMNÖ³ŠÉ¹¼ÄMˆÒµyɺ· >v¨= Û¼h]ˆíçø¨¢ÊÑkTñ¿`ƒŠ~¸öî6ƒ*õ§çMÍ\»GB¡jõ8omq•†ã_[pª½ÚÆT#úqeéêój‹á6ª¾öé¶‘ª³ØÏªÎ/Ù >«¾¿ °z±X@j'³×¶[zLØl/ Û,·«š§Ѩ^MêõîUêPV×Yß-áy^nh-‘½fµ¨ÈÏ{µº`·1ªeFfµ­ ­72«V-<2«Ï 8Ã\³@  ô£€ ¤Ä^m€`œLD‚šÒÇ µ ?ûº!Pšõëèç<gå 9ÜꊊÅÌ*‘–Ë¡Xiàp­tâ.?DØ—ƒ!4Ì;zÌ99¼ÌiÆÊ¤æÚÈæúìæç>4ç^Xç~|O@¾ ¼@?ø/œ²h¸ ÁÅáR§‡ÛÒžIHL8/!UáÝ„à…Â^RpxR!äám…",”¶Ð'á×åI }¿ÐKtkó C½EjÀðCCK†«šÔ|Y*ÚðuC‡?úš.s¨ôðªCí‡ç¦!¼ó0tàÄ‹V(Âa¦"T¦ŒÑ¹¾¬`RÚÂŽ÷'z1—}YÝ¥°¨}Yi¦4ºBQsvY fÒv å´Ѿ÷eE (åZ'e©á,!L¿ÿo(ÉI4‚¸E)8ê l#”¦âøG(HÁJˆ¤„UaTH\à¬lãP,z!RËÍå`ˆørÀëæŒ3ƬWÆÊöŒÕ |+6v!pnìT`anfÀåØï€ÔÁ»É5̃±½ÿáwbTå# Åʈ’Íýæ\°+ι ®‡?KÉçÍß8›ýQú$‡¥!¿å8ßk8¡·¦nDPÕ²µ•À¡Ò~‹\ ´ÉQƒ(Rbá!@ºeД J’h(#)(?iá![úá‘‹ȈükfGmPÊb%¬ƒª%ó¬‘ѹƠBÁ û8#H(Ä¡®tD™D͉H‹ÏU£UÈŽ¶økdû®ýÖfl¦²{›¤| )š6uŽ£¶`ó8̱Ìyáx¶õ2õqš±ÎÕ2õsÔD:úy‹\Ú?ëN ;;(»¥rÑêŽQ9{Ýt08”kòÄ_UUðò,fe/ð¢EYÉhlQVr)Æ¥‹CFÆÕ —¯#maÝäTMQd£ ‘P ’ö9(X ÙP(‘\°Ý [«Â=Ïááj*h½…b»ŠúþUÙÌK³»‹BR+Ñïm.]ªTlÑ&túýHý8nË‘€v Ö¢e'€ïªš“h7m=í©¢Ñ±<ª;Bë#÷BMNX†iOMëÜ ¼ÓÂL;ŒK#4g·? ;YÒ½ [Ž7ΧÜUq@•A-åÌj:…rX0*‚ZÊ™­µf7““A-eÖÓÂÀ4Æ1-P¶½Æ´f3‘1-pøuÕ˜–ò|Å™ç¬1-äAxL ?û¨1­ÙTdHkÚùa i»Q- ]Fµ¢I¶¢›lñK׊ÁD\+Fq-Î(ãZœuƵ¸2×âêe\‹+œq-îBƵ|£2¬Å½Ì°÷;ÃZä‰k‘m2¬EÖʰÙÏÝkòg†µÈÃÖ"›gd‹¢‘-ŠKF¶(RÙ¢Øed‹¢™‘-ŠoF¶(âÙ¢ˆÈE†¶¨L2´E…“¡-*¥ mE›[Q¹eh‹ °´q%™¡-*Ò mQÙfh‹ 9C[TÚÚ¢bÏЖ+þŒlÑ4dh‹Ö#C[´0Ú¢ÊÐ U†¶hÌ"´EÑËЖ›ÄŒlÑjfd‹–5#[n|3ÐAûœÁÚð ˜ÐÎgP…X /Ä œ!¦ˆø QG†xˆL2 Dô’""œ &eÀ‰H)ƒRDS¸"ârÑ#$Ë„mÙ ¡]~ˆð/Cˆ˜&ŒÌIiæÄ‰FcmXsùjs‰ |sŽs« s;c玆'Sª'ã8šOÞ"àOö£SJ·!™˜®E‰áºûQâ¼î¡”X°;1%^ì^N )»'TÂÎî-•д{T%|í^W q»gVÂàP¹{x%œî^` ¹? Ë«3ùLä>£ûî“–w[Ë)»¶yŽàÞo9jp¹G¸]Ž,ÜÓ.Çî—£÷ØËñˆ{õåÅÿrÌâÁrã„rVãAæ¬aá«<íY]ÓÙ‘+YŒ+¸M-eØßŽÚ‹gµÑ]e5Œ¸ü´Ï„G ÁcU,€|Ävà  \·³²¾] ÜÑmí 6éÒú\¿tãÌ‚qºnaA ®ŸH RÛšhŠr—ˆ+Ú”E7Ûø¥€v1˜@1à}¯3JüÈY'ÆäÊ$åê%Vå 'žå.$æÕmJPÌ}LÜ̽NlíÜð› “LU£[ÈOýcœ%ªªVÅó —hV}¦A¦öןжaóµVQýôÅV;Ê‚áæ6öh×­ÑËš÷VÿËib›ÿø/ïP‚ELìûÿñn{ÿû/ÿû·ôðé]Û¬¾Šg‡~y×pÚíI}Þ$õR4 †b“ð¥ãn‘‚{ö6/vÍ6µoÔûh½ö=ý(7ûö6Ù÷³czúwOÆô)‹úÓ_"c6ß[xZ ‘IµåU÷ÇUô?åòìšoÐäSO®¦ó2B¹Oü¸œÙ³]?õÓ®ŸŽú™®ãÞèšÏAG×ϼãË£Ëó«Öæ6ê'ký¤ë§ký´ëg×úÑÃQÏ­õÓŠ%O×úI!¦OO²¬¿ä¥É’ûøšî§'×Jžý»'7ä>=>û’‡®åãQ&å§'ã¹?{°~ö_þ»GîØ³÷$ÖôéÝ®Åqúû†kX¨2ënF£Ø—ÚÈÙ ‘/J#*JÒžWµßÐJºzÿûëßýó»Ý±ÿÏç/ïÿýïE]áb&ñÂúûßÿAÚk›÷»Õ õô£ýýûðþû_~ù§Ïßÿí§ßÿøýß¾ÿøûÿöî?þþÝ~÷ïq3v‰ýÿ]b•þkü×ïÚûÿön"Œ /g.-]ñ¥R.KVŠ¾Ú²³JÑgR–¡‚‰xkßó}%\x´.´ô6“>³yM~ž¨Æ»FQA_q±ï Ü—>Ù2-;Ò@ ;vêjÄû,SCÑ«Y­Ùiºnâúôñšþ ÕÔ"9Íês4dwsÑ&‚aZ~¶w»04BÓʈãÙ¶Ó¾¾Ÿ&å=ý:^µYX1¡ìœ{S_&êhL\jTã4í `jX^‹ó_¦§^OÓúf»ÿÍnwv.Ô&¶áíväš'‚ùZÿ^™ôZnQ;·íê_ô‹Kƒª{úæw³—¹”¢¯°ŠFRv?~)”Û°køsÀÓòÍóoÁ‹ºb8ú’ÎÚ(2»•3ÃsàÎ^»Jd]I]}wè8b¹v+íyqï¬RŒÜë{Ý«Ñ7µ(Òeuÿ|+}»á49Cv{ze÷ÛL‘'íU`!9ë°ªˆÛNEõ) q¬#xÖ8îÎmÒÌC§ÊnqÿOï&’5ðŠß8õØáË¢WÄ&®kà]€Á†R Vƒa¥ ’Ð`fjÎ ú™g´Ñ¬¡læB ÅÞ@øÈÖGs_ÐO÷kZJ¶@ ŸÃÛ¨ê›(¤7Ë&rhô‰»uYÁ‚‰|}ËóòW”'2o6ù­/R¦>Çv¹ESD#,{¬nnŒHʰ÷†“ id•À'óCûre Š>ÏÖbõòú„·¶œÓ¥Ï³ùµv¥ îݬX ¼ ´¾×åkâÑî]ßa=7sËtcP3Á˜óªÛ‰X‡é0ÞL@nãe·AaùeÞ¾P{¢¶ûU¤©™Aúhíp±BÏû„¢7Õôi5ÓekówÉ—]‚æH Á67ô¡µÁlþ¶5¢åNé‡|EM(Í Jñx›ÍÌât‡ZÇ¥+:ööWâJê›Þ}Y¼lâÖ‘¾ûÖ›É (0­‡Ëæµü-îÝpzº±íAéþ†úðN†¡“©URÂüá:ÜÚ¢}úáôËuñ)­@ß9-¥xñ0ž›6ÎÂ$—Zd+S—FŸ™"Ùëò¡¨–owöªef̸1Ûî÷Þtç®aÓVÙm­†åü¸ëÝÅ,%7‘¹Öµ$ÝœuZY¸“«Œt7”ŽFVË”q¨VÌrµ°[…\$ô´“-‡ðoW…÷´DÔlÉ>=‚–;.âüRvC å?~øOþüý/+¿,ŽÃáíc›ž†ÿ°}ünï×ó>ìÿëïÿÛ Ë³%܆ݣ%øe Ãb î5-‡`.ÜýÏÔ‡$­´ò¿+­DѪð¿øAúÙÕã?»uUZùß•Vÿ9c*ÿ ÌÀwØì¹äâÕYEùîhÆ* …!ú®yO›yNùÅ×&9÷¸$¡¼’”ŸßýÃïÞÿ鹎gõ5ëÆ“pì‹!X‹K=CñYÚœ^žÊûïos=î—ÚÝé¹O&ðt’?k4ìé„~»þ_ŸNÄ´fpÙ`iñ<Êþ—œgýNOÏoÚ½P+l“û-Ãiî­Ö>CùUôh¼_jw\ÀÇ3x:ɯîÏoÕý§W¼TÍG¹îbÍhˆ5)°ÿÌÂ\NËVü»›X¿Â-}ZëäÖMnÑš*¢©s¦Z åø6aö«æEšI Þ`ý•g(¿†[÷KíîdUG3x:ɯqËoÖý7lö( .·GWd;Ëö´iÖ<»npoæ7m‡°swHˆ­`¬øʯٜǣýR»óÕ{2þ§SüÚæüfÝËæì¨®1ëæìçpÀÍ®m­~ 7m”Y^ß]}€j ƒ–gÏP~Õþ<ð—ÚðÉžNó«ô›õÿ-;tM4•B¨cŒºCv¬; `Ùõmưá1«mÝÈ)ÇáÇòòMe=CùU;ôhÀ_jw\Á'Sx:ͯîÐoÖÿ'ïô…Àð¹ŽgÑ{CÙ$DP·k`ø‡ïÿå§ýþ„ëâöüþ?½ûðÓO¿|ùã/?ü釿~üŸÞ©³?ìþòן~ù׿þíoßÿ ÿ°½·¿‘®~|÷á_ÿôçýo¤7 )]þ7þážé¾íñ•_þüÙþAF¨2¬³ü'él{ßvŒ=ãßòCH‡8Ï¡ú_Ùèblù%ûõ@"º¾ŸKÝ*Æ|žˆØ¿ÞêS6Bm™cÿÚiìë­¾a¿æ¡áÅ6„vîlÛˆxÎZÄÇ:¾6ÒWÉœQñåJ#:U¥§×[åò½2¨×[á(zh>ÁË]}C«2*DPÅ÷™?^hUºòÚׯLðë­~þØ4Iì±·gØÃÇдæõxeÒ/´úûGÚ4Zt¼:ÔŽúa~†öõ¡¾ÐªÈoß´^Ö+ªàë­²+š°—·ú…VŸ(…¯ôôj£2¦¯;JuL/¹S”çB)Eê_Žðx¢ËË£ú†Vèê2/ëÅQ}C+éJ³Eçk£z½Uꢗ7ðZýzYjŸÐ4Ø™,õgd‰VñueþB+äÕX)ÜWðõVÒ•¦œ¿·CW¯·’®p, ìúrW¯·J±|Y˜^m$cj»Æ~_Y©×[ýüÚ*óÒ›§ ìûSþ&}y¨¯·ú Xùµ¡z>Ð+C}½Õ§wZ?^´0ßÐ*»zÙ®~C«ÒÕ‹jåZEÐ+=½Úè×ojÇ-¯›všOw”xqC_o„éR¬W”À7´ú9O/êZ}B!ñºü†V™cõò¿¡Õ¯ßÑ¡UWŽ›˜®§{Ê®W&ýz«²«/Ú®ohUDëeV{½Õß!Wèí¾~Ï¡ßÑ»&8¼²€¯·ú;¶ºë“¯Œôõ`9Þ65œ¤o؃å×±Y¸1B¿×©· ¾)Z~!£¡Ëð«âà†R{cœúÉØžŽÿ«qðߪû’?ØQU±^¶_¯·ú^±_¯·*]½lu^o•³¯Èëë­>¡Fô…DÜWlÃë­Ê¨^žàë­2ýú• ¾Þª,ûË]½ÞêïÐm;jc÷»ÆØþ C“JëAG¹«*Œ]õg•TykßxVŽâsçíx”_¥2 æÖ…úÉðžNá«:ã7ëÿ¢ÿû54K2_úÑ„Ç\ýÏ«\UCÉ_=9×ýêùÌeB”óR~Íê?Ì­;_§Ã{:…¯­þo×QÙtf™¹ÿ¥PN-•ÞpŠŸs· ^>±ßŸßµáo/±…Ç*¢ƒømŸøÑ -Q¦p•OtMãä7øûó;D6°1Ffñ¹úéomj?W¾Ì-(>4ÈáV&™brš×J FDñ;&ç”›÷c÷o”Éù(¢…2zx4Ï5ñö&wÛ:¿MRfwtM¯ŽÙ»¾*÷Ëìw™]´ðÙ°‡ømßÈÙé+¾¸€= Mñ(ß°ß9»h£ôÍã¾uonr?—°o^ JŠ¥ˆ7ÜoYˆ3.æùoù2n˜Ï½´°xsöÀßöÏï’¢/ÜFþ0[Þý³ßøD´à ½ƒû,>×Xõ[›ÚÏåâ_™[P|dúÒù•#ç=ÌœÛql^rÕ[X<9zˆß1· ØÐØGW=cn[Ä ­ƒG³ø\Êomj?×£Õ¼ø»ÖpM ¯†ø#:q/Ø~~~·¯kø³OJá9³ÿ}ü´|ŽshÍ8ßÇŸ#Œ4;ïßʼ8€hÀZ§ðùvü–æU7¬0cPœ•¼ß`5¿‚¼È‘‘âçßÇOòI”â¯Éf¼|ÈïGŽÏøðÑnÛõ†fu³e~…µ(|”¢9{*ü1ô9À¼Ôn¿‹Â®Î£þ¶o…"sHäb^Í.¾á¿‹Æ>Êèá>»5{s“«ö¬( ¸q} $jPƒPgg SéÑCü¦„'Åu{ Žà7R‹pl£ôÍãfÑÞÞäªÔ•ÙÅÇæ,cò1;g«lá<¢þŽÙÅÇÆ8v~#gÇQD Ž’=Üçq“º·7¹›uK×ÔÃÔ,0B•šÜ)Ôóþ÷ñ“ÂN‚kƒøsj ï?Õ  |€T'¦p·ooi^?kXÜn*xŒ¼º ÕÐJJ¡Æ~Zi)Vñߟå/v½Å-<Ü=ð·}âó»$ +Çpésæìççw1þ;‡Ì?¿Má³ÅñßÞ´T¾–^OõIÙ/OÃ…ÂíˆñFq•˜QÃKæ(E-¦×oðø›_L‚ ):°gùŸQ ÁÿÝë[Fn"õF¦¢RtìZ9Ù2Ë\ÓŠ\83±êøFÌ+FÁ:Dþy~ªÁ73!•..Y{TÚúR(ï$ -ȱm—Õ,em.û-ÌqÚ˾Ñ¥{Ëâ·}Cþ"(§…¹£‡eaîø†ýÆ78 ¶à(ÙÃ}&]ovrºu(±_uvAñ±m—VG±GŶ˜ê4Ì^Z´f•ØÇì‚âc‹|ìñ˜]ŒÂ[Ä(½‡Gó°­{³“«¤¨ý ¸ÒvKJ=êß…Úw[›-ÌgüjŸ*mö@¥Îo¤Úç(Ø‚£dæq"oorºuch%ó˜Aq¶^CˆlÕƒ1Q{:9••H£ƒø|ç*vàL_¶Œ1°Çè<š…mÜšEñ€Ó­TfP-EÛP{ W<û8혉Å5í·È´ u´ðZô¿íŸ£úé{³S"ïaØë‹ñ ÿoø(¢…2z¸ÏÃ#Œour·­ ¶LŠqUôë\—EOÉ–16¶àØÙCü&Ó$ÅØ*{0¶Ëo1slÁQ²‡û<î[÷æ&W! k´¦Ç¥oš¹ùǩ嫢.¨ÿN#ž-ÌDGþÓ¿6|œýÐçBØÁ9õBx–¤µßiãEŒÚ{x4‹@ykS«6®Ìšëà9‹çÜLGÛö¿çÏœZP|`þ÷wT?Ž™qÑ‚cöÍáfáÞÖĪWfFŠÌ}Œ8ËôæÌÜO‰îǰþÌ©ÅGÆ8ò¨Ðsã ¢GÍyqomj74™µ°ƒbv7àŽÛå,'NËMÄÄTì ~Ó¨ÅÍ.;p«_»cˆ>Fvðhw4ùƦv‹šäÜ‚âC£KÏ¡GÑó˜ÃlÁ°{ˆß19R86öÀ±ó9;Ž"Zø(£‡û<îQ“77¹[Ô$g]zŽ=JáÇìˆ6ˆø;fG ÇÆ8v~#gÇQ°GÉÍã5ys“«Ž@‚ ˜'H¥šŒ…0ºÑ‚YÞ†’NŠ©ñèÀÕ|¾@Cƒˆ5{¸Ïâæ¼µ©U—ÉïI±Ôu*a¦¶çã L~w= \ÍGñ›yé»[½“·:9ݺ£-˜ZÅTù8PÏ&mxáæ›ßŸýý£ ˜–|{³RâiàyæÔ AqùCß[§zˆwåBô¥×F‹~êÓ3ÑAüÿèÁÕC|#Á£wðh&cotjºm|¤7õGP\úñ@ðÌ›¯ñj`êÖ&ìd¶°"²þýv@í†þà ¢éÜgaÛöF§vSqm!)ví „Øo%ÄÛ’¼¶j€ \Iðïù“— Hð[ñç~+ýǵ…@4ð²ƒGS¸+Ç·4¯›œÅÄ’b >ðqç뜜YðR´pV‹ø›_Š-zð±Ç7bv1Šhᣌîó¸KÚ››Ü =æì‚âc#ºáØãÔ˜R´pÅâwÌŽŽ=pìüFÎŽ£` Ž’=<šÇ?¾¹É}S ÿ¯U?Å[8˜Å]†æpµcᱸæ/l}ÇÊ÷ßÕòüZî÷;ÖØšþ?z­ÍZ-êù'ûЖù©ëÃÐO]•oçûýDŠw{ÜhÿøÝ5ðŸÞü÷¿ûÇGük·Ñr(O†TÆqŸ >ÁŽ×GqÀñp"Æ} ~Ùšu§ðqéÎvÞWå(«òþ»òA~ãò)^x–¾.Éùñ»îË”ô÷·_gC£Žbµh…*{g_﹂ڪ\6«Ó?èãáciH(t›‰8™s^Ç}’VŽ‘ÿ¤ëÃúNÏ,׎ lKç#䢸¬}„ã6Ùï¾2ÛÚ­vÖ§¸ÇÇ£môù^ó>áÛFÜ&O!+«uövŸÝü¸x_óŽ‘ÿÂS¶àáváIâýñ®Ô¡të/Š6•¡®OZÔg+Ž|­BÅ Â ï8ZËy¬<Ÿ¿Ëaè ÆkHGßé(ÌÇÿtˆ€ÖµÐо÷öDœ9ßýãá½_›H:_øçëð™ï‚ìG» }hu11ïKæ­‚‹‘ Tàw¥E'´_/Ž½Ì¨ërãdÎ9ì¹i%ÙØº««â/âÈA˜Úž®W0Hý—«)Dm¹¯iïýÚÞËMÜšÛó‰;Þ¯’ÿ?nºûYsÿðO¿Û:¢‚ç‡?~ÜFï²þ;Èóœ×Õ>ü­·cÊæü$ëÔñ<%ö.—ÿü_¡—Füð©ôð}6ø"ÿ¹ ­ wý¥4ù¥ŒC¿ÒéåÇÒ¤õ_ðßç)náõáoøï!–oëu¬µù¥ŸZ}¿ýéOúßÇvn>‹œý¼ ¸6ñW»>ülËr^§ú§ò¡½Å}|ø¼1kœÊÍm ™ÉþáHïb7úz–Qtû~þŠL`ÿ€Ð„ü¯ºýü꽿&kÅ>ðºè«q{ÓGv÷Êá4B2ó.%Ä:è_“ª?éÀwåW|ðÇK"%ªfƒd]a©†lö'b¤ã'çZÏ-æò5­ðùçz¼îñ™¯é«ÖõÆz¢÷·Ù?üþ£–I…€€¯Ú!L1:Ùü/>ŽëëëøX;áÕâë|¬BuK}o‹#2â6@EÈ÷Gw®&”ìºTؼWû}ÈÂO,pîÒ?•N|€S†è|>¯qªàp†*8åy1Ñ¢œþ ‹³!ÒðuYøÉš´yü[̆Š@‘ŒWÌFU¦ú§ÌÆ„-Ëú­ëôïäOÞ”»n2SxßµÈ)Vñ[$Œc¹žÓ)×þÈnþÌÖ«¢€Ú÷Ÿo#yδ×Ö:á¨~7T7k£R(ªøÓ¤ã³mÜ×Þº8îĺªúéþ ÀRzSé™—üZ”žßP\…•ÅB´ÿd1sÛ¼IŠMLþt»ÛßÒä‹­ûì£JÞÍbõ/Eð*ë”A™,ù|ÍÍ½ÚÆª¶‡™‡¶Ä—×£ÍV%*Òy[Šûf·%ʪ…¸ «7[R®°à•×vNŸ¾²u»m âS}>aä»Î—ÉÉâþv6I˜z<´ØŠ";1¾¯̯¡¬j{ÌÿÅú:ίJÓ3°ZT¾]ÿ²®˜ÈKßš e}M˜ùhØ« ΫÐïØBªþ`©¯C—=þóü§è5áØ/¨öŸÎÿüœm ö³ùü?ˆÿ| N”õ÷cAðŒüúJeë òíçþ¤í±å˜Úæõëþþ?Ï«›gW]¼±Öýó|²îFý’ÿùdÝ•ú9ÿóOÙà‡¤þ5¨Ï¯;\ùÐÿ, xˆì^ü‡œíó¼4ŽÖÈÿôÛp“ýçßò?¿Ï~xeV‡˜ñ±r@ß"ðØçq\ÿF‰§öp ÖM‹…Áû¥ØÆícóØÿ.{­ªÿ–h£ºãÅàÿþH«¦5ûÑ&~ˆÿSÉ„òâþXÈ%P0¡üì$ðÿ ¨Ú­Ù¹#×±óÿ¯B:E¾®`çGÆ¥ã oì/R}ËgÏ¢„ã M†@¤?ED¡â¶/ƒ}ëá"‹5´]ÛØ¯GTèèßʮǴݣŸ³­g0›~Þ›œëºù£_w<±ðyžW ¶vO<)îØÒ ;¸\˜kïÎåã¹(š{¼ðÿN:üDendstream endobj 831 0 obj <> stream xœÝ}K³Grž×7¼ô¸»,Ý3]ïj…½°dY²cBŽ2B j rF€’óÒ¯w~™YUY}ºû<8Ž@`Óy««2³ò]þýãrq þéÿ/ß<üüW>ÕÇo~xøýƒs.?æ%/—ürô¥ÐÏÕ=~ÿêñ_ß>ø‹s±¸Ç?=p¿ú§‡Pj½¬ëcNK¹¬õñÍä5AŠ¿äØ!¡¤õ¨E\ã¥xó\ê%”Ç—â–Ká.è•@ص.CuDJS©ƒšò%ç j —ÅõjÍ_FíYD 8½6źõبjCêóˇß<|öàÿý!.µ\µ\Kâꂬ`, åR3õNÈâW¬—²€Â-ð a“@¨G…8îǹpIa†ÔKå±Ò¥V†øxñij㉽~‚„H³=ê%‡ Ÿ.n™Äã²Lt¹D Mv†y\™”.žIX/5„ºCbRniö#º]Ý%I'Ù á+É —Ã…Å—¹ÈÐ9]÷“/KH¾T¹Ö†p®<–[ÈeÈzY= cRÜeI€ÔÆ’>Œîœo’0¤rqBW!1!:ï/IF/é’ð–çIc1mˆÙ¹CV2ÞfHaœ]\ÉJðÉ7È ‰âUûY….`š$a,üÅ5HÎly«.—£¯LxâOìÒ‚¬ g‚@t= šó z_ qB—&Ä>7ˆD•'yÈ¡A Æ&ªJˆç™ðÄÉ5L¢aémQîiÖ“k Õ_ˆ·q‚8W…@IaìµMÀLæJ›c‚`Öá¬²Û ¤ú©4H]"œ«BH‰Ò@òP× °DáR$6nº;AÖ¦5©°>DDÑ·ÛRÌKm€HG¿tl2sgM4‘IÜÖÔ •ÐÑC4RX$#‰[P\*[‹HD*?É0Ñs&Fó3é)É!Jã/ð ´Bp#=-YÌ©J éiDðP¡cü1 öC­0½™È!Em!@du5~a¡#H„Õ„Œ:ŒN÷H!ëå„™!UÞ¢¿=).Y~‚T˜†dXМ¼Žûà.M|R­‡€ÃÜ%ÒñÊ4øÈ6"§àU}dAÜÞJl#²¶·R•6dbõ­ÁõD/Á†œsB“äTé=™ (k¢™ŠÒ1I ©dNd.½ð‹¦lOd ÅLzbrA?dæDY¡(™!$Ö ¦xÐ@YâÅ&˜~Æ/± ‰æJ¤/œ´ÕVhf8“#óŒ`H2}dþaC!TW@2Çðºd“TÁaEã-QE¢©'H“­@‰É$å½8y‰ä%{@H¼ˆ‹°œÔGÍM\„å$èê YÒ¦*‡IöÙpÐü^‚ôCSÓKÌ$Ö°Ý'tÔb‚—•!Ò ’nã â·—‘I׸Aib‰-è’ºÃcâ8$çÚÄúǬƒ_—HD ñ¹=²åÊ™fDßX¥R½•­J„kÃ4EEè)¬j¹>ÉA‰½š4é†,’8ù¡3€x«V '"áz€ Vêèâҡ€ víZÞ A <#OÆgíIˆ#šl|êÈ ÖbcXäÂLRsݲ˜8x!¶0£z¨ŒLc¿N·"ȹÄm£,Ä…]õÝ—"7Âû…¼lˆ&X °09ÂBByÄB ¹Æ’¹bò‘…&%›³,$‹«ºÓOžô@mňö²B݉—Êk"h#˜lA%A› “øÑk¤“‘HxkQ3ª,hC ää( ʨ%ªråœ$ª2ª”¨G¢8•K(^I@’aU#¿„–^ Í™gÈ"1`qJ‘Y¦— Ž÷l!ñ\]úwb¢'Øè(£ =p–«@‚tÚ­v!«¿2$©„b.— ¯Œ+0¢0^kU-ˆÂ`:)ä© IRÄ_ƒŠy!ÚØä‘#X(DC†h±õS¥_SÃ9®R|G)º6/E /8ST ±L ’Ïi“z á9 ÐU^Úp ‚â6–HŠ<'s.UUù óÂk„h¬S$û~‚„ÚÖ† Ç[thòJœP††‡‰,ßò¥Nºãºe *`!¯q)j,,HùÜR4|䲈;’¸ y‚¤Ãµ™ð¬@XoÓ&‹,˜Q"ãPÕ?%õT*†‚€%]‘’|³ÎhÙ?‰%+žS öOâ ñ ªs\ÈjoÌŠcîšEµâÚâ\[x+k»6‡ìTVâZlÃÉèj×ø2j Óª4¸f»V¨:nšˆa†D]lCQâËIó@‡E.œŒ)5ÓÅÌFUFHT-å”ìèòfãNÖúÁðçäYÙ"ò’ªZD‰AÀ÷n"[è ñbŽ^£1¬HŠ‚¨í•’—a£@dEhˆÙT6oŽ˜-þ6Lv‹št)îAh›Èå‘MQ¢Ÿœx8¯ÕƒLÜë„yQýè\"Ľ®ŠÁFJÊ«y]_S "êà™¸.Š˜Šêý¢/ˆ‚ä T&2«X‰R–*84eZ’.NðR`lþ×g‰oÕù“ Q¬¢è"§ hƒR™¤nï—¬6ñ4o˜íäE’¼o5¸ä8u1Î ÑûP`„ñNC‰9} -ìYeÂ}jQh$/“³ŠºŠê‘–kéXªµuܪqðO¤GøVqN(hTȦ˜„ƒyûzD—æQËìjcFâûoöìZ×úh ýt~#>ˆ:WZ ¾å‘rù2”Þ³YÂbŒ`G¦°Jææ´Z%€H^Mm€ž .BéP Ÿå2…<N €µµ æq&c …P1 #– ü³Í>C.ò 8 É1PŒÕê)2Ý©¡…Z²9‘}ÖÕìXoÕJ¤&Ë‹Wg4‹°‹½ê‰ r)­¦(5Olѵ'­yŽ8³Õ<£Ë½ )5OL…ïUP(+X}Ilb\Qfu8Øm k/¯J]tÄÓ½ ê˜ë!´Ö2EiÅ]E'Gµ¡eS¸U²zÑI/¹×‘•=H2ÿWF,¦7#4bÍj³P§BL+O,¦•°ãU™;®©-$j)<Ò„+ Z.¦È.%õQ(je÷4 úZšGº&tkõ~äx­Â?*Pm ‘฾ºXPT_d-!)IºØÀv©4K Ñå<]´0]Ø@5̣ݦ‰.ˆš3”.³(.º 3pm+5¤¿¤ÍžÓ0)°¿€.};z´ÐËò Ð}Pç2亽eÆê›–úX Ð;úl°¬7jÓÈ#à ë0Ãùâŵwú³T);iлîý\CzÏý-ËÆ%JÀÒÇjƒuR’À4’Mx߃{ò[ÿ{ùæñï?øù¯ ©ſޑûüëÙòç!Å õ¡—ÇÏß<<ûîÕ÷¿ýñÅ—Ï?ÿ÷2l+eŸÿâáÙË/_ÿîí—ß?ÿÙóï_¼ý-èçß¿z%?—G,L²ÊŸżÑNþñó‡_ÒpøGè9˜'Þ2Ø”#¢¬$üü?©ß÷¯¾þ¯÷´úìÒ“Ê»l#ú㦫ۭ¨+,Àcu»uU —>Î{ºÙˆäüå§îhE8aÁŠ#§SNÝn…®VÙÒp£«›­>“ ÇLæú†(·2]‰ŠLmèÿMO‡ŒL™6 ïÑÑÍF†O§ÝlD­Y*§ÝlDò´Ä,{N:ºÝÈæ³o72byΣ[̬¡ˆGùi;ne,mt-J·[ KpÞÓÍF†OçäÝne„àT}ïhu‡Ç‰¨nPpÉ>ax”Ø×É?Sgð9.\{ Êò’¤„§¨ÞneÌV6êz4·[Q³ŽEí¸•µs¬n·2Öæ«Û­†Ôž#u³‘‘Ú8ÝlER‹\ÙÇçf#tT¥Ävjo62;çÛ­ Nçr~»u…e›xË9ßÑÊç©G½ÙèýÍŠP oDB™Õ‹™XvJÅS4zƒ†Ÿv0ð”zDñf§vTËR‰7;uˆçÿi˜(Uù…ÿçM£\¢•ç—ØàYxÿBk±èúOë¡?Ë/$óöÒÑCÅÊÔ‚_> ôï E}}C„Ì×§IÙ4iØ“%Ía³â L7ãõaõÙPÖZ4¼µƒþ(#ÂpºµºAŸæKfy6¤õ GíaCÅÂÖ&¾e@ã'ì•Y½°°›ã%mÑv µús°:DC¤ÞƒDP}ˆauôï E}}CD‹õ?EÊ&]¤uˆ"Ö„¡!ÞÄeÖª·Pk=ôçNZ‡(n½A½ÑHë8Èß;Šúú†ˆYÕ>-ʦIãýÉÅ’VOrïV™öqõÙÖ[(â­‡þ,cÒJæ³U£‡Êw Œ1äÙ×Zt,µ‡ ó¼}rÄMFr8€ûÝ´¸™÷¦æÃ4;ÐZ4;¡ôÇî:DÍwï@Í{¢;€ŽDkÑpÔ6TÌVò#M~>>ÐmIˆ! °´Jb.†‚WÞJÛ-IÀM|§6(r.»wП›¢ˆ˜‚Ñ[Š>‚’þYñk/Oø·hÿÓ¢‰/U+Uns{ú@‚Z_ôÆ ‰yûƼ{\°–ñ÷Eο÷×Û³¬ m_#ޱɰÅăޢaØz˜Hà¹úÉš¦KwA¢çÌ w«¾ÆNJy6¤õŠzï¡=ˆ8ßfT[¸óÊpOŸ q½Eòõ0Ó1OÚ'G›DœŸÍvclh¶5ҳϾ—µ œõî2êWúoÙçxn"Ùšê·÷[) ïžíÅ‚†AoÑ0l=L$ˆUüÉš¦« 〈(õnUÔúÀ];jMêMûsÆQ=ˆ¨1š0,Z‹†eëa¦cž´OޏÉHöZê€H%´k°VJÇôVKíV ·P+Ñ{hÏ­Î9 R =H¥tŒÑj©‹Ö¢aÙz˜é˜ä'Gk]NÁ,ã½1µ&9È] jMÚ©€nMRåÖ”åªönnåÔPCÀ/7+ÑÏ-t;ÒÆî-núúŒ¼hÚ'EÐ4EÃvtˆÚŽÖm³ýèF·ŒWûsCº½ÞŸ›Rˆª½¼®6¡÷Þ­F¿µhøéë æ‰ú„ÈâéÂiÂbÖÝ@…'þ†ˆµÃ1]þ‚ l´õï~|ÑC{»?7ì•¡ö~“±~§K¡"Ð4üZ2YŸQÓT ì•!íµ‰XvH`C¬µhˆ·úsÂQ)ê=¨”õ1º6$Zƒ†cë`¦bž°OŒ´)RK·¢ ¯-Œi ³ý˜Z_ºm¡PóÈ-Tj¹?wÜ!ºðÚ{Ð…Ù>F_ºíX´ ËÖÃLÇ)~rÄM7¨ë¥N%¢×ÏvâšPµMèZý¹/ºwˆ¢Ö{PÔû¸†DkÐplÌTÌ÷‰‘6… ƒ¶QÔš¯l¨÷3§8v¶íÏÍ·×ûs§¬C1y]±î½w²úø­EÃO_ßP0‡ ŸY¿ùmª¸”|Œµ_›GÄþ èñm:F¿ÓI#GŠòÜñlê´²à9¦Ÿÿª†YW"®"L¡+.ùƒ‰â_ B§±±!ÝIÑgûº0~—-Ól¹x©KpC¿®”› HXWrú$Þ>TÁwiÝÓ¬åǧiúÆüåÀ¸;/¼ÄT×Ç'ÜíZ|VvRWO!ˆ€Ò«O÷3¦€—À?ÞßþKâͱ1ruy„¦ù¯Oúã ½˜¢ÿEêwqaMîÙoŸäËŠ/Ͼy¾\pßp\ŸýàTHýü³ïÑzɉ{‰»¾ÒTõÆ~üü»çO¸ý0QÏÿã9$ íAÆRž½xŽ» Ð_d4ï—üì"ÅlÛ¾B‹˜—"-`ÃqÛÌ„çkCÊÜ>-ë‰ÕQû·¦ý7JL¬Ï¾æ&¸³Zd¿„½Ac|ˆÂO}ÿÆôæD\S틦»¯¤qˆÁM™&v:®p¥ŒÀ_>‡ÈÆPÁ6Èt¾4ÝMXãÂÉJŒõϾ3£¿6,±˜XÒ˜Â˧ “Wbü2vÎV0^âNÝöÑûþJ± ¾1‚ûSЉ²yfíoÛRšèI‡ÂÍXs?ÂGÞ¨cR<m _ .έ$…".­5`‡Öh|Â5‹$ÑBª²ßga¿¿¸ee—X«DF~í¼~¥ï¹H F¼/ÑþÕqGb1ÎVbqK夫RЈ‹œã³_  b©³8Ú®ídZaúö Ù6÷@°–´Ã‡­|%‚iüƒôi:Ó4œ·YݦXµ#í2¬®)¬ù> z+h tLwoÒ}¥a¾ÆâšæÜFÚ~=,ÎV^~ÞáÕN¸…Rœ¥‹bÚê¡LAÞ›k¿ †¢,J+KÌn¢nkÁ¯' -”›…‚ mÖX7î§A¿’yZ\¸Oãæy¢À’ÔâOô¢_HûçÖ’ѺÅVÎ-1Ö®¾Øµ}_sÓüOˆH§-ï¿Ç™ƒ¥à­bêŽÅ9Faý‘·°ôR׆!¯`—}õÛçªR&¡zù¼ýú]C/jáìÄËàcV¹éŠE{0ËÈ,†\k»;ë3Ž\•!ÒªE³ÝÆÍƒ”œX5|=kˆ¡ 7Àæ6¸„ÂŽrB©=5:Ÿ’Ñ GAÏ)@(¸‡²&Oªne ’ƒEjñ•Ÿ!8 5¦òìøçŠÈæÿèç» þ¹C{LqM">ùO+c”‚%xN‡FŽXŽ 7V…¯„ÇA{Gé$wA‘´æÒÿs`÷íÀîûýjü|µmÀ?;~¾?aJ\ô.„݉J¸¯1®‰<Çä)\RR(Í¥ùf½«O¤¡,b®¸XËñy,’ð8µÿÒôóù]‰Ôé]PaŒ6¥Æ”VLo¾6=’ Ü IgèGpDÛïä5×t^DÈâô•ÛŒw„ö[38âÓŠ[O¡TuxŽO¡5FÉ€»¯½¥Dy<§-ä@øfà'‡«Ù—UXý÷Ë“ª¦¼gk ™•ÙÖPî™nyšK¼[ ŽãJM3n×.³…?ŠaÓÝdÇì8~b2iaÇ{û6¼×BÓ_Ó^ÈÝ¢­ÝÈý€ÖæÿÁ8—øEûÑ”!ÙúQó(›«óîõàØugbqL»\Üž;9&—í|ˆ[ª€R¦ÈuÊÆ¸‰”í{/¦¼¤û‡.H~›£`SsöëÜØ:™æiÉ>ˆô ~7Ø(™=g1×1BsÁ¸…•Ä ÓÁ¤—= ½A²”uN­ \˳'Ê&;Ô ÞµVN‹®çNbƒˆÜf+,ku“º!ÌÃlÐÄØÙ0=odtÏ)¿Éƒv]*ö “¹™]*»‘­Ke¢.uÛàŸûÏîRýùÊá¸&Þ¹ü† …r’x7J= "ŽûT—¢e Xüaü|³õ›²R"›_Ü^æOáH^ý=ûß̺´Ä ÓšÉô¯ï^ ü‘«2e¤s'˜µ¡YWQìk|½16+ÖŽ˜oÓ%«´&¹úAðˆ~ßóàŽRíߘEv¡ªdÛHŠÍØ¢´Ø-‹*mÔöY:\q»ùìq O6I\µÛæ]CÒYݶÓâr\,ìÍYyMaRÃçƒ-ŠÍ$-ë^Eè -;²Úåάe«ë€:2ÁƯn˜¼;ÊNRlÅ÷´ˆÑÿEb³t”Aö9;ÌÞ2n G^ü…fT£bÓ^«+6ˆø«QÄ~¥Ê¼”+=Œ˜`«PG•=›]+ÿ¥aêL—'aFoâ†ëܧŠßHk{‡Ù+žN=—¬–M& …îCr÷Î=š—pàöÞà"ï÷"–miå4†ì“ˆk ÷Õ½EñÁ¡šäYj˜M!ÆKG£6ûœëPk 'ƒ¦¹„ù±jô¢aä¢7åˆS™1÷ ‰°:½)Ý*Œ\)ÕŽ-ಸò{{^ôîÅžf ãâ“J†h£ia4ÊLÚnxôÔ81—¿™ù‹tü°Í×ùçGƒúz*B\(u‚åsÁ{e“õC½ç¸³— ï¿7Q¦õvר»9²+-yŽCQ±hɳÚ!2ˆü“TšÖT6wÉŽ} o’8rÅVîLU>P®¢"Æ7§\×#M;êúÏÚµûèìY7‹o5qÄÇ{¤d®ªóF}þ¢ˆ{]X$pÜ]\ܯ·ã+y~»8u(³ˆo, É¾Xàœ?*…o— )/©­ñÍÀµÄ¶†K ¨]ÃåU`Ü,﬛ÒÑŠ-]ˆ£öi4˜"äúÚ"ãã*¾ã²«ïùR=î/´ÍÍR>(–âN…†=ÆOS¡!6É÷VhðõJ”>D¬g¤°ËM|+­þØé|í5ÎMŒLÜ\É;Ü×ìú|¾7ÔðñSfâl»û`ÁWºpÆŸ‡®ò93gÜÎ};[zÕbSYœWûŽÏñÐiV ‹˜‹ßdÕgá² ‹o$fÜÆ¼Ú6*ø`ã3&[˜°àËšica¬6|-¦XŠð$4"ñXî.&BŸI-6Ö Ê ‘À—Fë‘\Ùhò^Gn÷=±}#Ág îžì¤ýwóô^Çû}Âñ¹jÂA&ü»“•8†¾?Ü÷Gưk:±Çvéî&gï¶û xu1N³q°0~XnÌ z\Âé\s?ÊZ©ɰ”Ú7¹Çy¥ýª6Y_“vÅ&A¼wÒ9B7×)õ‘’ªG²Ö5U|JÙ)ÛëT6 Ù%‡/µÒ›Ÿ³v,kÌDû7{R](Zù“lêŒ)YÃ×$ÝØ@ÄA»Éwã.Üésïåw¢Ñ”‡®ûuu‰ø`¤6ÿïh^r=ûëùOø¢zè%âæž?†¶±EOXÇúb£y #¢÷(®Ün@ R×ÎŽ_Ÿ+5¾IjZ#_ÆGèâ©lB„‚K’OåÂ[ ÒëÓü#bå9—{#f|ÇÞ»£ˆW—¸Ý’q·ùØ÷ö}øV6|¦yM¦Hø¾£Ëå*³"ÊRœ·Ô ‹'æ*æÊüÕs¹(Ü¹Ó üö£†\Í÷L‹¾-Q»™õm’,|a4’˜}´ín»‘ø8(·KCoÌGÂw«â©ÇWd☟gÍküx1Qrø±Ó˜H½61ÑU C€ov—¸­ÌÁÍVé°ñ?Çû-@ÂW¹7±P&áß߈A-Ã7Dz+þR¡ùí(Ëü8~¾ ¾Ð/úÏÃ(øÃoƒh3&S 4ú¾Žˆå«”õw‰í^-ç` ¶åœ÷)Ï:|Ê9mh&¢ã.€¸u”·qDÍøžòÑÝ[ÉßS½x3ù¦­¶«2ó~QÀNÚwð¡g,?£[]ê'9[A–’ÌûG³bçî‘ø‰¸nã_nˆ±¬H2ÝšÍÁfårøÒwðÿ2J;åËÕ—/!7áÊ/q5éÆ^þˆ•nW8¯öòCbË;ïå·{î8" åÙ¿=3³woÜ™(¨¼J-삾Äs¥Ñî<ýn‹¦‘ž?>'×™B¬Õ½ƒž#–m>ø·ç­J¸]BÔ#$W'Kötîx"ds¾HÞéÎñŠôþÉÊ;Ý®N2\)\ÅÙÛ´Q8zšÕ‘·úÍO¾[ +–ñj¨¬cæù-4n Ê Þˆú(K8Y,@ "ùL@Ð$ÔÓžwžÝ¡9Äý}ïÁ ICÅ<×t½µâª\muö )w¡ðὑÚ9ù^ƒ0Tx“ظ´+AÐ+r’á‰+ÂÊóE\Y•3»;÷K_îbZ]¾??_ŸÜO_oƒÒX6AiL£xò_$|¥Ä §´”¸ÝK@Ã%Ú•&æ¿mð­úq­¡hÁA-°fþäþ8.¼k´÷7·ò I™§Ë¤±aIfÃ$W– %m½zwÃ’9 ?ÒjÏÅÐônËyÆF-‘&'œ:Øì }w›rÝãzçÖ´N÷mNöð¤•òeÚX|pèÂxµcÇÇý%÷Q¶Ã9äMùê€ìÇ󌚫9;ÍU?n½~½doV/ö¹î+ f«9½§Ao‡¶™MW 1f~C®RªÍƘ¿Á¡bRæxýÁ9‘KŽÃžüúÜ\¯|Äœi˜9‘µY¨ƒìí=ò¸6Pµ )å¹fEâA±ûãjÇîÔOû;à{ ‚Û;æüíãWÃ0IÜNyUï“NRÍóó?îP S2Òâ4¯îWV°zš‹?Oä Iœ¶g8vè›8]s÷’Þ.?©19ó€We¶(ú{CükáÚßQñÅËÛ¢BoÁuØ¡ë}‰=Y]ñ±YÌvv÷nOó¿–±)Í|Û†›ûÆ™ë¿J av>C‹—tYâÙ•víâZ¼ò¥„å]mó»V5þ㟦Ár5þãŸowÛ~?ÄO”°‘ÉÝžî ‹·Ÿd'LQ ?9¿D]¸ºî…t›¯zy%½œ\ö©ß| Ì?]¤¡Ñ•C2þCO^`ïFw¡AaS¦;?¨M’_ó:»±mýÅ8–wpcûJ½+g]¨®i³Ñìio‡·,ÕaGHØœ:÷ý`ñö,ƲèR£›×øž®º]¿ÞÄêv޵íuwÕýÇMEwl„}ÛïWØY3 ¤ë½“¼ÿÚÕƒÕ¯ŸFìe­â¸Î¿·é&œ-~œ®nÁæ¡wúâ­„¿Þë»Â¬½H'™pȽ¿8ß2äû– ˜K(º¸®­¢°)öB·Ûÿ·%„ŒK£ãvW-ÍyªiõÉjÿñ‰î«JØ6†ÓCßqÞðƒ âËÖH "ëÇØp¼IÇ™ðtX£¼S­¤—[œÈ.^mV|+¤»|ºê&¸¦øÆ=oz‡ÃÞÛT€}Ä”@Õ¾¨°¿2×§kï.[ØâƒÅèöò·Ž?;’©J¶L`v•ÝJ‰2Š´G;ü"<üþ.—±F’rßáO{òýÏòæ•WˆÈ"âé)&Ñ–oö-œ\ €NrÙ i£àÊYßålýø=ÖÐÜŠciîÞ iA*Vwk7o•ó»¾±%6Âãtxîê5°UÇŠ7xÃ)ß´ä“KWªt&×@°ÐtÖ½\ŽüÅîzÅ~Ô‡ÿÓ6…½âr‰f™Cš§~³!Ðom¹™ô¬8(r¼â½äªà›Ë;lf É,l+(„¡¯§Ê V¬e³ïŠñ®nòÖ?jÛP6:ÊÌ<ßÚùëÝŠÃñ/×"ÚÝFÄ¥¯Dä¿rë°.óE;aˆ…³#úcß+º-IV9ߥÄW%s­¶'w•íïÂ8g–Ö (lݹ$ÇÇÃ6øhxw¸‘¹u\®n*|MüiŠCMj¬Eµn³R|,0ŒßáØ­Až³ £[Æ7ì“rU¸Ø‹f¿mã„i[Õ´¶éËi|)!d|µ»Ç`rÎ4”;6¸Àš×åB¿9(ÍŒL§ÎŒ‘NáïîcÔguØÜˆµk•w®3æcÕGûàjF|•cn>Atô¦…ïf¸’¼:Üýì?`þº±üê> stream xœÍ=Ûn%·‘ïB°ßp°OGÕËûåq{“]I+‚xÆs<Ç’f<;Ñ~}ªŠìîâ­Õºm ð1‡],ë^EÎ1ɃÀò__Ÿ‰ÃÛ³Î$ò^_>½<û?HRNÑZy¸|s–¾‘0$'wp^OÒëÃåõÙ_ŽþüBLÚJeÂqÂßFz'ýÑœ_H©ìŽ_âΩir0Ñèãü­¤3Î_áok” ¡˜ó-ø–-tw~¡½›œVÇ[š"<ü;j£3øï˜àt8Þ¬Øpˆ ̰ÿ{ù?H qŠN9CS ".¿8»üå_Ž—E ­£?þ•p÷6…øjí&+åñ›ó &|Þ„^¸bò«s˜`Œ‰ÇŸÒ¨R0ƒpÕÚX¡Žï`£µ‡)r˜„Ò|ôMZÏH“ö_E¡»(Á0íÑ{T(¦¿Zòጠà寊ŸŒ²Çk˜-²Šùž­™k£å %Gí×ñ·3Äb}>ã”0wÊ 1àW ­w@d?Y'-`8ÿú>A¶2T”“p6F¼,‡Má{¿a‹ÖpR|6[æG»CÌLd1åâ¼%—'#ŽÇmÚxb÷ÎÚõΚoƘÌÄÞq&6À´ÖÏK!%LQYBà‡6@lX-µó ¨ S¢Q)Ñ[­Ù–á4CJøPÑQ‰Ø¡ -â¢;\H5YÒ, ™ÔœìüÌ­³@„¢Bè) ·i8€àüùªa ã=å<ÎO†~À-ÿ—¦DÐ)üKdfÐ!ŽÿäTctX°Öã²q›Ày¯jxz$ë %šÿ6`òÚxϳ/ïfôÝÈcéYf(FA>à ¾Õîø÷¾^-U :(p˜Ardã$U˜¹úTê¾e3í×÷ ý¬¾5‘DKÐCÖÌ8­Q £ú¶6ÒDvL¦©Tq9.š{šÙÓçŠhÜHtù—¸Á‹y‡¥Ü0brÄ"îBqältƒÊCOtâý‚OUÁ6 Ð#ãð®áÑæÐj&Øwcà`ñ¥´¶]§wI6ç¼la‚”gÝ&z*U2?ÑÖ(4æë”ö¼: 6${ žW°ëJ€ß·ÐȬðÝתÏ^©b—ï²2““‹ô¼í’~€È_k‚(0nKp³ÒÂÿ#›òMá,P2&¨žì÷ìC.— x6C1fhÞ2ü˜LtYœüù¢ÉõÑ*nlwX¢wk‘ÄÇ?&ÏlR^ÛD+d–<èàÀ§Õ‰ƒžPÐNiœ<1<<%¬D5ŽîªŠ*9Æà»¨¥òì«ÜÁ©à¡‚»<‰çõ•uÙ×–^Z“3 Ý’ŠºX,všã¢1# ¨ø·ë¦Qñ; ¡wÿŽáuÃðeºnº×¢-‡f€ËÊŒW ¡}ÁZ\õí<—.2•åƒxÇ9³ö¶å#¾½MÈFç ;Tzœá}­pàrqψû›ÜÇääù˜¶`ɬqßq¾ J²SÀ±çšuPèáp”ùNøïV•# œgZëì|¦¥Ö‚a hÛˆ‡›·ÀeqVl\KßÑd,ò(ÒCWИ–ùG&ÓâÑhFš„%\ÕØ[äš ‹¹ópµ© þbÞGiüoŠý®ëþ#‹dÒ ýô‚s¿Õ­{íÀEðFE(LÝhUfYn“îò`G®ß»¤€À}*Øæ]úé~S ¯>mÚ¼éÄܨ©Ò±iR|4UIYpÉû${Ω!É8™~ÁVypf°qG+]ØQøÔ2Ú {()”á©…6ù@Ãi†¶ñÞäøjsÉyyÐXèJ÷À“è£d¡¯F†÷*‘ fÜ1½<òÓùižÒ—*ÄRQÕ:4»h@¹ l:³P9nAœçŸqê=ÿ¾J=u=óÖÎö…’}ÅJ+V¢h¢?ΦÌÊT‹³}iÑáãฃË3Ÿâ0PKXG$1Ö–¥+õM<©¦Ua1Ø—Ÿ¤> †hq'[a턪 ÖâE´=ZÛoV¨¤÷`ÅÏgDgδ™S!l²™IÔ6sÔHÏÚXgãr›=:‰qVÏ£«ƒ  }“=Ew·4-³‘×¾0PÌ%œa/BÒä²Áô¯®pW1ÌÎ^Ú"‰±þÿÝšŠÄ¸Úå6JƒÔ ]û{ì­s‡PÜ$¼çÊÃîŒØð¦_,9k±ŠÉú)ID4 XR»ÇÄMÀ3Êó¿NôŒ4}®NÜl±s)´OP¡<¥FùáSÚ!Äê€]Êó8ТKîCÑw.Ü£ˆˆ{¯Òì¨×H5èÊãh¼>’_0\çÓ²sgY(æQ2VK“÷Uœ-Eã þÒ6G°½ìùêÒG¥ØΗ£éeútæT÷€·±®VQ€œaÞa¦ý(ÓÉ⺢L2âÉÑø»+nÙ?‡4Óuð‡ÿy™ .lÜ˱sûˆ .` ±CéN$a‘¼…ž¥ÉмSU`Œè*ß—fŸ]¸KÓ½VÜþ”ޤ-ÂÒäA•%%mª””çƒÊφeZ‡‰*£Ád£¤Žˆ…R> X8‰°™ð )NKRIÛ-|‘Kã¶»W.&¼Huhì‚ßy_u©C9;ã~jâÜ8G=ü”¨á¤^„Öµ¡ÝŸ¾!SÆ-Ï;€*{·H×ÛŒóR¦ÉõÊ—À™ß`ne%2¿·PGó"9‘A’…ÂønäÔÕÌ£ÄÝ #Ñ«ÛdV­z1ß$¨t€¹_ ·_$ÏÀú…¢*ÊÖ9þ-I‹pj_“’’àp*Ye½i•GUÜaïQ6aÀÓ!쉨RfBiË3JØ)„%¬¡n)@¾üÕúówø|W`¢Ëî„ß,?q‘Ï/Ͼĕl8¼½=3“°‡¿Ÿ‰Ã¯Ï´‰V;˜€Qµ?\Ÿ’r`–‘«³¯†]aæsWê9—@LÒ›Ôv»âöqýùaÝÇ«î„ÿ^Þ¬?¿«æ„Qž'øÅÍmztšÜb'¼kdé…«*¹_gŸ2‹E7ó4­´GˆPáTR 7× G¶¤#š^ j‰Aƒ6ãyšbÇzût ³ý‰ võŒ–ñ`-üÓô…ñqR*V~Bv¾i&Zð6°R3Š“ÆîhÞ"?lÄ# Hß0´ù”o_:“©¼Å$÷"ª¾^Èð¨þ'ðËL±oÎM¥`,’³w}!"ú:Ð&]Înªéh\4>ûº‰¥ƒÙaਖMˆm+.ÑJÙ9ìÆ5¾J³…pe(F|°ç¢Pt5€Q·oiW£ÁJÒà Ypꀯ«fØË´ôi>¯‹g|¨ž¯i#©}$`EÖi¹`í,J9ËëTñ!\íä®¶S¦’j{‘ìJÍÉýdþ(ñ°S( vJ{½)`íø¦@?=Ç}9ìp{Æ hËì¶÷nÎ÷¥ëM¡”`„ì÷5 b¯ ´èŠ’ gç ?yfÐ|ØRw\Ôì "ž¾.Ûà  WB"¸ðŒ1”òXeV/ `´·ap‚özŸ 9'`ÍYx6ÿÙ)ùÔ7ž e¤®€›ôõ:ü ãýQæ Ïòwù¸„$ÿ^@3òÃÎϹ=Bu+ ×úŠæš¹¥[4÷¦ÈçAeè¥0ÐSµ˜Îåé;ñÑRe0SuͶ¹m­ñ•¦Q¥ëÒÒÊÒ‹¥R:QË0pG”/%wä»îrUHŒª¶¬Ò¯làmå³ÇîŦš¯§(˧ç,šX¯œ?áA¶V= -šžA5eÙ–/Ô´Õ¤¤[Åœ¼´Óy-oµ|í×ø™òAê8¿9Fš~)z#áÎÏ|ñçÊ®Ò=ˆ€ºàÃ`ÎÖ³`Í5ô –xwæÑê ¿YF—<šd‚+Ì#yy¸†‡7&–‘GäÑÄä vÄ”GûªÆŽPúÃ:úŸÝ Ÿ­£Ÿ¯?ÿkÀ>ûã:úEXÿaV‰ T²ÖšŸ¡@‹’+.®2ÚüXS^ü˜‹Àâ%^Džå}Ö¼ Ñ~‹[8˜â^T`ê÷øT¼U›Og$³ár/²\ÝxmøäBQ¾E‚¸Í|ý€ìðC¸Z\–suy WKƒO›<‰«?íNø¢ËÕ¿]GU ÃC¹úsÒhFêò–}¾ÿÍÐÔ—]ÉÆÚA(59„{ÂM¦ÊW¯Ž§P¤J`éû˜ã[4s\*SиÜägˆ—ûÞ¯žñ yӹƻ š4y§Ëà_/2È8)®ñç‘'È€ÆxšÆÿ²Vèln­ÛÙ…IF€??J6~¿ÊÆàMËŽ^\^"A)ß2I\«‡¹¯ÖtÈö:uª£W$g¯´¼4^9aeݼ–Ô»¾q[¢ôŸ6™V…—cZ¤gÚ<ò¦ï©'1íWÝ ÌMù¼ûÙŸ‹­ÞéËMYæ›à BÂL*ènTƒÍ%~«°Šˆ¨žñy\³~:qÜz@º­¼Î/}˜¬/mÎÖ¢©©Üf‡M¡§ôn\õP-ÿ]^ÿYLåÄ ­ú1{•.Ž;°–É{ºÛÊÌ4…wQð»J£` ßqŽ^³àð~ZšóÛz„rå¹W½e—]Æbü„ekÆs)OEG¯¦UÝË>­¼Þ¾s2º‹W7÷b“ˆ—Ç ­FÉHŒGŸU]«ü:av©š^~ÞªÉTW´±Í[ÿð'o¼”7ÈŽzNù@œëh¢Tô'Џ*õ¨¢‚ßh4l²WÚô²W(o¹ûÇ)¼k<3ö]Z¢Ñmœêƒ{}¸SÚJÀ–MþÈAÚ7÷4¸‰š-y»=Á‘ƒP=\ŽRÙ—:†]'˜µ¨Žê溟3yCÌ/˜GžàDräžË-ø}/vãnÁg?g¯uDžȲ „’ŠË_²Ç?í\ «Û»GùEæÓÃC¾aMüë ðMzÀg>4+d½ü\xë˳T ²·endstream endobj 852 0 obj <> stream xœí\[·‘~Ÿ_qò²>³ÐÐ,Þ¹¹Á œÄ %Y[ƒÝvd4V2’Ér¢ ?~«Hvw‘Mö9G3£A ‡éC±Éb±êcÝØÙI;IÿÊß'/Îäîúì/gZwåÏ“»_\ž}üİ‹":åÌîòÙY~v ÜÎy-ÀëÝ勳/÷¿?¿Â)¯Ù¿¦gí¼ f•Úƒë÷OϱY+iaêìŸÓ£VI¿Éz_Ÿ_è`„ŽaÿÕkÖþ˜ž!5ö‘ÂX­­Ù¿¡f­ýÇËÿFÚ•¶œv%……w—Ï.ÿóËý#|p|ð—é1º psëe·ÃoæVšäÓ˳Ïi&v×oÎŒv÷Wäç¯ÏÀh'¤Ù9«‚°v÷[œGRç–›³GC®7”Ï\7Nø<„p¶ðýQKq"ó‹¥õ“n‡‡Kë§Ëãÿ.XëÃ¥õ·í¸©õócæ<Éé¿)”°»…K·°»¼Bʉ«Jj=IéŒ'¡mtÒK‡;Z{÷ߥf+£ÔÔÅ(%46×=Œa”Û¿ÀV‚RRí_-=’„xo´¹7ަúz¶(¸¸ª4 þ¿eÍ…V9NkyöOX;ëž]ë8ÿ×ç$(ÒÕ(WyN‡ÔÞäÞÖ«š)ߟ+$ílÕÊ{¿ÉœðÆóÕ?Ë­Wù²^%­>(k«54 ¯)ÜFU» 󼞆óœÃYħ⻑"Eù.Ò7[ížÛšéDе–°Õ_/l貫7˜/§L“N¾i/hd=¸.cõ1ô•-Õ¡·¥zÞQÖ[êZkì›t X„<3éÀ+×£dÅJјVbÍŸ c´òn‰4Í5ÍnÓ¶t¤%éëEV -}ÌB^hJBŽâ™Iãos .@M(LƒZHŠŒRÙŠ•#€áàô_E[Å+8 ³ø¬‘ùš ó–‰ÌjâéMûü퀂:6ZEÀ¶­``«Ûi¬Ðâç2ö6[ǽuòy8‹8ë®Wó,ðœZ9³¾ÉkˆI3“ÌãžJ&™LJ…b÷ï Ȧo˜ç¤òQW5ï^~ez“Іj¥YÀ ÅÏt¬7 µ‹#ùbËæ¨ÆeäïËp-×! ×+m 5©‹Ec>A¹M!J]`û™ÅdU‡¸`ˆ‚<€'Õküã$RûÓZ 2èó®Ö‡-7¿¨KRwBT{µÿëb’ò…ó-xrž€Õ@’G¤4Ëã‚cE c’BÚÄþ|·Þ‘vèæÌ"}ÃÀø»ÂiZŒNT(ÓAÓ5Êömœw ;Š`g2jó„“ËÙÓß.E»'3S±p¸ë¼](ƒ+×°»˜Ý¸«³»tâ&‡Íºh…gþZi¸…»†#3üOv×>[Z÷ƒq×°Uj &ÔÛD?ãZ.zqݶí/rÇõÜÙÈ麥½Î½ +ÃO!óíí=7ô-íqVÐ]zn M`=AœEü×3Äm› wë¹yá¼Þÿ_ê¡ H¹uÀ a†oÆÃBs­Gš¡*DdzÅç—¥ÕÕöyͶyì?å7£A.ó9KÒ—a–v6¥uhþˆ âïß^Àµn0—–ÛXÌ‚º‹™Áí¯–V†þŸ-­ ¥ÿg ù ÜO±£S¢, âiË é+v˜3,z¥ÅJÕ±ý†˜‰X¹WWE ”úÀ¦_FØ2ñÆ .ªÊ»˜”LNî¸ۢŠ4ƒh§è]/Ôž*›…áé:Ÿ´bYã-l@a^äÆù5x¨ ™2O-·Pf‚xx+e~ÔUf¦•Ÿü[™?œ2ßyy}÷-é¨iÝ/âVZ0•wÂÄ)w≀œ¨J Qª&L¿Y!/ÁÒT(ó’ñÄ‹'X o¾aCðç\½!)BLhPèFYJ’á ȾzÄnÚÉ0=»9è£C6®‹=4-u*ä@Û«®ÁƒÕ±ª*ÉSESò÷à¢LgÇl"±ÒÚcÊEå,ÒÁÁÇ4Î#®ŠM¸€ "ºªS±É'Hzk>ØJ×JBà1ÈŒŽPÚ‹ˆ®¬lÃÐ]ÑeŸ8Ñ^DMÈ3ôÇV:íæd^âkY ™½þ.ÓjŒ]Í8¡×q´tO y¦‰‘Q#Šg'Š2eÒkºuxˆ"©ÃÖ²ebÜÊÅ]q঺³ÍNm'{V^^)nðèåkÍ2y·Õ »ÜìÄ.H»6J tœ²ôêäÕhËòJh,³–ÌB^N}ŒŸw±‰‚d¯È°•C³ ‘ºd ¤ÇàG1·Õ€ìUÔ’Æ'Î$Qºp ˜¼+TÈž/Ý£yÕ7y¸¦|éY^Âë1ÙêÕ2“_±c:ød<(ø|Žáa>SL±X¨R ÙxšY›è|½Ô¤µÝ’® ZÅŽ®×z^tä1ªiÑÚôÝ As¦‚vÑLâ_è­Åÿ¸ô,$…s,ôÉ_ =ÙŠÆ#£ÕÔ]Â*\†ÖþÐI’ÌÍ!.á×SüekƒßK–ùŒOM†mZXdè¥ßÓxGfYò6Œj{ꊥÉýeø Sj‚¯Á$ýÍÎä¸(¬I :I¬%ó¼2Œù¢:Û5Ÿe»êÒ£nBmTrÄψA¶eø®¨Ï‘Ž\xPûÈ_í+o÷ã/ŒÔü5+” qæÜZµLgžQZ-Õ6;•íN-c¬{Œ Ž–óØ_7¤´&î‚Ei‰ 8ü:§«9øff¸I¹Ñ¢Ø¾8+G™wTWlíU·~¢±Kã=î—(»Ám`üDÆÝg:8¡›ÄÇ.fÜþT · Žt[iOÌ­ •h„Ír›Ä ïZ“õ2S ü¢Œ øËÏR¸ö”×q‡6C>w¸95C¯šÉg*ådmØP d3ÙuiUë¡Ûd>Ή®çŠwä¿ë_• Ã)GßÕþgRÀ仺Ôd»êLýiqBÌÌ´O‚À'ç„C3Ö½¤ĨŒ™¤Ü>½ÜûùAà=¤v¥  ¯T»ŠÃNó|y€—è¬;Öý¿>Ì"Ô¡EP®m¡ê§-âÇs´³¡Ê¹èu£s¬î‡:¼ö`…<.wJFx¼û³ÈS}l Ç@Q&~ üA6Dg‰=…'ÿLFÛ8©™µU¯”ÞÔ#P¯+—7ojv§QVµCd7ºñ±49Ʊ¶â¾?·†PF)NÇ °û|9‚â,†¯¦¬l¾„Ê›ÝÜžŸžzp{‘Û”ü€êÈ^jïÓUꋉîÚ{€lƒƒQ«#+åÐų)(iÒè_´£»ò•>¡]u)=´E ‚¥½PÁ?†z¯W«K1¥PM·^Êô&µ¨N#„• $ͦ€¢Dä³íF è Y mSE8êS ;–›«ñý†2§Í9¨}è¤<ÒÒF·xQ´(Zˆb>¶ßi~k‡ñ4Ž·ÓS”adä†$÷Cù3¯’àÐ4› ´PÐÜSi1ÜëƒÅñžÌ=3ÈK örƒàÛ1·W¸@ó/ 0z4žÝê¬À%¸mÀIŒ€Ú…â÷;‰ÛJv}òpæKit}éaïøszÓ!ð cWL{‹0 ´ÛŠ;{ÊÌÆý×åVâ3ÒOÜ3nŠ0'‘};жúŸÖ¥t)ÝÊKgÃ4†ñ²\ÄÊdÔÙá«suü=q“е=@UÏ&Ø×Ò¦]•û Fs±ĆvIJäÀ¬‰²³]qïál)Oí×¶r]Þ^­« šµR  î5tO÷X(Õú¸TÅ)‰ù¨®µ<ÝQÑp(†z¨Â3߬ £Ó:fSQeDýJ—z¢ÐÁMATè\s) ©žQÜ Vݸq\$¢ «r³ÅlÛªÔÑ©Ý w­H߬Oƒ#'ƒ º5 ú±4aù^9/ÿfgµ*§Z~¾d–¶Óª£¹N%GvÂ,œUVóY~ ì?Z†ëÚÏÏ¢`gÀøI²›½Ò}Z»™ ¾ºŒ¡é‹(­—ÿQ _ÛEE?=߬jíS“¤lþxÀ†Ç”J©ÕAš´t&O³üì½iù»o.– Ü$w䉓{ëûïdéÎ’Aî¦K­$Mf¡pyœ¿(ðùÙÿÁPÈ`endstream endobj 859 0 obj <> stream xœÕ\Is\·¾³ò#x¦2/Ø—CÎrH*‡,¼¹| D‰r,‘’(/JåǧË{íÍ›áP¶K Ðht½b>\²‰_2ü“þ~ùî‚]Þ]|¸àaô2ýõòÝå¯/~ÿ/!õ¥Ÿ¼F]^¿¾ˆßá—\»I {i¬œ¸•—×ï.¾Þ½½‚E¥SÚî^…Þ8±ûa]&|sý7Xœ;V,î&#¿Üs1ieøåõ-¬z _LJowo®ölÒV;XöÕÕÖŸ¸r°, K©­Àá³2Ì2; ;)it1ú¿¨'ïÍî–VRZåw¯ãržëݧ0Y3Ïd»£ž„4»G¶ŽçvßÇ)RI¾{A¦ß-‹¼Úó‰©Õîf}O&¿‰Û -wß’Óܧaéש2ÈÖ¼ö¾8ðËøM'´ÎĆo’ééÝÇÓK£ R{ÒÏ¿»Ú+Î'©K¾ÑUnº¼¢3URXƒ¤à!ü¸Œ{M'«<\¡°ˆMÄŒE¡zOœØý·%[ÿÊ%<.¼Ç¥öy­ §Z'9Û+fDæ›ò°<,#¥eá«W(åd½«/žB/¥Ã–0Ÿ0e\š 8ÓC¼«V ƒü¾‰ÄºBN?ÅAã×U#œÀÐM®ö €ÚqN‰,WéŒ[69R'@¥' ³ÿ¦™’À_„%KŽÒïÞÑa²ã´ð?BZ…—ûÓ$@ŽòQVR>,Hy³ŒÞ”³® ¥/k<áðD>c£ž, €]ƒè¡\YÐ`>†Àwq7˜__/Œ:!V¯ÉTö0q£ û)ÒǤ¨Q „¹¾%›?Æ/ íjªñ¸b](j¦ô³…y4­Å$|a…pñiáÈÇt•Ü~ ë}O0ô&"¤õ`hf„ÌWÍJÜ*¡°•÷¼J”Leãb?t=ƒËè§uy µ<ÓFQ/‡a›ÐéD4¤«ÍŠñÿ› U@õ‹Éyñ49ÆÁ9ZŽg ¨g&ÃíG=ç7VDÔsFf£[á[‚WËèÝ1¨—ekõàÒPŽû2LP¾ýg3PE%ê‚$¦Pg aM‚רEÁïWÄ·êËVe“M¼ÁÆí¦ï¹Q ¥‘ÿy ¥N"ó~Ž‹È<,£/Ï+2Z:\OŽ\ A’ `6|ÒÌEu^\ 1"8 .Ø^¸—ÁOÒ>¹ê­Cýs*Õ-í0Y¹íZ‚}bj÷cÿÔTô_^BTÀ>üž³«nk`WE7J"•ˆŒ–<øtHÿaŸïf;ÔŠx}O Ü›H)w¼2“xF„…[2»š23~Ìä›þýâú·_G góů> ŽÐÍ‚r÷Ëèwç ààÐs”¬¬¥šsOîé;œ,&ÅD%8Ê«\@³ ø«îlà‰>†*‰ÿ¢"GÝ„A ê¤Sm:xß! KSn¼ß“^{á4/mëÁC"£c<ÂçŠ9!¾ 84.{Ü$åS é¿K‰Ûnat`š„`ÁWT`Š3æ\B統ϓÀR™k`FaáÛ?F±í¶$Ð=‚,´%Ä>VÆ$ðu,Æõ)`~J¦¾gŒ®DoÁI[mžÓt\Í^0<#É¥jA@l(™¶KÎ.¶@j{,TeòH¾4Øž*èÜj{À¸CXý³ÚðÚΚŠJA9Рĥ²ÞÉmZsº—2²¼Éõ$稰½·¡éA¯ŠqzÜw.L‰æç #ƒ&!·ÖÒdUº-®V„ùÁºM"¿Tжÿ»5ÊT‰U­<Á;S¦‡`pðåÔLÑïR§³uº,xÕûÅ‘FQì'æBAÂóm’òa²êæêwN6 ‹yǦm…{W¾%0papÂ`Eºƒ°]¤-,`½,m×ÃvœcÄ€¢JjÁ àÎ/cÕ[Zn—á·d ú})™©ÅI„g£wËÞƒõ‚êg0—&שÉH55 ·1À³bz\E5¯˜tì¶–>WúÜ[\އ5"ïÛÒñÏ— I)±¦¼ÐF«Sj(•qŽñ,´ÑÌêH¸„öÊa«‡Þ´ø˜ÆyÅ´Œf\Žz•<8ò9Eú6=âÛÑ xb¯Ä Íßk$yv €×0öÜž˜’>”5Ÿ!K)íäš`G9S£EO0îÇàpxJ@Ò°€¶³¥†ƒç´fZ ¾N*Š ´U“zƒ†Ïgwg¼68xà×"4`‡sG?ÚÚb2SÜ0‰G…¦Séj^š ðbEK êCݽ–“·ý ‹ÄÀ^–@-1I•üQžZÚ ÔÎÎO†•ÔZ$óÆû­—â÷y›ãYõ`4Ä‚¥3ÒúmÄ:Ó#6̇‰ÈïõšÿXYák°Ã¿òDvèi(­Cµã@¤Sõ¶ÔOîÎëk´‚Ä=~6h´0®gÉC˜d'$ö °ÝDáaF[p7àh“¯"-ŠÉóVyŽq<¸E<‡2¤™ÞnØg¥‡ƒcVª©QÒN‹EÂÐXNlÝ„FêÎíÒÎÆ/>£QÆ•¦%¨Ò¬N¥4wBªõ ¾iñE̽&ÑbcB!°9Zà)Îö:ÖÄGh_¤xºÖ™‡Ï¤ž8,~½o¸ØÏ-Ú4m|­ 6m®T ?_9´[>ôaæÑYÙ˜MP0¾  åî7­›RWâ‘ÓÌO§<1a+ñwE…ØÚ‘Œ›‚¼ÚD}²AëÕ÷ÛxP,[ӳˉ¨}XùéŸÀºÊÛ»è¡pÂ/‚r,TþL¸¹ 0-? c‹‡Þÿu”wñ¬ÓÅvÒy+ÉÝ"?k ¦9ø2ÜÑïuÚ —>ïDqÙÖéÏÑz”×õXb¯ëà·bG•ŵçq½b«ŒzâK >gzš¶„#Wª•Šâ»úàaÆSóWa‘æGð”zÝ5H»oHõþ°ØÕ‘©/ù³¾~âÒ–`½ e¤CW¢Ž0¸Ç8…Uchâisù`—m:J å0¤àC)¾¡OÞ—Í`Uj8ð%'ø Îå>Ò_¢ç8û/×ÿ„?ÿ’\‹§endstream endobj 866 0 obj <> stream xœÝ\Ko¹¾ ùÊ%ž^¾y"A‚½d¡ÛîdÉ–•,¯-{ã ?>U|tÙd÷ÌhÆ<¦ÙÕÅbÕWû§s6ðs†Òß×÷gìüöì§3FÏÓ_×÷ç__ž}õ­úÜÞ£Î/_žÅgø9ç|0çÆÊ[y~yöÝæûÍДNiûÃå?àQÅ$}TB8.o`úû‹-#fóx±eƒRB ³yw¡ÙˆÍŽJæ}9#Ò®Øð¿’´¿¿¨XáŽÑé@Ìjí´?ßr1hex|îoÈ“Âsàíýæá©+oõæò¡­åÌnÞÆßÚ9±yx•Ú »yCÆo/¶ÀÅ NT¤UŸnÐNðÍ‹°0Ã,3ù•ÊZXû89.]qEi¤É8:\lµ·ƒrfs “ÒÛÍ+ÂÆ‹‰÷8l­qÂeÒÌ3I×_;@_žµ†Ul|BÊf‘KI2JòÍ5¿‹rrÜ:º˜Ä”’0LÉÜD¾5Ó›Ÿ§•½&Dè^õ7$ðÈMwz5Ŷޒ Ò)—),ªÐE=þeG-¬^0>Õ[íûÈ„e*³/…†¹ol˜v&ïÑ@&±Ì…ϳ8Å”›È—úÈõ6³lAëd WÅö€(Æ%p5x^.£¯ÿ#‘;2Å-aI›ç-›oB­ôT=…x=Ó6ØÊ7óW† TeÑl¥`›{xŽÁ\ÁÊMìiÒضÛæ<Ë9 Óâš¶jR° e‚K7᫽ õúB*Ö #v¾Áx/,òfïá¨sŽþé³ ú†‡qÎ…àM¸zð@6¿ç»YŠÁ2ý·Ÿgbm mnäê‡ýñ»°°Ývh`ÂÆƒ'.mø/h'ö†8±›Ž6Ì(ŒÐ2`P¨µ§õmV%ŠÍŸQÞ);õ(ôw›Dc‰-ƒမèbåqµà9⓲ç$(N~ OÞ•âT ¯ø%lrßÍ¥·{¯ŠW~¼Ð m‚q*lú>ÊÇ|?Ò®.ÍjHQ7Ÿñó2²ãŒmìK˜ñfò=Ô¯¡{a¼M¦iÔÛÌwß•¡q?8-Gy<GÁ@=!ô¢òïYR/"˜¬£¹P+ä¾åÀÂó ©Á‚ø4ÞF(àï]¹×Ôš@³›üA.B© Âñ¬·ŠsÆ3ƒÒvû1 GÛ׿Ä]äÓõF€ê@˜Ì‹á÷8 „Á€iÔA¤aÌ!|nD‚¦ÄÈCÒ;eïWtŽ€DY¡A3¥REÊã³C²BPó~>€ï׺e§ÜGzO³SЃA1OÓ·„ ý}GˆP‚4 Á+â¥ÊïU. ¸)í—L§0¥@½®‹ ó´rdTŠô-XéB3!£ ÉÇä uǸYù \‚ë‹”·ÈF¶œðÄL*’Ó»È.øc ¡œ,YPTG…Y&:3º¬gomHƒ®ºê‹oa•S*gÇ’àõÀ}J5MÔEÂBEGw‹ªñcÖ>…[4N!èB¬å>NV¢ A&ÜN?©}¤eÕù!ó¼´ªnžGS#”š¶W–*.ÕOtcˆ^äØ2­;|¥¡Z%ó-kêÖ+Ú± 56„IpçÏãä–8š{½WºÙZë)—ŠÞ€¯d×BƒVûr+é*zØô"Z‰‚‰ÙF‚¾8°6–¡]W_.`ÈR¥ºóÊSÆ‚¢ "à×§¬†¢ÐxF^ÏEE¼vmªÅŒâm’r´š°Êh3*¥å@aBJí•+˜jøéYHÕäz"C§ÌJU†…†VýÍÙåoöŒuslØ/ ˜AL‘×NW–ÈA`7ß‚Õ0ÉëT÷|ŒKÃÊ8ævJ{)uZ¥‡ÈIÈʨ„‡\ñ“kÙDPó¥ 2D垘gâRÁŒz½=àƒ²›q7"Æ^U!¢ï„× j1c»¬üQPoübZ&%=°’̶óÐE}WoC‚zË™ÅÍj†W“+F!ËÜ*Ò¤½ÜÊzçâi-ŸvÀ•îG¥ëlPß—w`†mÏâ“ÆÕ¬+È ‰Ã zª¸†ƒ[Á/$Æ9ZÂBûÁá¯þáP =`-¯%*¡ Ó6§„FË î ™àêÉ%8¤"x8ŠGK58|° EN iQC#¾_Ù5ÃÌШ0e6|Ó)ËÝÅà"1¥MVÚOQ¸.Sý,5Ú°“”nCfÈEÇnÓ+cÍNÇpç0lød‹}µÎ¿Û ìií.˜Ì”M…Îx4°^ãê2XêvÄâînµåu‰Ñ}û X°À™ÀSF6~yês¨ºÌj㕯Âîcš„DÅ›rËKǃ3¸?)¨iX#7véÈ>0¡žjðc(qäeäz±8ÞîÔé1MBŒG¦!‹¦ß¤P)8Î}ZÁ46£Á4\¤d¢Æ´ÒDjãG¹,(ûBDÖ;TëfzÕÑQìijˆÅ*_ŸÂZ†Òºšlá®”'‚dXÒ,õ°Pê#®ÍÏÏ•üˆl) L¥R¿ø²qnàÇÛB¸ð6…‡Æö(§'•lËoä‘ å[|F(ïõé«V „ÃÔ(t|´x_aîî¢ÅB ‡;É…,ãØ(~.Uy†ôÃ/ÉÚ ˆJG;V|Ú„Î…ðÍ÷.ö" Œ<ªìFA*Ý–˺҂³ñD*J¡:®õu[?hÝ·êd¡yÎ2pŒo䊴“²«;ÒרE‹(ìòÜa^®Œ-A¯>¶õ'Ö¿,àVÕI*ÔÔŠÆnV‡#´Z†» až)S½wqTh»ënZ4ü vùÐz–©&î®Ò«íN~±W>-¢N¬tò€0€‡<µ«†÷éåsäÈ3VFP\š[tm8yÇ3YÎGÉ)={ ¨¦X–'ñâAÝHQõyáj§)kø#¬àÜ„jÛƒÀ•9z"ïdBœf,Pµ¿5œž‡ÿWµ—Ý×§­u4uñÂ!ÜŠŽçyg0_§©8êÁ¬]ûô*ÂWXa7#€üþb±±¨Šì ñ iaW«ïäà¢åwýá¯ìöÅxÒ­2%9ìîÔÊñǃ¹Â`‚ÅîÛ°efÏg©»#l6ä°¹«™O¬è“eL‚x÷´Ÿæ5½³ôº…•ã‚Ç6€œ/æšD?LçPÂÐÀêYlwUNUqÞZTx›ÚZù®íÊ8ÛÉZ„è–äÒi8†_‡ü:çŸË&›Óÿxšôb,€ì³¡uN£Ó„^Œh°A¿Ü ƒ å Ók &@}y–K:º£U²L“ïqë9H¼s\9 yæ1Y±¼¥©—pœ]6Qóp'zK1Þ«q;¸/[O(¹ç…N·â€~tWt!)=°¢¿ÇÕz—÷‚«®i“‡NV3\tJW£ŽáA‘ˆ*vW«hPÜÓèÝ>Š›ƒ…C: ÿ2ý$áãØ(Va’€ÀLèÙ¹œÅ9‹Äáªêm8Önâë11¯úûñ•Ú/Wƒ_¨Ã?”’™­¢xd«^Áô™uz©nÖ|Ç6j2,lv¡åfƒ£ŠÏvX L›|YD ˆu(:×9ªüR@hË™jøÈ˜Óµ].]MZA>Ýf6Jý^ºÏ„È Q0­:‘¼Hü>NÅÞü›,£cÕéf‰péúÄP‚/b¥¬7Ý%¬¨R*f?rHð†ÍÛ²h¿yÌX®wûâÚx­ä¡Iî`Ÿ²Ã¢êA)ˆZïÁz¬´šÁSÝ^ø>ƒ»2ý¨ˆ@ïù è& ¿ªã–£½4ðp(„Rú ín½äG;zQÁ+-7]¿oƒùõ6è‹]Me×™ëùãEþÀº{Ñošo¼ŠFEƒa?ûרZzê€|àȈ*?N2«‹k¸UT÷¡÷¤GWé²³)ñÍ[ÍJÜÎ,:Ꞩ”ç¢$„!Í»iôqYßñØ^Úº˜ûd:°”Š@»?,|¨Fµ‰:ƒn {¬2Ú³Š§é1¾™ëýõ¸èUf0oE•ÑØO=%ËAí,' l¯^TïÕz¶\àØÿ°ü;ƳUoð®¸ÂaMn·ýÀÂ¥-j_FF,ë)2ª7¿ £ŽàÇ4Yö¡øù\1f÷x£™;îföX‰^ &ׂð„XýÐ1—{ßýˆ‘€¼k5¾µí¦@hç!é¦r$VêhCXt—1*m7éFYámÿÇ gO¸‰0FFæ³cC‘ùflx;™þ» ¦Ñë=¢ñà§Z:°fx¹ Ì‚Y÷îf¥¸XûnÇ5µÒÞí­÷ø;€¹T¥=-!aªwìZ¶›FTP |Î-ÇßA\ßO0uä߯â)PÕ–Þ¹Ÿõ*rʦæšáñV|ïzü6`ÁXû‹5ÅNgjãºMøÝ°%Hbã#‚“ß3éªÏ`0áû×pBÙØÏšmvOƪ“F.}u.bLï¿I§è7äP2=ïµr…«þtÇ›)¬:º‰D•ƒsz1×TáæT¹¦Aå—%´’(ûj‚Ö7ÓèÇÍ5a àNŠ:Ëüp3Øöñ"bu ®µ¤„8E¸£!RdúhZ¡$þ‹Ú5ý4Gçþ6¯j§…·]?!M¥ñ6>'½¨‚š(i^ è® å–†9´¾ø VàÐSÇàÕùmþïÒ™ïîÖt<¯ûÅVhœ"œ=Z ±‚tî$…¤­gЃÆï¡‡9°À÷"ˆ³ • rí«ñlx/àbÛg¨ãèìu,cÃÿp¾Q/Š–‹žYïz¼›^RÂåÊQó©ûÿ—}ÜΞZVÚ»ŒzÓŠ…9Ö!-~nGîW.êu7qgÉý8ÆëéqU¨¼ Ÿ{„^[Åb?~‹i±®8ø©´¦0ÈþÇ5PÀü”Ïp°:2Uù½3TshqÞs„J§¼ˆLš­znÞB¿70Ãø”è îŸT5í%Ï´Òn'Ú»Ï:åpOúöZtNlðœ~˜&Ø®ðFG-!2>ÈÅÑ9k~rìsÄ!D–ž˜ÉÃ’•iùÁ|×/#˜YŠZBë”^f‡i0[ÍHà-¯RàµåâÈeþ¡(®T¸‘y··êvº¨+ňKlö7UÕ û¸ë‹Kq½æxGzñ’Hƒ½êkRíVËò»jµ5öü”hã½3¦a t¦mÕm— G¿õ»³•œ xü€_RY5IÒŒ?qþ_/Ïþ þ ‚ïzÇendstream endobj 871 0 obj <> stream xœí]Ks]7rÞ3S󸼜ñ~,¼ˆ«’ª¤²H&œ•Ç Y¤$—EQ%+ú÷ÓÆ9§ñ:÷EÆNÊ¥…®pqñh|h|ýôË¥˜ä¥À?ùïW÷âòÍÅ/2•^æ¿^Ý_~wsñÍ_e—qŠN9syóú‚~#/¥ “QþÒy=I¯/oî/¾ß}¸º“õ6µ{y%&£µ7q÷ñêZNÂïyé;¬¬µõÊŸïð³q ‡å:HhÒíÞl´'UŒsçþ¹{‹¿S”»Ù~b½lU[³û”ÆaEzþe> ËR+NíÞ·]¦ ïÙßàÕä¤Ù=b±÷.¨²í< S{97¿×8>’“ ÊZ.œ¯$²e@©ðý,]tñv œGjC@q+öu@©´ûÒÞ h#ªIÃksÜÒ ¬Ò‡«nþýB¦txÝܘØR<¬«œ‘¢@‚çv|“‡œŠóD¤\€j0Ô¼ºR~²&ªÝÏëÐp0×y4×RÁ÷NÒ FÒƒÅÐRN ü¾,^°ü«À7ÖÿF Ô¶ª²E݇òÉ¿G1CÕÔ Š¤:¶¦«k£Aÿòo ¶ZG¿‰f˜€Õvwµ|¯D¹6£¹ƒxAZ¡­úÛeõÂØ’ýÄ{O8÷°½šÎÐ8ø=îo€$®ØgÖaÖ"Fâó™Ý®uÕ¹ïkk;°FH(;¹h¸¢Í}y)|Â’r©ÆáH®çw’,~´#°ý‰Áf´[$&% *™‚³´ À΃ÍRŒXòJŸv'ŸÅ›¼>ÁnnÙ4t97žŠ¹òå[™­Ö±¤F»àâZ÷'‚¶Ó“Wa†v©– 5B;åm_/S—1€üÝ:c¦ò_¯à dç® ÙÆïWØ~zãþ à$<´Î…Å)I“©ü:}6ΞGæ×(#MCl´ƒó%t¶ €¼¯ß±ý°E™´¬èQ¦mýЉ:üž9ÈÌýTÏ”~tŽÜeb¢'ëüŒjß¾rc¥‡ •—³VP_hìeöylc…>€ýýÕä+qKº§/:9±ê% +pTsŒHruÔ¥~׃-mƒ õÖXÀM"5ÀË–•ŸJÙ~óW¥maüX¨)ÕåÍ\Üüå{èl( ¸4~Œ. m)ývùHÍ¡ys ¹›QõˆQ*ÄY¨F¾9Y1Á/p‘pt"Ʋ5]™i×À‚¦¢¯ÿ=8 ¡9#ÚKÀÁ°úO¯¯Œ„ÅŠG«+#=ŒGýŽÕNÌã~z絬‰[Z"­ª JeÇVNŒæD“лÅ>CøgÀÞæaXÝFÔ¦¦$š¼þ°˜ZØpytª têëcb†LwÓ_Ã":-$Œt”y+=¬Ûüãºùßüþ6ÿr&ü±ùÿØü¿ûÍ?ƒ•hޤ6¢åïèÀ·Î¬®2Ï÷ ŸWçhâfÙ>Ê¡ýÉd›wÿššƒ¶· T‰¡£+p.ÚQŸ<º™ÈeÃ÷ù,r Þøµ—5H' ¥ÿ?ù÷i6è§lŠbO i8EfõHï«41úw!Ps_VEÿS—û}Z?¾]+ì9´œ´×‹ùü+Öà|ÖÿR*•%îÀêkØG`ª‡Ãµ¿ r2¢»cçê*(èÝfCO^+|s@'ÓZBs| ß_%™ZÞ¶O2_üe°… a g0¾§¹{»yôQsö©¼ŸIÚÐÜþáÑÏ`)‡g?#>ÒH£âM¼¦B|vDhP–s³ÓIÒÿ¯òv‚aûîvz¤Nœn΂4WÒ«i·‡B}f· µ[¢õg¬/é?ÔQ—D‰l {Ô,ÎNªŠL”ðæ{a‘P‡ñ8»i:å§ÚMŒÅZ™¢˜+–yÎJUó/«`—mÇÃ¥CvÖ=ƒØ6ŸÑ,÷ÄóÉ$Õœ/y@åù²?þÔjØFYUŒÒF°ÂL@Ñwß³b½þÎàÀµ ’Xá°ÿþ±ÀzÐ1<Ê<èÔ áeÁhø’¬ØîIà |JÏéÉPé©‚aËJVüK¥®K,%ø‘ñÀ›¦;$øP(t¯†!Œ_Ø„?zª&¼ôú‚‚þBè¢83s«¨3Ìù`)ÑEG“Ì{X!‹Ð<ÕÞ’Të I¨N·I÷<°1¸Úq'­³‹ŒÃÁÄiÅS¢4ótp)GcÊ;P”¾º»ƒ‡Š èà“­û„ƒ#ÁŒô#[á–¦#«éŒŽ„G¸QjÓb¹©!‘ûB6ª»'Ú‹Üp:L°—Y«ûIÉÈ<ç4þØÿìqL ¼’„ÆÇÉÏÖ C*kp꼉T$šê+)Ï;.cÍ—gg`$‚¬- Ù¯]Ë÷Lº m{!¹¢ ÚnÖÐú ¸Ñ6íò –•w<ì"V*¬nºrƒçý/# @åôQŒbÛú‡*ºN¬ÝÓ«èขÎOíÌ/+S2SÁ8v ñm¥(=J8}O-y¦fÎ?ƒfNî3áöÿ‹Ô¶ "µ´³IOšãe£eæ½8lšâ®)ÎËK¯pßÔfcrÐlçVe÷Ñ™§ELÏbž&ÇHh,…ˆf˜ž-ã4¯äÜpݱ¤Í]˜dÄI$ˆHöýç¾!J"ÖŠožÀËÔrg§4Ѹ–˜ÐèÊ䈑•S­¥”@ 245U(pÓƒp#ÍÈ–V°@rèFæ-’ªV3H¶½‡–j´ÀœÌÙÉØŠ ²ãŽr9!=a”²SebmíL¿5&5nÐæÅ·VÅJ«]Ï\W¯<^Ôc¬ö:°ñ8i_S&¢'@V„í$÷~¢%ñ©‘*of¦jdÁTçÆ2¡®ÆZ¼ÕJܘ_µR"!Ém'Ð}›ÉõIj…Q†éU]Ѭ7ÔpaHâáëlåY4j}µí¡43ÜE…O³±Ê¶LS4{-â÷}à b3º4hËžHwƒ² ‚ës !âdËJàG¾ë‚^ëãÍè&Fe€Î¿Ì ›†T;NNÓLŠ,\e'¿ô²0–J—k….½e¬Ð5HÖülLh4ç[)åøWM‡©ÔÊ=±‰cñΛ$::½x(ã€nèML² ^`†­SÅ©P-¹zrq¡' ¦dóϓΜ`ÊÙA€«¹~‘;.íÇCõ­‚ÙÌâ‡%U[‹h\^ƒ±Tú²2“d±œX×Èý9_aÀþ+-†ÞëAø¯Ã®uÂ>umPk`ð¡}0³I¢‘çæ4 fà¾åPþD]jÑäf9¼b¦½È“DÙŽ™¢½3šOѯÔ@ɇ·n\òˆwšïÛrîÚ9@ŸéÙ cýz Wï_9?PStÌþÈÜ^ñ¿™uhåjíòâÊîBkVmÆÚ”1»˜|a6°Ô¨›¤e˜ŸÜ°èª,âö¦&ðHïÃz[eÑnµ¢‰ê~"½ “”õ3 ½˜ã<ªþHO›fWÅîÖ÷G dÿÛ OÆ@pù€H·6ncª6r¥í±ÒêE ™UuâV£nk¾ðŽ,?Û—L€VØlr­œLJØwÚlÝíÁöà¸mò¥¦êQê)ÏÕ©à‡°b£ñ`°v|H<’•‚\>2«ßH¿ËÐç+ô/ÙãªP¥Å#>Äð›HèbŵÊvu\{ô@DÂ,Ó .j æJ7Ü@™Ò%)ÆÌ–«Ë£sõ¸” ¡£ wƒ#že˜ï†H»©Šñ.Œ #OÈ{jÄ4W éþˆ£­~‰[Tj÷o©ºFSJ~¶*],Ò£Œ|k/2ìç@Í`¢{@‹ÃBšBæ§}\Äp&sÅuî½,Ë¡ý®ôR—œ"·UªÐÕÙ;ü¹ÛßKa, =yRésL4aÖWõ€éà}…”jãuÇZN8Y~A†¶ ªQšØ_DR–Œ¥aÛ„ã §³µÒ¡ºÖ¿áЂ6ßMŽÂõ ™ÒòÛ¡ ØÖœA›D¿“@D¿¬î‡Gj×FÇK9Ë¡9G.‰ŠGE(ØeQõò y>\«È?gI0ü¶ÈÍpÈÖ§óê ÕÉCR0¸;jŒ­Es·Ç<ða5¤_®dïq-e¿]*ô-m <ÆÄõ]%¨-„­•! R›“н VöMm€Š4¡>ö¶n†ZÌåÞ¾‰U”î´|tàÆø˜¨Ï;‹ñG÷L4lª\²´c”ÜH>አÏ Ö­v܃9Øñ<ݧO$7î[¥± ÌŽ™…û5n=Z·Þs i§³û*¯~ÝMqàÁúº…‹¥s\¤û(—jǶú8sc剗‘µ>xÇ‘%à ûi8NfœÞ“Ï7iF=ãŽ^úsS,éYzWÑOnºC+ÐY~âÒþyîë[ú%|S{z¡tÕ‡AY§»âš& $ÇæBsbƒ”Ür¼q|Ɉ’­ ’4©ÀOªªÙ}­ñÂéç%2 ¦è Ï&0=ΠÚÐ#xKÊö®KãL¦VdÃcÑR3½èT’'ü0ÛCµç;|Fi0hÔîokhpä:ÜÈVÄ1Šä˜mcñÆÖ lú¹„fáÉC€ ¼•îû¥øŽú–îKô÷Ô ¾ñÆî:‰Ü„mЋ•ñH²«bücþ+=Šë¤æÛò``Ù¹“ôìí`W´Óf)ÔîøUÚ‡€s‘£¯Í"Ú´‡˜~èòc&ôá,ïZð¬ºS½k˜†y¦w­H'EÔ…R<f;~”YÐÉŸV5e=‚_™*Ò# È/½çÓMô±žîÿÃðMr=ØÆ5¢*ʳÃ7è§×æøðMòïû‘3°•F®#öŽFgîÏ“ØJºÊm…óRÕ“¥£41œ¹¥7"(Éãcfû#ßË¥ØMÄ8-»/n |,•5<Ó>½àrôÌÄÞkëZàAhÓµuzáq6uÓkëÁÃnW§=P› ÍÝÅÇ?PÂä»Þ’cwñ9ÂP©x‹P†¸7ç óćŸ‡wÀ]šûP*âö-2¨‚Á¸³'¥…½[pGBïÙ’§\¥´ÓæUÒ¶uüäa”*½ê%ß¡Bç9±0%²2×ä’î0tvgê–¦[ãùŠñIñ㟂W­ÞÍsyÇËžÿuA åå7nñîŠ:gbZ>ÏÐùwxyù¿kh¡ÊE)S{ÃŽú¿J}ªeþèæ5 åcz0±…°ûÅáQ†Ãavõ¤åžƒ´æïJ¼à$‚ª/aÓ¦#rÁbšgõ}®ý7œ³$”ë%̦± Ö‚Í¢thB!KlÇ äæcÒMQ¸Žq=øo`jå¶ëÕaHm&^*ÌZÞμÄùþfÉ‘Zý8½rîfâXÛÊTÄ[Ø W7Ö®¾¹R–Û¸¤>’4¥?ãÑç*UÞ`Rp‡¾¸¤ð(Šb“ò_™8¥g{±(eد4E r˜>R±¾@z“,ÏÒprÃgÁ:W»áU4ÎLBÆúT6˜¿a"¤»/ ò'BDucïÈÊÎù¿«Lt)/pŒiœ:¦âë3H"ª2ñ—qT©òX;n_‹ÅÐ¥½ ñ2#ì]¢·^izC)ü²|웹Èa5oådЯ+Vb&Ù`½Œ |¢§æÇ’Gn„rO›s¯.gM!ÄܨYWÆ/±ú¿Ü\üüùª¥d§endstream endobj 877 0 obj <> stream xœÕ][“7æÙÅØ7ÎRÙA÷ U<P\Ì Ž×qR¬½Žw°ùõtKMK£ž3g/6T|<Ö¥Õju}‘ò환ä™ÀÿÊŸ/ß<g¯Ÿ}ûL¦¯gå—oÎ~õüÙÏþ¦´=‹StÊ™³ç_=Ë}ä™´a2ÊŸ9¯'éõÙó7Ï>?\žÃ :ëWégtA^-_¿6øEýú¯ç€)ÐtJ-'íu€iŸ_Â$o±µÆë×ø3HmÔáýù…˜‚7ÁÊ<ˆ ‚r!Õä Œ‚?¬q2öwìf½ ‰NømœðÂnÏ/T““Âg+¢Ð‡¯Û橉>¼2|RB¾ÁZéPšZk£eóý͹ ÐA>áÞÀpQL>`Mjk½ò Qß+?ílóõ 鈰îð1Z{_¥1Œp*4+ =ßçž vã{è©„ÖÑ7kü†Pòg·ÖHlýœŽ°ãKãd¹ïÈwºʆ—„”L¹S3­ÐÜ4³_/K{‹œ’بiq“÷#‚\>ÐɯÈä׸FIK‡_¥áÍeÞkÃ<‰VÞ¥¹qé^¥(hÊ© ˜< çׄU@TÙyf$NªX‰K#Nøëá"ož>âó$Iv­-²Kÿ–ðûõù…vzrJ5Û»-a ó^e¸—±ÙºüüíáÀÁå7œÔp˜Î/¬6“‚±‰Ó¨)š‚iÍdµ2ç© ¿Â~Ð\º©D^‹0¾Ñ;‚ž13Ÿ”Ž;´ÖvxÜ=öôÜ\–HOÙÀ-ø#¼ôÝä£ ý>àg€Ou4´sÐ(‚né›l¦ëM¢j8Ó/ƚΉ’àÙÑÒîÈ7yn§.1ÍVúYô÷.A²£ÒEÂaëÓ¶Q%–Wi¢·t ©êíŽ/Crª¶F¶TíSRaN›sɨõ–µë´4É¢ÚYÔ ‰:BHX;, B›Ö~Ù[ÍÞ–¾_~Þ~R[jýãØÒ*DÎÂrXÌ]ˆ#!Âͯ'ƒpûUÖÛhÞ¦þ0@ggQÝ Íj;í”l¬0Ç©¢klí'«j“Ý2˹aIèswÕÖ–c%¢qÑkµXŒêD ›Phü,“UÌÃÍfx¿Ù•@e<–ÙÄñ” =LA]#ÜØîyFFm*@lQ€œ!"£lòDM!n]\‹­Õ"Ô¾XŽ2KQE§‹·´k»UÍNQ1$srM‹¢—¯µ{½¨Ýï—¯G4°S”nödˆyw…ÁFi…"`8Pm/•"ƶÅX/«IÍ)zY&¥¶©—¡‰´ ió‘>¦H… %ÑÓw8²nÙÉÉÞæÖZÆ5ä—“—­&£§°Çôøªe3çuYd§£‰ÓCöŽH´s²¹‚_\ål2DC‡ëݘä LM:+Ü÷ëyƒ’£'­"Õ«_e²eðC--‘§–FúGÇ>F`äúا½Yë뉫Ñ"çŸ<ÙOÖü60Îk•äRœÿd5$9i%´]Abè>Q§™“ûçÁ aå™|)ø}AΘ"È¢gh’ä²åÉ›dPCÁy¸Ö+Û§¦STBê=ÁƒÇª]À€@´êþI¤£I}DÁ O’uIaxé©Z rëÄ|ß ¥1¯–PÀ*ÉG¢Ø`€3aL|`’¦ }4n#,`¬Ç¸-©KM,oÙ),€Óè¨M¸Á=½ÅTÈ~h…,­ÒÝ+»; ÀO\ƒ‚J»ò&Ïí¼ãôy]ÎÄ~Èmš–# wŒ n™æ©æv­Ü´˜}u—Øé¥Gç¦TDèiEÀrº{@OìiÜNä‰"=yâ0ÞnÆ{Ó‚ìý'·oGâ½yÎXä9[kQ³Í¬èÊ>‹^;’åÌ–NÉu„Î'Óº|2b“ÙØD{÷h°3ØÉ¹øqa'®òa 3z®¦0®ðÛy齓A'ôC/îk"VD€:DO¾)P i‚;Ý äÀÈ1†Q\ ç¬u9ül}—ܲ¼F°z}j|2…`¹°˜¦öà£S0çžÔÏcBNaåÿä’e|"ÈÉgŸ 4µ:‚ÐJ‡=ÍBóm—\êÃ2ËGªLþ '‰ t£?V!¹’²’éu~C¹K”YW/Jtî‰êʈ¨°´œ5>‚{¨Ø2ANZ‹'ˆ._‡ 1ƒ˜Ç­È½G[‹Ç”Ý0µ¨y•ZfTí1Å?aŽ„uЧªÑÔÏIª:ßÛ ä8¢ëRKÓý»b[dC°¬ðÐÔª¬ OÇZj¢%ÛÔZc'à `%8B¬ÈÛ+£æö‹ÑTÌX]˾ŒÃØØuÌÓX5)ßnmVpÊ mÒqWúùh…‡È»·ä¡›=._ãÈÑ&UT¤ŸÒÊA-« ÆäÙ i…sA ~Xo='†Ì5yÝIû"”—y9ÒR(Q“K}žóˆŽTjÑ)DGZ¬!-ÊcX”Ĩ•.-Íäåé‡[K\ŒÿDÅKý”ƒúk Ðb^áºùݺ„–¯ä4¨ñO$ÒQúJ"œÈ ôÓ0ë A>ñs’Mô6$‡Áå¼=+g³*[æSþ.(º}»Îœèl99Ha¢¢`:‹}!­uï;(f=ÙfD©NJ·o©Àî+£7ìôБù,_ƒ0ùÚW™.?hÙY¥rû‰ŽŠvòØ‹ 1*\¥Y >|Ä!XƒÐ›.BÐ*-Êe\æJœ’âéxÓ‰Õ¿g:g·^‚QuôuÙ«8ÜÎ9þ“·³ ú3®ÿ\ä ùlê~ 6ª#m˜‚žŸ¾ŒE´€]ØcÑovqs¨BƒMŵƒÁI3’Ôz€ÃðÓšb¦»ezN‚ºi˜×#{3ÚчèÒÒL]´nÎUŽ#žƒ•‹“’JS@#Ú.ºšˆPµŽ¸Wt(d–ŒRq›§hÑÇZÀ:l<¨º§…×ÖeH„‡8Z6γ5%ß+µž6pÁw¸|n@=cÙÞä1Dè«X`#Ðå$îõXq:™žëŽªT [[ÁLÊE¨¿Ï#Ê‹]¸&ñx3g[G7ªN䟫Édá ªaåoÜÛ´•þäÃ…—]ºíbž¸éß`+pdt«8œxÞðçUý>Côž”Hž"Á ¤-eýwÑ âfÖ¢œéÑÖ úAJN^q™ŠTdˆUþx¨k^‹æ=ÒW Ù•ŠS]ŒÙ.ExÇÆ³?»“®­ÛI)ð_"Ø®©Äå^pGr÷¦„gjÞ‘8/»Ê{!¦Ð;—­à–)öפèÙ:c|æž‹Ëô0?nXÎH©vN§Æ‚ýP\g6ÌÞY.tÖùÙfÀþúöV!“w¬ †dÿøìùOÑõ]ë]]xؽ߽×΂¯·9 ¨}µã:ð®J¯¦(6“¹ {/‹¥ V‘J,ÖÙ,6““«íg¼•D`D$ûÛˆ÷N„½Í÷WñŒÇ«¢üŽ..ç¹»ÐãgúQ¯Wñ°¹Ðje _M-ª2(#½ûc2 Ÿëâí<ľBªW½:=8r/¯âR,݆k™ìOvήÐC½SšD~{ä}p‡>ç‹&U ü„ÝŒf—WG9²öÆÓÂ(Q\å^ãueŒ ÿfI°Úö¼c–B P»ÊS5¤=Æe†ý˜ Fà o^Q¼ÍBÅ™ÂͶ~¡r¤C¤F`Ÿ¯ x Ý,!þ/‡›PéÕ‰GJ5RʼnÞ¢öé˜uð•ÞÛ˜•o’T •„פôøH³rU ïóƬ”vz¸Fê­à Ax×^A,ÄôÈ“ñ/ÞD¥]z…A€rH"}»|Î-$ÞQJSƒ7îÊ !±ªVþ‘¨ó¨n2.Ò"y1X*©ñzq)•ôðýðü­`6'ôm.Mø]ú¢tÅEqÂÂ_³À”æ—Såѱs©àØ [/)}N¶Z/Ûk‘XíìØ¿H‹ãõ§F ìŠþsR1Àq™'—ááe{ï¡“qWF†¹7ÓÙ2å#>èÁzÅ%ÆÁÙSŽZ€3ŽÜ©-F3 ¼òa‚­{¼Zßë°öÀìXVñ°éq”Ð]˜-•&ÜýÑ27^%nuK¢HúAتØÈÙ)¼+ó*;ßÎÀìr?ˆñš\A_fi• ̓èfóÚCºÑ Ìv54q±A³õ&þw¹ÅªJo+e$ÀÓ”n3m]J2ë´~Þ~qiîÉ=‚侦!»¡Ÿ¼Z@œÀ1å?uöÖÁ»ž/ŠèNÔÒ}¹Šá%Ï¿éF7 D:%€£`]ÚúqÿŽÅeËûÅ|PÑ,¥j ÆSÈÄè™§j¼§fkYnæbuË„…JæÌÚ\5î@óÄÕx±<Òë›×Mƒº_`PÉÙÀŽuij”™Ø,áÙ°¤K›!ÝÑ·Š3ë&ëݯî=òî®éÐïjZ ˆcà±  ±”!ZËfZ×ïþef8òòŸ¥ehdŒ“ã´©†vV“´i²)`™ ° çdÓÐ=™c(ÍSðnøà¹ktMéÊzÊGÐûÅ žl&šJéÝrê˜þ}1Þôáa¬Å×:N{Deõ˜–”>–̱T楲ÿýª£ê—K€ôË>lú‰nRUÑÿsrX@aõ…ÍIaÄ¥ºdUŸ§"(h×§.U´“·­%¦ÙŠÂËá´VE¶"´X 7§vz\Øh"QÒéÞD«h¦ØÅcÆÐü6/!˜]Ïp}D½ Úlrmd‹ ¥P3ѽš ­S±º-,q¦3SÀ¨¶`^ÖzSu¶—õ Ë:!Ù#‹ª†±W} ‰¤äü3.Ž3-möTž«2ß'9›ÿ\âÌí†ëœZ4&Ü[jÛ»g^Št}dŸf”F†>P¥`'ºgijÇmÝUn ÛDõWó×ÍB7$G?ÍUÚÙÕK|iF3¬ž=‡L”m«ûJ.šJ'%*pT+º9žþ¥|¶œÒòt@¬=@møÈ%G–ïIÎö÷¨Àé\½6„Çt”üµÝ.îÃÛó9çŽÀ-ÎÈGÎ9æ;7\ü´«N!‰zèæ2~ŸZ[atoK|Ù*œ à|„¶ º}"óü;¥yV^%6Ž+—–4©”¼Ëc¸í\&61OH•ÿ»ú nÍ%—Kî®›±ÏÝ^œ›×çsûÂÆ#/ãvO—“²tZV_Ƶ;¯«Ë^¾«ù¬¬Î׺ÈÑ)èäHrp×¶—e½Ë®ÑðZa39¹ÌâWXÆÐÚ]7|± dY)§òîùóJhÀG ¸ù`¸ÏRZœòð—s-SŒ$ÕÈ\Ô÷j‚l>_‘!èo yk-‚*É/x ”2æ¹Éx‰Õ.8iç~IXK ï›<´3sú·4=—Iæý7QÙ•Jà~¦Ž’ ÏiƒÜÆE‘gôõBa©&Âîœ'±ŽX†±Bê!’àÒØÚâÚü3Aøÿ¸…7 6%„«äU¶¬2öY×y¼g v¼#t{ÓÞàz¤â,*Ó+ß«½¢–œéV“JÐôêQ3øj„Ücæ~²c~Uí-þµê2nˆg\Í4¯·»TCÏå˜@È(â~•9¨†û¾£ž–¨½ñk}øîûIy úÁå«‚’4+‹lýìýÕÇ6Q|„=/XmŸæÑ­ƒn@‘ǰỢ¿*…aSØë2óåJ_" ]øuÝ*ÏX&¥v“‡Skwƒ4.²°ç4‘ï:à4ºµtlŽqä sµ½ xÜ*ÅÇŠÖI ²Ôì6`zÕµÌñ74H´.ºy_ûÄ;=â?¥òÿPq¸n°ùq !ñ7 ËBý‰íóüÙ_á¿ÿD‰¸Aendstream endobj 884 0 obj <> stream xœÝ\I·¾Ï¯˜\â7^‹û’I |HŒ¹Ù>h™žEÖH²äǧŠl²‹l²û-óÛÐAO—b±ê«…Åþîœ üœáŸñïWwgìüæì»3ZÏÇ¿^Ýÿåòìùܱs?x#Œ:¿¼>‹cø9ç|0çÆÊ[y~ywöåæýÅ– J3Ïäæ þÖV;'6/. YJ«âŠz`ÌSö‘EF¦9æ6·„j:_Ô3ñ@òyè’:ùÃôö©Í÷@“`Rz»y)UTØA)é6?¦i%Pôõå?Ï„ƒb „ëò5eî«öYP†ÐMÑÍÞ“Ó½yÇõ66;øwš|:¸&]l×ð¯$/a(íOÚ{c‡H™ÖàîŸ!¤¦z¶MüØ ˜‹{ÙòÕ6Ê¥SÚÆaŠI:LB8ÏqCØbÆóUB d¢f AÝD2˜÷e&IYÌòÜ_]T¤TH§ AZüù–‹AkÍ㸿&Ká9=̨‘Ê[TÜr`Ó["KºçÔ ¦zýv”VÑÔeem…KYçØ€­p^Úƒì:³¹œD›ÂÜÕDÆCêŠ3°¬%fA ©˜Ý¡˜éE-nÍ4UZª9=`¯Áiä¦Û=1ÈšâX3'fª¶‰˜!Ìqþe³V Pxlîö1è›Is3÷ÓΨBy#É\øÔ&g¢‡ Hõ6‘]êB [Ï*eeLÂ6úòŸ'¡X|5ÚÚ†@£ô¿î0nWc‡èé6w07ƒ6ÁÊYz2ðZiA+9/¦•:h¨˜ŠWhø|/0|u¡Ágf"õîqÞ ~=µ÷й ÿôI°xÃC;çBð&Ð =x˜6­óå /Å` éþÛO³ ±¶ …Ú’©úz¿Mü.lÂà¶M(Ÿñà§–Ú÷× îˆù¹'æ‡Ê(Õ*Þ´ý¡pdÕPjOk•¬2ƒ›?#¼S¾tWèïö-¶Ü%`¨‰.vþ›‘Q ˜GʼS„£ÎýmÉî0KaÏ®±QÂ!÷ Ô¸º÷¥?÷ñBƒ´ Æ)³éz”ŽùyŒ§ž‘ÏbøLÙxøŒ'Ç&ØŠëHŽ3¶q.¡õ©wIMUCöB{{š¦RoÝA”ádúÁi™ùž?ñt¦àO“z¶|ÒŽæn02r_„r á©‡Ô A|jo#”ð÷®<ë*èjÒ‘20¥‚Pp¤“Ü*ÎOJÛ%PìG „ 3A š}§ȧëƒÑ—ÍØ ƒS§­)QÇ·áÙ? ‚×”½5_Й‰’BÝ]:Kåãæ±Ã¨… æ}O×׺¥§ Üó|Çé)È„yžº”4"¥¿oÉ$tš·“ 9ˆäu*%£Âpé$Á"ŠJ'p»ÀôÞ ×½OÛQ.öò ¿³JQŽÓǰ)9òp0¥­À]Ê]vYæ>“&$.Ç*1ŠÓ©Âuý_Ëeí€ÇS8‚êžîQ½igŠ:&®í/<æl Ä' k:A.%ƒþF»àõÀ…¢r_?ܺ®Ü™²7îÜ€mO‰)WHÔvE:KÇï%á µõTð*ÿ0AgÍŠ÷I…ðê;öêÔXî1Ïî…Œèm\Ü1QåI)áŠÂðó)!]‡fR¨ÒÕD9P3×òn™ï©v3íÑ´Iž³3ÊÕÜi§d†S¤`ßKcÌw½¶¦å½¢Já÷Ñf'gÿMí ¢\n:.’ ¥µÅ\÷íõ¨²ºez"ni¦&S¾)Kc¾ü«V¾W¥|/üÎ÷ªnZ¡‘æEÕºj«ÅaiÞ%祑ª9üÛŒvÚg–ب|ÃœÎøüìò7{zàÉcí§+&ð¿§K–$×´lý`˜äuþ9ãÒ°Ò»º™‚ñÝðQx,Q[,á!0PüdI1p%Iˆ[•;2úÅ­p#+ç[½KÎA(»y€†ÛËuFôsì9ójîÇcF\õ„¥j¥mÒIFƒ+™mGW ‹Èú®Ü†0 å–3‚›Ä64¯†|”B–_ȽˆÏzç¢i-Êv@•îg’KìŒw€­´6=YÌý,Ž4®Î!Š+VÜ’=Q\ÃÁ­àƒÒÁ®Ì ¥p‡ Ð~xøë_.*¡L1ÎýÅä )¡¡Í)±Ñr ‚ûlD"¸::3ˆ³ˆ:pÂV¼KYJ âÀêŠö$ØþOˆ*lÄõ•]ÓÌ„ #yÃ7lámôL-‘:‡e?FQ@g‘:ˆ‰=EäDæmð ©è(î¸d)ÉG*î‡ Ÿt±/Öéw•ý ­Ý”™²c|o,ÖSo]Û»yíE¢Û¾’Ì»–èù«S_ÕÙ_ƒáxE<¨Ií`)_¥S¨åÁÜŸÔ4ì‘»TˆPG‚üJ¹Ž\/æÌÃêNÓ¤߈ÍrÅH¢éW=T޽AžV0Í€Î(E0 7)™¨1­T‘Zù‘/ ¾à’õî+•Ry¾Nübk¼g¬R šHz1éÂmÉOœH›¼k¯Ü¡¾ÔGÜœ£Ÿn"´.`j¼‚WË}A躆·£ƒ]:3#•l30I¹òŽÊ{ÝO:,'°²ÚIê(æð’OÏF3[fGV.¹ª¤D[–wNdˆìçR•w[ïð7ü’¬-Á 6ZIpvNPhægá'¸Sfe%Uã%«Ì)ÞÚ~Ó>Qšš­ªYhl²¨N°‚XáϲxrÀ_‚î4n5Iª1V½!ˆV8Nc|æ±ãü%Ën¥aLÝ)ÐB_‡#ûy+ç‘áþì— uÜÖI‰516ȉDKïbzz—:…c‡™CôL 10ijkô0µ\nÄ ƒ0ŒÔÜ¢õÀÌ;ž”Ýr>õÝ¿Œ‹œNš;®* 7³Çj8Në8½N:ítí´s-à2‚w‘&íEà_&0«Õh-Àó³"¦_—Í©ûß1§x6ÚÊžŸ…³¸\½Žã¸â›Ï¦éšþ³[ätŒß¿Ù Ù¦µò›Éä ™ÒB`úÁªUó³¾–k›þp±XfÛ¦&HÙ³hÚµ]ˆ˜BR^¬Ò$Ù€69­òǃi¤©ÒX|ɇa’ÙÑâÄÞò”'gJ³ÛýdŠí;ÅMßèf,å+eÀ٨ŷº—-(ªa©>§"äˆË ¡?’ —%^¥¤Ëf¡iM¡VËèƒómlå _eù–§ÒÁ’Ž­W˾“ÁRøR±×ºSªûЖÆ*þ•&ÔNßç74~¼CaàpÁÉ\¯kè‚o{¥uiÅXîWO¡\²WªF¬›‘®ÈµÀ,¡GÛ¸)»‹»HgóŸ9ÙÁ8B¦cõNœ¶,_£™R·Nðu ê?¦X)©‡„ËÞ4ä±:z*'É~ªJ6°Ñø¦Q­¡´x<•_U<4§;¯÷”À2-ôžC¦ìû=„w¼Ëê ‘UÈ|˜ óEmþŸ2 ÷jÁ7“>¤[Ï(ÑBV”+ \½'¥XxW“óšAhub±, ©ì:q½û!ÒÇŒê92D®©¿þ =³¸]±,”@5SúäV_kð7}a…pñ~âY›âTrû™ïÁÐã%„ÌQt:jÆÆ!AaãEÔ8Köi¹ï¦Ö÷ËòŽ×ÂÒ6Ó^#p¶:ˆ†ó²b#²ã)fµ´øLÎyqœ‡€Kï/Ç´:¢ÁpûÉQO |N"FÔ“£…¼k†7$è¹Ùõòóõð†¾$|û!öI7*Q9f)™Àb]Óü‰âìilß&Å¿6înúþ±Å'4”ø.e¬bÍÂñn™‡©õÕ>"£íšÈhé@rýáÑ,N03"Ø îU{Ž~’öÝzMš[èùû¸Ž…XœW¹-Á>1Õ»í)¯¹SæãMçì¢ÛØUÑ}DüŒô¯‹øXC›}ù™ˆÏž«¼‰”²éR?™IÜ#ÂBïµ eü6˜Él×bilÇ¥Lí•õ7”IrM³mû9áõ7Ú&~@”Œy:?O¦Ä|Ì"B!}}=A@¶(~öáq„^L(w?µ~û´áœlºx)2ðÎéÛXL¬˜¨ä!”›Å¬ vîÉÀ!ýdª$þ‹Šu:7„7iW;m¼í©)7ÞÆqÒ‹My[9Í @Ûuã!‘Ñ0­ïO†úB4àÐhäªÔêéî6ýw™ÙÝÂèÀ4 Á‚_ø’ÇUìâÌÓeh-VkÙÓdò€Tæf0 ­ eM;|“eÅ–º—nnˆuY¶ö>ñµ/Æõ.Þ¤`L`œ1ºi<üÞU¹xÌØaímô’LiΙäRµ ¶ ”æúümš¸„ÈبÊä¥#Éwú ÛÆÂꟆí964ÿÞ9í¶÷ªD[÷´Ü÷ýL®¨‚ŽBn­¥Éª]®¨"@œ=}rm×˪ºÜP¢¿`êoóÜ2!––‡Ðo2„Œå„Xɽ«UÆø/r{Ÿ»Q`$ûÕ×™©ÍÍ(0“àúOo;U¡bf¢5Ö½`¹ m7¬±ÒŸÔOÒ >Œµ;ÊiN>YÑÜ%›êÖoª TÜ©6P}G?„ãæYáÀX]Ö ´!›BHÏHá‹<%A]C²«ù*ÉŠ!¾‰ÿF¡B5í~³ T ÙM?¾3¡øb“wå!Ë?¯B [£]®"/!b]ýhÚü”ÒUBÿ” â­úÕ¹pô¼va`;-Äš4xŒBâ]á…”Õ³aI“·þ4/¤ÇM–ŽøO¤+¢ü¼¾fÜѶ7l×P×f¶*ÔGß`¤û§t§Û?®9]f5ªJ{_MØMºÑÅÐlý“€ûK7zšµ¾{õt{}",I~‹Øác®;¸0×ãg ðÃpª¼”_d`”U¬ºí”€•!zž¯zŸ´…XÄ3VF¢s£G ¦¾0b»<û7üù¡Q bendstream endobj 889 0 obj <> stream xœÕ\I·¾ò#æ–7§Ã}9ä‰ œd’‹íƒ¤Ɇ-¤‘ùñ©"ÙÝŵûͼ'ÄÖAÏ-6Y,ÖòÕÂ~wÉ&~ÉðOúûÅë vùêâÝO/Ó_/^_þáæâ·ÿR_úÉaÔåÍË‹ø¿äœOæÒX9q+/o^_|yxsSJ§´ýúæ/ð&wŒ¾)Ôä™Ä÷onaôßp´÷VðÃÝÕ5›”a–™Ãþ¶VIëÂs-¸ðiŒöÊn¯®¥—“–²I[íœ8|‹¿¥ÔVØl–ô[&é,/È¢i!ôeÓÜJÂò6Õ‡×ðÁ‚‚‰Œr:É7„®û«ka'í8ÏÈ®®à“Sâp3 &¥·Ù‹wqI¥äá-yü,eÄáýÕ5Ÿ˜Ñ@]|&­ò»È£ÏÉ,qAœå~ð%>“lq¦TJä}ŒÃ®¥S0N¸.)·q%£76Lóp…r&¬˜„ž¥ŠN—NÞ¦%áØ2ŸÖ4Oø¨#v0ÑrÄRÏ„ãc¤î:‘wÍŤ•á‘Jr\‰ýÊÚÀE)'ÇüáÕ:€îþÇ+XFq¥2ªp©'+äá9‛ ø>i ¤0‡ŸV©›ÖQuK¥÷“õ@û_/n~óeàYÔs˜z{yú»Â(&3CÀ&ÏÍ|bÈ!œŸÙ«R÷þJ³ Þ@yGâ˜÷ùˆ¦V2ëxÁîV2¹§°n2pøÉÖO†7TžŸÔŠ>Mwìå~q*ÂÁ¿ØLÛˆ:&Q’ Ÿ=¥ÂA5ïÕ¼³®ÞUÆ8þ]âf¨îiüùayŸe„ â57¥ã$Œ«ÃäEj´ ³€›q‹As¿IOynC¢Šc{,›w Ä.#ó!-@/ßEý[rÒÏÉý@ÌÃÀÞEfŠYH‚Mº#vëÙjŸ^ÆÑ*¸út^?Ú›DiЭl$x$Þ`q¸Ò±|£}ªå;pk$ß`O¸/ÊP:ä-aX½fáØèj…Á³xˆ»Ñš÷D.öÎ' Nÿeœì&×T¦tÉ XÈÛÆh%Nχ¬,º¬ÎHÿƒ( ˜ËÍ:ð1Ò̼ãMŸár'W3>|Ož"ü|»ül›sðe^-jG].QŒ‡xˆ6ÐÔãSÓ\(cå¸%SI‘4¯é>ùkv=Óu”Rp7bÜr~ÀÇ ízÜ)€28WjDɹ6ÄwäK¶@À5 U/@®9€ ¯|äAÿÏh`9¼’µCœ C¼ógÒ€ys8€tsv*{@ñR V`'üó•¿ÅIP­wâ©*gaóp.ÅÑx ðÆ»&#Iƒ-„•§Çq [ö$Ìr-€dÖGƒ•hÊ¥}¯Õi¸U *À~–± ˜%3V‘`¡Ü'ôú¸"çb§×_~ŸÔâ½ûEZ<¡ pn upˆP]™|·L}óµPÝB/Ä[ÏÖRh;YgÏi q¯:GdTs©wZBíaedäiø¹72‚ÓJ–èŸj·+2Â÷¤É’cw)R“4v–Úx Üøë´3Š¢/êý¨YýO­–!æ¹MœÔùÆ©¥–µ²ƒ‰Ò\^mÙAêÐáÐ$3`MmiüìÚö}Ý]b ñ:³õƒýÑÆï3x17îoe¹ÄM ¾gßOM"ß…Ý™l«ÅFj7b€xÌP! L¾O* 'o—èEÍØ ¾Eî§fÀº~ðG˜$¢áiž–\Þ#›L¢)ʃ}Ä•”·÷#¼×maš×-¦PóCtçœuùIü‰FÁBÙe°ï Na>«†ê…:ð4Ñ)™G?¯1»ÉÙšÕ®´v‘ªPlœÖjÓ€Úkß:õªnÑSý¨‚q‚ k€—¡GA埆 T†©Â¾JÜ3y¶…ì²HjFjS˜Ø˜Q—°m?Ëùól•E.«H'<¥u9~×CÓ)ÐŽËå9Û|ìau„ïb<ç|œBOƹ2QvîLyë€p°©!ZÊëNþäÿ®`Û\ÙYŒP¿óM!-ÍÿÎ|ñl”Ù ²ìÄ)³(?ÛòŽ*4£î¡Ìx°ëC’k:¨êq‰u‘ÍÌ” Qˆ…Q*Þ]ÓÓóäG¤s\ßõåê f4D8µÍBQ­%ç¨Ä¶²lú„m9ÊXËŒÚrpM»·€Ü4Ã…Ì/ÓÐHj„X•›0Ö6®uZ#Ì÷M¤ìuåüá1º72]ǀ䜈þ\3láÏKWs›Öv:·v!Š3²‚Þ°?a‘ øipHfôh 6«Q´©‚ª[œQM…ªÞ'.(92DaˆÄ@?¦í¯£éô3WšŠžFšç[:ʰ¤t!Mòç+¶Ùú²×èÍ”èÅ9¨‚lÁáGR”¨ *g©«’PèFñ6¾fóTó˸'Ç#Ü0Ç?XRéÁ,ƒ8‹Î$ôÛ|¹–RÓuÑß%±t/ô'ÅFÈî–ª‘œ´rtW‘q(”D˜ œÎ¼Àѽêu¹4Ò—gÅfÐkòV|j¦?›{AlËptòiG…±GŸ‹GÔ‰h9«„A°¾òº RÞ~ {4/gMæ¥YPÿ5R†õ¹ù½ÃK+ЮÃ@£á?s|Gp„aI’ômG `ÀˆÅèý+Pe1e}¶d!g ó9i}@`ž¬…ç‡_ão{‹ì‡òN>ç&4Ã4üo”£4ü6ú{˜(µb:°Ã¢éî±³Ë,å…/ÉÉÊõ45±Q_“!Û%å'ÁcÃó² rlƒš ªÙ”V‡ ú±TÈ2u  ¨ÿ¾rØ}ë»­=ƒ<¨.¦ƒÃï¥CïâÔ×GÚ2\·¨Ü¼J–ác=ìZf¡¯¾üf6/97QM‚ts¾ð7˜…ÇowZª $³DÅx"C“jìâÒ¨÷O»'„³€çGyÑ:ëq…Ÿæ!( h©-†z’²°¨6K¬eðÜ8çB¿¼I%U©y°}y% ÈÌþž&nymÖqöˆÛ2H”à} p†–¬T÷ Ž­ktF…‹noˆ{­@®Ìùœ±³"Â%c÷3Ù~#V)j?d†J1>lj!/ñ{Âã‘Ð?ïˆ_Ò.'ójøë»88¤-ærF…t,kCôÌHáœF½Ì@^ül Út¸®*Q‚¿ó®ð‘Ñá!@G2ý¡®Með²Ök¬ø©öc¬+p$¾¸’<ô憠Ÿ;g¼Œ¸B쪡¿'SÐ߈$àËîNLø8g°<,à K©õôÅÛ7’î+/´‘iº 6oã`gX“@8•=Üã`)dB8Ö5'%#Ða9¼·’­I_¬'è-Ž1ž…"çBã«uîqnÆöMN)¤Ü"3¦i4ã²Ý“(ù9ô{xgíÏt{KZˆÏD³`*t§ ‰í ›­ë›’Béæ' PèsÜiˆ3×·aÅõ`²•&Cxa‰ñ)ç¾—VžßS¥›Ã§Nù®ûq©¤tàÎÂïSX ÇÈÜžtu»Ü¾y·X¸†Ír;ʱÔ}T@ûÊÎRfOìÈ=͉ƒ"jʆ£<¶>$²¼7&Çsaù5p>Ds™½–µ"¦àLe~µ—â¤*ƒ}Úà–”ÀÌ W>F*”ïg&j Dÿ!¾iEÙeƒO…ßUU=VÍ‘ü<†x›XÇü¦"Ñ52eq…Ÿ¤%Iø…tÌ 2»¶Yüº¼Æ}aȲ§ìŽð¼§¢§b{•û¦¦Åͯì\M [ÍËH›Ÿ8h4µVŸî(nD²iýÖiø£?x°ô‚¨Ytáß?Π}ñïä]©„Õy®pꃾݘ®êö÷:Û‹ ©üôho´®®½&u©1НE«ÇÕ“<<ç\ˆö…aÐrÓÎ*óßq•+ôšzþÔ*×A”T•/tâjnOÞ,zÕ±÷±™ ÔI*í"¯Tù!–YE3¥±ûZß,Wh‡, íÙ£N19¡ja¯Û±{Y žv T_•¹íFÃ0.?èlèáý÷Yù J¨ë:²bî ±“^+°‚azFa®ùñšN²ù9®í¥==lÊ-?2\Þø»a'ýÛòU¢ƒM.\ ‡[0ÏD¼U1×êŽüAKs˜¬•f²s£5#êÉ;•§’Ž” (\äeÍhÆçî"Ûãœf¦¸V¡rw±·ƒ4wj”½È[„HÞ²íj° Ùܨ‡2H’MÀ©|6êÒÎF=”2Ò©!ŠàëóvÁ#Ln´íÒ[Q®ˆÅþ+â¯ÆÄ:Ó"6ŒGÛ†gAÁAàx„ †{Ú¾ÕkO1ªPuÖ~¯w!б¾)oÿd­ªKÅ鬙3Ú"ûða2Êœj¬S ýÇÕ7߯©þµ1ÇwmG«®ò>¤>u\DÏs; ØÈ¿ÖÍCmµÕ|ÒJ<ÙÆl©­Ädß’_)q<,êùSlsÙˆã1[wâ î^bŽ7ëtÊ¥û­q€Ap/œƒ¤ÁÁÒq'Àc0Y7Ë™-!ê¦wÅæ.ç'îtV~#«fI•0/ŒŽ¸æ{’<ÉC™©:w*¦+àZjæ#Ò-c½ ߘ|º^nù~ÔK8–ú‚Gâ‡%ºùÔn³,Xï¹¢6O÷iÔgö›Xˈ¸]H¬x¨áfÁâéØBýŒ d-„ì¨2Ä>låÃ'Xãq§ŽÂ¼`ê_ÕÈdMF-RŠ£ñ¶ýÓzŠál&¦v׫qQ^tèÑî}¥ó°¨Sý> stream xœÝ\Is·¾³ò#˜Kò˜òc_²V’Ê!)_ââÍö&)ÊeR’E-Q*?>ÝXf`æ­r*僞A Ðht½ÎütÉ~Éð¿ôïíÓ»|¸øé‚‡ÑËôÏíÓå_®/¾üZH}éo„Q—×/.â3ü’s>˜KcåÀ­¼¼~ºøfóå,)Òö»ëÀ“ŠIú¤„pŸ¿¾ƒÙ·WV°Vm^_mÙ ™÷Þl^ÁðK(ë6wÓx\°"E°Á96.ø§½¶¾Úò0b6ïp¥„fóöJ³›BÁÃ8çBð¸w¬ J–Íû|¦Km…mb°†Lÿíç9„X;„´¨ún¿Cü.Â'š‹oŒ©Ùr1hex|ê¯ð”`Rz ”Jå­€­µµœÙ(ÚjçÄæ‡‰¤t2Í<“Åx\FZåq%Í€3È蛫­pƒv‚oîÆY†ü¶2£¬Ž“Ó.°¶¢k¤É8:\m­2ƒ›?#¼SÀö[²0ýÝ^¢qDÇA¤’|ó€gQ &º8ùë8ŒŒ¢Ã/ÉŠ÷ùI™÷ÔÞGÆß ”ö|Ož|,ÙVqô /pPÂ%»µÝ½WÅ–®4H›`œ2›îGé˜ßGºu”4‚¥ü(†‘:ЂtùŒû4Æ…O«ÁÛ¸—0#1ÝI)óÅ„ßéb¤°¦%{a¼½LS©·™î Zóƒ²R4î§åÈ/®¶’x:Sð¿§IÕÕ5´£y+ä¾å@Ãó ©Aƒø4ÞF(àï]y×T›@²›ôݦT*Ïr«8QLJÛ%PìGà·›¹ Í~·ȧë‹Ñ”ãÅð3àÀoÈõi(3à°+Æ_] ‹šQâÇ·WyOÙÛó¦€Î()ähtºÿyvHZb~=€Jöp­[zšÁ}\ï8=9óé aô Yþ~$‹Ð;hŠ2ú-Á“ž+%£ÂpiÍ € ª¦ 5kÔ†ëâï73M¨ìe"ݤ¡ãh*QªÁÐpéqy°©Zã|8ú ­¯Lž€Ë•CÚ^ûž\4!±cË’˜ópLiõ K• «}O6hZæ¹ì‡É/É"°œ çèìJ:ñ\©â\åldÌBš‚w¢]ä@„¾VÏ‚Úx›†Þ•Ñwñ.˜•xãrB¢ Oq? Ò5ÈŒ‡é'•þt* ç¢JD Ši.-Þœiá˜À4¡A”¥Mošz ]¡ç¶4ç·ô`TË]d¾§,7ÙåXw©$"‚±‡wî·Ø1ʽìžBR7hñ¬ç<*^ T®NIk…Í—WIOуžû¨ &f ò’.}¥BMyy}3€—jó1°žyeP“†¶ V@QðëSCQHB[réS)•/î6Î  [èÞ$¦tVNO*ÙfàH$åÊ×øŒPÞëóç­@ ÊsÁÅq xÿ±  Yî„~°|td#û¹Teè-þ†_’µ%4•Ьø 5b0üDüælïÄY¥ãe\]*~€Q§ Æ·˜ ·\Ö¹œ§Xú”Bulëmù 9`*BU¤³Œ¹Âí$ìÆê·Á6vá"2»,,Ì–ð6¦Ñ@¶å'åð´šå·ÒBpj[¹ûªúQåî%øy¦ öÞÆQººãmZkø3Ü&Ò¡õ,VMÔݤ­íN†±—@-ÜNÌurk «8³º ð}¹NiÆÜ²Ks‹¶ '0ïx†"ËùÈ9¥g›€hŠe~3ĤU¿/lí4e „Õœ;âPm}PØ2G+îN&Äi:¤\Ù±zþ®j3»¯M[ëXêâ%øCxËsg0_Ç©8êA­]õÊÅW˜c7#€üþj±q¨ríÉâÓÆ ‚«Õ=9˜h9:^8Å– Õ¾àPºU¢$‡ÛZ5þx0Uè̓b}yJ-{[>ƒDípØa3!€Í]Õ|’`EŸ,}œÀ»Õ|ØôŠå•ƒ¦Âs™Leæ¤DßL•(a¨c2–zPNU~ÞšWø=`Ë5]®W0|g;¹S ½’œ< eöuȯCÆ\ÿ\VÙœ=õ¤û1¼ÏŠÄ9Nz>¢ÿ±ÂÔ… ùBa:@myå–K,êç¦%Ë8ù ¯žÇ;Ë‘É3ƒŒÁŠå-yL½‚ãìZ1@ªŸwZoÉÀ!Æ»“5fH18oÏÛ™E-¥Zô÷¡Zïò]pÕUmÒåЉj†«Nîj”17 ©ƒŒ=Ö2$÷Ã4ú¸äæ¢%¨gƒ·¾%|;Á*P’üi3“6XΩå¶ÜÑø³\'Å\™Y{•†WòG|6Þmˆ£†®m„:Ñy·ßÙ°P!¤›×õ)JflÙko+{ "#œ©:€b>Š LÚFUð)žFyÿž“ššMD1`KË–¶f‰H¯wF9±‚?ëµ4Û¦{™”6â¡ÅT•lDxÔë'(0ÉMr% “åj˜ÆýEc7ÙSRZ˜‘R3%‰ÕZFÊ™¡!;®ù2±E·†Ì×dÞÔ.Àn9Jàdx8ÄÜÁ“>ƒ¤[ÏžÑæW”+ ÌûM‡Oq7˜__/Œ:±ØÈTv¸Þ…ý+ÒÇŒê93D®©ëþäÃÖï5ª™Òg7öÂKjìßM<«óTx•ÜþDÖ{O0ô&$!ЙbÈ|ÕŒ7ŒC†Â¹¼çUJcNœâ"¼Fß-Ë;–À¥­sr¹é$À Û DÃy/²‰2ƒï¦@ V‡ÑýÇÉ1îÌõþr\4`*3]>7ê)¯ ˆÊQ|3Ý÷ÛI ^O£·§ q´t@†?<<Áfˆ€ƒ ½w’ÑÓ¾Û£HÃïžóöŒûX®x k `ÃT¯LQÖg!*2>ç–c À®Šî#b ¤ß¯6§“€®ÎctÞWx)eS5:cžQ0±é½.A¿ ˜7 RŒÁ;nejÙª>ýn(“ä:Ä­Q“÷ô¨êœ% ? äÁ4‹ŸU§wˆ«Ì(#oAtZ—§ýïâN^ô+Øtz=t™Þ»ó~ð±â°óä* UB´¡{!wlÜö7ÙZí{Û±°&¼ð°UÚœ<QôfÂÖWÓè§ÅV8”±Yv*HÑj@Pîcï­b¢’ÂБkoœ"ÜÉ )}2±Pÿ*öüd°¬(;{ÑU„·ev8xÛ_!KSn¼‰ÏI/h¨;rš0ºëÁC,ÜЇ™šf†ú‚84Ucݨzct›ÿ\JÜîvMǯ?×/6âáìÉr{à,HçΓ BGd†ý0hünz˜ t/¢8 ÒX™°À׾ώ´‡Ø0x¥J™£ºî€ r‡ÅNÐ7êE‘7ê©õ®õ´I€¯ÜUŸºSèÙÈýLْѶ=ZIGæTe˜ßÚ+*ì5\6 ³7R†ÂGÌcž¿ð¡ ÃèÎ×V±XÁÞâË_ø1UɲX“›T?Ñ[j¿×!|yg2?%§:äm¦l^£ÜLE‡&ñæm:«tÊ}Ì멌P¦>Ú¹“*SØDù“è ðÊŽœ¼ø±ÐFÃ8êâÑ{:F’àwÉ<±Ású­† ¼Âwíô¢S…%¯| šLÚ ðXLAÂö(ò¢èò{›a½õ(%r;¾6û–Ó|©Ñ4±æ/¸‰€óêúmò‘»èœppêÅ‘3 ‡W' åi«Yáä7^qm}ÎéªÎßûB–y ’ñA.NÉa¹æWx>—ûÎ,÷O¾âÍêV'Rn3 3dáf›üýkñ3Y¦(™Ïq­tµ»jhc'Umø=¾ô¸Íû•ÎÆžÝÏøª¶ß‚õ õÛ›ø}¸åã´‰g¼l½œªê|DªÊaÿ¡ ‘CøÉœìf”>¦ÙüçŒt˜Ú[T‘ýœéžBÒîêÌ=ºÈ‹»È îÊs¾žÞ²ÐM‰®ŒRŘí„V;TÚé—/:¡CªˆG’ÊphïX¡m«e.¿ ‹ŸO±µì…/€˜^™0Y™ö7i W`¥7r’+Uám¤Ýé½E·ÓxX F O»¢Ç zŠGÐrÙÄ„óÊ“™˜ðYµæ- +M9T ÐêVëFõÚÀ¤+…™–6Íâ“Ц-f}÷ }pÆç®ïB>uxœ_|7”yw”ó«­þ§°Îàü*!0¶Ú›¯ÝPp#ªõ)2ûÑëýàˆrgë‡Ó­j…”˰M .æ<<Ó=¼KDé…4jDgƒU4RFÑ´óîq«Ÿ#§TE+0ÑŽ˜Ê Ì«gâÇûŽÇ¬o¿} 9ŠÑGœ"Â'g9ßPÝ:Q™óëU3nÁwÏpºj…åö7ÿ4zÐÂ.­“%¨³¢ptÆÍ‘~Þ“SíÅ¥ë ,µôtÿ¢skˆÔÍW¢¨|Ê„èƒ{ƒYJ5í²ü%9< Âi¯ð5U´Ä^Rtœm»Œê»Ë,~-†7Üã¸Ë/ˆ€ôl~ç S(~½÷MOÞ>GYQ„éµ#>¤‹ËÊH×…ÇÛsrÚ­-„”ÞuR$í'.¢l@ËR\õ´À6îi¼Š¯` ã0¿X"è‰Û¼Çî ÌÌ`™ŠYef]É­êUó¦¡N¨±Z­ÔV°B]çâèÓçÈò1رùòâJÐ qìófö˜ÃoBœ4ƒd˜ ™b¼w.]é©7Oì5È¢» ¡Hï9Þ "WUO ÷Õì8§¹ÀP0À"I³‚ZàZ§ìBûØdEHȲ…Ïïå´éþŸß+ŒTJüðÙ½pñÕA¸_¾¸Ü*\¸‰lÓÓøøgÿíúâŸðßm¹òµendstream endobj 902 0 obj <> stream xœå]Is·ΙåÁãSÊœ`_R•C’ò%•TeáÍÎA)Je.–(Ë–}º±Ì40À,²“”z†0­—¯ÀïÎÙÀÏþI¿º;cç7gïÎxh=O½º;ÿÓåÙïþ)¤>÷ƒ7¨óË×gñ~ε”°çÆÊ[y~ywöõáñ•Ni{ø~zãÄáýÔú²Ùácë¿/ÿC*&é’ÒJÃ^^…A.ø „óh\°A)!…Q4àƒ@«dÎZž{H­E¤Í£´/¸¬âøC+ÃãÿÂÏ´ÕfwHfYP2 î2eÍ<“‡7ewáý 3ÚûÔ&­ò‡Û0g k]þ­­°Åà·8¸€oùáã aáSç‹„4íòS\€f÷‘ Ö¸¢KšµT’Ó¶çMÇyKæý0u¹Ç!ù ˜*†¤_ÎhÃ>¥z*MO;¡õáf¢ü)-¦ õÓ‡oá(Ü v㩸bMt©ô°èi¼íœÆUÇÉjxä3¡ÍÀÏ,Ûà•0æub'æŠÍNJ™fÈa¸ycóÕô%Žq‘ ¬«ubݛّ)k‹ ¥Œ;L ¢RIþwƒ“„ñˆŠ´q¼'‘~;‰ôU-èáç›ceþ#ö†ã76I7çBðxNæ²A¶Ç Z’m`iÍ’lKáÐ=‡;˜ƒ6ÁÝÜŸboæÑ(çܽÒÈý@ÈÝ9 ÿ¥D>ÛÐL¿ëIÌËB¾F†zEÖs©s§¯EÅ P!²F„ô..Þ ¹¼xا‹a~ ÃÚä'Ýäû¨¸ø´Ýî4ÑCÑ̳¼Ü V¯c+×>«R£[ª•O©â‚t–FdæL»¡áË‚ÆcİZAåiD)NÄJ&ͪ+Pûxç»8Uk»»ô;«Á”‹îc3×bét×\dUTš­{Òx•É5”Mu*tr•²±ÔÐ`i á¨PÑ%v¸ý1ÎCrß]VÉ ØÛs_Y§‘UûŸÒÅö ¼EX‡´& b,í¡èŒÃ@l¦*h«’ÿƒzP‹ŒÄ„ Îq‘åÒ?—,·Àãlè%ª0¬¬aʸ‹GqŸ лÜkT5`m@wgž¯NÅó#Pø)KÐúüÀ å62N L^¥¶q½ÚoÌIOuÏuSÆ2RðSÈ¥ø–ì ‘°7ãf`óÐÜÀJøÇQnÒ2k!ävv£§‘ØGi2ëµå"œ¯‹4ê´Šë¿'°‡Ì#Áž8Bä^eçÜ ˆÂ‚Ýä *ÇvõÉUìáD!ò(¥œ¯QíøÝ0W9)dvéaÊf.qÊwªà 0‰ú;n”E‹0—™ áQbÉ™~`~ä„ʬlt&$º2âfP€Co°S`ð‹ˆMÀAóÝÉÆ*®fK€õ¬%›#¦kJ~æÎ ñ…ƒ„Ó€½ð‡K (l‘ =¸ÜãÝm™^gïã@»„û^ÇV±`ùòL¡ùcB-ìLf§ BßaF¥ZæZQÜ&¡öêhz|¶d¤ èü(÷zí3â8¼rMkÛ™\h&˜þlj×TMP0Â_þõìò·_ÓxËãä{½šZWÜ0°ž›½‘ïËmïL€ç¶Ý;Sʆ/F^B!ž!Ð8xµŸk  ‡ [S¹r8=oJIÀYÍ+']mÛ°ÙJÙs±¾ –é¾ÞøR­oànw´=¨'AýÄùûlÔ>4\jª ì¬€ó¸‹3fÚ)‘(ùsÕøöýP¢Ò¡qP^Óßv -!ÝCuU bxèú[Ya•èa¾"$J}†ÄŸ ÍG¡Ð ’mÅ~E^H ÌVñÚæá¶1³ŸÁ.ÜóBÄzB¼­ö{lC£rÔÀÑö¼Æ\ö&Ùb3H'(9i¼²fZ"þŒ€>M‹IF4’*Ù”‚“YÄGy«+SSãÚä-´ö§äJ"8qYŠ@8@è¾r~ð/€-ž9&”µÈcѱ.gPXA§ ¶¤Ï0À,KCpåT€À©œ™æÝÜž÷qD:éf-$Q²å´²äÈ=05²(lçDh̼2Åg 04E±Òg£â•¶PÀÌ6(Vºä:!^×µÕÂf˜rÁÞà¿Þ ]•€‰T€!ä&Às»Û± 4Ÿ„!*‹iÛãwèEÃ!¢ÓÕgi\;(D \) ºk¯P±K„QâáY £*•úŸFŸÆONÍBž%‡,z¨Ùù‘ÊmÀÄVÈh~ÒÏÇŸ8kÝà´©‰ÏÂâÉU©Y;â[Áå±y•VF2<·“kq=µ~lvØ—÷¹ÇÞŒ)+Áb.ƒK ¨l f¢s»?¹ þKI]ìR†¨{ ˆ¶GoÙñ:ñƒ1XëÔ~”î¸áE ‹ âBH¿z¿TâwFú‚i(šo(Ç™wLuYÓóê'…çØ©fw<oåJÜ+!ô¤7°tLãÔÒ€Çñè Í…¥‡2‚¨m0û>šÄJÃDé4(& ŠŒ*¯«%·# RšÊ¥€®‘ÁçíB¾æÐ¾NÖ&"( j.@1hÐ)hÿ‡­¯0¤¯ÆToç)££53н´„_“€eRuÌ4 •÷ù7AÜ¡·ÔMq›¡œÕ7O[v¤ã!Óo W>FŠ^¸ú°à— Ø_iß‹&5˜&;ia‡¤§p2hÁƒ¿˜£PÄñˆ;b€‚Ã%†±]3„‰ó¯9œ#~uÜoŽ&‚›Bް໊Á9 ÙSm•ï ¨ìª:¶ù¼ã§«™€U[ú±iKI ÕÑuS¿*[êA…ðÌ\Ò¯4’Avû:êm4±®†¥MUb¥‚ej_™Ui?»ª6Ø-5ÉMwJ }ŽÒ´[Ÿã€ ÖÕ‹ˆ\uŽò}üTjÄjÑã›#UK£ Å»%YˆÈ êéf3Žð[o0›èÍ y2³‰ôï¢òþqçûîT_Ž1¿¬{†hcn8ä9WrJj0ÞÆ9íææQµ ×ê0Po a⢠zTõƒÚ}˜Ô.©xûµ¤O¶®*«A(õbð »èç¨ÓGwÐfk)†²0ã,õ€Óófsöz[9+UV Vtøˆp®m©Ì„lìSêvqSŒTÝ%ÓpÞñåHAI;ƒ•Y™o˺9Šo.rÏÍ•Dxÿ<±-¤må/˜¼’C¹O ®w¥LÅÆ¥y³5 ;ë)dà”Žã;Û@>8cŽHÁÃØ®ôN^§VÕL7ŽÕÏéÈJvˆuD0s·\Fô´ôL¦˜ŠŠÂp¥Ó½ *ß-)?Äv´4ŽNòÈPÛìE0CŽ4CÑÞH!Ÿ9]/µÿc±â°e(Éïu)KÆšl[Vt$›Typ8ÍÝÉj¶W´´ŸÁNé–^¹…ÖŽw!Ö]-øf`¬åD/£}ü¯0ìL8Å4½ìQ{Œ uãù4 óŒSŽ>~_2e™ä¹Pœ…"ì}Ï:«†A ÷ ¸w!,oX`c¿ g…—‘v³…â|P~–žåAÊËúÈàX;Pn³(°¥9‹+U/6|'ųIL3ùVØ ¯ÍòJôw²>€µ€(É+áè¢2Ü•˜1~Tº =cZ¹Ê€ûèú¾È@,,Ž­IñKC•¶!åÞçeü¾6?uÅ)Ê’»ë8+¼ðÍLk¾£-ß ?õLÕ†Sƒß´÷yÆ´ HØѪ°# Q oºŽVøæ¡p 8 ÆìÞǹŠGŸêíí]ò!Åê¸WΙŠû‚]Oñ^·¥æ¾ Ì AÀInDöå‚„“°âÀ—¹ë™9;–;'Öe»XXÎôŸ'U¹µº‡(˜è¹Þob‰°JcáM·‚ŒOñþcüñȶhuØM^*:­-÷6ÞG2Ž­„eÕÀùçí“ ˆJÖÝÔ²Ö(NV•?ïm²ÌHEJj?Ž— 7j¢Ç{2œíñnY/§šÌ^f ‰Kz7¢»¤ç›E!l1L÷ïv ±ªÅqž«$#bõ°ê¢gHbº‹ÉY±)~ˆ×JÍÜ?  HçésÞ­]ÈBƒŒ‰VÅʶK6#jH˜#’;FMÇRôå Ÿ̵7'«zvŽǧkd¨ ­³Éñ^|–|Màóµû5[ë ÆÝÚ™)Ì·­IQÍõ ˜¥IT;´£x{\ù'¦a*·§ŠŸ©A¨åPì¢û–íDaFzq2æ÷|ôWP&û¹d²°JsT^N€ŸØ]Ƀ3”e=Ù¾åcÛXÓwÐóº*‰ßánÓ„^§ÎïfŒB·LsTc¿2 ²h1뺂•0âš—î<Ìú3BOÍ>ºrôÄ/•Ùˆ<±3@¤§"O$cõâ½° }ò<¶:?Œé\yfkÍÆB¤ F3:³Ï¬ÖŽd9ÙÒ…ë}U„.^È]>(¶ú‡.ølÅ©`§Óƒ9UŽf+ìÄU> tz ÀUÕ è2»œÑN»·t:¼¸7„­Ê‹Ò!z²Ei)EΰÓÌ@PöÞµâR8昩àgé»Äž%ã-ÞôÅZdZ¢œ¶6MlÁG{0ç–ƒSBN¦ùä„)——N9ûEÅ5uXrdšwUriùšúßp/@7ÚµÚÊ—¥šc”û;¢ÌªJS¢sðLDU€D™¥ÜYe=¸‡âèÄó[䀘͗n‘‡¢ª á O鄊 îÁÜw¨ðÐn·•!Å *÷Éöâ]1¢ëBOUý«2]܆éòØÎëža¸G>á¶§Ò€“•ê@С®ˆÇ˽ìWG;P6ÿyF{º$ªÁ0vó4¯n–Gœ0Ý×!>¥ï?YÉ"nîW*U¹Øh Ýlqù G&ÅÓ/ãO®—ìK• ¡ë3rQ ¶2•Ÿ‡²Äq¡kÀ|ƒ•·OLy—Ã5…cr©ó¬èH!˜ièÈP¡”Gó•—úõšÛ(z’»SÖ/}ŽwÃfÛû}Å©Ì/óÇj´ÓÝŒú­Y¶Oï_Ï®|ç«íÃ4›RÌš³Kºy‹®¼r·¢º|ÿÊÛJÊ„ÁcByA¡r*Ú—e7Ðò~­œ|”ž3æÏÂÖ·ÂÍÍB1ÅËOM༬ª™¬5ÚXZåÝàd¿@õDך¾&i\¯–x!Ô„ËqfvË 2ݼ\5{mƒWÁÇa:Õãè¼ñô\ÅAßÅ)Y3ôwX»ì¸ƒëe\ç¦V8:]ELJŸ£„H·nߨÖnŽÿR«Ãë[K~eOêRõä®>M[bô@M8„GDÜa¤Ò“k†1:½)öù4 ßS–à,yg­zè°u"lö .M9WEÝrα¹l„šŒØôf_LŒ„d¬&!äQƦ!JŒ{ôƒ±´ÊñËXçu7«Ý¿ô €Ç–EGÕËKˆ¤­T]î@=Ü(yŒ4˜««QB±­îækoÚjŒ² e*×Õ¬B¡£/­BgО§O™ø}¤È®jTa—°Ç‹¹×qãèAÙ~yyd^¬êZÑúòÅWÛˆ÷ªRpª‹qFºJõ=DÚ(ûÙ-4e%׆ˆ>FÂðÝùåÚHü]÷"îz`¨y[ì¼^>ÏKß—oNÄ!¶×–Èlxi1´Ÿ6¼†om ¯ÁðÐqÅÿÎ}!´èû¿ø?&x¤‹ÎtQýØ@dK¾â WÊÊ1XàJð`Oû_) ¦ŸÁ«[¸òž’îsóñWôâb¶¾pÜ­ªþû16 5æX‚Ò]¸£‡çÎ!0Ç~Ó½³ÈÚRíJ)|AF¡À·N†qŒO2`Y|?Îê\Þ<®GŒ?±ûW—gÿ€?ÿ^‘H endstream endobj 907 0 obj <> stream xœÕ\Is·¾³Rù sóÐ%¶±/ÇØNì¤\qÙ¢/±} E‰REʤ$—ýëó=Ýx@w)Îx+A臇·/Àü´ƒÜúSþ~öúHl.~:’ivSþzözóééÑ'ßÊ 6qˆN9³9}q”¿‘éý ¬ß8¯éõæôõÑ÷Û·Ç'b0VD¡·/il½ AmŸŸkÜöަ½7ÚšÆr'¼pÛ7lùÙ1¦µö&noOä œ‘Ïò}nšÅFÓòÈg_Ь´»=³}ÆPâè]+?ud»+Z¡µõÊo_åq8î¯3Ø6(k·mãíöò¾“2i|Ða8>ñZ 1ªí¿Žƒ¢®' ލL´|ZçhgN„ £Â$Th(ÂpzÅÉ‘âä)k´ò#.RáÓëÌìÊg_ÿxúŸ#ååàU€ˆ^@ Îêÿ_1`W…¥V·&Z¨“Ö‰T$z2ƒÜ!ZÊAI]U ÂÅíûck‹yÎ~ô+Æ_¶äœQ„/I›è!*ÕИKÚOéSp¶w3öpaÔÎ.Q»G劶„dH»}Y`J´ðÖHrs ‚O8>—®ÂOº¬°sà;1¼:Ch¯1þaæ­®£Ö-})pºÎ&dxj§Î@HX`ç¼ãvNáäNÈQŸq-X …€åŒRÂZÜè­VÑ´Æ–i˜¶ÔÑÅ(ó6Fh¾†"Z;mó]ÂÊ[#ˆ$BÒ‰0HmX Á{Ìo?¢±2Bf•-«³ì;?Hë²ìÓ üéƒ%t? pÎdÑQF]8­EŒÑ±} Z_+"…#òß3¦ëÊhË ËlÉЪë'ß*m9ôÈé/ÌÈwù•pÒÁX¿ŒlähÄé•oØ”ï“kË=^?´mô3Ò Â›í) *K⛹¹£ýa™á~úIP°˜¹I†L‘K#´J5mÝ nÞh…W²ó¨D2Ðy—z C4ÉÜ÷{Ù‹ùj YÆ”Y…“—P]óÜw¶v}Ø·tjé Ép?/ $Ô(PË <ш•¶¦X3OìJ ±â [Í|û0o\Á®'ÕÅ–·n•˜ÉnwÎÉžÇá¥ð ;×hÇYt Ûé-è%û%4 =æ²2κV½¸ ¶ÁqŸ"_èC7Ȫ#ä†VZã»ýw:—¦•ß»|çÚ¬xþëràÁýtïÖ¼!îöŸ÷13§E„÷ml°r²7…òÞîßÂÉ«,ÖnpÒŽb}¿ ²Y.³<êhc¼"Êy»6ã!ãk±@gA«mD [Îc]a›ÖÜìöçesÛÆN ¦ù÷S€ß‡”¡á ãCg³iµ— Ú7ºL›sûÇ¥£pSÍù| “ØÇÎä ÛK#×’”w+‡Ÿ¹b 6 b2:pÅÆ AùÍ Ü‰:3Ïg-’”S$!”ôäï¥TvÛÏ_±éD?§(ÊmPœ%q%[*ëÏÉÏ;ø}Šƒih°¼ù2Ÿ@‡°ñ"k£‚ø^2¼8ð³tx£• 홀¿,_Z…á4Ë_×é‹:¼b»¼AcÇW_fÐÞµ§¼a棭²9Ú+œÌ'VÂ…‘œ¼,,C¤Äót8ß âæô«£Ó‰Y“P%^ùh• ^-NËiz12ƒì Y]âÓ)"Û~–†J²ýºÎž..ø² äþyzô ídÃæòîÑ“Ýü|$6_Adzcm$ÙݼÆÑ$Y‡iæêèéjõ¢Ã|ª^ Eö DþNÕ‹‹ŠæeEó¶ÎžÕ᛺àeþ£¯º¡Ab™ x™}6 ùwâ,¸%,&8AíBkŠÚL©'JŠˆ\³é›ÊÓ7l: L„(òZx]æ­z‘ÙÐdÚý$E—!šåÒƒHrc…À¦ØëÉ­êiæ1ìõHÞ2Óeö~þXöžXÐÀi·ý˜†°ï0õO낞™Ó§‹ ¾l˜ž ,R5á’žÁ„}kßà¢âÑ ã|Vg!ß™np—?l“¼Y¥aÚÞ×%lõ« ƒ¡ùÃñ=J" ¿‡’(XIæî"qšÄ>"‹)…ED-¬ä’žtÉr“mÖmÙ(Wžd›%®ŽÍ¦kE¡aËɲÄXú¢H0þÕ•±†:‹: XäŽnezÐfc(ÕÉÖFŒ¼f£Œ1Õ6 ü³¹ßÖ¦áe±£–5ŽÊ5jòg¼ÖÄC{½ño­×FlÊ‘«Ù•i³Sü ‰löYIwúd×EªþR£œÃ!ýj]¡-,eX¿¼[IÁxÕxÚQõÅ€pNÕmõ—‰»9•±hó…ä6¥*g'à¤â ˉ‘+øR9TNÁ” HIþÖt¹vŸŸÑ×14è”% iO9¶‰HÊZ¥=£á¢ZÃz%åAôºõ1R«A…QÌTäctÂDN3ñ1ÒQU…@ ÎGîd÷ð1‹ ЬÆéI?ײã•DgMU¹j³<·Ë‹Œ¡®Šìj‰ŸažÖ+äI!쪊å/õ®šÁRÕ룥ôZµœ„£¬ÍµZÉm§'·_¼‰Áçú[IÑruÇ K£êŽŠHOì\ƒÜ@YëÕ¬ÿy]½VáàX± \QhCºZ*ˆ…’ì<ÎR­Î¤S̰»Ìê×™:ö©=>Î'RbÝ×J58‡Œ°¡øœ‰¥l7MÏ bµò1köñåó†`3Ÿˆž”BBèÑK:çz[ô0ÞŽ’~[v\†W ‡ÏzÙŠ0‰œ‘…vU%ߎ‹©(‘jg†ÚO=† ˜jÔášù©VMfáBš_éuîî 7ì¡­rµ­ Ø:³ól B[7.šÍbåtô_ZC†äƒ¬Ö“¼Üjƒ’µƒ¿ÍÚc† ͪ ž­Z§±ªÕF4K}wøz?¦ÔàMWÅ8HFAvÇ(4¢r¶ú2ýû1®6"øNˆË‡Êæþ]‡×‹™ØÛÝ^Ù"»ƒŽl ¸£¸'^ ”×j²ó²d—þ)È™Q&§*”ôïÛ$˜ lp<ýã9Ü;–Û±ôÌ6TÇÁB½?F€$¼r¹ˆÌ eVÌ’ûqËYæZî–ó@êj⛃çp.Xª'hG-à\PÁV&L3*¨ÈÁÙy¶;@½,Í2‡“$5K¸ÖIå’É–_·&NGüwç=-[7FZ”ä1h{FK·ˆz pÁªYäD6 s†+ˆì•ïÚï¹'ßKHÙÖï½È0¤0½ÛKø©)Vè›Mwž³arUA÷!!KåZŸ©ÁdzŸ·8&jñ``Gçxú–×ê N¾O™{¡ßíMœ0õWWý* õ–í”ô¨;*Ô«&~W‡_UUýj·~*3(êûÕ˜i›Ÿ~­<Ô5+•@*,Àšž e0ql0~XÛCMÓ¿oÛclqèÔ% ¬Å1ÎìÑâH §;X‹ãÓÅÝõRùö}0–lÿÀ¾†£È¾ ñªŸ…DoKÝ |@¦Gk`7Ê+]žqã8ó¨Z+¬¦M@éÚ½L`¤ø¦—&I*öO+ú˜:/þºÎ~@LPOFF-|Å>ÄhFl‰õèÖR—¨Æ,<’at»k„Ly¡l¢žÛWòámžU¸/êì›:|»øÙ“i˜ü(¬…ÈýÀ“$ZÀl.©ÒÊøúš›cÖFãÌ#$€l#B­Ô.sFf `žî]¾Æ¡Œ [’…¸={n*E¯ëðªo꩟-®={(×Îwiþ<ì1P¦¤Ÿ{ÊÌ>ì!ØÑÞÇžd¢Õú'•ä=b0Sº³E^ïb°5þÏÆ`m|§efS)ÇÍ Š&>¤éV‡1ñí¬€‹ƒÓU»E”žWô‘®:ÎøÎp^!Ü®ôDJòž}äø—£(Œ’Ì©’¸CŒUDÜØš¿ý©Î–‰ñù*ÕᲤë¹ýåˆÞŠñ?Óê÷½fd~Ò ßIé_õ• 3<̢΄àƒ-êÈ¿lQµzˆEÝáss‹:©}¾r|<ñ!yª¢¯ éÌ,Ýk!Nº5()ís™[ƒNìukPQCËýõË(-lÀ&hIUîTÊBN€Ñ8ó¨R‚O  ”= ù;–²:áéšžaPRMuìƒ5=m´Ô²_{nÝö]úV€®wg¦ÜƒÝß,Ñt ;ÛH»»æÂ AèÍÁ»æ:R ®˜i2òˆ}„ˆúI!vB´#7šåé,íx9jùŽ>ÖÇüŠ`~/Å.;ñ‹Œ÷\RëŸv\¢H„ŒNz½™.|<ºIïJÆÿÌÞª)'p„öŽáªÔŠèÐô(œWUÞßS1]gæöU†&ÔȲí¨îšÖ}×ùòsfÍÌ(­¨üÐ|š•ÝM·ÓäEÆÖiõÁ¿‘¿ó½Yà Ñ^k’Žh»¶/ºl_Óbz1¿ëÍâØá]6?ZÈ­õIÚùY~]‡§‹ ¾l49Y< èÇ‘`5éæ»ñÒMÿ|ŒÿÒô³zcý|ˆ{¾Aá>wnzÚÆäaÔ^;KññìÝÓÕ.Fµ1ÈåÐ^ÁËé¶ÜAsþÇé=Ý…ŽBô0¼Š«¯õéf…ƒtˆ?Ò6$vèð Û@Ø:ml’wy™yëaòýVM{‘¾ûº Ôß»o^§¬E¶þŒ]÷X¹+YŠw‚ždtIÚúí @”^|Ê?ý‰tWlüîõ<»èË/ôQíº&b¨„ÙEÚÿ¸©µ‹—\d.×T¹‡‘<‰$òÃRˆP²Î.ÝI îWRcB·:\¦#ñ¬Ñ¬[+÷Z:6¥,]àɯÞÓ+ÜQõçÏü—~jhñ%Ém>™è[s_vÆ•!Óu’‘îu}zxAì¹CŸq´õ˜õGU&¿õÍÑÿ÷=Îendstream endobj 917 0 obj <> stream xœÝ\Is·¾óW¼ã£Kœ`_®Ž]±SIÛÌÉÎA‹E©BR²HÙ–}º˜™x;%Úåƒ!4ÐÛׯûy%¹ø_þÿó›3±º:ûùLRï*ÿïùÍêó˳¿|'ƒXÅ!:åÌêòåYúF®¤vƒz弤׫˛³Ö?_ˆÁ8á…[ÿŒmëE rý>µmjýô†híM\_Ÿ_a‡hÕúž¾´" ½~3øïåߥ-§@Ç!ŠË°æ -u0Ö¯_S3:Xån›¿ÌžÎÍë©™Ö«vlÄà´Uãz/‘Rm„SaýîüBÂÙÑë›´-« ßìí¹òƒ1Á¯?¤¿+/ ìÔ!GǦåç‡ü6ÎaÖoÙáæ/µ5@ 0µ4°È̉×D½¶^y8¹ùC>÷ œÛWËá·yÉè ª^µgi²N–|”w3~ªšFI­3o+&ÑQçæó¹y_ñ6ÍðŒz½Ò²É[ë`wb’¥ë´]­¼·Ní;l{o´ÅÞïÒ‘˜‰ÿRAóeê.ò#Îm ÿÙ M¢ñB=åWR Ö8™HË’â}KRŒ÷#] Hi*ñˆËR›“6ÌlF$pÉȰºüÇÙåg?¬¿Á¿xmI´|4ÅdLΟ#¡¾GÉ0`%¢ˆ-MJsAƒ„%™6šòs8ÖO`n'‡#d1†A€Møè²Øµ3 ‹ÎZ9ÄŽ”Sð§¤àÊY2(xÐRgôj,nž¸1¾.Ͳ6ˆ’oj¦aE~èŒÐ,wA·HR€3o` SAF–‰LAÆÓY¿®ÓÌÆÚBIoÓÌA³æ6ÓPÒÁ»D‰¾Räq;¤™ÒšÁ ™4YEŒÚ°;í ¸öþŒoìot‹ø¡áA´ç2téf”Üç-¹þz•Ð:ú‚Ë|gD·´(ŰA9ŠoÚšŒ:”LÁÖ¾K½ÑØîlÙN’À¦Íj$®/ç-,øË ;úh %¹AE“Œ3°Î.6…§¤¤çÊò2õ) zÞ3¥|~Žb¥\D^zÿ*‘ã/ÜÑNj‘Ä&ŽbŠÚ9|Îû†~NtœEòQ™æR8Z@Rn€¿mËVòòšÿiáÍ>øí¨^û~†Íò7sórn²_ÆúË˳oq%VWwgfvõ+ æ¿)e% ¥•“QÂV7ÐàLÂÔs}ö}[×ð(ck˜bP4E¢· [3ÿs57ßÍî…!Ú·sóÕÜü¼‰~o[.®ç À˜M`©Æ†À©èãÁþXÌ–áAÜñíÜ|6Ïðn¯ÝþrnÑ–+SYêéÞ·÷ŠÈ++¹l€D4®ðÍèU ƒ¸Rp½ü½´zixí«ÞÊÆuFånràþ Ö/VÈ“…R5+R/‹À¬ Þçu0Ædz·!# g¢ûÀaiÁÉ#Íf¨ôÚ žúÚcÂXét1E+s¢Æ/Mé°a4Ñ]áøR(Y™É4ahJÄäúpÎáú` ¤¢r}HÄ{#;úІ‡paäl½Äv”¥ `&ƒ•²2Xã·ƒ½ÖZY~L>¹µ¼Z æÑˆv²$:âŠÙÔl,÷µœ< —„@rjˆD3l3\§½HW{t­BE5á8cº¹ ¾Üv%¸‰(?¤­¥ ©ìEÕ¨¨Áƒ‰•‹]‚ú|š @÷ôŠÏ÷~É`!ì~‘‚ËaÂzÁ›QüdDqh±.dz qT¢†Ãßd2•©§îÞ‰ÍDO°É+aÝ‹¶\–1àì•KqÜÑÐÂ,AøÉÞÃJéæßÙ‡vÜCSƒѦÞøRë]ÛA)¡º‘Åëöªù(42ŸÊåeBL« äÙÄ úƒ´kÕÙ¶&Þ¢ƒïÝ#BWâ½p<ººK"#•©s$If"‰ä˜oÒgYOæÕ’ê@­­T§2CÀE!vâbµîž¬AÄBrß+è¶ëBé’y(ÿ?2äJ–¢6ǨDÒ/€R‘n…²ÞæT´ŽÛóÝ,ÍÀz+ï4­ÜÓ˜ÛL¨B‘q͇Ùâwt¢u/˸± ¿™%|ç¸Q;)®¬7äĈÚ9€!SÇ!"ÌB3 ÿòQ#Ä~:]ÖŽS7”:Ò8(p 4li•>{6̶°(ãjn¾«)¦Þ—s“mô¾õY7à€ð}Ü¡`áƒí¢ï TÀT©4|L)ø`€2‡¨®%&Ž "×á(®}÷I|Èï (ú±d9:9ÀÊœáî‚9ÂWY8©øzÔb®ÆZeÀ碘«{QÄnÆÑ¤1塚ˆ*•41 øzî½›¯çæýMD ž“`Žàäí8BLܶÕͪW „ - &窩€n“åð*š"Çüœøë净j¹KZz/›¾šz'±³ó¬c@3}sØå©ã žÀ»)œapÞ=¢ž®•¿CpâÁÌØ°áR‚'ú'å¯LÅ„¯0ïî4¥36äݽ¬3½û&Žkr&–6˜Ç“Ü$=g ¼ƒÓÓ:Žî#µ·C ¶k²ª àd}CœÐQ i ƒ–Ë|·‹Æ/®‚qoø zóÅ’lHºRz]!Ð;oSøè\ÉÁÐê¡Ôw)¯€9¦Bíƒk‚ïéâFøOÎz6 §Û5¿!Bv®„•é$·lW¶Ì’uðíÞÉ!°¨ƒ2ª‘©—É!:1F^ÓÚ*À— ÛZbúŒ´-/l«t†–˜µÝ“大O™b>3ºþå÷Ì€tÔ&‡ì¨{1jZEDÒj\%ПØä)ÄBK_¼i²*E±ûKµÀ®û©»ªZ`ÚÕ,ÈmÑÕnºøç,šÿž›_O’7Ã?ëåôÊJ㆑êL=Åa°…4x²ìéÞ`Šs3+ÃMœØàÄ ƒäQÄ _–Ä1ò¾Óy-«þ0VEÖ|Ô bshâ,„ô.)€-ÃO*ÜP]Õ‹”1ÓÂÇœ³Ä¬…«.­™ÑŽ;l_/ót ]ãiº¤ûžUŒ^Éââºg­¯ò}Ç©)¬ïf«¤M3šã³ó Ýãô~ðº[ÁóñܪBÓ[¤7ËsEBÍŸ‰§¦}wëü˲Šn$›.© ¬TÞÔ©jît[.ÆOˆùª™(dC¿Wyµ ù^ÒQ–w`¦@ÄKA6]3˜˜D=“SÆ[ܤrNæ=z)|ÑôŠt—îK¥Š!$ÁIÕJ"R›l…°Þi>¯ ï]^WʰðUfX¿.5CN òô õýà‚N.€mR6 a\ïzbUfóg¥fM«mÔ,â¢@í%)ÇÔµšrñ¿’]ÓOg;ín€ËÍ¢?±ä.­&t¡ì²uÓµîOÄfMI«¢ábÜI ø–ʾtãÍ“v{ß±¦,}\„Óx+¡ãéÖ´f£X—R§©X÷kú«Fo³• ÷±Èú0>j×ãÃ!hÒ¡Q¬ÃnT >®~ž(ö®w“˜­ƒ—²Öº‚Í0Ið­ËÀÅÅ¢FڸЬgDmÐCêE*ÉùÒD÷ʯi‹nY›a1z©´*ù;団%à© žyx—æÀõ‡¬4Ä ÊAôâro45Ù-&ªw.Ëk§Ÿˆ°›ÉVqÓ³º÷!«Ÿ°ªKOX}páƒCDÆì–ŒŒõÓ^?¥N=HÚ8«e˳l6Hš¥e~Α!¢¿uÜÓ§ãa¦a tXæ—¦!%ÜÙlÌÄ žyŸ`,œuu–pœƒ”Âc˜!B…{ù½üœBØ4n™{ƒWÙÑìí-Ówá8îhÌc›ã 7‚â×V'z™ÎÈmy¼Câ‰)m4NÜÆjÚqõN¨·,e˜qGaj)Ô|›hÅ8`™ó"Õ#"…ÅÕâ$¯W‰< =ÂC (Ù}þ‘½B¢tg¯`D‚0øÿ8['qÑÍØ’£è8û ~œ.¿Änö})JÍGOR¬íŒÞ%ê¥SˆBîo–é;wä‹Fà@U¡²¿>ÁY µI±…Ç"·í¢Pø¦ë¹|ÔW‰0âÜ3&ýÕ[%d¾=a=è­’ˆƒ”’¯_—¯Ž”öoƒÚr^V5aY²K!;ùñ^r«J‹UC{ÉL/›×ª “‹äQŠò6ZuªZŠ­ó9óh°[:î¯\½Ø¾/pâ¨ôt&ÛsçËwš0IaÙª:Éh2önò:#ÀXmß÷Œ"¡ìQˆved÷d˜V1f×'i4€ä¾ÙÞÎar¾Kn¬ãÊˇ´)„O~§ë¾M©#‡¨T×j-ŸJ'ˆË>§ð#kY޲ÌâÝ&Y :l´ƒygý—jǦIDojWÜœF·Àfé¦ïôÃXJð‰ÅÝ@Ž!)E«10[_ÕvZtAe££÷|H]NJs—BžªíBèàeuôt·¸%Å¢/B•2£uÍÿˆ‚ ¾J“LµÚ0–ógyGF„bþ8N*Ô ¤á6¸\ÄŸˆÛÉñsž¿íÈ~'‡Õ“´$ df+M5ÂH ö¾ÇêG¥0<¨¾÷z‹ZßH0ÈìÞ™6ºx£…ðЩÒ(/o!*Áÿ)M‡°rN×÷@1ÿ£ ‘3t kÛШÂ[Ös½ÎïW,ìýhBmì‹ÃfÆžŒ7ÇÈ[ÜWÃØh¥+cÇ CYŒUýDGõr9í ¼.Þï‰K×R"¸”fÝ|¼Â•ò–ßç yàçÜ»JÃT%rpAWÝçíVvŸª!ÊÃßðb©‚œPÄ +w%zq¿Òü…—X!ÁõÇ0õR4 NU¤ùÝÜdok^Ì3,~¥¨úÉfØ9,š˜ª_Oz]JNdQ«/áhŠZ}‡‰ñ¸ºPð=>Ý!B¾#ÁR  âva1>A–^Z©r0=¹*ã0ÈGW ýêÃ/çNÂ+*€ïBp1¿ŸõÑ*á‹9Ø2$Ö&Z!uçIˆ³WÕû‚–; Ž@.ñ­¿ÀÒaسL˜zK˜bp(ì’2*\.ÙëV‹G½ì>a!—Ô{Šâa£È—:.Ë' ÓŸOo DjêòQÞVy|é²Ñ&áeãNù- ›Ü€ãwNí‚/zµ(ÃáuùΗNÁwî7î!Ð99™ hÒéÛ4(H«Hdñ¼tC©þ¥jוX ñ2.^Ló ÞÃÏÖ#³ uòRgÝCýO’“¶.nˆñéFB9f¨ú/âzi€*OÓ°¦t[K°¦`.âC<Ò”nÿfýl»[OÝíXü·Ûï ìiõð*Qš•  ­¾¬±vê9Äêðã8…C°öV¯~2Áª_ÏVÝÙ. `Å3@ŽÒEüù'0ÌX‹œÏuvM’c’Låî73ÿÞ²îì½@•²ÑË|ÝæÕ°,øz— >ê1£1{4wŸ¢\¬°:åƒk¬”¸ÈëÅ€ffê9„ÿŒ™¥IÁ¨m÷zû?™ÙÿpXô.yýãzî®alúîRtLüà´¸Ž:8bup_ cÓ h·þ ë¶ðy9¼¶¿žì¾ùÙ“é³T¢:eužc¯ËY5Ã*pN4ƒÕ=aÀHwó¬¤Rù© Öt§žC8ÎDšëá§þÕÐ8}…õß–U‡p¦ÝÍ›bQƶß7­Oß!,v¾òØæôeŒ.½ÈOì9âôaŠÁŒoò¶ž>;QvÎL‘î›ç¼á—êß%åïežLÍ%{¦\Åãa¤UŒ=¹çöÐÅÒ§à{ŸñtfÉo»qçñ™.é  èÀ¹“{ŽáŽ7œØ-ìIC¡‘J Ì>-§î›œzö‡å”SbPšs*÷Ã)‡yòS1ª™&xhF=>d¢É³FFåžc…?-çN¦R×óþÞ|,N=BפœªäœÊ=Çp ./ãQœªkˆAH›=×'âÔ#4~Êèü£8#§rÏ1œÈñgq¶¢ˆ:MŸšWó¦jõz0Œ÷Ù#eÀbìÉ=ǰ'Ý ~ ö°¸‰ý˜ÊïTöĨèeïÌž±çöDüN}€;)§þdØ!8O?¾2sjì9‚S“Çñ”·§Xú§y_ùgÃÞHTuÆ©±çNy|:¾5ç³3§ åýx^°jq xa@â,–ãÞã…4ñŽ.(Ò]Š™šÓÁ~{ö¾¿ÎSendstream endobj 924 0 obj <> stream xœíÉr\·ñÎÊGÌqèˆÏØ—òÍNâ$åJb›9Å9pÑæp‘EŠ–üõéÞÒØÞ¼ÎЛJ¡@< Ñ轘V¬ã+†ÿúÿ/®ØêåÑG<ô®úÿ.®WŸŸ}úzå;o„Q«ÓGñ¾âJtʹ•±ª“Z¬N¯þ³¾;†I¥SÚ®/BÓ'Ö·Sï}uÀ«©÷ÅÔ¼œ¼œzßN½gSï›|²Ð<Ÿšï°©—rýz꽚š—Ç'Z˜N+±þn}|Â:«…‚Bq[î¼:Ýó©I`{› ˆ3LØîª½†›b‰½ŸLÍïŽO¸`¬SºÇ`ÄÙÄ ŠŠ Å¡y?5ŸÍÿžþÈFu†Ù¬Õi­ùêôHá54$.H0ô²Š··µM႟~£˜¤4©x礲 +‡åSVÂ1ÁA¦…óëklk-°q’Œ°ï”wÃ$çUÜUÁ¨Ž½jáë„sÞIÙãKÙß¾Ú Eð齃!ä|QEÀù4CÜŸ’÷ÅfPe~¸W„^WYþý"„þz9Z€f’Ú³ÌHIáµë”Ø/Òï«H?o"ݘŽ÷éd·q‹—‘þDH¿š¶xûDHëí÷ˆt‚S¢â®žé¿^JO•$#÷ ðju|Dh¡¹gøé7ŽÐíÅÂ^‘þû ‡E:Ùâ]Óàcþ3X{¥ô« ÊÓÉêîÃÛ-é q¹'\œÌ¼ ¡™ôÞ?…óñþÖR0Í,¡[yÍ8†“ -™÷Þ pÐ6ÎqƒZ^ †á2œÅBrÐæ–ké“1ˆt¥á€Fšp¸òr€Õ±$&mnÅêDºÎK!=…ï“ÒÛõ«@HV»€„T{åê4”Œ4õm@Rñ}1áîŸSïiuÀ_Ç^\äϧG_ãJÚ­^Þ©ŽéÕGlõåwÎwÒ®`›«_]ÃNëÆž«£o·ŒzÑ1‡“ŠÎ £—˜3‘¸Ø¬Ç2?Ÿšïªz5‰ef¤•—aC‚êq 4Â;f´÷ñÌ¥´ÊGA ­TÀH÷ñ̘g2’ˆ”Ž[é¢ç*…ï„Õë?㾊õvh‡Oïâp 4JgÏ(%Ìè0 ³Ìà²téJ ,‘E/È$a™0}ÿa?¹ë,ôrß½‰Ó9)*Ââ~X[I;ì¦f‚ÎñŽ|H§;£cȧdýf`Ç.‹¦d° í,Ý=Åíͱ°â^ÎbSêÎò¬[ì–ãÎçP¬?DX…ˆ@•V+ï¼ç£Ù:“(¢Û„½îk¬Xe m8Åa½'ÙFù!£ä°[)úËØAJÕi“PÔ‹¾×ÊYÆŒYoƈË1|'#q…é“Íéx÷ýhqVÐ*v¿´cn ÕtiÊ&´]Ð|òô8•¦¤ÒMýUª8á èBh ]´hh(?GʽϧfʽW‰:)ˆCrf´¦2ºö¬˜Ã!xX¥|@œ““xCÄÍ«ø(ýD®U"¬!:ÂùáXuI¡Zdù®›ÓH—0D1“ À·q„êO¥Á4Ée:!"Á ­×ïû ˜±%2R iô ˜w|®ìsv=zïQŽh0Èè`Š;Ê´T\¶9uþ×KÒ¹5°*{ìÄ·“<±£— q$/a@Y¸ÑÚ]šÓ%ƒd›°cE¢®¢ =K‘@(m:“’D‚²‰‚¸Æ±ºÀÓ_`SuÜsŠejA\ÆÁN»5Ç&à 64Cw…4|‰@Õô„†½·Š{N6M JY‹±–™^k9v™Ëd{¾jìw”ÑËE)ÂY·ÃýàYl™ n×ÕÔ¼\L½7S“xkS ­*dy®²AEÜEÜ2ëkBv°Nñ5œcdÎ:pÊ 7£ýA‰áeh‡‡ÞA”*Þb/(MÅ3=tVJjƒ–CÙä”<8‡ÓðHçóõjÇOù5³?)ãÜJ&ôv{è„%…C8ßZ^¶´ÂKœQã!$–á¼Uº0§k.‘Ï0â ;¦\rtxfàQIY¦Ø-2™‘ZC£6;‹Âø–ñ‘m¨%6 vb‹JK¦´à›ŠÑq{Scž>Xb#صæM•kIó¬ÆŸU¦„ °CóHV©ÎQ/$ò)¨sèüp 3haF‰„„Rß<(/0LS‰Dì7bÆç¥FE(‰ …æ\~¼éÀQ+Û4û$÷Ù`ÄÃiâê úKŒñ÷Äx¡“÷òHfB ¼E´CŠŤ«I19 1ír©‚ð€5™9#Ð)T]ˆ™a€Ðp!"Ãpní ïM)>nÐÉ É¢ÆÂD½#ËQGœZhtÈeœPijåÝL¦XP.Àåà8ëL¹Ì‰VëÀçòD+|›CE´ZÎl­¨OðšhÆF­™ù»T¶:øÖ/—­Ö‚SVÊVèvÕs)E+uP ˆ3¾*P‰»1Æ6ʘ‡ÓÈT æ¡¹Âˆ ½Õ± ss2…Y>ÿÛùEˆ "¹b‘u.S^»Ï‰KAxá*’“š|‚`uª\¼Ð¦c*Ä؈RKPÖðÐÖY•§èì¿a政HL†’@*RÕë@$¢‰Ý FfÁÅmÑó=Í­}j ÖóÍ@Ç}?D‹ŒöŒWiÒsôÓŸ¾°n–&‰åÝvÈp³.¥´Ea ŠtD´É݈°Qk© ÆIîãÑ2—L};xDÔ6ÍMc€•Z&W$᫾E.dâ?µÖö¸iAtÈï3†D¯Öy쥶ÃI< ŽPŒä*ÓÎ(ýýº3Øim‹}Ä÷&[MÆÌd¨îËV{„\UAÛ5l5!À3Ÿ5Õp¸+[[AF ýFz/ ?RŠÍ¨éiÐ1âB’‰]‚páSi¶S6ÁjFé­Àz þZ¢vcܧ‘÷SºGžFñê ŒÁ}S8æÎÐáâ“nÊWþñø” x6jÍ'.¦‘—>ü€ˆ,RÑvÐðöÀD¬¶‡àÉeWcÃhÙ)¾Ø9‹6.ÖnîÜÀTV¦„š°&¡De}ƒÄ1ëàAÃN²0n}çYÂ"|ªšyÁgƒõ69‚©¬¬šcj^  Fµ-Á@‰ÑR¥'þñßÕ±e^iT¸”ݬsÜ„ÃvŠ1€èöÌ`´Åƒõ<åñÎNŠ(æ@íõhŽ ýcR>ÿžpðÕÔ;5«`ƒ‹ê'4&±×g˜éqgs †2±c:P‡ÃBI:ëð€¸‚‰Û§ûs—`Hú]_5šŽÙ4ð•kë‹§gãt¿¹\…£ö ng3¿*¸¼µ(b›æ_.ˆƒöaÈÕÛÚðÁ+CXœZäÒYÞO‹öþ‚øLîDDa¯xÈ2¥L¤°°(ñêve!ŒÞçfÛö©XȀǤj…ûÆh•Oø}ì6ܹjŒÆTÜÆz›ïë~`¥&D…¼ìÆ,JÖCÝA“ËK{¶O ŒÎÅ&™jÊ{˜4!Ѱ¹.=¨†5qhdÖÒ 2rX»‹#›R œGœ¤À¤Ð–c Ì6½Õ~qTݤ¶e ® ÇÒŠv¥×s5ãx™$Á}QÆäš 0z?š›kÌXþ¢·&…š¹ó‚;W.;‘xMiŽVZŸöob5À™P¦¦þçîß’ÕªXx ‰¹ªË×Èbã…‰¼ ck^k§y ¯)úĨdm²Hs²œç^X[mYD«l=Ï“VŽÒn?Œö„—LÈ'Ö÷@ÕXÖ¸uU(|,¶•öé8ƒëjÛ{E‡­ÑFåXëG=ÎÙ-8ËÃó+çÛsÞn÷Âé}MïxÌþ5xê‚DÿîâXÍ"/½)ƒCIä…ƒZµcEXœÀ~æ Ä©7¿8êéî9ÜUBjÒÍŒÛÎ}ý­ÐìE¬±X;fYhĆuZ™6êw½Œ»°vHµˆƒ,½H!$PKRÁ•ºôÍŠèÝtNoiÕõÛ éï™lµb¡ƒ®Ø÷j†d‡ô೓͊–xÊ6¦ÈòרÍmBìT&Oq,M:DeÄbùÌ=:Y~Kù¼L«ÍÝûœÓjR²V`$žA^…‚PQãp Á“ÌØ Pé‘üÍ©Ub¹ŪÌâEŸáÖWC¹ñØP¦ óÏÉŽq“ÄÏ[R£¨‚½å"&T°|iÜPÑqQ\G+Ó»Ù"‹¸^(5Ã2rKg+¬Á“*×2nœ–Í"æÆ—— ¡Ëë=:6Ìd?rå™×àÖÀƒœ»( x1–ˆ[uS‰øLíMØÙ˜Û ”N5È÷DË!­²™haJ÷=|)á÷7x-3Q»y˵°¿Ï - ßÒè"JÁ\”½o”}·+èµX‡[™™H¨TÏЙK’”DøPÉ oJô ^ê*Â7Û.+÷Vh}'y!M&gá˜uÇ@tvCzŠ8—OØxÀ¥Â44'[¸yNVúÎeö@ú J\¡Â1ã`ÃUÃàj²ÞT ³OΓ®#ƒ+ô[Dd= I7öìÈzL†IA%ù}±Þ~}ÌßÔÜGõ*gø”ݼY{€=ç$‡±² ôÇfËz0êªZá—‹8…æ.ÑÁ„µë‰µÈÄ Þ]ñ À®eíáQ8——µÇ§âD-γýÝð°HmâLôå©<p׸¯–ô[G#(wSÂýˆCÕ¹pÔ"Ùs»½tÛ˜T^ýÁM~Ë‚]9'ÅÞíÊØŸmp8Öù þ¼.òI%Á¾à?ìÛü‚ÿ ‰uÇ&ðÛ¼ Rç лҶwõäî}mW¹š(³»õÌA"â>Êx¼ÔG: N»Ay^ó:Ut¬ðò#X†T Гe6_ædÑw ÂègC XÎ#Bò#=L¾Q‰™e–q‡hAî+Ó¹¬¤1‹ œZ¾7>øõ¨GLÃÄ6¯ë ·SU+n@Â?Ôn]nú!AÙ(ú¨Ap%©×ߨVNª*~’)ê¸ús¥ÅÜEÝOè‹çùð’lJ‘„†Çh9oúc4rÒrCè·™6”øWG§Ÿô7~½·‚gPPÚÞ`*`a…ôè/…DÞ}q•j¢SŸˆ¤CÖ$aO¶Ðt;ù_8‰1ž±èÕ€²¨ H"hTð†¤àL¨(Ù=Çðâ-€õdxìoìŽ#€‰UÜô‚ùº<ï•’º<>ài2ñøŽ5S7Õ‡‹Ÿ“ùöû€ÅRµÖ R(ÚÕÒ»x,¢ó)oge+w’0Ç;tÍ7u¯â¼ 6—»ÃýV/¡Í¤‚'μ‹3›'ƒ±N<ˆj¯à(Õúä»×w£é‹Oã “q÷²ç“pgJdÏ'y‰?ÈÐ,_¼ïÁ­<Ëèñ¹PáàîÓ‚ì›8Oõ[í;]}Bíq¯SÎÔ5a“!{WÉãeºT|Ï\ŽHKŸM+¶†÷¶‹l¬ªt É_÷´œ³¦¬Di¸õ §Ø)%¿ô½p^†7^A¢Î9mwè¿K81×;i…ª¤ucùm׸ü‡:ÌÇwy«h²•7oÄéêå¥ⓇXÎU¿ Ô°~¨‰‘IxF¦Ø¢?ïQlJ7bÔÔá¯Ô ãéAÐCîšwÊåE¶ã&·.÷Žû]ü¦ `“VŠ¡õÖmy$1´L÷üº'Ö€ÉLÊXU›øb%l¹s0™2Që1¾z¡O2|æËúÔ¿©ècÁkú8z@[Æ©©dÎË®ÅákÂä›*‡jØ\Î]šãñÃCÁ„+_˜¡£\Èe8ÚOöʹˆWe²ãÉÎäW_qã}EØ”¿ TEù!NÌeKñµÔWºõ ÌÊî»þvªë¿…5 BDEÀÐñ¯]ihÐþˆ0—ülÊR]¼CÙ2Cr­Ì nW'áʨï‰_O‡05Ç|Â×Gÿvqc¥endstream endobj 930 0 obj <> stream xœÝ]I·¾ò#rÉC¯ÓÜÉcâÄv‚ F¬¹Å9HšÑH°¤‘5#Ù2òãSUd7‹l²_ÏfnQ|\е|µúq7b7âéÿ/ÞžŒ»Ë“OµîÒÿ^¼Ýýùìäß ?zwöò$þF섲ƒÕÎ:5§vgoOþ½qzmG7ÚýÕ)|*åtØ¿ÃfãŒ÷rßÎiåüþ5~+eœtûsÖç‚ óáô †ÑjçŠf认‚¿pûj6cÕþåY^ÀMìíµêö¾À.r]ñÃ4» ó§2:H?hiÍþsa ^àÎpélg„i möïÙÌl`¾ÃD(ë¥/ÚßJƒÃä|+Opl3ãøä‰ðJ+)&L14d¹l\ÔMüap²øáG6ö \“‘Ú!Ié\¼é1Ã[øaßr”ð „£10ÚÎþ~"- 0ØÙ9°SZ¾WJM¼¢¼|ä¸f!C(¶Â»_å.|DΉD>?ÀüûŸ ·Ç íÄ´Å4 Ðû œ îà0má ä`´q'W/ö°ÅôÈUÆ6øBD*ÑÁ.:¸BÒ:sâV­4Iü˜f ñ3^¹0–à]Þ°é¯NxúÞ&6°ÂìÀ‘Ý ÒÏô_gž7Œ²´8‡ §a-Ï›óQ˜œ §#Ä`•ßÿÆ6#þ»´Y_² [T%¸”ñ%·ñÞÄ>=¹%Z :¼Þ±óƒœÏZ£¼Ž²á A„I6øxœ·–e aÆ÷¼ó›ò‰"¼Þ?‡Óñ@L¯–J`L’€B+¡ÓδVH„à$çí\m>k³wm$@• ¥HƒP=XªÔªEK*+cpU(Mü”¦`±wpb³_æÏ‹8 QÓñ(”¨†*"êàñX3( Ât<ÆÇ1Ô`¥«y­^ÈB­W´œ©†líàp•ÜbJz‡ÌÏá2mTês-„œôL pËú^f®.LõÜúžéþWé„Õ¬Ö¨y!<°ù1êIZ]anÚv;¸Ê(ÚÅÅö6ÔÄÛá$,nRáAû$m §ìÁ sZÊÝÙ?Nξø÷þ,3[e¢´À?¹î‚ø">—VþÓrëIWÈíÄÓc€®À`}ûO ù'ȘqáKX- Tÿ·²`ΞiÙM“³ªÇùܲqA¥¥€ V=¬ÙTÜãë×=ñ.—ËA:Xl>ÜÐC§“E.©Vj·h©PVf·b(q3BØB;híÌÝÄ£Ô^Oœ 4·_ ö&‹Tb²¦E£€]ßÕ~¥~ÆÞÞùÊ `«ìسr^ØI÷L×Ï4¡õ†DÕ‚öf)Ñ Î!Æ> ,EŽÖiÝmÑ ¨z ~…Å܃ˆï£\–X¸v=šx§²z´C²V´Í¾]¸H?,e6r6,*̨a6ù&zö:iOY‰8±¹×8E È¢ÁØà}aþÍ íØù#ëÑ;’,‘¸Š?~'•áúaZWi|pƒByD¡‚%?·²Ï«ÜáÅÜ'«¢JA¹”²“{™°¢±][ñK©Eú*ðN«æÆ¾Q‘Ç#LW×OîGéσõà3ëþ.Nbdr”`>˜#© å óVÃ0ðaF§'Ñ@ÆHSŠñWP]Mð!îÅ—{éØSî±61[ÔÅ»‰|¦Üyî\»°‡ÑL´%·<fÚxTùÑlce³Áe(QÉöõe)0 íLåƒð£1ójªö °UÉV0¤ŽA=ÃÎr˜mÖÄ÷8¶²ý´ŠMl?OêC˜F–È¢\^Óu_QÀ¨9„ðK:Á&åjä‚6!Š9_Ò< Ødm[òxDÿVòÁ= %bnù.ÒÐc掜FLà£^U\J+i€ñŸrÐÀ›Ì.þ"9$“!'$ ]ð‘e%´:.•Œk8¸Z™ic«"ŽÖ.uÒ´ €;×Ópçø+3È º TÁ]œÄÚn”Í󼣂{œEFWÀZTí´ÐÆ´i.%¹‰}ú@øpÌÍg‚@ ¨nõ’Þp²¶¬ž{#¦L£»)êAšPéû8ˆ÷Û ÒMj G5»€+K”@lzk%‹óe”v%Z…½¬F«âÚJß £ñ{Þ-ë¾ä”vüDËްèE Ùª:n¥(/]+/jîô‹ØcÜÁ¤Îàeló,ÓäÁš©1,5ñOœôŽû:Îøc%¡‚‹kÝ1+?Ò4äF}ì쥡µUŽéD1燇ZØšÁ½ÿSÜ™²ªˆrG–wƒu3˜aäøáÔ€7ªƒéÄ’˜tpU§r´$„ÙI…03“¸<.§Tî“X“+gT˜¡éñP8è_耦g¢ÕF9‘äÎÉÁ€Cj•Ý¿Ÿ›ã|AÉb>1x-¦ù~®:W‹˜Ó³Žú/N£ÛÒyòïO«A*w~!¥+p°½ i½á)`Xùª‰¯ÚÔ¶ˆTInÚEMn0‰ÓçÖ_Üè°ÛÌ Çk0EæÁQ›Ð'ê‡*‰s÷ß?“¬¹% øê±7W$€(`ˆ¦þ> Prk"&vÁ6€çj¢’«„fž“0¡ tbËUd¾P^Ç5Q*öŸ—Š›Ì!3è3*8¥'…/í¤ða±vUá+°Øã"y­6˜‰»yì'q7˜}ôàÑJÖÎ.Ük¹j£TÈŸÈ.(©ê•&üXÿi²ª*•ÊõlOB+ …cVLä¸r?Hm†Q£»0¥°×Ó ÄêafriÀNEõSðÇû¯N½‚ ¡áO"ßuÙ±Éö4Gæ¼MJ>!PFƒ‘‹@=6{gjèL½­Ýq³Jö ÷ªûË«ù8ÝV4ò«Vv3…«Üp?é]i«…R–€ª‚ö9ƒPÅ#³•жë¦ÙáUþ|™ûžS«ÃËeþü?ŸåÏ÷ùóUþ|ž??æÏ×ùóMþ<Ÿ'n ÙaÚi×ýXM9¯÷"eÄ"ÔœG×fÉX”=ì°á _éч¨ FcY¬0i:\¬ZøÀ«Ö[H;83Çà?å¿ÈŸšŒÒÃ;ó'ëû,ðüP±ƒòFvà”Ž»«\ÂP£ëÛe˜îêWÞn3ÕƒÛÁ†j'µðÑÃhv?Œ»¯O”И-Þi8êÁíÞBƒ8m§†7'O»—äêu§Krd=âx·(^’[€Z}³üÌûüÉ¢YΟóçë<3Îç§«×JÀÔ95Ï}¿TîëÄ"H ¬¼/óRn"‹y×rCS)>I­°;ŽþvÒ7³PŠEcÁˆ­ðßK§\Ž5SÔ Nꢪ¤Š¹Å:'q,³·VÏö9Õ% ýõ½ױ^ÈÊU{Ã# ¸iãåX-&Ŧ mmávd¸^¸/$g§¥ ðc”d7ÞÜÜrQÖ+pˆÁ Eù/÷å^Q­Ì¡ïC3µÅø¥¼ˆ¹ðx‰+Ij‡w¨ºÌ¡‡""‹+Îu9·(yRÛNê¸.AcõöÝBL.ÝJ`Sö*Ê1¨PT›Bp9wÂïUø§ôÖ××®pl#z'X–ÖàhZUY¤„̦ *³tf`º*-œt8^Éìå1¹Šù]"g×3–8‘}üк ¼,êDÐÆ{\ÇɃ«A$¦ÚÕzSZQqÌ÷Ñ­ïFNÓšÄ5 FvÅu1¦³—QKò] ¾>+ UÉݱ0Å´ØÒõyšÃ µ^Œ­gÍßÌ­³^Œ @SœzQ8 ¸ösËô" 1XCƒ‚îâÐ’j½È+~ès¡©õ!!Ž rT~š tM ¼Ð\ƒÕ|GDKÔCXRy«üiñû†*«jù9–~‡ê@£@×'^)ík[¢5U彫*x[ Pˆû¿b«Ô#bOó5¤ùœfMa¸R­l6\ÚdIÆ%X€àZTÆ¥T5œ]U5Ø¥Êu0‹Rœ*)çŠÒ—ë8‚ ÷´8ÚêÊÚh€òÁË-OKô áùÒØOí¸è1”œØ†gô,ýußæÖÕÁxõÖµ”c7R)f~Ä#€EÄàAz|,z|Å#Ì-w‹ñÆ€ÆÞßÊ:V¯pÑúÜoÆjø€×ùUçxš£.Ð\‡•j)ÃJ!ìêÍg*óÖº Ê;X•+6i…•£>l£Ã¥J¥!P¥¢ÐýÌÓ©uLѦ!°@ÛÕgZHU•"˜jík)Ñ_S_ç“Em §6*×»³Ó»Ç/ßâíÈ\þ\é 9X[*Ú ‰aÁ Á­j•ÍÇÐâOéÖ¿¤›MøRËXY/ç Ö^` Œ+Crõeþü6ž5;|3Ëë¬c´õ#ÞA7Œ¼4¯ùwA]éõ%Ú>,ê¢Ïu-ò`y¶6êÉW—c³«¢5%Ö;QCdCƒ‰—çL68c¿îp3ÕÆƒÃ 7UÙ,ï@`½uÜ^a5ª›”vÀô¿®ÞA:ÃaU×ÿ¡`ŽY¤,`ïÞ-ÊP¿rmñuàØë9ƒdÕI;©ï1.X¹ôL³ë9ЏAÌõ«ÐDÌ"IºîW¹R½»9?ÅÞ«ïyɽÀ³9¼ûJ±Š fM‰Iåní#ð‹)‹'=0ÿ0=éÁ2R©Ñ6Ò`œÓ’¼J¬_{°…Ge$lOW ±[_À<ÔEB·½w¹˜Š/§Ž’bâL-ꘑvønÌÿçCì.…oD£sEÅ€D:½ˆÂ#•îÆƒˆ´¢[µÑ;Ì*§'·½í¦7ŒôÄÞg£¿ÖMO®ùNÒârÃÅâÜWŸ®# å¥[ùŠ’«g3(ùÄx'™5ºn»ÒFJg°ó ž"fõü⢷Å2çÕ7˸p¶*¿0:_™¡ÐgÊZ,ÎØ?G ¢ìÃÇÄ}Š ÿdb½™„ÍmTì¡ðz-E9†ž7Â$«Ø˜)Ëë¹-ê%÷z×®+à‹Yá)q$¢ÕªÖ¶ØB—©yú¹û¸`ïJy>¡·¸(ºSQ«4Zù¦ ø•Õ§_.t!¶ºÕ÷Éw¯tš_$jÔ¨ÔAynG´¢Hfëù“MÁiÆ:Tß³’Ìu+_Ï‘Pº ¹²ƒè*4î–WöûZ«{ÿætè½6wëwªðH¼÷•ýŠQw_ª}î× S¹@OÕ¯-À†FÓ]U}[I%ï^Q.`b|”$^¬'gÅ`XÅà›Hnj¸KTÅŒ[q„ÁiÿPÙô/›­yVÔöÑP3ü­Ï¯Ó¿ÕÛ{4¨²Ä®~vŸÛãMPŒÏ`fØ Š1 ¨­\Þ´˜D-qÔ¦Ì\™«úµøšQí•?‡Jt¼ÛÉ ¨ ä-´ÐsËxTâíÉ8PïqÓÄc63a?Iì&…«<ÁyMï½Ðºõ‚ïjˆjõÙÈ@êrùš›OÌêÁí.–t»ë~Mä&P)ÙGn¨¬'è¦ÐËÀÌâëÏKèFÍ/2Š;ݨö"„¿>ص±™ •O ¾,­†?'w ¿!Ä…|G¼(e¼<Œ#ÈqJ„ 'Ìä>Yo1Õúfs)(Á{CB~:Å0´£G7ñwÞÛB .9ºb 6 I‚fªmó¦5%zŸg•]0µó¬SË=ò¬Xë²÷Û̳:™(¾×ÃkܳÖÀZÞìÇøe´¯Ëâ“>« X좛قõà þÎT¡‡GQ®qk¢@±‰@]ö’M¥|+ÿG³¶ÿr@ïÕSý׳è›'…zÏxóø_]¬,^‘ö+žCÅ.±ôY7^@^”c¿šÂhuðµ¨ÑÇ¢d[¿¥K•ÜÔ5Ø=ÅÉ}Êož.ùoˆÍ‹š^/ðõÛ|E®(–.‹öc |ç½úï£*^j¼| @Å£séÀÜ鼿©dÓnÖss;óú’•h< *vÞba Y€U±§šÜ¹å.ªØ ºt C€ÌªPÅ÷¨êÝ]ÏÆr6¹oAåÖŒIÛ§n ¾Òˆå~˜4Îï;$‹û9*0¯Sd25_exÏš“QùN”8㘱–† ÈÜ…)P7Óò]ÞÒMz¼PÕrP0è€ì„ ýd̃Ç7Eæ–»pPnhPü'ŽrУօ߃€Ü€ „âO-´ø»osëö="é¾±Èí¤GMø0!»_Èí:oŠU˰GØñ¼éRß³/¯‘þv¨¯Apê§–ûP_bÊUo¤>S*¯y‡yS?ÿÿR_€¡’S?µÜ‡úøŒ[yÿ(õ?ÿßR?|>•óþÔrêŒ,©£þ/Eý©ªî7C}hÁ©?µÜƒúÿE« 7RÿuE€øù¢iTïEýßžÕu˜F6†Qj¹õ‚Qb#õ_æV1q/oAýôdÿ¥ç¯G»;࿵4;¤äyFÙΟ3±þuò?Wú£endstream endobj 939 0 obj <> stream xœí\Ks·¾³ò#öH¹´c4ÞÈͶ\NR®Ä–™äç ‰Ô£LJ²HÉ’}º™AÌrÉeJR¹tˆÂ4~|Ýö×`#èßøÿ“‹#±yvôëÄÞÍøß“‹Í×'G_>”Êl¬´zsòô(}ÐrÐÞo¬Óƒ2rsrqôŸãË{HTymÜñ“Ø ÖËãW¹÷ª9àyî}š›§yÀ³Üû&÷>ʽ¯kb±ù87ßRSKPêøEî=ÏÍÅl±ù¦ù«xïÖH7héŽ>n~•©½mrÉø9ËÍ×M~Ø&JÆåe³—ñðrbØ ‘›?ß»·)Ä ÍB*l¹´uN*×›lÀUî½ï¿';e†àaƒs ÆØœœ¢1f_ææUsåÏš{ÓZ MøåC-×f ƒW:ΧB;ÚŸ­¬0Ò‡ã j£¼t‰He6 F¸‰ÈãJ8l38ûQ ïšr:çršš4ó¥Â(0í> 1a+¹Èì¿?À´ý<4l§À>JÃ>“Ü)°ßÿX!°6ûO2ûoþX!°§ÍÎäñìP>ÌÐéo0èÀ‰Õ]ì7bÎÞ—!x.˜-X”¯WÈo¬±*ñû Ê6(#BœC)) `\Än…ú…m%B–˜Ã¶õ9lº`¤ œGT¼…ˆ%± Œ ÅB8Ú(e4!®ƒ5¼(À,¶ÁÉÍV…Aá«'H@ ¹C0IZàŒ’!VMо©’fšµê§(¤ˆM¿ÉýGî=iøËÜKs|{rô#MdüæÙå‘F7¿!Vÿî|@‡ ·0øÍ.DªAMŸý´7œ·„ Îù„æO3‹+àoQÿ:7à}Qk}“¿kÎVðDð•ÙW›+Ô*À´C¨a0kBH£”CKx›6\iÔô«´á"•L)Î'­Ç R ¢¡ÓÐÇbºrž†‡ÉÀ9ûô2 ÷ÞÔ+5SF Ö%È=òŸ}”{_3NžœødSΡ|1 £Á—ÍN[á„-†c¼Ró§dSqvédZÂ$)%EIQ~8–>cžŽ\] Éô’ Ô~ÖV1ãq¤®¥EÀY•Rئm‚‰M[¿3dY(Sì«ú³ÉNªFîÄfUû-;”L1* ¿rM1¤vH8J­vK^Sì<ßV¶óœ×ŒLCÙãf/‰Á²è}šØòQ‚Ø´xÍrð h+4Ÿî4Í!¼ïÌÁ—Î?$4‡_¡ ÈBÁ^²ñ£x´BKä]®q6 &͎LJ±Â]ä1m­²ègÔ¬U÷³¡5Ù3ƒ.Y‹Ó½ÈÍ‹ÜÜ#c¸k[l jû}´»©v¸mÌaèʵE«¬ÅžzÏÍwMk?ßaÌ‹µ)‰ª fò«ºÅ*«sa($!Tس{ « hÏK9óÂØvP˜;§Vøñ2š»+ W4EÊïî¡·7Jj>–osK‡haea®ohº¤H™¢ò¡0æfz!è}¢a´nhdÜ·ÓćծŽ]ÕÖÆ8¯VW±0‡ÓSÖæc¸Ïg2øW¡\ý­ÖOPðMBq¡ˆó)b¢0LP‹,+ :î1"t…ï|UhÁ<ëH_â ‹íú¬A¢¿îYC]î#/(ÉB™8Já6Šнiß÷…Kœ[⊆”A‡(C©Œòã{Ì5›ëû®­+ †ïÓï¥NLrZ3´q£ºúÞƒ‡|RîŸ%9H§q"R.i"P™üÆŠ‡¨Í¡Þ艜­r§€áa$øCÌÚhD›”&áwø‡=ÞÆ~Àobz…[†ÂOU‰€Ü!!/¤4 ¬¥n6"ò§‚¡é·”?ðU®=r¯k¤ =Eóèɱ±“AOãcQÜâÌRnN¾?:ùâÆÉ("«¡¬çÄ`W×sj<{³©) f€=zy€kzy­ W*xIݸ °š*ÑÜÍ®Ð;(˜ƒæäýŒ³Áý)y!ίµŽ!ßø•øƒs¥µ;en¿h…yPO =Ð܈7-õtŽìÓUñ&n@1ø9 l,'䎜§Ã§#ëHûqN&Ï¢—ÙZÜ|ç˜q«…ècÎ<é61iŒ E‚ÃŒx%oÀB­¶×LÙVqªÓh1{§·€sM >¹•e=¥ ×gïÃÁÙÓRA®€®Uñ¢µ/ž5þ;àŸÇÓW£z–ˆ¬pZl¹WIß0¾õ¼ÉyáíŒo­éÖUÿ (+‡»À£ÑT%¢'!\6—¨‰Œ0ŒSž\•§Çå ]xÐ^VÏè•òœ£p"¢1Ÿ½Œ)aiß;³€Ùï`+ö÷›€¶/<‡™TpUÈ“6ôé ‰&yüËȽƒd&†l×)%žiŽ~`èÁV>¾TMåÌ ¼]ºåTÌ;úá*ÂL«íMöÆ#ó{&` Oˆt"àýwœ\Ô!‡ªjI͹Ҋ~eyÙóQaçÙ,’Ê'îÊèTmŽEÐàŽ!Kð>) j NÚ7yú3óIÆÎõt¿£ðïÇ©}ÔßH牨 QuUC¸Zàq `w˜uÚØvÚ¶R;¦e† {X SÍ+¨ðO¯SýO›b tHeNìQ)¤´Û˜ÞÁZiÖ(ßÉ•$ÿTªý>ÆEÛ$$p…åz+Cæ+Õs\<1n>²Ž)=xtöœ)6ãäEº^ð2µˆAÜÄÔJ´n[1AhSÞç`•ºÂŽoV0(Þ|ˆ±wÁSk‚náNa Tä´T\‘f¨Ó†º¸"Õ •¼ÖþP%}s05ŠD´í…è b1ÇÁ+5´¸tm»ñæj&¾¤w¢wÐóçlZ½k@B˜œÑáîõ¯7JSþ éÒCχ>dê¹Éµ”Ó BJéÞσÌ»‰ó0÷~•›?´xæ÷~þ™›ÍŘïso¾µ³œ-ÆÆ®ÜûY£>ÛqGh äñD×}“=çµädÁ)ÆQôŒÇàl¡ [9@2§zG\M‹´û_¢˜¯é-À¼€æýI‡Ø_æÃ.q¼±)2íx<íAiÉ»Û÷ð¨®ù ;¯ ßÿjrËW“P%êòúP½rnêÜÿÐ+‡ùÓa‡}o.?ÑÁêtNsØë~³™C@g帙=·1sônà“7ó“ZÆ™XúŒ±óÓ^?½©¸•Å …;h£r 0UÞ_9•@nn~¢M&$°¨ÿY‰),ƒ‚ü³2]ŒÑR'×€K’3¸ºfÚzÝä“– ºªÛ¤aµ¸‰BPtnröÒãebRçv ^)ùb¥Ž§©—®å]uK‹j¾^µ¸®âºÈrâOÙÕ"ÌÄÙXLÓ–O]Ö cQË3êX?i\ mÖS̨+Ó<¬oµpG…ÑCÀÕ¦ªó*S„†}¯˜?Bçà œÚ»¸Ñ²Ïcy§3­§Jv— 3× •¿óˆ$ô¯,"M=·ˆHT­ ðéÏ¿7‰}?³ð´y0?&ox€X³ãŽ…¢çÑd¥uÏK•Re‘oÓ=¿ë¥÷G3E»<_œRqëÑau-'&œÐ¯Š2ù±%vΪ£0\dí¸–wãèÞÚ÷3îXäº#ãÖÅm¸q=·1nÌ*½TŸ¿qËÜûQع̃iòFîÆä5FUwM“C}\*ÝˬqµV¥%ïD/âz‹Y\Y+Î,ã]Œ t¢:å»ãË× >6ÎCùÄîSÜr:ŒQwï† `Öâ¹{nã†0ëu8äSwCÿÊÍo›Y/K‹¿¯÷#6¿jÑÝÇOý 9(‰^áêINfÐÛJ´È¿õ*þ{^ Žþ ¾—3ÏǦæV6¥ ¢ö ©¶Ü:4¾Võì.ò™Â…;Ì ?h`v:õÜÂN‘Ä`•ÿäíôÛ>Ýôp`;ÊWØé.;=$h¯_ÀÓ  )lé,ñLÚ’‡‘‚”„ÏØxþŠ=ýþ@zÝÎÀÓb1þZIgÍ–j‹ñä—¾óÞ•$:¾~ç4Úïì{êÒKøè8àÎKCè1À¾&Hß‘éö¡z}Þ{6-M×AY55ŠÁ ¡|~°Äh¿Lôèº!ÇÎü¾(çp̶”pãvº†r¥>Ë*«ã8¯*&ã•{çãõó¼x“G·^Â\?Ǭ]å|Èo ¬½›ï"ÁT.KêÕ…¡æ…Žî–®áÓÍü­D‡&É:â)]ã˜4»ºÛOs© ,îà×=0A³TBEâ4$ùEŸ¼Î=7ñ‹I tá~16¿iöže¯Æ~‡î—Ú«U{fÍô [ðC «+£\sðútÔëùg\b7ûuþc0c|CñÅÁìŠ{ ZŒ?Cü¬<—»¢ŸË#˜¤¹ÿÁèAøÆ&e<î ž.øÍ=7ú1te‰’í…ÝûŸvo篹ì·ÿ(,3Ÿâ¿-Xÿ*äôC„sïe%o$¡,;Ã]È{‘ù.ä=)a”·’TN&otK„Ën#oòlÂC)oý÷“÷¼ê/ШúaÔÚïïð_dÄâ8°ŸƒZý§*§ÐèG slÑ»Kª*E«0ÙÉ»¹9 öÇ£ÿs“!endstream endobj 946 0 obj <> stream xœåÉr\·ñÎÊGLåDº40ö%·Xò’”cÇ“¢HQ”]&E…’åèïÓ <<4ð€áÌpK•òA Œ½£—÷ïgbÅñ¿éß×G|õêèßG"ή¦^\¯¾8=úü©TfX°ÒêÕéåQúX -™ö~efÊÈÕéõÑ?ßžÀ¦ÊkãŽ_Äa°^ß”ÙwÝ?–ÙË2¼( ^•ÙÛ2{Vfß´›Åa{„–B©ã—Ý?Ÿ¬´ÌhyüüødÍ™3RII¡¸)Ã_Êvçeöª É!¶ÛfAÚ@ñS¾íÎ^O+xžý¬ ŸŸœ¬…äœi3a°â¬qYf/ZÇá»2|4ÿuúg`Í,w+8‹cÄêôXá' h½É‚ ¯ºx»=Y;Л@7{Ù\$mv[ÝšB÷ùSÄ]¼‘×a,œ0*Tk„Ú(e4’—ë 2¬žWÂcáäj­ã–Ëê)l ¹RÁ[ÃÆ1ƒ š }Ú«ÜÀ¼Ö„7nò¬ÏゼïËìiwÁ7ó,òåéÑx’ñ«Wo4ãfõ+(“¯„÷ŠV°\IÔêŽGyæêèÙÎ*' EÜ‚ý¢Æ¹(Pn`ñ… %ñ¸;ÛÏŸ[ÖªÉe.dF1ðˆ²™Í•r:€êˆ$SZ‰Ä"XŽ«Ä"Jyá|â‹i U:ü+$Ò1ÌÕ£»—ÆL+”¨Ïp>2±´g¨Ol6‰§™Ø\ƒDsKá¦0E©pðà3ÜÆIWÍÓ“^’-_“SéQ`Oè©—iV[»t¸MJÀ“!d¨”töø="E ÙÃÚ¾¸xÍœVµ¸8 —\†ß—áiwÁ73Íâ¢AÞA§ÑÐNØ{É…+ÀÕʸ‘ÖI0žlŒ8»Ézfù^p¸ÒLx™‘2‘[+7“[ö3ãkç2·/¨M‰I×L?EåH©ÅNÖláøO‘²†k…›H:A˜jﳊi¥¦ ÎqÈŒ7>rŒG# «³éuèáÓ&JTÌþ:n²e˜V_‘%T¦kæCŽÔB§+H¦„£`¿!²ö†@xEö£  nßQ/qùRªóý%ªmåª_ÞLX–è’õÕδ\²¥y¢¯áL¿“\VÂùúMÀó™±^¦#UðÕÚË4 Êål¢ ª„ž0ÏY™}S$=ë D, ›€èØÆuùµo_k„£ž5&b°cµ˜Pá-®àOê™]Å Åp#9´ÇÚÖ4%x¤è]’zA‹t8Ü ±ðkn}ÓtNwÜm%d“uÚÌG˜7ì(ÜlÓz» X·‘Åxk*fL¿´²ÂÃYºŽŠˆ§<š™ˆað‰)KÒ3ΆFiU6‹‘».Ó,îñ.±²7Ìy›YùÇåµ Ó·9 ]gs@ x”Ùæä?ïcs¬Lè»±­lÎñeøKûþ‰³ä‰UNë;c (ˆ¿Kl¡ÞΘr*¾¿pÏØ–÷ž‘¥–ÕŠGp>hnejsAô!½ë6ÝGjߪ|å@eÙ¡a¥Vnd•¨my…;jØÈ×âÅôᇄAg+ë´Áå£úw[J®»$qTÿi?øá•5DHgº:;&;È*z™Ð®IÔ¾Ì g«ç¨©O¤±A§Öf/¼úu8 Jûô. RYÔá°"8püuzb§i²"‚¤‚ä¡+,p­@^.&ŽÏûÌuV1TÖæSv°¨Zà …êJø˜KPŽP”õ.ðw&ú)»³P¾J‚”m‡¢ù2ÝK»°´ËCç6BK–¿N›Xa‘‰O­‡  ÞcÞºMÄŸ´Ãöå6$gîA=:&ÞÖ«$'¹—úst<Æ Ù>ý2 ®¦˜hø´MÇ%B}^ûZ3PÈG øZÊML€K\p=½Y¼# ²Eýš¾ÏB±Æ QQ¨Ú‘p¬„‡_¼áÓ¿”AX…¢¡¤ÈPSˆ‰D¡^'ª£¾xbãN¢ÂÆßyoƒJ¢2… èý`×(„”`v”þБ$aA~¹[cï57…i?Ïìã©€!³&nʤ‡òT6òJ_†vW*ÔiWøZ‡3Ç!X±F×\¦hçîdmú Ír¥üV.8ž=0“zþzN Ü¡ãöGà"­€ŠŒÇš0Ô%@lÐÎVŽ+ÎÆ@€^¢ø=ØÉ p%T̈øšþ´§»Ò«@¶À‡8|.nëWpéO[@óyf±õødŽ[eÍĶö’T ɃÐñÛF®ÛlFŸ’ð \©µð,ø0+É¢q?$ö÷zNÄi’ i„I)ƒEóUá.e- 0¦,¨½l_ÈKªÊʬD)Õ‡äŠ`À†û Õa¸Sèž…yf¯€¾Š›‚ÓlïäŠDÓ]r{sEJÆ Qeãž5g¤Ý¾/³§] ¾©x,¢SºbÂt‚ã„û ¶€=MÎ'ŽÝÐ 01<òÙÄO\.ÓÀE†ÒfïbºR°:¹H$Æ ÇË2|U† ãìe¾)ÃwÍÏÒðÑ¥½‹|<¼ÒÚxª&áÈTfîCUƒºæÙˆ4“ê4®ÿPŘÅòˆ«.ÆÉìMÙ÷Ew-¡äyNµ93¥æí­JaÕ‚°9­Ì³?÷‘U‘‘kyÚÎ9Äǧ©œÃÖ"¥ v.-ÛTà¶]iYÚ!{³r«Ú² ÎÚ¦R¯~‘ÎeùÙE—*m§0Lx€ú³ÎÅÓS ¬#•a-˜WóÃ:ǹvSœÆr#}L®b} ˜µ~òDA‡9´A—.^$ä~ç]ðÍ?KR'P]7øú¨ë• ÓÑÒç®¶ˆqFJã€}âܳÁgJà˜ßwu5BÔ'È=ÛWÉîÂ`Ödy˜™1&=>Qf—D©’%Ý€xð_=ØÅMn}9µüCˆô¢‹™¾²|ˆè„|"õËð Öý¿Õ/Kœi"|í¦ðWp7x—ʨöjžÙ+P‰íq &üÔ**z] seÎÎH>X³Âòc¥TÔö6m¨œjëM”ã ÔÕ6Yÿ.“tç¢f²õ{½ƒB &öCªïÃd°œ£+&ÛX ò°.ý1ýº_p±Q5 SM ), e7wþÆ5ýÂßT¤ ê¤FA¿™k) kvj)‚¦/ [ó1V?YǤ±¹nPÆòt„UÊçXU»îQÌäD•°°†·›Ú FêzΦ›I]¥n·I¥iUôBåÚŒò½Ë<1òDS€sgUéEº©²z÷ä¶õLj»]½,‚­[—µ¢ì s¶Q8‡,ù`O™ô¹ä3ÿy’Oá%ã.ÿJáh*F7Xß«±5¯Túö s'yRøWãnÏŒ8Ý[Âô lðàhú`C&¡d(úÜh™åŠjiÃ5kŽÿ~âA.|¨ªZG-e¨³ 0Oÿ[Î2Ø0RÞ㦳ù‡ïOêX¬>¸ä/5ûWú «ŠjtЯS÷!å³·óêð_>ÏNÁ2eëð¶lêLÆ?”t©Ží @Ú¼Üd ÜôÅþ3×xÞ}ÒίkܦÖDTåŸQ÷0áõÌ08›ž^ÜSÝæVÞtÛØˆí¡H&ÝmÍ;Pº—°•é0Rêà¦új¯ƒŒ±•pñÆÃã-ð ØLä`¸}i̧c”Óø2­Ñ¶.àzæ¸ÙÍ\Ñ%ÿI[·–k»fŠÔóªÚÆY„éÁ]Å H¿ùj± ر4ññ3y³ìA+À4€ŒÊ, $æ*]^mx× MZÿû#ñoªÍçó/Ê’(nÁƒ—bCS2©KÑvyl¥.1r# ξ]lÕ%eËž¶,t³¶Ä:s§îÒ–¼íÔž’ä&˜Äò§Å]ǃûh {ï˛֎µèåëÔ¡…¿W[€ºÕ¢~Z¶ÄÏ % ‹<ùÙÐÑšIòüvá>Ùhñ5~ÙÂ…J’'#`—ŠÕÏ¿ó(îîÐ&8à±+*v‰ Gé'DZ —r•I¿L³Ü>À#wì(Mø~ñðà°Ç³%'Ä€öû¹rcg´Þsº‰4¾:é“úmÚ3EM#3vmÓd>ˆ¿¬z»zNEÊ¡¡'äÄ¢T³Õ¯YíhPu d¹êˆ×`kõØV]Ç7‚ຊ:Žœ€‘Eç™Ñ˜¾tMWxÀ’Ú§+< MR-ÃVÑß]ßu⯑…¶ûfƒÉúÈÛþîùó2}¾«ÎÜUwo&¿O熣 ²kÈ»¾J÷™9áæØBð« ¶N9$Ë °Uÿ#î«ð5·»|èeê• ²« €dÂkÒÕ–gîÑÕð“CSáþãé0øc™}Z†$³õe™%‡ß5—Na˜¿´?‹Ã§eøuoA?Õh1b;›ºEüK0ô4F¸íႼÛгK8té.6=kÍç3pkî$d/6µÆÁ‘Û„v±júàÈH™‘cf;ÕFC%–«NGtt]ièÇ K®jéÝ"%²ð«þoD½>7é·‡&á\yW´.> ðM¡Áxy1rÙœ©°ìzô¡…QTp  ßÏ&hÁ’ÎìGÁñu¶£F©*vÊvØ¿µ)Äûÿbuµ›9É˜Ùø ± Ñ®~jœñl£T H;ëm¯À©ÄÈ.ÒIJº6f"ñ#‹˜IT:!fUqAýä£ÂB§‘™j$!ƒÜ6mp^c“:A÷(èÿzÀÛM”OÆFF7x9vD®e©øZ׌ Û1Ó íÎ|6¤˜ÃfH'±ýwebøiŽk˜1[3òÌÖ¶`&n.`þ8êÂ(æ9ÁLÌèÂ<·6ù«î­¿-³ON6Z_ôô­žs˜]o·Ác8éÿV†‡}?É0OâÄ}ÞP2íÿ¢df¤Ÿò̽ÈS9ؤîÀy“þŽÇôŽú¨›1†#ñÙ¿sÆgõÂtÃôA?­VÙ­ˆ5»Èï™ A¡¶“z± ?<S?³K¸ø “C)ê¤ÈlýaÁ‰Ô¡}Ñ&Kjbí)¦ÞÊg²à8k«¯ïUaŠuŒä„ž“FB©ËoÍ´~’KùóÚ4Wiø ôviC„=`sûež¾Õ¹ýÍy‚e¡©„¤óS”ƒƒÑ°î(âôânž½é¼î±.D¢lÑÏib²)àÇÍ6†âr†k='\-ZW2³üàË«àùrýÆp ɬ4ǦØ5mTÀÏç™}, ~:+nÁ8Ï]Ó¿…©¿‡…Q¨Df ó(±+—"ªz,Ž6ã’Dd—…34Ô5g9°€Ý6× Ù8ˆœ9¤ÛgÚýpô_kƒendstream endobj 953 0 obj <> stream xœÝ]Ks·•Þ³ò#îòÒe"x?¶c§bOÙ“Äæ$‹x’(RªI™”d+¿~ÎÐ4Ð÷ÁK;3å…Ú }œÇwÀýyÙØpü/ÿûêöŒonÎ~>±u“ÿyu»ù˳?þ <߬´zsy}–Þ¡,3\m¬SL8µ¹¼=ûçöÕùgÚrÇíöþ•r:lߟKÏFm?Ÿ_(c˜ fûû*eœtÛÇÔ켬†x8¿Œ[íÜö5i~QFþ› \U]®p@ÍlÛŸ¶¤Ï>g<|éczVZ  °´¿#„e"½p¾¢l?æá:Gz“AÒu¹‹ë¢½«¹O‹¡ƒªšß_§éX˜û>%Moº¤ÊX&š.i>vž|œðu|ÖÜJ¿eç†{¤Ù^B_É• ®K“·@ÌËá¶¿œKÏ0Ï4+ÃŘKþçò?ϤƒoÇ.¯€£ò(éì4oNtnoaHŽó€ïiiMá4 Ë©ô0Lþž!.W\gï·/Ï/à=˜Fµ…HÎÅDÏ…Ìh+*²"\ –:í®4¦Úú怣(~ D*Ç×՛ר¬˜ãë<¢’d>S~âùØá6î ¼5ÍÞø«ÀZxºKש»š,ªÀ¸ÓqûC5?:ò#>;§0Y~¶^VŸÉã ·ZI¦„бº°HÀ ÍwD0»óÛ›.!/(¯–1Þ¤ÏXÞV§ÁpB‹yE,j…Èä6F›‰É©ª`Eÿå®ô-ìEzc,ƒ¸AÇwÿøƒT†ên)`vÓփꫵdÞonÏ´vþßwg?áPCö)ÁLFCÿÕ•¯"u]‘i®f‘øtŽ6UNˆ ñ_êX4"^Â>„¤ê¨rd¥Ñ€K3ײôH8o€'`œU­í$³ ¨7ý)ž}¹‹©·r†I%+•|GzSÝ0²ÉÍô‘¬`Uk… ÕÈóQ xôát^3R±‹rYž”­åšv¬Þƒhkw'&†zE@Ôb~Šy'{3‰t¼¨±SœT˜zD5'¶~š¹b ¨@Ÿ:“,F"k 5QÅžá‚€î8ªGú+‘§aìFض/7è9(Ôþ®aœÐzÕ(Ð]#åUÚraLÀ,aL`FX…1ðî)ˆfÎÛ à}}µ¨DË×èýôÝp(Ûí%Mówñ@+ðùÄU´;r`î¦ýAnKjÜYaþ°#þÓl€»¼IWaäÒýš·P¶\?Ëá¶Ì쉸Ú{ ¼WûoL´ ~/qÜÙ¸?]g01¡?€e™î W‘Lü|ÿ “Ò(aÏzpdØ,¾xµKטzúÈæ]ÿpwðAÔ¾qô)>–ÇwåñC·õ~ö?²oÜö}Q_Î]GVJ2|”ú|ZE)¢rFT.6€<Ûæ£Âô!uTÙiÁÔ^n_½¦x‡Ò]Ä•uèÜûcŸ³Þdâ¶½Ïc”Uë.=d3ÍÔIm~£2wB-´9ö6öxû:ŸT4AŒçb00(%udŠT²0i™`¶×YH·p?±wmâ]ÎbyÃt ÇÂ9¤qwÄ.tlën{‘¨®EàÙñ¿,€I¨2d#U¬Pÿh— f £ª(—RZ(ºxIÖšà?çÁ•áÚûªÞ±.¶‹‰«À¬›ƒƒœó ˜ À¸TëqÈq°Gd%þùc‰Ž|UÿRtée·Ã7Up1{`n°rö•ÄæZ€‡‚š[ŽˆíÀ,¤!@™êܹ*tܔLJB3‰‚¾/oº3¹o‚§i„‡b+ËãëòxWÿÞí@F 6è»ò‰ûÒZìU=;Ø:.ß—ˆ™Þ¯;#ZÁ‰Ù²«5°«”(†s‘B'k1Í"fìŒ"Λ¢¿V³õÁÕ*#7 Ž–"Æé­+­ŒkÍq j‚I§E’ÆH–vãd ZsÚèÁœû¤Ÿ,e­»ð‹ Õ’SQÏz ÁBÍðMIB­é(nTdú¤ì­_X5;iuæ ,ÃÇdÎ<sd«ÄMeÕ‰¼H;|LXG-ßuÙ•ÈòŠÃ ÒÐÚ$ !öµ$ØÝ[5[×1$4ivˆ!‰c›¡£yŒ!‰(ÆÊg‰¡åç¶ûî@H+©øˆ%j80.Êzž]ZÖÝ ÕrV[¥QG'Kƒt!†i@ <¦ÔÚVòS/8$.†çr%ˆ… #Ú²„š¥Õ®|í:(ˤªÔ@ãÓ0~ãRV›¨è¹p ¹NS9¨añÜ¥"nÚ6Â?hĪ D,–8XUâª)ݪʉ5FÅUÐS>æˆd?~Ù×é¢,úI;xE”bÓá8Í5`.½1J(ØáZœgðõ©åCË*–ÂÓ$]ëè÷¿i ˜³’SyL‹gŒ…Þr’¬ ™9Dý‹íI½c|a¯ˆ©Ã%pûÛÔÄÖ]õ€Œ|˜½T€MˆÞbÅ] ^‡JÌ}¯9ú÷v($KñeÎÚË…ËŽò¦`‰ Òûøyßfwé¨íî8:¿úe‚G:‚øÌ8{;» Í‹B†Œd_Xøðñ+¶j †ë†ŠƒÒ2T^Æ)ÍùPÀA³¯I_l³5 ±6@½?ïåbˆ3ŽÝO=h i%í·SŠjSîÓ²9î÷äk-ðÝ,îì9AËŸ`*péÛº0lÕ^ •´ ††u{e*Óœ ß ‹â¼rõ C¬ú­lœä¥€>3sdº·Fa´:ÃÞŲé{˜•Ý/O?uÉ&#QT»õû—JÛc1JXî(!”‡'´ñ½°Z)¡ ˜gÏXOýûfu*Õûîìò‹R«ØzRëCylcI4د۰RkmËk]kArišcŸ¼€ÜÄM£sb¥‡×õJKin¤8šð+‚ð0NS»3Ú­eQTìN»ük@ÁUòŸ,€¬Ai_#qÂ^eÖ}®0 º>XV^¢‰Û€¥`«0èéaÂÌ-Ç=½a&¸BóŒ`úMéðm7xù¶¦ìDâ+ÛXbr¤g¥·OabcO©Á Å5ȄޫB)Ç‚î&ž ×äbŽ‹Ëš+¢L·\‘Z/»¾©„>rÀeÉ‚Ûh«a'p…äB3åç–#¸†€ÕŒƒ‚3f~ãPxl},¯Ëãݺcb@rÄm6F»½êñ©–ák,hÒ2†¯VÎJH衇Ÿkd+kj%MíÞò˜JŠi/=UdÅFgAî0v iziº…ÐiõÌY)‰ªêKhÝ fÑ$ŒiWCNXc+¤Y9Šá¯bŠ«Ñ^ÞMp­ãf]ú=¡0ΡªõŽG\VÁ·@ô»ï»]€1À‘Ýo˜;-â¼Ée Àw÷lW‚gŽMGöµªEÊf;A@ÓÛVg´9³›ò¸Pa±õº<#÷¡ymņÈ‚¡ß˜•«Ê†Ë–L’x’d\ ’ñ¹KŸ°R.Ø-kyÚ4ƨ¨<}…§š ü .ãïÍÉ Ëîjå½4¿kƒÑ.QijFÇ&ÌŒ„ew´¦Ï¥4”U'|_Xó¯åñÛ™ à3`ϼÚhÀÉ´+Ë“zn9*Ë SHC€‹˜³Ü}Ã|[äâ¶G8”8o8†lŸBÄ¥! qwxåûj½–¡[p¶©ƒ™¤"n³ï{3î{g}¢w@UØô"§wSµ ž´MN¥ã­\¯„B”ð'(½ýïV ®Äœbâ|¥r T ¹ŠGGÔ°”wTŸ5½IÀk‚a¿·zÑF¬%N¥˜yY3ƒ¸VãÉì⢾ó(?‹ß±º~5gÌñp‡œÃ 4ÛKG‘Ý›ühZçEŸSùæÝIŽ’ À\$ŸH«[§¤Œæ ˜ë•—€¥SŸ;:ž+rˆ#0+ºg¿ã3MPöÑ iýœÆsRÓÖAúoŸŠó67îAzÕâ$JŒ½HÙD_RDæižMŒ“ˆeÎ')úgû‹D¿1ÊóÆÂiÁd[m“¾¦×¤,îb Œ¦ƒO‚9û|õñ˜‘Q=йÎúó–<¦¯ñ:ÜJ*JÖ¸8?Þ$õj•/¦™œ®0㨮3{´KÈ×w>æî3sVátŒVÒ@+ÆUA¯LqÕ¯ñðJ$È2¥kð@ݨÞsd±[{ÁœnùPiX:»~êºXCOĤp©RQ9(m1ø¤øHLqêäµ£˜1´<·ƒR‡´LM®§¾Lƒ‚FÛŒçSWÈUážõP¸±Ìdf>#1鈊9›´YÜ尿¬ÎÈ\'Z #dø¢kp©ˆ. a¦³††{Ö3kp:\Ü5`e,Ù÷pÍa95ÀäÚŒsjLŽ1ÓÂ1/ê¤&Ý–‡› M–•wq§Gd6šÈ‹%ú~G4¼»Ë‹¤FÁßQ)ÝCZh_Õ±G]ûMÑÌ@St,IõM…µ®SeïDÝjÿ–qõEË(Ü>8B¶8.)ªÍ\£}¡ãpe«ÉÀFãQ˜Jƒ–?IJcÂÜ#8*h Áðxð•"@9BÜö¸1À¹àêcKp×ðýëé=MLRƒ¹º8sLÇãÜ›¥mÿ7*1Áe ®)bKh0¹ìe(É |P4sË1ù0ËYHC°“ ù¡›áº*#6Ɇ}¨æ¼Lü[ Vµ©Óz¦ÍÍE@@ðõF¬2ÀÒ`ÛÍB"ä‡ÈURaãtApøTé*œ0*Se½±V¿b½Éè˜ËùtnãNF=ïyo§ãu.¼:ŽA>yZÃ… N¦ë—¢ïqâ,­ÅȦÛ(Á hàJ˜³eÚÏ-Ç\Fh 2Bùr¿"“_¶3y¶,­*!ª™¡lIÙ•t¿«•¨)o±åÙï­!@¬F²ñÚ¯Õ:(Æ •=ïÒ€¸<ân1^¨ÜÇ¿¡Ë1:ÎÔÙk#ÖN¨XÔ>µ9Š®|ˆ_o5ï3’Óú`NDª GÖ˜û>¦88^б¼Þ$•Äï*{º8ÑíÔ›Õ¸8¹ûxƒSëîWd.Mˆ;¤êZ‡i BVèv¹*Ñññ­“€Ìž}"©vzFžýîr£WE.æòÍ=®H—=¬_yêMoÛÊöI-UM¯DV{áÎ/ó2ðö äÌÛW9´)üVfü*a?ìÀuçv—þ¾,jFèHÃø ïƒ àgKó3‚fL¿¹ôî‚´ƒâYjÍœ·ˆ­ÁiÁ¢ØwÄÖSË1(Æ æÒ Vä PÌÉkÍò±ëÒa1)Ìý®ûáWåµïrèéj‚™¾±† P€+Š5nyo Üýœ¸Ð묚só}á¡÷¤9#bœìåeÞÚ…”%`à­ <õÈàô,†Ai¹‘>Oö Ð> QsËQ@µ|dzǵ ^ÀÅX™Ô¡>©â8$™”ÅÁø“&%ÓÅÀõ¤þ½j4¹ ‹që|üÚ©¤5Òb‘×~:¯—t;3‹ãÁ¾OñǢў%Hláº<.T9#Óžœé«ª–†…†ÛOU¥×>u;ôUU{*–ÞV*çúª O7Ç›"ææ«îhÄ&½ì~™Pù¾!8ðº»Rý âÛ. wY·JSüEyÄû!’æ0µæH‰§˜evÞ®C®ºlNÔI£C„èó,NN÷LÕ‡îÂÝt×û¡· -ÇF%\c§¬V€sír||X#”iðQ Èuÿœ™ Šs¨ü¤bß.Ñ\Ücú|Áú†,ØCwÁ€e×}€íýJôrAòµ_‡Jw úñˆÌö#^Ë–Aÿ×q)‚×xãNá0LTh(}ê Ð(<íC|‡ìR€ÇÐêÎtP#ŸøÇz†ÃR\bý´£w0fæ–c¼‹ `yq¼¯r·ÿÚš…ÿ/8¼–ë–=°æÚÌ2y²´”Æü©í]ȱˆ-Ñ0ç>YýÇ4º_ž,21*^Åß×Ï£›µðÇ, ¬Î3v.àEº“’Æ€‰hË›0–µ}\ Z,Å’O8ò©FÙþú+Äs(ÖEÏr¸ÉÛ}nŠHÇ5ânωS綉SÇɨÓEÃñ+ÊêƒÏÔw+?>ç»3<þ‚R)¡íÞ3Õæ}"‹Fàuê‚7ù“òˆå¯†ˆÅÅïççÓ‰¶Úì4£·^˜ÐKÀí*ƒ±6¼©Š·BüýxWGØ÷9> stream xœÝ[É’·½wø#úØã`ÃØ—«,‡%‡7I¾˜>³‘³P3\L}½_¢P…,tÕ°§kZ–:LbI¼L¼\ªõãZ µ–ô_ùóìf%×W«W*K×å³›õW§«?|¯¢\'‘¼öv}z¹êÖ¨µ2^8iÖ>¡‚YŸÞ¬þ½¹;‘ÂlÚÜžlM’"»y²…ØÉ$Íæ ]p1êͦÄ$¢›‡`Mˆ›·46ÆÈÊK½ ÒÓ¥âç\vçxH9§ßä?§Á•´qüJQ å5]ìô—¸ÁæÊ$•êðš†V+cpÎXÚ ïêð¬ÙÜWu‡×ƒ´S¨ÁØy@™B: ¢ƒ>õV× &~ó_Ädšo¬!̶:çÒæ¼±AÒ™˜õ+ ÞŸl•Þ¥ahœÅèaµw›Ï)’íö¾˜(MÍðšŒOÿ®”ívWìm×'»èbõµy×í eZ2ko¶ kdHå8¥q§ÑÁ÷ã W®uÆva+¹~ü óª Yt«LÀ¹ë­´Ö«ÎŽý5Âhée§@²ùÊS& ;“W­<¹\Šý‚?¥â Aɰ¹ÊKm nòAx…÷äÿû!{k´.lþXÝùÕO«”Møfää:]}G'¹¸¾zXY!ÝúxçÏ+m$ÞŸ^{/£0ë 9d/¸^ý0ËMÞ=7a¡»„סã¦óªÙUÞ×[¼ªÒwuøfònw“Ïú¾Jêð¢o÷>ˆB»¨Æë|Ê[1œ ÌkUìf}E³4,ïüÈ­f<…3'],%ÔœqÑhžbq < &m—iJIÓ<×A‹ûn½Ö }“Ð*;rÜòãì=®iœò1kVhOëßÏ;æCøÖ|éC§ŸVôK™4Úšm²K±ÄXÅðŠb-<ö¸š$¶Å;Æîoº³=¨«¡wR5jçh:™%ÐeÉ¡´KôÛ»çc/!v¸«DxÛŸç§àÈ›ôW±{^ýÌ&ô _¡³üËÊÍùôgZu®Ðê£XÇqøŸÞ²O°f–_‡-ñzÚ¼ÜÔKwOô= áZ„dbnæXÁ‡îYkø+ÈD•DL<É Ê ŒN~]p†w±U—T´ÞÌ=œ€îB®Í¨ Õ&Xéuä3xÌLÄ6=Ή, Mjä F¦Ãn~ß‘Ü}w2áµGfz[ôTóQoœÇ’ÖZ¦Æ¯¬B‡G#'cÁï˜øvlPÚÅj÷dÞö{yÂÎÇCCy–õQµpfOÏððBÏ2ÅJÏJõÐÉ5~JR…›Ï:!y”‘H÷wÛ |sdœ3û·,Wçò«á”Îi»3Æ ÷.}µá yŒ“Ú÷J6“š5N¤gŠ2¾¹ ŠäbCT´EŒãÃP¹Ë¯Ä ÑøÈ¬ÁßÁn„U!Ù1^q¶™Upž®‹Š‡—Ô ~Cõ6¿œ¬˜YæÌ2òÍ„vÙdt´7íOûxâ,_Û‰)ã÷a?Äàà€’àoót'­éí¸·É\òƒÉ£Lž&ñž?9J<¾#qΣ-ck…tÏØ6Œ`ÀóÝԨћ\„JN&yãu©iþŒgtÕëž½ì0ãÓ q-*ã0òT~ŠÍ€ fj{814OŒ÷†|»É½ùS¢=’Q;= ºŒZð4"ªZ§ÇÅu[_R\2wi ¦¢+¡’6^Êá¯ÔÑXå¸n°?s ´Q¥†ÎË:¼†“L”0ÊO–>°8Ò™ö’z6Ö“:µ¯ÊiN9?E~þÄ-‚Yo5½IYï³›i”ÏwÁz銩 ¨dÌJùè• ¤6æxb`Ê裥6´7àMé)­‹‘Zjù=„„³ÂhvLvr›œTfÚ%1VA7…GÚ>ôtrÂ7ƒtðL壃âk‡X;Ã3qg/l$8'¶@ùC›‚›•æšUj´“¾ªÃmo²¸É³ùW3agÖþëäÁguÙß&ãŒJ#$¤Ø¼‡6õá\ö…%6Szi H›d’úµ<°ðdµÏ(AwCÏv”(±pÂUâzœ—i‚mrßa6ÜÒÂ`G­à¾Ä fÚ¿×]›Â¤¡4UvÄ&%áÂâ7ÎéDj¸ÊÕÐÁófH%†§\ÃPØã8~|ö¢SÍ?ëÈM%š)G¡DMΦ#¢Ž”‡:„Dp~ꋳp2è(XsÓâ8ˆ'#’@©¤Þã‹ÅSCWˆžŠc`C. o$‡„®îé¶ðXºòðëÉñ~*;›6”w…UÑ5®L=˜5©øÜ™=ZÛ¹fßU£½câ’w€wÊ{.ÆüR>¢©QÂCu ©/g†ë³øø¶J œµÁ“ŸÏþZJ/LX[èF%æ $V‹ƒäïS’ª“¼)`ÐÏ•[ïa äróõå¦É1XæÑMfiÌß­l៳rAlEøg jB"#]2‘·Œj òׇ‚<Üú÷x ê:³ûLÛTñ²Ý,0Ì ¬Øy1*k¶>“sh’…çƒ\'¤äHÀìP0%‚\"%i9VzpеøGS¾»þ½êÁ~NqS«Ö„¨K@5õëFæ~Ýý.G!‚ꬦExDM}Žh‘,A”~OÔÓeÝ4†sxV\UìØ¯]^Wi y7Üòc:±v²qâ"Y9ÀŒÆò늣޳_äŠà±ò"Y9”ÖñÈ^~ ä?í yß}}~ÈMJô †AÞK@Ž-摽œËC;a¹—‘ËM FDÍ!/’%Ç ¨Ç¶'⃔À·Õ´{^gˆ¿ªÃ×ûDŠA½MŸU9øE²ü@½TwôoëUÏ è{­©ÍÐ/’%è#—ûç…ûƒÏò•»ßø6eŽ`àÉð‘•;õl®Ï>ä¾®W½þÙÐ?b 5ôiaäúE²}ƒBö€8Ëœ¼íì”DÇMàgµõByŽx‘,A\SÝò_mo”¦GsÈ‹d äJ‰èÒ/ò}øãA®SÊŸA+ä½dä¹u&÷÷ò)VVô©¬®#ý&‰;|/Y‚~ô"Øý~)ú_¬¤¡D†×Áæÿ烡_$KÐG2Ÿbñìèÿ_óIö¡ÿŸuøípb7êH?äÕ^E‘¿MD/…Ô½àOphÙí ¼-Uêôo"n*7¥?®rÜ'Ø%î~W˜X6H¿ØÍ}y2‚n燺”Lv½Õô>”èK2|º•Ãpð»ÕÿÞOÌGendstream endobj 969 0 obj <> stream xœíÉ–·1çù G¶Ùƾ<ßl'vrɳ=7ÛF[BiìÑK_Ÿ* »QØšM©X/z:¯…Ú7@¿oØÀ7 ÿŒ?zqÁ6O/~¿àáëfüëÑ‹Í×W_þ(¤ÞøÁaÔæêÉEü ßp%åÜÆX5H-6W/.~¾|õ•Ni{ù( ½qâò6}}Ýœð,}}’†7iÂÓôõ.}}˜¾þV.†7Å\%¸”# ã×­fÐ\^þrÙüÝmúÝ›ôõ: wiø8 GÔ ¥™6`Ya,™³–OlP­Í‡æQ‚‹¶©ÿ“óè1ú2ó £§Àè.û £Gc´ôˆ"ø»ÿ#ŒžÄ2=.@]ÿ þèŸÀ2}pŒ~òG?8FË$L\áýGƒÑ“èÑ“bôc×££{=ü{aôO GψÑÞ{ÚZÍø |BÃi19ÿò @?÷ŽbÀÔƒ°˜°õƒÑFFx¿ *×KÍ|BJÁ4¦ƒÏÊ äñÞÆÆ9)h½ ³ï¸Š3‰_½sKÛÀwÃ,k«'ΑÝsn ˆ-¹-âøª9áû óÛ¤g v!œ%AviïÃY° ºÉY¥zº+ùµàÈYaø,Mø:}}“†ÏÓp—†7™J­˜Ì€–f(˜ 5H$~f2'aïmà%™õAGKnà¡BG7X1ðÙË6¥/‡[¥Ì`8¿ü{˜®™ÂìѶr×Ì*"‹‹8ÃqŠZ¸Y§'pÃ&;ò»ž|üFXxG¾#ÇK ø”³°éxT’Nhu»µ@W—‰(ÜÅCñ»¢@6}g[&© ¤‹P™$Ó)ò'rŸH·7"ÃÉÃê pÿöVƒ–B*`Fý›Ý'0ò_¾|€¬%`M \:²æMœšã…œŽ°îCd%Œ¾|ùÃsEÿBð$'8~×ð/½é/‰(ÔÔ?ª$,9Ä奰mu¶N¹å1èhE/XŸ²¢¿>NCb}Héÿ.3¨•Ü+„VñÌW$âåÜ EŸ3Q2Àsj ÈÖNgÜËÊ¢yŽòýq"¨Á<øž ϲz¸ÿT"H'*„] ãA½Œ9‹¢mRNïÂ]°y`i¢2œÕ³"»8[j¾VÑ´²¦;<‰àëDñQbÛY´-> "!Sâ8¡íü+»àuábÜ„Qìœo‰º"=Bì8@ïþ€b÷~ØÀEWìgrÙòáôïO$vä²;¤:GÍ=ŽÖK]!ÂT4߿ą!˜ã¾ËëÄj¼Žp¢‡ºNêrcÅ ˜*먰 P ­8_ÖƒV£X…rƒo‚eFûºPêŒâ(  ;J­×„0·1˜âèàbÀdyüÅ 3©éZ*AÎA»J-Ã錓¥E…°Ó[}˜*ÞÅÕœÖçÕ _àa€«½ZëTYTU¦³\Ðòž¶ 1FÖÈI¬Ë 1!|›†ÒðmVŠ(|%C’Ÿ¾Nß‹D3a¦r€*ÒòÛKXF©vZz`ʱYc~޳“Ö  œT®pØøŒÏ&vYŒŸ×üµH)É êbãì¿D ¬Ù\Ü Lä¨//ÓK:ÒðmI¦òOuÅ!|%ÑÏÏ…¶o ^¸õìió(4»p>ÇSß” &Ï‹gáèÓ(d`*tª=ø¹y"é0+è»'*`¯A%t½LÐN®i’— ÃñËvªf&þ“Áå€0®tÿAèźNßìp}æƒlM9©2›3.¡ý>½²ù5@%s·&è‚Ç…6©TÈÓ4|ÕT7¿5vWè˜F4¡¹(èÌ19â¨AôÉgm–­ÊÄ+“ÀsÉã±÷rxp5ËKGb™¹íÆ!7ç 3@®6K!=¹6×ÍB-c]®Öl¹Ä8@<í6àÆ–8.ë àvq1Ð0:•Ÿ&Kqw@<’ èD^TòFd37G+F÷dϹ}”B³ž„™Äsy«+¡åá>çnÒóÁÞã™Wq†ï{$Ùñ¸nšâ1Š÷(]Ôç¤K-òœm– M2ÍâSÞêIîÍ‹FX&¦|l• ‚ »[ÞÓÅTxŠÌ>¬+„^Y@ÀÙªˆÒzmçP€pzyŽÎ )7 ÌÚ& Vƒæ/GµM@|—¬Üß6Q¹¥í¶‰ïНÄþ”–¦m^€BÎÏ‚Þbv¤;)gA¿I㦹…Ÿ ûTX¡Ê׬Ü«°\Æ&·w+5•ž»S”cŠòÞý+@ËoqŠÂ¤DÏצå3:ç]ÜHõû¥êºwl6ú#žB IAÜß»i”L,x¬uñ2dU…ËC ÜûöÛ¡‚ÆØfŽØÈÅÿ2Z]®88Z%Q÷!Äú–ä8wHøP[v€s)K×IÅRõGÎâ²Á6A,F¶Á>:j>z=E4ƤNÞÌ6‚®B(Þk‹š~µ$ ®åMažÖûU¥Š¿Ä>â¬ÊP N‹Â'B±TP²%âþ4lé€ï‰Sô§bKòw3öØö€†Cl»šZ¾§äÅÓc;ObX&i€èf¡EkÖÓúd¥@XΖŒ‡ã0%ÆêB4î`kë>•VÔ%¨ß¸DØ—}ë ¿\Ö†Ÿfò§1œ fË•u œU¹¥B‘0ƒ“™9ªM4žûs]ã6ÒƒW¹ÂþºŸì ®VÔU0µÆ ö= K7Ý©« aaÖãÄÕùa>@ìÞ“@sMüb„Ó^Z„iÝßë{_?ÆQž8 ÖåØ ÂüI—2]¿/ßÓmJ¦Ðñs¼a0 .†‚(×K^ºʪÐz¾Ä¹0Åâb͹¯Ëîï}×Ó¯Êò2|æÚšŸéœ€¢gHD›-ÀÜ»ƒ_(oT§ÂHm_}¬Íüå: keõ€—÷ÖöaHæ§Dðœ(am Â`ª uÁIal u=Øo× uû-+c]ØÝ/ô£±.å¼Zë¼P´2i p0¹X*B4`wøÙ nÄ|#ùdXàŠêwÌnƒ.N-ceÃ5"„•.Ð¬Ø‰ŽŸ°' TB” f k‰øv›Ëòç$u0æµ#´¹§DÓ_G°œ„T¿þ,©þJ÷/êH!|­¬ iç)¶/€µØ¾8öÏó·ƒh¨Àû?åq¬×ú¡—Ò“ ¯È.²³Dßøt÷P$¦^k='ƒ* zÓÚÌŸ%¥'1 ÓW/´·)ž[¯lEÂÙØò²®g Öì7j7JÐ9exÒ©òÔ 0ä:ê²ÖaöãèjZ]·Œ…Ï‹#¢Û ½‡kØ<'ÔëT–óìw!¾òXÙ8:Q§4fDÊF(„¯îž$Qç1¾åË>Ò™Þõ[SuÙÛ“À°ÕL${5o¹ô"DÙ”°+õ×=šÌ MßÇx{ýÎ'«^ÛSùx’ðêþ43uA÷…–æL>žÄ‚oUúxð WûxxŸÍ¬ôñ ¾ë»dr!ÒÑ;x»ö±®ÛðOñ{´D"˜uÊ¿ ®:úå‰ö^ͱ¿sgTqï ÇñZµy. "¤é呃ß›À:—ãE:Å{Fk©š3Aººa'$„¤»G:¾Z]5¢ÃG4;÷¡}H²ñ<Dãv²v¯»ô ‹W¯MûCUâ9o}àUgÛ»x…(n¹ý<Ðötíç8GWNîÂth?Ç‘¹=}Hâõr‡Ê\—V»Àó¼ºï84m˃lËù—:gбœnÒ½iS|©M©j§í¬,œ¤Ñ‡RzëÑÁn¿kx¦ö¨C³ËÖXúÌ £c3̤\5† eGKOœÌ £¿YäxoÇM\¼ú­šþ<Ñ:zn`ó­.ÌËÊxÃí7šá†ó“˾¯Ã—bôúóÑE6|ëÉ—}öñy#¹üV¢‹Ù»ÀéýÝ(áÑ«CSÑ#qª@ ¹‚_š‰FpÞÕìÕŒÜbXÞšØi«_“>*ÓQ oi*ó ÌZÇ,OM'È#ñòõ> `0BTëýР٪JVz—å|¬Ý0älUšÔÃøFeWàã‘§+Lbf·NÎã«<&çLJ0ÏR˜Ä¦k³TáÜlí+ x0•ÖÛSšÌú"9švW¾Û³D%B7à™k“Rñ›/i¥xÕQZˆ7ç²0Å3¡Jñ€Y8™ú­`¸>Spl4'Ä J”Ÿ.fmsÂd¡c|Ÿ£ßÂÞ¢ŽØ¢®ö¯ôÍË{Ðí¶2Ò@Ö..¾Ÿ‡ktìWˆT¤yÔô$âÆ ^ÆX™‡'y¸²p)õžÅö—±H¡,`s¶“ n<#Æ_Ä[”šåŽ$••i÷,×P¾÷"#ïÁL,¬ö²ãfõþ·kiæé&‚€ 회<Š\W`_y«ëæüÿY/3ÉŒïÚ6Ä2o؈ìãø´Ö" ÑdMRÑ­cG†â¹{¾×qPCé8o_Wý›gíêl"·™¿ž„ÃgøC98þÀ$”åOš„ë¶?\üQT_endstream endobj 975 0 obj <> stream xœÍ]Is¹‘¾3ü#ÞÍbûrœi·ížè[ôÉžƒ$j‹‘Hµ6Kþõ“™¨*$¶b=’mOôA$rùrú—ƒ˜äAàó¿Ï߉ë³_Î$õæž¿;üûåÙï~–Aâræpùò,ýF¤v“ú༞¤×‡Ëwg=~:¿“±" }|mëmêøâüÂH7 ŽïÏ/T˜lðÇ›s«µ7ñøÇjm½òÇëså'#£.f{Am'¼pÇ8›Ÿ¬6Å›ù#ZŸbÓNRûã[65Œ€¹mpÇçlº§y|º7Å×!×éãQºánË qMQ™ãß¡W ­£_¦Ò‡b}oÓhL1_úºSËXúÝUZ‡Pñvª{$™œ„³1”|IáT¨)ŒÃµ5E÷5›œSðÅLneG²c‰OÏÿçò?Δ·“5Xìò Š-äùr¦ ´òn¦T°±§¹¹ÇJÞË&cͧçÀF9{üvÔdüèQþ.êbYÕ…„ÆÉ´8Æ@HíÄ„:~Äßzo4ç¡”[Ú8ÿï~VÚr!Ó0ƒ1r¡Âwð!©ƒ±~‰Íè€vW¹÷UwÀÛÜ{“›Ïó€÷Ø4Jj”µµ÷k3­­R$HÆumSÞbw+ *Qɸ g_¿ÉÍwy!ïªå¥&[Þ‡íå’²uyü>¦CÒZoñ£¶0[Ȋʆ{i*í$èÉFSáB„ MEMùk(*üvT{ŽöÑÍŠJDã–©IÒÞ–míâ:_@ª2a䣯Òhado%~±ÍÂFIàк“ÀY; Ü⨨¬ëñߨV˜úø#̯õä¼/ÈÅhL%`ÇJ ¯Á±Jaíñ3#Wmœ Ûôר@VõŒ§­=¨ÁX«mp£›\@â_ Ö1kàúPLÃ;þŒMó™ÑyĨWi‘A']2/MÎöþžÍÇwQiPëÖÈp¸üéìò»¿ÿ Å6F¯ä"7"€Æ…ÏÆI+ÝP,LJ†-Š­kŸI¼£%=ÇeÿÓJ­U#–¸NŸ¶°ÁgYu¼H{¿GÈ¿ò)ýPÇP)‰eê®^•ÖÁ¬‹šû¯¬ÿ’›?eµúÓ¶ÖTfRA-³UZÖolEº|ïǬF;åO_&BÊ ü´"tä¹µä5²áÄž9!É5Ô5S\W¬Íuój^• Ã!/>c_b«½H€K “ž brRWzŽ««Ó•¾ÅE6†ÏZÀ•¥ž»)Õ?Œ0±Á)Z©‹î˜+vþ @Q;þTµrÂVn$’Mô±k/²†õ¡uh«-Ø–Ð@ÛD/MG®çdá¢Ð˜¬ˆºdØDËϸ٠ÊÚô0"Ñl©X‘ò,!éž„\5Ä‹y¿J,±,#Ç a-Íñ [;çu.&c§þ:ÏË(¡3s†Zµ»¬Íc¥*Ç Z€³\eÔQÃ+çá{hô£7%ÉðÏ,ĦYÁ‘¶8Û§‹Åç0àé¼JµÓÓK 6±"Ÿ£5ñ4_óhý×¥<.¿ÅƒA›üd66…Á6pvd˜«#$îë1»ñ>ËY¨TÔü;óPxœt˜9]o·è@Ëÿá<|ö¡gyp† [™ƒïãQò+ó¬ú¢c¤œ+iÈÉÏ×ù›òˆ’r(n9 úÆôð¿ë¢_â1î˾K_‰‡‚q¸¡UÁ¬•‹ ’>àSÔ¢Ã]EÈ›…:Üq¯\æü£Æ’$ߋϒ”μ´Ò¬rÕ0ZVÅ!8@·+ŒõgåçÍ™‘ë@ú$Í­@YÈ“ñ6þÎi30ƒÀÍ ñU€JpJ!/·ò8P!á¬ÓgX±gíè7a6àun¾¬ãÔ|•gÈî?Q  ¼îÎ𴻆î-ŽõÕ,63›½$ÎH5òhÉ×t”¡LI¼LëÆ´q+ë4bö’¢ÊÔ6ƒö&2–”¶eÀ±#PòåÝ;-e'záéÌ@(ÁâùM®´<ñ¦8‡Iêj·øµ‡YeÎe;ÜZZ¾™dpµŸ…k’Òn"AX æÑvÁ˜N„;E²ñ§Ñõ{Ãé"LëÉ(©àÓö ]ÇJi?  ø’}–àýÐujÞvS¬ÏóØ7ÔëA¹µùumöÓ¾jR!® ¢=ÁÁn¦ôèürü¿‰—â‰_ó4s 1NÚ…1@›M_4B÷ÝT µU%1ëlù‡Üû)7b²:˼Iê}¶íX¶ÄÔ¸ÄØ¦J„&¹Þƒ@K ³èB1Þ¤Y°» þ§&þ=úîPÌ`O"Á†Jaø(p†ŸñâtdVF¹W`¢&ª±ØRÓ Ó\|h€{_ÌÄ„Iö¨¢p8±Ú¤`òŽ@0²†×ÞeIý–›OsóC·Éâß ¿Pêš–¿3ËÌÚ;_»ûùCLcÅQÕ…‰–RËïJ.ŽjØX“¹K z"žŠÕ±y¤Ú©ÒƋAã¾nXâ¶¾íºŠD¥cøš{»‘¨Ût‡èÅ \€Û­Æ"«}ÉòëtˆÃ·j²"æ¶ÌÎø ž“n(u‰L®cñ§OŠðÔž”¯Ô>IÅ‹®¬|ÊÍ·¹É¢—Ï{äh æP·ä¬×z¨- [ˆWÒ#ÝíšA"Ðh¼f(¾Mó3J™)oŠJ*¨Š_º?-³tOÎ[ø\eu_ߺa[øíÇ€ÙÏf-Fí/yŠÆÚ×R¸:ÕÁe&Ò³¢‡”ÉX©Xõ\p`|á—?E­0d§‘ R†Aê‰GãêÊX¯( Éóße-è#5T°^S%Î(ºÀä5ÍKªHõI„’¯Y!»&!„¹ÛXòùºç2¡…ºÁ±¾$vÉ,F"æûVå`¾‰àJ-IFã& `üñ±p‡J4hƒ=Jx`FHÿýÓÌF†™ø–MÂI1Z,fðÁÃÔŸõEpu¢ÛzPÎvÉÌ;µƒÕçêkKÀË¢¹¾b™QQËU*5‘£¢GÎÒ¯ÓV”ËÎÌk".i½ÚŽ1iáY6G* 2™°‹»;÷<ãߘ”†dë4DÀLKۋɾ NŒG6¸kGUӠΥ²ëÁÃŽUÔ”2U@ÜJ!˜«DWnèzîõ¦ØQ'¢`4(ÿ¢;” VïŠLóññè#1q£ö3eíå䀵rÖ~‡+D 7½Ú£šÁ_$æp¶ ª„ùòªË e`^té«öTý$­9ŽÿKöÀÖ¼¡=ê¦P*¬x’®tLFµó pys¬®kªRl_Ë׈íS „’M¦Ý(ÕÖš#i¼»'$¤Dµ¯ÊcÛ8lÑîV¸P+ìÖ.Ž£žlϦÁõð(ÓÅ\§&-+Ûפ ¹`Úœ°FEpXûèÑ98>ÆÞ 4ÞéiÒðó2J-Ï™‹[ÕœV†ÔµŠn Ñ<$‡®n÷£%P2,óäÙ±ößÈh©èQ®7¼/Dy¥‰‹õp8¼áè£UT»M;gN.ê\¢fý ŽÔ“0kbƒùÌßøœQ^qÜ7a~ +|ùP à>+õ2Lù1û·,|“›×…«Û Ç ¬ZÙ‘ N;ŽèÒ÷«U¢Ó2•›]æ®éº vP»ñM²ÜHŒWmßJÃk;ñÔù¨Þ³vÒdïï%oæe¨qQçifC‘"6nšIº^T…ô/ªÊ´}HŸ|0²l|-zoÄ®Mašªn+Ü@c)ywÓUCú+ZÁ«|E.üéj fšÍ*rRú®º¢È- w–y^å®b'åÍ ‡oxB¬@ù Sî]…†%œJøòz»r˜¯÷ÕÍ~ «‹m7ñû1-!È“ÂYÝ›»ËE°NQFF;.‚g8+ÑøØQ&ž›Sn³¥0«‰cëêJÜEšº¬y€Õ”s•è¼É,ZGVRï×ÜÜJî c¹U€U@ ŒŽ²;p{0¾X, ¯^]¹'tÿ\¹£Î½jmâ’~¸<û3ÒÆëgföð÷3qøã™ÒFM!Œ +ì‡w˜g†»ö¼={rêK˜ªVi Ðù1½àòÚÌ|^÷*ãl.»qˆéÞªŒ`ÓÑ}\œgƒ×mé±s´W oÜŽT~—í,Ù3t‘Þº\HÚµ¯ÂhDYYÆãûhlËN—‰n™#í½ÄfÄ}ýlSÿ*¯xó¬òÝwÞ’×VÁ ÿüeêc–®RHp„ôÈ 2Áy¢¥V›úWÙ1Ç›‹ù~ÌÊ]¿¼ÌÐû‡ÜûÇÜd½?oÃV‘ÐÆíÞØ^¤U iéö±,?[ÀÓ·ô‘6#Ùt,\³Š« mìÏ·<–ä› k/U°UrYÐÃæ„0ãײ¦QùÊoXÿŽhÁ,%<áæ=Kç¢æâÌĨ!nË$ÖºFø¥ŽÍ­t¡€×"I41†´ß.ßz! f”Þíðrö•RâœGE‘Ò—ZæµzY¦Ã–š8¶'%¯ÈæE^êhÈÈÈptXÅñ¤Àkó¹—]ŽgÆš_ÊC;I%'Êu’w¹†%/ŽÎ…@,NN §ïpo¹Ý³Œ_AŽúU"Â]õ–>>-s_)q­Îà„E·F©)(ùÜž0—4O˜È ©¨ÆD.Þ×]Ln‚Ö4ƒ<¡£íwǵ»ÿâ nB¬!É'm~ŸíÅãÜ{Ùð§™ „3Å[ àJ Ÿ øx’]{¶ _¤\ +Ñé­Ÿ _óM]VÇ tÿ¾3,½ù&[ÔŒÇûå,Æí1&Ð j!&è1iIk O3‡cçî›|hïY71‰!Èv˜s¿²_onl„üP)¼÷MÙáMµ»Ô 6æä¥yÀó_ NÙÀ±·S@Ä 0ÕÒq‡ÓWXÇhJ˜9ðÓÏ·õš Õ[oëí8} €O^àñ$7¿ÏƒWŒ à´Zx)Ñ* þV¦•ãì÷ Ì0¹JZýþ®´š÷ïŽßƒ'9YÝÊZ]8ó²;Y÷E¥º|åBbÂå «Þµâ·<ëǤXyì§î€×¹÷%gúŠÔÛTølh  ÿšwý†oèºà›:øž~÷9÷ž|oªŒ¶‚ïu/[Ã5._.°Å‚¿+Î Œ¥@¥uÔ7b^hë—j[8«6–TÌ ñ{R™QcÀwœ‚O¯1-™@”1F‚së¹—ÊâY©rÅK¶_ziu,Æ0==«oÐÎ}ïIB[úY [Ø-uó"¢~qN„?æjü´ÎÁcYªT Z爕àní¹‹uŽr’iŠI}»u®ùᡬsUôn w–cÜQötè­4øf |ö—X9 øK©7/{*-èRÑ ¸\Ü¢êú7óˆP~…>¾˜q•‡†Kr¼¨rPæ þª·%sÖÖîq>¦ÝæÐLÔÆœÀû¤â}˜“"1M‘™3DJ<¾ÊͺŒ=5ßçæëuSýø ºŒae¸6'žÂÕÌÍá‰~ÈsᙤèzuyÖ-È™ý x:JJ™W2?ÂCéüÁkO£¢»²F‘>©ÇÁšÑE/>~GµÝà}KJ,a1«^¢:Üš&ÇÊí˜ïÿ=KƒûlÀô€Š€ÇááÃX~鸳°šaòêÁÐ0‹.²4Å Ú¶¼b„…ƃ zÎB€á,³Mo£à³|£ ø³¿ñÚ/l<ÿ-3¿Ë”Þ÷#ÃÚ²j‰ü½ ü¥5ꤜRο®${@ƒîÖµ`¹ tàœŠ¥ç.ÝK¬¨Ã)&Ô¸Ûãä•Á‚ºUg>Ø“'E¨Wê…åÞûÂüÒîzÏ”}¾ËÁOJeÛð€FY¬b  ñ 4éïÃ0.ü?Ò1tµxÝ_-ÙzÝ@Œ±ã¼Ru/˜(èûXõŽÁ¾õ¾‚1“i,yë…’UL¿tûA.¥ÙIle¦¥’«˜Y¸&u3ç¶{T°¼§Æ5ƒj Ñ› £lРlwãÊîÉ‹!º•QòY*¾Ú¼ê©¼ê%[vQ‡y}-.h”æð+Du½™h)¡Q]À!ί=wŠêb%:M÷ä*ª{o-ƒïÿå›*¹Ü·zë\mä(ƒ>* ®ËüÁÅÃës;B€oJEo€*\•”ÿòÂ#ôÍÆëå¸Ð¦ˆ‰–º|•eoÒó®õqð¤è¨>ú¾ÙÒæÐˆº¦`ãyðAWüëŸg*”€’òXÔN^D“ãŠ(!›…oé‡þÔG[}(à »G©²—=ÊÌÊÅ{¤ÄÑÏœ>ªý´>Ëò-=ÉèÛBY\x0;Ã>:ªž/É™nÇPaÃèÿÓ+ö-Í/–5lT ÎÞ<]:p}ú~MU¥r±,yIØãE(‹5 ´c*SE%탕–áàuÉŽ8Gˆ»¯Á`Æ/nð´á/]ïr¨ f¹Ò[h°$×¼ÃÛ e`.;HzˆøÄøâÕüKYAèÛ ­ö—t,‚…¿ŒÒ×%xDaóeugÛ¼¥C‰®â.jû>7çæewÀŸŠ°\ %j/È+ÂÇ!ƒÇP¢¡²‹µç.¡D|¦ÀÔ†ã•{†ÓS%²Æù?d¨SGÀëÄ×ð•}´V¥s}ÿ‡ÐV~¹µ’Ĺ’Áú»T2ÈÜ-Öf—ðLýk ß`ô¤Ã!X @Üú<ìãÚs'ô r Àô`¤Tç èwÃÇþCý³œD¬Ó…ý#ÃÊ‚:ÿä’†:æûÃ…uXíÓ:X™o§ùÏgÿZгìendstream endobj 984 0 obj <> stream xœå\Is·¾óW¼#éÒc_®±Û©TT¶y³sDQR•DÉZ£üú| Ì Ì#ßBÙ®”Q˜ ñõÞó~߈AnýÿòêLlžý~&ÓìfüïÉ«Íß.ϾþYi»‰CtÊ™ÍåõY~Fn¤Qƒ a㼤µ›ËWg¿ž¼QŒõç¯Ó0º Î_”Ù«‹­UfðÒœÿRf¿)k–ÙËî‚æÙ_þãì»Ë³Ÿh6lž½;3ƒ°›O8Í÷gJ7hOÛÓƒõ›W˜Ñ~ðažyyö˾g Pðõ™¯ÊÞž•á[%µ>Tfß”áó2ü{óX>-ž×ìàt8ÿí¼¬ø¥ ¿)‹–ÙËfç gª,n“qK é†áH .6ùöPnpç_]l¥Œq°zA!b×]bï»ývQñe+m”ÜlÁ«µÚ\^aûï &Ÿ”G_—Ù÷ÝÏËì5††i¶=Iží#çºË§Dà u…œ«fïù¹eöq¾l ¹`gÿÍìô/Êð]w–íá†6ì£lµá¯ª{ÚJˆ÷`ì^¸jùÚb¡À×?K€—áz F¡6[%ÀP3"¾½Ø À\[Óña%Ši­çŸÐX‹£Ã6iìB`†>Z%èz‰Jp2Acé¥Õ±ZC\2€¢5Ä%Zn¢ž¶D%‚K­ê•(BÞ*©¨0=ÉámÈ!ÂÑ„L«g%- u"r:µ-C ƒŒ½‚dCéȨâàæ‰t(`2Ñ„ã :mh^ŽTÐ rêë°n0Ю#¯Œp*@äÊ=Üä±6ZfÈ'¼pø:ãAë }ÈxÐÚ›H†_¨ll°1Ž—œ òñ;zÒ òÆßÓàƒ–%ÿÆW2ÚÊìv†çù¹¨ ™ý™\^íÔô¾èGã; ÓìX×yÖAnÊ;º …}lLR¯°‹oÊða^vü0ßè R£=Ð1#Äó”‚L‹¯PúmÙÆ³2|[†ÊðM>¯¶¼@ÞV“Ë" ̘¬µr2c¤V<¦kPRÍ—j¼¯¹†F¾¦Æš†Zc&)]ã¶uØEsgN+‰ol0€Xr蔑@ÂÔœ"ÃìrhSµŽùBŠ2}òùœ§½+‹! vèxƒ£6;ñÒ˜Æñ™Ü-|˜àpzØ*8«p6Vƒ×QÃi’Âyæ ìœÌ$Í‘9ùN…¶06NŒ¹wÏ<Ý®‹kI/®õpSë*"ˆÝ¬œCîÿW!,âQ9:1täÇâý“ü¤5œo|M %+†çÚ†#>6²ºÛùÁãª?Š]qÉB/bRr"cü€x“25@_fÕs줧Z¬ðå;ÂünL|5î@û½šé9S)–>üdœgÜÎseú,“&ç—íciGçZ#øt$¨Ú„*Ýór—žœ5Š5‚,n¤án¨"ÖépRZ¬Ê{qZ)cÏ“"¤$”2¹%iÖ×´$z«•ɦ,:ÕlEÚ‹ŽJľÓ@´ÕëGëÅ(™815ñ¨’Ãi6Ûe%À‰D¿¤%tB@Ô©(ô£àø‹Ù3KÆ‚íOË2]†]ÛbðŒ6÷Qy1zM¤T€¥Ø6ÀŸñqž9$¶ >5€¢öŠmwxDß—a[¶ËƉ­}Ú¾b½–GªåÉ0DJŽÞÎU¸ÏÁÌÕ¶4ÍŠp¼f7–û °BU³ceÀ¾Ë;–I¨‚S>³ç†9·N¨S¶NHºo¨"!¡qS ŽZâävut"sòå~ßÜ袙¡s£â˜Í]z|ìD7:vQÌW 3ÀëÆ•z\©üS¶Ñ<ë²û}wm«Yrˆúj®qTp¼KsÍ­ÙŒ}škTR%E„ûí9o—‡Ê ÷f[)ì͸I„2ãîÄ·'÷È·)\ûçÙåW¿òÍÞ4O/ ó¬Ë0@Ø[lÛFN¬õ£¸OÇåÛZºWšÜkJÔRÃþuz¥¤:²W*²œÇ)ý4a0·Ñ ‘{PÉO‹­™gòÓ4eÑ‰Ä |Þ³âîÐs±s(Ï‘gPéòÒFŽÝi•&µJk¾hTÓyÖMÝSÝÂÃE„7º²š4£Ø_hsîô–ÝUwzúu­êŽûÀ-À‘^U›0mC"YzïûŒwy:Ré&-•AWGœøäX ¶VÍuW£¼éŸ™tUE‘²Þî‹¡j\ûRQ8…P1¡~@‰32!ÛÞ”øŸ•.ÀùŽwÈ+ðÉâWΩp/n¥au‡1ØByR6µÁº»„ÚZ£ÞéÓ§¹j1o–ʽ¸XªüZ³ø„}î þÔukåÒ£À"£x¿ÐZæ“‹ôJ“‹~ÔXŽá-åÊ]þÖ±åJÈëý«•é1u§Út Ò´Ë7íVUÊ( µŸMì$œ1{þ]î+…&A¸Ð+Ú­õ‡<È…ôØë[I¾Ì÷¢ç0­¸Î³F˜]áÎý ÷qs9eý¬öÆbêZòzõpÔŸ?sk˜ðÁö:¥&GCEÚuã@ýZšÕ†,jñ¢KºŠÒ³ÎŒ]ÁT–]i{äñÝUag_…ÃuðþË©pq#ïQ… *}¸º¡¡@ê*ßgpµVb«+}B×éc[˜§Y2ðw(Ì5i9n<ë²Ô§õ¢–>†h@åZßf ø<§øqn&i:¶ÒkXÿ…½ÈÕ<Ç›œÅ°šw„´½ Ô³3†¢—øxt µîË(jn|N¾³Ú¿d>Bã´v2©Sz’¾:Ua̤þœ„RQ:žIåéФOÆ4)ˤÞCb’½ýxá4t"¤Òs!¸8vØiTN£Ÿ°]qáÆ=WßNŸ>_£DLßh—|Í4sD¾$…SõæßS6‘–sl(Ç~'æLø[ù&ˆ¬=4”Èúë¸ë¼Âö­ë,’N%¯coo¤©7ùþÓWt4¬^ˆ écÙŽ¬}>{“j[Ïsž|{%•tn'vKcÞBȼֿû¹¶Ë[)$µ7ךùLweÉ—ïdoÓòY%ß1•Sc©ì» ‹‰àäšî×y«ÖTfˆ”H}ZqrêîÓRóðéÓ’^„Á³6­qâˆ.-Pœó÷Ð¥ÅRn¬ôü©Õg»ú±¤úïÇ’Ò:ÖŒ•þ<¢ Ï#RºÝ¦í߉µvÛ÷þƒ5Ð2N|‚÷ —æ`6‘ón\¬ÙôGöZM9ÇüÀÍ]z­à'.zÀ÷Úè=ôZ)ú>]áæ4©ûô座ðvž9èËu?KDa«A*]ð¿Ê>XsΫÔé†[³ü¨O›a>+1½løÆÛMÚÞ—áúõ8roZdNøyÉ(AÔX#¢iâ9ŠˆIéWXv³9kO•Å02z_ô)ïéûƒÓ^TùŠÐøxõ¢j9šŠÓ9ò>Rƒ“£iæ9¢>ƒTQ¹“1î·MW‹N»W]5÷Ÿ»‰Ióø)ÅÄYxªÑ1™&Žú‚=}Cð…ÄäMÃÛ…Ec÷ðlÇEÝMLšFÐåǼ‘~î7G_F+9Þœ»˜Ã=çÛøéì]ÓÍëendstream endobj 992 0 obj <> stream xœÝ\Ks·Ιå±GÒåãÑxUN‰²rűÍÊ%ÎA"EÊU|H"%Kùõéf 0»KR.9¥!,F?¾n4ðz#¹ôoü{v}$6—G¯d¬ÝŒή7==úò'¥Í& Á* ›Ó‹£ôÜHPx¿±mÔæôúèßÇw'Ø©ö`ÜñY,ëÕñm®½o6x™k/rñ<7¸Ìµorí³\ûªîŒ}‹ñ3PRëq:±ö·“­Qv0Rÿrœ«Ï«¹§ïÞæÚç¹x•‹/rñUsdÖ€­þ×\¼kÖ²9ÜЄÝÊþ<99ÙJ%Äf±~F¶ÔÝEsÍÏrñ>¿˜‹ÿ9ýûQƒ¶Anp¬Á#7§ç¸ÿlÒ7U' \6 ÷¦µ(ðËŸ@hΈ ¯òb9'8Ú§­¬0ʇãk*£½r©“Š›mŒpS'wÍ)½ÈÓgDºªög±­ŒÏsoj‚:¥%Mm+¥´#EÁýA)ªPh¦^V¸TƒL¤Ÿ–êŒaŸ?ïRÝÚAZŸˆöÿƒ½jÝ’¦ÏˆtÝû÷=±¯¸ô+÷‡sé«&¡Þ4‰zYQ}ÁšáÒ'%úÖ!¼³zWŠ ÉRî ž§iåÈ8„Á‚ i¾_Çý ÚˆÇÐZ #‘BX ç¡Q±¬EÁÒä°l½—89,º`” KO½x+#šÀ²tÒèP´!Õ7È`Rszš«œÁ²tj³ÕaV¨4ÕSì@ äs‡p‚8É)CS5|›©ð# rbªŸ3<ù*ï‡\{Úlðí\KƒüíôèGÉøÍåÝ Âl~C¸öÍ‘ôÞápdr1xµ¹Æ¥H?X5×\ý|0¨ (\Ž:Uø7$Pwž§¹(¸‡á°ošŸ1Xó[ÍPå&30aEƸW&„´ÑZ;dà·iŸ4h™øÏ„N|¡µ—Î'fÛà^já’pŒ½}+O\dâìFn¸£¯dhGêÁF6H¤Fš 5m©Š‘ƒ¼Ö£"JT/v†·aŸV›DF•Ža…±ª.d)ãçÛ’ÛË ‹1Yç(‹[­í`¥/šÜR5)õÊHsUªÃ9V‘îœ9gÅÇZ8 LÌï[²ÝÞœ·Ð³zü‚æŒ*Ì{ì™hÂ*ß‘îë´@áHª°ƒSÓžâx¾ Ò}j¦†wq‘HÒ»ËZ\±­¸]‘n¶fp:t'•Á9“é»q5Ú&s6V3†JÊGã~¾K Dð¥ê8oëˆyZRñ5ÜŒµàŠÆICI…K;#¾1Hq<ÓìjvGv£Æ&”;6ø¿BÜxyH+ÐÊ%A 1°ù¹³´w‰µ}¹†q^àW¸W$kz ÁÇ_îÎL5¾;Ê+\¿*–÷¬ &uŽLV¨êgÉbxgª}äjªó¬høØDÚ‚‘žqîƒÀ¦JäÖ*<œq@R­ù—Ö6~l‘UeÇæ^.i‚0 ÜO®#­>”<}9#ÆB•3dÄ0羽6:r4ïâŒ1ïUfR.!m}O=FfÈ$‰N<"›?AiÌd5Ò¤k”ß&3¯oàX_ʃF/Ñ YñG”d®ÇëñCD.Á¿Îe2„,nT§™ 6m‘GݤÌG‰Ãìòµzˆ3˜l«*MŠôÐMM[$Mj@FMJmìëùMZS®à2ŸݬBTïÓ€J—:ƒMŸwÁئ-NÓVˆØìºo©Áû«]fWÁüD¥Y9ãpžË5™Wô˜-hþåEvFŒ†Þ”Е¸qÒ¿g¦—ï_i ¸Ý Ò¢8—R˜æ± 1èpŸ‚·½*ËÔØ:dÖMT{È Èœn†“Æ·ì¡™—œôoÛT–¥‰VˆÓÐ/4Â-|œžˆÌ'%¼¡©¶ø¼#*|˜ž–ܦE¸à?cÕl¶GohðÆu­Eß*Þň~¬2‹ÒäÄéìyéQ&˨aƒ‹Ñê"q[þ5Õ*¯ô[YãžÛz™H-…Ú ÈM21Ú—4µ’ã~ZºÓ|‘N W3Pt²2œ…ýSïWý[„䃾 ,gFN æ«¿L q“6›ß¥AO—H@Ó¶{r®„t-aëáÅç¤}ѤÁ&t›™|ø+F°i Ô2ò@£K$ûk¦æÞü¼˜U& z/0jbydH°øÌD?­&?&öÌq^^¿âÏŠ~b@(à†µ¨Z¾Ç4íÒIçDšį¢ÓyjRsœEË-@)yȹ‰†R”\[˜òHeï{ÂÕa‰¥z4Ÿø@ÙÊœ4™3²‡@¸'s–ç™Ä]#_tUîTÝÎϘ®àõ\o$Ò+[~U삹¯>ʃӤKð8aêXx»æ¤±›j¡öÄ;&öf^m…ñ¶ÓÜJP0f˳»Q¸ ÷ß§H‹—¾g ÏǪáQB—„~I ‹ÕA7Ão5º˜ZÃBÇÕàl–Îm;æ–æÒÖ,#qÃ/+ÜEý¹`¢zçú!Ï…vÕ¬¥6§ß~þˆ @¬Wúa1$Xûaÿ-tj®jŸ/m ­Ô1 •ÿG+®d¸SVAZCe³¦ëp—Ñ>1)ÙG|‘‹,ìÏüÉ«\dÇFg¹ö&Ÿ·:krWŒ ¡cQA€êܽlk]pÑÎ"‚ßÛ‘sn º±H¦“.–>Q9 ˆgsJ«æ3M¯6T)Øc×b=ø4ò0¸[9ÍÔÙ’Çh7’ZÈÑÚbe·“ïÆ!nZ'êøUë> ÓfS_ᣣ֒‚ºlj0{”<:9í¨‡Æ–FıÜRk5€ïóÞ% ៵g ’ïΞ~‘¦¼Ò%­©ˆ`«P\KTÿÖÎõJrñ<ä gnOAuÚ9Èžñ嫟VidÕ¾bÓiÒÓ&7óNß4Q«âÈfvÅš£°íkF‚å{áÆÊ~1®‹øüàƒi_/Õ¬£+IɉîQ O}ÀòŽ›À!xC…-ê‡Lµ$6ã²¶3T£Õ}•y… w{W>”¿ÖQͬ&Wµ5ƒq0ý ëfÞ¨ÊtQ¥“–/;ÑéÌ«3ڦ媈ÖJzàÂd£ZÜp;Rl”Ï{`©ªc: ÃôîÄn”‚ž'¿Ç© q“³hWQÎQÈfaå`iا”m3Ã|–SÁ2-Ú@ì2Û‘ÿûfgÏ×-\ Äf“ÒælÆ«#ÞÇÊïÛ2äùð¾‰JÓl¼Þ§Æt‚Zâ}:W5ÎÖaFM©l„÷ãïÖî‹÷cs*}™††àýø¥-E`?¼ä A ïS‹6’n¾„û+†‡$PîJ®îá(\š/½Éˆ’îe\€: 6»Ž"€-Z\•åH$Sá¯f¨³t•¡y•#Ò >Ú·:3gÛµ8¦ÑƒrÕdzãøëá.üVõÍ‘¦Ã ±È¹Áž)%bçàeh?³aÿð2~g?JdžÖâƒîÙŃ#ŽE0É ì[î™õDDwøÙH2H®>Y=&iä/̨ær¤µú„ ž¹[ëÓRJ±t ¶µÎì!›ìíc"ž A‚wúQ²Rx ñ Ê?4¢R²ã¤Evz÷vkè;®qx]ž~Þ§E9Ô({™>ê×S™¾ØÔAÒÇxsó É% íΦ“Y :  I˜ï¬e äYßó8 ÷'ãAf½¢ÁEê ÔÚy@¼/7\ÎØAËètÄ>"Üÿ+ãçU)ãaUs-µø´ R‡Ìð>IüÀӵ߉¿S\7ƒ®íÞ, l+©¼Ôôr Qê,­Í (ÿ)¥B¡Wå3Œ‹Y täÇ¡ƒ‡` ˜óVtˇ‹¹ƒãU¹I{äÉÑ>U)Êrx Œfe»&ªÂr-Ø–DŠnŒ.’V÷;#0~fřο …KuW¼ï§&n|¸"»Û"ȰsóOô¥G#¢Ms—ªnïgoRæ]¡H¬Õ׸ÒÀéY¹óŽ\¼‰®ä&Q·b¿!as»<„#Š…ÚDM¤æî$Á˜˜²·Y\[‘¨«Né¿N(…Õ‡¦Æ}(F¥… Y 5f[îS Tëz °ã‘±lÚæøåg/YQ>PYraÊ;•UH¡fÔ;MÚJR(¹ÅpñŒJ@RÐ8Ìž’ iâ¦<öÙÏÌчº{€6-ëèq¢`7¤txr-L—ÛJ Å%(}9S¸aRBjúnQöSJs6mzØÛÅW»‡©‹dBJNªÇâ2ºûaÕ]ï.iÛ“}nƒtB¿SJƒòå}¡”̱ »œÜ ‘ê‹(/Ðpín-2ÞrOŸ`]åW¬'Uè );…ze7#r%ÔK},"‡ôa€N‚¶Ô Ù9$Âöèç z6~¶¯F×!p,ËO*pÈ—Õ‹Åôp@-yA ¶º¥z›ªÑ\výeªöœª·¦Fx<+(Àd#×ðvägí9€ngñŒ›ÜC ™e°ôfI :9õ Œ9õ, C¾¾ÓðªûŽÊ)ª«‡ƒô ¾‹Ò+íI=ÒÜÊM0šˆ[Cð;í÷Ë`ÚoxÜÀ)\°öiÁ4x÷¢Z•…ÒŒ§”w·JŸb!˜‚rý>Â]cƒü†ü¡‚ PÝ5¶ a¤krר3`§žœ}Å/³7ï§9ï¼ÌÎn+×åðâ±×ø®D*Ÿ¬œ-º` —(o‡:ã¹g¸Î–ìTß"˜øS/®¯•—¼œZ¼BSð zmäøw/jönO/oÅLB{Dqq¹–ÙßcÓ®ö¸¤A9Ñײè\{¿b¤A˜AƃÃÎcir", st^Û‚¢ÑÏ擲`Z‹9ÐVõÕ \7Å.—X4ª°ú–m¡Óõy(ÑÜûÝ4çó8ŸBrÄ.puã3ï·÷gƒ¦¢T`Q:¿ÊÅrñ´ÙàÛ™ì³ëãÝMåèNê/pÒNÿ{ÈCÚ¢²×ºê¬ÚýG¬]{-Ö~“‹/k>«“tGÝ«GÝ5=J²Ô]¤ŸÙ«¼ý0:„pÑw¢#úý. ht|¥õ‡Ú¶má˜Á×LLµëhôà€{)\}½›óB³¦[ç¡ ãzQÀïÓõž8i­Ø¹ŽÅ(È3Ì^Ž4ÁïpãÛ}÷βy•¢…ÊÄS§ê$º÷¨}÷r³ãá ésgëÓˆ;jeð¦ŽÈîÈq¨açUz"ÂzŽCfEE9¥ùáQVzjjóÏÉ­5¶gÔÒØÉÇ%,pòFváǼc„—Õ±I¼•cå2/†¢w¬ÐÚ*œ± ã»P?Å%*¤=fïBñÇÒÓ^éÑ'ö.TÌm@˜åÑ÷ª˜d#ÈäÐó‘©ÆG¡xí秺Îh| ªÈÚ{º·PÃÑ»&… ÿ]áš-•¦š‡˜G´±S$¸yZóñˆwœOx1ûÑRãÂO[ù¼èF¤,RQW©¬”€eqbf5°…ni¼DñðÀÖ£7âfz0ì1ôÆ.E«’Þ+oó­Ó)`«íñç#É‚œ·Õ.¤ÎŠˆÇ6ºÏbz°»NJ¿lëWùÓuõ‚÷ÍϪ§WÑ%@Vû®$ÒBØ'˜¢‰ö·–’qâëŒ-¦²sÍC8Á“J] _güGž“ŒëqQÈâ‡oðHýñò=6xå†ÂâB}U4ÏšÛÞ¼¡Ðx|× +.k? ÷‰•µŒ¦šGp@ ÷¸@íâÀýS0ZšúîùÃöï]³íÕžÛóÉ ¨§óriØöL5دI¯ï?Ñö¬ÜÄ>\¼vÝÄÞoÿžp#F[éP©I$g¶•SÍ#l%â?KOÆVîÜë'µ•»Î´¶ ‘_nQø´·ödvÌ`.ÎûõãÑÿÞX:endstream endobj 1002 0 obj <> stream xœÕ][s·‘~ç¯8TJ„q¿¼nœZ;•T…[ûäA%ÚR–EZŽö×owcfÐÀsndb'q0F_¾¾üq'…ÚIüÿôÏ·÷rw{ñã…¢·»éoïwÿu}ñÕ+mÜ.‰äµ·»ë÷ù7j§¬6ÆV§w×÷»|x“šh]¸|KÉG}ùCyûØð]yû¾<Þ”·åí§òöuyû±Œ¿/ðÑje Ÿ÷§òÈÈyW?–Ÿ½.o /®œšpù÷Ëòú¦Y}ž‚}îMy¼™}.Ïð®K0[çC÷-£áÃD°vÁ¿)ñâJi)…uÓÖµ‹¾-Óݶ‚6*ó*x_ÞÞðÿ¸þý…ŽI(¹»¾éy,ÿýåòˆã®”‹Âî€*áœSyt»¹ó~ôxuÛeñ§Þòñ{_½²Òp¡·JD³ÐIŸ“ÒÜÑ+)¼t°’Ë{|vÎDò$æhPãÒ<Ë÷ur Æîç>’×…yL^KïÊãåñmy|lö/?¾nŠ÷Bù8íŠ ¿Ò]ñI8æIúäßœÆñÏ]†Þ ª”‚]O™£ÖÿZåüHŽ~ni>G†?t÷Óa,_LKk½™³È$m½Ù€<ÃÑÖ{fáänô!Ö{/ïO¶Þ=£Q³vaè.®ó4R|œTÂ&>Y+æy²O?8Y_½R)rißâ…wè]’ðÖ§,_“À'ãd¢o£¥S°AðÚ& ·žL)y$ž}Œ ˆƒÇœ–Kp–èAxVA9“ª1¸»Ög°¸»8Ü&3©§Š²Â^ð¬‚Þ]™$¤—:“z h Rû j‰3HªK6ö½| ÷gRÓ¿—Ký¶0ïOåíuwÀ7Ë[üÈï®/þ‚_rqwûpa…t»Ÿ[þ÷…ŠI ¯w`5¤ˆzwKÑF€ñ™ßÜ]üõhš4°§Ð"†”èM!s%ÜÌj·JÊ@ã·û”f/hüs÷k+‹V¬p³Í1uœ·dKÁv»”²¬@~Ê[m,)!mµLÒdÑ2&ª³ LÔÎÝÓ‡¦ÉI@ù‡<¡Nqþ¦ :à7ñu º"k-™ôý®h¦€n'Ö¢I€ßÅ9¬‰—_2A2EÕ•¡ˆå` ²×T¼ïZ æ¾>m«´³"¥¸ˆôëiIÁâ¢ÎrvM» ÆŠŒû|ø6ÍÈ4tx ®¬ÕÞeš›Á”\VS*_ÏÊ©¼-bÂ$–žlðw™aÞÏâ¥40à}^„ö¡gkf³‡: ±+'Ê[ ¸²5¤‹¿-*×ÝßTz›m øqÑž³Ò2@[”_þõg<kðw !DnhúþŽÞn%If¿Ý34Þ.ØàiTÛàr¥ÚFêA®Úìm,YƒãSO®Ü ‚1-Ê-^\Á:DLaš\-0쎱‘ éW1¦w™‹:ˆš( ˆ©b33L@iïC¦)JËwù}~k\¬ç¯£Þ ¾þ%ÿ7ö#óALѧÅ6p„©kåßøs&Ï“#Â(°¢#õ]Œ’C?jdú½^Y%BÞ0‡ñÀå?3ãC½tn«§ÁA­€‘F·€ý2®~yŽQÆ)ÄðÏa”iEÉtØ6ÁÒþs¡k`k-¢NÈ@r‰Fz]ýòSa¼½ü¹¯zµ*Z•Wa`Ú­´ؾÏ/À;ø7.^w9£<Êãl 8þZ­Ä ¹ÕÆ1×–MªQ¾"ˆ}oZ(€Ÿ¶úÌMyO"?S×&Rk!E”iºõ ô*ÄÆ:·™ûÛÖ)1WÕ:0V2`¹–Ñ~ÛØì•}³m¾³Ÿ 4ëIr¥ °B°}ŽŒ2K™¡úqó~Ç"³‡üS¥Ü†êp"²6¼?ßXépã$ŒçbW;èã ÑË9yÐuadyüÜŒÍ3ÜmïÊکΌ̢ìœPÉ({TÅxV*…-pçYEv•78MdAƒ×§É¬eˆÝãK PªŠîš¨«ˆð,cÀ @ …ÔHÇJÂxe±€á]ås¸ù¿Z_h>ßd¬×öJ‡¸.°ÑM°DD{‚æÐì ¤}©ëÆf/EßLj2ÜVÕÁ7ñZI³ð1št‚½"éNVãÆP7Ü6°¥Áu¤ ’~èÌ !CÄ!ê™V«ÁßÌ›k×[çNÚ¬H (^[.è¥nœy/Òee’Úõ‚,&ÓÁ68õÛÐŽròfž=e9¾¥/:i)ÔÁu úæ0RK=«A`ü²W©UˆãBRÕÆõ5˜Q<ÀÙ/Qð,â'>@Tìʸþ£¶Ìš°>¨žŽ¸ôV0g’·Òd†Cñ&¿šIªe|R0Ü(Mê£âÂÊ•Ðï;’‡oÁÛ¯$Æ!Á…r¼Ë'iL&Ø:Ëä;Æ×þÃÐTáwr­ðéã¹å; %Û4€«ü§ *åá9Þ˜l1 E°zgbÃãÔ­˜´€†€³úŸ±Ð›`€[¶I{‘¤{,ã”–"ÎSƒë"Ûw GÉûaܦ¥'ªmþ™«]{(‘%>“V üÿ·Ág‡¶LŒÊ/¥ëÄQ«¸qd6oa°XÑûV·{¯›½¤!NÐÐV gŸ'¡¡-VÜ4yy¤çD‰nŒ5-ËÚƒDô&—>‘ÍëXýŠ&j‰8k#ø³»‡7N­Ë›r0BSlù(%·¶rËÊ]«’[Së˜JnmŸœ*¬ØÏÚþ\Û¶Œ¶NÝ/¹áYÆS£ÐÝ4ˆ°°öšðãû‚ûÛ¨)¿ý\Wý{#‡¶kîCyû¦²Œ")S óŠ zƒ 0¤M5·Ò€}4³Ÿ6±ç§M£D\qVÞj¶VBýLÖiòÁ¶æ_ÛíDÑ̤'LâáÖ¸h*ÛÃ!Ú6Ím×11wÅS²ß±g{ïð;nºX!\%N'ªÝØAÁ¤Nà&$èí] ß7ò~ÌEêæÍµ1«NNÄ`z€wOPˆd»6›2}e3™KCâÊ‚_¸Ñ( ÑãÒñ®gžÉÕÂܰCnÔ¡= ‚ƒ±9‘«bð|¦Ó»ÌË€aÎÑE•%&F¡}ÅŒK WsJ˜¯•ƒ†©tÆu™úaa£$6s§ 4XDõ«ÊJ)a°B®‘íFNÔ`Ó¡Ò«¬ú,µÝë]þ]²ö}6ÜœL—G¤G#l†²ñ—œµ]¨8¬96®y ?˜ësm!s½Ö±y:öF•ˆ·L=GA îÇVKûè¦rÚOÕTmZš4mÐCõjk‡ÊÉŒá:±dSN»áÔQö2ø,lË9&ž~UNè•Lv«“9ò1ެúÈR¢@ž@gŸuÉxù¿DªIÒE†“õn⪮‡sÏÇJ@ó—}鿜¡Ñ,c¥˜™Øß¯A¥%4N<\"_æËÜ±Ðæ øNO§vس8eã jQ+õL*`?ãQx_)ƒ(cÞëb™Õ¶e†ß…—è°Ì3ök8_C;ÜÑø.°V´K<™\áVjÆð¿Ðë`XQ‹óa7Ì“]²ý'ÇD᪫Ï×ÛÕlõ83Â=Ñißh•1u /^בn¶gtZè.Pºæ¨i.úF¤„5òêÄ:Y7÷ ýL¶¬~æ– ÷”<ú“½©»(S6ì.âžsgE©O9¯jôöÁcʱŽÁtÇ„¬¬j›Qn d:öà ýÎÄÖØã"ðàÍ“!°e ÍáBÌÓ˜¯®bg~Îeˆ…øÙëJñë`“ÏN Iw<û8pÄ/¦xXºÖ„y…ù×Dq¨;¼“ JµšYw&aŸfaŽõqh’˪<ö~.ÛÊ£´WP“°‹aP‹¬‰ã}exßç·x¥Ö¯ìO ]R5™–6Eœ@iÝõØn€iúP;ŒÍ+ ö,&"ì(ÿ99ÚLõøB £rÝhÃüb^Y<ëC|Ó¾ÝÛ߆½¬4²§}Âaç®Y:©}ÐEˆ2·XëÛ.¥Ãÿ<-†ÇtDŠÐ,­ûu="úïVŸeðÀˆ7é4Ó0‡AHHªó…kÓ³ûlÈdlÝëÞ‚àóí¡ÆyŽÜ÷îÇɶÓw” ¤z¹V…Ê÷»TGI¸õÛÚd¶÷tà=ö<㎟VáLãnð¶8P¹ †„ÍV.ª? Ç[¶Û`2Hê]ÚÑ^™2hqá1ë”gtðú:M°J ñ~¦Qájn§PúY|ÈÌ´M¿1-fœ‰_]©‚  gC£€ÏÞ6ÛšÂA¡µ’Bóßák `-JËn¶½2ZSQçIïñ™|oE{à4þ.œg¾J`YÝ™j„`Åtã² bsF90ðg/Ñ#S^ƒ·;_ÍTÖâ¿§;?ª¹-s³Ì9“ÞÍ2Z¼Ab)\žÕ9Y5Ôjº"ÞîFƒÊbë$]ë–7§ôN*‹§}` ÂÙOÕ;ùª<²~HÖ;Ùÿ[#{ú!=hkzúò£(c£Ã[a°û #H•¦¿ÑñŠKƒ¢ùKö7:èëÓÚÈ·&ÿö7:¤E+¼ÆË<^HB·âïbôóµÌÓèàsôÿH?ë=ÿ±Žªíÿ ;z}Ä»pAàðZ)l5{aãòæ”;ƺzG“âåûÿ¦ÆAwŒÿ2zzƒO=`â=8ŽÁ,ƒ2?ÚÚ ìWJ(½¼(<¦ó¤©"ü³FÖŸ*‚N.(é°°=¾ùnâ•®3òu0’âÍðÂLžvi³ŠRíy·ñÌ•«ìe-º®r„­;hA(Í¡m¯ŠÝfvެbÏ'ôÂ(N™Kò*^ªt…U¶œ}è6Jn¶‰zVÿÚ¾™×¾à–ÇÅrýåâÿYJ jendstream endobj 1009 0 obj <> stream xœÍÉr·õÎÊGÌ-C—¦àa½zÉVVlˬò!ÎÒP”Ê\‘–í|}Þºhôì’X>1ÀÃÛ7ô¢“ Aÿõÿ¾º=‹ë³ÿžÉ8»èÿyu»øòâì//dð‹Ð«¬^\¼>K¿‘ )egÖA',.nÏþ½tç¢ÓÀèew¾ F ·4íi™§õ8üÏÅ?ñH†©ñ7 ñÔ‹5žò#.–àµq˯â0X¯–ßåÙ‹æ‚¿³tÆ7g?ÐAÆ/®Ît'Ìâ7ÄÂßΤ×Ч‹AçÌâgœF˜Ç™›³gqU>âÊ»N{_bkÁ¼Î`¾Ï³—yö]¾ÉÃäá]¾¥¡V`ù8Î&¼V¤\9Ñ¡+é»àEð‹4²ÞJáó•ì„õZã yú>“î›~ ±à¼G(2¥ûy#$4é«Ll§¼‡ÆÛŒv¹Çó•QH¥OÈ2ä$ôx[G4Þ ÄãÌ!4¾3†6ux;½•æ‰b§ 9bÈtüòçe^ñc~•—g/ª[El©€r Ö V“.8Y¸C§m(‘õuc?dõ°Ë/}e©ˆÅáeÞìus³ÇæÏžXY餀r¤äÚ%~ž×_Ñ/ž˜êœí@-¬0¦3Šê…C•7΂Qâ—¶è99b”ö>o3nÏWÚ;ü…_¾Ú¾vœýù¼D²8J²A„8ĽJøxȼ?Ù;Î>6¼É³¯óp]óFœ­)›fÛ‚ô¶¤t©·œôÈG¶3 AZW°§ßýšg_æáM^5Ù‹13[ðª åCs–ÁpG£¡Q¦ø‹‚NÈ£‚”÷^±®ñZËF)(q`ƒìåÁH®ÐkÍõØÄÀuqïÏW*潸³n„éÛ³‹/N ÕÛ™ãfï Zl6Ε˜r„ÅÐYRŽ‹_G{ÀˆÏPÂHnb78B°Ž­÷²°ÈÜj?ÒX:Ò`Åfä{Û¦}€Õ‹BéàX:²à=)Ù )ø~E‚ÐŽKMs’wÃpÂ¥í&Ý`ŒýÒ/ñ…Aަ(/žcGè£5áˆ/uÊ2'B‡öÐÕ"ýeFŠ™a-r¼ìL¤Àý9q•²9bdsŽ9~ñuÚ-(Q1ÞÊÈВâüaEXþ©Íù :´+%1|[7lQ×q¼E]7Pk„ê<2`%8Á`ÂxéHvšˆY~Ê”aâ!›Ë×ɦ¸CÏ1V½2ÇÃ;kÚ$*sAѬgQæÂw2ná;N Ìç >â%ºÜ¥62Á)ÎDó׬ÿ¼ž—£tmQ3„å—4­4:Ã1q”Hª{’’–/ÎéÇÿ¯6ì£èóqÏÚ P]÷L¬Â&!ŽJr‡Ñu wµ048Ɯܤܞ+¢hÅÔ ¯'ÊÆŒø”X˜ƒ»[[xË£姬§ZlPÙÚè(翵ï>´Š¨w$­ÐÆtÞ›bÁCš–3æ„3Wz€ vj² t¨k3"°S'€ Ts+åa.jèWG.â5z‹±\ ° NÄtû±9†­‹ç{eLC8!q˜¤ÛÑÍÄëá7E7jè×Y×ÌxÄ|õ3B‚GË6)tn¼–m”Á&ç$A»bXvù?Wá. íœÝâéb«J5µ?rªõVÆ“ìå !o˜sÄ¥ÇèÌh¤T$qéQvŒœs‡¸pŒ_ìCÔŸÒ6‹%}ëãj¸U)0sHþ0ªäÆ–Úµ ¬9Ò©”6àÁW:ÛÙÁùµ@>ZRÙ/Ý7…äl¨ì¨§÷PÙ@­£Ê.²8ã æ’œ¬wS¢Œ§Â¿˜2µÄz=Èí›D(­£´à¯(ÉTfs@R‹Ë‘Úšj’•Ú£½µu¡„7ÎCcˆH-r•ué‘¡ÊØ~"¨\ý±0"Œ¯zœÙ"óÏÓ3|œö6Þjnh¦+,+F9 b®¢nXalísÒPYkD}CUjSÔ·«WVñº8¸©­b@¥5•ÝŸŒeŠ€RÞAÕ^ºÒ*úAe,Fð['k¾Q:í(cóÀzÝD¡ »Çè:¡ˆ,á4Ãëc )þݹÑc1EÑ|÷w£VœÓ¥èÐý‘Á*9Ì: YC}Ѓ‚š±t»Ç\K±ÁÛ$ܺà*oŽ¥ÞÈbA Ô;1 *Õ–›_ŸØ››t­2@ŸáÍiˆ£ïFºÏdgQ;×"މD9@÷YDaÿ„a÷ØCHYA¥†¬àOñªÈ-a¦ÑöU¨“¤Þä^Ñ ›¶åÝY‹ŽQ¨9¦Ì»+O’ ÷ŽNâÝÔÐÒ4¨:‡SéRÚ*KÞ¤AY»àòD RÇb¥]qkÌN*Ap9l$ʰ|¦W‘Š[£!HÊwrŠÀP 2 * v˜8¤IUMA[*tÿÝÖ dª^æá»<ÌeËoòìïy¸G9'w¡Í%næ4e‰Ž$ØÊîï–:¡¢ Ͷ³5•ð‘æ²Á—}3µ~ÖWØÑ-ëY‚IOò´}ÁFöf&œÊ;ÂÎ&êXAiζ5;’«âòÊ„)´Ü…Vk¦Í/{{ ŠàÔ¢¤µäf(kx.j›Æ56k$c8lʸï‚DiüýÈ)ºÉ ¨”^š ƒÎÕ8sÐK3APÚ¢sf‡~ä­ Óô#kr…ÇTmvT*çRQj@)@ ¨}-ÌåÊ*eOg’íº¤!B%åg÷Íu"ªùdW¹]À71¾„KhІ  Wä[·Â²IRiÍ–ðyÞû8—þ`¿Mµ!ßY-êTùsZ”¨F¿§±ÒȘ$¯ÔíBú©Û´&ÄÑ(‹COl2uxèT–È£o®R·ï˜Ÿ·èw3ýŽ Âè`ìþ¤ÌS¿Ž_(ò#Ò=„qæ 'eH²´Ê•ž<)c ŸgÍð¼Ð É»‘BvÞ0èÐnéÂ# #Ói‹ ÝOMè^dè¾Í³_oVa@] 0Pbš€5a®e±Ú›‚¸5•18Žœ39Š‚¸…ô' ` ¦XNAeE½qG@‡[PI¿„ŽùÔÌÕü6ÿºÙ¿T¨NäØ%DàF¡¥eȈ®ÊÇiáÊ úCšïZz¹ÝgŠ"gMý.ô¸ì¹vŠgÏëðº•=wz—w.tœ+3•&5'ÍB@ >-#àAé}VZ-dÕͪš£Ãú&Ni¹5½Õ|%¿î?š.@áì¼·C+œ¢Ø<å£<=ñk$Ìç£ô¢€Ø¨]Oc>üà)ÐÙÔ ÆC²Šu#Á`"IÃæ}¶)]šüÒ³zA?ð';žX„ªˆ¶ª×g¡hG@36ª…¥l!¡ðe;NJÙªwÖÃ]‰áRi¨1r«l3R#<áct=K•<k%È&›ä1ô3Ùd“<KýÓ'ëzþ&?(A¨”o ωªMUð9}Û« µ˜£óK5)ú·½/¢H¡[.-ÛËèF¨ú‡»ìm/ñ½Ç-cçE våËø;ôû$eÒ?ìå{´Ÿ·Yoxä;ÆÒ'އûŽHE-ãXGä0sDG$ECB?ŽH‡ ZõÎ2³ŸÙ®Ñ®Äò.cË ”Ç_ ¢²Õ¥¥¤D/b¦gS".‘öïQqTÕE0ôQÚˆé ®ÛŒS•l›Õ•»jÓ|÷9I76Š4±¬2÷f©‘Μ<åä5)FVäÕL¾£ :ÓîþàzRèœ>¸ 䨓®Ëe؉c¹N–G2¥E“JË;óÓç^^Lz³'Z-šzÔ¢ô´x¨^üª¼â“~…jøâ” ‚Þ?³/N 3G|qJzüã~iÀ †÷E²ï[¬³Úk®d¯ÏPáßžÀg¨œŸí3T4é7öªaæˆÏPɘZßnwtÁæ„ôm&úü™3 ÔôëTÇ<äEÍä-C" ¥E‚ƒDÜcWW"ñ$Ÿ§Š\$ŠOþ°ïÙ°7}%å‚ôkc„í®›ÃºªÇ¿òSø›?{V¤Zâg¯´6“g´{Ý$â•ý 9 }#b!ÑtÒ;NäðÐÉqât¦âô@7Ñÿ_ öõ§ÛA3¨D^¼†}‘’¾Ñœ"—MŠ0:Ýä!û&Ô«æZ¶ÙËYòbÌfÏž,yj6©yû‰#È+5Yò^5É{Ûä‡:Ì8ž¼h žy=˜v6“w˜8œ¼‚.£¶‘W ª:a½…8ûÈÞº¹öq7â<=ÙóÚuR™LœaâpâxÝ)v%ÎUµ×M’}"âœÞ…AOã)Í\˜aæÆaDa~*.Ìû&ÑÚT=ޅ鿺7[.¢„µ_,V–¾zâÚó1ÌÍÑ`?œýdW—!endstream endobj 1016 0 obj <> stream xœå]I“·‘¾wÌx·i*ÈöeŽ^ÂÒÄ8lS=áƒíÙM6ÁnRl‰2ç×Of¢ªØêmÝÒ8&t與2™_.@ý°“Ü üoþ{}w!v·?\HjÝÍ®ïv¿¹ºøú¥Òv§è”3»«·é7r'šL;çͤ­Ú]Ý]üíòá ªƒ±þòš£ êòCný±Ûá]n}›or‡ÛÜú)·¾Ê­ëÁè‘õ}ƒFI­ù¸ßçLJüøã³VùÉhsù÷ËÜ|S­(öSn}ßWoN«©¥X‡ë}Sû¾;‡{œ°›¬ÒÅ„¿Êöì…TBLÆÎì¨ t›‡»ívx•ßv‰ò*Øì•–—Ï×Ç\ý'ˆXœ‚v;˜Ìd­•»«¶ª{Ά‰n»”ýÔ[5¾ðë—Fh.¿Fˆ0½™^'„ñÈÈbrª/ïðÙZ”OƒT›@Ìk—Q6ˆ®¢ “)Xÿªš6'Y-<ŒW×e¢¿ý…s“ta&ºñÿ‰^O;-ñ®»Ä‡.¥Ï!ºqÿª’îâdbXù¼ ÇHñMÕwêx!¥øWW%AßtÉqÛþ/CÐÚʥǟj‰?ÂÊ5øh+·ð7Y¹ƒŒ\ýfF¡ã[“¬O™°ðfNÙ¯_J`1cú ©íä5jƒ89ãb¢õïHn¢¶"Ò,µVÂJ 4›h…DZÁ³1F/Äg‚ Á£V Ä>8Jp’ð ’»›¨g)—Až¥W»:N •¦z(¡uô°P½ D[œª&t…ÇBp8KûwD%l¿Í$ýSn½êvøfmÅ—üþêâ/ø&v·fv÷3Ø?\È hýl>1µ»ƒ×K [vmyñÝÑ07ÊÉÒj >&˜{“§¹WŒúÈôå>ñ!ÓRAU¬svB´äE mŒ‰ÿZ{“²²^ÛûD:‰‹ÖAúddî,V>N8?w±^ù¥ IÿigHêÿ*Ïà=ëλüýÔ /Ü,Xéöƒ ròFòQøopŽX}ùolZïÙØüiEBºb¶•\ã€^xNE>©öúïËÁa×y£+ZÌÃàœ»kåhS&h­‡œ©^‹s÷2Y èª`blðW¹õ#û];é~…+ÎðÄΘ°3yC-ãï—I•®ÙÄø„yŸ’|ZQœ™‚‡à¹`–Ò…˜Œz‹ Éçá]>,ï@ZÃèpù%ÍGÄ ûjJh ¨Ëûæ²Ãl-êùe>?gÝ;Úiïfj ÿg„b‹ÎŠ:(ka<èâ§½oÚ]LôŸæ×•bä&ïþš s §é†YŠIØàc)ÆÅàtð>%ï}Ãz¿Io12C2ÝØfùÈÆKÄ‚†¦AGy¡Lñu"´™ ðmÓQ#¢['tè8Ì¢{)ü&ѵƒ¬gráTX‰»´ éõ–ŽÄ..þÄ܎öy—žïqh;ÀÓ[òA­™¼½[–VcÃy:›´Ž·yŒŽQ&L1ØeO„! É<Ï·¹õc~dh?ÿ¬¯cÔXaU2S6J$ÿZÈIy òÛ¨½0Pµu´ ;jŽ2憅óc„ûîñ=ÞÓÛÖ†PaÀY`M€=ŒÖöy¶Ë¤A+:½Ðä ÚŒ Aɤç(y §¼ Ë>ØÂÚVœ˜]ZðE”ýÇPRÄ™XÀW.Ç8’FFe³l'b6H=Г3»P«4š4—ŸÙhœ§7¥ðtQH$ì,@Ýáò[ú©F§UÁÛƒ[$t=Óäï¼âæà!ÑÃË®J[°n’ãÂê0ó™ƀy/Ã(`jÚLJİ`1O ™éZZx hgð Ä˙˟? &ÄÈž,Y‹¾MôvSÙ9I§ØÛ”ƒ°Ù^?[&µôu…ðͳ>^÷xŸˆ€oûLTÔ!ÖTZöýhQÿ$¢»`5‰“œçÜåŸq8¼h‘Ó„…VCc5²á|-•ƒ‹WyðNкÁ'…xDô¢Oèõ"€õ_„Rƒ»ÚwîV}òº/å\¸:»“ºÿÓ¢hË ýT{l¸«2 Ç7[Hyt¬œ’™ù¾Ù"f£6yf·_ßB½™ ¼ˆÛûWWj±'™x/l¤"0 ~çF8äŒv¿B•#W‚ †fs{›ZAkvì½S£ù0/ d†Ã÷2ò@ LÕVü•ySiÌWœò_W_ýíò¯4#¡c?`µlgÂ̬9‰›ª¦)˜Y×è%Ö‘ÑI™¬ÍòxˆÑ ¯Àè16c0¯-¹ñK0Fãôl7lãÅŒ˜I¬:ûØ66–ÁN!ÚìzÚ´ÍvlG#— „µž”IQä1p|ò6µ&k—:ÈÒ óQKÝMÁî˜üüÔ×è %M‹¶(Ä ¬ÔÊÔ±ô›A2êâÔ0ðÁÔÊZ…>/Àï¢-Ìz&Ä*îVrȦQ…@€/`ÌŽ„"‡"€Vuˆ€žì^òËb®ƒP/›a5íDïi#)ÕH L¥ì -˜m/€:Ê•ª¥Äóð¼”ÛFs€U€e~’¼ß7=G˜¹ÇÉÉ•h`e8XµI£S¨õ>?¾®Ôš¦ht ¨íuáÊy¸f·74‘R—ß LÇ(ËMjå?S’À]ú®!½ÔM3!Q Ö\W~ô±Úßmå£6d)&[LŠv”»&÷ëžkF¶“7î@g:ëØ¸²à¸*š¶â¾¯FÖìâÐÊé ³‹|qZovñ‡6í¹º£ê±ŠŠì›J€h`ë^w7dŠÿ€ô¾ÞŸŸ!–ÔR^bp£¨Øý‚yý6‡c>ä8w_Fä‡ ¼ ÍØHÉr£ð|iŠŸŸtŠ õie'ç›|6‹`61 þ2 ÷eý{ç=¾PY5Ã:à¬SS•e\¥‘‹ 7¤¯YÞÞaç/Ãc¢BCpÃ}ƒ±•™|ÔãÍEšÞàîYc?Œ7ý£IH%BYuA*¦®ºHšéªî@vþ›µÃZuÞ¯C·3lA0»;h‰jŠjm9¡Â~ æpþ¯° yÜvÜ«nöã]^Ô7ݾïóã‡íô ø¹1Tû™…FO +È k‰6`´Œlm ñØx;Už ªÜã„à<žú¸Ef©Vë¦x,­¡Q§²…²ÅvtŽê„ûNŠX£¸ö8VíØ:oH­Úœé¥õÈ&¼‡Å"Fí b;üåeÖ‰ä÷˜.•u.Çw‘þzjnÜ\ò†¡l:[,#UÙÑŠ¤:]ø¹ì¥¦;Ü<¾À²ª%¼«¶OXPÀ´>X+–c¯r`ú¤©,åÞj!™¯r8þ~,Æor@ó±¼GCw£XoÚ}‰ÿªÀ½³GÑu낚=WdpºÖ"A¡M,†8ž¬­jãèLÓA‘_ƒö¬Î4år³yÎ ÊKYíú’ÿ8e?,Ê”ЧÄx¬½ZÈçpñ; Ô`}]Y2>=îpe…^JHé)¸ÕëÜPPkð„›ñO‰xBÇ'©À+NtX1íGÁÔ¹â!­æèЇ¾G’%Öìôçì)³›*^×­uvuïu××fI–}g*¡¹ìœtÅ0%ÎðãFoUߟX5¹‰ðÃÚÉœ»j`èhýñº˜¶†¯ÅlÑ—­ü™Ú!R~ýLõ€§>¼W©‡æÑ¬ÌÊ ž6Xíl ée«ùXì—¡ƒ¿ rº:!HÉI­êk8þïÝÄd /2ÖÑÀ³Dß}¦@ ó7î²À{»Ôå\»Kq¢² 42ZŸý/8¿L }Zá1uUúÐáΙè õOÒÕ¡£ÄÚ-NðmÔOj–V «oÕ-ÔžŽ‘"mÑ3:ãÙ‰œ¸%ý¬rgöú}›ʵ¢Ô­°~ŽG¿Àq->&²ÐhfrNvˆ)'8À©hÎ4*øn·aTÒžÁ ݺ\¨·‹((ƒ‹–é²]Gmõ@aJ'™‡Éïb»qpçMsCÂ<ûúþî¾Äž\ÄÓ¿VeX°ÉöÔÀ¤mª£ÞÑÌnÝHUÜI?">MÉ]ÅsZ1“ž||D§Ìy¼§æFèåše¬ÄK{I¾ÈöJE*üÅèFh"Â|­sºl<]÷Ìn„F’CGÙ??GBxE÷‹ÀïBpqÞ«óuÐ|ŒþÅÓÃëœiΫÿ¸µÒ<ƹ“&¸IàùBX3¸‰am9åg/'giPL¤í¿Á™ÕÖö¿-B­OT{áÐË*ü\¾'%{\´ž€ÎEB>F”jjÁL›1vÄZ* ËIEKhé`ØÉXºë~Í ×‹88ô]DîçѪ«xIU§¶ftÃß ">Õ½âÕÆÕNÏ pÒ’_’òõý¬nmXÆç5»îÔóÙ–¹‚õm<ómhr©ÒíˆØDh{­2x§EëðDÞL+ºþ$E.'¦m¿Yæf·>vU$ÝÚ¸bžGTÁhpX@çÑ5¨ƒÇ£ãkË)ªO~t‚Çhƪ4V É®?e¥ýÛ¹ºŸäè³Ôã5h†ðJݸš¡lÓ¾$fýÜ5³¯ ð&Ìf6Z(>š°Ï*›¦XAù¨ùIØ5Aó:_X<é¯ÌcÊD´fag±ÒX;úàA@¿qm9郠ê, C‹ý<8°Tñ1„"}þCÊâûu9píO¹õðr`Ðg“´ŒœhŠAƒCNÆ´%9—çq9vr€Š¿šåIä,>–²V~ÙLº©cÿ ÷K7ß?©>,£±pÊØ¦B㨉ÒRAÁ?b½·&‰@†Êy fãÚr ƒA/[¯Õš fþÐÓe\Ú;\çp5}öfù´Î#qµýªMuE†¥†h9…õS1.›û|ÉØÊ„¿\ü/ s–Ôendstream endobj 1024 0 obj <> stream xœåËr·ñÎÊGì‘tiÇx?rKlÇ®”Ë.ËÌÉÎA|ˆr,J²(Ù‘¿>Ýx `¸»\ªâré ! 4úÝnü²aß0ü—þ¿¼=a››“_Nxݤÿ.o7??ùô©zã'o„Q›óç'ñ7|Õ˜”scÕ$µØœßžüpzw‹J§´=½ ŸÞ8qúºŒ¾ëNxQFŸ—Ï«2ᦌ¾-£ÏÊè›v±ðyW>ÃnJp)ÓÏÂè»îçuù|{¶ÕÂNJèÓOËðUs¸¸ðû2zQ>_v~C÷˜W¸nŽŸ?uOôS†W°™´ÀŸ”ÏÏζ\06)½Dq Ðóî™û|2ÿìßçÿ<á\OÌè ì5i­ùæü ¤E\ü|_6ÜqdB\aoÄÅÏŒ¸ðvùˆxCt)»9ÿúäü“(°¯š_/X榋0`a«líéb×]°ßVÇÍßÖ§O¹wTl¹b𗻉1éûùÙ–MÆKÍ|ØBJÁ4ìðòšq¤|Kæ½7|ç8ÀŸÖkÁPšqgxÐðÍ-×ÒWstJK©’§+/3¨ŽU* ¾¹›­t“P‰Ïá÷‚Ié-h ø½¶Ú¼ ¤Ú+—j´Ÿà× ÿÂßýóYAÜ·eô¼;á«y·øâüä;ÜG»ÍÍ݉š˜ÞüúøËî<°£Ýh/ùäõæÎª¨G^ž|¿·ÖöˆKˆÉû¤µ¯ ˜-7/ø¶¯h¿ïê­g…±vP´ ·Õ$´p`'2âm8*ï#Hi•-È(•ä‘kp!“‘k¤tܺÈ*iZ1™ÈŸÖÂî.ò§2Ì2N ¤y½Àntík29A…SîpiXšÎn-ì€ÓÉy^¡å‘FwL3œ¯fÜÅ•vtµçqT Õ© $I‹ ¤´£†¿ÒŽÜÔ;Æ“kgTÂ@š—ï‰RF~¬}Aq2*ƒöùµ6šeø±¥6 $Î1¾ Jœåá+"qÀºF‡E'¥L”¸/wógÂç‹uÉ€3£x ÊÉK‘¡rBéL§¿'œJø9Dɉƒ;:È¡.KtÖV̼âå¯p9ËÕ°¾ŽÃ Ö¸k‹Ÿ~ˆ1ïx—;8ós ûè7]ÝtBR€0by¿g—}•@Dit1ª¤]Õˆ.¢a\’hÒÚå6m Û¸ê›R#€’%D6Hñó szMoäW[®Ÿ~áúØ)›PpÒvÎçSÖVÓ/È2”KéOËsº|£a&ùž6=Œ.´Iæ– M÷",m@ð½e"ú—eäeKLÆÀ vržG]òù}¬~Ÿõî«5Y&ýGS+`&Nã‘Ô ÌÀglÕ ˜–Éq¾—ZQ¸PÆÃ>ÓAzEšÉvœÊÁ£hÎ0ŠœOÈ8é[œ @ÏNÀðK‚µˆW?)k£R3Â9˜Á·§˜\ÓOá‡À‡è§¬{Zýx­™ƒû0Å«)T-½Á"®â*Vê1´À°š:ýµ0GÅ‚Wíé=Žƒ Á§¬²b_g'’nÃrJk‘=eähâJõု?šñ“À€ú¼Å#ñÿJÉè-|2˜)˜¨¨»ƒW  ÀÝ‘@ô½1¯LEêê–J¢£&j·ö;<ÊȱÖuX£Ã¼<½èqA¦k-›2ÀjL]ü²;fkƒÐ&°œÐ:øT`LµLQ…FäȨ „ïâ¤?žpT Ô,( õÙðmÜ‹U…“á?và6Šo"T•÷æ ùJ$ÞÎb°.€NhÂ"âs½*‘2½Ss*à›”aúK:}ä>)ó“4D°·s¾ ¡¯íìVZ1Y-Oÿqæ þ¶u¸Mü³Ûö¬Ïè £–5 ÷°xAµ‘3fºÕ»0ÌA»¬aÁÞ¯hX\C+±¬å×1|$6/#cB­Ø¢#YNÄ7úô·~Ú‹¢óò,l föEb#(-küã¥c®-KÃk"†rûØD‘¸¶ƒæúu%Ca.XÚ[´ÖÌBxòžˆÁ2¨T0‘X?ÂX‡' ëϘ…-Km“õ%Õ1Šˆc«¢Få`Š˜În¨0èžá @¾4¦F´ãü=ú&íÁQóÀ§Ëwœým\»EÈŽöé;kíÓ=¡àZ”qO(¸HþµéD2@pÓeçgT¹—õ^äß™³-Òdîß#" LÛ$ZjÎV'ø…¬HYgÝXðÝå³úGHkX!„€ÐøŸÙ±†g’ËQx¶‹Y {¾ð° Õd¬>í©] Á2q9»\!Þvo¾Â{é?¾ž§Oå@Ạãd¼‰×Mã[É9ˆ7¯4ë:p™– Þó@¢&y¸)Z{6@k¢ÏŽñØÇÌ3–áH¡)g!/GiS-“PUa²rn€K8ÀÞÜÂ.!.ÍyÿÁ¹;>æÂhµÀ¤gUÒ3ôH Q a” ŒFÈ&Ïæ@”zÐô6àCÜN*U±Ó›…. W Ô%Š)Ä0𦃫É×0c MZ1‚¿»V´lr]çí  r”–•z,®s¤ñ`‡Ç<—áSn~Ræ~gZWJ„RªÂK"*KÉ—ç&`DZ°eŠÎìx4áägªVr”‰ÇÞµôxto8ux餅Ù+ò{Ñí•=Ày‰’Š~ö‹èÅh5Oúc%ÙB%ŠúÚxX±’IÐ[tø¬]ÜtŒLÁ( a®ÑúÂÚÉÖ *wH‡`žH°kþô œ!à¯YYa8øÝ‡¸7¦qŽŽázBØQLIŨãÜN¥:¶ÚGX||÷‡9ÐØ5¸ÖÑ-üô©ÒªÊ+âu°•ŽºXDx—*óöª«¥6[Œ{¼Ie!{¬›¾'Få$ys`?.º„š/a€Û Ä>e8^ÁHÏÀïÕñϵû—¶‚$Ý¿ÀrÃÂrZ‹Æû—½Xeç³a°1>Û‚PÊÁ)ÁÃp3³ë·÷P ØG8.@¾ y»nRwOø•‘ÆVÌñŸ¢döe£{ÌÑæínªHgÖ\DÑ%æÕ`‡7Ç+yžy< >){0o(î&z¼ÑFwk¼±(¸ zûÕ¬ Ægëñ†Ä+¥Š7~¾‡P[)À»€ãl…ž¼p5­¬íѪM&e”§À¨¾|’rpBŒîÓ/‹ë´j,gv5°0jB£?ÁÞ™&Þ .Í]ü¥“bà¯Swéç"}§=ÛjŠHv…¿W¢ÎÀÔÒWÄð˜WJ'Þsa„ó[ðý€ö‹8Ý ¤ò=O› ðm4ü ìä I—G¤ÛÓ¿Ät˜7åB 3ÐOÏ?mÅ,bÉ€ÓVGÉObÖÒ0× f¸ë90aíti'™MY”t˜q¼@}éA†¡¹¥•x,}ÇoíuL{¸úâ³¹Ó 9•ÊÓïÂ)ǃ—æ{Yk:å¿ Þ­i‘ð*Ï~|™TàB&`sàÞaœØêN…hðÙRâIz³¿ˆÌÀ6wüJÛ\¿ &”} —= +ṡ•¶´\60_*£%•¶ˆw§À±@iÔV`úçÞ3ŽLe¶t~Ao¿lbóKÒ>V©L€0Æ’R½<ò€R=X™êþâØ0ºÖ…F?Fq,ã~κ bŽZ lI¦7×Ñ’kƒögø)'ÎkU„"Ä4Ä« [ü¥÷dFaiÆÄãgFñ”X[·ÔR&aA‡mllEX ‚2ª™h¦~éÍì^¬÷œx…ôÌÔ[¤ÖòCíãm9¸ ÜÊÆ\=¡KF©;ö$i\ÇGÃWÉ ˆSž Âx_j*Gêþ^m*ÔäÑFÇÖº¸Ø³ÙË›ˆúÓýa^†Ë»ŠPÁo¤:~ÇwŠJPwÚ™Iè,˜o?¢ =]°Ðg?¸[wé@ù½(ÀëV¿5$Ãt‹öÏ;ï2.‹eú¹Ï©¹$ “ÚR’Œ0¼«ZJî3j !R³e;ükAÄëöœ©m«:VêˆäŒ"ƒºámÞˆĴÙ)0è4ßǘïÖi>Ë:7èÆ¶uóôƒÎ;‡J7L6MtNÎ]½a;Æ”MѺaZ8Ÿn±´t9 k„Ñ€ÓÃæ›õýMuË]\”Þ¶-…E- %ö'Â(A# †.„ÑÙßüƒctCûhüÎú^ã`ÓéLk™°Œßzá§ÇzÖ¡pËgM`Àì>Ïš`YtyÖdÿ+£6µ´ß³&Èà^NÀ¬¿‡dnPØökcë´¶£vjû€ÉŽ­·} nM§…zñã¨Î0¿ ?ÿ†ò뽹Ȝ³„[?I!øµËW{½[B[Àc´ Çi$Îlr!ÕÍÓ…mµ)ökò¦’ Ï"帠è]ü!¾€²l¨Æ¥û ýºÙ€’;¡•ϯ‹~ýz]} †Ê󗯛SasàÑ({5‰ƒpr¦E}€HÎ×}$"««Ù–ò‹l<(F¤ÈNœ€±ûà ê;Œ>¹IPq7œBëçÈNÚ¶À;D°¤N–ÒbêA•EiC.@.Zš5£ÕODÕ¯ðà LɼˆYÇ×Z̹"ôŸ°%ÁM@~Ú#·K…oƒÉÆõºO„×v ýšŠÔr2Ÿ(à Svq†¯[©(,Ú`°"ê>aåõNI+˜ &Ä÷,w¡¼†˜ .¶Ã[W¹!¸‚㦡æY2Ú”xŠÉÈõ^¼”À¨èÁ+1ÃzÏ`–™^1ˆè?hfšæâÜÍ”ü=«j”ïìªGœú£´í>þô,;#×° °Z ,‘«º3–O,<Íñû½•<Öï2€A›-vaÍ5ÿ¦ ÇUæ'$¿;ù'õ'endstream endobj 1031 0 obj <> stream xœÝZIs[7¾³ò#Xs"S!‚}¹NœŠg*5Ùx‹ç ‹–ì*It$zœø×çk¼ýñdQ”äÒ”‚Ú@£ÑË×ËÓs)Ô\Ò¿öçéåLÎÏgÌT¦ÎÛ§—ó®gßþª¢œ'‘¼öv¾>›5gÔ\/œ4sŒPÁÌ×—³ßë¥Z“Ââír%… .F½xGkc\Ðaq³\eð›_\/WJHoCXlqÐlZ|`w´¶N+L®Øž7 CiÕþ=‡ý€ã ­C°&D: î^égù¨•^ÇÁþ‹†M’®F&i o&+ì>/¢s†»V,=<øv,9˜(Ó‰å#òW|bß”;™ºÎjL‹“öÿã2µJv‰6ôÔ÷ÆE"Ñ9íßÌßÒôz±é¶ÆÅë¥ÂZ5/Å+.±OâeZêÊù|ñ»¸7Qƒþ»þ÷L/¢Mð¯õÞÔ=-Æš 3‹ö‡{ˆÁ·¿j㸷jÈ%uè8þA” '¿+ËŸÊr]Ýð’–V+cè’ï׳_è&çç73+¤›Dý0³>Zá…„ÁÍ/g6(ßÿz1ûm2ÈFbï™—Âã9È6Y°h]ÈvV&Ám`ºžzR–…úcYnËvlÓS­Ž0ÀYøª‰VïÇÙ|­{G…¼Ú7ev˜o–+íHpåQØkaÑÁEÌi7ü®é`>úqYFî¡ì &+mÂyxãiÝ·9kÜ®B¸q²§“,ߟÍZ¦¨:á÷súÉÞ‹³|ÚÂ4JU6JØÞ“¥ŽÂB±tª¿û¦Q o+¤êM‡ÙŒÛv€&à좱u­Çì¶2ˆvà[Ž{K(ØÇ= êÁA±\YåD nñ¯®CФ¸QÚJ¬tÎ$=_]œsª¹öc=ymë®Ahì‰=‘g,<¸÷p‰?ìë¹bÜ( óö]ö¤[Ó ¶¨hÏ8g´ßK¨ ;<ì#9’ ‘='„ÆqÐ?vÄC„D¸Á–©ÔËÁaJg<@¶Õ,SO äFRÓBÁïÊò§õÛ´0Þðr€’9->‘ó‘lÔM 01 )ô„{$p I,„ š',Æ8 4"Ÿêû’ÉÞ– / õ¤,w5j= @…ÎôA˃ õˆ o­‚p¢GÖÍÐZ+#žªNþ¯[Œi"2jL5h*µ‹K6œk„M]lÖrg% ZU¤ÈUB…h ²öÂ&ßJ §;C`™9„ä4 ÍÕɪc¿¬z¯Åc‡Î›ÓöØy꺺áeOíW‘ó"­{™Pã8¯"ç ©§Ü§„!ï™)ŠauP ü—•0yÉBö]Y~*îý¦PYs6.lF† †¤Är£î4 +¡vPì¯ÆY¢µ È´äm1Þ{FÎAab¢M{­­[º“ÊÔñÉ5bè,„6Þõ\• Ü/hûžPâÉ8GnT"ÁRt¸§ÜÇâ×SIÿùYO˜À±óèÍ üýj‘Mã´Ñzñ¿êîw…CÞWË;­œ‡k¤÷AÙŽ§CÆþ‰§c智«n`õúY­2oõ•©×Õ*¾®¯›ê«>ê-úB(£Æƒ¾j*¿*ÜvUnçU*Á¯–»'ZÅ”­ÑüX÷LncHÆRr¶Å‹œè+dÊ2ÀHÒ)M©adJ)g ¬QÀªAøòÏÕˆ ©p°‡!B Àz;¥¨~m¸;„]ub–RRÔDeƒwhýÉ!áš4·ÚšŒwu¿ß М+¢¿CoËÜû ÃÐDžºD—F/• ûo®oîØñZƒ* úÄà¥Òä“l;…ÝC+L·5´%%{×™oʱÊÛqSN¯É gB}ƒ9ÕðŠ1󯓬åãYÃ:ø®W!jÕíUðBë4ð9O7ÓéÝ>tŽpúv¢c½FµIðÅÝÊ¡é‰NÕg¡9¯Uµ@Ø.•0ŽUmй£¿ã@Ø¢lÖ^MŽxy_üðÉãÄDf¿Uô¹Ç´: BU¦hŽ[¤¡¨ÃxìDdä‰>b•úƒw„ÈA·†:]cÂH±¤JOÆ%³êÙ`þ”G5@íûü½$ßPG¹q CÐંև¸ˆæa*O%›ŽÐvíUn!övƒ2oÌÿúç¼Êâäx ~ñŒŠ¸´)³’6žð»Spô®ÙŽ,ªIZ¦zjH¨/|§=;ã•vìÙÙÖ~Îdg>˜¹C’[€e¸~8SÜÆgo9¯ç1¶{âCO#ãè!cÒ|šÆ#oÊYûˆ­6B[Ëåà>7ò?béCê¦1Ct•(l¬s‹c’qïâÕ«ÛFÇœ-`Û'•Ӳܖ宺gĈ:=ˆ±JDÓGä?r®Œ‘ôd4êœZ®Nî3Ü(|0’G1Ô|ÆÅWCÜãsRžžtŽ’ú噣X´BE6Gé(GÌQÀB Ûx„9 kÚNj­Ü&&)~ñ‰ ²vˆé‹MLŒspÝÈ&&刉 X ¬ö01™²yÓf£ç½þxzÑlfš½)™Xø‡œ®ç¯uš)ÙÀØ€»c” È z¨ä¦›ÏFæf’vñu7Ë0·µ¯ ‡³ª™vU“~3È+O㥠F þpzÖÉ 5‡ëZdDƒ`¼¾'ÜCÍôÍÍzâI¬ÐÎÿSÄøP–—]€jR¨³Pèp0ÇZø‹ò¼-çð™û$Â2ñuYŽ4Ž^Š&<¯q#jM¦ñ–pŒÆ %]ÿdgøóç3и IDË4ގѸBÙÇo&ø>ŒÆ‘^³óvtcsÍë‘ ø=þã}Á8TDö ÷17bÇÎïý¾Þ~œ­¿þ‚ïÚTùîîý.zÌÇ…ŽW,aÑŽ °J»ÃÃbSU/s…kÎá™B¿ö¨Á’mG8Fã>žLá€üƒC‡¼ï9áÐ!ïz&8d¤ʳ¨h ÇD…¦nöð°x3­½ÿŸT«@˜Æ[Â1GAd\z2?¯TK'… Lã-áK+¢|dŽ%è!ï{NÐÈ»Ž‡þö¯/&gÒšþ´3ÒX0À“MkH¿ì‡ø©_öáðËìoõ7ªendstream endobj 1039 0 obj <> stream xœí\Ks7¾Ï¯èãÈ•¡ù~\7Nv³•ZWlÝâ=(IV•FJ¬ØkÿûÈî&šÍîQkÆv,§â*³6€ ðÄø†3Ñpü¯ýûõnÅ›ËÕ+g›ö¯×»æ§«§/¤2M`ÁJ«›Ó‹UúF4BK¦½o¬ÓLÙœîV¿®ïN€¨òÚ¸õë8 ÖËõmžý³ºàMž½ÈÃm^p™gßæÙ³<û{I,ïò0n¬¥Pªý¬Ýi™jýj§·ïé»wyö·<¼ÎÃó<$ü¼ÍÈ"ýU•á«*7ȰcZšÃOòðÕÉÉFHΙ6­Ú2Dm‰ÜEUæ³Bmiø]?üïé¿W!0eƒh`/fŒÍéΟ0}SÕ=ÑÀeUqokBá†O_h®¨!jÁ¼’`‹qç¸çÚá9m8³ÜHÖ;£¼t‰HaÍ60Ã]Gä}•¥ëÌþmžÝUêfJ_!S*´ Óî[V1°÷S˜¶ßž…gð®ªÆY ë®déËÁ´ãb_F$ ‹}Yw~¥¸dv‘VˆíÏ.§´ÒëâçÕé“ǧm•ÝI¯*øÊoжÊÒefŸpwXñ(\ζÜGU.g‰Vºœ¯ÅÏ,QÁ·çgΧ…?2|$àù {|$Žy‰Â¾,¸D+Ô1/QÁrÌg¸`:Pb彑W'ÅÁÓëÆj˜tXTÌj’Õ>‹7,(ÃCÜC)Ʌ´ÀªÆŠ‡,2cë½æ`è‚‘+DHÅ[«P0NkP¯Ú(e4ž.×Au¼z>(ƒÁX8ÙlT`ÀL¬žÉáâ¹õ›è œñQ3Ȫ ÚWÝ‚ä,8:¿ð2j)–µ¾ÏÊ{žgO« þÕÏâ&?œ®~ÁŒo.ïVxlþ·âÍ?WÂͼm´t†™Ðì@iAíýÌõêåâb`»M$˜26·™Í™BÔèR‘úÝ˪E“úÕŸ¥A ÉX&„öbÁ2ãÖ„NZ)ü.”ÒJ$ÃÐ`h\%ÃPÊ ç“5´kà0A(¦¹L6ÕžqKmçödz0&€ òºO´Wm¹ã¶5Ž4¾CÚ’n’y;¢yÊ-º|ä$—‰Å´·ƒÕTˆ³üeE6㤛ü”Êÿºä ÅR…R).ã¦V¶» ÿŸ¨§UŠWªßDIg;%ÇùËV´ <½)Ï–¸0I±M+açµâ.´R29ªÇÑ͈tT_¿Ï4Žé§TÀœ´®œjO£%®£gD ê ~çì>uB„Á)ã¢Ë)³ä8ÎqË‚‰ÛKÏŒ7“£Âßœ`õYÇ2!.]r›¤ÿ DZùõÇÄ^T£€/œïÓ’röïU×ñvÞ_( HN‰n?–¯Ã9¼ þSTïÃÞw{؃;ê ÙsLh—‡D½úÙìáEœbÏJ!†ìÅ-Ïóð: {wyHÛî¨ì“L [@è÷9¨•ZL³ä±kOI,ìâô˜M¸;øžÖ²IœÃ ¹¿$°ÔoŽgÒ†âìë\—8t¢œäZÚ×Ã!¥‚È!kN½CJq‰Fº©XLçw'໸?·Cz€w” ÛQ~«{SíCâɨ»&®xH".ø`bRƒ“Ðv©¼„à‡ì#ž8Š+²[Áo,®55qÑïï×qÙ‰cémŽå$¬ÓÈ[ܨM0,(¡Š 4£ ù1×ð]&àúñ‰ò/Òlƒs 'uÝ­²'¬\h4xƒ†@&‚z^ p°±œ0P û¹>ëA­Bƒ¼Ç÷G—º“T›Š‹WwÛ‘vûM€hRÒmgh Qò#Ùg PàoâË/êUq£•-|-+ËWyÁÍQë|tÁ\5 ŠŸ£¶2Q¼8Ïe€Q–_/F/Žqv·§x±¬ hKØ{(X±Z‹ÑŠŸKžkŽùZ·ëáÖ?æ“æ`¶Æ­¶‚ô´ƒK¾%4†é¨æ† §–§’Zj†Ï|3@,Ò¶¢‚2b¬ü0,&ˆU”žFz*К£G—i$sä·HÁá[ xeyú¬“º >ûPƒ´á4i‰> ZÒ `Ǩ^¢1Zʹz ®îž‹»8µô`Ëʈ†“ó•ÜǘcTF´$ý¾†û0ù:™trªƒs1!g> stream xœí=Ér%·‘w†>âÝæQѬÁ¾ÌmlKÞä™±EÇL„åCïì0{±HµÕþúÉD¢P P¯¸´åƒ»¬QY ä¾ý׃˜äAàßüóùÛ3qx}ö×3™FùÇ󷇟]žýûd ‡8E§œ9\¾:£wäAJ7ÙàÎëIz}¸|{ö§ã/Î/Ä䢶"_ž‹Ik%¬<Þà°‰VH}|ŽÏZÄÝñûôìBÇ7øè£UÂ?$(ÁIë·ø,½´:VsÞtcµ¶æøŽ¦›¨ÕŸ/ƒQa ÏÒ«Ã…“R._ª—@ ­£?^!ëm °FTm4`)m9,%'¯­‚H@¾ Rˆþ<=F0þ{½ìNøUÅ|uyö{ü’ ‡×7gföð7 È/q¡&£N?y{x #ZOA—‘ë³o‡tk0/t‹zÒ1…5+¢Û‹Í× šß/O—ÇËãÕòøÍòø¾yÍ(©uþŽv‰dÝ‚óÆgÈI8#QZkoâñ"”6Zc`4¡‰1´Òâ†<ˆiÙ«ãŒÆ×4Vïççôê M·QWÐ×ìá„®Ë 6˜š=ÒN´ìA›rÙð«j«{hky'hÅûõN“  'übA£åBù't©«-<›Bݤ¼‡Ù¡ÚiFuNêç˦WÓóœ uyõR–¦m@M¢P$èÌFRÅ8³‹VÞ»(?éb™‘·|×vr ¿u"Õd­ñ´$þö{@@Eøe<>KàrÇOF©çÀ<ÐRnޢ׋D®Ä0¾ZnÛ×f%³"‰ p¾äo‹:äÒÔÈÑi+¶Ä#­Ü˜Šh|;ó†72Æ(ÿt‘w.¨«¿¯`Û ¬ER††kïiTÚ™” Õ7 ö~äÓŸ10#•ÔpPB+¸êKÅÆ>Úì¡^vÎ&ÞXÖÖÙ·L0®ˆ$`N9'Wøe¤Œ†­åŸd2ÅwÿÃP #£Vá+&vïAÒ õŽ%A2NÒ OÏa•°Žxüxna‚–’/Ó³›ÂÉçÀ’u´“2„‡p@†¼Jã=§È[œ¬¦à*Ô ¶ÔèÐ0ŽJ]Óšo÷GÒ ®&Š’.aH)÷°(—„§|%`(`/”PJW Iç§í¢§ÅÒƒ—]áíIc B,Â)úŽvüºý•&×£ð\;hZ p6`®iDå0¢‡?†FÃ4CJÐ^é‹:D§ãH{J¡#×֙˙Ð<]F‰¤EºÌ‡$Vï»08õ<¾;DTwd À Q&Û'›Åê»#{ãÃXB ?2âú¹ÞÉ)H.7ü=.Z‹3ä¢ò­©Ôàr‰š7+€Ï[çW5SI ñZDAáäÑ.£›,é›!ú ÙFˆa†“¸ç„ ¬Œ5ŽwG{¶Æƒï}LJ-GUzèU^‚0[r‚Cx<³GúB Wü”öo^ÃßÓòqåÉâ÷eOŽ–RKÊÓ•ºO‡‹G¹¡ò/†dRÞ[a™0yáÃPc)lPÒXlæ^e„®´n„µª¢uÿ˜°òž|9)-d }´Šbóà=Œÿ Ÿ¬Í¦ÙàY_éã/Ó0¨r爜°ðObš<=ñžHfèR›¾]@1[ëOŒóôBË$ïÏD ¨l2Ìcµ)'@AÝOå²Âì §ïuë’¬]Ú¼G‘ïÎÓ?C˜35‚"GÁ\ 8€£QèÓŒÌú”ðc ® 'je}>álð?¤Í~I3|1z÷ó‡it m…_íôHßømà‚ÈÚV·¦¯S­àýìÚÝÒï·ùèGþ0Øž¤x‚I ö~3 ÃmêØð´_Üžƒb¯C[‡Ù|) Êf„ƒ¤S'"œ«'Câ#D ÅSË_·à&˜}gƒ‘Ðì¾`Ã× ;·ÚøbÆ¢¶o1¥l+’ð}»EÛd'Ɖ‹(ÂÚ¸´ið¨&l±V+Y8z™‡ÇÓ*€U=Qš£—ò&°”ö°|¥6µ¤3ÉgåË©€ãrà«C&É3ÂÊ{ET½q+Ǥȇe&8FœCŸŸÏ<|Eï9S9°µRH µHpÕºR!+‡øÑ¦óÑç™­í$¥j™È´L7sNº!`¨$[sž½Î¼&,‡1o‘è¦c8‘Q¦2³n5³s´Ê»’fh’Œƒó*¼nc„nnÌŠ#Á5ß´3»€0CÄ äHàÙLïÚ‡šðgŒ,s0ð†Ðóu£ÆWh¥ëÛˆ²î>6ÂOÚ»=^)^À£É8ÕŽ0.Ūz±9ãÀ»°zæø[æH\1-ÜM€'b•dZ‡‘´ÆÆdn#8½±ñÃg¹ FÏ(íÑê|GY/EÙh˜EjQ)ø”oÓ#£àà9 3F>(j ³VZRa2f; „)ÊÕúnÂÙ2‚#ý“ù Bïì —õ¢-S šëxù{ZWôëè--w3Ý4ïß âv°ê˜^öj¤„Få)îòÜæï([±~ßçaNQC½†NÊùÖØÖ©¢¼JÁZÏs¶…ÃPPeBÐÑ……žH(¬x¥ŠNäÑyZ$½Úæ4’ËÝŸ?&T˜SˆÇ_'T¬ê¿£µ»-H˜õ»Çk‰Œ@ ùi³†*ud0ŸÐ"±<>6{‰&2ôL7ydºW„®Y%Þnh h€7]"—“#¸0DB"ŸJzt€}ãÌ Z—ݨ¦äÛ‘Vw\Ð\`H¦t§\ÐÆI]Ka_[F*|˜‚Þ¬„á”èzi…ÇðÿÓóßp­ xä!s÷¤¼‡VnT/oÖ¨U7Jb´ Ç¿ïÿå€'?Ð×E–\¸ó)ÏÞA;âßÑÂråI™ÚJ'ŒØ¸Îæi`_»ÍâàA³—è ¨k é ãc² Uö¶"øa?Ôܤ¬Ko Ȫž‘«¹ý>Z‹RqëRÚöŽŒæàSNc|Ÿ0¤«Ì ’aÒâ^â/UmÐx½až¢U¯|ØHÕë¡Õê"ÒV˜tB­Ša˜qÖ§Ùl­*’ŒŒø›OË|d‡’áûæìòKì’ ¬˜UÉW2[;ËDàúíÄ+Œõð8ýÞÕG#ßê5AÇêq£¸aT:"Ou¢OkÓw×®ˆR´»µ+LÇ®g%úûDƒFø±íï1a»¦4<Že\Ö¥ U[ÈØÖR:DMQ·îrn½Iûh€~NNr/7c„ø@Ü&£S=&ž] pe½kÌ ™Ó„K­é‘SÑO"~}$hÚØÆ³æø·öEý(ôì¦<à·]¨­i÷ÆMSÑNÁ lç©:ߨ{^Ñ(ú‹›ÈñŒì~žÇ÷Bpmà•ÀÙ]Zš „äΈ%kCÁ·I ñ/Üæ)º—I@Àý6-ð •ð3?‹íV`Û ‚ë4Ã,ÛoÄS€àl~Q¦Ïx¥e¿y øÒQ‘˜Í±ä¬9¤AÍ‘öÑÉ¡_K5eqÆ:v^NNº8TRxÝ·“R‚W‚]»yMÏÎKcë4¹YF_.Ï{ s×ç›ýps•=\[\ÎñK<¾iâ7’„Êø¦Íå}ŽpÔv:"G¡§õÿœÏÔfõuÌx*gåQ`L¹ Óÿ“B7²zWp´”FÍžUŸ+€ÇâÒws±PZnK¢åk”4uÝ n«ÖªgUAmm·SoÆál g i·<ÿٯϭ ØÕ6²¶VÍIâ…ÏÝQ)1áù…yåÔ¾!°ÅH5í÷<•, ˜u¡_w­.ëc¿¯Yö^–ìöoY‰~íš`8P‘'˜aU;•Œ$vqp9²ƒN‰Ö>ÜN¯ÚU,ÁlI;bí†mO£©&#ըݿ ±"a»%ЦäÄE‰© Öíqàºlù I5ðn‘‘zBÕ"„·ËÆRó"8ü¦”*ë¾(Üåì|R!PŸ:ˆMÐm›`Ýõd!6Z¤ëU¬ f bU¬Â¦5!‡Lw›Œ #BŽ\ü bkWõ±^ÆñþZ©¬=³á{ŒsâHl‹5.ªEcý`c]g—XºüÜ)œ³ŠºÑàƒØœOùq†a:qúœÍ]ž}`AÏÌÝÔü©) N2öÞU9Ð6Âà9)X+ïa”k„§B)J¨bÒPo4À ÒbAtnÏ®Öó>‚™t|,ïƒkg!…3ÖÎéÛaÿaÔRƒ÷ì¾êlš:ŒUÚ¦Ø9ÔíóÙë;00h<­lþNlûfy¼^8x¹õˆ+Ø›“ZìuѪÿÈS|D»ó:<ܶۮX(Øf¡ &ÌyäŸT[¯ÏËÑcÎù¬xTÕ—n3CºêòŸW4*íþb«t9¿é’¿s±U%ñû:k1?b°Ÿ 4|Š$ ô¨ P‰ÞxÅC;¼ñPI°w?e§Àk <14h¢ãµˆË{ÝŽÆÖ£[g<÷Ó"Üù’'lM 3y$“ßœ´*½ýwUqTŸ,Ãàñ®G:Y†,äšüð»™³lê¢SØ`ØqW’t´î ]r¡* ÷ÛçÖ1…ГQ¾±(£:ljâq{.¤£¦“{×ÖH0Š+æP¹ÊèSáOÔÑeªcˆá^&`¤ã Ñ„Îì»Ù« nP…Ù<àTeV›rïêÆÆ‹ùªÆÚ±N9 ¯VTØ]éËùÂEºÔ.bdw5¾£ÈÕ¥"òìêi|/óë|Q#‡Ñ¿rTN¢K±f•zìû¥ƒ`”†ÂVmðnEŸ2¡ŒÜçnE/'gÐIèw+²~¶ö&·«eôÁw+Z<ÒѹZqÔ«6h‚nŽ5â!Kì-ø(Ño W*`ðÔ5´%ÉSôOz5b`äÝYôÞ. ïp™a§—6W»ÜQÓ8ÃkWT]s ƒù3©Y6 Qªû¸¸•à¶‘DÄ£"6w¶Ýñ|ø(Pëgž/IÙ9ì+¬ÝËä¹qÃð–ÿ«èµíò0Õßs¡(w æÊ²Üí\§Цouá:iW §¦VUJÞ©=Yתg³g±w(£Ý9çk+Ëwfä…Nç}³Ž,Z.”ÃR±š?/«š˜•qýaU†»F<!Åg¸ÍÈ 8›ƒŒÂNKHHóÀ}l Ê8A€Ø?‚mIß6…?öò‚}*90..b«Ff1Ì[¹XýOÄsÁ”«šÓ0»Á™_øœ~áó)‡AYà¼äöƒçì}•å¿ã Ð ÌåAΑäшl£KPŒxY3¸&–‘{]Ö êÜ& éç)¢ï»¢wÑa‡°üðâÀ2ãyãˆÐd¶³7Í&#÷˜× +ã' ò²Ééc·íC6@LÁªz“ï}rYõ—ÀöàlOVoÝ©MÀ^uÝ.X›Ë“ò˜,²ß^û¶Uv#ïK¿ÊˆÊ„hˆxý°~P•€&|w^£'A-„(zì=åňÄÁ-KÑèmws‰Yßé‹–R—&÷Åá¦KÖ®šÄöYêJ^4¸Ó{?,£Ï–Çk­Gìþ&³Õ¿é"ü¦‹Ã;D8¼­þryÄûÞ¤ÂãwöNìù¢Ý×–YžTR ü¯É:ÔGîÊôw Õ¼înø1ÞbsU|x¶A¹`JŒŠë›Á„FÎg m[^ ò«> stream xœí\Ks·¾³ò#ö¸t‰¼W[–í”Ç6S•*;R¤(U(R)Yú÷ù˜ô`0ËåîZvR±„@ Ñèw7zøËJtr%èÿþçó×GbuuôË‘L³«þÇó׫ÏOþüƒ b»è”3«ÓGy\Ií:+ôÊyÝI¯W§¯~ZŸ‹N ­£_¿<>õ6µ¾¤±±Ñ„þ •¶¤RpPO/ãGÀ:ë×_¤atñ]™=m.øzœ¥3¾<=úž²auuwd:aW¿â–_É(lç-¡­éçkÌhßI7Î\ý¸H‹ ñ‘;3ˆB‹‹‚æUAómž•á›2|Y†?6×¾§¡QRkÐu˜Ít­Xe=1#„}{|"AhãúÖÞÄõ»Ì'm´\ßg>‰(ôúµÒ‡õ [^št]¿¾£iïq|‚*`«¶ÀOy±g»^8ZKÛ$¶ñS*)¡%.®Ÿ³ Õ› ÙÙ ~ÊÍx6_‘Ά èÀ¡½ÈÇÙ Ü\nè¦àJk:iÕTr½•¾(ÃïÊð´¹àë‘¡£äíAYǤÔ¡ [ûH)@tª–Ò§«2|[†geø¦ _NpžIÞ‰$"zu"Ug“™@½Ààva ¹’*’i¼Ä1‘Ÿ‹g_ÄÜR ˜ž@mðœá½D[¯|/(ÐÛEQº hЦg߇˜õy‚i[̉d[N<ÊÉsõúEÓ2Ü·¶5ɯCt‘Ëü¹úò%S’ÒtPÖ&üzJ¾ÆP€úJ(¥ywã:gÜh„î–ïSÛ4nô^?paÙi¯Gò—ĹÑV¯–~pp ½$#¼wM«;j6âþ=~i#‹ÎÊìv8ƒ‘´ ê ÍÂã3;7ˆûxgæ){ }åÙƒÄ?¤W«4ð²WØ’HÀ¡H—Ä t¶·8ÒK«ûdÖ'‘t¿M§¸’š"Gäç‘ÂÉAщò´/'L}´Jø vLH­º­;#ÎäÓµ>t1Cº`ø i"ê@… £Lgv)\xXF›€‚9öáÂEš=+ÃYá"Í p!\±C³„d1%LΖsûLU)] ¸Ï©Õ¦Š@@Ì©7ê<-‘N7_:qø&œ^æÃµÛ*íâ·yDLÊ{™RzZ]ñ@;úN; —Y9%cmãÄsWÌÑ{>cñ¯É^>~Ál"¿ò5›¿f&ïce¢Bx©+Äl; ‘9›9yD]ª”9·06vÁ“¶S]OQs•ê&…˜¥îiö²V©ÝR]ÊE," i0Ró¢Ï¹e% d—íga7ÓKIÔÜdû°B„S8E&[hȉ[‘L* 7Ÿ6Y©@ÑÀ –žæiØ.¬Ÿ&#laB¯ :hdœ{ÂýšlWœ¿^óÕ7iÚ`u6XyÅu>&82Ï ~]¿:-¹Ê ½S<øÈWÅàûè”á} qôBHuðÁS¡qŽ^ á2LvO 7p>W úïÒF°QNòŠ!Â`gü”p½f¤dF7½ª ]ŒB ¹¦?ãôŽy¿…i9N7%º"¤¨ ¡ñzH²á4VV z“׃Y€º3»x=dÙ>ƒ€’Àé¥áWÍÙ»âôîkÅ®¢JyÈë§ò•ž–%ù˜ Z0&kx?}[xö†M÷ ,m¯ =/Šd ™$'™°#„ŒÆ«rý^Â;±ÊÀNšCòJ.jºÖO&Ú):OÖ—‰Ò7®š„ƒŸ÷0µ]ª´Tâ9Üz³· Jy™rd{+ý4™ÿ¨®.ä®9H×"ÆèxŠÌw"<»æk˜Ïé]ŸžÉ–€ÀWŽ·žRÎgÅLþf"¼^è;c*¾‘‹0T^.^r‰ .dVÉSU}°—ílfoZ~vje4,ÑŒ=éBQ·êž)f»;^HýÉÙ]<êuɬXtÿ¼ÌÞ—!k);Ÿ$a-©1ñ¨õ{Õ&:Ì Ü©BÜÖº^N¼~“¤î¡k…Ém*»“h‰a±N;ï™qª—5íb ×_lxu¦Úw”òPÓÃKƒ6µôÒu„œÑЦ£víסj~_Þœ÷ëèÙt‚!é>YP«8=òy96î|“~k©šF.é”™0c‰Im9‚ôA ¾EÖ6}ú‚NûDqÓן‹Œ\pa"’·Ãïïó~j[ÚîyHÇÐÅìK^£ÆÕïYŒËù=Ï9x/Q’1îÒø:|kú¸W}…’a&tç¦ÑY&Ùf½Äo–¦*ɺ[}!†½žµå~òÒšl}Ö"ô)1_Sç••›Þð6x"W ›¸øï, n߃GÈ?gýQ[)·QXh‰\Ž*¶x!®Ìëf)koánÿ†g?ÁöCTd«™Âðõ*«µH=ÕËþê¹ýCK‘Ä`ž{$hÕ34¡£¬ø=¬nj߉ŠTøSÕõá›BTpjÚ2ÌìÑÄËC5…|^fYáùU YṄ›Ký!V–þÄt&E s‘ÅäA$¢fÑr®½3¡*Ø*ÕhV²úÖ…ÅÆ®Ê%IE_¸`¨¯psetÞúö6cÅ¢Cä½¢ nåÖ›U”úsèC-íLn¢²ŠU—&Íjá—No˜V–J¹ó4ªH¥[” Qºàë$z!Ò÷56úpŠ8dã4h‹3­(WTsïbÕöÇzMªîòøÑËi2²Q.¸º»|-ªqT>у„¢|) )õ].Àp©'puð®é-51LKöõËféÁÞþéWD°¶Bìñ+Ø>m<}1Îì`û4P3ˆŽä¤˜¾ž>Ç!{<­Ÿ¢jm{—"ïù1 4;YE4nNs»¡yöe/å$¶kÖõtl¬àøéwгjòÔž(xŸ C¥q ¯æ6BZžR (±Þø\@K¬^£¦´}×xª½6s›˜Ó7ЦR‚kDÝæûpé’ Á‹nŠDéRÓØvµKmÔ#«^[–®ÆsHÐ¨ËÆËÉô»I[¨dñWî8/û[䤹úhðɺÿhô,‡s޾êa'—œÄ¸A•Yé– 5ÑtZÙ½*Ä“–ÅáÓ„Š' qÃY_5RzŸÌ$TèÁo¯–ÞÛ"}ÿupCŽ,ʤ˜ÕP³—¢m‡\p˜Ù¥‰EGøó”j_‡2å_7M9û&âöQ¦üáVxòž¢o…â¿°^Åß,ë‘JWYO?³OÖÍ”Î*ëÙû­ÞRûõÁ;áµ ½2Ô OCjt®:á¢wÆïâ™°ÑÆ¥¿°Ý{ Á€x7 £TûOÌÒZÙb»;ý>j½mASÐ7‡~Ñß}â~÷ŒNã)y1žœd›ŽÛæ,<UÏRxl´ÐÏé?tšGÛˆg†W²GwšÏª£ZDeë"D‡/EpªüÐk>ÊÄíÌjœþ}Ú™¥§/˜%kgföhgØŠp¨~æÇ{ºMýÌ©óüwîgvºÏ~‡vf)ᵜbíÌÃÌíÌ‘üÃú™·àù'êg.Ôêû™÷ ÖÐÏ> stream xœÝËr·1gV*ß°Ç¥Kœàý8ÆqÊQ*.¿˜ÊÁöAERe’zP’Ã|}º3ƒ˜].É*WJb!LO£ßÝhÌûäFà¿ñï«ë#±¹8z$iv3þyu½ùòôèÏ?È6qˆN9³9=?JÏÈ”n°Ámœ×ƒôzsz}ôÓö«ã1¸¨­ˆÛ×ÇbÐZ +··8m¢Ro_áX‹£Û~ ± AnßàÐG«„ß¾#(ÁIë·q,½´:kÞtcµ¶f{“–›¨Õ/§ÿ@Œƒ(0†±ôjs¢ãبÍé z ”Ð:úí%°Þ† kDÕF,¥-‡¥àMR( ù€H úWF0¾Í³§ÍŸgñ%;=úßdÃæâöÈŽ›ß€#_É%ì}ã´Ñƒ²›kØŠR@õyæêèÇ.ß*Ìg¾E5¨bJ%¾e4/2šòðE¾ËÃËzKõÚ+%µ&†¥Ù&“¬¼qr",H†„³1&NkíMÜ~JŒ‚ÍË$Mè$ZéC’†q 0S?h›DjdñE‡Áæ+^äé‹Q׎3£ÒbÛðhÞËcå€Û»4iDW‰\ZyÐN`à`’fŽIøH¯•´ÛÏM;[lšÑ³ÁzËÚÂ5½@£½ÑžÔíDJ9€•ØœHsk|ð5´BIÎqGÖ+c\eÁÞóqVÉ5ÎhÀ‘“bIoÜ)#}cC å% yÁº1œQ\z2|X©’±@v˜+öÜLœ0±*ī뫈||ëÕÎŒWƒV%µ'ùq ñYU•³OêŠ8¸e'p›”µ™˜n^¦íÊJSP¨PÏy[Yä!—Ðñ}~&’«AH?Yš.ìíÚÆ¹HÊ™dãŽôoŸe\H&¬“&X™çŒBZY‹Ð2ÁÐ ®y—pWJ¸‚œ¯VàOM!P ‹k¢ŸÙàåärÓô'öàmÂ#„íoÇ@y &‚°&6€ŽOÄ ÂEpðx\TÞ†*h“äW9ߓ߻ñ¹(ûÆ}…I pÍ}–ÉÜŒ$øekÝ$RgMß÷1û¾zv±öåºs4 ÓÖO¯ã˜^2K±t”D®­g#Ñ‚Ÿ¬Sö(dìK•@HG: ê~D.l1@³Qg T“Q#•an$=„ŠM'Y×jðR'YÇ €¶ùbaw÷\’)˜$Y0C´µÅ·z€ &a§!°Ò˹6ý·\/hÍ£?Á{PW UH7OÜlÝÌâüq¢¿ ez'×Ê·-3ÏÜF[æ1ÑYÖ•í;H+t¨ÄŸˆ¥’F Ô«Bªƒ”ªc¦yÅ9͈BZ9únƒ:-·÷³­¾ÁwGŠÙc\8Û¦0ÅÈ–'!´÷ §u@rê ½&íNÊZìwÄûWé¹èõ“ä 3 !œtB ¢Ñ2œ¤˜ßjv8Ët¸Ä¹ËÃüžôrW°d;iÏÛÀÀOÛ¦û™òô zr#Öeöûóv‡…ÇÅX¹{ªåÔ4Í~l{n› j šfk jWnAÑÍáê2wšèÃP¹hG@ *†Ù#ý| ­å!¼ìdýCѳ<½ù |äJàu@bAëC#l±Å=HXË}vU7i†®g ¶€˜kOË‚«•ëQÞ1 xÓѵÛD =g5¤^çiÁ5­Ö\ú"^µj8„ùÀ“ä´ð)“ŠàTys½Üq üœ7JºQéi±ßˆb]콓ËÛRåÀ¥Áª½Ê‹PYÖ§^2j–«wÊu%5ˆ‡GÁm»®{vî´Z ÕYëîíŽ`U£ÂëTÏÝŽÕ ì~/,ÏÆâÈ…˜ÛJfAœ(b±eµ1ñ²^ОzŒøb*^*̤¤cQ)aS\K.#e©M–¨´ã§U;12¼£QºI²qhéf%\à%<¼2uœþóèô‹Ÿ¶ÿ¦Wibç0ˆÊTN‘…]c>,‰Qn¿Á騬Ú|‡ceÀunŸã °N.î§Í®™²Mé'–Sæ7e›RNo®p{;B`œ²­íåu•0Ö•8Ü&Ð*–•Å·l#D —j/0”²çÖ}PZþŠYN$ŽSUFvfQÖú ˜ ûèø†›¹ŠÜ;ȸȋ?‘‚kˆñ¼Ï­Þòÿ/ÕR²Ø¯9×¾h‚[ª*G‹© '“Ù‘©àQ5†£:ˆÁÙ¢ Ðñ3e¾¡½œÑ= [ÂЂ=íX¤D(ѺJn vUƒdˆüJܳ².Ñ€ µ=¢—TTy \(”•;9Jõ¼õlqWBÑÔõ+|½Së9ѤTfaMV"à™Ýt ÐÍÇ!Âjžã/¥˜d”ËëYÂ.˜PGh„sóü³ôŒø”A×ÂäÑ)Æ´¥ÓÖQ.m‘ žR¤O¯细®áŸè ãb$뺣Ÿ$¬™Ô°>>ê‰Êßä<ä»<|>§$s€ÒrÀ¸1tÐ7×GÊð÷óÄ'þø„a}:ðÿWÆâËõlH~öð®CJ®qœÜ¬äÃe{´vÖª–'\¤7Å4 †qaÅΘ`ê6! ˆáµíVõSáM¥<‰·ë×FRS¼Ò)ïµ,’-*Íœš¿2œV)É:™)Øpg 6„ëô|RÆ:,˜Þ9¹ƒxES9šo«œF;ìdÔ©C­T#`#_Ô‰³ûY…v$dtÉØÀÀÅŠŠ¡RèÊAð>TÝ€³X6|Š#„m벯vb¸Õ ‘(§Ëa‡.g#]¬Û+(ÔT`5v`›QnÐ[ÿ)ãñºUô¤Çæé¢úÌÇIxgÃÝG#pÑ€š<ËnvN{¥RÄ;áèZÝòÜu.Äe²Ùb*‚ZÙšZlÀçBâ"ÂYï|W<—E‚ºt‡@"øNß«èT1¹Šô«Ò6DÄ©>‹ðw–ìJœ›rQf›k órÈç X‹&›§ÜŠ.wêð¯%¬î6ôðâE‰bª3#ùæRa•}L3ˆ˜B!Z¢Õš Ç%´ 1*±×e™‹kuB1¡Z—×mK·–~˜¦èíÄRX¤ê°VYlØì‰{»¹Ž;ö,›ß¡´{ÍÈ* Yiô:b¶ÜåŽ\acN_Y~˜… ®›<,ó7R½vÝY‚'¢ß§rPEKìœz-ZºMü’0ü‰íUgpŠ¡ÿ,)€…pÕÍ ðcg¯œê½Ôºi%ÐÕmŠþpJ³êþðtuÚ\›©çÄPË€ž´Éƒð‚Ñ‹þÏ3d†d7ˆA Ã{Áën v÷ô½à$(l»\aÎýÊ\Þ³ÕÜ‘rÕy”„2:yð²pØÍD$Ãc@|B¬œôè|W1¹3f9(в²»Ð3*7 ¥©›Þ¸õXÁ8Š˜õaí©Üˆð¬Û¿IM¤Ò²Æï?ž!lE™oÑO“z5NX×n0:âg€¡j®)¦îêÇXp•u´û<ê¶Îº-9±rG[2øÖ¹×n<è\jPÅBXœDÜÔ/o¼´Nžx:öâ·_ÀÚøÕjÿ*ñÁý*ˆ˜Ÿ@ùá ƒŒãÝ/P~‡=ÚóÄ!ºï ï"˜Ý?–êÕôë‹>w¯R_S^DÜ,/bóõ†“ùt‚šVP-¼ØÉ`øùlŸÕ²ÛžYWú40QY7·8½:݇”„€¢QYVkTÒ•ö^èÁm«\Œ‹Û.r¤yµBµ7:`DŽZ!9§¦‰C´ šap&ünÂ]ž>ÎvôYâ¼ eÉá 1º¼ öùÛþ| á¹\ï5Œ_Ïà0ÚßéèÜ{¿¤>žyì`H¨”©E”  øÁ ¯‚Pmš9äƒØah¢Ñ»?xA³/òpõÑ샣>QŸ­³¡æÁÔ,莵HCçbFâ´µ­ ƒÏ ‰E{6“ ºÆÝ„;b}ÝÔ7oµj3ÁÕ>¨•^¼ü¾MÂ+Ñ`}NðÝˆŽ·O`ðºþʾŽõE¹N÷,ô0’)÷Œ+ý.½xy§ùRàäöTàÁZ´c¤ãg˜¹éLëyº}¯ lÁ“|kØ‹Æz£KI¹Ï7]˜1ùÏzÍ u×äóë<üÜ$êU—ûžƒõ˜ÚV&Ÿü¨=¤§Òcã1SÓqâZ*±íÝùjéA–ðΧyø~´yR.U¾Ê/GSIÃ[®x¡C4®°Œ½ïóðÓ=TþçãŠë~*<ÃÀ}îßžÉÂLÕw¼_Õ$¤Ùó> stream xœí]I“\7rö¹íðo¨cSA>c_ŽÒÌx$‡dmíðÁòds “-’EJ¦½3< ±½®®®É…zD °$™_nè7;¶ðÃÿÒÿ¿:c»ggoÎxhÝ¥ÿ=~µûêâì_~âŽíüâ0jwñô,þ†ï¸4‹frg¬\¸•»‹Wgÿu~q-‚Iéíùó{Ø¢­vNœ?Áo¥½rÿ}ño0¤š)øâ ó0ìÅ% ò3 Â¥SÚžÿ%|zc|_Z/†¾Î­8Éß.Î~Ä™´Û=ÛŸ©…éÝï°Í¿ŸqÏäb®[.Vï^A‹Ô L¿¶¼<ûyJŒfå™^1|MŒË²Ìge™oËçÃòùº|>o·Ôö}‰ŸJp)Ï-­_–Ï}ùüP>¯Êçã̧¤´ÊŸ¿ç+•äçïâù2 íù ü–Òqë`ÊÒx@Y±xi`³…5ÒàR+:8íñ°4?+Ÿ¤•Î9Í0Ë fT°çªG׸&ÆV;£ëï$®îáº~uþèÞáè*Óš¹Ú¤};)ežCZø°‹R\Á±„F.4œf —ÖÀh  ¬àˆÊF–I^êâÑ=à NÒ˜Ý.­ 'ö[˜HZ[Ñ#-PAsÚ˜€1×òˆjÖ†”R›ÅV”üõ¢¼¤§‘V¨­°ø  ×ôlŸÆ±„Ö[ç‚]¤«DÆ ´&ÜÙ¬˜-Ö·;ä&ÄÝ1äPJåÇHB­T};Æ"“þn"¦÷qy ~¿ÂAàÊà úzX„Já, ˆ,¯@ëÂÏ3 ÷ÊîDE—ßò9OüCú]Ps“mîÕ~‹é3µèÕ¾_¨?†0±—Y•]껢PÛÖ®ï£ü9TÒÓ¹u:ºÒçä ÛÒó¡ä2 ˜æõðúÔw€›pÍ‘1‚u¢FNe¯‰ÊtK”]É4T¿tDP‡ÀŽv´Ñ0äü#‹!û#'€Ú‚´ Á"ë™8*’‰ŠvôŽý_Í!øK¼G»Sšþ3ÌÃ`¢ÑnTÊSav•¹ù]Ú¡6)Ӝϻ+רBÇ!w‚æ^4ÏÀ÷·ÂfOÀ¹“°$A”û!Ï^5<Gx»Í¾ l7ëzè¤Ê†¶¿"ô¥í‰%EE»}$©3rxþvVðˆ¢ë’hŒâ/ar&"Ao‡È4ÅW†K7ÊÊJÈÄû·GÃ)Õj£e×Üd½("½}PK­ÿ%r=Êr#ì=tœÝFYç=€äƒ,?¤Z†Q¸R¥Ïÿi,xé­!£Œ™•ÛÅê/Ë'±WßžUA¤Œ$m‹†Ò MŒ«}Èت…94dk|¶²ÖóHg§ñ:G0ëô*„ÂϨözWe‚šÉùÐÃ'ÌNïÀ‡¸hÂŽN~ôëɇ¾ÔÖ ßi€?–òX´0À„b@èúBúPš4œ(  n6ÔÁ9ŠEåO#ªâø @]Ee}–Óˆfœq7Beè©­Eñ‘ Ë>l;»8Šž€ayCnJH@~Ckàeü·òNì“LB@’†N¶ºA’ÁÒíçEÆf½©§DO—Ú3î¥j ?öpy¨M‡BÖ'uGyªzÖÑ`Š«®-î_ί‘ž¨õ¼µü ¾¡V~ÆÖwCçÑ~Ø¡•Ÿ±µ•Ÿ ЕŸjQE~þC9áòáS¯?!ñ/á]ÖG¿ÜŽ–|ñ^Ï<A1“<³v´I% l!ŽP:À±pëG˜9­÷À¡/Õ×Ge[/ãØŒ‹C% öfæ`yMnÀ‹É]ÛGJÈÚ y7áÌPje4Îʦo}­]σ+}DÂÌlL ÏØ©Ù<ðŽ_1µÀe˜ÍIùŒl©Ñ  Ò–CÝŽL/¼ö]="Ô¬{_Ë× ×à:8( ªhÇßWqçFŠ-u«ÍÕ®Ãi1ðü1ÓFû´¢ÃiÐl­ò2*" |Á²p›[ñ$*(Ö{"ã9“î5;Òzµ—Í…©\ºëjj“¼?«!:ß$SÄHã§M9§œc൉¼q¬×f.Po‡sôrwñíÙÅ[±%Î,TM=wÉMTæõAgæÑxikv[¯ÍXo:‚ס­ êÚÐVÔzÃ%”C[CìbüNkã@!¯ Ì žŽˆbÁ‹çäK£X­Ï¨úO6ŠöÊë>± wS/eªE©Xk”82‡ì"$Ð ÐÏOua-lVNž‹‡îð‚Ç¿k…xº *7¸Þî´R!ŒúêŒ[ŽÜrLÀÔrôæàx©¯˜†Ö‡å³cµÐzV›¢JWü·`hX¨pvíSÔ)íCe&¬rQžOuRm-P³ƒ#·²uƒPÔDÂI'§BÏ3ÚÝšG·ŽÇô’­HGÖ3Æ…$ìáõMæ ÆcV- º>Çfqó1%Ï>®Ï;5Ã'oÈ/ß×7|he5Y9І`ª  ~r»‰ŸŸb§à«ÖÉ„} ˆ6`ßôÃFqþ¯÷à’x4åûpC¿é 0S;2î'…'¶Õ3M©ålÁo Üz_ÿpFï8àÝcV$™2æ ­»|Tx}èe·³è¡aäy0ÆÀ0M#Kd¢Döq[i–«¸"j– Ãß({3÷vZXoAÌ¥ï‹üÒúUùü¶tø[iý¡|þ4ì@Í7¥•¨ªoZULÈ߆³­uÎir™N(§»€¦¨©àlRb75/@uÃËü' H9¯½vJ4/Ø sË1šŒl‡€Íj*‡uü½1iãš šûa¨nÉ'éûmáûf\ÊáóÇòù׆Oâßmëc‡JLåë†÷Ì-F¹Y˜³‰_)@ÝlÜIþÅŽmRßæ’¬‹ë°¦®ÉØGD˃¦RÚAJ‰ ‘¾ÑSÛò¨$ÉIС¼KÂÀx´“všsïkLÛqš¿.W™øÔHŠÉQ"PŒô%®{Z¸`uGž,f‚S_ljQîæ¾º@%æLE…ÎpÁµ‚ô·nžCB¹Žh¦’.Ó §9¶uùnþ–ñ\‹á`hÅÝ”¹ÒÊCþÒ5Žíð=Vo±TF®ù xG"8ct”¦ÆD<ÊyÞ}‹mÒ!þ1tqpn•Wýæ%eAЋ©;»O<Ïn#ø%lóšÔ[=óà ¸½׃ŷ8³S‚d¨_€ËasË1úÅ¡‹, 'î?׃#9‘­[¹ æ~]]õQãÚ“¹`J‡Àx‰Ê3®œÔøÖj`‰yë^Á/ÿ'ö¶ªMèäQ¥: P€"ÙA ¬×¼T¬Ð”œ¸* …;ÚFC±k ÷ñuB¸ÑD°ˆEÌ éÙ½DÁÏ5Æm¦t­^1SQy`"£„û£¥k<@ÛEÓ‘ZnVÎ7Kïš-·I ±hßÕ sà}§ƒÝëC‹|k)“ÀcB.]¼û”˜Ž.MSÛB$Ý+ût¶=ì¸V@•û^šçPYMc½Ó\‚´ÐdÕW‘"ðÖ½ ­œmVf âó¦Ö»4ó¥A¤CÿÃ'¦òjbö|ô8 ÐJ2>“ ÛéÙvÄë;˽ˆê[™”ì—ò£o–Òy¨J‰—ë"²"oÙ5î¤ûçvÆd«iÓÀ0:d<`¡2œÂÖtâ’ëë0®¹ƒxÌdãø»Ö[иHоƒ`vß!EÎ8dÞÜrL˜Ø€Ah±p‘Räˆ'bä%ŸÄPùuãg-6)µ‡¤ÈÖ^ÂVE㔉Ég¼&>ˆ½è67šùb™=()£®ÆçœÇš+°¶Å¢Ò,Ìûa£.¼)®KëÞ.f…Ç Ý©?á\(§+ï)$,*¦ñiJZÒ…ÖvÌôÉõ™F`×8sz+ \¼ÜIk­cÚ9°‰†Ï-Ç€†ƒ"ËîV_¤Y@NʱÔ ”#š( *údOÑ`€üXw&ÞóèM-Ò’oï«hìi¦‡±Õ03G,~Œžˆ.ßÇ0= .©V;óYÒèGÊ$ÌÈkîÌC1HÈmë o˜§‹@߃õ¬º 4\—‘Û¶!Yšúˆ¸\mÑjÚNÊœqÍÃ%MZßÁ/ d 6'tÉÃ…·Ñì~Åqr287Þ1팪‚/hU•ñcÏA|Ey¢°ÞÏòQÊta´ÎÚí65Ü ü²Æ,Oœz½ˆY«n†ç4‹)4¡X‡ö¹®Ç ˜èþa3Wf úbR¬Å}nfI TdMeàŒ_ËŒ—“­]Æ:Õ•§­ë:‘BÁáDS‰I!Mä¶¶B^†+ _\©‡˜†*»-»cnà¬>æ1vYg½ëê9°ÐL±Kj¹ v2lþñØåÄ€9hÖÁ; ów%«”+¬«éýØDf›©Ckô“^ýy)H_lú&åZ¼´Þ·¥ ‘èê]ÅÛXh ¼ŠvÅ,?…Í Àÿ&$ÿÃÍÌA`,ÀxqÑÆžÁYŒ‹O¢£ÄCn:³ñÉ6tÌ;ãS¡žõZ0[A¦ ¤Ïøä•),A¶ø¼J*þ¾›ëæ:ÐÆ“븶Üâ:¢@9ó¹_G±¡“ÕšJ@À8¬¼ðGUèÓØl6SŠÃõa¯¯¦9)R‰}õ4Б^n“~<óüݶæÀžícfUót dwIˆ®sÏxùi÷l Ç F*ºás¨PÁ6ÍkLÈõàj!ŠôX«1FY¢ƒ‚Ê5;×¾ªÖi )Մǧj¢È+ÃѵΕØKYE°˜ Ðú¤|¾)ŸïËçk:B^/á—{ù;?wé¼ n>ï¹[Ó´3sv‹n_ãë’BCëÓòÙE6šçú®…Ï›¾qWã‡ö~ŸsúúTº¼lÅê—Íh]Izy ›ÎL¬péð¸YO‡__ ×p•˜IÈjÁ_”O| 0r‹>U•}ì{¿b|ŠNøÖw@}ÕŒ×QàÙpq„¬Æ‡h=lüÐâÛj×ÛJ k‡¸7A©icÅZJjÊK@[C-ÂDɼ÷†ÚƒT‘QeGMIÚ‡èÆ¤2A#ŽÃ Ù DÅÇ™¿.•6!×ÙŸ—øvàÉyLÙÙ¬=Ö†¿$ƒ ç–#ÿ’ ãaPQ¸vÚ›ý Ô¢0qòvµ†X-´¯þvÁ0®NÍ»}üV¦Í˜X%î·ÿI($߬¼IúÇÁ^ï\kÀNèÊKÿ4îŒ3Õ¸Gq©JºÆÒlÿÖD *¥p2­OX½g¢Í¥J¦0×£(`9â`Î¥Á-ÏÞÙÐüž4ï“$—Óǰšg$9H~¦:.C0?Ëh½Õ¨/èò>ÙÛFH¥ÄZ .áâðÁ€‡éi«&¾3÷¤âÛGºËýKT,.PÍc+-èÝJ/™>¶Â y¿ó`¶3[ ﬈Ür„H…!¹Ã´&+Vñ¬|Xøp!Ÿ—-}=ìû²|D›ÞYÂZeÛξ,‚½sÛû®Á•C©‹§¨TNÈDràYƒE±ÎÊÑ`Úì »í?³Ô=󣨲yxPæ…ÏÏU|F]Ù7•è1s`º¦›WüæÁWŸ’q')*¿,Û™$rT[_ÅØøÎ1¬ P»ôxT›!Œ[°Ž5¥C$G}ê¤ ’%Õ„×`ò×ÈHó„oጼÁÇQ6³×qnϦ×›óˆ“&¼juçeáa¢Ë÷p—Žü…­¾ #x{˪ðx|ÝëØŠ*¸p:ÀÖ–ƒãX,¼UÀø¬ºÊ@ýÚÊðµýpП•áDD}R•áø((“šT†¯-·¨ ×x”‹?+Ã?ÏÊðœ-úgeøŒ!þ¬ ÿü+ÃNÉçð¾óœÄ£,W•ÁÄægÿfèkûendstream endobj 1082 0 obj <> stream xœÝÉn$·õ.ù†>¶Œé ÷%7'âv{äç0£mŒK²Ç“¯Ï{$‹|d‘­n©ÇY<DQ,òñí[Õ+6ñÃéçéõ[]ýxÄÃì*ý8½^ýþäè·ßsïV~òFµ:¹8ŠÏðçfÒάŒ•·rur}ôõ÷Ç6Y!<7ëóc6I)˜æëGœæ–ké×?áØ8õ]ßãXçøúæx#šŒ°ëŸœ˜fý&<çœñrý>líµ`¶Úƒó€ÓÊkÆå?Oþ  ©+ÐaÌ­Xmtxfur0¿† 8œ {ý! ½qbým™=é.ø*ÏâY<9úÔnuùp¤&¦W«:âÆi¸ÌÊhã&%W×G€3)—g޽⾽ÀŒ{Ë'£Ã¦þQV ¼,PÞ—Ù7exW¼+³_•Ù7eø‡Jp)×·eöïݵWeø˜‡‘Ü1zë& `‘À|bF{äDf™‰l£4óLF’k+•ätùMœÖŽòk-&«üšÅ¡R`B“Úg]à4°«·pïò Þ@I#"Ié¸upÙ°VÂng½µ 8ØY!Ÿj­&¡eß2Xúöx#ŽvÕUéø&ž¬„Œm-`ÑÍp(qJ–Ÿ.·ÑðÛü¬’p:¾ —¤X¥—Oc)¬YLàðÊ_È£›°\If=R{ùœ@jAÐĈ±‘ʧÇÂN„¶ƒ$‰T£Ä¼,ÓôTJŠW 2¤W£MÎp…¡wk‡Ž×xO¸ƒ"›®™ÊšÄËÖú›¼Öyy#Ô,ÊW‘²*ÞÖ†§4ÊÅ·†ÛµæåBOný噎º‹Yø?²–tÒ U¤àF™ÄÊiý[”/£GÑÀ¡‚åÕ“ñ Üé"¬™°Î%‹nt­V I}ÔqówéI-Ö×aµ–Bèy5KWÇ!‚ÏÀ‚”"Gç—q?kDu"Y`²ë‘éb vº1œ¢æ#Ã)&èü-¹>9”.é@«Mu(Ýä§råΙ¥ Ã’s‚•Dr§„ë›+7yÏÀJ}}tòù!í¥41µ ,èv´Ip+ð<ó›¤Oq‹Is~(£ôM»6,¸«.µ°.šÁØfó²ÔAk]2t´äó.¯Ëñ-þ£y<é.(V5ã_(À‘ñÿ ^¼± våÖÃ~€¢Å~„xQ‚ý0ü[×Ì“ž0óàŸpo2 ïˆnNFÍçí±@Oˆ+pýÂæ¯ 7Uû B apKUÙºœº$™)0žRüTÙÿŒFJ¡Ô6fBz9_›Ì§b¦˜ä°9å,j’©sEÌêm€‘‹âÄËþ¦LS#LŸíH~@€5x¹šîH:+ãh³=Ü›Í6-RŒÞ6QLYÛº.’Áo\ï‚1Œ +„QŸ„îw÷cÆN¿-佯Åà Ëí§s ]ð½òôÀŸ<#ÓO†@iæèéqo4‚”äDßP6£åÖÚí ¸Ì´KÂ4\bä¥üvhCVXn.ÑeÑDA醛G©P€æ†R3Þ¨ Pb KŠÉÏ*à"Þ©û$ÅD…¾¨%€]Öà0Á˜W†zž•¼,KÏ _«¢,,Ôߎ Â“LT"Gjé{NL® A¸Àj-ìRÇ ‚q›ÜV![HE=/?]R†²Ò€(Ó:Öxã Þ”RMNÚ!¹®jÐq9gcVŠ j'´®b¨«ŠÔ]ƒ=JÖ¦NMˆ«ÑÚ$‡ÉçÍÓ)yàúÓ Ê0 ?¢ÕœB>HÙy$­“:sŠ“TPêRHà”¦®ÓéÝ)G‹Õa™Š"&ÉL‹p¬ªíÌDÂÌL ÌôÝ&; g³¦&^ë’ÇY9.˜ˆ<6l6ºÒ&ðêx£¸š˜·Ãjç®kÌVþ‚%LPKïÀ'½Ïï•ùhåæœTtKŒ;û˜½?ˆž Ûù‹08{=ã µ4mžxN jv娭u¨­iîc³cÖñ•²í œ"šæ!R/©f·f-Úýr€£½¾jK œ·M+[Mg¶´ JÏ185¨Ä£vÐAº"3©­D£TôP@»!q»½ !s™QYh·*’Íòy>¿Ÿá÷Ïš`ƒšâuü_ü`u'Ù#ÑEç–­°ƒ±|«PeÃÆæ@gíÛvKJŒö%ÓvÌÑùÆu@‡A‰üŠÀ·øW.3( @üeR%„hw©Þ!.§ÑF-JN¬‘ºÔ]©»ü‰Dþ˜Qrˆ…Æ„ár!|CŽ0Ëô6ràP…‡ ÆÊïé¸ÄëêŽiÞ1£>þC|Θ­ —nXÌ%Ü5ÁÙйÏ{ÝH~ðöAÝ0¡fÍ»E Dj:0–$L/Ë,mŽ%9ݺƣëØNpÞÍë`ï çÕæƒbÅB'g ±&j?¹'å#£üKÜBsÓæpÚª]Yˆô¶G~*(F­à7‰“ÈÐì“Ê®DÃÄb\Ï‚±%õ@‚äºïm%¢ÆÿÌû‘Ç4µµlœq“°»'Ž•·ºUèÊ€ew¨•56^q>ŠFï 2vrÂŽj2Ý‚·ZJi:ïø®s6[RÀ°ÐiJ5MÑWi»F’ÊÄïŽ7ðÌ]OIíž„¸Ôûñ~­F†Fi ^÷ØmD" ð>[Ó×j&fgÏâ¾Fðê-àþû׉À•d84á¹F©â=ïå¾×Èô„|RÇo79¹ß¹$wù– [€ïÿÊE/ømÏ#P ±þ"±UnOµ·#éà ÜVz¯Ö"!ÐmJab`ëx¹ËòÍäæ[ s>)º‡_KˆósUSB3|ÿŽ´<ÜK‘4{t0`ÃC¿Ð†šÍdÉ?@QÛÍ|ŠÙº…“¾mœ_Ð6Õé N/eE¼dOúù éǬÌ÷µS´^¹äª»³+ Úɦ+/Ás‰ŠÒ[øOÅd[œŽ+8¾A°€ìˆö¤©JL‘ˆå‹0~“‰ñÂÒYE-¨P“ªÝ2NÁ Sÿ!Æ sV= "û¶ À‘Bt¼‚ ”î⃸‚”«¸wY¢8tû@]Å4ØÑ(˾o [ :Y’r½¬G[½pj9‡PɼÈÎáÜRŸ¬Ú¼-aú¡ÒÚîá®§XžG'd½¸`Äðñïjߎ*£˜„ÓíÁwY2H¬n×UcÃWûÖt8¥a•Ìè Çà'–ÅSÝ ¼I-1åù™É„ÛB€¶ÎGkÁDˆh®©_™L·©MþÈp¶Ið+EÅtq£ˆpµf¢vÀÉ9;J‚PrÒ÷Ð{ZëlH,*n˜l’Û+‡)UtSOgß,}O%Ôçd˜Œ£××ë´f÷ýê§Þ¢ÜävCh0[`ÿCŸv ±w7¦Ï8APã'«Égœæ™|Æ SýÖîÐ߸Ï'3öïoï ×ßø²/2á{UØjÆâ°­VcàÆD÷ÖÏàÇ-0ƒð)ËîBËð>GÓÍ€Ûú®:.1\ 5zkòg=Ž—2Y¥a.îËß±‰«±æ?*ªýº_Œ Šßá ´ºíßÝ¬ŽºFF.Yþ(RRéºìVV WÙÇB…WÜÔP¹nù(¾Ê _ÿ9,×L…×l$Ä:Ҏٹ͂Ármë:ïR‰Ï=Y8·rT6©ü€Ì-ïRàè×@ú³àWzÑ`ÔY€*óYÙÎÎø7mÍ êB`!“ôŽSt°®ó!ä(ª¾8QÀ‰~2ŠðMÚ»Ó¦`y%‡ä„䃬HUóŽßtmk­’icšN¿ê3ã(îC,…7Ûd½ÑçQŒ"Wº+¯3, |Fî<½ÉŽUj6¦‡_INšõ[KHŠÓ9sÅÝ57¹ê;ºôMvQëÖ¶@XüTM¯Œ>' ï@!Ä~Œ+,s½ÜKPð¤°C»é’϶§jxݦÂ:•MRÆ4XcÀj?]/£JçaöÖ¾;ú7÷XÃÒendstream endobj 1091 0 obj <> stream xœÝ\Ks·¾³ò#öHª´Èà 俨®Ø©¸\¶x‹s D‘R•DÑ¢e[ùõù˜4°˜å>HYŽ} Ä4€î¯ŸöçÕ äj ÿÇ_¼=V×'?ŸÈÔ»ÿyñvõ÷ó“¿þ(cXErfu~u’¿‘+)¥p+çµ^¯ÎßžüûÔŸ ÂX­­9gëAøhÕàOC¿[ÍÝÿ9ÿ'æQÚòy´ƒæ:¿íg-u0ÖŸ~™šÑuú}é=ïøfî¥I¾>?ùf²au}wbÄ`W¿aïÿ8‘>8! mG oWoOd^X;÷¼9y¶È¡få3‡‚Ä—¶æÑeYæuYæûÒ{Qš·eÀ«Òü®4/J35JjÍ·ÿ®4ß6csóCiþR(¼œ{³h¬ÒE¹ZË bâ$"×'±ôgk)Œ9½aÝï nY÷µMÔ>„Ó× "c¿¤îbDY‘µvB… ó2^ÞðÝ­­2Â+ó€P’ÑDaåHÔƒ'ØÄ`±â¹çØÄàQÝ™{a“EÖBá xì„Uúô§Ó2âEC8f²¹kÄd…ÓnSêmÅ”)œw|Sa7‰I[7ˆ`™˜´J(wŒ˜@B¨D‚‰é«²ŽýÄ4ïú G @½)x¥åhRó¢4¯Jó¶4™@ØgOç&±eíHLÞCƒÀf<7²Âre¼€jºÁZÌD,W>`WsÏ!,WbLD…†’µ,gX½(k¾í²üuiÞp¡eAÈ$­b0Io»Ü¿½¯¹“ àæ¤Õ1 Â8™Ѫ [h&ØQ™á1TÆF=›,*3õ¡2D) £C|Æwrʰ­’žx´õd> Ë·©Ì½âù鬖’Nx „fÏ]±Æ’J½¿t¼*½W¥yÙÚŒÔû¾5×["‚{q߇SkÚóg­iÏÍdÚ=ô×W¦ý²!¼Aâyi¾áÔz*Édþ²»v¦³wÝÞʽä+[-øIiBÒ£©µ›¡XËÌ«vÏXyC^­áêâa´²¥µ#‚ZÆ1·šéíÍ86 SØ›q“‘%­va\ ½ 8ÝÎ¸É þëäüÉÿÇ*Ë}½;€c a™c}× ó¹¼ä«Z{ßh9±—Ýe¿¯¶Ë—µ™?H넳:…3n̾JAÔvˆi­Õ`%O !´õct´8´]²Êx^ñ µ¥'[aiȘ ù˜r0T¾ m8ä^ûHK%?ª­£§ØmÖÛ­$Ž&ôÓ)‚6ŸÑÊ8hßd|”tQ¢jî9( ÍHDƒ1ÞŸ½vÀ“†L½]‰†Ô(9‰á}ÎTmŒZ{ÀýC–ª6)PHRÀåŒ"­ƒô!CgÉL ™0jÜà¥0Š´ƒ QƒÊ¿üÀðÃgzÉÈÜeê–ŒÃú‚¨ÇT/Ê<·ŒŸgiå×D[ G™W+õÒšQÛzû¯:[†¶^—Çiª»Ó_ÏÈ,JUíeœ;`LWIÖÒ ª³¿|@eqÈБòç©;RÏ„¹çeMD‘™TÉ`ZÒ†›dÑ\Øõë×ÛAmŒ€¢Î N6Ó{Œ•üØ9Â9dùpŽÍñS²™'¦*WqT6ØÀ±>‚ÀzE{H ˆzÝ—DÎ! ª×ú®Ìò<Ñ0:P]‰V4Ä »è‘ðVÑOlØ':¹mlIkÚºl‡SPNaœók"æ°M÷ÒéiÙäRˆ9ƒÑ•f_c‚a½o˜ò6gü¢máß:¶$¹-ºZµ¹’3}fv çN 9¤QMnË3îZá“iÆ{nΖ@s]†ÀšðrF£? Œš|§Ô-±At˽Àˆ?›P”r÷Èï04"ªôlDÙx"2(Um–¥Tõ= ƒÃÚI–ÊhüœKƒ³‡ ¬chø ë~JSpW¡¢’ƒ²¶êe4>Ž ñ¦²M xg± é—ûÕØ‰}mS.Lc`y.Y7GÌ–”ÎÈ,Å­íÃ"ízs¢p2"l­•±€®€Ìmr )W. å{Y‹!±ÍSʼn ¥¬'\NÀÃà@^r-|YhNeü ÍóYR¶B‚Y›Ðï6øP(‡œkMB}ÅlÓ»¾m¼dC˜eÊökÜV]$Ý&í©h6Z°¶R‘·Äoø§@ ÍTƒ¼Äñ^ö¦55>ûâgV³ÑêDʪ©Cì©&‘XBòï™FtnÃpbð[?gâÚó‚&§%HÔlÜeã !7;Û@XÏŒ9§Á•«c#z 8î—Ó~—ÕÄ[¼o¢…½¼>Ülð,V˜öHÔô$×5™´Ãûäâeå¶7°>®­öÕ»Y%b›Ó¾5lóAeE¥û-‰3ö7&åë(žudž%€Öþ¾ DaB¨å{•gv^¥>à£pÄdaÍ)=c¸«úPïºJñ° ó±à~²Ë7ƒ®J T)§ä)aã“âQ©2¼vo‹*ø9pàNìb²ÍK΀ úogkgèÈDÉL‡™Â~˜çànT¨f2lºô 4Ù‹®¯Kïï¥É®d–;»<Øšn1þÁ¶ü˜ÓüZøó®ÝÝxC>¿Ý’ùv ɹÚ¯Ô€ ÂQ.ÔÖ æž ˆRÈÒ^³}з[;$?Í’ò3{še JŠKAÃÒPë)€„ð™D‘Â#<ÍbŠþXO³æJͲÀ!Á˜E‰è‹X.á“‚{a9l«N$``ä£=Í"‡Í§YL3ŽyšÕ¾ý‘ÞˆýŸûí»­¿Å4l¾”ùÌŸöl>3}°§=­eðžÎŸ¥÷ÒR°ßhêgþP…*só²g ß²fÍŒëT; ]òùEˆµž!Ró"„vû(Ño bX„ñF@¢R¡4H玃„À9$ ôXà“½Ù?ö­ÅåÉaÏnø ^ãµÄݯ,Ny™2Ä˜Þ Ž¶ÜÚïÐuÇvžªV(§–’þ~ºÚIhClZz£m¤Ù¸4K¥+^.ëCW+u Ýnx’}ëyi~YšßTf!Aפ·AרÿÁ.H q‹5x¿*ëØç…÷kî‰æÞòX¿‹ÂµŠX»Ý–ö/Ü…ç(Ýã,wÄÂ_à+TÕª d’yB–F(ÕÔV6EñcÏT¾Ý¨ùt©dé"×£¥ÈÍ*Y·üwA«.s¥†Âƒ=®ê[K•Áà¼÷!hz㸠ÞÓjþ!ºê9÷øC2‘ÖÕoó5Íü–ÇØb#–û¯âl ´bP§_ÐwÑ ˆ;š‡+&½å†_éÔãÓ9ÌÏl ¯8ò1ÙHªú:Ýxr0ùöør}žVoè¼9í€_k#\”«_K¯ºâÃÇà9Ò'·¢k¹tKŠŠNR">õTü Ó"!iÕ'Cå“í ƒf;ú‡‡~ïY]“!ÙjÅ)îRÃN7)!½|½ó¬­\°käÈžìâ‘÷5ayün Àä—–t!‘8 ,É÷¾*¾»Ï‘[šÌ{¿.Íòº~FI¤$¢2Jܵq´¤º´n’Æ-—ÖÓ¥Òœ|êTRÄÈb¼¤4]3®ÏCÓõØ)çÚr:ƾâ§V»œN1*Ó=ÞÐ=pd/-*Žuν’²ÏײõbžÐ‰©Ú \K¯Ê–ØÍØÂÉš{F´0 êª@nz‡Ã|ìÕñ™äš”€_e›Üp®… ñ«M¿ÝÃÏ‚òz]åÊ’áøáä—ÁÅ"endstream endobj 1100 0 obj <> stream xœí[Is·¾¿ÊxÇG•‚}9&¶;¥$e‹U9Ä9Pܤ*n%ÙʯO7040˜y\%Ù•â ˆi4zýºgðvÍ™Xsü~_®øú|õv%âìzøu|¹þóáê?‰à×+­^ž­Ò3b-„`vmb©õáåêßwÀ™6J½a[Î\0’»ïOëqú?‡ƒ}¤2te\Â^‡'@û%¬Êkã6ßÄa°^nþYf» ¾gq“ïW?âNƯÏoWšq³þÎþוpÞ2¡ñ8Š9³¾\ /3fœ¹X½œ•PÃù(!/àISË褰y^Ø|WfÊð¦,x]†/ã2ŒkµJm~(³Weø¦ ßÃ$ùFÃ[k˜°A¬·Â³àyÈÝYopöé`+·^kØ¢L_Mßé[ë œ÷ÀF±€aÞp¡º& `[e™ô^%6Þù\Ñ#mÔÌI½GKÁ€øµEMr‡V¼ŽÇ™‡XEð`WHÔÁéôN«H:m5ý$V"´Ì±ùyS¦ËðºP#$n†Ye-ÄÙV ‰ÂawÁ÷•iF-(͘!Ñ‚ÒÔ£´$˜‰$ˆ¾-|ÜO 㩟_HF­¦ÞMt㤛³2¼)Ã÷e·weöù8D±l-¨I:*Á–´£!r/"çæ rqc`'¹‚;ÎP/Iò” å º Ô5&¢-’KË2$ý¸»–„«WeøóA-q ÌZȤß–”6ñ‡8û¾»àu™=+Ó62ÇÙI\]@M;£K?¤´ùÑ1-M•OšÃ%ÂDc¯Êð¢ O»qä²à¸ËÏmw¶ÊÑ)¡ƒ©P†Ÿ•!(rÈWf)_%rgÝ3QÃçãch B–·¦‰’­àˆ©§ ï-8²€õ=—õŸw'¹-¤—‰ÝWn9€½X>ûÝl!öç”ñP¡”ú~L2‘ÇyWJïzGH äU¿µ`^%jÜŽsíÐý±úáFú€›ƒ•—®_åhSÈT$(ƒñ–¢}:"ÐEWaÇ]Éô£ý4½Šëiv݇з΀˜@‰µZ¡¹?‹¥ÖP[Ë Íá/D£´jÙo£~‚2<Ä=”’ÜZ‚ˆ` ¹>‹ÌÁØz/ªú•Ö¸ïq,œ„T­!%ñP)C!œyõ¼B0ëÝMÈÄ*âÉ• ±È%ƒ¬š }ߨ;ôûïžób­æ± V‚I™þ|P5¬`$§@b~w¤ãÛlÿ=’ZWN‚m§}—ú!&„¤p¥œ) ÀY$ûÐ`o\%ûPÊ ¨N®ÈЩV€»Üü¨ú"-7Nº<ŽÞ¦åš×Ô+Á%<(j™~C(F›wê+2äHtù+Bfî|É6-wPÔœ$@Ï1SrxNò¤•AJ7„â0öJRRÒÙ,¥8>œÉ©Ì»V.ó»r™yG§û@ž<&|Q~éò(9F‚¹Ò³ tú€e˜7ÞQÍS‰] jD,ÈHq1=]rÓJ§RGZZì¼!¯ DÛu| ò²øÑNhrÓ3}âs]/€@e½à—ª¨‰7ƪ<5ÆÂq…­ž%Yh–l=Š‹ëÊÖÓ6Væçb(>J›5ï:„½÷Ãj!ZÏÁ 9¯mxÜzOTï˜SaªzËœpÕŽô Ýê-k†Áƒ¶p‚h(¢6|ê'Ï4°jàTÈ0j :Û¨]=H ¾"ž¿j8FHnYÜc«Ü„R¢x[ì9ïÐä·Á”ŽzŒGV®<5$b6oÓ“¡Ñ÷õ@Pkjk$òÔÑyÜr&8^‘@˜RR%÷ûËãþùŸ7³·§Ö%7ÿdÓCž‹†mܶó÷Hé*­¯EÈÞ”n$ðL}¨¶òÅ”©×)]a“ Âmí é@¶ÈÉÞä)zöÓ6fbÆ`‰îëærf›¡6ª&]BØ¢9ä:˜äÝ4å:„ˆ¦ÈyêЄæ%­d\Úl¶fø¦²ºMºñfýpGc}ÅÑšé–4y”5ݰ±Gè܉{’ê·Û8M^#Ëæä6¶². КÙm¯“Ä‘WUy5EWBZ©áX‘[÷dÛ¼~+,ð&%=a»õ».o“féÎ’µmǵôºç0 ;м %Øó^¬`À fŽ@Ûø‡#íw‰šòS¤íñe‘¢¾q•fƒ¨f‰Ù“Àrt ±5`ìSzÊ{ÕâWØØxÝmƒÙHšŽ¤!uÀŸ/úùÚþ Ò5¾1òz­Óá®aO&Í8ót,ijH”qm–_x,æGa ß»1?Þ&9ó1|Gt;ÊÙô쌢+vÒ& ´ ë)½…"Q:&ØöÇhÌcCdæµ[@±€àÑÈ6öu®—J´sUŽ|CÐo“(rÔBE ÝdcœÖ¢ÎeU^A®Æwsi­”ÝsÙÇÂW;±fàVú™ìz¾;Ñuˆ))KÑ֌ȧðn)ºàÐê—ì ‚?”O –Ú®¤­B9«C˜1Dޱ'ZkMcˆ´a'CrR‘FII››Pc~*lôSRf»™;_á‘7“¾yl>sZf¹¢ Y g0Mx5Ëpä) ›À•+(ˆ€ßÈÁ.¾†”TøÉsŒ—ÆTó”b ÒºÔñP,ì艨xò9ì=g÷ Ijî&ý…uÿ]x¢šs¹S߉©IX`*‡}\Rûgé“÷aÍ`²=•JªJïu87“+’ݨ 3 “>gÛK‘A£7psÎuïQ †É‚9.öÕÄj^è ´R !rܸ– °˜£Ý}Þ>¬YÇ‹io…’øíL«ˆ‹ ×Q$Ò 8q]¾RãŸö}&µÐI¢b9Y a‰_WøE¿J»›ê­±»&…I‡‹l•„)S´Þ›3)®«˜*nZ#ˆ›Z7ÍøÄ8˜x¹7yóÑØ]›¨1X´jÂÀð@[a3/Ð ´/Ðö‚§ñÃb ÐW®ŽŸyí¡êÍAÓü.  HÝ=ô˺Xï¾) ®Êìù2×:¶’ø´Õû¤oe²£bèÂ¥dAªnü+> x%̼AèÊ'³èdüâû. ¸Ô¹z,Ptè¯z½œx&)ïr×uCñ"Bm†ÓŽ×€ä:M«à›ò¢‹Ühn°J dÔVpbš²:÷np#”R kDKŒ@³Rýö$¾¸‡âkš¥ÆL›²;âkÊ“Gg÷Àc öøúßzƒŸ\#BIÝá -Â(Ï<ä#Œß&eNÛ=\”ˆ³;›÷ß•Ù_Ëð¨Çç ê™)u©E &ñ;ôÙ·}pñFŒR=X¦õlØ [R߯“,’ÖþNµîãÂìãN“Ææäi™òPEJ +ýð ÏO‘„”AXú ý'}†•>Ð!ßðÄÆžføñÀBIâ$Â|Î{ 7úóð¥ÑÿT¨ßŽËó h„gžÊAzpÄóÌ#a™õ»ï¦ìË÷ð5Ž•bÄï3nÖ1ÑhÆSÉYAãM(á6‡XÛÔ ì,­ÀWð‹¸Á0 Eïl0`Í{Å 6~ÒÿäP/Šûª`®»yÿáÛÈ Î4Ýתœjúÿa¸Í›TÇ(ë ]ˆñY:ž+´:åMØ‘b¶k3÷} ]?-¤ârºä¿3'¡ß=`÷L9&ïtÏâŠ\úË2™¨É5Ÿbt¿„Ù™¤† E:Äxp¿;§fœþ¼wNóýR‰¯2•%÷KóÌ#î— fÕç»_ú²»àcž¶Ñzñ~©sãöKÞ/uá‹Ý/S„%÷KóÌ#î— °«Ïw¿ôVñuß/-ZÈ—å¡…|Y®ÒÂ^î—æ+t¥%C?WxŠû¥æk»Ö(¬†ÿIª©aæ1š‚B Þuâk©ù~ðeWiû¹–Ú×ß_ Kp¿ õ0e4ç˜ÕƒVÛÏÖÈæ§Ý“\º“û‚LlÓ¹Ø7üMÞ¼m‰uãÝÿï 6g¾÷}Á±û;¹þöÄ÷cÏïÅÞn—²ÎºB¸(ÄNºn^Ç€ÞÜmü\ 3櫾@æ ¾WÀ*ħóEìX!¥¢­ Çœúãêt¥cendstream endobj 1107 0 obj <> stream xœÝ[Ks·¾³ò#ö–Y—ÁÊ-¶e'eG¶µ®J•¬ƒ$R4«ø²HÊR~}ºÌ ;Ã%¹+‰ŽuP« Óhô×O`ýûB µô§üýúì@.Ž~?P‰»(½>[üc}ð·ŸÈEÑkoë7ùµPÆ 'ÍÂ#T0‹õÙÁón½”BKcbè~[®¤pÁèîˆh뢅ë¡Hm©­F’àõ! y†B”ëB÷U"£GO+w=¹à»K›|³>ø‰vr°8¾:À Üâ<æ·*j'L ½nq†çE€szðlÖæƒ1¢>‹¨Æ8¬jW5ßiµ2¦{Y¹—•ü­’?T²]›%<›\ð®’G™-߀¬¯Ë¿]®”ÞÅØ]à‡Ö˜`cw“‘4Ö¨î:#)£4Ý ÑÆ€ г5ˆ¶‡(‚6ݱCÀíÔ€Ÿ‡úé€Â!Çð2HOk}”¨›íÒøQ’Œ2^³/™®çYt#ƒos>lÎWô›Û‘´7™ë”žR©?,‰v(|Ò·•w"*;öm4*®›È§•\O.øn€|ðmëÁ ™Û üNNÜG´—ÂëøëêÄg­³%îeK¦'•{>“Þh­ˆ<ÅTÅw¬A÷*Ö×JÇÞIm½g&ßàÁÁâkʧÆYÂÍ(#¢¡xZ¡g:pÀ±/Þí‚ÅgT4³^uHâœ3Þü‚Øcª¯’ t¼îCÖHFPÓ.#Q/×›aÃêm¸œÌ"×MÆ™·ºI¥ûýfÔç‘Ì—°”Q²8,*ÎQŸÙ“P,WQ≺‰­­ö3§l{KL ÷º#ÒÊ¡ŽqÓéò‡\YΛ¿ÔA·Þm1‡z·œ^Ê$Ü*h¡£Ÿ…Û`ÏÓÃÿõp'6sˆ 7DobÞÆbæ!¢Ðû§ú%)¤š©„ÆÞ r\€ 1¥9) äwÍwÒ¥ÕýFFß}›Ø•÷9CzéðŸÙ%Êòä•DAªHWÆNǗט±ÜÐGgujfNz9®GE˜µhy¯áUþ»€;¢âŒða~ÉQ–¼¹{ûÕNJšºŸÞš?Öqà?•|RG‡'•ûÏJ~_Éo*ùïææi¾7z‡êB½½š,03ÚcI´2¹÷/Uûz4©†¶¸mãxÍãðd?72ó"4S'’3ਤ6æE‚Fß½b 7¯Æ=‡B›ò}SÄItPö¶),í“V§àÅÅ7lžïVÙF†’Ù%oÚÑ©ïÈÂFÆsAHišk!ã¼ÐnRÃÞséC &CcÀ^7HDÃ|Sž-Ç ÞÙiÚÕ®º\sý“ÈÓêÁ‡S÷’lâŸÝÑËp2é7™ybé‹{8?ûLÛÛÞè$L\÷Çr¸ÕæŽÚ`oàðwk‹›„®ÌÚÇõ$mÃÏÀBæ4ïÁŒ<ÿœÑ¼ë¹.é ï³Þd®r“w®S7X"y~Óíïæ!O=á¶@ÌÑMô£k…ÿÀqsA/h¾ÍÊþœœEk*þäˆh!éJ&SA9Sº4žÆÏ4NØÐ•êñné±ïš@¡ï<–ü¤iˆNË0’Á¶I®j£“ÊLGU¯3U~£aß"Êãà-ÃÂé€HzÁIFX8¹;Jx—„¢eíÖÌݸFf ‰ûñ@d˜jȸŸMÜ'§Ø`˹Sq´Š.;™IiÆ>Oqgu nKøet÷™ˆù°35Ó¦€jÝá6—ŸówëthíF'â-9)¢1A÷eÆÉ—%sùl”åyÒãúM IÌÄà‘è¶=P2]v4íÁ\;ÕL ý¡Ÿý€WÖ’soà&å|}6Í×HV@ã0µzL¦LÕˆñ'¿Zǃ[°ÍÔ18S‹ æ8èT&A‡nȹq{ê×^Hë0õÓMv_§éä y©`©¦Ù~`OšÏ)•Ô‹½¿[cäzea ¼Qc4£;œ‡¤hCsÙö7êí)úÞoÔדk¯[kôN`Ó¡0"©Ý‰CA¬ÕõCŽ+°6{Za_TT/»`CcÊ C{[aÖNDD{e°õ8¸•;åæ¡³iåp ÃJ¸O¯ˆ8IX`Ly*àô˺CçA¿\Àôë’PaåöÂý~¹0çhBLÅJu¿v•;ûªJ{Z¹ëf7gïcÉœ3(v¾Ìœ†îœßÅœ(‚ºé±9¿®zÜÏœh‡³ªï¾(þ$u~6Ê .*y^…]mh%ÖNS6N?&x[É—•|SÉËJ^W¹ì³/2•L̃ÊRª½¶ÜWQ:*&öàöæ[zHG×ÖŠºØÒõe8ØìÊI„€¡×Ü>×ßöFÒ˜¥w‘l U`GÒšMk& Î+yÅAC$$ߢN‹õå6òN°{ŒNBÓ)í¿>@%У<ÐÂyp€&BÇ ìÂí†C™­=×ÃãÏÇ@m`IrÉŒÇ7 |ÕÄ*÷¡ö³mQ›A}ÿð˜è¢p ÂØ” ¤Ÿ œ­QòqÁùˆ±c€Zm;=gxÀÐò,ª¥†£“»€ƒí½íýÀùó–8 2ßa èÎ.ðÈ <¢ØùD%nÿðèèœÐ ÂØ” Œút±óz²²\M¼Å)Ë}?Y¦Õ”¥AÓïô9P…³ R@?¢P[RJ¡¡Ý½ì|=ig0Ï+©+é*é+ùâ³'1¤ ¸õ gëcŸ®•ÿq€u`“¨²æ‘}öXËv„ç­ZÏÙ)„÷Ûâäc#Å‚îäÿ)댑#U8» eQ{ù¹cê¨iö…Ô¯ËTÿ[Ë?YizƒµìÍ3¿ÃÂ’¿'8~:øšòuŸendstream endobj 1115 0 obj <> stream xœí\Is·¾óW¼#åòc_މ“J*å$e‹®ì¸H¤«HIiYú÷éf €7o‘*–]>1@£ñõŠÆûyþaøßøÿë‡3¶¹=ûùŒ‡ÞÍø¿ë‡ÍŸ/ξúNH½ñƒ7¨ÍÅ˳ø ßp%åÜÆX5H-6g?œ?>ƒI¥SÚž_‡¦7Nœ¿N½OÕw©÷ejÞ¤·©÷mê½L½oÊÉBó¡«—’Ž}LͧrÞ±w«…”Ðç?ž§î›bsqâ_RïUjÞ§æ‹Ô$D¼M3„=?U þ©JÃ+$Ø ZÈŒà/RóÇg϶\06(=ò5Q±àÕËêž/«lûrþì¿ÿ8ã\Ìè ¬5h­ùæâR2.6I îÍ82 ΰ7ãbsbÜ*¾•À"¤-0¶/ß]Ên.¾9»øâJì«âëdn« {[Û ®ôÕwŠI*ÚŠN îpTa9Æ”E`oÙ`˜ÎÃÖ¡­µtÂÆI ý`ü ¼›&yªRGÈ'›ºªÒüeFó–s>HQ¥Ìˆªß8“v¢é&Í¢÷¹3©>àýLj0©¾Õ5Lú¿VâR2>ØÝœ ½ïªgšs"è=«åÏ‚7UKË”± `à³°L¯ªÔ]%ò‹s͇w>K}²“I'Ñ'¿#&ýn-ÑfDí<&ò‰ÚYǯÙcÎ}BÔÑ¿I~ ˆ£¥öÓ,(Dxí $Ý‹§õðöªÉScnÜg‹A±ûDþë‚‹;µƒŸ7¿nùu¿ä~e'.ÝûÓðë¤:nk5ƒ=z:YÉÐ8á-h¡œ¹¸@ø²åŠÁ¿,Ð료ôþ%°ÖKÍ|XCJÁ4^@·òšqôz¡-™÷Þ qÐ6Îq šÖkÁ0ׇ³8ÃC>ÚÜr-}6%YiЧ b®¼œhu,KhB›[±ÙJ?0Í\$õ&LJoÏï¬v3HªöÊÕu8˜³|ÄóÀ¥ ü:1ïß©÷¢:àïs/.ò׋³oq%í6·g hÜüzÆ6;ãÎëÁ«âš Lm`+Â@ÑÔsö|ï´®ƒ S¨Á1Óº7‰ÌNÆÄ±I2±ÿlàz¾ËT=•ˆËOÑr8E?s Ã1ýè}„‚”Vù(ÚÚJ%yDŽ$2‘#¥ãÖE¸Œcà´aÅ q© ³ÌÐQ`C0q9~ù Á ]陿g׃6¸OhJ¤£0X ûtÙè§8ZHA×{A;dÒ%/ÓèÊžµ¶ù)åËuI¹‘.€Ñyz5(•où®d(lBqÀTèvRÎëHaÍD‹’°æ6ô+ɬJP¸ƒ±È­]Œœ;Ýà9Ž5GÄ [±:;aÂÊ7dÚ¦«¾"ý·qFéšÌ&¤Sœ^瘇ÓmŒŸ¢¶{ë’,æ ·À/í´£ˆÉ Ä» îeŸzÖfC^§U®Â 6ö!RļãUåÈ­¸÷«sUoªJ婦€ª*A0ãrV _ÍF RPNò8#¯’îñF†¼Œ e箆â`'MOPÂ|FV¤í ‘Ú¦²ôŠôßΟQ\ƒ~…(šE*øº*Í“1Ä!¨¹iˆåé8&Æ(ÀÕr>-à‰8iÇýÒ ×—Ø{‡ßÉÁjO$% .K)ÁU(ç=¤|Jçå„ÚSÞЭ‘’!m<℞÷p‚wcbôŽþ;rÂ5¥æjä«28¶ó²Åú°Žw®„&ôZpÑp >Ñ>Š:@ eóoãäüÏÈaÇŽwÅ¿LF¬jÄ\o|s?sï=Yý~¡ª£·zÃû!"B Ì‹Äνå ÏÉúówéÒå‚J,ÔÓ30üL3ÁŽj­‘ _.ü%<¿V'"þŒ´¥¨NC"¾G:šz0J?z…h+/Uï@p㹌\ÖàÅ4¡h9oäÈÙè s0Ñ?œ¢¥ÊÞ‡§%ªÑ€ä¼óR‚¨y Íe½ÍUÚVyQ˜mZo ¹Ž U‘K`:ç=. 7-¼ߔ֊:ÝàÑk‰ù%Ù±›¸SÆPZ¡£° ‡NF\åôÏC >` M*žãå¤')ÌZŽÁ ŠˆÏ`ñÉWš·8Fyݰ·´ûUãˆóí-f°m¶ÏK 4Ð=1Û#¯=Ó•dɘ BÍMEE„Eì¢ìAv³ “¢‹Êm¤y;×P‘T†t›­ÓÂy]Ï=™©›±ÍeÒn´{GXÔ²_’ë1á=Ä*éf¨ÈµÄM»À íùw¤gª’çœA#=xIÊÆ<2WîMGøF—N5tcøF‘9{Oãg,ÿû˜„uB뚊\l€ªNÐ -ƒÓý°W i¼( hГ,PF2‡ß °,¹šx[g¢„Sª©£Úö"o4Q·}¹QÿWJÚ~Ÿ¢ÁoRojVC¡ÀB˜90œâd{x˜ü6ú’·ó(­ä†à­c+l7´íeªP,sÛ¤÷Uj.ŠïHí1)o.T¹« mm[½Næ‹¶!òQuXgY¹'j³vè¹»nt‚C„T“r“¹µ~@Ør& ‡&Nà´-BYº]‹á¸‹ |t Ÿ°Y»j³ÇWaÝ ®q¿à®ûlé–?M§Þ‘â Z¢Hñ¸2“~ÒfPŒïÒO7ñlð’á% 1Ði‘`O%(J˜¤°§'KˆÏŸbfÖ©rÉlnL4{ý–^™"µ$òÀ‚ÚNÂy¾“­É´5̯ó™f¡¶|z¥P[8XÖÍ@¡-Ss¸LÖwLØ«LÍoÛCz,Ò¡>Ž^€¹¥¦tL‘á…#;·?Ä2Œg_vD,Ë.á­½ee͘ &FÍ~Bv½²ô*N$y !À=%hm鯨á0#ÙãuÕÕña_øwð÷ÊøØÁlùcc[…œÌr@½?‚š]æŸ[ ЫoŸvV6¤"4fiÔ¬"–ê.¸2»Ô‡˜Pðõ7i‹VÀ*ïÓ€7©÷)5ßÎÍ5{‰b ‡³8®,„ã|ÂX¦×u9\¤j1@æªsû[êBÿâ"XK(hP“ÌúRyÆd±±cÃ%¬%¨Ãè˜] —?Ëyq«;/˜«D3/=áɉ‚ô­Ï7¾¼ù7³Ì†»åu0òZt¯'„ÓÄüqFö@>ȈT.âM„<À*yO¸T‰{jüàÇ ó+}Khšö®„÷HGïFö‚’3 U¯K•BÍÄÀ‹ËlÌb2p$»Å<ÅëÛø¥åvŠÐ¥ÐLNó.ÂÇäæŽ´H`49ó+GaÀƒY­w¾9TÏ3§ÅñzžÁWïe烎Sìe[+™Í¥*nmMÏ#˜ÐÃéÕ !RGCòÙ4º¦0L"Þ]ª}Xæ •4+¶Ãè znEòoüÒòtSÞ.ésзª™Çz·´ä¨[á•gÿƒÏ¹,$ƒåïß0ÃîtïmðC«³\a%-¸Iwv[—›EíðMð…nƒn½k?0¤¨ö5IÁ¥y¾#f AñZEâ:Û”){$4ÕÄìc‘ó’·büÆ‘¦·ýyô¿ßUáɬ—ƒsÍêšCÌWHDºS›¯¢|¦RÝZFÌWu$·X>нäeâ‡'wjôZö1jt±*QcQíõDô9óy½+½ó{ˆ>‹‹Rèõ«¦>8 ‚»\ËkDó*¢¡¸îæ[/²à몒éTóW€²kš;™2´jÔ̴ꩌ§ ålqµëä ¤NÊ´LY¿‹å;˜¦Ë- FúEA ¼4Þ²+ xr®:*ô ¥ÖxÞ+¬‚É´Ê7\+d+ ó ý¸amŸC#2,PË…ª\+ðóKlép/ÔµFLž°Ì-Ki?8£×$–©˜ÀëÆs;çÇ¿&=ÔÕ.= اx/² 5_\“o%dInSó*5Ró„)@¢˜°ëŒrY Áñ°|E/ĢÃp´[ÞÆl(6«äWx£ý1¿âx™í@™î¥W(çÌ©Ò+Ó‚ŠIq?FÒÄù\c¯I¬ø´6#p‹W5[€üUÔßÞ ’ÍØ>Šõ˜ÆŒy¼¸àÇItÌ&ƒ2æÝÌÏV ȇg Íwºpè·]'¯«|I{ÉO^-^ú‘ÏÊß®"×Î;7è¶ò=]8‹-V¹pFý{ ÁñíÝÒ ·Ór—µÕæêfµæ™Õ(– <­"»å³¥(lË89<ìÄÉo%W†»afQÚºí*>.7oDSª¨äQ™íWME¡¸$ ˜CU×ÊlÕ¢¢zéÍÁZoR÷¿Ê¥­x¦+4hU—•‰ ØTï1¶ÃƒU8cciwý¹'M*ò(H;p±Ã÷òø®³é"b¬¢A3éEÈ }°;ç6' D¥ÁüsY’kt`|qR-“/]Å2+_Ê¥ Ân±†£Ç>U€I8sÝÒòŠï&úMÒÓd#±zEŽ%,Èõü„Aa®?©àé‹D ê6|ššÛ»VYf™8s è½m$ _ÄÂïSYÜx1Q²&öëdRr­Xk-2P?7lYuqt¹@´3”P«-²²"Öì1,6lBª¬*¦yD¾/}rµí,tyµ ßH–ç5»Ú–Îà½bÓzšúlyHƒŸÉþÛÂ@«àMÏÐ=ÞMéŠËV(|¸ÖÛ¦Äê•ùX˜ƒ©YŽÞR†<û¨ 5_(C vuQŸéìëdâ•=R;^ŽïýÊbPr€6^Ÿ„Äšr;Dz'ý™Ò™-:¢åÌzË;Îlõ†)Ài¾aÚQI¹ê»B§®Ë+ÒyBzw[ϦGQÍ(e Q9Ö¯­Ô⤠÷¿ÿ¯Êú¼`º•ã™=öu.ó<ß.Ç 7h÷±ÓL›Éƒ íèØq©í^éØ üq…n#—Ùe}D¿Bv C¬wãoBˆAXUä”wüRBùŒ&T ÚÁ€o7õÜGzšI¯›&’ŸÆzdk†~•& `Á²‡Š:n3ïþ¬A-ÈšXÖ ÄêG®Ô¢fSÎÚŽAŽ#º–p"ô¸:"X‡»E÷)Mš¦}“và/1õLZ»8NP)¾_qr˽֙´€2^ ³êÏ£f?Ï/­5$eMÃ}t/ñ¡÷'6i»R5 ¾€‰ @4L¬FuG«aiগDyÁiiàþÀ„ý¨ÎãËäþ](©²øM€ÒÂ9lYaá0ºí8 ¸ýÔÎü¸+3ÏH®æý ¢1è9ÆÀM`4=L†-ûz¤>¾a¦¶ø:¤nÖ‚%¸B üý´•V­È>öG)Ú¯ 7ÂxÓ°…?Ëê›ÔšaS Ÿá•W*øÓ9®g×pÛû„“àfe×?äQ¡Z8"PÌL©XÀ1w³Ó œªÿV Ñ›Æx:¦H g¦G P}H[íF$iuÝu5`'57­7›9¿bq8(P$FÜ%ôC@ù|AêüŽ4.èšCZ‚ضá§„>—©—82ç|Ñæ‘SÚg¯»óÛ?œ]¾ËåzJ¬2‚Ëo¡‘ûqeu¿XÀh½`¯–¦Gæ&e÷[÷~ãÙX?½~yz— Lk¾!_é¨ð3ž[\DŒ¿UiÓüÜœñÛ³ÿ%o½qendstream endobj 1122 0 obj <> stream xœÕÙr·ñ}+±KÁ}¼&–¢¤ì$¶˜Tªd?ˆ¤D©"©+_Ÿn`0h`0»KîJ–KD¡0Fß×ê×%gbÉñßð÷ìrÁ—‹_"î.‡?g—Ë?,þø“ð|X°ÒêåÉ«EúF,…²Ìpµ´N1áÔòärñ|õäh-˜PÁˆÕ›£5gJ'Ýê ׯïåêÅgZ)§Ãê-9Bן¼dFk·:>Zkn™×zu‡´á«ÕkïeÜ·ÜqûËÉß_© Å×h&€óÉ9`x× åµq«ó¸ €Ü–å]wù¢,OÇeº¯¡Ìòeä­ï2Üš0.•Ñp@z¦¥5ðæµ ‚9xéGøJr¥‚ËDôÂù–Z*HXT´¸Ž÷Y™ÏÆïÎÈ*l¢¡ œ!äS²M%T¦¯úo:̓x®•V‰ï–>†JAf¬EzJÇ´VžÒàŒÜw]%‡ï%—°†;waõ>öJ©|I\ÔSÒÙ `z€¡¦=~]Ž\!VÉüÄ ð[\;§{÷µÄP>Öð©Cù[ ”i+’dÐ{ =)‰(ÆÈ ­™AùyE>¾*‚¹!`` t2V¹Š‰(ZfU¨\ã®¶ø•,àLwùóùð?tLJCÙõ*]bÕFɃΘ{°¿'0®ˆàQ…I—pžg@E¡XS#u]±Ai0oÀÚ·ýÞ9Aå6ñ ŒCŸ ô1[ø%T—_ &/P°¤ Ì•M Í‹"¼@)µAóèŸF ±zŠö,X®Mu!U¤FGˆÇEº¶w‘ŒÂoŒØnƒãî]»$68îž–åór€—Ý_6ic˜AdâM-îÄ'½Mœ5RÎ êU´c TtF¹©l^%p`2vQÁ¾Àk|–ü(í—I]¥w}q›ÓúzænPe[Ù?½(÷dA@î­%ãsŽË—‰Sb nxÅÌȨHB Ä2Q„ÇõKd·€<Ýî²^ Æ:ÌvK»æ ºÌøžßHî5R˜ûŽ0D½ëX-µŸj½Š4ž”K»©W™7m#XKûF}¥eÒ(±KèÔªíeWm?•åM7Ìz·Em¡y¥í‡I`ÀÊí&yÆÜ&9ÆõœÿDÂ!JÿV"´Ë„œÇ<§lpw0µ*uÌU|Í(ª;z;@ÄÛIÐŽ7 -¶$hÙ±yQnS Фç¼Ò]¢»—Õ‰*FwoˆÒ¼.tŠ)a­]Í£%¥I9 —”Š^tS¸¤ƒ3“pi£ÕsC¾¨ÙS†i¿1¯Â'Ûà«m*!D<§YŠ»¨©¿KÝ|nx>åÓ@~> «€úR £vÓÍÁ~#ÃêÓh&®IŠ–+M/ö‰ëNò5ï6á*„™{f×Ö  ¸Ðµ­6qbkTb0ší2ÚZÈ»@?NÇÝ®<@öny±í¬äDðU$§æ1f¹– fÞ„ôÙO‘½R‘„p3Ø á„QCrfÁ¸€Ño±ÞGŽ#`HóáÈ*ÆD¥Ä'1ÑÔ#ÁFPäš(\:.TŸ¦°N‚I°Œš„ò³âƒþ\(û²{Ò=ðtÜÅ«Ÿ,~ÄûŒ_^Ü.4X¸åÇ_þØè ¼e‰Ò½ååÈ·ûqçíâÙl©¥Å?—Zœ`ÖD àÿD*µœ4/Zw‰ß%ÎöuÙý¡[Þ¸)"ôl[)¤ìveÌq°bRf#úE‰ Ü’ãT“Q¿8HäG—‚IW«Ú.áÓÍÆ ޳ÆBõ÷¹°jîÓiš^QWL ]!“Š@lñ‡”Bøäîá(ÄX‘A—ä¯ÈÖäjHåÝlª@ñ˜Kçhƒ®_‘÷P˜Ôì½%1ìçŒÎ.ÑqÙ nAþlS/¡>ºÉXìÀf´¯Éq2È&˜¹JËèÝWWY‹y[O CÏL‚éÖ‚Jðé1@°Z¡ssGcxƈÅóýírºkðÀ¥sÁG…;œ©#W–ipmhÖ€ëg;1k^`v‹ ˜âþf-.·šµ—Ý7eù²,?¶f­á¤…Û€¡¦ô¨]œÔçd»°n}E¶¯ WoÈöàÇ@¢|²··ù7iÞ¾_.¬9VésE-õ¢ pÕúR ¸>¿ÔAB’P*¸?ƇH$ÆD L»U*O[N©Zf ؇¬bÜ&‘ÚuFHÛpÁ0«,õ­-„“î§•hF.(ÈX \kjÀÄìÃ,o˜¢pỂÇý¸0¾úø2i06 Ĩõ]À¦å«²¼i‚Ýtùì¸ vר$kª#-§ÒòªìpŠN9,4hÊ©agNa©•‹ §ÚJLÂù¦Ë©7 Y2¯-DäŸè·eÚͶåø—sù'¥¿–å÷àã Ñœcö“&rùËîK. \HÝ+ô†‹o­ 3ØR›HZ[#H@þª,Ï)ùÇÝRÛî·òýÃNÏaæT¼óæq ðû²[¤8õ$ˆñ κ¨Ývw+£›,´TÂÊ‹0I€Í4¼hiõªûænú“8~†É?f.ýi —–ïË…÷&9 Ü›pYÙáv¢Û¤´ÛzÒ›‡Ó-«û÷‹“GÏg̱ „4]‚Aé  måæ›†Î ØyÂmƒëhÑÇôä àÚ×G¢+ï*ÖP´¦ÑªÐ†[4¦[òCÞñ]Œ?ƒ‚Œu¦¤’’7ÅC–Vnh„J£XZô¡gHÐ;ÄÂêö cÁFA`­tÂÝëPçïT!Û›«ý€mô_ òèhÍR@RÆT( öǽ‚‰ÜWØž uÕïk¤B“ ôa¤rUASmZ2˜+“Ðî$p<-ä*jC㓶׺½‚ ­ÙÌoñRɸùª!ÚQ”J~ªÙâxªÂhneU'’)%î1ã‚×[%'»‚ù~“:ó*—RhI¦Ÿ4üw{èö(.°í *æuîÓÔïú; ]°ÀGQŸLT€VKåuê+çêɤܨë[ìÇÆä}äƒÚ `й•®jqђܤoeyôt@Åã•sO´©nJÒ2.B _‰xMuðos=•N2ªÒTÜzú8Ý´8\«»­C 6—S}- ïÛƒ6TF¸ªaO?¤E˜¯ÉñI‰S6``­$§=‘ž«Û¨\3^zǤ 6¡šÎ£L¶tEïò¬"øáºLÝkŸâÖ4°ͶÍw¨67±j;­ðF3už.Õ¸hÕ®¿!§gÊÄ”.Ô O§+"”t‚ëÖìÌõ÷‘‹B÷¦s²ïÄž@‘ü¨oÒ4˜ñØÞÌ6aÎËEœÀ¶„Õ.£Œ‰ôð)¯ô˜¾ý”àGÇ[vœ«äX°–ÆeààKzXÝètÐ…Š ±Û¬·É[\ïàÜg¦h(År“?ö#bãÁ‚' ›Ä25fLf"EÖŒBçv37=ÝNH·Ý lr» æZsô45¦”p=dd˜¸ÔaLb.@š 0Û$F¬_ ‡ˆß»¬ýî~µ8éâºûMsÜT£çmZ> «‚I­ê~ó“#/XpuHLÌ:í`‘íZb¤5¹Ö›kDÕRZëô0‚Ä7³0îð°e\«M×%˜”GÉ3&ýH hã ÿYhÿŸ²|Rø´¡è—–ËòïMf7֦ޥŽHtËì™aœËyÒ½û_û6Ë–çÉ€ðwÝœË0fÒmb°r¶ÕÎÈÔ¡RÃN]ðè—›ìMZêÙ“:ì›i›40ÌÔcì  V1éÌòДØê˜VªYäFÈG¼x‚“õ,5ÿŸÒé`Íê3¶0ôDºÙQ&jÏúZK/¥~¡fÚî"‹•˜PdlÏ2Xß0âœòx±]ô¹Ô’ä\@×MŸ>ã‘ןX2û£™†õR'ï·H20Ì4“csRŸá$µÀwîô‹…»A U%Iîγ”’ JraM²ËÑ1Ê™3Cž¢c+¶Ž½¨dÏðèÅ{IµIUøÎ£c]‡Ï€9¿»á3a^†Í$„—@2h–wö4@Øí½÷C ší]†ÈðÐ)Cî9h&©š´sfø¡uµi’Û úá×½³· –ßq$ kàv¾ˆºe$lcE¦ªl ‹%y3Xj´íd:ñ0µUs¦ß'!Ü6mª‘­_ÿI8]¦¤mJ/“ß0´"þ²•v’-dµÜ–-Œ3׳¿ø;OyR> ¢aÊTs¸3ˆÙq/kŠ¿¢Àæúsheû·™Cƒ'Ctd-ïì1‡†“G ꇚC#©Í‹B²z“éÙMcf^|cfNüvcfBcÍ1³¼³Ç˜Öb­”‡3ÛéÃ0”ÿƦȤ†N"ƒ)Æzï>D˜]ÕD>È™€d çî3ÄÑöZv™BRN|sSd™Sàæ˜£ŒJûðI¡9q‰O¤¢A†{ðWkUÜPzn3pT’Ow¦½uMêñíÐ^xǤ¢Ävö¡>Øy#‡ ¾þo/úZ’­.×Q5<[ÍýŸ[õlwÕ°í€Þáè,?ÐC¸‰:KHò™7@f€!Âfí!On ‡ Ö&Hq¿—¼“ù-bÏÏ AÛm¥eùÑÖtèÐà쨆!Ïû‡[M¦•îòµú=ÍN‡ ¿ÚLá¨ÓÈÐþ¾õcgGu”ªV¦rP¯ã\»!™¶ÜHmÌg øˆþoÊñgŽ|lÓìãB&è×ô‚ò/‚}ãC˜ØW—»HÚ}¬û=%í La~UË ¹ÏX Ú@L h•Ú˲O¬KûSɉXM}©Èà `Y§×8N*˜Þwœ´éœ[ç‰õ'ëô“Ær@ªgðq9:óÿ¡­òáendstream endobj 1130 0 obj <> stream xœÝÛn·±ÏBÑo8²mI¯¯­‹¦EÑæ¢·¤²n6bÉŽe'u¿¾3$w9ä’ç"#I‘&(îp8œû Ï1É ÿò¿—w'bs{ò㉌³›üÏåÝæOç'üF¿ S°ÊêÍùÍIúFn¤´“ñvcLÒÁæüîä»ÓÏÎÄdN¯Ÿ‰ @ #OhZ#$œ^ÒDÁž¾cë½<}MCŒîô]„â­4îô¥“Bµæ-B×ÀèÓû´\Pÿ>ÿ;aìE…1Ž¥S›3b£6çWˆê9P ¸ÓWÀ8ã½B¬ U´O°K©I Hä["ÁkDôÏq,ÂøW™=ï.ør™¥Mþr~ò5ídüæöáD#Ž›ŸñFþŠˆ ;I¹± aRfs‡3à&£–™7'ßï­Á|¹·“K &©Tº·«‚æmAó}^”á»2|U†_u×FZI¼Èy¶{IÆMJ{?9CNšÒM8N?¦‹ÂÃËÄM@b /OÜ×àeêà&P:±¶Â Ë!ÞáPà½+¡Ûå/?2–à;]30 ºU€GÆ¡™Œ´3”øåEÜÈ*~œÞ£ù·3Œ{Ú# •ìüwã”Ãiå&-µ® ”#vÙX;yäŸLít¥NáÁ/Êð}~(Ãû2|Yn·¬íÞ®–“1 Ë~‘F2¤BÒd*‘L§³ ¡ñ^¢öpNƒ‹2y†‹'ïìæ ÿ5F»“]ê R …^‡šª˜ké'‡œqŦ9aÙ¶3…hÎXjçªå/˜÷ÄO9÷\%$2óN(~ÄíŒ8'Çc¸É å6È_”YÎÞ¯Òñ½²ÕæœZ G„ïΗó#³{œ„(Ê£É0Õ!;¬`(r3ÑZfO— t Bƒ?ý”Á˾&7øç`g–Ü¢ö‡ß´°Æ^"v²¢ˆÀˆ³F äýLº( œé2i@9;kµ¸æ6W»{ÏŠhfjQd”w“ !‹Œ‘åÌ5ËS¯Y&^jd=ô×ÂàLÏo¸£äâk™†ÈSvûA4ƾ£jLí4\jPÚþš™™ó'ß'Àm#—üÚ'[VÿT¸udù øùi2MŒ0œ’|Å›JƒœáÙ Æý•;ɾܡ#‘Ñ …‰R oK q“0Q&ex\4brèVý·&"Ž¢¾œ›‰?0Ý}–”> H ±ÎŸªv±øù8}ךßÅSC ü‰\©´ýdy9«¼íú*ñP9ÿdH<`*TYò½–ªÎDñks IEw|YÉgÌ(‹ˆË°1Ö‘²ÝÜ(§$jËyâé„0ÉaR¶ãŸ‹ex·`<Ê"»(îÝ8g[fþù4Ó4éÖäúÖâl×ÓgJ·‚—e<òŒÒÕ–øà*îÉ¢‰Zi ™o%9iÜ:k(T‰$:D”ºË´ •ȤZµMR±w°#QŠ•‚ÆIã2=Ðn« ;ÊçõlåÃÁy.^Ë&¼‰ž‰ÕÑŒK"«Ak»@~åýÁdÜÇiØ€|Ïf•Nà—±Ð‹«ýΚ8?.¢[ˆ¥ÿqrþü;TøW2* h¡’Àq*vâ„>v.ˆ–óp,ñ“p¶±mQ±š.ŒO ïö- ¹ÖCÒ5vV§;ÊÛªÊ.r/ú!}'…ÞzˆÁ0åÍÉuG8K1tÞ'¨þZþ"ŒÍö1.s°Op1ãØš4‚€”ÿyåLF¡~ýŒ¸­"¡=kÝZ4è|7Å7«…„¥ï$Û|ãÚ=ŠÚ©5ò3>uê‘‹J7¬·£¤Æ(ߨ$8æÈ"kÙFB¹æVü'+éÛ¬&MK¤áÀàW:ŸFŽÝ°‰Y&:-_ª?ˆS'²Ên1PDáÏÝu"%{®æÐÐ÷âö¦àp—©…œ.hˆZKÚ†“çŃhã'©÷ˆ÷™h×È„hØ…\°=Or{µ†¾CNhr¡è+ÈI¿èB_+lnÓî¢xÃ8—ÛËŽ“ÁtüÃ8nM&ºîa‰‹»)ÓQФI0`ˆ<¡&8 ’;ªÅÒ ³3©‘<¥4ÙÍs£ò V¢ÂÄ!ʼqCpä;£‚u¨;5åßâr#uîlѯíôj”´\Yí¹Î¤@5–’ˆ«âÖèrÁüË™Xrk,2/ï[H4ÆÈ,fDãì*3‡—M±ƒWCöʈR"Ç5™Á-þbDÆ0¶ñ­Ø‚™‹rY. 23MΨŽb>%ÿçèî׿ï1¨0 á{ÉE×8•@cgÝázªcÉ-â­sÖ®{¤?%ì!T9®÷ QéÝ¡½öÈ:¤7â‚DCwþ÷ÛÕ¿8šU„ŠG’8Ýé˜ûYÒEø^Å4ÊïCZÒ h²–ŠA“Å ·HÔè˜÷KúæC:$xÓÖÖè¶½7Uù™P3ÎF3¬·e5—Ü0®®|–:àâZk,JDljÅÔ$)PößHI5=½ZªïQÑ3I‚Öi?—´T:ç9´tVºÓ€ü.QÿûÓ¯ÙtòC…ÃÿÓîà‘™Urw•´ÚæÖ‘¼>*$‹)¤|¤ÕÄûüËtoÒ[ˆYp¨óS'À‚ýf£Ñ+I¡&à¯ò—†«ÿet,-r“¬öì`çï ðÛÜY]­æ},ÀùáÓþŠ\¹LP¼Zè#ÒOŠX9Ùäž-"3±¨!ô§å2ݵO¤JÑd»-8oÑ:m´*îP´€"€\¾Ì<&Zð#ð‚$áÑ;_ÛsUÌëuw#@)Çq³ýCð¢Ì¾.Ãn—C? µ9' è.Üî«„ŠŸš6ƒ<ÍZIyçiŽ&rL¼ótW”‰ú ê6EIsŽÏ6u”Ú€ö€¨Æ å`™yTé&›@øñ2ID©*“œ<"BØv¨C+? $;ª77‰'Št°œÚM®ÔLœ]5Ôo1¹Óx¥XÖ¸U3LgíT3`hÁÕÌUƒeÚãc³óJÁ1„ßuwÝ=Fµ×]î3/)¨~^†È YìÍÚÚ"öW|AŒ²<ÅsªDY#€¨¡ÒMßÒµ#¤£LC¶€·†@Ã4œi¸ [.Ý&¦W Wn5ár%§þ5Çqh{n»{ß;M®¢ ›P?Wð°\mÜNírÛ ŠXôªÁϱd£Km|PJ—t´=}?t Ú›–!º¥¡•žlÞÚYVÉŸÉ@ý›!áøÿz‹ž`ôùb9Ü|Ò]NtÎÄ—Z&o–™G½Ô’„#‰c=Ôúu¸¯µøµW.(#Ó+.=í-%“ê,åÓŠU ý+eš:¿2!>w': ÓT)žÚš³ÊÌ?$LðF¶5HІgéÞ°ÌKõ½dÉ»‹îêÜ{E®'4ÞnNÆaÈØ)àK?ÈÑ__'‚I zYÎ Süعç£i¦bÀsŽÖ$)ù D.n™‹éM¿&ž HˆQ–°ß¤Ï1|HN—ÑqUÖ £^´‘PäÔ)jž¹a_ê˜âG4rîHRèÆ)É$…ç°SAEÖý˜,áÂŽŒ}ë >Š‹ðþÐ3 Qã´Åh¾¾¶'ŒÛ—€ÔdQXÔÔèz,»Ñ .·«Ÿz‰Ó¦~:v´·— ^VVÚ˜wW xî:ÑP[ØÆ/¸BênÜUèF@̾Î3Bþ5Ižƒ§^yÜ âJ¯Ùá¥Ö-½q}’ß3•ÆS6|ÌÛu™ÎþA¾Öu;LÏG¶öZÏTëwΈ)ã>C¶ÁRo€Œ­²º„"ë±Ì<¦[@¨Éš”z·~ánóîìu3ò2f´]¤>*"ÈNË=u„VQ'tGNÖ¡Îx.4¸ /7E¬¿_ªñGúHc~[´5º 1›6!EQwâ9«6Ë"­ó¡é0µï¶›å×"2§@©ŽÞ‚PY‚žð ‡&É’~Y`×{§UôÒFeô  ͧ‹‡ÏGð¹ “øõÉÿJÆ'nendstream endobj 1139 0 obj <> stream xœí[É’·½wè#úØÃPÃHìðіòCa…¤¹Y> 9Ã%4 Å!%óï• T²P¨Þ››: ‰ÜxýëR XJú¯û÷ÙÝB._,~]@š]vÿ<»[þårñ§!†eÑ)g–—ÏùX€pK絯——w‹¯ü…ÆjmÍJ\¬¥ðÑ*éW±=­†éÿ\þ÷QÚò}´¤Â½.¯‘öO¸t0Ö¯þš†Ñµú¾Ì^6|;ÌÒ&»\ü@;Ù°|ñ¸0BÚåïxö¿/À'ÀÐq´ðvy·€^X;ÌÜ.~š•PÅù ¡ø¥Ë躰ù¢°ù¦Ì^•áë²àe}föY&ºFÖ«›æ&”‡2¼+Ãׅ»2û¶ ݬ°Ê0ÖÎ p–k"{Å¡Ê]p€z±!]0fuϦмfÓ46QûV¯˜átóV‚nZ޲"¢á¬µ*ÙxUÄzÏO·¶Ê¯Ì ¢EÓ KG =S 9f1¦Ð‰¨ÇÓ™­Æ”yU©÷S2&”¼Ö¨ÕÏ«¤\«´RêM¾/ä.› ¾ÙfRÚF¨ÈÔ u@O/Ã×eø¶ÐeŸ}= I–k Ä`Ðx× Ðçñø¤z’Ö «˜žº‰#ô$­ÐÈz­§‡¦ž®[¡Ž[ý«J#½Ò³"e§H=Udí}>r5 l%Æ4Í×2\—á͉iœK‘6jI©uPd?q¸"mT"È.…2Žß6yÅŒ•s—iÊña¬²-·U9?_ŒµƒYC…i‹êÓ)ç±ø ÏiömsÁË2û¼ ™}¿(³Ì¾·–úMÍzþ¬Îy¸![xaÀ³Åu“·we“§eö¶Éæë&Ç7…cžùÿcsvdL9¿ibx˜}R†¨ÿÎëí´dê¨Ã7‹W…Ë·dD*Dv¨™+ÿƒYKë.ÛÎľÖ¦É ™IàœáLàÂåw‹Ë'_ŒÀF!®â§f,ÙWX;m²¨ÈDó¢)°7ko‘m9±I°©Ãqb§ 8/@QÇ1i»®cù&õ Q[ÓZ+i·¨ kctÄŽ]0êRx'ó–ÆàÁê8Zß®Âv§ï®‚%Dƒ§®&b*Ås$V)7+©uôTO¢€¼ 9\áhB»AÂ…ãé[kùñKã#VØ*u> k‚0ÌÔù(ì+‰D!Æím4 žŸfçÓ›ŠŽ˜þQÁ½rÞä–ÙÆ˜­Eko"RNÊÖ&W¤l¥ÎÆ…5`µrÏÖÜPÈ’³é'=–DŒ"@¢í(©²év_¾cfÅwºad‰zĸ30`½¢>§©˜Ñ=ÅDå*mê?ÚUaä–á–QãÞæ  ~™61* îÒ&A>´ò.;®÷F#Å|$#‡ýÉû¸ÜžNOŸHΞm›Ó¬¥ë¨ÒìS&~¬jâ„Å0šéG¿à¤uBé‘Ò;~÷ýžÌÙ3/L¤•&†å/ˆ¶Å¨a8íçyVb<ã笂JúPÁh{¾O'i4í0"3×ɜEW’NbQ¹á‹¥2#nÃ/3çZ™]8äœpgá˹W03êD1…„ 6p1•’*ڸѲ²„¾¾3ûÛdž‡N#Ú¡(‰˜Á•ï3k2˜ þÞ@Oã”7Íx¦v_JMŠö(7r.î£ÜwïÙš¬sP1ævV:ò¯ÚÙ Ö«! dÝ6ëeqÂ*ÜûÝëåQ2}Zi“8°Î5œš ïz°÷tjúF·‹…¸û»îl—Æ-Š{×{¢þD&„0æí¡cãÝ>†ì°ñ½am¨g7]ÃMjßÙÄ<5dµMì®ì;ið¤ÛŸ§§JÉ)èa0é*ŒÀ¬Ë—Ý$š`Æ9Kï1ïãm‹HŸ Ëæ^wÛ¦˜ÜK¬WYl’ÞÚot:z>‰þc:]ÇäYœO œ?­ ŽD”ñd>¨­Àvdâ„é8°*üÂú’‘v/ªOá„¢¼Ýá©€÷~¹î{žôÙI]JEp¼ÃãmÚ;Ö¾±Œ>áPп]8-¤WŽjPü.ì³Kuí§Ñn$›2Z=Hï#êä]š –Þ?ŒD†º4[™0ÌÒ¥aRw6EQÀ ;Óì'Ü¥ÐèÒn6ûvò¶œ ä.×(’†Øé«0rîçyû”1—Ds¦ˆ×qÅ·ê :€§KºT|>¾ÏÔÀèÙÅå³)™>Cßòñó|ˆÔÓqá7̔ߗ5¹£ëmõîµ{û<—£æÈ´« ƒ!¤jTi®&à¶*¬ÍtÝ7;2¾§£ÖÁ…Õ?Òr‹®Oû©qž5¯*w+Ö;uÆ8/0çŽÿ†¨`: c3*\«üË$,ì%ªDVy±¨¬9‹7ôâ¿jÒf)üê½Á(gÑÌR'G.êt)^³$£Yÿ* IyÓ/ùÇCZ`±òûF€ñitŠßR"WZgë7ëž—q©7v𴇎 Å<=7øºo¸:]B&O§[ç7AõÝ/å^µÍŠ[wç÷™'ë{-A„è÷½üâ´çâúœç ¼˜ÕWìÌs¬óö« Ztw³éº„Î§ÂÆ¤00Éeú&+&z˜M.'µ³³‡îV„X5%ÉÌ-õ&Ûnr“™ÐNÚ}Öõ'Ì)¦yQP.FDø’¯fËÿ”Î"ýøJ"3U¦TÐa•Ie”ïlœ&wTFjý ˆ å§í¤¤ëÁü$Ñ+讉n!¬ý“UB]%„žÈ93<ý‚oþìä…%¶Ä^nƒñ©hé6õÜÙš°ŠŸÄzg¯Ý'ý~rá:¬ AHí??Ȱ<2¬(}È0Uï*b]tÖ^øaâ K -|¢€Åç—>àò±2 %Ñz‡g§“‹ PáLàb¢n”¯â0Mâÿ PÏt¯ÏîòG¯oÃ,ñåãꇶŒºÒ. {í]ÐÅë4o´ô¢Þ‹:Á†‹Ýö€l€p °7ÌØ`ÓúL£ Ñ³m36`D çoÔÜöžŽÈÕü½r¼oZü²Ècº·¬ªê×büÀî 0&Òv‚_…K]†7"¨Á‹{LX½™Q´ æâf"S˜`Âè`J…¦JLÂðºçolø[[^Ö)O°aì³>}ìФßú±5¹ñz>á\ÈIäf˜ $舆×ô,΄'V$Îóû≉kôûSa‰ÈÉHư’«$ÝN|𫦽¬ÆïÑ%éÔ¿3Ñ>¥T•—Íái³„Môv¬Fà-éýz¤ƒil©r5°±iœ<êvL‘¨Èò»›OŒû+·ñ'(éK>¦Ó!ØãÇéP>ž8m³>˜m‚& ôç»8# 'è‰;vÛížDðôŽ¡á8åƒÑÀâò‘ðטÞ+g›ï¥TÄJÃ43Lâk–x ãðS ìj*À<ÿò˜j)‘¶P;M›ŠYÖ¹•>Ûnë=LL›æÑlõãž)Þ<ðïf~uÁø®~߆³ØC·ÊâyèámVeЪ‡¾…8ç×snñßLì Ö9™³ôûl:>×ú×Y&ãõO7ù´``„‚ÿÚ„VÐoF¦2M+r›`¢â€Ã/˜Y¿ys“õ•IÂøyö8°;šuÕ1ÿ\dÕFDá˜n5F7¥©NœÜ€Õ/5ìN‰]½mùé¡Ë¤0ìÇþ¡/€8¢{MÂw=amªBú±ÐýàÜ¿ïÀSê9dõ›ŒF_Û=‘5é±x?»'jèQûÙ=÷÷¹XÖ ÃOZ )…C)þÒÜ‘_g.˜ªÏÉÓZr.+HÎvòe«Ðš£oø°‹Tfb÷£-žÆw‰¡ÈV Ãáì‡Å2ïžGendstream endobj 1146 0 obj <> stream xœí\Ys·Î3Ë?b—ŠÆ}ä->*VÊ—m¾ÙyDê¨â!‰’,å×§ `wI.M—ËåÁ ¦hôñõ1ûvÅ™Xqüoú÷ùÅ_½Œ„½¹«yÉ'¤áX*k—ªmhä†à(yoüè”EquÀV*Åȱ³ÈˆY•ÑÓù„ !Û ¯€ÈË2=ÑSÒÙfI<Š—-ÞüBûª¹€!‡óI.»"¸ @Þˆ¤HÆLŠ”Ék0°OQL³geø±Å8{>G¢”ôYéµñêîö)œË~l·÷ñ®ÌE!úuU†ÏËð²Ñ¤¤uï¶+•Ñ`FDÈú;žÄs »în?ý¼üYW‰Î“S-ÝœªÏh –YΖ™!Ååa8J×ÞT ŸV}…«$܇©Ýî@AGöÕÜ2tíÝâ¬ä=Ÿ†öš‚ ŽpÄK¤mêCm@æÕ¿¡žKÁ³/Œ€^)ðàÑIÇ8ÃÌÛHJG] x¶ÑøŽ«¼¹®ŸÍÇãC_CLsž–{(2ÙŠû¢;opŸ–šq@u{ìjᆀ³ÔÖl±j‘9pK_Óš²|˜øä2™ÿÓ²&Šý´½ÖèEÇŒ˜^eû6HÃÝúÙzý\ÌÍ×E1(³'ÝßU&òÛ“£ñMƯ^^Á…˜Õo9üëHx·+X Y« ˜±ð5¡ÍÑe×Þ&›Ÿ rß—´kÇfZ ¦Ÿƒgʦ§Ù˜õµŠÊÿx¨r)èP€Œî‘b¢2z–8”½ýEÚJÖ?W”¥3¦ÚO$µÚš„c¿€3í¥ŸFì%“6˜ët³fd4Fqnǃe4À@ 9Hý & ·5jÝArF›qB¤œ“úÚQE=FçÚ#£“¼QïòM'Ä¡J[*–”FsÈ58ÒV¿;nb­–f" e@¾*v}<ÆØYIÝI-ô‡,yFxÖ¨ˆØ ´ƒ)çi˜2sÒñÚQÖiHÒQ±g¨ÔA -çÌÚ\%‡·B6!ÈñðLpᦽÖJð–ØöK.£L&œ#]}™µt`ª½;š/«Áé­7/0/ÜhFÊ ‚u¡[Û‚!a„¬ I-CSXÌBÅl“á~ÀK}wE¥‰(ÝtQ˜²¤©‚ "äHœ—P|WBP a0¢ÎO•ìü"“V†»™üR ¹qg‹_&Q£¢†ÖApØÄ¿®ËÝ)L„&É£Ù6ÉN†qØæÓl‰‡û 7Ë‚Ú7ˆ¥Á›tàμë Ò öíî¼Î¯û[»»æ,ÍîD‘¾_ÉEÅ$¸fb­›£" 8žÞfP„5ÀŒ7;Só7µH Š¨r@‹„›õunóEz‘tûr2QÐ:ãÛQ2­Mæ#nDÍfÌšQ ³cƨƒŒ>¬9yösQ[ƒƆ¶®@×ÒÂM\jáॠ&;I_àZ‰%ÚA‡ÞÏ ´!É ì¨(òàü  ûCP±‘“X©nSO0Àîä°!Ô5š6MGBÁ?‡[›[oo—Ñm¶·Åè¢vXë‡f€Z©NзÀ§Ë CÛÚdb­\£À˜õ?ñÐÁò&ZâZÊ¢M{ ¢§A`6®öÌO.ñ.2k°•Ýê^4ȵ Ãpf úé±~É¿Úv"ÂÀdkØý¸?†V©(éNPop”“;Íï·uò-ïÃBôï.Ô6wÿCÑ™“î‚ï*E‰eÐÄ›•Q€<…X]À „BXóÌ-ª@ËH²§Õ¸¶º±-#u§êFÃ_—áU^”á›2üP†¤1欼âû2»«µfÐ9#H(Ù8æežÓH@Þ“h·ídMF]Cl$÷ôÒZXˆs ŽC®B½6õ‚(Ó4ààÚ‹û¤7pCÁ¨Q‘$ÓbjCc¶V¥ú4PÖ¦ãK#ÚÞ úÒ±Âú 2]בi%2ŒËQ¾)Ó“z‡}Uc˜Iß8Ám´7ƒ7žN¦a¼´dl«ðÆ—-°èM¿êlD|áv¦=ÕRÞ‰ûãxKÜ>6H³¾¯Þ˹;Pif¹þy'b!ëUw& ~Gæ1%ç%´ùÈj‹˜EXÞ´ ^MÓbkwCÞá}¤Q¶µC¼A<óyX¦ò^`¶%§UàN‡C GžÈ~…±pS3WrvQ¶©œwls$ÃÊšÉÔß4IpÐ~µ“oÇ­þÉIø£Žp3]šp¨©¡Çz°Œ±g ÖX ÄFQÀ6–¹­“Ø„ÏyoÃtŒe 4Èkâat0\ôcÐÎËÔϺÃBX–a¥-0xsqgÆXuž¹M7ƒ5HÔƒc¹Y7E.ðFœý³tS¥=iÝkªŽd95R¨ì»9ýš§!¼®2Ø Îù»­]MЦùŠÚ[úÐò®–½Áv:„…€sr¿©W-îŸó,—‰šÓ²ç†¡Þ>5 :^4_`O ÷Mȶg?­I)ƒ 9B#†®…gÞÑÐ5¹€_nužF°4DÓ0„׆^Ø´èiCßà°÷tý$.7\Ǥ×Á £ödŠð¦zç2€Tm®@¤‚ уŽÌNÕ).‰¬2`η«0Ë;qj‘Êr Âólú!uÕ_{ö­ÉAjÎ[à6¥õMj”,F&ù0·;FEI Œ¤@§œEÜ`ÛØ«†U…¸„œšž~ašÆX¯û’0 Hìåh “v¼­i#ŽÀ8öW·^ µk“·žaÄœªC˜ŽM äk5Ș˜’X‚\G^Λ¤<}—¨+ÑkEÛòò› ñjû"eη4N%¬Œâe •ãs¬4·Ý½Ÿ` •¢0|ÐÉõÇ%_  ØHÎñûh§b#¹æç™[ˆ ‘(!–—ÜWj€¯†aÉgž%Ì\•WÂÍuCÁ0«ìASÆ–cʸ܌2AbÊø7$˜L$æ›ùæ¶73úh ߉BLÑ’Ü0iªxQ†$!\4—>öxFÀb±'}‘í: Ç¥v ôREŒA³ÂOÚ´šgnÃqpDÞD¢Ì³`ùU—åD[úRMä÷’Þ_ºïxÞFÒtVžàRÀÙ(ai_l´?­"-úOÈ’x±Ÿ—!Rg‰½8½3“Éì§òXk:\l)§¶£}ó" AбçÝ×½én˜, Lë×ó_w÷p9m¢HºáGeˆÕW!«Y2¾”„¹Ý3“¤ºS+³15²í†í_Ù‡BïÆŒ# …3.+Ybœ’û0®•·m®j'ã[Â"Ü(ð20»&<ñM*âö0ÈL&ð¬xÁÒ(…2îÐÜ)]CÐÑš òd9ï©ã†Ob¢…î´S•¨sÔ~û> tÈ®•„à“)‰P:‹žgn¥~I°üK[ôƒc"^#é¦cks³å(gF“S4Nu€×•«a ÖÚ>;YÄ\!±Ê3³5õcAü„±÷(ã®1ïDÊ#/Òû‚"j¿(Q³¶¦è¶¶þCžt|W]]h ÉL ­\ß]¤yúá©=Hu…jÚ†¸l"ïýÏØI´S¡ª¢ËOÓ9öàÍG£?IKŠ¢ü|[«ÆT‡,H×ûdiZ1}&Id­óUỷ´ù'­˜×b˜sµ lϺÅåtÉÿZ…¹e ÀÎqƒn¸SŠ"ê6`¢ ¥Mê"8ð+yæ6@ÝI<_-Ò‡Z)ôlÁ7ÙOÊð² I/ÌŽ˜·”ô3K_ÚÙ iG-Å’qêCšt´õhFý£¬ü[¢ ˯<¨]•©þ/ñKšæKù=2ÇØl°~ÛVîó“ýuÉ‚/¿ís8a•8ÀÚ*㙌£cÎ%ÏÜ&ÂÔ‘(ô3,ªC/DûÜJßLõåFk·~ ÖtgP’âôðçŒFéówIR8Ú¯µõ%é¸> ûVŠJÖæ.$˜L$ ŠÛØ™Ç!‰‚WÕ–7 ³B7…UÄ[ÙZüÖYð¤Em {I$ô?¼q låÛü†Ã8ÖX Nwp¯Ö-1_k÷.J…=¹õ’ƒVØÑ×Yû’¸/šÊ¨Tø9¥ûý>Æ¢O½:eüÒÙ!¬ºMƒo|Ô©ap±ë4ZGê#n“ZRý!f*ỏÙWœ¥rãFoõ3PÜùý†üæö¢•’˜Ë5wªZ™yúaªVH RµÊ3w¨Z ˆºjõ¤ ILs몕ˆª• ¹ ¶±½ŸJUò¥*ÐWû•ÐÄQÅ´ŒÇŸŸšgn•–ÁŸ`‰DÙCgeö”?h¥ŠcÂ…\Œ2˜ðpw¹ ÁB"‘/æ¯BUf¸“ˆ"þ(c*TÉdG§™[ª þM$Kÿ…*L!ùß±Pÿ UòêT‹¬³;]ÌxüWª©¦ªN•ƒ™¿êT{0núù‚ïNý20ï»ozÙå@kgÀv›@‰õ?µ}W—ÚÏÕ3cÿÐÕ3‡µ_Áö:LyÇ­úã9€Sópö?ý¦ -endstream endobj 1154 0 obj <> stream xœÕÉr·ñÎÊG¼[]"‚}©ÜbËvRv¼Ñ•TÙ>H¤H±J¤h‘²­|}ºÌ Á ß"ÉÒA Óh ÷F÷ûuÅ™Xqü›ÿ=»>â«Ë£_Dœ]åήWÿ8=úÛ÷ÂóU`ÁJ«W§Gé±Ê2ÃÕÊ:Å„S«Ó룟֧ǜI®Tpë—Ç'œg¼—ë8Ö&hÿË鿤T†‚”’@OÏÄB(¯[‡Á„oÊìiwÁ—ã,nñôôè;ÜÇøÕåÝ‘fܬ~‡C~q$‚Ѐb­˜3«k˜Ñ†?μ:úaö*¼Ç«šYîê«8/h^4ßàPK¡ÔúY™½-×í™Ëgix^ ¼è.øgÞ”áUÞ5{ͤ‚ Éôxs|"·&„õkøP+åtX¿MÔUZ €©ËW° Œ•òÂyؽ¬0nÇŒKŒ“nX™„~Ú×?+¼"Ëé’ÿÅOÜf¾Kã;Ä@3el½aSã%“RÃ-O‹Ðïpì\c$¹%ºü9¹‚|e^åè§ÉótMÒú|ÙBÄ \™¯„~H–äý•tv¸ß¸ürˆd?`JëÕ‰Ìh+µóù´*DðÉ_;7œ#^ÍAž‰®!W+©™ XþDzf¼£\U³†tL‹°xYJ€fª%¯qZ1›<0´òëw !¼èª Á5´˜þõ#Dï¶‘¬ö³®©À¼VÃv”«ô]˜åS"÷é¬7Õå Ó®&ùð&‘ÂÃå=Ϥ0>6·¡"!åŠ  ÁN)€dV³òBˆNXwàë{gI\âUó!ôY*s¯ˆ\Pèw ¢°†ÊÜEQ/Y\`‰I\ŒÉâ² I”å‘oû„#5Uj‘†tLÏ÷ aµB&ðÎkDZÑê(ªƒ/Þ\PÐù0\/ž×{{OOC‰O©üriŒwÎ(ú%ñ·‚­ö¬­#˜9×Ö\N(ÀÉ)n 1ƒ×Ín ÂÛ®í{q¼hû0” aïæÈk¬ÕÝA0+Pw[&µQißíb˜±vÿÁŠðT„SLäÀKèqf«ÀD0™@0éäƒI~´ Ø cöÏ7Ÿ#Ž‹j”´ÔR/†q{ Æ_¦>3º6 ‹Á¡Mþ‰æVú +z¶9ïœÞ±7 kCk€ðlÖGó*á “¦ã_F`4<£žWcfS”äõŸuE¡§ËQƒUUØ€¾,ÈX)bfºÒ FÅ:·é="À¡_YnC2 @<&Í0±Q«¢æ£ðYW7£@¬F_¯ºBx¹,yü E/\™q«ÞnÀ† qBŒI+&¯}]¤7íì°ûùŒaØÐ P4Ò«DnV†„ìô‚ˆ”QÇŽª,êmƒ5´¤YPHÿ‰@ú’/É—t÷›V&%h]a7{¤ ÝÅCÄ&L€Qê€YŠÌ€q#i[²ã4h´ ­ÌÌÿU¡VOäãts|é%D²qƒñ6¥÷EãO`9üÿoå5‹`™o½æÖ+ÜÆkVÖ€PÙøUÀŠ4¤²^3ïÆ™-T$€`Ú{á»<”ßL5«“Q¥ŒÃ7eø´ ÿ(ë2¼‡}÷HA@¾z’¨B6šÑ£|}’T¥â.¥÷”û£–äöj–[1"ÃÙëc0¶Üy3Ë~÷)P³ÁÎALV€­g†3ɧNš#´ãDuö$ᤧÚw÷µ7°™€ûƒXKOBm˜öBÌMSƒTç5iÎ9®n Ê.â-”ìe<µž5 dKêçÕ7oÊod¦o¥S²ÂböiàÔNî-îÉÊÑ2¿OùÔ¦á.Äg,€ó–À}AHÐd6 °7™  £2ÚÖ[~Ù›¸‹õ^Dvbá*;÷‹;‰\‡ßyoCκ`$w ²M<€† 5þ‘T %uØ{h½ÄWFÃ%Ka ƒ­´g¶ zê(ð—8 Œ³ÏÊp¢'ãì‡  NôÂÀË,Ù|*BcÊ`&Û¯yÚà*éÄœ”Á cѺâÓø9ïÙw4†ÙCyÆñ^BÇÿ0¼r¢¨Íz@µÄ5M7ªœTâõ’í“*²µu•A¢ê9§w’ùš7åœçx62}o ã¹}.Çÿ.£#Ňz"˜\ǤóÔm\qž­¯\‹dð“Æ.àèá(ßwRu FB38¡XHT¸*çÜñhLQê¡?mÇé~R4®àò9=ç-fð G5)s °è8³2ý爘ÔÜ]™ï’Ó#ñ«k²T™7ôµ\÷ô´/P!Ó XçwI3xð‹nÈôëBë[2 8`æùÌviîšÐÈäª\Ú 5O'_ ¥Þ'«0ܯ´{БU‚GwœÙ*ý úÏD Ìª‡íþaß6`¸Xp Õúçu™=kR^i B»†4`þ”Ýgèj8¦ iÀ:Ám»]H“œ W“†d÷GšñÔŸ`2Â> ´Aê³2¼(ÃÛ&HM»‘ÏžT¡ë‰Å/×&j[J/ìPŠ„R˜?ô–R*ÏìB)€Ä½:t6‰÷HJ!B@qxÝ%e?!±)ßéó®»þUø4ÓODžÜpø<¸IvÐÍ ¢„¯ ÜŸkô°ì"x4ã­±JiÔa¦‹³÷Ý$v¹(ÃIÂ(ÎNÞÃlç–,p×l‘>k¢‹!ÕˆçÍΓ§Øçeøª‹Äma²€\ÚUá«.7ai*„?)C ofk³ôú˜À]tÏL&«ÙZo©®n/. ßx¾¸ÖÇyüÅ * ]œ’›\ÜcªÓ}qY¡utúÉO3Zê¾»Óe÷Æ ®s†CÐ(9¯š‹^’˜»²`Šk,\<®W3 :†š¢©+ÀȃLÄD÷~_™×aÕ¤†›ó”J˜µu8ÿ _ €½ àu˜m~?ãv¹ðÚøX×0­fˉ‡ÚšÙÔ×͸yS܉›cº§~XÃý¬èaDsc`÷óÀ_F𦅍O?-ÃoÊð´»àËŠŠ‘¹5>‹å sk¢]8;7j(.Pjˆÿ{bLˆS‡³ýظ8P]¶Ôj„ÿâ‚sË£×6–äìRl.­c|Ré¾Kˆ£çVÑUã¿¡y'lú ŠT5ÃX<‚î†#“iu÷·38Ï}HK+ô0QBC4R`PEÑ´PF[CÞ—³ÊHxÖæ÷·c|ßW¢­¹ié7…§J*µ í#oÐëÎkœà®”X™‡æÍ\´õßssM0­ ìb*›bJµ7æè> ߥ÷d°G+A›¶ÚYYm2^q¼œñÍúfôÜžéã•ù]b‰Äý’yÞ‹Ë›‡ð“aåɨ„S^>V¿Ì¶þÍ„QMß'( ï6«)%Þ¥/Á5Ø*XÃáæ—¼Hð°gbërUCÚ|›ß–`á¿eøy ,^5Òðiþ»Éá,ÇLêñ9Ý„~3hFì?ïîýcÁþëåHÆ’ñ¦~t_ý!;q—J´RIê«ïž…K«…HEO“rBÐNtÛMÇ&`Ü'®úi5ÕwgûøäºIµj<ã°“°mOÄb<ó@C¬‹.B$aNŠ^-OT¤Õ­Ò. &hÂ=U2‚m 6ê{ªéÎêCôœ%ª-—[³gt"¶¨Œ,·}~!°.ƒpeØä½¶Gš˜õïÇcú{®ë%®ö.&9#ý\Ÿé  ÛÌ7XáŽÁ«ÙúpêõÜg†´ŠúYiV˜ó!`04ün„qÌK`Ä.ŠÄ›\°OÊ*íP%¾#W8; Rí›^ì?a‹¹íìxàDd˜‡`ûw´ž|.ßz¼01º7°‡04ˆ™)c¥Vjh[ƒ3yîÿêAÛã×6맦ø°¹£eçeøMº<“6UifêÓLN.§NM”¡™R×dI$öÈ·¯Ì3?øÐ0WòCÕ¬ˆÐåeŽÒõ€2N`Ó5›j>çñÆ @œêÖŽÔÎþ„Šd'…Ä2óÄ77òâ¤Á+tíàùz;Á/†ÙVVºåÁ¢S¡€%¼ùóv&ŒÃþ;-ü(Ò™0ÌìЙ Ð4Iñ;v~u—TzщîvëLÐ  !OCkëû¹Àé ÝQp€XfF|vë °:xcpÜȸ…Ƽ o}Ó«Þš{ôfð¯)ÛŸk\hÃl:å?u-b«AÞ¶­-ÊV=`l!Ü!ÞÇŒM WJmBÛ)ªö'´½b_²ïëA/5¶é&›Q÷#€±>5$`Ç^mÀöÒ€¿›DÊ ƒmx\CBYýa„ðh$HCÂ0³CC‚Àbh¹ÁŒ|, $£Ò/äÙ cÅàCw,ØÖ­`•ÅW3Ò­0ÌìЭþQ«?KÖ,¥RnK:‘¬F*9íg ‹ý*y ×{mÅÖŠOYlû×»@`-cE¼=¶3¨÷ØÎPLùGB(#86ÓB 3;Ê ÕÎ>»ºDì ÷ûkg³S›µ3¤œsng>Þ;ôÊG †èM€cëtnóÅÃÑ•+ù⻣ÿ•Ç¿endstream endobj 1163 0 obj <> stream xœåÉr·1g&ñn!]~0ö%9%¶d;å$^èªTÙ9h¡(UHJ6)[Ê×§˜4¶yï‘”â8ÒC4zïF÷ü°áLl8þŸ~>¹<â›ó£ŽDÝL?ž\nþ|zôÑ×R™M`ÁJ«7§ÏŽÒ;b#´dÚûuš)#7§—Gß_ŸÀ¢Êk㎟ÄÇ`½<~™GoºžçÑgùñÊ£¯òèó<ú´Þ8¯ ¥PŠN8«·ˆ×ùñQ~í§îk—Õܲ­‘ŽiᎿ?>ÙræŒTrÛë¼Éã0¼Ã7§O{>\¦â·B;”ÚÀ¶Ì#Ò¤_ kÖ¤¼‘u¶…Ëh‰¸ˆ.í6§_~ðö*?Þä…jλûñdë €mÂDØ ]XÉ ®ón-¬ÚŠwë‹Á„*ò¤¡`}ôµžj½­°Ž )€³ÆªÄŒŸ lÛ  q¥$7x\ÖÁpÌÏŠ‡,ÏÖ{À¡VFr‡ÚVñVD Ï £B1ùE¥ŒF>Ãé:(9Áêy¡¡áY8¹ÙªÀ¸á>z H®T@e g|Ä ‚j‚öi­JÛKfý&+Ü3FÿžGO»>[Fq§G_áFÆoί4€¸ù ЧGÂˬÝçœ`s '‘žq·Œ\}s°™ ’ù¸(’™zºbdZU^™)ræ®ø6ŒJ&|ÓÝ¢¶,i…¿î§Kûàáu½ N0nM‰”r:€²ŒôWÿ&ÑŸ®¿)å…ó‰É¦9À#šƒµ‡áÈÙÎÁö êO8;åÃÄN–;nq®æ‚yçŠ]*îÃ)€zL†/ ÆIdü-,n@8@”æ§%ˆŒµIx¦÷Å3Z9ŸÛk=m q9PIg{ã OBÊ&xøK1…ŽŸ#$šÉ úyøQ^…‡“…3š!µJ ÷(SjB·VõñyBŠÑ"é— ã/ÞÒ*:83U¾`Ø”“:þ9kºHE7œ-½Y#ç¼xW›ÜÄ•Ú$ru­M’œv'|VH@Ô& K@;ëÍÌ”Í!­ð€Ÿeäš–`>-ˆLšã“;;—}w¾¬Ðk#àbk*…”DÜ©ŒS¡Ó_ÒM¯¢}A¡T°¡U(\ ãÆOõå«(ú"¨bå†Ë@{p]Ly™wy×ÐB¿ÍPwHpϬXÆ—][ÞwA^åGâOä׺xל0èó~%ü…(+ðü¤•(S™¥R8a[ƒj¤¨"’qÂH.»˜I´RùÌ‹E»©Ù.ŽžåGbM. ËÜéãò&É´a®b€­– Ùsµ œ-¶qÌ¡Hô‚Ø yâà^v}‰‹ÿt:bN3½´%!«Âˆ˜`læ!¦ˆ§ö䢑qÅ“+ׇ+ƒ‡‹Hm'yGY}MÌÝ%º‚£('…áKµËÙ)@“„˜/„rúèÇF7ã=šC ž5xÞ{šCœmÊE’+$­ëéô6Ì)w°Ëƒ“yð" "xæÎ¦ Ôùø¢ÔÑÛOŽívÉŠx,3ÅšÓ(…î"Í2ËÁÄQh'TÁhhLÀ;5p f:YÜ’´ö/‘G š~œÒ ¢¯f§s/ˆô¶Þ$È5ï÷e~“¶1eªÐÃðìB#, ‰0ƒ:6}[€ )tL¸9˜}ð=^Z™Ò)‹æN’C¦¤*LNË­³ÿAµÚ Îz|‡‹ìßQßò圯D3¤,xºr†”ÒÌkykÆÒ0¼ xÇ¡5rL½ÿÐÏï„»Sh<`ËÑZ ©¤t[Gt%eQå—¶9f—HRêu•s'š ªÙÒ³l\’$Jp=^/J?s·TÙQm sv•´Žs‡G¸´«éøA龈ìãjƒA¨½ÃD,ÍJŠ$$`˜dŽö3¡}ãIJOûïfmãå¬"§CbðïÃá>¿ÁîÛ…2Åä.㥚'ár<øâµÕ^SöÚ:(ÀȶÎÏhÖ¿JÛ”ŽÕq¿€ÿ´Ãí s©ÿ;nfºòŠŽ›Ä¬Lœ eÎ }ä¼¼|2 m&SàáE£Ä0Byä餯eac:·mñ—j@eܤUl0ûäù)— ‚×?¦M(f‹B èNO~%KSçìf/«ðÁñjI¤D"8·fxݤ¹. ®þè×éä‚JÓ«%F{äÀ¡[²ø=4佘Pð¼Ê™M·e€‡ïqŠŸ€(Uüüøvåõ-ñ7w U€k$ht¿W(K8ë:½ ¾ÞžTi·n<å,­çìnpmt%z¡3¡¾ÌAð?òãÃ?Ì£ŸçÇ/òãƒüø·ü˜o ûwq1þôª1.èÁ÷^ ØÝûÛ }¾ÿEóZåÚ)jï(¨]EÉ­½mLJdQrØ I}ñÞc¢âû—ߵLJK×AS¿Â}œÞ?du·M˜PÜM9(¼3TµÉ˜³=MžT9ãeLû G-XÜõt"¼±M"a´ÙÈgy“fc }-s¯®}N_Ô=ÕtOÊCÌ2L7¥Úr=x20¨B%Mf¹a-ØÚ]øõ:_ÃÆy“AŒ~«ÛŸÆîÕI¼HÓ¹ýi\Ôç8ÛC,e×Y(èG¹î6¿·i3•Qd.ÒŽÁ—Y­QÊÍĶ0WÏÒ(FÝûÞT€=CίħoŽZN]åÈ:™<óvU$–Á|Z-ÀY“E¦§pþÒ}”m‚ ƒ]€KOÙ‚Ò¹ÌCΜˆ óÆÂ{x9ŠYÒWX9¼šc½°ßϽ ±‚–0x_r(µ\?Rb“ä~±Óöø Åå(C75 Žû•š¬ûWˆ<“:?ifê㉜\¶NM”¡¶b#¯dI$õ¥Ý kZ1WòC›»Ñ./v”9J×eÀR.qS½„¦ÉãÍï5—öfä 2 èÏ<°Í|$Ö™G€óîÝ‹•Bˆ©egÏ×ÛAô¾cWé–·÷*um›-^î‚íN}I"e–÷Ò Ý”ÒL•»¤¸÷*ÝLY8ÒO'V—IÔåøž÷6L×jSe/]£_C<é©Ê-å}Wè ë ÖÞ* ¢c=Vã:ØJûeä6Õ¸N0k⢘ÝÕ¸¤`)>6Õ¸qô[‹õÌ9-:¸Mè\XE³@¦SnÆ{̬VÇ+3ÖÏpHV ²p %zq%îGÒ.·0äqm.÷± w+SÄ$8l4©D\¦S\ê’hòê*!Óˆñm8…°3„ÌKUÕ4µ®–ÚÏÀ¾¥ÅEqUýÍòüvÊ8A8D¼“Í 8mk "\W)á㤄]UäQ-pRºÈG]‹ØHcS‹8Ž šZD„T{½G^_ääϨeäÿí¶Z¢·¶°ì专%ÏLj®ýa¿ ÷k=Aš/.qîIǃ}źi¥8:ù¨ãÁ źéyä6: ·KK#©{Ðñï«ãâ´»ÂYï±Ï Ö0ú~+0P ôžf2ðoscÂ&Ý=´hò&Xh3Ð.ß@,UÚl•eÒ5;Z †‹Þª­Á©¨]î74ˆcìäoB‡eäV—û*Wó|<«k:öÓ9º¼Õgô  íòÉÒú‹-û·ÒW=:mgí¡_§j.Äžõ”rLe2*~Bj¥Î_ƒëEëyð[¹1ð7¸œ‡øA™nØ‚_ïòù³;¤Ø¦*K‹}[|GÒ ;ßü¾’*¢Ìý|yf.Ýõ– “t–µåç8¡lºKÍkªØoüí¤EòX¶¿H!Vvlçv‰ˆzŸw2Ëã’¢ùêè?ƒ1E:endstream endobj 1170 0 obj <> stream xœí\[o\·~_ôGìãÊÈ2¼_з&v/pšÄVI,¯$dÅ’•:¿¾3äáá‡gW·µÝ6ȃi†‡Îõ›á¬Yr&–ÿþ|}¾àËÓÅ/ g—ïϗ:\|ýBx¾ ,Xiõòðd‘¾K¡,3\-­SL8µ<<_ü´zy°æÌ8ã½\½Å±RÆI·º ó¯q¬-wÜ®ŽÖÒk&¸Y]ÇiÃW«7dy\¢˜¾Zòþ`-·&\QoÁô›Zèr²Ë«˜UÊég•Ñ@¬tÌ(»Á@kåWÍR©ÕIÜVs+ýêÝä{Üõf9P ¹¤'\ã†qY“v•¨7Rµ\Ç‘Ô7È)gdëá/œ_ý6ÙÛxiÌjC8ö ƒ¿Ð› rTZ‰¼{Ü‘ðdfu£«Kr aõ»ƒþm!„M¨ØájŽ W8vN+8QISTnTÛ·exV4xSfËðj»^ÃAú!®¬ñì£cÉ1H×Nï^£¼ñêTô›,³úVK®T¨Z#{eƒG´2Ù”áñýe!Lhp5‚ÚƒLÀ2¨L†™‡ÈDÃÿTƒbʇÆ7€–K…5Æ¢âÒq—¹çexV†Ä¼nø<±“£2üù æ9à'&¤žã󹤨,º×Ös¥Ùëî’k”!Q¿Ó2KÔogT¿§Z_6 ¨úy`ÄUÎzÓœœ¾#r<*ó.—]‚ÉÂ4b|WÝÙ*`$‚¥©~R† Þµ!€ýL1TávÚî¤{g²€hSmªT×HÕXjË8bi¿;3n"½;3.»µÄ8%oøVß¶aƒ;3n¨>_>ùiÆó^wO:írì}ï6 j®¨ÃÒ‚y5æñ8q{È–-Ç"š¤FFùœÉ´Scž3ê¶0SãAS'V81‹’ÑQ¥¸§{›Fya}äƒékg£˜@7ë_ï}Å–ZBÓ4Q q½ÒE;à÷o£|@¸0S LÅC–Öiê@Ó Z®¤kH62$)ƒÌTªr©`$ŒHÅPÜy*ýAû¹²¥C'òø©«Çv#¹T SÊG$(jœ¹WBBJ[î•»SWä>KBÂëÔµ–#äá1×´â8ó05×$ÐöYBÎ>ÜÑ÷­«´Üë­] Ò‚B*Y½–4=y»j‡tùÙfî~Í[0i•ž¥`¦\ÛT)#gxyÜò“÷ª\¯ì¿FÍ´OtäºÈKï´`iXЦ‰âÓþJ,Vï)Ø^ 5pC)gzs%h,Cðü*6ÉDWãìy¶¡€‚MA[Û*£ß§ƒ©jy¤$W«ÇN«Ý(™9 hÊÚÀƹkª¤0À{'müRî¥ØŽÇs¯æÛ÷šîI¼X5=Ý÷ÊM¢¯vTuáÆI·ý¾À’N÷C<ï&=òÖ‡]Äœ|¹¨º9©êϼÛÒËRvD¸:5¸žGˆV $NºyÞG3„ôŽ9]úÝŽWñ°vØ@†Ö匇ÔÌZÐ5rÄÌà^hïÛm㉄íÀ¼ ãKH=ŸÇðÉFÄŽæ§HéÐõQ™vl —‚*]¿†.8i_û«ûA×Iž×ú«6#šóW†‘·uÓPìeñ¶Ó”;’QÄØ¨;ué¨iÄ —nMjw‹;ž½fé= ,Ù¼—E%’4öœ¤¥¦úžë´×}ì7šÈi-±èbD¹nvÅR¶Ø_HjpTfw覑 xî‰nnr°ž»ß{ (fú &&iCAžy@Gb/ôÕŸ·£àÁ˜]V^áѺ oÎklPNaŸ\Û&€ÓZnoyÅ/·@¤ýÃtðs@¥Ýc3±6y8/Vs¿Ç[‡n‡®•ÃÇ®-ÍÈáŸÝ§»@86ÂŒ/µ½`9ÓVìË)Êš°½(ý­S|ηþó>çKÍB‡<ç‹2ÍÇa×ãjøFé}TG´b üªÄwàXñ`:.Œ3÷zØw˜óáà«Õ<íãWGnוv ïhýÒrAp3Áœ§Ç÷ß{b€°1œ&€<ó€.ØòâÝ|¿]¬VCÇ@l@9©ä´g€T¬ÓΞþ¨=BŽDèn™”$ç E-ÈÇ鈯7Ÿ¢k@í¯k@sÎc)ŒÆ“娩Â8s–ƒ›7i †¥Þýw $Mü]cýe2ï°í™Èd˜yˆL´@(q§®?нîrô¸;$A~‰uÔðy˳ڧéÎÈ|ÆŸ³WlNá² hýݹ|U¸ñ¶ Û—'½’£z‰ÿÅÞŒ-¿ý'ö-Ôƒ„ÃS‡ÿ|Ķv„Ø×éãØÐ6tAüå¹?ËÙÃlcÂHcŽ·ùåÞÒ1i´œaá¤(½%þlߢ£#²ëÿ¦£cRªßgèùd_8Ó'ö°×H´…é#ÂÚoM‹lȰ ““òèZ2%°š¾6®TèõcÅÈŽÃ}ü¸øqNQîendstream endobj 1178 0 obj <> stream xœÝ=Ûr¹qyfå#Îãaj9 quž6ÞM\.W\öòmíJ¢.e‘ÒŠÒzå¯Ow3ÓÀs."WNÊ pFß»þ´µéù¿Ïï.ÆÝ«‹Ÿ.Ýåÿ<¿ÛýçõÅ¿ÿYŰ‹CtÚ™ÝõË‹ôµSÊ 6¸ó0(»ë»‹÷ß]^ƒ‹`Ǹ¿½=Zµ Ï&ÚQÁþ9aŒ1ºý»Ôþ }´zôû÷ %8eýþ#•Wb1çB7Àšý}šn"è¿^ÿž0c1ޕ׻+ˆb£w×/Õk G€è÷¯ €õ6Xª6š`i°–Vƒó*"ÈDA0ˆèoyÂøãòõº9áwóWZäûë‹?ÑJ6ì^=\Äq÷w<‘ÿFÄG…ûÝ900h»»Ã/€£ùÃÛ‹ºÇV!>[„ ´N§öbAòÕ‚ä‡ex³ ß/Ã×õŽëŸ1\£3ÃzÂuóëm5L¾[¾¾Y†Ëðãà"´xëFŸï/‘>,´Ž•‰|/@¿º¼«Qô EˆIOð$Ä ñYB̨ C†Œ@\N&ÀôøPÒâa€<­lA–t,® ÏÇ4Õ!‹ Æ{™¾Z{x“åÊ’7¥dÜ!ì§GÝ%­`ñÞI”²íÌ= J¼&t£EÚsi«'yïü\ZŠŽœžçì=­‚…žœMjÊu$ù”´<Î'‹ä£ýÄj„. m0 ŽUiŸ_Ìš¤iuÂq Þl< î „|ÞÏ,OʘâîÓÏ¢ƒ¯(Œ/Ôº.(Xü°³~©f€Ãå•×0ŒZõüˆjÏ„”vê˜íŸÀ’µàc³hŽtAÿ¬ƒ¶¶@àyoÿIvžÿ$>x¨Ìm³²¸ ¸&+̓YÉòéè?Ö6‹¹}¢›)ŒÍ½ÇË8Ë#Í"aœÚ´%R‹¬•fÚ"Ž€8ŽèðN4*—ùH’‚Þ«AÑÄVÑ›ZiIùMÖUo¸ ÍàФ}E³ƒ„ÊwøumR}†cm‚Ö(~ÿ—½˜.©$·ý>¢w•v`‘0)?‰Ä£g¬Õqÿ—KZ:ˆYí{ð‡$’¥õŠÁEÔ8é•1"óWâ$åCúq¼O_ Èz}þÜñ “ ¥]–fåf¥L³8ºÕ ™_žóMÛfÈ#—ìò™ X¡-GQÉvÎYÒâSg¡J€Ú ‰rݨµL2‹Ë%*‘€ÝvWn½§·±Öú(‰ïùö=K"eu­â˜å¾AÆVaÖp¶„ý2IÂèÊÀ¦8©$?3ßrÉš‡mÐÈÌõ8YL‘æEÊëtØ7ó¾íÖm†R+±[ OÚb)=Âs˜À+¿6¤QèŸàO _”0Wpø:Ê1]5Ú±*ìÎØÁƒÛÿÐáÔ¼úƒj¬>™/Z½Â.‡•ëÓŽ­Ñ…tL KÁ–Â$ÿU•ÞieG9y›Óô%UA¬Œa(eªo¯çÍ&x‘2UuøO«„~8ú"IS¸X˜¤§ôƗÑߥ È(FxSÓ1€}tض2y7eØß73€‘î+V‘G€ªV©§Ê8»© ½¨T}‚ü\WÓUJGè~… až>,ìI§B)]Ô™»ë?\\ÿÛûoéäQ)ÙšîIDµ­E”f{ÕŒ{š¯KÖØˆS›jæC•9âÅq9xŽÊ{vù¦°ýÊ Ï.q~×fIPéïLû‚Ò›n( §,.4þ&Ä¬Ž c-Cø³$”Lx×V±˜<»/éßGpë3ô(R›j¶)ö­Œ¬o’ÆÂQà&•$I¹Rã¦e\4h©™¸IæsŒªÐbÒ®KU³>½U¬˜ýu}L(cWšêµ§¶í?UŠ@GTå=^’<“㌡Y®-«ªò‘t¶Ñ££¤Ž4¡:Z c#IĪ>ÚKðSKKŽ`]ZÿÙ;WðIǃ|HKëPx †ŠúH‚Íð¤ 8Œà %û%¦D4I\»¼ƒ±Q¶,ïpu¡.濫ÄusÂïæ syÇ`Œ„.üƒÅ8(·»Ã/fÌ_Ψå ÒéÈbŽ×H¦WËðÃ2¼Y†ï—áëeSlþLÀ½mMÈ2Eª­2ê¿]ÊKï"Ý-_ß/ÃOu=‡¿Þ.Ã?Ôe þº*MµµUÈ!ÑžÓÂÝœ@CÀ)ÜoÏ=>=¼E3ì}‘Uœ5|\}f@v<‘¾È9pŒÆÎw3âdnhˆöÌ£QÃqù§Ç‹F™\§Æ Lòj|Vz«„Š\²0«¼"îáuÛq~H”À­!+Oþ¹s³µ{WL© 2û,1”´1TV¨LO~Ñ,5PKõÊÐOè÷³c¨‡Ò–ö3ó¹þæòÊY3@´äÕ¹*ÿ =óAÿhµí Ô÷ë°à„÷çÇ}é=KM¦ôލ©IÅAËD¨¼]é1z»äBGQ¡z*I’ß…|ib™gIÅ$Á•"$ øãˆÆþ[BÃeG:O½TÛáËÄ|F©ÌÌP!2 ¬Ã²¤•4&78Ø#C À#ÿ2¯ÉíÈK„¹ B² ý»Åø>•Ç Ä TäV–¦ ð?¤haM«ÁªtCÚrA“—iÁÅ?Þ½ë[ij…³2NˆÕKê8WWj*>‡ˆœ«¨ "q9z=Ö-\ž³²Ùà?›G…./"‡Ó¡ØF¨º Ê|ú<¥Öä>¥&oðrU攣ÐãÕÕ»Uª\Œ0ê Ráäã„P Ñ:$bò )#…þPáØ¼›Ô]¥þ ²Ö®sâÓÒà6Ym+ýËâ–¯|x9Vf¢L~бkñ2OÝåì’)™î›‰”æ©Å€AF*­þ¤Èí¨&§˜8Øa4f²ZÌ“ogOyˆ“3§4Ô˧-\!/Ó^]T¥pÜ„zàóeÐd­Àô«Y±Š%××mØmé%IYrè‘$½IŠ9ÛÍÐé´ý“½M‹(7\„‹KšÊ»¢ßEä°^®E䘂-Ï™1Ñ«làIb@¢éŠOádĸ½™{a(Ï9‡Ü_£†0nk{¦\¯v³Ñ1A ¥¡ÍõvëT^ñ@Æy ™½Êx3Ãn¤¢³y©óf¤¶º'n›‚i¦'X3ÓbeœÛ+AfYõ ñÛö0ëÄ·ô÷RŠ[iÝ«µÊ½eµÝÏr¾Ùôª„M³Ý¸’ÄÉnkQÊ‚ûØï“ëÄ&’§?æ €rS⬮A wtlc觉Nï7Ô V[§–ºf¯ä²uƒJµdi€eø>G‘”•ôKÉ U°_+—PvÈlþÕëjÎëÈÿº Šúê)íaˆ%GeใS{3ho$Ê‘s sü*Qn8xn¢<%u"2©-biT¡(TpÚ@3èñ„8OÿfY¾™D¶W–-Žf·iyÕë,Ú©ß.Ãgu¶ji²NÄ„çasç)¤bçÕVªÿµ^Ñ Ã@g–0ÉÛ³‹(#)àé¨ÍfO±é¨3 %‡1V"©ù2¦HÒÑšM «Î˦˜Ì‡%Œª22¼¼;µ§y°Ê¢K´d“±4jÊ>Õy¤Š°T\±›E6ša ,>4Z»xü$­]:ê*ûÉ+éèPuÛ‹É4FS-i¬Pë9Ûÿ// C€íˆƒ7!À4]‘!ŠÐ×¶,3­ÖÑOô±ëP¢g¦r¬ à7¸Ó‰*IÄ©ƒAícž[¦^¦E̶9-râ©‘“ ìÓí¿]œÜª·Š+‚ÐÎÛ(¨…Š11ªp;£Ç:”Ld½4nç"„ Eºç`Ðð¨|F©…„ã×®µKV$,üôl)Šˆ[;ÍZÊÏ•ñI_ßnPÈa6!¢fÑDJñVÍzLjÄ-žü?4žŠ£‹×pªñDBolU“-œË|¥ã~.o– ¼Œu—D¾Ñ]¤¸ ßÒW-5*õ¹L~¼N?ó¸"õÙrÏv@J K]•n&ØT)Ÿ|ÿP$âNl?êΩsÖè:ÁÖÝ乘¬'XѿʙSÞ4ø”t§+€gû°‰U„•½î•)˜ÜÈ•‰è¥“l®‰®¸)LJýìWÚ•'7ýn£¼4íà‘Xj¿%‰uŒV%ŸG¿J¯ÕÆÕõ›DÌfË—©ËšY=Ì]mšË· ‡¨\«­‰eF˜¡— °ñºÎ‚0U«3Oa'ÝæKFùð}óÞ•¥ž ¹òFGÙúAC4u;ùÁË·=ïAVC{­Æ3  ƒ±n°›é‰R*+ïÈéóUÌWSî­| ³šøùu¸mzVõê«1B©3ôu+t›n}Žþ(/’×@ýx’%S~I0èÞO} ?ßÝlN$qHæËtÿ¶dÙŸ„Øè’Å¥c•Õ|—7Û&]7&£¢ õ<¯ºÎ&£Ò0á¢ñÞ¯L8Š9èfbª,2Õô¯Ó‹™Ðœ¾Ù¸CœZTW÷:5º cò¯-‘±²g3¯SùºÉ¦nÙïé_µA×YÂJI,Ð ÉxË-s•ôy¤ŒÞ$Þ¦Ž²T6U~Š]ùKõOª£<åÿÃR¶jº‚Ú ±ÃòÔÂ?êõT\lmK°ÑÖý÷YQ Êfù1>ª}3fÏP´tã‡!(´ß!ÂâÕ¢Ån34»ºµÛªoKU(€¼NøWiÂiBÒr”Å¡r×1ÐJƒs×f`Eq“ûU9_=,íê„Æq·VŠoý|Ê_Ò:³·€jz[AÙ‡ÖÖïîð UUÝüåŒP1è}Q›Z@ÿgÁCôSÞÍ8·ßÇ@Æ^-âFÄkÙIy¨®|¿ÍåeS›IúêÚéÕ%‡„®M€óÃÙöa§rwüŠv‡0ð¡yù˜#7rª«Vç€uïdÝï‘¢nåy‘ÖQ/é±T…Ûà¨}Ö4LÁ”ç§Aª.º†T2×úükRùRLí¨ƒ±ìY§5ÈYîЩqªük¯—É ØË,ZÖ™6Û¹ MAk5˜_¥¡oËøPÔjTiA hú§/g¨4ˆ8›•Míµmÿ° üDMíyÿ<|¶ ß.ÿÍÃüš9Ë;‰×w‹K¶z»ˆ¿hZ×”:v³nn'ŠÕnéÙ¯J3¨}ÉâV~]ôXà¾Ð+³*ƄȟYZ´¦´„xîK¾ÙÅXå·¼Äs_$«Ü^ SH <÷•ÑïBp1;6ù­/ £ýªX“íçw¿fGýqŸìRŽš±üNCÛ¢ç¹<.eÂüåœ÷¹¼B€¢ƒpø.‘ê—)Ä]üõÿÄ]fˆÑTLþ…êyÄ:Ù°‘†€B¬3vÖ‘›¹™ % Ô\v¾ÓO‹@T'g+×~[øgbï½×É^e¼ÛÏXMé Bl´¶[“&±¾C§R×qÞÄ7êÐm.zh¦ùÖU£kÊh<èU^Ä ·í(MQðuŸ/¢Õ±ï]ñF­9¯/}W8!wD¿;ÓÕyÇS¯BO Õ5ÂOKNz‰H$ΧÞD)$DÒ¡ñŒóüç|NMïú­:måX¢ Û%¿YÀ熬´£2,ÞpŠ)c¥©Ó`Jþ÷ú2z5­µaÇÐV)j}WlØ5•QâÛ¨0òü+«0ºLŒòNyBdþŽêT)É@N~ÖxÎ3ªà€t:ƒ>L•´D1ùÍ8[Yc²Å·íyvñóBoĘS< ¨C^'ò`¬¹~¹ •¡;ã|2oèµxUüRNyS KÓÑSHÏ„ pz¯ôõòUb+&¿X†o¸ eÏ5@ût›hFDîáÓ‚w&D­{¸¦­éùéƒÁI§h¨è¦É§Œ¥ìùïy‰•¤Q7q<|ùOÞ b'T¨çÌ€¸è¶dq :F¶õ4 ïÅ G=ïÆ»£û¿Þ iQ ûŽ{Aizu¯ÓÎZy`,F#¦ë[Ì÷Údeµg›:;È­Ú& i­[µW4>üRнÍëDGºª¤x{ú=Ob(×"ÌÙ721J¯¨HR¢@²ƒr»ZtJ3Ô/åÉçdæ»@hOP Ó’»ýÚ]}£TеÖümÜnD/#/¦Ñl •{ÏÙõ“¶l•ÇÙ`é·i•ˆœ¶ôñeA¦ž-%ü]>š>k×cí¿?$(­–ubjH_n’Ñò‚ñ#Êvžß[áFË:Ý?“©çе_ûeyµ™ ­†¤£Ì[u•ožei´Ù Òx@ß÷ŸžîÑ­v»úSa¹ðõE¹Š²ø€ú^Æ¤Ž¢^G‰wô„xþpNéIì€Aâ©„”©83Ï ÷­T_Ó›Au‘‹_ïÕ$ºªmBÿ=ˆ™uEª,7'=Eüèb!Æ_ö&yá^(Jöïl’Äê6RñúkLe¦GƤ1e ì½Æ÷" ¬T}Æé­4‡ uÝÔ$k«® ttb¬óýÀŠº@DΣU²8äÆ&Â`ÇÁ"Á«ìöÓ¨‘¥ò.㣿r<µË„î•©Žšü+ãB«»k*uèèW•B~^ÞðC^Üsd¿b2&e!P'ÏwÎîá^44¤¥á«:Ó'¶ld4VVá;r!ß*©n¬déÊyÞS™†Øê݉ Uý™^= Ëñ^Iëö]„Áj×órÛOû÷ƒ¢¦`¼Èˬï¤B‡$£¡W_17Q×÷K诀n9Œ«+ÓxòŽ»~Ÿ¤…|ÈY\¢õ®Ð'Íè¨GsûYQPÍ€MP©é u,îf=Öã±À,Ei¯ý[ÀÓ!7z‚R§ëv4²µ+xNŽ=C<‘M…@SJ³ öWhF.‡x¿ºÐOo‡Ó;¤ß¹Ø¥‰T¿G¼Ý`³ôÐ'hj‡é·B¶äÛ|+zõ4úúÙû¥ ¡;õD‚N/ýŽÇuŸM@‹ûE2©Ïdò«þS<#c9»›;úé>ÝQµ|§í¹¼&ÔÞD)¯t;ÓÖ±áæó~¨^€(›IæÏR—WíP!Ðû_ІÀ¬ïäyz<ò¬Û6Y¨ÚŒ-õô7©)Ë×?_ V¢ÞÓ5D”±[޽]^¢éÝ«`äŽHŒÊÌÄ<ï$À5“,rîmÂÑoD!SûkzÊÇuߘ"ý¾NÚ )_åOU`-úü»ìµndîjI-F‰¶ÄK~o»ƒóÍ©Ðð ÚÔÔÚnèÚÍá6öÚ¡vXš\¾žšÒO¿ìÖT—ÕÕ—U i¨HÄKÕ~ø1¥Üù—¹ÙE-ŸÇC3š9$3R`øø¡NÔÚ ·»oèïÓM_Îiw¡§49/§´»lü=:±“w„”† eíŒÔ÷Ëð—*O• ¬ºYªŽ)?Òk(2Ts‹Axc¹“ésb4úÃ8÷â³øÃ†òï æf' ‡­ßfX5AÕ%?Äc¤7@¬EëbaaìåùÑù ÿtñ¿_õöÔendstream endobj 1187 0 obj <> stream xœíËr·ñÎòGì‘t´0×1±]¶S©(¶y³s D=\)ʤd;_Ÿn`fÐÀ`v—Ë]ËJ\:‚0=~¿vÞ®¤P+I†¿Ÿ^ÈÕ‹“·'*í®†¿ž^­þv~òÙwÚØUÑi«óç'ùµR „°r„±zu~uòÃéû3jXú&-£ úô§²{y¶¶„Wpú}Ùý¼œ}\vÏ»¾žvÿ}þ÷“/ÏO¾%mX½¸=!íê¼ÍW'ZJ'Œ'ô¬°vu…;Æ ¦×'ßß÷Î!øúΗ·eù3-A+cN/ÊîMY¾,Kv»7]ìÏšyùeYþÚÐ=C¸#º;aµ9ýñ´œxÚ¼9¾.»·e™@XáŒX×âþ¸@8ïøzZN¬3N|ˆ±É8Z=€MB€ƒšM_ì˦éÖŸž­•ŠQX3@ðÚ¨ iyQ–ÏËò¦,ïÊÛØc¦%‘eíMÆùÕZi¼¿U«óKDÿ€$×x£VÎiIô6F ¯ó?÷!¶1B§„>ûqWJ/ ¶}1þ©,¯9»2 TbAB?„Atßt¹qyüxVó@E)l4ÈÌЙ·Åµz“wïº^–ÝçÜ6â˜v-.Ênßjôu·%÷&«ñ¬<ÖZ ¦ò^€ñ•Õ¸ì¾ù]Ù}R–¯»HÜ4øÌ„âiŸÛîne¹2ÂÚVZ–ÈiT,)Ø™`„Ïàž·w.j>šÕ-V¤Thz²ƒÏÔ./ßx÷&ÜŒ‘÷&ܨn§õ.„›‰ÿ‡µ•pî}öŠšµ²N8 HË(x“iùÅÙZ •1Ýß-­Â›â6D+Ñ×FÆ"Gk‚B àÒG«%©A N%õŵòÊšX¡+‚5Æ‘‰ŽC4zÀ5ÈÊ(âZ¡1]›ˆ¡Þ#¡J¦C=¹´,Þ†Ä5BÕFVc`µ dD#ËÀ!Â%Ђª°²Þh ˜®mCönÚÙà º1R%”6èÚ¸‹œ±4xMT#ž'9ét@Å-̼Îk(ÑIîÀI/]*@!•& •1Aù…Ê‘PÚt%V élŒƒ¤d€|}KO:¡ƒ©ÞÓ b{¨Ñª^ŸßÙ Íp"ÄêÄmFÑcÀžç×9K¼Å¥%BVo[ü×X¹p¾¸ ’| EÑå£=,Äi´w§ÿY€}™‰ðXW½Ö ãL4ÙDƒSW3¬~…Ø8R.T3¯æLÓÎ>jæ7ErUÑV@0å{Ö=ÀÒ²*ÚÚ¨€7ˆ0©C2·ÞãéÐáaÞw;hפáQ2·$¼. „Øl¨»'&€ïóG&ÛkÏÅ“¿‡£þšÿ-¿CÎ Ê5{”+rGÁÓù‹òÖŽè¦#ÑMk]@>kDìIÒÔ=Bk¼]Wž•ÅtÉ„Ú]"_‰þcá"Ç C@+õ9F"dEŽY¨°5Áb!ýËr©ÏËîÖ¤àYï@Šþµ×È"Õd`ßtÕ…)Ñ]efš£%Ænä(rÐz0û ýÎZ“ÆæÉ—XD°E•mÙ?¡§í®ôDv!Ö#P*­FÓ'“ ˜•û8íìcÑ'SéÉRˆ$ÝöX#íþ±Æ7< Þ)Öh˜îQF$e èWÃ>~ÏbÔß²é 0Å¢i›…¨<¢‚aãC¨"Z$÷CO›Ñ0[ø3}wq7ôô! z*Z2¬À9”ž$5)Äig¯ºM@IÙ·JÍïV¼ÛAjþ Å;²ÞÁ26µÐî!lBèù\ͦÃïRözüâöÇ,Þ¨š¨ì^ ’£†â­¦}HŽ1F° ¨°Aœ%¼†Æ JäÏÀ·¼ñ6šx=Hþ? ¬Àv5Z]*ѬQéð¶ºÁ >VqV–y²=›lé ôÔÁ5‚=ì<„¢˜§BPG èO¢èT"<E•Ã\"rŠ;¡¨ÂA»ûS”é<#Íë²|õè¼Ä7ùJ采PT¢Çô{Èh߇]—å‹CÉèñ(j¢’T’,w@Q1:Q{È(£#î³îr+Eg­% dƒÿñÖ‹^gÉr Hÿl-•;ïÙZuòÏÖÒvÂ~ö'çŸþ°©2GÃhó¢K±Ÿ{·É 5Z󪼢D@]Ê+éuR‚ ŸNZ"#‰š0–„Ú¬¨`45„6SGL¢ð7Ëhç+^5¿‡k ôÌ…&ü“¦¦6rûÓtÒ쎦. +ý„)tk‚2ú¯Úû•àp[À§”B–´áÉGG°û a¿…z]®ø¢¹øÿÞŸ¦w]\Ÿu¯ø ciýáhºöV*‘뛥Ÿ«[sì¶L\X÷ñL\ÈM\ ,ú:B$¨•Öh•Iµl(;{Õ²1Ï Ä˜3þ†-îßi†-PO”žºË¬‹»rH­„Úë ­ÐAØPõðë¦|ÌM/ÝHK6¢:ò†¶AH¥Ç»vc‹]ëŒÓ<°Q(RבM;ìÞW¦p]?ÓÕ4iŽù°_ŠQ[@x9Üvèˆtìu>á¼jÆvˆÈíM2OGB‘¯´_ãôø\2Úuµ^ÇлË(äÖEWž‡WKô;7½WóI¾žÉÂhDeƒ¨ ’+~Dœ­ª{6nEFpã]’ŽqnÜæËhå¹´gR§9&®\­–4’Í4eEÁ<Ùƒ›ÅgyB!ôn#3£jeyË&hø¨ ‡þþÌõ¸ì’„';¨'¸tS#"Z±C4B£œs—=Ù‰¹G”è2‚^|ìE#‘QÚWZª $ùmí}fÚØç÷#/› ˆ¡,¹µNÔ÷Ôšs³°u7÷ÜÚ¦®ABôU€ƒ{g’Ö`fiY2¸g‘õ®²ÖhϨÜÃ$è€gÕRL½5ò壓c*/Ó+‘$1ª.M€¦¹+î5¹j­0ÒÇ\Y×èe4õ“·ÅU 8Ó)ícºÉ3í1G¶¦e¤õöšY|H¾ûÛY@t5*ô#rÍ3³:Äø•Y§,fág¸ Ç;PLó¢»y í)íó­µNÛP{/öà«D4«*{’"=|yDV]Ð2 ã*çÖXÕm“ŽKd]R‰Æ?Ñ\Ìýš¹d·¹að^æ;ÐððÅIuT¼Léÿ¥m§‚ÞÍÕ™w"'ˆ)u”H’dCæ^HV»¯‘®±Žþ–Tã2C MÀ]|fÊîU·K·LhΜùæ Í™r4!¸Q}fLñJ p'`ZÚŸl>@üd¡üo¿ø¿UN·åfGíM/ÒPÏ¢ã.Ú+4û,Ú}¹ÀاDd”…¤é9­9ovSå¬4†Žg{ N'¬êͨåkÂ@©•òÓ¯ûëA™ò}ë òÉ”nQ‚ëÐýúp$gÚ•Àuí«s³´érÓB"´¬ÍùE%Gwnó“*ê&À z½1Ëßz$ž?|äi¤"ñ\) ßOMq ššáãÎ>MqÌrtA& õÓå=§Ä¾êV¥îšWl€Ð Å¢"Öížî“~NP¢Ì<¦í Ñ•Auœ’F‘»†°kM³m;£óˇ|§u²~Ë*:˜9„n²`ÞÖùåxÛ¦ÄÚ9Œîoƒé9e͇Œ¡\Jâµ³Õg§òG>kÛÛz&„9½iÎÆM؆lQe»!ÆÎ5ÆäÛ¬M͇A-ö©6¢¡”^2ý2ë6_,ÝkáA®8œ5\‰Ú:áx›ZGÈéƒéâòW† DõOÐФ{Äcèf¢rÇǦã¢Ð¿ïøè :Œƒ7¥:³Õi÷ª,ïZßvŸT=“^ŠÍ~œÒ¨`LNsÅ›~©È÷Ù£z½Žv*UÛ°äê Ȧ²¶¯.¥,ͯF‘ üBÕ”1÷‚^Q”xtr¨¬‰±€i+rD-b%o;üj­/)œÃÔÏy¿Ü?jÛC< aóJl„àºÙm‡º¢dµ0ÒOÆðQÏðG»‡×Ÿð?ä8ð¢¤kÛHú˜SÉóP?BŽÊö7j•€šŽª‘åd3yÏ÷¤—lX“¼#$š¨>ŠÁK°£ú@*e¬ú*¥Ðg›™JaºìATJcr¥ õ»©ÔbÔÝW©òÃÆ¹J+õÒC΃/ªT™FjTŠCߢÚ5@§”¾M‰’cCÛÖÀÖô£œXù.Y-I£o²ÑîðÂ}û TÊ£wyrôà m¨å¦}!†RxJ…øÍÚ#ÊK?ª¥!”ñÚ»ÕcHú ÂBCµi—_,T¹çÜR•›CÌÖÃèd:-ˆà6,tÄ›1A3õ§&’ÕSÒ4éB-Kô -Ûš!Ü¥ZíÂoéÇŒ2Vu©¥ûƒu„ë|dböõ¥òZK†é¾üµµºE“BΩ{§ì“ÒêU>œú)܃m3R9_´©ÿ+âë²Ëæì7E¸‹6”oŒ´ÍÜѧlìå≠—Úç ^+=a¹þÕ´ècþªN¼³_Î^îüoósjsƒwDá%œËµT²“®ƒ¶ü¾’~&¦rμÃR—é-²ä…³zÑsF‰~Ñ—£Í’áN|’€3 ü=Mäºö@iqhÚ#þƒÆ7ט}ÃLJƒ&²ßÞµÊÂÂFCö C¬Ðº|ÿâ/4Ø Â—?މð(ÛC‡¥b1Þþw ý ;Ó«nnšmkžÛ CŒ—r_P˜ûnþøÁð잦ž­ï§ì›Bz”<­º¦fŒ³¢Jì ÈØj®WLg³ãñýkû#î ã­;œó©¥6cš'*Ql»ðÉ'¤ÌR!héƒQ$ÿ¼YÓ†/ÆÃd( ƒ2§Â*Cѱ¤âlí¤¦ºü¿è&…^ºÎÓ¬«ÔÌ–×epKtçßòjÂ3¢vP± õi[EÈü¨'?Rx¹ûwÅÜà1ND'狨 æYÌÒv–g|pÙ™Ñ /—ª¹“EÕjÑÒ°WΊ¹îÄ&;$öÆ{‚Vìé ±ºÛ ™/8l¢€§¯{¹V(¦ãs7Ÿ˜B½Œv‘<à ‘CÖчÕÜé_IÚc€8µt çð.v>Ö‰hj³<]ÓÌÃpóe0¿³PM™ d³‡o„z¢¯Ó¦)_¥ö›b ahð¶ŸÌ°ÊT¨ÝMêhxÉÆ[ ï ÒŽZ,3e”/ï·d´ï† ÎRòô¤Ð§,Ô Ï¢û‚AÊC¡HYN)õ·'ÿ$;nendstream endobj 1195 0 obj <> stream xœÝ\Ks·¾3ù{\º´¼Ç$rì¤\vÙ¢+‡8‰/©J¢d‘²£üú| `fz0˜årwiÉ)©JP4úÝ^‰N®ý)ÿž¿9«ë“ŸOd‚®Ê?çoV9;ùÓJÛUì¢SάήNò7r%µë¬Ð+çu'½^½9ù×úÛS,ªƒ±~ýcFÔú›:ÿ}ö,.ƒà‹+ÓaD[œ]`¹W§Ñim½òë«Ó FØÒ­ïl¬ˆB¯_ÒØz°Ïežâ„\Ÿ§)NxL‹=ÖÞÄõûÓì„3Þóá%›|KcïvX¿;ݨÐÙ$_ã&ï¨–ë ¶{A6H&s® +Óy©&ç¹aŸ^%¸›Î±µ1®ß*0U µ~>Îà”àûçEœ¢]ÂØO6¿Í”ŠÆNð>»£Ÿƒ¿ÒM~ž eƒ²vB´‹Ùœ <‘¡;Ý;-íúÙœj3’œ/lõ$c¦£©?¥y×; ²ψi$dÊa–dªU[S¨‡…ATÎô•*¼Zk¾sCÓ ¢¨òþ„„ÊtNÙÕFªÎ 6öÂadÅ€U¢Xyà®Üú›ðš­ñ:Ë nIÖ¹ØÖF¸ØñÙsîdøŒ;ºs^’ò ÓŸ÷rŵ‹—¤à:¯ç£ÃéìQº%çÇÉð6'¶'m$¦|õ2[®Ú,Ûz)»­ßûqHtFIHÓÕ}7ïZŸ5-¥ÆX«a¿_1[ ­£ŸØ™<5£ùü6ŠfÖ¿$‘Ò!f@Fã6IOF àÂG˜˜ÀU‡[¬ËÌFÒIÎ?¤ƒVÚLT‡sƒ#ÐåÓhå‹)ÛiR#×ÉX´èl$DåŠx7¹§T'äèwžë¯#G¾¡gÍ _OœÛ—g'ßÓN6¬®oOL'ìêW8Ú¯Nd¶Srå`z`NVoaqj€¼>yö`w¡vy RµìŽ/F4·äL _ŽCvº·Õ YŽ/Fèes‹¿Ã›qøj\án» x`£Te¾I÷™§üÀDsÉ'ÞLÅ×`aåüÄ q Ÿ¯>³°yüúE‚ ymßÁãn‰SÒî>®ÿÈÀÌNq¤îÊzN —ó¹&”çÕ¨<ål½‡3!v*ÖÖ.oÕp´ gŽL¸\!³#³¶¨ Ç€Å*…rØ`JÅ*`PðÞVé ÑK æ@Ói "°âÛ4Õ€jíÎyÖ”ÿ¯'rš´[©à:WN+ÑMVZú΀=+tžV]2ëñwMͺ1n«Þ«¦ê]o×7اq¦B¬JazÈ•oIú>´åü2³Ð©™ôõà©b%(ä‡/ÇýO-K>t!ç ñ5I›ˆÙ<èBxÝð&)8e„hX›¤’×´þ§m'0×H~ˆ…°”¯þ‚‘œŽp#§9Yq>ŠâŸyÝN”–‚ûùÁ[ᛦÐNVY 0ÃÓ;k`óâúŸi«°¥ŠäŒÀA\Øjr’KÐq)vÍ5üè’œÏmY:0çËgkg!¹ÈÛë!Ǫó;ž)íCdÕ¯_Y7Ý,—$°‹$ô9ár]@´#z©Êø…!mø ¦+¸¢m=ÿî*SU:7Q‚%ƒð¤ žSïµ]çß7·ß®óÎïâdB"³P7+'œ¦p1 ”v€ì."þ0*- RÉûÃÅý ÂÅ/Çáö HK×s~.Õ7;hÁ¼ž2DÑv1J¤8pM»èîh²éâÌЫ{B¥>mÐXª­PÚ íÖ×V‚P>>Üê†ÈÆfn™‡Ak€…¨ i÷å8›;@¾ £`ñV œö[ê%Åv³èÙ©¹ñÌD7ªäÇ&´¼±U°8Ü+rŽ?ÜŽ6ËÝx "Ú1pÑÞHüGÂÄÐaM&Ãi¥¨0B*r [² é¥ÕÅæ»à¤Me)*‡!´L5³T‰òHý†œ¨TfÁw!8øÁ$z>Z%üd ¶MÂßD+¤n[Åe–£Ñ6º@ò½²)•F:}l£—ý´h‡£?È6¦áÌ6Ö'ùT©4e¥26RéËíœ Ä‚Q©“×CGûÅYåžHª¶î=¥=i\Ì?~p”Ï.û“¥X„Ä¡¤Õ,¤Ô“ØMÆ[;±F<Îán²£Ó°õÙd*˜Jå¶dæ¬à[6À¾ÓàiÉ{6ÜSÌEÁ gµùf¹¿ál|{œÆó8»íµïÔP–lÝÞPY2ʰ–}…rêdùþ\~øœ{Ͷ‚ËZ®p²⇉žp²šd§cvVŽ`Ñž¡pÓâLÔæ1ÂPƒØ†UF„X&…¡Þ©²Wê)1 %@Nu¬0tÏzÉWÍÂè]µÅ–Úü‡GA.0 jÄ 0fô§³ _nøíÈÿw \\.´Ü›¹¸Ï+›Ñ {?äp}5Põ†yc!µ^™c PDF/ÂÊ ~"A¢²7]šÄ²WÙvÔ¦E©¾r¯eæ}vrÓm«^ÿ´ÁçUÀ¿clº­8f;§]áXŽíSÞÔNj|Ä8¦ézÁÚC8†% êfʱ§#ãØpê/ C2F,YVð*Å,Ãðù8¼‡ïÆáݸûìÉ0L~ÕM¤<ÓTäˆ$G¤ÐÁWPÂÇD$ךâû²ÉáÙD Eéb<ÎH¾g8ºT^Î<‰' aE'Šêdоm²çbžÀ QšSÅ:À€@sžÈ!<Ñ‘ÐG©ógFÈĈtxŒóc2â§Ó)'dDl58áY¤s;šãÚ¤eè]sK®Æá?à]i¶ó°C¤ýºÚ¢Î¸øµmGƒ’Ûö‹ Ÿ¼Ú‡úb¾n.ü®y 6‘’ Èm:ñ/a;Aø‹q®CÕ'»ö9Ô’5£`Ñk’"IJ•‰­ –‡ÆuL06!¯ð`‚õ*— ¦Õ.kŸc&ˆ»Œ«ß`þ¾99ûâÿ‡b3›q<Š™ÚÆ“Ù;Fë&™ âQ7"Y¾XmEî3žrŸ£+`rpIž¦T jäÍ …¸œækct¼ÞÇ“žPðR!ŸÃò’– ëhW–†2Ÿ?°Ç»!}PïWZy™¸Œˆee {e†,;–pÈ©Ìï5ûè‡MÖâˆPÖ£·ßX„ÿÒ»ã\¼ßæõ¨³dË—iK3Tgõ¨ „|úwðÖ!Tšßa²"ï Xè_ä7&í[Ó‡Y 꾜®à7F!‰šüBW@Õœ¿¢Êfß–ú1OPjá¾ÔQK“wô‹µÖìÞ0i¨†¿ºÙ‰ð·[/M1Ÿ®@‹DáG髳¿Aÿm”"ó¡Îta*݉šU j¥OD*Z/0³£4½0ÖMaÜH:etÕs>šòZ(y6R',Ÿç¶»xá?eUJÞô?žÜž}G“‚p8„U%Þ$Þr{G  fÒª=1ðHßA î¹8H—Ôb4å²ÓÛòÄ‚àg<¢½)k\æØqa=?Mh˜t³’Ž¥Ì‘xZfÉ‹ÕBGØGRDP0»ÚT·g:¿QÈœ¿ë °–q‰Þ/r‹ŽÄÂ^î.ËÎÀ³aÝÊ}TKó©lp“W¼eëtãÖ&­]w§õØM3À—3š$Úß–Zµœ‰˜UŸëeñ¦Æw„në_FWÕ㛺T ^^ŠÔ¥JÛ™œ¤Eœê€"_@uó8­dýÉÝð¶,‹\…åÇ@œ,»ßrù+·†Iö­ébôLö'!§l˜ú’$gŒDFÂz—Wºÿ1Øa"weWY\tåœ µ}Rh«®yÌæ  :mXóD9 y‚^]Yý°½Ï»y‘‹?~į‘‘½#É–¿C;bª1¦ÆÌ–©ÓÉUeO¾l°*OÞ¼è&K+pÖ;< "ŒœQ3£,dD= áNZ6a¡Çˆº† êÛ±Äòã8ü¦5l2z­îrÏ×»w­„¨Ñƒ—3À÷ÔÓA*'é©-Í ÝïK—ûP‘WE˜­ž;VÏÊ«´ C(Ñ|ö×v|Õ ±¦ÿXp`Or뚪÷&âAÌõ ·ÚÅ勨×ÅÆ'=Ó®$zMµ?3$ìi”ûä¸lØ,æì‹¹Ÿ=*Xê'jøð4§êxòˆ°\\×]N*~ˆãsôL±¾Ð{H26£^uϴ˓ʹ$×5Ãd™šMµÒuГ:¨ÖçgÌ>´Þ¯“ l ,šÄO÷¶(ÙØû»í+ ê±B##Öw,4ê!„FÔ¦€<âX¡ÑçU-†Ó×öø-¦† ;Â!AC˜=Õz ÏjUómþPï ~5©?Yú}Ó¶íÕßB”Þ‘fò¹»ƒ}Ô8-š-çééW°7}Ó·Ÿ¬®t“»1…–­æ×YÏý‚Ú‡öµ&ž~,}¢JN¦÷¯Råõš­MªÈ§Þd[“jþ‡7©zØ2Io9dÕ¤Š{Ù7©ÒgV*Sž'é¤.Õ.©ó 0,ÿÓWlN6áÂão&…:*•=…’ȧ‹æ”ùé:ÚYª°¤Kjgèõ1ÿ2H Uë®z€Cï­êtßÍF7‡á ߟü2^%endstream endobj 1204 0 obj <> stream xœíËr·ñÎJåö–¥c"h¼qŒã<Ë—mæçÀ‡H)%R²¸”%}º™A³»Ü]ÆÔ£t Ô‹i4úݘiü´’þu/nŽäâúè§#HÐE÷çâfñÕéѾ‡ QD§œYœ^åg`Ú +õÂy-ÀëÅéÍÑ¿—§ÇR(©uôËçÇ'RXoCPËg466šðŸÓ J¥-G©¤Ð&D{z‰H~@$ ƒ±~ù§4Œq|[ §Í  ´ÈŸO¾£•lX\ß!íâgÜæ_ „ ¬#ºµðvqs?@^ý0ËŒŠòDÌ( 3. ™7…ÌgexW†ÏËðeø²9|EC£@ëåÅÍŒ­de­0Áªž±W$m¤SayÏÄs›ÇÚh@Œ$*'½tËU›ŒR/_¤guFko"=ª•ôò¬@_æÉÖ+ß»O”Gæ‡0Z‡=É—|ƦÜåu´S8ûD£À´M\•¸%Õh2‡3Zߟ€ÎƸ|Oè@(„ž5't”µÃ‚ÆrlW…4®PD"Åç¼7wÛ±L+ï–¿0òžÑ“2-Χw øÄò·lœSe·c‹¿ ¯F9ÏH*q Q·ãâ”°ÆAÖÎfŠv©7#rº) Tì¶m¢·´C S†1±iàÆŠ€Vqûîu=Ù·£EX8'ƒÐhÉ ¼ zÀ†Œ„Õ„@8å³]h¨í8[aÓŽ›©¢ð!ž®ã7Î#‘0&ßoa›Ü–»GIšÜ$Äñ‰58ɨåß“Yi4!I¢/öLö.ƒ/Syôô¤Ž£Õ¹ñåÙ†~W/dDÐ~j{ƒÝ_£÷ ×íTåq~r‡uÎæp8÷SÜ´VdNÖD•… B9˜ÚŒ%óèœjÆ7ÃüÞP@·ø9¡*ïÂEãÝ`ÂøC6ak;ÞÍùïÓž4®&ãòçMñ:;xômq¤!«Œ|œ(N¶Q÷bIèˆ[(9A‚s|*Ä4ûº€+¢%o§¤&Gͧ_NæŒà‰éhˆDYÌ'.iŸ1>nx»¤u0éðkF,ÃrQé²\ƒ’G&Kì¬I®úÉM‚t Ãß4 S#s¸e‘il&“ü Á3©8V%0×ñ*Öâ¡¥’î÷fÝ7>Óyž=nƒ?ÛYb4É@g¢:"F‚­¼Ö—yº W¤‹6[ú,0³&x6ëèI0PçÅ9ëœm»^3#oÔ8¾¦pTÇׯN›Zñ5"ÛM\ GóBQ€h/Ãÿw‰¯Ñ /!‚çyòCã+Ʊax[†/Êp5`h'Ǩ,z¦1-aÂáÑw.æ"®Bn?§[?[ÿD¡C´¨Ûè2m§Úß']TÈy—X€¦#m·8x°}ÀuÁMaç Çä©ÑZ0mY¾=vèÖ¼J©)>‚‹ïõÑ*L9¶L²­ÝÖ4ƒWH²ÃÌ— Ãlà‚EÂNJà¨8ó¸” d—ẫpÈ_”-R¿Eq– we8)ÎtïâÌ ßÐ>®B$/©›~;öcè¢0Uë\ MQû»t*ØQAÇÃy®* êÙ¸õ&GPÒ´*=J«¨µ>ž€ýÊ8B‚†´]g å VW™ÖXl«Ž> ÏYøc¡q»GA×y«ÐÆ-‚hÌU`kÔƒ‰[<â_LW˜¤Ê|rJÕû&3ÚZNŒ)—Ÿ°œ4tŸ ‚ê ûHJƒ £·IŠe¹¯þ_’z‚™„ Ô(4u}$… þ¶—¤˜ ÎËþjñäáE=ᣴ)é”ð#ç×Aö‘@ÒÖI³æÜ®Ë¦jóú„r<µ˜xzÈâAXZo2¤GÏ]¾(Ã_>XñáxŽ×CöOøã&ëiø¹ƒJj¿ˆäžœ¤\p•!u}$…Å’û¸’º.Cvê°:¤†W$OGR–>㩇ì#)kEØ!uh ê±’¼Ç’R„D§wÿöÞ½A-AWÍ Ï ôª 'ñ :ù˜¶~_{Þäዲí—MÆ5¡‰õô¥ö^6ùyß$‚-Çhg§¡¬Òe.*Úù–k(£á¶;žF]áQ†(I4/Io t~Ûæ«Í¿# °ôF¶rºŒèÛ É:ïRŸ ԛʯEÐJGïÀ@=|"“–“ôC÷%„´*D°DW£CÿÚ®²V…)_oîsâ:ц1¿Ð®Ah]¥8¿ö9Ú™˜sø[åÏ#†ö±ä3C+¯šÛêTóãÐPeè5}챬ñ’*ZL¢Ôa™¾j2}mJ.|ènôPLßî´ñ Lÿ¬éÛ唟™¾?Ó7ž>.Ó?’ ¹ÏaÃa³ŽV‹‘¡,[Þêœ3ôS €eúg_|x¦×§_ŒŸ™¾?Ó¬ãðÄ[‰ŒŠY»|x3bËXB“¯ˆ ÀûôÍ©ó6“ûuOÔVƙ֎ü¥¶–1FÇ;Høg¦üSTÞ|Âç°/W»ZMÔí漢Æ„¥^¥Dên× .ã|Õît˜ï™}Þ,‚òÕ@Ÿ_ö¯€Œ‚ؼ×Õû=óXbEË¥ ëRZ «Üò7ë[úNX¥•Ƭë#¡)NûQËgÕ•º©ËšO?ghæöWõ1^Wšá[´jä@„*fÛaxOÇó<=˜q«G&çËQ#8¿Y`CyšÓncÎù:t´‰*,½ú1wî$".T?5ºÂ µ—üw`©È v;¤Â:5ôn¬y]°ñ³ä:f6-EGêºÖc=ÕÜ *¦Í’˜æ[l” (ב¹]uа¶¯Š†Qady74†%§}ÖÍóýbã>ZyO±!i¶ôAHIÒkßJü‚fZ:dp¨[éÖ‹TÀØÞÒU8 õ\gþ›ü¼*–Ÿ®ÆLÄ€‡î»Ï׆ã F÷{0~ãQÔI&ǪǑ°Û–æEW?Éd„Ϥ¦&jïë­µ´‰3xÍ Ê£Œt'rë#N¡.غ߹ sÝaDïÂk fÇçí¤Œ^wBò)“ÞüÉñ’A·b*¬¨d—ç›M%ÄyS¡£5»pxHè57˜†Ìú«›èAíšš›Ä7w[ÇôjÂÊ–O²ÓÔÒÇliX «þXaæ–ÂA™º‡­UCÀñ GWQTIJ¾änt‡Ÿñ_æÂÏJLšS,®¨|Nº+Îc´SòD7ÄY3w‘ÉLò}"›oªòXØèú¸€v®ÀŒ €WßKÙ]SÇ󯶑àj2ú'Oè"ƒ0¸ßS‰¯ÓmqPò°‰Ù ‹P϶Ûbz«ÀÚpvëþ˜ó#]å’5ßeÑy³öУ·É|’çèVA,©5ïÇÎäba–†ÃùwGÿÒaÅendstream endobj 1212 0 obj <> stream xœí]W\·ñ_±K¨úþxLœ´IOÛ4 oIÀ`›°c°÷×wFÒ½éJ»À.‰Ó“ã´²îHÍ·fôóŠ3±âø/ÿ}~}ÀW/~>±w•ÿ<¿^}qrð§ï…ç«À‚•V¯N^¤oÄJ(Ë W+ëN­N®~\_s¦”qÒ­_KÇŒ×ný»µåŽÛõé!4•r:àh SÞ¬oa¬ÖÒ®ßáXãŒ÷r}}(=\øõóÌ­/¬·@3%Ì6ƒ}½ŠkªÁtm´ÿ¾ä0›ä²êOKr}; \­#mŒ U?™>qÁˆ¸¥•˜Ðá`­çd‹¸XË4À ˜ Æ­ !ãÎxiÌúÛÎY/ýš¥íxáü¿Nþ ç$•©ÎÉæ‚‚³:9‡“¹àB§œ›WØÔR(Ñ@{Sóui>/Í»Ò<-ÎæÞ´ †pŒcRÈ0-è’Çm:G®l…ÔW-ž³¡Kc^wh Võæð –ýï‚H:„ÂËdaàWu¦ÏIÿÇÒÛ?–Ê1ÎíêXHf´i×Ë3ÖÎÑã>E’×Ò!@_J«ÖGHü€.2—.N?Ñ…V°Š×ÿ.÷€í.½ BãtM/ºô’š¡—›Ò<+ôòv ½H&}ðÓ‚27ëð¡äJW‘Ýùsd^c´Àˆ&ÇEÅ>æÍ'¡Œ®dÁmâÙD 8$Ãúe%â±ÎÝgäÃZ JÛvÕ^nÈàóá~»'=-¯Z¹}œ))8Pz$¨7dቯ£2Q@ZïÓ0rì„NØó,Oœ˜™Îw˜¯ «›Ü«uCYóé\¥hzu–„ÜŸ)ÃtìÙôT7œö4?"H€Yª¥\üíàä³×'‡^1%M¤I…5èjÉ”¸¨)HûïðS°3\GÖ"í_ê<ŒÌÒ ª­×øå/Ýaͦež7d|‡_"¥Àm³5 nX?™÷¬4¿-ºü¤;àëJ(~urðÎdüêåíØ3fõ<¿(X5–•AÀžW×ÀH‚Y3÷\ü0ôOÚ•gÿ@0Ax€a¢rÞµ_.Ê>nKï«Òü¢4ß•æe׎&S|^šÝ‰»šô²çrB<•žD¨6¼€t=MÅÒnld2âMÆÂ&•heyF¸—4³¡ œ¾°|5@ƒÍÔ–/Ý ‘”nI7ЧҠµ¯åÜ—V Z‡ÆR#[qô@¨ «}‰@ušr-Åô‹äÙq+ª±g4Ò¥lv¸ ±Qù!£5Bµ{ÆngÜ}  ¼Eϼy~G¼6àmn-Èaämà òþÔóÞ6°±H0$ÞþòQ¼ÝåAžg×cä72y·ô ã‰ÑáTíHt(w0§dİä¦ÞOÀöÓC 1á˜ð)Ò„…=q=ò{)£¾ÄÑ辘 ‘£d ÓØ`††>U¯"Ä=ë‡ÖcºÈ›á~7€npn«(ÊMìÐÍlŽWUÿú+ì–š c²{®…Ù9­Í‡öºÔ¾á.º£7I,Û9Úd ^ ! †{¶§6 ~Çå(œ¾IúðàE2§“Ò´GMBù÷ÑG…+Ù裸:1t)ºG6ãùÒ˜úº8çâù˜;í§yvP,㠙ʕ‡8>Š•v…$F½¥Ù¿©¹Aº2 À‚„ŽÝÜó)‰J-ð4ˆ¦bÒI@îui^”æmi¾*Í?·qíö³ÒìŠ>ð™¸åóíÈê@Å`á죌\§0ô¶ð´¨110Ö0^krh‰xå¥õÐl œt³àb–ư Jjw_Š+1 »=‰í.à(ºM¥*ÚH8®°‘$¤´®gU‰ñŠÆÜ6ÛìqB š?TGùzñåÊ$ê%ÞY~ˆÑ\ ®VBDÈÚÔ"î/šXÑ^ës"EzÎÙsŽ—‘ð;Éœ´îÞè2‘,xèÝ›N½àT ‚SQË“ÈNÏJóÛÒ<éøzæÍ"O,˜ƒŒ.ƒ]Ú ;ÿ|ŒÉ•ïà øOÖªÙ\±¹°¹bï»Òlm.zuAl®öBc«Í5awáÊÈBCèMøaJì— ?OÐÍf‡b~Ç…i»³äŠËm®HPæþ ÝX\Ì×2éuêŻį~…­;+GGU_Ds¬>rä1 ¯ˆÕx‘¶®¼[‚ `ãÞØŒ* È©Žl²Ô”ŽÆÜRÂ$ä|À! Ywè8B|DïÑáb‰]¢™îAÔ½•ÙL‹ü °Ôë«Jø!]¾§$¡ëûNÊ l”p>Üäð¾p¨LzÖ[¯q뽈Q@j¶ùþÐ*ÆQ2ŸÆï¼·!¸ 0—«`iâft0\¨¾<­9Þ²¿w_؂㠙(Ú£/ b[SÏc$³Ã»„”qm÷+™Ÿö&@[z †;ò&’ßÀP»M-À¶à©é‘(h&ÛìcÁqæTуšî'‘ªq;BV‹=bv·iÕxÏ>¸án"€‰ñëä*éúFÉB»Ìئ!ZºçŽaåóÂÝÆÀ· »=ròï&Q«iêLsÁI:m½U޽[ÞÆ;Ç^'·ËüÖí(C¨_L1s—t ¶>(Q%Ç~^ÔQ:u][Þy·+×[’%É[°Gw>ºnî —Â^bæ’ ìQš¹|`îp^3#ÂY”nÑ¡æî¾Ù ‹¿ÏP¥F#a…VŠi U:à¹0÷<*V –›@çz§`%¹:-ÍnºbÿœR®ð•g“Ï2‹²ü˜$æ@Üî×åœÞî¬O!3ÅçóÛ¦g¥IËŸBz@o›ÅDÒì.©Ñl$Š@½Ç3—dr+B`2À™ƒüpÌù¹çg BŠäN—ó÷8s@ è+àÓŸÖ¥›ä'¾.sì®[ -PvŸW£xQ§\0 ²óuvÁ,€`Þȳ»MDÄõú3 u‰‰TjÉ„C 97ÝSx[ÆU¡°c ¶¤²®‰bíÏ2 VàÝ(óHÁÜ|;w<†€1gÛF˜ Í`Äò?Ê*ÞQ„'|J‰ø4ð)%É•¦DKðyñx|‚¾C?¡1žŸN{&ÁgîØŸ=óp„¾ïh?¿}‘âÙf&¿™š1›$®û[aÜJðÿÁxîØã6*î'Eø†ñOá:Dþ.Ï» \fÄýI|îäƒéhÀÝß/ò ÆOKóìžÈŸâ³U¼Üt±|OjJ)µe„çŽ]¸ÔB?-Æ¿òì+Ðwã¹cŒ `ØI¾ìù»É—§C¾ Á$/6#êØù‚)þr'½-QYDŸØ~™$úß ì–æ7ó4¡ÎÅLNéñ"5R³çí’©ç1õi‰ ˜Ó™œŸuiíšÒerÔ„EäZ­CÊ’ÛúÙÜ»ÕÚþé°FøËà¤cE†?FN¡8ÝëÅä±÷®;àUé}Qš Ǹ-ËëǪÉg­cœvcp¾¤ªãófÁi0¡`â¼úë{,qdÙòe»¶·rÎaÁxínª‡s,Dˆ÷ùñY7à*5*94Àà²QdÑ7]„“e¼ì.îmoS)B¤¹ªB| äÕ|u§ã\»·ÜÈX¬‚qN£ü–lÃLƒ–sÒÉœÊ`0Wj°Åó²Å_ºØ#8=áãÂúÆÊùÝáÔb5Üœ:þ?ÿ}wìÕ_½jZçøÚ“¿@@·ìø„>°î'„NfÅo‡Ð—Úp“/‘÷Î YǸNcúµ1OˆP‚‹¾ Ý€Ðÿ¹'×ú– BŸ–å{„î…å÷ŠÐ]Xþ¡ûVJ»8»Ÿ…;¾|¬lïÑ@ßÝÌÞdÁþ"MLrÆ5ºYíršØ—÷AažN?+å¤(B°4MŒ^CÓ«jšaFÇ›í|á­ƒê',ÍÙa*0nx¾=O…Œ‹×ZJî(ÓÌ’Ì}æ0x h±Â+ æ0¡˜”sÏcræjÍBÌîØ–Ã›ûÊah* Àùõ¥’ z¢­[ÙøtÍ’Éš›6ýsÀ½Ü˜ó¿uÝ]@󌖡É,ÂYîùZGŸœ¸^xŠúfÏ%|DÈIy¥@²ìBNX¯¯Ä’œŠ(!ä´õí‰ÀËÒ¼*MRûòy··TÄô3cYvKzéÙ9™æÐå$r8™© ŽÉ´ed£·`FyÃXE­-³B¬¿‰Ã תd-êèbF¤ ±@ Fxá—µ,*¼F\Cå é|SÖ¤¬2Ñ6'._}«³ÄinN|È!u¡]L•¬s/÷“UJ¸, ±²ÂÉébpÿþÐhŒ¤_™y78÷iõ—7¹¨Eǯò®FÎú{X™ ÒGÕC£Òû{TêÓ;î“Bºõù«i—u~6y¦ª BÑPrl.Âßäu«I.U˜VŠÊè&eªQön.ºÕìb*ÅÌ\BÝBPƒkªâpb®SËŠóOS“·ÅSé-Á^9Ó¢>õ²ú&–Ƈ¸°¥}'Á1o]'/wQÜu•«ðmïq„†±¦çÄF™ß¸o¥3,«úh É &ÿbB°ÊÌ,Cõ¢ Mm¦êà"¿Â&¦­¯Y$Å!ñR¹ˆŒô•Eó&Ù¼cð šð{¦ñx~Y Í!Ì»ócéïw‡ùÍ+ZhL=óûÕæÒjA`.&€nyš^ƒ;(|›6Èݯ\ã$2E·þf±ÿFÉ*. ßNUkcÓ^§yˆÿgù xXÓ¾qÚb„¶HŒVÄü…bÒŒ˜ž|#X• <ðU˜‰¬BÍ|ôKúå.2ÓìüÊ ô˜u>óI(8ss6q¿;ø™d…endstream endobj 1219 0 obj <> stream xœÕ=Iw7rw¾ù<’ŽÙÁ¾“Œ3ã<'³˜sç@‰¢¤‰HiDJ#å×§ èn @³?.ÖËóAx0>t¡ö àßÅ$þ7ÿûòúH¿>úû‘L³Çó?/¯ÿõüèŸÿ,ƒ8ŽStÊ™ãó«£üy,µ›¬ÐÇÎëIz}|~}ôד«Ó31i#œ 'OÏä$œñþäý©˜ŒÖÞÄ“ëÓ3cü$¢=ù÷Ó §èc¤ÿŸüê73VIUM_”Å7¸Âz‚:ùå4/Qè“)Á¡­Wþ¿Ïÿ¡´¥‡ððagð(ç—ögØRêè`›Weø‡FI­êuö5[‡/ÊðCÞ•>®³ †Uë&oL\z[à?¹1æô‚‘tÄ7äì¯p ì |ýL…É(Vé~7§ÊOFÆz»Wiì„‘_Ôº^ò~þ L_àÐNA@BÙVÀÞ6¸“—d;B0ºÝÛꇔ¦Æ„ÉY73þq–[Ù¤ ÷Èñ¢3pµñiå8H¸kN¬n娭‡I¿»ÌkUèÒc‘â„)CSSO¶{&@esÆÿZF„lD‘M嬗W_¦ú[Q °îdI+~ U¬‚øuA—c™K9 ‘ò Û_Ö®{ÉçÑ5‰ ®Èð$82¾€e••'ßãïõäWû–~•!F/ºÃh /–ÿmuÍâŒ5:ål9Lms¾K‚Œõ­šI³ïʰñÒìû2l<†4{ÇtVší«™J¢&ÿr‰Ø‚“ÊBáû•' ¡lòª«<Õèܹò\ü `aP›‚`Ô¬~*7Hëe#‘øP^óP»çnðãÞŽ½¾zC\í”ÚÜàj«vÆ6ˆöÐ×ÕýØFû)F.=Šm º2ñ1± Ä V{Û †™Ûò‡hÅÎYV¸Ö*îB¯ŸŸ—ø}›p9óŽ—š«Ð½VY b‘^KÝ'ЗàÒ‚©ñ¤lT;døqk$®@œEåÚƒ”’ŒBtÅúñ÷ÅÑlÚ×´Dš1ƒ$ó’1jQ /ã^TŒ‹‰Nm?‘¥Ë:ù Ê)‹uY\†ÙʰԱ;µš •íÂü©ý,âüêBXðtʡɺœiˆ|eprÑTc ±#Â/ôCìÈ3ÅÓv ã,™F3ì¦!ÁˆüÉ’d¸[Œ¶±#ø˜F;bA!GÎùOcG€äº¨&•Ã\mëÁÃó{í¬–à›î3$U\/áÄJÚq=ê {)÷#㸀YuhzŸ[þ1Â-ýÔb/#ĺÏ#õ[¡÷fn<Œ³h&69­ÆÅ”ó}¢ØY+¶]bdCä.[à§ ytþ±·èŸíΚ§„­Ù™CKYhgvÅÞ¸V‰q€¤5Ÿ=ö6´‘3 ©æ„ç&ˆ€ûý[ƒîfõ‘|'ˆµ_ƒªýzD{ªµóaý|»Ó#&K:y> ªo¾$ó_Ëü,ùµ©huý§ÌùŸ6ÔT‡0LùkØ9 ù¨àD;9yعö ÊjªŠÈ~¦ ¦;J‰ê®*uM7ï¤;pÜWãÚ€_S7ßuõø«¢…‰ò>Ø‘k’°÷9rÀ‡$!po¹vŠ^‡^a熗¹üÁË¡#êDS‹k…ñ›ê^¡Ïc—΀ã:é^B \“\åÙ U7í¸„xÀË·­Þ8p¸¢]Ä#k ,­Ì:$ ¯»Ãe؈ã°8cÄ…J Š3ˆÔº{]Zâ¯y¢ëÃ<*dTöh*°©|.Ï@bõ3•gLj&Ø™{L5¸ÝÕ ò(wVg l ›í,éÛÞœü'NGå@}üÇÊ ñÌsiE1R5ïj–=ø•Hê§Ð“Ѹ©E±F÷s=Y")°—ãñ' ˜ÕWóà‡–r&7H}_{eŒ‡W×!CÇŠúÃþdwš&±%á`kþy«8JD¦#¤öˆîøü§£óïþzò/(Ð1z%¹ˆý9 >¡Ò™:LJn†ætJØ)õDâ»(ÏÛ )xã#¼ÉŸ¶pÀZáãYàÿTú”~å.ÿPG`.[Z_°Õdá¯ÿ*>Í_Êð§¢OÚvo@M¨ :‘ÅM†ßØ¡[üŒ?F¼›O.êŸ^eDÊ{ê?HD1õ¶ÎÈ#JŠì™bƒþ”¡Ò5¯g¨d.! fú%í¨a7'ϸqRoHÞÒ„d?UÊ}ŠJù£—ë£Ò¬¡ÅjPVPØ'?d5® Gñ}öd}Ü.ç#¼><JA[=¹ÐIúÚT˺˜WD_¡…ŠBc™°âל76Ѳy´Ü¾f–{Y…òV8P?Éì%Y½¼ƒ_%6±,AÇûfkiÀ•lì$OýŽì oYŸmË FÍჩŽÔˆ€ SÖ X…îˆÆÞ:Çì=jxå0 ŽþúÊ’Ûü–¡Ä}½¬ë?‹3@=„‹Jµ×J›ÆXèTÊ${LÐí(Ì#ø©ÃÃ’Àh“&g©÷F2Ô{ 3#aâ¾³cºg•³ÀÞü;óT%jÐagŒÃÙÑñˆ´üÜ­z–‡ÇSU¶jfzŽïs 3Ϫ/:Fʱ¾>Š~ çoj-e§‘Ï– ÂÆô¼*å1êê]ç¯D‹Kr§hU0+Bk”nÁE –»Ø†F ;¬Ü-\e%­re¥3ƒV+ªF`ÕÚÌP›÷—5Vü— É’¹Í·yçõ}^vâ7y¹‰K1èµJ§èöÐoƒØ/ûžoiá<#˜-k\!|/KH’swÝoÊðª I"ïºì@ò—·ÝÈÏ.ºé½2Ûõ„N­é=‚["ûÌ»å¾X’ªq19~ DWM‚‰\e‰ ¿3VXîÂŽ0šs¿œy¢JÐ7=ׯ`Ë“ƒŽÎ4f¨3I‚Œw59é¡F$ðS K~–œÜ´% B…`e¥î·S!¹›WëÚU}Tc´ÝÁûbmÛ0‹^å¡}8ø»à4÷ÌheÝ.ít™—ǺEô6ï-]2. ‚.\Ц-â.÷‚°A¿ée…õ¥å5i4ê·t,_ÇD•³¹2íu_©H›hƤÎÕ4(u;lÅZBèëÒlíñj´q WzUøÍÊv©ùÆÝxL} ·Œ.ŒˆÔM¸+cöà›²â=9¤%óŸô.“2ŠÀæ€-57÷C}#pé­â“)‡î)jÆ_:5Y.Ê@ §‡™†¥6 D¬‚AMùÝ(Iç_çFMÔ;›˜Ê¿¤&a;´MFfTÁeµJ&5ùh»|´t  •‰ÖŠRæJ>Gd\64Å 4¶î²ø…/´´è<™%$.cUòÅ„µv[ <¯÷jÄqúg)ãÖºi—²êC¸ºdI¤ËR«xûhX<"ëëYl@©nYu¤ù-‰·R«bêU†ÛjÓ‘õ¹‘!…CQl›Á{kHËIê"ë€cGNÉçSŒã´”4E.«‚P‚Åëuo™„´ü|s ÔÙ(GÁN‹_‹u bÄe;â×¾Im«,¢B˜¤ÜläDP°²Ë­íDxPÊ]±7­äÓúd”TÀ’p?cЯœj? Ͻ·ƒ›ïòÚ·¥´zY†_¶K«VM*Ä t& ì=WÝ,VÛ†‰ñQâðKÙfNBdíx!ª6Çøh„²ºUŸ±™näplÒë=äÒÁ&¹ÞÃïô\”ÙûZlj—j7£ŠšÖn–HW´}ÍËC.®V=/ÙúNš?g+ñgžõ!ÌDH‰›tu>z{Z'Ã6J‘©h±x}°kÖ¾ô@{ÊxÁ¦#lÖ·ºŽï« n°fŸnÁµuÈqÿ­·ŠË;*À!­_Ëð¢ ?v‡¤»ök%à1Àxƒö/'…‡eáì_N×é~¡ëU‚7^¬­¹;Ðt¥`ë@•å5Öªí’1ôFÄ,ºg?L[ ÙÙÚ©Úî¨ÌýÅìp_·`»mi¯{[FzÒ. ¾°DT“žºGuh`aQbm`v«-v—ޏÉ(³¿ÙS®u_z%-7d$޼a >.kn‚Y+žT~ÙøÙZé'¡xU†ïÊðº;K–/{äšûÖ«ü44Ý0^+MwöbƒÓäÀ;ª.Dàm0¡‡÷€Gw‚)IG=§T 2O¿5Ï>-»ôïá»#åÆñ_¾2©à˜txÑýÙ¬ÄÒøs7]|p+õœxj™Hô¬'‡ÂÁ‘±R‘~×àôá—?&ŒZlٻɕ2 JL4Ç[ᇘ…¤uîºç ­÷¤²:ñ:uÜŒ’ Íã¹#‰–zúù‡õñ5YtÄ ?èG?¸øS®P7€£·t=ÎÄ “nùЪ³’Ê7TØRL4n`*ÆÏ>6è Çñ¾Ó®\áÀŒ8ìýṎX]UÎa$$‰ ~îZÀ»v£4õ]F?è*^ÑØV¯–¼S;xÞ}hKþ‰7©Â"‰™Q÷ f÷¾u’™Æ+”«ßäøí>¿zH£\¹5g0ŽWº A£zZÞðÒM¸A.–×–XÚY¬"P€:Õ/ÒÙ8\;ú–Æwj¸%LOQNµ’QÃý9ä‘ïr™áêÝ̳ÀÔôld¯@ÁjPûÕt¦” ,y¡ôCìxrDXGzM–\—— ³†Ôå÷„@¸¾÷T«vdgýˆÁ©¢à±¦à:òŸ®å¡² ä'iÍ(`üŸd ,ç õ„À¨ Oxž`$Q; …à™Ýw€Z¾FlŸ›”Ä4r:RÍõ¶„ïé ¦Dµ¯Õ Ÿ ãP¤=­p+œÖ.³ég>lš„‡¦—Îææ75éâ~ êƒTý¿.KhæjÔæ†Ý“?àl«iëï35WSæ¢æ4g¥•Iê:%x¢yJ]ãí%o2nä¤C™±Ÿïß(e©èQ®73»˜“ ¦\ÓÆ<ÔÞˆðQ‡ªÔ´0§rÌÁm›K¶¬ŸÌ‘z%I¢i|*F¢ÁëjÙ­¦YâLÞ–È–¤Émœ›*Èm;bäd„• Ú®'âˆ^«|¿M3Ö°».Z§û0ØØñ×ÑIâ÷€%&ª6SRB°­::yx&y¡¿W]|?ƒ¡Æm›‡¹4’ˆ±qûN\BIèÅOÌÓ[â'Vbû˜?þÁȲQ[·½»¶viXÃ(bçCj¯üÝ| '}€t«à ïÞ··:ÓÐV¥K¹n§â°k‘†ÉMlFÊ.ÝÍ­’ÍSµ‹4õß÷ Àjʹ¦¿qeQžRɳ_Êp«¨7Ìâ²Ì<ª p%0/Jn¹unº$ç‹d¡äx¹*hžéÓ“]ºÌªuˆ ýp~ô'ć ǯoÌ$ìñ?ŽÄñï°–¤¦Ž•GßÚ_cßÒ[gÞý|èËïX£Vy‹Éi•_~w6ƒ;@ÀøašÔo!ã01Ò½¬`]ÓÑ}\‚gƒ m±So¯ò¾ñ8Rù]b´³WÏHÐEzëú Râ–?K˜•u&¾ïmÙ)à2±ë騅ûôï wË6¢œ-´Uðc~gÁ˜åË!=2ˆÄ‰ <Ñb‹¹Mýg'Àw¥‹ïÇ¢ÈËóâzÿPfW†döÏÛÆ°U$éàvoî¯JVÃ\‘ìãKw!ÐëÕüoMõ»î‚7eöª ùõê¦7ž|­½ú0îíð©û³¤ŒÓ=—JóúYþ¡ÍÁõ³¦Ep«~Æg+‹V¶˜¼º‰ Pʈ¯FµŠ²|$o·q™Þ¢ïH­Ä”ºâå7.Ä–!§[Ù÷?ý¿ºžçendstream endobj 1227 0 obj <> stream xœíÉr\·ñÎòGÌ-C—û1±Ø©¤Û¼Ù9H”(ªJ$%QV¬|}º·4ð€YII—€xF£w4ðf%…ZIú7üys&W/ÎÞœ©Ô»þ»¼YýõâìÏ?© WQDά.®Îò7j¥´Vê•óZ(¯W7g¿¬/Î¥©uôëëóÖÛ`ýœÚÆFþsñ Úr ±#‚½x†@~F JcýúëÔŒaü0÷^4|7õÒ$ß^œýH3Ù°zqf„´«ÿâ2ÿ~¦B4Â{Â[ oW7g*‚*L=¯Î~î£Â|"Fá2ˆ™Ïf4of4ŸÏÍû¹y=7¿™›/ææÛ¹ù„š”Öë×» üV}–›¯&y?ª- ÀI÷ãíùF élŒë;üÐhíMDÈiµÑjý.﯌R¯_R[ë |Xß²1È”§Œ58þé«Ü¶<rO`´Êà‚°©„‹PŒxɾ¼§¶÷¸æP ɖć÷ãŸf^vÒKGÓ2NéƒáÓ q‡ž$Š)À™^e ÓÆ½*Ú>ö5q¿ó¸ä_×3&yë Š gÈ€;øuiq`¤²v-rÛJë2¥ ŒÝ4¤É eB›àW™Z¼£Ñl -ýj£pkSyÔ“™M´2´À‚r|{gíäD" AB1üö¼0J¦]$xÔ@Ä4Ë@Dã=Ÿû5Û®Ž~=' ZDœü*!b¤Ci3úM¬£N‡ UÚ~JŽ#r:¥E+ŽÁ5‰mtÀQ°þ>a`¥Ñ™žZHÖ— CwØžÈCŒ¸†š—áÓEÀ’W‹¾ÍsSòu–£m)\À¥¡ð€‹ûznþ07/š¾+´_2F{DÚ­œ“ˆ.Úc$î³;Ž0 A™'…ŸMÂ73/ææÛ¹ùdn¾ž›×ÛõõFKMê!K¡µƒ;k›XP¹paù‘œo?ß>¦d @K-Y¡ à¾ÏŦÜð$¾QoãkˆVÄXÎ}—'‘8ÉÓ9xý!#$cPM&QH =›¯Fôjîeöô]ë³&ùÑrR+¦"qv©‹D"÷) ‘UN&‡kK¾Ô– Þõð]¥8Ÿœã>£œ›õûyjÑžF¿È@ÂdÙÒ4÷™(:”ÚžÙ¾Ì-Í݇+lÄ ©S;[¬φBVjdk‹´Ô$IG²d¸Á"¢—˜eÈø…%#ÏÃZáCØ¢µz”¾¬¬Ãq@„0’P —°F µD¦n û¬¥-e`…rºÔÅI\j§=KÙEsÀw…h%]  5/"*U1à_…RcǪ! Ã˜ « Uœ¨½óŒpÓ;o*ˆè„Nò¿‡HsÑ=@í¦6³Ê¬vm8Iï˜hk½;Îò”KãˆuGïÚd…:ÜÌöëùܼ¯¬ÚÂÖ½›w`¶‹{êÝ¥kª\eK×t¢pR”øËêÂl–ö aÁ¤ÐB@·8v¥§t”4Â;Do { !✱ñ{G÷öï>ƒÁ@´Z=õ:oj†˜X“™ŒãÈl÷¼à]"Žfý_²Ьÿ{©©2µ+1Jœ†nćáïf‹RËÀÞ ÈØV °Ëª¥_£9 ±§³KsB ù)ؑݶؕLíP˜¡«Ü¬Åc„_Å÷U¸C_:T%¸{®¯Yžç! MW6èÏÖ–ånAâœ58#Cºæn¡:u®í"ùóbÐÆ¶œ4œ÷7<œ$=‡¸™Ò*\àFRú¦Ú­. Ž7“*¨’Ü,ó_uXt9ûidª5¥ªâ®X=Áæ›,f±?†"âSøCyDðTÕŸ8@†Ì)¤„´Ct ¼B&Ìh»à”MJǸ€{Kþ`0¨¢$: ïBp褭òÑ‚ô 6MZ zRµ•ijBÇSCxèl¯rB•u ©M®#®}›0õ“Ùõ(Ü–€ÒòãîÌn꽟›‹¼lêýT™]ŒŒoevKµpC“¼°á\Kâ¾R9j-s«òK®¨×ä‹mJ }Mô¢?a L8z »„xÐÐH· lY8ï<1¼ÃïOcJ#ŸH;®N//Z…zTåŒFÊ7lPÒZ·YkE½Íž¿¼\@Yj6ÞæùV“;"¼ýa@ 3ÞŒÈ`°Q¥ˆ-Ó–Í@ˆ 0a´s Ö_lGœÙ³ì$p¦¦ôÅ¡Òí1‘MHhÙÍ…`ð1;M)|ÚÅ£µóçSVW0•¯ænÕa§î¦ò7’#< Òuªx@ó’NóšqÇŽcT~@'#$£õ8Då× ûÛ¹ùûÜ|Y¥¹Â®vÉKÜ%²™AÄ ãH¾ÙÈ:"“™hè¾›wé5ël´¦,ÖK¶{»l7ØŒzÜÒ‡WÞ7ýû—s/r2Ìéäêáv¤tèÖ­ŒÓHE"©½ðaê9&EDô€R®Œïù¡)¢}öÉb…C)ýu=w×)´<Çsï!)4 ï"'QtèÝD¡ˆjÂ…’B‡%ѦU‰<«"ЧÞv2ž!0ÂîÊÎÓÁ§Å=^”šÁáÔ0úó£]Ο²Pô]sÀõÜ{Å9¼"@ê]œñמ P³H^ubÊÏê‚EžUçÁÌ|Z¹‚‹é^W„ËØ€Ë ŸE©ÂË&·„0êM°Â_›3ìº=h×Ùš™£û®\e jK7(/Š•Ô¨C¿IZ1jt:ALv!´Œt*Åb%®7¹nåaÃTñ ¡Q·SˆDzÖÊ!D:ºªÆ©9-ý&7*n¥ƒ÷8]® áüÔsd d—tRÍáF·Ü‹$ÖvŠ’z.+÷ÙzÞIó†ÊŸ½ïEu\oòUUO„øŒÃ¡õ¶ïÍ£eQb¥¬·˜´Ý»<"U ëÖÅ­ˆíbŸ†ðþ/Xÿmg û6iXªÝ&Vö_4 üúßÔ ?I@1\^ž¾?[uÖûÃt4j LI|*ùT'Po õ*½µ$4è»–¶c-þTM„„4º{hÑ¡þÄ9èÕŸpÊ™úi‡Ù¹–bGG‡TƒK¶+’Zªø„8ûål4ºx!šŠœ©” ½(äçâ–ßhTƒ’d4بô$8{7*¡ëP¦§0ùÊÞÆ€r÷¢O¦‰Žf.K· XÊA¥P§¶âõQiEn9¸d¦cd¤}OE“"ÛØÚHÔAQ×’”¾DrõÊäY™á8´S'VÕÑ|!†CóƒÏò—´Ü"›AôðýÚñÎQô}Æ:*]%üœÝ«¾›ö‰Yù(r‘Ç€N>Š &û(ÆX“|”¡ç¨«<–|! Z ÜœhtuÕàÛÙ§Yd­«s©^ä $˜½Èy‘’ãRÚ˽TQ`(ÊŒðPnêþ$è~$Æ™K Æžj ȧ³ÇñÆ–š‚¿ÍÍ·õgU¾»¦€ŸAM ás¨)¥´ÕŒ='ÔÙ¼`OÊ™ì±ç©¦€‘(לB¡¡¦  Ð55ö«)¸j¢Ïèöüš‚Æšÿ¨)8 ¦aùGª)HN¬”¶ ¢N5¨VœŸzŽª)PTîL „Ü£t{KIÁá6w‘Zr^R ºŽG”€õrk}6 ‘`÷}v€p‘ÚiØd8(OЪŠ0¨3HØYR`½Ùò%†‰C$8•œÀcº’!²¢#ÔÏ®¢ ¡Fñ#UМ”ËüttFëª(À¨Ã>Â}j-ÑÏGFÄD‡TP`Q„ÕÔsTA2pA¥RŸÙq ¡×rÒ“ó–WGÆÆ*û$õ ìÙð÷Óé: …”v¶LÃUç?Ä«ô&Kyw­qÏ­37Ïö- ¦ÛР,ŠnËþÈ™ê…U%qèȅ걌žÍÐÑ¢¿Pfå¶}“ÄùÆ_„ž#µÈ麴ËûÑh ‹ÛÝ Hu…òͬVºoi½?Gmd¡¼ÅÔ»ù;ÜÂvùi ˆÂe`‘'â[º‘“³ÙA@˜œÂåÔõ2´’¨B'÷ܾZL—lUåz>HÊ}g’¡”T"еAã•›~ãwOãEÊý–멃ºER05kåØO ¢r‘ÆMÊ‘3T)äµS·¼¸Ô1޽w øŽS‘ŸA’Ã}Ó»7.hîR*Taûò4eƒpŸ"ÄÒÔZ‰dQé CÅ/ ÷=ú0@ý Ñv=Uçã#Xn† (z—â4ÝA¥' ÇžcLwÀ È›sg¹ÇP}±—sóÝvµbÎ|.£q {™]×ë¼ÝµJÚv©²ªÙò6V¿ P3Ðè§>ÐÊ[U" vf™»ºä«¶–‡§u©°÷Ó{èi»SNF²-+e%>FÝ,U¦aˆÐã *U½izÀN=ÇÈŠŽ(ˆàO¼öÅ)!º-VvkJzü ˆl¢ã f츷q¢ÎôSìÁE´ÿñÙçô ¨1~ñb Bð:TçbÛª<$÷š]Ùæ<šÝr* ¬ÎVGís%ºüª@ìÈW™AW`ˆ!=ëJ,ŠN¹Ewê9&…N~}$ BƒÇxÛ*Xý·òJx×- Y>×xôªPGÚkÞFΡòP¹«ó!ã¼íù+o3`С É‘eéÜ{_¼0SHTæøV±«,=ÑÁê…+?Ð{ùþžÓõ‹_•®ë—…v<Ù°íýÉO6,Ž©7öQ1ëO¡Žµ"i¸ :Wšj¾¢^¹P]Gœ®éEO'>–ŒÈ¢^¨/Za/½_µwá…ò®~õÄ(ÎiqJY•qq#̧¤õ4(ºÇo¢"5zGC¢·:]o˜ºóm£É¸è2¶=>´È(3Åô ÚrVX¼\¿Ì‘í qyU °¡§™ÁûúŒT$5°kœ¡è±OJúdzÿD(j,endstream endobj 1236 0 obj <> stream xœÍ\Ks·¾³ò#öÒ¥àý¸Æv§ì8¶YåC’ƒ$êá2E*"­Äùõù˜40˜Ýå.i»t Ä~~Ýæß1È ãÿ/߉͛³ŸÉÔ»ÿ{ùnóÇ˳?|+cØÄ!:åÌæòõYþÜH)·q^ÒëÍ廳œû 1«µ5çÃÅV >Z%ü¹,ݲ?¢üð_—Å’J[¾¤Á@m°êåVùƒ¥ÆúóOS3º Î¿.½—Ý™{iÏ/Ͼ¡…lؼ¹;3ƒ°›ÿ€ >“ÁèAÚ˜¼Ý¼C7 tî¹>ûn•W á3¯‚L5·® ™ï ™¯Jï]é}[š_”æMiþPš÷Ô4Jj™ÙÈoëÅ…Úlebqb*¤á‚“X÷ç‹­„ Æ`…Ò}[d÷žußQÛDíCE¦c¿Rw…ªl&C»A… 3?”Ýßðm­‚ ”yDáËh!vÈDìÖ“ c° xî9FÐ1 ÖÒ¤»3{Ät¼ Á;8áÎÿy^º¿+ÍOË_—ÞËfg5gA.ÐÆ!¥´<…C˜bPºfÐg…Š4oúè©P2½4 Ô¼+30¾¾oL%7?”泊[m1‰±0ÙŸ5õ«2þïÌfÛËL„Ú;ÖV=ZÆÌ=ÇpÑã—yŠACe™0oŽf&¼»ØmÅ`õùËýcçÞ^Ô ÁŸá/â1•Êü¸+J¾˜;õÞw¼-½¯KóªUˆÔÛJ6÷2É2Ûh-&o*YŒÏue1W ÁyðO¥÷Ei^w5éÔ‡2ð²Kå]·—ÑpC#v([üI%œ­”1B5dlÏÏ»Q[A4˜#E 2+¹»n~ßåÀ›.q.¶Þ†m|JÖÄÍ4}yvùÉ#SõÃÊ€y²•,8YËÐ w5C\Œƒ3nŒ½Ÿ¥ha™1­¡µVò Þ ­EŒÑqh»doyL¾§¶ôÒêXa!|ŒìÜ­ATžmé)>G»­œB‡ZG²;L`½ ‰3Dª&ôC=ˆQÀTàdŽâ‘S±DŠápJ {ê9*†ËÁç)!â~°ÖšòI`­–œµ€Ø'νN¢7©÷Tø“ÛÚh™UÅ8á!ï³\D:ëÖAúõ@ko"ýT‘÷ˆaa½òÓŒivþËÎŒiüó2ã5·üöеï2ÞóYºz3Iµµ8æëbšíúA‹i‡«Ì)z„)(ÒÔzô0¨Óx“Z7T¤437’»ð£k)}ÈhÞÆ8©ÌN5ǭ矒»xEBrH´ÑI‘r7°–„(³D¦¾G$¡mÏ6!…¸" uJ(®T?^PÔžPÀVkY)×=õªþ ¢ï§¥OÉ,bø*/Øðk6|\Ó‹P™ 3£4BVÆU#íp9õ×\¦]Dé²;Gd â²\1¸†êYÄ×#ׄåTc…„%¤ÀS/–q3õ)vpNÖ®d&™ ™>ðsâÞé—°=K,úJuß2esÿ´"™«Ìw!¤‘Z)«ÉD&«x5é…¯øß¯Lˆ9ÿ]_ù3}.ï2Ùrˆ~R…Ìwn67¬½Çk…)‹]ðŸfwSçµQm5寰µ£4³¾R§¯í|©3˜d¡éópâ-R-_sÔ§[ÙÓŠHä÷9ñà!--߉+8‘AnŒGü)ϲ@¶ô“gÙ0¸4E€‚<‰×Áª§ñáï2O6©àiãù©[ÞTúIbô+ _‡·GØÀùŠtÞ^oÆ•všeÒáP­ÉŒ…‡ŠwPJÙÄ/nˆÜà–6‘æëÇ*ÆÁœýZ‰¬W7a‹Sþ¼ï¯Öƒ‹2n–=ÿO^s¾¤@ˆu³èwÊÛj_C±J÷cÈš ËWðØDGãkhjݬÈCóÒßµ~© tOáT¦º1ÎYl#«4\›{Ž*Vi02Mˆ^•ójþ'§ ½d+nýfÔ ä†?fወ6ÏnÉRÐ0ж$e«T¥my€ ã€ÕAec¸"Tf0×Ïeá÷ý JÊCš;.ÄY'|…x»I¦þ Ч¤q£52;âŠz]·‘[CÅ]7MT€³²ò¡kÄ\åáQ¶VB½Aè50{Ó³Ë7åï¯2mˆd‡wDêN(øjÅQKøp}yŒá?]ì’¦j“QM¨.ñ$¶Ú:¯3Í'õÝN#Dè.ß1ÅMêæBèÌçT»/â·Má*HÐ*Ã|âÄÇÞÑX$tJ¯):4/¬A´ˆ~-Î0†e}W®£ W@žºŒ«¤E\_€ H ¡Qž ‘'ìTëiòŸiÿk YGÿ®¾Ø6)Ò°/ŽÙ¦’ß#–”\°t´a®0TRòX yöÔsLIÉKĦ4)â‰|Ðù_[äþ¢ô[RòÂ΄Kk´/õB' š²• o™)i ÒîÉÞCÒµ4VÓßÓ´”2s"¸óá†ë ¯Hí²n=%Õ‰¼*ayM½ðÿRïD t¦I:Px­2·›ê=T»0xåÆÐ&¢qUª\Ï­‘4‚¶oQy¥6ˆBメ ¢Kô˜ö܉҈ޓÆ$¿@‰£CŽÜDžÛܰå|LCžÑˆ( zi*£Ð,>¸Uï²ú^-˜žv”ÈEpÂèJQ»ÕÊ÷Œéwù‡Rf]@rͱòªP§ÖÒæg|; ^¢…ÂBWv±vBæk9nGÊ›P¿’Ï$ævìˆÀÄ{x#)Ù˜šñþžzXâjS£mI÷è9à6ËC ?U#3¡uà]"kUðõb˜Ž°‡éBEuj²T±«Å˜Ùª¢ Äõ"Ãnø¥Ÿ ȽwU±… zæ~’”DëG5qZ!8AáS+)”ɧpÐc“;Ã[¤á9¨äî¥x;O0wºä×Åc¬ _>šÜ­0½8§ñÝ’g2ÂíB#ô˨ÊMÙîß.D§Í«ŠO8Õz긶)¶¥¾¤¶/V°ÉuŽ ÆNδ>`$»G²8%>óR’Ó± YZ‚ÛWj¾±ÉkJ·8ë ÎoWYùq®r¬h pןºy;m½¶«Ñ3{7[‡ «Ñ1Kì1ŒnW!†wsêf#ö;fçË! K#WŽ\Ö’o–2˜S ;2vþÓ7“¾Ír1&£ 7ªu˜KÉ^ávg  =ÌÈŽ-lD$r›Ç?q›ûŸe.—õTÚ™Œu”[f®°/ýÝœÞX: ®Fp˜ºbg­= ’±Z¿È‡nÊ%›œ2MÇÃ'ªsK ‹Ë´ˆ0ßœ€u¤nT¦I©×4§d˜ßí\/P%B‘èÉØ‚tãèÏ5™XÚ•X¤Yð„˜cS©WÇÑ…Q^ÃvÇí€Êo΃Ӻ.¹%ÏÒÁPú»4¿ÜîgýÍŒU×|HmW´}ݘ(óÝ5×Ó¬¤§Jä,;n®Å¡íB é Ú…š’½t¤Ú9© æà;²±2ŸjCÁ~Cxøu‚iötù*JM•ÀïÓV¡.qå†Z:#Ñ‚.µíÂZ4$èõjæ%ÙËëJË”s˜¢¤=éØI³H›ÊÝV)ÀU‡ÎÞ×Üèhn#eãS‰ºëqJE`T“¸¸KÓðþåBI×ÌãŸ(jX&2© ìÄаjSÇ1WÂB*[oÒ}ŠeÇ'z0þüó2à¿¥÷‡Ò¼Ÿ›kç‰ÚÚæjáÓ^f‰X2š&”'w"|°« s?Ýø ÍzâT¸ïŠË¼$4M§n˪¥¦ƒ)Y—•ìi$kW!n:bÑíñÈÂ÷¶õ–Ó‚¯vÖ-‹?)­ê{˘‘‡ŽPÎòzÓ>Ÿ¬õì“Ù­/ÆÂþ¹œX|Š›Â¦'ìFÃE.ݱt-`ê9êY—|žbðö€›Â{uNºàËE¢‚>j¼¨¼81‰Â °Ä¸V k¼¸r +©šÀµ¿ÀàH›P–‡»i·ÖúEPŶè*þò8lJh„seß«§Åo´¨\ðk‰kÕ öÛäl£!œÚÖ¾¢QQYñwj+U$5!‚"õK—ìò¡#~#Ó‹¶" uê p n«tÒE;PQž/Ϫèw}oƒ8ìüìnÓ,Øè1›_Æ¥—qî9æ²QÈ¿b~!7=[¸½ÔüªÄþBs.’ Z–Q§éÉ–r§P‡)€}\MÝ÷]ê¾-Ô}Yz?«]ø/MW4õ$‰e}ÕÆþuR©¹ß;X‚˜!˜KP{zSw’1Y<‚#Op ¡E«¨Ã0÷F‚ .^ ã—¥ù§Ý(RÑ¡§›ØOÑf£}FÆŒ$ª¸Ïïs·ð5n¼ËݺQ»-òf< “ƒ^4xò´â¸±nˆÞ­e̽â¸7‡d­kÉàÚ1ÒZMbÑè%î¢:£¦Ñ‡Ÿ–«¤ªì¯¼ U‡}¤ù~wgâ•þ×íѤÍäskªŸû^¥híµB[)"Mê Û'¼@ôãVOí&™¹…1M“Ïojˆì]—“ÓíN/§šàô¤ÆÒ™C`5e«©z’\èn:ÔÚKs|M µõùuê”ë'±+÷ï2Í”S4·z[aÌÑõiªSëG¬'H•Aƒs Ë¥°l3h{Ž Ë6ƒ‡ô&žvCùóÒüï1)ˆ_›#%r=Ë#¥Eåë#¥&Å\>®¥ëyð›-b’•q|\ûm2"¥èM{\Ë_È&ªÆ—³ìq-iz ÛϦâ òtýêyúÀ^ÔÙŒ/kùý7¼}e›^ÙÎó#§½ãmFE÷Jf·§žn3R Q˜_ý6£"Y/Õ®.Ë]ë\5b•ù¾¸DwìDn:S—©ÉÏPù@AMC¬Ó¼‚º§˜›|ýÛüKçêC 'y”6§}'v…V6ç±ÝÓ‘›<Ú[ßË×ć¾è(‰ìô=…âbs÷ñÐû`°íu{ìðçÏÄ­<žÂ"Ñã¥ÈÇÄ!t‚Þô„ˆÂZ²¼];t^{ܳ¸Z½t¤C¤z@ð]ÓAÔÑw s÷/úq§éCN2"Žš}Èiê9áCN’.Y=¬à×FÛïºîî½x}Àwœð·ßÀwœ|£îDzûÛvŸã^ò'äc~ÒI ëñ©‰\ íæžcÊ2TÜ iRàyÂ:@æÝO:µŸF™>3÷²å¦¯Bi÷˜ØUOOh gá4énÁ)œÅ=~­8ûàoAÑ‹ óß‚ÊcŸUå­#˜æÚüê1_1"’pQJifzÅè€A玣1::`¥)»Ìæ¿2~â?´FŸÚZ†¢ù±ËÐë²=Æñ7Í€Ü|Qƾ/¥¥r@9~D'5ŽÓ×·–÷PŸ€ã"ü˜q|ì8…ãtwIʧå8c3sµ/‰ãp¯OÅñè©øî ǧŽ8éÅ/\ʃ9þêß«ã7…·/~K:àÄ¥²…ãSÇ ô‚K<1ÇŸVÇŸãkÀîÌ«L'pÙwL$ŸàUn†æí1Tsº?†¶zr°¥çð.[§â(‚x1'>fnÎlýæìÿM ¯endstream endobj 1243 0 obj <> stream xœå\Y·~äG ò4+xÛ¼Ç$r‚[›'+{xwì!k%ÙÖ¯ÏWdw³šÍž½,ÁAˆ¢jŠÅº«XíŸ×¢“kAÿëÿ<¾\‰õÙêç•L»ëþãËõ_V_ÿ ´]Ç.:åÌúàt•#×Ҩ΄°vÞtÚªõÁåêÇÍÍê`¬ß§etAm®Ëîû&ÀyÙ=-Ë“pYv*»ì´óz7-ß”å'Z%µ†}«\g•Þ¼Þˆ“Šà ü¡ì•åEY2zÞ–å;~ܸ{Ü$­M0£áŠöQvBð³²|½··/eŒµ=¯jÚn ºóæËò}Y~5.ÿ{ð¯U4À!Ôz_*œdåúàBgD_UHf8k÷®u):ðëŒÐ\ûŒì‚VPÀtr:NãINû¢sªÁ¬­ÕAùŒ¤Ra;Àäc“¤‹Bþe“|¦GM ï– ¡ÉNëž¡Æÿß1”qñºi'a¨q ýé }Z ýƒ˜ü]ú¤úGaèÇ&ù,„4É¿§†"ÚM/(A £m_i°ØSœŠ3.f"Ÿ§ëEmELŒÓZ +±m¢RC¬Xkct8Ö. é`é£UÂ#È–àdÊf°–^Z'0tqcµ¶†b7›¨Zƒ˜¤SXK"UÇN8ÄÖDê(¡u¤Ì†ámHâ&Rm4¡)Â奄ò*q)¥G+Ì{YvšÿwéoVßÓI6¬ÏnV¦vý ÒŬd¦óa ]PëK/]'ã¸s±zuç¤2ÊÎ%ª >æ¤ò¤¹%·á™dZ¾j¦UŸ* I¹š’1$„‘›P Ù³xµö&f“±^-³6h—ÐY´Ò‡¬= $¨‚†lÍæOL°Üzå‡uúéM·Èü8öJ'TP–v‚ñã^Ê*GÆ”ãõ„³ëôZ’Gq“;%ù…Oó®Œ 'ÀùÍoù\a*oéßñ){¼NxáÚêjt„šªk’L­®ÙÔvžÕu”bRW#½îàóŠj0¼3æ!ª À`¦ªù]¡ãCY^ŽË¶Éƒ?BÇáÞ=ÇBÐ=Ÿ¥ŠqP ­¼ƒ‘,¥‹%`ì…‰$ ¹°¯Š3cû4Èöy%ÿõõÞ>Ø„@ààd ½Qn¤R âŸzýº*»¨Í5-g^?í•%+žXØ+^¿ÉJÈÁj C_3jÒïI,ÅA>j¢ú;ÑÇ'É ¿púŸˆÿ®#ëèéaÎûìʸæVX-M¥UÉ\•åuYž”åYY²k•Ý·eù¾,ßmw0ÉC{ˆešcþR’Š7,ÞTÅ„`ø¢-ñƤ4&ô~‰Çp¹w&… ¸Göl~â«ÞeȬª¸B»VeUíwy\dÀGì¸Ã 4Q¨79#áû¤](”P“ýÞÝ’%|ðø}8Õ!ÖW‚h#ø§8ÿéM¾/4s‹Úéˆu›‘Âý„Äàf±Š #)=Ô(HÍ” ]c¸F¡øïµç’ÕÁÇÉþ^)šõŒ¢„øxÎmúFUhéàE ,)Ü ¤Mõé—H¥4¦b° ·ËœL…‚÷F#15H‰»ˆÄÿí¨å×í{ D½-|§Ã¯c4Œb´<ÙjgU:3é.½ÀÚÖeeÓÕh‡‚QK”7]4®Î$q=a$|9ü|Q§/èÒ(ÛW.¡¨ÝXJ•+]!Á5UhL›âõàÅÀÚ†Ó£³¡6}"H[]©.IÌ 9Ü)%p½­ bš¨?3‹ŒÎ¶]Wºà-ÆNÆÐ4öÜt0ˆtÂTÒ{5?sÐd¬ÆÚ¨@ãÀl UÛ¼®Lá°áÕ_O2„þ¯FUîÓ:µâO_&õàËI1¶]9³Ê)]u*;¦2×ÍßU¡Ö²‹¡2òÄ%17ŒŠã\}ÁÎXSÅS"ÇWEÃy}=3±¥•³ðËUñM°ídi$Ôg™¦ Bî—ôÁ…žå6¶t)é2w·|½ä’¿ÊŒ c› ëŠ_WIæF±•]¦s@ú …4Ê·skò4÷;D…‘uöD»6á-ضé5IG?I^CA¼›nZH×Y­ÂúàÅêàÙ›¿Pd‰Ñ+9˜³èRQzv½·2sóUklB´Hç»ÒÝcjƘ›L)%‡ Ös•†÷¬„IwÁ¿LxÅOyŸ¨cXðcíÀbFëÁ¿+!ü?eù¢DþÛ»2¨ìX²7½UMëŠ(Þ²uÕK7ÓŸžfFJé¶›D#ô„×sçJžeÖÙš+f¯ Ô¯º¾ÕUT­˜²ÖS%Ã"È)sšì$Fm‘´ð1ê€ÚJÖÏ<2 [2ÎJ\–ˆœòZÛùÔmçþ‚£&§œ£Ô æ„ÉîÀŠ€ló í*ø¾*ò/¹vʣܪ"D/½ YF85ó¨ƒ0ª‚`D^9;$}(‘m«g~i(CD?a 7.ÏäòT‘|5$¢Ý©Q `xüåà}•)²‘:|)^×!”îKÆàÕrŒe × LÚ¹®W•_«94…>GÝžŒÅæDûÅ£bD`vK¶BÖŠixÍ^9?"¾JTSL~[¥Fx½´Ùf¥ÜHO?‡=•j©dilfÁBÃN#ÇÁ8±T-ÑÏ3Ï®ü–C1yáÝ©vÿ"y0I¿k”³hñSÆ'½£^£œ`\J¹qsø‹Œ]ø:”&ìZLºM³œ”­.HT˜:.~‹O•ãЉ½uj$Ò©¤/‰¨x[ "sÞƒÃ],x¼Q+OPU×",KÇ-t¦FÙTµov2¨(´œÌŽœy2ã‘„éÓPj}²—Ÿ—eyÐh= ¹@Nsm´’à= yéÆ¿ÞçÉR;zÎY#oìtP·?Y¦ÝöèÚ‹²ËfæØdVÁÛngCŒEõdy»Þöd9 ÄB¡Xõµ=«h»’OÕ‘ëduQ"j*;3OÚŽv›g‰Uªr\K¡°ò†*:*8οæuzÎ\r×|¬Éûÿ–Ï¡g½v4g°‡)Ð*g'O©7™«ª®ôh“ú”<ÏžDíx¨x´ir}Z?ó¸þ)Û²qÈÒØsÍh³“"ŽÀ~`i~ómvÃÔ_9͇;{aXnã‚_ÊÕmÜ…Ìອäeéu!˜ <1³à¶Àu‡SüaÎæÞÑÂëáj&ê*l}@I? Ëí­ÊÍ8¥qU|T1t>¸ôTïšÊŒ4%»Fiæåb$å.a‰UÜ*®›±cá-¤æä½ØÜÊPÐ&o¯½£Ârm@i§áìuH ÃÆ=Ü=0 ‚! ŽÞ¹»OTÔî>SÜžPy^›ï|ewÑÝÓvÏ·ê}bLÀYŒænŽ»Ð“¢dCö&ÚÒÛ§¦¢¹²Ï†bÅ eî·T^dˆír­šI¡/ zŠØW¨¡‚ëgüÞ˜' ý„–,Û² Çí¦ÎêJecÔJ£á½ÖÚùˆàAcUÁ5îÜ'G >Íêj {§åcUü¥þ´n7UÒƒ=Æ4Yº‡1¸W$~Öî·¬!ÁŒ3ui›Úñɼ~¨¦&“ylدíŠl&#Mãcl83ñd2œ¹o¡s^™ÇDI. )sT1MÕj+Œ;÷šªƒAÛ„äº[Å¿ÍgÝ[ü`–íÈðOØeˆ™g­¦>÷­ƒˆb„Ê 7J Np¼Ö—üJk˜å´ÿ.Å(âé¬UZMpÜ{6.[¡ìøu $%Ýs¶½µ(xéÁf¿ü)[+4e«è±Î?Á”­Œ‚žÎ×*uÉM²}—8}ع—íëÎeøSþ^µ[]ÿT6NAþ¢.Z>gkà7­kä$‹)~úåü™vh<™×ÍÖÉ(:Ó›]ûA¼®¶J¥veUWFçM{d1·¯ÞE 7¨¯‡l(°Ï^KÛ­˜¬áéz1EßS/æ!ÊÞ÷blTø>Ð=ß-Ï©œx{ÚE¤±ºF¾ý$õå޼4…èowìÐG“ºj±éÊ3òvÇf÷'Ví¹T&ú6DÏڹƹ®¾ï=Ú¹„¦.ki˜ÙQW~‚„÷qX'¤}ß÷™i&l}b¢Ãm¬›_Y”…&þxØOÕÑC«tªzi"’¬¬GŒh—Jõ›«¶0‰ÛÑB¸õL*%`‡þâ¤ôï´öÒà¤~¸ þâ’'Ð2ÐÐAʤ¢ÒŽœ6 £·Z™œ£äm‘HÕQ‰ØŽ¨Cá d3¥ÕcæÕ8зóýÛ¶«_Š Uà ÇO[ ƒNgíàÅ ^xì€ï6ô•D\|CZRÖÑ «v¯QºSÆLG‰Êáó±Žqºi$ê&‹¡îì1élQLâ Îݼ~½=ê(‚ÞšâkÇHr\–l¨ú}à¼$$]µ»ÜV™~÷ç ùQ¨ñ tÛÏrvráB™MæPM?ªâBÕña-%5ÎeÕ!çg†–ý Y°éGt l^RO¤ì+úžé=Üáó7 &§ñÂãÿYÊ:À’UNã•tpMŸFÙt¢ÿ’Þz„â¿Ì÷Q¨¶Ó3•wi.}~¨àD”í!dp: çciÓ˜§ÚØQßYÂy6_³[¼ÌÖÉ × $S¥GwÚSõ†yUîÀˆí)1PìfqD ú4¢Ÿvº½¥nƒø,}(IYb´¬5ì< Ô‡*óK¼Ö¨ßÊøç}[:NA~þŽ“£—äøÙ:N‘æv­a§aç'ŸRé5œvsnXÀòÖRýŠÏxYvw~EPPd RQÒ—aPt` çÏóBÄüïülèíèGö¯¿Z×H†/ Ǹ÷÷ÿm%²|â7¥›ô,-U—f'Ÿu´›l™R7þDz¯}¼¤^ôØBÒä˜è‡{‹žPtBÉɇ¤‰Œü”o Õâê6EË8ö± {q‹hcõ!yt&Zë:—"ÉÀÄaçL¤‘;çÕnL> stream xœÝ\Is·¾³ò#Þ-”Kc_ŽNl9I9qlÑU©ŠsD‹R…¢l‘^”_Ÿ¯™A<>.*Ubâa@ïÝh৘äNÐÿó¿/Þ‰ÝùÑOG2õîæ^¼ÙýáôèÓo•¶»8E§œÙ¾<ÊßÈ4j2!ìœ7“¶jwúæèŸÇWTcýñ‹ÔŒ.¨ã·¥÷º;àUé}YšgeÀ›ÒûCée³½*½íÄ©ùŒšFI­÷Ä*7Y¥¿?.#ΚïòàŸKïóîl=?–æ» `[~Ýn£íek¸¤ûÉ([-ø“ÒüþÑ£)cœ¬qÕ®íª€{ÕÝó³Ò¼.ÍÇkó_§9Š0„ÚH…™¬ÜžèlÑ— λ‹{÷èÄ[!&gú·È¸àÔn¯·ä´Rãw§_~ò0kí€fúô[#4—#§ „%a)M'„ñÄS'brªA-´­ÕAù ¤7'Ãäy—^WÝåÿÒ{1BøGNZgÚ÷€´ýˆøzÙÝ8Ó烯# ¯ÇÍÀn¡jäJ`áË“0$»qrÖÆ¼ÞÏj£¶"¦9´VÂJpºM´Bj(-´µˆ1:ZÚ.‰Å¡é£UÂCñ”àdÒðhK/­ŽÕÒgÆjm é3n¢^ÖDebЖKÕqÂjT^ê)(¡u$mOLàmH˜¡¥ÚhB—ˆäÜÂO‹ÅøcÁÝ×¥÷´;àOk/ÍñÅéÑ74‘ »ó«#ƒ%î~…ýòH†&¯wÖY7i¿{ƒh"ÖÚsqôôÖv6êId“Ñ&ÛÙ³²Ì=êž×Ôüjl™=H¼Õ%Œ•“ «„‚ä$œ1WkobVëµÑ2ó‚o yAë }È 0ýŒÒ“¿ÿŽ‘õ"·^ù¥>½ÊÃÁEø–!œðÂu9ÂÃoq¡æˆ´ù–#²Œvü©’¶ÄÚ®fÔל,â}¨…PSÿóÖ1*ÔÏkîR¿KQ°'p¼ #‰½÷*ô2Jsò¾(˜®†Ïc‚Öë§$ö‰Òr2F“ÂPa¹ôÌ:RŸ°ˆVÞEÈã‘.VmÉ3Ê€qj>+ð’–VÆbG­Ëò8θNO+WS´z¡‚Ñ~å=ù]va¼¯hÌðÆÙ€Aé ²\ ¦êV‰dáN?l{ÖÓ·}é5„A¹LÂq™7 *n¹¤w•/•©£ä¦KË¡É%¼¸HèñŸÉ;ËÝy„”Æä)uˆNÇ‘ ¢ ožåcjŒŒ®ƒ…ÃÃ,F¸Z¿°eqxŒ™®gŽÔ¢ì²ªÙj¹pny21ÎÍ3“ ÛÚÁõ×[€¿Ðp [éû×7éäšÕ¶íiŸ£†ÖzöÒ°@£-½¬hÌ#иEº‰0Hï2 ­40„&°+?¦6†x]õ¾Ì½v¿TÒ6}¬Tçáßr[Ä%,š Êõï¶aKb‹÷4Ì…‘Sæf½™ÍþRkô´Oø€¡(LÅÏ̳cÛÜJ_Á×DÙ,ü™0f*¦(;tóšÀü0?j ƒŸY lN4ÜnmGF£Plâ^òÓªîgg­Ýœr#òóèç|YÀ†+Y"sOwIÂë0á` Š•ˆí(k>¥áÎØìLCo¾Ÿa]Ig厬[8ï*ç±u_¦c>ñ–ï‚9)G¼~™Q¬-IXâuoà„’~Ê¿{ û"]hõ|Z<¤_ɇ’°ŸÕ ÜV\Ì•j`*2kÏKhSJµˆDB[>yú:øf.ÓÀ“ðíc ’n¿ P.ÂUŠeõQ93¥±Š¬¾Ã˹êçÎ[q´pƒb>y¸·@hTº±®Š œ³¶jÄ%9§¡ÊÖ¦ªÆnš®äó9Úµ3b$ø×´øâ¶9ã¹cù r?ÍåÄääêà‹ýnj …Z²¤]E݆ÁrÁÇåC™¦ñJË~ºhR*5ñ4…ð‹ÊÙê"µls×Y¹f–a¬Së @p“tzO¼r›ì6 ½ŒuB>…mBžg Rs“`N½7æ¢V+©~ÜH^ëF 衼ÿ]ö@”2±€[à¥Úï#™ÉÅp€â_’?Úlg7“‘·×+ 8 Æx¨1üYGÙì[« ø¬ŒT« ÅÁí³EðÓ2BËý‚9÷LžUßõ*x’l«z6¾Tk³±5Šp:„L²SC!n°¢k–Üí±Ì¾Y˜DlÏDnÐÈIÞÕ|,eǸôÜ6ªÈ´@Ö/·¾ÒÆ¡¢€8'}Ä5t‚÷r{R•±àÑ,Á›f7ÔÛ8ã›I<œjÙD1Uæ<-ÃŽ….¥ fÙ†( º‚t¶ÐôL™PvȪ&»O~Ѽ’”~ª‡ki!¬UÂ:á!í—[¶wÂÃ$?Ìð]–éç,Wž°fåѶ›4鬬 ÝHA×:›*„‚<²f¾í2[ÿ¼l¦‚­_í9ÿ½_À–׫™bi‚œ¨/ùT8àH‡{èáÇ`ê^fI[ûzþ°x¶%RlKÈ,vYÁÔ'(ƒnà‰æóÝøë<æx?3Àq[òvqa¯‹Yçkya\S$3‹O¡4Üì×NBÝÅ“Œ­ó¾âé0-Ÿ’µ~xJêìu;—!ãÜ–; Q¶qÄõÛ\‡ÛM®ãA"?å0·q‘ž±à}©'Üžl`\Ó`‡hNöÆvû=r 'Õó÷"äÿ(Í'E¿=)½.Mv4þEiþ­4Ë‘p—’&’÷[GTMncQYWðIwîïÊêÿº_ÓÑ8´SÑŽÅzpp7↼0Kåm<«L`í]0$¢Önÿó­AÖ%`q›xN9»ÖõÂ÷‡˜XšER8ɱƒJQâï° wX¬{¢`ñˆÅ¯c¡IìÞ\1 A”H£Wµöåzñ7 ½ìɸ<áí‡Îšß†c©ü¢1À÷(ؤiè–e’möË5 1§Z¿š£ùÞk/m”O4÷¿={ß$_åÑÑï­FIÔõq@?Ê礕.èž@'¾çîu^ap’;»‰“átKVáJŒlõã+ïY"¶õžÉ+7žc§Žm)ƒ˜4gýmZ ̈t¼Ž£å*Â\¤ÆêØ(Oà£)òaÚ„W„pú.gŸj.bã0úår}‘YÖ\¹¿WŒ&]Ïú†ÐN!Rá™ÇT&¬=w)<óЇ6¥$ÅÍ…g©·_“ýUé½[á°îŠ•øÄ¤Ö›æº˜üR''L 7 MAe • ijS° û3_B^âG<µÃ"ƒ><÷Sèa˽ÚäÃŒr¼™zhPeííÈDó#ñË OŒ&ÕÃ->_a[¶ J·‡+/6“QܹL€yëò”‘?Õ©VLí÷sð!‡Om’ ƒZiÿ½'·° u`Å]µ%¥ ÃAe–ÜÃX"(é0›˜‘Is‘YýÀÚ9Ì5ê™ê4‹NõcE‡œ§uÐÃ13:ª™-u:aGG#‰­^RÑá„MË]æi“YÍ'€V*ðW²rFz'=Í¿ökºÆ¡À©2[wfF$´g4:[.%q>[)Ä…0TÕ˜ôs¸ÑƒKô\š¡ÏP`Éb®YÏÝg¥y‘áñ:·AÇGŸgÐÞ©j…oÙìé&)ä²X•Z&à `ÞƒnFƒ(Òôƒ ðSà%ÌW<ÌH †a“V^I{‡j™@ÊÎôr±…i7Ú…uÏ)Ú—œ—:ëÈý§®û¨~ ò5ß•=®˜“ú>¯È÷ê!œºw5@»*ëu¿Úrn vŒ†k±šCrÍ‹›¤b™æ%ªxµî{{ð6X{8[>Žt}®$ú%ØÉ|—á$¼Ÿ÷ÕÎòD!º*0hóÝ˶ËwßT©H)¡Ç•ŠJ»¸T*¦tàuéf#r¥b„fê^¢BE]NϾK‹òÎét,$Sn-‡2HmfÕ¼ ðÙŸÔ”JBõ°V»ã/Sw@áª{G¯óp+ìœ Õ"x/ô¾ã¡çT9-ºv*íä˜7 U,Iß¹èÇ<™ÛXÉ"Ÿ{T »?Ý£*Ra|C/«Ÿ†´+ô4ôžÊM‚‡øiMøžÈý;éVeæ±`œ°ˆ)âQ¥&ó[¹À²n^¤ÍES×±yòö4©Ô©£› Ëïó%3 ¯®=Q­Ó!мlc–2$o†~ %àpëö`•ªG¢¡ÞÔ„>¤(û¿´64·5ãÐÛeï©—L?N[RâÚø‡3-„w«ÔíEvFCã‘d2V vs5±ý¬¹N~"­†ÔÌÑ2lîPÝÿµ ‹°Û’mÉ[3;RjY$ïúúÿûµÛHÖ¯}ÜøˆÀ¢¼èìE¨ÿ•'œ¸ßä¾Ô×îÊæF©Ð% Î = `h}þóN/(@Ã÷’Ž|ÂÍÖv'ÜÞÚnl,½ ôAë´‰9v¹6MÜf‚ å*7©«µ ù¬|YÕô)Yçì0ö™G4·®ò²éšMsÃÁøIiU î£Ó›ñzÁJ¼Ä‹L‚HcáEºy?Å»ó"¾Ÿblx1¯–Š¡fVKÍw¥ù¬7 _ç!“å’ê6ZÍW˜CÃ9‘ùŽ–˜W˜æœŽ»fn³$¿²{÷©ÉÏå¸ôêÀ(£<ª˜jŽ—hN/ë¼t§àdsL3¨‹àa7òŸ,eWÄÁÕ5°¥ØxÀÃp|”{&nžà@°HoòHá-Œ#=Á!èT¬=wy‚Cxhå¢}èìÖ-+8»¼‹Z…ŽT£TꥠëDòø3ú0 n.ž‡˜XŸðlÇó£q2ÿÄÆóoëóÙäµÈ].ˆOð£ Í×ý*U›µX¾ìòÓ &…îl“×__¡¹áðúŠ¥çõ‘¢lo7FO»„òÞÁ9PA3yUUùK¢µ˜¡ÆO–ôm»Ô‡…>€2¡ü™ÑŒèZEJÑ݇è1ÉbCô­LCö»[m†¶gϹq>ÅX£‚2þéÂ9"ÞÇpöâO`ž(8OÞ,zÂø^6=•ª‹pÃM»&ÿ}‡›v‹4.µ A6Wãéꎊ¥„Ds»ZçÑ­ã³å ;tº‡F…ÿuN»¿O†nZÚÇ_èêúë Ÿ ”Æ­^ÛTP^€¤·o@sš{7G‚±,ÒUwýoŽþ äÓQendstream endobj 1263 0 obj <> stream xœí\Yo\·~ú#æQ <·Ü—צI›"mšXE 4}°µ%­%;ÛIúëûò.‡rf¤‘²…a˜ xϾ¿[‰A®ýÿ½¸=«›“ïNdÚ]ÿ\Ü®~w~òÛ¯d «8D§œY_ŸäoäJJ9¸•óz^¯ÎoOþyêÏÄ`¬ÖÖœgk1øh•ð§rÙÖíjÞþ×ùŸp¥Ò–_ipPÜz~‰[žã°ÔÁXúqZFÔéËîyóÀç]ºã“ó“/é"V7›3»úTøÃ‰ F:ÐÃôàíê;ÞÑyçÕÉó.­*ÄgZ?˜Jjm4ß-h¾]v_,»ìÀgËònY~[5Jj‰YñoíÅ…Z­ebq"*¸á‚“¸÷dzµ„ Æà†eûõ»7l{CkµX,<÷­ºÉTe3:Â™ÑøvyýÑÚ*ð@™Gd¾ŒlO¤S1: Œç‡0:†ÁÚtÒìetbÓà ²ØÁ wúõé²ý|Y~¼ÜñŲ{^à$¢åL"d…QHE©-¡@ J—zÞ|@ó£?‚œ*!Ó#‰ƒð¦6/¿>+H±–& ÞhhŒ¬VYRS/–O_׬®|³ì^/Ë-ôÓ.CéES„˜,Ô’_ˆå«t!!—Âùðûe÷å²|µ,¯š4dDf.šXnš» ‡;B¶RÙá æ¬¥Œjv/®_ÖĬ?{V0=ÀHVRá&[˜§šàiîíÙÚ[ȬØUû¾Hnu( ágÜhÕŸìtÔVÄt‡ÖJXÉM3…µ1FGÈaíB…%çÖþ­¥‡þÇâ s£Ï€K˜p ¢°XK?Z~'F}"£¤„ÖÑCGÀzeUMh; £à­=4!8²tPKöмÔhO;òrðÄ@vd_°CZï”L°p}"Üuâ¼NØ…üwy­–YRŒ¦÷]f‹ˆBg1Ð:H²híM¤O©i Ó ë•Ÿ &èüËÄtþÅñ;Îü—!vÅÖ›Œ÷JSŒbF©£ÚA~±hæÁT;D“A31ÒÎceŽ#€ “^ˆÑý\heKJÑP‘<óLŒd,¼Çé’Ios”hcœ$f§”Œg‚Öó§d,®ˆGau˜.2:ÉQÞFL™Y'ÁÉÌP?Ĩ ЯçÉ]+GϳÙtC¯ò3nqH@è”P\¦þsFîFCD€‰&iÑ¥p½£íÚÁ÷Ûb<'¼°á×¼dÇ_±ãW#t« djô6£“ÞUÒ™Ó~IfM”s†Ã†aWˆWCò ÛgóÜ|G2ðü½¥ÂÏWsR!ÑsdêE€Õ¢/­0:Ó!Éàö %û}‡~—™~NíåøHÒøZ¡K9©üJ"<®ÿM›d¥Ü“d)à7ØÒffsÄ¥ûŽ­÷ØL­¼câKŸæç¸JÀ3­à#¦WÍY–å~D¯ Y8Û¶l ä|œˆë l)V£Ô8]sŸì’6aŸ±uŠB’C|ö=­Ÿ-¤”¤|r„`rÞyH¾¢ $6„øÖÖÇðDÖ¶aæãPK ê(0ìï鄎Â4b¯|:±× Æú*…#áyEÓ²ŒÑ^PîoÙúqÄKva "]ñ"Ë!d¡P²MFî¸ÐÏ× Î¯º*9Ÿ¾Y¶ör¬^Aý<…à•2Uá€æ¨*øÄm&ÿŒŽkDÔñ@e)ƒ~OP—ÖÛd Š»‚ºIöšºÂà¤öH)ëIÿV&ЩÔapjÞyˆn#RP>„¢Zs_Ý>ýdYþðÀ€\G9®¶þà%G™.qi¹OcÙˆKôèÙHþ¤VUdN¡„Gä·wž”’˜¥Ï?}ÜÈã|lLZÜI”‘Ù íDêhe寥¢t“.W¦ŽdŸ ¦H7¶xÙŒë&?!m¡7Sö» Ì8ßʶ¶Bê‹m0Ö‰ò[¾n„ìéɼ²Àã€Kw·P mãVUÑ… û{@y#mï.oP9lŠ„¼Ä{Sˆ€ ÇaÇå2Û|¬$­Ô-Ý™ßΦ §3mã Ã%Œ+Y7¦Þn .Û?i[pjšÉiÖœvŽhwTEUìÀ‡ªœ|`0 õ³w¬³?[ Í0¬8íшäsŽéÀèf°nHM½•ywSQ ´{̲'EY^3Êj“ Í1”$¦¤ì/¬uø¬Ð¼µ£Þ›÷c)ÒþâÓ:°IËÏ—?• Ñ`ÂJ³Ñ«¦¸Ü.˭ƦÔTŸÏM#9ÍMó%øSÿߨ|„Ææ\ÔÆæu“¯`—M›Ês°õùÉùG¿š&¬Eœð+iÂZ8Á#š°Kø§iÂBZíJ!èBÌMXKáÓ´óÀ&¬Í äù£º°÷ÄJ.˜8Öjc Ùvï#%*½¾+/ÇPKÍ;PGü‹3$_ üRÏ+ĺŠW5ȸ3[%ÈB”uâ>˜@;Û­!ÝÍ—óãåJªªPJ÷yw¡Ä› Û\7OR«G(HÎlL²i¤‡öL6Ä  IGȦ¡YÉfÆÙ«ÄþyùvY¾hh7ÂB¬› )5‹¿Ž˜Ë²û^æ½Î•H“IXk‰{…®ã=Õƒ±“Û«s3²è*5ê“•|V +³î]YÂ|=5Yü?Á€øM©½ˆ¡SɶÔ,ð ©/Jl›‘±½ðˆÿ¥^bÅÖÿn'ÓHŠ®ÿ‘Áfó‘ZÚ/­¿gà—LI`]CI]а§}o쎾ùD‘Û|X)Ywap‹—1õŒˆÀ.tEë‡ÒçIwˆõÌ4k&UEë5\0ü‚®Ò†¾sVê¢-Fz…Mþ% Y ðªl«mò좃F1)¡~I',Þ§rXR—ü¶J–µvÑët6ùBü­Ý^¬Ù鱈8þ)z’„R¬¼lr¯Dx3â‹uY¢=ß9ÚE¿U(-Ù@©1&3/X8=)Ÿ´˜È”Î’L äÅÏ í’Þ&½Î·yÛÔÙé’©@;Î+d|JŸ±­Qy˜f$¦)†¹º²S0*(Ûµdnh î±+/%h!`âÜãø%€ªŒ:ý~WäÜUCN—IæéReëâqBE©`'}êz«€ØÁøbÔˆŸÞÖTn'u¥D{FóX_Ø©VÑ»cîÒ•T­ˬêMeq\ß0 O²n¨>ê”~!QX«Ž·¸dO»Ë_ ”ó™ ö¿ÀæÚvKq:2J1Ñ®tãC³™1ßÛèô—;RÌÅè"Û›d8AqŸÒßaš¬'óp¿‹ É™ŒV=4¶5;Úè#';þlœÑš :ì«ÞN ^T\XÛŽ’¿ß8õíe¬D—v]Û°ë’ÍÍæ\vùô,Hr¤õå“UÞo¬É#ÑЫqͽTþßiäo„#>Ø. ²–Î¥¶ëŽk‘""<"±yÂÊþu‰ÿ±,?]âåEß¼d$i¥¦½‚[ò¹¦Aë`Ÿ‡ÄVEšÝý·û?ïŽë©¿kõ<½ò4Óäó§›Ì`í·¦$Sm1ãú² Üç°nŽõ*Ÿ¢%ñÍa• ÄÒL¥ #Ë,9 (ráΨf=-¦GÄ*Ö¯¢\lCÙQ.Ž;ò,F¯d·ýC>-F_«)P¥Yß K¹½¸hkm/úØžÝ>Ld©ÎÉ~±pd‘¹ Ò/<ç;˜íâÏ­ÕÇx™S¡ÓâßQ¸È,1Ü÷b0°^1„°G"ˆåX£6óBüžþ„¡2T75]…®°M9YsŽ$¹™¯ÍÚ•$¹˜ÁäêÅ£©7l¿sfüŸI=Ù2HÚ!üâà‰‡¹ŽNãdàÛ¯oœL†§'“0’Ô^ÆÉ¦#ÆÉb0^5Nö¼>pϲ½%«UûãÆÉ´ÔiYäeÔ¥ ¥‚•¤ˆ~Lz5~)¿¼ï6.ê BÊŽrGÂÏÈî¬Ý¢Œ=pXŒN [Ïõ2Ÿ`X,¡c&#.¢é¦ÜŒ­Ïòp™EÌäêá²~%g_²®uO,kÜD’°ªÊ»C®ššr[èüUÞœJÉõħNódp†˜Hyèë`šVY®Ì4›F_YI?ƒHŒôNÒpÚ²o¨1¯,h-‡ƒÑ ˆÎ\IGs‹ÉX#q‚½.Î\1è7 :‰wƒÓÓlpÑó—J¸0Gòá'à–¢†o3ðàt Ifàw8¤ €È¤é¦È ¢ŽS¡i„x·¼šá’Ý Ò,Ó¶’éÿ—€¬ùãóNØÎ*ì­µPÔøÒ“w`÷Ë–`‡Àáu~v`S–§ÚTÿ‚ÛÞ[>¯„Ê—ÆîLZ ²Š‡ý²„]4öó¬Ueõ™¯×©Œäžr=õÎ nç ËÉhÜ"7zè–rY.h1_Û ÅAãλüÕÞî2U 0%}o–üŽÅª½˜”{Š­Ò_öWù |»†>¤Ì·cûôÒó<*GBPL¨Úªt}Ç8ÿ¾ä6õ¬M«#vtý>ãçe•Ö[ê¿Ã°þ;‹nª6pU…€ Æ>8Á¢Ñ8™ ë´­Fú?¾™×\£8Q:5ÄQš¢Øú &Ýïk`WdÍ•S»ÈâZQ·‹Z]’Äø.Mx5³s¤aŸRdÖž&ÙdLÃÎŽJz‹+SD¦v[¿óuÑø2,d}€¤jžZ¥i\Y‘“U-.¤ðEè•2¡/OþúÃÝendstream endobj 1271 0 obj <> stream xœÝÉr%·í®ÊG¼ã“k^›ûrµÄI%qyF·8m£™*m–fÍ× ÙÝàÖ¯µUl—CS| ‰ пnØÀ7 ÿKÿž^°ÍÅÁ¯<ÌnÒ?§W›ï޾}ÍÛøÁaÔæèíAü ßpγ1VÜÊÍÑÕÁ¿·ç‡;6(Ã,3Û/8Ö–yÇ··q¬Û»Ã˜ÑÞgËïql­’Öeã÷8–R[a·7‡°\J«üöš@wŠûA9¹ý[X­™’Û‡;¡Ýà$Ï`ÜÇi8Í<“Ûw\sµeœpÙOÉ}>F(RÁž§äntùÇR+D…ÐvðŠwÏu<ß~º›Ü~†YÁ¤ôv<¸ã€¶Kr‰K\ííõö†nÐN»iGî³Åù.x™Î‡c'´Æc#<%|LJ°‹ÒÚo? ð\Nl²”Òúüð?G?d€ÅŽÎ€¥ÎâUlv`°í×4©D[ç E@­‹ùJôׄZÃá­)FO¾`5YY’‹™ú@”‘· ›øI ;íÖ¤=5ìùÌ\Ùí[²'>ï‰8Ú%$í¸´2<âê¶Í-é§ÊÚ[@f|N±¸Bâè:O0ý …R À–W0Éூe§¢‡½]{LjˆÓSÝᬀŠÙ‘¿Î–©ŒKÖÞ™¸ÁÝuPäf÷ñLJåòq/À@‚ÎrF$kAâÆÃRlRö,¸9ìdU=wŠb¥5hžwQþ,îëG¤÷½êÑá’ê: ùOdÇÓˆ.ÔHí Ç-ïŠOƒMÃ<‘*a=É»˜—¿š—D¹J—‚¥u¬gda©ËmÉÂ0«XÉØ£ÐÖÜòØ”¼Éî@¡ô(°+ò…ã°áÜ?#læ ³è,h|Êk…iš8˜jÜ‘•*a{ÀÔñ|1Ê ÔŸ´E™°Y‡”ï"A—ÅÅšLÞ@·ó*»üM”+§iÅ(WT`é(ì³Ú\”&ŠZº|(ۀŖ"1¶²ñßá*Õ¦+ÑKÔyÉ ÷N 5Âè,56„k#°Ýžëk-TŽÒÊ‹ŒŠ²ã½ôMZ€m2x7Õ}º§¥x©C‹À•¶+W3ÞHz‰ÚÀ…%»°/1qt8Wí à/?ůŒ›‘œªçÎçnQàm–YÈ‘·óK"hÏ2â\·GÕÁW²ä¿ä ”ቌ薶…@²QPûpµ²Píè¶ £éæIz@ª,ÌBî—tdrymÀŸT= ŒŠ$Gjb]¯Iex®èñ¨Žê‘©§å¯Ã¡¸R]™C•«ü /Õ›â*#ƒÎUè×ÈLéEy—àºÃ‰ˆ¯>ž4ºQÞ k£¤ü ~ —CŒšÑµÐøƒ•—šV›âäñB:‹>îœê0ÜôuÙÈ%8úWâæÙ»Bô@Ž@ ði¢\¼ Téyáübõeà<®Æ6ŒH%_TLE­wÉQÂ[äò°†v™G82°솦Ú÷-Î:„¿å•8¸œ*jyjÍ€ô‚¢Í>Yk0³V ßöûÙÓîDM…ÅœàýJTëÇêrѰE><Ï=äú¹]Y‚¾‘^“´8Å·|”ÆØÉ—0ÆA8 f×ÞŽâñBfÙ!C¬¶nîi^!° ÁÄ»(ª"þÌ5Ô¤ø]¦¢¥»æAü²³Çí+ÿ³ä¸²~ í*èIfs  )V:’K÷ìÈÝŸBÿŠGyy6gô·Ãñ˜uzÕñ(½©»SD¸¡^Høu!¹üY~3<-* *]”:8¡×8CÕ ž)Ó9ß´è<'LÃ¥¥iÉê#îáAàp<ÅYhãjÚT™.j:¾|±È·¯¹w4£¼ ~Ö ü( öpÒ‚õZd>O«}+âv@“í,”S‚ñ ,æÒ¡Ÿþ}z çö§yö¨¹àÇi÷øóÑÁϸ‘v›‹ûðãõæóÛüõ€;%é6àêÁ¸ÍÌXf.Þt3ïÅÁ§Ì»B¹,¹Ž¹÷ûù˜æcÞͳÇó,YðÃ<¼(†ág`y€Ö·óì»yHr9?ÎÃûÙø¼¹Ûw„ø³÷Í-Φa›«,ùÂˆ× ÞÁß¹OŒ3\e„rå@M_“é›™«nÉtvåA£%•š¸-ÍkÆe“Ý ÎÇ-$@²ã1ÞÏt¹¦tÙib¬PÏÈ–Ük`HàAŒ,è†O3aAŽY:0oö²`¤ã`!ÚÛþ²§ßG‹ ~šgšgÿ1cè@Æ%J¶ù ½|#¦,øs&Õ 8U&œÖÊTÃÒ.9Í<*©&åÐ"޽i]âM–NÝï:§–Û’;°šD›Ís¿* üCZ´Ø+UÃGD0C†÷«µÏãP@y„íTD…WƯ²šŸwIµU|ˆ!Fô­fOMzXÓ~ K¡ü”ƒý‡Û©²…à?F¯¢^v/‡P}üMË3°(z|™f¬Ë‚™¶o @ôÜä<$!}Û”£»efT¨ëÌäÑtŠñ  wái { "š¯þ±\I|¯­Ëðª·Î¶óyí%åâÆmÅ—+Šá©ì\Œ÷àáô=åxæ]‹]ÃzÏüg‘wD^bL±rJ+›uöYéøâå=fÑ ÖFÉa¡£xé_Rð¥ÅrãL(I,ÂŒp-Â)›—Ô8SÕ«ÙþrGÖLä"d¹çÃ⚺ãÀä|EÇ}p?ðŠÊùquS¼9˜Xm‹è²´IJÓ÷©i1/—Å+˜œ},¬pØ=j?ÐŽ÷ŠÆ…”´2#gï+'‡²$÷‰'äFŒ•ŠF÷D¾ãK<–n™ ïÒA\ª¬%$›”Þ 9pW„^·³>ÿ\:8ežîª$x˜ý’¹r+Ž5‘^/\*=h³ª3ƒÎÇzŠ¢æë*Öçÿ\Š Q9/›ËV“ÀX8Öf¼û ¥Í+òf[þ„u’?û·¯!&ähI F(ZⳈãöÌb³ŠŽå6ªR.z†¾ßŸK4u¶"1ƒ“ã©Êî˜K²ø8×tïH)N´@ÞAœ§ yZ¬Ê¯ê!ã-”·ºjIšÜ9™eî¤)‰—ó°ÒÍÅ‚µ¼ÖÁ5šT°~‰wê¬Zò")šMêÒαF¼öEX kòDU‘¤ôiK,(òöø¢Ø(…›÷«\‡X@Úz´o±K¯·2ßE ìÈ"‘ÕàâÖa¦‹ºDª»ùË!FÖg­ › ø6ôøu Ø0‰tÕü±È+l¹Ôà¹ù%U›èuÝ¿ôlr«^å3?±¯Ðj¸è–^Gqæ.»2%F—u‹Q|­<ᡬ¶…óIŠ‘Q84ZðÞb°tjÊâÔm[AýÑq¿ó/T»5±s^¼?.ÇlY·¦Ó÷kåJÊ>ZGÙ<\Ž“"/ä\Û͸7ô M„ô¢³ãRðe¯_è9ìõ÷žU¡llØÃbZó `ÂiÌkæ¹Á2õõ¨Â-Á%¶!„‰¹A©ñÑÂM3)ŒÐüМ‡TñÈÔÞ?›±Ðí²yÉßnJ¥ RbTúJ¤œík\%”‡ƒwÛ Š MC¯€=Æ,BEGŽY¬ ¤'§'¹Vàeìõä‡ÍNKÂá/\¬üLƒdn¶rUÒ-kY »4ÚÂlŠˆRSÀ>FÖÙ6fBsò’ë g1L5j‹NzB ý4ZƒåÍ`‰¬Æ¡h,eç¾X$ÖûOaù^º¿X‡9¨ Ð<¼çŸ_f?Äv4nlbæ!òH½T˜×K ñ†åË,õa曢3rFeŠwvÏÃ:`EmèaR)Uç˜óy<ÔiSí„]…+ cº•«º<;_9Xn «Ç}¤ ° BÚJ_žÊc”ÒÍ®žýž-„ªõ- ¸š¬Ëq°G3–_LéOTÈZ¯þ>ŒÁfØ~¿ØM&Ø#lÊFo#w ¦»‰ *sÉ'ãe+ß P Ñm¾ÁŽÑ‰u |d‘ŠíY›¢ñXÁ¤ÓÛv7/ihÌ›vGî}‡µþt÷Žs¶üÑ„I~ð#%Î÷û%ÛòÛ–îam#|-SoÕ`•z Ã/ε‚OÇds§+2®Ÿ5Š Eõ&ÕɸájáŸ-á†L Eùi¦ÒU*Ÿ)¹ â3HE¬Û°Ø•ÂLf Nve.v=‹át7c¤ódbÈü”ÉDZWYæv«Fš$Œšq8ç?’³“^Óõ‹LÄu}V|íl|ø „‚ËŸ»ÂSÁi3Ÿ mR÷„bÏd`Y6üOaiqGQ½»uĆÞ=Þ¦üŽÊ¾/Ëô¿'Å U_^BϧzŠÍúâj¥Ý‰i Ŧ>•öG ü>Lù%‰ÚJWÍ®ÈwضÅù¶ó¶G™jüR“U=…ÅNØO\â ?TãCÆ3ÕÇlš¦m¡ÿ¶ÉkˆpgîŸK€?¥ÜFÉØÖ×ÐÆçãu\wÉ#‚ÜØ gI<»R³éƒG‚ÓßpÛ§/AÅôRFù~a5,©ß×ð…ËÆùòÝžbre¨ƒwåÙ§èÞÆ‹p×̜ҧøéùa<]Îõó§:>j…éÃLš©$t‚²]ñ¡ëHÚxÎ?Í´'Á)­BºT&*÷žd:¬øF@ éh5\¬qUr¤.áØ„ÜmV`؆¿sÎøô‘‡TEGa´ëõÚ¾ÜxæáŽf¼ž¥Î?0»á /€­@pg3(7Í<¦ÎòÁètàŒ?¨Ë¹\ðÃ<û‡+‡Ãh©Q ×S¼ÔŽÕuúÄa ö ‡¨|퓺¬iQ'–à÷^¢,È ÍpµÊá/åæðb lÔ &û¸"$ZßðÈ>w@’ËìÁ4–褊†Æ)º¤5ÏraÜ˽7"Æù x-ÕõB‹g2Ì­Sæ’²7÷0X¸ôQ> ŽîÞ{P,Ô.ÇŽbÐW`ó {~ÞßMÃIý|ð?h4ž‡endstream endobj 1280 0 obj <> stream xœåËr·ñÎÊGìq©â"x?®¶ò¨TÅ«r°r EŠRIÑ$#—þÞÝfÐÀ`v—»KIŽK‡… L£ßÝh4ôË‚3±àø'ÿ¾½9â‹«£_ŽDœ]䟷7‹ïNþü“~X°ÒêÅ黣ôX!˜]X§˜pjqzsôóÒs¦RF/ÙñŠ3Œän)Ê´î¯ãôOÿ[Jeè–* »ž^À.¯a±P^·ü>ƒõrùªÌžvü}œÅ=þrzô#ndüâêáH3n¿þv$¼VLy$L1g70ã4 :Î\½žåUƒøÈ+ï˜ö¾æÖCAó± y_fÏÊ,Yð² ¯ÚÏâ0~¦¥PjyWfß—áÍÚ4,k“ ±¯gËÅJx<ƒ,@ˆÖ[è~>^ Æ­×zyK¦?‘ß‘éë œ÷ËDò¼áBuuAš„†²Lz¯ Ón)ÓVF‚è¤> Îˆ`@[@”µõ#x3»èGðÌê€:½Q?’t¿´~7-1¾Y–Ù×eø}ûªÌž6 (ce‹ŒUð-Óš0V©0oöa,€c65c_wù6ÇX Ú0Ëíòè·ä œ*‹f;wókÓð¤âÅJê›Nh—4ümYÿ± oËŽ]œßvL4à>¯‘>)¸da3y&êöæ¸& †à:Ñ{8f”L4ŸGÔ¾]ð¾Ì¾+à Îq¶Uû‰9]Ì[Ë:IfÞÌXðœ¾p•¹\4t¦Åÿ+³çex]†—]$–dáÓCw–àp›Í[ª á•L³˜'ÀE+ƒòYZ› ÀI%PW` &ƒÎúoÄDÿç¹·ËÛ.ž—åD6÷ëÈÖJf`'ãÚDj¦ðŸG§/~žùš0ê² ³¦Æ Øe×ûŠÄõ±_hËD° `ƒ¶9ø¿Œá<(ÃCÜC)É øcÅC‘ƒ±õ^TŸ&8Nª5$‡È©d®žWžÆÂa‚ ©ÙÕ`’\©à@}€qÆGÎ ª&hßÏ5SÆ>ïâ=la8„<@sÅ1fvÊ!ã ü†Í9f×"¿pŽYËΡÃô¿ïS>iBHòWÊé¾2ŠOi%’ºhP?®’º(å…óIGò±–å¸ü‘üuZnœtÃ8~ú–[P@ ½QšQ%MwÈñÕj‚ùYÄÜÊáߣgµóÒ˜ÈßLÚçòç-S>D+Ó–;ˆøty^ã•?ÍÛƒè`Ÿ¦$¤žHg ÂÀK%^Æ0fk~\’/´]µ¤ÀË€bA6^ý<×Ò"툪”ÜvMQ(€«G[Üò쇓ŒdƒYNT¼‡ÑV ûýZüÇ¢9ŠÈ‡§×iD6Xiã4…¸…äéòsfÎ2YE$ÁÅ›èkœ½#ð2q<ç;ö“\vVGLè—svy• ‚ß3Š4†­ SnÞ®²¬¬>‘ šI0¤ ZU›KÚhÉV!ô`Ȱ®U¬•°>,l´ŽþyùjƒI@4tjtÏ Ó"äÀšà*ád òt䕿äX¨ƒ3T 3Zõˆ0,óà!H x— »0±À9›’ÞaŠùªèq%÷U5d”¶S´ SÒVÞ‚¢B7¥A`Þ[DEVzâ<ž:e‹b$,ôõÌþs‡ýÇŸ^0vé²5x Î… J;£Ó@0é( ª#Íò¯Ç^ K4ÈK%ºC‘ô`…\4±hKMRNËnô Žêeͽ肪ŸäA°ƒì´r£ÂH@w A;×BãWzʈHsàD×YxÏx²¡ÛVAÖæm20ïù,©Vn‘yÝå 4ûŒ«-x=ª­ñH:ÂÐÚá.ʈò²Ñì´e…ÈCšu9œàÁw_/"£J8³,£ÊE>+³w$Ÿ{Ÿ¿³×9YLÇuÜ*óe÷”¯aÅÌå„ 3¡¬4û)m¢¹RZ/±"d¢ipwÅóq˜1ó8mî2OÚ­µÎïà|†Ðª’~ÀÙ›*:QxT5·÷t­& ÔOmáp휬™mÁôU±Ë'TT f Hœy,§zÍdúÛN¥TÏ4~®¦OÇËý«gÿîž „ ®(w>&%'Å»¼‡rx>kÐøhà³p¸2fgFÃ÷LXÝã4ÖÈ2§ãð¾ ÏÊð® ßr~ذ¶Ï^Ðb£FÏN‚jñP3™©´LжŒwÀŠ…”…»æÉ`˜XCqÂ2íÇ™]j(N0k"P&µ¢¬(MŠ!kΚ¤L½¦’dCH%Õý›fm’bq·4Ø•£WÌZ-Hªå­eÖû¹ä½‰€B Wö€5¼Ú7|s .;ðÂsžüC´ªI´“3‹¹tc®ÂÓ–.€2geã¼=LTéâO1vHQƒ ‘úsþNÖÁ·JJWØP!ÁË]E9ç왾1©íJ0ËœRëJ ¯·Cá'M3âj”ÉsÞ²ç~¿ÕÕ\d~(¹ÿ'‡fêÂQ4žbçsNpôñS¿¡–ˆáCLqg{Ç­g“)šÈÉut-ŽO’ö¹?Q$[V‰ªÄ ÁšhðhsjÇYðZÍÀ Sm6êI¿5—‚Í0½–vŒ'küÆ“Nk­«pNXO¯.`]Bc¶xBýFj¦@Õë#YŒËÝ ÿ¡ o›„`¼Tšøþ•â`Ø“P¼•çE[´Á7©7: 2Ó°zK!tün¯’r¢nñè@l(õ6sadzÒ˜xz¨k÷!`’2?MìÃ{0!Ü–¼o»X?–áÛ2$'Ýóm4¿âý7¨ùŠ;lþ#ÌÏ3ûp_AZhåÓ¹OÔpôñá~Û.MˆJŸÍµK¯Ìñ­Ây—Ôë.Õg Ò¹9v$PXÌ9ì©•}œ=o„°1Ô{¦àÔò‡è€_£Mt6Ö}`ÂŒW¾@cMø&Æñ¶twˆFñ})Æü©: æÕˆiÜŽsír=Ãr,”¡o‰…~îÚ5@J<–9Ÿ3ðâ[©æ¼ý;ç×sËŠ_ÿ'úõœáòkìŠÙ9LÍú4² Ax²OÄ·RŠ æÛg:_ðíJ‹ 6á¹SÕwØýÿ»{ºbù^OW–ö¦i*:L!ÍläwA2°ÓXñH61ÌìTñ°‚`œËoüéÊ~u´Fäh›ð"•fZúm¼àò¶]¯½QP±ò7 ›·êŸÞïÉK$Aª›Ü%Ec§Q´íîÇ‹4ežðæA=Ö|ó¢É~ÓÆ’¨0í›—ÜÒ}†C v1Û¬ž»à°[]ëÏ]« ­ÿ È>9‰}öÏòä$¿è(㤙tÒ|ŸÎµ:Ð1q D¹ç:—;o ¸4szÙ±þÑŸ פ›ëj¢äÐ ³ËtÖ±*>Á¯~·* ‘J–`Xį‹fÍmßHQs•‡7“h²oî'—Š‘_DZiu²“îâÎu ±¥ó{.ÊÅãôC;×ë‹ÏP ¹= µŠ„°Oݰt½>¾à36®Ã~Ó›Ä(â‹|±kÂD9«F¬ ù²y›7*Ô2ghÀÅ«¡¿DÕ]Ù±oEð¶¶!JÞ¸¦ùÁrÓyÝqDIm:ð¦ù‹Ál}ðhSèݳ┾gŒ_´“¿NJàSèɯ8ŠÔ 䃭^/ÌôRÎÜF7æ¨@ÓCØð0 öÿPDÊÛ°.»±mDŠ1@MŽ4Å"ÖýŸ:Ê›gnxë²CsL Dٯеmckw\jt 5qž¯Lpèlóû.ç;íÇù}ðÛ‰ål£ŽŸÿ@@³Òìœ ž”©èBW¹@y,¾„м E¨e8¤~<ú ö¸È€endstream endobj 1288 0 obj <> stream xœå\Ko\·Þú#f9 2 ßmš¶AÑ6ˆ# ‹¤ Û’ezE’øß÷;ä}œËË;3’Fˆ Ó ïááyòÿº–B­%ý×ýùöj%׫_W*Ï®»?Þ^­¿=]}óJE¹N"yííúôݪ|£ÖÊxá¤Yû`„ f}zµúyóp²•Â:™¤Ù¼§± .F½9?ÙZ…ÓfsOÓ!Xb¿\+6w'[%¤·!l^Ÿ`Ö˜`Ó„ày{¤ß\ŒK>í$œ±ûh»”6 WƵyËò>2λO³åAxlÄ¿dÜ^—cz“67“ÙaËK8üÔ¯›7'[ ñDQ¹)üh\g…©`9÷e2aÃ×ÓVon¹²Øk.F€³Ù]Ða²óe‘»1›+|(AUK͉ðýn™ >0âl¢™‹“ÿþs¥£FGØØé,j®Rl/'z)[BÏûÌ%/ùt5Œeó5ØQh¬ä_Ý +‰™mÏÍVá#ëUaªWW$#tp‡jË8ò :à0Ú“…ټ˂±Òë8¡vÍÆK6Ë…Ú¶=:Ï7¯´qÜ›4—¢í¥ý¾T&ylô×qø ­VÐÑisÁ÷Ã6ùÛéêGÚÉÅõÅýÊ éÖ¿#Âüc…­½—8îúj¥½‚ B?q¹úi1 U|÷QDpŽ(¯C‰Bg#gãðn<Åëqöv¾‡ÿ‡õÚL¡È²ŠŒp3éeêe 3ÖÕD±L9wÅx’ ½ú²“]Ï »Ç‰º_·Ã ·nwâdë”Gœ¶Pñ$,Ũë-ÙÈå%{lÏèà™ÿcÙ®ñeg[lÛÓª|¨Uì$ÇÍ:¯¾++â~‡UA £LqXç:‡=›¨œ‚û)?KF\3<¢ñüÂ×LÏ+¢™Ì¾+³X¼+]ÒŸ"އHƒ/Óæ·‡¯ŒžDz¾3ÚlÉ›…ô“7qÂCá¿ÜµR豆 ÅH£sƒ¹lþ5¬·4uLE¯2 ­“"Ó$ Z:UD ‚r¦ËÍ>zåÂ&sd|„÷†áÞ7BMj§ïbôÉ”S…ä4‰Ó`ÛäØä¤2Í88ð /qðY8Œ´êpXfO› ¾f‡p¨|t`|íìRQìÙ½°q˜yBð á]&*¤*±ï~ä衊}eöusÁwãl2Y,ÑóÑ!³ ¿)|g?ŒÃËq8Fðf¤UV †¬Åj˜ó…ÅË>¶¼ µ¯1’4rÂê‰{‘ßz¨´Óm±‚œu)nÏÊ-?DÓÕ˜C¸Ö¸Æ#8÷–¼›òR2¹èÏ5°ë.V?Ý—pӡƉÓJª;ü-;&V;3 ¤mT·% ºPm¢€_T¡zžÂ\²±ßûN[ˆ¥š‰W­|ü©‹ÉÊ.i\ª_wÁÚÇFÊÍQIg ¢GÌy èb](ÛsíU º_ÓªÚ¢N0 AQ#õ…hΫÅr ‚jœ¶íãt3Z,4UUx”0­AE´Æ9º4…Á,˜fž#ŠÈHD•H.=*æÙYl–ŽÆÁšŸ±’ô|¤pW‡¹JéABé””¢HQ¦^c†ûTœ>Z[l²›¾•~˦»${%Ftư/9jWØ@ǯcèØø0Šòš‹rë`ªAÛcZMBå#¡`D 4µd5 éÔ¦aæ)V“¨ÉÎDQhí5šYãð Dìó]Ê/›qEݺ•ÅŒðÁ­JLt2š‰U9¡Ï7HˆèôDÜ?5¥¹$îbX¨V¿‚ÑkIÁ¸SØan÷­ý:Ï]Ze4U©›¥§áÓ›qx=R¹¯x¦ ÛóÏÞ7íâ®[‹êçÓJj‘öïCÅÂÌ9™ô¬[å$*œ)P™Û_± V?;ó…zÁûqöÝ8œ±œgk_˜ùØó[ö›ægµ õ l$ 4fÜ…Î*j³bõM³X=o²Æ˜` ˜ü˜îŒ‡ëŽaí& 5QtçîQ^q6=·Æ‡qvêÊ k8½ìKÖ]é¿ÆCSœ}¨“q×±­Qp꙳äó],€áÆï_«Ó¯~^pµ‡¦–/–NcEnÛÛ Z+.<°Õè·Bª³kj¼½s]~þ.'þÙ¤…F¸”ÚF¦”<ï·yiÀËÞªó5¬ÚèŠÔ [ßf›$ÀM€(3i‰¶)ÔíTWý·« ú%jTÔ¢•»Å\m¨0üõI¥†™IlyZ»ÉçSžN•á™A©FÎn»xã½t_Ío0¡t q¡¥üËîn.yO«%½~ìèÉi‘>~ONœZk¡üˆw§Ü8OßòÙoǦœÝ†òû×ëü¬ üò[ÈYÇ·Ûõî¡,LvÖ›OÞ,ˆU­¥oß§¸Pd¯8Ëæ^ßJÍê4VAôŽ:³EÄÓ°ßïcDá—!•‘ERÝ} ‹%п?æyó†‘YrŒú¹(ó˜¸áµŸìø [6§«ç†þ»³©ÇÕ÷Þû.‘$=寗¸ä"®—_=e/¤~†³äwHGw C~ɪ@\Ò©r›²š±Î9”ícñÑ ŸX!û"ʆ}¤Ýq_ìq ðÌà‚Ê%:ÿޤ«‘ÿÀ¯V6Ç•°ððû@4¼ˆÚWïD9¤™.¹–Ž Ÿ—ÜôižkhYPÖÏÙv°ßxt*¬ðMN ‘ÍØØYÇFªº¥¾îçÕSŸñØ[›×=½äü&t~qºÀ jßsž ¡C‚‘ùÑaÐÇüý$*ÔSJñTÇü”ÙV÷ŸÐý«*#hIkÔ·ÃÃ=3Ì©ørDHSPa¤Z§É¥ñSà+-k$®%DÑ üª±Î}Lo7.h‡Xºá½zÓBÒ“VˆiÉ«Mª0-†|YŒi186™öÔB³åŢГæÌÌtNm9¶¤ J¹eeÝûþ»P=g÷ß±ÅÌLK¦l\>2RJ8Eަ*èÊ À¯2žMo%Açç :Ez´>h⧸šÔ‡ãf¼è=û4kŠ­åÉ}À™E÷3Êá}X8¢ô¶kC>1Ðí+:n¡Ü0ó”ÛW…”TH@üöX0™ÍäìNä®)vkwUí6»}kÞ5#[²RL,GÁ(”|WõHÊÚï™qp#¸/f•”YÈL¼Mã´%¿dO¦%“ÁI’±U&»" ‡ qÙ!FTÈÔ‘ œ ¦¥Þ…gK ³%,ßY÷**kȳv šù-{ öa©uøÔ=‰Ê)p"MH‡O‹ˆ%~ðûBð@óÆ.ë¬nì2êæx OLf¼°í$L²y†Ç8 `ϪCsUæQ)]Ueýsò¶ÿßÞbUoùo¦ŽŽ%-Ü»@+u~Ñ*|% F’?&íÒ\I!dð­jÌÚÅDÄÄ“Så’eü§C†ÜÏŸšd[Nò=á´´wÖ‹îǘªû¡Y—èÚ•lß#—ñÍö r—Òׂ0:°Ôi¨y]|\ÑÛBº4Êöùkz{»é•­ÑkGÊêŽ(ßɳ燻qøa6ï½6•¶*ƒžm¯‡»°C`'öÅ1sËeó5fL<ü,]”Ϋ´Y¨áµñ^€É—Úëß3ÚÓÁJ5Cíõ3Ï@í逤W9>lï˜ïAлõñQy(ÜP–¡¯.u —ç,\qù^)c›°áER8(»xäo×¥e>Yj§„ûrÄ$Ý¡°Rè –¯Ÿy–$„;ú9ùžhl¤ÂKa½ñy¦&¤H>²Çwô»ÒQöÝÄ3do•rÊžYíyÓÂ/$ûçÆœÓÊU>[´n󳪎7M¿fçkGZ^+ãVßu rò0dJ¨s?’“P.½ƒª/ ¼<ÿÁÂNðòÎl^þ™€$سø#aÌ[…†P[_ùØ10¾ó•BÜ"¸ð^N‰8‹òvH»¡»ñ’îà(âHú§ bßV1Ì'TÎà êK&cEà§úgÕ_¸¼^2NäÕ×._¸¼^2éqy õÆ““×bL›5`Ži½ú¶ÆH%ÂÒãügÙÁŽû³¨9ñ”ó&ƒl8ÿÙAõ°¢œÀPe,¿!Li,_q•Ë8Ù•Ü«ÿã’"Üendstream endobj 1298 0 obj <> stream xœå\Ys·~g¥ò¶ò’¥+œà>}%¶K‰c‹9ª¬<ˆ’H©"вIÛ‘}¾f f¹\R»\~ÜÂ4€F_7zõíF r#è¿ñÏg—Gbsqôí‘LÔÍøÇ³ËÍG§GüZư‰CtÊ™ÍéùQþFn¤tƒ n㼤כÓË£o¶ŸŸˆÁEmEܾ8ƒÖJX¹½&²‰VH½}Fc-bŒnû]»äö }´JøíÛÄ%8iýö†ÆÒK«c5ç ÜÕÚší›<ÝD­þ}úí8ˆjÇK¯6':ØÚœ>ÇVOÁ@ ­£ß¾$ÖÛvM[µÑ„ÌKiËy)‰’d˜<©ƒÁF?NÃèÀãËB=íNøl¦Ò"Ÿž}E+Ù°¹¸>2ØãæGÜÈŸ±q…ó†ÓFÊn.A±jq¦¼>z¼zoÍÎç{‹vP™Å •Ê÷v]¶yS¶ù ’ZoŸ*›ðI^4ŸåáÓÂám¡¾lEÕ~ö¼ _lÂGeø}¾*Ã×å³Â¬¯Ðceõt£PI9gcÌ*¦µ7‹$ ÔeÖH :k¤ÖAúÕpœ-rÆ Úù¦\¯ót땟ÆéÓkš®‡èuŽÑËÄѹlMÞã@¡šÎ¶þ4mÝ©êï³j;á…K×…*Ì}—9;'ÎFû‰3¦ 5q&c%´MydÈâsاl}º‰é ®!nN¤"Iù|0~àY<—ÿ+&¸7ÇÊFF½z¸çÇ'ƹÁËzÊ‘ÍDØž%F9:=íU©¼©…Ù8 çá&í¸îšAßNÞ®Ï]×F#¥}œÖû±8)®j’¤Ã*ºõ|@iI­K ÊÚíyâb´ð“’,ôûu½¼°Ù)gõZ¨\âÆ9p•çwôš8{8Çï™ñ{^›Óü!›RkEÙÞñ†9áþÞV²fõô=mõ Óý‘‰›¬“ʧÇ?nA'åj²y?HkFó°2kÿb)8ã}uõ;$¤ƒ´4­…  µ;ÜPþ0T Ñ·òIÛ„ƒôWåçL‹"ð ¹}ò]O /Š ®óæv5–+7þƒÄàò´b<@ÔʤS"FZ¥ÈL‘%,µ[ "I—G(.Æý»žæ,’†Üö‹€6)ð´v¶Žñ µu´šÌöy6Í‹Lô!î}uš@°¯³LT6ãüÖBÐZÚ{?+¼O‰6‹Ãl‹'ÙÏžv'|V9×T„|z¦P( R|b¨är¡„U&ÚŠÇ®p¿ŠGæðbï8bd”,°j ~ÁT—[g 𢩒«™Áš“Û¤Ìã¡hHNf¢„TÐy“PaҀʇsNûŒ0Öµ)wÇi²/ÔM6}²ÌFåv•6ë` OóPøõœË—Ÿa%­åNõǬCÄyÞVp;’x$'‡ƒ/#òkè¶ ¿}¾2÷ãlÊÙJHJ‹¸”ï“ÇÍrÂ}xCLnÿ™Ä¤£0Ø~Š ><&hÒI0CS¥Üd éwy;BVÐg–_…>,¯éú¹“iSµ‡¸b±tHμ›¡X.©0ìaXp­åÂ0üœ³‰)ÀVÈþîq»»´¥¯ õÃî„G…úi¡þ£ ?-þîQ¡þ¥ ?/ÿîö‚pÓBÎA¥[LêG#¸waã{ˆF·,»…( ™ÞçvÀbð™E{;iííä=Øð¨¹‡»ßãû¯ÛoGÍ m³7Â:kw#È…Z-Ú4)ƒQôP²(•îmÞ ±«äbŒWéËyøC² oÊð¬M‰Ú•Ó‰„Aè^æL½òA?›¹ÄP`¦jU4 >&ÀÜ ›ÈÂÈ5ðŸäC­T­¿%t±(;¦¤Î,KPšl¡:ˆ+…κ֚Xב±A‹÷Ë“ù9P ‚O1 úë¤V fæøË%~LKÏ’ìåòM®l9œõ‡c@{3%$€ïB®Î!p|¶ä<ú¤}_5í™à“‘á})Ù0, L”{°ÀŸòÖ—ÆL}ÚðI¡þ‚_)ñî%°kÆÊ•Mo𺶎Òn qi²ö癬…݉þhJ<èqQ—ZoƸuõÄDÂ[¾Ãy‘_¯=§^Œ'SvÚvJÞªKb@Ô•¥zt›SÌÅhVÈÙ‰Á5iÙø^žYó yÍKíS›[˺;/Ãiünò©f5Ñoke€¼Îµ…£êA ;iI#5d‡WÕ]Úzù"Ö²iÔt6R1ÉŽ‚4R@ÓM˜,OŸ¾BÔ0!s0Ò;™R¬™n¡ RÑEÂ`ÉUZg͈ÄaþÑèlÓ Êé~ep:¤`æñ¡:ÏH~˜ ®xbb£3©nåÝ@Ãì{¡€ÁVS’‹WÒç³ég޹ø+\ôÕl6cü0ä&˜´NPºâwÅŽœ¿ÔzzTÔAG5ÆÐñloÚ#+á´qd+ºéd@>'ÔæôÑÑéßä¼7ëÀ"’,d{ÛŒnl2˜XŠç“‚Aò†¤ås÷KðT )‡Ä¤gÓÁNÝ/ÏË–.›ˆ’©,¢|ØxþÅ𪠟͡¡D¼è~N袂ˆ¬&2"„wÙ5379%2ë}â­R#ˆ€U«Ômà‚J¹blòáá“Uoà Ô®ÈÁ3%l“Ðz¦„-üà2 8¥¹ûl¯{l¯”söœƒ˜céMîñƒqçó5KÀ#o˜X”zö>b‹AgE, ã´bY¦»©w “mÒ7«´ªž³¯)·8iûä¸ÅL-Z·šz[2ZcïÞ/ ÍP„{µ ²÷Ñf(C¤'„ ”DâïRK!îPÆ™rPK¡¢L ,ˆÞîSÛêø½|jS'¼fÁ½ŸG².[C¬µÎ¾ñº·öª·–œ_çu|Á œ…W«)>§÷û©Iz@C/;…„’„dŸVDÖæbSG&ªM= y‚¯›*ø3ÛO54ÎÓUU'0ÿ[v.*βÆð”ü«ºL;6N9˜o[Ii«ÈJ¢õ«ïÅùØÈ]l##úPT]}TDuîø \‡ rˆÒm´€Ù"¹FØÔWãgÊ!aĸĨÔòhº_ØØ#šîL =Tމ*óz/í<“qôf†…>Ϙxš˜¤k6‹ö!"kÓ튘;H³ŒÚë‘–è÷íBôö½V$àüƶ ×íyI¦µf¡gl§¿fcN¿!“³&ªäL"PkÓ“1Ú•˜M³\‘}S‚…¹z@ˆöÕdMÒ½Š¥<Ð?RuÊ´eà]·Ë˜]×:µ¯6r“É..·g`6²*Ý\å<Ä:ý_^âØ²9“{5\i«ÙÜ™wúççá-¿‚ ªRï«‚ª¬ŠHÛYu¢Ü£‚ uÐÝ%[e¯s N%êaÈJ«Íï!W¼ ¸þ–Ò$Ù®žûÇl…ÇîöÓz¬ê⇴Fÿ¹¨Ýƽ -.Eï-§ÁhEYyàóL$—Q;æ¼;¯wÖGS™ëúhð´é±ÉÖúŸeyt7=ë¡`œ»ÇTcuƒö»j¬ÓÎWºnèÂÜZÞ··/ÃGh•7Ø®e*3(j}î´@VÌmݽs’^¸{ø³8õX\NT3ùÿRN„D©ÜÆÊ‰ååD°@Ðww/'²zÎ?•!ëcÈç­Fì¨,F¡~•EX]ÞÆ«"– ÜP1 ×K~À;ÖÀ'o¤µaÐ1U;è×q¦Tí€÷´‰éà´¿õÎÉÒÁwžËm:P¹mžÑVÛòdÆx½Úvbî%Ʊ'Úg sþ.ÛNxY¨çe¸(>²G^–:&êõ^‚ÉdÀ% ºL›ˆæïnºb¾èR)2«Ô³ºkkS׿\.¾µ¦9™Å¯«¤©à)Õ{ðëQD¢OÏÌùGÒw62qC+‚Åhw­h>”[_ôû:Ùƒà÷û¥²š‘áá ½¥.u¯vai‹”IM…I8oj‡óØ øðrÑÀLu”S¯»Ó/{êå®"ëŒ='ÞswïÔJ¬¥âÝÿ+?¤Ä¿énO]`—á—exÚðY•…% 7Ž |\à RË{é7nÜ ½!`¼|€×3Λ&µzŸòa.îñ£µ ãîõ>«¦RÌŠk 7Æ¥üZ¿üzSød> stream xœå\[o\·~‚þ†E_º ²,ï—Ç6 šAsSчº–dÉFe[±d;ɯïÌð\†<äÙ•´)y0Cñð2×o†Ãýq#…ÚHüoø÷âõ‰Ü\Ÿüx¢¨w3üsñzó糓?~¯RÜ$‘¼övsvu’¿Q¥”ðŒPÁlÎ^ŸükN¥°Îg·ât'EHN˰Us·k0S÷¿ÏþKjãø’ «ž]Â*?À`e¢uaû95“zûÍÜ{ÖðÕÔ‹k|yvò.äâæúîÄ é6 9QÑa"̈à6¯¡'XØèÔssòC—VÕÆ'ZÅ lŒ%µ.çm¾·ùn{_Ô¨ù§¹yS5­VÆðy/¦f&qÅÕ]"I½Ù©(R”i$5ðÈG¯`7?Ÿî”>Z»}úßνeÝwضɄ·¯§‡~'•i²Z»¼ “„ Q›ã*X+’ÞÀ¹‚ÆL=ánÂç)„R6s÷‹Ã¸KÍ6w_ÍÍ7sóútç€H^úí§CÓšB4 ¦P–„³æ€¯ ¡ é A £Î kŸB!˜B¸<ÅL!&Þ5…òž,ÿ@,/œÙ>Ûνª=äÏåÙžîQ!å@wÀ ì´„˜d÷ RŠdœLt c´tŠën úeJÉÃé°ícT…ÚpպǶ ÀTŒaš8((è߸Õ( ¾@[…AÍœ¶Š2¢¥1)l_â.¸H´Ç­ºdcSca®¨Ãñ³Š ±Ý8ç@½,ªjR ðØóUMJØ<…p^í7ĵü †¸d‡¿&­Gz^‘-·gAþÕÈš©Ê“.É’‰4úzî®Dn”+Fs³Î‡_vÎsÉôI̬ë`¶ !fBeF}OR¦uRžƒ6޼Þ3DÆ@3ÕàðN=X£ ÑÒâw1 Ì䟣 {ˆ+ïYžµ*yù6!S$ÁR6N= ’”ðŽ&k”·ƒ$ê=&òR(Ai´ÜsÕ°Ê$il8^Ô—„i¿jh“ÚøÑþ!4cªÃõ/ƒ•Lv½ËÓE·´g ÜCØ:yJÃIÐ@„ÒhSNÆù*Ï¡¤­lvÞŸžl™û¼ @ž”© Úô;HMÏPs¿BF;yðÜ å%ìjÀ=¢wÕ˾·{¨¾©=tm÷@öÁê>²sÓù® 0_ò¸ƒà¶PÔêï³&þcn~=«ê×ëú©­ÐÖO€”ž#® c:®Ãƒ®m]Øÿ蜦ºÿ§9Í1ixž¾:ž½„@hñ²—,gÅ€ö/³<°ÏØW{²0E"3ÅßB"Ó§A˜^ÍäaÅ=¦¦€G ÝG”ƒÜ’qìàĸu›¦žG¥OÀ¤:šƒ¸WŒ³- 9ÿ©æô5N½Lê±™ª’z;€üÀ®Ta«»ùˆõäÔ{ßðrî½j*›a‘nZÉ ß5OõK“Ì5½&ŠhåæÙ]wX .S‚:ØÅÖ¬˜æ÷'TGú¿Ê§j€¡,xLÏ`ÐØ,GÂT;u<Ê `,Î  y¬tê±µ¹pë'ÕÃOL™J KƺZå‰n""xÿ>­°M¤XôB»Q±I!B5œ˜·CÂ*®&z§BÞo™¼óv¯ bySDÓ4ì gп¾FOYb‘Û¶¦0ÃÝ´‚Œˆœ‡K~bB,9–éTËžQNˆÐ8€©œžQ– ÆÖîG•¾íÑVÅp€æ \6LÓ«ÌàºQi-nkÍœö±æžñð%ß¶éÊ‘"ì€|p°•Ã<*Žön-ÊÍ dÁ8úóñÈ óA ¶š&)˜¦Ïõ%³ñ7£/t¨R]žÓn«‰Êô ßåXÑcÐAŒddL˃š¶÷P7ÙØ*6@3©¾r?;ÅÒ_í¨®\ 2’û¹ ¢. èü%~g@[Ö”¹v€†û XQ¥¡FÌ©À$6¤…—š†<Ù´ˆ®L¢qòw¾ìù¨œI01Õ|ã¹ l¬•ôâ¾5k¡£iÿ`ó†ËáT-©c¡Î ÁWÙ–}ä_õ`ìõ°OU{²É Àu­lèÒ½“:^ÏÍJ&p©ma$ w†p\Ic¨Äš+l/[evðbÅP5 eå5hà€Ú:®2‡¨ œiòUìiÌý¯–9“4Ó×?e؆´hŸÓ~ ¹í9å÷´BÆäìRtã°«ò{ÔGÀûò{@VLªXþÈ&ºµPÈam¹òC0ñRPR7½¢L´·j)³8©FÕ-Fª0µ…Ÿ>åÃ?aý¼Ð—iè ÈàµSo_]º}8uâ\¥<@½à„_F7«Þu8Ÿ—ÓÓI¾VĶ`0‚r-.“¶4ÝAʼn]ÃG#0Êeû6Ïi‘Tu›w”jÉcâF9ºoÀ÷ +÷ìÔó˜÷) Ÿ§€™t¾Ðk_N³Â–öõö·ÍÞ}Um£ä…ñaJú>²/絉Çg…•QáÅêÌ «”y à{aZ\  ù»fóm³÷Ûù<¬÷ÕÜ|ÓÌÒÿs= ïªÙKˆág¿&TZÀYé‘W¶k¨1B”XoçzÕót—ÈwÊ;‡ëNW&šzµó«È”¢êê’˜V÷yúÚKà¶Lt˜¸¤ ý×cOJãà¦|\d pM·ç¥†D³­úq¡{ë·÷¸/‡|l2UVÀ/Òk9û¦ß— kJu -wõ™0°YÖisÍ «y~u”çPDÛüK† † l>n©D+¢ŽÅˆTxGUÏàEˤ']]èS-–0…²%¸ÊÝIÆÂ"t€¢C0l¹!ÒðàAv T}¿&N°Þ 7re•Œ+˳-Åšvïú%=r‹^lЯ*7Tî¡*3FܲöÁ*AoÊ'EïòlÁšÞßeý‰trŠ {æ‰K|egò³ˆÒäü´F$ü½Ã3C8eÖ„aã¥&0Š…ÉJSrUFUíyé‡?m‘B‹+ýϰݠdà+vÍ)Ïô+½i¦$U¥¬“©ó`Ú/]Ü£Êôx¾žÛÞêÁY‘ßÂÇ ÄAö>7H9–îž‘¾÷Ê ù 1«IKá‡ù°Z“¹^Œ£Íªpà`ª‘z—‡Û¤ZëWñÇë|åYdñç+õ•$9©:g«;Ç6›­—­^˳Ã|>г&§`½r×\ëªMZåb˜!61›ÇœGç´#ùÝägê`ºáy×ëI΢ceŒ™ÍlÀ’骊..;ËsÎP{²kÙÅ;W f?ýòÅÛjò©Š?:ò9DÊO YM&E@çsïíÜd…òkφ—SP²x&°RÍšbžáùzìñ'±óYKÝSèCÂß|Ȩ̑kLÏžÝå¹ë4ìAÙg,Ê’=#óÄ$‡Ãì˜lZ(vI6Þýàb ½”q žçÍüYóZ?k+ÛÜ›³_6àÛƒ ,ì ˜:‰ñ}÷ÞkÅkd‡½Q®ê ñ©\ë7«›è7mÉĺ|Õ¤káž@gù¥†òé*sc…Õk¶wgãrWÙö(bñº¡išên¼sx?SDdRO„A8ILÝ å!é]lì ÎJ²5Ž¡Eäê=.òîI·¸õÅV ÃÖ{ö@A'oÐ0ZüÀçWë`Fµ* é-Ô ƒ KuS>‡íÅz|¯à`®c,LØ]f3€¬^áÃÀñLû–p¬ó½ÎåÒ"¶m‰ ›â?4…S³-*of8Ê×ZªîZ+63Çž´b»–·Ð®yXD•¯óhåTìÐß:€{&›ìlEQI†Ð2ï« L–´¨ío/ÁŒ3‡ÜÍ0ˆý&Ã2Q“˹wñ²²°€Lì eõœ²i-ƒ=eÔõâA·”Ыº°ªr&¸äm}cŠ½Î…ŽKëTêréÃÓN¸HiqÙÊ«'Ì[Þ“L¤áY¯¬ï:_|0a‰,/á©&E­†&®h¿+YÔìƒÞ_J'%ûoææmó6 ®ïç×>ûêûû—” UPtÌ›¿ŠžuÍ þÚ–Ùì1¤”†·ªj^HÎM=5§;ŸïNþ Ê& üendstream endobj 1318 0 obj <> stream xœí[[o·}Šþ†ïQ ¢ ï—ǶvÛMÒ8R éƒmÙ²Q[J$9©ûë{†\$ëb§@‘14w8œë™!¿Ÿvb’;AÿÍŸ¿Ý»“½ŸödšÝÍž¿Ýýþhï‹'2†]œ¢SÎìŽ^îåoäNJ9¹óz’^ïŽÞîýc߈ÉX­­ÙŸÅä£UÂïËuÚ]·âŸGÁ–J[¾¥ÁBm°ëÑ1vù‹¥Æúý?¤atAí³Îuüy™¥=í}KÙ°;¹Ø3“°»_ …?íÉ`ô¤LOÞîÞbÆ0ºÌ¼Ùûn(«†ñEVÁO&„ZZ/V6ÏW6Ï×Ù³v6 ÿÖ}½Oih”Ôzÿr™ÍrmTyèÅ…ÚÊ0Å b‘/ã‚“`áýÁ¡œ„ Æ€ì:}¶ªñG6}Acµ ­êç­º«_e3:NÂ™Ùø¹+ˆ×ëìñÁ¡UÐŒ4÷hJ7i¿Ãy *õ+¡ýäÃ2s õƒ($¢“”†«¿Õãùª¼ûP?$d'§ÃþûëŠçëðl]|ºÎ^¬Ã…„㟽Z‡OW çóZéö?›u#¶»m¸¬w“ÐÀdôõâ©>ë­ýœxp“U±†f½Ò²Jaâd!žƒeºï)p`0v‡JL¶šLôQ²ý¨­ˆ‰_­•°’›;N±1FGòÁØ… +ïàtIcéaj±ZÃnöC¸Yqê *£ÃXúÙ›¬œY%€êè¡<°ÞÈèEbÕFúމ$N{ï‘W†(qεÖOØ Q6*M,3·‰²QMÊ%¢“uòú(Ûå}EÙZ!àÆ[+‹_&+0ÂÁ.ß1Uœæ±6°Ìd5Æ /\6 :›„ÖAúMBko"}ªM@Ø2e…õ*…]mÜä]Š•­Îƒ²6›ª÷`=TÄOq·pÅ>Ì\Ï[›<Ë[o9ïØÑæÕkî˜ç¹(.3qå(¼d‚ˆ?X3Y­LŠ93éóœ lŒÕÑó ©0ý,šz“—hå]ušÃ¬ÃpÉ)#s²Rç‡E¼ÆIyÃ÷Ÿ9¤óÎÛhá#YÊ!A(+#ò/LŸL$ÈÉFpI(o1-0PB5Œ)€ ‰ MbÓˆ¿Í‚™ã=—VV‰ÐÔ9}§(M±ƒ^ަpŠ‘˜¹uœd*Y}•AЬ”•­1ãhΕV‹P­æ'ÜŸö N«M÷ã:’¨JÄuG!ÛgÜȪOd hµÒyü­eæ $&{ƒhzï˜uÿû€¯±$åO _‘Ý ð^¥_ËÌà+H@lò#ÂWf Zª„dI5ViõÁà2Ñ7…²Y9ŸÍŸý‰¡,ß ¡ì2ü?”í;©- öFa&¥v:F™p,¥`ÿ÷V ™Ø¹0hîãƒØmØ­µâ€²ƒx`< ,†8¦Z«ûiö7kLeS×w×é4‘rêV(u‘Ž’àL‰”Zȯn?Ìû?œ ²ÓfOkž30² ‡f¢¼ ‡4yu44ÄYS5tÍž/á1z W[ •±qsÒ¥}µàß™œˆAV€k´åÕ›+lR”v¦­’°»’DÎÓš¸ô¸ÊØ©¸éÌW$±º·éßÅ\’ ¬×¾Ÿy«Ñû ‚ÏßÙXî2œlÐîÃr ºÞf·t~®/Ö%µÿ˜ “‰ñœ7 ¯P\Þ •Ù÷DOMݘkn ®ïô¨ãLŸáyn¾QxúhnŸó4ᥕaµ”‹23N+/{–r¡’B™9ÓIiL'¦é¼B£tº.Z3ÅjïZôÉJ:¢'›è?s›E/šð÷6˜€ÛÕ]&ei_dj[²,]Ô‹l1ˆçJí†ÈËóÓb²ÂE#ÈÇk†c6f~Ã^Ç ÐÓéõDÀÊð E­0 zš#šrÍÝd’ lÒ@•`´¡ÄÇ»M£`Ïjë~‰Y§ ^¦£šèÏF}ÓšìI¯aoãoÊÝÏj¹-¼hw#o\h ãš”—&å°9û’ÙÈÓM´Ù”ÏËer[hÌÛ\ßníFe#-}ˆ’†×…”TŽVÔwJîpY•ýÚ/Ø4jy+kÍEã] —UôÀ·í#€ïFš8¸=){y)|_¦é·£2Aj-»p^›ŽŽ¦îxÓÆ­ÈôCÓ¼àXƒçnOñ©ÑÁ¢ïëÚÈy^Ôš ½Ùv³LðÙöñïÒ·È ç¥®ôU`“<©F½O b;©„W²w·I½OÌz7eiøÕÚãøª»à몛‘îÌŒ ·q'…‹S»·˜qˆTËÄ-®Ì@¢DbòÁæ+³'Ëc»ß­Ã¯×á£uøÍ:\Ï´²¬©çª9˨¥¦`îij‘Ô™­yþãÊÇ—ëðïëðqý•Q gÔKw.óÏ Ïk1?)e×§WM?^g-îs£òV^.!¤›Tû&©ÁÅÚ¯¸Ïk\%'‰½ ª&•~æ,â¦[fnõzç´ìuewÔ}ÒøY~Ùs®<›ñ»–nûÙ*‹~‡Q!s«¥ÍQ>xMÃu'RQ[ó !,G­!÷\uxWš N£Ò˜‹ ý"g‚ýôÎ]Ÿ ÑËœ˜8ºM‰¦"Š8“:rKû‘oÔ¹ÕLdŽó§êФò"󢚇c«!‚²2ŽV2&.#~"Î 9¹–ÈòWƱ=ìò,Í£–’{Ö»µfNïÙ¼O×BÍ+7O¯š¨ÞKCWÇîñ‹önçãEæÃI5ô~ÓšûF“;UL:½íy][çF¬ØŽåã˜^Úaêä÷,ÛÛÒ1'i†hF÷%‹$¶ï“¢L¯Û·¹öµµ¹Š†mÞ¢ï­àfË a—'¨×Y<²ì]ïFm–A‡Ê~¾gK‡5Ë0õ‚P«7O™E/-Ú’ÝÆ^ …‡ö7¯êÝ9ÛaÚþyÁòƒŸF×­@- ¨0Sƒ8Ï.KŽל)P’~âÜÏÆ|7^ÅARcùÄ­•ó€@Í£$ÃÃ;¿ »Çoð+° Äïg=è{z qv‚×U·ùùôÁ¨D¤»o¯¾?ré—÷Õìe®tÃf/±ñ ÍÞ\¯QƒBµbг?ÊU¸bêe¸´<¾Ýû/²Š+endstream endobj 1327 0 obj <> stream xœÝËr·ñÎüÄ—.s‚÷#Ç8©8©$~ñå@“’¬²(J¥Xùút703 0»Ü]ÆJÊް˜F£ÑïnŒßmÄ 7ÿ˯oÏÄæåÙ»3I£›üçúvóû˳ß~/ƒØÄ!:åÌæòÅYzGn¤”ƒÛ8¯éõæòöìÛÛs1ˆ”j{u®Â`TÜ~:¿ÐÖ6Úíýù…„3ÞoŸŸ_ˆÁ8á…Û¾Æg­­W>ÍÖƒ÷qûã¹òƒ1Ê¥A3¸¨·78×z «0^$Ñ KðÖÞÄí6/ó Âøönžý&¯“ß°Ó W^4c-l±‡Ô=[)>žék${• Ò‡q)m´,Æßã³÷€b(À¿b›»Æm¸AGN ¾û—ó0Û}ÆÊÆX@Ë«hÄö'†Çü}:c}ÔOŒ. •‡4Û„â¨îÏÿyù—3å4à€;gÙœ$ & R'I°6KŸi’FãJÖ)xÛ×ì £ =*³sà'xzСÜ3›Ý“+>þåù…“x_×+Ó5ˆ´61ð4 Ú`i Ü¡,E"ÙeLpã=<{GÉ¥ŽÙÜ–C„mý F•»êk]ÄE—Ž&XŽ —P®Ezv­D J€o×”a"q)ÝW3Þ& ˆr…‘ûúÿÃã³åŽIÏ˾%`x0ûƒ;åw§.´pƒ7>ó><¦?-` ŽZTÚ¡µ`Ñ[­¦a6ƒˆ¤£1¯V:o&Z#=˜Ö¿k;My‡ ^ª¨°LÑ ZÕFXG=X]úGÈo:î°t¢»’ÄÐÛ€ ä¶ùU@)˜lmlè‹¥€”¢¥¹+±7Âãü… A¤LÉQ¿$E rD–¸ëu[§²=<ÏÁ(= áÌtm›´Á™çIȬ-7ùl5X°l¦ à[†5•}Nj@Ý¡ ÛKÒM"Wø¥ùM ï&PÚ§¢i1•±A“: …ùŠ#†ßÌ£—Í _O£¸Ø/ϾÃmؼ|fa7ÿ‚ØêOg`"Ü Ìp‡¨ÉlnaÄÁQØiäõÙݬÚÁÔBá)»ŸÑ¼šÑ|3ÞÌwó„ÛyôÛùñ~žp7^O£M68LµŽAV\ê˜ÑƒÛižÈ£öƒÝ ¦”'²µ ¡™£ ¬­Ð«>6¬¢fsÕǾOˆöBPüe+Ÿ¬p®hŠ·•»ËUû TnèÒioúÒ¸9Pö…߸®A£h &ŠWK…Òóž1pèþå¨4i!pj {‹g&ŸÑ) zrc-ÐØV @ÉuL'P‹ó~a¨ ðƒôœK^-Yj|ÆÙðæ„ e1”ƒß‹[nÒä bÍ-ÊÇÁIÛF”Iå¾e/éÐ éÿ]ž'îËD³&´Ká;¨pŽë‡‰¸Ëhû2ÁåKÄ0"C5|Ð4KHŬD[û\ŽšB/~dv:Û5ìjÝÈw=Ì9¦Ûa²ƒVÚô’BK“-]âW„-ba@w$hÎ {ž“cÃΜH.{§¼£iÀI¥pØ€Ÿ$úÑTv·‰]#7@ÝÊÙrA0; 2r(-ÜäÍ.÷ —X9glC×çä0‰\¦!EQ"5 ˜ÌQêPì}¡íÂêŒ2ÞÄ]°¸KŽH &ºÌÓF*Ðk ,s å©”ó=°_¢ª–æ…ö qCÆUÛ'½'ÏðSžY†/¹Á£hi Éú#Í×ã1Í›»Ë?ÏÝÉ ›†;r¶…„yiUz:7ûÕÖv3<Ëì䂎hl‚)swm•ÏõYÏf]Íüß‹ãJ¼„ÝÎÉí³û…%rЧÞ'\¥U•uEγÁŒ¹Ð@ñøÃ`öd¡+fÂÙB©5ßi"1Ú~¶ kÖ«I^ VV:.qIÐkç"Ù òF©¨½  «­\ÇWqŸ7¿ê„­è<î’ã«”çàÙr>¾#ùDs8µ~7ï#¢D¡2'’EŸHJ¢ïM}7S˜=ª´6ÔqÓBÿ@H©Ð§G5„Ý ¢-.![µüh°š ")õ!täÜ"%PÁ%r:­@ü‘2FJ ð#S>HbÖp™1¢á4Cº»2FVVé“s¥é ö]Cúsá˜uý.b[G–Ê0›úêPàMW¸ÜÜ‹X‘|S—øN,ù2ÌÓ€£¤â‹V›*g7ó’"Ã)¬Nù ¯€œ_ÍßÌ—Í ä&@d¬õ”¯0.`mT̓¹ 㥛þyHb‚JÃ"¢y>UZâûùñù<á}sô¡ÈÊ,x  µFRîýaÍÅ ÕK?JBºf#àrù(qîXµ1Å(_¯Q'v¹«,ëy ª ºF:¼-"@/÷©¬TÐ'TøšC¥ÊÁ-2T!EYÙÁd*°ÌÚî@áøäžÅœ¥´Uçµ®«ôKØû&‡Œ°”%ž=ÕÂA&ç?,Hi2R#H¸­ÕXp†’=ß±ç¨ð­0‹¿š@FWŸ£Ç¹u.™6­™2ŒMx kF»¬Vª\¦’x„À#ç´MØýŠçS¥Äðüdr°É)e%á§ ªàbGÂ,dÓ?«»ir,’;LœXÝ­Î1³ÀÇöèõ‹lÝ7‚Ë(Ý”ê¨8œ€¸PyA”äý4T'pc"Å)XlT×±Õ>”H¼¾ÎÇ}ìÔ!nÓî¢p= Æ¡,;]æ|%'°Dåà9)ÄOÅXG ÎÁr-Ý‘ú: ~}mד‡—%«ÖúÄš&G•u­”‹Ï v¿²z‘w^ ÕçÖ*#Æ-<”nD“+VªÌ_W¾c-ÆB¥´Cˆu§Á´`‡?t؆*’Ë;u1é¹êŸà{  ÿënQ‰£] SľŸÓLªpÃ!¬6(Œ;æÖL6J+xgöº¶ã20üh–öš 1ÍnÚëb§-•!öÉŠøN°¡g°8D6¥çœìÒƒcÓLNÇS„Ä÷°#=‡ŽßKñŒ;X„í9¬×?ypÇòR ‘lSŠA´´ O“øJVÜþ8•N0O­µoý\8~“ÿŽ’˸F–éÄ–¸cÊZ†A‹PÖªŽÄâªíì%r¸hüÄ\íbq«ÑàbÜsi€^¶™ol,YsQ8ù ŒØ›©WµQz¡¬q–)ˆíÉȯY°Ešç±& ·n«:8¥Šp~ÇŠ<$ìbE±…“¿Xºg{sn~ÂÆ(Òï:lž#C¼ S’$ð•Ôþ»fÎéóôšÐÝ‚AO4ú»ùÙŽ-ªüjJdí™ôš@¯8ŽDWNY˜®L’2§°N–Œ%—ªáÛ×c*ce+ìî- ‡æ…çÛö508È+YæSepUˆådV8eà„;Á&±î}Ü)håC2Yøª”ý9—v·’¾&#÷$÷ª­j_uãB#×}Âä˜@Û\­uÂØ–öäNߢ醺’´–#¤­PÍüUÇÝ%S7U\pï¥ñzdoôh„«ó]ɱöJòI”-fs.îø£œì7ÉS‹nµ!'ùŒ)iOÔ ÊUÖ2SjSIW&ó)u]7R®>'óë _OS2Bö0¨ñÊ57·g* l€™FHçL¾"€SBŸ¡Áòõof”æQ–™ÿ¥NÒwÛu0òû”åËÃwó½eÃÄØ&‚XgG&d·B¶M'˜1Bìƒð>k°Íêñ+Nž «°æiNxø |±‡{£!¢sŽÖ‚±Îl9ÄÚ (@ˆüø úøÓáâøBbû€ hšQ»&iò7óèþ®IÄVÅÀ¨¥…tCˆÇP @ .†’ZŸñøÀ‰VO /î- YÆ–À¦GÐ|¯Òbôrâàú,'¬Oáº>*}hNøi}1?.¸F¢kÍôX íšÍ%n€ $sTIÔ~®ÞËæ(Ãý‹ Bt#té#Kð äœt‡ÙBŸs’NXÈ<ƒñ³:¨öuM*iò”¿Ô˜ðïAz`%°u$¡ðB>j°ÅD`a%W{Épkc$'B`®v ±³–äš”l;¬ƒWíø¦x³>uÛv¶%Få>kU Û T/ÏwôO´4üèíS˜Zˆoƒ‚p$¢aD[°ˆžF1¶x,€¿f·±eòuRc»¸Cåd|‚;Tùîû>½µïómvm;>kóô˜gõS\/L¦ž|µCJ±©{úq½šÓ²JÔkü–ˆí&6—ý°©£„Åu½zßóùó,#û"k÷=·ïAÖ•ôØÀ]¥|rGŽwc ç´LSCŽÐᤒ­ÆÏ´Z¡ù1ñ¼ ®Ûw¤>ª8*;5Äh{ª¬./€É‹ÂîJÚzí ª?âÚðÕ ]½¢mÿÃ’=U5ç8‰ëµMô{Í ëµ#oŒ–Pýt"Ïܤõ:_˜É"™ÂPìv—L ÕL(³¥lÉÔ‘…†Ä몤°ç­>”D,òv>(Ò;­E˜ºi¹'Õe>­Éíüì*Î9…r8ï#ÃSç`Z÷ý«TúõF7÷׳Ë/ê^VÐß°të»JXêõ³Ü§#,Ö¿¿F3B¿ ¸Òem’×O¤ËºŠæðóL»©eGµ¯Û•h´û]—Ÿ +ý ACLö1øwyCÞp“Ì·ÌMr§U4ƒ¦:4A³‘CËG’ÁÄGc 6ñÑ-8*xÀ&Ù>Á “0«ªÛ‰˜ú£šœD¿Ì|nŠéÜ®»£õ9êº éªWÛôÇ;ÍÑ€ûÜ5sts4ÕÑíÀ”µ3¶¨ØóvÌ…3V_±ÌΘ¥2/E,¿Ë¡…¾õ• >aüè‚ÅÏa)t$ÖÆ fv˜‘G‰½Ä[GÓÀ'ýÇá#:šz ŠH l×£yÀ- K*Õkð/µPÏqéݺě˜†ñ­ÛQ«ßñ¨t¢hcתôK„üŽÝjªËxãS^êéQ{”-Gí¹É˜­'º¤P‰âE”X·óU$X’Ѐ¨8Õµ;̦¤º‹îÍàÕ }ï—Cër•…Ž{ò΢¾>³š²xaéÍé‹ñÞÑâFaÚYauHyL N‡”|Ĩbƒ•\ˆÛNUø¾™¬}?CXÜ®ë+?X9_úÇžLÏÁñðB%O¹“±ãÞ-õ5îÝæÏ€Œ6xÈl£\ãT·1 oïH?T»nfRê°æŸSÞÌœù‡nfÁ=£C¡7Jà‡€þ¿®fÖŸ[¬„Ü<œ’i«ýAùƒ£U³w§öŒ¾(ޕLJ»es µOˆØù®GÏŠ²>©û‘ÆT¡‚Ev%ûU•Zu¤5ú'1À]4Få ñ$—)¤À Ã6ÉÜ/ë\j¯Ÿ°õÍýòê|-˜€K˜5Ñ#mœ™˜·b Ü€R¡×mÿ È3ø‹;Ynˆ6ôˆÖé|}™éGŸM©EŠ–©øš®~ÙÕ¯j@eŽŠÖˆ&Îï›ä=S*Ú¡°.¨Nú›>*‚dsnßlù…DçËÖ=ÆG5ó7Zqpbîài»sk‡áM…÷øÄ“܈§r¡g}]šù=ä¡ÎàRëvªídŠpr ϯ£Xé¾ïX<ä!©Aþmóé­_•Ò®<Ý¿”7u]ëÓÇÏdflŸê3™c8. ƒfÑx8"«d÷æºé½0÷†u^,UÙ„ÚM¾šíÆc*ÃŒ(¯g Ì*O¼in"¸ØóRvÜf¾ÑŽ€·ßO×q§¦á_¥ãNâ·qµa-wãÈ=wÖ“§ê¹;*ªZk¿;4~Ýö;åçÐ~@CyãXûÝ8rDû] dÎÉÚïÇ ©O…Ü ì­ÒJe*׋¼jbQ7¥99¨²ÏýŸcWÚ}E¤´«÷MÒ=ä5£J"-›²ªN'¼¿h€Aü× Xc³˜Íô8±ÜwgÿœØ Êendstream endobj 1337 0 obj <> stream xœå\Ks·¾3ù{$]âïGåKrìTì”%V*Ur’(Ѫ”,J~üû| Ì z0Àrµ\–’rr0a@£ÑýõóÓF r#èÿã_^‰ÍÅÑOG2õnÆÿ¼¼Ú|yvô§'2†M¢SÎlÎ^åßÈ”n°Ámœ×ƒôzsvuôìøÑÉ©\ÔVÄãW'bÐZ +o¨ÛD+¤>~Im-bŒîø}j»äñjúh•ðÇï•à¤õǨ-½´:.Ƽucµ¶æø:7Q«ŸýVÄbÅhK¯6§:XÚœc©g  „ÖÑÿH¬·!(¬š–j£ ™–Ò¶¢åµ'$"OADê`°Ð‡©hü£ôž5|=÷Ò$ÏŽ¾§™lØ\ܬqó Nä¯G ŒÙ8mô ìæ ÓK=;÷\=íž[½òéÜ¢tLD©T>·÷e™ÏË2¯Kó¼4ß–æUi>)ÍW¥yCM£¤Ö¼÷ÃÜlž—ÿJ'CHä œ1ºÖÞÄãùÌÀ™eÄ@æ„Î2¢u>dÁÇà\•ÅáÉÀ æÓv —…Ô{£ñKÞÏ©ßd*cÞ[ÉOšGOô°Ë%½Q‚²lÅè0DãøÞ^gNئ¹(¿»Ì{·^yNîûÝóÅhåä`pUßåAkÝeÃG6朵óDR›§i~£…#“¡ Ì8gq};’)¥*‘¤ãTJ;Û+Õ`­ñY(Ø®ù"¯›7™Ÿ8cç-cƒ‡ƒÆ!däz|9§áš4 ­<î«Ç¿MrÚ&_R:ú׌YÏÛr}ÉdùC^•±=ÍAѸé.†Ã]$~ehQBÉJ|iUÎo]ÕDdTÞq pØ2èI$F@0*¯Ëi¥Œ=~AúW+)”]Áp¬C¢·ÝJw¡!y-:*›ÈêÁHÓ÷гåcËÈ\²GLÞYïo'PæVÁ™„V>m·ÐFö”,*ºWöé—°rGºFÌBó‡lGÇs`Ì¿ÞAd_–›1ž¾—·N?mùç$o6‰M®âbòçmÄ…÷&ÿÒêP]:t\‚¸U|iˆ¶ }Êædú‚߯¦XIkHÑg+Øvå§Ùß­Ô2˜ÝÑÞeìõ¿hpàçÈû/ˆ¯†Ìժ܎ÚsÌ„˜ël.QlÈ›"Ý uŸfĽÄ`£Ù4ÜÀ0K’¯ˆ€Ñõa48ÁÄÁžÀ®­@QW0šFâFÍ—‹ÿ°'…qME¹­B‹y •; ­¶é~/DbŤôËÅa5Œ§ü€–êjöÀÈ;¦ÂžßF›ï·6دR¶²MØ–J$rsV=·) xرÐM`®îUK`žÐf Ì3=køzL07"H¨çÊ A„)õüç¿ÁøÈñ·Wã)ŒÍëÒÙBã%Áx¿ðj+‡8;±Ö“ „Ù®' =Ä]½‡Aói^í}…Ãójü"ºÄ­Ç¶;j5pÈü†ŸiGÕu4×wq¯pT°e ›–~YÃ|ŒvË%'äÍ I˜òvkºµÜb_2»{>ʆlznS´ŠN<Æe4„…h:»É;/ci¯™œÝ÷’üõàÞPúÇ;µÌ³Å '7¸\PÑÓò'sÞ#QÓ!²twFè¹»©( ùjsø¼† FÒm¬¤puÊao’9{öÉaHkHDÁòr©÷Ö³¯ªfV¤…Bûȃ%-÷5àßF^žÎ٬߲ì3g­R7KfñÜט6ƒD…Eî‹¥ÓÚ¾°ÍË |—‹£àü\Ávÿ†³çÔBæ¼4<~Å õµA_à4» íæž}À̤‰(–«ùñ§uÔÇ_ÞþÇÙÁi åãæï–Á !î *€-›q  ÏAß…[„] Kn˜ eŘU'HÇÈÁNwa­šõ—¥ùÃÉb¯§tó•Þ*Lha–©—õQ¥ÞÍ?–Þ×¥¹’†Ô»JhÖ×ICÍ€U3I6šKÛ¦ð}h²ó¢ÙËÖþÅL!_tÄÅ2·3ºMó—ú1s(©B°FV‡ÉÒT‚¢“JšˆÜçÁ¯5&þ¦ì>Œ–HIß´†ßCŽËxÉ¡Ì-ôt?ðEÒrÉa¹gÏ’‘I N†C• |º¹]¥S¬¾:èx#»!óº63T!–[bÕNk•k{È× ›qÌóm €bë:ì^» à¯F_9SDDÅ~6åUfšÁu½(8œ{{Á™ç‹Ñ Ê>à=/dìkãŒíƒÿ…»Zvwΰ&o"üØ«ѵîžK Aâ+ŒÔø­Z¦mˆDÎ9¬V´gåQÁÕÓ˜A«¥CÍöòIyݱuzsÏágCd‹Âé$1Øù6ãT­(o2@Üoå»Ï rÑàfÀ£ƒ¼9FXãwç2s6úÐrI“Ôóº…†p$?{u¨øÄ›*ëóS¦”²0Û<†|ZCfþÖú”Èá,½É¿$ ù5KAÃ{È*ŠpB ´M+òi4Tº;öqi´”M4+¡\šCVåIHž…·šŽr›:2’²PýJ·7• ƒùù$™ez×°Ç<¯ä'wë¸Kߎ¤Ó¹SÛ"O‰¸ºòºìEQõž«b®w1Pì!{ÏjE± ,˜âŸSÏ>köÒè—kþª,©Î’çÞÇõò€OÆ@® [¨ÉͺËBA‚®Âr¡wΓHŸï÷'¤Éaô}TÏ) "g§„æ8ç!ÐãVIòx_ÕA<©¥².Ÿø®êÍžVtW?{¸ýl<¡7«ø-á%㡬­={ôœVeÔÚÜ„µ¥Ä˜Zjê[ê\[™bš1Úí×C¹:½Wræ\ÍådÖyÒü¬¼2æŒ_#Vv¥v†Ä ô¦cH°eGôó4Ⱦµªóß‘<ùXÙY¢!fóÒ«‘q]#)bH½"…[v ÍcLˆ\U¢GKr©ø,¯Î- Š{¢Åçï¸ü§W ãQZŠôàïú¢ üP¬ TøV2#+¨¾øe DŒ¸­¶Ë6WWç.è=W£@°n¯?òJ—•I$|~ÀCùθÏy¦‡8ÎíR´0òÐ\v‹l œÑ­¾]=~Ù±ì!ø»–=˜¹û³”=(°ÇÁʦž;”=Pµ¤þPeÿl†™.óÿ«Öá€çè äQ­E}&Œ ø¡õܳF…:Í$(‚Ë3òiIËŒ|*9€1ß²©O` "É6¥ v SÝaSEð¢ÚÔÝ#˜=áÌlš¹ŸJ Mql´°H+‡ º»°$ LëÜ·Tb| ¯šc-ÍU%FÐôœר“cü?Y‰Qç<ó®/Çò õË/4”g Cì[~aYû€§ý`yØžžÎˆ:b\sŒeV9‚Ý8Æ| ŠcFA>†¢^E ªû”BûÖþ^êU” Ú}À¤) ]—jç©\EÑC–¹g¯rE/§ˆÄ`ÄÁ¾p±#LªjT(r]^¬F%¥ }÷[ /Œ¿R·qõP\+Ê%-? 1y¥l­»ø}|ÝããqíæU‡ú±.  àuïyi'õ>Ó£Ü>ù—Œ¬ÖèÖ~L'ª™Àª$…g<^åßãµy«ígÍ«ïY{ášmyÊÜü|C¼Ó‡>è+ ¤f]I.ù]rc´5¹|ÑyuØ{ÄðIÇ#ìêE7}ECoѽþŠFg¿ËÝiPxÆ&eÀŸAÍÅXßÿ_Yp§÷^ôezXø…Q5”Íö¸×ªâ„ÝÌŽ3ŠtŸ±ëP}ÂòYa#å“D“‡?Ûdb&/ž~[dB¦`¤§¤¼dý«–Àö^¡[A%uY†\ŸÐ½waÌ&B«G3ñL*ÏN<ƒ~Ž1©"Æ :À\ ®ÑÎ ìtÌF wŸ—æ%#÷&·ÁJÇG_dÊ>?ÈÅR¥3Î/–š =|½é[(:è¨ÔD0gó`ùÆÚ# ΦmÝ'·ûïGg_<;þ2Íɰé96øË¶J¸²Lj+ž5J¸zÏ”$bzÎ8ËL¦…ñ•[2™J»Øø”Fêf#nù”0 %OÆIv Œ¥oÕDúÀJ2r:¦™ÜI©šUn_¥šnݽ(Uì2ΉO½|}~•žÎ‰nr÷}¿Òc×ÊiµíóPIŠ+LÄFÿ'C ¹~…†ƒ¡°8˃¾uM¤ï;èÊ õE½g‰ë%Õú^åuµz“ó‘ YšDww­…ùĪ\nÕ¯˜b8„3†‘;_JlšÜ¬VÈéAM.M¯ç:£kÝ«²Xš­B%»@;ÝÿvÁ$˜o×Ú[¾€…Û.–s眉 ÕçzV˜ U.¹Û\ºS¹|&ùÖ“fªvž5PïË<—“;F’ÓZîO*,¿Ð“oSK€Ø]ÑÎöÂÿã·Öðcú´Î^ØÑc”…Û ¸Ø¹9;sßýÿ*endstream endobj 1346 0 obj <> stream xœÝ\I—·‘¾÷ü‰º¹Z•ƒ}9Žm4óì'[j¿9Ø>ˆÝb‹c5Iq‘%ÿzä@YÕÅjÉÏöA ±|ä÷;1È ÿÿ½}¸»û«ï¯dêÝÿ¹}Øýúæê?¿”Aìârfwóâ*ÿFƒÛ9¯éõîæáêÏûw×1xo´ûo¨mœðÂí_QÛz‚ªÇhi†`Ôþï×bPBëè÷߲љŠ&-íœÞ¿Æ`£µ7± ýµµ¶^ùýO4Ú ^ÇÞèo2=¯Ìþ–­õëe4§÷öƒ~ÿ>¯IDA+É;кè^o!ÿëÍÿ?½+ø©Ã qõæ)„µ£Bl±!ÆÁ_ÌÄ_ïžFÛØ²4Izû€I0Pì äþybhÛO™^€Ÿæ(fƒÆ§ä®çÓXvW\û)²Å®Ì’mJ®q¥oâ üi–Ѷkò‹Ô¿˜k2ƒð2NÓ³]2V}`¬ê9ÎÎJlé„+-K{¢‡,JÉ–eÑ LÉ–%À0šžÓYŸtÙM&·]£[›R —Fs=}±ì8«Œ©×vÔ1ã·u¬#CYÊ ŽqÚµ—¢TÃäžíàbØß´S *´­<]ê^; NÝYp€`¸àDø$§g¹%ña˜Îýo–æÔ„]‡Ý»iø|nÒ$ŸÞ\ý‘f²awÿî ’iwlþìJàBçw8^?¨Ý:L„u™:¾»úª ­«uOІ˜) ж ®ÙÊ^/ÍWË.Þ/½ß,Í—æûbC+uÓhk5;&úϯŒãÞÿ?Ó.'·¢Š] 5Ü™à‰Ö0¹¡FçD#(k Ú ¯“\bÇ/°‰~ºÐMâ:I]Æf6À·ÉÊýW²RÑ+Ù”0‰…Z_ X0Ö¯,÷Þ4|>÷Îc€õÊSÑ•4I¯àÇÜs†8Ä ,UôG.NiIµ8åÞ÷Ks%NlÀ–8¹C7°€û.…"⸠£šOÐÍÀH“éLp´.OžK;nîzÂÙq§ßŒkRý ®q°,é*ãÞžŸýòMkóeqhQN:ó…«Ê»¼«B È¿  ÷Úÿ ’A¬”f1Èâ Vž09šW 2öÔèÛTf‚½/Áök—œB«ÚIó®³² ²>µ²ö`^¶á¢— "¹··y„u~‡zŠÖyÀ¶#iðHDe] XY3š_•ùyJ8õó JãÏê—DqVÇbú‘£=oëâ–-'Èkî´§œÀþS¢ €Ø7\CCüM6ž€ðG§‚)t°ÅI¿Ï'ôÎOKp¶P&Uãè’«ÝŒCK,&­"ɉUÐTaÊ$ÏÚnáHé=Pˆ«’Ñ~í¦£!‰/×g3§ì´|t$\)³à3Ü ÐSž”ê¸ËÃá6r4"Hs¡üÅbO7ÂGbƒT=±âDÞ0‘h˜§:ƒÑÓ…NpÊõìYFr.¸Ê÷Ì£ïòÂVY Ãɨ¿YËÙ¾Ž®aO¬Qµ\Ì‹®Âyš/xÛU¤;Öæ?ÎR×!ÛñŸ £UÒƒ¶[z¯ à4ùÉq ÄŽåeËù%!@Þi}[DÆ0lÉâ©rò‡”ð2Ì:µ–v¢`0‚åžzȨ£'³m«Lè%b'˜Ý*ìýïë áÆÊþ-Ùl’Ç”ž6êÃ*©ÝDŽl=óS™#á…UŸ:?ùÛ6WøL\hNƒ?´S'b.¨W‡ÍÛ bEز—‰uÑW´'S׎ <<£’—Ñ1=ŒÝ–!VÔÍ=g„P $ƒ'Åýy"r‡Ó3~Åζ2¼†Ì*‚(.=a\ç«—c„+Ž¡—¯bÀ Àì“ Sik¶o¯‘º”³à{¬,fBª2€ÈˆCÆRMÝlDTÐUÄêÝ"’J‹óÎé”}ÇUˆ.ŸdÚ$ÏïM°2Ž d¯¨-‚ Âg©;DéF;êtbôiãðd1bA½)Ž}É;ü™°^NÕÒbµ8²¿²C‰ë@V’3›’Ü€÷;p}0ÁÌö×s¤™(øh].ÝáØˆ¦€FAž …Œ†IÛafdJÈI5÷œ“B ð…!&gý¿=-…r’þï½4_.äÕÒ{·4»4ï—æÛ¥ùõBáÍÒûmmmªó:‰BA×Htñ·ñ`Hhƒ“6]ª“]ˆÿ^±î×Ëù¿aÝɸ˜Û2Þ„Œr1ö[!uS0”ÍË€õS!è)}4sõçßÁ*“îð/(@‘BÖ°3>8x0 ,V<÷œ#@”Z°‰(ÅYGèÑäç °Û!Ôû¿ì—îÚwçß}±ôžî»²3Ök ®¼úÖSP"*Î_Âuƒ6]ǵX¸ÝÑqº^Áì¿Yšï—o—Þgs3EÚÒN÷9™‹§‰ù^¶Ž1ì9›ùDÔ‚‚ÍÜÿì±2gSmø¬”‰ƒ*Ô…Q¸_(Ü/ldeS¼èÄêg̓h’ N{ЊÄØó1aáõ¥ÎÉ{a–Ÿæþr]„ŒvP<í¡|*ŸÃ»Å¨®´±¾Ø¸åû›{_£PoµsKR[èçË®_6ùv×l2©®O)7ëS¢ìƒ/,ô]µLíCµ´Üü®iùØo lãÛÜ»f/[ëiÁ¶Xð'K‡E1e^ïšâÆ"lõ@ßCJ^µˆ©¬ï:~NØa—güˆÜ›B‚¨Ƨ9´VÂJä|×§˜Z»0ÝDŽA,R6AzòÁŇŒá ¢vFé)Ȉ¨ÅëtÊW–Ê“v¼BØ(ʧˆd£Æ4pÝÑQDK\°ösÏY]X%x{<’­½Ø¿F 25›§‹-:º¨O„ߺð$fïŠþ´;íº~‘ÿe/C»¾a\Õ þƒ-¬¾.ö””ˆ©0›ÁT™ã£÷ŒûøT@×lÁ·‰ zcÀT9ðÈ{Ëú¦Ó¯8éçlôx¥¡…®\õº")Õˆu´§ÁF.‰?¦ m¤w¿4Wˆ¬B§äu)Kµ Á6®5WòËdœ\rhš±¤'žø©ö<äx‹Eµß”ÞE ÃúØ[ÃnŸ³á\Ó¤»…>ygq¿j_X1Ä'¨ïƒ<šÁª¦›º"/øšjê9'òò1E)Z9 ¢“Áݰ{yÉ=x? èÉ•X*Âyr?³g.Š›U^as¤H*é\ Œ,|ý8fÒêñö3RÔêÛyYò·la|¾±'Ÿ¥Ì~U\AÝó†Œ÷늕aèK/¦»*8Ô!U¶p•ë(‡q}ý"989»å;ËW¨È¦Zí×õÝ{ÕÉÈs'·]z”ªÆÚ*ÌàÝSÜÏ!R'+®¥±ƒò¤cZ'âÜsŽŽYGWÎDbÐÊ~¼’õÁ…¦5JYi™»L)↖µ/Qô b(jvסÇ}³y,6inþ€Ù€9l¥Äý"må£ÙR‡Í júòØ1ˆ /‘è? #à`åÜsNÙ¶€uÐDñ3]üU,ÕuO^»-jˆ ל˜­éî °,J7Q£gÑ2¨8ÄBÇ‹á`«`Ϫßãv}óÊÛ< ­‡¨SÁ톭jhÇáR¨Ùe]ÞA"~‰õë“kâ4†­I¡3ÊÂ_°4Ä•´œâ‹±ÞÌo>l,¶.Mm•Æþ!ýÃE!²£ƒ:xiÜ~³dÿ› R,‘ Btº]3 Ìì–»ñ •ÌŽÔçV]i©ÓC¸žvt*ä*“BT|0Ç}Ä\u1ÃÉK}±4o–&ðyŽ“™7PŽA˜ ÑÐ{ÃôP¨lçž3솑) R‘»I:ßÿ4ÖdS…wŸ.Q‹LXIÖ’myƒö äëQááuëvÑ¡t¢°ÕRV© ™`zÒí» YNƬ§ÍÌÐré*e”ÖŒÿù¬b&zëä$œo?þIÌt½Ç%œ#ä·õÞ=•>w?«qOøp^{oøëz¬€¤;9+DLJÌ•°+øÛú¶1GUqÍAôEh~£U­|PÞ§o•YëO”š³lì~sbrħ= Ìà T÷Y?¿×#üWºzæ‘á|÷s •²®àŠvm¸Òs"=Ÿx?­oèè”¶íP¾¾ï™+çké¿1JÐSŸÞ¸ØG)2 `W`ÉþÆe}÷®B€£VR ªâx÷þeâ¥RQ:~÷Î/ÐsQz¾Xgwï$/€&å£b(¯Òcmü.ÇψŒïœFûŠ¿bž.á ßÑ—.þ˜>X,œjoa5]zL/©´}î9ë1=~i‰¨ÇÍ£*ÁOzLÿ¯p.é{ª2®µ‚7´­\Á›Qòpy;ºúä_ú‘O¤ßòv/`è¿ßݢ좠'®ãà.)½Wxõõ×Ê´~ïe~Ý«ÏNô<:³v&&Q149“óøù,Íôˆ~³`B¦`¤§/ŒIÖ©^Y ’ýï³ñˇdpš>ò‡6н{Í~š|’θüñFOõân®•²ÙýX#¥ 3þ¡§nøÒ®…bžU©H9çÁS÷«kMW5Óµµ†~:Óô¯ó“˜\ËxüMT<6ây…n1V’o¢¦žx…HrS%ÙCÓÑ=4ú¡å±Ž?M¢Æ/ý4)Ò\—,ž>ü¤vž¾l,ÞQ¹þÔs`¡b!"A¶`üúÏÿ,KbhâÇåMËÆ¦y߯´ ’lSŠŒœø¨M©ô¯ÚÔòŽZöòš{²—wà„—ÿþ°4Y½:+˜eŒKc§}@IªÌåE_&¬6[÷2LZo–žpÉb³uQñÖåt¯¨xn~Rä”VÏl¥¢±sžy| k…uÓKØà½$a”ä¥lû®™žýé¢=úÛÎÑ÷Žp]ùêéŠå`5]äyåâ¦ÅÒtssÖ‚?^ý4 ©~endstream endobj 1356 0 obj <> stream xœíËr·ñÎÊGìÍK—v ñ<ÆŠ;•Äe‹U©Tœƒ$êUW2)KÖß§˜Á40Àò±”*•Œ}b ô»ÑÍ_6bAÿÿ>»8›—'¿œÈ8»ÿyv±ùæìä÷?Êà7aVY½9{q’¾‘)í`¼ÝXƒt°9»8ù×ö§;1ØF„íóS1(aäöЦu0BÂöA„ìö2Ž­÷rûš†.%Üö]„â­4nûžÆÒI¡Xó¡k`ôvŸ–ëêßg!Œ½(0Ʊtj³?8é7gçˆé?NwrZê°}Eßg¼Wˆ4aj‚ö ¬qN 7‚u–ƒ9X0 /#|LÇ•Þ8:"¢Ø€h"à (GÉÓlEÜ‚¡‰¼Vƒy“xxh§]ª ¯5]©¶Â ›îÀáôJ •®qÓ ' ^:¿}Ã>g`Î ¸FÌÃö#‚Q ¸âË÷é¦D@g0Ø`1]]lžÎ©ÀDjPz:çCº?ü~þ†ZI€4\,ø{ÒÎN~ Œß¼¼:у0›Èé>­õàõÆ‚Fv› œqvP&ϼ9yÜ•‡ñQòCŠç7Iššç`Èÿ8ÿ¹<¸`ðg¯JÃQ8{5¸bÆù¬‰Òfœ¶Õd^P(bÞOTýé21„„ò$2ªT!l_&N&ö‰šÂ9 8æüÈÙêÁéΚ&§Eö?3v’Ûêð;åüHìTƒ1FÎò+ÁkÔ9 gÍßæÙL*i½„ÛX¥PÅ($ê/;hŸgî@*1XC@å¡.f„žÏ]ÔhÆá¯ó‚Ëã%ÍP4œ™HvÕ¤5!pÍò+»nN®ö%IPSÎJ°G_-ß3mrEå R8´Ä;9²ÚB'v´?E¹ÂAD Ö9¾öEì´- ñÓtva‡ùtŠ¢gÚÆÎ ÒºB»ïÓ.Á©íÓˆ_E4Eðå½ó½¹M°îJ Ã÷#•ðÃPΦ»&é4…¡ù•Éòx02Æ»ø¥á¢=Û9¼ åC%lãÚ•VgŸOÊÑå6 o@y@C«9Uù >Fë‹ :êìËÞ-žÓ>5žn_Ó#@Ä4©ëšÔÉ#Àÿ& N§’6LÚ.„A¦mƒí kt Ô!© ûSÈÝ bÖ"×ÖBBhCnò0â.ŒF˜ÒKé1ì8F5åkiÈÀ_Òžø“*Áô<™žŒ¦CHU›…n7%Œ¥ßƒ¿@x¯˜ ðõ—éZ‚ð÷ ¿N¬ º/¾}Ïú½aë_̸D“ nt%`¥Ö²ïBV¬B³^7UCÖ èb8<âŽî~y-|qG_¤mL¨5(MºÃÚ;îysÒûÍ bŒ:œîȽs(Sh…ÒÊVìÁ¹ŒCyð²7Áêþ #î蔹?Ã8]PÓùÁc0s<±›ÝyØ•“„…Ë®Ü0_gäB…>h°È„èF‹ÖœÍC}‰Âb$¦zf`<³B«TPŸ-ß—¹Þa†€ù»BgÔ$âÇ;§}‚‘WŒêËÉ…‘¥3‚ûb5mc£N¡ß[$7 ®;1ÛÒ‘#4Œ.„¥_ ‹¬[É8~wéÚqú·%ñ}SÚÖ´£k¬°É‰Ãc <ê¤_<]31iJ1³ó飿š"[1ç…«H>ž®áLnOϘ”{bñ¥¨hQf£~Ç‹'ýnýà­9h}­C¥ëoªÕh¹AˆO Í¿ßze ù?%ÀA•)6žÊc)ËžWN‰GíbàùŽ™a¦Ú´ ÚÙ"zeKÌajÊäy4÷ZVf×!ÿi•âp‡.#Ã{Kƒ£Æ,º,ü²úr 6Ä㸴B<Ž=”àÀè^U+¦Hª$fÇá´,o@;8˜j¤C hâ“‹K@„ -šøñCñ*‡švCÇ"âÐ*Ï"KêgƒFW ´?3)è W¾p_’{R\EEvý…­áÂ^&dè`J6_mb&½viT 5ÏOØ•ñE µ‹úÊBWZHp¥We"[iŒv‚.ßI£T¢•Ò…-êeQž-qž5Ušî˜.N…ë'Î`W /íó)MýˆNjðij!«Ø+÷ ñÉQr.ò;µÝ4(ç¯Î•4’'£†c·¹Þ:tG²ùZæ‚£,ß0·º`îñRMi"®ÉÐ×¢ÜN¾H1ŽX—ÒP¤i=Þ¸í$Ö0H¾ëÜOIPàóÝöS“@ñë{ÿ¶p m‹_ZÙoù(Â…dB ªwõ8)ûðݼÑÚÖô¼Q@w‹Î[Åœ´Â{]¥0šj†ž½Œ$‰Oð:Pž„T ½!´%>Ù$d»žjObÈ”¾ù°°`è5Ur>¯J ’¬ Jµ’fK‘‹ÛðÛ­ …×J†:LÚP«,ˆe€W‰7”ù¹s‚“ê<½aY´üZBO²¤Ðos80b›ø¸§·ÏÇwÝèßáƒQYzU|õÇ´Zà9fñ«àé†îÓÅß¶(e˜Á¦¸ñ¯'g_wË2å燠wµR%J@xµÂ°R¸' $•ã ‚Œï†ŸÁÍmæÁ>M˜tk³8Ûµíü2Á›•-¥¶Î3ÄiG·†Ã輎É"²Jm…É!<áŒÈ%nJTÙÀUt@ u á âFšk9±òD[ò¡(,¸®vU‹A—Øë9÷´Ÿ‡ïçá»æìeÿES&NÃô€2ýxÄ ¥–¥·)KuM~ dU§ô Õ"½I¾ž0nÁÑ8­EëAŒg£"Ks×Pýuna‘Q@‡×ñ°¬I!‡øSecš­®õL%®gÍßæa¦"R€¢ûDß+ …”‘Læ™; A ÊR%‘¾«ß âð·‚i–UhóYz?¸¦{t>NÍláu0büœ\ ­r8l-p5¡Ù8ú²ŠÏà\ÃBç÷^ãlpó$ËU!P3ò\¾˜ª 3¥Ê\׎ºÅƒn(Úäâp7ép™CÄ#i.ëM $$Ú}'u•JZ’_cŸ 1ßþé”âqW¾š1SÉ3Çlºã]¡¥÷È”ý.nm„ŽY4è;èÅ#)îÃLx](ÝçpfÙâöæðÓ-鿟ôò“7x’éâ+¶„®ÂF‡ù¿í™,šW ¤`&ò)! U%ÍÛñƒi¤T"+ÿœnŸ'Òƒ+ˆ~t![Ù IÚÕ=ã{EÂþÆ ' ˜\«fqÉ;f¦FR„}ùz'ªlçõZ°£¢.~^e/FºÂ!Ÿ¼™j io¨kWÊÇïEqzÆA~Ë=}l4uþx*QAå™»X΀ÁLAjþˉü¨™KW(*ºG«Ëw϶ÓZÒ-Ý]ó>ómÇCb@^%‚ƒ^ä "ì9×´¬G$>–nL Pý.€-Tôë¤ï¨M!5„‰€@Ùf¾•QӛߢºjÇÙI‡¶ÑÕßÇ¥Ð5#¯›…U)éä·nžeo–[ÕžÖc²ÂûV2–Q+yƒÄçT×+O>åõ–ª“ŠîebW&˜Û‹nNz¿E@rƒ> ÎHŽxyùA!7]Êy:´W¨<Ý‹”ÓKer/-WÕ:ø 8*`2Ôråç™»ÄJÅÃG ¨±Õ ›®XËß“JÛðêêŠ ôú%È*Åç`Ï„bìƒý”ø‚êõ÷lšµÁò®Ù±áè…›wͲFÜvy¸IhP§,˜pïdr¨,‚Ú†¼¤û©3ΑJÌ3wꌣÆËMo-E” ¿C}@‡u[CFuã–JQÊTu(Em¢:ÔÅŒGÍ{‹®Ø'ËSƒÝþ´§?Ì÷3ˆ×McùÓiqîeN¤öeÕÇÕ|¥Ï*Øu _À 1_ÌÃÅYëY&rõYí`Ðßáge§ÚÏg}߼ϗÍÙËyøuå9h¤Sá1¡yô¦pêk3¾‚@ó' SIvÁ´sJT“ Ùɾ–òì>­ž- .5$$)oN•f0Òtmè_ú¯ Æ¿hCÿÔ¼¯ àïÃylÞ?ç±y¿ÀymÞ¿§æ}E9n ¬yš9¢y_‘“moåH. ÜÁ\=?f6÷Ö‚q•éÜ_“¢–)«r°îß’Aê…Aüa”kÑ‹øÐ-Ê Ì ®E×mÿ€¦d¦ª{Oê6=øPX䔪kÇÜ1~‹þ5G à}º0¡TÙO\‘1U2öÞãëÒ+G6ÖÔåê³H Òƒ îštçñ-ø`èµê6-ø xøüűº³j¬†òY;ýU‰æßS¸K ~ú« ö‹¶àÇ=}³Mýè|$Gl£ì?ºÌÜ~ }kj›+$†nÞ…² åè|I…> stream xœí]Ys·~gùGlå%K•Æ}¼ÆÎáTœØ2+y°ò ‘’HYKÒ"%[ÿ>ÝÀÌ fwI]NR~ a1>¿núyÅ™Xqüoøót{ÄW/Ž~>±w5üqº]ýáäèËGÂóU`ÁJ«W'ÏÒoÄJ(Ë W+ëN­N¶G?®Ÿo8Sš[é×WÇœi¥ƒ3ë×Çmp¿þÓ±,¸†¿WNü{Á¸Õέoqm¤E÷“<øGg¼—kv¼ñÂ3çÕú›øiõÂ9´ñLk½¾ˆ½Ê8éÖ7‰ ëÃø¸ZŸ“ùžÅ~Ë·ãוÑE÷|‰t ölø<üpá;qˆ/¤+»Á¶sÖÃgè,„¯ÈO‡¶Î÷ñ{2Yañ[¾"|úáð}­`ÈõñFzf¬•tŵJ+QP{A¾ó”Œ¡ý”tÚ{üï“¿I­Pß@ÍNÎ@©Þ%bU(åv5ð0˜õ¨âÀ5ÉåÀ PŸ°þéX:h[“ø˜r®XØ›DžWJ |0ÞêI:V´C¾B† ñ›‘úÌÀi š ¬cRËeqÈuj;ÁÝ(ŠTß~”µLIU©²BèR%©À_äé*Bú¼Ä_ÂÆ‡AŠxðb¤È ‘ÖßV…žƒAþ|ùH*S8)A¶b”öðK¡ÀUÈõW¹ùlj)@P'Í™šø‘?ž}_2~õâæHƒ\W¿€“ûó‘ ܳàWÖŸjµ…ª5v¼:ú¡ëkºG30žf`Vºä¿É”忝Ó*'j× ª'FT® 9kµ-LçIÓÿ”’Lq…P©éIQ¥#“œ'PÚÕöç×BWš\Åí Ù /WÇ "ð1½~KM²å¥¿&6™~'¬[ÿ³JÎ0|¾Ñš #AWòX:ßÐ6ðÑ$…³Ì;—L4xÔ´¶ã?%mº`*ÒB'sàú\îed°lwkü¡†xäâ&Ž)\\7ìà`'L7¨ìŽ]sOG4Øýõ$ì*(5w~% êGÎ?GÉ`"±ŠŽÃë$ —â·ã ¤&y¹Ÿçö8³¥3+ÐRFúîØ[æš §•äq­ IF€ ßâºEÏ ÌÖ0£,¸Z ƒa¡`­Rp»QU¤W޸撬`6ø4Z<·õ$S¿MŸVRðš0Ä-ÔH@5|†¯;@-¼UG§á´ûUjçmÑ{¬“ÒkôÔNÀé¨qppA~HæNÌ]Eû£ïŽsa›Nlロ¡£WYríW)`Éo™@åIæ’ô(‡†(Ð`´IÄ©0 Ä œª£{Azp|I ŠË´j«—1Ê(Xk{b#à§œ4{b7ÔX®gà`ÑpF{­Šü×Ò€ûëŽ}JLhé ]~£–ïŠJ7;/GîôÃb¹šñ´ïm$ “(·/'|K__§é´E:X ½éˆ£>I°#µœ~ü¸*yT@ÒXø‘V#‰›Œ ¦¼ÎÍÛܼÉÍÓ¼ÉtÕ{š›ç*cgùàÇDK–Sºð;Ü|Ñ̈Љ›/fúy^°j¸—2qNsÜ“/̤^½Ð{›ÈÐ!ÂÖXî7>íJq©€2ý°£T±ªˆ³ØT9$sO#öÚªWV1»¤ƒ‘TeGÌešz?ÐYHÙe©ƒQž¯ª|"©ØL#bs››3ˆÍ‹<Ã0Òâà •Áu7ñǵB̼&ü ±J"ÿMQay>HœûF(Ž˜oºGÐÙq©Úâp·¢.hŽRw ¡« yk‹|<Ÿ „/ç›zïwJÝs.”RöZKf§•AϳÓ:“%®éüP©ë Y¿@9®5ÌDs^ä‡ÉpáFI¬ïUeˆÈ^îû¦2Ü }.¨=qrÙ<DZ@I·<’ôÆõjJg:¾ *IÚÕoQBIPìˆÆ„Zà„í 2ÀF‹ÓŒ5ºƒi‡ /BUB™¡]©lhc7±í* 1£Ý…,ÎA6éi…)äD¢‡(.ÓB‹n>ß«¸Ñi˜“™®òT xc¿Cd”’¬4íüDh&Õ½*wO=!Þu}–v͸£GØ-!¡àm7¶Ë€=›Ä9¬ú´B)˜°õtK,Fyòû*ìl€<<\S½ýSwµR:,—.˜SL:ÑÈá§|fN­; ½Íß/Ho ÌA ~ôyÊÓÃe;AwŸÁv˜ƒ¨i'ÏVæXŸq{]:Èô²ð*tFyøîæc*XoÊZkÛÍ$ù‚Ù~’Uå†@+·‹p8ÊÌt™ÂY¨k׎ic¾7ŽÝ²¤³ÜiX_¸›õ),òÔÖw@M>×%Æ£\äÈÖ´‚·%„•"`hž™E²Ÿ&s™Ñ`æÊ1·±zZYkXÿ+§×Ý@v™èÃcS¥«˜ª€¥×Ø3ôo‹Õ"ൟ&‚«øÀ…XX>;Vy9px¶2«¬Û°€ñ˯ƒîpM³¯†GŸ™íž(iOzŠÝ€o†¨\ï$ÌѬx|ðì€`瘵ãÙĬ )wbV¥ñ¤`¿üÑ‹“XüÂ’ºZª1!äÙ•‚Bºí8÷Ÿuá—â{›”óZTÔÚµ¨xj@²áÖd§úx™ddÒ©8ZBÉ™¢B@?GÝnYmÃ]šø¡_õ&ÞX8Ÿ ˜Ò2,·Î‹]w% нL¬Š×¡(•n„tÜÑ*“½ÝŽ+.B¯×¥Ÿ çž´ùØ+ïÑiÈ‘èA›@uhŽ Œ xâoG'~Lg¬“4â/]0’g¬S7oSwÓŠ4 T:Ç›•ÛosóyÀIîý&7(Ì%ÞM,"Ø•–xt\¬¶Ðãð‚ÊÔs‡›0 :N Ž#¤›ÿÌt¨9àQRà‰Cs:` ÈLIÇ·MÿrÓªkEaͯsóMn™¼šfhjÏ&0ú Òyäin>ûo½&ÞfAO„ê}Iº¯²]“îèß!9?£Ôkè7\¨¦~IÃðëe!ßò!‘ñ¶®ûeO›zÁ±@ŒçBÞ›JÆÞ†JJQ8˜•²^1 UAcò0õÜI4Dö8)T!#-…ÄsOJQ* bNß‹ ÌÆÒ#NA`àqÁ±=^×ÞØ¼Ê߸¬¾<ÆÜ4…²ïñ2øwé*á«Â¨û°f`XÚ#lý{“?ÛA‹¥\?š|ΓԼlÁ 䉯 âª7÷¶¹y–›ä-ÙÑ{85c°„lÁ([_:ÐQþ@x1í‰ð†ŽûÏÄŸB|í Ù׿YéêLO¤3tÜG:àCøÂ!¦sÙ´­Eáh÷¹ Gq )ÎÐqá(½ÏtˆÞ4=ßó¦k|’ç}±Ÿø¦[ËŸø ÅdAñ ÷ŸpÌûg\D|ä ÉUS’ÛjÅ µM’ˆyS¾ÙOêäbì{J‰‚äe ¹ñÌ,6õÜE~ '¶ê½å7õ>–:T”Êãï\ºÈM¬kÆý—]–ãe3;5ûþY.ƒ ÌKÂò±ç,—¸Aîö7™÷Èò|n›×»iÞ÷Ç(E’ïró›â§‰¹RZVÒsÈk¢>s£™:îÂ[ŽÅ"œI9hóWMm3¶?…EÖzc°z[y|\ꥰ€4>[áÀ'È~€-•A¼̬¤… RÏ-t$·>öÜ¥ â=ãi fƒL %‰v#é!Èã -ïCÌÀ”,©h×Xw&ä‰}’N¬I©äXHÈöE¤“¾G¨xѤˆ|ûò‘檸ËäSÑ7~sí†m@Ëô!ÝO;åí*‰ÆRà´§JShâMð’pˆ(­¤ÚM,…0ï¢â9UÖØ|X,££°ÎV®úc2µ<Ôù xzÝ\áëe–ùÿeŽÕ‹iáÇ&Üý›ã˜Á‡^d(fi@ƒ‰þçM³}Ò\UÅ0|_BÏ6 ÿ‹8Ö®n+>¶Ô¬If849(=b¥ß£÷3æyÑ®%Ç-·è×Êy–¿ü¿+ìs¯fYj¾ÌƒÛZÿîã;Ë ¬×A’ÔÉN äM@)€zïIèx¸è Ì3lú|Ù¾¦ƒD(%¹t)íþ*ðfl<å‚ÐJûMtO*n ‡™M1†la ;[:¨öž=PÂVo„<èÙžZgL{úl_N"î¹— Ê)‹^ aÝq“«ÛÇž;Áw¬;Å)âå§}¶®$3^Q:ðV°Ô÷¢Cx&Ò™Ž¶—:¿kòQXz†€ž€¡'v¼¥FnÒ' 4žÝâæÐ7—zç‚ëëàAðŽiu®N[ ÒÖÅy…t¤Á6ôÑ3œ³W›è_¥ÂìKO$àÇñÉzîŠó¨.TMGAÈñ­ÞÓRô掳+8&”bJÔ5ÁjY­K¤ËçuD:Á¦­Šœ>ô(=;¥ƒfº¤_æmÝžHïƒE­Æç=9+Oþ[CO½ÎŸ˜ÝÅš«È¦1åd÷>âо”eÿ«é{s´i’_”kÅ„ –Õu¢Ô›1^“ Ü&0­›aT“‰ñ´Y˜ËóP²Ž”žI^0œ¨Z¦ ËÏÓ±s´EHƒåG;¶èmýÔq¼Åk+•nÄ£“hLKùþàw9ðËJ†ÆœôÀ5eê›:/âŒGd•NËÂk¼‹¯]!Ý  Oµ~ð¤ø:Åò…îDí’'õ6Èòöòö)úéB3R˜_.‰@ˆ‚¢ò¢IœÐoa×Ïâ±×d òÅ”£4‘P%©ý3äÜ0½ëUôiÄ7s§…ÃnWáäó(‘z—% C¼ã‡¾|Q©ñ²ø~woÒÌȶ÷1s\!ÌÍg¿%®Ê¥keµñ²ìÉ%Pøéù6“/©õ_ÜÚåÛ…ò^å”v,L9å©Ë“¸—iésŠˆð_pð¾NM’<û/åÊÖK ¯wMbþÔ9PBt˜F¸ú¡›Ž µþ-§«¼³y£wÇ‹ö÷®k¥7¬tÔ¼ø@¸¨_”ŒÏõx!z˜½F#8š/‚öæ’‡ŸºxÃ|Â?¿x5¼Þ{p¯Ü 3”Ïyu=rFU„¥7c`!6ˆÒ®±3éû†ñÍâô\rb¾©ƒŒ÷†®Š7¢|ýŒZýIm9FËvx’bÉÓÈÇg­fÏŸHÝÓ<™Ýõ0}-•‚½0€ ^m4°ÖEJ‘WÍsÓOÍ©êõýÑN^Äendstream endobj 1375 0 obj <> stream xœí\Ks·Ι•±Ç¥K h<¯±]Ž“rübâCœƒ$êe“´,ʲè_Ÿn`fÐÀ`v—»$K)§t Äô4úùu³¿¬¤P+Iÿ†ÿŸ^žÈÕ‹“_NTš] ÿ=½\ýåìäãoU «(¢ÓάΞŸägÔJ)%ÜÊyÊÃêìòäßk*…±Ö¬ÅéF ­–~­Ë´Üµâ?gÃWj°ü•‚Á·žã[¾ÆÅ ‚±~ý8 £ zý¦Ì~Y†Ÿ•geö‹2ünZ@oþììäz½ «×'FH»ú eóù‰ŠÆ#?´]Þ®.qÆG~š¹8ùnQ‚Ív& F¤iþ«ðsÞ´ŒR ( ZiE£#ø@ø~[óñ"¹ŸËðœ†F+€õ³2ËÖ~Zñ<3žM´Â†¨VD 2f•~G¶à‚S¸ë›ÓÒcÖWlúçb9¯Ùô5MÂú³¨aÞJ]“ÒVD©WpB‡™wEölϯÊìùéÆj#¼2wf…i¶c…Z))"*E‡Oš6Z€›fÒ´ÚQ´z§-·(s:“H0>¶8Ô‰Üú‡u™~ÚPË$®Êìu¾-$Š&ÖŸ”áW…ÂYwÁ_ç‚/ÐÄŠànŽ’!‘è î×2¼6¥aýÑ`¶r.–<¼*û«Å¢´D7‚Á3¼…³Óð}ž—á«2¼.tÙc¦! k㜰:PHÐÂZã³/Þ’Ñ´Uy/ú“c–æúfŽÑŸ´ÆãƒéiêqWi?nW÷Y=Æ©L=6‚¤<]Ô3Ρµrž ïK=;urU†OËð¦Ðݦ4k?8¥iD¥³/ËÆû2Ýû¹Ü¨=ça¦¾aæý9/\|8—û¹Hÿu7¹±4ÆÖÎè;T„ÔˆÔã iƒ0Š!­Ájlœ8D˜‘L¢@øôÞÕ`ÀJí›n|Ö]ðh¢›È´ÁtZCˆ{¸Ñ^Ç>L!põ6Ü¿ÝgVË,ü÷®À[ _ø ¾,oüº ¿¨ÍEE@Œ$(X‘ŠŠ€Å0ÖžãÌ!EEˆÂgBbež$úIWJ—EJ£p•#ák":O²ÌB/»ÃNkïWÆcMiQ6e3ˆ&ǘ-åâe>㊛fYz=·Pq»²J;¬«©?0!b¡=ÎÒŸAÈLKi—ÊjäNµ¨bTX‚3>4¹Ž>† M¡k.®ºjí׊W|A·V|ÕõŸ·e–Q{Ñ}S†Uæþñ·q$ÛUáÐH‡^Vz”Æ:dð&Ò£Ë" 6d¼:ll)y“CmŒÕû ¶‚Q"KX0‘ïŒIÆ.À!Ö`£Í×&´µÙÓ¼GI„ŠoÎÊy¦¨‘ÃsFfØšõÚWd†±_ïh9= È SJÇiÇäÃ#zb£%]ÐÞÛOË_ŒR©h?/\äZ^9ôÚí/9ÛM@+Þº]JRÈh|ñȰñ¾Zþ„‘á6ÇmtÆ >Åõ¹‰<.³¯™Ý¾Ìœ“õ½f¯y<ê¡£Ø4ž½[‹hª·\gޤs|–qÄTõø”Ž…µ³t€˜1(.²nlU^ :Á—ü ÿn Ý~XpÔø¾GE]]öœÐ*ª)öߢfì¾½Á«`2é“™__fµæ5§²P•íwüÔ&= ŒÃ£)'?ä±ÅW“c™žë¥ †hÑ“ßêÐ(tƒ‹ÎkgLwðúˆÀK”{ÜóJæ}ÃÆ½«6n5ª’î hx̆&åptóhù›4¯¤Š)‰ƒ ¸™,ߨ”1—pAô´ÉF™§ó 4“EQËØÕ€E…ivࣟ4ÎçRl3H<ƒPEߎàÈ,ô¸)x%Æ“‹X7§õÚÒ-1cç`ýÏ´ol®â‚k†'‘ŸNkâk½Ä¢Ö»“hW¡ 5ªŠ»|}œˆ6Á·Qþ”Z¢vˆßœŠ6P/W!R àQõŠšÞrHNG,šïjئ¼S| „ÊËžÀEp7.Q2,̲tÇ1DíK½èˆ37ó„^Úòã·‚‘¹é\Ôc°tõJW€€©„ƒž“:ip„*`éD%6Aè f@†wmþ`I¾zò]²;íêÙ‘¤ÇÄ3/!ªÕ^¹­`—XOLÑ Ô¸ô’²©Â§ž,BK˜BŽ˜hžg²„¹Ô+óÙPgc¥9N™‡tú¸ÎbŒ‘Ué@”|)ÈÚAr2·hòOOs&cšô\¬Ìùm±>Ý ŒÍÈDmÙ ¦ ¢öJ&«Šøx öh:" ávÃÄð6¯ óˆÇÃИ© r•š n´‰qa¦C,ˆôÐŒa:ÄY2ˆ·YÊ3l¥ ¡*øí…mz[IrŽç˜»j³õAEÞiÕÁ?{`ʤ$}%…Ž’r¶"aR#{×RyÃ!I袣^Ÿ8‚(ÍVŸ'þP—[PN²=ù¼2U Ÿù|Xª‹ruƒáÛè6|×–¤RÇG;ÑÀ¦Ð‘£Ar½6P?d”æŒìÍ£¹®Ð[”ÕMÄHÌŽ‚5(Ö*¼fÞÃQtê9˜îöü.GytšrÝÄ;ê’ˆ9XLiYgàìb=¬±Zq™í•ó‹,mu^­LÎ{XG²_¦t4 ›’tƒ&>Àö óîüÑw§”'µ¸HÀç‚ýšÑ­\‚C$t µÆ xÊiÂX@p›nÙª¦ T¯@É*͂þ¿Î}Òxßéò” ã'yÉ“ 2Üä7j½Õ²Sf)…sOe(~ 81k`˜°Ÿ^°ìӦ霶Õó›b¡ìʬsš†Û/݃ÖZȸÒQb ºçC×ßí4qÈ=mUìHBÐáÐîÆ)€Cæ9±ˆG±š·™ÄÄÆ=õMSjªû«dÑÖÖÉq—Ú€¼£ÁíøQî4µ°ó¢®|0Ñ`”ý;™¯3 hR½ 44MøÏ, ð€±Õ†ŽÌbÂçy7ÖWMü«aÖÁÑ0y2E·õ˜`d«†™Ñ<3ø¥ÖWXU ÓsAÚ|ö,/ðÒ/–Féïê–HëjjŠ7fI¤ì^Tû /æ©eÖ<÷ Û*9ƒ¹­d›·mÓ4ÝM.÷w²œ¡ò¦Û¨=<‡åö1kãÆö1>4o;™:¸ ©µÚÇiš­ØÑ>ÞŒœ,Ö‡Ì —zë{ö‘ujžr‚ åøw‰`ç Y·ö›ÃD;dsÕƒïó’tµ«¥Ý„f"g¶÷îÒ†µ[ÊÜnëæbÊØÚÔ›I¦üônXÍíN‘ÙKö;«صzIøR·ND9J\fYPgdKÛ#‰«lÍj¼ù¹jndÏ‚ÓOæ ‡õÀ»gßãšï‡=<€cPk¹ß5‹ñÍŃA‹)îÜÝ×Ú* ï]±ÆDNÒmkS…iæ‹ ©KMDéÜz¸íÏN/Ù½&V²ª‘õ'_6û»ý6&€'eÈ.gþT(”òé°h.X úNoå6GÀ:­¼m×ßv%£@Ø_´ð‹úbÇhI÷´Ž¢Ù·tì+!öY%ûÆëeÙÔWÝÇv}}4}!Li/Ò²+ZÌ8ž•Y6œ™û´# w˜±tÁM5eöá™s†ø9Ôj‹¼ñå©ÈØÏ8t0'O)KUÜ‚ÒVøŠ|(¬CÈ9w4ÍU£¨=¢vÅ?PÖ5¥=‰ºm›ÎFE!uìâß~ÃJƒÕ5¬tˆáêJEShÚЧjãÌ!¡iÒ±’ Ê^-+I_„9ÆHú ÒÃ’.“(|ܦgõý!í+ú±âê®ÛWÉÂÔR®ïVtúO5ì¾w.&÷î˜ñÞÁxëù9äÖõƒ[¼¹³\=W§ª¤Q {vÄéñè˜î´=*IoÏY"_j¯ëŽ ÂŽË|3ûiÛõšÄ~ûË|¼¸¥]é;RNVÚ„JßuÀK ¯ •­F3\(õŽ^ò3~ÈE»µÑݾÆÏeEì¶îù õ=õ¥š¡N×C-—:º¼”àí囑zÝ™0¥ÕykÊí}m 6ãöjϹëe\V¤á®«eh&² ’»ÁÇÞ=þ-àcþUA Þ5¢íèÑA8ÿLÓÀ¯‘¿<¦P¨Â9öËcãÌ¿> stream xœí\Ks·ÎyÅ—*-  ñ¼Æq9ŽãÄV.–IÉR¸’,’¦è_Ÿ03èÁbf¹œåKq¹\ja1fô[Ùhxø¯ýóx½àÍëÅo G›öãuó×ÃÅ?JÐgÞH£šÃW‹ôŒh„’L9׫hÙ®?/?@¦à”¶Ë÷‘ôÆÉå›{Lni„fh â–íÈ·Äí ØqKÒþÖ9<±¬¯V ̉'_'†x™]þ¾ñzº:ŠWÙrtí|­û("¯ŠÌ-OŽ&2‡2Ø{K =©DdÎCñŠS ÏÇb[_V›0S¿Çü|à(÷1Iü…RÌ—/ªò_eÎõÒ7*ð𻓖äÔ—™ü½ê,ÇS">9¯Û½¿y_µ,QñMa› 8J#{<÷yE2‘ã¤tÊ·. U?ãÒ½»îr´s_Û’•¶J23vÊ:8J¤J ñÞQhVB;æu×3ƒé*Éû·ˆ®Í}@r.4pXyÍ H÷Þ› ÒÆ¹py¤õZr‹(.Îò5Ò ~0'h 4šG!2qºòÐÉêøàÐ iae³ϸá2‰ŽÌ%À,ûkô«]„.ˆª½ru—Œ+Ù;Ö¾¾Yˆdå›t+θm„îáâ‰$¦\?r«3I`m`Á”07ú>!~Ý¡©ÂbŒ›YrËÀr<à÷ …õ4á€w Jð\Åt)¥´îó.Ñ â|p%Ã-Öú‹äVÜsHn à„uɬòáQÇÏèèôI2#¨ÃqÉeŠ‘v!*]è”°9OܹÝÈ œgŽ»ŽK|ò(.dbÊÀ‰F{?*ö´:Ffel÷;HkpXZ´õPÌôÞWCNht0¯‡ 茗ªæ]…ªÈ¿›øDC´)k;E$Š0V<|O$¨Õ^¥Qœ2кH:aŠQ.|Õ·Èi+mJ¡Ö*(Ð'Æ¢Ó_6—ÄUÆÜã$I`ud¨g`N´§®÷k÷œ¯ûR+6F•ÐÅÚàÑ]¤ÇÒU€µd(GáK'it¸á2pïEl$•cJëzŸ7U /¿‡7=ÛõžgcU¥3ÌKÁ{ñnxÖÞÝám¬Ž­Œ'«õ!×e,QÇž®C†ùe2룈:NáÍ5pN!{¤‹[jºhÅi¤‘BC¢UÔ ||%±êXc§b2Nqj“ÔqS½'uR*ÌY=i¶š[C5·¸-ÌEèiŒç<]cv2ËUøDl}Dª„®B)L<8Á[ ²}Ã) §ØÌª¤$xÉ}ìëdÇ£5g3Di> Å€Ö¸Eô Œd²>}´¿Ç6¯í̜Ԛæ¨ë‡ž€.±dáÍ@5Í]´)Á»¬|VLc{K+ßyZZ8M3õ&Êù’%™NmÕøppÐÀÜYSTÛA8¯0ä°"‹¢ÆMh½æ ÙIz*ô0ŠÖ:ÌÅ£UQùÐò‹l)|Sî2³ðŒpXBs‚­Ñ`ÂXGôÌ¢Œ40˜Ò|ŸÑvØ#ÖSyx/Âü&æ»Ø×Vœž¢sTÔZÅ ØX)/“{7¦‰‹šæ¼µ4w[mZÏ¿qʘ±)Øe÷Š,C{’»Åì_ÕΪ‹’ä_}Äǘ"õ„Wb‚KrYv+Ü@2Øè‡Å)œ{ˆ,¡£¸8†Í§¨œ¼1$;:J:Ïë´æ÷ÏÉftÊ§Ž‡ ƒ]”vzØœ™‡›•^-’Œií}žôR˜)h!R ¶6Qiå’w8º1x_,ËJZFœƒÑ{;³n˜”4*’|_(ÿdr¨"èjØFÒõÓEÖ= õj²wÑï$ZVÄ73 V9Ý u¯¢f‰¥jë!C&0}{[ ,UÚÆA‚ñ•Ö"“[Z @ÚÙ~šwˆ+6w­N0ïÝ@µ÷¤?€PþÝ0ÐŽH1®æêÕ§-,ØÄ“©#[ð±âM2JjNB-Ñà5Ó»À¡‘J¯‹¹®æÕ;\%ÖK ÒZ74Ìc*%øÕÅÃ-9!Ùvi8vT§\)I™¦§v~QÒódQÎ݇ÓäV›1ºý!¥…”‚†ÐvP¼ì0¶í(Œ~Îó”ÃŒ1;'PÌwLEof îha jŒu@cmúibh±›+Ñ$o¶I©;§];´ë®Ò “‚ΦÈyz’Ãd×1=V1éU38¹èÂÈ»À'·‘œþ×fÓ$æ”F„sÒøÂ»F9Ú¿ÝæåàЬñÈáÿ79´…ðÏxKD@ln­gHaq÷) )v9²ý6“ǰã BépЗÍS±Ô½ÑýÓKB³¼;ª_kG/iV]=Œ‹ØƒÞ›ãóí „Ìü>CõÃUT8 ‡¼»«á•ŵìÜ™ŒŸ1 o=ÛÜækÜÓ{˜¢[A½rìklB/HäXqO>GŽp–'" "Çþýrâ> k»v>ì­¶+œöiíMÖuJœX#»«8L.²è½W{e†Ží÷^ä*­^AMxi÷)Û&£ÜF·IHÞ“½u~Xü˜@ÏÖendstream endobj 1389 0 obj <> stream xœåÉ–7rÎýüu,x´Z¯ÃøyÉߨ2Z˜6ÎVoÎ.N¾ßþ~ ‘B0Öo_$0º ·OËêÃ[§Vá•Ù~UVÏËÞ—eõË~Z6œ•ÕÏËê·øãÙ¿N>=;ùš(·aóäòÄi7oÇÏN´RRDKD[aíæWpÓʳ“o•¢ÚØZßÚ`N›Ö§C‹9Š„É( _:Z)­¶¯Êê¿ ø¦ûÙ;ÒžN¹íÛ²ü €/ âçeõ²€¯à˜Î¶÷ øß‚ᬻáŸsq‚1J8&M0„TÇHQÈ(Š4ÿSÈx]À‹' ÛÛƒ}˹T2ø¼°WKEi)…Á…¼5¨&o ø°€O xÙj4­Þ™@’Õ©sÂjï7xJŪÍÙCdê@B«òC¨ÏiÉuG=FqN ýµ)Ž©è¼«­Ÿ÷Ô‹ñ™^L4ÂTn5¬£1h^Ÿ[íTÉó>(ໂwMgÆ}l¾.ˆ¸Î†•ctN¸èþˆPø¦€OºòfE:mäÚVŽÑ [õñxÔŠÎv{Ôǧ3¥¼‘ëlX9FgJ ®Ï£vºÑã>kòYÆË>»Qê³1bo˜úÆ•#Ô‡(„„ës9–£^ðâêÕ‡ÝÕG¦¾€ôžÏÆ•cÔ¶°öP+1^tk›å\ÿ͵3¬£ÄáPίëdðe7`²¾ëCªìqY}Ö`ÈŸw?{±€óAÎ)“ÊÎ4²(•I_œœÝ¾qÒ`A÷~Y™ú¨ëáw&´$‚#ø¾zÇg„«Âê°rŒãb› Ýõ…U@™2kdc’6Ør¼ûgÅ+ÔƒÒ^ ~«ûaEŠP6 ¦•÷Q„²"ê„Txw*¥¯õŠ0`%Љ[?ëX„è»Çë‚w¹¡+”…ØDÓ ¥@8Ç1¬£,óýÓ5)â¶—œ¿,ǰòçU\˃í襈C*Rb•­¦•÷‘"º¹Î(0 æ|¯+™‹"™1Ĩ÷ƒ5Q˜¥ºë¢ þp«²h!Ø£ŸbÛg±¶I’É¢^¹Å¸(à#®¬i•ÝŽ\ÎíR$ÜnL@}PœV! €Õ¸ðâD Bf Bz?»¸é\W¨i–Z¨ÐC‹>‚MV¡k~-âÙyUñKºªxÚõ"†˜éèIwõeoWö÷#ó nD{•ÙRÒyRbžE¿?•hÊV‡HvŠ>k!hŸ±4ÃH`',œ™ÛD[ò¡tÉÌ,o »»ò¸ì~v§²ʇÊyׄ‡Vª K>ñ`©N'ΤŠuK@˹n¡¾íZÙÃÂâÏë2 Ípÿ/ ²VNü¹°Èg‰îÝ^‚œ&îA2‡~Ó03‹_k¶÷r×¶× r¯Àwãi•ˆÁŒHVdÉï÷ÙçÝÏyEAÝøh>Lw™Ð†pZFíóS¸9qÌÜÔY¨ã>µøq ¢È—Œ¾u:SÊØ3óK¾ VøOJ͆/¥ÊŒ´0ÎÈlL….Î’`Aï׳½7‡d¿Ö`vd¿ÄêR½4f  —ùT´@¨³TÝ1F )ýÀIUr))hûÑœÌËU’®ð}ªw;fÏ¥ó€XÄðW²7v¦|ódÈϘusÕ\ªÖ°[©ÐÔ„eË’²¹°Ûª–N5š‘ÅÀìš…gZÂá¥^:ìJ {ª,¦jl»j‡Ù_6Q‹kÂ+Uqœ‘¢_e%ß;úÐÔh¸Þ/í]2þ·#C~ƒ…” ¶.Ðx «{˜‰-¹¯ÞÉ|Œ<€0·­:žDˆöz+3Th?,+¶Lë}‡ó Õ¨6W5¢ÆHX4ðJ…ºo7yõ߈¦€,‚ízmô]ÞiH4±)ŠÛ%ÓŠŒËQŠ ãë°¾Eq•,¸Q·ðÐVh6ÉJe–dž¢ACŠêmY‘–ÙŽeáÙ)Üÿ7ù‚W³FV£w¥+Ö^°â€þËýÊÉÎY&î†nÑ2%Z š¿ôÁîªàf¹Ÿ@]Õ?1q©œåZü5§çô^…—ßÙ”›ˆ¢GˆMÅÿŠe¤Ÿã u’Ùp3TÊUb û¥}ø^è ’aZ4LLrnEÜ+1Ô­…Æz/ 2šžWððäÉkÿߨ^îò=ÙTt“PŸ1wÈ]&¸q2A«9ÿ ¼ÔޱP ðhIQDÓÓùÕ:Qk 4Øv¢YÔB,èß`9´Xꤟ†ç+÷Τߦ1Ž2±÷Ò/W¹ xh½Ì»º}xœWUì6jíà¡Ë¼qÔ„br½Šç€KíEæ5ôÆH{Œæ²1è…¯’)X¬졹’ûýÒ¨f£rüãÛE4ͧ½^y^t¢‡hç:Óë]?‹Û¯Ëãn97~ #!Nïûý¤§KÇ)È€@7`>Cl ­¥"¶)#™/º>ÚE>»–goË ì[,ÂÌ]ç1{eÔÍG_Kƒš#£Þ(“¬˜{jfdX¬m Wõ¿“Æ7äz´Œqg£ ¶_N'}Cc¨¸9%h*œD8…˜®Nù,i‡Yj8ëg‡PŒ™ÁjbvbŽtF¹n„½žoá_>eÛSáu7¼ŸrVúþ„S¦Qqz`óÝ­€}c”q©÷íÌŠWºÙn‹˜>Ÿ†³>µzH¡ YÜý³ÌëN{³tÙl¼ÓÜúK° Ó»þ½3@K#‰%,vqiô;tqøßØÅ¥e6>Î]\ˆúmœÁƚݎò@\³3õû¯ò Ã9V·-:…%œõýâ*LL¤ßIX#R/Ê0±¢[ +4ùƒÇcDŒ·+ ©×vÍ{´Ù0ü’Pkìj}½ªlE¿"öqù¶ð/nv[À ÂÉTý’A‰¹w0ˆ´Ìvìhë1;t;1fî·Ð¾ðËÈ¥)ÆR?*õª¼õí ØÑ«Ð,ùˆ›ÔÞ,q ªæ63ÑÔÒ ŒãàðÝ‚„W”ܰî3ê1Ò™à•û¨3¸Kö¥×+E‘$íj•Kò£)à½ÜIyKAª> stream xœÍ=ÙŽ·•ïùˆ‹?“n0Æ(¡¼ xŽ´ÝhO‚9´RN‡Ók1Þ»ÓggçÒZ/§ÎÓl…›3øWmœà[¸f^³-ÜäØb|º—l?/p=9¸Ñ^Ò$z´ÒŸ¾;;ÃhM|¾7qsRëÓ4‡è `°¹ÿçâo^g ðkXñÅ é˜\ oœ(Á…e‚†%a’àà?¸ÐÜGËӒʫ´Ly‹ ÚÞ‰´Ì4ÜŒZ`›N©ŒN—è…ó¶såÂà]8ýžF(aC1‚Ÿþ>¶…ÒÎ ðgñþa8&ýÛéÒ•æ0~#œ³n¿,¾$Îæþo'ŒiBB/û]„”T¦¸'•ó…¼B+'•ˆ_4ßææûÜülj)”:ý:÷æ&.}=vçBF[W¼¢Až7œ›Î>­H½¯só§<àYî"ÈŒÐüœ»¯óàwõõlq ØS°€óˆwyÄ×¹÷}n>Ïn2>ä^6àŸŒv¬¼¥÷ÍÁÌÖDaô‚O×:ä—DW!ô8ŒÆïÎ¥ÄãhÔ7„`ÁIQP”×å—8íØHèâ´T6$œ6J&œ¦n6"âtc¥aÇÆç}dxüž“cC¢(xa8’–˜©a øú’[x %¥äá½ UØeœ˜‡ðêÆedè|‰@)À_¤ÎZ í*ÆA½¢Üày¤ßÆÈr'ì—?—·ªµ„Û· ®x\^Ŧ>²mO¿THX_±þ’náêžÈH¾½›xMfô­åi’’¶á$R4ùž´Á!Lý„NAZé‘1=êsk=¸ŠYcŸ†Ôaµ+lW þÒ àã„ÖÍ`ƒ‚ÐæK3XMrÈÌ`·½·™ò~ίðüz&èÆY/G£¯à§þEuk2!Ì™¯ÐøÎö^sÙÙ/ùžJɰù¬t–Žù·å`.¬.Ù蛌L¦©ÈÑâñþ»ËØ)¥I«ẋÿ. ŸcÐ6ò¥‘¼Uè3­¯ëRÏ—mPô¨8ô+\J…ÆÍ&,ƒ½Â»÷(TÍÝœE<ëHË®¨w£7íÍðc ùŽdx² ‰ë !vÑV+@œ€K——ð{<{~™.ÃíiÛ9¤…WglÈB8' §œºº.&ÛÀ|z0VqÍ…£sõþñľÚ÷B|6^Ó¸!ÂP€Wq:Ж|QDÒ:‘°;‘Ãî]œüWÑêêý‰Hî~íóû…ØâýhŽư{=pVæž×'Oº:j½óIG…)§vl£–ê¸T;7Ç|Ö+ZͶBgÑ0‹ó5þ–:ªÎsvorÊèÖç3ÐH ô"Q— ‰iâMM‘ën­¬)ž7“¦Ý)élAØzýWñàÌ=‚ô‰ÖÔB·„M<[þu^†ˆ¦éfÔ‰hj—Þ^^©¢Zħ´Ýq`例÷mÍ‘ÏÇ&y¡? ½Bxq„Sòôß:¶Aˆwȯ<_uú»¥–ö >‘gÜ€…-vž·jT×…¿TãB>—ÎN®Ê¿´æ¶š ‚É2@ų¹ìº øŸ–31»Ÿû‡Üü6{¹÷an>ÉÍ{Kº¦@”€=ì`£ ¢k¤aÞÛõsÏ14 hH:8ÅàPˆ@ÖÞÝФſWf Уaå” FM¡©c#¬Õ¢.­øCn~››÷róa5€C?F¸Úz`”W;aoÙhÁÍuÙ׿dËÅãšMP/3»üÞ2Æ´á Ê S³fD´‰Á;Qa­¢Çb’~ítWB|ƒ5ü‹ìL±ñš7 Â×Âg»` âE]äÞoró~«9ߤÔöò„oN¤«ÈGÜ%ÌóåmŽ%ì6ûœ¾q›”EQÓI¼ » Ç\&Tqºdi•FÖÔŽßÅÉðàí6w-ÈæÏÆú®…¦·zÃÒª˜Y¸#ï“À@¯Ò ^H\’0ÂhËG6ö]Ü  ³e`!‹pQ îN1vmÕ“ÑG.D¥Ì¡b/++×~øepbyT)ƒ¨}yá9&å3èdU®¬hÚ Ê}a“ ZŠD˜é2?S{–„žÃßHïq¿˜ "WŒ I%åïvòäx|Ø4ªZ5^Áï¼]Å¿géKдwÝW^Y‡ñ6ýIiõ—'ç kx#;’FƒŠàöô+#€ÞÅ4<á@“84\Ôz…ú1éI°”°ZXmÁÞ*ò»À!tyr)g3Np˜æ¦³ƒ¸ÿ+Úiv8¼(fœ†@Ó´­ä@Ø<è^÷O.þ5qTG­ rÙ‚ÈŸ]Céëéq#­áމw…Éh&–km2Ô–¾¸ËøCïm!?ÿˆmÒ®2€uù=2Ø?£ýÖ×Ý#6!üE¹YÜ šÐª7‹ÝR”h´Ç^.UÇùØ0ÉqS¡4ÇÀžâ†B"’MsÛÆZ ÛÖã!9uãvlþØ”"Ø€¿Òjѧ@RŠ?8´haà>çŽ#D˜€Ls£›D‡GY,½ÈÍ¿ææã¦4ûM>Ów…»´à "Ř@ôôcwL=¾š›ÑCØbFY™ß ш}=ù€z2zDTizZßAÄ@RH Ç•Kœ YP÷­TLG{xÃéÀ5©¸ŠC ,Þú%¸¥Pí&\ä½îŒá¿EÛIƒ„Ù;¦ê_¢¸âIa–@ãU¢ªªp”+Õk¬ñf©:¼›¯²xzq<î‘çaæù2>=ªtÞµ”…’?ðAt•W‡¯,Ì=Ç(¯N ³§@ŠŠ¸Å” æ‚þ¹%–çÝ|â†ï.€¥í­vÌâywL'`éwÇ_ææO¹ù"oÿéiî~z¶‡ €4®Æ™ 0¾Ò‘¹ÈÛ3Ñ1Ÿ^¤õWQ…T¥¸ð®TÕ‹µàý ‹ù£Ò€rŠ>£}7fCØâS&B(FcºÕR¾]5–÷ÕíA’]rð¬ƒá“•Ü=A•S`~<¤ÀÄcaW|"ëÄM>Üc®ðÓ€* ‚¯vW@ü!¯¹çü½ZÓþ±àÌ´‹³†¬À 7ÌÀ¬ߵȋ±ƒu|ûÁÁñ·Ú~ð iºrû+ô¸O%@襕û……ˆÅªRG#®£®ƒÖÛ¶ ¾ 6(…ѡթä `’Þ­É4Ä”ô¥ $´«qsôËPHÙÜ ÇÛ_ă)AßÎÚÖ¹!ýC4¹XËbeºa5Þ‡pb!ï Áw]õ$[Ì~×—Ú¦!µÝ(µQ«/cfS—W~Œ™)ý¥“ÂC¹ÍwIñÈñ; ·_8Wd?G ÍBlWßvÕǦa†ShÎÊ3Ñúºå‘ΓqDO‘Þ¾ó:ø…ÏÒØù"f»±ó2Øû2ö"×ÿtf€$¡)¼ÍHËyñ™! c‘Û³Ãy½)£úÛáKë@8^P6²ŸyÀ½¦V“Lo¸¼‘¶gIänîÚ…‘ÎUÊaeÂJø* Œ¢2ñt;j²¡÷Í0só=Ž6ƒ ¨Ù †&ìD)¢cχV–Åq¶ §@B-hï4¡Z´!/#hº³[Ù:¹ZÞÒö:BÐ8©Ò ¬u¬Ø|Ùóƒæ€ì»dÆ ²¨1!=d dô”ÔsŒÌaÒÆ)@‡(<âu “9šqA¢ÜÃvP€·z«ÝÔL¹»½evÜÚb<ɽ¹™íÍ ÐTp8kE–½Ûœ¦€NWžäÏyÿÊM¹.¤œäÓûÚñÚ|¤çxÆÑ™…^7G:üQYébïÛÜ”ÅXn3 Þg7d!ö\ÜIò"6ü<³Þ£Ò¬5'Á48éZÄêWµàWAÐ9 YówæÒùÑr§ˆÓ^S¤„²ƒWsÏQ¡ M1/ŽGsЇ%h²Ý9ÜÜ­6œS¹ro‘<+p ãÏ“V3“+9¢Ê £Ý­  S€L+Ë“|Ÿ÷ñ¯u”sJÄîÉ(&ôâwœg´»Ê‹×Áøvk˜.kôa1 Ú.W¦X9XVÊb>]ã1©¨ŒøqÙCu@¯vNV6±yMtÒ¦•ú:ê*<õÛL ë{4<œ{ç·(@b¼ˆ²D†#@ÍÎ=Ǻi;¸8Åÿ¶u«1>öÞk솀èÄwçà¥"îÜbwNÀUÈrw{!ú(78O½ë8tNg‰‘AêVp†)àîty’û-œçÔë›=hg ²%æHR@&„™C½n’‚7yO?´§ÿoŠ$WlP ˜ˆkÁëPl¥òºh€SP}ßki2¦Ñr5µ. YB¢ÎEZêŒÚEÅ2æCÛ9J}z5âÞ(×UØÛZš™ÂÄ~ߥìSŒ¿ïg1±¹é–]#éŠÄ³¨ ¹ÓÊ€jÞ÷!>k?šývJ)„Ý¡qu›Z«)MÕ©q&¯º<<­ÝŽ@AøU6Œá >EVúnDл8ֺҦݑÖÕÝj餉©ÑÆz¨žã{‰í´Š¿`{Ò“ 8³¯`†§ A·LÁ4¼—ô÷Užf²²Ä“•ZQ?ÏC£kõÚ˜M‰Ò Y'6d"Òs~¥ÊÕL‚¡7Ë[YxÍÙ¶6»Šskz>¸ëÓG”èð21«ÇêQu½~¿tF¡<ƒvZ'™ÒžLvØ+Ìá¨D8ƒLj¶Kò»F¢$ÐfÄrI žRÆ/°¸î¸ÏRµåq#ÜÖÜd$Œ±“ˆ Ó†·Dñ;èyc¸ù|O„e¥Äw,Wù’[Q $;.ØãÎÀ²ä1èØñS*¨[sA›²My î±rߪtU½ϦÖÈ"Õ%`÷_=_Îétq{¾~´ƒc1ÛåN„ +ë¬éÄŠ{Áç_nV ¨Ë´ó` VU–[2Éý˜›šM6àá,Q/Ò˜€ 41LiLéÏ£Ó˜”@YÆðRƒ~n¦215ù¹©÷»BùkÖqbVú\1µÛæq |–0¾ %ZŽZ E˜X iå´À§¹çånt(B´}ÇÁHRk´Üðík41º[m_;´—Û?Ðê×2 yoqIk ¬«)ÆJZvÅKÌó à‡ÆÊ:ÀE7„*€¿'Jà–œj1Z0:Ód]7#©?ةӅd{·¸¿©4KEdéxÊ>œ™·Š ¶deÁâ{ø¸ä ·4¯á¬ãs ‡BÓäiJEõÇLª ’†­^DÊ ç›ù~¨± œ)60…T‚ÕÊ[©äÒ2„›€1«QhX%É´ró¢¹b«b¼ˆ_ë)&“fkÊI lÖ¸®ÌÝPsÂýª1®3ºZÑám}W F}€º‹ }´ƒ5zÑv-V*íY¦gÏú6ðØ|›Ç–¾·)ý•B¿“>Œ(æ n°aî9ÆlÐ:štê)³ÈBÄyn¾ÈM…þ©êÛ]l™èQ,®ÌŠ{\‡Oá±!‚¡éb6JÞ­ÃѰbKKY¥Ø;ÛP«hŸPÁËP™þ‘7»ò*UFÎsóEn¾ÌÍOù†YïëuxÉ÷!çç÷-3Ž¿NþVoÍnôìP/[µ’ê¬çæ1Z·,émгbjMVdq¬ÞAœaÒÇæ¤w¶(ØGzÌnð²™ÔµI}‚ àÉÙÚzÆ*U.€Á*NvÕxšáØà5ˆ/ 9S Á~(%êû²8*›¯aÓN®‹X¡(íw{Íjp5€Ã|iFëŒAVÂ$l+¦â{roøÝç$oCÏôÖ1u²Ío4éhUiâùJº"Sý*­!Z®-*ì"°o¥ RYÞK¢<3~Q§€‹éKI”<=S¶ÅˆiO•œ¾¿ÀÛQN“o>§¢:…xWgfˆ>0˜†KÜ”Ðd7V%ï!™Ž%Õ&¦¶(yKÿ.(­®Dð¼Sì¶dV×ê*ºœä¢v[uóSjí ÔÉ'8àg+¬‘ÑÜfpÇULì"c­W«©ª×·,„æŸÊréõJj…@½aBežŸ)´‹¹Àë#ð`yÊ !ï)VÞb¬Ò¢}(‚ÙyLü‹)°]Îux¶L™w½/X+ÔJf܆ï)Áqi+LwsU&¹Ò-/ÿßõÖ\¼êú´«*\¾tðÔݨS Ž%ï1­£#ïºõÝOðú,ÔhÕ/Ì&¨®PÒqÅ—3’˜4úÓS¯ÊˆÓ½4µÿMÆ…’²”%#¯Kl2/ôEs@«ºÒä›.€Ðí’o:ýy´o 9k8'kÏÇ– ¨'+{~Wr/:݉“ _R¢’¦ÃšVnY {­Mf^C¦^Sᇴa@ fs¯ÎcŸup™f8—éÂ’Dµ4íôŽpI[Eâ–B9.µR¸Ãõj`4d‘§OçÉÛ 'ЧPÒ=2kwöƒ³ª 6´Hç`,‹EW³ü.•{÷8 Œ+Š%þi‚ž«É\ºÆ}gEëõ8úò¬„z¹4OÓØÄXVk•e)b¬ú˜ÍM½./ΚèSä‡ômœ:Þk[ªèüpÈ›jТ¶D-N¸f«š·,ñ«WŠs²O‰’‘”e0<Åð‰¸'7øúK+ôF”Ÿ{3Ôµa¸XG¡Vy eb/Ê€lïëgt0ÊüçúÛ¯jÚâÛWèê;8awO•¨F¾:ÏΑ&FD”JmEœQßûŠÂË8ch×}¡á=W<Ú+ж+½ÒSÒý²ú=³p'!éy–Z"ì\6v W]ÖvÃGwÖìì#Z«ÌÞ '–ÁŠò…²(2F¨©—I‹ZÐì¦V©÷jý5cZ"ssý ‚_AZV’Nx´¿Ób0†Îjç¼YYÅ©XÜÓŸžìÁM%AQM‹Ra[m T@`]ؤ¡ͪÇ?2ÂÒYÒ+syþ’ÃÜÙ—¹É¬Ì•ÊÆ²rÞmËÁóuðÂ6Qs¬@#8>U½Á×Rºdo()m^Íc½)’øt ݱÁ„îU."«4ªþœP•V@fïÕMC¼çLyR¥°,çM5ÝXWM¹Œ3H»'À8.²¬&¶°1-¶¨aÕ—¾:F——Ó^AÛÝöŒiÍÚËÊŸÿ\Ê<œ®ÌÌíì®X¹Õ5Œ²¤´vóŸÇ$-“îM3¢VÓ1ºVÉ‚={\`Dë®¶âk…‚Ê£•ùX•ä1©“P´×`NaŸ³Ÿc+&®DÍëܼZ—¹%V œW°o…‘ï¼¶@Ý%ÔjOíZÔæL\þA¿…U»•&‘2ûX÷Y‰O(Á ¾Lg„aEÁ_Â; Iz´XŽÀnÂi‰õSB™ê°RÍ«wWvÖ›iK®Ÿª~é넎[X,`ßÞ7,kfí÷q«Ö×Ò±#r÷8"âô]æ\–REt6‘Íá`SP¯U1Õ‚xÐÿžÑÒ很ÍxÁ¡–F™é^x>l6t˜r»,ӔЛ¬œ›®S†{‡‹eüú€ª`‰‘"^¸ÐÏÿÃbÌ^×Ð*EûÊ¡êí ™^ø¿FíY0ê©oO „nûŠ7ýÁ¥¬ÝêTêÔ“;ÊáBkA‡t;بX:ßr;™ q<1K“¦j¢0V–^ùDa-z¶¨b;I}æ+Í>bÊr U÷ýf—-ÖÎtb­ÚlËLÔñdVX¡¬ `…*‚è~#‚}æyútè˜e‡L·5gX…±¬WvÅ´«lÀÚÁÛ•¯:egÏʯžã÷‘"ܨ<^£‡ ó*·28@ÛŒãmT 3[p´É¬×Üå«&œòSóäR1h = 探&?Ç ÷ãV¥ë~à÷uùC¸Ixù!ÎæF_«Šø¥)²u9Ž0®ÄaÓ£;ˆ€èÖ )/T»àÓê6t?¦4%IúŒV‰t=ùæ#þXaçÓèTŽtX¬@¸<_ÂÁ±ü!áô»øÃÑ4Èg2hÉ™²ÈÐ’¡Ö$bYk0KZ¸âRÝÇut¥a÷ŠÍ¿L÷ÕgÀAQDv*œ«Ë7ì"÷ØMåîÒ¾Êàå@‡bD¢ïãQ­YD’à±îVÜü…W–¤}»)D9:Níó'ž&»l®9ҔÉXáœÎTjlûËÐ17F/'–çå°ô—:fÕ[˜IëÈì\AéHUp3à2CU/jRÕiê 6'íªáàG.œP•X ÷< W+ý³Ø[{gñ÷# \éÅ^TcW¼³8Dõ"ä7Or¯™’1CvC!‘ëiƒa ÝkŠ©ñʬmÑÁ¼á¸ÿ›ê½DKŽŽÞÙ~¨}§ÀQ'Y˜G1¯XéšumsZbàø(¶|>}{Š®ª»¤¸íMÁ8éÿ­QŠ»§#ªE¡¢x¾-¼SÇñâñq0ÄÅ¢ôe !{0ê¹ëoÀ;ü¶õîÌRL×(ò¦Çd®¼’Môï'ÿ 'ôtendstream endobj 1409 0 obj <> stream xœÕ]Y“·‘~ŸÐèP„Ã=ìîcm†ÃöÊZ:,ÒH«×¯ÉwŽ…Z8&q¿†º‰|晌 ¼è&Ÿþ>Ì ¹ 3œÚg,’Z¥±@ááyüš4¯p ã騑‰³½&C*¾))çWŒnýáÖOdøY^ìws††ŸÒöûÎWÿýpc¤8÷ÕWÿ÷èÏÂòÁq²ut ¢tMvå¤A ð‡ò½±P ?˜qþàôÈDÂ&뜾#kq0’¹Î @ÖjÃÈ¿á‘Ü7‡ð‡A?ÉNP^]ià ”ì¾,K#.u5tÃОGÑ´0™Tk›{Iópƒ-F‡}9à ¤(ÑãLƒ\‚tGzŒ Ô4¸¦Ô.\;?TÌ€L‘…VÒƒŒµLVÚÖÁT!—dÄ4,Y°qÕ «åJÈ`*þ”ìqaŽƒý¹Ž2ó;‰<]Ö$\ôßÐý ÊèÒTÕŒAÁ¦DÜFê…If•ñ‰J)¬™Øoü6öãW’ЪÊP–ê—´GëQ{^%í¹…â+[úE*ÙÔEá×¥Œ¦ŸžÆÉ-|g»Ýà` Òò=%ò"ïQÅ)¡HQ=_¦õ”´é˜J‚© ‰Î¸õGø¨`Rz[ˆY¥¹BÉàZ‰ÜVó%9 ‡1% Oʈ{%{Œ;GÀž\´Íâ‡ÄNú•ë8…±¾á%uiµ£&iò4iÒãR­Z¿\gÒpàß(& <ÃÑŒû¬„‹±XøK?ÕqS¹“ÖÝq éZ|š̨µ¢°-gå–F.ùõ·Äï4Ø\Zä5ü‰BY‰_ë×b4è¡w ƒu»Û!_¥µB¬_’=%c¢[~’j¬l\jÏ)±»¼–¹S¤&N÷åÑÁ?€¼êÅíèˆ^}HúÕ—Ø „e««®tð©ãòàÛ½a+È8Á ¹°ÕdÂR &B‹†ä¡m9AÕàd OHEºg*ÕIcF¬£˜ArPž´Ì­»˜+Ò(À†¾ŽËqj$dt`?½ê¢Y”>)ÖdØuøÀY •‚ò¶~/ØP˜Yˆ&øüœ¾„`p1FÃpÀô|ˆ$$kTûãq¹Üõ6õbÂ>ï‰Ò_el¢Ôhr„ÔT¸ ¯’ {ÆJZøþú¯¹y”›_ææWU¯Èø&õ6Mœ4ƒa2™¸Ú:å•?ʪ§9Â1ø©›…Ø-aï>ÒIÐs€ë@k÷sG÷9 aâ1õ PÅga!3@‹®d{™ïÉBÃM&Ãç F;¡5Òt0ß²Xãw"Iå韑þÅïä>¬,°âÙÄz[CäŽaH+K›:‹s¡×é<ÃÐ2è—‡X„'°<ágºŽ’:ÇÏˆŽŒ qªvÅ`ô± £ké,¥ÿ.˜dð8È2¤ød¦E€ž3>Ëâ×TwaÀʉß]o× M6lý·Ü{ÔðŸ©7¹`ú"ë•áAXÑßZ‰ñ]êYr¸‘ÉáZ‰rS °·Ñã¾È$f’~(Hj+ã,µ:V¨íõÑ¡“€°TP?¡¯}6mýÆu³G'DÒQa€Å®Âøµ=Á!²Ì0U6 'Q]N›Z ×输«­# çZîdÚ¨Jÿ0}ŸÏå“y°Â“|rWŒš9û‘ᢄw‘=º@¥ïâ  µÉ½jëÐb&%¥šYůà¦W6è‰Ü‘` ~[:(§µœªÜMÆ(¶M-e"q„ã‹# A@ý²½3…1ˆl}r⛬"ÿ‘UäEÝšÿ•kð"÷þwn//s¯HͦêC×Ü'ÕûWå!ò«Ó=Š»vsëZQ`ãåZ!õZ#¥¤w¶V—…µšÜ«ö_«,@è—ïf@ÓÊ]át¸ "¥Ç ·ëT ¡%/!5K?:w‘QÒÒ¹Z1ÃÆ©Ö!‘@Õn’iU ×Ý£NÒF·É~«r›ÛäHô0^?Pgž/ûŽ—Ž„ÔVxÛ0¬‘s=<Õ i‘âË?}s”Öjj£îFZ¬è¥ ),{CøO³D• “Z pÝÜeéCÖLᇻé`$¤ç©¨uŽU(ˆìasd–öáxƒüò”ü²öǼls1môvs&<¦ hΞçæçyìeÐnró:7Lgq»MÍÏ—C<‡(–ù,ôEE„qUåê, +o–\#õÍ-¡˜NvøYuÿ”õ—ÜûûÜüªåÛº-+ÓÆ}8Ô Éy'ùCÅ–ŒxEVUé’n`³ä rF¨û³ÆÈA˜ ¾ÎË=ÎÍï³ åÞóÜü.7/s“Œò dìunž,{R£›eÃùÙ›@Tyä(Au ¢Pi'k6›®ô“Ú§qcð‹¥1mÑ1ËáSžý„ðÝñªwãî«âxå<ÎÀx3Y1¹ÆðÍ«#ë4 õ»‘íŒ*‚ßùrçQ²gai&¡ƒRÐÄ7Ã/˶d0J—í[TP4]rŸMç:ᛊ–#.ÛßljăLèBä(ÞG¹w"OâBd! HŸ_åà„È`û!,J÷ˆƒ÷°aÎ{C#ä@F!’Û²ƒ°1¥HëØŠœJã®8&fz b¼‹ÒÜ b$lJ\£sS™—¸+Á³AÐÏÍ.c—A=@éݲ&éé€d¬Õ°[(«Yˆ«‘{xüvÚŽPÇìDŽÛÚNóÔ\D< –ˆ'j)óÊt«"HˆÁ·ÄÇd/ûsÐ/^†0 IsXxWe9p´WÓ±\ì 8fcŸ ÉËí^jAqÄ$——˜FJ=÷Iry‰Ö § ÜžãêÊ)h0ÄÅ¢%§·‘J—Á͇ÞÛRÊÔe:'‰ îzéîF¸ªŠÊؾ aXÆ×÷Í.¡7x±)‹M¼ÜX¥j€sÖØ]S5nÞsS[}£¼ÐàPb–F(&ÿæÐÁ^)Þâ5Ã+ß›T™=2hh¤³â¬e“VçO0d|ÚR–(uJ>@‚oã) [®bÆïX±Ó@js¨9Ø’‘  ã—Œxb_!±ìÐÎ7;Y´é¶Œç\>ªÞ´’#Z´²›ò˜,áíqzF;/tŽÈùu\Œ1{ÔPŽD—.d{neº¬Êe¼‹Øâ‹å»òok‚Ú°(\ÃãhíËç·Ñ² ¸,h\8~j’§kÑH…ÎHú>¶Ãño~ÀT†N£óöÓiN:ÕiôÕ9ÐÊg]³$Pì}×<"» 5 ’\R(öf+·Ø„¯²¢°…xûÛŒ r}-l»›¾f[ÄBÊ Ï»ÏKª=ÕÌ¡Õfé4BY›%yl3¨Ú ?¥PUÓ °ñ¾‚‰Ô Ô!Ã_^gE˜éw‰ML)=Az¦«ýøEo—SQ K+xgŽÓ¹Õ­O4zGyÁõE7¼Þ‚çËÛ4s»hšÝ/½+æJÚg1£«“ˆp=’ÚäÓ7 ^ÃWÅÖŽñð醃ѳ…ªŠ·’¬É*åºÚ ÁWîq K0^÷Žš. F졉Ó-û¥Ô lD_Õ––T¼…ÞËÜêõ†nÙ0ˆ•ŒHúOò•s©ž=&ÑËj„ !e}øq|áÐwO)10ÔlªU™C ¼±¨òq{Ý/”)^`¢¦Ó,u9À„=?Ý‰ÈæCPã-C3§6]¯žyüóx“jàûõí¤é§ïù‰a*Ä8ÎÀ> w¿·Ú}âÎZ‡§$ÚÎZ~ñg…êè œ]¬ÁCËÂv—/Ñ 9øÙƒ;4ùNϺ·SõæNbl]K‡½B”Qò.5?Mh¶%±gÕcÔb)NÝã•Å>S¥qâÚô¼~§>5¢«$°mÚ«ÍDl}`s/yÑ4l{CÕé­nºw34¥vÌ…ÂŽÏ-¦¢|×ß2jGŠÍ¢%à••6å`ÿ†ÃV£Kð<Ó]ø±›éÀ|رrÅp7¿J‘¢·“Îéë_NCb9“Ô>U9ÁÿÔ:^›Õ\Úö‹Ið]ÏDìÒ‰DxÀOnAdô†H+ ³(gÊÀò%…{ºr_êCÛ*|`!×Î.×û`]çzãㄤH¹S×[.拜@nVÕ9Sk¤-gv[*°ÄÖ- ž¦]½SÔ0Qvµr¢·‘2ÞÓŸ˜üAx:» Kd,°™«Îc{û&hHûD4ê“…i_4ó$gyÞ¹÷ ºøVáÒ%m&ÒÝLÛ›bu½“R¶Œ¿±2=m×y’¸]®¯ßV‹"™¤øñçÍõ½\W«¢—>CÝЇÜ$W„››27_æöïró*5›ë¶¨ùôyyÏ}yHÓ›:?΢IXq’{óE}"cí}0xè²á3wµL†ÞãæBÝÛÔlRW½Ÿuo)©©‹Ü@d§†9ËÔ‘üÔÅ2¡Uò¬©lÄ |lR÷v uåk ?7ï^ß“w»PGV›‚HÝÛÿ‡ »Ú‹a[ GE]û½ƒ¹ù<7_çæ³šüÐ{››'­Ƈ/ñN{}:!Í5jŒôüƒÔý!Æè|/cÔT÷±YUb· ´™Mâö›Lï68k Ðí¶Únóž3´Ul‹×÷~š‹_ÖëϦøÐdòos“¼ÿ4zýÐþ]¥¼$vÙÅëïºîãæÔëZøj}4½ý®F„èý]n¾ËÍãæ€ç™Ðóeêš ¶+uÏJû#ÃSo¾²?$ÇAr’›Ài‹«X¹ŸûÍ^vðÞÀâ׈×ñlÁÑh†\`X@f C2ÃqÞÝ7Ãêì»2ƒdjÌK!÷ɾ_47ð=µìé)„e¼šÑwï¨-_h_ÿ˜›?=8¹^oF§ÞŸÞ:3CUa)S/¼üe3õ†ÜÌ2õŸI‰¯(BSÑ?c¦^Ç'u«GMH>ÍIºcê:Eü"ÅÅdŽÛû•´ÞãN#µx½ë ÿNyp¬f¢:1®]AÃ#¹y‘Õ„üì¼56U'3a*#GÌÖOµ•¬nÉãÆdTølºvÀrçcEV§ì™nvC…Bnò.Ÿáo½;ÑÈË?~ $cŸD1°¾ÍóêÂ|Lk2þóJ}ühùϱ´—\ÝFZÌšn& ‡Ü˜ ÿ4¹?¹ìi9¶~,)9jùT‡àÝïîá{ïyJþ ‡PÞë2›?Wâ” uV„Ö‚WÚ¸Ÿ ?Ʀ0¬v¸GµÃUf˜ _ìŸY—‡…8ÚšÝþÉ´YERurȵÀ™'þýÐàjÈ3¤s¾x ¸þk\÷±öÊà$>î ÂâñìØo½"ï!´ß5E-T A"Û{8R= ºÛ‰Q¤¿}ĪØå÷)çïAH‹ïŽïAÀæïAî®âI©cñ_µHÝdÄ–÷ ×ùÆ“ó[ÞXÝk#7ç¦N¯PÍñ±+ü·œ`+9•ñü[Ò̃§w}þqðq½•Jendstream endobj 1417 0 obj <> stream xœí][]·u~ŸEþiУB³ÍûEyJ7‰M, (ì5IñŒ${ä[ ä9?»k‘Ü›¹ÉsŽœÈÎC!¢n^×å[ò|q.y.øOù÷ñí™8zöÅ™LµçåŸÇ·ç¿|xöîd çq‰N9sþðú,#Ï¥v‹úÜy½H¯ÏÞž}rño÷.Åb‚Ðò? o•¶Í·fñ>p¯¨õí=š‚Æú‹W©]PÏkíc,^Ze'ÜÅgµöËúÙËZ{S‹Km°ö ÝÅ%~Vjué7Õöý%©ÁMi+›~»󚥑±Y´‹¦J‹¾ø×{ÿDŒñØÆ.J…¸mÌ5ui´ö&·Ñ,Ñ»h×Ö°wº%äyßÖÚ'µøºßòT¼«Å«ÚÃóÑÖä¹õ+ñ‹•u%O¯DŠEiÖÖ°«7µøªÎãõp¢{*è×÷¸öð¬ë÷Í+-ËúRñ¶ŸÔâëZ|^‹wÛ¼ÐK*,BÇóK©kœÄõ‰Y̪°ìÅWpw\öÞh¶c³¬Ä.©µ 6䓲K f<}xÂÑ?Nsr“&|’Ë–þGÒ:wŒrë;èµEj}:4ZøXV UŒÌ£r68³Ñ d•¶†L‚NÒ³>ïì1Šë4ØQ¹øh¨ò?<ÊE€G(ê…pÊ0šª¼êκ߇´±÷©µ%2z=m†‰Š:a8t*KS¿‹¶ºœˆ³1âè_í 3õW3H"°Ù ïrçÎË7œ Ô¬ž”•ñ¶µÛ€W“‰¼#Î&K߉-™K”_ŒÑáâ»ÜXÄP ¥$¢Cy+,ñFQÿÉÍ‹‚VùÖ œöÒ°,çzI]|LÕZš@–LÑ cùб¢PÊfJÊÕÐ"mšŽJÄ1%EZ‡ÚdÌ£žÑ Xnâ"­äB‚#s‘µ. èÀ BÉ€õY4Øh6‚S4pi’ªikµ“K$‹òìÅ\^z¢X;T ½Îµ^ØCêi›7N¥ÒÓð˜¥`­çê1y6IˆõT¸ Æ„HºûCîNFx§$IÙ =„$)§…Ê#Óiùˆô0>WIPÕùudÃ&}‘ˆWFÝ+úíC`T;c¦ÃNF'~‰´„ÿJ-tfº¿/ø8ˆ~é8ð¤_æjÞ¦ (™~ äñ!‘ö1&œpHV:óÁ!™õÖ#¢I="Òz´áÄ=-•Ùï'•vé|Æ8eúV'IÓm÷õ!fÐ$7b§¨›»Ü!ÙMoIúò\È}é+m b4o*}•ÊÙ*%p–¾F•)Ò7Uç4-sTú¢“¾õE8EiƒLmîógîЩÃ9Ä‚ˆ€ˆÊ¥Òå›,É›Z|U‹,T´hŽY¨©˜-Ô H儎WÆHì͇¤Ýâ„–´Hs3vÙcpäM„: ŽÉoÝò£f¡è@¸zÑÁbϼpAݪUW”ÁÑ0˜ wdB’×Î’¼2ñƒZGߓϊYãx–Æ!̵£®(ž¨ÿïŠÙ†‹P°0 5­W N'\ "TâMÍ_d T$¬|±uh”³,LSo&–ZæO/ú´ãÏ™FÚ[… ©±FJ[7"n/Y;~—ÑuCÔ/s5Ó:2fc¥ðÚ´4_WEÑ0ÌU'%É VjheÖ&4¤neAžvuz$þ{–»ëYf}Â(/wÂëÂTò™BØU€èC¾Q‚Û|³Œ\.cÅi—hÌÆ,³%"¡‚¸÷ øe=k½T]>ÕÊ»†ŒYÅz–@ß$1)"¡D¡ÈsžXkäÚ‚»Î¼cƒ²sJL {†éº#úGÇ›q˜æms)L›ÅÅ8g!ònªy™Ž 0îŽ%‡—{lHs-¦¿ÎÓ`SwL£\N-ÜÎŽ+ß`ÇMa¤#P?…ÁFHÒ¹ a½§ÊæëYz~§Ï%¡ ãT6MèTŒ$q®5k•'õ^êNÊ`••$»Îæa¤óNÙ¬ûœQª¬ÞHu!9E‚ÝÑni/Ät)Åv¨\½Ñ¿åcÕÉ<ÿ¦¢$sÔÏrë(ÃN¾Ru§A[õ癪ØÈ;Dv±bLÅÞieqóv ׺&nà`qȬÂè„[²£‚§<Œã_ù°@È‘|AËGÇæzò1ÞtSRç Öi¬HfC¢ž¿0ˆà½œ šhuÅ?ïñ e$ÔñÏ÷ŒWd¯ù©© É‚$(mËB Þf0vÅ_ß³tXÜ`rÊØóÀ+š›=«’ãËÍìi'ÚéO+:Òƒ-­tôÎ #£>Û®ŠXT´šçW¹—¨{W)(hG~—xVÎ/sVXwñ‡T¶ÊˆÀLHÃ[A³º¿vm›evø‰Ç‘ÖÎlþ™;6³î4Q%öŽ–8¥7©Òx†eSij¾¯Äô€l‹^Mž¡ç{Åžê‹/L­jpõØM µˆ.3ks £@ež›í‚­3/é Ão·…Úáó¡"Î¥¢›ÒNGjÜ·rFô#cÎæn´ˆóN/1vˆÛŽ¥9Y¶è2áŠzpžûÊÚü%[2w.Hü :,l¿!;!<:&ç'µ›ýFíT÷¬ó¯9Z©öC†Å9>½DôŽÅä!žcO»È ƒÝKTË’ØÑ ;¹® B*«IòÕ:Û<±ª™8ÛrˆA H×Ù“» !õ8pÃ¥jhqÄ §™ÞªêYXŒR&¶øÍ½-N[¯ ¡¡0E¥(Ó^®­m¼pkFÈŽ[;Ç]Z:¡¿=ñ*ÃÞœ†P:ŸüTÎ(ùqîQû™ü:œy Pn £gé¬2ÂK»ì~T†0ÚH¿°Pú0Ñ rÄ+7Z+M³M:6‹Öcœ/@‘¼þûš­e¥õ"úˆÜÏTÃmF¬|~{8jˆÁxßéju880m³÷;*È'ÙA“d{^üi …?ƒAþå½d0i4m™s«Aýføó•ó'z¥;¬ÝR6$‡Ú©V ×àTk_ä>’üÕ„ í±s0Êî´xVDFÑ7 }ïè ¡hv—<óÿ“<¸J^ͱÞÍ}›°“)#ç7J®=¯Â&¡/“\a)BÑ £•—fþ»±õŒBì䱩ѨÂ{C £ƒ*‰ýƒ$ÚŠ{þdžd”žŸÁ _8à»ÏçØ{BW1RB(yFYF¿—_ÐÔU[£ê›Yæ“ðüÌ_÷]±»ÕŠj´#ã-Ñ`n¡‰Y?ŸDob±,6 Þ… ‹ªÅÊï-¡î™²Û Â.«¢Ñ*Xž‡’“£ îÍzœ¥†{"ߨ÷”ÈÝ„¥ÆÉNñAýü˜ W,E©œ„¸ùAN„'"…ÓDºw „PÁÂ6q1›h#%2âuë˜x4D(èŸs×Ûµÿ!掕‹vþ ¹C3à ü¹LƒnÚ§:ïÍþ‚f7k2á–6£gxÂW¹såfºˆ| ¼’T¹'Ë íÔñy] ¼ÜC )iµÚ4ç±wð,ü€7Á´›I$C]Â’Oê™ÜÔàÁÑ&n0L0࣠H{ô¬ŒmF³ÞT‰göÓN™Åÿx¶ÂÏëlßLýï S ³“‹JCÚÍDçÁT:ù‹o'K<Á©ü$³™åí‚MXŸ=¡i{[’å K 6êÅV·å8HGÎs#ü$Íıم÷{A×û>ÑßRGßT°±SÁ§ê’^_tÉNJá~ï$…ºaI²ÿ‚©À—6„!ÆN¤è -ÃIñ@Þ9Øfë•Ìö0#9/B,i®tJ*–à·”j³7Œ”¢Ä€ISiQνŽ¾Í½°¿ŒèƒËÂ&Ï)w˜”\Þ5g §pÚYâ°Ú¾»ÊS;~_Íz^'7”gÒhÎ;Zwï~eYc¾!zj5]-~_‹±E-ÚZL#Gö|ãÈqX„!:â¸T"$“©(žÕP<¿×HLCš›•hLÐBB…Tþ1Ê+A‚hª‹"IðûÙˆ‘Â4è$î¯ÃÅûùèR€s&šgžê™ <‘s÷ ˆ±xîdÌ´“ç¢Q÷/ æÐð›*´×-Ô¶ ¶â"P.®[¡â¡ÐÍ$:‰ºa‘ ná ¾·{[¾k&¨Wlµ°:Z…µ™ß*HÒû=5Y@]Ž"ídpábx"ùL²CÊ.®zÄ´ì]5é®Á›85Š”§.7ê¥h)O˜s­Ò :&lòŒ|¯ò—RÄ©M3£êÓAõ·3˜ˆmäêønI¼"è&”0ñ‚O\“ý/|9áä}®ë–K­‰ŽTÆ)Ù2NÝ‹·%¢ù–Ù¨tQ!oÈÎ$°–a aC€ÅPkIDW;OaÒY¬à+ÿìq` ½ÌÁM2ÒM–T‰Ãþ#¥£éí–RÑÇ×¹,8õ÷³ª,KIÒlCç!>K„…•nÎóÔ"äÀ¬1ÆFû—éèLÉÝ‚­pdO•pªyOdrÎ7?ùXÖx{RþOêVÝäÑXÁÕnÇÛkùþ¡7øõ]‚ïvŸƒ‚âEŠrïi˘mÿÓY¼l‘š¸d›oÛG‹‡˜'¢}TÍ0xžØüì0…ˆuG§“fr›¨3ßoB•‘¸×q:œìÓmê“[æ«ma–]L0{°“в—ª06\­™ƒ°ÓìôxCòÚÎhLÙ\TĬ¨±ð›$Vƒ;…媔‰¤èw溋‹»•·Vù|)ZÒë¶x¯ø6ó wu¼[;˜»6]Ð~,ãhi·qÒIöœAâ)1M ý2ÏEMnfLÜrH¥‡qE <”iWø¹äc¦ˆ$1ÃO“¬„]¢\\‚Ðó°PŽé9’”[ žåŒudÊô^V4õ~IÑRŠUKIí¼*šFÅõfp„"U<Ô juÐà»Rm lI©¼*©Í*mAs¥tÇ^<ŸÎ:Ð#0Ð}‘J« •%è“1Fv½ˆÙu‘µ<ÍÕt|¼cËGF¶ˆæ“dìpµ3÷L‡$6” ÐÅØY"8-À5Zœ=®=Ÿ^M‚·áÓ{PÿØ €X9 êÀ‰"‡EðÎðŒ ípÔ‰bæN~ ‹H¬?#®€oÇNC-ø†1šŒ>‚œ#Æyªx»²ôa™/Å+BHÝ3E78O, ~TÁDNé6diø7  æ·ûr— þ ž©]¬4Í@On¢¡üše<Þäm`°:ó  Pšˆ»Ÿ•\ÄÍe•Äܰ•ßûvg©:mÅi}¾ÙvûñkìcˆhCmå(>Ž3µÚÕ¢®ÅïkÚúág÷kÇ5Áz犛 9TœŒ8¨Ý™ ìrn‚€Å5ãò£’¬Ì·rvùò QRcV5¦ õZ:õ£ ±•A&)gÂW¤n¿4émolãÍ.#“«OIOágÉ4é§Ñ¢D/÷84Ê-=ír?4!šÜë¼KZ¾^CMø•+ìypÁu`Yeãƒx%„.S£øÉhZWѾó`æ bfÎÌ´@ 8ó™>.ošH‹êQ&²ó‚Z½„ØçæLî…£s–nÃi“ÏŽ‡îBÕÛ}IˆŸ€OööÎÈ[­Cº‘øîùqÏ"Œ¸æH^n É _›}Û^Tž¿Ú¿ÉgedR/:è…¡ìK\–h¯âsݦÝ+ˆ©÷;í `–Â䮸LZ$€’¶Iz€.ð: ‹²Èï‡7‰9_®k<Å»Y‚£¶\¬%)á|ÍS_²`â™Õ«’ ¹Üœ›»¨nª-@…ÖŸ×ál0’²¿Jà@[¿"N³WcRýœS—f¬OJƒKýNà ]úñúàˆA‡ h}ð~B‚Øýü(‡“Û¼“‹¸w厦VØ/ ÁÎï‡s°ëª› ©£8JÏ aöÈÝ1ûØ=U‡ön¾?ZO$-†EÀY}À—³FŹE¾à9*Š¥Ã[FEB/.NmpFEB2"èQÕ²9ò¡¢6T³{"‰_þ{x<Ó.ÒÅiäw˜é/;¥yÉÔíï°q‚é ÞL ú@ ‘[øÎ>< síÐ_~T„CÄðÙ=IVVž$OC88xm2E>UÛù öÉY˹ýøc7›Î8šàlø¥÷Ð%H¥OѨ,ê¦Q+'¤ñKÂÛŸ8A&ð/ÎÄÆ´,ìÛKñÝœ9íŹAùìöºs“óD_Ÿ{;h_W-<8s“qC-ü¸§á¡Áþ—ovþrèázØ6O'½3ûçZ„÷káyÚ›aíÓZ„náýÚ£Ñ2kÅ™k]žêîçú€§láGêûµe˜£¿ÆÒ‡8š_cA?ûûÏ~ϤaÃùÓ»3ÃÏK|s&ÎͯAº%¨s~Éz¼eaÛ{³œY\Ðêü’Ôt`·VïƒbE´Û¦þþìÿËE‡Îendstream endobj 1436 0 obj <> stream xœí]Û’·u}gù#æÍgª8­ÆЛlÉQ”Èqh–S.ÇgH:âM$%EÑÏgï t÷8ç 91*ØÓƒÆkíö|w1OêbæåÿÇ/îÍOï}wOÉÛ‹òßã¿yxï“*ÎiJ^{{ñðɽüºPÊO.ú ̤‚¹xøâÞ_¹¼š'c\Ðá/çÉl:üõòÊÍó•>üîòJMÊ$§Óå•¥·Î¸Ãü¶ÊÄÃ.0{Âá1¿µ~³?<Új{ܧ:¨#!ªÃWò¡ž½çšMJ“7éð ל’ XÇ zœÓìÃñõËKèYùÃ÷ü .F}ø/iÐÎ^Ç]ô{=ëÜ4¹ÙÖÕI%†j<\ç>E¸ŒzŠÑÙm ôáÐ`®Âkþ^ê8YëÕá§Ü˘°­×ÐÖë]]ØyM-{«'oÝááe4“ÑUÏßrÑ|¤!›;B­ByŽ*ÄëË+êó1ŽÖï¼v4ýæð·Ë¿>üꞎô":ÚW¯i½ªºlgÍ­¼U:-Ëd½©êz•ûé=š&;Êd?Ëe•¥i«fˆf“~ð‡èeÙ|†–æ*/º™Câ.^ÑöŸRòWŠºC«»ŠCÄ-óM©_ª7NO¶å7¹+ÚsWøe¤%„ýŽ=U ÅË9/ó¸­ÆÒŒr!·­hlµYÿË…[tÔæ;®ÆL>8×úÛì8˜ÏzÕ·ŒÞ¿ZÎîÚ—ƒæñýÓ­ùi+ÂkøÉ;› Ë"a˜W˾ûо$h¢MÏ{‰¾œc*O…ŸÎ«E8‚™5JÅçÙÃûm-N‡ÁGõúª–'ùµ¢©øƒ Ùä}ºxsé¨c[mFO™wÖкRËQ«sk–6}ª>Ë}Ó‰NõunXëÃç‚…ÚYWfOÛY9ÇIMš†´¬†UjVËX©ŠRØÍŽ71·í5u£L ÍÆr¨yL7—´å|Ð.£Wî¡eºå9WŽÐoåË “‹Ë„%:h´cyM¼l/£”Öër/›ÊjCgªtÒDS-ÍÓu®òhèÌ:ä1.[€pœö ‘9¨mÍÛ㧰댼¶‰Î…ÛJü¼=Ú&]·‘ºóp3_yÂÒÅ•¦i¢½™€ õÿ–ÞêÙ˜„'C˜’‡¯ù»¤­V~íi«&¤kÄiqÞ®¡•pK¸@oWJÁ.çbÔüã¼X$2À5à-\ý&—Ñ.|ÕïB‘~…ŒñJC,ÿ,Vò>|º6Yèš DŠš®÷óŸWýÝ¥È,4ú¹Q•‚E)H—„! ¦°u{Ày\¸Ìš¦^USÜ™Myÿjw"¤òf¿‰h«ÿ,’Äi°p—çH¢‡e17þÉœC­SÓ„Ú4n–¿in:O€é-t—{nŒ¥™5;.4$|&UÎ3@yÞˆ{™$·/<—O þÔ’th$…åf"$J 9ìwî,á¨\‡Õr”™“Bôûcg_Ag‘ªí{(å±Qœ hµ0áL ¼ToˆH‘ÌŸmÃàdé k| Ÿå5%.‡ßwéP£€—Ã&§ÊÒµŒ- nC.58 ˆÝl¼ð63ìL*°_ØÝƪ@¥P6vßN…U“Á“QKíéžï/›4øÔc>Ö¼v®Ð1¿÷ af5±"Úrpr¤qÔ*¬¼öS:ü“ ŒÑt„úØÓWfj!F´SÂq:¨ŸËA!ÌLK'¾P=];‘Un•¬AèBîAbGÛ#™6é ìÎxÔËö숎r¦ö¢c%ɃÀšÏfu’6ÿ-+õŽ~2ÙZ îšK^H”'›.°bT_À¼µ]zðò͆QE UlEÙÃ÷‚4X¥ˆ6Tc aùS[ÜÄ›ã³OÚëï··µÑ%X1¹eY¤N¤ª×E·* Õ˜Žþ)Ï'ô.ÙQO—)+ÒT1ìÖâ>— ÔÙK6^6-Ú@±¸ŠÏ‹jEò»Ze,9jB*ŠZtlÇÃÅgø¥•H2ÍJýœ¬¯4[ÐðØ'¬ð[ø¬¥E¡J¡~Q¨\AqœÁG›à†'²6Ñöô\ÜÜÿ³IŠ{“1*RT£)L§ì~Þ´V1¢P7UîPh`wá]ǘ©à<¹¿ûéóL©¬mÜ™9R8ZÛVÉEé»6Grµ&ÆZæÓËZyñì·Á–fË3éç±’z^Š'ÎZ;PäúŠÍÌ8c@±±ÊpWâöøŸ‡¼†~¦mfáý%lçO7ª(šAK&PùÏÛ£é€VZ½‹Ÿsáô˜²"§ÞSVˆ„Žrè<Ài-}%Zô{õM);ý0æ¥ñ„¾©Õ‡,首¶ÓÃÊ€)-S{ ä`m¿ËÒ µ ÍÒ keª.AÖ"–ô‰ð¯"qËîI¹ï;­»cQî âw γnÞ‡Á“œÑ1ƒ“ÐC(\IrCrâÅF±¤}CjMEZPý÷ ©H¢‡k} ÿP4•©í[öWÎRhâÔÕJŒ(nÕèxŹ öh66áµ4¾ïñ§\IòŒ¿ZLÉn(`lÂ艆º—˜zÞG‹<°@…§X^+jnEü?nôª:ú¾Î¡Ĭ̼Y;. “Ò®5øq;$V”> Ýʇ¨m÷ÍyùBJÿ ø0WÈ~º|.òdÔÇ¢ð­èÆ™K©všûë¬>ÓˆpÚPcïH;è„€Ê:,M–ú銆mbÕÞÊŽŠFwWž“¦ê¾šM³ç å-ŒÔº÷¶¬ ÆM°hBYp‚ePš‹Ô¿ÓfIxl™^‘ ¬½9ê¡OCªgS$åî¸^¼T®*³#Cšæ!‹³ò}Yú|&!OÅ4,J&šýl¦yŽ»Ð¾òã<´r<ìa%…H “*Bz²¬ÀPžYºçÍYQµ7‘A?ªª«/r?4éã×YªZ}ƒ8›=yUIzõáU·ð5ˆƒØœs}€zizÝÅúj“ô?šzœïSôdû¸Çô$êhá'1S~­—t*-ü°#9(ñ£PU$)ÓtQÎÏ6v!á@^÷5€WkÜÀvDu¡y!P>ÏXÏêHAëìÄŸ5 ¿ur\Côî˜TO%fçZ­Cú“ÞCë(ž rÇ#£‚fôÿÖÑb=á˜B³7Ö½Ù:.X1Êq©rÕ, ·&Ò£çE˺÷&=Z'x%}˜Šéréèk\²1¿¿Bß ?.‡ŽH ±|&öìØÀ5½…TáÛ°k•ˆÇ~Rb¸»Á ¦ÿWÞ€<„²Êl7E"['A¤ºâPRno+ìåµó«‡±x:ŸˆDzwе{CO)WM‘/wn‹lÎÁ¡3ç‘ •µôM–é8\ NÓv]A3/¦‡“h¦ÆhIÛbOÎ8Š >v]8kÄ3â•ÙVŽ<øhÑFuõQÓŽCƒ}ã¸0–¤QÚ¤ÿ"ûœàÁŒ"—²Vî£3Uƒ/†èwK‹ÁAKnÝùý©–ìd¸¦êS-¼tW LðîŠDK¶ö[á&lxý ôµ1aïÜ— cO¦éžh·cv¢Í1ËÌ=Ù 'òmŽ+æÆ#Q_–¥ÔÚ]ukÿ×Ñ€³<çÜä£jbº:>Ÿ]LðÀ"HíÒÖž’­Û-6%ªom+žŒì*”-ЇáPìÛk‘æcañNk­ˆÎ­)öÑØŽÒŽÞö‚”¤¾¯8põQ£)þ×@K˜åá™¶&˜¤®@¯ýЇþ Þ#éa¿Š‡Þ±µó³KMBÖ¬Õ(æ+ÉäKRð@ÌÀ²§üïD†›ì~Ÿ·Q’1vùÀÐý6ï>öOm€S<ªû8oWfHª-‘($þ¥Å¾ëgë–("”øl+±s:ÒPœoä žG†ÁŸOÿHH›‚åÇÔXT`F¨˜± Z"Á†Î`,’µU¹M’&ÄÔýåF£ƒK>ûicºheìa0Sâ[~ÝE_gÌd¼‰×»£r"ø’Ô^Cë•*±Jì£ý 8\­nMßog‹×¶P‘›•©ãDu°<˵«o“q¥tÚ‚n‚=¡hT—vÑ™#€;Ãû¶ôÅ×·!^å‰UÊtÂ=³Á·¿ShwÂûâ4eR$ÓðÙáÖƒFeῬð> QI­r3…mº¾ÎA¤PG—v7›šuÀK"Ä¿†÷uhåŒÏ:!ÿÓ9M¬ÚoòRŠúèùŸ/ ¢Ýås’á’lßcV±®ŸaTtŸ=Ýiòkf¾†Pk[õ(Îvd˜EdëÉŽXå›<ZQÔtöD¼«0’Mr,Sa–ÙhF–X„£ÛûËP]éÙ<¯3²©ÑâZ¹Ž¶«‘6©vjýˆ7`9¬öÇËÕÙxUÄbÚtj½føçí÷}K$úw‘Ð2iZ—|‰lkéðÒ˜‹pj†jG°%}ü¦陑ɧ,f¡K¤¿ØdʤN‘†”‰ãâ@ã([t^'|'x×dË­ZQ z¦àR{ˆ?4©6uÎg¹¦tŒß—`eÍÂzòÕÕ£ï¡ÈóÁ©Ý¥Â÷#/îè4޽kwjSÒçZ/÷b½× ŠlÏ8Ž7…vèµj,m+šw]ãÌ^K@aY8;9£ªzâóíâkttâE¸ d #k²[¬â=Iv¨TáÝÕ`¾4aÛ˜ƒÑ]Õ#þ{6»'Wüco^¯—Šûöçw%à·|Á<áåx0çÏÝG@ŠýåF3Œî"C{AFUÕßáýñ[nz¶Ù‘,Va@mÇá)Nf!1èǾ0ø©Ž³,î–ÄÎN9MÞÑà]ç4½\ïý»qgG‘¦L bŸáÑTÇ¡V£Ÿô±+¦ýk9cæ03ûìGb’Çiñ¦h þqú‡öæ)}¨Hä½;æ0¤ùfÊ¥QNZ`ÝDÜŒl„Ù#M*åÎr8§Ïõ…ÞÒ`(ƒ|‘›áÇ:Î:orOâþês|“§˜T™“fÒ[äà¯ÒFl§fÌ Òkvô}ÙpÜК‰#Ç ¸;Q–ð'éFÙ*äãZÖöIº'»ß–WH?ýP^ ©C,‚ÎïI,ýÈ“¹[àŽˆ…Tk:ÿÿ‰e9DacŠ£ CrUª<ÍH!xnÊb§eŽ@3|s´y ºÌ!áÚ´¢‡9¸u«1‡åmtËüšÚ»;âðïµé#±IKåÅ´|›òÄo{†riKµDä’tÁi“]jͶ'íI)[ A¤k’”Ü5Ûðµ âµ¥nd±‘I–ç×0róR±ôT„ŠÏëÝð³-e™¬x\¸ßàuw$öðº¨$|áaŽþ$¼F7°3ƒ_5(úºf°m8âl™Þ%…†>ô‚¹À´íå_ ÷}dúŒ¸0ÜbÅRºÈe,È×nDN=ÁA¥ÇÑí Uk}ÔTV2[¼$áRkÛ`4l’þõÖ.dÓäãÇ2 ±7\‹ à|í¯5 YFÔ»4 ™Ùóý•÷…h¶ÿ‡F€w­•J·BhN¥ÃÝ 4Ï›¡)¼=DóBzýs®„o¯ö4~ž©‹kfw0ÜÆɤq˜òëÃmL?·g‡J*bö±µ\n'¾¦ð¾ä–›>9ø.º@5j|íûzš|Nâ8,ЭÍú°Jý{é­ˆ­I™?–qÆj:„ö¨ˆÍ%Ü¿ùµ2êñ;ÌœÊS¡†»t0؆³wi¬và7œŸ2– Ëëtg¬ãS[¦eÅOü)34÷òºÆa}ÕÏ7Ô-»ÿšhzÍÕ±3­ñ Øü]çÂÚ¯>°Öbyçý5W§2ú#þ7!`$ØéÚÛ„€y7yRÊš°Ò¯“A`ŽUc¸Õ—RÜrÃ\'ÕÏ£¸. Ï÷KC¾„ƒÒ»¤«Ô7^ñß<›Ôé:~¹I`ÃËý’M¶¹XÞÂ"äK›.»äûˆ½¸GðrB*ƒd×Ïù¹+K-@|î´¤£r'ÒQI\>¯é¨\“ѵŽëY¼ÂÊž¶ÐÀò…†¤ŸÙÙóø£üãþ/Æý_ŒûãþÊ;·~¥åˆŸün‰Í“è*þKƒDP‡ðÂO22Kà^6û¸¡<Óò|‘¯ñ½Æ~l`þ„6=¡ŸÓ f'¼2^Îæ.G"uÁë*ˆcÎr¬\®“Xän‚ Ç!—r9†‰³†,q8ù˜“òÁ¥v<ûöðoïÞ9j³,Ë—œbäXð1ñ_y¨hOK&§ÑÕÉÇÅ¥®O†;Bœ0»IÜ7*! Ú¨Þ~,ƒÑZŸÄ¨sh·£ùùÙQÃÒP8¼Ämni¡+4W&þÄÆ Í©Þê*ø÷1Vé÷ójé>•ñ>—z˜‚K/ö?ÙJïÿ6_‚¶5+IV]­›\Ëå61ßÒ ±sY¥¯ƒ£šõ¬LWHǯ–´föŠ!îŒ\Æ'‡ÀKÍmö…Ûð‚âd¹çÓÂ|ýOæL;_ä ;«@¿dRdŸÓG3ørøˆ¢=7Ð-Ã3ñÂËÅ7ÇÃ#u“Ö%]ð®BZDJe4H¥ìhRfí.®ª¯ÎIó!9b$ú†ÐïAhŽdœsMÇÌË £Il¿óô[<¸Ù„[$yƵǯwnå¶¢©²cââ7yð¤Õý=S¨YÙ6ùFÿ¡þÌÀ´Ü±ï%+æàöŽrØæ*È,nCNŽM(Iߟ´7BT_koô$ˆõªj/Ã1ðÿæ}ë/âKÖ,‡Q2’ŒàˆÃ(iIšÜ¤Ý’n7zäúçJjiùÛ3cÞ2’§KSÎsÂ7g`ot 8[¾|íÝ’/_.Œ®D>ÍãP6Z7y´±ØQ´>¾\xæß'&3t¦~‹90v³OëCtöŒføˆfÄšÚyK˜$ñ:±Ý²âõ'ËŒ• ÷£ w¾7¬€54ò~t²^‰í’¦â¯±šÆÂÉ]{ ví#&vÛq¼mFø°ãgBþ@³|›\’´™º ¸VŶÊEµçU§àÂÁÝYÊŠi«¾‹ì‰[×ËÕ÷ž—Ä’yý H/±¤œ »Cß:Ùÿs3ýT*Ò9΀q@.ÌVœ5¢ix’¼h›sÕ6e7eúÅÃ{ÿNÿþŠ…Õlendstream endobj 1458 0 obj <> stream xœí][“·q~gR~ÉØ7Ÿ­Ú î€ÞhG²-[Š#ÑʃíJ‘Ëå%æ’”¸”H«*¿ÝÝfðœsV»”’TJ‚F8¸4Ý__ÐûÍÉ<‰“™ÿÉÿ¾¸º7Ÿ<½÷Í=¿žä]\üêÁ½¾~> S°Òê“Oî¥ßˆ!ÄdO¬S“pêäÁÕ½?ïþ|z>OJ'ÝNžÎ“VÊé°3¥ù×Ós3‹ÉÍ~÷›Ós1ÍJ±›NÏ•R“õa÷{ÂÏV*³{X~÷mìlµs»÷܃¦³Ý½Nmã½Ü=‡Éߤå¬p—Ðûqê„ß}M=Dð:Øu!NU y ?¼¢Þ35ä,; TFó ZË)x±»ŸÆÔáI\ž¦=þî vÎzú|z»Ð[µÒJ,«ž…Û=lýiùå³¼G"Ô7©÷Ì‹z »'½œTPÄ_?a‡<»¥ÿë+š]¤Õ½ÄÓ–«â]&Šxiòy¤E½ŠT2Äsä†(ü|XõXNú<©š]àÕŸK+˜£NÎ…œŒ¶"í¢C $‘¤Q«ïi5:8³œ½³«º '?¥["ŒªG“›†„yZæy óä¢ËfÛ<Í,,² ¬ô8 ù4œVDsº%FéIÒQ<8õjRRW«K«ƒ¬FÀË€lu‘hIkžæEK¡w_ri¤&Ñs ½i­ÄËÆÙL÷v[|)­&†»Ði™ Œ¡cœËgÕí|F£‘ÄÔ´Ù?±ƒÇ‰g˜/…‘ôƒî¥€u"m‘2éúj­âý%bÐJ‘៤ý1Y>çŸié,C(éÖåÅ‹€m\ N£'§>53•¦‹“·/Ž1ùâ|wGrÞVb/Åå"2w¢9´ÍÈãp S¡qšžþ34{˜¬¶!Í>Pfö(eæùhïR™¹É±W™y¢ Û(3Zu¸23–ÈUì:äEÅm}Y‡}j±OÜ©•5­¬ÇóùèKêQA&Ìr#þVn`êÞ C½_/^ØïY‘‘ ²´}ji–¢QÏH²:’D+áÐÕr£ï¯–1F7¾ì´©uGãi*Áˆ"m£ñ<Ëó½´¹´Õ¥€æVÄ1Þ‚TxƒtÕf¼rÂE™ÚÜø­fáK²Õ,qËÍb,<â/=9ïÍbäñªes$ðËFµ"¹q+ÕÂÂËÝPµ€Òµj!€¤…8NµðÅÓBßNŸ÷Báþž¤¯$zúdÃä¨Ð;ú$r<ŒŽë!î=)J?yã–{~¿Pámu­ÖŸ¡Ãý^§=Xá¢ppè6MiN…ó“Zq$E”¬$—JÚeñ$,òí¶3ÙÖéˆÝ±K>o‰ŽF±OÎÊ™‰ùõ7q>oå®´‰Šp¯¡ý,Ñ\H)òR‰œ>áüxëç}€ø{¾9g$~¤Ô–øñóÓ´5+]ºE³aƒó²Ð –ý Fî÷ˆs´òz;0ßBJ¹ûu:QI×¶ZóU”Fyé*ZæC"¢„!MzÛ}šÄ¿ (2ðW¤¬Ižˆ­ZcNGýê”6'^ ñ&j®h'½òÈdCާµl&ýúoQ Z:ÄõÔev8=ÏÙÉk¯=yþ‚Åã@ÞÏó+¯DMîM¸6™ZšÖË!Äñž$tæJڽ潋 –Ã]q>¸Ž—i2ÖC¸xˆÈðH´‹Hm\ÃpJÕ„c×Ikúú”H*Ã:ĈãæÅ¹æ2¼‚%½LÃã;•Ó û\¾wÍ ÒTÄaá3V‡tjÄå?!î¬Kl‹»¡^u׸뀯Èx4øW`à€èECôV»è'“9vd&k­GŸb<¤H D»t=þH»³÷ 5Ú¯€ƒØòž gÐíû¸r-Òœ„U&–†ˆ›:ûd7b Ú¿ÛX§ ‚S3áº}NdZ$iþŒ°.ÏîþÀŸév9/† ÄÝÍB÷~Åö<6;?p_¿<ˆöŽý_Æ["¢罄Y ­]Äp¤‹Nö®i~‘WNGùz;"CV#| .ãpÙÊo“NŠœº¢ÍÚËóÍud 6¹ñùžh¼ŸhÅwv¿ÃÕy÷FÀbög×å8Ë2ä7På-éµ âx m̤>I +^û?0óåታY‰| õ¢µDúÁI‹XÕhœ«4†¢À)ûÐàáÔ¨%õGB¬‚SÑo=ÇøÕgü;ˆw+ •áˆ!M\©@˜¦QV}Fø€€ËBȳ%'ú08ÜFu°Gd&‘]Q ú‡®£|^fcø,y?Y½~zêÅœ¯/Ý#¸tp¿ÞnVÞÞ™÷9˜FHµoå»ÒœÇV>IÀ‰TíqV>P£oåeip’½8ç„ë&Oú" dºÞËÞMоº,ˆ•Bߢ¦©…m_°öc;/Òª´Ë–¬ÔÒζr¥<‚1Þ׈[MnôPÛŒ¤,®w´k:$" ýW@íôÝ©Ñ,¬$ÑÈM ]ÅOvÜ„¨d8Ð Ä9¸DÒ$Ýw¨H¦ÌzŸ•kÝ4µŠ‘úúõãÒü›…4ßÇÏNÒúûÍÈÔÎj"k²Òç—¥ù;¯ÍW¥ùmi­ͤ-4oÀ5Ú"ŠLåiö<`ÜÀëòõ}i¾(.Ë×'¥y]‘€…++¿¥Ãeéð¦|}ÓíðmiN@Ïþé\•Ó)«ì \Â4Ĩ`BThTH“­A)ÊuDÊFh¶"%ù¤u´Ÿè'BÖ„ÔÖ¯¢/xPú#’¶ÆËxÆŽAºt$»þ5jQÂJÉo©ÍÄ·2Í.‚VevY¹Ï× B6¼ØgÉii»™ ¼å‘}ò|b+6„W×(ôÖaÉWù¿à†ff¡ã£}¿ˆZv,ÜJÔveçßÇð3î\ªf¢ˆDƒ$U"–AâÍxfâãz<†(G²8ËqÒRnˆSx´ÑµH€\Nʵ®D€v¿‹‹"S‚ðÃý8yò0~ž@c£ÏPúœ¯^Úex¾z@6+9^dTÄÆÍb\Lú"MÏøÑzÃ~`Œ ªŒ&LÜùþ©Ôd[s Žp/NW>÷™•´àp¬ᪿì€Õýå¾ ¬®y »ãõa$DÐÀV?[I!ÁÀÖkR–b4h6ƒk¿öq¢— ô÷àDØ‚è õZzK¯I˜ÊÆÅ°Ž†ÁÃßT ?‰}„ÎlæÓÜ\ÜJ†¸h±…r‹hØ8*þ¾Òs²àQ@qÈ€Zä«ô†Vig—$iBíSj\ÜEŠ: v”L”²ÛJ¦Ü&¤…¤E›oµö¸L[ Ò„>ŒÑ ?ÏŽoÎËZóªÏ`uWi>E’áQòB*Ï"€ÙA’°Ý$õmÂù#oÂëAÿe‡ºÖSLÃØ½Câ’ZGŠˆdd#èGΩ-m2Ræ ÏÁqè(”ó"l1Øñyú¤0U”Ï)š$¼…N@OIð’Žp®££aJ“³ªúaL ämµãV§*u@—W(Ï ycu :ê ïU€¯ @Âfu0“èKußaÕ=ç?»ã¤ºìJu”«Ù¤&8’‹2³Ž$`f`9g“a›!Ìú»Q*¶áRÔfleÏoS”q¼G¢ôi‘ãò°‡—«ÈÁMkƒdéÆ#À41âÞ5SÆBOP€öÇg9?R¨%Y͇ѲG±›ZÖð²epÈv¨·E–énr²ºJ1KST†H“¨ô[†ÞŸ´b„eΰˆ ¯ÙxJbW”Õƒ,¯GcM°ØYœËéVœw¼(ì6¾‰E1”µ¥u \—¯àcØxQâ×äEQ–3Ì¿/Ÿ¿/¡‰^”«Ö‘›Ï‹‹€4œ“¡ÝfïEöñÖ¾‡Ô÷mãdX§ãÐéâhÚº,ž–À1ô¸;ÛEéû¦ò ÐŽŒæêMv$Jh.\¸‰%»q‚qáFkB\¶?Û:¯Ò¥#‹°øàÀÛ–I-æeåñW×¥yUš/ÖfWI*Á×X4¾ŸÕLPšS²ö¹“A¡@ʧ1YŠp^ÞÒ䞤»ä$âFY Üܾ͈^æ>’A/üN³[ŽƒÎ†ó©qdÎû)Ìü24âðíÁ> åÝÄÈ©BÂñc°•ü¿–‰„% dïÑæÄ(Gú")šì<Š‹"íóh@ämˆ¦Ug×9;2ðñWé1·HWîÕsÞAû¼ Ó ­„cêÑiÔO¬ƒ>#pU%UÃ9Ô^5©5ý´ÉœLóžWÀ ®û Nþ2åPö_ÓÜ,Tº¼¦ñF’µ[C®µs×–!ÓæX¢ä©%¼¯¢ÉÓêüÄ)ejUÅP› önå‘ââÑ,Âö/Á `k`RÎY‚&Üå÷i¯"DiÓµjÞ1ñhцãœq›½ñ›Ðmú5'åDŠágRsš&µ:=ø”ĆÞ|;2xz9z 9  E¶N3ŠÀ²:‘:¾0ýñO8Ñû5~ÎÙKsc¥)£§ZáÞšAŒ¡Î^¢;I6BãyŒ:Nóc[½ÜÖµ€»ìX±ŸPœÆÕÙC7|ClIznßã›h³Ôánèã½Þîg“W·qœÑ¬mÚì{s'8Ù9¡rðl`«ÇããpÒÌÖ„= ³ô™ïFP…Å. O’ˆ­49+¶hGÃ=Ëë«ïÒ?C/ÄèMÊ:†^SMeÿ#œ±{Ÿ"¸ì‘»‡·žI6Ë›à–þz6? øVaÍ·²²ILŠŽCå*E½}°>YÈÉÑäåwN.iÙ}˜h ÍnÂú ü.ù½4(õÚSvr$Eê+ƒÑÈÒùua¬¯Íhá*]4#¨Î³”7EG5º‡®úš¸ï/äšp57ËI W?êU)e@Šf;YÛ„àÙ>ˆp( ¢_c¢ìt2?B¨£ Ík'/h‡óê(O˜Òu Šãoñç8Éðº|N=©½Xð!(’þL¾L–ÖšéJ:?DoÌú½ÿV–I#×ÌÈhed€ˆúeK”¦{D ’!Þ´ÕökÛl~Ø*:pudËç—œ^éñSÎUœ¥áØÆÔ6˜sÅ1QP|Ä“áïòD·ìhc{_ðÉt< 9¢·¼*ø—S6HÃ\%¤§‡`çKë«Å=ôi2:Ó‡E ";¼ã Ddƒª‹É@& ¡ŸÝ/2w¿0Ú@¼ë4²¦æAqT¿Ð">FøÀ9„qqê.’cŽwD˜^Hõ}Þߣ“tý ÞÛ‡¥ù¨ôçìóÒL’ÊÙÑ'™…u:á’FG¤ ¼Æ´ëÿ®ú˜øZIœT]À |ÙsÜâWHfüóòõåhyçœs¥cÊÞÈ4¼(›|U¾^w;@,£Ä'úæ˜W×z˜WµÊÁaïŽô0÷Ë]4z•¾Š˜üS)Öøºfh§ѽ‘Ð^°$Yûh®ƒõæ-çÃ’(¹ä–$fçpׂ{5îîDp»¾àþÆÆšq›¬Š˜W Yðä¬KWhüÞ“¯+¢e·ÙÔPÿ±":eKô 3Ð ýwÅn$¢ùÏè(¢÷äHÐMÊ)¢ûÕgZÍ6–, ö[JN½iËTð’Ì PIJ8Žk&¿¯"Ú¢þxJf½÷¹òùœªÀÉŽ"6#ø«”7Ëi³žÍgWÕ U~—ÆÈÌ ¤² íQmˆR;¸Ú Èu"íYݸND$ßO]'‚õÚì+›tïKƒugƒsPE¹ûUzt kWI'0Ѧù§Óç7è9F 2ç Å¿°‘ø‰´–èÜÆ`Ñåò°BßÕKöø¦$×jí&±õx]yƒ|{¼\x® ·*èù¼UÅ”G#ª%ÄÃËV³»¢â•Èx½Óñ$„EÇâÄû0¯ö–,ƒ¢ɬÐ&ã…ÙÌKÕÝ”^ :êÞf8â'¡Ûôÿ„_b ÙNµ9íÍú2\-•Kbgžˆð‡ÔÎã¹Øˆ µ}m–,¹ø,í|åú‚¢°üì ¤3¢,"!ÖuÉæ¦>1?¦Ö²VáñH*ëë„ÒQ5–Ô%Öê†)Òr\U6pPxßd…ýæ} \vèu@.€RÚ?ÀÄN†‚æw8¢Ò{p‡îޏ‚rSŠëßoŒS¬»¡ÁVãk §ºôIŒ‹Îk}*®7•h)Zj£4=µ¯xF§÷ šÇéºl~§d ›" ‡Ø\½‹iSêtm*åmóËW4p­ã•ªnä‹;´0ðHnö¸Ç'©ÉxRFî‘Ýé€)Úi§\j#Ä9¸ê„y¦·BÜx[ãï= ™Üt“I;sõ’mIÕMàoŽåp·ä4³a —nKùFÉ×Iþ‘Kh^uýØk#LØ÷Ù£Íe¡—çÎà b Þíu„"Ì9ôǼÂö_r½¨":u}®yvKy.6n?OBê.ËŸ²#Í ±k ¡DY8Ude¤Þ¥Áu¬½µnáîŠo±ût =l,~Ú#æ;¸cÊ­€YØ+·YÞ£C¨…Ú«Õ%diž¥§qAV®¶Q©¡÷…ër®•'ßþi½ƒÇ,þޝË@ö^ØØ­`Æ¿üäÁ½§þ/ܬendstream endobj 1486 0 obj <> stream xœ­XK“5 ¾Ï¯èxª2ŽmI~p (BHA˜*©ØGv©ìn6/R!ÉîžVOw‡¥ æ0*,K²¤ïó¼îœõ“Oÿ}z½qÝÅæõÆ×Õ®ÿ:½î¾Þoî?õÙuÅ–"vû›¶ÇwÞ{»˜ÀúÝþzóÌ<Û’Á­³°?ŠÏ·;rÞ&—ÍSQX %c·; ´˜¢ùU–)QÎÁœnC²„DæR­¾Ùî¼u‘J1粌T0›?ÔÙ'Û]È–ŠK½FtÉÅa#¦z 9°áèÀQû÷Ñë«f;û”õòIÛ ~8¾ª\)Wôú»Nôd>J¼Ñb!ój´÷¢ÏóV¶¥sÈæV£NWiÐÚçblŒdÎTd:=³¶€[ð”çû]o…EmüÕ,'ÕàŸ.e[ù‡ÀI¨™ç }4ûm A¶=ß?Ú̶PæâÚŸq1õ—_ÂäòoVr®ŸÞYNk_oÐå¡nªöm+–”‡»ð¡²+U.ö¬œ+Åœ¬rñ™2n £h›w¸¨ý¸ £xoÔøwýÀ ÝÎ<ú–Ý'?Ôœ?0¶¬ísDóMu  ¤I-³uä.Èæ køRRð¼MÄŒeÚiš²#­pÍ¢ã_ƒ “›}Û”}«I=ªÈ¥¦RõÑ®š3y)–ÁÖTQi7µÔBñr-rœ+ÖênHAó“h”9óì„$š2Ö>d…ìA©²(†Q´cí·‹ã_uòM!—vo+Ã0,ÃߪÓè›qN–Ã*×êÃÆÍxÊÅž#äÏ¿z~yh²êG²<Ö&ôL9¢pYŵF‘W€P«B§Ï±‚Ì”™ä²œyîpSNåiÒN„qž`h©)ýRÐQsæq?ÇÏ…"5äy0°rŠzÿ”¥ó2g݅ɨڵQ .•¾y˜f¤|Ô<ÿ’¬ñ® yd.A4_´'^âį@•F¹Û»O\˜=%×SJ³V+`¥ág E´ù•²>kA“ÏŸ{<œ¹T§?0øÕ&]0…±ª<¯–Ò8qjåñ®G>ðªÝ›ãþ_¹¬Ó׺\½ªZ÷Ix<u>¸Œ €\Kxx~„S]-S­‹QÔd¬…8˜YóxäêÏýË÷°âk‹(½bh¤ S ¥Çå %3d¦Ò#s ØÿìŽßî=2³Ë²K†GÂÌï™f!ð(? ‘=®Ñõj­E'`Ôr …—J®”cr4_¶1ÌÓÈ3ö:Ô䜒_ÄýÄsV¸_Ÿ‹ÌcÙÉ,#ñp{2¾ˆ§OíúTåÙ¥à6¢Åj˜b—ëVÑÀÙ3›t&Sõ~T«ŸWÃpB<òE*’þùÉK«Œ!±_ŒÝŽ_íŒÿs ¢Ä‘wÈ·ûÍ/üùÁ(;"endstream endobj 4 0 obj <> /Contents 173 0 R >> endobj 192 0 obj <> /Annots[197 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 233 0 R 234 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R]/Contents 195 0 R >> endobj 243 0 obj <> /Annots[247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R]/Contents 245 0 R >> endobj 301 0 obj <> /Annots[305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R]/Contents 303 0 R >> endobj 358 0 obj <> /Annots[362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 385 0 R 386 0 R 387 0 R]/Contents 360 0 R >> endobj 390 0 obj <> /Annots[394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 415 0 R]/Contents 392 0 R >> endobj 417 0 obj <> /Annots[421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 428 0 R 429 0 R 430 0 R 433 0 R 434 0 R]/Contents 419 0 R >> endobj 441 0 obj <> /Annots[458 0 R 459 0 R 460 0 R 461 0 R 462 0 R]/Contents 443 0 R >> endobj 466 0 obj <> /Annots[471 0 R]/Contents 468 0 R >> endobj 478 0 obj <> /Annots[485 0 R 486 0 R]/Contents 480 0 R >> endobj 489 0 obj <> /Annots[495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R]/Contents 491 0 R >> endobj 510 0 obj <> /Annots[514 0 R]/Contents 512 0 R >> endobj 520 0 obj <> /Annots[525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 548 0 R]/Contents 523 0 R >> endobj 550 0 obj <> /Annots[555 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R]/Contents 552 0 R >> endobj 564 0 obj <> /Annots[568 0 R 569 0 R 570 0 R 571 0 R 573 0 R]/Contents 566 0 R >> endobj 575 0 obj <> /Annots[581 0 R 582 0 R]/Contents 577 0 R >> endobj 585 0 obj <> /Annots[591 0 R]/Contents 587 0 R >> endobj 597 0 obj <> /Annots[601 0 R 603 0 R 605 0 R 607 0 R 608 0 R]/Contents 599 0 R >> endobj 611 0 obj <> /Annots[617 0 R 618 0 R 619 0 R 620 0 R]/Contents 614 0 R >> endobj 622 0 obj <> /Annots[626 0 R 627 0 R 630 0 R 631 0 R 632 0 R]/Contents 624 0 R >> endobj 634 0 obj <> /Annots[638 0 R 639 0 R 640 0 R 642 0 R 643 0 R 646 0 R 647 0 R]/Contents 636 0 R >> endobj 649 0 obj <> /Annots[655 0 R]/Contents 652 0 R >> endobj 659 0 obj <> /Annots[664 0 R]/Contents 661 0 R >> endobj 669 0 obj <> /Annots[673 0 R 674 0 R 676 0 R 677 0 R]/Contents 671 0 R >> endobj 680 0 obj <> /Annots[684 0 R 685 0 R 686 0 R]/Contents 682 0 R >> endobj 689 0 obj <> /Annots[694 0 R 695 0 R 696 0 R 697 0 R 698 0 R]/Contents 691 0 R >> endobj 701 0 obj <> /Annots[705 0 R 706 0 R]/Contents 703 0 R >> endobj 710 0 obj <> /Annots[714 0 R 716 0 R]/Contents 712 0 R >> endobj 721 0 obj <> /Annots[726 0 R 727 0 R 728 0 R]/Contents 723 0 R >> endobj 730 0 obj <> /Contents 733 0 R >> endobj 740 0 obj <> /Annots[746 0 R]/Contents 742 0 R >> endobj 750 0 obj <> /Annots[754 0 R 755 0 R]/Contents 752 0 R >> endobj 758 0 obj <> /Annots[763 0 R 765 0 R]/Contents 761 0 R >> endobj 768 0 obj <> /Contents 770 0 R >> endobj 776 0 obj <> /Annots[780 0 R 781 0 R]/Contents 778 0 R >> endobj 784 0 obj <> /Annots[788 0 R 789 0 R]/Contents 786 0 R >> endobj 792 0 obj <> /Contents 794 0 R >> endobj 800 0 obj <> /Annots[805 0 R]/Contents 802 0 R >> endobj 808 0 obj <> /Contents 810 0 R >> endobj 815 0 obj <> /Annots[819 0 R]/Contents 817 0 R >> endobj 822 0 obj <> /Contents 824 0 R >> endobj 829 0 obj <> /Annots[837 0 R]/Contents 831 0 R >> endobj 840 0 obj <> /Contents 843 0 R >> endobj 849 0 obj <> /Contents 852 0 R >> endobj 857 0 obj <> /Annots[861 0 R]/Contents 859 0 R >> endobj 864 0 obj <> /Contents 866 0 R >> endobj 869 0 obj <> /Annots[873 0 R]/Contents 871 0 R >> endobj 875 0 obj <> /Annots[879 0 R]/Contents 877 0 R >> endobj 882 0 obj <> /Contents 884 0 R >> endobj 887 0 obj <> /Annots[891 0 R 892 0 R]/Contents 889 0 R >> endobj 895 0 obj <> /Contents 897 0 R >> endobj 900 0 obj <> /Contents 902 0 R >> endobj 905 0 obj <> /Annots[909 0 R]/Contents 907 0 R >> endobj 915 0 obj <> /Contents 917 0 R >> endobj 922 0 obj <> /Contents 924 0 R >> endobj 928 0 obj <> /Contents 930 0 R >> endobj 937 0 obj <> /Contents 939 0 R >> endobj 944 0 obj <> /Contents 946 0 R >> endobj 951 0 obj <> /Annots[955 0 R 957 0 R]/Contents 953 0 R >> endobj 960 0 obj <> /Contents 962 0 R >> endobj 967 0 obj <> /Contents 969 0 R >> endobj 973 0 obj <> /Annots[977 0 R]/Contents 975 0 R >> endobj 982 0 obj <> /Contents 984 0 R >> endobj 990 0 obj <> /Annots[994 0 R 995 0 R]/Contents 992 0 R >> endobj 1000 0 obj <> /Contents 1002 0 R >> endobj 1006 0 obj <> /Contents 1009 0 R >> endobj 1014 0 obj <> /Annots[1018 0 R]/Contents 1016 0 R >> endobj 1022 0 obj <> /Contents 1024 0 R >> endobj 1029 0 obj <> /Contents 1031 0 R >> endobj 1037 0 obj <> /Contents 1039 0 R >> endobj 1045 0 obj <> /Annots[1049 0 R 1050 0 R]/Contents 1047 0 R >> endobj 1054 0 obj <> /Annots[1058 0 R 1061 0 R]/Contents 1056 0 R >> endobj 1065 0 obj <> /Annots[1069 0 R]/Contents 1067 0 R >> endobj 1073 0 obj <> /Contents 1075 0 R >> endobj 1080 0 obj <> /Contents 1082 0 R >> endobj 1088 0 obj <> /Annots[1093 0 R]/Contents 1091 0 R >> endobj 1097 0 obj <> /Contents 1100 0 R >> endobj 1105 0 obj <> /Annots[1109 0 R]/Contents 1107 0 R >> endobj 1113 0 obj <> /Annots[1117 0 R]/Contents 1115 0 R >> endobj 1120 0 obj <> /Contents 1122 0 R >> endobj 1128 0 obj <> /Contents 1130 0 R >> endobj 1136 0 obj <> /Contents 1139 0 R >> endobj 1144 0 obj <> /Contents 1146 0 R >> endobj 1152 0 obj <> /Annots[1157 0 R]/Contents 1154 0 R >> endobj 1161 0 obj <> /Contents 1163 0 R >> endobj 1168 0 obj <> /Contents 1170 0 R >> endobj 1176 0 obj <> /Annots[1180 0 R]/Contents 1178 0 R >> endobj 1185 0 obj <> /Annots[1190 0 R]/Contents 1187 0 R >> endobj 1193 0 obj <> /Contents 1195 0 R >> endobj 1202 0 obj <> /Annots[1207 0 R]/Contents 1204 0 R >> endobj 1210 0 obj <> /Contents 1212 0 R >> endobj 1217 0 obj <> /Annots[1221 0 R]/Contents 1219 0 R >> endobj 1225 0 obj <> /Contents 1227 0 R >> endobj 1233 0 obj <> /Contents 1236 0 R >> endobj 1241 0 obj <> /Contents 1243 0 R >> endobj 1250 0 obj <> /Annots[1254 0 R]/Contents 1252 0 R >> endobj 1259 0 obj <> /Contents 1263 0 R >> endobj 1269 0 obj <> /Annots[1274 0 R]/Contents 1271 0 R >> endobj 1277 0 obj <> /Annots[1282 0 R]/Contents 1280 0 R >> endobj 1286 0 obj <> /Annots[1290 0 R 1292 0 R]/Contents 1288 0 R >> endobj 1296 0 obj <> /Annots[1300 0 R]/Contents 1298 0 R >> endobj 1306 0 obj <> /Contents 1309 0 R >> endobj 1315 0 obj <> /Contents 1318 0 R >> endobj 1325 0 obj <> /Annots[1329 0 R 1330 0 R]/Contents 1327 0 R >> endobj 1335 0 obj <> /Contents 1337 0 R >> endobj 1344 0 obj <> /Annots[1348 0 R]/Contents 1346 0 R >> endobj 1354 0 obj <> /Annots[1358 0 R]/Contents 1356 0 R >> endobj 1362 0 obj <> /Annots[1366 0 R 1368 0 R]/Contents 1364 0 R >> endobj 1372 0 obj <> /Contents 1375 0 R >> endobj 1380 0 obj <> /Contents 1382 0 R >> endobj 1387 0 obj <> /Annots[1392 0 R]/Contents 1389 0 R >> endobj 1395 0 obj <> /Annots[1399 0 R 1400 0 R 1402 0 R]/Contents 1397 0 R >> endobj 1407 0 obj <> /Annots[1411 0 R]/Contents 1409 0 R >> endobj 1415 0 obj <> /Annots[1427 0 R]/Contents 1417 0 R >> endobj 1433 0 obj <> /Contents 1436 0 R >> endobj 1455 0 obj <> /Annots[1464 0 R 1465 0 R 1469 0 R 1473 0 R 1474 0 R 1476 0 R 1477 0 R]/Contents 1458 0 R >> endobj 1483 0 obj <> /Contents 1486 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 192 0 R 243 0 R 301 0 R 358 0 R 390 0 R 417 0 R 441 0 R 466 0 R 478 0 R 489 0 R 510 0 R 520 0 R 550 0 R 564 0 R 575 0 R 585 0 R 597 0 R 611 0 R 622 0 R 634 0 R 649 0 R 659 0 R 669 0 R 680 0 R 689 0 R 701 0 R 710 0 R 721 0 R 730 0 R 740 0 R 750 0 R 758 0 R 768 0 R 776 0 R 784 0 R 792 0 R 800 0 R 808 0 R 815 0 R 822 0 R 829 0 R 840 0 R 849 0 R 857 0 R 864 0 R 869 0 R 875 0 R 882 0 R 887 0 R 895 0 R 900 0 R 905 0 R 915 0 R 922 0 R 928 0 R 937 0 R 944 0 R 951 0 R 960 0 R 967 0 R 973 0 R 982 0 R 990 0 R 1000 0 R 1006 0 R 1014 0 R 1022 0 R 1029 0 R 1037 0 R 1045 0 R 1054 0 R 1065 0 R 1073 0 R 1080 0 R 1088 0 R 1097 0 R 1105 0 R 1113 0 R 1120 0 R 1128 0 R 1136 0 R 1144 0 R 1152 0 R 1161 0 R 1168 0 R 1176 0 R 1185 0 R 1193 0 R 1202 0 R 1210 0 R 1217 0 R 1225 0 R 1233 0 R 1241 0 R 1250 0 R 1259 0 R 1269 0 R 1277 0 R 1286 0 R 1296 0 R 1306 0 R 1315 0 R 1325 0 R 1335 0 R 1344 0 R 1354 0 R 1362 0 R 1372 0 R 1380 0 R 1387 0 R 1395 0 R 1407 0 R 1415 0 R 1433 0 R 1455 0 R 1483 0 R ] /Count 117 >> endobj 8 0 obj << /Type /Outlines /Count 9 /First 9 0 R /Last 171 0 R >> endobj 1 0 obj <> >> /OpenAction [4 0 R /Fit] /PageMode/UseOutlines /Metadata 1563 0 R >> endobj 190 0 obj <> endobj 175 0 obj <>/Length 8021>>stream xœí]OÈ%Çqïw k6Ö.>XXL@B‚DÊJD°2ˆ]aˆ#¼Bç"XrŽ!§H -X9æ(Œ@—è ´FBAì.Ià m¢lÖAÆ>8Ÿ$‹,¹¬{¦fúÕTuWW÷ôÌ›o·êð}ýæÍëúuMwu×oúÏî®§—/Þqàé?Ò?ž¼'¤ß}g÷½§oéÓ­ô~Ãoø ÿúøw>åÿù ©´ÏÎg$ÜsÕu°<8¸éSŸ|ìÓç.=B®ûÄyw«‰^Ãoø ¿á?þ]«ò_í³"e¸öò'>ñù#ò²ù4Ñkø ¿á7ü‡Â¿ƒþ/ÈÇjüÜ6Ãoø ¿á/Ò»ƒǺ †ßð~ÃüÆ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã_©×8PÃoø ¿á¯Ôk¨á7ü†ßðWêÝñûHKêŸâÖ•GvO~×}úôé×]ÏAë> Ä|½†ßð~Ã(ü;ø‡Ç«Ñ4ÉŽßs󿣖׳é'>n¢W™6ü†ßðþæøwðo~ù}4¸CÚ ‰Þ™å7ü†ßðþj½Ý¸÷Ããp?„æãdà ŽŽ.’ë®ç šè5ü†ßðþCá·y †ßð~Ã_©×æ~Ãoø ¥^›jø ¿á7ü•zm¨á7ü†ßðWê5Ôð~Ãoø+õjø ¿á7ü•z5ü†ßðþJ½Æ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã_©wà@}x ©€)8x,püÕL½Ù´á7ü†ßð/„åx¯3MÝÃ8?„Ž~ÛJ¯á7ü†ßðÿ.ÊT—¿¨ õ~Ãoø ÿúø»þÝãðh䯚è•Ó†ßð~ÿ~ã@ ¿á7ü†¿R¯q †ßðþMãÿ‹—îÃzïùÏÛÁo¨á7ü†ÿðø?û³ûSZˆüÛµü]íåOÎ]Æ«$}ttÒ§O¿žºGHÃDV×/(úíL½†ßðþÍâ×ûJ.~øypü8=p óóšc”jñÖLá iÿA0×ÉϾûõŠ6 ¨IÕuè±÷¿Ôãäõ{Nn‚ÿ€>ÈðGõÎt ÇÓÍ8PÂS¬,~TOð8þÃb.ï@Wæ°f‡ÄYÇšƒ3ü ñ·­W·3t#Ψ¨Ýn3–“O<Üýûõï¾úÕÿàëB½iε5K¶oÛwÜ9Äc‡¿®šAuÚþ=ún‹¹Û ‡C\ŸÅ¿Ì 'ï»×ûMøK¾ é¨ý£uHþŠç³œAÖÁÒwÎ<ÄÛ¿Ò™BÓÞþfó@·æŒ‚­ü[Ã,„ð‚ý+*É'k ˜>RÝÉ>t>þÃú Ã?¿² á±ÑFð/;´h”õ¼Þ¢—Xð|1ã@¹Ù!Ë!(3Y¿¾ý8ÄÛ¿¾Þþeçy¨%üìwH†Áƒ‘@E÷ ¯÷[…ý•P¶ Js~>uøyúNà£ixÁÎÇ¿²)m°þ,»¾ÔfõÖùÐ~Òïq*‡E @*þM¥9¶ ûË_½«ã1„¸‰§…Üä|ªñGó¼Ó8Dò5üÕ¦ðkÚõ6ëϲg"ù»?þá Þß¿TF\~úW7RøIkŸé㸜¼ï^ÿÞÁã×ï)K2÷¥XbOÙl”zqç‰-@žïvöÄm˜ÏAðó‡|Í1Å•mÖŸÎ7ߵؙ$¥T©·Ô‡úœ5ùð5¶ò™*E0àñgíœÂŽL¸¿âL þ¬Þh:šsôùÎÁߤÞ*ÓÛ<“'õÁÔÛÇ¢lGÛ¬?»ùå¿+}&Ii;³Þ¤„×§h>œg¼&ž©Rê@£”eÌúߊ3a²øK1‡tô¹ãçÛ¿€á¶?“Gxvúvt@üʲ¤ÊµüËž‰Tê@õz‹rNÅ¡¥<£KÇ¿«º1\–N°s[óøE¾"~éÏŸ~rë–ôëðó_ÆpÇïzÎz›øyZÓ–·¿»ãÈFýKV¢¾`ßÈû¹ës8Pìƒ0ñfÅ—r [sTèã:ùê¯þõ?âpï(ZÇnô~e¡6[Ž%êÒqbJ¢\ž‚¿ð‰Sï\)åƒëéä[߀¡VXPäKÚ=wEc綸ҖÃòfâ7Çq"ï1WÇÂ~ŸçC¾zíå”ýçà¿Ó8ЙqîÁñ§îQ–k³õg=tXåÝ‹’„‹!]ÊݤLŸRtêG—I>·>{ÓýôÇ¿xá’O\{îj‡rë½ Ýç_ÿ®sõéO/ï?Bú/ÿÞem(`Ëúß"(<—ÎQFÁ÷ª«9ÐÿOºÑûCV ñß(®íÑBì¼ü©4oÅѥ̛­?+q !” ÖÁ®Ò¥ÜM0=ÉŠ( ½%ùxx{<÷Ý 4UžöQvçn\ïCÝ0ð…ôxƒÞ væi‚ h©ý…ç2Œ4±éó0‡uÓs³VÃ|Ö‰ßå¦t¼âwÇx u…ö»ÙøÝ­ÀîÇ8?ýñpq:cšøÍ{¤¹³ŠvO]nû >þ Ù 6;ä} Þ!]Ê6±*}îóppS׉eê¦mcËm a>Ëáǵ=UÃaˆ°Mü©û‡rMùwR!õõð0(¯’4–Ô=öCh¼þ ÒçÞûþÞý û柺ßþ|øëåúÃõ1í\‘Þ³_\Øgþ›_HŠ|ýÛŸïμZŠ8”££‹äºë9¥¦Þ¹ ”"á•é™öOᇎ- ÞM¹§Rü!D  ~×Û¿‰Ýä´>ŸEñOÈ¢TSòC§.oJ/ÔÉ‹,}¡à ä6ñ»ÀÎÏ 8R†ÇÞÿ²³ÎÈ&¼²@Û_’¶šÕ;¼fé3Æ€ Eðñ£».—â?}úu×s(üÙÔÍ]® á×ïÏ¢©»©4q mñ‡HÖ1lˆdaÝ„ÒnÙ4–‡þù~®×¡°ÚMסËõ§H¯G“nJ.QÇ”víoƒO¾p© õcR­×pô†·sžéH%iðwÂé»P×?škOýd¦ý½;ø‡Ç«Ñ4ÉŽßsóæ£^CêÓçÿû|Ä¡bäb3iôÂk ’uH>zàJ)~!}âÄÇP­•ÝCÖÎmíŸJmp}.ëãǘ÷SÀ¡„Wvg¾ã¿ýêí·ò™øÉƒ>ù̳ÝèïÓ!`bêѵ…q=lÂ-‹ëëFW(oHï™ýØEAäçÈí¦Ð`Öµ³°/»/ïø¦;ÓÐÝ*Ÿ{è ƒeûaõÔ-ùœýÚ‹þ¡ï³Bô À¾úíÏC¹dûáï2„Õ¿iÿ«+>„Çï(è³Gì!„ðEz¡û2d/Cv¬½"<0QâÒT(ËBöO¥K÷d©ö¡Mð+Ý}7]Á?ô~Öù¹ iü|CE‚¶ ³#ˆ®èËñ°— ¯?\¯ÓmJ©ßjì€íO Nöù;ïÙïRó \d}¿5P@J„<½ô†ÀTÈgï‚ „ßB‡ ǬˆÚ¿¢Þ®4”Y¤àD¯¿—$ž4z%p¬zü\ ¯·CþŠM­‚¿Õ†­3×Ñ– rù>lÑyˆÂ̼T WrÙN·–¼ÕãA—Ü~!âžD0œ¯À¸'šž„nîÒw?!Hèá‚­ðZíã74+­æjòWâ?àZx™öÏÎ-’ :¿ì=±=5Boÿº½-²¿">4:q¹#4ó(eƒcüÊÅ—)] ÃR‹>Ü‚Åt#N9šO]‡÷ä=fó@5R=T#KÌC¬è¶3‡¦®­f׳7Á¯\î~Ûp?´Ò³%Š~KÖ +í¦_ƒ$ç#Ï%Òdî ÛµTCµ }CÖþugail%Ïß »%iÔnJëü3éu}˜PgŽëZøÒág[Ñs´?™©Æ¯lÌŽqXš²È˜õ‘ûø…8W‰JΧºݸðVj/ *Í; 9Œ_ØãQ?N7´Ù~ Yü·+Z_(T+üÊ#•R–f{ÓåüT°¿Ò‡*9¸E÷ÑxO·Ì~²{ˆpïYTðéŽæ@·¿Ê× [ã@]šGÖ¿Ø™?–ÆàBü¥t ü·sxOneA„|Jãw›`=ÎêwB»S?S\p팭~ g"eñg9ÐÔ*rǘo ¿%öÔ—Ë|Zw¶]Qû‰öaúÎXù²è|´ìs×8P¹o®nGÙýÅ5”ë-ê/£vH•w~\QoZA!§æ‘iðËbX ‚= _%²A”ÇS|Uòd•+,« eœÏÉs¡9‡%×¶æûQjê¼/‹†ƒkrÖHE;ò çpèr»+â¬ñÍ3ŸãÍVpvú3Ñ*8İ™HdíKouSÛò ¥„!ÒŠý(•mIÆïD¿â.õóŸüÄþJߤáàf¾×r3Ú ?³õ'••Üîôå‚åžøÊœ¬®\óÛÝâhtŠlŠVKî È6©ŽfvÞl…_Ãñ渕ž‰´þh>z>”7ì`ý¹äô\)¦ÑÅâw‘^¾Ÿ4ï-J9ô”å&’ñóò+¹u2/JxèÐ\Ÿ…Î"/°+ùráöÕ„8~kááhÉl˜º"Htÿjî§–žGI*´Ð1dÏDêÉVøöÚsWKñ x€ÞÕ?Ê+Û7$Ÿ†gzãÂ[Ë«N\[4ÐÉÎu%õ'Ln#!&’ëC]5¤³ÞƲÅkÞ:S(³òøÎ trYZIJ´ÂÓËr Áf‹$:¨äî’Ü rsürš¸<¹¤Ù3‘†–¦{˜êŽ¿s»ýeÒ§k f9hÞgp 媮·Y®—Î6æUŸ‘ÕïÒ–å@!~Ç™OØ’¢ø=UEC¿M©Iý‰Ú Ÿ×M¬ÄGë'ûóh³öߟñ•ò/¿»¥9Ðsoœú¾º(žKÊo®ãC…1c'S“å@»áñJ²“Šå¿†½ ¨Ðg¤ì/Äq$“9ø¹ÞІ¹{rlXTú’{(:¼ •­œÜˆ²Ãz;L†´ø0¥Ä;À…|¨0üŒ>”l& «qÑ”ï!³øIzY´;¼,fNع•uÜ墸3ó@a;Xçö…üE_e9ÐÁ’ÜðGç„üù™Ì 9¬½sÇJe¨½„gÊퟴÞT®ÿù?®ÃÁE;o?ICýIö©xïð1Dðwçã¤EV¶Ç?é ‘© '€çú,ÁÆgÍß¡Q0~sÊ'¤…É0!Oå~¬ü$½8ꈠ–6þÁ綯æ7eüªsჭa§a;gU›Iä çí©Ÿ”â/²-¬*>‡*S^\ºÑ™zïÙ ÿ^¯7 !çjê1t‚N•à™ yNz’a¬ÒØz®^ˆÇ¾Zˆœe‹Ïóp‘±f7ª³:õ<â ¿±8:)(úõÖ,?¨I/Ëúª€Î ˆx7tºCÞŠßúü›Çïnj·$Â4Tï@y>{wL¬Çü/œÓÛ<~ï>à:馭nL—ÆïûœYV|À%sâñ¾™ Õ³<@À~ŽllØÕØ!Nl¡øòT¨ùŸ7T†ò ]cÿÉÙhÓ–ø¼ºãƾ÷}‡×!GÛ9·}û>tâ@s=³[j3…"ûšõ|(“¨òÉY Õÿ`g¡Ošº§¢ú3¼œf ²Ü½dç))¤´Ãà@¢© ‚ ½xýáOaZ`Ì¡z‰ËBlÕ;ÖÔº€ù~ca”8PR¶p_oµè™EǃÅZAšùèœ4·”gI|ëCøþ3»·‡{ÎüC ;zêXpžÏ¤!ë3¼þÍ—\sŽDÇéÑ}§äëTÛ§â–€_Ù•Êg|©ò$´Iï@áÓBè„Û6ÿ!(/Mû´šD=„ଠ~~ÏŽßGÒXR÷<ž8WúüÿÿI¼xÄãô?ú¿W+ô.Š_>×ûÖõ‡"„ÆÊ¹!é³_{QÎ!e7øh?v µÝº‚g¡ŽF 8ŸÁt)ëõׯþѵ:W}¯WöM¨–†ç%ØÚ§Ù:d¥Ñ¦ðG² öA9c~9k‡³_0GÃ<??})ûGk.àøJ9kÿI†Ñ:+×ñ9;Ш 2{Z¡W™®Ã/¤Oœø¸syjîá øÏ?ðwݱý ´Þ‡Î?[[ð¾úb ’üùôlÛ«ÿû/¼,3Ïõ¦4Ú¯°‹ìO åËéeâ‹&àŸdÅú•Ä܈l‡½÷t,h@GiMý¯·?ئ® _¿¸t,A®à‡Õ­ðó{?>RÂP·¦•lwæÕõý¦Œ_>~RÑÉÁÖ¬ýð:±þÇÞÿòä3Ï<¾é69›–=í,x¿xöÛoÒûÁzÎáëÁ×GËU‡?â›Ä6œÊ‡§»B…"`ƒ@U(—€¿™2éˆVÙOJ(i°ƒòÕÿ¬ÞH¹°¤« 7~T—&Cè†[ÕžîâÖùãX×s@|œw 5ç‚3ÝÝóƒ ½‹âèèè"¹î€ýìÍIO€;†P´ñ"tëã¿ÿò³Üþ9z÷af¬°X°ü–ô£Ä†½£‘í_Ÿ69LŒäºsÙþ]ev ¹M}())üÊý±¾þ¨z»ÑÂ'Mý/µÿþ¹c‰µ o|!Ÿˆ­ÒE»~뙆õ‡§žú « Ä| ½íN½ðƒõßÉø3ó@C›™$úº‡õñ{êÓí%¼Gš?®«¾‰Ââ‹Ððo#v›þjË©W^m>qÀœ/ó6¬±ÿPÏÃ0“$¦}¹üq/ÃÄW'}ý™ôXØ›;:ä_n±žû´æèý€T‘Æ’zºÄ^ !½ð<ÐW^¤,a50\ÞåðËéÏ_{“¶–ô8ªÅúø»yg¾3Üqý²×ܽgóðmà.ösY^yQò5c>ÞÑå’ñÿþ¥û£{ÐÑ&GF‹#¨ŠzûO ÄS¹vÏ_Ëø÷Æ!2­`Þ¿ëëÏž^He놡qõ&ØÑŽèu乿ö&-HL”~ i(–[ó½pzáy ŸýSrà‰¯÷Ö„NµNïA|èà@uî`}üÝB·qø ‚Ûɽ{¯! á©­§iÏQüxI—òÝXHU–Ó÷%x2M*Øs–ñ^Æ1çî"þ=Zv~¶˜ä@‘¾F¶0¸àCiÚp©J?0ô…<æCÙFû`âëg¶»…ç^ÿ{j¯t›á±žFï¢ø3ó@1Ó¿ãž”gÊÙÃa}üúÄÃ’aààfê8ÐÄ ŠðL)Jj`ƒi€£Z·Ÿ©‹K>‰µA¦ox0l­žgoöAØËÒì<\ÊsA.&ú¼ ødÿ·H¶1àÜ!­ŸJ ž²[œÛM”Ž—‹ÛÏ ñ’ã¿süØÝÏowkq  d2ãTüó[ßoÊø3(ž*/¸¼ûAÞ&×ÁæßÿvðMàCÇ… 8ÐÔœJ6ˆü62Ï1¶ÞÿÔ.Wppr{Nz(ö©Àa¹`^ ëðS.•÷ÊÈÅhÊ>á@sRÇâ½8ÃÞ©q—š€„Œ3$.;$=&Šñãí®«Ï@Äéå9P,xÎŒ5ú& -<¬Û;ñ»ëãÁ¯Þ~Ë‘-Â’] ¿þ훢G‹·O©W³`&¾Ž–ßõx¶Þ´ªXljsœÅj„•0Î õùn¥èþuém_øZÛHüÎY>6Oðé¸ìáœÉü¡é¸ÒOc‚ÅlpA¿§Îjçv‹ì3mþƒp»Éø]Ñ%¤â÷€¶I»[~-<šj×5à'NíÂBÖön߇†}}&»=†á&4.^ÿp¤Jlï²Ò³tø=‘eyÓ©µÌ©¨É†ršuÙÄ—…ß ûPì· t±Íâz[áµê²„Mµao‹°MF´?ˆ÷IaÛC$ºŽž”<ǽ ¥&þ½¿Rº qÙrý ›09.ãšÚè~ñ÷Qœ>bKÚ8‡ícf¶»u×ÂGw©q{Z¡wQüg"íÛL/øˆ‹õñóóyÂÇÒ³tÈõ¡ì‰Â:t)φdóÇ2üÜÿ½q¡¢j8Pr*ŽK*6ræ{ÍEí ïyŒ/jö£ŒôDZl£ûàEãèpO|ëU|eLë×ÂãªåÒ|"Ø-¹ãÞÊä[ßö‹ \öóÓ•©@OM½³Pcü0PXMÚÝÚûNöýf{ª¯ï7eüÙ3‘pÑÂ~\Þ§¸éy;®dïÛ†øå³bæp@]“èÈhaÃ96²ÿ%Öã.h–åÞSÀŽz;sT¹rô,3rR…›žeÅBNˆ"gTàÓÖB}FŸã>óèÆØÎ… ¨4õŸÔ«ì‚ÑMãùΖ|ÏÜø|RõY?q÷MÞܵ:íTùX7¹c·(wO0"s19ȹðÙöRó9TÜ_º°ëÍG&{öLcRFY/¤q{&'yà£2ä|”ç¿»ôëÄæäNr¸^ȓĞÊ8úì/ÇSLxðŽ$4C¡þó±'/ ±[¤¥$š¿*~m‰ÍÁ{›bÌ ç0¹À öÂkHŸ:(,äL$~RÏ”z³é9øážÔWš³ƒèÏÚnˆŸÔuX‘^½_Nå£7ÞK §á4zSø‰Ë[ ¿Ü§2LÝ­c€ÿ±÷¿„+û×lÛvÀ6¸XýçC9M½m[É‹»èakaPb%Ì¥p]ínåÎx¯³NÝèd¶DÙŠô.‡8D¿ÕT \ºƒà‡¥œÕظÞl©•ϱÔzäJôçø<Ÿ”^áç$«T>z䂈~[Ä·d…—àÊO÷ Â7Æõ_0¸¬Wé@³ø£öçd±F‹Œ¹¨Ýí¢ÜYµÿ"o•>÷ÕkúM[z(ü>t ¿ÓÖ_Të}7ö$ša4ýC÷9ÈõÇÚV~æ¤ëü¾Fêü]6C!ͳ“½ ï†ç·».„Ÿ?Žu%AM\XürœÕ¶òa‘˵2þF㦊²Èø[Õ™R½Nm“Ÿ}÷ë8%`'ò{ ù•âI©SÖŸVÝÕúñ»«­6Ä{êñËí®º‚•qÎÄ@º~×zÂ¥‚Ku-|h^·X½•9DþÕª9ý¹ cO¥Þ@¿ÊyÕÿÒRDÇžJü+q K·ÏCqˆ.6 ¢¡(ËÕŠÃ]¢ ©øqéX~¦Þ&±3ÞJåžã©ã…KëÏœ¡®Œ?ªWé@õø‹êÌ oéíŸÕËïiÆ®à@³æà*]Ç®€ŸÕ¤D¥õ¾Uýi¨7¤›øq"E¨Þú¶Ðªßâ}ƒR¯ž;Z¿üOƒ_¸ç{½öò'ç. ãU’>:ºéÓ§_OÝéBxç|üÑ4LÄuº÷0K”«þ†ÏÂÆ…ì/ÛY_æØMù¬5vPÚ_‰Á»ƒæõ_~ôà€*ð½ÑágÃçÅò¯¶¿¾þ èBu1 _ß÷~Ãoø ÿÒø—ZÊÕé5ü†ßðþƒà_vhT§×ð~Ãoø×Çßlh´ òWMôÊiÃoø ¿á_ÿ²ká5eÛÈ30ü†ßðþR½Æ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã?=Ԟĭô~Ãoø ÿúø;ß,ïY²Ä™BMô~Ãoø ÿ¡ðïZ•¿âL¡&z ¿á7ü†ÿPø—=IN·Òkø ¿á7üÁo¨á7ü†ßðWê5Ôð~Ãoø+õjø ¿á7ü•z5ü†ßðþJ½Æ~Ãoø ¥ÞnX‹Ç«$%u¤ý¯‚4pGGÉu×sMô~Ãoø ÿ¡ðïZ•8R†Ó§_w=ÁËÄvžá7ü†ßð—êÝÁ¿Ñx5š&Ùñ{nÞ|ÔÃÂkHåô‰7Ñ«L~Ãoø sü;ø7¿ü¾Ü!í ÐDïÌò~Ãoø µ^›jø ¿á7ü•zm¨á7ü†ßðWêµy †ßð~Ã_©×æ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã_©×8PÃoø ¿á¯Ôk¨á7ü†ßðWê5Ôð~Ãoø+õjø ¿á7ü•z5ü†ßðþJ½hó endstream endobj 7 0 obj <>stream xœÕ]Ys7’~ׯ¨ÇÙ7qEØ’¯XÍØ!i<‡G±AK´¥5EiER¶÷×ï—Õl Õì*zÖ.ÕÕÀ—w"Ý )ã) ՠƒâ`ž˜Á3H;¯©ñª°x oÑë·l^tF Šn¡%¥pjpЃ2ô²”rPvÐ"â_7hf•´Å•´‹xÏ FÚ0¨8=¾<‹ßk9O/©ÁDÜTa°k3Xåñž¬q¸ÖƒuûÁFßÅÁ 'AÏà´ Æg<ƒsÖ “Á…€FÍàb´èlðÒ:b†W ×øÁë¨oé}5xgψ´rðíY5"­‚~+†àЈÛúG“Q¼ç‡¨„g‡¨MFѹ"áÀ«RHB^ ޹RxðÙA"D¼öK©ˆœhïçqâ¢-8‰–ˆ…|ÀùÁC0Ê€<–•ƒhIŠÊCÌžÞ‰.B¾¢„¬ÁH©50 MˆDy´¬=àѲ_#Á§Q74xв± ø¥qÁ PiB$^@q0´l¨ÇSiÁËhÙ:è)œ P,4.mD‘”IZãýQXRhÒMÇ»QhÚ ªöJ¨Ô(œy‚+ÐC$ùKA6 ©G˜’F“H çÂAÎÐÉ †!@¿d‰Ð/, Á†ú+Iú+Eê Ú¯”ô ô¡ "‹Ô KüN’Éi ƒ »PZ‹Qò83Ä" ´µ-kb!´` æèú0D$g†~KVfìøè0ž†(+̨/8“$ ô¨`{t}@¤¤Dè΃Z‰á•rjtèÃê—<ìÎÈ'Œ¨ÈkxA £ÉiÕÊÑSXêõ÷—t8›@s•^Ñü–^y—¼J¿ý0µº…ú»g)1)HPûIx”\$güò’#ý)]ŽO_'¤ù½WéåQ,׉EË“éE9|ÃHÝ¿JÝ¿äê²¥8aØÀGï®Ñû'zØ %7õöâË7.¯n=œ<9½ì3úq¢ÿ2áÉR~¿^f‘*Uu‡f Íîïÿ3:|LÚ8vsž.ä÷Þ$8¿O‚P·Aleöƒxž4&[ȳĎw©×—é½!q'Kõ¿S/¹*íðe1ªZŒ#Lf㎉Ԕ"í°tYg”ù«¹G‚ /àÆ¹ö|™0 Él¯Sדö^>M—¯¸²sú‰»®·üg/¹Œ+m¿âM÷NÛ¼P·y±Õ¶Ò4•8\õ'žœ&Õ<åv ^&¼ySŸsSÎñàŠS]q»ÐÎüót/ó8·2Òñ¶Í1ÝâX©ùªãU¿kR1+ÛîT®MƒiРÊð¦:^·¢!#?OâË„üÌß{Ÿ8=>Í.òh çX˜¥™ãÕe›'¶ÅYòDïçÉŸ9…µOJ(«¬à]z£Ha¾‰E™³Ÿp‹ùßô ;•ÜJvù•‹Èj“Íð¬Ã'×âÓ’ê’µý®îŸëÖïéòßÊ/M$ºÌ”\ ±»PºÕBÃâj(âjOA¿NÜø‘+YÖ›Œ/{Ÿ·‰Ê,­+΋¬<üinùUjþ2*=œá¾Xž¶cÅ–/nA¹›ìJ«4o×Q¶Z3mµe¢YÉf«&7VÛcìcîü*ï>zãkŽ5;Îýc‰ŸR+çtfžÚÒ`uéŒôœrψî7ÞWÎÖGt9ÎT®þ jó€æò®„ªÛ„n•§ãZ¿œê!õ?UȨ”ì4=¨è®ê†ÍÑÇŽ„^0á—•tYvê‰6W;?&#}ÉiÚ“Ó*f,aFÅk$ÿKªjñT… YNš›…M©QN¬ÞsÝÜ×ñô¼Gô”†åüé´ÒÿI~9jÎoÕ¼,òÁ”ƒù¬Nýï¯I‘§RË©ô°Pét¨Ì»kÅ%­ºä­éäûá¾MJvÎõë“tùš“pš€ïÁº2÷k‰¤´W£J‘YˆÄtÂ[Æ4Ò£Òå6F´øÈ’µ]÷[,—˜¯ê#SOÒY~¯® ´1©Û˜Ff™28™ŽË£vŸºÕg9®6Qß]ˆ5­ŽË²é QrÇyâ'{êJ$“ïµÚÀÒ©›ŽËótßž>]«Ï–™seúç¦ —»Ï­fîlµÃ‹ïªwÙB¹›¿ø]/e‰›‰Ì·—£H3{®6{ï*±›šJÈzVÍ£U3:Õœî”Sx ȇói}ñ|&Ë–ÃÛ¡öirþéðïJ£ºMã(y[Öåm§ìù$á¨æL^·Hÿ5=È$Í °º=Ÿ8â„t„õGÅq?=goÊj€e•h[†îžH%,95"°9´~Ôb5Ë@mÈl'éËt/Od×(i{^/¶eÁÕ–áÐvÂÀX5z¨^þe¦pt‹†2bÚN”È3hSö™¿rNgøS“b¹’›óð<ÀjÚ¬*³NÒIÌP¤lŸgÖ«\¨8Ð\6”;‹ íõ“ö®¦¢­)W ñ(í-kË=)?KLú–ÏÓå8?õ_txœ8Õ,õSVÙßòv}NzpÖÒ6 ³¥gtsÖ·Íà@³ü³JMi>Ýê6Ý£†¸RC\'´ÍeÂAs<Ç0&ϲçÒÏ/ÜØæÂ˜ÏJÝbeG…'í­Šmu×#/&-^ï‹ð[‹/ã§c_W®Ñë‰z“ùùS"¥Jj¦ÊˆU9ûçD÷ÔËU¿M¯ÏŠ®_¸ÎØû ÙϹëî‡du›ä­2ñ/9û{o+‚ÅÀ2ss&ü—\ pÏL0-&” ›S'˜Ë„‹Ä‰Ì„LÃÙ„MVòï™O¶Å§Ž~<[ ]†–ãmÄ–ä° Ð•3-=)ÏýE!7Q›ÝD^žPÄëËÙdŸ+IðÇçiûq~žîmÇYmˆê6Ä‘å¾L©üñ)Õ ¼×IcÎ; u tYžñZÀ: éð×ÿñž¦Ãã6I¦ER9Qà;G“”—äEA¿´AÛè2ñsVÝ ú]zP-éjÖ?lYùæðËüÃwòµáÓáût™Ó‘'ÙÑ!—0~kì[—ù‚ŸŽ!¸B´ñ†Þ2´ûµþ#W“97¦Rolá-'ƒ}gÆ÷h¼_¦£Ê4ˆO¢¸œ* 9ߣÅ"ûŸÆ\ê}"¶n¡—6¬h³«Mñ×=€[‘6”‘6¬iób“ê[º‘áõ'"{ÈiÅàPÆà°v ÎäôlS¶"l(#lX;ÂæÿuÉhôVœ eœ kÇÙ\ØÍ¶Z,ñÞƒ¿hChÃÚöYbø¶H¿p+P†2P†µe 8¹™Ÿö@oÅÌPÆÌ°v̬?¥Ü¸4{ì]o5gµövüYs6eÎÌÉä°·X_(ãô¸—÷ú²ºº8s²¹Èm‰“­D e$ŽkGâgéÞǽÖíÊ!o(¹;yÎz 7F±“DüqzU,_Q µb‚a áb©V«Ëì«t¶?z¶¡C¯ãÚñúëto[ñiCT·!nÕª4â¸v®ñÒá³Äáß“5«VžmÚÀ)£u\;ZOò·to¶çËr §¡ÃÿæôÖA1aj…Ãh±ã(òåD{ùûŽãŒßwgÓ¹Wf_jÅreÝê.>[nÉ10»/ÑqíAtõQõÔ*—ÂÙ· P· Ø*"Û†D¬=Įș[ÒÌ0ülÏ ±v¤¨ðÏöæØÎ ‚íª#ÖwWÌÍVBYc­Œ€µGÚSÌHðCYe­PŒ€µ#yEÀ÷I{Fwڬ܄²jZÀöëk‡ö¹Å™PÖM+Ä&¯—âÎ]y0ãÓ¢ÃgãïNC§a:œF®Äì+°Xn’°¾~|›Tsó’ðÆŒå—)I·”)²‹„cÔ®=ìÜOÑáá8²­‡ûf]°]™ÄÚùÅ]I£Ã“Ù²ÓmrYþ!×Î?šäÎÍD"Û?¨¢…ïñ·v.Ò¤enVÙ¾?œ¾Ù_oºõh™› D¶7OE ËPäÚÊlZè0côËÈ_“ÆÜ~o›¼û%íyzºþ/–yBMKmfmœ· }Õn4-Òˆ–ئÅ0ZÖ×6i©åB‡°h8§¨±JVwÐrÀ;ga±¨”‹FÆ¢7߀æ&´ïò°ÕàÑ^ÎÌ xR°Ì‹oÙÛ5reæ:Р&h¸ÑZ–ô¶{\Ï,_}²t›¬9zV{,TkN«)¿lŒ™ÛýÌbniÿjþjÔ°ÛÛðÆ8ÙNr‹©ÁÔÇ&-Þ”|ËV¶!£ìmxw ÊæªÂÏòÏö€V ·RP,eéípu sxI¾±i—e j¡ ¤ wÿjµbïÆ=Ę61,émhw 1³Ã ß|´‚kÜ…Ö9LÁ»VMò=@+¸Ü¿,T•˜‚;;ðI6v¨à²P® åSpç®xÜІË7L_ÑA¾ÞÀcx‡³Ç¤ÅÍï)ê_É7ÖŽT£æQw vQwM¡Î]:"«­ðç|‡¸´ð]‡!'7‰â2âißÚNj.£ãKAÍïŒf ÍeÄBto›³cÎö»šÿ)ö· 4 Âúø Ü„;·x&Ùw¸5ÜÙ­`ÆwY÷ä–úŸö&Gt#>Rgûæ­*¢ýIߣğkÞJrôÉ’4Üp¸k>>¸#™3Š Òp‹bc]¶£šìí w/tÜE4ºM ›Yèm ·“Å‹=™&E†Í/ôv¨ºgŠî"<Û&uޏæ:Зé½3þòÔ½ww ýoa«¨kªœUSoÎë²+¤°Ï`¥áè—ÖW‹SH°/aÊEb‰Coc¹˜›Å¼CÙ«ÛÀÙ8¾·¡ßÑÀïÄvÓFßaô·É¶^s î |¤9küË1«\Àð=é ˇ`fR&*O´Uµävší¸M³4ÀŸ†’ÛUM@½Ñ0Þíñá}ðñ^sC3é¸93¸=Î~Ñêý>‡®?à1À*®òåîÈKÈäÃÝy}M%˜¶Ÿeß $Ð7$_Lßòiæz:k['û!A½Ñ!Îûããï~àÏÜm ffÝÆÌâoo?Å£1Ÿž¶‹ýì ƒn‡©O÷öžgÝó$á}uGëž6Øþ'µƒçcv«™Á/—‰¼ìßó×ãå眲‘Úöx£)ÅÀmzöN—M\÷éh‹µ©­òbå¥"—*,°yb.«¾MO·éTS|u)ÛæG.°™a…hÆ’/e[ãI׉¿æÝe ÍÃÈêïgrcŸñ7uýöƒÙýø%½á$°l ½.›«Uç#_$†“$12|t:]f†äB»J¶:cRUñE0Žé³ëDÝcÿ% 0qÆ{Í-|_ëâXH`òÊ·ô;xý‘¾J$ä0óŸtø5½üû²t›,˜Ü©ïh² Á´I¸ƒ,ò*Ë7 tóÏqT•¢öfN­Tûé~à¦þ€3ÑØâ•ÿw,n÷„÷d&¨¢ÂG‰éMôÙ¤½c9…åªSÅzž|KUŸË3~ó¶a¾ÁγÇ]i§VßüÛ2Sª‘áfhSåÄÑ« ô7ÊÎò8?'œ&ð¯”{Ú;¤ÛuÄ‘ç sÕ'¯³Ë.½®äÖê\äZ·þüöOT°ÔÅóÉvÇ2­’í'‡nJ<ÿÇ?iÅüÆ›`…\Ô½÷a¸¸>?ñð¡VÐOžÊ Èí®A¸ðáÜn×Dîæ"àIØ= xÒƒ ³»P¸M,A’Q• @Y Ñ+¹A÷Æï@M¾Ÿ‰q¢7È1òûÏvòÙÅÅ»«'_Ÿ|óàäów^}~ ŠÄ 0 Þœ>ÿqN˜Á™¸q`¦D³àÏàœÜ(e^TÂ"ë}výãõóäÍÅ/wíUÙ5èUÓz =(i7ÃgPÄ·5U.Þµ2 ¾+nø© ˜É®ÕÂ]KQƒjg6D+¨£&Z/Ôó”-¤ õx¡' tFÖR^˜^ëÝ&ê8Ȉ€p@6&Ú ‚ÕÒR¶`±†9R×–SÛÄ)!«ÅˆÞ±ÚÈM@ä‡ýoœŒƒµzc”ªY½”€wôª¸ÑR:‚ÅP1kPø ‚õb¬†Í’•nã‘ò)ãá£ÐµBtQòÅdæ¨4è]ÿÂl(·hY[ÀŠ;×î~)yßto¢Ü8kDÇM€iY¡gùKI~׿ǀPÚ‡ª‰ôïêͽ;fm`_ðiÆ#ÓÛC¼]¸{WŒ‰¯Þ$.ÆÁ¬m÷ï–5;c7ô¯uˆ_gÒâ–V9XX Z‡—(03Mª—s®»þiFE›Aûä\‚êÇv÷K“/¨Û0ê>stream xœÅ\M·½ï¯ècrée±ø ;HäääÄða¥LlÙkIVùø÷yÓìÙÙé±¶”^‹3ÓÝU¬*ë±éU7xÕA|Á¿aðQðo4Wü[†è"þ­CÂ5>¸!'\d(¥ RÓ N¾ðhxÜ•<ˆà>p:ˆÜÝ Ñ•%Iq{Äí9)G|pèˆ?Áã}Äu>á|–VþÔÁ‹ùmÀïì[ʸ5¡Åñî¬-é .ò›0¨d~UǻҠ¢'ˆyG*ƒ¦Ê‹ë E yvƒVˆí³ Á±ÙA*гA=úà"/ŽCˆ…§!dÇ‹óŠòš2„šxM…jkëæ½nˆ %ùâ‡p«/:ÄDý—0ÄÌ(qˆ…=,iˆ•=„²’ï*C¢²}á`¡¿?§Pñ `Rò‰š ~£C*„¨aÈÎAv(4‹R[iÈM‘-+ºàñˆ…cŠŸ’òöŠF FiP¶:?ä,…:Fƒ…fsÁãÕå¡8ïÑ(CÁÀ£Q‡BM¨¸¡@›hÀ  <~( #¬PzÉ…ß„¡T|­°†ê”w¥¡ Gc_)Šƒƒ±Â_…î…B+-Aa”ðhø¡V˜»zؘs°+õ4Vˆ>qì…zšt€¡«‡»HsýÆœ×Á†]¡0êhè°`Å3_â¨OÄC:¥C‰²³J$4[†Dj&/’ÛSè%z嵯Ì뀇à^ôB¼G?–'^Ùgz†9ÐdÑJŽ¿fH3Žtd¢á™‚qâuÀ€^FWTz6_T¢Ññ?\GoTº¹Ò5ÃÌ”þ¨P?ZÀôHöB‚Ž,¿£ýÃkZ }ÆØ¡#Rx¥jQñ$´ˆË—ÐÐïMžŽÆçeŽyâS L[ተ¢Á%648Äæš™D‰o”1Ø w ¿FÌìÆ_b© fÀHã ±ÐÂÝh#Ñëý–ĵ ËbŸ1ž’­µ0Je<_ᘒšMÃf$;Z%F­Ä뀑ahÃË02u¬pÉa„-ÈOE‹vUùkdŒª|^¢%V>/ÓbfsÁ¨håó*eƒ}Hqì œQЇSx#¬YÙÂó`V-ô¹0Úx&Z‘¿ây%1&Áz¤d ÇçUx]€ý  q‘*°•€þHe  Y*å¸Vj&Œ-XWÀˆ¡Å‘©ü5ÃCz†–g¸ä”‘¡ãàù<Ä´ø¼Ê{á—Þ¹ÄV þ_aµùe`ør0'´sá¾l!Aõ¼ÐeØA€_zWàMÀ(/Ú0ÊÆP85îe¼‡2vs†a ŒÂB£ÿ³…þqêùá:NŒP†0¶£D ¸ÂH]{ [¼®BïÚsZ °_ߦ±/¾¸ýóÞn¿|óæíÃÍíïoÿpsû›·ïÿ~x?|ë0»ïnn¿¾•©ùÍáÕ>…2*…ó`.cöM¼1‹Çu_><üêÃÇ—ü·¼~ûfL£Žòë›Û?}|ù@Ä?¾~óÓ‹Ÿ†ïãdJM«ÖÑ»6¬èO~Œ?ƒ#è.zÖÑqŠ—<ÖÖ•€®¬ŠÌDïøÉL9ÜšÿúÑ ~ŽîÑ¥¦/dàCñ±ŽëøjŒ¯qd.'öÆpдo=øÞ-{êêWHX7ÄÆøâF¦U³ú½Œ%Äuütä0Ü ß hßà8ßàC.7ÌE§ Òñ&ûüM¿T\VÛe/^ð)_ßz„$|nÿò׿µæ3úЏ0:¸<¼ùxÿÝ§ŠŽ'&DÌK—6S†Ñ!f¦¢#2ÑYôIèlhì;1~‡82»OYFÌS &[;z‚«9Œ’Ã6Ö)te%ÐݶۑåŽIRôg%Ôß8Ô$ØOM\|„1sq¡ŠþlÈojúÐcNcº¥Å˜ò’wèÏòÐ‹Ž¼edîŒuÎÈü%9|ïW Э‡>Bå4ú6¹` X#º³e o->œ,ǶF1ÓFx:2¯uxã9&Âç¹°Åÿ‘'ÅŒˆ7„·šb&³‹óÄ5RV!"Üþ|ègìu¹ûï‡ßýéáîဠ¾þqwÿáð\¥ 8$øX°ÉkD@LqeæÉ†_ÇG4 z°cb±Žnm‘pÀŠy‹˜k6ôIØÚ¼K|ãXŽ …‚È‚ Ò°ºhÆO€ó±Â¦˜†Y[ ˆXD¬InžîÄ1Ô§‘ J(ÈÀJ]Ç7yü™å„ ·Ä gôgC~ã`¼×–DVñbF6ä·øè \ÖÅ¡Gi×¾UÆÛ-~ßJFú¯­À‰þ”EÓ7N¶œ>&ÖUú8ôpzñ«¢GkÓW8=+;>ÑY-É }ëøÆ¦¯pýOò+\ßɆüƦ¯pµÚ0<:³þÉ6­& ÑÚô®¯­È1ÉŸ*ú³š€FkûS¸ZqÒàÀŠ\P×ÖúÄ¿\ì=®ï[E8!RVwÑŸ ù­Ö^þ–gëW8¾_Ïà*ctx¿°ÒÑñ¥Žy­ÒAüj‹ïám,êux8¿¬U:ZðqÆøð~׈"äÁL=*bûZ©£uÀ8üùÌËIîïÖs.tÀ8þyø[%„ @¸XxoþXrhÜg—?&tgK~ãøçáq…ðnðݘ~Ä8þyøãY§øçUП-0€¬²e’}ü–Œ TÊTN€(ûÕÜÇ@)\îœ ˆ’¶|À*ö:?b€kÁ¨•}¥ús¦€Üxì…ùî£ä bn=ùJæe~8[§éOàýq=ùJfÉ_×<œŸ”Š¥±¦èÎrÚmmõð²I·nUróº«Àë¹?aÆÇš»„Õ‘7/þÁÇò1€ž„×ëzÚµUú$|ø¼T×¶o`Å凪#Iâu|ãXbÅ=6â›+ý>/Õ/;½q¼ƒÏ»âhz:róFbÅ}]ôb^ì\c—žqÀå]• øKËC–ªÝñ±Üp_ÒÌÔ<å{~ Å£N>+ÅÓ+þÅÓ'ü§Ï…üÆ–?“=ÿ’ì9Ç7N¸:ã3ão3>ÅzÁÙŸ›ñ)ÖsîcƧáo3>ÅzæéŒOü ŒÏ9¾Uøé¥ÿ‰öaÁƒ;òhŸÜxµ91>*XGkÞc|ªyub|´‘½eò©æõýFù(2èÃåSÍ §‰òé3þ%åsov:µ3ÃoS;Õ:ìtjgÆß¢vªuÐéÔÎlzÛÔNµ:Ú™]ï‚Ú9‡7Ny:¿Ó•¿ÃïTëÀ3ó;“ø;üNµ«su‚¡<’Û–²‚ç´ÇÀ¸Æ6“;Ç|o‡ÛZç›Ü™ð·¹î=2ÆŸÉc©kÜyÒk^u¢xÔi[m/P<'ôÿ/½#æ|f~§ó ÛüŽ˜ïðéO_ní1K„Ûû%x\itœ’Ï­ëS+àðçådõ+Ê"M€ERiàRÈžê¸ù*†v¶E[’J¯^?Æïï~|›wçªëp%±àÅ—{)yœ ²$r\Œ`®<Ã=¼÷á®îë+‘3‚r‘ráîõ´ˆüÃÝÏ?×KËÑ]¹Ïì“ÏÐê>mrå°“x:¯Q4ÃO<Õ)£Æ3%¼¼ûðºîÊ+q±Ð-RO¸\yç°ˆûÃáþPõΘ/ó=þ 8 9æ‘NKÀ?Ýýô±F#àôt‚CðaL<lø•°/\퀎àß½ýðúþµ•‡ùpä“çPŒ-HЉ©„k<ìÓp9ñqçXÇ…ä<€k ÷_w¯ÞþùãÛºXÜ»tÀ9îÆÊõdåÙjçqzåúe  !=Ëa};ã'µŠmáah°_i¯²nïÏGópïÊË+”Úg¸­®l7ò€7-Ì22¨Ãüsšq§iïš¡¼•C'>Ó^ÞÈÜõ¸w²rãTâVm;è†ùHÞKG΢ró_†kò endstream endobj 463 0 obj <>stream xœµœKoÇÇïüsLiö£ú’øà999$1| $Z"L‹E"È·Ïï?ä¾g¨Ýåð@mïNOWO=ÿUÕ#+6øÁJB㣡”Áªb0>ÃKä÷>¤Æg-|V>ùó™Ï>dÍçZÑü–‡¢ù­ •kÆÜîŸaèÆú­ =§ÁºBÐ ÝèŽÎb`'½ !EîíìÅLƒ6„\u©³;nÍžÛ[ Âz‚@ ´ÏäÞŒA¢÷qÈÌ‹A“¡CfNÈCŒ²¤ Í{¶ª7/Á±ÝæÅC4¼Ö(°¯E[`MKâÚÐÌëšT¦`wMOG‡VÇK•r(ð±5Ù ÌÂîŒA×€9A¿ DÂݳ©‚ª÷`2Ü€G)p­ÇqfŠF2àv«,ˆ–w=\A‡úH÷*Io,_^oº >vcÁ ‚÷üáÃÍõûýúö¶ÛÕ/.ÿñøþA”þ~óå×wïˆ#ñâ­DPámµ)T]ãëåQÛiòØ¿–±ÞE\NfVá™õ/Èþ¼ÒœÇY00ÎгšVùåæÓãýµ Â8K b .va¬Ì'¨©%ž–“Ãjw´àóõíõÇû^§(¿À<( ýZ[ñÉu!i˜iKßT˜WèHë§éÈÎüÜ\MÉ'Õâä=뜎LÊhKqžÄjtøH( ãku6–<Ò[«È¿ÜÝ=°êrZÒ½nâYœðuìÐ%ž€£]ÜU’Ÿ¿öåÐUœEpŠJ„O…WztÂ<«+Ö|”¯ï—!,[¬ ˆ­Ä'[²*Üâãá÷W_oº-D7zçSÚÐÅÕ÷1Ò•9ö´Ô'œÏ˜>6$›'éþzõëcÏ“>0€H,!ÍÑ¿K€¶°1Àsž {æ¿eñÙ— þV_Œ/¶ú/„D&Ì¿ã%zš7òüñF~ºcUÂÛë9,–ä·`5Br£Uí9ö8ÃØÝMfä‚UŠ-î{×í=Ò&V…ä|8·ãæËâz5Užç“Z…ãĶåµCEuÊ…ÏIj#œx‚p篟ì ·k­íU¨)V\ )"–ItkÑ5¯|.¸ÔmÇRnþ{U&Ãåh R:I~îT¹(†çWÂLœNm‡ìÕo¯>>ö²áÒ*#+Â-8ÙøáO×·7­/D¶zTx&Û›S lŠìíÍãŸZ^ ™KŠ×!» ÛˆâsD{ÂÄã.aÉòœò~ÙEåÏDV(H½ñöBìýÝRl&SãymCÈBŠ:I÷öæþîáª.E9Cc”&«° f /ÙZÞåôãtÒh2'|ZÞPóât¦¿ëÎA3 &°õšnïÒ©I¿_ßßõºaËRæ²&¬„Åã¦/kL (ÐK"à©^( ,P®wáÛÕ×ë›Û›¯ŸûRµ5Tý}¦<ȪÙ$íO×_>-æ·<ᘘ´¦‹#1`É4]0Ü ´ÛB´•”¼¡ \¯3¤µ(<ÌMÂxO쟢¼¨f'`ªù°!\ˆÂyZþ~¾¿î“èê íJ8/#MnÝÅHŸq^¾®£=œÎ/$a¥å*ׯéÇt}‚î(à¶£{b± a`ª¥S„—õ]ª~(åÃwù¬@Õœ©ƒ„ï²rHøê7ïçr“9h½°•÷}ÏÌø’Ö“ºg¯É ø¿Gõ“@¹©µç:nnù à“ª4‹ßH—B-àîC¨½A×ùDt½3?‰LS(wæ{u_ƒ®ú­B:i")“@AvYÅã¦rÔaˆ|QÚyFz‚8¹¶úºò©‚§z¸¥_NnJÝÍ\ÙSÌ%K’ºQD:Vâctjõ Aß~>(,̕˫·²¦ BíêMÐ]Ôõ=ñíj¯Ao4P„š#]xqÏçO«_èѽ.ÁâÚ«6xœ®–tÔì¹¼_n~»j‡±%à­Ž*Yïœ3çcjãAƒ7«qà’];Æ@KAL´ò©wüiû5ŽcLá¢òc\©ê Ò”"÷èjèoC3 Úõ8¼8F¡^Ƕ·Ò·7zL„ª­ªÍ«“ÐHufc'päý81IôP¶*<âZIxÛWÕEIgJîêb “1VB©ì"±¹1º˜Ú·cXͧŰùÈ1Å‹*iÝÕ\a÷‹ó« ­Å1#`¨¯íû<’vµP×$ŽŸû¦sŒ7?FÁsªêŒì"-Rª–ƒúö໾¯S‡iBŠ1W½*éµ¶3?n¸·0Öd¬„šöåµ»üVí“g®ÝÒœ«;®“„IJ[f—*»†•‘ÀPüDf¶¢;³Ï¨TÕjé¸ç È2u/·ûÂüM)7Y{‹uƒÕbWWlÁ¢î¶ÉÎWécÊêšNuì¶›tߌm½¾elKEKgÛ@y«Ý«3j•ÜsÝýúúøþ+Óo:Ýw;ÜéF5Õ„“Ϊæ‘VMdЙ"Oƒ— Áµèð`7Y÷ÄVÛD^ñòVÑàsÐ)«×l5”ätME±&¤Oõ¢¸±½ÕmÆf²Ï7¬ÜA'I^ÈLŽÙob:ÔЉá©PŠM=ÁáæöË6B–à»NQyõ@&‚Ïé@Â×Y†E?¡Œ%ö~Œ¹ïXøŽQo™îÚ K'¹õ½ù/wj^˜ŸÕ¡ÈBD¯0®7ñÕÆbiTó^½v ^û©çí­oÇ´^Ñ,4¾‰ n_Ço£OO!YþÆïÇÿcÊ”Çx !RáhEÔÒØx[¢^Må4f÷¸¨!R矲ûƒFè!Q"}øFî4¯±;Gºæ"ÏF—c<;¤“ÓšrZ·„ ì`JŸv[Â[}þK¥Le›«`&7,°¹ÌžE0wÔg—;cÍ5¶`CR(5ÉÙµÜ]n®-7%AÞRÃë|sdŮㄪSbh®=gìo¥Êªp÷ Eœ…×ÁÖ·£¨lC§'B’äÔ¼Q,T½‰Äk?Ù=¤Y¢Mº:ÝÛï¿Û˜K:¿ºpT ¨Œ§ÔÖÕ… žíW–7žMj« Ã*5›®0„cZWG–5 ¨í©Ä ª†N^O—&û a!á¶XŽ®÷f/?QFÒtXÔ¦3Šm<Ü‹½cÔV @ž5Ua°O¢z¨¬[ù¡úÂ]Ç–w½×ÌüÔ¢KøDõªüŸ<²ÉwWÚø  =*JâšóZÉVn!wö&®Oxb eå ÎZÛ'zˆ¹hv&`œq!vÚI˽ùßFsóIçð©É¿Pÿ:Êhó¤ G¯\()×Ë.%¨°²ÖÍ-lžg³Ä¹­ê0V ˆj}’Öâ\yù±L¡|¢XòôÞ³'}‰IüEŠeÊpå€VÅ2²Ò­âË:½ãðÌ.Åaê?psóuÌg½=² ¹ñëD2TçN8o„UNÖ GLÃn× CŠjýèE¡Ÿ“2Ð3éÃm½WG*¬WY’ÏNoEe’„2ace¶ø¶ÇªSÏÄ–Ü[zSW¼½/•œ^½ÓVõ&‘(Y)ðÓû='ÁHcyB‘QèAG€üx~ÎÅšöÛæ3ow0óä¢à|ðĬИ>Ãèe Hf¡çüÔ¯òzµ>Õ’W¥ó²`½e:žÆâ‰¢¨µ?Æ*uÎŒl)+ÒY™ÔŸ^Ðù»QE  ÚæÉ>¾ªjG)ȉ’?1â´™ˆJdSz7ñUGtA|ŠY¯K©^õưÊqiÿ<×rBuŽ,äÕ4GÍ“T—<±gA¨0®ÈZ4§—ª§È¾xüâƒT†¥—Æ O&TJ¨äòÉÅÖÞÒ ô#i‚îzg6ê€[QÎW7 Ž1Èì[9.úŸíõŽ÷¦Ú$4ò ¦ã“:›š’RGý¿Ò„·«‚ª™í *§¡ì ¹ï؃Ÿ‹Åy!Ìõ»÷ø´lRñà{\wm³Ù\óë¥bÉù|ã×MêøŠ‡^ò'Ô™DP’Žhc*Óœ,“~r¿[÷øºÍ–0ö¡U9Ô0«ÖÔAN…;Áì_Øgªm'¿i®ý\_Q endstream endobj 718 0 obj <>stream xœ½šËn#ÉE÷üŠZÚ›T¾34`{6àUÛ ÛÙôX3h¸¡ôcá¿÷¹¥I‰,©Š’¼(1EF¾"n܈Ȭ‘ʧ‘|jÓÈqÊ…<¹>Ú”jâ³OÉœÏ1•„l¶©ý^§ÖŸôíy%M½Ÿ´cç“[å³Oõû˜¬Ñ¿ÔÉ\r6ydœâ“gæa.w}Ö)E¾•Dc†Ê ’†«cJYsÖ2¥õÑЪªÓ`i£%-;Ís§Ú§1NÓ8^#±¤ÖÕÐO ¨… äÒp~ê‘ÝV–Û‹¶ÍȽN9ªWo4´SžŒ®ãô1å§; zŒLIBƒQÇHS®‘¬è} ¬¨m º7MaX`V¦!܇„p8ê4´ˆ°1 iñFwúɦìYÝ}*Q63ÙªÓ vH#Ñz1mÉ,a82[o4+Ä*4Ч  ÍWjW£N¥±C饱Ãt¥³pÃÖ¥³(cÿ “hÐ}£CÑï†=ŠacÛ4œšº'º;+Ô–j–XkÆ·5¡ž5'ýÔi u¥¨P2ƒ=ìŸÌ^è.…Щ›P¬­&¯­1 `­£jÇ ÆÄµ£$CUÀªk² º «óÇX\u) dÒ`Ùbº…zz @6¡WûoIЇ pÐhj0‹kYúAk­ -ëô*RÛnUã ôÖX¯Lú†î=ª1h0˜aòÖeÌÙ†vŠfÛÐN$NÀÈØ¾ 6zšKc`¬9] øõˆ äõ¤)ÀaO(ÀXwÏÒ*¨ëÙèÎÓ3ˆ2à× û6þ鬚g¨ ËÏéÕQ›©ÏZEY4$L÷¡Iù§ †úºLí`¨ks¢‡î@ÆÙ ½ÜÔÀ"ªs9jjˆ«ty]fË.g+1Nbˆ.\>V‘3ߨQ½f¢Q/qæ–FhŒ[RÂ*4Š(C4ãô¤ŸºX@Âòùʰ N£Èù1£Ë±å..æ²ù§Ùõ“ÉWiÈW$¯r?tã¢É«-osØûòî-&$Wq]ƾ®Êu¤%c¾˜¿f߸øcùNŽgUç;mΙ¢‘?*¬dω(ø,ÿ.¤l:Œ¥4Ð9ù`Òªkž“€zJî) _ÊÅ·Câ¾\äê­•²ãyÄK\[(—Î ås)}¼2ÉìMçªw…f_Œ/Uÿ‹á¶)ç<ìºÍÊ©)¯“¯ )÷œ}¯œÊk6»-Ù…Ä_5Ãf¦T ›¹Lª‹ªŠ´±”Õ3eÎÙõd9ô²çœ¤=åKÛôÔצªµÄ±Þ*GlÚö£[˜Æ8_Y²naø¸EYõÓƒÛqzpÛrºh_ãòмf_äY½êZ” ûg'2Ä¡ÛÑPj>ÝÙù#éÓ…>v¾•Ÿ×b.³v¶6Ä×8â…ˆ?šíUÉ€HINlS­)Ì—·Dq×á$˜$ã^&ƒ³G’\_ôÚÐMµÏhe0tÉï¡‚e Vl…\;²šfå^ôJH—dk‰¨Ûë« ©ÚSÚâ+¦~]®ˆ#èyŸÅ‹t}?‹_aþë<ùù4Óõî½ ¿$OêCµP¢Û:y5·l‡ñõ¶ÃÿólÌ·Z§òGŽ‚ ÂÛyOªìR‰´\ïž]âꪨÕÖ^ù×ó¶zûüA_YvÑê!õõUš—¼ã¹$õõ²!œÊNt3¤˜AsZ³•yû劯ŽOåy¸÷ >¯åˆõV]¢¼T àmÃ;—G»ãgbð|¹¤<±õB>–o·Æ7¶ó¯ (Q£ Iéyš¹§ù\­Í©ƒÍ'ÙÔä±pÉ#—q§>stream xœµšM¹ †ïý+ê˜\4EQ°0d ““Cc/ÞÌÁˆc»ö!ÿ>9ë.w» ®šñÓ3œ*‘"©—’zN[ò2g]tðg,­òg.½,%g~iu)3;¡͉¶H©NôEFc©U JYêp®’­ÎU¹àÐæƒK[Z‰WÌØ¦s±ÑèK¯!yé1»”¥Ç©Ë(ñÊ–a.PÚ2‹:Ñ!b fT—3ç |Ææ|•¡N¡iiÎ銕ï³–c)⃳+ð`ŸÂñ` "ùÁB­N¹de°æàà_íA!´IL‡©ÏÛ`ëÌ1J/“‹jPÈÓXÍŽ< ?Ú€2çPÎÛ‘la%fI×xË}º7*#Ö©§b’‡¹<Ü$Süí€wv·r´¥æX,[sÌøš»K5Ïà˜K-áI°W%< P«tŸw*x›.5ªº;3ÆÔ€ëªb0][èÇàÚÆ d©V§S€ÕÆp Ɇx($wP …”nñv:¨ñ3äRggHž#ž!eº7ŠCÝ¥P#¨¾hŸ ðª8 ¸W\îÔ„òU-¸Ik€Pà­Ã ÀU¶˜‘®è‡r @½¶Hi¾nˆª×Ü«ÅÉ=´B”K÷Úkp %â ,Cy`yØkD¨† ÉD”Ï t:"  n…h9|î[ä â*½}ûÓ‹ª|‚é%²N.¶/â‰j?ññ'w/óÉÿh®'>ÿณ;ïaØ'wÓY ÊPc/´ÉhƒÁ›’2u™9>kC4mhs¡òÄç‘ÚØNmn3œI)Hmöâ÷1 xðÍÏ JºH´Ö2¸\Ëܾ |RaiÏ›uÉ®žuŒl[*kÌ@GØVï_±ªžך$Z@o¥¯bc‹¡f>stream xœ]Anà E÷œ‚HpÉšMºÉ¢UÕö†ˆE0"΢·ïÌ$©ª.Ò3ó1üáxz9Õ²êá½/ñWKM¯Ë­GÔ3žKUÖéTâú0Yã%45_Cûún¨ióÝ߇ëí^¾Ù{*. ¯-D졞QMÆÀ”3(¬éßýLsþ3Ê8g¨ÉnApnܲzH=©³ðàÀÞr^ò´ªit ¸ ¬HgV:•!ݳҩ éuÁ˜ ï@ M¬Ò(¯z^ŸÈ]=«ÑñÖ;ÖU •¸¦Rñ·ó¶4NiBý½¤v¦ endstream endobj 1520 0 obj <>stream xœ]O»à Üù þòÚ"–téЪjûĘˆ!2ôï NÒ¡ÃY:ûκÃõrõ.qñˆ ¼0q뼉¸.[ä#NγªæÆA:M˜u`b¸éðþäY€vçw=£xV]-iWí.X ®AFí'd½”ª·V1ôæïÔì†ÑÊfT)kP¬ïE2ÏL[EÈ´¥o§¯<.ÏH¶Ñ'*BAK<çñ×5,¡¸xûvWZ endstream endobj 1522 0 obj <>stream xœ]Ô=nÛPà^§à DrÿlÀxÓ¸H$¹€D=*L ²\äö™Å)R¬1Eq>®ð¶Ï/_^ÖÓmØ~¿ž—Ÿý6OëáÚßÏ×¥ûþzZ7Ó<NËíoÒßåmwÙlŸ¿î.¿~_ú€ôã=Û½õí)æûÿ¦û]ËùÐß/»¥_wëkß>stream xœ]O1ƒ0 Üó ÿ Ñ ±Ð…¡UÕöÁqPœ(„¡¿/ СÃdß|–ýpØ%èñE ¬ciñkD‚‘&Ç¢ªÁ8LÇTg„ìo:¼?`3Ý绞I>«KÝ”]µ§ÐZ‚FŠš'­R]km'ˆÍŸtF{8ë¦+Pjãì?•Í-Σ€kŒÄ©T-UrÇôû&øS°A|iªS\ endstream endobj 1525 0 obj <>stream xœ]‘Anƒ@ E÷œbnÀ@O"EÞ$›,ZUm/ƒ‰Xd@„,zû~;¤‹.¾¥‡çã/»<]Η<®®üX¦ô%«ÆÜ/rŸK×ÉuÌEU»~LëFVÓ­‹òôÖÎß?³8<áÉïíMÊÏ*ÔÁ¾UOWšz¹Ïm’¥ÍW)ŽÞóq¸ÜÿkÕ›£¶§Ub“ߥ†‹ã®c“÷u6;6y l`@'X7h74l꯱ H@ªØä=*>2/©—à#ó’z CÈ‘¢=›€{Å›€EÄW53õlöŠÂ& #V£òˆ™ÑæF‘7Z標cd0*"B´¨ºÜ×uÏz²×…\z,‹äÕîjwÓkYþN?O³ºTüsq”& endstream endobj 1527 0 obj <>stream xœ]“=nÛ@„{ž‚7I½¶q ‚$ ¨¥ÁÂAËEnŸ™Q”"Å,0ùv¾ßáåõËëºÜÚÃ÷ý:ý¬·v^ÖË^?®ŸûTÛs}[Ö¦ÚË2Ýþ:Óû¸5‡—¯ãöë÷V[>stream xœ]O1Â0 Üó ÿ i%HU—²0€ðÔqª u¢4ø=MÚ20ÜIöÝÉgÙ]/Wv ä#z|QëØDšü‘ §Á±¨j0Ó6ÆQ!»›ïO X d×ù®G’ÏêPŸË®ZSè MA#E͉F©¶±¶ÄæOڽݜÇS[ ÔÂÙ¿+9š[ìGç‰S©ZªäŽé÷Mð!§`øucS| endstream endobj 1530 0 obj <>stream xœ]’Mnƒ@ …÷œ‚0üŒ'‘7é&‹VUÛ ÀdˆX!‹Þ¾ï™¦‹.ž¥±ýÆŒ‹Óùå<[^¼¯süL[>ŒÓeM÷ù±Æ”÷é:NYYå—1n¿d1Þº%+N¯Ýòõ½¤ iØù­»¥â£ôµ³oå^çKº/]Lk7]SÖ:§í0h–¦Ë¿£ê¸WôÃ35鮺o4kKQ“s½'vjru,‰QM@&×8¡œ«±W0‘H9d›RMÎ5lÕTjVÄFM@vn¼š€¼F3¨ ˆ©Zñ(絚€5m¼µòlå1·‰³Và)æ+ôÔ‰Õ kžb¾B_AX­XíAMÀñ¨&à‘ˆÑÅÆGâ§R@þÁõÅFŽpý`#Ž`Ì(Ð(5žÁ|ù¨Ï×ãûrUž›‘ÇǺ¦i³}²}á–ŒSú[¹e^X•CÙÐT¯z endstream endobj 1532 0 obj <>stream xœ]’=nÃ0 …wŸÂ7°ü#2-É’¡EÑöŽ,bŽ3ôö}|N:tx¾Ä>J,ŽçÓyÖ¼øX¦ø•Ö¼ÆnI÷é±Ä”_Òu³²Ê»!®Ob·vΊã[;ÿÌ)Ç©ßø½½¥â³ôõö[¹uÅ©K÷¹iiÇkÊÎ…C߇,Ý¿¿j·u\úç§UçP)0À¬qÅ9T``iXX66†>0@o(Š¡¨À¦Œs¨À}`€{C6”lL²éÄAOIo’Çxåí(#O+oV}áb#ô…#ˆ èöŠõ ô…#ˆ »Àw†JŠIJ 0â…7)v“_¡³˜³ÂW鬿¬PPj¨i(”j }åj#(nQy“¨öƯǴç¶Íy-JË’Æ•ëÅõ±¥Æô·ó4[WŽd¿æ°ž endstream endobj 1262 0 obj <>stream xœ½[iÛFýÎ_ÁY!û>ÉÆë8| NŒ`!k83ÂÊÒDÒÀÉ~Øß¾ïuKœ¡æØ8Ò´È®êêªWG7›Ú]ªR›àK—ù7”9ñ¯+µ‹làË6p9²+¾Œá­hK®´Æ³aJ'#ØyéJåV*½•[¹ôI£‘L,&[FÏAq9)R%W&ÍÎÉ—©íË”x+«2[šÁCËzjéžùÓIÿ¼úÊný9lÛœlÀ]«ÐÙéÄøyØBO «À/8²Ê±E ü¢&S “´À*YÒjðK˜Z;dæÜ­Æh™“·Ú²ÅÑ´+RBЊҊ¥Ñ†´ÊÖ‘´FC톴ÆÐŠýriø…k°…5¤Å—±N(ÀÏii¡Ÿ ¤…2©,øE n! FYL*Mâ´¬¿Dq-&SQCP;T*-ðË„‡…²¡Ò:]B7B›ÐýA ´(”…X¨vëÐÏ8¹›Kpç]¯Jp"?~.Â/ò¶Ð"…?o…ü‚!?`ȱª¿(6m«pNž:€"l’~€ÍVZ­Ä¹A §E ¢ø*ΈÖè'Vl  Å1¢F˳<Â9K.0£sI'b-}Á Jà ÎgÊ op ±€… 5ä…ÏÅCºHCr´D§ç°×%5È\v¼ ˆºL7°`ïµ––e‹c€×" LæÌæñô<í`/Ò;ø‚÷´ªƒ/ø@«:ø‚´‘XáÁÂN‚Üõh“NsJÂw³ÐÂ|¦ô„cÐ0Z -¡€hI?‡¥'‚8¢äÁ€h8,Р^¶@áDR àe4à>ˆÿ:„© þ ë•!)ie´¤|!dº=@Èžœáh‘ ”7'< *¢ V.£&š¨¦¨³ôËe42L%æ8øB´–wá‘E Q€a ü\¢7zK À1í1á‚1Bä,á12æ:#ƒ®ƒJbbÔeĉq8+c6"3¸dÆ ç[B^­ôC4UÄ3°‡HK0<$-£S&ÃXâàɈ’»ÁÜ©•>“‚£ô€ŠÒÃgR¤GËh `ä”e†§@ᔢeÕ&[fÁ)0_fÉ`È4ZÈGN¤ÇW†YÙJÈQ2¼NK~P`O~€rÎ27vVJ&GyÑ$Ci%MÏ&#Ÿ£ Ê(aE2ã…z)É޳S ï4Z_B‘ŠÀ-©UfòŒÑø·hO4/‚‡nÃ;:k†&=E+yÔF;‹ Œ7’v%/)LR${òD®@-Uƒ+øSÁ)Ëc}ÏòNƼE(„ð¬¢Ñ•R(Dâ¾Äá¸Ä>›JùÄÈ´!x÷×US?L¦‹¢~bPªß‹ú‡úeQ?›ÎΚYùQ-/¾i†‹ò£u®ò¬Œ¼«"Üæ¨q°•vèö¢™/¾š_âÿ M'U¬\¥ÿVÔo¯?-8à£É¿Ÿ<·ç> C.‹û* nsšÂv nÑé sFU(YÌb•Ó¥©X…¸*”8Ý3»E`”•aÖÉkL"6<†Š‘‘{«ø. •FÜAì«5çRà"±%@툗wÇ%B@­ÄÂ(wª€Xº²0JÌ#v ìN1a'1©®,Œ°óÎjadˆJ¡póÞVH·,ý%¨ø` ÉpçãC²­Êͧïê Ô¾/± LF¯£„Epr"ÐHøôµU'ØçÁ홲‹5K”¨–ú ZU(ÕMXcÖyï]AÚŸ¨ ]‚ ê À #„ˆŠ®VD£\÷#ÐȨB¹È[×ùñ5jNÐ肨—ë oÁ–k¢ƒ ¿GƒÁ]*š\qý‡•jE3# lé¨ltLJN]hOM[Å ýÃ68ê ÐAU(²²ZëÕ«¬úYy˰'~kOõÛå©2 Ë5Ó“9¯ÂMúMAP¼Çºm­Q™ž êrƒSµ…Â÷®>5ÒmÈ455JŸàÊ (° :­`9-šêªUúÔ‰É]176BúXºƒXÞA¥U* ¿  ‹À‡Ês/b¬¦ïªNµ‘¿»ú”2QUÓ³3år5eB²7]¥Œé.þöÞä d"£CÐnƒ÷Ø«¼¿—ú‚ù¨/8dMîò,ÕÏ®0í»¨oWàM"ÇÂÕ!‚ú{.炯JVtå4ë!”®¨ ²F²v-ðRÔ|ª˜‹8¯¢Û$w¯Ã=ëÉSMO0ù‚µSXß(ü [Ŵ혼s±àÖT;‘Ã{Ëä„Éïl梴 aúLîÌß5—·Bö6sÁ"Çc¾W>Ó k%î¾ÃU·ç¹ Œ±D‰‡HfwRÚ°ŽÆãï±Éu¥›tøPž‘ïXUÊRizk#(ÖI±$»Ž-!}F·§`ûþÍ˯.‹«ùßëúb´>U£Él4¨Îgõ|8] /—¨;ö†ø7—Éý„ãtƒrˆÌXÏñq}5Z)нõ*Ý]oŠÈ ÷Îï•xL”½%y2Æj;óÁ’KLý×7‰Ê ìèìùYáæªÚ¯ý,ZÝ3Å÷XÙm€ìÔ ‘áI6⣄UVgÒÌÞÝ–Õ}Õ¹¬ÚxƒW±\"¬²e4]b À‚ ìŽîÔ=×µ¥àt•cJi-ÕE`n£Ý_Juöçã¬\èÙßdø¼ö‡‰½“+ À§I= Tª,¼+ãô ZÕײÌÄBÑ"’À_ç÷ƒbÖ—/_–©që|ZGÃf2oæU3©.ŸÇ·†­® Q•õÆìòt çF§ŒÝ_œu`ýœ£qˆ+fìÓ}Áé\È3»Çt kOt]‚ÛKÌNµƒOÚöí¯Ÿ öìí£%÷¾½¼|Îú ?t8À6!A¸¾Ò3½¢í+À… ĨúŽÀÝ2ŒàýA¬é"0–sàÓò~U"Fp½E2¬P`‰Ð×jÆ ”ñɆƒøÚA 3`êO_õ$€HÉkÓH"i¥õaï ˆ‰È1¡U&Ä:úȃ › >†¿ÑŸ·ÕŸšÃüñèÔí¨]ÞUéè]½ª|oÞÀ+¥çA²ž3·‘‡¦î“ŽlÔ•ÁâÖ+.òÓºÀ÷ÚUá †^¦£‹Éu5]ÔÃéÕ_ãæ|Q›ù¼™ÝžŽî.¹éÎZp9m06V<¨W*=°x7éÛ¡ÀàÁ¹Ô×þ¬0=ŠÄxJ»,wÓ’r]ÛA=5Æç…–ÛéÇÝBE§pŠ•®=®²ÏW£oΧ³ëÏ¢¸³ép^ó’ÖßPiÒž5WÓÙâžJTºBÄ“’ýtb¹[‹µIê«D,N°sQßÓ-4«ÃTšÈS8·0 %P Ç•ˆ¥ålÄe寚qs1MV ÌGr ÿ$§b«xÎÜaá; w“®M@ ÑJùûUÄk]#Ñ[6º6ëáþÓ¹\5³ùrVÿjþ¼Lã¿æ£yu5¯.þóX6@ ‚ìÙÃw¡Ì%뎸ôÀ2ßh,Vx¬²ŸÓÈ&§Æ¬¶º0y¬qy‚°AªiGcW+ çX- ¯ë_ÛoéÔ >ZÁw0y£Ôé?D2JÎM/ µõgdÚy>̛陸Eýúý«ïßýãëç¯ßþªUÍK/šùp6ºZLg¬±…þÝôýd4œž5<&¹¼D±{Q?šÍÏ/³RÕ?–M­BýËèlq9ÿXD9ÕuÿbÕbÏŽÞÏlª~lîz?ÈæÕmxæwûãyÖz)™‰<õÝÊM.ÚS¥T×Êé¨6Ýš@4¸ê)Yÿøe4y:™Ö¿_ŒÎÏ›Y36Цª?&×ó¨¶ùãz0®/fÍ`.üQX[f³é—ÙèârQäTŸ§Ó™T0Ò’ëõ°Á\./ÛíO³Á°‘ËÒj¹ÐžŸ³ß÷àóÏï~~ûðyýÒ¢' Ç¨nôø¼Or+ôðð‰N<mÍ®!Œ~hC@ÞáôóçÁ¾N><ýæé+èäÍ¡Gé¤ubºu¢õ–K»V ËG.LùI\7fé6¾ÛG Áçºéèl¼Æ÷øQ›+|k¤í]¬~ÛÇ,iÕʉ1bä)wÅèiJy€˜ä”»“{|ƒÃëV’`|™uhib,‚Ä/¬MdžÂÁ·5âðúGÐz=±õ‹¥XÞ·NºüË}V×eš²YÑŠM…ˆR9eß^çë|Õ‚ÊY]£ üËÏ2ìaÍ>4Ö€ƒóóú|FcTè€âzAÿG;׃áõ¢)¬«ÿ¸ž.š³OãÖimn/,YߦwÙÕÃÑlxýù|ÜüY]Íäl0¿ÜÇóÏÏ^ÿöôé×o¿÷ŽøÒnåÔÛ˜vݘ¶aƒi66~K‹ê8¢ÌMûî—÷¯^HŠQÈæCé|·t&m{œÚ/Ü+ËX‘c'LInH6ÝÀ%¢ö ²ßØ~ö ÂÅkÅ÷sJïŒÜ |ßIµô0­èb<ÇXø´/È€ ËÄ×lÜ^ê2á¡Q Ý.×óý›g/ž3>û ÍÌâ;Æ"§Ù¶£YÛ1';òÍ¿­_ÑË»>eŸÏ.o‰9Ë»‘)È›E%V§D«9Ý)ðU*8O>Ž! d²L#&’Eý~Ù‹ÑNþ|u¢ð7ÅçïvjÙ¶á—jUÄWnø¢“[ÝÉV„å_ùD½ôàQÏ äíF±ƒàôô§~øÌ¼dtÚMn·wA“oêòþ;§—¯_ýôÃ[ NG*l´êÝqù˜†vÔ q^GqöxøµÊìëâ|•Ù¥8ãA÷x4ŽEÂi“@/èö²œ96.ßèãÛzŠÛ^|#RT(ÛSxmùȹá~r¨K¶ùðm0¾Â‹€¶ Lûà¥ÌpÖŒƒåóuaB=»œ®Ã[ª±MÏ6QîÐ]‹ endstream endobj 1534 0 obj <>stream xœ]=nÃ0 FwB7°üW#€Á%]24(Ú^@‘©@CdAq†Ü¾™¤C‡GàI"D~Íþð~Èi³Íg]Ã7o6¦¼T¾®·Øžøœ²i;»¤°=Mk¸øbšý‡/?÷Â8>üè/Ü|µc?èYûè ëÂ×âWŸÏlfçhŽ‘ çåß>ÓŽS|>}kIqÚ“íEGR £èD tÝ‘݉zR ^4 ¢L ”E#)P :O˜XpÚ‘íDR ƒnõ_”¬^ÑØp«•ó¦j`SÊü—yY‹tY`~±wÐ endstream endobj 1535 0 obj <>stream xœ]”=nÛ@„{‚7©}?1 lc7.I.@QKC…)‚–‹Ü>3£(EŠG`D‘o¾àîŸ__^—Ë­Ûß®ÓÏvëæËrÞÚÇõs›Zwjo—e7ºóeºýMºNïãºÛ?×_¿×Öám¾çoã{Ûÿ¼¸~îOM×sûXÇ©mãòÖvǾ¯Çy®»¶œÿ»yâ4?þ:UÍ|ꇊx®Äâ!ë}úá‰ñKÕô=®ˆOUƒ¨»x qbÄk8ˆgÆV5ˆq®D=4æô=®ˆCÕ ²U9T "[«DcôªAtƨÄ`D}b2¢~B!BAý"„B„2V âˆh¨`ªa¬a¨`ªa¬a¥j #™Z[™Z[™Z[™Z[™Z[™Z[™Z™ZªñÄå&íFíå&íFíå&íFíå&íFíå.íNí8 Ðçt:à\€N@œ Ð è€s:õ]N„€ÅÉ ÉÀ’Тà¢À’Тà¢À’Тà¢À’Тà¢À’ТࢀÅɠɀÅÉ É@…PP X ™ š X ™ š X ™ š X ™ š X ™ š X ™ šLXL™LšL°¦x“¼ Öo’7ÁšâMò&XS¼IÞkŠ7É›`Mñ&y¬)Þ$o‚5Å›äM°¦x“¼ 8¾ß¢ãàñÝódà!ó8SºésÛÚrÓI¤“†çËeiÿ«õºò©³ûÁë* endstream endobj 1537 0 obj <>stream xœ]’Anƒ@ E÷œ‚00N¤È›d“E«ªí`0‹"dÑÛ÷û'颋oéÁŒ¬7vq<ŸÎã°æÅÇ2¥/[ó~»ÅnÓ}I–·vƬ¬ònHë“XÓµ™³âøÖÌß?³å8`ýƒß›«Ÿe½~+·ÒÔÙmn’-Íx±ì‚ú^3»¿*yÜhûçÑ*)*Д°eB@î•î±T&TàFàÆq« pëX+¬£2Àèˆ&‘¢7Š;e€;GôŒìÙ·QØ8¶Ê[GØDE7Š2ÀÎr‘‚Ñc¯ ïu<œ'T`¥ °r„œPP\P 'È ÅrBAqAœPP\P 'È Q}l¯ùø}^³ÏÓ}Yl\¹1Ü߃a´¿¥š§ÙoåHö Ýz¨¥ endstream endobj 1538 0 obj <>stream xœ];à D{NÁ øD‘RX4Nã"Q”äxY, ¸ÈíØN‘bVv½eýp¼Ë”=R€fj7 —°&@:âä<’ywm¬#aýMÇ÷'"-´›¿ëÙSœO—ö&¶ƒKÔ€Iû Iǹê¬U½ù[É­0Ú=yª‰ó2‹•ª©XÙêG°þT¡ kJès#od•ÇyüC¬-ZD¾¹‡Vc endstream endobj 1539 0 obj <>stream xœ]Ô=nÛPà^§à DiÿdÀxݸH$¹E=*L ²\äö™Ù)R E`?,°ë§—ç—åtÖ?®çùW¿ ÇÓr¸ö÷óÇuîþ¿ž–Õf;Nóí³é9¿M—ÕúéÛtùýçÒü¡ïýûôÖ×?7aúmsÿj>úûešûuZ^ûêqÛãñØV}9ü÷jW÷/öÇÏ¿n7MG>stream xœ]‘1nÃ0 EwB7°äØ&\’%C‹¢íl‰ ݨùô}çõ›ß·Âé^¦@uÊW2£s8¦„†rü÷Ëþ1§çÑÁ£âOÖÖVô€ ëA´C…µíQaíEV=¢ÂzQaE*¬A4¢ÂE VM¨°ò­Fàë Îñdå¼ ™A2çÍ ’8/hfÌ0 Â:hA¯&¤+©ýÕ² Z)oú6Ú½4¾dú{¾²Ù²Œùâ ‡× endstream endobj 1542 0 obj <>stream xœ]O»ƒ0 Üóþƒðh7ÄB†¢ªíÇAp¢†þ}I€ÎÒùîä³ìú[Ï6‚|‡/Š`,ë@‹[Œ4YeÚb>stream xœ]O1ƒ0 Üó ÿ Q‰±Ð…¡UÕö!qPœ(„¡¿/ ¡C‡³t¾;ù̇ñ:’ÀÁ©F0–tÀÕmA!L8[bµmU,,OµHÏøp“þýñ»ÍÁïrAþ¬/M“wõ‘RNãê¥Â iFÖUUßÓ3$ý'•Àdгmû Q ‘ý§’¢©ÅyÔRÌUs•TÀþ¾ñΧì`_qŠSr endstream endobj 1546 0 obj <>stream xœ]”½nÛ@„{>ß@¤noׄkìÆE‚ É ðçh°0EÐr‘·ÏÌØJ‘b Œ$.çû Þééåùe[oíéÇq~Õ[»¬Û|Ô÷ëÇ1Õv¬¯ëÖôçv^§ÛWÒuzöæôômØÿÙk‹Ôå3ÞêégŸÍõYÿy×tëû>Lõ¶×Ú\º®\–¥4u›ÿûÊ¿î—ûOÇ¢YFÜ„8 bÏ8 âñœ‹¦ëpEÄ7Ä™± be\ŠU. 8]—ø Ô "”ÎEƒÈ¥T4ˆ‰ÑŠÑQ!©FbäEƒèŒQ4ˆÁøP4ˆŒEƒøˆh¨`ªa¬a¨`ªa¬a¨`ªa¬a¨`ªa¬a¨`ªa¬a¨`ªa¬a¨`ªa¬a¨`ªa¬a¨`ªaªåĉRMbb RMbb RMbb3¤f‰Í›Q? !!£~B&BFý,„L„ŒúY™.NŽ5®UÎUŽ5®UÎUŽ5®UÎUŽ5®U®U0á²á´á0á²á´á0á²á´á0á²á´áCÑ Œø{rGFxr¹rºrxr¹rºrxr¹rºrxr¹rº x ¹ º °†xƒ¼Öo7Àâ òXC¼AÞkˆ7È` ñy¬!Þ o€5Ää °†xƒ¼Ö/®|iïo'ß_÷7¿>Ž£n7:x ¬[ýw¤ì×wµ˜æ/ã/H endstream endobj 1548 0 obj <>stream xœ]“1nÛ@D{‚7)îηa»q‘ HrŠ\,L´\äö™Ù)R 'íçásO/Ï/ërkŽ?öëø«ÞšyY§½¾_?ö±6—úº¬‡îÔLËxû$?Ç·a;Ÿ¾ Ûï?[mx Îwþ>¼ÕãÏ.§ÿÖݧÆëTß·a¬û°¾ÖùmËyžË¡®Ó¥|Ÿ¸ÌŸGOÅi[>‰Å!> ‡âáXâ(¬Å!Vá\"ß}îYBi[>‰]qˆðTâIØ‡Ø SqˆI˜‹CÌB‡a‡BÚô6êeÔÓ¦·Q/£þRâE8‡8ß™üÞ¤÷&Î%Ï&Í&Ê% & fÊe f fÖÏVÈRÈ<˜}8ë0¨ëCú :¬éƒsð,4 V€k@5@uXÒÕa}HT‡õ!}PÖ‡ôÁú°¤nÞ ´APÖ‡ôÁe … Ö‡ … kØ7ä¬V)ë‡B Áúa…B°~X!¤Ü@x ¡-…[…Z…[ñ©øëkÕ÷¬«ñušñcßëzóýñýЭXÖúïŠm×MS sø ÖãZ endstream endobj 1549 0 obj <>stream xœ]Aƒ D÷œ‚ˆhµM »qѦi{„a!ÄEo_@í¢‹!y0ó™_ôÃu0:àâá­xAÀJéa±«€G˜´A%ÅR‹°S>ÅÌ*úwï  6¾óŠgyª/ù®ÜRÂJX๙u„°N)†ÀÈ¿§z ŒjwVÑ™DIEYDʲ(%çˆMòiÇ„-ËŠ(óðcLú'U>b±z&ä½rïÔVø­î¬K)…¾Å] endstream endobj 1551 0 obj <>stream xœ]=ƒ …{NÁ ÿbáИÆ"™L’ ,…È ¹}Ð)3ß¾ÝÙ}dýp¬Ùhöð‹|ÁFµ±Êúì^a2–°‚*#·ƒâ+gáHÖß„{Plø.fÈž¬®Y¬±4%«¼°.Ïy§5'`ÕŸÕ¤Q%véFŽÈx”nuƒX¡S%WD§Jn°àQèÊ€%B÷WŸKÂ!Ðy?•»÷`·˜:¦ YŒ…ßǸŅ)Š"_2ŒeÄ endstream endobj 1553 0 obj <>stream xœ]’Anƒ@ E÷œ‚d€`§ò&ÝdѪj{†ˆE²èíûý“tÑÅ·ô`Œü×Ó4nùîcãWÚòaœú5]çÛSÞ¥ó8eE™÷cÜÄ/í’íŽoíòý³¤Òpç÷ö’vŸE]W|VÜ»âܧëÒÆ´¶Ó9eMÖ ƒeiêÿ½ªÂ½£GËhL¨ÀÞ`&ÇÁ ¾Þì_Œ 5kê½1! fÆ„€ ,–Ž•1ÀÊ}Â^aom °vc€â¨ÆÕñ` ðàˆ‰„S‰O%1ÀήB_q_«ÐWÜWà*ô÷¸ }Å}¿Õ*rJAuA…œRP]P!§TTÈ)ÕrJAuA…œRP]P!§TTÈ)ÕrJAT¿ãçeúuûæ<%·uMÓÆõâúøÒŒSúÛÀe^¼+G²_ :²N endstream endobj 1554 0 obj <>stream xœ]=Â0 F÷œ"7è» /ea!à!uª ¤Qhní¶ ÏÒKbÅŸ³þt<?ëìš&{ÇY;†„ïiIõGTQêÁÛy3©öe¢Êú³‰ODMЭ~1/ÌnEÓÔrV¬]vðÅdˆêçpp†áïª[žn{Y ä9UÒÒ’µ´b­A ­YHÖÒ–µ´“Iö?y(ηÇÑvI Ã,KÍüí)N‘»4¡¾ýåe¶ endstream endobj 1555 0 obj <>stream xœ]1à EwNÁ mɱ¤K†VUÛ 0C2ôö'éÐá[z¶¿õÍúá:x—){¤ _©uÞ$Xš4Ð&çIs¢Æé¼V=«HXSñý‰@ËØïjöl„Øk6—–¨4$å' ç²³VðæotÞ £Ý7Û‹Dq^jA!QEÅV¢ ¶xíðÕÃ5ã‰ê5%ðÁ 5žóðû5†X]´ˆ|JoY£ endstream endobj 1556 0 obj <>stream xœ]=ƒ …{NÁ ü‰JãИÆ"™L’ .…À ¹}–US¤x;|>stream xœ]’1NÃ@E{ŸÂ7HlïÎ)Ú&4 \ÀY¯‘‹8–I nÏÿ?‚â[zÙÍ>stream xœ]‘1nÃ0 EwŸB7°d'TZ’%C‹¢í‰h€{`‘ÄZT   ì‚Ø n‚¸„µWs/æ> 0 R‰ŠÐGÚKÒK>h€^‘NE2Å FAXIͤf =¬^Í^Ìž‚H‚Ð먲¯×bdur…×ÒM|ÔÊyÑSé)äSæ¿k–¹H—Aš_]ŠF endstream endobj 1560 0 obj <>stream xœ]1Ž1 Eûœ"7˜ÌˆI„4r ŮЂÇA)ÈDa(¸ýÚ¶Øâé%±üó»Ýa(yµÝ±-x¢Õ¦\æF÷åÑì…®¹˜~°sÆõMêx‹Õt»¯XÏÏJ–Pzñw¼Q÷ÓÞéYÿšÂe¦{H-–+™É9˜RCeþwÅËtâ’ÞO•sìfÚð¤È9v3ùTα3 bGP1Ž‚TŒ^0€Š1nAŸDP1¢ GðÃKŒÀ‚Æ#ðΠ{ÙåWŸøòAéêSÅGkTV-T “šr¡¿ÎëReʲÌ/Yƒw' endstream endobj 1561 0 obj <>stream xœ]“±nã0D{}…þÀ’¹ÜMƒMÒ¤È!ÈÝȨˆ,(N‘¿¿™qrÅC`liö )žŸÖåÚ^öËø»^ÛyY§½~\>÷±¶çú¶¬Ml§e¼~;­ãû°5‡‡çaûóµÕÔùæ ïõðÚgïõ[{k¼Lõcƺë[mN]WNó\šºNÿýe~{ã<?Ú§"uÝÙ ì]‘`ï`^¤®Ã ; v¤Š;Á&L¥º+l_$ØžöX$Ø#-f&ÍÅ kE‚%FÊE‚Í´@HÂHÄHL‚L„4 1 22 1 22 1 22¤š’ɆTS²1Ùî‹{O‹®¦¾Æ¾†®¦¾Æ¾V‹[iç"ÁbëO;‘µ™»‘A”E•I•A”E•I•Q=«~fý À,ÈLHG9WAgAGŒ+ÊåˆqE9£1®(g”#Æ劊"Á-ººú:û:ººú:û:ººú:û:ººú:û:ººú:ûˆBTAªQˆ*H Q©D!ª UàB§<…ÀÙ†Î7x¾À$V~Ó?/?oÞ”Ÿ‹ÑŽŸû^׫®“® /ɲÖ7n»l|«…š¿1Bãê endstream endobj 1491 0 obj <>stream xœu“oleÇïÖ­=ÆV•XÚã 2ŠÉ ‘áÿðGc`0LénméŸ]×zeÒÒ®»¶¿îºk»nƒÕv,ÈF—-РDŒ¾Ð`|%Æÿ¼1¾ÐÄwϵO!ÞzLHŒ/.÷»ß}ŸçûùÝ}’¨¯#H’Ô´8|t›q±Ü ­!¥µuÒ:`¡Ò^5@“ šêgÖ6XV ïŸCŸ=ƒfž%I’íÎOÍ߸{¯íáÜ6‹ÕCo2o¦·µ¶nßB¿`4¶Ò»œŒÛf6¹è&•qš<òƒƒ>ÌšmŒ‡£7í°z<=¯lÝêóùZLÎÞÖmyuóÚgóXéw™^Æíeºè½¬ËC49ZlQní¬³§Ïøélãv™ÜnÖWc°¸“ÜgN÷™¦··V˜›Ãæ²ÔÝ–u;˜n¥¨µ¿^lÑt¨û”…X¯{ž9iî"ˆmÄq¢“8A|BÆI ä)Ir˜h–?QO¤É äAò·:u£î¾j·Ê«šVýTß,Eµå}G èìRÃ]²¼öWú»¼S‡×ýúÉãVsÔ1*’Œ‰.ާõ…qA?/]žC+D÷½Ù혉ôC âTTàS&/eõwöòÏ +Ô5Ò¢eÇ7¶µc¿1xãA`9.B„a ½…‚¨µ"5^sSz­ÅBAêž’ly9¾S¡yé¡J—¾Edj8‘L‚HeÃÜh<²+®Çj  ìæSVë‹Æy"pN„‘ø=~Á’í‚2š…Â0}¹æ¼¼T6 ÙY˜0ìOvÏ~ÍÀÌS¨[7Ãö¢·àaÓ.Îß„¯(-š‘‘*‡ežå%z±|B—ƒœÏ§ô’†.Ÿ‡\n ÝZlÝ—éÀ|z&4*˜…ÌŸܺŸÐ#ýK³sÓW‡&ÊhPƒz3yl>x+šU˜dôëP{box¿üS£žH å’ú‹}ý j¸9š† ©ˆK|0›o3hGt4.ø  Ëì¿þ†!~j§žQsŠKÎ £àu%ÔRæò ÐËèGݸ(¦ #¼x&U]@c«>Jñò>stream xœO[HSq>§ÍyÔµe`hÚñTŠâ¥’XF` EhEyaèAÍÝœgÎKÛÔéæÎïlÓÔéÙæm†—M¨Pˆ^"‚@ðE=Tõ õýÏ:©/ß÷ðÝpLz Ãq\¦ÖhªËŽÙ!rN $ Öÿ¹–¨K¹äÒµÄݳH›Ž•¨î &ÁqC÷°Úhê3w´µ3T^K>UªRÝ(¤®–”¨¨ =mîhÑ(–i§õZæHè¨cKÍôQy·ÚÆt³¸ØjµiõÝEFsÛíüBÊÚÁ´SènÚÜC·R•FCÝ×êiêd[Ñ ªz“…¡Í”ÆØJ› †IjjË1ì:V†>ù‚I±]<Œï cŠÄËVâÜKùvЯIâ}¢*ƒƒÙ'ËÚ¤Ãaxì°›cµ/.!–ŠÙ".JÕoö{rcŸûÝ}sîËr/ß:¢¼ X̾#æ‘’÷}<Éù9|DÐ#vÛë"Å&ð¸íÀfy8Gh‚ãfyrff5˜yWûŶ*G™H‰Röê>¨rí¾ÂÆ_ì÷é#Ö=+Düg)¿~ïÓ<6%mAŸïü8©HìÁ–ði?H|”qá0c2 ÞW@ü–!)¯ÓŒ@ïHS.;œ44á Î{§æ¼ä3Tå/ø³ÂÐOþ{(ëœ=Õâ½LÖã²KŒúÃ!η>stream xœµyx×¶õaÍа2Á2¢w5ôJè½cãnÜ›p·å"«lIî½ÈÂrA6¶±1ÅL'pC½›3æøÞ÷Ÿ‘m’û^îÍ}÷{?|Ÿ>«œ™³÷^{íµÎˆ¨®](‘H$Y°rÝÄ Â_Ãùþ"~@þ]±6¼V¶&Ú@O1ôìºoÀ˜3v¼ST÷ÚÔ›‹D¡‰ ƒ"Cvyy‡ é6jàÄ3¦8i„çù{„ìrs ¸Ò%ÌÛÃß%Œ¼ñ¸>Ðm—GXäÀ‘³½Ã‚f¾÷^xxøxÿÐñ!^Œ;0|W˜÷Àu¡!»=Ü. ¸ÊÅßc usã­¯ ýƒäa!Wº{„Pµy^À–ù[m[üQÈ¢ÐÅaKäKw/ wYáº"Òme”û*Õžk¼¼×íZï³Áw£ß&ÿÍczŽíµc\ôø÷&Lœ4yÊÔÁïO4}F†I‡;Íá8rÔö¶5˜ZMÍ †Pk¨™ÔPj-5‹F­£†Së©Ôj$µ‘Em¢FS›©1Ôj>5–ÚJ- ÆQÛ¨…Ôxj;õõµˆš@-¦&RK¨¥Ôdj5…ZNM¥VPïS+©iÔ*j:Õ“ò§zQÔ”-H½Eõ¦úPv””z›b©w¨pª/eOu¡¨~T:ÕŸ@I¨XЦâ(Žb¨]T7ª;5[Ô]ÔƒÚB Iu¥t¢~¢g]¼»|&Þ&¾ÑuW×Ó6clj%C$Ù´„nb63ÅÝæw+ëökwÿî—zhzŽìy¿—Ñv”mâ[o)z÷ïÖ§K}Þn¹]“tðÛ½ÞÎdײÕ︿s¾ï¬¾÷ì·Ùç:¼åp³_N¿‡ý¡ÿ—‚¤082àÆ»½ßÕ½{ƒ[Á}/[,ã& ê3h÷ ƒ— ~0dÀuCöj6,gØÍáÆ×è>Â}DâÈ%£ñjÛÖD° ­~©QTÝ:OÌn]Á¦äi2¢!ÔÊ”XìÖö­}ä·˜ZÆÞ£;¨¯ ´hªµÇz±Ð[CÌå]¶N/;‚úÚ œÀãt*½Tþë!ˆó£ë _À~8G´MaI$½b35 6ñÙ,²Á·l°\bË·€…·i’›ìP—ËÈãr_éaÔ=gq)í¤€%äBµºãú ('÷Þ×~ï% 8,C+蟯œ¾x!gã:ÇþÓßn†ÐîeÐz‚ů.¶ÈǸæƒãÎÀ•Œôæ/4¤°ñ£¥‡¿ÈLÞ&³f¥Ud•µ®óÃùwXô.ÚaªÞWýXç`¡ÝµŽšpƒíàf W÷£µ&9„A‚F“¬À<dzh£Æ’ ©k*:¨c,´·z>x€¬Ôyê…U%ô)(I. D+°ÅOÇ)±áþ;†ƒI™®I_õp êÔÖÝïÐEU@1dR3rÐ`äi&á$½Ê µÄË£v µ©5\%‰nz“èôî´Ýƶu ©ñ%j°Ø!Ù}töùü}¥< á»°HK×è3š9Ô[ò¼öýMË·MÃbÙ7‰ìó’Ëáóè½{ø®­‹_™ä¦^á%k+£¥¿xip¡~ü rxòø¯f\Çâ\ÙJ|›Å}$ŽšŒ*GkèšÆ/Y¸yÆP™-¯V˜ù &Qå}´÷¾˜÷E>,z{Ä+Ü ÷E¸fƒº¡^?~¤ÆŽìNp. :r>:h€“e‡*Ž4—6Â!8(/ßY¾Ö’TzÁF¹³ÜÉ9`+0o*†<ó¿òØúOÎ¥VÉ»ŸÆMDò¾V¬³Vë@aD¸B§RÊð \Š—¢“³Ai¥æÔÜ…ö"…rØ¡s±ª˜þ2…ÁÈk7ÓñKê WÈÞàJG™ÂèÔÙ 2´‘¶mõ”[ZÇYìN¿ä}kCÌ}¥ÏN£oYì†ÞÇÑ*4í{$CL6dÄ)@™ å’ð3°˜UxË>t\&ýµ Íû>A¢Çðp#§u>0…`(•¡º2*Ä'q[çyÖm96¤Ïðj<OÆ;Iº[ð& kâšBÌv¯.£Âû}¥Ïч|Oö‡ 8¿’¡t–Iï¶yw6Ì>]‹¾*ฦö÷Í5›Î¢Ó¢›6Þõøù{Ä"éèpW™ôùpq—3\À¢PºêøÑªãÀ\ýd2¶Á½>š6ÏÍÃx H[ :02¶<‚}üß-¢Ëf~¥YÌjÀfä¯2˜B%„sm$ ,·1K2ÍÞ»h:¹ÙDI›CNV€’¢Ò ”ã]$EÈh"I²ˆqx%0xºÄ¶5µ£ìÜC^úB\Û:—õ+£;±Ú‰Ô.4qh$ZƒÖáþh"ž+Ãoÿm k+¿¿½^H>…Ëò㠮ɚ s‹#V{m Z·v8_Ö‘ÓÑæp£Ý¾û¨0Ô]¾÷',^ü¯sÈŸ‘Ól¤Ï+ã\/Ìê™Á£ñ;¸Ïóáˆ!ø4U1äÇâA4øFÊCãb}ƒ™¿ê1¢Q/î_»Ó4eá¤Ù¤‹Ï[PÍ>ðm3£1fƒYŒÜb;ã¼&iB9$E!x|Ø|ü!I‘CGCŸÐÏs|ß—™QqˆdªÂo47%KÚ[Ÿ• qP±¡Ë³$ÉmÚÎwö»-ß¿“–_]zõ°¯ô&š…¾bQËYÙRzø7’nÐ5ë+¡š¡ÑÚ»éyšœ:Oèàñ =hõœZÁL`iŒ©Øœ[]íWµ““Þœ^Kbw’FHÂl¶ #ían0£!2·[g³mGÞÐPé›&¬5Ü"-x¾éhBz,äÕÊö!ý]vgÀÓ|ÆpSQzGÀ=%h4˜×bŽlËs ÿ~‰]9äciû¸¯ô1rG›X“ê^4,`¶x»Í™æuæ«N§MM&’#eØžŽ‚äœ4®¤„ÓëA_\rÈå°¶”`—>ò—/OøïÏ•ùT»gºd’ù²>gIÞÙ~µå¢.iýôœ.1‹P“i%²­ ¢ø8N­JHT©=*]!†TÏÖcÉzïÂÀ ¹Lú¸:¸Rùe,ÉYnI4¢ ?ÌÊ/ï?ö®í+áŸ\`óän9ÀdAf ͧRÓ>#tæ©Ý ñ'Óê}ð²N«jú‰Aá)[NK›qW,M \†·Õ¢ã„q¶Öœÿõ›‰xÄ¿$ßê'G‚^…ßÇ“° vASðd´N&¹ wÊ÷#½b¯0£FhAÓ¢Ÿ/£~¥óø¡,bÁCЊ‰v†ÿÀQ*Fþ®¢ñ[Ïâë®T^¹È Ù@áê¹¾)âڅɧ´ÏbÅAËc1ßÊÿÄÖésnre‰·zð!x[£êhz‡[Pý'¿ú~®‘©¹®C­?¡ôVÀ \ðg¿"T«0É›Hƒ¼Q-|ÿÛìD ͱ±Ð%e%íG¼i¼ˆž²}ñüiªæ}ÕñÍ-PO’áÑô˜€ÆrÒˆÓp¨²êSÆý­ƒß<#¹¿!ç6W.D6›Äå³;"+§o:"S+fsÁžo“7ÀíŽ=Ó³ÕÖ=—)Jù~Q +æ§ ‡lÖž¢ƒ—…¦ ІA(ìÐGµOÊzmND@¢F¥R Ùö¸+ªVæàêÊ ˜€Ë_»^Aà¦ó·ÎJú¤*óüÐPŒìÓcõ)y©Y©ÙÙrÓYÔ•ßm@]Ѩ‡bt dßÛº~“r1œõâZr÷–×å»bç]Yýø§«_\Ï‘é2Éíö1üú@>\ wtÖxhÉtž ÖÀëèï!ΛУg{XÅ‚Šý/ô˜->fɫ’“°äNúˆö°ê´¦Hò^ 𔏠8Ë~$ªVåjPÑFríM(øC@gTõP¨ÉŽKSæøgDLÅ)öc‘1%—l,µsE{T°IçÕ¾âäªs}‘þÕ>-Ö$äAŸž–ÿ#ª³ÿ ×§*„òÀОµÂeA¾¦ò'Ÿ1Ù5ÝÜþM»|•ÿèá 6Õ­Â¥˜ÒOòïÊN‡¬§×†(>ªÃir¤‰äkðªwoØZ¸˜‹—ú£Ê+‹å¹)5;t²ŠÚ£9D=ã>IæIKžØ¢þH½ÂÿÃ]!›Á™™ù<äGnr Ž4–43Éh:;‚»`—Ó6×Úc§šî£é¤‹!?”ŸÆ¢%h^fæ‰ãw5¬ö%ð‚u°«S §‡A"D'$$%ãK¸Å]ù?hÈ4bˆ#XŠKÓ³â ÞÁßHAö þ¢öwÈ^z#ìNõ?$ŒlatYD¹¼NŒQ<»wÿþ£eå–ºÍ,‚5þÚ`RäMú¸vX”j2ãˆë‰NˆKQ®œc?çÇDA¦;@AA–ѺB»T »ÁQÔ^ä/@§m^ýfíÇáÛ×®Ñìä{¹Þ¢+‡*hÒ”µë¹!9 ÀTUóÉ—7FØg*ò¢ øc‚ݾWwZo"²¡A»·3€H}Xc%‚é!&äÙÔ)ãbˆŒëÅ¢/:tœ•PÚž™i.3¿¢™‘ +hÚz­§Xõ–fž;£#‰X+d‘+ % Ë)l8}*³ C]p™G¹«a¸‚§fu€Ón?Ÿà^e¡õD¿ ˜ÌÂÅnFžkç⯄Œr؉bX,‘ï îÚu¿—Þùßr5‰—z¹¤;QRÿ¤Ò|±DU.¦â¼œÐÑ1?™´mù…ãºBxÃF‘ਗ·×Ç¢-Œ"6.A«I‰޵öXŒLªlM*éÂòz(áÚ õ{6ú˜ÄšïF·‰ìSâb}”qò ‹–C 1kÅ–ÔL2å…aáò8§&¯cœ9SÆÙòkÈ«yZo”Þæ§±fÁ.uC,šv¯éDÖ­W-çªVúC\^Yn,Úûù܆pŸ÷0…{sÒ_ðÛ?Œ$píWzfg'€š0¨RÃŒ_ï Œ”ß4ù š*³}=²£¯VòewÅHÙ:ŠM4©Éæ<çÖQÓAà8Ôjj[XG;õåPh®ñu:)ÿÖ%-.àÕ! ™©9HÛÚË^×vEÒÙUõ†Ï­^å/Pÿû®âË:;Ï‘h“#q`Ûy{’0óo›DMfô)©v?~›•#“—‘¾JûT¢ØÓ*©G]ˆè‘Hpu[¯Dh Å!6ƒ”Ý'‚}5Q£‰¸ûngÌ ºK:'¦ƒÔ::†ï}Š]J£¿ÍÌ£üÏ¿‡8ö£êv–o®1xf±ôû‘H@öE8¼Ï\͠Ү؅&`Ñ(¢ü·;Éw .Ý|@}†ˆÃzýùªÃ¥–ý5' Q4ÅXœr¢È>#çTò3*Å(¦u›˜«ÕE}àW%)£¶@»G­ÓBÓVò'•(¢ÓRtÚT%?¶í¹}V¼N›L>d”Èø£t4¿$õÖnÓø€lÓ{·ƒú%8ÉÚæÒí˜ó/EóMvÄ''^ ±‚®+JcÓѨæ}À¼ÌÆýÝe8q7‹ª%&”þ°ñ9é>潡¸Œ`®ß/£‰a°=ŒÄ%ÙIú”D2IÃy °Üö†Õû — ŽD],/oV."êÑù¥¸Õ=eÑN<†˜Óex1‡§`W"ëÆã hZ†Æ ÉȉÃ_á¯Ù1¸ß×(å¢áŸß„†,ÄY¸¿;í=™-:k%[4åA¦I„º^zúHŒð XÄÐ_üñ!C$pñªÈ8a Ã+ª Œeõž5›>zÓ Ó³ýnã›æ!®#‰…n·AûËÑÁô=FÍ/Å(]fÑ ꉨ»/¾ù5~W†_ýîÈâOF‹±hO» |,A“aÐ6G º>d¬n_]Z±pô­B•¢€x&*/¾0»$cOQ|µ{¸³ÒÕ…s©q1È¿hÑÎ&ónY\L¤x3ÒV üò<,á«£|w‚³à‡ Èuÿùø­ÚØã[*¹M•kaáˬóMÝmÒ&Cñevø¢ã'Žì¯?d“òâ¶š %D­ïµºeÔë•ÝõW]ê+}†>âW±x àgYJBd¦Î4UëNêËÕv¦i©*­A&ý1•ßÏV‡”úɃ‚ƒLÁ–Jsi5™H-rKë„J»ÓåÁÑç7‘„\E?ñö,~Û²²Àý$œuøâä'·Ð,žî”Îé” Ìé°—h‡Õ¿%kµñÉœ÷:ÿ*דˆO›a:Œå§æ@—¹@O>žj=4h—(¸Iôê’øÕ›F©!ÜU{¡QÛ¨ù­Q^ÒOÝÔ´""¢Täw•ºsúR¢«´Uí¿ó9xœÀR´Ø^«OI'º+õÊùìÌ Ç›ô¥‚ö PÇA QÙ+õ±íƒ£D›­€8'*{¶µçÃþ±“ bú¶ ¶V‹ Ø¢Y*Ê{Ñxb0¹¢Ÿ‹×þñ„ÕÏý¿| ñÅš±æå8½yzq÷ÍÓ‹£í¥ÛžÀâסâ׃H‹ÏÌn4µ¿ÆOKl-,ïLà_´Fâð•ê$’ÀÑm®öx §MÕ¤3¼÷,”[¸ØŠŽz×ö5g r½LÙcYÛ<<•Wh Déþéï¯CjJ®'rlkµ7$ò€Ô'#5ÍàÓìÑ̶ôöÚ?ÔÉôRt¸1Šx›F1?E ‚'¿ŒÆˆ•ájT#ɇ’ðpˆˆåp ®¡c# <œTU†È;I,DP’Ïuåq%{öî=·¡iÞxÜc qXòÊæonÒ¤aðÆÒݨeP©ÝCÔMn´Ÿ³Ž½zÀÍ;2(8¸(¨®07=3›Óëmt:mìòÀUÎŽ2¥’ìJÅ$§©ÒroßFô›ˆ‘ʨ°ÆëE¢}ÎKI´¶ þï´—ÒFzWZJï›ïJH’ŒEë‡ÈþÝ(—…Å>$5Ïn¹–U‰•\¢*:‚!23¦H)ÌGlh|=¶Q„z4ŠÑäÖD¿ëöüïcG»¡w%¶è!Z}V”ƒŠÅ¨ ­fÏââµD«Q”À«Ä¼ e²¦6•\ȼ=|%FN°ÿsÑf(}½Þ(:Í÷óËZÙ´<§z&'1K«JHPsø¯ŸŸGæ™ÆA‘•˜“ŸšmÊM­ö&QÃ}”y_ÌïDWY¸“rÇûÚŽïfºÀj˜ì:ÞwQʘ¦N<0÷àÌ«áGá$Ü(=ômõå´[p›Á^ø*ëkÌ‘ß)ÎÃS8áRæÉÔãz–™X†K‘%#³×Ã\XAèv±byÌØuþNÂ5)\½åQ„‚®‰QsëÛlèø•Ë'ƒ/0~´‘\ª¥œi+ ?‘óäì#¢’áQ‡œõ¥'ªsêÑ 7Ñ/¿üh±;ö rþ¦ÝHHo²¯^¢ ˆ;^8 ÉÄ;ØÛÌ{oÒúc`(ªÍ=PYšÛóÙÉú³À|spæŒY[goX)ðBpv¡Ò_xZR‰æ[—âŸìœ“œ´”L.aÿòÊ+Äò݃ºÿø©Ù® u}ÿ'4ëéÜ—}¥˜BÑ/콊³_ Ý›|zÌð¹«çú˜"ª,FSÕ1Gˆá,G/åÕsà”|b¼fm°³Ìû.uˆ6IªI†$m²i›B‘EÜ!ɽúÅ£ð€EÎ;?,:ç-«M±˜`?Sd õužðl)!Ûo¾ù‰#·†{+n )mO0êgá]H†›o’ £ìAÎãv  …(¿&8Ñ¡:<Ç£–üv’ûôèDµpþÏ·í"L‹Ìéj RóÝl¬¡£.ߣ&Ô÷¾Ý±¶[PÄcbøh‹zÌx©í;£½½8´™6*k’«‰Lzë‹oòÒÕiÉZ ¨Sdá‰Û—€ìÈp,M2hH¦™HŠ–á£t$$ågè é©\NaýÉ»Ðæ™‘…žzwØÊH_“Ñ»:Ô%ÔÝ3x™ëND36&Ò¯¦È\Veö‰õNÞ1õòhÔU&ý1?}‡¤@x™•l^ÙÕ žrÓ5᥯ôïhÿ=zxg'åó³Ó‰˜Ôët:`ô«òM^°b¥,>žìPm¥œû7Pwmzç?YfÍ?xÏýo `ž ÷§Ëžô•¶!{t—-£‰"ï]w¼¬I¹ËÄŸ“_YŒ©poVÃyç§ã·qÌâ`™ô56"fá3$þö¯dtÒwXÌIÛƒç–ðí ꯳+Àÿ¼² ²î@1s«úÅ“Â#°ÒÂ{¢à·ÃÖ(/ÿÕ;ˆò´‚¸”ÿì¦è´ùÛ§b>ˆÅf §¼¥ VI°-hòT%LˆÄ»Mi(̺—›‘~ òH=Ý$ŠèÙX$÷™ˆûû` #t:rgsÇi8e8•y2uOþÃCŸZM«»¥|ŒÑîá«Å{…Þ‡<ØÞѦ&¨888(Ò‡khÛ®‹Ñ%å‚C6ÒtELžð‡DG€÷—3¨ˆdïXØ!T~(ì˜ð¤w¿ƒÝ±WµŠ˜O>kºrõâæëÜ·¯öæL1ì—õG[àótÒ™ #fΩwjrärâëCÌļ\0uýÈ~ƒ~Zò ²ùöþ¯uŠÃM\DitöòFf„ ‹ÞšSÑì«æ}¸yÆÔŸÞ?[}ñ«æöÔ=}°‡*rÙSäþDh1ºÂúÒ8nÈŽµQõû‚¸C™UE–Ðy´¢û’“®_!–XÖÈ—Ô™0ýù¤ Û"vr®Na.ð!ƒû|= u夿~šöœepïØhØ~"ëáÌÛ\Z_ql^-ï5»Šœr}SWÀfú®Ñ“¹N7Ö!Bÿw>ÌZ%Ø1exÛÿ™}|묈uŒ£…•¤º¤©~üãÕÒgmb–(ú9Ëç%'ýÖ_ÞAL•æÚÆÎVJÓƒNÇeèrô™‚B]oBØ&d0=2‰NŠÖ™ÑLáUÜ:̹ô,½Ò­s.!%9YÉm]¼$h>|+ÍZ"ŠvI2wá4Ü ÷úræõ«g£®ùм»Eö™ç±”:¸Ç-é©:­}ÛÆ¿MLŒƒao0¦6/Ø,ãW·øÃ/Hq³ˆ^óhá»§€>­!W´JÌ÷híÉfedæ@.SY£P(Uî‰ÇEÚgU¾¿šDM÷÷_@ýÍè|¥¸uêŪg/÷q‚°ù¸ïþ#'??r»áRiícÁ(xj6j•DÀLë<©?bŽ!)ѪeF;-Þ¹)®€Øšw}òüç7H?‰¾¿på¼ ƒ\ÒÔNâ&ŒvÚ¦Ü[ñÃWçÖÔs—WŸ‹þ˜dèÂýC¦Í`ƒî¨Ï‚…yÐX]{†h–ΜÌíœÅš ü®, ¬Û\ï¹|ÝÊä@`¦‡=?yw_ÝÉ+÷Ö—Þm‘Qi#ƒ`úáÅ‘„›=¬¸Xˆ94¢ñ¢Ó­ãÄ­ ж Sú¶}'éº2þ[¼‰íÅ1²¶¿Jb:E0Aá~ØNíyQ” cén îÅÄ?ÍÉÁ½Na›óø­‡Ë²IO5dÈ~»4Š&×nBn)P¯ Èf5zkêg À(U*%‘‹%‘²ïGžÁ“{žë‰âÞØ.®=iÊTUzö“Ï‘ôwuÉEbxð{ÉÛHÞLl`G¿û¼¿û÷¢nï´Ëõ4“ˆˆuÏKωù “rÚB<#yüqóá?<;­óÞ·~³‡*… ¨_ŸÌXÌlÆÔ¿+Ց矷›õŠE6ôó{MŸ­Œ§¥£4áÂ)„RR‘¨ŽƒDˆg0Mwg«ÍzZÓa;:œÖqÿóÿÂj¹«·©’`»ÊAú€úw­Öäun1‘\X­‹q+0ãp7â»þí4xý®fi‡©yñ¨á\YmJ`ç®I …pçF§0¶r¿ 䤛$Ø5—¶t¿ÜƒëÞuš±g7SVÏž—={QÔÿžlŽœ endstream endobj 1494 0 obj <>stream xœcd`ab`ddä v 1400qä~H3ýaî¶ü‘öÓ›µ›‡¹›‡eñ÷ÏB_?ñ¿``bd”ÖrÎÏ-(-I-RðÍOI-ÊS©,H-/ÊŠ É0000ª00°‚´±øÏÄsŸLú•ýœ[Îxôôw¦ßO3¯ùñGÔ¢ÕÀ»[¯ÛäVÀšÉ“º»ë»Û»Ú»;8~§²§M Yغ“£—½{ÚŒ)ݳ9W-((.«Ì×;ô¤LnJç̾îZŽ&öîÖ®–î޲)•‹æÌ˜6_n7ûÓ©÷.u¿á˜ÊÞt×ã´ÅÌ–Þ–®îß#Ø7´í­˜’ÌÑÉÞÝÜÜÜÙÒÕÞÕÖÝÎQ8¯r¥ÜòžéK»—t?uÚc7³¹§¦£{&ÇZö3˪kÊåNüù(ú=—ýPãÁänÿîà Äð&¿-¢¿ÃØ£§ø®ì>Ö}üÜ’mÓ8ø§ýpšòÝaÛïò‰ìï¹örËq1O³çád`Ÿéö endstream endobj 1495 0 obj <>stream xœV pSu~!%< VQ£íŠïE¶ºŒ *\9êhå,”r·„¶”IÓmÚ&Í—_®æNÚ&M¤h¡@)g‘cwAAÏeÔg]WÝâë®ûJQÙYwGL2ÉLÞûýÞwü¿…%ŒÁX,gá’%¯¤|›{ˆ›<&ö0ÛHg»6ž5Ù˜Ð99i½¨q*¿­»K`±Ê*TÚ…|A•°¨p›(5÷xêSsæ¤OO5sæœÔ—Jó…E¼¼²Ô%y¢mù¥y"æGIjŸW”/ªJM{a›H$˜;c†T*}2¯´âI¾°pþãÓS¥E¢m©+ó+ò…’ü­©ü2QêÒ¼ÒüÔ[Û=yës!¿T å S—ð·æ ËDyb øe ‹Ei^%okþ¶¢¬U%Ù¥ÏOưeØTl6 [­Ár°ØZl¶ËÀ^Á^ÅžÁžÅ–`éØRì.–{€KÀN°³þ5æÏì ì·üc猽ÉY>WŒ§áýãk'Ì™™8;1#Q™x!fHŠg+#12Š¥_4_b£¤³\½\+.nR645x6ÂættÛšm÷ú¶úP}ÈÖâî3;:ú"½\ü¤)§rY.Í®Î#ëøzÈðìþ퇿èG„ß+C­Q[§'DÏçná.Ñûš[lÞ¦ý¤§«ï8>¿1û¹¬^)¡ycyh 䂨D.Ô®.÷Åg²„í„ÿõÀ¡=€·ÛÅ‚JUF@jÊ-:1ž?%ÆÉ(ëÂìøûñ ®ÍàPj(J©"ÌWy²®ÐwC ­§Ut1-¡ÓÑýôDôò±›îþN^;ú¸W:9¥«3[è‡éÔtú.À§Ð†Ð¬;š…Æ¡{É7®|}à3À~>Nà4 %å^°5€%`#’bÐÙQ”6 bùuöe:‰«áSjæiåµ ©sêmd;ôXðvë{`0ñQ§ÛðÕ‚B,ÍÞnõ“ž£¾cî½i×ÖSÌ $ôózŸ;˜±$;/ eCYÞRØ åÕiQõ2ÐÞ ÎÉÀàmpê(¹QK^–sO^ôw¾gGÙË[Ä•® …ëÖ­Ï|QÕ—Õl7Yɤø5ˆ¢#QÔÖËŠ÷ jn½¬`ÂëõÐë Š2å¯ÒSsÖÒé€Óó9%F“Ó6fás¨y,Jà\óÈ·×dziP(œ2)|&[£•8Žø˜Á”âR[Ur£N¢%$óJ峄s ©]&Ë^HAéô``V¹¾t¤Ú¢òùMÎF3Ñ„X:5 „”ჩĵn5Xj"ƒ”™%h J£Ž~p8˜¬ÜjÔ̼jä_h"cg8m`Gž[ÈÈû®(Zdýå2c$÷KNÀ !ŸdätÎ.”f²™m`MiªõI…5²r ¡z6Ó ðÇ8•òÛwüŒ³œ®Ó U… OY>X8„ØgQªwDÞ #%Sü×r²V1ò®õF]Öf³‹LŠõzô2 ²c]è;îÕ &C9_P.s©íZ¢±6X<|Ó+Œ6'Î…‹šNìú”p4×û¡?²yGÎo7ÑWòls[ˆÖw÷õöÞ訫©%Jɘ®. ñ´«Åo£ÞDýïIñs·çN½Ûô;Ö‚.ríaÏØð`µGVY¥i ƒZ™§2£j²ä«(µ±Ì*UWV”Ê«¥²"À·æø®Ž\ &û­Nf™-»VOÛDO–ý¸LÛ{ûö|¿ŒJ¬““+éi …œžðšcCpn?Ñ²é¸ø4Ü€þ+Á¾}ï‡Ñ$8€_εj~Ä UêåC1.Ï£¾oƒ°µÁ7Ęê»Ñ§8}›»—+é)j_ÏHð~úz =õ‰?f|xl kO/XvRÙQh 5u…öx‡ÀŠ:z†P¬¯\žx¹&ntDíí¤=ìê³…‚o'×·{2ˆ„ª\Õ2‘‚¯%2iãZ±T\©RóŠs/(l¿p´ié%¼sØüÍÀ‹uzJc40ÖyHÙû”ù‰/Âø}v“Ìßp•EÛWç€JAâëóZ¢P‡d~¿¬¢`í Ñ¡}{ÛˆÖìãU nhÜi4)2ºªN¡'%ËÖdΓ„w··~Al2xe[ãŸ.h®-V)øP…‹kZZz{Od6òÖò¶ç‹‰ª¾ÌetB&}wé9^“Õk#Û®žÝwðžpÕz©b­ªˆ‘£]AmŸtEXgÞCÚ›ìØ«±û¸…Ú>ˆqA³²)´³aàü¼Àjú š¤ š|öÔÓhšwí¯¾z•[­¥(µš˜7ƒU€/,>t¦Ã‡XGÞ w: Pm|Ælßb m¸EÜùøt®Élñ2‡ŠMïTHŸSSBBm¬5‚¯õ£IZCi)±’®e8å×30;-^ò¥Æ_@clJA=a{íØÇF"TÉÀ5ó±À¥vßtâÇWõdЉôìô‹ÓÎ>ƒÆÿH–ñz¯û è9N:"Ü>ôb{˜Qý»ÄùOÐó —QÌÌ ‰MºhfŽ¢?ýltè)ÃguU@•Rã‘…Ü[³›°Ô;£¶æ–É¿k÷ÈLÁîîCƒCW?aÙXñ3yó–­ÿÈÐ{ :dÞ2ßXÙ¼‚\†×´Ñ幟²PÂ…®‹lt%>–Û ñeåe2¯$ÜŽ„ :wØÆ´‚¸¡7ÿøO”꼡{À"]awØÝîl~lõX\LX¸ðƒ¼Ý«Ò6þÇAÓþatà Nµ@¤­.a°\Ádþ£Ý,´ñ"ê¸Àޝ»ûZ£Q.'Ö­Ì?úZÓRFJSèI4‡Wcáu;x»T竃ºÁ:¿¾[}Z ¿ÇçΞNsžžÒ…Ø.sÈÚD˜˜øcØ`¾ÖHUé‰zƒQOiA—¢µj]õ&“×K¸=íÝnÏÑW#Iý;&«@ú«zÅ-ä¶h•ævJlÛ*‹Ð™×Cøµï|…°#K§Ëõ"PL˜Øü·â1)>¢±¿ícÅd±/¹ö³%d¶™vBNC;´©÷ךˠªA®YCÕ%+í:—ßìl0a”5Ö§€*b˜æQh$¯Ñ‹“z†g®7+ý^³-POœDÏô¸ÐtÀ÷r:MF•tú’NnQ”@J¡ Äs?ÒiNS"LE‰ÃÆN* ¸ÃÏ„¤J*¥&S%Yd¡¬à;˜­>< ýS‰`et¼ó§t¬ùAÇî;t|ϰŠÉì:P¦d• ´v:ö·Í»|¯oiJË€._[™ÉW ikej’ÅÍð=[ÚÿM”ß;ÍÝu¬»í˜Õcr› ˆ[(·‚¨€½Š!ÏZ:R®Tu†J¹Ïh%»)§j V£¬«¦¯W&ÏŒ9('s¢ZSÂ'ÀÞÈ”“Ñ[M”Á"}S4–Z…ß_?²÷ “¶ÜF"Öð×V‰I€”Øì.?žô-5šMñí#9–q«“ªŠðÿocÞæ`×/óçO6æ;ýù¬Z^œ§þ`QC<Y9¥¼;K4þs[t1}ò¯)ýBƒ¼6‹LBŸÐÙÍè%4Ž… #lTØÀ…UÊÌ—3õzƒ¯qhê}¼ƒ&ž©8¸q{EyIqKùÎÖ†011ߢhFè ÝdÚZÊqï…ÞH9SÌèóœ2(¦Ö¬/+/È5®`º©ÛdvÖ‡ß< -€ßà¤Ño骙ΩM´é»íQŸ…H’c ].9t®k\÷„ë‰ éÁÄñÝÖÄD û7v endstream endobj 1496 0 obj <>stream xœXXT×¶>ãÀœ#"*æ¨Ää X±c4A’ ŠE± X†&”Ž u(3‹éR„FÁ’ –h,1±ÞÄ}F¯÷F£‰F×ÁÍË{û€)ï¾{ßw¿÷üÙ³÷^kýëÿÿudŒIF&“±N.sܧ¾'ý8F.ßé#¾+_Mr^u¥š‚¹ÌM½cÕÇR” Âü¸v #—É¢ÔNa[âÂüü#­m½ÇYOup°ŸhýžƒõìßðoÏPkÏHßÏHúK°µ[˜w€odœµíÇþ‘‘[>œ2%&&f²gHÄä°p¿OÆM´Ž ˆô·^ááíëcíi½Ô3Ä׺÷v“{¿9……l‰Šô ·v óñ eÆ~vèœ0§-sç…;GÌŒZãëµ$ÎÛe›ï²Í®~þ+ÜW® 1Ÿ4yŠÝÔ÷¦Mÿûcf³Œɸ2£˜åÌhf ãÆŒeV2¶Ì*f53žYø3s˜µŒ3‰YÇÌe&3Ì<Æ™±cæ3S™ÌBf³ˆ™Î,fÞg>`\˜¥LcÁ `2ƒKf0óÃ3C˜¡Ì0ÆŠy›á˜4׌ “Ì<–-—5ö™Ð§²Ï ùyü¿Lô¦›&™^W Uı[ÊMã*¸›}7õ=m¶Îì@?e¿Ì~¿˜¯0oìÞÿžEªÅ—"|3pôÀš7E BKsˉ–¾–[Nkø[A¼ ŸÆ?2äáP1Ë¢ë!ÑÎ(.ª’‰»xõ.ÍŽM†:Ždw¿¦ŽMXVxV&D§RìÑ…z¨ƒkP£ùÌ|¤‘_+Î).·‡ C½â<±3¤R4êž@34ÂÏPÛ³t"Kî‹ñå)™Jì§$CÈÐG“p*Úߊ–Ñ‘å<Ø÷ÎQø¬²IYÝrx—NCӖа*?XÜ á‹®Î$#®©ÂEzô2ÊΡ˜Ý&ïJéšÎ×@N”0ËÉíØ‚Ý³ÁФ‘Éd4ÙL¼p‡tF-Ь"=;!%’µÊT2‘ðk¦Â"˜¶Ëí¼sÐI@~,»vôÔ…ÏŠŽÁ ÀþžûÈ\]j!”WºÝJZ*²Úˆ£ âÐ&Ù Z­< xg\©¨j? ¾ûê;ƒÂäd¸«{L·ò8Kfÿ^½î‚ÿ]g±•?x¬³üpϸ’ad´“ûb•ªúh0=ò9EÇZ¯Q8X|‡Ö«ùz9°¸mi1šLÄÄUI\ÿs(/>Áñì}¸ppM½Wå: <¾ kü×ûoX88‹®hŠƒ6#–“ö†4‹«±†÷TD“q›Éàˆ¶Q<.òš©lÃ}žŠY)žW,G;Nâ2ÂsmŠPL1íþ…^瑪ËTa!nêÅò‹Ï‘“£Fñ†|œ†}…íÉêmÇy¶ÕÖ*Z;Öìõø8ÀÙs;E·\Afü#ºoÐìÔÃmØÝÝéºkè•ëé×›+O£W6ërä»ôž®¨×¡B'<€O{>D¬°þ$û¸`ÓœÞæ¤mš ¬Äz©ÀiP;§”ô§XˆËÒ ¢õ>YóWÿ•\ì/Îä+!?!]© BfV²:#+¬|sžp!dcÁ¯7_&ÝOˆ‰ŠmÒ=ƒ6ú<ƒ¦^èH;<ÌЋ¼Q&¦‰|~YnÁyàŒ¬ŸF^°4°¢g¶®:C­mFŠ’ô%E„Çý¦'ŠHÍ<º(–ÃÖžeçYœÛmY«Ë¨«r(ÐVÑ.ìì=¡ËGìÏçWää.ªI?zFâ›;²…ŸB"=!3E9‚ì$,6›ž–*ïJp§÷XÛ³ê ›“¶#175'½(2@“¥ÖfÍ$ˇ+¥õ‘šùt}x@È›õ8©{P~\®º¬Š) ª^â®a/Iya”ô«U5ääåïâ,Dcº½êpºA¶Ÿ–ÈKÒ'çÍ9Gl܈Y†½gc\ݾz}s¥z×¶bÁP¸*ûªÕ×AéÍ’÷È´MDn‡\Ì×ß|ÚÖ^¥Ü ªŸ„…¾ªõ©°]¹$Ê¡†#²Sü$û¸ u^†#E¦áÇ­mù×´†¨\¢Uñ΂ïÀÊȺÑ*Ðôª ¬7G•ú 5ÕjF9}œ-ö7mû-âXõfÍíÈ *>c“¶«Õ3ÀJÅžÕé ÒLìíñØèùÙ_ |†¦('ÃM=UŠÝºK”ŒöQfé]5íÅìÛ\ÕA™‹%ðéZÄÿ™æjc+*+*Ë«:VŸLn¡² ¼¼K5÷ÝIÉ»®ëcƒ¼”;<øÇŽïj£dð°"b³2Øc}J̇ÍǶWSˆØÿÎþ´ë¹ŠV;ÇÓ´.Κò¼•Q±Nó¬†Í@Úi¯8|.A˜¬7ˆ²j©jiâ>¯4·à‚„²MæÿÄqöQHÌÊJ×fI8ÞAÞÂ}Ž#hÃh¢]ßàø‹.Ý£3’¶‡f$YEo rž™Éyºì}%ÐÌ"ô!ÁÑëÛ=ÏÞ9q½½ŠV1‹RÕËfê棙\ôǾ|I2¤ÄkµI‚:vË‚)Tnl'>“CqhþM†V«Õh•YY‰ ÎyîßV«oÞyôaóVçyÔ °ä¦àXœÚ€\¾`ñúø›<=*¾Ù‡ƒy¢¤RES*  Y¹¤€(­vkfœ&F\¤JQ£û¶G‡o¾±H‘¬”‘ˆœÐ\m6TsâÉlk»_íHÎK©« È+ÚQŒûºú Ë–R¬¨Ó½€ýôyu=·Ÿ¼4’6R!5šöN4‰ý¨äâq<_X :Èã*S V ¿*’É,Ó6EÞÕí(î¡‚4t³©Éôj«˜B¨Ä~Š \gê©H³‰r#–ÀÙ)þ =)£ya>“,ÁZÜÈFUnªw¦1f±&#Ÿ~€V'V)×°èüIŠ,‘u?ä=—º'Rm#I Xu³²áÔ™¼h…ö8Ã&DQzºÕã'½†.õ‘\tÇ­|MÔîSߨpTéÙæ¶s¹d>M,‰õs;œ€¿¬(K€ôxmVbºr뢅ÑtÅh-?¥¬7ѵfÒ7U6¨6Â+($æÙk)Ôï%5w lêѸEh#ïªÁ¿ñèOCÂIy—Œ%~Ä­‰ n¡5Ú Ÿ@ºÉ%~,ið=íq-ãïÔQ}‘s·õ«öËWkÏPûpVU¿ñàòÊø¶É3Ö:‡¬T9R„{¨#¨í6}ñ@ò*!’n)Œ¤ßsÅ‹/Ë Å:­&OHHIÝÑœwcܞꦲöV¿¶¹vDîK8aôlÕuòú_x•Bº{Y3vöÚ6~þ`u”ã¿è¸c ÛCøúø54×KÓ"úÐÈž‰+ùL2êK½—YQKqÄì‚S#`+·¹.b¿aoMóÉŸ! 21€ôÆüAÁÿ>¾ÆylmžÖ_Inü³¿‹“©9ê‡sÉJ°SŽq.ÿˆtNa¥LSHÞÅQrŒ½ÚÓƒ>Á^^†àC==(pŽþµ[•윸P.¦v­äw”@.è¸]Û‹c3“¶§ Ýæ¿NÏH¢¶HcWš²³2·¸,Oú`’A|jµS Ý.½)Å«ücÀt’LR€¨ÇO’„ɘœ OúŸ|DìŒÑ‡×Æ—&Áe¸Pp¼ôéÕüjh„s ¥ö”¼?¤£INس%%‚êšx†V=ÇØ^%£§˜ÊñiË×k H˜½˜È¥WW±ªJÅèÌkÙÉuW¥ŠmÓýGéóÚz¡ÿ.+í‚fx­:Œ²Sh…®ø–\Ôa5ŸYÑjׄ”4µ#$P혢hnüë_ÊŠQþÝWð˜C3ë+”éMÇ/ž¸Ú˜PÓФ?Ò¬ÎZŽtæê{Ô>ËÉqµ“—JIBHLJ*µ:qVÛÄÒ‘I-‡P@Ëwñ­¶&Ù·Ø]$Ù,Å»ttƒ‘Á†0Ñ sö{(…e ´ë[Cë½y×Û#-H¥ì¹à 4ÛÛ$;Š<úá`9ÎÁ_yê§Îí=QÝÖqè"û¦¬Ýá¾™ña°…ó«‹lÜc¨h?ëýÅ2ˆ8:’Ò@Ê0‡ýø-ugÖ㯓~1‹áoeä,¿ÂOdl7À-(äp@çñ3Oᣱ¶ðÑÈžîÐÓŽ0“Râ&Ùwƒø˜/,¢äI5ÓO¡2nG’.>stream xœcd`ab`ddäpöõ 14±U~H3þaú!ËÜÝúcïOÖnæn–å?„¾'~åÿ%ÀÀÌÈXPÞæœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*@§¥ós JKR‹|óSR‹ò+"˜YvÿXÈ÷caë‰ïWO0Þyñ}ãsæïÓ¾ó‰Ö…%ÔVv×t×MnŸ9fïÂî~ŽùÕó‹Šó«¢b×Fœ_ºmêšÕrkÒÖµ.íæøÎxö;ËÆþ®Å™…íuµmòÑÙéÝÙ‹ÖΘ²~âbùeß&¯ì›>s¶äìÙ ¦ÌîžÙ=£µ¿¦®©¹º»š£x^õÂi›ûNÝ’œZ^R$W°&kjV7‡¢ûoƤæþò•Ëú§Ïì—_pjïò5Ýkæe·v5v¶Êó5Lûá<ñ»Ó4¶ßÙOp]à–ãb©Ìçá<1™‡‡GùªÔ endstream endobj 1498 0 obj <>stream xœ•W TSWº>i0-¢;éÛžƒZtl«¶ÖêÔ*jKëë[¤‚HP „@¯„¼“?OÂCE¤Z­ÅÒj­Zëôm§ÕVÛ™ÎÌÇÙÉÝܵîô1³æ±Ö]YYyìýŸïûþïÿ6‡Š¹‡âp8S“6nL^º$úvAøNøÁ{Âqàƒ‘áHúˆåBlL÷ƒ÷©†^¿ég¢œYÃ)(Öš,ö¤‰B*ÎÉ3&,]¾|Ùâ„Ç—,Yž°:O(gfä'l̉„y2òá`ÂÖ‚L±P¦HH\)’É$Ï<ö˜\.4#¯èÑiγ 'ÈÅ2QÂËÂ"¡´D˜•°¾ _–°)#O˜0Y࣓/Iy’b™Pš°± K(ÍÏ”eHE²ŒbŠ¢Z¿¦@²v]‰¼t¦psvŠH¼uÛ+ž¹eÜì)j.µ™šG¥P[¨ùÔj'µ‹ÚM%Qk©õÔêyj)•L½H=A=Im –Q3¨™TõÇÌŽ…bVT ÕÊÙɉܳ‰Ks11ßN9ÆËæÝžºeê=›ž¶}:wºóÞõ±tì—3òf θ§Š»4sãÌÑYü°1.¢†J …×ù9èy4•ŸùBVå>£Ò¬(¥u½‹ BÈÖ ½ÐoìS±óœuÐìQ[´¬ÌZä‚vð:=®úÐÏã‘g-©ÇB5·Ó(¯¬¹Ê Væ( ÙŽ’ ÏÛ'þï¿§ª6BM—‘Ý™bòƒ½ å`Ðêªi\:žÌG»Ñõ|}J\øª@ø‘ýÏXÃî7ùÆ ô´¢^Ýàmrùk‹Õ;âl|ï 8ŽV»ÏÕe±7„Î|ý-ÐÃîìÜ{ðÏËÓYµÌ¬½·_4òÍZàªUƒ±ŒzFþ|îÖ=@—ik[ÛÝmîÛ|æºFéwÓ“–îyIVÆèߨJƒ4(ͪV”‹+SÀ@WׂµÖb 8ß{þWí÷Tå–UU;Ù¸ˆ™@z1€Ž„8á¿Þæ¢'>âWg™4+É&QLÜÐÄ¢=ަ£éß]Ýrn‘‡½Óü×kð-}-ùŽeðM^éä…ÍÖf0ùØ&“Û U`0JÚ‡­ü·‘ÅÝoµ ñy7ZRöýúÉÅ8ŽÅ[ñ ~%˜@g©¶-àXM—QO<ÚÂû}óêôÄÇáél\¸tÖ£×Pßûܰuðï¬{g)žMsñÜÄw×ÝFôbÐûq?}_裓ˆêy=õáhC'ÐçºS7gÉç _dE[¶‰Ó€Ž ÞB‹'?u•;Œãø±I»h¥ J5ƒ‹ Bׄ–ú&µä¨›ÐBån¨q{¡e5íl]~§è5 îC Ð/¿yùâªÝ©9Y¹lõëé-Ù$¨ qÕf0þ3 ¾zPfTÊØ *~M0ØÙÔÐêªñ=Ø&JIÉÅSBV¼.57èäªëN+Xm^BØ%E8!N$ýK.úõOl‘ª•„}ÎCYD“9¨Íy ÅàEl”£ÉŸýuMf³—m49 úž£ÏÌüI~è¿ñ¾»¾Çï‘ã§ŸÂ÷°ùÙ+Wá™@ã)¼扎‹”包Po'² Uò­[ Xi Ô*Õ&Îļˆ³_À«È þÅ—PGüy¿ƒ©”Ú<Ö¤7 Lz»Îí²9ìÌ(ªšâÔ;´d1¥‘)Y¥=ô#¼1¤s÷[ìljœæðP\wþò"0$,èÌZÒlz›Öí±8›­Œ­¶õ Á¸•'ÿ^£ 0€I¯`qüxÇ$v‚± 7òZÁb©i¤Tâ\¨C¿ø†…iþë… iQaq•CçQ1-òºBÈ¡36až¶KÖúàû¡ëLÏQÍôðÝñ|õ$óÖFÓõç¡Ö. ]>8 ­–hì>LW¥A:©å'ÐÊQôùi&.²ï‡­ßqý÷”B6ßnñÚpÒM•î ¥B#×2Fí^¼U[¨Í3)@Aø4Yô²y³€^×|=Ž##h&ëévÖƒŸÎس8ûª Þ>êÚÝh> UhËH5Ó•i ¤—¼+ú­o® 2/]ÖuÃoáøùޱ¾zÐlx•>+i(“J N[ÃxTí… âü……» wˆDÄöJºG;kBözÒ»—Tº›(ãf]€Óu ½{‹‹¾DgùÎŽÖ[WÀmÐRU —K¡ˆ.÷”=Mƒ§SêÅ[D;dJFzq{m>Ðó^Æ|i´h—Íê¶²}w/¶÷ÝܯÞr°ì…lœÀ–oeìÈ ¤®ÝhN:XìªÈ“H;%?~ñЧñfÊú/£ˆßµSµÉ 5±¹ Ï:«¼§²ç8)xõö(ûgd ©®r‘&²ŠO4]%[£12³Ê š¨¥áU«¶Z«ëK˜åøcånC9ˆ‹Ïl¼Fœr&ZˆþzÇåiûóæ1ògùÎXÝž“ï 7t}(˜÷Ò÷ýûBZáKœ¼Ö ÍçIkUÔwcpÂðòosà áYür¨„ÊÊò Shé¢&UsW°mðäÞµø,Àóðœ¥çVÞAó>¿ëuêjtz“I£cV&b(Þ 99vÔÿ‡¾·ÙÐèÙ¡³Ð‡«ê%DáB²‘$€V8'®"_/mFåü.¸f=Õr¥Ûñ&ÔÓÇ…G×c.þÕ"œ4ÿÍ•ßý› ~£þ¼Çk 5¼Å:ü#hñ_¢÷8ÌÏÃOÀ~âX¶âŽÈÓíœS·Ãö›ÜHiø>zr¢ðB|K°WâgPÌô0¡"âZf|õøZ~âºOQüñz´àC4½|ç»ÓýÙW[ñÂ$ ^’ˆg²©›–§,‹zy%Î4ßKBhþͦçÌ-té7Ì ?Ìÿ‚ç¯pí2öi^ âÙ[êßszîf_C Ø¡šû Õ"¨ eMÊæŽ®Àái­ûʼnyŒ®ÄX]„F¯ÿÁ<›Ù‹¼çÆYÅ¢²%;A` ÎRÚtÂæ> t«Â[Z˜_,|åxÑѳƒonbzη¢–b“÷›<ÜÎËN$ö t™žå¡¹ˆ½ƒb>L¾†ÁâÿƒAãÙã}ñïò^°u¾gƒN¶fò„€©èšèxRCiv49­‹“E³ÃÃ?Xûïy×ÏHÖgÉŸÌÊaw¿²YCæžÃ‹ ¿ÿ£ÜÑÑÔ‚ÿ“Ü£Ïß0áæ™_ïnlôÖ;˜æ_MFÕéêµ8mîÐ}Á@c¨™ì=äçlbNÑ&V#Ó+Aþ¯’MÅŽk·ý}²iF÷Â9úÌcÏmH=˜–Íġɀ…î¿ÉùdlhŒ‹"SøþÊF™DR()­/kkínífVÇò½]Ää‚.ÿ¿3âà7ƒÝ}“F\¢-1T³šÂW0]ž^]X• %ôÞ>Ñ«¤¾ùîŸêSlÈÝ´ëûúœõ­o‘F‡"K:I½‚*®p#‚ÈK|›©F­7›+•LêË…#;Û_þ/‹§âÏœI{­‚ý[Á€úl,,]þÈ—07€fµ9Ú,NÆb·XÈô¬ÕZôz¡1¶âR2uƒÓa±Ô{™“£C[.Už#ƒïAâ14벸¯¢ž•µVØo-væÔª­·¸ ÎП~ò»o¯¿•Žc cÌ öÖZl>;þBa<À ¯ ßá×tÚ^›ÛÚ D?6ü¦Âe(dÍ“2ºqt’Z] V&ˆÖòjÁ&ˆv3~šWf³¶t3^o6鉢ỦÖâht2¯£Ç:šP"ÐGx`ÐèH<7²DÃ!u¶Q•‚‘°œÁN+ÙNè²ty˜ƒÑŒÕÝ&’×j£±[…Ò*°²ù6 Á{év±­±¯¼“¢z÷Üíÿ·hëÜ^'ãp£Îö>ãgå Z0«MJS4x§ fžî6˜öãž³QV¢20*Œ|léÒ*Ï!Ÿ½ÕÞÈÚ}ÄGjá ]OyBM==­m¯ž91tœ¤^«Ùk"yGg5ƒÙjJ5ª³@91èˆÑé–õ¾R¦Y‘Ĉ…Y™Â rgŸ·Dæ› Ãù'?:f°z-Xh—Þ®a !ß(\ÛD¡ÒUA©Êm®aƒ¦æj(ŠŠb0ã±ñŠøçÃS|­u'ê=àwk¬ºÌt#ìgPj‰Æ„RkÐZå„Û4¾aQKmìÇãÿk“Ûu h»ÃUGÇ¡n¼½=w—ƒ’\´Ï¿(=’•+—Hü…½Þ:»»–±Y-D±´Åb®\-Úœ›ËªH!²Ñ: Ï'ijI¿vÃ]Îw¹hÛ~WQ[~~QQ~~[QWW[[‘âñÁ´!~ŒœæÊѾ£¥ö08hŸ²¶ÌX`©üðøF%YÕ$¨ð(}-Þ&›•±»ëNFöH† ~¸G†Û:ݯ ‡~hmmìñª{ë+{Q‘²h‰±ÃðޏúÙNDÙjÛŽV²ád ÒšÅf/ެܭÊ0V ÌúÔ%Ͻ»¨÷õ®šÎšN2Åš²ZÂ}~Îõ0âF–…õ|¯³ÆÚ£v«Œ&ÐV1ã¯áz•^£¥”.½G&_Ä×i­$ðÒ·ÛãÑ:”Nv<€,ä°˜¢ D–öp޽ý§àŸ.s‘/œÌÇ÷å-Â÷žAÿêBÒ7hÚu´1_gž39Ã)$…Ñ[·¿ª²…ñ+ýU @·7´5Êm9.v§§ÊÉ0ÎIß¼½kkhë-æ·§uo‡$:YˆW<ºmÿ±Î ôÀ!‚}ý÷ØG?k®r{ñjþ$ÒôOH;Ü$ðåÏ쑌SÎ4ÄGsлɣkÍý%ŽËcÑ,,ä¯+ÿÄmwømuÙ˜ÚCÁ¡÷OB@ôä¯ß–c${ØÜ ©„ÑI¬l Sç8h$>stream xœ— TSWºÇO œsPˆU{ªN;ç ÕYµZ ¾¨S±V´µ¾P):¾¨¼ž!€" $$ù’„ ˆ4„„‡Q@‘:èàû1-Z”âkœ±ÕÖǼ:£ŽÎwèffÍ´÷®{ïšu×^+'Y뜳÷þïÿÿ÷}Q0^C…BÁ‡, èÿ>Q~U!¿6Dþ©2~˜Ùî ¾JðõÚ÷šª`$¶ÀíÃqýKŒR¡HÍÒ‡¤¤nS'ÄÅkü߈žä8{vÐÿi³ýßOŠU'DG&û/‹ÔÄÇ&EjèDÿ°”è„XÍ6ÿ7æÄk4©?ûí¬¬¬©‘IéSSÔqs'MñÏJÐÄû¯ŠMUgÆÆø’¬ñ_™ëÿ|uSŸ_CR’R34±jÿe)1±êd†aÄä”Tuºæ£ÌȨèe±¡+âÂ>N|kj@à´3g1L(³‚™À¬d˜™pæMf 3Ÿ a0S™˜&ùˆYÌÌ`f2Ë3œÁŒdF1ó 3šÃHT"Æ‹)b®+)Z†Ä)¢ÌT~áìuÚ{¦w-;mâ\ ïÇoða}Ô>§}®û<š6´cØôaFß·|ú½*Tr/¸å·¹ü]ƒÃe£PXa„­À_5ë‚phù¾œV‡ˆj®ÆÜnqÀ8jrû¾îæBàT­„?pöØÕ·¨4ß %0¶v}*É£¹Z8Õ#º¹LS„1 r`£Ym¡©¹X­‘ÈqNÕ;<·NΫSœ¸‹ÿº«”oc©€“È0|‰¼A&‘¡ä%ú9ýÈPü~8'‹ÄAŠ…dÈ9\‹+í躌ÞkI(YK†¬Z ©zë3<½oy=OäÒze¯Jî¶4-?3nh-™CfOÈ&¤W\‡ÁÏð5f‡]yù +0IEd"ñy—x?¬8‰ð×yèÊ?¿C¦ÖJ–\³¡ø*°ÖHXÀí…]ùÅŰ£HTɧÁ±µ˜Ceô¹‚;î*ñæ û¦óFÏ{W'—ší²é¢¤>–‹ÒëQÍç,NpÂYã>Ӏދô%mÎâ /¶Y›Å+,Ž„÷¢c`.)«’ÿšëй1͉iî‘ý…ߨx÷ª{ô¨l\.¯Àm±Ûm»¬õP üµ;ÿ}yEšÎâÂ<¡»ú‹vøœïžv‰ø‰Dû¿–³ÏükK4ÂIcÝ_Îüûܨãn¨3yk2 >0ض?±zÛáœvà/îùÂa{^¾©°XÒ.3i! +tåEUº†¼‹EÍ'æ5ò*yc®[.r*NœÀ]'”ò˲Y¨‚ÒÉ”‘#êõ9ź؃wGðчÁaû·ìÞ!íKr?Ì´Û$ò*·Šì%f³sh³Ù÷ì,iL;©¹ü_¾¸y«3æ0˜¥Í‡¶[g92mñ¥:ËZÇöVØÇ=ÜÑ…£ª‰Ï/wŠ-èʯۧ’Jþަ"£ÀŠ¥|H¶ };Ø\ìífËp¤£•ÀŸµÂ&©á¢‹ó犙j¶ÕzÓqZ ý frs‹ËK2ñÂYdœÙdT™è¦Ç8 <½ úîi÷”òc¡ÅZ~K¬ó°ñ†9 10â­ô ‰uÜ-k~œÔçââ ùsÄ´D¶Ùz A+Ü‚æþ9; m…vk[ÙÎ2~{[ÝÓ@ËG¸•rŽ\*ô­|¡¸ò¹âòF®W{«Ùlâ—¾ž¼Lµbž+º¬›»¶;k‘äÆõjvÑŽ¬÷Å…8›8Ç,òP_N^P…>¿}ò×qß’qRŸâG•\?ŠÞl½Fsx®?ÏásѱһC8`ÙuL|Äâ\ C"6ñ"s%ò&;˜˜lZ)ÜrQ´ÌÅ)ÂYl›­¤‹¦5ٴʘfI2äîÿW5–`YòŸï‘Yî?ΡÂ3/%†ÊË„#6ÛWôöÓcÈKÂàí_Ùô|^Ü&½~®É|ÒRu´r4 N·@o;B‘„´ 4(z.⃋J4Èï3j2¯@ ù\çOýlb¥hÉý æâÆ’ª-©›W¤ÖolŸLMÊO›>nISDEŽtlÝ>í×YUÅ{ UÅrzOB‰v_„ó V‡D.*=ò±¸ø„᪩ɴKgÑ¿( ¸lЖï²XËJă¿iH¾´é ŒÅ·=ûÝú?‘!õýýxdrPî){#zg ÿÍn%”õ•8ÇQ‡ð)-Œv£Ó;@ÃS$@îx1:‘m³>†£t<¶Ds㡲©?{P »V»¥‘>‹P“VIæô›X¶ÿ—Èr®Ôlѻӈ?ðK!sÜñ=p}àœ–“@ k-qÿ—ä·)‹ü0ô¼¢÷+ñ<† çÉþ•œ {à™âÙ3%ÆŸÓ]ÉÉééÉÉ®ôÆF—«‘ö*ÎÞ1NʝÑMqY„Wø¾ðÚæîØ« =‹áCX˜°9$yeÎr ~ðõ­ÏæžšrO»ŽÃ­êcßµ^ßyzx’B® 1°Ô™ùç¼ÏátÂWÐU~Îñ·îêfªUw^í”ÊÕðsXKà+4dh°VTꃞ_9h¾¦Äë½/ .°hÄuëç¼|"熳p¶žï«ê×x²ŸÈ¶X@ e@ãxnr¿Æý¯º‰OŸ>ò(¾|ŠšJ9çS5 Ù…ËòòµÚy´ ñ$œíøÕíë¶{«Ž¶TWuž¿pòè3é&A††ëÞæÝmuÛêâ :0Äšßœý¬ ø‡§æM_•það;I"Û Àš±òkìÀð'9’nᛯ”GðB"6Ï$ƒ¦Ç—p|ñ9Ž5ƒdøöy=瀒í&S^HŽõÅ X!«¼ûT\ÿ¡4àïq©G­@?ioà‡ß Û ¨¢Ôl)/ÛΞµ·ÀhH­J­²¬¡½X<„&G$GFn‚y°¬#³Ój²šhžìu»\Ùî-[“ò£nNE‡?ýG OÐcÂÍûdóöí®ãŽæ6ígqÄõû•%›Öd}ž±NëaCYDu¡Í&à  h»4°Fy¼ó›ûmnÅùûXv_‰oào…8®á˜»]ïó¢ "Ñ•ã¬ÚWÖz6êäTòS"‘1TÃJäƒÿŽÜ£?àØ–âÎUç¥ÔºØÖ x¢–änæi½ì@b§®*§Uÿ9´ñ7=þ“£–6‹5›aü‚öëÓ¢·¦¤¤­ðQF|é¦7>TÊåò3¡¬œö>stream xœTmL[ç½Æ@nRBI¦Û%»÷¶IÚ¤¡I³IɲV‘% AIHK YXÁ!66_×1Ûl°±ý¾Ø1¶ÁŽ?0¸1N€A’LÑ`ÍW×6,Ö.M«TÚ*u?¶è½ènÒ.Ò6íÏ4½Ò}ßûç9ç9ÏyŽKMÁD"QzÞñ₟.¿^嶈¸­)ÜÄr¾biýRadˆ!#õòÖuäfd؄οˆJ²0±HTß`Îc”:•¢J®¦wVî¢÷Å)IŒ!ÍãÕ‰³ÿç`âžè€“ÌDœ0‹¬$Ê ‰ÐfÁDƒÜ+Ä7é¯ L+è©é£h»³ºÍŽjXsM{ÙNžç÷¦íK×µ‚Öàƒ~êIz>Ÿ´jÀ¦ì¢©ê¹¿Í#Úï5@g‹Ãf´’å;Ê4µ€«:#xz¼Ô¿ ¶(æÜÜz¢‹íé0z› fÆJ6]­Kç7ðùü¶Ý¿)|¼075¦.Ê’µ³0 ƒ‘@"<ᛇn|ÙËÍ`SYHí¡¦j%à ŒxW‘N^#Úåo^ÖrkâÆ‡hCl†šXœ ó¸×·ßDÙ i™œÉG—¿]5¤ò+1w†ÛHT˜A6\ß׋ …&n–æó/ îü¹ãáÑoÑöÏ¿õ»¾‹Ãn2“§ ÞV^"ÿÝ\ô™2óänè xáº=¨ÀW!dq´OÀxá÷È5%F¤%&ÐI@›o–á1>ç >ïíŸ<ÿÏÊÔZåÃúO¦£®ë®Ë”;N$QÖWÉ)À¯&µ•»ø= $5ñqôNœ#–ÛøoY5Í-+Ùb®” ²â‚¬/ó¯¼öÑ©Gccä8Õt Mbi¨¯É–”—ƒZà(ÝQ÷ oÈàoT©šªKXî¢ï}¶ø`€Ô¡JÂ\uì l…vjfjèyd†JÜ»1:ø]ß[­»ÝLe¢/VæŒ~øGÚrìž=[1§¹Q©amÁÈp(Nžá?%ܧBøsqIÎ9ž6®ù8è$ûo'Ìtuê­QNåó':M:Ðe¯ÄÙ$zÙûoqv¬ºT²g½kË$e¸§+,äOóPÌ­_f¡õè™FeS³W7ŒÆH¾üû ciyî Ѓ‰µuE½ì ¸WÚWªÕu²ñƹϿ¼ÿu„ü†KaCàWöʱ’mE>stream xœµz x“UÚvBhxQ¬B 4à¼oÙAYDe©ì´ì‚Ø}¥[º¤{Ó¤Ùó$iöîKº7]hi -P(›À€ €‚8:2ûÈ0ç­§ß÷ÿ'mQœqæ×ù¾ÿêÕ«ëysÎóÜÏ}ßÏsÂåŒÁár¹£VoÞ±~Á|÷·3ØI\ö…ì¯xQØø¤?ÏÆð`ÌÈÆf׌c§EåÏ¢=Ïqx\n‚X±:A”‘•â3+t¶Ï‚¥K—ÌñY8þRŸ•qáIÑ¡Áñ>›ƒS¢Âã‚Sȱ>ÛB£ÃS2|f½•’"ZöòËiiió‚ã’ç%$E¾1{ŽOZtJ”϶ðäð¤Ôð0Ÿ·âS|¶Ç…û ínÞÐ—Õ q"qJx’Ïæ„°ð¤x‡³zeüª„=«Ek}“ÞN^›²N¼>uCZðÆôM¡›Ã¶„ûEøGFm‹Þ¾GÌÎØ]qcæ<37kÞËó,|åÕÅK^[ºlæ¬ÙÎŽg*ÇŸ³Œ3³•3³3ƒ³3“³ƒ3‹³“3›³‹ó"g7ç%Î;œUœ9œ=œÕœ¹œ½œ5œy_ÎËœ·9ó9k9 8ë8ë9‹88¯p6r^ålâ,ælæ,áláÄqžáÄs<9 œg9ÏqÆrÆq¼8ÎxÎŽ7Gșșġ8£9OqÖ|pFrœÜí܇#Öó&ò#7<îÌ_É復FS—F¯zjÑSŸ?½ëéËc6=óÜ3=]ÏF>ûè9ÙØEcãD^³¼î?¿áùFÁ›‚+ã'Ìôöð.F Nìžd~aÙ Í¿ZFÏg(f£Ï[>i>¥>Ç|M~oò§SЦî›öô´Âé+¦÷ÍØ:Ã>ãÓ™ógªYg¸Ð^»®‚{¦ÿÚ<Ao©£´R.t”FŸç k ÁX .hÒ4B¦B(wÈA®g”úHù½ÍT`+½†Æy£t¾/óHKÎ ’æBzné6è0¶C+д¸›  ¬PY»5ÖZ-ÔÏ×9uÆ,fZ¡”R±˜'¨Â·=p8ß“=#u²s\Ù‡6÷ñP&Z-09Í•&gáqЗ6Uw߸ ÔaC@êæ@ütN(#‰ÖäA*Xyô›4Ûd—ƒBÚl5-‰fo*UW\Tc¯µV3';ÑH8M}¶Ã¹wé»~éZq,º1"!-%+.=TâZJfS¡^ï4ÑeW˹€ª…xi–&]ż…Oj•:h„RkvEA©¥ÜB{öo'á¼äD]ãØ{¿‰ýr‚×7¬€ØX (ôÿ®}mìâ7¦c>ƒ½ù(&O€<ë>þ>¡®ù_À\_àgIIà¬PL hÕ9 ž4Ðááõ—h¹R¾vÒàŸmP Ïùh …F=ü|]Ïjƒ}ð-~Ž F‹Ùh×›™«¨Å½ÅÿÆüjâ‹Ë§âŒ'kŽèˆ«¨à*5#—àwþW^ÁÏaž‚gL;¿ùsôϤ±WÂ"\×zk¯éÓÖw´ñ PÇêýƒÄÓbü˜øïìjDý\ô¿Âë`?ù°½òh¾Mo(§ô`Ï¥“A¤I‚Xˆ1ƹQ $èÚtf¦TW¤„,ÈLi58WxÏA'Õv0€^XuH_èp@y Ôt8„j "Œû×KHìPtÄ®H±0ð}ƒÊ µT!x‘*]²C§Y©£rܱr€‘iÄàAèÒ´b¸@é±"(µµ40GmÍö.S),Vr @±«.9Ћ÷yýÇûWôùz3äSU¦U4Þ´2èÊÖ’= Ä!8‹q.~íïÓv#.ÚÔ.•Rr ó^Çn| ¨%‹>@SÎÕ ·ÑæòoÛó P¼ôJ¢*4Œg£¾4Ÿ&)»\hÎ`šX¿x_áçòX¹&LGå‘ )L* SG걚 Eãúþ82ÈyÌv³¥6¿„9€fX2kBN€ìçi4 Íþ»ß1¿½A‘ÑñLî适¤Ÿs’Es&E`m9wë} ºíÛb‚EøéøLnRï;@m•ݳõFƒ•ñìWA Ýç<ôÖu<š`¨Àz–¶¢í(‰ÑÔeÅ_ü ¤ßokµèI¥üçVžàýÏdön[¼¨iO`Û“ ú!Nˆs™Ç汯 Ü›e“4ÒȨ„,:·!±õ] 0?…çà‹{|ot¶ÕÖÕ3ax4H§Þ¨JÈ.òÌ Ó­ÆfR¦4MÿU‹ÁD^S‹òI*¶,ßÔ>ù™Æ^]ÖÅÔôõôv‚ªte ö,{<¤ƒF§Ö* Œ–68ëBÍ-Üþ m¼þ7Q®@o0Ú@O9rAC6%ÞŠé¨ xÙ£çÇ»‚ê=îó/[²D ]¶<ž­V Š@Þì0Êòé÷‘hè°Â‚\PK@“ª¤Óפ‹—µŒß‡tÖfw…h,qjâÖˆ´M2£SéòÜOq@~‘>¿Ì@W!_c­RA8ÉÏ”A†Ä§Až§…:›Áš‡2)ü>“l2¿ôzK1åÉ.•V¢+·Š Pgßå!ê$ èF‚/ÀõP‘%ÕĀВØÒkË\EOlpì;r8‹–ž +ßÿ2m£¥Áj LëCb{Ä…zHlßhã¡+èSÁçü‹¶lQ¦:‹,Ò*têᣒÂ*7 ,_o“Ð{‰N“¡¢3Öd%‘Ú\Á¿€ l4ÿïÎØ·“5éšF—åñ“±z÷gÄÊM;Ðeì€8¢év#ÊV@•YŒŒ¿ ¬…ù`È/&@ž#u~xÍ»Üëwóžâ4îÃ}×'x}‡í–uË`'#Z>M¼Õt<‹>n‚.‚ðrIajJBfÀ–Ó‘¿F/¶#Ïžû+ÊBl´×£s¤õÐÄêÊË·ëÚda:F-Œ’š3«Kk õ„\G‡¼´›öúÞ¸˜SïÆi‘Ø…r\ìôaÆ[‡Âæ*ƒý0P…(³ªMyL,D“dA€1È}¹Ò¤(f¬üB(Õê*5V䀴òñB­4.!(lGn8Ps–^BÂÓÕhÑÄûwÄׇÔC,+üw,ûêÃÉhÊo¯÷´50¶dg¤,`0”'ºG”MèB«+áå¡Bvšà¿Ô1ñåü64+¿ˆèŠIX™i’%ÉR‰)Ë<ó3Cû65îЩÕY#ÜÓzâ/LJ-D.è2ätÆ»¡omJ5%(±Ô3Cîéœ µ¸¸çú]¼þ,–X›¬Öó@UÚ Ì¡0(˜p! !ưï…ëGœ·k=pÿ,R-þü¥ncð˜k‡NãAè€NÍA÷"‹Ûn) m+XmnÀ1¡TÇ_+~ÁR=X±Ú<ì^îC úx¬$0˜IU)‡¼8-N/×Ò«p·*´yazB|\ Py‡›ûš¿ª¹ÌX+MEÄôîw͋³”CUo(ʧ­®ºßÊáÐ$&ËD9aL¢oâJØM½r:þÔÉ–ÆÆjºlç!e9´AeM±«¬½à4©‚ÁÜètb%³=}S4P‰PW4œV0¤H²þ-Iò`E·4èj ?0ø…Nùþ<ù:¦æA†Ô¢µ Vt'tÂ!MÇ`ˆ†ŒDÚf°8ô` QÐpˆæ÷}€ã±2vŒ 5ן’”’"±(Ì º:ÑCljÂ>œGí”ö6Ÿnº_w6•˜‹ftb§ùÁ>jþ…ø3èõô_µÄ88Å΋ds\ÜßòØâ:-õk7PŤlJ£œ!”«‰†Øg toÞm'q_À/RçZ§»†³Ý5¬ÎÁÔ@„wú[Û|wEÕÈ; :)6ªÝÙRS›V˜ªñ‡7Öž ½ðà·7¾v’J˜3|ê}h^Š!Ç~½.P$èR!‡’ƾ¶Ë>.iá3ppñÉÛ=NvZ…Ô9îO÷âûŠ?˜àõõ× ÂñÒ•{€z7§Ý¤'vSϸLuPBUf92rÔÛwwF¿ÿðëoÿTCÿ‘¥õfÑ á“tÄÃë÷ñŠP?ÿIÿSù!¦ª\Õ……C¹Dí·º‡:èà{n¨gYÿ%zþó?›ä¹Z§“Éé•sª3Ú™Ô}údÝßj2.ö¶vîÖ‡Pžß=?” Kß½Îûnì E¡2ü<_Là*ÍÀß œóÞΞÖ:µ¼B,ü©ÑÁó9ÛÃs´B¹T—1Øç4B‹ÑåæÑáî‘kBŸËl3hk¡˜àÖœ_‚„l½·žß7ð­!Å ,“Åì`G÷sɯñäóÿHm¤†Û¦í_™ë…0H°<öÔ/(„­X’íÕ““>Á£Wë`~>G›«ÿê_ÖÆe=f]bñRØ;‚’ ô”±@_:ì÷oÑÆX÷ÑUCtkcNh­iD‚ò´ ­ØèýØRe‰NOz<öûlYN\ZŒÁÞu9;"$ïýÒl Øo3ðÀ”­×ô,zSù0\EN´œà•©ÚyH޲ð‘ñhù­&¸ª'âàÆ)xê ì»àèâßý4V7H}°ÝÞm©cÌNÁ!ôÚ·F;PU¢èÉx)ì'ºd×ö/©å¢Y_±á÷xý ¬¿½6ýxÆ¡X†³ñK|Ð hŠ@b¤¤flÌßþzº§ù\EžÌÉ__¿Ô§×üðÄE‘X¸k>³óú¿E8 ÁÁÎòÛlº Íý´ÒÉMº‹Î‘~³‘XüÏø¥öáºXÁ/úØXV|ÕÚæ8y€$²R[˜§ÊI†4J\&+©©©h=R2; &‰Gx¬w§  ¬˜9Ç_50:w³,D™*”GKvG‚ ÒÒâFSQ5TPÎ {VRRZTÀ¡Ô¶‡(â€{ÖçîîÛkÑy·ü—<ôº"@/óÑ84é¯hôݵ0—Á'ÿÅ8ï»vRÝLj_ð¯Oܘ–=;<‰ Û“îÇwOD‚Ÿ\§n½y¥qéφÃмò_Âá"*ñ@~׉¬Õ9š¼œíŒtŸ:Ò©•}1çï6>²Z´f‰D§ÊÕЙÛãbbŠÓÔ5Õ«µŒ±Êt*შ®wÊܵ5”áqèù޼üÙ/ÝESOD)^ô‰’–ã}"Ûª)Ípä8ÄIÍ_1sá[oxXeª3:h0è rŽ@^¤Æ£uЄÈû]ÜgaÜÇO¥Jƒlá®GÛ+êj éÒÖ¢ ÃaU)A¥¡I™¾éÁ üÁ±¹CSÙ?™„&¼&¯_Ì^t|Ôêh3Zõ÷“Ak“_1‘ã¿¿b²‚UÇ”èªÄ!K¤ijîHó~‡­ôh<©· µ<:B5á QC·KªáÛ¥^C^’9;0`H׫J@H°ªwÒì?ýÃÅä–>´ëÇw“ÇÀPPÙÐ{èô zàl‘"^›GÜLá?Ýv W†ÖÿiÑ.]w·VìóÝG˯ì.?Ø»?ú½ÿ…ËMvȆ]œ³N½Ý0hľ9{’X±bÅо'Ƨîô¶UÖ¸Šéÿ÷Èä&úp°3 Ȥ±œ_öMÅï Ï#OÖÃMMR`„ 7úîʹŸ‚$L­ ÓEtÆ\ ?ŒpÏñ߯ý²½Ò½¹{…ŠDÉ®Hp÷F’²ðqû§·~uÍ@Óëéyge*:1¹rò@¼ÄZ·î-d¿±gã¾Ð\²kPS£ÂR†žEÏ §›sjcB“¢âcªd•%Ž| ÍÝ'B3÷V…;4숳¼~ÏþEîiþÀ³èl~*ètÊô¼(o캚°Ò$GŒQx9¤ÏŒÁ«¨ÆÿŸ¼÷¤ïI„òX·)UXŸ[ú‡éNoùM7šŠ¦ÔÑçÐu$þÃÑAÁùâÏ‹;ËŽŸ(ê"&ºjÒ1±n]QZh7Ñz~^ãá‰ú‘ßÜ/™‡>D~‚r"ƃÙì$2=¨x7Q -¨%Z¥*Ý}d…2÷˜ YÜoØ[…¬‚b;8É~`?[ÒA;Nr¸$\J:/pfU&ÄìÛŸX–YÛâjn¼%5V~·½‚[Á~Ãcõ¿+°Bþ ¦Ûdr¥&;8üß«I­¨I>Ïn5‹mî…bg¿7)ÝÑçÑÅó<ö«t¨Ðx,X½|æûÑ{çáÕ°ŠÌ ‰—t¢ééÎoÚÑB¸Cá ALPŧŸÝ@G[¯1m7N9[€ê<·q¥/>4‡ïÛóÎnÒ³°V¢´ .Ä­à²ý‚ÇiUæ+•:]v.ýÆ4_E¼Få¦ÉLЍ`~ñ1së?5/‘ËV€P>„ÒÌ1‡ ÛxCæð÷cgd1r¾2õ½Ø¨Ô4lú|÷k‹¯Zœ¨À‰’ƒ.mDcœhê¯yhÎÇ‚Þ/®wºÊмû_Ÿ$ Ð¨§VàYKqÀ†4sP÷­.4¦½,¯U¢T©”DÓõZÚœ›/\*>bò–\™©þâ ä<;ˆ^ÃÓ_Y2ËŸ'ïö]"õ%êf”ƒørk}ÙFÒµÖ§ÕdÖf¸ÄÄBêA«‡gj&'$lÝ:H€0kV~¤5Ì R¢`Z5x^‰5V6²7+¸‡ÙU~ö}[`EÔÎñSRC™ÀeþâÂó[*t0ê ¤&©–ò†ª IQÊn¥̪Cë¿@Ï'; ͹xó•÷B2ã#˜Áí²Sœ¿»ÝQÃEc."ãµúf²™þ¹çnõ t$,rBr)c˵¥‘îñ½(üBZXâ¾à í@%£/U_U_ê9ã:xòh8¡Ym¤ÞU…(r¬µ-eõí½ ~Kl›¾šYŒÇˆñ"ð¥åÍu;jb+¦ {E°Ç–À ¢ZîÍT²5Î#W¹h+æ¡Ùí¥;±`V÷E‹Þ’Oß@Ó[y€8+“¢4¡$¾DU %Pœ_d™—é´û×ÏÇÒ}HâÄeÒÒƒ¶¦+íBcº×iôÜ 4²çJý![!†øP©RƒFMg§EìŒ ¡4Åšu»º1D°W¾uGU¯û)”û}R.G1¸Éúþgk¸è=ÿ>zãLq7Œ:zú|LÝÜØå‹GÌœ63²(Á.¡Ír½®;¿ñzúl –\Ýuœ›r¿w§)¯)­ŽVZÂZR*¨©_ 2ŠeN¨¦.ݸôÉɃû·NÁc׺ЛtöÔˆ«ÒÉ–/ZþòÆÀC®ŸùòOG†¶Òvû÷NvZ ÷akí5”‘ÇnBg‰““ü·§&¾»{3©³h‹¤áh¾±ƒt Eò²ÄèŒøÈ]=¢s¿¿{ç£#ôŸÑä"ä ‡©:@/áñxöÂSð¬€<:{¸ãˆ‹ÆÞkàzQ{#šTßË8]þ5PÇKÞ Z„eøWC¤¹U”‹¹h&_'xýå'Ü«ïúTP•U‘›R’Vßâjr¹Å˜eŘ<¦y$W»Åø¯ìCÔ/|Íú’Ô¸=‡žF£+U]AÕ¸´Ìf·“€Ì4§—‡ª±Bàδ¾ó3ù=¸ è…3ì(¤@AEE¤”EmTJñ¨exÊ+4×Çâàþ¶Me{jÖÚZ”9?ß=®þþ±÷zyì8vÎäÏèMú(ètPJµÚÍ™sj©u1ø~Á`Và œ²i ¥ÈטhÔ4å>F õ.´þNyŠìjJ6”8ù8Ø1ÊõÔå§é§F.©3Úi3†Ãù¿iíðL endstream endobj 1502 0 obj <>stream xœ­V P“gþcÿWÅn¦aëþ‰]«`­çÚŠÛÖ*^µxŠ‚Fˆr$B $ܹ^ !r‡#!€!¢VðVÔZmmíAKµÕµn×u{lWý~ýìÌ~!KÛí´ÛéÌ2ß{=ïó>ïË£|FQ<otèšWzþ˜Æ=Áã&âþÀß…%Ï<Ø8üøàçÓ=Ùþ$ä @)PøDŠÏãÉSóB)e®x•8(6X<7$ä¹™âys愈—ȥʄXI²xD/•KTä™8\› UiÄAÏÇ«T)‹fÏV«Õ³$ò´Y 它gŠÕ ªxñ«Ò4©2C'^¡HV‰×JäR±'·Yž_¡ yJºJª¯QÄI•ÉE=‘¬x-E™¦JÏPK25±qÒ»â“dòˆ™³(jµžZDm Â©Ô&j3AERK©×¨(jµœZA­¤VQ/S«©W¨0j µ–ZH§&P“ "”•CÝä¥ñîŠâóù+ùõ>}ÎŒ^êëã»Ç÷:‘¾ÄÌã30vîØÆMwÁÏèwÎoˆ3øs7ÁÅMtòИA$äsYè¬à/Òþ'ƒbBÓrYÓ_üTÞèDúòž¢(¶Ñ1¹ð ›H÷–õA;tÀ!è5œðû£‹~%‹ÐËôÝO_¸P·=ŒÅšÿýÖŸsæwqSœ¼Î!txˆÏP‚LEbáTLáp?ý î}‰Xœ‹7 6Ä‘îV¾n8'`?¼ÙÕëpj: § WÙß.)Ù±mܨ¤ÄÆh¶ãÿ`©î;Ýâ?`¹OuÍ}7J-7DB&È@Qe$«DzŸ©.‹|£-Ê/.ÀËqƒG >U_ÖÀ–^hf]ôƒÂa#¤Á¦a›zú447ÉQ&¾-Ä鯼ÙôDße¥ð¼ ¥pu¸âtú¨v‰P$MàÆ›]èi'7¹‹‡øƒ¨kˆlxÀ‹_}4òdá^`ÐchÔ—¤ø€i_ãñqò#"EiìéÄ–b‰è‘ôÐ]̵ Zžèy ˜O.=‹y˜]¸(>ºîD’(·J ‘ñçæL¨>~ñIø0”)€»u§´XŸ_*FÖšÓÔj·u¸“œÛVo‹ Ï`Mw}ñ“?Ãeg ΓJ/ Wª¦—«ö‘æ>—ï䦷ñÜý¨¨Ÿ8n¡À•Z²³Y£© À&0B±9»*¹*,–-ÞòZOr™AtPÞ¢7÷hÁ'9°’‰Kž=-ùÊi-«¯1YrɆÂLžHgC~MyIIck±TÕX,‡w5:<¸õ ¼s,ù}<®YTX^©™u«2͇þŽ|,!ŠR¶¤Ðj°ck#It.aáxZØÄC£Ñä.>ZË=)@Á.ŒÂd¾¦9;fÎ20Š[ØAã1·4GÞ=øæÇìYÙ&z…l§t|ncIOI±úFFÝä– FZJ/ˆ{i¾÷‹®Óx¦ÃA0Ìát(ÌBº½ïà [²ÈWŽvÑ+ ­ÇEè.!ʹ|;÷¸‹Ç­CŸ ZÏv×ôxXO¸ `+ȼ¬u+Ò! ò:}‹E­Å5P¥mû ž°v»a+ául$¯Í°×% ø+¡uwyQ-Ô‚u¥šLËoÌA躠¢¥¾ï¼'f"‰¹’ eľÏX• È5‹fâRáTäÐÕ@˜{KZIÄ8Ãfȇt’©|$b©®qól  Tm2ë«ÈÛöýÐ0œ] ÉN‘ì}{*õU ô{|WX¾»¬Àõ`®²ÔÜCÝÂ{¸Û¢5çÕC  Ì•æ*Æ#"N¤lw}ápòú®¡äÁ.>·|9óÄœ…K’^–Û5gcS{ëîút ÛÓÖ¤õgÏÆ…ˆdôÃ*ÃòäùÒ¬ È,ø&õ½Ã¯lf-R‡´˜Ê濊ÎÈ6Ò;vggì„#Uìâ“‚!©±ÛÜÇÞ¹xͱ֟#³Ä#úriNwGw§Ëåv;ÞòàGp‹¬éU£Ñœ ZÐêrss–Ÿ¿K€'}ky]›Ç"ÖyÃXü·ËPb:µö[ œ#V*vîXl L¤{ʬdÚKáìõê©¶4Ï ÐP][fiëlïtt\ 6©È|AaQNš‰ñÈÄah$NB§×h ä[R»‚çðv'÷‹gÿœO¸v]Ðv®§Ò5Â5 èaóHg:ŒµÙ ‚bS‘.WŒuBÌ º¢:’‰9°µ«Ä#1†í¤í?¢Ú)¨5ÖKÑ<üP3E¾|90ÊìjYK[ª ƒqfÔ¥«UZÙ¶ÞýCÇîWš  ²ü.´ÿVcÏ=„âoó9nŠ@Q WA.“Ò¨v:ì Wv>ƒEÏ`>‡ûWš„¦¸ÑØêj-Št¦|[”¡x~:0kæCAhêGý§AãyUäDÒ>÷î>ºö`ñ÷£º‹Žß¿µ)‚ˆQæÏÀ<áë§Ð¤óÇn—(ŒF3¿OîŸôâGï H£ô»ÕŠØè´­ ±­i=)tÇá(¼Qñz‹»µç°ó$ƒciŒ·¬XZ8¼ï¬—ùÜ\¢ºÍåÐ2uOÁgLűQÓI5¸ßb6TjóŒEÅFÑ® B¤h»üˆüÙ*L‰CPÄ7Z{3žR¢büÑ'ÃLDF²ÊÇܹÅGáósá h´ïÍã‡ûlz“™Õè²@ˤ6f:Ú½’ŽÍ/ÍÛ$f±OHâ5<ð«ÂîÄ’´êÒ•”×Áë< ¯vŸç£%ï deÊvØ­åÖŠCʺV`¾xïÊþ¬½iQmµË~¼DoÐé ›ÑÔhj뉾h»·emÑK¢YeC\ýV`‚–®xa«#Þ®¥+ “ÈšÝÑ$kΊÈÙÑLè·áHˆШ“Wû“%ֳ뻢 ë}Á,¸ÓÜcqÔ5‰ê[œÕíÀü žNß©KÝM)’Š4ÀÅ/ ÚÑãðçM/FM_|¤ßn;M4rüxñÓûg~tx’†5¡Û¾Þµ;Ì‘G5ÿÇÞÃÈñ=-ã£î‘ CÕž˜œªJŠïÈp¸íÏÀk Eß®(&­ÿ¡=g¡jàMp{]®Ö[ˆ8Š&<ðÌóû^·»nß!~ÕÄo—²M&W¦ÉÚÓ®–v'‹çûý¸ÂSV ¢Ÿ¶bwºÙ¢eËKí5àdÚ3›Êô,YäYÅÅO/½}›å²i¯Ü}7|:ðQ?jܸüΩC–¶’@fÈ!‚9%ÛJ½rg2k¡2ÔY…Åx*f„\ ý³X(ë'"ßDθ?Âçôåþ2pÄÛ2ë2lj›ºVmO…ÝLV¦!—õ Z=9›F€Æ¼ë(ã…Õ“£Òð«¿óìpÌþÿŠéÿpÌ×p²çÃÐLñYü9Ì›–œÍj>|µi5Ì€èÚæ·ŸÇW¿u©*r㯲㷼õ8˜aÀºxc¸«‚ÚCímÃ{;É@î[Ï÷Z¥û;RSt`ÔiExþ£øy.‹¬íR( ì:D½Ÿ%‚ R"ú1^ƒÓ`3VeWhÖ“kͤÏ~´LH,³‡-K»N[.ø©ådÙÔHÑÎG÷…–3YâµP^a®A˸=B´ì‘Õœgε ¯ñ K­§gx³-ñ Â:'­«»>stream xœcd`ab`ddduö 21T~H3þaú!ËÜÝýcÝO]Önæn–µ?”„¾G ~åÿ(ÀÀÌȘ[Øàœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*€\¦"œós JKR‹|óSR‹ò˜ „„Abñ?ô£ƒïÇ÷îM?æoÚ>ŸñûÒ‡Ìßÿä]ÙÞ+çé­ÚÞ͑¾´ûl÷ñåzÙ³ºëTäRØõßì> „7»µïåQÞ”À®Ò=c<Ȩ§ßŸgx²‰ñòw†ïS?0ÿX÷Ý_4­³¶Ñ³¦¡¥Õª»¶›ã·?Ûw‘Ïk—=9½j¥äÊ•[öu_âø.ø›õÊo©ß¢†fºÛZ§-Y1wýºÕñr‹öØx¡›ãËa[+—'Woùß¿s»ººs$¸³ñ•-øá<ë{þÔÉ Ø~'NcßÄu[Ž‹Å|>çêI<<÷æðð20Fh®Ò endstream endobj 1504 0 obj <>stream xœY \W·ŸLFÅtÔo÷ÖZ÷]ë†(ÖÅEö-’aß’–°ï û¦î ®¸µ5Vkk«]«mmÕV{Ç^ú¾w“‰¯~ï=~á3sçÞsÏùŸóÿŸaÙ‡àñx|g—iSõÿŽçFð¸‘}¸Y¤")wà“°¶Ö– #'øÚpCà¡ApÛ`Â‚Ç Or‘ }½}DöïïùÀ~Ú¼ys&ÙOŸ:užýÒ@/¡ï {g‘W ‡_Øo Þãë%’Ú¿¿ÐG$ ™?eŠX,žì69Xè½èƒIöb_‘ýF¯0/a„×^û•ÁA"ûu^öFë&ÿ8†„‹¼„öÎÁ{½„AA¸. Úº,x›CÈöå¡+„+ÃV‰V‡;Fˆ=ÖH<×J÷8Gî]çõɾõÞ|6únòsñß°%ÐõÃI»>šì>ejÔ´èé²13gÍž3jîè1óŒ[8þã ‹Þ_üÁÄ1šø„˜GŒ!Öó‰±Äb1ŽØHŒ'6â}b3ñ±…˜H¸[‰eÄ$bá@|Dl'–“‰Ä b ±’˜J¬"¦«‰é„#1ƒp"fkˆYÄZb6áLÌ!Ös kb±ˆH "–ƒ‰!ÄN†ØE7â= ‰¡Ä0–èCØ„%1‚IÄ¿>ÁÁ} {¢ÑŸXHlűĤÄk^ïUŸ9}*-Y$[<²œcYaÅZ%[½&3ùïñCùò¡Zûî[Ûof¿Óýú·Z÷±N·~8 i@çÀm¯ 3(eÐ/ƒW;ä²Í›‡‚Å‚ŸßÛõÞIz1­¦ê0ô×aªa÷mÛm¶1¶jÛ‹¶Ù­²Ó ·¾jø¡³FtŒœ:²ø_#þuˆ¡7æ6û!û½ýpûÐQüQ[Fí9ºaôŸcÆ´í7vÿا\Å@®hÿÐBÝ}^-çguÜ}:¡U¦ A $x¡][dy\rr<ˆ¡k@)ó’,« bàÍVþag“•c¬¼Å ° ”±/ÉÒÐP˜’›Å&g„ƒh@!.œV’7Î Ù’†Ea‡ÖEkóL]tÃ_ÁùÜ{t(ÞÃ,#£„x¢PÄž@î¦+8ƒ,Âó6 AëW‚Ï¿h={¾(ø‰÷ò ãjõã>2M¾Øzl!#øj5pó•H(ÃÚœLËkåÜ,àqø5 ­ Èª‚,Ö¿ ¢Ù1d´T‚Jv9¿Ž·RW‚Æ¡ñQ(~TŠÙJZ£pd‡J­Âɨ0¼v5¾û‡qš0 bŸÀ-¿¡-V¢ð·éWu{ B Ý´6?ê`´nvgr§h8„ü¾ÂÙÏÓßq";–„›ƒéëÇÏêκÈ‚A¤LoC5(ak»d¤àUˆ™‹$´ºÚyO·ãÆürÖÐH# C~ß°ÌmûÞõ3Y¼p²~¥å]ÒÁjç ðŠ“C–Èròûhü< ö}~þÚ0ÈÍ¢—:ß}úãŸß¾î4u²ó’¥l¯¡O°›¬!‹« »Žêq^¨bG£8ÙÙùpn¼Æ®ªÂä@ýã*l¼†„ï£+Vhß{ö7Í$„kônŠÓr9ZÞa¼yÕ‚“p÷èP(M‰OJaä©@#ô«Û¥ÞŠFã- GNh ÄáPHýÐùxˆK 9›ôÁü0O@MõN„<|Ýyõâ®ùElFdzT šF­ßjá-¼ÙLÊ}8–ÒW.Ÿ¿öÅåe3?\á´âcŸG§4ÞòˆÇ±„&@AÞ³Ÿ¡šþë¨nÒ_Vð¬^^äõŽ»êþŽÉ^o^ÕÁƒØŸû¸ct^1P<ê@80è!é—˜èÇ.ãK@ø½¡Ìy˜ÏGº¤ñÑ ÄÛùV€r¾"÷gç6±Oøå Â×DˆTÇïý–é,®rî¶£˜­è’…“½WГ„ÃA{8 Μ'";ñ»NÑœì>´jÇ8§Pß h²0óÓ†ÀTb«]8{Ú¸p¤RïY³GÄrÜ$$@ƒšûÜ<ÙR©a‘ÿv³X/0Åz;¹Bzãöyó–:Ýzüä–î›»'92Æ, ×BwC8†éNèvâüõLKš,çXãÖ;M[_‰Ô|A ‡Ãøž ªù¨(gžv?ŽòdÐ0èå[È^Þá7&çù2]}MùÝ`^¥àG:¸òá0Á („ë蟮ü0ʰRq5 *Ô%µêØ£s·®‘®ua_0N…ú˜~uÌ7]Á"S!@Ý«øé?¼—:8ïÑ.†u4I¾Óö‘Ðf¼Ãö!&ìï’ù™Ev²ÉÑ®dO°¹­…±Úí0Á xæÐ¢Lq†0+(sU8DÕ45þümQ`h£ŒLlìN_Ÿ{a©²$9ã®qã¢yÞS^E>‘±‚§m‰ßÄl¾oŸßÔ›òï ™”²ÔüP@é#ÂNäGaCn‰²¥€ió>/¯Ã‰3½éÛÓ¬àøÑÿ,Êìp†ÇÅYk0¬6C/ºJ_| ÎêorâQ2Ynß¹PóCN€}óû½æk"D”²é‘ªØšn“!k°9"%Î7šñiØSìm¶‹F G´ödû_:ÚP©fÃØèi£{njWóôAŸŽƒ!äHÎ5ùÍ}@ö"mÞL#ñè+ü#”F~xÓûÎ÷u–Ÿ""’Q8oŒj8WÍšU}ÞCôÁ;tÄå³Úln³=V#7äÝÞ~ÚË4Õ]2¡éêíÂ}P„|wY5"ÀEìö•À¿šh¥¿”êYRmp¸ŒuƒH¶Þ¢d_L¼ÓæÇú/û›XÉÿçˆ\òC]ØF 9ŽäµÔQo<£ç8Â,ZMI‰."Ì®[ÍÆzËSÏÁ»Z^bÁ-Ãqi0sN_Ó†ëHÄCwÞµª{kD¯ÃHÈGO |Õ@ìÊA%È߯·3U—ê …–WÂÅYp»ô+h°7€—CRfÐål¹ µR©51'cH¯¥åû€xœqáiI{“*¦¤+ÕHÅá 7‡_Ä^©w¤H”³çCm?´Àq™&òïl·€õð/N‚.VõN Á™¡Q†!oTnË+øÅ=d7ÁX½r1pOïÕs²wL8´#ŸÂ¾ÐeXõꜻÆç˜ÈYyfªJ‘NõÔf,Z}-àa(¤!–V‡É¢Ú¸ôíQ"µìÒñ‹_XÕôhÔ×däaöCï£Áh–ÕÓ]Ø×šÀþu¢AVÁ=2?ë]cOw.i ÔB«^ÉŬ- þ™]*R "p¥QW3‚6#X@Œ0Ó¬ zp“úPh›åþ?D‡)‘x:˜Œsi%Î¥v³=Ï6¼¥K¶ÏtÅY÷p$<®\âÌ‘Ézy€$Zwìáÿ‘PÈ7f_²4)ÀNA¦”'h’Ê'Ã$ÛêwgW# G£7™ñ@v@.œ# rñ–G+€2+RÕÒ2aH¤4ÔãÀž¶ç' m~&Ó+Lïè`X'ÖAG×ä¨x¹8‰IŽ‘ì\ ¨Ù·~<]ùp„æH`•>å²*@UiJëïŒnhÉ'hä dýÓ8hÙ¿–vÜ1:Ø åÝj‡Õ³Ç8+:Ö;!(9çhü©°@®Š¯ 6÷«Ml—Œïѽ™=`ðg¹P%?×uä’“#*ôÊJR%$€BP”“S”¡úª ÎSÊ®Pò/ËøMšn nÂÜž*K5¹Mï ­Q+3@i·ü{j”»Lò¯¦óÑ Ô!V¤H£üã‘* ÅÔe“ òBüžêqÓЃ=ýë í d‡ójÏ©ÞQí§“‚¶z?Ï’Ý#ïCƒœ{<ñ5Æi;8Z[WOAËåüMns-ÿäóÎ_nݸu½m“‹ §OÛaöùFî6»?:#P«ÌøMÏ`½W¯Í(Š V’pmWZ¡O‰¢Ø5d´²œªšß;b”9+ºEÍÈ«ð=-ï¢VaG.„›hM9häš_ÑPÔÿà X¼|1ÒÐöÔãj=´¤‰i’$6|ëæ„`°,9õ¥¼JݹrñÀ —0w,ÕÛ€´ë`-žÕ^¦áш:䌜#BÐ1tTáÚŠZx”Až(‡ž„šØ3±gÁCpt€›ù' ¯4<wAsB±KÁN¼Ò:à –ÇmŽÛ1ô"Áy½V÷ì¡TéÇ@³Ôxм÷h`Rs÷6«+Kê®.Q íšÉl™`’/PÇx3ê¬2Qçøn•¹V Ó´<\¥ä¸v̇r}¯ ©;Ÿ>]úñY$2“¿]23‰ iÓd$'³|Mþrlå–-»W~ˆc¡¯"Ò«p饋W᮫6õ—%zYqèò†ÛÃÆA\Noö8uþÒñãç.ݹe£»»+;͇ηŠÚõäÎíΆ„úÈ:VSP•Y¨T…T&媴² ¾RÒ¸9n»Âw•ïS¾ P-_2{w©_±„ ".*!9¾~Çv· SYºøÓŸ¶”kÁê‡ÅP?­øÿÉX?Rpæ–Ú  )¸"„àËýKë¢êZÕ§­M¸ÁÇò:PÁ&Ê÷Eƒ“篜„J&¶^¤‘å÷æÖýç6ÐëùJlßSØÁ §-Úh³l±Bh€àO›?š¼àä–uáÁÁááÁÁáuuuLOm°9w–Ü𺡟¼ ÖÒuÉߊÁLÊu÷ú…ÁÛ3k÷0µ©GeŠRE™w7„l íP…ª¨)—9¨ºŽÛ!êö£ÎëÞGc YÏÃ!Ù—Q‚óË< ¼šÁ)»³m§?‡ýŠ? P1áùÉêžöÆÖØ’¥D&2žÍ› Ü0°,–,œ½ú¤ã·a¸%ËT<¥Q½<qº3¸âgÙëŠédoC»>"A$ð õ ñ À:0ĦG§cJJÙT¨4B´øWpŽ;­¯3‚§ÜïïôŽ‘jtÐNm{”¿í;Z×ï8â°ë’¹š,ý=¬±döÇ%³O»^æÐpä[5›õ “Íĉf£IVð•qA'í´uɶ›5Jf­òöûä7_àò0Åx°ipM?Óô݇S¸ ÞÕÁ8=uãí5ôð)^Ÿ6«¦è'ÒÞÑÕu‹Ó¹?øSƒ^¿kÔo$ôpÊóçŸÀAÌÿl›>{;V†ÔŠû%Úìúi Õ[˜¨Ñ«»2.ÚhŸA¨ë×g\VšÙEèJÌÉâ¤ÝzeלZšÐ2‘³³mþÇȃn]¥y^% ØÕ‚rÛÒ›`.Z›óí°¿þ£?2ãqãhyƒHåozuð½#ºËÉ#£'#€7 WñmGN©,ŠtbŒ/é©9wßôIÁâ’Ó=cö3Ñ‚Ëü%¸ïeaá”Á°U×hyùœÂ‚ ÆîÈïQÎ Í*éŽ~H\—äªÆI¾¾nW¨*E ·xb[¼hgŠ3– KQžtÁ•³7×Á }DÈe•äí.u–Onæìr±:ËSgd_€1™‡q«—évI•òla ÈÆÏ«@V³ÞÆûøñ-¸H̓â[8è°Š†£É‚fÐÜìbY4Ž! @³ð‰eÐ4š‹ÿõi,VÜcÈXàÓŒ0FÞŠ€¥hˆÆî„ã×\×07gÐÑÎ;£bSãÓ¤)@LEG–6½¼ûh÷rß# ô÷ªîWe+Ó³õ3ÌÕ¾ƒá'Ãð»øfT7üÍÒeÒßcÐ$³kGc—_…U·xíÜT nÞ‚ÉþÏÉ^{õÐCxض!ð^ÝXãï% Ø×ÚÔZÝØ¨7`RÏ$“þãs5oDjÞen’çöf]¢ ‡*‹.‡'EÇ$3èÛ¿W&E)H´“Gª+²‹ U½¥›wFáÔ Ò˺uãà0ÔYN0#¯{‰†Á>Ðò91ä|°´ûØ öƒïÃñºß¾¸së4½ï„ú}l0B Ïè?=©ZJƒjp8#§¬õQz3 TjUƆtâÅ̈dÉ`¦¦ñ7ˆöŽòŽÞ¦*YœX¥Èck—–¾™Bóù ¸ :*º˜tPeU ±^¨L`ÑÈ p4RpT§qi8Z]¼_YÝ}Î2Pû£'Ûq½û´\’›ÂxÍv“È£r¼¶°,¥¸üˆªõ8Ó5*ßÄ¿™&O%{½kÄâ›t/ôþ^Ì7‡0ÔÁswa½Îâ³ËtBbr QúÞOŒ˜¨éîK$Á J ¯œýåî±Ã×ÚO^ßPÐzü]4õ[8oö¾º¸RMei]AJaB6S|òTãE@=øj׌Û78º¼ËÕWhPN¸Öï¨Y›é¨H\BËSq)d䨽~ÂNÚSìL´É_¾¤Rh%3š7'7xÛXúðgõýbV©g@õ˜}[|°ä`ñie•1t aÊx6L‰ú¤ËÛ»O)ӯ꿹9ÞùI' ÑíÁdúŒ³€éöƒu—Àê‹eŸ!>²^±c¥_µL­ßOQr^ZÓØø¹þøåæo·ÀhŸpÖ?T(÷–oL ˆü®O"æ$ùÛÙÕÖmZ;uÏ¢üS¡lVV6îì¨*‰Z( öŸþlfºaß?yÊžÏw^qlÐÛÄÅBk§6áïÃßsŽÜ—tItIT\rJr%ÃÅ+17¦ ¦P¬ñ! 8J)Ž R*ª8ª$_•¥ÊfêjJŠ@VP…±…1ꈠԕT–ª‹ë+@Yw±'´\_5¯þ¶[´Â4:!wùbÊ/7©‘Yˆp6“s«Mpr†Ä=ÓÕÇúï+’r|™`2 ¤(bÄZÐEÑP_Z¡—|ƒ“Û¿ƒŒÎÂúªs‹*°“ÿ„ œíÜ“<Ã)¸&™:BTAú%%ø³¨œ/¢¦²Ì¬¼¦¶éHÙeÌ=8±ÌiÁòOæ¯É¹Œ=š“=Z/*‰ˆLØ;÷»Ðùí1´`¾Xô+–¨Æ(·tÀy˜Ø¾†²NWÃ÷sƒátõÓƒGà(‰ËJÁ?ÉØ…aeâšjuiC›÷…‰¸z G#x…â¡å²ß ï×ï 5$gt¢>Œ€s®‘nž´GGh'°·M¬•«*¹Š@‘ ð2€3ÖcÙòR,¸:®žùòþùÕKg9nt0˜¥áZ´¼ãºK¸l À†–¢µ¾( >” ø5—–æ×3Y°~—i¯¨ËÒÓA¥÷.„dr‰Tœç Â%¬G·Ø*7Jµçßi¸Q8Ó}ž[À\}Þ33!Á3u‹oš’îÆ(=ÁÞtOeh (Äé‘‘“~8ý‚ò†ò‚ò\æEpžê*øò¦ká.œ(:ý÷Dú³æg°vÑËœO´Ÿk?ýõ½K;\7:»/c¿ ¿©=Ñ.QfßCý‘õœ…ó7žÜöu(#ø}IÄšõK†O|:6O=»ëte©†Yˆšè¹Ží:íåk?>¹´vÝJÇMs Ìsžâý›ˆ¹Jüüàg‹÷þMp×éŒS¾91@‚â2Ü ‘»­2:#¢é¬2e©J»ÿ÷ziàè[pü-8ZÍkæ¶[p}àúK7;’ep¼ÕiÓ /²ò³ZÂò¢]H RÄF£¶cßyw‘‰Ó>#¥h¼ÕvÓCdR‚’Ej3ê Ò™8Ðê÷wÜGC1B7Ì0–42,t4±,gùOšEW,ßE½X=`¶3¼­×CÖ_ÑSôÎO×wYÒ1›½$щÉi²$eп\€–Ÿ6yy‡û—ú´$EÝÓ:à˜^s{GûkükÁ9¼Bgæ¥ga¼ë™;,I‚ Õü½"5^ž’ì$%QåUÙeù™ üþú‹}W¶mÛ·~éÒ–õgδ\ù‚™¹œŽ•Ô?^^[PPâî. Á2a3f¿{{Ûwl÷Ú°äãC›N·µ^¾kYwüHYCaaY §»$8V™v ç®6Jõ\Ÿ]˜Ê©JIATBš"AÆ hOBrL"ؘœ¸¼$øò²-JÈPàr^R^PYŽïf³è0t´2âþŽÕòêtªöïÚ¡-ÞâޤMpJj*eC–ûÍ Ù£ñ¼&¾ðâ¸*)mÄ—Ë·mv›°;{“f-“˜¸a\! ‹ò»¨Å§¾WÛÜäl‘øÓa‚ÿ‚' ŠÖúîSßò¨J9€R–—ÆæÊ•¬°tÕþÐ"H\±-È.ÌÆ “ ê÷0h°CzòSP[žý~~À/!Hé˜Ê âš,W’€8F-ÉO.ÄAâ­GÄúؤ˜d ¶KA‡8ø¶>stream xœcd`ab`dddsö Ž4±T~H3þaú!ËÜÝýƒíÇaÖnæn–…ß }OüËÿ=J€…‘1¯¸©Ý9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU»ML:çç”–¤)øæ§¤åeæ¦200000v1012²Øüèàûá³qÁ’ùŒ/¾¯dþþçGªhOÏ”yݳ8Ög/ÊMjÈ©i“û­÷ǵ½¾»£»K²zkcÏ”Þ Ó'Êñ/þi¿í·òtöÃ\‡¹/äáb^ʽhö endstream endobj 1506 0 obj <>stream xœcd`ab`ddä v ò5400qä~H3ýaîîþáÿ#ˆµ›‡¹›‡eÙw¡‚où_ 0012Š©:çç”–¤)øæ§¤å)åç&æ¡ 2000v00”€t°;ýgôu`àûÏøùò’å Ê…„|¯û(ÖYš•ŸQßÏ¡òÐà;çg¿Ê /xkÿö7·œð¶ö®6i¾²…?œæ~Ïë™±”íwh7û{®½Ür\Ì-‰ñ<œ äFä endstream endobj 1507 0 obj <>stream xœ¥X Xײîq¤»5ŠÊ¤E\zp÷ÝWIÜ—QAP¾ï3S3ì«‹ ÂÈ*´·¨‰7côÅÄkbv½ñ’˜jrÈ{ï hrs“ûÖ¯?´Ïœ:UõWýÓ»£P(¸%«6MŸfþÓN¦‡÷’G(]HúϦÎ$ è§„~½ë‡‹k¬dÕ ,€›2J…" lß’€À¨àÝÞ>¡¶ãvŽ·>wîœI¶3¦M›k»ØÏ+x÷NwÛUî¡>^~î¡ôoÙºìÜíe;nžOhhàkS§FDDLq÷ ™ì½`ü$ۈݡ>¶Î^!^Áá^ž¶ËüCmW»ûyÙöœnJÏÇ’¿À°P¯`ÛUž^Áþ ÃÌ_ìï°$picð²§Ð7ÂÞ pôXµsU´çj¯5»Özû8ïvÙ³ÞwÃ[~ýúOž2uÚô3gÍ~eΫsǾÄ0£˜5Ìhf-3†YÇŒeœ;Æ…±gÖ3㘠Ìxf#3qe61Ìff 3™ÙÂ,e¦0[Gf*³Œ™Æ81Ó™7˜7™™Ìrf³‚™Í¬d^aV1«?ÆŸ±d0™AŒ£b^ff0cÍ al˜¡ «èË, Ñgz3±Ì÷Š=Š‹½–ôº¬•™Êïz¯ëm²ØÌ²ìrö:7™ à>ä#úXô9ÚwD_·¾_ZüÒÇý¦ô;Ñß©ÿIË–q–Ÿ h¨xm8è}«×­2TcTª{y¯ð²pLhîG¾h=Çúþ©CnÚxÙÜê<ôÓaÃ×ÊZËÎNÐN’—+;*eÿÎYBbEDC¤%ï‹"†®¿ I‰Õ&/>\ÃÖN« .ÀIí™~£%N7 éyƒú ö·Àö ±³˜D¦ ÍПCm÷ ùFö%U$’µì´¢vŸ¶{›¬¥²Öªú‡,«Ë4Ü1ÃcµsYwLoþú2ôâPñ°íZMIøB‘”ýé’îÇ õö7:o Uw‘áÈ¢d §j¹š žjËÎËÔd‹ JVhÖxGí­U2VÉ/ x—sOÍÛ¶`ëª jd£d¿{îò_Íú˜Ì»–iézĪ~$ŒFödñµŸ?ùnö òR®z6¹.•Ø‚Ùb Æí„;¸@"Ÿäe2F´”?HiU&E5¾ŒÙø²R®G‡N}JæW§%6dàçöø:Îûì)IY) óY ¼}°F}ødSI4ASL©OÉnX[ùY@¢-;o%JòÏ’â:N–µmÊÎìÎéÂaÈJÒéö%‹o®]uæCN`CŒd2O܉;ÒO4â´ÀÈï3DÇ'A´^½ %ýWÛÁ|˜sÄõÍÅ„;ð\HGæÚ{ï¾÷YþYzøva)Q¥GteÀWŒ4¦Vd£„#M²¢}gƒÕ3šÀL|ÙZuñ EE g³J¿qa5±"#]—Çiàüvub!à0?¿w³Ï©½Àã„¿j´™ö ³hã[Q¡jÕã6Ž8š3Hóç¥î2üYÒ9ËŸ-@’I šÓá²5Ú+ѾS%t=2gi ‡›qut’ (-ê. ‹Ú®G‚üí¸÷àÓÈ6ÇÚM9N0ˆ"a£ïö­N3cVo)wm.Ç×OìÆÌ j2òé,T·µ5´ªU÷‰ëŸ¹!ãÁYv¦Q€ÖJ˜wÎìÌ(œ-);½ñ¨ aÈ0ƒ¬¢;NÂÚvö»<·Åj k4ìâ$· âzÌÃI,Ά ‡¤?/±oaŠÅ/ 3\?¥Qè´b-e?ºu!Ž^ßN“Äw`ª„#¨C:ç ]qÚžÂ)hTÀ©nd–á¾ËýÕ©dêÔf,E[³Se ö“>Ô)KysŠIVmU×ä~ è/kZäÞ( »²—çƒÄ_ýß©ó_Ÿ)b ©%ÀÌ2õÇœ¹Òté)údíÞÐ\[ï,,ŽV7øÔ¥ÜãUL)wâ×]4ÂFÝnNS‹R!øH U I‡²°¿D4@éþtc«ïY(¾ §Ú5GÔúS«îzVúfÍ/ä-ž(y— §$÷•¬Ì•9Gmi³VÅvŽ<'T^ ʾ ÷«qÛÇ磞°ŽpC: ‡ÇØq* "Áß34(Ö7ÅfÃìÊ-WÝÚãoÁ—€½‹/lk8s÷äwðÓK}¹¬‡KKò\iýëÉTbOv’­8–LÅ|µ*ötÏ\¥8wIiÀÿpa±¢ƒÖo_IÙ!ÈQÎö³°[µ\¼-žÓlâœ|CÖÁõ2+)];tÑpzû-ãÆiyoZƒChâë%,zÿ!ŽRvî£eˆŒÄziǃ}ƃW ) b}Çýñ]wáruéO(}4èëƒõø!©ÿów´t¬RLÞç(¡üDÊË?æsè˜e!q«öA½ZÕ"SRXñÜ]¸¹›6:,ЖŸñ›ß½‰ãlï‡ýMTEVÀÐz†é_ÛÌ(%6™}c%Öƒž}ƃGÏùYz~VÃ5Ò3¶Òç 4öœ‘åhCI+‘JŠ ùm¥œ.÷²Š2²¯/qÁ:}0Ãvc¸Á¼ w¸R›¬×ëÒ’Ô„'éD…ç%vnº^Oyy»Ñ£{Ùu—tõ+.„B°9yéy%´oõX)ï,Qv†Q+™…9—ÍVBu~ú1¬ÇJn›>Q«MÑkÕ£H.añ„ʼnõÕ»êüÀÜ1Ý«.s%›AzH3¯œGÖ…ùæ…:½¼;Œ»Ÿ/ÄÉ]}³£3ö–ƒM9däe|†Cž‘‚ßýä…“Ÿ„kŽãd“U5öY€ƒp–9aárß»Â[°íñ4[\GÊâ!^½Ú@½+ã)¬-}—Œw&–i3wÔF­ª.i:yPkeU €¿Së¾P½›VÎR-ÉN"c‡NÄQðAj,mâ£qº0‰›85>xÓÎÚSÈàŒ¢3锚;(t;$E©|E‰C½€}ppaQVö§`CkSçªO¥™Ùl è‰Yè ö¥¥€.-mÎä!㑳hØ ýJ/øÒÌìé^v‹Ãid%±&öёްlhW5ž5dB9\Òw·|.*23ˆìõcT`/2ØÂSÃVÞ1ž€jhÑè^µ´Ú~%ò®kÿacqØCÎþŒ\¬–ÉCwlYSú×ÐHŸož34ah2‰qa‰Á´Ær AîM§ì ”7P¤ääË—ÄA”Ø¥dÈ ‰Íê¨2uÿW–Tw1I‰´Ì“l á°(dáv ›d³š ~6ÛƒCIVvãðW9+¿Ò,lápůMVþñ1I\9U[ýf׬=Èݨ™d$òÕ$Gñøœ>RUÎãµÞ$‹òXO' b Øÿæi8_Q¯®l’òªà"4ø–úóÝ ÓÇsrÚ9%žïœ-$è áôKQÿ·(srj×§y ý°9 ¹ejù¥ñô#éF8|¹™¼œ)9»ƒëó_΂ƒúCºJ­Aa|×x ó#”@WžÀ×zô}ò·JÙƒÊûÒ<8Z•r{óõ.ÓÆCËè9gÍC‘¡ßOÀÙ8£ùÙÁC‘­KIQ‡ouö]NWŒÔ£ÍÛê½õ†¦’ •€}ÀH¬ >´$Hlìd»µþbœ¬ìlÀ¯|‹Œ¥ƒL0‰¢JsÙEv¢-"ŽEw±«7yGX Ç<>Ús5ù<„ëé=õ—Æwn”_¦ïý€†7ëVd,'pL›á¾l»ƒcØ*ñ‡î¾ˆ&íˆÌ# Ä>òZa‘æéX¦aÿ¨;“Hÿ§öú(·<3tÙblbr$Dònµ‘Ç«K›¼[æ'Œ;± ƒËQºN#¶=o1ÕÔ!lBÚœYÚµø¨Õ^ãþJ^SwÍ~ÑTØ?¡~ñ6 Å6ÆâX¸d), Õtä"ÛL8é»[& m´ªþÆ•¸•ð¹ãCkÕO‰˜ƒÎÂL¸ÑÒ7>ÿÞØ¾Þ˜©&–{…Ö·uå´3Ži¿wS >{@}ü@‰1ß KÕ%A |0ª¢âàá#eѵÛb5ZŸbT{Ébš¼1ëç;z{TÓÉ¥“ ðIÙ>b3¶4øÆkÂa%¿©}jÐñÞå›Ç“¯½Q#º[!ˆª‡TÃŽìÄ:8yû³rø«de!¶ -`•·ç2˜ôÛÒÚzå©»çæžT¼P:J*Dš‘ÿÏ̼iÝÎP¿ýÇʵììH4KXeªî‰y8&á[œüåkU šð«°/‡³óW»À«d®'† Èû]xJz= kÅ®¿&ÏD“GgXš¼] «8ÕêiªvWûPÍëo–›»O…]M£CáO…_(¥8\¿7^¯NÕø‡ùÁHº•Ú¤ËO~_Ÿws}•Û Öºoá4«{”yû"c­úCåq0;tù×á¦ÊÐfl‚ãð¶ÎÔUœêiž|C8å]ãîæããæVëÓÜdª9EjE'ëo¶ºÞ²ý1¾ÿxA‹µê¶l'ÏÈØª¹.5ðŽMó±«ßüt7^&f„€îÅÈ+º%8Up{Åí;Öµ.Ï¥€LZ2qÔòÛJÂÔm[jö¡"„W}ý9U0¥áûcË) ø­AËF/$“Šq|²¨?™a/ÆåÝãG®Ñ˜#¶¶¾·åë”F°Á¹WÑâ©ZuPùÚýi‡Í%kæÛ ÝapÁAM4Œ9?~*¯4ÜA(…ýºÒ4ˆ‡p¾k$·9vÉš˜dcF¬x¸(³öóµAG½½‚½¯ìþäá·gŸ‰r"GÃø:ÑkÝ^§¹¶¶™§‘ÂðÞ%E“„ûhñ&S}Ú9Gøe6NR(³ä¢EÞ}üÝ®{d²†=ŸNKï2}èÇùžìO–ï}ÄáhÈ{=°Ýó]C×vQ•tfß+ÈÛ~'pÎÐ ž4HFœ„ÓÏ3¸ U\eYNVqÑSb5$7á@hù¤(ˆ5ÜqãgTt™ F_£3¯æÜ@›€ÌGï!8øiQ~nö ³Î ÔÓJ „åÆÐ=RéÚœdÊ;k»ZS±à_u‹ÿÁ’®cSã˜i®›·‰_OM÷‚Yà¼Ýw%¯ºÿÛ\ÛócÕqÍÅë¨:l2ßLà ´mÆìY¤Sè‘,ðQ“¿ü™“òDŽ,M¡êP:Õ§Äþ ûà/u_U–¤Æ—‰Ñ)Ѱ“÷¬ 2¬,o<»ã:éE’1ž¤hÿœÁþ¸%vp/Žd¦=óqvÑ Ë•4èIúõii°ZK1úæÑNÅÓ¾<ƒpêÿjCÜõço8r—º÷„ûáñ¡k¥Gµ:ê†N'îMH‰ƒHÈ?Ÿ™FåX oGõ… + ñ’o¡ƒð˜\šÀ™aÓ÷qš÷ÞþX ”þÒK~v)V\—•²±s­YY`à‹còãÂSãâRÄ®ÿ>%5R@oq ±¨$³p–ù‹‰&ùK“¢…k¤ùª²?ë1™¤=I?Î@b0÷1ú{‘¤Ið—ÒøÛIgáh§Óò»9g ÝÌ;Bk´1òðŽƒ»`$̘¶Ï5nÊÊ8?óÝšÔ)Ò©b&àKJü©S)”B^P¢ö%‰ œÇÕušbö´.滊ˆZÃJmôyöâÞÈ–3ïDÇÇ‹8²NR\Ä1¸ E¥\„ÁtTÑF$­ˆÛ—˜²ˆ†”'ö¬T¶¹å²®Kð-Üè©í?yÕôµ§cT7”ž9ë~ 6C¬yiC~šA¬=v*§ øOÓWì‰×ëÑ)jNŸªß«×í¥:CÕ••‡ÄS,*`ü& Œäšq|«úDny94ò-¾U;Ü}7M¼tºýý—"5 íþ)?õD’ìHC|Û<š¬ÃiÂci‚<—=ªË ×ëcDò÷®7-4ØHSoó½Ê—ÝWöŸýveÏÒ/`ðšE·ßïP0Æô´ºˆC_=G{ô(ª¦hÀ· ÈÍûšŒóߨõÕˆ8„;–𝫡2Êî+´(ÏÖå'hõ–¨vÛ˜â aãá Ü$*ĵÀÇAbŒš´Pu_ZhÌÈÉë[ÏçQö3_W«~v{Ò/deæEwÑd¬*,Ì0æg݇ƒÔì|výò‰¤÷2 È8Ç u@Ê|Olåàtúél)÷FÉåÚF¾Ûyù>õûá†;xðΆ‡æëÑ­rˆ“pjø›_d7<8ãá´%h÷ñT°pÓTu .ñŸÖBX¢vœ7qÇ¡•÷vˆªGsvíp^<”b™ÙD¡5ëþçØ ™9Ò–c"Yè$ÔFIío >[ù9“cœÇ;¿}ïÞ¹æÚâng›KpP› Ÿ™0Ü–Öæa†ÈP¼(„qà´6vw´§ÛöeÞF¿â‚ô“EÐÂׄóô òrzÛ™ õÁ8ýæÒÜ, {ɨq¯‘¡DüÛ"ʈªŸjAÊ®»É¥‡0 î|ÿ>þérÙÆ½ê‚=°vó+ƒÆÎ)º˜ð LfºiR\ïÀùº˜+1IV K¡ãê5è¸ÕÜîA©Áz—ZnÁw…ìÜŒLÈëû’ö&‹;\—ûÌÂÃë—ü¨V Éßüœ™«‰-û¥óýo_ÆQ‡À+©ß󻔨%Ðj°DëRý4¢{­ „™çk2Ú‹ôýŸPÖæ»”õེ/«JSÒòE­.0vAtvø¡~$g™˜/¯ÍÅí%yù,Ù–ÍI}‘}IìÛ{Nq¿> Ùýú!{¬_C?K†ùOw)Ð endstream endobj 1508 0 obj <>stream xœ¥WyTS×Ö¿1xsœž½Nµ÷òêPg‘âÔ*‚Ô¡*Šqh™’@„ˆÈ S$LQDq¬¢HJªU4Z[_Ûê«õùºNúo½ï& Ð×~|ë[‹rÖ=÷œ½û÷ûíáÔàñx¤¯_@À\û· ¶·y¶1ýlïð3pœ­ú·åýÁ•®Næ1ÃFÿ}?¥FC>'‘§úJ£âea;Bnƒ'¹Íœ7oÎT7w÷yn>b‘,,8Hâæ¤‰ƒÜ"Òíip˜Hï6q~¨BõÁŒ±±±ÓƒÄòéRÙ¯ISÝbánkEr‘L)º-‘Jn«‚Ä"7GpÓŸ¾RqTŒB$só“ E2 AÓ$Ò¨drEÌÇAÛƒ…¢Õ!þ;BÃ>‰O¾u†{ÂÌDõûž³fÏ™;ïÃ'M&ˆÕ„?±†O|Bëˆ@b2±ˆð%>"Kwb)1“XF|L,'< ?b1LxCˆ¡ÄgÄ_ˆÍÄ0b ñAÉÄHb1šC0Ä™p!¦sPN„‚8Æ›ÄSó¾íÞï2_ÁÿÅiS]ÿý£úß ç‘…ÁŠ¥¾ P9à{gžó8ç ÎU.“\â]Œ®.®yÇÌØ5H9èÚ`¯ÁLJ8Y1$Ƚ¡[Í [ XP»…÷“ù[ù¶¥èýbãñy>Ÿk4Œy—!˜ñ!¢ <¼ŠÙ#¸u{ï yÅÕPW ìväM>»}øô CŒ?ƒåá‚D)·« ,šÜgÉÝ—aA^›¹û¤(’Fƒ¦ý‚)LM›€á¡Ï¦ ‘Ïž¡¡ Á3h_¿ëO\¹rýú••žî~ù²ÜXfAS^‡­³òQ(–Ñ}bÙD7©Ž…ø/~DÃÐ@Ÿ±ÓgÛUÒls (—RWiß”Øâé/.|~éë Kg¹/]±Ø'äÞiÆ’Mnáݵ"½•ɆhUtÏe]ò¸î÷« „EBz„þŠ<Ñû³Ð<†Åý»Zh›ü©9µáá˜Ä‚µØ÷c»oµðÐd+ò}ÊGJ´‚F¼;wž3:aMZ1P•ÆÒÚÊø# f¬ ”ÉX³à&?œÁÖŠ[ö®Pa/ÎíŹӂ -|Ûb›m€špEFrú.f{i0(€Â^1sB§ÿ3ᡚ=—z;6Q;DbO¿`ãE%“Qœ©—%Y<ë!Hi]Aénss&ü<”sÀzíÿ±Á”vXTË›…¹‹õK WÀaªÜT÷âñîˆx-£‹¨„B ÁTÆvGÓnùG9MµróQœG#OÒPÃ…,…D{Þ%ËÀ$²_È|8W(éáÏßp‰ kØ×-Wn’@jtŠF–Ídmß%ÊÚ*Þÿ†Ä¶‘´­ßQ7„œ¿(Qäµµ Ú/øãs9ãŠäog e•̉ @Ýü/êv³ÅrñŸ·µÐ¯HC-÷X j7Žˆí•xÕ%Û»B ½»Æv‚¦|ùÔÂ;kEJ.X_TOß[~¿óÙ8ðŠ*‹1—UëëÈÓj‹t…ÚÐõÝÑÖ ¯—áÁ>×Vür÷´9¿ˆ5F¶ì:Tu•Aµ(uwކ]ø5 JPãBã…ÙI@ùo¯o8‹ú™¥íé²ñÞèf¡­ãHue“ñ kä*WÊü¯:Âo9ý™NºIwʟómሠ÷«ò•j5(R™ø­Á);€š»øêƒ3EÃjK²²÷°»³µÙª“U•@™ËöWß ›ñÌÌÆ®Ï& ·Ð»Ÿ•ü.öCŽØ¹*ÿIìx2¹ùpО(ŽÜü‰Óð0<èÉ$Ôïl‹©¦–•BÜQæw%]ˆFÐk7Ï÷^¶Êòð‘ÅÒyá̆€ž,†u W®Fß ¢;|ÛBäO—™ ¹.ýÓxðä÷8§ry1Aï{XiÏQ¥ÉŽÑ°±[6i"`,:•ð ¥í  __8mÇP±8w#Ŭ±Ø2-¼v+*á£/hÔ¢¬Æ«ñª˜(|·£Ðj´j5:Â`!ÖѳAnL9‘|¾ƒ/à+¸Pxª¨ýPÁM¸Õê¢5ù[`1¬ƒ5à­Ù˜²1N6¨×®‚\8š®à ¬·ËÌ¥Ì\NWN´0»#ªÔ¥@«Š~9¼æMc7Mé•ÝsÜ:¹¹TûÌ=$žÜCâE”æ RšHh'“È¥ó‡§?y?ÁX¬ì-Ku—<ªÉï­Ai“;½$Ÿ7/Þ´l*;Þ~8Žë@s;Nu €^‡­±¸ÂGãC—hêÔÍ@=¿yóA}Òä2¶¼Sˆ.W^šR”©¬Ìt@V³!j[Zt(›š+ªØÔdψÂPc4›–”Rè¥úÄ ¹dgwï#b5Gëaˆ¸øðÁÂV·F¬õÉ’äP[á¤V¿{¯nûø½qk˹sÇZN·Ý¸>hk «ÃKè‡È >ØîôÞ„Ž67>rV˾î¥=úúc;EËÿh;]òÿGu”¼<´“+Å5[m–›Äb¹\,6ÉÍf“ÉÌ`?<Œîõ$nÅúxÔÉÞòN@·HG”oèzö:ª¿Î·Ún9Zˆ*ig(§æ¢mµ^œÊx ¼<ÖÖ óSÙ#Aµé7UÍš‘’ô»L1% †(ˆ¤·­óÂüüŸÓ™ì²ìò=-sô}ÉîÆæd¤Eó9g2Î7=jI8^ÏŠš"÷Î.É“ìM׊ ƒÂIêÔÉ×`ŸGäfOTô¶–ß¹r'`>Ù í’ã¡}Ößôñí¡o乌Hûß&Bçè @N3÷'†E3q‡¥EÎVÃÓ#£ÒkTé(‡ ²¸U!ï)ÍÃn¥É!‚E¾‚{GO4 ¬h^ ëúÿi‹] ¬9£·yhrç£$’Ë„I©»âÒ!†R«JýÚ†—‚~ºM±#¢"ôxÁn­vclé~ïm>ºÿÝQ, >(­o®9Xoß0ñ6¯ÝæÉ·}8‘.l‚Æ&$³ø™"‘°ôöûçS”ólÁ¿¹Ð{‹µy”)Ö/KS¥d0øÛ/Ú™ 6J^žXZ™WR¸§—8§¬¨žÒîs~cÑÜ“ãð(¼û½Â#PDþBË,æ¼nÁJD¡qèÝ«Ï;;¯NÁcñ¸˜òr`A-_¡–×%FÁ4”ÀÙu5çÌÐ %z_&hB#t”¾ÛæÔ¾ _Ï.C ÄR˜{ªÐD¹&$C T‚Â8èYDgÃP86ÄÂú/Å­²›PT1wÊÁ(-GŽá:hS·«ÚøW_pãKÂõ%(Ó“4ÌÖé›3#³ÔÙ‰ÉÜeɹJó©–ÚÂ"¦kЇ —r{{)çA¾ÅÞæ£ößFÒ…Ð$â Ofþ=OÂF®úž±SÍ ð9ʱòotÐI)é@…ׂAɺ‚¼z¶ZÐ=6)äœK—ï^®«mo=ß8A½wÅÎxÍÞv(Õ`¬.®ÓgìKÍcJŽÔœênçæ9>kýWmø3”·Ò°J*òrp pþÀM_jõ6mQb€RØï€¾ZW˜×WzCŠÚðˆêl.ßáY ¹Zž“®ÃzP9ÖrâYT²]?µPlþzwå öü8åÝ-¥_Ek-¼›ÏÅ€NÓ¯Ž}´ÉŸ{Ò8)bµZÐjµ¹ ÓpßuCUÆUH¢ª0gh(óý?´‰;æ71ÇÌõgá"uÇ«ƒ›¼]|·,Ѝˆ¯ª6«K2÷dæ2«®@P׎‹„‰™!¡‘¬D&ÍŠÈZ“©Êæ¬Ë®Åî"¼´Ø(®Z·.ó›–NM‚,PR‘{’¤¿º/ïuæÕ/;{Ûî"ô’<”šÆD’2HÏNRRس‹¤Q$zÒ?t§]fA3-¼ûÝ u67_¢”>{?®I eq¹@ÑõŹ9ùù̾âõßuçø’•>KVÏݾ¡¤)ŽÍÉÉ+u@^*WD'î˜uÿcÔ ûåâ¿üðvŽ ÊŒÙÚ­QTiA³8߻ʸiô#]†ÞûûW·¹š–f¦f¤g$C2%+U˜ÍeÆÚ³Â6î ~‡}>ÅÈeésäôârE|ǘô ü,}'S€ß§µ:mä@~f.Eû¥Ï;;/¬Y0ÅZ_ïŽK Ž›¶Þ1ëçœ9P\žÜ˜Æ.ÄKûS) jlÐÖ3Úç?5=jCƒîܪ«ËÏÛ zʃï’;‹ã ÍÞHäqì6AȹYµÂÔ“SºXx¬¨ˆËéú޾\~ù8X¨oçÜå"8{þ¼™ˆR”É,Šýx ,¤¦=qGÃÑð'O~¼½¬Ý·œ™wˆö8~ætÛ‰[·Ú6oܰśſ¬úâ²¥£íîÝŽuËVú­Ëvß6Ë"ÝçÛÆ£ : ^àî™ JƒV›§‡bª2¾B,ŽSJŽþŠ4˜jס4ìt}"î?vˆùf"òÁÙ“¹{üní½öâ­{×ÎÝø» ;§h K—Âj3!2©UË7/az{šÕíïnœ¿£ÿüÑà?Æÿ¡“…2…4)}WÂNΞTU™éÅyDµËŽ*”J„‰y/eÙODŸÜ¾u›×hÛÄ·ù£gtA#× ‚í ògR BQ#°èŸx*½¯šE añ¿HˆkÍœ¿õ:š7WS¿õœC§ìMÏÁS_ÈÑ$¸ ͹7X®k:sHŸ§ÓC.U”Z*Ç[ñh¼ç!î)¿´ˆé=ˆëè_öΑ‡·¢Ñá J’«ÉOge­¢–ü Ë`%L å9Ò=>)ÍnŒêUEâ¶£½ö“m£¹“âoر.ZŸ»/ŒT•²015;;)†™ú‰®AÛ £ª’KäÊÄ$qˆ6HÂŒ¿¨ÎÛ¥KƒQ‰Ê”h¥>½h'û*`\@rº: ”£¢)†|î·Ù~æ§óY!ÙA2*Z¯2 Eæ†ì–¬æi@U¢öÂ(ƒ±°Ê°3?9ÅýÚûÒØ|ów‰ãrg« ãì/u`quµº$ˆÿ?˜ƒ… endstream endobj 1509 0 obj <>stream xœM_HSqÇïÏÍyɹþÀ ¨¶ b(Ø\ˆR™êƒB ÄjÌë¶ÜÝÝî®.Ómº™º{æÌÍ?Û”¬¦› ³"„&¾WôTôÜkA¿;®]GDpÎá¾çp>_D(Ë„ÊÜÑÝÓtÔÕˆg‘x®L<¯)^¬+†ËA­µòi±ëæNbçql;A”#äö…£q3ëâœvOÕÚê¨KÍÍMõT£ÑØL]ghÎi³º©+ï +/.ª›µ9i~ˆª½âàyOKCƒßï7XŸåì×êê)¿“wP]´æé^ª•uóT§•¡©¡TÍ,ãàiŽê`{iÎM»h†vóÎÉÐA(ûìF‚¸MX€€(—ÍJb]FôYœÒˆRÞZÚ‹/Æ’2¤Â‰I•ÉOBžÄòßìÞzѽ}u†20 àœÔÿ˜Ø±$û¦Ç`¤$ÿuƒ}Í“>óíØFÛ<£7…‡…þ’æÆÅ2^:Ü;Æesd`Ò¿í~‹é4ÅySÏÂÄž¢ˆð v) ÙUèmª ®ÁU˜ÀF ±IõO‘Ì*©Sª—.HmR;6HÕ¸]Íÿé&•dI¾Á5¤¼y"zWÐ;<£ÀoE—6¹,ÛM›lÖE‡\Ã:éôá !:áLhs,™ˆMg:/[4­ª$ýbEáX¡²°¢VËYE¬FQ endstream endobj 1510 0 obj <>stream xœ}RmL[U>‡ÒÛŠP7—ÐK{§FB˜øÁæÌ€8–,Ì91™ 3zný¢”Bù² ôž–B)D>JLHŒ$jjfLŒÆdAýÁæb‰F“%CŒ9§œ‹zú¸?þ¸¹Ï{ßç}Þ÷}Þ Az€ª*ª^½\R‡ùä)Hø4’«@|ì ^yí–e*Pfú¯<ý8©ÔÑáC>Ÿn`¡yyô ͦÓ/ÑÕz š]ÔˆhÚ¨ò{FP©ÚG“ÚÄ×þé#­4îE.¤®æZ¼¨ëY‰^o¢ý›òÍ¡;ÔF¿î»ŽXuÏ(šœb=ºà>‚ó¶ðœ§Æ«0´ÁF„{âäû²º¯ß®—üv]5g—¤&½ü­ªÉ/-èV¸¿^ÿß]S|>vN‹¦*±ƒ*p7=…k;o |~ÉßÔ½¨‡Íôž[·äö;ò}ÿn©ºkÍ2áAþñ‡VM؈¸¥u!/’<Ì$c éÎbÞmêÀ ÚOÑÚIw°?è H~i ©§BhŒ-ë ëé©Í'_H±~õ„µè6L^'ïÿ7$ï'ÇXBŠ*pˆ…Ú(¯RÑ¥ìá4;Ëw®ìä.CR*/j)–Ï÷öH>4ã £ºØ·Jç8sî ֎þ³Í4©åÓ~@ÊBáÀ æ  ä÷†ér)›ænï[£¯©ç¸çq·rw->˜Y¯á•süÎà&ŸþÇgOßfX‹³ðLÜøÌÑJª²¸ú šh5SÀ‘ò{h”©ç°ÿl¨oL®Î&ŸrøIôkWØ÷eïfûÝ·æ:n¿}ó$ëC³ðM%Ok9'’¤A¯4ˆÚ‡Ìï6fË“òŸ=ï¢~$%Jú幯˜.æ‡+î^ŠRÏ­×påS~]ÔRO ^bžíåS~î×3þ:öDé§Á{×9ö±“ïi;+2‹f¦uä;ÕЏZPk»NÓ:ÃñÔ=£ŠfDÕe¤»m™,‡23Ù“À¿MXi” endstream endobj 1511 0 obj <>stream xœW{TSç–?1Â9E„*ž tz“¬j©Zk[;³”Ú:µ´â³µà !„ äAbxJ@ 9Ù /y&<y‚Q ¢HÑÒÚÚ©öêeÆGW[ûZŽcom½õ;ÌéÌš/Áöúǽ½3³NµØûûöï÷Û¿½˜=‹àñx! [’âıÿÀcŸÅþž\õôÔty„ó!|¶ÿñHá|tlÊ‹DÉ|/GmHPª 4Y2¹V´X²Dô||üÊe¢Ï=/Z›#ÕdIĹ¢-b­\š#Öâ/ Q²R’%Õˆ¿$×jU/>û¬^¯_.ÎÉ[®ÔÈÖ,Y&Ògiå¢$ižTsPš!Z§ÌÕŠÞçHE»-üHPæ¨tZ©F´E™!Õä!ÈUªÔš<­nÃA½8?½@’!͔ɳ¶e+r–=³üY‚x“ØJ¼E$ÉÄ6b;±ƒXJì$RˆW‰]D±›xxXG$ë‰ ÄF⟈ÍÄâ b.ADB 1›¨!~äéyßÍJáü×ø^>7[ò!‡¶“‘ýTUC}ÿÈΰ…aGçPsŠÂé𤹱s“çÊçšæžeMìEð±!¾×|4{ eNEGDo fú§}çÂû-»ßpEdª6ä)k‡å4œ†ós&|¡L ˜}ÚFÂgàUök{¤-»`9ì_W¢¤Ì¡QWïÜ“†y©¡b·ëü›‰6`TÁ6zØ¥.ž÷&¸ÉgóQ¢Þã"¹¨8·€›wo1ŠDQwï¢H§çRè] vi«‡Í0 Ç`Ò5Ô;~Æ6“0”Ý™Õ-¶¤€2á-Í>ejª^ ®–ÛáCË\ìï|…=óïO¡®›ÑQ{Ñô5íï\ç0P×Î?Ï\hâ /¦IÝýyÂC`…*q¶[í?ð1Phšõ(Í_ò=¶}—.]*Œ:zäê¼\W¹_ø³üïÕyüÁ%õðü7Qן]„îÓ{¯'5ÈâÂ8ÞÓ\4õÃbôÈð¸í܈{í·3²ïjÈTn’†0«4ûÅÙ;€Z»ù+‚¨ËŸ]½6ºj>5î¢ï_¾ÿU€æu¨€jBO¡P™dÌE¥G©…ÝŽn[o_NoÚ›bñ­ Àã=’{â¯ð8am±ŒÃ pš/o£'_55ÃG-1¸Øçºxþqthœî°/ÒmÐPZÅ@é!Ô—WV)ºuY¸Ø˜¯¦d·ª»uB¿b°b¼|¼¬ÍÔUØxØ•Rê…8(yRýÅÙR©Ñ\W T .r ÈB(o®³X:Ú5uM-µµÃé£&æ&räÊÅ“z®[˜uTV¿¶U]ûj LR}ÝÃß"¢~•Æ*°”Be P­Pßï¹ .ʇVuò~šBõðÑ5víãžD›•¤y¥|ÑR¥ù’ó’ÜìOµû?º,˜Tn'×*d²õðU»õ’XQW vø/ýÊÐjzÅ®M «ªFÎ Ðç$÷t¼«`Z!ä–’°Ä£r¯~¨â¼cÝÞóTT¾eU(ZÜâ#ËëÇ„=ˆ Á†‚ošçã!Ñ7|TÈÞ¥¬Í7._hº)öã'Ò«1 yÃZ*þÜEʘÒÕ"t¨úŒàç ™iÈÕLó@@ƒû˜×É2|´!ÚTÇÔA=å€ÜÏhÍû@¹ &&OAØ2Q‡bꊎ˜ ŽXëÛÐãèÓÇxs¿…ò‘9¦4`@ ‹ÒŒò2mÅ †23c4,äjc"¦ ;ýzú’îú`¨Æˆ•˜8R(É̉#æV行©4U<ËUÇÄ!OU TCu¬Ûguã;¦šÒ¡øŽÙ3}Ðin*i0´HÀL•Ìñœ.fj©´á®‰õÖ–Šk“à³r!k&·Óœ…hÚÒê2Ø ¦©¦ñt4æGîhMYÁ±6¨n¬i¤&åÒ÷#™Ëûïý®ù#×öÜB«§®ôDGí1 ÛWèZ±W6”ë‚í†ð]å6Ò»d28m û’?m(óèÛ. V¾.Þ¤pº=î‘}µf¡Ç}ºÁ Ôø¤ôá2ÊMlg^©ZŸ ×í GuQ€Ïø ϵöPåŸÐK_ÉÙ·wŸÿÌÇ“@ÏÔ 0£Áþæµ²M|ôÒÑ `ÁõÚí#G|~¿óƒÌ¹&.\ŠâÌ6¦å0†¹¨ÜPU¹é¥˜—ÿTÑÀX¡>š›š»RFmК3Ÿ€•Ýú#GÇèÔ;6è4»ÞLb…Ù®ö€ú ÏÜ7cNšjS4bÎZmíNŸ»×Õ{=.¦C‡“U‚¡ìPž [–LÏ$ ””@èz¨™Ær°"ÊÆ–…\Ø©b§¾Bc)ZšìþÑ1û Vö‰<·Ø½ßº²aoåµD—®Øi uæ+q`:¨òm´oßåÙ¿¸÷¼Åw¹ðĽrUžÛÿÅöì¶Ÿoõ‹»ìŸ³Z,Õ/øh#ú‰®l…Z°Rn?8°ˆv3z³ËìWTNBÓ¬B+~&c4[u;r7B¬ [LÖ#–ž#à§Üùv­¦ H•6œùοŒ¼wÎ)@ØÕMîö¡¬±>2Û¤€C÷Î(20‚ÁXf<Ç•ÇD°{ =hà[ophì»Åg ö÷ôA£¾r)u§Þív´ù>|}ðnÁÓ"nGß[‚°Ímh6€ÉLa¥@».YÔ¦øwÐbôÜSç[Î2š€cϸØï‚`ãô®Ël6…fŠ©ø "-5_‚FâT«G˜÷1˧ê&Ü'ºú†|0 'z¤ÍE`†|ªúºª.mâelî‘¢%ÍÍû>ÍùãÉG;Æz‰žþÕæØ{Á¦âåN´&¸˜.ÆbÝU Ž“oãùþÌBîQ.úÏO¡1v¿»¾ª®¼ÌTa4 ³ž\ÁÃH÷hýÆÌça˜²8é´ü{œƒób ·€Š@3«²ºx(äò­¯ùh"h÷sPùíØÉ‘ÆFÆØ((3âA¨¡Ô.O{‡{PztÛËñ[ŸpäKŠëÜ¿ýÙ‡¦°x¹tÚ|á†UxxÞwQñUÿ»|4%Ò®"_ñ(P·¯\º>¦ôjž8ÍPe:\”¡>¿»ÕÞèè(ñIrÓ 2¹@Õ•ÑŠ÷–e ‰/¥ôÊìÅB†QÊ!²ì2OAJ‘$öR¯ý) -@‘ž¸:”ÿv¦SÜÿ,Ã- ‡­¹uùÌ•½ÖÖÐBý`¤WÀw]«¿Í)´uzl=@}KµZXú¼p”[C÷¡Hó‹IkÒžY²öÔ9{ãÇ7…3ëaP¼™ùÆG›¦7Ò÷‹ý·—´‘üÿï’ëa·\‘ŒwÉ4 o…#bþuD¬Å½…6³oÐÜ¢ÀU>j¨Ä›‰ã—ô'­ËÛ`ÇÊ›q•ÆÚ㨻Õì Ý›çÌQh5¹¹Ý_¯ÓÙ+ÀS çæŽñŽùPÓ7¨ÑÇŸ~e:žþ/2TÏéBzB[Q|§-Ŷã…F¦Ýh)ÃúÀ36 ŠŸd(BªÑ¬àÅ¿‚ÇeO€Í/d»Hp[:k­hœ¢3·•‹§zBgÜ:´©‡y÷/óñ*–C³jò¯Âú¶Õe†!p™O>ë]ò£³w¸h»îH)”Ä–™JÁ²–ãAöΔ}ò,²ÓÜh{Ìw_Œ¿T ]Ž'm&6YµeûŒÓØÌÍx’æ*?Lžæ Z„6ÿ×£p ÚÌc¯¶Ów~›>ÑQcÁ D\;sþ\{Æë¿¥‚_ó¿úç‡$ó%ô8vÐ)iN…Ø-Vî(}_2°VÃîS©¨OÍß…þ_ÞDÐ ·Ý^Amtaû·Óx_ˆÿçcvd3UUWQßôéUö‰úX†<_¥Ru¨ú]6›En£-òš‡ÑúCγ… @ŠS}…>J9K{ó\99yšÜg^ïŒþ°aT;þ3¹“7É.ä³;§÷ÐÕ Ö¨¡l¥õåEFC©QÀýðßkL匌±ÅÍ öš¦æA„®‹MhC¹Mu]¡\z3é ›š#›½²3üW]xø”=|.Aü€‹J½ endstream endobj 1512 0 obj <>stream xœ{LSWÇÏ¡ííQªc½^±Û¡«R (ó±Ö)‹À|Î*ô¦­ÒÛB ¶ÍБif8òˆ(5H±€c™s&>–øDƒþa|Í—%&n&&ûvÈb1&Ûßûï÷H>ßFê„1N,ðxåÀÜe¾çøjea–’Àf¨h%óæh˜Q‡¨NEuꎿ5z8ð!„?Rc¼(·à°µpý†Ùéé¶å>¸ÌãrÍó32³ÌEaóû9Gx\ŠÙ*äŸß++Á<·¨<`^ïóîPÌãÒÿ=ü‹úp„6sþ‚¬O.BHD4Ih*JFÓ‰GFj”‹ú°ûñ­{‚j'³4:šÅVË;!eÖ„Ûè†#Z^ϱ¦T{¸¶¡¶î`WSgC+%Íå[Mc’¶æÓаµšX¢vœ¶ — EÅÊÀ%%çÛý©Õ„§ °æ=º×?Lïþúü>Ç›¶ìv¹NçnÏNº…Þ¡Ó]¿ÒŸi_踫¥¢ÑGƒÔ*صyc¶{;·ð dYã"•çÙíÇz‹„dñé•~¸ë¸HÉРsÕJ·Ûæ5E´O”XdÀCÄ;½Ê±m[¦/—¿^5ŸÚit*m%”Èþ€§ðšë,…i €åÜ7?)ý¦ŠÎHsñ1">½9ØÞsuúïyÒ¬öM©Æw A¨XfTQHã³`V²øše@£Ä¾üL».›ëùâ¶µ6×@ OÕŠ#©C Ä^4•ËÈp^'}wí³ U0›ý"A¯pD ¿'Ìá¯^îûqÿÙJÃ3ߥ|šKòŽü ¿åd±qû)ok)%®Ò2÷WWÜÏ` Løf¾Yõǽ&¹¹¤nI=‰³÷tÁ?gFq7d€ l*¶s4Gâ†Ðêrû®Î^ÇÕ”ÿâyÜæLHzþ¤À¤e¹°«üû=^ãiøøÉc°œ$¼ŠJÃ…|×íU6"MíU¦H¬ê.¡7]n¨o<ÔZw„’wͰ6˜Yéèbi,Kpð2M§pôFω‹Õоul@óR˜jg;ZÀqDˆMcb¬^§c“nBoÍ †Þ endstream endobj 1513 0 obj <>stream xœB½ýCMR5$øøø‹€ù5ùU‹ ‹ ­ø²÷]÷V÷Qmq€Copyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMR5.CMR5Computer ModerndefEFGyÞIøˆù‚€¬ø¬÷YÂÓï÷áàø:ù?_Õ”„ZûWužU®8‹û*û&ûû ÷"÷)ÝᣧO÷@–·A‚’¼øæ2üÝ[AA~d‹Y‹YŸj·k´ˆÄ‹ª‹¦Í¶¹®¯¿ž¼‹¨‹Ò…»Gø÷€¯÷\ª÷3¬Ìï÷ÅØø™÷u ”‹£Îg÷ûOû, ûû û÷#÷,÷3¼÷žœ{‹†|‰‡}…oFAsS‹:‹^¸|œd»‹Ê‹¦ª—÷즺‹÷‹’ûŒnøI‹·÷ë·÷…¬÷;à÷ò÷ø÷"·û&÷éɲ¹’Ÿ‰ˆ‰‰……‹voŸtª¬ž¢¨¶`®H3$Sûû*_ìûÃl‹‚Jy_µŽ¸Œµ‹¿‹¼‰µ‰½ #·p>‹•ªu¡øCœ÷n–‘¡ûb—· ä  7Ÿ ¬– äœ ¡øa endstream endobj 1514 0 obj <>stream xœ=’{LSwÇï¥Ð{«]‡º*ÌíöÊcC‘Çž$[´>2&RK•ÒÖ¶PÊc±PzJ ב2œPž!Ð!S óí1þ±lÉb¦‹[æÛ¹ðsÉ:²,'99'9É÷{ÎçÐTxEÓ´X™¹_•öo'l§…ç„çEà\½¿šRHÃÇÖê6£~žxs#)M,ç”F“ݬ+)µò šüKii{vó/§¦¦ñûʵfFmà3ÕÖRm¹Újô|ŽQ£ÓZí|BF©ÕjJOI±ÙlÉêrK²Ñ\òæÎݼMg-å³µ­¹R[Ì2¬ü1u¹–_·–¼ž•ÆrS…Ukæ3ÅZ³¢(fŸÙbUŸÒPT •CåRïQû)%u€bCkQáT5u—.£¯…%†µ‡ý-¸dk‘ÄØ pÔG ¯¾&w Ô‚=µà0‘¶'¿E¯·ÙUÝ\å®¶2_|«¥Û3c€;®¯¤±AÆ:0^º‰QQxU¼Hb#’òÅ#Þ?`&á']ÚÅÇ‚^Ž2AΊeBmHõÑ4ŠÂ-"4¡AËÈ>ò:ÕPÞ±] ú&çò†²©ŽWpn¤ÅdoCD>³xŠäöá|fÅ۳зa~]éuF&|ä¶\£ÇVðüŠHØ!dÈ/Ã%[}MC½+ë)n= ¬ž¼$*·UŒ8?Ô}ë€lV™ª#Ý¿¸Æ^··Ø3à´(v0vpøÚ[ §èÑσ¢¯â«€/ÌöO…£e2º .¾Ó ÓìâèÃðÖ,S ç©ëN`û=ü ™PäœÂµ ¾å£ÿD nœ¡EPÈ11H1G%v'}ïb5?’~†ˆ¯½soöÖ27¯ú€9Pb7‡E?'–œã˜?Œ/ŽÓ˸ß@‰H¨Â9ùÏÊïHr6y¦9¥p¸rpxÐ?ñeu¯ËËu¶ø[¯»4Q’¡(cH:É("¢ÜTµt÷ÆÐÌ€â üÅÅŸõ@¿¿êG=!¿~–HnÊc M*õÐôÐå{˜×ÁÉVãC7•Žã»ÿ1ëÅè³Õ#rrøO~cfeAý÷©⳸}×’°÷}]]•¢-GÞ˜ |,F‘¾­†¼ÊÅéœcM6ÈÍhe€• }Î)A2Ea4Ä­"Á¬üÓÐ/ÚÀmoàl…Æ,`I `Üô¢#q[û×îFw³ËíVœs4Õ@{jÐ2<8üùôCÂC1É=Dd„&›ïÇcúõ`Û“ÜÂH× ð²²³]BVžôuv‰É‰v&¸%¹ á{|RÉx‡TŠ’+Ò§>stream xœµ•{PSWÇoä^Y¤¢ÞYXÛ{ãcÔUpt‹V¥E—«¢¨¬@HòK‚äaxDJ}E¨[ëÊ ¨Å”ºv»®cÙÇ´uÎGg÷F·;î?;³ìÜ™;÷Μó;ßïçüÎ÷OB xEDÇ„º?ær3Ü»Ü{BÀæ´«À |„àãÙõî¤ÅS‘ÉIßA[¦B@žu8B¡< ’IÓÕâÀ” qHXXèBñ’àà0ñ¹D%KIÊG'©Ó%ò$5ÿ³W¼E‘"“¨ˆÃÓÕjåŠÅ‹5Í¢$yö"…Jº*h¡X#S§‹c$ÙÕ>Iª8R‘©oL’KÄnm‹Ü¯…\™£–¨ÄÑŠT‰*“ ˆ©™ê}IûS¥²½òà%K—¯ "ˆ‰8"žXKl'>"ÖQD4±‘ð#¦Óš báMLãmžD.qE°Lð©‡Qè)ó ñÌôšíeñ­5Aäò5™Óûº¼ÁÁM¶ =Šö ¹*t•þv÷§â°­‰ñ Æ8!Âó{IÉ›åE ,®"wë Š‘’f¸]zz`X_aì÷™í £tpŽEëÉŸ¾éº]»ÁûÿûX_.F×ÉMr å6òEâ.!Úű4 và`´A&2†$.ÐSЧ¸‰ÄžÔWo^ü|”Å‘ëö¤¥F£zÆ—›Ð5pÓ.=¦í×ûMµ@9H•!Ë %¤™”~A)yÖ ‡b£®({aðÇSP ˜ŽT‚5 © êi€K’A©¦Ì7s ÊP#CKðßýæ—ÔÁ (­8ZIùrC:;RÙ;Ÿ¶Øxf#]B.5ÐðœÞՓܵ£vP ×K7îi<ØÚf³µÕ6(ËYGËPÔÕëi¡ì^2ÖðýZeH†"©e?ªîŒ9/œi`J“Û$2OÀ3ÖmU;ÒÒÀYÍ„_¢„*·íèê¸ô­·ºÍƒa‡ý©i£©¨L`ºSQÑ}¦ûô¨‰¡0d”¯MÉߘªÓ[C@«=øQ¸ÿògºJãQ( ¨9^VÍCHÓKŒiüxÉÏ.B+´Ê‘žão2Z ÁúÕaºÃi)²´÷ ””ì07šOBô;ô¯·6ß\h…ãp¢²º¶îöÿoOìãW; QKøV¨0ݵtÿ;ߌ_…eêVŠïBcí(Ù)¸ø9ï çú€þ¹íRÈ4ÇŽ†X pöœ‡§b¿çóдñ¾óõul4‰óâ+ZûXî¯døËÇtÖÎm)Q°RNiÚ5ù½0Mpïgï…¾Šv¸çrìÒªC¼›ýîíÄI(ò惔×!¸?†âÇz® ÑI×8r¾ê‡{ÃÏ8™ÝÊ^èr­h9íÀ|(’ `ÍÉ/\ƒ½Üí%EÎ0Rù+¥TÔo4;xàƒ†~ƒ[¹’\U]ì8¹’›K¿ôÀu¤~§KØ.¸ò%þLˆzE?<Ýï„ajbîåùØ#$báÎFY½†©ßg-¹–¾%;0fQXˆÈh$BÓ~üC©W7w1yåé¶Ür ‡>£³jmÐCÝøªçîÃá„—ÌN4 ¦Ò"&"’Fï…·jûå°)`õòˇ_øüî)Æ÷…Q}èƒ>Ám—Zèª@ßÑ5MÐÒœ yì«ù¢¼lÈV5A ë ÂJººš[Ô e_Š´jPe7Cµû¶Ãæ†1 h (@M? ÿñ‘ÒR‹ŽRUùPȼU¯æ–ðO|¹¢|È/¶èËŠØÇáßã€+K¢ðL>stream xœu’}LSgÆï¥¥\´ÀÔÝÅDí½ÛŒ‚2T6?p:eJÁ%$m±öCúÁµXê@AeŠoµ‚°-Z¥LfÇ"Ù¤\#®ÚéfÔølnFÜŒ˜EÏM^—¬ÀLÜ?÷½'yßçœç÷’‡$I†%gdgÏ‹ü!L!…©!Â4Â6á˜ðO(’ŠT|vjhÿD(š(Èy‡‘¤©po²Élãt­…΋aç%$,ŒeãçÎM`—Ôœ.Oid3”­Ú ´‹|6Ë”§S[llô­Åb^0êèƒAGå<,æ_ð¤ÏEA†ñÐJß•?ÀS”³Pй¾øTµ÷àE» UÙíöãÈœ¨y¹ó&dBÆu™û2¬9;VkP*µâúÚÇÍ=Uç¿—5è;+¾A”Ë5Ü©Àz°º„I¿A# Ú®*ÒîØ€ö#jݦ涫/[ ‚ãÔk®ó…›ô“7˜‘ØÅÛŒ=²ÿáŒÃÅo”g»`JÐfêoˆ„O ›n¬G­žÖ'`*n&ŽÄb èï~oª®8•_T¾·¸œá2Ó¿*B‹PÚõÒ{”½‹>Þç.ž¡Æ•9ÔHBðn0¤tÿó"@B8 £ŒqD§äþ-Ô,«¨Ùâ=átœéNDʼnŸnŠ—­+1ÿçìĎɨfô}ìÐÖÙ|âã} ò‘?dù/t‹@~Þ¥@WêUVÖ0 %ÞçõèÖ/¿ºËÏm÷2Mµ®Cuöê|Ï;¢îš³õÅÞ,[î>½’Ñ;u5&DÍ]™4¿°J}FÙöÐ.¤=iªÙm°®G›©Ek‚X' ôôÂt¼ée@Bçä^ºzµãÒåÚrù&ÅŒÐ1I—:ꪾnu2κ£è'D=„ô±"ic 3‚çÑ$”3í~¤ÝÖ޳Z9®Áêv74¸exžJ¿¶þ°D2Äåô ‰s£$¢¡O2´C²Âž ò hûÈ¢à™cF¾Úƒ#ÇÔ=c‰DŠ ”„Šà¦öš]Æ­·ÕÐTpÖë:íÞ˜.Z‚²Ý÷›–ûDÂ4ÁJï<²ÍaFÔ’Õó± ,¾s¹¿o"°áåx2ŽÂïá4¼ ¤x2Lë¿wÍÕÄ¡²â}hw£Ó«Kµˆb?¦Ã¬§?÷\,Mw2«ñmZ¡ê¹ßûmw[G[ÆÒ…¹r¹Ë!$D‡Û‡ñãüãeãÄ6“4œ—JýÒ‚øÐá endstream endobj 1517 0 obj <>stream xœµXiTgÚ­¶¥«ŒˆF­§ 5Á A\0®àT0¢¸ ²ÈŽÐì«"4[/;oÝìÍ"ˆ€+DQq%jb"ƨc45Æ8I&ou^æ›ïmÐ$“™ùóó†>ô9]UïsïóÜ{DÔÈ”H$’Ø;:[Yþš&¼-&þ"쩬w7c1<0éMj$4.<ÀÏ?Òü}/ s+[Û3Í­ç̱5_ìàå)5wôŒô÷ öŒ$‚Ì7…xøDÆ™¿¿Ø?22t‘¥eLLÌlÏàˆÙ!á~K-fšÇDú›;ûDø„Gûx›¯‘Fš;yû˜nöл}HphT¤O¸¹cˆ·O¸”¢¨Ù+¤v!ö«ÂWGDF9D{Æî^çåèíä³á#?ç€M›]‚‚gÎ2ce=×fÞü…¦QÔ;Ôê]ê#j 5ÚD½Gm¦\¨-Ôtj+eGm§ì©Y”+µ’šM­¢,©ÕÔÊŠúšK­¥l¨yÔ|Ê‘r¢ÆP&Tõ:5žš@M¤Xê êMÊŒJ hÊ’ I¤”¢1¢Ñ£.#úÄ3Ä%#—LùÐh¡Q›d.=’Ž¡/1nÌ‘QΣú_ÛøZëhÑh©ñÆ1Æø›˜š¤š ±6cg;ÎiœlÜ?__ûú±ñã5ì'ôM\:QÊn&úpÐ!°R#ÞÔ¯gåEÊœH¥"}/ö|jš°;$lŠ‘ÒÔjh8uÊãwu´gF¸–|Îuvñ1dfв%§±Uv"(Aa¼ Â9)]­¾E¾Òסzø¢µ ®ªXÄà¯ð>‰‰Ð:a’F„¨~äÕ/6"9 ¡!²YzhgNLŸ…)1ŒêG ž”d$¥¯æ¥ºò¸†vK‚µä!uê^òô¾:ÙºD8Ê#'úçkg.^,ÙæÄáÄÿúÝíªFÆDï@€¸¦A]:âÐ×ćõËX©†¾ž)óåh_…Ìž‹‘ ÆÄ>¼ÿÝm»¯ðèbþiŵËpƒùÚæ.~“ëñg,RÓ-êÜ#/ù¡mž‹ÃÖ…XÌ¿¿aÝ•¹-<Ò¡ ôw= –.rZaÁ› ²*ÁZ#j@bÁ²ˆµø3Øxæd<Oüa’ ×ž}Æs8»±¾àV&í=ª:]КŽ6>RÖ ‡ +®Þ»i¬_ðǰ!;vÅú)lk´No©õ>"êÄzsý¶²ei*¥,s]ìvfM«=˜áuØš¼<°²ÁsZø½‹FBN’L•žÊ'㹘Y5˜UxS:ŠºÐGG®ÿü­5ž®áÕ‰ (¦25¼‰~6Áñ’l¡I·‘k•X?å³Q’<'b%^ ž$†¢úý]aÐ<¾ •EIæ%Íàæ …d<3 zš¶—â)L•$ E vJ5’a.ê~㢗ôθáÞùéÒ/·Äè”À>ëxt3O ª,.E¾7 BiuR™FS\ßÚà1_j›Æ©X‚ßú­Ô > PŸ½ì×ÚNYØFªš@ªê!?ÃUm® W ƒõÿ~(IúrVxº¡{Ó6Ê¢6©ÐO  —»@8‹›‹ ^–ûºMÝ–<™”k"¼!Óó+D-GQÜQ1º-|0DYJlTr*T”³‡ 8ÆÏasø·ûóÍ!R%ŸN*VÔÆTì+Ž‚Æ#|Ç\‡í?Dqò ÈPe(³ä & Òãx<‰Žƒô‚ìŒ m9— êÒ²ö½PÌÏ'ûnõ6'çó~M¡9EÁ9v%pžiÒ{ˆD9³ƒÔ\FJ.dSÙ¤yÇ‘æ}K‡jD?ö£IUb´X˜Æ¢É:<­’¨fù͘£`bîá&‹¿ˆ¤šíÃÕ+ËÒ â““ÒRÖ-2]ò£"+-rÍ '»¢ÑY¸rÛ¿Öÿ1T*µ¡hžeªVf¥‘¶U,±íwwqOò0øP;ñ¡ÃDúÔÐ3¬à™òR(²Ü¼‚âRmKgMÓsÓò(rÇ4HIÙj¸¨NÝMd¿…\t~ø¢-§Žhf†ÐRƒ:ˆ‚ Š"!úµ,æÓ†Á§UtV^COVnµïaŸËÀ úÅ3Ä¢ ³¾ÇâÍ;Ã=xµ  .,«i;¢ë¦ñçD¼ùC™g„ä´\À¿5¾~¿²ÀÀ#ú½#…+CÚ({o?ž€í±–Fáݦ.ºÏ5ê$Rå\¢çÁ`ý²MÿÝ€F1öÐT I:Qå ±`î³õWŽgTÂËžÜC(P¦a€*ó#‰ “ž”˦âlS,Fµi%ÄÇ3ÌêZACz2Lé !C,:_ÒyéÅAÈbp„©ûdPÊSâƒC}Ü€ Š­Z³Zkb‹ãâ£eRŸƒ¾§Îtv_ª#S²FV…twz«D­Èí®ý a}awDy|Mue‰îʪ‹ð¨Ùïlî; d„L‘q~~*(’UŠDµÒ%اE§ÐL´è^gOûé}ÞռɯìKüø¡ü 1Š×ÏdS+U¤D[þ¦Çt(ìœ9äø§†"È©WŽ?Ž×óÂá ¥ý㵬¤Ì”0Ë'!&§Éõ&¦ƒ7$¯¤¼ZýÉ :øê7;°7(€Ð@¹ÎitØR*UJ,–~búÇn"EW\£S†ñRÐÂèhG«9&󞞈'<µ@#ŽôT–ð«i4ù7ÙþN¯ü‚%)¢"üwK·†©´åzQGU ¯iêhê‹ÐêV°·(ž°Ç å¸á¦ª¬jÄ(ZoÅ&«2¢ÈÓfI%‡¡êS™ÁC´ô¿£¢ã…j:/”ù‰Â[ƒL 2T¹@ ÉÊP3Â5ZÇŸuÇÒ!°†»ã)ì”òƒô0å¡•È~(Ф\ Ð>¶J •/\žà1X2w ‡Mÿ6‰Ñè£ˆÒæ¤g¥¥mTòa >ŒôÆsZZÁWÒ•l²zPÑ¿@žœ@*TGWëWrŒßc±~+ú–E^x&²Æv$wY`ì‰ÝÑ l…ìÑô>š‹vqø~ÈNŦߡ|¤DüÝ'ÏÑÛóp:.Æ“,§¿Ì*]5¨Ÿàö—[èôc1’"’à–HШ_n½x6ý~›Ç멆?xüÒpç¥5¼l %ªdQípþ{"Aóyx–à†¨‡=µÈåô×Z¤ÖŠ.\Cö×u{<¨ yxåêÍú”ö=Íü¡ŽãMÔ‚ü*eòt$1 ‰eyÙU þ[½÷ìKà‚«ý‹IÀ³úpÍRçVß‚d>q_œ”¨ïÆÖð¼ô]ûwùÁVfõg4~~êFmê¹ Mܶºí0œ â*eÉ• …òœò‚湌 /ª+ ³¼ž¯Ô5hyÓ"ã`w|(+ –ES;îûlžúP{_U’ŸsÍGËvZ<½£µÑ3tzÑ®ÇßkÅÂ"ô˜}^}óÜdža£»x ‡OþL«‡0ÕÁÝ6BC‚ƒIõ!|ˆ·®†ÅvÄ£t_Wä`¾,¾¯Íü$¤ÉT|úièØ²ã)§T¹i‡µ©=òæà¦¤Â°ú̬ͥ"–p©ª¡H›•ŸÑ`n£‰€gØì\‡ßàMP ñ7¦Mx&B"2¾v []\[ÓTQWÅa;‘¡¾œŸF†ºö÷èx‚¾úàÀËUGž}ˆF’±è ܪ^ÔÛ‡®÷‰‘·0ÝVìÖ—™OÏ\ú-¬Âó=r8’¢å/£r£ O!‡ý©\ ÓŽ‹Eî$£‹YOÝQî~ЋoõnMþ,®5åtBIÚñÈ&ØÄ,ß²r¡›cáaWnãIùuU‹Ê0ɯ"ŸÛPäËÉPårYyÚƒy¥m^—¾&n6òöS4âBäÑÐÞ÷¨[¡wac ZB¡On‹õ“õ‹ØÁg’8aT%)AÖùmÈš¸]ä)5ŠŒDˆdut$Xp~RI³úG²‰‚Ÿ y?ÚJð‚Ž†Zu~YVžZ•@nïW‚­ QWN°ykÈ Ñßë ~Ïbó™¶³6¼Ûì9aâ+¥%yͤÄmÿd„&4žŠ˜wÐÄßB“~àúÂÍ¡h¦t!2%%öû»P…s¬7ê&xùŸÜ^û;ÝCá¯þ°TšèÏüqU5dV½çŸ¶Õ…à¹a¯wÂM—ªõÿ¯›ëÿeËE5ØE‹–“î¶×ˆÑV9{1ú·46*,´2ª±´07;‡ËÌÌ€ `Ô¾.lƒû.^®P)AΤg§gç|hÎÝB{E…¨XŒjÐF¶»ÄïÒ ="äß_F¢|c4»ÖUÒ­jŽ‚=LPd8ÁÇtIˆã•Ÿ;íP´/Ó ‰Ñý[QçÊ#Ûïfô9 wÓoû ì¾k_å a¥ÔwaÈz™#` ¦çÚµ­<´ìZÄIÈ{NêúÚn¨¿‡>†ì¬_°{`mE,%‡¢Iwà‹²såW>n2äľÈÊyÅÎD4ÖÀ‡°,É)X놣èy¶²R˜ÂáÞA?#)*›Cû*evÃJ?ü_¡?ŪG/tÓha ;8ˇ«Dôä¬AüBèE=ÚKv¸‰Â§ìá„V1LdtýnI–2;lòd~SÄE8ÀNMl^j&920)¶—Ç=DýÒŠÈÂ[TÀ5t¯é1Ä×¼ørï Ws}À9Ä-ÊÏ;Ü\¼öhÜçÙÊ)´¼¾à@ClYx\X²÷ü«†Ðbôü)Ñ™Ñ<ÇÙ=<$l¨ƒë…)šoïtÖˆ:ï ù1±Û,ÊAc;zÛÚ’‚+¹DØU[W[^ª;éó± ‰»¦˜Å¡¸;ÞC¢ÇOÑÈlö7ïY. ‘ñh,¾Ê®‡à3ÉÚä:Y7|ÊÜj{þð´Î7 ”+ó…íàÛÀ-Ö'|‡_¼×PG×ëÇ’§CÇ:Åècô¶§þócðWæþ‚ó–ï/±›PÐÀîÏP}ê:Ýmû‡`ÇL~áð7$~|çç¿Ù]r‚Ó²ûó½ê ›é¿Úyåúå­öNî®÷p«·°hÌâºøcAàd¶léÖæÛ]¼ûåÙKýdLò´h*¡Ü 9ˆ±~,[VLü/›©ˆ/OHKM"ÔÆ3³Ó²ÓsÒÍ ùM'p:Tn˜÷#çY:_+þ…²ñ±1àÅØÜu|rå¼îÄÇ\mÔÅÍ÷à\<«¾ÇDI”Ë}]ÁÜ:=»÷8wòAëíÁû†í1PE^d\‘/!rH“§ð1¾¡ná»ý6ùÈÓãµSÑ»q]÷ÏáS BŒ­Ó*—wv毩]Í©S3 V© 9TÉœ½ÌF÷%_…#ÌíöÖ¶ÓY61km­¢#¸ÝËØŽ9ŸX\^é¸Ñ)UJöì‡겺êò™'Ïæå3&ÑZÁ¾…äi%سֽÖ?š{mäñ(M¾±q™ñŠú_ñ¢E endstream endobj 1563 0 obj <>stream GPL Ghostscript 10.05.1 2026-02-10T21:30:46+01:00 2026-02-10T21:30:46+01:00 2026-02-10T21:30:46+01:00 LaTeX with hyperref endstream endobj 1533 0 obj <>stream xœ­\ksÛ¶Òþ®_Áo'y;)q¿¼s¦3±[§Iì¤I{ò‘i[l¹’œËùõgwAJIÈŒ›I)‘ Ø]ìåY.·¦`…f¦FŠÉB;Up-MÁ™çÐOÜY¸@Ö¢RÜr OŠBUXo€ÌX¡œ„c° î4·…² nœC’.„U0žw…pÐ$[H c)+à¦Q8q8©Ö0ºÒªPÜú0½Âã)Çyá$0̲(€i˜Æ™BkàQy”…áÄÚÁð¨”/´—ØIFx7¢0†:QX†S)W€xØÛÀ.H ã[M\ V8!`pé §$//g€œxfà}iá%°p£½ÕÁ ÍTÆ%*†eÚàh’9©Pq jã(\n4ˆe5ª™ð ÁjÞ ÞPt(œñ¨•Æõ(ô“¨O“K Â+ oH Á•D)ð ^)‰Ê„w•mrX>®¼u¸ÀhGk ë üyäßÿ.÷ªUýxqµ.÷~{üÓþÑþñ>g%ÒêÕt9»^/–$?+^—'‹7W³éâ´¦éÛuMÝ'åãÙrµÞ¿¨–ÀQù¼jîAæò÷Ùéúbõg!aÉ}Á&¸ôíÅŠø)P’“ðm‰¨ ôî<¬,¦R«8Q h íŽf8X§Ùmó–,$ ³k¸#õ$ô0LÐ:…· íä|tê˜]ƒˆW¯V³ÍóñÍÇ5ªõÃùe+ûíËïAÙ'Ï\WÕha=U«¼ª½Um6ªÖ •‚ž“~JáébèÀ$”ľ“¦?)_jsWÑž>988"Ñúf„NÓ“Mçeã"’MÈ­lààÚÙÈ4²ÿ:í’¡ë:ºÚg KŠßšó \E{±"~Š/ìÏ`!BZУ庰à¾Ü΀&-¸7¶IpK ¡ÆBP3Â@èc&ØF€¡°…#¨ð™|ó½ çWlðjïIªæ™$jžð‚Á™ôÕHGï N’"-Ñ Æ;ƒKÉ# I—i`éiå6¶†5œƒÙÙY½¬¯¦õêÏ ,îÙ¬<›O¤/ÿ¾Y¬ëåìüb=Áu®¯N«ÕŇŽi>ÿãäÑK0­×N£û†ewÄ'ß–ð8}~§aÝÖNÖÓëN'-‘ŽA^ûð-! #Ÿ‘z6áÞ¡%yzk‚ßðÇ” IC¶@Ok,}ÃuW?~þèéû_ߢ²M_Ù²¯l·CÙ~«lÍ6ºÆm3û.O^?}ûü š“~ ¹&,ú<‹RÆöQ¡7Kžn¹&cúeGœŒ›k°×¨™û£°ï˜÷ŸÈœ¹Ò`£Ø6IŒé–ýÅÍrV/k! ‘XË.c<>|û|ÿŒñø½î%=×Ozjvr[[Tè4QŠu”$´’`¶ëåì²îêçÙ›ýã½÷??~}ÄëguÛ¾jb@y›Œ¼uEÔ?<éÀtoæóºgGÿxõËÞ»üë}_D³CDDZy-ÄJCñò{rˆ×®Ó*á#–Ö<–`Ì•ŽÕ†ãª ¸ÇÂà‚Xû(¸ µÈs ¤.Ê_HtFN´v€*P‡T2ò!´öÔ ±}þ‘P!;øŒ"à³AÜ÷((õ±HUˆeGaᣠdjiÈ4~›€Ü:†c¸áðòì,–.y÷êàà%e¢0AÎ{†³+W²ØpôÖ54‹> Dm».–|n«yîݳÍèýÖéÅFrÐë7IdIz²nÿ»B…'O¿:¦èl{ ¤ûå–Úâè þ&<‡’Ê?Ê›ÿy»F è:ySÿð¼Ù¦„ ·z^_Ö  ÎDùqYMáùlî†ÓêÞÁo” DTÜåèê]÷rn¦d~»£ åÒ®ƒ€äÒ™ísK_P‘î6r¥:!r# ÑÕY_ñ£×Ôú¹þº†‚km󚼂V\Ûõu¸§Õ]_OŒÚ¶}\Gmí6Ô_£†úëırusyY­g°¢0ÕĹ-át¶ºžWß@_ëb±Äöfçá†À§i=›{gñcÛܵ»·/Ÿþñô1–.¾—Ç]?k¹ÃÛsu"xŸ‡ßšË;Øž´Ã=¬êí~mzàž”¶Œ6VÃ7 ]„Ò½áË5½?úºÂ,¨•¥÷EKÃu¸î`ß?ÿýý«·?@ X=Ø[ÌO»zw²õˆ˜”Œ:ˆ¹ë®¬?zytòê=K¸ë~îÖ»v«Xœ¼ÙõYv$•´w®vŸ?{{ü„Ðé€Q÷S˜ÞNÞ1t>cz#( ˜7HE>4â§Â=CûNwVÙÚëÅeu• ÞÛõ‰ã§?Ó¨ËËÙÕͪf~Ý{úô5…™PÁú+² T$¨o»E‚?[(•lcO´ÁÂp±æ“%w€Æí]öFW´ÕÈx)BÒÅoOåLïºÂ‡‡Ç''‡aƒGôm¾ Û¡á¸ääjQ |Þ®êõO5I:ŒÓÞ‡ç˜Ú|N6÷wŽkï¿{ô­sHyýÀfva/?œ•Ûšœ’º'òöŸ51¤–ƒéYOpŒÜÅ’ÚQ-äãqÃ~“0bdè%u0KŒµÎ[ê 3O°n±c¾ ïY™+WqFì…ò´ß-ÈwË¿ãM»ó$©txÑžDל~ŒåXœšÅ™â|YMoÖõD(G§³ù¼ú˜.?=¾¨.ëòèÍáã“'T5}ooñõOV<À<êJ³åãyu¾*Ô¤|¸šþGâ¤Ü¯®ŸÖÀÂ#møæ¤|¶®æ³éCDl Ôòx]_¾Ì'åÑl…@“,Ó6 Vu\¯ï•/Ëj¹\|!TW~¬–ƒ5F ¸…v,Ï—uµ5ý}SÍËy½Z…;Šç÷IâdzyM¿”’ýPÚ¯'¿¿¥=ӉθW…Ôn™nufä°­Þ˜Nô†½ÁÛ9½I¿SoÇåI9] î$F ôbÄÃCŠ‘„¶ÛÚå²\•«úrYÕŸaöÕìk¹š#ãër}±¬ërýeQÞ”ŸË/å×ò[ùßò¿õrÑ19Òt~Û;úãáߎão0, !NÄ3>öã6Ö ±õÐãÆzœÈéù‚P‘¹œ. ô-;Ò¨‘Ò=úýÍáy¶7®m4þÆ;™LÝZŽsk¥vº‘\ûàhèoÁ¼§­ÁÈfe]ãúVͺv G*àÍ뽃ýGa \D€´Ú„ü {L(`cSÂnh“ Ï(Ä! GŸ’V‚¿žmrÀ#‡ü1¸\Ï¡îìFf¬=|ñë»w ÷g›ß2[/¢PT86:ç’sLâ¡%V<=no2jGïzøyã@0ÚQõ5~JLG+BÓµ+Òµ3;RÞgG‡/ž“£%)G 0@Lxf ²É€«aŠÉfž“Jªñ®†f†F†¦\îãÖåêùº;#ÇûDˆ¢¼¼CZlígy±Èz¢©¡ÓXh&eøeI˜q0Cäë-Ywêãpô¬q>ÔPp¼:òµÈÓæ¤œÄÁR¯Z“'}ò?R[½ãT9i—ÑéÀ8 I1.Á«]ù["w¬ªŠTsÞÄœ`(ËrHª©T#iÿtU$jk"ŽÐ–Ý­=àjkƒø3ï=ãðÚûÆnRÔÕ[g?XQtßÓÈÞµKÍÆ– ÝKÍZ´-<3j¡(ejÀ.-š^d—N&v©s>lvÇ9¯Ôï´1˜8#åÆZ]¤N»Þª¥£‘±µF÷TQÔðW>¥|*šÔMMä¦9háU±‘ Ö¹#ÆXÜÛ?{ÔÔL`}GÏŒß,¬âMº®"YWá³ùKß9aßâ±o¾®¦6uTµšÎfëÙüŠ«ºÐêÖV¹J}WÑ5ìóÊ*‚nMß÷ý1Ü\~>gçWw«¯êþµ©­îZVÝ\ÓŲÞ 5[“ôm<@ÒÚ÷Ac#£ÇÛ¼E÷Œ(ñú ¸#ÁØ¢bèðÐF…;hÊ ï—@C‚m•¹]ÓE1RÆÛ áèOG’±0½B¨)L›|5UïÆ•Gú–½Ó·ûYw Dºc†M½èïV)5GÞÇdÔîQ›f0z:ˆ»,Ž»Rç/O¯Ën½%1ð6ðÊÞv&R†Qà,G€ËÕ¨Ø9ÍdzNA;û^øsÇX6°dcK™Þá›xÙþC÷˜ýî­ÒA]7ÇZƒÜØ ¤Ôe³+l!NsIu5«)!ñÅŒ”‚¹bî>.±ë EïxG|¢£w$$9’œû€nÝ3é)ôÔIªu>¶êôˆ- ÿš,²,™5­¸Þ±m=¨ôámëg›²¸ ¯7‘uc7a´qÅ Öæc«áC»Ttn×8—ÁÜÎ¥ZŠSÏUƶIŸµlƒFªh :QÇ–ÝC!yaðOp:{%jäO2»œ­WÅŸ“{‹éƒãuµ\ߟÜ[Ý|Äÿš‘ìÏGû0)q; n)äOî==[,ÖWP‚ÿÌïÍŽ[L@ ?ìMîMg@¨.O«ÓoîãßD˸a…ðguá95Åï|¬V3¯ˆ¬#ò´žÂ2ÙÄä‹ëš™Šè¾KwH¦3R[òrá<õv¹^.«Uåõg=›]VN9î^ýµ°4ŒŒ'=¯/juŽ&V%ºëÒ£YÆñ]º¦î¼C>]zK "iX.<éLÇÊ!au˜ÖöèĦa]º£þ&ž÷(ÙÒÚšxÖùù5Ù“‰çœÏ–‹uÖÖ˜¤áæ#™LÌËåõŒÓ²šXa×õ|Î,)Æò.ݺèÐ[–ÐA1Áº­ëÑÃ8ºK·¡¿ïЫKˆ-Øâ’+pÄ`ù.fu1-˜”‹gXϾT†VÐÅ }©¦zþZ„UwÍÜg³ó›% Õ†…–:Ö¡A?×:wK\ë‘ £ OIH: "ˆ¶)À›n…oHIi/δÁ¡!išÖ›ˆõ!\Wç$¤‰AÀÍ4T²pÉK mG¤1Ôºd)M"§3`”"¥¡þ¥Li/d.¡Ô) =P¶ÞÐÐФMh´œ,¡ d²5Ÿ†Æ‰æIæî8JþðK£ðŸJËɲ¤Jh uÚ/gÒ,&á F$´PÐ\L¢!´›ÌfÑ~ŠÃ˜H*4\DÔ‚U*Ú\BAs’ñäÞ2:V»!ŒI( „± „0ÉÂÂ$Ë'@ËA›(L ½‹¸L.T¬e BX¿$A« a-K‰”ØO$þbkC!¬ýA‚ÖÅê‘(D¢Té0Ä$sy¤Ä#ÃT2‘\a\J OQTŠV“b *Â%‚*Ù%«¥4RbÃP „K L.Y?…B$&§PóËDƒ…HfÇ€Þ$Ž”x`ƒBØØ ‘hÇ éÈIX"»1DŠMŒ’ã1×$KÄ7Yb ðžâ1—=X¢‹Á‘©Xµ£K"²ÅÐÈLÒ ##KD¶$Nâã–ÄqñªX' LÅáÉŠîá<:m°i  8< žlybš¹Œ5êPžØCq¸Ž5J‹›dFC¤dx‡'1@7O‚1Ahîcq€²p@Y™Å,PQ"’øGHH$ËêQ‘¤_*[D’£‰D„ßE ‹$–I0ðžH Míöˆ<62nˆ˜òZl¿!L2"%Ñ!b°RÝž¯Z¶7DJ·¢K%0/ÒQ‘QÙúfK÷éÿ‘’ЀM%Ó‰Kßs[÷]Ìn*U²hÛZ²¥ÖñIõ·©:*y`] 4 ÿm(IPÖJæý¡ %l¯AÒ²?” H¸ÿ†¢ò¼M†I‚ˆ®²kXŸ+…Š7mŒˆ4^>Ô€s´± j0ôFëþIA›¾ q¥ûsâÊô‡²8‡Е%@ιëÏb ÑrÞÆÆ´‰ü^õY°„!¹ÐƒLP0ƒo@°Kð0þ ó×Å`Y²À{‹B’&Äaª¿Ü– (}£²¸Ö±€XG 5 ZàCÓS~ä™Ò”î[%e>hÉmùÀ¢; Cîéƒ+Öw÷s¨G¢yW Ψs­èñ%§­,˵‚•¹V­6׊•IìŒI” p 2#‹*²ïbÎðƒ<›0²Ñƒº2!p#‡[Uhœ×4‘ÊêÙ4áÊgGÆ ‚ ê [±šàÙ‘±²àƒïÚ°úvxõmX}+%²aõ­ÌÌÈVùðúS;*ç³í„®|n|Æ÷¹÷‰yÀA9î‰}@@ƒkMíó†­ŒÚ ‰üü„Šä ¥Q;A¤¬î9Å!]¶À“ʽO¦ í9ýÉЮsú‘AfÐ÷©ôgró«0¾´ij§ñmN*ŒïòïÓúø*¬Ï°OaÚ"þ$Ë­/¥}hÏ¿O;X,·>šø“<ÇŸ óg=Ó„ùEÎ~L˜_䯷a|™o§ñeN~Æ—¹õ±A>•ã/ä*©rïûÐ>œ[¨øÓ™÷ɼmÎúEÀÝR°&ù hk2qA„¸&MޝפͿOzµ9ÞXЫ˼Onks^ENëxfMÉe].ž“úœFÉ]Ýpf´!9“™—\Õ¹Œ¾ÉQ]ÎOÉM}΋4¡`Ÿ "š°w‰5¡a? B¨7_|þmÚ»ÈE 1ÛÁ;¡Fžgž°£ÈÏORæ5ör2kFÎçl…›Ïó†›Pù‘'«¬Ü¸Ã¦²ZÃݶ\VÒ˜}Î75¦Do3#‡€ËTFàoY.…pÊrA#DS–ó€LÙ0T¶¡â€æŒ!†PÊ\Æ5ögØÖ6ó¥¹0wG9J£<—&¡γsÓ¶–ÈÎM[\"#XHÌœ™zÒ ÏÙ©zÉ¥7ô’³cô¢³ƒ“^rØÊ‡1”®±ˆòårqz3­—÷ž¼|^<¹X¬Öᜠ¬íÏ £è¤ÜÇ?o€!ªu}ïàÿ„&`iÅ(óãÿbì_ÐíhqzKh±¼÷¼:©ß_fë‹ââÛu½\ÖgÐ΂ܧÿ•é_À4Þ>¼Y_À pwXû²Xž®îÝÿå—ÿ(hŒX endstream endobj 1564 0 obj << /Type /XRef /Size 1565 /Root 1 0 R /Info 2 0 R /ID [<60C6EFF26191B2CA22B5E01C01C847E8><60C6EFF26191B2CA22B5E01C01C847E8>] /Index [0 1565 ] /W [1 3 2] /Filter /FlateDecode/Length 3464 >> stream xœ5ÚwPT{šÆñ~i:ýQÁœD1‚1瀊г€(ÀˆŠ1"*TPQÌŠ¢¢êÞ™š¹5U{÷NØ™©ÙÙÙ™ª »·ffkkÊ=çÛoÿó©§ÞßsNŸnúœÓÝêp8_¾ˆùê¤ÃâpýÓ1RÌÇÁ‡˜ÍßédDˆÃá±'ØeûÕ{nMBQ0èAº1ÃÑ‹>4èÇ0l‚Ø›aslƒ-°%¶ÂÖØÛb;ì°vÄ.Ø{aWì†Ý±FaO¬ÀìƒÑØb?ì±8‡â ŒCp$Æa<Ãáxågá( 8Çâ8LÄñ˜„p"NÂÉ8§â4œŽ3p&ÎÅÙ8â<œÉ¸Wà"LÁŸ—b*.Ãå¸ Wâ*\i¸×â:\p#fâfLÇ Ü…[0 ·â6ÌÆÜŽ;p'æa.îÃݸ÷âaÜ0â!<Žxâ1<‰…x‹ðžÂÓxÏây,Æ‹X‚°/a)^Æ2¼ŽWð*^ã¼ß*Åá(Ò³û†˜¯Sô Ð: Bÿäh$w'¿!wÁ8 Ûc<¶Æ¡ØY{ŽÓG¹)&=_ó-¬GØ;&¿×kE5[5ÁÀ™uïà]¬Á{xkñ>ÄGøŸàS|†ÏñÖáK|…õøßà[lÀwøñ~ÄOø™gä¿ÌÐg'Âórc_&N EºÑƒ>1™©º#ŽÖšÇ ð †cSl†Í1#±¶ÄVØÛ`[l‡í±vÄNØ»`Wì†Ý±FaOì…½±FcàˆÁ~ØcqÄA8‡àPŒÃx†ÃqŽÄQ8p,Ž“U©¯g¢8zhÞŽã1 'àDœ„“q NÅi8gàLœ…³qÎÅy8“q.ÄE˜‚‹q .ÅT\†Ëq®ÄU¸Óp ®Åu¸7àFÜ„›130·`nÅm˜9¸wŠÙö_úJîGìIÍŘ‹y¸÷à^܇ûñæãA<„‡±àQ<†Ç±O`žÄSxÏàY<‡ç±DLÎB=æ â˜Ì5x/a)^Æ2,Ç ¼‚W9Óg}àý ¯c%ÞÀ›x «°o㼋÷ÄlߪGu_Ë?i~ƒµøâ#|ŒOð)>Ãçøëð%¾Âz|ÍõÿÏ"ŠüŽ8ëߊٱF¡A¹·4¦YO³3ù%¹¶ÃÀùØ[+‚8›aàjðñ~ÄOâXb?®üX1;GjGÉ4»Ð‰¡ì¹)Æ¢û±êFµŸ¿ê¶^qÔ<ÔÜ}ôÆ01èÇ0 ³«L·j*ŽO5šÛ°Ur3lމ-°%¶ÂÀÖ…Ñx}P°ͶØNLn®>b{qüþïš»`숰3vÅnbòh¿;öqlÖÉhŒÂžxÜÞØ£±/^ŸÀkÛcqÄA8‡àPŒÃx†ÃqŽÄQ˜ fwžá‘ö[4OƱ8q<&ᜈ“p N³'E÷3MdÞ!Ísq:ÎÀ™8 gãœ'foÝj¾Hæ?5§`2.À…¸ãkÛŸi©ÈŸzk^©¸ —ã \‰«0 ׈ÙwZ·]+!+÷kÎÄu¸7àFÜ„›13p f‰Ù¿V÷³·IHîìÂlÌÁí¸wb®˜]µŸ'!4Äݸ÷â>Ü0Yûù­n{XBjÿ¬ù4à<ŠÇð8â ,“x ψÉ®{;‹ç$äó)\Àb<%x/‰9˜®ÍR ù÷àQ]ÁËX†åXWñš˜Cݵ]Bþ÷†æj¬ÄxoaÞÆ;Ö‚×®»â ?¢¹kðÞÇøPÌáàó}$ÎnW4×ác|‚Oñ>Çø_‰)(ÒmëÅ÷Ys¾Æ7øßá{1G¦i³QœÓ“íò#|Àø ?‹¿Û톈9êÓ‰Sœ©Ë5{1]èFZŸ´ÖkÓ _œ¿ÒIS Ã&ŽÍ°¹˜c«´!γš[c$¶À–Ø Û`[1ÇÛh¿8¯]ÑÜÛcì„­þ·Úé‚]ÅY÷wDa7ìŽ=°'öSX¬ÍÞâü×hÍ}±Fc ösb„vú‹óû~šb,ÀA8ØêÿC;C$ÔûGÍñ8ãpSôL;#$´Kðo=Š»Xàï5G£um?¹T;c$tZ£æD‹ãp<&‰9¡ š½Oó$œˆ“qŠÕ|¡«S%´8^ótœ†3p¦˜Óº:KB­;<gã\´®ùgZèê|q¹ƒµE<»–8˜I2.À…˜‚‹­=|­[-Á¥â§“嘊Ëp®sv‹vVájqMËÖÉLõ¸N̹Vºº^\©?Ô¼ 7àFÜl5ët5]\™Ý5g`¦˜âé:Ù"®ýc5oÅ,Üfuþ¬ólqß!;0·£õ=â|ð<Ú%®ÛŸ4çbž˜’(ìWÝß4ïÇ=¸÷á«ÿvòÅõÃÚ¢u︰Z'‡ÅõoÁ³¾X«Áý×_b4á1<Ž…xOâ)1k´Z\_þOóY<ƒç°XÌ¥¹ºz^Ü‘ášKð^´:Áóë’¸{Wi¾Ì§ë¼£ç{)–a¹˜Ò mVˆ{Ì@ÍWñ ^Ãëb.'éj¥¸gVj¾‰7ðVYÍ?èjµ¸W¯?5xïà]¼‡÷Å”Uk³VÜ;‚Ó‡øác1å3uõ‰¸ók5?ÅgøÜê|¯óâ. ž¿õX‡/ñ¾Æ7b*îhó­¸ï%j~ øñƒ˜+³µóQÜõ¿´³ó?ô^ó ?3qˆ?æ®®† SÌÕp„Šû›š]èFëûÅÕàÜ‹>qÿî7:ñ£Á0l"æÚ*] ÷?¾ÑÜ›b3ŒÀH1×;j§…xƒGØ [bklc5?ëj[ñtMÐÜÛa{ìˆÄTfi§³x¢¿ÕÜ »`WìŽ=ÄÜh¯(ñÄ•kîƒ=±öÆhìkmõ+mƈgjƒæAØûc,À8‡ˆ¹Y©[ Ï’š‡aÆãp!æÖ2íŒOF;Í£q&à1U^]+žÃÝ4Çq˜ˆI8Áê?ÒÎDœ$ž 9:™Š“q NÃébªÓµ3gЧ*E'³qÎÁ¹bn·ÖÕyâyòßšà|LÆ…¸ÈêÿD;)âiØ«y .Æ¥˜*æN‘®.ÏOª5¯Äå¸Wáj1w㵓&ž_ßÓ¼×àZ\¬þ¯µ³7‰çªt’Ž›1­;NM¡®n¯ÌÔ¼ ³p+fcŽ˜{Cµ³]¼‘‹4çâ܉»0w[[ýE›{ÄÛ#Qó>Ü‹ûѺËÜ/ÕÕ|ñÆ5j>Œñ ug©MÒÎQñ&×|áq,Ä"ÇVÿ;]­ï¿4Óü_â+¬Ç7øVÌÓ|m6ˆ÷·Ágñßá{lÄøI̳ÑÚ ü>fÝ5’¬û¾xÿÆïüÖĉ‚!Š.kÛÿÔŽ[|® š}èA/ô‹y~];aØD|­tÒ Ã±)6Ç1/‚G)¾¨îšÛ` l‰­°5¶Åvbêºj¿½ø]ÕÜ;`Gì„_»b7kÛ_h?ðïM=Ä—¡“^øí1ð/S½±˜—ډƾâ›ß['±ƒý°?Àb^ Ðæ ñ­ž¨9ãŠq8 ­o.¯¾×þñíÈÖœ€#qŽÆ18VL}…6ljïhšæ‰˜ˆã1 'à$œ,æuŠö§ˆ¯ô—š§ãTœ†3Ðúžò¦…vf‰ïîO5ÏÇÙ8çâspfãvÜ!æ}¦v¬o"Îj>ˆ |Ò¼owa.æán܃{qîǘ‡ð°˜ÆhÝZ÷…¸Ë:¹ˆGñÇB”ëQ=Á§bÖÑÉ |†Ï±NüYÅö5v{¡í®Û¶—ý¶e?µ­ÞgûzíÛC¶?â“üÏߨþÆzH˜¤Ø6‰´mÚÃ6&Û¶ß_mcí½…Mʳ]ðÅv±ÃvYí¦Ñ¶ßÚfÙÿ£&,çkÛ½­l¦Ù—«ÇÿJüñw4¿ÿ°kšßŠ$ÏbÔn¼ÿèßiþ þ±½ìÕqÍuòYü‰µöþËïÛóù¡¶ÉÜ­÷­Sü ŸÙ“”ÛÅÁ¹Gü©¼2ËæëĈù(Íaâ_¥9\ü«ŽÛÍ´4ÿš`ŽÿÚ3öêú~¶†Ùnìo»)A;mÅŸ.ö$#Ù63¸mG +±_ÿ°§Ö‘ÿ?_ÿÔ endstream endobj startxref 832942 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/ptscotch_user7.0.ps.gz000066400000000000000000022505261514310134000260320ustar00rootroot00000000000000‹v•‹iìË;ñžËµHHbL‘>d)8ý÷ën|‰²Éæv?œ“ÁF£Ñhô  7ß]Oz'~<½Aß±Þ¼§‚çqzÌüUdoß±3ô]ööVܱÏÁJàcã8Ù¤Á|‘€Ýp?ðxÈÎ7‚MâYþÄSônƒ<Ç,é=C>ˆ£3žô¶ìBL™ëã¡s|0Bb#@¼æs‘3×=Ò/?¦¾¶N2OD>ÀNã"òƒh~¯™ÿÜ;ú0€ª³Ø+–"Ê/â(ãËñd ]Œ/Oïg|yC/7T¾½¥ÇéÝ}PH(ˆW•ˆyû‰—æqDŸ‡ð9ù›"…œß`ò·#jþžM.n.]ÇQˆu3Â÷D??QG“ |8Nm×<é$øEñYä¹H¡ò<òÇñ«3ëÍÙ—OדŸÄEtÌÞ>==õS5b#ú^¼|§q° üÏA$ôä²^v}r}~3ùôßçæfŽûš§|) ?èØO‚?-ª™ÄEê †úyRŒúh‰s  Xè}Z¡?^ðT⽉d¶£ûcÈÝŸÈN¤=‹cœAÛEÄŒ>VÐ5 cîÀWŒÏ=#›é‘I,ºPTܢؕ¥G ˆþ,“  ˆu§pî©­Ãà*K’cUƒs™Ä öxbÙ€óAÞJOíñ“ë,Ñ<_°CÒœ¹ ªE£êÀTYX·–î\g­~hêñ‰(›FóAYíŽÅÝ@rëݪ*‡¹´Õ,aF)Qr€D„–2+Tnd»œ'I~odÓ4~ÂNÔ<#¾K¬©<©fœ^‰8t~Ç@xfž`°kxŽ×l¼aãqŠ/OÔùxcP=î-„/V'°°Ð *5ïA ‡6ÔtÃú4Ü9¶ÁâÇ’gV*2ˆÿr&mÏ:Eð€~#Šªñ*2Šá ŠÚãÁš #Õ‚¶'mŸ”Ò˜¨ œ‘ÇZvc”ÿQŸÚŸ$t©^Ïàu'²ÈDJ~^z‹8~dQüI˼5{òI…£+¦|8Éf¯DÛ_X—_þ\â넜'¹,GÈ" ýÐÉÙÿõe+í›/Æ¿’Åa C+€`¹µ€ -hV2-šL‹Šg–-â§f"¸»4—VÙŒÞë + 4¨îÔïìú‹Ey Z4wШF‡28)WRhCv¡âP"¨2ŽúpÄ,5}Þ*Íàƒü úyöèðè½Û?Q7*¦Ü5*èÞm¯,ÛPÙ1Âú›¬^Ñ÷lrp ׃ 1†–$RU‹¯²÷Á+„P!Hš¬|ÝΰÇ28ø®'Õ<®ì›reŸžÅ`Ü -5À³…Ør³!ûE_7_ì•DÈÖÞ±/ÛSV…1è@^äðö´©@7jQúqÿö,È’oÞ½½w·ïÞ~LJÈÖ˜;²!U{÷ K 3Tôkægµª´BÓ´:ˆ€Ò RyÎER±0wÙ"ÄÀR‘|«Ó"­òФœ“‰ÝÞÇÿ¡ä¢±SBC†¡« E(-ZåƒØÜ8¡m'%Õ^ÑBª%K¹; Õ4#6•£‹„솲¬å!VUdA… Ü2ŠB4Ë1uf0ôÔR$´ `€óŸWŽ•KE5V„9'½ ”âDî¾A²ìK9a SUhq:¶N ¬_<Ù;`—HRö†T²7 Â ³ÑKŒwséd!]zRaü"U“G©h<ÉZÿv(ÄŸ ¸”‰ä±!t@Å‹.Ae˜*¥PRÕ”T›JŠÐZBR<©u²*N&Œ“C‡Œm2ÑÎÇx/刚f©õ^Oì,/Âá”{€×£OµÔxÿ³ÛEAvó#ØÏ¸ßÿ€hs‰œ€ÏžT—,ebÍ;aàFà ßôKŠ‚ÅUÀ|2Z)õŒ= k¬ª§…à&ôý|Í`í†Ôã3¬º~Vu?3ß¿Ãvø¯Zu¿ãÚÜýУå7öü™ãš ÿ‹ðrÓàS1m.<-ò<-p$XÛàž—CÎxeïCƒeŠ,Æõ”Ùu1 }†,#“zûùúúó»˜þÈ [ÜþÐ+I€”Cݾ…¬rÒÑ£}ìl®ÏÊÖ}F#BXFC1TãY“Î`D<¢œÍ¨áo‘çIvlÛ¸$F:ë^¢øïÇéÜ“$ìçëRL¤ ¤ðL €ªžûS9[l R ÅŸØ[dí§8}Ä®iðHDÊp]£æ›˜‚aª6&dy{òœ-H¬ox¸Àtj‡e{q§ýÌc’mi%ÝXÓ™P2ÌÓ `bFˆ@Ýí…œ9Àça<å¡e'þ¬¯ÊyÊU· 6mTo•ÝÑááðÀ8)ú„úÚOr@:ô!ÑÆü¨µ²­!'9â—ÈX[Cƶ5äçn¤aa¯32t´ä¤‡ôŠÎ±Öüïã’§˜äIhPë±…ä'ý5 ΡU³È»j‹’)×=‘õ~nèY¤kýܰ‡zkôh€…,ÔTl&1D^؆ ÛÕ ë:tK5MÊEúedh—2²ûeÈs|·d³Ñk)p÷([4`yð›MŸÀò­énôº#®=Ã|…}ðf}y‹¸›E•{˜>´) š]‘õ.K ^U–}¤Ö¼„ØQؼħšdµ^kÍ·MüZw–ãÚÓÓ3ƒèZ{Õ+aGEAx耫-··AÄZxu>V{ø[µÙ#x¾Lün°× žvƒyÇüU&pTÇêB/;Ó Ï²\7º&ÅiEq— ß$X‰FZú1q7òbïC€ {jû*Bµ˜PÔê¢bvìÚh¡˜åSLÇ9"&*³6%D(6W‹'-$©ŸXQëàsÄEW½roŸ´òƸÔ@oÓ~–D}S(ÌwÚ¡F°´ÜîÔ³¨‰²S-iU¾Ý*ÎH-;Ø#8î㲪R)ý7 µ1Õß$Ó…Æ>Û¿‚HܽV¢Uµ1 f/™fs¾Ò#ksÀ¼…Ç^ÍnfTöºÂZSâ£öè»±Ÿ<«”TÇô¦Ó—Î;Ø•‚Œûº¶‹þáN'¦D\É”±=RÅí8 åº[mÕµtïœà_+¯ZT)y峈RÃÒ“ÊAuæYŠ€Ó~#êâCMY^I0{„-Áx&pëB~+™Fe•,œ™5DEµ½ÌÐ>„ÃêªÙÔÄn•s—=Ü·û ×;M RSt{ò¹×¥L¶á¿ôêËL½öd›ø÷ KöÉÕ•Z™ø3µeÌû r›<ˆŠV¾Õ”ôÎlu͉ ‘ž4†ó" ÒÃMz ¬Ói-MqÑg‚Aç8jq¿‹ôþjAUݽhRÛ:]©¢ªi'‹ßztNrW ˆÉ¦ö׫‘¨Ö-…Õ,G¸óbxÝ]ÿ5ÿì]+kÙ_ÓJ\ó-])­v“=ä«#råa_@«·;Yë½“Õ ‹¿kÒ¬îé)'ðÿ§ì¥œ'üGZ:Cã£=Hò<¦p2ÀíNœ·¯;ó\GSû\hZt‡¨+L¤ ù~KRåFÄÕw½ÖÕù©ÚI*yÛ7³èXõÍ~WýnÊLýàWç³Ý¾º1k±lP~õYjåß°Lo;8|Á~V÷†iý7x®Û˜`:9t÷r¨Où I„Øep ï?áW»ÉÛf­.ºP:…´#§[jÏl±íü9{%ñz6¯f£s2žW™gÕæ›*§¨žííßýöþ‡ÿˆþ‡Ïöß­”]AàµzÙ±Ü6>°{<ûìËz­Év"›}2²Y/Š¿žPß {«@]ÙiÔ‘p¥"<·~‹!vÍø+Ìï–·×èö)š»·§ÕËý­} ¿½¯ás}™¹V˽ýÿZeYÏkÛ z]ןÇ}Ô7šj4AM#‘µTCmêwd)6­]$SÆ:1Ò+Lµþl-4wF&wr©Jùuöò÷xú òðBrÕk%@8;OÞBx{màÆ£VªúlNU—ƒ4'¯jІl æ1†—9‘é0Z³~×k÷VfZUìì~7ô¢±÷B!²¬·¤s5­=˜Ýd|RLé$Ÿýæ¹uê!Ò¢Z¥¥j+–Gþ¾ÛÒ1½ˆÙ°änì®Ü…Øø¿ŒÔá7gß~sÃÀ~çÎs}ÉÔ5Õ–ÆssÐÄjÌ}[¥¸ Ãi+t}‡–¬i[B¼PðTÛ˜¡¡í±ÛxJ=¯ís5¸RÇʃ /òŽU¡ÅnÚZØþڢ岷ûî7Lmšä½÷-€;¼yqã³Õá|œƒòųgŽ3õ_8.å-{Y‘ˆ´—gn_Dž:+Õ<S†š¥ñ’ý|;q‹(è/yò=ùyn’Ed9¯ùþôb:ç‚ï– ÊÃë÷@ÝY;Žeÿ%å+aÙ'(¯eƒÔ+–³"ËöÐS«âY R‘™eÿgÍyZ,C~Ó¾Az„1æiŒ'S±Òm.¹G ³8çžê­Àžðƒ0ä–ÏãHü‚b´´ª>óÒÔß—Sô«JœzZU\Ôœ±‚@Ûšä}>Ÿ‹Ô<¡Né“ãŽÈdóE\d˜ÚÓ" !4)ms†ÆmT¶ƒ.ªfaœâùG<ç-Áªsžn4퓦0"î? 2€§åQ`|E«R¤ z‰v Ôpx-"Ú’ŠÜ´‚ÕÈÄ•r_Pn¯QaxôÆœ,J¡as>¼0¾sx8@%ËÔÊ0D–K ¨à”5Æ?pˆñíaƒCS)A€Ûßâ—ζJÝ<ýFD8Oø×=n&”+Dõ¦à©§Ïœ%†žS&Àñ€—RptEZ4ñ\«¬fÊ=BIÍì¹^Rt%’Èì)0ë‹98QHXdÚ¥Ü"ˆSíc«WŽQ_ñ´,jb4ÞGªúR¢>%ÿ]µî—‘ŠØ×÷_ GV*/x8kÅ[Ë>ïãŒSFEœ8ÅøŸn‰ÇÙ7³‹¢‚Нüñ5ÿã÷_ù{ñýçÚõ7ßß­Ú§wö?Wþø¡…ûò7Gùµköá?kÍŽ_³f¾¿f_=mùá¥:þöÛý¦¥úáïëü¦M {Ë\ÈOÍÕûsÿû¿.éÛïÛç}|‡bôQåd>«b|ùÖõÑsñ0¿]Òvnò£qìÿ>>¾ßï~óÇñfý,Žðá/þìssðVDùødÛÙýüψ’;”[<çôt¾¨ï|çî¿ý$ðù±¶4Eؕ˸•¶“ý„¾ý|‚`'ó'í‰Ý‚~|õ`ß/ãd ~D|t;ßüìcêàþæOö?Žýߺý_üŸAhS"âÇ¿üî1>_bÌwÞë‹ÜŇ?ýÅ—>ö#| ZײÎO>îðwßøì·§÷£ƒ_ˆÐ<¨`ADðqU ÓŸìçS\þÖ(m,5Øn”îUÙŸ~úÙŸú³¿þ`èýô³¿ÙÂMÇ×6µÿÔò×>oÃK|µK?ð—_ öùjuüuõÓ }|ì¿>>­‚_î·úø¥¿üÕ—k¾ùÎ4¿UÚâÇ?ÿ‘?Þ_‰âýçÇž¹o?*ƒhýŸ~þ]¬q7±äïvóãnød|Øý— L>üŠ%üÉ—_ò,|ªBùN†àÃ×6ùÝ÷ü=ÞÀÿVìGøgÿáÇŸŸÅ_nßüô'ß~ Ü훟ÿôÛŸùâ¿ýùwµ}óç >ßê>¾6óý­ Šø]ùÛé{áñåÃÿâ—ßþâ—&²>ì¿ÞÿýoOHâw¿ù?ùé·[]᫟~øüÓÿTßZâQ7ˆäÔlq”O_ßüõÏñPÿó7ÿñãÿx$?¡”ù]­}ÿîþ»–);8?|õ²ŸßìG?ÿã_½äWÊV? \ð=vñá«-8Ž¿øë_üòÇöùJvãŽR/Ÿqã7ÿ¯ï~ðõ/o®nXQŽåÿè—u¥Û׃X¾üêßþÍ㛯op?ýŧÅÃ~3¼nüßýÞXßþºðÝ9ú ¿ñ‡?Û¿ýíµKi™üƒÿáOö‹_þâþ“¿øå?<~ÁƒÂû>‡ ÿósŽÜ–(¼åÿò˹ &ŸîZ¿ý¦íbæ*¶û½ýæú7[Pæ~ðï>ÛLQüøûÈ<÷~þãýt§ø.ˆíóÇú"ŠöG~–ïãÃ7ÿœ_þùÇ·üðíùáË‚íÇùæŸÿö¿á£ýÉØÊkæÍ>üù_þôÓÂýóßn¾ÝÿΟ~jPÿgŸª»e9ÇÇÿýë?úîþàÃ·ß D_?‚‘ú›ï^àKÎæ/ÿâø²çŸº•?þÞ~®Ï¿øõK}WÂôϾkéÞëûéþŇo¯ïÒ9ŸÖÏù{_U:}Y‰_~a}|þøßýÒ—·ÿº·û›ïÖäs®àÓóÔßúP?Ø ô­Ö_ãøúáýùç÷ý«¯Wæ»÷ùý_¿öÇ>ñïÎ×-èßï3øOzèßôžïÿ—?ÿé?ûüP;ÛïñMû×ÚÍýèo¾ü‚¿ñ½§ùøëß³¥ï¾õÕøþkþù?|»¿ƒý¾ûíÃoóë_|ð<@þçWþvWè~ƒ]dõù¾3ÁOßÚ¯þýGð9¿üÍ¿ÿÙ/ÿÖcÿÒ “/ÅxŸÀ¿üòGÿË/9’_¾üòÚþ‡¿9>¯Øü•ûô>ß³€/ô=å_û1üãÏOûá§Ÿfùù7|˜ã'_oŸÏòq…¿|/¾ýýá'cýÊgÁ¬öß·öáßqd?|ó;>ùÒÿîÓbøÅ}ø¦oÁ’¯¿¹%LþÈÚíñÿÉ?ùðÍçòµýû¿óñ¿xíñáŸþÓ¯~´+Û|Ëï—èýF#åñ¾úDËa}÷“ãûkº—ùoÅ_·{Û¿>Ú_~ûûVõe_~øAö>ïøWâ;]’÷ù“üн}9<¾Æ}·?†É~×úû‡|óÏ~ú'|×_Ý?þ¢g·¿úöë¬ç'óÚ|õWó]†Œ}ûÿêÓ¯þÍç‚§ã+´ùá“è¯bîù¥–ûÿøîVáü­ó·Ã—Ÿ|¿ÿ–äðÿôã?ùð?þ‹çeòÖ˯•þøîo~ø7?ýÑŸüäÏ~òóÿÓ ÿé‡òWõWÿì¯~ñ—¿ýó¿ü§¿ÍA<>‹}èÿê÷þíïüîÿöøÝýáØõQ?ý‘¤øA5¼ïD‹¾h,ýö~€ýù®¢ê_Î?¬ë_ýî~˜ý›?컦ê_üóÿakóÛìë/ýtÿèÃ/?ÿë§?úü¯ÿù_Ÿúóÿøñ_¿}œçW7,•JçÏÿÃÏ>¤Ÿ;,?ýè;¹¥ÀþÃeq\~÷Göãÿ ÿìÏþÂÃÿògXäŸpíw©ðÏ¿ûÕýÙO~ú×?øËŸ~ãw~ù#£nœ>~ë'¿X?ù?þ“ßûÉ/ÿøO?çVoþ§Ü›ùã?ùÉ_þÙ?üNÈèsYð§wä£ì÷ûæóîïïÎÿÿèüO~ôó?ùüýãlûx!õåuö×ç—¯?]ý;µl?Šý}þ×}ù-%]¿ý­+¼~KaÄ3æûÃß¿ùÞsþêMϧ¯·ýx “Œ2RZ)ÆöÞ©–ÜÒëÿÌû©q„ZÃsµúLáñ_)žá¹6çzÚy©ô›¿¹Ÿ5ï9κ®ç>ù»œC?G_ï™®8f˜}¬»¬«=וÎw¥ÇWííèýí×ù¾Ï‰?ësÅZSγÎ1V}Îz®Òü9g¸Ÿt–ăÜü{®·ëÌw)£Žò^O¸jïñ.­ÌYë¼k>kŽã<ïÏ·§PßVûž3ŒYÂxG<Öæ¯òŒ+ŸW©O]3ôôÌëjuð‹!ñæõš“²Ö;ÏQÂõæÞ8CèÇäCŸåYé­W-ï™Ã¼ßüÔz¶sŽTïø´§<-¦qÕö¶ö¾¼@¬p¾f©×bÏN¾‘0ìéz®ò†”ïÑÒ}ÏÙbâSÇ„ø¢‘Ícbqw¿ã|ßJçËK¿w-WèµÄ¸jËU]=ö7e¬eb-éyùÉÊëˆñŒWt×o^ù !”W`ãæÿž}u:9k>¡Ì\ ¯¸Â;BËGíkÎ'%eµÊŠU~ryÊÀV±Ë›¥bmÒUØÛR°}vûެáÕkÃxäû}1Ö‡Ïq%vêN9]}<ƒoå+Ö0òÞVâ=°ðYÊ[îË}Œ1»çâóqPcîyFÜC(ãI÷ÏyòÈ1ñNÉ[Î+6ñÄ¡‹˜þq³ÕÏÝÞÁGÀlß‹Cz+ßkæõ®ÒŒœßË5>ik1”Ô‡Qò8Í!ÕÄ¢÷^fo7ØOWg‘"ÖpÕkíóNz­ž·Œ|ÕÄJµq¬Yrç[ oî‹g®5³£7†FÔ®Öùf|B/^dÄ7Åô†:c^ùˆ¥žœ°YTGpÕwÖ'„¡ËêœÓu_³žiÜ©wÎP=½w»ê¼^ñ}p¬VºØ‚P.wä‰5¾¹aÔ›¨ ׈•Ôr·{5þwÖôÔRÎÇxàœ8¦¡æÚr©9·È™cKC½F˜çÅb¤îÀ·ÖƸk‡ËˆØ@žó>ZÀxÃzîð´ïpÖþhf<< §t׿ѯ'=¸Ê9Ÿ=_ KŠmcð“9ðÄoà øå·ÔÈÃV*¤ôFÎ(ÿ¹WÈOáÀöw=ý™¡á™Nv¡co‰ãºJ/+u!›Ðz¿çÅIçPâ ÒÛK_ƒGÈøA֤§œÇqð÷»x9ï!Êeç íîåžµñpO¯ï›sÂŒå}ÃEl$â¼l.¼ÄÙSÃÃâ9ƒo$¼㞆ƒ¸å\îxå·d¶½ñt¯£ò¢“0SxŽ÷TK]O¹8â÷*˜,nGǹ]m½ñ¾8\¥?W&<oŽ+ãœój„O–ëØ¸Î‚£âÛç|êLçý´4±r¬…3îí™üÌxŸa6b>·¿¡­»×À§‰)¼zÊàXc Gã‘§ãø«“‡ÀKå¨ó¾/Ö¤|‚“Ð2ÞqâÎ1øloég'~ã3ÖAº +DR®¬ÄÁ:3;ÓÒõ f&ªæKÿ†oba.ìm¹XxÁu`ü`òàbã\`—±L6“s•z¼WJ›Œ€!ÎB„äa'ëDÈlõX•–¦qßnÄLÃþOþ¿¿ÿ6^à«$õÇL» ýÃ÷9ä§É+PÈï¦àøý,ò»©,œ#Ðþõe”Íç?ú79Ò?þêW¾Ï5ÿ%êüËŸÂ>œéŸùçÜpˆ¿³3~ôW?ù“ÿò·?üV´ÿÏÏlôÿ 1=9°ÿhÿù‡úg?þùOþøGþfò§^/ìÁ;ð³?þÉù×ß{‰ðOTÁý$‚û£?û…Ò·ÿôþ£BÆ¿ÿã_üøçíÜ+³ÙÓ§ÏöÛß5ýìŸ|7ÍçÃÙݯƒÿàwþŇõ?þó¿ü‰ïþ£ÿæ³ ðùùåþ¶hïþøá‡?úó¿Þ%cÒ µþ…Bÿh_~ñG?ýÅÏøûýÕ~òÓý{~a?û>¬úÿþð#>â§ø1ãÿ‹ßþÅO~ºõ}}™_™•ãóŸØó÷³Ÿÿõ7ßíïÇ‹”Ï_~]Yù¥Tòã/™éþò=o>À0«ò]šÿ }Üs&ü6Ÿâë†O¹ƒ!$¹ßOÿþW?Ä×ÿ3Èé‡?úuù»û=òúá[Þî·€ð¾j¾Ï]˜,ïüAù ùƒgãþ _ÿÝŸýÒÿà‹ÿÂþ˜ÿ:ÿ“-}ÿɸ¯òlã¿úH_å7>þÆßú…ߔոþ¯þjÒâû?ý:ùñ[çýÛáþíQójô÷~ö‹Ÿ|ès~—ßøü3Î×ÿ¯x_`“¿&Gò9õñyºÃñi¤Ã‡Ï¬¥ ?aî‹=WÇ\¾‚BI6)ÿŸÊi4Ð]ë <}ŸgËùóé°¢1zä+ƒ3Ùõ…o†s=gBÜó„Õr6¸ò {7» =ë|Z€ƒ…&"ží~^@uÎGj±Ü *^â }ø4xã‚ÀB×'³¯Þ ö ]€¼8ߣäºAìÞ6×uÖ¶’Ð/Î;öqò (Ÿ¼Î±^€\|Šç“I‡X Ó ÞÆÇºJ,g‚Á°op0 u>PÑê(((œÉ%ƒky¯£¥q®rå»>54b_y“WÞ¬ý°V7Vš×àa 5\y€ëlO9 Ü9Ö6ûh åUMUð:<D·©1Bfø¯5rgœ ¹˜+Œx-0#»™±–‡¿¯§ß ÀüÔó…Û\é ÆVy ,^BHï{?u^GÔŸ÷07ezàI&ÁŸ]Ü—H¼/ÿ¾àrÒž¦TÏc ¡gb?kæuà¾7 é=S~!–€å¡ðåê<~1µÜ+ÿ›˜­ßðVèWŠŸûíª—x˜r¨LÔZÞµÊýH1YÍç*ÒÅYóš“gˆL‡N­€ž¡´ nF>Ú ­/v11²—£À’óÍe¢çL ¬&eèÛ9·­ k•N³#q+‚¸±ü Óˆó}ÞVO¸^ÝßÀs]ðñq_‘õ««ðf}ïÓ=›U8عð®rBò8k†oá! ›j&qØž ãŸ7¦Ïb?›ÈŠ¿6=0€™{ƒ«A¦kÂDD7ÇqaÔp½M_wÎp]Žü¤w!¬|ÇÕR=8å…XæÍ~¶ç¹xvö²Àbœ3s<\þÎ Wzó¬æCn>;/Ïæßs±õ¸µ¹†\*ÿæÇ`åÂYxƒi^1_Ž!•yå~U¼U .øHPÕt-NÇUŸ{eœûÛ;; Ɖ‚ÓUþÑ–|pÅ%}}Re! V·4‘–MGœÕeÎâ|3¼‡Á±Ÿaò¡^Ó®zPÝ3ž¸Æy&Öw¸a¡Þ‰_?8š3pÈBÉb›PX³Û8Ž‚7dgËÝÍÎ “zÍáÞ ô“ðÑÇyL¨y{dÐo»† γ`^ Â|…¸2§ø5ÿ0*N¦ð yÌÙøl«^Ïñ!¯ùb^lP9P¡çt&L¯§€¯õÁ ðÃçÁŠcÅ·<‹_!Rûè³Ì¤¡p€*©í¬}o¥>2ý¡Œ&É^ìˆ?.¹÷úÙæ\!l=LøíaÕ›x8hOœ“pGP˜Ä4éÂËAǯÒsã–C†××Èañw1Þµsº†=‹ÁDg‰_ÍÏzûbuZLìÅV@õ1û£wŸýJx0]Q§rhæX‰Þ¼ô9¦Éûd‰Ý91‚^®ØEÃ)¼þêwdyžÁq\X?¿sá¦ñ‰üpà@½`ߦY°Ïå_¿¿<*á…ÍyÙËtÞ<Ï{³Wèj=Ž‚,1Ñð;pà ‡ª?Ä… s„[½NÖ~ÅɹâÁ ùæ˜ÕQO":1A4œ7Î_#œ_¹ýT:+ã½YΞâ¬ÄS’õ, «j^cÔÞ™ ÊY0&?ã(Á˜&§9^a…]Ö}aRÏ3ùL˜@,¼xý3ž‘˜xÅPÆWïoÄ8ç÷×Ç îW`Ê[;[|F0Vxó8ñ•˜2/WÖ…/c›FyL¤GÌ|‡xøpæ~Þé}ˆ#¼„o¼gzð$‡˜èDœ ¾î¬ôFÖÙO£È…Ç¿2îü½*_t“âϵ îåÑ/6£RbÏŸ¬øûø[ ›o¿«ãþÉø É›=Ö÷×$o>Žüýäͧ?úo2y³?ÛÉ›ûû9yóñËÿÜäÍ l»þî%o>~Ø_MÞÜ~ë‚ûŸ@«™ü'goÎðw+}óÑÊSúfÿÆÿ-雪]ùjÊYêæ›ýb‹åÿZ©œûùðIàc§sö·Ò‡Ob _¾õ~Ø¢9_¾Q>¨£ðùkOY‡/__¶\ΗoÄ[1çË7îŠæ|ùšÙº9Ÿ¿“2þù«­üü?û—_¾âiþÕç¯^žå÷¾|ÅßýÁ—¯x×?üüUÉŠ³þŠùï¿|Åkþñç¯NŽâ7?þêK^çO¿ú’‡ÿÉW_òJ?ýò%§ê›?ÿêK^êg_}ÉRýÅW_òÊ?ÿêK—å«/Ù›_~õ%oôWÿÕòp=<z¾ÞÞ Õ„Ã)ð”ÀäNò¬yšöòfÓ “ ŒçŸw/>“—]7.û“çÈ0r8M¯·ûÈ¢irÇ(5 þ*0òµV ç¸ ¿¼òÙyãV{C¨ç»/_­ùÈ O¿û¶JJ\`tøõñ~`jP'ØA¼`ðñ¡$/lážG›=@å‡ýLgÚѧ÷çwó¦Ì;ˆ5 é2éw¥ÁbDðjú eÌ·1©7V*Ôrå _ â×kÿ˜f¸Ïaòäårz/H­ùFx$qá~"Ìå´ÐVy+ˬÞxòšÝ×.v:ß³µ—çKµ´· ³Ý0ÿpCyg³æ%< w‰ŽR9V[@Ôkå·îýîÙH¦TqÞùÏ£/+|BHp»sx^éZlÊs‰}…ø\c…;‚ÓS:Ù$6vt„|ÁZe–^!°p¦'Ïeþ/½R¦Þ_Àx¬ˆ°Ô«—·ÂYC‚ÌãL|ä5%´Í2Œ»_aNÌåLr­!Z†ñBË`Çæa;ëṌãIÞa¯»pÎj-æùûò@ËjŽmæ*V|T¨aÂæˆ èñmwo<”¥ÅZ̸ÆrÉG€³<¼ÔsñéR/ð} ®^B‡4gkkr‚äÁ ×Á_Õt=XÉÕ?J§¥9¼õX/\8fžŠ-Ÿ #í–™<å„AÅ÷d{«=¬È]­’É'õyÙÓµFË_lõí‹.xg+qÒક_äãÀÓŽƬa–æg¼ûͳ¶W«t«•z¤²ßqöá>/RZ4¶vÉ M8÷Á9c—nŽì–Í*$ÁYó ì÷•9ŠpÍÖ<ö&„ø.æx¼ð¿v}¬ „`¿Ï2h,¯ ù==Jé3¥gÁi9–ïGÚ9kƒ-xr®ܺ¾ï¼®0ÙtŽX6ÓÙÙŒ¨5Þã,x hÎ~ð81F÷¬D¾ýœ«ß£±vQùQÁ#Ù±Þ¬r V'¥yœ}5ד³ÝþÀÒ—q^Óä•V4­s Ã2ŒÑBàÅSoÏÚsž¹ÝåÀbjãxCº{bàÝWƒ$³FÏâð$>ýh#÷9®Î¹>;Ÿ.Ü’o ñ¨)'8ޗ׳Å}àëÎXóºÖo}æ‹k¼Íñ¿g¸ðÇ×ÞkK«æÉcóF«av1]wL£_¯)|IyÃ_Båq¹Ü•pzà2ç[Ö58/ö̓PðQõIXð2w4ëÓ3þ¯Þ3¶™X;göâߨ+è~êjGÄê¼±$°XàÒÓyãp½uâø—àeM<Öq¥–”Þu›£ÁŸOÏL¸À›–•Ú‰k ¸ÌyrîŸÞÕ¨œÜp_»N1ÕÊ™¹=³œå=ö-ÊÃ>4ìÞ$Þ 1Ó™ÚÃÁ ÖO®Ž7dù y­ÂràêfÁ+gv°”žyb6̢Ѐ-6µ?çàó=á6=›L°—×B°Ùy…f.$ï2¹kžÉú¨p,õ·–²}×bë[YíõàëXYÜià ÎhehH'–˜,L+†^Ö¸­â:ñ´ëÆEôŽ/{J¬ƒO½øýbZ/užsùÞçˆÏÀ( ߬ nšÿ®ùåø•¬'5…yÝ—·Gå¾G# ­Èó­RÆ<ÞØ‹÷bð¶Óš½j²7x!Køzدb1@ÎëXý©ýXàhBëÍO–Tö9³J)áT ì,k/N`¼×vSg¶Ilܘ“àωÇþ°ëÌã vÌ•À›ê}O–yδŽÞ»µ˜¡Ñ>'aí}¤{g¼î[Oè-ŒÙ8 ~-ã²JŠ{°;ë"öUKP16| …³¼Ü̼'ÑÏʨ‹Èu[ð™^„‡ƒŽ͇— ѺÓ2¯{˜2Ö® `‰à%ä…(ôÔÙ[Æ& h¬7›r×s©6ŸWe¯19° "=CïE'w‰¿fAñf¸È@€'Ì÷Àž0z W}u÷™oocn$ÇõpÂÏçÂ6»uÖf´+Ûob?³8Ƀå«ì.a¶×*äÇt½À¤NÂueŒ«ŒŒýð„o¼§$¼ððŽ•C,s8ËSÀ›Wx4/–œð<8%Ko^f$ð!œ2·ézú,92؃€Ðâ]jâ¯gõp²CjÞÂ=«rv:H“ç„↴X&þyßø-š2?Á¥qÔ$‹à´Ä9‰®Í;¡RñæÄ<ëy7À޹Ãt›_| Ñ ÷\–éçÌâ¢×¾x1+<¼£`½ßÁ²ÎvaMñ¸Ötõ½œáÝ‹³”ÀçÙ0Ù Å,-‚ãuO/Ò‹Øn Ëg˜˜%}œÌ«,°-OH\½Ý»Xîl¥Åâ¹Ì?`~ŽxŒØ_á|M$ÏÎŽ~ŸY·Š‰bšU„ÈNe¬‰ÕÇrFàӥʉ´Ú”=aåòñzíÁ‚ "O¯×8©¹`ô°ŠgÓãz¯OT@Ê;-ÃïbÁdÖA4ÞõÙûl…Ëö&0³°øÁÅã'±ã%²¯·N"¡n‚CÒ{ܾ^Ëåj¹ß©‰Š¬­y/NÀ„3ÔVßÐîðeq2öëiÁïy@o,ÃdxkGV±? ‹Æ"S9À;¼Ô›¢÷—9qn*p3÷Hp…èàžÊÄfplm²–¸,0È ¼Ä/Æ¿è…î*F0¶™ùÕz¼Þít|~cyûåõ·…¢D!"‘ êÃ'°¸Bð,–×z™Üˆ gý±Bµ[b.îÞðBœˆ,x ŸÜ´¼Çïãt)V}^&ðƨü“CJà'¼—ûŒuÅwq–ñxåsepÂòSabÞˆŠ¢—Ý,b³¬L3žžÅÁ˜øÇÛkÃubƒŸ…Qr€ =p+€sÁ,Ðì:¤ro|@âaÂ¥.`>d_cY¶;{" {UÁ‹ñé8 ð\6xÓÀ#uþ°ûf/´¶*a{îxÐ3äæ°¡ð²M·Wg–´žqÓ©äz…€«;,³Öæ’¨tN£Ü¥vÁzh)Q”]‹¬ž—Ï5GM·ÇAD,”?Y0N'„!Üí€=Hì¬,¦ø°<$<ÍPºd+FÛwÌ,:>:Ý·›»dB„6Ú´x?r°ˆÇ"ÿä…ÔfíÛA|+ù¯4ñO ûxðÿ™ö‚µÚ—ù²¤]´ky ñI^«q`*`CÒ`›‘×séNáȧKpB\?ïXD,ÄfàYs ÜI,~lS@\øp¬ÔóqBÿc:ïS¨AðÆr(ØX ž‚!RmVSÀ½®ÁÎø«ÿÛ¡4ñ0–õ‚2aBzpTÚ=:žïèûì0U6Ò]3wVè °D„ÂÚxF³ÀJ^›çã?½®„!%N ž_]ÀãøQG>ª·Ëëxy¼UǼX$,|ÁªA”¶r-!‹Â.°R€uzqKpÐñÉçìýòÃk`ʘ' w%)I&0®W¯=àTƒEë¸ üûÛ ðî^­OLúX(f]LóÉQVe|{XƒõÆ~Nh>&k]NVûù£ ˜%øtb nØÛ}ë’é ö¶‰Íó9Ú•ÊË‘aŸ®›}_¬ìm¶ìY{A1«Þ6Å=Ƨ¾`XÆÅrB  ôÿøüýMÒ´—±Í,âñ^kÚ²æ xQ»™?þ·vÀŒÇäÓÂŒ`'‰w…šÉŸ8Q0 x¦”€ú‚lž¿x[0×&(ƒÛpÀ<ÚÍžUNôMÌKå8-»¾°j<Q%šæ©]ž“ Z'FÁ–Ù„£ëô^ø™7Ùp]þ´M@ ñšÐAm&œÆN—Un “ƒÑÿ°þž´ÅÔcÏpHP¯ Ð UúX—AˆÅ³v˜=g9&‘ð¾€ÅT øn°^g€Ç°í¾¼ì¡·rC[ '½¡½'w­ûÕ.‹*Zœ2ñ÷ð¹už'€w+;n Œð"ZZÂGž  Ás~ÕFÁ MZ´¨ ×ÿîpø' ™SƱâ&þ‹#~ÔËŒM江n8„ƒÁ«Á¶WcošŸ)>jªDT©.jØÒq€€ðü oÓv9—=ZîYàmí¹œ}("»VxÍA”Ìù³™ê¥™—Ò4ðü· 7(fáqÚS09›;ÜDôgÀñ<€wÚ1»v¸H®¼+:-K#>6¨M}'4s൱T7îSÄ¡áEßã2upÁoFµÑ”ˆ«²i$'&KƆ}\åƒ\´ ‚ÏR9¢ ¢D ³Ÿö›À³&iZ¼vJÖ÷ê_^È!¾³Xš Ô<ÿ ž > ”‚߀|>Ðz©Z9' wdÕVHô´êJÀÔ›È|âZ16!†q¡š.Åâ6ÌIž÷X´’w¡ sË@…;[%=cÐïýZJ2ôŸsˆ2¬¨âqÌH›$ ÚÝÀ‡b¼0à\8N£áÙ¢éҾÑž ¦v=my ®²1ðg·(Â7N‹ÊL7¨{&ëaˆ2gÜÃÉYz,pÄu–]ù˜}á|‰LIÅ‹-…ˆ°dp\I gw¶„-]’]n°Vv`¦–‰ìëœ?õ¨/(Œ“ââ©0‡ùWæ Y`dÞ.Œ¯Ï«Õ±ëK@b2ÀÊ㟞­˜}›l¥8`¾á.VsØÞÆÇã=1}Þ®p(w~®Ûö´a~ƒå‚˜Ù'llRêfÞV\fb¼-[Aº»¡›¨Ÿ öš‰=ŒwƹΉáø¢ÓþÎ[Þ¬•Ïì½ÎBº @†·¬ozŠ^ó§÷ œÉ´úÁQæsAAHPò÷+À8A\¸RÂ+ ¦ÃcÀ €¡=^ŽÃ‚Ù¥{ÐéÈ÷@ÃjäW#I·œØççM¦‰4‚MËT»×ˆ>ÃÙxÀÌîmÚp–:Us5°J›¢'€Õ…㸥cÜ·KŒ‰C^1°Š;^‹‹9•r’fÅÏ]O@8ƒ˜9<ɦћkf^‡Eäþ”}½ÄŠÑÓÂS¿MŒ`W·Pö±2ôÞÙín€± ëÞ–niq"ˆ¿D)Q±†Íbëêæð7w½XÁY¸ `{:¯†!]Ëk‡ #·§—ØhLã]¬0þ´DŒqà-p‚ö:ž&Ð#Ÿ³ñœ×1 åb}Æ2!LhÛ•QŠu3§úÂiq,7ò ò˜M!ú¾Pßd›v—s ¼½âê"4¢»7€aÇp¹ºÑ(¨[wˆQ\‰xN¼ËÍVäȉ€9~x–ÅÏcj¯iSíÁØY…ãå²%Xu| ªÄlˆö#Äg­ÁRÔ]Õ)ÛÀPA'NÉ4ú€³hò§U_ÂÙdàlÁŒ—]ºÕð_ –þ­Y@,(è­6¬ ñ‚°^[1ÃsÖ µ6Œƒ×9#Ûka’¾ædL‡FKÔ-ùkxåÇê:¼zÀÎ 4»A²±XHk!jVÙ‚âÆ7ƒ©4ŠÉ·±GâãiÂŒ9ºìÎEâ.lA?ˆˆ2+¯½‰)÷î*Þ`D€aµÂñ¯:ˆ8Ñm@ëX%~>L°Ð‹E^…ÈÀoñG·™Ê\—‹L,‘– ‚Ѱكƒ€†Ó!há 埄}Vñuœ ç:^ÒžfqùŒª($Çl°¢o†§yÞ|qj î€ßš> ÑELY“€HÂpžñ@"pÌè|ñ†sˆWžF+|;Çmàf|¼4@lÅûÔÓ ®ìyóŽè‚k´c´¡åðfnn—+×w/W,¢Çš“ÅðÍÏDœ‘ké6Ã#ãYØúhÄ98ÂËäØûÊ¡A åeªaÕ´s[+÷ª)G»çòƒËóŠç ÇêRÄüY:>rNp©ƒ¹–\Ù9”~Í3Û­"D²ç¾o;ÏñuŠ…køb°8ËÈ狊–Ü&¡â`ž’“Z¼LçÓäÛþlÊ4‡#¯¶µN®V° Û "0X€/|:8›Qw‚Ü—÷PÀ´P–±ô& ê-¤Z^S,2ÈP5ݰö·á]vOî×i³ À’3`< ÕÔÜààæN\Ù\Ž‘°*7íŒ-ੳ…æBø}kåÀpá)xYUñ²×€\M¯í8œ,Ãì‰'€åí>¡ï!SùÕž¼·h{sÕ îëT&'«kCPx¿5¼À÷TK'˜àé8™O~ÀãX‘®EÈÏ»´ xÒv¸[ <è 5°Âɵ”ß‹zLèाf†`jp(½«;Ïûp™TÈ‚8FèWÃ~½Ò‰¨€¤|€KgyFØ–c Â'Öîè½”¤>×Sãå ñt›˜Ø/v J{ˆõϦ¹°öP7¨Êò€ß OËÌ –·ÎÞQò9ð‚œÎ&ç]¼`çª ù=äN“+EšßzYš-8²‚ó_ý2¥±î݉^;~õ$샙ð›JtlÏ%KI¦ˆÊDkX!BÐL'ú8Gp[+n6WiFu€¢mÇGÿêØyn-{],š{Z‚3µ­rç&qªìÄIÆ?B‹D' £Ùà)¡¢3±ÒÖ€°}xÀaª7ðè‚^Þý´ƒ¹¬áÀ&†¥ÀÙÁè8Ç‹•$6×xMÈý±5”pààûÌ&ô^Gãý9˲Î75 aÀ ØÕ‰³c;q÷[Œ~°ÇÀ7mñI»œ|ÚN·,²‚ƒBˆ ÷2ÒpÆ ¦X;+;ÎyÀDà^I¦ì°Å«Œ¸€„`œS˜OÌì—%GWÁ×n‰1pZñ‚ÄYµýiE@·é©â[ð3ò±'ݘÁüz«…aÀQ,^•?ý>’Í„õžnðö& ÀtmE/¤S’éÔ9Ÿ^ûj%Ûå¡ ¶Ù Søxï6¼!¸!W‰zyk{ÿAØ|7™n7c¤ „'‚ÁÎlcY¾øI¸^°q;k%Fx ß­>! xKmZ§°‰ÀÌÓp%˜ê ˜ÇGÎ:B0S'JàæWæôT S¶ŒD‹ øl7PºG¯[ðr÷mÓ>qd;P»ÄÀ=ˆ«ÐNµà©œ9ÛÉ,³˜w. h[Ÿ‚< s{ç¡®“šlŸ’l²Ý”óZî’ïÈVzAyB ù Å›ärÙQÜ?ÁNùħ%>  ²\k6© ˆÃê°¨¹“\r¢¨ÿ?=+¼YO,KâyømW±G ãJŒÍ+í ÞÌ -ì(d–ŠÕ?ù¯ç ŽÆ`ëU>bXò›'´çD°Á'ÞÅ¢€³¶ÜÕé¶)V°/ÐìÁõw¨Ó²‘ôö€§/|æäÑÚ˜!‚½}‚ ·€Ñºé8 ˆ†±áÖƒHB;ñƒ ;>pŸC„‹k¾ÿÞ@HP9rÄy­Œ×É@]¸X´2Ú`»cÆ¡Ç>q*]Z~ÙŠ„ÍߤÄú_ÄçiFDmSvj=HõÇâ_ïC|ôéDM^Ë&Ój^Ç‚d8'ì?ŒåÜQ`*ð²ËÊÈÿ²>Ð3–¯LÀ׉XÞ»â±â<…OäéÛc›ðmUS' Ø~ÊaXÓË.\)¯vËÅ7‰ÇËÌr¿Í±ýÇÀIgÕ…&ÄܦX€ßŸ8 ø­Ù{¸ìúî1†Wßf8;ï#zï]$²Õv=ÉÚõ '˜±ÙªÇQÒ¸_;Á¯4 û¯…0ØIæX/1é+zCEˆ]¦ùø¢VÅ…²Wè&iTçÔpø@B„»÷ ر6Ö´&ëƒ}Òk×ñY_ð®aé^å3d /«3ÜðbóŽÏ¶çlŒ˜Ž{0âû^d°°1´Åùº°–{×;Do:›É³@öÙþSøÊäí»õªæ,O<}„ÊñBìõi ‡á (d]!ÕîçHi—BÁ[â&ª }/ëøí$ s ú5¥ .YÑãôœÞû³c™·ç‘- ‚!ãLàn}Ù6mÌ»|#¿M·'€H~&'&šþZ¾´-wöu^åÄ‚#,¿ê ²ÆIä¬]Æz¸íÚ©s@*§ô½Ú»‹“Sp>vÅ[dÌ4c€QÙ» t¬pOŽ›³µ@ñg»ˆ´¬ÊaÑ!ÄÑnè’×ë•OÜUëâí8Cü€ƒùxŸtn»¸‚ýŠ焃;¶˜WÛ7¬Óö·ö6 jNž¸­íŽg²õÎ*`bGî°ÄñZÐ|Ü^4DKcÏÐ(uufk¦-‡+¶çÞXÎ}[GUâ‰spY³ëûN;À)Rð6à*±¶÷á&Ùþ/)ù6ñ‰Ê7•4`ueçOÀÛÝÍÌ#Ë`s5ˆÅgë1ñî+†Ë‹Ëž"îê/ͱa`ÕYˆ-{\¦(¿jœ8ޝò)Ï+šwRÈL 9Ø{03-K/6 f+úv j‡¡±ÅS…I€gGS±ÊÌ1çPxëìU¥¯6û™½ç8d@|‚Àé9û“XbYóÙðjæ¬áqœm•¸0+Ý`€0„‡Í„;¿mc,ëEÔY{&¦{ÂWÆšnæÚ» 8‘Ú&ljŸ"˶ÂÁ¶„—cq6“˜ŠK;TЭ¥WBò`‘·e¤¸”bdʬàðB­œ¯ ÔÞì-û2ø/ZzåÔ+tyz) Ùew½mVö.dŸŽäÅN'tú. fðœrq,RÁVØ 1mÁJÀñtL 'óÕ/+†Ó8XI0ɃoµåÖ?ŽÞ]–•A Bx="´%vìõµß¶\pbf‰š ö•óßžwS6¬ú‡\9ì iÈÝc.à[$—5È„‚>&áˆølà@@êôtJú dV²*|*‚¯Æ>"-HµÀZYíd;i¹sRû,ÍfÎÝ.W)ú«ÜB´Î­À*éUcê‰ÖTrzLŠºh–Þå¾SzBU”€ K91¹ èEYgxÔµŠC`鎿{czMô ˆƒLYÒ‘öU>„ý&ˆžýÂ;PÕ5ën ÷EÀ#ìKnÜ]õKH;Ÿàýq”T_04 U3_>_¯HT21éÃàïË’b¢uóðpOÜ¡®« á°Ê0؈ïm‡•oÇmÿu}½.†·N•XF™’³5+E?–¹°”¬pÁñ½îl”Z_‡–çuaµ¬²ƒ2|À*P-Ž,j¿‰ n2¯•’m3€¯€‘3ײ5Ûœ ^ã‚4=ÆÜl‚ÖÎ.Ä6XaͦzÓ\áÔÇJYAàD?ï‹÷ÝÃbLËYQïqxyy+Á)ô°k™Xzä®p,€=B,V+„õðàÀwWžw`Œð"çÏ–Žò˜˜ ”ç4c‰¨3­eB^ã¶ôÿ¹ÌeYJ‹OÆÐãLðvD@Îìí,¦…oý¶ÓbÁº®T_Âk_p˜sØË`¹ªƒâ°¬üX7y|¤‰œ½QäIðe­l?ž»ÖŠG+±å á0sF–ÝåPôL~3ÜAoG8æ;p]ý’×{õÌG]¸‡7GSõœ1Ì|È4ÇÛx׳ëÝívç +7¯¬‰‚•á¬&©OŽë5ôƒ°ñ¶`†0²OÊÆ^ _¨U+Ã(äª*nˆY½Æ\€¾Š~V¯Õ¯¥cÙdPç¬fËÐ0](¸J–jÀ¾@°wŽ—Y/\, ÝòÜÇzæX»‚x¬¡jŒÒ¶½˜±ÈÎ%=^VQk´ƒB‰˜l¡p¿§Ç(@Zç‹øˆ $p 0âöâ›0:¦Ë έ•𼢆ӒÂlR?¤½;‰ãv`ë‡)#£ÀŒÞäè]O}yÇì–ˆW´gå±¢Ñj˜ÙNŠ@(­«ò÷}£ûxM¤èÎØÀQ‰f‡Uïç”í¶3&y}»vFvaž× Y+j4‚ÕcS‰0¬S}è8¹ÇÛëø,“b_ ï5ÝŒÉù+uZƒ„/dï¼™<²ñù1»¿+,¯“”Ð\¶¼Ëbñ –$<àó¢:’ ¦˜öe¬]U“BD9Àá¬=~“`‘Xx­|†c•ÄNAŽZ«çõ.Ëï°tS›XÂiªŠÍ;V¨6Ÿ(‹jã&8d0F¶3?õŒ„.O¿·˜^ß*; È³ÍÏcî”íX€ñÞûLÞ<ëËU„µþï´l#yÁ C®áyG]µó,‡åËw±?}YDmKšÉö×¢ï¬xÄ÷/ßÚ<ʉÁñþ¬ƒå…Âq:Ï|+Žm8c|¼#i¸MWîܺԫY·‹zs´F°qÎ{FuÂ8êwTS%äï`Þ 5åÝ ö™¢×…»íQG9Bó9ü-ü'Ù>ô‹ôFä“[½kÄE<Ãö,Âç¶”ÞòüömŒáÀ€‚t·ú8ETSåä¶ŠÏN6Õ™|ÛÞ8ì|#"cü6. ßQosC†‹á­m²†5àQL}d‚ãófè±µqw&„Í[i®ã‚pE}b+÷í FMx‚äªÞØyÕéÏËm·ÛÁ¦0I•v#ÛvàOî»h4pø&¨TË¡þIõ¥ƒd°:‹Ý|ÅDîÆ•´‚9–Cg…^­dU¤L‡ôÅÑfÁªõVœPÌu D¸Ì“D(lQňÀ«c«œ¶ÛF"ÀÀíÍÔA½Vm?PÖAã턃Zq…‹ƒG]¶m’Êó–8óáäTÐðEá\¿7¨Ä•€¬&|ýQó&mà> kö(^Š_Õ¦D ÐÝ¡KŠ ­^•²²üÁ.ÊÑÛQÖÝLq›ð ²“œÁüÞ§˜½fm¬'*&“, óèãà ¹Â¥œtƲrî ”³ïº#ø~¼ƒ5a‰¹ªóvÚ#Éš=œ=ë ‰¼€H*ƒÃ¦Öû{ÕSª&_…ý–7DVsXÂÊáï^W€èw Ò<^káÌ¥šBü^96À;+<)ÿä,D ž ~°ñ𙤤Ü} ŽÆ!Zvq>AW|²Ïª¯{s6£ÒÕXܰ¾NH)‹—ýXÞÿÈØÆfÛªI/cF¶{fëÔsø“½šÉ©¸X—ŽP{õrß?Û¾o û2ëbÏÒåÕòêÖ{yïRá[ßþEã÷„k²–¶±9V@ìâ^Œfݦmvg{aò£>kÚ¡¤ªž Ç>‰¯BõÆÏn6ˆç¸¡õ¼T@¯Î`ð¾VåÜx –|íKõVj°xÃrXS;ð¡¬R"‚ó3Ÿå„ˆñ¶·§zì²·ó…8±HÃdêIx+>‡ðÌZë…Ua¼ŽÖèj‡=ƒc‰ûǘ噑…Û»lÄZa`é\±'„{œ>‘ÇÌ—¥ 6œÈc<Á;sIiÃã­NbÔ;\÷B÷º:6ÓÛœh XÿRo.åÇr<(ÂVÃ{œ±€5´Ú8ÕÎrh | ;[îjÿÇ\vàü\ÞYHVÕÅ„@ïä±ÁÆšäxÁu­í†au–²’ÐÞÓúõ¥ô˜æZo`猨ˆÉŠÕ0€H–µÇ*Ñ“ ÌòlGïsME÷¹Úý¥ÍÛÂV‰%VøÒL(=ºâZ¶Ã]v8¯6ÃàC¼‰l`3«ÀÔâ‡H¿8ê º²íb-àÏavÏ_Ûš&žyž8ÐÔâºw1DTíNFÃz…‰úL§sr`¡dá²´QÜG3«zf±ÁP®8 ÂZ¬O(o*؃‡M´A•0Ð?Ä2ÌpÚ¹Aì]B¯`ì ß´¡;Ùæ(Ã*‡±w‹àïØf;\vŒ»½+U÷ËÒáTó€H89½!"pšÇyî!Z¿’ÕØ %*{óÙ·ZáM swqqvÆ,òè&Ì|Añ´[œá«üó Ã%cBmôNî8at¹ÞÇÄNn,¨=mIy·ù†«¨Ìy*Ч ßVîMIV Ö.üŽ×ÁæÂƒ½gÌ}w"㓚m±¹;¶&ñÚ Î¯¯”6Ì ¨Ø‘f,ûVÐv"Öét3nÞHVTHC‚!¤‰#.Ñí»ÀX)æ À~ n½EI§+J¬¶‹ðÆË[ÙµÒ¯ktuæx¬sMD¼SéÇÏ|³–6¶8k`à^à`„½k¾'˜Ö#ú²³fš9-d»¸ëëÁð'’Hó²<À<‹Su ä€ü'ôeõ b•ÍZ¿{X'܈ãMÝ–¬ÈhöZç$¦¦hõH4b¤Ó¯p4Ðv+8ÄkŒ¤±÷̯þ§=>Ò-,’mÞ ¾;MÖ–á“Jpeð¥0GÞØ.J‹f¼VSq0T¥àUj>9Œ*’˜$\qJn<øÿvgòé–œ%8!óµjCÖ>D^ÙĨööâ ïÙ RmÅ}Ç“;`ð¾¸PƒöÛMøâ{‚ >½Bä¹qÜÚ!þVRôUÐ=ZÓ2ìSW¬ñ´?™¡|pjúÁ Ü¿[ͼvë 4›;ˆZöyÕÝHfǪî8L Gâí ç- EÃî£áüÆ7)nqÓ67„Ú[Á¾àF ­ÉÞË`î¯B;íEÝ%TËMk×îd6¾)¤«yY¿fÑE´=¥]>üej,ž¥UØxvÚöÍ-Â4D¦l•I'w,Ž$§Ñ¸ý8’GôìyvO/Ûæl“ÅX¯B¬jŠÀÁmƒàP?65´ã]6˜ì—\[ùT™T5!|ˆïÝp;âîqæ4•Vr#ߺÌú/ˆ‰ŠXÀç3d‹‰;×&9|D´ÔîÞbôW6m²Ë+EXM;;O´5a1Ø$ÀS!”IÌÄÅ=Àª¦*õ°su_%sº­=õ¦ê0y¾:8¹‹—C„‡Ñ6že±ð=Zäi^ò¶vdâýÜr_YÄ¥òiö´kòd”XÌZñ!lÈòRUHƒÏc¨vavkŽm‘‡Ç$”ØÎ‰ùæIf?ß¼ ™«˜Ø³þ%÷›§;å(jÑžv(ÒPíUTfÌmKãb`––r‰U°êZ,zU¥M…4ìHymÒ¹_–6¼ð9œYˆÓkÅ>^xzòRý¶î¨ªø‹$0ÞéÝòA¸3Ýö8±¼Í^ìRñì+‚¾_ËFÍÂÚú$gÄCÜÍòËq6xe¾#kÌo}!š6ËàÍ-áQñ8»Ù!C fšê¼UCéïà œ¡Ûœ@ºm:>A¦·_¼Ä…é?x§xï¶K5Î9‡P¾ G7 9u„´ƒO àà‰sH»½Âs î·ØðËG±¤ Î(þš¸'+|8fýðkõ´üŒCÆ¢Ù~“ËPƒb·h#E% ¢ÿÁ§ Þ#„y5•C.}ókÒâu|€É¦å±NÝěԈî Hd`Ú«ŽùÂÅf·˜uY¢•1Ô-m§!ö£í|ýÍgtÌP9‚#¢m(+Õ âÈŸvìÊ!LÈé”Nä Þ¤²=üLê‰s/[*%(´µ@ 0GÖ?ìùnBbRâ)拦ùÕKñîp-޾”©l‰ëy߇íÀñU¾f7õ[šÇb‚¯7D$ìy™òÅø_ÕtÅí§å±Y €CQûyYu˜Y%¯˜#°À>s©ÛÒ¶ä¸\dh£xóTLb`ÊŠ==–gÏv=·ãñß­X̯² ¸±µ½ ^YÙõNH°êiŠ["é@Ö¦óSåã”!¦ž"Ú»ýœa‹ñÆ3¦W‘%á"á\†„ºïåŠZÙÖ³9¤3£xón“™IÛ:e~‡"Z0b™~¶w(5¯Z঵Êyb=u'êÁ\ðkÜÄTá¢SIf­;ÙÊWÔèx‚í£ÊÚ+µ.M_æt*‘êÑÚG1œ‘Ìî­gD=ž=*ø2ãeë|ĺ«„ö.Šývÿ€ºF޼ør‡”«h@ÁË-â™ÈõT=úŵ‚!`GËÈj:»I‡Xv<»ý9§È=µ6ÆLŠ`Ë!öeE$\ðš§ÂÑ6Û>Ä$X¤+9lK1G¢Q³Æ¸ì:w`#Kþ~{ v™Ø²ÈÎRÖ|€¢²+ôv¼Ã ªÃaEs>Fã¨ð™gжeÕDõy·6@TLÇV©`ÓÔH|PÇsîRÒþÕå¡âÎ0-Ǿ[X|;O¢6E°Ÿu$‹Í­{÷Ê×7¯ŽSHîœFK ‰3¯5qÑ·BÞÏ{kàÉýÃÒ ĹPF{œ¡€B/HŸ”2v9“7øDU¶ü£–œ‚yàDBPqÚ…¥pµl…f³–cxƒÓ:íú©*¨f”‰À9íþ„?ÆãñŽäTÐH)s¾ó~Pxˈv×ÂÎVš ¥ð€%,ÕáØÓ:YƒŸc3/‹ò±HûåE‰çãÕ,V}Ý ›~_`ßÓy}ïúp~ nuÓåO6I@‚Œ%ÞĬ³¸‚zÑ»)¶û…Ä]“—+wcï/¯ mõT¤$pÔ*ßôÕù…° ­z.(–µŽïÇËÃÃAµFÀ¸ &ŘÐ]Ûaã/Ÿ™ÍHêFgâWMÒ'´ŠÞ6Irta´Ê™DûÒ}ÉÚ:ù2ïC¬PT×· ‚¶Õ±Ä}ØÝíTÈ*Ð)tnÊ6²,Ö²ÔÛÙ­tOçó¼Ž`kÊá˜×Ô¤ƒå_<Ü;R±i¼Z¤¼Æ.U²¿/G‚ì ¨*>[Åßü^”¿àúÍoOxôÈY¨·J‘°W;UVqr-˜ˆýËbvÁî0Žv€Û­Ç‚°A÷â#¨í­Ñ‰ðÊÉ{w|)ï2ªiI'`˜]Ì»®Ò¬¥rñ l¥«MòÙúÀQ+ŒˆGųó–‚cÞq‚†°Í¿[g‹ûÒv–QáaVitþ¿ÍXÁÞ4Ga:þ…pÎ߯ÇÄoTN Šò¼›3¸¯÷™Ó¤ .µ#ó«2UÄІ›C‡ ¬WçKMŽÓtÈ.°¹=‡ÿµ/ˆúnYœÀ[—m‹Ò)|_+Þ3]@[ Ç4«ÁË]v-×ù†ëÊ/…ºW¢^̓í²U›Âl(Á;—Çbâ2»ßߢ•0Ž×€Yî óŸ~5Ÿwßö sô£¥AFTü@ç몎Ђ²Ç.EOÜö²¾îµcÐ>“X˜ÍR—éÍæÓˆ#ªéa €Íç9„"Är'<Ø·ïàŽ>C ú,Ñ5öÚóËa8KMfÜ¡b €uÌ]Ç ÉKÊhÖ›‚Çn}g–:_í:y”76Ó±¥0%þ‡'Ÿx(²£nUo±ûûóÁ‚-¶ç¤áÄ[à=·ü (Z ánZ=̃_è3ŸMÉ(#aÛT#¾là%¼×ï ± D6Œ»›GòþW% ~ÒøfjV´Ûs‹>Ð* Zè oÏùžü^“8M‚Øaié¥÷Š^` ߺ…[8>X~«Þlµ±¯°£EÙŠ_ ëm!ŸÄóP{Ðäê€iêgg„bM‹³ ”kW‡[Bâ´‡›ŽÝîÊÉ3ëJ ”µ^ÛÍÕ;ðHì­%ø€ljÉ^s"„Y;“Î%“…×å«Ìï@`9OGò±Y öÅJ&ï©.E¿^E°„Æ»i?ôZ”ÓÞ7ÚX´ì;ð¶¼k~m5°[8Zà”M#ò0êUJW܆¯í³ÅÀ9¸…:£2»ï0¤!wtHÕÒ­\¸^NLQHê²NLRõ&q:Ì7†øÚvt™ë;­Cᬖ-ÂÙÇíä+¼/`t—1š˜ãD¼J)Å€KËVÍØ½±"â6¨>Á¢'åE»¡<)QÏ°Š¬¸Uj2&}t'\âÕì°ä2•€õÆà±HÒÂÖ —Bw›68`þÒ5§è°Ë«–AT…|Ô‚…–¿nð÷/ð_8àáçý5ãøÉ wØðßäh>ÙƒÜÙÏcüâ?"ç{¥¿{Cü¨¿2Òá·âói¦Ìü?o¦Ãß±‰œZ÷oèÀÏÿÿ;óÿôL‡ÿËg8üʃß<¸ ~øæùõƒ Ò‡oþ¿ÿuæ|\ð_cRÁÕ€±"Äá-,á9KN3ê²ßÖÿ›¤*8rH½”ÓI¯P(Xb½5½ ÎÉfˆdIú³oK9¬M6E¨ZŒ9íjåTùÃ8T¹ô^.?€¤t®Ì='§­YDÏtÀr Ý™d7Ïi÷T¾T¿;-¶. 7½TSÞl¤w.{9”¿fèG¸úVÛð’Uý ‚+1nG *¬µó>”šVöÀÍ ö1í–=ÇáÐDpéO÷bë1=8,;ì24,OÁ¬aXý¸ì±…î*$¥³ Kp»3E!Ww77¸€ˆN¼¿¢êV9QIZ{öN3°UoïWjG+ëÊÙ¶ÑšÀìÕ2MàøeyêÚHûÒy™è=£²ÔðuÇKáæÓ‘Ô¬¨û"ìmFãŸURo#4¥|›¤Ñ¢µ®%Y†œuxÑ¥"‰²öÕ_ Ö2£zÃñogËÑÆh—E–÷¥Úp†¦ s`û÷Zù¬5Hþ.lEF6MX·äÝW[aIß”< ö$ó7tÉìÁ‘ ôë1)u¯=¹L7=PËlµžòˆ¯RìŽ_ÅÍGåÛ ?ÃÜ7bŸD]/zú ßÜÅ‚Êæí2é¤"‰×•m´eF GÈT!™ƒ´5É‚sN°î—½lŠz%RlF6 xu¼3Mož6gÛysŽÕã+ÎâõXRØEE¶Áís´Ÿ™÷†¨™ZºÌoðéaã7Ö|À,`<¯w·¯ºø7´“ÿ‰íqè­1%9ëm¡Äûz„²ú¼f€áΘõãýÿ³œÏ{ò‚£+ oÂ^Ï©R Åp[ÖÉ~úv[3ƒe´qœ³Û §z•N©Kµ¡ÛÞN+Kßy³ƒ¡í1ÀZ¢UIM5¤*q›ß„ÏuÏ\#ËßÒ`ypY¸r3“œŠÂ`éž»ëÕËÌw+C$¨¦S&Êä·Ö‘9wÇU9ÞÂg½Êk¿ŽöÍ.­À‡OÏøY•ÕlõÒÐkžc ŸÞ¸ÇǸÓc¸LÙ82Î!ªÝÿ`)Óþ‹ëÌôSCöñÚ§Å|ª+b†ÏSÇisÊÓ¶¸-žs~*XÊÒ;ž¹â±‚н_ý`éÙãy²\Máó²&}–ACéu¬ÁÑ$BÂãÝs¤ërXwáäì×– ´Ò²X'Ý_岓;WsÜDt(éÊ¡xo›HŠÆð)ž£Ùo¯†—I? ëû4ºW;ýò3øt¬ù¥®…êžs‹ƒì}Àë¯ztËù¶ž¾–~:Bƒ<‰Â¯ýÆz…°±ºª,Žš–1w9Ïç± ý»#Á™x^; ƒ¬[,n°É„ŠáØí}«5Þ£:f+Œƒ{FûÌñ–ÁrúÒ½ø^¯-€2Pí5˜×Å©_–å†Î ÜǾ6×]Õ´¡=I^ãØÎp>:^:Èeká`'€"‡–XÖóC:†Ü½ÚÌÞŸ¨‘áxEKœmÚÝüGƒà-–9¢~;AØš†©²GµÞ|Ù®t*þ8ÍòÛàZJðúpÃq8OÈIk;°°s8IsÒÞa¨Ÿüx ‡‹0âá°+›¶¤¦¥3{þ‚sq¶§µÅÍKÝÞ8_wV( …ÿuH)={ 3…ø‰ÞùL÷‹¿·¥MEЫl]ìøIõ,úšì’P“àéH6xïL•Î@džOâª5¸ÊtñK˜“ªè޳°¢óÂW¨rÆšÙ·jû\õŠïUiV§¾Ãæ²Oè骯OoÌÎ{ݺ5 "7¨ry°lÆuÄÕ¥Äú-0®z„v>µF*û{çƒô¨ï"ÄÀ±^ÁQ¼„ÀìÈ“¼ºº«!;^{z"qûôþ$Ý•'àiXE2Ô¶:ŠAXç@ pδÿCM\¯sÉwo=Ö©Vì´n›KÂ*(¬OøZùÁ"*/…Gw41Ь(aÊÊŽŠËR,‡h–ü,8 z¸–åÁgKLês¯ cHúe êö´šQo6ò½¦bY-–’ë—Åe^l°YÃÚ™Êë%l oÚ•žþ1Ô8:‚›áØþLÝ$…±L‹r¦°—ÿ:.É®ÆJøÀíÜý®ÅDÜ8±ØÏ˳[„£sÛn°ß~«Äá-Z}DWG”8XfA8ßúï<-0´ –EòF§+Gð ãzXJ®=Ki#NÂÎz¤¼üy,ì+{¹R„Ü)ülã°•HÃvØ×» œñοA…ãµ²ÐÏ2½™Û@,ÚÄZ›’ào=ñÝ™]`EÈ0ò}£‰@œñ,ÛK 6Á]øÅœ¼Atö]Ÿj—pÓìÇP8çTÀK]Â’sÇTo›˜`³H.8Žïö‚ó9-0ð¦þ‚Yè:G·=`;N³ŠŽ|7‚ªÎeEÝWÊ{–ÉmJ/ŽƒnÁEê+(Ä †MBlQ—šuŠ_Sô€u7ðèâA´\×yØÞcï¤#ï³RÃQÕÉ©<·mæ§R*^^œæê‰³¨£9Á… y ŽWZû"¶:–‚¸À»{o$±Ð*ÀU%©ïgš•”›Q ÷x=/;{ñˆ³C¿öT!«…qgÑp‚íe'£a| dÏoñþVúó‰q»”õÆþq’ŽÕÒvKgñÙåsmÀŽvÚ>‡‡ 0z>Äj¸u<3~ÄqâKUÔ…Jñж;Ýâù©ü‘=+âPÀÂsbJÀ¼Z>–•›ïµÇçVŸ®ê$öåiǽviª¼ð¡ïžó>ÖaÜË[í°JàV€Ð]QL›ÀK)††tÛëmƒ‚œÓ•[VRu(k­Á%{4Z·ôµÃš‚|/UÛFÖÓö¸ÊS7U Ê©E)Û*äBœpIQЩ›Y7ÜoD(&&}šÉ"`¨«Úï§~°m9ªaTgeÒ2OkC“£q~•ÄåL±Š+ ‡U©þÞ/Ât8Õ#¶‰Ãb¯‡v€OmO»Í#å-oTÆ„u²K]µ'–ÍÊ8‚åÀbYZW)G„áè«ÎÅzp€O!DLΈÅJÓQ&¬:{ÓÇü1Àa{6K+zqÛÄ®ÄnÞÐ<ÒQ©³v~X¶B3Ô-ð·hk8äTŸZMk%h¡‘m¥†37ΜíÅvè Ù‚i>¶B{ F‚RÛÁv¶.´1i±:Þ{ äY¹m 8¿¯/û”º™8+\!]6£)K¸ì5‡`ƒCò®#<Šš€·PŽvø'nÙŠ_Sk(:æî0²TNêPþ¢¿:Õ†÷"$” xÍB ÅÝo ”å¦*ƼGð”Öôšjsp¤—ð*6(kKÎÍ‚4 GwÏìÄ-+c:ùÙ²DÎeŠSO«ŠÝ1'îd‹n&0XŠÏ¨faº" •pío¿-a²Å·«ƒ/»FÏ›WªMu¼œ=TÎó+ÈL DX¢Ùa¯ômx“8’*9†aìd@î@´!ifdcY»! GŒm/'“³x+[~.;ÇÙr ¸SûÞ¤@úyî¡}Nw³@ÚÍ;`uõqh«³{UËÌ^Õq°r ÷”ÑÞòäÎü ÎBÂ1™VF^ãÄ LšÀÒ+Ÿ‰ à .wî~d¨ÜcR൬%@ªv]ó°^g7Ñt\$Äz‹±=êRÜÕ*!ÕÂp{îʰ«,©®>m:æ¤×S¡-Å´Dë0B)JÅÿB̦IJ±§ âæ”(‡e½VM³ê¼‘Ç'qfW‡ô¬šZáO]Îè„NÐc^éTVØó$Î~"àãÎD^/,ÖAð2¹áÑg…œ?M ˜„ §|'1ÏÑN7{sß´L¶‰î{ó‚<å1+¡BOwtɲP|&x3§äÁõ}y{¨(þ)Ý[q· ¨ŠLÕŒa±Í£Çöµ&øÜôçŽnª";V…ÔG±Œ Ó$®.9qœi`’È|(p=½ÇõZ~u'²¼àY¼–34xÞ ÿê çeÃÛñéUÞ£³§k%'£[æV¶¬ã‡NuEÏšÞ‹ÎÛÛ&‹oÇB㪜îZû™÷øÑüX^“ÏOxБèÁ¹ÀŽåÔ†”¬íáVrõT–#¶x Üå¶+å€ù„´ó ^e8ØbÏa“6vdk wßP/í¸Ìóu(Ä«rŠ”Æ‹ç4E*qêô4'ؔʮ îU(âµ"4¹JF×QÕu’ršÊºŠZF¯ípi×C*ˆÜb6m@NðÎìu*èm÷I6;IX_L:“£À´{ÚwÈ/އ¸UtÅ1í1Ú Ü þÙŽfÁâ«Ú±ëŠ199.â–y€â-ðk÷ ,—Gù¸ìÅíí¸ìtz f :îœÊv+×NP—#²ˆff;%`µA,–wºŽ˜q€ÝѲ$‘æ¦mÀ³Ìó„M'_XWÊÙyu}˜˜ ü莠 .µlÈ^©íÝG ïààð}?­ÂÎ q³ÁÓA/#%³ˆ\÷U QçšÑ §C=ÀîøLN+˜D…cÌt.¢Ã­™ž¶ÎN> oŠC! …h¿Yà“è‘BQ•ŒãxËâÙÚÀ1€ßï>à¦`~Ê©ÃÑ$˜cCÞâéÅ\Õ¢@«¯fÉëS¯áEyX…G1Co׳¨D€[ìÓ±AÇž¾Õð‡¸6Û©t/´À`’9Äc8Ê. gC…ŠIî®|·”ËLˆò!ECÌ^iغ–‰Ã—²ÑD½Cº½ÊYÀÅ%5ñûSâ}ô¨Ãþ˜{©¶ödºô,H“wô#özÜꥫ…T²²‰7;¦Š­Ãík°ÌÊ|][1ÀÇÍÄšuÉ J$åÆAŽÄVœÒRl¼ÒV³ò8vrD/*¼˜±šãõÆSQ@s¯ªQœxU‹˜ë¥l ѧ§­7•ÕõªÛŽ7Î!èÉpð?\—rá-ˆbáøvõü¼ëvTËn-æ-…b·(gË˦º|û¹#¸Ô0*8¨f÷‹¯wš€ø ¢áìÎ5'”‚^jÉZ€Eäïî–J~\ÕÝ_Ü)¦ÉyLé³_û‹xe—û0­ Frby øDÅÆåp6UÏìèÿ=¬Ò›à,¦“—RùœÏÆÃ>œ[ìžÉvyiëø4ë&T͸pµæÝC5*´=¼´Ø|üŒåà!o`c*˜±ëÞÛÚ å·bl¾S3–Í6Á¿Zdµ(uQöpÖ-;M„º C0;Vtळ· /u±¯§Q6ø¨%í.õ±Å7{-Û_lŠC žƒuñÞÂnžGðYxôze™´[ÉÁg%$r4Qw& xÙöÕáLÑ0Ç™÷8V¬giÞ@žÙYƘ ØÂú|ª­C—ã Ôp¯ªrC}Îàt}‘¢ðæÙpí«,…JøòLL z)­"޹¢Ö±X6LŒVû»ó¦hŒÈŠGÈ^ jµ´Ý!LtÚäå ¬‰'`§ŸÃ¼… P>åáo‰ñ(ÞÌè^ÕúÝ©(§9N…I#š ”–—Ä—ÓÖ ô뽇­/X,eï‹ñjLƒ™Ô5wŠ˜C:¼P‚ú:S„&g‡cW HsÏB€QkÉË»?ÞÂ,„&'´²ïÝÌãaDŒÃyò&À:¶œ·Ç!ÝvÐxY?ÇÆh¤¥‚fŸ`¢sgsÛõ1o`ú:õÙlµòßÉEw40ߊ#èÞÝòÁ‹C·ÕŸ©¸÷9ªÞº·RØ8àaÉÍô»7»ÏÚÌÇ~%eà~ s˜¬‰%ý Ð637P¨Y¤å˜_1Ê{>öüºíª‡•¹çÖÙ¹ö•œ=¨pn`ÇñfmÊsV‚¡ÝÞÎÝ(ìdgpàµ8ú´‹%ÀU8êp9\Ît´¤ãoødáí»Oìq¾–êæS!ü™ÜN§Æ·jD*';`O/üno²‡·½U%Tê°¦•ïks‘#蛣èì©î@û(¼àNÖ$XõéxfØò6Ñi’Ð>isº,’ Xœ:obIcìÒ$õ³süX˜Gvr\W›ÚäH‡52ÀA oáPœåUÚPаÁ«™&uZ Duöµ6T×s삊­•j"hL‹"†cî”1¿Hà#Èc_‡KVgjªUÃFíb„R¨äq¶™ÚqÌ0XLköæ´ãdþ?*¿œ,Apå¸_iÏîü¹ž幺ªÁ»Ô*Ïú§œ$a¦Ãž²†YÙ“ê-â½KÎäQ&¥ÛëpŒ0Aï3ÿ‰Ðjk6& ^€³Ë*Z^¿c‹ ›ÔnXJu&‰ãYßlRÑ%€)Ôvì;MžOGŸl4ô¥çC‘w[3´ÁÖþâ°I•SÇÜÙ<ç(xEQŒªF¾§ºåÀëuy·£ª–34¢úCªÁ ”>ÜÝŽêY³×ÛK1b}ÖãäPǯA}‡/.@t,%†#|ð’ì‘‚E £«å ¤Ì wßYl¶‡ÛiÑjÜá=H^¯€$NVt%+!0^:m Å øÙPgC¢“O±Í¢x?¡ž2ídõqbÿ}ïŸínlÕðí:CõÒ ÓT9$9®ò UbsPZýyÀ|§S%¡6U²±"Ó:[ÀÛëÀK à‡ Àª‚NhËÿ;h5´7z'´Éø*®h‘€¤¼Ã8N`T¯KSýìäÄz°UÔÞ0/õ­bóP­{«·¶hß·wK9|uzd%룮6­hòž*‡ùªí·G†¾úå› µTK¿T¶&ê›3{âÎ:¬OÁ¿(TÈÙ}Ûâ‡1Us"X¾¸/o}TÒÕsŸ",̺Îu\÷žÀ³¹³)Î÷Øà«äËéÐŒ´:´ò¹ wp¾²½{§uifûT½'¸¼Þp†èDm«X.‡µûSñ±;A1Ù¨ª.AtìNjl5z€pwõ¦¶ó:½ÖT oþÀ/йt 6ší(³~8Ò.†tâGVÑ3*ªƒ¹ {Íd©°ïÒlºœóœH§ñ]»<†_Å­¿M1(\T˜4Õ&ЯçõÆÃ80œÁÞ+•ßä@qW×{x”AºêE,+B« sZ²Zµ^ôq’T‹†-@½vdÿ¬XK–•I\9JÓ[Ô\.Å›7Kê¤Û_K@vLÎ툨7À(_%»ë–âçC¸ ^‡[d¸ŠÒIv§Z“…SÅßw~_ÉÎÌ{.›@1ývNx7¹û²g68„qg Ò«ú)Q‘%¢_ú\‡ózQ㕞Æ1¾‡m§—Éb˜ûÐ1ñ»ƒ)ˆZNëANx^W‚mµ†õÜý æåñO§ó /ÅÁ.¬A5ô\n8|—Ã!W¨’‰'°Õ†9cÄëà|•fÝ›#Ù«jئÎa’¶MÖŒk¯Õ¿`yÜä­0ËG1Hç_w[¹Av¯²[žö>£“ iΪÍÓy÷Ëû›UÀ3o=­œ·¢Ý‰/^:«ƒŽ?šIZú`pç““Q95ÃV ïÍšf};êšbQ­î ¬>VyZÞ·šÓ ·RäiÉ⃃º‹u:AñÏlCŠ2ÁžöyF/nóÕ“‰±ç 0l‘iªÈ̾fPGÂÊš9/퉴‹W.Q§Úfw:)¦ï¹‡h…@‰…c›gÆçz· "ÒÜÅqD6ί ï}ÿÜ…çÕ‹ÚôÃr†–ãžNa#;$çfé^'½Î‚Ÿoï¾²ÆWv8ðgWÊÿ%:_ŽÁx¼_Å©\N$U¥ÝçbàÿÌ[ðÓ••StL–ælµõÚï²xT-™[ ά,Öµ§«pàcà PëpúŠ=:Á1ÉAöøÄn™nðRW>pÓ€ŒÖ Uzà/¥vãLŽˆæøõ]xxh…£ìM9Ðfç3Ò–E  BÊ9vîŸO¿¬M»•Vs4GiÜÏ;°T.;V4x{Q_^˜ÝqN¢S"BáÄ=©£xª¯ý&"Ôé €ÃQðÆæè%нAr*ö‚ 0ëWH©3xÝ;´â¾Øëz8“áô6ÞÙb[+º½Ò53ã!:ò4ÀþÅá-ÈÒmBq‹|–’x']m ù?[Îd*]ôÈ_ð¯Ö_\j6¨p¤‘ãð^ǼýšÇm“šâà*wZ¡gÍX.U>O!Όס *6ÑAD:ÈU-ŇØÞ½¡ÍEH„'@í!%ØÝS¢@ŽÞdQˆÍ`¥r™³% ÁØ{xæQ¾´Í¦á«lú®ëŠN~öÊÏ!ƒì“é8F^Ž®QÝZìã"Pݲ=ïxµÁ»8R£\»†À@÷(¬4nhaœ–ôÍMÝÞGP vYïjŒÎÆr®_kŽö ]À´]Ðëa _IiÅ·NH—¸cÆ»Úx:n;ßïiO¹…3”º´’×yDzМû=0p‚Þ BP‡:€ØŠ!Æ Ñ.¿ï òB(þ4 »²¬Ž‹Å?9íHEsá;(hs8™c¿Vp€½3ø{¨ôÝ=>,ÜàU_UeW²ÝÐ!¼@´6ívnsÇl ˆœúæÇ^Jãf°¬`ÁÅ,ÂÏE°²P¡{e{²¦lè#}iŠ‚ë1•tƒe°–OïbÇ÷<ŽH¿½öt+¾\u(§qÛ¦Y AøîIt=¬ÍÆ‹9ûðUK[yÝËTD|”=S½y‰1Ln¨CŸÜÓîHÎä½sŸŠ«ÍâHÞÌCš¿·/vq«ÂëøJï‰ôkÖ†yW­+•3%€×eýP³2yG!Ÿ•KÎǶðÓž$€èÕ9I;ÍXJ»Âpàcqfž5²Ž™y¬lÊUÁËr·¹ÕÚ w;Íþ滬‘Ê£Óþ<ÏÇ‘ròûXaÛ*4shzTíxÄœ$ wp.Vd²Ô¯ò+Лכ1P aø"€øŸÛ:Q;~¦â:ð¯=;½ãocç±åÝ:l0ºŒ¾1²5Y’¢Žö›Vjð´N¥ëÎU»-|¶à¥ë®Ò¿ÔP·÷´™›ƒd=^Òt…£¢…û5™!…9ÜGBüíu°SJ)îÁó²9o¨ó*õØ9~ÕÇ™€Ÿ ÓIƒ¼%>Їutî±ö 9ÐAˆì(6ù¬ÖX²·ÕÔ³„oLÜ·ˆ"š¢w³OêÔOPõ²¤Í¡V»l»¿!Rùru «hÁ˜óIâg]²ì¤øÉãøVĉtŠZ_¶R%È»[ävîÁ¸Ä¾ÅØ”Ù÷Ò-ßN>u* øÀÄ…Ó¸ üø,Ò§uÖfß²ã ó AÍ^a¯+tÚiÐŽÅÉaÁé2ȨïJïFn<Õ0?êü¾â<"rdcŤ#ñ‡ß°R¤<‘òà[L‹8×–ÑëY‹ñNVÿóaßìÜÀivÛ2’}Îp掊œÆf¥¯eÌî)úÝþÒLíÔÅ»wËìh¦ž{„®Cˆñ›x.EŒN-Òú¯îü”ËNœWðŽÍ 'qnÈ“œ‰¬=ˆH£„‰ û9ð«ôP·pЈÇt¹¥t8/œø ÖÐâ@Ö þé¢ÉNØ06ƒÑ‚­`˜`/Ç2l¶„´Í–r‡5:ªA±ºû°E+Õ©lê0 û´~ÄJìPwþ+h¿+ДUñÜ·d×òÇ9Ä8U;La;y9sûtVÆ9ÀsÉ)»px¬qwZ>`õß)Ø6QÁÿÏÁsÀðà¸Á[<\>T8;xýZñ|ŒêUÐݳãÞUãÁŒ§…ÈÕÄÄÑ’†ÀŸ^Lþx´X4ìÊÁ)‡‘9íöÓ•–¾ö°%1¨ÃÙ6æg]˜5r°'åù…š#í}0 Û¶ÿÀ ®¯Åîé²XÛqc$ $Â,–{8¦‘¸V‚w®…Ý6·Ëmÿ,„eàdää ?h}0ü{É¿ÿBÙ¡ßÿuªC¿ÿƒ¢C¿ÿߪæÐïÿw"9ôû_)ýþ‰àP.çß=Á¡ßÿ½¡ôIo$ñß´ÞÐïÿf¹¡ßÿ¿Gm(üºïßp6ÿì‹ØÐ>|ólËÏþäó·Þüá›ÿéËWåÃ7ÿö‹6ÑoT* ¾ù“_/\t}øæ?üz#žìOÿ“exŠÿõתaißüÙÿE¢G<Æ/~Héã—<Æ_~õ%ñW_}Écüï_¾¼xŒÿøÕ—<Æ_ÿW“S»Q UÞKÚ&oZ_婹ÀuaZ±ìˆ¿­E,ÝB6[Ô§ÚÒs:/°¨áÙ!¿öÌÇãq:qË߃ª<`Në:Bv¹9Aˆ·8°Å=†§(ñÀ–§3,<5[¨­6ql’˜uW/¬f‡…õ«sƒÕOëÀy{Híµ ä±{©.{ÌD†Ù=žÇÆ U ¼Ýƒ’9ÖIé¨+Àóxȼú¼`iïÖð 7Y˜]÷‡‡{ tñ1`®0eXÝ#Wœ^ùÎU¬ÆÃi.$|@YËåªU1}P•àá Ë§-Ï‚k_6gær ®Y®·ª–2¶4C;”„Yï­ð±å>é׺¯¥"~÷rUHý: Ù[À]Är'È\2›gÂcßTXÞmŠíoÀ†ó]‹ÙçpÀ.æàÒS‚Ó¶ÇRv^à´o÷›ŸEeR–8A@:díJÎÞS‰ê¼Y›Lš©´wËî¾ê‡×v8ãAÅ„aî'ª`n?ùbñÛ ÜÛ::í‘€fÞSLowÙûÙÖUQ÷½û &ȯÀÇ.·c¬[+[c·ÙC@ìÀÞÞ^ï+¨D® xƒï^G *“jV~=5kÚ_ô8< °yK­í÷²¢cÙNÛ<íÊ:ZÞó+᯻5‚”¢õœNÌË6CÙ¹7OáZ–#çUnžZº {ˇýh22«d“×î‘#Sßtc7ç³'Aç×Ò·vgw:¯ª ‚=–­D' :4‰¥·¡´ñ1±Á++ðï`°§yl§–²t£Êµrë×~ U/ò“o[¨gµ1;´|X—u+^?Í$Û1,Gx*qBh9ßÎË|Û/f¿G²(û2ÓìÜe¬éuèˆÉ¹î lÞÛqÄ7»10—#§ß;^˲‹Ý98ŽÄKÈo|†zñI!KCËó¤’¼ÎÞ“šï+‡³½9ËäÆù(f>_õ›kÊ“Y×þ4Ѝ]ÏM…“fÉøPt¥=c8Š×8׫ÐU„}_JCØ>Å#†{ŒæˆDŽܕ° dfÇDs¸öm‚}ø÷ms¹™k«‡©HàüÜ ³ÅìIz0e>èºvǸÓ_z‡Ór©Ë¬ `¶ÒVžæ—’Ô³Åà` õ:œovYØ6WRçª5çÙ5g¿$,Ûñm¬GÝ}°":|çy–!§¼dx­â 'û0¼9UZŒ ÉÍk§˜ä=¿ÂÂL'”u%õÏÎt:,'Çå„t_…çÁ#Í£±…Ž¡ÁŒRsÆÃÕWÙ3Ë<•[n÷L·ôQ>ÀÑ-ç´æiG³¡»³qÕè«•çxM¶l¼jE ößÇ<Ñ x¯ÆYIܘéG“°åýù¤$Õ$î§Ä»Yí_m‘#æÕuZÉì&ÓÏhAÈ©ž¿cÎWe¡ªÈÝ­¿ˆ<ý‘U|°]9–·&óŒ£Î'yœü>­QèÞ±Ù醥×göÚmøõæ8›j:Öñ†~¦¸•°×ˆÝ™18°Û‹}öã B¿ža¡ƒw*¬•c>¬šæ ·•„<“¢vÝ¢ÇÀ©ÀV‡+%1"Gò9Õ‡Ø]̥Ϥ\ÝÓoîñJέÊû^$8 ÃÌ´¬i1µ\,óÕ[|ïü±„¯;×`ÄÙw2LÄsÙÊæ%Ñš»¬ê5•K¤ÌiÙ)Á§ /Ø•ózçUñk‘ý-·…£#`Õ9|x~sÆ1àQˆœGßÝщ•ÉL˜nZ$o(µÓ’›s8óÂBši¯ ‚·áýÞÔÆÁR“à@ésš®sú_ôR¦:Ä®Fû íÑöƒåÔRþ¤Í-`ŸíÙËáQ – ç瘅¥ž=c<§²’nÍPb›Åê ¨0²™êø¼U ÷³}ìU’e‚ìt©·fMQ­=Ëc €£/WyžBiëÍã{xWìˆà4˜x*)šºaÜb©º}8[Ñ- ÎÜ.ME8>Q;` XGÎ*åx},2°á ºQ’‰eñÙòä‹í‡¤z9–¼T‡©M¨9Ì=j ‹Ž9}lNÁf15°Ô5—CH‰Ü6`¿Î5•tñvZAx»îál [÷|5Œë±s«åŒ¼w¯Ò“(gÛ®Y¢Ý=e¾Ø—CÛ9)Y‡¥&ƒ]: ÖB9ÖÙûÏÃBN^À¾T5 ï­óÖŠ¶¥è»|3ßVéZ‰srP`yæa_cJª#vZ)‰sMÖޱɜÏ6½sš¦¨ÇyÕ¾4@¦±0$é®7•]=i ‹3Ÿ«€Ù¾kkÜA‡D {Åì QþªNïÁC:î«Ña°¸Ôž²à‚ÀSØÛ\ ëpn&Ï2€!>[aç9Òí\yǹ.Þ¾~¼£º8SÞ²ta†Š ÉÉÊ©¦à]¦­—]‡-yçò"áT[â\„,ÑÂ#àz*¬ ©9[„ÊÓŠŠ}ˆØöCÜ©{¾ö°[§œïÜ&ù€ùIyl-G%d,:SûV„!Ô-¶Ñæ5ô‘{Z_#~º0|$[’€œTÐuMoK»<48¶n7˜ˆgŽ¡¶%QòQ6±yéÇÙ¼Áyc:I׻ʹìXuŸ­^Ýù—3>EªK]¥×%c`ëvpΠwp‡ª£¶9óî§µ}vŸ±SÑ% ¿jvÀù*ÁÆÕÅQ¦ÔjFÀwdíƒm-ÖÑ@#‡WM p鑜=x¢ûéøÄËÊt²³Õß{:Ʀéõ> ˜îWÇþX„ËwK6w“VãTxG½ö¼QïDu’ØŠæ¹ö(R¥YœÚÚΩbóuÙ"®0°â£Ñ²SuËâJÆܗ³í ¢Ã î ¨\öLbëÕ⌳¨òÓž¼\U.ø²Ä,¤4ïã¨')‚ãÕ+ñäL´==`¿*0xÇkk XESk“^Çjâç.ùx¬ú:eß@ƒ1*Ui× º—òLœFkûr&†býL¹ð‰5:×Z|ÛëqÔKó*öÇ!TFb)¡ØŽî&›;š²Ã—SΉQ¯õÅ6è+$v©¤X¬,_VÎÌ©úïûÀåÀÊŠµTcÇ `p^ΩhWáTF•8ÝÒ¿SÔž”U|Ÿ-Ÿ²gñæf&+9fË:xÙýx̉ ׿G»Ì(Øb $È[ÊÇXöhâÃqRv¸Ã»±åÛ ;ÁÁÂŠæø”»K™He¥á«d‘ê(·C·S[9ôÞå´·:-ш’·øt¨ÈcE•°[ÄNý‚†Y=rc‹Di¹uÛµ9¸ÿª®Á¼à¬ÉônúqŒô@R2Ùù€qZB©Î U›øØ>”À)yŶÍÍ4ß®~ éTp ¿p°Ù€ßçlïí„RëÓêÏJwã[^Étõv|bU!Våd,¨Ä#5uU£f|}:Ò^%ÀiÝi«|@ŽáT‘{w_Nè~—ËØm‚òîjJ×ÀäùŸz…;!´­}’’MüèÀ¶ZUòÅ+Û—¬|Z½”Îê€|Nõ±Õô#’>ö¶íy°ë•É9*våøÄ÷º`ïi‹d¬fì'˜óØ€xYAðŸœ/‡† GÞ`^&\·Æ,ÞáÃÀàä,ÂY•M~+ÙN)üæd…L,ÑéB·*â·ZDéw,¸õ>–<àðWK»67¼Ñ",hKœ»[Øøexn¦úÓ»ªz‰½=ìuïÜæ„ö*{â|ôNàâ³&³x.hÿi)À¸ªËc"öBCFöÜEN+ íµa­GØ:‡-€½Øy¯¹8Û  C'ø¢I®Û–Ù3 Ú˜z[½w*ñe˜¨2íIð§÷r`G\íXûË)¿Ëƒv•eVöe)yÍbδõµõ,£Þ&€> ëð‰¥ K±€AyW\D8õŠÅ€\›í ÓU¯Õ‹½ AcPJèÜŽ7V| ‡¢¸”‚ÇÏa~»+&ei(Þô$úqêùÔ ;ð‘Í:pLTã…kÄÝ?fi°sâÓÇ|¯ blïÕ›ž°HZÖ&ào·i‚&ÕËÂ)ìmY­z8¡9‡+Á¤ØK;+¯1ÁXš"Û…ðàL8§µ™&Nf  Ìi®|ÈŸªsár¿Í<•?gÝ âï7,P1P‰–J·¬¦`xTCc|L@8‡ÓŹ՞õiL7Pv»áãlb¯&ölâæbNwd[ì%|¼ûuú θˆ‘ö z wrˆÀ¢¶žCsÁ`zeX›~\Ä‚c9UÐæ\VNb+X¡ÉÁnqŒûqVöz9Ò–e‚ϵ{…C aDR7ø«7‹Ø¯ÕúDA0 €è†d€}œ[Ÿ®Ì’/ h{²NʼnO‘Á¥M¥£^m€Þ¬ZƇY:£IñŽÛœ Ug n}íɪPóQñ_Ôf*0Þq¼êvØ,Ï/)Âù0 –˜uN›³x«ÃhìÅùc† º·I "–©±†S€‡ª”‡³#êâJ{œîƒlÙ«TŽ/·”99xzñªT` [¢-›«8ÙR½Ûgtdo°†öV½’y…c±@W U ïÝ÷‹_èþêJ¦Iñn!«ï„[g—Ÿ® "h 8xY`~ZÕ›wÉä£d*>×fÎðq¼]ŽpxÄ5ö”ÎÈghÈE6@½íÞ•Þº ¸è°cZ%¡êh^8 :s”ó#©È¬å ƽ}0¹V,ÈE ¯¬*8åþQó4}´›]Ñ}ÎF}½RØÃàþ@E"?ðD…²¡ô´økÑÅØz‚p6‹«,ù®ÇkÓ±ª©&–Åñ*« ¨¨/VƒïsÊ!ÁW¥{^¶Éƒá‘œ!xL¥üÛD˜§½#| bI­Ñév;]•oLäÚ4Ðë‘qZÏoqsÆÛnáÅÛ¾j¾.Á”ÌZ{± ÌÕÒìèˆj> ¡ÿÛ¯¸ ªõÊD•¼KYnÜ‘e uõ¬Ž$ÝSP®$†Ã @\É+ø‚Ýûóub5*ã¦ÝQK¸'ç#›šß3S&xëÝÇ鵌‰¦úfêžEÉ$'wþÁž9Œfq‰.ÔO ŽYÇéìáÔ°(>Z¶ÖyÚ°ëëÖ£-8§ÒSN A3îÜ'À 7?$ÁΜf'(¤«Bñ–Š(A# 3Ÿ¶Úó€˜Ë>^§_ªËÙ ¡ð}Ÿ¥Gæ(–¬ã¸>f”{;q¦½{øNây™ º³”º’Ÿƒ“TYå=oPšs—1Žºgð*SBP‚‹œ|ìéEWÁšš­L€!–Uõœe7;‘‰÷«3ûß@B2nPëu¾N‘VRÑ»¾ój%–»¾—ž:R¶‡ÓÈW¢©SÁ*çcž‡ËŠTOšê†åÐJõ$0}¬Ùqê„,Ѧk8‚ŸqK \†r‹÷ć9:õåÊŸ%zù¨êÉåOÇSâz‰œ|dµjyó1“¨ìTrK9¶ð › Pk &?·þÊT ‡} å~— ÃbZRïZW…¾áï¸õÈGÖ]&UÓ.кz×DzÜS]C™P[3›;;mõ²÷ÄÁÕÂÓwµ$±'âÖa^°_)V,¼N"žü¹Í’žÿÇNä¶:øVõŸÍ0Άëz©^k¯F”ÔDA<Éúp.G µ¢ÞÝòhïZ¸Ö ŒÃé¸x«bã˜#¢£Uœ³…g™Ô¡¦¾U]“èe²›"bÄ3xüÑí‹"ªΖ‚:ÞÕˆP˜6ÎÊX”;” ß[$8Àœ†Ó=j¸wKfŸÊëa®j†Ë® UàðiN§ jwAš5ú”èe¿ëÑÕNç€ xREclú†$NµeLw8é=X—Ð÷Ü9rp(|o©Š’ïÒLX™å¼É­Ow,ËXL{_öï?íÁÚÙІ}ûYœpÌÀ>±;Pc΀÷ëE1¼p§›…àMùkðÛP f›€³ ¼N.y…ºªIU'^W‰^¥sw…ójg–œóøµQ]JkgV7]¹¹>ŠZ-o°®—W&ðaœœô¨EG¸µsp)à°lIµ„èÍï+KÍëÅ X¸b“ŠO“m ô>*;VLª ðé¶9TQ2ÑFEQ‡ékPTý’‘ìøçË–RåämM¿œÅw`QmYQnhæ KW>±rnR_sà7Ñ€)Ëh³›Í8áðŒ?ùÞp”Ñ«SàÍ ¡¢RPÝ)áVs®g‹Ûì»?ÞÙùK0H\šWÔ[shßî’aïö8ý+@.ññEsÐë²Ë÷ì<ßéIéqŽÂÛðœ80õZqšYyölƒÞkbjÈ¡]¯w.†Ša{& >b9s÷ãÇ€[âAØÛrØiv9¼DÈñÉÉo”ôo ÿ{;ñ'y‡x;eE¡ºÇ¶=LýHa=6!zX>^´ž¼ug‹/©ºÎc8.Ãé¿~ð¡ÎÆ:‡“ƒ¼ñdͺƒÚcôX„l6Ðuìò²„ fåß¶œ¥ -¦±Ç^ÌCQþj?ÎëýÞéeû—ÊÓ´0㨬bU+Îqm…' çtÔÉZÇt}Ž™ÞñB³=‡À¦©&%d½«Q‡f8ËXëëÈ!Xµ*¢×>êD°ºj(ð4Åõó¼nó•Åù¶¯y›ªnl ºœÆñxµaïÖ±ßvi)ÏÆ7ž7ÙO`îð «m¯iA¦Ì±±YA›Ž[rØéˇ3à0'?òF Ày¬Þhm^Ý”ÙTI%·DÁ$8ñ¯?^„ì²ÃÀ¡€\Gmçå+ì‘äÓƒ”²ÛÈ«nu°‰ qÇôz•Í;-8ªïã9T84Å}-+¼üžÌ62>O;‰–GIÖª(¸2 âÃ)[˜~æŒcæC|Tü ;ÞYá2Øà¬/púp[ÆÄéöÞW)Á· 4ôzgWn;‹ ;Êà9WÚm=À§ˆÎ-ÃŒoµD‹iЃ¤‚*ìÔ±%ààâÀ±î ™çVtôÒºÕi.ÕJöq&À&ä,{iD¸¦w&be&vßN+€þ84‰Ð¸Çv'Ö`ô 65àsß3ïqØ%hXÍܧÌm3,‚ô;ªÌ¥~/v‡ãV´B­u…:ôª+-*ƒxŸ´•¬¡˜Î¿9åÞ‹] hnÞ±4ið­MýD‹špäÄdõ”£9¢j‹3ýØ·e…Û#ái§# NG>+l®Xò:Dñò‡Í?£àÝxàåm7{ðPÖ¦Ù’óq)g!å²»Z%¥¦”ê£ÿ¬ÝÒKbXI¡>'Óq,ˆM zeów?‚èHu »ENa¯êvÐ`FUþÝÃâvAJ.ËqX¸Ït¤÷QÛ 8aþ^åÓR¾°™¤ÇyrðÄ[%­¼šŒ³:ëEq3›KÙ¼O×h eoR¼a!Ôž»øÄÚuÈU²æóÚ¤Cˆçï±ðžmKõ…þ×Ù‹M5¬aî" Õê²m¯jí•ä Ÿ¼ë¬æÓ¼êLÇpÖ ÔvnQ»Ž3ÃãàýNñx5 M˸9Ut1IÎ—Ï f–qkó:̼HU•ð,ðWGÙïǵ³Ü ér„˜ÒL½šp.u$ÏÌ.Ù*¸Ð¹TtTá! ¥oµÁÚôÇg™ ¯v«ãцªÍ.ü·.Bè{sÆGz,Ç|§,׈~ùí\0[>¢ó!îIU¬h;!Øú’á#M_(#ã„áˆó^|4liÉ`“N²NüSOMíèO}oW.+- nÙÿò*go:Õ öê ©‘efFÙ±ëû~Ž«›ÂÆÜ1|"¾8$Võb[Õ†«Jc¥SÊæx:_‹?o¶µ,æõWjA$ö_pgæàˆNå9l©"ºm©¼6ï‚mñ±¯µecûYl5×¼a‚×WjDJ¾Â®.«g;¤Õy6pb§<Ê$[ËðAˉŸ1Åw:u±Ê›R¬• ‚/ÁŽÛüHöR4XòÊv8ÊɺCðt\€üžÍrfÙ‰q!Ÿ–z¾)lZ«é™kk×êÀj³«5BÞŠÎÿR0ìô.UéÜ-&ƒß³ÌÚ5?Ƚç­XÚ½`S©âŒO‰7p?@·›xÊ`¨7ÔFu¸6ëRvþtƒw Eqh<ß™ êÇ!‡õ°‰U‚uTË蹦qŠ38Ñv‰¡{O·Κ¬ÄYñ(ûe‡·úܶŸ9ßÐtâõì)žØGr¨z0iòQðNñ»Í¦Ç Mñ²#H{sÊÇž~aÅÀS~ÉiTÐëÆÇL]õÖÇÁ•ðp@Õ¢­{Þ«pp>Ù‘@àgšSáÃ^ªF¨«Â§'«VþC°}[luÚC<8D`QoFЊÓ_ñÎ] £PDäRÜ!qœH Ĉ—…á‚ñÍ"4AWQ 6¼Txn¢¦FÅg’ZdÅÑû¼•j°+=‰oªk¹8íeµ4öÇ)Å/=¼òËZÓ¼˜².÷|‘…Ã4w„Cç^o†S <ª8!OK¿|ëV$?ò.erQ»f““Eöe‚éÛ¥ö¬nªªTÍì÷…=sú-iáÊ-sp`0§ I;íEUKÔò«¡n«wŽ®ž•"ÚN8µ=Ê(vàÈhO(Æã˜7ð‘8b½ª#¨x¯æGU»†RyÇ.‚1óÍ'Pš2Ä@â3»#¨¼o}áÇŽ©%<<Þ~ð¯Ó|èå0¸dWB4y³yXãHAáïRtœ7ô‚ƒ°{[fÜ—JÜø‡Êã$/Tp“D„ÇA¼éàzÃ@¨Œ+ýâ ÐHŒä„)ΡZ`µÊüvT©c;ªÅ™ñÕyòpÇ]UŽy·zV>1 ›—[p¤evºq}.g_niYè·#КŠòÆhj%9D7ghÚ$Œ¨cí}€%ç eín•s»µ¼Àâ—£Þì|°²IÞ:m‡.{8jÂÖªÅf™‰wE¯¡ÆÒѲՅ¯RÇJÅ]NÝ2…™¼×»½*Y–d©ç£³ý¿²¬KÈoå ”r4§¬œ×®IVüµø(‡†ßzßÊ<°½eñÚs)ˆ!ó±sdZ2õÌÃÛ]XX'æ¤Ë{“¢ò‚AÌB ÇN–ª^»õ„ˆ·Æ”î½8TŒ€}¼{ º'ÈXé1_ÑX„ÂQ¸ +øŸ¦ Ñ…îõòøðŒƒêMŠù‹þ}‡cé“n¼¡UÚª†?(ØkìgAY'Û«®íP%L—x ™2Ó\Pgã]NŒÕ1¾|ˆÄþ•06¡*ÖxYÒp GRY=¸ZtžaÇæiû¥Ã²wyZõŽW"˜-'rZL×–â~ØÚA4QfÝ ‚’‚ªôAYCqq§%m‘3 ‹`µÀL§âô'Þ.s\~‹~v‰Î©D‰¥¯`)LQ5ÔøXN¨Þ€7Ä=0!°ÁvñydE­T”É„Æá98ŒøÊÁÄï,%VðIs¹1-Ä´•ð®j‚ßi¸á0Ya{FTÛ&¤TKäs+ ‹£]} ;ä ëõ­A[€r;´­ÜL«èmž—<@–2€%‰GQz¦¦”Cfýf}Þ»»J{ÇÜÄ|:¢ãžrµw„ï´!ÿ{:²©8ôž¨Q2Dø·® ¨¢[T+Ÿj6>y˜(ˆ‹lUk¹À„«{)åáŸ@l«¼ve8YéløVÿ¢°¦s™à÷­êj½œá­p2Æa…æ'¯ªæ}ºw±ÊºC‰ëŽNˆÝ‚ù\Ãpb41î=«B³ûÖ'âo5¨b(Öã)*oP¡;Þ‚vͱ8]îUÞÂK8 ¡tWñÊp *?Gq, ;Æ‹X/d¹ø¥íÅa0ó´ë-5<õ N$v‚ònŽ:%©)^P09ìȳ>ÿ‘½lNÂú),s3Ûzñ¸Ìš‰«ZÕ9›£ã‰ØVðí‰Z®ÐÊîáðõ{GǺ;¬‡C~Ù7u(†õ4åÿ›2Ì×µGa¸ái‰fÚ „‹ÿ‰‹ã“U˜=ípŒӘÜèžhÅ1¿€’»ônxÿú8-Älm12:)ã^NRÀf£…Õ–\Îk‰˜‹wŸ$œþ ÷Éjg+úÀ’Dñ;˜-„ 8†Ù‰3µ#íV¾à‡¦,³ÝÞ«Ù§ tTU û6µyÔHSòÞz ‹<™·D©#ö^,ä渕h­çžßæÔ)ó¯r`*M¼·’£-šžfÑâV9Ê÷¼òå ƒiɾó*íb°’ Œ‚²Nð¶èWa!둆cX-BpdexÕYcóxZ«ám€y™Uk?ÛÅÛª´â(Åþ°eÈ,!®`ÔöFµµ: dëŽh¿ûVdðã—`vë4;h¼1Ú˜yÚ˜é4Eoæ†ó®Í5çª*Z7Ù-ek—w¾u)áyVÜBÔëîv”mƒ™>æØq?¦y̆㠂 ‹z¤*CZŽvx‘æp#ÇÐ×V7›z,¬ŒU Å r ’—²yQ_PJr–[;Âüh°¡ÞÎ-uÎÝ®!Pm<…éð•Òñ®&E÷Ïá?Ë¡<Ìcî¿5ªÊ²Vò)Ÿ -±8Qy|àG\u&ÇzœÑ±¼"Q„Þ¢\¨Úx`Y8‘êÈŠjE½9iUlj÷i·]ðÓi4Î ¼‰ÿ‡rpd.VÇZ&”¦fNQ$ëàN['O'ÿâé L‘Iù†þÄóP,Ø2`‰*D,Ö87º¾%™ Îhu‡fÛôÙk…棢B€µ›@’,êã…Õ¬µ0ˆ?öüA8o «YÜyÆhêÙÙL¾½y×¶”x(Bžyô§nuв®±«(¥y3[_ò1õÍ*;KhÝâ5 ÿû“)ç⽈©lø‹=Ù7›v¦5ÌÎõß —Ê<“òj‹XuÃËH^÷ÜÙç¿ 'qdx>§¤ã5‚£­f±¨m`GÌó€MåbÍš^¨²nEG•UâÀYâ² 3¨ˆ°u¶^åðöy·¾î‘ÜWT$|ΖÁ­è{J†h4H\‘­³^Nd”ªA8`9øÏnï Æî0`ì’îógñ"`H•Þë㜶ÓñÆøM|> æ) hÁ‰ÅÖÙ Ö'Ú”·Jñs«¥½¼§yÌIl¶`ö6—ìRS:8).¨ —íz˜ãb`_÷ºìTv:Љûæ_VðÚ TÍ@Ë“ãESr"ö£¶iv]³‰ÖiìÞªÉ g„žì§|’÷Mã÷”Í5Àn÷=‡½|VápÈ–ªhª‰ùß²; %ÝáSéÈÎ Äø­LõÉ`4&’½t.ÓRo[øE çÿä¼²%¿ÝYæ* s0±÷uè–yå ºSC¨‰È­çƒmZ<¤ª/Ü\#î–Xß[aþM±Á¶Ìž“×qLçñ£÷uވѢí}ŒÔp®¸ðŠ[çq†_©ƒ5âÑ»~W [Ì-¬îú—5‡À¦µýÌì¨ã¡ŠÝ#¯S¢mà^8ºªÚ*wðw>iSéÔ‹°¸ÅðñŒ¦mìH¼¨I²óRhòºàïÎ;Ž þ¶¬Ì ,l¼q¢†]Æ—9~Ü^”xLœkñÁ=1âÒÏìô‰«.€&GnE•ëøˆö™a¢!?5=vµs"¤Ý€6‡õ.ÿò‚¡91{Æ-Ü9ÔZ¶› ›”å¿Ô*Âã\@µK‚¿:!­[4n÷¨Õ§ç²Q6œ˜È0êÜW€ðoñ£1¼ u›šÔwPœsm]e I Ë1HŽpXèm¶gSÖu7g7µß*þ)YPTÁžÑö °Zu¹ðV‡¥ÕªªÄGç¿ëë<„““YãØ-[òJŒß·"vËzL.8¸à°2™“–ƒ)¿m¿6/ùLUøn‡åØDǧyši½°-Éx)Âìá|âªV¢"¤å‡öïX©&äucÅ5ñrFéäœDÇ9 öøÆ­ßN.®¯¥f©ŸpUœû¹5Kˆ,`ØÓ6ºdËÂé±89Z vèjlú¼0¼o†nÛ)'–GÔÍÅq»Ûíst+{üدŒG²Ç3•Áâ[KÞãìòlV69hÌ>Æ×:uG¤Þ^‘ñ-Gå|mPPš]!'§ž°ygžûÅ Oµ-úòr,q*yùºWõÞtôܬN2:6ç8;~Ëtø ÖR?LsdC5ï¬vÀb…VèÝã(x9•;÷T+ ËkY«<\IÒsû~m0ÁïÄ¥òÀ­0§ùjXh½ ú°P8«£¾‹þã2±§¿Whgç@…¡<³à˜_oÂâ ‘8Æ.ÖOæ=r¶:ÄNÕQ \pøeNÖ,cdâî<‚ëÜ©33.P›c%LKýŸ]­ÕíÀß%êv¨Âæöì“órXowÄ€~“ù¨/ÍâêÓ¿_G±ŽúH–«v¥'¬è ˜ØŽŠ…N±má –¿T"Õwé¥p«å”)[¯Ÿ „gvG.;ÐfƒMÜÅ%9iuÚ¥s|NB•dÅÊÊ¥~äcßÜ• –7k‚ ° øÊ‘ìïäÄŒ}æ|FváÚt¹ØNÂ.cì3{Yœ¿ ui¦M,Ãß7͆žK'z*c#TÊ,ƒ-¹ad|·wä7‡x^½ä¶ð2Ù£´tvð›Sk†Æ)}Á‹-ç,”7W'ìy âuÎÜ$‚…€Ùw~?˜¹µôij=`nYkøªžê ¬§GgǶ.Ð*V§³[xÚL(1Q`þö†yÇèXÇëó>{Jì£8ƒ×ß-VÚî|ª:’Í <ãœíR÷WÍlö`-›†n©»sNp}ªN ® žÓ¤Ëc_ä^a“ÇiÃÝôÆé¼æÛ”-ìÉQÑY‡ÀU‹¶Kãø‘]ïçtZ4â¶ÿ!W‡OÝq?^ož¢ÆBÜÅ?¬*{*¨qˆpâ¼Õ4È»Ì$›RSè4Â!,ê6:£³´ÏÒÒD“@V›ƒåL39€3Óñ ˜ã5÷ÈùÌ«Î-«y“º@[éâ }Ì·m—šïÓÆrŒ¥AŽÔÏwЙíʯ a tÚ´]Öv«´Ó¬ J¢ ~m`ðÎüv°ôpb¥šå<œk:Ç3 ø`ΈM1¶Çt1âžÃ ç¦Æ:pÝ‘ËÙr³ãV V}ǨNÇéÑ.l‹Ç_[€-ÃB«ÿ9#2Œ[¥#,äuÞƒ#Ñ8%MÚ2Û–˜¹šu9D8ÇÜæñ˜´aÅn@…¼ŸëÐÁ=Gü¨Ød0õš®†ÒaˆÕq  â!Äø&¸¤g€Â˯q÷‰œ‡\”YÛãï@õÒ•"˜? ØåõSúÜFªì|pp^WK»V÷øÜ»3ØqJE&·‚X³G®êºž²Å+L{;cË­@Ýaõ)ñÈ^6_ìb¼gyÁ…^×â°ØZ}j§SóÀmhjÞ39~ <é]V_V¼ ßîPË[.m.ÖÞúñŽéëpœ ìw~5ÜÙû^ŒÕ~»çg(S-õß³’ztÈ¡ ¸˜V *@ æÌãá“Í™pÍF­jÉÓ'̦c³²MTèðP =8}Óa ½'µ·Vê,=ÞÞµš÷oAZr©2Ç¥DôØs«³ªÜ—˜lE´oíPqDÝë¢5î8 >©<´²Í¯âÈ{â–VpªßTÏHw8 Æš7…Í U§XÑÛÝŒ“…?ÁÄ~ŽmYsݬåÍ€J˜ 7ú?¯±~T9òõªÚ¾l©æí£×ïÁÔ3oÏaäÜ÷5¶÷h‡wD6ùºBýlFÿe³/,žN^ð•G‡DÑðˆöSÜÙ×rࡪ «ìmm¸œq¯Ž€¨ñ²•䥰½ÑŒ]„„å;âø¨uŸ-Æ©Gµ'U°öd 趉ÙwW‚>ξÅ_8%Ê–ðuJyànñ¬vÇ9òITì êÝgúD D4Lªi‹‡KÑh~q‚•èâ뀃ßÛ½:F:¬¸î9°Û õ:Ù¯y/: Ú–üto<-sêWÇ´t'î5ËÐí­¥šÚ*J^=»ÙÄÉÕNª-v ²cã__Eyö ÇÆ‚¨Éróû3¾š‚v~ˆcoç[)[ý~©¬ØžˆgÕ•÷ùP†Ž¥[Ãb0ð2U[r•‡(ÄÁS9ÍÆ9@¶cÖ¢Ú!.óµ&oY®nîË;jkÆ«å6|N½Û^*%B–¢‚€mûhKd‹ê'ž*p« ¯jGd{òŠ£))  ét „£Û&Ésrú̓ßÊ×eVSè …¹ËrÎR]í%^·ÕÓ¦ø®¬ 2t€qÇ-﵇É+³ÃK9æî2uafű,§×šNÆC[D‚Oåƒ8¼…êiYŒè4Û/ÍÃÍlS?ÉFQÉôz‹³‚Á3¸1“›©/˜áV˜°8zöD0qzë…CU Æ™^1YÎÐK½yuž¨¾zÅêf+gpì€$ ÁäP*'µEˆ¥7&Mx¶«Í´¨Õ„@z§„9Y 8vâ^YQ{Wºƒ9§mvGñ}ש^.Õ8¸§]8Q‡]t|=&ˆ}[?m_•:Ї¢Ü«¯Ídˆw{xV@sÄD0 |½òŒÑây¥1r) Z}ÜKÙTpÐØÎ3߸t8äi•)(‰ç8ÚoAöhê:¼•ØŽ6$òðÖ{«(&|À±³Ùp ²GN˜Ïʯ¼m+U;•£ÇRƒ ?k£8 ¥\Í) Œ [èèqz›Ohf_Ô€T j9ëµjH½ rãÔµ…oUzºÅìÎÿr„K…Áu§Sleð@SÁ¶pýÎÀP•¦á6<¿8F笗%)¦1½´¦ýÞR¥Ë8Už‹½I[‘ä$óyysåOA0[<ÇÅviYolªò”8š!]8ÄtÚM9ñràA÷Žm:—q9¼õTfÓA‰×žŒm¡4[¢gYŽâÈ=»à"à+ah8Õ¡>Cr(Æ™û£xÝ;¥p„nlŽ{ÚG€C˜©:KÙKSïy½#6w*Çß[:Nhó Î ÖŽ÷ ‹y8/åƒxÚ·»•,¨^¼ê%53Šmöó:ÖU·ö÷óþþþKg2¤_7“!ýàL†ôßêL†ôßÉL†ôÕL†ô_2“á-g2¤¿5“á Ÿf29ÿÛžÉ~óL†ô÷3¾Ìd(¾Á} Àû|óËÿýg?à¿“Ù» ·UÈåt²BÁ†o ‰ì†‘àzƒ`ã¨:K%yYàèÂSY8¶wؾXN+}Çi¹ðqÍr}d" ͼsVɱYÓ‡½ÏÏÞØ¤¤Õ¹œËÂy[±“°áЙgÉv=˜Á#ľTˆ‡Bñ±ì_*QØÒfŸdlv7HÑ„±Ô+ØÓl#<î¤à ÄVN¼+÷pÏóU7X¸‹SÔdͱ²!Qq9³Ù©)¼"Õcž{A01äôDË‚xß°ËUÔúïa! e±˜’ÚrköË9ïÐÉqÍ{Ë—ãÒ_™æP5n)×í¸Âwžì–y_ùVIAq$» T˜~jçívÕk¶œÓ$=4@­²º¶©‡óeº$+2"‹r‹Í=< S¿âxˆ²Z êù+jbéÒág0‹´Nmª>TÀ -šý±¨›·~!nßÜÛw›ñœSÄ×~Š;×2fr¤8ì.igÃH0-k‚ÁO/®±ãù\ç°A Æäðs>áÁAWqÁ2¸e÷?£¶Ðͬ–#8§ ,+¨¹Èy„Ôâ¬_:}‚>•'†˜Ÿf‘Fâ}ÕTvÍUÿ·CÏyí6ß¿§é¼Ùž?qrøHºUÊAVŒ¥šRº/¯ù*Ê­½õ¡pR°–Ó‚UeßC!0«“å&,¾•m+Ã~ô=ÀáŒÚ¹rÇ­g‡U«àÚ-z¼xÛd,gsªž?½%cq2¬ú²½ø47^̪( œá‚øiUÃtó+´ˆ±Úö¯fçì®Ø-¥ÚÉå¡zÓ„Ó9Æ~òÍöÕvxiÍé¬jaôÄkà1—mE¹®{fç²oÕéÐlÄÎ×¥gX{šªíÎ¥ç3¿öøãÛUò콟æ¡bÆ¥¤oÏK¯ÓŠŸSã³—TG=T·À+ƒ«øì×–jPEߢ[‹9¬§\Î|¼4¶4ë¶4éâ e&àÝv9™TyÒÀ1®Ì ä$Y×ÜÔ¤V¯Š6-å8£5iXKެ-Q—Âaaƒ}SšwTg±¢[I£Òè9,òf ‚JÌ¥½-=Š@]wájÉ©óßÒÖ`Q&Í1N÷¾Ìâ°O×íDé,¸ÃJl^‰klÚ†b¨~·H†2î¹8p{ wÝ:ƒ©ç~¡ÑA[çqs°Žw9¦ø&r>}O ü%=²y²>_upœˆ]—"á'fó÷"ž<²¾1μ‹rRË­ÞåÓLÇbœð 0Q®ïxîlËŒ4Åû‚×÷® —O®J¬›Y`l—µS+²µLòyÅ1ùÚú“öª ™RX9ÝÃŒÛ^;Ö§~îI$¼Ì²bŽw"îÖ³G%‘‹§s†nÝ[ü×ÎÙ5¾”p—œÇóTÙB‘Ie9"îÏLe±‹¼&ïvX¥ŠOÃÕ©©ÞZ=¾ý"a]…ߺ…*Žï-v€k>åV¬ª‘§bUΆÅ)Ūä¥%íb{°G'yrªÔ/5 Šwla@)ï­ó­Ð^jJÕ÷Ûiß§·XUÅÌ2­{Q4Ô«‰sªBG˜ï6­ñÿÒaáa‹“‹ÍÉæ kŠºÛRñ˜D¾zRœTa•ƇÁ…M¦yXå“ ÂÁª£B¬ÂÀÒÓÒmZ(âþuOªÃlJPÊWi¶©àçP Û—>ÔpÄO¶T.F†é¾Ie2ÜDÁ£ÞØÂS É^×4§ m-8lÄ/ål‰ƒÑ{g°`ù)ŠÍîÞ }Êc½²™TŠ‹‰Ý©!y•¥˜ï-¦5ނꀗ¼Â æyÙU«á툮w²Ý,ÌzË'±i¾êWàˆɹî Dæ`¿•â$§ÍÜUåǼlP"xšêw¼’鯭¯" a¨ê›à­÷£Û_héW{TÂ’^ܧq\ªFÞœrÓç;Å~ïµa9P£:Ó&j=*ñUJl+9ÞNGu´re¿,iª 5G FXõ£ÏSžzW D¬H{2xð´ùÀzh<@°Ù4åZÁŠ}‡­k°Õ½U• Ó¶"±¿dåÙ¯g·";èduÜ{~Á¹ ¯ýéàbl .AØ>ÀŒ&%ªrc¡•Fœ÷Ç j^º[¸£*k Hó4C½Ó»fN¡“vêÔ.#VƒIfÞÐÜ­»œ®t:ô>W^’£xÆíM×aZ¶Â*(/½È)îaÓ¹P˜ówÙO§öìeÓAË[N;ßDç+:jx©AÕ½lèßYÞh° ‘³hÀ‹ðÛˆ8Šv:¢çµ:æô,lñ¨¤R•øµ¶Zpш·yC{·±E)Ó³Ù0µ¦ Ã!lsÌL–)©T¨†´k xÝ/ÓRÂUtîwqÒs^2b¶þíÀ±h‡;c?JÆÙÃl?þ`_툨Ùì¯ølà9iöá¨%‰–8›æ7ÃG¥t˜;º%1à°ë:‡7EÏÒàse¯®åð¶ÈÇ¡•u,ïÒ°C2ÍŽóÆœ Óñ½u©ßÓåneWÖ}¼¦«ÕûQp* «´¶:äiS×\véßëJëÑjTärMI¢Yñv8´»ïó¦à-õ\–sf/Ÿù&'C¤Ê¢uõTdl€I鎫l£ýóƒcËZ‹§ãއâb ûGÀ ýVˆJ¡|\”-ïæÑÀœ˜÷àh¨*Ì'™ÎÅ8U#rU'‹ycÊŒ*›ˆÈÀ…ÒÔ\±Fu9ŠS¹ oE•Âß^œ,5àÕ.p ÀAP·2¼ÍhbR´ð½ÊÄ…Ý <ð´Ó›g@öì þœ`’ÆÇÀqâ²T„9•®¾op"äÑÿZª Ÿwì´7ðN€Ž|qª#m,Ã2œ¦,RÀÝ„#«zw)5-2=ü:Ï7«w‚xæ¢è0ã9Ź÷R3ÏËQ/9a";-Ñv'pZ—Ù=6$±ö¡,Ýèʇƒ1œd¶ŒÜ~p%ÏÎ+gh^àÎ Ñàœ¡çt@‚ê ‚{ˆíò–Tåi,‘s0vN¡ôƒMÞ*j·Í<Ðô±itÛ¯©²C`ˆ†^ôBæ/qÆÎ5„݉}xgerC¼Òm.œàÛAgÍ© Ô“ÜÂÉ^È(˜ª^,È_(Js¶”#¢ÀêU |ðñjq✹³ºë=”ŒHŽûÀ—Z¥ÿZ’¶ˆ œêôì»jб­¤CC¨âAY,×Éx®Ë.õÊþªUNœÕa†g¦Õò´bëzNþ¿êq—£5íÞT[BŽ…&užù•Š›Ž`ž{WÉ¢ï*ÿè$"´…éJ±r^áO§7«^°J¡`±jb"G»²²·vø”ˆÆ¥?nz±åèi{NŽe@ÏF=`!:°ÚÐ-4‰êŽ«<+æ?í¶ïZ•Õ³—bEý”n”¸Ú«ï ÀæY—xUž-µ¦bb¦ëê“ê¼ »‚db­o;GTò¶_Pq¬#T]‚½©1¢¶ž¢›oÕÝìMñ„±wç›ã•­7Ê6þ{C9°•µØ¯ÃT@Á˜¨ÚdÝ´fž·Nûå5ÄÍ xCH}*n†xÚ̬6Jdw‚Uõ—¢ôæ]Í´(»AÔÛè!Ä(ÞÞÒÎ]«ÊçÖˆæ*c>aå§ú!ï!"Öê‡jÅëx–íãXX áÝ,ˆJeØŸ Š/DºÙñg_Øizfy8R'™†C÷0ï4»ø}òvÅ93œô§;d0áõA1Q¹ïÕÖÙ£; EùÊv†®¨8av9QñvŽèÅ¡~aT^{*Š@€ª-`oçxÙÆÖ¶òQTu{n+É­Ã^-9U«¨Xš†}æÚÙj«O7DƒÓb‰gþ(y5 lMÖ>T)xV[îñò†3«¾3‡ëô<°V…õ÷MøË‚7—š›ÅÖ‹CÛºL¶¿•ÀÉyßÊ3\q÷Õ‚øOÂ;Pè¾YƒÃ|0ØñÉrgx,ïb9¿ ¿ê€IÙ«Z*vƒyK8NeìáÂÔב>ÑñžKÑÝá±x:©p«vñ£Fn^ø-’p‚TíàžŽS¼€Ò»€NÞ“ïó™œÃÂNˆ1«éabÏÇnî¾G:ÔIWÜ F~7/eÓÿ½ëÙeÉ®3±ûüÛ ¸S‡ Ã0œÑnÀ}€$·Ý¾ È’U0êâ¡å6üßý<±¨ªMŠ$,Ù-4©!r¯µ¾ï}ó1ç3æÃ"‘Ú5¨8×ÝA­JÃ<¾mΩUP²á‹€mv+ÐfiªÝpþ ‘8é0¥åá©ù1XCme‡ûäs™Oy5El&eîY0Üöc»ÚÙ°’ãˆ=U G¸‹ý^£(IW„Î.<] 4Ç9¬ƒ‘ˆŽ¢ŸC{ ãÈŠ÷d ;ùcœÎü.ÖÚñvPòoíü’¸c³ Ö%¤@’ÉïIÎâqV J‡®UÀ‘©¶'¬$Üü&½hrÊJx™¿Xm§†Ÿ†ð»Nµv ¦;CÏCméª:€æyÆ¥Vài5`ç4q'á<>ßù@ô¬±ô©l+zkj“¨¿Û±²§ùá °…)œµ–FÜðcuü…”$A…JG"Ïh¤g³s*ò°µàº¹¾Ö^­ãF{Qœ…vv<+üT·DúÄÕBA@€D¾,ûœz(0=°óuZÒò¹õ‚"+5eS@çñZ¬ø>ªB]<Û®v—Ú0sÑ Qiz+Å®äíüs¾Õ·sÁ+:ññ_äFQÖDÁe¾ð¸¶~ÉïpÂù9N{[Am~†òPJkZM'pœ.6<q!Júéy½äÆãcù4‚ûÃ둵#…®k­Î D/à?PB„|÷mÅŠÐãP/Ðc„t½_qðëVÖGI Ñ»(ÿ\]HÅT4ß"š= {Ý–(O?’¢˜ýjáù÷>–olì&³Q{ÁÙûG« óBRFEñ­t¶3ØFf *Së4üE<§kî»j0Yb­OÅ4ôvÖ2öuù2dZqthÙcÑ @|䀗ǀբ¶‡/6ÜT­quÉNV@UºW9Ålµq³gx“¥R:RnYu…VÒÑIí“Úáo¼wžFO—vÑŠŽyŠ …¥£ö\OÑúîÖÀ2;ë2¥ž‹Â“·~« r£2P s)¨X¿%»øà±„‘ul_¹ßŽÇ°ÁzWAöC‰—NµFÀiÍæ¤ß† ¿!B(>™{˜s«·æ{lË‘krñ†ˆ´ms"¦Þr3V‘: rn+R]«ám,|Jd'(!|¶!°Fõ‚œ„КÈQªÚu.ÊãædHül…Zz@M•ƒÍý¬Ÿ1o­ù E‚P½ã¥°w¾{Uÿ'ß*–Y@CïýÃAL?ϲµØ#úL¶/IAب'¬ƒkª…)n¡üªj“[U°z'Mvú1>ê¤ñÓÅ®.‹l9󤎥äK´DÌ"#`D”®v|„tOE«ÓÅÜÕí\Qo×Q§#Ú;é’»8äîñ’E’8€–è=,ÜÛêÀº*¶ÌõÞ¸ …ºäö`©FÍ#¶Ú{oÏ^K:Qƒ»·«¦FTƒHÖT¢•¯‹ýoBžpƒBɳ¤>Eó^½Âxòž :îePYÄ((Ø}ð›Îî`ÑÚó²o-6L×Gs̺…:Ï*9ÏœH!¶ii(FT¦Ôs¦*Q^Ùª·í–¯½–ØSyFØ· ñù]`5Õ*õ¼L;)+RÕèú;í%[µ*b‡&yK¢á’¯KŽÞHÀ'^q€J(Þ¶5+eÛNï9)!O“ÈôXp{œ\çI>­†Î. ¯Tç¨Ü,£1㘙j+Ý⢃u v›‹fy’c±?(ˆ˜ë‡ç%´^HCw€‘[dcÍm÷³.Ås¢NWÓ1»Ä4í„aGù¬äS éb‡z8ÆZåN—bË=ØÊR]òù4N·Ë†kÙš2aÞ*CÒI¡¼×þÔ«ñäYk¹i㟠¢_ÕÒMÍ£õ¤†¬#ûDXm;¢Düôwyè®[šæUsñÈ,m@—:qÛÑê,¶üäÉ!q«Ë;nòéÃÖ;–/ä*~Ë>œE‰C]¸AAG{]1=xnò‡È[s}6¯+¨wºµðó„ÍŶÞFàÐø«\P2L^/JÓ2öáÇ*cµ©³ÝÕÞ¼æ-œ%êMŸ˜<µtÜ:s²ûêul>„…"jê:•ñ…ƒl/L„8¥xÁ –˜§ÙõÖŽRÓƒL螀üŽ;˜ JLãáÃ'´;äê6 ‡ó0 V†•$°°Ê–‘È»”ÉñZ”žSì'Ú¬Çr¿`0mmº²¢Ëm”ÚÕ2Ò«ÕäµzªõÚäôÚkÅ%p=IîìùÌ™=EÀ à|5þzlt` 8©ºâ¡G– @Ÿ›Ã\ ÌÛ 4­)’¦ÍÚ!Ìí®UxζŠãœñÅØøÏ©Û³$ŽØïP+hÝñ}*K ËÛ*-äf€ùyÅ„³{–&_<‰? ƒC¡qb4¤½­ßÆýîþÇÿÙ_þŽù@þåo<¿ðrB;ûOcDÐ7û›Aÿðï;$H2ÍõÞ ·ú7¦Süé÷zÎ?©òøSëñí ‹ûï›äßÿ£Œ þ^Ìÿ$䳂ÏO¿ø×¿þÕÿò¦é@-õö:scgyX2Èôƒ”\*~gpN—â&ë˜U×é/>s@mˆÍ 1š’ì¯.„ӒĜѮýë[Š÷ݲ²ƒ³h·ƒg³ô¢¡gµsr±•¸Ž*~E¹-È’@ˆž#+^s¤¥ºÝÚ"Õb÷¦’ ¯-òyÒZ›Šoõ7¸«^îýŠÁ¦;î7«VÆ¿9âàG‡äÕ -ÝÓfÛêºîOƒ åîYÛþ.¸öDZ0-6¸±Ý[·¡ûY½ƒyùóÑye$öM<çÛ¢04›+PY3kUšÄ£ÊK^È.Ôb'KØú€x˜Ë(IúáÊK¹Á¸ìM¸og`lµ…ž†Á¤:° áB«S×Wë zßÁü»oæ{êŠDvÅUäçÖœkª˜€X‹¿üÊ‚B+þ–µ}ørÅ÷á]‡çŒuEOdY90žö4ÀåÓAï°c¸%øú¾•+î¥>Ô{ÃK®wÔd„‡ãŸz{ªÈÃôøëÓQ>~ пªzZú°Þ{èô§_Úð´2ujç9U$,{϶Ÿhoéd^z¦¶½-+ó»;¼BN¢xËæêuwµÖ?¢§Ô¹eá^µèû“ºw°²£ÊµÎã›G¬p|kWè£aÈ/üð+Sk#[³ JËÕ_¸ù–Ñõ¨œIáüO[ûËÉ­SƒF¡<ÀÖ‚3s°‡›5÷*uä™c wP\áể¸‹Â0<› Ú¸FßÃ^A‡~šoôUU¶:÷ŽÇf±dá>;bÓ: Äuñ;]Ÿ®¥M¥Î¥¾ìDEÈnÛ£©Å*dìømÀ"ê qê½2þä¼®›'vëø˜¾OͲO³l‡-«Rè)AåyÓ.g­m<³ÙsY&v 8md›WÍæÑÝšyó¬à•Öï}h5žx¤F¼Z­÷­™iÎaìjF²}íç 4Õn.]¾*¶n¯¢¬…5H¸)ð™ä9ù%w³p›¥Ô5Ô¬bÚÎõvH¶Ö¶ÁúÉM8жY{™ÔCj:Âûî•ôôãi+CÐÆé¼ŒV„¼è´Ä ßÍZ'±•<ÿŸl…Fè™üë±lÑmNçøÞm&ÕKͱåC¿£ï¦]æÐåÇ^+ËðŠUmk¢ãܶ(?Jæ®})±ÄaYè,—µÔeE­çaÏF ß)³´g¸”Î/ÄYŸ\"—£[/Ônš"Ê6öm‡Åáû¼q¤““Y³½®qšÛºGS=R·ïuœIçp)ñ~—£J¾Y&çáCP5'\Ž.8ƒQ¡»Z>qYûù:‡Û‰Þoúqا®…îæpP_mkbu›¯ðUßžãv‰ÜÆ«× šG¤ëœg%ߣUÕ"Ã)DÕGå÷%z}Ì#ì{[NŒY—p›TuåÛÛŽMû€`Æá¾ãztäò€8öÜÎÌB½m•uö×Qœ 9‡¡kÚžQŸ8â&„°Ö6sò”žì)cg¥\ÎÙ v7õõ ËããO‘Q}q¼­C;^[tpʩŒïyí'©?ׯÝÉNþu Œ_œžÎót½Rò«„+Qì=Å v©¼ßœàUüóô÷ßZ‰(å­j٫̼öšÏU-lçVìª)ýZÚV‰"Uk£¸TpÊGŠÔI¤¨á–J_ox’CïÊG)}óÈ¥´Óµ² nþ×7Y}ìöEgé“¶c=.{ÂDqVÂQøLø9¶¾ƒ—u±jî¾wÔd‡à¯Ò1'šdÖÖHñ˜CÖÚL‚ÜrК”4¹F+®Ö1¢ ïÚÿT¤#h*’PHø›L¨—ðë¤Ä ¯c^…2W%u>éòÐ>*#u;nÇ<«Šà;=ºøÞ§.GÂY'ÄÂaþ°º ¡ƒÌt‡u½Y·gëå\æRšøÖ#VmsðmãÚŠywç¨Yn:]é“5雷’#U,6K•µXÜÚÆnBStTÎ ‘~­£zœã¨#ª6¼¤Øë} ö,’Â?0{?ØÛ”ó™OìÚU–vœ®¡ªm¢-æ…$Ä¢6±°fÚæŠÔRçò-Ý}¼g‰-ù%kv³^uQµõú‘Ù3±n^oq’ûµ]Ã!’[ß²¸íos€ª*ˆèH&˜ ‘ÁêÝEôwa)ëæä°³¾,<¬'öTc9TðÔ,Q¥»‹Ç+žŽL x‚‚ƒM$æOµëï«SO3–ƒð·­ˆžËݯõi‚¡¦L„‹$ãüÖY¢·ÀXo1ÛÆXùaÙôiãBRÒœ$ib.fº«ƒø!®‹R´×åIi¶Ý¾yR'p (ÞEß+eåö•d°ýøa]íÖ–½Õ|OƒŸñ$ž·udÓA[$ý˜æÇËÒy…½£5Ûà¾.¿tü!Æ>¯bʧHýª`=ä[o…tõLÉg—œ$%êGr‘C]q°IØNQ“>€ÀŠ*³=âñ/–euZ7ñEÛšväÁ;K™Õ@è©N`>3GM á ÑaPǽB €'X”q“ß©ëÛ1Ëk2zo /Æ´½9”lUhJ-ƒb’•[Çéø2ÞøªhBò.‹±¥1N¿9L™µjl g(йô0ºµ³˜àÊe½Øÿ8z_ø‡6âíœxÒ¬„µó’f?ÞŸm#Ô4::z’| Â2kÛ]{ÎëÕ±½ë»LZH6o¤÷å:` Cò”öW<;Û Ý§M–€™ñ©’˜¹´é›`.rvQ Ú¬í!Äý‘`ˆJ‹øßmm¬gªK‹EB? >’¤Ùý„õ\2(Y¿öÛÕ¥ÁVIêg'‡Î´´²ÝÛ–GÀtÓö(—›0ŒºšéºIaIê8.ÛÚYxÙãð°T2çÙg8Ó,&}ÞjqpN çd£Ÿö“v•3+£j¾—cfêô m:é’¨Àö% Þ>7}s3᱌c‰£¸ÁöDƒ«t&¡¤¶†;Ìë‰]³Zª6œäû6ïÙΡ2HW5×Çõî|w%L•œ‘µeÎ@ÄåýL…_ÀyÈlWÝ*NÛ‹£yÌNØ#djÈÅP—s=_Õ›S ¶¼ËÕí¯+¯‹Å[w7˧H‡öˆ¤;RÊ»eVC]³”$«óh(´ï‚(‚'Ž«¢¼Ôuü¿l‘þ–©žò×z¬ˆ{wâV;û]$—<¿‹HA TþÄ•úqg¾’Eù§­7 }ÈÎòhwÞŽÈc.:Éj  •@Õ6XhØÝîÄÏnÄttßñ>¿ˆa“WÍÃUgœ-0”†”D:!ÎVÙzU’CâôüRµ ‡ÇeKNÖ|å¡pæs@n‡ºõ—feåI¼ï­ÞjÔ=­{Ëêª×ëÄÐ~47Jæ´ñèvvy´Èö ÁÃ3zP»–\±ƒ6±mΫ:.‘@f«Y0íùÀ‹-Κ‡ÚL Ò†z|ÉÒ€G×õæ¡n½–'HÜÓ‰; X€-ÈKl ÓO0#ˆ ,Ê•›Á!Ф:Èæ¨'{T–=dµñ¿n`Å’Ìv5¸°|”.ªb1·b¬6Íx€8¬ý‚ˆ°*{^,ù ªÐ6dßfüxüØ—/ûìÿùqdJx7!ˆä85$ËêÅ«*3Bgõ©oK3kò¥ò—¤ âú¼‚2õDLÖÆ£f®5•#‹O=cûò4p®(Ä¥(ª¯‡|eaVH ]Ç,µßâ4¸Æ*R5ŠiùQˆª41éÕ˜¿ZR_  ÑUÊÏž­ÚžgäeÖ[áUxˆ†*ÁÞXƒŒY”ëÓfÊ.-”œ‚M’”aÓW°¹Ypœ8ZÝj\dT Cïp[XúeáŽô¬¡okZß“`]-¾\Òºšjv}²ô ‘èÛpXùsÐu©ñn ïAãÇieç›yAP+ní³ßªé[14G<“i¡Ú ü\ž”óä´štÌø¶ŠøizªÊªb»Z”ÙUù$ /Òè3¾Ï‘ÞaAãÒí1A«MY©õž“}á¤ùcÌžŽ1L;e@‹ÝE‰ÝÀ‚CчÌï&[wó³H–ÁòÐISÿp•sUN§½+iåÖúXõËf¨¥Î÷ñöâý=´«wÈÞ…Iø„³ûIÚbKFTíŸR®¢7‡*]+K4}“,l$:æÙƒðÿ.2¹ø))1ta#]ǦÙ_Ÿ€)ß=$%$FOxïZªÍ`,ºä')t•€€é—²äfó­±&õvþeI3èTD;ã ÙÉžíQ¶íõ`üK×´OÑ…'Cʸbü£ò2U“$²Ø$Þ§¤wÃ}D{NÏZ·w·^v@Új¯WëȤë]’“Ÿ¶Ý¶b6 ¯<‘.·Ò2_µÃrªï"}Ž›Cd}¬©Ùi±?V¦öX|Ix}õ Û§‰É༟Aê­ÎªBº†±^ÀW+éß<ŸA³[Xþ§Ä¸»ébý)2àÈñ¸ÞqZˆ¡ÇÚ©ñ²‚¶w*[±˜@ÞêŽ=`ûd3ÊÔ½^£WGS¸BžêÕÔF¶}w@N<ˆWË͹ò[ƒÃFr¬©ªÓÁ™\ñRi:Áô¯j³F(g ú9_ÙÔéÙg½yJYªÜ‘O  ™ÅΪ$Yå®èÑS.¶ÏÔ›½žaúö©FEæv4vRí7àÚƒukÒc/A‘³¯SŸÙVwš•Œæ\¿p?@þÇéÓáª]ác§é½¨&ˆ *Ü8¬ƒP¾ã¡å+°ñ3G}cÆk@Ú¥¾Fí™fõ-m¶ä–­ÍßÚ×4+Jîdá¥Ìœ¤ÇŽ Ë’¥Š¯öhVˆ ÞÀº• )—“”øÆkÓÞ®ëѬq¦P…­³³…£IΜd Vd3¯ñê2e-e3l%å2Í[ÛKQ½'-°xÄ*r6~¤ i†ÎUõ¯Wâ؆U`)Îßg›¹¦ÛX§‘OW™©Ì ² ¿*èþ6T^¸ B6û*{zŠ<¾/¨2a€hØ%bŠ1êrÎ>ra¸¿IH¨Üš¿Õ#öÌ ïsh·XÌ*ÀûNílÐçÇ; M_‡ù\]Í%¥E´1ëÝ_`÷-›cõX çµY{§V׃ ™ÒârUžcý›ïOã*À@Ùõ»ØÊ·*ÊÝ_ÖÀý&»Ê´)ÎRf§HOš½Ì³€ç¡äNAtg¬”R[Öð“7ߥfN¨e¾MzgWÚ .Y³„÷E$]?ð㣵rµ´ùÇd ‚÷t[gÑ.³=—®ïd?-ªó¢Ã3ûÐc(þÿ2ޱ, «×ò»!ëÌ)¼Çáx—nQš+hØ*åoðÂhƒRÀRõ6‹ß˜ªjEC¶R´?Â4Ñ«–s†~f¬ˆ¡Áp\°•Ùuƒ‹¾aåUƒÄ ýØ@Åx‡ƒ} ® Wí¶ýòôP“Àª]eý’ÖQì Íð´õPâÃ,Þ:åÞjdUÕÙ €Gˆl]aÏ®žÉPP“†5]yø7wa·ž?õ½õA€€=L{TмEØßcÑNgó2lØÖÝxÇv+„_ÈÇćM° âûX­¤¤®¥#Íwe¡ô’LÛyVüÕ;ˆ)ö£±Z?pŠZ-QÇH¶‘†>Î ðnRÝîÆ­4/.Í$,/n“0"WõZëŽ2ÓaØì'Mº"XIÁIBÚ§_ƒ>âÊL ÇtMd‚A1RíøS=ŵý.\5µ§FC²Õ¡Ñ™Á;99ZíC êáÁp·u‚”Åã9Þ%Áλyü ¯ÙÆ)Z‹¬ôxºÀ ]&¾D³=Õóð…gÂâ…E8WÎ:UÒ`¾ˆ\ áÓÖïŒ(zÀggZ©QÎ|ü·AõŽ+©sÀJKɼ½Æ{åc9·@¦ãæü±ë+㔾R&n]0àkýPgm°´ŒKK–F™×ÕI_"õŸ´5{Îô­š°µê1ùTÇO”õì "{òÈÆW±•ô›j]qS¿¾åÑÍru  ññ³Ö‚Ü´ágZ…¶Hz{PïeƒšnUÐ ÕÅß5MønWH>ÚOmí¡NZû(0l‡¾zª—@È“mÜßð‰+8Ø÷PbC‡í®í')uÒ¢½Ê$JJÖ—‰w?²KnV ¾bUYõŒ”ý¸ŒÙ×A—½­ÞÝÕ“T=?ºhÙ ª€RÑÊiÞêVª@7키¼3+òñÃɇ8XÚå"f², 8%±†êƒpë`ï¬qç«ÊWe1hxS·‡(^µÎùröÓÁò4+/·k¶ìš:ÙésN´Pu±Vú‹„ÍJ'47Vlñ2ØQ°£â‚`‹W©ëzÎa'‚ZQÝÀ•ºF{ì^¢%8iê7sÙ¯ù8É a|Ô‚§C*ºËÆXo]…#vµHôÞ•Ðâ8å§$ƒ ͤî|lñ†#LUÒêG­›ëîºgbp쨛šjÏ8…_S+ã*¸5D¤-çm“0¦Ã)¶lôn]E3¾àAóÔ¹O툋Uõ믒´,NŠðz@à¬yõdâûœÓ܉àØI¥W<´U¶éœV|2%Wò ¬"«ca„y`mI-“û¼.rrö&$Õ):‘ê'u¾Y=|óQê©~åû>CìÍAãÖ‘szR{š‡e«ùg þÝ9¥ä«LrˆiÕ—úhäQä3)qýªXD†Ý]ã™z©½ R…÷B)/$°žJMíVÍ¥Ìd7~üµ|¨# µîjYqÁË iì8~|‡U³Ï˸¡zÚ_ØKñ(ÃÏl7 yQRÏ‘Ä/øÙÉôH§¿ÂÚÞÃfk⵪ €áB¤XŸ†‰•¸àáÇ5Õ^ds³€«b§Äýê8–Æ tXÖ#p bÑÖnAd*ñ²Èñ3©nR€ð#ãJc¤“BúV˜KIKåк–¤€¯àüOõ ãAÛ{9èØçã½tË«ÅþS=˜I¾îdcÝñ¸ïÝB>‹+E°ªvÚõ•“MÜ4ÅÊWx(lùeU¦ÎÔÂà >§½^÷-d·W`„}yÈälåGÏmbIêA ±ÚV ô™$®ê©žad¶„uè¦z¾pŒõH?§"N> yO”µ֡׆Ý F.±ªâ·ƒU¶b4¯o+§ 9Lòƒ€$Èq<Ƴ~sDɹçPí ™ë;¾Úz†×|GvÑC~⾊·nŒšùu4Áÿˆ}ܵXßÝ—¤ÍÚzÔެÊb™ß>Gcä¥iEKD¶Ð"§“ìVôE6ŒöêƒxâQqêÄ»{K©f?‡ŒCí %w57½ÝZC³|–oC|.³Õí±ÁºGÙ=N~ š­ÂâŠ.Ĭư䷳–=wöTE¿vÇwM=Ž”­ØÛyžÒýœ.2Çz<[Ùð1ËGi-RJïžMÃ+϶škqßp¼_«äÎí`ã°½¤+v³KŸì~5aV¯I÷·)õÕçry|¨ÐR™gã˜2Í:Vûð' °ÊMéÛSê§ÿX…—VVEàEÀTká0ÍCZ5AO&‘Ò”io €µ +p60 T˜ÝhßÓýšÅI¼ä&ۇà ‡OHfEËb¶½Ê3çCÎÉJ âß•ìG‹Ü8 VÞ¨›ø'â$“Ù¢cÍç8¥@®eÇóîuqíÙ`¡dz{ìwϦºBÁ`êò¾‡¢±hÈ:žªJÍ“T#ÖÃoΜ³œ­c‡g¬¬|qœö Ýî–…¢²oÛI|Ú€Õ‡z-%YxUv§ØÇÅß¶ÚjÆãÜoi†#ûN`Y¿¨ÖY,œÝ­¯”_ È‹[ËžEe­5!óCI3öÏßm33ÛHšã»²êÄq•²`¡\Üò˜±Fðë´UuRØ*Q#ÙåPaØ_°Oi @Ö+µVg€[e5ßÁSœª`m¹­EWÓ×V‡Ýص^Êð4ŽãEÎGaò•‚ð–i*oz¾ÓÂä¾=¶Ç]бq„t–P<µ+1RKƒØEs‹–‚·ê´Ü<šÎƒ\šrƒ]„¤42µ×‡7lWezá [ŒÙ\ùGùÇn4•^·îX”î³ÛÁR‘{MÆ$B0®­rC*CoBg‡(Ù-ù±£|÷²n‡xLÛCj5l¿ˆféU:©‚ÇÚV˜l/TæŽÔï X˜B¼|¹þúŒÇ¡ö 3,r¼Š0Æ*pp+¤Ñì³ ºòŸ\*Ѹ›"|¢ è Ïs¦-m*àñy?•BÓ€Osâ6m]à5nêùÎh¬} K‘ýÏQB²}ÜHzEÇVT¶öàÅU²äyísênVÞÂàìQ¬D9x¼:¶1àsO–•ìTäYJäƒmC„4A‚ݰEÿóÓq:Õ_²+ÊQdÒ3¯”ÝaqI‚h“Jì™xªó£pßE`X¶?sv‹È–‚-pd¼°X¥²<ĴȽQ.Oãe%]*Õ>ÞïÛ$´ÉN& ÄGªE¨0OkâÊÞù~3¨úq“þz—Ž‹@Š–$rÖo?zÊ–9üPLÑõÊZkºLÛX‘ͲºÔŽa\ÇÞÜÙ±íL˜ßÑK8KÐ}YçÍŽü8°ÅFAp-á>ö‹›ÙJXIÔy#°Ò•SÖ}›lù¨¸¹ßz˜[õÔùƒ‘û$ƒz{°wGT‡ŽåÛÄ*¶¸‰—`¨réÅéýqö¸ ÇÉAëÀ«wI—åPÒ{évýíY’îë–²Õ±1 ÆhG¸G$ž„@ eŸmœÅ}Ò=,³Ö‘2ÉÙKÅçö6ZF„"y¼²V¨È€#C×P)ô¿+›9ؽÙJËSŠ^À>YŽ`y{ÐæÐ*”Û„ ‹ïw3l¿û€ÿ°¶¶ÿ饄äõŸý¯þí¬Pü1Ãöoÿå§ðOîgBíÿòË?üéŸýò_ÿ“c7ñúÏþÆÐ™ùÓ÷G¿ÿ‡¿úã_ýú§ÿîOÿèOÿòWð¯~úßýå_þåÿá/ÿì/þɯÿâïx×?ûå/Ï<×ý˜ÿÍûßÿ—ÿõñÓÿú¿ø¯ÿÏ?ý¿ü“_þú÷ÿè§ÿö/þÅýêþí|ØîxÉoæÁþàOÿäτ˟ý“sò—¿üõŸsaÿò×úÇ?ýW럿û¿ù¯ÿùOkþâŸÏ3öú?þäœÖŸýoùé_þÁ¯ÿØ»ûßüôç¿ù¯?úýßü׿øÍýæ_ýo~ü×?ùÛf¬ÎPSý{†šþÉýŸÿ;cC}*è§Ê[û“ÿüÿ‹é¡_÷°¿9_ô·ÏûüvÖë7oþ¯Ïý³?ç!þþ¯ÿð7ñwÏxý{ŒœýßþúPÙÿë÷À¨?ýPñ'ñáOÄãÿ÷ÿOÃCÝQ ÿÏ:²Ê0j…X>³(þäBBõì^$}‘Z3¿‰UQ›x´B¤ƒÃ¥b¹¯`kšDu=lÈ\ÅOãš$ÿŸ§|vœnM²¶5(¹ùUY‡ôáOˆ ÅÁ0ßyé´ñ å'š9è·MÚœjpÀ›`á…0«­`‚2‚3†#°¢Öïw_ª³B8?%°€ÍÓµÒ@QÎU?Ž(hx+0®íOzŽžÃ˜]k;˜Svµ‹Kİ¥ânkÛr(üÄ’WHº9jBÈv–’¯gxÚQ”Ê5Úeö•±•ù?à£E={n•hù\@Ó¶½†Üóú#(qc}qñ8»ð;öÉQáaOÓ’V-< ]§wاWóŽÐ.ÇäukZéÚÂá«ÛV=Æø>Û6¦+d”*4ðXÖ(`“øý—nMO|ðà`½¢\úÍMx¶FÈÙkTËR‡{!e*B{&i÷É?Ï×-4åˆ ·¯hþœ ¼ûòøõ ëdµÂ¥;7[òÇA›ØpÛXeß@>yf….ƒãµ7~©ó¿zS+©p[úPWy:'î­^" ” âïʼö@ M°K@yßÿ³åÆ6¬­ÞÑ–ºtÕV©×bË2 €óÖ8-ƤèÕm×LÓûânÛ:ìáq†®@¶½>öèÙ¶Ï;ϼ‡Q¶=ØI™Ž·­;]P’ì‚n'M—Ÿœ=,ŸAÇû8íùç!|Å Éïc›Þ%‰´½”6”t}KÇ&Ü9Ai–¹ö;[Ô¨\0ëç2ئ ·ÐNV¢^0 κ+ŸSkÜä“×ø+Yý¬H½¸oê"î!.ÐU‚’mKecjuF0BYì’”¸¸¹ ÙÀñyì$ LÒ·ö2z@ÇÊ<ðý\ ¾Ï‚“BGŸ>ý ÝvÛW„îxÛ“8ÒkÙëøQÊî¢ê±¡A…KBp0âETî']>¶Ã­4•Þ ,xnI[¾ÎÒ{ë~v¡’Úl+´Í”ôø±Ê¸’8ðžNÉÞä•ÏÞ#r»ó·öýT‘ûpó²ìUDó|Ϻ0àåPAS\xíYTaÖØËþº€„Ï6ç¹;= y³fùRƒt¼!9yšâ1ŸÂ¦Ï€Ž â?9,"6á«*KÇ£%Gñ,.§CùN‡‹ýJœ¿Ë£†š[Ií硆2+q[gþl y¶3y€Š¯ì«© Wد°'"±¿­èô^Ã8›Õõ€Ç z[üFì@r-¤’Ρ_©<µVI”ñ¥ÙÆÅbøl˜™V¨¿ÄêŽü¢®X¶…”z;ñáÉ{6ðX4µvx…:è‹ã’Ìê@TȣΎGëNÖ#óeGñÝUâ&^‡/ó˰Ožï‘?8,5šßFZõnXÅ$©uVy.¾>Gfìì™ÁÆV2[‡e¿ÂqÓuzÄùµf_v¢KbÖg#~ì—ª‹Ñâp zZ¹Œ¢åѧ’4º&ßW¼€üÚb ©áQø^ÏÉËém»šØ¾ØÈÉúÉl´0ÐV!x¾3x(ö¹Þöž-¬ ìR¿"ÜjÖbÙ3°»„¨„ƒ5>‡ÊÕ©b‡ìtÔö!0´OÿÁâü¿¾ŽRE’c S±ª4DOoX Êí:÷b½ê—ê8Ñs¹ƒ=nYrÞèÒ¥@5|mU!5ZA8ù|«T5nàžê,–"4fx6W<ëC~m¿ê­=(ðÞ€Ÿ¯¾<Õ& žÑ3XHSënUÛ‹Œ/a-³Ö’ÍPB;\×í|ß³¾¤(¹( Ô†v0F-f6ēݡ•U9:kAÕÜÍ›"o;XŒs.FÇJÏ<-‘i<õ{¥4»¾í?S0ÛbÌãSñ‘ ^NÊJ®î÷ºIÂåžÑˆ[yÄŠ’t͘G³«îÓOŽ Íw¬Ù$±ÎYò‹dÜâ8ε–Û–$«Õ~—=®L›j: äÍõèòãH#pų B§^00ÀëÑ ÷Óa¤D¥yù§:ãCâ .[7ÌÿàUO œÉ!¸*Š»Ø¼žæ‚rpŽƒ¸æ@ ØøÌoìêÉR¶qTÉ^•¥¨MwžWmRKéûKqlðMÐßÓ>n§3 ŒwÖOKκÜÔ–02 œœd_¬3ÞDôÒ\…÷OgõÛ@ú²8ôË;"o¶LÜü€Þ ö„Û&ߣ¾\ÁsU.\ðA2(Ä/V§³ãôfíDqÆšW #{íßãÉ-xX’ÀÓÙæSC ¢tü˜xÁ†û¼­Yí6d{îf³“‚ NXP] |[– +×Ó¹`ÿGW»&²9Ù¶QER £E¥Ïv*¢›âZ‹ž­f8ʹ ÔÁ-Y„›åT¿Ç¼nh3dm£8·Xb‘*ÌÊnü쇘JM!¶f%ZE×[Í %}a57' B8 §«ƒ Æõµó®ZÊëÜË[f-%áÜJs>!œc»{Óˆüèì}þþ²jÆ9o°éô¸~ ðá<>ðuØÞ<ǯxyJ:Æ`Š:¸ .¼ìCŸùñ$Ôe&ê£!ÜKjK›«¶Ý·dîG§å"ÿ9»qÅñÃbzDº-.i++Fƒ"]¶¸ìQMÝs6([$§ÇÓ¥¨a¥’þb[ššõ†ßsŸ3Ù¥÷NÙü?’oú[sëiè€æs‹Pt烒Tūý´–b$þ·|l†;ûp ¿`”Õá'}ð/Þˆ\)~¶ÿܺ«]{, <Ü'ÙŽŸt¡‹*zÏÞÑŸÞ¥¼ŸèpX¯ØYýR×[ƒ?åuÉ‹ê¶h°¡Bºˆé2Æ;/á„&½éŸo^,ÜåQYæ.ÚüòX«cT@ë` ëdìË;5³dµWÿ†ÿíÐ;AŽ1ÚϺMÍ![ð™ |š`wç5 ŠVnN­TWJw`#"kÊ€”‡­q20ÓÉ¢=Û™ƒ¾o¨^=©:÷l·©6¥¾y Håš:{Ê"¬w’Îú*¶nöä…¶.ð ”0¿3FÑá<¯fuC“W»—¬èè £ªSÑ<è ÎuUÇÈûÑ?H_MÝm@ôlè­á’ÚÐ#c!XÕ£n€è°5ð”í&J ©fD¼Ó{S3\…q¿ÇãE¨cû¯ƒÍúôñænL´æ¹U ¼¿ |ðJ˜´0 86ÄÖyìø!òê`Jy›b÷@Ç…#+Ÿ žÿ©«­¼?ùàÕñO×ë¡eA³+‹¬ŠÐ pH¹ñ²ÈÚ€8^dmñY …„ÁHPîà8ƒÆšCëÓ^ªÖ2•ͳ;®$Ñ#_‡6:¶'ÇÍPûR½ºÙÊ6×Àdû¢È5~±Ž4/Ôßf:^Šp_ëÎk~j»Ûï¤ôà'J¶—¤Õ£}›–e4'åÉ5IZÞÔ|¯’ÏRã‹­ »vl°(V­ºÕÔ®[x±u ÆâÃ[_ZªÚû5´gwè0Iù-Å>É Nf RNYÙXðj¶;x,m7Z¸ãõ²9áŸúû¤ÞS¾é‡/Â<®Ëóî혘úßlf,îbB!ZWëúZ$Ç#6Ï*´-ÄIÒfQ/N Ìoðݶ€ ÕžëSè+‹Œ@ƒÄmòFp¨¡.…µµ_÷­ ÁŒ§¹œ¬!°L†­7À ˜äó¨b jŸSÒçrx*ˆq¼‡›7Ÿ¶àM n^ÑRæÁÆÊ­wycÉÞüÔ$)é¾4æ{ë„;µËŠZÏý¢ð§-¥ÎˆH¤Ey`bJ8&bp,z±=t‡ÐëHeÇ»дˆ}ú㼃f‡„0~×Ù’\ÌSÓü*åIZGO€yy£‹ãSÖÆic;ºûûŠÖÁmK&v#ÔgX†Ñ3Ûa%ƒài¶¾>ǹÑų/Ö‘M8ËUÐç呿âä ªÒ,Ý%^íëªtÐ.Ìc0}¹_eƉXpÏò]7<$uÏyœ^yôô&’ÉH¤üpžÿ|F³¥lÙ®ÿe32[ÛbœÓò„×6äª9¿Mü³´ßCάGn&žÞñ`¹–ëlÝO­[äœÀ>uhàÕd0}’•³‡f³x·s¯á34q=xò|Uqùh>ÝRL^ôéÔhg‡Ã¼´ª«Ü§Š 4ÈúæÏzpË Ô€¹vû¡É÷ãôv¬¥ôA"~zrÕŠ^*¹Ê&]×N§–Ä—ä¤ÁÛR°I àUˆ>ÐÇ;pà3¸ íÓ¨˜wÒCµ 2»5çŸx<:÷ÓŠÕœK“UöRîäe—2²ý@6÷žñ»¸ ç£¡<Á‡ª0Î\L=«ðº×M˜à žSÓÜ/‚¬•—gs9+ºÿWÆcY]s›KÄ1š*9Já©XЬêÀó«3y‚D–Šà¦×27Ô-š8~$#϶‡i²ÈËP)ÈYsq °cµc¾àáCªÞ”Þ–É:’%6ÞyWUÍ?ŸÄ‹wà£LMåÚ«OÈ\Æû¾meóŽëK‹‡†ì½¿?…îÔ¶€mWŸÓ¯¯„JÐc8›Mζ4ªV² ïQ&ÉzSÈE!x…vÉ¢2èàÐ|§hbWuM+ÚYÖKy>IMrnà<¾“UHàÌqö®„ÏjEâÈÔQ–ä¹ê*AáðOˆ_³e”@2…-ÅÔ¸»äÉ.·óoýÍå z ɾ’ÐQ¸¿X$µ:©ƒ#Ðð€¼9sê1òiÀqk£ôC< I-0IQOôÕ-“,ATo€æ.ÈzÕ©2A“fƒóiÉæÜluëåB.ׄ>Èà6@’qÚØ¼ƒç¼¬[˜\ \z$"XH!Úc»Ý åqT@»=D29ñÖRnÖ<†Tî ü¤¦‡gì$q–uU².9“÷ñ ôX€õó€ìÝÄ)§{—«‰\×?9sištÚ(þéþGÌϺnm†N!Mýl ôQj­ü=JÑó›ïª$]¶è¶õš‹ÂÇî÷Ò»îc¿õ°«§b¨ ÚÁž N-“©ÒbAÙÕðéP£ÅŸé²õê{AÌÉA‰ü%ˆré4ÕMS“GìhGxuO¯‹=Sô¦\–šš‚_\ÇaŽNéYlfC[ð¡Ü;ïG^vÐ’ ã¥f5R@D­pþå¶ÏþÐ^2U_b+‡ Þü. 1²Z¹Ð,Ìý9W1®Êú×:æ•7=·5oÜÅÙô_ù´ \ER3+…xœ‚h'¹ñ\>ãŒbÒcp©ä S€/NTådcÏ·©ÎX%'»çE¶qšBŸo°’§Oo „âào’Ã6žÊf­ õ¡_õ}Œ‰Õ³©«KÕ_r2÷VÑøUõoUlæõyièCöq–ã0²ÏL£Â¸O\Z›k`«­Ûæ#·x°#A%²ZA ¯ÒL޾ž‹v}Mö˜·áxï-ÞuuÔT¦úgçÍØ…Y7àŸ<¸u™#Þ6öR.²—˼j¯'Yñq*Ä#!}š•e!?9ªrî„™CÜêÑBÔ¬Zì^½¶í#™¨tÏ÷Œî*67 L¡e5':8¬šËL!¢$D}޹õseECþ¶PÛ¼–ðªªÂ²ÚƒŠ‚¼ÆÉ«Wpæw]”¿û€¿ÑIúw; üóþüüËßæ€p~á¥wöŸ†‚oö7þáß׈}‡xÞêßp@ø½òÓïAÍ*¹üT{ÿGk€àÚþû ø÷ÿ([§³+âYÖá§_üköýŸüÑ/ÿåŸûƒó·ñ¯þöÇËûÍ_§Ÿ~ñûƳùÕŸý?~û—ù§_°¿ÿø÷û7•ßæ‡þôûWí§_üÙýþŸý«ßþÍóÓ/þ§_þúOûý§_ógîøþ?þößY:¿øóõë_þì'¸œù§ñëßþÅÍ_üê/ö\ÛŸ±{~óçŸù—ıßü ×úË¿v“…Ký“_ýüBº¿ôÇ¿úƒ?ý£?ýí/V.ç—ÿÃ_°^ó7ÜÑ÷›?5®å¿üíŸøŒÿæ7z¸µÿö·â'ÿÙoþÔ¹Äwÿìþô׿½ˆÎUýö w¾ê_üöO|øüæO®¢_üáÏþè…þì>´Ÿý‘/ÿ¿ÿì<°õ³?r1¿úÙùÚ?úÙùÞ?þí#ßû'?û#ßû§?û#ßû¯öG¾è×?û£/ægä­üùÏþÈÍÿÅoÿ˜¸æñëßÿƒ_þµ5ù/~ÿgšÊ_ýÜoWñÿÿ½=¬æjeàQŒf¤¹Dòj—Ç*Y½…¾5j¿e„ gém©P­5Á’Ò«øz«ž¨Ô;Tä·‡b—çêÖIF¶“D¯}Ã¤Š¶Ê¼k´3IwÛ¨6Æ»¼UQÝ>œ•[п’¦C¤ž‰Ù¶ìiuܪ*l눚.ÒÏ»t§¯PëДÞY°#hQÐ9^®yðíÿÜaŸ„N”Bí!ÃñS[J¦Å粤Gá¿+«GÓ»¥RîT µµÕ ~E>€VØåxöØYu+È¥;ię̂¡›¼x5²R†Ìܼˆ¢ÂDTd6|£Jè”%Qq©ÉZ¡ÞÙfË‘ô9j852Ph=ª?bÓ³C²o{àPñ»ÖN´/üœ`ŽïÈ_¯Ü­Œ®<‡'qõHE«We›ÖÝx½ßÁËW{Ó.íVZ¸àMZÕ+Tþ„{Ä!³§Oi- =Ös½]LSõt•Qå•ã.íb]uø³„-X{PÉ~lýS™O¨+ëÅYÊàÔnÛG¿"*˜8sªq_‰zªëçP¹{vÕ=§…~m˹ó9I+h…öwñs>YC€ üèÕõQȶùÆžÇNÆœT¢lŽ~h#¶†@«‡Ö>™£“:{×f?o{ž$ýí6Ÿìí óìKÏÛ®¸!—úSx§oíC¨ÌÔá¾T×ÓíâTDTöÃÖæªü²× –©FrËÅãûžî¤þŠÚ8ž¯^ÛC¿»{¨˜mHc•²Œƒø¬ÖèÚQb›Ÿâz·RÅjâÅY/Ö‚íMŠpI¯g!ƒE¨Øòý6…!ôŒ¹= ìêœ6{ü¶³Çû¨â_s€¾^=UG>Ã)ž\ {©çŠC1Á:ƒÃÇ՗ʺH¬–Îk:ÁŽªÉàÁ¨UÀ[}ÙP§En{Äú•}×9Ú®õeÉŽÆÛåÍÅ÷]×m÷=ï~× Ï.ì†TÌ}¾w';kç?_ÞÚÆ´äòv’hioÑÓõé·2Æe}òŸÁòqà)±‡vÜž©&;Å7f°"ë*<.K‚»Pî}¯ãF£Æ—"¬Sˆ}t,‰½È‹IùÚ¸jM:x1‰ØÑ•Ìê3_ûùØbŽ_s“ú=6ƒ46Ȩóf™²âXG“üVqÁŽž=ôñž}]½‚mk`C;>¦g¦*ÄŽçÔϸ}Z½Úr]‹ŠØêüÅ»Å26ëÀÜ5ª"„o´&µYØ5 µe&Õ²»óÙßãë8ð)LûËmN¿œÑZ‰¢ Aq@˜xýèëÓŒ ÏûܶVÃz7é¤5;ãSYÀMSûulÊ©¼A5ì¤úï§ BÖ àõ®"ov|_Êq¼ª‡|êî’i¾0®aWªËx·Œ˜–‡FÏi•üâÛ}/AQ2,³hùNªT^î }{-‚,TU&pðâÔT56v‡šäÃgU'Ê3·}?sC~Jú'°ÆÔöåM|åþTÒ´Á¹ÞÅ¥­B­.àÄÄÉZ |ܘËònbbÕèÈáOxž¢Ï™èü–`GÉ“H2Ö7-›Ûdþé}Íô”u{ÈBZÃÇÕCb™nFeêi‡¼Cfݺ°MŽ=86E¨™¶¦«G¾)«• %tÞ¼x–ú Ìvs§h”Í ’ñ›Cm,É—7R.;ä‰UóÍjÅÊnûO1‘â; ØÓ© k--'9lpPþ3\A“å[·^²/qnŒÄó)ħò_üôÇÕƒÞÃÛµåÞÿ¦‚­ãiz[(çi)øðÚΜ•,ZÑv}ŠÖ½ô"Ó:õˆxÙÐϯrŸ3k`ÑÓCÈå —z’ÚZçí¹ÒÙ‡më]f}:Ø}Ô¯Ó2IÖ·'/Ê òˆÉSvFÞÏr nM¸Ø.ó0|–í¶ŒŽ,¯û— ¬jBµÄÅóÌÏ#q³ˆ³9·Z‚§éo†HÙåO4ƒ‡8H㺦Çú°‚@[|>ÛJ ·-‘jÛ{Ðc‹FÖ´DùЯ´ñmÅ='qêh‚yªþ<+ÙÆ ¤(íµó’T¯nfòùiÛñ®»Î·ù*¶Ÿ’”ÅP×*+[¦!ëœ Š¥ˆ«x6£ql&¹«›LšPﻺŽçÉ&T@™(z€¥›ièM¶_>/OÎΪä _;ftž8—¨*ÙY‹fMm’Raë®Cú!¥±6ªš,]'ùßÓÛ_oŸl9¯)¤Häò²OÏ*ÙtŽ3¥âŒa´«÷åöT¨íJùÎì¯àV½Å’¯÷ùœ§Yzè`jݪÐ+„ª’Û(%¯ÞxÊŽ,ïW%§¦ºA&Ûá\ÄŒVN3KkGÞÔ†¨™çÜ\áMÛ+y™A?»E%&²ß€b*¬LO‹“yì%h¨Ÿ5õiV¦ˆ´Æb¿µzÐL%²+ìÛÉãz;°ø(–{{ç6)«T‚QÀ±Ve‰sj=ÚÀs:ø³ƒ¼ùоÉ,õrùˆ¤X8¶$Ã3Õüãyâd¤Íc&9“´nuG¿oi[õ4e.½H‚ÃãH,†¬vwƒöÑfà?ý’m]€#‚Då³.åñ {­jó¥3ñ—UåùŽœÛk_ˆÚ’v!G£â7.ËÀr­W´{?i‹ÅÚÊ\üÔ·ì›ì:òÊØG¿…t¼„Ëv¿ð‚çvOJò1Þ(%m4¢þì ¹9÷K¾÷P‚Õ³uextà©_\çU ¿÷"dØîËxõX÷ ¦÷f{²¿e€W™*Dìb'+ïY42õÏš–ì|ª«E6hìÉïÅ™ÈM·mÙ¼Ü`³…ôêtxá vR¨×Žú¬NôPönžDb%8»ù9úçwò¨ð¨¨†%ÌqÈ'ôk9Å5tÝŠöbH¢èýcû5a’½°œêuÚ!Ënæ5ªîKÓŽÄÍîÔ¿™Øóv æ9’Ö<Öñػٽ$˜sßI;[˶¶U<­wÞwÞ.÷oPƒÜŸY@=\Vªœ¯%„|W{Џ`ò¬Mn²ÇÆÞí°õ½ˆB,v` ¤«nGË”¹\QùkIŸÞ¤&ÍWB «)€È£ƒ†ôƺ[Ž~µu9Æ-õ%(¿Îƒo 1è{á ˆ·}¼ê BÝWµØ¶ÀkÑjβ§\ŽÀ¾ .Õu@„kåO\#°ï­}IJ(ôŽ¢ÏI ÝxÉÖúÆ v¿ Q¯lÇ™>=Üê3ÌäÑ#ÊHˆV%í›…M:2:Ëù‚N®¬ZöǺº=®Ðö‘¸PÙº•”OG}h‘ùзÝ·®b¬HÃúÇM=Ñ¢†ã[]ݦzk.ä¥Ú«yƒL”Ьµ@bF·›•H¦½?C0‰¡XTŒÎXN¿%:Gæ¸iw0ƒuñö{Uõwmx,äª#Þ¥ !QÚI­aÕ~Û 0,o(õ§†•¼›Ÿë㈭#E<þ¨pÐh—¼@šµ­’bô°ë­Õ;瑎¼”£¯]ï2²º”S±ùÑ®c¤“,Îÿ>>ZŸ¼½ã‹¹ÜÂÝf—ÓÚ¡Æ{D$`àšÌ:—”¾B^ö5Ñ;sn›¯òv0l°µß”u}Óù—4Ed®‹%–¯¹î× øuö´N'ÿ0ñ{²~QÛ9_xMU/°>k©j?ÁÛ$G”!n'ƒ¡–“MÆ }’œÍš³f¦¡øÍ½(¿Lhl`ŠyÙÓPôéìZðH\>Øxía-oÕê”Fšº±6ǯ”Ñc±.R{ÒânWèì´[ûNÕø:xç¢P•8YºªuÔ­sh ÂCG¥.—Ú1 ¬7I+ò®wå±óBy°Õ²ƒDtôçºAÈÑÀIؾßk\ÄÎ[·ë *iS?ü‘ì¨{GÞkùi8íØ‹¶÷;—®¦rÃND*sùGæ]½¿Ze[Ñ#°yð“ÂÅ~v2}ãî’¢{Ó9ФûCiªaÏçREŸ©©uÂ/déܶ':›N~Àá<{i%+‘4Z ÁÞfH¨¥"°òQå‚G5Ë;[‘™YGVWƒMçlv– \ó +^ÙK ¢p8;¹)Ÿ¯ÓØÙQžªr$䶿ʆ®ôTn뽂z!ɦNh}ŠÅgзÞ6zMóÙ²kë’*pöª}Ž¢+Å;HªÊ­cÏ:ne?”üo,ðê6ôXM†S«I ̱ÜÊ#κ¾6º‘U3ܪ¦×[»+ØxÝ]±ÂœÌDð;>Ó…jÏm× ]{Ù6?T6!µÎáÇóDmû³‘œµ$ðòü€âBa¯ßÖ€â­ê¢ íëºj°`MǾYéðaÐÝè¯2tp´¯ù™ šíTº·ìнçEÔ¨§¸"ƒ,G à A<¹€:#TF}À”àˆºý”@p¥Ë¯ïÌÔEûŒ¹Ö¤˰ùŸàeË™òº¶eåÿIÿZ‚å™î"þ€‘’¹˜n{}Ù ›×$’­Tg‰óˆƒ‚Í#_¾3ëwÄp_@Î­Ï›Æ m“.Hú`_àÃj_Ò7ïXu¾–¤¼õÔñó%°‚/„S¢»«ÛÃnÚöª·“Õm.wr@†ÌLÝ7ÔæmÇŽ,ë(Û$k%8‡î¤õ™œåÐ79ãØíÚ”>u)A7Œö.÷Åg䆑‘ÇAüqw§ÙYêkÛçxÈ yœðÿ(ŽF+þ­hª¥^ûP­¿Y2ò0êèy`áÊš¸›j;U9‘ 9Þ‚I¿ËZÚp|0.`2¹ñqľד#@Õ²„ŽŠì§ÅY:¼¸¶@ y”K×±§CÙ®ÓiETÔÐÓutŸ1Þ'”Ñ G-x—Ílüý=nGëYÙhÿYö¿J²ƒ¶–6a:Ñ“à_iz~vdVá“ëÖ©JÙª]æ¨õX%l…4Ä0ªŠØ*äˆbè®Îì(ùT&ÛÙDGúlG¥ËÃ׆9>ŽTЉ6½²ûb<…8iyù¬új̬ÃÔ³#ðo=xL\N:,—§}Ú%‘ë»n$Áq‹ûëQ ’-<¥£ü\ÏàÙÅÁMæã¦ö*$ñNød²¿ ÏSÍqQ±4ìô„ªJ~ß—j# E¸<añÜ„Uªx¡ZUjˆ q ó[‰4UÙïNæ¼ö°3^p¼Ž•¨’è°÷·jä–´pDþ…6¾z¸Ý1ƒsªHÕ.‚Åóê4@¬° ö!Ý¢7É#/œnð…ˆd„4 X;¹.ÙÆ­su™u׿…Bù…’ žšÈŠe…©ÜïµÕÙ×ôµ°¾}:PPg5x¡ñ2…ïÇ`üæšµ±Þ”³éJËRÓÖa æ…=z2üD¢è[%íŸT!‹ŒLWöeK@j÷` ·—3æAo¨õ©^Ozog¤£:ÕÂQ'^mG‡’™qŠëÚ÷¨5÷’uØØ_aUòúÆ»½»¾ÆìˆÓ„_,ælƒqi²Ô^ µnË+dñÙhJM&õóœ ™9OÉ+[:`‚§ôñ¹Ò$f{fýê·H‚Ýw¢n»!Óñ*Ï›•±@;™ðáPRunñ!Ú8ÿÏ… Ø%ìï ¨øœ$Ë6»ºÞŽ¡:‘O>âñÏË&{ûm‡cÁäní ‰¼·©fB|ëoxó-^p?\fÿêõivö@ï«8=…{Õ›Qþ·[Òs|ز¾žÎû©:j™óÊÒ.H‘øù‚‡û(Z=oÏ+»H32kfëÇäÀQ?hY‘@@¤âb®öª23ž“Ën8 ÿ¹Éd]=ânXJC±®o…®{À•;8ÒuyDöy®YÑc½«g ÷)-Ï'`ôS…¯Š4dÒŒZ¹wÓÊ]¡‘½‡UŠÏ—mú@’!ŸÜÇveõÆÈDsçç•=´~C[Æ’»]Ú•ïsH‹ƒÛF’Þò[ÇlƒÜNÇÇ \8‚½/¹0Jí/ËÉòßøá(©|–“G5f´í«xî¸1¾X'ª 5‘“rö¤Ü/Ê´Ôs”—7€qzñ;6TkG uy©ËSc¢|.kgv•ÏÑ¿¹ôÉæÞË3‚®?ý†E¨c7 |ŸÆ`§ ?NòBÇøô8x žžÌ{µ¥yÛ‘öØ.;IíÆ'²è1(×LÃy è\µy%Åò/ÑöÊoGÛ”5yYlAè =~èÊ“ñ\TЂyßj´¯+|¼"Hô$©:¾cÔy7_cë(ö°ÑÕ2<ÁŒùÖ.ÑÅ®Áä²íÝ5#ö¨¸Äf¡ ÕmNoˆuÕ¦îBæõOE [cÅÌç­çh͹R ©ƒå±:X±èn’>\ý3ˆ–¬h¥…58vMÁ'ÏãjE»oS[èU߇uFªWLœDÊ.&3(€ðÚfÚ§PRU``²ÿ«\ãñ@y‡§Ž/ê}çø)x~Â>d?e9eõYÎæAûò§=n×?H Õ¯xi¤Ð¦µ“Ñá´…k¿K'šCo Ú]û‚ >gM+±;!pÖipÃg 7y¶ô’X¹…æ¤åó[b «sè!oeŒÿX[{80Ç£cÁ4ªÚö𹺴lè‹°$·þ€ÑθÍyi÷¥ûeÈÊøgŒMkÇHÕÎH~ aâéÎ3P3T% Ýk k·ËA -/ß#•uçG·ÛçiK5O'œé/¢¼¦ CCõ¥=ö"±XéÌ„¿à¼;/)ÿ3ìŒÉ*MâÄ:Ö„ífA…»©Å)ÇKa@ÂOWïÂ2¤2ýÀîàØ Ë#7‹!R01.Ü[¥HrBq±ßÈóS)xÏë,´¾~ÏÃÇ ;%Ä!UJuñâÜÎü)?òV°tŸrñ´‹üsëÛ«ZH¬¦ìèP7á[ “­ªOO¦à×7qAµ‰g "vq`3‚y$Ã3Ÿõ) D:* h™B0íΰo>|ÒØ3—q hËWd>ý5!ýŸ¦š;Ï$ê&†þnÀ×<ªa©»?ˆ§ƒPU‹dmDt0´ƒÆ.9Å[Ìm] ""vtÞFýñÑâóϘì5Yy&”¢o c9¯¨épÒ†S‰ukoÊîê[=MçƒÁ{k;O#ÉË£Ûu›¨oÌM…Ôîá¦þ€d›ÉË–L¸ªF½S%À`ÆêGæF‰éÃSÈöžS& 6±)t¼qîK ¨ºH©žÐ':{G¦7»FÞ)¡2Æ‹¶3ZIˆ}mMkŽk¨á"ësØ=·%µWxdgO+H¯Îñk>-•.òUÀºu`½‡öS/UÖŠŒ–¯†úê‚moqó\CŸª§lß¿x\èØUê—À™@Ub}íKQ<ð2|žÐ§3ÜAœðAuÉá/c.Îlao<ñl-ÓOÅÚÍ> <`>L."å€1jÇÙLÐÚTà½mÏ«‹þ^¼™¥·‰™ˆäI×ëu5òñ·ä.ãw²!áìúyêb1Uu¾‡«‹J¿„ ·b†ßnš0NUmyð<ÃçÜÎ\TèUyî¬5¯ý“w±=p-*C/»¡¡…'Ú½VuÒc1¨ÉHGŠ«‚HȵžO{À(Ÿžf>ñK¥ûüU6¨³}ÚZÚy ¬`ôÓ-ý¥i=ÿ”ÇH° XŽu§•¦Ú¶¦h:ª¾4|ë=¦mz®Í†âñÙ¾öІ†¤YØa½»õÖ¦kXÙQÇ(|ÊJ!­Úó~ "pÍW”h:ª3)©@„/èyÆÒ%vÅÌz¸µæºüöF¥ä>|L÷1WiõTT`· „Ù®”Ò lšÊ’ýÚo =.þ‡~$&<¤;ãl:âz0o·šÝÂ<=Û<’~“v‰‚™$2d9_ȇµ€l¯ì_OÏ+›I/-5µ y°=€o•b¾O‡„6›‡[DXPJNð¿Yî[[Ç罯QHÑØöºr .·ÇŸJûœ 9C±å ô«ªäÍ/W¸×²S…%SøG+ ‹6=ò izn;‘–Ú\„ßS”ç MÔœÏ5,Ë ½!œ‘ÿH ¬òÀNÑñþ ºlÐ ÂÅçXDÐãë^‘m®×b†þ%Ί$9Ø é -Ûì­ïp{Û>û’*„üüP*yÌÃK*¢ƒ$vͶXɺ*é­y„¡­. œGx<Ën• X¾)ÛG½¯ƒòÜ%•Åín¯²±¾£ƒï™£ðÿ#ò¯Î¥51=Æ÷‡ÒQ ÐXxÆUý§bäö ØnÝMŠó¤Y€®Öh>P=J¶æÝ­’Ÿ¯÷Ø¿ð<8³ÂbÍfm…íçío}R‚ ;8á bìªð`×ûJR_¾Îv+Pá!Z¨ ¬ªZ¬W”1뱬ƒèëAõ«ìs|6ìÝ~ý}ÊNRˆ}“Fù䙨¹ì]ƒ„sN`V#º¾ìÖ9H¨ÂÖx©w©¨¬¾^c¾Šè7VÎá(J»ÏãlÀoMUÚêo‚Xø" ¸æz¬¡ Õ‚õúÐv=êÇ}l‚×¥øfSU,ÌФ²ëçèúÂÚ*ãî̪·nT;wºX>5½öÔ‚]®‘JfIÎhŸZ¶ÌP- SoåÛ4úå笛ƒUßf=ì ûñ¨+ò¤š>½ƒæy8!aæÿïcåG›º®¨«¦.vÑ€nè]?Î!Íæ1´Ón85ûì:¼‰>6 ’…4àм:w¢nùíÑœÀ Wa;ÙÎ6ûÔokü$ÐîLèå;‚çÑÃZb;ìRºy—(}µQòVþ÷³¿Î¡U„íFîÛÁÕ‚hÜo=êÉ"ÜYûú®¤c«4¦·ª.3· ¢ŽWA¥‹àñzfs·–vÓ3•GÞ¡úOÃj°V߆Gç.Ôˆ÷ $  7Z®ÀC`µ¼Z˃Q´Ã…åKB-ee€RÎ\mR8Xìó”–·z‰!9c1VW“\ ŒÖ·Šžª›=:­¡ìÎéÍC¤rüe…uÃ[¸ÅR)OíJ ]0d† “±?þ‚Gxò05xä7”2§_‚iH"ê]É–²* é÷P|«€« ÄÓÙÓSѽm’ t±\¯ _`œÉwNÃq N†ø¾z/fåã ïºQÃ×”åjù ¶›‰´¡ÃïcJþ,¸éÞ4ËÆkߪ5CÏÒ ¸°Ãç}e]þöOËä¨]$:c æº4NçVh¹EºõòIYÚêZºJ|Ï‘fTT¥ó'[ÕlÚ7Ï—bbaÛ*Ì£)„­÷½„K¬Ø¢·²–9¤ à èø;mŒß}ÀÓÜü¯þÙßþ­þåoÓ 9¿ðR+„;ûOC+Ä7û­ÿðï«ÒÏ?<­oõoj…ÄòÓïuÕ:ÿ«=é­Zˆ«ûïS áßÿ£¨…ü^Ìÿ$ä¿ßñ)š!ÏO¿ø×¿þÕÿu­Ž_þÑ/ÝV]iâo‘i÷UUë÷ŠgÈMƒ¯ò<Š0'(ß.m3б¿¹i:Èß;j÷ÙÐo õ“ TQÕ† —Û¡ç/HŒvßZ¥«ÃW–nqpc XWêaÆÚTl®?šxš-…]…Äû4¹Ä vø…­¹¿?´/+ê”:®ÕàRš|Y¤Ï[‡;þ¤D­çGÑ‘{¿¢‡Bvïi.ù7g’ì;yˆ¸_ªª yT yÀX•”uZcÛV¡È`÷H¤<•¸ßÝIê2 }Ö¯lt{úTC¹7kƒ¯ž·êšï÷pv“dÍÈ´X“]}áÓcÙ«Ï5=¦s ŠÛ0öyÀjai½ÍÑxëíÝsÍÝô>™ž$H“n»ÁçºÌgÒp~û´‡kmÍï>]á¦@¿˜mõª¤©Ù¨sÛQ·ÔXïE}oiv:§Vule&ß9Õúå8Œ-«m#çÎ *õéôň¥Ÿ©@DzÒŽVmªs j”¯ ůÃ{6ÓmM ò?ò£<ª¦ò~ ‘Ìm¹P·Ջ­9Pjë_ûZ‘‚8¯<«q8F[;Ï”Zü”ƒnéòüÌ8õ òb´3÷þT×ç ¾÷™ð˜Qô0í¥²±‚F]P<øtWcÿ´ŒgM›ßh+Sx‡Íµxœ:ŽnÓ‰çÝÓ.=T,½Ò.®" ÙCº{Õt‰¯ròR?J¥Žç<ׇè4úgñr³Uu°zd´©ºÊv~›žOÖ5Ngß´õ'jA­¡#ëåvx]1÷÷µ‘ Ž á½Â)û„ªhhYÕL;¢Ö~U9d+ô¬šê€¸'0°¢Û´S”¥sùŽ–P÷4¤1–ž]¦¾m®ýôÙ‚Ùg²[«i€áZ5ö|—bíÃ>Ìe{-÷NTz³ç%éóò1ùZôD²ðr¹øÄ½z¶ñÄtéxÿñêîÑÔw¥Y¢^GiÚÙ±•,%êô0<¹)ßÄ(uu4¼žwÜÞkdßÓŽÝN+Ç6_=7”¨]%:m¦ËçüNó(ÏÁ÷«œžÛ2Ë«Ò.wÀ=dzaѯÍß…ÝEÚÖÍß÷Ô‹`oéS]QcÏ7މž½†®u¡‡gS¿Z=ÝjζӰôÂÑ0GoÍ`«škÃ÷W»ŸÏ–ÛŸÓùÖaNÁq 8gש–©8ÅQ±x.ûþ¶£íWz–•Ëv*h=NÞµÛ©ÅÚò\¨œa×F ã5v²ºžS3¡Ç(kô³"ÓÈ À~ÙË­ú7ò=‹µ=76¥òur(¬ÎãX쑜¥|×^Ö§;±9¬»9Ÿk×ÙøÔ¹fSðúƒ«¸º_¢=¤99Ðýðèú5ÌzaX1XÎNý°ž"~é¦yóí6~†/4ØüãP˜‡·ª»ä > *¤½_OéxwO±Î.†ç»ÈˆF‹lÜ¥ú (² ×°Aè>}— Êzj¦>R ’9;jŽNmÑâ¦ðÌŽ$+í]÷ðúDÝÄ&Ø`]Qg^ZRLÇîáí ÷Ýsº]:+Œ;+ÚŽ®öG$å^¼Xwƒ~ +“É,÷©#o‹šÍ¤eÍŽgJ:¹pqÞ[ëGÕø¯¨…þ LPecê³Èí|;Ùñ•rØùuòHƒÇNºpêRôõ«{Üf×ã»e¿ ïkGlSV “9¾ÀSqâþ#¼gþG­[ÁHï/¡»Ó)}ɚʹ·ãJÃ>5Ý‘N9èÑÎoè€FÂ[€§àjKßeŸÛðˆO­á8x>z)âÊãJ²?Q7§¤ª2ü©â…½òù µ±;ôiý˜&l={ò¥)k^îfÞ•G$˜/ç²c¾¤N¼ÔÀ'aäf9­¥Ú§j7B"®/páVDcLg[õ‡cÕ‘µ‚‡-Ë3£+8@9–Z;츪Ãhµ[ѳ«Ížå[´æþ,Q³”íÂÕñ΢$p®IG´Þaô÷Õ¼¨¬OQLí)úШ’Çz$æóÊÇu7…k½,\* ?xJ1YìÿÕäd¢ðdA««`Çmà?4ªP°¹‹.Â¥Ž#žúÛ~fÓŠœÐ¦Ùc¡sF»Ž0Û.Ÿ€tň°Ï5?·öi#“•QvÒÏ3s{G€L¶­º| %T«‚R Ìùx2s-¹T~¶~Ä-Ý£9Â0“ÛùÇN´ë¸ ­"`8Üþhý¤N̲Ã×q„ÅžýTóñÔ6‘ðé:%uÂoaUzüHàD’n}¸ñz`'»Õw†9ß—˜I¼å³m%,°÷³í×!ÑÃõÙ–eqŒ%I.ëu?N³½}Ç×Kœ™VÄkͺ<±œéø¸´·ÛÇ—ÂVø×á3õªEçÀoà飪•]/ €“6í\í´â=ªÓ™[«¥`3G³Õ|ˆ©×NÈüß ø@:WÕ{åhçøÙaE 6Éö[•’c!“ؘÍA(6 K66¾2í@Ç¥o—r …¸DøÅþî>}SOMvÔ©’Óþ^Ý5H"ßR”!?ªqxzÕÜý-Þ³- Q…$ÀѦÑÕïN°ÙgÛ6PÚ«\€߸Ô!²óÞ¦'ûIi˜c¶ý‘,þâH@>Æè5* ÕÚ,¢åÉ7x`6¢Û:E¾úe8üÝæÜiäw !¼Ø¹?U³ŽæÊŽû)ÎQ;åÿèÎe:‚< ÆÓ‰Ê<ç[š@½µ»ÎжPcêvóiB36‰»²ÅTÏ:ÒÎÚ'g•ˆá2X‡KE7ÀÔ8Z=MBu¢«,ï6Ü‚=w!»6nëåöqy(á ¸Ôñ\…NÕOÞÆàmÁG[êEFîý·¹6Ï” @”ÜáÌ)O%)°€?õR<äÂT¢Ð#$58¤Ð­\68‘ ¹APÝŸ¯©ì#Ïê¤ržÝÏ.ÓXÑ* Y°Ï3ížÍ<Õ×rrúÍ£V ÅÙc~k|Ý$;Õ–>‡6€PÉÖ3Ÿ×Ýì٠ٵB`s‘•ë¤<ë ŽÐÔãÿÚùi›¦ÐoˆöOîˆé`^"!lÜVéîÉŸ¸)`É䙂5{tä^W'Õ.H8À—÷UÏI–b¶èÕ*ÁÆZÆ¥ÃûÑiòa6ðئ9"(ûAªšMH%S‚B¦t[<‹¢4»®^¸è©æ¨?Ꮉ 0‹kA\•¸-.do§©±½ÓwOåæÚ<% Œ2n~B½':p¤Vî±L¾Pzù’¾²ŠÎBÔ¹e@xQ$^EŠ­ÕII_âžÁ¾2›Í} ~íuÞdNÏë²ïèvƒ“H ³°¥–œµªUý y˜\Ïóüëî€+Ë@„‚|uÛ±rŸ“Ur[UO‹÷€·cÝ‘©÷±PòNÆüÏž~ËìÛÿ•lˆ*köÔ¨$/ÃVYÑÊ(œQã&óݯµÃ°M+dœnr_zƒJÖsω h˜’we ¯cˆ.bƒÖõš¼9at‹c€Ÿ$Ÿ«Ú€×œ¤V{-[¯mJƒSVÛÖiY"[‘¤p¤øE{ ÿ‘ä¶'NÃ(çR30Z-üh¥Æ€:ÈuÀªÏ‡Î½²l qª3]G;O—X}L•U·Éœ…ÇÒ–z^õÅX¡ T5ïOmJçë8&ÿY‰ —{Úâ¾FYĪ»ªÎü«¦L®‡VœC˜yíš Ûƒž*l¦èA«:ζޓ懢è¼;çæ– GÄüU½uû¶’Ãá.—¦~©$¡n\™½ó@ÙhäÒo9šSú-]ù&žh&®)=‚ò Öº‰‰Àž8<Û ί·D^ ‡ëGÞS«h™eöËÃ^oÑ?ûeמÎQ ’á ªC¬Š6üy¨u¥ÒšAoYe‰“ÇÝ€ÔaÚìJ_¥€Ô\&Ç:ßbo©XUž‡¬ŸiõüͲ£êJy}{Ïû U ˆõà‚b?f†ß+ÙD.U $ÿ“z_Ö R³4Á–u‚2v«ºÀ>ÿk¼úhûžØÄrVЪÄÓ"ªÂ1ÝzÓiP¸Š'N¤ ȲR:Ý©·ÄäÙ+ú5f…‘J4КҕbÜõ;®OÇ]!dR„ ѪCsy€á#tò)ŽS@¤yÀ'л±³,B×<å¾\„I»—‹‚åä@œ“æ™ð£Ò‘-+°ºt“?‚°DúçÓŒ‚„Qã„tyšIj‚…U–Ÿq_mj|‚Ü×c¤þòx4kt†+jßÐ_Ç*·~—Ʊð‰if…|<Òx‰¶çZ(u,VIû¥ {AðêTyÿXWjÌ9¹&àÅë Ô6˜ &õ?¹AÏ-“Ó \ÿ­9òs¿)‡O›f‘jVË"¼·p¾¾K9è'KØí™yôl„ u䞣CvÍóc÷Ñ.sœß#ð¡ÒrYQìïýˆº±Ús+‰(€§Ãªˆ/Ô£ìªô᥄®íSÝH?\–ÜlÆà®÷ìVܺõÇÖoØ#Ñœ‘å²ãÚó걡æ-d°\äVóa¬ï¬S#y…ϵ°CèSD ²óä©?ø½œ4¬¤*ëôó8[Àò4~dÍc³7«œÕÆrÌCiëP­ÚøøÜ6²;í’ V¶ƒÝ”BUäsÅH"Ÿúå>ßN¶ZöñÝç´o·©&Ï­Ÿôç#Z°B<ý²k´#L äÆ ™°å,{º•ÅÐ\à½À±Ü‘¦@çªÞë¬¾ì±¡Ž¨Cû¢:'Ÿ¹ Þ+@}Xù_vÒ{p>Ëþ–I¦ÑÍ›´Ë6 d E›b7fõ•dà|ƒÍì\?€û¬Ù¤@ÅPOŒum)ÄQ÷–{¯fÈü9ã~Æû[ÂA|ýÒä$ÆT¿ÉñêÀÎT[=;_ùæåuOÌb¶"¨€^4\Ö¥nÛ¬9EàÁ‡âUNyÏ@ˆQgi9sÔu»¯ßZN¦jÄùÚáÄ‹¾’v!·Þ kV­^BŸ’ÊÄë[²59<±³æ.Æ´Þ²LÕüÏ5Œ£˜å›ˆ×V½ÞG‹Vw…“ºÔ+W㛌%:[êƒzé@Ü•Dê "YˆD_>Ç©!.¾»©…Xc¶“üµ˜ËªýHÝKí†Txˆ «êüÝ]Nº&*­S¸5ƒý·Ú>ÕŸÄš¯Gĸýà¼6djq3ayå9ã †éǼEú–fh0à4­X(©cÎW£,*^öÉeB®N¬WÀl5?ÂÊ‚ç÷}Œâ4K¹'¦­å¨'Í "7FOYcŠ·Yg¢e*b›ÔwR>ÃF¡¦üWäÈãt D»Âˆ½£]P¤uO’ªìc6ËÖ¦–óNb!„§çW½~õ@ŽƒTi–ã”C¤‹DÏz‰´á9mq殨Q¶*ÕÎó›ðQH;ï8¬Û=AüRßÚq¨Ú³gP‘Z};¤Gô¹;OÚxWQ‹z/ÀŒÌ1Ô‰ÙGB§½Gu+©OPžª}à ø?€¶÷œ&tˆç"²5ÒÐŒâJç|_ß?`SL‚æ~÷~4bçRXXüNuj;ã}Cnœïá_ë¥ÆR ßö$x„}õS_t>/ÃúïíÇ?žwÉÛ€Tò;£e-Ky¸å4†g‡S ÔÍiïÑR6zLä©;П—HŠ¥Í7uijí¯ÃXd·ÖcÁ‘êmƒ#îVüœËêKu4T &M»½@Ò!€œÁ%¬š?l¦z„е{vb U«Ô TyÈQ5ªbE>UÕ±¼§ËÈs+çå‡ÚêÊ)kºÕèo·ƒä*þ,‰,·³œ¬6í?†^¸*y_×¼uPR‰ð¥H/W¢d}Õ*ÙÝÎ:ôÑÍÍŽVÏ+=o‹ \|Ó ˜8<4Ø€–N»e~'kz=}§ã€³$êãRd8Ôm?©öÛËÙHˆþX*åÛ3Àëe‰=Àïvú=‰”õC™ì´ˆ6ˆñáÊD‘ðÔL6üÅîD­s§Ÿî,µÂÿ–ÎÁÌdÿ‡ [<—®€œõØüAùï=þP,×Ãø¨a¹àò9u©#PÚ»ºÞÓ¦Pœ®µc©Äõ©—U«?fÉkõöñº¿¡÷Ãc+ ONÕœdËbÑœ¶\^ÛF̨´î²$ËJUïÑÐâ=£@ŠD]¥“‰Mqeاä8-ÙÖÊ×÷3ÒÎ[±5L}I©]ÓØt鸴'UõÓ’­_Uu)Õ 0™º$ú&K9%ÖST÷( ? kJ°­8ß±1..óS)Œœ pr¢Fö׿DK|ÕJk™@û\ŸO5iÏb¾«ŽÈªéÔ“åsäž7Ù¼)x'Õ#EÅi¥ š4Êe­_nØú¯m÷`Ù– …Škr]_›¿D]Û╪ÑäHÕ~‰`lE®JÌ,]¶¦‚„·ÚïoQ}™Ðíè…è¼ÕQ3ÞÔXN¯«*pûÎ6oe+oÕŠmlg°rØ|=É$ó°ƒÝ·VÜOóN‹•HÐú»ö2. PÊp±†‘„.q;Ä#H¸r&mÕÔ ·8+|Áõ6’ß&$µùVEÿ Õ#œ6“:Œºœ í=æ1XÖÒšMh9ý–²Á‡ç9Qµ–h«â«fÓ²ë8kg¨%Ï,åè)ÊP÷ É%³ó»gýÜ2ø¤—5ëÉÝÆÃñ5¦ÎãéïBÑÄAWŸae!C$‹~ç|î+O8%С ÇŠDÞGÝ0ÐòjöhõæáM¼<˜¢d* e‹ß(º¡‹Ö׌K+×M’!¤X>»iHêJLÁ5'Á!:壺;”¼ç@º;j1¶ìE‡ÎßpulZ°^Á‚±¥Æª€û§Ð!»ÆwöˆâtJ©;@$…újTO4R[ 8rqÉ#©}ÙÄl'uàfëvŠ$­3ƒ·’·ñ5½V´x#ïÐãy^ß 8|jÖØúì²Êy¨ïN%§üÝý_„\GLy‡ÎÇNE“Å;ݕʕälk.$O½.fñPTmø9¾|ìÇThPÝ€——| ËbsÂÒõ–Êv¸=Ŷ’æTVï;‡C¹ÓËãYK›D³»úвèŽ7‹†£¬ÌÄ´±™ä©öͰX{¶®²»ÿö„BŸÂiµ‹/#OçÈŽ µ AWWÑž˜:“¼©Ê°6áŠÈG‰©®íß'HNñ­vÔNÖ ·q<`›šWðWBF?¶‚Míjxq z†¤Ìó/_ùIyŸÈ|ðÚÇšÕB¶ÍŸ‡ë;Ò¤‘¬Tªã_Æ„à™O'PÙm+F~ëbµ¯ª–_ÙOWXÚbæ­‚œ}(z蛳£àj`?ûXwE~o-A*­}M} ö%a{ú¬êrÕD‰HDî²e«Dg#ö«˜jÑÔr ‰‰ °¥öƒ®?J,Ý>±Ïú¥ÆA¤ 2¥–’óYä`½œàCéU^m_,3Çåf–³åÍÉsÖÉÇs7boÉ3O‡ÌþÚlp[\ ÑÛ0éšeSN»BYÁ Y\ 0fX¬«¼J‹ЧݧëN‘}{²ˆð¬¥XבKçåéL@ûÝØèï>à?ptvý_cø;fgý§¿mxöǯü£œžõÖþÓŸ=/÷7ó³çOÿÞ´‰$ôo€öÜëßœ Mù§ßK½†Ÿb.ù§ÖþñŽÐž%þ÷ÍÐúÿQ†hÃ?ˆùY­Ðÿò—ÿæÏùà?ûÕ¹î;{&k âÈìŸÿÖ.=÷¿úûónö5ÿìþÅo§lkùù/üüêÏ~ËüÍß·ŸÿÂÏþA¯ú?û‹?þã†ù‡ß~Ôóüì_þðWö¯ÿè÷ÿŸ?óå‹þåýéŸþÚ/¿ú¹Ç|û«9_õ×ÿ‰üƒ_þêÎSù›¿Öóoíÿç°tÿŽÕx)üyB=>}[? †¯°B·öww€*ÄÐѼè1ó„Í|üv¶áÓS‚7î­›7PÛbþsPæU¢>í–@m9Ç¥‰ò{fDªÒ¨¯³ž U½‘B×H¥è¢àñ×N™Xe틎Šzi‹uÌ5ž°”÷>u¹µÇñ<X]?­˜ãµªS¼yxøË?%,Џó<ë)krX)BÖ‚:WZ…+I£Yøs…ÓŽ¼«f*&A ·úE‰ÛhÀü²ž…!­`7¤¸4û}á„e]ª'ŸšS0Ÿ=÷¡dÝpšz£ªÓêq»CêpBÄxM½(Ó¥´ë¯mjsëï›^þ–ûö@åˆJÂcú™ÊV°ü©09‹;+· sîõ%L­Žé@:ªp¼È…ÏÞ_ú|tÐ.eꦽXVÛœæ•^Z*j`¥_ÝYþâk«Ô½ìiV2ÔìêQwy'Ü¢«íjzû½öoGOw•µä™i^è:ƒ|B-a9Y©ŸwEÇ1eˆ Õ,âSÔ³¿¡õˆ¥Æ¾MþC!˲…l0˜Æ§6-gŒ}ôèÙ°² Üòl„ÜzZÀ£§D5í{UÕ¿ Æ‘Õ1µ†åId^WÏ/Ärª·y—Cz4jÚžÁdÈ[u–Þ»R=J]Ž^õ’²VÄ>›õ²÷ÚNzOD’g„-Öxë¢Q5õÖŽ+þ~¯OyóV!Wuãkòj>õùŽsÔ8-.ú¢BüdWÏÖÑÿ»+C¦³Õ³iI~ûHËfI[ÒÙ®x–Ns°ñuÇ›º%â7$}7x á‰JtϋǛwÒYºÚqe›zvô)ÔQo' Ô‚jÁ§ƒF¦qy&}+Åÿy|/¯ ­iqÓlP˜õ ;UB Þl§[á×wqxnršeô4«×š,ÐhÞØ‡ÒÄUŸ–~ TøšîL{ö<6°©áT²ÐÒ–÷¸žáT¯³2-Üi²1ûªSF5émwq4iV›½‹FQY]3µøXýò{ïžØ¸VE?‹q(UO”ø-t6k–¿œõðTÉ)O]-‚ÒÅëÔeޡ帖G3u{lÄÆŠ©’ÜyÕŽ–Î~ýRÌÎÀgøòålòÚJöËNÊÊw¾ˆwÞ3k÷ËG˜p&"DÔH͹ þõš:%ï]݆-w[OÕí¶ÿÁÎKþMÏ¢?kx‹½y î)ë2ä^ê9l%Ac!zX›\7¯Éa›%Œ’‹·ê@ ï/ÛNÂ-±2¦}#ÅÝHôd§ ß”huéå§Ôy†wÇÎÌDòØï>4A;Êä0ÂýÍ||„Åœâtòœ¶Ã‰ ‚«V÷M%KÂ<ïK·ƒ“Ù3¤zY7‰õÊisvó)稫´õå·º„ÍÙ5[³Ï´Î»^gP„í›×t(FËÁô†;Ú·n}ï˜$©nm“ü)ûÏŇÎÇ©£N¸Óëóú¥h»y5GV‡©çMU5D­x)ߣà0»°Ë=ksGå1j¾ï¡ú-Q¯§Ó¤ç@‹ƒºq…¨„¦ê}+¦÷U1Í!gcí ëé²_JI c޵Þû™o‰g; ËsîTŒÙ¥¿GEÛðô<ŽZ- Ž&ið!…>óö¿<Ütø¿TgòX¬ž¤¦K›DÏk¿wëTú½ÏéÖêV­@²VFNg¡¬¬ôQ¼Ë»jñ¼:²+'íoTå@Ó£ÈÉ“*ú`mõ¯IóOŒŸ3Ùã^—ÃXWzuzÊŠ²zÚghü9=lUÓ8;‰ÖYIÖxfЗl‚ݸl„µÌ¿uV-©Îçv–¿‘ùTÝs»èÁÔ^•ÌP4Rî«;]Ž~prW$# ÀÀP‚º)¤ÂJž¬$àšxÀв¼õbá¬(&»¶cÓòÅŽŸ¢ÉŸoSœó=l_6d(vBØ\Ö&«ø²CÚÅKø³6â\FÓ¦;êøñx“ÊÝ+sv\[ζÙRÉ’Ð%$Fj"Ô<£ë“w+Q®CîÐüˆDÏŠ¾@d}•[w ‡™¨Ï¶©Ð=¼&8Ø|Ë%0~Lè­^juÅXdÒPÝÚzýx®nóºP:S»sšù;]Q«9<¢ÎMƒý†š÷7HŠ}iî:4`‰ösÞZj²UüqÏ6 iˆ^•õ{K«îÐáþ‡¥xiÐKÖuZîX炞Üyæd]½êípz :X¤ Çæ¾€trcðáì=á½ö«î2ÝHK=–vÍñÌ^h}·§°?]Í‘OB¹ø æ3/¶‰â€.¦Åþ¬y€Á]Ð.ÞÇ—Äéx\]†Ì×q¿;˜TqRæsÔi){õdU«b.DÚxÚ rUåžh• ûºÁÙK6xäf,Øá‡ôiÕÍß@û¿îεnUÿ ||Ͻë4DV?óû»i…ËC²õ·µË±ÎûØÖ8ít¹dýIXè+}Û6M&$€ P*lmBkᲺ·æÍR—ðB’gòäÑ0‡ Ù è 7ñ$|Ÿì\rh’Úíc_ÁXêjðg‹ˆd:¢‡¾¾j“tÿxEnb•Þy™ô¾“£ª6ƒï´~·TÆ3ޛܕ H[߀ù´8 [ì[oŠWôu9Û/œæí¤˜œñq¢#Â_À][eûãâµ£½¹dŒûŒ f%×l¦Áß½ØlbëÕY¾j²ói"е¨sÚ’ “S(Iý,Ó´ö×ûÊ‚Àr'¹’,œmU÷$}b¶Y#Iµ5nU1¾¥¦Ð #XG/P1‹àyëÏ›„@ñŒõ\Xîý|X• À èÑ%HfÝîïnÚx5Ô(Z/ðaËì•OºT€äK”>Õeá=èá`MUsûêø²ID%ÅÕ‰þºƒr”6c· í­VÜL'uHä·Ô Ž…n¢}YŸpÑ¡p“ô‘\뀇í³I , p9"œÍ€®pm9ñ>²v*uGP\ÿQ÷‚¤0A:†¯™W@°¸!,mÆì<ãk¶‹ÜIa‡·¬. ²ÞU °Š¼ól®Ž 9ä$•Ðéwv›\3ys8¡£E´8ñ8NöÎêÝ‘G·– øÕXAQõ.v–²ká…;s­B5A#Ž[‡˜É¿BÈLús•ÃÌieÙ7OQÛùÞ¯U–BÌÏŠfZšÌúõÉy,þ²ié»í«Ò^¯éO}´¤è=ÿÒ¾kÅ/jÈ8Rœ¶ƒn©I¹ÃÉšï§i8ØC§)^ŒŽN\LµY‡Í„8¢vÖª•õ§¨kªFŠ„(£’Tò/®,+¶‡°Nl®ÇS`žá3…ûʱxàEž/¬ÀW)ÙU’ V÷éc‚ªW‘½ùQoĪUE±Î¢Ž¾-ÁšY:±|TNÓüK M*Øba39¤¯™ß°ÁgôüœÜÓDв‹±ð8¬:Éj!ã³±ÏÉv2“©I—§’€ýûck m¦ø'¤­A6ö5£öSæ1)ÉÁÎ’[\ÎúÅáÍÆ-½,oi´èeÝêê}¤6VPâÄ7-ç;Ø%o|Ãe—~æ~ò«ñ±ká®Íó |Ãf§’ïõ²Rúӿ͈¶;ßûŒ ZË’«ˆŸµmk\ü´l䈢­eMÇócœMTsÕ¡H5WÀòc¬½¨žæäWˆ³Ÿ½’üÏ~Û­—x|#Dð~ ÝN_IiÛJ˜*Ùïp/í¯ŸÌæU;Je… ýïq¨R=k-'•lyëÎú‘@;{OO‡äpœù,}¦ÊAÜZGΧ©JBÞ‡H³}0ã_¹ªMøBGU³QtïÿEüÑæI³qQÉMÇê-¸:ÖâØi÷ÒkaèáåЦ¢·­üJ,¶™ÝÉGT RÜ øØ¦Ëô©±Œ›^u5áͬþ©¤™Fd*eu sUÃòÓL… >wžÐ£ –¥pÓ_°0í\iEï¬ÛLS€¬I=DXÃÚô‘HLÎm󛀳Ï)=õjAªÏt”1H«•xå’‚·Î97v~—!¿aÏŽë­æAû>ýâµ½¬zÙP+«øÜ ™¦F—%X–ªîõ˜Èõd­ÐrÅEœéð”ÅqÉxâ—´^!ÝþÏF+›S—@P b+>ÎYEM4ßú’µ>&ÕÃãa¬ÐçÉj\–!KO÷GæTÓ ºØu¾uû“±ñ;úQ^OSëãHÐ8LçD9Ád;$åéJ>ây_€4´þô·¥Áüä!*dKhj–Ù4+~¶§ž0×Ý^òÅ£\¦5:•rZPº¡(­euþ?/Ý¢xޤœs\T°Ë¼¿äÀ3§Úâ €!¨ã jÜçX)(ÔÌs¸”ÏÌäþé9ú[`›Á¿ ÊÎã0hI´9ƒy²½+­S}LŽU\Ájó±zê°¿—EÏ"¨§ãÔëdMhÄp`Ãfþ¦â*/^ôæew2¡:‹Þy©‡q0ˆ¯O[méä0ÊGJ^µþ8áqÌseÇ| Àü™(àJÙRCö¤‰ ÞÕ逹‡©ã÷I´q1ƒD!‹,«l”Py :t5Ôæ¾G(‹¡P¤ªªÜ÷*æT®ÝϹ Ÿ€Ýß§j²9Nµ<ÊÆƒ3-Ogkp›Ë@pŒ¦~÷^ÓSq¿ìøÉöê \Fçž c·EG7–~Ð|ˆÚðâÑ¿÷j—Š?¬J–Ú:*jî)“ää¥ûW{&]5ÌîÕã\_lÛQÇk:^:WóÈ ¬ü.dzÕܤüèî æxÏ8!¿ÇCp–’<ÁVÌz@jm^öPÜú"Ôýô¨5‰Ú޾ä\«ó:îß:‹Óƒ^äp·3‡ö ¨ÌFây: ¤,%@œ LzPG‰´ò„Õ¤ gš§v’õoîb-¨ÍZ–­êÊù)ñË+»_÷‘ì«CdI1‡´´I:–w*ÉjþhQÖ9´Ã|:åÕ¨†L òÈÒÛÛýÔµ-«†8ï·y×<¡ý•kÙ!_¶ïo?Xy6‚JÊÀÆÙã~Oc¾çV dª,°³®¥¨äÃæ¥;Ù|ò„ÉÅ=KÝUËÅps$e¡% E…–b½¼ÄÇÀ7O¸4”j פ篃é ¾±zsó ¬Ó«‡Âj]/x±nuµ&[„7½]B]Ú¯è¤g´ódIUïí—æì ÿox›f¹DìÒñ C[i].•^w$•kö °zÜýfU$ |w…˜‰Ié²xÌÞ$U¬ä$·Cv3«“Æ„Rð?Ò+S«Þ‡5RžP3Æ:ËuI“÷©¥s7‰)é(çt@.T´å£”á¨[“©çMGwW}ubý%ƒ"—X‰4ìž}ÔcÀJw®·&}žJ>ZEèó÷ò8œ¦ÕýÝiùåi!>“„5ݬvÆy!eCÕƒvš æÙ‡@X«ÖQ*ó”Œâ3Cá[`-ÐtWêkeN'è[PÆæ±øÖµÀ”}Lž Þ¿ÀÚ<åb/@pïï}®Z€(gD·)1—µ}¨Š oýíEë[Áó[¤ÄÖ$ƒ©Í¦´¨ø _ÚÞzò%“®‰B\·;¿ö&Ü’ewî¹9–c•jºxô„ï,’Au<Õ±G`Ôørïjv+оV"¡{•ÀáÈå¿U¬¿HSJG[‹b¯ØkÒl®zÎÁ7ÙÓjV±30ޝx“‡û¯Ò$®++®ßýÑ3P/.\7 ŽÁö›:¾ß}þ«‘µ=Ø´—’mAv‰\Ÿƒ9¯3–O k+¶´+6q1ß É™ã´“Q–£¥e'g²’ƒàÝÓl1(þ^P8ê°±m†“‚ͪHx["t*xÌM¹…|fRbezÝ-ûœó²³ÝåìÊç‘ÝØŒÜnÁßÄ xUå”,Y›GW÷OkZIϨË*ÄßJ;P #®,Zª´6.]´0nòæ¾3Æ.|ÜK¢f!ÅÖF4¾Ö Rû®SóŠ[“d­S\EUÈG³˜#’X1Ï× r? Y§‡KØ3êKoR¥ÑßéáÚ}Ã%uŒp`7©>Ûn"4¡°ã ûZлÛó(#-D½xÔàH%ëîÃVÙ­7ò›ªê³¬æ'¢Ùè«'æ­6“sKõÓiäº÷9Ñ÷1Zˆ XeUxù>`j¤ói«¡ÎP-¤—uÕ©Ôèsñ…M˜haìhÝ)wËSéü|î]©`oÚxèŠ5g)4KqEM+/E¹l„ÙÁª„'–—òŸ×cN²ÞDË0‚:‚A/GÂåÖ@]=6ÔÅ"^Ÿiõ×ÌÞ£é²lœ±6Ò IþÐx8Jîæ€TF„§E?sÝ€…NÔÓØîµxÎñq¾`ïVØ¿nÔm^¼–ZõúÃøY³l¯j‹JMé•Ül"b‡×cPÙl8{¡_Ž£L¢ÌW 6umöÎæ¡4nCý¡},yÀÉPÏ€¦BÛUThJF;ËÒÓ¬ÞÖ¸uúZ¾ÁÇϹìqŠR‘tÛ,D)Æ#²:®¥j¸~àìÿgÓô ôø5Pݶƒ#z<ÿúNEÇ´¥@wC¾^Ý-Ö E`‚û8¿0.Ißzû>t†ÂA|A “|óÄãA̸ׄ\Û¦I,WŸŠýèžÞIZtº$2™ÎC¹Ô¾8»« uD/§È=qc‰°ÎÁ±¾k³ÞmÁ ¶È¯xVö«Ý/[‡mÑ'Éó}EòWG…˜O0RáGǃ(^AO¶ím pšº¼‡Øï Ïs¬8ÙÄÆfØÃiGÏ„,è)´ ãV@äeZÖõ"G^9Ty^Uü­ÃÂLÁÙhb1V{Ü#Æò(.†¥L(9_‡m=A®J¬TU-ÙÆçL 𤒂"ÌŸ0Ý$1mx[:½eQx&ævëˆ6[X¼’£óMMìÀ‹†â‹È!5_#“ÁxØÄ®ëV·Z÷x¶É~·ô@»%¶œK¥¢J‡àŸbŠU^™Ÿ¤\¥*-›AyÄA^­å0"9„cÛ@q7ðøòÌ—,ú¨ï§’zÝžªµ LL'!¿¼)õ[má´yfǵÙG,`ðÉSLz¢tû¤Ôé³é’ð¡ÿe˜½Ùã„q›ñ¡¯¶¸I¢‚ZÍ…{ß6ÑT:Ó“I¸L #ÊshÐPàD ‘âKÆ„$möÆÛÔüqÃóˆÚG`KÍÖ²-øô°¯ 'Þ†þÞ ™‰Ð_H¡ Æ­êØ|r&”ïi«á Ë%GJûÞ׳õ‘÷H•[Õ€Ç!÷¡ÜxXe‚Á+©çN‰6Š=3XUL¼æËþ*íØÎÉ}wÌhï,ž˜Í2HbÙ(좱ŸÜí©ï²¢$é}ëÄÌ3"µðœgà¦Ø´ ‹«O»Þ’åE…)@e· ”&t¨:Çî¾èõ|†bsM³êI^z,«ÚšuôÙ¼ºÞ6·]È'½ëlb.Á½Òõº’N¯AIƒíº v.F»ƒÈ9¬8ÛiMkË`úí¹Þ­=Eò}òê YV>?­¡t¾r Bå×ë^Îà'OÞx jßÕ»xÌUBÓCð––FÕ©á!Ö…HÜ b»"V2Ju –‡½_¯z˜>‡buä=©Têµ}ß–…¡¬éý˜#MÕhœñ²†¨_ b½ü},Á.*`ÛÂÁâׂÌH]¿¼-bMÒ¬!h£neBøEƒC+üûtØÀcõ\EÏK’±Žõ5¥~‚%Ïš ȼ&¶½H®xŽ¡ ÿ)ìG°°ÏAE@0G>u·±¯D¤àæÉš lY™ÂSÈS6ÉægAÞº?îÔæ©QyN×”† -³Šm£Ê0@µ Ž•¾dÃÜ¢j¬M#.Å_¦2jJ¹\•£¸œo “ø”ø´ÝA ƒÔÎjš’õÓtbny3Übk`‘ ŠíDË¥ —‹Ðº¯{tÒé;ÚåTj§öÝÄ%¢ܬwûZHô—©@Á£R‚3g…ÐXéê… …»£}*‰²ø¬î1{èÜÈcßž]i¥wTàÀ‚ªÞ9‘&ˆ"¼2ÿ ÍpŒõ-û›5V)<â¼lÆ|, %­oœ‘`Cò0¹y[RÉïržVa¶á$%d_q/ 0^Ðse×…:ζ*d5Vt(…,=^‚¬¦ìmÉb²{øü\XsýûÜÂï>à?Pr⟖¿Cp⟖¿MnÂÿG)6ñOËR¼ÖßMðßÿ¾2!eÿáÉLp§ÿŽM{øé÷R ,Ò‚Çü£Õ˜`eÿ} ÿ´üN_â·ú|ç/þðgÊ ñ§_üò¯û²ÿËßI'ü£—NÐi5}€~OŽ­ëzòE}QY^/ 8%½0’ â÷Œ|ð¨@–¶JGgGŠÊèG²S1»€˜àËü¼¡ª¤«ökrXfœ¶Õ­‡¼F¯îz›ë•?ub3ØmcK[žP(»O×—+(ØÑOÞûó©ô?‚½ƒ$°ƒ[®eÉ=¥w'žZ¸â]nYˆÇ¬ûSÛùÀ_ËòvÏÔÆ’tÊZ©å™öDªaî<=äºN§ŠçÀåK:¡©`Û¤ Ë9¨-åðdOð4©X݇†?KKg „¯Á42ðˆësLGȽãèd݈½yΈwïRxU×=UæÞä,ú\6^¼q‘“’mUCÅ‹³ r¸€¦°g®ý›IÇ9‹2麟fÓÛëÉì<§H¯êxrOö',þÓëbè%Ù«ÍØQö£ï»¨½óÓï ¾³‹ÛÖ±ñVž·óµ£Ä6öfC¶.Ndž\–¶*Û³N6Wñ¨2”G9ôr®;..JÃ$½sS«GµàVWbtÞñ çù+/ˆgNýË€Ì:¿Ìù¥Åp:Œ­ig¹î€£»—‡öû’ËܤüÑ/ë™vŒØéF~=Sö㼬ªý "¡Ãšu°n}mÇ%¥ wו÷%3×¢Òq1G ï?óŸÎD}íÝ6Z|žXçOQîª=9+´9 oíGò1¯žã\ºðÓm¨Oë„°Æ)vüG†š·UÓ¥o†íGÄ̧_éË'jË}ŽÚíÍ•«V¬<8?VÏw:¢¥æ³Ùe~ý¸ xVêyäú¢]Ûáÿ4tùá±U^Og±'½}“3Àžù$«çk_lcy›%Þ¥Ë+ëþåÚ’]µ6§ßµÎN’Ò¨v‰¸0ö´p%Ʀ¤æ¯úØÏ›÷$˽MØôhÆfwJ=Î^ûÔÕqV‰æÚ}oŠ­¡*`|:µ{N?ç 6íßDíï̬Òß=‡`ý5VbUKæVÁÃ3åÛþÅeÏ5ÛEÏÃÌŽ Œ4ZÐj •œ•¾_¥\"õµÅ븩]#<®w’‡[á]Ší‚t½òè‚—kÓÛº&{¤±iÕ뉫¶2ôwïv¢:±_ @V%Ã<÷õ§ä‘m®ðØèJÊà:|të>KÊõ„†­éD»Œ R\¢<ÿÇú]\Tp] ãºÂNŸ²“¿9ÚXUkýîm#T‰|žgVߊ½}s\ŽoG$rºâc/UHº¡iÆ7lPfw«œ¢ÇDéüYë²~(ì†âAþmwp ‚\¤¿¸yŸñš ¿o+Mƒ¬›m¤ö¹ÖžÓ›4ØÇ²,í¨F\y^é©£ñH—¦ÃØo0Ÿ½¤æk>´ífcX[²KÜñtRïÖ«x„«;º‘,îģXlÑöy¾P>‹yÙ‘€’Eÿù€3ŸûåÏÏ<ʽº~“•{À y)M`ëÏûh0 ½Å“yon hÖëÃ㪗E±°{ ðÞíX™¼©KèM¤áÄOe‰96±¾cHA^ ¡èôÆÑ pàœ'fmÖ!@Ø÷›¬ŸÉ´O·¢€PxUE«' AÿšúÚ“Þp 47Ê"Žn…;‹0¬Ší²âÆP‘ˆ°V‰Ž¾“™ˆqZŒµ¬³öùäæ=ÐóV×6?J`kód)š"#½$– Õ“¥ûwNÈ@º6åÇvœš¸§Íq·[í^pž-Tu›xv Ÿ+ ½úO¬‘æùÙ­-àÛ‰1^wxYÛG¤# Å‚MØž¬h j0»¾s8ó Áδuvbí³$4³cåÙ£0…²ù,O0¦~üŸ.6¿Àrð5Êhj|½ŽU“X”î µe-"A¶ÛÃc»ùªPAí¥â¶cõóÚÝÃ>Ï¿ªÍ»+´¨@T ñ¤—8±Ý޹Ðèø“’F[›;Úm-v$°òDàŸ§̯¾£z¶±4ÉêÝ8²Ü†9Iqi÷À:ðU1ÕÑêÔž[ñëìÊÑö„mXÇì¶­DóQÞ$V z³æ9‹[“qŒ-£#NÜØCÊÀÈ÷ÉÎìÇ%^^pÂÁóÖ*•Ïö?BW¶hM`•ŸÿÀ„ºó?Š”5}Šò£eQ÷’È‹ßg»â,ì?;…gÖa;RÉ./DOøõ*I¼¸@XÍ뤯ͪžûi­NbÒMÉBt[½ª"†ƒ¡¦GÖéyË¥ú٣˜¦eƒC<—«ŸÝ*9:úGÚ==¥qO¦¹cgŽåâ%ð1ê"õò‘áL~;W…(òp†Ëx•=ÿV\¿êzr+>Ïó#3e‘÷=.fßAŠm&¿íGxžcG ÌVL¸´ÅVR½®—( {â Zªð«9è#o3ÌgÛ_^$œ³=§Ál[²²ÖS òô 4"çÝ,óG‹fÞ+X> Hž³íä¹Uˆ~e1VQY›ré1Mº¸ï)ïóí[MöÕ½íi– · Ñýôš‚¥BGW½íJn„Rê`ŽÉ4a¸á@t’ {}Œ`Û2:ÈŸ?%+¤>ö»]ûV„Š7ŽA¼SÒP»çG‡q±ÝîÑ3o-§€¹@¨wlɹµ”|ºJ`£±JµI± >èøÇ®9BiÙùŒ»žÁÐêqì«Ö6×^䨂ózÝ ìÐFì^6¾Š;õwƒ< £w¼?”ï€I2.R^õ톔Í4/›×2œå…4ð£Ð•v¡0¤^ˆ¿;ÀoÖɆ>õ€`U¹ ¡¾`’c>ä„Ö£ vƒŽXQ;WÿÂÞ×÷ãΕˆ ¢h›‹”vZ a`VÇC†i›ýdhg§OÏ7ö de|Ù²ª\âtè:¤5v)Añà¨Ù“T=Wc÷‘BØB\»–÷ÚݪU0Lå;t䛩 :“_ÕQ¦À¢-Xt±ïç%ìW÷ÍfGðZ5‹æÇoåÜIy—âP$ÂF'nH¹"Ý–úåÿ…Ûé¤I@£ÂÙnîÞD »0š^*8M!‚AŒ¤¡h»‡·Ô${l).6-¨Uö¥ìñÖâÿÔge Æ¥B˜š¤ÚÒ¾“œÝ¶ÅG$»ïnb°ƒˆÌÀƒtò¢–Ó—î…2S·jõkfÛ˜µ‰á“ôSÑžžµøº/æä1gø,°pQ5ª½T‹S fÙ<Ö Ý*Ü×5¬e$SVn‹‡ñ" [Ö»é6ŸUÔ‹=jØFZª^ƒuQÄSwµÝ¿ yþ°¡œ‹W8ç6†êh«h„3ñˆÐë9"Ï1©fo²®¾q+˜y/Ö=1‘Òœ ÉñB™ñld“ežl: š¶…C#CƒÇ°Oî„ÉŒ>rUg¬N^r±YÆbÐWøËÇCçðua˜ogKå¾ÞÛ¼;\ûaµMhi#q+±F@S9aÄ -)¼F[Þ@¬—‡£„rÃP€R„•à|ÜÁ€Z$¸KÑÞç¶,eçE›Z;Â*¾t6}_Jë±QÁ„+ë\êUB¢‚—õM¶OŽîš@oæÛå4ÁÎÀ«¤N*RÓQ£VRhšM;ÆWaE£D /‰MÌëÒ±O‡ï9>ûjs©1äE(á}ÁÀšxÙXƒxn#É©Š^ã =Ô€˜'dÿ;Œ…}¡Øõ8÷&¯Õçso’D‡cûgĵai`»Ÿx3çá,e»­À“Û’¤…¬õ)ˆ ¹ÛBo‡ÝB†:¬HjºNsÖÈDÅðø6q.`rÎ0X@È\,0™çÚÇèj )ìHüœ`8Ù*¼ÇÃúÿlø)–ˆÁ¡iú 9—£p•yI›a/šgæñ¾æñ¼'H£³%Â!Å´ÿLß«©îë_\¾cAî&¹Èw…µ5–nÄÎÇO«¥E?TH[›ïhà©) )Ûª6à+XÚÊ4Ú<1¾’ jªÅ Ę­H@,õˆ:¦¢ûˆ•£Ö@ô„Ýå'^,²¦$šr%#ø 8 qeþð½×pP/øSHG-…𲚓¯„4¸;¤i@HÙž¶s…ç¶Õ>#dkÓ•RQ[ŽoûˆBÀ°Ý)~µòY}fAÝò4Ógƒí¾¥k1³Ôè´Uâ*Uq‘LÌk„”¨‰&CÅ96‰ýKÊåT­\àæR²“Z|9«iò<4‰å«FþXHoÔœ&5¢'€lÛlôÞ¢ð”#ÛÈ¡œCí4šÝ¸ ~P®WѾ¬®…áWˆ0µÓqÄ€K–}¬Ðª3_󑜊•T…‚ˆNï|à¯â+•”´N&Äs¿ IÐW=zƒå$$QÙ›ôhEg«»ÖY\/råŽzuz°CœË×ç´·ûòµY±[Ê>nÒ΋wÕçòjlšŠ&—cµÎY†7òù¬¨©ƒc¾É›dI-Í… šÐ«`£tpÐÖMÎúÌ Ådg¢Î«Ãn;eý4–ªl‹bF´×F3L¥üŠ¢D (ôvÔíV§üo²Ç£ªžµ9}âÔd™ì®m_´$ä^ í5dÀl½;Gck\Q:–UDQíü–˜ìÓwÏÖ§¡ØWð¤éÖØ—ÔuÛ:­”Yn—ÊqŠئ«hê]¦gŠÑŠj{í²K‡Ë¥`©ê–ú#ûØÕbz=5NŒéIõiâ]öËwÖKסž¢›-Û{ÚþËí´Sr]—Èú5½¹ó=šÚÛŠDÕ¶‹§`áûSS“ž-â^®3-n°ÿåóT‚-êOäx\Õ?„ÓÅÁ¢«ÿ7ëá9,¨]¹U¸Évê9Eò_Sû»-l¼[¯q8BXž;íØyuæ Ó¸tNjf G[Il­óËÒò ª GýÉIö¨á'«*9Ê– æ¬ø‹hâ!4cÉY/!!¨óÆê‰8PœÎö¥}vèTÛØ ú½ïåܳ;Ë!ªz³ß›Êd#XkzfºQ3ï«î…íKPj@ñêm—uH\V|4AoT9y›½²ß¸¥ =¹Gk&h[;o8>˾l²òåƒÓ¡¸êØ „œÌžánÈÆª4BàÝ3ÙI9#ç´òFzW†[„åˆt’¹Uƒîm}™”¨iA,?l+Û‡ÇTÈNF•sp“a*©ŽµÜƒP´Nš$m:§V"<†‹ zº­F›‚í´ºKvÔ*²¦L>… ò ¶gG£&1¸÷ I&‚`ÙVûÆGe̯²}ˆ<ʳÁjª:òj?ç)Wúß)¨g%¢þè<¡tN!Mϳ—U îÕUÏ6ØóVIáÄ’çQj L÷<}Å+™À°Z¡êÉÜö õã"Ô˜SÍwÕÕ¬¢¯Fšlžv¶R}ÀÏáS0.Ùð@$K[ÕŽÛÚ °sÁÈK~Ÿ;(tœN—¤.–ÄÄWQìøe‰ˆ×¢õ€uFë!ñû4™“!;¨lyß·Úš÷Fçîœ4˜íR…æåfˆòDO%%Îä¬ ? Ͼ#\hldË+ånÖÛ%ú±:çÐÙøÓ=ò¼›{â9‡ºZÐo·Â(³½_wW[uæÕ_|Öc9ÈÛ–mhŠIrïL„¾æ}wÕs*gù ôßi‰¶øªs&:r+:O ùŽ…H·hŒœlzáŽÔź<É}Œ[ݾ»°¿Wm̨¢'0µža†÷û1N’P¦¶¼G¶ÜÚ/+ ASÕ^8 Ö×ù2Á'kPÀFig>*yìa; £Âcõ»xÖgnÝ[(V¶©*#®¦/Dìñ tòT•—À½ ¯Ö?·¥ž|«2¤ññ Þf;jÌY¥$(ÕSB©Ž —±BfÕÒ™Ïgq©f\›jÍŠÜÿ¶*à´/vÌk…y”£æí{¤w§î›Èñ΋ð~Åv•Ok‰¦¢vË\>Ÿ&wî<ØZ£ëá&ru{±ÉÐòål°Cn̠ͣ>Ú!ó…í©À\ó“tŸúÃç wSH‘f;ǯ=K<C¦Ù„´ÖlPw¢šÊõtõ狞¢púûiOd4¤ ±³^©¹$Ðqfõ¬¸ê+äÖv€å§l’õ hœ4çj5—Ù!˜ÙøQëø†Ñ/߬™Ĩڱ­Sù—÷D„jZ_Ù”­ÚáÐFRŠ;=êÊ\«¡ÕÏ`Ù÷VGföéq·ùËà_¨Ãºìð']t¢1/€É°úäAÎ8êp±A¶5м±Bߨ`ñƒ9|q“Mªõ*™KF"2𢰟º^ŠôÛªò­DûWQGò7p¹«þ|y Hdú<•‡âCºjP—®ºGRø•òõ與¢ù<±÷|ÿpjü»’ŠLœÿ;uñ#iu?Ž‘²$”Šå1OÃÚãH »8¨¦)„Ÿ ¥ÏÃ,—âËÉ-§Žkõ‚‚NíTBŸÍkã¤çªµ ‰«42“ÖÁ{„˜Xãö:UÁ¢E‚»Š€«äÿ.*¹ñT¼g¶ã" =ÚJëØÀÅ…¦aWEêv@Lûí!(7SoH†I\ÕÿépnCºyjýèü¼ÊO/PUV7äíq,VCvˆÇqNnÏSñjo}­‡¯$+‘Ý¢¶ ê(oÒLv^ÔYõ¡…ȯò´Oô'»Ô(9V:/UöY½}*L³´¬…6MÔÑf”‹z^®=ªº¶»e*¬{49ßëîÁ•zä17ܹe+ÚWLØÖ´Þ¡ @Ô{F˜Ôæ…“ê³¥"X¶ ¼l <ƒ¦-")Éúa™kk1ÜÅ>fýdz]ËAß/"=`¦4‡oïu-3·rÄP󕼂´Žà%³šÔD“—¨s§k°6Ÿ×J pd)_ Ê‹* ø&ö‹j|ìUb¬¥úT³,0_da´ ‰àÔÒ‡NÀÅ’N3‡ÎÓ«>~ñö…V‘¢5>@Y0åUA]AYq-#´*âG`àÓ à‚øã ÎkMR¨üÔì%\·d]ä@ì%ÎìSµé§y°ÙÌÈ~ä™Ý‘eÓîËé9Ç{wÐØ¥;_ׄ˜¸Ùföh‰Un{Yõ' ’(⌵äî‰Õd7ê›ÍsiêXtƒ‹x²=ï´½äŒîÛĨI A»ÛlG¼ªw=né âˆ,[Z `!B >›5ž n²b^h<¢]ʹÅ7]p}»ºc†ÅÚƒG9ÆE²êJRä$ú‰ìU‚¤vS²è[gû fxb Õ<ÀU¥”•ê·>øžsJͯlÇT`‰¨¡UžÉÈyúù Ö­@Æ`9XvÒóÞ¬Ä@ÂíÄa}YÙñH™Ô³ÊRàÆ±¸Ü…ûŠªûwÕ§^OèÓ¡&´5T}ÎÇ©Å{Ûv\W‡¬'#_€¦‡¿÷[­f‡F=tÐkfhaá`¡­æÑEª8ò0“î9ùYûå™Ï þØD’oÙLes¶“rÓ¢øpŸ‡qôH¯ïs* vð±æ(­¨¸9ÄxàÆ=A# òLv¶hsŠðþÓöër¶&C¢NÙ €6®çS¡è/¾ ²Ižžú +cÍ1N+}Ä3`Ž„ôDúRÆÖ–TJ>óa6†Ï;°ˆÛæ"¾“5á<6;ª©ð™D;5¿õ" ©iÉÍö ·wºZ"ëàlýoo%dH6ÎðªÆ *Êé-®Gý‰Y]êʳCßöÜC»ž©€!@*u¶WÒ@¼fmaií2\@ëÄžª —³Ï9;# xÑý+Ü$â×sG`-èÚ© ö"øYŽ-f­x`‹gœk ëvæ|öTâœ|Öxu<Á><8ø¶p«<ñ u„Cº`$·Š¤ì³©”¯¢kEíF®oˆ¬mœY u ¼¤ß>` 8›N0Ùn¾æ‹[5O½–/“m^ç©k7ÏÞ6•¡¬´pÉó½¬ÛéÕn…ÕiÎ!Ú$ûªKž=~ªu«E XÕ°j1=è"0$? ¹à_ÍÓU—É¢ÐBV1ˆüŸ¥Ú¤ NS:`0º ¨ë3Ž[˜æ#«Ê lˆˆ„eib„ПóZ¶á†®æÜ⼟" ýÞß'ÖPlHÉ”Öa*;.P~ÎIå¼® äÅ5gxðH“3-vkµå|ÒÌæT”´0âñ²mW…u[»U ¶3Î9z²~óÔHœS67‡¨ª„ôÁCx×<4ÙØ£îù:z®óŽá¹ê½õÆê%Ù@ñKó­Éº•·|äÛ’J žÄÃY*¡äÚÓ (@¤zU¿‹`‰ð[›  \¦Óšüå‘wûÝ âï>à?t³ý]ØíoÆlÿX‡1Û"ØígØí?d³‡€Ã˜íßuün5Œ ÐùÇ=ŒÙþþaÌö»aÌß cæð3ÃíßzÇŸÛmÿ5ÿïÿé—¿þÓ¿füM4ûÍŸ¹Ê_üùÿøÛ/Îrþé_üú·QúÅ/ÿÚgV§?ÿ‡¿àµÿÛ¿éí§_üþÏæAÿÆ´èýÓ/~n»]~úůþºC÷ýuSî?þí#õ'?û#óç?û#¿û—¿ýcâ‡ÿÍïæPÿ™C•¸)Sîo⣯šã@ç»yPF¬ájB…z/Ÿ5rþ¢?ܾáw¯¾¯}^S‰$_´6Øy&xùPÖ45Au^çqÆûÝÒ§ÛJø .¡…s S=x=å&PêÅf¬Ïƒ-kƒÊDëêà¸c>ö3;üÖßÜקܯ} ‡Ûžþ‹Ñ ªE…Û æh?( PS%™w¼Ô}쳽Ƨ1lm>ãQ¹&/ýwn®øÝÇsÇ.»%.¬ëÄ'ÉK’Ù/`žÙl#|þXÊ*Þjåü¸>W Œyšüöü”ÓXGD¾Ã7ô5<*¨Ñþ¤ûvÅ­Û²Ó`!³>ƒší*AîQõ )Ûɦ{­#/ï}Ñø«¾•£ysîMU'HÍHöá°võe[«¤ûôì×À3R,ž‹¿Š³†p¨o¬:¬]Î[ÏpÛf–«/›Pê¡=.«tN¨U,ê›]tµ•“Ëu4¥l¹5øqå3¿f9iòžï½¯ö¯ÎXN uNjںÎ1¶VgŠðJð;à :œÀ¶^˜ï»=Øý¾ï(Ô^Õ™gûí¢»>½ WÕy»öêÍ yT÷¼;Û}¯Qï~÷–D^5ÿùÙgŸ£” ½jÛV)X+“¹Ø ZåzÂj³ùÌßÑ;zXy[ª¹§*Ç)M <¯HP,Õ¹”ºmNóên«~£ˆôG ß™dúÌ?N;Ùw´×⋟¼¯o¿ÐÑ—Ííx' ÜöͱV$^|Š­zÜ{ÛCõé¾6Wþ­”†R†å²G_;¨G5U…‡úÍßí¸íüCÛ±U«Z[|§ò˜å^–$6.x–u„d$ñØœtœwàI°(Ÿã¹oë° „€cW¹âäŒÍk|ÊK`<*r‚îk%¸þÚƒ/®ZîsŠ©QJ¶ÂzóU2ÓÒ¦w‡ðxæÛÚéÔc$kcLÊž>î4Ù3Ö7,¦G³¿ù~íÒhkuèÝbïÊ…>%meµâgÊÆjnâ3¹îÒ‘¬Õò•º§=ªóòfqÁ[ Íb¸ÊdU¿mDx4gœòÉö3óоzÅo­åy&,ókÍÆ TÆçùª)ë~›Ç)÷Jz5 °NÒe6ÿ¥†¤“•U£2-:ˆ„N«,øh‡òlòÚS‰•ýL¥’ê—‘5fe¼Z÷µ¦VT«‘xUŽº•õED²Úf}$)'`ùÒƒ3G@œWObK°é¦&Gk³q¢Ò€l²ÇWås<؇ç:Ú|E¬uêËÆÕÛ¹¨HˆÏj©àE a![H®ñAÜ>À:—=‚* zjµÙL·ŽBÓ©á–Ì ¯šáúV¿ŽN½Ï£³éM¬ŽE{ Çïí´ÆºÆJ×öu8$ª\ü°À9Óÿ‡½wÛÕeI®óîë)ö È;χ˪¬,À†È0àKZ¢0) ”dùñý}9Ûìn’MId€d›2¹×Zsþ2#ÆÈˆÃý™ î ü}D?ö“‚::Iª¡ö\ZµV×>K‡lûäÏ1áàÈ4O>>ZÒ®£—ª3-ž÷ ,rþ¥òï$϶/Õlj#j‘=ãé=ßVn-ÐiË3œÈ¦[ÎéÛ ÄŠ œ1=O]KyEGÎÉÝßé{»íùT,üNKôC~—3#*âïóž/Bú—uý9<ŽÕi5I0c¹°d[&ØðíÑËZE²Ÿ¢ÁË/Øã }¨¡*@|u«tÿ.†ÕDu–h~J~&Ío¥¿‹¶_¯ ÿØ=éÑQ ›»õæ/Ï#ƒ¨ýHÐ×[‰ìmã»a¬µuÒåUˆ.S¹@ž|kÇŽ>Ý` Ò†6N:ñxö !ÌyCƯA€-Š2¿àÄa;!Ñì4°ÛµÆ«X6l) ™‰GJP<Áö¶âšOÐÖ·|g2þÖ¢^‘Žvxle,Í<ÀÀzäd­2Hø’Eeõóëø«Åšïꎬ±A[pŸÌàÐkÒç¤.RyÜýs¦+xGöoýŒQ 5¹Îxaã)³Š‰ýAeU%ƒmUSÝ”ð}«z°-S:}ö%½Ú-šóJï¨Ø‡r%ldûŸÐ8ï‰ò ÖVÕ’ˆ<$ÄåñH†Ï.&™¢·–y_¾ìce«ï÷Ó† ~¤$ vü·PŽ*=ÁÞ¬-NæBtª&Ö?B{=g{(µñ}úÞUÞ´Ïu¦^« [²•WKɾÒû ³w®¢©ð¡9PÉI×™!ŸåÎî#Z9Ä]ç+tÖá¶~”Yö`…¬ 9?²ýnE”§†cZM_z¨< }ßÓf©˜ Bè\yÒ4ýòuv{= >òv–ÍZTyRì±Ì¬¶°¾i¬À@ªYsÏUˆ jŠ{6eߦJòzdfÏ x9ú\’‘ùýZà6¾9ìÍnƒw°ò,v}Ú8goY¦ËCfa¿£„ÌÀص)æF^.;†b¼¶G~Ó$6Œ2β¨Þ?qš_HV`h®¹)R€²ž@ÜÃyk0’C›*&ÿI¹ŽÌeèø*|>{¤£;ŸSóN£ƒëŠBÅ+œqDÃ,~kèúÓì÷C ÕvCüX"iqÚM8«ù=ļ”WwRaĨ4xšº:GgM7a‘»'8 HN±¿DÈèc )_¯P´ÙUx:†@u ›K*ÐI^]³{Õ#VÖßc?€¡)³‘/ýߣ> PåVŽ`ãüiv½±H&*ÜvCËYëŽzSÉyÉ‚y çs€œah¢F¼‚ü+ɳF0ôg'ËT1_#P©+x¬÷yCéà:䔢jüÐm‡rØo î’s:ÅÇÉY2Åã»t_ãR¡÷p}­\@r›¤Î× Ø@1¶:™A96ÀqÒ°ÓÎ(%K }JƒÒ 1£Ä¦×ph²¯›9†{A¿p\E£ÝFlfaL ÄÒK6µä ¹=ÐÍî)æ'÷“º‡&Ó‘¡‘£‚"66’g4Ž×áú¨$ÙÑÑôô‚ѺýÜÕݲ›^Í Üª­WsÐU¿eПV­`Sb3>JOž:°õóúÛ Þêzð}– «®q‚ĸìRÍ\.¤ô=mŠ:ÑI.·èÿ  “HºÉÙjØS%m@èñZ9ï£ÂŽxÒ}ʾ® …Î`êq͆ÁŸ }@”=žkO© ÃØN'MžY~ÖÓ\Ü·c.üGÐ 8Ûzÿ ÂîžžÖê¸.MÙ,åVoø¢H›UÉèSñì“p¨tÄÔŠ‘$1‡ŠDAÐé¼TŽJ[Úï7ŠIÛ«=ÖT¹Gtý$Ç¿ThyÑœ3ˆ:»^ h0Vw$¯ÿ`Hçeöày’JšƒzŸyˆÄÆÏ¥†¿ÜŽ!(Y¯3Η4ßÜ·&çë"ì$²¶b_Mö÷¦([Ð’D£†[a±Dfzµè|í‡WêÄZ›ö¶$èæy7Ðé;|âÞ¼úO›ø[÷bš„¾Ï‹Tð¨RO\È„NêpÕNm £»òú:À0 ¯Lx­XŒ“¼ ÁëÂÕ”D~ìeŽ_˜Vèƒ'/×nN­g\F_/¬Zûú®Ï ]ÔwX i‹¡'pCçbÄ(Ž>Þ–¿ Ž 8Œö:7Y‘¾ÔŒ˜tÍkÀÓä'’RºÉ,•õ±×B„{¹«L£¼1;+[Tfƒ^ çIªž`O2"tTy k)*ï· CX{úJ©ïµšœTÍËS(sŽ#Gë¨t´ͼ SJ ü˜tèNPý…9•¼YzQ‚jÖ^Í"ÙfIú)ÄÂ^`îà…T›ïsjú-ã ˆY²A^ª‰Ô§ùeWäië ¤–£ß0ÿnñò .Poƹ†$6à.Œ–¦wîIPj¥Ç‘Z•Žœ$áöY×O ̪,Ð>eܩޥwžV”+dO䡚 ìx¼ù€ ˜&yÍŒÁ‡§öëËá_K‹*eðÊÕhææ¹*ù:o9«çª7½š*S°Oxw$ÝšÚ‘ÔŽÈ<® 1lÇ¥·^‚z\ ¯´ä}-çÔUÒs*4u:€Sž;•`‘æ€Ìz`n‹Ú–^sVr_z? |²E¶EǸí1]é\Tð‘€hÈUøóŸmý\ç¢ëvÓV¶èzæo´&³¿s¼6PÓm¢NÕ+0XÞçrÏ<$Ü™”ìÁÑÎ<ÝÂFbk55}02Ë€ @œ”¢Ô±q¨»§l­ÕǠ㌞@ql©-ôÕx—ä¤3ËiUöœ'u¨tZ¬9’ë*b([§•'Û(dÚ{@d%f·J¾¹©C¶ïØÜÊ"µ?U4gù`tN9GÒâkƒ„õã9·à@ïá蛓GDÞJ&§ð¬«ª\!¨ª1N¿RÕKŠäÈ¡WÓ㔟žäú¯‹Ì'ŠÒRhè~À:­\‰ £k¥*/VnÈÐ÷»¨ñÅ6\¢¸áøPP„J…¤|!:‰óZ¦ýãV~B»c SÉšëMW7µ³wè­ú&Ï_}õž.]ØÈ˃L<•þ&?ðüɹÃqüŽ/ÈÑîö*õСÙâL–çEŠ­§ä"ÑÏCÍ&U`—&«Ð“þß<.U Y‘›®ê¬‚Ú[uÁé†-z«ºÄª¶Þ¨›*W£…"‹ ïA<5ŽyâÄë³0¯IÙwEEVnU¢xT·¦­Pb~0ܺÁGÞ%KùV….ynñpSe¿'à½Y|Úk\O+Þg:ÛX¸Óûã?íÄšŽñ$ÙL  æ9˜MJDzôÇNÊ $¡)/&§—^•£[õœªym¢0úߪWØð~uÞWŒÑzëÀ¾ÂY„'N(¦Cä*sCmÞ„}ÅDÀ~°D¥·ÈÙ†¹Ébüôç é˜I‚qªmŸ @Iž¦/ÙË—íÔJª÷pU%+QÒ¢7­ Xa6ÒõØ#ãí)¯OŽ"Äžè)6;˜þ­Km]õËöøíqJï¹:Ä&¥gÜKöÉáRçÌè³Hyˆw|ÆfÇ?ž~/-&_Ý•UÏ{@½QWG8S:ÂnlWÏ´j ½Óú¥«ƒƒ}kUwvåÅ›dqÛ ÓXÑd´U«2¹òéw«¹ƒf“CØ<Ä.倆HIo²¿“˜`è '°)èœÝ%!X ±^¼Ò ì;ȼ·§xô1N¦<]2w—ûåýtÕ®Û^ÂöŽMOlÚàµ7Š5/:c*ËÌÛÐÊÛpûE='WЧÓ)N…2“ÌzÑkeÁ…:nç0i°æ ’‚Þ,™m^:}«›.Œçåqý¯ƒká8"|4ãA5fÞy–˜ éj5dm4=«-Á„ââªGYï9ãò*µ±ã³gëVE%Ôwb¶§!*âg@sÞ’y¬å,ãåix!ñ#ÎøÙsØz®/¥ž hÙÓH¸\8ú¤òÊ =ÝȺA}¿×P ·Ñ¦Ôi˪NVƒTÙyoíÉ­È8Ÿ[4—v67˜°šò„ ™¸´‹6ÀðnÅ*áwÍŠþ:¥ÇûÉÍ&Z¸Â˜G<]ËÒG±t÷H²JP̓‹¯°žw%=°a©È ¯ñ”jس8nÉ-ý^Æ).oX7ßâóxûY7;6Õ¶Ó¡¨¢‘&IŽÇ$Ìklë­7¼CáiàÖü‚4µóÔÐÙùê—‡eça; L_ 9I ÷õ°Ä‰¤g<Ê9ÔIœìG8ÛRÌêLÏK—ÁÜl*žú3ät÷rÔzÛÞé´ö£Ì¾ºoŽ’ |I0ÎV`›n›†½ž0QU¹ª5’ÛNbî(¨ÈÆméÍ„÷ªÛb‘ Ô´7Y%4˜ŽI?ål;óŸÙÔ ý{b ÞÞÜé<[B®å6šÃð ú}!,ƒ< ;v*vÅa4ìÑÃxÏ ̨çæñÈ«u#¨æa÷²ï¡Ñ$î{‚‘ÌûÎÌ/ïƒ'Ò;+ûÚSÕm\< '¬áé¬EþªÊꪺ·D¸fOúF’ª"Íà9¦q>˜’=Õme+*¹7ð4ùãr¼tÆ=²í<ò™ZEJ¡AcAðº[X ³y4ÉNuòß{ëVr fÞE¯bVZ·¦GÕ ,8û“SºÍ™O¡™]JsylI8WèÖ^ð?(œ8ºž9y¤q¦ƒÆiµÃ··n¨ãk?/)ïî`ƒ«ØºAPêlu͆,ÏaG[­  0¾j9“ü÷ì¡,Œßfñ ðPƒHÛµÖÌä4@á‘@½§ IªùƒSùEr°ƒª¶~y/SL“öU–îЮ¼¨4ŃÊc>š¼íÒC>=4,j+ ›©[Ô —ä:À©Uv&‰î¸JßïDV‹§PÞ¢@ zJ¡iW!¹ÞnÉœõQ» –L‹õç£Ü¨9o0=§N¥_Å—xdó ÝJº/¨YÔàÒ)êþž~ûY€ºJ;yÈîºàuI}œv}‹ºŒ õPq ©O—ü¶yoÙ‚‰=:ÄêóÀÇi{ÕºäXë^#3ÏkṲÛÂ’ëž Àú¿0Ó‘³‹š8í™ú*3Ü]¡²çòàEíI“gbÕß'{^f{•ã=^†Ô[ågÞÙl Ä\Îó‡èäD²°ýÍ£ºI U0ìSPØ:mýn#Hôéž²±¯\‹ZþÚ&ÉŠiŠïÂ&—V)[1$ÆÛÄK’*ï›/€È´7=)îÍn`ïðή¬ìDóQ,'‘EÞx*ï ñD’£YPvÉ–'=ÓËõÇtŒ0Õ~°T£‰•›cÚÀôµ`JQ€8ˆÒå±–ØÖ‘¼'¾ÑŽnköÜÔ:ðk2ÃU;õmb! :@’ ×WïÓ3Î:¹Uîz@¾A¸à0÷©nÊ{¯¤ŠzÉŸlÛ¼‹âg¥B};)eý;àrÜ•L =,Qãx‚*“‡–„Á\«žò½söã¶j …sKj¼²#Ž"¹Ô†ç¤ë*g»·ÔÝj‘y=nq Ü6š³BÊszÐíÑsytáêaƒ3®vùïÚ–¥@…ÍšGÃþ ¼œÖ¨¼,mz-.˜UǶ/Û;nÇK<¡÷t!ƒ#Þ ‚!#TO[•ô ¤ž§ôì2-å®åb=z ´¶éã}wÍëDRê¿ñŒßÄUÌjiµ³œ®ù¶ªÌì!žÁ«×‹ósìsófôEsJ +WK‰æ]lç1†êþðíá‰æºŽ¼);¦¨+¥,¡F!>/pà©L½†ï¦zuÕ‘€‡Îu°¡õËPâœÊ‹Î&2Ç~‡mS¢% MË04b_r~‹ï!›i$oÃå}…êYÕ:;ùÖ^„úêh¥þ*J Ï\Ú#¾Ð°$\Ó’íGÐhW| ôÐÎ ñjžå|—SIŸÞ€¦-HJéÙ= T+éèR}Ø`*éFAÊÄ€sÔ!¯€¡ztoþòSb“ï]Ó#Lv Á|M»L¬Ø¨Å§1¢gõôåÊzÛg`©ˆwzšû¬›žSì\.N[ Wu«>—mû–z4G+¿=®˜ÒcåÔŸÎZVlÇî‹—ŽZEénØ ;ÚÆ?w•'ŽSÆGæ&ªƒ¾£™Ç |“­^HÌöêÞN@ðâN´·—n±z!=öiÙK!4ÑÑHÒ0N'ÐÀP 4D¤«U‡˜ x. 5•ÆŽÙÓö×vm«½:wê[²âP°Þ¡4®`Z~KóN§ÒX˰£U»™N¥D5;¢Ò„Eª/ê2WüY@jz]j¥)x—Ñ §`½ÒîE‡¡^…ÄWª5ä·ƒ‘^Îù„ÍR¾a:½R²š~¶!ó_'sX*Nåz»Ý õö°ò‘ÔDr"=¤\‰»Á\s¢~)vÕ9^–;ër)ù•ÕÆuóù–êñWŒ·¶L÷¦MýœöS@ Ô-RÓ®i7 4GOš—Û¼#Þå€KuåéòÆ6áÍkEXžew’Aݯ;ÚÇãñÒë°ðGØï Ìåq¡~u–qÍj)ò"ëý‰îR­ó˜ôÂt/<€¿@_Û-ò=ìŒk:añu¼Æ¨wj²,ŠqdÍl·¡Ý:¾’Æ÷=‹wðÚ\p妖+×eiF!ë#mì™³í¸ºîÔ”c‚~²>f>EÏfí†m·æÕ4VxÌ*'%wKäòé¯~t8Z þ`3in”²3°ã½Ûn³²ìÝ6ë­ááïe1ަ"¿ÓúªÆÝy ”`{¾ê—Ía¼ˆ¸x´ÊZJ™i,CR뽈4û€±«ª÷hiGL‘tƒTù²mO'lÙ”ïðéÑFáþæêGN%p6ÍÑàôGÈ`/Mû46R;sªUÄ*ÓýT r‚áy¼õGUÚùÞ~YY‡Úã_Ö²‰°º“Y±áfUøðªµS‘ïÖ†Ga»ƒôºŒ+±2«DðÇj“Ô"ܶ^«ÁJqšB‰õ¸>çgÑè&˧®‹eÏïí)âˆe!MôMX¬½ÞgžØ¢—Í7¹ñDâ² œx «aËàI_¥éá|Á/³ ·8ª £Í7 Îö¥£UUåŽà¿rÓNȦDS§1í¥$`þ£•ÌÅiÔŒFتoï1ÚX?&£Ž»³Òª¯“I´8‘ÑOÛf¾s{º:‰UçÅU½fiåË¿›Íì,"ǵŽ<ÅÍãÛä&ßà¶šO·=*žêÌbSA]ì’}±cT3W.K(§)„¸KBQÞâ?ÀB©P·j<’à 7Údéˆâ¼:·¥ÒÀs|:>ˆ Aû®Ûß¶Fø'¹³H´àá½=¡\6ôi<¡‰Œqoퟆ ßy¹%Éwþôß+ʧyxü‡'ÊwîõoÈòÍ_þŒèµué½þ£•å;+üïæóþ‘æûg±üO¡üƒÐç ¿üúçÿîßÿçÿøWºtÊÒýßøûšy)þòë¿1´ýé_þþ?äü˯|ë_ü—ßWò|Ê?ÿ­âÞøå×ýgñù{"€sþæoÿW ß¿üÓÇýÿ›ßûùÈøÿþá¯ÿJúå×ÿó/ÿä_þé_û…ü›¿þë?Þøû?ùËÿAâ{Z~@½í§G2§‘»¤ö¨×v ÀÀÉ{¥ï7pR¯€`-¹ßSx@J¡JDÚ#Äi»í«Ë·ÖEí˜å™…>ý¶çwvëöÙÛ˜o÷T½Ö+*Æ ¼»Dü\¹êjDƒÚöö²£ôJ,h(YàÁŠhÃÏ@ªOâ®R€ë8š¦=„…ßñ–(AÙ}…ÌQ§úo¬P5¦ÔºÔMp·»üá6á<• ¹p`¤Â>Ê2Ý[È$£iqì0þ©–f5ÿîwpêö;ËqƒŠÇ6òâl© 7¹ikŒ:kÜ*_9˜ö‚³Oƒé•µö¤6ë àdmܶ«®R…´üŸ¶a%õ¶È{œ‚€—0¹ý ˜|+” ƒùeì´Z`ÉÍ“ XœÃëp‡Àxj–‹öÌ…GþÚo•.ÇTÄ· >³­Á(ÓáàNz™½o³Ò’ŠZ-Jœì[kä§Û)ª*ÏY#¨zƇ–oeMÎc}–W‡×ºtZ®Ã£Ì·WýZ€÷ÄßðDT ÓHñ ¯³Hª¸¥ïÕÖ ¦¤ÝziÇ‚ÐV#[ZôBíDñ¶=ŽËiOQB:¡ók?SF*£ëèçdPÝ5ÂÑEŽG±SÐÙ®ª ùÁ•X<êë¼Ö9xݯVHa +aÿ^£ÍÙyå7_3kñÈöñÑ@4³½†š^[•w2èz3µÏÿ =|EJØ¥,~8ÞwYçÆ6ËþQ5çaù|ºðŠôe„-'GÖ«ÎÙš÷þ ™j{Ù‰w9ôq—äáizSBçüŽ…Ÿ²Ø­ÆR×{:¾ lèžlÐ¥Ðø3¡™n{;)4KxšÝaŽaígº4i[Õ£³Ý’ß>ÃØŸ6ïrHës}µ§lË×XÆóÚyfK`°v´öÏ¥gØ&h3åW¾á\ÑïÙí qÚšI€8F]:š;õ °µ~òê–]AI´êá}kÑû;›©²ØA[kÅm3ËКïwüM}¯#ꘌS?C»úžæX#[¨pH…u[˜ƒ]¤-á:]^¶Þ7ˆH«ä`Vs>2tUˆ¾·8(j€ÐæL?;ØìZ÷¸´•³.j66Ф‰°´œ–„mOÈÙz¯ƒjÊY€™*ûð^'ßáÀUªérÇ,Õ`gùº˜6{²M”–ü΂v=¼ŸÎD·.‚tDjgžIƒüÂo’7<æMtߺe(ÖJUA€Nƒ"јÔ7,Š\¬½ãzÙ¢‡ßÖ±¶=èK,?º¡Ø;§ìÉbr‡Ù{Μ׋ÑŸry$Ì·Oñ/¦x³·ýÊ61w‹f±97G.ê<ÙÍAܺLÜ¡Õ`zñ%´î%(TÄî/,B{xt­Ñ×¶¼nt-S{T,c­™tÜ`»½#TVéSÐUC_{Âf²tºËœg‘¹n7âÖŠòiöM”ÊG¶ê0ýÇŠ#&ý‰<¹tº'[Ó|l6ë¼²ÄtÙŒAQ™¸‹ê+(Í:íÆN SVÒB±- ä]ã Ò:×­üMÉ×ýžy°fC1/ßãù³ò1'Cß¾mû×’ë%m§—µ¦ÈT$ákJ5fÓ]—xFðLü•å„,û§0åçVµt¶gB±<¯- ZÍç‹%KbZO÷Ù³z,xËq”ÖNçc]ÜÁލQTž©N?F{½*ž÷Rlßõ7)g­ÙbŽ$.Û$ŸÙ2ð€ðvÐE!Õƒ'•;×rq¯ëQ­«p¡1_¹ûÀçæ¡iÐÆØ›=~š\yGÅI­õ[JaòÙ„þ¡ÎGeýÙ½÷žI¥½ôvcËÕÕIQ‹Mâ ÓwU¤Ü:_á>ǧ¸«¯À+vB–eùôÊÛÓøHéd‹­¤ˆ™l6M«<<Èyí˜5IûœÓ+´á­>SÑR~¨.ËzöìrN9¹ÏÖy7QM¥ö]<‘ 1ݲˆE®"Ìóõ|Îê«jrÃÒƒLK#U-ñT®53´ èäȱÚlh+ÿÚäù×FTç5zJÝú ÂÒ°­#„›äú°Þv[^ñ˜ÒYd½BúqE{À¥ÎjÕ”íö¤Ú_Z´¤Ü þ|åR˜nèÿh­t™5éyXéoU@&ó]Ù‰ÉZš…N9[JãÅžIÎj¤Yk`»îËÆì>yÎl[M¦²-„U}ɪ†“JQ þ‘< ÷ìõ·‘üB¾·4¸ºÒ–MÁ+7QذîáI|79D rŽÀ5WŸ¡$âðºœSÖ$¥¥Ï<ë>Ã¥ Ÿcm®™[#¹Þ¶oh;¶È€B¶›ßº„–Œt ˆðÆ[ Ùa%ü}ÏÞWAÐ)pëTF—ÕȤ÷f÷­|YÃØætÙ#âqòZ=gÃPx €BD†…“¾³õ˜'°„vºøè£!=%Ü÷­I;K‡mó*®=l–üÂs«ìäÖ7K[ÁEp½lÃ_òå5Ø-š6ÂE{²L¡“R³[-ÔïU³J…F¸ÿi?×Á£^Øí”ÃÝý?*íÑòQÍLm8ìRB'´Ïj=÷ ªýay¬ì!ÕÛœ©‚ߑւRuC9Gø{ù‚=,àX¤Ï5ºsÖøî¡ž…lŽ¥:J($z–¸ò0²„Õ «Ü¹ ‚C¹ìW\ 9 ºE«MUᬞ@<ñ/¹Áàƒ”µ7ƒ—éh¤õf»`¥µÙ²a3Ï£‘íë’Ï'ûµh¼ ?\žZYùÇ×Fv—Õl~…¦»Ú°ÉžÕD¢ú Ua}>‚+pÔÐJiÓNV_X°~wF©‰[ÍÑá*Ífý3?`?¬N]Q“z¥—«®DÉÏJ =ÏÐz¬ñ3F‘ÇF®®z²€Ò–t+› ºíh96è|­™0ÁÑ`ð Á"ª‚øÍçª;»žŸ†võuþ8…÷¹ŒÎTÛ’¹ãäÀñ•ߪ×ä”å#®ñûÜ ¶·ùJÄDþÚé¬ö›ïTÚüŠíÇ/BÓL~Â{AŸW€)$£¾öºóƒ^D{öXʡڌ>”zVŽ$$E6î¨S2KO¡ÈÝË>.ˆ³Ó¢žÁ@ØYÑq—O«?Xƒã+ödh* ¡>ê ì/dgOˆž|X3÷Ðs!¢W¢JÁÜNá_mÍflKõcÙl~Ûè¹à>ê¦"ÈJv:uc>’¼ c‰bªµªÌ¥ŠÞº%O-¥y¶2¾Ûg2“ÍvzF¥?agžlØI:¬D‡™§f;@i°D†å¼ï1¾»Ùá=Òjª)ûHò=º‰OýòñÞ$phÓ¬¼¥t9µAôvˆB49!™M-¶Tª×)&"H¼: èÁ`wÒ—@9Eë´i75;¢RÊÛ&Ý_á»¶¡x¨D” á™ IÉ´³Ø•ü¯DÿQmÓ³¾Šµ:ÙBžVZÃ(y_¤TÑi²!üÈ1ÛT±Ozd ¿)ñ±vÕqë¸'8¬{bì¸ÀŸ佸¿>^“½N‚?gØûRçQ„¾ ¬R=OŸÓ©®ÈÅîɶ-ùÑYM ÂËŽ Èå èr»C(g“7«V#Y7Ú[×z—7ªW¥¼\QÊMaºÓL0åÎ4Ž w¨£ô­j§Š ŽÕ}ªG&Wð„”x§—>Ö,©»ð>„ûISÐM$iJÏRÑyQ=qvY‰ËéýêO°tÄà…’ÌSTm!l‚¹±Ç`KSmhd¯Ó >&€Hë6Ò|Çä *.d§ ñ­)߬•´”ú8° ¡Í~%Óå”WЇ¥©V5Õ UMÃÍV,Á¦úr¿­k˾hw!æ4_-ŒeøÑ“{ÂK¨[E)…¯o½p†äÆ ÁSeYè¦>Ô‚°ÇX¦…®óúZnUoUì78mzI5·”ìëd¥Kx©_Óėৈæ¥{ø¸ÁKmÍôcïÈGb‚Ëˬ°ž“gUâ-Ö±X&Ÿ#­Ú 7WzΩëÒ~œ@ßËÁN:ÐèB|k@¼äèÀiô­ÖÆ‹aA}%‚¯jAE ¥‚À#^µ&tV€«¼ÊgßÖÈ>,à!ÓvûM¡\SÅ'TW¸ ”¨{¦þÕ#óT›‡m¼óépáñq‡¶Y”.r–2E!å_¹^Oñe… Ì ÃþEWî6‰N»Þ K(äüçzímW×ìu«ü©ÅB–?D š!˜‚6ò³¯¸<„ð¸ÝÉòúöËåÓêË ’V:²Ù–S'l–%WÏü=<ê|7 †×û°N5N ^ÞwvîÔ{E„í2ÿÒÑ•È&ƒ­ú')î}ÖÑ4‘Wõе¶Íóò°²ÎÙI…§Ô¥ŒÊbC½FÂ?) æQλ9÷$sˆm‡§ËÜý9ÒFÜÆ¡ Ú6g’”¼„¾0Í.ªçÂhâÑ®±Î¤vñV«è½ÃéÚë;ö>Ù!&%Ë£ ïÄ•öÉÐTW#+>%$7†óMš›¡%åÄ^LšG$ÕYUœ#°*-¡‚:7úC²/鎞,*ÛóÎI_6g]#²{HÄnE’¿bÕ9—mÆ¥3”H~UÚzÚCø©Є®µéó‚˜ÙI/×àü‰ŠÙa{Ó×ÅÅŒÇù½z¤ðÔsÉÚ·ï …0·ð%Tp{;×ì« Œh£þEÌéªgŸÃ.V¯½æ`2¶?h=H‹º-¡}G¡õö|¢¸Km°÷¥yôk YužîìÔ“°µyN<‰wðm2µbÿâµøàá:ùh…ËÙÊyXæ˜AŸ[ò–©Š— ÚÉ옯ø;pu»†ú`¬Ùfb8@\N¸x”âñ´â!ù²Ï³Â ¹8*ʆ.}*’Ôµ%„G]Êñp&Øž{ÓÝÝ,áô®“ú;®ýÍEz%"ëòL<9Æ@Õ®AMAûeÀUîÌùºRªƒ0П­Ñù°ï¤´¡Œ"—YÀÊ­^ ¡œ±Q…¥OBPTáW¬Æ‚$Ó*{Õ”ô¬êà^Äm˜RõÀˆ¤\J?AŠ(ÎÃDËnq;€×¿åгW}ìç ÊÞréÀ˜ºŸ$Ï刉Tlܪð'á$2¤%»ûYnJz9¶¡‚‡pdí'€Äs™bŠV}Ù@ûhHµ@¬Ã¹‹—ÅÊ}´z#ƒä üwë)aÓ·=¾à}^‰êQ­¿$'· 2¥î «Â-8Ç©:£Qf&ƒÝ»—øþÇ$نΣ!BØ{/AwJgçá®za¿q\gí áॵ&¥¬ÁéÏ´Þá0PÔ Çð[╉s¿±IÓ*0ž#èP'R·¢Æd_%ë^i^…p,èÍv»ƒIëý^HW›ìc]#>ë¥ögó¤Ôrª‚Éßj -¶—Š)Õˆ Ú&½.´Ù9; 9ø•ê)'l¸«íU‹×Îvyñf; û±CáNü·kHس“Us\¹ÊèL h… Ç>ž§ê3w¤•=KPõÔ\ìvtAo¥;‹…‰{¦Étn€Ïó¯“WTít…szhûÜí2ø9j¨Þ±z"³D:¡ß¸Ïß°p#ï„P¨øшo„ÝG•hv‘¶†'EïC pŸÁk’ßÁ}ª•®ì,q€¿X ƒ±Í®Œ°¡[&šKÑ–¡F•2™Ö{€SÑNÝÃ"1M-8ÅP‹-*o4`²žð‡«¶#@ ®EÛ³pÑì:zp|‹Ù©%Ïw£¢ú™^Œ÷ì‡J¼ÓþÉWÔªçõ~ÞŒöN:~¥‡rb/9ùËý6ÝQø•ý>à®¶©“ñÁÀQ­¿¦Àm­5ÜÍ4$Ô\#{& p9‚H LÓàÌ ÿ ÷kœÈpˬêVSIKíEÛI¢…WºCÙ`¹æŒö`mùRâdávñ>ÂÍ6 ¬Z~¥):®¨ÔŸMkŒÅc9 %_ÓÌõ9«Ž^´@º­Ž%˜SÔ€~¹ÆÔà2¤=Øô¼´k-–O—1kŠì\[}}äêî<=1ÝN€XWX}Æ¡È@âý”Y¦lj…ª#è´¸;‰CEiüe¹Àõ(P²ˆæå“•cÁ€ö‡á€Ey¹•§mH{SM³êTÖÜÆƒý|¤Fù²¨­<)!.õF¡éy‘­X’…Wàûûª·&Ø]éhXtò@EdAY8ãßð/•”V½”I0=Êt=|l –‰;ækP.ªöZϱr‰ » ÞR û½Ø¤Ïã÷F˜‹L?1>xY1ññ&Ö´ä¼€¦ÏW‹¶}Á­ŠÎÓ8M¥ˆ+êë@©Ìx€€¡áyEy¹WµÃ/ëz¡žôÿS¼¸Yyf8¤BÍ_ðÕÔÌQ}=)•ËN[¸Ð—M »ô¦´O‡Tν(&²ÞÌîvîO‚Ù¨Y8q‰™´QsÄæû2„£«ÌVDz¹ŽÏvýþÁ$…0pè ×±ãæ¸Â˜"T*™•¸K’ÞáÕ›‰ä§BBfå´ÇJmTX'ö¨3óº„Âsª.ʧ_ŠQ€’6¬Cʱƒç…Ÿî«[!–¤Òé¨Ýn¼ ®3„Õ¶žœÎ²µxÚL¦ð¾÷e;(¤*ê°w+9½õzT#‚²4ø+%W¨å§YÛÔÇR󳿴-!ª8mÔ¬~%ûFXÝw’FG-¹º†Ù_·*‘ƒÙmÉ {æzŒEsMõÒœënåD5ßíü±¦BÓ‡ ®Z‹:gì÷W ©9ÕCª9f œs7{Å^D:õië¨Á— ÙC|v‰ÄçJâ¼êsz_‡o»Ø¸G;jXdZŠ J“ÁµóP$;Q '(œm¤ª,d‚ÜL*FÀbÏn±c­u¥%mø =®|Œ›Ø+*]ŒKx¥häXa_vÎëD^4½û^…±<ßÐhøÿi‰Ñ·Å{5}Q¹G WÕ•:ÈkÝûÐ ËAæ[cÛØ¥àhtM¯2ÕÓ&éX+,šv'×Áç;Ê×J]ú€X~õÈQ{2P× *ùôVh);+!‘ÛT]ŸF÷:CP&†Í‡a^›öàðô¨=Ç:xÊÚ‚-Z#ʵ؊ð"MwØá„MD§нÆãØÑê «R4X]‰Úzyl‹Uãc)LvgÐ’¨&*KÙN¢f‰ý̶ è¯äÉYoÄDË´2„«ͺ|Μ;ùx(º,¯yÄ¢½®*ãÚ§ÍhA™¥½¬žÃæ?@à²Ib¿Ö’š…Â2dÉüY±ƒ«…ü*ÙuëSufËËxßQ¶©àeS„HO.ȱ±³="¤å£i™õYÚ7ÜlKl͸¼‚ipNú¸Ý(ÕÁ¾¬z’L‚[ ßÜÞt)YÍÊí{Þ$ ‚¦HÝöV½AÉ‘£ƒ#´ß:Ä™ˆ$G^:¸¤\];sè´§¹š]'xiÕÏäåUÌ'æß#œ:W毾ø§ÇP,‰ÝƒõÐÔÒ}’ãV]¸¶opÊÎý«äJJÑ4ç›_¶ ¾K ͕ۘáQ)|mi'ЇM nêù.â;diåòñÍ Hrzâ¥nÿ­ôáÞslI‡`lȾÙÎÖ×=²$+¤Ø:¡nl– ´&L$‚@ØœRÕµ€ &=Ú3Äùë%:Ã÷N›µÍêʦ ÉIÑöDõA^([1Y¼Sޤê|ì©:„BÞøET°ã?jP¾ÌÞGÀ†¡&û‹y]x&XL•PX_½n5òüFÖCävŠÇ]Jàþ˜Eìl¥'¸D'ˆ£ZZÑád€ .ã"W²<„P·—×fqdhÁÒ”,&°#*`Ã¦Ý 0f·ÏÐ@o_º5T…1{ßIàà2/&Tí :›È=-èê¡É^Jìºd±^Ksžžúih&r>,wpî9ËóÜÄJ?1Ò3Aâ(oIsu(ág=¥µµë|Ï@°(ó(&kvVôb±õðT‰[·`ÅóÖøø”ÿÊ>ÎóÌñlÖHÓOåXêëŒãt ´*&^ÅA&{ÁÏ:².U„Á^ñ|À:ÚP$È#<‚ÀAyùÁ_$á¼^_ñ~‹~¦uÙB·›}ï>"ÅWõ£†(«™ÜÀ#ð|:ü½¨®AxcÉiÏ~”ùo’§-2Fžè)ªr0¿—;Öàq›ƒf“eÝÔ›§ò\<ßwBH§Â¶‰ƒäìKQš[«Í¬¶cä½ÚJ¡C!ÚÖ†*wòhÜÊÞ&³5UŽ»x\U›Ç±–4´æMÍF:§`ŽÔ4ûº”Nl¿Yk0q’˜oluÚo½ÓÛÇ[UsÂ{Óî«qg÷‘#üÔY+é½übˆ(¨JmÜ¢Nħ*Ù3[²#•×\åÈ£„ à_ØÊ‚ ûõxÞö9Ö }sAˆÜDCHGôúN]ÎXõÁׂ&áDžWÕ,•}¹i¾“¨?nG?kOæ¢^"¯ûKjuÚ v˜y,ð¦\.ö¤½%Y­o‚=·`5=JÃ|­Yëµ”Ÿ¹øpÇd?úSOe)«Ç²l¼á…Ö@n&û§O\Ç ¶Š KÐ(0³?Æ#½Ê5øéŸ¦.À€vÔ­€üŒe—±ÑúyãYÞVˆ|éJcCä—óOºmÓÑ%‹Nú&‘0‹ŸmðžoÀ¨Ti-Z.U…_.í9¼Ӈýñ@‰úé²×Xõ E4ÜKâ[Mn¶„¨¢ ¯‚7;N•°G°AÅ*òôAŠ´$b±5±î²/«K`”ïýô*Öœšýc2&D¥76¸UóÔJA‘bÞ`bŒGƒ@)/ Y•6ËxÖ»õ±Ï–F”×…)èZ BqhIø_m íï£\0úóùi+Mö®ê¹Ÿƒ[a ¡ ²l]+®ïÒO‡HÆó%÷B|ø[0ÕÓڳ͎žK€ð öŠ»UÞ{(û¸¹_NÇË’=5ÐÿÞ<³S3½þêD¬¸ºÒÆ%f"ôã|Iz¢ò)u^wþ©ºAɪè“6AÆþ5<Ú„XëöØ7{…õôêû0ÙͳŒXÒ=¸Aó+㋾/âG¬=êÁ-/²>%= 3‹ˆ—¨­j­éî“}í—vò UŠcT=,Öw¼mÇ"ù–ô«º¶óèêW‹Ã¶Lh»Ñž =š>tpßSõ è ÈÙnd¤bÍ;c­¬¹Ï`å§jÿôý@&ÖÕ«)U5 f‚¦h?Š (祬ïµô˜ê·¿ßà“ YZ ²Y!íA@_ŽÈU•H+[ˆä4€Šûì²K©îAµ8Qdý,µIØùœ9‰Ö=«Ç_áó_J@’’YHÉ.~YroyÇ6$X¢DõhX+»Wu ‰•x‰Çš~]wæºaýà¢Ü´3UgÌqÛQt)‡®£Éö)©x³Þ?*UüñþžjÿËÿ\ÿ€Xÿò·iuœ_øG)ÕÁýÓPêðÍþ•P‡øïÕé âŽðO§Ã[ýk2¹ÿòÏR ¬Ó2!ñý·«t(ùñI¦ÃÕýw©tðïÿÀE:~ý“ÿÈ.ûOç5þí¨ó—_Ùµþ'¿ÕÛÈ¿üú/~û§ò˯ÿÛÿ u‹­PÿÖ±ã§áÝùR7[Q1·RßdhƶåäþmƒÐ„Â0êñܽA|¸£+°V ÊÀˆ'Ô¦e°Ý–‘?(#MhäÎìœz\|qSW]ÿê‘.ˆ–Þ/@_ ,MMc€çOxb±ºVs:'žI)·üûËu¦Ô35kÌQ“û®kDŽD‹&Ó~×*ìK¶Æ)^UMƒÙ0tFÞžL¯1/õÒ@’‰[ZºÍhÚØûmû`жli]W‰üŸDzecØ<RᎡRQƒÇÆJÑ•÷æ«ÀÇ:‡Üj0ðò°;zêù@fNwãŒG¦mÖËép1d·/¥”;ð‘<+œ¶°v¢%øÒqM³Z½¡uP0«ñúΡoS²¼8¥ÏÝX?óÈ•r~½ÃËŸ3ð£ë/<¾Y+Ò·!´û¾tÁ+Ðà!¶7¬$:VÜ–V^ÈÝágÖÆòã@áJë‹{–ה؄Ç<ÚY[æ+ÚÍw#äÞîõf¥;-_¿¦F9öÀKQš½ù5‹ìú©–D©ZGTÇœ²5B¨þÓgR¹µ…ÿì¿QŽÕ¶N½+§Õ}ø(—°¡6ŽçËß«¼°½åvç9°¬qwÜSÍ'°Î~F‹¸¸^§3.—ny„­¨©¼í¹Å;Úª¢ö¨ýh./èÆRe1-[)^µÜÛ¾ÛØ]!”’T&äMË—õHXðôK1¶ÓÒW¿ö×õ9oº]šÅf6í¿ò¶ÑiA|WSO£=Ÿ Ñ0Ú¦qêcs~Ò®lT{?Õ_µ±@E’Çê84T©LÞ×ÁºÄêƒ_± 2L³/;ú^Ý)œ¦v%² ª=-ò)ou`F‰ï×ÖG£óòÍÆN®â¶•ìÓfÀΘ¼®8Ö ˆ°S¶ÝmÝ‚YTªT­uª^¯M°QdìYÊvT]/¸–‡íùö;t^¬¨öl¡â³½sN'tœò'd±2‰ Ô¨§ÒK¸àL£k¢G€@Éÿ¨+£¼û.zðéÝÊ¢n/Œ5êÙ¾¹)‹kQ[âÞ®[C*Ï£nv›åª;Í çíä‰@»Ct°~êè²êܺ‹uXì]íÈwŽž{THÅ^â录 bs:C1ÄòÙ­ûXšÑƒZÍ|µÜÃ1'pÎFͼ–Cº¯çÁ„K¾Lùœï}ø'âzT:Æ.ùZì§ÍZ;“¶Žf)½£Éù™[²3ºô²Œ©©Ó«åêbÍkÅá°^ªQÇy}ßÌ›š‹¿¯‚ ¶ª„#¼‘øL«‰15þT°j²ôF2NéÉQ‚óR8ùEç¶Nk8hg±›ÙŽ›»Ùqì—Zî:³ñã?c3ºGôWü˜Ú£›IýøÅÅ>Hj ÕR˜ÚyZQrhjÅz'ŒÜT]ÑL19ºl”ŒÙInŸ‰ŸÞ©äì‹6d‚Ç\9‹j/i=‡m-XÐÏ€Yp)× 9¥€sK[LÃ3ŸoQzI¿mÂ!¸¯ŒÈ×°àß]]i£cŠ Àp×å`—%(ÁâP±ÍЍž2¦·Ÿ÷WOkÏæuŨ ö—Cz-9ÃV<]&ëÃeÇpÖ‘ƒW{¾˜6q¤:O=ø:p““¾bl9=i¸QIM¾ÌŽêGšOß—¦—ÙBs¦lY ­®¶„ãŠv™I-ë+zDV!î­é·º•3$ÏaË=‡—:ëxH®\N1Þ«ºõÉT8‰2Áüeò[œýÍ{vÎäYz¾‰œ#\å¸eÓÇ™Rì°·Ç'_Ü ,'~;=–wº˜C†\·$!_6NÜk^ÆÔ‹…˜°ü40Žª‘Ms2ÐðNšÈ­„•˜šô—î1§…{Õ›(ç"WMÅ®rØ3áÁZ%Ü l<þq:ùÙ„HÆø,,]Jn‹ßÙ):rš®|‡œ²Ô‚ÒóR1qmÕu¯z¾k[Çþ`Æ“w·°†­°Þ WƒVYhaSÀ¨µž4 –`}¶+²Þt-ZŠèuª÷áTè¾àÐÚ­iÄÚ"»ñ¨Ð2?Bz¼††º·~b¢ Ø÷„O–]Ñ3¶$¥ùJÜ&AÖÖøb ÈT÷Š}zvÓYÙ†úWЛ X• È·UÃ÷q˜º+‹¹$°À”¡ýW“>j-)P¿v¼ç…Ýôu"’«_n½+WÆ=Z¡"”ê»<ÙL¯jjx”ã ]bÏ*0çäïqà;ó½`:»hذê‡Å@:+貤̅6ae×¶œõ߆x hfµ m<÷tú’Z†ÓÆ2R7ûw±dþÖø?ׯãD÷N$øI’_û‘Ô'oœLÿiª¬ð‹)Þú Í(oú´ ‚›9ñv¸|SrL…¥d몾ÁIž˜$¢²y“¾—Šˆ³ä©ñ7Ó_†åuN&ìP¶g‹/QhŸÑ³l•êuþæz‰ jF¯Ë@ÆŽW`ÚCntj1똺?ƒP·.Ëò¸­Îއ—\Ê·èT®ˆ»(¸¿šzW1kŠÂÖ EyVWMâ ÷ÿåÜ÷÷œB#OLÃbBeSŸ€Lx'OiOü)7‰³HM¾üµ¯x{gåé§=Ad:ÎJ”£èAL¨e´ŒÂéðãö )ël¡` 4væ þq|Ÿ¥ ª–MÒ¤4–¤ææA_Ð`ÿ|^v·™'è}™#%j½}2Úà(UzªE|fþŽSu&.†ÎÊ‹Î×;.2Žƒéú.ò«ctà™óàü)G6'TßeÚXíÛaÖí mŽùñ%kÙ|½¬âzjÌl½‡‡Ó5‘ü2d‰ªªè£Ivâ8ršCyyÛG×.OªÈ•՞ߢ»•öº‘ÙßÂçªc·åª†ê@LwÞZéW²XîJ*PÍ'lI+} áëzÐ.×ÀüBÆÃÇræ5½‰:nTð߃ÿ•çÓÆóÕšã0†{õxþd{4¡µ ˆÇº%¹æœÅá¡‘˜²þ¤hÊêy’•›è£ÚC7okìBd«Õb¶T“äÖõ›4©Ö ®é[Ž3Ü'8™’Óø’@i©I¼5ˆâÙéßÈšœÑ¾IX޹°µwTŒ¼‘‚YñT @‘v˜óøœô;º(¹Ý£vE`ûé°{°Âvtñ¹ëñR½˜wNº•*)>ò¬ŠnU;¡¨­éµ¦¸ï¬m[R½A˜²¤¹ãûo¸ÚV~ØrŒmo—S~–2£Cî³ÂÚÈ(³Ì6ãæ¹ó¿Ó«cÉeYªØS=âURB4« šúÖå:"œ$K³·§U±že°˜öñh×\ €ê†9-_­‰’”}á ˆ‚Ùy6O„kq¦ó óSÊÐ ·¢F™8\›:û‹#´âdT¸Íà\í¨xÖòêÝ^Û~a‚`Ë|æ8•MºëYzšZæü^ lQrØÚÞR”!-§^­Î9ú«mkÊ œyîÓ‘9Ë(ùæ¾ (i«ˆ£牞ž7A(i+=:=HLA‰Õ¸möøc ªš°ûZp\~JkÖ¸¨Ê8°Ô†ûò=D“(ô¯ ÿAô0}2‰RYE;î?Ñ.a ûˆ K»Øou¨I0‰ÝŠóëZž§pp2¤öku•sªU+¡2Y½„ýƒQ«ÞPœˆvVÕCÍi÷$4$Ø0Wù® è °À•ºˆz{}Îx/—o»Ue+ã• *Îó©çWƒµ±RìÝKZ%7ÇW‡ =°¯îäkt¬ŸW–¬8¿ IÝŠ wekˆ™µ¼³¥Ÿ¼îü8û#®óéÄEƒƒ\íoMí¹™ËǤduég¯í"ÀàmM>ÉñžàA¢7! GèÈçñ²Îm *´Yý°+ž=¼_”õzƼ¬Ž‚+ B$ è<éÃ"Žíäp¦}wT¶u>+ÏŠTíûµš ­Þee+Ùöì+‡ iÞKõ²]z9 ÁÝŠ‚ì8Å0¯5ƒH¦·d`=çàü ¶ÏòÈÔÂ¥± /Q‡wˆ;P^Cr Ks:‚-X,í*8äyzÚµ‹o똗÷ž„,aÕ[1B‹CUlëU¢" ­3[1«`ï•™ÙÔ}]J…s)q+å-àöe%<´h¥ Î(È+yŸ3ý íW%— û8u~=¾™ÇFŠçŸÙ½¥0ÈôS¤Ýžô&gÙJ•©D*Ÿôh7=¯¦…ÅQ/õ ÔR:ÓQÕñ¯lãúõÙ„D°Æ¸ay±Ûÿê0(ÔWk™+Ц’;»KW¸ ¨z?4gì„ Éνª ö†|9MG<˜DjÅ>©+<9žÔû´µë$ŠØ‰PžÛpµœÇ«ö#= ßMA÷s\¦XõÒ:B;¢¾2wž2ÔìÂý^ Ä&ïÑdF„—|Ëy,‰¯átT—gêìn˜Ø) ÍÇõ †WìçV{%[Í&¨¶ÜϲÃqCÕÒ°WR-æ“Æ……ýºiÛd0&ReÇäÒ2¹Jn”t&ÜÕ;uNúDª*KH;(6 >ùŽê»}K=Mõ(tn=`MÅÏJO8£Ág rÚìfð!ñ­%>°–‚X1@Ë€ywHÜé­Ft‘HÎr­ hµšjúèÞ§ÙœÍO¥¢· SéÁx6”ûG|BzHÏæ‰Ä«êq}†²lÔR„ñ^T;:VàI¡ní9Ôú^^ !,|›ñÒ¶‚Mö NÚ‘V¬Ù.nW~Ü©:)á}Á_µo!*}€™ŽLê\B’[Óò1êv»«eé?(„º4„}ƒÛ#xÀ` Jø~·•v ýfn¥¦–Šž¬Ž‡ÙŸ#À>þI(¨þ±¢^<Xq5;kwçü°Eœ>ñdjàuÖËIkÇ8‡òYÖ‰h9Ÿ£R ir5®md ­üZ>Ä7On_ŸÑScEð‡CŸ%¤ÂÀ²G»6ÿS sJ#Uöø³º<»Õ>HZYÖ¡AË)¶—µ(JLÕæÌ²Ö¢gr*Ä|GïÞK9ªÜÏÞCÁ ;K´gAe‚+¸Ìn”<´b=ì|­+¨u©HΫ •²1‰ÿQ™ ¢Ÿ¬&˜SävÕl¯€KU ,´ŠgÓ’\K¶"[UA2k¥aÞš3y¥s›-ƒ•ÀÖ{¹*"ÃЋû½†KÖ©¾Ýסûñ|·>ËÙ1‘ᬠáe{€¤Tâ£$ìýgªÿ=–2Ï=‹wI 7¨ ÖL`C©CÔmæIñ²6ЉªlÅJÜ>%ÿÂí¬©öRsîPTë9bf‡<œí`EÙq¢ö·Ö¡kÀ-Žfƒx¾ÐQÞ~u(rg'&« uY¾ë=“P3é™Î»@ƒÎ±êOªœÐSV-ÒçuV‡ Àãº$½f9bâÖÓVbÛ^ÇŠSQ—!µÉ=þÜì¹ìt‹Rä·s””-{¾KÇ™ïøkÀíP%Ñ¿7çÎܯ§jk…‡‡¨º-·6¼VªÔð‚'€åTÑÜš=«›Æ¿}ªÝ)å¹ÕI 22t¿’&@ZK­NMCÈ"NÊ:ø‘&—jy˜í‰r1ï3ãã!pš•dý,x™Ú¼*ÈÇ/h¼ìx·Í.Š+<¬Ðs·>Rl¯PØCZ¥Ž+ u¨8î¹¹«v9±OÐE#Ø3ƒDÄm*‡Á'H8hÑT)è…&lš,ÿ )ȈyX:L|«ƒVä›ÉC½ewìd7Xs ’ûÖP$*ûݶe‡ 63lb™¶u­#ç«"&@Å?;_¥¿üNç îÓ²?l%ªð!决ݘA« £-•J4'íÀ5·¶%;yÆÑækc ƒt¸s~æs©Ý›N'²‘MƼZE-ÊÛ²Kކ%Q=”bClA²ªu<‹V¬ÀŸÜ?b  ‡¡À½OB V¾Z':àw­œ¯Y#,+«ß‚á–jÕ”ô~sqŸMŒ6²©±•lcþ~XžsºÅŽ›H•Ul̺^ÕlYÇõ‚ìäe­æøÚ?*õ¸†·y{Þ~ ?@¸%£b•Šgt:ƒH¡÷õ‰bˆÉ ˜Ùiø¨‰Ýqðɲ«é*Á(øQËÉ6U~î RËãq\·…\‰Ì4uí+qñﻀs’¦–V|mkPÿÛ‡L6©VryÉß‚öŒO9ó‚½=º~ÙÅj|¬e}Ú]²¦»=/êâ» §*¢A‰ù‘‡lzçT÷µyáŠlr ¨lóƒvzÀ³ÖŒpI›Ï;ÚúD†I=¯ªÞN aèu•a”`¿ÛsƒìÉ /ѲœLS×êûø:Q*ÙÐ4¬—Ví ÕÝÊêî°‚ƒGÒEµG'–?B^ ?X­æ'´ÞJi¢‘#ÅK,õ*ð‚~‚BÙ#8௞ p}VÊTfBu¸Ó ûè}uksr$têãAA ùÅ5`CUPôÎRW­fŸ “ƒÇf¦É`}´S¿K¶@œ¨ÈŸ±BEê5¸œ'Ê„ªå!¡Øó:ûÿ8úÇø{Áö?8Ûÿö!Øþv¶ÿS‚í¿;Ûÿ^C°éâlÿ^õñ7C°àÝìC°ý¿2Ûÿ8ûwÁ¦ñ˯ÿéOþó_ ½þÍ¡ØÖYg¿ýÿ¾ÿ«³çOí—_ÿ÷ßÚÔó)ò{¦õÿò÷½êÿÕï;Ôÿéïü‘ý·¿óÇú˯ÿîwþÈ üÙïü‘Oþóßþ‘ýë¿ÿ?¦_~ý¿óG.ñw í#õÿÎù¨ÿòÛ?&>êÿùã8ð?™q`1H»iÁYïô\í 0û¢#UIÓÓ-ËÄàí/8®j%JÞ[ùí Õpª¶¬Ô²Ã:p¾kÙ¥*T“ïå êS!é ñY-ŒsqÆT“Râo)Ÿ*wϺ”-ϵߕ¥£±µmЉwovߺçðÍšj·ˆ•sT’RƒW¥ðÇ¥n&ŒûÖºDH;õÏ‘ß}Ôêàæ_®®@åÞ^%Èž jïÒ@¦¶ïÊk²$›-OI Þjùž¿;+ºôhËûy<$Óy]ŠÉãV>¬ŽëNÇ´œgûÔi’å9’uD}y¬¢ùÍWÃÚªëžN–ÚSÂÁü¼¨¸Îg@ª³½fßü‚¢lËù©w•W‡Z®™e[Vå_¶gE§ãwèü¨ÜÝaÓIEèvZÞØ ãYä>çy:ž$ýhŽTlº!A¯7ÜÙ6ÚLÊ#BºjpÊ¢pb«>ªOëï•=O~Ùö|7{!X"\Ÿ}»×Õ|¯žávGå¦óWŠZ‡¯õÞôÈì¤þܺB³åò5Ê»÷Ä]%iº&¦nê$9—þé ë9Ò[=M%äÀ+7 ؆âÑC®šûýK³Ö_±{ßcD)ös¼˜n/òÑQÇéXâ¥ðøÇu{ÌÒ—=¯!ž†,å$¥ˆ[Ï퇑ò´ûÞÓ®©Ò‘Ýù‹+›Öž·ÆÏ_‡.ÚÚcÓò£¹ k²È¸¾öîKe¯÷v8?i"^¯aÁ¾|NÕ[9P˲¨²Ç0§e)+€ÉzÎ1ˆý›K4ÍŽ^›çÂÍvغ_Û÷Î3t6n;“ÕÔÜžâ ÷N Âàï9­»Kø²:¬›V†Z:|ßÊ7>]:½ïùÃEeß’ô…!º8í±S¾’eÜï ?çÖž|=Óž3Û1dÛÜÙnld»ªåÄšøçðžÎ3°O€íÇŸ%ð2ºíñeì#¥ŸÞOºãPl«xNÂϱÍ^爾û²Cêcßlf;Yˆ:\ê³5âê§;a»ñÕF´¬åQxÒÅÛïYòºî¶ô[Sg†¬ì zŽJŸë ଠx4«¬«øîù‘çÒè…4­?NÙjŽö9èS"•¤=œ#2÷ñ,h 8"eW·ð5ìFRh3LÛ+Ÿ‡ð<Ò®ÁëKÛÙ:õPÙKšÄ؇°ØÀþÏZCÎ/+·þ:ØÜJv`|²;»„ºªçNñèá­íÞlÍ-ö_½íÕ!:‹Ù„æ²¶Ó¼£9MšÇ—ÁúÓkõHd^ñjܽÂûZ“xÎuf¡‹"ÓzAÞ#ž)y‰'J—òlã´v8Eß”_ç®6ÏþÙÜq0íhÈU65v_ºL«û¨ªr¶¤=½^]“TüOt.â¶‘w~o%/B^ÎûV~mÁJüiÖ‹-Û°šŸíÜ_}¬Y´Ha·Ûà"‚’7ä¢}ttœÅbØø¢z†Ù¾Z²S"þj‰¥X†âvD ð©†ªü¶GYVm¶uq.û­°„|­ÓŽ*®ËtE5žïã¾ËÚÕÔ_ÔVQÖlÓCS§¶{^?ö&ÓõGÏŸ±Hð¯¢à™ÅÈÞÕ{­°¡YðŠ Ø­j7SyÝlª[¥¶T<¼WLu¨gº£q%«S W×|A áÏñ­Ï7±‘]Õ;’ó‰‚\è¾ßÛšš ÕZ;’õ’nã¯ÝºÊ]8—)¶ñ<’‡¨-ÃÅ5ö1’B³ªF[bîŸï€Ç6Ùp¨›m¬EñÔÛK¬¥jW°~Ê9žù²Ç_[`l]ÙŽ˜Ù·¬Ù›ì­ó«æ‹ï ,i®GçX*ê Ú½¡iŠÿ t~¦zfÎ%u"M›lÅ`“cV‹0Eúîj”Ä!õÙ¨ùµj^"ÊGÏϵH犀ÙD@'™vóbDVîSñ æ‹°dÙ5à ;î4üt"YçkÚðU8⺺©‹²ó½ºnî½^C²ŽLvþõµîvéÖ+†,oUæJ {ÏÒù–Ô)¼<ªr©ÅáÐe3*¯¼F´÷#‹–!¯­/ 4žG&ùZœ"œhm§d¥þX¿Ž´"‘V;‘væO§JòM<²˜¤VñÇÂGZÿËŽtðºªÂDÁ®ÝíØÑvI’Žr³9¿ûÌKÓ´W² G¦]=ö³oeÀDENFS¬¾õj&ÛmƒÜ ~ô ñ"z”¯ëLå˜Ñëûäe¸’-•ÊïªñD{{Ow»€äÉ«žá²@û½Î'ªþ¢U6 æ±l×}lŽv¶›¢²´3=zÆ}6ÆJj‘>—:£4쿽5_ʶ œ¬Å«g׫ÜsÔkÎDòÚrÚ¿‹mnª€X§s’dWce·èÿa}ËaÑ”4ÇŠé†ÂÆ‚G}D‚ “¡ øµŽtå³éê›U@ѼžÀÿÎ5ù¬m¿òK4rQžöž©ùÞ²Û]¥Ÿl³.Ñè sµ¸ž€ 3èù·¦^ŽOÕ“ƒÿ6Žð7 U­Âé­6±X;!‰%üŸ6ÐÛ^âWÓV™¦Šézi9}{«BnÂ>&éºèhœ˜É•ùù²TxAyÀD¶C»KƒUÒê(Ìpi¼¤ %Ù+²™Ïd Ñ,ž6„H4汄¬]oR>¬øm'&>Zp yîÎ{*'bÔC<„+›ºÈÒNò’¡X²Ã,7Ï“«¨æD@ lÔk6tóƒofUxί H{²Ì˜¨K¼‰GI³MXàA] ÛÅ®™îÏ­×½¶è°åºý@¤um—kÖ°e6Q>þ®»»y³%h׋¢ÍI:¨²]«³ l;Kú0–.x&¤ðev×§t饄4|œ õÉyN÷fTn¦<#$A°6›4Õ_@ãué †•ˆ@öûµã§¶8A&)XFâ`WEhôP¸üÖ!Ø-®«"­$™°ÑžwR ާ´O˵Ö:ð=L²òdq;ê4€Î ð'ô혨àñ6Ã¥ÍaXz­›UR¸»qÀZNòp®j /l,õOãbÛCØ×*í›—X­7„dÖ£&b)¼I½öT¬çVŒíVÌÕ˜lNhö=·pkBïP=ª{¦,oß_Ñ^… ‘­‡”¿‘&+¼ Ë{ƒ•ÁéÒQUüês6nÌ;€?Ç‘²Ãé¥.åZIJϯw8Óò€ùcáÁ”Çñ«šó§“#/šI_ºøáçÔà’]©ƒ _vq9ü5绌Ám¬µñ^ZÙýtÖ—‘„~¸€Y.¨=wë‹…Äž´% äÍÒÀ6[²ó<²q|kZ™@•najlIÐsÀoyvÈyœrzÜ“‘µ³µ9©«Ö”K}ÁH{±E˜tŸ¸¨—u³ÙY÷Ĩà<ßH|,é´ò]À¼Ûiï»;:û\ ËôiÖ5ÅHPžª<Ê–´¼ä3îqÚ¦LBs ¤Ýí@ öîè8—ì®ð,YM2ÖøÅÖµ0?¶rÕvÑóêÕˆ““Þ£†ñ<ì @Ö™ÖfU'ý_õ‡ônj£zM'›Ý::¦êX¿QðS"Œ(v,öÓô#M÷üSÿh.ˆð^ñVQ†)6­¿´¶ ý4eò´v¶¾Þø8¸q´ TaÔýBtÎÅRåŒK%%peÊ&Ý| Qæ€5{˜ãÑ=š]¬—¢ñŸƒ+6Š,Ǩ”©aœMf`‰J3ÚËV—ã{†%3M)S1¢×s(GtžˆäͶ¦“„i<<ù-(\õ2o’|AXt4Ó9)•‹=$oa;;9yõÎH,Ãçkó¸20qØÔ«“n¾Oƒ6pX£ÕWÕ¢Ói±%þ’ô¤Å «eéð`ß°ýµÝÓOòYŠY ’¦Þ±M ÇÞÞÛaÜ€ò|×ÎBV`°rµºzì7»%{NÙF÷µ§»/ÈŸ6àÖЮbÏä®ÛO8adëm\‰bÃ^A^ÊáQÁtLv¾WñH½žx©ôÁZrÈÛP­$K‘×Pãû“r)ΩØü³¢£¾;³ xû°éúÝ×|xÖC ÐX ¯°Mˆár„ëÏQ­ †ÉK“!ÍjÐÉ o  $ß«r¯û£k‚ìÔ¬5s#‹D›,½Tñ÷9y`£ó¯:L< ¸Ÿu NŽ yPÛÕB!ZOÕC¸/¨(à èÿƾä=»P7t–-¦/[/=é‚6r§|û}ßáó$¸¿d:Ív"c(Vç é¢w Ò»_Ÿƒý ü(»¨µƒóU®AmXÏ:äèÚVäøÍ™}ÖÄÊ~˜¯;€ Û½WÓ­M|ÍöŸ ¸Á­J{cÊŠíëÄgýw#>_g÷ÖˆŸ‚Ìñ©2Ã=îWiÖª.¹pjžùÚBJ¸„¦U»ïwNRÖö£8"oƒß!iIãx£"?l8æÑíT ÍŽÝBXðxæRhtABökÜn<.­Ô ¿ÃÒXgé«/öÙüæYSÌ,kЩ°/Y³ç¥–‡”I[ áQ=É®Êãìí9¦e¤/%îê$ ‘ÞÇ! ×ç…CÉ !GŠDE•5¸vƒÔk÷d{n-²”ÙÏh6¤t©SCPííp>ÿH’&ÈP€c"Êðt78½¥„WóéoÇWÈÅ—Zhþë­õ̶$ÄÛË€½mZs»$lþN+hª¢CEÄ.çR»Og)XýµFÇw$Þ“¤xvàÝM7=?Ä·½]i õÙ.èÄ#Hg–fÚ'I¬eoŠ•«®̶ÍipÃìùP2½jŒ°"/ÂÍ{^A2Vk³U)7YJÌñ™ójÓhÏݼI>U´{—Õò98ÃBÊ.'ÀBVÍÓo«6+übÁg±XzUŽ~&$ÿ•eýˆcÖ3¿ùàÌÐŽø±®ÉëÄú‡ ˜¯¢AÌñãÕñrÝçÀäiKAQ·£ºMʈ‘̧ŹúJ°'/Ù—ŽÝZ—“Ñësœ¤2<öc…ûÂ"¹·…%BÞ²{)û+G?%†”®nQH³,ç @‹R×W{$õȇ.Í2¢¼czž“l»þ-Ú¶÷’y³ÏëNlj¡ÚÙYÇiêŒ{ëÓ³ž¾À—JÏI´ÌÂ"vP<ƒeïÃ1[cX=Qš8ZE5hè·Ã‚êUá>¢ýá+:*Í€¦ìÂPK¤`5·/(¯#è’Sú ¤obçP ÀúU/“1/5‚5Š|*´!Z¾Ð¯Fk‡ŽˆÕ*ë!éü~¯*d²ÈgÕˆóÑKf½o%Pyð® qÔ>îÛñ8€£êÑEZš¶ÇªÂäÌ6"±°϶n/èøž,•[廨•îpºV)2lêIÃ.µ÷’/ÀÉ+hÐÙ¹¯Ø_ lèdC¥ÞÙ…ÜŽ}ÁŸ5Êpw¹ó>uz¼^²ûúôZú5÷qT#„g£SëòÈa°°.Ç7ˆ|¤k‘¤É9 ìâõç ÁlÔKÉñ¯óRÛˆAž„®WÐǃ¶Íª&46ûKžt&ÌîËüÛ'ŸÔŸeÓ¤<ùc! vÞ^vhˆaÛ@W(ágȨrè‚íÞyxª°°½ìÌ+Y* D›¶Ä8ÊÊ×ÜüãÌ~ýÖ¶ëiÞÖÖ³Ò$J*~[¡g6½µ¼©=ß2rñÏÖÊØò¡ÚBwÊš­škVÄŒE¢Ÿ²)œ`X¬})g­¸Â&_@á*qH.gŽo[HöôZ6Ž œ0ü‚ŽR*­Ÿ*»Ó­ý(‹æ>)ðÈ.§vYÂYCYDbolaÉúÝû{¤§; Xê§Î9Á5CHyN*Ñ\ t`õK´#bÇV¶‹ªÊûKjÛ}:K­v!c<À¨s‰•H¸Êfýj뉣GDd²Ô$G*QóV=àÛÓoƒ Käs2fÑ<eµ³²/zÈÑA°ß¢ ܧž¡nÖI¡)íÙöџ繯‹¬œ@¶“åááÃÌ=Ï€f­´Ø£ûU?<¶©½fÕ¦ó¿)æÄyݹ“7¬Xù„b€Z·ϵ *léi‹¿Z¹³À sl…[üþÞ…·àƒf¡|º}Vøê²ä¶X.㬲ñ–Ú,tòO]˜K$¬žÉOh×ÔŠ¬N0œth³GªÚò)ÎǬεr—„cÏóª…ªr»Mºs*¬Øxf>úlxáÊ;\½'pb°dxZjøóŽÈ€ïµmp 9lnåxLÖ”=šjÀWVØ—í<ƒþ5Òçqá*Îe}!Öµ=^‚Z¦Ñ*`ÑL´¡/m],®”š"DÒ }"¯c|ILÌŸ6 –3y±}¡³äë}¾`^·R_ÒÈ.aiOV”⡨qú4öËö©½ç(DÙg-ÑIîö}{ÚZýׇh.Û†¾+êeÀë!«÷Vîs°>u†ã’–w¡ñxšÊ[>Ÿº0Ÿ_à-ìº E1ƒmˆwõðãÙ‰ßÏ}ÌÜ<Ö¥|)ç auDÐËÚ²^×ú)* ‘Ã)äP(PáU<<{j)>kw²Ä[_ã /vËwŸV«ôÙ³ rD³«Úð5ØlòD‚y¾Ï7²Ø×äZ“ákãûbW4˜KÙz™ÂG–Ú?ŸšŠ·ÉÝÕ£}\ƒÜüa'^ä"{@y¯Pðko­-ØRÕU ]«ÂJb`*^U^RÐÓvARQ°õÕ-ž¾³9οòE,jmê=O92>I¶]!œ]1ƒÉbí ®YÕZšË¡¨¢õ.qnwé`Ð?P¯ÚªÔU/xxAlZiŸ¦…ŸWj±Eä¬èÎݰ·Mý(»€_O#è "+Þ·…°_uÌy¤šcÆmµi‡ÛgUc©5¦«·©`ã{¹Á šWv´[c+XÁfy»%[‚ýtÏ­3é¯êbê\C¶–v…Õ/eDJpU¶èafIÚ Òløé@¹GWLw²vÉŠ„N–èÒ—<.‹î¬ß´œç3=9[’%› ìub¥½3žÓ©ðÏ¥×ÓºÍfº€€Gðõ(®f½Î•87`A½§ÒŸs턵¤Gp~¯yÚ 5jW‘ŸˆX³+&Õ 'oÈ¿‰ |³|âM>vꛞ¯çáý“õºP$󬤇…4=—±fØUL&ÀùZGvœöß¼¦teŠãíSa÷B¶¾ ÊÔµèÖñv sà?i%‚î>^ÖÝ÷ÒÉ é»#ý䵯ÛÙæq“¸K¯5\à£T÷I€Ð…Ф]«ŽöN|_Û©ße‹ Ûã3·Š2¶¾’¾ŸÖÒ°Wñ AbïÚÙs+X=æ§meIy|}Þ1õy§F/ð85…?< 6×éÈ´ë;ª­~±¬¬f’ARCp¾TÕqê÷UfCevÞÃÊC9ɪ­² OTЙUwyÐÉ6؉g’mÁÃ8ÆCfμ=㡇!d-Áî7›§’…k² ¦ÕZ2e5Rµƒyž‡ìóXôUt“ýØU×ÏÌò»-ø*úš \Ñ9ùÍee“HµÐ$Ï…?-G@åq(\-MãçP4~ÑÛ»âYIºˆ^yÙVPÎW}q7¯G!ïx ó¡¬w²Bö4«âíëPk»'’álª&QŽ"Ûe¼ˆ§«Z¨FÓ`éÄ_BU#:·×²Ü{Q={a?ŠoÚo‚çA‘^xý "§dÀý7‘E#®íx†Z Ð6Eô3'q.ù"rÊ ½g~ e#:ùÇÑîNNKv ÜK9ÛbùíîV ßÏXî÷€$RÞÉ5?z·±ïßm²Óç9›b ò¼[pd¿´-_íƒøo‹ó9é`w]…ÖèÂfIE:%Ul "´ â¥ÚrÝìóÊÂnÞóK‚xzY/Iü×ÉcŽ€uHQÙ×Kš¾â±…ñõ¥ pØÁ½Ö¡eëVíSþ´¼ª3²Ï&“þeRKö¶¢àYwÍE*[Ú! ÚóVT Öµ{oamBHÚÖ|ºÂóü‰D •ªNuÑ-Ü6%2`àßé+ðÐÕv)}z†Gëª]ž‡õÇG-KÆC(vMq9ªÜ°½ §`–îýÞ²IPšëw\ˆ šUøx ±eÊðÄ<ëjÇ?:!y*É…qIékZ‰À¿¿øÇ»2@÷Íú-±ŽÇ x²ò d³VÕ|à©h®¤w*·¤'¯ ·v¹NǬ¹Ô VÙþP€ÿòäé¶û_ñŠ<ƒ}ñ±ËöïqU;tñƒ)±n»‡Á¦C—>‚ =bÐQцÑ’”ÔnèïóT÷Óg/z2ƾ¾^ê¡‘ÈÍä*-m=Ɖ¯âèÈ6|ä~žGiÀ$³á°Á÷o·á\Í5Å•uØÉÞe[Øoó­u"âèc5B¾ˆsÙë•>lÌÕnb¥#oX•Ê©G` "ÙeÇ€»hõ5~§ÙW5Ú¤×Qì´äT^ qçÕxX¼í*[S†PlàNç”!-±®[iów½©ãû@;£‚øB(P ñ‰|Ž5{ÏéŒM=ÍkÖ/üó²iL™0UƒUê»jR 7µô§jÞ°ÿrL‡âL‹ÇJÞ×Ö†W ©ƒZOVG“º·ˆhÅS˜±{Áöè­Ÿv,óØ7°ú>\\×+–𸫱ÎÙþ6÷á®#Þ:Ì,ƸÊS3˜/7öÈϳ’@+]ŸõÙ 4ÍÐI­§ÛÊŸJï°ñmQšëHDM˜h%(W5)‰y,Íë4Ð,(‡ûty·3VäI¯bÛä†SêSq×S*³¬BÊmô¨x“M]áž:ˆo1ÚdM{”³ÔòLöÊ'““f`ÀPz“TzqËÉÌÂÚ³¯d>ìïwjñ^®ï‰?’l©siG:ýHÇÞa_DØOí97a¤kH5!ˆ¬ç}‰³æÐg½!»lu«?£»dX÷UÏy›­»åÍÁ~¿Óé @=½&'äðïÊÎCǸòí&Z:ÛpÁÒ±Mý~§c´»°·¶îi|Rô„ô^û”'rÓ.^N ­^Õº×ê«‚ÕÙ¾ö%ka2Ùd“t¯µZ$: ª›Þ<®É¤@Þ‚­U #H:0Ìó;‹§(J/CkS´à мfIГ(Þܛ纭új ÀÒ°@šÂ´R¢†‹V>_U86 ƒbÓ+ñhlU 9Ýá²’æùª½£Û#9OÕòë8âòøü!Õ¼›}$§P1g&å§)#I¦zA¦Y#%¬øîH`jnžzœ‘Á‚hd3ùl/5Ô°«mÈ˯Z5Ê–´ø-ç–,Üõ†Ô†©’Uˆ&Þ /8j•‡Çé!-ÐK,—*m„´^ É«€6PÀj¼Ÿ€bE¿S—âM Cýj=y†\_T‘-úäC/æ­)ø7?Š~qÁ ¾<š€²‚P‡)D‹`q™t¦ÒÜÊû—vêë!oME÷0ÑGs–p̳ŸùŒ«ïßßË´WÈ(‹ÜE ¤8÷L zŒ)êøjÏ ñùœo«à`‘ŸUsì²±[¯tX÷<'éRt]õ–Õ§JßRçtí­±8”½ç¢ð`«¸Ù`Õ¤ÊG5ØÛÓUâ Ì^õqžÿíHvU“†½R ?¿ëâ׃ƒ: Üôæ;êMq~»)´ÖcÞðŒÅ¦”¥EàඪBUFŠ˜\ø:\¾¦ß­~½U­t¨”Î9:®,’®Mð®·^ݹÕï¶% œËNUcy*r^âiNªjvmÞ®Ú£;¥§iI¬UHååy=^ö <¼RpåôÅ®eD±RÔú%-W?Ü!h7û.žPZ Uå‹åygä´N° —=`GŽi#ÜC÷0Gl»g|…WǽÞdz±½˜ÈZlRz­èW A, ÷'i`–¡TÖ›{ø¬â+]çÑp^¯J!Àûœq™ö¶LLv‘Ö7eòäõÖèÍk1æbw¼[øT•9Ò¾nÙC[lËÎÒ[”)þØM1öîV}:cz·›³Hï]µÞçÑúÈà!,o°¤g?YF½€òù8ðü€…঩ÎjzíÓÈpÑz”ÄU—‰¦d•Í_õY퇮×8 «Ö6­Ì`‡e —¢Æþ2gW@—¬ÙîSWgV¡Eè¿c|PÆa±8ˆ ìsÎYº¬;^…#?äèc¿x;éZ¬Û¢Íí¶3B˜ÖÈ ]“ÁA·A«W=SÊ딹]=ü©L]k…ªVà±™ç”m=wœe(u¢Šv3ÚÎÆõY/ûØBTëõtËø.¾Õ¶[~x6{Í’³äû3—LxïÇ6?þ›àlMo¦y)2mÃÕ`¿;m{ƒ›A&*Pwã "yIPlò‚ÛÓêô*+gO5Ld<$渕f¡Û!H+ÝޯÚÛ:/gçaJÓ¶ÄsyTû8ÄÕ´„±0uÖËŒ=6Có@z°J³À±‰mdü¸’/»qUåTωqIÞ5Élc5Ué‘xµ˜’Çï=G ¶©ëõP©Óvèb©•»‹„“¢cãî“ ZÿÔ\ô0ýíÇ׺ëz;D­†~V¿‹LNhò‡æ$C»?ݾAP=\CíçGÇlÕ?õ ":ÔuÿæpÑS#Ø»‹Ù¾ÕpkV·dfÅCÌ`e«ÒšÉÎ…}ö¦põsÕN%ë†7õ’–:fkýÀQ^$p?ðry¯ì‰¥¼…&©¶8‘¼¦:¨…¸Yä] ,Ÿ}æ¼ôy3W`7è‘!dixR³h‚#³ç(š¸›WC YiëqŠ>¹%ÀØeíríîiÕA‘Áä+²Öœ<¨ïKÎE@HTäËŽ?œcß‹¾5zt%@kÄ,#ë$ŽQʶý¨zkã@rã9:nÙªgCÖtªZÈ\¹Â•@'íÏ ¾Ò¡Ýò W¥qÍ‚ ÿïq¦¹Çºøµ¡!êë0•ªþžÊêÂTÄ-ïgÂÛݨõ†ÇÞ™ÀCÉÇN=jÉN˜pô&W•yÎŒG–Œ•7˜öõãçœ{o_rSÞ§‰“´¢6k©4)Ö·>¼­~¬@(ÄêwÚv;wÉrT¶jÓ:c|äÓ|[²pynM ög}t+ry"QsÔ?4ÖG­Àr?g– S´Ÿ`çè±ÀR²}¬é’¶Š+Ž…ÿÁ=>DKnN ð~í°<Öf<ür¼îõÌÒ{S-˜ûHÀ'‹'|á&a¾¤Ê)Ôçx5`(¸äÓoR9w-a5ÃàYuB¹5º²ÚçSöÜRN,ÎWè#º~<Þi³¸jìVç}<¥Ó£‘“ô¿yøÈŠÇøou}yt–Ü·tךðsàõ1Ýž6'ì‰Ó@f–ÚEéÅS'+Áž¨.‡+Þ}ú•‡êÓz?ÒI%?5c#Ǩûy.~y}Jlò«lYž±/6[ò†üZùKJÂ8 g×Ö˜áÖ7O˜r§,¡æ‘ÏËawÑE»î…3 ²$Ô÷ À1šïé ”^hïIziMÝ‹:›]ѯséMÆò‚œÙ–ÆæµÒÌy`¦W2ß/ õõ躛(ŠcïP9X—€ÖPò,é°GFݱ׬‰õ)Â÷Ë:ð^Ã…¦gÕãÕÜYæˆìD“鹉V“š>š\ž“!ï,]·ñüÕ 2x¿äê#ÐNüŽ{„GÞ·‡„®s46gÔFóò¨Ä¡¼Òp ô”¶nÚªzíVŒAÿ`¯ÛòÚ8,ÌÉͦ°ƒsd€WQ‹€óñÌ¿½šN!Ûñ ;"ù_À`·ê£Qn#’7Éà¼psTU‚¹|[—¢!â`mzôMª³ëNŠTÄÝ@lû8 2žUFðÆl×£Àô. láø³?¼;sâAPuÁY¯cñÅ“×W¥LéËóµ}5+îEålu<éŒ\¤_GÃxŽ}ûúLÀ(ÁB¯yž`„_~$ ¤¸ RGwÈj¿å˜q8Vïhv2À‚^»l`§œæ œKô}. JI4éζǾ²×‡Â&ÕnLw‹YÜé¨ã[Í:CàëùÎèÉ5âÖƒÂi­KÉËBeSMÏ5*pb@7ZÝ'­†Âé¹1åÍÙ¶íºuŒ“/BžzhÌ œ6qŠƒH£Ø„UyP1Ó{÷,˜÷f-}×ãYÑÅz¨ÁŽvº¸›o²ê5Emj `’\ýzÉ¢…•+×7Å”=M·£•צ_}±ÞXÜf~Ï8¤µàíTÙbýÙ9¹uúÊÏ‘ãcd»háñU§’ƒG…®pÀ×ÁKç¿îaß¶ÒJ®bxú³¬­Ù$LÖŸÿSC.ùÖšòÖßçvšw鿬b˜=¦ ð:>0.‡úÇnÔ— ”ñl¶/p?j¥;%ô>ËåÑÉõªx@%ùܬ+‡-oƒü³m¤d=̤*ÅžSW³D¥†Â`½”Ìæ±ùßv^;ø6PâkåÕŸa©(‚5ró H‹*ÙÄ’ô"ðÚ¶ØãçL—§ÒE5"uÄT»+_SLÆ[óö$¨ ÁfsòGûÖf!\O™æVUhYc^źðf×+›egË~Èî¼Öa‡¯£V?ƒtPÖȲ;ä›!zž†a4þ:ëž!Îûñ&{5²†ýß$¬d¼ŸÐý)ض£¸;[¦pRÁQ´µ xpëNb´gºfWNz‚Öæ½/Ã7ä|ž´â󴜅cíL=ùÑ;XÃWÆá#³‘ UêàÓÕAqÍöLñØ‘ŸHޏÿ.ÒÏàž@—jœÁ«ƒç?A„š6&h›wÙÂûË+€;Ãò+¶ON+UÙ. -a‰·ðm\Š ôS–Ó_üV&jج¢*¯ ©{Ù«Hµ&qS âFjº°euq&|ÊœÓ ´ÿòŒ€”ã-6s&ªhf6”R±z-qÕ!ºÏb¹p9‰âa"U´¿ëjcA¦ìëÊcÄ¥…Zw6Þìêh áùbßô×>çâ·‹iU³¨ñÒÂü€¿·¼2üãé+Çð· ,û+ÿH–cø§"±ÌËýeþô÷Y®ÿE–cø*Ë9ýFf™÷]f™%þwë,ÇðG¡å¿[h9–_~ýWúgÿé·"È)ýòëŸÿVy9µ_~ýËû¿ýó_WfæÏÿ×ûÿêïk¿üúgÞÖ_ýEýå×û·â;žßþ‰O|ÿ€²sçOÿëoµœùØþ÷Q}æþÏ?¨úü×džyÿú¿Yõ¹ÿòëÿõ‡ežùä¿øÃªÏ”yþ£Ìó_É»žQ‹%åí0PY¥—˜ŠLÞctý=£C-¼å]óê§áÚÚ“9Î=9ehpø‡ugE²ÙÚqê$Úr-~$ý(=¿I‘Q]ÙL%y ñ¾6ñ×ȃçAAª×sïNÎB ›H·£“‚cõ®AÒ¥t ôwÚÔ<η¦íÅ6M¥9íD¨úÍ:E¤bkúŽ„Z ŸŽ²3ðï°“b•^[¤ž<'…­‡#@U© æ5ó½©.®q¢]„)±Š^vÄ]TÙ9m—šgÞÊ–ç±cíT¶¢,Â_g«ÍéT>²6Td/ñQHó¿79÷3{ìÏ·™µ¥ûþˆXOñ%ÖÝÇ‘<;`Nh ÕÚ7q"°Â_G]·Õmtû}›'Åþ,+pÃó?_ÍwÙìþd-u:¸Îõ<®ß6¬òåÏÛa¥¢«¹m™epŸÅ#éç¹ìÍö¬*L]UèíÚfé î˜KÐÀæ¤x~>ÅÑ>í¬ÆÉfÄÀë9Æ\{Ý/åDA!œ¿ãºY]Õ’3\’æ™ Á87X,ÃðÕ¶©½óÄšªÅ#=¼ìºHCÃE%=k?âú‰@E[¨¹R»þÞûJÓÁæ[Wu ž3òlXdµíꄲúé›h\8Ø,óŽÖÝ q0éÊìôÌrÖqL­‡¡_hÚÊ6gû\‰o¤»2õͳY5bÙªqa«~LGbdå"‹Nžd¢àÔäá9,µm‹±Ð«ßÚx¾¥þ=ÙJA}Òƒjݱ(üîêÇ>­“¬ŸíÕL+/\!Æè€¢ÿ=*ÏPš]s]¬«¢+*A¯ZnM¤Ê€žÅOÇçÀê´áí± óŒNsqüÇsiHH0´ «Î6·`k¨š,W^°3Ó©5‘‹TŠ „®Œ 7@ÊÞ×é¨anBš÷öX_Õ $}&g±‰C–T^p!gUTŠÚ,ÄÄî µ>Çäz…56wèvM´Q-ývfÆØÜ§¹uŸÒÍ,ú¬Hn|«fÞikfhHAÁ<ÂñRÓÌAã p=OáÉ_ÐITÏCnwî 7zãÙˆšœüø€ÑzáÔ¥èñÌý…÷Á ?NfµtëÒ1“ˆ.²ïü&ÄD‡¸ïž9¿Ü WŠŠÁgùâùSöÿuÐÚÎñö^Ê#)¹ù9ú±< ½Ë»2ÙÌBŸê@:ƒØÌ$÷uLŽ8àNN!“\ ñ˜¼:íÆ/j|·Þ¯ýÂþÌ|–_‹®¼\ÙC;±a5ðTM…ç&,¼ Ç“?và®=Ë·4X"û«6ý­«u°½t$uNx—ï"Q~Êö$a›Í»Í‘E¿›âÄèwo –5Dš7a±¿+Z—‹wæ+äe;Âr¤`åiÌJ!êÀ>^Õ0£B U§ùÓ7ªþQtÆŽ»`7F#—:!ŸúêÍ::*¶@¸Ösúo;ןÈ뮪ñ¶# H®ž—cjÎ,>ÜšUÆÔ\sß§+ÇmÆ«œG%çuhX“Ç>Ê÷±¥I£ŸbYêsvý× éq*Ý/Ø’{ð=™ûsŽÀ2þcã¾3Çäç4ÆuŒ$AäÎà@NVpf{@õZ©«Î ð!ÔA.¶ˆu‚“ªkç|Ûõ­&4±ŒU±ìúìOÔÆâØ,¸ Ê&v~wГètñX¬²æ¾K=Öû Z¤nûì«ÊøË®<6¾ËΛ'è°Rd?È/Ë‘ÊÀ8Þ¯²¿›ÀE‚Y‚5ªO%Ø_XO,ö¨@έew† D˜…Po“žO+/Û˜–AS)•ƒ5ˆ¼é9&/ö±†¾@ßUUßY«˜KBÖD[yèöì#ÙËë_9ÿŽú! ŠÄA’ Ÿ“íã¸ÀËJpgì¤þ¦ó׎#‹b¼Gq$ƒ?4_ÄÕB&P²öî®çV9îëüp™Ûùþ3(?,îÕiYäÖ3²Š&' ¦ÂZVo‚lUªÖ7ÑÂüM5ù Ì©:C0Çó󤇢ܬmù¦Ä:·T•=x¯å_¼F­ð}§sÝveÎxãgŸw8 aËâp{Ø'ìU™ùÙçtø±•Y’¦F—£g:Ø;¾=ÛѺ±?±(´©\Ä"ý©¤ œd¶¹/½윶—µèÉí‹Zœz· Mì0³¼[IÜwº›ONùÚ¯9ùAXÔD`¥¸o Qƒ@¿É;(jæÜý‚¯«ã:]£Tu½ÔËÏ^©Ò"*;ÛÒm~d–= A}‡Æþ ¾Q‰Á ¾ ÔÌ++ïƒÖšö4,7GŽéÒZ€ý”Õ±aO§ .÷ÀRp ¿ÁË»¶f5Zf³b¿ƒäêºÉj” O)Qɘ>‰¨ ’`HfŠsÂuãe–W`”Í:?˜$¡­Ú®šª¶§Ó9%Ýsþ01¼•R_™Ýh%XñMoC¹ûúÈ—“7KÊ–îuà.žÄš‘¬÷©´]–TMë!r·²“Ni÷“I › ­'‹¥â'°jãz¡8Çe” s±"qì!ó×k¾•›P­B¿ûQW{^`3œ•Wðí9žwÿ*£ºâä|Ö:Ë\'ùÅe÷¾c 9K¿zó8,JÕH_ X ÜuN{©‹››¶·[á+0"¡Ö”¬ãUaÃ,¢°ž¶°¬µgP[ÝÃÍW§¨‹mzGÕξ ®]ö’ça!Swug3ASÞ­Em£uÂ@‡\¶vÀz†„zÜŽ:ÏD%yB•6ÛJÂÁÕ«‚Ó®——•C°{”@­¤Ã"cwíÑífáé&ÐÇËÞ3~VHÞ+KìØ¶üñ#–<ñV&ƒ»ó~Œ1c?Ü`yË·Âw¼Vº=ÊÅ3‚ Î¥êj¯œ=Ô•ëg ÙÙGÞþJa‡m:rµ*ñ†§-¨Ä(CšÊç•”äc?å˪ªùh¬Ù­Àm#^†¥µj….Ë>ÿC׫iÓ€Ö3ËTƒ-‘÷¹t(Ñ~W lüÎ@™Ï.ÞF| ¿€¬‹u®j©«lï‘¶Ñãtg(=®X?’¤C9/ˆ …-GrQxÛ5ŒR xsè÷¾!§•*r»øx‚¶ê²éö/wÓ2…—`»Ã­ïÈUx§$.8Áx žnl2°â&ñ¹·žéÐ&Û(ç-Zø„Ñz´ð JâgÙô/GûhoïÔ>úh²»•xµjdÏyÖM9-ÛÜ=úº/H&¬`?=?Y~’UØp:›ým_×7òŸ4`[Ò?[ø»–G@249«*ÚŃPL g‡WWõJ·n›·ÅÆÓOS'ÂÄp4» ½ReÞÜív5~ŠS¨VìKR#@`µòÇʾ¡r@\­éþ¶æuë"±Õ›Õ©Ø8JØÝÕ;mÛ‡ó ªj„ÒqĤTUè™Iôº ­„Éjü÷Üú0px¹ƒ@¶íè%SŠª‚*ðë¡@Ö@ƒZ{ƒfU–¶ñë莑)È¡löC«'ØÆyRDD¾Ý“—Jsù:ø^lEtƒ²½¸ÂÜì(u騽ÐКiì³9G=xBh 1"Â[Wy€×4"»íÌÉ®þ1G h{×›·m1 ÿÏñ&›„žkHëé\§$ÂQ?êpθu³a1ó¿c°Ç¸ {^Àg•‡À³ò¼n_{«pç˜ò´Ì¢¹É ³Gõ@Ïl§®]«ÓR‚»ƒYЖp9¬baT¥‹µ‘ƒÇTƒ[õÊ>) v’‚GlÙ`Jîj§tZø[UŸÚÇx lâ|N ^ë9[ùÕ7î‹ §Âß>ú:›­í¤a¿ž©“ìÀRI™ô‡¤sÕ:漚‹ÄÑ2{II\¼ˆþ~jÀýTÔ¹×J¥ZgÿI'Aea~ONf\j u¥` Âm>=e1õM4ª-~J¶nÜúد’ˆ,¾¶<:¢Çvc¹‹Õ“Ý¥dÛ½ìXWiL5A½±ˆÎ19j/ðO-_QâXÍ¡8ÍÔ“î«d‡vìÍH‚€‘êHây‹Ã=ùôÔyLßxˆæO§ZKÓ-Ž5HXjÚl½ô>v‡íyí|oÁXW`ÆKc[±‡–Ý]õìUÀ¡,J˜ Ç1çèÔ›XuÚ}Õ44ƒ¯£lWÞFT–dŒÛ’¹.ƒfµ]Çpë(¦‘‹Öde“ÑÀ€=Xü»õ7È.5у °|)O²:3 Ù¿CBØ$¯²$kªuX÷Ò|äR‰€1m‰Ç«’RÈvG†>cS/L1ÅØ€eӬݔ·¤ß1n‡§«&êý=®Å G³K<×K«HÊŠ—±®5"€>Šìz<ð5}\ÃÑ®„Q0–&wÔœM©s‡eX^8¹~ê8ò†³Ý Ñ)0G`',:‹bº’eOÉ”R±DöÛ– À-=žÞм<®M ý¶²õ¹óf‹ ¿*¯ôsnΓí±OÒÏA¼‹:*Å<—ǦºD4{×§¤+ëAá<Š r"moa¥ìXæ"&Œñd”pŒ©±%´k:$µs&ÕJÁž‘8©<¬™&öÁŽ£W&t¥7é…6çºûÅr!¨;Ìš×VÌDG‡š5 ´*¼Ooú#ñ&r»µE‡)·Ÿû²›YI ASB Z% âDËÔVEYCöñ{„ÉÖ~Üd Ëäp`6¼V ¯¥´4C¬NW­ñÂ6‹¡]'D[ÙG×\å¶²Ãf¬ èÿxúJGE°©vÉBWŸæ9t„T§• [ ­¢HÉh7ìÁûR†¸þ8 ©íFHg#êâÆ›T"é}6Ø‘5+»4´_%ÓØqkñÚ˜h‰Òöû%~úѽê}®éMßKƒJƒ¼®9`×(¢×†ðõñFvPx–œ±mKÁWà œ‚¨¬_-ÀwfH©å°~=Ü ôäëU’„ýé!_tm(õ`¹Üñ¨t9{n'´>O¦çлg*ºòÇ­ûeW·›Ðv!¦Ž®•N6_æ·a‘M#¸Ýç  ,Ò¤‚ëŽ ãÉ(è÷%l“ȾuÆ$Ç–à@ŽúÐÀ9|ȯ1Æ#ÂumÂøÎ`¨Ò>uÏ|–úùð>tñHºÍ·ö'43y±Ãhå)×Dóà5+É€G Ùm«•\1«¶Ô÷\ˆˆ¡Šó93oê¾=GÇÖ9¤Œü(4M6:“üw†Ú~GáS©†åFi"fUDâõjŸÛ)Pwô©ºbN¡xv$’´wü,È<ÖHžB¨¼-©5JºØ+€ì‚²ßK}‡âàÄ'ÎÖ롯„OUøÞŸþÇVWþGj›fKÌô ¼µù„wiˆ=^ËU€ ]^—ÕVL£–Wà3GFP@žSKö hãc—JVžÌÊ/øUÁ°µU£ŠÞ¸S¢šŸi‚å0 $ˆüZ›Žª é;bÈÔ#À¦Õ•x$æ¢_H´ÈÔq]pç4œì Eˆ%!l[Q/ÑrŸMiI5¯e~ù²Iöº‚¨8 Væ ™ÖÈÞY×ÒÆßÊ­x×ò9 º%{Y[µ¤‚ðèËÙ.+0q%€iÚ&¯Vr¬Ó¹l§Â“:šÏdƒ»;TQ”aï‹ ÆÎTdïztH¼9ÇþX»GAùlýx“#_[ФCpÝKLU•zõOy!ߎîákÓrõÌ×99£ÀºYê"l«n.£¶[g¯ž{„KqvÖQ7m°V[-bÆG]¼é_¼Žõ:;ÍQks§¦¶)0öR|‡§gBÕßíí±StFÑ4µš_‚<«#M›ü·ÊaìÃn|¬3%­£²‘è|Jhê( ØY#ˆ×ú˜=Ù…¢Æ K{ÃgßûâÞý™4ÕñU%hB†­§è©¯zY„Ü®ÝIt †{æÒºÊ¶ð›kçÿÙöRt®MÿŽ QMëÄv wJ—ÙS¦OBc{‡ÞTžêÞ\ûU1ܼ/²!š%¼åh˜x–gÝ•…nàœ>lÚlOPî×ckÁ·–CñˆY$›”ž{°B”A¿?É ö!A}»ÒŽïåñ?{BßX]Üìy¶ô7§¯ü„+wÝB>»žŽ¬ÏíÇ›—ë*¤·’Ý<'r íÀȧó!ëí"Ùœ/©¾ÉÄ_çõTy×ç47±ƒ‘w…==Z¾N(»“Ï·(Í¡f›¢ºAq8Á<£´Kg\òûÒ«“o ö[ÐŒ‘Gñƒ,îpÔ˜ÈÎC_NbAµ€1`,üñÝí§ÌÓª-Ç\í Nu7ÊžC_WBšÃBì¶Yµ±Wõô‹(fºaÙ%È”N`×o»CîSl\‚ÁÛZ·ÝoZ(:ƒ«^<)yiž Êî}¡ñÊtzõLß2!!¹©FAsz‰›: Ä1Q˜'ªÏ­Û+ÿﶯ‰ÎU«öMB´­‰„QjnJ"ƒ½½uv£­ wÓß~Â톻åPKÓ´ n;ÐÛÁ*`|­gǰ¢`ÝñM²ÚkqD¢ÙWdOƒP>6÷Bµ†µû=4e#“o`o¸4¯½—nƒÊ½xN§GÒÆBÂÚ*X9Çs#…Õ" „^±î”¹ õ©`•Ld%毚HWŸÃuS'9ëh‘âxÛÏCÞÎ]‹+5¥Ó*³jªB%Ü×X’ŠúX" Z=¸¿÷þ8<8ÓhýØ ¶Š´æS•xPõu%¬Ï°¾1{¢¼Š-m½Ü‘ÐNEg-›x, Wë«Bª¾ìSàø:\ÛÜ/&2Íñ¶?$NOá+â×~ÖêŠcü0<™#—êöZÚQ›hØ€õš~g—Õx²©ÇB‰ÐÿòÊ~ ÚKfb+ŸÜ%K-šèȺ­ƒ€óVmO*òôl_–µ¯Ž3?ý±Éó. bûTE1ïFv³'ŒÀão nÔJ‘ÂA[¶­B ¢QâbÕl¥˜aà6Lé FÐ=n}±%yu)GëP9´M-y4û)j¿—pÁ5•YýŒl“2šsIHëAS—"Eezßãþù(š–§jfr»áR%‹\©Šr/,wë~ÅYê²­î“ÅØ9Z„áSuh! )rõµž×Êѵœ*ˆð_Ëáz§—U¶Öõ!K2û³5*pÝ÷æF6Ž Š¸_‹ B`ôfcV>Y„×W¬LyÀz±WU`”dÛ—‡ÄÕûÈÎyÖa£ »­ÚmªyL”bié«—+ÙKò žpR½ï‹$É£ÝÇwméÙ¹t­D_Ñ…bÝÝÖn\*/Šýu¶·ýb5ݱÙL§rȃqøÖ¾7p¾D´) r{8~ÚMæ¶?÷Õ‰j_QÑœ­»®sìÕ*‹æÑK‡@Ó¶ÜÛ†4@ØÓǺÍ3¬l]tž|9údiþ&ÔëµõœIñ9‰—³ìOÙ,6µé•Ç ½~º…¸ä ûF±uv«( ´ •dGÞ«Z‘*6ƒ²Î¹²Á¬W÷£¦§ÇTÛ Ýðé çä?À[·©)¤è±pûD²yÒÒÇ.ÆÂ“aS+ðHËý&b‰ây0Õ äûÔ®ûN6ÓhÌØSè‡ (´¸Á~ ÂQ&ûÍ3.>^rV2 ÍÆ3pï³UN%7Bé„­¨· ,1Þí Qä`ÿ¾¼P;?%iyÀSARÇíøÌ 3¸Ö½?뇹Øf|%µ»H¤y(cÖí­õÈ"Ùšìü´â7ÉÑ“€ãþ&Z¸ëͤÄÝ<áÜe);y¼|…|ž£=GÁòœf¤‡êK©ö£î”N(Ö ãð>1¼çá¾,ÖUÑ[n»òÞ¬4%“G/v(ºóB„°¾¾êìf¯¥[Ö-÷%ŠÀ[RQõ±bmÃ`&b«ÈÿB¾í¨äpKeP$‹ºöJÁd¹e6>2è˜G(bQ#ßsN¡8…¢¶ú¸îž®ÇvV0 ä]C9„íX–ž!À.%­&kyWU!«Ð‚àû{ô<@æ¾*Óþ¤cÀt<Ž!V ÉÐK!Ň€³Õ’"sÜ›Ð3a]—pÍŒìÂänøø\u(h[Ï9–‘/Ø„Å×c·{J{Iˆ6ƒ|öÉ}º l³šf~=\·vý ×°ŒW+sÐÿ·zžL·zNÛIäã­vûë)ÒªZ‚)Ë öÍ+ÀÈ]ÅÌÚµg×ÿâÛXжLººªº­DÿsºRÃØVÝ7œƒ•.TZ—%‹í Ÿ®nú ^Mi_Å5YùÂØ¹ÕUc0s ±žFæS`´há°°ÒB¨uè籑E”å¹A;Ê? y ­ [-Õx`ÃÈFôÆh*œvq]†0ÕQRÐ~GYJX›31Cãg Z=éâzü9iÓ ÿ~Ši³™µ’3[]°„h±c¨T©:xRÞ°ñàN‡FÀ à¯íå¼£‘4³Ô^àÉ-XÏàû’ŠqZîyRmOëäÆnŽçèˆæ€¼êݤ 8eW´ÓîÕ.©(ð¶ÙNd=ǃlÿù‚ö¼"H~8á_½ÝD.‡‡ØuoUbéæqó?«rªï72=še­LÒ»gOí+hºîy†ÂúO¤/Qž9õ%V÷çøÌg®WÞm7µY()v¼X\ Âa?ë ¼¯2®Ó;ð7{Ü·<ÎjÃiöXáX”ib¡|,›¹Ú›Çê7ÈÖr¤07 ÆDžè'8Q»š$öpìP=_ñ4€[eõ8È•Ú:öÙ)4°a³¿c«£qÊN‚tQiyLË:D*]àÛ¢Iw9Y:Ï:pDzBÕ/ƒ±éĶͨqaÚpmsWm“U¢t2…<ÈÆh°0íbxl”ÝÚà´5,ü,TÍNbï¦bÖ‰ƒq¼É– ì=9s³ÜªÂç‘M¶wÃy?൨nÛ×&x*ÄÖ.ÖQY‡ëƒ¢˜«†­_`^34ëCÍ%n,Nç—­‚ÙÁ)Ô Wè_¹qÖ]ŠßÀ=V¨m‚½¦ç±,²¥õ„=™6äÚ²›IïÑb˜´[w³tó¯ºBcñÚ¸KøÏõNÛ­4wLž˜ò;ž‹FYØ vÐÅŒœ{2á&‡ëu{pHŒwKX<Ôï»@ fg³Œ»û{ý9еãRÏïhN™?šusû”<]ãñ¯Ë–pE›FêÖ»› ‹€N91à~ms tß Ríåx’ý™ê(wË`­¯HÌ\ˆõI3¥»ic[m“ûÔùU¹éÇÞò³ìT6àè—Z_ÊV"«úXÉã{ûJò8ÚÁßêêUgÔí£›ØÒÙ$÷‹èÃû» ½±§½e•ƒ¬©ÙFJÛ.ˆß¯¶8áGË­é„I~Þ‚íêYÈR²àC$¾#@4 Óf@ A•6jÙ¦30Ìf$&vP²Ž'éÇ¥åQTše,+‰zë¶¿ü»¬IŒ ~6 *]Gl©ðâÝ!É‘Õû•=®Éº„”’ãÙ‰­¿ïúV±jñ¾‡Ý8v!ßùrî!žüþ€°x0ÜŠƒùûàP_’ƒÅuÞZ­XZ÷0¯)µ}$˸v`0hD0̽õ Ð vCVúL²ÈuÁÊÑæóu–Ì”…7šÀ<¹oËýßGÊ@lâÓÁrÙ:>„;ZšXë±QÂæuŸîÀëÖf„³HíiÕq,©úR»¿#BÏvUPϾ4XÈÖh/=mÝ¢-x¶ä±fcN}ì ëèçò·t‘Ô}d…f;6Ûݶ‚ÙtÛd3[œtÐMwà£k»Züꀬ^»“³DzBð+¼WäÃHt8áe6G¹Ä¨ˆ«;‚(lê§¿Ù¹{™­Ý·£LyZ®ùf­®utÆGe瓤t`eâ…£,Ž9%nÏ@ZÎ%6Û¼*7Sçñ²YªÀŽ·ëg>=i~¹’C͘¬Ôû.Çk“äA¦žâ¨…­awîÔ¼­eÕ½_£ßî+ÿš”êÕ©Uçu;€lR–ô­w.Aà Óâ[áJŸÆãàÑÚÓ*€Ž{z[:R9Ô¬Hÿ䌧EhçÒ·Ü»ØœÆ ªš?$ÛÓ­=` Ÿ8PýyðqÕˆö° ¯WÏ9ç•4y`“Ü–_øß9–÷ä÷±á×B6ÿîñ:ìšp±a¡\:fé4¾ÌZJܧÓUÄx@²ëOÍ›ôÝz"êÙuÜ7“~å-çLM}c]BH, 8oÃÏ«&Ÿ3жÝi ñÆ´®BöÚóÒÛNƒ¢¨áDVÂ}<ûqí<§šÖêOõ9g- Ê™¼æó5(ZÁftýCt×Ù/û¬Dz ¤–KL„Ÿ>l•vàÅkXÕù¬<7è"ÚªµaÛœŽ;—ìý j€)î–nŸi,ÚÏøèÅù¶îà§óÔj†;Z$ 6ÑJYµÀ@Â{ÈyШèöɸ˜çEDÕc-ª 8„=õ)ÁG) hwj3Œ£_ Tâ¥;E¢bài²øô¤Dõ}ÅýÅÙ+¨pžs`efÕ>ÍQQ›GÔÏ›˜bþ·±¶gm.âqLqÖϘo_yÀBz«ÑÃÝù©ýÌCt¢×zx×ëR‘}ÙY´ûQ\71=Ëó´ÚØWŒ¥¯£†®vg\„5¾§m…N:ô>?é¶Vþ€@?)Ù“S»$Àn¨²¬ò%€¢Zg¼ô_ñ”KÅeÎ.´¡ê¡M¤Ñ¥¿ù9’áùõb”wÔ4í|Õ}qó‘ZV>©Ü¡]mf¨+ã´Ý8’¨ÃÑÏè¨Æt jýVrN¬Üâ-1µZ§VHÑý ¨?ÊÛc{¾¢‘ž<{w†dŠ­cF®êÍ»£€¢ëü€Òlñ}vuæÓ€@~‡’Ž/߸“Ö{ÀU¹ìîØy³¯>g@qÁ å‘/|îõ„óÕ§€àyÅωˆ™åÛfuÖLϵqÝ÷ôvyížìrÆqˆ ©è¯²,O½eÒXIËíDš«šKÚš€i~D­¶ÚÆ»\åSÕ±Ñ"‡ììð1õ±Áó#ÄWñЬ-g?c£:®.&hDIæé uÃwt {¿q‘º#÷uÆ|4,x¶O{+Á9¥–ž¢D™Ƽ\ÑÁ3P»Ã•埠‚ =¹ÔE#û eSÃ&1‡áØzÁ"W툦S 7ñD©ƒâä›}v‹[èZ¿ÏL„Ïñ ¾r¤ u*ßë…K޹.…ãÙ–ßÑ_ð<ÓyIå-m z€)špº&µ¶GÂÖ¶ô&rcÖYMY²¿'þ‹Ì#æi ‡ŠùI‚`3*sÄ’ù^;&—ÞÏéºgç=§±´Ž¥îT¡Èê韆8Úúu‡ÎµXŽ`³|_Ûß Œ%UvÓ.P¹•Lè€r/Åâmƒ·†k_ÒöèB¡¤ç[ÇØPM{2ßÕ´P|Ïè î±#îÕ 0=ž¢4¸lq'Îy¨¯öÌ}’Ô½Ôíßõû¤À;D×a½4µ’†ó©S>tïæÚyUÄ>¯;±Úÿð‘..•¤€Ë>ét:çT7ò=8m1µtÕjí&Î:7àPP“,ugY> ö #i’ïÝñŒNu¨Ý·ü0ƒ+_‰­÷l“Űsñ‚Ö,뼊8Ù@Nx"¿rXõ#C+X©™ãêýiÛtN•€×àÎEgY ¹B/â|¦Š{Ñ(ÇúžS߃üÊʪšu©0MÓiK3…ëu.”TC|°¾ŸªÇa౺XíÅ>Èú¨¢£×³®)Ÿ!Eû±'‘7’¼ñì_ÛÓYÆol,Þê§ÚÒãÔ•eáÜç™°Vsjíi á9BÄ¥‰hk[g±ìrªÂàœ•B f:-ž¤üÚ·~ë˜l}l#ëžf•Gù àÖŒ1€r÷«>ò'qì_QÜg‹Ø»çÂóBvkWãksvVä«âlÏQœœ‰™Èm" ¸hþ oü’/ÚC¾¥Iahnò¤¢/*T|Ž©È Ó^>~†©Bö£Ò”ê:Q€IJ6šmòÂiܯ]ŽÒÏ|`AšÊ]3ŽÆOVöØ€ {P=7•ëìÍ¢~#A¬ÙÓº½Y0³‚|\mâufRQíÇÇ{6Ü:àQøïØ;<1EÝ<þjÚ!HšÄÿ 1p ý¡<Íã%ÆãIwAÕƒÕX^P¨§$c)&­­çб¶¾ï3åE´t.´jU;ìqÌ´ oÜQõmvH`³tm%üÎd„¸¦%‘¨Ú8lÞ0˜ºJ±UgO“³3H.+‘Bäµ@kÙpFæ'§ÉLÄ2tsÎ~ñú55tè©]ÈŠ©O‡Á;×tÄÙ=˜<1éõÓ"£Þ„nÆYÎp à´®éâaZs×|.Áñ¦£Õ ‘±Ò_õãmN{€IbÏ_R1µ -£’ìõ"[OeДŒâ’á=,6Øñý<»¶ :ì¤âJíjêYïcxeOþ®-VšÂ¤ç×Vq6dkÁ|ºG¾ËªÂaôP¥‹vžôl×n§Ç ²;–®:ßÚ§è•u-„2N7sVÅß–åiÄ :§b$35Z< hM;¥KÉ € µž»1ÕRìäód^J•ç©=Prj74‡ÿ_öþ­Ù’»ÒCßýWl=ÐŒmFVp8à Édæ€Ã%¶XÝT³Z—#é!˜¹«*Ĭˆddd]ºŒÿ]߇Ȫˆ¢Ô&J:çA:Ýl#síØ{-_îÀœcNŒ9÷œÂÎI©çX¶g}ù»:èÈÊ!¸hþTl÷àÔþÔ±Ë %'Èbz‚…Íò iR,É—‰‘¼Ì°”;t:Ψ]Ê:¼WŸ„ÞŠg†,Pjç]±¹€&>› @—@¢fÿêDZÆó9”Y¶@L»QZÖ”¡Tº4OL¢$¼}YÙ|lZ•^»Bü†Ø‡¬us€ÐÉ!îÃpJÊ7²õµH¤â ¡•»™/Ú¬ÊT(¨8—w8e?›I¤.=ú¼×ë²CKâ¼=ÆEj¤f’1È“¡ykîé~©@u}ÖÆ]›V"w•ië1Dóâ<ιgñT8+Š%¬#€§ÝaË]¿å[?#¾ÁŸ¬¦ 27BœTça¯9ШѓŒ[ð TÔD[硜¶l#N–%+Ÿòñ¶’½š¦ˆŽ½+GGBßúpÙžI+Ëf ½œ2÷õ(Èm6'Mï”E.Sy¢~/co‡f°?5›!uí«9«ñLN†·uàÜñîêî¡V’ïë L(Š9íq—íI•Gò¬*³(¼ŠþÞ½Y©Ãš­_6éIü„ïMGË’‡‹Ãñ÷‹˜ÝTtÈúx,“GsðŠKQ¤få´|ÙºÚúR2z)½£Bã:„p¤F•µNP´é©²¯…V¨èˆÄÁ­¾ÍsÁ8 œCzÁŒ¦°G/HVÁ •˜•ù¿ìVž6{XçT²t Ñæ Û£ª_Uy¨[ñÜäþd“º3Aæ—õô%…DÍ â»? î-ÅQœ‹B¹ï§º´¬˜5¼¬«:—¬c1A€š#è%]š ̇kXŽ¥Æ<‚‚k«|¬Žøá9XèKdR‰O}‹G¿Ëö$Béš—™šŠ—(©Y—‡àžo?Š8:*ZZ§ÚnKJý¨Btç"oC¢¦ˆyX™Éy¦})±…UÅÙÊÓÇ0Z¥‚Kô¦GbïâHÙT~ðŒ‘²«•§H¼ ”—kõ%r¬ôÖÚü#›‹úÁ> Ac.}Ù(§•Ô:5•MìMQ<9ݶA A¤tü¼géªD¶"t;ƒr@]•Ñ”Y%â[ óxljï ˆjy²iâs½Ë›Ceí§§›‡›öm.êþP¹tàꓯY$¦ŒõPæ±òRYÆ~<•ýÔ~÷+³Žu×]Îu=™©â<âTë ¸­`(o=’ª‡4Š.óm=n׿òŒøOoðÑ7ãgÿqߌŸýG|3~öÿ^ߌŸýÿoÆÏþÄ7ãgÿW|3BŽý?Ï7ãgÿ»¾Ǿ1åÿs¾íÿY¶?û?²ÍøÙÿóm3þ¿o“¡ ÄF;/¿ýã˽½|õ?¼çž¬¯þ‡çðòÕwDŽwß¾þü‹ŸÆúÏ~9ÿsÓŒ|¼|õËß}÷Ë×ϹüoÌ6r}ùêûoß|ÿÙ”"Ÿ/_ý‡×Ÿ&2—GtýìÏÁu}üÍç?ürïøðù~½·¿þâ/¸¸ïßþöók.íû×_qeÜÕ¯^ÿä \Ø»·_~ìé7üöý»™ >þež |çó+nïùù_í¿úüŠïõן_ñ¥þõçW\Ëýù×ò7Ÿ_q-?ýüŠkù7ÿ2G>ýßýËüIøôÿq+9ù„ÿá³[ ×òæ_èdÂÅ|ó/66áê~ñ/ö9áÿ—ÿ¨íIࢾýâ%Wõ«ÿ«¦(\Õ?~ñ’«úðÅK—á/¹ª_¼äª~ø?ï¯òé%Wõ»/^rÄ”?ì²ÿ_X°$§FytáÕHš"8ªð̺NÏè5N]¢Ö¢D¿¬õDž¶5é2”’T¨Ï£®µ«Ò;}™×Ö6UÀ£³Æ|²Óp%ñ£:µ“¨\¯I¡“‡2NSi8ÊOŠ«°Ë1 ve›òTý©Oæ:×4oJ›ûhcjÖ>$½SM:‚·l7µçi†±©\£Õe4ÿ³‡¼j¯1wýé—,SV{4©{‘2uåÔ¬ðÞr™íi ü©³3 u¥Ô°Wì—´û\v¬•úøñHúÚ§«#I˜Þ²ÍÓ¼x§˜’gTæ2ßE¤êäwWWñ–òiÛBõùkO·CTÇÜ”6¿îNñ¬"@ BçåäeÁÉ„k×ray¤í3u„IGÝk£†,õ<>ÉIÙùµM9ÇÁÍ}n‰<÷²’t–éâÏeÿÝll²fÎqo|ÜI;—Ôá tß©÷]ç”gœ“ŒÑ«Š×ê¼ÌåpTÎ%šlúX_Ô¾}*a§(m¾Ò¬%hW}¹Ü´Òáö´êkkú±Ï|‡\©mÓVu}ð8Ii¾Vy$%8/,ÏY7‰.w qÉñÓÉ̾L`£dùt)?r¼ZƒGı©¡úmö°Ó)ÅóJܽuŒÜâZóNTy\´eOŸ‡Jì¾në—œþ±«^pÙT÷ù ¶ÒbW»ä|LºkÇó2WÔ ¼Oø„ÆcÖ}.õO‡ûm"L龺ò²BªMWn„äö->ö¿åχ4o¹Zººr±K\Èá • z¦ÊÏ2a’¼a¹'©'‰¯}´ÓYp‹²XÕGT4={dö„s¹ªv|ûGPˆú<%Jì.ÚÝÕ]ó¡¥}Þ+í‘8Íg”ëÖR¹æCE€+o…M¸ßJø°‡[wܨ Òú,„žä$òíIW]ÇhaÖ~¨U& >…M©Õš”S›Á3B'¦Ã£ù…èû”(´KRQ´?¨‘¤úQ¹Ê#Ó6äm¿¸KŠŽÕ¯Ä[Ýû£‹»\¯=Ÿ[I²™Üè!OaÎúLÏù†r×êai–Ö:½\¶6A–µêªÐ K¨ËES‰(ÙgB§S .lçíœ|&ØÜõ¨ÛRqF¿y¨¨ôÖ¥ìÔtz¡Ïq9 +o…ìK#.WUÇš|e(Ò¹=O¸ILªàzÃÓÌU#7šN©×2@¨{UÞ‚‡øÜŠ%­³ù4I–/Îiù;äÁ©xÎŒÛ#HÇ´túN3–*%B’‡ÜÛÆí-}ª¿?˜ß5šPTÕ‰­ w™„Í¥_ƒ`Z–‚„R0#?z°l\ \aã b™ÜS.†@½„Ô¸ãS«€Tå)°½Ne”ÈÝ×½iCÒ42n*6e  F˜ç„3ñædWÙ…'-¦%oçXTehþÁWÊœäÙ½Iö‹GRÓG ÍOûÉt$uöÃíiQÍ×2/SÀ´IÒÖæîzÎoçþÒ­‘\†˜„zbŽDqSŸ¡²#QS3%‚Uð¹ü¢˜ªâɲÁ› ÿÈ®‡[™`ZTëŠaj>uVyá!7skú.(_êXQðpÞçÈôªÈG]ƒËc ‘ .šäµ»òÜÛ.j+ž¯µnîa©†@óI)”ó)÷Mœñ¤‰UXüUÚf¶ýªUpeýsÿº†#ÜÏ–yrÜåv;¬É8á˜ÔÕ϶DÙµKá®y(|rÉ¢·ê¨Áš=¸5äËÉGtG*=óâž]бµ6IÈ)(÷¥þÿ­êq¤ê’Î5†dV êÔ€á9Ô.4г‰C?Úví—“Ô,1Mˆß pžJÛêP7ôQ©Y¿Š'ªÊN±„8O`A+ÏVOG£“§“†ó(}xª%ìZ"$ö…ˆÂóñø y’L„ŽG™æÜ;vû4—Æ£PÜ×|Á pÀ?ož°;‡ìùÙâ[:ñVc§íA‘y‚O)L˜•ЋÅA×îŽ(L[Óvû#c´°Ó¹s#ck*C€õ°r»äuko§G¹±+—Ÿ–á¥@) ú9JU2ö6f×ËïöpãèËâî9Ô0‘ù—^vÈî ©”›ÄLÏ*ôœÇÆŽÓ¸å®ITàým*xékÃK²ÏIæ¼¥~+¬H>T–d)žCF¡ÓŒEfnx¨›nÉgDb}+2Cže÷`:ää´ò}¢‡ïJ¼ïûynå1\„ F*H–Šœ”¶ëñ¤µ%vœCe‰ÅqãI/’i6ÖxQsÐJÏŒ¾G2½ÃKjº>V=Ž…„@n kýHKÔz ÎeëP´”ZYÏ7÷ `%T§ùÝqbõÜ@Jª7~mÜ&6±aè/y™»v¡š”¦6Ùõjœ³XÛñêƒñžøØf‘x 1‰b|YeâõÐb¸°´vÀžŸ;ª!@„y—¶´I ½äí ˆèp~PÌ…Ä­€$Á–÷Š2Ø©à¨_ãî°öXIû¶N~Q}gðü3@x ­IUPvv.©ï€åSû7yˆV%N3zæ=cŠšådúí–ϯ* C…òƒå»sKO ÑsÞ—&( Ö.[à>ÕR– Ës^œÉºU%o _ýZº±}iqWG2¸:Ǩ€Ww$ùÍyA7)%ôMÉÌ@Lnž#«e¨YÜÔ³næBúê’ázSøCs!ÙØ»S¯Ñ:9ÔÁxuzµ‘ÊbvTìiJÂT9¬.ôtI6eÙÄIʓŜH,JYí(Ùlbâæ¾&A%É»~jÎ\Ý’?U>_ëŒðR‚ú=iStþ!ƲTwKZ‚žÒÈrïü± ÔnµƒÁîòÂÌTýùÉ$®:Kæ6-;µë©:€´=¶²3?ÀÍS)‡Cÿ¨3Í!iì%Ni/˜—É9ä^ÅÚ):§J À¢ÿåÔUfCÉ{š@˜G¦<û¸Ô-«Ð8¥¾}’0SœX (=œ>ì%ÍÞ+øåùreÍ. >žâöÚÔW¢ØÖ]ó0ÛUu²g›¥JÉ|ðÁ,êT0,ëw@…¶i5…RKï8ÜÓG³kÐeP:–5í¬:mšdG9 ž0É]%ঽ‡ #m<ð]‘9IPû4û×vlÇÀ%c'É.2ߤ9Öâˆ3±LÁjù#H›±7¢Ò†20'¥×  kª’œàÿLÄÒo±)kiÓ —êûiŨ£Ë@žÙÉUM4¹„cò^rj/ýMwýZ²¾S`ÝÃ:w‰¼g}·ï¬¼Þ캠$J§x¸T…ùÕaäL½T%KYEŠ![Œ[rŒ œsq?ïOZ©ôgt…̳sjQ¶!•wK]h5‘ÉNI¿yš¾{RAsºp«Ã\‰Ï@ã Öæ¨N©S$Ž!­_~K3jŠmqä¥fQˆmòš Jij1½TTÂvsí·ZMו:€±)£Í.Ô8Œl´_Ë ˆ•øÚ eÆ4qJëˆÍ^° xE ¸© Ãõ(Lm×,SŸ(_q,“çH%EôV¯YSk]RXeØ{¦²tnf“t4¶é³3ä"ÙÜTg²sÉ`½$œ!¦ ô¦KeQå´Œ(¥oÖ|ªôì­6¦ºÅ6-1xØÕqˆ°i Í®wR‰TnÅmÝœÆÓDïÚMÅêûÈgó)yæôYÛSM`õÖ§®±à¾¹s@UNÚIà ”ó”RÓÆ© ‘ÍGE;´Š¢ð O¨iØÉ°­Ô;æ\W'Œo2óÜHµr‚UrÒ“q=cjF½) µ ÀY/)hÏ#ÙÛÑQÖuhÈ¢ÒËf"«KMŽh£Ù hy¹˜4LZUĦ§sˆ|!ÇÛ†ãOÑ&_w;³Ã¦³˜üߥØüèφöÎÝŠK¨×5·µ] OJQy¼/<§«”³ùB♢\i!WÞÌùGñu<™ò„R×Þ5ojôð6½T Uõü)vA´é>€–Ã{ ~­²ÈÀ#ötцôÐcG#ͼéÓ2»­™T|ŒºŒ± N%¡Õ¬‹’'~øžÍÖ@GÖxïyS¹°NqùTñørÔ°”>}L«öòx~t „€2ºÚµ§ÒgåÌêžÑsŸ’¬U9we÷í@š$OÇ[q5±S¨‰žXº E0á­€¨)ö¹€áÎëQÒ›Ô™öÑ•DGmÒš(dWy'w¸¯¢ ɇ’T¹®ùo²•ÐFUQf)aÙŒ"Ž…"å}uE™|Ú–=®º²þã*½gV‹X…¼j½Áç?Š´ìqé>@Ë 9©ÓëÙÁ£¥Ñ‡â¼úƒÚÂUùjèx>•Bå>Ö8 Ï®gw’FzªGÓ­ß©rÓ\|®µ[ŠhRBŸy´¤#z–ä?ËÔÔLs>Q&[ˆëÛ®gI¾:9»D#ÚÇæ)+ÆÓW"T©w,+¾Fûèò*¯cS˜Ã`¥ôzR mhU¤Œ-¹Ss·ƒ)ßæh‰»ŒßoËžÛðLLdUjÁ¶S’íKn½Æ%èÄj·É›–óçs´ŽW\nw¾’ ÚíhÕ6íó8ð°”ÀJz «ÚF!¥Žƒý¨IË•ð"˜‘H‚FæWØ„“ëj-®ÔG'©«Þ“õ³ÛDXLÀ%‘'9–:<•¬~GJ¡­9ý¿ê÷ét5"×À5IrP…v7ºÓzI';2gé¶éwÀ6øÌv\#„Z`ìºz`Ü|½©@Û ê¡½ª­ËnP›+8lê(š>cV}{¨Š¥˜›ÓŽ˜ÆQs™PzoɺÆÜ&…ó®n×\ÊU„›ö¨ÿ(LGÔ#oØ/¯1$rZઈS…Ü´¬< °ñ'}Ú€Q;­4…Ãï¥:d©×wÚnõ*e¥>‚~"¨ª ·ê=›áÙÂâWÂ7'%þ…ð€=ê6ÅI–H×qy TRG­"÷YÌÒ®DD[âôs< h§Ü"{]Gñ§(ةҸvJS>g[Sq¡Å "ñ‹ºiÏz¢åœ°‡R†?Ý}̬á8(°‡·Í“»icS"øXÊØ4© ")ÉžR®íNÐ9¿åóQ´uPêd2R ¾c;?Éþ’JÂxŽ©*™²û6Òj&sÚ­6ü£Þ÷4O8=騏À¨¸oÒŸW¦n9âÍö%ÂiV;l² ÕÝ;vFÐ’î2ÿ8‘x ^9¡dÉ köâ´ˆýâå^J]IL v¡ØwìëEvÜ­aö¹µJv®' M¿¦Ã®ÂlŸ)º¬@¹ÁNÅ›&%XQ8nªÔ¤ÒÄØÊm¼ž<@~jÿtìÛ[EjVãðô¡"KËÒÉÆðÍ·£6/§WU²¡¾ó´ž°ÄVsðW­Ëm‚íH~™Ž´QÊk¤™mò†ßÖ¢QB£»Ü6÷Z9TçTÜ:›Íœs¿ÊqÖd’ÛtTÇ/ªÃ¢êñê³N`ÒµqI ÕxÂK3"Ù@°ÀËxv-c,’ôS‘ÄBiE°ª±Ø‚rÉ>ŒcÀ÷V®jqi„É*‘÷‚þ§§pÊI?ƒàu¨¤ëGÑ%ë$+3õÞô,aéØAá¤:ÄhìH{×”(`1k+‰ÏãtQg‘_V ´¨ë‡ÑÇA' è]£çÇ'„¡®DåOPì'[êÚvö­8?4€¾1ï峬¬Ÿæ³´•uÇUù>. C¶ÙfPÏM8`7Ýž'òð€KÔ/ŠìEy žÑ² 4—Ìuà¨xTÕNmí:î·o– ü€…¬RzNLÕ³NI­î>n`˜ðä³XýœùTto¶¤†-0}Í-Ðçé•î™@9íÓÕÍrÁ!p-ë«"¨ºç•Yìlq³Â©ô¯8à}ëD€TâdÎR0Î…'F8Åê:=Š¡˜€ïNê‹QxJi«Icr)‹¦.z‡\…¬%Çb„£„{A1t ¸'ç^k„ˆÕ‰ŸYÓ/Ã+Ï’(ä8";õÖc­þupV«è–KL•Ëã15á’Ù7KÀXÓî<4FæX$-¼@&|};Y>ÝþL°]éƒã­ óòŒ$Ò ùò»waØ<¶lªwtñ{z$0é]Lª·=J×ÝÙsŒ)e*e¶çpCN™Û<`Ub7«¾œ´F!‚¬OK8C¸n­_¨Ôâî2Å×À7¨ë.Pÿµå¦ŸÄÓJdŽÄ[·‹f„ IK6hrydÞh°äøŠ%]Ú]x·H.œC2 5y\*kê›/ß ‘ Kœð,CqGnêNn$6:h™mkêß^œ“N¥…€êŽT¡¬Ùunvvn%uÜÛ¹Æ+A^»¨æý¹iªäóñN‡?É@Éö$&±Î´tH`¡m¯……ÐóX4.@>gÕÖ…šNû–GÙ£] Có WÛ¨KV"½“ý—2(¤2ôyð=ún#€ÐA èÉ#g¯gõsôŒEâi•tÛÞ©,Ò¢Rn—ÃrÜýÝÃ#VŸ1PonPú­}¢c€ž—ƒßTÄÖ'äc#ª>?!:+éÊd‡|õgW_7Jª:dű.)ü6›ºä pïÃr2ÛñÔ7Võ’AužQ§˜‹'y|Ë4Dõ«Ä%Ý÷f&º¹…AOú|ÃS¯ˆàŠS~G9‘ÕZ.»ö!ð•uÃj–}AÛÞ•¢c–Ç™K`ûUwm ¬ lv°³¦61DpaÒÕÐÃ:*qgx.2åTGËl£<Ri@êÕ!È]Ùm®rª°öv6MÚ¼ç5/gœ]-ÿaNA¡ik(VÍuâÁyëDH `Põ4„кrõÎÚ#"úݾI~Tä±}`û((Dv9(QÔßæQ¤k;îΦï&-EÀ¯k¹j©@%á¨w¶zºå¨¡OÒxâQY²Ëgx­ßÄx’ ÛŸt;‰„­ã“=V!@vŽ^M<Û°pY³¸u²V¾ÔÖ=-Õ:Õ†6à®åÅ9͇BÔÉ)O¶6p ®®çrÉ ¬ ›úöI§‰ä (PNjéUJRKÜóA×4­ k*b–ÛÆé’£‚xVeÞ+¶xw¿±¾ÖIΣd-%€´€ºë=B0—Çüµi*>%¸X}±B%¼wðZõìWj˜ÒµR¹«Í×äI·r˜‹Ìs‘ƒNB q‘¼N&Óêbî|µÚÔ”¬®¡‹‡ š­^+‰5»D`ejŠÇsÅk´RÐñn|°<×|Rˆ©.ÇZZc·ªÀ'·p+D¸i‡×©°“³×Ü;‚-Išò8©£ª,Ž3® ÂûÃÄÕïȃ¦!NoÇ—=°ƒ»²;@ÌTµZ­z§xª…$}»I„º!W9xrØ V½:fSÑTÊ[]JýE͇u —cäùQ–¥½nÊ=eÇ·^¤ ÉŠè œ|¾ ÁY¯nRLS0Žs]€(|¾øÔv`HÍßµdR2S'Z`Y´â&ýzBV£¢9df óèøü’lëI¬:ñ@A~ „.¿îWéH:ïëDZ&UP¹‘$aß:Ìúš?ÙÃ6ì^XhÖ}ºŒ°ÍU*9$I©n‰‘Çãø;{̸¢–¬D…Í9zª$õÑ)rÃË­àzdvÊK‰x4{»ÖSJHLI<&Uk·®DãŒÚ7…0¥tz´OQ Šœ!ðm¢R1YŠî$Ð(:)FO_7žݬ¶®yïñh~*ÿÂ=ylö))$[f'½hä™±"ƒp,mï<²§Lê¨p+l„…\êjFu½Ù(¡}L,‰ „ÏF@úñDwãð€°)ûsx–Ü=dî¯êù ÎÕ‹úœãie›e,ýƲf‹&]»ì/©¬î¸ÄRúœÙÌsGTÎÉÔqy¬­€)ò€·fëNÃynH]Æå%ª®Qª­Ï4` Z¿5TRn‘~ÔwÔ½ÚV)<#Í´Æ=ÿÑË©Š/uª^짃¶lpµx~j“”F°K¸×¢¿È«ëdúRÝáÒnQ¸–8\¤Z°Œ$¨\êvÉ”ÔËcJB#9Gï¼´œÈ5¼vZ„ìÔbæ>ŽJæ*|ßíÊf±;ªbê`ä°œ2)À1š¡‚ÍÓ£ÂñÍÒ#ëJÕ<<Îu«Ò?¨G´œÖ¯è<¤¢ÑŒUÎÌO ŠU M9>^~P½xÚ.ª@‘`(Ѧbm5«Ä¾ä–/ýx–°«39—Aͪ" „"kjO ¶ž†:+­u³ç©´•tcTí ¨Ëa ƒ1HmlŽG™ì¡zø#Kšˆé¡ûšÅ*m…3áY-êänÎREOÉÿ€ð‡´ö 5î8“e=+Ç>ä“Ì…w¾”g¯j%ØwÞ/e1…žíR®l˜ˆ‹}W‘Å3YÖ…«rK¸Bót¢”zT]‡Ö¶Ld/ ½§êÃ]ù;¥™>–‹A«gã¡RTš(ÜþPÑdÓ²íxì>û‘Å)Šˆ0ÏrÒ¸![çx+ÛÒNï,¦OuS “B(>žn^©Ko³ÃS±â9jWpÿ–8G,`ÛRÅŸrn¸ u»ÚŒZOxn]»è¤Þ¤ž5ŠKE‘ô?×*–HÃWêÖžY¿‚jݼ_çľ¥mq5é÷åN½œ5+TÐwy”¤§B´-wlšÒ—J¤ì& ¢WÃɪÑ EûÎã’Æ¾äçíôåm’üŸDéä <[Z8«êà)ýÇå€Ð (— ¦[øuÍyhÅór¶5¡Ð"è Ïå²³`H`}£<Èåªw”#:ñvâf®1禅ˆ¸L¹è›#)»òY­//1Ê:7ÛF$=Ç T¸%à;~›$¦Ð4(¬Ï 3±`D@‰aH½íEN—…®7nÅç’PÞZãæTåUÀÁc—*ŒëðËhçkްÅ^Ô <Û q*"mºÝy$Øù'jPÊÝneôK9šÀéxê´¨Žš#j´Dêåñó6P‰Ö3šå÷*gDt¢JY&•"ÇËn›T’$€ñ@–+µ`€¡üKåÚ8TÓM=ÜT¬Ø»Æ'ïWkzj`;Ž*tà6À÷Nˆ9š2\·g7¸È9€}ñ¹Àn£7_g<Î5µè1hR ØåºÙ¾œí°ñu€ÍÈR2[®¾Ü Ò z€hº)E#pBóÉVQh €º…Á^º¯ûŽuhŒq,Û”:@Šœìá·æß ‡rT³ à ÊX*–¢…šݚnQñ3¶ÆiWš‡{Käe¡Ù™#ÀÊU#Î:µ®n½oä‰.†ïZï³U‡*ŠËÿТT‘ª)»Q%-ççžjIKÉ#?Õ™ÃuH2<=œ¹ÒBF2†Žs<# xôÜ»é’=ŽÓÂi’™¼Þ¼˜b”ÎMÅFç‚ €ZÖžŸp¬jŸ-Æ‚ªŽçÙ)à“4™—×°“4¢`ÌÆÜÀ_Ís”§JeÃ ìØ‚"CF÷ÝO%RÀ,žÛ>™c}Àî …(Ó¬—UÎÑmJlžúèNM¢ÔðÙ7âFÓÃ*H)%Jˆ8Í'ÃQ¶Â¥M¦éŸTDîRÏ×[`ç&î7d©`²XA ´SΩ³J].É+mÆ,wV7M6Dkr«n –ÑyHªé-ék|ÙǹUe'/Qó÷ó–ÿKéÎã˜#\6•¹uíÊ›Y3ÎsMèé3—^™ £{YÏ4ªvƒ7»¤ì»ªÒj¹Æ>—K£´v:¡†<ñpþP–w²GuN{âé¶;YÎÇÇi?G·êcH8tÏ Þ§š4‚0s\Ë V‘ûv)÷™•1#Õø¤xÇ%Í®ù¸a\nVM;4)RÑﬓ¢;X2£%­rïìÁr¹+ERV—üOØ“huöyˇ-‚‘¢î,K‘IUB ȦÚ%²ïÍ•î÷6ÁÆÔ䬅ÃñÄ“ /•ÀC*Âÿòþãù\Ôüyf}J(¤Ô·´¿¯¬:@ÓeIÄ¥X’ ¤nÜæ]f wý0ÞÞ‹Íw®Q5K.úxÿ6P[2ët.!³ïÓzÿ•»æXœÏ+ö%¶@µiAmu‡Mϱát(!îaSœNJ¬üPìj…©U1ð·jçsyk #?R )eßÝùª'ù–? 6ft·›\µ˜=‘GíRî#ÄeÝLí‘[(„îM“t¶4ëz<Γ‚u¨AtÝIKù®xØ©Kp^Ì„usð~,y3µúÇã\Éq±L.Ò«s§ÚºÜÉè0ÒîÄâtVu˜õÉí¹¶ê¹XôPÌ´KÜÓËØ¸k…M¥®ãá‘@¤ÔO)#çœá9A'*yät<…Ýñûú˜Ô\\k|Ÿ,–<íËÀÉ2EQ߬7qóäbÒü¸ïÅ=Ò þ,ª ü*©‚FÛ”™§Ó`n˱¾ÉIʹ‘H(ûÀ a v“¿ìótÍ*R³…ç½Ø—^EþBö΃‚çæð“Î&{²œM È%t¿bK•âÖH~ZzZ"uð¹@“xøÿU[ö–;ÐâT.JZÀ$5I¨5ë¤e‘HÀT8ÿÖfCφÝЩKgUÃåÑÔdC%‘|vGå¯!Y tÂov2N‰¤ìòÞt80Ém…,öHÏÚÿyø®{­(™ÿð²µÖè›Dwͦ2ùã|ÃÐ)Ê¿S0n¹aÛ(µÐ²uÌzùq¯S1äÝ!k¶Íun,4â®äT¥Nùú—Ô:‘^ºÄV/‡Œ áö©IÕ­+­c7Ö^ª B¨–¶,£^¯U%ž’¯éÁ¡ÖH,<.?¦CË*hªH^œ|[×ß–…ž‹T¦„³sñuu§&%;exE~·.ÉÑÞÄX²ÎG”%7Â*Ÿ¼…Ò´ qÅÏ4è奭ñ:dg'*H÷>=üªl¢šê¾Ù9j¥EL|¤#±D™éyR@‡e}¥7Ù¥=w™Bò$ÉœÏMT¶ïJÊÕcâÙ‘ g,©PÁ_®k€ñ†4œŸ® U/›þ$ëý9ìÉa¯Ê‡2ÃÜeETw S\œùùr¾ØHÏ@CÁG›=Ža•EsÉg (ÁÞs°ö;V¦Z¯‡ZµÑzìôôihRùle4@´©wÔ˜k X–ŒCûÕÔÛ”­ªÄ™’©m‰ *Nx&ê~¹¹mH³Ó50X\þ5õ”=ËýíödˆeU'\òNéKÆ'Ów?¨†"XÆJÍ ºBæKƒ@› l5¶­Â‡ÄzKì!E¬Ru:Ⱥ'g-:¨¯¸™ÚD’ZçžïuÚ„¿bÇÒ+! é¼Û„K G°$Dªk5ŽCœ’#’;K ›;<ëøŒz*É{ŒMNA³i’å5“@ÀAA×GöFÖO6ƒI¨¤„EP?yj”=Mæam—RؤsMG¿À1À4µFgÄŠ§8\&•|—±¬e¡SW2< ¥ó˜)éj¿“í¦,Î*¦©8ÍRö_Ï‹Êx*PÀ¦dCå²Q«QÅͦ±šEºrÔó#èÒ$qïî ø~W¥Iì!«Ý\5•&—mCQm«HØÞÄàA›ÍÙuÑÓ4ʽeœòžRèHÝÇ) K[½{+ŽšÅ«y>ô!þ/œÅ³K»îu•ýtd=’qtΖ!píñŒ0û:Àϱ¼Q«2"‹ PlU:¯ÎMCC=†‹Rçä£îêXœH¶$‰háäŸzÙJ"o @WëÀ Ðôzè8¿ùP}oàÐÇ1°G—}÷ìÍš:=²ÙøNHÌÇ‚¾åÌ€˜¡åÂÕA!MkÊ~Qw81MhY vP‹? äþ5µ­Áª S†@ÑÚi[蹩}J4—£"ņÍx) Y8,ù¬¥–Å©ú¡Ç2ë&JèÔËfô«ò"ùuLª9àhv+ ¸OË[vbØ0ÝÜäy‘œ»sñÒærãt*·îF­8Œ¤ÙT½ÙìüOQÙƒcuZ”¶ÛÁHòåIbÜk¬ Óxn¿wåq´¥€ª9B…R@Iy›éV£]çEnÅÁv™¢ïE{¯tXµ]ZŠUç+õ™å>8µ>xX;;5‘ ¶§«¢ýµ"ì‚:d'³Ü”69dÀ:‘Û= oª#ÈŠP^pÍæÄ:ahè"tÛÇwí.Éá)ƒcÔ& ”É  xvK7üuêC”³öæöI\s¶;Oõ8ç¹ÃY$Å2q¯ÀÊ+GÚ)¨Çµ)ù2%®©t²Ô@vkS€úTÊEOÇ¢Mí¸! TMœ7Šáêk×i3H'¤Ž*ÌðX´¦9-§ROɹ1‚—Ž[—·°K¢°“ð;.ª5b¬Ð¸* ®T‘L¹Ë+Û•P^öó§ƒ!UbTå~Èé:6@à}ñ=¹ª…™Õ–¸œ|v|1ñ­êí±I;lnS^\í]wˆqÛR‹Ÿ]ã0IŒß;U:<'V”“¤ AR»›ÏŸÅL.|쇎Í!ë¦ï­5£gýBZråî!¹’,qЦ‹P7SiDÍìe¦Só¦ æ!QêfÝ(MÅÂ:Èbq yJAÐ yce:S¢±^Ú­B6knM’³/žèî@Ðì©^•… T Z|P‚ÄG£w'Uv°™á(äÔ>Ý9š]vÖN`Ð dD£4ÞXëdZª®zøgG‹Kå­ëáH4åÈ¥ô7‰D<%ÄY†çíGi³ÕEk×ê¡+n°>WóÄ…KÝA9zë sY×Hnh×­oÕí`CÜ–°ûõÄT«Ï‡}Aš xÆU3©—3áJrxÒ.¿]_Šk(K1ÍB UUÿ©´x¦×±Ë±{öeÔE•§i;‹‰;wƒï÷{†|*…PL¶TO` ­~:q¶a¨‘±…™¦Z‘çÍumí]?kRÓJZC?"‘?99Ó¶¦’›0W`³Ô.æ'nÂ#w¨[WÛ÷²-èà~j¥®mLâFi¨Ü=oRèj¨ef„¿ôOUí]yµ./RuùD0ÙÙFDé±ú’y~&UySêAõ ùfOè/ð]ž<‰%pª`[Ÿ›BÔ÷`¨œûsM—…~P§q·8¥ï™‰öqPê‘áÑ6Ò\–Q­\–þ#ÕÙ$ÙûŸNÞHÞ¶ÕvvF˜NYª’quž–²õ|@ë4¡xØ“:¤®N7šíw²?gnIÕj\Ë2Óâ™Js Kv¾;~ÒÁ¾žè>º§óÚÜõü¼,ªŸ¥>å M–TsÜrR6]t_RåÃó·©_Ksȵ;–ÕiFER¸nÏìX‹³SšnºTwÐIGWÒÀßLÆR·gÉìj²]ˆxÕn§þ:zXÊ 0$ÝK¨{LÕÅŠãDYaDÍò9¦’ÈP‰‚ÙùåTÀþ2V=Ï‚Çȳß'`Rp ÔÂEÅ+‹&9 Ä ¹h¢àoÞ‘¯DÅ0ìLi»D¤g s²Ï´Raó®Éô]ó#ßw<*ð¨Ý(ä´½^ŽXiÜkì[%]õØÞÉÆE)¶êÀ¾ÚZ¼ Ù+h÷I ÐÉ4Gg™wÉºŽ”ƒZ6àÿy.U@Oqî³²—ºV‹Æ@5 ø©“¥Tµã¶‘–ƒqþwÌ-I¤È—^§ý’òMÏãÉ·‡CKbS¶(tª¯¯²H2„—Øe"8cÂÅWé=‹¹É€’G‚N䘩š†2åN¨1é$œí¹Ý|Ù½/™Ø¡¡ °,Y,òú®ó‰öàPTA)áËiïÓüV¥6Ü¢¬Ôœ%Ùè/\-VV‡):îÿœ· 9U²C¢¶Æ1 ~§—ža'ë”è új0K[nà·dÄÓ”ÔJj”kuK¶#‡*›”áXŸI†e³lÈv–&`K8<ÌïÎqeªˆ`³ P¼}7e"[¢-µO°²©Üž@Â;Õ¾`+袭æÕjÔ P¾»Ç‡@½šAÀ¦üê:q¢e¤…{ëHÜìçdG')‰Ã©u‡8 þKâÔ©(&5rºÏ-²$- ©w<áŸ^¡|ÏN€à£€¼ ¤rá÷²8$9PÃò+w¼oM×Lꉜ5먬ÿ¨t\ËÂmkÀ6ª~à1žç^Îà^ ‡•¨¨æU„¦Ï'Ú›×Ùê=_oÍGM$¨ŒP°æ§*°5XìâP˜ÝSïô3õ¬°AS±É%ç4i*ÁZ`±©†sŽRÖ%còGáV‘ÅÓÞCǬtÛu“ó-W†Š}Weª"é>¥7õˆ‚ùkOÞ„=h u]&]WÀzmp³º ŽbP7P2aYKc“½õ±RÏ`76E5'¹4é7xÈ×|ÆšG´÷ª÷(K¦Œ=Z–ȳS3Ç6kÚ.…> ªŠco‹DŸ¼WGt€ºX“‘Ì*S'òc]q @ˆ‰w9€Dùtžº‡âĸxäS…–PtW—ƒ}¯rcý5‘›O}gbQ¡ª¾%GŒLB¾¢œŸÇò€sþ^©HmÂxc¾™jvtçЦýæ1FM¿Õ?€}Öh„{&å!éŽ:ÄJ½¨5|eÏ5ötŒW¼6°»G¡íPÒ4ÛbÒ¨‰JN-€ò½±mê([:§–}I`iö®ø IY¹gs܃Çômiš‚ÞÕ£ êŸm±=2÷aŸÎǃs‚‚ NBäI“HÔµ¶ÕþH®qÊ+v¾F|äS° ¯¦ò'ÇV›Ú@³sáž Êw†6 á«Ó ɶŠEA¢ {Ê€¾)•ÌeBùÏ7á&xL%[—‡©W˜äÊt6JJÑ´Ô²ae‹çWÓåPò$Ì:²‰uÞ+Üd[t`}YÇךøË’¶ªd›&‡Ãe–#†ì:Qö‘›<îÊ¿MçGƒ‡2@§RÖ`ŠÊ7Û©cYNBLîÑi8ÌÝNá–É|…ëˆIS%•Äö@tUÕ ôÍãéÊŸwKó®ÒÂ)ð(KøRÔ¶'¥E²Y6IÕOÀÃ2v$r‘CÔ ÝÃÊ,ù~ø8©ìÙÊ› fÉö±oý¦ëËogšßh-j@NEå¡;QW¦“£¥•û®ìð6ðèÈ…¶Þs×õð“–‚¶–cÙU^µg"à ×+J›oÅæ¶R8Ÿ5¹Ü´tÒ{l—ñ,ãa«k2ޤÃ2iÖ9¹l¬”Õ)±ºµ€_¹ÕôhŸ5ê‚ÎÆ°nÇàP‘˜ ï0…]AW©.©¦h†›<Á"«ŸKþæñR}Ë¢k\Y &ÞK•éH|g>;~èøJ5Só-k¶¬£ OŠIj_pÚaWÅFtÃÁ{)]©™0¤6µ©‰lçN‰jêe]ã,/kd>-HßsÌ¡v³ÕÈ}mGâ–G TOTݾ>ÖœÖD`~„jŸì4ÆndŠ,7v (>ú*Ñ¿«—õ%TLÔ3 ¢™£-ý.•BºªI(ƒM–vö‚ ² »wã¹;;D¦’ŸÄ£]o–_RæÇ©²cxŒÅʺ ïX­Pá.B¶+œ –èz ÅeÇIÚ7Ù­ªºÓ5p<äæ«ç£. X‚„2s†õ9uÇ#hM ÉJ›É«»XˆŒ³9ÞJl°O]'`£)wëä^žh”E!'$G.d­oCÊÜÆ”¢¤’×¢\«¶«ÑeÝÞœÊkê)Ù RñTù »ç^·ÓQÒêŸÊ¬Ó²÷áçhÕ"C¥JV˜‚G”}Åv,ÕŠ©.Q¦”¸Ù*ƒ»®s¥º|˜ô}n'ð„Ë!¯WZ­m†KlËž…/ΠNÅC©™ªf4(ÚCuÏHÛ{;NÃŽå7ƒ²Þ`¬9¶ª¾ÍþDþ˜ á¥Œq@ {áV±>òð}0©õYÉŽ›ÝgñüÝIésëÚ«|*½½EjGlú”Ö¢¾IaY©¶tl}R ï;åósPª’_É1áèѕˊÐï gìæÙJ„•S± Ÿ©;´Šd<«Æ½Ã¦øÝí"¨š”=EP˜ç4RÍEõ‘+"0’s¤Ïs•4—‹Hñ=}DD"Ù¢ ð°.盆B)E„-ÚÈß4€ôS uÊ¿mÁ‰ÔAõ)ÖßW½™ÊûU\ÝÆ~X}aÀRȨDøµ#’ªœ*åÒe]WTn»l¯©—I­K—ØNáC‰N‡²Ôm©h&°Á;@ÇM}ûçQQrìÕJ·ˆËyO e×[d‚h¯ÎtÌ]ýãRúïVx]f©)‰ yèÏ£¡ütPø‚q=x ç²3°fœrƒúOò®\ÙŽ|>iÉI0.SÌ-äRsLñ@‰‡“Y·§òÄBÞˆP¢!¬’—ƒ “ÈÃÇ„²±myc@õžÖàŸ(àÍO}MU+€Ö¦Â®åCÐÓ᤻(ªzu=`=|ºŸš9/“QYëdU*bV18I)2²5xõ”HL :ضØÕ"£ï!Sê‚H¿”lÎV‰Œtr•¢Iu¦Ö_yIB†t ﹦Ÿ›WOú- '\ Tu‡ŸO½7×ZÉ®›Y$JœC§óFëR·”Û?Y"ŠéHªÚ˜Çªò)qöòÝÝÉ1bzžXòöH¹<x”ΔÄ'~ ÑZoqùx²c¹•Y,¶ù¤1Ò}ߺYvxÔíœm,ñéê¤ñ¹dðÛ‚äò8cÇ_L—\#е´ ñû6m=€eØžðV¶òpà™š=‡Âœa ñ× D™µ`Oz¡4±¡ö׺È@ô¼Ô•¢Ê“ÍC«’ÄT °šA„,Ÿk»e¿’ÝÀâk)E©[%…ÝÉ,l8*œä 4ŸTÐSr£Î«n@ªç`*_U²µ©ld¾åÞ©V‡ÓÕív8•Ýq’áô½&韪I•/ ûêQþ3;€Vw1”Œ‚K*•C›ÖnEÕÂ"_ZJd‡ž ˆ^yDE(k.'¸?’ª©¹žËŠÉPÅw¸ªhT{‘e³.åš™(eIÝ­pôT‡k¯Ëf¡Þõ¤€°áïédöÞî6º÷P57"_W’ Xº-©ÏÜp…„V£›ÈBæ¹TYVÒ–Lr%ßU©vלgOþâ–Ç5“^S­?GÄÇ1S¿”À3rxºi» ^hÝsS&9 D•¾y\-¹AF“ 'Çœˆ§ŠæÜÓ“´zÙL$SV±|v¢iTÑh¨Oö‚ûʆ¼OWâƒËÉGR(Ï›v Í,Z4Klæ )Ùýt°†xö Øéf.ÆÓ7RÊ­Ç¥,åÌn«æíÓù)ÊN°¡ÚF­³¬yT‚„Ýsž®’Õ<‚Îf1Ê-ÒÍ.‡dnÀéou•6[È~Mªžsé£ßQ:º*Nâq%Ø¥•ÒåóX)…³–*À¼ i'y{%§×xïbmfÍMáîí­B2‘E«åÚ&S6×´±²A´éq ¤dZ{ËeéŸ'>KòÿPÂÊ´¿ …ŒÝÛó".t'ð%?{ÄØ¸Ò“IŸ”5;Ê®Ä%qöZ Âfd:ørŽ#v* Ô¢F8D3ËmvèÃZ/ݣdzˆí{V9Ëÿ[júíbe=ŠP cX•ƒr)ŸYšøyg#Íùö—âN§c†E›¥Õ®,áƒ:±%‡ÂT«öð^™Ód\†rC<àÓ±B=¸®Nq}‘%ÕíVÙó¼–ªm<·¨ íEBY…Fí:ìEƒf!”ÈA­ÚÕ¢;EO¸Œ]ÜÆµçHíÛºÍZš“¹ƒÀeu¦ ûNyë¦r©¤¤Úý£TYDŽèQccÃs•ŽO©†YöëlõT L’žX€w žp瞬ÞS±UæúXö.›3†„Pð,@xrúv.÷ëàÛÖ£Ó)TqN~Ƴ‹Æné;ˆ‰Ý1·v¿X’,k™ñ{\Z×òwdðTýÁ/ž8H`Þ”Õ”fêÑ:¶V¸Å1Âf,v E×’‰Mü1pÇáô´§´q×e°@vnKy>ÍwV;ÆU£ZðÇá¹ßV›´^”çÈysÎÜ©T=ˆš˜&7Oª“ƒe1ŸN°‹zWŒû¡LÖVϹªÓÍ~ÞòTZ z‘4ˆ³æÛi(±§ßØAüLÌçLG@òÀPQ"ù ž¢ëŒ¨ì&Uš´†bš+°|T`¸îô,R0ÁšôwnµîI_¸Â‡«ºä}l:»D-Wej6Ë¢ò”ÒQDCêëðz˜\{WŠM)öêAkîV'–ºÒçAާ-*7Oµ9ÔunéYüOÀ•ó4¶6Oî:k"‘œš1•NôLt_¶\xÔ8᱆MA}Uh£)«»Ì%øýâüª°Cá`Â…”H% CþÑ7RúæË¶Âö%„nQÿÊà4–hð°pé…ºONz^޲@©·æ"qTðЪ‹m\IºüR: ýådÞK3ëñjÊô›I5 –âÝ6ÛG‰½8"~ïÔ#YÌS Û©+œ^/ɦ·&#€~SÀ:–Qïl›Ù<)eEt•=¯u+ÈM! ê‘r¨ù-PnBúö¢ ³UÄ©<˪ó7žÕ|dÍzzë| [^HjÊjw ñNÚÖéÌ“æ<Ž˜ôup¼PšV¶†Ã’—JÍŸ¨vT”²÷!ê½Ùÿ•ý[ìÐÄë?ËEߊÂ>— TØ»b—t= “GÛ„/^ú©Ò%q§X9lÞGGf¨Þ ¶Ë¥imµú=Ïþ¢àV›à¬*ËgÙÖN§m8(~Cb Úôºã0zTtˆ€€ tñ4QÀâž–¬+Ÿî¢íí]êÆ{ïÞ.§ Âæù7}R¾’ ÒÚFœ;™lxò2¥fkejœ{`¨:! ºu•šœwâ}¨âŠìB×CÜç¾\ ž¹§oI©µgópØ©Ž†M#ž=S»ÚLª{²(ošWKÿ»Ô×ÊÈjÂ;hSñØ_»v:”Œr[ùF€c÷Fx¸ÅîmÓIØ®MCs¬rx6J|gÿË:k—0l+Œ”GI‹ý¦„!%¤|Ï”¦®¬·‚í‘á¸é v2=iʼn»“9á<ôô”¥H¦9IÀÄDò uOTŒ:î«§±¥ ȳÊàníÒxÛ^õø±ñÕØxlÑå`Z·éÔ[6°žnlJ©ˆÔëf)™'¡Y\ÃË®.G_ð?;RÁA·8ö$(¦€û®R‡ªûD¨H±¶GG¸ %`1°Ä”’IK;gã)²ËR?FT½P1ÏÏj…дv®~SMV'=\€ÇòÜÕúUl9|Ú:ܜޑ ã ó˜¥è¡,»ê •2óÊJP<öÖ­”]b×Å!ëÜóÜ_RçXM œµ"Ë-mxÊÄs<Î:ƒ}¥9q ÜŽR^XCÛ-8­©ð¡õËu(¨ÜA}Nè‹z¹t§Ç/M]ŠdNÞQ!\ýŠ‰Ñ§6[„g›aÑ 4eCè…¸?v'1ÅÑÓ:£ÄÝíÂ××ÝfoÝ.u؈"sÛüƒ²^Úæ)àÜ=œ+ÍÊÜ=kÝ>Š­esd/D¥ìözV™Tú¾êš©•“oH±jT¢\‰~v,tJìÞ¨Ú.ùî¶ëûÉóÖkÎ ùÄûé#|è×{—§‰,òî¡ÈŒIõ®§{þè^[ÌÊÉ2 -k„ QýPžDM“Ïø–µzkâ‰o}QãÉE$Ž!Nyòºjàc¾d‘›m‰x8æ @ö¦(¼ ÃŽ´Ô[9Ãÿv³HžUêò µgSêú¢è)ò».Ù©+Q9Øp \¾ª”Jò+ôÈw+¿ðxΦ£ž..DM/ÖØúÚÍR%ѲEl—)ynóI;êUŠçÀä6Ê$5éZ\|Nº vÉÎàÏzß½zwï—Bz#…%å¥: û,5xtÂ׫YI }Óî”7jeXw…i•Fí¬YòôiyHÜÐÅÃÑ®2ÍÃ# ©û:j”ÑÌLxqß!êî!JèQ–B1çXØ0ܯâ‚Úã9ì5ï*´ å•êTùˆ—¾¶ìÆÃäxÉ  «åK-ÄW2œîe Ó빎öX<Ú'xÉ 6`g 3˜<¼5‰® ÚEÔUKû±¼R¬îÐ7ºQHò«Û#™&ó(R¦:zÝf}$E>äÛ%OXwçΕ—Vâ¿‘ù*˜qS-!yD£S:°ÔP<#p ùÒJ“,T"ݶû y8ŠÈ°èŠža©É !FSjVvâñ¶)×N%qÔªc‡†#RžFÝCb)SühîXÔì/$lŠpÞGï÷ƒðSUÅx^Ã2TtÀSÀ¸mDZl“6jËFšuü/–•6*Uƒ»ª¶He©¤”39µKUªÅ> 龨 „—AâyH%QÖ&h)9’ Ð{lcVû_S& –á$\[:Ë„>T‡òµ*Du¨Ñ<¤ž9þ»ëž”µ.ž¥ƒn§ %õ²N#t8ˆžÙU6šCGãÑ¸ï  ·,똤e˜âD¤¢É•o’xuîÚÊdœ<¤ëq$«ªÄ%Eüféf²…|³–íëÖ@Ó•/+Ñxzž|j[µ É^IÙý¢ž÷ÈMÍø’rž~õž¤ÕY +:ö­³ÃÙpZÛXC;Dö_ô²[GÑF>äî¨êÃÅf¾<¸Y`ÅÖ¢K›õ OÆ!çEUݦ4@”4±Š(›VÀÌËÑ.¾÷’Uä³÷¬”;Ïø¨2<£\ÎqT0Q_,µk•ÅÞTœIÄsIm@ˆ&œê•?®ê)° *g¸[Í‚˜'zk)Ûu$ è…)D}ªÃ¥Y:Päp­>yC7SPïã¹d“÷L%ç%}˜)u¶ÉÍÜõ¦¤Ä¾@ž/³Ú’²¾êU‡ C„”’sÉbPÔ£w†¬WNW³c Ø ÒÞí¬=Õ ²JîIiqªâb¥ž õà9Ù?©öeºé¿-±Nêä= ±{‰»!T“rÿC¦ÕyeͱÆÔiÛË5ˆBByQcÅð=EWóXÚu™ Ø£–Ú×<â“Û¿íNk(yˆa “w&˜”zLáác˜+Ç:ñ%KIöOŽb3èië‘å°ñb‚Œ’^¦@b‡•ϤwCzÎú@ÜȬ„«hk_ÓFäÆ #ÎA[}s2™m×ÉG>õq ¬¹i ïé)ÕÆ¥_pÉF}7LkÜ\).ìãY'+]Jžµ“•kמ0©€œÒª0fQ {qónWwi~êë¸4’3q*BodLK,±Î£$BÜ‘^ þc =Tœ±õФFßd&êgYéÒþ†4˜ªr‡n-«~!„¶Bìê y6¤•æO»¾8"Û¹Ês¶„‚,‹Zž›J7s)DÚ&ˆT=‡¢NÌޤHï.mxJã¬|5Bcq±€Õm1U©àxyÛR,Eº6I>åkWv€:çqV\yóQj/"#@¦åNô êëçmÚÞé@lÈ/S4[.±j#Ô76²³Žˆ@$‘+ߜվ»o°zgY{ä B.rSˆ¸ª YÒ:ö½œw5–o5Š…€%ΆÝw.‘bQ˜gªxfÌS‚îæ÷쌠ÊrÄìÄEÛ™Ô4r€è§ã±«K«¸ØrW°á¤JÍØ+êk˜‚2Y·“Ð÷Ø~ظ›¬±]Ôg›"­Ë©Àåm:I`XR|êJOÜ£éá.(,žMÂPwúš¤aPPðD%ÒG5àÔN$¥/é™G/I¨#SÛ`בåæi•ÌvîC€>²NM͆”R­:i)’`š¥f'«ÛcÂ妖ŽYS÷Wëê¦Tëú{š.]\Ÿv”r»ù¸ °ç±Ýçê_Ë2 š]yCw vlw Œš’wxÔ+³-©´pö[—gËŽ}ðá6Oe)‡3ì\³$æ­c¯QåTŽYº¥¢­î_®kæ~sŽ@ÏwÒkfa‘Õb¥/jÿÝ<µaq²×ú²ì}äèp»÷ÀÃÝÔ¦9’WLör¢Ä´~TÝ¢dk‰Ñb êÊßr=«ñ=AWóÈTQ)K²NE3jJ©öòÇÙm—Ú6wÅÎÀÂ`êQúÓµêØˆnUbºú;²Äyyj=£þ* …JZë{ù#“¼—bCâQÕ°ÂÜF€,…mÞµV§â›Ú¤ç»Jfëuqù˜œ5 “êŠÔñƒÇÔ’¯ø‰Qd£²ªû ¡òáaå3“‡øäâ1`¸u°8•x½4×fPžKõ}éˆÅ7ÍzØÌ50«ÁÉ×hšÊŸ˜ ò‚@¯ÒCmÓÎRÆIÛÉ4Õ=ö£ ÝÛ= ZB*xæqIž+ ( >NXU=‹ªr¥ÐÊ^Ûp–C§p½ßxÆTÚöÜâÛù&þЧ+Éöâ ©·š‹â5™àXVRñHV ¯º%=<¤äQ¦ãýÚ…«°Q¥,A—¸xë–lRÂ{ód<ÙÒ oª†ìvŽ2uñˆ²k8[žÙšú,‹ê×µ†TÄÔvCc9PY“–€šö™3TÔó±N"ÀxËÃYVej¡å™ërÙƒ Oí¸IŒ@ i™Cµ~\ÝmÕæ ³Öçܱۙ Óyuɹzšq·ÁF¾û¡ÏX•÷æ¼'ûgÜž½r=“’í!“{§Çv £à±éÅ% I{§SCkΦu`"0øÚØâÏâüôˆN:”´Sr»NZºø(˜¾ëžú¬ ´¶Þ¶Ü‘$Ý6P*åÈ”@ÃcR ¯è¬‰VJàä¸ô3BæP•¨²=O9ã íi!,WUt]~E¢ ûC¶ïÒ¢fVøÜ¸§jcNT,Š ÈÊ'T­ZG_F2„;„ÄÍY{¬³PÇ¢‚²=’™œ«Dv‹BI?ÕÁÔÑQU×pV3Ȩ#Œƒ§•rNG÷kzÆâGëÖN>«NB@v_ýP‡>Í £Žü$í¯IüÛ–`p.ÖßP•=ÈMß5s"P‰TV×ÒïR½€¬§ ÕÙÙÕKŽ÷’ù¡¢QfZpºŠô-ëDaë?œU&±'/Ò¥£¨ä*wKyÔS™2rhHÓ%K;²“¥˜å0Ÿ©\ V’RUCI6öö8 ÅJzß®áQbKŒKÛm˜* Û£Ì⬛ÄaòÏ˪ ]x´*yZRÈ÷û$-ñ<À˜dÕÆ{8[|ë•nkír¤{jTzQÁÐõ5qiEN‚<ÖR ÊŽNTÕO-×yÅÜcY¯&G§)Œ „¶mß½›D®]ÿv PêœT]ì|ÓKT0ˆD¡ !p?_vE<»>!hý$ãp.·÷.ëYÓÂóprÖ ‰\tëGól%â[Ùs‹O§ ø z%­UšT{ÕZÓÇ))rÝãNiY‰Y»¨óèÑ¢ªþ¾<(|³Õ {4 |ØèIîEµ_™ò>²ô\¶Ë¡Ýƒ³é€€#¿½U]³fÄŽ¬=Žô©èp7Gƒ@_kª ONý$M¢=¼2@÷Ù·3S±+뿾×43@’‹öa³+lY—PÆM”´4i* tgLÒVb³bpÊð²ý\$>À‹?ïÌóånì²!Îkàí“C£Ó*Q7)uw§‚ÎÏ\® Úq»SÐ *ÉÛÖÝüÖ^­ÞOÞ–”³ÜjEÊõ(<¦’4<¿‘5: _”#|5éUÙV/1 pàó³ir~8†Øä!:õJp#Ó„%`Èö#N—$ùßtéY7×çÅm8=™w7:;²ô!ÇqÉnÚz#¿$ÉÆ¥ËsA¡Jû„Š¥éxZoÙ@•Gô(BLIWdL),{èLääQò©;à <ª`Þ…ÄOìú枑ڒãc„¡âl…Íl‚£z’”:öëœ f9Š–mkĶ1˜Ç¹TæÔ¢¨„$QQoêÕÛš4*Þ¹Îåž_K:z°^ø…9ö²]È=åŽÌ%n·{@z«D$ǽ¯üµú:«y°/ï»ód§ó SgÛ‚òû $¬™:†´ˆwí¯ˆ¤9Ú:(ý7P*AŸóûOD–%i>•ˆ-ò@Ƥ%Êùƒr1²¯Ù£÷2$f;žžî¶¦»&årlÍGî°Ù&§Þm$U•$Ñ?¶ì=Q‰'h:mÜ)/˜D5u²~Ò¦"SDea‹ðH‚5ñ­ç—ZŽòjÅ\!Aê¨:/í窖…æÜrÍ¢4OµSÙ»ýÊ"­—ÿ‰’±¤fˆ`Žwx$Ë}©WJìðØGÑ0PC @· Q¸¹ž½|æc[BRWí|<*§™L‚œä,ùÆ”}ÁN( –Û/ÛïY™ª³R]kÐ1æ:í$æRÁ­dõÒÄPiã–W» ñJã¨6¤ògÔè€ÿêD``-éf–ÀpË^î½Z1ñÞ¶©”º¬\žxУ@Q'@9›À.O”˧*ºÅd›’ Rd5D¤[)°ȆäA” ÓsQšœš>±§«j(¬f¾*-ë8!N§’H©xTæ¬/õ˜"¬q]ƒ÷\Œn¿DÅ¢¾ëCá\%[U‡æJ÷¸é¸¢ÝÑð´ ØÚdnÚˆÒ0äÃjÕ|tè%ÉÙ³âtÁalý/}‰øòý%êëÕN‰Q‡ÎðöŠR”š,QÀ)«ZÜŽ©ÊÉbÃë/ÏW \3×—ìZK7ŠÇ%Š•¥„yp öºŸOý»)fË‘Z¼GemN‹e~Ä&š—ú” ‹LÕ•T|øQý'œçW–.¹-=ªh•ïlrö>ÈãNJP„æyÔnÃ^ãzœNZl-þÚ‰S ŽÔ@‡V‡`<°-5³ª$§ÌÔï+voJt¹êìLêÉIÖ]‡¯¹)MÉ›x¤}éÈ=>—ÔЪ<‹®œ3¾‡½Nrvïåæ{>ú^=®:ìk§d»9FçëðcUÜY³)‰5§sOöålÉ%;¢ÉaŠ=–%]u¤åþô²ÞŽ¢Kð¸u†!S]ŠSð‰W‘°-R)a°]ã8Ê«[ç®Ð"[~1ð±d[¶©\si܃ x–xb!ÒRöHÔxö¥ ÞNޱñ^H:¥½æ)G‰w\ÃHØÁÜW3†mIª{5Ñt!W IÝ9¡fOäYæz§1ÞP¼±¾Î5s¯†®, c¶ƒô·âø¬$o¢Ëš'hjS4Üy¢,…<ÛæÔíð‰R'Ao sÕoNáY>dOjÇãy̶”IN ºAÀâ9or«UâY‚¯‘|'ñõ žªP±(ýBzÀÙÖŸdgRX ”4rhO¹³îø" V‰…Jô\®Lmi`ý<£|2zVb½ v;GR ËýÅi€'‡6Ò=æ£õ¥žÈ º!›Ÿ{ >(Ú3©·`‡LxâH¨Ùz:D¬’¶ø&éqS*x?ïã<¶ƒ¶³hûI~³¸ei™9=éáÞìËWf;’ÔŽÔ}#ú×[†°ÎU©m\øáÄäò«ŸrºGDÓÓ.¾pW€ãt˜™¼LâËa'èr³Ô½'<ŒÍ9HâÎVKwˆªTq=䤬i‹d© k$LYPªVÕ[f‡Ù¸ç™-Lò<Ö®ú‡ƒJ–QhKäÕ·[Vj"@Ô¥¿W¾U-€Š~Cì'·5ëUš>õXœÍëñ< 0`uU“”-!4mÚQ*’—MÇ 2$/­R SŸþÙãX²]F~*ƒ^§*¹€Û!ÆÓJõõc—¦ªD;`kékÝ…t¾0Ö#!Ká¼–q0&m×äÕš‡y;–ZœƒSµœÏÉoyJyò]Ó‰9ŠîS2R7ŒmÅØ  ¼N­¶+g­ª“RÁ§ÕÅ V²dÞ'ëx{¨<-œ#¼PöEo‡gÚ SÕ†±`wþO¡³Ézæ¶³¥ºbÜsùCžŠ,ÌÑ/UÚ‚œK/ßv¹=´%s7Ù 'K‰÷ÕHˆJ§ISºD`µ–ÁÀÄßM›DJ·ùžìàÜI¼µ&ÅP¼ï J —šüy9‚>†QË6Ù©MB÷€›WìT¨½93©„ˆ•. †µ”¥‘h¼uG–íu8‚¡5ñjÿº¸Ôv<¿;°€ŸZ0èœ+©"ÛHaÍ‘¾Ï¾9à±§²½­¹Üdv¥vxl»8¢½n–™ ¸Í‰Ý ºÍshÝx}þ¿ùÿþÓü¿ã ¾þöõ͇ïõæÃ?l¿ÿðúýÇ÷^ÿéíÏ·?û³ùî›çý»/ügýÅÛw¾ø«—ñÓþß³›þì?ûÛ¿ûËë›÷ÿêÿ2þ$üáŸ^Àa?!ƒðg?{ûñÛ×Ïòß¾~øþíûwõÅoŒ¯o>ò³ûÍG~ñ§ïß½üë¾}‰ûK,ë_…ð¢½÷~ñý‡¿z¹ßüúí7/?ýÉË¿~ÿîõûíÏÆûï~÷áí/~é¥ýá?_þüëõâÙÑ_¬?¹~õúáí×oÞ½üôÍÇ_¾þŠOüúÍ·/÷þë·¯÷'oñçÿù/?~üúê7¿ùÍOÞüêûŸ¼ÿð‹ÿâ_ýÅËoÞ~üåË¿{ýþõï_¿yY·åß¼ùÕë_í'ÛŸ½üì—o¿ÿô÷þçóæÃë ?øöíׯï¾çO~x÷Íë‡>ýåïþúo^þíw¯ï>ýòß|ú…¿xùñæ¼ÄŸÄ?¾Ýí½}·þøÍ×_¿ÿÕwoÞýîí»_¼üüí·¯/ÿöù›Ÿ|üíÇ¿xyóîñÍ·ß¿çïßüúÍÛoßü=¿°.ýÍËsý7/oø†?~¿ï¿þðö»ßÿäû·ßú¿òm>=óñþW¿z}÷ñûÍë»ß~xýšûþ»¯~|¸ÿðîýoÞýþ¯~þöÝ7?÷k|óÃw_ýûwoÿñ‡×¿¾ü~´}þÙ/^?¾A»öòú/¯¿ýú—_ù?ûÝw¯ë£?æ;üÓï¿{ÿÝËÏù.ÃWþÏöûïßüúõåã‡^ÿé÷_þß¾Úb|ùæí×_þÞź}~w~üúóO¯yþÞþöå ,¿øüŸ?þ×ÿÌ ûæý»o÷ù××#þÃwýãO{ÿÛ—ßÿ屿üe:âKŒ{{¡–~ù§?}ƒ¿}óöÇ Ÿÿö¯ßýüýKûtÜ ?\ë¯|øþãÎøW/ú^ÿæ=KöõåÏ?¯ðÿ)ákþWü¯óõ'ÿ{ËÛwù?\áÿüŠž¾ývýûŸú…ÿÍ¿¿ùÕÛo÷ão°døÈòÿé{6Á»þ«ÿÝë§=ÛßûÍ?ÿ·¿þø†Mp½ûÅ·¼o¿Þþöõ›¿}ûñë_~Z'Ÿ~þïÝaß¾}÷ú·ï¿kLyùKÀÚ?û7¶Õ×ÿ@ÜøžÅ¸þé•]ó§9ß}ýþ·W:ÊË›Þün ¬!ôËï#ûð›×ß®åûòÕOÞ½ÿÈŸ¼ðåþéåçï?l>QVÊW?ëÏÖKÖÆWÿøÃ{¾ýú’øq>^¾úåï¾û%aà?*/_}ǯ½ÿæóêËWßûæû_~þÉùòÕxýðþóxá_óµ¾úø›ÏÿÎùêã/?¼~ñ^àû>|þÁîÿú‹ßÈ|,Û䯹Øï_ýŵrg¾zý“/tp©ïÞ~q!…?º>¿âúçWüòøüŠït~Åš|Uù:ÏçW|™ÿòó+®û¯?¿âþæó+>á§Ÿ_ñžÿö¯NÞóo?¿âvü»Ï¯xÏ¿ûüŠñ³Ï¯øFÿþ¯Ÿðæó+¾Ãß~Åç}ýÇW®Â¯¾ùâ%ßâõ‹—>/^r¿øâ%—ðË/^r o¿xÉ—þ_¾xÉU|ûÅK.ãWŸ_F.ãÝ/¹Œ÷_¼ä2¾ûâ%Ÿûá‹—./^ò¹¿xɽøá‹—\Ư¿xÉeüæóËÄeüö‹—\Æï¾xÉeü‡õòOvå×?|ø@RZq“-û‡×+¾¾þöõëí¶ýù84q:nœÎ¼,«Bvì”jtåÛ9ö¥fx.I„óÏ%•®6寴ï‡Ê¹8]­ƒ¡" *Ü.²¼r×iµÏ®Š¹ ýjû¦¡¼ž‘Žc´x¤;ÊÁ¢ö;5YT´åÊSC´}zfDÝù²tCþævrf€ò£“óºwìIƺ¼ˆ …ñs:)”µ§V8šš}ŒÓÓý㈛‡Æ;e¨ºŒ*Rß܇¢âùK'²©+­7Ƕ=‘JZûúê>|Í™eÊórSx49 öC-¦nY?ÇIµ­|è¡eÒ…Â½Ç ŽÍÕ}óˆ8y×4·z²›ÏÍ‘-hmã!Vz–P}¾)Ö‹j3ðy…u[ .;»Ãg©d›ÖG´ÙeŒÜì¬Ëª.ù§“êLªŸ“â÷–Ä_ Ù´ý.nŠÍ\ç÷£^穞œSßõ5ÌqV=£fÕ›Œ˜õÕ¦SüÜÆ=xx4ü_m¸´ÿ“C!ç[…K½ª©Iï0óØr¢"+MðÒrõüU3ªõ”ú­Ëa»¾žYñ®¬ïSÓËÛÂö8©ÑEùŽncJÕbÉéÇÒ\|ê(e懺¿¬æIEc©f3h«§zU½6g£ÇY]¯Þ¼ëRëðpÚö”M¹&Ò$8+±;[;Ã¥ÿÛ¹iŒÕŠKÕsŒÅV4UªµŸV©Ýžüüä5t¦1Ÿg¿Õ-àëÏí¢ÆnÜ(Å}×ÑS3¿XÔU³{äűˆg`+OBõ U/¤1n¹ó½‡ÃjçÞR[͉CÅùSGj~û΋ÄŽURGg+Iéµ®£Çrl ’ª8¾Ú骶•Ã5<„,ñ£Üý¸KŠÁõ¡,%)1ËùÊ™'´‘dMG6ú­†ËefÖˆû2ñì¬y¼"ûµ=É»ùm]ÀKÛ?ÛnÝxm«%0²5U¦îÁ[è"ï»ø¶ŽO©`xõÂÇÞ——­Nw›£=µ98B=X¾ÏÞÔQ®ç-ÙÂCóË£U ÖÉiV5ËtÄgm™”ºë±r{?ØxñZjžÜ­»“Øår ³¦¢€¯7%*ë$êòmb9YÏQEîWJË”o?wRáIú¬D:¶b’ʯPgÈÇ!×oì²ÎoCû£ÜÞ ü+aßÒNìå!+‰foê&8ÌÃ×Wä%ñg@’²Õ‡=ñ€¥X,˜® ¶†è¢6­ò­1õÀgŒ},öÞÐ=éÚûƲn»<Ï¢QšÏÎ¥î °ò£®ú{‹^c^¸Ê KB¢)WpJTð°¾Fήà1‘Z™}ö iD*zÄ-{ë/<!Ó h –lKô#v}84µe'@T_Œ7‡ Ë› ÄpK³|vp†ánŒ­i—áééu]zh';@`|ª7RT(Ÿã&È1ºÏÍÉ:÷¼â;§¡Áµ«Œ†§ñ—Õz}#›z^kÀ Iô¼[Ü·0'$y²Ö)C7‚*¥DÉ>Ú-¥Bͨ’RãAŽehU·VåN0US.”Í£R(ïAÈÓ¨èôX]‘Ú)›x®Q` ó‘’NU›ÌH€ k>kʼÔ«_&+y´/áhÝ?ªôøÈ\åLjC­p®±¥¥•”=QcÙ³ù'Ou¦ÉÙÇdŠN(jqèÄ߯ž&Çí£ž­Ž™Ô¨žE—ÛÃ`AÚµÔSµ×Vx4ȧP@£ÛË®„ß&YÍ4ë(J•æ'ü<òdÃ{ÔI­?0pãðÈ–«>‰jl<¾‚ã‰ðÿC¥,2€þ¤ª±CóbÙfùf kȺ'"f)Îö²îi‰Ì§ò´Ò'/djC€›®Ã%ûm“¤Äìª9®- %ˆ‰§œK}PoÙ]¬>ßœQÊóð>'Ð&%‚²O×¥Wv9qifDÞ$þX"UâBåQ3FACrE\žHIkUf– BðQAº€^‡TÎÅO/62y}yC x‰§"œ] 9L&¹-¯ÐC™ê7“UÊ'îk|Z8~'Íá|*˜IŠ#‹Évmô´âûRKf–r·à–ØwåÖM‰ï0³>¼A¯Ä‹o¨á&ùj9°n; N¯ÂA]·Îùì1 ¹÷S½«Ô_?ЪŠíjûF,2ÍÊ‹b/Ä €½dѶi·J,;”??Õè"„Ÿ)R¡¬ô !ŸgäAKËê—z^'*—EHËUÅ.;Àµåú<»O½€{©2VÜ—úä®DÉ÷"*7è0«\DyÎ=!nÔT¤û}8š¢ÆW0Ó"‡Ö%ñö°ŠcÂñ¤Ø“SHÙb ,t7êþ‹ÍIFuн¶¥ u®&–N2òÓÀý±ÈѶóZ#¶™7äÚ¶•Ó.©ÜÓDØ” .»—»¾¤Z/*9*輟TtÜ.`2#'ƒrßúpèãv^V}ePûT˜M{ÎÆ-œŽ=ò¢-Fp¨„/¶ÇMÈ–BÕÅFg]r-ìáuG^Àˆ]ŒuD’yÕ«Î~‡}´ÛÁ ¹CÂ0W ÌzÀ4÷ÎwÛ¯}Hb¦@"³€‡ø‰:ûW_UÁ¸Hév:^¼KX˜yÑË¢®ŸúëD[vÞ¬Û£ÔÒ7ƒ¦” s ‘_Ôëß;ŒR·ÔˆÒRjŽ狯¢hlë"Dªõ‚œtn*ÎÙ ýRÿD–M¥5ÎÕÉ)® °PÖ³£†äHγÂ\ ª Ö•°]Qj’aXJ¸ Ìe]˜rP÷ûR<2é’à´¶”Óò¬ñ¦x>2‹T³Täi³g äpÞZÀK@ÄÖÂvu’‚¢—²ß&%!ÐIɤÅëÍWs˜O}3ª¶,4%Š–ººÜì pgÛsòÅ Û–,P€ÎÐv€‹œû¦Í-Ååã¡ðíí 8›1o±òì±ÕLÎ9‚¤Ô{ꫲ ¿îÕåëÑ’$N$÷'U¥ ïÌ*?«ªï½BgéY—ÓL‚T`5QX£çFÉÊü«ýÆ7ITµ‡z‘l[Üyñ›k€©n§á-)÷¤„¶Í†0ÑEhÚÛA`$QŽáÞfÅÍÀr¤’”2CÙYv …4ª-OzçïMm*ï>ÁƒEØå³Oéi‹5õ¨¬°æÑw²ùKx¥iΜ7]|'ÒØ³"«Ä¶­»¦ˆ.Ù]qÞ¢kaW÷œ«MxÑøÐcߦa>8Í“¥;¸_ü2¥9¦]Â’Ôš¡»ë[¦1‘)8©9S‰ÊZòµÔ¼+:#ßA\A_r•Rˆ’¼TC€"ƒoíë@§Ý›ÿÈWÊvTº{[Ã+Z²VõâH9@ºÓæê®î.À Pþë@ª¤I´±5®PÀ9gñ¢v´6ë쥮 ›7ïÊ£7~C—ª$˜Ñâ¶Kõê\um¡©àÕUÊXf¶%D×nUW)å·¶< Éà¤Up~ÐáRFÕ **ÎEQÄ‚”R¾TÌ—|ÅißA·²º³[•­Ga:å ù%M)š³» Ù óå ´s·›Sèçm—–RÄó¨5A;ùÍJ×K€2“Xri¹U(§•É®!²\nrKZЈ½ã©Ñ÷¥S¦¤ëË»P©ls@bé“Îrn-T)5Yò€Èr¨Ÿ.Ùz-XÉ} ‚N•=Mg¸ÉðÍ£¾ ŠlžÞ\Áió.º+)I0«Sq°À§±:u¼«* nLÿ¨ù¸^Ô˜»Š"“ âgá÷MÉ?–i#*²„õHÊÚ6õLÏ]ÂÍ){dž ::¥:ÑMÜíÈôtÒD ÖÂT+Z¥Ií˜<•;X‰‡…gg[ƒ½¹BÂ1HåÈ˼ƞÙÁç Fàƒ§P¾9‡JDp1ÿ{ã‘v­Ò¸ ×RËJÀº¤½jµç¨’Qt(ið¨ìØDªºª‚¶\*v;U³¶Ì¤U/Èž˜ò~ÁÊ£/³X2T9—I” o`C–î±%B<è!„yQCÕ1V¡b࢘*«mÀ­»ä½²)mžòôljh-Æ=ÈªÂÆâ3Hª÷•ä+J¯jõôâ’3שÀ*•ÕÒ3…ìàén:ŠÝj³zG”•ÓBºiCb<§ZP‡òŽ“‹Ô´‡sXHCï(u“ˆÈ$ÁƒAíœõæ=Uf’€I/¢Gê)Š,=Ê» =J4q¿ø´D˜…\7Û™Ò‹‹È8eÏ“¢6®lÎÛcÎsy~Rs8¨˜tûevåÓžN°­æÐbg­n ‰ÒpüoòÁ&±NËekÑCóû¤*Ù»±XÙ‰p(ô(Ð$qhR•Hk޲:^ì;õFZ!WQ>ÓÚu§¾ P¸àáAöÛôuàÁI,V}úÒŠíŸÖtr¬º¼]¸Ó:ÆðßS[hD˜Ìû¤d (s§àÑϲãÉÌ©q—,¬.@úe%L²2dÛGA¯ÙyFËÁr.ú^ãRÓ®÷­0OU{ä¡ÞV‘0ŽåÕ쒲ƒ(íÊ>’qÉ)°ÌìÍá§ÚЗ¶|©+sØz%×嫦H°>)yšy×}ñ3Ïij±TOy ×òL™šÅ%ç‘–„j×ò‚šÇ¹Ûvõ+{lçú@ÿÔgžås#ÕE®Äiêˆ~-µ’¬ñÔ- öJ§ÝýÛ©·¡Ï•’ðÇÓè¬# ÷“ˆE`¨ÔMÕ6‰ò«Íï7-·øÜîHEV«{ ’ÀñT9å‘oIXÛ"ÿXÔƒçéPÊ8W²] Ì,k_ÒÑi³): et!‚Ý(ĺ ±4§Ì¡ól“Å=§³þ„{G%†>]Yv»ÄSݦ{†Ò„`A6?åç:‚POaÙΟ­ò9mqï3OعªUë«()ˆzU¥ ôµ9­À•à Ê•Éò"m¥.Ó r8šíûØr¼•½ Nª”ªrà©¥­ÂFªsÕóV.dsrßd='†²'Ó)ÝÒ{sB^»jªÖ¦¼ý­dŠÓ†ŠÀpÝ3ˆÇ›4©-gq¨ˆ RÔ3e©œ÷rëôéÔ5É6˜Ç²ŠÙlZ¾†åÓò<œ©˜º*ÜèÔˆIÂR§*¡áy ádòæsã¡x4Þ5dp| `I4!‡ê$r…)-équOŽÈæHg½·M¼¥_çAJŠfV® MžskÚ±ŽÙg–Å¡çw–J€½5ØS¡~à±X€l™•øxlG¢—¢À£­0®R »£yªOHáîW¡&Üe;qží4”2&…,¥'.¹·Ý=ÕÍ'o7u÷Åí%TRhóaì¶c;Mt´¼YX¥o(“´µLžÕä„jÉ*¤z ¦ÿ‡–ß½£m(½«Åëï þ¥X<=©Ì7ŠÈe ›::®‘¸Þ¡Swî¸Y‚7n¿˜ß”? ³aè,ØX®~阬ìì˜wxWC³_,é;‘O€á½&A€b²œ(Yäýô~ªZ¤Q—M¥÷X:ÈVÁªÎ-²QCô¢C»XgÄS‰, ©›guj1¤Z“jºƒÔ\;©$.1NÊ·,ÝÔah„šÍ8ïÀMÙÉÒ¡àíZ?ƒ-I`|²½O|Ò¹Q8¥+UCìg¤´±£îˆõ ­´ª8VÜN!e==Õºi8e¾»¾†ý^’ž«{iÏν¨A'>(Ç&XÒŠ‚ˆë –(Õîø}nY@çþ ¤Še-‘®ª”Ç…=œÐŽEE‡öD9ͦVìu£3è÷õð ÷Œ¡¹¼”H½àI*@ >‡ ©ýtzõQÍ@a þ7\ÞY†»EUù¾9@jˆ5Gþ¢vè‰C†ãùÜU‰6íêuÀn`eíãÔŸ¨¾¡;ü»eº¨¥ã¡°ôõR["øC}®´¥Å÷#{©(Ÿ¡¸Û3ìK·Ë3zç8Ð éMmõ›F± ¤vD{I8SPxpº¯)\Ýé)d(Û“&âD7U‚m·¤·T=ÊÏ’¾=ÃIû¦š×3ÚHÄc©v­ºtÇó(–¥ÃÓ?ÍFÚ“j"ö¨n|kÙc¶è†S €áAo|“é|?¿:ÖGÇ{ðÊA€§µår‡m’Û(KrH΄©#¾«Ú$ìê¢ÎÎWæP™ŠÂ ˜dö<§§ý{ÞˆÀ‘tF}Iy5ô‹;Ù–ô †ñºp µÈ·‘Þw_'råì …ã©vv@ÂVBÒÏ”ìýDUHåÈEÃæ1™Ó£Òø’`À')iY»ü•êö‹$¢¢JãUˆÜ©Cß˾C0®r¢Ú\:ÈR·°»m¬JÊ£l6ñA»-ïÄ<ݪá©W-Kú° ÞèQ—‰¦pU€¤HÜq¥ÝÄÍ«¤P2Ë£ôyÔ>ï§—«°¿ì5aóÄSÅE•zúuÇ"UòXíõšØ:PmQ¾qó’¦òë,GsiïÌÙö­ Ûª(¶Þ´Z¡N–ƒhåCá?ö|³©Æ¤à®²£:%‹êí¤¢»õÑî˜Ý®ùÀt¦ ÜÚíõìžK;ÖÔ=R0¥X52Ü–ò£‰“­Èô8L~d)r|ŸîÁƒí\¿gÑŠýØvêOÞÆ2—PT†£ê'‚¬@G–¶=žT›"ô°¦sg ¶¡Õæ â`6ƹ©Ç'BÕ.ÎFÄÃ5óÖZ’±ÎêigÔd*;íFm£ò‹—õ-åvl,q÷£Å°²W’(©Ã£C‘tL½äjݧêvmRX–|‰ ;þ±ƒwµ­p>²Ì²aï§Ù} À«>ÔgáêS&³il‡g”‡íɇ嚇’/ x…ïsR ¬„h?E'€AöacÍ:øõ.]°»¦òV`]"¨ì¤ª&…k}¨}ÏËÆÊ³³‘wpâ<ö’²lSvo8Ò1;´ÔY¤×±l<Š"qÝ•¼¦¼ ·y„¹iÖ¢G‡ªU\?åöã¤þ.T±‰{*ÄfokWêK{ î½~"È›-z;ͯˆ×™¹u‹$æÊ+V…-ÜY¹Ë ëš1óó#à‰«³½N´•¤Šcª·þ] ¼r'£mîÝSŠC ý‘ YSÇèMïÊÔ¨ †,;b2ߦK‘‹uJ¼ëe¥^ÙýäJWÖ¤ T}+n{’•²«d­h÷n7Iõ츀'‚A$Ò.#z‰JR7Ó|ñ,6ÚrW¥*pœ9hGFßœzØç.f]k‚Rüutþu/g\þUÍ4FÌ»v÷I&M•úAÉ’"…6z"ÄÖgç©™$ÉÞQÿ2VÅáÆŠŽâ=¾B2ê*tš½—L¤”o2z¤|ßí;Rwèð©k½”þc HMN™ †ó,‡^FJÚKlµƒ:IIúB/mk5éAªY¾R؆¹û°{xW•o,ÖáÕMí¹³®‹)¥Šø³kuz@MÊ=7G¯õÉê¶•.Ÿ–Ø{#%ÀתçÛŒ:-òó:9ˆšâÜÝ)p°{Š„º%Ç~¥)³ãV³=ÚâJ‘A÷Çg…““ÇÏ”õ»'u›R=ƒ–zX½ç°7Ù¶lO À%3YœŠƒèÒÌÏÕÔÜj.„Ø[à¡ >ô±/ R½OON•íx”ôjºÌéRPu^ó´%eöM»O°íƒNÅþ‰ Z6ßí®Š(óå†ýÖäq` „\ò¦¹&n µÒ½cžƒD xÓ¡¶-*gµ&hØ„`ýOÎLzÇ5¡¦íòi“7Éwµ|dpYlOKQ)ç-Hy¤’îZ¥’Ù7|%&[Í®&ËÆXº÷^—Ë¡keüpÉ•›PÏ ý5Õí‘bÙ,VR Í;zƨRÄÎ#›v“ÓñðTv¶ü±Y?èçÍo¨–°Õ'ˆ²ï«?¢Gd²#=_UÂ` ƒ„ÜÆMÑf±*ô«—7¥e¸–¯1Ä4=´èjøÝ6éIjúði*ó(W6%åùÖ™¯£¦¨ ³÷†L¢µ KB÷£ã”#²»;¸¯zë|Û ­6F§T[ó<·£@gê~êz ‡JÿsÅè½³Ëÿèê žRA7ÓúÖ.gÛ\D1ÓÖL;NÙ î ‘]ç]ìÓ¹*ÓÁÊÎK¨ å…—ÅIgRp³Ž¨Ö4 B°ŠçV¦Û.D5íËy³Öbó„ƒèN„×ÙgjAzÕe*Àú"IHY‰'«GŠ4­qxJO¢zØ”{¢r"­?öìTvT‡…¥ëzÙ€eÍ)žìåKVYóX¤Ê•›¯ÀaN·Ø™ºTÆÀôi¾…†¼“LN4$‡j6åônúpP°ðÆ\7ÿ¼_Á<'9¥õŒµØ‚à>Û >(\<¦4*/¯ðe;±Œ(æ:û>57¶ÿBµ¥ó›á®âœ¬Ž^tªÀ&@t%vö·l¿Þ´’”÷å&¾ô¬ÙÕê«Q#‰3ÏX–uM"ÑkjüÞ'é]¢´ZevºMë:UP¯j/êTÃÅ# º¸C‡d‰¥"L%þÉ@­nüW2Sˆö·š©S¥$åùŽ{QÔ½žj;% HWG_ßv…ÞÛaÕÿ8×̧Õ%ä¢Ð¡x Ä±C‘wijß5vjúq6÷Ú2¨Ü/Òií­5ØUödÎJù1xÀ*Ãöåsmo•8¢ 8A‚¬o8qžK‘]ü BZ†^!îº6ú^RæIcÊE£Bϳ¨AUÉ£>mÛŸÊSl”î CŠ\¢‘vËiÖý–\¨£p' ê“)&‡>½Ô?2Ëö¸»&–É­ î}XlCE90W¥žœ¥£,&OÊ)Ìgf5•UùP±H:—ÖsOóâÁðÀ°ªèÚ óÔM{©@Á§Ãò­"_cG†q§·:4Ÿ²Ûãĸw™Pð’Eu4À™>› ôؾò¶;A«è°q ìv«ñ&†òfÓQUç!ÚT|Äê5¬‰ˆêÄöØœ[Ge\ªî^^šÂí:V' ŸUú9¡Ûn I•ªÂ¾/¿l*Wâ»×ã$J0¨‹ZCf¼åÊ‘^ƒq6I‰½µ[ÛBÔî{;]Ë.?%ÕÙy ’N€Q«1J±1Äp¤MÑ¡9Ñ.8Ú,÷½— Àö°ŒûÁógûÉSÕÊnEU5ã𬽠`¾œÔz¡ðÈ]MŠhVEÏYÊ{y z‚Š€ò²ƒèúCD! ƒu™_¢G‘jù>:óªÖ™¤ÚÄÈ ‰¼Ãæ ;ɾ×$0’Tå ëMktµm¯¥y Ë9¹7ÛîöeîcÓ‘¼Þ¤\kÝÄz_þ!T”çT8M˜f㟠Ì3ãð¶ZU‡³Þ:†¨ˆï£éîԉøœŽ0E‰2»áê¾G²¸¶§ŽÈªvlÜ–%àè·ºòjºï‡Z‡s².&pÿdÿiÊB8 a”7:˵%‚”®ê,<Ò¡ì°õ’ÃhÀ±Åë’YMs€8k ¯6[q€•8êϢꈹéeVMÖhÐo@Ý{É›°X¥œw’öÚrt<ñ+ §¤Ÿ4éâΟwÝ<´í<ä,·°;òÅŽTu³®vá¦ðª…˜Z.«Àf5„2ɉ¢Üø Û¸È&¼õ˘ÑsÏñ¨äKœÃ~è¤áíËópe"ŸœV›¶Ø½0Í=-šgwmtÓß º7LìbÇ/GRWd,mJî(uRž¸’øKÆž4PçÆCU;>{k§çª:ƒ F•wz•È“4:=Î¥á:.ªl{æ1(oê…5VÕ¦’â>ÈÊRÖ!úÔÇ öeóØ"YņƒõuTI½“ÚäÊÜrÓG²…£ÐÉ#´P‡²öy¡ò©$ -‡zðfµP“æ%n—]Æ\V{”Í+VxôLI×ÄÒGýÐŽ'ëO”‡ÄÂî:Òo;µJlèwY*÷B—U6J9¯%YL€º›:Çêw7UæP‘ 69æJO€oât|[ãç[s‹ÁC Ô_\«ÆK§ oçâ€Ybˆ·ƒä«¾´þœN@';)N‡p’µîŸ` *ÆH°òhŠ<¸Ü–DÀ?éàNk¢­ÿP”ˆfI’4ó“ç)ä²ÐÑMåÆŸLUpc yáªêA%&¡)Xí˜AýëN¬/g´©‰§öϵé tlGrÙ¯rôÆ]×à}ê~‰*Ó1Ó)äÖØY'&­ 3›ÎP¹QQ: «x¼MU»ã”=!P0(˦(&.ƒÝ¢ý1¼œù¾ôIÔ¦¢Ú@É0YˆRaJF v&OÇŒµÃfC¨›ñ ÁÙ²j<›®ƒú_+Á{ª#¯1åCÌfÿe§ ¹N¾ã­¡7ËàTx h ^> i%¿ðå¨j¬¬Ѐ“š’®sÛLí≠];8võÖHaMü+´Åå€õ‘\©ËÝ9Ö`èHM‚mËóüœ×!É墰TƒšÞãrÇÒvZÓ Y ÖêÜlÐÚ¢ŠÔ†,âèY _“úò:“ wHd[;ÕÀtPïuØšÚ‡:RIežè¼µg3S6Šˆb–ÃÉâ#«ÕlV—¢uÈôæSdßï CObÉXãX—œ×:w¸\ãsð$”:Xû‚[.j,ÙúèYKµ\7ëIÿB’Ä¢üƒ”yð܇Óm?«vÂ7Žwx Ò…7¹‰ÆÄƒsùðp´ãš“4ê€ØmSfDÀ¢-b‡ä@Q0í0rPý,yÔ@é{éo›2.IfyÉžffO8¦SU<Û¡EÇ%î%ÑBj%…„ƒ-´ÒûŒÚ5ynµ7HÇRcœu‰Q°_=o6­OO8íýV›ÁÌ}ËÔqqµqõTâí“·ðTSͺ¹‰hÚî ™ãÕ*gߵᘒýe@ÈŪ&ÿG}òûæË$.Øq>…£IdIVqžmµà¿æY¤&ŽT,l«*O•çRÑ&¯,ú»9¦3¦ýÀsùBÞ,»)D‹V={WâîP J¢/˧Åô±I-ªÓ%Â_ÉQêúóe¨`D±#Öm©òë·Â’%Ú²Nž±T¬@˜dòß°çEI³ßݳ½Ÿnõ>ÂEE½oê‰ñMí~vå5 zxxì<77€²ñžI>°Wœ£R—-ß» ÛÒÅ´g?ÝÇÄt¶†ýc礶æ÷­«MȤοR»žWIPÔ„‹Í´†Ü+OŸ¥Ö-£òòxÚIªZéõƒZ}n *Ï{±ò‚vW,a ŽGN«è¢µ¦üå'e2¥¾TÙ{R©Ð—ã³$ ‡õ/¹GöÏ7'Kɡ佤%Ú“‹Ù4IÊñ˜äX]ä5´æA“m²}‘ÛOçµí…lÕÊè«íFºY`»¤…DàHuœÌ|Vkj)Çõãás™ç¶ï ^Ö§]É»]ZLX ¦¦OO$¾Ù odÎÌã?µ;÷Lnir;²Õ{IQhÏ2–.-Ó£ª`tÙKQ C¡ynš*OªÍ° N-³Õ¯˜÷¦¡âðQí:…ùrïÀºE(B±©÷Œ$ŸyÈô<=˜vÊÆoÚŸª–ÚÐ0n:Ó£f'É6þÕ‰ì“oTè|™¤†Õ?S¨hÄ<·5/â]³6³<Ê4 ê{8U »÷ÔØå|¤bý¡†½%1Ùã%o°¬mkñ˜[¯Ç+°UŒÒC”²L§¡Hï ûÑIP‘L¸««ÈTzÜÕ d¬È;.NÿãÑ©ŒÝ@- ²½®Z?©ï]¤÷]¢Æ}fô Š³n•Š¥ØALs™ßpÑCÏ7öèµv„Ù-,†Ç­íprЀ2†p8©àÚý©ëź™–…j8=bw4@rb e€•­w,›¥é–gõWÊr¥Vì³*¹´±Ê×Í^]޼Y¤¨#1 p›³ùÎ&õûì"¾ïõðµEeZá-J4ê£m$CÌÕ牖+Ô-3.¯[Çè¾£x½µL/2Um©]Ç{õ@ÜÞ9¤=Hgõ(qV¶O¡š{‘ÿÌ d¹­°ócí\”r³˜îž”<Ä{Öä-ä¥Êßí«+,ê²ç hÓåRM•âjS^¯{6d/‹‡t&nÚvyÒ´u„>K2dc¹[Okñ$ôJûF#âe9æSû4½¨N C׎Gëqãâ~ xÀ‘§Iì¼b+[ÕºTÆž$°BÒÖƒo£*‚Óö1QÌUVPjHñ²2*â°6UÏ鬩*p§îFôa)J ¶Ñ1—ÄTº®+‘°øœePll‚¥¡yŽr×Qz,Ë{û{uu„‹GerótÉ‹j# R\N3d¯+JØe?(°œÖ§å±ŽF±¬:ŠÄ“‚¨r<¢2@»²Ë¬¥P³]<½µ…N¶·æ_–N¬î—F€°7†ö— ¿ m7sÓß“·yF(zö”ÎæY>`£ñ(tW•x/Q.yZŒ8Yz®5-GÇv)"JX.µ%E»žò?U’ŸcBK‡Å®z[ôÃÛÉ`é‘{jûæ´Þüt@ \©&‰ûÅᾫú`*öÅ“.äÙsê¤NÖ)5Bv…Š^Àú{©îl§âaÝÑ*Ù-œ»s«üÎnÇgêô»iã·Œ¸¯¬(ŠÏ±LNá̦>ù`Ù±»húrxýò¾šy´9í?Ágb4°.àÊašåœT «Á4ù¶ÈÈ]–äw`ÍG5œ6ðš-LÚÔUZÙ y*,¦˜õ}²îqSX^ËîÜs_²àµY˜eçCv=Ø #ªœG)bjp@m úRC j§,Ò³‡…˜wpý±íÀ\ò'ådYýjÖ^^V‰­x lÝ&M„Õîð9ßÌc½"·ëIŠ›ª¥l9k—µâœhט—O|.…yô:“5+ÄQH;žž¿„[I—áKGÉnJ ðH!VX%ÉW )“wy$46ŽcvöÁs;.éþNmò]ƒ®WÏÒkõNÃJv2ÉËS…Áá·®‡²Î€ÖÛ­|×ÓejPåHóyF#-à‰e«î¢žðu±pH"¯tÕ¦6‡»yªÀì\š"Rû²¸v»Úµê"_xÄeJkÉF™Ü¦·[ËQÐVÑï̬ó³ìeŠ_¼üJ]‘ž…D&‹€hØ œ³kL;õ­¶q.•ÑñwîoÅ ©køƒ­cɱK3PV2ßkÌm+]˜Ç=,òD)‹¦Ë•ÃIJîïÇoÏØœÏáqtù‰ŽVÚòÒáYI² Ó¢ŠG]‹Ï[ uRÉÐ×Í/9¹ÛP¤~][›&—»îÃÁ“L6ü `M7k?é>HÈŒÂI7ÕPÁÚ*øwe`åîÏ2tY§NýwcWŽÆ®9…­®S•Úçˆê+œ† ÊãíQs›:SCͱ„c¨ßˆ‡zyã£@ ’@aڃ˄cSñâÓóùbº‘eGHEj¡iÍgèM)û¤Üúðªe–ÁL„Bµ¹¼³¸²‹³ü§ÅNU? ¯¢Zv™`´Š=Û§¤ê}^>¡9mz v è­iL-XëáŒvo´ß M‘ëÇ&©‹"HÊü¾IsTýÔÊZía™ù2w´³N¶*`ͽÜ»5¿Âî‡ê®D–<ÆF >ò¡&g©ºŒÓ±g­O‚i>/Iu2ƒ”SHÀCL•QÛÁ@ÝÄâI–þcjv™íÓ•æ”ýF©!]ý´‡S%[©æçi£‡ŽaÛ ©`²ƒçûP,K>8;nŸú6bIü»IÓ:“*NŠÄE¶Kï˜08Xgø·—:S^î×pó¢©ä ªj~K$Ї6ãNÈsÇ6–ç]¶ sò§ ?f‹í æOcÍik*XT‚(8dKp|À"y+èj ¶wr’Er\’˜F5B=ëýÒ6R=~Á$Vp°à ¨RÓ„§Ò¹è þó¡Å­”Ë}'ŽDÔ–rKÀ“¬­j4›½o”ìhÿ• TºõNjY[>M‹[ùvà•ËÌ™yý]â6h³ƒ¨ê!C84ÙˆÔ®LqåÒ[w˜qt®CõnÍœ×Ñ+±Ö’GóC‰>$ ­ÉŃpŠÓ5’¢³Ãbg×Î"=Ü•fãP·èù Qò8»ŽvÛßÊÃ$Ñ­–{°ý¾äò£º¡Ô«M-J ÓêʉњÁEƒLJ^êÃ|*Ó$‘Mj·“`DŽA–ºæ©ŽÉVmÝY#™NUƒ;u…®6±jK Bh‚*SŠh¨²˜ ªJ^%ªw*% Nì¹b@ѱN¹}¹ºYNS`É=Àôy<¶ZmŽ9 Â%=nêÝñ´cÛXq[^œ!k$ÚJ]uïG‹0»g¼•]äVcˆ†mHØ=:¼ïÔí­d][FÀÅi×kã÷/Õ×=®‡!@®îá¾ZqqúEJ‰ÐD¹y³µ¸dõ9ŽY¨E7XòäÞX>¦Æ»†uâóî´õ= T©$ößí(yµpÈ÷eKÔ †íÍj‘¯ˆç!Ü÷]Ö¼úcÝø¸Í¨W’v †®`Ü iÔxš‚¨N9³¦pILEkœsW†ßu…®lô"VVz„/iv.Å“%pM•«» hvAR ÝKSQ"vV‘|'k%$Lª jˆ«J–>‹¸ÕoT‰”Gñâ·Ÿ¸/¢›³”Sy>Í¿µ‹¯êt©°¹¥:Œ"†Ñ¡H»K'gX­ñak™Ä+‹a:g±M²‡p*xc·[Çžª Åùòw {= ¦È1³OÉÖçòàÙ ²ËYã[VtiÊV»àÔÉÎ`“œw.`íºáUyŸÙƒ–&>Rߦ¼®²a¶)¬’ìÌO§räÃÆBä ’WÓ[í4'+wçæP½÷$œ"Ä#ÒhÛ§Ij²4(Ï»WÄ“`3ÊKÓtè6d£¶›ª£«çLö(=ç]>xy|ŽÌ ÇÓéq*¨ßü¢Ã_DŠHØÛUÔM§´|H)«±—NWÚb·QÛ;kC†úo‰º>yPNÅví¤5qʤ{žÁ†5W²\US²î'`ÙïEV¿”%eo““Kžà87tþUbÆðÆ`VkœïŠ&«W‡%4Sr@T)Ïr.¿wùíIÜR x¶“Ú éolÏŠªÝˆAeß%€z®Æ¶'ìI>±÷^t]6GZ¶¬JCßíoº(—ÆPz™< Ð!~6‰Tüˆºë°tW‹¤Ú–(<…dJ{ç2â?ñyPŒ}AÙiµÇ“t45SÆ‚/dÑ“‘Ù5l¬´Óîv®#Y¶kWIØ›§Ì¥8æL•?«#˜GTÊ3r@‘¤Û»/j®]ñS× ¹“]õ¶›™/9I©¼1á&Íz|Gv–,ªíjG=ÙÈ’™È•(½ÿŒM§>ò0œòûäÛ:϶Kè™õIµ@ÞvKQ?7-ðô©ÊÒ+(ÒŽ­]<+›ÄœËÀZ–” XæÖê[Ÿ@–v#Äê»w){ÇãLŽÕkæh^t._©+5°öýÚ¯È]årUÜÉ)[•¦»·rŸäY@”jÉ@.¥• ö}R*(‡Ø"ê£>=´G^Ùä#;}tP %Ì/þwâÚ<$“WM<¿Ú ’àízðEY+íÖb,³}UŒnï)ñÁÅ·evj.6OO-õtYÊo½RJÕ6ƒâ;|CgYŽ%Á«REÑH~6j€Nõ#[ 9<@ ±U䑺Õx'nО.[ì€KÅÅï%ÍO­DâÜ5ÿí”+÷ém-ýXä`ž\•±£Ç!˜w:,Ì/ˆ%õ× Ã_Xƒ¨ÜpÓˆÄóXüok:Šìægetâ±uÍ´C‘faïSt=É Shg£ðP×’EÔØYãDí!“uJÙT Ÿ\i´Ñ@ PS™®¾fkÒ{íìVOòÔQª•èQ6ˆú 3‰ˆ©$ÇÙ(U7€º2õ6·‰€¤Ü¨SJŒŽí9NI8ú öM[JaeÃÿÍÿ÷ŸÞàÿoðõ·¯o>||ÿ«7þaûý‡×ï?¾ÿðúOo¾ýÙŸÍwß<ïß}|á?ûë/Þ¾óÅ_½ŒŸþìg1löŸýíßýåõÍû¿õÇþðO/,ÁŸ„ø³Ÿ½ýøíëç?ùo_?|ÿöý»¿úâ7Ƈ×7Üßo>ò‹?}ÿîå_ÿðíKÜ_bù«Xÿ*„VtûÃ/¾ÿðW/÷›_¿ýæå§?yù×ïß½~¿ýÙxÿÝï–!=Ÿó‡ÿ|ùó¯ÿÕ‹^D±þüåúÕ뇷_¿y÷òÓ7ùú+>ñë7ß¾üÝû¯ß¾~üÝŸ¼ÅŸÿç¿üøñ»¿úê«ßüæ7?yó«ïòþÃ/þ‹õ/¿yûñ—/ÿîõû׿~ýæeÝ–óæW¯?~µŸlöò³_¾ýþÓ?üÝûŸüÍ›¯/üàÛ·_¿¾ûž?ùáÝ7¯^øô—¿ûë¿yù·ß½¾ûôËóéþâåÇ›óÿøv?þµoôöÝúã7_ýþWß½y÷»·ï~ñ²,Ãÿíó7?ùøÛñòæÝ7þâ›o¿Ïß¿ùõ›·ß¾ù{~a]ú›—çúo^Þð ü~ßýáíw¿ÿÉ÷o¿õ;~åÛ|zæãý¯~õúîã÷›×w¿ýðú5÷ýw_ýøpÿáÝûß¼ûý^ýüí»o~î×øæ‡ï¾ú÷ïÞþã¯}ÿø;ühûü³_¼~|9‚sÂéåõ_^ûõ/¿ò~ö»ï^×?FÌwø§ß÷þ»—Ÿó5\†¯üŸí÷ß¿ùõëËÇ?¼þÓï¿ü‡?}µÅø²LÕÿÞź}~÷¸l××kžÿ‡·¿}ùË/¾ÿçÿõ?ÿ‰Kûúõõˆÿð]ÿøÓÞßÿöå÷™_þ2íû˱× ×úÓ?ÿÛ7oüø/þò¯ßýüýKût•ZÄÿx¥¿þñÑÿùûâ_½üé{ý›÷,Ø×—?ÿ¼¾ÿ' ª¯ù_ñ_¼Êןüï-nßåÿp}ÿó+z~øöÛõïþéþ7ÿþæWo¿ýÝ¿Á‚ýá#‹ÿ§ïÙïþù¯þw¯ŸvìO_¿yûïþù¿þõÇ7l‚ëÝ/¾ýã|ûýóö·¯ßüíÛ_ÿr-ŠO?þ÷n°oß¾{ýÛ÷ß¿5¤¼ü%PáŸý»êë l|ÏZ\ÿôʦùÓOœï¾~ÿ»+åå͇o~·–P:Ž—ßG¶á7¯¿]«÷嫟¼{ÿ‘?yáÛýÓËÏߨ|¤¬ˆ¯øçoßüÊŸúQ~ùêxÿñõ›¿ÿöó—¯Þýð«¿÷ÑÿâÝç×—¯¾{ýÀ¶ÿøùgçËWo~ÅO¿w‹ÿñ§íÇwý´"þðãx‚Ï»o_þÅOã?ýg¿œxçï}‹ïÿáóùß}ûÃ÷ŸÀõu~õæóO¸ø_þî»_¾~¾ð\Ö…¿}ÿù 3ßåûoß|ÿËÏ?á›ü‡×ï?ÿ€/AÿãkžÊWóùßYà_}üå‡×/~ƒKþùû>|þ—ûó·¿þâ7¸ÜïÙä|ÍÅ~ÿúë/®•ûÕëŸÜˆãô+~ûþ‹ßiþÕ¯ÞþéO ×÷­Ëç?à_ÿñ‡7Ÿláa²zý|e÷Y‘[ß~ù^\×õù×Ô?¿âÖϯ¸ºûó+®lþñU办ϯ¸œÿòó+.å¿úüŠ‹øëϯøôÿúó+>ýo>¿âÓúùŸþo>¿âÓÿí_|úß~~ŧÿ7Ÿ_ñéÿîó+>ýï>¿âýìó+®åß~ŵü·Ÿ_q-ÿÝçW\Ëÿù×ò?üñUãZþ?Ÿ_q-ÿáÍ×ÿðúñOvBÛÿøó?Ý ‹XIúû¯A@ŸÌç^øÏÿûϯøü¯ÿøÊhóÕ7_¼ti|ñÒ…ûÅK®ã_¼ä†üò‹—\ÌÛ/^rKþ—/^rMÿðÅK.êÛ/^rUŸƒO$s}õî‹—\Õû/^rUß}ñÒ…úÅK®êÃ/ÝI_¼äª>~ñ’«úá‹—\Õ¯¿xÉUýæóËÄUýö‹—\Õï¾xÉUý‡/^þøÌ^ÿäIRüòã7_\_:~ü½?}²1ÃÜ×oI ß~óé‘üIÌÿú‡„Æ+-“þðzÁ«××ß¾~½ÝÊi=Kï.+{®3ÞrŒZKËTœ§cjŒ~&å8»-ç.êÚ µ©]KeAI—§dLž2£~Â&h&[Îy\ÚÈêÌ´ë5]@*·ÎSFgáôtYuA‚% Ì:Ãî<ÿ”œh«çõ¨sx =I”üOȚIJôåðK–qRúO;n|ŽÝ箋GK Ny§BOÒ«keì­n»ÇÛC [óf%ÄóÞ–Z© ~m£ì!?ÇÁB—{ìÝÉsÏŽñäÕ„§jã§šJá܎γ3‚Ê ²—|ž™ßäAœwÍ—þêüöv+Úbƒ´«dKﺱÕèëbÕ*|§ÕtÔâ9wù·ÉÃЦ•´Ê¶Ï¸5;嵇]áŠ8ïªô”âÝÑÑ8äQKE<åÌÚØÇ»é³|÷í!U ¬Ý£-UW!w›/-ÉÖŸQFörÆpªgM<åŸç³¹,&ñæðÔâ2Möñ$LbÔUeuÔÃuª-S]ICßÜs?%%oÏœ¾¸=ÄLKÁuVôÇ)Ÿ§Â Se&ÊÚ¯#õÉÓõ0ŒßPé:z ê¹¾FëA«>QÖ¥ÍMl®RÓï‡?á³J›ö‚㪱ä¾E‡ô¥J)º±îJéì×<¶ï:YòÖćµí³{Хʔʞ»2A¬h5AºllÚ?ë”)²ÉS=ÕC <|i›ö³u« H\šJ–ü¹äeÿU²é6³aAKbeY­íÎM‘ÆiÇy/\¤ÒÌ©^<‘\¹©ì³hn¿E@û݉ ,‡›éïioJ+* p,I¿)O.Ûo·uí“n),3ôû:où#S©¡>››ÅR¢«’-‘Œñè` Qi$H(L=<ÀWÅ'rΨKáq~&°‘ô¡<ÖœùÑì$+&ѧN­l©~öÃ!+CÚÉšUª©h|iK”GXR‘ F¸ôQåaòôøÇÚê1¤\ʾ9 Km Ùƒ ¾®­ü:×4ÅCd,„ìÀõJïZN5¥ìÖóp]q[“'.ç6jyÔolܵår¹ þ¨nz8µ«ì~[xò¢²Ãý]×Y)Ìæ ’F¹Í¤àÿé8é±M™”np›êÑ=Õ{Ââ{‘ùÙÅJT®Ÿµc¯˜»§oŠîð‰í¨Äw#D=ª4î*öc—ï¢}ÌåŒðv¾¹>0§ ZÅѵ¶+Ua¿é¥¼&+ˆ_üê¸<´Ó—®xDÅn, ]i9 ÚQXGd£ÞÒ¡ ûî+>>g-Ø!¤ÑZ=@ÑX9Õœ%ÕÑO5B/íI‹^*òîÙš ¸µ Z!uE©³ÄD¾Ûqék+ø~ÔQkJ'ê?Ï7PĆШyÝ¥ÐòÒ?×Xe†K]§kýf;?³+MXõty XÖ -8$Ø1®ªÓÏÔ|b …ï—S·Ü¾GûAâ8ˆË©žåݦºkãÐÂk¯Z¸{س&H ‘¾µTh% •e#ËÔS‘ø xý)§„¥°•†®®ÏAhP»é&ÇT9 `Œ7”˸hê½qO’Y¨h}£NiH€èªßšÊÛ}´¿‡eŒ Ââ¹í2Nâ2¨Njzî HÉ2tS”½ôÖÓ"ü ú™>SKD¼dÝ)¯£íîp¿R‰¨×ðð4 eà"…À|‹uÞ:à8nå jûç‡H—âTN›Ú½ÜÎgpÇ;\†5Ë…ìÃw½©E cÓé&_D–<¸!-Ðu\ûÍWÖÕywIsš†qÆ Öêršp,°©:ÉÊpî‚tª„ ‘¸pèûXA¡EÁýâ —`ÔÂÒ!8\í¨ê ËíÙ™×Æ¯Q}‰­k‹Ë£æÚ—<ìy¨yÀâäy-§¾â6Óo:³³,g·¬ÂÇ Þs9לµQ$Ǫ®R)3ü.…L|öÝþ\Γ4ÕTýhk –µGýH袦Ú_îIog‰Èðʃ}7&E Ü.ë+“a:ûòv¾ù¢."Èä^fË2©ùŒÑshš˜•í“E}¾×X¹Øˆ+ÃÊ#pG8öÃY%i“ö¿Ôñ,Äzî1ÓÁ¿[RV,;w$h7T2Æ޹¥U‘¤’.&ÅjRz4ÀÜe»ñ†’57Pö \tuÍôñ&9eùÏÐb¶Ç¤[6‹·r6õ&5—%I^¡,!1±¡.RƒÔ~õ×úòEì$vö©µt0'ްqïCzŽß„¾$RßQRøœË~¡‰i¦¶­iz›•Ù‘EiµñÄ4]ìÀ|•nÑÁÂMªœ8UãèÆÆÑP’í¨åKÓÄÓ.Ìpa-M6ynàÛãæ©* qF5$ï5_´‘>ÑÑšq—@ ÈêÖÖ:Í­©Ž¬ÎÏ©1¬Ô'`ý©³·.m\Ê#GQý@ÉsJ‹R7›•ÃeÅ©¤‰àúTAï–µ¯B? 08BÇÿª×¦L£8æ®ËÎ Ä^*ú·ŽSKaOLþÕYåsq·Ã5€‡~o3•& ]'Åç  nÆ!32¢aÈȌػÔ’¼$Ù°}Q"¿nÖYE«Onè¿ûy¢ØdµlÀ|g¸×Éïô¾ùfFÌ9FÌ9ÇäO5 ÄvA«q_9á§ðO7Û°¥o"ŸÆ‰‘„²ÝÚ¸qOa`šsmSìÉãÖªagõtæMmðI¼ˆúIÂPåpyÕí`ïöJŒŽ6í¸'ÿcŸÚìFË1$"ç"#‘Ÿ'<šs8Ý×úæÞã5wƒ&?Šë $¶&JŸ‚xO¥ž®·@ÐH $}ŠóÝÛ­(WΨ¾‰xd$?Þ9ò7*i;5¸;WT¬½Š9«‹ä·¥DîîvLŒËíŽ% -ü\ÿ´‡{.Å3gaXŠ@Šmúäxp¢î„sB$ì˜"°58| Ïr¤U •‡éA¦'Q )0èˆÁœš¢îÚÊd~Q¦ äŽçgh^ܪü¦4Ka¥G¡ëy¨DLpÄÔÃd% ÌD½Žs)>2m#Õ6ñ^æ*å8ø×—¬ƒ},<°Áé¡/)ι®JŽ&}.Ï@dÐÞûtNnœˆwNsÞža 4ùÍU¯-ÀÁŠãDîèlòs­ÊF@ukF»ÑÊ~«zq•Ž7è]kèQ¤m[¾!ž0t•Àm4T„BA ìí·£ê’äß»˜b!™/Ëþƒ€Ö/[û•Adepe)­ ¯éÓ¤ wêUP<íb·!<@àŠZ²ùµ›§*¶Eñ¾}){éšv¨M%!ÙbͯUÉÓfz€;.÷ƒ¿«x—}‡ÂÅbq%ZHhÔô Äèü¸r¹ga7jÖâ,lÞÃRO?\„¬eJL®^(ûYt¶Ùoç]«—t_Ì|±ìW ¿Ø¹ïÜÜ UKâ§ ÚTVm ˜öSY4ß»*p((Eø'ù+§½¹T£'U¹,UíJhØ?œSUÎÝ‘Õú¾Y‡SaÝ!á+éÈSt4íq^㡯Ãnm½hŽ–#ß$]’!XÙ³Lé6ÄMªÕ÷Ñ  œbS‚ôt(–k%ò<–s Á‡7Ø =/µ,"ÄmÝØSެÖæIK·,ìp=ˆÒûhêI•—¡êùÜë\Ùsö±0dåôVfEý€`>‚‰+ɘʩ—µÞnÄPÒœÅá}[ÆYWÓe½Ö%ð«'qàXil,`§JOð‚ú Æï:æžÖËŽ9¶v*£SÕ[Ó8>îÜ}rÞh©fººõÁRÃQÍ.(•”Û¦@Ä7>\>º”ÍbÜ1Mõº³©ß¯'»,{¦÷i¼‹„¼ír r_ŠÜ"~SBë "èƒÇGWe•H}ÐÝWó~=AÓ?wêº:,LjÒõµ8»ô‹xdÄ¥!ØQ,©,Òc³n,uëVº‘HåV€,A[€@âà‘þSŽõrà-ÖuDÅ™Öük¸Š‚v`寉9¨˜¡6·7SmøÝú*·‘ûª«ú]ãÐ׿ŽÓ©…ûʱ=¦8WEG Ð}yæf‡ÀI¯S‡ã¹ û¬È$tKÕgÙÅØXÂAïºÚ+s¬z>¯:9li}w%·gwùkIJ$Ùê~48»Ö©žº¯@Æêy†œÛÑ4X5ø½8Yè·ˆŸÜª ÊË-pl«†í°Z?tF ?•0À–‘£ôÆ¥´¬º¢ÍÙ~£gT‹ì´Òö¨"~°/‡âŽÎ¯±`IaYQlR;ýœYOÅ’N“Ð(%\ ÷èJaêJ{[…®aï5mvÍG,jœ=-02BÏnéɧ´ïζeáTÞtV%k¾â8TV˜ón6GÑE·úîèàC~HÊÕkéHz@ì¡~UÎÜ¡¼§ ªÐUIœTшÒÁa¤-ð½öMë'·ÛIfMØÁù»'ÕGª°¥4öåª ÔS K±L­UômŸeœ¦-.ë:çšÕî䧪=Ø÷¾,Þ°èÉÐM³åš »Èb³äª×}'òEØÍC¥0Çø´:Kz@ÓÈNMáXâÞuÏ`âSÓ–ôõI*xñhFÝ=í´òϲÉõ>Õ»´¹äôtN­gµÓöO„Å¶Ä ËÆ^)Am)ºbtI·áè`½>™pS%EÐë*ÞMGAmåÞº‘~·‚ ©&[‡F<þK öwÑÖI²® ƒ²çƒGy]*êi]8·¬®Èª¯¾ù,- mÊ`1*ŽUœ7Õ•3š€­zB¢u?Ðèh»Ǽ4ž|®, ’­\+[ ½Éo%õt‰‚ÍÞ|Ìó–F)Ú®Ú88êªV¯„ÜÃýuƒm‡J¡Q]‹ ä}Äyx|¢C1x;ujNK‰ TbôûfmX¿‹”u·–ž'( äÕ¦Ÿj.Ñþ<¦™4oH¦!U‡0“Ò\z,)Ó{ypp•]‡¤Èg9µöª1`“j sgÏ챬¢óíèó£ÂÁ5œcõ¨3z¶D¤ éG=¹Þo‡gú]À•—ïRtÀTµÜ(X>8ê .ð€hv¥]«þ>ÙA«\=ß»Æ1…»9gòí4ÜÚ+оK_²ïèQEÌv‹°Z¡DãØ7;Ù"W}‚žúˆÅñ3xbÑš—"ÖöTˆ $ˆÌµÄ °°S‚<V€nJKŸ‘G\)À\=ýTîÌ3§¢B¥¡p˜§Ä š\¬7=*ƒÞ9‘ì5?_Ǹâ”eaX«%A–ìËFùX’d–çÎ)Fƒ½sÃz…-—i.\׸PÃòf½L‚¦5(£Í€|ðà¾ÌWÄìð]襹¤g׊»M˜«'@ ¸¢‘ÀŠB¥°â®È'ôC¾÷t¶«ê'žÄpÙ€‘î®ú'P‹™ ØPÚJæä쯗ø,à@Ê‹J^°žÓÅž,*žk#œC&­5;ÁênýB7ò ¦ß?ì>"s؃’ðî¡\\•Kfûá€΋’+;TFbîÞkÉ…i'ù #®nŠ™ºY.uI'Äq¸W5r• ‘ÄöÀݶIƒp¦Z‰Ÿ±´Œ:½÷ì=ÝE\îQé.Vó3s_úgvàÀçÃb |uŸå¬ÏÅ%­°]j>ªöŒ k&>iuÆÔSAÕ¨"%Ž‡ÆØEe©\63 Y¢Qž»ù¾R¤ ^Û‰<5«·Ò¡V»s5ãž:Ço×¾k¯JTaÛ â`£óyþÜUø= v{IŽEB²‰Åâ $]V}œ1Ïzx)”öœÄ'0,1šrè¼ 5R;)Uló üè›2°äU(BÐvžç,ýT/b‚›½nÞ}—ÖmàmD/Ê_»Â&}iœ\VvÚCVª‹'Djxx¹´º›–´ºþ¶U9ãÄz|@Ü#n»Yƪ°Å ¶eô|ç4^š¨ëÁ>Kêª"’Jof`µ“§ bv³: •›Êau-.¬ÎòÕ…¡‚ÛŠ{7ƒZb *îÐOèõŒG¶÷°8`¾¾êá¬êæ> Áwo×£¢ÕõâYBæ {×NdWcÅ&5µZí¾ª¤Ny]r]È^T,™ÏÇ* ÍÆÕ{…Z®`œ<‚SC §¶;Aбk§\KÂ},µ´úØ\R]ÉCg¢Ã}-y¦U²:h>@À‚è7X ãix™‚F.9ð Tr”ÞØÎûzæ_­*žÜ –•&À‡®û®¨®‚–Uõn.â:[ÏAh¥mìÎQVW~š´Ñ# ÙOU_4èŸCXþ†eg-ýpö´>¹µä_>¬¾ò:ØÔe+L]Š®»¶÷Pgÿ=•ºu„.{KÆóÔM%c=1 Qyh ÝÚe¢&’îȱj»ˆŽÃC˜BÄf‰O^݉+ØŸ[½S20Ñ;W‘ݶ=RÙ6) b#òž:‹ïK°õT½‚•OôþqûÃm1üÍ~(¶Ò„±MÀŠ5²Yç‡eÅÇÖHÇbØ R“?iìºÃzp>fµ„DPÊÞoe# jê{×ã}Mž²m ÐÉel{ÁOce{Rà¬,£=œ!©)jΫ5Å#à*amõÐYr„Ðg°V>m”N‡^Øœ8ÀG‰= Pf¥ƒq¹;yÙjØHlýNpÚí+hi à^ûAÍä¯ý²‰MÙ£d°)OÕ§fsâ)˜‚¦++e Îæ·Nš¼µ|0O4'”Úu¢\g[îB(…dÙç²Ô©¶ Ý´ªšóµÄ´Zý@ªé\nÊ]Ð ¦ÊNÇÙÚµsŸÁέëÛ¦n,Ïèj}xاw(e¦{º£.dHùçU!mÚºj¹}©s¶ƒP·Éî&ñtgi»ééŽ(<Ä ˆ£“,wm™×º/(qçY™t®˜-•ßÌ3Eö8@PƒïÍS:”FK·R!£*4|j¶.—ŽÊœ¥§‡U׿Nˆ–g žd94TdaM½œ2ýRè´«é­¢¥ ”ßÕÍš'ÇMŒ“e ƵÏþ’'³`IèlÞ6ÕùR°L ( èܲ3WæÁVbí‘w·Øu\†Y­sF‹Ùô)¿û'‘×ÓS(†íd“ñ¹ŒTˆÛ–*nænØ ^øº„°œÕJ÷8ç$@H5ñް¢Ìݵ•²æí!ÀwŒl‚†œZ´‘‰À­<ƒ3)yÎCÁÒK‹Í.9öÕ:K;«íq œÉ¿ÕÐIÄXÐY²–§*ê²»B l ]÷kÆð‰›lK’­ÈÓ’ êv Y5†ç×S´’oKÑÙöq‚³¡†mxÛ\<µuº/ke¿~´Ä§GžŽÝÞ’G‡*l'±xi|pOëxA*‹Ae`ׇ"ÄUî 2z'869š÷½‘Q¬0˜’‹0E!ïËÞjÀfÞôP ©E½\A–•wb÷ܤú)‹_F÷€'-°a jj^Î3í¼Ø9—Q)\rfù¯#ü”¸è˜ªc€ïZ‰ë Á; sPßæ´kßY`Ýî°ÁtRx‡ÉPö!ù4ÍÒ—ôžKN7ÚHôžf¢s‡gËUUâqÚèk-Á£Q‡i‰±¾i$Žê E£líÎÔsxF)EÒjÖÑÅ|ëaß*C,öþ±‚Íò&Q*ôºš9˜°Û*pƒ°¨Ô Oã «’•ikééNîzÖÚ>Ûµs*6±&Qnž¯!ØZlt~†¦´©5õí°°ç66[šXY{–|rÈÅÞŒ%\ì±õ8ˆ»\¼Å”Jö° â¹kÈ«3/ÚQêœCoê²ÎI?U™©(8Þƒ_¾´›¾û¡9pæêÇ%´w^ÙÁÈǭРÊ,}ðÿ´«‡%Jž`ƒEj·¼>íkº±‘\‡Ü³ÍuáLÑCèZÛÎìŸDˆ²Su*F¨z^Ù” ,Šû¶YÅžlîêÛzóv'HÊ¡®ŸtY1éÉÎJ<4;h$ï<ë:sÕ’¨TÈ¿ÊÑ ¦ŸàKvIœ>DÀ‘`TšžC²±æÚ²¡&ÅÈJyjÑ'¾ìeRB“l¨º¯¦ó¨½³ÙÑñ¦º…)ò":WVÒ¹N\]'Z0èyà:‘XØ>Wò*Ü^G È·^söx÷t mˆù êµ'm/òªùîÚ#V;¯n)í~$Ï<í˜ö|b×L{zÖ¦&+Ä—çjŸªŒ[Ôà¾ä€“grˆºÒì‡4çͱ´ê䤶íòàåm ñ‡Ç^Á¾g¼#ïOz½ØÏ\nSÒFư[ÙQ»z)¯jÇÒe³³âÏ6߀âäW šœw§3NÀ±eÅòïÓmjø¯3zú+W™„UÇŠOZGJx×XfUË¿èHܯۣ!ñK<µÆÊÝŠiñÌF¬ú]pP¶³6ÂÓzä„Ëä "lóÑ3õZ>'ËËWC߉§.Ý`{ÒÈ ‡õµS×UgçùlçXs±×›gçÞš'ÅCøÃÊߪê8vkì·§l‘D™ÔÔO èÈmßÌ&'Fש6ig¨Nªá4Ä?©¤ÀRîO{H &…pÌKi]Ù]V ‰‡¨ž.pù¶º¹l…vT—œ|9ÄIfŸz&T°9p3è6lÞ°ëM‡dhzÆÎ#Nµ/[p5Enîé­º§‡+Uwá+ú0%Ùm©yôä)òô`™å1u ë€uªl ãRÏY‡´¬ÇsPöÞ!ùó²‰_wÖqÚ®ä…g*æÛŸÔÔuù„Ðk˜glCg#€iV):Ë;w;LŸÕ ¢¦ØÂ¹øT5$µç„µÊþSª1?¬UhÔîaô3­'Z­Òê÷bϲ:ÏêÌÞè—‚¨VM›Y.OÝ,‹EÖ|=µïúD*bAœ½é¤`3¹]BCÒ=5Èá)Úí¶c €òÿX`,¹œjzþh…t†qx±ö ô{abÏãHᦵu>Qotñar"¿é˜5¹9™S³>=~ŠÿÌ\ýË⽉‹àüÉ(^'yž M»±aw«-¶xpÚ¹S>Æ‹–[-ÂÉ•ˆ¡K}(©Â-W³ h§i—ßæÞ„;/>ûqÝæÅ y €>–@Y‰ô€êZ7ÌÜ\ûà=ʰJª8 mŽD*¡ÄE ÷êëÈèƒ0ÏN*E%lÁöR6yŽÖfz :lŽñý‘‘ȶûqÞÎ…c}^¯ !É8:SçYóFw²58€S7hWÓåòïÙÛ“7,έII·bÝI~žh$w–"0 Œî.†ƒËu?7+”bƒ~Y¥Q!A=û¢?‹í„›¦ÿG´†  ôdáZº@™AœÝ <Ïé·Ê£^³_º˜ºy@ Ú¸Ãn?ÂéÈñvçu;ˆ@ØÚ&M×g†{§M#¸” Óƒœ¦zWmþ唕•y󾯩‹¨aPÙ¬~,; kª-l‡f*Iéè];FBæU—twÕì)‚Yˆsiïgj,uåŽ,C9öÀ …ò‚ÚsæàÁÉ–¢¢Aå&Ö”WƒÑ²Û¡¨ö5U›a2ãuèZZW³ “½@’©sÞº…ôݦJM‰7Ò¤³÷Ž}û=+¹»XiùŠìRî;“OA|“û,SH‡j[íÉbîX·ì%ÀäbêkUÌ]W‡õn¡x:šIðlçÛÚªD@<ÁÍD#µÈhRœLp€CŠ1Uaßð˜ÄS&¢UÛyñºž¶L› `8„p=¯VSÕÜ[\*SW!çŽt»ñàT¡å÷q¤­Lµá9#¡~ççÝæÞ¬Ü»…Òz-´ëHQµn~¾®8·C-&Ý΋3Q– n‡èÙ! ';“­?Iu¬ÛMé È¥{kž…”yö·©ÿr¨/i¡¸¬ÒurÑ©†8”;÷ “D«·f…VŸöZ8ãæ0zQ/Æ7Ö *ªc<ÞÎ0 !@¬'^v¨à™fæ©êÅmß<§ÐÿFG²Çþ]Xípÿ^:^vi-hÞÁ³H÷4k±'ô‘€‰¨åqÞR=#Ér•ÊŽ8¥ÖÍ\^+#9È£<×ÌÃVQÃ![àÉRVµ  e¶¬©¨]²ÑF~”YÝò!m]ˆ×½„ÌͳÀl^áu‰;Ý6 ‚QYe°tè~ǧs’¬Õ ’çS­°g#nHæ“ìã#±"œKš#Áòê=1.“—„Þ5…^ìÇëŽU rÔÐF×G­¿óaÉ8¼Šl<Œ.ò«Ù€±Cƒa»Ž3¯r4‡?¸7;3Ub‹YjsÄÌ"Y?Îk/¢[‚,rÙd{JÈʃÏ|WG\·a«×ÜT•ÍÜ2µM"îcÞÙµÝÈÖ´e±™™œ0r£tšu±;XkøVŸB·,ÏFƒ‡yÅù$Õ›f /âÀÂËd ¸E.Mí¤uj!¼¼5ós«'aŽ\®Dy:I”¥ÌÂ*pp‡Æ¡žiõ'éÃbòˆ­k¤ [ø õ[84*R‘vÚ-™ êÜ+°A—nèäÙ‚“â0 EÇUQË"Ëc!3xÌÐ{'õµb+® Ò61iBÀeXÉˉ¦¬ÖɈ¶uèYàÔwµCl³iιæw¢¦©+©É;;°«á²½•{åüÞЭ"YïŽhº‘Ø5§CÜ ‹Öì€hƒ*I¡«ÎÃm°…K7PÕÙ~Çò|#KÚØÆÚ"g¨ ÃϦ¾U›«FÇ`EŽœÔæ;í0ý$…gQúR…ÐzãòjÕQï©d!RºæÀðªëû䨾ªêÑ]ºx›É:«N”³>fÊ{XcUuFEà¾êT¦mèh÷8Ë6ð™•8´F+{ÿnÓ%—ÔZ‚ã¹·;Éè!L>vV‰¬©èh_ö£dÏ´òºÃ‘°]açÛÏò ³xËU v kƒõÒl({ôB±ijAÉ=Â; Øýœ[×)„´Vמb‰¶hÆ<5Vs¬É=²<½âÑô˜©ÀUnÔd³‚Ö›†X…¢_ÜèX ³+ßJ‹(n7Ú=» n,Ì ß·Ê?fÉÔÖ«g ý\ÂAúNŒ¸/©@[Õ¸ˆ¨ÅÎy9p”õÏtøŠTaØ5­oÃFi­j´Å”q^’ƒèzá>Ï䡈C‚z[“§’(å¸íyOº%T“‰l^û¡<™UˈH ¼«Êæì‰†ÊS|,ˆN÷,îÂû™:·¢˜¦ÉDÖHŒv ö¤ÁøI@^uGÕÓ@X¥¥zÚ«} $Ô_Ì[ى–bÜ€„×Caû8uåUÇæðÄè´FÎÓèÔî>Ûé=c¶[Ø–Eß×~8Ûqöl‹xÒÍB/p'Tb-6žGË­Q9(MY“›çøYÉN;ÍìS£°e'·ïÒŸŒõâüüéä4-Xq8e ìûll!9ð•×öœê"º÷xŠ„Dج5ìÀN°h0¾#FÖuNKþ„4-¤ÂÈËyšxM²¶äÅ’Ò9ˉsk°¼Æe7 7p©ºK„£Üw4¨‚…—o÷-zÙ*T8œàQ0¤‹À¦¤ =ØjQ|Ê<=–(DãUF +K¹+9/ž`³üD^f…ƒÐpòŒKjjúy¥ny”ÍC;ÌS¡ûÿY}€w«úò¡©ç @Ô:‚ÆïŠŽ¥_éz ´Â®.ïíA‘‚¨·N“UföšÏ²\Ö`U†Jgï y£•ôPãò ƒM˜ze½-áCyN¹¿` °‹šÞ­<°™­îDr@`¶új•÷æAD¢œ[lí´ÌbBòV¥1{)É6·Rg¬]˜v;@Õ/^èŽLîØlGiJ€Ä“§wvs•i×òóhP/Ò²Ÿ8“2ö òŠÀzÌκìj€>ììeÕ’IySÅ…øåËŒ åwÚÓ:˜V¤$J-ÖØ×þì@jÝõÕ$-â-Gv&u•xUŠH×ón±eCOK¯G :!€Ü£®áv¼ì#{4yÆÜ+UsYlÝýVýœÓÛU qI¨9o¾Ëc—¸µDõa÷-bìž$°Æj'8ª¨#`ð‰å¸«+3j,GôõàÿÖŸÖ^]€uÍ¢¢l´Ï‘Ý»¼tï%h²4¦søD"öõéAÎTå.±À)[[rJ± • ïöug®ð•ºò^ÚžÒ:Ï¡|òáÁÐÖıÅÎn×NMêU:8YÛ@4vo–â‚r–ŠC+ý{†Ó’æ ê[áížáQ­vË.áUSÓQ>š|/¸Á@B½å»ØÐ鄸UGRCŽÏÖÝéTÀ§=Q‹äåH%Y­|è÷¡˜Š‚?Û!‡RØ{éùÌ×ByTB>’Òݬt8kP<ܲB,œKÃéÊÓÍt=<^e²¹ã£ó Cq â%lÍnN@o§Kr/©á™ñÑÌØiP!ðkž£ÉÃŒZcèÁè3iýÈ]°ºÁ3µ/MûÁ0m”Niig¶n'Òr³1pyëàÖ,Ôq3 µóvtÓ‘5 ¤k Ž—bÛžJØÕ2L%?•Ûæãlô½3t„¿K¶ÞËΕÿU0šN-ãÀp(0í¡¬TŠõw=J.Ût·ë!7¡ƒ"|´Ú|脎2iß»µ×eÛæ°~v–©9í¦²á©AZVL‘›-5\o¯Ÿ b¥ãš_ÊêHÓÁ½{Àoä4êµjGx±ßyJ¾E Ó‡³¼M¸Ë{Aa0™]=-Wç~9&¤ý¨¦ŠIzD¤PâÓ¢£ûÅfµséÜv^ ,0Ñðè!ïQ Ò}¸TXá¾î¡9H 8poZ ¯jé `o¤„ºŠ¦Y²ŒþœIuŽ‘èÓøT+«•_8öÍ5¡øà*OR ø?+òc$ÑA8¶{¤’ÊÀ~ÓÇùs ïéd9ŸL9-Ý´ª€­b¶M•« Ö´ÑÞ*¿,íMÏ]÷n³¯†÷ŒµÆs%…¨íj~rÎÎFµ;ÕÓ³Bþ ae{\òOesTg©«:œ^®®ªšó·lçøì–S'ÏëF0Wa˜Ç;›1ÚÓ2O¼¬ímêŠÎ¶·MP@ä)­ä Á ¬Ò èã^G Šƒ ÕSùÑ2ƒz(¿ø8ÞÀrDàq†˜MÔS¬ÃøDÁ¤zòH8…º™ìKÎsµŸ&uçË›k:Ù`©"‰Æ‰ð4wÎÿØ‚fSã#ÜV*6^S•É?+gŽÓ‚b³áËf;½w®¬ÔÓÖan gy:Z¤±°RT“Õ;Òr/ëud+s¼¢y±92ë¨Û\s(*c ©,¨Ú·K€ªy©­« « ‚È|¡XoÁN…|Û}Ôm¼©|`ÈÊc¾nW!xêÖ‚¤ hѿΡÉÊyw°é½ñáìZAžÖ‚ ŠeÕÞF› Ï#9$›PUoÙP¨/­¤I P»ºU`oßµé¾Ë²>LŠ: ³Ðבœ¼#Ì(ûÎú¸t»Þ”Õ £ó„ˆG;9bäã$BV)¥;éݼ¼¡`qËz‰r7a(ª.£aÎså m+Ojɪ:(½¶Öœ¯Ü„’²ú~ÃîÞ¡ÇñfƒÛÒ"(àEaîf0ÓÁSzž9‹Íê~ÎýVÄfVÕÕBžæâY§pš ’8êò÷d€ˆy5ÉΦ›µø\‡NäÜç`²Pµ ¹¯™r=L÷O™ƒTÕáòØ8O3•Ôß&úwg;V{”Ga]ŸÍÁŽQÏàòäÜyqR@ÝÂ#€Ôvþ£+äUÕÔ`#÷H.)[º”V%œ÷’|Û×8è”Ùñ‚ß&‹±t¼­/ä’í]壖 ›PB×1ÙŽà'ƒÕ9³4-|€á’~«‘U—>ÀTò†4>Iyg }•'ˆ§Ñ^ DÓ3‚[‰ßYE›³Ã<¿u%vþnÙÂ9º¡§grœ¼*t½vts“Ÿ¹¨'ÒÜE»‰ø@,Q¢Ù°+,Y1ÄÜÒ( ¢3Á 7;æ«æ†G,+;ºB_|¨ß¶êd†bi6šûlÛƒNØïw–Õök»Ùø+ýJ»=.cÒ ¤Ùðܹö=X.2["(°Sph竰Εïl¿]AˆG7Ö“-ÿ¸”=ÂêùŠVà çÜ’½I7ã®w)ÑëpÀÝO§2=·ƒÛ/Ô-ÙO\”¹m­k~NM“/€8I6ÉÒe·Ã6r‹ÌÔt9Dµ ©‡+%p"”™›Cúe½ྵñGùÖ˦ |v @ÂÚ`ÉA)®îTƒ¢ëñ`©^ö»…±q;›œÉN0dË(É®#ûàl „´]í—…*"›+øt÷l“á•hì±³˜æV`¢î·AZ_”4,n9`ôi>=YÝÉêçf£­ZR—ÓŽFÊŸ¸ƒ?ÂP³m9­ŸÃ¹Y’Bô€Yiá™Y[µw¦:úLT†‡­-Wsàc¨õØ=Ú<ªWîü© öŠÒÖ`x0\[ÉL5QNG¢*Ñ„a~Aãæ%ñÎ#húïeygÕ YÕE¢róÆG’jȇ\Qˆ½?Gæ)Z »cÑz7ÍêùÃÃÏ÷´KåŒéÄi?—ý¬iµ>ñ€3ž‡zìà–§ç!'‡¼ší ©‘{x–¦¥öI²X´»'WêÇy¨\䉻{AØØ1pɪ<ïÉš¼Äòö°±Ä´rôòø†±ëQ¯Ö3 ”½kãâw6èiyÔD|¥l°2±JP®²çæ?q8@uØÔå§Åêh=ƒYn_ÅXR™ˆH>a*TSp:»»3æj;‚pu‹ú‚J>®íUð„Ê¡YÄlj]Jw¨O:œ”Ùy%xªdåVËC7ýrOíñ„»Á¢žë›Ó'«SxrAv£$§„¬­¨& ~¬JpÃ4Ön¶x0,!uíçTÑû’ªoFi pªÀ¯ƒÛc½œôPÿ‘®2KI±´ëôнzxMRÙôc(u»vÍæ³ª"i:1…¦O*„Gâ}åˆb)Å­ÄÆå(²Ã“~ç#ÙCß ýP)Z !€ع”C‰+«±ç¦‚¤ææK£ÐYàœµS54Ë2„V;F·5!;†~ÏPü¸Þ±6góÏAØ&l4U"C­ÚÍ;šp!Å;8`d[ rXþÙ¢ò$^ëÜv>¥øy^#~©)— ã»«9ë {„i³ÍvXBR:ú¨4²(IêÞyÂýRÅ2[®äßA_ŒËæé¤ÇsÚ‚SÝTÖ‹ín_ßã<º­©¤,+~,ÕߟdsÏémGÄ"é*sÛwOŽ[óF¸zõYaËu›…‚Ê×é¦]m¹hºÊbjus=m«6ÿG-Û¿Ž]uÇÓ@A¥.­½[ “Õm³´dã³n Ûðü†åæØ €Ä³í·xU3 •GßOOPùCâŽ-&kãEýwÖÁnš4ªl//hÝ–Ñd/ÑhN é¶¿„†Ú; ¾r„ Ö¦zÏc?z€®`8O´ª{¦Ê\\¬Ÿh­(ɰúîø%¤žMSEpצÄK_N#ºI¼´d=Õê)*ôŒuÍC†]Léè«…4ö6X'ž·x0m;8Sg2h_kïNO¾ªc“î>†NjÁAìbÛÕmMÑL½é†„¶içDŒJÝÎIÇvÂc±Cl_> ¬ã˦Ëh“eÝÔ@Ógè<ÎÌ}áÆhP"=9À’»Î¤wýà‚&–¡æB‡ÔBO6`ê0Ÿó9YìÓÚÓ\† 7˜Tµ¦¢3ä*$Xiç5²]Š*ßp‚ëC-^uÍ×ñXv½Hï³z<€Zƒ/ÈV§9«I±©ßY9·g]žy8dˆlA«ôŠû(Xö$·eáØgWJ$ˆçCÔj:Ã9Mì@ñXV6wg…¾ZQ(3©N1 ¶ 6çuÙSDâp2~×çf¦x=ľÇi@OnP;L ÝÓ&Ïš»=£†ªxÊêÝŽá‡JsWÛ ‹§Ç ?hÓA\g)ejdesk”B©Ž ³n ›Æy‰i ËԘæ§L©£âEÉ¥míEï*Xƒ[ÍûIJ{»lr ªyUýµ`/¤h'+4ZW[K˜Ÿ k伯"«˜¢“Ú¶gÕ×ÌpÏ¡ÿÆeÓ¢‹x²èwÇ^UÁ2¸Ç·ÖRÕçÚœ;㺻z¬Zy²æm> ¹Ùvm]Œ$ Š^‡\¨ û [´ÚLH#ëpT;+k2+˜ue ê@jàû¨8ÂÐ$Áœ¾•Üd«ýØá š‚ñb{N•ðn¸§_ªP)<á<iÀ|l9²á;Ú{EPÐæ ã%s#C+ùw9*wØðô,)%bÉ©R–ǫ’åbå3:l·u+Z°äتA;Ñ"“ckñ;ÔT»ÝUoÃp©†#úËmûX½„(‘AéÛe¢J $X¯ÁŽLí÷œK\}1áLÎnëL‡?ÐFÖX"µ« M]‰–4ÔÏÛ»úˆª'ñ§'ÚöØÓ•6Ïq¼¿õ|JŽk1׬”‘cU#¢]zK¬e°\CuˆO&ÙØâ å­uáîŠ;튌©%ïUÁÑÙÄåKwÛ¥äX’{“E¼ÙÄVhœõÜìÏo<6‰ÖÊÙc³®fZ¼®]hœ WkóÛÌÜ­{hë¸Th(ØCƒ¯iœ¡<yÉñ×q. ±`ß s˜¢× BØT¸“˜LbV½Ÿ(ØN;€„Õ®u ¼¤((I„RçR×¼s¸‰]©í¬+Œ»:äUãíÒ^Ö¶wUÞבgßµ©ƒwŽ-ÞC2XVå‚´Òõ†Q©Uµ{»g½êC'(€mMö<ó†g,›†XYñj>û¾fKu¤²ôØóKhŒÅ©ÞÕÏšööæh¯EÁ¹Ýp$ˆkTìKAöî÷ÃŽб#ÀKµB»Ö­}tÛ·ìƒU^ý¸ñ®ê\ÃÆgõœ š”¤FìåÌ, žI²`Iûü¬^*(a•KçŒí€«( zÙUxêBHÈžO²þ«œµ†Å¡½.õL­¶Í]ºìÚ©J㪃c]ÙÞ7•ž,!ºÒbKÇeu²žŽº­ÑGïÇ>ôÈÙ,ñ4”V*7pš D*§ÜLˆðn`ôG›Ï ëÖ ¤Àc¨›z÷Í>L¢çÞ×Yé/xyv§Ú¾áhe]TN9â„ÓxŠ©£òæ*W`åVdy5ªÂGªª×g~§ïÐPUøW®_eÞ¢fiÔX*l”ëÉ-Uüdçwqªbè¯à*‚ÿÐp˜¬µ¬¹“­’湄ªs!·Š "4÷é±w]¢8ͩĮ(E|"OèAj"ÈmàžêÇ»ˆ^Ov§®çʬخ‹‹ÇVûÒZ†vuçQ=hñ£ý<¶Òô™µäO¹´ÂkË„àÁÅëøuj2›]Ú]‹äqZ£#ÄD´º­~,¥¹±ü´jÀ^®Ú`_ŸCí±èÀÖY”.#=Ów=´–8;‰EŸæÆY¶'¢m”ì!y²q.yW<Œ}üX†¶ó Nªt_€úе€WÒÄ2ƪ÷ë ?)¹ôŠrBŠŒGÿ†ž}ŸÌÓ쌃îk»9Õã±iñM®q¼"­NÆå‘W2$' 0ëPd„MÚô-9íb«km#†zð$ûÁ®Ô'w"dT«–Ž—ÅMñr5K_ò¶úÜA…ÛÍ•†”¨Î8mð!÷[_Dû 6` 7Ð0ô(à«À%Yf4Š*—ã ëý@œ Ÿ6ŒJãÕ¸.룰çMm²g{¦Túá9øtÛdÎÚ}`."²ÃnŠ·¥ª›¡}ƒƒÐAæURˆÇ­°=ôˆm4ÝA¬ÉöSIU’P<é±ÿiìhëž%Hk˜‚ë½Dݹ¤#ßÙÅ{iŽ]VcYZÇWÁÓÕmø.êQq— Ëa ÎÃL°¡Ž\¡)4×}>28'ãŒLºB÷Ø.éìUIX£Ê¶]ºæ>§1v·Šµ^‡s!•m4Í5†(ÚQ¶.j½—‘€¹ {–ÎFR ÑÙ„åä“Hd· ß§åt{ƒÙÎ6 ƒ0syNÖ8ÉϺ‡C²ÏdËÒ¬ãû|¾¦î› *ÁOÈ2„ÊmÍ$´“ÙüpÁR%¤È( ï`ˆ]« ýqØ.l¦•³vÎñZG7¨ÿíGâ¤àC”ˆ8&šÌ%¤9¥ýOµŸ SíïJ*©’Æag¹òŸZºØÃbóMSÛkšª‚šœçåZK›Š±:4 oä_*l* «–v_E©î¡Q3imõÄkœzóiªê>[»á£j¦Toõ,ªò¼Åd{ÁMÙ;Ñ£'%ålL_Ý]e)b× 5ênJ¬sKhb®’û)íŠ>{"ÄU¢£êìï*ÛHìq掼±lDŸÊwŸ©yfPyo¿R÷¥o.¯g?©,¹q'!«/lýMƒ}M,{†®¹YÒ±D’¹ûL³tEä¢Ú®“û £-+™’C‹K…æ“#q„¿‰u¹^;2¦"ì8´¨ãz¬ŠØYÜû4%·ýRcSô 0ÙÛ®À+Ȩí«áÖøá*8aWÊ‹,¸U=X¡‹*õs—í·ÏÜxuaõåô@J0PôГ[«Å¥ATÞ·˜w)»»vyu®##¢VµÞ©>çUƒE][làbîÁ" ˆçÔi Ôu(V³wב–€«OEÜ«T„UŠSÝ'’o¶EPÏ?9 ß7«Ë‡£°§-±ä3ö»ãL5Ø}ïpÅšiÐ](«C♵ª!X›ê©Â¯«Å~ûšL‡Ì¢ž•]²«›¢œ†ŽUå-Ñ¿èõôgnZ(MÒÔºñQõ4mGw2¨C¿p‚Ž/·6è0ùp¨ë“'sn\SÕׯ–JÖÙ-ŠJÏc©ÑÈDØê7iêr^ 7–ɾ¯w87Ç©“¦qœËd#¢ö¸­ }¹ƒ³A×Ór˜v?u5ßGËPµ\Ö2œjZ†áVúÄOÕ”/Ö¹ó®Vœv—ÏåYèÁ ¬‚S[ —Zp©Då²OõZ¡uAK% RùcÍj©º÷ÈÅó³Œúš³Kץơ”M—Ʊåp¶áqý¹ç=³iR1œ¢Â€°ðwd})$l³2Ob˺V%šô? nOB‚\@Á0pö=ï$<Éù×Püf…‘ÈB[ÃèöPX\ÎUÀÀžçû(Ö±5àæ†ääiS4ÍÂH^£,ª¹°Ë.›l«f]Ú›T»‚Ô¶61r3JRãG¹hžåF„½£ð²KxY`ÝF7†­ÙQ•X¯jmÎëØÖd“fžñ¬ÖÚ4?—Á»Þ“`ŒÐQŽC éËŠƒrë°«e‡\³5íVZC€ a¹¤Þåi½4¬ Qð0ËhØO;Æ5^Ö®+]·åqÛ½µHö4Ï~=þ9«H®½Ã¥¾WÓKÄsÒnG˜sÐàI[¼/.ׯ6Ò·œ¼h´ßµ!‰c²9—Å;kå×x‹‡fs\0Ò<[ºŽD§aËòšÕ~D˜m>ÐÓ=©©mW.Gðgâ%Fü~oÑ™Fu‰S‹Kˤi¿Mhí¬4­ë¤¹+{oÁ°ï6R:¹à‡Ÿq{D^<:`ÀIÉr;·•.±̲…ð@ÛB½êÐÁjW÷C½rW¸·8 ¯<ërY'¤`xÇ7ãÕ³T…œ0û.¨:—ù'踷©¢Æ¹—#ÊZÓíÖü¹Vy³èiX‡¢J(ËÊB)Ù'×fòµ½r'6í3õ'rjª>RbÇaÔm¾¹í9ìÄðîÖ¡ §­"³p¢Ž©f²•¤ )"ƒ …Ó]¤¤ÙDÀ÷²‚Ó§ñ²Áøì}‰–àã®®! BQ®x; ’Ti KB¯9éøhQõ8¨ŠLÁÌÝc¶%sl^‡‰4|ÔÜ" +.tåå-zrUÏRõNû£:¬s J¹&b.Ç5è]¢+zÔjº ÔíãÎÛ¥`j½—q¼«K°n‘ Ü"?O*°Ä4 ‡Ž ©¥Fœnú__Ì‚{€¥Yù<øÞ~ZšK:þœ«Nê-:l»â+ÿ%ÇÃu´â ê°ðœÄ–ðY¥žÿu%gøÚ4¡k÷BIø4}Ráç¶ïõä^²öÎO#QÁ¡ôf7üT#ŸŸ×U]f(!ÅF-º)Ö¼YÍ0/¹eðFå‚ûÕ–µÙT·&€yXÆï{Ù@³D°›uRî‚›Œdw‹žwöžzÀÌÂ{ì¡ÓÁ¸àJ|“ÕY•/tœ·f §àR3ÛûQw ßàÉ¡¸lxlù㣅ÝÒ)”Jë®}iL;A×~tص:\ c…j<úëð-–£~R€"ŸéÐÈ}éFÉ\*>Ý6‰ƒÐsh‘ùÕ–ZÙ=6¾•|¤‰””ìžS±"¹ÇÓAi—¡ªž4v,?±‡ê£v‰Mþ(»^Òru°Ö¦m¼Ø]ÊÕ§ª­—jJV…¿×+gs”Ù^ÓëÐ"ŽT ¼,«lÎÛꥑ/àð“ÝÆii'gçMí0±ƒÜ¼4yøª|¬ÌrÝ”ßìEiœ®Y ‘ ܦJX³U¾ ÛãÙQj”.æ•Òc›öJÊ"wûë<ùP×Íy nì”r{Ôa×ÈðfCîZ¼;Ų°%‰4ªþBæi‘¾SÛA²šUo[»nïG‹º°Œ­F/•—¹„K.¶ë¹éÙy‘[‘ÚY(à †œèZúì×láYã¼·î2¤⎢´ä ¬ù¬nÅ í0m¿R}](mGûn¢§œî ŸôXºï4Ká«LP„ãÇsµ}§G~üœN…¨‘Ö5ÈRZJÙ¶«ÒKT„m¿ÁÕ4qúO/9ŸG,ɆÖG§º=ôÈm¨µÇfKjÕ’¶)\©¡Æ-D°Èã,¯*q> Kâ ©Ö—J“dŠ›zé·šÿ| sö¼è¤ë4g:Ë®H'É T}ÉxeUõP®EqK¿!Vc„Ô;5àG/¤2=ÙW!sm€ðùÐR˜‡ Õî'» \‡´ÄNåÑÕxœ7÷Ê3ûxsq>-@)ŒàéûÔBµn$>…A±kŒ¤ä(·f¿N¬;~4ÒyŽÛ Uåß\ÌYù}‹ié©` uyØüù¡ µþõi‰GÓÙ*DõàZÓË"*~ÄU÷@«üKSðGiò ¶ö+JTAˆqC´;W§ã£B˜–÷J˜ ²@?-øªêÀc3BñdtÊ‹Ô#¡_¾› ÷*¬N`Ý6õ®µ#ajʸ/;œ]C{àã¸=¤)ÑNNècpèUÉÛÅÃ6ÖAµj‘ GY¥=}j–Œ°]®ÙáÀ*öð×CŽS€q8?’¼©Ïö8H{{Fy¤Ü®p¦¯AãÈä_¥T Õ‹C&§†çpˆ Eû§ËÕ žÜ"-¼~ÿñý‡×ÿxûëí¯þj¼ûj¾÷ñ…ÿ쯿yûÎ/~ñrÿªÿÿ Qõßüã?ýìúêý¿¾úíŸÅŸ‡?ÿèpùsö)öÏo?~óúÓŸü¯¾ûþÝ/>ûûÃë›|ïyó‘_üÕûw/ÿå·ß¼ÄüË/âù‹^l ÿó/¾ÿð‹—çÍïÞ~õò«Ÿ¿ü—÷ï^¿ßþê~ÿÝ?¼ýÍ×^ÚŸÿó寿ü›Ùù·ëÏ_®o_?¼ýòÍ»—_½ùøõë·¼ã—o¾yù§÷_¾}ýøÇ¿x‰¿þo¿þøñ»_|ñÅïÿûŸ¿ùöûŸ¿ÿð›ÿîoþöå÷o?~ýò__¿ýð»×¯^Ömùû7ß¾þðÑ~¾ýÕË?ýöûO?ø§÷¿þøû7^_øÆ7o¿|}÷=òÛw_½~xáÝ_þé—÷òß½¾ûôË÷éþö凛ó|¹þÚzûnýñ›/¿|ÿíwoÞýñí»ß¼üúí7¯/ÿ0ÿîçÿðño_Þ¼ûÊ_|óÍ÷ïùû7¿{óö›7ÿÊ/¬Kó2¯ÿþå Ÿð‡Ï÷ý—Þ~÷ñûŸÿö?ã¾Ì§g~¿ÿöÛ×w¿ß¼¾çí‡×/¹ïü⇇ûoïÞÿþÝŸþüկ߾ûê×~Œ¯~ûÝÿòîí¿ÿöõ—Ͽ÷¶Ÿ¾÷›×/šáJ_^ÿýåõ_~ý…oðÏüîuý0úm>Ãüé»÷ß½üšá2|å_ÛŸ¾ó»×—~ûúúüùÕãËWo¿üøò¯.Öí§WçÛ¯¿þô5ÏÿÃÛ?¼üOå_‚ÿïÇÿú_Xa_½÷ÍúõõˆÿüYünïïÿðò§ŸåågàÝ—ËþD{ù¿||óö‡ øìoùî×ï_Ú§ëäýùZ÷ÃÃÿëvÆß¼üåkýý{–ìëË_ÿ´Âÿçp„/ùGü¿¼Îןü-o_åÿt…ÿç+š¿ýæ›õó¿þô ÿ»Ÿ¿ùöí7üá7X²¿ýÈòÿÕ{6Á»ÿü«ÿãë§=ÛßóÕþÙ/?¾a\ï~óÍ·ñí÷óí^¿úÇ·¿üúÓ:ùôýq‡}óöÝë?¾ÿþ­1ååg1„ÿô3¶Õ—ÿFÜøžÅ¸~ôÊ®ùË·ï¾|ÿ•Û+ñ„ß|øðæ™¯Ž—?EöáW¯XË÷募¿{ÿ‘?yáÃýÇ˯ߨ|¢¬Â/~½¾÷éËÄ—oú2óå7?~™Ï—/¾{ýÀ.ÿøã÷öã勯ÿøÝ×Dˆ¿UÖ¯½}ÿÕOßâ/¿ÿæÍ÷_ÿôúòÅÿúúáýOßh/_#üšOüÅÇßÿôsÖοþðúÙox±ïûá§ox¹o÷Ùoì¼-;èǯ¹Øï_÷ÙµrÓ¾øô@ü—úîígRø£ë§¯øƒþÓWüòýÓW|¦ç§¯ø@ãǯN>Îüé+>Ìÿ积ø ÿߟ¾âSüò§¯x¿¿ûé+ÞïW?}ÅûýýO_ñ~ÿðãW•÷ûÇŸ¾âþëO_ñÿôÓWܤþé+>í¿üøUãýÞüôï÷¯?}Åû}ùÓRañ~ñÕg_ò _?ûÒgõÙ—\Áo>û’Køú³/¹†Ïaàüÿ?û’kú·Ï¾ä¢¾ùìK®êÛŸ¾$~ñî³/¹ª÷Ÿ}ÉU}÷Ù—\Õ¿ö%Wõá³/]<Ÿ}ÉU}üìK®ê·Ÿ}ÉUýî³/¹ªß¶Ë¸ª?|ö%WõÇϾäªþ×õå_lõ/ûá;ocâÀŸ¿^iõõõ¯_n0ݲ¤‹=÷Õõ~ï÷¬]) f<Ó‚W롤÷v«ªŠZ7>“–>óÚ‚ÊGùÛöhc&|Î6\­ìþZ ¶©éÍa©g‡¹7õ¹UÒköiõ>ûyÏûл$éË«¶ºÞ/VvaUåv\/Ù*Óµ®åg}SöÍQ»°].%4:J%Û_ë¡V[¥.î¡åÞaC‰½aÜ,åk+zÂkºRT–»-ÝÝV]çs+V3œÿ%f›§¹ÕÇT¿XžþçºCVC¼T&Tk î˜#HËÓCa[–‹‚;)Ún&‘Ua$í½n*¶C&Ïç*2Ø65ªÔ¥MÙØäÝÙ—§@|ªKäC±º£ïN–ôÌB¹¹Û †=v´+Øš÷Ú=®]б ÍS95·o߯asö5·T6€-FKž"ë¼;*׺÷´u5¡¹u¥« <´t/©zî¤ÜöŒPóm q¶6Íê;‹&>“]ÐíôKPõt.˜çdžºËs´áàüŒõØŽ<”ÔÜŸwnB±XÈ«|呟#SWQe¹ëËÝ: ]ý«ÛO±û=Õ^©ö­gžcp8lIök™EpõOk%BáÍщæê“æ.^Ç£ºg´|¸ß¶ª&õ}œYTö(ZS|®ºJ—çT¾§¹\y‰@<¸õµôäÓv³ëº¢mžGNñí´OK?GŸxú\ewlÈýZ4i¶øÒ¶:Y|÷UœûÜ/ÕÙS…Ïó~¼IÝ£Õ‡¬Y¹že®r))±ëySu£ª~Fç“lØ ÈµDÆÕROÚ±¬£ˆ;(m×Ç™-¥x˜xÞy·QsÓ‘¾vµ­XªÅÁâiË!¨´]Sß“ ¸Î°Þ<ìœ<ç ¬bn^ë›Uçx•½èÒÚªã‹).Gt«yó=·2Iv–×Çæ×aÑÒ‰7µkÓv–³7]ØŽ»Øói+XW­hŸ§zL¶ú§X žý™¸ÑéxžÇ#æ œ—j˜·Á0°•‰Ý( ›=#C»Ì‡Ï‡ñNåJÉÍö÷óܵ ­xÇêH!ûÀ©ÛoœÐ’³‘½ý(U¼J“ÉîÕëVãcËNŸÇ¨Í®[Ð5*¤CënïvªóQè5=·Ò‹©©òÁÊÞ3¯·/ÃjƒãÖ\ýN“³Îd¤àYúaÁ4Ö› LÀÔv°“9ì"Ó =lì|Õ’ÉUÖ u{^*T,œ`X6pí&Ž8å`[Oß…n1[ë­œuãj /×i}trâ(öC>Yë³ Ò§ƒž<1—1!nj|ríÙbœNL×fH`ßòÏ[Á/#ÂßÖÝËyv‡ O§Ör#žì³oQ+“]á{é*Ê©«i«^«”§¿«y«o]Ú{ÛÏHÔN:;7k¼æ¡äÂ¥åóR¸-^Å çTw5„O]$«ve]ÀSÝF‚uÙ•ÂóÄn›ÆÍÿeï³C_…„qü ´®¬_?7½ëØáĬ÷à›Z D±º¬úx††µ¡Ëßu8H ¹ubgå£l\RøhC«ã©AÅ áCë*»:ÓÖ ¬ãóùÙ—÷~:n½íéÔdpvÕ„ˆQƒtÿˆj¹†º[ƒ‘ï5Òû˜×ïÇ^ªª´ðF€1gÚtåÙq•ìlÖÑda’¶ÉšÜÒ5’”–rÖÁiºä>ŽÏv_Í¡2v:¯ã°Bjó hc|?y]}Hйí}Y´wùùIžñÞHâ6ÊÛgTÛ<ê~Tº:ÙîgW‡ÊGíVU‰ ųˆUµ›Op¢¾nIѳ‹t-··ãªÑ‡É0š”)Æéˆ¡]vŠ §{G#T]ª÷uÍ‚ˆµ]3]Ë¥è8¡“È뀫†ÖYÂçY¾<ýWÎpôË¥)vÍ5<¦sZ±jå[Ó¹Üý û$çBNÞÚ­ hsÄ8‚1ÙQ¥¡ì´ÖPñívöå ÀîƒÂšlõ›$6YŒDÕªç„F±*þ0œ3Tv-%n<‡»áÖ&.ÝŠˆöÖX…Z[ð&q·ìr9ÓœGËÜx[ù³éMÖíIÁžôcõ9£DpvÀ´ éMe€xz‰îð¢b]ú˜ñ[¶éx¡ôM ¾fŽRç`g‘3 áØW+yYNÃ0‚ôÊ g[-âs~ö»•V…Êú¿0G¶²ÙÐ4|ªd¯žtGî¶©‚d\Þã—:úsè òpîjr©­°÷¹¿ªo±R‹\´uk‡ëûÔ˜Bz–¡æçMè§ÙKKu³fE„#w“ÿl‹&’ÚHÌ¢(K†Éô³“±¬ëFåd¢’#æ0jŒÛ2];O›mñÞ» ,©¯ŠIOv߯¤Fp®Y±±lUÑÖà4ºá·ÇÁ¾×â竦®Ä9Ñ9ã†.Œ¢ÓÑç¼Y™#r\f»ô íZØÃšˆˆIIž§:˜1çêÄ&òZ_vX86¸J™EÍý·»ƒÈ-iÃEVo6Ò$Ãq ¶ÝÙ¯}°@úW­§ø@eÔÌ.eé+ÑÂ*Ùçl¡h\ÔxgÁÿÙ”D¬µI-XͶâfä9ƒq)ÜÖ2[» …EBÖѺCdeÝzßo»¥Êš+Í¡6²QÉæ<¥Çm vC¢À-_*Ì“] Š'iPŽRN2e8W˜•˜Cƒ«vMõnÍy.vYïªHÝ*=ùæÞgâÊF :œ{áe¦ ögpV‡sEjH6å4%¡Tà5¦Æ¹)5L¸Îã]FXÝcŸ¶FÝC”DúgG’kêI°ºÂÊÎsÙœ¹|´µ5b™RW'>íâÁòÔ&™ñ“åYRÇŽ(³†`Ì<™æ¶“_'ˆWµ©€4²?v¯³@U¥Vžœu`ESL;g,çn¼Q¡Ìë¾yåL:c­sñ½®A^eü&`LB]³ÝÔŠ¸+ d‡ùH›õçBêãñ»þÈk\Š‚ð¶Ckàí`ˆ]LÑûSN‚»“âúƒm»@>ú}Wf„垈ªËÝÖ6”Õ龃uzÈc“´I#¾sCO³“ša*m>käY[ÝNUoÍ5Y|lÓ¥zÑ.Cµƒ¯Q åCçëM5g¥¿œbt$Ây,Í÷2Y‘·h«CãRö³œ†Ö5vÐÔ^6g'åøµ ËIwÖ«³Š»= 6ª$ÅÛð}olwr1è]:Xc;à™\vÛ·ÕÏ]£½F\ˆCøWcÚ~®»dYóçÜ%xöÔÃj>›=˜§-Š+ ³){?U}Û §#ôý(¶åØaÝu !é¡¶”‘çâùt)²¯µw ‡˜ÔIP6H¡ÆüÑ•uc]$–¬xJj€^碤ôp±¹ù9Ï ÎQj )ih¼®ºø´a³à$ü[•²É™lX`¢:”®Æ„5âPÅ )ÑÖÄü*„= ¬|³]—}ç•4ë¶»>@•À…J»™m+æë;,AäÖEi ãm@^ÓÐÓÀ®ãS›[„᜺±®kNá±åF¯=R í£P%¨/ÐC¹x½j$@“ëê,.„4Þ³™X5>åZfײ…?ÍÞç½ÞY;,}@žè À3öå²vj`ÎïÚ¶Ë7Xå,¾XŠ®°¦¸Æ¦·q]콪& wì(ï“Wãn°oÁÁÄ9U±_î¨]ÄG¡|ƒi³ÞÕ&o¤ñC¹†¾CÕÈ7û¥,g˜@¤Ó»…¼ú–&+ŸA.yxŒÊ°âÀÆñÖð«E3@Õ‘i ¥’cv{‘ÌÂd›?–7Ÿ*ì{z±Öm¼y@‡@ô¨²ˆ^î6»Ãv–{jU{H©uæApÕ}ê¶3ƒßÞN÷¬aN¹YM×ø ß#ýj<\Ñvs‰çT¸€Óž›yzXdž*œêƒ›G3 «yé®×né‘íiÖ´’…{¹(hµ{Öì×woñÀwÅ.ˆ%EkbÏXÉÅ×”¢&´ú vÒ:¬å`é1y–eÇ÷u«oÚ¦CŸyqG£>D}E ¹YÃÛ„ xÔKÔí‚”C$„6Eþ£ê%ýpô6)BœÕôÙ4å&ØÕ±Ž@âP}`‰,þqzå´ª:{îçÛn±ZDY‡wœ[%g²½|wìÐ.¾¢ï ¨‰[ÔO"l¨`żkQû©¨xÚ36'}È ,Hûézƒ¥M×ho>Z9HO-õþÒjCÁÃ+´Z¡Ýˆ¢¶pÚΤ] (jfGÔ~íö/ÕNB…kªY‹Ì-È0Õt´ß# {ä”—•_ÙëÛÕîôN@ùC¶M:ƒ=OUgÊÅrR×Éiö³~†Àòâñ±Nî¼Ünµž¡¤Uçr/º“Ò‚‹Ð-ˆpYªú}“M™_V¬­ã¤ƒhºÒåüW³O.®Ð ±)ï¨ÐŸú„ŠÚñùHð°÷9íuƒþÜÍà±ü¼«…4~$%ž ¥—ªÛ™=qšÔ'pk<&6SÑTÄÙx’‰Ê‹Ðåxœd'} ªÃ»JÅ»œ-pìŽÃJ¶C!’¨œó©ë,]<»Dz.±çz?jßëØZ6BˆíÉuäíÐë—F°"³J†‡‚åÑ18?ÇÙo[€»°xdÍÍŒv6/òp?êÆÞeÕ½ðʳì6ƽmûäϸnCBК 䨝¥!§[-ˆjšƒíÓ‰ §O­p¢¶W'}÷Qh¢{ꬵ¿Ÿgs;Ïy“cÈÎÐÎjDRÐ/¢†ÖóÜ‘¬‡¤F·-Á—æy`™¨-=LÅ‘bæã°dL7ˆ•^+ÁÒ”3„X¼Èzê ÑTEKkc–¼¼­œ—áoI [µ³10B܆ðØ9'Þ+ÚpÌŸèPRt›²_á“«Mä gót* £I èÒ²#ÎAà ôª›Ø êà †Jf6/)ôm×KIí'/ ¾-©¨Áÿ0]“<“ÆíÈèádß#¹¨~¤MŒ¥ý+©ÌC/Údq*âdzª{ ±N~’¼$bâ•NÅfšEg?'ÈÇl£)ŒÓgP'AK—¶]\Kµ>T8vuoÞ£®\HmcMÄj50öΰ¯ª» o·r,–´p—ö¨ë“Gv/}ì @ÑTc7¡5OîA^){"¼ÂS=Ûã~$•¡XЄ¸¢€®b|ºûMð).6•GÁŒ‘'C4ßÁÊ$ §ÕûjçSSi$P°jâè ÷ÿíÓ½_e'hxt­ T¸Üãæ0‚ÓÄê Ä¿^Ê1 w-bAY{E…“ûÞü7q9ˆ Á™ä §:‚ÊŽ!¨ö Ù±èÛS“½-÷I¾Û››‰ÝœñÐ… cÏƒŠ“Ë7¡Šÿí›wà3Qê´xÕ§gFÍ9R.ë¾Oò±ÜÇæ÷åMí µR0Ï¥*)3ÊŽ¯Ð>9LïØLÜV½ÙZ© ’°ÝAyÛÞoµ«TÒ–Üv5HÌ€Ë?‹ÌàªÝ<Ú± ~컕ªÄšdõUVæ®äá ò¤óùERäª&ïv‚¸Ø7\Ù6õÅô9¿É9ÄDåÂ=Ë·Öv–ÌFήýäåÂŽ˜ æ=ÒFî9ç$y¢E±¾{ù ^…ˆÂÕbµDg8Õ¤?­²™x‡ÍÖñæû°‹€.öT6ÂS;”} {ZìlÚq5‚ ;ĉv‚ÓÇÊeÖŽlWJ_érÂu«Ë‚{ënpðÔ3y§Â¯Î‹kûTGÊ$9†v‡"ëXX;k@©N­’¦5‘²pE1r½‰GÄ~7… êÑèm¬«|æ#t0  àÜñ9YQ*ëóªVœ:æ»2‚rû] u(ÙGëè<öc¯Ûò`)i\`/D*!ÍÒß•Šëh9L%¸ßõÉ94×ÙÕ®¸6OD+ ;LÞäðøTåuxBY§ž“íÈMŠ ïNw‘·x™I¾é@=7¶/¼Æ_kŸ¨äñÝaÊÑ6'A5ð#`9̬fF¸+-E™è96ò d n 'P(îY´5•ZÔІÒV»Ö™YÌW†BÔv°B”‡;ea§ögâÊ®K„EAž'A[1 ÕR«SÖuË•n¸ˆ´îô\ð|úQÊKÞ°Ç©b#]s·Dn`¦bÔKÁáMÍ|›ŒX^ÇÚÛÙÄê, Û“ëtŽù±Ä¡ò,Ö”C¹¹ml{ØÀ­¡<ÔV«º;õØr§èíœY4¬d­/@ãÉd%Ù(slâR~UM¶Ð$»…Ô@yˆ¸Aˆ:o‡le´8‚6ØúËZ±mYýNV¿–;ÚéèCKváÿ€Q@ð¨ç›Ö; O&¦Ú'ªO±=?´x¥‰¢í)BÔE½kA L6=p'{ ¢"{³öÃX´üa/(Ñ/n$ª­~Úr£Šéîl¶àï9Y¡|”Õþ×õ²cè–w‚Tï1×ÙZ¼|uŠnéyØQÔÂá™ NÎkÇí:°–n!h×ÕªwR›ôˆךzws?œd&xJY`)[«@Ž–9Õ&f8 Z‡Äsãm³Ù½ø°¼Ÿ²-»2;åäšîu\ N׺ À̉g¡€Â‘m,*s¨%0²5 œ^Vµ½‚'¸ƒ§¢b'±–‡¬ì„fIìñ²U‡÷—¼ùºsÌFÌ…ÖLŸ±s:±Ìûõ&<¨;;êTÝ+«€¨¬Cº …«UÆuby¬kiœáÒc,sA)%w7¿³«Ìb…pÔºiû€<'Ød$ U4Z4¡œ=·ãÐäQ‰ñ²›ðO­Ü¯´6ÎqºQÚ!q—4ø=ÊÕ´ÏREÄÃoëK qãÖ)I;,ÚWt•,×A^$ÝØ>µ{‚íäí±NõצZÐQ+¨ªY*)e¯$Û¦²=÷'£râŠ'g:¨L2[ ÔvÆÛ¦Òb5…'Z"<¬NÅj¸×ÀfÐø6xBNÙ>úÄÀŠa>}r­ujý?ˆa<ëæØcL»4aÚoÆvàqµM'•S3ì[àæA…ŠØáb§yÇžg:¼»+èÄÚÁ;š‚{¾ò6hd¸•˜R½÷y„š´+’•“QÜ`÷¬•AH´Æh+`\Íórl,m«²î+$b┎åÆ1úIxè0zQšÿñ W^j­Jr–mª@ *µÅ×ÖLB™§‘¢çÒS‘‹º‡Á\…©”0 ¥_cïgÛ´6R\¦-¯{ÃcØ…œCE}¥ÿÕ sº$E4DÈ»B“±5;ûsÄà°lÖylVª¤Ï# ÓÉÍJ‰ä}]ãÔ$ƒt¶=€àâÁ[Py‡SÇ6î.Û"‚ÒI°ÉG£3æ-…9*(~Z€â6"Í,Oµƒ“•£=7›R/’‡+ïª3b½õÔÇÁCòH$"ërÆà;›ÈÌ©] lÓò‘£9Ù «Ìï¡þÝ´eŠÚ€äuKt8Ów Ú z;5W{åÔE"p1ÜaŸâž Šeû’YT²„P=µv!)iåKºB?kÂY<욈ÊS¨—^èÂ<¼¢i[çãL:ËeÓ[294__( »q-wvž‚§è°»õ~b7¶+ ãÉÿ¥(š½ª|[Ís“[M“]]S3—¨fa6 Å]åd‰m?m]/÷F=—V”"têw˜öN ;ôVÖ¸i×AêÕmi$,K¾ìô¸ÎMk÷‡4D|”#4}ÈÏÎã³ü3¡ÿðU.)Ù\e›Šjø¢ëGq°®´EðÈæšYªL=½³z¶NKCØ@:©½ï7ÇA=%¿7³¤‚ŠsNžv)ä ®«YpEpAýQ¶”²”Œ_-ؽ-[-…QHPk8|*õ¥ùªÉ¬ÓU$µÛ3¥òOQAqWÐ;ß êûK&kû¬:3ðÁ goz’›Þá†dŒu3š8ïØ—Æ×ÝŽ³¯ÜøØÝÌM"×̼Nѹ֠wP·[8ÁÓ ¥MàÆ©úDÓ|wÀ §MÝ÷‹ ¿\ê ´†lNôQèC R^íµKÎ,ë/V+<„c‡‹vœ<×vÞóóaÍv*J[\SZsûAÒ¢Óv(—G‰Ûn´èÔnŸ¤Ù¼%fûûÊ3Š™Ò¦B*Œfz2¦¨—öí»”5έRëžú²F[†u:9Nb€o'ìÙÙ±ñ¨~×ºÞ Å68Þ¹hB,!ïÉÝc_[±A»--ûGG†‹+Ìõ\­ÒöG±Thô±™Ôɘ«Œ´ÿiuWÕÁ—äxlp{°÷ á§zR âWé'f­Ã½ªÝó⃄7dÉiGyCƒ:ä#iþÆ&Q#MV¼}ôgãFvnƒ 1^Ï ]Êó ý 7›a¯ª™W½`}ÄÃ’+´K«íF¹=T!òj(Œâ¡ êW§Ùƒ?«JW + ]naaõó¶f1Ø¢Ðau¹•èg!ذh/°ê»•zØ`  ö¦~ÈZm ÷MÉBâÓ*ž§çY^FÀ]nÊÆ">înèb-¯Ó¡t®4”¦”>YŽOˆÆ÷¹š5®Oþ;ü¦šUЦ ºXå±TSl]Ñ–Ò¶1éЦO}Hš¶‹u!”·žºåÍkÉxþêМçÞì·\ã/Öù}ê|ÉÃHêéñT^,ª`ës×—p¨|Æ2aÝ”(žP²ÌO3`b3-]å ëŠ?Ú|eá¬'¸ä=‹Gf›fDTiµmÉÆ Û¦’àéØädX³±W»¿Õníš™žZ[ôßH+G$^soÖVì"¶<ê?”ób°T£ÍÜJ/´]?¬Û¸TÁÂPd¡6Ž6™Þi íöõ+ Ú‡éÖæij>ó¥­8A0«HxšNAë`™d×§%É%0fiƵ<ÔÆæÆ*¼¥Wø—ea#·ÉïÀEêæw€Š<’“[ת „k±Êpw‚î%˜ÜQþÛ3ðÖUKÚò´Œe—Æ­R";”¡Ù…õ¨Ò—¼±¢øZ4y 6–²Ë2‘g ®÷•Œ#á¾dÙáp¬ÈÔMÊ:Ößð©ã]ã®ÚVÙ®°:à¢W"¶G«¦Q”zWrŽxšßûOÍ´·a+£¸Õ.õd²jµõE{gù44Û¢ž•¼šª *âºZáÕÃŽ¨¢RàÎR‘«?Ê|ëØ5·R‹É‰Dn›3 WÜÃi§,1æ6ЇݩžZëÔóú,ilÀ¥8„Wt<ÑÓ-œ:AëÐPt‰k¤jsc‚:©¨s@œ‰‚i)ržÃrGÜ—š]³wJÕ3OzÚ­4“í$]u)²3O¨‚8m4žD;Bù$¢m£—¢aàþÞ‹Ç(|˜¥¤ºßL}- @v²ƒiA,·½(~.cA=öŒßH3<µ#°Ú=œ~³Ú÷ÀJì0xBµèר¡°2~CHrÝ„ÿCY­¹æŠô–¢³ŸsË—jŠð4 ìu “¾ŒM7ûAT9H9’Ò7M)!Šw²®]¹à’w;«2¬Ýð耥Ÿ°zèˆ:¹º”t)ƒƒëKÁ†“˜Âýßx´]»E‚RIÊ Ú=¤Oõ×ñ4à”ŠËC•¡}>c(üvqãÀMÛnjÑpRÞìPgp Á²E£RQX¤‚z‘XC,S\6Ï4ÊæQ¡A÷SË^Öà¢õ·S Ú%Ó–ÇØÄ¤ù­D1¯³Œ3¡r–b^IØ0DBð±,åõqö0[g …±°ì°iìí$( aÍ„óTënL뼄Ëe³‰N[áì´ qÕ•óØ…¾ ƒ=€ß®ÒÍa—¯MUWãiÉZ¼³Ñø%U@5k÷J·‘Íá_½(¶b[»ƒŽš"·ÝÌ"@JåЊ') ã´/ŠXù¤”gÂ’‚‚õÆÞí Ëø|ïuùƒ$ÿ2˧Û_¿³0T‰ ‚é]¶YµÁQ«íaiYMSv@ÑÕ0ØZ·Lž@ûªƒ*ì·6û 6[´IÕž§$BUÖs¦цPÃÖr6™SÇ»xúÒ¬'eÀá@ã[|ÄuÄ1Å’pÊŽAî¤P{AÙbŽ_t½á‚hŒ}i€½y6Xƒ‡?æUßusõòOϰ:x`ÆÃÓêÆs«Ë m]EÚêz.X† ªñÄ{[>‘OYL•Ifáìg-ƒ}1øèä½R´Ö€Aõ,òx0J¶²ü6ɇJœ>ú†dà¼!~ïêRXѦÎýÙfj³­Ìzï‰}Ž­#¬V“S gÝL†5¨]=é.¬¶wŸ=º±ÕWQd1[UÓ?Ø®]Ø 68š‹ "'c¼¯ºÆÞ¾1·Gï=+ú"Zív’™£í°(k'•ó5ÅîÍ1ŽU·»Xû‡ç§Û|‚ A ›õ UÞßmÉñå†M‹N•òt/9 â©ãcÙû¾ÙÜ›]êSŸ)«w™K'É—šõRÂ~xæ]ER7Ÿ^ä E!wuÜ}›äNrá!šVYÕª¯Å±qFO˜îxZ9š}#EÙ¼á‡È,u0RUIÈ Kîܱ=ý4mÞ©d¶Š÷N/{ºJYsÜÏr9‚³N¨/1΃ªaåD0Zãru³ÔÛ›2Òêæk4¨ˆ||s;*™ÄÆûnAÍðh\ëš’éu]yrãœö B'`Ž ¨Œ+÷NN+]“¸C¨‰šbwe(ø¸D•rTƒ*’/0…Ó?N< 0›¬¬«-Q•ñÜŠ¡C¡ dõVòÝÆµ¥ƒÎOH1»6›À$ú YB™Ÿ pt-¤×ÛC$#¡£%>+°v„¶‚/ÕO¯SsÀvœZŽ+ò™ç½lÜÀD£>ÚÇxðqšSËrêdBpo—] ¼Èv+uå²ÎÿœKi(=å^óšÎî@Ê#èlÀ…zôÕ!¿ëQ}pg¢i%8QbŸÒYk-z mçoÜ=µÛ®h6\è-HZÂD7·êvÅef.ÀepxØe,,REëëÂ3Dɪ6´-uëÕ•ÖeöPªµ7Û¬ÙBG[åÛlùƒÃò¼xAO"x¬©WC°ÌNÖ=F}¯E—N5˜£mhˆ2N}¸3·>ès ~^M{ ì˜.Ç‘•öXk+jéÞb§Ÿú´ŠÙ]µª¥kvX5cž~VÒ¥hó¥ÕéáYŽí¿kL«£IPq¨Zÿ°ÝYMųn9{gyHESeÛUsÏNQeUQ™k‰­§ÊnË$x¥í7ÙªôAQá‚Ù½}[í PYÝ+íÞcéla#'©(ÙÞš®§i P»³$]#й[ææGæ/yçíÌ 1-/¥IÔ“Ô+âÔ¼“X&ó¼¬ÎE" “„±i"3²\ ³QUñßQKE×—.ôÿÂÀ—ˆœ—ÍùñjŸZo•ÇÔúç<”yfÁØaÁn$7L‹ÛðŠËB8[ÍèøØyeÝÈêeY´z6WW“©>,ú'ÊF¯ùUÏÉ— §úãÝc@u1'æ¦nP)>õeÛÓ±LÊs…[ë>ÕÝxšÐ8Ù£í Te\Ot²,üKö~õœË:­K«{Ö†›<öЬé4¢[  »ž ¢,r²Èže™h’Æ–M¶± /ÄãÓè5TºÎíÀZ®ôv}³XÖ,'÷.-¤Ú¥~L}:Zn…¤-›4¡j á]#Aý·Åº1hTÑà„\qZÀhê«zÈòõÇ䯓<Ô\CW´§²;üF^à>%ݼ7ÝPž• ÒDå¸ûèPƒøšì&o -²WOä( .ô ÞNuH‚TÍ2‘ÓDÝ6JSùÔå}*ZÍ£Qûe'ŽëÏ~m+}’¼í2f9ÝÔØRc¥ ʳ$éé.w”âáŽÁÁòm¼îmØ;Vµz?;‰ª î“Zá$xrHr| %‰] =ªfh—_]ƒº$ä[,ý,tðf¥Ö9hzM…MXš<ÊSٚݚ>+Js‘—´N²<£A¾¶¬cÒŒZ·óH޳¡@ÏE¤ƒ¤º›œû`—–552(¶ °‹·`yxùËØ7Œ©Ç€!«EgBû‚€æÔ“â":ªY´€%`mqùWÆæ5÷e¾ Ÿ®Óh[•r7Ä¿ÆòKš×óaäUñ“Ì©z>Ev: ¢ˆ§ê15©ìR Ó#Ö=|R^Óñ¾"„W•…rnãv,Øv*ó¾&ãt–Õž¨…¨VØ£‡æÞ,A²„Þn\ž=rýÑ •%£r"ÑœÈYå:ÜuGÞÉJäUùaÑË­ÿXî9†’&° J4ÖªFÒH½èg^R¦J_¦Ç:ݼx`—O]Kû5è}©—ÚF¦ŽNüÁ+O—ÓäVú2|¢Z²#ÑúÊ«p£]5ëÒμ3o»'h¾6l¹]>gûM¶¥!z&.mz.áRÓ]f‰O‘}¹nî—²w=k汦‡ä»";[ëd–EólT©Lï㳞Éå éÛªôxeA+ü¥¶˜B”< ûë©üZö€HeÖƒ(eÌ„!}Ô.;°mÈÙúÝ̨š·”@™ü÷5œa¨ËñÈhÉW•“ Ùm ³<*©J±©êàøÈ<ßn‹¶ë Umí^zPÍöÜS)N гúªÛy2ZØÏÇ4ݱ_ƒK¡+]§³ì„8Û‘I8„÷v6Ǭe‘Å>’ªnð*už‹{»++7µ æ–úúÜO)Nõ O>Ucrœ-9øö1+>èi<×^ÑÀ¬)ø8FÅß –C:J¿«[¼ ©Ïà\'Q¹‰ Œ­ ªÍJ?oý=5ä}ä¸üߪô>U9-0$ÁA“3ŒåÜ`² Ea«ìøºÊO6â²d @ž ¨Àç‰÷Œ9­‘NÉ»ž9u`ž‡ýx·ôzzú­) ;ùYÓèbã:éÍJgQA?kîë#P©zþüS“lè<Ù&Ú"•Ôቬ©‡p÷7Úbkã•8œì,&´Ò>Ô9à*+ ë²O’ /1îårörOkº ä†j(¦å 6•y¬Ù¢;!èR¡à«7P_¿™H¤]¶ûm[Ý´ ˆhå8[>Ùñ™ù¶?–§I4Žöšúôl EÍ:¬_§ul—¸ºžÖ$é¼À",ÊG°Ñ²ú”5:Û@—0_Ñ^¦S1HÁIbw°ÀÃÌ£€š·<”{ÍöcMvWWˆ1Â;­è±‡,ÿ±Íà}ŽT°P›íÜÀUp™*ð(QÓU÷²Ô;õ¡+ÚÞ2+ÎuA2 CS¨i±Ý½{² à?çPjÝ®U[‚Û“äHgK‡U™Š®Ño_àÁvOØæ‘ÔSmÒ8{ˆÈ$\^Îö£3ZXbM*¤¬† ãËKÏ ~ãùañžis"™hÝrŠªvAh‹ôX‡]ÏßÎÃÓ•Àn•ó ô¿›ª´yŠÇ=€äÒ°,èzXPÅrl³½åXŠQ³â¢Wñ>¨p½ ÄdøöÔ²Ù ±¤ÍÉm*‘ì^púü)Îëò¦ )•3Æ–Â$#CõÅxÉS–,«ƒ¸Ã}¡^Ä8%¡ôìô Ëw€˜Æå†-œói¸—î°ðS=7áì×ãfÑo^Ébñ²V"ð„ª75+áË·ÿgiU¶6ÄÉ%ªÚïÕ;SäX\ð¶,*Ý•Ut,ÅV±é,}¹a ;ñÀÞaîݼxÌ{–WrîO‹©ÝÎÇ%*IʦW½D5nÙrýPííÖÒAŸ³…D,”$¨p®™ Ý"÷«° Dòª³;Àt…ÍvÍ[÷vG,ÉoÜr½³j¥U< ^™l0o³îäÎ"‰åö ¯CÙ‰ÄöÒô'ˆT]àUA¼àÑ /G; Y«A& ëf·åg³-äV âÍ.çeº.Šñ$y< »5î. E–†Ý_9x nrÜn;e¸—yä’Ö]µŠvlªiW/ÕÀœnÊ‘RÌè׸ìÙÖqm¨Rë¡‘Ä-ÁúlP“£([Fu)’ Ág ÚCn›~¡¾ñ¶“T“ùæ®·I¯Æ¶/}z§=C>ªýd`±¾L?ÕG±3-žäF€o·§jèk@ÊWû<0å‚oM„Á:¾]¥ÚÉÌ÷¥Pyæ:Ö™0çP‡Ž„c¥ÅËîÑÇ6aÏR —…h@èä®À÷¦qÚBt(f×ô€‡Ú½ª{hÀªi¥›Òyˆ­çvõ¨ü¾yÜfªRh³ù¨r)rõZO²”ÀõQv’m_æQ§Ø ë¤S&¡ŸžÚ'“à“M²µ™t všäË“ø–­ âsžÓæ1-¤È¡8n Ûè†ô*ݺæ£XŽÅÝ­TlÛ‰~8캨O™s{’S÷ÈtÚ—EXµ!t·ÅƒŠúœ»-ššd\ EÁù ÑëÌ›ó^)T}j“§N13„»B惟šìüâRÀVÉÏ·L©ª[ÀéÙH¶:V³ÂXX/Ûe0ÙÁãÓ"™ÀB¦¸l©:ZQÝ[Oá M2d®é­ëdÐlÉužÃ-ÉÁò€æ ñ¸ò˜˜=EÞ•!d¨çj³Í\‚Åîg5²jùgF IèF¼Ýfn _ß6- ¸©lG«Ó^„¤N¶ÆþåÈÜ/O\ÁnySÞv:fi·\×cXàzjG8UÔö)—bUÙ ¯Õõc¾È›Š­Ðe’%á„5O€Å©ãªm Ý^2ð§ø>«p®Ø‘õq›TØž±8¨uÝ–Û<ÈØoèß#¬ jvC A,kBš&µË£÷TçO¶­9ìä8z[íÑsÿ˲ä¹Ä+=ù³Nr¸´‹%È áÇDn‘9nK|ü×N%pŠüöÍ"ÊÇm©SÕô¶ôå­‘s¯»‚Ьä0RQÕ$Q IE¡ß•dÓpØLÖµDneWÝn¢¿þ˜æÀ{•…dŸ¬úD9îzÐ’”+7Qíäðj7·˜ÔÌåï›Ó˜µ ýÛÉ‚V¬^íÂÓ&u[T«Ç*Òº©– ip¨’4/¡ä¥2]wm¶ï² ]‰`ƒ®#Ú1\¨9á¸TþÞÎÀJWÍ·Ûz¾J‚lÀlߖ쓾¼Ä;õŽö;“˜®'è¤8+k±Ö±ƒkµÆ¨þ’KQXy®¯©‚LÚsV1E­-sòͪ"[‚²lÜ3mÖMYJòuAJÛXuÙ£p‰Ê_z˜„±ŸØŽÈ6çqyâ¨HQ)=ÕÛ~:hÑ'&v%Á–Ÿ«G‚P7ÏßO«›×ê ´ÁôÏ˱9õÃ{% *ÆoÛÇ<¶KÉeKÙŽ…;ï§çI°”¼=!…ÿèìêè1Ð hs˜ÚÅ¡€dy !$@ŸM²Ís+°ö$îHÅö²èJ“øK到DZ+¹AŸJ²óe“”Êf§ú•§ù¹<ilö—ªVŽš±6 Šgfë A;.§]öQ`Zcô´d‰39T÷ÁºØ$s#¡DvJ9–çÜKÔ¶n̽)äªHn²j|/“O>d ûmµ…€ ¶›•]Ÿ/uób°¼Ê~h›:\Á2²¦¯@ëýé4ð°Æ„LÞ!€$Dl …׺‚Ûà,ÌvÝ«µèUz'Øú´¦üc ,ê‘{)ã­£éy>Ãf°éÛTø§É/\98Ø ã[u\b +䉭úèb2>çXCM–g·Ëhš43„™µ,¹ –Áî´€=ÞôqÖsÉÖ’m¬\ó^êÆ·IÐý¨%k/Q·éÎl-fu\›—' ›„ˆ;zZG·ŽáéxÒfå$Ä=ƒÇr%ÓåúäUN€5\<ê>X{D¢õ„KM:àä¯5Õñh¶Ûœ¤x¾y)5ä¡Ö°%ÄaQÒìΡ®žµ4¸ùj#Ó,—ûrXá'ÈÁhÿ²ç½ç§yx²ë4 ÿnMKC•m³¬rvbÃv9ÀrìœöÑ€°£¨t·ªJ€j¬èw*‰A’ Ü1ûe«@@•.÷¬´L-?•{eziiØÊà\G\à„À-¸eyÓæ!ö‚ç3°:Ô9ôz~Ü&ÓÁ]À‹Ç ®$WO½!UÏ®þö8 <»v*qç%n¯vÇ"£ê$Ùiš}»®ç7Ÿä9¸Èmuì92ا[¨š šdñ§{«p¤èñáiZ:\>KPö?©_é`ZæÓŸ}³ mûNä‘Ñ¥zÙj›nçÐÀÙû-ù^˺Ë^ÐÞcK@Ía®ò@b·¡¬lwGŽu[ïÀkìs]šyö5¨’Gà=œÏU£}wªÄ’.õ \Y®Q}åM‡±”Ð6–`;ûŸ€ÂåÎIJ•Hv¯Ù p ÛÈ£—þl‡#âùf™4 2mz`•,\[¤M*¸Úý¿®¥š‘lÜö€èV"Q׌G•¥hËsƒ»äÇ£ûmÉÉÛ¢úÔjÄ·g‡x§@²‹ÀèLir†DÌ9«-/ ÜAéøc;HÄ–Î ds6ôûî`ë€[*AµŽ ð2•®ŽöLÊÌœ°¶ Öç €†-#:Jõ_:€Èù A>™h—Äõ.ár;«1­Úæ––ê—Ôa‹* ¶cy‘Ü‚>p—žztèçóØf½¤ðÙñJ¶Õ‚ÔJÑK‰ ÀòGÞp ?£ž$z‘·{C/€'‘dôxò\ËÑÃ-ýŠá¸l_4+¸Õ±9OõmÒØ :.z[âsƒy$Éã8l[°÷OƒÚ°•Ûuõ8;{C à•©ˆýé‡eÃLH‹swBœ-Þ|Ì?ÐøÓY³\V­ÁxÒåx†eì©&½$|&¸3 ÄS¢¹òAåMëüV¢ã2i¼Bãú³È•Ý]§'J"äýÞªBÐ×ÂÁz×"Ë3þÕVsÄÐø¬¯q{WP›5Σ,OÇÜëá°ñç,Ç"-$LwLrz‡È^çÊ–KP…ÕõÈZ {ƒPfk;Nw_&Hµ‹o%Åmë²-ËÝ÷›[ÆöмjŒ‡Š©@£^=CÉUÅ{M?Uѹ• bëB©×Ðåc<ÀGl"ê€ÄÉ%LÙY¡û¦¾LÛÓ‘yw–(bÃ?öfÇÚ‚ý§P¯ƒÊ‘Cì•Rœin«‘ͦ iT#{kÏØ©öó° 9ŒŸ„FŽ)’•¿êåèî×HïÊQåâzjšÈp+/'ý™ú ±n[m{z¹sAÎÔÕÎOÜŽFÚÒÁíWÌA•]_vm¹²r´©»‡f€]ev®iKλ²I©!6üMã * v¬»Cs°ó(N“¦©¢¸6ag§Ü¸mµLاMÆI÷aÜ÷“…¤lòGUCVÙìÖ´«+X€…I<(†p-9+€þÐÂÁaÏ)–܇ҥ­©Å†ëU”"yX­ó<Áˆ´ÄgÔ •lG²°Ó^•¸oŸÂà¡ÓE³Zœ|¥]ã¸t”Pbµcv+:v’IÓ8©å K“u¹;j—f€ bÝ”-5\÷!O×Ëa¼¢o Fw5¥ˆ7kÆ–%BÎV𠳄4íÄømBS䞪cœŠ÷ã™yT¯¦}3[UUɯ½í¬Ë£í›Œï¼UKwB–;êLÝ^—`ì{€ò,yw=‰eÀ àgRDm¹M‰7åPA¢Š¡EG°NÏFu Ø©G0oS^ž(ŒÚù ›×v±{@¦jIÞ¦ö¢a¬¨êºôûªF˜òO…³5ú#ÛŠF@9£ÒYà,6‘r+»5’¨†ªS‚'|‘ÏÁNöÙ3rЪÑ# –ïä#°‰¸Ùð•yØ`T÷5´•Û6H,,ÙúŒßQWO*8´frâ§nš>ö/È:’Sìs*ê´+>ÐÀıÎCÕÄ#Ìê×ÕjË«Íé ‰JÓÿ®½–ÒÀfêŒÝ'ÞY:e'‡ Ñ=gË76Fy¸äêÖ ‰±÷a<Áî«L#»ÞÕ#÷Þ*Õ‘ÅKÊv?&‹{ö´š…“]uÆy¼0ÝPnÅì﹎ëôÈ(@àE·¨ôɳX+§$'ß>äú&Ýl­Ð–œj‰«êš²[#sÎ1¼ƒõ6H›,þµ|‹'¦·Õ«’7²}МÛ+êêàÚÎëÿнzTç‡ÈÅ,ÍGöæ®'¼ðítÕñ,¶±¦ ³ †Á{’xš´–q ƒ*d<5q‹Vfd»Ô¶¦7«hWP”Ð9íb.mI«ú†ÍB+iÄc'¨í¹ÉLÚ.ÑѹꎶXå€iËÔ¾º=7fW3” 7”Â=¢{྆¹ž7²ÓÔoŽ6•pО<3õËeB×k<쑥Ǜ» xE­qg’íšQV¶_ÉQCz”¬ºÜœÓ¦!øÔ´™Z rb|”é…Í)ºýdÝY‹VÍÒÀk¯Í$'5™ÑÙNoBÿHŠQÙ. ÐOäîÇv9DÚôgÒÛM_ïˬw«¦1‘.¼%O.,NÛðÇ®£:ËãôÇ­]0Èyz¤ÌÓtÖÇ®GÑo]¯´xœ±ÖÙ{égo«.ÅF Å —ú™({­viB…ã9ó—H õ´×Îz ?¹l<ä¬t`žÇКJ}²iaØöSM’¦:Iϳ¤ì³Öžïœ'²äf<¬•((*Æ­|ñQ²jê*¤æXŸ¶öhÍ5µØÂ7²ì$YZ=.U¡¦#]ú$üª"ȵ“t«*W¨+cõ¦zQåpóhJöi¶–" Cͪ¦ Åy?ˆÔ}9äõ²=އ°oV³µ¹l©EÙZ§m %Þîθ©éþ°¬JRÙÚÑuwÈDº*ùÃÞ"KÍ©°©šz‡ Šibã†,E?¢NgÏim­ðúJ{l؋њËC1S§µ`s¶ÿVTx½áì—¦<ØäâžÕ=mswš›Ä„²„~É—ðZ´ŽA9—ª11kýw¡_ê[ ',ÕõÐÂù6 ÌTÿck«»Øw]e¡½ªJžnf®’·óŽ…x^›#¶ÆÙ€k業¦Uoå>WŠf!jˆ/º'´ñÜêÂÃò‰ùzg¢ºÇ÷ê3f«êìgCèÜ“c;Zª©Cv$[«X0ª¢©§lÕ7ëiäÁQ!}µS·âøäÐî7{‚dÓFÕÃhZòÐV`7¯5×%‘_ʼnײ.nKL,Aª]i0¢_j¡é{Úo»_WŒ”7±C³²;a°‡el_:¨<À}Α;À žà¨ÀÎòÐø-êíʱDb{>¬˜?õ¬ZgÁ“[ø¹¾­ p¯R–5¸´)íð ]·DÈ$N)!°Ë—EV•vuâ÷£œ–_õRKN1˜:*‹7¶¶4й­,LöƒÂ{·¿µ«²¶†¹ŠQ;t¸ÈŽÏk¹ÁVýO!Ú¶ ##v_¶ƒNÅgÒ9Æy9 «Ã—Ç¡º’OÏjNqæ/ž26-%¡…Äކøè«í¯¬è[Êâ”&9ÃUDF7¤±¢õâ‰oá˜"OÝ~ÕwÖ¯X½¼R¹·S¶9É€4h¹³˜z÷lΆ§nÜÚýœÒîQ—-t›ü\öÕö©@º$QÅ[½õ®¼ò² g%œç87gfÁΞǩª¬ò.ö¤FßEGCnYP{Œ×Í·Ýl’¬W€W•ËÃB‡=‡îI°Mù´¿®Y42¤ò[æBgtÛîäqÜ¢4ʉéçrõi†å¤xUŸ×!Q[ºA5º1èeÛÎC}M+ÙͲ)€ÎîѦ³V­Þ«Ãin4C§¤ÙŠ€)¿Íb=»vOð·¸XƒŒ×E¶<25 MF[]ÖÄ>©„ϾÄÔ»"8É1ZVŒ½y¬¹[ žÉ9c¸£"SNÔì ðÝZ=µ[‚g¡OÒÏU7ôÀŠEG^£SAM±w}ÞÏÄÏÚ†®U‘+ø@áË&8ÃÄä4kv¤±Ù€’*FS¶å,À ›ÛéQÜ•¨#ÕFñªÆž!w ÙëàQ\c)u¸kà/8:TGJ·QØÏÕÑJ®TùyIoJÞi·üذ}E«HjDY[+êX; wy$ÌÓ±aƒ²K)€s6»SÇyTá5ë290¬ÿ7¤Üb¥C¢qÝ!ÛU—”‹ ÐÔµÏÿ¸yhI s;pÊZÏæ*v‹,­d+¬ÊÆ@ð_´QÁº äHr@rgZ-)ó¼]A<E,ž™ˆßreW£ÃÍ–=wbÔtDÿ²àºx|ÄY¢dÙ¿)S¬_[>íÔº°÷%€ÉÖh²M°%M¥SUS ”"ñ"˜ØH݈µËëœë²‡v®:7PÕ‘‘f3ÄAèƒã(¨…'% B€ƒ'HU+e{å€FvWÝÕƒð¤ÝDÕd)Yj»„‘ÄZÀšs!J@ªI`»LÚœRÅ•ˆ9òÚ®Ÿ´õ¶ßacDU¨’B#ãa-óáöºäK• €ìlê›è çM16¦5[[N Év€Ç~` ;ìN)ýY þä ¼×ƒH®Þ[Bü+Qa—ЭF&XûªöÃZ”µéƒ´VÉX- ¶˜Ã‘08Ͼ×ܺ¥À§  T+}53æäéAá󴢈jŒ;yDóÒk‰ð>ÐóÃI;2Ô¥FÔ‘€'q~*çAÔU?8è8t>M|p‡L 7òqxlªØQ”¹7"_Iï:"&‡LØR—§ÎûœÎd ;ÑsW͇É*^B>-öð£ýÖË©ÛP]»}ºQ_¡¨b¥Âº)uÙ„íalg°]zÚ–¿J–”ª¼sYÞNÏ­‡‚CZ˜«z ÆS; ^ë$ÇM¼ÔB“3#_ZÔy¾Ó«Ý@vÀ s7ßÛ‡›8Ô¦ LŒ]Y2p޽ €«Ïò)~xΞ¯gvµ^ ;â^W}ih«gú$À.ãNäN$Oš‰À…mK µIu_*+:‡®Vg2µ^<±Pr\ ­jŸ³ÛòZ/m©÷UmXºÍV§5P?ûUs*’ã„™ûÑDÏþ¦º)еn‚ hž6l“XU™¹Ø@uå‚éæO pT8æ!x›Ýç[§Ó^úT\œ|Ø6-êz–yhÚ›újè±ÅµW"4vëÎ> *L«ï‡'$àËY2I‡òkŠì¶^õCí¤th´<ó¦xI·+ÒódÍVn%‰`‚«â¿ó2àȶ§"•ƒey«}¹+N@^hªº¹ˆã3À¸<Õ^óIh§ÅM¶ÚoCášpçmHNC¡œ°9"܈µŠ`‘oX »¦‡ªEÊšD§¼án Ä»ª¾<‹äXdCÆv–]éþ®9“\šV; ûjé”.’öýXE0 ^ª(mˆArÛ©ôùÕ¬5Ê µðèž›ªJm™›°ckúÍ.Y‚jG…FTçŒÜÙ 0ô6¥P @¨7„)z8Ö›ÖL]½Ïæž6˰‘¡ÎZdv\ ÛÔV ðfIZÇ<˜úål )6ʺÔ[tàâ@âS $õ2QA•ªÌ*ÔÉp··d'ß\«÷ȹEî Sð îüqÆC颛:ärwã>+û·ÛB¡a«ß¸â!_S„Ù¹.b鳬g=5ÀãI [±=?È\Õ\êÔ·4©YHkcŸlb™Î€hÙêÕµ;? ʆƒ•¹)CýàVÀ@%Ø ]×+Ù2©fÅz5ödiX™”"!Âl\`»ŠÜ@Y­Oìp΀ó¤/%¹+èÉKîP@OÝnrÕ8Î"?Ãv 5RÛgð`b^êTéÚ­í&kùvåÝ«ÆôEedb¤}ÇYM²¥2·Ö˜¡´›ËhxDŒögŠò®NrHÿ±À^Ï(kSãJýn kÄd/K­ãîKÆ4À]ãÁ·2“¼©Í_wÔf#™Å̵r·ã^ÁJm­¥°Æ’0;}*[ø¿ù¿ÿ÷þŸñ_~óúæÃÇ÷ß¾ùðoÛŸ>¼~ÿñý‡×ÿxûëí¯þj¼ûj¾÷ñ…ÿ쯿yûÎ/~ñrÿê¿¶í¯þ›ü§Ÿ]_½ÿ×W¿ù³øóðé/PŸ‡ø“~ûñ›×?ÿúÿðúáû·ïßýⳟß^ß|ä{Ï›üÚ¯Þ¿{ù/¿ýæ%æ—X~Ï_„ð¢ÑŸñý‡_¼ýòß}ú…¿}ùáּğÇ_ö…Þ¾[üæË/ßûÝ›w|ûî7/¿~ûÍëË?Ì¿ûùÇ?|üÛ—7ï¾òß|óý{þþÍïÞ¼ýæÍ¿ò ëÂß¼Ìë¿yÃçûáÓ}ÿ凷ß}üþçß¿ýÆOø…/óéYßï¿ýöõÝÇï7¯ïyûáõKîú¿XõßÞ½ÿý»?}úï_¿}÷Õ¯ý_ýö»/þåÝÛÿíë/Ÿ~ƒom?}ï7¯_`öúì¾¼þûËë¾üú _üŸÿøÝëúaôÛ\ÿüé»÷ß½üšàÒ{å_ÛŸ¾ó»×—~ûúúüùÕãËWo¿üøò¯.Ðí§WçÛ¯¿þô5OþÃÛ?¼üO…_‚ÿïÇÿú_X[_½÷Íúõõp?}Ò¿×ûû?¼üég¹½ü jüá×/ š—ÿøË?ÿÇ7oxûðÓßþòݯ߿´OWÉíùó•þî‡Çþ×?숿yùË×úû÷,Õ×—¿þieÿÏá_òøy}¯?ù?ZÖ¾ÊÿÉÊþÏ×3ûÍ7ë§íÿw?}óíÛoþøÃÏY¨¿ýÈ¢ÿÕ{–þ»ÿü«ÿãë§}ú«×¯ÞþöÛÿüÓ_~|Ãâ¿Þýæ›oâÛïçÛ?¼~õo?~ùõ§5òéûÿâÎúæí»×|ÿý[#ÉËÏ ˜ÿégl§/ÿhñ= qýè•Ýò—o9Þ}ùþ+·tþå͇oþ¸ñˆùêxùSdÿ}õú‡µt_¾øù»÷ù“>Þ¼üúý‡Íç¹ï/_°7¿}ã·?}çxùâë?~÷5[ýÇo•—/¾ãI½ÿê§o/_|ÿÍ›ï¿þñ;g~ùâ—?~UyÝþñ«Æoÿô­¾|ñ¯?}Õ¸‚¿ò|ñÕg_Æ—/^?û2½|ñëϾä=óÙ—¼éן}É'yûÙ—\Ä¿}ö%WñÍg_rßþôeä2Þ}ö%—ñþ³/¹Œï>û’Ëø÷Ͼä2>|ö%—ñýg_r3?~ö%WõÛϾäª~÷Ù—\Õïú2qUøìK®êëË¿X_þöÃBáÚ³,˜?½âîëë^¿ÜÄUš•»ExK=ýž̬X¤mXG²;ȶóS ©é䨫f}mfªµ™G½¦)­Þ#°¶ÝJEX…:’T4õaêC×ï]«å—7£žêb«àt<éVƒªC2Ú_¹ eTq«Â¸Ížy9+~GÐ÷a;¶®Ù N‡9"Òr+;«r{­òøq©ÀŠ}¤ þì)ÎnQâ¾<Æ÷ä ø ÐU {çåbQKrué´!vk:×s_>Ç´G>¦ô_—î9EßWÓ[ðÒ,l¯g?®2ÐØVŒSqÝÕæíV©Ô» WEÐsíݶñs™¶k°Rê~¶ý±mÿšª+Àd±#oÜÓÝ{â¸ãvß*rç” Î¢=çTWŒ£p½º0¤v›ÎsëvÒŸ9²ÉCTQ/õzô êÉ–¬AyøÔû²ºÔë—ßæJžt¨ÂXÂ)W ]Ú’îÕZRÓ…ÙSüÔsXÇFO…ç±Ê‚}çaYqyœ°îži“eì⎷+Œv_j8ð›÷,=^yMz8.{(õYø×½™yØ–¤9°ê¨Ý:. M;˨pCbáìIÓæb\Ž –Ù•r«±Ý°Ñ)J} {¿ë0ry¬dwÕ'…׬{Žó$;͈éP]Ï?æ¦ðtÔ›Y’öäàc: wÜ·«GprÙ–ø~§¦èw8ˆÒÎ)“6¶Ô¬Uòój•˜xι>»Qõn,¤.•*œˆ®ˆ>;™Î£Âöõ?ЧéG˜ªñNµ6#­öI¿Tö’ù¸s´µ¿ª^£å›~¡? !pȶ§ âSœKÔf(óL„´ô›Áïé•¢BX¶%>Ý}M‘g²`yÂv«ªµ³¿Ò°CrÉp¨áÎs#œ.IUKýó *àˆín[Â)ŒØœMY¹1@R]WÇ ìÃÉm+ *»ÝìKÑ«{/ö'WÒ¯1À&‹­[Œ"² x·9˜;mî§M„6.g±kV_­ÙœM`=î ^“­ª8á9M™ƒnª‚‹ã™ö'_ÙãpeÿÁþUHæ/Ÿ›m]GVÙ²œV-›¶$·Ð¿±\ê*‰7¯dBÝ×28®¯­¾¿Ñ*ò¶ÝÞŽ:êÀÛçSµ(­%hã’íûãD#ÙZ m@Ö‘Á•×*GÙRÆš Z™òl}°`÷fhW×gܶjïXze€–ް ¦t³v„·Ø\ÓiÊÆÛèð(Rd(-Ê@xíÐ*86p»-Œm[:ýÜ[Ç¡ËóØ@ŒJú:î“lÉ3²ÏuKØJ=m}éµ×ºMå&øë Ë#~$gxËÒ §õ¢¢Â-аC¶D6šb)kÂ‚Üø¨îQT)Ø­”Y"È9ä¶{ë¬@ L€&–Em±+o|T®×YKºGÒ›ìD¸š£Ï@ã›`ë°Ÿ6†‘Ÿòlª~IðÄjz½³s¸R¦ŒðÀ­\­›ÚÔ_¦D[¢$Îj»ÈRvà_9Á¡*u úFžÖÓšEõqwqùEîR2H`rZ¡«Sk»-;'Ua_‰3kXûR¢S¤¬“çRŸí. Ûç£x•í9¬´%cIS§Øa5j)î Õe€ÎiIsð ÒÒÒTÜE àeâ&îD@VT.^cðl"ƒ‡V \E!­ÄÙA{yX² ¯Ÿ«ýþ²%ípÈ¿jdÒíâdôR­lM¢½¦Ü«‡?ƒ{@ð ç8UýVx Ö¨ä/ÑϦn÷9ĉŠö @K›–ewKx\§Š&ÇÑ•š u» Û&+)Ë¢]ÊX8Û¤_ G6`Ñc4‚{ÝŽ…:Ç{\[¿¥sÁ^'}êrYd\ކí ú— ü1ùËYSÓ4CsÎL¯^Iö`Swe#€LÛÂåIñHòµþ”›!Çæ+®7…™ÛO-Úwí·+_ƒ rf¸5"àŸ~žSÃŽ…æ'vv³X3pS7V¥ +b]»v%ÃÚ ™†‡kB.ìOÇ`Èvwˆ‚²ÏJÛ9²íÎ"ˆ€“ª³˜]üÞæÈp˜ˆH?@ˆJŒÙ=|ÙUsT•”зy£ŽÆÛ4%¤¡RdÊbÍ𞎾H븡@1TÞ¶™D:ÑŒí<bÍŸêÖrõÎ߀*Ž¡#Á\„§K· ªa%°h†D{~¶¡äð5ÒR(œ—ž×Ê–ѰÕÜ`®€M)I‘%ƒ¥éÌ@ò=5ÿÝn§œ³q‘ËÛ­-']ˆ ʼÁàWö£ˆk̼@Äö¡€ýuܑϼ)êH0e9ͦ½XÕHCrVxŸhx;eÝe¶†r‡Y;<ÇM•Ú=®‰oçpºªLAïaÏxBq™³J„ò — S—ˆXY=ÉJ’6}í2QÈ•½µ\hà|ç®m ˆòiG>$½¶¨€ERŽiÚ2Ê›©Ûʯî\³ýúR=™Ö´³tæaC³íx“’G$Ø­Û)1&\BTëQ«;n¸€KpÄ“Þ`ÆáÑÝ4Ü> s#NõÏ©Z/ø$ãAì¢*3SUÓŒ-(€¼;UÅDí•ùî:Åqò@Q“D ^ršm¦ŠT_kºääO2T*.;3ÖYs}¬h ¦Û  b¹Ûñ}c3—Õ•é ìƒ7¸>46fñu®€ô¨©šŸgƒð±£Ç‰ë\&+!0õÝvt£LëûNöùš"óVºRmU‰0Õ¿ yòÅ•³M´C‘›Ø>RÈëüæ\ÁI™r»öœPTóo»´8„ ’.[ØØÐÚÑ”âi÷ÈWYÅ”‡žÌSU•“¸9»)gWrÏÀlú¿'ù}_JØ[:µó¶ÝO]>%¹€Šú…k<§©cÖ§¥;¢ SybU¡pÅ!E,6òéîQ•MÁj L=u1PYÜ<}Ä5R³ÎÁÙ pÅÆk)Œ¦»VÚbÛmj\(üñpzJò­>ðRÅÖdýt’‰ Φ¾Ô9çw«žpd°Í¡Wy†z2ܱKy3¢÷âZs r uÙwƒ$=ê:öy‚ÖÕJC% Sª­ØuÞD+±Ø•å6SD•óàP/ϪÀæµKJ¸ÏþØ¢˜6œÊæ À²ÐiÞ…xÀY@d™]Óͧ9íQ»ao…ÔAà:mn'¡Í@c#µã¡µvȤŠ6{Ó –¨Á¶¯Ž4ìžçEÛëò2JkÅ ¥ ûïú×9lÌWÓ¼Û,t­fI®”¤ÉÀ)wâ.±Û\zªšè×y´«9} ݪ‚ÁÅÆÎ²ð]‘8OÉÁ>kx’Ô6\⡳'çÉ6ü9äB45—$ÑÀ¹t‰$ëMfk›Žâƒ’él¦Æ»1ód[öpö¬I ”tïÛ¨éÊ]¹K é0¤³„¿Goš ýga5]ik4DýVEq3ën_žÉà·äÌ #͆êÃFNÇÿnEHªdÂv;0È÷HÚ†âwªuÝÇ}A1ƒSZ%E|öÛS·‰ýØ-£«mWUÿCðfp‚MK¡cè%ZÒ2ÉXÚ4N(¼»ë⢥ Éu9Ž’MM–Ä:ØÏÁ“é^Ž2ñôU¶tÊ\"c ‹”¼g•ÙLNŸf×Ñ1ŒàÁ>¨=È\$šõõBt~rèÚj¾f¬°ùVN…¯zÝWï=‘(-Oøâf#Ï{¼jtAÞ"Gçºq•iyËòæ4ŠhÝA ¤ ù> 7:l¼½ØOºsç¸Û$Ÿì.%ʶ P§:ѾCñ ,-9Oò¡<~jäùDêHè ft.ÇpRí­ÀÊv*ØvjNä³×.Âá´E!¸Ç9œ½¿ë$?²3>MHæKßáЄ ȣƚâÔ=צ‹‰RŠzô؈ép+p.ƒw^]³Þfzçæ£FqÔê²cLÑ»zë×ôÖaÏOOX k‡+"vEÂ:‹:4½ zµŸõæùæG ¶Œ²Ú:èXš®ÂD Š~Šâ[ì}»v«ŠU+¢Êçcó€ÍȱÄ/ÖˆÓòpAÐ[‘3Ê ƒ–^Ê.xþeP½ÔQ€3LîùÑlE…$[(“ô;[ýdsGžÖÑÛÒ ê0ÿ{ºµËŽ]gbÿã*ò<Mø‰@nËö`ÉvÙÿXbÒ¤+)RlTÍÕûy°©<‡YsH£$2™¥¬Ü{ßûF Yk®nN ‡Ò+—ô¬2H2“ƒÉ:ÖâKv×uÎ xÚ.[ ([]LdU6ûx’.‡1 Qº§È”m´ÂïzÞÑúNÕÉ¢‚ˆ§…ô®$AQ!œQ¹ÌÏ7*B²sv;Ÿ²lIOnÀöU«Ø(kœàæK/þÞÆPVgÉÞÛgc›Yö©B”þ› ü{­ È ¶”îT¼¼\GÁk)³L -OÛXàé[ƒòP²ÃÏ[‘X0+ ‡d6N1F¨»ˆr#Ç +RÖ÷ Un‘­xœMˆE4¢p6°6«ƒ£–ô¶úíê8ëaBa9Ùó8ó©á™÷ã? ÁžIŠ?ÊÂ-;m¸&09]VQ³¤¼œ´{ÝG‘A*¼D”¨Ä¿ ñ"@Ä:ác+ú~‚çN¹ðÛó¸’,±}T[t+¿Qu×ÔÆ@ò!-É;}¤¸BV3è *¯ÊîlE±”U)Ü0 ëŽç¹9xÓi‰Ã”6R½ïˆË7p6‘«zu±ò,rû®݉u¶¿Ûå)Ö×üts&ŒsJÈÀ"Ær9Rß åaÙB¬‹X|ƒ7Âåd'¢ðäJoY/“1:©ÃìNúFÀ©ø›{~ã½ôÍ„P¬ŸH'Ç3œòC¨™ßÄ•š+Y{ƒÊ”¥UƋٶ†Ñ}¯x5RwT ‡‹í*«òÜ„´N˜p—³E\ÐñxˆŸ·zŸÛ–\Ç· Ý[_Žu¿r)v{®ôû&§-Á— Ï­Áõ’MPøˎÝ5ôÎÝx6¹M_…>[i9õ‰å?VŸ¾á4(+Ê|c}µè«üX9)ßT?sl‚Y5Ää;¸ ðïKfº¥ÿW„ü›*Ôc„@Ä*X´Ü÷Ýrã.qÄù×%»Ù/qùGƒ!›²¥²pÏ1ßVj?°­þx?f&œ(Ÿµe¾ gw_ ƒn[½ûdzƒØå;Šu=,‚¸øY8¯õèy×M?ļvºN)÷uÈQôM0åßJ‹#ÌæLŽw¸kf¢+•°”~ ¯zr •qÔ˜T÷AUm Câ=x+Þt1šPŒ€ó¶ÕÇÃÆj^ŽA+÷:Uèà‡þeèÙDݾ*æ#3Õfq”ÛÙ,= Ï9Ho7Œp,ËQË´„¼Âç`[òÜÕ½aÁOë?†Wåt… Wå‘´,Õ™¹±ÛÂ6s}øV)œnáUAöfC›ðÉÊl×ó~ûut ¢UMܲxµ :%¢’òÌ‚§rÑiÌÒ*=¾·¤o;Ÿ¹ïCŽ);ãkC\V¢Ô¦‡" ;ìxÔÜ¿JؘkŽD%XXϵq7`iiTÞqÈÓjåó¶`'x’#è©rþqû!ºsg<¥" —:$©¶_^l)úð¾·b™Pã \Áív8äÔÅüÄàE“ˆt½N¤ñÊÙN½{[õ{Fûäšé K/Œ%:Ái€ƒíxŸ ÿ>Û5*HL˜Î,·¸£]D†+ØÄÇ~EarŽýít‰ÃÛ3+© +’õ¿ª>g C»„ü\ F`e28i"Fj i¢•‚‘Mcbûõš?±‹ñV”@§Hlë|­(ëé@¾l™„©eå«a8ðëæÒ4c>›åÍp’'0ÏÊQß–²ÎTJJ ÀÐ¥ôCræI:Gtü˜X—›ø;tªÊ[œ&!‰\rYX-°<¯ì½E€¹ãÝ‚b0‚›¥[õƒÝø$€•‰•¨ÖãëTN°[tH±š#êüä/—c©`?™Š?ËP*Âr0XÝC—Äýå“ç…)òŽn&î3E«yòÈUu9†T$Ÿšr7W©e)ª&bžÃÍX/ÌÒQÑ~'?ù†)³dä)°5©"+ˆ›RLýä-–|,jp™i¾¤oJmVצèÿuœïºyB šÞ“ws¬WºGu'¸»9Yµ]Ar÷ÀŸtçÔä\JÞÎ-@¶j,iqähuÝ~@˜ë9Üä ¦¨ñÔŒ§è¬ÄºÏ‘¦å‰ªöÊtƃ3`‘z… sÌyÀc˜×$öª,‹Ò¡üUï]*uŸJÌ$ðî«6r¨E.“âŸü½ãUCâõÔ­g¼„‚XI ™\úÜ/Ð(7Býk¾Ñl¢‚#¨o䥛X|.áËý)Á7¾:¥äÎN|yˆY-ª²Ò——Ï2Sèϼ؄¯™­zH¥üÈu\äTóS%ßæg‡ ]’ÆJo¹Æ(@ÒõXáxt8{aÉfk(1°Ù’¤ºPHósÖGƒl)ú±²•†º¼-‹ØN›u_ØaÉ%”*Nɯ¶¢/æ¾Í5І(øˆóðòO5¦ „Èeó¤KvqµÚÚw²>Ê© 2b(A—}ce.íÌ,*ëbÏØ‘Í8„vMŠ}ÀG°ŸáRâ ¦k"…®ªÅø6L•¾|I6Í­/sa)¦°¾ ÙÅ'Šû¿Õ)=Î#÷®—™%‹,";t%†| ¦_„¿ 8úTkÀ„Q’  ¸i®:©Ë”1à–:Ý¥wR›“dšÂ3›{¸âúùaå‘x ×´_MÛa1Ô­;´Ãx?îªQ>Å!Ó)Ø0áÔpï&ui˜ñœ–©Ô”Q*Èð>næÃÄ ê)`ã„rSøÜл~—‚÷õ‘ ORå~fR±h`9Í×ß7n–I'Û]ø²Ä„"C%ËíÕ€=²Ó°Ô=!3›˜è›V„ï'ƒ'Š5vÑv0a7—Yí¨ôík( ½» ò ¢zx8mΛ>UÑcÇVŸFì%Z³4äü|§Ò{E£¡ ’z®„‰Aä4ÕÈüÈu<ê‚Ë,j=Ðú§à¼CÐ0ñ ª¸c²T…à*JØšZM]øØS6„d{†^üÄfÅÌw¤î‹0#+ZÕÐúHµ×¤§ÎNÔâ>ͪío«éÀòaøÕYöW™øºŽv´‰ým…@ACðU`Ñê_V¶_Œ5A¹†…›Ç:(7¢¦çÕ± ß!1¾c…šLyaPe¶=§ÊÃuÓG°_CÎ3vDFL§¢Žì)=E 9Y–iÓÊŽuBIi„éEUw%üd¢(ª651~'9L¬ÄŠÉCcÓL=sÃ|×äEûv1§ó¥Rï÷Roã â³}ÁÊþ¨]y$ìt“àåð+Ôp•ú\Öö’.SÆæ@Ì@µ¢¦©2ðŒ¹®brDÍqŒâÑòQ•ϵùKBÇ£<¹(ãã°Û$‘³—ÀSÅwÞ’× vϸµ:W.ò*+RA¡‘G¾°v4fä•,‡†ð%âP±¤Š£ÿ,ËVŒˆ åèuP}ÞG½•ƒvÊפî¯ãá@ó£'Êç ¯£Õ –7ˆ£X´Ä†óß>œœq@‰" ÷[@_)½–(QkP§wÙ kÒ2Éå y4]Š+^ŸC¹~¬²tR|U^Óf*h>ó`;nþoò#jvžü©Ns²}@îÌeàÆWëÙJÞ¡ þG·ÑjÉNÂñr[%yæÑ6•› ù*ƒbE8bÍvUkã²îZ:Ï™xR¸)Åc/U°tc…摇tÔ 4 ýσÕÊYÇà?È9¦¶7ØÎø-§ÛÍ—–ªmq`+Îe¹.åÀC#ž]æg ݹ·m®V'µí?$X^¬`VÝUÂ(-ŸóyÉ‹ÈñíŽØ ÚüîÖAÆDKÀB0âÀÒï[ÙÉ¡äîé&ÇÜÒUãÞóTWhwÍ+ÈûD|>ûÛÔ–^’…HbÀEtþöŸ*ÈV%)w³×®y©‚€­jñÌ´í‰Àe€UŠ•Õó ’-±-¹ù‚Ÿ,£ k€OǸpÒ8CoʪKKH7TˆâmÙ ê4{² 0®Êxäl!åüTI’N‚(ù¤.$¹´àŸ L ÄÆXPLAËj†_·?8ImݲúöÆIðEu+ 6dk¬D—X°ç‹'…/Šv®>ÒÙ‚i°ÒêÄ…¸¥ XÉ®þÑ qìD=cØ ¯‹˜ßËË¥X>®÷e4›£Æ®æ°èÎpd -‰¨m†f}PW 0;ª±6U vžç'Dš §D"^”Í}SÏ™S׌ì®OQ#EÉ[ƒ)•›?µí¹P@íõÏì£P†âe/?,¬•Çjû€ÜèÒŒåøaGžñ\er·ï¯ÚQÔTŸ9#;j±»ï÷^NZ/i9Ù¦)78ÖDI!YH°Æ}Ê=)Kî×]9¾š»5ŠÚ7ÿB™öJ­²Wº3tg»óy{1–^qoùœq#[û tãá"xoê…‚çßbîb€ä3Еsó$½Üò¼ ȬípzR¼MÝäqÉQña?Ϭ­Íëv`çïõ*ÞÌx5‚k³:µ`ø--­ºÑ¼Bjá8Ž™…AVAäßV@·Nøf3ÐýNù9>•8ä7-XåT•õáPúYבVU )d °Ø>¬ï‚ Åû`n°b×eGì%K.£ÛŽtŽÁ[ïj¾eIÃlC’vG—ŽœY^÷’°"Û¤ÍÆKÝ‘©‚ ÕQN#á>1šÄ¥>ÂTüQ;Mà¯$ÿÑ*ƒ“ ÓzãíHF˜V«lе·¢8"ó=¾\qMÎÜüáª.r„¡Œ•,”pšâBÄ²ßŠΔ››ñ C¡ØŸ™‰èW «Üc¸¤AVŒC‘#Œ•Ù#Éâ·Yãñ4+°‡´ì˜‘¼ŸkÊCø^ës³"‡“m¾›¬Q2É4P9ÆÜSüâ á÷AžKþnЬ( X¹ÆŸÝ¥H e{¿ºÙ®ºƒEB•˜¥Z–U¾$‡¥:t†Óé(¼ÛS%óïxV…§ââÄ›­Ó8¯ªÿ’æÝdÎÄCëóùù¦Íâ^sTö‘0ëâÒ¶wGKQ&-£ZΘ~®¶S7y©†-é´t–½}“ãðiÙ•LPVÚ ·¡ãU÷Lø¨qhÍÔ½ã…@)ñxêÓÄY …mÝ%F±Š¿j¹ìùÝ€>ï\{UÑýœ÷| µ•¤vÒÉÕ™•Ca?©²¤ö=~xo»Æ¿téUhmW³…>ã·¦M?ÒÓÜÑÛ«œ{Ëœ{'è–‚(ÀMI;\ wÆW¢Ö¤90e>¦ƒûvD.pÒXo•v³´°˜¬m«<ì§éXí,C5Ig<å¨üISTJXYß÷ý6'ée8n…»ùUP¬9¸ÆëH´ç¼5'ÉÁb f««&꺗qu¼ö«Åç0K›ß‘à(«´à—zÎÜ(~£Ü¦^ë%x•剓hYÿΆ­N”Ç–Ÿh9Ûòœ½>-©÷¶9\G)f'â6•²Ó¾†éðÖÈ*ÓýØS†[æKdˆÒ±5‡Ø°?—Câ Ý×eÜ•&:Ø ¯¶ŒiÃæØô:Ô•]V6Ťí²BÈÑ÷0ŽT瘗çŽHXŽâÙÞÛV¦:øEƒ'»"¤¼Ó+ÅÛ*Iûðp'™ÜÆ ÜÇÌJ«ú¬lšŽ M¹Ã‰!s0YTÏÜM[YÔlw”ö×V¢tƒ²mÒ±]æ7ø²xF<ÁeOÀb3 j¥uÎâÕO±ÎPKæÒ3Üo»®¢åþ£‚éžÊ•›^Ž,Þê­ÈH|t¾_MòjÜIš˜çÌõÌ'ª¨Éq]c,¨²/³}¿™ÔzŽm¸v<ÏmÓ€~TPúvŽº]ßóº•`À…èÍ¢šNÌï‡évùo¶²:Q’Ͷ­Ä•vŸ 晦g >×!~ÿ‡Ê™R´Ã„ÏT<–HêNh|Œ\úgfg¼f!9¸Î^?ËÆÀâc â>9•y%öµóƒs½ífƆ+˜ä0ù¥ÕȧbÏÇÔ䈘‚ôœfP HYáæ —1`æpvºÁ/)&9/ ÏœéP]\ÞºûóŸ&Þ1HÆ þ´c>¦£`¤Õã(9س8å´A(ö>?‹@òtÌ<úDÌDØŽoâa NmHSò–ì™v߈Ív_6OuIæ|7ç`ìâ{Z*ä{å@TP"Ñ*Ó-qËvû+¶¡ôìå's5™JYóáðÇ­ZÞ05L4+ªÆž›Í3&I­øC«ËŠÔˆÂ¥‚‹•”—ÀÚ,ß®R½yt:°÷Iáµ(ÁHV®Øf¶íV²¯¬ò%ΰ‡fÊ>·²JÐZ,p÷ü9.ÞC÷gúwbçjœÉÙã{ÙØÀíì–ÕÝ–Wù6Zú”šÚrEªÊœ‰iÀßõýh¿V?gÜrlßZmæªØµ[š_å·ñe¾ŽF \¤jç¸È«*Å˲$®äéŽÖ€¿Ú‹3s7*ͰçïªóMŠÂ[Åßi]éÈMsôÕÉàÉ¹ŽŽSs´êóµa‚`Þ|ÜM,Üø‚ ¹-QöÓŸ`l0Ÿ-¥§Ô%D¬’‘XôÛ6§ÌŽv`ùbMC 0÷8]ø«É‰1“ŽpI…ò¹I¸ðBÙzRT½_ͼ-¾ÿR˜¼Øi+(Öƒsj›ÿcsrèɲ"çÁ9yáÈgäžÔÌæ ,_ÖgƒGäÁ°=AµCÌÅ;ý¼Ú.Ÿyð[hÑ©D‰:¿ë”ª£ñ¨ãGv›4Ǹ œÅ(}%Á=°Oâ”sý!R†€—$¹ÔLÞ*'¦-:¡‚NFlì5XÝÈCªúÍΞÑ ÔFÊÖy9¨o‹°a80”–)/'d쎹lÕ·ÕRx‰P¡ä#)ª¸¯Ð8«G¨26cÎËf9pÿuØúÖåC‚ó+-š÷ÆÞJÑ;Y{L ·‡óZ,èÙˆŸÓ}ÄxXôâº?¶[Î.)¼lãmð³^G7O„麠XÓg¤ûH¾cÈV‡÷NµaBˆ#¬°ú'%)ðšû=ͳÚqðÌCh±\8ÅÄp=ÉÆRyö_íB2²å{€•T~l)ް_Á ÅØÃøŒ˜ðVFáD›ö×#5‹]‰Þ{GXŠzÕWeYä}Á½š¼ÄªàÊbXŸÔÐTQ_õݺ|ï ØÀ!ïêÌ"1“-ÛM™¤¨(Â* å †)éI é´ò˜Þ)W±ÛK·Û&v6•(‘ w!:¢Àóz¢U±âµ‚cA` Lð·F'lÀ-Úr$'Úé^xè•¶‘F¿Oó§ÜšðP.ñû8ÿëÔh·ÁƆÆëG#|”®¾+ö*AǸ­ï°¼@‚ÃS,#x9lQâNv‚¨p®ó|f%œÎª™ï/¨ÊÇs}¾‚ñTE½k.R1QIvÅ&Ídyг3:Õ>Àâ¼q¨¹}ƒFü¸ŒG{-”’i¦õ›Ùbé.),²ãXį™"Ü Ì‚ÿ§ðÆ­Ð¥´MÎëØ<è°Íâ*[ÕtÉ}ä¸&'„"8uñ±p‰›êXh{™+‘:cÿ82Îó…x½Õ¾\ÜY2×lCe3›ïÎgÙ*A,$?ï‡ïÀðØ*~z5~ŒKQ¹SY<Ý´]Šˆ:¢¾%2ÀWÖ©æ§Nâr${¯—}ƒOïû²«â5¡ëV‚DÍ8eÙ‡†|éVáræƒsú²5q›îUw²zKVYÀV\ ÜVÃ)ç,Çñ·ãªìÎK(/2·Û.â‹xÚÚJ²xÎ.¹ý§ù好wüˆ=*ß>µ øžGÁš>—F"þ<Ç™KaXÎ2t)n—­#[uANe³ƒ/)ôÍAàb¢²ë°‚<¯pUÝzÇþ,ß„Û;aƒUïv¿÷ãs¸%&VMå  ëµ¦ã ßrðYŸŒ;+öBAZL“™J%)ˆ€ ˜5iX¥ÿ6v¡9ÒnÍâypÑC>bœ‡‹ÆÓ‡ò€®8Þ\´¾OªÍÍŽcv6+²ád0ŽŽ“ Ïì™S ^’ ÆÌ·Ã†êΕ×1x.ñµTÜÙåq q”£=$Á ÈÿÓWqé›5Ú#²nã<ˆÐÄ¥÷ô¾78QB;È=ôÒí«ËgT€•À±Úc†W~8k¡Xo8ºÀ¦ÏYc9®÷E¼}§W—&SûÁ“™v·;w5ŸMDù=±œ­p¨}N”c½4)‘óT»´¨ÚѰ™åþïÞÀj[Ôãr¦YX‹U®°˜Ù¶Úd»|°Òrm:iëvÅ›Ûäeâ*É´õY¡ÎúrüË"àØ¯þî‘wž#Óe©»ÉïÈÑï†÷ˆöåÜí ÞP ¬íj¿¶lãŽX E–œ#°«SEB)~&Ü2 Ó\×çĬËÅr±ûÛ'y|,,çÇô•- |ã/Û19N#+O'©:Åd#ú-/N$nVƒHEPyú&°A‰>e€Ô“ åΕÀ H†çLGä’¥m¾û’zÂ^ð%i±òÚ{R^%Yê‡ÀÉ {Ö^xÚ[Q;@«³YD›œ³0¢‰z”¾õÀ2‰Pì”FÌÔɳB’ŸËå4VrÔå¾°#Ž`›µ5SÈÊK–‡x@­]<Ê’2ÈÉ&ËÏNkŒö 8}}³;ó¼7h@½œ`ll#Ÿ—9ö4ˆÌü©ƒQ·ÝNÜ÷Èš¤]Ãõ“Ż%Âó¢¼û6¯Ýä‹ ?EqÚ‘ø&X ø$ufÊtvé"*œÄÙH\¦¯;êhÏ3ѬÒiƛ•µ:ñ’ òÏa1"ðÜO’› OÎ1¾À!¶·IⲈOĘŹ9åM‰[–­LNrÅ ÿ¯¶®‚ååt9õgSëõnïëtäöÑ €I4ªaà…½ÄœVód^¥‚+>'óÊç¼Z‘˜Q¹÷=ÑŸÒ‘lñ]¦6‡Ã}ŸìîÂÒÝ߯¼¾ !DÑA¤ròUsy0Õ¬^•AJ"Y¤ÛZé7°êÞ¤i}òÄùŽïr+½hòÔ©ïçÔâ2¤.ö±¾Î»\¶µ²¼¢g0•“3ÏL¯â©Jñq ”K:ÉrkbÀ›%CUcÇìѺnKoD)÷™“Ÿj¶ßvgÊe v³Å¡µð1/b#|>®ªñìœ*ÆBö¯Ì»)½W¢m›Æ’„}8=§Ó +Ž:†ø§Ä&JÙ-νÄ9D¯Q¥Û®h&»dl,+<ÓÞîÀ g|q®¯ï^ûXI‘,G9? JŸ/çꙕ(d¦dm/ó‰¾i“¯e¥€ƒƒ§Úl¶ìô-ýZ7™a©Wv̬uʈiî%¾ òyeýRI–McG峩V¿í¬ßçºe‰‡õÊ+8 žÛ%fçæ˜ÉÈ„3PˆÔ¸ÿ–ž"Z¸SШ˜œÇ›Í÷–³£;µSSÐDÍ\Žòí¶c ;»”êæâÛôI“äKpˆ9§ *MIkjáÁ/«ŒcÚvX6ØÑT7»Ã~)R½‹-Š|?‡8ë4U²TÎñß—ÅlåcU¬å¬[9XÀ„]ƒ¶ô䣹 8gƒŸÆÑ)Ìß¶½þ²«bäöØbkRĨi—f½ _à °<°¨gij8×÷ªRlÄrª¶ãá”Ô;Ppï„ÂÝ*…Z:ئ·H^RÃ-Uw d°òÝO}´â‘n€¾X‹(CÚÉjÛ`>_Û@Ö(Á…%i®l1»œTqGÖ¦SqRBÕàËo™ˆî8Â2˶7?â¦öŠQX²A*rΤ[´#r™p/ˆÔÁÌXqØ; Þr¶àµ3(hbÂç0QªDaÇŸÎ~SâMyY¦úHjèÞ·C‘Ý(‰¨ÄG "À…Þ{šŒå1ØFKGÄ’öAf™i9ü~.àÃOârÁ>›Ãº I/Æ åoXÙÏ_¹ï(ùѨñèm©nt|—FiYüD€ÛðŸ ïy ÇÄZzêܪ‡;_Þ­RN»è9Ò¼Åwô‰!–ª[Eª¯æ$~#2ÒÕxÇŠjF hP21:T¯ÓÁ›Í%§À ‡S%ìxWÎm±úS²œK!#2'|š,åoakU“Ã;j•ïS^^]}x\äÞS,€¥ºÈ`Tü.&Îä£qXùªÕùŽÐ2V3bTn¶éÃd¾ó:jN·u¤t°$l—\a˜ð²É­: âài[m³-²À°€)ZÐ*8®Ãie©-ºjaE¸n»´šêšXÞÛ5Pïèf38Î@ɰÓùõI/2xD«’ØÝ™'¾;Íwƒ¡±vÇ?¹Yòë¼ÊǬA P‹¼;–å¨÷ð}N»_þ,ãNœŒ|­_—rØ¥gž{«9ͳ5>lÑ>x%Kcâ0 'µ;*ÂÝr&Ûäì.( ß«¾aþÇË"Ôå|ìêa)àd…"‰½)`mµÆyIiqm„³3ÔñÎ/K"84bpŠ„˜Ù^î¤îm¼1MÃÞïˆ^vÌz´ eP§d‹N)\·|ãtóÝAƒ¡Ÿ Òº°ÇsöØÌPà ÚÕÕþR¸úXà 9£mš¿ÐÙk ©“äŠ „ûUú£ªqNo7|Ð䘃ÂÙì¡]’ÓJ¦£Sv$µ!”]ÁÅE7qe*øVÑn‘§ØD5‰Áñ÷¯ßªÝ/Hï&ûžTžØ“ŸÒÍÛ=£Œå$–”¬MëêÄ~~OMðqÎÉž Ø/nÌ;ø¶€dYÞkÍSãµ—·Zc½õ΂u‡ˆ—ÊÄà{ ¿û‚ö×Ù ÷½;ßÈjKÁ»@M§éøåL§u‡‘,ËxRçJOŠª²£ e»ë” ÔvT’‰ŽÛªšû{ú‘÷¶õ]ÂANñ]bÃnU}¢¤„9G=×øaöˆpUÑ)b¥ªÛ›Õx?àýÌ'œñ¦NÐ|ñÈ!ôÊjTe"â¨c¾qF$Yu8ˆÕä÷ÀGW›Î}]Ði”Kô>’¾§)Ý!éõœDd­Ÿ(){Éë\Íká:ª3w!_øåsJ<Ó7ǦvL6$zV8ǵ՞Yp[#‘si„^¸œW‹§ÍZV»¨÷™ùÀ#©ž‰±´þº±šê?’tñrÛD¯4!!p™f•àaáÚ‰V§ƒèn(¥QæÛ‘P¥AHTÆ’Ûœ(p_6‚ìH;]ZZÒÜ79¹»Ó•[¢ .‡×ý‘_D dɼۅ9¬ö+ó ˜[§#ds¾öþŠ­j”Ç*}’èµUá’Þ0°öŠ@ÊM¯>®•ˆí¶SW2aL©Ìpø–`“Ûæí·¶Ú±>À[ÞG(ð2ÕÚ€dMûŽAI S}ÃÉʰUlßj’J:bˆsix§%©Ö¼*wÓìæâvL5'ÎÖIg±öx¥ÄàžÓÖÒòDK–2c¼fú%mö{¨vŒ†±öKñàɃWü}:ÝqªÖóÂ]!² -mÁ] ù°í çÉaàß1ixÃeL Çð0<펲*{CsÊÀÏ麞fòzÙÙórÆŠ¡Xù)ó`è¬`LvM¶Û>»g°S\zÉ.ÜÒž~€Ü{:¡™eô–à´ðªo¾¼›‚ÕÙšyK¶zµ‹€êTtoÍ&¸Ä'Uº¬:ß9Ó-ûÀLjȹã(C²äIzó{äx¥rÄP‚6Ö»:i)ëÄÛXõªXùÉé)"ã=ðS7…xE¥øeèÖá¤ù÷ŠP¿ÿ€ßQëýïþ!Y,þåïÓÅ:¿ðOR‹7û硌åÎþVË?üÚXOý¯OËWýwűJû[q,B“ÒâXžîÿ5u,þý?<Öûç¿ù£ÿúűžò«ŸÆï"bõ«õ{Ù¦ú²Mf ×J«8`cÑ•n;æÌd¨¿¶£²%íÙ¾ÙaÝ,çqsE2d¶Ü¿diiDƒ~ñ¼m+kJqéxÏÉÂHåÎ2P˜m5!Úëé_KÒñ~Ò° ²ˆãÇ’‹`¦Žþ°³fÝsQ"¿ßô͈B Ë8Mm)îÔ'1ov½„á÷ŠŽ‚îhwF¶:²ž4íÜ'z'ÐWuž0pïô/enŒøò)¯ç˜í”–“—9J’-ÿ>‹Zä4²%^ëÛ¼Es¶‚3“³ÿ÷%ñÜÃ)Qš¡Xß'z}úÃ÷f»tÌÙºdvþåÝá'ñDéÉ¡Cßx2ž¬÷'÷Ív’y;™PÊgŸÙ¾üx‰k ç^_dbަŽ%AÏßxíw“C’HL âÞÕ±ÐûÞm1K“ÎmÈÎ=â6ËõQî6äéÀ)¿¤{4 ƒóÖ>¢JÂ.Ó$¼\Äýd\n«Ñ[K¹¾‡ LÉáíF`ª÷eix8VׯŒ/É-Ìzg¶§H0W¸ñïµ¢$ø\¹çÍŸD)Ÿ_k¹^iÖiÖ|ûéïïË_s0'QN1Ä •oÛ^™Z† 7á¶oã¶5™¨OžÄ’bþ6fz$.·…ì3óÃJËžÍIÙ!\qÍ%½y‹<¿Ÿ=l¶Ö$þûó@®÷sгX—òp×÷rf§L®ÕïÓ€/qÎV‰`fbWɲ—MÊ&ÝÙV½y[Sr¿…Õ®OVJ,‚s8Û_O6ŸX.ʯ„GÁx»·ú­HMƒÓl‘ÓË©ø°ÊÏ” È1ê(¾—éßæÖKàˆ9ônJ©ÔNý-åa_²öójVè_é°m?hGšG¹€syÛ®±.KcÜ9ÚRÙ« ê¬h¾…YÏahƒ5&yFŒq6C­l8·ûKÙ!p aêrchû ’„o;׆ÅÂ÷}RÙ{°ª<ŠíãY=Éçl§å²YF©¶&:27e -ÒîËÛÎð© >--N{D¢y é†ÿùæ!c›x0^‹³Bô«Xmzg¶eÅœ›¹‡à|À\›\6ëñY·Â>ûå¹eŽÖ0ʧ/gñ³Òv<‘#£ú·ÚÎH麱¬ö#›Ô«$G´p…’¥“c0_½^Bv‡J×-…¸i™žù:Öe z,Û‚Þg´dÍ¥ÙBU×#}1ŇG2ÑЃRc<Á~¥š¤àrþ¾ßcÝ&¬Ç'ŸµMzÁ\öÓ®…á[}ô(Aà–æUÉb”«ôÛöXä&EÁŠ6óÞÒhMÞÖüGãí°Þœ<"äÅTÉ™LÆØÈj‰µ6ÃbF%ÝÝ—ø¾¯sü&^o:+ hˆ’’Im‹Ülj’'sÓgu¾@Úä-Ç}ÜöÎå‹ÃuvÔÓ!1<6 sLørÅå_,Ê9½0$+5‡¸?6'ó\@,g9ev•>"æp©ÏŪcxeYi Ê6îò¤3÷÷iàðF^Á±¸[_ê'Ý—BqžÈös‰É<ãŸD¾‡Má±a?´f¶ Grq´lì´“Ñ¢Û=ûJé±K°ŸÒj‚,§dY<g¥ÕiâE³¹á]dAsRʲê'ááãð)X&c N' §ò9=’Rwé-T&œ—³Ëv ãºÕKésÙ_°Ó#g+Gâqp´Î°-*¦½¦ºK;IzñÙHØrfã‡{Ös¬üUH¡‚0^^ ÏCPy+íÄ…A’ç‚sµfˆg^ŸH®´”Xºiönæ~9~Dzpdœu+RÁwµýªX/sImÎgHIUï‰ËÄH”K¨°TšN¯>ÓŠ¢ÊÄkwpwVÞQá¯åz=ºËdvt?Íq‘ÿÏ¢¨7¬¨Ì¡¿mýÃ\ZŽ‘îÃÖni“¬ ±Ë1JA±–ákQn6ŸeÉ‘Ší“"ƒ–XjW;ªçÚN÷I#Ùmqš¯¦gÀúT!)ÅÕÇÆãb𮜵 ®ñ”€«·ªYNÒ°ÔöÉWÀñ±¥•{[|2ÖuÚjŒ¨£…ÁÄá>VÂê;1(ãè+ézŸŽðÛs:ð‚±Ì„)¼òå´ä$ˆÃTyJqé·â¤Gš¶'sÆýMBÕ*q‡Qz å¥wëR›¶ZÁb¹dÞHZÑÛÓôØ5é ¿j°¼]-ÆzÔcËñX{Ê"ÿªçûpÿ0vJnh<í)ÐO)Gv:• ‰\©&ýô’³€¡‚AºóZ;YNW ¥,#ùëÝΧÙïŠY ‰S’¹óµ“D"`¨â¢É¢rË„¾M|3Xñîòéœ)´n¡O•ŽÁJשýËBk]Žáhˆñ·A9Éð‡ÐÈf7kN DNs!ö}†ãŒ^®‘·B?’¾Û(‰œß)»áwq°]@ž w —_ýÍð?áb¤³f’w*A+=©9•wÞb°;‡Ò ÆÆ‡Ld›°¹Ýlˆø”#`sÀf(Ã#†gdÈTKˆ‹Ix/á¡=ŸüCØ“v…Óþ,‹ýT´í>Q.¯P쾨Ühi¨-¹É+ÞK¼$ /Ýà{kB¶Üºó(ªI:¿@UB&¼€4‹ø œ³TœAÉ ;î)^)¨±W#"QÊ„Ãè|ÄÃ6‚’ ƒòº Ó;¼I㛈{±MW|N·¨íàG¾ S ´Q¬ †…±!½è4¯I\¿Ä@5ÞŠ![FôÊï¦8Î^¼8-̰qNàá´Q<´¾­8Fo¤Ö+öÇt ŸÂ) Xý;Ëk<ƒ!ª#ó €(¢6™>f• OÓÂ}™BÕyÛ>êÉà@*PùúQ\Ú<ä’\7yÃøÛ«Y.öEÝý–´MJ“J\¶ÀbH„It_»³Ô¦‹$ìù¤¦ Gâj\8`1kر™áÐ_¥¬ àg/$q³gÑ /ëø? ¢½kÊ„A|ÿ^R(¶4U—rÒ Ot)òçÉõ« ©‰(6¿0ÄÌÎÉ8‰ù*¡‹{—ÎgÔÝ[ŸÂæÓA“8”™íŠƒcScjÁ)»bâL&%ÐTv”ñ–¬ö9ÍÄ.˦LšœË{ȯA$0”u[÷[l<%ÉW35‡äF²[p¶½âÛ Š lH~µW<ØÝ@¥A¦Zb4ü÷{¨‘—ž£É¬Ïó XTHo*jzT³t*ýsút4UFTx‰§8׿@ƒñ¶Ã×ö¿Î—½?²CæÀ¼ÞqFm*ãÈu>ÛÎYð×s]¹G¢zl˜ªÍzþGiuD‹aò=ê?Ž¢ÊéK2ŠÏ1^»H¸ñjž©öõ^:¥ä ø£ÀN$"F…ÂUâ±]÷ ’ZÒ#á•7g­_‡²/9¥X¸s~šr¾*T°õI0ÌM»£ŒöäÚ¬ÎM‡@sªD§:0F\štT°qp7=º˜-NöRMIõÀõF@O<£Ò¾ë4óçˆo2åH¶“ixKb;bg*4m™#,_Ǭ~¯ª]øO¡-ÆáøfО,l½°˜YéW$Z YÌÅT@ÍIˆb‡‡ûÂ*$üœäh¦ÉìÁÂ9A¬öXO+Œ¾rd‰óÃídÁVê´ºˆj¶)K,ë¿â  ¼n”íèÐkb©œ¦è›W’9…à§¾îR<>ÑI·fž/ÛÌ ¹Ç4÷Ôu (›oˆ>ùÂZµ}¥Š-Q6&ÐÁï¹ËÉä¨('‡vÉ¡y=ì=q~PÙû"s‹¼¹¶j=ÜÐò>Û†ïiÄÚÒJ'¥)0v,¹QmÄÈËœ”ÊÑO®G®DÉT8-}8i¶½*(ž;]oi­ø´Uîy²„VoàIÃ'ÍàUíùÁ¥,;¸T¸˜m•èUºJà ðœEäf9Þû ³…XZ¡ GÙœÿ¦Ì¸Ëù˜KUlL’ŽÂÿÈòz7 Ž=~áL™e é!޹N‚Ç‚ÁfqU;½pþøs~;žâvÒȵڎܥyäM0‡×¾<²pȼovû>߬˜°‰•m"ï*ä8¢ò©ENˆ.â_vMnm)š!üž,yR6‡RÆgu'foò\uq7†ÿņ¶K-aÂ)¬‡\þwOfƒ"·Ép÷Æ]LЕ*5øìïdÄŽ™~Ÿð g&ýŒD¾JäLǘ?Ò¢úI¬M¹ÆÉf÷>¾Ð!?l%FñÊ2Ö©‡48ÝFê¶rn›â?2/õb§¼N8b'bdÇžñ]íÉËžÖ-kq·JG}(¡+Ytñ%ÜX~…x›°Ü €ø1^&ÿÌ“A/¨‡Ë"/§æAJ›_^,î j×Zcœ,v„zËŽq…7µ£¢_Ñ´¥úÄ pdùdhV­˜Ÿp<Çnþ, ³)KÖ"bÉîLP_#ÆIĬµÚÀFؽñ³­:øRÎi5œZ½›Gˆ6Ì9šÅUT)KQÛûô°•;ÄåÍÃ6Gˆ`äq D,cIÞ,@'™íÍy±).ŠõàÓŸhl¯©È„–ç‡MDb‰3(®lõ¿PD!fÛ’©°oú?>É”¹¨òòù…¦›= ²é®$ûcyÀ’ ,¯çäV‰5ôE p6ø)Uƒ„E_hËy”Ç+G\8NÊZÉ!ÇIKî©)sšgM7PÔ¹Ú{X¼‚ädþO¡™Ù$fL6Û•qõ*Ї«·lÒɉ)`˜Ó#7¯Õ±dÊSGVž¸G éèàU7Ïuªª²èKÔ¤ú5û:BÝ’[* aûú™àh B¾ŸHÉd©›Õµ ²¦ß•OÑò¿KÑJ1§)C–‰h|Üþ~C½iDyÃ( ü è«#¹øù2•êcŠ7 äþS£apß—_¸Â+ßw·ÓZvh‚ ɧêQ F‡‹l‰z8-*0º·"·ÒÛ$‰ÓSJ2p}Öö¹ÿj Jg"QÊ ¦ó, Bl€'eø*)¥ŽäË-]Ö¡i8>_º[Ó‚€í›8TÑÛW’3ÎûRWáVOû•å@ÄrÙï­Ì h`ðU¸ò}; J¿ÏÍp_ü5v:q7֨Ȥs¯/~Gffõhãò–& ôiXkä¬@ øÃÁÒOÌw‹ÍÍÏTC]k® È©o—ålGÙž\É÷ZJ=ÿbÒ¯$¥û“$Êæ|7'X®CV ;Ý8íPõc#Ìÿ–üŠ”jU=zé’’dûX·©þ1 ;ÿJzžTæ!輓c~ˆy*§¹¬#}¯³nSWiù•:╃ÑY1ü¥HþZÕÍTÈЭacÌñ®ò5ã½°º2 F9’ËT±Ç—‰8ÐΞ®nšçðc±–íà@S«Ý]½î|’‡ï,ãfp—C6l¤aŸ;ð‡óɪÍrˆu°ª¬I8ô}Ö¦O‘&3cãØ|Ї¾ëå ²¢Ê˜’,zc(ûáˆzëKŸ.™5ùâv˜Ùss0ã$&}Qø5žÈÎŽpÙsRA‡OâAŒ@ºxúêˆc’]´ÈJ9Ÿª2‹B’ŒÉ¿”5\«ÂhŒ–­ûqÈJyá¥CŽq8Ò ÕZlx·øJý:Ÿ¤ ÇAgŽ¡ö¡ v:-ìõ]Ã$¨ q¦SUÿåqjP6¿Ç£¡]Ø93¬ï®ˆsIßKb-Ì%AP¶‹mYˆ7‹ý1ƒõZʾۗhCt˜4~•[F:¥¼‚+Âg¨†Še­oU‡#J ¡ رÅ{s´ŠÚ­“*Ô™ zä¨ú¬¯‚.Í<~‡ ›ˆd-ó5¥¥—p™¿ Ü訙XN8àÞ‡o¥+£ç45¥Mh.Œ6IØÎTtv(”2'Å»×{”˜y¸eÀ¸`Y.}JÛ'6PÙ.#eí›õ-^VÅa[®cRô겯^¬óÈÁ@)àŸ­øˆÉÌçÄåÊžQÈþ³]9)° Ü¶2ÛÀü¡[‚Íq‚‹#Ÿ,-Qµ¦O*!á"—év´RbâÜ$d•Íä€0³Ù–1-ps™_¹s#JD9¹ej'_fëÌ/Þòé,‹–¸dO*q„k´1ŠSѰ{RÛIv»°”j #É©µÊOFGáKº”V¾D̯¶­½;çê?Æd©²YŒj‚ÅDT±­ r‰ˆ¦‚Ššü‚Ã7 ûJeU'¦j€Ýqt¿±òè*mYº¼…Q¥Ý»èt Ä9Êt@ÐVÙsn"rŒ¼Còdxþ‹ðåÁUÙ²b%ÉiíCSް9ÜÒIL£Æ\^\p•œ£”DÁ+žt]h,¼Cñv¤8h¦¶¤ ’c7…Æý<Í)DÖ_—¤ç'†Ê.K£QM-±Ä ŠŠ.¦B ݲvPÒ¼ÙÚ)g'*ÈXêx°%æ·^žøGB†ì|Qa™ÎÆ )¨BlKá„O{_åø6Q(¿F3äù†”„cÈgÇÖ8Í@¢M¨/P JûyË_C+y2ûsÝŠnª9ý- c7c?5ÙðI~‰±;ËRƒF4VŽtc«\»È ú£!t™·ÁsÛÞ€«Ê¢ök80Œ™J´Î­*1üd‰Z$|£<Š@ªjÑnÛ%Xo‚Èdß°3I¾Áav†™hþL±Ú~¦Æy,y >ç´Xíü%ÿwVqUõi®nˆâ,O"ð+)¾*áï|­~?¦E­ÇÊÂ`eÞlMv·%m‹„©ŠúpLôö·Ý®BÜ8-Ô÷Ã…ñJQ ÌU5Áì9 ûj#Ò‹çSm8Źºq‡ÍÂX¸x±"|2¯,RPð3¿…]Î9+¶kˆ|W±éj/±Í'Ø2áÙívP+lTCz˽ÛâW°KXV/Ïw ‡ÀÅ[/5«M:v¡è“M²¬tc„½Ÿm¸QïaPqäU)Ðôµ*]æžË˽Uqœò ›*Õ±`à•ÿT éS‹èh2÷s©»#1»ó‚Î#.çù€”6ýâŒ%•èö·C€ˆ¿åœ§xŸn‹k õT÷“]Ë L)8ty;ødÅU·õÓcᮕ‡fØëLÄ®ñí’E*+cOÒNY쳨ªß“™'„´¿ÐÞÙ“ÅÙ—<{»x³¤{ëÞÆöUãB3šD:/XÄ)y{®0&R2&B…Ž2žI—’‰ÒåÚ¾1_˜UEŒªõRÈGÝ•[­ßg—fÔ¾ËïEÝ.I±ÕJ#ÚŸ9&x  &ÁÐÌ îa;8YKå`ÕˆZ²õ@Jí¾ Væâ­$Eø]ŽT®“å¥|¶ð±pØcQLÏç¨lq·Y„XßW²äË’ù)&ò¼„y˜ü Ù„#q*?µ¹Ÿ_Aóg¿7îרYÒn²åRÛUvÓ×TN~«‘½oÏ(çÔ~ÁRM»*m¼êØã”Qì’ÄöÙmšÓ €]Çæ[d}T5E°$û¾íq囤óV«¨«~²ž)žÍW9,,cõ+C0/ó8þ–¨7¡Ú°ï,RzT¹¦íZºò©bž”’ ÛJ— :èÝA²h>ѱ‚“/mlˆB^Ú~ø•1X G^ŒÕl\ÄX©Ãóiôœ¼oíð–ÿ‰ÔË15H ÄQ†Wq#îéèü5[°n¶.Y«·Uí¶[ˆç¦NG^#²Óé:Öà6Ã'Û,«Ä[È·j[Å}«`Ô¤¶?Û ç̹† bzµO¸s©fÒ3GænöE**þê»=­ŸdÜ'c!ççG‹‡jXH1jT/­Z³EI)@[6ð’öÏj>j(4µ#å<²´¨NGæ‘5îzŠ'-l¥s€*“+$éÏi|äËö6 ¡¾\÷ïU’Ñœ& yq° ‡+ü¤=T˜µ[Õ³<•qmms5N•Äŧ; ‰¹ºŽ~†«h\ÓÕãëmn¼û­ØÂ^ê‡L‰7’Å 03ì®ÄM¶ê…òžÂ~Œe*’G³Y¶eß¶ºFg‘eô}“Ü,1yšÃÊXL…ÝÒŽÊN­ÚÕÇr«¹G,’rp$†e7+0Ph²UöePñ'ëéMÈÓeúšßБö#ú€gÄçR%ÉC~ÓÏ©‘–C÷å@[¯ÝŒ›X ,žpKq­ª†~y"§D€…Ã<§ÍV‹›ÉÆéVLi§”ìõP&ÓŠý”)㾺­ÔҲυ¸mKk#yî©þ,ßPWÌBÒÄãÄåÅ5w‚g"–°ïñÔ÷Lç-© 9’öƒ1ö;^.‰l*ç¡Ƹš7žI¹±`¬¤Ø»’ñ,€5 oÎ3=áäó“P«<НÍËïµeh™¢.›Ê ¯¬v/x¾OøüJ)æ"%ñÞÖ·})¡@ ic"!É'Ù>ЃVö!0ã4½87›¸-•§-SÑßYý¹.EÆz²eïI¿ŸàþýüŽSìÿâ_Üñc÷Ÿþ¾9ö¿òOrÝWûç1É~6÷·£ìçOÿøYö–Ò}³ìç]ÿÝaöûWÿ;¢Õ_•˜ºÿ';Ê~Î÷ÿÚ,»?ðŸ`˜ý¿ùõýéßüÙ?vœÝCñ_Ô4{~~õÓ_°þG¿Eò¯~úÿþšpšÿê§_ÿâñW?ýñ/þ˜~õÓÿ÷,¿úéOñG>ê7¿€¿úé_ýâ|Ô_ü}Ãóÿ9Æã¹@úÇj›ƒO&ó^õrd´ 'êNÖ hŸá#jnïî+Ü6ö·È[›ÿÿ%‹{ïW3ãøX§QûÌt _8Õº£ùb*bU;–@[!]“ôœŒ`NödÂñ&ãÏ™äcæn~нÝðY=•‡Àmm€ßÓ”øŠÕŽøÚ»‚äK Ã@l•üOº_–ïMì•> «=*Žs˜D™æÝ®E¸¬ON'xöý€N{7¸[ÃÑü: GÜ診ŸÏ=. »€;‚lÑ'XEµeÑôYrÜã}ºÜ°÷[êÊ´.j3²so¸ê› Ѱjä=SŠRþ¥ØMÛë]ƒÈžXâ­†fÓ¨rñ=3]2;môÝS¹Byˆàùg‹üçZ³fîðÚ}#m—ƒ³t©¢ÓEØGDbEt±c6”6ûãÂ[óì DV#ØQ[:ßYUXÕ“ÿž×8IMËÈI ²×¸Ìù²Nm,©u+ïØúÛaÞ¥îb|‰4l/÷U‹X]¾ÏÆ@¿v9NVÉ·2JosL”¨áµ1íËžu‚õφ¢y§qyõ§U›3¶wTsÕ^gÌŽTnnᮥË‘ÔÕ*\x aN_[ä·ø~Ÿy7[Õ×|Û£rN”ůV)¿‰·"E޾d`î\Ô)5Å›ùP ¥£6¶ØŒ ;þ×”(lï–¹ï~Ýöiq¦ tû/{—´ß)4Ž^â•5µoO壹/IÂ÷Âþm)®S“Yz±2ïÀ¦±Õµ(WÅ—°ç‘_¹¥°/’ ¾X#½b~<®åÕºrhŸÂ›œò dûuNE6Yhñ„J¸„ñc²Æ6Шòk ËùÕ•`i)ÞŠïàNêçlš¬ôŽZœéÑ—£öF»žìÊ‘l}´ž†Ô¦=^Ž«uGÃTæu L’ë;MÉùpæÓ‘V±9îMU­Øa™ÉÀÊi¿µ7ÌRåÍçg;²o‡§wØt¬î«R¶Ì9“:ÁW ÄÅK•c³èd{¶“*Uµ]†-kœ8™ÉêÐV‹h+•Œc½>®ât,öu‰U, ¯#ÎUYÅ͇æ¯H}`–»Ng´c0iø½ L/2@g (Lå ;Líõ]6»Xb‘ðÝvžLVë$yó­ã+òùçÞòš§ÓÂçSà»Ë8Ø:ç‡ÖÞwx¬µ; ÙíÅ›'›á9CàI3pA…g•íÐ2?Ÿí_”4@Ä¡ÚMI»Û9Ê55cئZ¤‡i9?_T9hN5:ëìàX»3¶a±Í–½*¿â•ÛàVyœçÍMtLg ³FÐ[€]X>‰þ©ñ[ª‡:sŸ¹B|€* 7Yr)ÈåÂT6TÕlª[ý[Imìð:þ›O>›ÎÃÞêÉ”z„1yZ.ð×1m‹@M2ã‹€‡'X¾[åq¸ý"©ˆ;0³Á”G‚÷`¡`wi½Tv.žÛž¬hÛ^wz(ìüéâ@xB¢e=eï‹m–EvKvkVå+TfkÉ zVHfIò¬qú ÎU•9¬úv[u"¬ŽºÎÝÑqiû[íóŠ&cÄJà„¸S* ïu±FCÞ@ˆAÂ.º›Í¬ø6ýowwoìn‰ŠÞÈ@ÃúÌê8Y@œˆÉþ5g¢ŽN´˜UBÆ~M;¾m‹·ýG ±b~ŬErøçzkï¶ á n "˵óávê¢,ù¦·T«\'åä°Û©/Û–R¬öäß¹j¼ ÷åõ@™aœü rVí©Þy@QtPŸ{Á_‚ñ.?Q¹Áëªtæ?)gT¥ÎR´b.8âû±ë{¤8RˆEòWŽ{reæI×šŠ”v);ýI¶Á V &Њªßàõ|M™êi»…½\2Õ³QXŠ|´6Gc;»9q+OâØø‡oÄPZ”ƒÜ9E\ ð¸YYp‡+q7mJ&òø¤È>¨Ö†Å‚jGf^×8ã»ËÁ‰ñÙȸ,ka•nyŠÏT÷²Îl“a³[æ~“ÎL>þ{±tXîâ1¬ù„3mnî’z#½Žçµ¬Á¾rA+­‰£s w¿jOƒ-(oßzmï––€3Ó%0‘!e+Àž‡b}°XCzÊ"äQîk`â;èàt€ˆ°èUM|©Îm*RžŠ;ûˆ]=ûP8[ñíå†=ßRUÑ;0›“¯'¼ˆ³YJÅÞ”Œñ:Ç™¾œ GG7½nÞ“ž·Bf„& ¡¨ÒNå9‚š_Ä8Ÿ¹ûýRÛÄ®f{’c"ÊueªrdÁ‹QsHÿËaQžsÙ ¸5:˜¶àÇñES¥¹…Ï‘],jmpVgJ·Ÿë•ÀFnp¿8¯n§ëü#ذ£þc š}oÛ„#­‡!˜zª÷`³n— +Ú š1Ûª) B n…Šçªy²¢Éz çW1ª ¾ÀŒ)Ø l£•$Åq=1è†pJZcûmï#z6±ÚkÙ­L&¦S˜ñøÞ`eum™¾ín}E¨„é Þ:ƒ¢øCR?BlÉÊb4í’*œAÙª"çSÚÅQÝZq9Òq¾÷»ÊºÈR½òÈè´ôg+¥7Ò‰^ËxGY±u$áº;áú£˜A¦³+œ›UœÂ×(æ#¨<àþŠÙ†bvU¾ŠÝS’¨©)Ü”ÏSC|*|t‡¯±<™;G°žúõ8_*Œ’ĺún;vfö.öÀG.%°‚½!ŒIIìór½“Õ=|Ú¥¬;•••6°Jò¥ª 6«H(²—9mÞ™ò¾•¯ 62/Õ1®©:¡Ìºöü¢V§«*ÃRÞ{Mî­ú0«yâð©ú|XáG~h™üÃ!<÷xߎÆH*žOm'†ŒsÞ:¹Ô£úÃÿæ\¾J*][Móï4ÄfžŠMrXÕ&ê–„­Ôm¿€š¹¸ {ü³]2QÝÁ¥XçÊç¹½t;®yåà=ÏT9¡Ü¸‚—å=s.Ò5»p,VÂöIÑâhÈM\wÑdª/˜¥Ã…­îh¿.‡ÈáR¶H»ÿuÅ1uR%Ôæ^–ë¤ìFË¢ýk©Ôê£é‘Oº gëŒÁp*OBÔWyß²µ‘䑨Åye;#¿‡%W…ËÅqeØï0{¦ÜZö†Ú¥ÖLDX]G5Êwõž3SCpÄaâ6ÚÏÂ]M¡1‚rYi²SžÓ‚*w‹;â1/^c|ˆ¬ ÂÏ~0Ö“°à#^’@Em"&•Ù5á …› äÉt",êCådïa´!K¶Lüã%.Ks[–Õ|ª6<ªtÅ{ˆÆlyW)± Æ·¡NЭºŠÄ™ºLšÞW¦¬{NűiÐ÷ý8¢ø¨T%·s 2³Õ&èx¹É½cÃDÕý}ÄþDq}vò­«9Ž€’]øFAŸr×§.“é¡Â&G.f(/Ö’AQðf ÑÒæä­²¹bd¸Æ÷â°°½V“›2áËàCh–ÈK˜=¥"-Q™=ür>°#Ê8üOÂÏ­ú÷Øì °?Ã|Ø ª#Ð~#—õ±Å¸QŽ.E!,‘f}œÞ¬éø­¨XnÜ(°äÕtu†V®ò;ðÓ´ʰ"/¡/f… ÃnCÉÍìú˜õp1|tp9?'g0¹‘+ÔéHt¨î„9·ÃO)”ð±Ñ|é<ó¼ë¸úC8 j1±¤DJÒ;ÉÇÂräd”§“X“pÔ¥£´³sœ4P$Ëôûªóï?àw¬¼ÿÁ?Xxÿƒ¿¿îþÿdËîðÏ¥êþ¿,ºÿÁïTs¯=ÿ×Wsÿƒ¿§äž²üñ÷¯:ÿ¤éãÿà?Prÿƒÿ +îÿåÈßýW?ýá¿ä…[ÝŽùW?ýKÞî7¿ù¹Ðž?õgÁ¶{eÿíßf’«÷óÏåò«Ÿþäþ‹?ùõϵó̯þ/¿þË?ÿù/øFÌàoÿÌ›ýô×ÿãÏÿÎùé¯ÿä/ý‹Ÿ°ÿçó3]}IüÅŸþ›_üOòWÜ“ßþùùÕO?6ê·}‡(ÿáßߟÿT¹3?ÿ‰ç[¿ýSåéöÏâ‹ÿ?ÿ‰Où¿üü'>å¿ùùO¼öÿõç?ñ™ÿ·ßþ©ñ™ÿ÷ŸÿÄÛýÁÏâþÛŸÿÄ{ý‹ŸÿÄ;ü?~²ÎÕOô÷Iüc#¸¶?ýÙ?Ü'Á'ÿù?^dàÇyŸ¿ùÅùÞóó#_ô?ýâ|Ñÿü{‚& ^Énæ|¾”}Ä)9ºç¸ær–ÖÁ¦Þ‡ÅÕ(&î/±ŒOá}›<‡¢(Љ[Y‹¥Nb µ° »ÉH;ëØYtG™L!ìúì—y×'õÞí(ükÑåjD¨…“âK¹•6ȱö %{¹³ìË2È+ÝŠ\ó²±ß•™pê"S$Ÿ¹?"Pi_¥ÀGPÁú+Qd(ÒO÷-ßᵞ™ ÊÌ­³=ÏlKå®hºëº·z§]ü²¸YYpø²Hfß$KùΙ¿ÁôºäN9y»fúV-¶bñqñß»ThãU8;Ë1þ:ÿîT¢rÐ|ÒGÌ6³4l¥ÞÏ·˜D7ýf§…CÑko=OXJ_²€ÎªË1=l1 û*<ª (ŽÝÑ.••R8*îg”˜a4‰•Ä´ŽÄÛõmvÜ—Ëž‡7ÿà”·ƒûfÓ”ÇÛ±õiènz§Ê$QðWoiužùðZ¯eiL5ÜO0k·È·îø$oÎS1yÞ"…ßä—ï‘ÌÃõ·ñþ¹s”‹Ôˆå±ÌNx»>ÂâøZN{$y1ÏjæÍ ߸¢{³5ûÔ w)Á±xÎFì¹™5ódµgÍ’·ý.>ÑÙ»iWf:wqÛ uÊúh)AŠ"—b*R·‰â:„¡„ ¦G¶ƒž—\-˜‰m’ŒlÛ¶œG6±å||¥¤·ÃPö£p(5†íÆ@jt«%[•\J­Ëñ¾Ç)7w–3èùTO´/p«Y±Ì¬µÕ®¶Yß/UCoVÄ̲Ú.nÞÙ±hE—¥m¾·_›…Ò?Ê9R‹)Ÿµœç}ž*S‘Â…¯Õ"îA{±€¥=ã•?¬˜ÔÝy®Ïœ\ÅšÉÆ²­—}AòÙp*,JÈL|øv‘»-±YoÁÔŸZ’2ë0îÿ¨s„ÞÆ¥äò§û Ÿb¾ŽÒ=£l·0+ Þœ½âÛ×Õ>ùŽzFsWáú óÛ‡9<ÛZÆ-ÝbŸ7ÿãm*—·TOOX-KRA;i¦—N¼óþdç{oªf+‘\·ïå½0û‹¿žÒ°ÞãVMý\5=msz¸¡*b^˜Ó7íM‰â^L^Îö´¬ÍÎa>t»ð@fL%Â-øcQ$’z¸¦ö0¼[ºŒ7È #Cólùo?öá䳫Íêt®XÜÂ)¾8hr1b^^¬'`#ÙÈMÇ;ª®Â –µ(pª»æª¯Œg ÷Ò%_6Ha]_›ðZ–Ø&œ@gÖ€áÀàh2ž8¥ÚÀ*)˜]åÂÂ>…˲$û7:÷~UÙ)“³ïÇ:›|ÆfŒGmÁĺÒòŸkñYœõA0<üÆÞ,£ÀD–6)ê9¤KŽÀeñ‹sV–ðªW”±à“p¤$ë ŸB(\"i&]—×û#ãç R›ø<×”QÆ KK]þ9²Õ#æ’Gõ‡}%Ûœš|xêu5žâŸÓòžsEÀÅ5gË/žpp¨Ì1ì÷÷uŽ-OùÅ>;ïºCÒ<‚!,Xd{À²Ÿ`$9¶¢W}-EleÀbšÛº±¢\GÕ–@€ÈþžŽ‚U~ÌÔ…~ÉlÎÌ U Å™ófMîý8t…Àc´×§Ø ïf Àw(£5¼Ù7Kßœ™¼äu}í¿ÉJïúÜÑʴݸÏtK®;­Ús\l!»9 ’ÓñF¸wþ O@‚5VÐ!ƒÍö%AÒkL›]^ k‚Ü} Áíô°õX-Ó,4'ÈÁËMAwìo¶LŪK‰}’˜ˆÈä; ~#±ètÙVaw··[i’ÓNšeÝÄÆ:gy{3ô¨ÄÌ/`1yë&•U_k(máœãg×g,ÕŒ ³õÆS—ÅÊTöï¶ô­ãwÝ&Sz‘èx{Ó.[Éœ!• ÉgJ/÷ ;…Ím³î`´÷Ög²¯Dv àÌeQP%HfMî«ÍÙô*^Ÿ[߉%óõìæ9,çuË!5²j$ÒÅÛ»DD`j¹½_[ sõ<ìx¬ÿE¥}îH²±&ÿÄ>ÍzŒY©J8Ì.Ÿ]œÓ#aPT:‘…và—ä‹R^2¬ëzÝÑ[ÞçŠSñÜúS·žx¢v+ú Û`Ç=@{ûE™Êx6S3˜Ió¹@^^~ í8—R¯Ý’òap<Ù|i¤®XêÍ’Š×F€‡µrê!:>ܱÛSx½ö)gÂTâÉ—ôWNXÈ_dŒcO8ø[V&%”§ÍIz8°Þ”~¥?w4ù}­;õ&Ôi¶ïMö†OL ©ª<¯u] ÃÙÄ_妲X Ýᇫú+ºO`JÄf›®"Œu7›#¦ì#ÜwÂÎXYm),'‘âP£J¢TEyK´úT ´ßa’ @žÀçô}+dÅ­âÄÛ$^íþª`ðÙÍ[T_ Îb !°´FĆ Î'¯k¯§ÈÍž”‰5ùÆþNÆ:é а«cw¾†S÷á“îß™‚ƵÉ*óÉBjþ1O²Ÿ „ ß_¤`­r:IS‰\å¼À8%þ?êÈmÏô°8Uò ¬ŸhÝf–¡kõ¹?ãx/¡ n>^Ê¢aˆmË´FÜ“‘„7t ‰•ñ8RwsR‰ Ø6ýb›ÜÖÃ@Ã*´Þˆ{ÓžPó. ÖÇöáàð8Q ”Oå|ôPW t˜<í^Ü'ÎÙ­® ÑœT=[Zg䕹gdæH"~lÿ VQÊ„ô<×Ûm(”þtJyÞ$à,3^Ò ‡+à×1 ¥+^õg€™%s^ºÒçÄd#à'nÁuàðKµE œŠƒ?J¿È"âDƒpÁr¿Ô¦¬Á±¦2Tp¡ÔNxÅO:Ñ»-GŽaMû` $Z¾fy^ ýU ø¯œä¨“f ÄD šŽ.?­“hSS…ÿ’'Nv”§¨D7v¹06àØo›' õ³}-yR°ÎF€l_ ìX–;¨3 ì<á?Y‘·\•åÖ¨òŠ ¤±;í&T ßá\·íu~R?” ç/e LÁ’Õ¶³}Xë#û!gäLÎâf¼ À×uF!š=¨ì‚Bìc8Dì©cðŠcùœãcùœ _ùEiÁm?yJ$fëa9ô÷¥_°³1:ⲩݤ¼é8ÉRº‹„*¸• wìMIш+ÙÙ{Ö@Ñ_s"ÍfÑ=AböùMÎau¸¯Ôì øîhbõµG¬^޽üìCp€ù˜¾Ý6JÅmœ/}'eUÅž9Œ*Õg+`«€ûÃ0á?`üïÏK•Û? ðtÈi]ÍŸŽüUö‰u^˜Vi±°ÊXÀ*SAÔ¡BÕ¥ì<ħ?f›ì´ÀÁb’y#y0·l¤ Wl‡ú]Æš±c ö2ÈÀE-¯xÃb â­'’0f܇Sj>ª¼C»°ÈÃÊ—Ö"læîDç3¦ÌÕÕ¦NpÈR*M?üø€¾iãÞµ>¬/á³Ò„6*BrsÊÝG<À’½d©Šc'r”œãTd.ÛEØ2~KRO_Ð7‘Ÿ_ñÙ„â¯íÀOžª¿&ÉâĹ²S’6„;u•‹{Bè“DoÒÇãÕ:ÜD~à ¼ ž{ÚÒ}q±bö–Ûæ.rš¦iUçÉÙ{ãš”¥XÀO»£*`:•qƒe,²}-æÞÁ¯6¤Ê³g U†ÌƒÍiGÓé Ä«÷ëì±áaés¹ä¡Ú‘(€ŽØÙõ)IV¸ùÝb‘{ë>«4Põ¤[1xªû“rö’<ë³[ˆ¿KOâ8‹@x”¼èùebà¾! óäH‚ô—…[Éël½gƒR2˜0á„ 0àVÙÒ3%{í÷¬˜+P~ jJrö.³!J‰H0‹³Qãÿª¸¤¿¼Õ|y?[±néŒ@;ߣîdKSâ™ø9®Ûg—"îü‹ÉžeÅdí<2¾zXnÑaJ rlùއò%…ß–3Z–äTweKby÷|dm¥¬I>ô‘Æ.Ä}¶D‚òÎ+y›Ëç•U¥s YËÀ’»l+5Ï ãfQxC¢Aö°´r™»Òo³KE6I¬~”%ñl±œ÷T·TG,¸¤p,j?JSa^<ƲÈü¸M¶Ä„ñ$Ò'zÃáÇ—º¹É¡Æ|$A†SØAಪ±Šp.>3Lh„_¦­>û71Yêzš ÀÊéž"‹ìÔ º>™\öè㊠ÕÝs³÷5šS«`¸g«&qÍd8ŠÑâePp<Æ5%è’tR6(ÙW†ƒµ@{á²]ÿNU_8W.Úü©ZjVª±Ø±½m aÄÃR‰ÛÙ`€,iê#7'ˆGãÏwñ9Ô=içdj H@Üí€_jfEg¦r»³),Ul N„oÙ\§<¥XÓ ñ9ÂhÃéÕë™Ù¹B!Z5ø 'JæÈb%¬{WÝè‹M¼¾ë‰Mç²cHƒq”&”ˆ‘ýšÒïIaïàg´×Ô/P±šVå³ÙÞ>5F„*\ŠË~ü¯&>_5N§0³·síƒ]’ªÔA\mR_:éÉ¥æõÂr€øìFt†‰ð8Ù©h"F<<õc[/§“Í\\Φd*.ITfâ=8ñ­&à|I ËJqsòåùÏ: êz’b¾þs°z)²¤:ÐlÚ>Y|A1«4 ʹ&CC×x TˆæFAÉ·b/¢ãf}¯gg6÷[†q%];?’dÌ·¬¼MEŸ×.öù Œšé÷%F‹÷¥ÊJÚ ãümÚÕ­nö[ÌIt­´…Ó>MFôs&§ Ú è*+KíÏ Q ìç ]ÂD~üò"ÌãŸl‹V”Ó¾ö~œ©‹R {å®pË ¯bNìˆíýrÒ^.LËoç! T:¾¦Î*ðéSaõk%³y¯YÈ[vg”§„êú¡Lh(ì8ÉÙÎ4«ÂÛÞlÎÁ·¼zˆ-¹$˜[Æc§Á¸ðÄü|EJÖt÷·‰*åÚäA”éÃ{~õ&à( {íÓGÊù[‡­pá…@cÙqT€Ìà—y.«tÉœ›£cÍ'…ÀJ”›í“*Ö*Æëtö#ET:™¶TY•“Õ|=Wp c]¼“Ìõà‰W•цN‰ˆ«ƒ:\ïïã;Ë!¡ýËX½o))§:@R  u´Mº ÜN‡m|û¥Ê›ßÎþãged1…ư³Ä'îW' ëI½#ˆbdŒÄK$°Ý§~N9„k5pžËKP­ªF(f€ûy…èhBz¥'ü°˜b~køºKåé¨ù&M¦ÄÛN¾¹ÜMÒUN˘QÞ<§hšÀÞᛜ³Ìø„ÜzÇÚMØMu#>ç·žOEu©Ue{årbè¸ä Qž–o튷gõÓÙ®$ߢæâR¢åcÿ|‚ûè'«ìaàiK½I˜ñ,™lã`Æ'yP›Ò<1¦4äuä‘cqRm;¬Ÿ8 «ˆÌ”enW‡.öR‡©Êô·äôrd…£úXãs ¸^Š–‰¬‡OØN[©¾Ž¶í£Då˜UEQ'&]¶iVS¹/ æc<´Õâz]ðàáEÅ»Eu*U*¸Ï‘'xpCö†=ôåƒ$`~åfsoÜÚoz¨Æ]‡[Cb¬1ÖFƒ/w‚œµ]f¶BQz1Ý*5É%¶XP𥪺ªŠÝÒÜ);Òún«£ïÔÂ\g ó5ùC£FÀ™•`Þç ‹nk“?’?c);Kd„wïq\ør£šÛÌ[jw‰QºMŒ&ß8ŒÃ"÷­ ýœæ¸ÁÞfÖWp*ó…£®äV ØØ`™FµŸ#ç«¢…›³JU‚sΩ‹MèKÔ¡.ÈmÙs*¶º¦0’âÏËQKð))€ÒªßîÓ»Œ]j;³ÔEnxÞòq,Ö©çmPEl×ÀŠNBX‡•Aû9”½„*î=\§ §ÍÛIÙþ‚¼‚ x&-Cwz˜Èkò9ÛïLtúD„P9@Š«ÛæÏu¸eùUçÃûÌ[Ö«É*€~3ÀÅ )…¥T„h-V›_Ú¸kß-Åt7@þGÍNé4 ŸB9JÀD™½Y÷ÞGv-[Ô–:Ö2†8Û=±é™+l©©&M±i Ziâ½@¿™‚‘FC×™¤Â½Û<£à›´¥2¸d…¸‹¸ú'(cJ% æms–bœnÍäÙI¹5÷L¾ªóá’Œè«á­îÄoO1þv?l«²çöÔ(άò:/)ð‰óY®œ<ë³§ÊÁ îÜêíPb-D³¯z†Ë—* Yâè—§à†}Cb¾½É„½ %x…h KmQÒñ0so†/éâq¦°[ ÇYCñôJHöô¨ *SÎûØ2Åï×±$Åû†¡†Â»Ei¯J˜Òí4"ƒ5äÿ°Å„r¶©¢5Á¾6æÜ[P}ݦ´àl_W#UG95•ÍdO…Û÷Ä‚h UÒ<Ö'Çåݲ¼Ær牰£‘›Å^¨lëfvw”TÒ>šªTíCj›.—éâ!Ô»ïÊŸßýÙvG÷q(7(؇ƒ»¥“”öIGý/8YrWg©…> LÁ·lkJNʲ*+«äK ¡¨Ñà,K6° !ØN¬AuœÍ1Æ¥ÖÁ{u?õ³ÍN²¥€|Kü[:å §Y±gü}æTU/Txe+¿îõ÷€ª[#!âÝrظl¬9(©f<µCE·u¦$/œnCoåÀãiUðÚ€ÄܤĦu‘L+‘ÒT»[q^ò!åÓð&%E‰ú›&EÜøy²-[ ŒBòÔO?A¾ÃsÍ·ó¤8-È68µø÷û¶šîÞ›]*È“½´Îñæp.Þõ± ¯ò‡Nîvs3gû·J£wWVÂáQ›Ïš¬$SúS¢¬­jJ®GËÑÀ:ùŒÀí"G…8Óï‘…PÎ’O<¹Þæ°å¸‰ÞÕá3 Á„šnÊCŒ˜‚Åé*à…3\ÝVäžÀÍpR@oJq;udž¿ÀLÆo¿aßX/!ÁîQù!CÿoUè…Õø±[5qÞÉù3ÉÕqO'1§Ò›LÔKE¿7Ú8“fx!@ÐmΗ˹%ÏÅÎ9è¤4¾œ˜#8ÄQ¦ï -+pȧí8¸+*Kû±û%øTÓÊâ1í\ss*KâdmÑ&Ì*V\ŠÛŠ~!I^CŒìJÆMý¥¯YEdPœ$óÁÔ?Vçí×a4Æ"Hª¯+6×-­©z)€³~¨Áœ¹àŽt3Éø…Ygy–9Á™Z뀾{ZßÒt·OîWy4²ÙÆœÕM|ÒÕ¸2o¥¾éÃåÇÕ©2±dÓH£IËÔñeÄu¦ó²Ãôì'׺‚£žÓ§ªÚQ<ÜRS 5*ªƒ«fæ?ÅÔæ“`QÚ ' ×èXüD$zmŒ–ܶêìE“‘Ein îAóˆaã`ZD¬D „µeÚÐù¾Û D¼Tk"ÈeK°¬GÿV¨1ÖÑV`ŽSÔX²ÛRâ6äˆCƒäF›úæßÙûÉ¢–ÚÃ…eë–e7‡E³ì·J,E©ºù"ûÒÌI4,'¡ªÁ?´^ËZºzíaJ"äÁÀÝ&;ÞMð`Ôm¡ÊŽ‚RMÇaÁi€íx!<äI¹÷“ŸhØW(ÁTÆÇI1E,mrueæÖ¦,jŠ=G ©’QŸ¾úˆp™HU¯ Äx<½ÑGy+njÀ³l í^—*ÃÐGœçÁHOÝ¡Sµi¶WBò,Ý{›4ª¸ðèõ–å;!ƒ\‘è*vpxS2B@U»x¥÷‰·è3B<Ú$~çDG#_E‚úJ·ÄóÛèOFëfË÷+¢3ü¸/® ?-ñË{7]jcÔZ ”ÑÖ¼6 Û„”d…_ÅþÀ!Ý.´€u/ГTLròGùÕMœ É8áÜúfV9˜êCÙ£uúÃ¥#À%]"„QT„äÔ¥Îu4Œî§£Ù‹ÈõÇi:ðx¨ ò®¨Ÿöµ‹shnFÁñèi“+]%S"âÊ«=C@óTÏ$Á!ŽZå*ÞäTöe”ÛåæV÷˜Aø?Û ¡;p>H‚σŸ½áݱnÖXØ}ñko…¾pœ*(ì’÷{Z$Tñ«Ã„©&eŒ[eÕYê}T-rÁ¨ Õ: ò·Kµó¾Šy`Z9ïÏûC€-‚J±‚+ –/aX ×ïë!ºµiuYÜÐ+8šþ³îy@L$¦FÝ™tŠ‹1ßÀ§DœõJ&¢XÉ9a>Í‚õ2)¿®B!ÑMc÷AÀ …eã÷qid-—÷‡­U’¢ *«[-½ü©ÉŽëß«6- Èhq«±öØDv—çc…›*ŒñC&nŒìPªháÝ9!‡ òIJHg…ø€u›>žf'rýVd™Y¦2ŠXçí»ÊØÎ3n.ë#ËÁîÇuïWT¢—;ª–/®(©c²Á2q]ÜQ¬ÅO¨É &ÐR<ª×w[?)e^ Î> ÍÁÛõÌn+Œž¦x\ëO’qŒ­Á›*ˆc^*ú¼ ¸P%UÁã”Z>¦*Â`§ûH<¿Ë.^zä;"*ËH¸ïTF}¤ðIH7sµ7\¦m½tokM®D¥äZ¸{ÚÌ#ù fÞˆ8œÉêÜ÷kúØùsjÈ©©ýžlr \&Å®™J[ÝØ›V–GöÄ!.Isi{F•ÅúÈV[ý±l·[•ð¸—Lø/îM®¥-‚ ùž K†“ ‹Š3wÌC'¼8º#g‚åIóRU)Kó^‰Ï¾Cv#ãžj`Ÿê‹ãÂTÕØÁUJïí*‹²3B"YTìÃLK‘Ö—³gë+‡Ä³®Yk¯8æ®¶3l×¶’Ëù\.·uç-—™ÜMñýDE“* ü® ¼åsa+÷éíØ ƒrå"P OÝÅŽ¥l6Ô€lú.K̬º¥——‘¶´Òüe=¥8“‚EƧ#Ø—L§qc7`«¦œTñë7ۨʭY ¶L&¯j3 „w†åØÐG×™Pš^ÆA2“e÷žº@/9ä¿jg`_Ò…b!îˆøaò шQ áÒ ¬rmÛ¡&» çdžš¯MÉõ™ˆzˆ©$PZ*/vÛV2é­ÐuØ`kàrû…äõæq+Êuœ¹Ã'ßp@O< —ÒŽžâqŒ‡’$jØMÇ(©eXhGsxkb¦F\9”2T~æSsKkra- `…ïd£}¸°Sê™LéåÊ+a,aŸ B8.âú‚=6w©&§”i¦N€$Ÿ Vv¼[Ñ´MLú ,?]°Òe¨‰}RÀk–¦yUƅгMB*Sœ”œTd®.@M€cå6÷+·PT—çãou§Àÿȼ´ ݤ^1Ë|e¯aæÊÜ*É×nVá"øTn¹iÑJù ‚¹8}"$à4;~Ëi#Õ–›x©²Ä+ÅÛZ®tÑO_Ä7– Pö2V6Þ,ã §=zìóÔvÍþ†%¦÷*Ýòñ¬\w ¦d³ß~¬A Kª°¼Rîʼn xÅ™SÑ4ól3¥rýž½mjN’Õ)ýœÇ)l¦]æfû ðÜ•EZoÈZê±(b"›bâ¬,ÒŠEJ€¥ì¦ËV›O)o0åP"ùÝ,ß´®'¨$‚ë¯ÎQá]øuwmÃÃKácì7mNÀHЮ¬§"fþƧtQ@àØªd§ºt9ã’‹ hªž×8ñöƘ6¨êk Q÷L.R%¯ ¬X#­ò[`OÑâ¾ÀFÇ%S@ŒÊ š­‡ÇêaK­^Ñ`²¢ÈEÉváÞ­TÃÝ¡:|q.3iÏ–Ž¦¨ù¾²tÈŸIHéâ°‰ø³Ûæ$YX?]&äfW«‹ÜF^)U0¹`‰5®më­WÊÆÍʯdžßÒÔPOeãzXa©ö8õQi¨»« ý4i8Á€-¬1~±‚ƒE‹ Ö×ü±“·™1 X¤žd&‡/|Š÷6#›ˆvg§îŠÓSN¯ðÖgeYD:XÅRË2Ÿ‚Ӡ˵:Ú9ë!sùÝ5pK”+uË¢å‰]U¨=Ûä×ÓYßr5ðõ­,0O  ÈX¶Ãó}²ð‰n'N渖® ‘éÙÇ„‹YœD´ÞMàêÛ£“_ök°<Ò©‚±î¦ldwžGå"ïnÇïçÕå¾\*MõVš}OsTö¼yÁ/^Ñó;›·› ]Ò©žd<Âe{q¸¹ß[*»ÀNà?SqP¶ªt<í©—9¼qO?û¬ïo(ônGhhéÚzWe9ÏdÂX1‚:[~¤Ù´> Ú g:â±änJð“ìúp/DÙ½Ì&c•¥¶¾%Ó)ø½;9öðnCÂèóëâ-czô#®¿dÉ“£1*‘S¬«DÓJ¸©-Þ¼Úœ®Í­®ßÁˆ\R~¥#£þ:s˃toŒúë§jøJ´L•“p8Ü•:µ jï|V¤†òÅò²é-ÔÁÍ|/¸/+w×£x BŸÇŽ'Mf8×l›ïðÉ(á](òØn°p’1¹È9Hò†b^‹b‹Á&¯£c•ñµìX¹Aë­w¼‹Ò£Í¹Y®)¾Ä]"!i×Lóoe1ñ |ôxˆ\q¯UQ¯gUxñ°gì[’3fl>'pŠˆ~û¡›Ž¯<Ô=ÝÏÕ P´šò7©•ù:߬çàæ, uc¼Ùî(ø¿àlÌnêtè× R5ïÆ9.|þkǸ]WRAó@€÷;ãxM ä;8xö!o¶ÍÖ§ÚØ¦Ø°“Êjgó0fY1I»u €‚!‘-GjÉú€„Ëô±Èùôç › ­å(¼ ÎíjØn§0€‡€¬åçy²¿h¼Ú³Ú½]`Ë')òpñÆ?©øÀÊǤhs5äT_ ¸­Žò§H4>+_¹¦$ð·h-Q¼…øüªsüm–€Ó"SÎxiÕ•·ûJQ£xºÕË d¤‰¦°Á梔rþÌMÞ.å1C¨,+ÒNzÒèñ°0 v©HqG„z|ºêU­Y½£Ð”_©¶§BLÃS9—Â*FëL½¯+cõïl=—rB™ïÀŸ»¿ezó‘ùÞý)\šMAHko"¬œ&ï¯!Kºò!ÿ.&|pÚ‡³·[uªm…o¼…·ÍÁǤZáŒ& Ÿ#¼V0'›¾íÝ$*|,e+·ºoN€ „¿„ì6ùä<ãE “wUýƶ¥!,kMPÖ¼zÛ8ÏlƒT`«Îé!wÑ"ÙlÀ!Jº, ïÆ>ZÝÙgÁž ùúå5ßÃÆ…X¤up¾?Þ¬­„ý-ïªs$²Ý«È.ùà+â·õäñ!÷/ùï€V¥Î‹Sc¸$öòÃÊ`r¶ÞbZÞ{TGõ[§’ST²în²hngÕv=„­ÆÓΰÙ¾Ø1‚‡ëu„åV#0&›‹¢:”X{y/çš¶¤‰–÷nwqíH·d¸rL=¼(“[-£ÛóvÆà/ð”Li~–ƒ,ãĤû€S:ÂØRJã&>ôKxl)V‡.¸ Wܘʋõ°j¾æ'ë9Pû±#‚ÓöîãŽ'ÅŠ5x­* »¯dÇ9±Ê#;D@õ)^E&’©Îå£0èÄÙ{=¹®Öà‹à&»ím·IâFÀNݧ›„SêÌ‘p•ÿ¸nÈqÈq¼¾CÛÀ¹·N#¯ªê¯?d'*&u*ϠܹÞóc=­ü$&Qi—@ñšÀÿ÷¶õ}ås¨c«fÔ6Ÿ×ï%$)Ñ/×Ó+ÇáPäÌ]Óò•…h4¶“ÿÚ7Ìò79'—c;”ɵˆfO?4´&$J¤âÄ*šÑݶgtÁÊ'nè·ޅȳÝûÐø;-Ùå=Wh˜ûý² Õ¶^¹ ­Vgª²m…-@¡(¯ <¾­½E>Ÿâ¤w±˜¶ÏdÃ鲉H›KÐí|/†»8F o¢$ö¯Éo®ŒºKšÉýFîO°ÿ@Û°mŽùܦ9ñš-å2ÙìðhRàÄåÞTógÓ8í2^j’“¼o¦ºÉù›Š+€p v.Ïïv¸öîýt¬OV>§1±TúÆ4UD½ e³#ìEit¾a;` `Ê“¼œ³.e-ëjÜ· #ƒ«56»ÿ;ÞccÅ1ÛŠ4Kç t¿Éá‚ȹ‘q›sSAÍ Äî[û·€Ù±´ùåhI1>-lgj³qÛ4®9™ÛëÃè¿ìÈ-³5qÜsƸêÄݽ®oܼ(Jô(ß>¤p¶¼DmR2*´iG7Ã51À{Àí ^ÞfðÔ:æ ±ø/®¹ùÖ#K=YƒãiíÒ "‘Þ?Øàbþ¨ÌªÚsæðˆÑZ‘ ?`Sv]EJ ×7žÛªL Žõ  ¸:$6ã` dü-7«Ïœ»ÆÌÁX“WhC @ªwÌ&PÀ”r¬lá>Ûª"ŸÏméF¬I¼ƒ3Á‡óìîȪ‡~i§oÚxmë|õÒC:è$óN?ãHÉn]¢ô\†O– Ù8I•–‰+:ª°¹/Ä_‚â£TæÔü°Tóè‡ÄP/õb{xT³ç,r·oõL2axÞ“Qïg.1ïÌ:M“—*íZ;ä$.»7í5·Ï¨á¦…u6;Jq`Éë"fÖ&4ÓGÿ˜‹ïñäë̤Ç!j'0¿Íσ3 lÊi€ ˆš|»Å±ÞÏÉ+UÎIx­7΀ǔ{›’”™Åá–2AÂÍiòm:Ý@‰ DýÖ£ÀQ˜ž©É·Ì/î3‰fäuʪòñí0ÎbE¸$¬^Ö¤"O,—)¨ÙÀÅxU»pF,ÅÑÝÒ;;Jêæ´9§nÇ@¡¸Æ";ÖÅ•äëì8IÈýñòp G@püZé]]moUÍWå_œ<ž:Ýj4 ¶8ZHá¾ ¼¼6_ÝÙF!¥õAÇ|ªÒl-. ¹öx=» ;è ®á’þ:+奾º’9ÁÎ.ÇowîÏ’cµÿÈ;X§ŒMÅv½dÒs_?Ö)Jøþ85_çà‰³ÂŸùGEÞMF´Ž²+t‹jvãÇß‹Û]î#-Ž”ṞÀÄCDÁÛ”op*‰À½\èmÕÔáxɘœ×«W3<“;j«ÙÌwbÚÇ'Ëð²´ÁÉ3_bßüÇísîK©/Œ"rm²­:="Mø¸7v«Êù è›óCÁås²nâ•ÅôE"0k1Ràƒ±ÊA”‰UWœØŒž¦†´Ä@³+ý´B]hœhð³#ï¯ø:EkeX lìk¶ó¶º#M ÌÇ>Ï0ðΧék :^K‚*À(^Å&‚(à³KÖñMu,>; Š®{Õ”.PŒ0„ÏxX·ÜžÉ-œR½Y¬|¾!Ó­`ÈìA{1J}Ú1­6Æ#ÿ’?Þùñ=Àü8ÖúÔi×Ö½…åše|Φœ91’ý¬üGQñi‰Q~ö=Œ¦ ƒnãÄ8¡¤Ònö„ý¨-ÿñA×°¿´böÌWôo‹ƒüë'<'ì…¡^¦A¯Ç–%¼>ç­ßuå1«6dØšP’sTæ ¬v‰†95rR-‚ÒÌÆe»ó‚|%ø£´/³ŒÖ½@(¹›8HÒÛãn¸·Íцq&–åD÷+õ£pê¸ÊmÙF¹ °T]òU 808÷ªã¤T`ä°Tuöj*’ùt`øË6[Ë‚¯˜!O£Ô[ % Á€,É ÕcÅUº3B”„|ƒaµ¯/¸Æ…=·aÆaOoѲÛùë?Ê’÷pe¶4-¬§¹ƒ¡ Ãe¨0-©N=É߈.ð=®Q·Hì8¥;"¹,ŹߠÀÀß‹ÏN§o ¦bSë^ÏBaÍvÄÊŽØ¡3®¤à±!ˆðù0yÀ™ëµ<°‰É`ê×éàBܩڡ2-' MëvÄ&¶1f‡FÓ|p®SÛ¾RÎëB ÁsÓ´> ´Ø_ÀI·-l«î•æmÎul‹t”„§GÝ1ì¶mŠÈÝf•£Sëé*‘i¥Ù.ˆÅÙžËÖIÇ+µÙ´¯MË+Ù£rQZS@8†|úÎÒí`+ËbæX¸ž?<'IiÂ"â•k“—ª¥9­¨ñ* Ü9Ëýq÷À·¬űu6xg­Ø§Ç®6}ÆC‰Ä/uK<›ûÍ+g¢[;üUÀ9|¶½lˆ½/·”9Ï#BÄD`ä§Ü+„V£0¸é‚R:¹ÕQØ«}§ríb[7Ì@ø‘sDAÓh¬ˆ©Ä“±?ä“+?[õGÝ÷{)V%UP•TÈFµ¿ÄXüñ;—²%ŸÍ„:àŒ.v_màíšJQf 9 N9„ç¯Æ±4ÍØ}4™‡ô|C!ÍwYó¸@²wpê­š#¼R°ÔÏ¸åµø’m˜ÍÏoðšöŽrZ$ðÁåæY®.)âigMö¾O[i1··2Eó$­ÌOÝ“iòã~Ûb^R{;.Å¿ˆ0€(GcTþ?sãŸSËœƒùWv„¼J‡‚U™M0Næ+9}W¶¿HŠ~ó~$l”]Îê$ËÈS^Å­vÛ–n‡A ª¥Íö\ËÀÁ\ju˜eNiʦÞZ®Dµ_•ˆ#ê®\ˆˆß©,CÙaI»U Ï.¾˜‹[Sáòu´VF`OË9d–ŠrZ`Ẓȃo’\R±œï¾Ç^Bl€L·çaZÿ»×MdM$òY Á7%vÞ©Êð.YœlÔhëà ªTT&}8×@#à‘°ëŒÏ¶?Œ}ÂBñ¾UÚð!Ô‡{½Týˆ„®2+apr8É÷2<+ÍÞvh¯6g0¬ÙY P$ònÑeK1þ [ˆU÷B9Y …¹»çuî:*D&YB¶[~ðá~„Â1ŽKj`ñìÅ1§…tÛ:÷ëi¥ñ™GõV&§¯Ó{› `æñjøÅ¼‰C’©·[+æE^§Ô— áG¥l„¾ezàëÛm'1Ç äÆgf¶Ðñ:£ÈË$ëå&‰dUÄ4Q… JvbÖ]²ye½¶[wM@¾M`:¯±£:5I©]Ûrº ¸¥æM¼ú@]9öÞ¨>(ÖÓÎKLf´{\>̤ßg°Ñ¡6‰í&GƒÓ/ëÑÓw9]ÂõX3¾A–ÇP—;™ÔóŽÈçÊ‚?ÉÉHm %kË…Ÿ¶õ¶Íw¨`пŸ ð·{yòþw’ X‘ɨVRoa8¤j Ê&éІ`é¶«ÌDär~3Àa=3áÈÎ÷P¨Í´5ëj÷ÍáO.éY— ‡>&*?|qvڟΧá¶3ñ®GŒ#ÊÿûŠU1¹,ts¦Hµ÷lÑ+ßÐQ3 ¼¨N•DÙÏ%æÑ3f1¨†ÜçèGÁ“ )sdƒ”J•µ4Õ-—q]Î/ÛõÑmû7Ôú6ØðTUÍÊ`Z Ù/Y-^l~|q}Xþ|ÓGê›§Í:©Cö8±êáÚ½Æòìvìè"~3eY%±ÜÆlß!´=ótè:Tií`Û !¤JÎÛ•Ëü©ŒÉïÛoìÛD€Mâ d-7‰Árl°4gÞ»ºÕ̓qqœ;§_šSY^[ά0bbªÚIáSI§’^Ÿs¡Ü§âô8xw´+ñ‰¶FIÑÚ+‡ güuÛƒ2{n·™ ”'é^[‘ýUH•8k]W°ÉœK“» £†±@%.Í2ÃŽUujuWKSŠc;Åò9È: Þ9.'Üø>ìâ¨s‘¢q GóóéN#¹<¥›="äq«Ûz_ M'k~%8ÂnâévˆÅq•§†ÖJrÅÆ|IÝ+œöoíË ×/XÃH2ŸAWÅÞYî8Ó¬²>eÿ ª0¥Žê§Ãh©ì®¥˜¤µ9ísr±»´’÷œÄ&®öÚ~qDìðKË|bUœ4˜ ïi§fńȎßgJìtJZPЧa…zø'^äj„ͶNã¶šÛ°3eǵä‡@sñÎOÛlg!`d*;ûŠv‰‚éf·êi[ϰ&ÍïvˣKɺwº{IUamÐÁ:_ÕÂÊgN6B e‘Fn¯V5ØÕJ³,žIeòP7'Qí @Ó%£¯Ã2ËñT¾ç}ì>ÕÊL+.7žoè ¸„¶’{è(2öË#ŸjO˜t ák w™•=²'ÅÁv–~H¶HL!±¡IbÐ) Þ¾¸—EÇ’cQãiMUèUÅtîàá IFÏÉÑ,8fn·¦j‘É]ÀTx‰_í…ŠËÛ©iöœèkžy‹Ûé—êˆFÒ,q•! kÎvI™ñ”/6 |û KLûPWÖ×õOÊyNcgŽr¶é¢8Œ‡ÝÎí²Í÷“ËU¾dw|Õ$rv|Åö-ªa4,¢n1jåÔÅþ\Qž–3«ª5óg™ya<œxRUu{¢†þ” Ç•SZNX‡>KmŽ'ps‘`×b¸Nœuz¹?Å’Èüy8®}®B Àà‹m’zö5JT«w²}kŠÏÇ<0.Ë6N[œˆžÏ÷§NÃÒçz¥p{M¶6‹@µhÅd^ŠpCb²»Û}wW-¸|õ;Ê&¹®S”´<’ŒJ&·E4ÑÙN.ˆ$•RâbGÝ)oIbíJws™¤*Í& ÛýH´6¿ËÃfZz³$ ë‘ÉšˆüÕÈ,{„w&8° Ñíi½õk <·KÎËXߨ´AÕ%uéÀv “4×}†×yçršZ½áÛTŒÙì-H²Ær‰ÍòW?æ#‚w¶Âˆzæñ³Óü¾”›SàOäT·]ñ ¸×ì¡ô¤·ÉöÈ"Êóle"ÖeÒ1‘”­·éyl˜ç”å Iç²¥3ù8UW$DAK%0ÙWWM'M‹#ÀÖª–Ü'Jq&Ò@~ÎÍÌépO81Œ™íö¸‚¨¾,JµøØ!!Ô÷IdtZ®ìÌVz{ÓéþmHãÞŠBXtæ¸ Ýû"І)ZO© ÿI Ï¡Ÿ‡ëË /‘ê<Ž#àa!F| }—Š4ƒåãûY>¢ËÁÀo|†Gö5±™¾—V†8Ë{‡ºbˆ²äA24'É«Ê N€`IšÁjŸÁñ¨N‚2|ãvß`vÚ"Q1` ^xŸÜ HþrÊLÆ}þÞÁ+ì‹s£©‹æ‹v']ÿdn…²-€ 2†„wÜO›Ý’Æ_B[)ßœd‡â 6µ™?ˆY+­ä¯,3¦í<"ØØdÞôÌ@t €Unl,®Úö³'ÝØãç½:Ø®´Ë=œ>¬²ØŽºù¶=ÕΞ*—ÁÄ 8OØœ8áÈÁ ü ]¤6–7ÓÏÝ”&P)‡ç$~îu²‹‡E·ú¤`@œÒÅnö›d2æ:EÖªSŽøè…’’ÂN²ÄÊN‚,´r÷}4œwîön— ~ròAâ¸QÆÚ¬½Ÿï„ hCZl,'ÑŠURmâŠM=£x†ø’:M8½ãi€Mß«F.a ;!¿Î|õÞ¯êA}`|=ĉóP¥g_À^¾6é&ðÛý°pUä#Ë~È|2mÇ©n6‰ýpªÃcs8Q&ÕJrZ\nsâkM^=ªZ<œK¯”«v}cX-T4¹m`mœ¶[ _7)+‰sìκÚc[^•úE’w9wSf›¹*wþÅ­ ‰mª“°Ê6‰,ŸÄoÇÍW†ÃÎeðR;|-…T#x-g‘ð܉‘´ øز/”qÙcAH!=Š„"˜8›Bl¤QbAÕ õ°™¯C5 ´ "«ÑØéÌqŽ ±gRÐ —Áyé¬>räà>û좚7 †¬Û>U™¨s½’Ífp‡%8À¤bF°‚¥ÂÃVAÃzq: gK0» ÀprbT„€!&eX¦|Qÿ­¢L^·- f“Ñæ#ðÀ—|ŠÕ‚u*æIwÒ=»Xq)8Ìz°æ ¬ÆWv¿ïå|.q#ˆ±Êø .B±ÈFó[,³šçMM["ÓÆÙD°g!ç*YìÙç3[&µ¹¡né V°Gç³@HX¬ÖUa­äÆR+Å'ÀäʱÄa ‡¢øsø Û‰ˆûáaŸs±N±ªœ®x11²:ø…×pà ‘u”cÌéÒÕßyMñç±y7³XÒ}’‡ënn»ŽÍaÓ´øÃ©dÌàßxÐòž4/ŽÎT.‘Ñ9Xã4ÖqÜ4QKs‘QöQžH©NMÙ“K¨e‡Æ’ÝÙ¶ðì™SuÃ8yIŠuM[^¥ì¶(:7^„OŸšòð_? òœµÙóÆy89vÍÆ}uÛ|1ÙÎ.:hB¼ØFu`ˆçÀ9uÜ 2òéÆûºý—!%"+™gƒ3ßR²? }«;¥?-é‰ýño&dEp8®s`„¨2øâÚt[néuú™œ4QÓçÅKááË+ïxzC)Ï]•­’è»Èš’ ·Â8Êk•z?­\UF›1K´òr²nܳò²ñ­t·!{¹Ì Ľsõp³'w'ΤŸk¨1d‘xC¬ÎÈsÝÙT¤íØ_Í*mÊðÿåz³O2Ýpû{}K2½×^µ¸ø –4I<ÒÍ©zLàÅrËŒËi}œE•ºé°o‡²A_¶@½)×ç¨<÷®\]ÊÍRTÇ*ÜSA–CºCÃãp“Ù¹ðŠ2D…>CöŠ>yî7*\aóhÈÖ‰9c“;Ÿ½òŸ=2Ô˜æŽ\9UÃ~›E%Ãt²òr<)Ô•eZs²úI-¯)­,ÆÄ™âî˜;‹()›šX±q­UbPÛˆ×ãÓ”þiêI×l6k,ÌA²“Y6Æû}9IÅ«K„"qK_6ØR$'±ùõjþÞK¨(BÇàb#lw¶'w:Ö,·—K++0—ÈNgIÍÆÛfnnŸµ ­ÒÑB³›2Z ’X°¶`ZX’¿,š_§ÃéS$øLÎ¶æ š¬¶BSG¾É6¤<昗Ù@½˜y5¯ºœ8Vœ ÍÏËÂm°]è§ÿLBtå¥_QÍJ~{%#áúš™î¡=xØ ˜B·͉NÀm9üŸC©`=CjïWqwÇ:S@cÈ‹9-•îl~˧5«µ¦±>Cï]‘b¹•YñÁ»!QYonÏÛ°1c,ü£9}M+oS7úÙ*â±\– ×i«¼^å Ž®£Ì¼· € ’òó6Ïö†Ê*ùÞeÖÁSO»>Ld>·ÞW^Ö_Â}¤òVg{·z[§´ÑìlhË‚^©?,$Nc&«.ã¡ÔWÒ}‡*¢œØêʲra¼fJñZy¿ï²Á…óØ›Ný©Ó† ¹Öš Ìç²Ý;ÿR+,´v,ðó»kÛ^ŒÓP¸±û8‘§½ëb)Âb‡¥8…rðW{·#½n—9/o›Ð9¡%ßrÆçÅsDÖà;D¼l–O‘~@¢ôÎd«åÒƒs›¸CÒ¬5RÃPùmÜýuy¾z›§ö€z$°g,PJ5Ú‚jƒrB={‚šR#½E}öK²MKõ錰çù‚^œ«u<¼¿…5ÇRÁwéÀ•ssÀÔN-'S/¥&0,ksêñã&úûlwzWôS¿—íÏýØ!½pžØ¯[Û{}ÛòÙqEßíc®6Ëk’ˆÄ)Áñ½äàÚcîVù²ÓݼAä;» 8m›/€¿z‡ ËÒêòµê£²E‡¨'_®Þå-vi ãq±²cîCvqæƒþlZ®â µRÚ<¶‡oûYvd?%(ñ^`ÔÑÈÆÔª,zKRÛßñ817œÍ°?D$ÕÀ4¶#Û>mu&Hu\,W°ävð)ª4%©ïVSÜÈ´ÛMªÒ?V+LJ.¶£¬‚Qµj耵`Ùž½Ÿ¸%DéXzeš‡”ɹ܎£Ûr¦©âGlì]ÊÅÓ~v1$•DBP{ï•0^¼ç08JD¼Ø× Õßûá ‹m`oVsøBîP硜?þ£ÎËa7 O¹åÊS‰žË1:2Rd íàCŠÃÏ6{×o/ä>G_’´ê,PŽäóŠjk¡Ѻ'GinÐn½$À}%,“³¨$È÷iÞ®0F´;.õ@£]qrU¸O)û§’£`Qí¤*ï‚®›DîR÷«¢#OŽòaE:Ÿ¤¬å'a40Ûî¨ÞÙ6¯¹l,zìŽp>€½߬^kaÅ©ÙÀœ„œÊ/tûú¼p¹@;/ø+µÃãg­ña+º$p˜Î¸`[>é ¿îCa÷“4÷õŠÌÂ3ÒšõÛöt‰y¥çÄf¨µÛ54ت%qN”ÌÁß 0ÿ+¿ŸÚ·£éÅyæ°ê쌕̯ƒÛãäj²ñ•!Ée“ËXÚÆmú‡x±BR’³¶æ\=XêGüÄ)iMLùuHÝ‘Ú3–¹”V»$Š‘'ÝYP«ã1b>šÏ¶/®aŸd;15'¦,ÖŸœtUžç½.åBÕRÉð‘Où1(ˆªØu‚‰¥1—ßc”#éCE\Õ«å.³ñÇ6ëG» %Ë")>Än±ìŸºLb+9E3¶Õak…¨ßtmå«Á’ U÷ŒU±ä¶Ó[Èu±—ðX~•rx\PÄ{ey–¦“pصԛÆXñ¯@’C“‘¦ÝkEUõ¦Ì:^Xé5p9oÝÒÀ p¹÷]ÿ1…";N/vÁΠ΋”€W‹W–‚@ºHgƒ.'@«÷(.í%ÂåFÈv¥OÖsû!ªÎPÙÉ"g§BAØÇËNp ’5ŸäÆ¿òv¯ïN˜¹q5’—‡7ˆš°œÒ_Žn|ã”r– ²ÃŒoð“êݮɷ½v_ƒñåUæ…ÊÜQæÊ C"nï’¦þSÍ\%/W•ø…¾ô¢ï÷èrᾚ<´Åð¹R—lM*Šªs”ºäívnûV‹Æ—xîG!NëÞ {V¥!å£TŽ»øŽ$<»B ,Ž8Ú¡åÕ~ø£öá$µò¤ãsDö0:~—]å ›:èΫ±«²hmU:M{_D›˜uf‰Og7ªBÄ‚YŸv9¯BLû Tgºù)6WÂSŒË¨‡äüaû4&º«ÇÚF½|î¸Kœèd×hYš59oS4â€0Dš¯€=5²7Æûiv|>l˜ŠTëuä c„9q’²¨°@Ìc3NËNax†JsˆëÁ‰¯²÷à0·e;eÀb yÁ¦Ï~& Ëg8F¬UâK¼ŸÌq¿ÔµàˆÜ¬`ê²%-P\ñö¢v‡-mÎñ4¼º*[A¶wÜA»ØD)¢Á»ÞS@ÐØ_ЬN%{Þý£•†sÀ­P#+äñÌÚçrµê˽¤Þ»ñV±—î=l‡ö”|êy¾6»¦yæì;õȩ—¼¬Áó¼&¢ÉÂ0± Á 'Õ&Ùü T”‡·ÁLoWSlÔ“tÙÂ.‡†©€óe˜]‚̬Hðg_r™¸²éG™òÝcbâõ)µ!r\ÎqajpÝ.äòÚñoˆ©¨½°<ð^¹0ìƒEŽùCä¹å‡Ä¦nWÉwÜøóão‹dÍN«ƒºç¦â¹x¸¶-÷‰›s糦)»ŠçXOâP¬ê²ŠÿÚ¯_†¥ÚžHÌp›ÉÂXqMšy 'Skì<¡£V*TËõð?¡$‹¥¦j^Ì­>-lç3Š)K™¿Ýÿ›ón+yþ*&ˆk$&f g®”;^éýn?è:´¯]Bɤ„2|Τ~E?ãÖƒäh˜—Åfñö]Æ<ÏzFnŒQJK:Eæ:®Dÿˆ?ÔA2¦G:áQƒÔÖ@© Àu&Ú3Û‚JÚÊc«TS™N–-{™T>mNfr´ 1À{+ ö\[àÚpÚ<Ó( ${+—£lœ0Ž×rXlU":{´äBS¶µJÔòöh8{-):¾sS þ{ÄÞ'Úerà·ïâ<”¢ÝlºJa\Oë‡í O Ž×‹–ÎRôzÈ›’ ²ƒ, Ú ê²$*“f/:«(ü.öPåOÑsØ%—Ø—(J+ÁLß— HË™d>dªúhË<û4¸iJ ð²céã„©rÞÅã×ÁV9Î`=«Iįf^x›‡ƒƒæ¹ÙCøˆýá>ÔCÌþªLL2´„uÌ…”ñÍv Î,~|ŠÚH”_ºOS÷$H/†_ò9ŒÓ“õ(4d +ò"¨:?¹œvÓ =ùÂ$=û≓z4Q—U÷…»qpµ ã×é1çš¿Èë ÃÏ[¿Ä%X-àfùõ(11î"x½UB´…ÍM$6“­ˆ/SYB-xçž¡~¹ •à%º„µÉ:±e&½¥[+`œ™ÊÃææ&B³Š nÂVnôô—×ÏiJYT¤D…kÊ‘&‹¨d9,¬@µç3ÙuD¥×2\ée6~§m²Ÿ³ñò *§ó?¤Â‰’Ú+v=Ç ¥½’…¶‰‡•Hi–eÙ¸.kh+j ‚ï¬(Sp”QÙkŽSP]V^ ua»Li=ž!–„GÁ(…w?ê“I©Ë"Jø³Q¬ E!®¼oõ»ƒŽ84绵WÎá½ Äû‚‡oÕÜñqwëÕèe5ªM™ kØz·ûú=‚g˜ Ü*¨#[_lÛ–"TbažôÇÈ›<Ñë*7xSñuÒ˜PN*‚Y Kç<ŸM¹/î+:3‚«^Η åøê”üÍþw0ÀP.ÌÌüûs`²Hˆ#,ÿ¾®·™Ê’{• Ó!i<¡ÉÄííãÚZm1Ï8ð2Ú,w¯$P¦Âÿ§rtXŸ("EB¬‡œõÒl”N±ã/¿;Nå×sEÕA¢ ë\.@ ö¼(Ö¬‚³å"c7½à™:÷Zp*‰$æû^K\õY jÉ€]–Âs“¦ÄpÄ‹Iyg¹ÖŽ®ÝªÉÆdÕ•S~ÀÊ›‡TÕ1§E¾¶ð6s¤‹m÷êstEïÒ¾¥Màg£|i\/銫¬í÷>‘Ø vÄŠí-Ü* žÆYߦ—ª¼Ø÷oÂN\j‰+í`@êµTÅH’œŸÁÐû#‘“ôvª dÐçÔÄŠ­\Ú!%ßÙDκè'Hõ¯Ò^ØRƒâçßÅÁ\,PÙÓ¨„Òuø•_™xg‡×‡ êDÀ€1eó2öTBÉù&Ùšˆ$‘_³l¾)]G¨“§³ƒ“¸>É!¤†Qá€÷%QøöÅÇ™—ûµçW9Šýb?Ø`AéOå@ÜXß…“4Uâ6ð?*‰4¹fXg~àá¶§{\#í˜-ç’ÍõæpË™ræq@#œ¸°®¾)v2ãÀm¶Gü}.ËwéSŽèëQˆjœ;<&2Îyôf:\KT‚}“Ì:Í ÓMóú¡ã䳜œi“Á'—QWs$Îñ¿² âø¤¥0å©FW0¹m–ßòœÈéµù“¢Ý‘z~ò¤,ú59RêõÃÂq¨‰­ªª@G\#êýdy– ¬Wé~o+q…lϼú¡vMEîq3}`¼ûýÊÜ$ìú”|HáK “ˆ Õ„[÷'ãRú8H7ð9dEõ>™5KQéZIΞjgft‰Åo™i”ÂÄ\ɪ·¦ç¾œÜøw‡’€tæó?<ñ+íìöçL|Ö½;òùÌ3ò&ìÝDmÇ…÷*—û”Í•\Ý€¦bÛz²‘7·´›éU‡:¡RLÖ…<ŠkÔ&O"ÿ¡T³JîNÉ=¢oÀ΃Ùg\äA½ËÇA³ Û­sÙ+Žg&ög+$ ÁÝKBê|¡åIixÛ{)»Ôbü°Ê‰m§‰P°÷&Ÿëá1ÊQ˜· øKö­Š4ÂAuá·w0•v™âæ91^yœÒà ^çZæ'0K6ùw­º©®“0YùæÚY PïGô^Õå`¶ˆVù,âÞ,ªu Ã"m´Œ¢˜òƒÙƤL· ù,\èqNn(£š‰ó„HÓ¨Òº“yi8!‡iç+0|É‚˜Ý„Û%^rÉr=Wµ‹ž#zB¼Ïð~ÀMT×ppéP_–Êc)äGŒxgÖD@õ.+d¼å‘ŸãP³Y0<›°Ë[³x¿:xðVˆZ5³—ƒ\Dý„̲¦,O'Ç?Z0³âµè1»”ªÉr;Y½¾¡­Ô²_+$‡w餫¡#áÖ‰U.òî(±ÒíÀ)±ßÑ™~‹„êã(Ù\Ù/–¸v©¤ç$û.öè60èVŽ ý d' šåʱ[à¾î“Ÿm)•YNl°š[„'ä9û‡)i‡`‚k\âÜ9QáÔ&HÕÃ^•F@›çåÏ©¬-Ñœam ü:ûšpY=ªŠYyþ$ç;Auã¶8o¬û§Xí‘Þù&Ò0ŽmSFàGBýí¬ÃÊábMœrÈÚ„[털dÆ0)J"$Gõ1 ð³™H<Ašä’›xòê îÎ`AÉJ GpÊ8¶-cè¾Suþ°»*U°®RˆàžoÒacT q±½ùâ†ëW_ „ŠSPöfñ8,(¢‘dR²‚ñ°‰ÕÌÉIÿÞ=ûP«;Roµ­TÚ÷ÄÅ$kH3!ö$¬®êKž|bö«©,«œeœ¬ª„ʼ›#K£ð*ùTõš”l]Ö©GRÌQš9çß±zŽO›X)'À¾³—ÀdxÝ\¯¬­MÕ¶M÷»©/®8q*·“"T™·åBüd·ád|BL–¨~k`çt ؅S’ØjQ(-M3BDãô¿ ISúÁGbµ¤]ÉJ3L\Ò¬)ŒŒ3Ä®šæÊ‹”ÃÅ‹œŸ à&Üó0ÈðþJ.;þDiQº/Ç\oÖx£9US£ÂWJ€ܪ¨4ýټΣ‚û‰º†Ù åâÏÝu¼òSYÇÎZƒZUî*H'ÇÁ¹`‰ž¶¢T{M©µf™Oö›ï'DŸòݰt+Jž›$¡™&’qW¶3‰' bß™·Sj9¨|¨6bKQ†Fµg­0%û`æ#Káãñ_b¤µå j)nà8%ÄJaXšÆ´Nág¥M¬ìÊ­µŒ:”q–NHÑoNù§hDœc”0Þg”\N­–êö«ê–‹¨@,`-ÊÏgV.½>™Ô­æÝ_k‰åÈ®±ØtbÓ}zöÞJ_ãÓ­H~›øªûÃ;€¿¢³£â’–×µ‚  ü¤iC'Ýï&& ®d„R_û¸£+‚_î‡ R9´n™Ö ̳ÚhTÅ ¯?…¿ƒÊ'ØBî—()˜­¡rpSúwö“M¶ËƱ3+[ÖåyylÓí_੤íÍ—Ñë²$I×tDqÔ o©ålâÉÀjŒJ€k5C.‘ ö ç"¨L€ƒ•üÆPGé“ÿ¦x†¸?rï?x»D Ç/^\_~k‹7±›¦òD©Å³xhûEp gü¸ïþ‘ÿ“8w}×êȳtÒ ó­ÌVYNYªOÇñåyæPÌÍÉB oÌÜœË38ÐîšgË0`jÝ CO˜H—Joº¨Uà>-4ãÊ<=e¿äk½g’ßyUZXçb”á…ªÙºŽÒì„]%!Î(«9ßHè¨ðyVwµÐ£„‡/ŽÏó£2£ÓeX"á÷Q—Ýdõåx?¸ÄJÑV"JeK3`&³¹,3o–"–Œ“/NV·Ù„C×&Ž—Çõ¼mUäJWýs,dR³KœZ’Ìv³ ÎÆs!$žÊ—üKNä-M~Qк9ÒŠš>§1j;PWMß©~¹`Ü,™BŽocÕAòµKñ(ÐúšdÉêÍ(:Õy^©m%Ã2¨ôiËÞʺÔoXGsrYÞ)ò›. þKE b°~˜¬˜ïGÁÐjAxKÆøŽð^*ÿ¾Ü3é=íדVÁâÆ>iôPäËÙ{ä>ºib’ûœùxa@:n¨(y–AÖOÁƒGMŒ·#ÅÜe³D©9‚c „ÕôW˜7Ì5Ä â(¶Ã£É áJö F‹€ZŒ£YÇy'Âá;çö;/‚()ú²' ?’r›ÞIµ»ŽÙ2í§î•E„çPŒ,Óù8¹ØÆ:¤-&˜ÇÞÍ`¤¸Êx ý£9…iËÒ1€#ZU†VšŸÓÅo¹¤Nñ³¯„’f3$ã­ ˆÇØW?¥fSelJ¬öªí+©£.õ¡„áºQÅ ?)öxË™gYò»¦J”JrÕVT ¡ÃT4{`p‚½¹=#†l·-_ÃÖÄm'Ç  ‚3 n«åͲœÙþ‘‘ÛvH¤òIûˆ¶›Ì‡Ó·Zr‘4;⤢ƙñ_#œ´3ê® y´½³š|ø¬ÄË/>\”¡•Žþ³áÉ6¯û°8i%„„±ïkaaÂ,¬¬PÆ?d·=ÇQV?öë>m5u*qz€5»‹ÕÄTöv€¦ ZEmücOXr[x[ã{ÂQÂ*Äúßó½†S%Iç&ãîê×¶Œ†z{“Úd¤ÅT/BrÅää3ç$òž â-AŽj¦©^˜q->†ˆï.‡$“3}\Íå©Gç;s@£Ê²àÚÕÕ0‹3Ìk°Ø`¼¢œ6û5±Ý]w¼zÚ„Ðl%ÚꜨ„&oˆwN·ºREB¦)¹ÄŠ8vû>^sÁ)0‡BÎòdÛ©ª1üìˆ_Âð šHúÔ>‰äpñ•·ÁÙø#ß,?»BÔ<§QxÂA5%ž÷²ïU¨Wî ìSq|lC¶„×›ˆz;ÖJ%ödgטúMû:ÄT’[Ã+¯½Ö6ÀžÊ²/ÊéùçŸ!ů]ըͶòaä. áI& |6àãZ Ù^ï—K±N¼ÉwÞ4"!“®t5휯*”‡FŒ¥f?]K…u>-¨ñ à ~%ŸU‘j{މÐ`èj&‹;ø,îωBÍ+§Òõšì/ÝÈ.[°"öʪ²Hà¨üK1§JXäÛVlcÙ°Ïüù ®KÒ±¨ê1Ô¼Ü éH–EâDЀ ñ:pÚ|ޝT{A.]âºn7gP²• ?Úeoü/ 4[ì•C‹èš°P¢rkˆæ1lË ¢>SµD›6UnhÊ‚vµ0`ò |Sª^ç…ñQfýtpÆØÇhx-%ͪ3Ÿ$ü”,]&W>»üƒœÙ&ö¹‰ArT¹¥ÍˆIäÝCW¡üªÌ•ÖT÷‘S wN¶lÐe›$¡”º£ €ÇYÿ^Âè٩X’:'ÒÛz‹u{‚†ª$s~¸w… ¢dqÈ« VU!s@ˆ.ªL¼ð'ÙÁ"ÈqmUÈ뺫í¥ûÂÍÇ*Üœ‡;Fn®W|®4ÊÕF]šRfª yedPW5•Ô–9ïåÕÿ¥¢ÎRžÚ9!ù•ïŽc4é‹.»<×ä¿%¼ºeÚvôS Q“ä—•V´ ,:1Ì2œ8 nR¬pº•+W˜ëˆGËeJ÷©ª1uKl[–¾ ~ž=²ër>›G$ÈʘÀŸ„òŠ+$iCYðO÷]9ÆR\)[ÔW]f¯ ‡Ó¥P…2/ªÅ°;Òlót]MB›‘þ²sçüÒûå[vÇÅÄÿu÷›GþH)¼ãÑ’™ cV÷ÖÖž„¹vØŽ#|–ú‹ËW\Ä¥­M ‘8™˜+Ø ÎgH¸]nxSõj«ê[•ÝÄŽ?Ûâb‡Žkò_[5aѱàáü€UÅa áŽjeµ7¦½6åWB9%—®WyH>ËK`åÇíé¹õÅÐÔ!8lA]½EÅËvqâ¾$œ²IõØG*_uÄnWê•óÞ§ß (éОMñ«Ë[õÈø.[éêÁÛl´bÀɶ(Ìq%çI›^d‡‹¥PØŒ¼L={`1×fÙ9Kôÿ9tñØ܉Œç7¹¥8û-ûSpDV¸„’%ÓÈr7ƒÿmðÛ?oûsǪá 4`ÙiÉqÔÁT®#z”›Æ¤4ë͆ÍgO]n ÂA¶5;­Ã™³sþ¸˜†ÏÔDqöïâ|½û(Ü2¨Ù¯H‡cr°“ùªW-)Að+ºG¥ÎuTÄX×Mä/ ¯ŠrâÓ}Lg‰ê}™ÝH[^@E?yÞ=ž›Î¹j-ì öPD‘Á´µãXa€Œjäpi‡Ô„Û>ÐÄ2)´¡iLêQ‚2½RU=õç\Œ¯fÅp‡½Ge!ZE~Ž‘±[R Ë¿œõËÂ!«ÅâÒ_)¯_G¯F4ñ„ÓýÖ‘9/'¥‹:»q«À€‹Â]\žì²ÚщȀz K–¦²³¯œT`ÿ·Oºó{’"ßXx‚$ÎÂ5?Keï2C)ûm ËÖd<žó]‰À/‹J!5' ¬ú¿Õ©ù8æ§l:Á"áCV@q[¼pÕU]‹ÓFN-þßäš(r«áhlpºPhW5T½èÜ@n‘„8Â^ÌT±ŒŽó†™œ©¥z9Ôæ8ž@Òf é´¦€A!àÍÃü*7æ–¡Ý™\{žØfÉq9‰*\›³³¥‘Sbç²m%\õª6$>²‰o›þ/Kïiú9Ã%܆ô~?Ø“ÅI`yYݥᑪŠ}8µÃf?˜é‘Š’K‚׳§‚ðß‘íˆmÇ6´lYæù%\-ž„s¯Ò²„ΟԿåà%ã”Ø^Øo0ñ²ÅXåµ îøpŸX« 5ø^i@³U†¦¤¦¤Ï7†oq±ÛcHíÇ3é 0>KæXü†˜½ù8¥*q&M8¤ïÌ]ÑTɆ¹— V²ƒMýêyLŠS–/ûI°TJ8…(fŒC¥ÛWM¡ú`å+Ù£Rs]§9(cƒ$yx:ƒw6ÂÇ€¬Ë‹³MÚûÅ3.ñc¿ªœîY¯wg£ÁÜpxºîÌ ‘˜ â®DÈ®˜¡ìÑ*äñ7/zE‡­Òâ½'8~‰´Ê2óaŒoE”5 ~;p.C’Á¹¬•ƒˆfÀ˜^þÌÞ({òžºñëK¢‹Ÿi뫦²^W_€z¥!óõvlKÃÏI`IUù¦ªàÍ™p¬N\˜6鸬@Pq; :¿ŒmL”2³I.騡!oÖŵlTMêè„woOp·æ]œ!ü?úí–Ë»ÚErIxs•‡ÓÄ®Á…jöÑ´÷èpëËÅ…aé×m]¨ZÆÄøžösŒ'þ!ÜÚ™ú¯ÅnË¿“¡½÷ÀG•8Ó@grω”Nª‘°8)é÷5Ež çÀë-+qq˱©@ñký˜öjŠHb<@ñJ«Û·ÙÀ}¢"㈠²DÎK‹/±Æ6ošÑë R>êÙIÅ'!!{÷\)XÿPÏ0pµÄ¾„(³Z5»˜NÏÄù¢„QÊv òžV ±I‘¬qêj„5‹z¶æFƒ á€Œ3¦|û>ëPÝEšËyÞñ]ÙL0âʾ…"ŠÓB'Gø‘FQÔb?;È `¨eV.U˜›3×vIH í(PwTi/b‘Éùýކ¢ý*VÏÐK,ä¾ÐáH˜ÛÅ)Uyt¨~ÍèàÓ¬ rvŸ4mñØüS«~ü~/îûµ/J ¹×ÌA/µ§ê‰³ô:±ì˜½CWÉ–§KV·Om¯œÂ‰ù•~ ÄU÷+>:>…˜X@Êö \œ¤„ {^žkÇïº~ï<Óe擪—ÄAâ»èJô`rͨ7;é­Ž—xäbî©JiÛdžzï³Ì9°X‡R|x*‹öøÕycÑÕgÍÚ»k?¢¼9Kñ9H,1Ø¢<æ…—êÀÝ9`¤¬n0Ëìf?9ðŸÂWDðó'Ù&Û‰²kªa_ªK‘ÿ(“>U›g{¹ÒçCÛõFË“ã˜ý¼Ô•ªÀAÞ_é½O¥H³ù€½šÕÂRÝû²9ø•ôôËqÌf.ÿµeŸ™6ÜX´ °ü<÷gŸöýÞöâà†6¸+Ö¤ “3è–"–ÅÛY•â­£³;vNpnQÆI;òd÷2ÿ#a/+À×mšåÐâ‚ñ0ˆØüöwo{qT ÄÈdsÓÛP3« ;Mv`§XªËàç•ê¼á¶ÙÞ„üQ9ŒçˆlÙB L”!P鲯ÕRŸ‹'aߌwPlJA·øÙnŒíMw+ާÅxÈ’9ì]ó„6Ý®–êãŽ9ÛF’žaÙ²ÇuÁgœŒêÞC9^ÅH¥fæ7TÂcXÇ,Øs0ŠðÁ'{ç+1*ÑhTÂæU·Â¨ñHþÚ̃WŠ3EP à°wáü†J$>K¥õz½ÛNÐÉ E d&ú¤–õÂN\=¢óÓ Ð–¿‹ï¶†ò˜"®,ÏxÔð‰L>ä»dx7&´äQd,Ù= Tñ±-¨+'²csãíÜÁŽxx…¼Ê®a_8KÆõІ(¶íÌgx0nü„;lúùÿ F@j Gþ¹Ž¨bTX`~7§ŸeOÜjÔ&[—ssß?K¡€pÍ^°m)â¯@iÌÖÜø±ðB2«©¯3c6^|R&K93ÐmÚA ƒ/°9åÃ}YŠÁàZ`NÒÙë,wRR…œÉÎâ¦:Ø|QǸÁ½@HÀ¯÷Œ±Máɸj6>fAšÛè“åÓŽØ£6ã²ð5L™¢Âà_âÈ[ûiÉ—([1>¼¾RÏÑVÛ€^‡½ã-µ)ÊÔ§;tY×i' Ìa9ùÇgZïk|/¼iÇ (ᩚºTö7P‰©®Þ•íµId¦x´%¶‚2R峘˜LƒÝH2¾6>uuªšâ|?þÍKw|(žÆ¾Åf‘Î&qîÜm/ÿ™*–šˆ¦5ƒi³W†k33‘Ëþ˜RÔöñð*Ðñù_ãо3kƃ°•¦ÀÓrýð§i^7€Y%ëÖên…ígáZ³À2YػҹR²g¯ÕnbbE`Ò%¹²¸'K G’6¡Oýµ‚Ïì½È\Íð¨ÈmU coö’èÉ<Ò|m½xžQµânwŧd´?A|$yÐp”Kº Ó5æ¦ãqÞœ®#‡ì§p ˜–ƒùšˆ]²J—§Gôûÿ³÷¯]ŽǶ(úyç¯à>cøºjŸV7Þ{¯}Ÿ¶î¶l µìµö‘ÖXƒ]…ª¢TU,“,©{ùø¿ß9#ñ" € °ª%Èr M‚@fFfdDäŒXÚ3L5›5Ž$ÄóaòÃX§ÇÉÂ%n›eìmò2ŒiH6!Gˆ|&9ð´ k’BßÀ)ÆÔŸò p,UÙ”+…(]m˜„„øOX×~SDPŒYæa§¬¹kIÅ’!v?ØkÃUpy {¦(ˆœ¡ ©E²|’ª¡©$PÁTà ư»)¢|šcaŒÆ¬S¢à c÷B9€wß2²Äà’«É%§³ª±ô&¬n0clËàÎØU’フcÀ¿œ¬2°Š¿ä’ó\!I Y¦o̺â6‹\’”ްp &ƒ”ØØ=æ¯aU‘ÏÇ$íœXH“ž«´„`ØÂEKò—Â֎؆³æBoÒîö°~lk¸YL>Ç–Cfì3Ä7&:dqA_ aÐÞ²|*cã4s0A‚!³Ã0øÐV‹»1ÿ,æp"‘¶.md¤ƒUN·ŠYîðïlÖÈ…=ÊD1øDmZäÀÔô°¢¦¬;ްhU ì¤9˜ñl䓱ÀŊ)Êã:þ‚CòÖha› G¬É6„¹?v•-‰%ÃJcý#‹…è-Ú äc"Ú„uކ,õâAaŽE© aÄà 5"‹R0ÁÃB˜G´ÿÐß`Èm—óÕ/±›Â“ ¡É ¼‡‘ÁÁd‹±}†Óãص…Åå :›y0·`„°âŒnƒ.«${ hÀ<ðh‚OLŸ0– ì[iõà‡aÅ`7äéÖHÁ¦EÀ¼×b*"¦6g¦ýOà,ÃzÃnÇ•pCt]˜jŽ92|Hf]à³ÎVL#ŸUg¦Á'´¡Gûµ3䎿iHVVF„@YqÏ„…­Õ÷Hpb aZc© 2’ÉaØ ±ü0¶°â\b;*fŸÙC¬yͬ6ß„¥Š+j@a&š˜‚³®(Oq†’›ÕcZ:4%«øŽVEwÒÚ»€x»+Ôyª&¸6IóÜñŒ(™ ƒ'XVÎŒ„£¬:Rãar±¢­ ñ6¬›Ár,c:÷C–âa–sÙàž Yyr(YÄ [Ó·€ 46!;TðŒ]aï±™Ó5›Ô'uškù$„q°àz©+ +&>Ïxà‰cÕ{¬€‡Žg]ÜXðWB¡YL.9“à~èfâ mb0aX:Tép‘ ?º„¤;c–¿T é’ÃA2YóΠZ÷¨ à Û$Œ‰£gŽoŒ0»X¿Œ6èˆ(Qfüø˜¬Sî°;X¬Ïãr²" ")ŽO‹«Nò@È‚9ÂEƒï kJã{jú,Qe9‚šÐ1b²=`ê&øÝÄ|¤Ý +ŒÉxC  šÁsb“´#æcÃîÄÞ>BHÖ àº± ÌņᒭiB¸1ùü°¸l(·ÄðZÅÚÍA@9Ünhf0aÂÜbŠøˆl¬Z¦¥M`Áð¨)dÍÒ€LŸ#ÒÍ2\âð`Eê%oò0a›³æ,öT›G|ŠyÅ0þë3µƒrHÉ Íݺƒû¹Ï¼ eO`Z‘dÑ#“1Ï„ðB{&ußáíÛ,SÅ€¨ç7ʤçAGb¢¦XþDúB5C=CcÀd€Ú'¸gDÒ;Âc§£wS¸!Ž0¶…˜…ÂeÇzV°ã   îƒç¡á@ûL ˜FÃý±Td÷aá™Á „Çb9³ÆÚÔ$öÀ%¬Ì3 Ü0¿±“1Ùš¸á€D0ÐBAC؃BpEȲã&–ã*[ 7,&¥MƒÑŒŒ/!Ã(¶ý> ,;WäÌ"©´2Ü,øs/¢.ðl#§ªEGÚoPf¼^Î Ó$îÀ´IYH“Ù%Of ÔV@\½ —ŒÜæ¹/öÔ‰†ÏxÖ̺Òýà B²áš¤1H­b`æ1«3ÒF˜•»†'â>ã&6K‚¤~(a©X„'Žúõ]ˆæ#£3˜®"ReF^'‹œyŒ/±üÙ„u‘I£À|³ãÑ‹ ƒo$)´ÐÑÊÇæ Ê ã ˜áC06¨[Œ,t ´™M°³,6ÑøjŠIjpÛipÙ3¦¹1£ŠÔ]ÆÓÄ–)´%˜ìŒ™¢¯pÊ<7 ¸² EB3¨nyäô„°N TÙ¾§,Š=f]@¨/JœiÉd ‰8£O­Ka*`‰Å ÓWx<Éã÷pì“Nªá<±5cïëqAR>¡54å“´», ¢Â_n±‹£»63ÆÐ”ÅB–Üã&¶—P£Ùtª˜I ëG’á„©• ŸÀs¡hYÜUÁBÖdåg¸ˆÂë 'i³q†É« ,g‡ùÔSôœõÝ sÂaÍMŸ¸OÈið Ãc‘cwÂbL޵,Vçy3È©ÉHäAûLg„ÖCk¦1LvqÈ5a ö‹€Ó±Òl¥Ã{ó˜gË0aòîMH¤7Æ$¶Ñ0¬&ücA±H&í:q¶”'Éwðz`fÏXõ˜ùˆ0…†æóð"¨xÂÖà‘ìcã4KxÜf†KÚ|–3ö±(1¡1plhX0áóŽ ³8˜5ÈtBblBR\0ee¦°Ö Ÿ6ŽÉô”¤á¤ 0/Xp˜\zØ>±¹Sò-Yôq…‹Æº¬ :¸(³ºÆLb}i,ç6²‹ŽÀÈ€¡T&ùÂø5@j]ì8ÖPÁ&÷`ð{SRÞš&aú#ôŠ)ðC±y0]K¸&XRÞ&õ™[šÉŒ<LåöX!Úœ‘d–õ#GÌäb!Á!0¼`a[ôpF$ùczúërÏ“|W˜BÞî3r<¦¯†Ýqưœ2Ã’p`&N ÄTÀ²pÇ(xj<ÞcU@Xð9RD‰L8^ØŸà†,t'ÁeÒ”eÆŽíªlÂÚ´0yœ%hÛ>Ù°=ÛÄELÊ„i4d½„nu˜ÜÑC3Â>%Ù6ÕŒÅdaÐÒòµHE@l?«Ýaà(º¤´ s¦@-F<èA`¼NH€•† gÛ#$”#ò`9ØOàÂ9„é-B¦#2i2ãcް›³ðùû?4+J;Ø›|–~¶i8\‰S2mKÀs:–âç¬{‰ùSùJ† „ÉC8Y\(0u˜Çh²"É” oÂ.¥0 °1‰ [Å-ÃSõ`¡ðÔ[# HV}ÆŽæ„pœhÁ²¦ÀØvûG§ eFÓ™Yã<Äf0$ ljMxî2ß7ƒ57%.`1c|f¤˜‘t8R 3‘ŒÏž>åéË9†¡WX;Û¡Æ ³$Lõ$ò”¾ÊˆhÞ #)$_÷ˆ€ -Åbëcƒ9Ði³©$Öc6È-sœ'OØ”¡ØY‰„9ÝÌœBÇÌp3-Û˜ð‚‡'Û5 vÎ I-J‰ÉÝÈde R–À‹8òM‰c›azhGR÷búO™:É:ÞX͸˜’ÍîüXÿ¡ òž‘ìéGØM<5fæì£XÂvj¦1fF:jÛº9„áB·‚d¹–Çídjà¦å©Q@¾]ùŠ Æ Y²ƒ-@ÓYEmeeÖì‘Ó3‡¤m˜­LRÀZ°‰­gÞ5&÷dÄŒ'X90`«Â¸#39s(BR€O¹dH‚Í4d¢¬ÇÓ}¨N@Õ2»΋ôrŒI3År$ u(Çë—MЕ S›L1³€¡0–‘(˜„kS²Gm†)x`t“Z‡”ñ¤³É&Á°æphN•ް¶‰¼O…-cêïĘàØàÇ2ýƒEîc 6øLŒ—ÓTfpJ1ABcD†æzËà¯7 Êcù$—ùe#†ØÂ Ê±-øÜ>Œ \ë‘‘¬P÷jFz"¢n°Fð"Fx ÉŒJöR¤¼˘dÖÁŒG]Ë:‘ÀN’7"ÕO@P“¯Â‹U„LiŽÂŽ„ðg–OBX˜ypj`ã2µjBx+%Y„)¦œÐÁ•µCäÀ”Èá0`Á…¥9"3=¶FrÂ`’Œ\íaõô`b…ÐÖÃgLjYxx)vI²=tŠõ“0‚<ÕɶsÝã ÃÓ I%S€¡f‡L[$“%ÁÌäGq…Å3°M’?“¼I0ZIûl@£Ì0RbI,¦dÁÎ f.ë‚HŠ…ƒ•KÓ•µ óÕA@b“Ⱦë3ûÑýŽ«F uaïÀ„aQCŸGcFSó™é—ð MMî1å4°0ÕúP‚ðÏÈ5ΓtØ$+2ÆØ;Mæª ,"‡Ô’¬™È¬ˆÿ…Ï ÕáÂ0fÞ¹,á[pó\—¸iêRWäüžx>S&°[GLРÝLò0¦bœÉ é³RçÔ˜F%‹],ƼwÌê 4|.Ë6% ç°ÇÁVÁNCR\LlƒÔÀþКM¡‘,)êŠÍ;ÙhL-xý+~AK1Ÿ'$UËSÜycN1ØC(†+Ij;ÆKÖ:€‚„…'(nòa±ÓÚ$cu}­CRî’ÛsÊÐË+±œ«¼Žõ˜&e›L‰¶ˆ< …¹ã‘¸dOTLp]æÛa'SLgÌäh2v»Ð2†ÃË‘²Ô&¯Yà &á)8É,˜©¡ì”?"bÓ¤¯‡Ýe›û…i6žÁ8rŠM'˜â…x°)Uy¦4#™(ì[0§.F¬ùˆ©ëDß:ž&²TÌ„‘ó©&¨$o ‰x° 0ØŽš±X©C* ‹õ¦3æ0NXá”Dª˜ †#GÍSòNÂÞ5gø¥Ið üYX‹Š¹”ð5°F-&Ñéšo¬3Â%áôÃjrÉÃâòLrâÒðÁ#V<ö˜ª€;©ki·›–/ ªØ¨rY~¦že0'Eõ`Ó:0áEš3!K€÷]B¤“!œMYeÊŽ„-=™QËù62tXu&`,cŒ¥2aõ^Y&“/\¸¯¬’Ížf^ÈRu6vb¢ôBžËºž¨ ‹4bôLj`&d6'è””Î$•2¶ñrRqŽl“ø/˜OŒ¢qo ï7óÊojûÊdÞOÖ"ó`EgÏ€î2M†ëXì «€n8ÃÌÚwa„ŽcÂ"#—¨©ÆR‡Y@ÈéÊItÄðñX ù˜Ì4ú,ÀÊB[®p2À)2ÝΞ«<‡4¬æÃ3 Ù!‰Ž :âA!«‡`Û²XÎ~ Y]Ï lˆ¼ŠÕ™IÔ0²É¤I‘D†„ÖÙ[˜3Lf›ÑRµ G¶'\¡Twtû,¦úy:ãØ HuàQ‘Ïœ<Ò#¦U”-#6ðÌŒ¡#‰\ä”ÅtƒÙ8™øèárša––Ò *eÌ£yLsd’s¢í˜ÏØWf‚4 ™ä¡±8ÉyV3 É=d‘¹ûÇP ÍB«Yc,>x:ØI:äZʺ šåô‘l€õC–Ô$›ÁŒÜ³1MExK¸ $¡ «7`WŒ K-5<“ÇCrßñLSgD\…ÍL£©@d=8¦°ç±d&/¹}‰g°˜_Z´mG4™‡DÿÛšóˆÉ 6æì„ÉŒáÐ…ñ-ÓV §ÙÎ T3yNlî´p¸XxÚ–;yH^+`} ¸80µèÝø–©Bæß%ï&³¾°ÿáa0™$Âj\Øà,4"—ý™p&Œ“Lš yâ¢ý&k ØÜñÆ#ŒƒùßÁÒ‡iÍÊ…¾ +Ìs©ÞÈÔ^–L‡'(ê”ÅBFŒÊ8pY…’$uÒlè’ÍÃBeu$ä†öì# 1^èу·yÎc“;^æLHJiKÒ'YžÕŒ‘;…½aS–1ÌQ¬“¼-˜„L6„šJÞ#Ôøl¦'1pé2Ú?e•RÖ¸fµÈ€%¾É`;f¥¤)€Í…¨4:ßÓ1ËMx!sHIÊHÿ”•ÓÇî§<ܧ ƒ=„4n@Îù1ÓŽÐú)“ê‹ó˜ÑFr†2îý8…•6sCFcXs¶ÉÐvX .Ô/ì:ÌtìðäÞ#\Òð°¦Bì)3ò‚AÓ ½7 ¸ÖRàzä:$Æ™Y±ÃÙâ MIÒE¤6cÒÚcAƒ0†&ÖA(ý‚¡² ‰G+‚iÜD{ Ådåœb¥IˆM%5qE NMŃr´ÐP,88:…S“éŠ&ƇÐæP;cÖ}„AlùXCxÀTêiX²´ì²\­0ݪ.»÷×€‰Mš "(,›$LŽ2ȾãM¦LŠ¡OÆYB YÆŒT9¬Ãl2guHp4?ÅÈCSa·3]èë‰Â`O+0°Â%vH+”‘–, Õ¡A°JÈa:eY¨~R=Á¸&iÀ„™4Ø÷%UÌ|nŽYö~šP~äîÆ4¡±2bqÀã1S›ù#!ÌR@Â"cÝó™:åÅ"£Ë›A«º¤['|ÄØ+Ôk¾N ¨0ɦ¬Ò«FC.n±zL“ ‘pÄ’Ø!yH][8MöÓ œ)‘ë,Â3xLÊ!ÙÎ'b’˜Œeñ8=°ÉíëN¦,‹ÂSEÌiüÂnYn®LSdÙvoÌB5“’ËL='??ÔÌLh^Ÿ,( +œ˜rÙ’©eÆ%Åô]—+XM•ï²n‘…Nº­@"®áç)–M”!Q°ä¬!îþ¢œÜ³’ÁûÐЮ2G3à™ð$C‹¤oÖˆY„°fCÂRV1i¤HwyömÄ(ì$Á˜ŠÅã*ºpD*S¬‹RáÑp€ÂrÆ–±މgvYB˜ÙŠØÏ¦<¸è&×ì“éxÈ"éd%# ñX@dÄB˜K:±^“ö 21ÏÕÄfcÒÏ*zOÒ=aöŒ|,§Ì°Ù3ÿ„cSgOsf  ö% ÐdIìM4æ¡0É2w}Ö—‚«0&?ÞHêæÂà#× ©<誳>+*OYCd4’ã ûº¤×%ïE§ˆŒpÖXÞªÌÎ3Eˆüp<|ØŒ¬® —[!wø!-O‡Hîe33h6@3,"è¨IàMÑê¡å³|îpÄLƒÖ °pLCÚ¤p„|¬WBÈíçdq›1Ó˜(áÁƒÑÏŒ»ƒÔÌ ³Èþ‡‰ÂšG!KY’6@˜˜pcBáf๳/õþ âî1ü,}Ó G€»`ŸL3`5XDË%ÏÙ#2˜{6™<L]oÆs4&GÂä$]ŠV¸d@Aëº r¸m ×ʆK]‡Ýi¢ ¸%PéØà]®Ÿ1!WaŽ]“n03Ñ8–3¢•îØÀXtdOÄòWxሧúáÄ6B‘’¦3ËT“›«-œ ’YïÆdê1%.Þ6“špf1õ‚)Ý–¥ìcÏ4ÇäJ‡Ñå ³æàO¥47ìÅÔÃ)“°œ`í “…a=æ4Z3–Ø¡yoÌb…c™0­wH~qÔ-31ç°ŸH•iXÒ:g”8f©=¡DXëÕþ``l&ä4g…¥Êy6B.$¢wfÔ6“öx¦E El¨–ËU‚5ƒuÀj¢]á`öa¾Y5däħ HÀNŽIWcq60HèÅs@¦jaÓåÁo`zäñfV‰„Yà‰ü ˜Üä²U ×2Àâ<éÖn-)",ƒØn.²‰íÇ~€Å!t!`éüšn«[M²iψׅ۹#´ŒÐEcXSY` ãZá}ã!ä‡Îèu±5Ž`¾P¼Â¡$BÂêÃØŽ]˜ý,ênÀép¹µ êŒ,õ±xƒÇ IÇ » ÙCtN$4+¡Ð_Xë&¼\lÄ E† •̈æ±L@·Y¯c4–ªÅ¤£¡m¶!c´ð6M« Ó|4!K¶Ë‹åÊ8˱¾›L‚ ‹©ü¤·ôYÜ…Iž#ÉVeú$yŸ`ê =¯3BHKJðë–ã~¦h`‚€”íd äVÅ0,‰vÖ%þÊU–Ä+¬ñˆù–¦Àž8#)Â4¤9?d¸—)†ÂΔ& &+)“¹V˜ªÉ¡ŠŸŽX«Þ"'‹.„¬€2bÂìdß…™4 1KÀb´ · ÄZ4ÑvÝÆbÂvL´²5H—Ïb™2èßf¡É {#ü_‹œ0¤ž …†ÇWŽ ­YýÃ$U–i øÆbýÀ0hȯ‡ÿU?)&ñÂ7$#%Ëoj§s:3§Fÿ™À=³E¹O¡œ¤TŠCvã!Aî¬Ü¤˜PåÑ—q ˜¡ÊÅæs‡o,“n²0Øp&Ñzz_,éf™“€‡vÃé0ÄÎd²„1kb…ä3€¶Ålˆ3-wˆÖAn‘ «ø kØ!³pÉ£xP‚&úÜ\l {YFÓŸ‘k:ài Ê% Zó™HÍ Ëbk™À>˜±Ø%Ì(u¦µ;’T›G¢Ô­ã±AÎf°f5YÙ‰N¦Ò &#{#Á–3—Ù$dJÅ6j1³Ù™˜<Ã'³<öô…t,0€Ë×ÅYQh¬„¨•@XÃÐ% ƒ…3ˆ#2m2«M)xp°Ýlš!aîáˆÇè3X_¬ïlY•†áAÖ'”³Šî…vb’[̶XèŒ;ìÑ,×k±$«†+|/lјúpXH>ß”Ê ‹Õ9&EªÊÁ(´É#GÐÍÌ ôæ¡môgäÞgµ9–rñ±•‘ÐÊã™$Éž1&,ij±šo@¨¢Gªf™Âx‘úí,¸i¬#€5dH±C—gðØ\ sa®2ÚÈòd‡w¸c†S(Õ ­Ç‚ƒ Ë×Ã2à)bÇâ#gŒ‹XôÖfì,Í‚õ&~0!•Äl5!ѾÌǃÉNiÏf¢¶±ÔÜu-·3"Û™„o±ì¼8}duËù VØéðÞáÐ,!sÄF Œ‰0JÈÒd-W‹¶Â+*ôh/AS2“éXÜBrYVÉ"ˆ ®µíÍ 2Á^1"új FDƒæ#Ͳ>ÏYV Ÿ†É+™ÓÃEˆFLm–ä…Gªš€þ Œœá4÷̲±¡†0;¤êÆ(à®ÂâM6íöÐÇcʆ.¡l<ðÀs&Ôä4ÀG¬o0%IC‘$Š";9†,Š;ž²| ”1ø;–À„Eá‚’Õ–‡È>4¹šNŧ.¼4›P´—"ä ¶ Çt<‹åZ|š÷3a÷é ã_˜PÊ$‡‹¸OÄxÁ:g† ËãQ3’Ã÷˜92MXU‘…?†¤ªðI—.|4¬— C6œÑcµLw– ’;Ò™1Ò;4I;GÐ,æ¥OgpLnvEZgo"ˆáqÒˆi–he1¼<& bX‰kæ yØRùdÇÂnìѶ¶•Bó¸ÍœÑ‘fN C}¤ÀÀÒ¹Óˆ•À=ŽžÏÚ¾*VUõYݶ¶¡ðsˆŒœRº$0I¢ŽYÁLo–fº.¬ Ḭ™uÆb ³KÐX,y‡¾"6+ O@ï„ј÷“€Éºx–.Sc˜Q㬻 s$à^=d6°=vx²:dÁÈÚk<%ÕüˆÈ¦á”G1¬¢dÙ·Ï,SÒ{#„9OP§, ¢©3›Í?a¹d4‘Ñ ‡¹öŒÆNRýzpžvbVRbîJ ‘"¸ ¼YÐ(&³ËiHýÃ3Q®´HV:, ;¦±E’Ka&k8ì ¹iØ ¡×QÁ¶Œ1¦>b®O`y‚¹QcÓ`ZÏ”…øk#ÿvžOYB54 #„`fæx&Mz‡e§™æHJ%fšG½!vª1 aŠ-2a±3xÄðñ&„qaz£€†¹Ò½v9¦óñ÷3’"` à?Á!Ë;«UÁÈ‚Ÿ4ž±Ž¼M`fä“ЃÏp='Œ¶0bH¾gÌòà˜õ!Ùa±`‰Õ%3‹Àš„¨Ã}mÀœù›-Ki }(OBLˆ°~A_‡µ‹§SІ­Iž0Ó ÆDp…$€c¶°Ö¢…õ7áٙà œ€T²‡ ™€&( Ò±ltEGˆ' ÈÇdA|dFÒ&™O< áÑÀÌ›ÀÆg½¾Qø0U06“ñÔQÌ׃ŸhñhŽi£„Qш\RËfÝ;쫌EL,’ú“Î2´¸V”ÓØ"Ç4Õ¯7$; ½hL¹ ÎHÓÁ(: ZaÚŒÇN‰if­¦1ýhIM`Ly´ŸlâC]:Rmt´»°ÿìÛ< ¶™ü‚Å lØ1°ÆÜRÒšp˜Þcú,DŽzJåEh¨9b… ‡éûŒc+…cˆeÅÚ2x Ð’Z ¾ó¤É †`ia—©è +‘ÿNÈÈA[¬_î²n†[ñ4 šž./¬ øîÜxážÁ³q†tÕ1,Áu@ñÙ˜ì°õÐTž‰@:!ÃóÃÁ¹3ÉASИÂ釕‰­ƒlÃàdÂ%óU<²1‡¼OÓ JQ°¯lŒ #Vg5xDáa(gCè—œ*d«fy14Ú!9˜_É#o“ØC…3÷VŠuÉ8ŒY=5¥t—Ër{dw… Ñ-¢û\V éö ˜¤X¾bè>+2ZìÂugfT¬€1´ÁrÜ‹M*ž€ læ’LÄt&Ü¡h=“ßc3"Êçi+K›,CŒap™f5Á¦çäxo«ÇjÊân=$âL…iù2ì5a šM%U+؃ÑËãk."Ì?l!¢ÈüJF€µ †d1}•‰†„ 2;~ÊêZ°ª¡?°CX?°-©„“O ¶sC3˜’ç~8¼|Ì­™+9Z–d pbÒÜÑ+±`Z@;M˜Éä)RÂXAwñ YCiàÐf98žä@Œ‚ñBqÎA˜wžÉCØÙÜíf#ѬPةܙðŒs&Ò~"Š‚¾¢=²Nï>ò&iÀúz° XÀÔe~Þ†þk¦ZÌs´¿­±”Ⲉn„ß’7ËÃNmŸÙ¥ÌMá¹iñ±0¶ŽiHgQHÔá«ëÈL:ƒïíLXŽ7€EáÌLÉ&b=bF¬Ç Ñz†Ág-…•YòÁ·YÊiœˆC2Æ1óÛêÔf«Ï|òêòØÏv¹ºZÁ4V1iFLGÏM´Õgò |pÕXä,†Cø[çÑULšÀ–Ì<¦}X¬S #[nó„4âåb„ÇXÁè~C”6ŒÃP¤¹eZ„§¤db%Ê,WæmN¨ÔðDòàQà éÏÐl$“'cF†Ìdg¸Å ]þ•¸µ‰Ç*èøˆYÒÄCùX#L~hMl¬Š¬hyN‡æX°®D¤Œ¡'°\p£N)µÄ$4žL–VÛ¤…+0‡ ËŒyaزÜI8c`~HeaŽALØ.¤áÃÜ1äüœ…™°<¡×YªOZ‡ô¥k Ó›˜X°Y¼Êä¡ `œB‰ïß"à.`]y/ÁèÕÀ©›‘a >K`£‘ÌÄÒr ž²fƈ%x107\h8°XàØ¼`•{0} Òš² "“ÚhYfh™Œ¿%צ§Ë,’E&VëúA£ÛÌY³$ñÅdvädÊlg2¿ã?#’„À\‚r`Þ43¹„½Wbë´!†Ää3ÎÏÃzØ+ðyrN>N¶”(V”"î‰Dø&6Wlš0îitÁH¬* høR_€9ì3LXÖºŸ1wͤ£Ä(ÚƒY NÀúÀ¶S‚›ËBR„_;Lâ&YÒt¼…¿íYïN˜®ŒY}k€•‡Ä)†­Føæ„¦äQÁ¶q>Á^Gxöè‹UÂ#Ê$D˜¹ˆ´Â0ÕáÔ™î˜þ3Ã,,H|Fn¼IH&oÂ( ü=7GÊe†—Ul`ÑÍx¼çÂìä!;Yòà…’éíò°×DlƒU5ÆXÐ C¦>ÚL·p€tBæJ“8–©Šf 8.áa4ýÈs`3»hÈÆLñ¤ÜõX¬a sk&…Ö|1ÏH(®zH->–u£ÅlØÐ ˜þŠ #Ø}¬¦ åÆJdö … ”faO…¢Ó…Ž>baÖô™ Ÿ(àÏ,õ…iwâ°f„0bºÃô“äk¸¿CAŽY‚ŽØi#€¿n2D¡f´‚Y<f ‹¦Cøy6á;25 V³0ÏLòMN7 TßÇD YÙ›T€,Df³¤P0âëÓd YÈ"žÜY†ûŽÁB‡ ßM¹*±a¿ACá‰ã©üV~(¦2÷1迤ˆ™äID–ML»"2ÙÓÑžm;3dÔFy3 á5ãgKŠç$1$˜!j Ž×®/ùGa„›˜:°±ML,=vyÐè0$*øMr4“QÉ 6f5ϳb0Sfwm€oÇü\Ìc‹ìr’Z’;Ö#áZØâB²5»Lõœv˜uS¬xh#ÜlµÃ)AÓ°ª)YØw0µI <¥–ÑV€Fö û@Óî?gIx±Øla¥fDÏ'ø(lzðÜ „…Í`ÁÜ€,i9XÊ>æ1ÅE‡'qðãiõs^0ÌÃÌ ¼éR[qhXUvÈpÀHˆM*l|LRhV –4Åö£Šðacùdõ$‹¨oL?w1¾…i„™M ŒÐ‹ÉMÈÔMʆ¶ìø˜ÑAf(…! ‹˜S(XÅJ¬æË!'¦T&„Ö¦eBulM3lò$Cr6°(Ì Î§¤‚¾b‘ñ>|oRw0Y$ä3£!tž¯¾·ÁÂÜ<{„¾œDÏð‹bª‘j&$㚬bFv(·¦†‹Å1f,¹È&‚>2™˜/‚V8ž0I®4õX³6gÀ 'Â0Iþ7s„X(€Mé`ßÀÍZ÷˜œSø»cñÞG uÌhNi“E¹§DYÉ92£øĈ…ˆجwÆÁǶ«°íú,šMr<(VæMN°„ð½afÀcg4…‰.ÍwâŽf#TÊÉ®?*(P¨ZÖ…ƒMx°iðÒÛ ‰îe:æœÁ t&•ÍLÖ<4fÌv˜JÌ1Ë`Ãi“<Úhéj‰úg1n2ë1o‘ãž¼×BmÛ$3Gš’Êz ×`*¢ëc–`ñ½>¢){±LìþîëÔ ìn4rX¹ bЀGs0Ëa¥Ò²$ï}ȼË´èn[6uÁ˜oC3lB0‘}f½£å&g‹ýbñÎ:õùІäj´éUø.+ÒK¢†ã¹‹„º™€K®ŽKj3Ó³nðˆÅQ$†Á†ÀŒGB{™<ÇÂ.æc €c€i°Ú¼O?Þ”  P_LQFì)GF‡Í€rÀ¢3ȧ8ƒ¢”|wµ»$R—¬°…X>ñ—Bù9U)B˜nO†D–Ö ¹WáÑôo˜ÏÚq0›»9xþ&³: úe˜4" ¬|Çp˜vÃ’Á V£+)Y*d]!Í}Vla‰{,_D¸Šx/HØR/ j.d>LM²É$faGuá @­¢u&ÃÕSl ¥Ê˜öéІ_M`—v qöfcù0yà•’S†‚[•µ`Èú9›ÑÚ¾uÜ™ Âè¾ÏÂÞðêèœÃw´,zç̼1§¸æ.)6Ç´ Ë4:dî3 _¬Z›–ۇ!ü%W;4á¨"eÇgjsȘ3%¢øFtæÆø%ºµƒM:k¿ Ë «wÆb&Äõ,ié9p/Zò#ÔÖ&SuÉ+t¿®Ô4Ytuh8cXéÐ\ðÇC¦·’Á†[ƒEúgâ3Fµ˜4_Çbyt )K°ÐU@‰¹˜£¶Å´N&1¾Š3ó—4}XÕ3VÛU°H0“Ç3Ë!ã©Cò&.Ï WÒ}ކ$O †¬™Ãó#¸ÆŒ¯NÜæ;‘0x‘Z+ÀæhÈÆ‹¾0XŽs<•ˆK.ñ1S±Lì‘mkk†­€."aÊÀ"ò„Hî„<<±"ß®@>Ãјµ]Úk.‹ù:[˜VÎXªöÑÖ€ £h5ÑÉ ¡3±|Y\†n`âØDrÄøaÓgúÄæØ¾É²E ZóTEa't1”¬ÙëŒÈÃ$å°%™<›džŒÃ#L<Šnha¶À„ ŒdVw$ÈŒ ¹c˜`™LK¡Ûlpmy²n“©ÙžËw¬Ü1k¸Àôq`Þþ'í=,d–™ð(†[—(â ½1‹……'pú°Áo„«i“ëÚŽvÕ J„ 4ª!`Ç`Šýs)^;#Ï,Rt+ìòPš0‘ɾcy\øÆœ^Ì“#®;' i|AW@˜Œ5Ìf,ndAÌdÓvágI-l%#xºKK²&¢€X oœÐÒ‚áiz¬Æ5#ìœÆ¤!3ÖÜOÂA¸=º¬…²~›hº`Ì z˜ëàZDÔð`QñØ>,ÝPª’ó7Œ›¤êÇœ •vè{äahAŽHâD“cìbÀÏ`Õ.’¯°PËPÎõ šŠ>½ú‰ËµÏXÚˆ¼Ë3ò ¾Kl¶IW\< »Þ„…<$8ß&ðÿÔ!kô¶ 1¸³´õà…2æI ;1E®¢Ä&¬¸0Âè Y|`F@5ËT2eÂ{–‹fÈ–|Æp+Æ,'Æ|Ó É3㓵*†­ ?.·"è{(yz>áŒ(.8’ct›|ÏÐ>‚P#?RÈüMÇ¥wä(²–ÔuM¨V ŸÇIF-ì¿£¡ÏÔö†`äzÜ-È´B+ž8Õ`*4FÐVÀ,^VsäO‡4ÐÆ¬²@Àƒ-Õû¼©Äãlây¬Å¢6$oÁ²#×)Iù§,>ë*aC!0›.ÞÈ„µÞÈ’4áÆdØDA„ŠeTx [ë0s*ÁhöXX6üÜ q4$¶c6ÔðD*“©° ˜™ÆS Æ1+ÏÃ2ÂØMª²¸jl‹IéÄ• duÄÌwá«ð,55HÍN˜Œu…ÍbìrØyÄÏœÉ)”ù¯éíA]QgÑhu]Ó“*IÊ"Ÿ¬ hjcĨëðÀÒfUW¬–ž˜±Oܦ†ÏCk69œ>Ö;ð¦Š'd¢)n ØªNü§À/ãW÷Ñ|µY>ÌW?ª¬¢õf¹Šþ¹¸Q¿ùÍôñz¶|Ü Ô·Ñ¿OW›Á‡èvñ8 t?`ñçÐtÍŒcàÅÿ¿xz{ýÓâRýëzƒçÞÍæË ¿sœí}÷Á·ïÍéãÕòzñx;ø&’ËHÞòOsØo ËRïÞϾýVž¹ºÁï? `qñ÷¦e|÷ô¶Á»ñW_ò>}לúð;7˜ßyÆÀúγñÚf}g£]ü¯ëá;Üàü»i}çóB῾ ÃïóñÎ ßzX4|Áøý8yÁõ€/°Ð Wg.~K9ãq·•¼;î÷ßµóùè WzÿRU9ÒÎi‰Ò/õbÊ;L¾MtV7FÄx¢êðw<#¤ÐnþJkùLû;<ݧÜLQan¦|õ¥¯»•¨5ŸÅlö8ÃþÕtyØø%SøÖu­T#êI¶ÆOEŒxh$LŽ®KÕÅU ÿ*bFÏY8×ä'vüKÙëùÄ×úÂÿ=²øþåhùŠêšê:ŸA]£)ž¬[îÂ5fo°±‚·°ÐõKvþ5¿Ëÿ¯7¤AzÙ*i‡ –æù¹aûöËdÞmÐw`¾/TÌŠB¯cŠ€Í÷øYhs ʌҟ‰z`ñ{~âPÎ7à†„iÎ éûú¿¦ÛÙd¨ƒ]<¾,0h{oPý¯­÷ާ’þàŹýmôïXWÒ¡gt7ÜÒDò¯Úû¤Î¿¿2¿Ûú£æ¯¶^ö£¢/KP«_¹_Û\ŸÓ>™ÑñfOu(+ó×¥º€ô±Nõ§Ôœ–«dñʬpd»b€@»ÉœÔüa`i}äò.}Oá7ú_ylr‰Í‚u\j:#7?sëúg™ ˜8®hh ^Ø2Y¬òW¶Åæt²|ÎFKŒý95’#×–ü)Ú:Á“îù\JP;ø¯ïBÌÙ<þ ÿÂód¯Â‹½€wûÔdÉ¿*wýËnñF6Ǧ®ã¿òZ¬C3'LÛXÅ~‚¾ò9x±+åöÅ¿aõúJKQ RÍÛò >Ç5ž©›êë†Ë ÚU¯; $Äï¾ DñRQcÉqWþ.ôåÑUþ è_Åp#¢}˜)Ïl¹}µËÆMÁâ®Ä­Gä-ÛÜd¨þ<¾jÊáž/"Ƕæ;o}3 vòÉ`84Ð8¼°Ú¸£}§ÿðO¬~ËTÜɾ³’¹ñÉ‹ã?ÅÂà@|³%;§EŒ÷I±)m#ßoBݵ¡t-Öÿ7˜¯œöTƒ2`섟ÿéèßãߎp»©”kªôJ›òr¥ÿµâK[!kvÍ•SoX©ñxehôôsœxË‘‘w``C·šbzsy™ñoóÆøÏ0^X«ø«^žÂ®É2ÔN†ØœÜ§¸L}Ywü6~Z8HþUéµU\tÜiXpæí2}¼¼¶þ½“ÞL’³Yk)ψ÷, mŒé¿r›óZaÉ'ÜÞìøsî}¾üÄO>‘F<¦¢lQ²!¹ñ_â ônL1ÊnìÉnìꩦ<¹ænìSxF¼/Ú¢Ò¾ÓFÊÞ®¬v>ám2!åGì’ÿ=‰[ɱ²”lD+GšKf^cë‹ÕÅ¿ ¾ éi!Ùø Ç›– v×ËÜ—G˜tõ`QŠ®•BY{Êtì·Ž·³žg2é:¡h"GvÐ>V´×4åK¶u z+¤ÅÆ{†/o¼W¿Bå=ÐèñZûä_¯–÷Ë[\莿6ÏOøË,šožWÑïÿã›h½¼Þ,–ôǯŸÛþ{òïçOÑêýâ¿ð“?E›M´RïÖÑæi~]G?-®¢ÁÏwÑ*Rÿ<-ŸÿóÞ}¯xÿÖ'äZÿ1ø_ÿk°ý›âþw÷ò8ýûþ}üÑ?‹ܳ¸‰î×QÜ›¤*ëaÒ'¾ñwL·„90ðTÿ›«÷¹o¾{‡Ñ¹~¾Â».®Z<­ÿ÷`²Xo÷÷ÑêòÝ·‹Í}4¸¸|÷þùÃ~…Ëñ #·\©‹?Íñ–ÁÏ‹ÍÝàn.ß Ÿ7wËïûßѧŸ—«ë5®ï&ùçÙ_O×7 œHÓus õîIÚ´Ñ#òŽGüÉEÖ¶u4_]Ýé/õÿÕOÑj )^¼M¾Œ>^ÝÉ·ÉÅ+g]FÿÇízþS4xŒ~~š£ùlÂÃò§h³TW÷Ëu$^Ý/žÞ—Ï«çfñx}Csk}5¿ä/¥ü—»µ?o¿[þ¬n³ÐÐ?ÙÊj!n]/nòací}¨í±øãÛ÷úýmzÛ`÷¶oêÜöÝ»¿-¢ŸñŸÿ?ÿ~ó·ÿx7A+œ‘oÍËÁÕOýÉôý·Û‚Ê*;£¯vŸŠaÂ0|aÇ[cª@ñ“Yô½í{ø¿ÿ½a_òGþ±á+þ±ä×üã™\¥ß.Òo/Õ»¿üu·uºQYó%Í3’æ=H[XÑÆ÷iæÛM‘–}o8ÿûÞð”þ±H{wÛ~ƒ­ê?¥í‘A]ó¨¸ÁÙÐKƒ?æïZ¦ß]§OX5í›jÚ7»´oãl¤M¶ÿºÞkÿMþ¹ç.íÂÖÝ×éO®Òù÷°óŠ“$ií¬Œr!~›6sKjïÓÆ-ÓÎ\¥·&w=m/¦ÒÇ\Þ…Y«g’¾{6 ›@O ·:®yåÃ<ä?¥KAZqŸþõÃög‹´µŸZvuóäÝ·Û«q±=•e’®Oj”·?pv…\¿ÞÖ/ó´¡÷©ÀïóSr݆Íß*²ù”ÿd’®ÙùÞë¿Ù^ÏÛŠq‘΂­Å6Úž§Yo7Û"Xl+¥ÃªQ5^i[Bùl6«íV[5´z6M’¶Þ¤òz,5ò÷ÏÓO®÷Tb¶}Ýl/§‡í_^íM…«‚•·³Îk ›j´:)2++›™#°nÍÄÜ.¯t¸¾ª¿íX£Ëüw?mÍb۲Ȇþ‹í%ø_é×{+gµmòí¨£l²eK;:Ý8°‹Œ«]ãàŒKµq—~òaûÇ[ÂXl/ðeÚ§íŽnöúñ¸moŠ…}½í¢¬ Dܵ>©²ëÿøË$u µ·Zñ¶ë„]݉W`9•õÉÙñ¦Ê÷÷¿¦3ïz[•TjHu¬[ìT,ŸqªhæÛj)Ú JÜl;ó{ûKT`ÄíÛÅÿxË?Œ¶ýçiÖŽº ;ªštÔ~•5Û—¨ó*§®ÙjÜ¥ÜZžm~ö{Vâeîè•yqdUÜnl®5 ªº‡bt‹‚6.Òýý¹b>è*ÜfÛSÖ=å{NMň^¶Aª°-šŽÊÃöÄéx@v7A¯z;ÏÖäŽðŠÀzµŽ€~ÚŽ¾Ï[·sÍ¢–Y”À–y:ß‘s¦™Wi„¿Oßý÷t:”Ä/ª¢d Ö›Š!Zn‡ÝZ JÒ®6üÖ‡ÂÏi?²‘ûb;$‘)èù¶ŠèÌ6÷*£ð;Väv­¶5ÓºX¯£Tý¯ÂÎh÷äèøñ¯2ã³Y Ãk¥Õjµ£ö”«¬ìÝ;!þDªïöv¸Û¢^ñ6¯Òz¾.ˆ_w4|NV4ãšâÖhʺ`G,gáÝÄ<Øp¯FÃ³ÓøÍãÆ/}ùŸ¶í³ÕŽy×v Ô?E5w»çœrÄèW1Ž ¶”‹ºäÐgSQØ9ŸÛGk CrW¶Ce^å}KÖ¯<ÅüfûÜçñ3Õx8ìêµ8/8 »«˜Ÿ ëu¾%ÿ)ß»Q­븤G›âCÚLÔÏÛ«ÿ±8à°dºßÖuåÈ N‚uHCÔªѸ+įŒ×·ÔðÙ¶³ÙÞŠ;’‡ÝÆ~,Ö-ÙO~ìÞbßœµEº%ÚÓ-;G,[Á¹³×­C¬ÌUz®å©ãì »Ú* -nÒàÕS§Ñ¿Ò}ŸÎµ¿¤è”qzVø½igý82¼î8$¹;b –ÕÆ`UE; RÖ"uâÙm QÓCÿ‡-CodáÊO!´:Ý"ÅâÔ€ ® NEo÷ââE#–õh݉éœâhe"¸Ù6Iï÷¬ðõ ŒÅ ñX´8h€·ý<†Æþ\pç^uÔð:g…º|~Ó¯=üåã62Úë[Tv^SŽ~M£h†Eû”ûb§Ôw^O•ƒTǃï úêWå׳™®+d¸=7µ‰ÓÉ‚qO6«{2ÚiG°»ïÄó¶Ï~݉1î²»è ÿøC„Ô–5ß‘ÄÜNû9Þùi÷ »Ø­8ˆi­'Ë2`öcGÒñ_²OüãoÛ&É& ggî^wúØÑ(ŽÂn8©ƒÑ}vÚ‰é6¤kÓ‘$L£Ó^̶4¢®zÑ­Õð‡í •©¿UWFÕ}2ï箤ҭñðå¶=û¼Ñÿº{”ƒôÑ9S+µÀ©¶‘Ù­ÑðͶ۲h /L¯ãàß¶­óëŽ:au?!çç$ ¨šâuNÜ4ÄU‚ˆR³ûª2èÅ'«ÿö 6ï]Ç;µßñdýãvÛéâY]AÇZl§O5ÝöSûäž³O­~å}òÎÞ§&ÞÕq}òÏÙ§¿¥Ó.ê.¸t¯½«™Qi™á‹™Mñ!/¶Y‡oÖ)ˆñ6ñÇ"©te ;ÞÞ«{|ÂFœxíWÙÙíl·Ýϰc« tÛ<ê¨Þ¹/Ó»³X?aÇ–BiïØA§ôν«ïS©:¼žÎ~{Žë°cð@iwϺ2Œ—éÞ®ðØ ê„Di£:=-*¨0ߎO—°b6µÏŒóÆÐ4ÍvsÑ`œ°mší,×¢^”¢ƒ‡ÙϺê”ÝU§À,Õ)p:í@5Š4G5ß•|Ü®ºw–Àºi¶ã‡u &xTÚ¿«œg 6ÛqŸŠ:p&L5ï@x®´3 ­ë%¬„×¢2­îŒÆ*ÕØ•³[Ë%ÿ||±Ó‰/Js/ϳNFQÚ*\Ò»«´®,¤_0Ûã_¸*`ÀªÊù}¹5ãt·f&‡þû´Ëë‚Âç˪4îVÞäEq>¦ÓÝ’œ49Îo"Ìí0çdWëÈ.yº«ûŠúxš€¡ª+R|þREë„úÿåCUn‹Öi&á3F©Ü£T;@¨ó¥Í˜- ”¿› DÒ§Ó®t$šb÷§<–3M´Únîççç• Æ×'tÝ$mš§'ú4ë…ó»ˆÝ}W–õI¯>œÀåÅ'e»nZý¼üë:ÚÄ?T¿ù͈ÏA#ž¢ÇÍïoß¾{X¬¯Þ=mÖWËÍÕÝb4—ÿyµ¼_®Þ>­Õoþû×ï¿^/?D_XoÁôë÷3^à92‘~7xw·|ˆÞ=E÷Ñíjñøn}|÷4_Íïßéǽ{z^G«ÿtßïžþóF.ýÍxÍ7ËÕïÿþ·ÁߢÕSt`¿5ù`ðMôÓï0àï¬ð]è .¾þóOsð£µþÛ×+tþVÅ?ïð;õ›Á*zˆ>D«ÁrµÀBëÍ|©wü»\ÖóŸ¢ÁutÃÛ?øˆŸ|€æË^3øù.ZEŽÖõrðs4øñqùó`þaù¼ÙjÍÿW ÿ<-Ÿÿdÿüfð‰Ó/on›;tóà·˜\›ç[ÌŸíþó›Áãòwƒ¤ÓKȃŸ¾Ëu‹?JGeþ8øæ£/þ×—ƒ›çG™rJ?‡rãäD1Ðk¬¾H?Ãz!<±ñ=¿“üä>z¼Åô³‹ëÅOÉóâY‘=.÷¢x‚ä?†(ñOÌößÁ?TÒE=%ù ô£äÍɳâ£Í«çáù^7ý³â_˜ƒùõµü¶²_üaE¥¿±Òߘ¹ßŒîŸ£ô'¼ÿ÷ŒDF_þeðÖýÃàÿ¼µÍoø3¥?ÂØ¦×éð$ÿµåyù¡ú'—¡Ê‘ Ú¶xÜD«Ÿ Íõ­|ˆ^‰º%Ý,î›ONðèúy•Sz/±ê¨|߯?øön±Îݽ™ÿ­›Ÿ—ÙgëdÂÆ¿€¾»úQÖ’,¥5¿zÀ‚æ‚Ò‚NæHüV7ì]¶ê0_eºÆ=¼~~Š'Xü=øÂ@ ßg7ÄW[·e»ƒ­ûwáM®V\.W?}Ü{ÄîoŒüt„ø¶=ÿC“&÷»Ý[wå“×&ÛÃ@½Àÿë!Æ~³ÄvòÛ›ùý:Ø¿ÕR{¼^Çwÿ#·þÿ9ÈÆ6þZ^°Ûþeqñ9í£ƒjY¿ q¾†’UŠtï øoÿí¿¡™ l‘²¤{Ðw¼ÃÀÿ¾àm¢¨ÿƒ·>ÌŸž¸­<̱½|Tÿ¸z^­°½Þ,8)°ma翾‹>Æ›züOw27I•2"× ý)êòŸÔøüÊ¿ò Céÿè?{¾ÞjѯÌýÔù¼Öƒ·(ßç¦]na°_¢E­ v!¨¦¯¬Ë]ö ´¨µÁ.}Ðë[ý½>êõQ¯z}Ôë£_¹>R[¿Þÿ§öç*ß¼“”0}ÿsëó›ìû÷—>èÈ®•ý ~—Ûì[ÔTªL M…päíwù\ƒÝa‹ÊÆN5] ¥z}«¿×G½>êõQ¯z}Ô룽/Nžø'=(ÿ¹ªžÈ[Ÿç¤°éƒ·è¸1?ð “Æ¨ó5‚*“BS!¨ã4î¹û¬-*;Õt)”>èõ­þ^õú¨×G½>êõQ¯r_œËÞŠhŸËÞ ûžË®õ Æ-:%–]ð Ï¡E­ v}!¨ÓO²ºìhQkƒ]ú ×·ú{}Ôë£^õú¨×G½>2zÜEã"‹fô8°ÖãÀz}Ôë£^õú¨×Gõ»Ç]ÔîZëq`çmQëõQ¯z}Ôë£^ýªõQ»èq`E_ô8°WТÖë£^õú¨×G½>úUë£wÑãÀêëô8°jQëõQ¯z}Ôë£^=.õ$Yô¸‹£ÔãÀŽ£ÖãÀz}Ôë£^õú¨×G=.µ>¦ Ç]ÿ fô8°:Bèq`½>êõQ¯z}Ôë#ãW‡K-{^õç¾ÂqÚ’‚þóÃ͇ÛÚ—Eüùî"郷¨¬ÏM»ÜÂ`Ÿ«EM… Ê¤ÐTªéÄ+ër—ƒ}¦•jºJôúV¯z}Ôë£^õú¨×G¹>çgaÉSë|®ê4¯Öƒò¦¯óÖÿ¼ôAGv­ŽNzÐkjQkƒÝTGŽÑþŸçì[ÔÚ`—>èõ­þ^õú¨×G½>êõQ¯ü ¸Äqÿ¤m8ŽóýÏKÔ¸EÇù4F·¨µÁn*uœÆ=×`ŸµE­ véƒ^ßêïõQ¯z}Ôë£^õú(ûâôXv9:ø¨`¹ª@hïß_ú Æ-:=–] ›òšZÔTªL M… šN¼².w3ØgmQÙØ©¦K¡ôA¯oõ÷ú¨×G½>êõQ¯z}TŒKíùÀŠ[tøÀƒz~ÂãǨç'4z~Â^õú¨×G½>êõQÏ—ZõyÏÖóöü„]·¨ç'ìõQ¯z}Ôë£^=_êI²èùÀŽzPÏOxüõü„=?a¯z}Ôë£^õú¨çK­ñyÏvòƒz~B£ç'¬#„žŸ°×G½>êõQ¯z}düêøR{ÜEq‹Žóêq`ÇQ3zX¯z}Ôë£^õú¨Ç¥Ö=Pèq=¬Çõ8°s v¯z}Ôë£^õú¨Ç¥ö¸‹ÖãÀzØË­þ^õú¨×G½>êõѯ\õ¸‹Ú]ëq`=ì¼-êq`½>êõQ¯z}Ôë£_µ>êq=¬è‹ö ZÔãÀz}Ôë£^õú¨×G¿j}Ôã.zX½cöB-êq`½>êõQ¯z}Ôë#£Ç¥ÙóÒª°GÂ%ö=ƒ²?÷QÑ®ó³ÆŽ² ¹/ßé¤EM… ŽûÙIcTÝåóâw:iQÙØ©¦K¡ôA¯oõ÷ú¨×G½>êõQ¯z}´ÛçúБØ”²ò²TëϽˆvƒ5nQÙêw¹íÁî¼Eõ… Ê¤ÐTGŽQi™âλóÕ›Ù•KáÀƒ^ßêïõQ¯z}Ôë£^õú¨ œÐtâŸô R¸D‡R8²E§L³nƨóu¸+Ù¢:]îf°_¬E]î ¯uõ÷ú¨×G½>êõQ¯~åúHËÞŠh·—8SDûHÇq±ì.!%´èL'lGŽQ.Ÿ ¿Óa‹ÎuÂöšV¯z}Ôë£^õú¨×G=.µÇõ8°ÖãÀz}Ôë£^õú¨×G=.µÇ]ô8°ÖãÀzX¯z}Ôë£_¡>ºqü+Ë-û³×G=.µÇõ8°ÖãÀz}Ôë£^õúè¤Á®67Ëþ<`¥öú¨.5WŸ`+ìZùyîâ¨jü`K §<¨A‹ bÙ]tíóiÑö®pñ×ér7ƒýZ[T½:ÿK¯þ^õú¨×G½>jeõi\¶`¥öúèp‹Ôq Ûo—:®aûŸw?/^ÓƒŽ£ãÔÒ¯}°Ïú }!´°ÖJTP ︵°ú;ì—ÐGõP-„.Åäêÿ%¶¨¨BêyÄ_Ýå.ûõµè5é£:zi+µ×GU-z…H_¹½s^$Ho\vl¥þÒq`/=Ø=.µÇ¥ö¸Ô—zôêé]¤×GŸ%.µ·wÎãö ý`×~Ð͇е“?ç†cž$µÏöº¥ÖãR{\jKíq©G?è%¬Ô^}f|©½átðd =†²~°k<(o“Ö°O÷­Ô_?ág*þžŸ°îƒz¾T£çKíùR«Æ¨C´_¯ŒÏ‹/µ7œ?¨5†²~°ÏqâÿYó¶'­O™×²Ôz~Â®È {¾Ôž/õW×Ú}NJ¯ªúüyòvh¦4Æ]¼„áÔãR{\j78°—F]ÁP§Ÿ­õ¸Ô—ÚãR{¾Ô9¨z}ôëæKíü|ý$ÜŹ §q©ï ]ŽQç8°_0.µeÜù`Ÿ«E=.µÇ¥¾\jõÌîq©Ìì­Ô^}f¸ÔWd¥¶€»8Wx¯\jç'lÝ£":Äý"q©-LÈAw/Ñ¢—ÚãR_.µ±ǥ¾f\j¯NÀ¥Æÿì=¯úó+ÿÊçàÉôŸÇ=¨1Z¦K+µ¬Eù>×ïr÷VjÓÕ²R;¯w܆Ôt>Ó^VS 3ûÀ9`¥î á¤uqk#W©ÝÕ_öƒ:SA•­æõQ R;rŒŽ\ý.‘[Ô9äöÈ1ªîò‘ƒ}$±ÃK½&k¤å-»×GÍÖšÚúõþ?µ?Wùæô ¦\]Z©ù®•u¡~—Ï@Ün‹j•°h׈÷ç­÷Žb©íÎìý/X©uæÑþçMð;ûÎu€@u:r¬•Úî`ïÞ|WèZU AU/…ÖÆ¨Áêï|‰´Ö¢¦B8Rµ6F'­þæy8]·è¼úè5Y#-kÈ^ó uÜPí¿ÿ¤å?o)éþÄ¿k§LüsY©­µ¨Ö‚ØÇÕYAg³ROŸÇm& TöyüΩ¨5Üù`ïÞü„­k}T-U½Ž£“ôQ'Rë¤EM…p¤>:rŒêtùÀƒN;;î¢E/§^“5Ò•Úë£FR]ߊ±ŸËnŒ–9/.õ”Xv—ÇÕÇÌZÔ[Ù2Ä­‚C?wŽ_›£´èÄ¿­ Yç0®úTG~¶Ö6ž°Œ¢Æð·½úœˆî·N /l±ÜžI$µ#Ǩ}Ô²Ô:lQçúèÈ1ªÓeÕ2t$Âñ¤½´>z­ÖH{´<ç´~1ú¨Ç¥ž—z.+µ©­ªŠ6ùÝÝýEp©efR™áô¸ÔÊV|8°ÆVj¸“Õ_çûöib¥v”íq©¯ EŸ5.õ¬Ç—zòêo»ÊH¯Œ—úºq©§;ÒÍ­Ôê•r}.\êVÖË–´W´ÚdÊ?¨sÐ]u+> Ø!›´îð·«ÿƒí–FÞÜk)ÛãR_A‹~¸ÔNȲOjÑëÓG¯ÏéÒJíõQÍý2q©É™_¾òºüYrë¹p©Ç‘ŠE5:U—ª7ö-ã#û¤{\ê–ˆb+5gpÄ挥­oóŸï~r\j娽nX‘·S0ÀÕßuü%p©‰ŠU†îq`Fû:»óýp©uû½^zv|\‹^‘>zµ¸Ô43Oü{}dü:q©ûg~eÀµj‹µ{ÜE}‹y_u©Òu‘»µ .µäìº{\ê–í“ÇîÇR|¾gîž —Z2v¯V4J§ßaÅËáR GzXûƒýr-ú¬q©u{ÍJ~ÖßãRkOÈÆ4ˆ%;óKØG=.õáRK¢<ªÚŠ©þ¼{ÜEiã+;µÓµªN}8°ý8ªe•ûo…÷ºÆ¥~Î8°Àua®“=õ¸ÔVjk°{\êQ«¿Žb¯£×‘úèµãRë ô+uæKØG¿4\jYœ¶úóïå¸à.Ê*må?/:‹¼6üzõ«ü_’kýçþv?/¹”ýÙ¤¿(o|U§ôµ*ïTöyãíCêaë„­Ö¶Nü÷òpŽÿìùž2³`œêO‹Æ-:P€{_ õ…p(&ß.êªåÁÞÿ§Þ®Ðµ>ª‚ª^ GŽQkú¨5©uÒ¢3é£NVÿJ«J±Ú¬´•ú ÔG['þ¯Â9”Ì{àϽãÏ^¿úÕqCUc?]µªÂêÏ·gÐ0±ðS ²ûy)ÈåYáR÷_Ù©rÈíÞêhÜ¢üõ…P€«³‚J­‹NøROšÇ)ÊýiѸEµªTç¥P_ÝCkaõ'µVê™ôQµT¹+#néƒ<Þg¯‚G ú¨e©•ýYÝeU: {Ÿw¢:Yý…öNâ»r³jªØ^“>Ú–iþÔpofW'3ŸÉ9t´Wz]Œßh[ÕÊoÍÝSOj•K¡…Õ¤>Ú‚K”=µÎçªNój=(?`eUac%_É꨸;•çÅ¥ —ênÖ£­0bí©.UØÌþlÜ¢üõ…PP8¹Î¶ö¬N¬Ô–gvÓ•:øõÔÚ`,Kö¾À`¿}Ô|° Ö}Þ|Ù7eⓉ²Õ¨’|ÞÁÞÿâÐH>~Xà~çÄ÷Æbïq-è£öº¶'eU‹ƒ¸z³:}Ñv¯Ào·Ä_:[•CÖùêßv›jD…¶cß»¦D-ŠWiÎ]U,W^k‰´¬³[ÐGê8µT+Æ~œ,Tý= :ßCRû«f÷Ä¿Ökе--×u —ZÙ©Æ-ÊÑt#VMp.+µ… yœMzäƒê¡ñ`,­ÔSlÕÏZå?i{fçHT}*½»àAõØw÷vô\U}ž“êtø#õQ­1:v‰T+öÚ›U ‹m룦h¬ò™]€uÈÃàŠG°“Õ¿ã6å ê}TÆ^«­Ôú-*ä÷){sÞ‘Û‡fí:°‹œ¤³[³¶¾ØBµîÿó¹ñ¥n'ÂïŸU*„—æK­c·nCTÞÔ¸Eû¤sñ¥vyâß5äçÉOؽ•zóJÏß|2[rýŠÉ- öËu­ZgªjpÀI|©Çµ±–ή³Y‹¼Z½ô̮յãVQ »Òˆj>Ü_ì<5nQ=Ê­/öÎVòŠ2®ˆž/õeùR[«Z¿Ó=_jÓ®}ü„çÂ¥vNáù¹ñžw{iy°_Ÿ>jÃ’¯m ©SöïÖ»åE{ Em÷kè£ZcôX jMÔ¢ÎõQ{3»€±€¥aßbܵ´è¼ó¨çK})¾Ô–­Ôóò¥vb¼j~ÂN­Ô®ùRü„gÝ9;§ð<¯>jaŒšÒkµg¦tBNÛ²ª­óææ.Á9ùRÛ¶ä_Lu²ú»ôšOYýå8:Èâ: àNfö±¯µ—BÏ—j·¨_j‡Çðun|>ü„g°R{¾ÔнX|§C ÏîõQfµ÷†ö¬ÔÓ»m»ù¸µáÇŸ‡/õ\ÛQ‡ú¨óÁîF²úëY©µaƒôÑKÇä?#¾Ôv<~§1î¢sàçS7»Ç¥¾.u‹ŸðåN!?7\jË»BØëì¶”SôQˆSc\êqg·/'=Rµ°ú룖•ÿI¸ÔΑ²G.‘­Ô—ÚãR³%«œŽéq©¿l\êë°R[”u©^örÀÄ.ó¹NÑG­B7Æ¥ÖYýçÚŽ:ÑGm€€_X·ú[–Ú!®ôã–H‡'þ=.µÇ¥žÁJýÜêf×ãëq©ç¨›}d¡¯nŽ¡^‘>jyBw¶ö¸Ô×KîDùw²ú_»{’>jm;:I½.µe x9WúéK¤Ç¥ö¸Ô¶q©/GOùYàR·¨`›Ke„-=.õ˜ºÙÇ ¹:ER¥zú¨í¬—£lÕó¢@»IžkWuc¥¶µú_š¸±>êqÝ@½.µ©Õ¢n¼õ¸Ô—Ú.õ\d$-#AÎ…KÝËšTµ,š:%Zz\j]\j£¯ê:gêPõ´Ãò:़€>jmÑ–K­6ì¼(Ð.³9ÛÒG­)ÿ–q©¯º}@µWyîeqò'­þ.¥Öšbëq©=.µ=\ê¹(ó:A‚œ —Z«®m5 HÉç=.µ6ìÀ ®4+ëY©µ­×“ˆW[ÓG-«‘r©5Äuý|pòÝX©§¯þ×AsÚ@uƒp<]µ†=%;°…ÿZ¥K¤çKýuàRkœ<6Æ]œ™DBºÐ!伸ÔZöNi…½2+µÇ¥6Â¥ÖD–ö‘’Ú»¿V(½s}T´hë÷먑SÎÖºD~n8ù–•k«ÿ€În¼u®:G8vŽ“oaõ·M±Wm¥~þ8ù—Ú—z ’\m»¦ž~izÝ^%ïœ)×9äq©uÊZ×ø—z.õ€áVj¥6E¡6(ÿX²ú:ÑGå«¿~p¿îu.µ™ÖÚê?Λ¯e¥v¢ªg–ª¾o—Àw»òzõ!Q…Ò½>ꄚº}T¼yäê?ÖÛÙ“à0ù«ÀÉ7ZKm —zÀ&<1Wßiøãò)_§]¹oÏ‹y ¾ÔZÙSµcv=.õ\jS¼ªj° 8ru\¿Fý‘È´R tC«çÔ^¬–7_ùùKàä›[©ufSËœ²A1í¶è€>:.Á±ôìøôQk«ÿà¾öN`_{8ùr©õ¸Ôp©lÂãöÌ¬ÔÆ9&•Ÿ¼ä¼|©b©Çù§OÈ6œ”ÆöNîÇ/K=`Еžø·°Djmkú¨R¶†ÉV&„W‹kàÖ ¥Ÿº;—Z*µÚ³©\ê¡5<Âë'_Æiq)È |a}Ô.õµÌñkc;ê$›³Ç¥vKmÁ(hÑQ70w÷·ÝW9.µVŽÿqR;ý¬?m‘ÉëÜÛûóuàRk­þcÇewd|PÈ´ZR«1!”ÚKàÀj•šºßë£:ìŽÎÞ_À¹OÚÂ¥ÖƒnWƒ)ÚmQuUÎcÝï¼mÿZõQƒ³þZi¡ wú­XC[öÑ¡yTÿÜàµê£_&.µRFê½{®@ÑkE‚œ —zš)We=¶0³kZ©umXÕôǯ —Zkõ7—Ú+µîО¤:ñ-ºÇ¥¶°ú03Ôv®êQ£ïάP ‡ì憘æNp©‡zDJVÜéLÀ/¡êS™7uÕ^4-ØGõŽˆ"ž{\ê™p©Ç—e®uöùyq¯ r6¾ÔüÀóOuÈ–Ù¿.þ¶…ÁÞ±RiEþÕôǯ—Ú`õ7élNj͇¶øô¿>ÚŸ„¥Võg™^!ìtK©•Ú¡>:Â#ÙUg½œ¢³ËgÐQÞN‡8ùæá‘LÀŸ .õàÙN‰Pkà€Z³± Ô¶R? œü/—zHQ•lu±8÷õ ÿ;\êé¶j ƒ}t‹ö­Ô†-ja‰œiõ ×w§òVj×ú¨>DÕïHHÙcgönã[ÞEÊ­Ôàªb#î­j«‹ý£ØÓø›I­ÎBÍad_7NþŠKm-,³;åz\êËáRµ,òæeT¥ŠNüO¥̣f­¨èZ {ë8\êþ¾.X•ÚWÇ íþÒ­Õ¢C[ÐV‹Ê¦eN^•`¼×„«@×c·ªý½¹}Ô‰GX-Õü¬ÿ„u¸‹´rn±k¥~Ö¸ÔZ'rEk=ÿÉÞyJ»öQÅ.rLÄã—€K-{^õç¾Âq*À¥~¸ùpc[û\^íá¨êݧÈÊ®K!%ûݬßåû\-ª/„\êlY©»¢Pe©#µ­>Ø©™r|+ -°º?.;U&…j+µàA/¶úË:®šmXj9J¯Úô< þìûB¨'µ=Xç«ÿÄÀuI¼¹s}TßU(T#esjÏJmª³ëµ«`UÍÝÖv‘íXj-{§Æújªêo çÕGu,ƒƒú¨*íºûè _gSª/µóë£Z3{ .QöÔ:Ÿ«:Í«õ ü€éëüŸõ¬ÔAê8]f¥@Jª»YkŒZì[T_úOÕôy;ð©þó\ƒ]_tä`ßÜDÞÜKÆB;û™­ºõ [ý¥R;Vä5¬Ô:ï¯h‘ÔüÐfž´DκúZ©ÕfJñw¯IjW, æQµt­þ¾Rë$¥}tôÙNɉÁéÊ¿t‰œU5²RÿÙº†,n×2‹}¿>}TëAê¸YPºŸ>ÍTý ^åPÕz¬lÃÑ–BJN1ÃÛ£Î[ÔT˨¦?8h¥VÕ²Û²R[ìS–bã5ì._ª6b;ÔGe/>"Œ“;78Eù—.‘3é£ú>Ï‘Vj ²¦×\× {­ú¨ÖÌV§G×ËÑÁG…ïUý‚FV꾺*Û|øI)¤ä¸Xv-lÊ‘ê¤Eõ…°uâ_ë['þAê=¨înÕÍ`×Y eBhÜ¢²±SeR¨o¥n°½Øê¯°.êš# ¬Ôò7Wy°ªN+öÁxõ¤–[ gZý5dY|©jø»×GutöÁ½|÷Çu„ šœõWùԪάíDUlM}Á]+õ€>jº)œKÕ³ ¤V¥ ZÖ­Y©¯[ÕšÙŸ9_j-7¨j–m‡=_ªq¾ÔµPm¦Ôý¶›Á>"Þ¸EùR·‰¥çP½ŽÕ_¹¬#þÝ;kµ¨¾V¨e7×!‰|ü„ §çëê£r‹¢êUçÖ:B¨`®kéTÌ£ìÏõQ#ÿ«î¹ÁgÍ—zÄê¯s'òÈy´/æÏ¿ùÀ}æ|©Uþ²jj×L¼ž/µk¾ÔÒíå°óZ-Ùnû¸ºÙ'‰¿Á`çQ¨ûФLÀ/¶ú+ §:KwO+×cp­kõÔÚZX"GNÈ<x=ªZxÝ×½>ªw"Ö@ùóÏúBPåAÍb ªZ¥u¨Z±wv#Ð/Á—Z]?¶sõQMƒ1Ú5ZÐÕ3K5 »e­{ÝüÍ¿l¾Ô*5ªêŸïÄRËZtŠ,z¾Ô}³ê„´‡8°û8[õ¤Õì²(jY(äu¬þ–Å_«EõÐϵ[ÔÚi0!ËjÝÔ7Ïkš)U#Õ½>*Oëi¬üw›]GªÜ–8 ƒPbã4ÅÙš½SfõtÏ—ZV‹¾±>:äó”¢Ò«LÙ–5d#ÿ«ª# »zP{¾Ô“øR«¦™:%£Ñó¥vÀ—Zj”Eó3lŸBv=Øõ…ÐøAùR· ’ãKó¥VŸéªú®µh!Óª5DÌ¿Ïx—Ú%?aYUõ:B8>œt´?äÝè£z¬Xµà^‡©ƒ¬þ¦yœɼÍÎú·Z´/øòóíZ™Au;Ò˜¿ù$¾Ôê¹ÞX5ÍÄU‡`/»I,-hȃfMÝ.4ÐG¥nÀ«°F~q¸Ô-qVë´ÃK±Ç¥vŽK-åK=®*N.ƒõ׈KÝ2¢ömÕÝ"$¯—Ú˜Â³Šƒª&2­ÏeA£âiy^\êq;÷~ÇU}¦ƒzVj»úèÄ:UQïúB8)[ìȨZ6N[â¯Ã5{ä¹Åyq©µæz}}ÔÔýUµüâ¶4dËkµôÑîq©máRkY©û[ÍÞþ›Á=.õL¸TòÜâP§ìMER½¸ÔÜõVê¬,äkÁ¥¶T!µ2moÝoežÔÚ¬,¨|\j²DŽ:ëß7ýÔ¡Z|û²¸ãmë£})”·¢¸]ª~½áV²%Hðm÷{ß|Ý˽9Nü‡p©û^ØÖ)AR »µFºÇ¥–šO§è£z%E·NRöÿlDZÖ-ØÍqò¢¨=.õt\jÅŸÚ:ÿÜ: =\ö¶Ç¥ž —º»©¢ª~ ¿œþUáR·G­¸ôö¾>z-¸Ôëâ°€Oª›]nåFjkŸª4œ:Ç¥n;r%§üMmUu ô÷+qßÛiKÕ—NÑçzí-ˆúŠ­R¶Ø,¬_=E5=©Seåƒ;Ñu°mª¼òBCœ|-7 Ç¥žŽK=0Áªôk¹_¾[è¬Ç¥v‡KÝ `•®moãðÎõëÂ¥–Z±}šX©/»ú÷å«ê ¸€¸  .µÄzßûD•Y÷oí—Z µú'ŸåŸ[¢ãÿl[Š¢v |‹úúè Rö˜¶ín2 ÛõÅ_„n)ñã™lUŸwƒK-UcÇA%·pµâ󻟔[©]hÈCÀb+õ°‰]-„ò#™ãpò=.µ—Z[Q•GèJ´oK= .µz .XeÒ,µR¸Ôjõ^j¥6… µ¼ú÷O8T}WƒñêáÀjQ SvßJm—ZKjG&¬•v­làKîi[5˜ÁlÂü¶[[5BÊ–LÎ’kµÿEƒ%ÒtÑå leÖhµÝšm­áRK §úˆë«¿ÖÜÙ³ JC]-kÈú~a-ײLå;í¾•ÚãRÛÂ¥VÕÕÑoe›_K= .õ€•ºE­oýªp©'Y©ÇÑ´°ú÷嫚vá4XÓ1ªß¢“p© föI«¿–eZ>nM9Ø¥X–}+µ\j{¾4–Zûhõ$ÅVTªËRW}†q.õÀZkM5ö| "àí¶¨é$nW´û3âK=nš•V…=›²ïn•ýYmhªãvî}õ¦ÊúÜ´ËÝðÊuÒ¢úB(PTõÖ‚QpH™w1ØÕK¡L[T6vK¤+µL]u²ú[° [hQçVꩵk<º½ÕŠØZ‹º\ýMõQ-VÉ×ZËŠ-?ü…§µ-ÓÊmRÕÎ::K•mÁ-è£×­!ëœÅRKlŸª¶þRx9k¤ ô¤¤ºò{ã5¶RÛµwjÊšv¹íÁî¼EµþÜ?ño Á­Ô3 v}!ù zöÎ~…ÔS,°W 6áëkQ5rЇÑÍêï|­•µ¨“Õ’>jÌ*ÙÂZkYüÕB(DzTÃ;ê@·÷õѾŒQËÖHkRëÄ>ªkQµà8õ»V)¼œ5¢ŽkØþûOzP)È¥–S}èsÜŸ¥-:Å ïfŒ:oÑgm¥¶<ا,Å“ZTËJmj«ªú -¬þ××¢Zçë­MÈÓOuºYý-¯µSƒ6\‚SôÑÁ~1+µ5}ôšfvË:»tõ·ÜµNì£c[t‚­ªŽsÛ^ÂQ§ŸõoE´[àL{}kçLÈ´#Q ÇE×´è¤ÿ_¡ÔꡱøX©Õ¤–Ï׬þÖ¤Ö¹>úL'dk«¿µ®U·¨å1jt®1:ÎIiM½>+µKk¤µ®uh½\L¾þRx9käâR)Vꯗú«•ÚËáRËŒÛ×'|MHÙîÒ§Cnϵú?‡EÛ N¾ 7ñ+ÿ‘úèU¬þí ©]X#­u­sû較Ýt)ô¸T£.gÚç`ïüÚq©½Ô^—Z}ÌùY©/¬^bŒ^ßê}‹¶sÒiÜÄgE\·¦^LÕ–*¶–WËVj‡ú¨›Á.Y êô³þ_1.õ—b¥þzq©¿B©½&\j}Ù½Â3¿_•>úVÿËaw_'ß`ŒZÎT|8ù³à[ «ÿLòµâä«7…Ï—š«O°v­ü¼wqÔƒ~™¸Ôý®2Ø¥*ˆ®÷ ãZ´½+•jþ Z!t#þçÓŦã̖Ǩ}”ÿ¢ r¤_ÈêoyÑv©Z^kÕcq(¥ú<-jA浫Ž\ý/¼e· š#÷ko Ÿ‘>RÇ5l¿]긆íÞ EÀŽ{Pã'‹_d‹Š*¤žGüÕ]îr°__‹ª—B‡â¹Õßë£^õú¨×G½>úÅë£Ïš/õ¤ˆöëÃý ùR_ ôŒK=ì»×G½>êõQ¯z}ô‹ÔGŸ5_ê/wñ«åK}­(Ð_ .õu¯þ^õú¨×G½>êõѯ\½B¾ÔSØC0-¼&>°__jkü„ge'ý…ñ¥ÖÚ^ßêïõQ¯z}Ôë£^õú¨—Ú5X-Ò¬3Iá5ñýÂøR[æ'<;é/’/µÖ®ðšV¯z}Ôë£^õú¨×G¯™/µÇõ8°ÖãÀz}Ôë£^õú¨×G=.µÇ]ô8°ÖãÀzX¯z}Ôë£^õú¨Ç¥ö¸‹ÖãÀzXëõQ¯z}Ôë£^5Ã¥Æÿì=¯úó+ÿÊçàÉôŸÇ=è%ð;[”ïsÓ.·0Ø/Ñ¢Îñ;GŽQu—»ìhQ÷·×·ú{}Ôë£^õú¨×G¿r}¤¶~½ÿOíÏU¾y'=¨AP|Ÿµ¶ÊáÈ®•ý ~—Ûì[ÔTªL M…päíwù\ƒÝa‹šàw*—Béƒ^ßêïõQ¯z}Ôë£^õúhï‹“'þIÊÞÀ±‡»¨…rhÜ¢ãÆüÀƒN£Î[ÔTªL M… ŽÓ¸çì³¶¨ ~§r)”ã}^ÝêïõQ¯z}Ôë£^õú(÷Åɱ쭈ö)±ìóâw·è”XvÁƒ>‡uŽß9rŒêt¹›Á~uq{}«¿×G½>êõQ¯z}Ôë#£Ç]4nÑ)²èq`Fëq`=¬×G½>êõQ¯z}To°{ÜEí®õ8°vÞõ8°^õú¨×G½>êõѯZõ¸‹VôE{-êq`½>êõQ¯z}Ôë£_µ>êq=¬Þ±N{¡õ8°^õú¨×G½>êõ‘ÑãRO’E»8êA=ìø1êq`=¬×G½>êõQ¯z}ô+À¥–Åi«?/ðŽ{СºÒÖÖ繈vi™âý/·¨¬ÏM»|Ò`Ÿ·EM… Ê¤ÐTªéÄ+ër7ƒ}Ö(À])”>èõ­þ^õú¨×G½>êõQ¯ša êÈB×°Gª°ñç{¸‹Òʹ[źš¶è8%PëAGŽQç-j*U&…¦BPÇ)ý.w9ØgjQ­šÐu–Béƒ^ßêïõQ¯z}Ôë£^õú(×çü,,yjÏUæÕzP~ÀʪÂÖù¼ôAGv­ŽNzÐkjQkƒÝTGŽQ©óÚù`wØ¢Ö»ôA¯oõ÷ú¨×G½>êõQ¯z}Tˆ>nâŸô -Çqc¾ÿy郷è¸1?ð “Æ¨óµ6ØM… ŽÓ¸çì³¶¨µÁ.}Ðë[ý½>êõQ¯z}Ôë£^e_l¡Z÷ÿéùÀz~žŸð…ZÔóöú¨×G½>êõQ¯~Õú¨çëù ‹¾èù _A‹z~Â^õú¨×G½>êõѯZõ|`=?aùz~B£ç'ìù {}Ôë£^õú¨×G/´ú{>°†-:E=?¡Ñóöü„=?a¯z}Ôë£^õú¨Þ`÷¸‹Ú]ëq`=ì¼-êq`½>êõQ¯z}Ôë£_µ>êq=¬è‹ö ZÔãÀz}Ôë£^õú¨×G¿j}Ôã.zX½cöB-êq`½>êõQ¯z}Ôë#£Ç¥ž$‹wqÔƒzØñcÔãÀzX¯z}Ôë£^õú¨Ç¥ÖÇô¸‹ãÔãÀŒVG=¬×G½>êõQ¯z}dô¸Ô¿Ç]ô8°Ön‹zX¯z}Ôë£^õúèW­zÜE«w¬ÓãÀ^¨E=¬×G½>êõQ¯z}ô+ÕGJ­ï–??Ío#¥~3Xo–Oƒçõâñv°‰ž–«ùêÓàzqµY,q©¢ÇkÞ¶Špã*,W‹ÛÅãü¿›o"Å¿ÊUrîýÍ·«ùâ>Zñrúx=Y^=?D5øWñÖ¿®£Õo×—7x^\G—¦‹G[–ëñÛÉÅ÷?]>^D«5úsiyêñÖ4¿¿¼4ÛX®!Ï_Ì.¿.VóÇï Û¸üÂAS.®–‹õ% à^|}ùpÝßG·«ÅãâÒ7œåYîàÓÅ_?ñ;¼bƒÿ~oX6~ìáÇÑ¥íâ—hTt1Z®®£ùóÇËÛ‹ÿþÿ§ùè›/ß Ñýê›Ë»‹ñŸ¿yOÝÀ0.ßU–ïøxô·ºIóëáð«K›íÙDó‡7¸óË?óåÿÍ=öýóõy†.=ÛPVà…x‚íšxÉÕòyµÆkÐ’Û‹û9ß¿ø°ÓÖÕœ"ƒ× É¶í.Z7`ø§éŸÇS|çà/³o†ø ¤bÂÐäè.ž"=4ÿz?ÿ°Z¼½Y]*ÓÁ“m3¶Æ7ú°zÆÄÒÝ1 ŽeXÞ¥éyæÀvBKáîáÅðÃz³š_¡3˜¶g‰8ÿëâÛ»…tdy¹ºyánðˆëh}µBŸV¿ßÜE— ýž?Í?,î›>]Ȥº¹X>ñ.ÝÝ5†byÙöikÊö-K¿’¿2NËOœñ=OüêÍåóËë‹õòfƒ†üŒÿÏWÞô4¿Âõ—÷êë ɇÜ^pä÷îÅ3¹èвŸïüÙHìáéyCq=ÍW_\*4i`hƧ‹9&áý¥EQpéá'·ó§',a®ÝIüJß÷ÃÅ×눋ça¾Y->âÛ÷2~ÒD ¦ÐJ~½à`Ü^\/0ö‹xÿµ‹ÐtðâÛÕüénýVÏ‚/7—˜ý.n²¾8{t#³Œ²xÊïàþ*cs÷°~ƒ—]GhŠuüõÍÅâ}~·|Þà?|ñÀ.UŸ.n–+4?ù· iÏWɳñ þ|^Goäçû{,e°’NF×ÏÐMo884‘|þxñtg EÂIôü€?dþ¬ô«MSN7>ú8xºÐuLFå`ºrfägŒmq~ü×Åb½3|x)ßr³Š¢wt„¿è ’)ð&ž™Wwr¯4[&õâöQ aàX!¥¿~ÖS$˜Í7—·êâ1ú¿‚7 ö‚Ä_1.™`9A¢Í‡ãš ¼š?R\|x}W@8‹Çx<¸ò·w\Z_èws­‹t›Ù؇ùãc´âlPÙlÐO†4WnæìÖo‰(#YkYX¡PTòLjb¼Sñ,ˆæëO¼IVÌߟzšJ3œ€:íJ:Â~Ù&Þ­oäótW¹žÓaº‘áÉ÷?îkô·|â‹ç÷ëeÚÖë‹U”!gZ-ïw*ü9º“,Ú/¸£¼ÑÊl~¿D°Œ1ÁeN/V×_P.òš›Ý•ÿƒ– Ûñ#§ƒ¨¨g®TÝ…Åæ þŒM¼qÁ‘]lâ–xÉÙïÆ‡÷@ŽÏTp×sN¿HÖ&®áÀ ÍPïŠ&ôW„Ÿ»ûo~ó5tÔïÖÀRßFÿ>ÁÞ?øá¹øÄ|À]þ7Wïsß¼Ã"ºÆ2üLQÿã 7ÅŸ\L0t ¨žÕå:š¯®îô—úÿê'½_¼M¾Œ>^ÝÉ·ÉÅ…m˜æeô÷Ü®ç?EHïi¾¹“&<,Š6Kuu¿\GòáÕýâéÝ{Û"Z n×7ËÇÍÀ4ë«ù}$YGù¯oñ_ý¾ºm–.nþÉVâ¿Ñý:Úº^ÜÈé!ØØ°‰mÅß¾×÷$ßòBÜöÍþmûOûîÝßÑÏøÏ¿ÿŸÿ¿ùÛ¼› •ƒ Úko­ËÁÕOýÉôý·ƒ§ë›‡ùêÇÝ‡ÚÆÀÒ6&_óJíßhoC؈.~1,øEÁ£Ë¼ŽDKÿ·fy£ÓGÏ>^Œ¡´ï±ŒåOØ\hžëCã•÷ƒ_ã§?c6û>·¤G˜4h÷õŵÞ".C,ܦ¶ŸbZo=tÒÁãþ¤߇ǥW;|ÿüaóé)¼ûÓâñÇí.Æ=|÷ÇÁ»/߉A¶|Ç cü‡þÛpµšúz޳õ~¹Rß™ò-Þ?¼þùÏÛÃ’5ÆÂbüÌ.º—Žë¼À*•|=—å&TIïµ`ÑðŠm„KÓ Ã‚'í ŠJoœ²Ë:Ãòü!™â±Qåc3¨›\›`áÿÌñÿ¹ÃÿoâÿÞ&×*÷áÞ— ¾SE_š6VËÆü²Éš|ËÆ‚l°k¼×v™å‹lÄ2»Í¶lÓÁ,ØæþÔMoœ«ÜeC)Y-K)mS*%K¤thàÕ݉ƒP0ºž%­*¡ðëX(¶^0ÔB¢…©…,’Ýxs§m»mÇÃôŒ à%RJnœË¥’˦R²[–RÖ&˜ôÕR*€:A:Tà¦á‡U ^¾ oi ÿ- Dmjÿt‘Æð5MzšŸ?`¨.M+(|tPÒ;çùëšßjWó³*ne–Öýz*›fàTÍeù^&³•hÿIæˆ]ÂÁ£÷ŸQ0*¸3yZîºÙdµZWü¹Vy9ͯ>4Tä…ß©t „V ˆßDz´€†?]~Áy /XÇ)ÄS@W]Uð´BQ¥ÏÍ]7•Õº¨ÒVyæë•¯ã{•Š‡ß‹â±µâ¦q‹ËÐräûÃ6e|#Êô²n±[¶*³æX¶hÕâë™ë¦ªš¹ø^Ï\;Q-_‹‡¢¼,u—š™ dˆß«.&ÏpQï.¾‰®žáþI¼ˆÑÅVÌÂò-S¿éÐÀòN·)ûUÃYo·­ r-`ˆ¶·Ó²Éè9]Q…âÑO¿OF­2ÃÞ¡ÞØZ‘Íè¥ÏÍ]×Á­A,FU9MšŽYÓœ Fõá£}ï;uXI R¹øpMËå¢äûT.––Ëx¹Þh“þæùñ*ŽDÆqG .J,óñJâ±Øœ7°öç—–Ÿ¼¯`î§wÎó×GIÎjWrisšæX‡5u …„Õ‹ƒß§B°µh&ÊÊÅs»£xÔ®æ¹ËÂÒ—–ëE/-Dzç\®•¾>JvË’È5-¿—{É[#ê‘ðräù}:òŽy½-ló{}ÖvÅåp—­Ós Ÿ\ä0¹é;r×G ¯Óêðª|Ó\«Áðn}§¬ˆÐ—³2ÊEY¦áTÉE¾Oåâ^^ïïÕrÀu òÇ–…]¬àe+!½sž¿>JTnË+ÍQqÓ¼ð2 %€‡A¥ø}*ø*Þ¡ecІ%^AëŸØ>ÜG_¬ÿ]k ÍWr|íájÃã«KËÁo ^\ Ü©â&d¿:N^ËÒÈš3pÝŠ…SºHôB°ÄjµlÓ®ò·äûX qÈmßjÕ1¸Û$w—ànbûõî‚aŸ>¬×\!‹GÍÞG›HΖÖ¹Y-Ä^I‘t7‘x®g=¼H‰$wÎåZéëf{ÓzP9×*?lzrl$R«t-Û°*£úò},kW2ƒBɨ 7MÁÓKD¿'wÝT4V¢‰[Ò\4Çžk%hјVPuÚ.ßÇ¢±ë‰’1E2ªàáe’ѯÉ]7•ŒÝ…dt«ò’QÚ8jWu$cÙ•–¿|?W"§¦d¼T2û/“Œ¼&ÝT2N’Ñ­:¿dÍãXfÕÆ+ßÏ•Zä`e¶¸‡TðÆñ-¸ ¨Qžâú𮡍KÅH^‘¿n°'»-ŸçæäÛn¼)‡œÅÊv-·ró{Ñ/nz ›C–Zaɹ¾øÞ0¤éxVу ¬ä¹ëf3Øm}CεÊ5Ïý×39Ô:Ƴ é(ù>–Nršûüqq¿ *T´L|wñ­rKå¡*xG pç ~[ ÚÞžs­rü}ܽïÔ®P,C«—Àô+Õ ¿ŸkÌ„¨—¯WK,‘Xõn  ~]`Õ»Aò˜ì²ñZ¶ê³æX¶ïkb™Z„V%ºI¾—)ê% äKÆ¹ï Œi#C`ã<«n€‰?5wÝl*zí#C²VåqLçÑ }-¬cX•ø@ù>V¬O¸7ê¸Ùãü:ð}Uðœ"AÙ~òÄÜuSAµŽ ÉZe½BAé §cÚfUM¾O…¹|}ñ>úû³Æʹ—ç$ÜeI8Q¬÷™`#ÇÀñ`~Ñë ‚¸SÅ/Î~Õ<ÐãuìÌšƒý ÄOk¾ [:ÆïX¶Wµ Ë÷±0bì¯k[F0¯ç~³øbs·Šæ×#áÄ¿:l 9ñûçùë¦k¨mç+×*/x)Y'¶S ïÑÈ:ÉI†Ç°í×’¢’ÙD–­ [dYö ~Aîúˆõ`·Ž_É5­¿r´qTxfÙz­pjTí0ü>ˆ£ÏÃv¢EÏ(ˆÆOË]7]NûQ·ÊóN9 P§š¯ñµÊKH– qU[ ¿O$Ä%3˜=_̯¬ëÛÕ¥i™¡*xB¬Ù “gå®XNë«#×4Û;DZÀau&²QŽçVÂ*äûT6––ÍõíÃüIN’ùÅ;æóCÉù3Ð(zjÑNÉós×GÉ«í¶\Ó,ûe¶G¯ß +·~ŸÊÇNäƒN_š´N ~_ ‰ôι\ÇO=Jm¨åšæží¨¢ò|T‹ÇÓâ <»rùðûT<ÎåµÊ­Ó/|@‘|üôQ¹ë£äã´-Ÿ¸9ŠÇÇ‚ÂvwÓcuB¯µ!ß§¢q“•³¾šë¤n%ªí~ª?ÔJaÿ©ešM??w}”¼Üö5›Š›fÙ sÔN΂ÒòÑW×ð+—Ž|ŸÊÇKä³Yo´fã÷ª–f‹Ÿ”»>J^š-nÚAͦnÏ·ñù¬ù ëòIí¦ÌÛ{'eÞX}ÊükJ™·[L™—„Á‹ü)¦ðáiØ5`ûÉ}óìªALÙo7¦œ5Ær¼Pé²>õpÂj2ÛûI@¹:Ú¢t¸"tkF[B7 ¶„=J¿ýè´M/j±5àØ­Dâ+7âû’Žs}1^><-îSÀñœ|è€"Ì$© "9¿¿´LC?çp$ÒÐí™ç.ï"~ûyC¹†¹N•ùÕw¯… üjؽŸ î}ɬ¹¾øæùñ1]srTe"¸Ýh®_oŸÜ8Ï]%ƒ¶3€²†¹0©ÔÉd¡ä·ä 9ðëTÄZþiþü¨Áô²°z…Ÿç.ÃŽ¾SðÔ¢¨c|ãëÊÚTmÓž"´MªeTãòåûDz‡ÈË"†CáØ¹¶*xXÑv?6w}Äb°ÚO Íšæ/³mÇb1+áúJ¾OÅb•ˆevù…d ­6«9è¼@<¸£%~Eîú(µUÌ5ÍÏOÄb•ŸÄ§ß§b±·ì)¥ *9ÝÅ?Ê‘¢$~[uŽåÓ;çÙµ:N$­o!YÓ\£Î1îÉÙ¶>1m۪ʞà÷™8ɦ‹÷ó˜<‰„zŒóÞ^0ƒŽ,yëõ3ÏÓTòóƒ‚ÁÉ‹r×G ¦í¸b®i–Û9ÐÊÖg‰¦Sy…Ÿ»OÜ´˜?,,&OšŠÕ4§èiE§ŠÉóüuÓ}¼íóv´DÅ­ ¬×uªhë“Óu*+ò}"«äTñýø/ߎÿxùDJ Cß‚µä ~XPÈ ,eø—?ÌCˆA§799C/2a° %E Éóüõk­õ³û|Ó¸/©“²…ñxÎzÇÍÄcm‹‡ŒG†’[¶Ä#hÒäÜ1/…šn DzO4£(©Òñ’å®’MÛ¾e®iŽÕFR¥óøÕ‡òò}*»P>¼eK>iš%išweôã6ÿ²ÊççÅæ»…­+"ÄqÓv¦×ê8±µME‘kšs(_´š#È/ene(R¾Åâ$d—«ù&ºá×orZ豊žV„›€E?7wÝtj×’k•m¿ È„£!fè`qÓXŒ³‹»ŽnæÏ÷›˜mZÄ¥2ãPðü"ç?¹sž¿>bî·vÉ5ÍÉâaÇg'o r’X†WÍ ÂïSI&†g´]©ßÉ4ÔôWlj£í$kÎÀirB8$æè­Þ2½°ššÅ U*» 5KN**‹ +¥à¥EdEÉóüõQbi¬(nFÆo¦£GÞÕ¤8Võº|ŸŽ¼S4ò9²üt¬oscÍz¯)<"ñ’æ®k§õCÝ¥#ôí€T´ 4˜Á²ýjŠÛ2A¸EšèQˆ¤PBDýF'h¦B¹Ëdb¦RH^ë—´ižq$ÄEÕŽvflËt«Ž&ù}&¿P8¼Eë5µ/œ¿E+èµÍŸ–øóê+ü1ÿxiY¦­v8Zo’®ÆÔÑúäWÇÉËo;ZŸ6gà»uä¥ÊD‡ëmÛ¬Œ±ð{•Ê$(” ±¿×Ȧ˜^ï(1ØäÎyþú¨Ñ:0Øâ¦yöÙðžèÙŽUŒ”ïS …:hGB¼e_BÓ‹6©yƒª'!ý¶ÜõQ »nÚA“ZÝ´å—z:uÛv­Ê |Ÿù¥Æ¥+5wvOå¶})ÍVQKÉ­Cr–Ü©æÙõ±®©Ñ…˜ôh4ò|T+bòìÊ ¦|Ÿ‰É,oÛÓæRXÒôm«èMEæA|§šg×Ç ªõ¬û´=yDÙaø’:^HÚ=µ}»z-ñûLHV™x[VËŸãµ´ÿž²µ„;Óµ$o?ND]DâÑ8çZŠÅ8•qù>“]&&Þ¶/¦/¯Ÿ¯¢¯%™54ü¢·–}¿7ûÕ‘Âj;žµgàu²#:Höí…NeœT¾Ï„ãì '¶p›*Nj5ì¿§l é7¦×GzA¦ÓÅÒmóì³ùªž'8†[ÍŒÄï31¹%bâmbúFŠ.ëý¨àM%ûQüN^ëö)(·ƒý(n[£ý脵 Ét½jú*7.5½2!á¶!½¿šo6b5À/xUIP!~)¯u”RQ…¸mÍ£ £ržù8–W½Œø}&!¿LB¸­HB„@‹ž(xO‰¶‹ß˜^«íü´]ܶsj»@‹Éö*ƒ§ò}&¦ LL¸­DLË›XÛí¿©LÛéwjm'×Ç *èBÛé¶KÛ…ZHŽ_ͨÄï3!…eBÂmEBÚÌcË¡à=ekI¿1½>v-upˆÛv天ŽׯÎ+ç÷±˜¼ˆ„/ßý%Ÿ9¨ ÄÃAÁ ·¢0yUîº)Ák›I7k•ë Û Òù:Hçx~XMwå§ØM2¶éä–ýEó§å<>÷æ õ‚tñÛr×G,¯}dBÖ´3é ùA5!™8™„ ‘ rKZ›ÿ”˜~zÐé12A_%¡.b qÓΈLðcJß *µ¿%äo%Iá*VÝÄé„ÑÇ+H‚Ë(SpR¼àUE¼ÉóüuSýæ·ªßÔV«‚c3¨*‹ø1#iVsñû÷æ­ô-a¸»µ6TÁ;ÊVŒ¼-}ÄŠñ»Ñiºig<Š%äaPMuf+†:mב[ö%ôÇùýRë4ÞPo׉ߖ»>JB]è´¸içÜub YFeœT¾O%Tˆ¶’[Š%4\z¼º4Ï)zQQ^n|'ãÙ鯎SÛÒ¬9û°Ývh_§Û¸¶Q%•ïSÑ¡¬ô-ûPŠæßæŒ’V|ÓaÉ$wÎåZ·î8É´ž1kš×yTÇwÄÅqÓ¬2äûX:Á'ÉÅѕñ÷må‚Üælº o.JñÓ6ðZ··±m´ëûä[e{r?¨²\­²\³2â)ß'#_Œ²–[öUÖWó'ì)†QôŠ¢=%¹s.×ú©Ç,‰ ý]?kZ.yöuî!yVeÐS¾O…TèÍÈ-…B"?V‘>{+xSñٛܩæÙõ‘²²:8z‹‡£ÞÑÛQì¾'ì–*f·´1Ê»ì–0wØ-ݳ[¾&vKç0»¥>@-e·L¿NÖž}:ªðtÕ(^}•Å£:L˜ÉfÓÐ8rÝÙ]@LÃÃSÕŠ¹Óf‡Õg ßfPŒ›ç…RѧÞrÀº5OéB7=¤ Ý#¥âtqD§98ÂýªFJÑOø6«`¿9¾Í 5Ï;R©¨œTtè}ªC¶™Þ8Ï]%·}©Ä´£G£±ëgWÇR9LÀ©R©åù€Âµ¢Ïyا:ô›" Ír™]%•.޳uÃΡÁ‚†tœA!B^x+ ¥ÂmO¯•šäœ^FÎé©cÉ9ƒ¶¡ð¹†Aƒúð€ì›RÑÄ”±T 1ò¼c_ƒi„Tµx9“ç¹Ë£DÒ>^”zö9J5$¢âš ²N!¾É‘u†9΂\v¶S—Äw¦$žÙuÓ˜@ØvvvÖ*Ëê‚¿SK£Gç ÏÑ–§ñ–} öö}üáþÇÉåò‚È6˰5ëåa¶‚äN9ȱO î [§HË5ÍõÚ,Ö“ŠjBÑF ô-û¡N-Æ ˜xÅAèÖ$ïLî”Aò«ã„ÒzÈ mÎÀv±Õψ ¬Ædaáñ€¾e?#nG0’EÃËK¡ª©Eã),2 Wfú«ãDÔ6ËMÖœe¼ùïRsæD£}éUòM-DýÊìWljÆëB4ºiõ;ÆÖNcVΰرÜcåÜä[?Å@šMÞ©âg¿:N@~€nZ=  ñ9§L%/§&ÇËû–rK‰iFÁ| Á0‡TÛšu˜;Ó;Õ<»>R2A³”ƒóN¥>^;@Å©òTœ!s® ¤Â[J–Ë×Ñê!1j‘r¦wÎó×GÉ#ìB•é¦umxÉ9Cm]tþ"·•Èç[,—¼›©êqurjÆoÏ]çf,›¸m®w Ð|“ñ4Q^_gú}RLÈÐêt=^>^lVóûÅ1ÃÇåø›SXç]Áéø5i:“;E%¿j^­ua¤Màªu¦ãû8]®Çý™ÞŸ/Íýi¶^v3ß¶3¤±‡ºjÒOÓ|k—I·íK(æb3ŒšlŸéóìúØudw€½ÛÖ{›·Ó¯¥ÐlLŠþ—Ò«²s_Rš;ïy~¯Cõè@Ó;u|@7ñHyuqB·­QbGó-)Œy¾H³Y“ý-ãUÙç¥|bÎ<èÉšÞ9Ï®]In+)nÛ¹W’NÁ) å,%EÿËÈU„Wto%ży†Qý3»sž]+)¯ Ié¶½¤jЄæ$UF²"l¢{’Š¥ cP“)4¹sž]+)¿ Ié¶[R1ùWºPô¿ŒgEA÷$³áF+i™¤ÆÐøúXI]HJ·í…$Õ€6ý/#[®ÏBI‘Gظëñ†&wjJqu4o¨´µNñ¸máÙx BW"U¼¡é÷‰œ¬êˆÙVòàBßõê²…&wÎåZ5b ÍdÓº¯”5+8ƒ¯¤ËS5! 5­Ò ƒ0{î­œ˜pÅ0êr„&wγëãtœÕIžbܶsë8Y;ªŠ'TÖNŽ'Ô´õÄÙ®;™ÆèòËÆ#S{-RPÄé1)hvÝxÙ´îÄfͲÂã“{„úµG¨ŠS¾„x[~ IY±ÔIR5)B #£M¯YBv7KH·Í±^BRõhBSIY4¡û’JMoU#”£‘p„f×ÇIÊê@RqÛÎ-)}¨W+4•”]Áº/©˜eŠ’ªÅ*£ó„f×ÇIª‹^ܶóKJ¨¤*8CÓïI9EÛÒÕ*Ò•óÛ’ššðó t’;)ìºñ¶Ôv¬.×,×l3ápI²†ЄšÎÛ2’~¹mo éàêøþy½¹\^D«þ|^àûk©£jQ‡J1–¸¹ëc–Vë5’ómËŠ9¾¬{¨Ä›0ƒšÎÛ2^~¹­D.BB²™zì dÉIØAÓ_)«Êœ”¹ôÔr=‡E¤b«XAÓï3•qòËmå"1¡„…þRÆ›ëå_ÅoÏ]'*»`\BÚ~Vóê6 5Ò##a- J4«àm%hŸ˜4}”PœÐ>ñ˜4ÃbÕ=/ÂÿáÂ42jPU“ÔtŠ) rÜ ªX4Ë‹Qº×˜–[,4½Sê¿'¿:RJmWZÎÚ3°¶*¤’©K šÂä\ýî¿H!½æ±·”º~¾Ú<¯¢íЛ…ý¾(ïL7s×µÖI#²f9A‰Ý;‹Ù€4K Ýñ5èÃü)üú{UÏËI˜AÓëc–‡ÛIä nÛÁà[{Æô– š„š{õ˜U C(•/$äšµBÕ© ¡¦û¢¡­”Rr]•RŽPÓ­Kª"«k^ 4½3.É|4A¨ÙMMæx,ÎS“9–RÌäÚ€.Ô,©Êó…îJ)_¼¢[hz'Ä”»>JLNÅ+âÁhV¼B"¢”´&g¨éé©3]­–°¼üI&L.¦ƒ W‹4»sž¿nl&´IšÅë{Çò…ËïD–fÛmÀ*jzÅlâ1­h†ÈŠ(¼¯W‹Ç˜E§&¯hrç<»>îÀ®› qÛÎŽ…S"7`5‹‹$ bZÑ"!ý[¼ÕbMïœg×ÇJÉêb'ŠÛžUJyŽQ§€c2Úá…5ÞsŒ¾&ŽQ·mŽQLð² ¤]’Ñx-.oc€Ch¨š‡³€õH‚QieG³õ૪ ÿŠË6]Š«ë0e|£¦¯Ä702–:ªÅó>Šâfµ˜G“ãòXÇ2ší×(ÉZvœq®KG=îS„–qš%åJRµ%¿1Õˆ[i=ÒøÆyîò8á8í[J·ìh¨ã±.®Æ:`"ä™HÍ ¦¿X ýEôq³WÆ,+ñk2âΔ4»nl­ÃJÒf匂Žñ>ùÅS“—4üW5Ù'&½‚SÉà´ÈAßåòâN§ó¼®$?æþÌ]³šÚ¯p’k[ëéüñ¦£Icª¸IÓï“UêUóUô°\Å@¬‡ù#¼ªM#si:¶­êñâÎäá¹ëÆk¥íT‡\³r€úézkè3/%'­$ÁÊ‘“šaÉšÉØIõšyˆÆÏ+ÈÉ T-RÞ™0}æ®Y%­³÷æÛvP±u,¬”¥fÇï.g)„õÕüc,¬ZL¥2 1Siv}œ°¬.„¥ÛöbÂÒðÓ*S±$r¦–&ÊÌ~ºøúò j¼ùê«èò ÓÁå·xÏ⽘Ü»®–OóÍâÃâ~±:ü„oïVsèJ3€.¯IišÜ9Wù놊Ñ2ZÇÔ%MøA“b¹YíóiåÚfÊ S-˜Ac¢SËHô`&3¥e–ç:Ý‘¿Šeöçåuôç ¼'ßQõ(OqgÒ„Üõqk=öµÍ>K)Ûx±iôj"T‹ôU‚)Ú[lš µPpüêoJLj–ÿûçù'2>ÕäEÍîœç¯_»Á •o›åÉ_WGÚW5Cª|¯2q9%º1O’šˆKiqñ«xQ\ZT¾gÕ¤LMïœËµ:š2UZß2D"k›ït™4«Ef—¶m(Ë,OùÃ÷ù"ûù"¸ôih|ù¸ÞÌïïužK˜ÜqhäÃäUóAú›ZãxaMÔŠÁVÕƒµa`Y®,ŒŸ1$ºä<>)sqTú½ÌbzØR<æÛ»U4¿Ö¾çb½~f€Æ$Ÿüþ£öÆFewbVf×Íl«"gÿ´1¹V9áÙNÒjL\ë±ìò¼ºä{KÉÒRš-î#Q£M¼ŠÖ<±¾ŒR‰ 3#vØ£‰ï&½n*1«e‰åZuãO Þup¶¥ãTçÒÉ÷±tl-¯æWpOî”싟ñ7 ä³&ÁÈ]*&×)|~QäÓIßÄk¥¯›ŠÉnYL¹VÙvSì•:Ù&†„D±{NP©øù½(þP+þéÇùÃÓ=0ß\&ÉŒZ¥— ”~Ø®ÒÏ5Dzõ¡Ò·õ>è‡Fåpø¡¶“˲¾ëþ¦ ’ôÞ,‡„$í¥ö1³æ¥i»²=_Þ_lVËËÍA;Tp|¿m”©ô{ÝT}Y£{Õ¿)í^¶´ÌÂ>ª­ð8>>ú¸¹àý˜¾’v ûãêÒ$Ö« ¹Ë/,æ pE}{]^_Dߦwµˆ/Á·ÑÇèê9NÑ]Þà9þÿ4_Á¢‰î±HžVËÛÕüW¸eqÁD‘ô[lr™Žº»XE^`Á=›»ùF7À&ìý‚4¾7Üepûóãâ ÍE#>ÿr¥.®°÷à‡Ò†;¹û.}utñáruÁOæØ n£k¾`‰Öè§æ±\­q;žñƒ|' ²óS¾¡c]/ÙW¾që‡ÅãâZûíb# Áí?áÿ;‹‘[=?>²Éxòâ!z{iSüÛFRØØ¥I7È™›ü\†ôîâ'Í4É#zÓq¥F“Ô7óÇkÝóÅŠ©å-ÆèOºŽžØûÇëèr[S+öz~uµ|ÖÇb×øÁÍrõær¡ð€Çù´a’äk´îÃ}ô ßî¦Ë:W2«è&Z­"n+2¦èÔµŒVtýÌc6tÖK;Ë«­ÎÞHƒ8˜ëçi žsYS(ÑGV¸ÁŽ%‚¿ßÌ£åóúþ“nJ@$*Û ìîBŸP,¤‹é©Ü¼¸MæÅ*´X:œvã&ëF²Ð~Žð—]ÇpþÜZß,- ‰¶¼ø0¿Ÿc˜!æãö\I•wiÄ‘á.-nïä åŽíº‘[Û£rÍ×gr:™ã/eŽ*þp‘NRǰܭIúF/åŸïh¡Eèt—¦wIš…aÕO¹ÛYV"ðq`óG¶6zÒg¥ =]× ™™Â|†Y­¾Ð 1ñǧý…*†üŽØñ¢»‹Çh¾Š_¦¶;ù6æ°<ðKÞûÀFß^\Íñû7ñ°Ýá%عî?IïÔîxç²Òî´~ŠçÀž†ZË®å@ßPÝ@ª®V…Ÿù#îK”È•&Ë<.ôtÃHDhn¸Žî1‡°ŽdþPꪗ·¨[ÊC$„ÇhÝ¥+ëýj‰É·æJ]>ÆK@šƒМ­39”¢ú ›ý¹Î1a¡w‹èJñ ƒ LÐ{Cõ÷ÈU]ߊ¦\Q—»Ø9ðMœÂ·£+Þê6¸´kDÿÛVn{¸IµÂ­Œ -Ť úúš.¨†Ü/>¥*8ý}*nüõ~.¿¼§ŽÏnåx.6¡­ÛZÐ2Äì ”r¤‡/‚Ö½ÝÙnöv€õò!JnKZ‰B‚Ê]ίµÆUŽïRãr¤&çûùÇbóöÒ³µ• :ŽÿõW“tžðèú´jFÑ5⦉}î§Ë/8Ãæ÷ñ™ªü\ö=­S‰rAR]¯–ëxŽžµ5)¨,š»©Nˆ%eÓÌÿtæ«lêÿ^ÏÏE¢ý¹ÂÞÄc%³éN¹%x‰=w¨ßaÒ\-øö+Y_·ËÕbs÷À-€VŒÞ‹õd_Ên@CNôÝúYïÚêTéÖï:¡ GI´÷êêYk`|ùó‰ªKßTì­¤ßëèÁ¥ƒÛ-:çŽçRúý<¾,pÄZœI°ÊæëyhTÍ%´Ce]x‡Ú¬êò ý^/ ï’ŪúŒïUÜg}k·}¾›?<„VU³VÄ‹Çq Û6㙈-n¾º6¢¯h¦Å~Ö"Þ ÅܾӛNn)A[c…ì…¢êÜöÈcăoOú‰RÃL½›ËDŒíñùRõ‡™›n×ñí‰f.2,°u=®õîô˜éå|~Ž[Ÿã ¼üoàöù9¯)?Ç;œŸ£ýªxŠÃlÙ,8EÙZÚcæ$áDJÍjÎc™Ü÷0oÒ-a‘¹.ôZnã½äš³®kØò¢²ý6ù^bã~,6ÛöK7Ûäû¹\*»[eña¾^„NåV+ ÊÔ£å†Fu‡ÃÜÈ›>œvßVU=Æ÷Iå²cõ'+´ç•]N›wÙ‡²ØOÄʺ¯ï·ÜKV¥“ïçñe·]þqþãsèVwÍPù.ðÛª¤œ|¯»ì]Z!¶Žª.ã{wYn=G—¯*»œ6#îrèû•]Ž¿×ÇXŽÉ3ªºœ~?/»íòÓr½¸_TÛ:Y;âßæ!Änü9ŽÁ0«íB¡«7Ú2ýY»æÙ»Œ7Ô\8ö.Ž]§¡’‚èÐöþ£ýÎT ÃP^Äf:Ó¸.—9 !ðáyý7ó³(ƒÔÎMàØÅR9ø“ŽÉ&öŶU£šÛ‹çõ3º!`¼h~f%/ÉJqk×´J’Pì­ôhÏz§¸š?¯ä^/h¬Ð×îCÜÇ®¸v`~¾â‹–+í)êØIsIqàÈ>Þ~Aw~þxI¬gg@ï° ™ŽcV¤©ôûÄd5]Ëøhžo’S±øû¹¾,Jð9«ÉÊV¨´oÐ?¨J†J¿×‹ÕfʦYÙc|¯âóÖŽ{üóüjýôÃ2t+{¶D–ëïã@u”˜½YÄâ.5{õº»¸/ãS®„'½¼%èâù~¾Šá§6M¯f€ô. ).U 83¬ñÀPM¹Í‚n·–ý]Þ` `½YaãW7þëWCi†N•¹€é+?ÝD:Ê*_™v)Ó[ò}lßéËgcÕ¿©u6fUžI£·ÎƬäl #½`‡ØÙ¬©ò’ê¹\ç¦c:ú”ì«8\!Jw}LJc‡ÿ6>¤‰ÑæHÿ¿»Âò—#>p_nâC†;Æ<ÄǘwL.`žz:†¹uH"=^oâÓË ÛÿÅ(Þ åˆeų©ù=Õç5óèõ¹Ü÷Ü‹³IL¥EïžCŽÐ‚Óš¾–ßFŸÝ&÷0ÅÆ}b#T¤å HŽ2ãXíjŸepÁ,åxpÃI$ç°Óäˆ%1o´ãøFâõZøÔ‹ ³)X€ ½\m²#=Ë"U{^M꣜»|ålýâ{® Oéôo¿xµÄÎ!}×u%gÁ‹k9éY§Í»‰æ™×QdËìJ¼¿Ÿç.ëà%*SKiÚUJSÅ/0 /Qšv¬4™rù@›®õiw¼(dü¯——kØWŒ>¨‹MA£Á\µŒ_K¬ÿ9‰¤B‘DkL}Y(ëø 3zþ4—„ ,'»Ž‡Î“ˆ.mÈm=)1EnÅ4]/o³vïd–ïÊQ‹è¸ãLx9²×qÞå& ¢åNãíý.w ëï•ì%X¿ú¨C^q›Î®·ú÷Ë8gU›ÔÊ ä$ŠÝþ1ÿ¾è£Ì&wìga'·ÖÔín§or}Uº¯FÎõu¡×Õ:9î`HbÇ’žRwé•r£»¬tYžÛ­Nry“Hñx`œ²‘‚“3m gñ¼XiRý‰´Ûüµv=Öw1È€g~<€”yž„çÓ#ýä˜çJo½‰Èù7ÛÓç†su³š?®o¨•¤M¦EŇ«åý¥ÅcŒnr»#\rþ„‰ï¹_|HÞC &9F7Ú™K÷ü!V¹ÑE‚M²HQ)`ÙEõ¥+BT‘’ýs6bnŸÉ%è˜7)X!u©Ò¢Mz<˜öf ÙkÛrfÃSI:C‹G1.0ª«ß®Å:•ýp~ψ.ðâdP õ! ß1Ê)§yzŸ+ÎD«ÆØ •­'ˆ-µõÝòùþšÀ"?Ô‰<3·vîÔl}ñWÝÆ»‹?¾ÛñõªAq#rë`Ë€Ž¶-Äb\Þc ðöz{$EÍäáIoâI“é˜Àwã'”í>kj U ¶F“¡y×)ß“ær­ßíØúÕû"waî&S3±\næOˆuƒ‚$žIùÀ¡ï”›ì©š‰v¬Äª¶­ÄAÎJ”Í[©p‘mªÏw”Îøä† b9oÇpËg|zÃ<¾æã»•JP9ã“Fäf|ôñé~¾x\klÖÚw‡(>lð•žñ–™€ü´Ç¥ó éîF›_„s+æC=Ê„ þ›8ˆA<! ó+¯¡¯'~ÜÅ&ø­½IPD7fàØ(Nßú£’dÐä{“GCôÇ Êä†ïòý\_ÊO;•Z%,kƒNÞ‘p¯*ŠÌïãà†¾¬©þÍ¡«*D·—‡-¾N ±âšÈDç f«Üüù(†ç µdZ~"/ðå!»¬ÓáÊßÔˆYÕ)%*~Aê•f”Ld›yJfœÎznY¶’ð˜F#Åw7 Ù&@¾[ 付o’p+ݲ?]Þ_Ì?àåŠW›å‚ÿe\d$Ÿ\GXõkâüF¾»¿¸bè[þÃÕÆ5wñå#¬ ‡u Åb(b·òòG6ðû‹?ÍGß|ùý¥nT.Ãä¯\¸Ôäk9‹ùÞ°ìË/ÄŠ‹4"W–Èüù#ßBãCÇ€ÄàxŠœ‚=8š_i—!ð!íææ“n!ØñŸ¿ùrˆ¦¯‰ÔÅûçë/þò 9ÆÑú/7q(N„$gf!œçëO©#=zºO$Å’û*A¯ã–$Hc/ñ1~w9’”‰ñÜÒ ‹`<åû﯌ƒ¦FòÕòüú¿è>¡³ú,!õ2?ýã_Á¹ÑÀµL¾j%Æ»ŸîBȃäV ˆX÷õóýF?ÒÐÁ]P3ʤ+p7Gœ\á ùñâ›èêy•ïBV‹»ÿû 9¾ž|3ÂTÉþTæ°Ÿ×t›âß(…ÛÄp]f\Aç$ÉC:y3ćí·Þ]ÜEÏ+†S®Ö‚6}ÏŸQrœÞ ½;²];>©pïÒæÉuAý—–£¡S…vQ¹vHT"«Ç~A.Ñb Ù˜"ÂÔ–ï••,ÄÀB¯Xèü`¡?ðz`ákú …›8¯Eí˜wñA.0N䆨 пÏÁáê¸^%Î*ý~_°Ôåb[-Co^ ÝðÌ-Ì‘kjÃæñ¶©%Ÿ"§¡%%q–üqcŒä¹[ÜÞåÑJ‡Šá ²oƹ>ÑG97èmtrf–ì—•$OMÏÆå(A'­Äçæêâ1 Ãp­›7i¦[†V’ƒ”ëøtO¶‰çăÂ$íjC—b#Ñ'ײiE]ì¨é,b­r™Aif@v˜¢ÑJi®«1ü†¥*hñuFël—~à<·4Êœ|=—«"^æ¶§—_9½Ð •6ÿÍek¹¢³É׺³áe3¤¢³ñ×°Ìyu†ÎÎ £²»i;âÅäQ|E™8ý«è*Í*ü‚^å}zª锿Þ>ó\ÈDÚ>¹˜ï}œe™¦çzó¬Èæc¢íT.‰ìX-óÇÓÄç\ÞIñÌÏY?ú¤;0ý9ú9µ/÷VK† ‰7p•’v¡ÝùñºaÒ¡èŸï.-ϳªèœù}Æçìa “À+µ‚Òïçú24í.ÕòÕÝSdT«å¤ÈÙµU=N¾×KÇe ý‚.©R³þ^"\¶[ÈCÝöa”ÿ¡älçH¸ÿ#N£ÿ›Ž¸hÃéÒr5Ã}käjrp#Ù1ùUÂeOb¡‹Ì¹P‚HŠq$Âp³XG[ˆÙô ;]–¹Ú—œ„¶á{•”Õ¼!ÏYâ:ôJã é÷s}Éßv>+Cni3ò¦øãu dRb¼kéĶ+AÊècï[i×l)(§U †Ì° ‰ï³«X’£Þ8ä~K6[ÍUœîªßøx>[Y4¥6î÷’ñ'\¹Ä¦GîØt&ï£ù:Ò°³‚5IÞÓ¥—u°Ž•¿©´©Ä:ªø)lÇJ±ŽC — œ>ÄÖ‘éYÐØ{ L†‘wÞ¬–„´å$,»ƒÅ¹ìç稜úΜp~Äi Qž$²GH’ Åû«áýPaáÉ éÁÓýâcŒSHB%odCÛ ØJ,(³Ê‰™?!(ø,И{Xqô‚I61Èëâ/ñ~)Ö!UD$™ÍŒï,61œÏ 5GFDQÌ&OòHeÌâcÈ\+oe}Ù~+ûÉÍ*ŠÞ1´¥8%•¸&oì‚v·¡Ò˜P(dõðT-™ü1ž?Õ`?ˆ¤ÄÞDSe·O`-Â4@x±üz±ÑY©úw¼ùƒ–åXë7B a‡êÓN.W0ø°dšÇœ á=TIŠíR¬·ñ°ÇùÜ<›·8½2b„7 ?Ÿà§5˜3yÒ&µcÒ3_-M a;ôþZÚ £òðB9–I†4þ""1¢MLû¡ÙK”e ±B’ÚƒŽ^ûõ=™±ÙD=þÛ®¨ŽŽYŽàÀ\g,7C @]qW¶ŒtIª‹;}Nšl‡>ÖíMºZò´wIV‡å°ҧT5À8ù§?}1ΆLG¢,–¨s½Rvóô†8¿ÀÍ–k”žZd7Ì“kÏêÒ"¹Š®¸KT¹ÆI3T²ù‰8Rçèš—Lê+9J<Ëõ\¸RÈÒÒË]Oò?üù¯1,R`núÃ׺üñâû‹ï¿§fÕñoòZpúþDŒ‚ßÓáþúùýäü Þ_ˆHDÿ_ß_jÙ„AòÜÙ$7ènYá¥ex6>)°.c1½až\{r Üß>UŠ&mD,šßiZ¼yFÜí‰Ûƒ•ûc:ð1øO+ßW–/À¾D+Æ%1Üÿv[C‹ÂŒâ3½›­Õ¬vW'&Œ¿Ó*+i•NXÜ|ÊŤ­@N’6Šrœ'œ14N²5«çÙ:I%Px”†=Š{{{¶sB‚Îíû.6™oUÁ5ÕÃ1TŸ $ºBδªIlôü@{t“d¤8ßœý@|àuœ#v›ÙÝ‘ ¶’$ˆ(;CQÀn›±ÿZ,´KÇHª´V¾KÏSY!ˆï.Yé ñY¸iû!>(˜e7ÌU|Ý9À¬Ò0Ï5"­Ö#“dqš„§âÚšÐ[d4wÉQ…m…ÎÖ‘ž ߯@K³Ò.–ïç¹Ë:üxéoTÁoÞÚ•§·ñ³M×Ó§·v|z;̰[~çU‡Òü>é–\ÖéVåoj˜ûö!Ú?6:;£µÓ3Ú¯aݧH6žZÆ.S”zJÌzä9ƒÓ•ž‚=HPiçL‡Ö1râ)ÌâD¡Õ¥ÍŒ}±­¡š’ç:wB¼Å®³›÷‘Ô¨‹8Œ¼HˆÓXš¥µ2ÖÇ• h]äÝhDZ 1V>(=Îï?­I†€¤ÜÜ\蘖ÀͯÄÈ~ÒJå6Ö(‰õûsÅÍø}e©ÖÉ É™›LÉÊѪ¸AÉ s¹Žþ’gnùv$ùÖ¶_ÝqÜ r÷.mÃ2*;žÝ0××ÝwœçªaŠ–‘ë!Ð é—;‚¾åhv”› o+Lu?눪J‚ËG±cHjjx”Ro·©*ã Ì1Ř˯L"’ïç饪!ÙþMõ´¥¡¶t”ÚGÏè·uÔÏú¡“£&µÔ65©ãbr¤Ô¤rjTÈ;*©q”Gɧ,ÉO@ibùnRë­Æ¯ÇFT¤ÕWFav›ŽîcÝ£“Ÿ%©BZöü1¥gÍ7*‰i f¿x/v$f+³ Á=¯®¢CÀ9†´}&ÏáôÐ1ëIÚ¹Åæc1¥H“0ÃjMëüï7‹ù'Û†©Ÿ¬xß_ÐdlÆáÖ¦ï€YâX®r G¸€ù ¿s ×M~çàÉ÷Ù "xX¡Êßç’l,»ïRç¦ ”Çâažø.:Å3;=¾Ù¦OÍaao¶)4w &¹['1iWg™òWW¹Ì¯›2ÔhGƒH¾×Ãb£“¥Q1§j:ß¡l¢³Óœ{9ÍÓ~Š+u ´æâG­zn·9-u› .Öš©#Ñc·¥ë4Ñ[»Í§“‹8m‰ i5&*g.qÜX“ÅÊËØS^é¡§ñ·‚Èé.!K{³¥»ö´j¬ÀÞêI-_Q`šÛމ…ñTõùwìY2“¾½tàÜ'ßë•&Œï±*Ò³/„•Ëß`K”ߘÜܲéÙKw=™±¦ƒ…?$;ײ²'%»jÄÚÝvöFŒ[ »ïíü>ûñâ&Ù.!S±ny`±üšÒOf¯úûÅï/e¶G”JýÌ’¿ç£ÞÈÿì++û?ÿQTNòŒ§‹Gù»~`[é`=^ÜÆj¢i«÷lSòF§VgìÒ]´!ÜÀJ…ÍĨø[„Š۱Rq œ†M‘~‡ËÛ»b8n¼ëÔ™!íï‡ÉpÊßÛʦ§ego'­‚þ™Í©’üÌÒÏÿÌÆ¬ÎýŒxLG%ÅHo‰‹U8 i޽~˜Œ+ÿ.ã“|;Tùî_oO·—ž£µÛzŠh½i¸žŠÇ0…6ƒÄé£2 Ì&È$7à¤aÈ^‰Yø¤ŸbàtÆ Öb)¢€§*÷ó\PTi¯16iM;ô¡åæëe`ºO:¯?=Îx£%.óF£I5G~ãN5‰ŸÜæìr=mrÕNtÆñU¶ýþ ˜Òp#ƒ¾ k-Üdµä¨T *»Õ‘˜dbýI{ wÑZ¨&b²¹ðG GE"ž71Žüš WæÛ`é†èr7×iµb\_Þßg^g”dà\gµƒä|c±ÒѾ„a>“V ûMù3$9+öª`Øk€S`ºyÔšõ¦©Dq9ƒÈ˜Òt¾iB2©¶4ö^ÿi˜\yshqˆDæ#ÁKDKy›(ƒeé‚N±€åpY“*o–ðƒxk\ú'sìï`»­Ò;ÊhOB—â½`ˆ¬Ø`-÷cXß:k`ËrÅTo)U̳°Eß芈 ø&wü´XÉqg¬hÑu‡0ûsdsQ|¯f-°W>2ð»KÓ4‰ð±cKà¸,ÿèxIL yrG¦rµåÈ­#¹93lßdÏŒ’Ø\’:šÌ˜Ý²—°çç^q ËÈdƒ1X˜"yÃ|•Ýô/—‚«³L´ûñâßq‡Ë:ˆvlå`ò›Üämú'ñ?`#âÓË5·uÝ3nú¯—4¶ìÜàü|)rÎç} PÙ‰šš*§eÀ~Ýêãíî.nY¦¹?8–-Ÿ¼Â¶c9¶¡¶^ïäÚpú;½'ÎÇwóôe\8ÙZ‹õŠÚ¦)g•ÓOIÔ[¯ z­r¤·ùl@b„ž7wKaÁÓ„¹Eµ§¥AZ=[†ÐPå‹Jðì2„¥o,ÞÓïCÉ–kùe˜ñô˜Êuðâ"r ‰Ég m¥„àé á®É2“ìXYÏÓæÉuÐiæV Îݤi¿‰©’wvƒ~ÔE–ªì7nHû­¯ƒîùßjÒª¬1,OgmE;K)‡–Õ"bµd%Õù»4»Mö^Dóõ§ØNÎ&âš0ð®¹]ÏJ+‰Z^­’S¡ê|æÃ¯…íî"f¡]¸µÚwèX³ü™4¯YÓ‚î0SkÂBÁ?Ý$Û!Õ„¤Ok£+ ˆIœ$ ªîUtã”[L ³óÓ[•+ã&§.1*,®ª¸DÕï5ÐkÝÎW׋ٲ–Ò¬µX²Ó¿˜ ½èN®î¹ôÂD¿E[EN˜-1Ο&U$1v_`´5òîZGTtÕçͱ³ËðKmr'&úf5;<ò³È üpmÅ\ IºÊXÒ59 Q„×ø©ÎòO¬Ø?&g¨xÐ-§$™E„mÍ2’lrÔ© ™bèõ"™, ‹¿ON®ò‡©*Üg'<}[xFù}ßzrƒÖü&Ì<‹<»œqÝb¦²'°r-?ïZóWç*gíÐCy—?£}ÿu4¥â·b¼¨gyñºÊ'!ÇNwæ[k?"ÊCœk‰£›ÖOH|ý›Ø\K^£¡¬Y¥[Ÿ¼±G#>á»x›ôi~wéšq"„øV‰S¶Åˆ¶@÷-­!¸Ãé¹~“Æ)R–;fÙ}ÚÞ]~ÈÃŽ…Ç©4ü{µïÞý Ý»­Ãçl¥gÊ&ñùà#Ùãç|>?nM<²CAö}+Ðæ²ñÅ6ÄÒIFÂñ!Œ\‹ ¹ºmȱù{ŒÃ9]Ó£Fyº´ëXè&TÝz§×:Ú1I —Ã<Ц–¡¿K„ôF¶®H’w%D ùÂôÑÔ÷†3Ó¼czq‘HÅ××VÜ x!«1ÌmRé·-bìâÞ1®ÆY¹’ ´}œ+µñïóÇ!B¿,ˆ ¢±ï² ¡ùeê°PdóÔ|“Úû¢>vˆF±%uxIܑۙ:¼¼Äçõ±Q9Nh¥>/˧;®ád>/®“;¶†|Oåï”0HîN:¤¦kàqŒš‘¬ÁüÄk§Zbënñ?™Zìö‡‡@Ò- `ÂòµÝ­Û|Ÿ¾½ ãNê^á­ÁV¯ðÒÐÉRŒ ½c»W‘rÙ–aÛ*wç¥vѵ¤dR0Ÿ\˱‘cv‰ôLÒC ©6c¹ß‰Àñªúò+tMÓMGÆtLVÔ´Ó‘aÌDß¡ª¾58vˆá SÏ+.uùL9AHUŸ~€¶8»ìÜéC([ìÞaŠZÔÈqt ŠÊ¿©ø‰#ýG5ð¯¬Â¿éAf’ ïŒØ[Ôg’þÄ#o(úø3âØ?—§š¼ãS2J¤ÇJ…ù;½ÀÈß)Ñ G¤‘.?ßsÔ–48Ë2i¼ç,ËäõƒœÃqÔµ@Té Ä2wÍ ~l|DkËl±wÎhåÓ ×›¸!AèÊíiCpÎÝy Ýü/ï|°}‡ÊÏgLJY¡“Nù,oòoX'(Emn¥¬à:×v³¹ßÂyÁèçóuwó¼\A„+„;®pô®×á òrý,~‘.½‘ùr›?ËÙ©É–«·³àUûgL¹äÄÅ:ÇC%+H»ÖÉú¾¦õf5×NOŒß ·mýäÔvëÍo²•%¿×gC¹Ôu¶’„Ò$ü¯íIâMŠÛ*§”bƒr…BB!ÍÌL<ËÓˆG®Ï{9Më…¥ºžþE Ÿa¸Æ4¬@¥šÄáˆvŽ+Lø?™Kñ‘7ù:€‘vrTЦ¢72×ôÓ×ÛTëéû¯â©øù÷g”Er$)”[M¹ÖMY¤Gw¿×î,tŽº‹“àgëZ³xq \FâùüHXvã°ë†ž•Ù’ ¾äWbJr— ];;æ Lzn"ª§µV²dx¨·-RF 96Ëy›°Ñ%áø0mR,a;ߔԢâ³5µ½gÁ®æé…—Zä–Ë^iHü ÛðäµsðeÚþÎðÑÒgMbÊRºÿ: ¥Á”‰Í`bìô&’´,‹t5–JGPLœüb ™š–‘ÒLà2¡ß±–rgZúû:ãayÞÀ÷´³u,Èx}Û˜M’‘Å·o Ò[‹o–íœÎZvß%_«¯›sÛ¤À-×¶õ(Γ÷omÔÈ2 ¦‘›ž¿‹‘"flaÑx¾2©:ÓE +žtv6Y ùÔ¿Ñ#íqòZÚ»K¦¼ÇÔ8ó4зÁƒ;(=`ÌD·˜HŸ.~äæ$@?e/[ÄÚõÃ\6T͆ÿ˜’§Ë‘êÄ`¸ÒUèzÀ6`ƒlt.Ç]¤Ñ'R»0CƒëqqL¿sb!Ù [‡7šd#!4QÑ<É«ÐL wºB†²È…?tèî>cð¸Û…XÄii¦¤¥m½õ÷qŽÇ]DÞ­Œ¢¿k’Áõ‹ nb8ÖívÜO8"î¶Ð1†Ês­Ê*‹<µŸç.ë`¨*SCeWc¨Øòí\?[c¨¾É8u¶ñív²ñ>ånžYWÓî${â_žWzгêšyäÌóZ— ãIÏ%ñMBI¬ ‘Fâ$p•£¾ÿ¤Q$:”:‘p–!G<2›˜–ïn7»NSÄ·è:E[¡ÔµÙÓ'Ö,céHnHóŠYPnK9¥[rƒ°tàZÿüeóгvd†<>¥ùŸš¾Ú¬sEb)eôÒD€ÇþD–L¶ž›$ *NSbdóÝý 9–JŠ­r5ê€fÂsóÃöaùà-?Æú« w+«n¦Ë_ª\u䘇*—oxžô¬£”4n…²l3ÉV».˜Gr¦ûV3™ (ë'Jçíz=I3ÝØü*ÈqI¯ãDÖOœÙ±sïÒ)–#\nzà´3ºHÔrId‹øa¹HŠIÑ¿ZËÙj¼ÐÐÃäµ Þ»u¾¹º.#¡<²Y?Ý ëS þ—Å”ŒÝÎ0muŒLT‹xDâþÜ&Ç#Ñ^…³›Ý>H3<9®™Ç@Ÿµ è62ê»%ÊÒ*WºªŸ&“‘;;‘àõ÷ú¼_K^$ÏÏ%Qñ}´ùÏ¿Üüç׫e2ý|žAM~m‹T¶oŠç”ø:¹)ä“þqÉÐ7lk«ä±Ô¼Æ}®41ÏÛ¶YÐ ¼@ÅoHîÿ:¹ß )Ÿ•Ú÷ÿï×ÿ/Æò_þ1„|hmžW0Ï}æs¿ûú·_Þ+>1…)Öõò-3(ðíÿx§l ,•±ðìIúlSžý˜iœý[]>ÆeìâS*9®.& TðÉ> › K< S9üž{¹'~­½Pm´°"9"ežê›qkùLW x$Ý•¸22ÿÔRðåßç\:ñ/ùÖþgnE\:¦t{ÂfÉólŽOr2Ø}ÄÖLS?áëä%|oò@i`¶gêÖa$  ÓÎÉìk\‘Ê©²+¬p— +ôs5!e*LLy”¼MÅ'iz<ôÁ”éeéü[ 2çâÏ…¢²uWÎ%jç³äs5y4ZU†C£²Ž&xtÕ•MWͧФɪœ|õ¾a[a%Eïrì!šÐ-ÕR©‘¨üq¡Œ®Väy>÷üĆ+á6ƒÅgz÷Ñ&J²€õðÆµæÜRW’y%¹Ò|¥ ªc9Ç“£ÞxÌ?ÄÇ‚Ùn¢~ï`ûêêC™^ËqV)íÒgšº(Wòé09†RŠÆõïôëC¤ŽÛ±ßÇôSRnIÕÑeüÔøÍV.´Úâ2Ð5ùD°í]û&#óLÉ"•æ%qéJò»øXq’òïu´ÇÌ­Vª¤•nÖÊ‚Ú ;HkyÍ›|½u-•O2[dkK¾Ñ($<[’„M’¦ä¶%Aîç÷ÚŶàã¶KšwAÛÒ–Ž0žâxqQ«9ýu£„¶xÌÊb§ø«”b.ÜÑóõó*Ê' '™ÎêSö¶›"¾‡2["¨u¼ßKl8.œÌõ‡yŒ¢ÓÖ ½«6ò¤å4{Åö¨8:nq­Jp)Cå%~l–˜dM_“})×û;¸HKšçYhxF+áÜ’†è4è»åÃò6zŒâeuµG”òuωe'TJ̘¹Ô)õó+(cz#IÕ“uBê™­&Q;ù˜zxù¤vcê؉ªã³°«7««’ÛN«›Æá¸º»’¸z²×0WUå<îT‹åÖf/_h£'NþJ€žqy‡„Ã}Gýieª±)‡šÍ'¥(ÙUQjH.^/a’æBˆ>Š4õk†¹U¢eÂ$T|·]ÒĬ ÝÁ]q¾]²O¢1q>0Dîrìäh9b<îxt3Ì5ï¢e‘øD©úÆ¿ ɰ$Á&«ûÿÏÞ¿?G–i¢àÏŠ¿"fíÊŒ\«Ì:xãÔØ5Ó£TÓÚmuËZÚž¹+ÉÚ"É UÁGGªb—õÿ¾ø>wàà™ÌLÞ™YË6uÀÀÁî‡ûçÂê!Ê8̲d¯ŠôÙU­WUyé8D*`òóŠUÛ`ËÎß´—¯sð‰ÓžÅܾöô¿£™K¡¿˜uÁõß(ÂpC¼”·—›iº'S8)µÑ$ô‚"eÿïŠ"×¢™>l2›mq5ªªxNaÄß°á X(ÈQòy£¬az mñÏ'§ FäzÔñµÃ+/ܪbR·<ÏEk°Ù1xÁÕi´üÄUY…ûrS¿ì!màG5³mæ” W7V¬ ÊM fòo NŸÁ&F}ß³öC)Š*Åôåiaø…’Óòºú?­d´Ž†Õzý&®z÷7&1Hø„ÚGàìÝæññ›`])œ~¹pˆAì’Ñ-Ÿ"ÅŸÂfc>´¦0ê”nHF ´{‰+/ßh7n6k‰3sÛ£N ÑYžy5“¯R±Ð ö:G³óE“Êe8Oú—ôv¢ŠL?Òñ×5‚%Ïz Np¦—‚½Øh @ñVCÉ@®¡Üþi½?°èá ØzšÚÚ6ÖƒJ}Ç@«Ã"›¬onO…´6bJxÖëѯi0·nÑÏž^h 3bM~ÊÇxÑ~]·$?@?þü7®÷ÏêÇQ5ôãã¤÷¢ÀN^_É´Õ¸¶1QÓ97]¤ëe‚XãqgÞÄÓ¥r²å”¸yêO¼®V 5Ñ×½QåœLóò9ñ˜:O”JX&‹ÝVëJÜ+¥_ÌMžß'qü-,´PçB¾PSu¢ލOUI뚉>¼ žÛ’O«¶òˆ8ÃÂLJÏ¡0²pH0Ž¹ÇŠ®¸šUŸ?ôн¨Ìö4o¼cÏ&çXuJ¾ÚôŸO޼ª\4uÅú!Ó¸x°þò Æ…M&ÕÑYÀØT Z‹7×Q[®È Ïãcá$vô¹>l‘ÓŽÆ×*Dz$Äœªî¬CÙvø`ñˆ;káÇ(<ÌÝY-ÿZ›ø¯‚ì î¬6?öƒS¨~ ÏÑÞ¡WƒYtÖ½Þu…þOØ´Ú¥ÍÒSº³zø”ÙA-Å,Y ž’×bv27 4ÉåGÀ9 *a!‹&Fï¨)u2=gÕ`pW†uBKÛrÏD ”E­ÄÓçœfa”ñ˜ã좚0Æ~Ê`nk‡6Qìk޹Ÿ£#y˜>«vi{í…f¿žP€õC ÌùqwZÎðÁâXWÏáú4 ‰ÀÂbÖ00üë‡løq'[Ñd;WQ?'(3\¿ kiRñ¹†ùµ‰÷g=èźù0\Ñ1O^ƒ'Y©s*´‡ÖYöSÈ6I¼HWDåœäGqÙ¡ù²h¡…ö²ý“Ðty¨=éèOîO¶ë¥V‡ƒ+½»Å³‘-Mõâì(Rø•5›£ï6ç`¨6V;ö$`±]°€xU‡Î©þ)¼âZ`¥i~ý*àçgE”} «Ø»no…cüYî«äÂÕ½`q©ù§­T¶ú¢Æy™èð„],xÓÛßÍPa‹@ý÷ÍõÝþ¡H*€Õ|.¢°y«êâkÅÒw‘©û ‚ÅÔ05Úõþ´:ᾩ×Q妗ó¬Þq„½–«úöúïZàZ XCÍH×t~- Þ &r‹ÂDèE9Ý?Å®áZ<]¯w[,¶§ŶQÏ“MoC·3Ú\¤¿÷êqgŹÉÂeÆmiލevˆæ€çF9“›&lS y-ñÕCTþDâ¨vƒµ"†­¡®b}ÎãÉ–ÇOGʨÝÛÆ««ò±{¯ú|ÄqÔ¯ŸxÄ/–, ~w®Pù`ñód °©ÀŠi©ÿ•ýîNwczÖñŽjãø›"RÃþ9Djü¾jÉC¤žóÑRxx‘ZZ)ÿ4)<ôR¸h3KýDpæÆh8†ú¼”&Ñü8ëV¾ îâ¬l±›Ç›~Ì’å\,Y.z¾ª‰ïu.ò¬Äëצ.Ö¢DqZLÁ‹zÄ=ðíqP;S’…Içvªrý¤j£^ªÀ€ï9¯·½³.ÈR÷äQC»LЧ{¨ärxAÛËfn=ó<£WwçÏ©P ´$y$d~XÜ}ýzqš M‚>£¼œÍä…B¶/av: [PV ¾…PÞn vuZ­ÄÎT<ép¡'E ±“× ï?hÕ¥c|øZÓF­’:š³I£b“v>áÖB}wÝnì]¼ôÝé]#ªÕ&BßW~/öÿ>Í ¸o½…Ø |k¯Ë!¬êæ†Øöt²\T/Ë è¦ßuêp QNh;SÍWÖ"7-Äú§­?”ÑŽ-›>ßÏŒÁ^3˜cµËQu;5¾Ä¨!buô¡W¯JY4É. ð1çÚðð!ÔW3}åújõn+ ä/¦ç^¬òv –†y¥>Á³õ&˜¥‰ä‹s„jªž°ª9Ÿ”n®‹£í†ã6ÆéùæÇ£ß`îäÏ)hä?n~hŠYê†.éÍVãúõó:z[Æ…<Ñ͹޾1ËŸlÎB}ïÿsù®ì]Vƒß†òš^öÿîwçïÊ™y9óT9[Ë™çësórOÖç—?›é_˜—{²¾X˽§i^îÉúòáü…øh¹ñ°\Ÿç uÚc¹"Á±ˆy¦‡ÆN5¢sO/±› ¢wOôSAôîé‚á°é'f§·ƒ¦ŸšžtØôSÓÃ…™Æût¹2ÓxŸ,h¹2ÓxŸ.h›~bÔÖ6ýĨ­;lú‰Q[®L`óÜZ®Läî±á¹‚\™Ä"Ðu?]0M'0´+˜§‚ÒüûXÁq*(À¿Ñ’a*˜sý÷±‚¦+èŸ ƒÔAXLâØ–°sRqDÈ*IóYÅ4;—ªd±xò[èÓJËKFmÙ¶³0ËB¢)F,J?o–?·¯û¬Ï–?¯¯ÏЏÓÿõ|·ü¹Éýß÷K‘jú?îWËŸÿ¶+ù~»üY†Òÿñrù³Lì‚ò×ÝÃ?_-ÖQÏzP:Pxçón]”¿!iö·íIùãšÑÈNV7óŸ¾o?áÝ{þÛí·7§—•æ¯å¿'PE͆q}[Æq}[dö º¥™ýñ”Õœ®ö³úÏÊ UÉpVüŒÅüùäLë~ðËœ¦"9<ÃmYï¶sf?ÁóçÓ»›%þ_îdmœ‹åÒ/ߨeZ¶ü݈\nØK‡ÍÇ.ï¶ËÕééë–£V>é—þôÉ^w5£‚YnÖ.~=8ÅEjÝ­~üݶ¾ýzùóâ_—c½º:ß®¥(ó‹¯y‡ð×ûÝê´Ïÿt¿Ÿý8«¯œ-¾(ˆé€ôO,óS¹·–5dl¨l0ДBºÎÔ¾–kËâ,~Ñ5P6”¤¿øO!\".R‚^þ| #.åÇß]ÇàìÖKÞyÊ—òy-pªßΊ*@Ç´±©­é^·4 CAóz¯í¦üg"•_ò¿û"u/~¹üns¾¼~G»ë%½Q~äŸÿx½½ÇÙ]$áÛË¿9‡¿•ÿ_îOå®dc »\,Cª™í²Ð<w÷ËB—ù[™×òEWëu¥¾®ôIuÙ±«‹™¯Ë…®.f>¾.ßÏ—ÿ´ù²®£û´~õsï?mîC߯ðiýªûkªø£ê²¦«‹™O¨+õu}ÚëêbæêûºÆOªË÷sï?mîC?÷áÓæ>¤Cšó û »<šûRÓèÛvIlƒYe «+"ai’k½Å/‹0XšûØÆ}žç$kƒ³t~­ÆíÔ8w‹6اYæ5w±kÜu÷éøZSã<¿Ú`Ÿf™×hÜvÎv›l–~­ gº gºM6K¿Ö†3݆ëöX—4¯°ÝÈõ”KZ&šH‰³´¥Æõ”K:L ÎÒùµ·Sãz²Ù`Ÿö¯5ízÊ%íºÆût|­Æ‡©q=Ùl°O¿Æ)—» g»M6K¿Ö†3݆3Ý&›¥_kÙnÃu{¬K¾Æ)§T®§\Ò2ÑΦý+5®§\Òajp–ίոדÍû´­i×S.i×5Þ§ãk5>LëÉfƒ}ú5N¹4Øm8Ûm²Yúµ6œé6œé6Ù,ýZÎt®Ûc]ò5N9ïËzÊ%­Óþ•×S.é058Kç×jÜNדÒþµ¦]O¹¤]×xŸŽ¯Õø05^Ov>H¿Æ)—» g»M6K¿Ö†3݆3Ý&›¥_kÙnÃu{¬K¾Ê)ïîå¾»—{˜ö¯Ôx=åݽÜûÃt~­ÆíÔ¸žlïÒþµ¦½žòî^îýa:¾VãÃÔ¸žlïÒ¯rÊ»{¹ïîåÞ¦_kÙnÙn“ÍÒ¯µáL·áº=Ö%_㔇î^º{yÓþ•×Sº{yÓùµ·Sãz²Ãpö¯5ízÊCw/Ãa:¾VãÃÔ¸žì0¤_㔇î^º{yÓ¯µáL·áL·Éfé×Úp¦ÛpÝë’¯rÊÇî”ÝÉŽ‡iÿJ×S>v';¦ók5n§ÆëÉŽiÿZÓ^OùØìx˜Ž¯Õø05^Ovv';¦_kÙnÙn“ÍÒ¯µáL·áº=Ö%_EÇÞrÛrÓþ•¯:öî”Ûx˜Î¯Õ¸¯zõxö¯5íUÇÞrÓñµ¦Æ«^=¤_EÇÞrÛrÓ¯µáL·áL·Éfé×Úp¦ÛpÝë’{Ê¿þ3Bu¾ù—ëËÕÕòì¬,ÞÀoOΖû³…¼Ÿ‰e ª{Éåѷǵ²‹RÛƒJ¬ŸU°¤ Ò¼’áùJæ=½À'öÄ÷ÄÌ+ùåRí×ð‰%¥æ#ñ4"]ö6n¥¢7Ã{æ{1«Ó6s§ÏX§gÔ­ÏZ'é§ý¼u’!|îùD¼·~jíš &Ê4ƒ=,WBXIiarƒŒp¸8Ùøx¦aT­4{þñ# «Õmqþ‘a@S‡ŽÐ ƒ¤™ Þ#æF€‰ãíõÒ/éµÜ­oÖ«ÛÅR áÈF8Cê™âš¨Õsùé`|?Q¦ç¾'A•"Ì;Þ¨ð¨=Y×Äy¶Ǽ!øð€ÙpÌj}¼ØíâW½Ë_­¯NÕE« ›†¥þñhõ–xŒÀ/ø="ê®¶‚qÛ‚zÎi\ÐKñ~|—ââE^Šï¾x)~ñRüâ¥øÅKñ‹—â/Åÿͽ¼íøÅKñ‹—â/Å/^Š_¼?ÆKq 2B†4ý‘þh £ÙUÅÌÇ×e}W3_—ºº˜ù„ºúérŸ8_¹Ÿ¯üIuù~îý§Í½ïûå?­_:]S½é¢8UÅô'T•ºª>m€TÉiULBUcWÕøIUùnÚý§M{è¦=|Ú´‡t@j>a_Å@4;jl™Æ?[QÇÎÒ(󹽵ؠëºû´{¥Æ©ØÖÆŸœ¥Ók5n¦ÆmžìÓ,óSßZ·]ã}:¼Rã¦Ûp¦Ûd³ôkm8Óm8Óm²Yúµ6\·ßº-Ö%_a³qIõŒKZ§yýg\ ]ã¶k¼O‡WjÜtÎt›l–~­ gº gºM6K¿Ö†ëö[·Åºä+l6ž$=ã’ÖiN‡éñµw]ãC×`Ÿv¯Ô¸žqIû©ÁYúµ¦]Ï8Óõ\§ƒôkœqi0tÛ®ñ>^©qÓm8Óm²Yúµ6œé6œé6Ù,ýZ®ÛoÝë’¯±Ùºû¸ïîãÞ¦Ç×jÜu]ƒ}Ú½RãõŒw÷qïÓ¯5íõŒw÷qïÒ¯rÆ»û¸ïîãÞ¦Ã+5nº gºM6K¿Ö†3݆3Ý&›¥_kÃuû­Ûb]ò6[èîã¡»ûñ0=¾Vã®k|èìÓî•×3ºû¸Ó¯5ízÆCw÷ãAú5Îxèîã¡»ûñ0^©qÓm8Óm²Yúµ6œé6œé6Ù,ýZ®ÛoÝë’¯±ÙrwÆót®i²ÅÑW—­OñEŒŸ¡'tWy¤'Ïú"Vç©Ïé‹XÍš>§?Þ0ˆ•ÆçôE¬ÎFŸÓñóÏ'ûIc—ÿ|¥³ôE*û0_DB¶S¨ûY_DBOŽÝG¶xà‹ÈPíI €á¥,Þ]–_ÛgÒXH0`Ò. %Ï8¤‰`¨ŽÂvÞï+.i]üxÿµPªÅK‡I&Œ{~ŒRˆ`S£À"?Sœîà,ÎÔðü›ÇxëßÇû!º6Bbн óžUd!A\¶Qÿ¾U$T‹»a÷iýûø¶³[Íèµ÷|棉J}°âìû‰Â¿ Ñ‰Ü¾ÈqqVÇD ?ÖÙ•¥ðyœ Í]çmøNÂÃÛð×g·5´&âÁöñrÏsHß5Îù©D-5q@LLxÏˆÅæ›ãdë/z,¿/øûjÙŠ>ìqúý©¢O|œÇ¯$âcWuýïNÏݽƥ_0Â룟Kì\ vÛBÔŸ\_2ë•:":ñõþ¶”9»»:‘¿,OøJæ*ÿ04´5ZwƒàÀLvÃŒ>¿YÝJ˜aÊý^#Ÿ-¿û÷²6è¸3EW¬Kik­­»®q‡ú¹„É6áL¥"7Ž%ÈÕËï.‹Äæcj¿ËX¾nX¼“²b|\ËšãsW‘š¥ÜÙ·¥ªÅ»£o¯o1‡±®ëDרܛ£ÓÍV&ðìè?Ö»ë¯$†ìÑ¥»A,ްkøV Z­Á°OeH£E”ÞkNR£/¯/~6âd{ôç‹2›ÜòÒ­5»…uÄìߟ0â2zË0´Öd„¡bƒ—sô®…ÛEjÆK.£+ßKTq k-ž¼e?t«/ŽÖ?Ý"”1ç1„1Õ›£º b¹ÕÂöíˆÒ9¥ ¹´ý×)Øïy9£BŸ\×°Ú˜® X#EßnNÌœqy/tVص—ؼH#jï…N7ûÛÕÕÉZwc®¡]Öm‹@¿ˆ€~{½ûë1†t²Ún÷:ó¼‹qùž]eØ ‡}&ÅÖÈåZb÷»¾½¾:ßy{Š®´ßWË7e;ü$²ŠÔôTÔûÔϵ âÑ·ä­ùÓÝ»Ûû›õòëÜ\ý ”æή¯o¯®o+±ùú–_ÿþëß\ïN×»å_†å°þ&¹_ïŠTJGè¯KG›¿ø ü­ôá7˯ýOÿ4§P]‡ì¸ü‘§]cÆÛ¼˜"rK°âÓ~Âe†Ï”²”ÍZº_öß©Lr9–ˆÿgL?c{÷ÁßqÜV{Y€8¤²â§kw¾Á±ÒàÕXbD$_h˜ï»=ÏÊOcüðór˜ïN×o ),¿þÃu¥½òÕWÇ Ï`Ò8F:—ëÂFîx´qê0ðBvNyä†òfOF‹±ëA.Tâ«cë¤Òr@·…9¬Œ|×øñ~¾ø‹£¿[m7·ÚPºR/ÿ‘Áž [ïNdQ¦˜ÛÂë6èÚ¢ÍVÃAl¼×Isž§Ÿ½ËÜl´ gBjÔ{J‹‰>]LÓq¾½~Ǻh¡Ù±õV·Íž\¯vûr¼8Δã|T§¨Œ%²5è;Ð ‘,³…!­¶¤àBr¯on7—›ÿXéÁ8Œî}ÑÇ _3þ¼nñÒ™]ã0 Nƒu˜Æ9oMœK ‰^¶H¢.ì*FÕ9^Ö9h-±©å’xlr2KWXìƒ/þ¥~Q ¬’æ×”K Þ†¿= QËGH”ÒºEOëN6…Ì\ܬ‡¸ÉêqÒÕõ£ø›ˆ‹ÎQ‚Ü»)Óãî€!+Ì ‰ÒFwHÚiñ¥úЧ‰Œ}ýïwkÙÀcÏŽæǪ~ăÛíCz/›æ´ ·¶l‡²Òk‘÷þr<‰M~}|­Úï¤óÇã˜ÊPâ“KU~_ò÷•$ùíë-ÔÍz»Ò»çjê× Ä´¬L QÉž°"ÿÿ° Œ‚ÉJ„ŒóBÙAÏqæ6ÿ~·9Ýceö'×·2Ûgdçç,ŽzÓ~úJK‚ì(”cÓ5W‹ë»ÝIwàòγTø’F.®Ö? ùÀc·Ú7RD—È*:j J˵ö7Ò™l!£‹ŒDŠÛIW“X…ÖÛçÚ¡Fõ0oO}'³ÖÍB9¾ðâß_ æÚ b‡F‹ÙYž Ìözuú¦Œ"” é.•CªÚÈìrÄ×z2Î'ºö² )-]À_.yÕ9ºÕ%]è ²e?8ˆšET XèñDá•ÙA’믉7°Kÿ7¸ÝŠ|_–¨\o¿â‚òrB¶q…´^g 4rNË‘\±õ…7Ž‚öÉîz¿/¬òòz·ö‰â«íY=Ö2Òn‹@´/ú›õÉ 2 YÅ~½]Ÿ3Ô©Ñ͵î¿ÊÀæ­/RfáiJˆÂÛÚ4¹×ï°¤•‰œIoJ‹gwd:»õ¾ðõ½\fHpz!ë‚â·ãZF´;}C¦|ºÖp²W™3g&nûÈÕî‘S‚¥Ç=f¡{r*8^vúbs~±¦ì_ηœ²2A›*÷{¬ð¼3mÿløi@<†ûu»ÖI³e“b‡_ïØì¢o·#Æ»uYö}›Æ"Ô~¡v Èe»u§u™—ÉõªÒH5PoPÒ]ïÖ…-”mÈc¤~EÈ1öHÈZžª½!ó\D÷ÊÓÏäÎUE¬Ä,a?£¦°:/òh¡'»Õ™¨¤ áŒ>;+œñM¼¬Ò ]ì˜#o®ÝÑÞL³yö`c틨ºÁ8*û÷òm¹ïÞ•)ØaöþR.…=Kcó»V`! ¯|áËŒäìžbxS•¦Qý+²¼w«ýfôÏq¼Ö DYµqŸv+À/L.ŸŒöùq—‹:n~åq_ 7ºgY}׸‚}và(°˜¾°¡Ð"žøT`¥éWø«îÆð¬0Š~tÃø[§bƒÇiÞ_\ßmO…ãËñßWnNÅ@…h*NQ§Ã(‰ JÊ–V{e³=]:z~Dù£”=*¹æ‡ì€ñ m틽4Fêµ*-7ϯxg\(nM‹v¯­´v¿ùõœ%V½Ï-d©NëH’BS±ûvä]å´êÔD0Ù@årVõD'×Ûíêf¯³W$ / ’ì+NÛåÍÝ­èÒf—RÑ¥²q p£›ë颷Ö_(g]ŸV]ÐÙ¤忦²Wò"шœÉÅMysUx¬«Vé:øE(Œ]žüòïKhÁƒOÛâìÈû–! æ©ãÐ~_!¹äãÇ`^tùHѧôÖ‡Ú¤¹êzqXûwë£ÿ~±Ù®E‹‰úÝi™®ãíÑõ÷ëò¯è¡qaGQè{È=¸]on¶“êšJœ¹®ø¸6ŸÉ=ZÕ;ê/¡Ûò’ÇaÙÃòHU`¸h«0\¨Mäª~M.B†x½‚’ºoý\6éÔ:7rẔLf ¿qèÿ:~ƒz×·ª×P¹h½»”Ýr|{ˆÕÁox0¡69§Öž<û¢2øÚ¹¥ŒÒíº›ª~JÏ~©øf%Ī“ S~·ë+QœT…Û¤¸YæTÈØ{Óõ@ž.§œ²ÙÇ&åBƪM7¦ìÛõõ W½¡½Øò¿ÅŸ×ÿc¦Ì\š2-×7„´™o´¯K¯ ­¸]þ!ÏvKýK¹…—›Ûv[Æ»/âýÉ…ü(ÿ¿ø»€7½­?o¿ÖÄ‘J×ÿ.xWË ¶kPЮÅ«ý»]¹›-+VÓ¨5‡i©HMËdñ?©­_\ÿ¸hH[›³ÿäËãæl½Ý¯géÍ™œ=N"ç-ßäç³r¶úëÅþe^ìñÚž:Âe”ÓkŸ|yjµÊ o¶´Â³Èªe¼8rWõÙI׌-ü …ŸÒÕß…U—ò)-\‘ŸÒ•ß’\ÊKržbÓ¢¤þh6­/qöY}Që‚<QñZ¤örºË”Ë Ø{ S]dªOoÃÈÔ/©_ S¿@¦þï™ú&Æ¢ßà s{òRÈÔò?ܨe2öK¹æ,qÑ(ÍÞ€¿ÇQ†åéAà¥ßR#F{™x=äÉ€¼¯¬\öëÕC“‡½úÿ\|\¿ÆîØ/—¿.{h •U)‘1qWÑí+À ¶ÒEÄ 6e8¹Ú";k˜¼/içÓ&¢|¿×z¶Ë“›Åú-À?»ñ-nOÖ½uå¢îãÛ±ô8Å·CHf™ÝÛhFA_-æ~ê[°Úí®Ëmtu*;«mÔ.Ϻ0u­V¤S0òËe¸4jÊ÷c,’†Iߌ!2™N,ãÓq0°(aùVÏ|ÈåÏEÄ8²{;úÒÖ!JqÀïïÕrÞÓ®å®GÝH;·Sm©›Å¹xÔ»ãI·˜Ð1 ðf0/ü>bû)~ZûK•'^øyTЖ¡åEŸWˆ§}Þ¬ßÝЛÜÎ3‡Ä%Aqý ÿlÅUÁ‘AõD“§ç,ì'’PKª)!eàÍ(Òi†ŽyË86TãÅ2B|öÆ<ßÄl1²W#œñ¤Þ¾ ñBŒTi‚a)µ½„W¯÷µ×)Æ#2hNÒdKIcwÒç¤4‘’WÍø>gîkÆ^f‰ÍÌŠs69ºÒˆ_a&zÁû\3fs%õjüLxîBMCú Ñõ›54u î=nŸ ¯—øŽj­åÌùEî¤öz_ïw× ×§SÍ/¯Ö>ðëù—õÞ>ŸªTeN¸B¨Äù_g¾?¸›âýjæÝj³]—O~÷Ïß=ë$î °­ gGö›ã˜Gùó/õ÷Ū%ŸzG™~ªè{Üxž~L骦ÌZÚº÷‚…¼´ÍÖÿœ„»£“õ8a)x¡=%Þõâîz!âêWÍk»9¿ Á’øäÈgÍS±Œ†Áõö”Å®äÁfä´æKxoªÔ½kÈ¢>x¯OO»'ôÅô6ŽçôÉØ½°‡ô=}'c™¹T¨…bç‚‚ÇË©¾ÀÎí£Åü@m™nÅÖ¦L´yz+¦úˆ(ú|î…±_bN;3ßÞ,B¬­©f=ùè¸aL•fuxÖÙ‚Ó.ÛÂ…éþènG;+¾—{Ù»Ívó´ ëìáÏŽ6»Ãé{wí~‡]Dc]5dœö L¦N'»«ÍÑîN=tŠ”£SÁ”î¬a†P:#ÙÉei'†_¶ÈÌ‹§Ìoôw¼?¶äSN,¿þÐož:iû»wøŸ¼š¿uoÍÛØºÅü³ö|µ,Çï'Ø­É#öÿÊql¸ eå/å1ýïÇo°'W» GÞÀb>a ü餺(·ò“ÛrÚÅAÍÒʇúO“ÁÚf2xåS“‘Å¡›‰º.ì›mi5è¿Ë­øÀ.àR{{¾˜ŽÒ˜a PýN›-Mu-» ­Â-üPnily2ÓðÕ“I fv‹b ×ZÏ–ý~/Î_4™F_¶vR:/.68²§÷W«Kõu9£C=ãeŽîØ—j™ªfBêc89:lz ú~U²ƒgFZ¡Þ®oÞk\YLý«˜<Î×ÒÊòŠõP[Klïhr{ǽóÇjŽ(ûö_~CêXw&~(báO¥ H|ÓùaÕ¾§Ôõͱ‡7^ƒ–Õ;jMÂÇI¯ãZœ:ažs€xHÞœUíûùÄaó.Ú€ÅkŠ…3§Jqc8¢Ãúò¦Ò›¿VóÝÍþ+˜µÀÆõì¡ñêá"©9íyçæxQ}üni›™ÓIùT§Hœ´spÍSŸ™õäÊÊ9_tT æÄeî›ß+9Ùí¯+­Ī»mÆã²Vý¨ØøÙÞ«_åj¯ždbñSÝ<ËjTÞ¸˜5õ_1‘Û=O”¬ ›è ‰X4õ¡3´ØãdÉ4±/bÞß[¬OS»i§{}´)\oSG„iêi?©9f霳tQí»û.|¥†qg‹¹zi“³þXû霨Ôæ–'m¡øf.¯«¡ù¹;hat¤Yü=ìèB{¸¢¿[g[bO¿*œ§‹ÉJ’ ~]…ËÔ9›Ìöe%·›SeÎÜ¥×gj v²ƒ¦–¢­¤­Ç”à„cÍ'ùé‰óü=×`EÞ«iù¢;.ÝœØÅ“6м¸0ghVù³“Ï ø£œ¬ÉÍä¤,=&Veÿ¾•¯}tËg˜=_uÉ`öÏó³oœÞ>ihØ: #!F{„òÆ€Òþ±0í*áDJ\7=ņt·ù “û õþ}WŠÃìîÿ}·Ûˆ©ìE·ëÛõqÈг ØqEh¦¿8œ\O7{í©ÊGµ…ÿï2áûëíßÕåOÝB[/ }¯v4Ú½/^î{Ç‚sq£·ú¯:þUþŸâYÿîøF ¤ÏÅ‹æƒ 5ÒËžŒi °>YŸ®'žs®L¿Œ›Îå ®Nn [ûêä.ÇHdˆýýe‹KQJÙuº pÕA—O?ÓŠ“‹ÐŸ>¸[ÐhŠ6cÕn‹‹‰EVÿ›ïn(÷^«·äi396rº_ígÁ†ê–Ô‰µÀ¥œ‡Î”2fƒbï_\AŒB7gúÇÜ9¿.ÿ5)Áú™¦Ž7G.?D«Õ,Êì #g‡oXiuÙ‚¼ÑUÍo·oÔ³ªz/_ï~Pº#˜ 0H²P¼`iˆ* ³WW{îÐ~Ûd“~–Ξž¥³ b1Ÿµiû+û¾ëï™8!VºR®#}oáä|¦H¸òêï6kuÍ•ýŠÎ~+KÙQ4~Uˆ7?]OÔ¹t-´«ñ×ãÎØtqd¬Xš.g–¦®üïÐÒÔÁØô‹¥éÿJ–¦îý–¦r•HOvR~^pwlaîðìÈ[Ó‹×ùùz»Éã³ã–.u㦹ÄsãnÄ¡µ¬x2öùOtÀ‘qKúuǽÝܽÉáÙqOÝ ™‚ppwzˆMãê ›Ëa†fåP8‚‹ØyµoÚÅ ³Aoø¯ÊÄ©>éèÂvs{»%U:¡‡WÕ'”æŠ<5Aòt°5ŠÛåǡȠ+j›înÅ•mCT,(âÉf}u¢NÖªL¤º¼ÊA-÷(ÃîvNn5zýð)vU Cà ¿Jx*õñI'šV`UÓãøê‡À<ϲRêF¡ÝSH›&°*ß7µÇ öXåŒëPôÜòôžê‘Ý6[ñjÝ&a¯ÏU„ª“K]¹Í_®xu:«WÚýõ¥ ,”»Ê…¼46MÚ¸¼mÊW1EêE݃i:¿+k!NŠ@˜êèÖÖ“bmÑiÄë¸j}ÕÙRžWÎŽFÈ ,ñPõÁöËÿÉÛJÕRÊ“á!Œ! D(’,ŠL²We|wù•ë¾–9(RvÇBÐaNå@Ìþ Zý jðJ’ˆ@A¨ÂrTÊ$ íJ{%U Ècw ½í‹ê´°`£/O9e#È_§>íwÛpLK0—òS²rýn„HòÓ×Ä|Ú]?Ï}§^ÈÉŒ…Œ?7àòûb*ï†cà½qDOŒ¸ý¾’ä+x»…}zv̵‹Šžx.04vºùûætÝ<åO®¯ #Åa¿ZñêÒAmq.oëÕ~CªR_Ë z·]ë“qbƒ0?°D-T~W_ƒ*ðËã|qRÊvÄþ¢*¤*¨Ú-17 !}²&fÂDô}˜¨»¨Óô¹K€ŠÖõiõbFl§§È3ÁïS 7Ž›ÛÄ~SG¾°ÉC`ù£Ø¨@Ã;×9HJÅ]˜ó¤Ö·³…Þ܉ÈŠ'0:SgýLuJÒ|C#]¢™¡Úút¶wTPK}æ[œ=¸ÙŸÏ/ögíb_ÐgvV´P\*ºÞ•}q/ØD‘ÄOïÖßEÀ Çi ¥ÊáI¼²òû’¿¯4‰o_Qº¹#šÇ³—›©Bf²—1-žíÇlÃñhýò¹1·ßWš|Ý1~I鯢ò˜ž_æö»PÖ|l†ðü˜Q`¡ƒÖ¯;ê›"CŒéyÁ©"È~ßÞŒåIw?3_Rïúû#Ú 0täî/Ç®Hg‹ç&ú™4å“üüLNVL/^{&ß=Ô.µ‰T,Æ!à õ‡"Mꕯ&`Ùï‹\»)³Ø:vkÎx‘‘ å› 8Îe2çÕèãÝîzuŠŠÏlPè1.¡h¾ÜšÔfΛ&ÿÝÒDFÙÆ)ßàå÷¶xQ¥s±yG6Ù= DÙ«¸2Ü«,ºh¢Wja#ßµÏA Ÿ.ÍXëüè·E¨^ïàëõ\‚åE2Y§u?»æSÓ¯¿æ Yh§º‘›º ž¹™í“Âi­MÏŸth#—ôëŽü8m׸ãÞ}fàn¶I<4åƒ{~É[Ó¯¾äû‹Ýz´ÏëÉ7wµÚ\lïNÉäU˜Ézÿ71Ër>Aðm¹kç{fÇ&ÏjªµÚÝ·KÁÎ'3ÖÓEÿü7Ó;œ7ðFZë‹Ê©ØkÒ$3d(PpOã(€ßNí å6àZÐ%È·O0\­Y@¸–?6>D&Ÿ$Ý­ÀŠi©ÿUQËf~–|i—ê( éf\>;îV@ÆŽM znÜ¥@·¤_wÜ$^ùyqyê‡<Æáù/º/pOHÞ?¿à­_hý«/ø‡Ü¤Ouå˜hÜþùn'ÊM$Uˆ£ªãÝj/ÁUÄôǧ÷êp‘Fàå&~³e¤– ’â9-bïâ@eÀ·ÎÇÞÏ׳XgUI²‚m3´œû¹íõÒ¥z–Òä÷hòRl>Ëw¢-B[§Õ,Y±¸×Í~²Zþl®ð=©¨·?%•#´j´DDÊ3¢À¦QÛ~ ¶}3Û1–½—ÜSª»ÅTp¨Læµ÷Íêržç{SOtçÐÂ=P¯=×AŸ´WZ¬êøö|ÍÇ÷[}#Íßä7½HÛ‡‹¶7½9b·eh^ËûÎ2¥P§Åñâ¼gu‰_i®j=m››­`,ŠÃÏ9ë\ß_Ðú{}#F±¾¸ùèÒÔC÷ýf®S,lñ…õvk"µµˆÍ,Xà¸'¿„EdD¬~iTϵ¯Àϲ{7Zñ¬+øõ‰Ï­¶tOPTf<ò”º£êæÑó¶šøÚgtñûªK~ˆ‘î³ß|¸­”}ÎVj¡­ä<KYñÈé-ui1Õ? -|Èã²™FÙÙzWšQaB¹a'§Ú‡~÷÷£?þùÍŸ€i'˜oåIÊ­F©Æõ [ïšE{sÓÓ½Gˆ>ñ€ácãt£W mý{uãºìÚSìœïÍ(„ûý¾më™ñïãšñi;|£ç‰1>LG|…ÿz{6¹ 6ÄÏ7ägïX8ÓHMF`\•qpä?$Ù¢¨èÙ§Gä•aˆÉ{Í DýñOƒœlsæ¡„ª¯-SÆ*ÕÚ)æS÷6ué­Šßi,PøëŒ“`Ê2œ‰…Áéz²Û¼ß E,°Y9†ÁÚüÜ1äï«.ùÇðùož<†2sÿÏgœP[‡TïŸdÚy=èf¾H(ho/–ÚûMàÅìANK9“ïÖbG+§¶yt ÷'@»[¾ª_LÈÜ»ÁѤ{Bb7Lêå˜Ç߈Öz{Xà-eÓmëf°«ºâ‰ÐTh<íÌw§4ÒZ]ý°—…ô!å®Í-ëû’6( Ð^Ç&ï¢î°½=Ž˜Þ?{‡t uÏÂÕ˜kìC`<u‡¨äÝ»MéüNÞÙè¬ìFÊFß·°xÇ¿˃C×ÏRôøÿ—ë!Ÿ`ÖMmÙžÀùäÃæiB‚pOÌâ™T·‰¬g¦Çdq´ÙnïÄ«æTæï¼:kÛÝ2³Çq4h9Ä<4¡\A£ OBi Ió!žÛô!=ÖŸ@ÍÊh{lFc¬GÇúËÚ;d¶šÉD ”RY@ í—&JtKœŽBö 3ÊGÖ‡Sjc¦VmðØSë–ÌK*GŒ>“‹uY«È¦«ÏdBŠ1óžÊ?j’ÃCggB‡ág‚ƒÍ;¦w x¬Kü( guÀ-É"˜×¼ólýÈÁ)*}B?ì`EÚÖa_Ð<ÂÚ\$ÚïF‚¹n‡U /èEÙáS»á ;~¤nVÇd«aÓ˨@Ûý¶;ËË¿”Œ+ÿ¿Ü.Óú!ÄÕ—sQÓ8s%ó7dIèÕxI»’&)!ò¬q‡¥d¼Ëî焜ŠAÒ§ÌK'.uÒJ‘ú1œ¢\l8eOPL©´zfqö#8–ì¬!Ûˆ³e†RVO–1Øeˆƒ4Ä ige}± b]ƒˆcQ6„µÜÇ’æÖ•í ;»²]åc›GìWÙ~³–£èJ/ËÞe€çk“ÇGÙ e.8“î ™«lHø2—¹ìuðiÙÐrÈ‹Åì¼|ÕËÊñ‘†÷Wì(–ÐP’à…0>Ï©´’¼Ð £ëyÜ-níÆ"¡ÞÕ ™UŠ´Wê=ô™FtCJŽíFI“¥ðX8O’Pè-+ €#DÇzlÜĉa/m"Þvéh‹P²Ò›TgÏ7š<iÒ“11á¢ãØ@ÓËø8š¡Ò öÌ NÒ…9ФHEÎ’.''ÃÇn„|ÂÖàæŒÌ|ÄáJPÒgÞKF­Vf;’8ýiߥƒéÒ¾û ى˗õ›¸|É4.ŸÌÄå“™¸|2—/'uâòÉL\>™‰Ë'3qùd&.Ÿ†ŽË§aâòi˜¸|™£Æåã8qù8v\>æ‰ËǦ‰ËÇ8qù²FËÇ8qù;.ãÄåKùÆåc˜¸|!yi*Óqù&.ÃÄåc˜¸|éWãòÑw\¾ìÜÆåËîn\>º‰ËG7qùè:.íÄå£è[4—fâòqè¸|¡íËÇaâò…Œ4.Ɖˇ±ãòaœ¸|È—yâò!O\¾Ü&.òÄåCšØ|HŸibô!uœ¾d«/¬ªñú’nÌ>¤ŽÛ—Ì'°û'v_Ó2 ‰Ý—tc÷%ÝØ}IOì>ä‰Ý‡<±û’nì>ä‰Ýsö*»—„ÝËN§{b÷¥µÆîCîØ}È»yb÷eŸ7v_Wc÷eÑ'v/»AØ}&v‡‰ÝËNÒ};tì¾ì·Æî£™Ø}4»fb÷eßNì¾0ŠÆî|GÙ}´»/›¾±û’îØ}^¾êqœØ}'v¯¤+ éšØ}'vǎݧab÷i˜Ø}&v_hfc÷…˜Nì¾P´Æî…ú »Ofb÷ÉLì¾÷‰Ý';±ûd'vŸìÄî“Ø}r»Onb÷ÉMì>¹‰Ý'7±ûä:v__c÷%ÝØ}¹ 5vŸüÄî“ïØ}É4vŸüÄØ}I7v_Ò»O~b÷šö]:˜.í»ÂÑ*¦P1àOð€B¨œs!€±[JZXLÙù%-, Lb ](lë!\H–°Èƒp‰ˆí<È‹`·"D¬{Y[a…ƒë ëÁy¦_øVªL¿¤-¨¤±~$˜ eh–D¥¤#äÎ$i•A*M 6Þ5fo~œceî¥8^Æ™Ä+‹%ß–Š¢å&:f2zùt.D?¶ZH:‘ TYÆžrÃãcJ2{Pv„õ¨&9ª•@ΓJ )Z¥0Hgœ Ic†ó8J,Öç)=ª|’°ã.e¶n†—,­YÑűØðQ»íe¢‚z§Q iF´2Å©r:š’5SHSõ¤çª~ˆZ2¯ ¢säUC2R.^3æpõxƒU% ª%Ê]P5ëª'b‡¢*Š Ç*Ò¥jŠ@¤Ê6U8·2ßI”EåúP2yÐ ›Uã3@vYôEåä•eQ  a.kÀ‡ÜhT%ˆ>Œµ ¿£Q”F¢í¹Q´Fe°XqQ CEoT&[JGæ×¢9*·Rl Q ЇûAtG¢™•LUQ:dT{4@ÉDÊñ’BÛ’Üw¿²¹ÆL :n‚gv¤Óo´†Ç>ú’kŠÐý©$—m*ÉýÄŽÉ}¤'/#¹@}PÒ}JOÊ6ƒR< É-ÿçðñI$× ^¤퇒ÜJh¹µ„ЖCû⪇dϘÊÀG[¾ ”Ì(úärìª\Ž@éŒ^3àŒZ {ÕŠ<\r#Q-£¼, hå…ÃPÅlœœ\…©”™ˆŒ¥›‘ AôØ>QÊG莭dŒD™,lÐt}ùä$ø´äQB÷t“µº8 š¼\Hܦ>ãðÕ¨ÌfÖŸFl!éxÄ¡TÂi š›q¬¿à 2hÀ5ªa͸Yfì2Þöñæõ8©|ÏñðÐ šüIÏÚeipPÇOz×.‹8~º”p¿üT)Í+o>iNBÈ—øz`¼Ûøi= 8[<öÎ~…‘¸|Œ©l–ÜE0‡—ö–Ê)„£ôÐ2½Õ45*K)óH:R ;L—oçá¥m2…§3¨¬~0;‡a2g ‡Y4ÙwKšW» =)&øj£->Ùu6/…DZÌ7[-DÔkf[3ÞK†ÅÍ «¶«m>=…`[ {I@ ÛBÈ~øôõa»³î…Ï=IE&&‰™:I.w ?ž!"ÃØuV+x8Ií¦ÂIÒo^:I­¯Ûuo|ù$‰0]ïŠ >SÕ ·¤š‘÷Z¨Sê-ÉãÊPoIZõzKò™7+½%y¨Àë-ÉC±^oIŠòzKòР×[’çËD½%ÉOzK’ô–$uë-ÉC¿^oI GÔnIözKò¸ÑÔ[’‡Ž½Þ’<”ìõ–ä¡eo·$5{½%ÜTê-)@Ñ^oI·E½%¨ÚÛ-)@×^oIÊözK ж×[RàåLoIÁ°½%(Üë-)@ã^oIÁÊåGj€Î½Þ’”îÓ-)@ëþ¡·¤‡[CX ùê³d؄֖ÉYl)˜ÐÔ2Ñ"£SíoÉi·­c ]+ ™…97Š]‡LÉ€–Ät’q—Ì l€´cDÏ‹ÃGbIäGK^¶l„’“-4B(]oÙ' 5dÝ\+‡QwPYcµäÁK˜1ºÁ¡„ô,L—áÑGH:Í zµñÚ xF…GQª"5Nñ?ñDÌ [µ —ÆŒrCÀˆ¤‘¥©X]•³iÝjÝè¹S.ëO¨Á‡®œžz(…aìÙe¢­5ÐŒ5êO\ 3ƒ„’±]‡êôk.|܆œ>¿d“¤àÕF×5àúaëÌ%ftÅÆºXX§tÐåhjÛÎY]"̶sRž¨ ‰"7ÃàH·eýy›ó2÷aãÅ ËãmÍx‘Û}ñ‹J«p‰ò”N\²lHÏ“¦T 9!…Šáž“u)j¢~„ " j9È¢‚G€ý:Š‘—žº!G4«÷!;‰‰µ%ì­¨»“ÁÀ£vÔÌðe5”)0©ö£…fŸ™r¼ˆ ÄL¹>hÞå”j@o¡—¼79%¥7ލDÖÀy¬¿àÚ$ukƭ׫ Æw¸$Ž©~„ëÕ¨ÁzcE´/Åk»öBFkè(\Zõ§a*þáÆý(ãfŸž²:=`Úãð·å8Ô;¾CHŸÒ·Ë–ÖÛu!‡õ†Y˜ãrtõïv9zµ$+Ûy”÷¨¸õÞïÊÊY?ÀY×YâMúAÍ€)ÔË¥3¹a%3èUš·~%Ô@µÌ+dLjâG´ ÂVì* âÎñwQW€,©ÞÀجJ dÐÕ´p„¾BN ­ìŒÓaãvÌa1ƒædS ˆ.gZ½1â#U}ò xQ °²('Wm󰼓 dãuó¾ÁC-JÑœ©®ÓT2Ú•^"}Þ}ôAž´VQ»eÜzŒØh!){›†—ù PŒ+äTÙâ1½Õ´åÁ•2VŒl>´â`¦î†aꯤ¥ÃRæ…=Îvêq¶S%-=–2/챨ô Ë!‡*u̶fŒp\)f^èŽ!3QÜHX3µrgmh•Kæ%¾ìŸU_ø0³Õ ‘ÝZKá|=z:ƒs\Ècz«ié¶”yQ¯½ÜÌè$›Ër½*™ 9–C—ZaËð½DŸ4² šáé…ùDv8€—ŒïEØ!¨•ŒÖTÖÉû³‰SÚ>ó/á´F ƒƒ”QÂÀÌ 2©„é}ðÙÅ‘¬Ï òb!F ’ß5z¡ëÚ(H:ͺj§¥•DÉWšgúU-s¥7L×Ê(yh•B>˜JjÕÝŽöŽÕÝN2ƒŠ©,6¼yP¥Z™Gÿ©ÌC2Ê<¤ØK™‡èk•y°¾Ê<$£ÌCн”yHÿ”y$ˆÑ•y0S™‡´ôBæQD±ÁWîQnTûÐŒö\Š}HÏ?JÀr%¨óFçai'Ú5+™ªPó*Yz°_/ˆ`…èÅGé4$!zµ²¨¡ê¯ á-H¯wdjڥ˻ÜnI–!ªBS½´,Þy½tAùäœ*©3Q•0å0z}¤þÊ[=ðÄ(´VîOp¹ðV®ÐAˆõ¨jX¼y“ªÊ*€ªk9ƒ_\U™Æ $3Œz“œ6k-Þb„(I òÚ… Xjuå†à«£Õ˜5}îYEÙÇíšá©]3׫ÌFûEd`©•ˆUÉ J§ï´CQaU¦4ÝõѶ*ø(ëOÊ©˜ ·³zÕI#ÍÏ4“qÌÄ’ ô½*?¤Hµ°–‹æ”uÓÜ嚺W+Kú^µv¡)oò ‚•[ãÕé£íÀH!åÚ,µI$YjÀ“ ]UÿÀ!QëÕeˆ&ÉVÏ*ê{õ£lñð×x lµ’þ!(©B/Þ4jD4Ô)¡ÑÔ „A–`=à²Úâ@Yá²^±‡‘"_ªWHXÜŒš±”òôÚIµ°Þ G˜ÝŽzføÐ‰VÝí%ƒ_D8ÀÏŸ»ÌX/¸ò¼ÊQ£œY«·]ÐõýI\jWß*ë ã‚TXR2Úh½wõê‹LHÈR]‹ˆœÔ/ uúË™ Fk@‡B½Êx0AWÅïÂóJÎ×®ZX?>rk}­'+ÇÐv@n‡Ì.UßÄc•“i§*·”WÑ;"«˜‹#%FØr¢Æ!µÕÄvlµQëyœêJã4õQæ­ZLá,ADÎm]êY2C;€^•Óz–ŒñC;KÆ´‹ÔÛVo‰joÛYªêZž¥BàÇv–Œ³íò•IÝâ¤\¨T‰6C;KE8±í,‰‡ì€L[ï\c3÷àYª Rî!±ýàî‚6Æõ,y*dÛYëÔÝjøÐ¢ûzT<óÐÀFÏÔ C=1PbúšaDSý(Là šiÊ"ÌxÆVªƒÚ2Ö³;¢QOYÙ^¦ÞÓ¨Fƒ¯g 95EéÛY²ƒ~”aM=Tâ•‚¸·³d‡º%OßÎ’:ªÉY²F (=XLÝô°¦³Ú¢‰ßFžÕ3oÍ–6›òÜšyGßž}mu±o²ïJ×ügyŽfåbø"sA÷ô­Ì‘á“¥4j2IÙ,NŠÒrªç‘y±¦›µ_zÁ¼ô]ì›ì»Ò5ÿ/Е%Ç T+íõxÚT͉‡±YñÆC€ÌúÚp‘¬ÂMËúj‡'SÕ x¸|éˬ‡+بt…–,G•k¨LPµˆ‡NYµGaŒz“(çSáŽ0¦`Q5ƒ¾M¨ƒ‡Ús#3T¯çLÛ4­ÙÓ’¹¶³»ê źõÕ=zÒpSÍÑž¦àTD[9>é°~”A‡˜ é°übù4¥ï™ð>÷‚tzlËÐϦfH‡5Cƒ<}9‡&ÏlZx‹™ÆãuÏ(c÷Tû‡ZÝHƒ¼¤™7c}9sà-QËáÙÍÄP3ÀY2#žr—Q™†݆šSw |§Ì8è<àmyÔw/>U±Ž\gu€ð ôåOžv¨ñfê òªHàEu^‡nè\§tØh TdëÅw!kT¦)k–›£pðy¯L£·t9L!ÒSNSˆÔëC8<žêu!Àå©^Bä}COTˆ Ç–õ':´èkÜžêu!Àï©^ì0Úu!Àó©^\Ÿêu!à»^B ¿KÖ nõºðÂ]¯ õº¨ñÔëB#¯×…«êv]xÜ­×…Èv¼N tËz](Q¯ oñíºèõžêG°JÑëB€P¯ ;µ^œ¡Úu!Àª^Ü¡êu!DÚÚËÑ ‰&%r´<¢Úu!$Úý¨yH¢!ÿ¨Ø«èuA|m«} /TõºÐçz]pŒj—ãDÃ{9Zf0õº ™z½N¼È;Ul•µ¨×…¨ç”= ˆÖë~Ûu!€ù×ëB€‹T½.øHÕëB€-g½.È^íºà&U¯ ¯Îõºà(U¯ žRõºà*Õ® ¾Ríº ÊµGÖë}…@[ìö ð»Õf»Þ-~ù»þn!(½¢x±üjübbÛÓd€@Ù!qÜ7Ç´Á…/Úï«å”|"2ì{‹>í<Çû~Û¹Ö'A•¿Ý¬ Ÿ¿”èÞ"}?}›ñ×wÇh÷ç‹£¿"‚Æ›¿K˜ùóÈûEyç„yF4>»¾ÛŸÆY0ªÁ?kÑä]~B?þæ¨Æ!Ÿðû§`\ëE ›¹éCÔ™w›­Ä2@ñˆÉ`Íâ]éÑö”€ò•/çÒE‚£ ôÌÕš19Êd Ù98oˆ]›=Fä¡ûÍz{*Q˜§NvAX¢sA?‹ûaÂjÜ€s F´™MçYÃÌïjd3Äè㫆 c¼X•¹Ï5òçúŠa 4:ñí§ˆœ_1Ì_˜`u¥”ϹZœ3FZz*¨°q$‹2”‰-2H°C ïqº$ØÿùC°ÿ5:r»9ÙÜh˜†_i\yx!£}_¶ßI©öVzÿö8 äηw4hQé VX(IVæ¼q fùÕé÷« Ì»-'„q-„j"’»„–G¸ˆ5ÄÚ¾;Ä–"¯Ô ²¿Öö¯KÍÎ¥p 쌘­V…Odcì s)˵>8‹3 ¿[ÏOm 6}±”=êtAÿÄ>XwÐ ëf½(û ½Ø­OÖ™œÚ•EëK!Áײ+8нÝË©Ñ3Î@^gd ;¹8Ú^¯N÷¾Ìæ€p+ˆäÄ`#ûCÕAŸBX Ëb¼!•+ë@B*YŽêi?ó0 ,¼élÊŸ\^ü+Ò€ˆÈq7®ì…Ìþ¹Œ»êp§ðˆ*-å‘í¾’ †¤™Å¢†]*BAù;B"©a‰þÌ D¬²’É=¾»;‘3Äøšp¸—£ªШž·ë­D”>]óä—ÿòh|Õ‚˜u'jhq]NxT8åaóx˺ץuXÁéˆõÌ3 ­&¸ÊN˜xæY Âs>Å*Éõ%§m'ÑIO4èD,T`'`ÝZXÿO·»ùP)vÚ¢¹¼B0«ÿ$ßùEÕS€Ù\L\l}TE39‚Ó.g#‡û3ep25*/9ØNg"*•¹8[K¡"U SvÆã‚æß¡¿-Fâc·ùuéïÝé„·`E·å@îûsU¤²¿iÄIJVÛÍ;25 ic|½•Þݱw<žr]#\‘Dh„ßó#PÌC±–í¨aE¹>PñÜ÷¡µÏþRÄͬ¿<)«þ¾¨ñr©åbñ'”+õ÷•$Q÷ÿì`¹SG+÷+ Lw¶˜ß¹gŒôf·þûæú´¾1•YLÁ.ž‹° õÞªK~H„Õg¿yohG÷\hGé0C;þ7’àràßõat#rëõ"ËôÁVÙrq1Eß|l“[Î𦜲UÍ(¡‰ç²Fi¿^ïyþë-P"öº]í‚ ¶ÿ,p©Ê#‹²áù@;²§V±Јƒ¯.>OFl«šñ57ý»Õ~3úçv|× !æ\¸=·wñûj@òö˜ìÏìO ºý¾Òd|Õs~±Þ®Çðܧ^ÈˆËÆ_<7b4Låm:&°À3#n¿¯4YØö+Žø‡Õwc~–®Õn´à ¢Üï‹d5Jìá=5ªd݉$ƒÛË–¼M¬p‰By[U›+H¿äÍ÷-ìïŽALårYìò¾y{Í{Ùöú\#¢R ¸ß\n¶+ܸ„ŸîUÕÓ¼^¡N5lv½\A°«ú õU®wY&LäÛóÙ…=¸5’Ûíêf¿–(Ëó{ÉŠÂíúô\B—6áE#/t”årª»˜‚ŸWy„òöN/©ÔëK ]ˆZEâÿB0åöÓDA­¸)rêy•e¦5€*¯,ʤœ§4²iÊóÚ¹u »i÷îP."ìl¯¯ÎQå¾#Mý¡Æ\ïÿ_Q¿¾ddie¾— çRW)ûüèîFU-5„ònSZYmk_4ê1Àcîþp]:Iqíúìv}Å~"0娹ÉM¹+Õ¾ç}tøB¡«ÊSbÇý¿ ‹Ùœ—y~óÔ«ÿåØÂDKÚz"dl- 2‹-¢-|à\ꟊÛ ¬jºÔÿš‡{½Ý¤áÙ°±µ2Š¿A‘‹ëÕw›"BŸlV”0A°òXÝ–•¹/û£¬à_ŽÓhòËã3@þΪÇã\NKÀ+ßÓÓ~_i2¯IùÎ6—«lŸ›œÚ %| GßýD<§çU=È-#¤æîªzN¢~'ºo² _MTœ§Æqy5.¯,./à>ãòÂÞãK\Þÿ¥âò†ˆËëˆ("›«l'äþ â*os°®ngÊ&3E­G¥dÜAMMq.¯*w…lnÉæNåJµU×Û;Ýy›} ± ù•WÊ1ˆºäû'h±2º ÕØi¡ÍÊâ;½P ŠWp¨½ñN"J¬Æ»ñÔ\8ÕšeÕåTE슺®ë;F|ì;'»`On˜"áwN¼?¶c9=á‘Øà•j×ßWšŸ$KŸ'Î÷³"wí‚ôþíqÈõé½ÅŽÇÆJ˜d'Ê@#MZýæ^E¨ìk|õu½®QëÜtiýû­ÔPhÝêj8ùÆ·]¬åÖ Ôñ{†kê!ÏšòÀåúv·ù©üZøî…>¬Ô=ÝB*È] ß¾ªG×UU·¦TÓ½Ì/Èî‹äWfWÏßm¨¸E¯`ŠÌGCÑLO£<;”ÜÊæY\”Wþxs+O²íi’,>ÿUŽÞ÷eb¿z𤯪^÷|MäÅõœcuËÓ¼Úßêåq~|`µ2×”ökDÜè{Lf™Ö y)ìU xþÖ‡ä5í?ÔœÃPoU*>©Ç>òç'T4ã°àïzlà;k€Øý”†¦þ¾’$?ýŸvljzm»˜äú³£Ó5¯!ÜΘŸ·ÏyÞ>ŸfÏõ"1#Ò3…õY“¢K' ÀäÓܺîoŠØ»>:»£ÿböBù™ß‚Ã5!š[wQ ÎÕB¦)®WÔªœBaw‚K˜\ÊsXð²ON¦}rƧŽJû¯Ö?aÊ&ÑëÞ0‘.îÉÍ ÐÝa`zGЗ'¶ÇT`¥i~ý?mƒ Ývˆ^Tß¿C~ĹÞý ¯‘×7›u5 rQNœ3í!¤„`Í6J3ë S9¹¢Çf=O4õšYûÕºE“ן¿[mÁøa¹rV­yLðútJã¤*ót°ðàú¿VÓZ‰Ÿ¯™ÜÙêäö«é]¶¦Š:i侟îY{^´Ú$ž+×înhë"!ôd¯›ñ m\S'·Á ?•Ž´·\N®Ú£f mžºçœžDÖËe™LW~ÔWÅÙÃàõ»r5eæ´j¸ÙÂâ^[›)ñëØËãZï”íPn‘⟃UÊ^è(ÞðšrŸû‡O’Ómà Æ(å«…Xƒ°Õ‰ÙÁA” Mo°®÷ìÙ[Ö”$›ÅÃç%(ðh/×G»»+ÑYìå)` ák7=hª eîë;§>sâÚX¢¼t+ó Xx2¿¹e}µz·UÛºÞBæ fþM¥\²Íw×P[P7û×™*éó·^6pË:[ïvÍnCuðý+ZAíÿ‘/”ì1®­Úýõ¸çgu6IVÍ3êœQm¡23‚?AÐÀ)þa&µ’yoø²<×A“øNæ÷Xw¯}²·ì`ô¾¸AâL”Cr¢=47Ä•Øtb„r*UÉ[^ŠåÉì¼3œ ç‚Ƚ½¼Þß¾©R£ðŽÃm%FZœæáþ2ãœVðò²‚Ñ¢œÃSenf¶÷Ý"\LO32™ÙýÅj§jâµÝv¦ûjÀ•­gvBZª¹…¾Eˆô9¯û¬V=1ù‹ÕöLU˜‹ZÅÔΙÒfJ¹xСÍQ­Þy~ÀZ–¹¾¬´æb1mEîPô¾Û(§õ††ëláΩt½»¤ÙÈŠ²)÷(7Êåúòº¾ñ½U+©¬ç·å›FÄøÐ÷•¼â…6mDa' ýèù½Ú\49ž{£\Ñ®w'©M­O÷ ÌkýQTŽúrrÀ&Å„i0 1YT˜ºCÙfí•ͧkYé>“+Ó¦ó¢¾K.ø0I‹„=NH¡@“Å„cÌ@>¨¿‹ÅdXx^_rø€ µ<„–‰9¥^6¥«Ó_Jªœ>ÕZœµëÖ‰/¦³ÈÞƒòþ‘óôýÁ1ZÈæžŸ2ŒR ,l vb½ÚQ¯¾¿]7›™EGt¹ÙØxúßϬ/hßqïBÑ ûW*áSbm9£ö|X¦M–È¡ÒÖie™WÝ¥çóå¥>M욨ÛTnß¿Ûó@-œ·àB¼ùþÀÃ~ÑÓ½u•½6ßžž /äÖWÖbó÷Íéå”Ò¶èA]°¹HÍ<¡³vobX½˜³îöúâѱž¿…HÕLª´·ÝÞɱÓkaµ*« ÛëË&Ä-âøÝWÙÏò—ÇEóö»Jæô'@á‚y;*è¥X”ŸþO˧. ÷ßLJªþU:h×½ñÈj½dÖ›A¬Õ¦Nµ¸s£ŒõÅ‘P¹,æ¦$l/ÙÃþŠ–Â´ÜvŠýµaç:©¯>µ¬«÷µkËÜ£*y4ëkI•Uø\Dø{+¨oiON¢ó¨ê;jTÛ~—Í67ŽñÂÏçjüL&‡¹ï[Ç÷M¶L{¹Q{ºÎù¢3¶œÞæ¦Å“íÕ~½]ŸÜ¾YØt¸£Ó¹ü|1“ŸŸ"Ì‹™;‡\Þ`O­6[ @JöȺ—.åv«JÚBÛ©U—Wop¸ï¨j¢ùaó± ;{Tñ-z#¾~ÎkÛ"ŸÎ-Œøöн³êÜ zÄýôàH¡¸Þw䦠ôhš¨óÙ¹yôÁmé"öÜ{>~_uÉ÷Û¢,žÿæ½¶(þy[©ü»~#—¾úîyü²l€ìÍÅ:”Íît.`r^zS”³¦(‹YÅÂÝäJûFM¡²Øeì…%v {EsRž •2º»¥a´ñ}w¤.ìp0ËJ74.ÔéÛÛE™Š£Ñ ­(ÞÈèógR9VÛâ p¾ !í®,ÚtÓê˜fGKt2Ÿ„ožÔÃ8§ÔçGßý¡ï‚z´š±µ§·¯¨¾…x¥OÏ´Ï©ê€I¡v)m¥¯I0Êóéb²/IJÚm·úP!b¢œQ†Irïc äz« ½Öõqü¤æ~ÿÍq@5kÑN“ÀÊ¥JHYƒ"¶ð§1½’©ê€šŠšƒŒÚÕ–J:åôìÙûb¦Ž¡6ñ¼ÝÚÝï\î~ ¥ÌwMŸTøáOPÐH‡fkÅþXãË~*‹F7µÙº]uw¸saN•ù”Ýazøû+ùî/ÇÎHJ¿Ø PˆÇŒÕL|JŒYLVØE¾~½çä“‹›õŸ5¤éú!Êg4c¾èüÊ»‘'SúÝð©/uçsHp|I 6…/òÕ€ü|º=.p;š žœw«ýú´¡¶»À¶óŸ‚J‘ÒýÛã2ó§ ¤lúÊ4ùˆ=DÚý*(&Í{Q#,&Œé-ŠúÖAž:)P½,”yÞÞíÞÉýL}MÈÆÅHÁb>¶e÷ƒ&ý0;%¦éÏõ¾ã}g“‡„’ÙÓÞ~eÓŸ¬Ù8Ô똩e¿‚a·8ƒJ/g—œ›B¢H'V”U'£u½àŸˆ' =ÌÎñ9«ªá!ú&føà.ÍÁ`Y Âc†ˆ¹thHaKðÅà%C‚ø†' v3¿b•êé¾–¿ÚnZò?÷J—¿ºÛý´ôÙ!q€~ù«Ý›å¯Ê´ÕÏ~ùËß –ê=ÿÍòæßÎþ ðv}³_üò¿üñOo~}zýnýƾ–¿û㟾Cø›ÛmÙYûÛÓÍUÉþŽ-×»oà¸o w[þ«l…¥{k—$¦EìXo—áÍj[îÁ¡~RŠ|[¤Úo–¾[/ÿ°º_.ír¿1æD§†X ~‡zoÊÍà|·¹úÕÍõîD°þayôÝnuur½Ù/ÿø»üÇßý·ùý?ýþ㺾£•ßo®ú† Ì9)Ó±øåVçW›3U<CdÊaß^_bö‹¯ =À¥PÈ)§ë³ÅôgN—ÿúò¶Ì÷åªJ?-‹ µøúäzûÆ,nè<ÿ¹|W¶1«ùšÀ? XQÿï~wþî œ™—3O•³µœy¾>7/÷d}~ù³ùþ…y¹'답Ü{ú—æåž¬/ÎÂqV0O¥ø÷±‚ãTP:€£%ÃT0çúïcMWÐ?1˜˜$ƒÅ$€ g'‡XI’˜Ïs(¨ù¹QÅŒÅëÜÛ±ˆ²á­_Þ¶±ßæ³Ð0{E¨X”®Þ,nŸ÷cXŸ-^_Ÿá§ÿëùnùs“4ú¿ï—"ãôܯ–?þmW >òývù³Œ¥ÿãåòg™‰Y寻‡¾Zþ¬Ãžõ tàvwýü[å¯Edšým{Rþ¸¦ÑÝÉêfþÓ÷í§ï¯7Wóß~l¿ý¸9=h¼,6-ÿ=Áel6ŒëÛ2ŽëÛ² ³oÐ ,Í짬ætµŸÕVV¨Ê‰³âg,þàÏ'gZ÷ƒ_~ä4ááÁnËz·3û¡ˆ¡?ŸÞÝ,ñÿ¢Hjã\,—~ùÆ.˽cËßÄå>°tØ|üáòn»\ž¾^a9må“~éOŸìuW3*˜åfíâ׃ƒ\dØ.üäÏ‹_|]Nö n™Ò?”ùÅׄk~ð×ûÝê´Ïÿt¿Ÿý8«¯œ-•¿(‹é€ôO,óÓò¾œü%ëdCeƒQ8\ö©}-—˜Å/5Xü¢k l(I-~ñŸB»Db¤8½üù@L\~­HV·xÏüvù’7 ò¥|^ œê·³¢J Ð1mljka(_â"¼ã}XB—o :•eò¿û“Å/¿\~·9_^¿û~}¸lh~äŸß ¤†1Lmîc˜¦’6¿0œtìëÈð!Îhí/‰k= ]À €ÇïG|`Ï‹%=!Ð_-Bd†p:>àõ^TZ—ð0þZnfJÜÒ€’KÀ5N™¸¾ лIðPoS&P[B´ª”%ŽCˆ]ÊñKª”rŠ_ÒÄéKÀÑM¦›rö(Hl¹Óê$­ðMÒÈ`e)»±¤.t/ Á‘™÷=n9KxÂp½Xpë9ÕȈ’ ?žj„r•Iv^PzF5<îBà|Õ@ØdP¯áÉ Î Hð A8?†V< РP—-M—áÁ~3›5F.wIÛ’fМ ŒÑ‚²ª%ãJ†–¡çcâîåf)Èeû”:¦þ.Ñ13`kc6òC¡L¥1¢©CŠV¤šà,?ÈüaÐQÒäNF9 R”ÀÉ|Œ9n!ÂÀ~G!E ´²¡‘FkU˜ÖщHäÇB£D†òº£'±õà^Qà²=xDÙÚ,“Q¥£ò1øB äH iY›Ç^‰O<—0ûÛa:F‰@â •.½ðØ¥1²«E†C!©2t”`Á`;ð1Ø}Édþ€Iþï!Ä(”Ú9»dâG…†öˆhsù²¦ƒ (á4Pê,é´ è]Ò81¨¹œhâ‘‘"N†§Gé€ã‘%íqbd üaä>dœð0zmÁàÈhò’7bN}‰‘õÁeª~€P3zd<¢«DÃíVîH]h¤%*‰ÇE)Zd{ ûF‰È÷Ñòˆ1Ä}´Œré}$Z ÃàÆÑÏ<Š7:v/@d‰1 ®ntr2龤“|ŒuÜVa€¬æ„@AºˆN¢Ôõ»ûå‹Kxsa²–qÇ0eú!>(C1‘ë/'ñQ: ˜ö(`è!ãTJöp–†,d´d¥ ¤>#ר²ÈÈÈ@ÇBw¢á ¸ G“L¥ÐÑÈéIKŒÌÒ8¶uˆˆ:-÷^„0·[Dt¤ÒA¶ç?½l„2­ž±ºÙ™(W§BFqŠ¦Ë¼ Ñ\z É1"LUÊñ–ŠpԣѿãìQ(¸»Ê)ÆÇXéHJq‘{2 ßr“´öNÒ¸´.jΚgV}b®†¨AɱG!|¿€¹Îé¹ýÆUü’™ˆ ãã” (œ.rìSæÆh“õo@ŸÁRc€=DàAÐÿ>ˆ• Dõ¨±…BĨñ³D Åîð£Kp<ÞQâ8…‰Ñi1[é,kÀ®‘5*pÎ(èÿ Ž%N¶Ä”°2%ÃV5ʃžõ#P˜8êG—SêF‰’‘>*'#ú…%åz/3 )«ËŸxã=à^ÿ15f’ù׬vþ„ÕfU_q©3lÖÉõ¸ªHH-êlÖ™ÆÌf]+ F%IË!2RÒ€š15“E·²Õ½›œHTÚ’“xÂ:ШkðKÒá^äÒ´_ãµ°\nü £€ÆKCEjÆ×L©Aã'8l‰Z©ÁàVû©}pP5ÕÑ¢{žáË>páÊP3œ®?ý˜&\[¡²»d&Týv®é2ą̖̊j> }å ~¦Q$9iuÈjÂz2©ê3õ(­oÅòàZ ÈÕC60£G©PU–Lf¦vÈC?`õ%|4j¹õÜ '1ŒŒ¦ê„™hCÆ»Úhƒþd©NÔŽ;fêö£°®6Å$û²ULŸ‡ØbÒb%¶E\`F¨cFF)/ã1hïËÉËQgŠ˜¬,ÕÕóâñ“ú”UŒY3PñŠò3ˆ_Æzx F¬ä Ži9I|5™ö4(Õ˹ÏxÍ,ꧺp‰uá ^OJ¸Ør9«—ë>@³•(Kø*Óõ¡’!,}ŒÉ!À`Ý‹Xzð€¶ôÙ¥ié³÷ÝÒgŸ>>v›ñå%›†©šÙÖLÔ°H,öh&edR÷‹TЇ*+;Üj©Ë…ÆÆ/ âvÐׇíκ'ø,ܤFª©ê$¥‰— ™$ÅÍ$Qeu¿H'‰¥Ú$é7/¤Öׇíκ'øŒ“”%¨N3u’rôSÃgÐÙœ†î©àá$±T›$ý楓Ôúú°ÝY÷¤Ÿs’ðjÒ&iÈÓqK5WçÑ ;;Øé­à‘IlwÜô›ORíëƒvgÝÓN|È$=Ê”î5)„š’?]Î;"¥ý8Jœ´H™^›Qô×0[±CÊ-NZ‘ï5¢®X¡ÆÅ‚8_|Û¢¡•*­†<ÃåÈj&QŠ×(gÐÁD_£œQŠ—x¯Ï}±†%ó¢ ‘>@c^¤sýÅóiDû€ç4½z•Œ‘“Aÿb’¨/ƒ%ã4côŠÆpyM_<¸‘r»ôQÂõ­¥dšõú æñiYµ^ÊÏ‚åGY#nËKŒæÆCI| àÁá4x©!ë|Ál-f«qÃqãÈ/s1{-†›,ÃcV²µ%bD°YýÉÖ—ž†Êtó.he „Œ/ IU¶,Â¥.c²ºE<ŸMêŠà`5$šxÑñ¼²Ø¶Ú¹úêÖ©ñ¼¥èò žZucͨ@ªå4œî å3L-9Hçq)p¾ëª«Óé!~» }ˆYž[dÏâÝ…8 £Õá)ÌeÝõ¸y$T_v=o35¤aìüÈ Lý…·”Xkñl®?áI,ÔIA³¡v—£tŽñ–b? ^ïu™„|à!õLEš¶ˆk!J¼yÔµ‡nÊ`6Dÿއ_¬Ì´Ã ßX·ÐòKNÏ)Æ5êš:^•4(£ãUÉé¤ñ¦TÈCëãrL•pð²UÁE§®¢ÁD#)°—O´„rºT«¾àÂÅzB.Q|ð©>Éè%JŠ=š ¦]ÞºÚ$Ð8Ô+$ÐÈ7¾_øúú ÝY÷>ç…5ÖKç¥^ø$£LUŠ=š ¦]ÞºÚ›¤váã$½üÂwÐ×íκ÷9/|¬±^¢8/õÂ'½DI±G3èl½xMµ=6IíÂÇIzù…ï ¯Úuïs^ø¤F½Dɼè…Ov’^¢duͰ³zñšj{t’ê…O&鞃¾¶;ëÞ .|ïŸ$ǧ-=çN®9B“$£ç\Š=šqq¢ Sm“d¡‡l4Éyû14iÞׇíκ÷9ik¬çœóRi’dôœK±G3.N´aªí±Ij4Éyû14iÞׇíκ÷9ik¬çœóRi’dôœK±G3èl¥ SmMR£Iœ¤—Ó¤y_¶;ëÞç¤IR£žs™¥I²“ôœËê<šag•6Lµ=:I•&É$½˜&Íûú ÝY÷>U •p}Î6E0³E8ýD%T‚ŒŸrbçÔÌl™»L†µ¼š4¯TKø’Á³JÈ4°L*A&‹ëx–«M‚YQÉP¤-·ü$†¤ÌpE‘NÅ(rEQ‚‡_¹1j9žŽ²åøü˜ÆX3AßàÌMkIî{FkȼüIÇÜf.u>h ¥ë{Z`o¸išÅfµdð”£7Ád!UúœM“鲨£Îìôå-'Á¾=5Ú¯™¤}`9+ê¼RƒÃåOg<©†4;й±t(ˆ›‰Œ¯‡nHm’Ë Àéha+ït†pÅqÁNÓ…›Îd©ÜéÀE<;y»NPçe§« E_v£. ·(Â>ìÎ)àáé#öôÁnLsô*AãY2²Š0-ÍAGI_ 5ºH¸ˆf5ºH°£È4ºÀP¦=Èå(lФ†`™‘ñô8QðU[nºœŒ€Ëä§IÓ‹*7pV=l´֫i’‹e¨«È;lu/â¬'«™cÖ…3¾=?Ò$@n™ÜIãØîœâc¡š\Út<ŽÖ-‹=ë’ÚÈÌ4íÅÔv3Ÿõ¸—$QéÈnN¡ÖÀ\ªáš9è†2 ×óL»šÒh"g5sIÐ8•ëh=†¸e/\TUyD-a®tûÖd2“¥ùqÐfaÜ1ÚqhÿÆA;E˨/ë4yøekÛ’ÓÓ]?"0SÛõ£Ð‚ßõ JÓOßõ¬ &S—ÌDq‘>Âz>êvt'Ñ!Ó~^´£%c—$þ2g£û z’dƺg32c›´dMýÅLŠá¥B²R#ÍD¶­nS?Ð|%O 9Õ—•ôµº Û«j]…Ó#ÀÁ:ÝÚ´Þwc¥]žj]m¶ì86ÇL¤H§Õñ©T·Ÿ‡Ã×Wò„G$NA8ÖP §zÆ¡¼­uã’¬Žb4⃠5ð§:Z|ëhQ]¬¡¡Xwî1±R *†c¥À0”©ÇŠ–ëZàµ+ÕñAŸL] XÑ& nÓ$Š¥ߦö¥Ÿ¾Mݬˆ0L)3^kbB6&¦À%ƒ'› Lšc¡2é„U§'št‡¨cÚóçbP!š¼ToŸ þ«&q Vn1*ƒDwµ"O€Õš ¡ÙAðÅl¬Áã½kZÆúŽ•hžìØöl¬êAäâ(æý¦ìw“ÁFH|‘´šUŽQËáÖ;ŠXiøª¯¾ Q=c¹ð¡çap¢&Äóž[ÂNö}çáyß:3Xš7úOq)½¢=IY’õ®“”Má>ë@Hª?u ï_Ϲ#=H†ÑõçÝm?u Ù¸ø^Òm xø¬IéÓW¤\èÌ‹Ü΋l4sî*”†¥/éH¹Ôôu@ôsxsx‰£Ú¼…ª»¥OÖ}B?"Œjé­ñGµy?<ž˜<&öãûáñJæÝƒ]:¼ å ÙOíGÂmä‘~<í¨&«ßkøjæ>ÉQ-Â×Å9j0jšnåž„ô(é²y…€ˆ#ώؓ΋·h„ù³óF .á<½7"Œ÷R‘C™$/"´«á@p÷‰ÄŸ"•;”¦[M(²E¸ú8 € ÿÒBä4b{:¹­E(ÛœtWvâ8§Æ%±,¦•ËR( P¦ÈZ¤¦Rà‡Ã#ÃüA|Œk—;ݽ<ÓÉÆ‹ÒƒžbEòg[DGotÂpG(RJ¦sE´/ ‹¿‹ÇÆPX¿7âÿ^ÂDãcT^2âPR$­rí2â€â‘–‡±¦Ë´-¶Å 1¦)]æG+¢ëKûØ°ÒØ|e¼úÄ”K7ÒâPãæ8àvêEûB¯,ÓK§L´·MB‘âti‹4—-ZbˆëÐxÄÄ-°´ V(|€ö^ü—à¸êÅl>@5æ}R§=ìuõ)„mâDÊ 7:¤Û`8^ôû¦ÝžZø8e ‹#¼¥¼\ôü»Ê­G¤Š åå=ÀÇÀ'Y*ÍB’G?-B«ÿ–‡7˜øoaœÙ‰ÿƒb‹ ‚Ýf„lx…!ʽ<6—´71z‹áƒ4VÏ1þÈ1ÃÔ 2ƒ/rø8?-\ïì&.kÚ‰ïXÙ³ÎË´b6œ÷ò÷RÔù iœú¨i8 ^|Xáæ‚x˜¤â …£mSIP€Q½ÙFк\çÛ‰?¦£¬‰Á©¤åB+ÞðqÙƒ…¸­KyÖp¢³¸ªâ•͉Î5î‚•à´%Ǿl ÃS?m™FN§¥œt¶ŒƒàÜ"ŒÁ¼‘‰±žgO¼G# Q;@“ ouCó4ˆï - ¼%ý¤k92ì6è®·Ò®Aeqēփ£ Y 2FŽLÆñ±âI ºâdÙ€½áÕ=fXÞ‰{Y=öN6bw?bûDsaä JPÙÒYzlÅg•®2L—…ÇåKú€îAÃèdGXÇ81±ˆ¸rºQ¼ÖôAŒ("Ì? é–AqÊ}Žt‘‘rìCq.!3ñƒ‘¿c}1üà ÏÂÀ/ü ÌÑcqÅÍN…•Œg’n1Q‹#É2µº¼Byñ1Žpƒ) *È)æž6X ž•î%Òz7 ¤JiÔËyK²½‚†Á]Oºµ——’6 e®¥å[Ò¥R1„«é¬[¡í±Cª™üaއc&øJYNCÎ8¤O’– Kst „¿jË` c«12´&Î’¡³×xô XRÉÁá0’u!uHÐê€P"ºj;ÀI^=úJjµø-98 Û)™@ýE”ŒEhb ‰3Já~„HÊD\'²°ëýàÜ­²GÉÀ^W G¬LÕµjEÇ@…èõ8ʃÀ˜E«à$ƒëòõ¼û«UrvÔ2¦Ï ]†N¾-ÿQP”J.¬ª¥¡ˆêb6R¹5Š–s„#QR-öŽžª¡ãˆEIjÎ8âÄ$9í%#^9î%d#–f#maÌdÉAOjÄâu¤±¥š)ŽP@%£} 쉕'€BšÒ¤ú]˜T¿#ž+’Õ>à9*éKÕ~u„•ÇjÇ>ÂÕ‘Ok[fð0/ŠÍâ• ”L'4ü¼’C³B+KÆ÷×gÄcV3fh z`U¾¢è•LòF[ÚT=Ù« ¤‡ 94$=œm_¡ôÀ‚RÅÒ+ OüVÏK¢%€Ò;¸ÒW8½Â@ÒXñôJ¯¹ê^ ©ˆz%CT<=˜à3S¯ä ÃôzL3­¨z%Ãt¯ä?oO‰îLXÜi¬ÈzªZÛ°õ3σë=Eþ±±]æÀf† ¼'»Q7#„×-—’ ™ÉÎä®Oºƒ=~Òý—•”ëÆ§\°Mq¤¢ GÀÓ+„­f(! •N7môµºiÓhªpÓ¹baŸŽê3Á­™ªÙ6#Êe«[Î7Ó˜²ã`c”Œ4‡Qò#˜ TÔ4Cï<øJ㙩Ä{Õg‚3e2Q.k†nz^©(væà B ºapÁÊ‚Ò$’—kp4âaú&†•c]I/í£jKÌ$­£¨2 L ²:+‘ f…Æ+‘O‚¹*C‚mL˜8Zvʱa””ù‡³J!‰Z.ó Ȫcê¶-h°‘ Øõ•ª†f,Bu`jRih]¨5À°#T¡šîìâ-"Û3(EKê-±¨EtDi¡_î‚ÅËF¼\VŒ§'^ËI† DÆ7‚,EÑbÌÒžÐ.£”©õÌíòh¤ÁgÇË*ý#ØYgMöÝššÿ,f‹£¥èe^ aˆ~¯Ð¾,è¦h·<©³´¸ùy/­ç‘y¡iN—۽κ8k²ïÖÔüç™CÜY¼Ý”FÅ4›‹AùC.W#´Kiäfž¥éŽCªåTÏ|^h”šØºŽþc\‰g]œ5Ùwkjþ3Í N}¤N’W¯,c#Ô¿zäGh¶•ÏÍÒâ¦$g­Õs0/4‡óº_8/ñÅóÒuqÖdß­©ù÷ÏËásRœ=ZŽÁMhú‚'©"÷uÀª×Œáe˜·ñ‘ÇS7|RGÊÝ•˜÷`e?ß“„§Âð áÙ°ñ=è»ï™‹ÉøÄŽ‹‡ºGzâ>=\ÖÄ‚;ÆÀAöÅöÏîDÆÀÊ…•]N 8Zë’qšÉÈdÍÄ’#2«gc­Èážå¨üTäqcƒÖ`SÉÈmÒÀpÚX‘b 4gÆÉ“aóƉc …>–dŠdzÉà^bD•Z2èWâÂþK *E—ÿ³tdð?F š§r&ª4g U2êÄ8‰vß’Á¤¨Ï´N#·Æ"”æMV­ª “Å t\¡uhÉ`´£Oå5ðÞÆ “vP·èJw;È•}€iôß’)—U衦ÇÖȽœÒ¸µzK`m­~d#~’ë UŸVͼôY]˜ dkÕjt^•‡½’)WkÅÞk€i“´Ìr¾2êoÉÈ}’A ¸Z]èrô”)BäT»*RÊ(µq)F¨ õ“qäè(ŽPÉ[AC¤j 9Ö‰¸Wdà G¦ü壳ï1|äïeXÁý¡’*˜Âðˆ7 ë©|¢œgÛo„绕'°—~ŒðêJ!ð±C­E7–8õìlT¦_:cEÕ5r“\ÉGÈÃV´q3.ËAll ^ÛÌ­œíd3¯ãÃÒÌlâ2ý£•Š€mE£@GY;òšEgÇËØ/»A°ì2B9šõÂ줆Ëcœ1òw<ĉ2Š~ÌÎ>T >îdX:¹pdø5;qÞ.R~iÍòŽ™1o* ~\„w'ocÐÎ 8 œØÌòòàdÆ>"Í ËxEq„®F:"=êA‡zö¢de(q¶´Ì4R‚šMh+£ý㔑cPÒ…h8¹e<Îñ? -ºq^Óžp}’¥Èu`û/~Ï^FÞbKz^Œ—õIåt¤Ïx]7².(~½Gä.#'°F°·2FàD¤wЏ*c“·¡Œcbèé+wˆR)ž— ¾—-”˜-ÄÄÝ Š'±²¬‘ýõ€µŒ[¿•Ô²¡A’¬ì¨B­(p2îæVGèÀ¬¨½GȨV MÇ!‚7Š1äÏ+ã#î{Ö’ùÐ {o+ªšo5Ö‹5çri}’ëRàI—kA™$„Þ@?o‡3xÕypÉ“B b¼;ÂüÔ _ J: É@E:‚•̨™JL>bãîÓIf 2Â!@JŒ¾  &++‚-ƒQ‡¥:y“Ge01Y4'ÔfÙö FÑ/(7ŒêͼæBQ%5@WcôégE2ú¤3@KŽ«½paytÊŸAÉ—O– \CU‚૲q„ñ ðZ#Æj"+ Ì’ÁN0ê B™ÃZ£" ˆ² *é Š?i`»b¸]2ÔêP8ì&©6,Ö«p4[E?-^éerhAÉi÷ðLnϳœØÒ!5^6¸XÁ:.™rÆmƱǀØK÷ °Xq8?+æ¼%C¯AÔðdà ­PH…í0p¡qFÐàæLÐÊä9Õ¼xÃ8…ÌEÚk àU®Ép* HFA9a½\2NW“Æ]NÞ5úŒX2kFUjƶeÃ=%qÉá­>`«@Eõ‰†w…N ã.[FtVDÜÉÆ@V5[É€™yÑMZ¼#:/ÆôÈ¡\ÖrX¡ ŠO‹h .X­.šj]W20¹Pàœ’› äŽ%# }´¶°ªrÑk³Lì’TÑN¬mP ZˆEËŸ<ím4ƒkGµ¬ÅƒŒ»ø’ÁÖÊâóQr!Z:7ò\– 1P·PÃÁ‡£€F68¤ %‡‰’ü”iaCá§d`%c¤w&Ñ.H±äaì¦3ià â iYu‘ úvÉÀ¶FÀèKvzVFÁóæ­øßXE/o ¨cÈH Ö<5ãú_,kÐ>Ð(GÀç­¬Ò”¡ PÍV'茷^û€Ç./G¬Ì* 3äU2ü(JïM‡äÅÇ`5½ Î%Sgä#†CtÚWÜ–¼ͼ–¹š§X\-–Þ 4rY?4«y€‡÷YôïP ‘DÔ²™6*^´¼´ YkH4Sä'`™yÁS.+‚I‰ú¶Y,K1»ùf  ôI%`HF$|f`ÉGQ…\¶rÚX³Ïõu€Ó__(< ì’fB³¼­>æùqÐW:Xª{†<ày1 -T.ޏxL‰Èh 0éuºð²âǧw>?ê)pÃð‚êôræŽg±»»œ2A§Vxúp "'wd`“gkDÄéè ¸ 6´î ú‚HÁ=ƒÎ0Œ÷j 0º‹Âš‘ƒ¯¾²ÐòVŒ*kF_Hq w≠̆\ûsÝZÝ©¤d@ðFÝix`scÐ Ö•¶ Ü'XÁÆÉÝæW29©.6$ c³¾dái°Pý –wVŸ¿h;fõI fÞÖsÀ“4è*ÓzS$‡r^h¢®5@XöN›¥©K2>H·ÞeI¼Jyq.‡À"»BÖŬlpƒÇ)/ÆÚÈ ˜°f+å^wnwž?f§á”ÂüΓÇA–wúVì†yÌÀºÒ)¡/¤•Cá™ðíÂ.Ÿ”Ãc´£fh–…Ù@q¢u‰jÐÇpªÄ‡L‰Œ#(»Â’+k¥e¦  X*¼*—„íŸQ¦D£oS9u‚wÒ_hÏ)ïS¼3¡G ž<@ž¤,ɹ¼'^Rþë‹÷,ï´:ÒªJW-ùK ú kÇÃË=®d¼©¶%C»e¥iw?/˜]%C3¿AËÁ»B Ê,ž}îB2 ž£Î\m|Ö™$ËËù’}l–Ól©ÎÏ˨\Ò‚DÓ"Z~Šb*=eäøYè|]Md €™-7v?Ƀl˹—?pSÐsð ¼d~£ò 7*ÿ‡é³ó_W$§š%kæzÖÀœZb¨üð*ÀÞy¡?†š/š H4 Îòý,²ÊžôZ?r“œ$AÈyQk€ÖD|:‘7ÔŒ©fÔ5“j.V…\J]ª5PJ3µ¡zM wÍ&W$7:Ìè]¡ïên½õˆrü`uò°•ôPòæâ‡¨ó€IVkLJº0žrž®E½6‘ ÓQ@SáåÛò~RI9oÞM5ÜÁ¢ˆ²TÜz«[èúªÜhªmvÉЮW%)Ê-‚ÆiáR‹c­û6´^À,5%^^»K„Fpý‘)¯^K±Jä%§r¡¼k_GÞZà ñi¤¡*ß°”btÚÆçÚñàÛy¹X‰4]qBë<€ Žu…1šÆLzñ9v°ª×L¡ùaH* Bv Jc ¨SêÉ*L1˜&s{˜Ük …6#Š~l±äl­Ïá«G±ó5³xˆ¸ÿñ&bøÄ ”©Œ#t9e„ž1Þ–J63¬P¨¿ &‘Xh¶BVÑ×¢|Èh¯¼øá0ã²ËiÆ"´˜A”"ñ–€±oô(‰”oÑZV 9KÖ²z¬,dìhŒö¨Ñ(c†æ/ê¡::Zåpzß±DE¶±²*ØïZ%垣ӽÁÉ1µ°÷‹Î…vËjýŽ+")KÃ?º ×R˜„J,áËÑéu“a)]¬×RØ1×rPN¬¶ ÌRk ðÓˆNw»¥Õ¶Sî„÷¥(zˆ¨N%Ã?£ƒI‰„öY¨$½Nèe0§‹™uRÜd:ß«Ø`²D´±z—%’uj•òĨwOðqq¾—3kšM9©ŸâPã,2úKjÄT\ì•ˉ¼ð²XÝàA©­¸M ‡¥­rC\ßbÖô%æzJ¡mÛsfè®;h(Ò•RÃú-fã#Oyâ².%!Œð•ë¸OiÎâXÉNa""ãˆø¥\j²0êê!@šœ8f8Ûel•{*ÔŸŪ}„3V›å«seb­!óÄ)mÇÜW CbÔ©OŠVù"ƒ¾9k+çÁ^õ•o„‰Û çE… P­(ØÐ}"(•©{«ì…ˆÀLEñ÷²°5Ç––ño ú¨¿`%}TÎçèU=óÔèUÞ€•]ôJýúSñ1Èh]u±VfX>/Ѩ ;c"iŒº–bƒ£É¡ »C U(¢e¬¢=O˜U*ÆhfªÐ±ì°¡Ê£8ËV[ʬAÔ6K(6ý%5äZÉ`F\P{ä‚ÉYøÉD*-A¼¬«%H tˆ€AWÏÁd6 ¤SÉX†u’qtQñ’X{ý%ÐeÐH\døÌåYúR¢KŠ® 5^v»Ã½/JàJdB5ƒ|‘¬4£ÊÍEßý¤G¤æÆ— ýB& !2V2r­6ÊX7ÐT]*8¹\ø-´j¡’9 CÇ dÎBô Yžv!ë+t˜|g9Œõž™%J07”Óµ‡º ŒƒÖ0€þåLˆ÷9º<±½"Z[ý ™qhå¢ Ü¬A#ç!ƒ_F[û€STGhj9°1Àø£S;²gë=“‘¬ŠAx¹ŠV;$ñ8“‰D6mÕBZÂµÔ 2 $£ª$-¢ÓÞyR0¯Ò¥«3éPVOHTôõ^NÒäô&IŒ:I%Ôˤ'ðŠ QiO3*Š[‰óÐjpŠg³¨•§Z§Hµ|*ÇcT™ÈW?Eeˆ–Qr¨CâmÈ „\5ÿô)Q¹ ZÙ8ªéªL²Àbúá"¥ªz®EUÆà$Ž®nÃDï•FÓ'ÄÏÇ[=|ŠÌq˜ì‹j†ï99Œ“}AЫ}Í ª}QFŒf_”ñ°]í‹2×j_”¡µ¬öE6>Õ¾ˆv;ˆ xÕ¾(?ÙÑ8¡ÚeDl¬öEñ@š}Qy®öE0Õ¾(ƒVû¢Œ ^틈 Øì‹2ð¼ª}Q†#oµ/ʰ\¨öE™ÀÔ¾(ãá¢Ù1¾Xµ/ʸRUû¢ "_í‹ò0LöE4‘oöED ¬öE´ô¯öE iµ/J€gªöE g³/JàÒÕ¾ˆƒÕ¾(…<Ù%œ¼j_DìÀf_T®.“}ƪ}±«uq¸ª}Qò¶³/"[5)"Ô”I“}Qr!t7:BµìØLŒÈ×lŒ ̓ÕÈÛdedèO«fF%ã›ÍÐÈ0Ú»Z•Œ™L ½ÈÔ4¡d†flTöˆoÖF†lXÍ CÃT{#ÈÈÍà¨d†fqq·™ájÞlް'£#Ü¿›Õ‘!†š•ÌÐìŽ €AS6Y•ÛÅØL cáªí‘!Rã#Ãè¹j}„ã1™††Uû£’1Í©ÜOÆf…S3A2 ~]mJÎ6#$\jš’a(`WcHäÔì º› ‘ Új–H%ã›)Rɸf‹„L3F*;Y#!×Ì‘ ¥ˆj„Ü'$ Œ¸Z$µŒN–o6I†QuÕ( ™f•„Ìd–„\³K*× “ ãõªe’a _5M­q²MB®'!Ó¬“°zÍ< ™fŸ$ëZ ”ô§ºWÓL” %µQ2T}¨‘’vU­”t´"Ÿa?5;¥’ÉÍP©ìÁ¡Y*aCN¦J†ø-j«e3V2 ܬÖJ†65WB'{%CyG – olj±s3Y2cÔf©?3-á06«¥’‰Íl ÷ù4ø‹©á’aèÜj¹d® ¦K ÍvÉÐa]— pÕzÉðjPÍ— ƒ|«ý’¡®0F²R &CMƒš0«6LÈMFL=‰ú˜Ýž±,ÕŠ‰ñcªSÆ›Mµb¢»bµbʸ'V+&z6+&Æ™©VLâUªVL¯~ÕŠ)ãq¾Z1eÀÿ4+¦ ¼ŽjÅ”Á ªS†.«Z1e(¡ªSf ÝjÅ”ñ2W­˜2¼I«S†Z­˜2ÔnÕŠ)ãa Y1Q²©VLŒS­˜rt“­«Ñk›Í÷ªS¾OµbÊÐ`W+&ÂÒV+&±Ú«VLb·§VL“X­˜2DÒjÅ”ñ8T­˜2šSÆ[_µbʸæV+¦ ÏjÅ4F­˜FâÍT+¦‘0jÅ4ÇF­˜F"¨mi«Ó8øÎŠiüdÅDÌÛjÅ4‚¢T+&ɨÓ2Û¬˜Fâͨ“fBŸ‰±Ë¨k¸fÔŠ©fÃËù)ªÃ¢8s¦"kã8c+ts ‰›f MÜ$ƒn*'+ŒQ„K8¢šŠÍ ·S£»‘"›i@º05 {Êx±¼ðVc+*+¯òÞêelEý]·U&Åñ0J9x ðª ¸k0¯àϸ¨w.£Ã¯[“qša¦db\O}M uvPqœãs* n-ÉIÅ·¡©Äer€Å¡ÈÙäA Ä ‰²ú‚&øÏU†”Ä@±©ÍgU EüDk¬JÖ™"|]Me£'3¨°È°ß¶ŠhMhTø¥5¡UŸØ)+-Þá*K¸¸X«8÷x/ªü-áÂlk°í„G&ë U¨N…¹Å¥¢ ÌÕN¸`'YW31˜µîIš×…A°i›or6×Û i%úò‘¨Ju-¹ u>TY“½sú舎CòL]‚žâ>Ü)ÜB IE‡–Þ¹vOÜSDèHr¢{$Û¹:ý¨Û+®7–ŒáÚj:¯72\®œWh¼ ;¯Ç#˜"ra§à=¹®&,\ÐʉÕ꾡5 2$*j(ôA Þ^´Cøáç/ŒÞ÷àó—…l›}n>>¼ä{y&–@4 nAs$£h¤Ø£™è¦ÊSmQ<ŒI]äfÒ­—Í™÷õa»³î}Π9¬±¢á¼Ô 9’Ñ@4RìÑ :[ƒ×Lµ=6I-h'éåAsæ}}Øî¬{Ÿ3hk¬1V8/5ŒL’ÆX‘†Í ³5.ËTÛc“ÔâÁp’^fÞ×íκ÷YcTI­G&Iµh’Q")öh&º)ÌôTÛ£“T# É$½8²Ð¼¯Ûuï3F"4P‘ a³N-g©JxÕq¢¦bà'Á:giÃò4Þ›ê™ÏN_°£ì $’í çfÖžɾ+]óŸe^ØpÀUïr`²‚ ªÂ` ÚÄVªg>/z‹P$hÌKÀÛCñekÖžÉYW¦æ?˼Àª¶ÈÐñ,:â¬f°ˆObÕ|s ¨!WŒƒ úØ>Õ6Ÿž"Ûb«XÙ7@‘ ²‹^2A‡}íÛõ¨ëÄç™$¼¤/n8—Ô—5¨&j0° F,6`S,(ž3x•T7€©¶ƒI²xC JyàOSª2úƒ¾ÎÚõ¨ëÄç!ÏФŒŸ]lócVMíÄHºÓßæÆÈkmWÛyÎ"*£§ C#8¼€<Ïû:owÖ½©Ÿk’Â[^€NJbX2„-tú<Æ}1<ÌàѾtO;[k{l’{£MR²/åaó¾ÎÛuoêÄgš¤È˜ÑÂ<3žÄ³>UIfæ)ÅÍŒFSÚ/æ!£ç$UX•ò ؾyñ$Íûú ÝY÷Ìg !˜ñ"qŸÈ#´d9تÎ2ˬø|91¬—³3œK/ºŽ©¶G')é僺¬ì_zù˜õõ ÝY÷¦N¼h’ì³÷´»†b¿›ƒ<R>Þè%¬,º€ŒÆ‡­YO‡iäõ}ªç€÷C¹G¾ô¹¤@»†AÚœ•Ðè ><¡TE¿Ï°çQÞÐõ*€­&Ñ#˜/&/QÌ“ظ¼ì¤ '2ô6\HSTmÄnJ|Èà<º'Oè·ü­H=¨HôB¦ÑIpw^,SL uÈY‚|ES^†FB:•Bˆv8Iâ hìR’Gþ7•$Þe^9ŠI‹@A€,i"áIT#a!%‚!¤@[3¬¤àÖE¢Û‰¡FÄ{²¢=F˽£ã]!‰i6ãmä¡hq¢SŠî#Ã^Îw|·ƒûÝíæÏy؈˜ •ç¥H7:Ù$*&,áüa:æÈhªg~Øø'ØiHW˜d ÕR5"øA”×숇(~gÆ'1‹Á- ,ƒ! h­Ã õTÉ%^E£;E ÆQÞU£#~±,¹›€e£#¶²¢àñ—­ ÇÜK\ š ‰Â2zh’øžSdZ8|jˆ‰­t„oˆ6´=Ž ÈÎyÀ"<ŠxŠQAk¯ÎÉæÕ?u²©SbÐ(QôÕR”³‹õ!›°ß ó•íW¿­ògÜ„ðrA,@ki] »ì¤.e†ãz+*zP_ŠY†v¹rjºÚvCÀºñ8‘1’Ï>ŒØÂ"UÓb¼j)p5¼÷Ð55œ4ÈÖ äx5Lƒ8\¶ðü— ½¸ý"Sr-+W3aK¶¡æß$@ƒºƒ8Ö­ÁxB” j€jú‰ÌFLß Þ]Z ŒmXëöÒª†{_{„ kо2^à Æé­ÓP½ÈíÔÐàÑ£MlÈA™Æî¦B€‹)¶n8µ !µ¤3ä*à>70q«Á5Áž³Î8¯·¿6Ù|ÃÌöÕ´{>燙³Êøjw™Œ^ôdy«ËX˜@<dˆXnÔó£Õv¸ÇɇLg;Ó5jΨ®F—Æ#ÙèrBÚ©ÃÜÙ¨³-I²Q“5í0¡U=cñ¾™ë†ŒkìÇêdf™¶ù(§®r‘”«{x½zÓÜ.ÕQÁx+Ð,ìÀÉ5ãCCu&6AR? “)!Tßý‘ ¶ê&Z„ULºú\ B_J17Uc<Š» DEbPVRj`ñ.ùÖ$  w´:u SY¦XA@|Ô‘ÛÂX0µÜ 4_ˆÅñ¢Wµ75\óê“ ÀoïÕñ‘P½©Ð¼àé>ÅrÕSFT À+Ž;:ÕjLb9hiG—Ä(Û.¶h¬°SƵ7ÔàÍÍG =b¶¹gÛ¾Ûér/Ö»õr}uº_žmÎïvëÿZþVÿ¼¿]ínëË7·ËÓõMù×ß‘ðïÉbèY$ Z­œ‘C™ÞÖ´ÆÎ2r|¤»¥kiiØç‹Síoß\EÆ”å%@»\…µ”4ã?ký¡Ç‘±h¯´â"RÐr<&¾JÀn¦FûÐŒÜõ˜¸¿¨× ¨MÚk¦·5-xxRF 9_ÖëBölë53Û–Q´&)&úËz ¯éÚkñ Ö´ks-é—ö:—§öš™Úëló4×’ya¯i[¦½fz[Ӧ͵¤_Ük܆[¯Çqšë¬ac´XxÑ\{}¢'h'I[nD)cã‹*&‚y "oIú *8¦½ôŸe$ý‚éÈ4šêšƒ˜ÓkF,C´ØËè C‚ÄѸ$²ˆ«A54£Ž®R̽ŒN2 °QÛ)o© !"Å^Øs@žUöb‰Ô¦üE3A Yì…†øßêMBIÀˆâZÒr½’2j'øÁSâðÁn.á+bCE¾ÑŒÚãK1ÿÂÊGâàXB …RS3NC °˜ó/šXéSÐ%Ý l}ҌޥØð²ÃDšØ¼â¹Ù˜©;/T8K)¼°çVÒó±Þ¶jF¤f-&~<ç>Ú¶U cJê^ÑŒl-ö!»å¡¨÷|goö¿»:]ìö‹ýÅõ7«óõâ—¿üónµÙ®w‹_þ+‚é/K‰o¯Oî.×W·‹å¯PÃÍúd³Úâuœ?ËÕò»o¾c­Ç…“¼;òßÃvš?Þ/þôíæävùn}¾¹ZþÃÛ?¡‹Eû}µœ’Eÿ…E—ï/ú—¯ÿu³þ±üçü_ÿßòÝ¿þíëo×ûÛ呌ô­?^žüýjùõ·¿ûÓŸ—7§g—«Ýóª·›U‘’/ÏŽ®ÏŽ/Žn/ÖÇçG7«Ýj»]oË_O®/oînW·›ë«òs)sÎ2‹£ýÅn¯wǧøûæhUŠ—ºn.J™ÓÍþÍ1' —©û£ÛÝæÝÝíúôغŻ£ÕÉîz¿?^]ßíÊ—7»ëãÝÑÉz¿¿Þí¿*w|utjGÖ¥#«Ý~}µ¹:?>_A4?þ¾|¿=-yƒì›Ó»›íæDºŠ¦ñ¤\šÞ\•ŠÐç³£íj[:W¤üóui§ÔsYºÛÞnÞì×ÿ~·¾*¹Û²Ì¥L?îs÷æjÃ/Ð­Û ~ÚŸ-JÝ+ÔºÚaê¶Iéô½ôÑï1ÀíõÕy¹ ¾;z·:)-ýPjZ]¢»õ_ã¯ÊïeޝJO×/Ö»û’ì'ç+ý„ uÕ¯ÔzqtwÕÏúÌà‚wÏ 8-óº;ZsÚÐXù𮌽 ¥˜Ó·Ç°h´P½ß/ÅÝV·ÿ°üÕvû“üç úË_Ýí~‚)÷ˆY<.µûq³üU¹~éWå<ý•ÔõÍòæßÎþí]ÇÛõM¹‘ý—?þéͯO¯ß­ßØ·ÃòwüÓwHàTnn·ëoÊ¥¬¬qÉþv·Ævû‡Ùž®ÿ¾ü×õn_F°toíò«Û“‹íúïëí2¼Ymo.V¡~RŠ|»º-ýùânùíúd ðQû;Ýú0ÄRð;Ô{³Þ®Ïw›«_½+˵<ún·*³Ù/ÿø»üÇßý·ùý?ýþc)s…M÷›ëŸ¾YÂÕÓPf`ñË?¬Î¯6gº¿!=¡&¿½¾ÄÐ÷‹¯IxŽAÛN‘8]Ÿ-¦?s»ü×—·»Ÿ–—«r„~Z–=¹øºP»7fùs»âþçòÝæê”Õ|ÍkîÏr)íÿÝïÎß”3óræ©r¶–3Ï×çæåž¬Ï/6Ò¿0/÷d}±–{OÿҼܓõåÃùÃËÚ#åÆÃr€â~lž,¸ãc¹"pæ)EÌ3=4vª{z‰ÝT½{º Ÿ ¢wO ‡M?1;åP4ýÔô¤Ã¦Ÿš.Ì4Þ§ûÈ•™ÆûdAË•™ÆûtAsØô£¶ö°é'FmÝaÓOŒÚre‹˜ç–Ðre"w‚B<]+“XðÈOLÓ íßÇ æ© tÿ>Vpœ Jðïc´d˜ æ\ÿ}¬ é ú'³€à³_ý½H™ë¡m_Â;¦Üv®ÿ¾¾½&‡ Z’#v*³%{²½†ÌS¾†.}©U-Þ”É~ë§ú6.o ÏØo ·Yh¨Õv½(½YþÜ>ïGPDÕŸ××g›í¶ÿk‘^>ßF}½[Ïþ¾/Ç8ú?îWËŸÿ¶+ù~»üYÆÒÿñrù³Ìì‚ò×ÝÃ?_-ÖaÏzP:p»»þaÞ­‹ò×"aÏþ¶=)\ߢ'«›ùOß·Ÿ¾¿Þ\Íû±ýöãæô ñ²Ôüµü·ì‡ëÝl×·e×EŽ›÷ ÝÀÒÌþxÊjNWûYýge…ÎJîìúêvVüŒÅüùäLë~ðËœ¦"9<ÃmYï¶sf?\•þ¹v‰ÿ?¹ÛíŠ QǹX.ýò]YeËßÍrýÓÉÅr÷né°ùøÃåÝv¹:=}½ÂrÖÊ'ýÒŸ>Ùë®fT0ËÍÚůǸÜf:/Ÿ¿øºœëÕÕùv-ýC™_|Mþƒ¿ÞïV§}þ§ƒüýìÇY}ål©ôEIL¤b™ŸŠ \Öu²¡²Á@T̲ïLíëjw²øE£‹_t ” %©Å/þS(—È‹”Ÿ—?‰Ë¯õ:K±ýOØåKT†/åóZàT¿UŽicS[ CéòrSÊo7å?òæ±”7PÙ¨ “ÿÝŸ,~YîÛå>¼¼~÷ýúo(e¯äŸßûº†'ÁMÛ-[@8° zq%íóg勊€€ —SF¼­F2š˜Q@"©[äH,Áêuõi¨î…x3 Yá4×7dõß*·‚ •Œ~­5hT@Ž‘ CŠÁ€ö ‰jœ3d"Á„[ƒÁ“õÆdÄe‰ÿ LS2‚¡B;Þ2ÔF«a•ùj­zcò…¢yÈüOç੊ßGdš/¥@–©&:¤š³ìÖX}³Õlˆ1­êsáC&CK!=ˆÂ§^uf$>Ÿâv «!éLâ2u¸c\ö Óo`oÓ2C÷Ë0²q‹O€g”q@ºê`È0ýˆôâÉžàö4ø¦è¸â{0˜{7ÒÈ`î 3Ãpï´êaF°ä 3X}T‚ÄPß©ºðïk˜bªø&uç'Þ__Èðw1‹÷*ÁâbVøA7ëî(pDš‘5˜vÄ#°ÚN¿ˆkf„ ¾ÚnCªž±NziP>Xc…t@Äl:€W’Q¼X¢¤Š1ýúö+ØÉêÐáEž¬~E² zc±Å&Æ, Ý&Œ¨\#»˜$ÝâºÌæg/YQC'å9ƃ?Ä…Œ.35#}‹pôYá4`V¡ˆd˜¬,‹ #П3l I¦?à(ºš!V©Vg@Dpˆ£q¨°"<ƒNq4‡ÚÁ'«¿Œ€'K­ºhêNƒBT·d‚ÇD…"¸b´±bÌàsÐL$„˜QвωÓ4ÁÍ÷Ðà/z…6çy¬ÈXœB›=-„QñpØ©ËÓ‡Å[ØÅ{9zÆ€õ: T1F=ôÓT|Àqyr‰±ìBzø¨râ“hº¤1éžÆéb¸*`å˜*òf2=qùrÍÕóü1;-E÷Ì÷¿’‰V¼šcuÜ'>fEu"`£'7òHdœ…ú‘Ç ©X¨0 Â7\u ‡-¦S¼8jWPE°`Ã)¤ž°¢SWhZò©/i^ýÃS!=h¥«€–` øI!±ˆ‚*s½¬|dJý‚ð\ôU¼-Z7(¸ñ c&µh2 ØE?Ýí´…Š ¶T¨4Œ„m3Ö¹bà XTXLÕQã6gKKIî’‘ÖBŒ†‚úMçÔ¸/YÉXíâ[%£À´ÕQ̯lIàŒ‚ÁL©Â¯Áã5Ù: `!%E ÊXp‚iµŒ«5Œx½”iÕŒ«ð*’KÝOê_sæ#`2 ôŽKf2 öUˆ\H j£¦ä!ÁBj’~‰*AmCÈ_¨¡ò M¦¬¤¹ŠaBÅ d ¹ F­$½9èGèwn²å 4ÎS³’Ô…sªxm’ 2<ìÉ)òpA“«Ä`jÉ-Çøß m¬¤HН’¯uÃÇÆ+¤a²tÿ¯+Ã8Üb¹òd¤vؤdžèQÎ3Ϻ„€BFlRÀBV/k‚®‹M¦v“¢Å.˜+(¬¸c;©FÝ5à,d]} GÂT¬50'2 !&üX›Å üX«ÃÛü(w¢—ÉõŒ5PFpG­J­~íy¬ðK™K´ @¼œG±pÖçn@ö #ÕÁl)jä…=ÕVÜ2Š‘<èk´%à•¯ï~Ú¤;[CÝåÂÖîIÚïÍUˆyön¨è×è7€dlcÊt CvÊýÚj³™+ë/Î4ôYL²©€³F€±ÕÔ‚k¡(ð¦Bf×bN…Ù‚®º„îµèë* ”#ô0¡Ëãõ8Xä8]F ‚F:º,Ýdº@¤”å€ò¶ #ñb5°ß˜*t¼¡sŒ®Ï„.Ü^ƒôàjF=$\õ¤3ÄÍ‘4ô!}rR-—œÕÑúvG,û¤ãƒÖ<&«3 ¹&Õ¸ÎÀn‹ÉèäID¨c¾µ>@£“@xaI‡P@Ã*ˆŠª§/3¬A6!•bI›0l1)Î&|Ë!i%ýÉ6Ï^)§×Y;¬×iÝ_Ö[´Baügd\“ÕˆþsаôæeF¬RVÖkx“Ïj77Òá@ˆµyW†(¸ë£¨¤,:Ös1RöÓ ?R*T<ÉÄQC;æÑL¿PÍ3*®Š^)Ô‘pré‹‚˜anM”4#­pÏ‹Öͪ7¤_+‹[ÈFRn$Ñ5èй• ¹Foˆ ëáÕÇ1•‚‚º¤Ü&Âé) ²íÿEMá×V®Aw¹dˆ‘®²,ÙœjéE%0(qJ£øˆD'D¡öâå(AH"ÅêX}VÇ)íº¿Û¡)ZA2˜;¥Aÿk:°"u¨FZ.zT1Å(ÞCœp“ÄDñ´æ…;‰k.–* »çÚ+ ÀùTÄö tAf ‡ÄóáÚå¨TÉÕ9U f@”–(ý¨Qd¶@Î(âR€þ3I$³‹Î4H˸ø¨y{p,ÃËJþ~2\&à’$JOk¸|¸½$Е— ê®JI!úƒáE›l"Ò¶$i\¨a .Ï$Áz‰nœÁ—ÄËð4Mègð¦$¸–¾CNæò`r¢Zb¸'ÞC$ƒ/>R±p\ÂȈ–5dxëÍ’Æ©7úw_週Å»05šRÀµµÈÔ2}ž¡”™ÊQöÓ{K¶wô@¹óXÓ^ÖÄQÞÕ³x KË®¾t°K*¨‰éeÍÅe\I d ÛÇM—ß@¹ÏmËD¡ÞX–QÂtD‘ðA Á šOýÿ£úÅ{J€Q\þ¡ ‹º¡y$²A€˜J|`²1ÉÇŒ•¤5FÂ`ðD%ÜТDŽUøž ÁXC!K¼ö/ÄÒm(2åv¼èOâGlŸÈÛŽsâUNåƒz•3<”¨„+·sB}%Ž84#Z…©&JPîbvMµ1Ë“).n~ÑJëcÓgDR/îó#µâ¢5Rù(~Ød&ÂÞéà, ­2‡Œî²ÒŠÌ5Ô7%>t¨Ú™š"¡¾ ÈM$Ždޤ²‰Œ"!¶BL^Œâ)çKE ,•î%ñh–ë(> ¸åÅYk+Š·(®DÒOƒPŸ$.À¼@R‘Í89¾¸8©ª;£eà÷g/>áÂUúÅè1,ø¢ÄÎKâC…B ®¯˜ ‘¹/ªC 55Íã“5ÉRIÚKÀš§D”ª™—‡¤à¤jn3ÕBPo­JÆnRaÁUA’P5±‹J%v2hH=¢~ˆ0´RíCÄX«òA3I°#²©ªJJ0#ÖLT¤W½E“xjTëá£J*üTçÀHpUå©VI—Q8ð’®úB¦«º!‚„Wm5ŒªlˆP.«®!Z†©‘c„ Õ4DRdU4D„ÌV=Cäó®¨äiG´ ‘”W” ÜTu ŒL£Z…èÖIÓhM ¤JÎ#˜_U/D mg¤£zÓä-Ñ-ÈßEµ XªY`Ø:U,þTI›GÕ eæSÕ*ÈÌ«RA¤5Ñ)ð¡EU QÔž^7ÓDC nªOˆä[¢N༩6!ò9\” Ñš±ê4-L’R®jd©D‘ ë)²—¬¹0¾üT-Bܪ*( «A„Ò¤˜:xN0Ã6Cš©þ€ª>ˆäÚ²§þU°Ìªî Lb¬ª‘ŸEs?–8t'.·ª b÷q¾eZZBGE@¦!Œ0„¢j ~CA¯U_áë£ê®¤j b óLÚ² UWÀ°‚Jœié š‚ "×dšž "„Šª (\è…?*P¬(Gíï¢< sãô—¡Șƒîg^ûu©èÈ*j€|UÝ@$5Õÿª`ð³ª(kè«^€ÐT-À1«V€ç@•ÑÇ«N œE`>žªF€Fªà­Hõ‘øª ej!J•ÑnUQU”ƪ& Y\Ò=_—*T5@Ä-_µ|®J€HŒ ÑpT édž$“*1Öû?ÙŠ^ÿ#•ÿzû'OzÁå_´Ÿïöol å“¸½iFvfPòbmƒÄWÍšqU€ÌÐt%'Vµå~ÑáÛÀøªV«c|U¯¿ØÔ%g‹+H{¢ (ûû]tF†©‘‰%MQm€‘_  o=cªEÍHAùˆÏ=¢(>›«¾‡ÁàT'`, ¶(€ïªVÀ0ä’ª aÝ«^À ¶|SC[‘7)Eƒª€GFUòH›(IÃЄúÒ%ªp5 mnT]_Ô£>XP›>8Ī"€îºéTwÝ2C÷ Ÿø«=’-„êZ“ºL0]Fô Ò¡H>}&~¿* £U«¶ dø‘ª_ÅØBÕç\ÍX߈¼T5ÏdÕIûÊpy¢3(×@Õ¤J>²Ã\l@ÕWµAÉ`iÕòɪG%C-­h‡‘àJúÒ2xDu%CÌ éÃEºv’a1yë2Í›D`Àß«¡dB%‡È@O¨Ñ/<ÏÔ‡Á!æÔ”%G©(›"¶‰¡d¨x37À|D %C%ZÙ B/Ee>àjZÄ%PeBɤXµ ȸ¦N@Î6}ræ} …WÄÞ0–JÕœ3à‡ Ï’Q¼f)–†ºSEÄ5u„Ø™ÔI2@йñE~¯#™X\Nãkf«í8K½¸ßDÛ¯uûƒº™©“ÂbTùG­ ž²Ê33»L²dÔ>ÔxjÜÇ:+d·Q3`ÊúÈèåZ]¼*0ŒL+¯Ïº^´Á…÷šÁyq•Ø€7«Å„dÔ@Æ xA5‘(G«³ú&^rÔüYíÊ™Ú!\²õ¹—ÉÔê(si€b/%£Ü£Ï;Øg4 aFмjÆ*ׂTDI‰®(è‹”A~œØsZÍ8uíf ¸˜¨ÁŠá5h¬€çb­í~©"€_n5ØfLa)pí®dY#ÅCŸÎi¸Zmòg vÇ!ŤïM¸[·H Ž&wJÃÉDT+ "±áä 5t(2F¤(É@¤Ò‡G•œÕÕÔÐ f ­FßeRî2ÑL5ð‚·¨•}bb³AŸØ;_§Ÿ¢Dê†äÕhË0Žh}—r'¦ùªoY ýêô³9“ e¡FÆLOì{\]MOSMÍ8/v„RŒ”Õ’ïÚZ„}¹3¸hGʰ@…Õ -?ÙÉ>eµ1548®/“DW^5§g˜ u_·nP\#‡Ö¡ªTfh)›t(uímôõµ\”,úŒ'ŠŸjr!Á‰Cj{2H8eY³f‡EpÈ*¡ÁÂ5P½ºXLY÷£%äB%£´Q¦Û›£åË„WálR•:ɧ¼šX 7©%—urÒêh#õZ‰(gq8i„$5@y¨†Ó–ÚC+ç‘á„UKˆ å R:ß–õI›Í’Æ8RÀ;_3®Â†!C25§5@u¨Ö0ú“ïËõ5è ¹´Þ\/†oö£v/U„Od|–49Ê,±ór½ ð|gí8©ŠàÈɤĬ¯ÓB—’Î1Îpj× Æëv:“É6úÅà×1Ö…‰ÔãÔ )Ö¨5ÊâuÍ\»X›JìdÃ0Oâ#ÁŒÕØä Ý1´ýàDÿÂŒm pC¬7^÷%cå S/IT¦×ÍK]u'ØVÚ!̱KUì *¿Ö0 ræÍjŒõÆ0ÄlÔ°® >n‰uÔR²›&ãG¹¨ÕmhùÆk´¡µp:S/¬–Áêu?X†±÷zïc€ûZ]àcSýŪ.tÑr:_’Q{~4H|U+ÚT×54¨ ¹ôaÐ{$¼,˜ëÝ7訣HŒ=®ÅrÔw7Ö0B#­Sú êff£[`k˜t ¬T(VºT³éºôQ2 yRŠŸÉ€ƒÛ+Á' ¬>à€:J¹ö•}ꫯÿ¼¹\ïßüËõåêjyv†Y¦„{r¶ÜŸ-€ëdŸ]œS]x—G<ÖJ. A9¬¤:³J¼U]ò¼’aVÉ!”Ñ0v0úïÂd(õܨ¥\ûÊ>õÕ{FÍŸ:jçªuÞ¼÷Ô¨ŸÂ÷æc~ŸFÍlk&ø ôT†Xzqè~‰£x±IÐh^T%/pÐ×íκ?_´€ÑRe»#N¤rIK«Ræ‘tpm¨S=óÙɪ`âäðæùâ¹™uñA“}·>|^>îòùAt‡(ƒ€þôlT—¥E½ ‰<ù¬]³¼4µ*\W }Üû«ƒ y/†®ŠøU¸(oäµ¢Ê_ÔŸÆ«"™®S¸­$ûþ*XÎëéêºñ¼ Ѱ.‚Mbë¥V{ôxxÿ"° êt©BŒÞ[¹qè{1Ö*Ä´êýU8‚Ñ?Z%­ñꨋ@0¦y°ó±]7>GÒi{22…2D_Âcû‘ƒþLØGVI[ÃÏV¥¥öè>{•Ã笒º%¾ |¾*…ž¹Ï^¥ÉŸ{༠|æ*ýçïeüü½LŸ¿—ãgïåç=F¢Ü¸Ï^¥û¬dÃäÏ} ­ùìdƒ½ü¼Rªü¬RîÞŸõ@J•Ÿõ@Z÷Ù¤T9~ö^~fÉ*íg_ñÏp _ÙÕÂÁsÕ`]íòÝQøæÞsüåqXW˜Í,äËe+ú¬kûý©¢ïu OúNU÷íQ¾\×Íâhu¼(kÃaÝ€³"¶¾=.÷½wGÿ|ØR ” üèíæd½?¾8"XÑþ–`§×Š{XÁxu¸Jß)ì‰"¡þ€*nnßû¸(U—ovÇn8¨»Â¦îÖ7ÛÕɪد«+€¤^”×ødÑ}C¸Ùõ¿ßmþ~ü&”W[n•úo¯oW[é˜qÃâþèG4¸9¿@ Ëù˜;˜íuù‡Sq>ëX‡»¨À±Ûû†Ro‹ þîèÏØˆÇIÈmùí]©õ‰\݈u'„ûýÌ+÷çz·>½;Y ï%*¹»R„Ѳh–‹V~vå Þ;áò®.VhŒ¨¯ë+VVqfçGD¶Å7ìŒïe&,v€ ùžÝí'[Vûú²Ç·Å¬\ßÜn.7ÿQArWÛóë]¹\~UA‚®Ö?–*úmöÇß÷p¸en¶÷ —“Ée‘:Jå`¬¶6°î\V£•ûŠ^Üj_OM—mB¡8MýƒeWÎQ~eÜí×ñ·o¯í6‹ R†rQ&Ꮈt§.ÝmÄ#Öæ§SØ€q¤2øÎ(ñ@% ¬4ͯÈÇo‰²ö²¿}ý˯ÿõo®w§ëò·“ܯw…¸4÷ë?ݽ»½¿Y/¾þÇr.%7ÿðö7˯ýOÿ4§8]0‚·²F“Ë‘ûo¦«²Ø«Y·– ¯®:lånû~u¼¸8úñbÃ3„ýÏ‚ÜË(vS(È…bI£m ú}©Ar©î”ÇjÑaK_œr‚7oxx×BçvB63€ëƒã[¾ª4ÏDÙd—«­÷{l¡Ý›ÓvÖ~àøW8§eà)œ‰íúä–€ÏBðêpÚκÊÔœ]ï.+5?Û]_²–ívÂxö00íßwû¤ëWÇÞ—/ÇùôÀÛg…>lqÐÖ?q’WåЀ—-]vôÛã¤îª|‹Ó"ÒýZ²qžWÊåàQ߀­O¿j„½žÕé©BTãÀ4¨ëõŒÎhéyGK/f‹ZÓ6‰pvÊ{S:ur}u%ÓL®Ö˜×¹Pô³EOÒH^&ôûÙY X¯j -œC{_K^¼’b'î¶þ©|Ú3AOgßXâ^©Û4®ÓÅ¬á æï\nvîHivw)•iM.Z›ûÚß¶[j×û–اÀ)Ë÷e‰•%ínµ[—ÍoJ¨áû²Þ[nÐu‹ÖeÉÎdG\ÔY"H>y•ø*B4Î ³³ð@w©{¹'¹Ü®=;;ïØÙ¹nì39“å€4Fu6çS=Ÿ:ëø‡ÿîýìä0¬uÞþ(“Z<Î¥À}<@àî~³bWɲ١RyŽLØB9 w6§/‰¿kfsy³]_ŠÄÃ&¼ÿÈ~Q‘ìë$‰¬à~{¤ŸÏgã’•ã¡ÜÌD˜øòÓǹÙT€¼ ô ÀÉÿ n† X-µp_—›Åç¸Y×áf²ä¯E¬„9Aò.ñ xÿôh»¾ùªý•L8`îçTÓ,ÞÍÄoL7ΪKì–Òàoe Ûü"'ŒXn6ä@zè6ûé Uº ¨°§Þ‰ïÎWÀQO}·™Q^„8ÙÜ”3BÊ<—Fp¡ÒXÚ]ÝŠ¤J»;2¦;Ä<»:]Sº-ÿ•=†½ôFº»´û#am{‰q¡¬è0Ãwè7ç[‘×@eÙ‘ŸoïvïºkN¥B0 Ó*Í©¨»>'ò¾Aò‡y› I3¥±‡*tõLjO$$¡|ðÓMÙµ” ¶J‰95§›r]Y™—·LºKg®·wJžö7+ò5 Qº£½©„§wݨA;â²M7XÆæ–|í h­^¾Úâoe&ËÃ+>ëÂBLÕ@ááúþÈÄã›åúú†8Ú¿üåËÕú›r`Êÿ^ÿîÀâoE¸¾!üíü0]ú]®2·Ë±¾)…ô/Gߖñٖkúñ~½Ú\Èòÿ‹¿K”‡2 ý‘ؼøµ&ŽÜ`Ìñúß{9a|Šð½˜Cwªr·ÛRq—@»­˜ÍKEu^þQk@ë×?.*÷æì?ÑËòßõv¿ž¥7gBQ8KɼÉí ¿>Qì_æÅ¯í)T oMzReÐj…9,íQWóx‹y¼ e0àÇÞð#¤ øq öôsÄ?Ý]-}³[2Í7&|SÆødÄ·ÛÕ»ÝæíÙîÃCpFÊd|‰ýñ%öÇ—Ø_b|‰ýñ¿Eì°¯‡±?HÌç9ÂV¾'úGÌoiÛó%úÇ—è_¢|‰þñ%úÇçŠþÁgüvn6ø­â*Ìë`î\sç:˜;×ÁܹæÎu0w®ƒ¹sÌë`î\sç:˜;×ÁܹæÎM0wÉv0wÉN0wöU·öd'˜»d&˜;yVŸöd&˜;‹«G{&˜»4t0wcs7v0w¹ƒ¹ËÌ]ê`îRs—:˜»ØÁÜÅæ.v0w±‡¹ Ì]è`îBs:˜»ÐÃÜ…æÎw0w¾ƒ¹óÌïaî|sç:˜;×Áܹ æN0^Ôk=Ú æ.š æ.š æ.Ì]z˜»±ƒ¹;˜»ÜÁÜåæ.÷0w©ƒ¹KÌ]ì`îbs{˜»ØÁÜ…æ.t0w¡ƒ¹ =Ìï`î|sç;˜;ßÁÜùæÎw0w¾ƒ¹óÌï`î\sçz˜;÷I0w¡ƒ¹ Ì]è`îBs:˜»ÐÃÜ…æ.t0w¡ƒ¹ Ì]èaîBs:˜»ÐÁÜ…æ.ô0w¡ƒ¹ Ì]è`îBsz˜»ØÁÜÅæ.v0w±ƒ¹K=Ì]ê`îRs—:˜»ÜÁÜåæ.w0wcs7v0wcs7ö0wãs‡ æ.Ì]&˜;úaU˜»8t0wÝIüˆíC¬S…¹\8¹#ÐŽÂÜ•tƒ¹£ÿ¶ÂÜÑ\¾ÂÜD^]vî_`î’™`î’™`îSNaîèd®0wÑQ˜»d'˜;a&âå§xû sç:˜;×ÁܹæÎu0w¾‡¹óÌï`îBs:˜»ÐÃÜ…æ.v0w±ƒ¹‹Ì]ìaîbs;˜»ØÁÜÅæ.ö0w©ƒ¹KÌ]ê`îRs—z˜»ÔÁÜ¥æ.u0w©ƒ¹K=Ì]ê`îRs—>æ.v0w±ƒ¹‹Ì]ì`îbs{˜»ØÁÜÅæ.v0w±ƒ¹‹=Ì]ì`îbs;˜»ØÁÜÅæ.v0w±ƒ¹‹Ì]ì`îbs:˜»ÐÁÜ…æ.t0w¡‡¹ Ì]è`îBs:˜»ÐÃÜ…æ.t0w¡ƒ¹ Ì]èaîbs;˜»ØÁÜÅæ.ö0w±ƒ¹‹Ì]ì`îbs{˜»ØÁÜÅæ.v0w±ƒ¹‹=Ì]ì`îBs:˜»ÐÁÜ…æ.t0w¡ƒ¹ Ì]è`îBs:˜»ÐÁÜ…æ.t0w¡‡¹‹Ì]ì`îbs;˜»ØÃÜ¥æ.u0w©ƒ¹KÌ]êaîrs—;˜»ÜÁÜåæ.÷0w¹ƒ¹ËÌ]î`îrs—{˜»ÜÁÜåæ.w0w¹ƒ¹Ë=Ì]î`îrs—:˜»ÔÁÜ¥æ.u0w©ƒ¹KÌ]ê`îRs;˜»ØÁÜÅæ.v0w±‡¹‹Ì]ì`îRs—:˜»ÔÃÜ¥æ.u0w©ƒ¹ËÌ]îaîrs—;˜»ÜÁÜåæ.÷0wcs—;˜»ÜÁÜåæ.÷0w¹ƒ¹ËÌ]ê`îRs—z˜»ÔÁÜ¥æ.v0w±ƒ¹‹=Ì]ì`îbs¿ÀÜ}¹ûs÷æîÿ?ak÷%ðÕ—ÀW__} |õ%ðÕ—ÀW__}rà+ÜÓFZsAI ôI¯€¥ŸÆ~ÙÒ®jL³­O°²¨À 3 ^#ÃÒfïrEüÈ2¾¿å Ê]„RÍAu¸iÕÛ–ÉÏQXwOŽ¢nņËþû2 ø!?3õä»ÊÇÉiÈ­²sŠ¢>FW“=1ÊY㜔Îd X6+D')@–'B\J¡Q_•EÍ£¨ôR¹)eÁã£^õŽ™0Iò¤AoE[´Í\/ë d½2ZM/DãØ ¡{5]zÜÒÆµ‹ô´\P¹™GÕ•“9 _z? \?b§X7àJº>ê•Y™ ئòÈBuü(ƒdУq&¡ôtäµ ze×"ÂFDr%â2åÑê_Ù$£•p95/CÚN_% [u3¢—£DÎ&Ü袩Q³F'¬‹~t£¾”¨é‡ˆVZöúfâ–ǾѢŒm k½¼Ëá0JÔÞ’ŽHË£ØÜè?òÕŒp›ø—-epe³™%0§Dw;à(é»ñP¸nÒ׊•Clï8åÈèÌ$=2Hœ˜4¥ƒhœC}ÃËI?@¥©¶†S"áኛ!ºÉ»LHf©Žæ,§'CÔ5Ãõ—ñÑò(ºSNKV•áí "ýŒƒÕ`l{Ò´È*eOj@lè{U†Ê?ryTTÔ.0J¸ðDz‰å•ºH*£ÕïîyÓ2 8åôáM‹S™åíª,Ó'!û°èB|¤þ,(˜IfUî/ Œ/ËÓ¹s$„s’å¾RH>»ãðw±e|îœëcˆ‰:9‚NÈû–óäÝË%%J´œê:$HŽ‚ÃHlÓQÐ nu’xG¯”Ê|á0¡ùÐ*–#£•Šü€´¾{•vt&ÑŠpìeÌÞâËS Q‡„Ó*l:A¶ë;^ÈG/À•%ÖrI—!ø(”ŠÈ2ŠØ¯é¬”$3N?Œ¶û0Æ/|Y΀»¾¡šé­è ³× ^…žeïDOJî)/®³’¤ˆËXöª(Oò¢@ÅÅ k.¨r}‰ÓóUœÐBÕD&›±fÌA_–p‚ƒ¼á¢!4¥²ž 4œéhB+}jǬ%å奄u€q§ Úg-„®fy®ÀÝ%gP§,ZÞ!Êní³%î鸱…õ’ލ¶ÖƒÀÔ‡@Ê#³±Ëu†1Uãžq*4`%ŽTU C]=ÂÜp¿%ÞFC=×±.Ú5\2ãeÀ[fR‹V•r#WVA|çLнø®(”¹dÆ(ÈtÈ0~ ØCZûÄ,w’ÉÓMRs¢ P¯Å¬Íò½O•Fb:2Ê *¾Í(~€-Ên4bz"bÉ@»1Ž: Ç+Ö`Ga1Rƒa.ËOÐ*¼s€x—d— â¼fpEŸa @áLª<P·¦AÐÛèM2¢« žÖMr¿k%#r>â]M?â…Ìju¢µÔQð¹Æë„Þ⼎‚!¼–ó¶Ëð¨Í"x¬Z`& xVÖFÓôž%½§è¸jyPIµ˜#jû?ºU0 ï5ƒ._W)à†˜‡ia”e`Œ†¡ ˆkeÅN`ȧ ê·€ )hC´ ª!`W)]&h†CÔÇõ3ˆ^ àQ#é €f¬ÎpoSÔÑr5£®ºâüËæPíÀ(O©Í×Ic„@%?énM©ŽoDC¢^ °rIUKϘ›)f=?e!S•vÀcqëUÚQ ¤C¨ˆv%ü CJº«A×SÒM”0yI4 ZuRÖ€XªBÒLm‰åtè úí¬ããs_Õ#ÜêR6µÙ²0Š` ŽMYáRvšÁ*åPû€Ç½µ{PÌg‰D K£èhígF«»ϯc=° I ¿¨ôW˜ë€ p£’%hNÚ/ £b < M? ÌèFÆžÛQ@³m5 _$*W÷àu!º'ñÊ“Ó;P6tZ±ç2¤TE©ÁÜ?4Vç!+z8©fãê㧻˔(ë2y~ X»l”ìâ½ Q·¨3•F æJ9«çâu¹øk9Hîª4âcCvJ«Á[³ó¡î‡Ò=ÃÔW×V‚—Ö…nö:X^碔o3 ±¯-Ì(Z–J–r£0"Ô5~aªvd) Sml߇³f²°ÏÄš=D‹Êš}ò±±fŸtÌè¾O•—ù÷)øÆš}Ò²fŸÚ>E¹ÆXQƒÎ;X³×·"ŽÄ·Ã+9›köú’ÍÍí+Ÿkö¹’ÁB%ühíÄš‹üoköcH5û1MÀUÀ°È´Å2ȉN•¬9 *€ú}"kú¬M"7L¬9 •ç–ýG$†Êš‹DkõH5üÄšƒIccÍAcë5…þ'kV&Xs°úPHÖ¬ `ÍSÍVNÖ¬kf éÆšƒÆ"v4m-‚³aúEŸy‚ËÃÄšƒ¯òFá«8ë;_W N>L2ÃH7Ö\ÆŸk¾òÒq”Ó•5—Éð5‡`ÂÄšƒ>‘5¹9 k׆Ü8ˆ S3Qí5‡X¥3¬¦¾…˪G!nŽ˜|cÍ!¶y€¥Dl¢×Ÿt·†XÇ7¢¡äͱŠI`ÍAÚÉšC”7s²æÖ°æõ‚5K‡*k.¿‡Æš[1°æ ï>dÍ!UbûǤ*{rã0qmdjK,§CÍç_*kMtkú¾OÖ\‰Éšë»0Y³Ä”QÖðlÜX3Ý*k¢É–TÉšig]Y3¡k®Áp‚ØhºÐXsÐx)dÍÓ/vÔØ•5O? ´ò45‡±4ÛVs˜BõmH€ eÍõج9MV ¯Œo¬9ÙO¬¹Ôbk®/Æœ‡hTØ£9šRcÍ売æh¬i¬9ŠVXXs4•åâ‘K_zÈš£Ñ'=²æj{CÖÕ²¬9V>Mã[å6<$:;L¬Y!̵¯®­æ §+kf<ØÊš£òÄš£o3 “ζ0£Äu­d)6 ƒ[>Ú‰5G¯ÂXsôi˜Xsîþá¬Ù%~&Öl1 •5Ûd§[³Mvº5Û*dƒ5Ûd§[³Mÿ?öþ¿ÉqãH…ÿ^| ßëwÙ{zF@Uá—|öÆÊ3£õDèWHcïî±'0$Hb†M¶ÉniÆ~÷»ßÊ'3« ÙÓ’-[7»²D4€B¡P••ùdæ“6±šMí¢Õlê2Zͦ.£ÕlÔ<‡’/ŽšB\6jÌÒÖܨN £_±éžÖB؉_—·æ6Ï£ÕÜæ&îmn¢ÕÜæ6±š[Uciknó2ZÍ­>bknuun5ð[sö\òƒE´š[ |ÄÖ܆-×ÑV±5·ÆD«¹Uš¶æV±5·ºaÒÖÜjà#¶æÖÔÑjŽôX |ÄÖÜš&ZÍ­>bkn%ðp+ø­­£ÕÜJà#Ö@«Øš[WF«Y< <×Z×F«¹-ó¨3µøˆ­¹U›—¶æ6ì¥-bkn%ð[s+ØšÛªˆ†r+rP&Vs«û¾¦>òW— Cžµ‰Vs[ÛÄjnk­æ¶¶Ñjnk­æV!ó[ |ÄÖÜJà#¶æV±5‡>ÐÖÜ˜Üøˆ­¹•ÀGlÍ­ªÍ5Z¨¢ÕÜFÔš.k«¹mòh5·ºÔq]c¢ÕÜJà#¶æ6¸«hkn­æV±5·øˆ­¹•ÀGlÍ­>bkn›6ZÍ­>bKju[¤­¹mËh5·øˆ­¹•ÀGlÍmÛD«¹•ÀGlÍñ ɇ¶I¬æxŠ>S7~NyžG³Ù™h7û£21œýa-gÔFӹȋ"ÚÎT1ÏþÈ&Ö³?tÑ|¦£h?û£2Ðt-hT%&4eDÚ5шöVx­hd¢í\bGs•GÝ­‹\qm§å ‰ýÚ¹hKû£:1¦ýa›'wy4§©”c´§ý‘‹µ?*‹ÚÖѤöGM´©ýQê"¨¡G”EbVÓa´«ý‘I k:|´eݘ¿èÝuäÈd¾¡†Á‹ÅÓP9t'r¥¡¼q'Æ´? {X5»äjÙøàðÂÓñ)À漄JErŽåÔÒ‚mG †ŽxãkÈÆs~5”Eâ},aè¢F7dL:]àMA:§ø¥²@]kõÀSsÊ<׃ʈ¸n¨~lYh „cúJ„p‰UÛÖ\ æÓNY±ÍŠ,M+§µ³z] „XÞ‚gÙýØÑA«ã@ø'ÿñW*eÆ6(ßêØÆòÃA2ÆŒÝ -ÐV[ÊnÙŽªpqÒš’—cCU‰!¦B2K«-Ð8ÈžØÐþ\2+%4` òä Œ´’+çp1ˆK-8d¢³ÑÐ+2È«+ä¦*ÐñÐAÍÉo- ©ré«CBI%-”š0‡•©Ç-PJC!ã@X•ÑŽS"ª±r‡tmzsó7Û> ¼˜¿Ñ .¤•WâëX¸6è3–¦ƒL0¢“•… ÊQEß¹’²Ë8AG#-P<‡+µ=.ûÃdÆUù“â>¸ÿ‡ÆÀLïÿÑh —ö¼T1¹ ù›n8/Cœî|¥¿qÍô7ÅH5Ohg\1×Àíz“é §ˆ¬˜:êbúÈ´+ÉãP%YfÃRanj®+ an$С19sæÆÈd4 œFämMhªSlU&7œdüÏ\¶ßoÃqp$?à0j’tª‘ë&my„T5­«ƒü6âÅoˆ ÓæbÊ‘H_’Ë6×µ3/ U.Š( ‡v [TaC¡ëjyuBíD-ñoä²-š"ì\¶Ð …FÅŠfÓàš•î„M.¯\Øœ(+îªLX¨NýM@–mK8V•4záS¹œ¡Ø+Ð=·'!e 9f5UM5?‰ aPxkxö;'3 º£S‘_ƒ–‡ÊØ6”ù„ô¹€ÿ‰{î$9¥‰}Ùä è`óËÐeâTiÈ X ìÚzR5²Qƒe©‘8eZFœb«Ö¨¼1Dx!kLz­L¶Yh2”diÊ´7a!$bõ“BÛ&H¬ºÐÏD1R…LJ”µ„ù4T'¬6a\)äʈºaH(1ZežÃMyÐ19Ï-”¸NÄEþ5œ® “MóÎ 5¬M˜ãDgeE“bS[ÕQPyØ©2TK65Ö(‘tŽSah+“—,±ä€nR=˜'¬êw’ÚÂJm)?*n¾ßŠJW«…ØAô@JISµËÑ8”*(q Ú?ɲºlÛxS%ê5©µº# (ëJo²ˆ tAÄÔU«"†öt1&Ðïºh£¼©Õt"1®‘ˆ¶ª%x¨!ʨš Ïd¸ê6ŒdIA|rEÓ5ª"ý•øxøÛ„}¥nƒºˆS"PI˜y=Ã…¿ ’ȯù&W#oâЀBÜ*Ù—-T 'TµPÙŸ#N…kCU‡¦ÐoA95×cðš¢Òa¥º¦ Û”_6jL”yöàg³´@áúª ¤æ§¬œ¡€ý¸‹RÖ•ý‡fI# Ršµ°Èp÷ÏÎå€Î¨iX"LN&r‰ ‘š%…ê¹:\GqmuùØP` @ÂÒE¿¡()I; # Lt@QŠïÙP书àqs­Di7ÈlËÅÑ[H2ï¨{È<ëËUŒX¯ôý‹‹ð¡@ò¤ Äf¶¹î -%5°Ó®¡ðÐ6ͬVCBJäkU9$!Ü¥*‡”å zÒT¥ @c«¨üJÖQµ±¥„ž\-ó’nµå\Ȉ MÞÞ-ëŒð?«kÀ\«‹ÎQ愚éŽ.kTm,‘.$ÆêÂò&ð[„ŠFîÚ \Û0 ‘¡Tª–FŸ©´*Bk‚¸« [q#+§­ôkÂsd!Ÿµ*\4(µê8#} µ¶.uá .ÛØ¸Â@¤)¶Âw‚%ÖŠÓŠg[‡Àt­} Õ¨& h×&-4ªôÑ h%4¢ Ê!aÍ‚ß6H¥êlä€÷GòR”zB€k©kÚp•K-Áx¹Ì¤Ò©må\ÉG¼ÚÈæi.ãAžÂfå pS•<-WÙ H½&Àµ•#\©z,€E®û?Ÿ4 c6ŒëÎ^áµbý‘:מּTI¯aå‹ðKYÑùýUù£P¤R¶¢º —; ¥*u‹JaT‘üQ¥*pSѪH‘L55™@Õ"%bõK —ªÞ/vz‹7æ™>¸§…A]íòS‚§óİǢ©K–ß…Óƒ­HX!®âß™˜ö(\RÀ¾ß,ŶŸì Æ&m»yÜ64d—ýÐÆK‹0n¤Ä—áÙLáË¿™´–¯ùa #Œï{CÚƒS±Â¿9a„¯)ÙyôpX²Uš’m…²Ðƒ­(¯.ãƒÐ8ˆi´ñšöcm¼f *n—ýàÆ¹K%ƒìÜÙR¼Ðtà$Ó—ñÁí¹6^ ËKz®ã²Ü8w©Ìã˜;q`$—ñÁí¹6ΕÆq ã²Ü8ºDŒNqÐùHûÞÈòáiõC×&:šGCó<}¤yžX?ªùðQ›dÆàà/û¨M'N‘0cø@Çe?n:ÆiÒqÇÑ_60è”6ÏýÕæùH›Ç…?n܃hÃá/Ü%n\:ËËGÆùóü(S“¬Tüe‹‰§7.“„çm—=ªñµ#›üR ˆ1¡$ïÂ<| :CƒÛµº?ƒò²’ÊZ/JWæ¼IÐõèÈMàÌ"5¦µ¯¥ nh'”¡i•ðð+”S80BG˜e­œa¸IRL¸9#)¶ŵÚ+‡<ÓB;d™œ;N­ÚxOÅ!Y€]_rɵ)ÈãÞ ŶÑú/[ä%\s„ÑÔ¹pDYà_BµDfŠÐvÓñJ)¤Enp©7ìæä¦Ô²&9£¢ᱡ#P¼Â‚Q;D´ÈÐ‘Š©üZ…E*µ„àȘ¯¤€cA‰:JëUXdY "ÙWLožÉU’þYPSI–JaA ©ïGÄJ¨–,hÐŒ|M JJ¡KÃAÙºä n’ƒªˆ-”â™áÆK!uÂcK¡{Bïœ?è<ë䕜fUÊE`Q¥Sã¥ìQ„ïUV(µ0ú¶Ö· ¾.IQ(HU ¤v„½TÖè%/äò VëBZ ¬Õè Ô2CôfF˜þhåTE«`äÖ· i!~–XÇ í9OÃKªVá óG:覼´±¹\™9)K>×ùP€QûPPùýf¤˜s-~ÛRb 2ó¥¬ %ëˆ%‡‰\ Nƒ Z6z¨Õ•*”"”U’ ¸KTP¸zYK ¸XĞľ`AÉ"(eAYÉ¥‘ .­4°”ÃyñDGF®cfbiÎ5Ê•ïˆN̲ÓÝÐJ7 ·@p¦©å:Ê07¼8 MA¡í§’š¹Ðæ‚ÚMp|U D〷;=œÜT@æUr@,ÒôLW©. §\z]Ú‚¸} ‰Z0qI  Ìk¥{äB°Òxñ ¹  ­ØpðU(c0{#‡ˆ‘¬m JÕ9 ©ZÆ.’À÷ ¿Š•‘¬Mfá •~˜ z‡@|µÒBY3™33z_d«4Ãs¯ó É8Ð7®Ê0HbɈ[*RÐ )ùd„™q³7LäÅ“ e˜†•m¤C4ƶVkµ5´…•9¸ä×0CN®J¯}Ägf竌¸û§p4fX–Pt©hÿQ"föfqƒT³J®£€“†øë %bFK!"yøŸ óf‘ê29m'tÒh;gŸ!ï=ر¸{×QÑŽ—­°šl°ú~$ØŒŽ¥¯J!¯lš< k)±–†Ü€eS–™`&,æKlž¹Ärk4æ·`ÔB-PPrÐ éPºú"Kð95[)ô\ãŽAÕ§ÑûÕÕ+vINÜqìIôà ¤X³FÉ}?òµŠÌÃ×U®_“ü¡ÊcÂ’àÅ¥Ml[(5ñ¶`Í">V‚6¸wš‚YÀÏY&¯ä4l—ÄF­ ´¯ÕaŠÓx)­Cr4’$ˆÑ·¥¾핚ÈR â–cSºMmZ=€“˜D¦AmÙ/sì×ò‚ä¼R³¤$N]HBzŽâ µЦ¬©ýyjöÐ]§}(Mp£—9H_%âšt>ð‘+“›L›Ë%8Åï”Ç€YÒ5œúZi¢2Z âGÍ&ÑÙJmj$¢™‚CQ–Cfµcj¬­LPÐ^é7cãCæZ {"çg2Î ”Ñt@„õ%£"(õÀ‰™_.Ž l|L"W`³hÄYÒmÄ Ñc+ ¹h$ £ÊÙq*͵$Ùz¬@Ügy/w£}E‘>À)?1ÑÙPÊÌ @¹É‘k™?gE޹¦µ£IªÐÊ3Á¢¸–+Š4o  áÅ÷â(p®Ò>TäÄv&9eÒë’”9¦"Q[·2­ñغå…Õ’mWѼ­¥DE›Q-E#Pî¯n$|ÝhÇœùu”ºfÌIæ= ®3¨°¢%'£"a­Â t”µP+@_¨+m¡€ørÒ茴Ò’¥öB•ƒÈ©ŽÖº!‰¾.Åc)P—a>ô‘ÏÁ\I \ ñÈUŽj#…Î(bTV¾:WÒ!)Q„Ê2E#·P;‘>8È%=(Bð (çkÃ&T•£|€„ÿ‚û³ºŠH¹k£¯dP¨@Z ý§¨d€ˆ"[1ݳ•ë¤È§%:3ÅN*rª×âôÄE]ëHæy(ª Šàrí…2iA»š;áKã@•-/X âN:^‰Ãž«àIM¼9ŠÍp D!/±"¼JÔ4 kÕè$I$¹7Œs2ßDËÇ(pˆUþe!+ÊP£Ž8 }†WI0¸Ê*‘ª›‚Ä” ­`…*h\••¬BÒÅ*£é—¤l±J$k¨@a.›'7I"š+4]Ÿ8¼ªi¢ \¥ 34ªB›ƒ I ¤ÀUšŸS°oƒjPI¸öÿ­\Pà8Þ]¸²•m¹@u†º \©Y$¼o‚ÇÅTSšYÙ¨Jü(jµ8£Â-£§…)°ï)"®¬ë:(p…’²V,Ú‘ƒ£ \©ll4n•¥@*.–x]ÂöHeï4•œ¤kY4)dƨWŠÌ×e]G.°Ýð¤òi’ƒ¢ˆ-8MÏFã®®âc]5ðRó‰HÜ—Î$¯ä4=›ä}©D$îË0Åi¼”üƒ¸R¶^}kê¨À•V²šH œD$ÔK©¦® *M©%X À•FU$?K5KHr—æ *Š*pe € ®Ô<3šÃþqEÐÅJâ$9J‰Û‘|dòä¦Ü†æœfÓ‘§¹;Pà\«”ÔW§y{¤À¹Vhémêl´öœ$™@ãd"Uàœæ%Òuµ*zœ^ÑX¤`¤À¹@)B£ãj%0„§´þ  d*‚RT3cAY®b¦]Þ9WI…IVà*!†Äî]YmŽð%> À¡ˆ±*p• ª YÓ]¥Š:›e.tUà*±S¡ÀUEP;J”RtA«„‰ œP¿ª¼¬‚bÆP«*pZ" §TæÉAÒ‚ò A+[[D®”¬Nt¨”úHPàÊF6â¥t\¸RêIJ‡b¶ªÀ•’­†A)%© \)±PàÊZ0(pe¥ª" kfPàJ!à€WVÚBñÕF®,µd_é–O K©ú­õR·|dlåETàJæIqRàJ§j‘T9ùd¤À•¶µQ+ƒ@#nUi 1 \iUq!pÛ†9IË[8M¡i”F•,’šFõ KLnÖ®D˜³*p¥Â@Ãþ« \Y¨Jûx¸ À•EPdis!®Ô9IúU)Ø Ô¯Râ ¡À•yTUd…u¨â ´MrI»š;aÕSεªðDÅçLè¸kÅF!Î5m8×Ô.*p®‘™Gƒç‚šF¢¨ÑH’H¢CÙ+̬$Y<|ç\°â”«ŽÖŒ j hWDÎÙ6"pÎÖ ç‚ÎF)¢Ê—G œÓü^äjš:"pNë×a[rÆFÎ8§Ä@¸©h"çŠ:Aàœæ.Ór…‹œSæARà\‘GÎåM‚À9¥ Å ä."pN™ hÿwy8Û¶ gÛ:"pVa’ ViÔH&ضˆœmó³„{L8«¹ð|Æ´ÉA‘ pVidINÛ€H ĉ\ Ñ!…ÄÖE‚ÀÙªœUÎ>RàwÉF&Î~_"[qSµe8¤ ªgË*"p¶,ÎFhŠ69È#g]8fbRκ2"pšPŽ ÈQ"d^É6 g•î…Ľ SœÆ+ kDÃc‹ˆÀY›'œ5MDàs u+iPà¬)Pi¬ÉÎMDଚ%4Q­8 ÀYÍÿ'Ém‹Pàœ+"ç"(BœAu‚À9¡Åîí¬‰œSèƒÖº3UDàœ± çà Éë¢ÎFb®Œœ; œ+òsR󚔾V(pN HøÜFdÍåE‚Ài†N©Ì“ƒ¤e¡‚gÛTÒ;ÊŸ­XÄø㕎$R–*HÿÕ‘ýÝðcI?®*rrWµ¼ñgWRáÔ„>Ö97Žhšºà8–\lz†¨îÄã娜/áÛnMr">=(Ñwˆª©Wu!}@è)»ÓLÑ¢1Ϩ¢ÅMð×ûSjš­ï6ûØ=a hào ì•\\Û8T)Æ*C@лR€=SkúuÒ u˜[(AØWq Dý%!ÿþÀ!´ÖñGàJ ”÷&9Ï œu!}0`ï³Ü6áp’Zh(Qòx$ ÂV„–Ïëtm䦕+~u„{yçb0šã?=‰í)ú.(íä l”,Ïߎ†P‚Ð)¸ÚI HSÏyˆ¿Ìtæ@IJ3Ò2;y¸rZ°(=O-äDƒY ¡U’mòáÚñ§’§ Ò¦°’nÂtñXmc倄H«gœÔ…Ĉ¼ɂнt@Z‹Ì§… (–Òæ¤ð>™iXÿÁ_•É3,Ò ‘R[ˆ¶,=ɪ*'Ýã-Ùt°2Ó $S[9 eåj™iÄðÈRSˆ„H'WU¶üÉ‘XÉË"í±bo…álj&P5œœÍ¥ 'ˆ×,¶ ò;Wµ®»š16„ø–Wf‰Tiàr¿âø&”în¿*|7¥Œ$J7,? T–c>V@⪑ ^Y´r@—µò„úWÎܸžÌL3UÕr¾:íqIz'’«¢n;‘}£R±®å(±ÇÉU¡ž™F¶âyï dÉËÍ'ÖãHdkq<ì/t¦‘ bŒ+yѦDV¶5Ϫ”­YYÉÒûÝ%鱕lJTG¹ªt§¦÷ã|Ú¶+Ú7ð ‹Èÿš]ðþ{t2ÚkP?-XÎ\bÑ€:nã þ€^Iå*¨…ŸÁ ;$.ó‡µ`.Í.ûÊÂ`Ü× ¼ºÈ4K z5ו0p'×lÅø¤vÒ6R»õ2¤vsÌ–±¤ËÖ졤«ñMHC·¼šáÄ®­Œƒy‡ì’–Š6 yH“Aá^~–Ùë<=h´…Z“óÂA=:Õ=È0_ŒöÉ¡¹¶è„ øX¿A ÅÈ8Ñgžâ-\X¯Ð‹kÒDÿW;«ãP ËLÞZL##Nœ5¥¼mÐu)’dG]:æ¨Z 2Ò©Ô•Eùzeй©¹FZ t½²cbNë²Õö(9·l¤µ‘)VÂË\ˆÀäC @ùˆT>b–ÀåC €ùˆd>bK€Ùc ðøˆ!Gˆx>bȦ²I£ˆ„>b¢ÀèC @úˆ”>b¦2R…‰@}ÄÐ1ÕÇ@ ÛÁ÷°>b­€ë5p}Ä\¯Àá5p½bÈ™<Âõ!€±båÔ@ Àõˆ¸¾øgˆ4T1ðVˆ¸^1€“ª‹p}ÄÀ8i  T Än®@Ô5#1€Ãk H †ÔMrPE¸>bp㥉p½bpï\áz ÄàWÒ@ Àõm€õ“@ /—G¸^1xômÀõm€õ“@ Àõˆ¸^1`‡@ Àõˆ¸^1k àz Ä\1׫+øºby×@ `òˆÁˆ!Gu„ë5ƒ›“@ Àõˆ¸>b ¯ˆÁ$…ˆ·Õ@ ÀõMðU¥˜Èˆ ªøfˆ¹Ö÷Tˆ¸>b!`ý(¸>HQ9R"Ø: Äb1€•†@ `ö1 }Äd1Û‡@ àö!À} Är1€R‡@ `÷!à}Äz10ª!@zÄ€1š& Ä41€á‡@ =éF—ŽšÑÊMˆÇk z¦Àñ58¾bÇÀñ58¾b`„4£i’@ àø!8¾bÇW)_1€ãk püˆ_1€ãk p| ÄÀDÕ@ àø!“B1€ãk p| ÄŽ¯ÀñC pü6:b æ¦bÇ×@ àø!³]18k  h ÄŽ¯ÀñC Ðl ÄŽ¯Àñ5p¸bÇÀñÛ€÷'ÀÚ5(¼bÇ@ë5Cê29¨"ޝܶbÇ×@ àøˆŽk p| ÄÀ›‡@ àøˆÁÓ@ «bÇ×@ æì zø¨@ eæÐ”¾&èu …T¾&„h¤FPøš á%FP÷”Š™RAg FÐî”ÂH4æ ¡0⛌zøS #¨yJa-O)Œ ä)…t<¥0‚Š(Œ á)…J®ŠaBaÅ@)Œ Ý #¨AJçÝN)Œ Ú)…4;¥0‚f(Œ Ù)…T6¥0‚f§F|¦Ñ¥FÐ-”¢RA³S #hvJa„+…6N¥0Â+)…4;¥0–ª¬Ðì…†H)Œ°Û*…:¦FP¾”Âc(Œ ²)…‘HÌA“PÉF ¥FܸPñc]õs¥0‚f§FüJJaÍN)Œ ÙÕaŠ'FÐ씈G_)Œ Ù)…4;¥0‚f§FÐ씺N 0‚f§FÐì”ÂÚ’RA³S #hvš²ƒ@S #(iJaõM)Œä@çCPÉMS‘PA³S #hvÂ}U #æ #¼­RA³S #hvÂY)Œ0A•ÂßL)Œ0הš] 0‚f(Œ8ÎêÃF,PEPê zRA­S #ìœMˆ×H)Œ Ó)…vï&øÐ #(tJa}.PAS #è*MTß"…t9¥0‚*(Œ /)…4©P§I(Œ°Ý(…T³@a%N)Œä”I¯KZP #(pÂU #tH)Œ À)…66¥0‚(Œ À)…8¥0 (…¸PèI)Œ À)…8fPà” œRA FPà” œRAS #(pJa.Pa (…8¥0‚ªFÕ …¸@a®fABa„ijZÕ …¸@a„Y­FÐ4”Â:H¨¿U'FPà…Ô¥0‚§FPà”ÂzRA FPàTHAS #(YJaõK)Œ À #¨iJa$A’PI ÚՔ œRAS #t\)Œ À)…ÞFÓÄN=ˆ œ ñ²I<8Í€‡2à¡À¹<›dÀCÓ xh\šE2ࡳi¼˜¨Ài<ßT4Q ðPà4 œfÀCskK2à¡À… x(pš󒻨Ài<öÍ€‡2à¡íh6(8Í€‡§ðPà4 \È€‡gÖdÀCÓ x9cÚä H8̀ǾgÆ–dÀCöi<’ýQ3àù•ª:*pšS“F¡À… x ‘fÀcSÕ xhRšK3à1Æ!š™šYÌ€—ƒ<*p6€Êi<7îʨÀi<÷.(fI<¿’fÀCÓ x(p6Lñ$ œfÀóèÛwÔ½¿¦àF‹eUÄAÂ’Ê$¾ììu¶Ô"¡µsƒ„«Â ýp™4îëésGÝãNü nE¤àcÄA™<øü…÷1é¬4p:H¬Ïè ýp™4îëésGÝ«ÿڃԦ˭M—[›NáóÔÙ6öí¥åÖŽ–[ûã–[›.·ñsGÝû+.7Rti¢–¬£@”¤œäT$±¬8>uÈK'%BÇÎÁ†Ik“AjÉ'¢2É7«]?~¦}MŸ;êQÒ‰¿ÎLjá ¬+ÿuZоÓ|Åœ2»˜˜ÂŸƒ„RZ¾ 1¶vnT&±=R?t¹Múš>wÔ£¤­Aj‘§Q³eEN6Uü—*•··H“+O(å´6Vú§­$•I|éï?úÝÐïÿóŸÿõ¿ý}¿ûÃGÏûãÝlÎoú´ºš-¾ÛÍ>zþâ›W³Ûåê¦;¼7ឺ›«õ|¿òÿºÛôþß7W»ùýönxrìÿxßïüÑyâЛn×ßð¯ÖßÖùÿûÛîÐÝíWýüö°ßîwë~yµ™¿îþÚ·W:Jƒ{?_ö7WKº+›/öÝáØÓM¾·›«a¾Žw‡áõýnï‡ýñè¯^íïþ¬oúê0_ôÇãþpôwÝí¯†l>ÜýµÜ¹ÃÕjÒZ~Ê= _Õûù—»Eõ–_7]½öÞѸ;«ù@-¿¾¶wþ¿èyû†ø¸Œ/¾öWwþ¢ΡÛò-®æßùÃþpö;îy«ßÓÈY—½ö}÷OóOñô ×OÙ¥‚¿t˜÷|ã{߄ۻa1ø¥=ìÖþÒtž^•Ö·ó‰oÎOÄñ7[Í?ýÜwi{7Ü òwK A[ïç‹nç‡Ö?uG/~uÈæ½¿úp¿£ß-û[ÿ?k¸½í{š&teÒ±ÅþÖÿ~õ¤ö]¸¾²…ï Ï¥×Ô‘Æn¸¡Nïx4–þ±qÆàý}·2ÊõÝB‡V'ß…'ÒŠ¾97?ù:ùÈ™!û{þ^r¼ÍMÿ¤!™ «ÐîšÚÝp»Ó9¿oxµÍü~Ç“wGŸÏ%°ö}òm®¼±÷z¾Þc è3ìxšª¬/H‰™ž÷ë3\:^ú…yJ™ÎÎßóÉøžÙÅ{.‰‹ãýkú§_ÐÌxjŸš§6‘ÙHr$Oñ2äÝìÓïç|CKÓø««?%VûÃMG‹ ã¾8 wýaèø¥)Ùå= W~ølëÏÿñÞ¯‘;ÌŸ­?îûÃÒß±[yéa®=)iRmï;ú¸‘0xš¨ý3tqÇ’`ã¿´Ÿ^~ûÅçÿ¤ÏzUçþ®ð\š5?)©[6ÏZ»ÞÏÞÜ¿È_üïk]‘<‡iöß“PÄd>H_ç»ýîÉŸzÿ±ý³ûà }àa'3([ÏWÝÂÏ8L±C×Âï›ÎÏ«wO¯¼)=¢NP†ã{ßûÅÞO°¢ñÝ@‡ÞÌ¿üêÙÕ~.ê¥C{¼õ—3­Á{,PºþnÓÝñ,÷‚çé´û=w¿óƒ³¹é½X™´ÈKÑRnã{ßõ?ÞÔsC‡1æ£u1^Èê Ñ(^è"†§#‰÷=‰ÿßM§2—íŽu¿{K?òQyß÷4Â;ê†!A£—ëSºíÂ.}/¿wËå€C"?á½p^Èñ*lw·ÛaÑÉ_×^|7È>~{ÅãáÌh<?œ4q7óg›ý¶?¾¥9ÌC#‚–Zéß-ú[z룟ë^Wè³9¤Ãþîø+ßÄÁH¶§µ@£ã_âP,öö«å­_X¦õ…%DÍÿáv¾ðhÈÏIš}úGÿmN‘2¶ÅnæFþà\É-pùé-Ïý„ÚÌ¿§Í†Ç¶ôr[›jèØY½Ñ‘gRÎ?§¾./¬ ¨«°*޼LÚâ·÷7~Û öôŸçQÙØÄeÒËL¢®-½Z²ßÑþå÷öÝb{¿ì—~†¶^A…Íîn3H ËBÇæ´ÂÜLD F8Óç7æwO—x¿õûãŽç‘ÿÛ¡ïåõ?¿÷‡C¿[¼ç9@+æ ¥ÕK›ÊvÛ“¤9î·ßÑ6°a¹AQ¸ÖN%J¶9ó<•w¯ûŽ^‰w¯¤îü›7´¶x“Ýó'£àœ÷ó›¾;B¥ÅÇZPòæOêmʆäóQ6mFê¹_ú^)!}¥ÛéFMê—èx˯l™½¦¶¹BpK¡˜_¾ë¾Qo¯s/xBù½O¯.“%Wwï® Ql¥Wó ®ä¢X¢2܉à·TÔ®÷x-d'óµ…öBciioðý°Šo®iÂù†Ã^2H™ƒWù¯óMï? ‰’£—Étħ0~¦eüó›´ÁT¤ ºÙß¡w¼ê ¥$ž¹/Ù±?ÓôÊ.K÷ìo¼¤zÛÏ>úlؽ•û7«ýþŽFâ©ÁNýÑof½üèר`f¿Ïgy–ÿ>9x£è«în±ùè™WwüÙbæÏÿÁ÷â׳>ù⋱atC%DÜ_ŒÝ6êy¥êyü-¥YúŒø‚Ë-o®Žb Tp˜6{-£¬{ºß›½²pÍ›KÿîÖ?ðˆ]²£‰IfËrQ©éÓ­`sldâPl³£«tâòmÄGÓ^ëŸüͽ„ã -ÐUÔ Iûgû]€„2«È®(Ûì½\;ÌIIÜtÊ içô&«3 Ù\†Îd໢.F+(ÍÚæÎù~¿Åo{Öºýö² eÛkC0¸JÒot~&«¤ÐØ‹ämX v”-ö€–‰ó]òóZæÃ÷\Ô2E¿t­ÒÐßnF¹­~=½›»«Óì··Wwó¥WþXpUY<øZþ¼(ϸôQ¯… /Ýóò¬oö´8ónÙômK¯v7§Ë‹‚få³Mçí#ë¥0/É^¼Q{q=¯žæüÚ”ˆ!êó¡÷[ĆÝÎ/ µÆ1/ýÂønþÍbïW=oµ°_wdx}ï'ùòý®»^!¦‡¿Ú òd?ÇqÉ1¨u÷GlZ°µü>ø(óÂ+~šï·lêI{þö÷áÎ êòºÍJ¬×½œ†BDŠÚÔJÅ0.†VÐm×{¨ª¬—‚534.§wÞ¯¿z%/¾¢é„3: ™ÿ»?èG± kø w~ì0ñY+ñfXÏ‹Ö- ¿Óц¨X}y¯îoÑõGÿ5H:ò¶fáU”)ñžô¸Ð­,Az6RÂRµu•€O¯(Ü?+‰H ò¦¨ýÇì÷·è_þò+/r>žF“½êÿ3•­þo~û+½š1ýü–÷þVÇŸoýEò—ùóáx7x=úpuì»ÃbÃ'ùÙw,ý&.'½EµÁYý1·yQ\õüóúØ}×Ïvý÷€£ 7ûïú»}¶Øîioô$ÔÚ+C÷~ùf+¿×®üœŸòÕm{û;ü—yŒ´@Oßì¿ÏÖþs±òßÃê¿©—þ¿ýöØ~+ž» ðœ=iN&­nWzöÂe_/;ßÚ¥yMØöÓ¢¹¼å†V¡Q‹Úçg&-äõý¡{½íaxŬ_Ü‹†#’ÉË ØÒ˜KßohGAÜFI.É¢ÃÞ7³ëie°œc£ƒ·72gøI„6r”MrOXé‘ÂÒï«ïç/B7½ð:í),2¨W‹ýÍía8ö‚‰â•"ÀD+ª¤'‡7*ÍÉ&·$»‰å?…¸¾'ëÿC”[¼ÃÃ>À-°3§›³ˆßh _îxðËÞßzaǾo~ÁÞs¿úéShO Àö÷Vº#ﲉlY§¾ÃÎrs;lû'wà ÷•w R3»5F~ŸxöåçŸù…_ô`ö¤VÓmâëO¾xþåçt–ܶtöw™iü‰O_þç‹çôwJ!Æßg~Œ¾ŸóÂÿ9lÉ›ÑNd‰ C®%fšÂ‹Øùó¯^|ýùË/^~óêå3ß tøaþòŽ1¦áÉ‚·ŽÇ¦ëšõ•d3ºÃ¦_p5úšbÍ`—ç’wyÀôD„B€Ï6@,‰m|Kf—‚ÉËÇôß’zù•—ýG±Oý 9+xÈ&ö̦yzƒ‡ÜÃÝÂH£§^[4^óÂüí7½ßg3¼ì‹ÃÀ=Ú°cT‘ñŽß¢ ?У͞­öçóUßÝÝzYP…ØõÊ+§ol> 8ŒÂËXê*íË~{}õvÆJ‘¼Zà¤}ÐG¸!L¥ ×­&zE\‘.õ=Aÿ† `¡Ê£h+±çù³ [È*L†uÎaþùW/©§Üǧ,È^ÑÚØsó[n~{Tý4x½øY¼-vŒe…ìtúÔˆ:s³¡' PÝ‘±éÿÈS”õ÷•7'wË-£FÜ[ÿuÑÐ."³9»1ü•ð]y„5¤Ã¶ ÃæmÈ ~X—,/‚í}‡¨›“^ðTÀ›Žƒ<¾Ûõ^@©¢üôª­fbO«:‘Ñ¡ÀT$õ$’†±HZ‰HZE’Nä:ã @ïÎO¾ß|ýâ“çW&çéLcöftcAœ_¸ZV€ÞâOQ¢Q8•}q±³Ò…¼’U<ð¸‰áçç’t"»…^R‹µ·ü ¥ÞU{ê’ ?^ÐÉozÀtÛ:'0Ðì $xR–âI‰[«{ ÒžP¯ìì{ˆ ˆ¨¯A±„ûm±i¡|sKÓl¸»z‹;ÖógŸ3¶ÀQáÇžÄW·Ø ‡í?ùÉè|—ü|ŒŸìÁ{eꛇLýL@Kbë²õg°õK¶õ3cK Z©Põ3[6>ÖØiy-a7Õ .„M†UåU)A"V-¾dvެYô¥ÎNv V„¯Âë);‚)«¸ûé¿GL¿†C‰4µw´4hí ¼ž|Ù…FwX÷@[Ï?e â'ÇÁï¢÷¡éê#lpà ÎO BÅZSÿ:?³ m6Ô0ßvî–7¦ôA›ưïÊ婯·áá~¡³wB̯Që{ÿ)ŠîŸ ÆS¯AˆÄÀÖÌBƒ?Êü…«+¹õüä¦ f¸B£yj¯ bøEöå¡/èð›ð“ F=Æç…†ô oBZâDh¬O„†×%ë3í-f¡´w¬Õ¬ã,_L.¿ †õ®_^óÎæ§>BpÖã7yàÎn1„µßÁr;§³A¡Òà)<éúg»%xg†›Tâß~Ú‘qÓ ‚:xñ’Ó"zR¯ÁÜR«D0¶"nyÛýñžžö ib‰z¾aHïp¿€~LLdÅêÐ3x¼Çà_Ö³œÇó‰WœV4(»ÁI4W£°y¼ëi1Èû@Ô£¥¾÷¢c¥ßûj0~ØG=¦gçk|ö󿕏ô…°¯xµîO={ (5×fì¹t^Aü|Äžûð=Úsíƒð::ݑ٢{®}üž[°o—2è16¿Ým‡·Ñ¸b¯ê8¬ª ý¶Ókø´ÂâeH–ûA½ÝãÍòf)qAkÀtÞ§¸Š¸é]e³žè0hÑ{ÉO¾‚tìQ@•8¨56²4:&‰™ò’€\)w,ýÛ?- õ÷y"n|‡ßD;•Fˆ!e¿CcбJàh„ß´(°ƒ/yÓ%#Wb±ö=ÌþðÖ$4)ÙæØßbÊ~ï_‰Íg_ýæ>IýýV°¿ÀaпãùŽù µf¸§G«Œ$áñذ¡°œ éòÍ$F˜4/ÏF"Ý«>? éK4ðuO­²±p ð »cç1þGà ·¿°È:8Ï„&RàÍÌÍšGÿŽQ“ì\ £¸´7Q#)ØÝu¼~3éÜ=¼*(¶æÈcp~a‡ób£øO^^QÑ gk“]P8ô<ùµš\îÿÉÔÔLA÷P:bw؈øPìe¹–Ἰñó1nÃïy”\s» ù„ýˆ\s•k•È5Gä !ìÎ0¼¸¿Û§ª:M÷çäR`˜.t\ ˜Š~ŠÑ’Ž÷m „­N5|ÕÁ‚[£ˆµ½Û Ü €I”·óå=Vý™ùŽ-çÖê‚»Ÿ/©[ÏqÁsºa}óo¯D‡‰ZÖÚÿùØÓýbx¾³PVÑúóñ”žWë½ðŸ€²2ý‰æÒÊÐóþ&T1ËÏ„oÿ4+Ý{`eÄîÐë|{õ”±#7 2P#g¿æ &þ˜ˆß]A}’xÙ`Ç›‡[­i^}Õ>ñêå7„Ý·ž®‚”`ãßY†u†uP]½›î?²Á÷-ŠðÍø<Õ¢s–•tÿØþêIá8å7o k²‹ã†â¨_H¡Pæý¡¿É|aø‹ê• C—ÄG¸@&‰ÉiñÛúWjì%ƒ.˜á‚N~£‰¿ÉÎ%õã­_1ß_QÈä_Jé‚‚Ií¤õiÁèâà›=¹^Å“X?„`ÐyDüó²ëá{¡é—D§¯AÉ‚~´ž§à< [ë0«Ø=—K„þ¯ ê%K‹#4] иZ¿ú• ‹=ÂÀÞ¯îpÃQCòhN|„XÄ“7ô€ˆÅÞk§®9Ж•ÃT©_“w»gçå:ªêÙ$Tb˜ÜJ¦#ˆkÆ2‡ÜAú‡?Ì8Õ¯€“`«ïp¬S¹€¼7 @>'ÍÖÁéEpµÔnÜõÙÁ R$q ptA”÷!Gh5a §;Ь9¯†`µCýñ_J6r‘¾O“$%v²ó³îê+WðÖ‘$Q’…Ä›t@s±&/Ö'ý®¥p„¾ÛÀ¡"ÏIR,ùS VçMT2+ÒP˜ÍìÓ#b ÿ™Æçßï!è(rè÷WÄš"·_ò”èPT­ßü‰ÍÙäõ޹€Ö~ãöóz·ŸG‰ÞMbïé­Ÿ˜yóúa7Iè½ÆHá®hõÿ&˜\¼ˆ¯9ü›õqóëõpy\W„–8ßñœ0†T÷óˆ’|ùÍnмZf qmT›%%„ ÇíûЭ(ÉNMkà!k. Æ:k÷”¤à“Ë ]HÅԳɸØÄsG{ªx5-á¨[Ì}oR ñ~{ä¼VÏ”˜ñŸpNoLõ!$]°ö½jtG^?øH+G Æó38ã* Æ AÆ„ûã= þ5E¹©6öí·´¹ÝÏŸ.×Þæ~A(YX$¬G#,‚9ø5Y%0D(û~Ι“.×Í#ö.›•ëh йŒË$©5ì+žyá«Ütðóãµ÷¢‘Âå·N1 "T½ÑF3À/ õ© VFÆUš>ô1ø5b?ü[¾é hòœÀžqÙ€øÄ‘ÏC\ºÀ«ß&ÂçV“]äÉ}&’>í@¢Ÿ Ö펚>»C.¶ãÝñã+g%#ä9m©×`ævú }§¾$ îßq*…:-€UììÅ©}°ÁÃÔ£Éö&À€¹°“ì&|šýC5Ÿzý¨.ÅÁ>€›BÇè{}!¶3HŸö_‹bZVVÞ$>ôb×ðzÙÇÔ*ìµÓøÿA¶õ~¹&µD¬0ί%áæ?WpÃÍàtÔº¤oƒâÑó©bdÂÜ-;ñÜk2QW²P¨l¹ó$>‰l¡Uòe`5’.ÇØ¾WÕZþ‚} i÷&¦‰€cÙݰŠa©xúûKÉ# ãc!wš|Þ£o°I ÛïVéyìÃGÙ$º"{árk6oukÔÝbHs6Ùç’ÁE4ÙÇtzH,糓ä¶y«þ|2,úEÔÓA-¾*(Q(X½¯Gçìß>a ¸”µÌ ˜ž4ûÄ_¶LUÌdãZ†öƒàwyÿn¼xyΡž=gšOâl×Ç=p}^sH öÍž\]ë3Jÿz¢*†¬åÄÈÄ—8yék‘ar^ûœ³aä[¬È`4\¯ª50†&çÓË«¬¥‡çò”²dˆ£d½ZŒUª½˜&˜7a$RÉ6~ýo9èŒz-´Åûï¹Xo_ï^®¤ò²;ÅØ¼Ù¯r(¡òìZä¥:ìÈ´‡:¢ámä¢ :s¸Êf{Uä¨ Q] HŒtÿÆÝ? T- 6íƒêrìƒnß„m^y+º}øÕýY¼ÑÖÞÂ0æáwtòûïüî¾Yúî1Pœ"ßï:‹x™ò®»¹Ýöß^ñç +Ù‡ö]ñó®d£!Ëšªz]$:bÁÞ¶C·[ËnÂ^í\w°oç¬×&“Þä”c¾óÍæ9ùÝŸÏ ê1ûîwDÓíºí~MÙ}ð–^d¼×–¶ûÅÎ÷]Ý;”›NwËr(ˆ´Ÿn¸8%ü.ÐÕ@…»œ«/ψpA'¿q÷ßoFø>$oxõÄáË4 ›sbЋ¯íþu'z[6š–‡çTÎiµ¤’%²m)€¥ ·ïüåòo¹g×Ð1Fsqߣþ¬²ó›ê )m%þK{ƒã°÷6dpIm[!œƒfï¡6¦!Ô°#ý@ 8VlxÍgÞ5jfª¤ú‹î»sšîF€h©ø UBò⨪Â{Yy… &²ÅŽ?ˆ¶šãz’(UÕtËÇ«@8²ÉM–ûà ­)ÃÃDß‹V SöáïÅ‘QÁž^~°lòÅb0¶oôÛèCÃô…—¾´ª˜"xVÐDGÓX¾;ØÊ¦C:§3 w«þšƒB9`y3Š¦Üˆ(Ò(èºïüKI—‚^Ý"•ØT”¢â•ÝšcXK*/Â}V·>}söéˆB¦h¿Ã2 M/`‹M¡@â,g5ü`ý*Y”T^çý60ÕXmù @fÚ0bE"[¼ë±–€h“D^W¿½g]–>ÏŒõšñ¿ÒÕ44‚äBö¬iôwÑ&~-š”ç'n™JC0ðGQ¾7ÞV¾÷Ž,›,š…dȹCYÖ´­©5)©Á²øDé¤ê!¿ûâ-×p_ Peƒ{†?ÆIxÁ >´˜í0n+Iÿ&§úLêí§º¡4…‰S݇Ü?œê?'§ºÉ?ìTgÎÙ¤±)!jÂDsžH=7%ôIÒ ÇPñ*ߌ2s>CÂÕbÏ®_u¯Âï¯@3F]¸äóç³ÐE?mAÕuìEM(œïäg›ÿ”@ú¦ßö­]<¸"Ý`zË?\óö3ŒoºeÙ.ôYö‹á—Ëa=€ï `BEB•ÍÛ8kç†]Â8 úi( +YešÍ‘=ÈžVÓt#‘z¢£«—Ć{aè…M{áÿÍòi3îÉ: ö‚ÁS™Ùç;ê„«¸Å(ÆØ {pé5Bt$K{r:$«àVV$Üû9eŽ%=ù•ä 0È€1Ù1`J“ž?s g WëgÞ¸”Ôn¹Æ²`”¤/$¡I~Ô$¯™4³2PÝÄLïUŠEBBƒÇ* ÃSNv‡ÂÎì^‹à—¢iº$ ![%c7¦‚IÀ4ë™p1]´êùÌV1 `“ú<æH9&‰ðl¾\ñtH¥N¦ñ=ɳ%£c"N6Ê#ˆ+Bb´:SéÒKGD6"ËX×5ˆìª¨‹’ók/Eéëy3½¢²s¥ûó™dãÒºü‰QŠúÁÐãÐ ÿý^ÈϘtj)‹B9;Ô©)üÒQGŽüíVÓ]8¡m¯>u“S]‰’j@1ÜKÎGòæ»òÑpA'¿+ãþž.>߇ä Hø±ÃÛyåñÁW‡wéÈßù`|¬ ïŽßçw}HÞk˜èðÎÔã­Q”,ÒÈŽ ÏÍÌÕ†P&v³ V÷Ä‚_Žsί" l@¤Â†<Ä8í³îñUt¯Äc“¹ªî?y݉ŸÜT1E%úÉá&þñ…®·X·¨öóO¼D]UWÜ%Y6^ënü 5ùeâ*½ “߸ûï6u¨ÉŒ=ãUR@`$0ñ%Z ÷Blaâ%?õù¡˜ìq‚„þ$h“øÉ·7S?ù2‡äRfGš`J c­ƒÓüR÷vˆ[ö' iÒ©MˆL‚¨þn·_j§2¼*-ay O6û@úŒaDæÇxs<ïÒé£èˈ¤`UmTÛU°1ãÖuBã7v!_ ?3Ÿ/@r¡@Êñ>Àb^ø1”$ô¬ò0h+ƒ¥)ÍtzÂÇ/¦ýì}?Å3Kµæ'no§sÓ%ïÓ¸è›ÌFïRõ5P²º"€#ÍLvš©ÃÛ‰Ã{vÆáÝÒ¡Ò!nºcýöŒ¿JHXKÄ5S÷ßêryÛÇǪR7ã?oN½ Ie†ˆŸg‡·’~ )7“ƒ%>o|ÞÔ­_1¡™G0 ¨Ýâèc"€Œ ÙS}°§†©Ç;›º¼9T õìšüœg—‘©g· çî?<»?'Ïnñ” öë²²:Žo€dŒñ HM¦øLõ$¾µê, pˆÅ–NÄ’Å7dB§ÜiܬÆp¬Ä$¶ábhC6ŽmX£NHbv8phƒK {åÙa¤×ÄݽŠ!Ð2DùH ¹»×ÑݽJÝݦn]†'_Ðo¨è&Ww·ijây¯.ª7z¾“Ÿm›ý}ÝÝÚ™º».'7÷Fƒ8Ù¹Ëîîepwƒ‰üÝ´9]Ý#¹vP¢¸²Ç,WŽ ©-ÎÈõ©3òbÔ)G?Ggä:8ûNœ‘ýh'ÕÚ,»`9¡@·ºõØ<ÍäŠ\O´„Eý.õCš‰rü¤'~È!›REOu¯…ædí-ð4n/Û„"T @2Ê¢Lg?p-ð'¸Ø#û2Dã&ÏÈbŸ&ÙI)B ²‹í§ÙWÊ0¨áàåžBê‹R™/•&¢šÒöb$I¸ “ßÔþOj93 h'ÔêLœÌwÐq¦ÎªQ)W¯ßÛ øÐ ¦ÍYª¥ ]¥-±Ÿl—eƒy_>HÕ´òçóßCÏsPLsUãUi¾à8Ôóÿ´?‘|ŠæAÇa育yµYᚆ]c–Žgð :¨àÃß*ªßPaø.®?kÃ_(I¡wâ[ŸZð4:¸”VpgÕôß‚›háÄrþ¯ ÿuƒ'Ô¸×äph98Vâ #'TaËF:íOG±Ëä㿌:Ìò=θNþ2î1ÿ-v¹È¥CäÈj¨p[ŸKGñ¹pÓá/£çòŸø¹ä«kä/ãçòß’çò{npK%ÏÕ±âÞ´ä’3Ñ·ʾķöfÞ||U›&ã3k^Bã|—ü¼0‹?xék—kg„^vÑUÃK~uAÈŒìN¥CîAä™áŒŸ´50¾F¯ž½9©Ž "GEI[oŸQK—¤v¸ Hm“»Vœ´¢pA'¿©ý¿£Ô˜à¤Æ´V†ñ‚..À®à)üàËÓЗÇïŸ<1è/;yMåÊìÁZî uƒ]ùÈZÃÝó!.§êA.'ô7©WI¸¯”¶ƒÉÛkÀá|Çtìøù˜— ÷ÌÎÜó7qõŠy€Ö€«B ¸—ÄCäû«ã<Ö\˜Y/¸YB~²ÝÕT1µÀc²Ì“Â’Uä Õf¤âfÊ«²ÉR¾G.˜›–äeâä’1G@¬T-DpðPÍpÁÝ©~„Ô V+-BŽ­˜¢˜àDÂk”°µã“Ù\°nnïÀïÌN{äWY0*ô{a…X…$ZÉùaæïi ‚°kÀZBý2Næ×œðo9ùƒi˜¯ §þß-¼ÇBãŒÔpóÒiq2ßîo{"vϦw[Ž›ãÂq l@û};Ö„»ýºG_)òIùæCáoæ#Z8˜8€\—¨$¤•¿Ìª[¹Î„ا2_w$€ZÌÅ)Ýw7êN• ‹îøVL·L|.ßÎû=ÜpÙ‡Îص ÌZ 2‚aßH‚4—̔̋û»iaË'â­W4@Ç%Šv·ìŒs\c O”±¨‘ÜñùþÐGn‚k†/ÑMÈÒ׿b^#'»kód:P+ T¤P Ñ+ÐHТàcøl™|·²þ#ô_ã Œ7Êk)$CBn¶6}¡ ÍîcR gè)È_7É@füêôµ†QøåR*5[X\¾ŒKšS§PG~8N-§Tƒù'üØ×‡¡_!$ቦ½õÛ[žiz™ÉƒC ^Jœ—ä9©†LñÊP€úº¿‹Ü Ôî5'JÈݦL,L² »5~A FK'u«»>rÂËý8Ч~ÊDN¡Âù¢;†ÐÐÀÔl¡x=Æ‘¨$~·èœDg€‰I…ð·šmŸC \€SA”ƒ ËþÅn¥Ì‘4ul±K˜íJºÜ:©¬>!8Ø@ðÙZ¨K&À úÐÈîxd…4©½JµÓx÷ÂZ§þå%J²éi,°\D°L‡Dþ%˜Îy4Œ¦Õ86*5°}pýòeÂQ–MDã5o‡«I<®¿`w±&Æw¤é­…”Õ]]": ‚d“ò´8舴,e`dwí¡Ǿ„ÚŽB8›Y"‚â>\JÔÑ Ä3k½ G F—ñ•pA—ñoÜýÓÍŠBÔ>œ¨:!EšIbÔÒ^ûã!Çn f1EBDj!áÆ¯ï™¹Q>¯éËdYÝs2#v»„ÚQèlÎpk!M€(ñø”À:=uŒÜUïAiD^TÒ€6 ¤TvŽs÷Ðoc^X'!_D¼RGb@ÞÆìÔöô)bÔnX†ÕQƒK‰ùÅ…ÊI2‚ácËzO>€ûC ÷œ›âÔÉŸp ijn ŠœÐMO²jt·rÉ¥ùÎãÛ—Wm]d ̾D5_J¨M?ùÖŸtî>Ì/ú ìÂ}yÔð5DE.×w2'R[É:çJB$š8Ï“,°a ÙiψˠTìŽþ&Dó æ«ŸµŸFõý_A—v*-ò>Y'–J(]ÚŠW¸,܉§ˆ¶X¾Š´üNjQ×bHèY4V桾y’†R:äAøEÏ•à·Grv%X/Êld»y+›èJš 9Òç»hЂbØ„ àæv nÞj™xëËcIé( !½L¼üK©Ú‡:‹ûQȬ0D2‘øF9ðù¤*ǰzñ‹…áÒN7.µSV¥$ñ¯E&›âœûÙø¦îgC踟Nîgóÿ%¶î 1WìI(» 1‚…i7˳¾È4æÐé.þzLÝç²Kw<ôn£×¡=Ù ŽÅ½*ü£ßÍ1ßÐ’åò S‰Ýp)!æØƒ€J˜,ƒÖì-«£½Êz]çuLX0 Hþá…sÙ„óvd¶*ðˆáGžžH`9®¦)8­CØ`SEµNh‰Éô÷ò\3»F©“f‰û>fœŒ œw[±M½zF» ¾à,ð£O§YËðãO”ÀMe.©zºÃ/ÜùS—Ï+¬Ã…~D¹`n_ÒîÊPvI-³ñk^D3F3ÚxE!R ðàp‘?Iu˜¸–ÔÿáP oR†¸Œ{àR}®Ùd†‚ñ¾¥pWÆj…V¯½•YŽå>¦U²îÈâ)OX³þ±'–8Ú­žRSô$ (ZU•˜ß'R¼íS¦ÇUê4?i±#Jönb ³ˆW.ê–%퀂ŠuŸ¯L˜°ßrˆEÈ G­ªâ›»R‘°~îWC§ewRÖ{ÉÐ×@#ÒUèñ‘?Þ( ¿-bê9"ù.1ICnñ( Añ…joýÄgŽÊ³g~ê>RŽO'ÃíAê•S`·Ë »à†Èé=· ºzĘüZ«e¿êüä¹VöJ„€ë×LqËQbÉ:ay’D} ÅÒ)^êN—¿å)«É¡Ò­ø¹„«¿ë×L€FÒ©Ó+4­<8 ÒúéàDån­¼E ø=@xå”7O³¾µ|s&õ›4K`Øè£Ž!.I‹òäS&˜þ-Ð /× vJž­I¹H Rÿg2Q³dž Þ-pÖF©=IP6Tº™‰TÆ[*B&Û#g͆ï"¤‘ΪH3ƒ×: 'ËNgpœ8׊g‡‰Û¾0Dgirœ\GØ{4Їþmƒ‚‚¼o¯ ¦º{>ÿº¿Ýv òášqÿÖÏ“¥Ÿ!0}T¶[2eBeÎðÉKÛdÆš†3Žñí2öF¿½ïÒg¨ÎXñ~D~=ZšLíî8+Žß’ò¤w|Ë @I‚‹dþ®à;Úq6öéM¼4üª‡n÷6n!ƒLÊ€Aø÷£à*ð,\a+ÐwÍ~W&Ó¦ªÈúªOâõöÏ¢;@Ö@s%PªŸoѲ–Yª]Úl…ªô!–.É£.eºË­Z\:˜Ô6µ¨lÒ–’´)œn€¾µV ÏŸ¶ÿq‡!\=’µËr'ý¢K …D3‘Ï£Ò’ªÚäÄã¶Š9„R gÍÈÁtÁ›i$HOªOÆ}žð…½·QÌ3àLw5ÅãÆ?ÄÆHãQ×ã>uÃÂSü’f³‘¶±tⱺ†>3âx=D"Ê‚â É$¥+Ѓ¼]Á`àsŒkmäè ŠO¸ŽÈ–i$Û5 J-êþPþÊku­uým¹8E/Þ,lµ4O­EÜ&áYCIÛÒn˜s«÷W_SFÖÙ¤‰È©štP_NÖÐÎlYqÕB§:#£ˆi.0åœóI¦ÊØz¢€§†+6g6\û¤f!†*î‹IB+Wø†¸ñ Áư§6ÎÎ=+DÈÎ’š;T›€ÓYÀž””}„:†}šâxtØA“ #CîÏ*9û-j¯†Pw%¥âpvhQÐtD_ö[ýl VÞbñ§Õj7'ë!IÀUw=·¤Šò>9©žÅUtëät_hq‚Eï?Û[ˆüôA ¿ØÆà¸…]2%_py¸é4xCo:í'ÝôýømŸˆÇÒ°Å»æ!eëÆx‡Ëãðæ’äWÈzôiÐP¾ ´–'²ºfégBgðœu W€¡å–Rj§_ß<Éã î¼™œ.’´ý3"I‰™Ú©‚1¹c¶gØ8FV±l÷m)Ñôp;ÙÎ+Aµ; ™†š²z<¦¯ÎV¢yЪʀhUå#!­‡îy`÷`‰íLH.ªPb›M06S/ÚŸa¶y&å¥Ò34ßh×eGK²áW\5»xš+KïÛ97tµ@¶@·N²+IžMÊÝ1õ:W„zU7A»‚_zŒ³HXÀ8:…¥„uÓZ"^”¤¼üæ!²ìt•ã7¸ŒÓ!毬GŠ>;ô$Ôî‚q*|‡ÐÍPƒ;æÇ¯™Bíõ#Lý²¹f⤳ Š)§×l\žóI¹"X±¿E%,R M5(\¨»ê¨¦Ý5xžvO–ûw3ìH*. ýƤ+ŠÆ¦jŒ<Õ„†èvE ѯÉ€È!ꊸ‡ø›Þš—{ÎÌŸt4%´å·XtÁ€5ŒªVÑLÍî˜DNÒ»œ÷fÔÏ,X¹a£ßXP¼?NÊލ'òK˥Ͽ"pâ8¼B{¿1{ AЇ{"ÞÁ˜ä· -µ)±D“²–Ãþ;¼¥}ôù$E¶¤ÌT MqøZ¤ò‚×ÇÔ.. Åâµz9%ðý$³«Ò^¬|ØII¤”–­k®|N»ç?‘Á–R¸ŸÁÕ/Ètch×RüixpÖnYeà`XN‹·¼þ“I@Þü=†k"ëM:)ÂÛ?ù}0€sz'þÊÉaTßrüØÀç†0¤å/6ê-… ¨tð¢Ûe¶’rŠlQÑ’-5â?áçCvHV¥­Ôs+„ó¯…4ñQ­Æþi |è LÒ!ØÚ£B—@“sTµŠZ%‘%µjŠø0Š©`ÊMo‰Î&«žç.oà¶€?"ÌXÎdóê.MXÖ‹1y¦¥#ù)²ÀEḂ_jG†0ú,|Éã5˜Ë)†çŒ:«žŽ0Ó"Þ%ÌWBHŠ9²ŒSCQX8J„÷©à; ätÚ –Ï~wYÛJ¦¡Ë"ŠÒ6‡ëc%U%·ÄKܘ& 6ñý÷‰Ã„ÝãÛ”O’>º-bíQs†Š– E©Ñ\¢íƪ¨Â0;3R¢ ˜yH™­á •F]9{.ïÅnH$“1Š…Ë§®²;Í)o\;3ˆÀ¶bó+nLžŸ’ ¢Kt¥Q÷É' fЄýb`M lmÄ9…v¿‘88k¼,æÞ\²ìõ¡€½…-K›=DÈA(!ßý“Ý7$䈯 KºAP ò–J—M—BØE0¢æâ%ÐÝõU…@©è&C½•±û|]‚~®º­Q4¯"hL×XZ__ÕZ2eIµ%o÷¦ÊÙ~7;ß_e’BWÀéÝjh$ºÕj…¯Å»E!ì0^·oÐ{ D•§ëÊ6½%½{ÿ':ZÏÿÿþüš2sýü~ÂÒÿ|N½{Bã@wøåySa]¼Å~G˜Á¸¸¯ÄÑ?Ÿ ë÷A„®{2Ò˜'?  Ž…ëÔ—µŽ~Õ÷’¬y£^' ùGá‡íhÌVQõþ¶uÌ|\ÇÒUD\IvßópÈòSÂá»·ˆ¢û…¤&Š'b0BÖêJóâ7O²X¹‡êª‹‡Cuœàb¦XŽt&ÇÇÐó¤Ä gÕ¹æ!› 祫øù˜×{ðžÇÚ\îCÁÜü”&˜\NL.úüÝòÆ,×o²˜™1]óÍûÝþöÈ‘Y™×-!èÅÆqÂïi e"TД3\mªŒ M¿¿ÏD þ¤ñ»4NþŽÿ.žð7ICBNx›T-D/&lÁ?t;§õåj]ΙØæðþ@[Ð1daÒk•†ÝDß¾)ÙäEÈBDú›ô—iâÓ†µ‰¢»ÑÈ&ê½Ü"jåG¬Œ Œê.vÄØÂo0òÙ|Þ¿¾aÂ[vÜoQ‡Ah0Ëú9ÇÆ0à;lð­%ÓpM rå˜<﯄=ç•pþŸ©W‚*tüÃ+ñ³òJ¸{%ФDÚä • R¬[¿* ,ë«îðù‹W/¿áµWeSßÅïhò˜¼2x„¬îÏýª7K cDVjhIªg( ºŽá~0ÀÍîˆtEP˜cê>&€ÕUU$‹¦r|㎠=ß‘¨¨Ÿšü)Ñ‘´+.³ÉùN~¶åO˜XåºtïAº Ð¡à¥«¬ž}{Qž±Góž]%Œ÷‡8žPàEÞ´rê·ê%#¡È–~Û3Ž^[®èÀfÏ‚ïbASϰIMôÒŒ=2V2š9¸@œ µ ž^UV ;±ËÉ”Û__BTŠ^¥|ëœÍ¬¡‹Ý) ÅÀ âªq™˜ìu*é`\^IKW Ÿš¶¨Íp›‘f)iÊt:¢dN r-9R‹SO!Ùú¬‚Ž1’dLÉaà q”Š!,àô‹ 5Ái¿íAßȃ¾‘¤ÓáäXß ,Ñ1v –/lÓ£ÆÑtXqž›¿×)2$Î ÄgiNˆäõì|¼PQ.~ FÒËšŒZ¸,¾¼ºƒ Æ‘vHa8…k.&…Å :üæüä‰a!òBQ„VK­av¶Ônòƒ>ØÚ’ϧ:Õ ‹*ç Æ:!Â_’/½ÑÏ,QËÝ ÍÒuJÿ*Xu’ÜÅþÄO§÷)´Í…ÉIÛüRtPDS²ýdÁº.U5¨©@2©èìÒð  ¦ë9y¢Ä¢¶²in/ÅÖ÷į ó-ðÙgCOøá\Œ…Òb,”úSväÀTr"ŽÖ§,°bk¼•D1’ÞÑoåé% ÑØÔ›T²6jr1œÇ R·gÅ•/HIO¤›zf*'<¼ôê£@óDÊ_OMî(–RZ'–Ãæ²FÙª‡Iìømk¤fXO|ÐdÅ!¡ÚLb TxïR¯*׉{Mûš‘cöT2-šJæÜFì=¤{ÜnÙ§*>¥™TG±ü¸ ›Sq4ñ»ÐÄWŽG8ß@â†[ ü±ØßÒRoP¯ !z¨Xï’ŸIû~ðžÇÛÓæ!{:“§4Í,ØÓ&ØÓËõMw ¯ûˆÊå¶Ÿ™u¹=µ±g¶l%=‡¨šsvæ÷´‚¯UAXL¡©j¾`,ßdgÌõÊϽ–ê]G iú†Ÿ”ÉI•¨gÌu/ÚbÔ’…[’›·™!KþL‡Î¶c½T=ÔK`ß!:cý·–f0^é½Áô¸ÿ?(b©ý/†Ó±Åwh Þ^üª{íÛïPª’¯”G{á4á¯Ôû[é‰*é–h]Ç6&ÆäyÏea6gÇÓ5Õ¨3Éx6&õH ÎŽ§Í¹CšËóÖZÕÊåü·±Š¤Ãy2š‰Š&?¦¸2/c~?å•Äù<á‘’€´˜r¤è¯RÇ„#ÌK!B7”fîþØÈ4½Võ/W¡TšßϽð]¿gv5HI±w$AFï¥ä„d®Õ„k&38¹îŽü*wüèºàäpÉ w=jäÝ[–Tì™8G¡YËy7iÆ)_GŒ!íLz“mÂ.È2V e¦6f†vv¨¡¯Üµq=lÊi½qkç$;Ë=›Q}s å7æ¡G^lÀ±¤ol±£àYú¼•”ãý ;|Óª³p3÷…ø94ÉxeD·äÑ­ë˜ÄKšYü eŽäÐØ#%æÕ,×öÓu:ÊØ­t„V'‘1Sˆ(Øó·ºßIb_YÀøfÙ§œ¯®hÓ/ ‡…q;vÕ0#’ Ñã¢è–‚’ûi¬¢U@q@|ë \À5ÒžlÔ‚Û^´ jQ;ùþ¸wðaã@»C»Ü÷âêkJèXÇà1ös¨ ²µ–ÆÖð.…EW*\RÚ@ÓÀ>K`,)j²–(-·Mc…D–µ¼_Qï6ÃkÄ lh®àcB] ¯dcš8¡x)ˆµ“©µÑ9¡‡ ­§ÊÆ%fìííVnºæ¨ý>Ðé"XM`n€AÒ"a0Eü˜!MÄ®€Õï•95ÿ_´bä!?³(ÀP´åsùq—¸ÿôž­ÖßâÊÒ}¹zivü»¹X–í¯Q¹ä¶ßn[×=ÌÿúJ—tÇ1¤îÎAê¥ÿg ©—„ªÿRÿ9Aêå„Ô±;Qr!|1Gɶ©Ó lQ`Re䦿ÛÀB=ž©Ä’iÜJÊ9ôZ#¯¡ø œ…t¯‡‘‚l4â ™Ï:3¢o29­ùÄÓ2ÍH·^˶6pšá‘ÄLÌíQ‹UõJ£¦—i?û4ÈF¨y –%ÐFô±ùH !N4y·$¦q‡Åz0ÆÊ’w’oÆ\~¹`/+°Þ08œ" Y’wߣM'é’– ²1KÏZÈvèïIp'#hj'º#€fĶ‘¹@Ùë$®@à$„+©Š¾ "A”§ù¤ºeÈYQ½¤øGö\bÙ¼•‚fëŒ}5íõ¤ðïf<}d¶ª7’ÁqÃÖAä1“Ik†c/£LAû¤ä)°ÅZé|qï…ÌM²žÖ±w› ÜÎ-ôg'hr[>lël2êýgLÙÈÈ´¿íDŒî#:2@<÷”Žl 6 I>Qì;ù(Ú6@”|UÞÎ}ê BaÕ-M“?Ï/Ö•ÄÙ´y›¶®/úËü3\ÐÉoÜÿwFœ“žHüU‘Òaû9óD|§·lyr¨gÇ»«èË8ó³Upý®ÙÁT‰Fá^4g04ÈÏ%,³}BºÛ¿c«xPµ÷‘ûå@éÙÖÿ6ç­hy2^W²[-*zGZìë«…æU0«¼¿iö$åÉI£¢Ÿ ’ê’,¬ßñ#”R˜¯9EG‰Meõ+sÐÉj’XÓ¾YÿìŒ2Qþê£"±ˆ°\3Y¸@›…Âe^ óÀ2½c`×´."êoNïÞ)œN›‡ªB°w[©ÈÍQ§Rz ¶y«<¹ipûFRêã|Weh9m±¾¬ÑTI°Øø,ž²Á0xT,޳fE¼ R½{#f²ÏcJ$¯Io¢óµâC‘‚{ÃNk#nû˜Ã,7f+‘Ò·ÑWc*WŒÝš+Hw)a5¼·Þ“³¿HvW *«WQV¯ÒØï,•k _sÜ¿ø x¥º|CayFÒµ~ä*tT™áXTvë½&hm¤€¤WÀ2rGf\û~°hÞP¼§üü¶„‰ZïÈãb>y©¶»^±T#4‹÷ 6¿h… Èxçßåß*(Á=“t‡bD‚ñN•T=³qHëxo\‡ð¦YÞTf¯Ãäd}›30Êð¦Ž;þ<¶hæuï¿`QŒ¬¿ ~,Ä©y°¢€k<¦Ü?ò—Û«Œð€#-iÛr!°ûùcÛ_†ïüZË{‘³G2ÏM/‡.¹JFšGRÚ[ý>Ã1(ˆº\Öí Ȭ³ wàx±ú”øxv!&Ó¸]¼¨ø©É»Øäo’Ì$d™ÇnÅÕƒÍÂõ c jP¾bÃU#bû]løSÙ;”û }ö¶eSöÒVš‚™h¬áAµš”[ø€ˆ n•…}$JÆÆË±dd‡¥mAÃ1 ƒ†VÚÐz*(UÅpˆ/ =•µ¨6£" [c³Œ~ºQùQê†Ë !Zœó„ùcЅQÀ"Û•ËôÎ>à ̼ú¤Rÿ†¥¾ï|ØwgÎå•T|º½õs¶VBI'æØ&;§¢¯FÍÉÖŒ “¢Ä\Æ]h.ük»œÊÀM ¸˜ÆÅLŠV˜Â4ÒÈM8\µ¡ºlmæ\yY¦*)¸ “ßháo$¨VˆcwÄïì‚üÉÓ55ðÂN x=󟥂踫KVj¢=¸ºÐàÉa ‘9PtªêÖ‹¾p‘Šà i&ÄŒ#¤4ÊÆ”':| ¯Îð–-çÿ.˜¼Rö+êZä—ÌϹ6ÝŠ`~r¿Üë7¼Òä‚ÿNIi(Y#Ž”Þ¯õ5™¼í+{bRÈqôÁЍ'®OÌg2‰îüöÛûK³Ò¢`MÚì/&NØê Óô¡„èÐß0ÆnÔAÂÚ™$‰Þè’($•Iºà œW˜G\ xÏ)¢‘\aö:“|›°Là+ÄšÄXÐ!!&e¶R¥ “pžùÑÏ\ÎÄ<ò¦R–Nö¼>nM_ËëÁBf‡¯3#ÄC"öDL®d«¢ðnºß]lAê¯:ia-4hØBÛ£ å9 ™PŒ)Ð\Öü ùç4W?h–0œl†3ûqa8»ÇTJ}ÇRÊÒט¼•z)˜çékñ‰õ@hW•roáîÀ}„pË%ëuÃë5»¼`y½Roá®ÛL2ï½þØç~D:@´0åzl~Pm+AR7I¢GÀfMî W:7ޡƒÁW½É$‹ô’Ò–èfë*«C½. ²ðÒ¸&Ž$îc°?e…²n>£Âsb |¢!H€Í¯zÀP¡‘þaØ`ˆD /bQÜ)±àǤqÑ‘±VG=u®911^ù¡Uöœq?‰Ó¢lò‡âÅp¾K~>†óâÁ{/fŒ“§4mŒ³I¼˜Wî/lL}&ûÊäE©º”Dø™Ü«¶¤V¼ÎÎDÈ¡7.˜†M¿ª¼î®#Šò:(bfE[ççÚZeçcÚQ[!úÈ”Ô]&»~t’Ée Žh<‰=Ê|[E{T¦ƒÛŸ¤rmΗýÁ‘B¿ªÞxÉ’õ”´b$E$µ’ØEX„F$ ww…„^\Š™ÜF;ä=#¬!õ‚„ƒ< Kž€Páó“.õÜ¥EBe°å0úÌÔ¨©ÑGš¤äÐâ†4®g¢¬e1åsýSäzþüËOAœ¥” ZîJc¸fçÀþ-Œõi;LŒTs³¿Ù¯û]¿¿'æQ3éñJtG¥e„s¬Ÿ†*‰\J„¾T•‚TÓðerÝ>tOT*âƒîêF•½Ñ27>#õ·ãØr"vRàðÂÃW]i ˆ¬Ç"ì°Em¼qÏÑ"HÈeC%IÐI'æ†JäaøŸd‡Z²"›„Œ¸áw^ŒõDXë…¼ZÀx´©+à é°‰ñû«¦jqî’ø ç¹ôº»j½}çõ—‹éùzž*âág]ý”ë~;4–±!œƒyðÇ[0½Õ…V~dŠÖÑCC/àxÊ7+š'\€Œ³¢ùɇg;Ü?iʇ3ÍB70>bŸrfÿd¿zâ%Ærÿûú½ßÀ]õà¨Ä xTÚ+¬Y¼ôE·¢\uúû§•Ûþ°ïnò¼{Ø­hÚÉÀ$iB#OÓË~MÄålâÆ˜Ï–§Ç…nm–¨’ë UÎ:‰ÝX'±}»g»†Öóc8l…ÈÍ/uÛ‚‹>v™±UòAxSÿG~¤Å )FtË’…tæõa ºwðxhPÍùp’=ÃN"Q{†"q•¹ {gðù¯â&»J¾ëQ•“õ´þn<½áHÍ}ðNëvd“òê]Ý ‚«­Â¼%¡»’ è•Ò±$  ;˜5¾àž`¯i!|¼ŠÎˆÚt™G†epL8‚VFÐÇx_ ’Àéó ‚$pÁ ’ÇHd?$Hbæ ¢RbD… ‰”I*‰.~ +³+³$A‰^üˆ Â,\ƒ$DÔò¥™¿ ÃÝL.¾Óø· ’ˆ=å" J…‡ Y¬m”t}%½ÔÝ)Âóc3¤”U~%á@Ï–FIÌÎGId?8Lâ|”D6“p5ŠÄ\ “H£$²%1‹QÙ#¢$\ƒ¤ÈÓ(‰$H"»%Q殼è¥ÏÊ ¯}⥧ÌˉÛñœ¨Íìde=ì¦_Gï<nPŽ–}ôÍ%ýZJßœøè×â£÷BZ|ôýˆñh3öÑ£°yçö.Ûì}ôÑçÿí¢ .H}ôES€^^ôÑëä£çßeû3ñÑÇîŒ|ô›ì¦? õZG™«t£Q?f6Útä¯h¯‚cësšƒ–;;çÅd@]]g]ùÙqå'žüQàvuO'šþ)ž^Ó&ø<ýç„§×ÆÓÙ‘/x:‚6²ÇmœÆld?*fCåþŠ!Uñ£#6¤ðãùˆÚº³³IÀFv)`aÑeóæ!·¨²© œu„4![Ò‹ºÖâôX¥oP业ÿƒûвVÐV# ³ Àº!›æcÎŠŠ¨ ¨­ñ#œ H×J1½MŠ )aÇ(=Ok¸lïovÜÉ¢EDy|ü€¬çŸx퀾FNÎÒVÈn"¥—ø<©ÊQ6:bS/„ ÇŒ*«(&´I1!ôÀ aÄ„¸dÊý“*_ˆƒejõ-­Ê¤÷שg~«è¶Í¹ö÷y¸ËAu|»…ÎöZN6„ìÁt4Â`¬Oó1ézô€sY§à©¤Tv |L0àJr.Rú÷eh„ót9O çr^‰×Ô–½V”Âãkx„ÔIâc ÷Œ"¥F¸ÖÌ·¸f2ÎPÛKÞN¸Vcn‡ØÜA’Äzèýf¼”ˆÀ Øù=’!tÙÄU«r '·åYËþ®¶ùP8úm¯Q…ì?E8y5Ä‘HJƒªÒz G’¬‡¦§þû=’Ù‡bòÖº`)ú øI {•~×–8Ñ/Šá‚¿¹ýŸ8ù-o^?h&¢Oá5þ 1°9È<þƒiÿ96'f¦HE6fÊ8ò ™8Ã1ùâëX铤F‹)*™¦›GRk6u¿ž²c"ï¦\¢—ª£3úIúT®2x5P5[˜Bcb'§õ†Äû|Óm×ëÑ¡fÊdSI‹m×ÐR‚¬É>~/ÓI¸]f\]§ávMiX•ë4ÞðL”Ý8NQ¢ìä‹kcË›"ú|)ÆŽóÛ HweW4ÖÉŽÜ SËùe•SÖ¤i.3´é~ó#þV¦–{8G×ô…ä»Öyu>üÍÄäŸCø›ád‘þfs§)w—0él8*m˜”=þG<'ˆêvP$*n3[8wNqcª‡õTq3|ƒ/IŸ2+\e29›>e¬»ÍÎlC•‹¶ZÞ»Ê&ƒ™%}6ŽÔ•,~ð±“?EÏQŽm5¶U#I¹$ vgvÁ¯JÏ»íõ\ÃFä%U7ç0uÔa'V5N+m#ãH­6RY.”¤›CmãŸ#l€-«^Î,€k+¹ýp¥”F7ã‹ÜvÃá8I²†•‰Š­6¦®±¦= ¹+IéPÞm2lÅ;ˆŽûwþ»…HÁä!«ÓÐ$†à«SÔ¾q,¢ö+x–“L×!t‘Ð ÄWÉt;Õ!3h~øɰñÕ©¯_Š×ïÖ~„ñôšv²Ü³Ow~¢äR¯¦àxC­Îs¶û+qF‹ÉžØ'OÔHú.)i›¨ü]ò&ë › ­(T!ä鵞pš'¡ž~ùIÓ¬€Æ1KT Ä4¾0âÀP´Äy<–¸´3”¾È(¬&!A1Éx_²¯Î%\Kóœ#ƒoû65›å;I±aýëûa» XY*‡T Á-bòŸ€»‹áç. :§¨òƒQƒÌþ¢¨A ÌŒt%pæ“°AWÕÍ_7èêöX;8,F÷”&H¢ßˆ±vý(Öns ¬©ËÌ5m=Š0ªÆF§‘w•„Þ•ya~Xè]YØ™Ýq¾K~>"ôîá{zç ½“§¤¡w. ½SV6biÎ1Ÿ£Êhrm9&>OÄ(•¯`Bñ”£RXÄs+ÏÖ ‹Øˆã­ö´^}Ê}[šò\žFÞµ•^ å'¢V†j£³eeK;¤|XÙä NÄf~–•m6âKàvºÆÔçw"0œ"î¤<ÿqÿY!î͇wZa‚¸ŸFnÖE7™œ7,·SÖ¸!ªHÊ'úÝ*’‚P”¦ú}åÌS”‚å”ó?Ü-î¹ cc”‘)ÔBWZ’4|”=¤ g˜F³DYf~ ¼?sx'ÃÐ)ìçŽC'[DNòË@…&;hU–³8à˜Ým•D{HÄK?Š|˜Ï0³b&…™]¨2 Ž~LùŸG#4aP4ÄÆL÷œ @ À©)"Wº&ñ¡÷»â¢?Æ"IQH*¡-îJ/°ªp2ŸTˆ¸êihÀœ1ÝüB«;‚¤µì¹¼)Âÿ8å!TÙ@›ðÙ<½ªÈüŠK ÁaÄ!/LFRkôI‚Kñ­aHKìú„(ºjÜy …QüJÁˆÊ,š¡ú#ìâ~ó#þ0Jõ¡dE难еí™X>(b|qµ÷ȱ“Ë%/™» R«¨ û`qM:/Iøù˜Dƒïy¼¶S>\\“ŸÒ´±ÐK™h;Gª¥4a¦å?rúA…Tµ 1­É5QC(/1Ó¾øE71Óâ‚ËÌ´·!jZ¹ªËH*rœ›è.¢n”f ˜¢½”5 PÒ«(óñ–“ò/ øQ® :L¸_jÌÙTH<}Z@€Ø§Û4h-Rø³ò}ó'OhG"‡bdÜ”°tTƒÀÔM­Ñ|Bè£ù >}FÕ,üªçLv1/áB¾Úú×·I6»“NËp1U5¬pêÙŒ§‚_MÎÿî\RK9ÓsÉT¸£Ñ¸/ÌÞ¸¹Ìùž²ù/cD§´Õ„íM¯ ·R"¤ËFo» ¤KÊ‹¡ "›å«ßÙ.³ù‡ :üæüÝÙü¹WíˆÍßÖäFQ³Ü À»ËHcë3 ®ŸØ]KÍV‚¥£¨R–t-÷€5©q´‰áÃ*ñëXr+Œÿ–ïC%YSÆ" ã”5žT¸[ŵ ;R®–{åQª #ñèJ‰¬ç…·üxX@­…Ç*©+”ĉŸ–ª®x‰K d¶,Üi줭ó:Dý)îóLÁQÖŠkÅ€ÆóESº"î[JNÏFäɸHØ9h)k ÷b~뿸H"Ûºö/å ° ßÄ FøëC=E+)`±ê iž8kƒQ*8:žAª‹OØrµ¼,&(ß(›"®èKœ¹-„½Ewa†H*¼=–G­O;$¬Ë´oðK:°Tç IS……£PCùªQ}_&ê{2ÃÁÏ£.¶DæØ½Ÿ¼*ú—²Bë›D4—yÀ‰ @Иæ¸ Nu•³Ñ –%%1\횈!®~,ÐïËR‡“kˆ®âG¸Á2æçl„a?»=PCaVÆ< Ì@6c²Çs£{~´ªZ=¨ªÊSR`®ÂèdØ1(Gšq¹ª=S-¡,ËZ7ºÔHa±39±¸ô¢Jjl† >œ;CN¬^œ{} ÿ-¥íVáïÅÔÑ)ðÕœ¾ZÿÏøj ûúðõs¾Ú¿&ðû_%À*Îl¥ÓÝœ×SVÌ׈´d#iÉäW™×€¹“ý>_|¯›uä¢Qk":¥¨èž·N˜¨±%$„3â®E8Û×qºeõš&R|¯YîïO¹f=箵òÀŠ«ì §ï ø†*œ¯;e@âœþ”ÈUäKÉiⵜ²waa/)z'ÑÃ")ý‘m!MÊXKÒš÷ÆÇ%¢¯â¶½É&uáOYž¯S>X8-n:b­ ÷†ÜIšŠ¦¬âö¼þ{G© I“ÉÛö/Ø5]ýìîlŒ{±ç»äç‡wçìá{.îίtYdÅþ® Mùݼ¾*Åò™ÜÄóËJT3ŠA¶ù8yåõi/%Ž“Zc”M¦ƒyä Ù!Y~õêɤÜb˜î@FÑ úQÕ‘j{é/ô éÝVØCÇѬHaIÞÀíÜÝR呃„•hIˆ£‚êi5R]–YRyTùÂiÌj ¸JÝý§¶€¡³!J•ôÿíÝ >í¼µÏ³¦…ÌÆWô/Ô÷ÞP×-â®ømÒª©”î†@f¢¯†¨¶)¾P¼„¸ ͆¤j•4z›ÒÜûãÇW Õç, üå¦ÈC|Tjç0åÞ†Úø—ÛJ„vddPx¹ÞôùŽÙûg€z#Ì62&YZÛ¢×L0jÈÄ 9îyIèÆdË£`‘u6îòñWWx_ˤHá}³Ó÷­Ó÷E ¸ôu“·Mrp«qáuWñuCŠ´C’2½}úèU6~p¯½®¸ÎÕä+ÅjH"º8$] âÀ¿:áßdÚß@çÆ¡(‰CN ˆ&¡cÔÚÕ10K"G¥ó Ÿt>Ö,)•ù\ªÕ&UH´pÏiE…³¯¨yÙ”#Ÿ! N&Þ_ ð=ù‰€Vívg87öâ˜Àøa¾gWXòAû4û\øÂ®ãnäƒ%ØLY[¹ ¼1¤'K¦­9ûŠ¢L²Å Ь¿8üþþ&”Ãq ¡‰û£$™âSEy—ÕÂ.Ñ®V gWN‚lÓíåšÕ†$ôˆ~£¼‚Q­àó9ëIN‘Àó/eç%w)ä·Ÿ+›êb¼s¸ “ß•ËÿÞ9dØÆ×øCˆ¨ì‡C¨ÝÆ.|Ú6]MŽB‘àj2ÿucZ®ßçø²Ki¹zÄŠÕUQÔDMÚ^fÎÖ •[KG~r{0#7tEªÐêoà!úäÊ¡ð¹WŽ$ïîðyõUÕ_ш~såD“PŽÖƒ·IT€Ö%íÒ2æË‰ÂáÅÊW8ú»Áÿû˜è×?Ùm{þ|-¢êNªO9îù%W 0’Ð92ýJ4WIé¿£ìù-ÇA d½­: 5h8@ʬ”RŸÖ-2M9Žïº·²ëvËQöOG —EÊ»ç%ŒWŠªÅÐ r ûœzJÈ%‘걡‡fþ«÷¡ÄÄŠÝUZ¨Qw¤ˆ}œêÎë Å"Æ lý¤,¡6g$T\E†¤=)»$~ô]E&÷‹Ñ/زÈÛËH/èô·Âß`ùÎ=(ƒ¤+ºŠF,©í¨êÄæ¨”úöPÛÏ j³ù# 6|Ëúb'ùtvé õ„éº w<„„G±¦ãÙ¤ùÆ’¹}G;˜ßÀ¨Ìo!-I…›«›9±-<¹Ûzö¨Ax°ƒ$ê5&{n§’j¥;‘ÁÃæ{ö‘Çæ©ˆÍ›„Ÿj¢6Sü==½B. ”’ùHû‰ÔZ=ô‹‘ç2ä¬wÛ­„ºÝßi9ÃÈêì-ÚãþZñ¨ïºévþ³kñoVºÆJܬ.›PAsI„0X¼6û~×ÝpVa‘“/Áã‡=6¾Qxô7Ͼ|õì7ÀÒzc‹šõ–’’(ìä™_Dý; Ù¿¾¢}ãÿºGÙè^°„õðä,§Ø²*êpS^A›àß:±¾? émB“ ÚWÿT&–Þüo‚J|õ* *Ña“¥ °~­È¥fMð³d§XöдwËXu#㨓•ðªHHP²¸Wé|—ü|’õð=ó3ù%3ZbgB¢ø)êgâ磌ÛaË,xÇßr=Úã\ê¶c6Rýw~2¨2+¬SÔž ÚopžxÚŽ!a²ªÄf£ùDeúøÊníôžÊA+ÂMº†Qt¨| (ð }þÕK^r£ª¢~:½Å¢XÌ‘mvÒC 8MòjäQGM»ù“% Þ`þÊ„4îaƒNœ­š{ôñh?·‘+¢ )¥bU)ÛâÇk9㸷 ¨w H.ðeû'$e–™H*ôí·¤ØÞÏŸ<×ÕOÞ=iG—í—ÿW¯~óõ‹Ož³/ïT¡yGÆý™û½¥nøþßq:c¼Õ´äéT†S42ÜâS?\+;§:¾œ.¼y<IT†KîE•¤wÔä”XÓ(¬h€™1teÑÝ27Ç2ÿÕ㻥ò&èBÖ+|@ÄÕð7<©+–>ÙÞõ‡]w×ÇŠ&yJ{ØK o<3vM[ñ³eìx€l^†?ÃsûÉ7ÿõÅ3Î:ˆ'¨Ûmí §ù³/?ûL¿σŽ؉CA -Ä%߆ü²‡ýŽØ¼úÓÉ;ø0Ü ¨J-œ¯’ž™œrHˆÖ6yw¡ÕìB³óþ¨ÞƒâÞƒB<ÿ|„>çñ2×<(så)©Ì5`­Ÿ}¿b‡2åSªÄ]Çý?•¸™q¡$¨àgÔX§¯»„“§6 ÂO¾zÉå½Q’uo³ Q‚o`G?#&ld¸é9eq‹ñ,uÕJ¹™úr7ÃfB"7bÜr™¦/Ý:¥˜Œ&ûJst£X=‰šLF LE©Jó—+Æ»âm4ènˆ6*"Q³0Z±ô-­¢ñ ¥¼Y<áwÁ˜a¹-d}Œ‡´ÙnÕ=RH€»‹±v(\)†‘Bdp©„P`ü Úè ì¤êì0Î) ŒtÆÞZ¹–-H¼!w¤Ï,9ß’›7 ¢`¹} Ý@û$aœÓ¿svxØXý=µlôU'ϣȲ dù Õ_×#nVáTxÉYÎä “ï±ßc¿ÇZ7ü;ÙL *Î3b³F HsfÇ)òªŒ§²tÇa=Hã)Í,é<’¼xt6z¡‰U¶íîYž¡³Ý]ZÛ@ä6‘ÞÉÓiÅØ¼)½x½+½F†¿É þÛÏ^½üê³\ÙEµ©käJŒ‡nÉ  æÁƒ€¢CÐá¼jäÍÞï‚”éù+Û {téjE±\C7½ÂöÌ’“0÷±èaT'ÿÙ+wñ‘g(Eé÷xÌ+ªŸ¾[²@·HEri OfOb/^¢l¾†ïÜK©,v»s '> ‚^1þ\…W˜»01eh%÷Vse S‰œ…Ž}:Øí†ãÍ9æb õ²Áý¡—.”9³(¡­º–>ƒ£ýžÂ-â¼¼&ÅHRfÈäOMÞ3ŽAÁ@ÉšQæ¥ÎêU"Áž}ùùç_~Á:C=C7Xg°UÞøI× #Ⲛ>ùôÓ—_¼|õ_LFÏÑŒýìå¿ýÏÑ‚"Ï2Ãv¢< ¯Cð9–ü†!‰v±µ˜÷rüç¬ØÚåÙWx¢~\üÀîy¼ð`Å îùXàŠóÏ >n8x¡Jøx}040]Z¥fS…a èÜ4O¢1$ÖHå•UØpukÊÕºÕó,×ýï‡T8da×"7\D9Ò(š{ Ýûõ³$`y¼SrÌÆ ÌÔ÷Ì÷½’S¡‰› ±to8ÍáäMè*ÔI í"ŠGJK¯uèžUŒ_s’X÷\Ç…½XH¾¿ß-µDÁr8¾ÙKˆ!«»£ÐbŒKþy±ì¹ÖÍqxí“:[ÔÙÍ4™:‡`öLî]Ú¹¨z@Œ°â‡E¦ Î¸×µß-¶^R×¹ êP`úX¥p¨„24õ<‡ãïÆŒnºS®¼$ºÇ¥“(ã^ƒ¶•LÕ;Äì¸Âx5'm“H22â®>[œžé`ÂYŒÎ Î+,ž¥îŽ¡R-"Ü2 îz²'*[݈JÝaJ¿u ßÀDÊÎ}kvèe‡­§¡üz×!*ŽcT˜qÒ„ƒß6PçõVö·ýádƒSOóÓï8Rà u“¤72¡__9ÄÝÜ1TàGþVçûù@øiç×IÉlÞËu¹–©êñºª&õ¸1›Ü©_B_$m,ÔLI1âO•©âX# D8Ûï±²? 1!cÄw¼ÆXi¬qjT ¾Õí@kr)x°ïóRŠMÇ| ôÇ;üx¼è_Þö;LÒa1C¿žˆ7‹ªÐzÍx'ë–À&f- ÷Øãb¡È„û°;¦†Ç*Çþú=Îã~ñ¶—¼Ÿ_\Kàp% ‚'d^´§—¢_ìöA}7ð,×=½ªZ˜ŽÇÄÄ*zŽ'åfO‹¥q `£°®–Îpïýíþp÷„›¼ÚÏ}«{Ö*¿(ñ±­Æ©<ýH¡ØŽ|•ôC¬øC(13;âý /çbu3ÒoB¶ÁÇÜë²”¢Kßæ®˜L§~þdwëï3¾Íðá–ú)ü:‹C¾ ÿ/‰ü¸ UU$O²ÓæÝ¹æ?þêÅ¿Ö¾ÙøÞ¼(*%>!ñ"Â"?ç,ü?SG ‘”ýÃø³rtjÌ½ÌØìÜŒm.M)ûÁ)%1<¡´ÎÔØp[ŸãÀ¹Ø&éIÌÓ+f–7¶U|x¥ˆ·¾² ¤šË$âHÓV9Ôg™A¦h ÚT¥hU—EƒÓbè$FiüŸåT3µˆ%óŽnM1ˆA­€k%ò35´Ü¯0ºüwcÝl¡ºY¦Þ4¡…ž,n”»»NQÍ1ÞÌ"bÂzt$/\ŽX®¥˜úÑ#j °¢M+ÑŸ~@ôfÊËDeÁI"vs’Âɺ”¨ìH”`\§%’¨Žõ‘pl­åÅ*û8 ¼a:‹Äù››òAù…ÉqH´eÄÎAÞïØ‹CeÞó»Â NB&Ô­3£=ºo7s´HbÐÙßgê=±t¾K~>f¼ç±˜€yØ›ÉSšR1<±:´Ìˆ ógBÅÁå“9Û`•&?;‰ö\0n_¥ÇíÌ»(57AX†x›—H HñÚ¹RÕD8îê˜îJÖŸ±#¡ÅÊzNŒ RŽžÒ–èÇrøKæ› ¶„žHÍV㔪0„`¬›&ì61½a6tŠûvÞ?] v¡o¾äèj†ô¯9„!œãꊪ-oB¢ÖÛH¹ÇZ¯²´‹{q8óø7áºC´õ(Þw©œ)^Éë~Ì1ºÚ)Añ…3R(Qcø&¨}6JpOÚ¼D\Ú|ñ.¶¹L„ë‡#´W‡~ð·)º†vRlHòå`-ªññU&µý&¤É+óôèã $ B{C/p€˜ý#ûî&X§‰Û FdÆP-úù+|‹v4‹¤ÏaŽúCþo¬="µ³^c}×Ãê{­S.y@:ã [Z<?0àEßÓFØ8´œ¦ÒŒî¯Ûû> ¦ªF:Ðñz•ÄuØFR±Ym#WIžÛr¬z8¢¡{E›á¹ µÐ8ª7Yz‹±”G,·´á|ÓEâ©"‚4—¥ Y¦B…û$DSË l/vÛ t¬¹öêyÑ,¯Šœ(7Êò"'v¼ “ßÔþß DóÁ:’¡'Êã´Œ,Tmê$BK€ñgIu,±¦³sTŸ«ql­ ¹‹ÿװ󟯎x/þ×ñn9ìŸnþqñ!—(\²žÿ/¯K‡³œVÏfó_„ì­Í/üL«©>,¡³OŸ>åC ã~/sæÿì·OׇÕ/¨æÞ/¿øöŠº’Íÿõ_ýC¾øígŸùõïm! ¨7›ô&s9V8÷ÆXLÒ›Ñx|¶§€õåt<®©ÒišnOŠë06ÿƒº–£êðŸ¯h”œ)ê³ýÊÎ “³¦ˆs&L,Áš…˜äîé'Qؼ$?"…K°õãûã]ÂÏÄSL%<)ÍtsÃU˜š’ì³T / È‘¥¡}ZàoC¯±2‚°$l »öB¢V"R-ôâ=`&aæY‡DÈUˆ¸Ø$E_°Ä8¢Í±:'6s…¾²i â7*ë²ÐxÒ°øi¯s¬ü|²%ßÂzÃ("Ë }™éÀFÏÁöqùCYqžãM(+0òƒ-xÿ6ä£$Úp3øáfƒ1ƒÆù¥_ƒ¿î5Kà;\Ìo†£:¸¹fMŒÝÓ/è‚Ù½0LB7ÎôÜ…žsyמΠ2ă¦/û§¨ÔÛĪ ‰¼A$q—ÔMåb2o¦\Sû†/à4 *Ôô~¬»aŒš¤Ýbÿü~ÓK½P®vÔ”ö¶ÓGe›GÏoüþN¨mñ`d+ÎwÉÏÇ0¨ãw‡òÄH;ν’B¼¤Ÿøqq~»’Ô("™°Æ}È¢ê“óZÜ™^¬¦Ù%¶8*SMñ)¨Lå(þ*ÿ¬@eóƒ@å眀z”Mƒ#ŸxB~Ê<¯þ뫟øéòìÕË/¿¸*„sP¶,e(ãåX"jyL~'|‚I¦¼'Û¿BšÀ¡½Bàõô£Àl sðv6KÈc$Ó•ì?ìvÉžøi“ürZOö:óÑbfm+ˆ ,]Ö›”t¬×›a¥ÀIÜ‘v·‹ÜÎÏ ò8¡0Cd›å°K»%‡øÞð®0h _¼zñï/¾†òÏ<¾k]â sLÖlÚÔ %ÿÁüýÐoÓ|¼Õ)¸ƒÐˆàí#¬9{¯-2“H„B6S,+i‰bO!ùÝ~X*ë!é–Ú²b¹L¸×6Z†"¢¬,)­„¤ÙX”¯#³ñþ¶óû%éÇÞ]F é-¬9v(Î-#K!iÑ ¦äñ}PöáÇž0ƒôÌ’1ZO‹–Ôš"­*¹%îP̈ɫæÈuQ¶ÉŽüœ¢)iò ¥8GœæÉó/ûëÏ^|õõ‹g/¿¡5 ',¡®‡&ß8\H‰XÅ;yQ£âµzºÑÜYα&­ö²:S*;(ÁëQÙ*óz!áíA’iàl䨪%‡½ s‰:$Ò¿ ‡zŽÍë’¤z‘`©1jM`Žè¡Ùá#=»Ž,ùE¯Xºq ©c3Ê ¯×,Y”ËÙˆú{s¡ó )¡ÐJ)\~»ÞE" À-Ó¡r(©¢ ^.н²ß-C–î …O·û5(½WdWÑ\Å%exäÂ+ÝRQ8ŒæÓ«’6—"Âoد®12Œäœ“ü‰dº¤€‘„^-»Ã2!·¦òsÞXU¶Æx Šm×àw}‘ž_„s:©SX‹±(„Å}Û ¼%¦¹K‘ÑØÌ+˜îÌyaÄX§dp°gçÖ $¬»DX2ÔK%¶ö%ÒGcžî×Âï 3“’žë¤y ©‡NøåW/¾`¸Ÿ¸7t¼Ìƒ0áå Þ9[é6AìÆ%¹VQ%9#’ѽ}×%e$/ñIÌ€M ‘\%Ÿ‘FŸUòá] ëæ´”ULÒ™NѧWU> šîŠ£Ñzûê??¥ÅýÅ—ŒS;ÖÀ…µ‹­˜U‹S7jBf¾úò›—ÿÉ`Äx¥cC>Å €D,Ù¬áz€e&ìÐ}0)+Çýü·ß¼`pëå§òÈJ™…½âÆ(Í2¿S6ÔI”í‰pÄ$ÿdÇB¦(]3ÈŒUßøzŒT‹#ÚÝZÕ°¦14®!ŽOûöÜš–0RÄ!Ën~ö×ó—+üÓ/~ûy²µSÝ ٳ3hv&hvS¼úg!íÑ}i7‚´gÒÎLÕN mËeƒb©ÇãUAî3¾òGi¹)EµŸîª0”ºPÙËÀv¸ Óß­ù{D/ÃÛYÒŸ™ïà÷:셫ˇÇ"\ cQQ.x娖ÐCá/CÁ¿ÿfCQ©·÷%xèŽõº :MÖ[>!$úFÂíGŒ4ï eß%AU·™AV4ÛÏ>ûíóÜ‹_$ Ü/èBÊѧÉ>Õ—Ùüß¿þäÓ矼 8ôó«=ýÍÿû«ßø=ù¹ÿ·ß:ÑJwªú¼™ýâÕï>ùì*ÃI¢6qh‰úgþì“Ï>ó#!–åsßòW¿yéUÓùËW<ßj†L›ÉíêSQ{á ÚNyäjþô‹pÏæ¯~ã÷M\]Â’ ݨ`Éñ¶JÈI^ÒNò¯ÿ¬`ÿ?‡7ÌlƒÀôz=îõg_úË>y®Ðü™^Ç-*ëñ(þsAfgN¢{üZ-¢xž}ö¥ß>Vr=:árDÕøÞ\záø¾®€!%˜}æLÓ*³¡ ÇV³Y‡ r¼J°ûZ ã·'èë*EÓuŸD÷–VÔ˜ò2 c°ñ&ÀÆ.^…ߨøMÄŒ—3fÕ…AcæÆ[Žë‚÷ f¼9ßë,fÑ*h\rüy´oc×lë謒¯g’@Å@Š'‹8Ooµ2ò=Ç)Oääx#ÕÙ±‘Ÿ޳GÇÀ³óÀ1\<`Ù?CÈ8Ñ8%zÜûÍÙH•´Ç+ ·?Þy©;f`_“ÌGŒ˜ºž±±ù%yÚÿªâ– üj{éÝžÃù_{u&ð­*MÜ=l‰k4HÉUVû–ûû×[æEíƒF”Í\ š˜˜ï Ð°ŒêÀÆA1ŠÃâŽÓ4nØÅý#Ãb~—\HÉ!Ã%>WaAhŠ*eØœÃA'¤#oC•ß+dßRé]9úÈÕËiŒEYnƒµª ™½ÏÈÿ†ÌÔ˜3Lspæa½óYÂå2A–O0¢“ä—Ä7hŽcR˽8Á2qiêƒf)û>å¨[GÇ]Ϫ?/Õ7?wk¥®’|Yª0‚ÎHæ=Þ_îcbGALtT9‚ðÈ9ÏxÀ°»SBS®Ð¶’Âáwœ¸ª»#tv­,,VDôúyËa2qñX`Ç ¹±‰ ¢š3ލõ™ÌòÚ˜QÊšs˜¿õÿL1K°ÿ?0ÿŸæoÿ?Æ(5ö ~ û2¡•bÇ eú…”òf¦Z‹?~;¡•b—à0¢ðëö"é§»¹ïrc_pJMœ02kd7|’0LÉB\¤ ‘Òï5u3àœýÀ{úÄ÷Í‘ä6{Sýf™)5™ò¼^ÿ饿ç ¡ÚgPµìk‰ ”§<ëTÍN‘øHë7ÂÌç)}””s\j.Á(d`¨;Í.Ј@XÑ©/Qäa›lûCØ;‚{­dRpjœÖ±ø¾ÚK1xö«P^ÿ@2âTh¦Ä›t‹ À½RÌãØDÈý»}¢^ðè3á3NL"ƺÖ%èF¨[và« žÁÛ½—1]ãŸwóAŸ¹ŽSË–©R>@_ðÖ:¶Í”“oÇTGl+2x7ÖVû¯„síÿtËx+:BŒ£š)ŠÀ0ª´5æ)׊[@÷\ªR³S£Aù€¿0N·Ê¤Ïa¤™\ Þê#15¬ë)îVÞ1ÿePg¼ Zr¡­Î¥uBZÌ4bdÔG>!WïF^56~_i»ë+§QùË "¹äÕ: >:ªé²Iò»%Ñ1z+ÆÓ{¨ž XÙB°o4þM„×—2fiÚ (ïÁïØððܳ¸H#%U!à ™&`~,î˜í!Uh«#ÄY ñØw‚Ò¢¶^$\½ÍèGð+OêØ]Âù©Üsñ-ƒ.íŽ4RÈÙIâð ¨+¼RÝñ7I&ªgw·§ºåß¼ùØÁ©¬Š!®»!¤Bf†áN…|;J…ä…áo],ÒicŠ‚ Ê Ñ‹$B©Ò)}!d/¾M|Ícˆ“ôùc¿]]«&ÖU\‹¹B³P“Ò×Év¡:ˆ ŒÄ½žÌõ½âp¯ï‰éîÐaÇL¹fÁN7Œƒž‹ª™¡Ñ4‰o@52îF1 ¡vpU'o Ÿ³pÎrF­É+%¶…Ëø’ ÑÏ…ã&žçœ—૸þ¬ óÆðþþ<Ïè¿ ñ(!é ÚÔ WÍv\ýSjÙÆÈûU\ý2óœ¥à+­¤1°z+¾$–a¢œ@lÀG}lª¡ÌFÄæÏýbÄ~„¬,fÀ‚çùµ¤t`ZJÂs·îÈ[qªMª¦‚<[“±Uœ)â3½¦»SëlLRäGw{§ €¦‚÷9yˆËÇìy—˜âŸ^Õ•”’„·åà§-ÔÝï7IÍ’õCLóc›™^çå=ïe[i”-oØQo˜¨>ÙHDÀÆwÑñçô·Çô¥ãVâ4¡§Ü žÎL¬êÅkàwö#÷v ªð•z¢Añ{@’ÌöD«9É"ÊÎ'ö8BjoI/Zɘ¤ìÓ@×"ñô%ó&ãø þL'zC&iÞ–e®¡5œ¨Œ*‰Ô?é(Ù“Ÿ»¢Õk&T:9œÏ¿–ÅF{FS7×iÍ&™è•@YB¿D8u±qCîßQÚ¢’x¤`™¼9­ò4Diâ8æÅ’gÇšs8%!¨¼ïtA9Ù:ûØC5|44{áßG”y”©ç˘"pº3ªyX~ö_nç·™K(ˆÞŸ–Ç }°p4‡ÕS À/Ðæ,- ¿cLwT[5œ¶ÿ‚€EFO*øŒ/n*à4³ðj§Â§[™òÁÞjpÇReÏ—Z9‰ç—V¢g‹±R/ŠkøæËT¿}£5Máù®èv¤Š#Â[†C{&Éfd'î>,¸ž1’D&„­d:CõŽ)§p±‡®iGƒ3 ŒSó]&‹Tº¾ ×ï„îK¤î÷þh¨!ЧS¢,!B^}­çÔ)&:Y\iw¿|Ù7i™uº¿“E¾·Å( óÈ 7¼õ%(þHõµ~^r‡RÕ÷‹û›`S¿f•ÈÙ&±M×ZXš£ØÒüW?P›z¤ûg‹o~6êÓµîˆdà\k.æè½ôâ ~sØœX„r*« »ë¸°‡R%XÕWø/Ôg°\ü÷‘÷;Ï‚%Ø­ú±%T»öïÏ›ó½‡J!B,ÆÌZ EÌR¯8 Žß#ÚÑãÐòOÐ-J«LßFÜá‰ë±›f’l‡ð°öbÍ•À›•'áÝñ$q“ø)i%áæ|ùÅ«o^þïð ÀîEc£ì¯p‘@`OMÖ·Êæ,ÄY‚&¸ôYp¯ŸÿÌÉ-ÆÓf“.ü«vQÊ\aŸ¸h§’3iëñTÎeÜâ…?vZóÔ^!þñl 5ÓÂ~ó~r3­Qý‚•ƽ›ø±VÚŠ­´ÍÈJKÉ>(6ÿNhÎt‰ ì8å1ýа„å[{ÅA%g;²šD „Šƒþ?›“5¹R‡.öëMêhñs Ù[…Ôxv¯˜r0 Mæ´{fSf¯$\˨&bkýúžb–êÔÛŒ}¢OÏзjáž1ñ 9(©¶W20ætAÜæ%Ò°IEÇš÷´L˜ç«€Q 2ÁX|‚†—‡k™)ò²‰.ç@ð%Yö¡h`hàÈôåRÄ–lÞBJ-}Ù!ÍñÀ.‘=£Í…3¶àæKöì•€?Æ@L 0ßæ4ÝÓKè×Ä€lûTê%×SUç ^P”­V|]Á=šlÎ&Eh5‡OfÛž?@ weÆ o|”°TlÞâƒ/á%>ô[ØÃÐ,ý¶Äª¸è•¡R\ì. zÔÌ.m~~'Ö ‹ˆFàÀ˜'ú¼~üÍØYs¯½;Žý¹öœ?×ù¦þ\G.ÝøsNþ\÷s¸Ôì(´$&ç8ÁN>lÁ}5ƒg=V!q§Âe“(žS?Ì(þj¥“È2±T¤ü_Š[`gN@-݇¡‹EßT¹MÝ<—U"dµÀX#çÔù¸-îê~«ò)’|±¦b…³Y!-ƒ_QÎl¦rFRd‡%~¥³êú‚¢v¹JýÔ‡,r{%{óµ”GÄÑH&ö¤ 2»o,æÍبpUr!¹ïå]€ßµtQe„E[#²I¾·ê=àTQªîçæ¨å‡fË$»®å¹©«“ë¾QÊ]¿ ©< £‘fõB›–ÜÉ>©41.L5ÌŸ´ÇºŽæâõ…¨E¨Ч9=ÓȨ·BĪº„$Ž1÷k©ÛÖ—pú„uðVª7åÒR8þ »e6ñ‡ãÆÑ’'Œyõ{”õw‹|Ö÷à—Ó(¸÷ÃüK¬®É £ñ'>g‰‰Ó¿äÌ©XÃþ¢aƒ“Acpk±ðZqÇI‚ÈtÔâ Å*¬ÇV¯×}9[mº×²¿ÕJÊxj¢bõöÐ}“j;ãàÒ`õðh¼ ѳTµ~(µ*” ˬŸF6óm Ëw'Ó.IHKíÓ#‡jv»±YJQ…il72¤Os"É ‚cOìsUGª‹©ê†;"/}gE艞›ŽZ´,%-¾çÿÉ×¥ÃW¸ÙÅჲó;)¢‰ ]4‘—l M¬e£ÂŒK°ÚiÂoÑL…z’èFL˜ˆ˜`oG³£6¦_rý1 ;oR냱±ã-çl)ù 3™}¿ÙoYL/—°;Ò…‹þ:Ítãx‚©ÄG&],½}dÄdÁÀ;¥9ÞEG…p²š—ðô·”K=ЃjÚö±Vã Z‡f“Öò€}Hö5Oü`,¤Co†»xºu‰X’¬4?¥¬ß@åøæl P® ]þ»S…j8Ó•.‹ÚFÅM$kŒ0HÁ^§ë«ISX%KÅœÆ$ô*:7cå¨DÖ®> jo¢P„G Ãøí–ü*›t_B€Ö·>ˆ‘Çß´‹Ž_™¼Ð´s¥ÂP2 ¿”Ø4þ àþÊ¥%?WƒˆÓ1>ù@àW>LqåK×hòÕ˜: Tñ#¤(¼à5UœˆŸ‰}Ze:úI MGï¨1YÃøëàÏ#kêškÉž™¶.¸‰ :#53Ér I{Å5p]‡þŠ’Ü2Ãúõ;•¢’¾æ?韉™‹³3nº?1zœGÉlœ²ïÒÀ–0QŸ†ub¯fRé覿Ùs±\–=<)ó}‚*o"‹¡¼{™‘ø–NuÙ¦À‰Ï Ç{ +P4e·GçŽA¡ÍD³¡ìÔç¾­A=(KBà&ØA’Å3ëŽÒ÷‰‘žÕ¢½ 3’ÄQÀõ ¸^°(C·áÿ_3>G6)È»š «‚§*þhZÔŽH±EF¹l ¯xCÿn>­ðL}§÷úÎ áи¨uZù\©äÍ4‚a_Iõu)À_ÄþЂ6ޱˆàéUMãô_<‰ç„þ³-5VG‹Å¿­@Äû4 VÙ,“¬Í}+bØP¨Þ°gøÞ‚¨(®ƒù p4þ9Ä£©åLÍàp@ðéÉ‹+9x¶g—Ék$ïÐA)®ãŒQGî|Ê‘ûh´à—±„ˆi‚ ¤Ê_ÒÛ +E–ø焉ñɬ^ë 1Ê4q]"v…“ P×R0HqáªÃQ#Z¥\wRl:_C˜Ü£NعII÷}¶j³kÖZÖºýz€Wr2S%Áq¤E²HS?ªTÍBÅÑ䆑nr®Î# R]•³Ëùó]òóQeˆºçQ¬Ëö!ÖåLPø‰)¬ËVX—Ÿ#ƒ¥i|CÂë8W÷cîÍ‘À6^ÖƒmÆ8(u}&‚d°³¹Îd±ça'¾G?‘©7ú_‰b.u‚,)ŽÂIlªá%´´š >IrɘÁ^¨7ìe—ªYŸ ‰YO˜cÅ2¶Uã[lñ‰~¹„/B½4 @¶oçË{ Ýé¤,-KêÈM8[' g«©ñ‹TIgÅ®wE¬8(¡¹ä˧ì¶Ã:Æ7e3ùdA‘Dtw˜$ ðÔØB8œ×'~“ž¹ÐÉ„s”Ki¥É”L+†±™¢§1)•yy‚«”Éá ´Ä@?rDmĉ‘É7EíHÎbÂÓ—§ÃÅ0# 0 Ó˘g!~^h>‚HŸ™·™ëùÒa ùOš’ÀNId2øËïoP¹FuBñ FGDù÷Û¤xâP[H|-7IpÝBëIy²¾KHÓwÞâ“|†UPß9ƒ’ùðâeÈ@ël¤c;È‘K͈̳'G¬ámŸ7F˜rg^€D.£ñF@ºÉ½OAq5^¤Œ×…Ö£ kšÊ®³—p¤1T|ÝqÑ©ñ¶k"ç²Zá\Ïl¯mÂDÜ«RÏ>ñQÁ %yŠ€S-‘ÞΘU©©2ì›Ë kÁù.ùùŽÅñ=Ù k±¨.Oi k±ÂY?2®š¶ðW¶U–Jkeÿ…*û=ò ÷5*¯bšo’ˆ„´Hñ_îÄ[šNƒ[åLN#üàþ°àdß*ò[Y6ŸØ4Ðc@hl†ÔtIêý´šÃ;$%Úø>RÖpW–A1O™²“Øþß0-¾¾f‰£Bc°Ô€ŠÅØå'n9wÎ-Wú¦n¹’´æ~qèÈåï!Åó²ä½Õ)¦–ë:­¢çúå:Ñ_‹¹0f}2>Á›Èƒdeûœ“õtœÎ “p‘|«ªÎÀŒšP·}¨™x–TŒßâ6á,x Øá8Þ 0ÄO>æÀV§Xð1ÒJx÷$¹O€Ò[F/ÔÏ7Ýv?šŠ’£ò$u7Ê^°ˆ¥þ&ŒÀL>ùGßú­y–¹AåàÃãÝ5h¾ dÖv€lôÎ+™V‰¾;ò5ÞoÿÌ›ÏVHÂÅÿ÷|4M‘Ê‹Ít6ÓÐ&tW :xÓw±Ôb·|ã-¾ÝÌ.Ä"濃 •b-ñô1'70Y9º-÷1çyÍôðóÃOÜM¶²ç½w˜·C(;–E%îšõ‚èã#˜&çN*Ö!ŸBmßO‡5 ÁÌßÐÈ]—È­ôˆø–è°Zʽœ½.è2þ»’°ÀÞãiû`@`ìêÓ^¯ªv¿º¿ ‹¯^äY?üîá‚N~ÿäïî»õp4d¼ƒ$}C)ï#ù1a •<¥nÀ£T9õz»M4Ú‰‹VxíyÝwùUÜåGÛ@„97û-×[¥xØ|f%ýŠw¸á ÙÔìfe‹þÍ8ËgÌû´Þ¾Ž¹¬àÉwO9aåK2!¥ò¿8Xô–£ðíóå)õ E—#é©ÕÒÇ7Z¼Í¿éý{èÿoÙ½³Œ²`‰ òC{8?“òdAIô¢›¬¸—.†y÷ QwÈ×Êü¡×õ܉å6"t'’ŠõŽuSU2ŽžpZxØ%p¹òÉ»ÃÅxFÒ“c!Øp4yÑG”ÅR¹óxÏ|B•2š ¿‡`e«K£ñÿ§¿¶àíáâyÝÍ¿ÍM‰Þº¼©yæ°t©5¹ßmt•VÌﯶ£ ÷ÁÖr±¶ë€H:ÉP _q*qýêÑæƒŒ Z®€o>,¥a.Z²®¥ø­’j…«àå¤LŸa~@ªñ’ƒ;ôÓe1ξŒ)–‘CY®C/ |ð“…tB¡’&kgHÒ‹ÂÞïï1 ¼çé\ØŒ•ŸY:†ËŸ…‹Oà{ÐGÎFé_¹Ë^ú|^¾³¨Âzö˜ÏËÔ¡NÝü3ý4ö§š„ª\ÚÖ @°‹©.ʸÇ{}F÷×hï/Òµ¼dá¦Åd{_E;L ;šÿÕXÎ:&|gȧ£’PTû }ký×?úfo'¯°`á¤íI:ýx×ÙÎO#;ç§ZéI´ŸãŒL¦¥•&#ó†GFõ€Ñ.ÄYçë W-¤dÄ6£°Å¤0Âxgrä øw´EƒQš¶T Ü&û£á%M:1Ü$ÑÓTYøñLâ?Þ-å^†Øa;ÐÞÞi¹ˆ$cæ¸ð|øº·ÇâHaô•FOú6T³L€/Õþ¤•À¹ý6Sµðˆ¨‘ÄWÕ fM¡•U àÃq¤ãýë'ÁRŸP–ç°ñÊÿ3ÅÆ+‚Çÿÿœ°ñêaã4EwË8E³P>ÎÐF³Cº•×Ožl9I.&P=¼0MßÌÆÓt)sôÍû£ Êj ÃцüüM|ôrîþÈs»(J oE9Œy^ Í×\€ýô‚LOS›ËU ô‚N—WÄSû)ÿd“´E˜àR›½l“Ef¤ðÖÿô\‡8;~¦òŒŠ9ˆ9D$…Ùx¼àBTáÿô/¼UQŠH ŽßÏjËárþí·ˆ+]¥4#‰‰@o,½ÉÝ¿OD¼Ç;×zZRt]O¥ÛÞN«Éâ`ý%Ê[A–¢_ÆK^…«8ƒ ùãô%¯™-5[qà”ƒ姩ܳ¢¡‡ÖgïEŽ`EYŸÈÇ? ]„Ÿ „c [TÚD*XÆ’•ÅYQ#\+§¢6 ÏrÒá0-x¢€€7ˆ-¹W.IíK°‰Rœ1m]‹^4 &g¥V²ÂMסøÜãýµ1Ÿê8Î÷ש”QxÌ"d4¢­QÉæOô\É(@Ý| ?{>RzEZ¨W­RËa|lßy…Q?ÔräÞÒ€csä‘ËÂÙ¨¯•Ü€FÝËê z¥ê©Ö ¯3™@Û}²¨Í©»•âK1x+ ½e8/CDXN«! ¦Ì¨/ŠsuÇ#>ÕÐ1d %]q9ÂãÕJ[Æ Uà㲸1Ù$ÄmÌDÕÒ¤úFËx…8ƒMà]á¬Ñ¾ã á=JRÜtﮊ¶m©ð –Ü­ßù áœñ!ºÐÎ)#Yj]û–¥d¤(ݨfƒ H8ÞÙLÚ"ˆÐd©ß2סý%Aa½m²tìl”Hß2jë3k”ô—쌢Çèp[Œý› ñ Òø¬Nó7“ ´Ít0L tM`9;#Ï Ûš2bm«å¨‰›ÀœFN)üƒ§[7ö€¥ã¹>Iì5¹D(2‘SÎ Î8¹\óXIî’ôæq :âˆâˆfhÄ,™îØ.&€#pž'1“`Á}“D~_Mü¸bˆ1vnìDŒq¥®&^‡!V/¯Ëƒ“M¦ûzª„­-Úg2]7š¸Α‰…Wœ]÷©Ý²­û̓ž¬±_îëìÌrPäÉrWÙÇh»Uv½Ñk®É¨È>Ç&›3e/× }ÌÚ—WH%Í3—Ûzú‰/È,Y¼à-J°­YÝN…¿kqö^ZݲêoÏ®zsvÕ»‚”ˆھ¬vÆëNÜ9jxª7idà«V»f §,;™Òo»Ì¢Às¦nxúTûœ~~³¼-”T˜‚ïzüŠˆïgTøS±‘IÓúÌK"òݳ`U“·E†õ™÷ ž´ékìùþ˜Â©.÷Ð]öÞ„ï̸~#Å0›g¾reïK’½“í‰óCÙ¯õE³£Æ|¥š´êÃ^–|Óùt–†ˆDAãvt¤¶…dÁûF=3gвL+@ö¨Þð–¤P¶/‘†žõï( Ä‹vì-Ç@U¬fkl™½dÜZù ‰ÂÛd52f¬³9®¤H´]ÔÒ(ðŠË)þûFC+¼ªTÝ&{êZ’ö®êì5pšTÏûòSŠúö$æß®³i®ÌÛ ÃÒêŒ98êSlÿz\·ƒº,<'7¥¥€ƒ2Òò†Tò;"Þ€W ÝOÐú1S¯8äÞ'™‰£,(Wò×V´ä>ޤÂo(:‘êù$©‹Ê!³ÐJߺ\.»ÆËj"»àèÊ9^?5^M/ÉËÒV—@œxA'¿é›zŒÔÁðœÐ ââI&è’#«­t¦ÌÆêFŸZmœu(\Do.Ù>Yjü@ˆýö1ÆùGð>ûÇP¥-ÿÌhÿd‚±°²¨ÌÊÒ &½(I¶ Uý ò‚™…”šÄ½çUT‰ZøÜ &Ï\óŽÂ‘¾š?Ï^dæ”`y':²ïÉRøeÙV¢¾ˆ¯'äATç|=µÿgêë©ÉÝó_ÏÏÉ×S?Ö×ÓÐ ý74y¼?I–Ïþm»}7ÃÞÏ꺚ýÛýáݬñ×ûïýÇöšø¿¾fÿæGMïúå/M<ßCÞ}<»ý?«ÿ³>OûÛcöËÿñÕ7O>Yî_÷OÌÓ|öâ«o>¥þ¦WÃÝÖÏ«ã_*þð…ºìû¯´6Ëþ»Ùïx"ÌìS3ƒtÚößõÛYù¤ÛÞnºZoñ—<÷ëçãÙ«{¯Eô¯g3*±òqÙ~LV~ž7þÂO©ÝÛ~Û¯ýþðoTRt6ÿôÐíûá8ûêÅgŸ½ø÷¯_~ñòŠ^eºí¿Þ¿ûŸ”FÁ@öËÏ»õnXIþÑdzâ©ô/vK*Zçßü˜}ôjnøVþѳ%ýXö«,þãtsçGø¦»; ïf^É>Zì·OŠÙŸsš˜~zÿß³×~Þ¢:—ûSôèYúïãaýzr]1¾®¸tÑ늇۳ãë.¶çf.Ó¿r|ÝÅö*½îý«Ç×]l¯™Ž_Y½®^WµçÇùäƒ4æü…ø"D.é/)èaab‹Ô¹ËŸØÆ ©w—/tñBêÝå Ëé£/ŒŽ7Š&¾4<õôÑ—†&¾ïå>âËÄ÷½x¡Á—‰ï{ùÂbúè omÌôÑÞÚØé£/¼µÁ—)qIñÐ'4ø2f)º_¦Æ%Ä~ùÂ:®À2üûÜ…M¼;@ÿ>wa/äпÏÉ’<^Ø4úïsÉ…îÂË€ŠT,ª´eñV!N yþ'ÉòÑ]&‡cAµŠÌ¿Ã¬1ÿ7%S‰ /+f^@CÈ|/og÷¦ÝïW³?÷û•WtÒ¿®³?­"ýûqÆúLúÇc7ûóôoá™û·³?󋤼™ý™aÔ€ÿëáôϻٟåG=ð¸;ìߎ»µñõêÑèoÛ…ÿcGXt·ãSo©7ûa7>÷}8÷ý°œ<Ügœõÿ]-3zýýÿ £{¨ôiF\¢™ewµ¿ò_HuÂÑå+\~òçÅJÚ>9ó=†É« 'ïpç¿w˜9£^åüóòþvFÿãØíðžÙÌ›öOÌÌ+*[œ/XùõvØÌÒäÉ›ûí¬[.º‹y¡ù[ÒO¿¼Øë¤ej`t4z.¬a¯¯ºï_lýÒ;ö³?gÿô‘_ÔÞêßöÜ?ºæŸ>”wò×÷‡n™¿›¿µç×–¨^PÃä…äO¸æ·ý7D›xŸ`$Q¼H:£}õKöOAdÿ”<ÀO(þ•ýÓ³ØbeºóìÏ qÆ'_ìîü†fù ÖŽ¿“o× –rïèRÔ1yX|VV@µ¼üõÛÁÿÇ«ý´Déß‹ŒDl%»%þ{\d¿Ì~9ûtXÏö¯ßPéžÂf¿ÇŸý?dÞñ`gð1#;Ö?öÖÿ»,ý%_í·ïi…ó“2~’Èòí÷Ùnæ4p?¾ñF¥þÞÊï¿ùüÎf^êz‰I[–ªÉ3/o½pMŸ¶›ÕUl·¶±]þÍíò5?¬Ý¢0±á"ocËrÀMËehƒH12„¿zÔØæ—Æ¶æ½c[˜6§²TÔUþï–÷D9ópßü_atO¡¡¬”‚윛lVÓMÖ¸§ªÂ=£[ðw›ãwYOþŽëG×ÈólË_0i’†Z;ù;7”¥[z çø¾MÁS”®®¹Wø{ÅÊ¿—.þ–kð(¾&ËFW}h¨p™ •<—†ñ÷¦ˆ¿å¼ _“e£«x`làF†èÃ,r‡¥(ŠØ5>#ýá3ÒÜø23›Ñ…<_µ° wG²¸ +Ü„£ß„InÂчoâ•%ò!ÜåŸþ\˜>àG —g½nú㓯÷7Ýnæ•Ó”O!ÙW³ã*#ç›ñŠöMæŸ'ªílþ ­y²ïjÛò ?¸–Øñ»ñ¿eÂø×±yktÂX¿’d’PÑÉRf¿¹àYE“ÇR5_ ¤ó¿yª’ƒÁ/°Šo6TÞD¦ž¨µN& ý½nõû['É KÞÜìjÀ£M*—•Fµ?m)–”ŒÂkžh¶-åÚàfÿZ¶ly>ûÙh«‚¿m刳¿+·2=éJÛJCò©Z¿ ­|*ô¢æïß:ÿäFŒÞ¡‘Á ÿI£ €”z4=m[aðÚFGÛ‹Õ¼F!N¦aá×¹~B—·¹®y!™ñLr M G¤%:{üA9ÝÒf¿ÿËTÞŸJvºQ$;M ‘ì^ìzÉŽŽþ޶Åc‹œx>ç-ý¶Ü7J(óýD§sßÏ‚rAé·ÿ^^%àh+)Ÿû_Ï„[ýÜŠ(ǃ)¸´0–"ùjXŒÐÖ‚âö¸™$›eiN5¹½øç›ýê÷"ˆŸLh­å™çà áïÇ›ÿfáÌ¿ùâfWWá·ìúü„ÒÈ ˆÿØ‹’‡¿«\zä7­ÊšØíª”‹èw#]­Hü·ñ·Mþ^¶r34&ÜÜ$OhL|²ˆô;¾sÓÊ`ø—Ѧ½£•Ѧ­°Åç¬èÓûm‚Ê8Ú*>A, 5Uë?·ÉKË¿ië¨kþ ÞðÍ$ Ã7“”+0Âþ·`¼åW /Zn´j©¢¸<®Š'ê<þnùÉ5q§UhÔÚVž\2ã N`¿pÜ=ÃÁ¾ú N^‡¤¿+õ±wÈÀ8Ú;ŒNSêhûFËR¦mIä2Ú´µUG¼à,œrGÁÂ,kha˜ª•ãPYU4µ´JÝ®e’øÿ˜†÷’† Uü®ˆ5·¿N)H–—°Ÿ¦eiNkØo©¼Êi‹lkÇ¿m4©hÉÚœç6ÿæ¹Í‰ˆð°E.2‚¶™Ûôÿr~š£=…oð=²¦¨´«Ö8~µ–þ^Ë’lˆšõ¥Ü¯qKEx¿9YÞÍòŠö‘T&ݺ‚ß™FÒ¯yn{ «?$fýþ£MRÉzI¿¿ˆò*‘-ëBÅß_dé‘—\ºMï_Y í/"†è=u Óž Ž'­­¬$ÚSJžyôÎu-Ó³¡ &/uÚï\‘¶MU課M+¿ýÍ­‘UÕÐÆ#­ú-+ä˜ç./¸´uä²xhëÈYµ•iÛH^Åßzsö=øq{£À²ÀfãˆøÛÿ¦¡ô¿)äÛs]ƒÕàHo( ¶çßËÿæýÆYJl5˜b^Ÿ¨ýoì7ÎYi冒~c¿q~"øß¼ß8’ ¥mù„¥xH@gý|G° ~Óß±ß8?ýoÞoüïKÿÛRÄßì—RY:~rAåì*þíÅmYò~ÆX~C|Èï²7Wu~×¼&ù  ôÛw¯.c/jHüæ™ähʆ×$w»)å"úÝHWý;·yÛäï¼ßÈAcôæ*O¨rž\åe®cQåµ ï\å­ F5« m¿Æ½ÖÆ£MK G9ßUÁû#Ý¿2<`^ö¿! }n¯‘[þí2ÏŽh}*Ëû£¿U–ŒªóV–G˜ ÇÊb¿ñ¿}WmËz±R9#OÆ«â‰:¿[~²ÿ“ÿjUh´äý†ŸVVrQãóh{…ŸàŸ*¼B%¯ÓÒßK}g:QËÀø÷¯u¶ù§Õ:Ú¾QÞ)m°Hè ˜$tl^šj”è‘N×h–ðMb—ÐA0LøAj™P‚iBÁ6¡ƒ`œðû‰uÂo®æ Q°Oè (<×ÄB¡1& D…>S0Rè X)ôƒ™Â3Eì*t,M:¶ c…¢µâ¢¹BÁ^¡ƒ`°èAå’ƒVgu´Y¤9ýšU´Z¤C­Ì”*±[øÄpᥠ– ¯@1]xV‹íÂÃªÆ ¿X/ô™‚ùBÁ~áï, ÏBµ`xæÉ–“H÷ž_n*'á[.O÷(´>‰ßúl¿è¶çB·~T™-?Ð KëòL7òÑÓn£vçÛ(~@Dlw¶óדg1™ôdÿåŸ>~pR @>î4†.\ ]É!;‹I>ØêÇÊe£ØÂ¨©$SœdÒài¬5æþ¢Æš¤gÿ/{ÿÞÜȑ䉢w~ ì9«»äÙzdDdfdjwÎm©Kš‘YO·nKÓ;»Ýmc ‘QlT‰Sg¾ûõW„{âÁ"h¶Ù˜IÅLdf<<<Üýç>j£¡ÜÔf±ïI40…§Õ°çiv1lêK êÃt“øÀw†øæ$>àšŠA'6»6õ¥0=…rÓÙEßÝÉ|šÝž¯ÙŰ©/À>"ðßD…t×É]8™¶üÛbXä©/¶ÚûââD0HiÁ[Z„ÚÒâ$Ù`ËWZ¼xB_lµ÷€Ið¤êü^-$'þÐBð6í|¤K} ÎcbáÛ‘Ü4dÿ×îÜTdVnÝàúd_7|ãõÉõ}Ñ/±"\ÅO«˜]¤Qãï}­ßÓM‘îš]Š@ ãÕjùñ¦#5·š>hÆ ¦My ~¹½_ª:H¨Ø˜Úä†i›vç†kÛº1-4¥ ÕT†P|ã]]ê÷tS¤»gj«éƒf xBµµ©Mn˜6mÝîÜpm[7¦…¦´-BEK(ºñe¬õ{º)ÒݳµÕôA3 < ¡ª`j“›F–¼´;7\ÛÖi¡)mH(žB(™&N–ßXŽ’»gj«éƒf xBÕÞÔ&7L›Ú·;7\ÛÖi¡)m‹P<õÐr+7ÂQò½p”Ü=‹P[M4cÐÀ³ ¡­V—îš©ÛÝ»*ù †w¦¶Ì!½ÀÌ3œ%w"ÕS"ÖÓí³h¶Ó‹ak†-=Ýœ¦t'”r–ÇÒÔ¿}g[êüAº…ÝÌ,ÌeÈœL·Ï£Ûv/†­¶ô òˆ•»Þs–û…ýÉñGäÛC-:® ÝbÒñpÏ/×û;µë;zºœ°ký›ÄNG´§Ù[Îñíi÷–#9‡häE^9W?g¼GìÍXÙG¹\ð%£Nza"G:¦i„Ç^|v?<àZ­ÂµZ‡lC§wøúùµ<íòô8<Á·<žÍ!¨'M¥ÝÒTÙ1Ï×A›Ê×/$*µPAR _ÝR-Úþ[Sã dÛ¯S×WJ1_™ÁfpãÉ,ä y­…wŽÉ;õÉãÒ˜qi̸t†zÝÉãÒ˜qi¶K–wN©EÛËR-éK8¹/•Ö¢ý´_Þ9]€8Ãd|“Æß6“›SÆ&ÕD’j’›¸Sí)¼–k ¶¦`j²ÕžÂ ¹¦ÆÖÔØšÂKjúLô Ãw`oíÈ`W~Fw†§:«’¬N:§J+RJ+SJ+TÊS¤JcGº±#ÝØ‘nNi*B(Ge åøºÓjN¢\ÓØþt¶?íOsžþ¤1bbÉÉMm(wÒ¡RMDT“ÜpMòÚé5 õ:K½ÎR¯;z¦ð[éNª*ÝÅŠÏ5ó]Éì¼;õ«Ã3Ÿ:-üKþåëN sÿZRÜÊh*ajC˜™^\[=¨­ÔÖj«‰q¨_ ‚«2«2ì¬ȯ“Äp°b8X1¬õɪ]jbµÌ)T¹¦xrM¦ð¤ÚSM6 f«=Iµ§šlp/ØXY§×ÔØš:[SgkjN¯©35UÞÔ$7õNµ'©—`ÕK°ê%XõrZMvœ;N§æôqjì85vœ;NÍéãÔØqŠvœ¢§æôq2LpˇƒeލMM–=^ZSmkjmM­­©>½¦Ö.ZrvÑ’]Vd«=ÉàÖ´ Ö´ Ö´9­&Ë¢;ƒ=ô.×u:OØâ³Ï•Y¶T}šϵµƒÚÚAmõj³ÌÁ'ÿåÚœÔv:ØòoEÏkmv}× î³(އ§:ÆP´­¼ DÛm®Î@¡8XDSÑ”ƒÚN·lù·ƒ50[‹t†u¿°¶hY­µœÖZF‹§óY´S(Úd O¯T“ ÑJ[ø@M½°¦ÖNÖΜÁÂÈÖn½Ú…}Þ.ìóvµœß¿°ïx;ÙÿdªInºjO²“½ñ·æšì":[íIv²7ÞÐ\“]_Âé55¶¦ÎÖÔÙššÓkêLMlûHMrÓíT{’ì_)ÕÔØqjN§ÆŽScÇ©±ãÔœ>N§ÆŽScÇ©9}œ;NÑŽS´ãÔœ>N† ’œ8¢65Yö8ÉNN5µ¶¦ÖÖTŸ^Sku;»¨Û.»¶Õžd'{ã}J5u–#ºÓ9¢³!æiZŸ\ZžèNç [|¶“se–-UŸf'çÚÚAmí ¶ú µYæë4տܠ¶ÓùÖŸíä\›]ÿ>¨ûÌv2Ix¬œÛmŽƒ6Wg P,¼/ ïËAm§[¶üÛÁºù­…ýúO²“ÓÆ Ëi­e´x:ŸE;…¢A¶ðôZw²œj²’Á>PS'Ùɉzvæ 6Ž´îtëU«hðÐ,àèÌŽ.œh+M ­4¶`máT$µp¤4á`Â!/¯e°@ÑÛÝÞ®E÷v-º·«»·nÌb@h-:¿Å ‹ôͳÖn5pPÙ gY¯ÙØÝìÑØÍÝ>±ucZØÚìÑ8KŽæˆ-[ T6hÆYÈÑES›Ü0ºØîÜpm[7¦…¦´!9ºhÉ!ß<‹[ T6hÆYÈáñ¤‡+^‘ù†(òx.íÖgÆÞPô,0ÿji[“… àyXyBÇË+a>7s­Ôˆþ¤¾PuuR_<šÎM8©/UÜ_FuÄ1NTFëðX|>ŸžØ*cO;Žæ±=ãr =¨ŒxˆOãóçÜžvÔǯµ¿cˆêJw:‡p!Ÿe‘ Òö9´Ü#{Ú#ÈÐùýr#+Gã!9z̘ÆÓ„ s$‡?ÇÏÏ>çÉæ¬NaJ*"øê"wz¾Ý_†?¶/¾9­Ù]­ÖMÝqiަÇ碟iGµ¿Œîhþ8íÝ£p,Aör4§î+$Ûn—$õÑ$)«“Ʀqg +ÒÆ¬M<Ðã{Sž6õºxºvñ t¥BNäW†-9jtª3 »gïÑB~_!þè9|bKBu c†'Äg-mþŒÉ_(äèI|jKšsФ‰gxˆ&ÇplÎ1:Í8¶êÎ0ÄÝ9˜M¶mžØK'2õ}*Y\Ù£-®>G[Ü9ä›óî ó0žƒ,±9Ã<Œá DiýƇuØž%vÇë°=…¯ÃNl ë0ßžA‡ùö :Ì·gÐa'Ò¤9D“ãÍÙ‡8¢I{´;utš3t‡u؉C܃ÙD‡í)%¯ÃNÑa'ò›è°SÛâês´Åµç ®wgM±;Ç¿çþÖ߯¿¹›«u±¾Y~¼Ïúâ‹/~\ç‹>ùæ÷ßpo¼[^?Üöw›bôk,᾿ž#×¶£ŸGß¾»ø– ¼ôõèê¢ûòS´T.ÆÑcñûùõftÕÏæw£xóÖY¬øy1Η£ñÖ«¾::øêŸÞþqÞ„?ÿü?ÿ|÷Ç¿¼}ׯ7£ îäô6üt7zûî›~ÝO¦·ãÕ‡¢¡ ?ŒoïýåÍÅd¾Þ¬æW›~r9+.f«ñýÍåôb|7‡óÍúrv1é×׫ùýf¾¼ƒ»«Ë»‹ÇËéèÛŸ.ó«®—›ë›Ë›Ê¯Vc|¸¾œ\<¬çw³K\åF9´/Æ—!¹®¡Œ»‹Íÿ}X>¬¡*º¼…®.WÅE¿ÂgÒ€ëåíýøz÷x2#¶+Õñæ² PÞïÒ—ðáª(®.Ð åß\üOúÕf~ݯ/{ø²çö`éÇô°ÿùòúb~7Á—Þ\Ö|ÿãåkléò^‡¿‰"ó59†–ÌË«ñ~ù ~[NáÇÍMä³Ô¼áO_Á›‹1µpA¿bû¸% É£”÷ šHÄ) u^AɹqU­ùz¹Ù,o/ƒK-îA%K¨ãZ6/¨ië½Ïô=ejIÝÕ´äf¹Þð8I­¯.?\|Ä™CÊOg²N©n`•wHhýüâj1¾†_>À0µPÜó»k ?^"¥nx8û<œL_hJQáô~LÿêÒWðÍx±¸œ¾}°Ç©^,wC-™Óhëù¿B-æ ðu‚¼|4ZÒ8lÖL"L«ùx±Y^†Ë´ÅÁÐT4•ê ×Ž_2‡›ÇõS×?˜¦O/n–  "±Vtæ®éEO“Áþ·©+;¶7 ¿€—4EÇB*s>«¦æà±ßfªRåï å ž|3ð©™å SHS²>b8†:ƆÑì‡>@á4kÆ«kè~qñgøb¼Ñ›CÏæä%¨Ç%m>åϱë?_¾ÂÖƒ-&(;&\,¨ÆTS¦&Ü.ê7Ëâz±\÷ô#.Ö³j¦Ë»ÍÈ¡./zºY÷ú1/›”€µƒ~.f@£ÍrÕÿÛ|úoØJøÛ/Öýàz>eõF$À£xG¯Ûí*Š8?=ðÚ†¯í/íFkâMhê_-•D¨àò×T¤ØE9úõbñóˆþú5P-}õÅ_c!Édùrtÿ/Ó™­ü›þ~]|ñŸ¾ÿáõW“åUÿÚ¿)Gß|ÿ÷xVÏ|³¾Zo`ÎÀíoVýHý%K~Òÿ4ú#3Â(¼ñ£ïÇ ã=°ü¨~=^Üߌcú^y7Þ@A?>ô£oû«Ñ¨¹ú˺û¸ÌÎ^ü˽%4Ýþë«Õr1ºøv5¾»^Î×£ï¿ùío¿ùû?|÷»ï.±+ˇ;œÄ_/þ’†©(¾øÇñìn>_S•_Ò²³²dkí7Ë[ìùºxKZ¼¼˜ôÓB&z›û·· ðí”öÏ£û‡MñlH0(?åÕbÿ6º¾¥bÞ’}ù Ñrdÿ]¯fW[ï¹á{îÐ{>½çž./ ß;X^5úäžÓ¾zøÞÁòšôÞgÚ‡ï,¯Ý¦_Ýì}¯Û~¯éöÓyg@ìì}‘F¤ôŠ{¢…Îk‰Ø¸ÃCôElÝá+}[wøÅz»êÔqÍvՇȷ«>Díïá6ÒÈh¾èid´¿‡_tÛUèµ÷ÛUèµÛUèµ§‘©é÷Ôz™†¸W~‘F&Ò+˜‚åð‹Qg`ÿÝ÷b«/rðß}/vú"7ÿÝ'KJ}±mÓ¿û^tæÅê@g Ônh j  ÊbUNB÷*Á%ÊòÁ ¾&·C›!YôÞªàß (ŒõTM!ˆ ˆZy?ú”¿µÍï§£Oýr †Žýu¶}ÊV…ý}=b{Æþ¸>mÿ¶‚÷|¿}âŽØoGŸ˜ƒà×ÕîÏw£OÒçA  ›ÕòðY7ð+˜Gƒß×ðc¿ÁF\ï‡ÞçGïÒ Ÿ}ÌÏ>Î'[•Ã8ÓSø ̰\ º±Ü@?–Á7Ø šÁ*f2^ÊŸÂ%›pðú”^ßùùz*eï<ùHd³a§ïÌ9ƒ`r~š<Üðÿë‡Õ ˆÔÏb4ªF¯ý •=wlü®®F™Ü>,FãÉä—{™'|b‡~r°Õ¦d,`p7¨ŸnÍa°WÍzùOůÞ¤ßÍ=·ßùÕ[Z-¸óëãj<±÷?oÝ?ʃ¹%¦™aÒ!ù‰Þùp%Œ!•Iƒ¡Dq#Û˜ÔV,ů²4(~e*†â«âWÿÆb‹E²GŸ¶,ÄÑ[ñnÌz{SÅÖ9–ƒ–Ë×rXZs|¹œSI æÝ§R²Ü¤Cóü3Ë~ÙÙò9YPøÔ‰@Må¿ Ö‰òäé¶}î#Úùrk¶ÿ-Ì^¸…ÙÁ·¼£›ðE1xës'[Õ•ê!•è¶®…Ù‹¶¼£[ª°BûÖç,¡R"ØÏ7Òlºµ›®vÿÑÂnœZl½æ´¼øÔñ NVïòÑx',ùÄG´¿4DwŸÿ¨ ö#ºûüGÌk2cò:SøñçfÊS±h•Âìš^<ã¨4e(ùD7/ÌÜ…yðNa6T/éžè…Ùv»0]ö¥aIÛ-‘¨ölkk°ŒÕÈï$O÷p¿@_G?Ù—Q>ÓÐ?/‘y… ‹j1¡"\WxMy!1ZíZJo‰§Ô®‹t]¶£ÚnÅÜ‘^‡†sS¶xÓpÖÊ1{"}À’¯ƒ|Pãuå躂wBùãÐÁMÇ‚‡Y%‰54ÕP_ãïuG×Jëªuü16¯.=?píùcöu]qÍ [ëºáë*«ÛŠ?Æ›¦lòƒÆ·z]»üq›|-§Ïs ÑËh^¬µ‘ I×! k p ýËÍnky ¯[i*ô¹+;½æwì‘nZŸ>žÏ54¥Ï57¥ä…–6eô¹ÏMÙ 1šQã„Ú%|à„Ú(꧇¡o\ècß5ž †ûTï©©8ܯ_<º"ò5ÉL®kÌÓ5)ì¡eM h%%+LŒ¦ídÂ@—Y…Äè¤Tlv'Lbé¸0 sŽÑu×XhsÕÁMÇsø#:ïÓŽŽó¿VÀ% ]‡¤‰ñjðn¤TÜKÕDþä@걄ÖE’´‰P5ì#ÜD—ÄMŒ2IüÞJ³±ÿm!µˆ!ìgšÃh5teL³'âÁ% ž<±«™ó°Ï]öl»Q+sÙ°-¹Ï àšûŒ³ª-;¹v`Êx™U-Ú5R*غ¶I|ÞzÇ­îm½Lt°àLá‰7R*P¸ e£×éc¼NµñMý¢üê±YßÀuÖ7píQß4t ü ú¦ãë€ú†ßAõá+𓱭PßÄ@H}”ü1hLÑ10ác+0|5kŒÒtŸp­¨¢O§Ý*¡alP•´|*¦&þ”›¨’üAã›\PSËzÕG)5ãK7T†ãšÒu$IÍ&UÂ8U"ͨ&Jîs…zÅ aJT%ü1h”½vD¼UIäV¢K€MH]íÖUÂÔ†9Ù”4èÀ¾¨>*ÊÖ;RL¤õòwxÖàQ•¬"~‡)éùc”€¾lù¼äƒ¼Í“L–kÿ†³AÙÊã 7›^ dÀ5ª’V ‚¡$[HeUhåch^Õp©@+P\ èÚsÍÕD-]#Í ÍÆ~6N@AMÅ”¤ B&_&´4&Q,?€bW'j7­—k”úµ\£–`£„†x„ƾ鄟Q}vLø¸ë˜IP2–^&ÝëÑuìÒÑ•ò1j€Ð¦ ¢c•5ƒÔs?âFÖîp xa˜²O ƒ¯„IPÔÂ=5J}*`žXy!$HÀŠYƒÚ±jþ ‰µ°žGé^ Ãàï±Kãa$ŒØæíxl˜ÚI}ža(jAžs¡¨"Ïy4£bl¤fèÌ0æç¥»ã±m*-ùº©ôºöÄ:Ç5cA2TLÃ(CE­èxü» }"X…]ˆPê§ €…²'È.—ˆÂ=Q»Fé.†’¾6t"Ýy[ß•iγp/˜“Dºc$éNóréîMÀµJw§h":EÄŽ‚&ÀPQ4KEÀ¿M€i“ÑðxF0MÄRÑD,MÀ Éh®3š;JÑÜd4×MÀuFpÑ@E|ÃÖ¤\³€.MðÇŒ&øZÐ×Àh‚L;AÜ F|Íh"–Mp³MÈu+MÍhB®ƒùфܴ>},h‚j4A5 š –&4A}4×MÀuF´î\ÐÈ,Ep“ÑDÓ)šC-£ ¸Îh®M4¢ ¸Îh®3š€ëŒ&@r*š›ªÑ±ÔëŽkV4Á… šàÚMÀuFM§h‚»ÐHw š`0šÂd4AÌ h‚XRÐD, š~Îh‚l~ApÑM A0aMÀLÊh®3š€Ù–ÑD,MÀµ¢ ˜«MÀuF4‡MÀÜÎh®MÀMFrͼíMÀuFp­h‚k`4×Mp‹MpSMÄÒ ‰X*š€ëŒ&b©hº˜Ñ\+š J š •*hè“ÑŒHF$mš€qËh‚Ä ‰X*š Y%hxAÑ1FLsXÑ1  š<‚&àZÑDÓ)š 64×MЬ4׊&hŠ šh:EÄç‚&hæ š€kEr#¥*šëô±¢‰tó2}l¨po²ÆÁ› (àFÞdH7SÀ‚ ¸QT7V`~ÃŒ+àÆ <¾## ¼ÉЂŸlL¬ào]¤»h1¾`HqŒ0ðF!ÞeŒÍË o2ÊÀ^d˜7Š3°·h Q2Ò@ze¨7k Yl ù3Ú€…x“ñÜ(àÀ}+Š8ð.C¸QÌ7 :ð&£¸1°ï2îÀ› <ð&#t#œÒì‘¼Éðo2þZ€à]F ØÖ Að&c¼É ;«(DºÞ¸ô(ã¤P"B£k^´ˆ,ÔŸ=‰*ÝfÊ£NoÞ_†;îdÛý…øsœìËB7“î€ Ô>¬7iÏW¸UypÄÄ“å9‡åܯ–×?­h7õóË.Ü×Ù:} ¹âþ…Ä{Ò©¹Ö¦S+m5{C¯íÜP*¬Î¤S“'ƒ Q凌›š”¦|_Kº(>Ó½|~¢µÜôA3 4mzyJ¤ª3µñЦêÚí©mëÆ´Ð”¶7o*^çÖéM!wÏ#ÔVÓÍ4ð,„B/ŽV'wB¸kwî¤Æ;ÓN[æ^@(C°t×øÚ”AwEº}Ívz1lͰ¥ç¡›³ü,w‰RÎNF¹KõoßÙ–ºú Ý€nÁLÉT†ÌI¹}&ݶ{1lͰ¥çâ·–ú»Tÿöm©)sï,Ítã»Ê×ZßZä³è¶Ý‹ak†-= Ý¢§Ñê„hUB´’uëÆH’xHHžR–jrÃBM¾™P[M4cÐÀ³ˆ³Î™‘áa¨Îùí–­3˜¦´}„Æ’–c³b,•ö¬<ŒÃ¦š1hày8*˜ÚøFhƒß¾I¸zxcZhJÛ"Te UÁÅß'¹•J{G ›>hÆ g!T]›ÚøFhS×~ûFjÛº1-4¥í³\…PrÃ’ª®­ J¥=‡P[M4cÐÀ³*X¡¬dV°+·nL Ã!¡Îð'ª5Åß'Ž Gô­¦š1hàYŰAjøÃ´`do¤¶­ÓBSÚPÁʨ`eŸdT*íyXhÐôA3 <¡J‹¼J Ëvû&Á°áEkå­¬Ö“†@Uiß=4›>hÆ Gi½Ï89ÚýN—õæ8§‹+w½7æ ¹# òíÞ‚ä0¼c ò‡ZtdAäÛë:² j_AùäÂç´K¡«ñºÿi¼8¢ _î'óÑÞ6¿×Ûv}wäpQz·œ=íyi²Çú9þ)¯zSæ¬êœaž.YØÑ Ýjý¹DšÛ{Íiûr«U¸Vë-Îô_?¿–ÏŒóÓ—»‡÷6‡\™ÒT œHSe76_m*_¿ T¨ÔBI-|ôȃ“jÑößš%Û~2¸¾RŠùÊ n4ƒOf!oXÈk-Ä•wêSk f.3‚™ ¡;y\3.—n»Æ³M‡èë½ùÉÜáé ÍKŒÚFí¶›}®¦†ò@SãM ¦©ijcšÎßÔ°¿©]÷!Ó6ë¬ÌµB÷t©[Ú9SÚISÚYSž2mèàéD"ýákî¿ÓZKê§e–þÈM­Öj~ª‰Úœj’®I^;¹&¡•-”ãëN«9:£Ô:£Ô:£Ôºp2”† JÃÁpA8™b¥¡Xi( ÅNRÐéä–|XQ4rT¶ÈÍi55¶¦ÆÖÔÙšNŸ?Þ Pê“ܘ!:­ORDckjlM­é”>q~zéS¬MŸä†û$¯…ÓkjlM­©³5Ò'†Ø©SÎU¦WéÎ uZ¿RÍ ¶fP[7¨í :ÉBÒ`®"é$çN5²RM¡45ñMª)ž\SSššDµ†Û¥¦¦<¹&Q8­ÕK­ÑKR¿vZM©‰•_ªJîR]ÝKêzVÚ"W~&ýËžsÔ´Éõ Éµiò /ó`Ǽ±cÞØ1gª)Øš‚­©²5U§sW°Ü,wU–»ª³Ž8g»ªŽpÓÂÌ¢aÀ¢•ÛiýK…¤)>3W0Wåv«>ß„@Ó>ú<…ÝXà+—B»Ã,òÚyÜ”/h¯¯Œ"ŒopQRC¾:] Eks•Öæ*mMñäš‚µ„‚µ„‚µ„Âé–)üÖ•CÓqPí©®˜/Æ,Øq §÷©´}*w ïôÚ)5U­¡^í õjcô¤×N¡^mÍ­ÚZ[µ5¶êÓm-iliûTÚƒíS8½O¥íSiûvª=m>•v>•;L^ g÷I9ï“iѶ·´í-í\‰ço/¹ûö¶×?áDë wVÞpgå­éNçN‹§*‹§*‹§ªÓñ”)üÖNôátT{ZŸJÛ§ÒlŸÂé}*mŸÊé<¨ö¥3®³5y[“·3®ûf\÷’W«‡çU°³²³:¼éh«'šö†Ò´7”¶½ñd#6X{0X{0X{0”gª©´5•¶&çv€øK½2vnG;·£Ûñô¹­…ÐZ ¡µB<ÝBh­…ÐZ ¡µB{º…ÐZ‹»µwk-îöt‹»µwg-îÎZÜíéw´’1ZÉ­dŒ§KÆÖZ=­µzZkõ´§[=ÑZr­µälპK¦Åö ~"×Z„ÐZ„ÐZ„ÐVçoo[jïñ¸ÖZiµÒ:k¥µ¿€•Ö¾ÄJklÌ ±1ƒÆÆ š3Ä ,ªl,ª´…Üú/­ÉZžÑZžÖ¥>èàKk²±ÆÆvÛiNí4¿6¿ÚÂá—³y` æAcm½hm=@élí}‰­×ÙyÐÙyÐÙyÐ>:ËâãKA’Òògw:Úâ³³1WfÁѠꓼ¾¾´4,mW‚¥áYǼk^0æ©Ïå€:å€:a@ð ¸bœX]7h³´ÙN­î˜ZÝÁ©Õ>EæzÀ„í€ ÛÖg`ùv„tƒ ¤ÔÖž¡¶z0í`8Ú Õ¿ Õ/°©l3o1â­8ð° çktû¾·ádltŒk—_2>·»Ÿ‡¯=*è,Vaç6ûrÐæÓáŠ-ÿVMk³1‚AÝ/®- jkµ5ƒÚÂ2T––ƒ… ¿p®z‰~q $¢—ƒ!»]8_£ãK„ƒ/ƒF[Ïø  gk´/_¢b|4º4º4:üGC¯áÊhö®ðì´éb»}#{W¶nÌ~SÚ¾½à¼í¦»çm®Ùjà ²A3β¥´©Lm|#hªvûFjÛº1-4¥íÛ)™ÈÁwÏ#ÇV• šq$9^¶5ÃÃ+’¿t°CóÄÑ+L‹ŒÑΑÍwú î/Lñ6qÝ ÕLwg,TóÙ±PMŸwîBÏ=Pš ðŒ…j&Á3ªÙ9Ï]h]¹ÐœóŒ…jÒÒ' Ý#8>SfëÎZ¦¦$=7—¶îQŸû£z¯™^ÏW¦æu=s™gn§I{ÆQ2éeÏYªÿ%æ¨I {F²j¾ÞS }™áP~ΓŠ‡–{Æ£9š–ñ4©y?-ý9,øÜ±±ž Ïêf "®Óç"wz¾Ý_†?¶/¾9­¼{a§Œöhšža\ºÝ2ê£ûRîvæ%Mùœö4¤9¶Œ} 9†ª¼)æÄÞP!ç kw»3UOcwî‹?»ïÙZÖ;w÷âŽæ‘=…4Góȉ-qe8PÊ1rS(Ä]Èž%´õQý)”ÒÍ){b‡GKù}…ÔǪ›ÏG1?SHu w©Â9hҜ٤%þ-9ÙxŸ(•xW§ižp¥›3ðIìÎ ÙZ†YÜÔÇФmÏÀö±9ƒ(hÏ! šxÂ6ÕË3ˆéÎÌÇSÙ^l‹E,®LJS‡žJ[WžC•:מ£-Þƒº¾z–lÚç¤øÏßúûõ7w“bµ.Ö7Ë÷ãY_|ñÅ«ñ|ÑÃ'ßüþÛîáwËë‡ÛþnSŒ~%Ü÷×óñb„É‘~}ûîâ[*ðÒ‡ÑÕ…+¿¼Œ¾U˜yô±øáÝüz3ºêgó»Ñ?¼ùP _¦ çãQ~u¼õêò«£§_ýÓÛ?ÎûðçŸÿçÿ‚ïþø—·ïúõftÁ½|ã0ÍÎOw£·ï¾ùáÇÑýdz;^}Ø):ñÕäýøº¿»~¼œëÍêázƒš],§—7››þrz±ßÞ/ð·Ùj|ÃÏf¹ûuã‹§º/˜ »KߔըÂÌØû{¯/ŒéºØÛÿß,ËÕèOnTŽÊ¿¼ý‡ÑÛïÞ~½\Mzø­¤ßøî«Õjüøýxs}óö‡‡«Íã}_¼ýíüîÃ^“ëÞ|=zûÕï~7¤·‡{£ý».- ÐÈ3™¯ß/çw—wøÏ½ ¡,*Ì öx1†úáÑãåû‹ñÝ„>¹ÁO®—ô}÷°|XCAÔÞùÝìÍe芫‹¯—P…oGW£oìÙ¬¬ËúÀòY«×>€1yÏ#´žÿ+5eTaÂÖGS ž>zżw¼™¯/½ƒÇ‹Åšó3]®„n.n ¶4Œ‡züx7¾_'ŽX¿’7,4åF|¼ï.n¸!˜Eôñâz|wé#L›þ'x´\à¿øu^Unû7—.ÂL«1åãEh¡½ýòžä‹/¾‡9ûå(`ò¬âÇþŸ _ào@2x™`È3oïWË ´nô¥Â§{xI~¹x7_oæ ˜ÿ—ë~¼º¾á‡üD[Ï—w@,yØÿ|}COÓÅE(»ìÿúi¶ÿÔîú¸`Ššp»ü©ß,‹ëÅrÝÓ¸ÊIOßM¦Ë»ÍÈ¡l/zºY÷ú1£´”€µƒ´*f+àÛåªÿ·ùôß°•ð·_¬ûÁõ|ÊŒK$ÀÃlG¯ÛQ#Ó3?=ðÚ†¯í/í4BÙú&teQ.µªk\Â"â°WðÀ“ÌaÀÈ47W—« EÄ’=Χ~ÑÏÆ4——=¼€“íæâaÍ Ë|9œ(y½Ç9'ò w"sJJ­)½#“wýæ²Иïî.C|K3Ú´YâdææÂäy„Ÿ@_A§Y,lVó«‡ ´ò}ž(Óâby‡ß?¬7—sèÇšêÆÄéX« ã~•f°Hÿ3Ô³ßÍú5–°¯¨Šþnù0ƒƒßÍ.®Wýxƒ´öƒéóÕf~Ý“lAâõcžŠ3ìóe±º€gØ&‘LP 6s¹?²,€7°Èé–ºGAóê²ß’?Ó`2ÇR_h‰í½o.ß$¬zéÎ,ug–‚¤AX° ϱЪ¤X4õ?ßcGúk$ó”º~“ºTë¥k$•g˜C¤+’˜¥^ƒŠŒ5Æ‚Ñäáa6B×ÄH؞Ζ¢?üæ÷?þæ€ 8jø+³jôÓ4ëG靿‹É¥kPxC×/?_ü<¿EY‹#ÄwXkMM}’/ fø^]ÎÍ@Ai&PŽùŠÈÝÀVR&ïG"*‹ë‡Õªgí4TŒõ¢èU<ݯ4`ºbæÐù¿¿ƒñìù#ää,f¬ËÙèÛ¿^Üó7¯tXˆ#g4öÀ˳ÅòЦô~L­Âi=¿ R¾¿˜®–·—7iªÊü\\ü É <\üårÉõ <ŒÈ#ý4÷m»ŽLÂ!5.mžì‘YÂÜÀ{=²ÆúL%lùFÙïn"J±_ %ô FafÌÇ‹/_£êË3ýU.Ïõôçò¶‡Þ+O·h&ò€ˆ;O ž‘T™±T¹)H¬ô,žVýýÛ½=‰‰€¹$à¬ùK­­`š°œ‘m;ã j ‰ª5+–%ò ‹™p*øóÝ”?ZÉÐjFBÀØ(ó‹Õòä᥇¤fE¹»®îŠæ }?ûøÛ嘻HôƒV~(ìG®®ãž¯”2ôÙÍ{=^€j˜<²fÓ£úš ´ÉŠÍó˜Äx·yøs!½ã§©˜­üWlB™6ù…ß‚å¡Hf¢Òà$Ý+Í›—ºj# ƒ4Ç–{‹ì´ H,üæ©ÉüÚ¯îHúæ6’Éjœ$è|¼!0ÔX.¸xž˜hë§ÉËSÈvCóš)·ÚùF@ôgÓ'°û7¯,‚RÌkм‡Å†Æ#hƒ©©~üA„(XФo}ˆ-©ujöñd"tËìIú`Jt¾a"#MAF³¡&±yRâjõþu o½Ê[Ú‘ë«Ö'‘ Óý5|5ÍZ ¤™©çy>#}y“%N!xr(Yi ]½ÎȹǷÞ'v-|Ý¢rÇ>ˆÌÝΖ ¥˜ùŠl* ä|ƒ„Šlx84Q’€A»ØgšõáçÔ„x)Û;é(»’*CHÏ"Ä#´'ΉAÑÓŒsá=²šÿ8ƛ̈ÖÜPcÞ˜Ã[:ˆ­!;ôD GÌÅB Æ@›eIr>Iå‹lÙl :±¢Ú ë~ÇŒ2P÷4«©EÆ(Ü¢ó¬°¶Ë\t-²35·+°å3þɬ¢§P+i‹JS¥ÊÌpÖlÈY¯Qÿ½¹ljïð 3 µ&”emÝ8׈î–›4`ÈLýϨõ5‡p¾!ºf¡eDÜò~N£Š’„ü„ðÈëA R1M$›„š‚YÛÙª ¥¨<ô ¼}²›²Ÿ^×ÅÕÎÛIÊ+û[¾¶Ÿ£¯Pù-2!+ÿƒ…®}rHºõœÜ‡‰|³|X÷/ú{6îa˜æ2ŽÓ%zÌ™ý=Hì'?ÔÜ€ËIA€.Îܶ™È¡$òŸh1ßl„ýPŠƒ^¢}BÜ«³bŒ „W‹žmúPÕŸéy1Η[nçßàÙ¬|óÕð›ÑÁo¹Z€añ?4g—woâ›ðÆ·K1t»h-ìÌþxÁtUq5Ðç˜À>ÔU9@¸ïnûu²>üó z„¶ÕåíÅãýåZl²Ðt-šïP:_V(#ìw7üÝ”G¦-Ž%ÉXÒëäþÉ0–Ü,èE4¸Y¦W/ÐQ-;¡É’bIV:(¿½÷ܘ¶D½~¸§ñ\tލ8¾@M»“Õñ@fÿ5¤+ãË~^äÚµûp1j`bÐsè „º[Ìir±$Ù€fMñíO?\/7×7³øéâû_Ëïäý*ç!’þ©õ }5ɪíyÒd-¡¶_¹M¥HÛÿÇ´Ç–_3aVãÅü_i¸eœ­©c×!ºs¨ê×··=týšìEÄ~†!”±¼#¨žœÇó ƒ£@IôC¡zFQœæùúË˦@õ{ª_g³†”ÊZ’\èõòîŽ}OÄ#Ì—³¹ðŒF†+‘_A4æ|1QòŠË†þ/ú¬³°01ú×›åkSTàÈBî«Id÷­Yz Ydó?À‹P±7°íDT%zÚ“vyüŠMbòÊѬÃésA‘ÄÞD¥8ÆÄ詪€:‰hM¤f@H„ÓIAÚ„E Ö`oôJÆ-W%ZCÙ!rƒ/¡“;ͧo =°6­ª×5®¦pkëä1¦¦ß°õ†ƒ?Çc»`b± ÿÜ&ÓÓÂCÔÓ¢¦§ä@K2ÙhæPùãÕ|݋ӧµ»ï@V ï0íâ %]q7FßhLwX‹öëtˆx†ñ;é€zÌA;\"Ó½~å¦ÅªŸ3jïÜÑurq‘WÆšâ1è£¯Ú µçW g/Öãùä•õ°«$pŠèÕ?ZÑ #’&*€À_kQø nçwÉS ÌÒo’-7¿CWÊõ[r×W„ú ©žMæÕ~…o"éÈcÆ2´ùK%ÀèDÆ ì‡“¦ˆè#QT†' ½hókÒ€º¬‘e;w6p~Ò‡7ÉC”Âq({îúñй)EX·Ý²bìRq•Ç"ŒÐÓúô‹`¯î`qÈ™IÍrM(£æÈ ÿ-Ùl+˜ÈxAî"moŸýUÙÅ~“MRnCߺP‹ÄâW´"-†afGÔ_áõP‚J«]¬Q¹Ü£nr`y`#YÛüWq““'—>½ds·ö 6’Ù…å5eb—Škš¦àW±4š1<¿²_u…]ê÷™:Té“çølŸ…Ò'퉭bkwm•Míñ ¸–Ð&àrCÂCc<‰6¾1á`ËêÚ&Szd(Æ9¨µ­i|UEiÆH{#ôœüI[Æá'mÓ™O29g[äDíXW‘€øvßëŒ3ã KòýŒ×Ò‘›â ­ß\ÖhÄünÉÞŒK’x*ˆÔºu¤„€ã©º­àq·'x\¡Å³<®Ð$ûàñßRð¸* F¢ò¨…ábªž,0’è`À]ËȳR“¬ënûñ]’…Å®Ñ\YŠÞvÁ@3±c,ñ~“ý‡$÷‹ýHgÕÿõaNÎIÐqi^]ÎáEЋJ¶èëwA$M C>^‘¦á…% “€‘™Aae`NÀñ+Ò^Þ‘KÞ—<®lZ?ïãô¼ ò§:Wƒ˜©šCËwòó±\BÙ¿èâÚ\{põ޶c—]?`˜ÍgWûs³€í6ë“5•hå+b vZ‘±5yÈÖFÐÑJ(Ó"—à¨àÇâFÌxˆª| ü-ã̈qþk9–»ñm d\3hMN}žÿùÏìÔ™-®ØÝö\^Ãè£/øg°è0ö{´×âQ¦Ž§Xã«©GAûŠ1ß|%ñ½‚~ü›(Æ¡è@ÊU°Õ`É÷ý¿q3ç¤& Šª;cûr“û€Á,éÃDûZhÉßÓ°°ÏWT¥ASq%M—²¾‰=Ò8ÓáêK"–­Ä@R(´"Ô±"üzLÎãꄞ£'—zÉjÛ8¬Ég …çÐoS¦`êâVÒ?C…«šš+ø½êÖÙŽJ}Ïöà>CŒéí–™èR?¦n¿ÕŠX•;­À0ÀNCæO)öbÆš}ª¦í>FCØÄ ÿ:5¥¥)~ûaËä˜ìoÍM’)´Ú[óFB\.E³ï–íúÈ;¿Ûuµ‹­H]½Ù¬Ÿ¡~Á¡¢NVá™àÔ†Ð5;mØííû 5Úi†Î/Ö7¢Ö¹ÕÞH𤉩ýBÖRP#šdó}•ظb-8Å›lÐä(Î\ÖQè &“qàü¬G*xäúŸ^så1¢G…$¹wpÔΔè'o.[\’õ­,§X]Vä õ{;ÿ×±(áû‡ûlÑì®8$ wmæj!A2@»Ô”–lÉþgЗ¶Ë |Ù1t¿µNo\[A"e<ôýz1^ƒ$Ÿ’è˜ì™¾7Û³¸²E¹ùܽ2èÔØ,¹þ®­9 Ø¿ÚÎëdÂ$PŠxv|½Éþ´b賎òŸÊ¿0ÿ;ª‡Î¼[^Tt³õ1ëåòø•¢„ðÏ_8ÐüwLQ ÅP´¡¯Ÿ±ÝûA …T ¯°x%zg~pdB%…±Í7)4XTôÔp…Œ +ruY{z¦ê¬pb!¾š£÷¾N¢Ù.szÅtò]·=aþDðâ#צ®ÎtÉ&®Ç°ß.«–Ì÷[x-Dİy+3‘ÅYªˆ^¥ßjŸ^¦õBS9ÕKR/õ:V"’~gygµXqX'õí»ë³u|ÙAÚ[‡DT:UI™&U¥÷{št£M*„ûµSVNO7«0í2ͪ\”Jr³ò´·°r“€Á~ŠóN¢ ¹If¦syÙ6E¸Õ·r8f¹–Õ($:hâT@”øPeÿŽk‚¹€Å,>^1 g=œú0I±.V374Ïæ"{‹T{]6ìEœ'á8ÝŽ½ÈÆ]O ¼…]àöÔø½J.Ú²I©sÛCó'¼D¡%  àŸ̵È3êïÀ¸1 ¯”Ñþtéª4?ì‘\lóéDU±õnÍlѶqKRŒôÕ¥“õp+ § °ì_ÑSÉ1„-Þ—µžÓ¬‰ç;QíéÅöZ ƒ92a jWבzÓYK²Å,™ÜÜìGUf¿ÉkFiDq­¤X7»}ŠÌ óË®Õרœº¤¥ âi¦qnïÍ^û‹,¸Éo‡ Wðñj7_¡ Â×§ÿ=;ÌôeÒÏ·$á"é+r#E¨ÍžÖ'H¯{cÙ…ÙÙeÖ>f] 4j$[60¶\õ“'DYYÒnJ Å †çñ˜õ̲°A}ÔÚie¹üyaO?œ2 x/•ÿ€¢£u™XÎ^E7Ëk gÃ…–Ì´È@P-Ö,ò‡Ž¹ªÜç˜sðß¶c‹ÿá˜û›r̹Ï;æ8¬\¡ëå×T¤ì¡+Êѯ‹ŸGôçÜ«G¿~Xý t xñâdõ¯Wç£_ÙÒg_|ñ5–’öå}9ºÿ—鿌'·oúûuñÅúþ‡×_M–Wýëð¦}óýßâní›o½¾<ÏàÇßàÊùåêKÜè'ýO£?2?ŒÂÿ¦§7à—w`Š9°_—ík‡˜ñ˺ùT´gùp‡BùëåÏ_ÒÀP_ ðìdz»ùÝBPÈ—t¨aYòÎÂß,o±ëÔ£ïW¸Ü´xK{ip‹ð/&ý´ÐŸ‰ŠæþííÈv;ÍÿóèþaS¼½^.^»Ñ§|2á¿®€©˜·´3òn¤,Gößõjvµõ^}¢ì¿[ï8ÚðöýèSž¶˜~:úÔ/§0í¯³ÕèSfwûûzÄÍþ¸>mÿ¶‚÷|¿}ÂÐÚf9x~]íþ|;úÄóoð.üºÚýùnôIfþ aЮÍjùaØÚø¦óà·Å5üØo°×ãûá£÷ùî >û˜Ÿ}œO¶*‡q §ð÷=©ƒn,7Ðå¸vð 6eÑàÇ 3¯åOaà’ ¼>¥×w~¾žJÙ;O>™`‚ìôal¶äÝz±ÕÐ ˆÈO“‡ûþÏër?‹Ñ¨½ö#˜. zîXXƒ< ¸˜Ü>,FãÉä—{™'|b‡~r°Õ¦d,`p7¨ŸnÏÅŸA>ýËüDîèÿy4MA¥ÞÀÔÒák †Í᤟Š_½…¹9¾›-zî¾ó«·Gv~}\'öþç­ûÇÁÃAy03Eö’~ËOôÎÏ`ÃPS™Tð!ÉÉ‘mLj+èáâWY–¿2ßñUñ+î²HK’Ÿ£O["rôV¶yoÐUôN†)qø’?O/LäÛÁ«"^°a©2TzxÌ<¨÷OÅz\ÜJRW·Ô þ|OðT{² ŠòMÄczáßͪ­ê…¶¾p$­oçЂÅþxTüûþ{] ŒnDVÓ_øÖ26lº\n¨aº¹{`ß$Í#šF{S|Q|1úv>-¯peÈzDþ‚ôógOókJ›,Àc« nµ(:ðžrÔ6˜çvTUm×Ãô²UtpÝyº®ã¨i\K×UׯM7 @^˜*Uåḣ@µ¦‰]cMK…b$®éãÐâû]McP»‰e M€kG5‡Z½\ÃÇ1ð;U ××Ìê’_ŠxÍ4QôAÅ5ãuˆüq‡/yîXìPsÇ]À¹’¯»‚×¾Áf—ÜçPc?ùƒ ‰ÔpA ¦¡ë¯«À ¡æÆwôq:¤*5©Ž5— ×M ¿×L$ô5uäëoøc\ÏÞàî}x€­lj®-ú ¯ùwl]]QëV þðc:²µfbD$X]ñ ŽE­ˆçqŽ~x¨ZG7ÔŸ»@‡®‰a˜uÁS‹èÄJd0ü®<¨Kߥê²q©  QLÔ®Œ¹æÚùšT»P¥¦ÖŽûæéZ»×1÷¹vM&Fíb“ˆTã‘¢B¼õ¢Ö>¸Lmh}—†¡öÔžs˜È°Õ»Àà #ëó8וkÔÀ{‰1j`€Ä05†š„‘j«Ìau…³$J6wâ[Ç×]fÕº.Cbáº&¶eÞ†úÄô5T&C]W!M’ºÖÉS#IÒ¬’< HP™†PPLÓ³ÆÑ“i 5wy>ÃMžèu­€Ž’Áýì’À€þ·Y’aš$b âDŒp—DµJ¢ŠŽCOVÓä®:z@“¾ª;ø¸ ü;NϪä!ÄÊ‚P; B¤á À+Màæ… _v¢ë ¯yÌ+|_*<š50à8R4p]ã1èü1Ž‚oåÞ÷Øü)é=7EŒ“. ‡9©~/åx¿Œò1–T†.×Pº\sÝu!µ¨î¢t7µ74ÛÃö­îR߸f¶EZÔx>Ä‚iƒP Áð%W&ªÖ-R»ÆåJ2 u[qwÐÁ€áog<Ë>Æ:g¹ 8Îu,óø×MËcŽ•58= 昺©b⤺áæ!‡Ánçð$qtí…=ñƒ²N<\eo×2·‘çk™ót¦3Fçxbxü'êUðO›f[þÝÓûÔŒ7MHóÊñi>ÓR)™çÐ"™ó[*Â&ô¡Lúé’$2}’0@ža¯kn6Ê$è‚K² ¨Ú$«E l«en£Ì«iÎ, ax\’’pÝ&éY‹„A© ×ü;¶.ÖÌž(‡á¦Jò®›$·á:Ëó:6,Ï=þ.ãŒnê¤à:&ÌS&MפÃ:êB¬XÝÔ™ÃH'ñÖUéÔaRé6® `­'5“6ä&±–”¦’ö”.V宬o¥Ï¤‡™¬Ÿ…H¤·…x¤Ï™¨kz¡6YµX@ u-#´dØÈ’àá,ØÆq&Ûƒ€ma ²U„aȆaF*غ#«§›¤"¶íÊd% «’õÄ,\°]%¼MöV-6 Úa2È>“IBvÿ^°E'³J41Y€2 É2”éI#OÛ‚mI™ÏdcòDgÛSÙ¤"ÈVeQ°+’„¬[1lõŠè!kXDYÉ,ª 6Ÿ‡ÑÜ&á×8éYèÁð¸$ +ò “ÄIÜ2µ‘&,VqÍœK⮫$†«š¤­ ‘ä6Æ$ÐñÚ'A×YTHOV øqÌ£ÂácU‚×UR1l“²ê‘ß;'û¤«¸ Ïj`åF5‹Ò£±2,¸©¢%© ¬>¹o¢V©Ï¢n‰¬† &’èg"+n¦ª(t¢¶(z6 ¶ ŠœX¬ÝÎ2È‘‚‚#P¸¯àÄgGÁ+8‚þ*8 ^ÁQð Ž‚WÛ(8GÁpœ‚£à§à(8µÖ‚3àH]ƒSpEý]ÁQpA“28‚¦f‹ºÁ\gpÝTpÈ6-&ƒ#°b28¢fp‚G`Ådp‚‚#°\28c%ƒ#0Vµ’ÁQ¨å’ÁQ¨…Ú€£P+‚µ‚#CkfpjŽ@¯fpÂ*ƒ£Ð(8 QÁQˆ…¨à(´ ŽB«à(´ Žh+Z®¹Sp:G¡Sp:ӵ΀£Ð)8‰žÁQèQ˜„8KŽ@dp£“Á¨ Å´NÁ¨G ˆ38ª¼‚£Ê+8¤(ÛpTyGpÁ؊ヂ# ÞGUPpTG[ž¿írH¾ˆJ} Žª à¨ Áñ‚ïˆWpTyG•7à“ÁQåU^Á5ƒ£ÊpT9G•SpT9GpÁQå 8ªœ‚#°Ö38‚ë Žà:ƒ#¸Vp7*ö‚#¸V=áÁµ‚#ठŽà:ƒ#æ0ÑPNÁ¿/àˆKUçQÍI7:GÔÒލIÉ:GÔ礕‚#¢QGD½¤Þ‚#¢v²œ‚#ŽhÜ’aáÑ8'KÄ+8"¾Hàˆ8&™4^ÁqX²‚±‚Gī٘RpD¼­/GÆZ+x– Í8UÙîSpD³0#šŸÙ€TpDó9Yœ^ÁÍÿŽH2$ÓÕ+8"I’l]¯àˆ$OG$“’Ñì‡%+»TpD2/#’†É\/‘ôûž¤ªØý$m8"9,@!t ŽHn ² y.ˆƒä|G¤¢fpDC0 iÁ:¤a8 QÁé$G¤«Ò‚#Òm ‘ÖK5× ŽHK¦¦Ö ŽH«&pDú6õ¹VpDú9©VpDú<#ÒôBm²‘e ÃCƒ Y ‘!ãL¶‡€#²I„1ÈV†!&#²n„ÃÈêpDÖ°$YIªd=%pDv•ð6Ù[ŽÈ“É@ö™L²Û8"‹Nf•‹º%Z$pDDý‚‚#¢ª(t¢¶(z…Žhx^ŽbTp£‚£ÅVÁQlÅÖ€£Ø*8Š­‚£Ø*8‚ë ŽbkÀQìˆËà‘ÁQìÅ΀£Øéäƒë Žòï‘>Èà Rp5dp;G±S1Agõ 8‚f+8‚~fpýÏà“ÁQlÅÖ€# jG±Up£‚£Áè(8ŠQÁQŒ ŽbTpÚ ƒ£ 8ŠQÁ\g±£‚£ÅhÀQŒ Žà:ƒ£Ũàˆ,£ôé>@U— B˜*@Õ˜kF¥™š„Ê45µã¾ep”ºÖq×%b ODBõ.Ä#µ/D%s Q› 2 dxȰa#ƒC†“ ‘4Îd¢é"ŒA&0 ™:ÂHd%#ãHXŒ&aI2¦„UÉÈ&ã+ñ6™eÂôd®Éd 3N& ™wù÷ÚçY%É4$R¦'–2mÉàLó™LQ™èd¢Š ÓU™´"0ÈÔM’„Œ`1d‹è!£YDÓ"ªÈÈNFæ7 [G`ÝdpG`ÝdpkŽb­à(Ö Žb­"Ö ŽbmÀQ¬ƒeˆ“ ƒ#028îTp+G |38ŠAÁÌ‘ Ž¢7à(zGÑ+8ŠNÁQt Ž¢3à(:Ó7§à(:GÑ)8MÁQt Ž`âgpKG±Tp‚£¦SpÔt ŽšNÁ€ì ŽÀTpÔ´ ŽšVÁX4*Ïà®5­‚£&*8j¢‚£&*8j¢GMTp4t9(8Ê¿“‹Â€#()¨SCÁÔìÔ ¢à¨i 8‚>dpýÌàúŸÁÐ%ƒ£¦5à¨iU38j:GM§à¨é 8‚áÉà®38j:GpÁQÓpÔt Žà:ƒ#¸VgW§à®5‚#¸Îà˜'ƒ#¸Îà® ‡±Ã®Sp”> _§àˆ+p”j&Wa§à(5µæ®epÄ]p”úLNÊNÁQ"95;GLTGBmvv ŽdxØtíñp 8’qfÇl«àHƒ¹­‚#f$GÂaìn KŠ YÁ³p‘œÎ Žš¨àhè¼VpÄ¿Éݭਉ ŽdŠÛ\ÁO[G2ŸÙß*8ÀûVÁ G"IØõß*8Ñá‚NÁ‹*G‰ÃH÷– ŽD葹.ÂÌx’ŽDz’ÝÏb•ˆ[ "† @°xp$r› t†""è ¢ˆ èŠAÀ‘h Â:¬J‰Ša›4(8b•$àHtT)8åÆ5× ŽX 8-É]¨MßjG¢n™µG¢Ÿ™xµ‚#QèLíFÁŽØ2x.8Š%¥_Žbšð –KàïÉâ„pMf\Óu\·| œãQÄCuÀ!ðð2= ÏUtj,Hºæ¾_Õü±Ç’Ð8ÂÙàšøZ¢\ãÇ-½Óv´ãYjÆÍâe©Ç½lTPÔß=}À-¢íÒmäaVЩ¸ÔÔkî¸ Ø¢†?Æóˆ™MT×¥ÐÇ-~àùƒ "3.âùu@˜†®aîºt]cNöHƒ˶Cªb“"j(ï©`xüˆ¬{OvoDaåñüGÆ{€5p_8׆ú®ùwlë:º†À5Éψ3n¨fD÷Þ‘IAúà5µä\Ó8GTûp]óÇ ÝPvÁµô†ª½#BFëÞGJ>Œ †ã)ëùAìò¸û.Ô„˜+@¯W®¹‰!7 ¤YnjÃ}£.DÓµÈ]ã>Y31%"!ÀJÄ‹41}[Ae2@oBš$­ÓÉ×>Ï*~ÀÓ >¨Ò4lqm‹LO¨ MÓ¶-i’ð|†›<ÑÛR@[VY0´¸FF‹é&’$Â4IÄDt{‰èMØe‘Ô5UU]m8Œ&·«øNzöƒôeË¿ãô,k.++™ÚpƒHÎèyp/‘¨‡ë ¯K¾ö#×1ÁϺ®%@\†CàëÏ[瞎°+^ãûÎñÇ@IÇ许æ. ‡¹VjÃßc-ïÀûÑËÇXÈÄ\CÓhͳä5^º€ï»Fš }h´o®I}ƒÚjf[¤…«Ûš ï×l}õ\Ý”‰ª®–áÁÓ÷k×¥QpË£ÑqâÊ£qhV§ñt»€ãìBÇŸr^,˜/\`|Cã“ÉmOd“Š` [•FÁV¬H²nYİÕ+¢‡¬á$’ÐJfQU°ùœ8Œæ6/Tˆ4éEè¡ÖI°ÄéIB?ÆÚDz–Ø«0¶¥ËâÖ•UÃi!ad¸i³ÜF€Å¯}ôΩÀSY1àÇ^5¦`bUÂè,©â0Q=ô;©¤B>]Eu¬‡©QnT³(=j)ÃBš*Z’ºÐiß’ZÅ>'u‹´`5\0‘’~&›„7S5)t¤vRôd¹R† M#WŽ`28ª[Gu«à¨nÊ਎ÕQÁŪ£ÚFuTpDaãdLQÜX¬¬:*8ª£‚#Š!‹µV7ñ¶ïê¨à Šú»‚#Š^'š”Á45[œCK´Ž ŽêhÀ Û´uTpT· ŽêVÁ[ÁQÝ*8ª;Gu§à¨î5¥GM©à¨)ÁdÉàtÆMiÀQãA4NÁè› Ž§à¨q5NÁQã5^ÁQã5Á€£&(8M—ÁQS)8‚¹œÁQSpÔT ŽšJÁQS)8jjÓµÚ€£¦VpDëú‘jGM­à¨© 8jGM£à¨i5QÁQ 8j¢‚#r{ c4­‚£¦UpÔ´5­‚£¦UpÔ´ ŽšVÁy½2ðo5­‚#ŠA=Ï‚ßr9d_DGM«à¨i5­Gp£^ÖxGZGM«à¨i 8ÂdpÔDGMTpDÍàˆœ™Ã¢‚#Zj(àˆ– ŠÌ¤E"K›hÀÜdpÔ4 Žà:ƒ#¸Îà¨i 8¢•"öiE¡€#¸Îz®38‚kGÀIÁuGÄa¢¡øwÖ\ü¾€#.‰U×ÀàˆkfÝÈ-bÉ-pÄ}h´oŽ¨Ï¢•‰¢­‰F õD½UµÅ Q;F'#71,h<Ñ8‹%Bã/ ñEGÄ1ɤi‡%¨5¶QkÀñj2¦ZGÄÛÉújk­àY24ãtV%»¯UpD³0#šŸÉ€lÑ|Ng«àˆæG$’éÚ*8"I’lݨàˆ$OG$“Äh&Y%àˆ9L$L£àˆd^G$ Å\'))àˆ¤§Ø÷$UÅî'i›ÀÉa M­àˆä¶ ’ç‚8HÎ'pD@ iG¤1Ó&¬C&£&(8"$àˆtUúÀ)8"Ý–Ài½T³SpDZ25Õ)8"­šÀéÛÔçRÁéçD¤RÁéóŽHÓ µÉpD– Y 2ldI$pD6†Œ3ÙŽÈ&Æ [E†l˜ŽÈº#«GÀYCÂ’d% «’õ”ÀÙUÂÛdo 8";L&Ùg2IÈnKàˆ,:™UòÀÅdÊ4$ËP¦'YŒ ‘-)ó™lLGd{Š ›TÙª ‘+’„¬[GdõŠè!kXDYÉ ‘ù,V· ŽêVÁQÝ*8ª[ŽêVÁQÝ*8ª;GpÁQÝpTw Žhiž€£ºSp×YÔGÀ=YcÔ‚#Z×'*†9ŒUÿ.àˆ?`]Å18âX¹qͲ“µ3àˆ›ÊZ’»ÐißD­RŸEÝ-8""‰~®[GDUQèDmQô4 Ñð¼QMÀQ¨…JÁQ¨…JÁQ¨ 8 µ‚#Š ƒ†ZÁQ¨…Ú€£P+8 µ‚£P+8þÌàˆâÞ …F'\gp”÷ôAG¡6à(Ô ŽB­à(Ô*&B­àˆÒ`%pýÌàúŸÁQ¨…JÁQ¨ 8ªfp†eG¡Rp*G¡2à(T ŽB¥à(T ŽBPp‚G!(8 AÁQ ŽBPp× ŽBPp×… à(GÄ` å±Ë Ó¥‚P¦ P5æšQi¦&¡2MM­¸o¥®ÕÜ5G‰¨Æ‘p(ñjG™Úh(¤a@B†‡ 628d8ÉIãL&Š0™.ÂdÒé#ŒD&Pâ02Ž„õÈh–$cJX•Œ,aa2¾o“Y&LOæšL2ãd’y—~G³/Í*~P+8’iH¤LO2,eÚ’Á™æ3™¢2ÑÉD@¦«2iE`©›$ Á"bÈ8ÑCF³ˆ$2¦ET‘‘9Œ&wPp‚‚£à¯à(xŽhi‰J[(@!xÁ+8 ΀#Àº§à(8GÁ)8 ΀#°b28 ¥‚£P*8ò‚#ßpä[G¾Upä[G`ep¤PpD¹_ðkù¨àÈGG>p䣂#ù¨àÈ7 Ž|cÀX1ÁˆdpäkG¾VpäkŽ|¥àÈW ŽÀfÊàÈW Ž|eÀ‘¯Qvœü+G¾Rpä+Ž€aâ¶k\AÁQþ=Òû Ž ¤ Ž|¥àÈW Ž EùÊ€#èCG¾RpDyx“û¥RpäkŽ|­à¨šÁ‘¯ùZÁ‘¯ 8òµ‚#_+8òµ‚#¸ÎàllGp“Á‘oùFÁ‘oùÆ€#¸Éà®38æÉà®38‚kG‰ÃÈa×(8Jƒ¯QpÄ8J5“«°Qp”šê¸kq×¥>““²Qp”ˆDNÍZÁUÀ‘P›Ý£µ‚#v§Ö Žx8É8³c¶Vp$ŒÁŽÜJÁ3’€#á0v W Ž„%Ù…\)8bp$¼ÍÎèJÁÑÀyñïŽdVÉG2 Ùm^)8âi+àHæ3;à+G"Øa_)8b!àH$ »þkG"z8TP+8bQ%àH8Œ­ïFÁ‘=6×£‚#’ŽDz²Ý‰¸e  €h 8¹Mˆƒ:CôQDtaÅ àH4aV% ‚DŰMZ*8b•$àHtÄJŒkåF5‹Ò£±2p$Z’ºÀê“û&j•ú,ê–hÁjXÀ‘èg"^ð ŽD¡µEÑÓ(° àˆ-ƒç‚£Ökä¨õ9j½FŽZ¯‘£Öiäô“FŽZ§‘#&]=ã̪§‘£Ö™ÈQë4rÔ:µN#G[ë|Ú­@yePÔC:)[§‘£Ö™È4)GŽ ©ºVÉiä¨u9j‰µN#G­ÓÈQë5rÔzµÞDŽZ¯‘£6hä¨ 9jƒFŽÚÊDŽÚJ#Gm¥‘£¶ÒÈQ[i䨭Lä¨5á•¶ÖÈQ[k䨭5rÔÖ&rÔÖ9jkµFŽÚF#Gm4‘£6jä¨9†Î‘#°+rä¨mMä,—9‚Ù#Gm«‘£¶3]ëLä¨í4rÔv9j;µFŽ`jä¨+5rÔ•9‚ ò°uN#G3‘£Îiä¨s9±’#G×Ȉu^#G×ȫ̪×ÈQçMä¨ó9꼚k×ÈQtòÀµFŽøO·Îkä¨ó9‚ rä¨ó&rÔyu^@ç5rÔyuÞDŽ:¯‘£ÎiädoŽQsä¨s&rÔ9uN#G0<9rÔ9uÎDŽ:§‘£®ÔÈQWjä¨+5rÔ•&rÔ•9êJu¥FŽºR#Gp­‘£®ÔÈ\çÈq˜¸ïøwvëñû9â’ØÈ5päˆkfÇ!·ˆŠÜR‰qí›DލÏâ²$Zˆ+“h”"GD=ñ}U%rDÔg)‚8QitRäˆÆM¼®4ž9¢q7-¿¸o‰/Räˆ8Fü½ÄI9"1qž8މ#SäˆxU<ÍÄÃ9"Þ×4ñ¼¸¬i.¤ÈÍñqËUâ§Ù–7‘#šŸâ]§y+‘#šÏ⎧y.nzšÿ)rD’Aüú$1$rD’D$a$@@’'EŽH&IDd•DŽ˜ÃD”9"™—"G$ %–ARR"G$=%øARU‚"$mSäˆä°DQH>Käˆä¶„]HžK8†ä|Š‘ø i‰‘Æ€i ‘†I‘£6jäˆt’DŽHW¥j‘nK‘#Òz©æZ#G¤%SSkµµ‰µ•FŽHKäˆôs"R¥‘#Òç)rDš>Q;häˆ,²dØÈ’H‘#²1dœÉöÈÙ$Âd«à “"Gdݤ…›N#Gd ¥•žN#Gd=¥ÈÙUiɨÓÈÙai©ÓÈ‘Y“Z°E7\¬êb²óêV‘Ř"GdK¦e²N#Gd{¦uµN#Gd«¦ÈY±i®ÓÈY½iE¯×ÈYÉ)rDæsâ0¯‘£Ökä¨õ9j½‰µ^#Gp#GmÐÈ\çÈQLä¨ 9jƒFŽÚ ‘£6hä®5rÜ“5F4rÔ1‡±êáß%rİ®â‚8rÄ5°rãšYéq‹$rÄMe-É]è´o¢V©Ï¢n‰)rDDýLÄ“ÈQU:Q[=BŠÑð9¢E“9¢Õ”⎥U–⦥՗É}ÛiäˆVkfo§‘#Zß™Äqw9¢u¢ÙÓÜiäˆV–&×t§‘£-Wv»åãntMkvŠkäˆÖÀ&'zg"G´j6¹Ý;Ñ*Ûä¦ï4rD«r³_¿ÓÈ­ã•@­ï•­û•À­NZ),¡Zß)!ZY,¡ Zq,! Z‰œb´FY‚´vY‚´¦Y‚"´ÖY‚%´:EQbÐð ­š–° ­¦–p ­²–0 ­¾NñZ—-Z¯-ZÇ- Zß-¢X›È­Ï4rD+ÈSAFŽhÅy®¹ÑÈ­QOMm4rDkÚS×¢‰Ñ*øDŒ¨‘#Z5Ÿˆ5rD«ì3µ[Ѻü4<­FŽhÎÎDŽhåb€N#G´S@†v#Ñ΂Äa´ç@Xö"KÒaUÚ» ,L{oÓnazÚ!“vGÈ$!E”~w&rÄjÝs$ÓöeÈô¤ý2miGšÏ´ÃC&:íü@;BD0ÐN´ƒ$IÚ[""†öœˆè¡½(I$u9¢½+™Ã:Ñn‰Ñ.q(Ñîq4ÅÎDŽh?x¦hŸDŽhÿ¸²b«‘#Ú¯“"G´“G|b´ÃG"G´óGœh´#Hœk´S(EŽh‘xãho‘DŽ˜ÃJÝs$n=z?Eލ$ñR 9¢šÅqH-‡"µ4EލâäýT­î9—%ᅧºç(EŽxÇVÔ=G9â^Q÷‰•w„5fÏ‘x]yY­{ŽÄMË{ÎjÝs”"G¼K­Ò=G9â]m•î9Ç1ï‚«Ìž#ñ4ó¾¹J÷‰kš÷ÙUºç(EŽxg^¥fÜ`'_Ð=Gùw9â=•î9’Èï!¬tÏ‘¸éyÏaeö‰_Ÿw)VºçH¼«±Ò=G)rÄû kÝs$‘#Þ7Yëž# Mð>ËÚì9’Xï̬uÏ‘?x'g­{ŽRäˆ÷~6ºçH"G¼W´Ñ=GŽá½¥Ùs$ñÞÚèž# øðîÕF÷¥ÈïwmtÏ‘DŽxl£{ŽRAÁDŽx§m£{Ž$rÄ;sÝs”ºLäˆ÷ø6ºçH"G¼'¸Ö=G‰xÞDŽxwq­{Ž$rÄ»‘kÝs”†­4‘#Þ×\ëž#‰ñ>èJ÷¥Pcg"G¼£º2;­+Ýs”‚™FŽxÇveö¥¨h§‘£áÞo™°«ì9ÆcuÏQàjäˆw©WfÏQŠw9âýî•î9J!åÎDŽxç|¥{Ž$rÄ;íkÝs”DRi"G¼e¿Ñ=G9âÝ.î9J°4‘#Þ6uÏ‘DŽxŸMÔ=GI ;9¢ ;In;ÑŸ$èFŽhGPŠÑV¡¤1œFŽhoQR1N#Gô{ŠÑIW9Q I¹9Q‹R䈚š´¤ÓÈõ-©U§‘#¢EŠ‘’~.5rDTM ½ÔÈBŠÑð¼ r$àˆ0±X„•Å! - ak±\sg“Æ)8"”žl gl#§àˆÐ~6¦œ‚#ò$ëË)8Ú²ÖÚ-3®QÏD¶û‘'#ى΀#ò}$ËÒ)8"_I²D‚#ò­dÓÕ)8"oL²u½‚#òÞˆmL^d4“¿G¬iBébe“H¬oò‰UNþ¤d®“§Iìxò@‰}Ož)±ûÉc%x ­ 8jÍÚ³¶VpD>1Aä+$B>´QÈ»&Ø…¼n‚iÈ'X‡¼t‚ÚhÀùõòGäLµ ŽÈo˜kn‘§15µUpDžÉԵ΀#òe&bt ŽÈ÷™ˆ×)8"_i¢6yQeÈ»*ÃC^W6òÆÊp’—63ùo…ȯ+ŒAþ^aò #‘8qyŽ…õÈ£,,IžfaUò@ “g:ñ6ù¬…éÉ—-“|Ü2IÈ÷~ñƒZ#G2 É».Ó“¼î2mÉŸæ3ùée¢“ÿ^ùõE0¿_Å’$¡ˆŠˆè¡ˆ‚ˆ$Š4ˆ¨¢Dâ0ŠM8¢˜…€#ŠeˆÌ¤‡ÈÒÎpDQ¾-pDQ‘Ö]©àˆ¢. QÅiQüFôÅuDP¼'#Š‰Â¡‘€#æ°R#G¢¹èýލ$QuTƒ€#ªYt#µHt&µ4#êƒ(YŽŠµ9­ÌQ´¨‘£Ž8î5r$àˆãtQ#Gb'p\¯1‘#1,8XkäH,ŽÖ9Jàˆc•FŽql²ÒÈ‘ØFˬLäHŒ)Ž~V9ë‹£¥•FŽ8âøj¥‘£A<6hä(ÿnÀGv+ 8âHp¥‘#±D9r\™È‘˜®k®4r$¶.Ǧ+%pÄÑìZ#GŽ8ú]käH¬oŽ–×&r$æ:Ç×k‰}ÏñøZ#G q¿ÑÈ‘€#Žø79ÄÁ+9ˆÂk  ¦á5FŽ8âU FŽñ*‡F#G© Ú€#^/ÑhäHÀ¯¯h4r”ºPpÔV ŽxG£‘£D¤JÁ¯©Mä(Q;(8â5%µFŽdØx Jm"G2μj¥ÖÈ‘0¯r©4r”À¯‹©Ìz™J#G ¯;G¼î¦2‘£ü‚£á GƳ ‘£¡ËA#GÙG¡àˆ×U&r”œNÁ¯Zª4r”¼&΀#^ÿTiäHÀ¯—ª5r$"‰×WÕ&r”8Ì+8â˜E£‘#†ãˆ&r$Ò“ƒ"Q#G"n9ŠMt¥5‘#‘ÛŽpDqô¿@qŽ(à#ƒAŽ(B$*†mÒR#G Ñ¢«¨ GTƒ(7ªY”µ(#jªhIê‚€#ꛨU골[¢EGD$ÑÏD<GDUQèDmQô4 ÑðŽbSçç9j9/3±3YhZW9}sž£H¥‚|ÈyŽZ:NSjVÏyŽ` äÃMžèm£šC‹ôÑ6Nóµh`ˆˆié<]=msž# jÎsÔÖ&“VËùàX+Ѥ—u”£VT:§ƒK&æ9‚›œçÌ›œç®sž£í IÈÐÒ¼’稥·œÁ¡¥|½œçˆl#Iù×9Ï\kž#जç¨E .yŽ˜ÃœÔsž#~_òqIœµ‚kà &‘nKyŽ"§abƒµ¡ä9"-Y§hi™ó‘VMyŽHßJŸIKž#ÒÏB$ÒÛB<Òç)Ïiz¡vä¼MlÅ:ç9"‹A†,‰”çˆl g²=$ÏÙ$Âd«à “ò‘u#FVä9"kHX’¬$aU²žRž#²«„·#§Vf›í0™ dŸÉ$!»-å9"‹Nf•'?‚›J³Á]“ÓÁM›ó¹²ò9ÜÔ9’+k“ î*gÅN?Â%¹8\[‘+jêhÚ€ë1róp¡FnxÓíR´e4tÀ9I„mÉÄÃ’2YQf‚ã’‹¶ìt˜ÚÊé¶Ñ -.lɃŽ+^”º¦UVÁU2‰‰‹2{!w$¾sÈ™#£MÌ«x“³#9¤ân¸©s~$¸i4A’þ§©7mN‘7]Αä°EúC i>¦G ïrf¸is%¼ÉÉ$ð&§PÂÍ¡„ÏI”ð&gQž ©Ú˜ó(É7²AÊã¼Rï-6°÷OZÇ96¤Ý’MIúälo]îmN¨$âB;I©$tå¬ Bñ2  ËY•d”8î&ã'y•xl%) ºdVb~<&Ì)’à„y(%Wbþ’œ(Ìy’^‰yRÒ¨0·J~æã”a‰y\R²0÷KŽ%ž’Å…gŒ¤wá¹”Ò,ñ<“Œ0é‘™›’D†g­>‰šk‰çº$¤a) Ù–X>H–’܆eJJ¸ÄòFòá°$’”K,£$…K/É­Ãr-e]b™'éxXJÞ%æIÉàÃTRû°lM©—XîJ6 –È’|‰eµ$b).™…X¾§üK,û%kÉÀÄúBò±&‘ÄF¬cR&Ö?’ ‰5“¤ab%é“X›I^%Ös)ëÀÌ“Us1±ÞÌ¡FÍÅ¡®Mé˜Xç6 †–„L¬»sÃCµK¡ÔœLl d: • Y™Ø~ÈÄCË"“mŽ”˜‰í‘<®Ë©™Ø†Éhrj±Ý“²3±M”ù¡ 9?ÛQÂDd` w‘á•4‘I& I¦š$h"Nx˜L;an2ùR‚&2e>‘( šÈx”)DF¥Ì-26S‚&2Ce:ʃ&&³Uf0™³2µÉÌM šÈi@†±$h"ƒYÒ"YÈÀN šÈôaD&¹$hb[= 0²â³hCû>åhbÓ?ó¥HÒÿIˆâBµ,^ËV5Á]W©LÆàŸ¤j‚¡. r\'—E¼+5[Þµª°$Éׄ7^• .ÓËjC‘)e2•ÑMP”¤MxS©B3Ó“Î¥¼êG*®k€jJJ•ÚÔ-µN’7IÃ“Ž¦.Õ¶·I±’Ê' I'!^²ˆ¬ì‹Š'ã‚Æ"™4J²C𨱠æz…$($ù@!IŽ I¦dPHò&B’D ’ŒJ ¤W…$×2($™—@Ià ‰'r š0ÉÖ Iî& B9B’Õ ½O¸†ä{…®3 ´B…¤/‚"M’°é˜ Iÿ$@Fš)BÒY Å‘6KøŽô\….PHÚ1BÒ›ù£Ú€BÒµºÚ€BÒÐ ’îÎ ¯ (tµ…d d:T’ý‰WPH6G…dä±’ “¬›4´d÷dPH6Qâç ($;*1YX‰½ÈöJ°í²ì¨p Ù–ËÞ W¿‡3ØmÃì,qŠÙžÌ§øÐze ±O·6MÌ6­zy$²œP"ÛÈÙiä'²]=M®1>(g "ÛéÙqå X$Û>{»¼‹„2X$¨yҰ輋ΰ輋tàI’Õΰ肋.°è‚‹.°è‚‹tNHR2.°è‚‹.°è‚‹.°È·¨@y"`‘?½ÉÅ XäšDÙrD sëX䆋îæ.Õ¶·uªÖ€E¦P‹L<±˜¬™âM@y”Xäüî-£<¢Œö@;Ü9ÈàŸÿwÄnƒæ(: /9’Ø ^¤×¢54ð¦p4M/)¬N*ŒmòDF ‰ é.¦àÂÉt°åßÃ"Om|±ÕÞÏ/Œ®óûûñæ¦@ÏZ¤¢";ÝPCºJ–´PæIÇiÐi­w×÷E¿ÄRòŽÆ‚·éަ_òÜÉ]‘o«Ý¦Ò$¯VË7ý˜ziª¿Í_†v·1ÆfLTnc"©í01HKdbxg‰á%¥ÃØOŒ0 ߥà·Ó»i|&1Lõ·ùK!Æ 1ÆEŒFk+3IØâŒß#±œ¼vÊ 1…߃_RX5(,¾xv´µá>r^Ø¡­ ‘Ûú3ÐN©Ä r#;MkË |÷,F0ß¦ï˜ ­´ïå3¢²Ò¡²Â¡²S®:$‚3†ûÙ…š P=_,TV*TV( ZQG$„h¢!@ˆ¦@kû à[C¾ÉHì,åî90ߦV Ú÷r4V$6V"6VÎ4‡ä!£–9€oã7No ¹{+ + ­hŽ“ƒo³|XÍûÕ®‡ÚµÅ‘ûíj¼î/.å{¶Ÿ,×;…ôýâv¶¸º»ZQNØmÌýª_ü´ÚlÆWÇ´§Ù)ç§»åäøöø=íY^]N×î¥Ïby}d9»íùé%åPæˆÝrŽî.Ü?Рã W( ÐvA/Ä®~N<‘b ‹´(— ¾d¨O/t[戚}7“Ïé{×j yñœ®LëàëgWò4Ró8L”´b 1V[¤µ!Ð2…|nñD¢þák¦¿s 9¢©¤4•hÁòΩ4fTC³]°¼sB%J¢[þ“zÒr…³ô¤4=)MO‚éI8±h¡<³e µîÍÙtüNÃþŒ,Š«>¶œ þ0‹òd4ÛÙùj'lwîÉÔµ;“éó-5×™ëÌÀu§œDu}Ô a|]k%®>µ’ÒÖRÚjJ[OyBEÄÚ©¢LErS«¤8©"o¡ ·PÐ[|å÷CÁc…]ª(”¦¢`½&¶Ö—UDkREOMÉMÔ%B§UTÛŠZ[Qk+ªO®¨5ÕÎT$7q§ÖÄxæºÆr]c¹.¼€ëž+ò^•Õ®\ OÈ•h›[Úæ–v6ÆS'Im'Im'Im'I}ò$1ƒ{kk–=öŽtcgcggcg*’×â©‚,UdݱÁz7CyrEÞÎFo+ê^PÑgxZƒ ¿Ë»î 3Xº4–.mn8sà š[[éÝXé=ðþ×'Ko2bÄV ÃEl¾f[ß §VÒ˜JSIg*éN¬$I'*(I'¹©µž“¤“)ûVþ¦šÒ]½S · —{w}˜™:;U¥‰)FSÚÉÚu§²“-=­kÓº¬=0¨ù¥•ÕƒÊÚAeí ²úôʬUÀ+ìreÎ *;Ù0°ÅßÊ_­Ìª¦AÕçb2ÇC³+²ºÃLÆMÐH`9ˆ–ƒ&Ç3±Yžƒõ`Öffä)‚E:ÖYÝmçKzíœÑ5‡T‡j ªïÄïÄÁ@T¿ïTG·yà(ïl¤ ³‘‚Îzâ»C‘‚.ª£¼»g¹Ã;èl<`PW÷âxÀÝ(zU¶´JY”-_³²åwNP¶\@c*iL%©¤;±’4ÿ¢~Ñξxòä‹VÄG+á£ðñdù­xo­to­p'ËvC­Ô£DºÖ’®>•t­Õ!­U!ƒ¸p{2¸‰VçG«òí°¤×Î)m¢?$lÊg ›Œ°¡tIØÄ`¦y ‡ÓÁ ¾{–°1ÅߦïXØ ê´âåÁGoãïÞÆß½oûCñw_ÛnúçGÙ½²{eÔ岿,(ãá•oÐ¥uoâ0—¹3›‘ÒÿäV½[?ÊWÏáXSÇÙvuæ2™eÎV¦î½:_™ºìŒ}Ï;åÎ\æ™Û©;éÎLÏ3÷]7㙞gî»î;_™ºÃí|eêö¶3÷ýuçíû™ËÔí|glgwþ2u«áËtço§nòGôì_ñ˜!­÷—Ñ[ÆQÜ#F½ß[†sÇòøž¹Žk{ʈÇÊÀ=²§>vžìiÇ1qûøžùêü± Ù#ÝŒÍ}elE7>32ñ@!G«§=üŽUO'Î*ãÄ9ÓrÝ;gÊ£E؉!Yz¢$ÂcL÷ õú¨BÊÓÇ“½ì•ê;‘ÿ—Ñ÷™ê鬞ӌR2(C{))ùž2ŽQÔÔ•pb_ªýeÄ£ÛáOâq*£;Cî4»…ËØ·âùXÙWHwtK\s:›í| Âör a«æ@!ÇpZÕ(¤:š&åi¢°>4:Ç(ÿÚŸatBÎG¿¢¥¯¾øâk,$)”/G÷ÿ2ý—åêêM¿.¾øOßÿðú«Éòªíß”£o¾ÿá[¼@4ß,€­Öò2Èvøñ7«~ ôþõ™Ÿô?þÈÜ0 oüèû1ˆáEÓsT¥wáÙ»ñÊùñæaô®¿A×Êðeé¾Äc2Ë_ü ¼öŸ­æw¿^à‘7K$Ø·«ñÝõr¾}ÿÍoûÍßÿá»ß}w‰ÝY>ÀD½›}½üùKU¤ýãxv7Ÿâ¹ÓPñ—o-KV¨¿YÞb÷×ÅÛÿü­¿_Óx¡ŸàŤŸú3ÝÜ¿½Ý™oÇ ‘Ý?lŠ· åAåÊk|ÿmt¼Kż% àç´°ÿ®W³«­÷Üð=wè=ŸÞsO—†ï,¯}rÏi_=|ï`yMzï3í‹Ã÷–×nÓ<Ýó^·ýº½÷Ñyg@À„Ûû"Hè÷D ×±q‡‡8è‹ØºÃ/Vú"¶îð‹õvÕ¨ãšíª‘'nW}ˆ<40ÚßÃm¤‘Ñþ|ÑÓÈh¿è¶«>Ðkï·«>Ðk¶«>ÐkO#SÓ+î©!ô42 q:Ø¿H#éÜ1qøÅ¨3°Îÿî{±Õ¹øï¾;}‘€ÿî“%¥¾Ø¶éß}/:óbu 3j84 5Po±:çD4ó;¼Da>¸Á×ävh7$Ë¢xÐ]®kßÄÑtÆz*§TfDí¼}Ê_ÛôÓѧ~9sÇþ:[>eÛÂþ¾±Uc\GŸ¶[Á‹{¾_Œ>qWì·£OL†Aðëj÷ç»Ñ'éõ ЀÍjùaجøŒ¤Áo‹kø±ß`#®Ç÷ÃGïó£÷ËùÝðÙÇüìã|²U9Œ4=…¿ÀËÕ Ë ôc¹|ƒÍÀ¡ü8¡b&ãõ |€ßŸ’e8x}J¯ïü|=•²wž|$2å°Ó‡ ŒwæœÁ0zpû°'“_îežjð‰úÉÁV›’±€ÁÝ ^|º=ÝW}wM(Àd9Þþ¡ÿ µI?ú4Ò7ØŠz ƒÖ¡ïÆd¹'ô<Â1Ÿͯx¦âÎÏEþ™Ë¶ïdØ`  Þ¿ÿ¼èïfŽKæÞàù'©ÈõöÛïÞdŸèŽ:,3êÿZ˜·¤4„“£ëåýã(ÕF2<`(Žþ-}³ÿéˆ! \|JøÊþ8]®1éÛ·ß¿¿Ã[ÂaA;4/–ã Á5Ìmàp÷T‘ ÊšõnßÛ7wË ÒÛ5;…JŸýh>™ÿt°¸­®ú{€…mqúªyB—÷ fá}ëùßõèOEûb:„··ó»‡õ¨ý?Ñ^ÙŒ¨oÜèíøúaÃ7~ôöz¾Œ3]ô?Ó/aô`ì¤/ð¦‚RÆ×+€*xe^­z)¦½€„º¾†YB?Døðh¿ž¯ñ[°ߢÔÀg` ¾½î' .Æt µÞ<ÜÍÆ«‡ÛÅø>‹ïír¶¼ë?ÐT|=†z±$°/°ªE¿^Ïñ!èØ·Kj(Ñ·¿ÿß úv}?¾¦Ÿ½¿…ñYŒo'ËÔô û) ­ ¦õ¦_XžÑ§XÍöëGzÝ|ìù³{ âîj¼¢ “ëþqÞÖå°Ï5öØz5ŸÝP]5Ô»\M¦=ŒŒýÕÏÐQp‹}šò{ІÅrlEEA+nïo¸!54d’ÛÝOè—h‡¦Á†쩊šq¿xX`a 4cóq¹~¸ïWó%õ¤Áq¾?V†7d¡º‚ÚïÇ«1ù¾¨<¨œ¾š QS“b9å­€ñ´åG&Çíx}ý@[Vñ7KL¸XÑÇ}¯ |ú¥¦_nÆ‹)}ÖHûåbôíúë0>2ôèˆûUâ~Ìüøö+êbwО¯üÿ¿¢ @wÐŒ¯ÒÓЊ¯VÌ9˜¾äíWßÐÏPño´ï˜”òí7¹Rdÿor¥Èýß +EæÿÆVƒüÿ~•~§ßC­ßm}Õg¿Ç)ó ®‹ƒK¨üw¹C`ç¿ý=ŒE1ÿö÷iÀ13çÛß Ûüíïõc¨ù÷ƒj ›ùýâËÙù{°ÖT3ÎÎÊPó?åºÔüOZ} Õÿ“-=@åÿS¿€Ê¼Y®hPT<ëW· e¯ô2 €qîJ€qþgÿxØ1ãÜ1c[5Ê€qf”c~ª½6ÃŒó¿Ï=ÄÙßça©ß+Å©ßÛjpÚÏõ{¨t®ßC­ó­ï¡ú¹ý§}ÏÃŒsþ.w'ü2Sçú2S'ùrX0Nõ¥~ 5/ÕhÿiNJl½]æAÆYþ»€ü!ׄSûa8È8¯lÙ8­õ šÕ2È8›Ó»a—œžéâ5(½‘(¾dO¥8Ô×ËÅdd®Ÿz—cVöfïÛ£·vƒÂ§âWoAÿŽïf csýê-­gÚùõqÆ…¹ÿyëþqðpPPWühäSÛT~¢w~=ˆQ™T`„‡nd“Ú:^]¿ÊÀ®ø•©°_¿b³B<ä }Úr÷øá7¬~@À2"÷5|)V‰¼0‘o¯ ÖÆIeZWáÈOx;'U øLåïÝG¼Üˆëƒþ®¯‹/Š/FßÎg£åÕ{PÑk0Ç‹åGúùÈl°ƒ °e‰ÇD:®¶ÃœÍtMW`ôÐ! HPÚÕˆ<èÉzÉK˜ùÌ•(“åòàû|ܵ¼E‡ê´¡üüÔ ÓÎÃl'˜ØM*x'YºZd·’;`zNŠ]ád¾né‰äØî(‘›dÆdk>¥ G3ï$1ÜH†lL•–ŸPÂ7¹AÍËÅ¥DÓ¹&Ô¹ Á¶µ›n"ÖêR¢éˆ5I*çÀ)è$Ù5æ°CC˜GÂvdcÇüq”ùš°c®;Îáå*ld.¤Ó@+Ë vÖIRó*à“*•PáG^Þ«°8'Ià+L¾×I@€A!OjÌÄWI¢é Ê ¥äù®ênä»ÔVÿ¾“Lá˜Ëw!=©àÆI²ëªÁ‚’Þ·’ô»ÂŒ„è‰ÒI‹^A×|lS/ 0Æ‚d¯¦Ž>¥²w˜$«57)ã}Li¶¨Ì„X·éQJ¬˜oRµ8w*É‘^EÌàÚTÞ¥1Ã,‹!õó~… ½€A÷@sÓHúô x¸PèÕb–3Î 7˜”²I7“¡µæÆ¥^´˜O-õ¢EaP§âL»& o1›ðd…ùÝR®6Wu˜[Sr’W]D›tÓ`ê7)®Ã¤p’ ÓJ*{L‰îR"z¤›k¥K5L—°&ÁIô\0g]+½¨+LS×È£šrÖñhÖ ¾']¯“أ蒋) |SzJF0Á$ÌnCƒ55’Xö5œfþB ˜Û’KÀò© sbºFjŠÀêP&÷"Rº>ÎêGMvu¢$Fy1+'=jaRAW˜’-&ò«9í!Ð šZ;y¾)¥ Ãl‚-×DÉZ$¯°…ÑlÍgÚUÜ:˜ŽPrzÎhÈÃD|â¨å¤B80óá3¹Àù8=ŠS‡Æ>§4Bîð̆A2圧`&ç™Å½§<е<Á4®^æðsM/p&.!'Ò¦DGãZ¹¢ÐÒqJL˜T5ÍqzT!ù%£§Gé…bžo0±£+å5Ì@XvÒ œŽ®l¹Zœ ®ŒR²¸d ôÄÕ’\tB…ªŒ9ÊW—< ŸtXVºÁ\º!¥WÊMu’–Ô#ówQxŒ WríF§CäkéM êHFã­Ð®› j…0XA´æ6 !¶©ÍM £ÈÒz£| Ý“çq:Ç:QH«:Ó*¹¦ŠœZ×£¨Ši@ަièQ°GI·UÕxídØšQ#<…êsó¦±Å ¥ˆàæ­°P´‘¡D»¿á â¸4mÊ m8+$ð\§×´¿™ EFN¿£ë®‰c±ym)\®5 (ÕìM‹p)µ”&Ll¸4•´o˜w6õÔd¦X L#ú(…•­U›PÛáPÉ(ßñèÐd‡Ò£pU‰C%㉙Ò8—ÐÌ4þe+|AC¿$ÿ'\»ÌIh¿%+p‰óJ(°•ôÇpSK¦¼®2ã$K¼Viâù¤bSÍ̺6Ó§lÌăZ§‰µR@{JèJo*3…9?¬LnJŸš¦=eL-ÛT‚K‚ĩŠ×u*`@êªè™„‰êÉmeÀ*äR/‰?БI0b ­OBoJ§ HTÐw©M˜„3)—wÒ_"ÒærNÂÞaZ椦#fAŠ7&åAŠWÕŠCi”›I¡½ÆJŠÌ‡Y§Fµá´ÍJ=Y†%Å.)Q4¿;£^Ñÿ–/ú"³JF²±²&ÓÞ%E>’d“ŠÍ«ÊÍ©l¸: …` 'ó«R3'b6@\iL´”ÙhÁµØ Á›hL²1Fòf6ˆ«Ép¢êdTáMeÌ-Jtœ 1bñd¢•U2Þ¨„ ;º1&N…l âßl&bÞe6 ¹„d\æé:¦Î)fnΦ*ÝË%”bàæ1}1õs6Šù¦1O*I`,w©ZÌ"žÌoz’ s¾©Zs“{w’O—Û ß´­6<Á¾©Cê…°‘ènªR‰—  ‘•@M‘(Þ¹ZǢ˔ì$áfø„© X2ê º„‚È2’v¨aê áPh†”Û¡peàG7BBdÐ Qâg‰YÕ`R 0ñ|ÒM§°åe¬ÎU ea: È¥™å» €ŸÂýwbÐ\»%Ó§Ú#ž…cf'J¬’AˆÓ¸ÎÆÝ%3oÄx%c²~°lÑì5ŠÔ(¬-œ…N,)´ü[1kq L]1а춑×:œÔɲ (Ò‰æoh~2pñNé³ù£†kKë” Ÿù´ó%¸µÃ,trSá ¢DÄÊ¥èêHp¯3¡ÅŒÒŽÅ‡oi‹5Ýb6nI¬í[­N,ŸSR§AôÇôÙœÛSÖnϚϓkÉ󄢣ͼè#âc.p,ø1‹âc˜«€E³Wø§;s,„)·fEàVÏÛ«é‚`‘Ä…¾f‰H®/Š&`ÒwŸr«„,)çvðä `¢쀤|BJ>~ C0:<}ç0< ?¢“›ý,`CÈnv F‡)*3,XB…ë(#‹Ñ€/¼ȫҲh ì ^JÀjÛJ GD+m%o‚°a 7AËR&cÇ—KÀÞ¶2fHQ/¦ÜxZ•Üÿ&=:1~z|×H/覕6@o$[? ¥ëÌMˆ©@e­5…2jBÉæ!µ.¸T498Ô'uR°mp‰üß«¤„ˆ®Zž4øDT6ÜáGQzAb4õ=a®•!‡™pk覓XÔÉ#‡N@?tIì•ÂmöŒ5°¯8ªqÙ0à“Œ!àôR°zòJO¾BñkOåy™ ucÞ#jº¡¦JqDçŠhfµ¶ÁåæÑœSW&1h—\U©'ÊS¡ôÈ“fp2¡É{)e³+ÓɼÇ‘rÕKäPÒ˜5rÓ+S„êDÇJ!”ääsø ùA¤\Gl( ¬C~W&H¯6kUànòd `G+>ñ.(òˆ\Í"qOâ¹%W&‘ˆG‘“­ÇJyTÒ4‹"‘Ñ•)ø,Ò„åÍü—БDD¤"ཤ›ªË²‡—'»–4¥¬„3P;ùQˆÈÕÑb Ù@G5‹ï¥fr¸Ôø^‚ôhïTBÔÖ ž%á:JŽäõsƒç1Ãtx.7h…äôqhÖ ¨Õ¤R$!bõ ÍHî(4½ [ä{ïdâDd-Å~,ÔYN`s$ƒUj‚t¾¡ëÏ7®ÉÕŒºªN™t»JIÙëÔzéó5DJÉ)GþS¼ï³ýh+í]ïýd°Ž·Ì:>_ÎñÙŸJTJ|¸ =9´¯¯%d~¢ ÝTÊ«ñÝìøíÉ~½YõýñµûHtû‹$vÌØ6­|Ë锽¤õ¤kI¸Óæëg'ÀØJÁèL-•©¥ÒZL/­¥2µDSK4µT§Ö‚ÖBç{“Ï›||'ÕBÙ½ÉNêMrRor“žF±húR𾔆bñdŠ•¦–`j †b婵ð­rrÊî4k8s²;µ–F+i´ŽN«èN+N•f+§º©ì”ñ0IËMÎr“²ü¤­¡Ó:­¡9µ†.×@Ó ÑÑmUvÊ lt6:ÿº­ÊN™}&¯{³Eüœû4^JÙ®+“íº2Ù®ÝñÙ®‹—œÚûR¡Ú¤Ã6ç°M9\Ÿ:&Îæ ¶©‚ëí~½Þ$¡õÕ¶D—wŽ”ˆ;«?ÑÖ¨¬­Aih}sTeU@’ÁÚ›Ö>n+¦SDk(U¶ŠµÉ×A¥k§N‰TKej©´Sã)S"˜\öÁä²a»ÆS¹Ô 4áë Œ{Z-ÁÔÒ˜ZSK8™bÑÔRšZJC±xj-•ªïZÕw­ê»:U}ת¾kUßµªïúTõ]“½6&{mLöêd“½6&{mLöÚ˜ìõÉ&{mLöÚ˜ìµ1Ùëê,À ÑÉØliWc]SÔz„½íIþîÔ»UÊZKÆJ;«Rû[ê>£U ÍÖô1–Ò9[ZÕû[ê?ÓRQéÔ>QéU«*ß©O•RKí´–Ú™ZÚ³©/ÞôÅ#¨;¹–ÆA1‚:SKsj-ÎPÌŠƒ4'%;QŽ¥q1&pmLàú%&ðçyµ¦µ@Õq 4¤†ôÁ¾üEšÊÍ}J xõáÇÚp½ÿEš[ùÍ}B¨¿æÖØà[ÛúqÎJÝæ€Ý]~¦¹É&êŒMÔË«yMôÌæî9CùõÌ Má$Íåë°ÝôSpyª¥6µÔZ‹©ñ¥µÔ¦–ÖÔÒšZ곘£RKm Om Ou2ä© ä© ä© ä©_yΙÑÖ[N˨´•ü 7šó†ˆs—ê»î¼¥j”ëì¥þd=¡Ác”úÜTõ¸¹ýì@mýeJm üÌz~²æØé¹Ët§gj&>LñÔs—yî†jàøŒ…æ õ¹Ë¶=n9Í‘åðx•G$&x¢œöôáò{‹ /¡N{ú Ç½Å;æU¹·˜cIÌI0OŸYíÞbš—Œ”«NoÎl=þ%tO9ÕKÈ㪓'(Mˆ£²!=Açs”s ;S|ÉÔÚSNó’ñ:C{8ƒÖéí©ö °c‡½Þ/Àºc¹§tû³ºÔu§N/Þ£Ùu§²!îp ½"áT yòàÖ¾Ó¤3·hOAñEu;=k^Ô³=$ª_0ö{It¬Ll[t*/R1{lcû «žÌÒTÌžæ4/éÖž©z,GwÕÞV½¤˜=Ý:v^´ÕÞA/)æ &'Ž«NÖƒœ;®:]_”ûˉ/±1÷”Ó¾ÄÞpÏ̕ϴÛå2[PgæÔu4°ó­’zn©ö ÉîGùÐ&9½æßa™”Í9æ¬yPaÎ:` ÊôwOÙÔ0¯ÚÆÒ?Qê4™e˜ ïv<é9µ[ ¬q†r± ÿÈTûÝÃ-ü }]¿¹¬:(ý»;¨%uøvº\!Wb>»A÷7Køù+¥$qÜÒ.bÖ6žÒëñ-Î! ÆÃõDÆ+x¾ @í†àï&ØÎùÅÇ›>[!gÃßGÊ®‡Ÿ_s¢¸Õx1ÿW"ÙóÈ"c±ðVO'ó<梼ã¤t’j¯¿¸ÆD]4."|dx°g8:˜}°_çü}–G&ã͘æZJœGÚé³¢4ƒP;n“}Dj£¸ù ¤Ñf$¦üÍònÝÿõ{³xäÔ‰¯@¶©W4ù5…¡t~òc!ÌÔ¾1¹ûüꜦ?6ýv¹z$o&9ä}€"tª.ÖÁ}ù—Ä-_^S?ê™Ñ·½˜còÁw,ІL>a&o[RÐ7øÉcÊ—8à9_Óærh ð\‹3•È~9Á|ˆ™=¨2n4n¼˜O³v0I(·“ bŠÙŃxâNÙÈ•HoqŒ·“FÃ×5ºçPkØ©>3Œ>“$™4§8¡4j@Ô¾ ù’;€§'¤-5icËb%©Ä˪êcrFÖˆÜî}Ó[)ktÊä‚O}~sÙuPÎ7ø p/æ†Dê]ã`~¸l$/äßq+ÚÖÛv{ñ§Ë%â=þþ—Ë%¾þŠ… TŠ éGûF[õ$Û„ÌŒüs'ߥn¸M鹿ÉN§ Hñ(%½º¼†—ÆJ-úJ›2å¦Ì…U§\RAÅ»¦ÄXšÈô–uÑá/Tî=Ižå†u%ìT$‚ÌÓ`щ7ôñwwIÄ­Ö(v‡g.i-™-öO…”Ìãã;Ÿî¥ý;Î*MøŽvdÍr+R¦A*<â1‘Cûƒ¶ßiMŸFæFg~[¤Q‘i¿wXsOˆbu%K{‘‰bM˜b¿³9?%èØ3S«ÜÈŒù³\PLߟ._cÖñj>¾Zôë?_^z4Øæw2MfCèÈ3VšØúй<ír¦&âÑ#Ãp’Â)).+<®Dš=¨ äFƒRó7ü, éh3Cb^³ðGåD"sjõÈÌ»‹?—¾¢VU½ù£Yã¿ó@üù‚çc"rp)ì-ìŽÞ½„i7žƒ9Aêœ{°NöÉMNâ‹Ã]f@JŒƒ'ØY +‚l(ˆQ(МZ"¯í¾†J—[ùþÂ¥„D*Lòò°fåÿŠõÕ쉩Ómðëkn ù0Hý+iŒ6Bhò`–"¥¦%)6^d‡Ç$ Ѫ…]P;9!ó-Ùrz…9%¡‡ Ú\gÊÐËzÓV8Û©ð'Ðf³Å–ø×‚¨UsORKnÅt¨Ù"#S†-²)ÛÉðZ"f!õ/ô©(Á1ÚPíj…øb†&ÑAª=ìLÖcs0læ˜o€ô%±Î« ‡811I;µH“@#Ž„—ŠÝ*˜ØÀhlö¯ïó [Êw8{PÍ\ÙQ{EÜŸˆA/©-è0|ärÐ{³CÝ2³Î€d®‚É3C=„œ­Ïn.8ÇêP€%”ëÄd‰êŽaÆVkHMeÖQõòƒ BP÷%,æwð—Œh¼÷3hšO7óóóØ O·Å2)„\NA Àö/(ûzK"“›Äå5eyÃ"þ;Ñ0$"q ~ל¼G‡Ü2œº]…Qc–´¥uS±èW Efƒé!·?à ÌèŽÚú‡^iÉ©HXJÜï'ÑÈåü¥÷`)Öx,øã~§¾0¢Æé?ßr”ü†rþÉa®—¿¼ý‡ÑÛïÞ~M¢}ô§’~ã;L”húíW›Çû¾xû[éýn¸xóõèíW¿ûÝÐgAÈ ;Âä“q#6LÉþóo¶²¯û}Ù×ü·}=`öÿȾþ·”}=!s*“ùl|°“ÉÛ9¾¾†ÂÚ'ì…Æ}dè‡N²<¾³?°Às(aøïúŸ©µL⤇5È[T¼7¨ù'h$Ý‘g\¼PÇ=²B=Gƒç^¼ëûIj:0þøƒ¼8ž$Ïšõ„_ÙøHô2‘¡Çf‘ë°­úñé8G½tË~S6¼Õ¦Î1A™fV@wæ„içýç[šhaÍÈLEsŒüO—byá*2ö å0¶ÊZŒÖ¯Ù”˜,q€*dˉÛZj\ß³ÿ~½]÷‹l±b»ç8–ë51MnrzLÆ£®ÍWÇaÃO‰0 AÆiïÇdªO'÷²a†k”eS’Z7äàx%!¦i±Õ`b»»v“<Ô†¦)ŧ t%À“Çv¾_ÍѶFõ@&FÄ´+X ç˜Ãd|“«yyGŒI•\÷Sö¿ G²·›¶ æPqxŠó#ËzlКø‡uƦ,˜jÀôLؾ½™•$£ 5XÌ=Õ¹0}äq#VÏ>4%p Ѱ£ ‚Í$9<s –Wè¸ÀTx¯¦ÉouA²ï.vJ µØˆ•üTÊF·è©W€¥ˆ°ðâ‚[HŸ>A¨iû ‚J“ ]ú`S n*¿?fZaéèi‚º@qT÷Þ2çA¡±¤AkJÔjð!W¨#Ô^‰wr|h<…1§RWF–èI›™‹æ¶YSpÍdÚñïuBQ#bÙ:%å0¿Kp1Áüõ¶<œ‰…¤¥VÌ'h?¿C1£‘åzÏòm:TStÃk¢E0û+–uÓ/î“7>«Sk<Ž%”…¤`K@\ ýÏ÷0\"E+Q¢ŽG¨£Ÿö˜ÕEŒŠŸ# Ÿ$ž2¥a'Ѷ:ÄØÁ»îYâicg¹±¥Î(À—Å£¸²L$î¾e_»F¼ñv|Ÿ"Þ…HÅÿëk°®&Éd€–=ÜaQ‰ L«'YXË« ¹Áñ# 5¨DAW•’’ ¸4¯ ªõÃ5Šß›Ëkf&\žLЦmWèx"qÕŠCfjä½€ e)~êe–ݰ³+æ`‚àäJ~1jPÛ7×s±@zl ¼D /°ŒìgÌW4™nÇ?'/5³?<^,–ã ™mØðñ§… Ôl{\ŒÉúÌ>Be% •®ÏÀتq*³ÅL¬±^ÞöÆ­¸ÆžÈËÐ0dj¬þ˜ OèËŒ dêõMþþvËä&ŽÉô™Öê µ¯|9žLæiÊÒ?ÿÞSì}¹ú?¸ uE ™|’âËgF'‘ZžV:0HT¹ °²,Súç ËOògÎ`\îy ÉM^îDHìz,-»^€æ{sY‡âIàO/z>6—ÏAùÃoŠg‚/ÿ×›ú°sB ¼õ÷‹%ð̨D,zÜ î¥I^`,úÙš??üø‡¯~|÷Í·_ýÓoL‘¶ŽaØ;™çõä aúÝ’é=ä.âY + TÙmýüGSý×_ýö«ßý扡ÜÄ꿹AEó‚fËMž(솞q4…Å]Òhƒ1CŠ€Z€y÷´¶-øÿýÓW¿ýîÇÿ)™NV6}¿šÿój†mÀØ”ØðÀâD vÈ÷b_ô“KiܰÊU‰?ÿ±Ð*øêÛoR˜ï‰I¾äIŒz™¤ -{Ê Åu ’‹~<ôgV»æ4Ú×=;mnPÒEnÅeÓ ê….lh!4 ‹h¬…šc ‚âÐ.rqP)sŽÞÐëþ^ ñ@O^“ûcz14. <Ó(,¦£• å\‰;;ò1“Ôc¶(ÀØXN7¤wÑ"á-j<9—Êô³Ø¾ÿæ›w)>àŠ­aå±ãAMc:î×h¯mù|Ã>Ÿoÿmû|+tûþ‡Ï÷oÉç[=Óç»ã-êryíñ€6ÈŽ¸ð|G\ÒÍÓº€ŠUðûd)“Éêƒz¯TÂ_w´Áo¿ùã7¿ýǯþ™" MM¿¡e.DÑ$V ´~uÁæ4ß/òÚd»4yj‚‘`Æ ÿnʺ\DAAkL÷G»g¦–)»hƒ§P9Gã гñ €ð-–¢ôÛeβ¤DÚ3 ž@ég-ZIÉö*üyØÙ¯¾ýá»üþ·ßp›1Õ, àïe‰th>Š­Åä= †ëÇèŠ-ä§SÍÊÚÓ,úy`7}óýWÚ,L T>£Yƒ­=6an[5c¯×v£ ïë'Q=›Ëgè§¿y~HÆ?’)¤“ñ“ùþòŒ€y±`$¬1¼ŒçÙG–£ƒ”Á›WI(޾î󧃠-sá¥ÀOZ^ÊD@p- Yh¥W.é&—43öî«ä¸âë"·>ìã Góf霞C¼‰ë~ÉODzÇz™ÍkÉuÅËöÇâ~c<ÍQñ‘óq‡ ó>- Â.æ"Ád5 š¶Š£q± ®À,Äë~‚Ƽ0$¦Ð¢YÂ+×XÅåeiË‹ãþ|ÉóÍÑý=ál˜~½¹¬bê½ö*D 1íØÐ`y?X!HÝ;Ã…+c‘n¸¹M-´uŒ:0-—K¤)Ì8ËjTßHÏÞrÇ®¡[Ë»ÉeÇýúÿâÂCí®ãEÍâåŸ_iáY@ÿ…þ7Y ÜA~¥²s‚`ì€"Ä_eV¨S$)-¾E¹Ôu÷}а,ÆRjŠá]皈.UC³H»&j„–ýõsÙÚ1è$²%-8æ•_ÃN†šþןájNtàOy¡7jR'`ˆþMâÐê0š‹+ÓÊôÊšÛ[S@]x)Ö1“ Ù 4šè3Z3Ê,ÒÊ|Ÿ­|ØŒ×Ð?†®­ÉÖ – n¡+lCC‘0ÞæC³/˜v{@[i¿Ùp.× ;Ö¹3øY5Þ䢘˜ƒs™ƒ´*DŠ·˜ÙHÜl'$/—®«Á ºKçx?Ñÿ3àcASU˜$›¸ð·Ò72Jh¹Ñ€)†ÉCDq⻩å;¶Yšƒš¢—Û´'Då¡À<4læä|L+Î>P9¯ØqWÈž¹ÍÍñΔn§·SÇɦÕíWKfm„.q¾N%Èz´Ùy³e~jŠYŒoyûl¥(ÖˆIÖµ´)%»–q-;¹n9&»»y³§‚Ö&gÖbxÛ°árç[ût°v<»ã1mŸá5- ;Þ‹ßK\´¶ŠtÕ î×-âvO]YyÞÒv;égT™sU³µnÔÅ¥ƒ%7–P´œ,»4Ì‚:Bá}šF“bšAÉì6A{x»†k­!“€«‡ Y> #»@Ù@¾îÿúw[Ž4oƒKû®è7<þ²}0¯ ›‡cjÜ3) LòJ¨)t=ˆ ƒ Óí‰D( 2Pê4yy™žòMîàû´†ÍÆŠíÁ¨jøLëDN.ºÿgÛKN~¢›$Ó2‹Iwýs¥U«{X…¬žÌ¬dþQ/hk!¾5jy«yKû¬e™ÏR3ae»¼ÂuÝճ˅nÈ‚6´‹ûxåÓ •œº@ÀnÛ™^ÉÉèî.u ¨êÈ\3Öâµí‰,GrìRP]öØ)­q‹´O1á'nî67ˆj¸eÇ÷¯þ?ÚAœö˜Íxý·ÿa(>3çÊÉz¨âàò¨ø] š)¸MÌL.Ÿ¢ó!°P Ý7?’_ý¤ YWÅëÏêªq²}†P®Ô_Ñâ[kw‰¡#Û릴¹çwæR(.Áú›-N¨1ù8»_ÉÊrÚá_ãÕ½Ç~pj‘±¦Q‘§Úyqž¬2±k³–á§ùòahÏP fï&Ÿ‹%#QÔ -s1Ëë¶¼dõ>/Yÿm{Ét”ý‡—ìoÉKÖ±Ú,…u‹ÃaÝì;3QÝÑNT·82ª»?¨[ ¢ºìGÛÔݱ'‡¡Ý"6íg"»£½‘ÝâY‘ÝQýn`·ø\`wô¼Àn1ìŽöv»·âºÅn\wtL\·°qÝÑq]4<×ueë9®› o²Fu'*˶äú8K(gš#?÷vY÷9œKp¤Vyãµ ê’íT Œ§Ñ0ªëÝþ¨nŽŒÌ³åTé4Û·´‚Úà;Ç{tlH·pUÝrî é:>ã9!ÝÑÓ!Ýâɘîè`L·Øéº¦éÄt‡!ݵeõüîÈue;ìí3Bº£½!ÝâØ˜.ºCq†˜®wOÄtyÍ×ß@Lׇ혮¯Ø?ütL××]܉éN·bº½Ätç©´A)1ÝäÎ ®±ÁÉÂS_eÚc ¶Ëù‡~éÉñåû¼d‘6Þ&JK†¸9Š…Ã½EŽ÷æðŒîÑÌnß­‚Šî¿­Ý8N£ÞòRüýÕea"¿7»‘ß þ;óSøƒ€/‡F³¢Ì>ß©ˆÁ'¿ívø—ÚÜ9—v™&œØKX²ã@°%’ÄC™öPä8pp6<ËÞõâ{¿n¹>®÷Ä@Ð#)Ñ3‰¢óЄÉáu ®<{½žx8Ý‚<Ä;´] ‘Ïks*»8Åçx8ÓáȬµ¦I”SS‹áŽïóD)Yó0„bic¤´poC<6„X bˆ£§cˆ¡MŽP"{ƒˆŸ!îëkç;íkIµUe¨¶:kϲ•½’†– ɵe·+þ+ˆ·ø!BõÒ1ŽCdhÕ­±ñu»˜¬Bcv›}Q`rOÓŸLVl`r´'0YìD&eeôtx@¼¶ìP¿ë6n*«¦óÿŽÊ*ÒvúL/¯ñ’½ÒF¤xV¬²·[£…B¼JöË&ÕžØuQ—Þ™‰Cëœß‘`‘A¨Ò†Ì¯­Ùjyø4뼦hÄ›í9„Wޝ©|Ìæî#9ÒS—Öyé’Mð5jØj‹é´YbIënÿ¢¢=‡ÆçC”x?;WhÂsøD¼;|˜†LëTšÉiçéÈ <”e‹mÔ Zõ“‡ë­±ḧØ™£ñhnÚï"›ÊE]Œ‡‡a­´Á5­„í~xÂáAÜ!ÊæáŽ£"yŒš}£ÿm{Œ":þÃcô·ä1ŠG­«z§3—ìÔÏÅøS´Qä øið0Äh?"O]ù7Òèw"v¼–“‹†>ÖÁ‘š–]íJŸ±ÊáôgI býœ“ˆ"?oAÓ—|N´­ ø|C-»´-ÏÎì5î,ž<È$,Lî®—ãÕº—(Õ=˜/‚h­7ew­_Jc!¦§Yhq Ì;Xˆ€Y%T ›…ÓTc[v¹Æ+F–.ù(v´È¿ï‚¬ôºº›lG«i¹MY•fA×ð› <Ï`—ÂîI¼É3æ² 9„úáórÖŠ.oíX®f{ZŠë»êÏ´´xg®¥¯ë¢Ýwx<›NVÜ«u;Wý+£“Ïñ÷¹þ–êëÞm’×wÉø|œO67Ç~]„ȲÔË Ž,M´‹ç¦ªfuP W.}` ³äÉ»D\;dt:ƒî~Ãîµùžê˸UFÂ~%‡{ÓéZ˜Ë>[ýPò±n²ò«¥™¬g¼MD'J3P“9-{~{ÛO0›©äùì&-@^Ê¡RÃò1@©G7²ëñ/+K\ÅÀ¸^’ôKN  \9Q e°fgð kÎa`…$ÑÉç'¯dk>Œo*‡ñÍéœìáúž)ÂÊ×âvÂé,¢‡-®kÞNö§KçÚPð VUàá`ô©„P]œkðx^wpIE~aL×\þ%Àͧ,©¸žoú7÷ýbQÆ«'×RP›r7þòJή!¡G•ÄS:>IÏ›aÔ”O²AÜ8ÿëÃ|B‰jÖxøS:(„8w °•Xøˆ;Ó[r¬œx­µN( :WÃ0`ZÝ+[ûÍ:[mdKæG¯‡¡çvΫŠ|UUÉ“*ãSÃ,›÷Ã#6ÌYgÒîÂtO~Þ:Âj¶uFÚ€u5 Ìý¯ûë1F:9”Ä~>ûš÷¶zØe–´ùQ\æô^…ð„ó¥b:ñõ"épÞf1å+ˆh=wò•‚7«&Ñ k娵ŒcL^_³+ OˆÚÝ+¯#Ê^I:íUºr³W¶è¶’Ä}÷ø y:/|½ÑE”¬cÎ"ܤp¸R§cã‹GÓ©ÙÔ›z‘»hH–+›¶^ãA …m*väÔô{Áª¿Í>¤ä?lp €-’V"’éÇé˜T· ÒdȪç´UI{ß·ÕMÎq0Ý>VŽìÄÔõ"”´¸ZN¾åc1ïô <Žj®’§ÄáÇ«P ®ð¤º¬˜×²Èà+PûtØ$Éåy>ÝKNžœÉyè¼ “*æy‰¹tÞbN:…ôq¯ž·3#m–ç‚,¤{9&•ÜÙ¯iÍCòõ]Ÿ-.Æ4ih¬ªÙ³ªjw j2 ‹]Û0T¥øl&ó©˜\Æà µó¼ë[¦8.´¥âñŸ‰øŸLƒš™p1ÐѼ kkm ?Íè¼É7d„Æ¡_çGnÃ’_ð{ó^–ûŠÌâg½(âí¤b+¥tS0½3ùIz:ïîÝÐ OŒJ ‰>{Ò™÷Ø#:å±vD|ؤ<‚|ÆÂ„OÅ”#NûÉkòc펥uþ¡cþ£j[Ok‹‹Ö?œÒu”`F=Ý>ûlV úŠc¾‰ñ¾Ê6Ý^Õß €ŽÉßF“0QE«IvzbÓ^užP<,…õʵô+ ™ÍŒ¿z Á37½gQІ4¹ÛJ6äpdÍyÅg“:Xã·¬ÒúJtÅBÛ…¿1¹ y å|6­½Ï¾Âý1Œbkâ­YÿÞ¯s+>yÃlѱ¼˜-éh Rb ŠWxß¹5„|'=•)¦‹ÚÝ„d}óÔê‰ÁñVâçpÔx¶³+>í„zBßÚ3³V ¦ó¹IÇzO>÷´y–ùáaÈiKÕü"”i>Ôe‰EåÕT5Ÿi²‘CáXc¡:š¦I9Ý™”3 ,ª²˜¹I ÞÝ‘aE[ qo˰°%Ãnì¡7P%~âóÅdˆª©ˆ*"åÆ Í®$åw§Í¶iØí~,ÁÁºÈ«0ðԮؿuaà Þ-ĺ Ô -qoÜ]·gA©ìui'èx}ýwÛ Ðy,âTJûƒv+ÕÄ!ÅMöÍ VjªOu+,sÅì[sÄ[ÖzNÙaÏ™†Xî´Ç³3)ĵ£‡ŠŠS‹Qõ‹B)ÐÀU¤µ…)]"j!¬`•︴âpÕ|-K Þ[K>èäà³–f‘¼ÆcÅ÷ªìÆ í¬äˬä†ç®P}ìÆÑx3ô Ç}^a<~pÛ+Ü¢cø?¼ÂK^áöÈݶ ¨Ë”Ί±³z±Îzq¥ÉfNƒ q6Ø öUV)é\d½Í?8Åäð<µÉ”ÍrI#OÊWlv%$ë.¦ûòm%³@ì±a£HÌÉùј]­HéÕzÑçEe‡¯èvIþÁ-¦ JÒÖËNÔ †ó¶ÌŒÎ›\!åX£ô3´bÈ-a€÷é8k 烧qÒ‡» )LýÂĉ3Yå1GÑõƒýZÎÿØ/ÓìŸ dœcLBS\—®Î+>îÓ n`bõ»§µçüsŠÿ*äEÛû×k˜í™Ø6ñ²=Õ§ä{Âs¯Òyrâ\É IHTãá[GŠØîŽ$T±e:µ‹ \Ý¥À‡äY¸ÁsÛ—´@Ün„..¡Ѝlä!ÎÒ 1+qÚ6˜6—ZÐj;Tf½j¥;:"¼,·£$¶-Èóyh´qÐ 9 ~®~bÜŒœE'Í}HãY"/ü•å¾»¨¡‚?ÖHLÇyŽMñ$mÜÌÊî$¨ÏÇfOÙ¤H*ʘQ–g–k)ÜO9 uœ8óK^X[Šîýö€Ö„‚H¿_s–lÚ ™Ž1ü$ý-òªZtÉmœv$¼zå-Ózdwη¦Ñ!^3í?¦N뻆~r_ïè\|êñûdèY©¼ºl‰‘b(‰eµ·çl‰0|WhÜ¥Êq—Û<}”Ýr[4ñÖzaÚ人#‡ 3*ÕUá*˱±+ƒHÛ™÷¢žydf,!oƒ¥j>Ó|8šÁå<ƒ£ †£Œãû‹œùáf0޳}ãH#Ǧí@\Û#H?3Ž);ãÐÓ»5Ž’[Æ_aü#R(ØÓJ¦Ý:žV}+¹­ §þ¦lX²SSM²¯’VÇI:ÃkåÝÌó¨üEÜ®r5Åwæ”ÍÛdÉË‚ç="lÌÎÙ®%@;ˆšér`Óàp·Îœ|ÃÄDŽ‚¿óš˜9[ã ôñÊȶ+Üê²Í;M0„מ½mÓå!w®^ÐúnÓºá…]T¯£ØÜö˜@õ]ò/;ou±„Ï1÷ÀìÎloN‹²eé±u@Ãüï²ôÕsH€Ž\]zïíxv7ß<£3E9Ùnæ÷ùŠàd3aàÀ{0¿Y o*ð2:i¶—EÞ›†”õZ,ycgì-¬;6v¾½Ö|:Så5®[ç-f­ÅâÛ¹m7ët€Ÿ‹-7k“ÎR%Ûg_l;ĪV[)ó +îyî]qÕäÜoRé*Y¹YçDT”Éðe/a ¥Ã™Û+«aþOñÈ®dý³Õõj~φšìxå̬ìL”“ðDeîYfFAäíã ÏÞ5Š‚{<íhÊ}!³¦ÐœršÞO’Þe‚äÿ'Àéÿ©ô÷s`Ôžw¹x‚?8´3=Èù|C­/]ëüRÖ‡·¥§ÆtÍåÿÒ1Ôöé*·)uã/rŠëä@ŠŸU}üWÖ’ï/§VÉHYR8n¸¤¥ÉP }‹Z’Cq-C ¸l¯‘«|GY€Ð­ø^dà ó\wKK¦*Ž˜Ã ¹½ßpN¸Áê—´w#þÀ[²sö¼¹PrJömò[ûO©ž;ð|4 À§|²‰Ý]THdŽ78ÑiÿÁuO?AÏÇæòçOà‹ÅÁožþDõäùÒ2{þDuàü “dîÀ‰ìzå'ÞÛ'ôÓb˃:çC&¦[WÏ1Qìɛޮm/~ÿD*¥gW?utuñŒ£«É[vpÿm;€;ôÿ‡øoÉܵ‘ü]:¨¼xê ò̺{Ð|h÷Îvï+sü‰ÙNÛïDR7®xÎAå9ÁÈ¿û9åœ]dïŽöL˜bº}NyW¹ã6³ÇSއ,6ÿ{w³;Ùøÿšíì䋦s[ÔÕ³oGû`§Ï`‘ºn¼h³ucJ ;L¯¢ÙM†ûÝ9ùŒ¬†ØÙç>Û>¼¼ÜÚæÎ*Ίòép¨Én2ØJ{÷´sv¹kBsÄÙå)qÈßÒÙåš•ä³g—»® Gœ]îË6þï:»Ü Z;yŸ{HKœ÷ís¯Ò¶ËÿÝûÜkZ~k÷¹7éD'÷¹ÇÖýMž]î[:Ûâÿeg—ûŽŽýÛ>»<8ßnïY÷!ü;]·[ÖÕö–õ*%uø1%€ß·½tÿ‰Ö7VÏ\§£7 ="j6؈Ϋ7q×1ïH—’÷oH/ž³#}Ï6ÖW^™ém÷ô©Ö;;Ò‹cNµN;Ò‹C;Ò»êóÇZ›éųµ®J'MÇZUN*õìc­?wÒAå“Ýh6WõÿŽÍãì!>vóøÞc­÷ðNU§#ÌnñØ<¹[|ÏfñâèÝâ²Y×–Çžj½g£xñÌS­)Sˆ*Ÿj]¬ÐÆéJ1`.ì#š“|çöxðÙç¨6+vQËf©T{Ÿe.àäiQ#Œé>Ã2©l>ß.û´\ï;œ~är6 ;ú[¡[ãø¶qêç°Àµ˜)ºjOrn9sXk|ØW»Vò‡‚O¨ŸçÈÁómòš,:ƒžèÉo38Œ~öÜÃèÛfH>Œþ†#5ÛÆ»-@B<Ú³è?lEﺔáÀYôÀkfBØÝ3oýZûW xO£¿Ù®Þ𼢬¬‹Gž¹´ÖÈxv8ŽW×Ìò¾\ãCKäXQ¾¹lÚ­“êÉRI oÎgâ9Lˆl¼Õ]Žªßɯ9çDÁ²GÄû®ÀÂEÉðªMÏ©¯/}ÀŒ´¾n-ÐÆtÍUü{S_?µ.€›–;$‰7ªXçUe)ñÆÃÅVí0Ôf·À;ÂÞ·˜lB!µâb6F1JËL8`º$·ÉMò¸“³ªŽ[ÏëÁúB:éfÆ_m-1ÖYæmZÀ"fvRì³Ïóaß¾á|×Ã5Aæ”xÎÛÐÛ…´;ºÕ·•$®Ù»(ˆ}-uØ“þc¶[óBv>p—§]yâÑ®î)xUmtD01‹|$2.òÑ5>i£·qßRÕh{mÏÜ6é÷:%>Aß…¹/K|¦²ÄÇ,ú˜™…=7….칑…=S*¾B㋊=0•ó ia¯]€–”óMà #zaœ®›ð¿yai‡,ìÁ³•CH±µ™ÁóÛûE¿µVPÂhä(y÷žO%IâÙ9¥N¸»ñæÓ5Ó PLs`1"ùò9Ó-íJ˜Ž×›|´P:9}¦YéuÃØ,§-7df=<‡önÒ¡+¯'s<ùAŽuÀåãW $¼œðšcû|`˪_ähë5²ß›ºüÿ³÷wM’G–ú¿"m_¶Z[Ý‹ïÙ'Ф4´K‰º"ÅY³á×Î|!ïâJmäE‘è²\²õ6«¾ÞàRÏm;Ì¢mǦ*Å’ÝÛv“,¨Ä‰<ÕPf.{åÚ1¦];DÙA\÷vÒ‰'R;á¬wB†2ð€uL,*„©¬¢{‰ û2óòŰ‹hïp¥°`mca#Þ¦$sZ°”¹ÃA’\5çÍ$«rtmCyoëàÈ8£wv½³ÃA;;˜H6š&ª5güÙ¼d™Y´x¸ådíŒ5dvvÈ‹¶ ÔXMììÐlÞKǪ¨ªÞz]F[RfÕ…; ÓôÐÞ>©ØšR™ L^ç½ViÛ§4E•`“ìC—çäcF']­ã•ºâ’8\Ñ;Þ!ƒ”÷$¡»&Ú*<’…%Šà>Ò+ âSê­Š°cö:aÜ{ÍÖg„sÍV¯!ÇïQ0Ì’ˆWO@&ílÝ{÷cÒˆuQÑ$D#¦±^+&é™dqœôZ1±Î޲S"žEÑtsIÞg$< É_+áY” ~RžEնωxµäw)Ï¢ÍʾŒgÑa<ö–ñ,”ÙfRƳtΛ±6UJá™CÕÑÐÄ*y† G´l!6Dn› )ÝãsðZ´¸C=OsE{¸'| x7ÔX•¡›ÛJy½’žeÕô~L‹Âžf®#ø+„=Ëß©ßRسl^ùg{–-9Ïÿ…=Ë®kCaϲï‹ÿaÏ*ÏËEaϪȻßJس*‘õß(ìYU µü {V5zcü· {VMÓÿS…=íZýöžĥšq†Ÿçfªž‡¤ªç8Wõ¬ú®$UOé–¸÷³+{Š"ú èo‚!YOd€›AÉzŽ; °3'ëYg]hïÿ»e=™"õÛÈzÖª5ÿsd=ëÊé4ÿe=kT¤X•õ¬›ªJ̰û™ÁŸ.¿,ÀKÉÙÞ'gº™´.2^uiÿÅX (ØgìS‚ÀÊç!0Su2^•ôD¤uŒÂyÚ;wŠŒ+±YðšÉ¸&T\½Ñ/jÉ\ÖëqˆXÙQO‡ÑÓ¢jꘔZ+¾S±QsÇd³ò¼Êéó%ãKþÞi¶öüêªY¶½¤ïÍ–ÿìÿé‚­î4”^k[¶iU̼7ay©rš¬q©A«b^Óé[¥£Ö½V¦Nècš® ™ÇTªŽä1¯øð ÕŽA“º”6æHÚ˜ÎZ2hü3=ÜRs`õïaÌXÓäY»ª‹‰ßoÕŸôx¬ï³Öãá<êĤ`ä ÿX|Øüáñ ¶Ïs`À|¥Â¼²S¢èªõt|²·ÉÞXìBÉ è[ø~«þ¼dÂ}̯kr©ßä«M.ü+ëqúЍ}ßùÝ_þ«]»>ßäeUûxT›Ÿ7E¿ùåj‡Ãò…½o^•vÉkjýåêû6+®%›æò>†‡«üxó#é+`¤ýÎF‚²¡ÉkûVÈ–]ü›0ÿtõóqÚýôŠÎ ïÑ\ÄQÍÇ$ÙU(êAQD××·…ÁM~œ_ZδÂýÓƒ2BÔþ3X­ ÷(@CbKsÿ-¦ø˜‚0¶c£óª ›Qr—<¬¹¤{œ\žÛ6Œ†koï´ÁÅÓÉ鯰׫j:y¢¥jhøy|8Oo§»‰çVîÝC[1t©o›ÍÜ5a‚y ãO|ý‘#È T†2mù*5LXOx¿E3Ø™¢†.·Ô3Jífð=X£N扫.®hù [­Æp”à¦~c‡„Žø†S¶w¡Bxxÿ:Øá|˜a®<*½4ù»g´ËZú8ñˆL­;á1ÏN–[54Hs¦‘Û?Eh˜ŽÃ‰õà,y±'/«±oûé&o°^ÿ8wÇE†Óþóß¾ý–Z<äPb³#Ø\¯µèÁ÷[õç%-z«û\>{k³—á_±A¼›½ŠôìUm¾¡Ù˨§¹%0u”ºÑäU¶%§‡ÇW˜ý–Ùg70<ä˜Ô“XµFoø•È÷üÎþ’8프]f§Ñ~µÿxº~•×mgÊ®$+SØçGwÔèMø=¤Ç+lFýlûø=¼u‡AyÕ•ÃÀ÷ê0uf=¬|ÄÇí[:â¦BAÕå#Â÷fvb ü¼½“c V8Nø¡I® áP½}ØñPA«½U oØjû°§{ñ–n/®»ã“³Ø>±%éOW¿³ûöÔ‰¿ÛÚhÌÆ¾ jÚcéIR¿c.$¯éñ:Û Ï ²ÝŰ$ý|—’Û9è÷ŠŠ"}Ü›÷n@5aíýàá ¶9èEÄWÅKæ‡I]X—ƒ ÿΫ&‡UÔæ‰'^C+Ö󜭡¦.3ÅI«úx µ±6n’xŒŸníBçÙSž¥ªhš=»^ñ¨Ã¤¢~5¡Bÿ„ánr@F™{`è8Àº‹²o©èÍÑ,IDÝåÙÄ™ÚI¨¡søqCýf¹Ôä| ³{G „:5ÿÚb¯˜ôXÔ‰L>ßÅ1Qôx³ꣽ»ó­ƒS›ª|÷xšì¼¼½»L*\ÜÖ± ‰zæø HËfÄ©¨L‘Š OŒ• @•ψʧ„¨TÏ#*¢B„jÛ‚¬SMXdÃ}´R[ x"‚KÉNd&ãkü~¦tá`ŒgÊÑÉ`c´T—zÊY– ß!Ô¾•¢¡vþqøse!À§-ÇœÜàz«_7)¶pÄuÇS‡Wtȃ/Óúm£w!Ë[z©ÁEa8‰a;VUàì€Pééa¡Áé-ÿsa »Îwûô,—~é0œ.ZÚxžÒ½!„ª!f.’4é†F%ýF[-P©ÌEó(=èÂmýTÑm¹•Ûrð¤3@Ó.{„¦#å:ïXíi6õÂ@Q¯75ÂÕ¹ëËw³¦â¬lq]sµ} ò°™{oD jK¢;û«ÿ|°Í] +ì€SÄÕ¿BÞ5)?@}r9‘“‡øË®ë[6JŽt@®Þßmoè}r˜=;Ä]g/Ü£‚µ˜CÓrß-<Ókæ†5ºÙÙnøÑ±½‰¼l¨$¡+â×áËú¿œ¦ÇÇá³|á‚G°€‚%þÒ<ÄxOêK¤ßw8ÄK¾¤ïl*å ž{—QMA:jýÓìÏlJáwR¹¥vð|j$ ûL–z¯ô»•Õ½ÁÍæ¶ãž+09±kÝNÛ6@˜CæAì„0¶Ö½ Þgx,Q©®#VÛweyn¤üÖɘ½u¨ÁBà4ÔZ†-søãmŽ ­ø´Ø¹t<=9¶wüӕȼFˆÃÁýé/ßÀ-)[hbÌ!ɲü ˆIÜÓ­ªøsNü qûDÄ jt¿ùšîX—Ãñ ا R„¿]{´ÄA(°qHÜ‚ýñä^Eš0ÀÜ»²5.ôè/ù¯TÈFìnz{ÚbUÏ¡ŽÁtàGƒ¦›PQYwh&“íॺ²æ<ÓwWª/šsè6Hã%ð}®¾q1ò[ê©p´õŠ!mønKdLüýÇGZ‘=uR–hßC7Âùøš–X:$îÑÊÚÒ{õóÝÛ;^+n‚…‚=¡ûÍžr¥Åø÷°ÝEm-þ¼íEèß³:ÊF¸|@qyK¦r·ƒ†±-WGÏ®nÊŒ,54ëäÀ»côzÆòÁ1÷èvå ËX–ç’ruê Û>ÔÅgÈýƒ q&·6ÚW(+ÑÉbŽ^N'½œ¸³4þ4Ñ™ÄÂmʺj¢ªFËnx› K–`P¨úl2à#½àc¥™¢ʯ{e1º ³Âˆ›x¿å¢ŒÃ1Óx@’ª¶ÉÛ1•ó›éà%Y.š'X•ÎÉ…ÌÄ: ÐÉôT•n3Âé“H F7ÜÝ!;mƒË={„eňrΡÔÁ¢‹ºz L†)ˆ—|œ¶y N@¯Efn££ÍQÖ ÓZmìR[¡Á… ˜Eˆ`Ö~¯̼«q68Âá1Jdß&ŽaèðýìÀ,tÈ!¦ª u3;•ª*s¿ý@‡1U]µ«W߫Ìvdz(|ó‘ŒÄjê|õHö{3;žÓÃ.~¿t›íÊaò¶^!ü>5B|$?BuÑök×…ß§FŽ4žýÙ)®Z=’ýÞ¤ÏIîÚO¯4» éÏ•™XÛ1X"øü”àÀú8êeôe;aÛ©z÷Ê çí¸p±—ªEO„ )YØÌ¸êê…ÊHC¿Ÿ”Á2¨îÃBŠáÍGauûªÝºé«äÁ ¦XغE.Õó%ž:žUaç>+_°³šHaç<ã^–ËöV“'î´öK÷vù“ì]`>¼r‚ÉîYNôõĸªÍiÄ_¨0íœß´ÙùÅîM¤òË÷v“î~}ï,Ú÷ùzZ‘†ª§å}V$ëi …®”eH2(ऴ´ÉRPÅÑ»µìîΓ?Âlál§¬›Á%¥cXL36âÉgŴì’&Ðâúì-æØŽ®ó‰@¯t8ê p§zU#€½È¤s7y¾„$¨o©w&h…ƒŠ5&aýƒ(ÏØoó¨Õ4'Ìhswígºøº-œÙ$ÎS\õû’}àö6ª—žDµïúSš½WY“o°Wà KÎD³Þy•ž°;“­'µþ¼Êk'evë{ÿdà·»ÛíÍðpóѽC‡3»Æ3f½[ªÓÿppU÷ðÿëÕ^夾 I=Î{m¤ÊZ{ÿÜŒ ˆÇöæiŽ·̰=M;~I¤Û…U{Añµ¶Ô™þ¿ìÈæ  1ƒù ‘iè²;°0!ͪÝ.)‹pFïÞæ‡¸$åÇרQ!Yi¨ùÀði=F•¬ó¨Óˆç ¶$…ñ µ/í,Ë3¶ÓÙGã"’ZÎ^2<.‹ì‘Ð{.ÒÓ»Äûé¯ÂR>%E<%ñˆ¿à;²+>@—´|"ܶ(£éO¬A©rwJ8\)Ì2Q¤*W,†3£;¼KŸY“Åá ]dânüĽ±k}©Oî&mlÃ>™ƒ‘ÇüsÒ¢ûeÒ¶;ÑîÌ×@}9|jQûüî‰åð°ˆ.»"ªp±àò#uþ¢ÅÖ±ÅÇÃQÊU½ ÆÁá«¢7þùö»ÓkìN‚†Ç#¹Q ,œ6€ŒºÍÑO4K z–8Ù÷}:açΨ Î s©ƒáUHmÕ½yØ ˜aé]C‰ÿ‡DûñV•’If™âÔC¥ãQËÄ ¯»"Ò|ONQ4IW9<6ƒU„^sßËL]‡…»óÓ=¾ÛOР§¢$|£ÿÕõÆÀž–Zè£çwÇÒvxZE%‹h!¡±žš÷ÁÔü†åwŸTŽÄÁ‹:¦W–ùŠ"!Í$+Êö‘%økRõ€;0DOë«Ö»[âMŸãÅÞ(ø½˜ÕeÈøœ€N¡ªYgfòm¨g»ËMÉh†‘¹O_{Ò—q㦜O9ÿ‡¿cê¤ê&3î¤ åDwMþO¢y|>?Ýûjš`ø‹»ÀÞ\1à˜è/Qï rÑöœZàF…qÓ÷Û*êqÅÇ`ô"“ómÊß-ðá„ÿÇÙ™Úºå3Í©lðŒÃêmÕ¢ß݃È^L¾lºw¤š£Óhxçmþ×­} eñìåyñ‹§÷ƒvõDœe•d‹ƒ*\ïMâ‘9ÄSléÖ{¤¼K’ü²<Õ¾r”på}­öüìÑŠË[ÑåíEKø IŽ˜iÈë<'³VJ»ÜŽz|OR»Ò¥Ì}8—a¾òàÁvðä"ËœÆ'Qin†z&F"œà™X6tn$Ó°ã†Ï[YÃ’ðç£Í°ûüÑ©Í@Ý_~x-þHlà°ú‚!q`=î»ðõg2…¬G4!ùttG7^‰w冬 æ>yÝ€‘b!\«^^CÚ‰µDQIyFUïUË…Þ<ÛI¤sHÆ nþ»··¸ eÿ›í¦âا4Oöâï‘(ÀKµ8jÁ z‡~(BŽ_L† n¤±öyã(]¡Z‹ô£ðïãpؼˆ‘"À8UxßÜӭ‡P;4 ¯Ö)òjcÿÅhu€õg´úSB«›’W¡Ð1‘MWQ#qëFõû óʤ*é­9ž²Z`qˆžrŒómàÂÎ|DV=ÂŒqFÇžId]33p7lí<üʰÛÖõ®˜èè»ù±<#ÄäÚíQc†²ŠIÚž§Ç'éGn©€Î¥=»¦›é=7kÑuQtp:¯ ZÜÎgÐn:„GÐãüDð3ÐXFiû¨( øZBbÌÔ}r[°9 þùQÞROJýI–úÔ•V‰¡™Äq¶77ëT Ò÷m¹0œ)‚&‹ãÃÿDm>È`[¢¦Xf¨ £bbÈ@NDªÇ,R@óܨ5`™©X+{šµi1@ 9^ƶ¤0 CBüº“¢˜¢ÎÞ–ºÈÄØÀE #‰u»Ë…¢MLx,Y0Æh…Íe'ƒwv«“ÜIÑMíjDÝ$9±Þ¬:+$gÙ°wÇo{ÞB†Å×n¯œ%ÑÜí¿™0$¯iX)=@žŒ"˜‚7žgOÇiçÕ™í­}k÷šúåCjEž¼²#ÄááL †™Žk#fæïK^b¬K#=éú;I^'óF/"Ü|'ºkLn}<µ L‘~ChðäŠïûé(ߣN 1&·lT¡®£n¢€®ýÆ?>ØKBpÝÛ«¯êN|;lQAiƒ=W¦{Û៬o’WÎg‰cc/V §þÓOþÿh~ªh«ÿÁýå4¢pçmHÇ$Ù¤ˆYà¯Â@÷ñ´Êç#éVŠòìÕ;f‚ú@ÁÀ%¥zþÔ[˜ø¨ßOÈ´.*á: >g«ˆ HðØH“èÚ DlCWz÷Úœ®ˆzº©¦ ó3®ŽJÖ"lôê$"þvE¹B~¤ãöûC„<€Î6°³ðÙ‚,¨µ’"s»*Lg悹µòÍ+d;À=„[[œ}IɈbm¬1dE#† î|w.çØ$r|•в ƒþ=ç>YHÛA 슼̼ÅCˆ¢ÿÅ÷Ã#®_‚«Œ ±̉•«*Ù/‚´Ó—†S7èã„ãKµ¿²Ö;<<$ÿp-€œOêùÁ>lÑÒï<ÜËrí¼&¶¬ÕI ºkcþ«bªþ€ô{|·ï¦{l[pýÇôz¾§Eê6"øÙ0 ±Èøâ ÇO¶)(zÏØ’;-E\…_¶·Oxõ<%þž"zŠåtåÚo"~~ÑtÈ 6Ä-óüŒøw­Y¬(°Gª,7d3¢›L Í·ô’< mç£LÀ÷(2í?jS\Nð¿AçÑéá<Ä“ã7]»‰´²ÖàÇ!ÝÓÕ-Ô Øïdë Á Š£¡‰ §»'¨là›ÿµˆHáƒù“ìÒ^"åö9k}uŽ;­/ÀõG¹žŒ¤<Œ]„†W)×*¦:+àÎÙŸ A˜?€:#{%X@¥Àžê÷®Ó†^äÙŸ‡0ƒ[­í.O/:cC’kõ “Æ?u¢9 Û@ñ<¨ ´Ì2›Y„ÕúÊÙA¾³Ïòë·ø)õQ`&­Ï?*0Ÿ4Õ¾Ô Úsy“ÒqWȱäg=¤,Þp}®¢I€–:*òqxtpU¸0B[ WN¶ðžôŠ{[+|°Ñüáa ¿G<{jxMgQ"mqÂZ¨ïI$ænzËHÌ^1Îà ¡/dZ S·»Ãð'o ±cuÓãû{¯ÀaʪFßËÇ-2ùˆyº,iÃOû£´Ï5½ {÷Ë=Æ…Í©ðÐÁcüåa¸yçEqŠο‚JpPÙÛgŸLÒu•˜€ûœ—vêÆy6y.l”žTóÑèªå£¤8£¡,”Ð/?æTsk8>ÐtmÐ(Œ¦kO ®vßf‰É ?NL^eke0Y{ Lx )2biªƒ+ òÒ+MC‚ [@9€Ì%fïqÁ¡hHñ¸MU@ãÔ2¿ßª?/àq¯ïs9»ZÊà_Ñ<î*-”2 )¡ ¸G<ÙtëxU~EJU]Í%3 1~×ÝŠò»ppH VˆÂü”¿»ú æËfvw]1…Cm hÕ™ÂH9ôBD ÓQró¼Í°ù”ZƒÙ_Vئ7Žm*D-ºÉ˜[Ø%~vÚ‰‘ˆ½6ªÅzÒ^Ýu×›¬n¯$ŒËäâÈÛˆÞYW[å&¸wš–±ã,ìÀ¬·$Ú€R€•“4茥 ƒiÌ_`Iµo¹K8êrÇ3É2TGÊ-T/.•Oo§Ç¡ˆ×Nbñ8œ±§0Ð>lºÊmÁYž¥ „YÄðB~¢) ˜º éÒùÆèóøÙ´MŒ‘¦b?Ç„ò‚QöYz÷膞Ì05nª>-qÚ˾¤¾-æy1¿º„{Eê@ìÐâÌÚ]-壖ø9x«±a^Y‚¥Â‰Ö»7h—3 )€WÌñýœâJhŸE—u©‡tÝÙ%ì`îá*p^¦Ž~’È@ «Üªáç"¹ß²ç|X!æ}=©ï¨ttëÊlJÏ[é1†#?ÍCQع"ª±5!ñŽ Ý†Ù5²B§ãIصRñÆo’+½-ÕéÁs¨’«Ë%#IS’VW`[éx{{®´üBÌ4ælAíOØv{!ÛaPÉâišÝœ¶ç2—‰x´cpO…™¼iBó[X³ÒX—¥"4ü8X¸é±.*,ÙÐC;Ñz-+5Ùã*mYFiâä(I½b™ßoÕŸ—X&¸}LbŸË—àfÝ2~¥küÜ$—``·´©Ù‚¬Ôð~  2/¢•þŠ(¸ÁÉ£"ý*”ÆÁ^rµÏ·è¶ e¾íÃîk)mÉz_,)eßk%2oØ…’´ðMéÒÐTþªj[CŸÝ…»,_ýAûýü4 ÇèGŒ®ß~h 'døÔÃ!€UÞÄGƒáõ5å÷OwN nk™c]7\êìÚ›EÄÒZwÐbår—h½Wž²hòuG -Kd÷Ç¿Rzú~à¡«6Ÿ»Cû±Çík¬YÍtÉé©t¾ ³º†¦[@ÏÌL>ݬìÝvÕš CÙW]Z†ÁæmʤÌb†.£M’/[Q‡+êL‰¾ù¨dî"}s;yÈA»%zwá¡_B’aÔ©ê©uç´‹‡¼Ÿ¤ õÙ,É›ã)К[Uà·° Â3»5úÔðªÕœ"<»J¨¢UÎOéÀÔ]B /ôàúkt¼× Q߀ðª|G¢7‘,¹zü SÍ•lE:íUˆ6s,%ªÉA÷¹r×›÷!äwì"ãŽ5?Tº½›vXlI¹rNá*³Çiû0îö\eÎÔ•¼d¡B¦Ø-È4XcËp8ï*ƒY$Ö³ÂÐÎ§Ú ƒkä^ ÍU#»7Ú>ùÛ0¶¶~yìWèEpØ›£R×C°¬0L—»O_n+ç~ÜI\éÙ.ÈŽ ì‹› ¹®g§~Ïè©¡>G Êý="ùŽ«ï=0‹…ŒÑ¾òïÏbä+H-žM^U,¯;©QwwíÚ wór"°Ý±ÁÆ{ÆÞ‚Ÿì¤üz<ýl¨ãÞ¨ã l—ÁΩó­êH~ÌÓÌ—ß}ñ×ï¿þóŸ¿ûÓ×ýã׺wï€M@ú<ïXl#jÇB…뺫šu©FhDx6e]ÆRì̶œØe »hN줶cï`ð*³÷áxw?¹€@³Ã•jÍ>üìºÇ!  NðÇ#ˆºõ6ºðÊaß:¶yÔþIO­jìôŒ{óÄσ÷‡ï¾ýÊ1¸€²ìUÔÍâ^_ýí/¯òF´Ëi³+ÌGyœ ]ºågŽ–á=hhKqàÀô\ eV>lïöÚ›.l¤Á¥¾»Æ{7Ki&ÃÌ¥šo¼–·7°Ûi°ÀÙ€dƒÇM#ýì…ˆnãï£ÍGÎ.ÿ€ÀW ÿô€}†>%ø§q ñ±{$Xýa¡Û=L« µÁâC>p ÌôE|ä߈¢sGð²×üÈ„S™ôM]iwï !d°ˆA•_E ÆþÕ²S38d£ùíB½Ç§ðE±…o·ÓTRä¶áóA,xÅ^!G¡ß%l` 4EL'~Ó§¨‚KÒ a¤gÏBþijb‹ÙoèUûš$zOƒï†T/f®Ã0êÙ\‹‘³o\ú¥9h!qß(@Ó.'~.¼Ï‡Ö$S ïVö˜jA BsÓ g7õa@»|« )2,”Ðï†Ä­¦¢ŒZs@=ª¾W0ÔºQÖ ,'2ð' ø†‡ãÓx¤†\÷ÎFõ ãÕPÿ Q'&yµýƒ2PU]ƒþ)M&…p*«ž§·äÌAK¨_&g$^(›•0ƒ«lèG7©´ðG;R6‰ÿöåÝ2ø§í|¾yýyÀ÷å{ ^åU›óö æ¼nœ8jm`N™ež/8ô¿ÁvÃÃÒ½9úñþjÞ9¢Ö®ZõúÓ!I.UÈí5±Eå=‹.0ÎŒíºñ/=7nÚôþÅÀr@ê!ý3 ½k7,­µ§§”P|Îá¿bÜ($·µ@è5(qª|Ç·[ß7—]1ýºY[Ž„­æ×¶­©ÅR£‘0³c$v¦Ù˯ìÁic`b9b^½ê"‰‹*i¸FèkšÔ¤û•g`Zû^^s«Z¤IÏËhH³ - ccÂÒç±(ÿóQÌN–ÖæÑK&V$JMû>ðY­‘vô x]'N7éqf§ÔªÆÄ ßõ¨q”©“õ¤QMd—:j£šClTÓÓÏÁÊ)S‘½LFJ\#´1ìb&^/z‰B ìtËPÓžÙMÊKÄón”—ÈHh'X‰à´mây{ô^"Ô;Œ,bh…‰•ëH|ÖJ$„aj»ÀྗZ‰€Õoc.°©ò*Å&„Ã*¨Lmå‚›ÈÁÍ=øøÝ÷ü=Ó©öZô6»€Á„JLæ¹½Êa)Ü«)Æ;á#{fŠ­BÍM(Õ„hÑé—°!1Q´rx°ÏÍ ¥î'°éE>'¸áÒ>—×tÛuŸúÝ×.øœtUµ\Óýq°!ÿé˜xG °@À|ºLTÀCó“2›18ë†>æyßý \o²|˜~Ü@»ÍŸ¶öï¯zD!¾>Q°ïq“EUûès~®|:U€&{a&¤ÂMH^Zå¶ ‚(tƬ±q -+lœ§ªƒW¹Vò$¯1£91¶ãk*Æ”UX‚a6\ÕÞn_´f奜i åÿ=Gd¹—PÑ3¯‰‹´ÙÃ,êܹ …±@{w&xl ËÜ®Êí}©Uy³vÒù:_ oF×–ƒQôô€v gW'W¨N¸ˆ˜`ÙûK9Ì]è§ çÄ{@(?]&¯³¤ˆ«¼¬dçúñìá)AðšÂµcMŸØ1B Åü‰ ŒÀ>Üþ3„ë7 wåZ~‚(°/Õ±'Õ®Kå›Àøº)Tûb,Ì*w %¡Œ‚õƒRÌç}“-HP¹N/\’0bà$HT¶ ýHÒa…ã ÉÊ‹¢xÞ¯Ñäe“¥¨¦e“%“¬T “—!ÿ ø!<:Eðè8gIÞM3òªñ¦ªcνKEÈa¹XºƒšQÙ§ã‘||]Àqf ÂÃñáµ>·Rl›ùŸØ,¹¤u¿ª(‚ßoÕŸ—°`Ã}̯͘ºu,ýŠnDéÒ(yÓÕfž1}`>JQÍs£"¯rúTÃ$#Ï€‡o·Ù¯€P}(“‰tDôN (l§Wu°HÁ`?Ô¼ÏyŸ6ìg µ‰ùM´?|¸´?dãÝ[uˆªIœBÕd«‡°«£:D9LtøðÙCü—¢ÁêItˆ¦é×/äü¨Î¢mgѶ‰³°Ç¨ºÍÜ”ÒR!£ctm·vŒÐŽÒ¦ÔXJˆŽÑwåÚ1"#Ê2Cöax üpùÚQ ‘#q0:|¸4¤(ƒ¨Ÿ²è§®"x6Ê ¹xÑ!àÃg!ÏFYGTk§,ŸRÊ’ÿ=}k;ZÔÌ $m{Š%m–+ ÁwØ~Ðn“ÃÍŸu»´S ›8Ú­WEnB'ͼ1Kö–ãf椙7s©›™M§}¿ý©$ ,§Ý‡WUÓmwf?“]R®•°Ë¨d]ÝæiÇJµ9Nêè)ÇJ¿9MøjóØ¢R©yS`ôg¾”) M?ü¡åºã&½«êäùUB»ü¨kèë,=BÊÄo^duµ< <ûúñ·ÑY?Ó3‚)–‘Õ¢,ÒFš6>¡ÞnÛ¬gm›6=‡MbÐ]ض©jvOÛ»€„r}¡èˆN¸“KÜ—‹³-–(%ƒâFÍNÚ¶Šýõþ͆nˆMÈ%(:L ЋsÛ ŸžÅLFíáä…s߈^jæí6¡Ø}x×ÍEãÉ&È'ñ8òHAAEnÎ7±Z4j¶6ä´ Ç΂;ÙF‘Cà aߪ—“ÝÇîçÞy0Z!uZpzËNèkØÏí>Ų“ë’ðP㎈ÈÌÜ;µŸ"E`ö5±Ûe8f{³1³1HÑííSc末+ÐafZI¦’J"CNìÊcKÂÔmÝ»S4és n+›)ö‰3óÖ…iÌÊ>zMtŽÿÅÍVäT;Ryâ4ÈÄ ž¾à, tá ÃóåÆeCJFsÛ@âw˜o‡5[ÒkïhC¦}$_£DÿýÕô§¼ÅŒÙÿ¥K¼9iâÿàCW?ÙÔ=6"ýw|Oè¼íQl*™Ã`è*°Åȃ'LNûÀ¾ »ÊÕu°ÜL*oœp‘OÔ·Q.T&o8ûà Ï!¸+û¨*L ŒÀ$éYâ‡r ëMøª¶EËv¢Ùaµ˜Ó°Ý}T©É›ŽEÊÓÔû=.+PC"þT0­£kƒíœ ,èàÂÒÃw¡R˜r¨Ï¹ÊgN¬…Ÿ9°,õfòÈ©Áëž<¤·ÃKÞ³Û¢öë`#›™Ï똰±+ O›ß©y¥wÕX”9m?y WyäEF‚­g1”Q§ÞußyÏÓÙïÝ(ãÕÚÄŠüy¿yÑDìf9ve$ûC;ª8ÿ°/…Wm%0xÒt`ï: µàÄCºŸ[ÖnUÆwÕK³U„0£@ü˜2}€‰-¼Ócl–ÝÛ|îôÚD‹žáTá¸ÑÃyd²æò&냙=†n¥á¼cÙ¨ƒ ‘V†FŠñáÌžw½ôiç­Q?l½X¡á‹\®vþiH*ߥLhk˜(Gö¸R)j6:!€K^2­™[¾uQø†l‡pqv×Inëײ?³7®¥–ÓVVw |ÕÂ^¶3Ÿ]ºägî¥Y˜&GÇØÛEXvñbqT‚p‹OÏÄ­<ªh€—|+ã+V¼s“j RGr—J=°]x@0ôÎüú€rL­  xcÓ tÈ`RÞ¯š Lª…©õ•G‹’•ž/†-™ð†þבùnK«÷NbšÐPðÛ€®Òîœ[hYP‡LífæH[_›ïS%RR äiâ˜Þ†AŒŸS`ôúë6•.¾CqSÔµ4hâý¡†Õ Ô&¶ÜÛ®üc§¹üræ_«ŒÛåËvZç'‰è0™¸/^¿¸F뛎×nthц¡ù9-]¡Asc´ÈÅww¢wº&°—ºìv—¡LºÝÑ€žVRÆ–Ë)[pQ„Ó‹íð:6¨ÓŠ7( 1Âöa:ß ‰##c  +Éõ$¨Ø¹K¸§’§QžrU/ݼðEÅ—WÇ+;± ŽäILl(¤þоôÖQ;#8KM2—CÃuž(:q>žâ0²Dö Mgop°X ~»ÛŒ˜u t†áö²À\gØ–q]9©X¬{ï Ž7¨•¤ Í`vjxš#S7­Ç†¯¹91+]`(ã7*äÙ•¸ÙJ“£o7ØE}h‹KJ7ªÏxtýÙ ­ÂßoÀaÇënu[õyhx –7ÀÄù |”À†Ü˜d¬åmŸÁ9>Í“"Ô&᜜³ò‰„¹+ÊÕ™G‘Jã} •%š¶sœ{“Í…›³EÛHž’ЧDüùaq$’?Âÿþ¨l#mr’C…Ä!“#|²!píÔæÆD9oŒ}ÿ“<àâí2*•ÔÕ³#8H^Á²hÀ¨™Û¼ùužÐªŒÎG]ÇOnèÌÿÁþÇû‰6559á#MMN¾ç•ý°u:YÔR‰€W/øªwq?VÏQÚõÓã² Z×G—ìܪ9Yw¯mP9> –%?Žºø¡ú)ÕvK 8q9œ”¶OGX\¨Æ±—nîm>§óxuþhßâ{|ëÞ¢þ6>(f${ÂAôÝ•»$ÝŒyS!Bù`."1~^–´š¦a±mö°ë3ŠÁN>o|÷Àþ’X7l|ÔÕPf*6ÑÚEÖ^jõ­¢šºpóÝÞïÄ×p7$z¶ ÐÝätk¨7nºÃdH$#<{fpá²—yï\ªÅÝ´¤—Ø- ¡‘…ê‘»`N`˜½¼]ƒQÈdt¬Íl†»½ǧLG¦T|úöz2ôͳØ9{ïÁ¿Œ†ïÎÇkš—Ž@í- $5×%W7k_1m*\‹IŠáqGŃ»ÇZéã©ýü¾ìIêáDO›˜#sQ´œOð?BtNÃø%NTÃýæÏ?|ýǯÿ*g>Ò+Äí¿^éÆ^šèmüðsbhA¢ó+ÓaÊ[‘«@]®ƒ˜Êì1Î1:Ð n¹§³„È÷¢]‡HQ´™¡I'7°wˆo*`|À‡PqKç:~ƒ-þM?ñÛtˆâ9—îáSà ²Cñ \UbïIá#ì{A¤–ß³âè*Ͻ…YW®öÂ÷[õç:SÖ<¿ÏåLÙ~½·~zXU¶Gª¬™5æ]Цðõè}‡ÖÖ²âÖÖ€*[6m±Y¥Ê¡T sˆ…b‰y×Cö€ Y£¥Ú™ÕÇ|kÚÔË$(PN ³Ë:ˬ1ŽÞ‘Ï쪚7ÙÌ/¹÷Oô ¾CËØ³›)"WÞѽ졔DYúø3íí×\²@•X H°^c/ûçéøt¾ûè­{P®á Õ1}£so#1zð×J 58cß‘¬dØsOõÌ3`Žì\ÕyÊÌ?{Þ1uú'€í4‹ÚŽb‚£ø…P˜m±$R 4MMÕ ÏrKZ›^ktÊÆ4÷=ô›C˜}çÕ}Ä,ƒoöóg¢ëÐf²KŒ%>Ü1=‰Á$ Û„.‚§€[ááÜ‚E¤êÀVqŒº¢#aˆÿ(Y1‡ûþOHhaƒåénzdW1ô:cÕ9AÈgjO/¡,˜à`§'DO¦GìFw±ñà‹æÉ+Vìµ@eJÉÚ(é·m”Y ‰¾‰QJÎ.0Û­¹pÀ÷[õç%.«û\>¥çÙº ýLnÞÍév—¾Œ''lüíÉKÏü<³´FŽªÎ¢þ…'ÃãÚ)H¹´ÿbH¹Tù3¤ü)AÊå…|âžùļ„›ÙÞg‰ÐŸ¢h7´Œ÷YrßÄ«x]tñ"Žóy5§kôý‚ådVèæ÷jÖü^Üdnú޹Ñl ßGVAœ¤2V«XC¯·^ÉmYðKæ×¨½v"©¥·>õLЬå#-.‰;LÚoCÑÛuS¦҇ɋÍܨľ‹—}¾VÏg|óª%ØÊW÷ª’2ìEÔÉ•À8XÀ\ñÜ›ÚSÇ^Ù%;öÊ.¼:œ×)s½¿·‹ôö\o¡#ôîu?&Ùš~µÌºêlú?bæK6uìU¬ÒŽ+uî¹SØ'9ÌExuŃ»«‘ôeQÙXÿ£‰¯Ιµ‚¿<>pa]á[ã"°;‡³A"t°»†k³âX•kɶý4@ýS{à·1ù5Šý8E{ /&´Þ”~lt·Ã®f»ò Ú»ú­ NB£u`^¿ã”˜fE†E ‰åº>†w}`ŽIº±Àk(Áðž*d‡âîxŠ”Ò܉Òäà_®zwTÀGçMOŒX´ža«¢ŒÐ³fß ¼Zn®.qrÙÇO@Tja­;+¦™ÌØ^(®…C“æÅÏÃjªˆh8MË^XO÷íƒWC"áæìÂùyû.v5á%B ˜¾g1Þ1Á¬ïñî·ê¤PÞ’Æq4n¸!hÖ«Šo¯G-ùÈjÆåÛòо} ñ«À³Eß%j"@^Ä™Ü[ÜüOWäìG'ó©iñ¿†Ó1`DÂ9èìØ…%Äí~åaþ Š†Ï…oTÙæ\~ÎSS°™ÂèCš ÷ÁsÁÍ;~°é¸èÛ»3†ºœ¥}ÅH¨Ìœ,ô X€jPïGdgÔ;©< Ãy…ø_:å幡‡j?j¸k%v:j~!½Ñ`òÆš2¾ó1K¸&HïtêÊà1d &Ã"‰¾D•_ìµ£¶¶c #WYiàœx0ál V˜•Ôô©¥k­˜æZ2¸˜Ü£ˆ¤\Ûàˆã°F]?jG¾#R­o”ö4Mji¼ÌÁ§3rúrï`)WŽwšŸQ:*rOtÔý-ô_©šÉé! axðönªFN—Ìø^ЄËIôæ8Ž.¯–T’wRóÀ’‘œ‹œ>ÞJE]Ú-Fje਋HÊQ¸²)+t¥%³R)–Ü+-1¦š|Å1 .õÖ„/ .Ô:À¤D˜GvÓý a·ù:º3ÞxÂ\™Û‹üeº¢‰Ÿ``påNí¤g³"ß0NÉ4 (K%âoÌõ~BV. :òãwãOð-'øvbs@!½õ6É ¯Ò‰’ýžvu¢ÈÝ«<¥oÒi“ß`‹Ó/üV¢Èݪ(2š\PÌ DPJj®²@ˆ’…˜HÍȨÜPùáQ™ò1wsÃñvn¦lmFµUrx_E'ð1~M\ Eä˜A)jUÒJÖ”@³e@ ó@˜k FJ@gSi¸ÖO¯þM¾ö¿Ê«à]]±Š nÀSû&W¬ûëŇÉm€®X%ýÄoó0Á ®»b•ê‚OÍšþ<ÕTE–**àÇ’‡vžW™´µÅèT`²|­¦J|ö@~Kؼ!`upÝKU‰}0bY2w)¢÷¨*Í_. Â÷-º Õµ}^¨–ϪöÔc"P¹„¨–…G”Óîéfø -x‹!³OXEô€4¬Tqƒ¨xΆ¶()&€@êýõÄWûãiôH+T*ê¬ï– Ê6ÃïµĨ ŠÈô>°¤;Èj“B³vPû}€yVD¥ßÁ‘HäÎÆlY»znð}ê0ZÒÎÐUy ÓI˜-|ކIñ Ù#z¦MŒ¾V)ôµ¶ÿbôµö3úú)¡¯õ߃¾Úz‚:ùÍðÞ¾‹òr>S1ï7î$@¶i[²KgxÝ`ÿ%xÖ¹¡o–Ý0Y³(1½@¸¡²ó²¾y«¯Œ_we1‹ žÇc à±›KðØ¨°oú¶ß,à±ád鼞›Å÷™¬M•M±a bJÍæÓÁ„\qFd¡Eô3ÄfÇ xNS¾Ì$Œ"Ù:Œ¾&<}Ø×yµ˜Ý,:Äs  ?B²[ÇŒ Ç;´e'fj_´…wøK ¨‰Wø£¿ƒ"ûñ$Tej¸D„v‹ ÊØ½ö^òA‰Eå¢÷þ¢¥»‡Ú7ˆPRÛ‰êU¥üJ5jÅ—0vÀ$ˆÖÿ(_»—ì£b´‰³õ‰Ï=†èü[EIwf÷Ø%†ÉBGmø;e¹‰Ç™ê7`.± ª$<»CÍ”¨Ü‰V k7R2Ïãi²“æ ¹øßäÚâ@4P‡¡~0ÈÐa¢ÌšNŽäŽJK È‘æ?Ì6±à Pòïž`à&${„ 0ñöªpáBö|J’TêxÀ^LéM¶ÝéäL¸»U ªIŽšïÎÇx:k†dH*­»†~p%¨Slš…cf±3Ir¨×‚‹‡óà]:LÒqdò–·ó¹΀M©á­þœ)ó!©']¥²£¼TIiŸ2 ŸÂÒ=ÔtBËÖÎ)°ßôZ£¾èór›z‘IÚûž±š8n dø³¯rY9ȺOzHœ "YRæµ.ë^R¤ë¾ë+ïS–Ž.ð*ŸîB‹'2õ|BM‘¤o,Ø¢Ÿ'|°:â(ΨÔIñéÏWLùäb  ü!Fè=OÞ?¢ Ô‰EÙ ÜîqRxǺܚ²{­µ/Xà³=¦ÀmÒm:!öœ mÙwüVê2ˆˆ ªˆôî ¬^¸MÙ²€ð°Ñ°0ÝÎJÿ”`ðÀaŠ nÙ”ûst°PqqáxSÛc"÷Ô” ’ð>tsà­{œ5ˆ3ñÏ%o×Û+˱@yÇõ…gaÑB8j€«»’~)ÑLùÛ˜{~¼wÒ›çÜfeNË/‘Yn”…°SèÓ5 açyCpp[óûÕ‰lhà!¼w3ÒBûµ2¦uŒMwdÙ­’ƒŠŒh8=Veõ‚"yOÍ><ç#l/F<õü Ì}„»ZàÏ>Â`9[Ÿ'|„I¡¶£nùàÇß¼ªï!œÇ‡Ä]ðÂj¡0:*ÝÞ½Ö ±Ø ¿‹Xí“£šF·&* á1°>DÂÂçôÂf'-qøû-2L?¥÷4ZÞäŒIWSl„ ¬ÂƒþÛö-k×Òñ‡ÂàËWÒ‡4’bxöHyÏß È™^Ì"b,èžj)Úl"…§ô0o擯 ¶p¥ÞSd=ÈÞSö°Ý-èZ¢dž¶¡óö§9Š»NNw&ÈÙ8àñŒðè~ù/Ø:LJQÐu„“á1ÙT*ÛÇ¡©£¥6^«©1ó³—¯úäé("–iTéOÄKKTuoºL*‰4³©„u"+tœ̪ñ-T~Õ°ÜN$Ê•óí]å6éÚœºAFk.oªº'ñ+ÕØe:èbq’Æx7ÄS˜zV]¾ÁÃÎo2õ…™Ü­$ötšmè“ Ãr¦4WíC,î@9¡Qv²³  >5Øîà ùYp ŠJPnöv„@ä1í„,ñ Ž4vDm¬dGT‰ÕkòD€Ï›ÍE'~‡¢ggV óçž%ÕÞßMx~Í•L¤½î†¬‡¦©(̤-eéÎÝ"rºsb“†Aûáý™yŠ^•h¼áðN ¢.GÍáò¦@£Ï½@wm&¢´Â”Á\%©£–÷†úQ'ßu÷ä.Fæ\3>‡ø…Ì…ÄÌ“eF(D}ümo˜¼ìÐºà‹ d9y½öÎßòQÁ®éœùZ„ÿ(¶Ãþù÷ w‚Î~Fã#p3/¹+  ¸>{c'C*?¬5@ 1è[ì}g:Ž÷ËNXžT¤I!³Á“—L^‚Ó2똄 ¨ÝøÎŲ Ü|`#X©þ /‡”±Nù¡Ç¡ç‡SLÇŸ o4l#ud4Õ`.DåD,(±)KH® z/HdêuþýL `QÏèg¦'…º6‘Ê0TÈDÝÖsꙩº¶]Mgpƒþ‘°Ð[' g]L8 ‹ªïŠ5 ø^Î Qu§pH±Gd9¢‰XG–Îó#§{oBÜÔ¦Îû|íñûñŒkµ»»G9 Ù,¾Ÿ†ÕþÕaª,´U†ÁÇŸá®ÁøÛÉ{™»Ö¤`Öþ‹aϰΧë´w °Uà®/Òx k Ør)c­ŠßWØy¹›8±³~5aç•nâ wƒ^PÁoAËì;]¿51ÖÖˆnÝ&z«¤³8-Q1Ùf|b°,0ÙxîÍ»{ ‚ˆ?*hwwgåo”²äЬµHf•·æ¯—#Kˆ#©Íü&†_À¤*ßow…OÇûWޤö‘‚Ý)>Ͱ÷w^—5Ñ™%yXæ³Q—p%Ý?£®´Ì -µïï“/éRr<´–¸ÃèšÚzv®þ Z¨¡BÅîÀ-[–½ ü„ŽU)ƒØ=s^lê)Ã59Y}ã2yx¸–´ £Ë‡xöïäŒKÎ8‰]¬ ev’2çw(<ˆ›Ê¤fí‡xU=O´ACW7æÉQû¥#ÚyWÇ‚¢àä‹|«qf–Kï£÷>51kR:Ûíj…AR®üÉ'`×ÞÈùjIpc‘ëì‡ÖšÉ·Ö]ihË…Ö ¸µ¦„ÖšÊ&Ev ­5nƒ-þM?ñ۴֔ϴÖЩÉ-®ÐLʽ‘ˆW „Qðù¿öVH0ú©GËsó¤h<¹W‹ýQ˜§)–ÜH'“IȾˆ¿?Ú7˜¸aXÄ\4ÌNûàN{4ª=’éyÊ‹â_Úø/¡gX´M‡ P¬ýZòËÊ’f¦óˆg0_¸þu{wtD=‚þ5†3”/Ô‚ã'Xµ©çI˜ßŒn×tQ«ûŒTx ˆyÈÀÀRºè'ƨdF:B*ªÙg­ŠX_ÎÆ(5õ~'‹ÆŒl ˆëÚm=CO”B;ƒêí@©6 &¦‘ŠàážÛ›-i@“ã’*„ Gn ‰+Ž&¨Ú²É…+j<ÃBˆbÔÞÛŸe•Óï"ùÆ{¿²’(²S¤až&b‚͈zG&ŽÔzàVd­B2„;ŽÜÐF¢u+%~‘@~pâÁEÊaóºͪèÙpÖíƒz³'ÏÑà){¯¸̔ۄAÒîÅÄ=2÷6sæ^‚m'52ÅÜ–œgîÍ*n6Ví n–zjwÎsSøzmË|=Ì­çÈ—âët=âÌÙáÝ)®žY'ë=ÇÕ3Ï“õ„õÌKÉzs®žY"ëQ¯µ"ëmˆ¬‡Ÿ›U²1çfõ‡¦öd½Žƒì²Þž#\C|ªÊ¥™rwÂÕ+æöÂ×Ûë¾&ÒÀ€òÑõ†+×õ~0Н7t=ê&¼tp}©©sV¢­BÙ#X©r ö˜– {&ÁTKönñÂ#8%è¹æšª-Š$ç°Xm_]ÍèÒXDºô7{ÏæO32öÆ@(Cq×Lpâªl§sqN%õ1EÚ3áXœ|Ô¾×KìÜY1A1#¾œˆDè'M(n+ ÍçOwœ±÷ö çùš½Æk¥IãMjÓç 7„©^MÑDˆ¹I!æmS¦:¶[jþèfB½Ð®}Hfñ¾`}@9YIFpó×b_Ñ!@ôÁ“¼ö3’Z d/®¸7À÷[õç%î «û¼4oÖÝègмY0oÈXD!T}þÞΠ,û\U›¬«Þ¬¡æ°A¸”º£Î[µó¾mƒ=r~» ýÜB¯rSWK½Ð48ÛïCéç½:b$ýãÀí«÷f†wö_ŒwÆ?%¸û{p`;*€?z±o0pŒÐÏÂÞwÕ0<ƒK»E¹ï Õ$ÍrS𡺴÷DÝy"Y9{Ëm ›$Ry‹”z¦o¼htJöû å¶—H&߉ä”ó”ÏJì¡7Å!…dŽ)¡ml:ÞÞœŽgiwšb5m×ÂI^¸8ûë…ƒ®[§EYІ¡:yD”›¤™á­»¹x^b³øwÐyyã•ÀJ ܸ“ß ?n&‹JƒÏ‡Ä9Néf=²t@ ?Ð4¡Î/$%ºwi‘ðQÔòŒPº«™~6P‡ÄM˜¯Üî8ʵE,™-‹þŽ,¦KHL¡^I¤ 8jÕupBœ|;9j` t™ÄŠñ:$íTf· òŽ21é„l S"zð½6d~Ðýœipß?)£îIF™LmaoÄËC;rß+Š!v¬cïá~Å[äæêŽqüA߆´Ê—2´4‚íEý+ù2ÁS¨}y~"£e~ïHè²Ke¼¹ówp)•b0ÿ %ë’Ì%Ÿh˜"oI†í†;GPiA ~ò¿–&ü"\;õh˜*C…â0ô¦û÷Ò }Ξ#@ÀL(êí¦"7²D õƒ¿€Æa }xG˜ÐGßThè•:ºñü »9G÷UÝ— ö°=Ä*FúDf^>öÃM ŸØÈÉ'¦Bìm:HSòÖËÎè™ÎÓkêämí~Gî.¹`æ ­aLŒ"**>¨{  èkü˜XzLáã½h¾Sì”vA=……€7K%i†Æbáª4ÚLéØaÍ™ ÛéF¶År7œøáÿ4Ô_X4::rò’Ð Çm ÍÌ…ëwÄ]æ®ÐW#UƒÀiÆ.0‘ʞ̷).ƒˆ‘uŒ¥Ž”hàf>7eaqï öx\}!ŒxÙ +uA, ù{G‘\"îÃPüùoß~ë €²¿z¤н‹1g &úp1½®APâŠM¹o5¥›:-ÞÅíÓö½£aç9l4Á€ö£Hèìðä'ßj¡ÉøûÔæPÜH¼XjEÖŒ'1ç=TÓ1W¿œ&»ô?¼ÑHÕUӥ芽ýÃT= UŸaªO ¦ê/€©¸KsKÏÄ¥Lìœ2?)ÒôaÅÁçÀLàA©­Oö z.z M¦OZ!£æ® V¼ä®]j§¸ûíÑ-}¯)õÂ:´tÊ?RÛŒê"³yàÓ‡én"ÖƒW…f.à=È, ×|E…pBCxå—Ãñnàž ®U˜Ì»f2úÅ»Æ~n6ŒýHl:¿ð£–6õhïG€ œJ›URk&OT;{œúVf¦+›µè¼Cåg÷×±ùÚ/ˆÌ»ÕÈÜÚD%….]R€>—ƒ”8Êve¢ WÙº³nðcê „«B@/Ý¿¨¦"Ë£¡á'´öØŒ ßa°*ÄÕ6_ ®Y¥½›Ü ~UÎã1û»ADvë2DYá,®©Š$(JuÛˆj„/$ÿ ÉU­—9ÜEí­·ÐE1-Xï…ˆë Ï "ÓòÑÓ£{o\[Ö~‹ü¼]-ÀÍî#÷êýåîÖؘqt=oö]@wH¨:?ŒOvÄ Â;,ÄEˆfpüˆú‚àG0ú7Šÿ£h6=ÜÜ=íTÃHW’á Ô(V’aû½$ðéEÉ0n¸´Ï ^¹~=¦Ÿ µ—ût6\ÔmªùåûÇ-µ¾­}Ùð3nv¸A” Ã!¡•?‘ g‘'É?&m¹¹¥¿$/»P>4‰ü~~¶Aÿ½ùü!°2ùØá‡«‡Ø~P‡(Áœ1>‹È´nvˆóÓ½;„)«ºqÅé6)>Úvûó¨~®ÆPØmkÂmwwjÛ¦iæd?\ Ý0žÂjÛl>@ðáê!‚êÚÚ¤¯¶ ¯®oû…«ƒmƒ««…Œ®>\¼:° ®®Ê‘&^~¸z}uUÑ—³Û®"¸ýU‰¨\j€`Û`€ªšHþ‰‚mi€…è>áÛ›ØfQ„o?³AþçÿŠðÛìï*DÓüý·2ä©ôC&Ûã;óŒká(Gµïãkimì¢iýÄØήÏÈœ(:+YÖ­c|<ò äy^.Ÿ,ÏtNãër‰³5n¢sr/E‘:]™ãä׫¢Y?[žÐä°u™¯5d黣Ì2©nÆ{|ÒWÆ3”lŠN"‰+ãÉI®¬¯³U_r÷dì\•½ŠóYìœop“…@f†Ï„4àšQÑ@Þ˜În¨Ì7nO;¯ázKâk†Ú0þðd€‚^£™³r¢ ,Ô …‹àsdÛL}¼ý HçA½8²)Õž*ŽÌø]y•×3Ë%¼+eS åöWQ³})µ?›£_û.${²]Ä+ÄíÈÁÍWw3$ÅÞ‹–òöŽZ¬Œ· ƒýÎ×®àëµkAkfÊ#âO°W–Ð¥wš@kÅDƒ4£Ãh_ÛÞ¹ß$ÜšØÈ΋ÉVáü ÅJÕT ·d/ŸÁ¨2ä“| ¹wÜ,ú•—Æv†k—N- ¾g[® ãn`É ƒEÚq`7Ô–Amô ÷ÝðO#Ÿ—aÔÄhJÎËó— [¡§5Mÿ0C-Žfž›ä˲0ní!Âùé¿‘Ѿ•±Óƒ  ;@ÜÁ퇗LÛ°f†Û²€¿ßú€5Ad†QYÜr”§+}+nh«[>˜ô¸9Ñ`Ü© ¹ÿöw”+¿ÿ¥pàM0òP׬ëüyEâÐÏXøqMÀÌšG*ÓUFzòFüÕ¼:.5nköš38Aól"D{m–äëÖeŸ¯1n ~ÏÒyøç%j{«û¬¥ê.OO šøò¢ËùÇ+Ø>Ïa-ùJÑWÊÎ-.ãÕ7ÿû;ÝC€jùê¥oðû­úó‡¨Õ}.E)i5\àó¯Øçš1 Ø¡¯¢•½ës,©A£VvıZÒŠC5¡Ø ™©s4uÔ„‡œ© ½a 78Ã&ª9óøæÛ¯ItÎf-CÊÃö^¶êšlžÂ‡ŒxÃ{n{”û¦žï2…€¥öwÛÑîÄf£UGÜÑØ½4=`ÑSÀÙ#ì§»Ìü´EYdëÁ«¿" ëªXÉ øB䨵.Õó¯sø%¾m–J|sû/N|sÈ}?'¾ŸRâ›_ ° ë•¶æÉr4]®ÐÍr…n[ÌSzûÃTA¸‡”H”]ñPüÖòÔpr~o£<–³ Ʊ“©¿º^?8j‚Ø¦Ìøœ(™¸ÿýÀn¤žÒ#ÇV`Zô§;TâÄæ6"fz1Ö̼žÞÀØ™¢YúDvîñåÖ€Á¯pÕ¨`À\â¬hl²úÓÕ{ðÞPío:’®–ÖûÒ®°íbë½l`°ºYCã}e›¾]î»—ï·ô'þ¿¯ížÂú™Ž{9(%d›_PôÏ¢;´%;¼ 4S§s¤i@È4(決I̵£~õñêO@Ç[úïv:íå ãï6Àñ/ëW9¨çåRÆ_6[HüwOß;(Ï ¸™‡7»¬{»:üþ<à2þÉҪÿÞíã‘n¨D>Ø›–^&~[ögû` ñò¯ùßyž-µªñëíÕø©XE˜D^¢¨¡PÕËÌÉѳ8a|!LJÁË~`†ñMü¨)UZ²!ˆYÜ”ÊO¾FŽDu.ŽØ<èzEÃÓb¶qGX ŒËŒÊƒzýõ+ÌFæ#“eœIÉgÁ1åkT!ı¸{œÞßqâ¬[”Í ½Ì·÷pmÑŒçÜ}ì•–íx/Æ?Þ !Žß6²ž|ä°æª†t&‰hÉx&À€"´ÙÐCÑ¢Ž›ºÖè"=•Œž%¤?„j_™½<ÊBgºdñ öf¢îoOo^a™ãîåäôx°'&Žqh˜ üœ×]$C ׈­¹¤ê¡Æ8n‰Làæ4ú¹ÂÕEî -ŸÕÙR©®_šÓí)ÙoïQ™ØSb²÷%qçœÁ‰mPkAÉ®xû¸WE̾X ñeU™@C–N¬eã=ð©?$\í!tÈhÅ…eÖç\`w=ÎŒ‰jî%”æÐœJk«`éßµ%HÎÈ“iöÚlj›°¿XðƒÑÖOÒ8CÕ»ãDW"Þ,ÓÛ[º®›I«ìé­åÛÀGÄð×j9› én-³+ÊöQämqÀ÷,Á¤â%€UÔ­¸îU¦BC CCæf0 ÐÉìÊéaxpÐî¬#Àö_ôF“2¼†iØŸ…[pX©„ _œ|d¤¶; æÞNÄE=¯m6°ûºŠ®bN{fC.öÃûÿÀ‹3¦Fv ¡BÈé@> (Ÿ& ]÷»]*Îú¥U6‘:z¾"¿Å½ˆiæþ\þ:ܽ¦kÓ/ˆrÉyh#¬\¡&¼f1%20ÄsË×Þ°„°^ël pG@­Mx÷hî>ÊRŠ2P3¸ƒ9lG“î/"€,AsÌ4lL*³ªñc‚“² TæéªXœkr Î÷ 2¾]¹äùÑ0{0q¢©—ÆÄ@”˜ÁÀ@ìþûG„O‚ •ÆŸÔzF¯Be®žü´ãö—ÿûcþücÛÙ·'½?üùo¢TK˜{gòsÒó[°:¼@_‹Š“ƒ9…üÀ¿=L|\† 8M5ÇIbRœô ¼;ˆ0`joÖÓê,ëKdNè–ÂuyâŠÕU ¦s$wK"äŸÝŠnŠ4ß…C¯^|¿T=‘:ˆ‚hÕ5ïçfš†Ö‚‘Ö»{pS§îëömˆ™šòÆ©) XØ…¹}Ü`åÀêTZ¥‚ýeel¶z­…•=Ž}«¹ª(©•%ýM—§Œ-˜à½v}Aƒh'×Ïè1×^[ù²­õ}.G{‹u´—~ÅÓ@a‡4Ú[åUíý~ûó ZÌE íý´U´·k#OxãrìŠ&éîVS<ÓŒ5%”i˜ V(Xî•ûQ«ÜÏ šï¾[TjHe"=È–îmÊ×BÃò©6)ØâPŠ´ç õê´—ìçS÷c0·ñˆééÐo°5NZ¼¨jÄ„º¥àÀo°•¿ÛüÓw§C[Av²–¼¸P¹ò~¸?¢L*I Œ,Ý ²É-LÍ?Oǧ3š,ÎxÂûí ž&%Æ”ô&yËA5'~)ÈJB¿¢’b§öwôvA\sHÓoÈãÁ¾’ãýo`ã:UÙäM’h—§Öõß?ÙpD–W` Ü:1ܪ¡;¶ AÓ‰0Q×…~F­Yž¥Ï­F‹¸:£t®H¼•©v^¶ã6±+ä;V•†ÏÁ"a¯¤¬{¾;>‚byH½Ò¥6±"Äkgòµ$b¡•(d‰–Dˆ˜xhņÉŒ&šîœ_¸– w² Ú÷wOú`˜ƒ†}q?]‘æ‚Ù×Ï{¶Yöê6I{uG޲TÐ=Ùjz dÏ\°yÕìæø~rd.ã¨l¤Ø´É+T6 ß<}ûÇGwK;¤ ]`—¦ƒÜlÆÄ¡ƒÀãž hØú6©,žÉ\mòœ‰×9š¬¿ÎÄXë«Iž¸³“( IØÓÄŽ%›q¢¦ìt|¢×•3MÞö5õ3‹ÎdÙ074öüFúß|$ÛôͰÁþ3´5žøQSsÓÓ{§ÄƒÃñ„QyÈìÑ•3¸ÐŸ}‰­BØØL˜œI<‘°g"ª)¡#V€º7~šÀ“›y`§ÛÛ¦À½I‹ómBPôFƒ~H»„üY9©“ªŠÊàñƒ“BX#‚dñ}¤ÖhW /oìoRýRþsl¹'‰o¯Kg /lçÀš¼€6€½áÄV9Ó£Dk°j!¼f\tÁ±¡ÑÏqeêf+i ÷t`ײ-w'°•›nìHND?Dy¦Ý ‹ #÷î>’ÄyaÈq¹í,¤ÇéìµIìãe”÷Bµ|ðwÔäÂæ8l´ùÓ4is¶{%17¾ÀóQØMYt]€ÝìçØMYu 僜½^e¶€ÝŒ4bŽ%´ªùlgÝ0%°Óõƒ¤Zh;½® 6ð½´Ã⟗´Ð®îs9bS®V¥ðÌ¡>§ÊRe²)Û:÷I[pŸéÞrNاøEEþL7)l0{ùä¸m÷nì4[»ßA™ƒØÒdE€á´}c*b^j 'Ï@¦@!v»MU!ŠËaRo~ü$qÚ¾ ܵ.t—)ŸmíدÜåýuøO"€ÿüí<îk‚’knæ¥5|œðŽÛÿú!ZqK1HÔÀ5µmóœ_ŠÑCƒ;uD†)~p“¾óâUË>,|™¼S­±Ø¬ž§]•)Ø©²ÿbØ©äé3ìô)ÁNÕ¯ ]•}\äíúÚ•šPÊÐx§dKgšöh<Ðt€&ã4‘dJ:3¿ý Yá.ÇÓj³§Õé° 4Hxyhb‘eäU â´£ÎRuŽ#!ÀšŒh‹Bv…XÓAcMˆÒqf{;Çš ÜòЬ8Žï”6ŒÇ-*k.@Mœ¥§‘&!MïÜ ï•ø#VûEù[¿ðYÃa+~EÇóyÂxÿ;Óªíì¬1óÚ;m"š8!Êf¸«ê`¸=70AEorÌm°7”X@V솻;¯I¥qN‹O¡i NÂî œßFz4CÃ'×€wMt2dlÔ{;¨÷VO`£SšŸëþâï“îoÞ¶½Óý•hDiÌ¢DZ[FÁh}O·Ûæe-=PóT OCNç¨DL¤OjÅ.5ÈyGõ=µÙÄ]›fgA°s¶ÌÎx¨…§´è£%²rFÜtZ|?@‚¶Q!&´wFl6û¥ƒSwZ/]t/±Û_aÿÎVßþ-o ·þ§ÍY(,=B«.&h¥CŒå AËŠžÜ%9g á-ñ\”€ºŸjмgBÞWßýí÷ß~ý—¿~ýå7ßóÝŸ_±dqM›ÒcË`Jty½ÁcH™úýâ/ÿú¯_|ûÝ_¿þÿ~õÍŸ$™.Zñ›CvL$¶R²Á'PN‰B¨rú¥ Ë4^¬®¼äTŸY± Fɽ8¸[<,£hA# ˜0‡€‘ 0£‚μ†G*d8cŸÂ –~jÙ ;†¹%á$‹õC8ÀRʘÓã å¾6„õö ë=nÏïP°Ì7€ÖLõN@ì#µ£! ¼S0ÚùtºÇæÿÝ€•b¡³š wozµn,} 2x}Þî~¿ÎÙ–ÎÇ­ƒÇGÃ>ؤÇ=ëñt±så *zÒéÆs²£Ñz Ÿà4ð“E,‹ _ÛñG"øBÞoì ÿx´ÿùYž¹ pšo$ä -’¯ìÜ{@}HÇócOŸ¾Qñ(ÿkÑ„ç½Ù匩2‘Ë5Ï(úiAK8ìlɤ§%g#NÄñžË<ó°eþÎVÐG¦˜ÆÞdL+ä?ƒ·ú<ĵߙ] ü°Iïê÷ÃÍ8þH6Á'@­Ô(Ág×BϺ)Ôþ APopnâÓi÷'iØw ¥’:ñÂñn06ã'èú06`fn`¾aëÈGdÃÁ…ØwÂZ@ý<±®Äöa€+G¸’}ðbˆ>^¸_ÂÑÂå‘­µT•螢ÍÈÆ¨Óeõ¼ý\Y÷MâãÇK'T‡­‘¨ ÂMým9°UéÇ œ\_¤)[Õ‰WË!”×>ÌAÐÐÈÊ®è×døýVýy ¹ºÏåpdµJ ã_Ѳjìóv@†q±Û&F–°.›eõ}Ü ®0KRE¸}‚E3¢{”F)toSÕe·€îý²ìŸ§Ð÷–ªÒU£]ÐK )ôZ¦(ôužk©àz†®Ô´ÉìE ÑÉ6‘£1Š lYŠDŨvn½á¿ VÁxñèôD‰*ïÄʉÞST0\’d È+U±­Ìä)†m×fô›óùv]XÅ éUnÕ9 "Ù`®U)îÀÑ—×3ã±ÃÌx,ÈXh!`+/»Þb†ŰmÏŠ1 ÅçÂØ!hOò< ×RQ¬I„±rïZ c1d_Žd7Éâa#Y3‹d7«‘,[zùHÖD‘ìæ²HÖ¬G²+,âfÚ¬­RØsmÿÅØs ðógìùSžëRWÅê¢KD4ð©ã˜ÙÜYåa ñÎwêȸæ{æÌÌ«—YÐ+Ež?ätFƒÚºÛæÚfU¾Þú¿.Öö¸¨­°[k+4txÕUØ=§þ{¿}ÿ^õD 6"œ!ì2Djdp^‡Í¼°ð§í{Ö4g•øpò«ºÒàƒ…å/{#ÇAÍߢgòë;šqî@“fÝí=Yg™‰'I¼Éýi¸›ÊwíìE’3Ò·O§ÝàVZï‰ü³3¬”_*Ñʽ–>»C–É/þÌâ+0ŠÁ~“ÛdïQ ŒhTrKk ¹ÞJK+|¿U^ÒÍI.ìsi Ú=×ÍIg¦êæ]¢Ó`;gU§¬à©Á>æF,Ïtjò¾ÈV-¢pƒã#zAŽ[“j·C·®ÈQVƵ‘å ŒX5ã‘ð{>Ò§:NÞÁ’k;Ц {àåÙï è{Ì<Ò‘ðjí{¼UG*Ê24ÊJúpÉöÞojHt-ªÀ;A¤}7aÝõ¸\±µB¥Y}[õVô<j§ºë/Ø .[íÔôi/•’=hÏáŲ79—/–ÔÁ;Á$Ó€(=…¿˜Qøm* ›Ìž¿HÖ‚HN %¹IXDM¨òxuAÒíï}ó,’¨40ÆÑ&pðÝk q®}ðM»ñö4¢É­½KFMCúÈÄCêYsø •ùi—ÆÂ‰¶“3CË…»joÂÇÇfåQëósïÛúhÁ6^Ù @1ˆ=¯"çâ–;A8òñ¨›ÜùQ"s«‡•3Nüó¦µýÊsOxn†h«›MÈtõã@VÎE6“nU‚&Ík¡eo½Ó*•6é‘¿îêÉ·ªžÌÖÍTÆûƒîÃâÞj^Á-äúŽÝipš}¾ù$l9„òcU†üv~Ì1$“ÉA_ñyò¯Œ “UŽààwÒ¤ ´ºòýÝÞ&»fÒ\rÿLª{ãrv­Øi—miÛå‡:+5ñaøÀ5 £nÁc‡hã-¢y ,!»p–>‰ ñÙ9.:7Ñ䬪ŒõI¨€Îq …ø'Ñ£]‘Ø~Ä2AÓ±÷»bÓMÈÇ`UÝð|eú`ãõ½Ÿaà)¬j¤?ÄãI€åÞ噢ßã³öæLV®šŠu»¾xu…"öÿÁ댯ž=ùÚÉ;Òº‚ÐÍÏWÍ›Œ`hªT‡ãHOÇG†ƒûwÁ{´…=Ô£ó݆…r¦n°©Zt‚$1.BÎÕrîBŒ"¬’=Šhwwï½xžêäc]åÜiÌs—)Pƒ™ÎÒ¾ï´JbšÂpÓl’IÌ$û°¦‚„Xþr‰K&.¥J\| éØD1šÙ<ƒÁ„„éµ™îcÆðàáõS×dI©ËRâódyYæ²ñ™‹ùõ™‹J\Ì,s±¯FñÏÌ\lì×þÃ2—2:é™KYI½,øxÞ­ªgü*Ìb°a)ÄôÓÕó2˜e…t>g!¤JXÚ–¬÷»„åñ±JY¦˜?$3 ‹ŠàWÖH9œ¥/;µLZÆÉg-즲–ƒÊZn1kÙqÖ²×Ê½æ Ž%E Ê©ÎÓŒ[»‚¯±wZtáò^Õ®îsy\ûL3!œ¹fït‹½„`טŒl¿þ@äSey²“°,8ªõM|*¬m+ƒ[ü˜:¬/޼ÓÑ6‡}̳µ‘¶. ° Ûû€^ÎJKª°Ï‚ÐÁFžtùÏuó!‘ȇŸÐþ_55óqô)D ÔõMšæ-MÜ$9Ðâ™-ÅKR.†JåY‚sqkdzQavú‡¾R1Û¦.H¶^‡ˆÜ‡hj°iÓ¤ þÈ3›Dí¼ ö h3ºÝTØpGS ¾P8E€K% —*V¢Èûj6|µÁíâú]Ð…ò9lÐõx~yx¾uWðaÌÒù^“¼ÅwNÔUÛ S¿5o…9ïÇY@ªÂ÷q\}œ´zz°#»›nHöoòç§;ðK €—&Å„ií¿xi{ù ¼|JÀKûÿ4ðR½x©^¼àûÅ.æÅ |o’SÌ2ØUîÞ\¶´ ¬è:9øB%Á–œW§2[àk`KÁ`ŒO•ÿ‘\äÊÿö@&Ï#Ãe8üPíK.Ú牢½aP%^)ûðkWÊ%È%½RÊN¹<·“¯ùãNMQ§ýœ³°|_Åå{Ü» ›ãò}Þõeº|OX†Cyš™‰oCpGŒòУ˜Ç$ÞÈÆ×DN?A™›WBBÁb(¤%ªæ 57JêÚ™4Ær,;…5ô‰ù^ƒé‘=œ~8`* ]düÚ‰â5[Ö!“W-ÞÜÄ—È<Ä."b˜ï›Áò¯ÙÇvÆ@ )ºHuðB2G‘HÓÒZœGîÔT«òAÄ}ßßmo:òûñj,žqèë¶TvXϧlíë=«ÜƒN=«ìÜ«úŽïBäjÅãEÜí€:<…eö1 ëš–OÍx*g DÂâ:ám§Í ß¡SP<×RÚóÔ²CÐM$¨íÑ lÀÕ1v)o\|·ìŒ1HkkG9iõ½.ЇEgåjéŠÅˆJ\&¦:dØ‚)ì•i•_>#­ˆS&5ß<Ò5Ìë‚Þø½ëñèf¯t‹H èêé½k-ŽcíÚü ‰Þ!äùÌJô%u?×aÜ83&ß3z8"Jð0 ‘5ÿ@ÀN€Á_‹at"-8TÖ³ÙS¢t†ïˆ‹É¢øº‡LŸØ™;‘š¬}¶©­R(9~œžº«Í̹d"$nBJÃÌḶüó]Õ‹0'–ÀúéZ«Ôêš©µûX©ïòU8£w$ôç%±âê>—G‹õz´g®]×`‡´šuÖ.Ä‹b¼fª¢HÕè*Ô•Z)Òá?&ºRŸƒ0Mï©bF Ô ±jÐÒv1âƒïg䀨‰£ÇªEl‹íÜ0¶ë°cXÛ¹™ªëRe¸3ˆyS·" `¹õÒ¸®Îúzd9/8Ü"ï{³äW6 ^p˜ %jSépgÿÅépñçtøSJ‡»_!JT·QJ™g0m÷ks„ÍïÞjåëû<,}vžXn¦…bçzd 'E[ÿò¥WãfïbægàH3ΊªØÖ̾Uû¹‡Õ^-TñÆ9ÀÁ!ädpa'œ7¯ZÈ…X]µìºªò×ÇC.ßßÎÃéÂbÿÇ'è¢@ϱ·ëUS­¹Ç¹ïIµ~UôU»f'ßÛ5þ\6ûG衾îî²îíª"ª; ¸„ÿ€È íªQóÔë/i!4¿Þ’Œð£—€”ÑG±$ ^}?AKHY¹˜Ë F,ûFêÉ»¡gñ$qÀ(®÷à)>†îôbHntÛËÀjQ}…â|ZÁ©’OÀI9ðö ,Flt4/VÉ}Oä¬KªŸX‘Ä[¼]9Ïˉ=²vG6¿Ò92G6;ržwýeîÈÝžùUæÈ3odRf*°á@îõ.´Üc5¢5·•¼ÉRn+øq²Îˆ³ŸDѸ⠊ŒKéqXp]Á‘G´E Viï½ýËŒ÷€´Ö¥ßoÝŸ—ï…ûüê¶YïR¢_Ñlƒ¬™yÎõª;1\@n»E²®I@žEÙu«˜'l0=é¨.‚ !B<$‹ÉräzkÃÈ[ P«y[TøÜJkâ¿OE°·®5?ÆAMQcûLtnðá¾ù05Ö®GVSg×¢îNt$ø08’‰ŽDg©Ã:8’ÁWωŽt?=¨«ëYΩ÷2¬‹WGÚ~ðçdãG_yŒUXÛ’9oÛŸGÿãe^äÏï²»{T¿R …Ux¾ðá³Wþ0Ú·æ^ýx‰ „èH¥Ï–¯ÜI!ÀÕüHðás÷ŽŒaîá}ÅŸ»º›ÝùQÊ”¤$TS'Õ²ïãöí¿uó²w[Ízüð¹Á¹¹·i‚çMÙÕåüPðás£ss¿›ÂC¡«}<<ðá³Ãs?| C±I‘V‹íR‰YoÿʼnY¹ÙçÄìSJÌú 3pì01{JA æŠÖ¶ç±†M„5˜ª{¶„´™A ZàXƒr.ÐвÁ[7}”Ž o-™˜ß²íûd‘I¶´³Ÿ5Ç®m9=Hí)˺Ä #(v6—-s5¥iç_¶ó}»Y½xš¥å % „.\=MîšW4ËEó¬œD]æË›òDêJwe“<ƒYéÎÏ£®nWeé]åZyª”í»*]%Ä„žçBÙ¶¯³•K ÉŽ/·Èêjµý—«„s¯¢®JU?œµÿvÐÎl7Y‹6Ò,5Oœò2;!IsääÉÎäýª´¼¯ \—x“N "c]³Xnt-¶P7{¤iÝ„ÞâjfO—¨=3»_ñ0ݧœ}ºÅ—§’ öÖ!vù¤ÈOÍìŽ÷ä’#úŠU?¡C.«aIˆza±bÊ=yïÎ)ìHuÔd¶Bé¬ÅœDLmN–~ƒ(×Õ÷ô;¸ýT,cõZ2ZÄa)HP©î’c'¦ªdÛñÀ¥Dþé°I”:nÑè Ãkˆ<ûô x×TÜBËÍ¿qE ‰¾ŒA®LчÜyEÁÓ4§31ù¸ÔÌZ¹',Ów½?²T©‚U‘Ö1hgÐq¹êL íîÁ?ÉôD¹ð£»åvV®QÑñÔ‡aØúÂÈ 0‡kôˆÕ¹*Ö&ýóß¾ý›P‹$YæñùqØÊHÖRùt ¾‡N;ñtXÓC(äqãØãô †ˆjCŸ•8¥ª¹7äÔupî>eƒX ¿×l…½÷‹#ò ŒSu„!$9ñèä¢s‹Ÿtª.›«­=$³gÕçzr®ƒv³Â¤OJ«„o©?ÅWKÏ÷P.=iÁ/Á8¬µÒ“1nW$ ?ÜT«Ã\~/Õ†´ï¥,<òà@Ûh&8¸÷ oG8†àZ€%êiÇÀ‚õ¼í=SMØÅ‰lkRÜ~÷$CMª|Í”²<€ýüNùŸº`/Õ]¯@~Ú²-u•c†Lª ¶Ûžvˆ˜ý<±ÞœÑeuP<îÉD„Ï,€™¼ÃrU`CËŸ«‘Ø»ÃM€b#AdUÖ\t™*šQ-½Vv“2€ý¼c?!r>«Ëùš$:ˆHPUHCV>ÐOÝÈR{þ°Ú7´¨süAtÃ÷>Rs5§ŽäÒ_»ºæR^.bÎÁ»:{šý0ï2¬'Çœ¸`¨»¾©Œ~~‰©qW ›>ÓuR¤ôx¶ñ‰ûA$²ABÈž?šiU¿‘˜ÍÑ ÊÍî=v.Ò0¿ƒ¸oz3¼è’ðÝÁ?r°àsñ† `ßÅÔ™ƒPb8pÜjþËáH°77M°b†è‘ͷμ¸Ó3€ãË,™_Úëp,+L§¹M³Y˜×+3:§ž&Ñ2aëG ®”%+k ̦zÑØ£ôdtåcù«Ä¡ ± tãnÔ›ˆkvp‡äâ‘ÜØÞbä í¦»-y2LþÎmÔÛáõŒ~© ºÜ>`gUj™ô2É¢™%aͼ ¹qˆËÜÍÜÓ=dëw|Ïz§EËǧ¬$TŵgÎg*C¼s$1Ò0‘Úü>¼ß>œÉ²Â$‡gï콊½yt¤ýŒýz]N\SÎÉè˜ùð,εÈlÞ=NïïȽͳÆê¦äzbØ)z?Ùˆåûl“]§gÞØ ’ŽÆ[`ƒ n@ÅÌ7ù›âUbºuÝÕKM¿Áÿ¦Ÿø-:=éW*›tjtAP/ÂZêFlù¹ÛzùX¾uçaDm }îë2û/‚ûìgmÿîû”à¾.{!ãi·£P«òypPÏ\Š™µ·áÿö4lßíHÿðáZ™'4öZAŽP8=A õêÆO†"㢮ÁP72ÈIFgÑbôSÌK<#C­ä_!½Öä wÿžý‡óØà)zž§tØðôpƒ ,8? t×D´çeß{ Ø¿VÔ³gÉ×*œÁÈ|ÙÃDOcïP-pg/) -äìõ„FÚ~Ìo¨ôÎC>.­0 ½‰ @Ì>Ȥÿp|xý_à Ž}ûïàÈ©çH¹Z‚»ý¼WÓ:MŽ˼D§K䈨Eæ–ï¼¹%ßB% ¡ãŽjh´bê^à´äFLN“—ÐݲªÖ™{µÎüRµÎ•}.¯ƒ·«²òü+º1µM39óªì²òö&À™ ¢î‚ÐѯªÊãqœŽÚ™µæŸ`ÏÉifupÊÄ™œð½I39g}@(Ô☜&Íä´‡%=»¨¼ò³½1óâê HÃó™dJÓÓ&É[›Gz)9µŽÞÛçsú¯áLfCüÞ¢•æjí½« a¤u§¸9ÈÇ^éUØk¨ÉH?Q²9{M¢:žÐ•(ÎÊnžÀú¶²Oƒ¤Ý%Õ‡˜ÙùùûV˜UÐïfù䤠ãõ+% ê$ÒÈ0ï"î1¹ãžqjÇcƒ+öô YÅ…¾7†"Œ0FÍòx|IÒ}- º˜‰vHÒÂð`žvÜ0ð6†œ0¾_Ì [B&ñ¢|íìžg„ágFØ`fŒ°‰PªCšvK™4Á_L½#'ªóAæ/šVv]ñ3Lú£e?Ž»ðÝlEw3´~žrs—ÜœíÖ{Œcë/ò-{UQ¯Š£ã÷[õçËÞú>—/{Ýê²Ç¿¢é_ÝBCYU‰eEÊQ' ÎŠT÷¨0¯Ú:à Ýs'Ä0Eº`z‡‘êá°Î¯tyÀøÂ#Á÷ŠÎÏÔdÉ•óQ¬Â÷=䛸µ¸š;Y±ÊŠ&Чn„ *0sáÃ@ŸÚ,·º‚˜ãLâ=Ý€u)²pý„"s]6íBº¦»ïÇ·¯Úü².!Ãê¶YЦ6³ yÐÜŠ{7¡tÞ{‹•´Ã‹is¿DÞžÛqÞžCêþ9oÿ”òöü…Æ1œþ\ðEš‰`_%ôœhž1i5òVSµüê$¥/õrÓ0¹ËbbY°ÆðM²ú?+¹{N‚9<Û•õ’†RâèŒÈ®ëQÕîJ_|\‹Súâ{™¼5l,•…®uí™Äñ~…º¸‰Nïv6iQñ<Ç í‡”Lío&*ž¨Úó+EÅqïÿ.Qñ¼lÛ„¨x^ƒ.#ˆ-bÔ†à4Й¨bøŽø$b\*«Só8¼”`fA"\|~ŽÐöлXio2Zaý¿€îIžÏg»G '±Y¿ôÄÑb?ì nRÎÝmŸ1nÚü™ô t§/"½œ¡ŠzŽêì•m`ðf½âšÖˆžüÓ=†íE†ú £2`JvM‚ݺgOÏzãôXvmϲkŸæ¨WPÜVÕ[¨mUsäßÌT× hôJ ¯M±îÚ¸¤»FjÑFZ®ƒÞ8jOÚ3=µÖØÈº(’3iÙ5P¹ìÖÂ|ü~«þ¼ Ì_ßç"¤~Õ‰ìÔÙ©ÎÉI[Œ^ÚÝrl²P®|¿U^2á>æ×å9ý3f<ü+óâé^<˜ç 2ùâ`á;“/ßÞ½{u„c×E4PIHš2ëg™lÝlðã˜îÒ&z“ÔOÛÿœ#yÞÖÝöep•!N¥H…½Rae¥n™@¹øÐíï«CçRøÔ‹Õ•%Êy laÏõtóÖþÏ}žû,Y1iáä»(êKìtà7ÕNuݯŠoì ŽwoíœÎŸý¿" ñUY¥ôrŠ<†øÚœ6Iß¹¯ê¤‡&oB¸¯ÈÍ[7·3œGEä q‘0Û«ñîø–Ù6S+Þe&W¨Á3€°+ˆ>‚ùù‰ x_ÿôêm™‘ðÁþÁ2]ø%K‹j&oýc7n áUWO5è1 Oˆªx6Wê÷‰/BC`S0< rØý³*)¦š?E'Þlçu;W`„kOŽçŠk!×í¡ö Å-÷”ït3ª½R‘Y HxP zýØõ‡ÝG¾¤þðøÿ=¡¼‡¿8s5ÃiK÷Eâ7¬¶l÷v-ýc”Ý™B³ŠÀü<ížä¾×˜ŠÇRš®¶77Ç'  ¥ã—kb°f\G'¡RµXC!ÚÁ=™Ü»û¤ä“T,Œ”ï·8ôÞ¶õ@·2tõb«ØMÂn4n™fö‡R%L¦øXⱡ·Fÿ2o zëÅ âê®1?ô¬û¹Èû:!õøNõ)E@á½Muû:茅£šq”w«íÈ9ØãC¡¶c|¬¹»#ÙÒ± ÐÆ%F.l{ss53¹æn›Ê,8nÄeb8âN¨?X7î´n¸±Y4Ü0¡áܼHG¹Kn¸G…GÇUÂ$¬lC× \ýUh´{u²Ü¸zKk¼éßQ•’:´ëÐ-ÃÉÆ&,ü‰.§@-Æ!š¡9¢×§¤n…Ù±Z•ÌÑàqMXeÍ"rzq„Ɖ89cŸÉ#GTÖ•©ŒÝðDô…›Õ¢;¿RšTTvzFîͦl é ƒ¯?õÜ:ZɾA¿ƒ¿ç*– H;}ÔðŽ(÷FCEPÓùæAQ¹— "ýÓ<,(ò}[®IØÁ÷‚ràŸ— #«û\¾®+òã™ë p¿¨ÈŸ5ÅúzhpÕ:^}ë2}Š,±6–µÙ uaÜ`uuÔ¿ƒUÈÐðI@­’„_x$Ïrc3É 4KûdzõÉ”ˆ¥è…޲)Û²˜¥-C ÎõÎN"X[¥;~5榤ï:ÆÁ9p,˜Òqú*OÀà‡áÊœ+×pE®²®M¯ÈF-ɼ"ß=ƒç¤eøz Ìѵw Îé8w*úfÎኵUØÞ&éY~‘1r¥’v­³ú¹ó ܩɳ°\UÛ.uÖ÷ÏT0ëTf`Hxñ¹×¡!¦*×±ÀÅ#f¨ÂK66Œ©t5¶Zé`Œâª”Ú9GŠšð™ ŠÃ¥Q%›Y—Ï­Pr ~ø6©ÎëAãÂÃZ¹ó0sèõeX˨1 n1<˜$:É8<£Ñ¤å OÄ̃êNÁ0C¸|›{"¦œ`Ãì®·Òp"0Êý°}pôpå…£{¥áé?_C¹ ôØ0’Š žGƒj sú¶Æuo+ñP±oZu ÖÚËQ/8þÞa»Í{=ÈwíÈP¤ˆ¥ýƒ %à ŸA†O d(_ذ!üõ«23ÒI­iË>дäªÇ{®” l}-ùÐ}Ð)>Ü‘rºÞäÙ†ò¥kØj˜Ø8ò†"Ü?¹¯Õ F½76¶ ôV7Wúk®ˆØ««×Ñ{Clo¥º})XÆ5N™Rl··Ÿí±nEo],ÃbåšÛ<þ׫wFm~ï'œ+±¿n¶ÀY-I¯<”»ßÞ!@MˆîhHèàL¹¼ö+HVèt /¹ž?ÉI¾«Ào@„ ¾] ;)ùÀ €^ü줈gÐ9Έ“ï]W½vê¶7äÁÆË4w»~’š$z§ÿòªí¸I¨êÔlì×¹Ÿ±£4ðÕã± Ê(Û÷ïï>Òh²ˆ,WÌ!ÉбÖ.D¼ ¦ŸÖU‘]V/a"‰ .úÔg·¦ÛÙéîiGZ DsQž£3%<¸8¿³&‡\9ÃÍ“ï~ÞSøVÔÃ}‡ åe”ÀNwè„¥~Kß¼BŽ#6 y¥y70ž uÀR© ß%ZCå8ìð dxÍðÖ Ž×¡ß¤?3í7/ÑŽä§+XƒýÒVË[s«w´#Î|Ýr —ã @£> =cé”u¤„Ž~vF —CŸ:žV…ÆÙt ‡° œ¨Q'š§Ïôž­0Ä7@v„¹aeÇÝ&q‰šOö:ÓSÀ-©_°oa^Cœ T å¨žîÆˆN,¬x'ªV T­˜È?JG.¡DYµtäµ ø[_ªi{ñþBÎÏNÆm‹ÔxµÑ¸îjV`Sǻ݉–‹ØÞ€tkë§0öÞÓ*m¼‚´x|.—ó ÙÈVì¢Ôc߯ž €ôM0¯ þ žèŠd3x˜ŠÔ×Õs†EÖ§„Xñã54Éæ iìvš¬u¬É:êXØ1‘¢V3¦Üä½b½M”¤”]}ÛÕ;liX–öARŒêÆðìѩŮú;Žf#‰ É0WáÖ^ !ŠdŒ„j‘+0|¿U^#…ûüj‚ͺoÿŠïŸëÑ8+E°©‹b‰`#ÖŽ›¢é¨«”«ÖŽÜâÇôo°|`-t€Ôè=WÝÊÁO%„‹r”8íÚ5ÒŒ‰H3 :¥ºâðwRý°! É_Þרc–eyIk£+ŒN”uV¤¢Ê®h=:Q—›™p}ip›ù”£^µ‘Ó#"Ãäô8hÅz3“¬aH°ž~‹2ƒ²0[5ÜÒÆhÖ?kôHUWàO:¨²n"X=;ÃæÐðk'ä5Î|M^õ¼ßüw~³„°ÍC!ÿÌFVr,¸“ AAþæðôñg}2aîÙçÄãǃ÷y¤–¥¶\ïˆrØ6üi.ëˆ öùÕxøº¥ ÿŠÆÃë´ 6&214U„¿íCV¬›ºtÅâ¸@þƒbUì¸âSÛƒJ€z›é5½“/âþÕY[.qmÆÅÓØsú©&1ÕyÛ]`ÖâQbܩ芵2l]UY¶cáv¢2…*Uö_Œ*U,}F•>%T©úv,U›÷Ýý_Ã**¹3$ Ì9ûˆ¹|¨â§^LîžëØœ3×3.Øx8=¢ÁÚƒè:‰!cìx']® ÝÎ{Ï.C•`øö/ þ„ºQ#lžù†q~³éMRÞt¨üI„pêú‰0̰á †ü¸¬sçﻲʞ1ô}ìPmº2E¬Àû+`™£TdÞønï¤Ç÷ÔpôqŽ«lðµoÓ±Gùu1À+ d ޱ tÛÍBÊ]àÜZot¦£oÅD·"P ¥ž­ z¶œ¤Ú]+åŠCÞ(y{åwH˜   _ŠÂs¾Ô©d!Ê}ã|8xNä OVؤԬ¹±Þ&/Å7~Ť¥ç=:U]/=/Eµ ¿rHÌûô€0I&Ÿ¢¯K&º¹±žÉèGZ‘cipô^"DzºÏåQX³.ÇB¿¢ÓÉfAŽ¥m»D_:Þ±ÖÛä}™èÒ½ –Iì‰ç˜k£°`G…Q†aE‰z²ú‡²ß›Ù,àRSOÎÃUˆZ‚,m>d©»Å~óÖþ×_ÞËRÏ¢Ó èv¸S¸çEª,¸E Jª² +%¸–]­ÊêMܲa‡ 7Y¸¿UUÑ›Èn’Ws#=ƒêÂK¤¯ø“ì$ ¹º©y§¯·Ï6ëJ0°î¸FtÝrkBǵ²î+,ŸLkϵ ›'Ùs-3Ïx®MÊsmdϵ‘=×Z›ÿÓ¯-˜®¹ œëZWa¨Êm×dð]£¿ûêŸm¼æÏƒœ×í¼¶wèpÙ`Ôå%}nžñ^+»Þ16_«Ð¼ZÙ|mJ›¯È|moÖÜ×´ùšSšË‹Ü×Í×Ì¥îk`œ*2;æîk›È}Íü:÷5m¾fª¼ýg›¯UzÑ©\4v˜»ú‹î’+€TŸHí–m›ýè;÷‘g”<ŠeÞ©.þ%¶ÁáÆÓAg/:ÑtýuÏûXp¾z»¾öC(žô†udêê‚êªé³”TPã’6i´jgQ‹ÎZÉb0³Ð,Rb-GRy÷Ñx[8Q!*äÌgã!e%g3Âb]K¾ßª?/AÎV÷¹øîïÄèp"òì44ÎíZ*ÁÂýDú4*(ä '³Ó£| É“]DIwF@LèçæÕˆÇø&@QtÚDu7è,KŽD˜½„·” ðgê&yARF‘CzWØ4°6µµv,ࣙ¡5`©Ò»”·Ø×æ—ÃBÂf÷6käûÀu„ào€íC}/ä:ßÄ¢‰@-¾&c/ÊA‡moª{ÊžB vD,{ œãéìme¬ìqÞPVû„y”ðéñÑ Ÿ™'|$u#â\$Í$©NJ÷úù½Ÿ4iQl€)¬h²Išqrä]¸VÞíÁ¥K†Ô`â|iâ|‰ÉÑ©t‰ºçP{UåM$1Ä‚ó.cê|Æ4¾Ü¯Œ°'—1íS~Õ5J|~ÕEåé4ÿ¤”© fŽO%e*¨Mä™2m—_2}R]?&HÛÌ–P %ò¨{—øH[½w‡#/OÖœ¼ºC2™ˆ- Ÿ³@OÜ$pÐ-ïJÌ Ho_ë¾° Û°dÅ=cGþÆÀ`!¯zbž=Àq“  n8¬®Y?œŠêzMg—ȰÇžFH€ºÙî«»-¥ lyMDÀËBb\¨R¯§³kÍp?´g…ì,çHzÀDšïtïwÌÁÓ­í| 0ž<ÁÓÇÌzŒ^s’t¼e‹6Ýœç2¡b¿¦g¯s¦ôæ• ãê"ÔØ1"Ô(ôú”¡æ…&JwPþ@‰p%fàteÈm5‰"* M.ÍÙ9ëz–cÏàÙÂPƒôé8Ë1/¬ ù,ÇüêºõÌý3sj ûTRîœûf89jç?/¬[¤I;ðñJQè õÒµ!ÅáÙ›´âËÕ†¸— ÃLÍÚù;Rœ¼‚f.|¿U^ÂåYÝçò§_çòЯhFu¿Àå©m"»âüzèHd¹ìS\ž¬Ê×¹Ag«(I™r9ÉŠ»+æ…à†{'‰ÛH3 D¯tOð!ì öâ¬û™ÀWYa²­ôÃišií;I ‚X±Õ]âÿ‚-ûÔùãÒé:òoÕ…úâਲ਼˜  Š>1réíò ë^Ë”ÍEêe—Tï,»¤z'ÞèX«œÁ[cLoÖM½ÒÈÊfáxS‡E°Ü$;7¡ ˆŸ+ ø~«þ¼„°ºÏ T¶³u ýŒžêí}Ü3ÖS_ñ6ÍÏi1W¥!UqnŽeU(Å,Lù¸AZ+VÉx¯cYú¡˜ö ˪Èÿ*´ÓÃ}fÖP#GéPò%: |G1â´¡éþ?DûãÝ[xé}QÄG0øaà4¤Ž/!Aœ†2Äfæ ˆ±k‡@cÏKzkqî$«slz™¢w]´íE’N†øQ‘½KÝôÌÞ~Ddïªk—–!—x“E½Íß¹wkÿŹw é÷çÜûSʽÛ¤Q9ƒ[í-O»ikR2)#¼µlUü1z¥ø}œL#neT¿»·&:Á»vfYràøJ‰ô6êN@–Ñèd6Ðlp3ìÕ¬w$ÂLV1U]„2D*h¬;,¯ƒˆKCø=ÿÊ u®ˆ¯ë™3'QAOùÓÀÖTžٹO<€‘~WRN;©”ÏÚ? ôY€Â…SÝ& ›Ë¨90=܉²¹Óc÷ßoeD¶þvQ¶^ É´j=±T°çIäë¢éjý>©/k}£’©µLý~&Ká9Ô¿RV%_;¢$M¯@Äù§Osv·™-*¤Á}A JžrCïBI¾k VÔÃvýäwO÷°Ôý£›šPT˜|€)ûŠ“ çùšýHˆ[”ê2;‘ ÂN+)Æ #7ZeÈF¹èåiˆq2ë‚›‚9¢€wüÁyèº&ȸ¢¾·á[T=â¹Â>¤÷÷ôä¼²éwƒ­:Kú¤nI4o{ [é9Öo°•¿íO,pîsä×ÿjÎý¢¦išzïN‡.Dk {¦ p'èíÕÛEÏÜ=ÿŒ´¢‡äþÈÈ–ÍÏ‘K°ü†8Rží þ—W5ÔG F@ß¹Ànpnµ×òš<ã„Î"ò/\+xóÊ4ñ°`~æ3&> ¤´úÔ1‚”gϹ*‘½·qþÞþTô,î ê úÓÜïÛ$e‚þµáþý#ªñþj.áÞx‰jƒ¹¬Öß…P’Kò¬ÝQøç{œ„K–”bÿtœô…¶X|2ƒ¨LÚ÷'`” qq‹e†HJó\{ X Ë#’[â<:Ѫ‘Në áÿ:<ÜØ‚Ef)ÄEºM¢æà¾~¸Y˺$u¾í;{›éã5 /Ü $¸DsÔ%Ƨ‡wDýz`¶-Ø=ˆJwÅyfœFÔÞüá?¯&Á1ñ÷Ñó¿ÃçüõÓÕ¸&%*ï½óâŒÃ‡W&¨î·®<ˆ½{¥ñ\t¾&ù1—œ¹OEÝæM]Ðï,X¦êZþ i3¹v‚.Ìöy\Ñ”M™ª-áÇs\Q#X€õhxICxQ=;Ip¼·ëÔ™é¾cõCÉ3×l¬ Xr‚<™âf&·nï—´þG%o†cСpÜ>LÜÒ¦ÄÍj·9~¿u^¤ùíókìÈræ(¿ üíyì±/íˆÜ»ò8¿è;?Øq¸£r«“i"OõŠË\—ïžñ¯xru†ôýp<}¤Ñ¡¦noL+6xü±ì î‡lÁ婿ߪ?/˜yÃ…}.-éäÙ3Ω|jž Œ{ô³†,äDö]ÙüòH;ÖôÅÀÏêflSøygÿÅøyúgüüSÂÏ»v3²§‰…oGŽªÌz|DÍú Ë÷*ÏÇYæ^Á‰·¦W£ {ñgÚ¼jÿ@›×DÚ¼›í¦"m^üpþBoƒÄ/´¤,êùAJ~9R%xàÀp­ö¯°úìoðÃ¥¼ÝRû×ø(ªI ~>\Úœ¬Õù7(ÔS.ÿ>H˻߷ÑwUί>\Ú2LÇ0E7×—r3"Üñ‡‹fD5×À”Xôý%Nà<'òNäÆ~aåßßJܵÐÒSÏï:©]ÑÈè9ÿq2¬²Û›²Ê/ä'7 w­óöâ]ù^É®äì³H¯+[RÑJtåy®èuÙŒ^gãwØdå½Ï+3—Xô%n‡—%H9jHƒäq°9&dµaé7–ÍâžZ†°`÷ŽkÁE¦ÿ‘]¸p´fÕK4=ºðÄUf¹È!WP6#¡U² Ç•ËðB£ˆ‘„@ƒjÃ<‡Ùé'ŒÊÍ[uªM5¸ØoÃ&Ú8Ëé ʈWwÓÛÓöä *ØV`cßáý£ÔhFR}ܾ“ƯØNÔ;¢óôôðþIFê›G*!ªìõIñ”ê‚^TYÎC(€I?ª…9°6þ‰)šû—Iô»œp)-â'Î$RªiÑêóœ6‡#ÿHiÄ*eã;c yDHS¨ìÇ-¸hv°±Ÿ»ÆÃ¢ =¾…Ò85Íh8÷L_Gpa->‡ŽJøì&ŠIÞVíê;ÖçáéÔ±Y¦3w9…>ió:פ–ÈA¤’çÑ‚Q LÆ»·À½£¢ÇÄ¿:E¿J-~]ÍxË-‰„Râ~BAÎgÎÆàÙ”òÆÒÙl–φWgg‘æÆ€ìæ±š¶VÜÒ ‹TaM^ô%í bìœà">ÑÐ_x3°W»„æ41W¾,ç%%v¾*n߉31T((e“#äØñW¬m”—ê Å»öï O¤x4 \Ð )Žš¦”V÷jäÛ‚¯—:B¢(¿RB꣫PU*¡£îƒÃ&M-Fk,¨ŽQ“h©# 0 ÉìcZ‘-T“dÅ•WŸãRÖV§’Í\\Ý«ËûÊ „Ðy½!6 ®cäÂOÎr6 ¯OpÏí —P^÷*òl Þ–ª1J<~†å ‡Ç1&.RŸq UÆé®#3 œî:É®H!aUù[½¼þúí\½iE½¬º$8Xua¹]=g¢òõñ,h{®H{NÆËÔäUËÔ6Ëâëu·jƒßoÕŸ‡kû¼8,×;6ég‚šO¹„¶ùRg<ɦMЮ7mæE¿K!˜´Ü¹ E½÷jÀdÆ¥¯ºØà‡‹–^HåÚyÜÄ˲›>\çÕ„‚XÏÉÞÍäi¢K_Vw À³¶ëµ®yN™É =ýˆn<‡ÜL°ÓM¸1e—ÜÐM.ÊÙö¢mž“m‡M3ì¹p; Äø•Êè¬× Ù32âQŽû„„V%÷މ1N p•YÂ*j{e‹RVŽ«Rò3eƒ¸ÒwD¶¥Ô*T0.³Pðb'&PŽ-T@¤‚˜¿g4!«B ³y.¸¦ˆ]pnœw¹ç£°¹<(y>‰ÙX]Ñ/.eŒ¼´ðL~GÏLÎN»ªF…G"¿èµ)\pÈÂè,žfñ¸A€zrÔÍÄ@LY¬‘*ŒF¥ËÇ/ä\àh+ìNv¡ëüÛ‹%‰û¤ðØÿ¤„·é~^x»,S sų\¬"'k@µØv±´Âxé‹CÐ%Sðâr¼À_C!$PçÙFí¶E[«êg¬êjo;W_jUîó«hkù*m!ÏG[Ë™¶ö•zÉqœï‡óAóÕ¦€¯¶©ÚºX«pÂ÷r1øç%°ºÏÅJþ 9O} F¨ä r õƒCPà„aùâîîxCß׉¥.ó.n'¯úXB_.‡TnÃðÁŠ˜Ε®K¬†1-¦OÐbìÒÜgð`?ëúÏÀç<ôÙ¯p¥#Ü!(©5sW:õP…)]‹ ÷í=â¶Áä5$Ãm‰;7!³LûÚ¼¹™¸0å]êìøÎyÈmc¶Ü>r°]ðRC"VTÿÁ$yò*O¤<\9På<½î¦Gª»p­sM¤¢z¿:¾žçà €¥)îXP¶eÆã0-kÌáÒ¡F{³ÞooàŒ$}.¬cD!2W3â®LLÍǨZ¤*ЇPÈ‚miC†‘ÊŒ¤nºæŽ:xñæ í üX¢"5ëEkò­Ä‘A ³WÛîáäáAÍ:ì u^©ù5ð*@ІÜY »€ ;yT]¬[bã÷[õç%iôê>/XŠõ4š~Æ«aàé4º,Ê0†ûôû§én÷ÅŽuª.á„þgë)4lL‘¡þâaðû¥ÃÜo?ÈaìÏ­¾×Å7¡!ñ‘ˆXÑ"_Åè—d¿7³#á9Ù8-8R•µêHfv$ø>}¤»£>’)ê<_=§Úó5«»{kt§Î©É›Õ#ÙïÍl¸‡Ý8è»fùbá„ ¦-òÍÒaì‚%‡éʰ×,ÕÝ䮕ýêKiÃE™Ñ=J³ê ï9ÑCˆÂEJïY­/ï¿ ~Z*7j×"µîÞp§r§Ã=Î^­[³÷Þ%æ€UI/„Hí.3»"947ä"Tà~mp¿võH"/uƒ­ëÇ×ÒNÚÛÝ­Í n>:™ƒqFà  Öã÷ñè4Šª#Xñ ~¡rºgD3Oú,Á<ésû/€rÀ€>@Ÿ”¿rÏ)– ZÕ¬žZ€v€ Õ6Áó…|Èøùšô áŸtúÄ$L¤G´Gõ£.ƵîeÌH8€éãœI§ Ø…)a Œ7ðÁ·êá¸c†ˆ6ź62çðo ³›ˆ¬çŚ·¤AD­ììhàû™+½Ç€t‹1Š€9m¶P‹®‚ĺàù” PNxÄÀ9ƒyÃÓý{¢BN˸¥£ØÍ¢ÿ`Tv,öŽå;nŽï™žéî«Wì†ëùé·`æ x×ùqØ(æEŒØÝS)Á€ó©à»¸s›mD"„$ÛP¸f„Þl¢Ãßl±N:g ïüÁ‰’`àsOF Óþ£‹}Ríh‡D?3GPxè$„ýÇ]ŒÓØI¿Nƒ),f²åâàŽ"e,öZËŽ{ê :´/,¼ê_K/15í¡þ Ò›vس^hnÿA]Æ Ô­(C#© €žhœG $6ã‘Ç [xóÚ®¢ŸÔ—ø€]YQfçmQ!YŠÌåÇ…”>¢€'Ußÿ³[?±œÜþˆ ]õQ—Ïë¢XH¶ ‰œ3‘3Suƒgóã†ø:RƯó°­é·¯)ƒÝK.Î$xcDQ !ªÛO {|OOX P\ëXYjwý2ÓISc&T[Ù¯Çuo nו)&ÐV~L¾û®û.æ@ÍD³ P!jKÊcù™<Š9X5j ìóà/@tW‰Qò3Š•#1ÊÌݢȺy¡æ+$•€jyÙ´&AˆjYâ¨/z÷EÃæÇøƒã@fmM/HšŒ4y,·nQ¸I7Ú¬jñC“hú«:ÆqÕþ]«ÉO†ö‡—ö‡ØØ®âê}WšÙ)€×ëÚ!läáaÊ ezÃCà‡³CØcd•?#pŒ¼/æÇ€—Nc +a”Qô‰Ó€×^ Y'F‡¨²|ùJ†Ù•ÔY3?|¸8 Y©Ó ¿Â?ýåôÞÊë ~ò£T»ÿ—Ç{w€ƒ¦û‰#³™²­cè’xUôÂ{Àû;L_/kÄ´‘åÒêmšÍ…X'Ûª¬Í–!¶Ÿõ½F *oë5hTbcÙ¼èæGŸv^Um$°ö3Ù¥ìªå 0‡'Uuý L”©ê¾\:©N"ÔI5}·Ž û(]vét3-CzðÀ¤‡7* é}¡{Mͼ×7™OŒË›¼ƒ˜êAiÆŒK­|EÝæócz˜Ð“É^K§Ž\²å>ÇNêÜ[1$º{œÞß‘>3®°¨¶É½R²bïIœæ„2€* ’>.©ÊYÁGçœ%ÕÄF{’ „ç2&+¼¤ìÇuYÖ^Ô=e†´æö äj*ø±C*%=†›N X÷1Šup(V‹:µO€Wc¨£EÛ+þ̕Ϳä™Âþ‹±“à“ÏØÉ§„/ÄNð1Ay’jÙTµ¤uÎñ _3J7fò ™è ÙÓ â?a$ó¶Œ8Ä(Ϋô!M8Ûbi®¾ÎFÎÖ3fð¬ åvQuâ píhR0mŒÒ¾Á—_ ƒ5ëÃëq{â·8S¦æ! ³ô ù^§Q Vz$+ÆÏ‚²êÊBl&ãðûwjÈE¥[¯ù:øGHD^øörÁáe:I½è)Ú§ž"Gê5=Vå)ªO›Á­aׯÌä¹–ÁíÝùèæóuq5Âg°ŽÅ†ßPé,#êXåAÀ€ÃÓ˜¸ò‘xfÇÅ[ÏCÃKq‹Pµâ‘=ZÿÌŽº´ÂJ›z3ÃJËå7 ‘j¯ƒ;ÊúJ­¯fB5ôû»;‹¨QOï^?½ÉWMŸõ¨pÛÇR«‹ È~ÈY e´õZžßNý;u«Dù¨ B8º‰3è85£ GU6ñpTÑpS¦ŽEÔ–YŠþ¦…³dG³$§úÆy!༮òY›=‚µêÉ×øaÜ=Á¸Ø,Áž¼}Th9#¿=rK0¨‘~ð§ÖPßúš9ë±à-q-*F Yš„‘I¿òÀ­´"ÞòpŒL¡Og¶ 0³F\œÑ`m@1ˆ› 87ùâ,º}˜Î÷¤:*3½δßq¢"ORœªB]UŒ£½¸ÌDa d~çÉs‘0†Á)llŸ7¤Ï¼ZHºòNán%ÌÜ=•\7õZæqÎP­D^½…¡Q+N¶»Ý‰Ú0›L Éš+EUÂSG†°Ä •³ò¥!â8`9„<3ÞPÿªp+5Õ*xÞ§DŠ:G|ztÍcBÄ•1UòåG ½@¼ÔÊLí”@.^šÀw(PN+òVËå˜$Ý^‘ÏÝ y/¢E9t~uÉÀ;ºìK^øt©îD€¹¤F788gÒn¯ÈÞ‚«jA-÷ƒN{ZáV펮3|°“+Ú(4Ű7h‹Ýê¬{}>b§9^Â9"Þ„ÿMUÈ¢C ០dΡÏìþa?³µ8D†EH·ì!Ñe~3ˆè“’Ùé40}ñ©=àÎ5Ðßò ´ç·y¢rT|Œ¿ˆŸÜÈAïƒý½^e!è¸úæiê­Þa:+Ž8æj?l]×S‰Æ€XÄÈ¥é)hR³3+)×Üy•šB‹ï˨ÊóJxÞ×6Èø´{½½›Æ¬ †Ä8o‘}SªÈÃN`ÖÂÝ( 4Ÿ°¸ˆ{ÐKÏ 5^Â=A{ûD|´ïð=¾rPäGtâ‰çÄå-êE‘b:Y WdRÌEׯOËC0ïE&I”­dñ;ƒ‡ÐG6 ÕÄ]¢-™z°&:,ù+Ø 7w[î]‹Egì¹ì©/\.©«4DD¥SßíýWSjm‰Œ·ü†u¿dÁ¿?Ý '7›ÁÓ¸“ŠG\î‰A?{™lÚµ´æ. ŒÚÔ²xJä܉ÆzN°ŸÖ£Ö>‚(i· xf¡Ó ÃÝþš+Õ;TÝ|ŠÏÞ^Ï„¢¾ ¸@ò;Ï}²ú|œ×¤;†²ÚešuIûÙÐhš '"¼ŸÓã u˃r¨ñŒ¸ Ѥ`Õç=m*ê,Û›¹!Ö.œQÄ—›ñ >ôÿæÏ?|ýǯÿ*g>ÒÄ.í¿xQŒ g”`.MÎ/‚¨xTÒ´Û!>I…ÕîM9ˆ@ëããœà–N?Åàæ÷P÷­•Í”Í~2C?² ^d7 ³`ñ¢âMÜOø°*–h‚~ƒ-þM?ñÛˆÁ ®pùÔð‚ìP8®àH\Áýœ+ˆ¨P†deœß!Ô>?I*Ê)®´aÂ÷[õçzYÔ<¿Ï Ê¢Õz&ýLnÞ×E+ìt1³>Lhœ×E±cø+€ä±QЧsP­\u4Ýëb*)v&»Yôøv\¬’‚9wVI šsã‡bñM:\+ó6v ßTtìHc@4€ß8|¯ësÔxóp¼9þ¼½ãºZM`LÀÛðâ°{‚ÆwÁ+}&j ³î:/’ƬÚáÛĶàuQÌÍQùŒe“²,|¹æ1Oå^nU®ª}‘BðKû/FðKñ?#øŸ‚_þŠöWRK ÌSótû«zËjt¹1FÊPµ;' 4TZ)Ðv¡|;½±³2sžX‡ ohÍ ðoÜÕ>ÈœìÈÏ"Íøáª D#äA‚FÎt*ì-3›qK­šYRkAÜ„h\ÊÌ]4Àøºæª­Þ}ŒÝÉ݆<ÙB.¤e{ì~Ë(éià¤}ÔBè­²!Áã6Øn¡sx¦–²Ü?Á ŸóÉ­fP ã\¨/ئ­gBMØÆ‚5ÇØ,öà]ô´³£è EFbbèÐ'äY"˜?b”îòDÉŠd‡í Í__Vú\b£Áaòiôø )»Ô,LK5¯¬4èå~^ $Gl)!ÑU´A·±z;Ø¡9/¬lî…•ÒÞ…âÿÀVc9—<Ð^'FØ‘HÐß=Šõ˜÷µJ‹‚äu³Þu ßoY,«¹°ëØí³Iìó‚`¬~Fõ&à¨ÕiŽZîi³ÙÔ9µä]ž¥8jyÙ<ÃQ³[5<$Ì®µ Ž”ˆºŒ‹ºD«À¨K‡;ƒòYçø†c ð’r.t“nÆ1áMf¶ m1²Èã°ÀCÞ†€tåÁ/ÐìÝ<ÿZ Q^… 0å„1"·z~Tìñ*7x™î§Ÿ¨‹,xlÌçODÂÑ:áöΉ°€–©ù4€ó4€×!…k§=s`ìj5Gü› î}Ô»îO¸ÈO(zyë:°B3rÆÌ:¥„–nÄèépõq°ªóô`ÇÐfÕÈè5öæf>MIþ7‘•⦳©=~§å]ð´Áò¤y,UypÄYW>RÕ##%'UÙ"ª7D©ùÂÃp¿Ff;ñM …‰MaW8:Üì‡ñ9æZÚ—vºvK°¯í0í´" ¤ºãÄí5±³f[â¶fád äÓ¤g„Ú·»Ì®œâ ÀpÀiçED>EÕÃïä•ñ†©ÆåçZ ŒJìU‚qOàEò&dt–)<¨²ÿb<¨Hè3ô)áAÕóx®6Ü®¬ÜYk–6\X·a»…=^°j·ë«6þˆÀüšÝ¦°$šåÜÖjÀ6qúYšÞ|ÿ£‰ÅÂÜ++i3=LvµÎ³Ì}A¥}wêÚ÷€Ú3| Û?ÊFÑøQ’*Ç9@/ðÓÃôø+š>ò"kf¸2ü’|_æù¨œWRC˜9!vYf|l0O·ûÁ&‰ÁèØàZ¡ÏTE ƒ€ °ìo­Í¹tŽWâ¿C­vRŨ¤MÑÜS’ûH¼È2f ŽwÆyÌàôös‹šÚ.ó¸oˆçÅÀ€þ^áˆ? ÊM&Ež“î0á³’FÏ Aß;p×±NaWTt ÙÝ}(í¾»z÷@¡²Nñ¯ƒÃ@ÇP*˜x^ˆ¦!1¤rì G 3ÆÚlÇaAF†[*¨±ø~ ¼B­G$y\dõHAIQbÍFµ@Ýö èÛa•r(2OØácÛ±·XØH~ˉ©<œl±õôþn³<øvÐ1ÅT¾U¬âXÔØI¬ï܈7nbˆp»Ìþ sx/ 5ùû@÷^¨Ax¦õ ò¦Ï£)¤ùAîÙ15¶¬ƒ4PÃ3TjÛ.cæ;òÙL JÁôêàƒnqª¥\Hóœzê‰Oݰ»ÍñTh˜9¹ß§“{Gv7oQ"“ýÒ¡äï­ÓXB G_oÑ›´±9Œ}C>O #‰ÈltÍ7ӈߺ}¶ßáäA;¤PðÔðmèIHuJËNzÜãH7c»¦  {Ý_¹"ŽÃ£w¶ÃÞd¢|:-ƒaŽ«3dÄ€7O§“Ü›8Ö§ –"X¥Ðé#÷ìØ”È’pÇ+“ÄFíP"Ž Q#šÚñ'ž B|Fø\Ø0Þ¥k¸À¹ãtïKn«9]$º­õ„Ms ¬jY¨½ ›ã`fCénŒMªlþú`‡™¯úØ0¸VI/k—Ñ$˜ùîOB|´k‚Ïÿí»¿~û$©_¡D»?BQyêE[´ü¹ÁÏ¿ÿúÛ?PFþÓ«kBÆ&ÿ“ž?b"ü&ßð›l¢WyT0Ýa ¦<»Œš&žse/‡ÎA©#%uÓáÒá…©ÃÔ’ªm„Ûf Uâø¸Îdmmü[Wi]ÛÀ ¦ÊúÔŠ…ÏW¬ÒD²¶€ž™?R@²âÿ2š°Š„Ólš™s›ghþrÀND¯Z[•E·Jæï·êÏK4ÕW÷yAöÒ­ªÖòϪµÝ‚¦z•·sÕÚïìFè\›’T¯º¶ Ç™÷;nñc|È”ÆY#ëíW5ª¾+føáÅuÖµ3‚:)0°¤QPçý¼³?¼X_ .úyc?~x±¾@]eÙüU–]  `S¬HœÞfô 4¦¶ÿb4¦@æ3ó)¡1õìСíØOgögzÛͥȽ“Hk&xñ€XÑ ^W”Tš¾Z—?ÐÇ6mÿ±„MŸ•+zNô@pˆL´Ûcí¼ìKU£˜Í°6€ÀMfN‡Fxe‘(TV/°Ð†uv-fŽÊñŠÎÞ_üA5 ±« ËdU;)CQ$#ÕX-5ˆ¨ƒ™:û¨‡–·£ÞQ„a‰½5a?"5Õe, ÁqÊ«ãöÁ®œÛ MÐÀ<ÄWóµfZHã™4-¢TzGd‚1µpèöÚ‡œºD„¶$5í-ÜBLG°^÷ƒåtöÞ,öº’}ð8`½Ñ׉éÌÚ¥Žt©{o~å2â°¯ÉHOˆr†àÈ5&eÜÙçÒx5Íz=MÜïÏd¦XdØŽóŃ÷†r­“æòÞIo9`~uïd‘×Ý?³wÒæ…å?®w’$‡°¢·W­qÒãh£aÉAÆáÑ÷íâ°w¥PÁANÔ‘—ªñ§èŽP÷+H߈p¡¬–ºß·G{¤"ôu0äAüÛ\cÍöJÿx ´G0é¦öCý/pg®¸Ù·¨•{A*H¿ŽØã¥:½¦ ‘ ÇáÓãi‚ËÓc™ª4I*EÚ57ÄDÐö,ÚœT'á:¡¥‰Û ˆßÖdÕàû­úóYµÕ}^rô«)ÿL@YëÓ)GÑ—u:倮EH)³¾L$e‘ªY.›à?ÎyCz6kBM«z¦iÎÑnµGÈÁþ!‰À7|=0ÍáÀþ_—.MTY­B‚!r>ÌèûÄY:^¥¶Øõ­Ü§j·E%ûÎìèµDò-<û‰_HþAd+ÀT·åë&Âó[êʽ [_ óCáÜROnñøÜöfÐÓŽKÑF°É¿üÀèdY9YÇÑín_ BÜî¶ã“o©‰×.¡G²ûv½×δÑFK?‘\3ÝÔ7Zÿ;ÞTŸ=þÍÝÓŽÛ¸0Ú’ÆjÝè¿ßº?/3 ÷ùUrźýèhˆ\ñŒÜ7ÿû;˜Õ︦[ãÉüž¯ÿ¼äÚW÷¹xÒ)žóŽ£Ÿi{#“N±è×6‰(%ìVê‹"eWÕj·nðc|Äy©Vo·^«­K°Å¼úÃ7ß~íRw¬´Ù:lïi+›ù‡f·ô#UYÎ»Ž” ìX‡þ¶´c]FŽ8û»íH­J1HP§@‚Æþ‹A‚p‚Ï Á§4HpG¯Êß°\à~ºÛÁ”¾Š ,;®‚üÔò‘D`n>Ò7 îÅyÑu~'ËÙ …©¦MfÒÝøîï6ÉœžsÍh·‘kEj;Ö,b›jß@&Û[§”v!!ê[ÔÑäiZ&’¤¾‹c –Á¤|ŒÜOò5NœÈ=â É•P0êÈ€œ7†?ûdaBù#ŠŒ'|8$m%+ BJÒå€Ò6ªè·Å ?µ“KHÈX’ŽÿÞ/s1våÄÖi`™ÿ<°(ÒY3x[±`ˆ8W. (P}|Ëñ¼3é±h˘Ð$^/æ¥En3ü‚âÔàŠXL4ú^çŽÝšX{×ÍqkÁË/%$€Ë¥¼T®ß™±¬ÉB'zDš§öHн€üü˜àÙ#¶"+$VèŽNäH@‰š#”7zAµ‘¤‰€'v‚2wT_èGæ5á7ÀÜqn¡ÀÐèLb@gîþ9Øàs€p§à+ Ì>‡„’>ÔA ±P•–p{œ¿üß?@T÷çïè™°Ï>(øóßþWéigñC8¾}ÜN5nÈRH þˆ2Çߦ,ƒó±Ü•#+UÐò˨ìùŒ@Ë´}Ô5}Ѱ'ryzÀz·–‰wÍEƒFÞ.‚­.¿¤&\ôu‘l;ª‹…ÅUvI‹'ÑÅŸÁL6æUâ=»+ˆJþk‘æA;DW2¾I6º¾C’³|<ø¦GòÇ[,Q£šò¦Ì»~ͧ¾r+þy vuŸËòÌr5ÏijÊKÈ3!²Ï¿¯>R’éÙáAŠiÊÊC"/ÀÓÀ¿Ngé«`nšn(Š #{/q\-êÅ.j¨†)Ï;¾"C?ŸôÓþ¿Ü­S®»´Ï»uJÌì/èÖñïÕJ·N[­wë@¨‰—èÖñ­¤4¹yvó~ž¹R0á_Ò{LøÒ\“õ¬ùF7ØÝBómÞhÞTƒÁMfóS¸ $l̼ÁFˆ†æÙ“·8'Iö¥¢ýÞR‹Í÷Õ`çë7”G) DrÒW3ø+rš<\Ê5y‡L‹Þ¹¾šyKqÐ>nÎKêbA¢Òž2ÑIóÀåj’Ø%Íúš†N0DÁéàŽøèééuWÖìóÚþî5[Ûo¸0w+tåéQ´u“6kœüe}(=ón¦;Æð)ÝüX¯›ôf›YÒGj3b©ì'Иq¹Þ’!š)ÊŠ ‰&O¦n¦DîV`3Úr ¿çB;þyIq~uŸÌÏxžÑÏtñd¹Pœ¯›b>C~oWT¬“m‘¥JóYQ®ÖÉpƒã#Þ8:ð­fŸ75P¬ñè-…Ì“%—ËÊeët¹¬é[#å2žRË‚”^Õ”z¦Kzñ”Z’ôA8¥êІÍv;m‘t4–M•¶G2eßj{¤b6áÕ¾-æƒßÙäSÚ$ŸÖL4#ú Í‘õ¯Äè³¶1¢yc2äÕ2 óù–‘"N(¾,Âסó9 Ò¢½¦éÃê£|]Þ7LçïrÆ QÁ׆¹ä0”‹~ÏÄ#¼•‚ˆšUéà:3ÀуoŠsLU ö½;–tk•b•sõ5" ÆüƒëAý6sõvzòãð,Øs¸ÆÞ¼÷ïùOr%€Aíêwœ„@Ub uÒX >ÀG´ª®’öðwRûŒ>G–BÃa:9YçW–ù4Ï Ÿ›4òi^Š|ÆÀ§©,ãJ§€ÏQ€ÏQŸø 1ð‰Oa|N!?3>‘\#ï’}Ñ€_ˆgÐÂ* ŸUŸuiä3XÿlJߤòÆŒ\w»àÍ@ãõoL<Æ#.~ßwÃ@õ…-Ós4í}$¶™¿“D©½dìó°JšÁï·êÏ Äõ}.3«50Óð/h0³J‚™ØñHµÐ̬몥‰ÚmóŽÛ~Ô ¥}±ÏC áôË(†ë(;ó&ó(þÀiõýÓ5^¢>ü>j!yª2¶+ßoÿó)xàzOÝ-Hmã{Êh5àŠöö¯Ï‡í{BI÷FÎå#m”pVzãpE»hSÈ@gÿÅÈ@àÀgdàSBº ‘Ñu>ÀcCþ³Q› “DÒq ²C÷$1\€§!srô"‚øYiþH9kìÒwã>àøÚ!9­§Æs½zbBÇ h¼~^c™Z~°Òk— {&÷òã–ÂèãìGì›ØS J¿T°WƨkŒÐÜêóKNùÿ XÿÓ["Å­èô!>¶3Å‰Ì j–jýýp³…E¶¬>àéßMBA¥DtšÓi÷®ƒë×wÃ\ç€Qi“¹ÿ5œœÝ­À„póI†Uw˜vªÃ³ïß»ßF¾ÅBìÃëÓ@ßœ¶¤"³Z—CÈiiéO[ÞnHŠjò“Ýpu|pŒO8ìk¼$Ê Ç…Zù«i„‡âÍ«&[ÖbÂd@¥’© ÝMŽ®…^ªç¨#Jz¬|o©¶<±eèöa œZ±é•™( E¨Áæ±Ü †çRx;RÓ‚œçõª+7~¿U^¢xººÏÅjµ^¸1ü3ªpS-19ó¢ìú8Þ2R¨ýòÎÆŸÃ«ãÕé÷  >Ýr:!](²5ÓÎË›~UŽ~ƒü˜ü!{l˜ÂŽæŠl§ôÚÂeŸM}Ê©Kþ»Wy×è”¶È+®©6N\>¨0M[ü^±5QÞQß膦aàô}|ûQ‡¢ÈòRÂDgAßÏñËøx¿ý ‡ÈóÎgA‰ö«¢†˜e7<œí´+“D§ú½`ã·o·wN;¬×»(ŸwÚù7pÓùîÀÍ9½ÕB·$¨ï8Œ]ò÷]ÈN¹ÎQôÄChD. 7w‘¤è†™¶m°y¡Ñ'mÛ¢1z|æöF&mÚaòü"yåÊú¾YÇ˼Éà $v:’d¿¨¨õÙÕ ¯¿£p{žäΔ‘#šãèßyÃç0Ññå.S4"¨UË‹Œ‡X„£G¢_)„û­a¹Ä3ŒÓm».>=`®èDy¨l—J1:©@z]{õv<#q&›9q˜b“«ê1SmûÖ °§ãÓñ]táÉá"d®DBæ2~lä¨X$£0û„ÈG–IÇ'¸ FÊ¥ü(ÅÙÝ…UÀêŒIùö^‚±pòB”š_ø‰S—xTÝpl»3þåàžUÕ„ÈD†€-c@ y :ƒFÍkçæîß´|ñïøÀ 2zñÙ콞"ct‡§ q°#-õÑ% Ipëá­Ï59Y“ÁËš(f°MÊáøòá«ó';Ã)–\Ut•ýý¿7O6¢ÀlIÞþRN Ÿ]H ¡ãýfA¡Ñ­žœùc€%TŽ®0ðÍÙ-|$õýà™€7Ä&n[²rÄ¦Ûø™xC "_Æ‘étxÖßÅË>¯Âg ]ɯžIEržØÄ^Ê}¸9Þc¸v¾ßÞÝ)['3=ŠÚýk†ïÅÁ½Weôè à£n_<ùùºgŽã=ïÑÛ£ô²¦(¥6‚)íOÛ~¡ÈuОÀYõCQ¡ÅÝ®½¾~SµHæä~n4Èú<6ÈDm/¼Ñ6•€÷ pì½T—mè€KP²;@A˜VT5´ Uý²T Í:UPµá7q€r‘ç’”;›ïz2õžÙö³b÷Ññä7š'oÞʤ/°`{,˜çIX>Ö„Èõˆ×žµs³̰$“†@D'œ#ÔÐ8-­º r´Æw@‘M‘u×.… õö_Œ õ }F…>%T¨ÿ™/R½”/R½ˆ/ò•[Œ¡Ü‡¤‘Í %^ÒnSU-EXÊßy$¨‡¶uÁR¯*åº9la6û|MX‘}Ó“*¯au¿µÿ}QÇ—Ï– gÁWø]»ªÙ·³ÊŒøŽ• Ÿ1bh´y™ç+)ˆY×€U)H êw¡l4ÌZÉÌŽæb¦aB©€0Ã8Dz¯Ü‰UÑ“$©F܉5&›%Ò…É„}’D™Ôå‘!—çIöàªdP,HJS•¬e¨ áWã¿ ¸Ô\šuÁBo'@úÕ…`A6ðÁBaW¢.·ÃU7KÁ‚ß`KãOüVÁÂjã•;º –ÀUÙˆ’¸}$¦»y§%~°åaž«JI3íY—’¤­•äÑQ:¶qV…AO’íH¢â‹°SÈÍÍ€B ú§ñ§ÿ`²¤™uô Zƒ;þ¨÷·oä:°—¾ öD2PI”‘Nïø%yˆ;÷åÆIqÚsâ¥=8HòØe9{­‹œ ªè$œ¦!Ó=Q³÷ò íD¸DÚj±ÈûW_ªX¤œJ¨rF!žÛ+2¦§™Êð jÅÁ|ß éàÂÀxíP•–b ýîî5;¶ÔU€rGĦ·sŸ°¹A‰ ‚¢é5ïÃô­ËÜ‹¸h}˜3¶J²·ÀèsJ·Øy³Ú½ß“íýyIPâöÙ$öyAX²NÓâŸQ*Ò´RqIiÏq90ùýX•ß‘¶AY5)mƒ²mêuÎl\<«׃p¨}ýFïªâ•® â•Ý„QVœT˜¹Îø{ 3÷ì¦CuÁŒÑ·Õì …mmòšµú,f‡Àïg‡°sŸ:DÞ•á!¿Æ˜çíöî„}ÔE‚‰¸ËHàõ‡Xnâó¢û>ë@M“º/B¬íö¦ªËõ¦.™1ýŠ=Çá^ŸƒÛNdD‹³‹"²Ï5ˆÀ¡Ã{j“†‡@×ëàÁáÍ:8Œp– Äȧˆ¢Û þ h+½ýÝ €¤ Xù!DŸÂKÿ£xFa7ûû1 {O^hIŒå™6dL¬ôCÈ-™{ïÔa<®˜ÕJ޶½ó0Ó˜0©+ùž™¶ @Ç*ìh¥……›${'°X€7ì ×{þ-Ÿ­ŸœÉR²Æß+`·ÌQe*_LÕr àTèO›ÂëÏGMƒºÎ{9Àv‘l„¦—Ät7¦ËV£Ï8ì24BtáSèšÅè-Fq± ÄÑÉÜ=G¿Çà2jrÇXÚ[èÚ\SyèæU½Î(©jÇ©ê %²Iìó‚`ºZ÷Ð¥Ÿ %U’Qbò¢\ ¦¿CYJfiIõƒ¤Jp`€ííLafœPD×ûù:jèlÞ›“ÐQŒùˆùU›óëá–&bOs¼:Øwäx%çu•£:›¶5EVgò·Y@þìæ R­ 4e¾ ±H’¾9ÍÌÝŸp“yjJ·SÌ]%Òƒ#¸Ho\ã,€¦ HW©(§"½ôÏxÚ`Àâ]€ÿºÉO «EùMá?û«ëðœ–[R*‚ÿ |bWà?Ü@à?ø‰ßjU©ž‡ÿÜ-À=ëL(U¼þ›ÒÁ‡ñÑG(Ü$ȱ{tHÈU%føŸbÑÍz&bsÿáë˜d«P†äq霩(Š˜òk†'—7r·ÙÅøÜÞãsºAt‡°Oc”CŒäŸ Ê•UÖÿ P®¬»ì9P®ló.ÊáÇK3_ÜKÂÅø 27sWdŽ¥sº¢0¯(¢ØSD±O£sXŸZAçì÷R1„M/BçpÃ¥}^PÔëèýL€ÎÕit®Êªr5 ´ÂTE–§lVPúc¢Ã –c‹ß'™þÍr} Õ…¼Ô R‘& •†P]×Ñ÷˼T“U\Ýçˆ%~¼UÑl*tVY Yî/¨üã‰ôkj©KSOQè$·AñšŠý^ôVðÏK4ZV÷¹¬%½^Õ×ij[ÒknIÿï¸8±û–rúÒ‹¢ÏWÍcàû­úó’k_ÝçâÔª~¦ûtù$·ª—Úÿì4ÛDî1Û÷_ÜÝo4¬ÅŽ4ȤÄY¿ÞuC;íu.æ`ñþwö=T¼Ý¶5?Æ¿ 6l,CÖ5õRÃTÙª¨Ìf SÙ7™ýBèX…M¥KK" Á|dƒ¤a+ÞHðöE£ðÉÎ7ÍͤLÅÊ @Šz0$¥¹6œÈò¾¥ ãaŠíc0C=-ó6am=¦­­÷Ê—¹:ï§Ý¢œ __£•¸Y=@ÀÃÒW{gÕ…èI[7ÏÓí7e'Ð} t¼wÑõ‰ãŸ¾Qü¿ÜíR?G+»]êEViÔí²£4ÏWuÕ%4±>ªOìò«äN¿rÙ7¶‚üN«ýå=®ÚVÿd[™<«Ô«mÖ˜-k癫÷m–úœ—u`a¢> °Ðð󽊰€º7p„• °òª­¹A˜ªåG Û·áün3_¨ËÛm%êðvc"mP ²²M*ÈÒAÖÁ„Q$“™DYÃ¥!–Ñ1ä’ù1VÞuI¥“+RéÛQô‹Q–‰Ã,Y?âƒ-ލrQÖ'•åæWDYFGY6a+V«XøýVýyQš‰.ìó‚É`ç¦h1u‚czê#©ÓгвMQbЦoW)1¸Á©ƒÆ[ö )]…6ÆîHn$:â2óˆËN~YZpÓŽF©xÃe3³ùjh“à)M…]·îieA>‰»0´TØ5‘`,~aÿåee.nÛ\w5RbGñ¹³Îµ°Ë,™u–55…<w™ Ü:ã.³`ÖI©‹fЗP¬ûS4…óšhŠ ý)Öö¹ äiVuù´Ygà Ï×§Ó‘ùVÎéd Á*Ó$÷"0[a}ÔŽrözk8Ý<Ád ÷bñg÷1hy0|\ŽûG„w.cOw×ȱÔæh }莂xµ:P¤¢=]!ËDõé|~Bzž(¹„·$tÀ§|îÞ;”u*nè‘Æß.0g±{€?+)žÀãæ<ôhã/5ö—Ãt7ˆÚ·V‚‚=*uÄ<È‹’Iþ4;‡=‚pèièqì@`iº$ÔVUø§ ÍJöMV'#aYøå#®Þÿù4DH;GïÐ|'”|º®Nd1¿==ˆÒ&v´½&kW›ÂØøÃ&"GöV]ž’ˆÛ;½4€ð¥“£Lbp‰•[¹Ã°Ã3jXÝr7àÍ íc!6sÁi‚o^ß £yB³Nã“xÝkÙº°ÆÒµå¥W$¿œ`™qM ï"Icûªã~<û]þÍSä@›ˆ~8 K‡åŽƒóžŒÈjŒîÎÑÝ‚ÑÒ@ Ÿ ûÿ6FÂ¼Å‘ê¨ iË(>(ðQÄÁ#œ<½-9Ü9ú1~- ÍGeG(rŒ*>YÔõÅ L>îáxÇáæÉ?ã=62m÷XahÁ5ìB5|B²hdBSgà yõ Ú° ÆZ$€ê˜ƒR4”du¡'»9²µ=+¢Â—h 5ºK¡×ð„Ç…žÍ{ ˜Ø•ž_´ëW•¨íï0½}ÿH«Ž=Ì›-rø´[¼ÓÝÙýÞ~¦£N!©ÛˆfÑÓ=8±\Á ª»í ʳ´Ó(r»róvò•݉—´ QFñx'2Jjª$%ĺ–~š³Þ¼j ïøBÏbÜüÆsèÙ&Y¿ GÉ?T@¥ƒ³¹‚Xvòþâö²øªXMä!M§‰3>iå’FÊnGtÇ×wjðÇp¢lœÓÁÝ„ÒÝ=7œÕfæéÏî„Ñúž³œ&ƒ¢Ç¢ÉÙÞH0FqŠd7P ÿ7CqJDr>£8ŸŠSþ¿Œâ4ÏY›Å(N³èlÖ/.’€8K¾fv©~©D)$*ÝäüZ1ØíÏÀ"ÄÂÚ›7o^!¹P,h–P¡:3‰Á¶ P ˜Èƒ†¹ìÓø Âg£¹Oˆáˆ7ež2pzíÀÐÝv±Š_Kl®ÎÇûÁMêÜHÓdíj#Mãž!úóùÇάïó‚o],‡F!M¢.ƒˆAÞôÍ£÷ot³»TuÖ¹Tg—ž>ÜâÇùAwÎAÄ&7øôôÓyRüô¹îËMv—èJí¡=~oçràˆ•Cèq‡ŒÍt"Qp%Ó¹B^~d¼Ûp pùåà=Ñ1¾%IË,c5ÙAÕb.î€X€²üuÅü~«þ¼`mYßç2<¬]%=ñ/h<¬e<ì¯vp Ÿƒ›ŽêÿÛGŸï!köžgi›fÞpš9à³X´8ýP힀U«ÙœÎŸÔ[‡#P*ɰ$¡‘l>ì´<Ϧ‡¸÷ÿûÈ-’PêdŸ‡BˆeÐé§ *œÐÂî ó:@L£ÞŸ‡§Ýñõ‰Ç’„¸g" à•í‡ï u삾Ñ»ƒ'õ6nJw‚Æ+΃\xî£65%Ü«ÎÁ•—£ž^Ø4l#šŒ›H—‰;»˜žxTy xï¾üîOúîÏ€í´ME?§'þ¿~ñ篾ûÀêÐq‚_ó$ú‡oþï×_9š}AN3y½Ù^}ÿµýVø‹09„‹LÁJQóë¾þ럾ùó7ßÿðÍ—\§b"Éh†Á7)% ¡Ÿk I˜À½Ϫ¨`ÖÛâ\¡:2¯qf&úyøÅàïÛW¢è¼ÆÍœG?¶s¯NOgQôàáÆ¾:8â>1j3pNUQ¹²ß×]àk»gá^Ãæ²{ݪ7²±¬{Ù²KlE­ËÿÿöÞµÉm+ËüŽ_‘Ó11ÅìÈLáýpߊY’e¹$Y¡”]·»Üs"A)&™Å‡%•bú·ÏÙkïóA²ÒÕº® Éqpppžû¹Ö¼:»ã]²¯mÊâŠÛän“ønõiÚü…ÐIµw,4‰IÚ[1OÙ®¦ö®Õ’£Úq`ñáÒ÷‚mæxgë¼ Ó¿Ýˆ|TôΖ߹ÑYŒ5›pÁïp¡ÍÑlUŸˆK.€E(l(ccƲ@³iyÆY¯ë}kFÂ1)oÍHéÏž5#…EãkÆWeÍH?“—GèZbá5t$ÝBð­Ç8ì~¡ÍL4©æeQCØ%꾋]©^(“!äs¿–Ë*ûsÌ­L4E- á¯øå\ŽSDÁ« vìq³1ïépç®ü©Ý0u¬„j Þñî5¦ J\FbŽ–$j#’«CèqE˜z«!b50‹Øæà1L+B!ÿ'@ì/´rÐ|¸[pqç ’¨ZæÚÜ)‰_Óó¾aÎ3æòŽcêúÕ=ùyÊ)-i|ë4©áëmp$ü¢0©ÍËðkszä'—iEJÝtï(§æ ý­š8 »~n¨®$‹ ÉkŠS0n8^*SátvÎåØ5~°N¿ÍõZsɇ¤2ÿzåm„ YA­é­ìgzŸDÇÕ/¾_‰” `™’˜Å‡`ŸœæˆdºWol.F ·bÅPãLîH2ǰø§Ã,T™ö%Èër|Íì°!ÍÉì,Z^á@r`oŸû†[ƒ2Ö6}1ÈP:ÂÏ ðl@î¥/¯ß±6ÍÚ®öHpU ßšq Ö~¼-šÃ‚hD1 µ áë†&eœðDÆ÷¡¡õÂø©I8`1kî/f³X " 'Á’$Æ›GÛKQkŸžPûÁÅç¢]š,JyÊÒâcW˜wzE<Š‚Iº³—½÷šôŠ9Ô‹,:µòÒÜÅ[vÈÒ™dQ2Ô™´[Cpb‡´ž³Åê­ÚÌØX Ø›Žö¹ŠPG2ó5ÿÌ¼Õ gÜo6p`ÒÑ'ñê°8¦_àZ^ÓÀ ËTãÏD@:–¯å3?…ä…Zl+퀣¥Jûó57š?’l°°csߘ=¤»¯'ˆÑQ„†{Ý’‘©é=«i#®ƒyO4CxàhêóÂh·üv‚û¸7‘n´x#› 3^ÈìÒšÈ2<ßg£ÝòŽ\òcMön¦|†½‹ºæBrQx DLÃìZP‰0š¾V¢W°_³ÆìT~ÜfI6GªOtÂGJþ$†bö?–Ín¸·5(;æFû˜i.9¬mäAE ^Öv)œëóCêãŒÑ\‹M•›’˜"þòê àd hÉ©Të2ˆuv@v lbóÀ5UðOžÊa&Ó-?a¼“ðܘûbÊÆå)æïÁgN6G\~T·Ò1ÊÔ˜¿‹ÃYq¥# ž,Äiq½,1EÕ¸öï`ÏñB%~Þ“¯š”HT’ÓÑ)ëíî {9¹3\á7‘Ÿûˆ• ŠÛzØž_Æòìr` ëÅž×P5‚Šì“G¤~ÃgÑÌÚò~¶Ö1™–KÏ3õäF?–2礟ƒ6?ä¡{!ÈëÕõíÓ_Ï\“¦ ×rdAÒrU¶/ˆä+ΛÓÞÖBáÞ‡­VÂÇ•ÀŸG¢Mt¬ËšL’4ùCóGæp°šîg’³H)sÿÌä ʬ]L¨Ø94³$N‡M”èYP?‘4Kó¸{=Q—"µA]¸pJg§”öªeôgÏ´›Á¼û‡i÷«2íf÷ §D†”Žˆí¡)¹³ptr†!阔á†Q§]-º{”¼†¡”ìö¥*$ÒÛ“µ>w¼à~øùü ‡£#'E)£ƒï Ûo6%-7ðܲN=÷Ž'Ï:ìÛ,<ÆÌ©OÏôß—‚¡”ÃÒ‡V7&¯Bãš°ñEüù8#ÈÞ·ížÇÈpÎöÂÕñOœó˜‘˜6)/à$«Pص MDK¾és¾mÈI˜ô˜ ÌÄ)€]—W IðÛ2xRa(1®mP÷½1î® 7Ê”|çö½·œ!¨ïF¶öÞÆQ’ëjÇÏ~ÛiŸÓ6P‚GåUï{m-üÒ™vßÎûœ¤ÁÌ1vÀGu° BlÚ}Óö¶ÎP±PºnÑ–+±øCÖ?J¦’¬*†Žaº¯ãÿpy øöà3Ÿq n¡éÝc89ÀçNä›ûÇð5íC3¨9¨}Õ5*ó#ª+•ðNaÔÙ¯º:eêJ[¡Ë9'ÝÓzÃ<¢ºÚz Š§U?¡]—±ðí¼’}£ŒÃžoò¶ôˆÛÎ{ºÈæÒW{ínôjW’ÞøðÐ8N­_;‡«Ba³ouŒHгÛs8lwK±Gµ£“„þŒ`t|`ª °,cÖ½cêîê¶$͸|à¥3 ØÒ–1ƒU1Ã+7AçÇÀ+$ȶK‚„Aë¤K"/œFØŒ•JŒq°ÆöF§W/!Ík…”Ça¦ãøtœ™Xr²Œ`ƒ‰#N@­Ó€îw ‡‡ÎVû6ñYï&>íß4.¾šÞ¸7öFrV© ’³š¤¤ã™í@:‰Å`—Ý[ Y¦oØÝ;)Ïú£n"ŠÅ¥âAï>‘}[‰109,W[ ²õºqwjcH{@ &žãnÞ=Tiª_P(ô4Ž(Ùîེ4ã`|s2®¨’ S`8âºáÉáú¦g3 / k¢ÄѼLÓ]é~í\ž’±0øÌgƒÉæ¼Æ /p0(y·Hl)˨Žó¿±Ì”©iHf¢û2ñùò„Å2üÌi±°å`,,Z]HÇ– ûH ë-|üñ?A–»0$ØÖ…7G«v  BY9ÈF’ ^©‘ ¹w8dŠP¦GO>¨™|0ôŽAeâHS?¨Í̲ҧ’³—¤ØÅZuŠÓÏI(&ªÅõÑýlHvÌã"ÓIò‚´õ•šåf¤Jl·ÄQŠØßwpÕ8 ¨°Å|Þí#“.2išda_,ý|pß‹ŸÞ"røóf‡ÖŽ,×2|F¢³4EL6Yè-ÿŒfîµH¥S7IñÕ†µ×A'MéÐÌ/ “Û]'æƒ=sš ¬:’Ž7¸$•ØÀ^0À+òÁoë¥Z©¤5ÝŠùpú;ݯËS>wð™“EÀêˆ(¯)­—´ê ð 8X)óñ-n›ÛG;f&ΨÇCdI’õ3ãg9žM>øaã¸[DÞ#^S™5ciG$)UllŠ#v«^S‰%š ö…5å½aMýٳɘ(Øä¾*›\ñÅaMÂꌓ2…Ú»—j=³nË™ËëÇ•ÄrJõ¹KæÅ“?¾þwȃjÝj2À7¯>zÂÒ $ Ï9$Ë$a ±N½t«¥e[•¥wÈéÚ=Z†úVh™„wÞ`X‹EF¨´±eD]Á„=L-!M'#lD›ãâ?Œõ${n:ûW6ɉ˜uùv9ú©Yh@R2 ŠoM à VrC³˜ ½<,+D‡eõ3m•_L5ÜŒ5uJØû“Ŧ¹pÑ&mŽ©î<ŒlTr©ä]P¾™7%'¦3¦HšÐ·4%fîPbŒ%ãÛxd-&+§ã.÷;oAe̽‹tF'¯´~*±ÿªT:ÎSB,ogZk ç¶©—&ÎÅÕÝé$¢zÓQm$…0ÏÅ%Jm«EæûvGd‰S¡ªã CΜZ~JG Ìrbà;¨“„Àè4_DnÆK”4€7o –;ÚÚwwÐÁ¨Ÿ9õÚ£s(õYÏ 5#=ÙZ£¯"ÄD&—²ÆGkó_ î} òoœ{ËT2”ÖK’Ø5Ŭ °®ƒþ2ô—ÀÀ¿Ìü˜éÙ^ï´fvr — RXÞë5"=;Ñ•&±ß_Ùí+p¦.[]^›+y6.Å5AsŸ:špò•öG+ðÅOê@›…OŽÈœ•[ø)Ð):ÝÜ=on¡“ðÙ­Õ ¸·‰Ô‘t¼Lk¡ú®R?½l{c–3b8H–Z±0ðçmç«·nMÅg h]ZH ìñÞP·pªq«¿KB¢8þG>²Ñ™ƒ­ Q)qÃIÈX1mÞS3Þµ‹•ÞÌy¦Å1’ýþ ’±]‡~¯0t•[_Ö¬¬¢Õ)ŒoâCÉ1“ëÝÖ`Tå¶9½{ !¼{Ä 25¶zæN ÄÔ­ƒs bOæLyÞ‘-gšÄÑz¤4¤,5,ð¹Ôž»º]‘±^ö}ÒÞªcdØup¹f³©ÆN7ö|‚»:Ï ¡Ê(ªŒ5çØ˜dä&‘@èìL]ò F“²)*”k¬“«ÐެL´-DüÚÅÚwâ$fÞ80¸”ŸNª¶$TæôàTÄžv´¨×h–«Ýl®3¸°a#ë&'SYÈB®…ò#ÎK¦e›A«†ç‡EuŸ‘ÄИw*?LÒCns¿¦K®þŸC-ë@¤~ß7 £6Ã, ÷â-͇Æ%Pà°«˜’{‡`é~í\ž’7:øÌg¨•ÃLjò7ú¶:”W¡O§¨ö¡õáÎÈû¸“¤ì ºÂχôJºr‹È{´Âè(–IÇžbykÊõꕯW¢åyYôã.¦¢+%#ø,%Ë„’ îS0Ü;F`5ŒY×û&©(ÊÓøø&ó=Cu¨w×1 ‡Ää}© ç›z\%™æÙû¨OD ?áˆÁÚ :ïJ´¿I·l^¤–ˆÝ"EÚÕ€uºEÐQ.ÎNS.‚®rA6¹êó”‹ G»ø-ÊEÀy„H5ù ´ ´D29suÈÿ7ji›ÓW¡] -žv‘LÕ vÁü_‡v‘EQñ5h»uÿµ‹LçW¤]di}±v‘e0Nü÷khˆÐ‰ ËhYnÑÞWí‚LÓ‰-zcEÉØUîÙ¥Kئÿ°KUvéò¸]:Þ„ZO)$u}¾Fé+”ÁoÔ(-œâ—+”T—k?A© ä >®Trô¨«Sâ—Ã*%Ýîh”`ø=¬PÒ횯”NùÕ¨“ü!'k“Å0Dwaж‹ÓºŸ8ɇƒîXUkà¡s«òðÆž}7½:¿„¸°~Ñœ_FˆÀ§™y àk*®ƒr0åo1å gÅ·VNþú˜NÛW¬ŠH©S£y5ò™k!³]º&B¿Ùªep_-Ùö.Žè&"ê’ÂÖ>ꦜ 5ÅI[7›µ¿Z›ÕŽl<@·¿zs)’DËŸ±ÓtÕJV ³š"»š/3ø9š=Iõ>AWAİ2¹Øã°uç<ÏKìÖÞr’¸I±ºmÕšHà%ISпµ •Ä%9™ÒÃa\¦„©JµŸ> ¬’C¢TƒQ1mˆ ÓßÍ:/BF5$D9`ƒ8Ñ»Ö8³‘<™õíÝB³n'å0‘ݯÍåiDFþ3¿Ñ"‡G‘ñ›'4‘Ñ+5•Ÿ¼yvx|ò¥…îÿs–ø4Á­@2ç_4›yüx'ÒqžôÂdTÉ£û>Š @±dñ«(õC~M"ïUÚ^¯ßœ¨fb —št²´GG’N³¸¥hQ `W=’„Gåû>ùª£ûÁÁêHmçìÔ¥±SW°WݬKéÂ\WÄ` >Ü.º?ô™ËÝítQÏtÓ0®NÝüÌ¥’~oWËåjB–y®3±Í¨³˜ìæ½ÿë¿rªª,‰èÀüPOnô‡fà(v2Þ©úq¸Õ'7ËñGiLž“ úâÕ3š<Ä”‚_dò€@ïQžkô\"0ãÄçx^á¹ûÏÑ,Àƒvâus#ìáÀwuf^$Äb<Ø0“¼"óÏ¥Iuòs<òº‰Yš89(YÄi1·¨5-Â~O\…‰CižÚ·ùJ9{“RÔªXÿÚÙ›zø8Ïâ< ™ǵX4 JÐ`EÈ ^g³8ö$ë˜ÒQÛtðC&šhÔN&ßÁ .9µ¦²^›nRˆëîÒ¡'bl]ª_•|M‹ Â¥”R¾¢º‡ÃcÉFRy,§6ç€Ù°ãh' åi"×AØO,«ÀI˜2JJÁ9AóœÕDðã'5…MªH©Ca_x#{ÞHò¤ÖXú²Ÿç#«KÚ$…,ÅvI"רÛ[ ¸.pÚº ßýe¢3¹Màã“ÝáT¦ŸdƒžrÅÔ³­ôóÆc©þÓFlêˆÒïµé…3yʾOîî ‚8ŸZÎè0ê I¾a²c¥s©¯‚1œ«v|m>¤AÙ>]ÑŸ=3uSõfê¯ÊL]ýoL_¬äÙø³è‹ñÀ!¸Ë`lå_ºósñ÷¥:÷^>Ö”Æ=¢/eL‘|©ÈžàË?âl‘wL ݧگœüSõ9Rƒ–•ˆ´5ÜÇ”v´ý Gž%A… DÁÈ©2º}°²ÀœØª&DCUá¾d¡÷6Ìœâ¨-Ê4,àÚ¢<üL+· º8¯‚¡ÆqÄáá]Ý 2W—9µã×  wüèJ©4¾VnN2H®kápÁN-êÇÀ«ål¿– %´êZ8Ø¢nUÈ¿ˆJÆ¢.×Q„Õ™'êF¤9Ç@F¢.~튺úWLBðÔ™…~tѤ‘Ñ+qB>³S.M²3Õß©'CêÇtTƒó¤Ì/6g§¤zªWÃhÛý:ÔläœÖ F°nì…MÈÑy´ÉA¤)`ü/Ôiø]ÎõÔ|SÑ™MîgÄ3íWN0 c—Ù9·ªIG\‰ÃRjsn¬6Á@~u剹I ÅNë"³ôB`• =1ѰÊêÉ¥º†¼€”í±Eé<ó˜r¬Ÿôš¶ŽOpÖl-W‡ÂÙ<ä©ÍèM£&“}ÂŒ¦{ü–²:H8GÄö„ñHÚ„EÊŸûç)Lø¤ƒÌd5Õ†}Òß8&ÝkÖ%°}LŸßh—äµyŒ·CA)ôm놛iŠª^»AF”mëìçÁ"NzŒ yÒn>(_Æå€ÖZ=«<àP‹ƒeeÛ Z%î— ¶ noR–f«@9Žih­ì(ÌA ‡^¯:µTôûÏü÷›ÅZ9Îà@Sõ‚FIŽ%8iLû.=ÉáŸi×(Êyu‚ûœ¬JW5i;yÒqU+=A~Å"õd c!×a=ebÃLð/áÄ´*ÊP.ØïüÛÌ÷¯™ôó7wݸg®Imc­1éM{¨v/ÍÀŶ½85!œÚ¨7ó•¦)ÞÝq2h× gÍV4R¶'fœMè˜kZ§ÊìV T¶¥¸étìc ÚÓ®ˆô-“sèØ-æ«Ådc2•ÔÞŽ‡§¼áÀÕóœ¹Y@7Ý®\Ÿø\g~}„醮¶ÍKK080 )}VíâwÎpG˜4b B¼fDDÇx-”&¥É4%›LJêlÕ©X`@%:5%›­º­³Mçfã²®sü¦¶(ÉŒs}Úˆ¥ºÎuDœ1ÇLNLÌZÿŸvµl›¿Ø±³%iÁ5zv¶T­-ùÕ,0,®1ciîÞ -D” Âã~í\žB Á<óªø ‡ŠnZ™;š¸åPñ|JÖËâ4; ‰ã–£‰k-<ÈÒ09¤… 6[öjáýÙÓÂ#hâhá_•ýóµpL°Æ¸Îç.Nº:.µú-2u«¤á™ë¶‚)ižúí{”©2¨ßÁÊœ˜Ç4ôÕoßÕM5uÔzŒøJu)ý:hUGýÞÿDL©&OýÞ¯©£~÷µÊÖå©ßû_ØQ¿÷ê²0Uæ«ßû-ëªß{éÄÂRužúÝS]GýÞkH¼¨ËÓ¾£`¯.º?X—ŠUm¯—GF»ñaâ Èx,óÓÓÂ2žòTížn ûC½j%hô«àN/…xÑÇ"$¬dzX)÷ê X?#!r6*QZw`¢K%’‰~4DBißUO40~Ý‘à_±ÝÐÛ¡ùJ0ð¾j0uô‚ÊS{³˜°ì«ü@H€§QTNØ,=ÆÊúIÙ¨YzðšÝó lxìšÝÿ>çÁCj6͵ŽÚKè;¤_'¨½(ÛU©ƒNòRÖ¥õZD{Y•­3rÔÊ]T«¯KG_T¯9”<¤Mwâ>*OAÅ“‡TëåY¿>>NVAÅc¬kTP“<ªúÔ¤J3‡ô-ïQPóô ¥~¶r!)¨‘þÕ— »!&F-•£‹”…/1ÑS¦Vôoš¸D"W›éìÇ©ÖL§]Í´9Û6šÍt6 ™6¢2ÄRFG6kr†«t@-ï©¥in" =µtÊ.R*¨ÕxïPNcà YtÖ×®NzftRÖÃç®:éê¤s£“º|®ÆÀAbÅpRé4ZéÔÑJçžVjß!’Œ)ñµ«•æŽVÚúZiFF+½é«ø*i«UÒ)'Ÿ.¶íÝBr«—4 ­Î5ì]’‰Féz³Õ'¤.È#†V–€ÿ/ Ì=iØf“äJëô@S¿Æ2 {~cg@Û‘¤v#‚`ø&ÐÀ7ilj| Ò& ß*>Æ]N †7¤ß8V*Á›á^ )ãlŸn'DXpÅñú Öqx`£Íô6KA2Šª‰X Ö¼¨!ʤP‡49äçN`G«ã†E,ípº_;—§8ÀŸ9¨u‹¾=€¢Û[ŸE Òô>ŒÊóHò­éQ‹•ŽøË”»çgPÖN‘)ES¼¸ãŒªÖ™ùÌ:âç¨ÃÒGËòDṏŽÄ Ÿi|z.m&q7.´,³Ýh5Û*Îiƒƒ¿Ý0Ü¥< Ýf`&€]dçQóèÙóç—}È>&”@„÷Ÿ"õBíNK;ýí¼R ƒ‹öO uŸ«BnkªäÝœ0‘ªƒ(!ú~-—Urö;rU›1áƒH+fªò6nIÚ±»î†#o8DKïÜO_þ¤VÒ󧯞.€tž5ˆ2æÌ'yëè1 >qº¤‚ÎùZ‹M„nsÞ¯Þ¶ËzÝ2¼¸*èd³ÏÜtœY:>¬ÆÙ­©dÞѲVæ$¤DQ¯Í(¦?{6£v£?lF_•Í(þLŽM3É“(`j—¹ÁŽ˜ Öo©¤t†sbéæÎÞ2 gËuKõi»}^¿Åù«ù‡ÄLIúqÑ5ìl ¾ýéêùÙh¾ÝÞm¾yð`ÖnõÛ«–*¼š®0|„üçüLÉü=1¯ð¦b¿«Î¼Ý­ÿÏ[lcì&Ÿh7‰þ?ÔâÞ¥êÿ¸ØúÏœúIóëWí¾¾v £ÄÙ¥RÃ>ÐÑ«?‰þ”;ßùnzü‰“XO%Ì)Ù]O¿­¤²àPµ_ÖC¦N1z'‡ûÇPÝSž¡{äÎó$ Ò4=Ü9ªÀ¨ùê¾úÆTv Ú/ë©38T»Ó7¶!â£fŸ—m:Ô)ºÁ½u ªE[ÌÕ=vŠ_{¶ étŠPýwYð|Q­>WEš‡ûÅ”¨åò¾zF׬øËúÆVÊ—ƒ½cK˜î‘vŸƒös¸‹ˆSº—÷ÖE¦¶CaáÓ†êw»È6ÆôÎy”Uéðº¢/,.Ü÷§¬¼‚윒keÂŒüPIœD”ÒõérD´ö½B']ŒW`}F:ò¦A¸;ƒ©\ÞÖíÂèð¢¶Ûη²YiˆÜb 6&E¦“|lhÙêÉ„™} Y¶w€³í¤]°Kk 5²Ñð7½uEaõcã8ûÆ C)IL!#ᄹÆLeGòÝî­‹™@XX}™øF“°y ôzá¯Bº5ƒ\*#©Ï¸Rr½†J(bâgv[»”=±%NT 𠫉u… Z¦‰y‡7;ê]C‹Hþ(¤˜¯WL“ÞÎLÁ3;r¦°—ÓÐ7<öèÉËë'äëÉÊÒ’Ÿ½=yyµý°eõ“zLñGO¬µ@qŠÖÖQ펾{‡ÄLðŽ´ˆVæÙBÔGi !7ïFÏ^^¿yøü9² ©EL÷ò~c”÷l«aꘋzÒ˜`ôØà0}¤”ÝÚDp¨Z ·«ÿ»³B n‰5‘žžŽæœz"* à2bÓw‡x…é~í\ž`º~æÐFŸQx³1ÐF*Ï zoÀ×ÍqífCˆhF™$gÿFN9ï£Yâ×%¼Ã⫯ŸýO˜œmœƒ*N“CÛ“÷—œšx„¯Þ|ÿúÉÃǼ®c®J C]WïAJÓ¢EBЉSqªŸ—lƒóu¬tÍü¹át' =R‹kN“˜MâfFÄ0þlÙÒÌó"³¿«=ûá—¡½T>í—E?£71•½ao´ $dß§O\Ên†ö½Ý|Tjøí›¼‘45?ÿ‡¬¹¨ÿg¿U+‹04·håÑGMî1ïfÀx&ˆKð÷Ô^O&‚)Á+šcâîná4p1Y’y¹ø¨×Oœnß&c—é´Ûî<й%šOá§çož½zþ„‘]¼›.ÎoF¿`ßæY W‹FNˉ?õ¯]s_@h£óBÍÅ8ªÊà€uIßWOà’aÊ~/ZKò1d`² Á ž|´CæÖÀÜ7Xg§™[‡Ÿ9iÏŠqf©VˆÁ‘Þ³bÙ³¾#äòD§Ü®‰2Bœ,zÿ â<[§Ý¿ »2꥚}—4í? W´®HjµIøõcŸ³`ç«ÝƤ+‘ecñÿ”XÂH‘qDôF?Ä΄ ®h,¸öh FobfwºRºHÊÆyµ`:ÏÁ{æq¦)Eà€>0^ß={þk`Ylüí?¾xõúÉõ5ó&¸§ó¿ýØ‚¨3+M&Ô.oÿÑÞÅþðjì¹ÓO|Ú›6Ei%Oÿì5'Ê ~šï4'ˆÃ¢0ÏPsžþïR’´­ÔzÕ!Méigv• Ô‡iá3ãg¿=e˜âç`¿w­«¡æ<ÿÙ›âáþã¶fòDoÖ\g4C^®¶œÝÏrôÔð;ÀÀ‡·sGŽ]› ½?ûoú¡iZBž1®€Bó&A‚°Kd]ªjÕIݸ›‹p²oi†+hõSm¯lþU¹®#Øgƒ±.,ò²=L݇g6DYÕ@«5ÔµÄ=µ`"•кòâ>3Õ &ØM¾¬oÏÓ;sú)˜jä\çðø(”IcbÓŽêÍ û×õVâÞe½ 9¼Ç«Ò"]³¹am[ÌÃÍ;öàë¥?3K?P :ž›f­§­ (¶Uê[©š†”µ~PÏ p_,¾¸<ÅE;øÌI2C2LÎ/ˆÂ<™!ÑLáõøüv4‡øMCö^ýKu=™7Hèž»ÂCW•ŸÔár+L=|‰çè˨;í2-±»ômÍ™+ý1óµ "ªøånœöKòyìP:Zu©P‹SØ‚˜ö~ÃsK“;™Pk–™± xËëë‘@‚èºgû€õzöÆ>ûìå›'OŸ¼æ`z C–SS¸‡•(«íœ‰}±Xï'N%žöLD¯÷œ“ü°¦¾£áR{}€vW5#bd=¶¸‚ 5Ù !ÃY—}Va%|š“ï®q¸qj-ãf$1pt3OiôÛ-6Ð Uʨp€¡«¼~öO’X#CG܇l.2À溜ª]PÓ9 Ÿ§õ‰A“µ¦©‘0”…Cb¼ej4`Š´®êå¿çϺ)c-€¶ì¼…II#-Ì!-H ‹>Rp ,Ç"K¤eÌ–Nüé~ÜŸ)”Ⱦ˜ôaÍ{DzíwÏ>½f@—gˆq8´Ù‹úõEý®™ª^µË±Q»EZa`ü•židúcÔzð€N}¤#=@¼XmÍöˆÅÁÝ0LJËÃÛ€öO\Y|V9»iu†WüÜYÓv~ ë…‘Å oPî;ñŒê>ÄÎ,J(Ù—Àx4цb²’8µ•kæhØÌ1㇧ƒæyâ ÎNôŽ`àœné#f‘`ޤßEÍQ”WBr¤?l>2 phe:Vb¦Þà92©i §Øw`£·Êšhy‡NÃ}=Ç¿ £?®é»“÷¡éèá«g¶LkJIV ê…¯‚~ê÷`S2gTé)·ÛÔ8aSÒêLQ´/E‚ñnÃT˜Þ›zŠÏfn„ñ¢©—޵w·‘>ç'ØÊ¹hgSÖ „jm¬ ó‡±{ÁÊu˘+N½”˜‘Œ‘{”€Üê#Ã$úÍç ˜ø£ÌÛ)ª„”-ÁÒùiØÕÙ0kRSDüT{‘¬Ö,GÀ¤•˜¥{Ì Ðá?â9ºáà>k2Æ‚İ/èÔ(îT!ØÃd/R%A´Ê‘*_U¤Jrñ:Ë›~/Š c”í쥕`™ñNI`›Ÿ»D(ì§’xß ä¯ sMAÄ_¼¯á ð£›%„Ö‘ŸÈlòcºÌ[ôâ¯]ÜjäÍx-H h®”®/®"ìkdðX† R¾¸Æôý@ì¼ÙUy%€mÌܯ岪þIôÕ™L=@•!­ x"˜>­Õ6{ªFËJäâ ¡ÐMp„λLŸ=þŸ¾ÎW¬¼Û/D ‡ÊžÙ¸WÕàìpf*#½ÅF»çÚž¢ÝðÞ«þlÈ ¨j_íx7‚©Ô·P Í Ùàôž¨uŽ™V5:þç0M =«ÿÅ0EN Ò¿êæ¨rÜ»ÊG`•¨r•Ìl_ùH}å¤U=ÊBg†}šÐR+ãò?4wZÀd¥Ÿ>œüÔ>œ`\Ev´ûŽÞ!§Ø#±ŽQ7!!WÚÆæéèoEDûÂhõš¥ð®Áý.Ÿ~4Ë}’yŠBHm&"ˆ[vÌk¹¹ù@ÞÅv îYÇiKÂ:­Fi»[K½Æèe¶©AêWëÀxv²C1AÃpÎ;œõq´5YÙL“–R6â~Í~w\ž`ž9ëyæXòB5”¼ ë޲‚“*J^Pãû„)”6âŽBmó¢}8ÆÁªƒdÜü‚™ÃqFжºrWq Öê˜(±r¡É'”è;[×·D ¡:ÿ&0GQºG´%䊤ÜѼ»!iF-•£i#šR+Þ}N©-„I[xÔ88€y¸÷&;; ÓOA0m¾áª@~»%ºÂ9kfþYc"ÔF½œ­³º½­‰ùÅ1âñ6·n7‚ï‚ y¹¼÷mœr0çÙ0©ç¸è‡ž;ÑM ˆWK?W ãD-C[oåèz4¯)@ŠCm ¾{¯ö²4ÓÛ&tE4.5ü|+"}/qD¯HÃó ŸJ æCƒPÕ¨Û»-›.âŒm­óÑ/q®{`MYíA³Ö£Ye•>/~RÏn-<°ÄéÖ°­cp ¦v‰Yd’š13¸ò™ a‚Sb½Z\ÍÖS "¢t!¡ÑÖ¡ñn½6®: ¶7ê—PŽ~“¨Äˆ°p° ³bþÚ®WKù Qšñ‹m¢Èäá×ùrœP:Œ!9}RºÃ´I™p1 =wz9õ 9‹ÚÐEp†Œ ägõJóx§á‡£LÐ<1…R(Ñ‹N õL©¢d—¶}=Ãå%=y‡¿×W“Ù“'=»™<8< 70“°y%=Ú¼9¼I4 Ü¡6°ä°€ë¤…Q'º—kηeŠv}쓨9Ì "C6âVÞ¯‰ìÖ³–TNÄi]$!ëìO éã¼À&qJS¦öÛ,¸KN–^E¬Ü~¯¦zUíæ&OQX†f&@GÒP[B?í ÐO Ý¿Wi%AáÐq‘¨Éëtnüx§:ÉÞÏ–¿6KÊ–Õì¼ÆkíFE¢b%Ȳ‡±úÔ ÌÂLµÏ®3Œ+UÔ¡c×@«¾ÓÌ žúäÎÉOý´XLš_,wjÓTâÌŸ.DRær4e¹V½ÿÏ~¡¾]üóÕ(ùå\ýýßê2x{JøC½ÿù­ÿ8%/ÿùïþoª†íZý¥î¨¿§´ï/G3u9ãêr±R½WO®öž¬éozrnžÄSJXþN7ÌûVÒ¼LýõgÓðU1/¡ª.¨Ö͘ÊèÄa¶ãîn°úÿüoê©‹ÕBýÝP]jÿ ­ùó·6ºaK~T7¬¹£2Ô_ÔÃê?¿R%ÿ#¡ÎU'»ßÎí£JÞú•Ðw­ùë¦ü„éF|HŽ4ßÅêýŸMI«ñiú#þ¤fÅå-æÅm}§3„ÝõuÙlµÛö,k rÌÓ33åi­§e™Zë“¢žRïàÒ³]G(àÔqαN¤ˆœ¢îÖ˜dU|ÍþaL9¹°B«-o·½ÛmÝkYvSoÇ^J¤~g#rõYœ$'-»`oÝ]©6MÌŽHÿ‚‹VÓQ-5¯­›"·æŽ")QÇÍpγ%§í%2OîÖE‰³Gê&È©›},û, %¸Mr2»Vë¤×jM·éžÕ:…åú«õWeµNOÀäÂù«µ™äžäã±^ýc5Ç.éX£Ñ>B¶ßÕ£ÿÓìž‚oX%±ÊÖ#,+.·6"èXN€‰ÚáÞn4k dºÉW3ºB E$<ˆK Ë\¾Çî¶!hã¢qD7ÂRì†TÎ3”S;J Eõ1•‹(d& "U µÑ ÕÚ΃ÓYÄ]_'•¦6T1LJ6“ddÌZ?7ö ¶ŸéÚ²Õ먴.8¬f`kÁÇ,Áˆ÷Ätœ¦ð=à¶Âè«·ý íîg& †! çûtîzðú"µž>2æS:qãY¥ íÌ0d¦F‹Ýõ¬€3oЙ­Fb•¹•¨¦ƒ¹ôûРˆNHÜi’NN×':è¢%<‡í\[«8ÔΰÈLݶ\ÍÙôØ.Njݤáäi–b=R4!Ñ ÙÆPëH´b»Ò&å`ÔΜ&D7dˆE½ôYÔµ9,*‡ÍaQiL[Ñ^pyyU…¡è:æ°¨ >sÄö¯WÅ{ôݲ2LÚ­Îx Øätã3DJ“%÷U·³”¼±X@Y`‰zóênÑ|ÃigU=¦s‚É“óË„aÖÖjEöhnÅ-‘’a¾Mv,d8åÕü1í1´I>¯¿}ýìJÔ¨·8m„I£h-æãÖ0˲uÉÖ†ØÊdæ¢ð•­D[Í0+”LÔnç·ØÖÄ¢Æò‰‹kËF²ÆDäš<ŒÖV!Ñ3GÂoŽ€Ò|­“ê`Y¾G¢øY7Ûݤ…iͼI5fÖ,ÕÒãsyŸ±´¹¶ÙW¬¨¾@ìÇóHïVïxG‰cà=S°Íôy{‹Á\›o›‘Z©þu³zû@NŽ‘ëº7–oëÝZXy¨Çßaeµ·²êÙ>0Óë¾/œ{O›w¢ðo È"`M1¯yãŒ:$ÓªaÃl°üáš–«å庙™ü ôÙ@ nÍZþ7¶Æž”«?óºYÜÖKJÿyÞ C±^íZF_’I¡ÞF3jüÐ)ŽäFhºZµ¬d†ùRÃ*ø:äûc¦®×ÒLX¯PRÍ®]plx`‡_¾¥*âžoùwÖÎy䯛ñºÙÖÆÄtú[Ö‹vùô¯I¬É©Öœ ¨„±ƒùD¹/PûÙAý[ßð3G·¾A#Ô`ë{Mi£jÚˆù?!.ŠM÷kçò¸O#~æÐ—I§¾Ô“]•ûêú ÿŽÍÕðþ-úO_iP6 ôÃ[R°è¸HäÏ]©Á} ›M»¹0qVÏðóNí/ÉóK=”(ŠúŽ—ö‡ö–ìNjëk—í-›I[µfLòlÔTÂ8K2&ñÖÓóJ,R›Ñõ³‡/Xû6Àµš}„üýP‰Wf#xxw§þ%HoÓQT|£”öOU˜]°.ªª\æ#õ"ÝgÏ_žÂlž9ëyfx7M»Pi £¼Æ±3Çø?ÙŒ÷ÈDµÏÇëz ?ãõ•ê‡'í¦!·/‚û _þzuù=Üóv§“€&£‡W´7\+IWmaâßx¨#†oÕÑÒnVKvD©Á:KJØdØpI§Þbw CƒŽÝöA²6wئ£i”í˜DHÞ‹oIJÊ#IL)xØ_­Ï£•ú3¦Ö~×N•8ˆwWÀâĬÀ‘òhµœ^1ÃÞ”σ…šFç[Ú­SúÃY0jF"GJ®êÐßJ€ÃTl:T@æQCÓ&’iS c ã~í\ž2mTÁàà3ƒÓFõt[¥ÃSFZn†B/ýD–þ5&XݳѷõzY#ПåÌÇ4]®Û[$h<#h)Mk$ ¹òLfF‡úB˵k¯^7ãÝú˜FÀ÷ß(@¸“ýÛVÛºµ¸a0"YðÚ- ëâ„OÓ·ê¥dJÎL5#ÈÅDã­Žüoø­1Ùðx6¬fo+¼<ùpG?­ÕŒÓj¬S#ÿeÿrþMFŸ¢¨°J*I I’&Ð}IèÀå)I ƒÏ Î `íPˆÔ^Ä„¯QÉÌHef0BÝ7,gþòË£'/½|}}ùìåëgI¢^ÍZµpÈPòœÀëþ…¤Ën¶g ØÐuµß.0%%‰Ðšæ€ušiðE–4qqç"Ê7¼ÿ^¾øŠP0È›6WÍòj¾½]¸€:º¾Ú\÷ ©Ó­¿Õ1%, “|Ò¹šd…˜*ÀFQEÎP¤–k¼ø~:Ê©Ð^ßkWõ¾a@Æ)N`ËêS(<ƒz0êfž{è:R(5Y|¿d+ MK_ ™í„0êì(¾i·d‘ºdoÌjI~Þè†2`­ik8Á+äÕjt¤Ôêü’´·ÿW½ásavß‹ðQ_în•l¾“£¢€Õ’Bñ”ŽñNËéí(˾IóäSZä,VVà‰ª²’yPeÙDíÌâ~f§"j; žÙç̓»&ÌëበMR! K-ªçÿ©>—”þÐZıˆ³V,é4^1ÜX3[·Ëö nþÑ3×úªªé>5®&cÔ®mYf;2+tY±…ÏE·&¿3úÆš¦ç&`°£ÒIl˜š-·Â˜Éç®wÛpró»+ö€>ã)˜Å„>tÌè•';üòª^“ïì1´Áͤ1í“Ñó—®)F+ŠË ²÷’[™¦hœ&Ÿâ,&õÿº¹Û6Nlß»Q†bGÊ’4 †HÑ’T[öøòR´ÁgŽO¦rp.¡Å2—Ò\àþVhµïг;VÙÌtšÑt Üù¤¹ò¬ï=ü꬇&Ÿ˜â^9öáОÃÅõ]ÈÁØfyÑVB5ð%«÷dãqL<°R9¦­µß ÉCW©ݹ§¨šœkÕúÀLW£ÿ¢P¦1P³5˜_Õ_°dyÁœ²wÍzóÀ FaQžážNpÉ™HŸ"Íæ ° "†w”ý™ÒŠPŒvÛ+5FÚ·ãG§P*û~t Á*f{Ñ)"TþˆNùª¢S²Ñ¿Ãâ`+ùvp¨à›bX¬zpiÖëzSWá°M14Vh ú·RŒÐ߉CñÉZ ªØ›g£×õ-Œ»›úöÂHZ †¼·×õ„ã–ä;€ØÙä°zóŽCìkr$¯GccY´$$d|ž±C[{3ÞiX>}c¤¶?Â;1Þm)&÷mkÎ¥%o9K?¨©K‘ð@3’£¿ ÉwXTlùV·'¼‘! to‡¢ð›$û”¦¸®ª±3ótÐΜ§ÚÌŒ«fÄЃ3bÚÞÖå0þœªQN”¢Ðó¡² úëMƒïZµçŒKÏöÖ×$š¨[ªÏ”,G¹Ð,S14G`½Xª½ç’2Úȳ¯$LÚ±Æú±.dêÕ€ºº,8ÄD[•ÀÀé¯f\µ×[ t6ù¢lÂü‡ü¥Â£ãO¢ 鸪ƒÚM¿‡‚»Bй!±9Ÿ;æcjVUò2ƒç;*²OQ]©©÷ìÉ“'”â¢DÔXSÃxpøq¿v.OÉ›|fp Ìê›UQ ærí›JÎÅP&À éë×4žÖëæ£q0<¦Ÿ®¯ÈrüÃj¾Ü¬dͳù¡µë û´Ä۸܊é^ •%»~`œOwíDrͩǣ¨ H™ %ÀI òú£ŽMyùêR S0‚ʳURífcÒ×ȇù×+öe~eq"ÖÒ8ê¥ÀžµtîÔ˱RNVâ1ªB4ŽLuéîë*zÒp¢à¡g†‡³YÎŽhžR{Gz8#Ùߟ^±¬õÃÙ´äíü ¹Šž^]þ;9â^̜޿Ù¿éAq÷Mv bEÁ ‘Gá\É «E³y÷ò—=zÎÃ+à<ÒlQ£Q{3ýH4ͽ[‹ï [uàîÕfÅÏ0§no=Á1*¥¿œWѧ$JY—ŠH«KFy^Ip¬l²buj‚c|æÈÈÎêÖrXVEI©G7–ÅúPF÷i³ZÏ€ˆ}û vèï%ÅÑF¥ŽôI¿ ù f¦ÀŒ§NvÑ„ ;¨gQí ª:) ÉçrÒ/è`¿mn9?ÌК9‘öv&p €;tü»ç祷ÇJÿ˜8l×ä­Ü°W§Ç\}“Äŧ$ ù¸.KE„Øáy€ûµ¹ N‚õŸù¼y°h¬p©ÝÙ°g`¥c¸ö¤™;è¤Oé ÑH“à­Œ¸†„v#?f:ò£ñ"?Î⤥^äGЉüxÝüª>ÙbŸ'Ñ7ѧ¨"-Þ®È8QÛÔÐH¨ûŒ7NðzæøHDGÐ{SŠ4röZíƒU]>FT† }pvc8Ô:+ïØdè¾7@¡ ýÞYrtcYR¤ÖÄ@í¯ KP±ÒRÕh9?5Æ¢>"i§x%Iœ-eƒÒFÿ½ÚÇIîWC"Aq fã~í\ž15üÌðìÞÕïŽELIýÎòÈìò€‰ìéîn[_`»Sý¥^¼³QóÑÏøu§j½â±¸Ö¦0Š ¶çBªÍf¼ab(Ê”rMY Vbl`†AL\$æûÑ2ïÔv†s€OoÿTåÔÔëÕݼ­/’ñFm…÷…Þ¿@I§ãQU|Š¢Â)ùûY€«´>Ž~ØäVá…SÅU5N…ûµsyÊ>38ÄsušWG0³¹vgÕå6&E¤­ªiµœ\InýF©)LiêF hmŸ›­Û‰ê~:E°™_ƒC¤)|x£”Î@¿¼] Ap1¸€Íó$ËŠ+@i1Ì % [šr7jg\n6͢ƺ'ºùÕâãÑ­ó%"€‰}±Ýªº+äÍÚ ïƒ)øeóþòß•¢ÄrN’ S]äÚæíz‡PýœÇ<–X¨¤¡S÷µÙ‚Šžd·@ÁCÏ y³hª¤>Yþª.D¬ýöŠqJ¾We×Hx·A,¯f(/ÏUÓTx7zAòÇDi¤Ë Kœãnüq´ÆtAJYn´%ƒÇ…INÞÓñ,xM½n4³Z®_>®’OaX¤´8•²1i)uî¥t)°Hˆ+dׂ„°ýÀ¦–zޝDÆ+Ï’ÁñR÷õxQÑ“Æ =sÂx½/®ÞY¤¥/˜¤;ã5ë/˜2Æ^ü½³ÿÊö»ç—€5š¼P´2ÊLîPžR¥"xxôn;|S¾ÎèTaëŽ[—Á`ÌalYãòĘágN·ñ‘ Ã„visзâ®xÙðØqíÎØÅÎZ;õ` ÌÉvö›N¶À=ÚÎR¢LýHÃv³¯L(•aôèÅŠ¡[l錩»a´“ë‡P‹)ݘP¦£_F¿Võüøâ—skQ™4cÌìJ#7ff‘ñ³ÑôƒágŽæd]Ã>uÓ =œ‰3œtŒùÃy¡]<’îV::SààÑÇ´[‰ÕTö5PTßsÒœ‡Áä0K,YLt4XQw5î¹:ÞٜͨÛQAŒ„¾;õ³ú¥JϸJcœ™î»=œD Ön‚ÏMÄ€Ï,Éã`ÏiF¢4oÚ ÖŸKÍ BfP š€è¾ž ¸<%&cð™#3h½ªŽÄdP‹½í Þ´¼{ëk" X $úz¦í®_ î/ANälwv§ñ¬ûû®Ö°ÜÚp'¨C…rüÐá%hÁ0‚À35–ôº+n‡œF‘æå§´¬ÄéYràC`²^XŽœþì>ä~ø#ðá« |Èÿw |€M0«Oˆ{(½H3ëƒö'F@­èÙ3>ªK›;%,ší жÎ"œöæ&MN<ߨë%s!ö`¿µk$ܘ3vž>Å•­§ç£*»Tçm¯?-[-oEêBò‹v©6ˆÙ?qÄ ¶ŠëØ9Éóa'vnüÑùi.ì`è‰wXgåÊ#¥kÊèj{àSqëÑ5¤wÞð"Õ2~ÿ>zw¾¡ /‘ÅÜ/ˆÍÁÕénvÒ“=N$p9O1AÐHæiïH2˜kàåtôp7ÛajÚAÔááA¬"±ÿUtšÉÈ{«ï ÁáÞrŠë Ö˜¬.Q‘ÆdŠÔúzï-¿½“t…nå÷ÛIûoœRªÈÞ”¢Q[U–é*[¤Ö×÷×U¦B·ò{íªž7 uÙë*úµ%Ó7¸ôl‘ú §HYÆ÷ÕSº>§ê{í§nýUî%]"p’ìMûÏË*QUÅéáŽ2%j¹Üû˜ß¼ŸÛúUý…`GëwÁ¤DÀi¾ÜàóˆhÛ£2‰†`t‘Z_ß[¡Â@¾áPå_ C`j=ø†@Š65¢Ø÷#dŠÔúºï-~i~‰aÓ¨’pPÆ¢ûµsyŠŒež zž–±Úµö‹#Ä\?YéXÎJ´Sñ5·ýÀRñÝ–ÉÈ“–öÂ_¯ˆ…º_ØÅ_¬ÓAÖ7”!’#ê›E4P€/UŒ—sÇfÉ.Ž8ÊBÇpÍ`t"û r(§˜Ž%VxLJºýqcä&£HÀ`’4ÿ”d¥°k=¼[· ï²±ßq<œuŒûµsyJ<¢y&èyæÈ í.Ël82Šk'¬c²ÈÆ#âC½ÈC0C¾º›î9Šnzi°¿\ÿÔ[ŠI#“ ï½ÒÈnY¡UúlFO ý&1›F’=SÜŒ7P§—p?Rn0ò …Ý`$h>iô)Ê æe“G§ÃAݸ_;—§ Ùà3ƒCv{×FÑ2HåΈioâ‹WϾáiþº„0WFúªf× ¥T0)³ÝÍ)z9©×ðI¹žùQtQ<øÍnÉ‘ª³R¤^tÔŒUNèj¬åU!ÿ>r ¨ï¼T*îîÇÂd5Þ< Ÿ¢è’öX\¯›;BÄž˜#B¿Aí•æe÷y@ØJù²ØK·pŽ[¢Ò'TÚR¼ou Uä,[$_—Ç¢ßÜuÎ+ìõý‚üô½aàtuŠŸ¨ÈÕoY !!qöÂæ¿w·ÙW|Ýc#å÷†ÁYç±ÓŽÚ¾ñžGyD5&CxRôŒ"µ¾þ]{ѾÂ^ßïäÛ{Ãp/Ú"¶¡O)%+:¶rU³rùúwí<û {}¿·ÿ†j&È1ˆJøžó8 «#GEtçÉõïÙyÎ+ìõ½vÞþgžSdoýªÏQã‹Îã, u¥*bº’¯×®´¯°×÷Û•{oîJ[d¯+å”°§GöB*¢÷B¹þ=»Ñy…½¾×nì}ÀmÉ)®ÕÜ„T_ê“`À'E`ÁÂuß[üÒeáâ4ÅÅÁ°ÀÜQº8-ìÈ3ƒâ÷]³X ÅD§åêø¯ï$ü¼ ¿Sê|ñ¦Jà´’FAŒ&;x:08{Ž-[žáB#•™óuþÜ!,fWµv¡îVÑšïüHM½ÇŽ"$K§eþ)¥h«‰‡0§h] ÚD<›ÅLM¢p01 ÷kçò”óLÐóÌÑ‘‹# \½õ%©iøß;#Ñ}È·tÒW»L¤>œ£·jøÄxA¨Ú;ünCt0çþ`I$ጚ˜oŸ«9õ€â«AeØŽ6·L ;îÏÕŽ´¾`[1g•%Éþ”¸aD¥À@*ÁÿL~_é I‰RŠ¡•:‘æidÝŠm æ@ôIyô›ÄTIø’´äÉÀ}c\ž2/Ì3g=ÏŸå‘yÁÕGl…§y‘Y@(àÝyQr¼ %aв«ˆiL~ÒqòO9µ!Hñ;Â!Ê–ébÞõÔR-" ¥‚,S#­×»gøŒÒÉdH¦‚›ÄS¸£æÇÖËƱTvätd´¥éúÁ©.EGÒ×!eª«qðõ½Êfþ¹$’ÍL‘§ZwA’§CÐ…´4Q¤–ëýú­}e«³×÷+|õ½aÝÑ7Nr#'yž À„ê"Úë|]d«;Xõ—»Ìƒ#oè¸Ì.²¸ÈJw;ì° lõ\ß_'ÙêVý…¤j :o(:É1Ê$A´Å¥Ò/i- Ì%]>yº¾¿n²Õ¬úK ª4ðß0¸5Ù"g— wÓ©ã&)õîn¾.á#;UÂ9—è:fxØ ~cÏÙÚUüÅáÀ«/´°ãæfnéSI‘À‰ëäR¥Ëý/±ê-`µ›¤Ü‹_ðxp_ä\ž"Û >sD¶Y¯ªüˆlÃÕGqˆl“;2oÖ•m\”Š™F Mb%C»¥J¶šbÁn¢Z;Øæ.;j¯$ðlí29•Q‡Zj½J:PZ’׿ZË¢¬7•µ4`~–()<"IMz%) ŠËÙ¤È ¤4R‚  R\Ùç¯9˜ò5ît§^Ýmˆ™5ð,¼¦¶×Á½ Xþªâˆ€ÅEö}&°RJJ°P¤Ö×{Ù–÷݇ö5öúþ¯îŽ^RܼÒhð°ÔE´ìòOè:ûšƒ¯¼ìȺ™í:W #Tà#ŠˆLóOè<ûšƒ¯¼AÍC™ԸȾ Fkòˆ ¦—-_ÿîÝg_sð•÷ ÀùoÜúl‘³ËØàäTépÃ;!8éRá;J~ßµo9ôÂ/ìÜú“0츄UÔåS Ù¥qœKvTB$»ß¿ïì[½ð £ÿ¤Ò@×_ ¨¥¶eç9Bñÿ:ÔÿÔ½$ Œhœξ‰þ3ÏyÍÁW~©^j ôgŸSÄN?÷ ΣôsŒ‘ŽÏÄiïÐá4í à ³$agoL¼ýÍŽ屇>× ÚS0h»Ù SÇ'„Ñ’„ŸR¢@ bÚ–€ûÊ€0 Âa² Ÿ°&ïÅm)èÏnK÷Ü–¯ ·¥øß ·e3_7G ~;°-©¦2x-‘ׄÖMË@ŽW ¼æVc² $Cá ‘9‘Ú)ñ [®°ß­ fe(TÃ…YyóšrÉ«ø*J.¦¢W^Ž]gòá5q-ÓC®Ç]ÑŒñ†ß¬!V3Ÿ7K(3K2v*/‡õ>18FÛö}APKS/Õ,•°*ؽ!ˆ‰rnkcÒ«;•´°Ñ4ÞÎc t½ÆB'Xì€v}ªu¢þ}' Í4,v;–»±…¯î¶ê`^,€–EGkƒ­^í§õ’![f{<’¬ôƒ ŸbÚ ár6¤.˾‰Jb/Ê'ÚDU.ñQU8¥nË8UáiÁQ(wà‰Á‘}_×ͯ7«a¸C©ßòM¤‰,AÍd†o¼Ð÷, ƒ|âÑzµÙüõâJ£­?áÕÖl)ä)`l a±ì¡CùÅø£!ÓʬœC÷RàY²D>±Èÿ/Gñ’ÃÒ#›WâY(µmEkÏá.¹­Y«Z2 ûb5C\¦³P3Mðñ¬²ðÙZcÄ`.ý©ÊìÉ Y}:ªÊЂµ«™Åj¶Ä¹ šfÝC¹ðå7ëºU§gë„Æùºq9_­Þ½[®Þ/?éªÃ)¸®§Íöã“%ŠêëÏäHSõ<ùñ»àÿ²k¸ÜaUscotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_example.f000066400000000000000000000111431514310134000250660ustar00rootroot00000000000000************************************************************ ** ** ** NAME : scotch_example.f ** ** ** ** AUTHOR : Francois PELLEGRINI ** ** ** ** FUNCTION : FORTRAN testbed for the LibSCOTCH ** ** library routines. ** ** ** ** DATES : # Version 3.4 : from : 04 feb 2000 ** ** to 07 feb 2000 ** ** # Version 4.0 : from : 13 mar 2005 ** ** to 13 mar 2005 ** ** ** *234567***************************************************** PROGRAM SCOTCH_TEST IMPLICIT NONE INCLUDE "scotchf.h" DOUBLEPRECISION SCOTCHGRAPH (SCOTCH_GRAPHDIM) INTEGER VERTNBR DATA VERTNBR / 3 / INTEGER EDGENBR DATA EDGENBR / 4 / INTEGER VERTTAB (4) DATA VERTTAB / 1, 2, 4, 5 / INTEGER EDGETAB (4) DATA EDGETAB / 2, 1, 3, 2 / INTEGER INDXTAB (1) INTEGER IDXVERTNBR INTEGER IDXVERTTABIDX, IDXVENDTABIDX INTEGER IDXVELOTABIDX, IDXVLBLTABIDX INTEGER IDXEDGENBR INTEGER IDXEDGETABIDX, IDXEDLOTABIDX INTEGER IDXBASEVAL, IDXFLAGVAL INTEGER IERR PRINT *, 'Starting' CALL SCOTCHFGRAPHINIT (SCOTCHGRAPH (1), IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Cannot initialize graph' STOP ENDIF CALL SCOTCHFGRAPHBUILD (SCOTCHGRAPH (1), 1, VERTNBR, * VERTTAB (1), VERTTAB (2), * VERTTAB (1), VERTTAB (1), * EDGENBR, * EDGETAB (1), EDGETAB (1), IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Cannot build graph' STOP ENDIF CALL SCOTCHFGRAPHCHECK (SCOTCHGRAPH (1), IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Invalid check' STOP ENDIF PRINT *, 'Outputing original graph' CALL SCOTCHFGRAPHSAVE (SCOTCHGRAPH (1), 1, IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Invalid graph output' STOP ENDIF CALL SCOTCHFGRAPHDATA (SCOTCHGRAPH (1), INDXTAB (1), * IDXBASEVAL, IDXVERTNBR, * IDXVERTTABIDX, IDXVENDTABIDX, * IDXVELOTABIDX, IDXVLBLTABIDX, * IDXEDGENBR, * IDXEDGETABIDX, IDXEDLOTABIDX, * IDXFLAGVAL, IERR); IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Cannot get graph data' STOP ENDIF PRINT *, 'Number of vertices : ', IDXVERTNBR PRINT *, 'Index of verttab : ', IDXVERTTABIDX PRINT *, 'Index of vendtab : ', IDXVENDTABIDX PRINT *, 'Index of velotab : ', IDXVELOTABIDX PRINT *, 'Index of vlbltab : ', IDXVLBLTABIDX PRINT *, 'Number of edges : ', IDXEDGENBR PRINT *, 'Index of edgetab : ', IDXEDGETABIDX PRINT *, 'Index of edlotab : ', IDXEDLOTABIDX PRINT *, 'Updating vertex and edge arrays' INDXTAB (IDXVERTTABIDX + 1) = 3 INDXTAB (IDXEDGETABIDX) = 2 INDXTAB (IDXEDGETABIDX + 1) = 3 INDXTAB (IDXEDGETABIDX + 2) = 1 INDXTAB (IDXEDGETABIDX + 3) = 1 PRINT *, 'Outputting updated graph' CALL SCOTCHFGRAPHCHECK (SCOTCHGRAPH (1), IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Invalid check' STOP ENDIF CALL SCOTCHFGRAPHSAVE (SCOTCHGRAPH (1), 1, IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Invalid graph output' STOP ENDIF CALL SCOTCHFGRAPHEXIT (SCOTCHGRAPH (1), IERR) IF (IERR .NE. 0) THEN PRINT *, 'ERROR : MAIN : Cannot destroy graph' STOP ENDIF PRINT *, 'Test complete' RETURN END scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_hands-on7.0.pdf000066400000000000000000004254031514310134000257230ustar00rootroot00000000000000%PDF-1.7 %Çì¢ %%Invocation: gs -sPAPERSIZE=a4 -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -sPAPERSIZE=a4 - 38 0 obj <> stream xœµV9sEÎ7%!œˆê­bšwö‘!ƒ¹ l¯#L Q’Ë’Ëü{^wÏîôHÞR Woßñ}ïêy?€ÇÊßôÿôfõ~ Õì£T‰G0pð@ƒJN^µ~óZ`ø~»ze.¬‰}ŠK´ÿ€ƒFO“6.WïW“Ô{x¶)64´,›‹UÃ…&òÒ @># ››ÕîÍzOŠ‘Ð®MÄRpÛ¢6m q÷UŽYÍ„Ñkfu­GŽêÑ—ŸsŠî¶#awV~¯ÜïE+Y2³Û9@NÀn´tDAw(Šcr܃dTä D̼ˆ\ìûš…T, Ìú?7¿¬8yˆÀÃHl•¥MHÁ”çãugÜ˽Íe¼GØ'êvêR„1Y+Å:‰âƒp£üv²gY†ùX@Ú¨„€))ƒE¯MÅ,`Ð{ÞOL6p_¬%XͱÎEaŸ˜Êä•|¢³RܳJL8.*Ø“\8îõÍy˜©j±ÅVã«"FÛ_v¿Ö‘´ Á…ß”!f÷ºŽØR‘û¹nRÈbþîëFlBß¾¨ÊTí‹•Ýwe5!‘—}˜7ÍĶÐi—5µ)†Rcø¼\ºFå–±,»¶)ƒ*´`q67òèèEãÏÄí’M5öú}òdgº0㔂º~*øN/@ê_*¯8÷=vwÇ·§Û«þŸóëëóË»«Û«oÆ“íÝÙùñÃ'q·Þüýä%‰ä)ä\ß÷`’¾ 'ûJöwtо3}Çþ-Ô ¯U Ô·V'_utÀ¤×‡YþÜ›/lß\Á^GûFDi¤æ÷µø<ߨGá«Õ×^-÷endstream endobj 55 0 obj <> stream xœí\Ër·Ýó+ne“aÊw„÷#Y¤bÇI%åT9ÖÍJ΂¤hÒ1E½lÅòä³Ó `f`î"ÍGQZhj„ÀéîÓÝÀ}»a=ß0ü›þ=yuÀ6goxx»Iÿœ¼Ú|¾;xö®z©ŒØì¾;ˆŸð ç¼7ceÏ­Üì^¼è¾8ܲ^qî$ï^ã³NÙ]JÞkîl÷#¾Úk!ºS|æÆ¡S %UÖâ=>k)ŒvÿÞý$Ñnã{o„Q(‰½f~³ûê`÷»?Üz¡z £ü ¿“ÂƱgÖ{éMì™[®¥ïÞ…Æj§PRœ;æ»—øÚ8õí~"Ï'¡9ó¾èæû0I•Yèæ®¥Ô ÆÜ kA<Ó‰ð–y&q(1wƒÄb’8¬œ`Ì+C;zÔ1XÏ7D:ìy¦ï/Iû3˜¡“½²¶; Ò;g¼Ìš¼Ä&ª7ÌÁ¾À\¥Öt?nyÏŒSоM«á¬åÃ*9ü°²2Ò;1ŒÚ (Þ÷V¹îùl9‚ÓùÇgÎCØ%)`)ÎA*ëïm'³å¨* @-J°ÙrXw­ùf÷òàEÜ)­ò]†•Ú ‹øáLš»oÂf(ïA°Re˜e¦{àh™wiÞðóûžôò.®˜ö>û—WªÞ‰„Ÿ(3BOX@@á(ÕéTÀþh©QXÍ`Q¿‡°Z½sîWØ^õ‘vLGÔH.¼GԌല 1ÂCN n«ì—tÿÞÅÍV`}ÌôVMmà¡Ð¶ÏZmàù0 à7æ¾l÷cÆiÏ_g5Œ W¦w&9#Í\Ðv¥ #@íÄÙÔ}= Š»Æ —açÒüt€ÏšÐOés²e– õ}•Ë¥—z£Ñ5¹Ñ—Æ8²„°nÏÑop݃cî¥ö*²oáùñul+§ÐÈÇÎék¦]‰žya†QU†C|Ýs¦"•¶×¢xb‚È×n—€™î`vÌH +ÓmÃ{E¬ 0óV‡X ¯ š#V½`U¨ OÝÕ{ŒDÚ¬3‰rô”_ú& ƒ=ll\÷!U­6gqÿ!šèþ{ˆ!ÏZ*Ô ý¾DÔ ƒ5²¨¤]M½²  ÷1X~PX1׋MýõuÃâ‹h5|—L—¹"¥Šq­±?#0yoöúql{™tßJÛ;-Áå Él„œRÙ_‡ØJyéÇ4»sYV÷lz$ hfšä½ÉãbzD·¨ÖvÌ£§æp˜%’ÏSª[ÈOJA pžº÷½F Z¶Õ#Ú‹Õ!öDÛ‹Yf Üæc4šBÀÿ'’hEèMÁdŒ²÷Ec­vÙL»Ðë6À0%œÿŒlJÍã”BQ4 ìUeî’R¸DɰDÝ2u×´GÚ†ÝÂÑìQwî <ê>· ˜}>÷O!Ló,eúô9U¤@š  Ü-9ÓièÛï’‡ˆ’Òÿ1|KËTÅÄ¡È(š„” ~ž…u ñÆÆR€¹þÕ@ÔJ#Ï¢¸Yfƒ¾?jÙ1{¬˜»=  ÍKÐÙP)=ÊÞŽØ‹°þNɈ=¯g„æû:0™Tkìë’æ ˆúþkN0P†˜’F0¤‚Ø‹wðuEÚÊÞð•LJÖBVâÉÄuVÞê©pë+ ¦ö¤˜jA‡§ežJù7hãÜZ:5exÿ‚{Ï¥×yžnáéÀ§Úù]š„­ä9çz6‰BPÖÊŠ¼!ÊX´‘Z÷šñû‚‡ ?O~¾Ç!NIÓ/¦4~‘˜œ'!Î’Ì ‚gÑäiBåÌN)çl·©™Es"nuH0€œÃcFê *ׇ 9"Ԁʔ'ý<:ÍtF険‰'C­h Ñ«—¼ûðjÈ=äëz«ømWtÑÔwRÞ~DÛzÓK#e¢7Ê.Ò›ýéÕ¿‚#…ç”ëM^è ±Dç]Œç6dä—¤‡_&èEqn!iîzÎo•!=`”,Ÿ}ÛóY´æ7( ôÛv¯0½ ]–ã7s?|ÏBqüQÏî"ãø0À Ø{:=ÆÌìô¥ Y‡Å\û˺öÌ)‰Þ ÞBE#ì¤Ðú9ý„(JýCã—5ãKg0¸éº!âó8€³½RVÑ>x²A-(ÍŠƒc¹‹ÕT W+@×=7Ù›ËÆóRɯ‘hS©áÅ{:³^¼˜’×ð´‚ ˆ¼8=­Së‹yj_1ïIqž‡<îW¼Ô†ÈÒ“âì½î¥Õ­š:U¦ãø¬¼Ãõ°PW¸Ó<ºqh`a%Ïɧé.œõ¶¥? )tÈSQ}â×Ð'½OŸv‡N‚ kA3º„ð‚'xBiºÊ‰üXZÜj<²ÏT÷Ÿ:SÅ`ÚûÖíÏë†1B¦ye¼©aƒoé¾ýv„Mmõìn;,¤ñ•Õ¯¯p²ß€‚O'û3!ù3X®ÁÌ!b cD’…4…<ÎD³ózM´V9j\fy0FŸÄú_‡ãm.“è:¯[£`ÝZ×ñ¯‘5~ £–6Çq*sÇsú,‹»ãÅ0ص³rI>Mrhy7>ô!ïmžˆ¿&)n$í¢NpìgЉwq=KæG–y!Ÿš€¸ßÍD§wÞ/²&(¾â‚í–Žµõ$~NÈn#ÏZÍý~B@ôvž•…Ò †D5•™þ‡®5üœ_ÍC£–“‡lpËIëªù?ø?§>%µ"”.È÷Ü<«ÞH ÿ–ìÿûxNðì²1ù™‰° <ß3šJ=WÜúîË»±5¸¶VÅíÀºîf;bä Á2¬CŒœãíÝ93 7kÙÙ±‘3PMo—C²zíRÀÁÄu÷‹÷æëöî—Cjìäí¨O8Ì\+ÅÕð'“·Žc­&lÈe - k~ˆæÃ!šfÜýúa±Æ%§¢ˆ0ü´W+¯T¤­ÂàN¯¥ÎªB5Øá ˆ˜¹âøÃ<³ßëigTñ+µ®7JOù!À¹öÀ›@¨ññdz|V}{Š€ÜJÊøYã¤é~T5 Xš£:š½­—:jɈl&r9.“³c4ÅZÚeÐ|8å0]9ÄF_îþ ÿ“VIendstream endobj 98 0 obj <> stream xœÅ\Is·¾3ùï–Ç”9Á¾Ø‡T¬xQÊŽÑU)G9P¤D¹,R²(ÙR~A~vº± `øøHÊöA#hh4zùzÁûeÃ&¾aøúóôâ€mÎ~9àat“þ8½Ø|z|ð—ï•ÚøÉaÔæøÙAü„o¸0“VcåÄ­Ü_ü{ûÃ!Lé½|{uxÄ&kµarûŸ•öÊm_ñ‰í=¾!ÌÁôö7øN0)½Ýþ„ïJ©­°ÛƒçôŽÒLl/ñY[˙ݞãŒnbÜnßÄ%™‡å_Æ…¸WÕìéKíœÈÔ'\õé ¦¤´Ê·ÄHg'W¯óœL·l˜e¦Zôu¤ÅÂþ_ ‡“{ºý˸.uµ lAØI;³=%×Ôá¼ÞÊí¯‡ðª’ÎWDÔŒÇÍ*i]¦Íqx~Y¦»ŒRÒÑgáeÅŒpÿ9þH†©$Cpø‹³ Çg àCÉ’Nƒ\HÜ 2á?Ì›‡ãœ+Ùäéã*µü)61Åó"ôàÿ¥’œRý– åéYd™™‘\øù˜¥°¦bÔËÈÎ3'¥VƒŸN¦qþtâzò\5B™—ÄMÂé*Ø¢ÛqZexÜÝŠt‰ E–žIšSy«‡ª…Nq1Ò9ª¨O4T"¯æÑ$‹VèJ)›/`n‚ÕšpEÓèjgô ?.¤ÄÃ÷¬2>À%å€MÖÎG6ý%90=G-ý,1ÇeßK…E•æp•hÿ9˜6Íñ=J«ö Àgåñoøh˜æþ½Œ~Ý}w*å³³y´·âWDÿ¹¦ ÿdG ÑZ ù –ûwâçÖÇG…1Ç —ããWÝÇ©|ö¦Œ¾+oV¹lüĬ¾ “§šÉGÞƒlf¦ÎBú-Ê>LTKìÔ«ñRÂè‰+s‡~6; °ÌŸFNR‹…¾TR'B7Aí$'þ‰|yŠŒÐÊ ”œì]ã{ ¥$Ú›àdÁ³`òŸçï*NÆ— ÐMS8™ç ÆqÅh†ã‚ï–ǵX†¨L×¥*>yqÏUºÉ1ëò*Ħ}9p6(½3ž .’ZúWämêF©7\÷ AegæDÇèõdn⇰KjdÞvI59>B|D‰—%2EWQG7)ò|è~{òÀ™Fƒ}ßáÑÌž’}¸'üö}æØÐ*PdÒ Q/ÊëJ‡ak‡Óí1"6èÃ2çë0h'¶†j{”lÀãÕ¶jÙoÍÕBù(Ðz9o¼ë,ž¾ 0‹Ï ,ÌQƒ\Êðì»POÓfÅ@–TF€ ´ü§6Gx4`³ã¦œ8 Švû Pƹ  ý€pÒHxZX®Á0 GÖÌ&³ª¸µ.¹*Å—¦¿,¯#µzr­>J™RÎÓÄ#tÎf†A'xûÀ/o¼¨ÆO߆OA‘“”Áþ <ÿDH¹,¯àò^€uÔ Œ„5Oé>é,§‡’O%ëùüvá*Xr­y´êõÚÍñWÇÌ„#¸áñ”Ø`À,ðÄdp3H$œ¸N‚Ãú%Ê2cá¤ÃŠŠã$¯yÜ(c«O߬LJ!Š7A;` `Ú\<ÌDÖ òepö ÕðEO=¸ƒл¼¹‡qÎü2*¸g–zûd<”µèè ½ˆ fƒAÕƒÌÝqN ×½u³Öæãaaïݼ˜‰»b^>ŠÊ®l Ò {’9°LV†$íÅ ­+fR&SÜöq1YÝH3°ûÆÝ&Rø"µžG”E?Dú™£™wûs4göf¡M^üƒÌ€·CÈNxO™ÖɤAzBÀö ³Óò𑬸²–ÛnÏ~ÜY¢'(e«ßd£‡AÏÉ‚#9y¤L,o ÌÚ<ÌÊã'׈_ušÂË=Nó¹ÐÌ=ˆ"D#wl:ðƒ°zdVCÀhõ(³‡'äè‡ïLÑÄ$T¹êpg†ÁÇüŠRT4}¡Ãgöñ]²¥ÔBõwNõ,.îÁh>Þ®N˜·^×5È¿ŠÃè°®‹Oú'Mœnìõ!Ê—ðl·—å‰jÔk|6‡;gñtv ×…¼Ô³Ó ­Í †õl }´­2ž))9oãñ!™Û¨äm”ésä%—^ó¡…x—#¿vŽh| *û4à y¦saéÃ,³‹¼C‹Ø†‚÷iÕžVp?Ÿv’Q“«üη‘ÿÞÃøàåê$FqÄk"}¥F¦c= ³°.áøAë™ïäÂCÓ ©—ýdþF㬎YGºSoGaœÃGù ÎD…ëòÓRdä† 6ŒÈÏ¥Ýì®üGšè˜Z®CܪßD„¢æ¸¬Jˆ9”ä ƒ++°ÿ:Å\0lȰÂa31ˆçž,bÐ@"E Žhû×ðì ÝÀ0a¦…4¾ÃÒ0LÞXg©‚e1e”XÚIR´¤yá#Öò<ÄéÃ~•@/íVü¸É®3 æ}\šy074—Iå~\ñk‘Hxý=®ãA}n,H‡ %Ìä Jh ­ß4Þ;ÓÝ$ªÂ°£fM¤UÀˆS¦6¹1üΪVEUH“(¹yTí8›ŒîØ*m @ÊVÊ' í• È¿è$J£Í‚¯˜¨Ò£Å£Wéê†@O-æÔà¼b°¬¬¯ÐBÀ’$6b`ÉžRÊp÷qËÓ87³¢…18 –°’ž¦ˆ¹¦Y+ªFp¬ºò ¸â«£KóM\“"£Y:üQŒ–!¢Ó²ÚN“G@p—*d©ðI0·*²H·¯ñ,ŽºPÍæá7̶r°g#¤ñ3±+ eäÄÀAVàúm”iîÏ›¦ž¾HÔ"œçcï2>'%2î•ÿb Çi*…ƒŸ’6ÄÎ@ší7eô¸Œ>(£_Σ¸ÆgÇßÁBœ™ÍùÕ&6¿°ÍÊ`ù]m@–ѳo.”å˜yŸG^<7¿T„ÏÍ/àŠÍ@/{_Há’”(Cõ7#Kõw&—KÎáDàýFô<²iÒO,ÎPˆ{T(ú¡<~^ˆû¼Œ’bì¿*’;™p&J<ôøu?Î#¥“*HAà&@âµmÕ,èÏG…Ú‚™4RtU(ä6±ùÁ5Ahg0εÑKW³F±ïZ®ªï¬1‡î]rpÁCFÑ—)Mµý ä 5Ü}ö&RuÜIa<ðPŠÞRY_•$h•0¹XmPs‡¥ÈÖºPKgŽt¯`æ%Ý* ^TINzÒÉ Xwxòƒ³A¸<¨á7– ãÆVü'-pn¡d§’DÞŽpˆÂz†Aådå°Š-fK0«º@Š©)ìÆb…nKy2ªæ^ÆÕ…Ý©<2­0¹4;ÉõÈè¼I$ê¶HÛ aé$ç /j`×Òµ5 ØŽÕj uVš¾ 9*ùÏòÑÈ*ŸDðaÜÁ«žùi»ÙÒ_ Ѽ©ˆDU'+EYÕIŒ-ZFµÛ¦\„àßë‘(Ñ)rTaT‹©`Ôhµ&3!ÄP|dDGÍ-òÀÜ“¢š<¶@t>rÑ!cG!Ì ¸›ó‘XD~6„KãZQÜ­º+g”£V—Æ~`¨"SûûŒB +‘:E¡¹±<ȶ-oá"ÖRßq^É(ÕŽQp6‡—bW¨{”·RGj+ñQùªæãP¸hÞ¼M:R®í˜¢Ê”jIzd©"Ç®-­£w E,w/TÜ«mKLZʺY4ÙHÓ¨Udº&íå;-iPœÆöwÁÝ Ýäë°QUú6^ÿ_rÌ©[¨«®¥¯¶%] Ò64Ã,¾¯¢=j®’ªbô÷´?Ï]¼øi³ pk¢n²_ñ÷Á1ŽjiG5â(ž†ë¡/ø]`mNëz¿>¯¸ƒÙü(¹e9fÏÉòpHYû™n3­æ¤.5Ço—åñÍ7w»6ìoµ]õeð­6'e¹S«ù€(v! Jh©æ°ÿ¥é€` ȶg¾ÿ†~A~Rü’añÛZ®jS¦ †—;ÿ¹Öëò]k½Qû b$î·–µ µ³Œµ`fÊ ¹¤Œª“KQ”ÇoÊãq÷…/+} Ù©…š„ØÚæ70ÂüÌ#7ÏÖÀ €Ý&ôÙi±H%½-«É˜¥éãb”8kE¥5* ­µ¨TLÚ;Eޏè•ô0¢oÁE˜PÍŇ…Œ³BÜ»}íà¢S²©ÍJɰöº«)n¥6»"ª‹k­¨6‰E+¯=΀i¿k%5PÜã1xD:~ú5ŒÐ•¸'¬ÄÀsdº;‰¢ÖG׸v~¥g11ÏmĽ[Lx‹Î’Û»0 ÕíJ½1dxtÏÀwLŽkèa6ø.yD¡öðˆT›4À¶®z:t}Éà*:†‹Ë_וÎï óqhojR&âWItHt<{™¬ïGÜHŒàD_' „sûWo…‚eÀ uMC7Keä&^Æù´ÐËøkæržPöøñ ¡Åõ¡ÿHÒÞÅ9Œ²+Ni¶ÝžÓT<¢ÒŠ/UI¡ƒä¦Ò½ˆ9¨g–¯ôµÕÐ[ªÀuZ—ÑÓ>sšz)I!‚étåv¹µr†OpèYé)Ѧ(‰I17¨g.0‘¯´0ßÜÒ¡AKÕÏ#GtèS)»íãüˆÄÑ5/¥Ý`Iœ©¶sÓ0|”/?‹ÓXm[lŒÿM:¾ýmcd28£¶£6ÕŽ@„ýd¾Öñ>Ñjh±éd¾eô>.ß4 Ì„7iv¾íÒøeñ ›±Cÿ % \w, ‰ÜN•åQ¬¢N f‰tD¬4]5ăôø]h¤=*ø ºËègeÔ”QµŠõv^r޹|ÙÞ•!îaBx+&ÏT“§m¹ù[ 5#]!÷ªÎ·Œò=´•ÛÂV•rH {w¿ƒ¨S;¾”h|ŸÇÉ-³ ´†®„ú]/p‡×é†`Bo®Ï~ ¥ëJx«œåË…×Ã¥I [mƒšŠ|czm?lXÀjJTþ¾PÀ­Á¶$ðŠ4” í)ðá>šX´«½ë¡¬!ý $fQî;(hºG=j×ZßçJš&DGxè]ú4èïÍ´KzL:ZÒk¬QÜðÇ ªß2AcÃ|}¬å«ÉIz"Ï,´†Èî“>"ÁF ü-ÐO2º´‹¦˜r/xQÔOTÖÁm#ºL‡®âý 6Ó b`§…á÷Îo2Ưÿ¸L´Ug‘Dìs¬Ày¶Uýûôsÿé­x¬j/*•ÛEWÛ(¹±«ÈX.šûSM“VW·Qs8ÐãÕ:×\Q¨0‚ãÀKåv@17ÌÃ+Rˆ@~~’3È+&@yd 2Ãëg˜`­d.JTñ´Ddôë2zRFß•Q8yøña• _¸{[ý Ç¢U4Ó¹ªë§¤GJ‹¸iTk©(o'ãvtÔJ!ê@ Ú)q%ëÆ}ö;a˜0‰i£\PÒõûTCºG7)Ò~Ø"bÁ µö·K¤y´.²I.°zÐUFWÉÍ®>ŒtH¡·3$ìL`Bû;E¸Ûª'¹±Hh­„QT.3ë‹>C@®ÞQϵŒÒéïš´¿l؉> stream xœí=ÙŽ¹uïÄ…Ÿnê2÷ÅŽ$Šá™ÀñŒ=íøÁ Œµ6Hji¤ÖŒ5Aþ=ç’U‡,²îíÍ1`†âeq9<ûÂþn'&¹ø_þÿÓ·'b÷âä»I½»ü¿§owÿr~òó?ذ‹StÊ™Ýùó“ô‰ÜI)'·s^OÒëÝùÛ“?ïÕ©˜ŒÕÚšýtz&&­~Ô-OϤ´ð“Û‰ÝZE'äþêT‹)êèöר+½´:îŸÁZ+aåþÅ2ëýpz¦ƒ™´ˆûø‰Ú‡°•tFëý´Šˆæ~†Ãõd£­†äO•uuû¶]pÒú¼¨Êá\Ô(_Ír•&÷Bí¿a>¥õ¥TJîß-‡HÇtQ„C´@h¹¹|øŸçÿ·`Lu aŠAÄÝùoOÎöç´Œõ6•v3{ØÕë§å^ÐñK;ÍîªÙ•›¢ îùüògÇ}ë5L{J»G€9¢·Záæn6‚Π£±w;`‹\²­ÂÔÊÃ?”å;Epàv²:ÁR;…Äߥ Õli ”µû÷0s€*”Ù´À_â$zÒ>_’ÖÞDS+@Åë4ˆB§vàØ('álŒÕNÎhˆ±VEÜɼæÅ²ûòú`\ØÆÕí$íþ [$/¤ûoÙ*y Ä­þÄ|§ |‡½ *ìÁ’–Wnx`þ)[óY¾ ¾ÐÇW«CsyÔ­tµïü¡V~Þ•zÞ¿Î×<ƒ¹:ESÎOJÆ¡ŒIô›Û:àãq¶3­ ì6îΤš¬µ2Íú-^Š1¼” &åc™žÄ·Û!E/õ Óˆ§G}FMÑú'¾èç5ê}â¥1Õ½s@½XªA@&4ÔwÁ¨sæy /–[# ø•ˆAÎt*åŠÀ8#Îçé&"Î{f|ü02óóýX_?~(7¨ºÚ)-.“èÒý?0<ëßÇ´E `zžØp°E6‚ìmÚ ¹¸½ÁÌýòöÒ RÅ6Bw阸OÞ¨…­fT©¾²a’*,¸‚Ò d>¢ 4­ 4wéíaÛ™œ†c6´”¯^úrõJ¬ÊÕ«„ :XáFÃþ+ì0Ÿ¶/A¡nã$¥ÀÁ™¡O „Ìg€åÂ*ÚÁ>…R,M€è½^®A-Mο`t °¿ÉiÉ \Ú¨‚ß?^š_-Íóî€/*ˆÿúüä÷°n÷â㉙„ÝýJÝo€)7¹s*ª)˜Ý[d“nòaîysòÍPõ3]Õ­K3URþ~·líÓÒ|;7»ZŒŸà§Óý±Rb°[6p‘¯ðÁ-wbn|=8_Œ¶Qñi@žï#HõZ5˜I‰£Ýzî–©>B|ô€¯±ÞÀ ™IÇË1—A脆[¼KÝ2Æ ÕY€êü}:¸³­Zx&=` TM¶£Cò~Ÿ¼qã‘ÌL¤àŒxtègC3D*Û*qßön°E 1¿ôöþ ô`\~ç$\»FZ4Q æŽ[¢Œ'Àú{%E³o(à*u[çˆ%é§wã”`¾öçÿHÔPoÍŠtÛŒìËÜ+F‰—lñ7L5Ÿ1V0Ðp®¿¾XúE—â/–Þ÷l.Å‘$Úµ„žL´ &Sº×'{vº÷k£!ƒ)°'¡œw ªrPÒd³m“Ò§`”ë*duƒåJœ|¾5®L]ö·Ä–ÉçmE'û;€M_«{ÓªQüñËFÒ|LG̓ÛY}#ªÖ‚Ó±äЪdHÊ9›„ßå“S¦+ƒâã$j->ûI¬0ÙÇ´¯+ešoûM᢫NÎF7|uh ƒÄš¬, 6ÏÌ»×kö?À*Jhk3•ÓHƒ$„;:4ºkù²Ç¦Á•‹µ•ÓÇ‹búÕÒ{¾ô>^z¿˜{g6 &·<Þ9adÒ™Œ—Ð#çž›3êä.³@©\bÓ_.¼ùriþ•¶&¬T=6­ä¤€ø›žoßÄÝ8z ¹j=Ea‘-¡Æˆœ±Ó‡c "4’½h­12Á`½¨XsZNvH¿8^Ƥ_!&·ARœÜ¹p£m¯õ„p†¨g©Lñ[¡FåÔè4Ùè®2kùh &º©5:Jäí¥Úô´Œ™QY*§v€3–BT¶ mîAT†Qf’a²Zf£æ@1q›?ðƒqë:à"$„ÿºvCíîtàcÀÉ~‹íáÝþרVJ‰zد%˜Â³ƒçõy[Ês þud¤2“Ø«¥ùãLmä×ͽï–&`³Cþ²sî¾±NÈ™MÑÁ’Nh¥& Þ %*…Ö@›{n¡Zô’6Ð?¤’ÔqP.Êý?.Ý¿*½n †©¹C˜!¸‚¡ ”,‡!Hè¹ QYgkn°ì†\œ¬Ø·G3¶ ä´¨€ipMIÀ”Á8lÿOD[Dd,'¢Üs"²À¤­>f"ú§¿}ßüª·M„–T Ž¸ÉƒPéZV±èX£’{d>‚Ò] fW¢Gj2s2³À²`zÍVî¹…(JºÐrºE¨Rý_U~³Ó^Â)Ïiýœç,Ç0ƒ!Ç0Eð¾ÃL秦‚3ÃŒB•æùb24F…Bu\«Ê_žÔ. ¡TÖÍ5ŽF‡§9RÄ! t•.óƒ 9sŒ£61¿ ?PNÒì¬ÖÔìJJrªôÜ‚]IŒã`ÕÆût!@•;8߀û)¬ÌÊÇŽp{\ †Ö½kóv’JWñŠtð«¥y}cX8Í8®€»:Ž,íOkG ©ì¹WàÛÇàŽÆd[EKÓ÷ïrïÒ“̧”¾“΃Càê0ËÛ<Æ:0ÚÈ1¥$0…XÔã{!ÈùÚ{ñQÀð(æØå×Äd€kÁAΉ…?Ùýè$püuUJÐÙB¨Ö¢£:2‘Sœ/M×µÅáÓ‰AžPt Na‰ôÏ.X‘æM7 ñ@’_<­ÝMXÖ9sdXV;0î•n° 2 pR¸Ns€ŠWQ ]&yKö·°¶òopw;¥ SÈšýk–q@ ®=ÊÚ9òÌ®ÀG>*Žõi>ØøâVÌé +ÊÀ`k›ò­yD ‚QÏÓÏVøÞM÷B·g =q|c2ü;aº² ¶¹(#Ÿž‰ãÝ ™ãþÙEЮÖ⻥¤ ÖËðŽëÛ¤DÝz< (‚AÛHH<@ûÐÝY•cx8ðÆÏå«UÄ£KÁ|Ì(£dÞêȇü, Àœ˜QŸ›GÖæÜÎKè@Nv|¾Hrý`?¨Ê6ܯðä*/ ì5‚”µ½A§ã&ªùŽùÔ§…Œ:JÖþÀ7Œ&S(Ò?#%è×Ìáܽ&\̰&²2V~δG$¨„6 вËáÜš3td^‚‚­Žážët|’”ÒÆ<Ù͘Lƒ7ÒÅ,œÇ~«$å¢ 9Úwòßz,ÛkT ŠæVJÒ’b·ìõHЦ‹pqƒù̇øù2¤ rŸ‡5äZrØ„s…xj^ëªöqò}ß)E¨À}­¨ª_¥{Œ¾J"â¬&"š/¸0ÇB%*2½¤3ÕB‰a&?Ú &9²î3¶z(¶!àe7<µò¬¿ÄÑf À!,Ñ@ Y4h`Qi1;ƒ‘C•œÊzäÜsXѰ£y¤Où†òp”°_M E„Ú_ø{æÓE{ŽSEƒÕ« `œ­Ø#3qCM¢ÙˆD묛Æ&{¶L¸fð+=3+F.®#@XY§ t2æ WéÐÕÂi9üX‡ÊW^™Q–Њ|e‚?åp* üÛb®¬4¾W[ÍË{ô_rйÆ½ ffW¶fŸ“Þà†J ñÌŽØ´¾pmÐßP¸¥ïS¸!p€ãó#¬hÚìHwíëŽY#R” c¥žLc] €]çè;F«9µŸCŠ­ÍAÂ^«Áö¨¶#·—MѾ2Æ^äûq²B—bë2¿M™Ð*;(— ¡]w½bŽjîДS=Ø»Môœtùe®еSåûYÓn‹¾µ›”ª=@è.„ª›³œ¦ü ªÂÓ‚”aé×¥‡× ©@¡°z!…¶÷­ë…@¤âûG‰*ÿù_)ÁZµö<ïú1©™BIP³;@]5ç (vðøpHT»›;PAa¯Ø!:ž˜\í#AçG›’txAÂÈ™€ÆP½6A Y˜û#i(Äü2Jù°»ŒÁ§Ç¢äÊa^æÕ¼ )6¹÷ÙÒ|· xÞ,Ro HìÚÞ–’PIs<^z¿ZšçÝ_Pˆü/¥ñ»Òø´|€ÏÌ!„mr…@ ¨~‡váy¤Z4ð RnüXÏ–…Þ•¾çÕÔk(€Õ@a° ¸–àÛÛW‘5®7VjQà´|T[íÕþ¿ØÉF*Ô€¹C1pú@ZÈ^‰™æQÅð]¢‹5O¾Ô²ÖôQŸ˜ožrM¨ñx¹–µ¾XzÿÒ¢8 ø°ô²æ»î€¯»c]-½×KïŸðJ<Ô.(A‘kj|]Tºêác@ÊåÎoJãii°­]¯~|‰K)à@!S‰Š ‚?+ËI k‹Æù£Œ:ýí7?”ÆE "Vþb™äå`áô2/5cîåꃋ9=ÏÖIæ-}Òøˆ¥+è5}H?]F&—¹w_›ûeÅhk"ѤâD‚Ù‘Â×D2bd3º-‘D„ìáÓ7 ’÷-‚2ØPïÓ. 0޹4ÿ´ `¢ézi¾ì2î‹¥ù©Kl2†ËW="YøÚ/‡¼ ³¶d¥Ÿä+©®iÕ^Ü]® ß³6]“Ù¾¦ZÔÿw%L›óJc{[ŸP¹EßRG9LËúVúÎÍO¾5Iêû½ê`úV5¤®l§¥Ú~XǨÖº’‹ }ÍlFt]εY©Löê…‚…”ˆôøâCÀ÷A°.;_±d&9Fg2TÒBºÎk¤NAè`¢Ú` ÙP²òhÒÙ ÉžÅá&˜¦{žª†ð‰C4—{©YÉš²šóÉÞã+y ‹b_ÈàtHõ4pÆ`ò`4 ÙÕZ8ª/[æà¡‡ ¼‘ïô ›9ÌYŠu÷wA‘X/Íû?/Ð>ßJAö…ü‘œÑ«ÙÙßV·4Û¬·¶þnþüVr訛š ¶¥ÈxªÏ- ¿~2ŽOÝ5bhÍ[ FsÇÍWYžHÚv7YžÇ!éË×囉óäÍ“Téâì5Ô}*ÄÓÌöz\+Â_„zD•ɰM—‡$Éá¨MO`ÅŽ­7 tsÉ8ð±•õN›GP3»ºè:ý÷¢–û´W޲¸ÙÌ}Rå•Ò´.½ù)#EîŒb¡»I+)Ë„jûL°:bØ7x`ãoÍŒêü^¤[wvüžVV?@ªŠÙS妚¥0O%>Ö¼”Öfðµù—l8Ï?ã¥mÑ«ÂDÌÔÖEƒz-Çõô¸(èH`ÑÜÿ«a2à_f†ŒÂ×.Áj zäÜs‹l(4ŽÓ ”Eæ$ žu³¡ò™(ña•AœsÕ_õ,ª hïþ…„ÙIÛù“Úˆ¾ «—ªXŽTÂñez Æ¤¡?n5|Ô…3·uUmƒšöèYâÀV@‹>=›ôKt@,9O¤ÂdÇ*6Âo¥å0î°ñW-øë+)1S6YÒGŠEÊ=VÇ¿m) «y¾k(å,R>Üf8¼’aÈ$dûelE{S–ÎѶ9<áÆgë%éѱâY´³ôðÌ0'&]°Ì0ЄÐÇqëÌ0|X>*õwð’ô}¾©)¢hQ&—À‡;æŽ[$r ‡/_ÕàÚ`è«ä´›1tJu³€V C§¢‹æo’vÿI/R’¾ý”‡¤«9&µ®ÈØzHú!°Ð.FÑ4xqÄë™´ÔS”é=aS×^ªe7ýùH©¹ƒ$ÌH;´ÄÒ­$•IåÏZ¡RÿCþ÷ƒ'F˜¯p¤tŽÕT2ÒBz•ù½^ë\Q‡o_ Ô¤éŒø·mjyC{‡GêKñs5õXïÊ}Ujüè}Ž)£Ëã‡.ð§ç+&>Àéôè xÜ¿~^†œñ[¯[/‚¯ôpÁW„(Æè„àéÕ¥g“¿˜.Çþ"…‡ŸœsB•8Z¹óy‡¿?ù¿ÿ—endstream endobj 132 0 obj <> stream xœÝ=ÙrGraì6„ÞºUøA+ÉÖ:t“ë#VŽ <ùf¥l«q0§u¤kãJZ_zÔŸ{Kçè<$2W™—øT~òBÍèd$óñŠ…†@ë 2ò¢—k+û¼èvøºÛ÷E—ð¯3µ*”°žÏßÎgùIIâðñšºÁhö77^¯¾0Å»’DÓP'äd¼…¹írþø%OáÖß.ÖYÏç¶GóÇËõc™õѺR3ëBßçÍ–®WÜ,?~ŸfµB¯ .ÞvF¾8EòP¨5”žéàð1hX@VA¸Œ]•¹ÂYàÉý‡…\,yÁ•;Ëyé^–¬°t*˜C¾'âØ$Vз`…Ç]B¾æ´w¥S èŒçÞ _ÖbZÂC4Sˆ¡P#€ô¥÷‡C飵™TäGôúJk/½ŠCȽŽÅ¹v“Yü˜mœ—Jö¿–MvöC|À÷“a_Ìe±Xq6wÒ8jYÍ¥K²nØïE3wŠ.3âfpjTn!Ψ”S´Vr¼X¬ Ê ¡ Ó[©LØOøm¤wÒ6¥²SØŽx _°ȱÎ0ªýØ ˜ÒuºX#õþ90µ·€8´&@gØcÑûš Ab3(T°» ¦j^&D)áA C7kë%Í-ƒ$—½Þ ù€Vp .œØ— 0ɃumR }1äümP#"‡´šy$ƒ€('¼L[p°$ÛØ#ìa0Eä|²~¾dëd:€ªA·q©æÞÔƒ÷~L½½±¶0/ïUÔEû/tÆÎG?Û¢f4ëXçHa¸4'~~òð7Úÿ ÑŒ‘†z‚ʲ6*NyteH,H3»bf`q¥Ma7Z}>¦¨´ËG½ÕʬËͬA´*bz ÐÛE _ðÎxO"2’uÝÇuÚ‡ˆB'œj¤IålFKÜ«òarÑæm;á…+ºœ³öÁJ¯OAY@_W¬É'ÌЂ‘Ö/áTI†ÒÑQÊѰü©­áP°À!Lv–Z[¯ˆaqfÐÚ@o˸Ñf‹3HG;¼J˜”ÂÜѾpœ‰†\XVBÕ ‚©á†#åßiu©`îçë'ùA²m¬žâUÁã3 ÌJgÏæ}ɨ)kåÝþŒ¾žøL«£ÍîLªÉ’”O®ãz:¯¡8°h $·¬Ið,ê“s¸YBGΆÒF 8ÒL|j¬Ogü¤Ïx…°áÞ Ń Ÿ²5Ÿå*™*ήá”Tq(UÈó`Júî2N½ÓBަFÛDy´ÜÖßÍ¿3 ¸NSÁ¼Îgi©ÇÛÎÖ¡²qÆ© *ÝǬPTkÃ'å×öŠ’€ %‡‹óg6Xà³ÁBÍ©‡'&,<¯¾Å‚þ‚ZTÌK†.³Ý0^èolƒÇ Î$BÃïxP^øˆ_œ¢öã}<'+Káð„1Ý 6°\’óó¼3ÆAÄÊkÚZO–ÄTL¡â¡–¨KVÏ$I‡¨kD_Ÿ’ÎsÅ€ ¬äý>œY8"_g¼%2~…§i^/U}L¸Yp§‹yKƒså…ŠÙ—ãaÔÖã”yf¥Í{â Áy•ÛÚ€ˆ’눾µi–Ñ{•&—•±Åp€ VKâYGƒ-ù¬®„ˆ†ÌìDEêÖz0¡ÁTìÙ3sk T<Œš³N¶ŒQ^Š*¸uÖœp%/Œ¼~pä肎³±­Hk»­ÌY²°¯™Ð÷[œÃÍyü¦ýØpÌÁâPØÄ ì ,|Ñ2ø;–¶n=F(Þ0~åÎCvµƒÿ~DãɹD^(Æ‘¥yQèNí12 R«çM(ã&°¹ð&Òç†7A¦ùâMèh$ÞqX-Á.Ä›D@#@––Û{0Ã$hœHÝìM³P{©õën답õõÚz½¶&o"5'obÙvãMH”ú j§•¯{¢ú j‚Þ%ßS,a¹h®s8»CÚüƒóç14AŒ¿Ï\Ëš‡Ö(Lì(NJÕ©Ò6$yBÞôD_­Ñ©4WC=:2÷™T0àiuMx¡e*®Ü²õ¡{ô£™¹~û!uö¦˜îI$ÐI¢ Tˆ À•ûÿ•½MÈ×z„2®w¸¥÷šY€3x¸—tu§[4ÿ÷ Ó»ð[Lw™àVÚvì,RoϘxã°¶|vè\æ˜-{ Õ6â-âÃÉ· ¦ñCÅÞöRÒþMÿZëÚ1‚qFl†yÒÀQ&eñlÝ0ßL€ ÝHsk³ ÑRZæE¾CÞÈ»á<ö-œÚê°÷b‰×häÕÚz¾~^tƒçë°ï×Ö e‹,­ üMIGZ—ãò<¹§FbP¨,ÔÁèj€ŸýìoD"—Vʃ1!â­ÅŽS1Ü×G€´^6nÁ«qHmá>âS¸|×”Úôrl‡å`QÈL®gYÀ§ôÉH_EI_Y˜íæf¡¯¢Aëöð84Ý&"ÕD ²lNèW5ʸC“\‡¡qnU’ÁÜޏ~BýáæØ³.n@ åõ¶¢XOº&ðFÍVnÒv?¢½tjÖl}Èecx4Î{¼£Š  g f.öÍ’w‹žu&^­ùÍbºùÆGy+Щ{¸!l”i%ðu“žR´´²“§Ë{°0.Y–JáÍü8ÊqFrÀョ‹N–Î c,ÊÁ/²r#€€é`p›o°±ôEAˆ8›Ó®4’~½ÍµLØzlˆ²P^yðHÊ›„_š›%œdNÁ3é„àHመ§4òc_q3ZRÝ(‰"ênâ©Þ¹‘±æ§Š3øe× #Ï«‰«D½"÷ݼ7‹ú'Ö"xU±F±(Ô‚£ÛÖ˜× °å–¦Ñ4C‡}‹:ÿ4kócy9Ђ›ä‡J8Þ„±åU\A’·H.=8ÇO˜ŠrÌ}Np“R›ioØ%¨Û_'#Tè°Þ‹2Uì{¤.e9[ÄÇ]Ú„Ëž§ õÓ¹—GE„ª°¥JQ;ú˜âË3”ŽïÍ¡âCÕ'FÔì©O„C#þü~ô§™jR?Ljëæ.õ'`'n¾àHÑÅc Y`˜3t´³\á÷\ 3ƃA<,ÌuÝ/ÉLpªÐ²£ÌœÊ­2ÞÒ##å¨F‰VOT9Ä:zp›èÉ.ˆL|Æ«,öTì$7@ ³mfÚþ;$ i§¢Å— )oðÛSpfB—÷¾0€4|b‹ABPnÿ)ñ²’~ÎØ«âôøÔ~ ÓÿÃsöŸ €†¢LA.q›ó¶$¦JªdîaŠë©{èe/5çò}î\<7ê*a¦·;@§Ï œ´âaA補ÔÙ)=ÃW¿ðO ÿfS÷¢1¢¥ÞCî$7é—tê±Ê&~–&»‡*M0¦ËÑEjºÐEëR! ktK–©t ’ë«›¬²¬ wu¤²¤äüa=ïLŽ¥d“1®Ã¼û±:à²{iZIóçÝ3Hê&q¨’ ³‡šžIô Š »ÿ礷Áæ4LÈ äMòÀXï™<ÀbL2E‚¨¨¤âkì¿ÈØ©wûd»dl"¤æ_gSðàpÎÆÊ à/ÝgŠ¥è•ÍM½…2æØÔœÙ»wãLɧ~¡*âU祸1väGÉõdJK©ÜÑ{K&·2ÖfßÿAcV(Sß6Xc[(Qa8PÊn3 F‚0ܳX"£l *'²¬èÆ%Bªt‘¨ •×àÅ8XŽqÕy£ãIø?ÓÌ(1GÙ8yØQq…Òs§F‰ûé®Ýdà‡«—ÈÁ»…÷?ƒ³b>+­K^¤v¦·{…b@EŠØzCˆUb—ý¸£W´aòaµ¦g/ÕŽC¼ý¯Zñ2{TxPø•_“öSž^Ag‡"µÌÎJ¯á\°º ‡{—QšÐéì Lbâ’+ªQ$Ž¿gɹ6´öznéÆ‹Ñ ]ù¸Y¢Õ}=íSªN„¦ÉFå· mSëP6¯1aÌÖÏ>ÊMõÓuèˆ_fS%ÏBñÕœæèh¤u €ÊSç‡ÇP×Oy:Ä„æHºÂ%ñeþHåU‰¢dî[o¹¬Ãúšv6,öÛ‹°ðlN\OÜErHA9.ŽóÚ]]6R¨ÞŒuzBŸÿÑòÈóÝ’5Jj–? Ð%¦«ˆ uyÌ eíN¨?5øb ·ü^¸Š("Z¥Ó[ÎÝ|ŒýSKj‘õ-Ü GUßÉ¥©´(îþšÿä xþï—Ó@…=ü|. ]ë¢uG(/c®ÒiaÆüìVO\FÞXßRK>x­¤ù–sg˪h#Göf™Mmè_Úx?«Á` ¤©£±¼Ké(kƒ@£t.N"m­Ì†±žÌeüGyuíFÍÞ-ѾŠXÒÄq|3?ë=߸Á–ê–CX]¨Má.=ßP LU²+<Þç.Nxªí­£Xx4R™»¸Os±× ¶, âˆøl¸¤2"œ¶%;CTFc7諵ËqÉ–ºrÖŠeD&ÿ.^Ö¬°ªŸ•¦ ¹Í206nÔ¥Òè¦ùþïŒÝ:ÇùÊ¿¨b´¢¬ºÍÄ;!Ê#¬¾ò†Ñ¡Ó£ÉÆ:O¾šÜ³æ!OBæ8I0Å›4–²cYßuºàöSÅ¥V4@Yóƒ7"é‹™l2Ú¬ÖÓÈù æÆZÓ›­‚€:öWÃ-E)Óô.ÌmžkÊblÎÕLÒÈ-#¸Þô™‘HìÖ$E‚ZSRî¯*/ÏJ¨*AQ–ývi®œÉ: ’TÂ;½,±£{Ë®Ün¨st&ƒÀ–ç}ŸÝa©øìt;ƒ›u«Ó=7ït;8PÊÿGAG| 3ßGЧßrÜ:ähÓJnø‚¸Þ ÙLä8G¥qÃåÞ°¢qWSñ›ê÷òS¬(‹ÌcnưPa¿òô¨N5·‘êËV j³q«ÖÔë,C³ä¿Ÿ«ªÂòømû–àÅ´¿Ö¶Ë©dBÁqõSÉÒf”Äf³î53é½½r} S„‡·ßÂäM®ˆ}ª¡(“2aƒÊ;›IÄ¡9‡£ðÎi@Ôɦ¡Œ·-uñq ‘czšèøÆæXyûÝRžØ5¼@ Ø£›èÅpj¦¤’ƒòH<«Å—E;9·´ù}çÊàN×qPú'÷¸YXKVžA؉¾Ã¾É«Ër¢ÝãÕ v(24‡Ä©&Cõ6\ZLï6»3Š#Ƽk»,µ¨ÊoNþpG¨¼endstream endobj 144 0 obj <> stream xœÕ=É’Çq÷±Âßðn~£Ðk×¾Ð'ˆ„$8HŠ"FGˆ>` c#‚Äø³•YKwVueOÏ`†¢íƒš…zUYY¹/5?Ä$ÿ¿üï“—gâðìì‡3™Fåž¼<üþâìß¿â§è”3‡‹¿ŸåŸÈƒTn²&œ×“ôúpñòìoÇÿ;“Á{ù?ÿ ?5þ>­Ž¸ÀÅS˜ü&KUðÇÏ—Ï?ã§VªãÅpŸæOÜãþÅÙ_`#)ÜáÙ»33 {ø NóÇ3éUœ¬Føôäíá%ŒX™^œ=dÜÂ=Ù[8AwäoÈ.: ó)¾]Fï§O´;ÞK`üb} %ƒž‚%À+%aD}ô°Â„Øo ÿjŽäA,hšýÿ4_ãgç'+Â$Œ>>‚ß­½‰Ç'ç'øv w|Ÿ¾­ˆB¿Ço­­WþøáÜ !¥èéäK\vª~ŽßÖÛãoÏOrN[ƒ³ç-É‚OÉìw¸ Ÿ¬•Ç¿'@Œp*_/³ßæÓxcØ-/óiC³6=Ù;üöÞXœ.S µ16Ó“e~ÌßÚhÙãb>Ýö”Ï¡…Ç—pƒJ¨f>Ïg•*FŠ»Óx¦GË„F­¼;>[†Édw$•“j ÒNRÁÍ:™I¤ld¼oŽ]ާ`¥Á\¼1ë'|Bn)_žŽFèL¡®¡P·€Q …~ƒ³—Š< D]wRȘd‘†ßx ” Ä¥ x¢·Z!5ÌÃy†¶Ñd°uT"Ž8ÅZàñ8Ã1$ ÆHØo9.½åG %ÖÛ)34~S¾"«äÑãgpV˜€Ç"Ö< fÜäqØsˆ ÑBøºÏï–£ ¡š‚q!´·ê¢´å[ÕpÅ®Þ*ü(ߪš4·y«N'Í,ÿ 3àd£™y_‘oÂS”¸Ë]éC#0|A¦ç\°‰N*¿É˜ùÄ[‘‚dø C‡Àv ´Ž#†mg$ñ¥ÂdAqP¡ó¼Ù&~È£"Ù,ÝŠ`\Ù…V¾Æa=)Ï+ƒËüKyKÚ¢7kA>Q‰þ¨D™ÕèŠïϪçð¢&%m½¿t^:ùN6ÚÙfôþЀÁ:É—F½ÝÆ‚Z Þ‘Ô•ZÊü¢ŒÖ‚‚O¸”>6@Qz||Ž„¥@„Á¿UZ'ø[K*”1ói=Btýžö+ÂDÕFû¤L®SÍïò°CL­¤ðÿ¦«4:°ú¤£An>H‹X´œ^á6~‚ËiX2cË)Šâ5µ Ôˆ Rc¬^@îª(AÇÚ5FË6Ø÷ ¨ºB†ø);ÉEf&Î0xW9ƒü;µæ¾o14cŽ“ª”' Y ‘!håÐØoóiF‡Ih$KŒ2§‘³fMöÕâ“|³x*æÑÙ=5ì&¾•FÓ ¼ãÁæ+ÿu¿Jƒ+‰Ë)…ÿ˜=“ޙʟß.~ÕýeôÞò9p¦fOPi9Á΋'X>Á¤_ê¯Ëç—CöÁ‚ßo¬Ù»Šœ fA@ºÅ“¾¶b™gëka&\C’HYÑMÎê•D€aïíJFF^!6û¬  {p€S™@ß×­¬Å6&.•{(R£DTò[Á‰íÓzî–Œ‡î8¸x¬i7ö®ÈŽT0 Lгó›T «e“VŒ Õ•íŒÆµþ¡ú}82Úi€áeÂ8Œ‡[.@@Ö&×Cí€w¸Ø4J6?d.ó !ƒ ÷2¯Ø+ðdeÂH=¸MÐ`Ìá°•›û8¿ÒÕÀÀzs® ÜRf¡¦Ôe½ºÙKÄ ¥JS)•†pÓzOÛõv™cJ9@…Ì^– Å˺X¤Åó5‘ü ‘_¦½œ‘˜Â:~÷v,ItñÎFqptcër e89ô#áÉmº&|œ£ÏÝIšâOÖ‡x^åóDwmÿ›“Ô ,tz«œ±“ŽÛŸjgjJ<3‘-,$)Ì \#¬©<Úƒ¤“óñBœ”9(béÕƒyáeœ H0j§Q^z_È“Y+ÌæÕ]4•% Ø­qÖú†ÈŠ*¥lŒn¦äâWÅëNDEÆS\ƒm¶C.Ú U‚? À¥ÃÄGN阈©•qÕFü©AˆoÕy höú˜£¤¡ñU;ZIs=ï;ÜAÁÏ x´ 7LÓ„tÙûÞˆg7W_EaL|ÀN³y=?Ö¨P> Ó‰wÑØK%‘ZÈÏíG,–æn†»g¿¥ž¤M¶¨²æD]I£KRþ6Ïu±Ü%ŠŒç’H/ð‡¡k’ÖŠT„uÂ$­#àÎ3çv9tgŒ«nŽ8ÉŠw_¤=¸Ø¢rH’ç*Õg¨3ú6+¨†rñ2ÿTJÕ Q”çè7«©k™„âCü !$Žp‰Îíü9sF:³“2 5“kÄ82’ÈÌpLµGÒ¤qVý]^ܨ¾d¢ÎÈ”_ e‹DnËš0Àbª­8B f²ô|–dH2Òh‘Ø úpP*¨A ×nN¾•0ŒëÙº–NdT•ÐQ*"È¿%Øa†³ Ï·¨é ZTFÍŠ.‹d¸ Ç½8•2‘n|eɬ˻úÐøäsD¡Ïu¬Âð_-™ƒ?/™ƒ¯çÑ%YY^/&‚ù [¾„'AÂÍ#×ÏÀ °cZaÆ‘¼GãbîOËè·ËèýeôÞ2úE“D¨©v;EC¡÷€©(?z)áøÒßÀ: ö?,ˆ]Šiîz;­4x‹z–ßj™P6iplmÕ8+É` ãbºôâ²Q¥¸Š£"¿P"ü].õz3dÁ« pl~ŸSרHynÎ’ÆA=(~c (9OŽH±N±&å¿©?ÐK‹ü¨ÖxÂŒ,š}>Q†¬ùèY]‰fBŽ‹D¹N3R¯SÄ Ï™‹­Ñ—•)©‰™‰í3F¯ËÂ7.|9i X%}çÒ'iÀ‡ |潎MVŸÓò³÷ËèÏËçûM–ràÀy[AÕPw ¢îL0ÌmÃŒ]Î fçuê‘åÞ;Ax¢è6¨Ý“#x+ þî:˜ ";,yõ©ÕF' â'e±Ú/Ôœ.ER ŸÒxê¥\[i†5{nU|<Ç*_­lÊO¨Ö”È- [f;.§V:ÍkËܾrß0ßÁ˜׬‚¸ á=+k‘‡c”]Z§’,?ðf»6O‰½HÁõ€@š‹&!mæ²õÜé0O²Ì嬱)ò!Íß=«Òý²ÜÎvU`B]~|FRßÖQb R²õJÎK6Ñ9ü)Ý;ŽÆ[ŒàîÑâ#AâP¨Ïr$aUJïj½®Óàxœå  "é¡tªS8}Z¯‡™‚ö£›îmx8#Ú}<ÃÀ¶ÞÆ.â:mJK<¨^oõìäNÒk>ß—€ã¢ÎÏÚÃÿ˜gÜ>ì…ˆ³+'&- wÙ¸(\mù ¬°JcÐT·Î³ŒLÖì6AZZ=IŒ(ؾˆd¥üâLÃdÆ6q€D.ùß..1û×ùÎ 6¼"Žéi^ý/gJaå.sFh±Gç{ÏÄœq~—ÉßýtXE@%r±…ä0†ŸtJïãxéRp3í4ô? Ú¢Úß±6MØò,×·*¨ys¬d\W“U›óµ’TW?R)ŸÍçmÕž >RUÄ’,vˆ’ŽÂ:fÛwnÐF¶›ý5òY\E?¹CsV!«ÞNöxÛ;Óh£cHŸ©èΉÖh³ð Õ2XÙ’ɔը™Õé®b¯WÔÆJ3EB—µý'ׯj°"š¥6¶ܼ6Veö ”Æ.°×ÒØ›_Kc)ð¿Pe¬M5|­a`ÇéR|”Þwìáæ`éÞè®+o¸13vÂTb?œ1‚S‚Ò\i§ uú}?Bq"¼nµ%ýëªY&'=£æÚõʹÍÔzeåFõÊ2l,£4²÷Hrå†Ë«rÓ¹a¯Ý\§Œ,Hi%¨‚x×a“ˆ ³ÈeqÔ8r»êN£PZÕ•¤x‘ÞÌÉeUÍ–~ ´ÞÇpû®¢5_/Û]Cîk½÷ª{õB„ýUè2Í=KݱÞßgL q^¬R,¥ÃÚtpù-×®MWˆ€k© íL2ûëá0©²¤€¸Úl.`ÎdÚ¹J§wÙÎÕ~[®è-§)m´ÚØÆr2í-ðùÊÜV;q‡H€è]–¸‹z<Äž´ºÖ-JCŸ?È .®Ž}ƒÙ£ƒÝeh°]Mñ¤ã:*+ÕøÈFÐàâBj®œ€Þ6%·RgáB2¬%ð […§s¤n«ðTÔ|,GîZº6:;S §kEéðš==¸€ëBÛ¥±hG*5ë¨mþ˜Z s­ÝÎrïdêöe‰©üÆ…Õ ªAö„ þŠ "˜M6ò•îÌ“"N[f¤ÏŸq1JFËjÒÎÓ†’ÁÙ·8U&Ͼ/–áHÕ1'¿•â<Ïòc XÕÊh—.N‡UÂÀã¬J[—:`EÇj‹Hb-ÝÒ‚)ßi¦ÞÞw–åËVÕá–Á±Á¬»(£HHu4QJBá¶%OZ€m†32¾k„å÷7I)§W¢ëh#Çy6ÉÊf”¥.÷"?ÍBs¾«8`1©ÒÔ±Õ†WºP½åеŸ¥ñbß9oùÒ¶1Éïë×ÚMxÓ;ÌÜ"¢fÕ`¶™8öO;›— r¶õ;ÿzµPØúDâ9eàâ9 Lމ,áò¸X î!9 C^Ú×чݺ« ŸŸo)UìïžXàú'@0Ò§‹ÒÑ€-5ª°œ8ˆëfNÆ9x,6O€Ïÿ®È+aÆZ̪6UxL ÊöH b©  H7:H;P9N¾bK”vƒ¤ñ*ÅDÇ×v/¬¹ñ€X:RŠç¯ÅݪK{fåÎ7Ý—î„ÔIž-ß”¦#6äï/sLËmëç• é“I›ß@ÜªØ †)ìlR¥äò™i”õ;¹0cÄnqa†¥¯jØ4Î¥À¾}Æù€ ±Q´Ï r*µëd2"5^±ÝmÔ¨¢ãäŽ?…Öß³O"ûf ö\§e¯fƒW }[žf(_ÚÐèx~ÉáÃit§6}›(ÝH Gô£7ÒW3Õcü•4òS*yšAÜ(²¸ ­·á“9E¦ø£`…ZB¼Âwæ²Ø‰PC)>ßb'lrùµCέ¼ÉI« 8åÐ}п®Œœ |c¿Xpuàæ¢ ®0[p$ãFJ:¿^ þ¢;GoÁ‘<œ2“ˆb%-Œ¸OVÀdS ò¸Xû¿‡¦è(_l‚æ8±Q"|œ˜\Ê+,p>BÄwEQùgå•B¹Wgâl¬xØÐ™*©þe±-iS{Ò΀ÖZgÖg¶:ëcÒ6;“÷xH¤M†³@¨à íyã÷œ‹ø²Á5/%PýJƒÃ©°ÊÁÌ  JD樱‡Œ|5îb™h>¹(÷Z^É‹qqÐ ZmGœý¾®·´Zl²ÈÝ3LÕ[Ѭ০QÑÃÒqÁOš¡Æ4m°tz³É5‹1Çih É‰ŸêûµTÐCr Sƒ×/WaÛV»âNH³kªE…š}P&ÃÓçfÐíd9å&µt)õ&©F·ž/XúE¼ºM“´„´ò!²i=WW|+ŽRÉ ´Ž’ÆFóÑKååÝ|`#d7ñ‰ð%¥öF&`£+оŽxÇœº^$öõ2h•½][6NÔŸòl&útÙ®ÕãÊ®¹ uõ’ž'Ѱˆíd7öÂaª£ì´J0MÔaK@ãe:Ý„‡‡/aæP¾4ûÚÙ=¢;Õ)ˆ†féCô¶:s9[¥XÐ/ÁÎÀ‡^b;ÚLJAÛI¦ÚÈp`ºM*EËÌÂΉM ËŽW0‡ÝAF‡EŽÅrV£+ÿš. á¾Äï,¦ìïã·‹É»aÒIÒÆeŒ bç·À†ÊF¾½‘þ1ØÀ®b‹ë«ýÔ]Äè‚÷kv1o°Œc/wÿ÷@ò]X6°þ ½‹Z/ÔìÏ‹­©ÍÞ(>Ó0gŒv¾V‹7K³+:GŠruLKå»$É¥y6b-:½`Ý^b©.ÂRÆ­g$º&¼Ñ+Ž3|^”¦¸õÐ?Æ\—õ¥- Ô¤6%÷]Å3¢®ý´ ¦Ò;Ê&=ôK 2†DÆt¼ªßÒé98.¢“ØWR·Æç¾<»øíߎ÷¾@Y v€=þW~µ_E|^ôó„j¡°ï akÀZPž ÛàÓ[¡¤ÅðÒÓlÕ8Õwn¯¶›ÐÅ^Ç»OÓ¦ñsƲ³ž"Î3„öï] ùXõŸ>Þ¤à¥E+®|Ke\qMß’€Í¡nß»!Ë3 žK¶^–g$BN¦öSîÆÀçs¹•Å¥‰Xö;µ« ;IÓ;Õ;^ël33³¡DÕ+UÍo2lj®­c‡dÞÑš¶OšÌ´0x¨{‰}®ù=Uh޿稹¾ ~Ç¥äù”Ðr ƒœiÁás«¯{O¶bYÕ}bMum3'£ÿJ(‹2ó:Ü€Õ|KÁÅîxâõÄZ-'³tØ£©{Û¾k5¿Dòµ™Ýez°çïšmòÛ!Öy|)dqCêuCªK³\ qiêÈf8X¤ÿ%Jÿˆ”ÃÈÞŠJ‚[RÿB˜‘è<þQ4e§ÊJaµÉ¤]ˆ±Ò€ CKuà K40n]!$L4…wÊگɞ¯ò˰¦šÚeÁ„| R]“«ÅÊ«]Éf2}(F¸^RW1¢Î‰™—­xäá°DLX¼Ñ#•9¯’(ÒõU68»Õ¨𺕰Iåiì’åÕ…D§^£ú7ÑÈzÃÂkŸ<È`Ó U> Wžúט慶TuÞ¨fÍ ê‘ãDù$=×¹®¬/zZÀ þ¥=/°à†Òq¯ûãÂ^úHjZD›viç¼Õ¥÷É¡4»í¥æ¢ÏTjñaä6 Ö=ôlÁÂpsçðÝüÑ=Z!ËÿÑ=ú‚u^Å›„™·Xì¢ÁŽ+gó.Š]ŒÐ •lç¡çf¹*‘ñ÷¡;›×í_«EÞá½È«á5l¸u½)ï¢lnþ‹ m™Úä.êo„ÔÈÃFŸ¾ÉKªî[9„ZýˆRx“š…¤á<ÑÎ¥À …Ž2Å{9 `j…ëÂ,ù M@¬ž7ÊÏ6Z®d€X ”˜1Ü4ž ó Õ«,]ƒç›)ÙSÖ`þzóÚf Éäñ^Å^ v^ˆDñ©—9«o¼¡irÇr•üÞ÷†Z ï{ÝÈ`p¬–Q±|’Q¹|߃ûå“Ô4ö„ û…ÕS5 ]v+‰3|4׿ºyï#( Ü0nòP`tÌtýrIð¿Y>¿_>/—ÏŸ»Ñ\ûd3íb°Je~åe‡—¹nÇZª:k “þ•ÉuS`.º|^¨ ËÖ0M]wÉI¹€Ý–] Øö£Ö‰c¶µ¦j¨û]û¥JSjÜÈüýæ<鄯h¾×ã}uTe—ßM]˜ÂsN%÷˜RΧ£‚"¦Ýü³e2ÞŽÄwŽ„?œ46ÕGÀ\c!%×ê/gÿ~™Tendstream endobj 154 0 obj <> stream xœí"˜E†Cçµ\¼><#gç_ C)J#§A89‰DØC)ÆN†;?…[PnõŒ¦â<ê‘Jî {žõ€¡»ÅyNÐ×½yÑ.tZiX—²ÎAb™/ú¦‘A¸7 ŒˆÛ½ ¸Rsåh“€k¤|×;|¿òò?çOrä1üÐJöèã·ÒX±0 *IÏ “R·°þÖÝî i,ÜQÇÒß ³0G©œWÉ¡¼XÉÙt»Õ!hYmœZ»ÝÀIà·¿[ç¡àX§„2æ?)#1¹T¨RÑ)°9¼ÙÞ¦8O’b1& ÅD°U^ÚÚÖÖÙ¬pŒ N£ÇˆK²Â§µ-í 8+ C†j_Á ŒºX1eƒƒÈéeFwÂ&-ƒœR)úé‘– e0øË†]˜6H.1)öçLB0;òÍÁÉÓžoXpMC¶„Fz'}’RÜ«Á#¬WK/q-˜bñ®øÀºÑTß&¯öîî¢.zÂJÂÆ¿ÃßA&!:AÀàW{:Ü,B‘ôL •~”#:!T‡£‡)pkìíÅ0©Õsk³'†ic€[û·éiRô§ÝþC‹:Þuß1oŽã›ƒî¦óL±É`‘mÒ>iˆ.3“Gï‘U.;8cHÜœ—ùtAãÄÙhpì{@Iwòu¦ÙBóéj²ÏFݽS¾Ã3{]n| Ü !uƒëæÁä¶x÷ß©£np6·<É7ùܽ0¾E%ÊÉ1´Cös‰¥˜CzzvÈï¸,0BW…ïâwèCô×>™"i:È:ô¤C¿èÐ{ Úl€1DÉ‚2Ð%×aEHJ·@ö*Ý0ËuÀKÄþ0YÖ¹ßuÞvÊÎt*â úUhæyþYðjTÈÞ*lüÍÂ?Àïš'àP Ìwø»]¤vÌ+%'|™1@txL¨ÐŒÊ½Éì'”b’@ѹ‡ÝB*Ps^|Z¨¾=‡Ãašñ}˜ÏKEˆ uÜTµ§œûùjùj:üEßnF¤]PöznÎU„8gH{­"^Ûí 7ÊdøSA$Pûi×yBM†¨q]Û‘7™g•™…Ï.š¾™)š\Åxe‰9Æ3¾ª“¹­º"²N»1ì9xZà¤nEÖ*yÇ`ñ4àÁ|›ì’%Ävú¯‰•ËâeÔdF“ÓA3ƒ¦ˆF®Lb¶M] „r^pB7ÊË ÃÜûçÄÕÊ»j¢·9n £¼ÅÛP‹`P7Ôý D¯¶¹‰5ú­Qk«€Ú€”.ÄÓý¢)d)!€éÅK’ªOw”>Óß ÇÓ%GÏšàÔd Aé¢4§n‘Õ°øàûCó+òBà¼ÁÁé›ä…þ¾§N~ìù‘ó=íÍWám‡>íÍgìbrÌ Ž¢o3ÿSï÷¦L¦#©Ë)ÂK\i m+y-l‰Ú ¿0z8ƒ0‚qžLñÖÛÙ4,v~WøôW–…Ó >Ÿ–Ú[»4GÛ²¥/mé;Ò¡ëUj ß+ºJ\‘äÏŽÅÖ]°nºJдlÍ]{•·šFünʳgxók¶Ôï„}K ”ð^jžo †lè¢ÞýãV‚•ö¼¶:š 4°aXÓ„ÒZCÉú‹üÎD¡1”z╜‘˜FSJ–”{ƒX»(®„•Õ$©‰J¸@:Í %“H~gB3C)6j:„R“ m‡?ñEhLJjXlp½¿,á*†“ ýMtðý)»~Ñ¡¤èûŽ@ Šî2°JÓ…}¶OnAï¶æóÄû^C¬¼¡ƒ?Ù£ƒ!z/e(ýøFm(äìö;ÓW“žÑæch_p1z\ÎPoױآ Ö W©#¬³»3í;pã°Ì97žÌ˜m÷uG Їû¹±\aMTyÖ?²>ø$1”e¾ïPR…ÕJÚZÑ×ÔÆ]´T¾ßý[‡µk#AKÃÒXßUØêÞiÍ3!ÄEÑ›¤ÊÔP@h&ñF²Š iJ·£$Kg€®t9JaÎFÎÈ®Tëjï@ô©ë ~žYœg–`ŠW°VH'º¡dÉï @ˆf(…ÄFN‡0r2‰¼fÑÐ/p°c±ÑÃïòµƒh÷f¶âÇ©7²rÒSómGX9é׳ø¸¶âÛ¶B[§A=Ùt2†{²‹Ÿù]ž¬Î¹‰b1 Ðï˜ôãŠ$G;[wÁºé*MªÆ¹‰Å˜óäåŒåRö¡ èÅ~žäe9m[¸çÿ“Q“0‹‰Ya;EØ}Zÿ´—iÿRaÏjã¢6ˆWØÛÚ¨5϶Q¿ ¨,ÂŒ†Ñ°m´ê·Bºþm(Yݒ߀è_†Rù³’3rlš«¤p¬”óË÷e.U +-DëŸbј–ûó%všP•*.0/xi~xÔcèçI*Vßc=X¬R¸›*”ôÞÍR«Z.¶_*~š/Rð"â~¾À‡ivqz׌7Bu„¯R¬µ˜…†^ÎZ«,<8­V&nN{i¨ ?àíòî³D2p޳ÀÅØ6RÈ)ÉÖ ]íÚo™0Øc1-EÉxõܤl•$œÜO¥ANÉ}A½öãiÇç¢e©Pz@3“ï_˘o(¯‘Èæ×Œ—zΙë\êÑ=©|6LJ R±á¯ÈJŠX®Tµl“°»,%ÙÉ­Óü4¹âJÉp)@±Ê!~kÉd‰ yU2yV#¼'™,ªª¦Á˜kT~¯ï2Êígc¥ˆ‹•a^a;µoò,ÞŒlŽPÅß_êÂZòÜrYƒI³C-4l*eX]JUÈ n¹@›ƒTâXftk·\wrÑ0Vœ ×–ZÀ6ªÍ' ùžT;›+§á…Ý“&I#Zˆ-üâ”™1ãxUn£lªIù@¨í¢'5©Œ¸r“Òù•„G‘Ö~P"èýî°´T· R¹î¹ºô•)²bóÑÊJÛéÈ$ ½XQÃP–)ßûŽW®¡åb•R|Cõ‚û¸q'F±—¾ ½PȺä u—¦B¨KSÝ#ÀÂBtâUÈU5œ½D‘×pâÀª—pŠY¹¢jåŠ_>IK3 ´I-S„ØEåB` ×d©0ÂÃÿ¬’±”yZc\–_g k®Œ»¦cÅG× kdëàY9d™šv«–1BØwu-#hFâV 7> ;Ê™yRR±;^jO¶íò fPwë•/†`©Vâ·ývm¬gþò¼Pûöë èÓž;ȧ ár•°2ÊÁïçÅ`ñÉf% w7‚¿÷øqÇàÚ„ŽŒñ3Qãû·ÓŒ·VÌØ|¸Oúˆ`q € µ}Lã܇ÙóÊli@µ`HBmVޠéc­ÄC£•Ö{5ÎèÒ*©Î~ ê¡¢é£r½C¨”Þ|®²òu6ë‹:Õhàq4,ߪ_ê•úPǰ![l˜‹'}É|…§0ø¥<[©¥ W6< ~\·âX×âC0}Ô´e¾–‹?( æàôžÍ"U»Ï^8m¿NФå-¶1Æôà4pˆ±æ”%ø²!·®mÖõ@Ð.…bš,hXqqã\pྖ±s”’ÇvQ„˜£88î«Feës?ˆ‡¬Ž9äÔÄÃd¡ÕoÅ åÁ{Éðß’Ys_/„¶ù.‡øðyªi0†/ïD¬Ñêó„ïÙ°ë¼*â_þúþc¨063{ü¤Êš0ä|°Ûð€-Ñ­S[³l ]z;˜߬¨(—éG>núˆ<àô#³/@$tË4æ}âFIf9·]ØN "µ|4óVŒû]5N/Ê蕾kóð¶©GÂïòº x/O¦£Ç ¢ÃMÜîÀ1¥Ý¾Ù]¥ÝÁ`û½OͰ£Œ–·~ô’gÜÊBlsIJàyë™?å¸ ÝÚøä-¼7»¯Ž‚mØÒ.2Ý>Îò]N1?ùIÞ6_ãRf|Áä³1ÁþM ßz™WŦϰu•·Ÿn½I¸SoS¶?á3ñÉK$\¿]Ê”¸ Ó÷„”·”¿¿FLlÊÒ42"`qÁ–QSØASIÛó@š·ÇuéïùbÈ®”§ žß>4_Ö²ˆ,гk­tq-U7iíbèõp]äª?tè«Þ|¶÷ Ú@ª­F–ÂK¡Fý‘®¾rÆ]AÉUðQ®¾àÖº¿#ðõ¥Œ“üü1’]}Åxƒà–]ï{¨#•IßÎt‘2¬ôOâG¬}©S!­ô¤£¤Jú;ôÒŽ’ M:9ÂÈÉ$JüÍ2¢«;üw•åb$ðou®ÿPG ªŒQÃÁ„E ‡Õ°Èñ5¬›ž–ð DácþE¬¾£\iAŽ¿€hHlÕé†kŒ0Þœýß¾Ò!uääåÍ“Þ$_ù|YÞîhSŠ Ço‘nÏGî'*ßÁ,BH7_îDi! ¤ ®-­‹øúWRZW!M¿u”¤Îèï ÐõG),Ш˜‚ª7ðŒý:ÉÏ—úЪ“ƒDÞ¡åØÒhî(‰Dú;tš9J¦°“S!9ù Z_ÁÒ_솗˜‹Ž^±n(^âÇ÷äßžî\ÿé8é®÷Œzgì;T ‹ž_źéGÐ$~—F}”ç“@¿‹t•¸"0,üRâë®X7\%¾ÙK/_Þ¿›0׃¾LRÐüùÈžãò ìùWÖƒ“od?¡„†ADf§å­¥ýz¤AÅþq·¯FQ¢?ž”Ï:ËÐJÅ•,ÿJ_ÔÆƒÞe]úEçö¹¯kc (õûÓª_£¬‹›jĽ„hèñÑ–Á1çxöè²ð{)jA§FO N…ôW— %?²$¿3yuÉPê{çBÍÈíïÿgLK?9çªÏá[(Õ6âÏÿ ”?žendstream endobj 190 0 obj <> stream xœÍ=Ù’·uï,Ä¢§}±Ë2I)­Ô¨â*+å¢8$Å„3#‘ÃÈr*ÿžs° ž;÷’®ØqO£ξ 1?ïØÂw ÿŸþûìòÞïŸpfv/ßÞS Ó»_î±Ý'÷8sjáng¬ä‹•»K2côbÌîõ½oqN,Üàœ\ŒB(ÎÍÂ|™ P¼Q–üo&ðwå/;eÏ :u¦A'¢h¤X¤m†çœh×*PÍê Ší^ÞûžDJÿyv¹ûó9’‹ûZ¼ãRìÎ_Ü‹„ä;ï¡.l[:¿¼÷×~zÆ®`þ?Îÿ Ÿ|/³Œóð¬\¤Öž?¿èW§l‘N))N®ÂP{#OžÕÙ×uø®\ÔÙçeß§}ëÛ>ª½¾íºo†?Öá ܨ ê“åôŒ—˜¶ŠB|T–@Ôßû¦òGK¹0N9†ÜQ¦åXjx˜ å–n¹È,Ñ1«%ž`‹®Po©;[*q–†þí& o4Ý$nˆ·{,@Í®ùQ[Tf‘JÅ=Êmì6yÑ CØä»:ûC/› JáÉOuøf@ÄéUxÛÏöyÕHSÏ+‹f‚ñ¼ûVt›ö‹6–w›>½—yð¼bx•çÞ®À¯ó ÃŒPî:nE~é÷'QkgúäÛ¼Àƒ<ø*Î+åÇOóàoyðI<Ƀës_¯ž{˜ŸåÁ§gz–[{òý)Œ½_s'È¿ÿáôÌ0[qò2ϽɃ§yð¢·QôÇBœVQ$¼ (s¹Rât„†9LÖÙé¨8SN‰>†üÞL§Ó€$,èôJº¥“ o°¢àÁˆJra­vFèÅ959ý·‚ƒ H©­°@+-x»0öÊ‘A™†€tÁ¬¶Ú9¨ XÁ6òƒÌ3™4Ì2Ó,þë)Q+o@5ÎÀ,Ö;PëºÞÛ VIëšEÈëDq¿0‰.¡BLAÅ(Eg)i Šà@k΄Mtn¶^·3%À ´“Ò‚‰W:]W![øá@ƒþ 0QÌ7Ž:lZ¶z¹Xç²µåNÛè$áW`î‹ÚÃÿTù4!8˜bp’ønj’-Eó…z&Ë[v?€fBøl:ùO‚?%%%¥ßÛ¸u«D³uBòžËÈjÔcºÆQ`¤’<òþÃ4í¤l0räÙƒWˆ’ ’Y²6ÒáL€Rr&vg…Õð¸ÿ„¢Ó”$Örf£°™ÅkÑàøŠHÛLP `±Â- ÞÁ¼ ioó6‚:„ÝY° bеÿAÖ+КñκEk;"b~MY¤ÓÀ° Õï“ûnñ^oê®[¬Á× ÚN'< „yg;ãcŠÕ0®Cã"âï´¡øçW¸M‚„+Þ¬½áÿûT+FÑ™”+áQ~Š»7g¢(®E¢“øIšR#¹‚·UMHÈIaÃÆ‡ªpQ¨»%þ Ï þZ'ñ§üjT´ÊöOdG”TÔò6ÂCÐÒµ§ºp‚© ÌBž}Y1£Ó÷ë¸ÄDÄÒ9ˆï™¥æ”k/@>ÔáWux>À¨†n¥-‘… ²ƒÅ/Ý^ XUôÄifÓ•»‘+‡P pá”î}RÑxR‡×áמqø° "°4ûE½è³Å+`”V¸r¹¥Az_&Ða23ÿ|b"Þ‘ž),qôí".. Ú%ÐA¶úW”®‡~#¯  c ä0*ù!Ø@곸2x͉w¢˜d9(âÕZ5ì9Yã•5#äШAú·•OQàŒ“&Jdœ=¯³êì§e¶H¤2N/^‰„ˆT‡àò`‰„˜w1;íÌ¢œŽòø»F„`} íÐíƒ6ôJöªÿgšÇŠBš½®Ãuö ŽO˃{È,X`É¢‘ÅÀ)ͦUgàñ‚¥©È „E[Šô,~ƒ«@æB±¡ œÅÀ ]¬¡ã= d–2{òK3^‘¸‹A-qÁaóºAõ¢4¦&Д×iº{#Å„êùELĵ¼;VhoÛx"‡¹GüÝ×Ä9iôˆ^È»A°´ù:úqÈòÁÌeiÊ’ãx2Á©¾ˆ³NƒŒºf{0 òÏ$dkÌf?¬ì$ØÒøì‡Àã¦Nˆì{Á†±¾‰„¬ ïiÀ0¦Ñ‘¯Hoïï² ÎÊAœ²fÍ5Wš¶6²aú„È“‹úi‡´+áóŽ7ï¡Bõ2beùJ2!¹v|꣞§sXüS4^o Þ'§Ë¼‰ÛæwÁXÉ_/&Nr©¤ ¼ìœïjA )ˆf6^} 4äïÚ·ùnä…Ì×J/°šäàTÉ®#4¼½ÙC·ûÛØBÍo[u«£n\m}’ ÛÉj !OãÞ…?² Âülf¯g/G‹ü–[AôP :¹¨‚rPÂþÆ ÈY5‡n€b²öYÁÜå äÉöV$È}Ø®]¸ícÕ¸Òq’i b&/œÑd>c£Ê`]Î»äæƒUëj5xBƒÐ®Sè jtÑL  дFÍ«€`Ë à0û˜¡%FØ’4aØ ÎÓreF¤€Qaõ;AÏCî‚bkxÿþÓ4É0ÞiͰÖ1±d ™Î–™»ÇİÚÆV?‹ŠAPCTl˜'„‰ˆ¾I,ü¬…cÔcáyþ¦Á>ËLă2¨ÑH†ÖB½m!ÅxjƒìñЈ¾èmÞÌlÁ IVÐ,ÑÏˇ݋hN^RnëÎTfñ±jXâ!À"„Ázª¸79Np% ·1xÀÒ¯Oñ#bM.⃠òÃ[,ÅŠ·/SdtCÑ©ÑTÕÕ/ Äq;-±3ƒÝyˆÊÑ–™ª+ͲÅ&¢Ú^V,HRJf×á›6ªäó^SiÖ:ÕTîòjjþþ‰nHòyÎî ˆÌÀ®G,äi‰“b»Ýkš&fÓgK*›vPb°!ã ×)HàaÜr-}3ÿ4Ì;g þyMæ)L(ÇJñoàÓš «¥ Ûh‘†c´GŽƒ7kLH:âú8b–Bì„{èÊJæD²L0Ĭ¹]º@eS^h#›¾ ZÆd² ž.9 ÌpzÑÌÑÙsÈÍÌãFc(®mõïA5W~`—‚ý£MÍYª…é•3Á<ï“™¡5loœÖãz´w†½ 2é1nÇÛ4‘Zo~5"ÆUç„ÂÖćËöÂJŠY2xTC¶þƒ¥Ã3ÃFíÃþ£Whô[ÿ„&+Hn›"äVe©“Xçg²EjüŸGqäBÓErža\Ê3J¢IÛ‰‰†ma¿Ë®4ÐÝèÃq3\O_‡ih²NAã10«'-v*è$ÕU&¼‰z%>TŽ[•(©´åÓ²ÂLC‡AÕçÏs¬d¯úù8QÕ~õHÆÊu¥ªþÜ` =j©ÍSÝI¡À£6À¥ÑºwpÁÓ«ûAŒA8³*÷5ÃíÓžkBNm@<æ`§Š5Ýçx'heÄ€§šŒôLMÏå^%¡R,eM;hÛܳ(;ua­é‘,ЩŒÑö‘¯rqƒNî.½‰jÎ÷²o=][ä0”?Tʮɹ8|#& ¿`|ÄÁu¦–=ý¹=?Œ³ÀØYþÅÏI”FIJ·2 %s%Gmæ¤C+ÔÇ1¨v•tñ ñíØÛ>ΩzPs/×±ë*¨»‰ot®ñD‹nÓ|-c¸Fû¢‚¤}´'Œf ²v¦!¯8ÓÐÞõ eWÚÞú)cáÛ*QÇØ˜^ÍË1JB ¿™ÅDcdœ<¹ÑLSJ„úúQ’‚$ñ nž‰xݵ×d«Ãú ~ïòºî–ÉEïÓrxUB»€æ™ºîVñ 1ë³Ñ¤;÷´ªÃ·ó <óSƒÁ‰éxAh¼ Œ*íÌ^D‘JfÎUˆ?PhIxœšy³0eÇ\&Ì‹y×ó Uâ7sÊÁvÒãgá;m ‰7>ÏpŒXs<0Š+„CDy_Ì91&Ì#爯êðå&K‡x´~ I³w¥%xRì aöš@bɳÃã™èH¥ÊýQ|S../ˆ}øü•ã×wû"ï9ȸŠý0Á5Dýyl”±±«V ç…áA?{æÂIxZ \N+ [øÚ1A¼Žow&—ÒüàM‚ /ëk†gv\ø¶wwþù½óßýõäñ)6I­ïS7¶KÙ½BžQ›EÚ¬µçˆ”—~Ø.Áô±¢‚gÑ\j-ü¬üÕžz–4@ŸÙà¶q\ 7o¤ìâ¥l‡ç¦8„¨êC·•${ñäCä3…ÍJ³Š@³ÇZå§½ÅDRƒÔrPÍn¨aÕ¼W0!ú¬ˆÖNxxzú3Ÿœ”3¬·’*دŸ$ë ;p^Îlû ÙœEÝýV€¤‚詵ãgÜ É]DFexRÆ š°nm5ìn béËt®;³hyÒWQè%¦îÁ~0¦l©X)Ægþð¤eím¦/ãxŸ•ÖwÄ) …sêäxˆÌ.Œûæ€u÷QÙ¨ Õ·©pA›«aXÔœHe#„‚ã'ø~¿;±t¡í_e|Dvð6. ݧ&ÌÎYÜZ‹Œhô&,óÍJÜ,²GÑ#‘Ž1;-’®_“ë_Y-Ö»Zãm¿´( W©’äŒ3'5’_rœßëdºIÓ÷…ôX ×Vð"×C&Ÿ×~…ÏX_è“'§hoÁ¹†˜*y4˜Å-z挧‚6^ éö—qÌj(ŽÔÆëÑùó‹™„ª1󬚪×oÚ!°b¶hEEùè¦×3ªDâ‡T·ÀOýTw>?Àvm?Ì `Áö¸L—r@ û”c”ßÔžœ¬¡:­IÛ0€‡@§~º{ܦ³MìM­ì ¹Ú¦Ã- -¬R h<…¥u,±âGÔ^¬*íØÖw®ñSÃÔoû`½Ùůæ7ÛÃb”س ¬„‡Ýˆ‰â­MFˆ[f…ó蛤* +{‡ˆX0¬žª+ĶF#ï½C«Ïåf“ov`R¼íƒç!VHG­ ©`º«[ã'ÒMÚ ô“½.fÂoѱäuÜ!.\EhÛSÇ^켫:k_lâ àÛ‡¸ªuWbaÝ¡¤ë´g0¬.~?Î:?p Wy“¡éw—Ø1h…[4ób«C"1€Ú£Ç•ª÷|–‹ÑƒoS#Ó€.¸j([ª »ŸÚ¥ÂQ>0•ýYFsÍŸó&’ÁÖN_P®®/Õjìô¨÷z·~K-r§·)Uû)µ’R©…)1aõí1֬Рmk 7+¥à«%=9ï(!(öˆnÓº®Ä[Ùø¦'ÁµMh vÞ4|X›½)ç¶mçcÃHÉe|iÏ­‡†Â»ï^¦À7*¥f÷¯T“±qíJä¼ê½:NûpcPLD<pšëƒÃMsS2:ÕK¶µú€± ³ 37Þ477¦sääMSmäåMÑÚT«(½ÑLÊúœ²)޶‹ô¶›KçLïÑF¸k%ZCn ïØN.”¢=Ìè2sH)ß(\¶ÆRô—wuxYPÞƒÔ]I¹¹}ÔÖ%üË ¸0É›+OaŽÅnI¾ò4Ï”Ûç*H¸lŽþÞLÔÛçZx×\E§Î4èD!+Å.WÛhÖ*PýêGÜ.)4–‡øøºÓÍ4ã-‡á6Çx•a¸(ð«:{>ø´Îþ­?©oêìÓ:ü©üˆ—JÈUº¼°¿ž’<ö¢/zû»ø•÷'Lsk‰RXkz-0/´Ì)P„]êPæ¨p„þ€ëM×}V÷ýy}T†ÁÃ{ÀFáÙqé•'G+ &:NìB^rû'¹ævu•¨Ž·Ð¶c†—¯† ½a6ÐÛ´7ÌV¨†+æ¨f…^½Ú¢'àÅŽÞ P‘-v¨Áw»Çwro±Jª;Ý ûªW’Ùe¬x*³§zÓiyðÛÊÒuvez€• +]&& »hɽÄD¦ËÅ­ä¡ 4øéeF~þטb:gÔןâ…ÉáÇûé2U§Ó#ô2Ù×yð¼ß¹C5.«ÕÎòÏ<ò&$^a ›­ù.×É“ªsCÀÿ™;¼…Jy*É(¶¾½È»B5 •eŽçSÒ]ÎzÛØÙŲÒë$FˆØ"Cã{¹‰z”‹á¦ï·CàÕuÝýë3!-¼”'¿Íl(×þi%Wi bËÍÈMÅ×DöðG•ªzD¼¨„^¤—+·%ä­_åØ ‡dçûïóïWDW~KD)æ^l:dT’Ð4‚T zÑ:FðÀžO_›ÃéÙЛ]eãyæ/×@‡ËÓß‹sL’”(f§4çàÃñ»ýË– ¼õCªá?Êq¯`®D¶w 9¡Áß+ ˆÆfa·ºÑÍGø/}¬Ó»g’¸ˆ\©M#îä» Pîá~tz†VŠ!¯O#¯Ã•ßsž8ü#ô6ì@ÿtJáIj¸tË)·ñ¿Xç)´ww‰ÿw‰q ‰»¢2pW$¿ (¹Ü;M”쪄\ŠüJÿ]S« ¨ ÒQµ™7øQeC~‹=ݤƒx±„$Ì3á ’0¬¿7g ’P,èÔm4èD5^€o(ÒøœhÿÖ@…jVGý±Ž7Êh½×_¿è„æaÍù®Îþ¹×²P‘t³}><è5=|;Ô…~¹ßâŽõk§OzÊåûÂ'ë^úpõãy"Üÿï¿03TxŠUÒ+ X#tªÃc„¯iå~œæn Ýg#.ÓÊ‘RcxÔsy¿?¹r‡¬š¢Ctà‹ Ë ùâiˆÝFÞ¨áÈQ7Dz•“‡ü‘.ù?ë×%¾y°XK]aå¢ibÃñ˜3ëÈ[ Á Ô¡ô• ›n£$½E‘[/`j6m°B5H›£ª€Ñ,*_ÔtKî5•€OJüö§ü—HlÊJÇœb°AGëma˲­·U¨†0ò¨zÇÃׯì•9°ãþœ·x\˜¤Ñ]V¨~ßÇì²B-Ç¡ú¶ºÿûñÐþ}¾©Í¹ÊøÞ ȇÖåI% .ú>_ùäâÏ¢àj> stream xœå=ÛrÇqï°?âT’±šû%®{¤ÄŽóÅkÍw§Oâ+†øbvÆÊ…[¹;}qô—½<>a‹Ô\(·_ðYqk¸Ý«ãÎ…^Üþþ1¬Éœrÿ#xNžÏO¤5 ³-ÈK|ÓhÅåþUxTÒ‹ý»:ú6,î”WrÿAä’<¯Áµ7*M†ÇÿuúŸpFíüâ€ÿâ9¸Å;æw§_þî/û»ð"3ÊKï#´j íâ$cNîô Nê$Ì­´>n^Jm…Ý?†Y””VyØ0 k«û‹:üŽ h(¬ZûÏq7Þ[Á÷ßá{öåöȦÕþ5PѶÎi¸F8¥L$˜&ô¤’WÃ,3û78¹XŒõûg+Th¶uFžé)œG ÿv²ZÒyz"i4°ÅZã„ËûažÉ¼{í}šO;¡5äRÖÆÃ¤³ÜÉZœoÎíi:XËaa»ÿwÀ¼ãÀhðüƒ7g–øÅQ~Ò,ŠÉÌ/An´ÎõÊã×õñ^yÄÙ„_œsvÛ³°†“ü®é9T/m×¼R¬„ZwûSx[0)aËÏíO8n]OãÆ¤ÚÒâáÔª5.ŸIÜâ<”’#[cåÄçsÕ²]\Ó©ñnr@¼"¸Q[ÜŒë`ªÕ¯Yx¬(Âó¨™io6äÁëfä ØCUhžŒ³5ÄS*â*Õhi¼Èú§XÇPF;MšÁñîýnNÎÌîâ͑»êïGl÷àˆ3‡¾ËN;Žên÷‚Œ(Œœìž}cb[Æ@<-Bé :£Œ(Þ€(Kþ‰¿7ø»‚k\v Ê.žtêHƒNDÑÂå/Dƒ4¼gº¹ T3{‚š…©9÷;µxÇ¥ qjïÀ-Q8)¬Çc š#ñÀÄQ¼ÄÞ`Ëxˆp Ø0Bf¾ïC\YI ›–`Ü—ÑÓ!ÀWuô¯õñAx]G×ÇWDÞ0lÙ‹ ðºמÖdz@¾” ã œ÷ß§±Âd…NÝJ¤ƒä-m TC­u(mŒÂ¨{$ޏ qî×}?¬ûþºŽÞ+A¯€½ RˆQéá®«Ñ ƒ×‘»‚ïu™çuô|HÁ·”l˜D¼\K·)% Ÿ^Zd †& èP hçËwBAÅ%üD1 ØøÃÕâìo…"¨áÓ§&õ‹IðÅ$¸ãÎðørÈLoQÚÁ6öÆLbû¯á~0Ι¬„O« _¥ûiålõã[<)˜<ØŽóà\ H œmn¤%\Å } TCñu(}%F°l¤¯¾ }?Št&À½0ûÿ8><K罬¯½ÎûgàáÃE C[ÉàÊÙÿK>òWÊPUZU¤:ùYøøÓjR>øõY~Ö‰d´«`3®!; sàòc»ŸµL¾ú¥‡çõÍóŠï2_ê)Á¨œC ¡&¦žó¡àÀ ’òa⹆ TÏ™·áC‘Ád)˜ÿmz†\}—ýkIC|r=s— S. üºfÄ·uñÑl'ùgžòfÏnÈ`XÇ[Ê`ÈLJ´ V –KP‡2Î`Md0{ ¢{2Tt„äoi º‰ñV7}½‰d'(Ý-aô÷v}ì ƒà\s®Á‘ª^‹Ð%Ñ{I^K|/ŒT¯¥€D'…üÞ ¯¥IÔ,èŠStŠÊk8=Š´òNƒ'ظZ0&TrµòHAº‚éïÍ@Eº‰(t u:Z·H; gi¤á=Ûšóª™ÝÞÊœW˜ûZTëœÃ¿¬\ômå¸?ÕÑ/zUª•¿ÿ®>>ܺ ß÷£‡ðøMÃÔ½ ZâUvñ ÇAøð­,<ܯ‹~¹úñ4"®ˆªàL'ôàn~ø¶¾Ræ+?~•þšä‡¡ðÞw«÷ fóÃÀ.Z„åÖV;r%ÞÊ;9N™.1XÃtªgÃÛ0…ãÇ>ä6Ó=Q™^Ö„{ˆ¯§rvéz怙>Äe¥èøC³ZK£å¢¨»uÏ*PC‘[ygʸE 5r ]Çÿ°Ÿ7Löh6Y{ºè&ƒ˜¿hÏ[«öx Tsà êÐóÕp¾Î¼ßE‹Ûæ®Ò!Ù¡E±@5Hó[ÎJ9üH}€w š Ø”úglƒRRëERó.lÙµæ]…jÆÝʼSÀoš›±ÿ°- äjú|¨¾ÞdôÝúhîÈý¡à=ê±$÷n?C¹>¾Y](§Gd󖺿ºœV×&Ü”u²â$$ zÐw2ÿ¸ŠÊ½Õ²‚a 6™Øºí„Æ™”ÉC5LV z¶» “…ocb›Ç¾’luç\“ÇÒiWènqÐ2Öù’ð§~™°8ÿÓ›,NTªSˆ:ñmäà ç%eêþŠE¿ndfüÍШG5áf ‘2¥ûÐÍíâ?uÝ ‡¾ýØ€o€âòÍÛ›|]ðÚQ :ó†\q æt㺄ü–Îu)PDÒ Ô¡rÅ'dr]Üÿså]Ø¿øEá~ù‹+o•D~¸“Œg¯(ÊCV\qöÝ`Y¦íÒÜȦýpS€6·úp£*±äöøC–¸Ò„Å^¡!~-—B ÊÉ¥@"U2Âl²Ñ›}–*»NòÙì“Ü×Y -}µOá#aS(V™²”ûŠp2¤µb5Õ½­’S»$8ÉmÈÍû$œˆÛÄiH¾?}“æ®?GhøðõæcäœÂt(žfܤj…£«¦ «²1Ü€T³ÄÅÄîuIÿkÓCùèúq{p¬NÞD$±–¤ÍÐ Ìdå(3AT.' ïS_"S¤Ú¸Ï6‡–ÊÐã±fySG‘?,z Ã!Õ/’õ•³…¯(¼Ô1ç1àâVÊo² Æ>×~V²Ò×(0ÌÄM~õ á9ü#ÌmœN¦«Pº± 4f2˜Ìkïƒ æÉÐvLoÁ¨ˆU²`x»“ ˜6>Œá ÌY-Yí]dnÞêãñ ­ï+eÊö7rÃéû¶n¥+Ë¥wv8~/{±ÄLdÓÞªT€è„„›žEªÄª‡ÁuØ•²àë–ÎzgLpZ¬›Q§?çHœ¸°3&U®á $—Ý,ßsÖ_„eÎt,WdJpPŒWÍðËHáÍu°W0éÀO]Ë€ FW0<¿ÒΡnF Ø pÍL6°.À‹¸4‰5H¯ØøìÁÆLÙ` ¤Ü&7æ¼k„4TsŒ(&€Í¼SAHë[wb‘”q¼¿Ý …©=±<ðDZëé „‚­3ÝÛ—s*Ø?m—ø¦e ”¢³ê›ëU(Eì~’iOéÇ b` M—­Ñ¦¾ }¦ØyläÀyëÎ\¦e¤¾N)ÝÐÕ em8ºšœ¹ìjZ¬f~[‡#Ǽèj†bàÓJ8 7ò &} heB{,–äQ<ë³112ë1G- Z[ô2²è,Þg=ð3Ém-*¥Å{¹Ú²ãÞ’}3&ûpåŽ'. îøE,6­ ÖA¥Tôà„Bv"‹£pÌ`ìæÂ¦‰+ñ:V#‹QT…kíå¨@\âÓwi(â­½: 3P.¹7ëÊeí}W ìý:–üƒ†`ÃËu,Ï}CðTqIðSë•·õñÍhtxÙ˜Eð#š–öôF(¡#eX™ä¬.ÞcV§ÌØ' j•` æy×÷ɪø¶­¼*|‹ðÀ8ó©LÞ»A3;f%76XÓ8¢£¼ÕW FWOŒ3+ënª=ð5l{²U½' FïÁ@\D²·Äq” ~€ Ù`øšÝš âÙD ˜cÌËFœ¥-ežÆÓâb»™@uÁŸI0Ñ@ÎV;0ØÀáŸD‘Un¦ˆÍ± ]Úg­Š#ú ?¬:W¢¼YoÓqçÑz ïÓÕaº²‡."w}.p:¡û†K8ÊÆ… 8Ç8êFFïÄÆ``f_·MBÓè&NÕÅÙÂø¹™I㙳ÊÏ&¦Þ­‰^xSÙšQ›ŸþÁ?µùékjXz˜!fÀ42€_î•R“K=³–âÓ ÇOåd(]k,+vjmêk‹uš;jRëKÅì}‰}œ§9J¤?â´ÚxqF‘” ;{m4*Ûj§`0ç®í·4qúnQú>Ps!L>Ws&H´4नø¯‚ãp7€]°XÏ»»÷Ï„ìöÃØXi*œr¤4ØIlxÈ+Ž<̱í¿Z¢r«¹Kg¶Rîkç>½“éLMnŸô¸) ˜¨œÝaoâQ›¢TƒdPÙ¹¢5’.uk[`ß©8G¤ŒW ·wê2©]mu ¼²…ŽÛÏ‘¶Y0ŽJÔ»þUì=´ kÄZk°ÖEúÜ-UgèªÄíÄ(^Ap;ÈÚæçS1'æ_Ô\’ëJ/¨)f6Û,àÕ…ëbŽõ˜;!„ ¹ÓÚ„Ô<²?„ y#àÝ9Lù~QF„¸¢þY·Þ]ÎÛ~E¹Æc‰Ÿy wpÞÿ9ªC°Oé`Àƒ›}/<ãƧUˆµäSûwü ²ÒnŠz}‰£XgÓPRÎ`5Û,RDä‘~“Æ\gË3»yÚݶXCoâêØ¥¬kMé°ÿ娛P|ñ}i†9ãx2½Ÿº¾*Ý…—šfá'}îÔ§å;Ö<’ƒGvàȧíî¬-O͈РOHøëøåŸå×.Gú4èÊÄ7­ÿÐÝì 6èÜT¶fßö1‡C®Ý1§†è~ÏfÄF™š81ÑÃU!xøÎ™{ÑÆ¼ÈI¡i®žõ×ê þ-¶7#§VÃÌ?~¬±ëeßg63ìUv?f¨ÕïNŸHé*†MÚ8 †Ý$\äðÏöK2ùºaj[›~u¦w×ðŠåVs3ç¹ÿà&„ÀìåÎR ÍQœ›Uzß\„)8w·>~"r ûœ¾jŠñF2˜ »ãži0ìñª±ÀÄØÃ9lf ŽoðŒ½08Hªå!áÄ×õñqÅøU}6DžŒž×Ç'õñ§ú²GóóñfÕêÐ1"ìÐøNæ¥ðk$>n¤ÄPA„‡ãÓ”"ØkQþÁoÅ"ÎP)2Žõöĉ=qb0øÓÇqØp­® ù×ÿ´™”¦ «×iƒVrŸußšH„ µ&Q?äÚ‘2¾x`’ywäqëÔY¨löusâ~_ÕgRN%jýÓYƒfcÙ Ì ÖlH1®–k)–k6{18š—Ìh²Üžk–˜lJbrøP&+³Ø÷ˆþ‹ËéÄþß$?‰T#ëäã}3Žñª¡1 7 ~Œ4QMălHfBûÿ Lÿ¦DÌ‹ÆVï5qzØ µý3ólC ˜â$¿‚JQ›l…Æ+f™Å]ÌÛ"øítŒÖȰX;ªçß¶'iÔ7;xœØe/ãÉXç: F»öŒ´+ûßfÙ“¦–ƒ¼Úâq"øP}b cçáõ·3jñÉà*Å)JÏt#æf,‚bH¤ùÌ:³R7ÿFî‰xÅÒe¼Y˜ìclÐÕwÒ7‘™ºï?ŠYÖ¶Ø óŒ'd¥o&¬0Íâà òu ÿ"…ÒÑpˆ•%V(`ƒÚ¿uBhFëý –>f vŸ*ïôÅÒçIGÖÓàà6)™R™Ð4trÏ÷a3˜Øt­?gMµ×©‡fž v–çÞJºG\yøÚj1˜ýóޱt›­ýÚYÇ×YPí·“C=‹«kã³eöQ(ЃÛ&:Ú:èq;âö¹ÈzÕþW`ïð‹‡ÕOór‚ˆbøÚ?ÃëInúîgª—î™z®óîÑ-Šf‘Öïçý2æíÇBºÎøX—hj$S}¼=¤Såmjß6éžè¢9 £l),¨Ï²µúãmôó$ƒŸlJ­SNˆDÜHF¥õ«¿Íx[q¨îà°À,ì°+XÚ8—lGûŒ…c2ÎàßèxÍ"Ël3LÁÉ,Õ¸e’§„ÖKŸ¿šs˵ôyÜ`+âËŠîK2;¡ã|U¯h0ˆÑ~;éȦ1•ÑhSÒÀy¤”+VPHoj¹b ‹+6e¤Á&õûrø±•¢Œ¯ù®Ílj&÷·k3‹,%éÀßW€¦“Zy|LJ à7€4Ž·<´0üˆn¨éΆ¦O_xŸ¡*µ*ÔÁÍc€«,? ðÿáþÌ+gÑnw"C+®tGû¢° Aÿxô?og˜8endstream endobj 259 0 obj <> stream xœí\YsÇ‘~Çþ‰ñË.à šuÚØ­¬µµa[2 íƒpPàn M€²ä_¿™ufvW3„É•-=°Q“]•UùåY9ó—˜äFàÿåßó«£ÇO¤p›W7Gfvó×#±ùå‘ÁL2lœrŠfsÕGŒè¸¹òúNý(úèØºÄI*ËK%Þf^ˆwvvÄHþk(ÚË>z™¤á¥SǧCÚë¢å®œXuîÈÌà9Yi·Ù§÷ý…óÕûù )ñDüs»ÅŠŒP&„›´¦(CDùÀQÖ¨î Õ}QfÀí µÁ`ØI•Q&ÊŽÅvÀiX^}Råé>éñoöÅÔG¬ÁÂÌåãï.‰ ·áíºÇ£*i†qNûÛúñ·õá×ý÷»¶-þ¡dݸÙ€ ,G,£°ëTs ;vÞ-`'ﻃbÿ4ú]dÜñœœÚ'%<â#ž°Þ|0lƒ„šðšu¹âÑ ÀSs ¥Ui(ë «:/ùCâíM;/†Rh¢û¶3Ü$¼ [¶­ÙRÿÑÞhæ»…„ãÜñý¼d pì`–âe‹žû~ŸÖ‡/êÃ×}ê³Å‡¿ªkbMï]œ‚Bil2ÒpÑKgƒE/‡A%|îÁ¥ÍLZyÑ S1]û ªfÈbÍB1ÕC)æjee ˜{6NÄŠ°ÙD}g`3ÏœžrÖœ(Å)×MË›®oÔí|Ú)ƒqËlÞ.ú]_±MVÕ$± ‘¨ï¨Øòn‘‰õ"LÒQ "èœä@lT š…j_ zb´ $ÞQÚýô"“o†´Ì¨þ=#“Ý µ¬Æ9k‘6ÒטœÇ9»1y» úŽewå°¾ç+ Öƒ!¦±Pµây|#bÈWûåñçÀ lgó;*çŸοì?ôÇO.¥·VÄÉÐkª,U~MÕ©¸ìãA¢¶ 5¥¢¾£6ÿ€¢Þ³jz°¨¬jÊEm¼,­ŠW±¢aL¡î„Q Rºò^IT0FH †tìs6Ð'p¯œ¤ ¨±3GYa'³¨ ó·Ú§ Ǹœöéõ±ˆm¤sÜH2ƒäs6@8f$…¿ÌKÿ“ñ’ùSÆAÄÁ86‰'6Q£¢SWª=+dVùëÌÔi˜^ÌJdÏ;jßt¼‘ë)‹’ÌéÅÜÎ]9!8*ÆÍ|”ð0‹‡G¶À;ÈÖÚ.>ë¯}VR¹C4 '0±¥¿©x°–ÁÃYŸnKvô”“ÃÓþÞç‹ÛÄWõá7ÿOÊKï»Ê/5]ªs߈8?+e4*†KÐu·•~ò¢\wÏÓ¤TàÊ…¿äàƒ‡Ïû{ß,ÞÛ…QÅÒvDœž¥íŠáRt×o!ßò^Ž»_¶£ðõHìÔÛ8‘ÐŒöxa·Êˇ¯®Í ¾í£¿é£Obý}}ø2É7¡R‘&WBÁ6|þYÏÉ× dw'P+°1Ñ„É2§/`Dp_ܩ՞°1ÑOAÛq¯Î?asOØ”ÁGDЋSÄÒh°ªnk­P Ä%´ ªgi<õe°*Óè|­Ç­r#Î~@Þx›¶<¬[O •4Z¯gjШæŠqˆPƒÇRY °¾°êkQP’ò0n)äKðSÇðßÓþ…t¼·©11ÔÚ„ R´æÎÖ&ã¬ÀöÐ+Îrà¹U§b<‡ƒ®àCûöhmÚA"YG¼¥n±ENÖJl̼âcøq§bcö»#®Ç`á‚wšl×~’ìƒ5lÿ¬ôAÂÖó> [o‡¤Fõ²?Þ µõÎÒG»‰j¾ŒŠ”Ek_TŸL#ŠÎÐ:'%–Mk¸ÒXY†&ïz§Ål>Žv:&@É™5hT vò0sF\7nwù ²=K©÷ÙZ¶•¦}ùÉL[Å;¢+ ÈÕv` zSyX³Ëè®úY½èÐ;uHµ¶ŽS³¸£EÛš¤–x{à6).uò 4ÉIÖ³$§Q1èƒn©»åMâ]%C.÷Ÿž•ÙÚ]ñ±­ÌþYvkè'³TÊ­Î;ð^o/×,d‘Pº–ôj5nÙmoYjŽ´zb:*Iä7“ˆiR<èfÒÈ0iµ¼™¼«ÈÉ‘N`H2S¢7ôéäµE2µV—4 yíÛÊEbs X\“EæÑÞ WL^›<¨Ë«¬-^SXì(¢0H"ç÷,Šã kK#qymy¯NŒO¹'èg}º§s¬‘¢tð{5÷ä»ÓÝà ¡!}Æöß+Å/=:‰:¨SCØn¬¿³iáÍ¥n•èÇv©tþ \êA÷v©k¼ƒÝ\ªkAö¢ã·Ø“²º¬«§aÙ+ÚšPJ¹C· Ö7íWMcÚרæú¸Mû8Ϋò¥/€ÅsÈK³K¥‰ö…S…âûñÀi¤¹âÝðÜ¿S±šýrÿjM|ì2Àz|¢uØñyEå&Á«÷ŠªQí °·dŽ÷SAÏž•Ê{¢çïP©Ü†¥øW¬Rb·lØÀ|N!‰µ–r‚EµNc½—5ið, â±D‹1§cš%±xï *…aœ´Ï[LÒ - ŸCŒ2²ñ×dšsðÞAC"çñ[ x$õÍ”~¼%³Óç2‹3:}¯¿jüM0lÿ45†ÍÙ¯Î~þ‡Ìºõ6•Y4VD‘ƒ(ê°’ ¢ð S{•87Í…NQ¶€)”PôÍ·drúLg¹&ã¯pF9ÌHInpØN"¦5ñÄ…Ž.”’5áPDå :G>`Ť½øUƒ—™AUM™šhØ› P°cßg®Ÿñ´v´ ]ø(hìÒQ9 ÊOàCUÇD{•”C¤ôžl°a.œ :7ß ¬ m¼àé!¦3Sð‘N|]òñMûæB“·Ó©¬¶¿ÌËV{S^‹í¸“rl;î¤T«ž“_äe”«v•#+Aá7iµ²¦aC›OÎ&멉޲3G)°YFÞC%9GQZ açAá°Ñs¾L£y¿Ä#2˜_µÑdyA¨‡u?&/`Õ6¨ 0ž~Ý” …sŽ·JNÍcA'êöÜÝz ¸ä©™Æ½fø½$GE†‰Ñÿñ$ ,•D gy«b½MP6 OanÇ/äÍn>~âXè ðç9|C|ªÅÉl§YF 2@@ ˆ»á?“BÕ2œ)$ÄûyE n£ŸE*«P¡SÓ?0Í(#zq“ÞE9P’Ó(ætë=Ñ¡gÌ« ʃň¿Kšø¾vq5:µs-{6–*{6‡<_U è¶K¾v¿UsTšEÒL3Õ"µ àÓÒM3L-¦¨x³³’¢–äVZë$ÑHSÔp¾Yf[‘¹¥ÔÏ3[Á‰«#3knÍy$øSL3„cØ}_Ï'´RÕÓ7Ò;éS ¡Tv øuܽ2ßC:°4:ëp!¾Í^ÌDSr¤2Ž¿“#b`AÍEŸ&mHIg\M%dp:äµF+‘ 9…¼Ì¸Éß^/ïú.Vó|Gyþ.æ e®õ¼ ꬞å=Dk¨Ï só¬.ÓÊs„Y]Bï¢Å+[ˆÚ!k‘´Ç)m]À†Sfík}B·ÙÍõ‹5ø-7:¨Ñq²@ÙûOû)åÐÄz×S€á_’xƒÆq³ID“i5fᡵÐÐ<+"•9Ó³ V30¬”,f dNãzø²âGyŠ“„QŒ6‡NϦV¢†ÁÙXø¤Æyù›¯Zã÷£$ƒíäàéxÞÌ>›.4uÿÖ §Ê¥¯‚’@ÕSÁÒºTÕ¬#©* èÀB©Ô€ÙDÕF‚ÁÆË}êš*N°®‡¨L–žª''Z¤V†ãoÓÀ6AJ?Hè“ÃïISJzï†è•ü e§Øzâ༿Æ÷‚pJ[&'ì`KBj¢XejÍ_R|å0רQI¤:`ƒÍ¦ÆåðÁ2KùX+j¥®=ˆ?¬Š‡Áx˜uÑqÌN! Ñ­F}kœeU3‘Ó€~V¿F)Ï«,ÖÍ'U F­å5D;‡™R-Zzßš¬‡ŸBIÊÑM–x`q'y±ä`r*=‹)âÞŒÛZz–+ÕÈ­ "³ŠáÙ1gÛÃ…ø²˜Qaáh««])L¿Ëæ\«YuàãÖàÖêã—y sd•ƒ“;þ&i½púUvnæÂÖ9­¨5ÕNCÀ KLMèñÌ.°¨‚µÉÝY¿¬GÑ~‰«GáyƒX³>ÿÚZˆLìñÿ|•&Rѯù"5äŠ^Þel!ŠÊc«SlÄæ Ñ©Ëì ’ŒØbKv“ç…¿]-½"j+´0‹qf½¢œðkã<'ÞÉ'¦„XÜ%^CŽtÊ90S”W‘Ma¬K&Qãs çvµU+”V¨)gµ«´fßA½ÑE× 89´™Y¬“' X0Ä/>¦„b>É>þ2pÉ !2Q%#›?Öœ-jG‡!gÓQb3MJ4 “˜h¤ô« ]I¥`,Åù D^“Ž‹F=Ìx¬›ʆÇB˜—Jßé'Ç욊¯E"kmVW©~º¸Ò€5ÑÍm»&.ÝzPxÑÐíšhÚÁâÀQÐ`Wò³»ëÛÂ@æ–kf«Ò’rýš˜­3wô¥ä׆/ò|ÖØmçY—îCýÐ…{9IR¸_Z‚$rY5ds’Þ#žü¨‚±ùjÎ þp9ôr˜--wㄱe7A(eËnÒ0¡È»‰J 7sŠ?ÒÏ}¢ E{€üШk-_\ŧ:äJOŒa1â_¦ŸpSØÉ¶êÐ6™[—:€×D®´‹UäV«*ò4L(¶’ì‹~ëÞÝb•@ºãÿ%ʾ¥z Kƒ ”¢š8·M-Sðhà~mþbÎ ¶‡ú™ïÄQˆßV³µíП—WVîù®ù”ö ^[B¨öâ]!³Èwã´›Ûð´õ\,N¸×¾óf ËÆ KO¾iÊü¢í†d„vV&KÁÑ9‡û)~ï,ÌR¼;|É"ÙÍÇ ¯!.·œ³2ƒóÆ h¥ ê"G^PRr¢°« Y»ÝžEÈ'p{†»—ñ@õ=’^š>–°Þ""@WíÐ’ŒR¥ßôçð´>Íñ>nyõ¼$±0äÓž("û•kzÇFŸwè²zÔIr™¤ìvõªzŽJM´<“Yžëió¼&ña5gØ¡æõC)+ªm ãlÍ%¬ôrP»MÀ8u’ô“àÞN+Mè° I'(;¹h-½ùÝÑÿT»´endstream endobj 301 0 obj <> stream xœí=ÛŽ·‘ï³ùˆó²À™…N›÷Ëyð ë]¬cGšdâE ÉÒȰ¤±Ç’åëSU$»‹l²§G£1bÀɃ[6Y¬û­<ˆIþ?ÿ÷é«3q¸<ûñLÒè!ÿçé«Ã'g=4æ§è”3‡‹çgé'ò •›¬98¯'éõáâÕÙ_ŽŸž‹I ­£?>;?‰ÉØhÂñõ¹ò“Q>ߤA…>^ŸŸä$œñø~f´ö&_â ­­Wþø{þDz\ZÙ /Üñ[|¶Þ† Ž'šn¬Uñø V0¨„ªæóñ«å­l/ïÎO*ø){ü-žghkøï.»K°ãð÷ý„+ÛI[}|ʶÄf¿N3¤Ç'ø8Ù`é¼8*¤® Ã~÷–mô5{~Š€·Æ…ã 6šo&(k~ôFUA’ž‹ò)[$ߪFàð(Ý$´9>Ow#œ |Å+©ÿ¿øŸ3åì¤4à×Å·€N]šDTÈ´˜T±;~¼LÉp Zë(îÊþµò®€žùô  ¯=>Xæàþa *8I…€—é[ÈâÅÌn°¾6aRv|+?á³÷FûP ¤àX¶Æ×Ôó„-Ñ…ÿôÞÉJ›gŠš¬à´U“Ó®:fšíT• jÅ:´¾ ºªHFf¾ÄÉQ9À—ã×ø¬Œ€îÿM±Âhz7ÌVªº×Çç@º@æø3q>âr§¾Âê«´€ö¾¡x…—½LdáB©ÐÅ~Ò73ápÌ]Î&í|Î4ÉúvˆrÞ²/—áy=ï™%šÈ»'¢°6GáÒÙ]p=&ƒLŸcóïªsž€*FÙë…ǘèí¼‚Õ–ŽÑ÷I˜‰j§xL“ËÉãÅ|gˆ²ÒF-°Ñùñ»åñÙòø÷fÔ€õpÔ2š_W‰ec&-|y[—{»”Ð̇ݻ¼^ß.¯ç]ö¶¦í¬å@4ʹ)?á|†‹¥Œ¾F‡× 5GŒ‘ÓÀ%Þfh¨F&)Õ¦l)ÁÅ-€8€¬ù«S‚MG_p‘¶ÊE #fšÔ¥f‹Lr¥a˜,T%¢‰riÅélª¥\”:D"Êçg'ää£< ô¥Ñé¾LâwaI éá®K*¸Û(……°ÂYS´•<™6­ƒ‰À‘¾cã'BŒÀLë9/–e® ôÒW´J¨HéF+ˆ4OÏ«»Œ—4|¹œ¢‡£2L1Äp¸øß³‹ÿøËñÑôâºìËD _x¾÷Õ¥2ÁÌ/„¯]ãiyMhÄߨBP?/„è—ljÎ.àÄG±É9”žÃ8y–-¥Ù®šíAq~÷#XZKÀzøSÔÀ®Q¬åxøŸ[‡Ó )I$‚ÑéØåfHl3Wº•éCÅJn 2c*2ƒ»1¶.-¢è«€µöŽž]-ž#Ã@9á;Š ÆÉ ;d>Làò½²Å¿ÅE@œJÓQl[ÜY” &ùFzgM 8ÆiÜ)ĺoß1ȯuÑÄ›F¼®aB'©A-¾Qþ@T3Ùäñ4 ®Š@-J@}#DØg­HóŲÇé .†l„ë§ûø-ƒ6ç:|úw ÿל„~ú`™Ò£liHW½gÊÖq>Èò–{°±AñòÎtH¢(x#Îv”DŽ>4y`¾ ¿îòz8³ùø/¹2ð2!§Ò¶sñ6ÀÞ¥õQ[« Í•ñ ž®:4o¯É,`+]C†j’FPÐ71³ÖsðxÑÇ3_õRwÁƒ7Ù~Ðd³f²ZJ~›#³™Má†`kY+ ǨZ›^혽ÌÇ•íâE€™å¥ª²ÀíŒQ FÜñ¢ï µô¢ÞËRp+[N$: €½öŽÐV]X­V.‰»thO@2–UeÛ€µé:¯ý"Û®tJ¿Ø®x¹¨îýœ€:Ѓ謠ŠÎÏXü|›iÚb1¼V|Œ¸TæcV«ÂÇœ06Ï ÇÄÇ"ÀQøȹX›äL?'€aÒ Ê´Í>!ëÓ˜Bø–‘Z(1Ðíu˜Ó€f¡­üÅ!ΓÌV.q `q ª#Œèõ—é§ÆoHxÃZÚ¾Ù ¨©<~ÖG?]¿Z/º¾¨ìÉÏ/Îþï‘Â.:3À;‡ÿ:S€Gp¢ƒuÚ€Åvx#FÌ<òòìÑØ­znmEîZaR!ûµ¿înø‹åñáòøùòøñb¼V©àt"…öÛz„û‹þ.[j ¤jëX¶ó§åñËåñ“îÖn[ô` 3 ñµ^­¥Òw_ìr‘ºKg×Dg4EF¨Jâ³wðW3*}ÂgÇB§÷¡{Ox¢†$ÎE4®òqÑž\n`l’+ ¨ÒŠ“n ôä"SѺ–½WLÞ`SÎÛ%m,p ›({äв»(W~ZPeAíDîÉæ¼5¹7Ä!­žÀĵ°ÍI#yÈ AF–÷ 0ñµ ¸ÀäU¸OÂvè 0lïNÀ¼ÃÞ¢}¬·~gÂ>þ¾çqì‘;0…X™ï~¤êp;‰kI#ûml²hº–ucë€Cš!Yo‘9½A¯ñ•Fù&½ޱ' ôãÜÿÖx hÅ®F³Gþ6ÜÉo†¿¨•¼· v'wãQ6L Lè®:Îõë·õ¶hiÛ¥ü²Çc€ÆÁ:Œ.#71Tt!̶k£ówÁSÎ¥ÃC,ÐáV:ÃU×|“ø¿s ,Pi…Í DÒ³ôê¢bCãÇW rDuaý2-ââ®ýßÉãÄwˆ j×FZ-€;FÆÚHxïf ¬¼«p—näxB?”ú –&ÇO•AQkÆd´ñÂæ{hNÄI.£¸kd'P¿ž"àhM¶·% 4~pS#v6â¸Oí47UúdÊ Šµý»‚5BµÛWÉ´v¦8uû÷lÈ ŒÅëô{!ZúÂÜþpŒ@õr¼`#ð ⦱HÓkâ·À=ý·iº›Ã<Õ»z„'£Dk»à$÷S½N+`Èã¶òu\ š%âJÞ âJKè7É©¼»:óaÌ»@MÖm»`Š‹VóAýATF4ìöbõЫ ¶INª¡ÁL”P!ª†Ë€GO é†0¦@Gƒ1'%q–”Hn¡Y²šb<û'þ½À¿—º™‚¡s¹ìf¨vC;4&ESí«¥–YõâqSë•2ÌJœV\í žÑÌ4ÑP³A‹aÇ l@#gíf!)„)5¦MÌ Ä¿ŸSDÑèG“pr6;b`CÆÅŽ-³I!ÖJS <^-×Ë„7ÍKêiÐß¼œ•çGËŸ.K|µŒ^t'|±Œþuyüz™À~Ææ>\&|N  ~\>+-X¦ÿ©Œ}Y>)óJÏOÀtÊß—1•V(ÌÙ#ÃÀ$ºÆŸyèyÖûâOpSÐ>áºþœú×Bâwª?,`zÜb=¾ÁŸÉ {~Þš‹?~DÌA ›c'yò+Žj8THàp-3ž,3ØK2¾Ä3Áí(ìKqY®ËÃó|ÊV”¤`dþû«ò°Þ†Šy|½«e[/ÓzVº˜ø^^{^ò1[›6áH¹§¡ŸWx3¯¼F#¯šŠ£¢Œó5ͳ*ÄʳÞzUB1¬x TëC›£\$Â:±Ê«üÆ6Y;í=!P$ÞHyùþJÊ¥ö+ß§Œ°­:H° ëZ˜ ·ºé4Ä)®Ø ’ËlÓ‰ú­&ó\ãN m…ü¾‚ÊGn™%Æw‹Y@V®ÉÑ⮎tþ”nÁ{ÕIšÓ¤©š"Ø:·*egy`IÝŠ»Çí…èä®ÅÍImÖwƒy]u>ä¨g-Ö\"a”ìÝ0~#Ϫ¥Î³pž:YC‚žäbxµg#½±¡•™žž¥õ‚U¿}ªÉÞÎ5=îÒN8jš"%ˆ¿É»Öõ› >˜!LÏ%@E]3Ò•Û<áyߥj´ÀÌ„†ã¨š溗PÓ»t¾ oôäï¥zTPnfÚß[K¤x);bÅ‘®A@Ô± «$¬kN›h5½ÏV4U8‹ž3Ve~m¶}>Q-H>O’ 9ÒŒP8”™À”%e‚X^í{ðƒôý*ÉW𹊠¢¸—o#óÑÑF6êÇÒëïX°Q%ÖD0µfzÎ#â ÔÈχ€­ßˆÛ–«œqbÜ3[{ÚË‚£ÏòLïæpù:V[®èy&“0¹%°›kvmÍjÅ ö¶Žê‚ö°aEV0ªìe"$WÉÆ¹~wIÈË'ªé¤'Õ•†çö˜é`¿Âá &ûsBáa¿Œê“ÀPŒÖlE¤ÁÄGÌ*餪Á rGþònôV½4.ì×x¦¼Óö i…Ò™IË_®N„ØUåu;8ÈvU12ðZ|GcE°Û¡ûžˆã`n+JTB÷ †µ“»0/7±ÓØ»tB§Ñý$ZÆM=CJ2óœæjÍ:¹…–F¸+l›JL£AWÈ<¸^¼²S4{•ö4Û´Z8»î˜œ¬xö=ñöË>F5”G籔ʄïÁǮǹ‰~5µjIÐã胊Ɩëæ_ñ\¦M‡ ‹*ðmþÐÉ“ªU#çq4Œµô¥bCF3è*ø$J£oaY4ÉÉ &ž’™ORÓÇZ ß,XlÚN$òŽV!Ùt±´æÈ±ª‘¤Ô™°™¶¤5•¹r¸0ÀñÄF~UMz½¼£æk$dƒG›rá 8gcÜÌ8ÈßyÒ{”wy“ áãJÅ„QLþ`šßv^r”ò£ (ùšÒ¬#ÿj!-È0tÛw“¦fY` nûWm7µ\bÒÞAk*)OÖ?;×('@Uüs *:!Ÿ’ÈJX’Ås'VÊÆ¥ è?ÏOÖ8ôÅdEðk9¨R…?Îe®6º3®×f ˜EÁl 7œ"ûBR:ya±#Á*û¾èš]Lú)½-ìÍ`Ê7< âïâZã…â¢c^æAº¸ `·ìpväã\gúº:_~”;ßO,„-ÃÍØ´¯2uWÙ)–d¶Eᜣ\õA‹bÞh@Ô6SsžÁ“îÙ+wuâÂ¥•”­ ‰{Åìû=ލ¦1’ñ˜Ùi5è„Á-ÆŽûúl¸-)735i‹ ÞšYâÝ®J%”B¸æô‰îTœÿ®\#¦’RŒt‰˜ ´ˆ¦«A:­áé:n‘uyß–YYÁ¦Nߦl¬¿áb.èŽCo.FŒÿ@n•Ù¢±•6Q;pOj»Ú4-²×£O³ïè$0ÔZÈN怶yí­z—³›ü>gD‡IÉ ×K³”UKܪHŽ9§W¾“¤£ú,½e¤8îSžûÐCT¬Ëš¸½ÎõPº®+€.cܯÀ£ýhÊ~jHÀ ïAl±Y<Á+,A¥ªíˆ w [–~K˃«I©égàÍ8)eqa1„9;vúS´0“ -Ýwphì*ooÓÂ4b`åÄkºB9 ¹ûïc™ï®uµÅ†—zôè$ÙÃzt®Ö¾Ë¶º´£ÙÏòVÄéŽ,t7œðh9¹é×£›÷•´¦©AÓ§×JެX°Y)Ûg±OË·O‹­«°ÑÑÌÖ-#›YBꀱqUR›” Ú”ö“aÉŒÄötK»#5)6s/9ØCBG¯òäԵΠ§à =Zá—v>dmK:¬ˆà`5XR¡4ªÃébA·£¯Ö&$ÎÞ„ÜœŽú×½^~y¹LïvhØ!Þ¹H½’½T2=v´ÆbŽG6»GÜ`ÕzL·Ò;?5¹K4Ìflç.ã²—»DŠ•LŠ¡·ìÈ/ÄIîíä°³†Ó¶üùv–՜äþž¦PµùÈâæËp‰Éôóœß²áZÃ-J¿R©[¿êÖzŽñÑ5& ÷t‰÷*`žÅëƒäÒG_bã„ÄW·ýÛØ]ŽúÆm´ËŸF-w”ñfŸ³ënÊ­´ý?r!¯A…±©kÜY;ê¹* qd¬ê÷å&‹˜zØç™Ñ:†J=H';6—ñïÎÕá îv¿bzuð¼®ÿøoiMžÖË+ÛÚQÃ\m6py´ÑŒN®íNͽK<¨à°ué:í¶mؼuÙš鮳%ß`TŒ=Ž·ãƒªÜß±gæH$\}®²Ù±‘Së¸cOBÜò·îîgüÐêÁxG äéF÷ã³)Õ­nû;°V.ÿ~›d@üm8—è$aÜß‘ÛÅ£FŽÏÒ2Ö·m ÓqíP 5=Ûæ97¤0ë¦1Yë ž£ëÃoËqnÝ×-hT ŽßÙöªLÅ”žˆ³l?±„–ð¾ŸÒ±)Ì ^ר=*•oRHà-T­Ùa99 Ú+Ö/BÁª£)™ËV®?OšÈt²ùv9ò0§Êñ›s6©ñ¶`†ÙÚ÷È2W}ÆIíq@uÐ>÷€Uª±7GÊÈ…­‰t€ÕzÅ0÷¨ß/”Mh¹<BÈÛÄXsz(Ö.Ì3êGüü¹‰Ri¬õ’qôÂFmÔ©éñ{دåì=å]IyQ¿€e戱»Ïèõv7¢€K2vÓ<0ÿ&Xõ;µÞØö ª²fúvùœ&Vz`‡¹/Uk¬[y)0«- }ìœs-€ÉÉŽUÓÈÌ}Ie”RWy,ÝD0ŽØ[z,éþ4‘vC~‘sóV 3;8íõêæûô·¾Në9[x°•¾ð-’OEàH9gºÚ´äTÇ©q7«™¶Y®–w%ÉX£÷¦—SðV^·üJbC蜌×÷¢´g¾œÔAGÍ0¡®ÛØ®1œFkBJ§­ÅÐÀÙÿŽGÍâQs qXÇ“E¸ºIˆÄÁúm¼Blh[2Îè‡a«g4Î0!•0OáWÓÖKí‰÷ü4áàÇñ{6»v# ºa©::ô½ìpšÌhhJ‘®t•Íöùä·,—¹¹/gkγúF+%ÄÙNj"0 ©z¦Ô?jjª5{°ƒ•iÜ!Eç­Ó:ŸäXó"¦–ÿÀr1ÎÎ`¼w~á?z˜o’•Ãt¾šföö–¢L/_7NƒÛ ¦¼¨›BP«tÿ[f«lÈ')½põ\ØG‡5’Bè¶¸Çæ2ðxÏÊÖÖ.aŠÉQ­Òo©Î§Ò?‹J¤>œ¤ÀO”à¢uüÒOǺ¸}^œm®¥¦Œ¤‘©9rÎŒŠáFòs:¥ÓwQê ˆD­dé>¶6o Ý–•5Ôw}Õ }ŸhÏe½êìj íÕMN6|tg)ÜÐ¥­‘±QJÿ$6®+h:øÞ'¹Ïö±ë°íéÛ„jMQ »áþÆVÚ~ÂܬޤwÞð- ŠGhÔõû ]€ Ù'-˜B1þ*‰h:³®ÄàJVÁfBe·¥~ Ð74Q¢àe­¸ˆwk] èîn’¯ö`"F3$¶Q®ü:pÁàÚ˜mÙÞ–\£Ž(cyÓó’±³›^â~EÁw8éD÷B˜a©:ä¤vsÆ{ûiĘ̩~ïq^5˜¢RR ù±r¾'·½UÐn,'ŒŽ $jض¯KDa…>%6ÜÖ|ÀßiàKÝÞµ[ Y)ÐÒ²á^ `€£C |°­u€%¿Ý4wد=¾ëW6^Ý0eyôѾRGkå¬xíüz_Úåλ~­Ú“ –´ûñWŽ>Ì×AÈÊ¢ÕØo¦›à›QÔif©ã-x±ðBúáô'kZ0¤5Äçb‘B³#ÂÙ:µÇÜÞ_K51›m±“m³‘s*¡JãZOZ–=ør'.½üûù‹k+ëÍN^Qœ$’Àô#”$¸÷ôõ"!ôa’8òQG;mAzuÃK¤Ã`A–l"Ÿá¯a_±P0¹[2 ’G¦hŸœRÔœd¿3b…5ëDKÂê‘zV³!‡‰ÀøüæzEœ®¸;0ÀvÛpQ¹ôÆ]u¢e‰®…ë<:uïÙÂ5j2¬Ýþž2ñÓ "°FºQØì»ëYXXïßà¦a$ε :„‡—eg–2gG­:+dg6p‘ï™øY¹n°ÜÕ´qƒ1·@ï0>N¥Ü 5^‡Âoüóü£jXh¤SÑžVñ×8ûP¬z%µ,z•ÒTe“®®>¬i±´ÛãÙ¿J`P®V%ÖÞˆ5'»­7Á£Âª¥Î{A€ÙIa"€¼*ùžN$í°gÅ ÀmÄàÌ5µÚtbGh°Th­>FÜ/íz™~Üš‹‚rez׳úpb7ß$¹¶„E‚?œTį)gÚ P–Ç9Çôgÿ×§Q¤endstream endobj 318 0 obj <> stream xœÅ\Yw5~÷áGÜ3O×sríËÌÓ`؆`˜…ÌCb''Ø8¯Ÿ*-­’Zê{mÇpN:ºj©Tªå«R©Þ°‰oþIŸ^±ÍùÑÏG<´nÒ_§›NŽÞ ÔÆOÞ£6'Oâ+|Ã9ŸÌÆX9q+7'Gßo¯Žwl²VIë¶ŽÙ¤¤´Êo/±Y[íœØþ€ÏRj+ìöÕ±°Ð¾}s¼ÓÜLÒóíih2\oŸ‘—žà³2Ì2“zH)·Ïc! 5 «4y:˙ݞãÐjRNV3_q FÐý'2!ú”Ìù*ZìÅ‚XºÍg8¸š¸Àâ!ê?Î(øuuŠ* MÚ~IúŸÏCâÖ½ÿÀԆͺ‰I—…ïè,¹ƒW,°”^×€*Î[øOææØƒs¥¢þIçL³ÔæSzTTŸgùµ(.¥š²øYäóm+å02y½}øraÎŒX,\9J’¶“³n&i‡kÑ^€â~T¿)†Gã¤Ù~…€ &(µ~XZ?™[qæû'G_Ãôœ™ÍùÕ¬Io~×óñ‘’ÄYnŒan’› hpÐÿýãÑ7cïäzÞ Þ)ó8HýÓG…®û…ÚJë·¥õã¹u&\g@B‘–››“˜¨©³"ø·ÂäÏ›GÃ4=âv‚^<ïÞTô õ0Ó䵿Ø{—»ïŸ¸t6¾¥Ã[0Ø…0‚â¿å`ì@Y'Ûëåäám0Á26ªCzïu S+.A·çÇãhÎÈlòâÈÁ@)fáe쮤G×´“@­•®ûUT*íŠz¢`x6ßÉæÁ&Z€]3Œa•N:âÜ€\úÙp!„·ŒÁK(öÌ;&„ÉD‡)~ HDã¦$u·E€±àÜä=‘ͼØ4à²flrBué;ïlªèa)˜39 þ×½¯%{!@†xê%¨ÁÒ­š—ܽg7=H”âîí¦†žy–Bµž4ãä•Í¢ ¯8pêcЉ¤à‡øqê„®âÈÈWÒù5q5—جöa&~&ïE6Ú bÄ]2|±yyòþªHÊ™ÆHì¸DÅ£ rÙG‹·!­Â Tâár ‡_aoty€œYKóºÞDìëu½ý¿Å. Ç¼ÂXŒ8Ýœy.Ó LÍøˆm%Gè[f¤ˆpž,¢‘¬c£J†@| 9«$d'¾}áa‹uqÍKÉìU6A[0d¢ Ô~¬ñ.œ Ñ;BÜ̺eèWÈð”Æfmm%vå!³«ÙõwÑx P Wa Ðî9æ?+áEþ@²âøïŠ+m@p°ÕÑSßúŽ¢L:L->8¢PP+çÜÙ ?$L£¶&íi2ŠLg%s~hAï¥!¬¤bB!85¬T|ÞDƒeÅ:j…Á-øØ¡y7Z µlNΛÝ$X_ƒƒ˜Åç!tÕ•!êëncÞçyÏHû‚y0¶³ý ° g‚Þh€ jŽAè’Þ$"yÏâ-â¡H‰ñÊÖ’5±blyŒ_+Ó/ß P­3Ê`?–z¦nq ŒX¦ÒV:öï¤; Xsjgko3ÏÉ ‰Ï2ÙC^ít«Ç¬•ôŠˆÖ“zfbÊãhÂeˆY`coœk…]¢±—º“i ãEX-n 섆_Õœ ê͹æÙx)€ìÇñ ÎD…çâ Y¡ˆø Sz‰ø¼`]À§Ž«ð6¿šœšQHôtd¡— ¼ÙáD`ñ)«11qïäÂ3MŽ,À£ÐVÔco&D%Ô STB­Ëõ=D^T/Ô· ŒVS¨^Åôáñ«òxÒíðÉ249€%¹ Ä8ÄÆµá"ç–ëÇÇ0ˆ˜ÂÀI¤óe!ãuy¼èæ)~(¿—ÿIi}QŸ–LJ[ò|ªož”ÀrO5,åyLÚš4N‹"“¡&­#ž6<Ò¤nì¹ ž…øàò\Ž«fï‰rÐK2ê¤õͱÍH·3¿JËÀ©.€û4¼«™’È|eåÔÄ ƒs‹=ìV~b°âaHHã;\ ͤÇ:W¼Í4/‰ó}¸¹kœAYatíqë÷ZªJ»ȱÑKÛ0wM>¶¡‚f‚m5Ê^EX‰•vÉhSÓC&¥¯!Ç º0u¦„7Æ[-ÈØ(­±<€\Êx™æO8 ˜·çÁ^‡5j9´^”Àø ?0Ñ×IãÆ*}¨¦´Ñã¼±5²õŸ–˜îË&¾ '«4n$}ÿ[ï—GS^S«ñ¡ƒ£ íÎ'Ÿ±“„ 5ŸeÙ"4)¦Ðœý2±¼<ðX?ä˜˨FË"‰Qq1¤™A˜ÌªË©ácðs9q7ÃGÂ~Rðïnˆßn=Ü/[o»UFТ{CÅsp^E­2†K¨pžSAÄn!.ñ)–¼FGWq»ŒSMPÝP·¦ÑÍ™¦ziyâà”ž¡ˆµ0»üD{%<‘¦ü]'Åbb Ø0k22y#ïPŠ.y„Ä'£@­1ºÎçr‰^tª7¼·¢>IÏ¡±Í4X@ßµu‡„¹XÛbØøä}àœ¯òîÉ,£ž.¹ @ aˆÚ»´ç}2ƾ±¯óÛA)Øe­ó¾uêàr @W\Fùœ´)ÌeYì×¢f#Ž`¿S-êâ|ª-ÚÃÅÙÑápõ®Íå¯"ݹڅ4õ¢³…!X—6ß+Sõ,µ€ Õ*[å£É½eM˜‚@pÎFqÇ'K« ç†TWI°„*¦a¡©¾ê¼xƒ—åñQqç?•ÖgÝÜ7i}R^;-­Ïo”H¶|²\ÐÃŽ¦ˆ«.Ø×OÒ[o1¯™WŒLƒPNaÄ^˜[nÆ×’×qVÈXÙ“øØî ¸îžÄÇÛï DœÎz²'4Ly5D¸§Ke VñRˆLƧŠãÄq¨@Œ¡F)„NlFÇ ås1a¿ÏI¥ÐÜa;è=XŒŽ¡ í$ÅCçŸÑåîÑíz5)æ_3q‰b¼Ã.D£ÊÂÑ5C (Åq7HRA´b¨¯ 6HüØ?‹'¹ªÖïK™Æj²  ´¾Ð<Ë[ÿâ p·$±{H¹–AX±3"äò9,ÎÕ·}U¡³œæâ¤žå› œC.(TÅÖka.–j©JªhY E$q(Ü¿ïp#š“"à¨^«Ï޼c…«‹ãp;ÂyÛÓ@\Ú¢h1[äÚ¥Q2™.¸“ñML3¸›4È”\Å#(ÀeœjÀ´ù^F·É+–«rI‰@:t¾ÔøÖ{Õ?ö]É™Î3¢ÿ uc«§€`ñ˜kRÒ¡Ê•µ%±À\Ψ^Rêé×V¡gîØ\ãthT[\µ/ÀÉô×Î-±†2­e>¢a=xÎòñÝÓåMÔ¢•è‡4ìÆù~/X‰ùXõ‹‘¯Ü[$5JB©¤/ Z³‘\ÉÉjL_ rn¹AúÂà.#à­à˜¾h³(‹"Òá³*É鄸l2”NÉ´Hg÷:¾ÄâXîk:ÿ++ s™ë_ „ߤNJoPx Œeë¼2£“ÁpþŠ‚à Ê…á÷pmìà3È$ì¸ÅHÙ4§÷ X #X“m¹k<—Ⱥ}pW#€™@¬>u¨ë¼Dþ0[÷¹÷ƒpý;¿·­°RÐ]óÞ¶ÂO Œï¾í±“ SbϽì~Æ÷‹æ1æLI‡/—VIz¼%åÀ’p7 ÌÁ3â›np ›‰ ›0D›ôEk0ÃñÀ‚ÊÐú ´þgn-‡˲!Xqhà· Xaž×wO."틳Ï*§ÔÊÐN2 RÓ–9ËæÇ”HÀo54÷îb¦’R£R«hœ•XÓóX„a¬Ç›dUãQ¦kô“šŒ™ <-Ö·„Ì!2´@ïâ1VDßÅ)"¦rÚÝ`° 8µ¡eÜ_퟿ÕÍߢOòíJ}2Ǻ¡¶>Ù½«Ä‰CÈ`ïŒÎï&ág®ÉFά¥ð Â§1¸S¾!ôÍ+ˆÃáo+ˆÃ+›ûëóm÷Ñ‘LN «Þ¢f5Â˳|üÝ…AqNßd§è®lÂ…€6Ï}¥Gp¢1$çD'ÓÜm¸Q!ìÅܽ@×AÝ/|~‚yÁaC‘>+óѱd(Åzû]¼"À²s.;D±‚ƒ7¹žáÑšQæQÌ…‰—ºÎ!©™~ìíNaV>Š€èX†i‡\™Õ“ӵ͸‹@„KnMíø;‹¨‘×\ÕH}‡—0ä¸z¬ÉãÁ °ap>ü~îˆÈAGqËC¶öƒm©°¯ãÌÉ;òVD ‚…GÔV±_0²ÞnoM·/|p”k!æ¶Ð©«³åDZ|mCG’z6êcÅ'L5¸ t–2bñ °p«áfà•w= ›í$vqÞ­å·{òFÐjü ‹ÝþýØá'œœéÃóþ±Š˜¬œ=ù?qc,ù"5ó|I”Û|—Î=ßs|ÉNìý!FóÐû!¨ÇÝT?n©†øSì¢&cÍÛíHvûU†w• …É5[Øm\;~õ¤>ÖF¦±Æþ¤Îˆ÷|+ d.cˆ•ä¢d“° g¶{5kµ"£úæeš¡6Ð7s{«0ð⦬–ß/ʺH­)Ð q°Èz„B‰ëC欫Ñ6@-Ÿ„~~tòçï·›9güöÛ0%·ŸÕqlÝ>h&9™'ÐLXCkùAT9Ít-ÿëE‰k8ˆð=^ÊT0½}nl”xjrB©ð©ÑGéZ;VsÑv±ºÕ‘@«]WóÇÈAsç°Ã/õº½°|qî^¬þ,5C‹`~qg$|F­Ø7ü ^áªÝöà£F=6YDÀ殓I5—g4)±¤'ãÛ‹^£ºÏqÙÞ̜މÃi­èÝDÍ {8%÷ÒÕ[…ô¢"bwü⴬˰h‰àUìâ—qö~xÏ1l÷YïEzç0ë D1í{Ö»ñ­‘m $«y®À{>LÍp;¸™wMÏ Ç[(Y ×™$¾¯Tï[r±hz™_•$L¢[ÐdQãy‡Æê,N²¹…f ræ?¨Šm%ó[®¸,ÈŸð“ ŽBV|Ì´Üœ‰ýúèÿÓn»²endstream endobj 4 0 obj <> /Contents 38 0 R >> endobj 52 0 obj <> /Annots[57 0 R 60 0 R 61 0 R 62 0 R 63 0 R 66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 92 0 R 93 0 R 94 0 R]/Contents 55 0 R >> endobj 96 0 obj <> /Annots[100 0 R 101 0 R 102 0 R]/Contents 98 0 R >> endobj 109 0 obj <> /Contents 112 0 R >> endobj 129 0 obj <> /Contents 132 0 R >> endobj 142 0 obj <> /Annots[146 0 R]/Contents 144 0 R >> endobj 151 0 obj <> /Annots[157 0 R 162 0 R]/Contents 154 0 R >> endobj 187 0 obj <> /Contents 190 0 R >> endobj 221 0 obj <> /Contents 224 0 R >> endobj 257 0 obj <> /Contents 259 0 R >> endobj 299 0 obj <> /Annots[312 0 R 313 0 R]/Contents 301 0 R >> endobj 316 0 obj <> /Annots[323 0 R 326 0 R]/Contents 318 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 52 0 R 96 0 R 109 0 R 129 0 R 142 0 R 151 0 R 187 0 R 221 0 R 257 0 R 299 0 R 316 0 R ] /Count 12 >> endobj 8 0 obj << /Type /Outlines /Count 5 /First 9 0 R /Last 35 0 R >> endobj 1 0 obj <> >> /OpenAction [4 0 R /Fit] /PageMode/UseOutlines /Metadata 364 0 R >> endobj 50 0 obj <> endobj 41 0 obj <>/Length 8021>>stream xœí]OÈ%Çqïw k6Ö.>XXL@B‚DÊJD°2ˆ]aˆ#¼Bç"XrŽ!§H -X9æ(Œ@—è ´FBAì.Ià m¢lÖAÆ>8Ÿ$‹,¹¬{¦fúÕTuWW÷ôÌ›o·êð}ýæÍëúuMwu×oúÏî®§—/Þqàé?Ò?ž¼'¤ß}g÷½§oéÓ­ô~Ãoø ÿúøw>åÿù ©´ÏÎg$ÜsÕu°<8¸éSŸ|ìÓç.=B®ûÄyw«‰^Ãoø ¿á?þ]«ò_í³"e¸öò'>ñù#ò²ù4Ñkø ¿á7ü‡Â¿ƒþ/ÈÇjüÜ6Ãoø ¿á/Ò»ƒǺ †ßð~ÃüÆ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã_©×8PÃoø ¿á¯Ôk¨á7ü†ßðWêÝñûHKêŸâÖ•GvO~×}úôé×]ÏAë> Ä|½†ßð~Ã(ü;ø‡Ç«Ñ4ÉŽßs󿣖׳é'>n¢W™6ü†ßðþæøwðo~ù}4¸CÚ ‰Þ™å7ü†ßðþj½Ý¸÷Ããp?„æãdà ŽŽ.’ë®ç šè5ü†ßðþCá·y †ßð~Ã_©×æ~Ãoø ¥^›jø ¿á7ü•zm¨á7ü†ßðWê5Ôð~Ãoø+õjø ¿á7ü•z5ü†ßðþJ½Æ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã_©wà@}x ©€)8x,püÕL½Ù´á7ü†ßð/„åx¯3MÝÃ8?„Ž~ÛJ¯á7ü†ßðÿ.ÊT—¿¨ õ~Ãoø ÿúø»þÝãðh䯚è•Ó†ßð~ÿ~ã@ ¿á7ü†¿R¯q †ßðþMãÿ‹—îÃzïùÏÛÁo¨á7ü†ÿðø?û³ûSZˆüÛµü]íåOÎ]Æ«$}ttÒ§O¿žºGHÃDV×/(úíL½†ßðþÍâ×ûJ.~øypü8=p óóšc”jñÖLá iÿA0×ÉϾûõŠ6 ¨IÕuè±÷¿Ôãäõ{Nn‚ÿ€>ÈðGõÎt ÇÓÍ8PÂS¬,~TOð8þÃb.ï@Wæ°f‡ÄYÇšƒ3ü ñ·­W·3t#Ψ¨Ýn3–“O<Üýûõï¾úÕÿàëB½iε5K¶oÛwÜ9Äc‡¿®šAuÚþ=ún‹¹Û ‡C\ŸÅ¿Ì 'ï»×ûMøK¾ é¨ý£uHþŠç³œAÖÁÒwÎ<ÄÛ¿Ò™BÓÞþfó@·æŒ‚­ü[Ã,„ð‚ý+*É'k ˜>RÝÉ>t>þÃú Ã?¿² á±ÑFð/;´h”õ¼Þ¢—Xð|1ã@¹Ù!Ë!(3Y¿¾ý8ÄÛ¿¾Þþeçy¨%üìwH†Áƒ‘@E÷ ¯÷[…ý•P¶ Js~>uøyúNà£ixÁÎÇ¿²)m°þ,»¾ÔfõÖùÐ~Òïq*‡E @*þM¥9¶ ûË_½«ã1„¸‰§…Üä|ªñGó¼Ó8Dò5üÕ¦ðkÚõ6ëϲg"ù»?þá Þß¿TF\~úW7RøIkŸé㸜¼ï^ÿÞÁã×ï)K2÷¥XbOÙl”zqç‰-@žïvöÄm˜ÏAðó‡|Í1Å•mÖŸÎ7ߵؙ$¥T©·Ô‡úœ5ùð5¶ò™*E0àñgíœÂŽL¸¿âL þ¬Þh:šsôùÎÁߤÞ*ÓÛ<“'õÁÔÛÇ¢lGÛ¬?»ùå¿+}&Ii;³Þ¤„×§h>œg¼&ž©Rê@£”eÌúߊ3a²øK1‡tô¹ãçÛ¿€á¶?“Gxvúvt@üʲ¤ÊµüËž‰Tê@õz‹rNÅ¡¥<£KÇ¿«º1\–N°s[óøE¾"~éÏŸ~rë–ôëðó_ÆpÇïzÎz›øyZÓ–·¿»ãÈFýKV¢¾`ßÈû¹ës8Pìƒ0ñfÅ—r [sTèã:ùê¯þõ?âpï(ZÇnô~e¡6[Ž%êÒqbJ¢\ž‚¿ð‰Sï\)åƒëéä[߀¡VXPäKÚ=wEc綸ҖÃòfâ7Çq"ï1WÇÂ~ŸçC¾zíå”ýçà¿Ó8ЙqîÁñ§îQ–k³õg=tXåÝ‹’„‹!]ÊݤLŸRtêG—I>·>{ÓýôÇ¿xá’O\{îj‡rë½ Ýç_ÿ®sõéO/ï?Bú/ÿÞem(`Ëúß"(<—ÎQFÁ÷ª«9ÐÿOºÑûCV ñß(®íÑBì¼ü©4oÅѥ̛­?+q !” ÖÁ®Ò¥ÜM0=ÉŠ( ½%ùxx{<÷Ý 4UžöQvçn\ïCÝ0ð…ôxƒÞ væi‚ h©ý…ç2Œ4±éó0‡uÓs³VÃ|Ö‰ßå¦t¼âwÇx u…ö»ÙøÝ­ÀîÇ8?ýñpq:cšøÍ{¤¹³ŠvO]nû >þ Ù 6;ä} Þ!]Ê6±*}îóppS׉eê¦mcËm a>Ëáǵ=UÃaˆ°Mü©û‡rMùwR!õõð0(¯’4–Ô=öCh¼þ ÒçÞûþÞý û柺ßþ|øëåúÃõ1í\‘Þ³_\Øgþ›_HŠ|ýÛŸïμZŠ8”££‹äºë9¥¦Þ¹ ”"á•é™öOᇎ- ÞM¹§Rü!D  ~×Û¿‰Ýä´>ŸEñOÈ¢TSòC§.oJ/ÔÉ‹,}¡à ä6ñ»ÀÎÏ 8R†ÇÞÿ²³ÎÈ&¼²@Û_’¶šÕ;¼fé3Æ€ Eðñ£».—â?}úu×s(üÙÔÍ]® á×ïÏ¢©»©4q mñ‡HÖ1lˆdaÝ„ÒnÙ4–‡þù~®×¡°ÚMסËõ§H¯G“nJ.QÇ”víoƒO¾p© õcR­×pô†·sžéH%iðwÂé»P×?škOýd¦ý½;ø‡Ç«Ñ4ÉŽßsóæ£^CêÓçÿû|Ä¡bäb3iôÂk ’uH>zàJ)~!}âÄÇP­•ÝCÖÎmíŸJmp}.ëãǘ÷SÀ¡„Wvg¾ã¿ýêí·ò™øÉƒ>ù̳ÝèïÓ!`bêѵ…q=lÂ-‹ëëFW(oHï™ýØEAäçÈí¦Ð`Öµ³°/»/ïø¦;ÓÐÝ*Ÿ{è ƒeûaõÔ-ùœýÚ‹þ¡ï³Bô À¾úíÏC¹dûáï2„Õ¿iÿ«+>„Çï(è³Gì!„ðEz¡û2d/Cv¬½"<0QâÒT(ËBöO¥K÷d©ö¡Mð+Ý}7]Á?ô~Öù¹ iü|CE‚¶ ³#ˆ®èËñ°— ¯?\¯ÓmJ©ßjì€íO Nöù;ïÙïRó \d}¿5P@J„<½ô†ÀTÈgï‚ „ßB‡ ǬˆÚ¿¢Þ®4”Y¤àD¯¿—$ž4z%p¬zü\ ¯·CþŠM­‚¿Õ†­3×Ñ– rù>lÑyˆÂ̼T WrÙN·–¼ÕãA—Ü~!âžD0œ¯À¸'šž„nîÒw?!Hèá‚­ðZíã74+­æjòWâ?àZx™öÏÎ-’ :¿ì=±=5Boÿº½-²¿">4:q¹#4ó(eƒcüÊÅ—)] ÃR‹>Ü‚Åt#N9šO]‡÷ä=fó@5R=T#KÌC¬è¶3‡¦®­f׳7Á¯\î~Ûp?´Ò³%Š~KÖ +í¦_ƒ$ç#Ï%Òdî ÛµTCµ }CÖþugail%Ïß »%iÔnJëü3éu}˜PgŽëZøÒág[Ñs´?™©Æ¯lÌŽqXš²È˜õ‘ûø…8W‰JΧºݸðVj/ *Í; 9Œ_ØãQ?N7´Ù~ Yü·+Z_(T+üÊ#•R–f{ÓåüT°¿Ò‡*9¸E÷ÑxO·Ì~²{ˆpïYTðéŽæ@·¿Ê× [ã@]šGÖ¿Ø™?–ÆàBü¥t ü·sxOneA„|Jãw›`=ÎêwB»S?S\p팭~ g"eñg9ÐÔ*rǘo ¿%öÔ—Ë|Zw¶]Qû‰öaúÎXù²è|´ìs×8P¹o®nGÙýÅ5”ë-ê/£vH•w~\QoZA!§æ‘iðËbX ‚= _%²A”ÇS|Uòd•+,« eœÏÉs¡9‡%×¶æûQjê¼/‹†ƒkrÖHE;ò çpèr»+â¬ñÍ3ŸãÍVpvú3Ñ*8İ™HdíKouSÛò ¥„!ÒŠý(•mIÆïD¿â.õóŸüÄþJߤáàf¾×r3Ú ?³õ'••Üîôå‚åžøÊœ¬®\óÛÝâhtŠlŠVKî È6©ŽfvÞl…_Ãñ渕ž‰´þh>z>”7ì`ý¹äô\)¦ÑÅâw‘^¾Ÿ4ï-J9ô”å&’ñóò+¹u2/JxèÐ\Ÿ…Î"/°+ùráöÕ„8~kááhÉl˜º"Htÿjî§–žGI*´Ð1dÏDêÉVøöÚsWKñ x€ÞÕ?Ê+Û7$Ÿ†gzãÂ[Ë«N\[4ÐÉÎu%õ'Ln#!&’ëC]5¤³ÞƲÅkÞ:S(³òøÎ trYZIJ´ÂÓËr Áf‹$:¨äî’Ü rsürš¸<¹¤Ù3‘†–¦{˜êŽ¿s»ýeÒ§k f9hÞgp 媮·Y®—Î6æUŸ‘ÕïÒ–å@!~Ç™OØ’¢ø=UEC¿M©Iý‰Ú Ÿ×M¬ÄGë'ûóh³öߟñ•ò/¿»¥9Ðsoœú¾º(žKÊo®ãC…1c'S“å@»áñJ²“Šå¿†½ ¨Ðg¤ì/Äq$“9ø¹ÞІ¹{rlXTú’{(:¼ •­œÜˆ²Ãz;L†´ø0¥Ä;À…|¨0üŒ>”l& «qÑ”ï!³øIzY´;¼,fNع•uÜ墸3ó@a;Xçö…üE_e9ÐÁ’ÜðGç„üù™Ì 9¬½sÇJe¨½„gÊퟴÞT®ÿù?®ÃÁE;o?ICýIö©xïð1Dðwçã¤EV¶Ç?é ‘© '€çú,ÁÆgÍß¡Q0~sÊ'¤…É0!Oå~¬ü$½8ꈠ–6þÁ綯æ7eüªsჭa§a;gU›Iä çí©Ÿ”â/²-¬*>‡*S^\ºÑ™zïÙ ÿ^¯7 !çjê1t‚N•à™ yNz’a¬ÒØz®^ˆÇ¾Zˆœe‹Ïóp‘±f7ª³:õ<â ¿±8:)(úõÖ,?¨I/Ëúª€Î ˆx7tºCÞŠßúü›Çïnj·$Â4Tï@y>{wL¬Çü/œÓÛ<~ï>à:馭nL—ÆïûœYV|À%sâñ¾™ Õ³<@À~ŽllØÕØ!Nl¡øòT¨ùŸ7T†ò ]cÿÉÙhÓ–ø¼ºãƾ÷}‡×!GÛ9·}û>tâ@s=³[j3…"ûšõ|(“¨òÉY Õÿ`g¡Ošº§¢ú3¼œf ²Ü½dç))¤´Ãà@¢© ‚ ½xýáOaZ`Ì¡z‰ËBlÕ;ÖÔº€ù~ca”8PR¶p_oµè™EǃÅZAšùèœ4·”gI|ëCøþ3»·‡{ÎüC ;zêXpžÏ¤!ë3¼þÍ—\sŽDÇéÑ}§äëTÛ§â–€_Ù•Êg|©ò$´Iï@áÓBè„Û6ÿ!(/Mû´šD=„ଠ~~ÏŽßGÒXR÷<ž8WúüÿÿI¼xÄãô?ú¿W+ô.Š_>×ûÖõ‡"„ÆÊ¹!é³_{QÎ!e7øh?v µÝº‚g¡ŽF 8ŸÁt)ëõׯþѵ:W}¯WöM¨–†ç%ØÚ§Ù:d¥Ñ¦ðG² öA9c~9k‡³_0GÃ<??})ûGk.àøJ9kÿI†Ñ:+×ñ9;Ш 2{Z¡W™®Ã/¤Oœø¸syjîá øÏ?ðwݱý ´Þ‡Î?[[ð¾úb ’üùôlÛ«ÿû/¼,3Ïõ¦4Ú¯°‹ìO åËéeâ‹&àŸdÅú•Ä܈l‡½÷t,h@GiMý¯·?ئ® _¿¸t,A®à‡Õ­ðó{?>RÂP·¦•lwæÕõý¦Œ_>~RÑÉÁÖ¬ýð:±þÇÞÿòä3Ï<¾é69›–=í,x¿xöÛoÒûÁzÎáëÁ×GËU‡?â›Ä6œÊ‡§»B…"`ƒ@U(—€¿™2éˆVÙOJ(i°ƒòÕÿ¬ÞH¹°¤« 7~T—&Cè†[ÕžîâÖùãX×s@|œw 5ç‚3ÝÝóƒ ½‹âèèè"¹î€ýìÍIO€;†P´ñ"tëã¿ÿò³Üþ9z÷af¬°X°ü–ô£Ä†½£‘í_Ÿ69LŒäºsÙþ]ev ¹M}())üÊý±¾þ¨z»ÑÂ'Mý/µÿþ¹c‰µ o|!Ÿˆ­ÒE»~뙆õ‡§žú « Ä| ½íN½ðƒõßÉø3ó@C›™$úº‡õñ{êÓí%¼Gš?®«¾‰Ââ‹Ððo#v›þjË©W^m>qÀœ/ó6¬±ÿPÏÃ0“$¦}¹üq/ÃÄW'}ý™ôXØ›;:ä_n±žû´æèý€T‘Æ’zºÄ^ !½ð<ÐW^¤,a50\ÞåðËéÏ_{“¶–ô8ªÅúø»yg¾3Üqý²×ܽgóðmà.ösY^yQò5c>ÞÑå’ñÿþ¥û£{ÐÑ&GF‹#¨ŠzûO ÄS¹vÏ_Ëø÷Æ!2­`Þ¿ëëÏž^He놡qõ&ØÑŽèu乿ö&-HL”~ i(–[ó½pzáy ŸýSrà‰¯÷Ö„NµNïA|èà@uî`}üÝB·qø ‚Ûɽ{¯! á©­§iÏQüxI—òÝXHU–Ó÷%x2M*Øs–ñ^Æ1çî"þ=Zv~¶˜ä@‘¾F¶0¸àCiÚp©J?0ô…<æCÙFû`âëg¶»…ç^ÿ{j¯t›á±žFï¢ø3ó@1Ó¿ãž”gÊÙÃa}üúÄÃ’aààfê8ÐÄ ŠðL)Jj`ƒi€£Z·Ÿ©‹K>‰µA¦ox0l­žgoöAØËÒì<\ÊsA.&ú¼ ødÿ·H¶1àÜ!­ŸJ ž²[œÛM”Ž—‹ÛÏ ñ’ã¿süØÝÏowkq  d2ãTüó[ßoÊø3(ž*/¸¼ûAÞ&×ÁæßÿvðMàCÇ… 8ÐÔœJ6ˆü62Ï1¶ÞÿÔ.Wppr{Nz(ö©Àa¹`^ ëðS.•÷ÊÈÅhÊ>á@sRÇâ½8ÃÞ©q—š€„Œ3$.;$=&Šñãí®«Ï@Äéå9P,xÎŒ5ú& -<¬Û;ñ»ëãÁ¯Þ~Ë‘-Â’] ¿þ훢G‹·O©W³`&¾Ž–ßõx¶Þ´ªXljsœÅj„•0Î õùn¥èþuém_øZÛHüÎY>6Oðé¸ìáœÉü¡é¸ÒOc‚ÅlpA¿§Îjçv‹ì3mþƒp»Éø]Ñ%¤â÷€¶I»[~-<šj×5à'NíÂBÖön߇†}}&»=†á&4.^ÿp¤Jlï²Ò³tø=‘eyÓ©µÌ©¨É†ršuÙÄ—…ß ûPì· t±Íâz[áµê²„Mµao‹°MF´?ˆ÷IaÛC$ºŽž”<ǽ ¥&þ½¿Rº qÙrý ›09.ãšÚè~ñ÷Qœ>bKÚ8‡ícf¶»u×ÂGw©q{Z¡wQüg"íÛL/øˆ‹õñóóyÂÇÒ³tÈõ¡ì‰Â:t)φdóÇ2üÜÿ½q¡¢j8Pr*ŽK*6ræ{ÍEí ïyŒ/jö£ŒôDZl£ûàEãèpO|ëU|eLë×ÂãªåÒ|"Ø-¹ãÞÊä[ßö‹ \öóÓ•©@OM½³Pcü0PXMÚÝÚûNöýf{ª¯ï7eüÙ3‘pÑÂ~\Þ§¸éy;®dïÛ†øå³bæp@]“èÈhaÃ96²ÿ%Öã.h–åÞSÀŽz;sT¹rô,3rR…›žeÅBNˆ"gTàÓÖB}FŸã>óèÆØÎ… ¨4õŸÔ«ì‚ÑMãùΖ|ÏÜø|RõY?q÷MÞܵ:íTùX7¹c·(wO0"s19ȹðÙöRó9TÜ_º°ëÍG&{öLcRFY/¤q{&'yà£2ä|”ç¿»ôëÄæäNr¸^ȓĞÊ8úì/ÇSLxðŽ$4C¡þó±'/ ±[¤¥$š¿*~m‰ÍÁ{›bÌ ç0¹À öÂkHŸ:(,äL$~RÏ”z³é9øážÔWš³ƒèÏÚnˆŸÔuX‘^½_Nå£7ÞK §á4zSø‰Ë[ ¿Ü§2LÝ­c€ÿ±÷¿„+û×lÛvÀ6¸XýçC9M½m[É‹»èakaPb%Ì¥p]ínåÎx¯³NÝèd¶DÙŠô.‡8D¿ÕT \ºƒà‡¥œÕظÞl©•ϱÔzäJôçø<Ÿ”^áç$«T>z䂈~[Ä·d…—àÊO÷ Â7Æõ_0¸¬Wé@³ø£öçd±F‹Œ¹¨Ýí¢ÜYµÿ"o•>÷ÕkúM[z(ü>t ¿ÓÖ_Të}7ö$ša4ýC÷9ÈõÇÚV~æ¤ëü¾Fêü]6C!ͳ“½ ï†ç·».„Ÿ?Žu%AM\XürœÕ¶òa‘˵2þF㦊²Èø[Õ™R½Nm“Ÿ}÷ë8%`'ò{ ù•âI©SÖŸVÝÕúñ»«­6Ä{êñËí®º‚•qÎÄ@º~×zÂ¥‚Ku-|h^·X½•9DþÕª9ý¹ cO¥Þ@¿ÊyÕÿÒRDÇžJü+q K·ÏCqˆ.6 ¢¡(ËÕŠÃ]¢ ©øqéX~¦Þ&±3ÞJåžã©ã…KëÏœ¡®Œ?ªWé@õø‹êÌ oéíŸÕËïiÆ®à@³æà*]Ç®€ŸÕ¤D¥õ¾Uýi¨7¤›øq"E¨Þú¶Ðªßâ}ƒR¯ž;Z¿üOƒ_¸ç{½öò'ç. ãU’>:ºéÓ§_OÝéBxç|üÑ4LÄuº÷0K”«þ†ÏÂÆ…ì/ÛY_æØMù¬5vPÚ_‰Á»ƒæõ_~ôà€*ð½ÑágÃçÅò¯¶¿¾þ èBu1 _ß÷~Ãoø ÿÒø—ZÊÕé5ü†ßðþƒà_vhT§×ð~Ãoø×Çßlh´ òWMôÊiÃoø ¿á_ÿ²ká5eÛÈ30ü†ßðþR½Æ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã?=Ԟĭô~Ãoø ÿúø;ß,ïY²Ä™BMô~Ãoø ÿ¡ðïZ•¿âL¡&z ¿á7ü†ÿPø—=IN·Òkø ¿á7üÁo¨á7ü†ßðWê5Ôð~Ãoø+õjø ¿á7ü•z5ü†ßðþJ½Æ~Ãoø ¥ÞnX‹Ç«$%u¤ý¯‚4pGGÉu×sMô~Ãoø ÿ¡ðïZ•8R†Ó§_w=ÁËÄvžá7ü†ßð—êÝÁ¿Ñx5š&Ùñ{nÞ|ÔÃÂkHåô‰7Ñ«L~Ãoø sü;ø7¿ü¾Ü!í ÐDïÌò~Ãoø µ^›jø ¿á7ü•zm¨á7ü†ßðWêµy †ßð~Ã_©×æ~Ãoø ¥^ã@ ¿á7ü†¿R¯q †ßð~Ã_©×8PÃoø ¿á¯Ôk¨á7ü†ßðWê5Ôð~Ãoø+õjø ¿á7ü•z5ü†ßðþJ½hó endstream endobj 40 0 obj <>/Length 6107>>stream xœí]ÍË&Gïç´„h^ðˆ^ü‚5ÆC"h4b‚`4(¹¸—õ þ Æ„|xó*9¸—œDI4 Dˆdã®xÈÇFAr_ã"{z홚驩ꮩžéyÞéç­:ìÛû<óTÿº¦ª»ª?ªw·<à<ýç× ¼üÊ+]ùž{’Ï„òo~½ûú'úr©z ¿á?›øw¾äÿøÿ¥Êžg$÷eˆ–×kø ÿYÆ¿ƒ?x¼Ž– ;þÌwyX|>Y>wîµ"õ*ˆßð$þüYÞ~ß îPö (RïÂö~Ã_5þfÜ/â‡x‚û _ Ÿ»6ØŽÿcø ¥ømØðþŠñÛ:°á7üã·u`Ãoø+ÆoëÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñ[ lø Åø-6ü†¿bü~Ã_1þ.êÃ{8L¡ƒÁÏÈ_-¬w²lø ÿãßE}w^Æûù1\ËkO¼³Yü ]Ä™áBlÇÿ1ügÿ]?ú(g¥W¿òþ ⇲ÅÀ†ÿðñëm•“·ÞSÇ/Ô»Å8KÜÞ½ÙþÜz ÿÚø—0øÏ›•ÿ†bà%Rv½ Oÿié½á—ë]C¯¶#ÿÆ…¾üÈ÷>~'|JÊÇÇ |tt1õŒP†…l×nFž's éƒo]Û3~^^X¯á_ÿ<5z ø£Ïw1ðJï  O=SÖt1¯ã6`øSõ*ïoþb›øCù4càI߯{/Ñz•N‘·áÄ`úç·C~¥ ÿykøO9Öˆo2öÐ0€âømAï ÿŒz•¼}ý9uàIñ)çî'!%Ÿ\ü®ßr¹Éå-¯£B^A˜w¨¿Ò…Þ¾þœÂ:ð¤õ‚뫬WxY|f¼€(ŸP>¤uÔI€Å¼Šðk ¸ ýÙw ¬‰{sëŬEöÃð oÐì<«›W/7µÄ0eùÄ\Í•EÇ/1ÈykøSõ:(!6ãÙzx°1p3<ú‘¶õ™ÝØt1-‰Ý8f«%†Q–÷ß sp—¼£äÿëéŸÿ‚òîþg6‹?Uo×®ñü QÈzxà1°w¡£Ž §ÜØ—ƒ“‚øÏZ |òƒÍo¨Þboý„»õv÷îÛÝ¿žÞ|, xƒøSõv3ý\ ¥¶Q0ºMü¼¼ïx’fÄ¡\èâþsÓõž¤ë}ÈàIò8°”ÿÜ ¬^‡ÜZ—Þ‡¼Üný«ßso=ÛYr Þ“ZφWyó÷»þÔ£Øcš]¯ï˜ pÈmÆÁå&ñwó¦h.^ÍÑSÏ` ìԴĆ âǘ‡©rPhïU‚ZúóþÛëÏþ2 ŸWoÔ~†Ú¿õífôó5OÛ›ŽÜfØptYQôCrßc8Žº û¶‡ÉηžÅÆ R”g´ÞÎä…ŽÉ{Þ­hÛExFù?ú°é«>¦°ž»´¿פŒ)õ ”½ ÷Ab€ãã Ÿ{ñ=—CþÚ5e½kàWú ~|ðÿªU |~lKµ€ûæËM÷ÑG#±Éa¼5ÈŸ¼ׯ`òZ™n¤f|ÛȨÈI/>±4ÓZ9Þ»7éwÿ‚›ìMNùÞï~¯ (<›BÃzCì?s>Á'j˜„ßB‡ö¬®œiRþËõv'|—Å bbÃGG]»LÚ³ þ…ù“¢à5ø•» RÄLØäÏûVˆÁRõެw/(ç2\oW˜ä>k il¸³=€;ÓâÛèß]”OèìB¿ bñF .Xèaƒ¬Þùæ/œ(ÿåz»ƒ?x¼Ž– ;þÌwyXxçò¼žÜ &q.Á/» p4Ú¥q(x›rËD`¿ü>ËÊß˹s¯ñ¡¯ Èò—›€ñkô‡È‡“¯®3à0óœ^4§å£|GÑ&ò_®·;ø3û÷¡ì …Õ-³áUíÊ“zLöµ+Ûª ãÔ[ïŒß 6ì(…M¿k¶ü5È1feÆ;MÇÚ&«à[âMDûyÖ ”²aAþ)üÑòéì…Î%y¿ÞBü“lѳršæ¿NX÷šÍg’ƒ÷âr×!5¨4ûŸSò×t—óôG^¿ »åñD4|âÞ®…NÊ ùgÙÝþöBŸŠ Oâ×@tož>åÚ‰CkÚeñ§Ö!çíõ×Ë_c½'ÙK¯A•ª×éNÚE~‚ß…>¯å!¬=ç¦@xfù’fìMµEósðǢؔ¢Àñ˜r͉Sê¼®¼–#“°~#È_)p7W„õÛí"?!º§d(¬íÕ´,¿ýÄ&Ðä:¾¿ÒQÌm ¦lúw¯‘¿†›Þ†³°eÉ_I ¹4ƒ°°Ÿu˜Û|´/Öó¬~/4þœ4;µ/ZþjI ¦÷å佬“¢±«>¦Âm\ûXΪT 6ÃÏTÊ_“@֟ɰEˆsÛEöÕÏöÉ*Ÿ{nخ԰³œîØX-LJ~åð+ïe•™¤°?ªl‹&Ë–¥üžº¬9¹¿S°crXø*vcÿ“'„°G™gáÉÅ¿ÄçÔìCtéØUŸãBÀŸ»D,°7ÿYã<+÷¦Êû³Ú…å)ÌAlÁvû‹!£éu†mtãý·Ñå»\Æã?æCN„ÎÖ§T쪟ÃËÚS-°žqtˆìåŒz=.BiÀnîJOÖ:¿CòÁGbVCá˜ëˆq @òì@‡¾ÑY.¼cVïKçÔc¾K¬CFñ‡X(“G×?''í²Î£Æ] JáwÈÏ$]§æ¬¬\Vú®Yúã}é¬u¬äŽQôÞ¡]øDêÂ9×o¥<ÀÇúx˜+^”øÃyî(]/xž3j.Ö[)箢106`""2Åñkº6§˜w rèö?¥ç#]oÀn–þhäé–¢„Ç€pˆ2Øó’9‡öB` L~ëEœš¾’)üêè¹K“øñ‹$þaÐ0¥/'ÈAðŸùIT (÷L"9¤ရŒ?uØ}‰ÿå™Ê_³Ddù“`¼÷øirb#þ³;ݘó9y:ÙSBFžä·-MÚ0çÏÕ˜ÌÃ/Ç`òäœëÕ(Kþ\5‡múájŸ%[ÆOÓ†ŽÏô¹XÞ²I}ÀÊ10ç±aÐEbÀ1{ѧðûI9ÇèÊù—–àçõBÇÁg×¹V¹¶ûÈ’?¨jö‚ÂíŠâçÆÆ}„,ÿyÔmádZãQx®—S ûð„ˆ ó)‘=Õ Ya>œœX¹1@cÆÁn£þßžˆ cü]ž'„õ è ñkb°è8,à×öw@í{l~r <NšRýË46$êèBàz1p»$}3y¥‘?î4S™ñ`ø=œœX3ü‡.y‚LÌÂw÷?“ôŸ_x0þ[7˜ôþ³Œ Ì#Kþ´k@Y]8sÿñ÷<îã‚|4þs‡mÌhüÚþs÷ÞÛ÷ÎýÄúM>ꪰº}ùÏnk1p¶ “ì ^Þz&ŠÈ¥Òg<‰ŽðWîv¬ùƒ; 7~ë}Y3‡ëŠXÈ8ôêMôM¡®Á€±`™«BâC¡<êY“ëý¥ð 鳊Ûp#|.Ÿàž —‚ç®dù‡¦umAB ñ‹rÁÆÀ¤L‡MEsv|‚'ÈpYü]7Ä:š˜yèåßc&‘ŠÚüL2~IÎÈ=ÉöŸy/0†Ï}è c}÷M–?m—U?YpExf•ø‹W_]=i®PYÃàw™ÄD#„A˜ð‰0ÁÔ3„„ g™Œ„—)Küõ½iÁ¯ä#è· [PŸµR L'>2Z( àKàiWz0€a âøøÑ‡á“£Çžt%ü‡†¡Îâ‹Ù³WVÎçî›~ëÜèçýç«øÏr€”`gøÏ½¹±ôüƒLâþ3gäèɶSŸœ "גּ†B§Ð:Ü4R)ã—®]X„sß]VÿôçMÂÎ6h>¹Š4L V||k°^BãÜ¢jùŒ0QbÔá~G#*“pmBŒ®|æÇ~jÀã~-ùüBª,9MbŸµ–ü‰™1Ú}æI•úvÅ~>¢7_æó…5ÅÀÍ%ˆ¼Õ'ïE‰Fú**«„ÏÉ?~NŸÓuŒqˆÁ®2ÛHëFáó¦Q¡ X ᔾu¼]2%Ò-¨¸Ö†V'Zä€}ò5b`}ÇuÆÅä¯aèûÊRø>ÆÏ‘2¦Ô3÷ ¼ÐŸ{ñ=bÀEòâ²Ã¶“àÿ÷$áÓÀáa|ÓâàEŸÊk=?üƒ3éèë:¤”ÿÝFL¸m˜· ãrˆžÐÞ¶›½mkÀŽéOAùï}T/Ó¦3)ùÓ·™6à"ø 2/Ÿ2€66ÜÒåÿ¶T^ÜF|øeÅôîÛþe>ƒ®G©‘ ègª¬ÄßaNû X‡>˜†î, ³¤0þ0Ú®€?®åŒþø·‡4í¥¤ÔCI‘ú–z…/…ŸPô™òy¡¿øô—áÆ †Ú;AHŽßÙyqGÆÓTøÖ‘ŽSÐõžOª¯‰– þ;žÿ¿ˆÀñWNFËCJ‡¢rpnïDÆ$ôM#n7%5&ø$þ’y¡—ãÝ-ÔÅÀ¸I­a@yÉÝ0Ê©,ì‹ 8M§ònr­)ÆëØzÛr¶ÿüšãåªÅ‡02þQ,í˜#Ý’ï_8¶ÐvrÉ„#‚n‹èÆ™’È­Í#;òŸÝHΤ¯‡ÿ‚§øuÆl±ÿðôWß ûX׺©à:pw\÷ÖÅ0º|,2!Ĉ̵ sÄ wdõ7 Fqfgv1}ùºò·yorôØ“rxÍlw…Û‰N®ÃðR][  ØÅÞt^äÑ:ÕzþÕÄ0€ø“ùBÀï >Á9¶»Ül4Û@W6*s2ÉõÒí~ƒ‡…Šè^èÑÜÞJéF[ æ­cæçHéüÙ€ùvbÀrøÆxofTˆ­€ŸÆÒ}Ÿ;Âéùüà!Ž-Õvº.•&è¶r׈c<¡ÜpjêÉV¤ød݇¦_Ç^xuõäýr8Í2é°€xÚêT (äÜ—õ§Ôå\þ|²@®¥Ê»‘”ׯhêÕ\i§Ä¿P_g×ËãÆÃ(½ó¯ÉÃ$ÄY¤ñ?—_‰Ç ëÕäÇŒ¿¢“€y­Xxßx§ ¡ƒÒ\`ïDÓpÐÌ9aüJTzØYrSök3l ¼˜ÈèW³ LŸû¾” ‡%Œ@‚ügÈY~p>gfYþ“õBY¶»]4öàe¼O5õ ¡RÖ’"~ç­Pø—£šW¯K¬?-'®Ü ö.\ôÛ6œÕöRíM50U¯²ëWâ×óä˜'å¿ÜîvÑõ·,»l˜OB!/e៭RÑq`†Ü :nJþ.­@.Süþ^¥üg·7Ü-”z Z¯¦:e[fôûXI&å¿Üîzù8î¦ü„,”{Ž€?kðI™î¹-éGfÈ?…ù=·kÄ/¡ošÄOêU¾Vå|A.~¢'3ðózeœkÅÀrftüB–à—ßwP\¡iËßA›aÀ“^ýÊû5ø³ä 76Ë¢õ ¯‡ÞDV½)œ+ÆÀn/1@A>†ßðW‡õXh@Áz ¿á?›øúò#oÜûøð))_€òÑÑÅÔ3B6¸v3PÖoÖkø ÿÁßÅÀ+µ! ß¿ì ¿á? ø-6ü†¿bü~Ã_1þý­G¡/¯W.~ÃØøOgµ‘w`ø ø-6ü†¿bü~Ã_1~‹ ¿á¯ÿ*÷ëË¥ê5ü†ÿlâoú†"¹yÖ¸ßUS¯á7ügÿ®TûõwÛ@¹TN ÃoøÏ2þUrb)Ëæÿ~ÿ°^‹ ¿á¯¿ÅÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñ7Ã:¯ISê({ïÿ‚2ÄÇÇÈ箊Ôkø ÿYÆ¿+ÕˆHŽŽ.º6àmƒ`;ïÀðþñï௣eÂŽ?sãÆ]ÞÃ)—Ï{­H½Ê²á7ü‰–·ß7@ƒ;”}ŠÔ»°ý†ßðWßÖ ¿á¯¿­~Ã_1~[6ü†¿bü¶lø Åø-6ü†¿bü~Ã_1~‹ ¿á¯¿ÅÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñÿ.¨. endstream endobj 7 0 obj <>stream xœÕ\[o·~ׯ˜Çä!³äáá­\¸IÚpÃv¶iPÈò&"Kª´jüú~ßHâ\vFK) d.9s†ç~!9ãИ&7k]c]ã,FÚx—+MŒ±±¾ÉÑ4¼.啌ѧÆò/ 1ŒÅ6âDÑ4¢>6솄›Ò8`ñL&¡q.J#±q^œ @KÀ¶Qãq=5*jñP£ê3€`ƒ‡´Ñ*k4G<oà"ˆ÷øÍdÛx5‚~»þrj@šÇ…&˜Æ‡à<ê#è Ícünááq+Ù¬åýÜ& š45·"°ðBœÑ@v -ZÑÈ'¢ë€x-ò˜ˆ—¼o/á"P%cL“]!9t}h’¢Ë rÀT)@n ݨhšÆ¸Q‚Ûd‡.øÉŠ?(Så`0ðüÍÐ1~ÜgŽÐŠ5x(Ó2 =\ ße^SŽõÞ]Ol¯C‘9³Cã0œGãHÁ•µDâ•=NäA©µœ.@w–öe§³Ýó>ù¬. “íSˆ6sl —iÈýb¤èÐË€e7Ùpn¥Á+{dÈñy¡Ù;úƒ@t¶£ÇñEA¸ŽZÎEʬ‡rfX#zœÙCrÝìpÞå|­r¾DŠ”ó¥Èkěɗ殇Ös¾LhŒB·¡ ¢k´žžØIÌ“{ ‹µ”µ¥æ)GÚ`ÙèQj¡“g&¬(¥Fˆ§¦`,!±Ï%D<ÉC ŽH …Nšä?G¢„$SB‘82e)%šÜmH1‘‘B)uj%vògKîP·¤Ç g 4ëb 5áˆFé®dÉ‹SòÐi‚îc‰Ñù.G zâðt›n{™1Š=bJÄÉ?-¬™ó%ÂeΗi·™óeÎE‰¨¡ñÓŽ–øDdòëtÜé–#%´À‰,ÂÂWg t¡)]F8“ºÄ»Ô»:Þ% pU@VB*C9_gGp[1Ä w!÷RÉFèL,q$؆Б½Î¶Ÿ)C%G À°2Ãk´28&z´2C©mO[jÂÓ‚q=ØŠíM ¿NwÞ»ÐvA=uŒ€ êi爰ÀÖÙ´×B¿ñÞ3GíÙ‚6 ù ­ÖÓþÄuÖMùѶ<íOè—žö'ôKOûú¥§ýužëiBo ´?¦ ô(SzeÚÙ4íOTé]žê<ƒ2¥ç×¥)>ëÈ%}0(¹¤&¡Ï?ß|Ù|«HŸ¯šÍßþþ–6RUˆæb[c„±øüæìì»gÏ>ÿ¼Ù¼9Ým?ù'ìÿâ?!ú¯Ùœ³Ù±¹bsÁæ›6'åîi¹{þéÑæËíõî“ëíÉîôâ¼µ¸ðòøj{¾k :Ú|³ý¸c>æàÙ³£yô¯ØlÙü»à;-„l !M¡á¢4gl® !7oïi‘!5wÜ‘#“3‘F‡ÿ‡Ò»*”\:.w›ríº47åîõä¼ __¼Ýðý³!scödÈžþæØ{Éæ ›ÏžÊ­ìsûòjûÖ‰rëØH¡äbÌc`£eø¶Ð¾+üü~Ö¶HÎ7 æ3i¦VvK˜êÄßþxzu½»£¹Ù¼8¾>¬®cyþ8þPhÿï˜ö÷c‡y?VáåØÍ/gÔ¿¬¤rVP¾-Ï—ÞO³‚sûNy+®‘ ‡ÿ[™ôOôSõ¼/"ê(}7–â„ú§ˆW—Äë‡â‹÷/Å­Ï ›§Å{{Ùõáù¸p3`d–@¿D`˜ÂΊÜ:ò»óõR< £èyÛWl>D'E:ÓtX(X޳2 }0± Á$ŽâGÆü0õ_ú>³>}Ðî&öÙ›õÃ2˜ÌRäïгšIýÐqŸ¦!f$ ;”Ĭf.ñuwêcÀŒÎÜÐ~dX\ÈââyýY‘ÍI‘ú¢EuÃïËðÝø‰ãrãº\»**êK·›±×^Ï»‡2ŒÌR]\œŽù9›ÜχYž3Ãwc ìŸx˜ïß‚De_¢qËæËõ 멚«bdxdXÅÈ¨Š‘asÈ.¾*ä<5-Î2àö½ð–ì‘ͨ&þX0yMªØË"ÒN¸›ÂCm2Kª.‘:ÌÌr 3Q¤Õ;ÁbõsS¬dàfùš%Ú/=ÌÖr îþ©`?.8û‚é²Ü¸ûëœç.ØÃäQj—á2ÔX†¾;Yÿ¤ûaÌÅe5M²OÓ­ ‡¹ÍÙ 'òêõ;!°  Hï{}4½ªfÄ-0rH¸(„õëÊ^®73¬LtÝ¢±§´mn!´Å¡èeÚ†Ö!­üzÕ²kã’ÿp¹—áE‰ ½~(Í£Mõë…g+ºÑ~Œs#ÙK:w šúõd¯Ã0âäèW…Œó¹Põ êÜ’`8F%f§C HÌoÆ–Ò1ñ¶´ßÖy_@zÒçXì—Ó õY™´_Í%?¼ï©ßÛæ´mÔäoBF¦Ê1Æt¿ÍÉ“!>òJÓ‘vbC7i¸ëê‘ê]WŽ´3²‚ÃKõ^ê>xOSÊmÊQƒ€¿ùér»y~~~±;ÚüyóõÑæWï¶WÍ·T¦ù*o¾µwÝWF €GcAsxêiÁn‚mEô»™ Ø×7owÄóâôüÇ_ŠUbk=¢Mj=Â`p©&L‘ÊJHÅ·j V¡M Hy´)HéÞ~·´Å»&j#-Ø“[ãH í*Ìb^‹iM-O'=ô ÃA…~=)µéˆéýÝß5ñÇÐfaKj¼ÎCåšý2þ••Ěøáå>FTˆ¼~x¹u‹žÖ6w¾Šr—AGªŒiVõqÝLâ€ÒwÅ"¤kDÓîׯ+;™3,‹rÏ/㺙‹,ºv攄Avc·¬ˆï{ü®ìÙYŸøÎ¿õœP„é\óóü./Ð8%ßã{ÜêÌ4¶±=™êè^A„ ðõœŒ¢‚¯Ó¥<Ç´¯7}…ÉÐ|ò~·»¼þÝfó–áÇoÛÓó«Óãöû«ÍõÉÅîäýýÏg›·go7°|ß^mÞ]œÜÝø×Íõö*¶¦½|÷ý§X®>MÐó$”a†oJÅÛÔí†UY¸ÜýzL8,øz"4*]î(´”ï»"õÿ&vWÛí=×W'›“÷Û“g¨vA´ÛnÈæ(›Û… GánÁ§#¿ 1Øxh"‡úMˆ§k úù®Ü¿ia|­ýÍë7Ï_¼hwwk[k`øËÝ[mt±Û"Ðn7ä·I·¬ê-Ö–p3¾(MU¾7Ó®_7P|8>=ß=èd{&Vâ¢ÇZÅ'I)Œ÷¹–À1Os¸K°0ç§ÖûÕÇÝŸ^ïŽw[ú¼ùþøìzûì™&ë;¯Bx=âÝÅAü¬Ö¹¬ÉÚâ›À?°ïø0¼‡{%|µ ^¢o%c™*•ð¨SðNB%¼|Ʋ´–EioSBª«ƒçR@½¯¦ë%›º7·ïàƒÏvÁ¬ÍGööå<þD^Ì!öÈÞž>ô–"´y¤¥,ÁG¬žSæÛçuðÈ€Æã§–²ïµáÔÉáð!ûZò!žà4OƒÂ<—/š”CÜ+^¼«Qü/M¸ j×GœçXJU£NF-+Ó\¼:Ù%»·ñ³:YM Õô«çv0¿Ì¯ƒï¶&ÄVÓ#€GܘÖ6‹ð–ô!LóÓ<ß<ˆÊò«À- SÃÿ¨£’]¬ 4¦J_‰(›,Œ-UÚ~·á’L׸˶ S0ÁöußÿNɬ* endstream endobj 346 0 obj <>stream xœ]Ð1Â0 Ð=§È š´¥€„¼ÀÂBÀBê  M£PníÃôZ[J~µÝïö)Nº:•Ñ_pÒ!¦¾àc|ú†÷˜”­uýô‘œ~pYUÛƒË×WFMfÝ€Õ¹i;ùdç%?öøÈÎcqéŽjc lB…©ÿûeͼq ŸÑ†F9ÆÐI´ !Zf bÍl@Bl˜-Hˆ-sâ‚Ù„Ø1— !.™+WÌ5Hˆk¹÷÷‚ü.ãûvퟥ`š¤1i„‹ˆ ¥æ1󖦨7±‡nä endstream endobj 347 0 obj <>stream xœ]PKƒ Üs nZ?11lìÆE›¦í†…HP½}á©]t1“ ÌðÞÀºþÚ;»Rö³zÁJu:À2oA`´Žd9ÕV­‡BV“ô„u7éß4Àìú.'`ÏKQãQ¶‡Ô¬añRAnÒr.Zc§ÿ®Ê=0˜Ã™ƒ@p™´U)œG޲ˆ(›$£±Bs•Ìu!œGN³ÎWÓØTàÜ—ª-p+¶Äiyëà÷~ö)E#È£`Å endstream endobj 348 0 obj <>stream xœ]O1ƒ0 Üó ÿ v`@,téЪjûà8(NÂÐß—èÐá,ïN>Ëþz¹²K Ñã‹XÇ&Òì—ˆŽE­À8L;+'„ìo:¼?`5Ýø]O$Ÿ§sSVõBoh)jI´UÕµÖv‚ØüI{`°»³iºU)Uü‡’£¹Äqp‰‘8•¦¥I.à˜~Ïr Vˆ/6SC endstream endobj 350 0 obj <>stream xœ]’ÁnÂ0DïùŠüAL¯AB¾À…C«ªígƒrÀ‰B8ôï;;@=Œ¥ñ̬¼Õát<åq-«eJ_º–ØûEoÓ}IZžõ2æbS—ý˜Ö'ñL×n.ªÃ[7ÿÌZâüÞ]µúl¼ãO›Ç¥4õz›»¤K—/Zì‹ûaˆ…æþß_õöqã<>stream xœ]“;nÛ@„{ž‚7)ý¶±1‚$ É¥ÁÂAËEn"Å,0wv¾}žŸÖåÚ~î—ñw½¶ó²N{}¿|ìcm_êë²6ý±–ñúå4ŽoÃÖ~ ÛŸ¿[mñAoþyx«‡_'ïõS›4^¦ú¾ c݇õµ6ç®+çy.M]§ÿþ2¿Íx™¿>=NEê:Œ°µH°ö„ ªë0ÂöE‚íiE‚=ÒžŠ{¢µ"Á­ Öi£H°A›E‚MXÃ"¦…Œ RMÉÆdCª)Ù˜lH5%“ 1¦(SÔ}‘`ïiÇ"ÁŽ´@7áñ¬.^'¯ÎètTpÕpÖpTpÕpÖpTpÕpÖpÀ¹€šQ(J&RCÉÁä@j(9˜H %“©¡äP2XC¼AÞ¸+ì-ÐCøAüz?ˆ@áñ':ýàéÇ\$X\¦sbcR›“ÜœDýB!Q?…DHÔO!$õSI„DßTçdçDßTçdçŠ;èßVÞg¾Œï‡ÐŽû^׫žž_ŲÖ/l»lœÕBÍ' ,ßÍ endstream endobj 352 0 obj <>stream xœ]Ô½nQàž§Ø7`áüɺݸH%ye¹X^ÆEÞ>3ƒ"ÅAc¤ù4Ò]?½<¿,§Û°þq=Ï¿úm8ž–õ¿Ÿ?®söýõ´¬6ÛápšoŸIŸóÛtY­Ÿ¾M—ß.}À?ôã=ŸÞúú§ÅýO›ûæó¡¿_¦¹_§åµ¯DZ=mÕ—Ã_Õîþ‹ýñó_·›¦G|"n›qËM‡ŒÙtˆÉXí~ãfÇøÐtøöq×tˆúvj:ĉqn:Ä™ñÐtˆÆÞtˆñØtˆP=x¼qÄ'"ê›F‚¡¾‰`$˜5¢1zÓ!:#p& hÀ™€F ÇC,FÔ7ŒÛ7âž“È(2hL"£È 1‰Œ"G}ÁIpÔwœG}ÁIpÔwœG}ÁIpÔwœG}ÁIpÔwœÇ>®œ9öqmäÜÈ¡q‰œ"‡Æ%rŠ—È)rh\"—û¸6rnÀ…€A`\p!`À…€A`\p!`À…€A`õB  àBÀ 0P?D}S“}S“}S“}S“}S“}S“}S“}S“}S“ƒ¤FIŽ’è›êœìœ$5Jr”Ä ©Q’£$4)QRT¤4Jq”‚¦$*Š š’¨(*hJ¢¢¨ )‰Š¢‚¦$*Š š’¨(*hJ¢¢¨ )‰Š¢Â¥Š+p%`XДDøäöõVñ5ã»øõ óÇõÚ—›O=Ž|OKÿ÷¾^ÎþjÀ­þ+$Qµ endstream endobj 354 0 obj <>stream xœ]“±nã0D{}…þÀ’¹ÜMƒMÒ¤È!ÈÝȨˆ,(N‘¿¿™qrÅC`liö )žŸÖåÚ^öËø»^ÛyY§½~\>÷±¶çú¶¬Ml§e¼~;­ãû°5‡‡çaûóµÕÔùæ ïõðš²é§þöÒx™êÇ6ŒuÖ·Úœº®œæ¹4uþûËüöÆyþ~´OE꺳Ø»"ÁÞÁ½H]‡v,ìH; v‚M˜JuVؾH°=í±H°GZÌLš‹ÖŠKŒ”‹›i„‘ˆ‘˜™ibddbddbddH5%“ ©¦dc²Ý öž]M}} ]M}}­ ¶ÒÎE‚ÅÖŸ2v"k72w#ƒ(‹*“*ƒ(‹*“*£zVýÌú€Y™Žr®‚΂ŽW”3ÊãŠrF9b\QÎ(GŒ+ÊE‚ Ztuõuöutuõuöutuõuöutuõuöutuõuö …¨‚T¢U*@¢ RˆBTAªÀ „N!x ³ oð|€!H¬ü¦>^~Þ¼(?÷¢?÷½®WÝ&Ý^’e­ÿ.ÜvÙøV 5s‰ã¹ endstream endobj 356 0 obj <>stream xœ]’ÁnÂ@ DïùŠüA–”Ø E¾Ð ‡VUÛ› ÊM¡ßñ=ô0–^ð®gXW‡ãë1kY},SüJk9Œ¹_Òuº-1•§ts±©Ë~ŒëƒX㥛‹êðÖÍß?s*ц;¿w—T}¾4ÂO›û¡8õé:w1-]>§¢ ÁÚa°"åþßOµÞOœ†Gk½1*T`g°sìöŽƒQ@ÜÞn·F…€ £€l^Œ µhC„ƒÄIm°vD£°YØŒ[…7‹ß,QÀÆC„ƒÄ‰TÇQÀãÞ(àÞ1ŒŽ' (P’QÀ䈬¼ây«+T ì+#¨GPØWFP °¯Œ Aa_A=‚¯ҳºg…A¥IT¶çûø ú.<Ÿ¾Œ·eIyåÂp!|Æœþvjžf?UBÅ/54§’ endstream endobj 357 0 obj <>stream xœ]”=nÛP„{‚7©·?1 ¼Æi\$’\€¢ ¦Z.rûÌŒ¬)†ÀX¢v¾Yc÷Ï/__–Ë­ÛÿخӯvëæËrÞÚûõc›Zwj¯—e7ºóeº}:=§·qÝ퟿ëï?këð…6ßý÷ñ­íOýi¸¿4]Ïí}§¶ËkÛû¾ç¹îÚrþï£ü|ã4?¾zªÒ|ÂK°S•`Ús•`´­J°öp¨wõÙ6ë]ýðDû¥J}'ìS•`õ)†P°-†P°ú) ¡`í\%XP ð¨¾/Ì\†*Á2sA" –™K©,3«¬Ñz•`6ª´ ¡`“4ED…D4ED…De¬ìH‹R)Ø-â!"òš23òš23òš23òš23òš23òš23òš23òš23òš236`Ú‚q † ˜¶`Ü‚a¦-·`ˆoB0"86àÚ‚s Žø.'‚#¾ Á‰àˆïBp"8⻜޼®ÌÎÌŽDþ‘˜*ÐS¨«`W!¡AÁA!¡AÁA!¡AÁA!¡AÁAžB]» Ì Í Î ôê*ØU §PWÁ®» í7¸ßÀnCû î77Ôd(3Z 5l2Ðb¨É`“CM›L´˜j2Ùd‚5Å›äM°¦x“¼ Öo’7ÁšâMò&XS¼IÞkŠ7É›`Mñ&y¬)Þ$o‚5Å›äM°¦xñä)yÜ ^Þ§Ç9ê¦mkËMGLGŠ·é²´wn½®|«ƒvER8s endstream endobj 359 0 obj <>stream xœ]O»ƒ0 ÜóþƒðP‡Jˆ…. EUÛŽƒ2àD! ýû’:œ¥óÝÉgÙõ·žmù_ÁXÖ·$i²,Ê ´Åx°>stream xœ]“±nÛ@D{}ÿ@”¸7kÂ5vã"Aä$êh¨0EÐr‘¿ÏÌÈN‘b‰Ë™·àmŸ^ž_æË­ÛþX¯ã¯vë¦Ë|^Ûûõc[wj¯—y³ÛwçËxût>Ç·ã²Ù>};.¿ÿ,­ãmºûïÇ·¶ý9`çŸv÷¡ñznïËqlëq~m›Cß×Ã4ÕM›ÏÿýUúûÄiú|t®Vßó¤mÕ¢m²SµhùºÃÀ÷J}Ï“vW-Úì¾Z´{Ù¡Z´ƒlT‹6dKµh‹,ªE Ù¬mʲÂàƒjCÂA¡ `H8( …‚‚!á PP0$ †„ƒBAñP-ÚÙÇjÑ>ÊŽÕ¢e¹¶ðêB«  — •,ÜSñ®ŠvUØ·¸sQç¾ŋ:ö-î\Ô\*¼Xh±à< Í‚sð,4 ÎÁ³ð,Ya^ˆd…y!^æ…xAV˜âYa^ˆ§jÑžd‰ãCø :Œáƒ_ üå@_¸ xÐ6’›Ho#µ$\0˜„K¦“piÀ`. ˜LÂ¥S€Iš4QŠ(I“&J%iÒD|] ]²¯;ÕëÚæ›o¢oš.Øenÿ.ër]4ÕQ›¿D±ðñ endstream endobj 362 0 obj <>stream xœ]O1ƒ0 Üó ÿ ¡•è‚XèÂЪjûà8(NÂÐß—èÐáN²ïN>Ë®¿öìÈGôø¢Ö±‰4û%"Á@£cQÀ8LûT'„ìn:¼?`5Ýæ»žH>Ïõ¶ª¶zCsÐHQóH¢Qªm¬m±ù“öÀ`wç¥n ”Z9û%Gs‰ã&à#q*MK“\À1ýž >ä¬_4$S@ endstream endobj 363 0 obj <>stream xœ]’ANã@D÷>…o'q×)ê lX€F3\À´ÛÈ Ë„·§ª³`Q-½¤ýUOýww÷Ë|iw¶sùW/í4/ãVßÏ[©íK}—fhǹ\¾ÉgyÖfw÷8¬ÏŸkmy¡NW~ÞêîïGÿ´¿~TÎc}_‡R·ay­Í©ëòišrS—ñ×_Ǹ~ñ2}_=³Óu<›S¿ÏN×ñ$²C<y±÷åÞ—ûì{aÊ1 ‘"„‘bo²C¼Þf‡x+,Ù!aͱ §ì)yJ´UºŽ'‘}“;'uNì›Ü9©sbßäÎIû&wNê ªÃú>8ÇÀ£ Qàx4 ‚GQÖ‡ôAuXÒ]a_Èt…}!_ŒÙ!ŽBªÃú>¨ëCúAõ°~H?Ø7Ü9Ô9Ø7Ü9Ô9Ø7Ü9Ô9Ø7Ü9Ô9ø áG =J Ù!^¦Ÿ­Ñ^iC²-ÛV—‹×Økªíœ—úÓ×óª¯Z¦ù¥8ÆÍ endstream endobj 333 0 obj <>stream xœ%’ PSW†ß#< ¨XSkµ/Q*‹ãÈ¢–¥.UêRd+Æð$ACX‚ˆ¬9€àH0EDY‹T4€Ê¢‚:b±nµ.µZÔv°Z[ñ<æj§3sçÜ;wîùÿïþ4ekCÑ4m>}¨™È¥ùq6üg"H>èoRHm³»4“œqíp A‰hZ—` Ôǧ&jc4…»ÚCáíïï;Yáãå寘£ãµjUœ"XeÐp:•AØlRDèÕZΪpŸ¡1â<=SRR¦¨tISô‰1³<&+R´"œKâ7sÑŠùú8ƒ"D¥ãCÒ¦ -z]|²KT룹Ä8Š¢¼¼}¦N›þ…¯Ÿ?E9S#©¨Q”Œú˜M}B¡>¥w”-C¤]éfg›QˆÈjëoÛËç œ‘\?hSOß}‰·_Šø¿ð¦ì`± ªÀ¹@*ЂÀŠ›¬pxY¶|÷%þÞiºà\ûîÂá‡wÊN mW>Ï¢?…¶$aÒ—ij`„`åÍVk9ÝÏDü„Á²Úˆe¿^LDÌÖ¨2ñ!è)è:̼͑lãxvE”øÜî>èªÎeŸ•ºXWHƃù¨|èµ~|„·­ôS´Çª7"þFÊTâœ-™ÁÛ2wìô…4`ˆR|õÌ­óO<¹ü° Eœ®2Ö}¦Çrk–¥ªnSCBù¦¶º¹«öG`žßóð [*ÿE2•Ÿ$#ÿ‘ÖV£-άG‡~'[ñÄ€•üiYGF3˜¡Ζ±T–ôž‚ ¦Ô˜Ÿ“› »Œ,—œþ „ÃÒâeû»s!˜tؾMN:$[!ã€9/ß¼—m´vTô ã봖͇´…ka¨²#¢£×® ÏI†E0·zS÷ÉK-bê’*7&k3ÖxôûáhôÀa/qÚMzMäAÊm±ëØ÷:yÇc½¯«é{Hc— 2ïËòZòî6ôÔtöœÿ@snmÒ¶ì„4Ð2+7×”5ìmíä.'òñ!㉚ì@{Wt}Ñz¼ú{¥c_7œ…K)g–·DXS5 Â`‘^È ·z20àäsO^·Õe¨Êk7ä© B¸ÂmTëc5©ïcž|oé/b^4 ´ãŸËöî…ü¼B¦šì’$qÝZ`(4ç3*1G’íNŠóKÍ=eæ¢Â?óJÁ,±jeddôJâH&§‘Ï!„YúýÎýÐV–Kç7¢ÍÅ«Ì÷‚ókøæ²ˆŸƒïdÿœªï€ Ì¿DršÐdÄÄynžw׷dzã×/ †HqLŽD:ÝF¤]ÚÖ²DùJ¶®"ãˆ×+jîÝ{={*¯7™LP˜ÅNýJ†ž3¶´ÅCä˜W—kóÓHµÔY>ð¯xsíï$¨À.¤E|^—APölmhlXèº0Bh+ï)=G„=·5&k5£Tá tCTã.âÐOX·•­š Vf,%„—);W·ªZ~ƒ&¸aiÌß…25p{bšuÇMMÐ 7 jO”–ÕÖܘ¹ñ_ç:ÝU>,¹‚,Ã8sQ…˜¬/‘XúY[ßr©}½Y*í+“:QÔÿórØÇ endstream endobj 334 0 obj <>stream xœM‘oluÇ·vådMQ !zwÊBVacè…4…Tþ#$@íŽî¦í·[Ûµ´»q³Ýú¬¬´kiÙhwne(  ¢#€þ/4QA^ø}£!!¿#÷ÆšùÂ…ÚÔ¼&r‹|ïÜÙÜÅÌIú¨j½€×?>’òüg÷’î€NÚ‚çßm¿.ÆK¿ùêšûþ²%þ /·þO³_XYÓ¬D‡NV ÕÂú[üfn:•…’í;y°™Óíñy©©â05R­<ºd>—ºdˆö­uöÖÆe2Éö‰¯üQů SK~k’u2˜„ /–•byª4]3~ž¸,Þ¶ª‘qþ£N_ç''•ӳÕÊÒ­jÎ<îJª&Ý_0»ðNµÐ¸®l~F1›ú%w> endstream endobj 335 0 obj <>stream xœcd`ab`ddä v ò5400qä~H3ýaîîþáÿ#ˆµ›‡¹›‡eÙw¡‚où_ 0012Š©:çç”–¤)øæ§¤å)åç&æ¡ 2000v00”€t°;ýgôu`àûÏøùò’å Ê…„|¯û(ÖYš•ŸQßÏ¡òÐà;çg¿Ê /xkÿö7·œð¶ö®6i¾²…?œæ~Ïë™±”íwh7û{®½Ür\Ì-‰ñ<œ äFä endstream endobj 336 0 obj <>stream xœ}– TTeÇï8pïpÔ<·°­¹£aù…¨™¥–‚f𢒦6| „ÊÈÇ3óÌgäC@a>̓†iFVj*beu4-·NÛÖ­=wööì ØÇ¶Î=gîÌ9óÜû>ïóÿýÿ¯‚ñÆ( >bYDtÄ´°ïä¿(ä†É*!Ç»×çAJòÛ÷Àˆ÷`çh̉/Žb” Ef^YDFf¾.59E¯y$!T3möìY“4áaa³5óÓ’t© ñéšeñú”¤´x=ý¡ÕDg$¤&éó5ÌIÑë3Ÿ˜:5//oJ|Zö” ]ò¼ÐIš¼T}ŠfURv’.7)Q³(#]¯YŸ–¤¹»º)wïi™9ú$fYFb’.a˜æ§gDèésã7&$.Z‘œ²*5úyíšÉSÂfÌb˜ñL³‚ a¢™¿2«™µÌ&‚‰d2S™0f³˜y–™Î,af03™eÌ,FÅŒdF3Ìn/œîS»¹\K¬9¶Á«N¢E:®ÖèEr’SyG4ˆfÅë·ð?·”òu¬0”â(ò %dýœˆ#H>L¯€ÕÄIÊ…H2¬cp²Ý/¡ ‰"1dتHQåmÉñx'{}ýrE‹Ò«’}ÂæöågBhC1d™A^"qHï¸çÞÁ0° v ¡´È"– dø“ÄøédÅ)<€¯aüáË?~ÿ8™²W” ¬¦àwƒ­QÄ"nì,,/‡í%j•üm³ÔY.Ìr߃Ã/ãê7ܺê¾oÌ\.¯À-UUÙwÚZ ø÷oš4‰eä^q:‹ Boý»]ðß~ŒP£Ž½h/Ý(úXncYébºßû¬¯I­Ð§ÌÍ–Áý^\æ8*â‚¿qcNº¡ÙâÑ6æ@6¼Ñ¿_[Ÿd[ðçëÞuÚ¡ÊPh).Ë“-FȃâšÒê’Ý¥­†ó%E¯?ÝÆ«¼ë©Oxðx»Ãocœ[éõ÷Î|µMì5©0Yô5rÉæÂyêl-Ûaû:á(|MrÚÌM‚š-_qßìÒÎÝX¯cgn׆ª'£ƒ= í<¡Æ±,N…ÖÕ»‰†w³*ùsª´Xkú”òaÙ.ø¶³d®¿›­Ä{œõ¨þMĉ>†K(§/ÍÕ±¶³p„^g¡sà¥î\n^yõQf¸c6x×2¦R=ðloa£œMU¼X^"”Ôƒ;ø–vØCµ—e‰2¿Y°Ñš9¤½3à0ÖnÆå¾ç‚ÉXµ 9µ¸@n9×%ÕYyªXs¦%2!ãçªÓÎ\ E¡©¤¬Œ'_’ƒ!nìu*ÚåW•x]v¥»Ë…P0DðLß´àÂÌ-±Ï™yç’Ú¬.ØÇÍΡ9ÆK¦v¨„ Úoó˜Àº¢+òjR¡tlF2l¡ƒo±ž¥ µC§¹i¨ Ší†žŒFA QìWXJé½F×°Õ…É´õ€÷°î†R{…Kµ=]ðnáy¢P“öß‹ Ïp¨ì½Ô{aé™YÕ"‰Á…»­Cý5ûEÝÜì䬉ÄÅGs„›-OÅÇn~&L eSÊlGD\ÁÑ9¸åB7EVÙ¤”3å$!×µîèÓ”¯‰D d™„ôŽñÞø¬òºŒãfFÍ>†LlÁ ÔáÔ¦®«7×’1 ¢d´–V_öçr»¡¢¨Ôb.¢hyýîÚ¥ªç†‡÷ w{hçpÜäñAT‡àH"þÒ'*|3…ÁåÊ*n°±kì-8¶¾6ߕኇ‡aö¶øÜ—·æÄÅL~Ј½ *ËðVy5ÀJï4¡¨ÆbÍ¥ýÌÕ²­plÅV3X`ï«ãÒ`Cu×k·t@·¹cÈCàø>Qnàäg}?Ul·ƒ}ÐE¹‹ÛÇûÕ.Ųμ6Ã:)ÅJK´\?lH}ó© ÞÌiöÎjp¬¢~¥w~)`<5¨™d%YM¦‘YÔ²bq:™Ž«p5NÙ¸^M¾'Ÿ „!âWX‰&œpý»áøÇH)©%!ᨠæS¶7ã9ÚÙŒ[xµ_)/ÀË5ýáõ;î32Nô)~á¼é7œ¿Ocã0|ƒœgsóÌÕE,æLØ- rý‹ó€ ‹âGæ‰äQVå Üø”»d7(àe«ðë_ØttëyKíü^jë“I(Ž&* ëxß~¦S¬,ا­žÒP'¢?×¹ÃqŠ’»Ùœ`É‚dX )¶܇; Ä4ô Ï1¤Ó_NB`*ÔĖþŸœ†0ÝâÆ¤Œëú¶yx@ %ø{Ôî¸H_”nYeΈ–Ò¬ƒ°ÿ΃۬=’ \ð¦yßo=x)–¥þ™åþô*ïÑÔižòÜ30¨†oVôÿÐtß‚¼#à.Z¤Ê&[¥ÕNà?Ã` ¡šÈ8â/ö j;ÿ\âÿAT7 Æk0Ѓ¶+Ô¸;©ŒþÏ@8š{öçíÙÊùéð&Ð-¼Aò±ÄC/¿YÜü' ×[PMÙ-6Òdœ»±0Ö€±+ùÂÞr÷Ëûs]/7$Vó*<óó ¢O‰Qò2á˜Ý~…vœjYk΢ƻVJêøŠ½Œº»WVIw¬ÝzJj†fšlíC;Yf?Fç…4¾ÃZ}çñ‹óJ4É 3s/ÃAþRϹ›¨>ýð„Zµd€²êŸ cÃ`ÁB³xÓŠÌ– ]©Ðøðéã–¶ÇÖlO¬Ûg¼‘·»|iwùÙg™'ÕaÜ— «ùÈ5añ‹+Ž=¯^òºéª¥Ý²³T*ÞÆ|‘¬ç¶€±z§d«t¨½Ýš~!®ÆâèëßÝùäÅ¿“a- ðÈä¿»­ôÆzg ?ÝǾBrh Õâg3NƒÜUf— ¶ƒž§3I…‚ñê-{Ôö=§W?œI7jÛE¹‰ƒ½°Ëe«’Úh-†AcV-™3žU¿n²œFp:¶äÉ¢p¢þ¹!k–9îd|0(µ¥æ4ÐAŒ”üGr–§RÇy#§Ñ;ŽZC¾Ü/˜w˜*i^¶†Ö›2EB¼qCÕZîT”צ¢äó; ¤ÒÝ4Ä$»£‹ä[ÁÍÞ£ å=œvÕ4X)e UõXjÓ ÊhHŒÏ@órF½¥hÆýJ| £„·Èþ•œ ûàŽâÎ%¦œÚ²›ÒÓ³³ÓÓ›²ÛÚššÚèÁª;Çå v)zn ›F[ ^à›â÷7õ&]]èYÏÀÂÔMé+·-2Ù&¿:ïô¤ÛÆýp>®?ñyç;nCO2ÈU!žså~mxnÃ9ŠÂÅêç?{ë;è|z {'Õ®' –ÂãÛWèIÀ\£žƒÜMÁ¼ß#Ç;øéå1|AÐbÇŒ!°ôZöí XçáÐàõC`}ö£G#¿È9Á±µÈb1©É _²€5²Êß§âZj”/\Sà†/•rµ|G¨¬¦§O*ÙPɶµ;,U¦:^Çn&©”l{ª.ÖVTÛ? gn³Ø DM"«Ì‡´±E{ü8tU©»9@ U=òª—\]‹êj‡‹õôªüf9ƒ†»AA}{‚F0Ìy»v endstream endobj 337 0 obj <>stream xœ¥X TTW¶}eQï=”JåQó 'Å)¶IœP4qŠ3¥20σˆLVÕ©bq@©0 OŒŠ³V~¢?ét'š´ÓÚtÌyå%Ý} 4Ãêþëÿµþº ^Aº÷ÜsöÙgŸR0vý…BÁÍ_æµ~²§í¥‹<\!è'¿ª²ù™ÅºB•0Юi„pÍïAý Ü0˜Q*‘ñÙó#£’cBƒCâœÝÜ'Ïœ9c‚óOÏ™ÎóƒbBü"œ—ùÅ……ûÅÑ?Þs^—ììöfH\\Ôë“&%&&Nô <Û}‚sbh\ˆóª Ø ˜„ @ç…‘qÎËýƒœû¼›Ø÷˜ã¼,20(&‚ay‘ó£xÇÄ.Š‹;Ñ/ÉiÀ²”À wW‡¬ ]½fí{ëÂ=&zNž2uÚô×f0Ì(æf3†YÉŒe\˜ÕÌÆYˬcÆ1ë/f3Ÿñ`0™MŒ7³YÄLfÞbÞf¦2‹™iÌtæ5f3ƒYΨ™AÌÆÑ0/3ó ãÈ e&Òh2vLóXñ¶âJ¿%ýªûýCh§¶;e÷O•ŸªšõforqÜ÷üD>¯¿[ÿÔþÖþº^õ’u` ý ûµ U?¤”;Øc°×`ÿÁ—‡ ’íàî¦5M/—õj«$t‘äÅŠëa¥a&dÔ„]YÙÉÄÔóס9iú¬9À'èØFÓ)s4Áyx_zàh‰3LƒrS^©É¤=ö*¬d/Õj˜÷Ú îBC¯á8Ž<ÃdIŠ$±j«=÷IW°ÅYº|‘uÔ´Ó²@®.ÔqGL—ÍôœK†#FÛÇb‡Š¯;¯¨L˜#’CÿÑd7÷ãÚ&×ñëV­5·‘áÈÜ,•ŽÓ´_-‚@­Z¾™Ó,k,Šz|‹ðe¥Ü„›ô„Ì ðKœÈà»®ø¾ùÍ$’b²T @æ›vø`ÿ íÁ÷[+;¡ZS«B*Ca lâ§aˆFT[odHò3Iñ!zÈúN¥µÈ:Y8%É™Cv–øöŠe§ß:°œˆ™xwâGü>ÑŒï  !W‘mJIÏ„£6› #öË]`̨ö¹¢»°ã3øÎç!síã>þ¦ì õΩ"š¼$“áðµ&s­–Æ’¬“p¤EVt4;<¥Q,À—5_bþQ€ƒ&Óž=Í-g «€ÿäürâ@Fzû,Þ®ƒs[´å`‚ƒü,»¶“;[€Çqûµèäù€Œ™»î½ä8­æQ'G¼ma¤A Òö˜þSä9õ3Hò=I®8BvDW%ºZ5BÏ=ÂèäùnÀqô¢Û0ŠŒClÔöxéXÔ÷Üä{èÂ} _%uz7¬/^(v¬ Û²iÑÔÔåÀ«­»(L$,=kÛzN—”Ö`<,èØx"FN!Ë€'°¡‹ý¾ÔwžVÂ:v^¦ï8q –â§C­×>bÏKì{˜£úY¡C¦ç+ê“ÕUËátër½¦‹†ŒyŠj·â·ª8òúój{áØ`j7w@#|–^4OÃùœæöõT?ÆäTˆàýë­¯l>»ö¨¨i÷†€ qKyµ¼!Ç"¯whlõ»;è/GŠÌ`”„w‹—Ä_½?kŒXS šÒL¹•ÀWCÁ!íœ >» (F—‡Nhl*¢*R´Í!9··óš{–œÏÒW ›; âGFßjÛ!æîÉ…íÀÇBNœ–(¸$ÈøÝ;Û9ç/ãÿ*j’já&tÜ¡^¾õKUŒRb+­d%Ö_ï›érÿ¾Ð±´NX×’÷tÐõ´ô‚Œ°ÔÇ»*åÁ’¢ÆZ©´ÆË…‚òüâKÀK\œ!Ü Q 3Ç›l»p%Æ ½>Ǩ׎"%„Åãªófô1„ƒø™S{­.q•ÀFØe³|“¬: Ël†þ£?¼[Í¡Ï Ñ£g@QJþÎpªüÒ¢ýOq÷Чd÷ïþGïx>Ç.á;ÇÐÃâPýgãœf e‚<à¶ðlþ»xŠ­Ø Õ‡Ò!]»Üåpˆ§ù¾·à#⾊¨wMÝÚt¸®¾²õXÒ~½Yc*€¸h¨è¥@.9© Ð¦¢bí#T`?òŠ*PÇÖš®˜C=´Ž÷Z-è]x¥üªWvýJÕi¸M+`ǯT¨íy$qçUšÎ¬âε÷†£{w/5{< ci!xÁ†ˆØD¾t ˜Ïn8u´‹Ò·ˆ½·ÖDj#ü7g„7žÛ¹—òè¢_‘ˆ—)‰:ö’hÖÂ2…,~ %âá»UO°¶‚ õa“éãðëœZ.¦ísP³¢‘¶O/¢Äy¼œjH€LþE ¿&|áJ²háOœLÀ‰øÚ1ä‹öl‡ÉFCz®½tSÒzJÚZ@׎󀯠а_¯/תŸ}þÜE·³òÏt¹ ‡ $[®Í¨É€xÊ16o.³o4FêcõªPø›Ò¸@{Q+œy^61\2¤˜’ÍyFÊz¼,™8¬éù¡$qwn8U@ñÞü¬—ÉPSïÕXKÞ}h¡ëÁsn' #‘h.2 #†B¼še;*d/¥¼–&ª¸Ìl†¾r;$‹=Jv™¯’ØÂî:K7ðfI}“™A«,Ó)¾Šò`önQéØL—Ôåd(ðÓÙ>H²²¶ˆØJ&M~­MØÈá’_ØGþñ· >œ¦³iƒOá¶áÄeÔT2’ ýËt£p¸§ªëjx¼fGò¸ôdÿ5T®5 ýõSp®¶I{´U*­ƒ ÐVA/TMÙséq|½O e=TÊþT U•Âẜ[Nkßµ¬;°î0mÚ2„ {<§ã”¶§û$AnŠ!75G›°iUØbj1ÒˆNhÛ™›L­•Çk››wìfâh áÕø÷ÞrÄ(‹‚"s)±¿¼B˜«ûŒt/Ô±ÿÞW»‘“ˆýû}^RSP†"1-#+ ’x߆¤Úcõ•-­Áí³Ü ãGTTx¦û·`çsd×£åY¤5áÍÒbáoÒSû¹ý™¼®í™þË0?PiÚFy¶ñyÂ9„N ÃNÎâ8˜3Ì&ãm’‘l¶à„ïoX0®Å¡þ7*q*á®÷׎šŸ2°W Sá“övøäî]xkËxkª–¨w ±jhAŽéºs]Š9ž¶O{l_¥¹ÌdÈ5dB³?¹¶vÿÁêC) ›Ótú­bòn¿Êy4žcÖÌòö¯ð¯§ÊËÊD†älKiù›ÃÒõ^ °”_ß5uè}çÒõcY×Þ:!®>òŒ‡hÚNrM[‹2á”æï-,毒µ”üØ:TÁ²àÀµä2pcGÇåk°GÛ+¾û°§xÑú”´3 4#ÿá½~e@œˆ‹Xµµ;Ã#aë$›:ÄLçŒßvÔ¤¢°p8Ýø>æŸ~"+ÄžÁ¿$ÏB“G58MÞ‹jÅ:NsšÞtœ„ºÐúªA¼àmØx=ôdüÕ]TÔþTþí¾*J@ ÆéFm®.">Þ̹­†²¬OÛ¯¯©óÝGÁz³w$¹‡žw(á@ÆQsãäuñ²]èÒ/r°ÎÔin…cðÁÒeœæI©ü‰p2ø„ŸoHˆ¯oCH[«åÄI P:ü£ÍáÃö-ðÓG³Û5·dyŠ@ÆÖ”¬>WœÚŽ\}üÅ“P2☠†—ôJ¢,£qg†¸eëÊŽÅ%´ó óÇZ||se¼¶sã‰lTÄòšûwiã¬JØ›VCaÀoŠ^8z™PîY¢ñÄ¿ƒ‹{å`‰Ù\T,vt|¼ñ~N 8áÌ«¨z¢ÕÜT¾þ¥çAÚ)Z(6î\T´J˜M+*‹öŠ8ë áçélÉ¡4W‚ªÒ/q ð·{î{.ÖÃ%ºèã\_J<ä;Ÿs8Jß(%,ÕÞêg<Â㾕µgmJæ'ªL¦#yÕyf8|ÄéWQEé>ÏeQ wöŽêMFˆç{ì9âF‰‚Ì7 ãyQžFYš ¢bÊ—.÷_ÖŽ8!C€«þL `Ø›ZùE;Œ㬋…ß6ÚÓ4¥õt°µ‘B‡áÄ‹™Æjͪ´²’¢ÖzAiM’ ËóKnújÜdˆ‚êk`^ŸøúoرKŸKÅÙÒ³‰„ʱª¶+§® é5û ‡GV'çg§}T •USݽêw“°_ߣ¦ó›†¿é¼z¢*qöÿT”ÿ“Ý\÷ú–1ž>6G‹‰÷'åÁ4Xµ%l)OgÇ_¦çÎçÓ³½)Êñ¢o —ðˆ\ÇÙ⊞Š/ÑS‰;ïm! ¾/àßÖÐÐFåØÍ ‹üEÑN 6É6r×âMᑳHÉ1’Lw7IÅÌ6cÊc‘äI†ÕUé·2ÏÀß¡‹ÊèŠÏì¾w½´Þ‡–¤ƒ[÷¿ #a&¬ÏlŸí—n§3¢lKnŽt²B;ð%%þdU UPa€ìLqöª1|¢®‚Ý]¦Kùž=D«ãNæ=…NºžÂÉ>Ô:s¶¨z½€#%Ń QTÊ{0†*%}bæ’íÙ9s!•²´++5ik?ŽìŸ>”à!Üèÿ¢ÝØÞcÙä§Òªë›«NŸñÛ—–/­n,³ÿuÇ¢¹ ƒy/Ð’ÍÄ/}‰NÉò<Û‘m´k¡ªé&¾ÚØäp =ˆ=m]"¾JŸŽJp?â§•·.À×üí9Wé9/ÍZò†o]Tc{Mýû×–í2‰ GN×ÿUÞ’méFâ8:Gëo0s;†´ßhz2’Ká€x’E¸¯×ÁØÑÑ>ùÇ6i—ÔÔ@ ßV·Õ/$jýäGï €‹n=þN¤CWÄ×”§ú"Œ Iö¦!¾e“f+ÑSx$“g²‡ ‘ FcÚ‘ü­çm•[hÚ鏯¼ïz¿ÿùæ×ïXú!,^SõÞû íc,ßâ`‡ 8ìgqŽ¢]•|³€Ü›÷‰[Ä:}˜NġܑÜ2à ÚN]þ‚ªš"CÙ=`2´«â×åøÂXw0º$“Ê==ðÛ!#UKÚ©L¯*7ç‰MçJi¸SßÐjžy+»´à‚Ÿh1­¦w?ë»76Í'sùkw^ÃÁ¢æ'œö÷¨ÖözˆÝ–S8¸Ö–—ãgá¨éÁ¥øP8Ȳ•mE{«¥s–+´ížÐŠ ÎMŽ‚p>ôPdSSumãU¿k#É2s:)5ÏàÍ’7ZJs>½N¯¢ýþ8 ]n{­¦'žBÚoÿ#¹&ø@TSÖ¾Ôz¸xrNêzs]]`žKo=UÊ…8Dñ¡ôG[ÚåûBi˜¡'¾lׂíù ùÆC)¯cCH%ìÒÏËËóÍe…_Â~zì,vÍâñÄn>ÄÍÉû<î“ >;88•wªH*ù¤òRC ¯Î(“W”à–ÊÒ2–l.â¤Ⱦ$°›Q1°sÑÀÈho¨f˜»gÊø endstream endobj 338 0 obj <>stream xœYXT×¶>sæD•ñPD猱×XAl ŠØ%R¥ R¤uÓg†"0¨ *(æ¨`ݘh4¶˜hLbbŒ×w/¦­“·É{oÏ€Ìñ~&ßýÞ÷Á0çì¶Ê¿þµÖÆ‚²êEYXXô÷V…ªc¼"#–_© Ußœ,„Á½„!–©Ø[þ˜$äÖ²¶DÖV»oûÇ•Œî'ÜïßµI¡Å^‹Cÿí·rËØ±ãDF%D«B·Ä*&Ïš5K˜ èQ¸+cT¡ŠQäKœ2,2*\;Aá«T*b·(!ª0¥bÁrŸu‹½=£=½ýžÊet@˜ÂG¦ R,S)#b”.ŠÈhEX׃"(2"X«ŠŒˆ™ p‹Q(b¢”A*²H¤Œ2ŒSD)£ÃU11ä»B£ˆˆU+b#ªˆ 0u°ñxò>$2"VIÆÃÉÙÊ'2&6&(Z« 'ú¸{tÉ»% ÖxnŒŠ +"CÈÌàÈ µQ›ž±ØUDŒ"Vk<'P©VÅD…$sÉVQÑ*“êUD¨ùôqŠheh@tp˜2Æ´¯Ñ*fý"­¢¢ÂLk#M³zÎWÅÆ(ÃB&tyUAÜ©X¦0:6, úµ—f/ýÿüFQÔr·ˆµó#×-ˆZï¾0Ú#Æ3v‘zqÜŽ€¥ñË‚¼ƒ½•ËC|BWlY©ò]µÍ/luøšãÆOxo⤤ÉS’§N›þöŒ¡ÃfÏ9wÔ;ÎïŽvqCQèåÔ,j8åCͦFP+¨9ÔHjåK9S«¨Ñ”åB­¦ÆPk¨µÔ|jµŽZ@§ÖSîÔjµšHyP“(Oj2µˆšB-¦¦RK¨iÔtjõ6åEÍ ¼©™Ô;T_ʆêG¹Rý©ÔFÊ–’QþÔ@Š¥ì({ÊêEYRNÔ`Ц†PRJN1G½Eõ¦†R}(vÊŠŠ³èe¡ëÕ·—W¯³–î–—¬úXm±z"Y!¹@«¥ý¤ÒߘõL=o­~ëëÞ!½…>}NZ·ÞÝש料7m¦ØäÚ<ì·¢ßáþ³û?2à;Û‰¶ßËfÈN ”Ü0ð ëŶ°Ù?íävïØyÛí´ûÉ~¹½Öþ‚~w\æxzç œA7z9ÍuJÜoðÆ!½†Ì²yHËÿ–{Ès«…6 ă3í¼…à >ìì,™G'dhR’ušZ&ѵº²ªÊŒ².„Æëƒo [ÓØ³S- ½k^1—>Î(æYœJí’]t׉Oø(ÞöÓ—<4ðö²›0G˜Îºš7‘}ÚŒŸøÓñ]ÏìÍ›úC)}€×—ï*gd÷6~ ou:‚ Yõ;â*£Q8ƒ‘Jj–ÆÂ¼Peôž—§Èe>^(4~ÅRÆ$‹ æ-àð,xB Ð8¿*£4ÖfÚh<oÂa“ä˜yGÜËCŸž›Ÿ)ŽuOôEŒÇæƒg8¨ƒ(iO„¿Æì¶<ì%±º˜'ù‰n(Á_÷‚M‚ºAÄÖ"nÇJ¼”çÞ<ÚЩîΜz㎠ó,?HêFŒ1&L¡¸|i/ –ÚÝ‘Q¼J°ÆRZ¤l-k[¾Ê;|‘ÓÚ Osp~œ¡dtîGk¾’Ëܯ£«çωòêbÇ;‚NäÙÛbÏvª1'z¾-Â7×S,XÀ÷v0[°–ð"EäúMrÛI<ÇÀɧ¢³Æš'ñ4Ìí´–÷¬#m!xÙ}M¶4¼9¦=ð) •¬¥§cí¸#ùèÍ ôc²ëú{¨xŠ+$¯ ì΃o{›‡Ë| ØØË¢…vÏE6Þéuôçžg'„,I‰_%OËÉÒ t&M—¡/,.((–?¨o,=„˜;§·®çÜ¥>Õa%›øL÷™ÆÉ2æ][óìÖ•÷/^•˶Y-ZæãN@çß|öÚíc¿?™•qH”ú›(h;ûðÎó°ãËïà÷¿3ËáK»Âª3c>„hXïP-²\o³ÿIõsJ ðžÏø]ú¯8ê]óö®">‚HfÀdIÙ›+¨“4‚íð °“´¿¹ +£ažŒ—aI†èÑRN|Ÿ“—­á‚¶ÍW{!L¡97“ex«Úo_z^ »>Õ“˜.h•ñgxaš©õ¸ÃbPlgáY@þCHýiÓá]LJZ`~Ä4‡ŒÃR,Áôx‚ÏÈ)÷Ê0Šø0‘lZO° +Dè^q•>ÝÖr}Ï‘ÜÜ}ò“Yë:m…>«,µˆÛVêQ¦DÌ䥫çsÞS͹î ~â"2Ò-³‘°G7Õ­ä¡èUóf$Þ$–4@÷Ù³™·‡rXó—¼ùzmIVPDzµ/?õõôX°r÷o½ÁÔ÷]˜úRXß±þ7V7ãK2ay‰&;' iSuåEEÆLw¬âFyj@Õ¹ûÒYeúå¹ÕNG?Þ_W‘¡KËÉÉÏÍáÂv$jâP Ê,ŒÑ1²øòðØâ§8””žÅœž°ÿLhrKƒÑ-ÿ„†M]OzM)]¼r„?héòÊsŸ4’*ÓñC´G³7¾aGåvÓ=ƒ¿¨p³7gN(¢.¾<Á; Ö{mw÷šNo3¢˜%‡ÜßrÜï ~›¹h†e=†F^vìÙö“èSæñÌÛ¤¯/øÏR-[A"Œ—Þ¾á·|éœ5.=Qðó/¶Pq9ØÔ–Þ12ÙTѽñË5©¥ÞJý¢êZö¬«é½yÞŽ³x‹Ž.®Ï!ÅDsWÑ”Yoâú̬dÓô»øzòÂ…S§xÜúA?Ü}-#$dtÏj&³0ýí4€ÕwßÝM =5|‹§ˆ4{«Óð7¨1ÕØB>Y\gw‘¥`ì•tcˆtÝ ÐØ¯S-É¥±· –|!š4Ö,Ü~ñ­ayGЇð®ñÇØÏ[8‹ŠÙÕfüDEËnv¿©1Þöp´ì†Šݲ–‹­Zœš÷o æðM‘AŒ£­—šêIÝݲ«’t*¯ ¶Ð—7žZ¸5n]°\}rÛÞ͈‘ù ˆÕƬ±Ý5¤Â°ê!ù„þ˜è¾Käð1¢2^Ù…-„Á/[uö¢$ÏD¸(Ó˜îMaârVS•]œ˜´ôŒôœ‚œâL¾úsYYrIŽ9êõ:}q~IN™¤#Ù…¸(Ÿ0(ÊqLªL©®Ô–ôr µÆTå$‹çA9Û#\ç(ó‰dÂNÒŸ†  iŠ8Âéé#M­‡ÃƒM)`Ài Apeÿ´Z÷‡•Q>!î¾l±¶ 3út]:IþÉ9&òåhò³‰ é¤QÖ—W•ÑEÒÇIb.‰‰…$ø……©ó€Â–Ør¦ðT¹3iÏï“to –÷‚)rüís}RûYSûžæfÃQt5ÇïQ5mªõDK™)R´4Á3|“Z¥Š@HeP7‡·'|†>1ú¦ëVRÈaQóÞ}Š …e%¨Š©ÈÐî\µy“»IQHLthnR~¦†ä™dmVuþ¡Üúí(”!c>Ç6ßEjƒ*MI|¡|[Qì>ÔÌYçíÞZ°¾|7IŸ&ˆZÀA#Á‹½V$egg¡4¢uº®P[H28•tVbNjnÏo‹ ÑÝï y[a!BˆåèdzEÒ‹'¯]þî[è}ë>@—™§ÓºxûFn‘ÇǤ„£&ƒt奥UÅòê+·}†˜û7¼=üã#ÇOä\Ýæ¸ÎžÏ,—Ên ò/ÌmD¨±‡€ýDØýñ,RÅFmËÏÓd£d&U—¹ëü±öËr£‚‡ëUhËP%"Ì’TZó>:dTþòæöU;32S“˲ yò¹{£Êh,Xw0fkLZ d^ùÙVXÄÇzÃC¶° ° ]ih=‹.2ßÍ»á¼f]Rx°<.)9ôÀé¤2ÐVèå4Ÿª»€˜/.¯_ÀÅ¥'å¯CLbú«p¿ùâÑâwÞ·d’¯¯áÐFNS’S˜…˜ôŒŒô”Ê”ƒ‰ÜÙÈ)§ÒŸu|¶ñÊ;ºé{ ¿ô[äY“¶œ'"{Ñ0T0ÐD«•U]í…|ã;$¥Pϳx' Á¤!©§MzÂCæ¸ð°›v¥p……,Q<·à=tŠ6£¼¤¤°´B~tÏñòóø’×”a‹¸¬ðÛ{|§)3)–‘‘–Zµó@wzë餈}¾ùlÁÊõÑÈ÷B2âÖr]žæÁ³®Š9øˆñòB6›oÈß…t蓚Ÿº÷å‰ûÈ€jsõÙÚlB ˆ)×êÊ ¡Õ›—,‰Þ´šs[¶e: ƒ|m ÷‹ûßõrÞãIî~A³å¥~lýñòÚ]Õ}¸û0bn]\S—AÊéüyg?l“’CÈ)Ý‘›¶°¤ °ÄHÉ·¡™¦ã%¹%yEȱ••9N/B¥9¥%`]Iq Ò:¢¢ü¢<òëSšULŽH×˼jIÅ•ÀÛþÊבØß) ±»d-%Å×5Ú«Î:V˜ßn¦Ó7$mÞ‚ ˜¶žMk@{™£GZí5d&ì–¨®(#§êË3ôé9Yy¹Yòô¬Øª¥±Èq‘¯ß’ˆ’´¶ùœG\À*äÁÈ Þ¾1ÿAû¡Ýǚ䲂˜VV¼M½1«6œ»v¾ùèG&Ĭä&D` ”9 úˆ._|ðˆ7˜R,ÛߥX¡X´s:ìÌ.Ê.ÌEŽY(+'—ˆí—KVä"Mq–.¯sÀä##;'›tF(§ ·0· ס(«,§”ؽ¸°¤È”ÄN\µ–#Ó‘F“åŽ{ã·3qpøgX²7D—®'ñ­×•çæ•pÐ?ì%úý¾ÿ—›`ct2Éˤ'O3ºŠ®ZÂ\²)$Òr ò ³¹[x@“³±IW„ ÷À6yÙùy(‡1ÅoYÙ¾ùçÐë¼…þ…~Þú«'XŶ’öåòâw׌8#üƒ'Âo“À8hrk¹¦,µƒ&éž7'aÉ,’àÇÉñ )r¯õ:´æÐÚã1Ws÷þýz"š&??=‹KL݌֡-µQGÂÛ/¢+ L“‚Ã'Ïž~vjÝBùFéÈ7o4ƒq¿ä÷@¯/(¬“µJÍMÎOCÌŠ –ÓW.{`ò±t= ,a±ãQMa^Ar42kº6C›ÏçƒcÀll¥I'zf›úQmI±^+V°•6­8W‹Ëuºò’ÜRRRÍ+p<º«¤´•;oüs5ùyÙrì¸YœùÈfG0½lëêêèc½ù>Ǭ­yë¾õ×_² endstream endobj 339 0 obj <>stream xœµXiTgÚ­¶¥«ŒˆF­§ 5Á A\0®àT0¢¸ ²ÈŽÐì«"4[/;oÝìÍ"ˆ€+DQq%jb"ƨc45Æ8I&ou^æ›ïmÐ$“™ùóó†>ô9]UïsïóÜ{DÔÈ”H$’Ø;:[Yþš&¼-&þ"쩬w7c1<0éMj$4.<ÀÏ?Òü}/ s+[Û3Í­ç̱5_ìàå)5wôŒô÷ öŒ$‚Ì7…xøDÆ™¿¿Ø?22t‘¥eLLÌlÏàˆÙ!á~K-fšÇDú›;ûDø„Gûx›¯‘Fš;yû˜nöл}HphT¤O¸¹cˆ·O¸”¢¨Ù+¤v!ö«ÂWGDF9D{Æî^çåèíä³á#?ç€M›]‚‚gÎ2ce=×fÞü…¦QÔ;Ôê]ê#j 5ÚD½Gm¦\¨-Ôtj+eGm§ì©Y”+µ’šM­¢,©ÕÔÊŠúšK­¥l¨yÔ|Ê‘r¢ÆP&Tõ:5žš@M¤Xê êMÊŒJ hÊ’ I¤”¢1¢Ñ£.#úÄ3Ä%#—LùÐh¡Q›d.=’Ž¡/1nÌ‘QΣú_ÛøZëhÑh©ñÆ1Æø›˜š¤š ±6cg;ÎiœlÜ?__ûú±ñã5ì'ôM\:QÊn&úpÐ!°R#ÞÔ¯gåEÊœH¥"}/ö|jš°;$lŠ‘ÒÔjh8uÊãwu´gF¸–|Îuvñ1dfв%§±Uv"(Aa¼ Â9)]­¾E¾Òסzø¢µ ®ªXÄà¯ð>‰‰Ð:a’F„¨~äÕ/6"9 ¡!²YzhgNLŸ…)1ŒêG ž”d$¥¯æ¥ºò¸†vK‚µä!uê^òô¾:ÙºD8Ê#'úçkg.^,ÙæÄáÄÿúÝíªFÆDï@€¸¦A]:âÐ×ćõËX©†¾ž)óåh_…Ìž‹‘ ÆÄ>¼ÿÝm»¯ðèbþiŵËpƒùÚæ.~“ëñg,RÓ-êÜ#/ù¡mž‹ÃÖ…XÌ¿¿aÝ•¹-<Ò¡ ôw= –.rZaÁ› ²*ÁZ#j@bÁ²ˆµø3Øxæd<Oüa’ ×ž}Æs8»±¾àV&í=ª:]КŽ6>RÖ ‡ +®Þ»i¬_ðǰ!;vÅú)lk´No©õ>"êÄzsý¶²ei*¥,s]ìvfM«=˜áuØš¼<°²ÁsZø½‹FBN’L•žÊ'㹘Y5˜UxS:ŠºÐGG®ÿü­5ž®áÕ‰ (¦25¼‰~6Áñ’l¡I·‘k•X?å³Q’<'b%^ ž$†¢úý]aÐ<¾ •EIæ%Íàæ …d<3 zš¶—â)L•$ E vJ5’a.ê~㢗ôθáÞùéÒ/·Äè”À>ëxt3O ª,.E¾7 BiuR™FS\ßÚà1_j›Æ©X‚ßú­Ô > PŸ½ì×ÚNYØFªš@ªê!?ÃUm® W ƒõÿ~(IúrVxº¡{Ó6Ê¢6©ÐO  —»@8‹›‹ ^–ûºMÝ–<™”k"¼!Óó+D-GQÜQ1º-|0DYJlTr*T”³‡ 8ÆÏasø·ûóÍ!R%ŸN*VÔÆTì+Ž‚Æ#|Ç\‡í?Dqò ÈPe(³ä & Òãx<‰Žƒô‚ìŒ m9— êÒ²ö½PÌÏ'ûnõ6'çó~M¡9EÁ9v%pžiÒ{ˆD9³ƒÔ\FJ.dSÙ¤yÇ‘æ}K‡jD?ö£IUb´X˜Æ¢É:<­’¨fù͘£`bîá&‹¿ˆ¤šíÃÕ+ËÒ â““ÒRÖ-2]ò£"+-rÍ '»¢ÑY¸rÛ¿Öÿ1T*µ¡hžeªVf¥‘¶U,±íwwqOò0øP;ñ¡ÃDúÔÐ3¬à™òR(²Ü¼‚âRmKgMÓsÓò(rÇ4HIÙj¸¨NÝMd¿…\t~ø¢-§Žhf†ÐRƒ:ˆ‚ Š"!úµ,æÓ†Á§UtV^COVnµïaŸËÀ úÅ3Ä¢ ³¾ÇâÍ;Ã=xµ  .,«i;¢ë¦ñçD¼ùC™g„ä´\À¿5¾~¿²ÀÀ#ú½#…+CÚ({o?ž€í±–Fáݦ.ºÏ5ê$Rå\¢çÁ`ý²MÿÝ€F1öÐT I:Qå ±`î³õWŽgTÂËžÜC(P¦a€*ó#‰ “ž”˦âlS,Fµi%ÄÇ3ÌêZACz2Lé !C,:_ÒyéÅAÈbp„©ûdPÊSâƒC}Ü€ Š­Z³Zkb‹ãâ£eRŸƒ¾§Îtv_ª#S²FV…twz«D­Èí®ý a}awDy|Mue‰îʪ‹ð¨Ùïlî; d„L‘q~~*(’UŠDµÒ%اE§ÐL´è^gOûé}ÞռɯìKüø¡ü 1Š×ÏdS+U¤D[þ¦Çt(ìœ9äø§†"È©WŽ?Ž×óÂá ¥ý㵬¤Ì”0Ë'!&§Éõ&¦ƒ7$¯¤¼ZýÉ :øê7;°7(€Ð@¹ÎitØR*UJ,–~búÇn"EW\£S†ñRÐÂèhG«9&󞞈'<µ@#ŽôT–ð«i4ù7ÙþN¯ü‚%)¢"üwK·†©´åzQGU ¯iêhê‹ÐêV°·(ž°Ç å¸á¦ª¬jÄ(ZoÅ&«2¢ÈÓfI%‡¡êS™ÁC´ô¿£¢ã…j:/”ù‰Â[ƒL 2T¹@ ÉÊP3Â5ZÇŸuÇÒ!°†»ã)ì”òƒô0å¡•È~(Ф\ Ð>¶J •/\žà1X2w ‡Mÿ6‰Ñè£ˆÒæ¤g¥¥mTòa >ŒôÆsZZÁWÒ•l²zPÑ¿@žœ@*TGWëWrŒßc±~+ú–E^x&²Æv$wY`ì‰ÝÑ l…ìÑô>š‹vqø~ÈNŦߡ|¤DüÝ'ÏÑÛóp:.Æ“,§¿Ì*]5¨Ÿàö—[èôc1’"’à–HШ_n½x6ý~›Ç멆?xüÒpç¥5¼l %ªdQípþ{"Aóyx–à†¨‡=µÈåô×Z¤ÖŠ.\Cö×u{<¨ yxåêÍú”ö=Íü¡ŽãMÔ‚ü*eòt$1 ‰eyÙU þ[½÷ìKà‚«ý‹IÀ³úpÍRçVß‚d>q_œ”¨ïÆÖð¼ô]ûwùÁVfõg4~~êFmê¹ Mܶºí0œ â*eÉ• …òœò‚湌 /ª+ ³¼ž¯Ô5hyÓ"ã`w|(+ –ES;îûlžúP{_U’ŸsÍGËvZ<½£µÑ3tzÑ®ÇßkÅÂ"ô˜}^}óÜdža£»x ‡OþL«‡0ÕÁÝ6BC‚ƒIõ!|ˆ·®†ÅvÄ£t_Wä`¾,¾¯Íü$¤ÉT|úièØ²ã)§T¹i‡µ©=òæà¦¤Â°ú̬ͥ"–p©ª¡H›•ŸÑ`n£‰€gØì\‡ßàMP ñ7¦Mx&B"2¾v []\[ÓTQWÅa;‘¡¾œŸF†ºö÷èx‚¾úàÀËUGž}ˆF’±è ܪ^ÔÛ‡®÷‰‘·0ÝVìÖ—™OÏ\ú-¬Âó=r8’¢å/£r£ O!‡ý©\ ÓŽ‹Eî$£‹YOÝQî~ЋoõnMþ,®5åtBIÚñÈ&ØÄ,ß²r¡›cáaWnãIùuU‹Ê0ɯ"ŸÛPäËÉPårYyÚƒy¥m^—¾&n6òöS4âBäÑÐÞ÷¨[¡wac ZB¡On‹õ“õ‹ØÁg’8aT%)AÖùmÈš¸]ä)5ŠŒDˆdut$Xp~RI³úG²‰‚Ÿ y?ÚJð‚Ž†Zu~YVžZ•@nïW‚­ QWN°ykÈ Ñßë ~Ïbó™¶³6¼Ûì9aâ+¥%yͤÄmÿd„&4žŠ˜wÐÄßB“~àúÂÍ¡h¦t!2%%öû»P…s¬7ê&xùŸÜ^û;ÝCá¯þ°TšèÏüqU5dV½çŸ¶Õ…à¹a¯wÂM—ªõÿ¯›ëÿeËE5ØE‹–“î¶×ˆÑV9{1ú·46*,´2ª±´07;‡ËÌÌ€ `Ô¾.lƒû.^®P)AΤg§gç|hÎÝB{E…¨XŒjÐF¶»ÄïÒ ="äß_F¢|c4»ÖUÒ­jŽ‚=LPd8ÁÇtIˆã•Ÿ;íP´/Ó ‰Ñý[QçÊ#Ûïfô9 wÓoû ì¾k_å a¥ÔwaÈz™#` ¦çÚµ­<´ìZÄIÈ{NêúÚn¨¿‡>†ì¬_°{`mE,%‡¢Iwà‹²såW>n2äľÈÊyÅÎD4ÖÀ‡°,É)X놣èy¶²R˜ÂáÞA?#)*›Cû*evÃJ?ü_¡?ŪG/tÓha ;8ˇ«Dôä¬AüBèE=ÚKv¸‰Â§ìá„V1LdtýnI–2;lòd~SÄE8ÀNMl^j&920)¶—Ç=DýÒŠÈÂ[TÀ5t¯é1Ä×¼ørï Ws}À9Ä-ÊÏ;Ü\¼öhÜçÙÊ)´¼¾à@ClYx\X²÷ü«†Ðbôü)Ñ™Ñ<ÇÙ=<$l¨ƒë…)šoïtÖˆ:ï ù1±Û,ÊAc;zÛÚ’‚+¹DØU[W[^ª;éó± ‰»¦˜Å¡¸;ÞC¢ÇOÑÈlö7ïY. ‘ñh,¾Ê®‡à3ÉÚä:Y7|ÊÜj{þð´Î7 ”+ó…íàÛÀ-Ö'|‡_¼×PG×ëÇ’§CÇ:Åècô¶§þócðWæþ‚ó–ï/±›PÐÀîÏP}ê:Ýmû‡`ÇL~áð7$~|çç¿Ù]r‚Ó²ûó½ê ›é¿Úyåúå­öNî®÷p«·°hÌâºøcAàd¶léÖæÛ]¼ûåÙKýdLò´h*¡Ü 9ˆ±~,[VLü/›©ˆ/OHKM"ÔÆ3³Ó²ÓsÒÍ ùM'p:Tn˜÷#çY:_+þ…²ñ±1àÅØÜu|rå¼îÄÇ\mÔÅÍ÷à\<«¾ÇDI”Ë}]ÁÜ:=»÷8wòAëíÁû†í1PE^d\‘/!rH“§ð1¾¡ná»ý6ùÈÓãµSÑ»q]÷ÏáS BŒ­Ó*—wv毩]Í©S3 V© 9TÉœ½ÌF÷%_…#ÌíöÖ¶ÓY61km­¢#¸ÝËØŽ9ŸX\^é¸Ñ)UJöì‡겺êò™'Ïæå3&ÑZÁ¾…äi%سֽÖ?š{mäñ(M¾±q™ñŠú_ñ¢E endstream endobj 340 0 obj <>stream xœVyTSWÞ#\J&’lÞSKP»X»X§U¡VŒ€âÒª#K€”%1 ûBXnBÈF@–¸à‚ ÚCPÆŠX±­*vÑv´õ´ÓÓc;µjïó\:gn˜Ø3gþ˜ÿ’wïý–ßïû}ßÇ!ü|‡ó'±4'E­\-Ë[(ÉP¯IÉ–º¾G°!v–ûŒo?š÷èE’ ÐúµÏšôèµ§ÓÙ;3Æ 89Ç90,)qCø¼yó£dòB…4#Sż´xñb&¥™8a¢%JiF.óþ‘'É–És$¹ªç™µ £Ê”0éÒl µ&~ÓJq,+Nbb%¹Er6¯Æ‘¥2qÒTI®RΤËLöø&U–›&UIe¹Êç™H%“Ì(å’T)~$)H•È]ó¹D‘#U*ñoFªd2ɹ*I£’1ÒÜÔlušË=þž.ËU1r… Ÿçàl*^¦T)SR¹ŠÁã£cÆcTe&«\~•R|ÌÈÒñÍ4YªÚ•Íã3U²4Wɨ$*—Ÿ “&Uʳ“ ±_lJ®ºCP+¥¹ïó…$#Y‘–-QºíºPñäÇxe,—gºßÊÜ·û—ª”’ìôçÇ™e0µ2&Žq‘›¬`\oWKž8ô°õÿñGDH®L­ˆQªÔùÉ)…©i’ôŒLéÚìœ/ÌŽ ˆ5D<‘@„k‰?ëˆ$b=±‘XNDïÑÄ "†ˆ%Þ&VՄ˜˜FÌ |ˆb.,°_sÞãœ÷YâsÊ×à7Õ¯Øï¤œ¼M%P_ú¯ô?Æ}‘ë|*ê)Ô¬)’ò:w§±wÞqÊAlý±`Þ´²¯ð—Qùåšâ ³®•ÑrËä‡6S»m‡½ÚXDo¥NCÉ;zãFWÛù£ ½Ú‘¿£Äšò@%¨­Ón@@ õØ‚ª£yâ©?5ë-z° /o8þqjÁª(§ØÉrœèÛÇõù²!l=‹f¡™ˆžûy$äÀP8 ò!ýpé(ò¡5)üï?‰_„(ä;,Œ;÷ $¡ïC8…Æ–Ø _pÂ/ÝÉ ôó~€¥8¹ùž€NSÈg¬Lò 1 ggmÅ!ÒÔ 4Zy2ç „ äÁ©PH󿬸ˆˆ¥kå1o‹xaÂÿ›së–ÌžލWל¹ùàþO¤Ý°²j'‡púBÒÉ÷FANA>€OC¿.8Ç~F`ì0tr—ß@’{c/Sóï±jÎ¥Nƒž’½™{²šS@2¨¨+­+-^.PÍFœðy€;Ic¶3ˆ7¿ÃY".UXVYZî²sÝÍá<ªÀõÁ¢ÛAÃ-öªÆÅRƒÛIó îÝݲ ´Uv(MZC½ p[š›í½¤…Îo+2oÀz9ò{uÂ_±ó–ãæJ ;ù0”ªÜZ_NV™µÖ«µ½A´ë˜_ƒÐª5U–i4…5"ÍV…RÇ¡„„—¨¼p×}‹Ö2~¿ ÒäØzorBÇÔOpSæ.Ÿ&mcDŽ¡¨Oá`ý{¥Ž ˜ØkOóâ Ï>~}m½Ôqݦ-Öv£¨¡‰äNï(¼§ß»zkOéþüVzûÎ̦5æ·,ä[ó¬EÐÊ=~¥÷‹î£šò‘MëP‚šÚlAcUc 4›ÍØÞ2"Ð7êA—7Ë¢5kÊ*+òjD¼Ãs“w$„ ΢øHu³²½ŒÞS´O{­j¨ºS»»´½¼%qÞÜ^ó:òGƒüßüô HM´À(fq[X{fòv†¢Pyiªt² éUë˶“Ín|°ÊŠiäƒoN4Y1ºµÞ"Oy]ð÷Tb«[‘NÖ×™‰õ8g7°üÌ£;V.Š@ŒÂÃ>[ñàò¨ãÈ0}رӋԢ±juÚm•(~óòíËwÑê¾pœ>ÜG÷¾pð èÇËwÙ59@W›!hÔ4Öš± ­Xß °œŒ.A¾8¡¥‚ZÑ“@ßÑô?šâÆ9߃ó&T!½ºéð2L"§‹Í »ùÓç—º¯~Jó ’øñ:)¦×Q(Þãߎæ@ÜÙ â¾?|úÿöRÚ]î„NÎ}'Ëïõe‡á{üÆÎ†= …ûó›W…áܧ!ò½¹r϶wuµÚl8kµY£«©ÓiDïe½¥Ž܈ØO¾3‹ÞF[ü£ÿ¼}ö'Àýþ|âu@‡ko²ÕÃçpç½ñ… ^‚H š?¶}8Ø}wgíîÚÕp#·7µ˜u&Î2­4§…`éú’åebÁËžJ»ãážðÊxqh]–WP©0®_°ø-?ûÒæ®(Ìp0zÍ@3ÃGbîŽw]:GË¿4våºXŒ1׫æü©¿g뱎ê8huryaß°aäiOó)ÞF%çu&éMD„…!Ÿ%ë†n>ø×Ï¿Mdï&–ÃÖá6yÂ[?­ôи~¶x%! “Sõ¯Xš›/Ÿ?Ô6„} ï+­%–¼¯èê5ãûÊ·±É§ž§ƒ°Á`Ó[q«ÀûÊñf•x•h’Œ_ïsØ®©ë'œâƽâ28‘ù¿½&Ø" Ncoòã)õ\rx\;J;Õœ®¶¥šûƒyMì)¶…ŸåükGRî¨v·•5+€š»ø¥ègÓ¶4·ç‰Êl²€ÉxB ³èŒÕ  TVÖªŸ ¾¦¾OF^Ìä˜6ŠLHޱ͇¶_ ùŒîëïý »s €CE=ª6E»Üº¬YlSX1NöŠÝxO¹vóÂw=½eEm"«f×ûX‘ÉV¤ Ø­©¡mׯƒWVä´'¦Þ‡:0gI˜/´Ð] å.!§Æû0yï¨g]mnÁPGþqG}¼bí˜\4Ý-JêêñxN=ytOOÈþÝÛ³°Šê«é·ÑyÝ{ÀŽ“gì9„]»Yã>]×¼–ÖaØc°èÍÀ,<™yäÝäô¼MïŠÊä»·á¥LZ°m³k3‚M8ÏAØÄÜ&Çžó‹/°¿?šÊ7Ù FÐȵâÁ®ÑÖ”jDcòßãª5u: jðæb3[l.àJv+{Žß`7Xñƒ¶R{anq‘¤Z´ÝÀlÖ‚!fo:G£(ÍçK³eï«Ú‹÷ÒvªçàþC{ [ån¯\ö>šÞWÕPj€°¬¼¼LkÒšëé†z8#yò«,¯«UB<÷lf“Ñf=€~g‘Ÿ©¢¡Ö„öf{SC¥ÎH'@?8·¯ÝdÁ]/&–ªZm}N„ænÃ+œÞNºi¯rÓžï`_qà•Æá œSŽ8 â?û#Ë endstream endobj 341 0 obj <>stream xœµYXT×¶>ãÈœcCer¨9ƒ%±wјhì½`¯Ò‘ÞFšÀP†)kfè½ Cq@@ QѨ±ÅD»ÑØnbbb4ûͽïíÀä~/÷&ï~ïé÷Í'ãÙgïµÖÿÿë_Õ½%DóV¬™8Áü¯÷ø~P7þ¡Öý*oK²‚ÞBèÝ}Ï w=løqý‘¾/ÚÐ AáIó‚C¢ÃvøøF8Œðé0qúôic&M˜0ÝaN WØ· ‡n¾^n䇇µÁ;¼"¢FÌðˆù`üøÈÈÈqnáã‚Ã|>9Æ!rG„¯Ã¯p¯°^ž ƒƒ"Vºz9X7Îò9/80Dáæ°"ØÓ+,ˆ¢¨Es‚æÏ ™º laø¢ˆÅÒ%;#ݢܗG{¬ˆñ\éåä½ÊÇwÍŽµ~ëü×nì=¦ÏØqã'Lœ4yŠã©ÓÞŸþÁ‡ÃGÌÙËš¢†PNÔPj5ŒZM½K­¡Þ£ÖRéuÔj=5’Ú@¢6R›¨¹Ôfj5–ÚBͧÆQ[©Ôxj!5ZDM¤SK¨ÉÔRj µŒr¤–SS©ÔJê}*êCQÖT_ªÕŸ²¡ÄÔ[K½MER¶”eO  Rƒ(†ÚAõ ¨ž‚ž‚^ÔbRª;¥  þÑ-VØG(òݻ߷Zeõ_"ƒè)­¡¿gf3{„÷´éùe¯m½ô^Ñ»©SŸë©Ö'úŽé›Ð÷oý6ôŸÓÿŒÜæ¾8_Œß fû³:öÂÛÙ¶klÛíæÛ=´Cö¬ýJûóØê£ÊMÔúŽÓ;MÜGÜ—’_I³Ã,‡ÂÁ¶ƒC‡LêÈ+­Û’À„6›ø%zAmÛ!?¤m9›š¯ÊŒ…XPÊSã°Gû·vÑ›t9+e‹ÄºmÉÊEÚg²A’{èôó¹/lÅ< ã»±HM×i3[8ÔOô¼~ê†e[¦a¡äIû¼ôÒ¸Æ<¿Íµw ¨ÝÐÊ|$í´ø•JöÀ!ûÇþöpúu,Ì“¬À·XÜ_ä¬Ê¬“ J´Šþ¡yÜâù§“XóJ™‘Ÿ`TßC»ï yäÇ¢·†¿Æ}pÿQX€ûcöçѨêóã÷HÌáPìÌnײÃaá,4À>8Qq°êpKÙ~8¤•Û+·ÃjðX/u•º¸mƺÍ[jjk²9ù’÷¯3ÚŠŸDß²ØMÅÑJ4í{$ALdÆË@ž¨æ’ñP‡éXÌJ¼i:&ÿˆZÑÆ=g‘àÑüžžÓƲ˜"ЕIP"] ™2…’¹Ís¼6 öâgØ ;âÉx; °o0¡1Þ¾9Ìhóú*ºg+~Žfó½Ù‹4f®Å•L¹«D|§Ý·«¨{4­ÚJ¨‚cªúß`M§Ç6¯ÿ Ôëçï‹Ä£~ÀÝ%âç3ÁÍ5RÊèp!‹ÂéšcGjŽsõìdl…û,˜6ÇÃKß"‰+ èI:ÒÀÔ&0 ÷€¿Ö·Íb*è®vU°›Í@V¡5x šˆgIð[w`-Eä÷v@ã…è\’›`U¶#Ì,ŒròÙ²fõ{$í|Eg䣌‘z›=÷PÁú¾ßY/ú÷‘ò§¤´×+ñóêx÷óÄÌQømÜÿù{ˆ!yº M 5Œ°x0 þÑÁÒðø8ÿg`æ®|„hÔëò½k·›§l èžAÐ}Æ„êöРGh‹6êŒB4è&Ûç5Q3ʵ …áqsñl`°}'Põéç¹þS%FT&r”Œâ&¢Q%X U늰„1Š‚‘ÔªýL¬ù]}ñõ[ñ ô!úšEÝh,1WÛÂ;ñ¡ßè¾OÓ¢­†ýÐû•æì¤ç¨r$h¡É£¯2µ ÖrJud„2Áe» %ƼÚÚ€šíœøÆ\ðY·TÔ„ÙbB‡;Â\gDCBþVÛ ¶ýðz–u•VT¯»IˆÓO Á²¡=òë%Hý€þ.§+ài‰~£9G”ÑpoƵE˜#[óœÌÀO-µ©3†}Œ¢ÛŠ!O´5(îÆÂ§¾Žâ”ùê´D`â!%Z‚íèHÉM×hJK9­´%¥Ý©Ëœéßy®Ö¾r”pª×ª" <4ZË’ó&Ï@Ã0²ËˆÓ¦æC>¤e§å˜WǶ%f¿ò_è[rÔ”_oÞVJ¶•B¸h£:¶mP¢ÉÏrP¥ÆOÀÙv#P­"O­…tûª} '»©7©Â!‚ºvm„"UN|º<703ʧÚAúÔt–³“Ænˆ1!Cåã‰Olšol}Ц]ºJÚoàqôà+6ͣʭ˜²³w$'ÃÖÒ«Ãä2?Å¡t9ÓÐ û|=÷m.Ú Ìô…ÎKõ1•Õ%úʼԺmIUý‘ÜZ`Žœòœ$ñ¦ÅŽoR.P.œ½#l#¸2<;Ï‘M.Âáý¥-L zŸN™·Ãe‹{ýÑOšï¡é©¨Y¤M‚<^#DûQ»{ïÞ#•¦†¦Âs‚CUêP’® ÚøŽ—©²â‰SŒMŒO•¯˜i7óǤ’¬ {(,ÌÖ[V¨—¨ba'8kB:Òu4ê§0k7÷Úºz•j'ØЕZ“¦j YUÑÑñ¤º”|(CMÝÙ/¿n—%Ë%eLJÚbö¡»5'µÒ ÷©w[L%½¢µ5Œ…FC È»¹ËVì"¶¢‹.wú uÚŸi&« ª…‰(lÞ|m`—yù š Ûc£‰y(b‘; ¥ É-Úwò“¬ 8 ¡^•îº5àÞ*§ —^~ëÁ|*‰ŸÐA A©Q=Ïu¨Î×æÖƒrÙ0‘ìÝ8bàæ“ vtT~7½ ¾åêL"åòJOâþ…Èð%"³p3”Ü祄x÷…üdB€ÊóÇ4Eð†wÑକvÔǤ.Š!Ö7Q­JMx«í°9ª4‚çÊF(å: ó{Þ}Lb-ðE£Úv©ñq~òxéºà…Ë KLiY(b*£Š""¥ñ.Í>GÏ7:UA ³ŠhuÝÓF£ÙÓl|g4æ(ˆEÓî6Ï>¯ö©çÜ•ò@ˆgBK"«+õÅ»¿˜µï#Ü<¦p?Nü ¿õÃÄ µ¨wNN"(‰VÈU\и¥ ÞÀˆù “ G‰õ¯#:eÌ¡š¯¸#Dò¶‘l’AIÇà™oºº’ça–Aàˆ¶êàH—“-U¾AC#ùß»¥Ç§¼Úç‚.+-©ÛúØiÚ¯ˆº¤ºQ÷½}ð94þ^ªùŠ®¦€gŠBÔ)Ñ8¸ýŒÉù· ‚f#:Gª=€—ÍÎ5K“Ÿ Ѿ*’aG+£(ã§ÒFÔ´w‘×¶÷I’ Ríã2I9Ð=Q1r"¾+ ÷ÜéŠTOQWo°·€ºÓ1îâû}Â.¡ÑðߺÃþçßCÐA Û+×›ß1d$f±øûÈŒì ph±–AeݱMÀ¢’Ånu‘n7¸2|oh“ò±AÚ35‡ÊL{ëN@=4ï2¹äÆsF3–vÚÑHªùéÕB´«m›”§ÖD‘> ¨‚^]¨.WjÔÅ´—þI%ŠéôT:MÎin— QgS™¥þ]-/ B}Õ[T~à[´¾ ~ Î!’öYtæËÐ\ƒ ™”’.†Y@×¥³hä}ã`^æàžœ´“Eµ"ƒÊ~Xÿœ°? ÷—Ì x5ŠXcëCHXš“¬MMRÉ“Uœï°‰›ÁcwDcàÇpHÔ%Òʶi•â“\_ Û¼ÐSmǣɰ´/ÂcñìN Ì8<-DKÑh4¹pøkü ;ø <ôÞ÷¢¡óq6.ÁïL/±F§-b‹¦ÜÏ2P÷‹O Ñ<~‹ú›?>¨+„”B.AaLDQdUM¡¾¢Ñ»n©s˜žp ßø3·|‰Lt‡áß[‰Î›Ç›G¨å¥E¢K,š)B½uçÅ÷#¾ÁïHðëß ­âW”¨˜EåãÎ#š ƒ·8!òdóìŠÝËÑšÓ÷Ë”ÛT·F^Gs¯×·ºž¶ÿ"Cah6;^”Wij ’¬¼òêýÀ<„á!jÿ]a’䄈`$Æ“…4(/Öï nR–óìÒ¥±aå’†= é%„Ué SË©2H`bòŠrJ3Ë‹j=#]åînœ[›N ̸… ?r5xwJâwEû/#n£ ßËéã¿<˜y?¬CÖ¨çÏÇnÖÇÛTÍm¨^ +‰^n‡ÚNš ר÷;~xoãAäSÑÔ×Ïß‹a)x4y5ù|"ß ÌÍâ»Õ/ƒ¤µD>ß7: ¶@ò±¸gñ·í¢/l©[WJ|énË\ˆú¼¶¹þzÁE[ñ3´€_Ébs€ŸeˉºÒT«9¡­ rTß•¦%Šô}ñiü^¶6¬,8@b5UËjIGj•šÚ&TÛœ¬ ½€¾¸°$ä*ú‰·cñ[¦…ž'à´ýågo¢ ø}— N#ynç …¶Y&•µ:!…ó]XãÞ4‰L*Âi“¿|îÍI®âXÂåFü¬*ewJµwYhQ(fþæyÓ‚f¥ÙÀ­>¡¼ nPç$ƒ²kÌs¶Œy™mn&®î¸iÇŸG¤ô¸ý=ê&_…KîNÓ“”œ&¾è>Ü’§­¯–^4ÓÛœ—1æ¼ÜÈ6{Ú%ÉqYjä‡r…iú¨b*£õÁÁÑ‘¡OŸº~îÂÒWÛÆu¯ ¯  ª¯©©¨¨!3‘7Éúô24§QÐ`DYP–QØ6®m:ÛŽDQXJºTr,¬C£¡„À2GU¦D0; nç jÒý‡Éß—ÐdÁ„= ö˜»#ÁXAIZ.t)ú`GËxÜa.Qh³àõEáë7D©#ÚU»a¿z¿ê7¢¼¤/|rcpóZˆ¶ŠQD‘çª5ŸjˈG¬Q×t<ç Rð:ŽÅh‘Z›šA|WÚ•39Yç5kËÌÞ3HÁà+´q£T#ƒxˆŒKHNÁƒ±µñÏLJ"ˆ±í0lm&³a‹eñQŽqÆ=h Ç÷ÿÓy°#“W úñ3$*ætzȆý ºJ×Á!s?óQoUí_تõù]?³¡M@”DxQˆ´-eoW‹é7É:®5‚‘´ÑÆß©ŠuÛµ¾>µLGþ/oPÿ¯Ô+îáœ\—77¯wÞܼé(Á¯yÒ²¶Ád¸û5\øë`þ.[rê@Î>³· T¨É Ë´¡iû\­÷#3¥\™¬’ãQíîvx ¯NSeñn÷i¨4§Z¹ÈR¥íZ÷Ž5§  ò| ì°¤}väejqºùüuHKÍóFÎímvº$]b>€63-MçÓíÐí_Úw|ËtÞb› úQƒù¦ -jæîQtÆÎŒw—àò_J^Hc›¤X5ùöâ{j• ââžÈJôÃýçv7$Fè9w•<b¿ÊøÒòò¢ÝŸ®kž3÷Ú„ý“-øã-Ð š  ¯/Û‰Z—Ù<@=¤³qrÕ°›<|£CBC‹CŠò2²r8­ÖJ£QÇ- ^éê,‘ËÉ©LJº"=ïÖ-Ds]#…^f‰×‡Dûœ“hÿìü?h¹•øŽÔ…Ö¿À( 3 Ö•üÕ(‰Å~$5Ͼ:|-» ’ª¹$El"„BtÖ®b9QÒÈé´ •Q rbOã’ÕæÐáµàÁk!ZwœýŸÊHì‹®ì×µzÁIÞVÈ/msfÓÉðZ&7)[§HLTrøoÿ˜›O”]e/ËNÊ-HËÉÑ™J mvÁ¾{(ëžßŽ®²p;õ¶ïµmßM/r'˜ê>ÎaêLøf§Mlšuàƒ«‘Gà|UvðÛÚKé7áƒ}ðUÖV£¿“§ð)\€‹Y'JQ¯ëÙFbž/F—ŽÈY ³`9žE²e»Æ¬ t1_*+IMõrMˆZÚÞb+@Á­X6ü ÌzòªÖJ¦½@˜þáæëVHð:ì'3Ï8áöâW<-ªFsÉ€“˜âš¸+%y Ñpóù¥ÕWÈð7¬õüñœÑ¦uŸúúð鬗¶bL¡è{·êôe’¡»“OŽ~o–Ó,?CTIo¨9ê »8Ó‘‹ù À4}"˜ Zê* ܺC¦NV‡«R Y¢†DFÜ.“eB1wPt·qÑHNÛˆ³€¸Œÿì†à¤ñÛ§B>„Íf›oˬakPå+J™0‘v'îJW”}>?/3ã&ä“zzˆd±3°@ê7ôÃx—Ðåða8”ãáÝ'Y'ÒÊ <×Áôù)TLb>qUŒ8jþÍÙ4~»m·b3g?k¾rõÂÆyk<·:ùr†]ì—GZá"ótÒ© Ã?˜3.ZëÒìÌå&4†‰ƒ}¹:Èq툃Zü Y}{ï—Ù!¯f.ª,6gÙ~f¸‹úάŽj „•ösfoœî8ïܽӵ¾néHÃÓûåü0sú—>EžÍ°¢+¬?ã‡n[³^»'„;˜USl /”Æ&y.>áþ5bÉÈ5ù“ì#¦¿˜´nK´ËvÎÝ% f3¸ÿ7#QwNüËYhj.?Íà~±±° ÎG7ÂQ0ëeKYcÕѽùõÄ|Öí(vÉóO[Û˜÷wŒšÌY´wÊ;oý?õßü7li†h¶y¥Íƒ×QÍ?þñjñ³¨v!KLåÌesR’ä—·S£º¶¾ ÃéZÐh¸LM®6+Ó<â¼ã²ðÈý?$‹™~ÜëÁ¨5RoƒÆ¤¨÷5ó‡™F~-[Så—(—sj•ÙA0*(H«Íüòü9IžŒ:&35-Uöþ,ÜÓ©Âå@}IU¥™ÿÉ2kÞ®³SþpZˆîãÖÜ&cŠqdãV hî^4õEýó;_¢ÐÉ'.ÂâUÜ&Ü- ‰'œ™‹û|‚­Îྖ擑¦Ë$¯ï”¡KO¾0Øœ|Zöz©ñù=Ò PÒ²€lž_©¯¬Ò—5@3sÚ㉩‹–î(+7_†rƒ8Îtüta3a–y®ŠŽŽ–,™'+¢‰ò¼|È.áÄßÿÈtÅ…bI`ÍHÇÂMê³Y9¡¾ŽŸ%#W(ä¤û—FK¾q Oìx–7žûa›øŽŠÉÓ9¿@âO¹c¨[Â}BÞÛf)Ý@& ä}ñÙC!¿Îüë,ÚD#zôqË¡?¼öiðݳv•«—"• j\›ÌÌlÄÔ_5JÈûOoŠp­ù¦ÀŠ~~·ù³#ÕQ áÔtŒ*Ò<@É5aUId”J‚Ótç¬a1¹Oë:M_§Ï=&ãþ_]OåE2lUØ‹ïSÕèN^ã±+š‹¨wÓof,îA\ï_NƒÏ_ð”K:-勇û>­¨O ®â>stream xœcd`ab`dddsö Ž4±T~H3þaú!ËÜÝý}ÿìÝ<ÌÝ<, ¿/úž ø=–ÿ{” #c^qS»s~AeQfzF‰‚F²¦‚¡¥¥¹Ž‚‘¥‚cnjQfrbž‚obIFjnb “£œŸœ™ZR© a“QRR`¥¯_^^®—˜[¬—_”n§©£PžY’¡”ZœZT–š¢à–ŸW¢à—˜›ªv›˜tÎÏ-(-I-RðÍOI-Ê+(ÊÌMe```4``ìb`bdd±ùÑÁ÷ýî–? ç3îþÞÏü}ÛÑÉsz&wOâX•¿8'µ>§ºMî·Ä×®Îöºî.ÉúU“'õôΚ$ÇW¼ø§ý¶ßòÓÙ÷píáÞ3Ÿ‡ˆyi€ endstream endobj 343 0 obj <>stream xœXTT×Ö¾ãÀÜ+"¶\•ï€X°‹òDMŒQEEQìXf(Ò¤¢ô>³Þ;"ei– –`ŒÆh,‰1FÿDŸïE£yúȾxxoýg€”õ’üë­aÁpÏœsöÞßþ¾ïŒ„1ÄH$ÖÖaÙ6«¹ú?'‹ã$â;ƒÄñR ©o²{b ÁX ÆMïŒ1‰¯F fnÎH%ÿñ¶þûý<<ƒÍ,]§šY-\h3Ãlîœ9 Í–úºz¹*ýÌ”Ážî¾Ê`úÆÇÌÉßÕË=8ÌÌò=Ïààý‹fÏ ¥ô šåèñþÔf¡^Ážf݃ÜCÜÝÌìüý‚ÍÖ)}ÝÍúO7«ÿ—­¿ïþÁîfþnî~ ÃÌõ[æo»yÀŠ@» •Á«؇*º¬ sups_¿×ÑÃs£—Ó&oß™³fϱš;Ïú/óm–0ÌzÆ‚qd&2˜IÌFf2ãÄLa61–Ìff*³…™Ælc–1Û[f&³ƒYÎÌbV0vÌf%cŬbì™yÌjÆšù ³–q`Ö1&Ì0f83‚ÉŒbÞbxf43†˘1óhrÆŸ¹#™-i4aPè ‡ÒÒ é3ƒCKCoÃDzE²pÖœ-âæs¥ÜƒÁ.ƒ/í2º>dþJc‰ñŽ¡æCÓL¬L‡Mæ?|èð¥Ã ïÁX7¢ué7Ê`Ô¦Q?¼åóÖ}~»˜lÒc:ÑH+A)Jp7J¤â1ìâ¿w9KÙ:x~à%¨qŒ,Ž3T°W2ÀMNnÚ)Ø Í-8FÇm¨P}hl¡³C/™ûWO–-HõMaMzšA‡j±B'ÁI8 ÿß‘6õ,ãݽÏÍâ6~ýøÙ÷ n¡YrœX}ìœæžÚÜ'ÖÙL>å±íÙWe‹·¯p³%ƒåd*ù†ÇÑ™ÅÁE„Ù½Ökaå&bWBƒø¶VR‡Æ˜‹ÆR±ýy7û±"6Öd4ót&Z¡Í·/p¤@4dOF~p>,i—7·ëà4ì/ò/õ€­àÌ-Â^0ééŒÒáÖR\]†.:É4SZ¥=1=Ö|¤>°u:³ªr)˜’82‹L"{‰ N%SQ…vÈ¢ %¤„ÇÄ@´ZKf~«¬†yÅNŸx6z_à‡‚Û§/^½û2û ܪ¬%Ë5±Y \h*å´Td‹'iÅ1 ’×´Zé4:+àLÄ'¿ÆÑH«”®G]‘¸…ß+Û²À³cG½=Í¡`ñ2X¼œc;2Ïž““݈* ¬à•ï9FînÍú.‡“¿8Ýu¯}Ñ.zøŠ·VžÑŸ,.¤ÕÚ¢Ÿ. !S÷.&Ë€#s°µKö,Ûe‰¼k•²b”ÓG,Ä92œ ÚÕ„çZe~cØûOöSsE¡ÌDÜÓß3¯_¿BNŠnx€×fà<,DDÇ‚0ÎE{¨ªJ[ÔÒ±õ˜ó{^vÊÚERYðŸ]t—†R_Ce_0Ö´E¶Ò#×Ð×À‘çÑ#õ,æ{÷ï.«Ñ  NB'<†³}"¦Xs}–¹gYËâöL6a ZÈpT-Ë'Ci&âú­hV+iü &‡ŠKøÈOPAl¸”Ÿ˜ì_¸7Ý8_2 Èè 8ü@]¢¼:Q›ͱ͠äÞŸ!ÛÖ>÷JÕ)‡€ ä`9aÙƒ_¡ÂRáhI»çy(Ó 8"MÏhC‹å.ǽÒ7g¯ÉYŸg¸k¡ ¥é+5BJd¦ÜeZ!7yÃÑærÖ‰#û;k.Ž¥­…‡ø{:YÊ ¼aØÃ: Yæ“X×ÀÐHŸ%lË|‡ÛníA뢛íÞEèÇþßÝzý«‚ÎùqïKA©ÀåBv!¥{J)¬—”JþAûnh«=ÄI”#h³*¡¸ÏZÜÊ]Y2—ÌÛC¤s ½ñåÙÖ¶Rù^Pü(tÈÊ2¡¼,"äkS *8"¹ÈÏ´ óÞá¢=õWdê~8"P’¤€yC3üGMsò²2¿Së¤RøüûsTR–¯¢/•Üzª%5lý9b_Ø<0çsçTû¦DEÄÇ/S{Y£:Ê>­p¬¯(ìÁ#)’‘)‰†(%ã • Y¥æ:å¨ZJ8ý³V êm-nî ˆ9zrëYÍÿVe~le‹JŠJ K;¶\ˆn¦ª$t?¤’?~æ2ÞqçAoùgþÄ™sÅ­ôÙp £ìwÃÆ ½rç1Þ°öž‰(çLzl~Ú,\sÇÛ¦i]œ•Sl‡j.l½@d¿mñ#V¯2;µâ5¤\_µ8qŸžŸ–yU2/UÅØ~ŠŸýL9 ‘ÉÉ êd9LŽ·°Öð‚f+ÁŸ&Úú¦]eÑ¡wRbT„_b”iÈno»Q®I©Í…FNTæëâµ³MyùÁù;m¥´ŠÉ”9dn%IEOÌçFCÌaµ:*Qˆ?¸ÕlªBæ€3Ú»Rp ŽÉèR%ªÕj•Zžœœòø¡ª²Æ¼Ó›¾™Ø­ ^„%ï|?§ Ur”[Î äiÊiñµ~“ZÅ“xñD,Ye8/š•ë28 V$…©BÕaÀ+dš{}ZúÕ€–³úŒ¥ú¥©S œ/¤°XÕûÓ‘èô˜"0-‚ôì#9XÛ3hlŠ>ŲjÍk8NÇk¨îçñy·Žx±! ±!Üoaò³ÈãK½{ ˜Ýì’=5v4ú “ç3bñb>š^8]¢m’oeÑîWºY"é}Â+×m‹¤òD†Žú”zµòFyÝÅ®ô h¶0íÚ¬Ù èTƒï÷{¿Ø§RqðéPUw×i¹²Õ)oƒ^óçO"#‰Ù«98§·w„CÂaurd‚<`µ}ˆ31Iã.Êk 4-)Me %õ'Êu”S³ˆqÊvØ£¨Æžá }2µÍ¥=ø7=‰€“I "ãÉâA<ÐŒ˜ã~:ÌÐ=ÒK®ó«amû%çÛ‰§æãÔ‡-ŸµÝ¼UÕEÀeEÍî“r(wZF/ØnèµI±˜z%|ÖGDºáëÇz»á«—™Ž y%{ýi¡6G£V¥ á1±‡ „s­;ZÞPÐÖâѺ|‘ºN˜´Tq‡¼ù»‘EW/hÄÎ~‡‡§i8Ô:|Äãû2|÷o^!3ãY(ïÑßW²ß ¾->çq6,\i6d¶œÈ±“Ú.²«ç>½[‘Ç%u0¨;ýGãjþLÀE(ÐSÂ…/ovø5DeËk +ÓŠ4ɉÉIÉ…äfT¸xT°q Ú[pž{9á!qz )È뾂üó/p’u‡Èš¡>ª< Ö À*:\:¼Îy>P—÷Ü'ùEq©‘Õñ‘jyâvŸXñ×ãžr£Â:ãïFK©”'ƒ±.„6© 7©­É»r¼Fñ"vüˆõh”bP”oÙWçæâãåî^çÕÒ¤­kÈrbO»¼ë7>÷TÓP¯ÏAœ®W‘(]Û,¹òo?‘b†¸–·,O¾ù\‡¶ëùóow’1eBj¨K":²zÇŸ¬Ž‰;˶7M£Üf±ÄŠHV5ìÌŸÛz,áuð˹ªò¼ÈØÆ)BÞ#óˆ¼'Ç êbH ýÙµ:ö»Ö””¬l!''+¯ªê£]"õ7¨9ŸvwÿÝá ‘TQTP|wN‚÷ôäÖ³ÿ×Y(‰1l•e¡$óNîëÞïÈt…ì¾æeÃá ¸ßor¦‹ßÝgé„L›,2¨Ïƒ÷K::ë…SŠPËãÈäfçdÝÐëz€*” Y8Ap¿*åV&Ç%%$Q]'«ÉdCQÁþgúÌVÃ_pö6[˜[W^ŒCÉœ±q”ÐÕ\L(D ¶Ró)ÚùÐÚ/ø‡!¢S"R“R£ó¹¾ÚŠÏ;ú ëû‚Þ¿Ùç}›}þ+bß,þÍ—{ú¤=hƒ9Y~`ñŸtË1…Z€!¸ü©$;¥x —óOIçlV'…ïCœ(Ń·úÐë¶ÏÇÅEëÓÔ‡^=u¥–½q*•\í¥blÏ&þH.¤†+ŽÈŽ<˜‘ ôÿÛ:1ŠŠ¿Ê4,?&¯$-§ ]ÿÁ(­øB+i£â¡ÿâ!oñÏH4‰?m:(ŒÆè !ÐvðÞ”ZXu¸0 nÂÕÌsù/ne”C=\ Ï·¡´·ˆÞ{Htx„¯ohèþ˜ ýí¹‹æ§i8mÍŒ-ºðŠº†²S­>e>iBó©Î´2àž¶}`»x‹­‹BN|IhL,E`˜é!q~˨æ&p䉇øVkƒäB½àäãCz} çÝ`N˜ûÔãÎr]VAÔr-~5.J??åì—›q.üê¯/Ï~OfW ßU|¾âîÚ~BäÄ`¡ã¢íM‡Öœ(9Us|g†ÐÚò¤÷ì|}“vQ¿à rWE©CÕIª„dˆ‡$îP:èM'USq5Íç—zz_VüsÝ4q©¬J¦‚ð(<ï]o¨À“DF$ú[Ö Ê¸ÇáÅ€ó™F ŠèÏ“Ï ôGù9ŽÀ™ÚÑ0—.ÊœBý%i–XÈ«¦ÚW —àzK]ɹvêý@n”Z‰1®Ã;¢èeÖ9ggQ¼&Y“ \Ä’“6JUÑ¥Ùš”ìL!7¿¡íÍ2Ì|Ï,Ȱ½kó/yÉ;óšËª÷úî Ûiý• ÁYÏãp4Yð-ïêç­÷ ‰ö<kœF=p”—á¿yêD®;_ÞÚÑtÊdCre {ÒaØÏyT×Õµ]výxA/&ù«€` Žýáõ5fÓî!¡k`¾«€r™_ç“2#´p²8Öy®ë¼;ÅÞµèëŽ2ÚFú”8éMªV|Ægeƒ¨ÚxÈâL=¥ LS娲9¥lʱ4â›E9YéßÐk‡ö2ê}Í#û8:.Ö vp«: ³*?/#CÈ+¤÷¶6À™ùhðÉ]Ú%Çh—ß.ã8¸IK­šÑ™Ö{ú›J–óðÝ¥«wÛËòÚ«á*‡£Érð £×8¬r©=XS_]~²(^«ÌZN^ÒP¹ü{ªëöMQ‘a‡äV³`¸sÞ¬&&2õªt¤LÞA–ðÍÞõ®®ÞÞ®®õÞÍÍõõÍ‚IT®è˜…{J³sedW«3BÉÁÈÀ¦Ôxðñ,cc”TM16a˜ÿ·3š endstream endobj 344 0 obj <>stream xœcd`ab`dddwöõõ441U~H3þaú!ËÜÝð#ã‡k7s7ËÊï…¾Ç ~âÿ.ÀÀÌȘ_Úâœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*@ܦ¡œós JKR‹|óSR‹ò˘Yêtðý¨hXøCw!ãwÆÓSÉ ô‡èÁÂÙ•EÅ…¥uZ§5È-(ŸQØÎ‘è÷»ò7gDɺý‡—]YuOnÒœ 3»çqìÈÞ©›ú[µ©qjwïÔžÞÙäV|ضhE7Çä9ÝÙE-•òñ¿9êb»8~3<®ÞùÝæÈ÷ûûåøJþpž6mÆ÷Ü…l¿§±¯âºÌ-ÇÅb>Ÿ‡sÉD¥yŒ8 endstream endobj 345 0 obj <>stream xœX xSU¶>éãäX¦M ÈÃ"ŽÞaF,¡”–KyõHÚ4I“ô™ô‘Ðn %9i›&mún¡)¡@¡åQEœ+:èêܹ2£¨ŒgïîwïÝ'iúï|÷k¿¯iökíýk­mDðx¼É1ò¬ÔíZ•rͳ¯¨éÜwsÙi<ö‰ öÉà\”òKð/¿ eE0!Li|"â³)¿D=Ê¢IìõÉþM*xž—w癄¸sæÍ›¿B¥.ÐÈwÊt’E/½ô’$µ@28"Y)ÕÊw*%³ð‡\©B¥Î’*u‘’x©T¢“I%;ä ©dźؤè˜U’gVÅ$HVI•RMŠB›“ª§IÖÈÓ¤J­tŽd‡J#Qøÿ‘¤©”ér\¥ÔFJ–k%)­Zš&Ç‹¤ùiR570_¢–j²äZ-þ,‘k%;5)J4]¢SIäÊ4EN:w<þ~‡J©“¨5*<ž…GðV±*­N›¦‘«u|bìÊ(¿:YŠŽ;W+ÇÃÕ<3]•–ÃÝfhL—"Wj%:i¾Ž;'U*I—kÕŠ”|.ÞJ­‘ûLÈÑÊ•;‡OŸ/ÑHw¦hÒR­o_•áûIFÜ:E­VøÖª|³†Î—ë´RÅŽH¿W%Ø­*É çØQß »èÿç4‚ f.W¾¢Z¡^ùª&J»J÷ZNtJ~êš´Âô麱;ãäñYOÄ bñK"{äÌDÙ¤°Ié“NL–OþŸG+§¬žrE›öØiáÓÂO§Þ`ïLdïæ2—y¼ }>'lZª#³¥Üd5˜L… èí†m©ÞÓ ((&@M…½²–¦ÝÀ \æÚbÚh7U¨Jfó‘‚Tû×MúÁµF‡ÅQÖ ¨÷H´`@ &<áß›Êh,<%‚ã7umæ 5 tdÓåP˜ÄÑ"ò&ÜÊìa2KšA(-Sî),jÙXøf9…ŒV¾˜ËL»¯b°ë«MŽÁ«„NuЮ1§ZájRðé¹3îžiWÚu›Ä(ŠŸžS‰Í=-þÛ(k©Îœºt\ÍýùÝi3šSk¶‚ @nHÞBùÐ…38™ò ‹™8lï½o¡Ôú`6«Æd·8÷4a³Î’0ìæÕïÞ“÷¬8"°§ºê½=ûâ‡(T„ ®+2댴¥ª¬Pµ$ƒ¦ átÁï˜6mË&Å 1 E»„pœÆï–%¸×ªwgkß)/X%ÂÖéXÏðºx †ÙD!z…ÎBáh*$Ÿ†Üù#œ …ˆü M—Ï~y-vù²¨õÏ=uù“?_»ô•oRİ ¹gŠ_n!Ͼ#\kÝ ³oœ†"QšˆžGóÑ|8Ã?ü郺ÎS¢®æúVÐDµéšÔÅ%»JKEj¥V!ͼPhÂÞgÄWù÷>þô‡®#&C›¨Cï(®Ôî×VXìf»Ùi­.PkwÔØèŠ*ÐBý´”Û­4%XXkÒÓÓ A‰µ¸€Ã¥0Ï@ Ãû˜}ø–¯üQx>픾Ÿãò_ÁIPøÔ$Y›¢OÙ$>(>x˜/˜¾Õúºbô£ÝÆšfüð²T`“ÅÇ&cE6 Ö“p›,<¼¦Ö¼ŽÜú ƒzumÒ’Å1}uÖíhµz¼t7ðó…ølí`‚?f„R]A¦bÚRãcívòKðNSïùž³ÍWÀuê .B!ð4K„dØóÇVfcÁ›"f@ d0ˆÿ8¦?(ë»¶ÍÔ>x£X¦R(23JÖ ž Ÿú~ˆ§¿Ç®da"Ü-ü«…Ú S¥‰6¸MnP€ÝZ)Ê4ØWNïn/¨S0˜Åc™ ¨)Ë ˜ŠÅI|¼ØXir\xñ ÏvÐNÁ¹ üqyfˆÍ‚¡Î$Üc3á|´”Ñ»hc­žÆÃÀ`1áÃÍ@EmD4ß'#³˜™ò)Ü2_è<„šF‚ü=VÎÅCûÒ~' Þ=ŒŒëGg?_Ê c³‡~í>Ûþ±‰J…I+†³IÁÂßkîœæŽ]µÅxp—PmMMíu–ê\·XÑšY-›€´ðwëF‚ÎàӘ›Àu¥ð"·qpG Ú|€·”Û¬SàÎলR ñN¿Á÷-6/ž7ù¯~Ÿ¤”IzÆ\¼_ÜÄåÊÙäP"ùÁLÌ> ßVç8M-à²;ª± aŽò{ žLƒÉ’o¥×¥Ú7q±¾$îwKûÓ Ä ~ÛÚ°Ûmi0×bJ—˜÷zBJM«Rd:¨wfcƒ°w‹Ì~veðý¤tè]æ:Pìûªèãù猗°©Âoú¿èÉ>¹­YœåN«Zæx¶î-ªÔ0Ò€¦êκÏu{Myí"_â¸g1¯÷СӮ‹à:èËqÈì Xì¦áÜewìµá8¸ÁÍ8w9,>—棹D›Ò°©*¼Vk7&&*–ƒ—©•|ðj˪Û{“þªü¸Î×þí åþ÷ð ‰ ”ÿ.„ÑL4ÂW¥þº†¢o‘ 3ˆ6Õ2ÈT‚A5‚lj±Œ?žùƒéí0Ê$_ø(’çoº›zEÇÜÕ5 ™jÏmR—ZÊL…¢­ºäÒD *[IÕVFƒÊ_©³¨ñðp©Î`8ZX…hº?ŽgFÚê¯ÉÜG ˜ü~°²Ò»¯¾tŒ¢ß¬ñÞÁ›æ2v-š2àŒZ²Ðôýö³XY_àÝC |ªa4ØÂš_±Ð—ç p: Å ÜÇð|ê$˜µùSÎøÈ¢À®&7nÐ'jª©W á4Ú¨ÝÁŠª½á.<ÄÖo?žÕ©í.> .€Ngß*ù[þHã—#C…[ dó„wÉ&P5Âl?Áý¤¸0^ïÒÂÝÁ¬qùpX ^ O5º½¾Íă»ÍL!__a¦tÿ -w¹Ü˲áSáC:g…­ò>ID·’·—_@“’–&‹òp¨ƒ\JÙÓN;+ö»E=ÕG+½€ºÚa‹uüT›b_&xDeoMÒª 2  –ó}¿³å¬Hpo/ nÇ&j{†»ñØ•ÃtÝm9.öQ’îá±ÁBE2¹Ï ±”,%e*NJª@¡­¸¾8&)<¦×]…í®‹µØp,z}“Œœ¬ö3>†xáh&zL^–W²"ü"7˜Ãª«ÙX£ª_÷“Åtxÿ"ޱÕ{ZFhR'íà :˜W'¯ |© Ö K˜_B„ˆ¯E†•ÊRý¸¨f0u˜<¿óxq?ø\lè9ÕsºùxüQ{yË©-§â–u`³~»œ‚s’„gAgI‡ªYS+@^$×hTjyñf@-޹pÓëô¶´ˆÛÛ½Õ½#´ \èc>¤1ë.a݉2̺K‚¸ûô ƒÅˆUÀ ¸ö—ÓÖ±µŸ+ P&¨ ½#ð(û˜—ŒÜRS®U”îIvÄáÓç͘žŠiH<ž&îM¾’{§é«Õ'<'šZq¡jÇ´ĴÛleçîÚoÕšSw¥áUÅžøâ˜óHk«¸½ã¨ó8Ž˜Zq<0í/¨Ì©°Ú­vsíHuÊU½€áÁ=ŒÖB:ôóg«ÔÆ€®U©i8‡œÈú"u‹?2_g‚ü2Ù0!på:‡¯Øî'ÄÄô£ &“Û»6»Ö—A|î–m[¶i×ƒÕ º9®gk϶‹¹Ÿ€~ðfÍ[G(¤øc=6£$Ú÷ û|”hÑ83ÀN D2HòU›¦µÈ º€×ÙÕÒÂ1ãìf\g`&ÆrV$„Õ¢ÐïÙ<òxC]§ü¦>˜‡ÑiU±O„"þƒ'a%Cr½š2C²Y0£ä¹ï^2ƺuëï¸>— ßäC º‹æ Y(d&€¼ypÁG?ÔyN‹š«ªœÀƒK_£ÚTR¶§D´@«Ù½,‰íºw¨}·„µo÷¹ŽétYæÚ@Ú#^ÿ ßý-ö!îŠEO¢¥è÷ÿ…‘p>À'á‹ß)>]óŽ8±ouÛkXU…|ÿY$⣠—"çÎù·Û0†|~ûâ—þ³)ïwž+øóÆ´#£lÞQÒÛæºtèì.k—¨ºÌQ~P­ M·Ú&Î¤×ØR𬇗Ç-ïØÂWïûÍÕe¿3ÿ—.îÖ 1é3šaàë>¡[ð3't7 ÿAÞ}îS½‡ë΀ /º"T4¾Üü‹5cœF‚á’„À0òZ·,.>E%Fa¤¿9ü*GqE²3…éÞd7.èñ™³Q ÿa6|üüÉÚ®ñþÆq"Ä»ßëÈ`BBÞ7Ã_\Ž#©H¼DxãÝØe+ÖľüòÚþ¯_éÿó o'2p‰''ð;²Ûð5 ê›KÝ{A.C¶Ò  ŠÉ”ßѳùÄõã‡Ï‚÷¨{‹®£©"¤ýÕ(ù5,ç>XïËH¨ K`ÿjOæö¤µ;;ÄÊÏïMJ¶üÛXu`å…-¯«9 n #šøà,ïŒãÔ0«'’‚»E¬GˆÂf@Ÿ'ýAöÅOpïOÁ¬“mâ¬i·Òf'—5ó€ÉlÔÈ·U½×NŽ|yVÜ¡ÄsJqgA§ñýÒJ\»JKœyXql_Ÿ±ÿDZ§XÑ"u>ïZæÜU‘çÈ©24a!|²ÏûÞ•³ê4ZdËÀæ{Àp7v\3<”"»™2‡û\=!/’,¾^pTßjPƒ‹ÈíVôœt«ñÁ«p´D"ŠÓ|)›mÅÖø25—6Å¥¿š©}ç0:NƬߴråúÞwEðøáûDC©Ý²WåÛe”TÉl(<^N¡C|°²=þâö“gõoc­{ÆuÒ{édÛEðÑ XKâ–«}Q¤&@e=(z›Á9D³¥ci6Šé¿N³Ï'ÌýþFÐ §cnG¿8æƒl h,8ƽ8ò¥9cžln‘ã:Lá >ï:X_Õ6­ÅQª£«ßŒ–ñ‡rê¥Ü¬®#.ãÙJ•¾IœÞÆ;HÅPÅÿ$þâ²ÔLƒ\!Êòf¸Ò±:È3ÉT>Püýϸ˜Å³±Â*¸¤¢±¢)»%D8sížµ\U‚–†¯$ñèÞº½í9ÍÊ¡ÑÒ2Ky67š=ê9ÉŸ‰¹Îª Põ¤ezhÆ8ÁáêÅ ·’¥hI¹XÀ†œ¯»ñ„¨. ý7P–_–ݬi8 lŽêʶ¦½µUpix–‹§æÙ[a_ä“öŸC;ïÓÉ|>[ˆmZÁM›˜ça£=pŠÇã!ï†Ý}ø¶}„»!ˆÿXjÖÊ endstream endobj 364 0 obj <>stream GPL Ghostscript 10.05.1 2026-02-10T21:31:12+01:00 2026-02-10T21:31:12+01:00 2026-02-10T21:31:12+01:00 LaTeX with hyperref endstream endobj 254 0 obj <>stream xœ­[YsI~ï_Ño‹wuÝÇÆ¶Áà`›kXd»±µÈ’W’9ö×ï—Y:Zê’h<ØÑWUvUæ—g•$¥l)Jemiqv¥Ò¸„Rj<:YÊ€g§Ð,qޏšR+«-µ'ºPzÏÅÒxÐyQZp•¥uÒ«ÒIƒ«.åMé%&Å»Þ+ƒ :_Kt¡ŒBñ\Ñ‚.ˆ2FÐð# ƒÂM%¸“Ò€4ÜD¢µ¥Ṫ<©à!{ÄÂ*Ä/a@¼ fW#[…#F¶àWEŒìÄ4Ò9"ÆÈ^1FöÀ@9¼${ºÁ¤àˆ®¨“À8üj„¸O"jY*‡¼)=cüá(Œš`ÒÀRK𭦦ù ÐÔ’4I5AåO¤ÉJѸñ„n„º@‡¥ ¢½"ü»Ñ{ÐÇ(Y7z~³-ºÑ[Ð[·®üÐûhDWy5è£ùžYˆ`ÝÈq+qã»Ò Ð{¯»²o£ì)aܦ}½’At„ÓzЛ`ºòo¡^d …ØØÞØžÞº®ôÚôBt^u4¤‰^Tˆ]å• ·B"Æt£ GÌîʉî¨]W~p†»HݙރÞ;š3Â7ÜÅ„®ì[Û“BZÝ•¨yRS7z zã¯:Ò+Ð{*Iº‘KÇhP.t£ÞâTWv4´…BÀÅŽÞˆz¬‡rĨŽÞ…ü܃„Ð~”ˆ½ˆÑ»z/J±^@d;â Êúì*ZY”¢¿$'"ÓT4l&ÈFN̦Á. ®Ó7ÒˆêEÛšÙBo¥ïE0YGz¡A/¢Üt¼-ô0Ù^D16-w}½3:ljr½}š›–»Þ™ž>tæÇ‚Õ Ú´Ü-ô°*äbsüÓï7uµ?gEuX~ Í‹Eõ¤:.ªƒñ䢞”ļñU}>+?¨Š_ÉŽƒrP;T¨îl„cXÐ=¬§³{ÓÛ³)èãQOõÔ^QÜžÍh²§ƒÑç;O­zÈž(0zÎb¥aà[´âð 7èìÔ¦5µóî×øSwÒÒý” mЯUVa³ŽÙJ,U«©M7zëHDÚéð—ìChC`áku/`!)£ëy¬š¬ƒ™U’ËÙÇ.Vm@(ÈŽ¢IM¢!Õþ%Ñ<á¡0y+`ò´Ä†&¯;¨º›þVW›ÍZiµ¸XFËͰ•J°]­ «ãžE" K”k¶¹Î¼%½{ПÖGãѬzóç¿^¼{õÛá³W¶¢ y>ÜÌÆ^¦Ò»§ã×£Áùø¢.iÎ-„,QÕÑ`2^õ'ˆÕÕÓþüÞúêíàbv5ýP`%Vv8 ÈG#L2]âÕÑþh:X>/tIÓÊ þß¿ùóíƒÿÓc)ZH×’ÀïÀ­$À« xÓDl—Ûÿa?*ÇùÏ<ÿ‡37¨´Vw…ìøõáÉÁûßNŽ^=“B´@‹²…YØŽjúhzšMò¦ ’aŒÇ]rNlnëáàÓ§zRÎkXÍv'©g7$|÷xÿÕñsÅáÉaÛ*œÝЊFa›FVFA[T”· ” ÍïV-Mõ©qçCR©—›4Ôà²Þ‚´ìžÓ§wÛc:´[xÐXÓnwxŸÚi޹áw©Å¡ªe i´ßÕ^<ûã!ùÞÁ»6Ê6¶P–QVj…2o(2Êž–ñÛ ÞŽX©·Dƒ F¦“h…CÕ+¿0^Fé˜àÁÌin!ÑY)Ó•v+!!±BÏÌ4ù©¤ýäh¼-è*¨N…È8ŽR ±éØÛ1â]òòõ£'oßþö|p}v;}6=½ÿª¾¼ÝÔŒikFm׌ÖMÍØ¥fh’ŽdOù£ÕRl£üÑh?~sëœæm0¿uÖŸœw-fZý«c¦ŽÕodzz2¸¼j…ÍGïŽÞ=zBµ€T-£ñ-£1;²Bl\ íÐ,³œ¶-¯Zý{'Oô©í¾±ík3,F¥zÑE]zAB8ÚÃ×sï´)¬R  Ñ3%f./Ù= kÒ{Ô“ÏÚ4#Q‘<‹ë‚â{ÁóþYRèp|¥v+“÷;:ÖÍÀþj3€~úç·³ºP¦:¯/ÃaÓŽ¿?=Úߌ%œ ›¦AŸIlÚÆŽ:q= Èµ€²ùß wÜù_¬¿™sA“í[RtsØ®.ŸwðŸŠíGGGû¯Ÿ³s¶r­iW4;Ê\)ó¹ÖþØ‹ uÇ’Õ6`¤Su|,ŸéSP\AWm—ƒèé˜ ¯È‰Q¤yAëwÕiÝ€Ä呤©OφS%¬KôÞóúƒB€c¹øm.÷$íÎ._ QÌ™àøÌòªy¯+µ³P¼'Ÿ˜$¨6Цvš‚?¨¤ÏÛæm45]éÀ˜ë~¹‡ËêÓ§êÓ ú4ÄÍ Ð&þ‹³!ÇþõLPDµìÖŸZ™áøíéïO`|'ï}Ëý˃†õÅíÖ×\&še9]h×á%Ð/E“ÝL×õ¦lÏ÷ßœ>NUl;íéMÙ\ç*V6Ö üá6-á ZÆí:Ö}ÌjÉ^æc,éS*O½œ’¸<õH|2y›óô‘0c^F¸TWFv ZK’•ÅcYO4dá|¥Åe$ª…ÓçòÄJÔ|µOT†¯‘jY°Á¹/õ f–zpÜ5â=?yyú’ŒîYfi¯LkiïvT±´rË.ãL0w^G?~ôòäE3CŒ‡í]ÕbTïÈŽ[B»³ÕÂôÏd³粟áç³åÝóåÔ• øñyÿºnmvŒ¿}å}ú.ˆ¦/øÕѰ9¥/w¸PTûÓóz4£Ž¢:ìß<©)X¦GŸúðrQÏúÃÁùþèrXêdV_¿Á²¯¨ž ¦SpÊZä Q‘fOêÙ½ŠÇB„þRWŸÆ·“j4ÕÕÇ´þRªéà[5»šÔu5û:®þWOÆ{ÌóÑ`XkΪËͼ2·7ÈR£æµ¨?u ©¥–R˜•ØÖ­‰MK±¥Ü"vð9±ßÍ1F51¨Õ¨ºA_T³uMGsÛYsE JÆ5ÔjÄR>t4åãÇ…|b‹tÎmHM4JûQë‚ØŽ‚dv­JÜËmªBOS~ü±…J¹SW”|V¢íW‡ÕQõ¼ú£zQ!1W§Õ›ª_UçÕE2àËꪺú~sãTCèu¼ÐìdnÓ³êKÆ’]G|ÚÛMKxíãX‰´(é8ìw+;Ž¡ ŽØfÈÒnêzÝ’­Ý@çaõ¨z\WO«gKŒ^7P‚£7ü}®kŒüÿ¦[34ÂÁmõµúVý/¦ï掭"Fõ>ò÷}Iá7Î…¬~(@®Pµ~-:· UCqõËQJÕ³þ·æSq·†ø†=Ì1?êO€ûïŒ|²Ð— üßVïª÷ÕŸÐCÿÐNû£‹ 9 O?Wý´sÖ?ÿ<ö§WÕÙ¤^S œî¸:†òÎÇÃñçëë>+²þïmXÕß·ýë ­^Nê>Ænj÷3ô;¬§Óu%÷Q™òL|—f{àÂ5y£TŸ[Åõ ±´²Äÿº•ÜŽ. ïùxRÃóÈd¾g&t4šÖÑʱd¤Å˜´ CiÆ&»›ÌšûÙm†¢v'«ZÆ@¦pÜ0‚… ôÓnGCýäó¦V7RòeÞAY-ü’àm»æ±Ý.s¯Ôs¯¤ðÊ+)msKßÉ-c¼»W6ñ*8!Àþµ}K_ÉÆ½›êÜ„)¼}_CшŽ(¶¶In†ŒÔÒª_DÚX++µbGµÛêúTv§•ê!«m«oçé¢q’mòªž–õƒ¹3Ùä?qÙTTþ âp¤Aˆ©§ôúÚFÀú¦Á]ÃÐŽØcdW÷ØÜ‚XÖxôåkc;ð qÍèñGõλŠvÞAX@u ½Ï°Œžl˜´H·ÙòÅî*_¶[f^”•eº†\9»\Ye‡æs¾„i˜Õz5“3“¯ùjº.uÚ¥Ž¡Œµ¥~NË’ÆR@uYêøÍÀ¸c©óe]¦Î«›í› )²)™Ò¯Sšv€rÁ¯å_}§üõ3‚Ý]§=m¥ç•y].“Âèöú Ùzp¹Ê”Pö®#¹Z^•Õé`6¬ïý[{‡ÃÿËÁS:Mè4¦Ó-Îè4¤SM§)®–$|šÑi@§.÷ß3šÉÈ¢áp|ËÖQV/(œÎJ.£ŠêŤþR¦õù|g§ÔóoûÐÖÎü¡`–‹êéàz0›–Š{Çç÷OfýÉl¯àï3­¾Ò¤{®§÷ŠEE6±A\¦š¿¸w µõäÿÜfÕ öøg7«½Ç¿ºY5˜=þõͪÁîñoV n„³jð{ücœUCØãåpÃp:àó£ËÞ}°ƒEf¦] #ÄL½so@•¾þ´Ñ”Êu@0¥M¦*+3”¾…Ýî Ef(0…HÒnO2}z»Þn¨=´ÛÁ‘tzGí4Àô™yµgè#Á½¢O¾¹z¬ é É”ÎthÊd:H¶…5;OU®‡f‰™YO3Ó$–c†åÄsŒ¹²!r=d$"ƒŒ$7P"õ$P"õ$ÇP"Ëu ž :ŠäQÂg{à%Jºl½%óo‘§ätJߌ,é7-™(b€d:ÅÉ tŠ’è$3Ð)Hf S½H=è4C§2 h–Te$Õ,©ÊHªYR‘T³¤:#©fIuFR͒ꌤ†¹Öy s­3ú6̵ÎHj×IMâ:#©a®MFRÃ\›Œ¤†õc2’ÖÉHjYR›yÇ&Óöl2mŸáÁ&Óöù !Ÿç‚ òÓBaä3º°¬ ›frYþh"—eæqÙÑH.ËéÂey#]¸ŒÎ-ëÂetîX>cA.é"dÌÎ%]„ü[PÈ0á’.Bž ‚(fôî’.bWtH¹ âXM>ËD– â!dy ryÒ±šB–RSȨֱšBFµŽÕ2ªõ\Àåò„çJNd´ä¹¤Ëeϵ].à{.òrßsµ— øœ¨¤n‹ÃiEfg™‰gœTd&œqD—¶ý†Im~9ÆÈŒÿ°ËŒû°ÿJמå¡Úh¹4T{r¶1™‰b¬F™ T¬E™ S> Õ–#¤¡Ú\…4T›«ÀCeì;òP#Ž<3F3E9DE2E07194B976DEAB52DF5A7292>] /Index [0 366 ] /W [1 3 2] /Filter /FlateDecode/Length 823 >> stream xœ5ÕiPQÇñó¿-·"[YSn´ÈR©"‘ö%Êž}_Bö%²ïÙ÷%²KvÃŒ1¼0ÆŒWÆŒïiäžïs¼ùÌ~ç>çüÏó<÷ØûaŒÄ(€1cpÆXBW£°€$ã1Ed†Ùu’(ŸSÆa8G`2ŽÄQ˜‚©8FÄnf‹i¢Å&ÉÅqô3Ç“¤£õì’1ó°”ÑLÌÂlÌÁ<Ìw®ûѬbÍY *a¦I&£õt¬çXˆE8 ‹q –ˆ¸,7×–ŠÊ4õ ´ÞLë?5gâ,×óËÙX&jašI¶ãœ‹óp>.À…¸ã\ŠËp9®À•¸ Wc9®Áµ¸+p=nÀ¸ 7ãÜŠÛpV:÷õÿÄØ‰»Dm“\Á*Ü{p/îÃýxâ!<ŒGð(ÃãX'ð$žÂÓxÏâ9<ð"^ÂËx¯‰¸í5_ÇQg‚ÍIbå7ð&Öâ-¼wð.ÞÃûøb>Âz|ŒOð)>Ã笛‹%˜…Öû_â+| bóoz´‰¸Ç˜ÄETÝNS;ÐÝÐíèé8 =Ñ ›asôÆØ[aklƒ>è‹m±¶ÇhíÐ;£?`ìŠÖ „ݰ;Z§n0ötîý›Ùo/Qï˜: C0Ã0{cöÁ¾Øûc$À"öãfæhQ?«M= cpÆX´Nà8ŒÇЉ˜„Ãq„È´UúëVV¡ï§]©-×Vñ¿ôN[Ÿª}S¢ýÞ¨ý±Lû§ZÛXªÍˆÖffj³rMÏ)"Ùq:Éù¤Íû`ò±"•¦'2ñˆ-r˜$S¤¸ÁÔÙ"“kôh ”Ö:µyïÑ:>+õ¶™ñ endstream endobj startxref 141016 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_hands-on7.0.ps.gz000066400000000000000000007255131514310134000262200ustar00rootroot00000000000000‹•‹iì[ësÛF’ÿŽ¿b6W¾Hu"A¶^W©²$Û»ÚHŠVÔÙʺ\· 0$‚EÅÿý~Ý3x””ìÝÕ}8&€žžž~OÏ`ðæO·ãÞ™NdoØoÞ\ÄÒNÃøT¸K/Jö÷Åp0ö-±w/Ä•·” Øâ"ŒÖ±7›§ w¶ë9¶/>®¥‡ÓôÉŽ%èÝ{©/Ożzy/ >Ø) ÷™ŸäDXÐ8Y§ÖˆñÖžÉäTXC}ÿSìJpu–82p;³Àõ‚Ùy¸:üwˆ¾G'„þ!t²… ÒOa‚ÄÅõùÚ.®ï0 ýŠo1É’ë0¸êÝÉY¦P¨ñb|a‘þMŒ?Ý][ƒï/UÇwõ~ç¡ïx­ÚÆ?q¯áŸ&¾WcèÖŽd<ö~#Á®dšÊ÷"\Psb¼ùðùòvüENHâS±÷ôôÔ•^åZöp±¯q¨‹¸W^ µ©D/¹=»ýx7¾üûÇì·…ÆûÖŽí…ÄxؼÝ2³Ø AÖ ³4ÊØœ‡ýl>8Z#Ë0ÇöT¦ëã‡IK‘ØðWNÉ ræ·qèŒez*R¹êGqHö0ÞüÉ0Aôƒç¤b=ºtƒN¢N¨«y“¶Á?ó<ŸxK(›sœË•3ÇÍC>6n6çæYîf®÷wyÛAâÃÐì%~"¦¶ŸHqc.èVX–8ŠEæ2gÈqÿ@†ùP[ägÉÉ ç~<ö{8²äD-ÿ:5Kô¬MÞ³„µñ¦’Æï›ŽFƒÝÉ$ô3òkˆ¹$Èç(3‘aÔF¨£¢'a+Aˆß`=ä5œžFbÙX¨AÁÚý1TíÓVD‹Þ–°]—‡¸¿ûj,ì4öVÂÉâލžò3q&b 3‘daO1è#"–ðÓœ0Úfƶï+Dƒ˜Õ}èö["51˜ê=É D2WfKc„?Ùö=\9³ý©”nn$©f y‹Y.œ“°0òd’›ÿ¢nÄ€Ÿ®íô«Å‰ Ç—oÆùéüüë€aƒo7fàæÆ¼ü¨®NóÕöRÛósj?V^z#pÏîi˜”Dîב#àÒõRÕ4Hã•# †Ž ƒ™9±aaDZ½6Ìs½¡æyæùîÅÜŽsúÃO2†n[!e3AÜݤ8q–›Ó0ÐàCl†–Zø¡íBð Åò|…2’©–,§[ ·Š[R’¸1´Ä@t§Ig ¬…ó•û.䲬9Quø˜GaD#ž$â­äñܼxÊ/Àºðe0Kçâ{ÎLrÓ¼Ñô¶h2¨m•[ÃcQoít%”u£û°l¶†GŒbÇ]5¬úðžjJaKSY‰n!eNškÿ 7äÜÄvi§œóÞdã?gÊÎÄÅP wÉß+‹ó#ÇàÊ+ìaW¸^¬ÄÅZ\Ì™SzxâÁ/Ö”êØÎ\ºré9’€EaP¹yÓ2úp׵賸ßò oã-0,ìäшe‚Ù\B¹é8à¡Sß(oA%P‰Qš‚ -µŒ»úžµ~Vjc¬ 8åŒZ S8+ý+T}n^æR=~Àã$Œò,‘1ç<ôæaø(ƒð)ÈâÔÌñ¥šŽn„ÊᬛE¸”ih~]y üYÌ×'ONYà|H,ôON(É™û¼ÉÍ»ÏE~刣9Œ¢ÿ¹Œ`B+Z”LË&Ó²âY$óð)‚…()"ÝÅin”Ýø¹Þ±°òàAõ¤þ`Ö ®X(¢1¹ÃÐL eøîP¥"hi¨SD¶Ðð.'¸²XôÑ¡xk(ó9Ë8ÁÎ/”çYìÃwGÇVÿè‡QsÊC¨&݇Íaº9;ͰîzW”{Ö©X Õà1F†D¹j–¿æ½“¢S…dmŠòqÃ8£n£À¡gmÔârcÞmÍ!7æù‡Á Õh­ a‹¹ånÍ9ös¾î>›Ëœ Ôú >oÎE5éBu‘›áéi.cIiÔàòãëÞ/‰|{½¿w#î÷÷®‚ñ—ØCµ&¬C¥Úþ·¼Œ°‚Š~ô~F«I;4_àÕ^JKæÐÙgR¹ò¨vÙ¤P€¡fò.‹´Ëc*Êó‡Øýgü;‹‚ ˆ ÑU F*Ì RZ•ƒÄ¬HB›NJª¿¢ET+JF¾“’æîªi1•RŠDuQµ:Ĩn…W!¨4A ÀQ|Ìf)•®`†¦¾€Vž 0õügUbµsE‡.옊¼j#¶Ü¨¡PË‘Z-ó´«…X1 (¦ ®¯LÚ÷Wúºæk¯ôu-¾Õ{SF0ÈSu±…˜y`dX4êWƒ®êÐ ·4)gñ ”‰¡mÊÄî ”I!ÏñÝÒ9¬Ñk-àn)[4°<ø]ÂS×ç°ƒ|ËÜQ·ÔµCÌWhÑE6ëÛ3»YTµG1†¥£as&²ÚfI¡ó£ª²Ôš—1…õK|JËEmÔZ÷M¨Ö¥\;FzFˆ®µW½xvæw4x¦‡¸Úr«ÁiD®¤Sçc¹ƒ¿e›=†§‹Èí;ÝàI7Øî°_¥aF@úã6QWz9˜^x60ˆåzÐ5)N*ŠÛÝ&ÁJ5 ÔòIH›ë¨‹GšÔT±£µ¯f¨Â-Æë³Zù•åm‡/°1ÜÍêÎiZÿ†Ï Û=ôèL1Z;9TާòOIŒØp Ÿï?Ñ«¿íòŽØ­!ºP:•´¥‘A·ÖžÙbÛú vjâõl _ÍF§1žw™gÝæ™˜*MT¯vŽoýññGÿãž¿Û)»&×úeÇr»ÈÝòìŠ/ãµ!Û‰\ì ”3›ñ¢ éõ„z/ì,=ute«SGÁËHÚ©ñ{±Ë⯿WDÞΠÛåhÖΑ^t/ë÷Ž5úãcž«°µZîíŽø×:ûË~^ÛfÐëºþ,DõQßdhº×5ƒ$¯•jS¿£Jiôií"M~¨ #½ÂTëÏÖBsK²|«–ªœ_W/ÿN~!^(®z­ˆ¬óäÌ¥ó¸³Ð7n´JÕgkªºòâäU ÚÐMc!Бæð²Æb2A[¬ßõÚ½U™V [»ß ¿hì}“R˜l‡2ë=ùDgKkf»g>Ég^ÁÎíªS‹È‹jU–ª­X;pwmÜ–‰éEÌF$wcwÕ.ÌÆÿæüÀþáÉa°k¿¹`ÿäÎs}ÉÔe‹jKã94±¶o»T·8m‡®ïÐr4mJˆãK;Ö1VÐÐñØ<¥Ÿ×ö¹\©ãåÁ…—y+ª(â· M/l¿¶h¥ìÍS‡&gï] àŽlÅY¼ÈÙêð]>ÂùÂé3Ç™ú/—:Žû2pÔ )>R@øcs:êk‰òä9Bdéñ¡œa€Yu0ö¬Ao„Îèþþ}”HJ½Ï :–cgé<ŒIˆÄw㾸³çéoâ¶/®mçG{} Î|;•Ói,ñtÞ ãà@üØç2Ž×L¦ñûÒcg¾ðÜ” ]Éù¾SˆÅ¹!|j°Kg<…fcx„ËÁ¡n"f{!¹Iɯ[äÂöü¢(¢3ìÉû÷i6£3Eiu6 VqÄŒNÚOø8U½ö¬}f¡Á]m;&Í.Â$e«#l^ÜÀ™(LÔY¼ß±3zSB|ht<ŽÐkLi'TKÖ”ÔnÀQ"{tðQ’‘-¡}dzG :UÇ'÷’u’ÊEÒWÇQrã€L[°²1‰ƒ¸N¤:ôF£Ð у€@ÍD¯'âl‚y z¢c_ÒñàPûèÃscÙàkÏ:–„Ót¾Žæ2`½öûâ×,LeR46$›ÅìªdŽp üE·SóÒïÌá(’m"áŨjÕ 9N®ýeÁn,*­kØî#×!ø>ïÖ²";©Œ'tR8& xÈúp¨•ÂTôyÂØfˆ?{z쨃ú˜‘„°FÄ€CYö ‚Hz’-&¬ú6²àf´/~þןµ—ŠsuT‡bR÷k¤¨´Æî¿k7yc([)ÓßÂÇNìEiá0‘Œçô‡Cß_B<>ÍÏ?Ñßr²Þ<@:bæñYôwÍÚ)3”@òbÈÁÊöUºI”ÕL7L}™$¿s:¥ýñ ‰ßî åÂŽ°–†æÓ'úÄ…xrÂEkNø®JÈ$ÎÆ——¬WíÄ}ž–öÞí ó#%†'mi<ÌP CIÍ(¤^‡ûâÚK’–ý9[i¥Êï:Œ£Pn¤–kÚæ_IBÿà„4ÙZ½×ø½ô¬;™pnùkfûÅbühÔÜXY‡ªLáÛP_zØF=*PÉJ5²ÖÑqõ¸@±çĶutÒF=)P)D¥S£|J= ¶…Ç·Z‘Àj¨’$ ë~Kc^0Ï„y.Ì <}@’æ'aþæ¥0ÿ*Ìñp%ÌkaÞ ¸¸ï;ê{+Ì¿ óN˜c<Ü ó?„ùY˜_ðð ÌŸá#ä>´JIOÓÒHûn(µæxžãÅNËðG‰C‹Oê†bÕ+mC™ˆL¶‚€PäÃhÂàf$=ÊF™Ä‘ˆ@î 5át2a.…ùdÐkhs (¦dÉk¬uSúÀ´ &~LÄyj«rTÍùKMÄbÓ^Pév ,}‹Då¦kÏfd!u¹+dêÓFü•^¦q¬£l–y>¢yþéc‘üÊÄVO[ÌîI#elß j’Å£VÂ$C®Xà²åÂUéC+õ+ÕûܤÍd9¡,2d™ýÌÿbîj›Ü¶‘ôwü Þ‡½MjcI€¼ÚÚ5A‰«Çǧ\®[eFãQ­f4+iœ™ãÍ¿§ñBRÙ»—dkÏUÖ@hôšðèÇó\’ð<¶<=§WVyðIò±µßñ•‡'gÐß=¹WØ^âu·[žÅ‘ú&GIÇxòÍöüþˆx\/¯6ÉP×›÷$=JTGÏÝâ™Fr‘_-ÎRÔ3Äë9Ô¾\Ÿ‘n¼»õÞ¾îœnÉëÎnñ œ_Ýúà±€ÍÜ\¦Ø@S¤QhrËsðµðaê œ_Áoׇ¬â½&eo½¿ãúr±¾ˆ ÄâÝH¨~Í¢á³ìµsl½†‰jg‹f×E^Éb76vcçÝØQш.‘ðy$|>'|~`½w2ä—ù‹hi߯ÆßúÆdüóÖß&ª‰Ù«Ûõ~uC/´óoczûxx=uª×SÛ#Á÷—›-™ôrK ?­sÖÒØ×"’.æì,’ðSŸ‹ ¼ÅïIxËØÍ2v³œw³œ o W‘p5'\ÏKÞuË&6Þ$ámæ­7‰jbö|õaå'°‰¢»=ÜÆáoDw;µ¼û ºû‘³wþ5Úßy5vvõÄþ“ýNÌ^’¼™ úƒ¿|ÿJÜ^¯ž^-n~ïDþò~ ^ÃyéäÙï¿ ‚'þùËß#¹zu"¯Ê¿¤ 28I(ï&ùü.û3ÚxùË>Í(ÿj–b±ü;êÏSt>GÊ åR¡ä›@ò~LÙ|q²ƒ˜±£uä)¤ÀÆÅç`Bòõ¸â`µùHcªåúÃòÖÇsÏÄA¬ˆ>_\¬VJ(U>=[ܺÅv»ùÙÌpV‚e˜’ ÷ÏÕ¡ÛTŽV{,M‡¥#õÓëåϧ[L5#ó[ˆˆ¾.æ{È"V²”òԌNjì}Tp1ƒÝ`õ˜ÝB¦[Ê gwÈ §;䈳ʧ[Ÿ2N·´òMw'æH“êõKZ,‰ZžÛ^É?)åÞéXH=×Ü4&ýÕ¯çÊçRƒ‚ã)ù¸ÄDŸ¸½‰ãJ‹t6<¦ùãO½½ ÖnððqžîÒÕ¯œÌz¹¸!?ÛŽ½^Ýîbª³<ÔªþWiuŠLc££W=]¬÷£«#ûϨAœ>ç —óçÝP‚¶3ɇL›Í2noO\(6϶YÌy£µñ"…Éw(DÍ2¤úá¡ì ^½_lïcßm“.TJÆ‘À!¼^¥X±Û„«õj ÓÛbý¿‰Ô7,z´¸^ÀZ¶Ë}ju¾A.<åÞ‰“³ËQhTÇmáRì,*IF¶ ›<å†W´ "(Ý ›žÏ_ò”¡‡AÊ*]¨ 6eçcrÎ(9gSrÎÆä|ÌÍ£úR~Îæùy(÷OA4cv™šÍÒsÓsßeLÑc†Î¦ Í3tv”¡‡=ðtu;#;NÒ£¨ ›çèì GgéaŒÍrs–ró£õ–…GÉßÑy}IŠK)ú¿ØO&ý/fkLÈÿ)|ÙÿŸâr¿˜­˜‚ÿæ\Å<ü“iø~y7‡ñø·C„|{1\¬®Ï=Æ}§?¢LÑ€ Zgˆs÷¼§ õ2À寯Wx eˆ¸hpHÈMô&`Þ¼M[y¦úÄï@ò§“â»*• ê!!ÐF•š6ÂÆqv½òoè•ÔÙnÚÜ5q?~?„JÌÓtù—>X/"BKŸÆ‘q‚ÿ¡¹ oÓt†B]À´"ÆÒèa›!•($hFNç;G––qH’ö"Õ#PIâoù·!" gªhWCãmÚ±wÔéC®%L_7RQaåè¨Ø;:.–€" UŠ}µ^\ï ’!¡&T²Í.A->˜Ü×’4†2÷ù.ìÝãûêqà ÌS|·ôzYzúÖø•߰˶~Û0AöÇ¥I)o="q•Íy©„íQpRZò“©¿i,(&a1M¶ñn”ë0Ûq3AXMÝ${H!ŸvÁÝ R<}Ô ÃF#™<_ÄG¡ò٫мgùwC~¹óH¬/XþaGx¬¹ñHŸËÝ™‡$üÿ.<Ù‹¼ûúùK±ýyõj¹¼N¨žXæ. qtêðð¿맿‹’>×Ȫ׸ ŒH'…5tŸ pŽNž]ú¢aV°ÊÎ<~ä³'«?¤ji60šÞ›ÀªЕ›a É–Ÿ­W7C(‘¡ärsq“†ˆ6, ™ _à„/I "à¹á$Ñ$äLL Âi.=Íå!Mþl½¾rÛxîîéî>ÜÝnï0+‚¹ˆ·¨$„ º»Z¼¨\É2Égógß,Èr^Ïðù®ÎãAÞƒ"Š>>’QA ‰ Æ>¥ Ðç®ÎÙÕâ.–½‡0®¨lý%ŸÂ¿à .ãƒ(#€ÎcIÖ‘o·ýÝÍÆï~âÙÕþ‰";ŸÂ^±Å~q4-{3â‹‘bý9à0ÒpÅfµlVpÄP­ÒÚhÙ'ËØÉáTBÚúËÂpdp Hß%Mçá>cØç:Ûw)-üî½üýYvw~á×$ÚÈÙÐ)ð[òµìâ¿q}±ÃP.ÿŸÿòÿºÍ-ž ·™±=.Ö‹÷ÃË–8³^œýõ­ó7he¸¹Ûe7÷»ˆws³ƒ¾Ùl‡ëÍ}»áWòW~Á}E0r~mdO"*YÄÑe÷þ“Öÿ£¢á äw6^Áü9â›í –ˆ]úK¥ñœñÍ6®±óúÁë‡fah¿·æñðžß‰?nvr\’ŠÐsèóî°çƒ‡|ùVKR‹#Ó©Oà”à¦6¬ù¨Ì²ÿ“ÌØGd–ÊlÆmsZTìñpŸÕééS?ŸR*÷*#AFÜA?ïŸî5ÚgÉRC1* -€±S‘ ‘ ̱_¬1)zMH°Ùån‚xd<ÃjÐQ4œ ƈè#=Mù Vh0JÉeA*´LGû‰ëò@«4­¥´Øú,v‘_ƺKª»ÏhéuÓœÍmÊ7%†ˆ,úÆð‰.fZ:Ñr2ؘˆÌ¤CäD%ؾgQ të‡ ·D<»}$£<™æ@¨¯Ë킪ýeñtआšKÖëÓZCÚ„%'mmgÑ0Yß2œ½ÊŽ,á|""_ˆ´Bg6·ÉTFt ÿ +¦)<»X޼±É׫!.Ü&ß®‡íts6lÓŠjòkd}4Ô67s_ô#²ˆôü¶ÜScúÂcšün?ìöô"+ó­ýç,f/ò‹ÕzðÀ£³Úl¬ ß÷#[¢ïÏý6Ê7H8Þ°ü~‹õ&¿ È%c¶s!ùY»§õí‚eÒÓÈfÝŽƒ-¶gÙ¬Ëèû Pσ§‹l¦Æâ–Õñ´‚Ï; ò˜7æNsbÿ¬NË !ÿ=b ¥>Ö#c™HS²|~¸!¶ˆÅhW íÄÿ~ó²wÃÇÐ=¨ZŠï7žz8…ŒHžÐ¼œèNÀ'>xèé¸1é³//7»ýÎï;üœíÀ(žûÆ¥‚þoÓ†þC¾ß‡wÜ7CrãÏù·”Û½\ìñäúà±–OT¼lO¾¢Xþ-ñ%’›¯³/ý¬õ@ùçþœH ŸðÍétI»ËÙ(È»³e<Ó£º¢óp*ÚØµ]\ÄîÙ9Úøµñ !Á…?>´ðg;BŽEߜҢáùôgmèØÌ ÕthAý|ùºp¨f¿ÀSr8·Îû‡ŸzÀØtüf»òlÜÈÁÈÛÞ/¶ç´Óz:g4ÇqŸf¿¸¹YßûÖ›dxXíwËõÅS&ä웦ðcFϯ/6™H¿Ç… ëÒÂÏÈf>Ïé‡ ûb³§:Ÿý2-?ýí”ü¨ø7Qðo¢Þ_§ÜcÍKàWúóq× È :DûY2¢Ì&û:£8CÇâ7rš-®Vëû Ç>‹ýW?ß/ ”Ö?k>t<Ù¯vnu·<¹ÂãÉ´ø5mô§'ì—ñäq~T÷ýåêì¯×¤„Š'8ýcö¡.Ï|~*´zÿ;|Ïgò ÕäSþ·Á†'JdOd¡3­Ë¬âáÄPñÈíx¿Æ}K?º&è§×ÒÿéîÝQ7ã—€é˜íX@ÕÇß¾Æ{oïK£Ý7½RN…©KÕ6ucšF—† ݸNu]YV¦“//:UWš·ÚUÙ–­¬yk™rÆi×ÔumyÑ´Fq×µ®®¤5eg‹ÖYÓ覯l«¹ëm‰v­­ººãB©Njf\£Tem+D§{YȦ­¢ï¥2¦ÐÒØª–Òùú¦±¦Òu§u}YvxáeÕªà•²•]W‰J‚X¹Ž+Ñw ^[ç´lj¥(b^”²tJsÆ­¶ªh´‘µ˜®à¦„È¥áma[k¤j [c–Jê®ìšNC2•qNðª¶dÂHÓ€‚7²*ŒV¼ä`¾65×¢±Â®j«ª5ÚÔ ¦Spi„­„«m'Ù8V(%„TÊÚR¹¦©êR¨®¯ES÷eÛ¶¼ª¯ªªt²PÚš®±l”/ZÕTÌô¸æu Iº :m1Óž\Q·­ÓmWZ)«–k#:Ô—Žh Ð¶–†•J±mSöfãz^®¨x¡ûF;W:+ûVhêÚTÊp}c\¯tÛê²0̵©úFˆÚPrÓ5wFhaJS Î1’V•kEaš¢,tz'ˆ'U÷ƒl+ŽiÙ V5ì­Ä ª­Ô®ì¤Å$„­U\*gUo+~`š¼få¯ê` Ccˆ¤) HK;c´ã­, ­„²a¥ª)aÛ¡eë†õm }vΨ²s/¼±h¡ÍÊ8Iú­‹²…§4N(Y@7ð”Ö6pt`u[ªJn (zpÜ[^vªlºÂð’çZZÙˆŽÑT³eo4†èeådÅŠº.‹Õ¶P³ _ã„*J˜¤*êªekxUɲ×Z9^IèÎô¶.¦nœIcÂ8]SÛª”pgx'\VÓLe S°:n0?Õw5L^À“à1¼,{¦úf_…$Ãé[[…ìJ?O0gyÝK‡±¶d’\ÀCº¶èœÅAµjL ôV÷-‚(¸²°¨Vš²‚"z̘7¼rEWðF·²=¼F3áœêîÀ5Å8q©ê¢åB¨¨ê3šŒ¸°pIÎk©…(š®á¥¬…·'© …N¡õÊ‘¾V­+®KÞIø! ¿.e­ SÒBäuÝóÆ2N6å` ¶ÎIj8 xî+QêNÀjY¶† w]/z'-Pp‹(Ät£µ&}4£èª¢Q…@ Ð ‡ [¸^‡Æ¼åR„Ztjz }aºªaˆ ðrá* 3ªKkyÇ]9 pCsï‹ÂÂþQàxM[ëªo+DLx&gµ(ì ›^-Û¶‡UuºRºƒ·9˜cÓÊNªÒöuÃy/àéJ*DʶVƒmÙ¶4ÎZ„–ÞöpsSÉ®¶–i[ÙõÖ6"‡×"–CD˜‡¨« 1«’ÌêBº´m…ÀÊ1Š+!¼¥jJðºn`öʹ¦Ù£c×”ätº(j&Ú®«¡¾ºRPl Ÿz»ó#$ç¦$P„~,ä%1L@1W@žA¢¬úZ#’BeÑ#øTeMf BS[ÛA=‚”¬ X©±T™Š•ºW²-‹$ÊØ^#¢°@)à(gûN ÌÑ"(¤ƒ ´,µìX:DߪE(BP1RCEX|´ék×NÖÐÖŠNÃŽ*{)•D¤kkxþ3¬wˆYNªëfl`©P©‹J4ukF ¸îÝU•UˆÍ V¦¢7R€?¦Jɱô•dš%nÜJ ÄC,2U/;Q‡u×’;«^TP–DŒ!eC¡ K ?mCLª5y^åx-»RÃa³-ìá¾Xé¦_PÄW¬ „ÆÂGAÈ[@ÿ¡ÞXX@äAH@ȇ˷4M(ÌA$m£?\°BV•cÐ@Ï‹CUˆ-X±DH(o€]+ M%LB´­¢!BfWÕ¶qé”qX;À< N×aœ¦é±² £j¬ïˆŸ}w€t‚`Q"5r½ —FZƒF L^€G,úˆXÔ¦z]ºº®8¬-„ªj8 â…À[ØD ¶Ò9Ä¥±fÿ/{׳K’•i‚çþ+öÐ$öáîfŽF#™¹™!Z@1EÕ ÒLØêȈPD$*Õïë²dBUÝ@·T5$±÷û>»Ù²µî{ÙZ÷ºS˜/ ªZ„g<0 bW1~C;ÛÂY`[ï’çù\áìOXâ|Ê­Sx8éX`gò„mŽtâ>œ;d^n3O¯8'>ð‰µ…*›Ð0!V†£r×À ‘ÛcÀâÄ+ñb6G @°RÂäÄò¥„ ˆ•b[j°×äMU„³ÈN'È9ù´÷æ¼èuÚ1­XÚì…ä´ñåDXãÉÀœ5^7ÈK–—ß½:ÛÉáw¬Jpe·â|G Øà”º^âÎ|›ÏùÅ{b4@Ê ôù«v„é7® Ä÷D㎵=ðé³6žxàÁq“|+aµ%<évŠ;H,W l_õxï.˜åáºï̯ãý2εñ‚øÜ¿(ú}îR‰Ú 鬯cµ|äâ«qD÷l¥ˆë?+ÛŠk½xÏDT„7V~¢Uºp{—Ââ­®~ …ˆÄ"b !µcå„õ´p4Â#ìŸ@ÄÜþVy:¶æ<0ƒþÆC|í½·‘^ñ­öf›×&g"á<âÔ­…Žÿ Ç£íà™¨)´ûn¬3˜0€„cœ ^ò%VgP6Éš’ú8¯µø·‡¸¢µ‡@h•gIì»×xð…«gy’@íC`’` äéÀz1{Þ ÇË (9tX&?†G{ñ<ï‰.‚çžÍ$äD½äsK$N Ƴð«•Á²ONZl@ò„''–q¤rèK:9øþ%ψ ¡pŠAŒ¨• 4³lTž° Ç?ð©³Äò ×”!ZÜ7qßK”e鿀‰½¯‰Ü5?¢Ä !þÖxÜqMìD1¯`œ&ÒÀ¡yè]3¬48ˆéÆz’aöÉã£j ¯zB™l¨`ü˜ËËy=àœaüå¹[®×;ÕA˜‚$­û&Ð,Ñ} óýøìE,~ùæPê ÉwÇàsöeŸ~ó&DY8Hîã‰hÄéš[DHã ¯ë Öã*XšàXò\øöÐE¸»€Î¸9„%²ø úù‚uA¸Ž+¬Ç7íg9Ù0}&x^g,„.¸KÉ ˜ÎŒ,YƱòÿðeXºì [|añ|à¸Þˆ¡_pAŽ&ŸÈGCzà†(ãy\oÞ­Vˆ‘ï¹@ýlG@ ˆÜ(„×ÐæË¹ñqÏW9Jð„›_€÷äσb€„ï€áˆÂ#t®š×ðƒÀjv¢:J"vYÁ xñnŸÉq®˜jõ¨_9ŽüÆ_€h@é| ¾Xfm$¦BW½û;#^"Û,FYÐ JöJy X87œËùÄÖæŽV@WÝFx¶Ê§.@v%´g5jžAø8>Ä]Ë3ùÃBxq6)ŒânN$N!Yß›Àñ‹c{Øì<çºjpæ“äËq͘9€1– ê@yÎ ‚ã7YDYbÃäÔ'á„9  cü0F‘Øt(j0"˜ß2à†,#N¨xò{ØPxÁÉr'¢&_ @Ð¥° @£ ©2ÜM€ €y g·4L9b»7„šg$àðŰÄ`>~” ~ÏJh%4œç…M…ý€òÆmb xß·&6LÐ4‹Žï='<8¨Ï62A‘ÅCðÆü8§òÀo(¿>C›'p:ôK8À«•©_êck#ÁÌFôDz[×{4ݰ!cARXåäÿrðØ…¹ Îà`>,Åþ±-- fÆ`ÞlLºM "8rËy'fšgÏàsI)0*ÈIKAëôcYT~ñ ðA­qpÀ”.Õã³Ø!–iRˆÙzƃ»Ï €þº†± ðÒ%ÃKLWþ%¿$ðÙ‡iqª8ôtXõb´7tÌv³XR6LPß:\nÞ`#Á`;| ´”@Æ•ûû”›]ª FŒ"‚€b@@ìæQ8{ÏŸ%Àüã`m,Iãl˜‹z¤ bÃ]›ó:ãeòð­o ë¨ü=þ˜3€Y]|D€«õJðâñ…¸†ì˜cYá×:`è Œ7Zñ €ËîÔÆxd7_dDʰNv…Õ­“…¸~Âö¨WÄÅþ˜gŸ#fÃ(¾­i<$ÜàÂö»»Á¨!&Ân`S5å+›xxÕf)X§ _ÝXÏa…t`Ø„m4_Bþ„àCÈÚ# ¹Î‰1¯CØJP:FàTÁk%ðíññÐ +ñèÆ×n?k€dÍâ8©ëÈ'Oy³æNp÷º £cšKÀŸ6±3pè,X8A/½xL¡Ã¨3&î©ÏÖ`%ç‹Ã'xpB='ÇNɉ.¬/‡4akifÁ§èOÜÆ‰M&P·š+ ÊN¼b·ñÚxÝNÜå`š„iã9¼lÁ€ƒá™ ?qÐIÔþ‰ ,í*7gZ}È}qtx 0àqcéxAˆl'X`ýõä9Äü˜‰‚øäW\ë°@(€~ bÇ Ò©7‘Œó3Ĺ„È(7¨Kf=%³|80.ÃIý03Bh4ÅO€mÛF¶ç‚eU®éäCG4o]‚q>ø¨ò¤É“ vg§~ ËKcj¬ô ËúBÖ ÷\p?/ô—}Y|C²–­Ävràa$qÂc_â1Ç`Á¼æ½6îâ@&“ÙóÄÐ ÞÓDå8%îCŠ¡+ £ qd«uQY,øßÛ ( Et[% &b & p:ÔûIFŒ ïì Nyáæy|¼gŠ ÝIK–þ‘Î ¥Àòø¤·kb­8T8ýHüÖÉɤ *æsžó,õ©Ð͉/üêëèÄ\}Îg'­á-ø8‚Ef$@…ȶ°–x„«}¯ý„/Pq¹PFK0šF‚¿vzð!]P_½Šè2ñÚ4ßE˜ë À;O>ŸƒàýzZYUØÀ•›šŸfI¯ka`kL1…˜ãÙÁg ó$Œ%]Àû'È€¸È’ôÁ^Ïÿ}òÓUô½Ì½ñèJ…aÀd<Þ¼ÑÏ\Ï3TìaÕk“rR0@ŒúöB®™^|9þæÂ>¥C€Y ^4õ#@“x9(+a§aëÊò°Y¯7¹â}a¨ ã§…ÿx7;¹ ðã<’üˆíJëø†À™ „þ”  0!œ©7J„¾ØØö£Á(š·®ðŒ‹bèà½Ñ÷‰‘šåÉ70yÀ8x[há(¤År¿@³f8G©büJ°.ðO 9<¬1 “Ñ´ bÀâõãZÂ<&{ð¬ô˜0Ýó ,æúñ̾K{AêÉÌsÄdˆ3Oy°lE𚨛ͼAï7‡êŒã›é\¼§¦y{xÂÂ/ÿžp½#¼øwÀç]à fîÁ|9²Þþ°ÅÛµ©’7V‹è¼^–%eA>€íMŸó½óJÄ _²Ê+¶ŠÓ:¨SÄø*qg¸Œ´p¾ÐHÏ-/ŒéØ9ÉsÉùá³µØLqw4-P=<”ÄÃ2iãïç˜Äb¢j%¸C6žÁQ“Ì %Óùü~xZ1Qÿ«)rÖyK§Ñ[)ÌŸ˜.Mõ:qàËÏ«™˜2# ¾~‰ûØúTpõ3¯~ºœT@oìâqšax—³¬Â<vŸ°zØ“I( 4´vˆæ9`%îŒWÆÉã#pÕKNüè4†l.sû` @Q,pöµÞÞ"MÓóG¯ŽÂ†¾#SðhÚk®tò6 ¯%ò@_Ρ™(ÈC'>äžâÁcìëCb*,¬içxO Êzâ ˆMì} ذÊ;9ƺôOñ¸Ø¼D0ácâ ~ö&<;Ï “ض†w&!›¿o–ãÄàhÁʯ uWÓ¯yß ÷–ã•3öû"îpˆ8·À3–@ÚûŒòdxã|øïõÿ ö™0þr 8S¬ ð€‡-²p¾p>˜ó-º] +¬AÖÆ“-!r"·™¼r Jh=\\qʃ£i* v $â_‰ Ó3„?ƒòê|ÛE(B_È ¿ÏÒ±•@uÂ&>áí•è’¦uœïËñ|r[ƒ˜î/°möÅ› Â1ñv¶4òÅ^øa(%¾éá«Áý¨/kQ®d¶ü5_…QbAxib6Du_/s¾q#¸Õ³e¿‡T °åÄ­¼pÁ«g Š-ÖMâåí‘©Ý e霃.|œ ž—ø{zwÌTCös¶z¥ w€^ŸÞÍã 6›¼µ|*¾*½b¯¢‡¢4øwœoÀ`ýáâ‰|ÀënKÌ}½°³/FɸN"¯]gï.¸Àö˦Íz@b8p¤ÉSyôÁ£¸s|¡ úÜãô¯³Ê;í~y½ðpnªùà~éЯ;™[Àv‹y,3"…³„“ئfv2J:ßåSñ­S1e@ì¼áÅÛ4/ÐpóüƒG½_¼H*x{o88ž‹yP_¶%  sT3¿Ã‘>þ0®ØdþD¥ËŒg8ÏŽ{ÄÛ<ئ¼–Uf›Î¬ ¾>&ºÌË=’*¯Ü‰¥Ëkñë2Ý`ÏD Aú“Á+†ÞŽ»í; `¯¹¯ˆ§É&dº_ïÚà»øÈ8$lN‚&AçšYxfT¿_&æA˜Ô¡šÛf+F½qî¼_ ÈC6‡7ê÷©»ÌOCò¬‡XÊY8‰û €Ž‹ê¤öžA\Éi&Á%C²B ˜íÀt²p.t Àê“J;¯ÂUt]üJƒŠ_!NáÎŒû}ýM3š]³þ¦Daí¾½}Ík¯ ÛØV5KÊæNÓÙ n l„Ë+Þ zºž¯ÇÑ'h2®­í~Ͷa™`¿Ìw`ÂxˆIÌê^½¾x$À4¯3ì||Â#:ï‹ Ùç;x£OŒÁŸp‚×åýòÛúùxY ‹ãçiÁˆËæ)c‡‚_ÑkJë¹³þ¼²‚wåHÒÞ+Ãy —çƒéô·¹¼Páüq¬é!›LOb¯YUÜl·´†x†K3gN†–ðxº*ïш¾Wyw@‘˜ÿxÃNp'4bÚã’åÑÈ#b=¿œn-ð>%6aÂK΢_&P ް§Äœ‰TP+ž5-5°eÅÙBaàÕ/TžàôȈw„æËm4<è ³?ï7sDÍŽûè¬#zë˺ûÁŽ˜wÎeò0d‘í]ôP ¢÷¦psV3î£Ͻ㋛€ ç­ÿ­^øŒ7AäD^^¼00¾…pá[¦RKd%ÅK˜:ÎȾeið0š2kø¶8Ö1a]ëeÒ‘^Á4›< h.1Õ‰„pÙÍóÈiXË´¶‡õ Û)^rxú v. ðAœœÎŒw}‰¤¦Ê|d*—¼hñò ÂÀ"ÆpØf¡ÇrÀf'Àû) Ž‚O‚9ßa‘ì8ùŽu¯Ö°w¼8'óž`O)^å\ëeÃçb ø ày_1èš`€#?¦¥­WIݬ Hlàꛦùz7ËãÝ Á’ 1>´›è{ÆKxljuK^©Z=q•ïi¶žnÕãM¬4…; ¨ñd–¶wÓ9žå8¥™ïkµÃ:éRpm@[©;ç˜濇»¤nTÎ".Á#w_÷„¹ÆGbÿr‡à„•[æ¼A™Ö à/o )™HìUˆ2h€à0x4@<‡ž½òRYŽ„®z5ðݽóOVd™Ž 8òèÍ/H§RÏ~@"éÆgò¥¹‡Ô`C@LPªx““ø®_Dká€Q.ü6%ñ´£½­G/D°ºçº=°lË01ô¦,œz’vÉ u˜£~@üd&Á¢=ð, þµ¼âD€¦»šÔ…&™w¨çæCz(™È[r¼ìrà·ð<Õúä® [ñ§¦+£y¥neÀù˜Ê=iàTç YÄ«á‹ùF!Á>•SP¬“ÕÀ§Á`nNP±Zø U‹‡°_šç9€Ö·FåT±êS@#‹äÄYš¸Ò=9ëÍ Ÿë<å_ذ`›`½,EMÖó9ü¸¨3Â$¼Á€]8qBmšXhÔ ðCèõ8Y¶eîÚz´á2Ñ[ªnaPKXâ‹Ó1·èE!Ðä2ȱµ”´9ÃŽá&·õP–$·í6oÉ:,h±Aç01ÌfÞpFžjÜf|êyà–àú¸bCLâ‰N¢Xß’ hð‘,…7/ü,P½ž)æz,œ*ûÞà ébÎ ÿr”"›Î¦°e,7ǵr 9|fâ¨C2ŽžˆsåÐq2p5Ö#G$éŒQmìµïôÒ˜&vY¸‹Õþ 4ó†h LG\{«¸Z4± ãǃ­h1ÛÏŠÚ9iÅù{<´}=À bÙA5¥ ùZ݇Í/nGR÷匨Šð&ªkü% jÌÄž<»_xG/"¢¼À¼™°¼ëòÊ/{ë¿_¹?œµv˜Š¨˜0Vƒ;½%H Þ4xæå¡0÷`K2¶8cøh¢µ§ò}c‹ÞxkPHx+D}à žíé¾À<Éônú­9mzUòXÇËHq¸°¦u¿}—ÿŸu™å{©R+âÏ{ãÚ‹»Çª˰rw«-₳Ë`…ŒK” Ù+·å ÐxI³š1”Á’Ý’nãDæ¼OOÀˆwÕ \ìß:Þh6žèdö¼Úpšiå~ߢ, íЫñ‹€uPŒ‡Çlu¥ùrÈŸõxÉÓñ‰œF¨U9AÀj!$šqa¯ÎúN¬ù‚cŒËÆìêØ "7ÁõÛèÊ&žï^ÿÍæAgO]2œ©z¿ÿ6|Ž…ìÖl-S^D~  O²Ãý¶0÷Îp'z]²Ò­Âó_PÕl#þ†ø·\iœÐ£µ%ë9øÍ6m>ÀjøX/‹³("Ÿ,•!‰8/áJq[ˆ75G7ðL…ÃýúÛDÏ)Eâ Îô,‹$A„g«V_¯LABiZ•‰íÚK ~xJÐ2GÆôâã•"ðã0üIxÆ1­Ì:bþƒ˜—Ü«œŽ7†•§0Ž ÷À) p[v0lH)È-ÈæHØI:9ôÖ™a7¨hà·½MÅ$³ù9†¶·tXƒ{Ýy½0–xÂ\°JvŸ`û¼6îpøp17 !Ö¾@4ÁŠÁÎJT~ö%Ð9î·`[·Œ[°2À[N+ì¼næ¡  y! ÀÛ`éØr=X³Õ/‚ü¶ñƒ rL¢ ³¬ ãn½GšÏFÜ&“5n\­¹=° ˆ$¶pŸÝj4ÀN¾Yds€>‰5%ðàKgñJ3±6«â·aïvfõ΃es:é²^V>ÂfƻӥxÇý1ÖZý&XÅÃ>pgNÇÎn{Å@@|€,*‰/Á¤¶#áçz浬%ÁÌÁ›Ã‚roÔu8u ¢‹Eœ2Ö?1!©œ`9á=áõ;ÇÊc¾‡Å IÈ÷€ßõdZÓÚ²±ï;óÅFw¶0d‰j2nb–¼#÷€Þ÷Šú9xAúÜ'À3ÿrÅÙ˜‰dæÙ_Ð…Å6Dƒ–ñzg8pƘ-g§d¢à„\»pœÅ˜^g¨Ä“>ïºË¦#æ Ê`iÆ>‘?{à1‹×0³‚ݲì Ó†}< +ÁCXìîµb'LEÛÌ.K(Á5Ûxç=e€áÞAÆñbm¶n¼–Ãå.¢ë¬çWôÿmâ•íü"$5-a{·áðz‡Ifï8€à@æÄ…³®WJlÕô0VYmN~¶—ˆQ°që~¬ ´({Aì³ß“!H•€wµ€Ç;‰V+AçãyÚ’öÅ@¬»PqÊXÌã_ž*v/þ<õÝë3½mÅ¿á-(ŒÖ×àHÈb¬—Yø8%b o.M¨¦ X@%âyϘvû@j%¾Çí¡Zf@wš/Ÿ"XŒ~Y\-ö)Dyë}{uÂK™ Ài5³8ø¼3x@«i’ÞíË,y©¼ÀUŒ P‚Èv_ÐpaÍrÜ£fˆ‹w𻾇õ0¯DÐŒä2`>Ä›@¾à0•ÏVBqÚx¿ë±j<[7 doñéÖ¢oLðbpØ}Õ8ü1ià°MØëãÝY‚à<C*–ʺ,ùñ–Çø²,ìUy›ÍSUNK‡sŸEìM8ò€i mÙR?ë 87œ8ö?,^˜ÕÎlZv½äš2f=À`ŽZ€\ÏQöµ:pµ†É ÅÚC‹°IV4cËq6µb‹ãÚöݱk—H¸0µÓ™L`- ‹-ÇÅãà¤#Œ›°“M¨\6ï^v3±·q…cqö™mŒDó¦Á繬¹¸±šù˜YˆK³¥À ',\íö2Vë£x‚—Åoá2fz yâ„^ˆ‚ôÑ"—Â+pøavK޶ܘM©@XË1î·xa'OÂq‡áU,ÔÕ½4–´8s²òˆ­Äã>@$“;åà[Ÿ¾ðLÑ™€Ôˆ£@…Ûb’GÈØ£¥&¬V/KltlÚœ¼ƒó“Üóksé¯U8^s±-m—Íïô²o#¾ï‚{äY@ïk—Òó LŒó°‹;--›ª®fæ<êTñ!ìJÙ®ÝUàe‰§@GÛ8ªýLÞÆï‚ XÎ"°‹Íº¼êe Gã =³8NéPoIŸg:î=ˆü‘õ3»(aÄL»Š_m€˜E{[ÛÃûXòÄê]p^À“•qD·ê:³ÀfX>ÖyCo{üNÿ½¦mg9p¨œã—6v«]Áû>Áü‚ù›ýÏf ÁÛJ©†AQ.üämCÇ8B<Â?ó?ÿúÿs|Àߟü¬ ©(ȇ¿« õþÁÿÇòªAí¿ù€—üI‰_ú÷Ÿ~üúã/~áÿóYìçwþÖü]¨?øö›ÿëϾvŠy¼'–ß ÁÏßüà·ßÿ·ñÅ_~úêÃüäÃÿꌚã×~¡1ó;[PêËßPr¦üæþõí§¿ÿôåß|øƒ/œ-Î7:Mô¿ýòÓÇÿúï|įÿ?ÿâÇ¿ûßþíÿüŸÿóO¾øé?ùöû?ÿýÆo~ž þï>þðñ{GÃï5Ù"-ûÍ~ò7CüöŸÿñÏG­«ôsU¯>ì1°[Pçï÷?üÛï>~óù‡®<ô›~¾6âOâ/>îo4y>ýðó©ë¾ør*ÿf+ôl •»~ßÁ¿¹‡òƒ_|ýƒcb¿øË/>}ýÅŸòûÉ¿ø°ÚÿûüàÏ_ï³øÐ?ùáÓ×¾âoû1Ÿ÷ûýö§Šñüpø|ãÓ÷¿dÙÿú·?ïìgYÔŸÿËßž’ò˱'ŸDÕÊ_þ™*¦—Ñÿ¬#ÙùKñÿReßào«…þ\§ì¿lEg‡ü×ÿò·ÿâïþÛãßÓœúïHÛ|ø…¬ ÿóŸþ1žÏ¯ú«Â:ñúð[Ï?€ìâ‡RÓ‡ÿúwÿï)ôüBëùÇ%°~~*þ1¬_Z÷ÿšý%ÿ/þ¶ñý+ÿiû)ÿ=ëþÇu™ößÿ·ô—0¦ï~æðVоÿæS`úƒ_}úÙOÿÛLçOÂùÓ/ä‹Òu@pì¬ùá£h¶.à/¦úªÐ«vØá¶bã¿ýÝ÷Ÿx}þøø;ýV ©'Àæ» ügÜ­Þú hÕ²ÝßDðÒUaÑå´(ÎdXô|ƒB)ö_P@|'p¤Ú-.VUXDñÝeh¶jòûÂék<Æ|8¦Ï*2—뽬tYfí`€ëYù·2à®{ÅÆ§¬\€¹ÍðЃx\1޹¼ú¾.['a³À\^«ÍKSà\æuø·K‚ê¼€ƒÖmŸ¿U’½œV-Ù!0wNä‚ÚãYN€âs½1TÓé€Á§ZƒrZ׺p†¾Ÿ:­Pá[•ñ@Ò²MKVþóV›Ò^´]-ö,Kú+O£ùz¦ø~.0ìV÷)â…x¬ 0÷÷Öv²km­Øó„Bù{Y-|³ŠÙ_Zy6°: †”Aµ¶æÙ<"¯XÁÁ%3Üâë µËëVu¯.ìð+¤| F Ä)æßºLXBäû:-D:o5Œ`½E€ŠvGÖ¹B„dõ÷uλÚv!“Àó­Ð ……ã¢ÙÒsÖv­ÁáÎÿwÆË¡ìýttlÞ²hÖn`¹R³¯Zƒ²L–bºgÇVðŠa¦ç.§´¯Ø’IV‰ ²ÖÚ Mm—pZÿ:ضgØïN~J:„ªŠÁªtÇlå0ö[ü‚0oþÞþÆëå•ßÀ·O/|bð˜æëÙ:›azâ¼°áqM~r÷̰˜%Ažn…?¬4|Rõà R똞Â!%¥ñbË6)R ãÕ/Ð>G–wquˈLsT»äó=îMºfÉY{/;_-€JÑâ†SÒk½{á×ÈiM˜~L¾8k> 4­.÷|Bàíg=vNþm©ƒ-øÙróæ5]–àŽµÕî°.èÍâ‰,‘X¯ž Ùð÷¨ëdG@°aȲ6E˜ì‚vÈ¥‘´U}Ï8¢h7ÖÏ‹¯‰¼†÷›¶åbCH[ÁG‰ð¿|±¹Éæ¸kŒj•q:`#üi÷bÎ~ck ‚ú/¦õ»w팢Üñ)@\ðQ8°ÀâÖ­ÌJËŠ¨Ó3N¶³c~ñ²Ôc°\Ûú—…#´ç&Û=ØñHÝ܃ËÎýªu¿Û»–Hrºng¬·lûä’Gž·­ô¯)Ñ ÄØm3T#ÌóíºPœ)Ĭ ó멬2xë÷ïÃ|÷{ªru?éÛ.3§u4Ï»•kîù˜´Ãò}8)x‹Œs¤j‡9nªòåpô•¬› |ŽJù<×Â$›W”ßéÊØnJ»à|,q?Þ”Þba0oeÿxs„+ãµpåãTê zGY—ªM _wYyÅ”Ì-Ã}•%Ü}Ž“­Þ¨5OrQ†%Õ–;QãR9FjS?<hÅD·A™½š¥¡Hlo‚•™ì±ÌjÉUSKXMSOåDz¬å~ðÍaf"Ž5,µÓK…`‰¸ò}¶$¾«é‡ù·T¬²6G~tcEºþÍ«2mJÏø¯Û.‹Àu@UHã=fšý±=›óñZ:´UÙ0¾Æ¨J̱óz…:TCjv>%ôR©„^ø;ûÚí ÏJÙ]Í6ªöØ_ªEkx9Rgoå¨΋5‹9[Ï㥠¹éžƒÉ>àÊõ]°‡3H¤ÇjøïPƒw•’u„šÎ´_E¿c1wà§8'„܃õ4´Ù,È#úÙ/Øš­âÝ4h!h-•5Ug¼wò2wEÞ“ÝÇQpºÈÁR󬱰¡ºn<&OµðRg°+.à•¯±U•ÿUyìÏñ°iÏkYª{kcG ÄN»yt›¼ÓCäU<’…¢–CYô†·‹„÷fÛív èÙ@‰_}“òAañ[Øø¹¦×ôù­ã¬ð´¶4Žçî,êËñµÁ¦ßvìNÜàiYjœÙª%%Óܼ˪G[Õp¹ù|€EN^³îG>qŽg4åf!îÌêšáφ`¼ÎJa€ÓÊBíGãK@Î6?Žô]<¨Þ£»Ùâ•mP,<Þ¬N™‚j»/~~¡~–°õ…ƒ’«²‹ ÿú¬´8³| áê±)¾S“ïJ§B |".êÆêýÝšðʸp Xà-Þ´ò^­Ø/žã}?˜Ë9Ïá­} Çl®ÃWœè~Oó[ ¨"QÊ=bÐ#m­k ·Fæû_|¢ÙUŽxØŸlã­Æ6*|êå-ó´PÖ&7Kp8ö2[Ó…Ø.ê ÕŠ-Užµ˜ñâ³ÆÒ|-5O ɨý•ÀœøƒÎÌ—Íõž ón€º*¢³ÍQÕJÖ£ìªqçxu‚(`¤¢–…w8T•‚@ À!²Õ«°j OX± »`.K¾V‘ œHÐU™³GåÇN¢ÛÝÞðZÌ‘' ²Œ€´‹…$†bË8ÞîíѦ®gß%ÃÂ1²õ –o—‚IËž{ácX£Aø³Ú$âÌ“ òÕ~EvÇ«Ìp\ŠT±æ@)/ÊZðLUPb=Ë%:~Oí‘6TƒÑøI`ShäP°æ%–¨Ì E©Ö›…¬'Ã|÷^Ø@Ì A¨#ìº)aÎawçÚg;Â\4È>+hOV&ŒƒY¬9áb²ÞfØJ]€$,Ç‘á„;“å^rØ"@„^€Q ¼³+s–]çU "ƒ½xì8x•:,~7v5%°Ü•ª€Óú`טñÍ#Zî¦>oàx¥2ϧwoöIã[Á,%˜s²]7¬ýÝ•ñÊ;6~Òê|"Ô«D[“Y›ÄA˜DF«&ˆl…ð{w,¥Òå-µ©ÎëC象¶­h‰9Až©¾Ø–jç‚ð¼ ¡¼ÀRÍ«ÙîG;³þÍ>°VÓ€ Üw°¡EâëÝPß=5:•÷¼1^žo|wIìPÊÖŠÝ ëD úåµ’ ¶aWxy žs•ßw¡#WØh.¨è@( ¹ ãé ýíZQü^ÊÈ\”Ê=x͹XS¯ -ÃLï´aÄÛÿµùÓsm€mnÕ¨¯*rY9ŽÇŒÁ1Lã:m'aÕ¬4D‚_6ñR¾ûô+4Æ›E! *p „ ó8YÕfºàUÈÓ…±kÍ‚˜S \hé¾öV‡¸‘y•®ãoìTıuáû-çÏjsÁ£X /é%àÄÅÅÛí‹YKÔƒ“šãh^";aíRV¡ÆÃÚy…¢š(„:ZmØYð7C–¢•ÊzaHç½tì"ØrЉm׳¼ÜÄMø…M¢CôéœS‹> ¸õ¹¼£:”œ÷4Õ=Õ芶ÀlRÎ6—”çùÀ‚oïiÁ%W[@â­ü«]‹Ñ 5)uq\x³Êg§Žôž‹å‚É6 gÐÆÛ“oâé…3åq¾à´VâA¦mÃEƒy||$;‡;¼L·Ä—ÚxQ Gàmh²JP«Å)ľF·³ñö!p‚/a£B. þ¡0Å÷[øáȺ[CxE¸ÑÃÀØ¡´é%PÉ¥@ÝMǯƄÞÂõ˪ÎláWŤ Vƒc³8våžûÁÀ•†PÛbë‡ûeÊ#ýa GưƒóšMQ3ŒpATà¥z>­÷bÙ-5§eµ†`áb«7ÜvY”-€[<·‚54Àv©ªÉZqEx[Ö©`«¬‘ÝŠA ªPbHИN r¢¢:3°€®ñ¼mòº,ë†áœ-°3e×ÁÞ]™P@Í©ù°dj±ð¦Ð’G©Ê¨Ò9d¼) xû 0Æ+&*åU…å†"_Vª£"{N/~Ôo1·ZYÃHÊ­ÔsêöN NÃÙ`åDl%€ÕT+ÝËý}ߦÌ,pˆ ³ o¬Àºú†x¤W!âhE±ÄVAhšKŸe|çíHDœãH«êgú)©ßD%ìä„|ØÆÖ¬ºlµ»Ï­\ñìac{ž$ð¢öê²ÀÐ-—:Š­³‚Uóhà†Õ›Ë:}ª)p4ýX÷¥zÅ ëÀˆí²MwZ›¬Ù°T ˆ; Š) =w(^flªõ]>Uš·ø¸ð9+Cy¤b ­÷+ɲ—¨ ãTo|žÝWޝª¶862á77p_U|Ì à}ÔÚ,¦¾–åÔÃ|bI Ë—ã)-N%à׺rB÷H÷:,-èVepþñŠ®ùFó«˜+T9õ°°'²x/¢^?ÇFëãõ´uŽ}åÓ²æÈ‹©nG=íDÆRYí Ò¤R…Û> 3!6 p”õŒEýêŸÛZÆÊó+¦h/Aa}ëY0¢ŠzIOYä>ňÅòtØ–í>ø`XÎîí¸ÌK?Æäd£µ\V§…g¡®Š%ÂJ·ÕY +ˆGƒÝùOÌ¥…G8ufê­A_*¢†ËúÏvXI¤¨l›J¨`|ïk®•ÍìÕ¦|<~Wš$«)9ÔAÜê„r ušÊËóüÍf× MU¤²È/ÔèYà¡Ã •D!l²K ;¶ayÞÁBÆA|µÊ#PݼÅ Z]€¢g¶2š HD4@ªÒ×d}¼õØ19<½HB©Dç0¿ìyã%®îñ!â.«-ï}«Þ×’7xˆnëV~üæ•p–wµÒuM£ ¶õæ³³#¼¯ÙTg²×«w€e·à ëͺkÓFŽKP?%nEÒ·9Ÿâ]í&üØaÉÚýV…¹Y<ôØlItì° â0¯Ø iÀš„¿«ÚPG\PÕë›+¨†…¼Uäàt© šæE/ˆW†AQ›Ýx®NšhøVÓ²p>»Ûï¾›¡|SöÝø”TÄ_5Þ©XÜhi ‹ÌêbClƒ°fœî¿<9dxá¹¶Šî†´÷Ô Áãâ m–Ûž3`ÊÅüK ¢¢NŸuá'”µ”a•=‹jÇDŽÀÿ¨æÇAÄoÚÙpØ;î÷öxAŒl8€¯Øøaã&&‹gS^Zf<$`¾‘³Ó…J,&6‡C™ŸËþ“Åù‘ÿƉZyC±c"*å pÜí¹`^lñUL¡Z†9ÿÂpÈ_ÒAɸ?Y1œMžYiɹ­Œê“q8–Ùü~Ú›œ0°Õɼ‚¸ªhziȾô5YºxX²7ªÆg!צ±*Dy£G²CbÚ†1ÆnùóXÈš‹*¯ÀS,.aÁ‘Yœ–eý w§]†Å¹2šÙJÔáµXýcfœ~ÎCYeˆ€8ÏC Y–f+\T³3úëóTªÏ­ãUMá Î7ÄC®}³Jl»Hø">M<ǸØm1_Þêýúü• ®vð~Ä Î¤u¿€½Za°ezÔ&äŸn…SnæÃ2¬q3ëH€A|²I%ÚÍP<±q]S¹©©nëÕm²Ã`üdq ð“àsXÑ«^¹bn½•©è¢*2/Qâ¼$ëË~KXˆdBzËëξ¼á ~Oå;˵ˆ{×mâ36¹¶F¬{”N8T€«¤[ûùÚƒrz¡}WRD”3gJ§¨LAuS=œŠŠ}ó¥ìÜhìŒ]—ˆ%‚\¬Ö Ed¥*†/;´ì¸ß]Ef¡ºwBÉ£2ý CV[f]¦èE+8ƒXròö¸¶×¾Šò–¼¬\~¦-tPTDf845(ŽDÔRæð ûÉÙ©GUuQ}k:ïÔïõÔd…¢6pÇ]‹¿Ìuã=ª2Ú‡¯BýÞ%»ÖÀ‡xâÞÖ2Ëì-ý^6£œöwsjó‘«šº'¨¾  @‡šWzCš¯úZ^~äu7 µ65 S`°²f†Œà­Älpègl©r»e¨Þ¿™v„ÃHF]E¼½µ„ÔƒŠæ×8RIx°ÒÃcK,¶ôú_ÑÉ7HÅÔGö¶±â1«‹ã°ây©Î7swŸ8ÄrÖbÑj~L¢ªŸ«ú‹“aÖÜ'ÂÎd™)ÙêöØ3=ï£+Ú-Å,VŸ_QGkHàéõtÎÕ}!œ„ˆ—íçhxc‹#þIö‡Ã]\[\UÑ™¤4¬ÔYºæ-ŸÕѸI«¸§Faã<¾›X¬†Ñ–—ƒý$ \@¥;hèzúŠŸP,èýBº¼Í¬J’) aÔµ­˜ÃÍ—”YõÔãì\fóïĵ/»à}À›Üë„O¼FVØÁÀáƯ¸L”^õÃÚç}ŠåùA ÖµF|jÇ+Ch½HWÜ¥i ]LG‚üG^Ð{K•ÏoÆP:BQrËKAª§ÍÚŸ²u¿Í<®RÏÁº‚ؼ3Þऺٯ˜­ýv”k‹©_vE¯`ÀW¸JÓe<óγá•oUÉ%»9CV¥b‡EÀj…JÀ@T#[¾ñv øpYòn¡›Ê—Ÿ¥ƒn'¸sŽòÄZ#ÁQåkX¾´çTµ ¦]ÍyZ¹Ù|À£¾Ékµ}Ssë½adÎ|hª.iç,Ø]yWG^Ù)ø:RŒ÷Ƥð€x<²Ñ[•$«ò~¸´bJ NvH!!%ˆ€²‹ä½æU;gC K+…í4P7ÕH5åñµyßö-«ñ!ëœy;.ŸâX5vȧ팶%m‰(¸lù”=åS--E+p,otc€ÎUQÁPáÇ‹ööVQÞQLÍîa„ (?âËvxçOÞ iš£j 8˜¤SÙ8¤Š!<½[lŸtœ Š®ž4OóØŠÍûïFb3³0^Ô•Éš=§ÝÙ¡Å»}:£’ߥ¿Ïg¼ù¥I}ŠÝ€]wàdNqp h£´ÒãY<ÍÚƒuš‡dÁ¤¢Ç¬¨¾ãÅp"ÝÐê7àbˆ¶øyKK:¨Du%þ Oûd…‹ À},v›Z´9¬³—EA¤ôyþÄ€ã÷xcgÎ]Œ¹Eä ÕüÏÑõ£8˜eKøk³^­fS7ÇÿÑ ]{´Ó£à~A‡ñÀ³û ¿Š@?µmEþ¹guØY²S8l8žsîá>pj¬Vµ»µæeGÌÅ"-v¾œTDÞ* 0S4Ó±9ÐìOÂæo°Ä«VÛÉ/"µ¸YÅó}cÃ8Dl©Üº’ê0àôš±Xsë8¹K¢`ãk8±7UWÓf»W‚÷ÙŽçê}ûTåÄF7s9*âÚ¤Bñ–ÕidfŸRµ÷î´õž“êÔ›ö`?~ÚZçÐ «Âð½½P¤iuÄé<$–¸žm°Ù9çÿØpd•÷Ï#z·Ü£riïu¨+?€;NÂqj»,N¡)xqÏ({ý^%÷•µVJdÂ,¶xÒ!"*øx÷ *Z—"²ãVJ}Ê}ÓÆ^EŽí·ýàņÿãUÓ”Àº—švŒÌÀ~ïÙwQÿûÀhD<íú<¨/u–44½ßW;X¶n”‚›±uûõœd’9ÚÙ^¯“M£×7Õ_À³¼ÓAð*ÂOË“à Î#xv~±Y.³/ë#¼÷i ·‹½\Îj‰üN/'K‹)wÜ5l1 ÀYæ«eUwÖk"oÝþ¯ŠKU”fë6_íÿ?Ùöæþ¢“mÿÛÿÙV¶jüþ¯•m¿ë¯ö²åôá·Ò>ÄpÖ…ø?ÜËæ‡ýÔ̶Mü¿ÕÍæüÞÎöÛ_üÀYûqoäÿ%ím—¿ý—ÿõ¶Í 7U»©Þ¿ÓØÁŒxùrFùŒŽ@ÆóتJíñ@ç®ÇêP;}V}¬yvdOw®v\ý< ˜iYCæ`Î ?qy€íƒIC´ÞAWÑáe·ƒ~BhRS³ÞS¡Í£¨{§È‘ÈóÑ·Þ^ü®òªëe¶ªXMe¯R.Ž7èKèï ³lõ±âùI;Û’{m5i//°dMåQçf°V÷¼@¤çPàþk[5ܧÃ*Ÿ1\1(GõªÀóZEhùƒÃtÎVœÞ©¨îÉŸxË@©J Ÿ^Éœ°T‹WbSUEåGµá`ξú[€Êá—§"X v {MÌ]ÞösK.{X–“H¸¦’z¦‡ùœatîj|Ïå²~}¹¬t{añ…¯ÍÎ{hŒÀfÙV§ÝBñdþÖe9qXmÕƒ;Ã*Š'øbXïò6|V°x'9«‚õÝ[ ¯¹s͹ä¯Êõ µb~«2´Êî:ùšÏ逹÷µHäRqªjE?Nío¬¤iáe²DgÞöJU‹í¼e‰Yéû[ÝÆÇ±€+”nE[>àÍØC³Óº˜´8-Ô€í¼*y(dåTÒë^׋ªd4Ø GKôµ à[HR¹~'Æ—+:ÝV¡A;%à‘€yžZ=Íklã´â ›SòöóPºß~™X¬ÑP”u$ŽN°*¹8.ÁÂAŸÇe§ÞY÷ئ¡¶Ò¡©Æ3?Á[í©Ìj…YgÄ¡¾WÚ2h¶7)£°}uæxN*®Öõ¯î´'¿6›Ì|BZÙìkX8`­Õ´™‡(¬ªÏª½q²k=øìS`;ß0§zÚuª±o«ˆÊ’B^½œí³‚¾ÒZãz&ŽÉ±µ(|ÏÌà\ÞY@ùÖt°!„ì´ÍÌ>%~D.3mhÀ9n îÈû«åÑ\j‡Ø{ép"ï§‚RÕšª]WÑP`¿Q±\¬²¾E¥­|x`é½EJ1[dc-¢x‰sE»®g^/v<¢Y Çi›Âã ŸZ½/˳]˜dsÈícé°Cwo{ÕjÄÈß;/õ쳎°%·¬äÀGuWžuÊ¡;µÓ6˜](0lââ@¹ä¶«ì«9-U³­ý‚”Ý5Ö(‰wžpÛV«åq°ØäTïîx‚Í-»-4ížO5Ä­ðP±«,'B)Èl ¦lZ²æáÀXáT iWÃ|ÃTvÆJ nÍâ fô|ß³Ï8]]¹Do-Çy ûÚ¦BPq†O=+ïyŽ®˜óñ^ D6V+èàÛó:m‹®CM:É-Û Uí/'¹¯@¨ª;š5GÔ+×›&~Ð+1Èï³çR¬’)`Vâ²æ¢$ rÚÊgwl}+EãÔáíWq*¡Í¯¥ªž®—àA䘜FÖÀJUœÈ«p˜C¸œ¦£0WíH-‹^UÚ¥a…åõ8«k›Wy­ö*©cì;ÍÛè@óÆÃ™“®´¼34{ê§E06ÀÙÂ1¶äjLÎ'†Þ±XŽQUšqð±×\M×™îlN«pÖ‹w©ôõl%v3(˜zW/Þyv¸ñéÅ”ƒbÉåy•b_Jà=§Íf–m–µå}ßE[ÜÏuq®“£ÐnozŸ÷À®li{öxŽŠé[ë{{¾hÆL«Ãlúãp{U ùHÏè|ø‡~`0ï.XkÙqß¼B>U‰>M¼XV÷Õ-r!Öy$¼PPÊK¶ÓÂïÆ~…g*£Æ9£w0³µœª"|ÕþŸ§îrfÉÌõW›åŽrÞÑy¯Ö¼ÛµÅæÒËCGcì9λ+±Õ®I¯Ñœ7V#±q\öé:'™°ðÚh=ämi¤Wíï¾€QŒôí6„<­Œ¥n” ¥àb£/®^2öÌa]À}ãm÷1¯¯*z1âßÍ ÷f• ó5ÃR"ôØö±9Â%ª¼õºyð‚yO.`©×…{Ý K|áHZ½‡¡§#3,moÂÚ9ÔÚ½sYà \Àq˜-(S ’äǼ+À#àB\8 %’½¼ÉÁü¹¢oøžÒwCÆ]Dât%Nv–Þ$[ztƒXÒƲ½Ðm’à­ÿdµê9_מ–7½ϧÜö<×A $[ lSw ÷Kç»—woÀ–6Z-ÙÔ‡©;^pt,ZiÙñä#d‹o–¢‚Ũœ²g³©sâM#xrþq'¢mt„1oÁi´+J„ƒL„­{‘Å©w‘¾Ug¹F¶›ð£b<Ÿ³ˆÕÏq¹f¯ÁuZ/n3’Rm³Í‰ïò˜5§]³yÜàá-í« º³+½²°&ñ–v×1¼(Fpz$gu´*ï—k~U”èc+¹b‚cêÑLƒÈíý´ä guáŸü*aã™ÃG¿½´»‡#\8¤ÕËPsËMYIËØ°j|™s ù´fÙ¸óà¼fKÖÔZžª@{Æw*§6Li_ËçÈÙ©í˜ÍRˆ‚£Ërï’6 ó§²ÝBÜÖi¯=$€1Î#ŽüÀ¿ §°Çå,YÇ%\ç÷hmËåªð“à2~Ubö&Ù« ¢æqcŽw=Ë–ñï®V¶åÕônRͺo¬çM½€UvewW»úµ ñ¸®êå—âígÈS¾á½oÔ‹óß¼GË •:lÇa?Ne[{½ÁÁ¢¤›“TÆgIöÇ!«Új¶èűR{$"ÿˆª9y#y=ÒÑ›C}*œè‰ -6Ö9‡€kaÐù6ë/ÑäCÀ´´ÀJ š«b‹—-ûÑ·V¾™iÀ¼1þuè•¥â°EĽA¯¸ÛáÜúÆñîáÅz­°–GAÑl+ÀÜñ}΋ÓsÁëL0Î gf°UVºcYÇ–Ö ŠÛŸä}³<ª”æË&Ž¥e^ç G'¾„¿†£9Ÿ÷3•æTkHÝÊTeïéöÑFعÕõÙ0æÍ3:ÝÖ:Wî‹Ìx<6Š Âœ0c§]Ü…å#¨-bhÀB¬c}á+ÓAvÂK`–%zÇÝÇtÂàF@Jö²À9+åðz{sþl§nƒí|oP3[VÆâ‹õ½Ö*Dp8™3)@bãÜUÔ7hÙ[ËÛ×gX:¬2ö‹ Þè'B„8@®îí>Ï»Eê‰Ä¨WÙoû10S3¸ëz9 FùèE*ÆR‚u¹6°à§œñM°€Å¢£t .PÂõVl£¿[gd,ë]ÁãV†B.ˆ—;KÈ–îà.ž4l¾Æ×¯]ÉpÖƒ·¨2Ûkm±1³¾8i"³Cƒø ¬zó¼P/F’ýÀ"‹34ðš[hZtÒ© I‰–b™£ÕùQÎHºÔþ‡ŒrØ­ëu:ô:xè,#l3w‚óËc§Hßó8yZ½|¹”V¼•Uù÷ÔÕjÓ¿Èž/û†°UŒƒ˜-¬VÄY´8EYKeNU'¦Y'«ÏõgWxþæéœÌ„ýd{ü|6u›;pª³µ¸Ð£jñÑ¡)cÚ¢{&KFa;çù¾UæÁ1k|wíp R-#)§Z>ru»,E±‰Ý Ž^›Žv™|‰,ÄJ%<ðˆ1ywo«IÒÚÔ¼†e–€ÿb©¤óxzd+¦ø>ú˜ªr¤²ñ^c jåß’ÚvÙ·ê”*»(ûwšA!¼äö5k Óªó©þ&a?¬heò~íE—Ö¼évKìóup ä9za:½Z¾ñ—€ai-¶þ@]-Æ$úà†Ža%c…^­A ½­&©×#Þ!µmü)ž«ÚÍÛñŽ‹…F`2 ý«ˆÂTN#j ÎÈ–N·› ;XæöÜ9z57î£ê¥¢Óì¡#_§mÄwž.Æç|)ÌÁλž0xÛ¸ ö6ñÇ£'{êöÏâÛÏoÙ㜔èT´† r(@°-,a4.bï»s1›²²r»Ê&7è˜ÃœJŠ[y¯¦^”wò wŒÂ«Yû³zÊéI÷®ÕƒÅ0­a>÷€µì,9¨×pÊÀk¯ì³  v£>ÂëxM¼ò=ë‰ïV¡ç=ù´ù²ë 3³ÝyÞÊ8¯Uw´Ô<‚׬ð½a…¿ø9z?·5ÂÏ!“ë±'b:XP`õf+ÌÿèðêãV4Üú «,Wx,{öಢº-dµÙ?SU‘-hër¢gè¯8%ï1¨ Kmp­6Y<ªq¨:ùÄdqrvÆùYìÀ¦l®ƒÇ²¦"VŸRþ‡€–o^@…+ѪÎó`ÏÎÎ)î§Ãøv3/”¦ùŽGj/n+ZlRŽ÷ÆQ´ºppšÂÚ’alÙ›×:GG·ÂÈ]Ç@ª \´ AÎ)âÛí5µ,ðÙ#”푹@ÿØ, a«ñaAnR(övx"P÷…yým»Õo9ÍË*^âÚUâY%!;ˆí/?¬uã8Ä­9Q4÷¼*¤Äj^HmçHÀÂ;ÁÝÁ¬èR”pRÝ<Çxru¢š4gv\À2 ¥È@“ eˆ!G6’Ë*6&°^a™?hÍ7„4‘ÖKq¸hÁÞueŒöù‚¤ žÍVý¸oõâÖ upRø}g‘ˆèïFØ‹–š°Ó9P,˜°²±`;ÜŽÅß² 6Uið¡¢Ä€„ãex4–¤bmÚcß~7“«,gÚïËÆØÑµ°$ëÑ8m×òo$â¼Nxq9¹¢f+¾ã{¼)HЍ‡ÿÃÙ˜¤ù¸ÀßVý™ Tí·¼3Ø©«)*W^ ¦ %<·µEwª“Ï:*\à ×/J,y'.nA¹²«ªëe'ü´bÐL)>â€néÃbU"p3Íчmð” 6¹(y'4í`àíŠ39Õ¼üñ:d‹Ç{9^Àå”yëÚ·Ô3\ú ¹Ë–‘ý3¸v3?&{N*€"­N¸ã½®7ÄÛ´´ú?Áº" M…Ž;S4Èûœ9.3ÄN?)–Gs’ÐÎk5‘1œ=Ì©ìÀRɉlAfSm„tT7:·‘Î$SÜqÜ +8Útž¥SÍšb™ù´-m›Ê[üBüî7{ìM²½ÈiǸ[§§$äZÙº®C½«5»¦û-¿s)Æw¿¦jŠùŽŠU«½(Vâ)Jõ«äd¶mÃK;ëz:ùù ®âÄ­9MH¾÷[œa¤ˆ!;Œ'´Mïµ5¥‹ÂopJÙá˜'ð .Û•·á•%µyå@¬Ë6ÔÍ”mÄâ[—Bý£˜³Á`Õ¼ücÇ@m.…#{ñ·ÁÂn0ˆ퀾_’ÉAçãê¬À A°‡N… Æ#hK,/¬ pZ¶Wö<„¦„Š‚KÊèásï!»ë밺dz•#µÅ G»p –µ –Vög½[“üò¼ËékO=èS öó€h_êOà|§9u‚!‡0¼†JZpoøgkJñÃnUtfåc¸’eƒïÌÊÜR±äÐf¯ À-ÎĽ”ñ‚#¨hÿÌÇ;7|w¼Ìát5”xX£q»>«ôç6ÔLIÒÏjé!¬aZKû¼¦MwšsÂIW¾!§Î«=ƒu¾è«$Ÿ“2ÙuºI]'mqp)J§ßfWùà8vp¡j_¡M0€9’Û|—w¦‰sÐCZŸØwˆzúéI=0{ 8Îá¸Î=3935=`:È—^·].œø̯@˞ܧ" ¬3ž ‡3sªˆˆ|D¯©w=t&š=Õ&G»{È@^“Ã9LðÚ쌶@i© ±Ú¸ÑbIŽY öÔ<ú|a½ÎåÄzì¥8û|½:Iö;^_¥Ýt„P7ñý1p´MÙŽu,èŠjrÛá(OÛHN›(ÅDX[ØRý¼õ°Î›is…ã{°}"ÍÀ¡yy­OôŠrœÕ®M¢[,~ï¥MOœøä/º-‚ÐrwF½3eq_‹]¨ÙZCgà¶=Vrˆ·mÙ^6doÞ'CJ•n²+Æ[®¼Žb‡3._¸|ѵ׈À@©æÒÔ[À*”÷ÃFÌ@˜xÊtðÃQ[¡Ì ŒUÞñóÀ·‚Õq ax™ßv —²ip;;m¬.uV‰¹õÙªÞ΃*{ÆéKuXï?¾°!£4%'¯Ýåý½G-9«PïʧØwi;¥Ã+’BÁÃLM¿Ù„ÝÉë€é¬Ð*&ê¨n¨ë8–Y®âÝœ‰×„¯Œ*Iâó<¶vÇÁóc©;È[Lÿð³¶sæ÷"è^ŽV%ªÔ4 â?X_ÇÝ‚‡í9»¼J¸½zÔS Àwg@?ñ°•<ó¿—Sœv¤$^Ɔ‰ÈPK/dºw$U—=txHÕÐÎJVK"€Œ•Ø›7ïô8lÝÐw*1åW&îìÞOƒÉÿmÑó˜(¿ôÚ|Âx9Úâ7•T Lx£X¼1ÓÕ±¿}¬ºˆ'îàªÖ Iv• > ¤b’À®Õ‘ñvJ:_gÕ›þ¯ù~+}BpÁA8iˆ(&ܶ½•@ž-B7€D7»?NgqTsô’׬Õañ*œzåqÕ´,70å±aàåaÍ+ÕüÚ‘û8W¦òX²“,Š”–8‰Þ^¯hÛæV,GPÙ*ïU“ìe"=Ç0§ìp˜¤70‡B°`šÛéÐ1¶Zë<øЬõ=Ó~߸ k7”¡pï/Œ“é๣ß*–²s¸*àÎã@~‚φ›‹vNu‘@“6–1ÙÃãŽÉ†¬§"ä•­PÀ£$ÆÃ;DZ\&‘Ð[7—Þ‰[¼g¿Ì{„ã ÏÊÉ;Œû±pÀ»Zu6‹Š—“wöUc|MÜ)·0Ó}?NŠ}Ž ÆÇ‰;•§€pÙknÚ)Ú6à,:=pòX‡ý§Ž¹rp –mÓ¾².+hW!ã÷Ql„“²ÕHl¯ij<ô¬¡7‰·êq£¼»?“@‹Î¡‡‘bˆ~N6Ð@W%D\®Ýu×ÀYÄ%õè$¯p8ˆ Ö†gŒ]*à0Æöí^ÜÁA²U1çãÊØ#Š[¬Uü}ôƳ¯HH܉ƒÙrœ~b‹äòÞ5;(¥8=Pá3"z JuK›pÀ¸? ’¾{Uîöæ—s5ï¡9;Ÿ”©ð]$¨oÁo]ã0ýÿ8­³šý׺¸Ù|¶ôçÙWg ž0fñ¿UOÙ Öí:Ž-Ï¥À´"H˜€žƒiFÞ•˜q²i;&>2¤è·â±n•¥U4ÄŸ_°§žUOyO8÷|cÜ=Ä7ÁdÁ 8Ø7§âQ¹îÍœ- ³/j†ãV·óåRÊvN»ˆ81Dgö" ZœlæÅ†š(øwˆ[°0-XÝRʺèA™OåhØ fó…RôY1M|Q ¼_×®a§÷¾ê+vuôº´¾N«CÚ¾l|ƒÍ»,åÝ=o©¬ÇÊ@H~ÌyÙøéÜåp³eà˜`NßkBg)Úr9•`‰ÎÙLC²¿:½ØQTÝ¡<»×WuÆa[Ýã¼çÓ²&Æye;ÓqûÕ•&*sHxÿsW ÝÓæY5~JÙCø²UZÂøëÚ'‹*[‰Â: ¥O'ŠRÙÚšMÎØ¾ðñö,\{Þsi¼°£´¢­,áØZs ¬%GpøÙZo0¡R—ÊòA·ˆ«âylžÓjiŽ!÷~ZÍ [¹åûzàUy0ÝVcL{]ÇFƒô1§ˆ§Àe„Ó’A>ÃÖ´aÖì£ÅÝÜŽß$«k­ÓdߪÊP·xÞ©KJ€_ 8ó ʸ\{ì×tº/›ºäÜYðêeƒÊlF™KZzJI²åWÍÂ!=ü1lš”}F;VŠ$ø£ ¶ì¡ìJüÃUÌ–rmI 〿&.Ö‘€[Þ»Aª³õˆ:ÄÌA|6TÁUUÉÔ9↕âaq»'áel8Èòc{Q¹éãY®µ5£ÖîµÌÃ?œKî…ÔÝ *9Lh·íTɃ0õCš)H‡@/+Úì¸JR/$Š3ê¥UðŒ·š’™º%ËO§:ƒšyÉÙûìgN¯ÛÉÍ=àpß#ΣE¯lþÃ-V%éóïŠÔ®¢Äͽyü Åp^Rµ{Ú ^ }Ï~U^Sýäêæ‹9ÂÑ›õ ùP€„ßâpð¿JU2ž•Xš?3…`;0ërZ±£Wq°Õºƒ–c1+âxµ ݹ:7ˆÙ0Ž=þó&úÛ¡l©2¬ªñè…º¤@b"Z­3mžÌÓi|FG’ï섯6°XwÇMŒÕ­ÆÌóÎ|äÇ/øò­¶›ZŠQ·ËMíN.¥!œd,8YTëc9â=®ñ«µØdªLuÂS]/ijo›åÅ€Á,<+ž•6³¶›ì” NHWÓ€, ®Ÿ·X§t¼fb³‚œ•pãxLç—'Çúž»o%–œ¼VÁ³ßPh‚Ï—~A˜¬FJébK­®T{N ØÖ-¨{AFôª~ g-YP:¦Þ¶;½›U¾Ï àÏË›÷ËðÒT#Dçû%Õ‚J²ñ}Á)©;OêÝØ«0Ûœ-^³|q´Ð—X? mÁ)˜i° ß Z·„ta P—*,ç&ž^à׆óc¹QR(žs„gPšÿáw¢C)9 ƒÊ /Gâ+^0ì¸ônû…6á·ÅÕ¼Š\ºª+‹gv*hð®iyr+¦õN…®ê¨ žNí¾«ÒéÌT«mø´$Ô.k¼¹u¦Å‡ó‹ÊõØ §p¨µZ¡ºë üŠºf§ºD}9ÐäQ*!bñŽZ)»ÊØu¶WßþPÇÏ6v{;?Oµ¼­E)ÿÚ[ö¯ðOë¯ûÃO?ýÓŸýðß~óû¿õï>þùÏþÁF»_ù™üáõ÷šéþäãWÆÇ/?¤d‡ÐsüÚßîûÿîO~ãßü›ßüåŸø#þô¯ÿæoøÍ>ýù7þþá/?~ýíw¶„ñÿä_üãwÛîkyÿíýÇßûÃßýðë¿û‡ÿáÃï~üæã÷_|ýá~ö§_úòoâ~ÃÆ™_4À}ùí7_í^žìk?|øâÃß}üò¿öñ¯¾üøõ›¾ûøýO?ý°û¨>ýðáÏ¿ÿâ›Yƒ¿ýðé›/¿þÙW>n¿òÝ÷ßò?µ±î‹ôí?~îˆûÀ·þÑXŸŸóÇ¿øâG¿û‡Oüõ‡oÿŒŸüêÛ/æ+í¿ãcøÛ¿øôÍ~üøW?ú]úñÃWŸ~øîë/þšïæÃ¾ûþÓ~ŒŸý`ïÐ/žà7?|ÿñÏ¿øþ«¯?þðÃg»:¿|Ïëí¿øî»¯wÃïOýâ>ýøÃǯÿì'GL¯óí¿Ûh¦Íüc]fÿ´]þÉ¿Ü&ÿ lñ¿Èÿ‹lï?osuþÖ!þçžç¼¥ï³ƒ±÷Û¿ÿAóõßÿ·:üþÎ/ücý}ÿÈçüí¿ð“ðϰº_¶wþª3ý‡›7ÿÄÖÅ¿ 4ÚšËxØÐØý¾æ¿Ó„ú“ð7ÿ÷ËûOÿXïáÿøÅ7_aW¿øƒJ áž ê€Õbቊù0Ãd2¨%¸‰@/O'¹U âq;×e©Ö3-~ï÷Æ[Á«Ý‹Ô1z 4Êêl¸#¤ ¼½è|{“}ô¥+ÖÞ©¡0ÅkMbŽÉòª&ÍÃú 㱫xY0×;u@›×QðàkZç¯dáå.\žù”°‹ÒSMØîÈQéŒ[@6 ÌÁ2ʺ¢÷XjyÈ jmÍ©OžÎ»A´ ê·¼7¯,g>\Ü+ØG ¦ 'ÈØ$¡ÄGe!¯5¯ÖK¯&ïÇ’ŽBUý]óˆ >3`¶dÊ4/RÐ ³êýÀ;”Up2@”"É*V ùÉ!Êmïåu_moUv¸JfkVÖà³, ÏDe­/jTàô‚Aùkz`âT•_Üëà±’!í¦–G› n±çY@ZóèÂèTØF3'ï’]ueÄ*Ó«âSpmXá(,¹ãd.µÕøu³j03öá<ÛòPJÖµœó’_c<°¨>$sw-Î;YÆ|;ü â¬!¿¶Î8§Èéníœïþn[ñ¸H£çôÞíVm²ä0‘*ök?TÓ ðÙ§®­ÙÊu©“Ž•e5%ŸÑ!vý ²ÌjâµÚÏv):›ŸcÏ«Vn$ø§ä’"ÿ+ZËl6;:s}Ì^fòÆÖ’bð.¬Âa©\€aØ/v[8ÙïÞ[S€‰-…ÛVÌàJ» µåt˜rÕÌI«óÈ­Yk.™]Îà²Ùôµ?n¾Ó;·üÖhâ8Bý¯Y9`«§¼=+yz8NãmŽ~·v®W¤ýò^\!½;L«ÑÙÜÓ‹øj-±U'Õ·ä-P׋Š.J¸«ýpžÛ[‚“É­jS)Ÿ²Í6}_x…,/ù°~»žÏ6ŧŠõžOîVJ´ìEsð¸x lØ‚ïû¶×~ÏÕ¸žÖ‹ÒæŒô»cð.Æã',@†«®P½©»|Wßj¡„WÞú¨˜NÌYRm-§’òŒÎÌ♫"F)q$!Ô³mzm±¬¥9rN –"5Gß3Ë–Ú®J”^ªô²!éV—·ÍQ¦£¾.5*9##ïæ1ä´>G5›Á °àG3,.‹ NÇ„áVÜ6/²Íi{—e3ÐÓù8Šy¤™“Ïçn¸ãi¼/ aYcU_»Îè9ìràŠ·:eÌ3(HWÖu,•oœ½„ïs(‚]rÑ œSlpõT]øÜÒ­Eæ™>àö¹{?ây½f•m†²YÃ|Ë\ºº×#8ðÞM{RÇü™)¼=ÞÊT*k7Îûq½´ãótF*~äÁ%XÌô€9|ùOp9?jX™£4ÁIÜTÏòUލâíW`TÈ2¥¢“'åLÄŽ·,ÙìÞSfa’É4 ÍÈ’nûk,æ*¸îÛ9I*X –õëÀ›Ì9³E´Ùþžöe{ù6míÕ©œÄƒ”örq|¦3¼rUhŽÃÕŠË&Ç@ 9n‘¹,D´; ,³¶Ð›¼8@v³0ø ~e¨¾ŠËaÇg ÊZù°òŽ|¸%ÞðÚyŠ×*Þ;qv\L;¹•*Ï<cΕjuË’­èMËÂu9éÃlNë)*ïYsD03gä/ê:s>îµ^/ñŸ÷9œŸr.ž¯:-¾t:1c^N,9ÕâÊ^*Ç—DëlüŽ!80üˆK+×ðÂt©`ñ\7¡0í“ù¨ìª£ήEïk'/È›z+YÉÒWy…R¶ßöôŽz·­$/;#1¤âl‘~M…žYõÌÀpŠ+kp]ÃWyUënû ˆ’×Å œD5G•e–ÙšœÇyi©: çñzs¢nÁôÚ-àŠ‚it%¤^vœ:.`,E ÞÕjÿ—ãÙÞû¸ËPñsk—aØËÄ^v;)nÌ=í~¥΄ÂtJã å,;‡©éþjp•0l–Xݹ¹câèÞ/+¹o×ä±lÁg¿Çl=?ŸÇ¹¼@QTºÛ.H_àmjQ&!¼Þ*Ž–ƒà–èvZ·5C€»fOn»g&ë_»Û©i ÙÃã«ú¼'ñò`ӣߤಕ†5"ö¢Èý³«Oßî…yÜ!X ¡ÎŠ”å L¼@Ô!jq[cb[¼áÅOfö˱WI|û/À¤Ó0¥ £ ï&…£„Av· Æ'®«£Úm¿Œ+‰ö>Üê9_€ ÀnÐy{­îEJ‹M—÷¦žòzž=‘Óƒ÷p ÝR'"—TvˆZZvé/ã°ö@]çàO`)`—£bÑ¢C¨÷îNß¶E–Wš£x{r èHWuvL±óf< ä ‚~Ü[$þ$ñQºv7i {®÷ð®A%å,Íy~ó ^â&;›I½0Âä0›÷´²:ADÂÛ±–œÑ—H H3Àß !ΪÍnܘ×@ÃZ:£gÍÉìÓû—KíÒ«³aœ8Á‹¯èµ¿“÷Èvrœœ:›ÂÎæ©ãì‡y•›3·‡Çúlàêð½Ï¶›ìç´)ÓR{{èô'!{Ä¢ðIU)öŽtÜçåìó£Z™{ï"z¥!§s/wýP*òOWÞ”_‡÷ä)•×þÜûÊazTüö2{:ïèröÔ;÷àS-`e)ð}ø8ÌíÒ€Ôå²q–‹•‡…¶5ál”]…ã[«óˆ·à áÁƉk »{ñn€ ó;ü>˜ UGÐl½Gb§K’aËþ«²È/Äl{·S°o§Å5‡#,èañùc¿KtÖqÚ£h`à:?8ÿ•puZÜûZG7ÎnÕ-¢Äåí”C,îéú$ý6N`éVGgÝ´Û‘{62¿‚xû1Ášœ6µ®ó<,A¾‹ÉŒ=0·8WøöU8ÔÝa Ð)åV%6ƒniû8AA˃˜EÄÞ{á4s8FŠ0:¦T­ìÖ–àÆõß’dk¾”Ý.FÎaáÖ¡æ‹ í¼½È½7ÞuyÑÿ¬°¥>X2‚f²5èæ›à¨ãšy8+ÂéÂãŒØPzUêõ8ÝRD¾·Z¯u?98D޾UЃ¸ækYŠœ)„ã«€½©ÿªØ)»o¡ Þv Ý>Íô ó€,Á°ÓveÛ^µäù"ÞU‘L—°4µûúíÈß •Ax¡i]œEÅ“BQ" §8MáÜc8¼dåÈîásw&½ ޳bg (èÄ0½Ö¯[Gf-˜?[Äàœ[‚J¦†›à‹ÔSÙMcÕ’ÒTn>1¤]ШÆ÷µÑÖ­¾©™=‰„3{ÙÅáΤV ˆÿè ~ zæ|ðíÈ(èhÕ «¨þNZC‹•“£œÝ*ê;ãøpi¶´YWΚ9TÎa¯bÁ/Æç“çN]åÕXZm»4‰_ŠÎ%32!†ƒïl¶ph¯]9ލWÇø êcM×µ›7lF~8²q¯5–ø:ÈïrpI:Šô±uÙñCÖÒ_V¨_¥$ÏÐÆö¬ö܉s‡É ®.¥ô€c²¡oÀq·²‚?g™Õx0+uAx,€Pâ$wWÆ4!‘Í„‰jæWR>èTXßÒúXŸ“«>T À Ç$`¶Ž¿®‡3ïãål¼ëá&©ºã"¼7n«•Ûêh§fv›Û—!„]âx;ŽCà—ÓY\3µ‹«qÖàzß¾yþÅɳCLÊy[S< lÆ%áÀcÁÒ øãPÂ-Šuu«Ã.ñ³«*)Ì+­qÇï4e¡MÒÒe‘™ÚiDŠ­‡:µü‡ù^Ÿóc·×¸*' qcqf R%êÂVy&X)Ñv”ÓédÖ:-ÇÎBó–’WcN§òRVÂS©¢ƒ [Ñ{{VÜä‚éåO¢bÝ¿w[âyõä(«¦Ü€Ÿ*o?lE8 XÙzÈ[9>ܬ$Ùï(c0g)´-Òo+¯úyE[ú¥–•£=ùc>Ï¿{¼¦Å¿öÈM§.€ðÁýË™”ðjû¯å¶rè¨9[¶k6é˜Yƒ‰;YÐQˆ}÷'LT–âpЄñšÁTjB55§çáhm-5††?ç[•ó8mÉœsTÏà±o¹XAñ´|S.ËD‚3ÔZ›mawŽŒ£ ͧòöú!àXœ£:ÃV€oŽQ–©TËF­Â†Nö0œª¬¤xÏžš±lû¸¾¦¦ÍÕt¡˜æË÷Ž®€–+¥Òǃ­°ñ²¹ b‹«¿æ«&g8¾EprÛhˆÖ]+ðÆ윗‰ëe–…_"Z{œš´lVxÒ0­¹WÐö¥wµ„ȪuÚeäÔ ÎÍ×:ÿðíÈXkÕB;çóëçµìnÛcÍÙœt¿mèÅð¦ÅY½m'ƒ`­D=5œ¯äL ÎÂñô'`›w°Øå€Q¢‹ŽO²_5Ä9’׆UûÌÝ ûnœf)ݺ`v9µâmÅñ$ÇM[Ë;E Usk‚w_[‹2Ôã~³úñ…§;ÕÝN0@%Ü9ªžhF…cèÜb kÐ gN/:Õ½¦VÛØõáPÚnç±ò„GÌC–¶ÇÒÏlÞo}ð¨&½Àó­(£f' ƒy«qHÕg:¬%'\O§þxuQSTÊi+£Ã¬“tºmrp(áÜêdL£É—ísÀ:þ㘼]vmB€NŽÓèAÜ­>޹x¶­s A ÷];7ž\ÏÌ«¤Å¯)þ%ôeÐßÖ«n)hWýý±eï ¹¾fÒ¿°t[À C…h–±Zr׃ w6!Ȩ¦ Ý× ÐtŠžBß·%­¾Ue¤Î°},JB9’3aåq±Óù=)hµ‡IQ¬,„ѲjTœËÇ”(»XÖU ØÏÈÑ^!L‹‹9{ï¡Îe›Ãy JPV¨%^à<§]MV´ÛŒÝu ¶3€.åèŽ '±`£ŽŽ&â‘¶ÔÝî$| g°¬Å¢AØ3¤åÁ4ÇÇûââ;ý!¨©:8ÎÿžXêç¤yóŠ>~ãVµ8ú"Xõq'Fôˆ3·âчYm»Uì.áóD&„L“Ão§s!Æžâ¨À7ÖÕÀÈ8ô™¬žŸõ²$;¤îèo[L£· —é¥ÐŠDº69l ïéå™[½L%öËžÍîÓ•‚Üâè¨UH¥—@ç‰0˜kaý;] /ƈñ~Ý{RKNÍþÀv¹ðÀ*¾ÌÅb¹tàëõ\§óýv "ORÝï4a|UglÙôq;· ˆ[ü¬+z9 j™¨ÇÁíÊwmĶٔ¼év÷$oM°É+—{ÝÃ<úÅÂ0¬£$TÃNýh¢3æ€haä=: ñ3g‹ûEêÖ4HÛ#²¬‹¤œÕ³ 01UeTeu†¼S âîN›~d}ôdz‹[wpÆk| x“ÈXŒ gN"0*{%î$Xx‘[…µ/¼¬ÿ}­!Ô×Zð«<ŸÙ>=# 9ÊÊ&¶×ipï©ZiÄ›HÊqð¦KÌ€;ÈÆcçwxœ5 ¯@„s¸¡Ã{ZÏAêå¸ñÉÎd;ãrt1fŽ?”¥ëéÂ_€SÄo{©jÍ)§rx«oõ(}£—7—¹Âkë±7‡w§|Uº»Œ ×nïx±ÛöqÍÙ·ÆÉºk>ÞD>ðŠï†ó ÔÍx•(‡Ã1N<Ý¥ .F9¯?[+$ãÍìM»ªSÌ9~ëP-Á¹À—vöSUñõ]@¤+ª½E«^Ÿ‚¾œèÜXïý9P¹ÑÂyÂPƒ2öªÑâè5÷^+Þ!îÏ $:Ï{àë½*pŠs(E½Ï=謀ó±Dh¤Ü¦V“c\ fÍáq­¢”RP&ó¿y7Ë+Ò˜è–Òæy?v˽÷½ÅI¼gIö=+(tÔRBk Ä”n‰ŽŸ^O‡ z‘0SÂÎ>÷•ð ¬ýÕlg6ỽ÷D@H]4‹óŒì•°ayçømÒO\"ÖœìùyYÔzÁÖ‡Íáx ¾Tu „ï2½%¼¼×$L•ã”9ÄÕgx ÛLó»c+l³OÕ4ƒÓ(ÞUÂk÷õXì½ÉeáÀÊ-T øÁLlNVJÙž¸ðµÙx r»LáÑÁšuB'[g§ÕðJœ¯×Aäw«¥Ã)[°WÀÛ`pÎã<9eÌ=ïZܔݫ6> ˆa*Ð G’ãÊ¢«è'ŽJá=Ô4‚ª´ìfâˆEbܫҕm‘êGƒÕêýÊDöLús €<êjÞó( R\` »Ù˜xA»ËY,Bèüô*/Sj @á)«üEÌHv×{:ïêÁÑÚx‹Ÿ»ì’99oœrÇ:ãE²‚»u1®±‡£¼.P¦‘ˆ¾Ä ¡l§Å yËÐå¾K::KdQ5Ñ&ȲÇÜ:eŸk ì}ËjØooZ8ƒ„X¤”–Ò·íµÉ²Ž‚ãZ@wNƒQ\*)xƒ1U—c8Y]IE¡’SÐùn Xòv*Uå çËÖÂ0m/”‡@N^cþ¢ÑbCyRÒeç·ñ‹VdõCí&+Ý&K£H³ýŒ—NøÊ¹,ŸG‹p‚}ŽOŽýÞ6p4]´-Dc_GNõ¢‡A”U}¸„²•X· Ä`ÛóouXâe5ÍFV¿‚/Ûý¼ÏkÉ4=ÝLJÞìêõlàìt×ì›^³Q'~00Ãp—_3„'õŒuHj9úÏ.ÚÇÇáùù#kô½•ÉžÐ!Å&Èp^PÈÂYÀ =*;Žá½{9‡éÇÕ„®pJp\HœV þ¥ˆ8.‹â0ÎË>°w§WávLÛŠ «¬å >ëPítáû¦Ã@¢_ÊåA§"NÝ«‘èrXm3Guàý«BŠígÃ[½¤¸±|Þ ÞÖÜ#(•8·©aP%@eo…íõRŸàÎÉЃQ7B~®½ 1=¤êUžœKAµË9k~²D¯N9}Â7‘ÌkEKgv£F6¯›âõ÷pÖ¾Ýö8«·fgÕØ40àé qξƗNeövkU/eÉ\¨±Œõ9^õdÁ]âVe,yg)…–¯[ÔæQÕØ‡©è½I+ -Ôbo‡ü켬2r\Pw]·©ïbN!™fò¦yÐUd¶6ÉÙc—RTV^eL4rª1Z$–™R6îð⸚" -)—úT){ÍÛ,‡³FË„gÚòè0§¦žê)sJºZV¦‚8BSÑ8–>¨ë?±áã*‚"Ë»ÛGáçÙ—ÝWpJmb6uWä]]Ã: UIÝÙÙ\éÂòÆ\hæˆS‚S}‹±J˜Äþ—ãâ8–¬TvÁ.¿:8í¸cÐ(âªð&"u™ÃïudY*ͪc© }„…ˆ[X(Û‰ä—éQBvðwsú:$¯( y1¡¡j,dÜîÀ»á*Q GÚ;:Ÿ-9|Ùb”ž…<[0ÆíTW”3|í±QŽoʼn<×›¾¦ì‹6ßáÞW8 ÉËÑÑ츄™p,±Ãy:– ÒËaQÌíuzhŽùu"˜Š½@@† ì¤ÂM2ëûRƒ”“‹´mód}\±WÙÍ9ö¬Ï¿]×.¼(ŽIÀùSnjgâ¹&åæ}´²G ÛZ£vàß6,àœ2ùðžŠW(ÖÙÀäµý èº,nœ¼Ñálj‡'”bò98í"?à]8Eñ“\œzÇ_·u¾Êº¶xšªgokèïaFôŠq ^'²çiq8ÈÞöxÂ@´æ™Z¾w‘¦2é[ ï•×·­vÁQÓðϪ3¨…ÇN2G´–€©·®iŸmÊWi8ÁàЯ›³P7Àòtû¥ßF(½;±i5¯ ù+@æØlÆé©Ã½«#{·Ô”oäÂÖ‡µU÷®ö·âÛ¬iñ‚ÂkFJB¶¢¡æaå…ë|¢š ¸õ{lÉ*|澉µ4oœƒ"ùõ­,b>>Ûfçxˆ¾ôGºFŠ‚ËZ­ås©Gƒ°.f:µ6ƒNVíºú#^ɵø`dWÎùà}–2Ô^çâËz­«§êb„2K7ÏWŠÍþÃü‹ÒOuðGz5qäsìÊd¼ø¡>áË¡ Ó±m°šªœæ÷À›×|lÓÇ;€t(¢[Ki×y)øËSƒCÖIÁLŠÓÕ E N'ßB|°(›°k>ÔüyUzÕ纕S×à%ïx[¶D¥^J‰ÔûƒG³ž8àxÖ´FóÜÓOáHxÀ*ØKó/¾¥`ª:5©„îœô̺8ùNàÌC¼ÇTÙçú@‰ °Jwü2[¢mC^q°ï„ƒz½Õ,Ù!2]7lgZáq)miH4ÃnšÐÏw+üòT‰" ŒÇ†ØWÈëK yó¡à¥wá†F|ˆŠQËÁ œî©4ÜKðtELq¶`uu3ær‡c Ý–ÓY²§ÏÏæmŠyWåo/#^ËH§®î”U\ (mÞõ˜K¥Ÿ=*Ã[¬Ø*Þ'ßj’áT j‘^{Þ¤©¸.ÿbËNÑ›Ýw9ÏúôB<¥"ª“NRSÀ»ò_¯*BlowÚ a*ðºo¸s´vSÁ¢óèús^ |~÷ºÔ`WoD4LêìÇMŽë烊gñÁ×lU—~Kß8À¯B¿·ãÆó<·ºÃ¡=„µÖ™ ”Ç2x‡‰lE‰n!ÂZ j*·uÄ H y¼KIèËñAÙ «* (=ãÝš•¬=¨²ß¬Ž˜xÇŸ¾ÙòNÛ0§ˆT[ohž:X1ÄClô-Ìé»P–˜Ò¶ƒ’R7­Ä[yÐnðq¶@†U‡pT1÷«ØLúiã¶©ÇbS¼« :•ÃC­x,ûöó>qje!”z X_%‹j0^;g³ó5‚ÃÛïh9·7‹ ðÚ†;¨uظL%K_ö—ú(6 r)·9ˆŠšM9Q61MxRà ²¡~¦9JÞä0éo54¦+·Ì1ÎÒÅY¶¾7½œZùS³½]!dµó pÏ"¼CL_õ@í°¶¢˜Ï¹L… q‘b»ØÁi°»¶œÕìrPßÉ¢v(º,ºtJ¤WãÉš8[¸ƒ¥GG|)0oK‡<àwœÇ3 /eÏô§Žp|;%þœõÊ’usò„Þêê n6p ËÖ¤®¡¼ÞL91‰cVæp(°W€ö{ ä´~Ê ŸàÐJŒÉž§q*47íÐ?—e¯ê×z€¬6‚µ8‡£ Mò¥Xžëxùó^PôaG漘chE+Ž.¶ìñVŽk™’gõ½ªì¤`á¿dZáÄçC{ €'¢>>Ô)(ÙR7ÛÏ;²(1mVI$WLÙð5}AûÖ à€ÌK¡ÏW1LJ¨éêe²"^ã kÍpñXªÖTeV*¼õðÎÜ©Êò"GJèlÖ–*¹Ân˜yîˆqlïWuçÝËÓ!FGµê{?Ò5åÊO¨¡¾(D7¬´¡`à•9΂}F楇?X.kzÁÅ ŽqÛJr%‡yM|Ðâ¶U,+7húñbAÙkhkJõ~t°á¥ÞWUÏÛL|¢]¯êÿ^]KË0 ÖÎng$<:i×BP”üP'>Tͽº#Ú<ÜÊÇç x©˜5ŸŠaÍ««jl)áÞèÜŽ [ Ð™Û`SÖ;î2vPÓP¿íŽ"pÄEàÚÌØéeç‰g_xÖñ.%i-ÆK㵸õ¶^!*@ÌÖ f„”lÁÈeëTÛJît´g8ÄÙfPžU`Áœ‚Ù6å.sQTÄAv¯c’Eá6>vlÔ²cJá:@NÒ¶xªJ©­²‹F+¶-k#:+D»þÂþ0Ê£Z”îÝáÜç­¿"ÚÝŽv+^úÄjj(ˆádgÀ¤Ëú¥¦è,€H Àg„êd[G1nMÈ¢jjÕ«˜ã\+¾Êbw«^mæ]‰íu,r@œaÞy•{/ÈÓáTU‘Jk°Ÿ§Ê-€2£Ã½õ¶ð´®v( ¾OÉÞ›%¡bÑY ¼Ñk‰|ØvU»ª…#ØD%”]VZŽ“´ù¾°‰ƒc9+ž9XÞÙôï–D²øˆÖÝÓi½rÌ{vÕpäÏØ:-cGüÇ X¬«ÃwÁ-Vä±ç$œ^)¼z˜­¾°°84?¦àK0ÓTÚ Ó‹½†ÍjbkÖ ~Ùû¹}9ðŽÃrÕµ‘S“ð­Dû<Þýa—úð¼HÉ‘íUãÎà¨Å{°¼ë5ö]íù¶@©¼ò€yNØxaÑîn®È,JÞÛåUÕ®aA,2À=ì ñ]ÉObÅ!QW>;* Ôcê@¢wIêÑ@HÝRtÞ†Ü1²ñë%&'p[‹­WI¨©B´ÝÖÎRË›;ãùaïßQs²mæàô§›˜i+ŽU1ïl> ÚaƒË)»oˆØGÕ(H1!'YÞ¦òÕÐ;¾4X hI"¡å1á÷òã{ž!±!ž07ËÞo´µ§| ‡ÉcµKáhO|Es`v7'…4Õy‹é€†ú²VàOõ-—íÔ@ƒ¦âôµ.%>_Æ~¼Äy‰ž{2Š:NœÁû8ƒÅ'Ä“ÈqvÄÞ¥ú%ÛÐ " Þïq¦ 9åÓfFÌjÎa ªá“b£NA\ë1m¨–дU»³Zj•.K›h+™ŽO¼¹»u÷NÃïâ-ÎÌ8 uŽÚe/ˆs8C–xÇ#B4l\ø”[p¤…mŠûM{”!Ç…G–pÚÓ#ýâa ÅÊÅ{©Æy=8)lUIJÏÂ6u¶Í±«¨kºãð¾¢N'îðTŒÇkù¨²¢õËfŠ-Ö$[ÁªÂb·ì3=Ê›ÏÝÇýr¬§Î5Øx« u ‡¢¯ª¾V?œœìÇp90zw¹z½Êÿ%«ËUœŸSaÕZžê­ÜExc7/ÔDìÎ>“Òb4N…ÁÞŽ|õœ‡ñ²³¥:®kxÐÞç8CŽÉã©;Uõayeçáí ŒSi,//ÕæCvCgƒØºÃ:µÛëMËøEÎ¥E€,µ“ƒs;—QõYé2¨^ábëk8œñXÊT?¶¥„°Ô÷\,¶jeÅß¹ÃDlgYBÑë È€O/Ëx‚b»n8ƒxáT'Eù‡™a5òxši¨×J·wDpöN\5ß9óé<–g&ÝÓC{J,ÏGO~âfMwÀÝXåG½¿¡Üd°çÏe ãÍWGžX‰ê¶Ò ^ààÀÄVô¿ NÅçO‹^1 Ö¢²ºNî¼×:¬ ã{n'vaÁéåï»/0p®ž§KÍõyš<ž0ƒöB1qžàà4ŽyµuÈ8@ö’á”Ò´IÌo]AˆXö¶Ëö”ì2ç"Eø‚g+ÿ{ æ«ßìœëdk¡z^sêßw‹zˆfþb¥,òêJ¡ÈSëèOLáæµngñ@bƒ¨ñq&A&Š`*˦cšÛv_-f?@?Ö ðÕ—7¥qkd÷é\*;ÛpˆeÜØ­ò±H$ËaŠ©%ëR-ÊXÍŠRÍ1ª—u¹{µO=ïé5–amÕà åQ‚cš~³áÝa“6šƒTÞnOj·aãuŠOöÂå¼l\¾Tü,ö;uñ··úO”Ÿ6§:§ŽÕ| ðu¶L`,Öµû1h€#ÀõpŠÂ…‹ Ž=€¸Oñ£,Ć>ç=æiwHß”,³{Ö«‹WÇÖ–,|Äk:B‡³1ñìvøÅ0îaÌN`vVwÆî‰T­<›y Ê"¾ÀØPIJæÆ5B|q†ƒ‰õª\t< ?ÀÁ³¬ãYÏQžµ;×ÁØ;ŽÌ°i>¨KÿÚ#dð¶î:[ÝöB¹Ê¾÷q׺Bɇ‚Çé¥D¯­XŒOã3-9(^Ø&'A@ü¯×Ò.~Ö™¡¯Þ &¼³Lªœã~ÁiÓ …¬ÿÂY« Ú€>_ü8ÏHÍåLÔºTLJíCDriSËb’—àq[ë†uG°ô^LÁ[½Îæåñ¸Ä›§Lu꽫ž±éuLÒ9˜«VhûòОN-¨ï­Ì³* „š[å˜×±S°rˆlÆîÅuaõo/|<®âˆ#gtUŽrÂö“™A¹³—¡Áá%&a,½]]gH\c‰é³‹Ú«-¹*¦â\0ìËikUÜÏ>Ù™tÓL)îNð¥*u±ÅË%\HÊ{p@Ëìai*%ë~â¬×Q¼œæÁî¯[‰–[náÍwþ[®˜:P»©ëÊzúÔDæL_·Šåýhªú× @ŸÞg^ãnÍ[¼h²^ØVÿ=N <‡C„TqBûã˜f÷ºÉÔíqâ­L>|ÔÞl‹Š*«Ya%»ùq½pª;á館bù¸tLïÔ›Ön¼}ë—îÌü«(sÓ1öÛ›þ˜²®Žj71ˆ[xÚw³m#;^ bY1ׇïŸU–ù;¢s03zZøÝ¢°WÛsM9Ô’]¨ó†]äv[• |W'á•IÍ‹%eÃS›~F`áíáb?šNg|îM°5›M'JÖÛ›>ÀÛ(sdÑ‚(l)î^äÍøD§€²§ÞF÷äœ5 j6{X"¬–bP󲲿TÑ%\Yªvn%Åa ¹¦ÑìˆkÛVˆP_ìýW ?d"È0±™7|._~”I÷äñæDFk¤»™£¿¸Uñíu·@Ýzï}s/⩌ðDgã0´Sk‡¢™dZjšb¬üïó>Ê%cÞö# v¨ÂÇÃxFÆÅ kÖKq†±ûÀzø‹(o°@sßM±ìCa3í„î=>v"}³ ‘•8æiÀ¶¿Ž;¡*oö{kž+µë}¢i/Ëb8ÖмÕ#jAd ,ö¸aˆÑ\;¬ªT.¯|¦æÓ”XwDn* Õ½ÐÅ3T,äå<ˆeëUÊ7IØÇ×Þv6hh”±ýj'~lWÖ;ž'±c–b—Ó^ ¨oÝb‰V#îyPÎ:œðA¥‹øí"à$[,8£VˆÙÂ1YV± dçsªš­v†uüùâUØ‘Êvñ÷D=ïñíyÂÅ.ƒ¯ùžTóQ÷ïZ·½ÇU‚ãl¬-f;2‹Ç+ó6xöÔîXÛìðÞ}fÉZÝ h¾î‚m¸Ô£xºó ›þòAㆀ¼pXÏ.ŸäánÑû½|ÃÁá׌¢„i/¯»]ð>½3²ªÀÙ…V@ñã?&Wì Y.•ö³£%KrJ;4TeÍÎo¤H˜q²?D ñŽ{(î!¾žÅzóJö*§Àëáw†´K´|õîôø&*‚Àa fþu8úØT%d"ÜËsó²ðõ¶ÄV±#¥Ã5Z[þå©a)ÎrD˜šðx.üð\Î2è¸óív„àÏåõ9|±ì–GÙ­yšðöûX U¨±S“]TN¹¤yœz‡éŒøä<¨3AK^“çÖë¿Þï{K¾âsØQîÝ#k]ç®”ÊVéÒ1x5¼3¤õaïà\—ŠÝVÏÖõâ¸Aˆ—†q# tó|ÎË{ä”õ÷Ú÷t_VðÚCW‚þXH}àO¬öÀU8Ö¸ÂÜ0oí¿þÂtk¿ÕX#V”MÊÙ}3?˜2ÁEþ bòj¦Ž8yv'Bh5Œ[8t'ã¶Û „%Úðk#-+y\Bòª¬oµÚÔ„·ùlù©y«jõ%þ|y±wl_Õ½)úÚž¯–{WãQJÈh¿:¨_éŸ[‡ Õ4Ÿ ðÄyÓô\æQÙÍïá¥GÊ®¨Lá4à´e½­Oº jíq¬ËÏ™'Å-úÞOÈ ¯ã1×úìæ¨Ó¬nöß’Þˆ_ÀlàÈÎl6 œuýÝ*~ÂáeJµzÂ5‚V].Îtp QÓ²}ütÐ|›úŠDTRožœyÀØå“×9õ–lgHŽM_¶h«1ƒñz¿ˆt¼Ï"`/0‡:U!Žƒ˜›¦zÖü¢SÊ­;Q¡ôÍO¥Óå ƒ²§Ízõ7,*cáˆöì¹ ª+6šû®\“¬sZœê¶Ø™iR?†îˆ‡àLÉtœVþÂiÎìL¼aŸ¢3]µ/`yOÅ»Ü*ÝÀÆ-ùí^õ«Nö2YÈûš§÷Æpövï¬!ï€ÝvNÁ3ìtd³uM [{À|G·³±˜Ž{z?-¢.——ú>]Ñée½qÜwá/$ÇaåUQôz8skÑAQî~(ì Œµ®yÖh-e¾oEËê ðå[SaïªM¼ŸõP£ËiÆÎÓI íaÏN4¾ÕHN°@Õ¶43šŽ­0ÛkÒbæÃ6âÓ4íåˆ û˜L}¯R{<ƒ­0… à^¥4X ¯a÷DçŽÅâ”ÎvxGT–Á„a”Äõå-&©¹b»º2ýªM‚L¶ Þ Àh—“§8‰;iÚ\ š¯åüÊejtVˆñ†ÀÕÍ4–ô4[4y%¯ô®å•SpÐU€ }†Ùð‹3© ¸ÕêàiG‹Î¤Ä×sñ²Õ.„¬îpÎŽjû°§©öˆüb5öžl?!6A¡®­m[õórF³EË «tq]¹*´ƒŠ)j¨u8wIeC`µƒP¦7e@…p”ƒÂà'¹²ÓVm«áE;ÐÀ Øì²"ÉqP[ò£(6×Ì„ñ¸(f*l_íØ@a΢ŒÄêÌÈ9´åsdý(@1ÁÇýžá|@k' A(âwY6Y6¥yXÄó~ž¿ ¸pèÁõ˜àÄëóFëâv³UÝG!P³H?k‡ŽÑTŒ…È:4Ó½/"ÂÀ(íîàÍbñ'lóa‘ì:/—KÎ{üÔ§SxÏû݃ ;D¡„ÛJw³>;;5©7Ùóý¶=×ÀòŠ0¹b†d:¦èã€@~ó4¾d²«µÏ79½ÓC©ÄþÞ¹ºØ›cÚ¼}fÐ3:@R…ñžÜ@ $Š…P᱀蜭Ók; ¤·Èš¥,5æt[ÐM&ñc¦3œÖ£Œ¿åŠIM– ‚ÝgÕ;îñìF%‹Ä,(°òØDü ~•t ¨ôª/¥pœœ‹ÄžÑ /[ˆe(, Q&x‘fÍgÙâ®rã8î_Щ/ZÜ#)ok¥9릲xd0Ò´˜ ®ÄÊöbÈ·)ªŽÚXÁÕ!KN‘Æn†GÍÍ4šší{T†³à_h[Øó`Ú¾ª2JáÐyóÎ8gèå«Ð°xÃ& §-ÆK2¼Z÷î€õ»÷D ٭݇Çþ"y΄¥R ÊG J·šïž•{¿q+Í=‰Ùß3{ ;í®±û¼³²akp(¬ƒ'@òiß›C/Öf^ÌKç>6)ßzZPÙ¶„°*éȉ}p‰Åö.ï².g=L§Ñ«ŽgûcoGØ`éàtÖ © ò–-Ê©â1lHá+j!^ÛÎÎIGÜÔñ ö%¼°Ýaï#а•œbÕÇ2Í@ªœr;žÇëeh[ ÉËuˆÚ¥S‹`É'©tâ<Ó×ÑOìAV†<ïugì(ÈSËé,.İl…bx­$FóÙ`êr NŒ›x™ã’$«¤”äûñÚ"ï+ê7'Œ4Èbå{+ðä`5è"o·Á AŒÿu8¡í GWkÁùH—MݰO8ÙãýL·FàóM/kè<ã¤~ò¤öæáú¬ÑwøŽmÂåËÙ@·*l þ´ÚXÀ#<ô«f†uØhÀz(XÄƆ³°9a4Ë(x ·0ŽqìéÈűlßT¥…Ó`YÙÃ!{ÜU ìGÞ‚Ìo3Ž×­Ñ&O6–H¼nh(b·ÓEç…jw<ö×a@ÎŽ²€X/gEŸ^ßy€ ­J žõ`D&ʶåâo… 8oÏsíhJ…cs°Öi©¤|.…#Á¹ñ6¡ADUÿn‡]Eê&pTêsvÌw¼œœÊƱN矚KLZ…LïNE»y…SI£ÄÏC³@DâõºzßÓ·Ï×?Ž¼Ãž¢qÛqë”õå|REUuÊvm{ÕgÅYªE=‰ùÞ/‡oÏ¢lX挃YŠ}•~pò'ØÙ "¡#Ô>¦iV1³0#ܘ5¾“¿¶Ñ$©§·ÙQ«ƒ]•Æ;¯^‚ípR ¦b2 Òs] KÆ0ø%/èE×ërÕt‹F"âe§R‘çŒZôÆ ^>S&ø=Ó Òý_…RGSÜÕÒ¸ªø^M§™J/%ÃT×þÈ<.¼œw¿‡9+…áilÞçíÆ _᪅ö¶¬ÝâÄ÷Xcì:$ÞG±ø ¦o%ï1stž}tô‰óo7#qfw؃#¸ågÎ Ø[ásM¶r«)Xõ~‰Öoš­h `‚g½]ÿ‹Ï_^›†«àøpâ3e)ÛA\J¶_&ïLJxUiË* ³,\ùìæŸÛ®µ³ªæ÷ é`5ùqÙkŸºŠ‡ŽK54°’Ý4ì–‚ '¦Ô½òŠìÑuäT-÷¨‹T•i. xÛM z@ ÿ ^o–Èèª,{²!Z™ð2¦41Ëyš„î.gš E­mo5ËB¸X^aÛNŽOzDGRN®W oôàç!íÂ'â‡,áÀ©/…O#a¤ ª4¡vx© D÷îò´A6‚«R>'ñt©ÍÉΟ bñ-ÃßÒ,FR\ùG³¥ù¸`«,'¼ãÆ9ö(f`‚:Øûvá ,ìÅþ ~j>ö›Z´Üi›v ïêWûä€Àb½Á©ÜÀÞ@©Û•¿&Ãl§¹ì^VÃuíS. —D’0@e¨ñØ,¢âÛ•£$€â4,h±\hÿòÐï#mú×íÏñ…»…:6bqp„Ê õržÝ@7®Yáià‘OÅlUƒ c­j¿c!©n•`Þ,îØ…ö”ûP—ÃÆlÊÂŽxºÕ±5Æéõ΋ló:fø Çã@–HX *à[6§Blæ%àÉ£ ‹V¾½í’>« ½ Ÿ¦ö.Æ{ ½¾<²˜0çê`‹ØØ (Ö«º]—\0° >øí£Øâ™^¼91hSnÛøÌ³Úïc»VJv¦Ý{Bï,6B™$GŠ_]Îg[¦4ÚvIpmqF̱ïDkh+Ýõj“÷ªhýüùìJ;w¼~]T!uÆï ß.G'ü>Þ±Bw/œxl “²g.'#G}8åÇG»ž}½j9.+«„™»£ÑËy…±gÖU¸ÃéÍûݳÕJ×#½EÕlÖU­zuXÀl¾*ÍkÏ x[¸¸¬Ùñäœv/—ˆBÓöMpCúCa¼.ÀÞO—²çЧ[E¥×†G³;D¢'ï²jåÞX¢š²{$t{³±GÍÀ'èüt`’Õ‹CmŒ_ÀX¥ÖG\Á–, \<Ç”ÿlMú‹Ý šÏÓ±ë¶,ñ šƒ°+kgWâa“MÞÃê@Ú„;bQ¹öîg&lá›aŸ'«Ø@2†óÀ<û~îòR<3Zsåá¼ÃÙ--¹›¿k5áäÕHÖ¸Má ¼ èÑ_z[00ì±ï^óÝ_Tùïî”]ê§¢´ª%91øÆ­®tX÷$„ƒ"´ ïáò>÷¬æë´€ýÚ( ÞÓ!T gVîâ=å01ÜVw±íc>!ê¦Ø–*AËÉÃwh·7ɳ¨äÀ ø‘wÚô›¦Q·ÒŽ&Rê6xEÉ\Æi§Z€ñ $|ŽÂà+ÝùÀe9hBaÂn%”úëº-¬«®wî&8SæÃ‰õåA)jsÿ÷zŽW5K¯Ž‹¥ž^¤Ø6cmæé`ˆSû:@sEõp>ÓŠbUÞ!ýD)[‘’%±¥‡Ín–ïrzÆç>Iù8¹Ò"± ¦¸Äp^#Ù,ñv‹¸q¶3›¢%hK FUêUumÊü˜É}EÀÐyL™G€Ÿ CK|®+¨vÜdë3õžU4¸y“cX@wÙùº ‡tØ9à%½5FÓ]À|VaßÇ€ót:oùzËZ.ƒÙ‡ù»çÀ> ÕÎ5²Ñ › d˜?çK¥p—©2Ńñ)>Q_Ûl“Qß¹ŸæÇ9uœ „ÿ˜ƒ:Zb±‹rÎGqšàƒ³jž-pK$ Kou¤|ÇlZœÇ¶n<žð4ÛÞY‚œiet[ùH¥ Wk,³2±øƒçÜü9é²ré­Ú÷sÇ“³¯²Ž…Çl7G©Ö †d«fÐe_Û¼.@Íùðàæ‡ï3GœM|!ý`9Bܺœœ×œ$€#$„šd¥g>Á‰¯³èpHwlö*¶%Dåf°­+$¶ìÚLuº›åðxK5›Òu,›D¼tìIÄÖ@ïΩ°xÕ:åÓú(ÏÞ=mï}8Ÿèµ;Ûû€è|&6X(Ͼû,v=;ÄÊûžª•/±&o[CÓlNšÉI.PoÖL *5ÖT÷¯Ë+0œ·ø¾Õ»K…Ô­ÂËf KV¯^ YßeÙ°üÜ¥EÁc6¦$ÑIÙœVní­ sdÚàíìlâTNÇâÎ\‰Áü_i®6ž]™Ùü{ÏOhíûÙùVxg|Ù)­ëÚjBÃ:Õ©v¿Ÿ¹‘òd$;\¼™ Žèž Ë? À˜Ãà\vá†M óþ¤Ùc·öô Øjø,<ÐL ÔÀ×u¨›kñt±€àÊ@ ¾#·B–x˜™b „ð¨B7ç&Ö=w½X}u8e”nÂõ܃S–i]~Á÷ê3Š@óÓÉ,©£âTI±¬½K!]mn}ɹ²âA "ÜlaC8H(0™áyTlû,Êo ?Ïí·±îqLýÔú•²†rî»ö÷Œv6I¾»C RPw„b «ú>é²ÊÕ¼³sÞ½Èñ½ì+"8óᢷÅÕùó^p—t(‚—mŠrÀ[TúQìÇQóg½o«ÓŸ ¼mȵ*=ì™E* L+lŽÛôˆ×.âÊë`;/sª.w_™lãu˜“y6³«}x÷¬*Zñ>Xk îÚB—bª§¯ï`AÅÁÕ§Ë©Ø2Ìi·Ë¶Öê<#‹²Ça½zƒÃ«<>Æ>]En{Ó£*-þ³6ô˜‘d¹”2à·l=–jê|ì½Kþ/µ”µs’lØr¸¦r+¹”÷ç%ƒ‘‹¤2ùá‚ù—©­,G±8¶m!La©»¹L¨è‡¿7‰¬djðBͽ=ì–%$zo5Mغ# ojKŸ¶ôäó:ÛòʸÑD(àn0_W8†ÊŒ6%'KÄpql怛k¶A·§%¦XOeSX÷ Ky½¡¶œN"ü<]©ðBón; ÊY˜Á]&žJÙÀe¶÷tËÅf%Œe’‘ÛRÊRèY›¶vªWªÅ(P„£=›_PÇn5ža¥X<+$mÇ_N-2íš%šJ]âg`LXÖûÇ!4>üwY%ÎÙ{Ùª—ba‹–øW¢Ã†Ï NÙÀá.“ÞÏÓ‹ÁüÝ·]@:VZÓéCmÞˆ€åAoÑ ŽÜÈvJª’#3¦ÜëïÁˆ§BÍ Ûw;p@ÞúfVˆ/þd)DS=Ä80΂ÝKV†5v§²²q ÂId,x¶ÒzÁ1µyÕÇ0³Ümì¶k%ZÒ ‰÷Ö½sí«,›-8¶GÃ)?²’ :bƒ»´·CM‹rüO`÷¼ù³)&èÎ1Õû¢‡yQ޵ºN{€˜”ú}v›öÖ­ñJMípUM­DµU@aD¥ñ}ù~+„Æ#x«,½WߊwH[ò8) iZhállLê¢kU[‡c=Ú꽚ÚP¹î"$Ü}wí›-¬ÃÒ²“Ií½u2áò"PUár€#!Ööl/ÓÐìêewWwF]³§8]˜€Ð«ýjÞë¤Ýµ„ïëEydü¨÷ýoõ²3R,Wa<¸Z6x(‘ ÀýBD7›¡ØB ¼æÑù\»Q9L)ZžiM"/µ;;†ù%³iË.Ï¢r¢S $Ÿµ¾ïû>ÎÇæžóí[ø ƒœŸÎ9yñ{&Ð5>UûMΜ‰ÚY5…X ·ÞÁZìSÏÅjd«-ËͦٛÝ8œß4œÄŒ§­âr9mªMã`Ýž1q¸H{\¬R‹É±¨×:ì«æŸ€¶Ðˆ§CDNØ8MÍuÇÖ ëqãŽÆÅqÀÛt=8ÖÓü|È— ÉáÆ wÉ$8ÿIÝXéÐ!8 Èê`N°)9TS·´î´E™RÒQ\Zdh*©T<Œ©×kªåQÏk£«kqãØ^Û>W˜©ã •òOv”¤œa:”Ç ÛG¼’õ1§5©E.0v9Z(±Ÿ¬X5¼}†¹½Sº¶a ]kf$Oð$&ÀirNÚ­æNjЈC- Çå:í]E½àHÁüªÒZÖ켯Â%¦Fxûk B¹³…„6‡ #ø)V6UsÃAÚæ?Ô |‚XU€–íÒM =¯EÂ#Ûa©VóÍî °](Ï»pÄáµ2ZEu¾×ìlû½˜eÕä¼65q.«bö¸¯w×ÌÈÞƒE'Ö[t½Eã^Õ>ÕÃv‚‘7Ц ëöŠ óÛ¸Ûu[­ˆ¡§OST—€ÁŽ°á¼£pÉŠñ6Äï8±Y[³³‹g-ʾêñvS£Š¯«Êèlçar¦©ÄsrX rŸA¥ï5§g–åïÒ& ‘Šä§:-žÀ\œ¡Þî5Ù »X6ñÞœÜ~Ô1ìgÇåð]8%%e¯0‘¡þÎû(Ï{¿à³˜.ÆJ[•غcWƒZn眘×ëHönãlVý¿ZK©–Ût${ÌIuÝ›vfß²ÈðUdqè% Ùâ„ÇYÒöì›íV”´¿2ß¼‹$•çR­âˆ*Þ B›ÔðË&©zs"‚‰3gÁè¯XÌ2³­§º¡[9æXÞ Æòàd%Já¶iKhZ˜¬2^ŒØ¦$£òÜ |di2aBir"#†AUïçºbõÞØfg3ï³;@7Vá!Lí1xˆSßÓ›ŸÃ&h|ñk%cLNT¹N»6Š|"Y)ßÚùÕk$V“×uêqpnÎjG+}­ˆ p~ݪ[fôØRùcù›s<ÒP}Z Ä6Ρ<ÅMDŒ¶ Xa~zÒÕþn5ñæþoKþ-jÌûÌü]~ê¡ìñkÝ ú8^‡f#NõUd‡s‚9óÁ§*ð3¬†¾³W%:ÀGsìÏS€aœ×ÛkÓÐ^°¯c·‰¦X©WÔ&Å^¥ˆÔù&’ó€±9Ä¢[l“*«úÔ8úêELrº8´4mÕ79wR[È>WÛæ0ü<ÂuW €>œ€YìÐê;¼^W:~ü^΢±x(Ì&Æl .ܦ°pns°|Ìéd¦-¢cÂNõè«”r(è‹g˜>¶ß¿iL·phóöBuŽåy™Øz÷"û—†0 ›±.¸G[˜CäXma XÔe{õqœVUºíB§ÃÀ½Fî[ô¨¿ B|q~qeþžGÂò½¹'ÅÁ’!­œ·Í[N³ÇZ̾]yƒa¸»7ˆˆ¼^ÓPÝþ(êf^Â)g& G8܆dXƒ“.Åe©>,d™íÎÁ`÷{pœ£§­õsZþõDDÁïðŽàF8öÊ]$aõš§:DÕö=s{…àˆKvp„Ï×ZsÎàí¨>x/§pâ·¯w÷}?8¾ŸI`ÆÝÎ:Õä¦:QXgÊ®JâNwË£c$Š-NÊ?—夿H`øO|®ÃÖ™Ö½n3ýìt{eœœ€É9°—Í${½£©+›•£²yãmJ,Ùu8×Úq*Ø#…%;’¬É5AÐ[ó¼P¦SñÚKs²Í+¦iÏë Ðå4hëŒÉ*½bî!]6½8€½Û÷`ÄŪ>J±Àˆ‘^â¸MÅX¾RÁ9¬²ìâ3EÝ9çm-Ê]œYšq|”¤”Ö®0PÛðx;ËFPðoß¿AC°I3x"ËoM;Ì>>‡ÍLÁëD\C?YåÇñ¿Ìõ ŒâÁ?e™œ¡ŒPw›‚g,lÇ#¡²µ#Ö¡wgg>ª$X5ëˆÆÀÁÇWÓ´N$s–jŸgv"óuì| ”r$…‰ßœšÌ—Öd_Í¢5§ÑÞ÷–¿mÎOñ,XÊ V¾u xTÅܲÎêZ¦bcÛÐv-ÔP(Ù]©jÛ§€;ï–W½•³@®¤ê&¹+©¨“ÏêàÀ¨x¶'e©iê­Ï<ÂÚƒ¡g4ÍfqÐ.né»4æÜ‰äˆ{°öÁ™K}#GŽ«é1°ƒlÍÄXM€[ìåñ^…:‘óÂÑß{8^®8±…GŽWºþå Öž¬ž$øó}2@Y°šp _S×à±òÌÉPz¾ÌQž`åÙg†[Ç3RvˆØsñêÎ>^®.Ç­*þƒr¢@Q†8“æÇ«;Ä\¦«ý|w¹ÈÍQTeîò*!q¨ç¾rJvJÅ­r(›ó¯uàM’‘ 3†ª×L€¾ç²Úœ'žê‰ƒmÁ2Nwcqj±‰IÉåÛ1½¯Nõ²¿"©ªdÝ`à ®#0(’òÆ`/^âH•çe?ЩžD‹ƒrà뚊íÁÀ_NÚ&­Œ{Ÿà_ïO»ÓÁÔÝò½ÕjÅþ;Ç™ÿˆg@Æ:wõª…yYíÝRñ6ÿ¼ÿüëüÏñ_~ýñ‹ïüö§_|ÿ¿¿ökó›¯Ö·ßüøìÿüÓ7þËï|øÃO?ýÓŸýðß~óû¿Õ¿ýú«ã×þôǿվúöO?ú÷¿þÞÏ|à/>åýþã?~úö›ñÅçß|üêÃøøå‡”>zžã×>¼ß~÷×ßúó¿øñïÿ‡÷'¿ñoþÍoþòOü‘ú×ó7üæŸþü›ÿ ÿð—¿þö»Ÿ~üæG>âŸü‹üñã‡ÿâã‡?ûôõÇï¿ý£ÿø{ø»~ýwÿð?|øÝß|üþ‹¯?üÑÏþôëO_~øýO_~ü懿ñáϾýþÃןÿå×ß~óÕ'_퇟ðYí‡_|øá»_~â×>þÕ—¿ó¯~óÃw¿ÿé§~àŸ?|úáßÿÅ7?²?~ûáÓ7_~ý³¯|þüϾÝôÝ÷ßò?åïø°?úö‡øòûOßýøoý£±>?çñÅ~÷Ÿøëßþ?ùÕ·_þÌWÚÇÇð·?~ñé›>üøñ¯~ô»þô㇯>ýðÝ×_ü5ß͇}÷ý§ý?ûáÓ7þË'øÍßüó/¾ÿêë?üÀÇðÙ®Î/ßóÃßzû/¾ûîë¿Þ¿ýíþ©_<çøøõŸý‚Æw~ù#ß¿­¡üÞ7öí‡>ÿùW?ûîoþî/?~¿è×µ™ßà!¾øêÛo¾þë_}ü³ã·ÿðÛùÊ¿þOÛåŸüËmò¿Àÿ‹lð¿Èöþó6÷W÷èoâîyþÕ^?ûúë?üâ§Àgóóí‡ßÿ ù{?ûÅO?}ý×ÿÀOÿêþÉÇÏOø}ÈïýøËоùs¶"ü$|þÃO?¬Oõñ«?úôã—ñáϾøš5Úþ¾ùêã÷_úæ#{¹—ñÃoÅ~åïþý_|úòûÆE¿>ÿÕÇo¾úÕ'g{ösÿö¯ºÑý×Ävÿøïÿú;žèç/ðß~õ‹ñ—{ÿö¯>ü—ß:ó‡ßb~¸kü¼ý¯ÿÀ×쉿ü÷?øâÇï?ýÕ‡ÿ/ïâ~ãŸÿß/ÿí?ýÊÇÌo¾üö+Íãü⛯°¨_üýåϾÿžÜ‡œ7ý›ß¶ýñã_}üÒÛû^&ŽÍ#ª¸ ¬:ûæ"ïí„« ¾úSɯÒNAzzm¥ùš…•Ý ™”Fí¯~{5·L¥:×:[?¯*ÇeJkÁŠ¡ˆ1¼ñ¾ßT޾e >ÕI9=àE0ñ D•í—½jJk‚ÅÕ¥Ú…¼EðÇ:Àê-ß9x­9·è=¤à®=JÜ9 ^ŠÎ— åËíÃÇ3™õ¢Tµt8hªK] ¡ÁŒeËÓª’{K–¡•:Öë8£JE“ ²ñ3³YáQÜ l ‹MÿjÉàTuBqœ¦铚Šó0EGÅÈX„ØêHZ·KO'ÓYc•WG=—bͦi†Ya–ãÊÁþ;Lïb÷{·µª¬ªd¯õÜðQ`}Ÿ©Æ®¬æÝG‚«S³†ÍòÖl‚ÝÛ1í"|‡mAa:/¨:Jž m73v;<Æþ¨Ñ®Ò~…Ê;UnX÷QGv¸­²O ,­E@·}‚å'ÉÖ?*LÜbxAPXÏÓ¥aÌ ¸*í⸱;1”­þ<[RN©iÇôf;kØ¥PlXU$xO‘¼Ë¡=ϰc®V‡Goihø“JO}ä4±i좿–2Ù²»n5h´pLlË’>“YÞfï³Ã1‚ó^¬“RËâ-Wr(k~ƒa{„R/f¼]Šš2 nšµ|£ó<Þ³™tVˆiµÛô¨ÜFQ8.A‡`iËsûv2”»#ö”Üì[+ùµèÕËÐaϨ¥ÙÓË™à ggA{®’Û‘¬$ŒíM1ª¢\€Cfåëã´Gí²VéᾆM³ÜßrÜ÷|ý#®|îÑe…Õ‘¦zLðô´ÙÍ™¼¨ x9N‰—J×ud5mÛ£lziÍ ¸¼iĘ!ÀOØ#)­D±âú²TŒH„‡pbú{·u´zÚáÁ´y«Ô ž¼ìY·Y‹´K»ªe¯„[ú0EfÛ G±-¹4G*9î—jÛØ[y yo ËŽÚƒæ>Ê`:6ÿbukKû2v¿÷‚Q[¹7•~2Ç'a!ë¬Éªý© O U¿”;¾‡³£M„Ú³á”Q§UXGÞØþë\Ëa†*€°‹Ï»ïæõT{4êkçéÁ‘`M½ïR¥Q;Na þ¹Xž¶ZÆdzӢظ7"òŸO§6ÂŒËæû‘s—­Ü ßô(¯qĜӂn*}‡ò_vÍ:59G¶ñÊ+¿×›û<«¦±”“²(¡ªOµö!¦Á®Ÿ}Åø…:øŒ˜ëq;¹þÆÞø•Uò™Ý:[›­Þ§Õ.¢2m[‚ï]ö^YG;Ãi[d¶Æ/1,ãšÝƒ˜±‰×6U'Š¦Ý€3ïê\’j†èQÉTs†ßžœ?¿gÙè¢þ¾‹7Šc±á÷Ë«awǽlãšã9_–3¾×É4ëoƒc%kgC¬"ïó±.wï-ú­¯[™Õá—õ68vfŽ]Pk¹°zSƒ½.‡¡ÖÛRu3²CQ=ç¥ÝJZØmj-Mè·ý×ù9Ô‹à{VSÛÎûÛá¥à£‚Ó9ãØœ¹…K-’k: \Q‡ÇŒ§— ùÀ~Lóp¼{î©™l«{,Œ³6ºÙm­ò+G‚­\W÷cil£5nÞ+–8b·¡·ç ±‡7|a±XG}-Û¿R6)…žüJš‰Ãă×]eh¯t·J“'wV®Òù ˜ö³=GÙKcü<®—?«½õÈöòk·Ù2òdO˜a„ÍÍû*È|¦C< ÚŽAðMœ¦{Ü{0g-3ò`Ó€”×Û/rlgsÚfuCW娩ÇÍE«;×±kÝxþªþ¿êÃC<ìÅñ·EѰëþûG<Øã¢`ûÍýˆZís7ÜmáR‡UWðÚQÍzW޽~KÍ·ÚŒ ƒàz5[Odî ?K.Âg½ ì©Ùz§ Ï­vk=hTXÎqAD:B!^®ok?Ø,`»Mã:9Ûª«ØèèÜ¥Ë[jöXWÄÙ³µÃLÛ]ÒÔ8zuUâ¢â4à7¥ n'&½Ób¾NTÖißLNjÕÙNʲ_k+âªháÈßÛ™·¢Ä®²<7X|ø;âð§×©J{9ŠÃðŒ,5;騱P¸œ—cëíÞ­ê(Ø·t?ú‘`¦Œ‘‡¨¤ë²xÍÑ“%·Q€=:à|#aÁY­7³ÝÁßÊUy#¢:V³#Û¹ãAñ'‘,­h–¿øBÀfw:ü}b&{òAÚÐϦr p‚ã½8„øåM$hÖ@”îq¾€2.[J¥=JÈqâ.' §#Íc9'¡¾Ó|¦à§ÌWâ8±^÷õñ ÕM]e¿XiWÛ6×ïÑ-çŸ0àtp’"Ç9é`<¼PqÐÝ |º˜AÈÇòA {ž¨ó8WôÆùœjw+ÃzSX!W>ñMý´ t›ÝÖ^ĪGääwþþ®£,aY^ÉG‹[Ât6[h>–褖ål+Öÿ]al½£px‘p:„·?œîfMÂÎÌÏGñZΈ7°t†ÝÅaÒßÃXí[Љç­Ñ‹0 ×9röÒ[)FT-Š ^-SïD@kÓ´aO¬Gpv°’ƒÄŽü¨¸QÛÂnyr;ùIž)î¡ÂÊ]öK(@è ÞVâQ·t˜÷²|º°ïÌYŸÉŽ„ËHšÿ|{ÅàŒfèaþå£U^h–G鼑'ÿs9xZíæ5óÏ<`U˲m±«óZV]â0f‡×ŠÿñÆçXK[ð:ü€ºâ¬Ÿ öwx’ÓÑÏÝî*8“’íàÚ[ú¥.Ÿ-÷û–=bZ+8Yb¿?6ÒçÒóÓ«TÛŸœzóªYÈÁt脇® .$žO¾õ!9oQac…NÂ\N0--¿áXеBœ8(+)gx]·šÞy‹”8dù%¢ÙòršÅËnÆ´ž2†ý3V•œª6©0í½— ±—Z‰ oÁ\ªü?p(/SC±ó«ª0M˜H‡}6Êiß·ÍNtO‡¿+¦°g6'­¬†š81, ' &*g6ŠÖìÔêT;¨Úoo§3qpªŒà½øC|¿l½9—°A'Ñ´:,ЩŽx~ä&¦Ì°nØš¥æ|.´æ ÝZa$ÛlP„™< Å cnqÏZ†ÀI¢Õ’qÑÛj/bñÞài$òµ\Øa‰ eqú¢ ,>¯ã£ Ÿœ,ÉS‡¯¼Þ¼Og·”;;3ÔMdôØ×c¹õ‘° 08 N³D4‡ÞNm§%à­pƒSf•ôºïh¯Åø~s½Òãć†+Ëþk:½pÞª4‰ùï\88€Uý#¥ ñ,ãÐe-×iÙq«–S{¿çÑ{ëU¥Â4&á´ƒél©g×âƒÁ°!Œ¿ÖÌ¡j@^ë21++ñy?é–Q­Ý!:ðîàËää>Üoíã=²°ñTÄnL»ê”ÇWü"ã?L$ì> ¬ðãFÎ#‘7Øh»½¥U^ùœ°¤¦„¢ÜÉeW®Â§mÏ@Y–n)\rA?@ÑN,t|ž4u«šÅdζ]6tX³æÈíWÕ' _Êu³1Óªp匦0²Ù±ìyw>˜Åøð‹W³-õ$äM»Üõ(Þ³˜EíQ¼ý=”lü&ïeô퇹EÓ/jMV›+pûU1kÇèXÔí´{+†Ô¬üëî;£H ƒ$(gÆ¢ð¹ÅÇXóç„iáS`.–¹^ïe¥ùý¿³÷·=»$Ùuø=Å™L€êŠˆŒˆÌ$ câ-e¢¨!iÍ 0þPê>TÜÝÕ®®îMð¿ÏuÅÓ¬*RlZôŒ H¦-°ëœó<÷/{¯µcﵜ¡!%éŠb’ºuy»áUm˜·üBÎí)9ä¸ ®\[ªétwΓ«ªr†ŽZÀkˆNd¦`³ +)UnŒšNS¿ß9³J¸ÞEßíh¡Ä^+öØ“Tw7Z·ÃŠßN—샬Ú÷ ˜S3Cu. ¹*Ì-›šœ ÈJZ œ5Ÿ¶×;¹¬™‘7ÛÙá)D>–sÿк­<» ÎVhtCÀ°Ý-I%š2¼*óüø¾i×{rš•ÝXº¢Þ¬)зc7 ;ìH ^6žE.{)à`WèT`ÔÐêIS*>—-d£åQžÏrŽø8·ª ÀòegðâÑùÂJ´# Df`F×%ølrýJ_O–ÇÁâºÂlÕM÷)˜!ä‡3(–Å75g¼m¶°:ZÔå–ÄZ  ð¬ìïì{!Þ:çÁnvq(»^yÔÊZÙ=>kŒ>+bÐë„Ç¡m6¯†Çc’Ï Ét@,ËAJ”·Ñ‚E:\¶s/¥8ãèt>dè@2rN¿>A™Û^ƒ;ƒwâ@—6Ù£Øí‚¯Â'k@Q°òZŽïjÍH(¶åÎØÛ/]El Ȇ=÷Ì:ŒÈ©2[ÑÍÁ PWí#}'/ŸÂâ#I Ö+[Ú?)ŽôÏrÂ#8$Dšî`EÖÆ±ÛãÊÊ@°›¸ñÓ­Úv¶»Ùî@³7 [É«¬_´‚Ö‡EÙá´\·â‰ç¬‡— ™N/é-æH8÷a; Ë·g}sÉa¯*‡ÏrB³VÄSûM’×nUÞhfíb$=‘bã¥õÅ¥*Ü]­,ÂúÑ|O‰½nl€Sä÷¶]µl}…®¥ò¿²·7àÔÌì}-ÆE¸ lîRi A;àCBzÖ¸ü¹ýVwÌ^}µrp¶ý:‹:U*ű°IÐd2ÙÓíö>éVvZÄ€:@<®¦Y.ÈLµd"^ºNû•ºÃ'„(¥¹ q%ÿ‡{yÞ¶¦é¡JÜQ)‡kÐðñÖæ¬’"Ub@ÚGù¨¦*NnûKN0uËm÷e¥›ðÚðù’N58#² U½!Ê…²f‘ÌKÒ×(k¿Â &Dí"˜•«Y閭•ÞV®>SPÿØá& ° p\—ÒÚö€¡U³ª6š!ßÙ9jBÿñέ×O‡½ë: ~+±30Ͼ¿c¬¿y 6±-ߤ ¶&Û`½öyŸr?}âvûæ¨çùJUU­>j“iŒ{©…»5ŸžÏ‹*ßm÷›²Ĺv›x·i(Ïì&<òÓjôåÏbqZá~‚ÊévÐÓmh/y_G®~–ÂÖ%€\Ýú:Sê§Æ/éœå™·ZÄ|HÏN4({¶µö‡_ H»“ïVÝmé'SgÏ×Tíá)ü¼5ªŽáÅ"',…ÿ“çbGÛÒ€6‡ëŽ@ Qø/©:rËÌûu£³ó'Í‚F¡Ö7“[í9ˆg·h–Êæfm O2>Ï£‹dSêØÁ?ç€IeDU ä':bðÇßÚÓ›Õ2æƒQ”íÏ©w»ª 9î“'e÷ùÚ'‡“]Q†¥hZu>’gQwé@ ÿÄ.ÉD$¾H¡mئ ô…—óÁÿÕÆ¨Nn**‚Õtž´Q“FÒƒ ^$·©á¥Ê¿*Qñr¸¦qz¾Ö!Af ïVyj‰ü[v*³ãµO^òTiߢ!<‚ÚYê/+k ]×Ól¿äjò°}sço©,G¼yŽƒÖ|V]%cDqÉì0´.`3.ŸÅfâ~´š/g£’1zfÜÚÈ;ë¬=­­Þ—“&%SEÇžÀ¾†B*Þu)öÏWð2ÈRW¬.@ÛµM`N3S>Xÿ=.ÝÌìJõ³ÃƒªªJ¨¥ƒ|®*ÅKß½6n0¯BåÊzB/² ó]ÖTŸÍ‘Ô•„Ñ5Ù–¤2½U”Ÿ/É㵸 „Ê„&¡FäòÈT$KŸ?G­¿¥ P5ãvŸ©ú¥Ï ]ÙÞD2rrÏ«òlOÊvz(:ˆ\·zIhÇ©‰yÝ'ÎÆ;á¢Ý-A ÄΛtò@K¸ªµC/¬ [Eß@>„#Ö§.®\Ù=zwŠÄxmµ–{ŠþvCë.ñJñ(>Ô=¿\Ž»H¦ FÀ`œÁøªècx4Ÿ¸ÝÒìýéáî܃J®ÝEÀ‰¹[ þÛ›cÍÍ!®õnC¦sOIe 6oÑeÈòàö&gQmW|M\…؈Š~öã«CiQ¦§Ç#Š¿6v«ð7:õ4€yJà%®ÒƒEÖ¤TºNöù*H®zÓ£fGÓ$‹±Z‹“ôò욨¨ Ñõ@:/x•¾ONØTP?HÇK(w²˜” Ùª‡$Ú¤è&Ûæpbî"~,¨ðÁ4Ð.„~~L¶-õÕ²Zã ¬ËÞWQÌHì$Z?‡Æ·µèÛ¸Ô§ÐÊȺç+µý~Y £‘ÞO"ÏʱˆèÂöÜ´Á‰ß©þ8œæ°LéÖŸ^}r} lð𷩮ÚªYÔ&JS©s†Tß-7š/eéøö©ýÜî­ðKž°ø_IžªÊzæZr|ÕÓ+„3v¬r¨`´Ðƒm]æ Z„LÈUL=K¯ pq½Íuœdâ“ÊA=瞪#À±ûØääå}^Ü9'Ÿ´Seek Q\󱻨>.cMT²Ó³—.Äï©)JwT_ÝEÞÿÅ3žŽ“Ø ¸8YòÇ+¹Ð(—U¾|Pde‡ƒŸm,ø\P/Fç‡ûUU$lßQžcš¬J—‡M$Þ§Cؼ4¦§™EÿÄülÊkÎŽmªÆ5Y¶9/ÝÒGŠë,q*”¼é ìòå€ JoÙÄ¢âeé$efãöÝkoØSSŠO¹Ù×DnÐS'±_ c{ˆyÝ>àì+QQuå÷zŽ)átm?_¬-%:D0…Þµ•÷%Uƒ¬'i ‰?°EŠÕYz=^ÞõéX)øžå¦L/ªê‹å)«)Ó±Sç"çS”ÍÐÊ¡©4Åg]GàÙr^&ÐÛYaeVÝLN2°F뀡Ià6 _ÀÍ-LrÀݼdkÉ8yK-{MmœÝF×[V÷5–t©ÅÔzáô (Ïí¨”Ã«)íñÃí•-à°%o›éàø-<öDµ‡äà¸3öQ!å6f…€@׳#Þ]­m6û §R’cðÆQ %I<]ºt±šƒŒê뿤¨BxàÉkJ-©u¢†&½ö 8Íd+Xµ ŒÓÓ6þN…6ì ƒü°¼Èhy×<Ž6<¶¤š:<9Ù:j;™à‹ /¯š×¸*¹TÁÏ‹dfH­¨Y©BýíZSµÙ!öÁVà`Ú]Qý†Ü*ØÎû#U<¢ø^© éøÜ}‹~Ôç-8ÝY‡ÚD)CCЕґªÍ*ÃRäºÁòàO=áÇ‘+ž’u'êû½™Ï›xp[S6îÌ2¹â.ë*¥³‘Á¼,Y]‘…U,#³žNØêŒ—U¥É8Weæ”ñ>%eÞâïwÒõaLkÞÖƒÀkZŸô÷ЗС2[Ò¶{h“Äu¡‚‰‘—Êì9BT`©ý?@°Å¦Ç¶%ÆÞa!yêæºmÛ™X\b—+\wìsw©^"”ë~mXö™¶lM5*ÉaÉy.¿¯ƒµk›d±@0 žÁ}Î}prZȰˎå {‡%*{'u½Oõ›í„»ÇòÖGýýæì1Ì«ð1Ýã¾`›ó²#ÊS´X•ζ¶XõÜèÔP$«¸FpYO•ØCM iJšˆ;âBEή®ÈáÓ'v©£²LGåöŒø¨àmâ­J–O½Ûl9Iž,¥dWØû€XoÍ.‚G9)[ŒªÍi›ô‚T&®× žkòšAő̃`hß=h ôJ("z24J_Ä,]k¤R”S1î‹—4Ð ëhP…ùâ¥I˜Ú‚üLÑ$¢t˜ˆÙ@æ!Rë vS÷kƒMßà ®àÇ#ª›|h (:'  šm7@+·–`‹÷Gu%…|ìÂIg¿uµ¨*„‘šy%7Ü&)øXÔOç½WÕ•©ŽV÷ÌƃÞtÞãW/_³v•¡ZTÒÀ\U~%•0É-’h‡0>؇b­¶ OÕ9­°Æ÷‘ü(說ý‚íöü±ªAÔ ž’µx¡Ê\GR-O‘Ƽ–~ÅQ\Ý›'[BÐ5ˆÜ½\ ÎvÙ2Q-„N"õܯQ»RþpKŒ¸<%b‹%V]üú$R©™Í‡ƒšjÀpx£Ùáq*Á¥LÕXˆôŸl‰VÄrÈ÷쎭¯{°‡œi;‘J¬þ¨@Tܰ¤¦QÒxá´Åݾ5h@—ª9ƒòÇèàÈ¡_L΄#FºP3êº=ê·P`fÞt¸§Ê¦^-Ôç uáw°*x½õâ±Ù½QQoù+¨Á˜ÂCÍã‡ña¡€¶tnËÃ)´€5àvS‚²2a[5È: ®^P|w›—-/¼‚%âCÏwëvZ(NjÌ V&WK·º@AÒуEPB©<`›*iCì8T]‡®©oI\y h’ »ú¸ªñdGó«¼ëRøbé±þnû(ì¡Ü¯ê·]÷“]Û¯COñ·«V¢b«„‡ù@$vf¶)M‘K%'m`—s*{ÈÚæà”Óº§²§RG³Z`ËDvH=d‹·Ö¢ ü,$â4Lí*Q[j´ I/À¡æŠ­n".e•Þl>ÚöÍíâI+Ðö7pžP>ƒÜ­œƒ˜mk¼Xµiy*€ÛáD'åy•Ï|Ž®‡>Ší%*;)§Ã/öÅ`BâJÌÓZ/;ÝhA³›Hôoäg@rþª“øXÌç! x¬qhNâIFå1ù7«=ÚÑåöêjk ÔOAå²ÉTÁÛøÊÛò(_ñˆVW2Gr•ön씃x5u€ jn¼J/ë„U<Ö¶=8@5ΤSDÐþ~â ™Eßaå_ôk‘tÁú„óOr¿DQ/);¸®|«•ý’.‰€U>õd+¸8;³ªÓ6§z±Oñœ”x9;><šh»&_ãÙI¹@­„]ÏR:!ܺ™ž^G†à)¿3,}Ëk^v_ý‚mŠÐ«$*ŠÛ<¾›„ØU⳺÷°‰Ÿ¬¶ Püt5Yš eÏÝécqº+k²ÏfEžôdq^¥„ÃávaJ1q¾,mWÊÔÃ(sÐäX˜»N’ê^²¾•§ƒ(8Õ”µz·£¥(ð xGç$¿y£Ëâšö/Ö ¡BúxHzCk‡VzYÙ«ã9Úÿá†Ý&<ȇ]ò+=» —S&…/xˆ“NÏû Ž·m¥‰mÐ`_hÞBrŠ»L ÿªœO¾ù¬§‡ç°µ‰ÌÖô´$ª/ Œ|–V‰„õS{XX·};â€a‚ °À0Ë ù&ÿ&]$µÌã6á¦ÒO¢8EQ.B7k}ï, …êztúfÛž‰úu¡}D=ˆ†tj†.(ä{>«glS¾ú9rýPAêê",Àî+Öþ¡ˆ*°/Ïl’mª<ûÁâR%Šl ‘éu¨,íºPÅZýE¨¹FxYÇVÁƒåò²øø+ëN'¼ŒýÎu(=Áâ$;Û>X¹Õ´a›š{,#g[ЖŽU¶÷]6J²åí·ÌÙ¬;»1IÃNÕÑùÇà§– ·fÒǦŽÕk‘wpª„”lêל‰4yÎ@LãyDz± „n“&"OõDwÕ¶®5A¦ày ™°~Œ¥v…U¯úÁ.†ü{ÈÊÖ"Bÿ‡íÞ#MÁ¶ƒ¨K{O¼Šlkùuè¿ö´ËÓ*^^µAÖLÄã#ø¶FÔE?͹•zJ±~ª”r½ \‡r•ûzÉô­ocCcnÒ3fhÑ«[®Rå+3õ§±6ɳ"7n³3mšãëÔ)M…L~ÇLγcsi-†ìùÚǦê§×OO8ÈúljB£eÚBÍ$¶éúõ¼%Û¤ôqZа÷= 6ylÉæž%ëÝßN2옱ûÝ¥\ö`”ί öÏ£9 h=%âOÒTßÖ[…ðH"—% ­ï«þðëleWv†.(J4½ µG Ba,;³ôh¸x iñìMt^í ¹ì4”êáE‘ÕU¬ÙB4„ yVx¶§Qï2>ÏɈÛìxhý •ˆ©ÚÂm œó¨nÕÝÀwP€"Úœ—-ú/À˜à%:9ç‡,¥ËHyImäÖ#¨’ÌOýŽOuÅ/´W—¤²TX¬~¶fŸ,›Îr·4/ÑðdõîÁFG ÷ S·êê·@¯zÎp.C þ=ëQVæIvϵúÚ3ŸÜú¡Æº“djÕÙõ/ÖןžuµqI¨6ÀJg4™¯¥’Ôí‡¿Û¡Š¤ÞO¡sßK“‹Æ¿@刓kçê°i¹³dOâÌs_zž÷qh*Í—ŒD[n¹y×d[MKÛú×{o–Ø· Y<ß *}ìGZ—V›§m(ÓÃ…|V†B!ºiŸžö§³\ù4ð×õZ€,MÖhq«"=ú¡i‚Q¥¨Ã—´\M\VÕí!¾l^cAñjÕP:£m›ˆÿ`ƒ>"‰Éy$') 0UXmxtmrX'ª§þ¼qÜǹUª®Áâvcª }àE^7x7Ú»ùz¨Ü»Ó2R*|;,ÁfR«¯nKÇ©1åögC)bî¶xªf{Ü"!SW+ôµœQÕ g¶øÁ™/;lIF0)Ž£'‹¤Fª1ØÖ¤ÍR„G¹@sø Ç‚“*Šì aƒèËæH¼×» ƒ‰ª6Z‡iGùôª$)ð¬ÆRȤÝvÂXìØ&!“HØP*+Aè ‹¢£U•ƒkÔhj´o§Ñ¯Â£Jžå|¾^Lм貋èÖßW4^"HQÖDÑ£|ÐCÜ6p”ÌÃ(—Ž¡N»…­u—_ÏÂlhtþ¼è(£9Lå臛n âö:œ–†¢[4/ö‡¦– ¼‘¨mqhºlQ gw>*Ï!7p[;laëÂ{žm*FPn»]~»yXŸvšNÎWg1‡ÌéÍ ;\ÇêÓns Qïg,ÝœûÖöÉ®{(C¬:#0ú$ƒÇí±»áJ”wÍᬙŸ7‚-ÜÀƒUíÀ fh·£Ù€‚ó0ØîED’¼=¼7‚9ÀRm‰ŽFÁJ^4‚==†r–'Æ$Ñ‹ÕmfÝó9n­ÈØ^¯àËŠgX¯J„Z4m*ÔyΑ_@ÕÛ5 Úçbâ¿G8œ©4mu/R‹:yNeh[^5ÓeŽ—Px ã€vL—R› NýV“–5%#?Ùåú‡ä…j-ë9ÁäGØÕŸ¶¡Œ¸ ÙN€ÅH16n9ÓQ^ ïÔÅe)CzßJøì†‘[Sa=Ç…Zp?ÍÆÖ‚e ˜ëðý¢aÀ”…׺ é0?q™&^ÉSp‚ê%¿4~tv mr˜Íƶe-etS’=¦IO˜æôÏUv§áØN®ÝW®uÇÒ-¨rØ+ÜI²Òÿ°_>@ §{|vÜzh$}²‡ O¬À£ÈÔÉÔ%¨¢Ð•ÿˤÐ{lv¶fý©ÕºÝiw¨y¬ Ðg=ó$n`À’hÄ~Ч¥í¶ž÷Ññ[ñO¨Îþmg3I¡âT [KUëHc88ªÆëö.în¥—_¸ã1í]Û>k.0üä‰ÎÈSqhn PŽ):/gÖ3:z:#x»µ^Ö“vºñÝÇD—ñ8fé V½O˶˱ՀÄqOµ¯»óLÒëÿ‹\”=0¸òåò•YM€Ià@% ðcy081Tê´sÔ†OÑ+¼u¹tÙRÊð:—ÑÖƒøñkK‚Ž$·'bdTíXȃ@wJu–0œl¬h ÂAõNxe±—~˜NŠç—Ýâ8ï’æL1 ôlކðü_€ ½Ùj±œ$'I,zÝç[nž…n¸¬^¼'ïö¥%èâî…M¿ÄÞí}F>=+`¤;éáôxı ^¾$Ϋšçˬ ¶µêu*ª~çoWÞ`.5 رÎí7Å.«SŽ™ÍGÙa›ÖÁï¸tòV@ý–=QÑmõ䵫tšãv„ÒûÒ\H)lOXøåœ¨(úQ𜠶 ýz<Ú¿= @àÔ³<,z A_÷â8»Çòç6-ƒ™-M'ƒ­¹Óñ­úQ7NÄÝᤨ³N†ä@Àtà?åýlõ`ºôG‚ÐØ»tÙÈŠ"?z”ž¡m0ñÜ‚í¾£h€¾·}äaE9‰Ÿ¹q…íûcYÀ”vóܧ½šï¦zŒ†Z»êž^hm¤Ñê°¢nCçIZòüÒø „Š®¦¹Ø¸î¤‰mz«÷OWXVÉ>5§ÓˆúH.”Öž ,'1R‹®j®0Ðkåj|÷ÑV¤èpjÛÆ‚Zsséxß[¾£u‰õ{­‚®ê4Ò£R¨<ô¥â¥9‚oý <-ë“ÓÇ/µEø^'Gš’⡽Ö'ï3M-ìùï€1¸ÔÚuºKÎA=‡Y[Éôš¶˜€Cö¼Þ”âkÇ%`]Ã%{ Òp):¡±4›¬âÿ2ð ôŽúÙËi?[y”³%Ú8±§¥Màg;UêÕyHoÄÒå4 "íÏ6¨´tB01Â.béuZZ¬ž{Ö鳬µÌªÚh²Äž‹·@Ø¿*ÛhÑÀ'žÒÚ‘°ëá¤ÃvèÁ¢IK3’Þ4&dA¹ç…°°¸;2-ÙOOɦôl‰OUÉÅãr¬·ÃZ§5˜Á=ö;ÖœS# ”]ྷµÂ®žÞ– ·–ahÊ—©Èr6œ,O;ÞLµ k[#»ø–¯\BUóÚy*6vð ’»tv…œÒߺÛÂ1w©Öu«ÅvÊ­;O˜Û~a‘‡È›QǹXb±ÌÓyÚ¢ï];°y­›’Õ‚Ý¥„¦ Ë=œ6ötG×òáüýd×Lâ°MK‡6ÝB-‘ñ1Cg4¸_ðeca%U,†-ú§VĹ€ X $š&R託P¡9àrê]c?û ’g÷€Ã/×P5…•©×BMÛËÃpò›˜Ù]?ÏÛ:.ïI5™¨Š’#ï>ÖiöŸñÿ‡´UJm¤õ×f×WûŽïmŽZx‹eaÝ,¡£Þ Ç(°RÇ'.õ‚Î-’¾T9ÊFß„÷òRÊâEÁö†‰ÓFj'LÉ¢•ï)B¼(VWJÚ2Ÿ·ÑÙ&»Õ‚°éLTëê„÷[?eCȬ<¸'^õà®1ª.Vó|ù×£’Ì á1½Õq/X´vfF{Ü —ªÕ¬¨d¾^Ä¡=ijf*/ÚS‡k«~tTJŽ¢õG‹xëûzÞ|Y6$í·œ¾ÞËÊk ï•îà½ß$ª')j,à`Ë©°JG„IµnyõXÖ(ô±|VˆUª!ƒYÖPÿ×¹÷ÂKê#ë,Åæµ]i-6±åVA…а,½žDjFÌ­7@6Iùpnº*Ý-ÉÕ—óVX{–B¿äfYž“×I• žÓ -ƒÞYïÆ°£Fä€öp%÷4ñ”>µcw06Kf¡)…­ëÔº%âó‚îàdŽ¥¥Ñ‹¡JrÎøv0 û¦|à†yîý}ª’¢X‹NrºZU8ȵQÇðس5.ŒèbeÕþ¢ j’Ò¦îüɃ[6%tÑ›t½—8Ø3Òˆ‡eêƒrY>º,ëúxSQg eóYØÇéø®‚w Tµen¶œúYàuG¼­7 åš}<ß;9grºOïŠÇ¼;´›ÝQ‘å\}w·fV`f µ© îë%u[µ£fl³|ý&V¾~±Õî3­HY©ÃFn%H»eÏ ÙËÈÊŽtÀ‹²Ì¬4‡!ôaqŒ«Ð=©}ÉgÐV¬íj=ÐthÀ~²¥d&äC˜<ˆ0é›zTà†\©Ù¼& -Ûƒ6ÉC p2¸VÍë Žb%nÄ™|´¼a¯É‹(“T@s,áR‹ v’òe×Tå#›­À±»ÆÕ ¸Á„Nô)‚å3Oiöƒž 6T+{LÒ/è²ïÄÑ<Ôöæ™vzŠäªv¶¾)âW»ˆWxï~|¯À©p¾q{H´C —¾XÛ}†š:ßð]¥s»‚ì%ûºéžøÂ¤†Þ„|_<*ç$0ë°שšcãv"`–Ÿ¼z1’„TùPèVË Ô]é.ºË“ÛÔéÚ'ìZ¤‡?Gë)[µŒûÙ{-é¹Õ›ª!$W[Dx)Q @âބα/sÑ@ï¸_rh& .ˆ‰bUº)7æ@âDPû”•°ìzåY†B~H˜N}Ú]”À4âI¢C¬à uØXÓ…4ø)²‰µ焪M„NŒœÜ±ç»Cå§ý•%žÕ*B@ÚX‰‰ :®™—òjÿ`w«Ú…·\¢´>ØÀßÍV)vä¶JvÍu(IóXÀ! ûk‚&š¬ <(ÕÇ5ž¼í1á Ô°ëD`±©¹y˜FÏݸˆê*mY}c@r…“÷vqÝÊ/FöõÞî¸TÖ–|#¬¼zÝlÇ­ÊUäPÞHHq[›Û’Ñ~¾ñtæØî/‘…¤qè÷\ty´*m¬Ü?™ü”—¨#³FK} ªô¹Mì⢳ }ú_Y;\Ê òîIçEØ?» Ôy‚WS}ˆÓÜÏ ½ðý-·JÕYlñ[OÚLV‡·¶Ý=ârÊVϘ=Ç¿!±1oùÁðÜ `8Òo ýÝ«`UhÎNh¼N(ÚÒˆÞõ´4Iw<îºsu%ó^h/ñÚ!_À8¸Ž$¢ö «ÒSòÖi‰oÏíïÎ4n;¬ÌJ´Ømë Y»˜oÔÀ‚ر®§–V÷)4›myÈ<²h9ĦÑuÀ†H¾äµ¬1ŠgìÐèôœp»É/¸4Ëü†ÓCD¦¾ j‘Fî†,>¶|‹U16q¼\»²£º:×5}<\ÒñN®äÓÐé$xd¤“â1t #Ö™í*ýZOˆm©ñçü¯?ýé/?ÿâã‡ç=ò‡Ÿ~÷h>ÅÅï>îo]9øÏ¯~±ùËÿøëŸÿòË_lŽm¬ð§ï¿þÑ·ÿñÛ?üôå/~â~ù³_}Íïù›/¿úÙ—ÿžØþå§·ý?>}Éýýîî>ìG~õ£_}õ3ïð ?æã]¯®ǯ¯o~õÍçóÔÿê‹ýZÿç_|ýÛ_üõÇÿåW¿øÉ¶6ùɯùÅÿø‹¯þ—_þãù»Ÿà¯Žïÿî?|þö“¹ Öüéóÿ¢ÊO¿7¤ð£ÍõÿÍ_ÿòë_~¸lüÍWù™ÿ9þúW_þæó§o¿ùõç¿ùëþÃßýÓãâ9ó¿awñé;« þÿÿé÷™rì;ýû^1|ú—©„OŽ|"'}ú›¿ûëÿ‰iÇw8ÏïwÀùÝŽø}&8߯ìÿ8áÇüŸøŸ½¾÷¯üCËÚOùßXÙ¿ß•ÅþÇ|XXG¿üõ·,zK¾ùÅïsbù“Ï?ùê×?ÿG½XþÏqbùÎÊ$•úéËo¾ùò¯^1*Ÿþ:²ÿ~òù?î¥ûé‹ýâëoù•OÜÞßètø>óýé‹ÿõó7_û·ñ|ú‚õÝŸùâ/¾ýí÷ÿÎ üâÛŸ~óù?‘>}ñ—_ÿú›ïÿâä/¾úÍ~"úâW,âïþ\øóçßL¾û›úé‹'ûÝß\Ÿ¾øÅW¿»¿sËÿT¿–žlîж<ÇØ7-(csnq£¢º™Mšº§§îF;Òº¼½0 6“½€>Eè§ÀÝ=ñiQL ªê;bÀÓb]„¬tÛ£·Ò¼ãº¥«F®!He¿€Y˜¡sÉ|Ø›¯ûêR‰s^ ùQêm'Üéä±~x飸]NÇUô¤°{ä’]·Ó°~(•ÈMÅC8u­ÂVˆÐÖt^nÝ´Ï|4虄 P%›Ä´šµÑï¶[(¿E}‚¨¨Òû~t{nÇø¤²Îg+— ŽºÃ!U•³ 牮ó[ó€§Öâö4~K—>'$Š€FÁ÷tÿõ(,Ù–BQÉM'æf<à|*­lûÓªg€ÿÔaÙ^ÙÞyTk)hS•Ì©ÅîÎ\‹èŽï …ýmSº›=å<0 0ØÙSk DøÏÕä>çó:°é¬AP"äÙæÏókfh_dI4Þû=e›²§·êË<‘i«騖åñé°‰Ýt^º²SE§ oâQNË/¶ËjõpØ_ ÏT®²;T6úy«—b Yá« þÏeÚggS‰3s1èR ãÒDÁžïªDî>lŠö8kʨGLÑrPá¯!áÁ¦H#bÀ¯¬þ& 樔Ög °~´¤—ú°R¨îLP4Ñ“ývÅslÓ¢'©Øq×ҥf*3l±vÑ”èR»©‰1ì'nŠÏœ¯Íyw†«Â˜JrOUŠ›(Xt²`{¬–^I‡~eÏÀ ÛØÅ­¾´Héµo”¥:U3=x ¶ïå@KYõìá½ Y·&ÏÒ-·‡ûe_w\»Ê®¦kÕ}Y;=~Óµ5ŸžŠ(gÛŽ{—1.»Þmx8o•`¬·#åWÑMÇözKï[p÷‚îñmvêß\Îõ1ªã”¥¦¼€ûµ’®*^T®:§¡ÚέQÄU!ëÙJéžÄ”S½UßT6z“ƒlÖ™šÌJ’m»O8’3.ÛFôfG®áuD¾÷õêökÐUÛKK;:Ý+¬Peò¶),{•mÚ“Šõðæl\±ŒšxÂZ(?“/ÑS¨«åÒW™ófKv¯Ö5‹§‚Ú*\y?QUüª5ƒë-­\^å(SÔnbæ~óƒr'±D‡Í–«xväAM^‡ó\ª„›EÞ<Ôãm³gJ#ÔžŒúiÊpðñáå&x>ºjóüÃpüà¸ù»8âÆ=óK‹%À:†¼O褓Y«?ûtUw.e`¹ÌÎÝ)I^÷x®ø¦ÇÎè¬8LÔ㉡:Q'¶»’w§¯-ó¢yŸžA×üêU¢Øa¸G3T•ÂûÏMEÁ“UÓœL´ž˜/9.Ï+¿ Ö«¡¢Ã÷ytmXWOŽCéþ.ûïw+Uø0×ðÔŒ 5Š4÷6aóÑXc~¶Ú†@ÀÞííé;¿v®ÝvZ«º–¨ÿbœ']I‚]y[!Oåù/Å”&+ëïb%j„2N•,û":§©ùnñ\ó;¿r¾þœÖÝÑ”w<¦Ïü±žíØÂKö¥yM„UDåt(è¶WÎ)C>ÐUЕ‚ñ0k‘vˆm«m­ÃþÉk ¿ƒgTg݃z¶CÔ›W 7‡sº,gê­áRöð¿{“4©ngÅy˜r‹úßÁî¸é.cƒ—(Ï_{‘ûØBÜ@ˆ¹…:óÑ“jl]½w»XyàxêJ BçóÞd7¹G™›5r­™Ìéˆ÷{:Ü­³Ã²ÊÕŸìîh' TÓkåäù¤S;€ÈY¬Ž«òNˆ GÜMÚ2¯Ù öëNr×ëduˆ­ízNÒàãÄ€IÅ™ØÖò8쵺l¸½CÓÌsþG·ǘ)Áƒ•¢\Ñ>ÇòðÊY¦e[µrPÇS¦ŽDSõÅR%ÑqŸ¡ÎÜâÃC$ °&y™ü§Ã@ «rE6)éðPŠ5â fÈ‹ÍâˆÓÛî®…™zÞšé§_÷6Šy¶LïhÕc( óª1×t"að¦V,á¹ÞGa%â«–Ñmª«¦½±_ÛŒ;Þý8sµ€zåÏž«Çí>dWôÙRk@¿¨~Cxí¡ðª@\,o›ÍúÐ`u+л‡Gy’X¹PEtÞN°PÉUù“a»‘*ÄÉi0RrØèvg:–5¬ 2.**xOû·–ÂŒª'¾7yä:á c:qw+¯í|ü᜾Çu¼—«ñ‘°^+(Šˆ¥˜˜R3ËxE¤ÔÂͱòݘJÈÒ¢ðPšdO¨´”ÕÁÛ‚ø*ª~’/§^óðDM§ ]Kˆ5p] l­[‡3®—Î9¶CmŸvi06H:‚ØCP42 TyD÷6Ñ1l 9õNg2X>½Ž²v=àd¹Ù@%üò$C“5ÏŸÃÙ.ÒÅyAøcÓ²Ô\¬¨8ËÉ_"—Wˆ.šÿ—•Qëø^ir#”Raž`’„~%ýÖv òoÑqŒNò+y Pð&¯Céí© ùq’‘à÷L€ç½[jìw!0´µOQ|F‡Ð¹•µÊ:J`£±JlA³ŒPÌ´÷¥+)Dêäîl×Ö„M¹TÏ0m|°í´³‡òˆì7’QTT~óÁŽCèà蜼F:q“lhIé0h=‰:ñ`Ëai8KS5Sð£nŠŠ60¤‡'¡BAp¦òTƒúh3‹c¯y/H¨/˜ämÛÔ­\ÿ=Hx:gTíûô/<=ÓìhÚPADÑF(m-Øl@뮑…¿^ö“¡!ì=¬±£êY6%.‚oñ¸lë8ž~lÒ·2Ÿ¢9/ ÑÑ|硪#f·½a6Æ>[NçÒÂd!^àå†Ï¨µŒdÊÊ×âa4@äæjÞudÈ÷ÔC½ù­"Pý¬BÚÞ°mzµ` Öµk#ôÂu}Ž*Û‡\ì±PïPùÖ=1‘ri¹¨ ¼}ù²‹l¢'$O.lme‚&¼O](ã6ØŒïÙg;¸V»Ö‹ä*Õ•ØÃ“ÕÉK.Ú(X RÏZ×K°–B ¬Ús»›ð~Ïà ï·(,jíy^Ò”}#Íq…ª©…·¹²ýTu¹ƒF.PZ^ù!íOrü z„zÙ5Ø´0|NÕïÜ|¼R}´W:».(J¶ž\i 7ò\“cõÛèõáL­¬Àe7êëŒ OÏpä¶Jè_ýäfl„õt´ †P“r µ@Z^… GlLlb^—NQ¥Òh¯®Ç¥ÉWðÕCk]ÅQr×¥vÇÓ¯‘dWE‚£­ÐÃå U»gÖÁ¾èö<'M*­¦Íý|ηG£˜ÃrA-{¥ËU0Â.­ ö'6S°¸¯ÝeH Ñ׈¼bIÒB–öO‘\MŸU懊*ÄÏâS+â8—=ƒ¬1}%k±÷v]*b‡ÌÅjˆVqWá]%!·Í:xΫC-ÿS•}‚˜Ê8§¨¨ˆ…«Ì Á·€e4ˆ×"eq&GF¥‚Qß­ 2KÈl·ÙhþÀÅçšrhI@þVX›Ý­×– ª,^vÙæ0M$V‹jÇ'¤fÆu.R¶Um­4¬G½ ŠéR ˆG鬖“Ê ™ÝŠ:hÂçVLQˆ­M¬ã!Žð‹ÇÒ*Pß¼E(ÖiLÈ_À‰+CRH[tLŒÀo!!(¦¡æ‘ÊQ§3ápw6 Š«U¶óÞ?¬S•^%š¨²T[+ãNà%"ëw£[ÁpÚè:u¨aêHÛ¥Í`1}^Û}î4Ãçt#Þî~ê—ÙÑ`&æ5BJ.%(GW˜MB€V~[Å{ro=¶XÁùò¸Û¢dÝ]硜ý–QXɼàŒp0¥‹ØCl&€ÔëŽ|èÕyÊÐ^ù‚” ÛaßšY$¥qªÃèºîT«éj†ñÓ)¬½©–7$ÎÇîæj±gØwΕ֋¸ÕÅü ½ÛJ'˜ þËòX†Šœ'òv8É•`1®=#ön#KþÝFÏà¨MPÃÙY½#ɸä/¯Bdç^XóšJ>:ðûxo“$oè8 Ÿ,E;þÛy?D @‘t¶tR·`ÜÖbcqä}«­™ÉÿSÀU;˜Ñ³§†¦ _>1 &侬Ç%ë˳“öZßòóVLa™ yê`î&7EtlyÚ«mrdHT'6Û­‹òöÓ˜Kqea‹¾þÀjšÅUm2eÎEûA±i¹h°œ¼çtWçOócOiZDSàðñÑü8Dê4·’À1Y‰.²ä­d2PA5¢Ä £têeædç°¾æˆÁ º\àO«h¯AìU]iÙ§‚™Ú§˜FÚ#ŒÄD@Š®{ÙG =5D:²*ŠúXiEÙ•<=­ÍAv„r¾6Èu5Tï½^•ܸ0›ê!ÎõK“~(¥à€-˜`²ù¨ÿÇeõá´­'M§j»ö¤ͪ[„>±ÑÉoV~R¹hŒm6¿Ú‹¶•· ,²Ò<ߋ̒“pl²•²1öÿ¸í¥^´¹ª*Ïù íÉ¿WUòªŒTV¸ïî×.¹.â9èÕ%Ô¡l_™*û€À ‰Uãôã­¼®~lîõ8CΠĊdžJˆÜu€ÑP+“¬¼‘Þµ2ãVAc a9¢CŘËÅòì!^k¹úx@,?¼,V¶¸äƱ§y<¸É0¦²éZîA(ÚG[³ m` µ— Žßyº]ç9¢¹(€`ÁÝ!ŒgŠÃ{µM¿ÇÕdÔbÌPèÂápY×D¬¬ÈÄÐ/é£çôÔ³ÛþëëæÏÓš²¦{ÀØ× /Iš- É qßdbQJâ°Zm}ÂIü [.ÖyÆÞÕU ^íT^dÙ6ëì]²–œxˆÀíÈJûRåÅûUö˜å€Pðlƒ=oõ—N,¹o%^ÂöVZñNo¼ZxZ­8á –Z9­oá«5³ªq*Þ÷o]TK/XˆHÛ –SFTkÞ€H–¶ª­ÊÄûè×#/¹Ý§ºrJÞ-½…yоŕپɯ)GèÌIXÓXúp6Ù øªêX- š…|×y+G7”û_u‹Ël-;а^asãV@ÓpN*;L÷Ë/ÐpMá^!Ü¥ÝÓ Ý3T¸á5¾š,‹­Ñßÿ¥]~1êðuÁžh­E’¶Ó¡êû€ØóÚ¯ÎÝË^úbyغ{Òݰ¥D5¸“k¯öëpÖ9< $“Þ=[„ÊÙ¹v¥k»aG%Ú‡bêðÂH€ñ<ƒ©³lW™ƒ´À‹iÚÕ`DaÔÓ؇-YËö¢ræî@ÎÏ¡eܺT­»Mb?o!¨ Hv˜xOpI@6õòÒè«pƒ·KaP.%r%’cnU^¯´ '`:S3*Kä1iû [í‰lõƒ³©&bÒ&úàfa#ñ±©<¶` Áuû"Å—«E" <ð‹$".]Fx<•”8’FòI{JÏ&Ló^ÆF¶¼ƒ6f½·D¿àÐâBûÁGͰ÷,ä}ω¹'î}¨«\Uôå¾iºº=·oë8 ú«¨;¾–&µÎ±Ãò8 @Û%¨™¹è¬ÿÈã´oÊs*ø‹"•¢ò6¶«õ£x€L\iP»†W‚L V&x”` IyÑˬȵ´qµ/‚%Y'oGM¶Ð«=ÉÎÁÚ7íNð æ±ë…ŒU_?¬€ -¾„fC•/|²l”Ë\k›W‰{bpGçêðI²ì€ÐÍVœ>‹]ÆŸEˆ¢ã¼êý¹%zjƒ8¥»ÿuÇûtµ=µä`ŽM·ž«K¿ ¶bцìV¶vÊRç²-žÇvI¼ÛhÌ’xPÜQë VÛ6°·µsoZwYPt ÒàKƒ©võcDÏ7Çເ¯ÙäÞfŠÎ3'[ù¹ìYH*’:~Ó€Cu]Cš[SU$XŠyA^>ֳ⢌äÖv€åÔ¬Öz4Nšs\Zü ¬+»®3¯©"—¡à!_þ²fNã$`Ù:™o¼'í 7¢HÙðù Ù%1žqÛlððu½å'žjgÇžqdûôTžü uXG1éAÍ3„>Õ¨wät *ïñndµZ‚n`ÏŒ/Ù¹«gÉõ4‡óÉHz ( |/Y2“Pâ©— òå3RqZî+åÃA"ÓôTŠŸ¶G'ÔåaûiC]Фdq¶ O¬íïWëiÎCdÍVy±¶ù$‘ÿ¼û– Ä©í†eX»AŒ“]¬ÁæÂë㜓Y®›«]UC…øÀI¼ `†;­&iîp¢éY¥`OìøX°ÊEfÃÆ‡{„˜–G«PM}x0‹gWɃžä÷“§ ämj%„!€‚÷«IÑ¥WŽVB{òEGO¯F1âS¹†Ç$þòõÃ3à|Ýš¥ÞJxÚa”>¤ªáñPíºÁÉ·ž¤ÊMüo»>Uÿ€{„QùчbƲþ¤¡SÛƒï½t?IÍL ðÐ'±ªÌáÓH·ì: Co±0]´¯ßO;¸hY tÙ¯r󜪾½wãÚ‚¾ÔMÙ R’{¹Ûqª¶5I9zÁ¯lEÛ™&ÂvÓjm8.ê0ÙjüH1“Ô|ö¥ã"¬(¸””²PH™WÓèâ6UÔ¬,ód7Ž»ØÇü(®h^ÑŽé=ôÓ}HcÍúÀ¹fîÆ†ÑÌm¨±Š <ˆ‡—Ìj‚©y pytÖæ­á¹§€#KùÑ¡”ýE(É Ý@Цq[“®šÓæãTj~:ö N-Ž\,i7sxP”ç5‘³|6ÙI릹Ò- Q>àõØC™$"{©¨ø_& û K,€ â|¢µû­ŒÛá)Ú7ow‚¨'‹$»jóìæÁËfF­Ý ü¡8ëf§ Ï9¶‚ç ¦td„˜¸õ×yôÙ!¨±ËmrTG6šµ QÄ%ë6mÕ³‚…´t'D°ºjºXï“=áj{IyÕ¡SD÷ê9eBˆU¶#Õ»v`†`ý®í²¥•¢^è6kÜýã6ì*S÷h׆"̱¥c«Æß*šèKaI®6t:ÉŠÇgý81Ù4WûÚòbÌÄ$Ö'–[ë dT•næÁk Bšóœ¼¼%g‹ÁÊ*@ NÓ™F§ëV ã°ì,;éÆ~oVb ávâèÇbÉP‰®úUÍöœá~€¢òÒ %ÓþLž¯j’A[CƒLÏQÈs+Eê'™“gÆ Ùšþž­¶¡œzW|Fzóæž’"rݦ– 2@^Þ½m¦IvKáºòA|=/5€/^`vîVe á ×ãÙj’s¨­Ý ç×d‘δ|Wxæd±[&ÿ¯Ý¶¢kƒ‹`½AMoªcñµíÀ¦-6¥'j°CksV|UÎ £(é"èPG0xßT¨X­&èÌ‘Ô4È÷ž+·†7€€‡¶KàåòŒÏìÜ^3÷lÇ6\xt_^÷A¤aŸ8ø­O0?µÇˆMe[ ëaµKª¼_àûàLC< —·Âz4í”=RÉY‡Ð ˆß@³­øi5€=oƒI-HqÙˆ¾Tö#Ý)¹¸×“‡¨pyÐåéSµ]›zÕ'_ï2=¿*•ƒÖjÉšÅó:u¸×|âÔ ~Ô&»Ñnr­Ô€èì%%ƒ£Ðä s§ª§‚µ§Zäê¨ÓÓâõß=dÎÛ™ìî]¶7 [ç‚÷k}µ‡c-¬ÍêšĨ(»þ KXǬC2YʧãDÛ¿È#Y.WÛ#@Á, Äºñ„]<–4götàº4à{k>œBáš›Yé²¢£ +GDvy˜Ï.nzê7ñ²¨çaYœ„å<Û¤fvð5•9`+áσ#þƒm­ ‰l€æ@±åéN¬z"þ*¦ÜËö([BYÿ­u IÐvØ»¸:€‚@dMG¸1­‰@ÝCs—¶ú,ý 2[³UpšHÔœ€ŠéA ÏlçÌ©\ñÉÁ‹×ül7W—¢†d6©o¯_Þá©öæ°ô{lC¥GE¸K¥AMãZ,KmjÕœÈ௲~[JMÅŠ‘®ãfëj¹a‡s_{Ôbëo7ÛòÎíTìcì׺gxƒõ …yš]ëˆÇ¦µi¬ö‚]êÙÆlµ¶ÿ®û Ú£NÚŽËøÒ@$—'*‡gÍl˳^ŠO€,¡ MÞ‰RŠéá $s_0΢ò+Ò’Éûʣ¬TG,pë)9\Û¦Þò¼çEpɽIÓTNäçûôXÓ¡$•‚´<ÃC8ž@²voMͨJ'ÛÖíΦëíÝš¡–‘ö_}ˆ(|ä³=z nk: ц'òÚõ¶Ön:€¥ÿøˆlTbò,qÎ|4Eì.›ï•Ûã^¹ÿ¢ó;<æô ™ I{&tëQźiÿGÐ+þ:¶QŠ]¬wü˜§RSæÔW(S¶­›’Byñý•p=®'æ$}ñÕ÷d‰}ñ‹ü‘øöÿ0)Žä˜ç½ÚF|—Ënßè8HÓæÝótzç<Ï=µ{ç8lÈ…Ø¢à ͵[c=§Ù<ùQy¾×xžºÛ—ŠŒøoM:{^Cä‰k Ø"kr6$«Úá _€BðÇzE Ê Ÿ^o’'Mô`Œo\š¬9HhgHõ8è• Ü–ç’“lPõ0ŽÆ²À®h»ƒ ý–½r ÁuºSfðÿÌ Á,Î7© ¾´)ŸG® rõ<ŒµÕÒ*6¸°ùÑáÑs¾å9MÈ[øµž{Ý`ô5ú¬a:¨ªäI ¡eû[ž­º|Τ™õcG HòòD.yº¦=¶…Yû›]µ mñÛB¢ķՉжIpuÍŒ$m6,©—’Û±4°¸5hYáz=gµŽâyO¡ät,«ØÛí!Äᾞ|×Ì=æq+ñt­§:ÚZ"ÑŸ¨d ñ¶ÐÙµ(èöX/ø;ïíÚV ÷|«jË{{ªá(F³Áo³´æ¢÷°ñåüö“²Ësyë$é¸^î3ßÑOÏ”Y_·r®W(÷݆å ÇRŠUU5FÒé‘;tì‹´Ø|ì Ðíô#/qÜA9F^zbm¯’! {â^ó%EÖ0À#«Jþ®å×RøÌžÜÛßÌb',¡5}—àãå=¥¬Åuö™`› ,úˆñø8âÃùáq!ª[º”D´âï$O)X®¯C}îêHtÇ#ZV¿Êtʪ¨>²ÉoÅ„Õ5Ýçχ–ö0+C·vE "zŒC½…òÀ­‹NíOU¯ü‚°ŽË)‘´Xóð»¤ô °¯2ëÇ¿£Ö;¡Øã—’ Épa<—|ëöž¬M¥V¡$jO¾£ju©a­zƒÿÇ=>#òŒ¿7 ©ì–¬å̋ȗR5‚/u4ÐáÝ 4j”+†]áÕ] ©Ãì_ä±Nû=jÓ!Ù3}†B>Φ>Âz&$º©2>Oö¬î®pWî©`çë8z)0Zg’j²\è@P¿ÂñLOù—$Ùñ­ó,p®jW׫BÉÈÍê  (¬N-¬—gâšÂ^ ¶ƒÙXRû™ÍvÝ:ÐÈÆU¸¾419Ù<¼SýMœ©§šJ³„#ê)¥Gù(¶+¼aŸ9éàö¶à@® Ë9q÷Ø„§ËV¼“kÐ^qµ|_’V{Üw‹Uß´úosh½z­áY.·œÛ—˦í™(ÞŸÅsªò¼¸Ši‹Hðeè»8“6éR\|½ª-nN[數%ëõ9β¾õ@rÕ¿¡[ÌõL9]3îW«ûؾôhE·V§³È:ÊÙÝ7'ïU¯öéYH>g öª3•Olö%›>xI–Ù¨|CØï|è2Nçqôº™,LefI!:¼<öÓ¡0ûû×ûáÊ=TÑ‹‚ío^­f›±œê%ê&ÕLõsÕÞ=oX¯-nyî{éòiç¼JÛ¼û· áYÍ¢W1|'ž6$ìïbõÌÑßeù‚Rÿ‰\u9G{‡:ó<ž‘¬±êª`õ¤;ÖÑcÏlf³Þ2v!Ó…­Ì{×OÇrwH5;(5- ý&±+&‡&‡D¹ü:0žâPƒ‡%8^íŽ Ç«ô«ÇƒÓ‘7Fvò¡»ùA>hwÈ«µ˜q^§]H=f,–5›éÞö¬Á3 "¿Mù xö“Y!¶¥)z(Ì:\±^À§lkäý<ÞÚUgf%’|OÏ%Õ*uÄ>¼Ñ³‡„Í¥+’íáG{B9Õµ ‘™¸Ë1û¸¢ÜÍ´§òÒ{•‹!PóÞÎáŒz®ÛžÄÖdÂwÁ#?ššÇhô°+ù¥©é&•ä¥ñ¨ðuZ£e©¿–µ“½"J‰³¼yÊ•l> ‹z±ˆ ãÁ̇¥ÝåyÑýª±²nöH¥½W6¡Ý±J$óž¬A¶÷^º7¾6bx¶x?U)Þ ¢:éçéüù©À2;ºë-¾Ÿ¥^2,òÂÆv@{}]”¼ðÀ8Ñu¢}I8²Á ËE‹•žÛ¡!ª#ÇÚ=æºnНÚR*‰ïgÆk»€iõ8à Ru »ÂWgãÆ«wIhSÖ‡NVçÖ¯c—ˆ7’æÚ½.°žÆ Âñ8lô\©n­6*ì¼ÂöTÑ*ô‡tø-½Yç<©¸‡ëíÃ%k²–Teð–¶F˜òö×VWRïTPŽ´sO]®ªÇ†ž8VvºS/[ã¢×ÖÕWï0û 40&jŸ“ÜH® ÚdgoQÊ!ÝÙƒF›å«ó¤"—N¾{òоUÍÖ .ž”.eÊbï°”og|ˆl¥ÚO”ïrD„ H¢ŸïÓceM“ïne×íR™6BóØÝÒÙ-Ôlh+ÛwºXð/¼iÚ«N$æÁ<bP]½šY”0§l9ìÏû>êk¸ØçGUiãÚÜ]uç ƒÓÙfŠaA;¦Ú]žÜÕÀ+éuäz6^²Ý!0=3úí•&ûÏ:í/’õ,ëúÚßÜžæø8±õ†{¼¬x]^v݃TDn¥ñìö¼-ú<‹î¦æ4Ý@ÏÕ¸'ÖÙ4 °™ˆ Ãfr¸«aã)‡ÔVN»›t=·V·' MYpóÎjí{Œd$§l€²]'µtœ2¸£ý|TsäºR"¨ÆCàåY*詟ÛDÌü»å‰Ä _áö‰ä¡ ƒƒ¿hÕ¥!´µ­ªÒÉ/µjµµe(ÂSSõ¯íSùGÄ×Ǥ÷%LV¢-ƒÝ”£SØïDñç xN¥kl£ ž,±|O©g ï=›®˜ ç É«¤t7¦§&à(çM[bÀ¡±»Ø§–¡ëÉþšÖÇ`ÀÏVË 𩹆@Héz¹… ˆÉ>­Æªâ‘/‹ûq<ïU k:C}ˆ[ö ñ®tЂ½³é…8lòy÷,d·{ß“£â´¯-ÚâšÝÎ@¶uFk 54­îQ9ˤl~Ô¹ÞMLÜ„C‡-Oã :ÝVØÁVèTœ²m„«\g{`Üú4*ÏHiÃvëx ìõLÚî>M)ý-Qöt–œ@×H&A ¿‡ù›â6·Û´žp×[¹+§xØÊÐË£VßV»3½mÀž5“\µE6>hÙÞí÷Tx©ÅLi*Ök{Áì&ïkOœ´[—z9r´é–í¥¦#À&Þ ÌþÙ¶Fbo—s^ ¼ÝN?³fS꽎¤…`è6Ó³Ýõê–áY¤.[ú-ùbøñ¨"§ŽžÁãgQÁÛå=H ³÷ty¬ÀzãT#sYYtò}a‘L!ð(Õç|YÏæ©ÃÃG€¨.t¼Žîi› VôÙ=M£2°®Ž+~Üð Ôy/nô©Þ„UŽ\Þ Ÿ=¨m–æñ±FH2ç¡Ù H".7–X˜ž~¿ÇiÑ ”¶E^Ñ'­Âúïöª™ìBâ3²­ËöÜ‹]X‡ü•ŒBµ{gàÃzåò‘™·ÆP…Eˆ¤v4q$ˆîdó ‰_@(lCXOƹ„ÞÄ1Guž®®©W—Þ;©8ê”ñrsãˆ)Án¾ìÞ¾¹(xï¥Ëþd“A³éi©•¤¶­[Ùº@ºÛ=6‡GÅ\š|ÃãO@ œ‰à#ÊŠYTÙ¬xÅAŸªSÄñò5¤@ÀÝ™vpkO€ˆúçUÞ§J/¶ÕÔ— ®ß°7Ðô~4÷¹¨;²^ÝÉàV#¦š˜k*HPÕ’Wk摉¿Cå2{Ò¡³÷uXíª› ÞQ­ØtbMHÕ…E¸çÓÆscáÀcëe5/V¼M5õÆ 2;-ºaÙp3®t{%5öúºp” Z·œ©öÕ‘Ei'"/ É–Ž›w`6ú˜€<^‘f*¬Ï‡uÀ‚š…âÅfglœóÕŒ½°yˆŒ²ëéjpJ¾ÚÓ6ºó]yÒJåjùtج¦ÂXÜ"vŒ».-¦uJ²©˜wë(£þ1ð“yž‡3W2Æê¡ñ­°Šâ®!î¢9Ÿ îC‹”mYÁ+°n‘ç†CR4×sY¼ÍçέZ'KÔÞéÒá¢*ìRå}¬›®ÞÒ8ÇδYjW¤)¦:Lú"‘5ßÉëÚtÞ¶_ÚªjÈ 7'õθêÔΤšŒ«š›W Ž4cÎ6UÕE”¬Úûè\R38ÅqÃãœn| “8yÏ=øÅz;€5¡B«ªRzÂÙIÑQùËf£³ly½®9!ü„1H½™AmŒº¼'z©åâˆ\»µÌ€½÷®q¼X5Ëð“rwL0uwP€4¦·°ï¥kÌU‡µç¨ ï`!±Æ}ö¨Ð]¿ãVˆÔzBÚº}Ù¤ßGåÖzª) ~ãéÚÞr>°®Â}\Ùš‹,Ó#‡@7 ^§ªj_f½åâQLyös˜cµÝ9MÅõQXÏCrC=Š'Ûírd‚B¬!ÄÔèÐdâÒÚÈPV†‹Ãâ£ò“NøA<È-<ÖPÈà*ÖuàzÛj‰iåuj— `NsûÃo‹9„Ú¥_8ÁD™¨þ˜“‰éÄ·'ìyÖ7&² Ô²®œf-Ÿ+m=pˆ¼N³TGúCíú-»w—ýÔoê²ß#¼ÊÅÚ©l‹ürlº)à £²\ O%‚@4ÅsYɶTz:ÙÌÚ±H¹‘+»är_0‚ Ý·MA»×Tã,¥„_ 6¿ú´}ñqYÆr)èTy¾Æ^sÞ÷Ö³ÆêH0ÈÞÍq¨*Ù/»wÙsÛm§ ! Ç%£#2“± œu†7•,´yËdzç`58zyíD ûw¦½¾ƒ`z-¶RQlOüØ$9TÿÅù?ÏÀ`v9=uœ³EGÕ9âPÑ$yëôÍŸxž©€)ŠÅEÖß‘È@`©ú†)v¦-z·7Ø*=÷$¥=‘Á¹{Òáyì{§}ÀýÖµ&²Ó¨WÒÈi7¬¥„Ó¶]-ôZŒ"Ž9;P¬ßk”¬Vö‘=®jÊÙ‡þ2+EL"¬—|ƒï¯yñÙó•7+¢ÐâUyã\ù`›?HDò«{Þ¹áAì¡ãõ«ø“ÒðA+lg󾆾ið… EUÆ5–Þ㥂„y÷ΡDí‚Ôyk!NHõpŒCÔíŒ~ Î¢z Á$H˜²iƒcÞmLÑæ°üd d¹ºcYñW´ŽîôR+±N„ÎU¨FVɹnït«#:hnGuŽRÜWõ)í™ïvˆ$…jhí ?dUµyVöbµ[ä5gÏð]Žæ{ÚvýDYœV4uSTæŸ?óöÕ¯ 8m²®VÜÖÄû)Œ¡1½u®¡ìêT2ÂI€õ%U½¤®R€r¯Õ¦yhX×E.§íýžJ^Þ#TèPÎêÜü}ùdÁ¥×3·úl‡¬n(† ™»[¹vËô'`ûv~f©»§Î¤¶JjaÛ™Ç~TDzXVp\×ùæYçf›Âh²³J·ÕÂÊ¡r;¤ó謂150œ{# ñlɺÆ\›õ‰anWUÕ(^¶Ù/­X\аÕj“dÓ‹,å· OÛæ»eO2/(üJ_`*áL[³³L2@µ´lþÛr«Wùê-è'‚EÂÔ‚ÒUmûÔÁ›×v5Dvz©ðeµ'-ú—,:UÃ{“\20„ƒüYl£ÕöÖQ8.æö¸©§ü¨só(^ÕmÚÍÃ)I·ó[éuHíºâ1£Uo Ïz¢µ¬õûçe;·¯ùvd‚ýD¬è³H‡£ª–Œ3VÝÈþσd?´ÞJmJmæ±UGÖ•¬X’(‚ï‡`¬/Y©TÙ,¦‹%1kë¶Vt&§ÍÖ6«nïY…*ïÛ“ŽC™ÙSÅzR]Š Sâ|œuT“O/ .}Ì’g_³ÞËÞp^K3ÿ¬ãÞ–ç¤D[¼=B"õ*8½¬Ãa§ÆÊÄÄ`JÏ_å´Tþñàîã¹ÈÎ[&¢=êÿuµ3,Ÿ98 š;-š¼P0%ÁîU—X¢ÇQ51Œ3hãõ¤gßNÕ×ðô…‘ævŒqz­e+j ^ñ£\Úh)û³ýåO#…‹‹% é×µ-ìÖØf [4íâ²^‚ÊÑ gja+;­ù4øii¼WKu˜nÎèÌØ§*vß)xÙ.ŸëPH”³<Ÿ á²Ø‚ïôª±0'HŽ¥À³r&y%%œDP4[ˆVtî¡Òâ„À9tÊbìiï'ðOÁWg’‡Zõ°)[Q” Kh7ÌSä>å—ªß,té9Ë©5°ë«H( ÀÁnà¨Ý¾)Û3ÎVˆzì&çùš–„+7b¦$ÚÏŠ>í ¯ÊB{‡Ç6 NpÄ`QTÑ¿z"ê{,‚¨£b ZUíBtâ¨ÉkQ3^àD}DCw|Ç9ž"NÙ;Ú!I'YûT^‰O–µqId¹-÷¼ž³¯ òµ%*Ÿä0ÐŒà:eG‹¨_Õº]A†Ü®bû)x‚(Ù¢ h<_(¯BD꜀ñØS·+kÀÑG×f5­~ôŒ=Äo ë‡è\ìj¨§%1m€aóX‰³ŽŠ§_¾† œTi“Bb! Û+áÙ ÏùTi¢+ÄŸrQ;žO£»½Zgï¦ðñèêËÖ9,æÜ§­Çêç?*´r9u©@à0óÐãY•_ÍØ_=LkˆŠK±á‰H$˜Zw²Ò,ùîú‰è|7±@­Öz €Þ Õ7 ”µ©w1[3îûË9ÔôÈ™–Bò½Œ—Œ€ædGF"Ë*2Röª>ÞŠõ…ÁoÝÎöÆÃŽ´Và€>/Èh)‰ïã“Ô¿Á³´°!¼ìXbýÚ¶Öl¯¦¾÷¼¢çåa¨y •3–}í\{ÛyØõ2@m”¼e3³¢ê·ãÐY¹êwyî:DAÚ3jê==f‚_:%v¼oäå—à/ãJ ró§V#!íñ³µµ+ÕÂBe‡Á¯œ¥« ´"^¼ÚÓ¡™¤=íÐÞ²§¤jSç©ëy)† ºÁË~î|ëu CëAJ´Š­—7ïú²ÏhB?ßè™@½­Ó©åAžP°ŽÐó6=}®Nx$*+â zyœ„â|…,Ë> •tÖ‰ÍèÊ;¥Ó£œbuÝEPLÀ³“ú¢Gïvº¿äÙ:urù3X¢t ðµk‰]x G ( ö‚ãOŽ’9¶TGOÛϘø©Q6¼ò.Õl}yW¼S–„þ»ÜJ«¬XJR'(ØËã1µ"Å!7½S=–ö'À.«‘jpq7¶²Üx ‡œ,Ÿn}&X®ôÅi˜ ,‰ZPóÌ/7on)ýbNÜ/Ù‹˜Éªi%hè;¡ÌÀ" JNCx­ƒêîßQ¹«ƒÂ½'‹GÉ&M,X> ÉfF»¬aÉW‘Úv$ÒàMZU¡x»-nÖ´á¨w¶ú¥pîÅ¢:Io,WPÄ";fyÜ3;Ô© =ý•?nUšH(g·weéEB$Цx¦³ÝféÉõ°‡(hy“¸^e:œç<=¥ãžT)Ȫ[E›‰„W©°:9™çû¬4¥ô¤ªâÂn²:á6íúðîw¾„ïÖ;÷¹à×ÚÀÛýV›}­j±£GwÈXwÙžiŸá©°¤F~ÙV ³X•Ó*mæÏ’šîSÁfnîß9šÝa6ÇΫ8 ºívT.ÔöQ0û|È…Så!O^g°_@)Píë1Ñö¶T7'ß_ž:žxÛ€¥Îª'(Ýz·i?yÎññý)[·¥œ ¼bºÎ­PDzQ3vKž±ê&Ý«âÏ˨2k5 úû<$WD½U§Œ[¬Š¤â$$«P*öEU—…E“êl亂ã U^ˆè˜~}MæQvs}UçñÜUB‡žg$cèÞTÝ:òºi*ShtL¦®­„C2žñ*SxÒÉfU§ÜÑá­T@š…÷9­¦nýlŠ',Þ”Q! ["˜È/åŒÀà@6h,Q€¤i¯un7ÿ X8θ‡2‹%L»P=¦Ì`L ¸5TûUº]g§î=Çh§C·yukc‚"×Éÿkà3ÒB°Á:ÃH`dÏT¨tjKS“ ¼·© „МÀ2™‡êÖ¶ø±BÆ=@Ðu:‚BœbQ–ÖErÔdóë°cH—VHæÍ&Qí*ðRžW)¦v¸…ÞƒíZíÊ2LSÆbÙ$‘ûàps¶AÞ†‰íRhN3(¨“6š*1\Vyœ–h Ê…pãaïuØ­’9²7²ý¶dßNUsá]«¢!1äqƼ æ‡BrõÐ ékGôÓT”¥·èv¶[¾µ„TÕ®Þ~6Éfn½´`u¦“ö ƒÆcJm-õµOGÔû.–€®aiZá¾wP}ß²KêÎ`S ªË´/–'|@€ * ž\:›å!¡ÝlGf‡ÜýÚ­}Yw#Å5ˆ]Z”&çPÎhצ'…6/ª©q«œFÌ'Ú¢ë i-|²vò dPƒ ûâ §ÀeUeÁwC³ ñ!Ì×Yt5Ò&žbijp«BI|$·mo7·W’­9†ïHŒÄϫǨE(’›'=²ò…,ÌØ=±óºÛŸÆËà5‹ðNYq£ÓÆ>5˜tÝÒóпÝA*[Æ_u£%/³°úȯáâO×>P¯Ú·VFM¶Wé‘•„–D ?žèÂíî$«5‚ù¤(©VËȦfâž-ßÉ9?Aô}¾‡nŽªKj.©3Q¾´ÏÜ +ÕN„½¿@ŸÀiºG6dÀÑ€ÿ,WñÏð¿S²£ÿ¿bú=’þÓ?$Ùññ+ÿUJvxkÿ×ìØ/÷;ÉŽý§ºdÇUŸÿò$;ö½þ}ÉŽr*Ù?‰Žþ«–ìØ+ü“ìðþÿ ÙÑ¿þÙOþ1ÁŽð_†VGùôÅOÿê—?ýü½üÆ? ß‘¯O_üêg_þê§ßÿÍýé‹ÿõó7_ÿϧ/qßý™ þâÛß~ÿï¼ú/¾ýé7ŸðéÓùõ¯¿ùþ/Nþâ«ßüà'2_ËøîÏ\ì¯>ÿæ×Zùvì¯öüî/¹þýŸ¸öñýŸ¸îùýŸ¸èõÝŸ..ùýþO\ð¿úþO\ìÿýŸøÚ?þþO|ß¿þþO|ߟ|ÿ'¾áO¿ûÓÍ7üÛïÿÄgþÙ÷â3ÿüû?qëñÝŸ>óËïÿÄ=üûïÿÄ7üøÊ*|Å?¢»â3ÿÁùÎÿðƒ?ò¥?ý½"-‹øŸðG®âg?ø#—ñó߯èÂe|ýƒ?r¿üÁ}‹?ø#—ñÍþè[ÿ‡Äa>þÈUýúä2~ûý—ñðG.ã¯þ–™[ð¤”ËãY8BŸîxaí©µg÷Ô§ —x!±O58›Šòž‘ÍÚ¾¯ÕØÝÓíø#GÑè¸_Z•¾pM’´âqÆ5ÄêYqË*ÖvÝàgðäÆâ¤–ß™W<ÔÅ¿í_9»ž¯“çÍfÓrÞa9EÏ÷¾.í]®ÛiM#ë»B„K‰ÇòH¸êRñþ)¥©¯µ}yJ8¼K‹jìxÒùÙc^-¬[tè>Â;UrÕ 7Ù¨ùª=ÞtÍ6Œ[ŸÎruÝ Ït¯÷™”9aß°ë´!‚¦[WíË©þ°'1ƒs_á”·Y‹ºDðæ÷µ. rgU¿ßyæ¡á‹­–‡z»ëî0ãùX­t½úðZS“¦°äû½§“ßü1°£X†æ…¡iu|<š Ó´UŽEt=ËJ}m!kô›7©Œ’§ûõ*¼ Çßs¶Yt4\Gƒ:><(Xô³´w7ê^¿P†c¶ f¯QCÙ³äg<Ú<ß0øÜµŒÎŠëœOzÔü¸ô²ŒÚnó‰uf.¿>:Tf¹^{÷N½À[äòެ—Wo½4bjZt5ZTCã´ÉŽÙÁ0Ÿµ5³“/,&]³®ã)ïžo¿G=yÒsŸeg6ŠEdO2š‚ž8Õ’:EAž_š,>ÇN¢uf€·u:2’/’Ø /ú©Äü¹œìP*+ó”4=ñ©ê8ý0U€h¶ë.Â?àã×µíÃIù¶Íœ ÙíëÔ9îéa¾Ç£Ïè Išóð»üö¡ÀÍ-ûtuŠ­ÚpžoLÎÑÇH¦V—lgç»n…_s³QBunðÕƒþa¬Úhã‘>&âítKY±”ÂkÔ+PE'½Ôýì~ïÕnX>t†Äûß3C¼H„JµFâXOíרFûXÓWeë€}y?zD'-è? xšV²nE‡»º¨çó†0Ôʶ ìM9“s'ºQžŠ˜ÌmÜ+(ê»Xo¾¾2=}<óRâê|‰…퇺±„œ4=­âY<©&;wºKÑ9eÂSئ©\{ÄC7ÎÈv9’M¬~\Õ"¾›°È æçb¼oÝénß“§ÑŠng%ž2¬ƒ ¢ ͶÚôŒìÒƒf5Ë^g‚ Á#7Ý;±óVú`k… 6²A‘/u€Ñ¶ÎsF­ÆæÍź=ÜÞ“7rùÈÖyå¦Çw¯çÉÏšõÈË`ÿgdÉ“fg?Œñh‡qç8µ; õœE÷mÍâ²!N÷3}Xáy¬¯‹Ŷ?¯¶•¦ƒ#º Y8ÒíÖ¯®b˜s:ßìÁ˜²ïú,ž7f«}¼%2¥Òü޳íX]¤=ç ÚÏ8 g7ÿÈöà dUl-÷“þjlfænkèBìT@¶WãK^‘Svó°HÍODu¢:? ¨°Ô‰>­ûßíaY9îõÒ«pŽêùù£äC«‡%°å¢PrÎ1FÂQÄæKöÖý8T„‰a«“.¦F]ÅVò³ʽœ¶Ÿh<}ÏS®•Éy(lãÈ_Rºr:`ü®.û‰Yq Ð H&p…ýM±¢Ø%ÎSÅäðœ9”ux²o}ñ¯”`‹·g,nmw–òzü­†¢ea3Ù˜EË|õ}\¥©ÒœŽ–TÚà–œ9túTÕ«xð¶õ˜œ|Ñn£«kU‰ã²5‰|ŠÙí9’”³_'a} ŽšRJ«š½¯9Õ–\ïU{?]2\q9Ãq‘p[Ï^Jöç­&º}D,3-pÙjΆͪPɺöš‚ CD W{KØ ú/({ÀæiúkÇ×aQq+^7©—¥î¸ML:˜©ÑPtÒ´k`A^¿‰·’+¤p6}uîS™ÎR¬Ò 7YçDPPžã~SÛª²i‡}ÖŽT©&cŸ÷òÈu!ì3HÕð\[SÆv¡ÔžmºT´»¯ MºÝCöV¥K]o‡8O¶¨Ùá¶«!é¼5É`i]™.Þ¿>ó¤È¤Û7˜ç©·§V[ä-[ÓÕpüµ;]/¤è\g0a‡#Nç±yˆ$×ÈûVÍl‹Ó]æð©ã_pråy赟,¿Ì¿W?ŠÝLë¾uT%ƒ³HRÃe% BEòˆÞ.Ñd^Ì ©°‘&àõp슰œxiãÙý3K¹ÈçlkµÜ–f*ì}îyµê°'ùY÷C<åý¯Ê®™zÏB¬‚VVP¤yN«zÍò`¸!ÀmòtÄM“Ju´„çÎê»M;Aì$ÚDóNº!ìrûlÉ) ܺyŸsmªn÷xÀ­Jc´é¬Éh’7‰ÿZ.²×UJözàÍŠO…I€0èÛy-‘Ò1èó>tL›vóT¿½ZÈH]…)=‡–c¡vnÜd¨9æ—In—³—{Ø>”ÍñÑ[s¶©5]qòch»vßvñrŽmRX dã„vC™Tx8»iÛÙ¢¬ÒÇ{ÉÚ°jry6îðT€G]Ô¹" ìAj…ãòü=h‹ ñ.°½ K>ìáî¬E}ü ¥A •Gj ؃Ñï瀀ó[ó°;›4QiwŠ04°08ŸzÇÓ×AÊHÔQA¡7ªšT*M<àA+Àµêbƒz´ì¼oÖ’|ï, 8ã,{ïÖU 9²Â7€ÝÙu¯U€.N&‰ªÙSz…Ÿ¯Rk·õv0p{‹­×‘¬Y(wcK aÚ#Y¹ã¯A³Zsqi~ ‘Ñð&ÙKœ›}ô\AÙÓ}·þ#e•1ô†g%6Óû5[‚3;5Ñ$7(õDªg)O­_à^‚œ¬6n‹fåPºR R†JÜEd+¼éUÈÇdÀ‚8d÷wRN¯B}[ X€‰ò³´;èñ¡°Âîx\û•UžÆ±ˆIÏÍ…Aå…kñT¢NµÑaÍÍ“ôª9 -k**?â¡~Sr$¹Ýž©·Ñò5茂ٽ4­ìé¤-‘T"z´…9Ò—Sv¸è@“dj`>²æ‡Åä ƒ±È¹íŽwzåѪ™k;vNsôœÍÄVUÀ6y¦²f 7ûaX¨ ó®c;+é7Jø6(÷C’žˆDP ‹ê9Ù>Å£èÑ^hGÄxãpHŸîu0aå«í‡H£ψzÙ8ËòHÛLòÑ‘ ÚÜl"™o7ëÖÑÆ‚%’ðì^0#\„ÅGuß;›ã˜N‹¨ÊþšZWÞʳ nz{OÐz/ŽB+"9Ik§FWɼ­ãKt·§ˆ÷°R+·­š6£žÝ¤ãÁå¸2ÄÔ–ŸÁ"wnÐ×*`ÛVÎKóo•0S¶F&Eëì?ç¡)eW• x"<÷®äTWXȆ.¨2DuX+ÒäG;¿Ùç½KwûjfOš½/[fBEuªñWçPCÆ)øimÅÜl »ï°fmÛÖër vèȬÅÎr2,RÁ#ÁꌋS±áØõ怦DÑz I›]•ž ÛÈ®Ýö$ ìÞ9-ôhŽv¬Û"¡ÅvÉé ÐÇé©ÍýfM/NmèY¢· |D‘­Üïäãjcªœ.å½ßS-ÍÄj³Dp ݉€Zʦ+Få0ž€¦òÜRªD‹‹›=ÀjeÜç’ ßÓ*-TÄóu½MÐN°²Òm¶Üv‡¡±lq ägg?ô6-v£“›:Œý;ÒÔܰ‡°ZP‚”·‰Š«+‘o‰(fM£š’/›Òâ)oÏ¢†}š<ömð’r.²9õ¾ö\ÓàkZ;'+>²T•”3Dvðv ëç}"%{f5· È©HžEQÿ/—3¹è†yжî¤0‡…Ä"ž,‘OýRI‹çk~;ÑÏZó]Å”-?wUåÝ–¹„õz¼wÝm½l6ñ¾:8 :Ž-c7) x°-À7ä†ÊìXߘꀃîxê8E2ív^¹¬ýVbÔþS}㋜F8%¹ÀãjQ‘¡ñ1‡'X÷œžë9ØÆf]eG¶*W1, /¾[é ‡™À¼É(-eµQúŸ×0#A:ïËSTÅ_)Ý­:CPs)W§á•á&‰'bíR9¼e]TL"tœÐbý@¾Z¹Æ²ÍìÕÕpFŠ&î7¿Š™À¬(äë°œ©Ú]'­†-¯»‰=Ž4Lâ"óT#©&Êä.ˆŒ]Ùƒ HR1Ka-zðŒbUçˆíD'XZôÐ|Þ*Uwc±†á ª÷K Iâ`?½|m|õb®×Žø᳤rô±šÖÚLVø—•ðð û:„}3Ä>ð(ÇØ~ñw'/$Ýæ g+ÝoÔ0",]KþÖà Ñf ¯ùvBÈqí¨Š£|J}UÕ ^§U–>ÛCA<±‡è M›ž;÷™‚G?¸åæìs?B¨h&ƒjX§ñ|:¸f¿¬=}ëëú:Ð;aLS꽬z;E?®¥ItÓÐÀ£‚Å´@h• ,xÃi ã6-%†WÐR‡g^ƒE±ÉßäÄÓµ¬“Õ™à`øTî¨}`'‘ÖæÇ?«œÇmæK÷@Å)}€½éƒ¬•ÍLëRg<{ˆ…8ý(Á¯r!;&%ÏòyZ2_KSÎÞd8;7ƒjÙÁZ鲺?5Z9y¶[«$üñ4:ë!¯“èC½cåB€MS •SÉ+ѶâÇÑL;sô@$€#7Jª†ß’°VÁln–¨¯-Ï˲ ¨6u~Ú‡Ëx¿-6) }]²rº*÷<ŽL’ Êž[Õogz¶©€Ô:²eF2ÿ¤På'ø#·»·<:¼?B0VK´dA´’gÓ½Ï{\YÒDêa½qÇrý°%#.(;û.«Ž¨… zôåê»çQ/0ÒæVhgÿÖ‡ • ×Jv.õ8=7¯¶Y*|4¹Ö^ôVͨ¡dÅ8¸UY²ó<(ålôàv<9 ùN —4½2” x¡7ÄãÃ@ t¬zƒžJ“*E=üìÔÕv«&”²OŸg¾¾† æ±,Qô®‚…#ºéÙCò§j&R–p:!N„ˆZ³CÀµjzh¸Y£|ø:x)w5&K`¹Eöà>Ë)Bv¨+l<[yövQY Ì»>ŸC¼¥cr!%Ù«<¸V±)yÎùë}ÌîÄë ¾g¿Ù[ƒ-±ò1²F`²%„¼{8È«"z‘6à!;Œ_çÝÝOÚ£E$ÃvaQõpŽš0Óž-lL qw]˜ˆV÷È9ŠàduÈx°™¢Í—±ÛÊQúKà‘\EL 1Xøo’:õUa·ˆ$ qvm»`ê;…`tŒÇ±¥>ÈãJC³û’-oĦ:î ¼•uåaª&5½• æ‡ ðuÔœóN³âžëH¢G·¯Ž©8™uÔå ŸŠ¤ôÆ’ž‰Ü¨’Ì|AAŽ=íûQ›®®Û™/‹ÌÀ°¡ƒldun‘¡Ý7I¢96­~=Ù"âEö«Ó!Kµ Ùð[Þ[Šëßý~¥ŸäÙ39SCÅ”.Áu+Ú>–".ÓùÌäqö¥Èõ›­­èţȭà¿vØÐoœÈ´¢îÐ+÷©4rÔ ` ‡ î"‘V8Áì>ô˜¿†õÞ©{*”Õì4tS9jØz>Ί°™“‚ã 7=(%OÞ‡f xÖÎ{¿zN<5¾%‚Ú.žÖ8BשOBØk‹XØ­s6xãéQw{y‡giúkgbBµEëYOR_ä•m['«êÞ²CÔXVíÒ»‡VÃF aEOmÚ¨oO"äáx?ƽ¹·¨·ZÛ&hù¨¾@*þ^3Ì:,-ájÝI?›‰¢ÍZY3É÷k÷RmÅF:°Å°.ý4Ïè'ÉTíÁ0¾¼ *%ûr¦¶ §ó}‹M4$œžNÌœ U kÞï@Nt¾{HÏÓÏÕt±>ï'8óu‹CYç+ÀõŒ6ñXªjòÁg][Πañ?BKô['Aeáz/ä[c8W²n@ ¢øp-Úݨ=òê6O/ él8Q¼-¹Ìp,r´$+U¢ ·?“—‚©Ä2›•8²¦¢r¸”Ç¢L­r$õÌ8’Îà—ª²*ÿb$=œD2ãuå.‡ŽŠí}³Ý|IÓµcª³Àx/+; áíPíqLr%5îÇcδԀØây-Û>ÐUf‘’ ª:Ý»êÕ-ºNIJv'ZwvºCðÈeIÁ8!R}öÁ[ØÝVmʃ6›‚«øà™Ò»¤£¼§iJ%,È®MâM  (õa ¿õzª1¨5½Øà¤Ðì°¦T•¹¿5l›¶¥9Çÿxâ¹E󤔫Ù*YvyýJl–B…mAßxx<À¥g9î!>í~Îã¶]Qm÷VíäfÙ¯PàQ.]ß²¦ôÀ¤©Ì‚p_vGõrïêT ÓÝJŒ0eú=kŠ cuð‡gfÞAÒÕ" ]¬ºõñµ°”YY™'þ„‘½h‹\W!f±c=Š/{¢Û¡{öãsÂC;„TãÎÛD?µSþ¢wA.ªRè‹NÜr–—¬$;¡4îÊö>Ñ.ºrTŒa îÄ·«mrñ$£en [€ï6lW_ºµ³™¯¾·Z8zz°Þ§J4î¡5/žHpéC.³ôâ!‚Èlüsk«‰WQ}ÒÌÊ{F™6Õò¥ïvžêB¡“̯ _¸XÐ|y%+AÉåЃ÷µEþ‚ÏJW%Œ·ñHl:´í¤ØY ³R ˜eï À©tºcs~É_›úXÝš¥¥H&” ¸ u\<GºNÑþÕ6f6\ÔcBO ë´)]<'¹çA6ª’‡„ ¿ª+ðÏ`}ÀÈk0 ‹a7CžŠ3¨¯£‚ªºOØÖwÔ]ÝËÞºaI›¤ÎýÛdB€àk,Q&ecl«ô3dm$½ºˆdäÆî¶È‚˜U*‰áÈGVƒ‚~+ÄC¢ë ØÆŠuVºŠºÍ…G#vMmÛ`~Ókð1й·<™R`J{›fշغ>ÐÀo°¬Í@Ìã¹y1†-…LªÝ]+Éþí>WpI×Ù3•}m7òŒFÄ«¯íDÍez¤\¼GQ6|(ÀÇVyX3DɤK`KIk%øš-÷é`‘÷×DûFaC•ý²f6ƒO»ê o=Ï·%ž&ËÖ§!Ô>`lgK0´½·Œ¡êíM_»~®RõHüð“ÏWyJíK4oƒçLÞ‘,].å¶ ¢Za A]`nnˆ¤:‡¯y‘̉k²UË~Ò¡·1F–í€roæ­¦fFóÔaYuõ;dŠ©‡Ï;•©²½a›.ËJX©/±] ”ÿ—î=™‡8¶ç‘ÂŽj=j>§±†Î‹H–W¼+ëùZ§½u…ìÚñ²Ý…Y4àC¾ì]ïÂk¹ì×ñª”¥œ»˜¢Œšs…=½»ÀHÄ¢n¼˜ßh¡$xÅ~lÚ«¶X”t=ÝoàöA/Ñdh=KbiÃ|{Ùý6 )¹LV†¦9<’p¤J«2s“ýþD8ÍÔd¸-G9ì’£¶^Û©#œ™¥ë¼!›‰Uè|}\ĩĤ\;«ÓVٔʧɛnzõ=wŽRàÐÞÀÒ«¬Ä.Ëq8`Ê#ÝýÓà°’ ß²<¶Vã¨;Õ䌭]‚DÚåDê8^;líì2~ò®ø„­?Óy¹DxÔx÷lülK0åBŽ˜8›c3Lui@d#”¹›K’)Úëúuù]R¢¯~‘6…F*ýWšë¡DþÅJr™Ww™ÙU¶{¬ê.ÉqwMÅ‹g)c§oi¤u?0W;ô,VÖ•+išù@9Ûô­¤µÅˆ1}iÌai‡X®è/‰EÉãé%¦hš¢›A¯ÚJ‡1GG|o["ÕʾŸüx9r¡È³Û¥«Ûɦ¥o¶=÷u ‰`Õ(dɶíó2+,&ëŽ øå±~ölc:ÓµLN6RGäo…$á—ÞI²Ño<½x9Õ´ƒÄ*ž›öÁ2»á:2îrüCAO[”­¶·+y<ê0³_Á ¶Üá>Î cV¸¾Ûd^º­QqF»v4[ÈJ«v¡:ƱDðÉ-ik΀Ed “‡ σ%Ô/âq1b—ã;¯&*°ðûrÖ©©„ßeÉÝÖ 5:˜¨C;®—»Ó/—¦N8ZAÖõö,:uåð´{‹B¼È‘GÓ°‡µ1¶ŽÒEÃßÛ×îT„£uÇ™/íj[å—%ÌU©¾|^z¿ëáq.ûËk«ºQþyÌ=´ó°Éö 6hkÍ ³â~€Â ©ºlñ&‘$Ùœ¼D%5Ù,º[îñ*ˆ/Á&P¾ñq†@ƋϚs¶CìíäÝ›1¯z®íqo«!ùÄV§ãî*ž«AÆë/s÷Ny¦ç ÷ël ,Ù¯ª\1y¡(¹ÇÛ´êÍ­ìë[|.â°%q6R!*—§Ð—Á‚¸¯ú;‹^"×Sœ\qFƒ…»å š<±/`ާøËº4LéÆ~‚f'ŠŽ=×öj9º§ºãÕjwÍ8èÉïòr|Læ• wã-R±£6(– ÜN½CùnØâö'T­íöX¹a-§B/5'mmþJ2Ænñª`ÛÁú¢L™ÞûŠ|’<ˆê¤¨e%Å ÅÒ‘h,ÍÀŠϹƒÖRÑAóA¬„¡¯Hö§)l °Ÿyùž|¦‰#J\6KŽ‘Žudv$ûwººæ0»°g#ÂU•I£ƒÀ#m£Ã¤ ší¼¼@Æ€q^û¹@¾BCV–aÕ¯øê¼Í §É›qEGê34!€lÇŒcãDðà8£F§Ö¸‡Ìm–w™Öà ÕáfPO2‘?ͺ²¼H Ê35«v@¸8oYU8-âY,ÔȾpë®Ã„\íQsT…c5à¡HÖU< Gíè0ì®¶¡Nýã‘8äGõqz0a@îˆHÊÀ~8aeå!Uülwém›¾è1Y†Ã J[&Þó©åäÝXþº×A ŽíZtyÕ¹ÅJœQûøºlù·Ç çLÎÌ6Ù1“çq€ÇKÒŒ,Í2ךº;.sìI³ X¹ÓÀÑzÿAp¤YUC»E£Ö,‰ºÒàÕž“ÚÖb—!÷Ú¶q“§„b\–¤x¥N+ßfQZÜÁVÛ&N•&ÄÙ,¤áÆe¥7 ˜”ÇÅâÒÆv = #.~o¼‡Ör„“¥·ƒÎeÛåWádïí­È~vª_2¢½ÁÚ•å&:šÍL«Ý#]Ý“`ÇÕ4-ÂôX^Ë $âPTNàñ#Ü»îu⢓mÛj™v™'ç)ÚÚyÁ„´é@¡LçŽådo°“V8”ä9«~˜UJX͆ãù¼<ù ÒÚ› •auåë6…»ò½ä8ë2®TÁÂ3ÞCEÃDt´y€õä\sªB²Vÿòiãu:ÞÖ*X;¹Ñ … (¶VvÔ!^ϸ«nM·@$wŒ`í–,²še&žb'›ÆÊ^¨»s–$ÍÇýìÕr<ÀÅkÿ½±m=_Í5É*D©Ç£ ðá\SÛÖ¼DJËiÒÇN»…Ò¹ñèÙÕe$’YÈM ëGëì=ô®­®_öÃe ‚{Õò]MÍR-Îù8ÅUÏzî(Ú ©Ú–P-î'sÞ„oU÷ä½ÉAy%ÒCÙ"HN¡dý½yàÙªéýT=’‚§âcÀieƒn¸¶â8v"åqw$5'ê´V€`ßñ°‡m›¿@ÊtOnèx+[I'Ë–œ£¥¥mv/û÷Õî&Fž„˜8®|ÍÝíø^3„Í:š§£—Ö{"Wµ¹u^!™¬¨\/˜üÞƒJíàam{J6OLGô[}Z-•ÎÛ%½}-í,›VUãþh¬Ï>R^··<å#„¸sµ› TžÚS'Msc@úJñ¼µ%”ôCe?}¹Ø}Jg=µ]3S»‹­ª\[¼NPJóÄØñ6ÞMˆ¥–äîs:éT:iÔ÷”ªV{áåÅÝ!—(ÊV­Wãi5½°ª—–¬:Yrï OKkÏuIÊ.žp –`¥Ýü×¶DøºöN»ž¸.ÛuY²I4D–»üبTMˆŽzµöÊ©£ºæDz^¿úQ]xÙ»«u°2ø¯²­y€¿VÀ' º\ÊŠl{?u|Ö*þî°QªÜ‚â¾Q§f8L×MúÜ$zá4!\’Ö:ø½(KB ­SòyÇ R^i‹™ú·É‰<[ ‚ÚÄ5„}ªÅ-ró„)Hvv²Ý®fã*ŸCšèæ2~«ÔS@^iÚÍ9:%2†õÜå¹èí®tô ×â1DGÓ¿d«áìý«-½¦C‚t}OYýÝ`¸Ä[!`þ°BØå깂yÉZ_;ð½*À›m¬/#´Êξç[cö†ƒ³W-$©ÇÔ% ¦½\óthÑ[ºo‘­©ï‚÷¤t[ÃTÙ×~;­°%Qª %<å¶©Ë Õ/W¹|âcöˆÑÙýPâ¶iƒ*CwXºðŽã"mdÕ©ß ý× (ç¬p>oéZ™–¨ŒSqêŠ-™ÑÞòi= Þ‹¥/È„íÃCN–¢U+l@Ÿ>5çÕóp”'=Bý»Þ6r$û÷À¿«ØšYS•°“ddõ´|ôßÍY†fœ‹%ô:Œ‹T=mðXñiŠæÛ:{5»£gq¬Ân-Q‘a]´Ëž¾é(Í4K7}0I’f}¯~k„ÈÆu†ˆTÖoz©¿º Åðx*GUvÅsô¼×éÝB 4xz\ÔK¥{t0ux8—ΗsŸ­¦Ç*á< ‹-•’~df»! Þ~:õãó^ûþ÷ s¿î o|tW×÷œ¼ã,5ðôô쾓ò Óˆ¨âÞÙ@@".$)Z›âá=ó[—©ÒÀß׫þPq5jNǰUNa]jIK·AÒ„ÜkÄO—¶·p¬ ØÄ›OðŒ"í\ªV?ÈÊ*w¬ÞAéCl^…–pó#bæ#ð.h{Éhudqò¨d1OÎ1QVÆ­íè1è,â¡ZVŽ=Úó À (/=@¶+Ê"»þÈ¢DUˆ4ó¸CvÎ~žºî8~â?r x8»å¤Öú°—|CÑM¡j9 À~¯ó€ƒ5ëŒÑžS†6ì³±m©ðGZ$âè4¾ÿ¡XN{=º'JmÿÂlk€§f¬Ó¡ÚŸ BRæ¬,@ÀÖʵöª¶Àn /1EÏ>×ᔺ&dá-·AÐÚ³Ž·®W£G_žÙ¬Õ²³}NÑ+,ù·æØÕæQ=éé&°ta¾žýÚxüÕ¶²;<®â×yŸ¯ý!d;8Ó Ù·¦RżGÚ&Plvþ‚\5u´. ˆÂŠh:¶ƒ Y·¬¶j@/ibDÌÊ\€ÌÈ@â°u2©5ÚÔÛ Œ]vwÚ†ù)%€Ê}¨]Ö:*°,I‹Ï“NÒ,©Ö´çf·öWÕGÀƽ’ÆS¢ëCAy¢GRd³@ìØD-X œO1@ÏvðÎå³èt5§ªÖ¤÷|«­ç’#µ§óÛo¨õÃ_$"E'Ø<š´Æý°¨ý—[lÀHì»­{¬6¥W¿ŠÌwݼ|7oÂXX—ÎÙQV["Ù¿DØSG”®Í,!ËÉUä#´å^W0½&$1’’JVžÃ“Ouf N:ÖÄã:=çGø¹Ô=uo¯*(ÀcÞ<øð=—K-Öá«é¦Ï&0o›Â.¡Ìt¤Ïa…P¹Òz‚ò‡öÀ“U›TMdá¨Ðr˜Õy}Kðì~ÇÏ”o zÜ€|y¢¬¨|˜®/äµgX…O²b `whÉ—®“¬vï2óò,wH€ž¬D"v Wróoë Ý]L †­BYe÷ØÝ:Ô82¥ˆ;ðÞyD0ZjKÌ|³ß ¿Y‰Þ«v‚©ÿ;Ëzòcþ_gAÆ«¾Kˆ– N‰ö‡ËC4#2{L'´YðIë<#Øak D> Îö,¶‚üíJu‘Óǹő÷¹çeïÑÑ絇ºcÙÉyt9‹«s6¤õÕñ|m €7õ –Ë’Ú ¨Q­ÖF +“ mÁ^JC9IÅÚ$€‘¯cËé0xÝ«:„MzW¥Ì×äi%©§9xø*hÁšsv˜6¬žUÓOn((¶Ç9æY–K0äî´pR‰YÖ¼­]:26Ûº™Äëë)zƒk¯(Ú+ÛO¢E¶"öÄé.«ú3øÎ:"Kä¡ÜŠ£X3Vc“®°oõßt/˜Ä_ ëé$÷§YZ#"_>gŽ*tÌŠÓÔ(·‡,ºê9„uB†ŽsLeÆèËÈ8÷¼É\³mñ‚fOE{-^IkímÌ}¨Íšo±oÁq<˜x‹Ûm J­ˆÃ©RáCáZ‹ ÀÄÙIpLu*zžiZ,»MIaìI–ùg0_¯–Ø »ì~ÙôĈ$Ü;TmÕÞ–A”ƒj_Iø‚"èe 7°U6Œ/ú®§ 곚­9Efãqy?Á@šV9Éêq¹‡±Íº'äH²¶œM«U‹_}¢J‡@‹Ãã+ý’²Eá+;¹`O®!é•Ë€‚Õ#(yHÕÐ :ÓœÇà@ÍKñ‡ËþÓ¬$›_TgÖh´ž¹òòk>O(½r,*oká±Å}ERd„xqãƒìxÀ†•èu²¾F‡^Ìns”ž³Nü:d V“ÃHßlˆó¹Æ¹<¯oùpÀg¹{[·i7+ z ŒáGêiéU`œgcM ¤ŸóRƒÖjΡ. ì¹NíKŸÛ·«B$ÏÛ &NÀ´ Hú´ÚŠô<Ƀ`wçÙ 9x‡»Œj)$Å“ÞYŽN\Ôí¦ÊZ j^¥&ÉßNZõ-)q€8<'Ë6Vð”;¼åÏkÛQ¶S£fBƒ§ðö\‘¶2?6†CÛ³ªÇó=•–²Ìž6øÅVÔy¯`χaÿ4F¬‘íFBþ9±%ÁNÕ›¶gÏ_M¾]EugDœ±$>:Ó­æÜ ³?õ†€ðI¦½0v”êQdRQYr@á¹ü>[YÉÙYV¨ÕJˈH‚©¢Q©B{,À`tJ¯Ù³¨jª):mébT²­Ï¥cÛ¶i´xéÈ!à-·‡GX3¬¸÷C ‰ÓÖå¹ µmÎ/ª8­d»yQûDEq^ÛÚ3[Òü?ÇjáÌsÔt¦]#(ÖC_`E;Õ•pïÙ¥»5«–â•3Uj Jœ6kꑾ§×ÍF÷·Ý@ëãŠ,‘ûÖûûÑ/Vq\­˜/Ó®{¿rDH‰nRHQ§ÂÅкʯõ¸öÌ®­uUãû|-êjŒ©Œt‚®9ä¿:ÆaÐEÀuôàtÂJ†¼ÀjV½e)²G¨ñvT Öp³¼Åtž¯Ã†ì©'vu8Ή=ÁìõT€Œ³IÄ›‡á£ÝYˆ*É×dV@þ$3zWm^»ÅS;“TLeo]#m µ‡ˆM ƒ7H¾,;8¶n¥¯'ß'¡Vâ‚ñ®5ðíü{—ÚÄy À/G9ÜÏ—z¯J¡]ÜàáÌÊcíßyOŸìå#šXí‚të”jp'\òvTÈtv ~¶øM‚ÉQmo>ß»_(ÛýjßëÐj˜í5Nk4ÐF§Ñ”4ó@tëÜ6O¾†ƒ;~+Š»&_D[žM^U] /0¿Fó±oÊî5}^ì´$Xü”ï¶ïGÙ÷ü²ÜAhd¥`VÕ{}´cJA –Îìíó" @Áø=çÐ÷ûM‹!fW¶ÙÅa ˜„S§ïÖÇ·D\¼@›û´´!rå>_{ÅMSìÿÁ;V N“³Ãà'B}mJè;Ìz4v€-&6Ãk3_»LI‡ùÃZ3ÃEÊVûšï¸G¶%ï<ÖκíA&ïkD…‡íobÝ.®ùS€’Ë‘ðºÀ‰Ýæ¢St|‘%ï•p| bqÅq«tVU¯òȳV¡&ç¹îûP‘×)?[toPC¿Äy•-8.ñdªÍA/Nå°ØŸÒ–š§ÁnœF_•Æó–™`«ÄªîÐ𠊆z˜¨!0ØÜéîûìÁÎjð'ÙgɪúŸÎx Ç#iN3Õî‘ïSFAejvfv¸¬ß[¢·ªéù‚ Á¾Çã<÷Ü¡Ÿ­<í¶Kö°REÓÞh– l,|Èj[ÏþãGSäÎ[-«Ï¨džû!YK.Þ®Éʆ)´múÚfÏp<‚}uÙ5ªÖòUŽAv’rð–¶Æ6² PsËsÛSã‚T=*{3ÈÛÑV¹s@Ö^$N4yMçô¥øU|¶«¬»?7VÙv¯vƒNnˆXڮϔ=¸’3ÍìZý-І!`Z{Ȉzµ^‘Ÿûq‚<ƒc=ÊãÈÀaxîÐÎLü‰ók·F@Ù¦;òºƒ{gI”[;Ëã b"`ÊIo WöøÐÐèwÈ?F;5gr .>8I’¹ør‚ƒ¦¶eåãÔ²!³%@ön®i pÁù¸ ª×½ó©XàÜ1Éö.6ÙN9KØ…ð·µ?lõ€,CÏýH7XŠŽÜ9 E€‘VŸawt[—ï-z4qþUÏ<À$XHŽ*±¢E''œN¶­ž˜Çðá;%ˆ/Ë\ÛVØyY'«ýyÈÃϳ°×)ÍNl‚C =âƒnáyÿ|óRª÷VÍ:m—Y‡ƒìÇmxÔ«eÜãO¶¹9³ ÕÐ<Àyt\çˆùÄ'³dà\A·šë@™Z:£Â4#KÙÞ¨}”òªË ¯J0{[ž½µ¿RI4¢c8¤'NNWzЖ&:©]wîç¦bV®$ªä Žd°uQ¤”p`œ[ Þ@=.Kéå^)>àŠ tiUíl‘Ùkïgãáa¿Š=“êÚJ£Å‰¾Dn•f-ª**÷•¬“xxÀgÍ*4l,Gµ-MدaõŽÏv¹0¬PƸì†çUÉw³‚³îЭʷ@ØïáŒS´^a»½ªüS ¸âÉÒÛÚ‚NlÄôÏnçÿüÿ»ßÿüý³?±Luü‹ÿÛßzjÇÃ÷¿ý—OáGçbæþÿüü“OþYXÍ©ãñ/þž?»ùéßýìËŸ|õó¯¾ùôï¾þÙ׿ùêÇ?ýôßþæ7¿ù¿ÿæW¿þÑ7¿þï4BÿóÏŸ·óùöŽúoÿßüoþÕ§ÿæ_ý›ÿñÓ¿úü‹Ïß|ù³Oÿö×ÿþg_ýøoÔÿ@'æïœÓüõ/~²Í õ£}¿øÍço¾åÂþò›¯þéOÖ_´÷OÿÍ_|Zã‹¿Û@ý_ÿ÷Ÿô3ÿÕñÓŸüÍϽ»?üôíwÿõ³/¿û¯ÿÝ}÷¯ßüÇÿúÑ?äE¾­¿ë?býý£óþoí¿ëœýéÏxk¿øƒÿ ‡íªyößzpÿÉçŸ|õëŸÿÁï±ÆþÞý»7ÿw-³ÿü[â—ßü仿øýNèÿköÿéïz¯ÿõ¿ |ú—pÐO1—úé9¯¿ùÿÉ}LUoÿg¢NP ?õ Ã5Ûò_u› ™6ìRë1•Ä«~f!‰­Û›Ä{çѼúo±b{¨¦†é }?øIµ# Ü‘<ôì–å™5Xn[@Œ­å/)q1Ê|õa {ŠèB:(‡j€Qyo¹åeÑÍ£>ÖW2 —´¶Ô"‰Åmë\×ñ†4 3O¥z Õ8tÒàYî9#µ®mªíªfø(ìJ¿²dò–HmÙÃí¢ˆ»“'N47n<$âjÿîu{f®úù¸½d’A¦¾ßiÎqp‹„³wm;bgjl+×/¿nË›Åb2[íÚfôùñÅ·ç=¶+ê7O.È”†sÖÏù ×kURíÏŰ©M0÷•ØöÈ‚yì™^ìv‡±>ɯ|¸µ½áx(Q3ÎújåÞU@=“%(`•­Ïáé;;E©qEº: ëΧ†Òå¶ÑîâuÍwÍ ¸y”ôtéur„¥íHËãHµ¦y“uhé4_%ƪ=¡UQ‡Vðç@¦Þ2Äà‡`Õ ëjÝÛÆ}7C‹r‘ÔÀäiŒ-íìùHy›'ÚꟘ°¯¾J?’8ðz? Œ,G8¦Bãé@p…/êic™Þ€è®Àú$][:—Îk]–våȨ@6Ôa´Ý{À›$|žO~ܺÔ7ó<ó¡µ›b•]Ð)·<,ºøAôôÍÒÀiOs _•÷A5Gñ,0ûç<Ùè kèçázÔB÷J æw—X‰¯ª/³ê î,¥N5³¼Çåra¿–g·.h ~zœ|ÛK~ܬ®§<žöÉp˜º7'ÉXÏó $ÊhÉÉ&6ÃTˆW5Ñ6«;:ó‘²¶!Ê› ÅQâÍ“oDó=m¦Åxtn¹(gÁ% jÈ qÚçJøÃ¶Ì‡dö qÙ&{aéÛ{í1ŸÀëÍ^øh`¥ÉŸÃb<¤rj»°¾sÐÇ}ÔUzþ]þщÁ©_£†I¬* º$fi×Á³8ôZˆ„`ã ga°«ôò†Ërܺ{ü÷)^€bE œ²zàR.Ê|`mr>lß Cå©ûiŠB‚IŽ’[šÓ‰ r´åp-gE•ü`/Dõ–Áû ’Q†o½øHˆÊ–«SÝ#ÕÔ!±ßÁ–!ÁH\о¦-àú¥Î¡aEñm»}¨¢yî¡Ãô>ðþô‚±úµKæÐŽd÷zÕíÇj~~êUmʉ”|ŸEÙù“ðÖûYm:omjŸ¶ÇvP5ãµÚíÊríê78‘ÒÉÀO¶ lÃ!6ž‘íKS(]-õ±*[A ^ÂZf­%‡w„vòÃ#†{i¾ä¹IZ[áÇá5^ïçÕÛoj@ònbK’jnÆNæÕBzÒé ý!ŽÞém#]îwUH‚Ýhµp©ânrØ] ºº¦VÛòúÔm°ÀuBõ²›AhR›Óy0öª~–ö-_Óš …—C¬v+°š•*öHEgšóùq’Óº¥ê ¼#Ûj·^/åâ§—Ž9МhóC¼±€­òöÊà‰ÏÃq¼˜k6 ,;ùÔÂ.6>í€õe40{âF¦ÚdvÊqRJxœ$árŽhÄ­*Á9¾íI$ = Efõ&ð̪©²wuuêhY%;’«GŸ³±† k{”}¨N‡[ï­ðÙìYÞùßÉuN—G¯j¶›Wï40‚§pÿÚyí¸‘l_+7œÑV¼úv×fÙ’šEÂÿ/{ÿÚ«Ir]i‚ßýWœþ @$¦ÛÝh4ànæ6PA”Ô¢T3ÀteÅ@%#²"ƒ·"ôßçyì$3’,©ºjªf0Ý#Q¥â‰8ñ¾~1Û{ímk¯õ(¢gÝÁŠŒó»J«÷]'1ÙÛ!.2„ µ¡q·¢¦uêÌvRd3[ó‘ÄYý€3`’Ìݪ71ջދ‹Cž ˆ¤w^ض;¶]Ÿky(o£«l˜%=ª ¿Ã=ZŒk(7 <‡B„Zpp »-ð4¨cÈH^çrYBˆ÷sx9³9mA £»¥2—†“€ce¤I†… f.O{*Ï€'j„(ò JéY0ÚT±{t® ×um†g»ÄeýG uÎÿÄ[ó·5` ^£”gÕÌÕÛàÉ+Àh/èTÐaÛ 4X-MõÖâŠr­—ÎÀ Ù%]eŒÕÌÛ¾Y> äœäi±BÝfžu.zé|–;¢ç*êwÉðß5Nàû³ÌøýRÉJÓ[‰½ì¿¡ÑEËÙæÏ¡¹SÐ,aª)J­³,Sn(´v÷+.ýåL–š  —zÚ.öáù”ÑN±’†•QN  F¸•×ÈU m“)wQI³(V¼ƒM±-s)«´§ê3hs)j>^Y1÷m:Jz9 Mu´±' :q¥Ù’Nm“Pß@©ž¼6ÇIxYrèÖ}öH¹£­ý£`èt¶r¶:Ûár/hS)£lzV Ë&…ªvI8à¯G°3W­á{Þ§s.‰Ú9xÚ,Ž?³:5fŒŽû.Òº"Y¢¦,@;Âà}{Àv ¢‡þ‰ðDéIë”Dù¥¯—vHùz^¥É/=e±ÖÀ¨TC…tâfŒŸJµðœ“N¼X ÈÁéV GÕ¶êlÀ5âû¥“ƒåìVŠX²«´Wá^{s‰ÓìRã’FK¦æ=ÛðY~Iƒ½àn}»5ÞqÇ^)¨ëNý:(½]lN)³,áèÈ®bß…’h—§Š2ŸpD”×IŒ¹ÎбÓ7mÓÜǾ>I-9JÙÉýªZ=öfS/t *õÎÌo6ðݶ€ Îæ;6âÐXL«iÙÂÜ µ°.ˆU>z”Bù¤”Øq3ž&eð4°LÖá¶óB¼æãqüº³i‰&š?Éu1÷€¥dpÁ‘O®}Q‚N7DK˜G5¦o³dî¬A<©¯’«×‘ qø’ëj×n¼y¤k'*¨âòÈÕ "©¯;—¾aD £€ôÿ¢‚kŠ‚^¯Ì,5ЊA%S…w4§Ø€:­ù³<%jŽSUwe6•.釣“ÁÅ1tÙæ_²O´l`7‚Ûž¹d²»ÌÛ0¬œ8£TÆ5 OÅÞTšáá:PûÈGTk«IÂV—î#MA¾Ç9N–‚.Ø©* MùÀ…y ¦$üåL1ëÑêwK÷½Ì÷Ö¸"Y[Wk˜ð';{ž÷ò$6šÝáÕZ…Ë"–][ÛfÜ.ÕË“¤’Õùg9+ˆte[û'pH=T=½–^¶B‰ÕòñP/Ñyªg³ÉÙ}Uæ7…}#t ŽohF *14UI8 ôK.á0ZéõyŽ5ÎGÇ¡Røâÿ³Èh€x‚/‚pQíß•¼ ïW½¦¢æ(ƒ%¡Ä®à;ÖVúí,Ö]µ¢—J® ÂÃ’ŸËµð• ¦6WÆÅ€L”¢1åA¥K|J·ZƒòáàÕëÞW6ëJ@žfgâVXÏ#ºÀNµ¸­zvRF;‘2…;€eU^yð~”<û2:£K6ÈIûé^Ÿu.¶ôµòÁÉVÕ9Ôÿ¼9Ï”€üA#¤RX3dFëa 7ì0Ž“ø®×‘J¡<:Îv -:õƒ#t:Ó2ëF¹r¬æ-,Öläd §«ÊÇz6Í€KÑÅûh¬"<®ư<¢xÁÜe¨U„â™ü{M“±‡‘LY9éb—PªÐ±-–¦SlJ§žu‡Bœôjù\y~§šÁé2ÔÞ)^myÌ叿±•¡Ò†%”>®x´¨“ FQ¦ÉÄl±0N•fÉðjÎ:ǦSqÜ4³f­ƒ$˂ת ‚• ˆhf‹¼Æbw8W©Ñ&™d§¯¾›áÖ1É\"Ž¹ÚØUòTLª¯Æi‡6£Ñ$ѳº' «‘]ÚV4e•FíùÂô0ͪƒâåVž?£rÑÒþPÏâ–mË;RÉžÄf*[l¼!òîØ¥‰;(À‹¿tUO?´W%ïË.³ñþ$ÍðÌz ×±|Ä=òâ£k q÷TœƒJÝQSa{~P;@¤4/2sk{P/d˃©:)aD]Ámž¢2ÊÁ[_5fx[oTïÕózTÓµbÓjlT¥o7Yå"^”zêºÓ™Y)aSóA#ñkYÎQÃC®ÚÊ®ûóÔÞ¨×4S²™Û‰÷³³#¸žìªA û ŸÉ)\õ@í‘UÅw’àå²ÒÆw&>Ô)aº”hVÙàš“Ç, ฽Ѫ[.‰åö¯”vxÅŠ#Kèƒh>Y²ç¾ãÁew=ç Ûݺ¸Í5A-¬$ n,™³æðêî9/ëvéù9ÚZ}äæŸŸIiï@Éúò·4‡Õ,°ç´RÙCŠøNÏ’j<6'‚«R†lÚÁ3"LÕÏ*z»§œ¬{\MŽqèJ¸+ÃL.ÕŸçÈJÒÙC·©!Z.”ÓM«ÈåPgÄ}ú²Ë£­:¼Q.mõœºr4¨PÖ§²¹¶S¦øÔ¸KO\‚oGÙ2qê1™½5JçátHˆMœ{êÕk£0×ÐZÕþbÔ'¢E°¸ny»|t±£Œ ~ÐãE¼."¼xŧl¶ššú»\ǪÙGÍæèh/è‚’{zÜÕ TýžÇÙw©ôæìºeë°5wFÜ¡¬²W‡ÈGlXC“W4VëìN«V˜¨âÁ>[u€Ó¬îð!‚b¨ ¤Ï䈠2ùk¯ÕÜ¢¾[G@”"ÁµKr-â¹ä ˆIeÊXjR±h;ó8£Û¤ë3 Ö"~x+·:³âOÿçŸúôÍ¿øâ׿þõÞüâÛ}øøOÿËŸýù˯ß}úùËß½ýöíÇ_½ýêe=™ÅüîÞä£þýÏß}ûú7?ýð³O¿~óñí ðwõ«—_¾ÿêíÇE~ýé_þÕËß|óöýë/Çtýó—ïžÎKøQøþã~Ï|忾{¿þñ›/¿üð‹oÞ¼ÿ­„ÌE‚ü›ùW?úô›O¾(¯ü⛯¿ýÀ¿ó«7ï¾~óüºö7/óú__Þp‹ßÝà·_~|÷ͧoôí»¯½É/ü˜×÷Þ?üâoßúvóúÆ»o¿äÁÿö‹ß¿ßÿðþïßÿîûöîýW²l¥Á~ñïßýÇ_¾ýËñÝ/ñGÛç?û§·Ÿ^Š2l{|yû_ÞþæËŸ&ú—Á?æ.þùwß|øæ•ÐúÏï~ö–ÿoûÝ·o~õöåÓÇ_¾ýçßýð/þ𧉩ûß@M}ùßÿ5†ìïoö¨«/¿ ùå/È/aoíðøò‡ÔÕ™+»¨Ã~Ö¿Ê~ÝöG|Ý¿þÀ²]ôà߯òÿ ¬ð%ÿ'üW¯õõOþ¥%î§ü¯ò?¾¤p›_ã?û…ÿ­ùõIËø·ÿ ìçp£}ýîýÛ¿ýðíb‹¿üEø=·ùû¿cw}ùˆß²"_ÿêÍ·lµOë-þË|éïiÐÔv/o>~|óÛ7ÏO……ÀöüêíoÖš~ùâGï?|⟼p»ÿ,}ó-çòòÅÏûÍÏÙ÷üùëÕ—/¾ám}øêó/_ü§·?|ÿ%¾|ñ³¿üøùøœoßþêSù“ëóOåúýOmùb~þ‰OÿëÏ?/_üÍ÷?üæß~þ‰¯ý»Ï?¥—/~úù§üòÅßþ‰›ø÷ßÿtòío>ÿÄ÷ýãçŸø¾/¿ÿÉwòÅW?ø‘ïø§üÈ—üü?rï~ð#üõçÙM_¼ÿÁáå‹?ø‘úøƒ¹àO?ø‘úÕúñ¿‹v~Gj¨®¥C¶ÔjŠ!t§N‹³W:*KÜê ­lǦ8I±É­µÕãPJj)!ug¬(5äK•n6‹¨‡F›N‘:7Ig?—Ç]v(Ÿß„«Fe•j{U´‹£ZÁì ßÒΚu踮¶Q!'Xô ž&+r˜‹5Y¡èPpSEŒƒR‡TY‚ª>øò~¶ûQ†â:ÔK`B»€G&ŽþóŠU/o™ÜQ÷9GÓç–RNÍm§4³+:Å(ýìTæ¾µKMþ½{xF¥B§ÄïÔÿsZBSpPÁd9´D|h1ÍÊ.4½FdàI™÷K7ɹxðáKs¡.3JmHä ÆMVEVå‘îvç‘ZT‰>Qþ:H%§^KT9WUé%éã´sÉÆô¬E¬·[‹<æ¥ä¤ü ·¥¤þéÀóܳjµ^/÷¾tÒŠiQ½“l¬“áV)w.KøCµ¿~ßüÔÓ{ê¹b?)QdÏSÏn#ÔK¶Vºòy/öxò1Ÿ—«Á³?ýäÔ§‡¹­¬‰Š IM&ãL”0qíÓNìJò×\}Òz³„Y²qIRÉÝ\A×U[ˆ‘<¥x9FعiîNž¨­é¤,ðØ÷”¨°–ÑÜd¼Z¿ÑÖçm¦?NÆyDÝ̾ó¨QÆ‹EÚŸ@z†QXI×»I÷»’&°¬Ôà\²þŽÖŠû¥è¬>~èq²·ê­Ì¾í%êQ%87É/×®çÛÔ±.Oõh\•¾êR)Š¢ä¨¬Ð™µ[«ºÊ‘”0xÃ%Ü WN)³5¼P¦™U¸†vÞ·”·#©îå¶W.tW cß;Åñu\dð‚›¹ …ñÉéñdßcñØxݵØéE$‰eµ÷87GŠŽvv·´Í:ž'Õ»ü„gç±y~¬SFÖò;U´<ï,7éThöÎåfÊE¶¦÷9»L‡’¤~þêd R®r®=ÁÃ)<Žg }Þ>OÇKSÌå#Ä5¼á*R=“Í“v@}—KõŸeæ+i}n¬˜ëf{"¤ä(mîï• +sÚn£îUTìÑ£9½./Àr»(¤=ïP›Aã™n;RCÛd[}…Ç e:6]ºHk*ö¾6–g—üîäCR2Öæ0‹~<×%øt/KN¯|ú¢O¤ø|žãœñÙ´œV{nã»è!ÌŸkµ¢ˆÑÉ+‰GP*¯¨M~­Ó*™}\t¹T븕Ý.Iôó Zçe $å><Š­d_¹­ã¡Í'¥ÿÔu%©²qÕ-Hu'šzÒÂÒDÑN÷¦#û4.vîžy"JT\—òÖM§¾p›ì›ÚEm¡çZ¶ DŒGZIaãìÄè0 1ü°¡S¸Gx„ºç$*7ÝVÎ.£ÓFEæA³ˆ¦ò% ¹R{æƒyÇQõIVOçnTÚp6>>Ag)GΤïÙ•¢˜®Â§—&4¼Oeãôjã“ÒGd½é¬ùÆ×vºÕ8¨:ɤSêH–ÚQà®e‘C9²N “Ìw”-ujHß‹æóQkS)1#iX󿬲k¿õ ÷(IÙÚz:å `¸½u”³Ít«HÀkÖb(96¡³Qî‹kµ^'Ųí¯Î^®6ÂïµZ~ϸuЯ†}v‘*ƒú]ØŠ„>¬+~ÅGE Ï…UáÙQU7K¥Á‡HO~àÞz‚jÌÇxÅ´F%¨šx³ÜÖØ‚€:æËÁɇL¬•úÈnÛ]¬k…%ÙƒåJâ­W·÷O[ދRŸ,pÙIk 'WÍé¤sæl$$7èüÒe¤ŠŠÎ1œ›£&ö¿4Þg©u&Ua´~:¸XïôˆYVËÎFÓ¿ß‹ì’×VeÔÛ‚˜‡Ê*®«®úfÖVA{Z²P¹Ô•O*²±â‡sºÒ§¾)ƒµäÉÉ;ô"]²¨CÞ3‹Nv á2Iâ„Ü„È]ÓTÒõ±±žXôz=†ZÎŽðFZšÅÖ|‰ÉA°)QÓÁ€ &¼‚äÆã“–¦n:šÓEý5ÍV8›Å%ß²©­v$'YÒ~˜À÷cÌ&ÀbÔv'øeaîåT™‹'BäÑX©Ïjǃ$Î%²àkŠ¥G`ÉÖ.¥÷<…á[®.÷iÏY-âž÷ª2fÒëh¶u&oQ1mÑþë&|ãîÔ¤j!­ Y‚p*>?š¯F¹”&EPeµßuQëï­Èi6{öOöÔ1.:ÁÙZ‘|~œÍîðYƒj]rqȉ¼z5åÛÁHqª•æh’î¯L8PBmÒpë aíÓpóäWÓÒý–út™â¬%Öµg¸x$óVL¿¸ì»KÚF[¸N"Ç)æe1‘—ß ûSÿcÓŽ÷ÞeË’¡T†~|‰-ËÓódå é˜/R ìÎ7Uó@Ï%u’´o<ú¡«¸6#n~)áúU-[‚.È,™é ïÎkoibØg!M°ÌveàãÔ÷€gÊn®Ž\j\µ¿Pc³ÔcË~ÞÝNÇPr½EEÚÈ;{´WbJ_šyסx‚ãrA>å5u~jGØTŒgò)î"wJvÐ P©x*‘,é™ÇãH|K?<‰*nnäb0<ÅP’÷í«å<”T åS]übþKmªúC§ÐøÕk;ã-¾IÕ'Ÿ%¤â ™_C“«pG» ZWP?‡¨í-åúYb<Š«,^¸¦ÀAÐàÊAL¨Þ5¸iQ Ûøvêãì W6xC >yìÒ¢=µ ©ëc£Ñ»Ô>VORˆüæ]9Û³|m‡þnQ¥6µqF)ÔYl 窲ª'óRE-k§ü"eµÀùŒÎ“¨ø°ÍRN¯”å—*úã’¼xyìVIÈIê¡^…³Ê¿açúب›Æ®¿á£ŽUeAÖeŒá83—£@ïC+ÛK™ùÃ1r×£ùM‹Ê¾Èé$uï<õ14©HêoOÒë”| ìãä"v*›ìˆ¾ðÓóÅ­$eÝäZR³DY€—u…Ö²“ ˜]t%”GÇ-RÕ’Ü{êwªŒ}—£È}Iò{Ux'ªª½íÐ÷ ò÷øåe«jºÎûNÌZXt¿µ¤P-‰B‡õ²¬ãÁ:*æñëØ¡'Á£°Ø¥«{Tj©¤œÝ¹[©4üתÍo×Rà’ÃJÑâ¬iPKMÆn´vQf‡Šø¢ddQñyvŽXi¦íá$ÛAD,”}‰ýS0ìùÞ†F&vžì¥[DqÔPÞ€Â,ܲk×@*"8HË×ì°- mSfKÊàgúñÔNd/`–%@p’ž ‹…{°;Õ{ŽjÓÑåP6Ýq¶ ï)æÇq”ÈRLúY²×PŒãM»È…wœ°ÐSD*#¥[¥à§Íuñú5Zµh3/³6åÀ‡¨:Ø-R”¶fvÈY¬–MN/"uo§2rö]GcZ?I ^ÎûRE>¶ä²âÍTöÑáñ{{ª’}qÔÓ) 9µº¿1xÃÖËS†u+;q¿§î¼!õ9—}±žçÝfZœòõ«‰mÏ`¨jmàgÒyˆhoM'kf{.!X±çÇ‹••ÇvE‹º]¢‚N€U/é¦;ÛJ™²Ûyæ¶É»d)©ä-éRÊOSÊSňÔo—Ÿ->j½È¨–º»Vüã Ôý5ÚÜl¸®õ®‘(ï»Ìš×>NÖóVÀ ‡=ݦmë (;”K£Ê§t ‘(ÔÙWÀúÒðEk—Xо“м¥<|§RÚn)™»Vº¨º§¨”æÒ%»PD9°}<”É,‡¢`®}- K‘€F=¶hë@ŇýLl…PÅÛ£êàšÝÎú²EùÜdxàblÎ|ëÇe=¸H©ìÝbï)²<ä™ßÁb}=}}È/ŠÃé¼o °êBáøòxÀ÷²˜êŠ³Ë®?/Wyt\™¤$·sèÙþˆu:U¨‹/ø„ýÄ0/\ö£Ï³ûYNÖy·ªzõ®@KÒ¨p°Î´KM*dŸK*YºÆæ_;þ¨*ÎStø’ljêºÄP/p;¥íÝD6up)”ôìåˆLY9mB w%½a ã©Vê )¼hfP÷ã— VÎêв†KO;Íß%€Sê‘hô3Ø’’8L ç$:5®E ·f‘…ÔU¯n1ØZ&F¥|µ€ëÿHé!ÇÈœ¬vb4‚Ѿï""iãÈ×ëOÒ{›÷¥ {@:%ùjõÚ4ýhªõ;¥›Ú×s¶4gÌIonO•ÑE}:Ù”«?Ç…˜„}Ä5E®rM'ž¬M°™T(;o3M fç½½žK(絓Á^ÚÈ:gáoØSy\ÔÍ®òçÜ•åqôœ@†ãœhšIE‡ýÓ@€ª§V`^Ü%⥀sZ82äfÛÒ+ ™J‡Ë ‚†öäà›ÅIÌül”Ó‰?S~8½è"Ñ®UiSGÝ©4uïl:xL—º ‚fÚÒ2‡diëä¡€¥½ªÊÇ©0¡ºjÓË1®êú·yÈ#žâÆ‹õšêsÖ$÷ Ú亥Añ¸Fq2A?*>v‡†Æ‘\ju¢ps`R?¢q뛓»EÛ0ò¯¤j%²Uùˆiè™bŒz¯îö7P± —Žþ³#Ž¥¨”BO<å¹Uí Dž`M޽T.âÓXHqzìpIü–¬ÁEåЬ"McD ­iô@±žØøYKŒ¸ Š3ª{.ÅQÍó)üI–ˆ”nöTjZ‹zOúa&õF-ŒÒ×ñòS3â“\àéÿàrHV¡|_¤„¢jãZhÔm8dQDE$JP]6c≀Ù~ÚµSâk "²mÊ&àaºÎ®(_|ý ™©*Ê[(UÉÙÚE ØõýÖoW±”dµÁBÜúá Û<èÚ ·ƒê¼6O3[Éi'oYö»vE:ñW3¢äá›ÕF<Øé”ª¡ÎÄ\»«õfqfí”svYÏc™”ø ¿NßÖ€lrYµ¥ Æ7+9΢xdS@¤l˜‚nÅ£ ¬¢HåV6êsµÃ’••ÇÞŽ,%ò^¾Ä{Œ0¼’žÇ…yÔAÆÉÑÙ…ƒblsðŽ*÷‘¦~-ÑóÛßÖÂ…lëifQ4:úÉ%T¤çUIÐ:n$´ªRtU$Wëæ1™œ^ÑSR`5Ýdç¹÷lö8×:lž|±k(Ý5+ªE‹9ÊZRðIz#á’X8eh䔀cÏ¡&Iß=†a•³±í6;HeP·³†Ãgž§¸šä·gD±kö«j3q`ódîY!OgäçpZÈØuàã"@›¼ü&{³]§N Ô¬W '¯^AjçaÇXwXCƒ΃נ]ì9¯ºz[Z¸”“ÜvàŸõAt¿yöMžý^ËŸGÇ-kìóŒ´ÛkIÀ•Õó(,=Ê¥È?´7Ô6%m?lCñàî®JfÔˆY=;Çy&`®’zz˜î Gfy=”ÇFüÒ=p;XáXf$ZJÝ;õ‚FNàÖLl¸“µê90mSK•~ )’þ ‡-+ÈýréžÔrže;Š?m.•eÙbk€ñå9÷¤dß©U’«ö„Ä"Ñ}ŒÒ½©©yÆ‚"Úh"­ð€úÀËözéA³ rW¥ìå;©6c%ì€ééþ2(@-‚Õ¦ïYÓÉ–ÃYÝý0w îŸ%Ñ/e{­Ì£ ­ÀÀÆ,~OpâÛi(XT!ˆ"‘B-zV7ƒ ŠMÉC’øÀó­áÑ@t@)œdB¤cgRxò\Že¸ÚC‘ݶÒÝÔ7ù\.¦:àžqu5ñD¥Ë;(ÍIò²Ê\ªö¨W_GÅFðå“kªWS[7Ï(¹¢ »Se}nÔ«We¢hG¸)>4™¬œ†Ð¦e¥“ z×K,žÙ£-éq™3]Z‰í!/9žsîc ’\dÇ»D«”j;AñcŠ!C$(¯Lp¥ú)a c÷µ:ò¤Q÷ADr2(zOóØuêb·ûn[±šç©ãÁIÍt µ ¸-œ.ve'ƒVzŠŽIË̪@7Ì8"5^K'º´ûŽ”W§æ©²X0Q‡÷R/€+VC³¯5yÈ]Ÿä'^åµ-yM8ø^¿ çwOçç<•’€”ašwªXL|:k'iåÒ´êd«ë{¼7É'w®JM[$*†é¢"QV^ÛLÚóU ÜÃ7{[²eÇZTiB]C'Œ‡¶Xjd)GZJyÔ‘-Œ”H|{.×þ##@ûjE u;?ÃU$áhzo2×Pæ¤@1á€(P㟞·ªÈäå Pÿ+.=Õ‡8õ Õ)Ý“°j¥s=ΈC{V‰Sž™mº/gíˆñžmxB)®4ŽžÚà¿“’Ë]X0‡³š¤´:Û¬,uŠzÚÁM‡´Ú»ì²€§Ô¶uN^ârÝ˦+ÁT¯ÀiOn„ø¸?ÕÃdzQØ?àîƒW¡'·†¼j™Yù–üF^¥”’0ª`wCÿ²ª]Ô¶DÒ1­r'€ÊWñr›ª€8V3¾«ÉeM¤èÒÜ+ ¼y…ûZ…§“&å¬Ü{'B»Mo­:Öos¾†7ºôð§]*ž¾ª'%ÇÍ3`­; &· zŠÍJB¨Êèʧœ’‚rãq·$dkkø4+„žMui#ºçéOõvÅb©ˆG¯zPñu0în;Ž…thÝqÖïú,WLí¼ÝqÃýqZÜuШ÷§€(‚ºÈÑù×2Q§u©Å’̘ê˜hÕlr±‚kŠª%ÜêZ”é4H‰çÉÏ‘¹)ÀIʤ:•RÕkB3ûÌB¤{äèžLJζÕ<ŽɰOºNó[XŒ(0dYzß áŸMc±@ô·¿ënþJÓsW"¶Y|O¹ú[s ò«‘$„j¹FùýxØE(å⃼þ|<í,ë{¯Ê6ÒkÌCB£Z]—’ØŸ(k]¶jÙcï—uuuŽ,CÀYÈ[òÜ‹r‘Ìvõ}ñIæâƒ8 }+¹¨ Ù9–! ï|°ç@­aX'àx È’ŽÉ*Rì\ÖÖ¥9Èx=®qÐw*IYP Au­ùÖtôF²ãÙÈi­òùÀÄâñÉ/Ðx4êøNAÕ ymͯƒ󵬲Uç­tò Àp\Y¾@à ÞÕØîˆž¶•1©A ßÁaŠÓêЗ†|Ùð”¢mú¢öeÙùƒ“hI˜¸lè{XÇoWkpÕ Ôl°¥ .™ÉíT4¬:¶§³$__}_»ªµ“Ú­SÃÂU6¶E_d‘ëSê ô£ú¨f qj+2ÔRŠIÅ\B(üNÃùÕAe7;‘½ÍõÔ¶sµÎ©ìÒ#ÞÛ­– » %O%ÙívÈ1·¶ƒ t¼4…Øy(*‘LP|¸#™–§²Iº{ô³#/:Ãï:w Q£vjï®ÉM.ž'…µ.âNnÔ øl:€{uÜXMgKeìR Jž»¶lz¥„ªú¢,`µ¢;Uâ8$4oö$Å!-#礆ȭ­ÊRgÚ¥Ãé•$[X9/Ö4ú#õ‚Üï{«äÖ‘ÔöŽ cú±¸+B U"eˆ!.€ù÷€HªÖ鸛ão1mTÔ3™Úˆà±…é´V©9o[tìÐNEò”‘M}Žqñë<[6Ón[kzY½BâÎC^çjŠô÷5­?ÎU’N9óyû¾Í>ð¦¶1C‹½çK…¶¸¦1)ZÁà€åz¤ÜEB#r±Èž÷à5*"ÁŒKt ˆ¾;©oŸs¹nßÎ*/Zt€ƒÖ3»Ò ZÛŒ¬#Ï]²à>þ §#šv³í ¿] ™s—a¦„¤¨MJ>6oå.ÇFA ªÒ›nÂ>á–r”•ý¬ƒ @ïHŽ&mÍ#Ö²¯3pÀ¨~ºs£,(Ë%V‹./Æl¨îà0R<²}gÛDWÔ—ÞTDE·ÍÖl,R?ª#ñžßAq•³hÜÚ2u)ñÊ*È{ÙÂwÇJŠÌ*î8Dc`*RAè¦W!«fI¬%%ÙvÓ*(ôÈ’ëÙÒ5¡Iü1û#zæUÔÙL:fƒx³ArRKiµ¦”"ªÞ·›œ zÛ*žÐŸÖky¯°OpÂ곓"´„g±: -cë”;‘XÏ62ʾµ§4y ºÅ]6îx ìl²]´;åBDÝ™NuMe'[*h¤ÊÚbRTQªÎ qD=q“ŠÒôQN‡u:tf·"“½O „V)b#öó6XÐJEÏa`WÕÃ$7íËÉ­ó@ÛS á+ÈùjJG'Ò;(׎–³»¸@¶,/M ¡hµ€ëNSÛ@mŠ)Íœ¸6q šxEw‰J>¹¤Cwûi~JcÁ» ÐÊ¿Ë@(alPUoZqïúÆRIÅN™!'[SAME}õr.:8HAìp€?*;«Š2ØàTäkS€æŒdUÛ©Hî”Ïê‘ ì~TîaŠVûv§såw—ó š%¹€JäÊ¥1…ž\ÉA"·CΞ¤„Ê&@Jv,:2÷§ö &bbÉ:Ÿj8»Kß°;«ÂGavÂÉAÒe·Ÿ§§Òejy\ÔcÜU‹0"+¾Pµ"·?½·g‰H Xl,M^"žKL[©º !HËéÜìEaýd?zŒ!˜|ÖQ[-L£¯‡¢2fx¨wÔ%ÑJAÕŽ±N^š¢èDËÂô!À rš[‹=¯þ80„{XÕ”n{;º&Ø-ØíûÃß슊kbMf Ž:ÈJ§ëVÐ âÆ­Çª9¨Ü´/ÅtV³œCko5’gV>¹Q_ì•ÏÐi.€™vCÿµågUÄjÍêûòªà]ŽHWU3ʪFGâ‘ Ĩ¦ÅOâ°Œî)I„|Ã.]P…ßÌÍÚIuó^fæºDœMFû dÏNX¾³¼uRÅ—šg¬ëÛCeö)éU½:”•›Œ;ö查…Àfi»<ë>€ˆd»Ù9"ñ±2«ãH ¢J´ãcã©@óG÷/Vkv^›‡T<0Œšbº!¸1•ž唵 Vö©mbÐ`øŠ 5‡IW€›MàD$ˆîGËcÀ@ö¸3éPÕ¬’¤È; t\Ô˜¼º“r‰¥LªQ2`ÄÍ•¢Reö·åX¬ÊáñµSPÅLv­é$E`вùjÔ²\/=×UİýA½_äö»²Ü9{fi×JRf•+!FLØÕ±ÞŽ˜Åˆ ß+J—¿äéœÚ¸×CõOºrét6lá)÷ çE4§…¯lá¸ZS¶÷rÆ(CJÝOý9Ù÷mÿ3dºÄeÍ/MŸÅÑQËV[ɺ;²l/•˜X…@âìnMó³ØõŠTln8@vûŠn0;걇²«³äìÓ£Ucr’NîŸdx•­dæ>*Á­CWÖ±Êgì%ÊiuÚîÍ ®£ÞS x¹B—XÌsZXòŠôÁ½%Œò N™ ‹ÍC=¦Z€8zÙ&‡âx°—ò#GÐ_˜­$Øò~X;pÙ%ç1šÊ4D4$ï¶}¯ËØDKI ì=ñV›Ž8Mh§è¢<ñÔénKâUʵ¤#„©oW[W×ÏýQÄ×€]æ$ê\UvŒÇŒÜÉ.kàX|¼g)3uãe$‹äØs…_nGx!_úLuö»Ú‰'ÿwZI£Ë%ùÎ*8ªZe  aÞ!s¿²¬I{—a$óiŠ#É0‡£iåº/kˆ[;Úg³¡ÚUŠš g§É(äâ%åÎb†k¿OOûzìÀ© ÔžêwðŒËÙ7Ê@Sñb¯k¯*µyAm-¨‹¨ihµ ªÒs’ÅÝÁnÏ¡?½yRŽBXc€$ø2«A{§Ã±T;ê¬:Íø‰oi‰˜Vf -oDóœz¹±Œ3ÄO«€D@:Øæ&|öS#_U²³ÝS.š+²®`UHü;y–ìû@ˆÏö·‚Z½ç¡íBBµx×ªŽ¦í]À¢†$ÅÖÓ´4 4ˆïmMA÷VÖù§.)l.(éVѶÂßZ–œû»âš¹ªŠÄ?Rhîæ.KTfÂå´õ½¦ ”Š’‹c^±>ªã~žœï‹¦è‘É#y`p¯órªhBM¸ž›>cç=mú(O˪0`$ÂFÓ° 4vˆg]áéþ'·¨S!*³ávAÑr‡N5\›z€»ìƒ[$þQqS ‚Á#ÕD®ÜâF¤×9Å`X~S]ˆÅ£·oß«èÙÎÿÓ6šÜ¢Lä©ÞuPùö¨˜à k¸æjÝ“³¡bèÌÜ«ÎzçÈ×Xc%u5™ùu§r»Ê¾*ð{Ñ·J ´énÄ1e6>j™Tý7‹÷l ÄEÒ+DjPj WpŽà’! )žšK¢4„_.hÜÍÃ,eFm+Ô¤•í¸¤ÅH€w®šéS\ÊšˆVýJÔ™Þ­m °UOtx>Ž~e=!²t/l:…ö. ®6®=Jd5R§ßº]yÕ“º4òú´5}ô‘`‘=Ü61k+Qã“nÐ%jQY^g{i{k¦%Ŧ¥ÂŠx0,t%ÅröصÑÈÂT_KŸ˜]LÔ&*P/Ûpí5æÔÆ®Û u(ÁbÁ#) <ƒ¬ë@]äÄŠÍÃÕ³ïA–»üR*÷¼ÛN¦~€†±÷$Óˆ$¶¡Èú^‚Q4‘eS•þˆTó*—uF×°êv8Cî [¢z|HئöW!ÈÁqΖ*[{!çÆWªåZ®SÛ>Ç™47α±Nã¥ÄH‰‡é¡•íjŠÞ“‚lJœ‚¿³ó lÜ:x:g•ôº ¿4a+š¸äöÀZõ U½öXˬf磪ʾ£€“±Á­ò»D ÞïÇå°.иzØíÔÑEÙ”fWNR“ó‚{“»OÄq¤,X¸ÎCnu¨`®1Àäüš ég„·a´;Π~r¬JMޤÍjÖéiªäÁM~“& pg7Y ·bžä™Ýr3²-5È_õâTÖ´çÕN5¦îKe·²èšg飓9ˆ¦AmPï¾Ù³JÄ6»UR`Ÿ7M6 ¥kRË´KbÆÐ˜Ñ¹1À–D¸¢ FÒ݈ZÜ^Ìí„€SŽnjÙO]{¥&±àTRC×$Ï/¢rÞÕT°‚§4—b½¦ é$¸?JfñY}, å”#àPjÙ’Ö¬ÿNÔøCΆ2c<‰x–¾‘pCtsˆøž¼âÇê"¦ÓØíº/;h#úeKÊã'²±Ü‹ütÂTV^g1$œ±•³G¢…Ñà ¬8£\fËmD›Ó,ÆÇSÒšÜ&%!(,õd”-k„í´™DÇB.C>59{ùYÎŽ¥] ^vÀ*«J }—äê°(àã ërzì[]ô…5ºF.¬$.=ç,&ŠU žà/'™ºOñd Žo½jC³ÚtÈ ›*"‘YŠP´Ôk`oÐïeNMêÏýQ°b“?Wn<÷Ç~娋>êƒ|»`³H,Y¨«üCz&QUd߉…ÏÍ2`ù#à— ÇŠ²YûŽç«?£`\;Ö˜ÕÚŸÓb*7#e y¾>ÍÕ×öÓ‰ã 좮†*Ë þ8—õ4\¢îXʵ*ŒKYµ I¤BÐuµ?šã*FÁz¦J^…³HµL9ç+·_€óG¾]å¡iK1m¦Ø•¾"D]N!i]‹íS¼ž.=žÂå°Æ®U=§¢fyKvžÚå:ÌŸíiîÊ8³”ƒDom¾( ‰å,³e%ÌcK ?פVÖßíYúå{å»)ôHYäV[34Õ”†ýr‰RöÛŠ~ªÊæèüCáQü’tÛï×R7ÅM‰qvž,aÁÂCK#Êd%ˆŠÑ<¥EÃ]ò ¨@Ç©#„…Mé—èIªðžjêº%5ìÊÁ’ ±¥Ä[¼6SúÖí»;7ŠÒÛ“uI¸ÙCc*ñC»±×9¬äRÐiºHêE¨Cˆ³Ãöl——€õ?ˆ@·c¸ì{ᨹµÀ®RöHpÄß]í¹º®rIml:^’zãêBy´| ,Ôb%y¦%ÁÌ—¯ÿRÞ5þh1‘ u!;­+?sÙu…i0¶Aèl„¶.>ÇÞÕÙ2§å1ëÍ# o³P@f–¿ÇOZŽHúb:¢Eas6ÁÌ»´]žÞ¤æ)O‚ý[ëæYOÓ!.cU?£¨ Ú óLœâ="Õc_Näd¹<¢T2 Ky“‹мû+ÅšÐN¼ÝC¥;”?Ó—‡ÀÍ“²ùÔÇþ´v¨Û .æ+¨¢ö'úÞUÙ PN% H¯>/1òîÕ½¤Aÿ`ªìÞ<’8õHËçŽÚÄΖ~HklýlÜ ¾•ê—˺=ÎÈjL ©jeW’ÞswDÛ"‰¨êЋ©]Â,"íri2HL¤Ðéå–ƒB¨wè¤ëO6Nª Qõjh õzŸÈÒfÖô¤K6­„$Kmö=vG$Ÿªyû3—Æ‘3ä`}ÝU=_»H?sË-žÔê8¾NIíÆ*xÕž´Äí³}ï‹*TîUUÕ‹G¬£ÐõüfcóR#iŒCM Û®ÎÔŽÁÍZõÕtìøñ­hAïa€3àu^ \‰Š·¨ wv‚ݯÛÚ*jú¢Ã^Rxý°ŸæÆ?s<=K%M?›tΰPY¯›²…쮓ZŸÀ’¬±;0;Ρ¦ÂœÂ|žuÀK ‚”žÛð€CÚž—: ”E(gÃÙf›ÇVnZæI÷¢š¿¨j‘Á~ßòøî›5He»»¼¥ëîÌ“d"ö*˜Zs v)ÿ ‡Ý‘ç× °æDxq;«|)yÿÞ­ž,ãÍîDë“ @é‚"K^É>°u’Ë.Ÿ– ŽÅy{n4W«À'TâQð|SÛÔã šª+Ü"9µR/¬uäEÉSkǵtKŠgIk2A/{v£C'Ye“S =ŽôØœ¶yÖZ\ OPìfCIÑ7‚õD!WeFn·<…W7á‡åwîRwYÅTðK“Xg%.`I‘"‰¬I猹\U÷s³ž)B¢ðÓ 3µ;º$¯K¢Kº%8â|ë§xZÏkµ†mJQ¸l§Ž‘žVžÒPò(¿ª¯ESVÒ6‡”›d~2µðNŠÀ5c}S# à¨m•æ«ü›“ú@B©µ®›$e™ \KõfªzÝø/ÿ&¤ÿo🛠üîãÛo?}ø¨HûÁXàþü«¾þÕ¿d+ðúOþ/é*à­ýÿ‡©Àz¹ß{ ¬Ÿþ[-4A>þÏg)°îõþ¢Ôï,BÍÿm–çÿ¹Ö ÿ/ ø ÿüî_õÿu7ÿ_qÈçË´ÏæûËŸ~ýwÀÏ?ÿøöíÁo ñï~õƒßÈ/_|ËrÿÏ€úÅøü×÷|6$àjþoŸâ‹ÿòóOÜí_}þ‰ÏüÉ¿u×ùÿã ¸‹·?øÑú?Ææ€½øÅ/þ«]øÞoþu_Ú¿î‰ÀÍÿò?ò½¿þücä{óƒù¢ÿôÿ1…1l–¥szF™T:åRvi+xRb9—äµ Oq–~ödSµEJúìIð² {¨oîL¡ÓTüÛ€î².<&DÙóÒŽ¡ŽIuJ÷¹s¸5U«g=JÖI˜3ZØÅþáÌѬ»'ucÑbK¦Ìþ(Åo#µµžíôù1ʳt›ùRœ#±Ñ˜ïݶᵔ,Z4GL9:!ìÒ’ÆW5ÙËrw"iz_Ô8´‚ÖÍøÌ#:Cyc—:@N Ü›§ªíÇIM{·ùdíÇÒsÖ¸¤<š:y†j=õ¡”²ÙdÛ ]ò.>ZŠ ŽŸ9T![ZòeåU‹°£R€Û>÷¢ÞºSËóñØö¼ÖÚåžøaU¡Ò¡wxT—–j2´ÌßžõŒ*ÕL5}žñX zR±éq*TÔÚ-±ôeôSSQ6í<+ŸNžÏbæ.‘®Ö´ý˜¼­ ›¶ËD#îæy8þê©öÕƒj÷«( í‘ÝS¹d Ý×ÜâAéw(˜(›jW˜/ñeTÙ2v/êòX}tФ¨D_¨­wdÒF™By*?÷¸{°øÌÆêk5ØSeðÔϲSÏ×§9½Êû+‹ZE½«$ÔµMK|Ù鎫g‚QuªžGð•èYÇuk8>Òêî%SŠsÎ\O}P m):Î:Ú8¯ÖŸE!º ¬†Ù‚gAÙú5>£ŒÐØžqRjªŽ‘w©1«b«°Õ³OU’¸ŽöÜJ¶Û<ŠS)±zÜ¢«óUÝþâ+”TוA<=™ÔFÝ)ùlÂæƒ,ŽC©Zžê8¤¾« (¿Gͳq{FëRfîùÈ|èÞÕò¸ë%çtç’¾0t»ä”I!µï&“ÒY×3ê1Iµ]tíØÙéã¢×uÜe:*žF [—©èÄý£ÆERAQun·§´×¹ÜäùÄľãe;f3ÔSbà¼7Õ_•GtXç8Ùõü‚Ú, kÍQG¯7S¦ùÐûZž¡·EÏŠãÖ–ÈY":õz¬6:+¸[lÜ–$…I(áåTçÁø;ie¨m’å)mºc² †»½³éP^ìüW½f{VËš¯³i”W–ÁA¡WW[ö\´fKLeµILy<î|Ô¯t0‡ØÓT|Yª…1²—A»¤Á+^›R§gS²G™™¾·Î‹‹íÖìa³hÓ<‡#‘Q 1]’ŸäåÄçÙ×5 ¸Ô»éQA 4SáÑ*DVr• Ð…ž¶dG;ËÍ]:8OQêøqˆ\ÕÙMÏ®rÜUŠºjžHƒ{NÏ[oß…~Eòìà:W¢iŒ¢‡ÒŸµ‡xìQ¿GzTC°·Ès­¼1—ñ®ô)àÊ›‡lÓʲ6$¨“* m?ÖIûºr_JÑ=À~‘q»Ô÷º9I ð9 ýKàÂÒ‰…mt¼»’SyÇÊfSšN’ü1l6ê¢{nö³KÓe79y¸6¢ÿˆj¹Í©$n%JÝdounÖ ½ë¾7Œ9CE§'BvX\Òp“´mÛ\þ¥ƒX’UTŸƒ-lî[¿NÂ^“Š˜!ÈNgÎâdl]—¼!¥A&kDu“D¤‘v³1{DdCœ]Wñ—yû›&äU äy‘‚4Žfcò³&ÉvþÞ3Ú¨‚ÃMªÙs¬Q‘4p©¶¸7_ ¿O+—'kæ}º¯Qº§¨Yíð’w†²$97·É2ç9W3ˆ]µ,o:Tì<7ÓMËwE-¥ž“ês;;Ø0Ú›×û»°#È¢·\öáœ>aì¬Zë x Ä}µ®U7ND˶‘BøE5g5õYK‡ìXUe8JÐó·ÈÌë‡gLçyªX¶ðCÈ+×åÒ< LgÒfâ>O¢Îˆ;Q7%= aà"87i$½]*ç+(®‰X¼¹â»S"22I…§’Ù\0«@ì`HIÓñ­.c)I–…t@ޮΠtéGÑ™J•¯“­v‡×T%›³îŠxÆTNkLô~F;+›ï {Ýñ! Ý6ïå¤AŒi,iPa‡Q<´|Ù’a+½kD¢Ð—ÞAPN憉@…íèún|%"° cÍdÚe*Ÿ´߈·MEð[ qÝ"+±;¯æü7Ë„ô£ÊÜtƒšš98°ÉƒQCØÝ6ZÓi ïƒp@‰ÀËàQ“€¹ÿüK=>œ×}ÜuÈÛ–®¯níüHýï¬Á¡ÈíÃ¥Q“ÙégU‘Ī¯Û¸áyÈjSnw ~ïJ(\¤£pŸ×Šš-S,Ĩë¼y‡-CÙ£º>;l/›sid©ªœ«³”·L¶3J7õð¹$"…áXmë£éß°è*’M| ¦£ÃþúGó‹Êö“û#…Îó>ùfÁ¿béž!{ú^´IsðSד{«nFžPdÿ^ê/¿œJµÂ—ÊE n-õ—ÛÆ„¤ìE²)¡î~šp˜J‚øU@vrôÁmWºKÑŽþò´W‡€}]ÒA¾øRk#3]ÊË5þ)Оz‰š yÆvÖáÝ}/ ŠéüþdUK•ì<[âì2T!©F ΙÁø¬#–À&«£Ö–«aS5(S¢·kؘææ÷c½Ô2ÂèFT@¢Íª`ߦ\wÁZœ•U]Å*$ó^6-nÆ=}‡r'»¦AY‡ ^Gâ­M5UU‘“5Á{r–\;•RO% 7M޲Sßrmÿn ôqó=";ÝAÆæ`VË… Äå–¡ÔÃkÔ? x%¿Ty›¦§CÔ m Œ>Ÿâ\`6Qgí…Ãn!(}´Ýê~Oó`€ _ÕÁ.ÛSâ‹Á¿«Ö§ë µÅ;‰¶-cc¢n¼óãˆ70ôTdˆœ1T<õ—êQú2J’Ì” ™Æ$â˜Ù¨ßÔl9?’[(°©àQ?Á{ üAfÁè1ÅËgI[VM@âêY9ßólIɸY©A5wÉ^×¼Pb@e7ɬ“DLè°ZJ¤%yBêötò,¨€•’jâ"¦BŒE2ØÐkËq0¶+_S9ñJÝ|©E,Ègkn€c’U«îy”MGP±† a½_×É:dÈŽŠ’ø”.³8É"Oª=T + ”I>‰… •–j¬¿n‡D¯nv£qx·<<ꦮÕ,qžËŸ*Y6—˜ô‰šµS‹°«¶PÎ`;Qo¬«²÷É¡ÉsA©P½<.Ö›$_‘÷Tƈ'iBA•–“úRñ"¨ÖLþ:?Ö‘bàdÃJ%*é?<ËÀ’zˆ9@R¢-YOƒ*W¿O°rg»* 6o.QžŒ³ÙýN¾¨](¹°›^w)ZheÐŽ(-œ§žqª<Šp¸QØuܵ)°)dHΫj”Ëï»n‹Ú¬êá‘R‰Ò7ª²×ôå @“ëºY\Ú’’ü–RpÜð Æ‚zÒÕ¢Q ²‡Š(éÑSRGðt||°þ*›[keJËRÔX[U5‘¨Æ~lÏu±÷ÔS<™[¾‚U!e0…)¿×9{@Íyóšn¼ˆ7@,üòvi*s]qIì­Ñyê9J5ò„rÔ$ñN¤;êiÞ}[&“ýx@€£÷—\q`ãÐI…’¢•P¨î‘ŠøYjõûí€öN²iŽÊÏ5e'ӛטÉà”»º5nñ~#6p³2>ÕÜмÓIõÕ¤¼]S‡~z r·´µ$‹­Ïz'½ÔªÊnü%_z%uºÕúª×#–·qÉ= *åÝ(ªn³JT, ÃqŠ]âGäKv «¹çUeçjy@Öû”…{¹Ã–†Œg© l‡ÕÜ[²Qƒ.P‡sΫ9 ×´D'LhWÁãȈ ¢ª4xäS)HB^qm¬¡VZÝ£ªq ûJ¯ Öñšh<]Û>¦>…ŠoËš*+ Ehö,N8{$Ñ+`è*©Á}²4Eâ”ÊJYüO³uè¶ æs?³yÏr—*"J5ÓÅ£²fzT•ÓŽmxhÄ«¦Icrÿª[í!Âg;tÐu©v{òÛP#ÊIÞÑá8P¹$]„Õ¶K÷ºbQä´‘¸P›ø’×C£ðKûP‰ñdpuJ–Q²ÿäÛöìz=P#µ¦¢¶T‘éÜ­0Áì¾­ÛÒ ÝëlÒÒ‘ÃM÷I8k•”ãp‚U¬Ž0ËÉ J ç“ý¼¤åÕöñP/:uÔ­ûL«*_N-ªw8?õ“Ýê`3 `²ŠV,«‚r ’‰omÉñ/Ý€°Bƒb5|cçr›×êE^œ#ΛÉÀ5mÐ `¼žj]¤_9ºÓ)$`ršŽGU†õj-½ñšØLÎ@7ê*é †í.ÇÒÈN·³§íí±Ä!®Ûš-Pmæ‹´úâÛ‚3J‹ùõ8¹`Mm›Pıƒ`Ž;;¡ ¯&%挎:Ž¢‚O»z÷ê'y…\ÑQÜÿ9ç°¹ÖP7™T™e^š÷Q—j£4rgWƒÄVᮇBPUþ{nÔ,›ÿ¿tg±!8“´,>ÃCBîK\Åð€¾'!c(KïÔæThþ¼O7»IM™»/‹ŽCËKèÔ5%Žªöߎtèæw©(ãᕳî5R ¨&êd–:­y‚ËS‚éô£¨n]Ç¥Lÿ®Y7®+C»¬‚³Cî[剰êÍÖ䓤l°Ö–9 ‰_O1ÜrÑãLñ ÁH.®Z5¯%=•³'UÐ'g¸ï‡+潓‚yƒ,§KEŸL¼W‚WsrÇáÛZ¯š)‡NÎis9–ÙËßÉvòquùTÎõCN×È +z)€yKÜ‚º÷£•¥8Zë»—/Ö…R%¢puŠ)Q¢ €³ºØˆº/»©ïƒú˜/é@€ç›S}K·òtÔ”ì¨1Œ&$Cø+ ¤•T^ž0©ÕQŽ+òD-IH¬,&¥/vqUáq c<`îΚ“)|ˆìt…Ÿö[Ú:·ŽN|'A×éÄF*2̨ÜDq¶nyUu4²o­»è×qù劻ܼ5RÃr &Ö´;­ió U]ôÖÇ„4JÖ¼éÖ4~"„è2O‘¡…ŒC̼i`¹àZåA.©ë›J±”ÛSÂçØB^f1¬)*…zƒlÈËøk $*ôÌ !$äSĉwÕG®a¬JÕâÛæƒ’l6—jõt” Å¢k:ýµÃ.í)@ÝΘ9äl‡†L¹’³%¤.ªéB=²S¼|Ù£xÏ™dDÑʇÃÛhE÷<›ûÕ)&²®bÙà©y¸3È‹¹•qît)j l²£Ýø·Nñ% e#¸ìOeák 4=Ð$ÈÃÒK’uÛ׳ªöÉtoF8®}ì+Ïäu–<8Õ+šwÞµš¾ýFt>¸ö #5\Xš#³ß²@ª&{¤Õ®9¥ÝQñQ-}§"Õæs¾×87ù–G“¤;ôîìüæyQ}¦’€q\¥Ÿk´Y C¹ÈBª-ªbƒè-^/µ Ÿ¥e-@œÛ™l²àÌÜ£Ù¥¢Çü}µ0)ðôHòp²gФG»õÞÊÎSòGq´êN§¸¾ª6Üeóȃ!à÷ÄJ%¸ÚõöÓ¶kìZOY¬ûuGôM+ýªòak03(èuß @ÎÈUŠ“R*,ó{VÕz¿ôl>ˆGJt%åéy˜ä~ÕJÉë þ'LAt k¸{RßôáÞYïÝñ$À­ÇÁ@…cñ`LÄs¿¯%·L¤QBD³¡ ÌdƒDêFeƒÒÃsrî­$5³T àÔ)’o¶O9µ8=u9òI%™4’Ô¸.<ˆÎcœK “:µ{Ø¥RZ&ZÖÃnÿ¼HcRs 7V©QÃN¬%ä¤Ã¼R‡j„9NÝ ÍÔ¨,j ƒó°rîSZ„e󌶓\ÄjE²Á< F¦+$ RÑTvI¡È\PµŠ}ö5â;Ùw@ö#i»óó¨B #15_ÙíÇOv7Á„âÁ‰¢1‚ÓáÉ¥†2Ü#h½x»TùÈ NÑ”ˆæ­§KÕ °Å5ÕüŸjŸ)%¿¯¡óR’{À¶0ñÃc:Õ_-vιl`5èç:ŸÉ¯8öï"¡²ë&wÙYy({y:€M%ªß©Tµ3<”meSh¬;WÍÕÙÑD| döÑj;>ulƒeÁs<_×0"•Æq•UŠ;üñ˜J†¸ïxâ(bñ‘KÓµÙ=ê=Ñ:^çÝSž£®®çd;62£zØ®ä­SgA"æ ˆÛ—ºÆ_; >:Ïk†®%Oõªñä’XÉS ¥6)Ó©ŽêéÓF~Qó¸© EÃ@þºmXz¨?*S“¾zfh”`¦Ð,!¡:É¢ÿ‰'LVa X—=ßT—S³‡‚º±9Í>lƒÁCÐÃYz±—fc»Sü dÚ*ù³ÁïÀ€¬ÔqS—]ùæu¸%r3í‡ö ”ÕÅ™kÅŒí6ì5·ÃŒËæ@¡Ú¡Þ•“«Mrèðˆ-d¥“]S‡ƒªçƶWHIÇ© ˜…~·:Rî€jÔzÔ4Ë‹14¶ªýªŸŸË&.åWQ”)š([è>´ÓL·É¹ñîY]õ›,/¶~`=ç–¸QÄH”y•eÑÍ.jv5Ö‚òð¼“åáðýR-/Gb%Ú?ôðJËLé1te¬€jó Ý‘ JŠª0xÞI<”ú'aVY>6=bG7.QêÃñZO_¨¢2p& þFc…r+‹þG$]ÆP·î©ög®ÞÚ1ùx…ú5Œ3ÁOÂÇ­Ú3ˆ¶ñ¶ãòi'ãö ˆÜzçHm–‡Dj­ÉKT0þPž_]1?0zVO†N-bGSÉt;xÍ£Fi6yÕ£7Ë÷=Ëü—XV›Æˆ«]”¯ûeÌ€öŠ U¥à›¥ ˜¸¤–¿öêRX*<•ÁSA_³p¨ƒ”z¯‘=^7’_?S ¯'§«1—²fúæôÇ!»|ß} U6šr^ii^Pþ«ÖUÆu" ›ð•˜©W\§\ûv¯(Ín;]Òà÷`­6lg´6l~{¾7n5ÑУÁýb×]>m:Œöz½#Ÿ)}*ÛÁޱTnUïmŠž$ÖЗ:ôAî;‰,$[Çë6v›Ú¡#(ÖJµè$™MYom°»¤Òêi oTç×yLõ×uP꘶‡7Äçk«ÈlÔÊl½†çÔº4Ãx×gòkU97Ñõ¤ªyέ¾ˆ§y› µJêÎ>±1œ°?GžPï’ý•QUÂÛ(#÷®÷]u€ÕÞy<+·¢Ao€PÅéqš6Äž1J¥Œï‘(T6–1H°ª,0F_i€ŠYÓÁar1ø€°¶ëßöHýE(Ÿ·¨Tñ©%ûrRàænOÎ=Óóšçe.:½ûÆSä/8ÿ+5ì–õ M&æw-S/çø+whéGEÙ€Ê@Dûä·³®7Oo²Û¨†Š®÷º™älg²iò±ÕpßDmç êå¢nrÛT@H;.y¨„GáY. »˜U…=tº9$HØÃW!(‡X×±1úºõ¿O<žµy8wöAé¨ÝÆÒð8Ad%J×a‡S¥Í©Ï”G[ù|”õ´Ã;Õ‡¥f"¬~$“ ØTåúù‘CŒ Ú°ãÝ¢ d&ú`E^“Ö)=Ø2*ñäØ0§™#n§oÕ?d~Û]¿¥þ“åt{Þ·)ÿZdÖò¿N Ÿ”3CµÃ*Œ nŠò·*wõ§Æ-Jü˜JäKÊ~Ô1ulq­CcªwvÐ$ê²Åut;ï…5ڮʡÁ•"ͤG'ÚE‘8m›ñÑ;“WI‚›”Íq å©HÆÕlb½¨æ™°F5ù*{w75Jˆÿ,ƒH…YL†‘ÕŽJ¯ݦŠ]EÝdJ¨„ª„’d…EïC¾Š'¿`ŸƒGãq•ò¤$A­6]ªÂ“@%ù™ÏJï©b ñÐnú¼–¥‡æPú·mg=&XrzÜó(Å*™°á[b±ZÔQ¤³Û\ÐP%ÏÛ-‘Ìš¶]ŽY(©ûHÃmϤ²µs¬½SA¬¬ë8%%‰FÉFç)á éD±QÚg‡ELà˪ùT`3eS×·NiÀêXÏ—¨dûQœ¾Œy&{á’2yߪ$=ÔÄ{¯y_,×CkLþÇ^|ìÓuÒ5Ô+2ØxDs;žS†ÔmôŸ@QÖêÔÑY}.ÝP8„]ˆ7·z{ª¨&ÎåYaýRÉ¥k_hÐàVôzŽžËÑ—ÿLõâÙß#}zðy¢e#à«SÈf¢÷ŸRôQÅíD¶§~ʹ]$,ÆõIA\«±\í«ýVuªÜt‘}°ÎBëì³ ˆ¬Á94•æO½½;dø¢/¥mTÐÙAÛ­x¸»@j­¶ÇÙ…{èã}k“Z‹zp¿`Eî†çG¨/[’h/ñazgiÝòOˆ‹dÝôŒÕ‹aWÇ¥‰7 ”¥¨?ìT9eùê¸É'R.ìúƒ4Åqζ™#Ø27¥ÉÐÆE!«¾‹õ‰˜½Æ®¥×ĪÜÕD¬ƒ¥îJÓjk›ºßúpÎ+/õ’ôœæµ¢ë&Y^ ~õ·´ˆÒæpvA~Ì òÎËÆìšt­ œRY siÂ7þ8nÖØQCÞE£²öZ^‘yÏè°ƒ¶*ä$9¯¬÷OÏ#;¥\²…&£ôòÝÝ\á^\ò£¯ù VK²$†Ês×ÏCÇ!– ÉÉ?±§¬ è!¡W‹¦„ý¼gR#U×^ýPd°ww‚– á ¤ñ•Kd-BBY£×ZÔ«ËÎKöDH‚ày«òvë”n~Qh«|¶¨”Ó;ËXNŒ¦^éÁžÑÎ8ŸÏ¼=myuŠ7”©£7^œ2è±|¢®˜§R‘'pY“RzÕcç‘P^„î§êÈ=û&|lʃÊ2©fºÂò!èd pØàÚ¤Êì¾÷À²— ˜4I³\ ^šé„͹P-ê[²A?]•»k•Ø@ö}8ÈÙ5íV.û¢ð¤l:ÈFE‰"8îð¬ŽçLøX’¥ži‡0Bç¤Ô¹¨nrÕ/+&¬’“¦i5mÀÊ];hil<€L:š*øz(ÔJ穦¡6™.j]JÐ&ƒ–ì…ËšegØþ?u!%âùû£+ ûЫ’ºZ§vÌfåŽ'SúvGO6§Ëtå‹gž59F±TU—:uP‰‹gÇ>>nñTby[vAÞ¸H¶ØU¯]W(‡YY*¶sÝ«dTç¿©ô?É Ü›¾9íÇõxDK9g/²½ÝŽ7Ë–Ãw2ÝìÇþ¤ d¬F¥OUß°×M‹™uœ\ŒÝ·tTg ¶ÔG[|”º§uYµÖ·v@"!$É1ò&ÅûšÄWeŸÔ>k§ã¯×PûlSê3g“  ¡dƒÜµ¹:3O4j™§‘ìïkB[àúfHµ(©mÌ.v¡Î¾U½fõßA©<,Öf½y$Ô ¬Öhëw7ÝÛo?׸%ñ ´«üàÕ]Ô 7Ïû&Üi/ìL0ça]²§¦ã:ÍQ9ÙÌË@Oñ CIÅçÙÂBlÐk‰Ú±?t´ãøxY D"ÜEÅõȘ~lQMÑýR|SË3I]ÉK®1Ê Ù©È¤OÞ”¼¹býABÒH°ÚNœ˧ðV®|ªáÖÝÓÞ¤dš*|Qj8ØR¦¬L­ÚÇí¾š­G `X~Ø\þ¼ë¡%Øùxj¥3[v7s,+E¼ýì„JŒ‡ Vvª±ùd¥T$Hk¿¦™Úc¬udáÓCíÔ)Í3—¦Ä*Û™¸ 9‘lC•¤¤Þ£›7·xkÞ ¶®î`Ï2Èm ÀÒ"7ž`$* S5ÅÌ>*7½Ä†}M$Bé¤S~1MñbºGÂwQgY;YË͘ÝUJµâ~ä?ì`6• «JDPSP*zÛ5g¬n@9n´^ZVWWy(j_ö“ûÈûßs‚I9Iì énsòas™ïi;$³ŽËьӢÀåä$áá[¡j×É×BÖÁ÷\1wŠÎ7gž(*ŽÅÎ+*“G*’i ‚dÖõ2|$´>$~Q É·ïë¥ôÕÇÜasÊœnÚª¬"åö¯SÁm½“W·¸“-5éóimí³Ú·é®Óµ·J+­-qwù|$WwwŽtó `‡¥Æc¤Æ,\ ‰^ µ ©~uA’̦…7¨IùC-­ƒì›K¡L5¹‘\¤ ÝûvKõ¬²H³Ü‰€°«éôéh‘°_ƒB¥#X)`ÉWYO’˳R‹‹‡ÌöÓÖO'žâÙïAm÷©äÁI=¦(¼[á^øFÂB*ëêÆNY”ïâåèžÀâìˆK‘'¯S‘Så™ÅuEmÏNÊlÍ»Ïx(•ÂS(åEÊÑUF5h –׉#r¡…­DŒ{ªŒ¡šˆI‡ÔIÌ1(Þ\  d6_kºêQ›]‘ 8bU<’ ®ÏV¤üKEµÌa§†E2áRmÏì!2ù‰oaÓí¼â|ÚY¤Bí`ç°íÊUŠmWNô7–G𗹕ÝìÀŽsªãP³“@ùÔ'Ccç ÌKräÛ¹‚ÊbÉÚTß=o#5êç ñºDP UµçÀ^oso€@¶s(cáÓN9OÉ®“d7©RMqV|Éi«ð/:;8óx&¡s%] 0>¢45gƒà£~Ñ I=D“›o7GžÍ;õ7€Î~á#¥Ë hGÛÄ^òX(Rö)8z7¶­¾Õ’á)¼·éòsHi0g2¡òŒ£™;‰;á]«ª°ïìƒC’É~¾fè¼€í"°Y «–•ƤñŒò…rJÚš¸d)œ€ µ<Ó¸¶I—Y&/ÄŸ@™a—¥¸kc|Pl©Èë(¸àÞ=³À¢¿L¦£^è‡!Ïç^¸Š'VI*áAŒfX¬Ç2È6cL}3xq¬ýÍiaQ>ÏqÚNÁ²à ç‡×â¸Ënñeaãù~ã4HE,$pä´RN<ùèt²ŽÅÜB ³v ìÝyóA† ëg¥«·Ãûrr™„gCž+>éUUŸ+òA«d£Ž'-ò櫚“_Ž™åMía„ò S=ìeUéÄÓõç”N¯j—¥•³V€É¾uà£Îsßœ1jI"ѹâå!‹o™–œÄ­}lãt`˜ZýÍÓóâd•§#è$£ 5µ*é†êÒãQóÌY HeÔ:ÔLË\¹è vI‚jÒá'‚åû¦‡ë^ŸÚ]VÕ~m‡œÛ“ÀŒ‡Ö);š \ÃXò@^é™Ýw¥®l/“Ö)ÏÔRû6ÕË\UÿÊ‘9{)ú”[ò Ò)Ìh«–­8ÎÚ%• 0.`;¸½´T£HTKÛâqù1«V­ZhŽâ\ú£R8îŽÂqǨK±@C^·ßJ á4èå鸽g›5ž5°U3¥¯=Éçqmõ_ûvƒ/)ãç¾è¢È«ü‹Nõñï§„,ÄÌÝIFðÅrÛ;€…Ô37Ó>¹øÕ¼Aõ~2ù€•†«k˜V7PV!é'_SImV(nv¶„xÌŒQ™%}µç!:¸æ@²žƒž5œ¤-õ|"U+Ø$Ge ·ÕXî†Dû³ç»;«¹ÈúžÁ]Š2+Òú÷ æLUWEÏ P{ù\Ýfî£Âµ6Å~ÓÔ #‰óÔxÏé.•¤< Xe¹Ii#¾d°²ž›Mã:‡>•jIKyÑ’ž0„¯$2Ó+£¨°¶'Þ“UdØšÔèb Šq°&`"òxÁï\p¶C’Ü«­øcÊïç-ìtƒs@eÔ\iHÃÐ^¥*¬sÈ ¹-݆'y*É$ 4 {…Gږز.bŽ~‘J´ñXèz—(-%¯ªjhCõwî’ÑYžŠ¾du¼Ï êÕÈÏË<2jKJôÛVܬ¤KAUt¹W žoÃ’oƒ£v9Z@ ð/Ÿ6t†Zz|çÒØÑAÈ,”TPbmÖínþìêB)+PņÔ» ¸“í­€Ä-·Gï¬VpŽÂx/ç0åŸ©Zö $ZYÎóç æ6è¨N›µ„‰bW! »0§E ‰äúÓ!nª`g™Z>T‡¿(ö²ÓbQE=aħ/Há øŸE™3´ mÒQ´½Ë •L'|ú}7ª¿ À(§—Ë&^¬I­£^{Ú -Ý8×8à½X]ò¦(ž5H»B6ÎIÔmŽ´MÁZúh|š‡ð¤vž+È€ ütÍÎcj²MQJ]65xA"—½¼[ƒ8¢ŠzFQZ´ý¼kUM´¾#`:ÖÉ+Е«g€æÚJ—Âd*Q°]IKË÷äF3÷I$Òì¶©‹7•£”´™´E9©T7E,Å=ÃYž®IØ_#uãÕùl HL*¶ÒÓA^„ùÌÎcql Ūó ‘@Eþu¬7&Y“0K", Õ:…}s¥QˆËƒ?cÜÕÆ×ß”<ãJ‚wЯKFÞ]u;!µæ þáH…LÓ%!ÆÊå-ëçso:9e%5÷ãúŸϹæeÉö¹F³›6:£çä %»–œ%ëЧ!èÁ28ƒ ñÔû\Ö-(_q „‡£»®^=A7znMÂz_ê‚ì/%ªÔK»¢ÐŠjr™*«x9°ç Í$Ó«¼õ0º4U:U+R§ôl‚XÊXj$QŽw›=ÅUQÂpZZ];ŸúvÓÍwiõ–b1ôJž> ;M-…åÜÅHEmÁžZSäk¿Æ³|cr#åDsÐa<…zÚ@k J–Ðn§ƒБÇ4ú¾—äêö,Êý#ëdv¨Ø ·'’ÇCù¬$%ûRGÀ¡vY­Ôl¾ërî}&•}•Á»U,ÜW²/ÊñIºãW¼¶S…‹ùØIQ‚èáfíe ž‡Ñcµœ2<Š“'¢Z‡¬›ÆMJ[²V茬E%È·¢9ª}´`ˆj§qÊ¥0œ÷²Fº@KÅÎ ˜’PÐ%ao<ä°FS^fÀ÷§Í†Ù÷.r¸Ï£¦é<1‚¾HÚëUm"C`èQ=¹Í¬ ›¯@ 0ZU×óÑå=m(ùH¢biᡳ[sùq–9ìô”Fõ®C(-ÑÔc¯AÅI¥«Ä©ÑwæÑªíFx·Ûœ•î ¡"->öÊΞ醗*YæT„¿}Ljî  ¡™®jM}VòÖ#¼2œ0d[rcdòët @Yi*gX‰¬bŸ‹òŸ™÷"IquÞÔYéÒª_G£© ›&„Çs,“s'é2Þ &gŹ‚©7  —»ÂIål?sùX—k@Ša°¦»PE”Ú“Ç7OÚš ­*ج‚Ø­*¦.áŽ^Êmçlï­ê£¨< …¢Õ2×Y¤þXä.sG,g¹jZ~ñ’¶É@—æ°·YÄ9šc5†¥(÷¾=JÖà`TË$ H#È\_¦œɉÏn·9S‰­³-±T9l@€•¾æÑ··\sU”Ò†ð°a½k„Ö=kíG‡¸›åf_ë#K9©@u|õ@äe)íj‹=îšÎ³Yp£:‚HºÕ2l” B9­õ‰ *{ïB6Ð%ÐF=¡I±BŠÏNŠyØÞfgKÔI‡^æYjÝžNY«ž&“aˆ—”Ö6T«Úùòž]Ÿ‹R)£«Ý÷g±öÍCE%ìwS;è÷{{\vJ•:ËÊÔ¿;=¤8u¤©wæT ´JEߨL‰”²ÎXö]m]ì‡v€ÀÝ™åŠéT øk!j#1ÈLQÄf³ñ«$ýHƒb‚%¥!ØeUÚˆArz.‹(›>dðŸÒ%%‰õ@ßdšÃS#ÞèèžTô',¡€Ë—7¢µ®>žI•.gg(€…OzwPÍ‚’u©!òcÕIåêA8O¥(«T§ÉÔï‘{,âýL<À}•t§óB"ù5º™w‡Ø©HÖ‰mÕq¼ˆ Xn3-¹ Ê*}\ÁÓ@ôP½žMX´ ,òx”wZÃȲ\ùš +75 æ´–þMÅ3 W +ï3XµM¿ø’L;ÁæáT¹ˆ ¶tV)#Âi¸a)(ëyT¥©Â­d(¡Üæ½ÉPIJ³dJ••¯Á;]b;_";ÞSj ±ìROõ„H#ÎQ ÉvØ$UÞõ\\#ðq@ U.y½ÄÒô¨N”uØ$ ñ¡)´ìL¥ïMZ¤æmv¹HZ^%Ï ; ÛDVOSé{j²Ös®zï}ñ½»øèP\’ K=³&4²‚ÍûkçUybcʳCkçÂâ’sSe…q Jž­:×ì\˶óÒxdGnìËË’#CV',”sYU†¥ŸÔQ³D'ä”=Ys·*M_ÛÅ!ãxà–Žá´ZÝÞ óT¿RD»`p“Âü’ÅÉ,!—[P.¨Ö®!ž •—4$]Ý*[Mg<©óΙÚÌã•ÝiZ»y6IT9Ý•p¶dÑN~øø¹¹¹¬¤(>|0é—µ[\ ¤[øö‘î&oì MÂê=E®òµGš(‰3Õ# mѵ†¸ïÞ×”‹%x¦éŒÙ3&'‘œf”&qÚ„hZWËmäðh´ðúµ?yIãUÔ³¯)jm;Or¢Þ¼¡sÅ\Ð5´SšŒ=-uº†jSÃfùv*«þJS'<§OeÜПÎCuµÃmKúKi$"Öj y;–°ÐXJ šÔ“þI÷éT¹#]¶ø²Sôj"J³ØÀ¡Ö’R¬`WW@ÁP¶s‰|áñ*D¬Ê8ÈITT/ÔòãÇV=>.;Qž-*!ž7‰õ²/WáUéXIQpDöœ×;=Z¸#«ªXÙÇ’ƒSçk `U™¢ª>¬áaü]óûžðõ®) Àõ©¯F¼„’÷FÔlÇ1ÏqKÙj½'€1„·w:–å$ɵvSæîI{ D@á¾j`£ª'wóç=YÞlQ‡×øNá=½Öò§4À(·)âˆÇUÐîòàxÏìË‹¨©j'+€üIbjŠ&íüJz­4.ù¼*|S7ª¤?CP/4-Ûz Oa‹šêtF À!¯{`­Üÿ.ÇQã`žÂáA÷¹-Ù”,©²=‚q+Kp®ƪň0ÒÆ»§à§’D´Ñ qß> ¬vGšHÆÀe‚Ö²÷ZóðêÙSšhw€q»4À3ª1Ý<Ï+ji&âàN\äML#¼zöìUÑ O™/`I²¶Æ Œ{ Lkj:òôÞã£ý–’|ˆ5N£²n*\›X]|»¦ƒÜ{pÃKù^Ò,äÍ»ìä ™ÄT·^(%e Sxlæž{ô}Ï£EÄ76üU³Uáår«&Í££ä±ãÏŽQ†9HJOç’‚LÀ¡q@}øE1y«µ¦`X@~w· &½3ŸWš‹¢uZ[K¨C‚ÅTæuÛ±¼É¼âN?âî8QGáVGs›¬–;ÓuÈ#ì$崩븅¸5eðÜefF…¹/ÔX÷¾ÄﺇÊE³´´º©%Ô-=ŽPŸ­Qö%’Öö¿AZ™Ã£DÐ*!ud.\+?ö8iÇãÄèU;an< ÂßZx¥rÏrâV Œ¥Àj;(ëvÙrWá’ì°)éz8Ö±Q—?öª“ìhå˜ÓÓöfÍûrg$f^blË ˆåÊ›§ ­ZÔ­:”8N"#ë<Ùf¤\yå„ 5GÈ+Ón—±›¬få8I› ^ã\£áÊ[_¯Û,~]ž¢âÖžWoìׯ–»gñyùRíçí& RÜQóÈ.é(èñxþÔ½­¡‘ñ‡¶êR8‰TºH)wÞÙ“•¥{R¼°Ôç¤'g—ë.qCE«¤-—²|ç{;=ï¿l=S½·%_H;÷SWš®Š‰-S*Ó¤ \?È4Ôªl8V¼R’žÃy"Ùæq¾zš´o·7(ÏGÖd¬ƒÕksÄ}÷ØÞyï›GN#[`åçî6B-[ÛÒ.(JÅò$ ŒDt'CÕ—Þ£:élí¡ü¹ã*Ç©…Ó½Y?J:¡éM_þ/à0Z(N>»2°QûK{ž**>Oáµ™‡A|“ƒ¼B‹-ÂÐ=å¢RåÍÁV’#K,ðd¨[ùWe?_Uï•d;)£n©ž€_Ãþ=/Tã©»9›ÏR=¨BBÌ,¨æ¼Ï@âÿ´tUÃ.::^vOêÉ IAŸ`Aïiž4r®fyXVòN× ÄЧ’œ#Ä_`Ïœv8st8ƒò,U?î*H~¼ÍAÄ27jðkVý5+Ösªð¤q—,G`ò:q‘àk{Œ½|t‘ñpžAjvÞøz.žšSó+;çE•qU7åtnåT®ÞLX-ÂÒøq$ˆU NdQJÇ¢º ÷$á‡ìªãòñldèB%”‡º@yàö÷±/5Ô¹gL}Â<+ 9ÀvF0à}æ  ¥afVE @IîeèïÓ–"ØÊîèq©P½F]N i‰¹nQ‡Aò-™ p<©qjb9K¶èQ-¤FR:°°÷³ȈQ™‡ßjÚz/Àh ªð•UÐKì…uÂÞ Ìú.’ß5¯QœýqÉêW˜°íèµUÓ¡…ê˜DÂPb‡g«RjEÇE@#fdM_ÆÚ»Ü妞dv/YIº¨¥¤çMS æØU¤шÁ]‘U6Š'âšQ:MÅDëÂêóžë ŒÚ4¿#DÊ Lž+E¹ƒnX0ß*åKÊk¡ð$?.½ íêj’fß×x÷j¥È;實ùïüŸû€ÿk|À—_¿}óñÓ‡_¼ùø¶ß}|ûí§ßþó»Ÿmò'Ïû¯æ‡÷Ÿ^ø¯÷Ûz÷Þ~üÒòw!nò?ýíOÿâúêÃ?¾õOÿ"ühÿîo^@`?Úw~ãOþþݧ¯ß~ÿþýÛß¾ûðþÇ?ø…þñí›OüÙxó‰ßûɇ÷/ÿî—_¿„ôêCûñ¾¿ùÏßÿâ‡?~o~õî«—Ÿüèåß}xÿöÛíOú‡o~ûñÝ?ýÜëúý}ùÓ/ÿì…íÛþ|ýó—ëo?¾ûòÍû—Ÿ¼ùôó·¿à¿|óõËO?|ùîí§ßþÁGüéÿüóOŸ¾ùñ_üú׿þÑ›_|û£ÿéù³?ùõ»O?ù»·ß¾ýø«·_½¬gò×o~ñöõÎ~´ýÉËßÿüÝ·¯þÓ?ûôë7ß¾ð_¿ûòíûoù¿|ÿÕÛ/|ùËOÿò¯^þæ›·ï_ù¯^áÏ_¾{6/áGáûûî_ûAïÞ¯üæË/?üâ›7ïûîý?½üìÝ×o_þfþÕ>ýæÓŸ¿¼yÿ•¿øæëo?ðïßüêÍ»¯ßü#¿°®üÍ˼þ×—7Üàw·÷í—ß}óéÛ}ûîkoñ ?æõ}÷¿øÅÛ÷Ÿ¾Ý¼¾ñîãÛ/yì¿ýâõÍþ‡÷~ýþwßýð³wï¿ú™7ñÕ/¿ùâÞ¿û¿|û—ã»_á¶ÏöOo?½Vñòåí|yû›/þ…ÿ÷¿ýæíúËàsÿü»o>|óò3nÂø–ÿoûÝ·o~õöåÓÇ_¾ýçßýð/þð§-„—¯Þ}ùéå]¦ÛçOçßþìõg^þÇw¿yùð²ûŸïÿÛÿÎòúêÃû¯ûù××ûýîV¿ÿÃûþð›—ßýEÊ/Kx9㥕ýåŸÿðŸÿí›wß}ýþùŸþåûŸ}x9_¯’Çóû+ýÕw/þO¿Ûöò‡Ÿõ×X­o_þôóâþßö²Éÿ ÿÕK|ý“ieû)ÿG‹û/hþòë¯×_ÿéúûÿì¯ßüâÝ׿ýîX¬¿üÄÂÿÉ–ÿû?þÕÿûÛ×Íú“·_½ûå/þøoÿòÓ6ÀõþŸ¾þþ1¾ûv¾ûÍÛ¯þöݧ/þºJ^ÿüÜ]_¿{ÿöo?|ûÎpòò$Õ?ú;¶Ô—ÿñ-KqýÕ[vÌ~åóþË_¹µb©/o>~|óÛmgÅR^~؃_½ýÍZ¼/_üèý‡Oü“nïŸ_~öáãæ çËo¾ä†ýãõ'1¿|ñ%w÷õ×o¾ÿ³tð[¿ø†×î–ýýŸf“­÷ù÷ryùâç¿ýæç„ŠïÿˆúŸÞ~üðùøFÂà÷?sg_|úõç¿g|ñéçßþà7âË?ûðËŸÿ ñï~õƒßàJ¾eŸ|ÿs}ùâõEýþO*Wv}þ‰¿¿?ÿÔØ3Ÿâúžïj\Ýüü_ü—ŸâSþêóO|ÊO>ÿÄmÿõçŸøÌ¿ùþ§ƒÏüÛÏ?qw÷ù'¾á§Ÿâ¾þþóOÜÃ?|ÿÓÉ÷}~ò'ß÷Ÿâû¾üþ'×Õ_ýàGžðÛüÈWþÓ~ä[ÞýàG>øëüÈ'ÿâóO~ÿƒùä?ø‘Ëÿøƒùäoð#ïÓ~ä~~ùƒùÞ_}þ1òE¿ùÁ|Ño×°¾üåÇ$‚¯Ø*¿ÿye·oóöËmœöò¸·Äv«`ëq;ëä éxŠ&ÔTE‹2{-qHõRƒÍkÓ\9²‹2ý 0ijýÙ29{t:÷Q>ä˜6x¯0)=nÇ]oG`íê÷íZŸŒ:”E *nJxŠîÝS-êÑüÜYÊ}Y§f=Rƒ¤ksl…ʵ—E2YºJá^Ê“êÕRCQ¹R+Öwèdãs©èÑÕ€~43y*IÍ÷~Ϯ˜}Rä) 1(76>Ç(Aê’güC¡Ùx…HUpl"Íâä^pÜCUªÕò]y«#©Áp—ëÙ•åQR‘zc\*¶´Ù°>µ+h ­¢EÉ–ØmYyèùwJŠJd_Çì$íÉ[jž˜oSý:J£¬”©íÂtv]Ï«+éSÏ¢²Z1q¿R‡•.µJy›Ú¥9|Kq[º¬ÒÈãêM–’#~ÓSg«óÎ2Ç#Ý6f*åðì÷¦*UãtUL‹ÔÐxëÔÙÚ®¬“Œ”›ÚWF ¸µùœö¶šŽ›Lº楪cšÃ&_Þ=¶=ž\4?Ó+‡’‰ëñne²ú‰•bÐ9×îhæMMÕe|,"T»gí2ïyõE%PiûÑþ€ µ±Ö|8ÒSŸÍÑüÓ“§CX]^Ëiß—‹÷£•·rhr.½ÿNáhiꬴÌy‹={nS¤fô[ç“»Ç$[Ÿß¦ª¹æO>—ÈÖ£”¾mjC+üg+U‚•²’ÓžXˆG«¼É8‹‚.Çs©…¶´/³6gefœe{ž}¿ÕLÔ×Z_úØŠ¢g*"gNN/)ñ•«­Tþ× ŒØšã‰g¿x`C-¸ÕJŒ5¹sTH—(¬Àܱ<š®äĹÇnZJ³” —yÝââéQsr8/ðR£^H-]ýt¶^ŽóöÑ<}Vº5ÏíÈölÎó ¨Ö=98Ö"éûH—R ÁÿtuŸ”ß«{yf¹•'S‰ÇRÈ´+ØtË#eê2¤ÖÄ¥Ájó€X)LÍ÷î¡cˆŸ%¥RE½gÖ-é„sÌž=ÃÕ0ýº¸Þ¼3‘;Û³–+Ë\ïZã:P§<Ø([-nIݬČϦÁŒó>åé×ô$CÇb¥©=¡#öÝ÷ÎÚL¥Væ¼U¥QBZ_eëŸ1Ý}ôOº—ä g@ߤ‡gM¿<?§º×ã¹ÛV²|”ûfMœC’iJ*B–c*ÉœUêß/m@§LÝ¿”GxîÒ»!ãØf:Žió¥è)âX@Szë°á§ÄgÛÖ#z=>ÔCŽBl¹\c §Í·¨^Ø-«»žüçp&]å’y^!…ŒFÒ/{œÇÃèú*ó=sf3±‚Ô@u„“x6´JÜ5#í¶8¶ÝÎd8þzI6\ÁðY“šñ´ Ì)·Ò<‘r$.­~2iI¶õrù;÷ H™yÖéèÐ ÌÎö©Ârï”àP”2I“{Vš×þŒ§›Ä>Y:<¸5¦?yËÍQ£ùpŽy¦å¡ôp¸Lš‰€è=/D±Ý3ªþ -›Š4{ž\ì¦b¬Ã¯\2² +’P¢ýñ~ QêÃ2`ã <:(W-æ£j–r0L¦¯•ÙUÁOÂÞOvŽ“ ÁÁ[¥”ÖçI8Û®mí³eçq^ú&ç½NVäãñM=åÏ>rn§ˆ”Ë’Ú¥5\¬Ò®$­°ö;ÙyòÌçy‡œ4µµ6nîKU[ Tó(É>bQW¸%œÚP4”³Nï4wb¿š‘éV>_—O/¾X‡Eø ëÀ¹H®®Ê>]÷ˆ(Çtòp´ È껲ƒÏ#I 釣ú‘tÞÌë Jç;1猙Áá^é¦CÉ­"°îj#ì*e¦L±•tê£4ªü†ZÑÑwrÙç‘­–ت¤¶å1«\£sT&ºŽBÒãP´òc×NöøýÐe}Þñš@4r©ÌÓ ÆpVqhؾ/Év F»®Î]k9Á̃šs•ž¦&äV5×FØrèœF&ïº{^üa¹OÓQSL%våa—¥¦tU˜@)™áéUb†Œá6w«½»ÕÎ{í\D0r¼ú¨YÕíÛA¹fK º7×mîìuÝ¥žZû)ÖÚ¬zšP*,5Ó¦ESYXÖ›íÜd©);¬òÍC‰ÄƒzÊ\¤£:oÔcµ‹ªO göûYÚáÜé|ÒCṤ~®Ëá<×IÖ™‰ï%û—¡cÑõ¹}£Ž ]Jº:=½»r޾Ià•Aš=QDœ¨P¶Ç{IN—³Óƒ…‹î‚¼eB5eЇàŸ6Âæ~mç,lUN¸Q\©°¥žË$…¢6y]¦ùìÂæ$¹êD²géÕ79K>—¤T¢çÈÞD=×Ã>ÀߊÐÞ˼0߇¬·¥5Ö Þ7Ý7ƒ%¸\ä¡ ðñ!&h.ÿ´Âèø–žð+?ñÐËIÐ,bú”yØT|d‹*ª¤ØQÃ~uËØïS–> ©€àu± R”î®`ô£±‡Ê¤ Yóà°^TP‹f1KVv’Ò—]ÅŠ?H[mieêÌ.…’Mö€jõ¼ê †"±G!%ÉÁëú¼=q«¥PäL'áÖ̪óøWÆ$Ý÷@œ Ȉ-§B1 œz<Ô¦­È›Éþ¤ Òܲ}½tÛäÚÝd‡¦F½%Mbå.=àPÍ¡,ÿutÝuÖãqÚ³h¡:‹ú5¹à1œF}öϵ²—P47hÄ W=*ùVîPéŽ,¢"ŒO#JjÀc^<ºv€Jïò…›“§Ô½‰b'R‹Åû1.êŸò1¤ê_€‡9ªêN¨áõ¨ÏJØ´˜õØú’ûK†Ysµ«©âp}ôöY®_êí…öŽåÆœjÝdwÿÙw}’Äx2\‰ÚXúD¨|ÉËÔª„7Á×ÛFR·˜!°ò´¶¤¤"€Å!—ª7Ðy¦e@Õô„V/sŸº»^zYõ÷›"dJ’ð6Y.ƒ‡â[Uð“mÐDãC-!š<ðÝéÅ84—]ÔNsì1˘榻ÒÈà–Ãn“óšT×Q™"ÍRTóõ³èA$\ ̨܈&šª¸Ùô~‘ôL.W'äÐ!–µ4ãÑ÷]7¿öÚh‡^’Ú±èµÕyî5ëÕÔ-‰¢…Ûd­èûeU¬F[ÈÊT“¬#ØóÑã¬zͲ-}}egoÏÏ)%õ c€œ“+Eaë%}È*¸å¿’8%‹ìº¤RþS‘ø®ÛíôÄ RQsŒútøÃzœ3PªÈ[ $²²UÎЩv#ùG²?ŒÕFx•.á@ˆÑ‡\Ë#]q›ê¢ÝÓiêg–Óš ñN‹©© ›>]Ì"sÕÕ}z”nTÇÎJá¦#/«ü ]á­IS8„LyLBl– öu‚ÃAw¦¢Òû´ÜËÁR·_EíïL½k€Í Yé]šÜO~‰éÃÖY‡MsmÕH³: äîhc•ÇKÛ ¼ù]§ÅÓ[—ÁKRë| 4])bû<–˪2±^À Ä*ྖƖ Z‘?º8‘^mɺ2ýÊ‹.Sf­œ’â9?„Ö,8mÛW‡òDц˜SwdBÅtï[¾Ì®“HHæŽXa2oÁ›y;Ê܇‚Tm˜K‚ÚË"C·¸^ú23Á_›+MËŸs?¶S°è¨p9,ר`ì¨@W_Ò62urúN¹|9ë­2”­\þFÍ1I¯\/g@õsÖ݇N¢n8º³$bp¢Ó£úðœ,ßæüÂÁ+SÂõVT¡¯y­ n¢òó+ÿY°‹¿¦³ô¹kœFe-vE(©] LÍ-Çž‹ï„Ò'‰Þ@[·Tu©…T~Ub¼3EŽ9ñáÞT+Îîrµ™ENÝ6­, ¹K3Ù[AåQœ3©ÉÂV' ²”5=ê÷ê/Ük8wI'±-¤T/ЗœÏµž@¼f¿“wly@YZ7ùÞ4}@GY¾Ã¡çr©À2Å"Á«CËÞÑV»U_ÇPÕæÚù>3éÂ3“(ã´¢"‰ÅÉNÁnܸ‚ƒDªs*O! 0ÞÛ.ñ2i­÷º¸K%²?Y›jmxÀNC9¯‡}¢uãQsímvC¸¬ø(¬œm=„¤u°Ö|I™ê(~w™ËÃ|ˆ»ùß,mMIfâ÷Øn£êÊýD l®Q×þi}UµËptÁ) ‘ã¡Óƒs¢¼Í­^»]R6I¾ì•ÓW5᫼j^-h,yÑÔPcwÈt®W¢)z¹û–ÜÍe¸e•|<ÝP¢ž`6déš`n6Êpj4ä{ ÷ÞÁ¹÷bÞæ-5ã¢Æ9@¶ÓµÅã deéP?_çfê/jÊ÷Ëx»àsÝ‚3À^¹äCÍ“!øòvŸé`÷»Ï˦‰có²ê3¢Ü+ª¨zßx ú òeAò¼ì,Î^´íbÏVçp’Å*{‚r¥IdÐADÊI{9¿É1*}Ô¤ô–©ÏA¾_çfy'lIå„‹˜@2® ð䆶‚ò\ví»aÜ¢¦Û˜±&ªz‡OÔ'“ïTÔ‰ÚñÞ(©¦ÌÏO€©l‹[K\)÷S/ãÓæo×e™bÛS^G²YG™Ú9"XoC6©üW œà£¢¨¢a•EA¢qÚJ¾nÖP9·ü®Å™Z\ÿ:W=§°©ˆØç¥"¥ƒ:ÛØœZJ“,Káî Î9°{£„¾7ë.E¤Tì©Dc¢_•!‚ã2æ¥ì¥wNA™ÂN­ˆd;²^½ÕCq¸6«24N«>%0eßa6›l–ÓÅ3ÇâÉDîTã·â1·SV)ZÏ\ °É`·cºzwI|ØS\êÂò®ìÒéýãå!7ÏùìØã{ÛYW°n8±Qåó¼odgÒÛ%6xL“•[\͇)Ø”^¡`Vep¨ŒžG½Àʪ"„BVóØŸpÕ;ñtíÐêa[èËxªL%Q½-!Õnƒ½žÂvêÅšèÎæV*½HÌ×m€VÜ‹&o,” ɪ‡U''mTÛ­ÀY¯Ëiáº(«Óš‚Ü©IÀ KË™hàd^Óçu8#Î>Mª¹oì]u7ÙÈj {ø8`ÝtwÜÅC$õÜ'ˆbù\J‘‡‚Ñ€õksœüô(æqä_ÏìTþú9^#¼O[–Ç©CÐÙµôLŠ’ñ`î±Ó3[BÉΠlŠí õÍ<3©zÛoÕAE›¯w_I—zmWìУŒX"Æ×ÂÜæ ¾vv›R‡*MøÆvf%ŸŠ€ð¸”"õ(Vñ6@w¢” ñ‚´«NÉu Õ,¡ƒÜr8tˆ+sÑ7WÁß³Âs'öJTyõHí¡äa_ÊyBÊ—´©€ËÍ8Ÿ `›ªÕèÐ8Uv;x*ìÔzW)Sº1^Ͼ4,ç~ʳMQý¤bÿP-ŽuÝ)å¤ÝËŒhSÕ"*«øвë}®³°v¼(ÝèI#¶Ù¹VµÞØYKÞgwØ^ïH6—žmYÉÆíº@ÍRÉRÍù[¦<<;»3.¥x{V“t×. ²Ç<ú8–­Þ–¸W~¾Ô¨«¨èe$¡P°oªwBER£ºHX;øšÛºï¼âéÓö" Þc[[rÉFéέi_£:"…Æ´p@˜ÉâÔ£X‰žA»4‘+Ö¼—Ó”,K¶ ÉÎîdZêsËh­<Z»:ܧÓdÛJ)U^ С'U«u›VÔ „[ÇòG½GµHÔNT'zÔ×,gðœ)©kÌ §`é}_úRKUpۀħèyêzlå“5ê#%Y#Þgô'«,dHQZ#Qª”#9«Få·OŠŸ ‡½ný>¨wÂ>Hƒ»õâ^:ÂgP$wE¶Ó¨»)ýtÏ9CvÝ€@<¸@Òš%øºÙ™ªw¥ªy3ú ±ô–S$ùkô$f»ožT5ê86éTì,°HÛQÄs®!C Ç)Áñ­^ï¡>Ó¨ÞxÁ‚†j»)w[:E]ÖRiWµê ªuõIךÌò({ÙÈîÀÓòaR'f2L):@Û¾d{™Åùö‹¾â)ȼ„Õä±°¥Dúh‡º8’µNTßYE1Êhj(å$Îä]oO@5ÈîRSî§niÍÈëH šÓÔ* Ž.ê‚ꥊðÐúÈ*”ñi3ªL¦(8¯›½ >A §‡[Ô´ý°åO¢Æ®–¿Üa•(î tæC…K!zÛÜó¦îàn!5x{­—+5Î.(YGÊ3”*`CùTßUµ5Ió~Ÿ›ò¥mß—»yLÍ ª-ÂpÎõŠŠíRÕVÄÌQõ¢­ 5®'ªÍ]šï™çxí²-uõå…#À|×Ò„%&Æ…¾ù{@6bdGUš©ªº×ã‘QFp«jåͪ…¨òŽÜ%_$/Íž„Ò(¬íäìõQT)VÂæÐKcïª-îéÖÎ^gó}¿'ŃU·U2 J³G|Ô²™lH¥¶SŠ·yR¼³ÙÐWÈ~£`j²H^p{¹êOT’Ö^ÁU£i@Ža®n HÚHMÚed ︸у¥<ô³ày$êÏ›ÑA˜­ d¢L Àñl¨ôouÚÒ+ %yÞ”fPºè°Q²†¾ Œû€[C¸.ðËÎjàZ8Ræ$éà®Ú<·t׸G+u÷C¨yEÛ_mŒªÊ›SŸf;ïVÚ¥R¾oåGØ––±]‹ª!ĭ{™›Ff<‘#Í–  ¥F’xiD u.Sl¦\‘:û ç¬a¶TuøùðÖïæEÉÑZüpʱã(i[^Yó¢FãæuËe;ZFŸ‹ÑìFdû“4yîU=…ÁùiÄU£ßX‡öfØn»ÒkÃ9Îþªt—–Ôò% ©šl]OtÈ›U®¢Ôºî6'ŸYýê- àü®’aÐ-Rб^å»ki¼œsã;U:ô„^³¼v(µÉ“½E‚²|`ÃÔ¢ä|Ö>Èáàì“Î… *ì;•Ó®|{I…J@Ư‘Ø]SP)Qe%@!ò%*¸—ÍqpUrº§Ë¯^@àè¨1×aI;´¾%ÔܲÌÕ×!,:ôø¶ÁÙ¶d#Š'™" `O³( ¨Tv`žKj6•¯e¡ñT¨ú´D!gêQu,&hµ[6žsÓI|²Öx‘9(ù¨Æ£rcè Puš4XY ÕÇ·«q3¸GR…µ yÈæ@ È‚ÏåÄTŒçU_N0d]ÃÔȹÛF}À ¶»Ý‰Üq¼¾zˆun}µ@ªj÷²YõMTug°ÝÏå”_UZVF‡›­,Óœ¤töPìP¼M·»G…&Í9îó)¥‘zA•Ǧ6[µÂÉñ¦T0PK=Á4›û°•=Rùâ¦?¯•¼7`šo‹Q9c€4»Ö÷¼ë¸¶¸šœ–­»¶M!Å%G^f'ꌓQy樀u[)icñ®,¾`lçßJPà.ëF¬œ‹zžUgâJ…×COèU‚Y2ýj@6z ³•µ°¹iuœ[ØÒ“桤0›^A%MböT4JFð–:àwªtz ´£Æl@¤] v“uâµPÊ;Ërb¨ªµ„²¨*¥íàG‹P’,Ù{T®*o–b/ŽŠNuAvò#ömö²©:ß CŸ½Ym’ÁETn , ­­ØOµ…Aì´ç«”UQïî?i c™“¡ r+\v¿œ+;÷G“#@†\>š ¢É(wr¢_mICæ~Ý”¾¤ª­ "¾)•³}šÕvˆ½£N]·ÿjØzPTªÚôñ0`ìÍ®Àé‹”³œÊOÅ6kh:›QLJª·ä”æA¨³È‹òZ/`ÌØq˜JB á']´6Ðøa¨Û–E1{@˜2Jôñ¯IåÞÃFŠ.æÛp2v;è ¤Ýp’˜ü·jÔ§FÏqOâä©«GAˆ9Uâ ™;|¢Þv!'±O(—ÒŒ®êq‚‡–jªtÇ(*ʨ£9Ü55“­E ¡v m¹)i¥Ü\¶b «)¿¢¹BÓƒ©©èΞÆ·%+9»èúFd݇ü 9åVƒÒY»2Þ=Ñ”&Æ[¥ì ŠÛâðüÎ1œ»ë¡–T ¦PÊ”¹»-=r°] @åFÈü†ƒ[-æíØõQJ?L›»qIÛü/ȼ;ïï6+‚?¯[®afËpÍ@íÓ®ÂFñýF´R†E0û‚¤O…¤l|•·”H¥tóýð{ª­–"Ŷ•= ”^¼ˆq©ÆUä26¦†XËÑã=¿¢6;âÀ|~™§šn-e²–AT Uß仾yöT ÀÏÉó-Û¾·VÞlPõj@+tmµŒêÜ8‘C’Y©åÔTÅölµáb'Q­Ÿ6pÍíÑÉ/ù*½ïÊÛeí,%çyÀ­Ó½«#]¾T!LÚ+ÙÇãòžú¥wˆê”䨬vìázÔ»DpṽpiëéI&#lÒ‹uè“ËšK—Ji"e÷¡€ùìu°O‡<ë0Øt”æ:^i›fWÖì¾&BšºÛL)?Y»‘ ¦W*Ééˆê‘»-A¥FÅhzŸKún‹éβaM°œI¬†“uáØCÜî)k­0ž[ˆ§àòâVqý¦N75 ÿX[Ågå|Ê¹Š™CK]R»Óq¹ kzFj˜­Ô•$³'€Tí»é¾Æçß2Æe]‘]{€wM-O[êqEûˆn&¼6Zk“ئܒ“ÊðÎÅØe%d¨bÈ·KãâŽwK")*eé ôðX‘Í4ô-XüœkY²ŸU#>-ŸY1·Cìƒes ˆ–Ãõ$¿4ëÜs³ö¶Cb­J¥]ö"L´þIeÁž¼–P{h–œ|2àXþ·l=âGÌ[n) ü=´Öƃø¬{‹.ëÀ⩜UWyN51&±·z¦ÕÍ äK£Õ]±{{Q÷òä%oêïª&Ý:ŠïVVz2èñˆ0 ö¼)N¥… Ÿ¾ 9—<§<J“ÎUMWEµ£µ£9]K¯è9Óy>[&ê‡ìy7å„2ßqéøå¨ÅxloVÞ\tAó㣠w1og‘`åÔ¹'ðx³y¸è[—o'U‰ÅÙ[¥Ój>¨¢ì1àîpð‘¤Ï MÞ¯ýö³óÒ§ÜMªBó aJb)+€õY/òò”ä£tݦ‚ä$g]Žœuy~ïÚš´c¢&^³ gÉŽ6u?ùdµdÉL—³U9ñA…x¨Ì¯lS7’Lµ¦ä)›zhœrI\ˆåHšÝÛYÝY`óY¸µËÃÀÆÖ"Õ ò³‡™ëÈ ïL ú[–,GPÐúƪñ-è°¦‹D“€˜Y[w±ŠPˆ}×àÌQ}MU=IŽ)G‚ްq§ÎªM±ÀK*×ξVQúÔzÎÅ¥¡‹Sɼ£$¹ˆ¥ùj7E8ßœkb)i—êIe¥ìêÚ+iõ6Ô4èfxQ&»zHpÎËŒ!%nEO[š:ÝStå!›iêÎØÍå`ÃG³·ºtM5®Z9˜Ð—ûV7¶òbÓæª¾: ?sC¬AÉr»Æú.ÅôØeÉYý-)Ë·ä96‰³•¯ìÕ ¤¸uÏLžø+Õ°‘í#‡†[¼²ç#Ÿíkð‹š:\r”¥·›ÄÇÐ4K‹¹ @ŽkæJX#G’ Ðó±ìT™² ¬{Ïi²†_Ñd¦s-»#ª3·Ðϳå;5É险üïŽF$W%F¶ª_Ï6ëí÷R’h& zÞÉá‚Ⱥ¡ t«š7@‰ì[ù[·º±mý³²PL3Éì1Wè¬ @íèŠÀW\ÓêÜnƒ óF@ÄY ǺÆØêÔÄUØ^(×'éN] Î"á:gÛ…-7UÛ©£\ÒÝÜó;°—°c‚ΚÚÁ€Ã)qˆˆšH/‰¡)ÜW¦•¥‘4Úm¬ÕzéI–ÊkX«º|åªÎ]ê}= Ð’VY¿9¯åPè¶Â' é D«‹âÑX“zG# ê6Ù™eJ¼›ièžw. “ýíÿjGÖy!à9Ž”dëv]Q6Ë' yq’²=À2q) ³_¨ ¦~~!ªÓ®Rp­Jxø*]ªm9I}|R¥,ñS‡J¢Æj2xîÕQ? ÎÚpEŸS·yIÜ,žnªÄ'ÒÓ¥´Eª‡öã¬ÉŽJxäHt3ÛR)6ŽâÒy[³©:Dí昧îÄçI‘]÷A ˆ†|ÙâDïºzãuÉ.Ûó[ßɘ»y€Tvj5x¨Ý) A¨w›oÝéÖ‘(šAÔwÏ—Bß–Ðw%¦Ù_œkÍlW×á" >þØí*EØ$<²¬$½ìˆ‰ÚÜ]«T?ųaèLOœHŽ’ïÖÊÑÕÊ5sKg:–b‘Œ€gk:˜TG" µ?n.î Pßžô>]ÇE>»ž¼©‘ýá@sqög“,I-ÔÁÿNç°6¤iZ„;"È¡¹“Tdp³BEž¸²–‰åp‚êÄéU”Uã}šT€[±Üt©Ô·e{¨fŸZúd»DL½Îyläp®wé.uJÊ¥XÆ/z*«RÈ£W!o’ÿ𲬈AIÒ\ɮۚ ¹Té©aŠÖ¼ J '\' ¦JCÜAbà‹ø·Éñ/Jžxgõ ³~ E/ ²¸¨™Š·¬á{ Ç»5ýâcåKÉIañEjz¶Éz¼ôgɤ'% HWP´u$j€2ð@P¨ð]m]—ú­,3ŸÊõÌȳiSI¿‹ŠBƒ˜Õwmzä܇ZÙAW­g:ì©ò¾3 ‘ŠsÛÍ\ûvž+¯›x"\£.€½x&ÑVÍ CX¯Í­óZËùÅy©M‡¼›O«÷´=«°Ó阾M|îª-¡k*R’<™ZOFjº¶N`íaÓٮܒ/¬î¤Q°Òë Žc><Ù5óêA®/m—€i#\·}KÔ” ÐÝ’wê±¶ËìrüÖzg'ýyäØä¹›aJÏëig[o{}Nä ûšÙˆºóÄ UËô$6#tT³âeaÚ¶f[= ÀãÞØÝEzX*)æX`ñPQp7e(ÇNîeCOOMŽWŒÉy½¶–gjGéN}E¹‡ÊÌ£ VžýyóƒÝçÜ×x,Žt¥*GçÍéÂD¿Â$n55`œ¾¬$î©wœc¢§ XC›ÕÓ³r°8¨¼‹2‰Š%ÅŒ…&{Ž¥õ—g]]òµtVøh¹{²sÏÒ6½ÆÔlÖn²m'êœKç\í­YÜ$Úa7–¢ªÜ\Å®“ ¿›ö)¾/â®ñøu) ¿Izõ¸âeQ¡'$3zÉmÔÝÞ²â.Õ™™>6'¹=]±_þÅXÍdV9ŸÀ±¦¡:‹´_v¿‚Ù* í¨×AÀn ¿õŽHÂlê]„À©º7‹„Êz˜¦/ž‘^´;~â;õ×Eh%ì—MS*8ôT•—DäšÚ‹;Æ­åé.”´  è,ª¦ôS4.©—¦gÕ kJ¼=ýô„t ãØÙ"àÄÓÉènkˆB›è É‡ªT¨íÒm NèqŒ‚£éVí!ƒgeD bìm·3xº£L ÌÇ{îûEv^gñ:ö€è¸-ª£zÀñÁ„ª1Ç7¹ öú­‡£rðÍ!Q•³¹ìÒø ‡ç–8hïЕzó°j,§§Yl·‚!Ó.M?ã³Ë˜ÎV|`JšG ¹z`~k«­ËÚ SÕyjßcªßRw5'F’ÏÊÈd¹{ĨGø²k$ߨv’8q­Rr:ë4ĬTú¬§@b‘_Ú{ö«(ú§‡ƒü-Y<ÎP¼çÖbÝ•¨%•æJ¾Y*ô¼¬©É$€¼}Ut;ßã3:=$̲²¨ä²7ö~we÷k¼7>;-Þ@ÓZÀ^Û`EyvJØŽD¹"áˆ7´Æ•HíÖ† Â:yÀ™íöx`:{)$s)W/k€ ’æSЍUÀ?%.ˈM¼Æ˜U2^×§ ‰ÎºˆÑx¦ÁAbBÐzh‰¿€“SZ•-­½¹®ËSé€À•VŒR§«¦Ò¢‹>sƒ°ÊÒ)”‚m±JTZ9¤KìÔ⼞M꤆fJ›uymF^ÅOiH$w!eC^¼³LbeU,ö~=¸žêjRÚ°ˆdåvô [ÌÕ=Q{´¦ÞóN:çqö"¨ÊQ[çÏlFpâ*eƒÕg\’HUêìÎþæ–3Õ­ ÿ"ƒB"ß¶+øO ‘û¢/3 @„Hˆ ÈkQ4ðs†4}î:SPK¶«œÚw¦²ÍWK^6!±µª9ª“AhÍS­¸Z òCxÈžú‚£B¸7’lU*¨)*IäE¿ÔX·¾¯¬ÁcK>I÷€Dé á;·ã"ÛǨ­TÖPb‡TÍgû/]¹z=䕇Ì|ÜèãñÌcɆݩ·f?ŽòjÉü·aÝr{ø’%Ìæû¸’þY§ªR ørs/Û©(⢳&¹ïZ?OÂmÐÀ ¯¦•ý©@0é6ï îA:È³Ì ú©©MðPˆ²œ<Õÿ³7>œZf%XÌߪ#<À«´$XÕ ‡Îpê‹j=xf%vø—¡*بºœ§“Ì£}÷©1‘}sûbdÎåëù_x•5•È(ª‚oJ<¹§¦:Àý¨â$QãPX‡\Д¢²éú íÚG.×öG°O·¦ðš"îüF 5H¯ûz”®*+pò¾šïår­6ð–gM;œÁðÌγžq=ß“E´I)&œÄFû5ÿ/öþ¼»,»öEÿ>ûSà¾1ê¥tŽSо©çëSÑúÔ½njd–}}nÚâ ‰.Š”I*רïþæo¢ T*”) Dر›µæÚ{®¹Üš£Aö¼k¯–+F,!€‰®Uç4z¸¥BaÏË Ò ‡×QSä=¢ r5GèZ'²žœ4Fi¤lGéÿÊòo]öÂ0æéÖäƒZqE|c+ÆB®ìQŸO‘*ÚEéA_Ÿ¸0‰qX@ ¬âÌ@ÆË"Ô˜XòµB érUX!Ë„¢*+Â~aOÿå×ÂØæ“‡Í‚„B¨9e©‚YEZº¤+S’Á”†DUI‹Ë45œÐ|e'‘ìN´²jôZ2Ƨ¢ê4Ç®\V¨É ѲD€%#«Ì )g ;ÓÉCw-R ™,Oš y“ ÃåÔ³ƒ:Ê¡„.® *|Ð2²¬«RÎ!\r‹d2õ ^‰!OHÓD‡0ÊE# ÊF&1c (*Á¼GjgBGöùbDbˆ]Yçڲª‚úÂ\ÈÞ S‘Rè²3à“käÇ,⊺Žz¿ú$CY6NP9ö‘‰QxMY¿È2£ Àv90³ùØÌÅŒr?òäÈy¦ ȸ Å‘Þá ² BÄÏ®J­…PSW¢™ -šû9ž¼P#µBÍ©Qe ­ÐÍ9AÉJ—bsl·“6ÂêԔȕ${”ìÕÂÞB Ât†:ezCBÎJŽSõªÐPÈkŠë@hõ—Ó„rL(Üi¢™Â| Ê Dúl ç`Ђh²F2+Õ’ÄëénÔYl#7-Ó(èÒ iú;úf½“þš"á±–êe¶ü_Z³‘¨H6‘og£J6ȇ‰¥°Î ~è ˆê5lŠjβI¾å@Sá²%¨Ñ «@«”}–¾ .{¹'ã_Éz¼¤ð ìqô0}ü^fIjCØ®ÐÔÐìGuMÑSiÈ.ñ)ýë𠨜†Z1’úÚœ ¤iè¹V¶ð$ ™í(T[LJ  \¨(—÷ÎINv£@ÀörAùCª˜ÒŸ2 ¥Ý«ÌHR…‚R+I ‚%J'²¯"û{¤;i²Úœa'D!¨5EÈŠñrõ+쫟l«lC8¤a%½õÅÙnºxA~šÜv x—)¦)ª¿eÈ©Z$º‘S$œˆD¤P´[ :bF/b²J¨Ù–#6¬¦Ô¡•Ó%ë+$yª`b7!ÐZ@ )Uõ%»Q)Çe1E[ÂúH¡ýj•µ°¡=UeWF¦…Ý j‘Ëæ{¹\Ÿ,à†lyàÄÐc×Iáx‘±ÊÉ$n•eHž¹¤[¢Õ% ŽJöêÊ‚Jd´ÁÍ–¡KR%g5ld$ŽV4ECÃþ)ŠÉšÞ.oÙ= “|MByTËÙ¿”Á"m0LÈyO],"Ãh:§5åíÒ•€Ê'Œ211Dm $âbnâÃô*É Õz ÉÞÍCé7[6WïLcM29ã2…hÌa›™›ØMw*6zê°H%RâÖ8̵h­i2¢DPI‹¦b‡]V•¬Õ:æhJøj"Úó$² ò"3d¸Q¿ËA‰„Tç‰ÆÂJ(úØ4Ÿ”ld-OäfA3Ù“fI+1åD¡*ŠÄ ™…¥—pÀWÛd‰ éÊøº´Dr^³N£4•H!Éx²ÛAb ùR™»F/YŽÛËe=‰œ;ÊÉä‘mR #‘EÄ-zX9êbþŸRÅr™‰-Cl™+2ž”`|}TŽ,ß*—cõ(§T‘a’ôÆ é Z9‘•¶®gÔõ¶ú¢òUQ¤éš•œ*5|G0ØØªÒdzÖlthøªLq‘•øŒØ–Ë‚Æ ÅIѓՙÐú¡=)Y9n9›­ ‡‚j§ø•ç³/¥pa27…}çÆXpô2bÔµü¼2öxaÐ0Bd1¹Dã‘Û©‚H%’¸²Y\ûAH,\ªéÊÆ$Â’…Û:BhIØýbY &Go àzP²VDžcäCY(‘¼³‚Ž!R8­.~M(áBóÒ‹sÒ1.)EAØŽÂ$ ý^89ùΡ%µ²Âk¨Tl fƒ[࣫EÌ.ÌeJEðäV@€ˆm>~@´>äfðWä×°â…âr(Ø2[0‘=™!à@±D€Š¨ÚSS&¢2ìB’&’9¤• > „yÍR[9ѹ€£3ô8+vE‘.ÒU)¹ “mb᪂LÓ`Ϊ*´OÒÍ[M}!?òfŠ‚äž4““1ƒn/W TŽ@‘ZrtÙ A¨²DÈÈR®`fûd³+¦ÃýCHÓt) Á¡³¦K†{¯E †>™¨ÄáòŸŠá5é «õE‹ˆêj)àNæ ‘y¹BߊŠ4™ºO߯îStI¡gù’ð^ƒ"66Ý ‹BÇ{Vº";ˆ¡‘IS¹ Y’‰`YºÄ&Ž{ÔI LA„Þ8ì™Ä‘Ä0]4PQ’ü+È%TÆf\Éç,^Ѹ7ê§ ù»ã›B ž¢ãe[¨â û"x§õ Ù$iù …М »šÉ$Ň²© û^€•v×Q™aÛŽ)"ë³ojs Rc´±eqµÖ…™'¹ÔÁÎM*l—d>[ɶª²™p :°–µƒž ³'FË Tà$|’›+ÔŠ7rä úˆž‘6F7B¦_k™@J9DvãÇ­ìî¢UÑi©0 œ’ÑhYõÈ@(SW«Š 4â=’0É|õl!€€À€:šr®k„4ÈwNán$VHPäˆá×¥™k…²d¬Ùµçúd¸m ‹-‹¤™È‰e{ÉQ’ã&ó6dSòþˆšpz*O#ØTæuÄ1´ºê£ü§¾ÊÝœêõIãc+œXX©ô€Bв—9$]_øÍÍCaá˜"ê‡êƒ墚t*Wƒ¤ñ «ƒ£®©ïkF±¡H­$²ÅÑ6W8¤µMšT‘UоªÕ\Ê‘\…õ-ÃÊAE‚"ÖDóGį7$+çÀÎ2I-ZÅ"ïhî’§¬aÖRqƒŠs‚„T‡`4‰=‰Ú1º;­|ʰȰk1°¨I¾FB*QðÚN’¿ÐšÈ|l þ‚²Ò 3Ç‚ ¯‰ÂF…"2qB ÒPbªÔ’ÍÌIª©„äÞØ¹“) M†Àœæ1a¡ìtÝ@¾tà@YÓÄj;ŠÔ¼¡`HåÂSE‰:ˆ£™@2Ü«ƒB…sÒP n)Œ…¥lQùPC²žW %X£ þ¥<® 9::žO–½(’ˆVJ^.v"6£Ù6è)ÆXû!û¤‰Ö$ z(v©Ç‘à`×C}.„•è+S­þ"y/òs7 1Æ(>P!„¿ ¨Ö§ÔÍ º¼Ô€!0MŒ°‘'X$gg2e©¾‹ÎgB™Äæ:q“‹M§V‡=ìb”uòbÏG%ª#SGC~!'ÜàH‘µ‡ÆÙ¥¡Gýœ-þ «u?êÜ@…lP‰yi¹ÃÂMŒµ94ì‡üaAɘL¯©¡an·yåèØÊU¤¥è\XÃë4Ýh¹¼”œ§\JH:šÜ u¬<r×çìOÁ\ÌTkBŽÅgÈ| Å„H¯É^Ó!ÐáQ†Èo!òuÖ½•6…D+`«ˆÅ‹£ñ-r cD€gð}S—:Øk-«‚Ž *â&” CYò* U7’½B󌵗³GA„4qÑx×”ÒÚw< †_· 8ºH²ÓZ$ÙÙ]$ÙùÕIv¾–"ÉÎj‘dç¨"Éþ—X$ÙÙ*’8Iv(™šþÊ«$;ª$;c•ä‡*Éîäõ»w+åg©?üð+åˆWjä¼ùáe_¿ÿçç›ûÙÛ7W·kE‰ýtþÊúÓš„¯?ÉÐ\_ÍÞ­<ëΟÝxs§"Ì‘>«o¹Y)ÞO^ß]Mï>ù‰T]-²¤ ž.å^(PëE¦´õ{¨Ïìd ¼nÎ*2Pö¬Ñ†ò —ªUP¦qˆQõŽ µöƒ" §fl ¨« [Ö*¢š¤pê4dZ(¤1R¦µ½­ .}›ÞŒvmîW‹¶)9ªÚ~®È(­Ì¬†N–4z2~^ø ³ ñk­&­!DÄ„5üD†ŠoÓÚ¯ ó+M »³./!Ï®Nàø !ÍÄ¡–Ї°*&e~R}Ü %ÉA´o´ƒ"z!Û)޳H÷Ï1µüP¾ N±2Ò'á!‘wi(¤QßC[Ízùq¶±3Üë”’–ø½öi©ÑÉÏ Ù/Ûkʚà ö~)iKGv5áð‰ ¯@¾×­P˜“5—¹«Â2 wYwàéS¥W“"—ÐSy†~0¢±úZªjˆÔt¯,I.ôåTstÑz“JÆÃ¨7Ð~´õßcË~§Ôq %7Wà¬)­f3ùåmKÕ4žÈop ¹`”­-SKÝL Ö4Ï"òÁ22`?€¤ašÛ@æìÁAÈ7d3^]Îy¹®B "a·*¡t© “ ]AÁDÜ0æü„‚‚‰­"£Ê™éÃT¸ ÈP©ëÈ«‘ûHeé)Bœ!„.ÉÖª(³Ii ¬†F­-9£÷©“á8T–Ë‘CGß-²ú„ÈìVW!»¼”ƒ !9å°ZkA_¨5”ªQd×–$ ÛRñpEÔÊ%8ê¬k1z2:è-‚´™.’Ú •9ö=—9%‰”IäL ’‘p®[¤’/šQ²î>‰"®ÐnlwÍIÇGq2¤Nž¦8­ÉSÊ>xp¿‚j—œ/ulͳ’BíQZ"ý!‹ OÔ£®¬Ðu‚L9ÂôÔˆA†âX!b5>EKäƒeÛI$’wæxV·YA›‰`x{$(F{•—TcS_pž’@ÏõœH9O #—+(¯@OQÛ+9I+3§¦Üe…&[ŽD"ê/£d$ào,…’ê᥄…YS}U¬l¢!\(ئÐ×]ÍwˆÒAËi!ð(³%gN¡ry¥¼t¹±¢¦)r‰>ý™#ãÚªj= /Ij¯Üºƒô—ÌK¥ÁÒݧèÁxÆ–ïÊù~…Æ%ÔR¹üŸ£øƒ*?ÄàHÿPà5 Ü,(e¸l¾v a‘p(ØŠÖ D „ºkhHÁÔ¡®gBÞ¡¦V¨ w){™àšÈi«MYˆ|¾s°"QK3LÓ«"ªŠÑÁ@Bé‹¢¤12$‘Â> 2‹‘ü–/Ô¼‰ þSOöÞ']}Ú Éö¡$µò ºV„a¢$µZfòT©ÊåŸk½ZibR@´/*AµÂ¡ê¸@2\ˆÈydâ¿CBAI‘L;Ù‘DG¶ÛGÀ!‚ƒ§¾­ãXÖYJnx±‚™´6Ô÷©È¸ÕE jB×8eZiøQÀ«.Èjq4`*ŠnžU‰K2w²ÊጬgÌ&b™–ì¼èn/#-Ž}G-Y+g(û£õ[‰[#¤ŠÎú#Nå:2¢']4gåÇ +ÀZ*Õ‡\KyÒ:qφ¯P+È,ã(¢üO†¾ZHÖ?5Õ -N¸â‚ =õ…>âã•ZìSmÅÃeŵ‘»¡äj…Žsr£ÈÚ-=ݾ¢AÅð…‹_Ò"¨GnV÷RŒ[)xu©óA‹ATl†¾Œº T:‡åeTç8D%ò)éúq‚¦B˜X(ŒSø¡M2ÖÊõšÅ²¡ƒPSLÓ²§ã’\A&™G ª˜042‘‚QÇTÓÀæ-Ù’ÉUE¸’*(ƒFW†rÚlöknPžºàz€Ð‹‡d;¥Ü<æ1eÀr¤0“BÑ _¨[*hÙhb&!62ß%‡õ(ê¬éäP;Õªž¦è€¥žMÑðåQd”œ¼Ž¨¾…`¬:9{/ ªA“ ¤ÌTP»T/LIã“C#{{E–Yî ñæÂÃ.µÊåã"­ÅX9F/@á?†r˜È&i ·8·å¼d2äV…4eã\¶­FmÁ‰;ó÷͈XdÓO åŠòuB™¿œ¸"`1ŠÂ²§È%¹‘â#$Ò+³€ý&ߨ2”jüDÅõ¾ƒôÂ瞇,~ž+¡¬k.Ǿ¼°Q‹Cv¦¦bj4ØÂ‚ˆÛÚ“pcœWrbH‚"K&ü¯å8ÈDj™É:ë ‘V»ïf&óme”E!¨ãìá’tR § J’\!–R½“Šññ¿Àm: Çw~I…3E_e–2»†‹L&ÒË4Ï=V&©£ŠJdßjlE¶› SZ=TŠ Û –ÿ– ÑõdÜÔ Íi6ZŽäõIÙ#!K=GãSŽÑ¶<©@å°YC¯Qñ@±ª&¡ rÆõN»e‘šBÁ¸ÔjLXá]NU©¯¦¸Ô[¢aŒÐU#fërèUN( ˜D…I­p©¢¬ÍNŸ0^)û£‡'¸©°«¤ ±€”|©Â$Å…T<«\Ê»g~©‰ä >;%ãJt#Ã:Îè#jîQË‹]Åâ.º+z”¹‘b®1=®!/=“'åF®”ùtÆçÈ ¸•.Éøpï$4F…MèöÖŠÚ¬ Oc”Ê ´Jƒ£Šï Si|(%ôÔ@ºZ¥);½TYömN™,#h ”–QR¨%¨û!¤JAÙé ;ÐÈ jœå" !¨c‘FedÛ=ι`BË3+ö×P? !wÄ&Ù+ -]™”DÞÖ­(ZQi°”Uö5ÌÂi Ù{6Ÿc«–A”Cµ[Ý­#©qK­˜ÂAªž×¬A?L [Üj§ŒWÙ£‡\x]Ë2(¼B0 ­tWîšÚ¥­*_Rœ8NÕB½¥¢÷˜*šš [@«º–âÞTK’‡´Ç(” Žd¶eÒL'òÜ…À‚‰p@Y`EBÅy@$MS:âäùù_2íú >Ÿ1*P+Ü=ƒRª–gÃ×µ!^åÙÔù‘ª® ½-C TQQ¦N1¢Qœû ¨òŠ2Ý¥-®¦I­Á*Ã6ì…å9³ÈË8SÓPQ+Ñ fÖ¦¤¨_!3š ³SÓßãÀ DΡG‘"HH­T­Nõ^æ”¶Ën4­„$5y+œtLè¨pJÖI½¢¦Y{ȹ¤S*ö³U”ó¹ðÌÖi1_Œ,kE8ò´ëà 1r RNŽBt+£À'hF ¶€k\»?›ø~Øì‚¤Š ªLZ«HžPíLK™’ÄÊ'hÇ$ÆhÞ‘/@N¢*“=¦ðg!håú]mô[Îݧn4*SŠækG׸úrÕ–b™õ\í÷Q4WPhµM‹ûNá´ñbW‘qlR w!_Ãä¯ǨOàðØ—Ê^…î $…¤™­iHzh€—fw‚tb­xÒ¤”“-”8‰Ñ,ÐÓª9–¡+í©s)»Kõ+rÏ”&Âa˨*ÄÍÛ³_œÈõS=LUN¢.©p $IÅÏ"lÅjìÉ!nžZññŒÒO)i±Kå&Òpj·ˆó|)Ÿ`™¿ÔVÇTíE̡ů„º©«“CÉì®*rÁº7r²P¤NML5" ’VœSg>¥ Q#»[Vä€zŠüfRËà°%¼Î^/š¤ ú I͹à~ÊÖ—–¸âT­"™$!BêÎ&A"„X¢Ý¢™Q1ÕEqYeØoà 0#/FÁ]N‹œ0 ìÕB4ä¶³!ÉV¾ðá«· (`_'¢>ÆS6Êdìþ —æ5þ^k—äÁ’º1ì1 ÂqÖ@%¦RîÊA,Mä"®Ø™²ªT”®‰cψ’„c>´ù\}¿Bô5u]å! ë#±R°‘$g˜Ij"ö:ÐÝQHØ¡®•ÿßCʪœ0ùð`Š ¾ˆé_‘ªEL‡J 7ä4K+9Gs1-9æ…;8ÙE9ª"ê H1b9”´Ö,Ï2{h¤8‡(]À¸¶‰Ò¨L²ÑÊQ]SÓKV–¢nbkHqõ@=çç´ aRöÝsΑA;¢Ò +6­-ש®k ;˧s"YÖ²‰9UmtÂ_ù Yb—°tr]•ƒ¾¥Þɶ!yÜn&u8¸ ó„PâþÖhå ¿¸‘HLBç–~•)Ìã´‘¨J7(x]RÖÚ¡®‡l¡Ö‚‘O9h*íQì¬@Ü\ã©A†eCR'[œË« ¨´ú.OÈS!J¢ÿ$E1"[bPŽZÈa=‰Ô2á ”ù³X.§á2ôÂ%–ŽÑ¼pÐÝ—ƒEÚÛ¯ÁŽ|ÐG–Q%¨DÝ%diý ,#ø¡»óèéƒFËWï—µ•7M«E' gà¡L°'ä,¿ Üç6ûÈÂV¥©ÒL§ÂIW2ß‘ +r©¾¦é«ö¥ÊÈ›„ñ¡;­ÂñŒ„]ÕäϳµÎC"<ÁF:BòfN j¸4㢫\¨mP#u õâJQ%ëú€ç¡_¢‘ŠÎu(<®ð!¥NŽæ¨,VBöžBGÊz§§ŠuÌA‹š^*<´è¼bã‚ä0Ç ¢î ¹S²"Š„óˆªãlV’×…K8)ª)€DÝFvÀØÌÖb)‚šª÷™ºL3œLÙ×r:61Ë5ã´üÞjj¤…)¾K²……ØÔL‘ZÌPMÙM ó[ Y¥À .TÊÉy#R®9!aÛ ©Xc‰Q5éb1Û·!B¶Z`Z/²d”q0rpú6õº|œ"†Q~4g“% š %•RµáV¤^=ôAÒÊ^)”e¨NPÙŠŠÇ;!ê• ƒüõ"ƒ¥Vç‡ó:¢fÌpÔ`ž9¹¡®m®u†x%|=D8|±÷1z”Ô—kàÈ•šèl#(&qíœ÷Œ H*·'¨ˆ4p8?´µ²Ôp)ì]&0@(¤¦àX §é90/c¯ÁËd‚4«© ŸQæ)[a4O VÆ‘]ÇÂõ—Zs¤ç…QEB|ZÁI’ñƒ@ØÔõ©å–Êl±íGU'"+ Q±/'B&½†1ÎåU0/{W8DúŽ–²¼…}[QI¦-@l@8"‰©~¢'¬T”äÎæ¡APˆ_ãªP’Ý ¤fc¡ˆˆØ?EE" ­AÁj–ª­ì„0’¡ú07J)¾9µƒãLgÒn 5¨ƒ€‹Âйc§ $‚ìÁ‰ìË!ds¡|ePk˜šÖ²Ô'¨«©T­n±™ëYà(r3ÂÃìdBJdQ#Ðv‚®_Á]U(m$0âZ–3ÓÊDá$Ì(7®4måꀊsòY¾n¾Òµ…ëЬ"¶^B@ˆÈk™k5а@B/­M% +(¬ŽEóˆøG™ çØC³NãåZZM\PÀÓk®¬¦LešX ‰>THå9øN˜äæà­ÊÊȱužBÅú|O™N…>beèÉV©±%Ž9F“ÊÓáŽÊnZTC@:Ð'¯WóÄÓ}RîMð#Hª¾¶eƱø2DúîÐJ Ê䄱}³—Gµ-¯Òü4A=ê¦ ×V)êøìâdìk¨³…ýåapBöKÀvnh•Ñ©-ƒà$Am¥š"u‡òξKÕ¤¹¡‚Ô}äu)Q˜ÂûÈÙ Ö”æ L1*Ð0U1†%ŒX`QöœrH%%2é¾àbŽ*™ß¶81êã”YV£4©o®pŠ Qn ñåÔÚIcôÛØ)L•ããÀÖ 8ÂK6)êMe­¨S£ñ²ƒ5Fu¢ÚXÙ%¤|9à s¸œm{R¼OãB±8uõ(C@A·S5€Ê'#g0„µã£Ó %Pj r@S³¼s-ŠÊÆ›úN—‰¦HˆMWtÊEœ©¿í$55ë5©-K£¢~¸®æPå À+ø()9‰¡ç°êº²“¥5UZ?: Tá$Àžtålö‡)‘UæKÅ^5G'¤¸IÈžªâÀ5iJITj›]í ×ùˆP³"£¢£À]†ØFÅ!q$D‚xÆ2á°ùš¾É9(Å*®Kas:$Õ€ÛÊ\¹ãè‘ ´†F°…(E× ûJÄZ5ŠæeØ*vx(YSP Ò&u Š^¦(áË€¡òA+Å K B¹KPŠÕYÚ5Jad4@ºp-º,ÙNFÒb§L±ŒÚt@|-ÉÑÊ YÄMMø¶káU$[ËȬ –C¹¢€rÈQ2J2 ©+Ad…"à–S]Ybq ¿ÈK]4;RHôÀo¹Š(_J ëãŒOú[”¡®B+O—ÇF=ÐGU³ Æ>zq„uÔßCœZà•Ò Bu aûR#)TÍ¡¢ëßÁ é”À±ÍÔYÔ‰Wõ"ÄC=t¹/ÝGAC'"‰C·7€kž^’•WÈc¥æs|£RF€¯M›bÂ1!›TUG´ëáSF’)bk±«+› Á¤^\ {€á¸Ö­ªEÂ$…M ‰( C d³²¨3@Ÿ 8Eït™Ä1…GPó¡©éFÒ—ñ¥¢ ǬZÞ‰=5b;NPNYE…”þ"0õ R´{ bBÓÔJÑ•F<'Vk"¿U–!úÍårÂýÌäÈΣsì°]„HBâÈ8F–Ñ£ˆ@ 8h/€Ì:ñT×LQì›&†#&$ª‘u£È\PZá\_` aW¯"(GR˜8ÍÀH±„/‡@žkg¨Ë\)¾‘ãM<Ê|j†“jMD.%r\¡—âÙGÔt„Î'ৈ\þÙ¦aê8õ3ŠÖ5„¨ú(ðDÕ†³ùl08Ê’¢ONÉä¿3v÷JBS=Ø%Cù±”C´Šcc™D’\J>!ãR"Ï/˜†ˆ+ Ôôò8ô.2~X/XÁ¼œY‘lT ½J`ˆÝ½ÂœÔì…-•Vh(Órð‘—L……4[L)ìPt×Ñäõ䕵HIoð‘YV0æ%…Ê™¯9 !–) Qúbêz±ÿ,Û‹Ü45âcá*‚‰$KÙhRLJjŸV”(cgd²€Fà19¥–SRYto ¼…ös"mÞŸET—¯aѲ÷.L@} AI´]òÒ ”Dâ“‚¼€½ªÈoF¤V…{M\–Å#êRVDÖ¦ÖT¯‹Â€Ýq+!g2¢ÝôÑM³óB©‡cbjt;¶ÈœŒ¢Ö§GÕ-…¶ ûˆ³ © Y¡ËYX‚†‚ špÙÇsF&DJ9E’4²Å(‚ŠÔ¡¡üA–hÊ59L œ ­îGÎWñ–‚E9ÖŒÔ6Jb³]£FQÓ¸0ºwÍz+„#ç©%¦)ì+€CÇ ëXÍÔ0ò¾„;ƒ@`ëj~¢ñ˜X±BŽ€<¤z-7Ú#XS TËBx€*-ÈG|ý6šYÅYpÝØƒ¯`VÚ£àÎ ¹,$áB­ ‡€Ø B¨=Ñ ½5#œƒì¾Ö§ÌŠËÛÞn]Rº§ÉâÖ%Vž ¥ãCКSx˜dWe=¨¦1vQO eµ€CêJyè­!á©xO€¿¢4uG"N2œšìBÎ)Èו±(ÈÆÒw‘Ĥ-|AÍ ¥°‹À¢¶’3G}”Roê.S ¸ZÒÑ[Îb±°dwúx)ò*õÅìÙ¢¬ci¥jpx…PñK¶ž<¤šå‰Ìi敬ÌMäÙ )uîØ²I>75òù@¢²• dÒ5Ct-å5)HAµWÖ#TDS³« 7(ñk-µdÊÚ9Õ@‰\ïãp¢$¢‚]×¥ÜzNu'7æÜ6® g–‚ºú„éOê_.lBYöÔ±%õ‚2D÷nº¢ta²ÊǪ/Ø7F«‘R2¾2ªž¸ƒ4¿p)pÅi8(ŠYrDU2HrÞ²´EáªÖŸ!”‚”¸-K]½l‚x.õ÷lnbé®­æQ-ƒ{¦@U!HQÆ×µÅý„^)~ÆÁ« 1è%‘+“ƒOÊÁqH@ê“/¼Oµù,—Ÿ7ŠÕG–ÅH½£”º] âKª‚¤”ÙȨ(ÎÎn‰=aá¦%U¯}¡ÅL9`”#Ç‚3EGk…#=µE>B`.š£ì€E–,d5¬-›„†B»Q ^Qø )ÇeS&Ò€Ø3qªÈiÉ9Àk…6†Ê)ðW·Šû2j :E¡$I¸*‰«GWœµGNœP¨ÍꔂC¸µ”Uüé™ ]JÅk‚;9_QqÀ1xrñT¸ô¾*ŽR!b6p}MŠ÷­B¯öŒp ù'9Bî¡ ªÂdrªƒiL`ï:D;>uÿRÎ4)% ‰ŠJv‚8°r(IVWlBQ¥°•_«\WAnNrÝ5Ó2ÈÂË+øÔ –g¢4¢Ä¤r)„¥4µÓ`†î›|_>©‚îrÕ¬7?ÖRqþgääÆÔ¯{”¥$8Ǩ@TœÅŠô5µ‹Ò¥0Òœ'@7ÐÔÂÖ”pËæ“ýS-ÿF–Ž~<C'÷J¡·ŠŠ­ ‰8áô@ÎÖÔl „lŽËýÈ“ÚB)JµÌÔ­a™Ò•wÎ _Å©â2Òmu—À3Èñ)ê¡Dº“û^ô9ÝÎt@J]ä#«íPJ&%ò´È3’ˆkCIΊÝÙ$òác2ä9KŠ)#§y,3îZv îÊ”„.Ék1ë<ö åšdíÊÆµå¨ÆEª%)ˆ0[}++~[.´G;„³t?…HŸ‡©Uz@¡Z°NË*!Ó4³ £”›§¤&¤˜âzØñ¼46‘L³ç«òØ‚~W@›§ ¬í:ªbä¨fxyÑä›ÊäÄ V9õJC³\wGÞA <%SaŠÔðóaçyú ­^—“5@ ¼°µwŒ¬Ë–`ɺUô#O[­ÏJnžâHöª¢èŒF/Å —ò‚Ó%Gn…äËìì‘·@P"$ü­âTÃ[.G` Åd¼Ì’ÿP7@´µ†6áV±0ÒÂ☆$Ý" %\.M*F¬™qƒfZƒ5|ö€¡Or€jêBv(ᇕ=ULp^V I[*ú(…RɇöjRªQšÖõõŽ,båºXªé5”JGžð6ÑJI5 P0…°r¤d³šÓ3¯*í¾™¼eªiäæÉbûŠSãÈÉ8×¢”Ý \8ã%þBÒ.²<æP$V IÊ#¹ƒoÕ(.æ.b«7‘w¥Œ©œ–B§ªŒnˆÄYAUÙc1Ù?‡Å€<6©¬iY Ä›cãaÔ2NÝñ^Ã"¨X‘a¡ÐNÁ;'BÕDŒÐ)…È4BrÜmÞ¼|1§Ö"´¹¦XÎ,³TbÎ S[‚6uI Órɨ“•¾‚Ï8–‹—§,Ø#iÌk+¬”7*(AQRd¶¬’} ¨­†÷Éj²¹Tf§Ü°MÍ¢8;û©O œÀš®éÂa"5T1“£OFrEš¨dÊ#úPÈC—t¨4 CLöÚs„ᇠ±kHóÎÕ—×TÐ(tÓ¹§ù%ÈBi†Të@±B¦ Aùó’ÒD2_>²Ì‘På/kyg-¼š“vø‹)¼iÝI­Æùä‡ /V”˜ÒºCºÖ†_h¸¾Ñ¢RxOR+‡™d|kõQ~Ìå4ÖO–EÔLjØo+j Ÿ)jŽÙ[ôäJŒP”àGÆ`€].)áæ&ïFèšËˆ.îÃô„Üšl\-Ä2dìµ6¦HC˜P.RvÎî@ȱ“_¸ ü* ÿø +-*òA+5“¬f‚é&û$Ôù® õÍNH¼ {É„Ôßœ•é&Ù|.¨È¢ßÔNhËÚË,fšiê²iç„ld«ÿ©ºÕ”ö+ßÖ#û+¢l´£÷ŒKêMq¼)[®ÁP¨à ÿ¦rɹSø¡º2CÅÓœ"UàQ&¶ ¸%h8KwKª}VT¿Vˆ³&„)I Z¡UR(§$jÞå1õ¿H³0yE¶&G@g+—ÿ…7M!l}7EiãP(Iâš";‡SÿPo‹ÈΓU.©¶–²ý/'LXÀ¡ì÷²ç Êø  ã‡IA*j{N Û¤”a{ÕŠNª”š²•­Ê—$H_»‹º)[ØEí’ER„âÃû1”ÌV kYd–Ÿ\>p+­I&/ˆÏ4sdÕÃÊÍD¬µœ4,Ò?ÈzÒÔ‚6rX° …)#àT®è=0šÿ(f°]¨a+P‘šÊÍDl("’qÌ=¢X–Ž„[ê‘¿^$†LDX’”K¤°œHAæ€3:µ–:첯nDb¬SeTsVMF̿꺼 y뺛‚öŒ r`%? ½Ÿ#kãùjcL(©AÄV¾a‚y¢ÔV†&U“(Ie›”,ÈV œ¤{b°Ù3W¸èZ:¦Ú^µ."_@ÍEwz³¢1Í6A‹(t•¯Ì…àhÕþ…Â6êýÈxEÆ$W¶¢hA½VWÆÃžRq¶$lnÀ ¤ºR¤ ic©Â_H]©%­õŽ3sä>³Òc×*ƒê)@CÛ·¹/ÇÄñ!; uç&SØ“ä(ÄÌ1YÚBò±¢(º+‡lUÉ# R$®8LUhÂø¥o}‚*>éßT,ÅN¹LšP&pŸY)42t©"çE`X7Ôž×Lˆ¨Ae"kJ0˜Q„B¯P¡ ’óÊ Š¡‘ײsq¨ifØÕ@D£vìÉ Ýœ…6¯Aª$/토²†~©"DJÙZ”WÀŠhå£ì#Ï«ÀLž£+*Ãlç€F¹Hq{H¨‚0î < ÑVFAkîS‘ZŒž‚ËP‡é]“IV{ZeòÿÌE— ³$IÓÈÙh:—œ‘8Ÿ¡2YQô¤¹æ‚uË«S! M4+ñ¹rm+$QIÂhQË·ªíŠýÕÍòZø%+ðˆ¨Œ·› +•@£ ¬uîXÓëz©^SÕ>˜7œ½GóÎneEÌ®O*Ô-÷‹D’¢™:¡º¤Ï˜ÝK›Ól Éú|kš—BÌ3 oCq ,ÙºŒ-51S”(xãh-,ݘˆ¤x½B„õ"M#Ãi+¼»9…3Ä"йUè/ÔðiQ"4r%5€d÷ý€Âê  MÿÊf|SäÞuK™³_® D³Aä¯SˆS©q(ŒT¸hî”¹Ýøá nª.ÑÌrf'¡%’Ù‚´b‰ 9` \9ôз(°‚Àm)Œ¬NU?ŽÍ3{qpƒêraa›û/Óáz9'd“ H0‡ÅO¥°J^¨BðÁ±rWZ%ì!9(oö°°žš±šCºÓ*NQƲ³S[ت¥RJ¹ Ÿ2¦sš[Ò©‚.á‹ØÈK¥lÈò‘—à#¬åðí…µ>ä‡ýL³õÄÌç?´£ªXJA(X• m€§³H1Iá„¶Ô¡‹Šü*¥Îä˜VI•ë…CP0¤s²“Ô”RsFqF™©”ÝZL°rÜ¢e( U’.' h`Ì¡–Y¡gØÚ”x'`åêR!{\.…× —SÏHoP¯Bi3\ JÔ ¯a3«h­f{ ]£L¿È— qE¶¤™ cÊó8ä’²­f£#\²?žùTO&t ô†:‚WesrJ[™&÷Rª+:NQÃ4‘zP{AýœšÝá°@2ÐzVð}(—“í²9©@` Þ¬¬©¾¨[Ð}ŸM¾ €»C`Œî²Mê*H!­Bݲɩ\OAã8褷 CÁŠ!]ePfôÕ„#Í*{ú[3ƒ?Iê#9Ö‰)ÃT‘¥ˆ´ô…ö)æiqÄ.(L°‹eÊ3ÏEÍ‚¤ZÍ#De(Š«1´ÐPXäQtR±û0*þ¢u¡MLjñÆVÓ@Ü‘k<*Ö¨Ÿ¥êXh] 鸉÷(>çrJ¢(VѨþWx¢Å9BS6A2ZÆ**=2¡„/ÁŒ‰ÀðsÑ”©’ËqQrÉ’ªP#‰Qã­ƒºV|φ§ZRÉŒQþHw¡PÔÑzAôÅœB:² ¹õÖY>=u• yA¼-j6ìµVdñ¡1{„r@Ž¢EÎzþ(J_;Qçj.gìË«áóJk2¢+¤é@ A}B.Yq|žË(–H7yÙ>޹’ˆDÝU öíØu´ÛT–˜&C.ªžr©²9”d™–s,¤©îr<ù‡ˆ„Æ„ŒiÚk"¹Š´²3Ç=è$q"Õ¨Ål@¤^CF&E‚âÞ\ )£™Û,¥JpRɉ†èÈYIG2$dጦv­0XKÖ¯æzÐ! ŽIbUFËY'ѽ}b늬-ÁV¯h2°$x(ÜVQ.ª@Ç2åD!B}%÷Pò‘ s¬N€ §f?þ*NÙ, pf~D‚·›{B˾sÉ,!Ù®àu„09Ud±JŽb…™É¾WºTi­dN=Ùƒ„ÔmD4µ$·ŠstQÌ.Kê…Ë^8¹¬RrKuT+TP8âh‘í O ¤àw;ä)&Î4f ðÃ2qM`vCü;Ú 55¾X°Öh˜Š]  #hO¦»¥¶ÕœÕ†òIÌ—MÐCQWÀ% ¯˜QÎc(–êèW–VžWd=ŸãÛÔBÔÕm˜H âÄÔ(mñmÙ÷šlÙ°´JXh1 Þ²}SÀšvmY퀪=ˆ Èš*È@„5RCZÀiG^ùNf9 psö¾Èf ä²­1z(¤â È’ ÊgKDK½ÒT­5þü å;ÎKÒ<£‚-™O1Õ-øZÄ©ì¬}RÙЀ¨·çÈâ xˆ®»O ˆùìZ™±Ja– E®hªJ¡^b? PÆ}WÙ~t³ á ³UÛ³Û:ÈLîÉÎEØÞˆ ã,\V¤Ì™zŸíwß {PQ¨BŬ""F„TîœáY¦Šfˆ µÀ-Ì+ÇUpŒ6uÉvRÖ,Aá ¼û©¡ÄY­5DhÁŠTvs””ä”[J( /“é×p³„„6IG$YÄGÿ€´Ì€M&ÝUÎ>Opì_²A C’³a™îÂije•f±¾±$]YW±ª'LÃÁA,SXùD4,û*ÂËœ1²¨ë²*É"®È½3ŠerÈ Ë‚|ªÜ-…ß #ÅS7*C‡4qfhš{É Zß <-ÅîºÐ«ÓM NRPíð€Ð$Å#2ž ¨À öl¡{@'ZF¡*{‹Éõ%•Ô2}šQÖÍÊ×Ëx ÷Ê0)tÖ8T1Ôå&ÿˆêìˆTRºF‹0¢¿©ËSkðd?—è‚T&(Ë1ÉÝì£ùæ›ÅÏqK¤ÚäWµ±@‚ƒ=I~fó{=yM98 a û„" rËÔ,7ô÷ju„ð–â;aj!™Š7~ɤ©¹r ò4‰âr‹eêK¤q(%¡·Èê ¯gn”Q(Nu¥’c{Ô©Ø$+ô%Ô‡bÊ !§lƒ+Ï gM†ÃO…ÂÃÚD$Û¯›(ؤÖB®²à8;EBñ°_šTC‚H„c15[™Ì…§4†.§ÞÈèWZÛQš“Ïe—)5/+V±‡RS%Îヨ…¤–X™"©¨›:–I8”ÏLªZsœC 2Ý =cubA»ö^MáVTò…Èó’…_ËH!@QFhE—~L• ~uÄŒîÜøê8-Ü,¦š#Ÿ•D%±H‘Px/5“<æ µåÅ)'&žÕÎއ¨Ti ¡gND\gE†È2ÂrÀVäPv²k2j±8dghñj1Ù™• ‰9÷ ‹šw~ ýs>¤)Ó®%¯ŽH€k.À«[@6¬‘QÌ´ü#°,H&¦I ’ÓhàB*ZSrU|•º À‰îk89uj’ý©þ"(]Qk—³B”+J$Í'YÝœö¡¹+Ê ¡£§DjhÃØ¢æð*a9;Í×¼ÖÌV !¹)k¢ áÍÝó”@„œDÑ>òÚ%Çǵ,¦LDF¡¯m²¡JÝh„¼­–sÅn]E=¹ª”„~§!w2KÑ—¦z‹þFlÒekéʱֶ nÁ¶+‰Œ²€ê8¡r7Ô{€Yaa»L“­CaФŽÕKlüË7’ñ ¤Oz< )²Šûª²Y=ÂÃ%šd«[Ùêqü©èLžGóaIYPÙÕˆd,Ým©H8Bg ±PÎW!P°kMµ $VkË-”1TôCW÷X K²ùbó÷ص AÕDZC zCrÌQ3(„ ´(C 6™Š:< 2l F£"Ød=»B4 Ù½Zc…8÷ ~䲪˜ ÅILĹx΢g«ñ¶®jÎÍ248‚ èæ8¨ðÊ' ó² M]OQ›. 32M`Ó¡ŸŒt «I!ççp®ïRåŽíiyÁfz*é7Š0¨ÛÂA §ªl|dVg»¤ìN uœã0¡"¨û„H"Aˆ» -މBa„:k6{¨¶ææ’;±=DYŒQˆbñ¶ˆ{=© c:I 'ô•°(ç¬âŒeQÙáHQp… îUî½Ô»8€sÔ‚‘-d(݃ä­Ç‰¾€nîS_ˆ:ahp…šÙ–Þ_S9HKE` ¦,¨æ„¦29‡ ¬ŒHHÞ³¨¢Æi¼±¢^e/+Ü É$™ “ÐLØlߨ ¼ôõnŸ}h §@†@­vIE$Í0u9eë­µL7"ß"E¤Ö1Š»‰Jæ’ËHxZþ‰Ü¼#»-ߘ -¸®,|MÒû’hgy>9zjŽÉ+>'A)T?,)³¦ô§-AV„êw¡e½­AU˜$SeuÜRõe‘"—->Îe"øy2p1iƒ”LÍäç“ f¡F)˜@î­_S¬Õ·² ” '"JV¾îßó`tʸ¨5ËÅ+~Ö–AÍP¥B¾ éÝ…®/ éP)DÅ‚Ü]A“ B9£VÌq6 ]x“lÇ(( ¾€“á˜1Àoj} ”Q· ù¡“(ÁLÁjL²Ú³ J« Ã_Ž-ŒR/ä ›)z¶2Ñd„¢U–‘Ä,¿WhºU2óØÜ—C}J±…ñÃ6¡¸åÔêœ2IµuÕõ‚7º€Kèh…iV©ß£Òò ÝØÈ©ƒ]}ŸÔ]4äÐþ3ýAßæj[…$) ¡[9_ˆ®²è.ûì­j•hÖ¡Ê:ÉRÂÃ)Z€ Y­@ Ï‡jÇ#ÈdPÊÒg/‹íaC×fs¡”¤ióŸú~Ò Tö¡@>W¤ár,A–(ŒäìʉH'T7Q²1Ñ«p$Ø*”‘¯¨Û'óRqÔîFì•Âz®àu¿Á¹Š,rAø”*`…Öj•²©¥HœÄW£š œLá•:嘞,U!rÊ”ú ç@q@I-½Ÿª¨aYTcIBÎ's˜zàüÄjê–¾B5ƒô¦œ&v1Ôòœ¨4 'Qá õDz¦_ ò]Hº±‡2”‘¼C¬a¤ž ¨)®6m’Ì¿ŠÆ–@OÍCùÏR¾K&Ÿ"Óê+<Ì`YNžnœÈ8»Ai¹y.'ôĬœª Ã@Öåh„n†3U[‘F‡ä“ÔPsvY´>â8Ш ,"~P ½¤è¶fŠ&#¹œ2‡ š'à¹KáÔR)Nñ99©Ë_ë@BR ¶è”dTED§ÕñÙ.FQK«—h£ ®æH$ŒÜ,OÆæp<ÀÀRE¨À ÃŠ AeˆôT¡õ:‘SsÒ±@­ð$tÙš­£ ¦•G†sú&Ò–/C|š6©ñ(9+S¯ Æ¥&mŒt„GŠ1ùÁqC¢,ŠÔÊi Xy¶Ö[T±'3f|è¨Hhu±så•SÖ-*Ù&y•ŠSbͧʞÿ¸¤T×VéjGn­  bÒ2Šœì£ È 2žÕŸ—7д*mnPAä¦QPø Îf%@l¥¬ŒÐ’P—|}ÎÇŸSQ¶Ë4P26÷‚ %^ ¥ ¨$Hâ e3˜œðx|ßšÅØf!ËIá ÁÓ’µUw¯cE®Åšº.G¤…d}ö `Ó·['ÕW9%ešÈÊÑ(€´ŽQMÀW*Š)60ÆÂ¥ex©Â™’b/ò'°S#Ï‘ý©É–@qÈ“7d•È¢k|)ÌX§9ÉñQJÍT¤`§@¹O׊”ˆåMJ cFñ ˆ„²ŽT”"ó]q#Ûp±ÕʳE:iÃy•«WïÙDи8$×±»tF‚ÓQø¡]ÞBN‹Œo­²,â"o™|˰ ùZHK!bEY_t]jâ°‰/PHQ›(sm¥3¡6…B£rp×+d±ÃÒf  1&´£Ù­(Ð¥¸ ] Š¥Ç6‘Ú¸#”¾c2ÓýŠ* h¾”> ÇL<*Â#×l­kA»¶<±"×Àç,)¬RÊ‘ŒKݽ ì¢Õê‘%˜XþŽ<†’ëñŒG.$gÀò©ŠBІ4aõ­BÀMBygìZ” Ë;— ®Ä1‰VìÄéäWälîÆ±C%î%Lt"P8hY¡ Hîx%³àË›{&@§^s1)µ‹ˆÂ‚$8*–W@(x‹Ô˨ [¹L„Ò¨¼T‡Ql`4j½èóe=ªèsоdrS(mL´(“&ñ^ÝCÌgºV“]×(2@a½–"2 8£ ƒ)p‡óq•[ .°õ®0¬ä 5ò©­SÀB³B ;‹€Ò”lŒ‘† Á Ÿ.ÌÏb‡Í—R¦ìÐ éüÈR,Œ…£WEµZOU-!yCTáÅ:¤>ÃAò}Ç e ª¢Ô/ø+OÉî£î”¼Ê–ÎÉe0ÄùB± aA2kæà™ñƒ—zR¯­&:GÇ {»ñ…A°sÁ%=„,=Ï¢ØÂh _Ÿ"‘TÀ›r„r¿hrÈ(²..Ö½(üM¡ƒV¤åkNļrQ†Tx¥Õ嵫çLS “IyXäŽeŽ\4‹ì~Œ‚”yB¶…d¼# •-άØ 9ÔI ö‚DHéª`éø¤a(èÒK%ú©°„-l•—9±œJؾ‡\¢°mLó¸(4¨ÈÖDË8À3NœQòâ2Ø$Ô ê ¼„òõ8[Ÿ™M)Ür(<) *Ðbä  .£ Ä(b¡¥¬5$ô€ƒ L©§#`/GÂnwL&oUPÀHó*1~A}O%#4ŠáY4àš:hÛ>Ó§¶‘0‡ÞòÚÑ(Oð=âNE×VlÛü\íN(ÁFµƒÐ ÒµlŒn€K}-Ãä+©r% \WÈ/„> =(Uʪ%µ½‘€+Y½ò•äÜkišrÄì@@›çšŸ©ð~IÜÊ®[†fìS>*•º¹nMSJã꨸8¥atDÔ€PÖá@£NQ¾£|'5>°.•3ðå“+0Ûšöp÷ãÌUÓ¡ ä¦kDˆ ºl&¦lsŽ›§Ôë“Á$› )3ŽŒ|*˜¯y UHdAÂe)ˆ¢éR@¶„]Ì— ¬A!+^ÅÁ²lxeµ+ê$‰ŒÚzHsÊÿ$T À~ÊWPDÞOì„ÇNJ¦œ\'§y"nùlNb*z\>Yõœ¦òÖì&/³‡!›"¤-ÛœC!¦œ…¨Rî sÝ=žZmx!I¦"L^r’V±)E±vþ$)¸Šl2'õXäÕôYõQX«Ãz'%Œ2Á¶aˆ$‚‚#Í‚3`Ôy*´k‡Ì/-(#\/¯‡Š‘k3|‚°Q¾Õý÷á'Â/¢< Ÿ…”jEusˆ:œá`_ö‡ÖA`е2CU£DuÞ€3 Î{ y•R.FSYhÄ$U!·¤ëû$†×ÔM€+…ªdT¦d»çÔ´Fešè<…ž“f(Ǩ[–ÈÚ{Þ§FÞ)Ñ Š„ÌÈœ"*“;HœBó^G‹¤”0aIPV#Ì­þ8@³hÛ‚šB~CzµÕÐC–6!øÎíÕ@Ž#FN¢÷ì® MN‚ g›•Ñ• v8© C´$ê“Ûˆaž{¶P!šš w4nÐÅiqY ‡ç—©ƒÚ¹QV€”B­þ†¶íè¼QRG`…‚®” ªÚOÔ*Øjlh“¢‚ž{hÙ‚ !¨’ˆ’|íPw7¯¨>ͼCQÜJ!f ŸV“\ q|öŠeNÉ”Cd SpáÈ} «£œ`cŽšÅƒH¼4ò5™aê FhŠÌ‘ТÔã¢N¯àF‹1CŠÍ;Y$[êÛƧº8ÅKåoØ€ä±Q”Ù£žÉDœ)Öc³µD,XfAƨД¨ØQ¦:&u=j…9àDvÓs²«¬YÀšºèÛ¡óTªWÝÜ \ÅmYIí EÓ¥g·²Ù)Š+÷áÂZÒ¢¤ø›–bÆ- 3€ÈS L ?—⻲šÄ)t(­`]QV¹¤23ÚÀT™–…“¨’ʆH¬kÂpÜP XCãÓ‘¸£¶¤ÑŒ µæp|H' bÊ/Õð/ x»ŠvÚ#ô”Š|6‘IBS ¨"›EFsI=[ÆÁýº&Ì¥î|@mˆsNIRÉ´²|q™PÃW*¨„Æ—©Œà®Øº¾‘üR ¯Ê# Î'Ñ=•eÂУŠËÆ›-Ö†à¯=‹Œ‚ÝÉGØWþÊCâȇs!C%?†lAIÍæ0ã$=$ RKUS‘BÑêšÕë)¥úò Æ’“ÙÒ,ˆèErí¸âk.h¦QÑ¥?Jè)/L=ÏÖd«måJ¶!5 ÔÝ©=<-¨¿ÔÂâH #¹ïR<5%If¨3gèÂá*ª.‰·EàÚÔiXêjcDpÚ〄g Ì®¬rZ°áCΔ|íP!¿ÂïNKj‹äEìãÀŸ•ñµh×îzr˜ iå™2ªéÔQµÙËØ!p) ¯‰¢Û¹OÚ‘ž.ÇIìE‘YV³ÓèPü-¾0Ï)y,•bùšm˜¥Š…0µ¬Õ‰9HqZ{$ZÈV‡‰i éÈG±‹À‘X‘ØjoìœI ¤èh"E‚X‡ z3L(MR~ÛPM¾h,6ñ3›v¶Ô7ª®ÂOžlÁS8År[ݪ!OPs ›@V‹V Ì)<íRõµvÑOý |˜á@Myue˜<×PXÎKtêm¡)µû<„!Ô˲•%I%˜Zxäö0ëd¥b بL(Hå 8[„ å‚(Äʉ™#'Im¤s 9=T»ä|]µV¯LëûT &÷9~ôåkáÒÚvìa¡/åÂ=Ξ“ˆLøÔó©[_88¯»TÔC&›ÆTß@ž©Qii«Ó‘áD½™OhË!bR„F0”â0è^j>""d!À®6*âKˆîŽÝK×p€ET£NbX¸ŠCb¥„t]ÍFÉáðú!*ß²!¡úš­Ì´FÓ“Ã1tdF«}H£à¾LL$o¹q2æ1бTDÕ‡ãR°Q6¢¤‚V&´’e5p˜˜ˆ­p­{K!¡!°X¦ßuK2²,Õ(ø.’5 ~VîÊÄh uV@vW ‰:£23 i1%³‘-ÙÏãl˜.![ɬeªÐ· ’QE}rÙ0ö(ú–Rm\_^F4EC©°¿©$G1È'CY0Hb§²y‰/O(h,ì¢èÁ<Ö­'Ó „VB™ ydˆ 5•ÐâÀ‘Ý6Ô{Rn™(2AöÒ±Ü!vëC—tst’ˆJ&ˆ¯RV AÀœ<£ø†D Eøç qw„ý…2PóÊÉ©¡âUˆ‚9ªôò;š‘šè±qmò\{YdÍWTˆ!>EÂØœ¾9z! €šFeªT%ú] 7@¡)„袵AS+ªªÀTBP»DmTØ0 ИœËåÚH(5’‰ÒwÕ¥ƒP8 "­H ‰(ÛX‘æ„(ÎÊÚÌ“u奤'Ô…MSS° HAJ­b­Íš¬I9û’9CyÒˆÔø!è»äá¹°¹ê‰ÑŠ¢Ú›Oå1Ëî®cô']Òj\öd”…ES™²U|5H«F¡-ö#hæ¦T>ÍÙàwéô†dËä–¶cA%VöŸt‰Z‘Õ‚"–µDj*WgR¿EvKál̶,UÙs™,… ¢žÈ‰¢"¯×IóʨÎ9¾¡4fæ”8!"!U £ dŠ"KB=6¡ƒö¤)!èÔ6 ¡¢^tiØp-îÒ§ÒUõŠØI¨[QÂu¦äaæ£J[[ýj94•M±H|ž”A-9œ•·*ص†M™Â$‹óæÔr å-SãrHðH¨WXU^8J#±ŒujÀ²†‡…Bn+!IÌáÊU5ÛŠ L“·MÃÌ ÷ YªµIŒT©æ[\“P©H®€.íÙÂÌÈÙ;$à ¯„T ±S4sI;Ï5‚ÈœJÒª©k ¢“ ý3yx‘O)3ß+ƒ’Á¢’ó' @†,” ñ|žÆ^°FvM–±|µRF¹&1ЭÌ:⨲BéÔT¥ž]FV…—·-ßî"–5¤,91§V”Ñìu…ÆzÝš„½( -Ú¢öi‰Ô4’O†AøF€‹Czĵ…õ£ÈUX®¥“§&sìþ@Y¥)’Z>vA0’H89[³ZxÂüZ^²<©­6cÃ'Xé¥o"Ê"fBŸR†p|ŸÓõšt$”ÏBÈòð‘ÂO­yÁkù{EH•ÝΔÂg…CÍv.4\­ax$нeÏ+DÙË êšS1G.=MÔðÈÈq3ò‰-à$‘â[z¥Pt’¤Qª•Ùâõ b‚¬UE]<ô=eP~ÙóF\ ƒ¢¡\;¦‚â$Í–¨ú xSF”ÂA¥Y )AWÔG“nÁu!Pê¶Ùù¬½B7Ôd¢:’ãBú¶`sý72f=ΗäT·ÓÕÒ¥X¹ :l çd×)/ˆt¿ð}&§—ÉÊ+€ì­ ÑL±>åÄ8 ‘ÃQ †êmèçòÁ}R Ô\JßxUmd%l)jθ=VÏ #XAF *°(ˆEù.°µk–©ÃÁµb87#m˜üŽÐcѧøsÍöЖ‘iò€¡VKºR˜ÛÒ0¶l¨AÙ\³HŸÕömE)¨Ôƒ§*¬|¯<‚‹¥MˆXE·  :B(º|!gª©ç'Õdè ZsEå; ?×Vh W*°) ÕØe rŠX#…Ä ±M ÿRñ•„¢.9|áèŽü¢%OÊ:ÄºŽ²ËÆÕ¢óeb™G¸AaCÝk÷D|4™A¼5r­ô9ž÷µ„Lk#Èš¢™í[Ÿ„zFÆð#Q’ òzH'v-R_‚U£uU˜Q:dªÉ·DKP¦ÂZLº;…¾º ‘ ê¢$ *+táD(sŒ#ÓOmÆÁR !¤š‹Vú±&gßBÑÚoŠMäZrOBìnZ¥Q,çá» Rlœ(0Α:G$VÖ»¦ŽpÀi(¹çL(«®º‰c"6·Èˆ=Ÿ’¬–zIÉCÿTÚ÷ެ‡ÇF£¶—!g 5ÛΉÆ ü:.pq5›ÞÞß|œÞþÉüùvvws;ûËå;ó›ßT×oë›ëû‰ùãì_ÊË‹ûÉ›ÙûËëI À&Q: ­BèN°c“hþ÷ŇWo¼|i~ww¯ëN^×Ó‰ý3q—?–ÿ¯ÿ8ÆÛxbí×·Wð–×ñœÅÃæƒ ?|ÿ‡?OÔä|z7s«ë‹›·—×ï'ßÍìÙ½£¿xñ$Š^É0Dæõ?\~|óùîïo®ÿîÛïfï?ÿ㛫ËÉí;5ü®ÿও ùáÏq'aò }áÉëâï¿ÿß±±ï¹P£bÛ·ySâ¿r<÷üýï]§¹Ð[½é¡¥ûnpóîºÃ´¼ÛkéÙ¶­]´åÅõýÐҶͧÍÖt‰Ø3ó‘˜lŽDÓy3užÿÃÚí.¿nwµµt½÷WÞµqåíÿ—Ú™¾÷ÌÊo®Þ6÷ón"4öƒ—LZþW¼1Ÿpúf÷UèºL¦ïÂæÓïÕ)ŸbNü( j‘>®ÌÁ?.çà» Ãt¢ÿ-Ù"…ÈÁ„ÿ#ž‹¼IñÓýÁwyÂþÛ<ë“°y¬%îé»XƒqÂ3‰>ÿƒPÈ$ŠéAO?bg“$âkú5ô'ñadt¥ÿݸº;Q§êÛ¿¨5iú*ò"»Èòq½f•]Ú92R‹«ÿo>av½iõÿèáEï‡CŸÚ{%>nš‡Á‡Þÿð]šS?üÙšK‘³Ê¥ÑtËhN§tºëGÌÌïÛ.´0Kæõ÷õwo͵½ÀŸ¬õ‚ÿ¤MÃíp5ÏøúE“*tMÈÃЛØBûªóC”0‰B;3";Ÿ&y=3Ë<½d\Þ¤FL 4?Üd{5äv¼5æjñ}a'«y]_5kÞkšÙ¦ùÌ?™øóßhˆo'3Ï‹Móœ—2§yìÙŸmÕ6Ÿf2½¦ÝÞ©æy,ÇáÓª8äiß¾oÐÛÔr–âŽÿ¹ ã{óI»ºà4gç}ûQ÷þ»“4n.Ò †ÍoZ/|¥ëq[jƒý5â­‘k:ögÈRKÃ{æVêÍgï\×ÿAYý?HÕ"c—¾ 4óeÔ4éÚ6)b#®á±—ÿ.ò¢Yyrõ¿ùd<•û?8‹å@—‹zç4¾iL“ÛL;þ ì@Ûÿ=f¦ž1Y ô|²j~êùùÏó®±ÓÔ¯ÍG9=—Ⱥ¹Œ3ƒ®VØéÛyū󫥓íÿõßèk5Ž‘E>îPo§—5µVŒÕw‹Nþdç®Ï­+½dm¬¦‹ïó󫦧~ª ž}F댚à11šÿä?ØIج3®©ÏÚÞÒ¨‡†µ1ÁÔ`L4óFÝÀ‹>ïnì»,zªE¨ïá«<¾jÏÿ¼-±? éö Úatój6 ‹ìZpÕñ*ðùn±þS]‘üªE¾Q/ù?hS‹(Bþ•«ø×ޖ܉f:ëÁ¾¢HN¿»&úÁõÔõ7äãÑÖyöþ¢ßÿUy«>cvý¶A°¸½¹ºy¯Ç9àõûÙýçOú¥žMï?ßÎ~;ùïßÍîn®>ß_Þ\ƒ^ß~º\G»‹þaúivûýåé#7»¿ŸÝš×w³ûOÓ÷³·³//f“Ÿ>ÌngæÏ“O7Ÿ&ýד×ÐK¼¢õ¬ÑI½›üÍßLÖ?ó½ÿõ•½\óùIóùùS™\¾Ó{.ßÍ®îfó»Y4Ã<ÜáâžøÆßNÔxÝ8“7ºª£ÿ¦æû•W~x­ÞyûùBßõB˜ýÓÝäLÊË»ûË««ÙíË×¼¼¿šM^¼|ýýç7ÿ1Ó§ô°¸UÏÝÜš7Õ·L~º¼ÿ0ùð‹u;{÷òuöùþÃÍ-ïû¿g¿ütsûöN'¯Ë,~ÿõ?N>½}G˜a›Þ4gG£^²mºozäÏôÇü™m»SÌrñ¡y±ùk~œÝÞi_¼Z¼8ûùâƒ}uñà…‚t÷åì?ÿüþnúãlr=ûéÓTͧ o~œÝß(º¹›Ù'/®.?½.n>ß^ªsÞ]^¿}‡-Ó¤¼»˜^Íì/Kû/ÎÅ›_oÿpó“yÿHý…Vþ¥ĵǗïV;Â×Úù61ë}ñ¿^}ß¼§yuù¶ÉæÛ¾ëò¶^ÿóåì'ýó/ÿûÿÕgþùß^—jåä3ò•ûrrñ£z¿¬¾ÿãú@=\T¶Åwb³yUu“ºá[g~¹;M ÄüŠ‹Yô¯~éoü¯¿çÇ5?îùqË~¼åÇg~\,_½\¾zýÒ¼þÇÚl]Ó¨‡æMZšm4Ïkm^±üÆüø´lÅÕò‘mü{~ü«8ü;]>ývõé?~^>ºXÞàýžk}¿|ëÍò­ö×'õÀr€>¿YvžQúnÙêÿ\¶úr9^³­[½_6øfÙYwlö4ØÛÕàöqóùá­6éfÙÜÅ3?‚ÕgÞ,ïËÞÀ?þç`ý¼ÖòîKb¶œ³­[¸[6ø¿–oX¼v¹|ÃÝrÌfË_×ÞuýÈ3n½'¼çÚàÇùñíÑcŽ[Š~kŸüÝz[ÿ´Çvü´>?l­Ð[]õiÝÚÝÙí=±ú®ùfy…éòÑ/ÃÛ¯àWÐiŸ»Ýmµ>ìð0ûœÑ£BØ: ¿\}WënïÛõÎ}p*Óå-®Ü]K“M§&»»šµ6¹:ì³o¶ìF»½9‹zú’«Õ¶þýÒÐý¾SãÚ_¼©Ú ØÖ'÷ûõYùqùãˆõùx`ÉÆÛ7üò`4Nj¦·«™íε\öùýòÑš7}ä0üóú"= ØížÕþ^„”-§ñÕr°/Öo§eiÚgÞ­>óöñºarT7tG—ë÷=]7üÿÕ©kZ¢–·ëÆïásû;çKîÿeçûûý©nzhØèïA@õzä:Û|?­û·×Ë{{xnå-Ãwx¸?ÿ°>÷Á¸ÏËù³muwÞïI7ãﺙvT‘/'ÇCØr±§õí«§·Ç3'Y£}Pão×ù§-ïüizÞï0\7ëíà29åNÚíê÷ëÖè~÷}\¿ÕOÇ´Úônµ¿¿Õ}¼=…>®ßÖí²Õ?ïÞ,y»¾„Î1,Ë»‹Ÿ(r˜ô‹æí öï–}^~íõy¶÷L¿î ö,ÝçØ½í®àën÷ó2¶½Zߨù°¾ yæùîéàš¼:s.Úâ·ëPãîwÛ58Fúû›·³É뺛ýãçû«ËëÙ}vâ.êËû³Ç:ÿüûêÿY|éÖ›“?ÓûéÕÍû¿üõ_ÿÍßL^ÿ¡ïx<Šðl®Âdv{õ‰¬ëPï>!)o.¾ý:[û!ÉòÊqäOÜÀMÔÅ¿³W½û4»¸œBiH&¿»ºúyâG.~™¡žù|ûó$HRü2!WÒüîö§ËÉïîf÷óO.Î ÕŠÏg×÷¿¼zõúãåÝÅ뻋›û‹ÿ®Î¼ù÷‹›«›ÛWŸîÌoþ?|ÿmööæÍì[ï•3©þð}Í]ÅNÒßNvê7ó£½ßNþåŸ'ÿܦMüWŽ3™|7ûñ·ÿµï¼NýÉäÛÉäÍ/“ÿëæÃõ$¿¾½šýBµD8ûÏo~þ­½Sn’ûÓ­ÍÏ&ïô‚.îrÀÝo›#Ìâæ#OÝ­Ù®išßLnggßÌn'7·—ê õèÝýô~f^ó»}8±çzogïxû›Ï—Wo5÷³Ÿnn§êÜ·—vÑê¡ñûÛüŒWᄎùIW¾š½»Ÿ\ÜÜ^ÏnÍâ&îo§×wW|‘ÞvljîÍ»ÉåGÖà õÐ'NdÿjÂt{{—×tN>_RýU%Ð6¼äåÛæÇ‡\I­Ôš|cÀ^îŽ{/ï'—w×ßÜÏ_«wN&/šwÝß¼¿þòÍdzývòÍÇÙíûÙ§Û›‹»oô…g“w·7'?ÿôÖc0'üùñr:ùYy#Cðð5ó“æÉDm¸™ü4›üéúæ§ÉôÍÍçûµÖüO3™Gÿeòðç7“_Hž¾y÷nrÿA·@O~£á¹ÿ|K‹ùØæŸßL®o~;YÜôÍõÌðìë•ÛâCË^™^O¾ûÛüÛ¿ùýäÝçk;h¦¹ÎëÛ÷oÞÊ|4gºöˆµ¹¼ºõJƒð‰›˜¿ç›ùg¹š]¿¿ÿ0ñ'—o/\\ïúÓåÏWw+—[ù¢Ëë·?Oœõ§iêÝdþ©»û[è.ófü†ß'÷7“pýè™ÛÙÝç«ûùG5 Ÿs'r!“?›Eï4¥ ˧^4cþÆÙýDS÷ãç«æ®¿³Ý½ûîdúö­ý„ï=|âoog³ëÖÏxËϸ+ŸÉ¯>Ï–á üÛ‹áýýäÿœ¼ ÿvò?&¯|÷;þq“|ù! Ëòñ²gÿúöz«½ü—É»›[³Ò7¦y–÷7Ë»ùÒº¿¼º¼ÿ~ÀÅìíg ‚>7Y™ê7Z›Ø´WóüñÃåÝʻ栗ÝMîºyxîn1­çŸ]¹ø“]qvÁÝñÒGM4 óTÖàú½¼þò½~X›šÕvRÏoæíçOói8šÈÜ]=¼aþhímO‡“µ÷o~^=¹xtË¢ºøñç­Kl~ÆYy)ÝÜìöÇév“Í•Ïm¾us|VmÎz7,hMË®ßÈlónzu7›øß4£výönþî?¯X‰¿Lúvþ²ý‚ÍL,yšÅª ’§Æx7ß$³9½“)^1ƬYûe§Ÿd2õS`±Êí}YO1};Ñ8®½ùâóí­Ø»KMû9ùÒ·f?7Ÿ5Î,„½×0î'ñEÌ?ð0ÝÉÅ;þ›\8ŽïOÞñ[/š¼{7uOÿ¼™†þ™EÓxbÞ½{ëÄú•?óдên67Á ÈgÍTëÖÛaÝèÕŒ6ã2ûYãþÎZ-|ç7?M>¨õÌÇ©>ò³ãºYæõÚ1^¯ß|VËn1g]Ô,p5Aólýé7W7ZJ? Öº”Ö3ž´Öj]5ï´í§GÿÊ®¿ùÍÉ/L°YÖͬvû¼1k7l‰Av.¾¹°ÞÚyÇZ¸ƒ3MNz2ŸIÖ]Þs§Æ\ß\{ûùºiÔŠ-_ù”¬ùb®vj’m–y˜—W77bJÙJØy5ab­ZM:ÕN®ùu›ûð­¡öy¼XŽó{[ù:ß¼f¹¹»´Œ·Ëÿîóûê­Mæ½o{ª¹öü«·Mêž®³Ò±usÍ5V›×,V3ïi-K–é¼·7{ºow¶uæC_žÐ“+Ãþç.Ý4ï µr–ýcÝ^óѭΙ/kÇ–v‹U¢gævrÅÏ™UÓ‹Z¹•ÉûoÿM¦íRÈ,gkVμƒÿ¾åmöÍÿÆ[Õ!ŸèÒfé›ÕõnŒ#k…º 6kë‘ÇßÖW|™‡‡­:}‰9ø}[h6›xl MÇ~8ØBs¨»¶Ð9R[Lßan{dús{gŸ8Ì©q«³MâÍ_ÓÉîGÞîWßi¾ßþË…xèß`ñ¤}£¯7úÝ¿ÄxcçšÍ&ÛB³¿º·ÐêÄ®-4ýFªý‘é;Ìm-4}‡ùPg=-4§NÄÍÎ>®qö‘gÑ´y3ͼIABýâͶ»­‹²µqG¯’E Ífm¡9u•´ÍïØšSWÉjg÷æ¶š¾ÃÜöÈœ:-4§NÄd³³ÍüËNv}f ¶žÜS<»ƒ5ke ¶ <ÙB3 k:{ fE‘†À`»‘êQ-4Ã`°‡ÎvöÃè1fc–1fc–1fc–1fc–1fc–1fc–1fc–1fc–1fc–_gÌâm¾›‚f<^yÍþ>‡‡á²a`ÍÊ“^óÈ.Ä.^{dNmÉâ9sjK¦Ô‰-Y4ĜڒÅ#sjK 1§¶dñ~sjKºt¶Û|Ssý?°ú(Ü~NßÚ|S¨ßBëaì#óð°y”ð[¯K7Ì­iÀì­YNh Ì­±-¢5<2C´f/Ý™#Zãô#û¨¹|˜ìh‘YkR³è¼‹d˜1:ÔšåÚšNcÔ¥5vŒ†hµ>C´¦±>´æÁúœØcŽiéçÐæÀfÝXèeÖ\ÅØá)Í©-YkNkÇ*ss÷l¹ŽíGaË«±ý-àßys‘­GæØl^ÎÛ‚ÍGæØl6Àۂ͘c[°ëÖŽjÁf̱-˜?Ú¸©þ³'šwCÒ~S½'€9¶›¯™S§àâ³æØl6Àœ:w/×-8´\WEöÒ»ß?‹›G8¸ù¥ævÙМã/v¬×ÞÑ’ECÌ©-9ÂÙînI[p´Ç4§¶dî¿Xä\8ÑœðÙòe¦Ë·uù23¢ÉM®¡ÉÈõôvï¸ ›¾}NxèÌì2êyy3 ðéãÜ 9 øtò€=Ñç®[kìU3{:_Ô<7<çvòy1s .&´hFfˆø¤[hÑš™–Nî}1Ó lKs³úha–v¿ºñhq2Ì“*¶ÞÔ`H7±·µç Lëwø‚ÍG¦ï-´Ý¾éô‘­3§tði·ÖÒ:Óåþ›ç\×­°½E'ŽWó•fïM9ûæGÏ.eX={è¶c¸oíÝvºèF‹Ú/z¨Õæ´yúðÜžÛ¯uæ´yÚûÖ·ÎtòyÄúFèæYôÑ@Ιš9^[{ó<$jîö‘6‹v™u˨pmÝ2"úœ{ç³n̆ବěvH1Ÿ;.hŽÝ]:e—y/ìy”]æ!€×ÚB}œÎp;Óƒoä¤{ÞÓÄöݶ‚µÒô;Æi¿E3Ä6Ñbω¡Níns|[æ¶)ÜÃn;¦ûMkW¸7fõ¦ÖÅ9>ɺ¶¼× q^ו¯Úq¶žÔ޵ $lÃéÝmŽkÁ[­ ÓãÙ£üUÕÉ’ÎO>býÝBXæô#ÉþÇ€6ÕŽÞ™›û¨€jï‘];ø™ë`Ë[¬DïÞæwïAu¨wúöê R;¢Ö<·@¾a–i¹ˆ7ÿè›Ý]» ãŸp^zåÍAVßÓHïŒ6e˜ӽ¿†C³Ó‘ÍÒÅGyÁåW›Ó èÃ9ý ¶ûùÙè:CJ’¿±,÷k;\ÒXïÚq‘mÓŠŠçP¸''Ð CNmË9¢¿Ì0äÔ&IhN9sjKÖ³,ôWOÌmiOÝ9¢…f¥g¼¹SõÕ¹A_˜c†iÏ*4Þü–Ì ¬ÁŠçz ÿà-Ú|t>dÌçkƒOv´¼å,î12‹ŽôúáE3Ì"è—xöØ“nѽIâ-÷¨W»ýäÞ™”Û}-èÝñ¢Íö9¯Ÿ²Ag‚èq1Øð‘@hq[ÜÀ Õ(À¾ý3…ç]éõÁ“M¿ €'ωNEÞ&‰æ({áp»“ØÉfÿí6®æøLúõÖ™ƒ}à/Z<·ÿºË¥±íëoŽÏ¤„ˆ¡1ÓN`q è/ìÈÑYÔ‹²!'gQwÂèÜBs,¶n¡Y S­†©áGžžj–Ãqí3ÃÄ ;ÃÒùòµË6™Oþç$pƸáb<Üý(™Ÿ­ºÇo¥= 6G/Í̈,„Kš¿‰¿m}ìÝ`îáKæ`%Y}n…Ó`Np‘¼.³)5Öí&jv²²õæôK³»íwù–Ž’,ñÍ¡ÍÙ•'}륰úÓ‡]’ùŇÖí­l°ÌÇÎé×gæ©£†y†H¯°kÊõZ–ß°è¹”tÂÔväTo™®CÓ~­2X×ÚÜÔÚÛD32m¾iáÞ÷í0nsüfO<½ù¿oºõÛÃiÖ"fh¦×Ô¶(±mje€(ZYU!øš8ñç7ç쉎§û' xfÛÓ„NÿµnºBú ƒDÌUÇ?¶¸ÄªžÔÚw=0Ø9²_t°‚Es÷‹ð8Ö³c0gÇùó’E"ÐÞÊf¾­ÒÈy¹DãùóéΖ5µZ,—0šÏ…­M×Âß¶mº°öó°»|’/͇×þMæùáM_,\ˆ}ŸŠérJ&(ä$–ÉÑ©jGûä0›U;N«Tç53rÞ 3¡ßÔ$Fû',Ú_²N‹v•EkŒO´67ü%FXÄòoæöƒ‹yæá››»ÑŽñnâ hÅG{s“´ØØXVQiz(²oj>2wº'ZŠ»õ4w‹ÜfG°G9¥Í/Z|²- —»=‹jRMøÔR#iÎØ´e˜Œãm0hw{‹Ü–zëí˜9$ÍØÌsUç”ÝÕF7oŠ—Æ Yë`o³ºÖJþÏ‘åðÌYëšÙAÜ;/:7oñr4?ÖZýÆ…ØÓN³oÛtýËV˜Y=G>EêÐ<ê–Î"y•Ùv̉ӃÍh‹ŠæÝæíˆé—.¿u“dé{ö„Zf¥oöDˆ›·²8»K]`v2ÓÝûW»¾pÁ4Ëk¿ÙC)¾xfòù}…Ëàêí £ÊØ‹EÕöEé X!O®vÞž[š÷ÿÞS¿íËu‡ ›½ù]»&Ô*ypq›üØÕU°ýæáÖAz{yPj±Õüß>ÚË;l²½ó]§Vžý­±Ûkèbñá‹ïnƒ6Ó‡ÜÏYéݦ~Ÿ«4K’Ó:pÚè¹9„JwãfX×¾wãµÝ!máóìNÐÖÝâÃF_¸ òheCÇ[ÇAÔ-n~ÕâÑ2<’þµ‘Ó*³|ˆé¶gÐ7O‡V°Û<m_„«v²®51ä÷öæðù–Ùë {ø©uðµØé˜Þ¨Ÿ÷ÛŽMéío]ÌŸ]„±-oeNQ)~ìÂ*Í2Øœ5»ÁqC…7˽¿ë|z0lfŒ u‹ ÿf9µ“i¾3+Ƈ6q¾ šÝjsb=¿åè™kËÛsÌ»˜ËÉš ØÒíÖdºX=ûñ`³5_úöžÈ=Yóf?,ùñœúðx¹ýÑxÓÞ7s†øêÞÑZ¨š4ŒÆ³¤ktܹ•ˆšnž·1:81¬ ðÖnÍÝ£tb¾§/™½˜¹ér*Êv%[kÉ[z瓸<““hùÑhÙïÁ+ðŸXºîÆËÉÿ@Äw&ÍlFÜM|½’°ª_гmæ9#ìõG4g(ÍJ¬¼ÄþçõOj5øÇ{0IËIè/çÑž›^ìB­á¤ùj æë¶µ5´~šLÄagP¼>áx`¾Ž.ð½âýe§7Öfÿö~ü€*•æs—÷ó”ÛYœ;LÍ<¢óâVóí­Ú¼$³³cl÷ ÔNçù=¢9ø­s“l—ÃþÙºrωPH²ÅúhfOóú›¶Þ¦ÏrK+ˆi>Üî!(lºwïD_ËŠjÞÔ¬¬…C,ÊdÅ€Dö·³e*}›¡[äé#¶ÌÙŒÉ|z[[ewCƒÃV=½·L ²ïã÷uq‚XÜÒL›‘èR‚؛߭i¬É4y@õIË>vòð¡ÅOç·Ý,=÷b]àŒåtY|§5†ë#{°Ì_7x•ØŽŽÃ3¿E¯™Þ‡AÂZ1…Ë6Èq³Ñ>shæ ±Í“y,nïñÈ}±ÆÕ™9Z wÏÙd³LPÎZÙi#µÄŒkÑÄ!ʯ·š ½êj J—ð¬ÛM,¶É¦+QNºðÂmmr—AKº¶ù°ƒÿmÖ2öm´¿c­Æ{õÍjKæ4ýÝ·¸záyÛº$T=د·Äó3#sú~êÛ©Í¼Ž›íâé/ö¸m°æpc¡ž´k[èaïqõHs±¡ØñD¶U¨y="YÄB Þ=Ôô†™ÌC™=ÄÁé—ÑOz@Nz±]õ¦A—N¦Å^½|а4§ ÕÍCáa™Î7TÖÒzÌ2YçTâp;ŸvVÆv6óò¨íÙfØÌ7«ÝÏæÂÓ%{{yF7?ÓsQ5WåývMø•KÎwv\»Î\³2ï÷ÝÄC¦‘·ä¼<¦î['Ö­¬¸Ž¹éÜäº,[þ0jÓùÉ@¼ÜJX{87ù×r‡œÖX~¼<]ÄâDaI oßbžòßÚ-Òù·Hìæ)HµÑ|÷-jÌâjªXÏ=Ñ%£Ðå\|UÑ_2¶6©~þ&­mÎÚH{Þ—¢ïµøIÏñ–Çš¡Z4·â]6v7رó‚-т̳osp±~ÒùÔ\ý»¹ ¹áâ›)8}Øä_9Áæ·²s¿ÔìÈú÷Zå‚ùajÜþ®ª›[Ï«ÇRÓå¡Õ†9~mÆË>1kéþÝ¡·TµÏ³#|ý2M³Aø\Öw[V45h 1Â]‹íÍ*çµ}ãîÌ~›x™S¼ã5^úÃvÞw•¬8+wœ,‰:û8·Q3Ú‡?Ze®1mË¿6Ö ?!˜ã”xió·Ñø5†G1°SÑôÅCó)±ª9hûÊleœm£³p+{G&–Ùòt»òÙpC´ª¨ºÌNÞy~». °Pþ=˜é>¯Ì›¤«é.+E„¶„s¶§áò™9Õ0Ù æKÃ=‘ÀÓëü ro²[ {ýü6ž›]ª 5@¬]èF˜^ü—áoo‡.Ñ\‘â¢= ÏÙ­8¶–nfv‰}ÌGc_¸’¬ ÈÐY•›ÞJgN¼uh³3ž Ò #5O®ˆÚ¦^²(i¿A¹Þ›p)iíÔ¬Þþyl²’¥ý3ç¬ÜðVÌfžCÙRÂÆ?x±EJ~Úž$eæ¢e;ÏçpÿÅç…±L«˜Nãò÷|Í:.nªb{VŽ4Ú£©Øðd^Ø{;ËŸ#ðå:„çV5 ÛË—i-Þ¶¤Î<7yû›UŸŸEÅ–FŽÄ®ªÃÓ}ò^‹£Ø¹ä¿¿€Âƒ2*“»¦×Å–Äj«p•mÏ‹››ÌÕÜØ`C}­ÖºYQi«ÍrXzu.‚Û,Ž`¾rd~š9«XÀ¢ I‡bÇ߳8sŽÜ¤§&PºžaoVTt.:¤ß̹[;F[¹Ûî.%Îm÷r±éËÌÎí’EBìC&òA ™9Vú©oó…Yä¿‹f´Á¼é‚akDàÍŠêØÁV=XÙÕ÷/Z´Yë¼]ué&Ù‘Œ­µñ÷¨·vQþZH¯[að¦Ök°W;Þ4~=PÜ~¶¼ª¾pß-ÄÍá‹Ì'xÐoÜõ ³õ½ó¨ÝMç‰r®µV ÂYÛåÌÚ“‹‹4Fvç·oèºDÂ7¿kìòZkt€Ùù²ÓöÂþÞ_‡æ|É‹yuj̦0¸ÛÈù›{(ííXti´ö¥Ñ¼O©YLš`Îúqó|iÙKlÂšŠ¹ßuÒY[Ù@›Ñ}tg›n¥5XY®XÛÁnÔUueëâ ÀôÖ̇íØvÙîÞ¢è¯7ÖN1þ‡änwrý× ¼]®æÒ[m_N½éäWW/=µ`fãÒæ˜ñ¯-úÏRLfÝABû™-ÿ‘̣ʨŸ+hsGm]¾yK˯3["áq·¹JÞZÜX°ùm[ Ü·]¶¿/¼p`ëæÌq~õ4·¯:säEö¸Õž-ØïV{´`—[=ª› 0Ƕ`³æØtB ÇLsl Ä WlN‚kiÇ´`ËŸ:×™„G´`³æÔ)¸{¹öhÁ¡åzô40Ƕ`:K3¹úhaNw¿ºñh¡‡Ì©N‡îüsø»ºµÎ¬=yBëL—û?íÖz¶ÎôÓn­CëÌ)sç´[ki9aî8‡¦a«½ìYg¿Àœ6ùZ§áñ­3§M¾N·Ö¯uæ´É×ûַΜfVOºµÝ­;ifzÄÐ#†1ôˆ¡Ï²ý°gx€­ß«%‹†˜S[²kûñ¨–´í…Çnm™S[²IBßd[­|BK3·‡™SÎºŽŸ³­ŸÇî+ïmÑQí8jòïïKsZ;¶wu‡Üù>¦«IÂãžíˆ7G¼9âÍoŽxsÄ›¿R¼ùDbÕ;¾Ät(gÝ©…ætuºŽÕ‡»¶ÐÖªïÖBsäHY ¨ã*r˜KÇÕ3ìjûŽj¡y^ÊÖ˜ÄGä9(ÿÜ%íP Í¡NìÚBsѾ]™·Ï0·µÐœ’‘º_þïÈšS'âfg?}uš=;z•,Zhú–jik¡9u•ì/ zD Í©«dµ³{ s[ ONuÝ”1?z".ZhNˆ[éÀOZêfç—˜a0ت??±$†ƒí“eîÙB3 ëVXÆ®Üd‡v™a0ؾ° g ͳ)°3Æ,cÌ2Æ,cÌ2Æ,cÌ2Æ,cÌ2Æ,cÌ2Æ,cÌ2Æ,cÌ2Æ,ƒÅ,Ý5ï[¥ÙM›0}· oÈãœÒ’‡B5'¶d…ß’ECÌ©-ÙU:稖,bNmÉâýæÔ–tììc‹+í,âcŽ«¥Ó:CŽoÉâ9sjKºÔ ðú62§¶dYéÔ–,bN_?ÍûÍ©-é\ð¡É¥–"?æ´J;›edNlÍ&‹öèÖ¬ã÷ZÃ#3DkV*%Öš&‘n€Öl¢¶£[cÙJG´æèM;ZdvÖ'êY¯§ójÍrŒNmM§1êÒšFÙ‰­Y–;©5õ 5-E¬ú·†Æ˜ãë<ûôã>ý¸O?îÓûôã>ý¸O?îÓûôã>ý¸O?îÓÜ¢1fc–1fc–1fc–1fc–1fc–1fc–1fc–1fc–1fc–1fc–1fùBbóó›IqóñÓíìîîòæzòqúv6¹ÿpy7ywy5›øá«4øÍäæž›M>__Ìß:{;¹»ü¯Ù+}Þ˜»7?}š¾Ÿéj“»û›O“Ïw—×ï'÷³Ÿnn§·¿LÞ^^Üëâzhf×oy›®qs;›ÜÜ^¾¿¼ž^ésÓû™áWûhñ½÷7¼ª)·<¬®ß–7Ÿ?ήïÍäwºÖݧÙÅ¥>îûñÄóÝt2üîÍL—\¼“ß]]ý¬‰yð‹ =oò»Ï·?O‚$äÁ/z)Ñ›nºœüînv?ÿ ¾,ç:‹¯ûíäÕ«×/ï.^º¿»¸¹¿øðïW7ïoþýâæêæöÕ§;ó›ÿãß›½½y3ûÖ{åLª?|_ó€ö_Þ_Í~;yýáæãìõ§ÙÕìýíåõëûÙϯ?Mo§W¯›Ë½þôùnvûïá+çõ§g/n/û›âv6UWüvò/ÿ<ùçÙ­%ÿ•ëL'“ïf?þvâz¯½ôuL^üáþvòiªkMÜWÞËÉäÛÉäÍ/“ÿëæÃõ$¿¾½šýÂ]Ý|¾~«áÉo~þ-½CÇÐ'ê½ú 㮩‡‹;¯o®ïï~Ût¾f OÝ5¿ýáV7ÿÞÌ?¦Oésvl?Î>¾™Ýnîë‡Ñ½›þ8›¼½ãío>_^½Õ¸íœ.žc›Ø1åÝúÐåµ.pk§ØÍäÃýôÝÅôúJ¯|s7ùéæöþSöíô~j^ºüyâúA°øÌükú4½˜MÞÝÜNìHêçõM'ß™×ïo§¿ÜM‚ Yùìdò›•ñ¾[K…o7¯¯õuWwÇ~ÍëÛ÷o.¯ßþ<ÿUßzuó“:æjöî^ßt{­Y=‚ûÛéõÝÝÄ"ÒÒâ.?ª_'/4àŸ¦Ÿf·5¹¼ž¸¯cïòZc|qssûöî¥ ‚øUšsj&$¯7Ò#Û¢•»üÆÞœ½Ü7“K]ø~rywýÍýüõ·zçdò¢y×ý 7õÍdzývòÍÇÙíûÙ§Û›‹»oô…uÓ·7'?ÿôÖcnNøóãåtò³>òæ¥yýð5“Ÿ>Ì´¾é­·7“Ÿf“?]ßü4™¾¹ù|¿Öšÿi&“?O>Éhüeòðç7“_˜†<}ó®±=ß0¾Ñäºÿ|K‹ùØæŸßL®o~;YÜôƃg_¯ÜZöÊôzòÝßæßþÍï'ïdÙ˜r¦¹ãÆä™Ì~VG7–Ê^^Ýz¥AøÄMÌßóÍü3‹\Í®ßkúù“Ë·—?.®7Ÿ—[ù¢ùY}ZC9™ÄÜ}~3ù³YÜb3%¹Ðò©Å7/®5ãì~¢ÕóñóUÓôïlŸíþ„;™¾}k?á{ŸøÛÛÙìºõ3Þò3îÊgò«Ï³åGx£ÀvÆbŒ~?ù?'¯Â¿üÉ+ßýŽÜ$_~H}»|¼ìžÅ¿¾½ÞjWý…ehVûÆYtÚvy}?»ýQÖ¼y+iVbÓ’º¿¼º¼ÿeŸ½ý|»bšI|£U‡ñ}5ÿÀqŒ゚þiv7¹ÿéæá¹»Å„BöîâOv-Ù¥tÇK5…d¹d´dSd9–~Õ4ìõêÓ|µÓu~‡o?šO°ùþä[w"3|õð†ù£µ·=<NÖÞ¿ùyuïâÑ-ËåâÇŸ·.±ùgu:jøÖ:}õƒ&ÍÊç6ߺ9>«Öd½° ümºXþæFîä›wÓ«;!–ošQ6˜¿ûÏ+ëÿ/“‡¾¿l¿`³ürùnÆW¬‹f¹ù&Ä錬18ÙÞIòßþÛS3/å"­Yú x‡£ÿ¾åmÖPÿoý8ýô ·òq*÷ò³ùóÅçÛ[¹W‹¼p[òüo?Ì~ž;Ýñ_Ìü&W&©1Î,Ì5?›?«Ïtxþ"¾ˆ…›šŸÇ]¨y¼Ö¢ ÇÂέty¾Ó…z·hõžûÞòý-¬³» ‚é;ñÚnùœý-¬³[/ôüVÿhF{4Ú£Ñöè+·GfíÓÛ:?oV›wÒ…V;¬y¼úsíùwÿm¿¿õBGÞZÛºßòÐ}ÆõÓ6 }áÈ>Ú¾åÇêì3¶¨­ïLߥÐz¡ç·úG{4Ú£Ñöh´G£=Úzáä‰Ò…VŸ7û'òÚó+£°ýþÖ õnÑq}~àB'õÑÙ[ÔwLÛ(ôsœÅ}¬Î~Ôµõé»Z/ôüVÿhF{4Ú£Ñöh´G+/œ¼—½¶£}Ê^öÚ¶ï){Ù.Ô»E§ìeï¸Ð—ТÁ:»û ˜ÓO²ÎÙÙOТÁ:»õBÏoõöh´G£=íÑhF{䌼‹Þ-:e,F˜3òÀFØÈíÑhF{4Ú£Ñuëì‘wÑùÖFØÈ{Ü<°Ñöh´G£=íÑWmFÞÅÈÛõÂÈ{-y`£=íÑhF{4Ú£¯Ú¼‹‘ÖíXgä=Q‹FØhF{4Ú£ÑöÈy©'ÅÈ»8êB#ìø>y`#l´G£=íÑhF{4òR»s FÞÅñy`ÎÈë2#l´G£=íÑhF{ä|u¼Ô¶ëí~G¬pÜ…ÖF¡ùùæÝ›w¾·=óç·x«ïo½PïµÝsß[ ³«E}Á´BßA0}'^Û-Ÿ³³©Em}gú.…Ö =¿Õ?Ú£Ñöh´G£=íÑÊ=¯Î–«vyÞti^§ ­vXóxõg÷ç[/tä­u…“.ôœZ4Xg÷„#ûhûçcuö[4Xg·^èù­þÑöh´G£=íÑhâ=t‰ã&þIZ#p×çÛÏ·^¨w‹Žëó:©ÎÞ¢Á:»ï ˜ã,îcuö£¶h°În½Ðó[ý£=íÑhF{4Ú£Ñ=¼pú^v;;ø¨ÍrÓý€`uG{ûý­êÝ¢Ó÷²;qSžS‹ú‚i…¾ƒ`úN¼¶[>Og?j‹ÚúÎô] ­z~«´G£=íÑhF{4ڣݼÔQlw‹Žã¸Ð¨Ox|ú„ΨO8Ú£Ñöh´G£=õR÷=?êú„£>á¹[4êŽöh´G£=íÑhœQ/õ¤±õÀŽºÐ¨Ox|ú„£>áhF{4Ú£ÑöhÔKíðü¨vò…F}BgÔ'ì2£>áhF{4Ú£ÑöÈùêôRGÞÅî×ç.4òÀŽï£‘æŒ<°Ñöh´G£=íÑÈKíz 0ò.FØÈy`ÑÙ£=íÑhF{4Ú£‘—:ò.FØÈy`O·úG{4Ú£Ñöh´G_¹=yomä<°ÇmÑÈíÑhF{4Ú£Ñ}Õöhä]Œ<°]/Œ<°gТ‘6Ú£Ñöh´G£=úªíÑÈ»y`ÝŽuFصhäöh´G£=íÑhœ‘—zä·V…=’.±´ýܾĎí.ëMàh«ûü³´¨ï ˜ã>vRí¿åÇåEm}gú.…Ö =¿Õ?Ú£Ñöh´G£=íÑæ=w§Ž঴•—í}¡N?·v´{\¨w‹Ú>Ðý–‡îì³·¨û ˜¶Qè;GöQk™â³wöÙ[Ômfï] .ôüVÿhF{4Ú£Ñöh´GûÈ }'þIj¥KœqŽlÑ)Óì<}töÑ+Ù¢.·|žÎ~²Ó+<×Õ?Ú£Ñöh´G£=úÊí‘9}/{mG{ºÄ#íhIà8n/ûœ”’³´è‘NØŽì£.·üXü3¶è±NØžÓêíÑhF{4Ú£Ñöh䥎<°‘6òÀFØhF{4Ú£Ñöh䥎¼‹‘6òÀFØÈíÑhF{ôÚ£wA|á…m?G{4òRGØÈy`#l´G£=íÑhNêìýp³íç”:Ú£.¼Ô•úkÛ®{ŸßÅ»8êB»È >°6 §\¨G‹vìeŸãÖ¾œ­{…Çþ.·|žÎ~®-Ú¿Î2üO½úG{4Ú£ÑöhÕ$¸¥Žöèp‹Ìq Ûn—9®aÛÏŸ^<§ ÙGÇ™¥¯½³õBÛƒ0ÀZk½ÐŽbxÇ]h€ÕÆÎ~ {ÔýûáœÃäêÿ5¶hW…ÔÇþý·|ÎÎ~~-zNö¨Ë…ž¥Žöh_‹ž!ä+Ç;ËÁå™Qê¯öÔ=òRG^êÈKy©G¯þ§ö"£=ú"y©#Þ98‡c‚ŒÝùBïÞ¤¡¿ø9u÷¤Qû’y`Ï{ÔF^êÈKy©#/õè =JíѦ—:§ƒ'Ã)”ÝáB«˜´>ÝF©¿}Â/tøG}®õRQ/uÔKÝ×GgdûöÈù²ôRGàtøBƒ)”ý'þ_´>áptÒî’yÚ¨Ox.1ÈQ/uÔKýjôRÏŸ“2Ú£}÷üeꞦôæ]<py©#/õ<<°§f]¾ƒaN?[y©#/u䥎z©'jPöèëÖK=ûùúI¼‹ÇNg䥞Ý+œ³ÎÎûóR¶ÁgïìÇjÑÈKy©Ï„—ºf¼Ô3Ìì3¢ÔÑ}a¼Ôg„Rà]<ÖöÞYx©g?a;?+âŒ<°_%/u€ yFÒÝS´h䥎¼ÔçÁKíÁpy©Ï™—:Ú£x©ó?[×ÛÿüE|ÓyöŸæçqêÍ–9'JmkÑê=w¿åó£Ô¾-ê„RÏ^ïxˆQkò™¶²š˜Ù–È”º5'µèü·!r•†]ýmè2LÛj>£=`ÔŽì£#Wÿ—È[tvÊí‘}´ÿ–ìì#ŽglÑcÙ£ç„FvÙ£=ê·ÖÌÚ§·ÿt~Þ¬6ï¤ õÕj<'J]½µ¶[è~Ë ê±úϾDkQßA8Ò ÖG'­þþy8çnÑãÚ£ç„F¶£=:æB渮Úþþ“.´ú|JÉùOü·o픉ÿX(u°uZÛ<°.+èÑPêéò8gÒãBmÏ÷áïlQ:³ÁgïìíçûŸ°Ûí³)ÙG'Ù£³ŒÚYZÔwŽ´GGöQ—[>p¡ÓÎŽÏÑ¢§³GÏ œ¥Žö¨×„4§ï®¯í±Ÿ²—Ý›-ó¸¼ÔSö²Ïy|°ÿ˜ù@‹úr+¦¸íÑÐ_9Çï¬QºëĨ Ùå0nÿ©Ž9ýlmh>a'E‡îzõ÷8Ýn-¼°¦rûHöè¤Q;²°GÚ[tv{tdu¹eÓ—2t$Ãñ¤=µ=z®hd8YžÇÄG¿{4òR…—úX(µ/V5»œü¦w^jLjNOÁKÝÛŠ/‚Ö¥¶‘€Ï²ú»|`Ÿ.Pê9˜²#/õ´è‹æ¥>*Ãq䥞¼ú‡®22Ú#gä¥>o^êét”º¿E­àÃ>~,^êZÖË@ÚªGº2­^è줻ý­ø"x`‡0i×îšÖýë-EÓhh¦ìÈK}-úðRÏ"–}R‹žŸ=z~häœ(u´G/ôëä¥.ÎüV+¯ÛŸ-o},^êqD¤]Enª/µqìkàãá™óóR׆hŽRWÇüç XZ{uõùÍg—º·ïž7lW´³£ƒ÷wÿÃ?/u1»ƒÓÆy`Îð6ûì-úðR»öv½õìø¸=#{ôly©=dfzŸøöÈù:y©Ûg~mĵýˆõü¼‹îˆyÛt™Öu±òÖ>¼Ô–³ëóóR×°Ï*Ÿp{/õÀó[p÷±x©-}÷¼y`»æQëô;L²x:^êæÈȾ³Ÿ®E_4/µ‹aïâ¬Ìégý#/µó„ì-ƒØâ™Ÿ¼ÔgÄKmÙå1ûQÌþçÏÏ»hmüÞ›Ú¸µ}7õ%ðÀ¶÷éL'hÔvî¿¶½wn^ê—ÌÛØ¸îÐÍ]²§ž€—z¥Ž<°á;{䥵ú»ö.výWiž;/µ C¯Í| |ôk㥶íÓî~GôrÜ…vð.Ú*m­>¿ë,ò­¿iV¿Yýeñ¸ù¹ýÍç[I.m?{šÚ¿ï¦šÇ¦ý¦žïÝ¢m R—AX;aëôµÿ­<œ#É?ÛG¾§Ìì§îÓ¢w‹àÞ…îƒphO~XÖÕÀ½ý§›W8·=Ú?fÿR8²³GƒÚYZôHöè,«ƒ¥µÏ°rV JýÚ£µÿgF%óø¹uü9Ú£ãW¿9®«Z÷ØO‹NUa›ç×gÐ1±•ð³#AdóùV’Ë)c±‹—ºÝø½7ÕN¹ÝZ½[´úB÷AØÁ벂ZÑÅYôROšÇÊíiÑ»EªT¯ŽB÷A8O1´Vÿq£v¥>’=Ú?¦Ý€µ×ìÁ*ßg«‚ÇöhàQkû¹ÿ–Mk/l={t–Õ¿ï´1¾÷:«¾†í9Ù£õ1]=5ÜšÙû“™ :Úk}¼›¿1´=ê”ߺòžn£¶w) °ú´Gkt‰¶«vyÞti^§ ­vX[Uع‘ß«êh„;{Ï‹[I.ûo³S­m#viÑ–é2í„͇Ÿ½[´úB÷AØQ8¹ËÖ|ÖYPêÀ3»ï…Züw,3–ì}‚Î~ö¨gïX÷«ðeÊÌORì.[‡*ÉÛÙÛ/:YÝ?Ü~¯ˆoõÅÖå°GÃÝÚÖ(›NÄûÕé‹öüö¨ývmøw¤ÎîË!;ûê_›:ì ­ï}oB‰!Z4_ý­9wûör›ç;-‘mööÈg–:í±7¦»ØŸïaíU³yâßi‚õ¸µ5+×Su`/uïMõnÑê }±éûÇB©LÈã0é‘ê2½;{ÇÒ9#J=«~Ñöhõ™¡göŠè‚é.¥wÆÎÞq¡nê»[}åMw“ýéðGÚ£N}tìÙoØ;;«‡¶G}ÙXí3{×a•·»ϲú7¦U@½ÍÊØjã~”Ú½E;õ}Ú¾y5Û¦>´ë€9Éf†Ö^XcµnÿùÒôR×á·Oö„§ÖKí‚[×Î!ö¾©w‹¶)H¥—zÎÿs‹A~™ú„çG©Ç)¯ŒúÍ'«%w¯˜<@g?Ý­í·™f?9à$½ÔãÚØÉfwqV¥¾ß=õÌîtkÇ­þ]%ìZwTW·ûwO½[ÔM…rí…­³•UJE›VĨ—ú´z©ƒUHíÎß9¿^jß[ûô ‹—zv Ï/MŸðqÝËÀýüìÑH¾32§øïÁ:{àE{ EClîw°Gúè ØÌÔ¢³Û£áföaÄ* Ûˆq öhÑãΣQ/õ©ôRF©«—zPð¬õ ÏŠRÏ­—ú+Ð'|TÏyv ÏǵGôQ_y­á`ÊYÄi6µ]¾¹Hð˜z©C#ù'³GgYý猚OYýí<.Ìâ.$à³Ììc3^;/…Q/ÕÙÝ¢Nz©g<>8‹ØÙAÁ—£Oø(uÔKÝs¡'Ûß9£„çùíÑf}Ãp(õôÎ7×¢!âøÇÑK},wtF{töÎ>=:eõwC©iƒìÑSïÉAz©#ìxþNoÞÅÙi€_NÝì‘—úD¼Ô5}§;…üÒx©{….<°çÑÙC)§Ø£So^êqg·OG'=Ò °ú{Û£ÿI¼Ô³3e\"gD©#/uä¥:–¬r:dä¥þºy©Ï¥L(;§=zbØÓÏ™ÏuŠ=ìº7/µËê,wt{4 ø‰íÑq«àQ;¤•~Ü9ã‰ÿÈKy©€R¿´ºÙÝôÃF^êcÔÍ>²Ð×yŽ¡ž‘=xBw¶ö¼ÔçGK>‹ñ?Ëê:îîIöh0wt’=z2^êÀðv­ôÓ—ÈÈKy©CóRŸNžò‹à¥®IÁöKm‚-#/õ˜ºÙÇu¹9e¤Z/ô<ìÑÐY/GaÕÇež'ynX{t”:ÔêlâÞö茌ëöèÉx©gµN’½ÝÑÈKy©ÃñRKŒd`&ÈcñR·²&M'DÓ¥DËÈKíÊKírôµ¿Î™9T=íðxRžÀ ¶hÛG­3ìqY çÌæÊ füæ¥>Wêö{4\å¹§åÉŸ´úÏ9jƒ¶‘—:òR‡ã¥>–dÞY˜ ÅKíT×v¿ HËó#/µ3ìÀ Þ +»¡ÔÎèõ$áÕÁìÑÀf¤}ÔzòÀÎÏýrxòçA©§¯þç!sÚÇáxº=ŒzJvà'þ6–z,‘Q/õëà¥v8yìÍ»xd { gd‚<./µÞi­°×†RG^j/^jJdkg9R[ïï´•~v{´kÑvÙÜïbFN9[;' ôKãÉlü[ýlvoGtv{tv†ãÙyò¬þ¡%öö£Ô/Ÿ'?òRûòRT’ëŒkºÙ—¾GÑÃUò^rgg‚!‡Rzã•?5/õ k=ñ`‰tîÚÁìQ7¦lÈÖ6Ï–Ö# ì´•~ éîH^jë¨užMðRµ¨çÞyò»¶qzî¸ìÈ |b{4/õ”µ-ðÂ%›s䥞›—:(è‘ÑÑ}÷€»Ûn÷Y0A‹—Ú)Çÿ¸Q;ý¬Ù"[$ïìlëçóà¥vZýÇöËfÏy¡!˜iF­Ã„»=êÁnØìí¼òÌP¼ÔnÔíýdŠa[´¿*ç±á÷*¶®ö¨ÇY§´Ðžž~m¯a(|thu?7x®öè×ÉKÝ;Fæ»ûXEÏ• òX¼ÔÓ Ü>ô8ÀÌîˆR»bXÓ÷Ãω—Úiõ÷µ(µkמdÎ[œŸ—:Àêï¡ÌÐ}Ÿðìö¨›4ÚàÍ™5 ônîÉi> /uÏacÓ#-+ît%à§°GÝ¥Ìûouu^4à£nGÄ=Ï#/õ‘x©Ç‚˶ÐúáùÇå]ã°ëÄÿ$^êŽyÔ¯{n­Þ:Ž—ºÝƒÏ‹¶Ïì›ãºv{évjÑ!´Ö¢¶i¹2^{Éxω¶‡]s n5Û¾ù,öè,áþA0ýÏúOhÑ½È ç›(õ‹æ¥v:‘ÛµÖWŸÙ:Oíñ"Çìxüx©m×ÛÿüŽXḠíॾy÷æïmOðæùýŽÙï}v! ‡Ç­”’íÛì~Ëtöcµ¨û ìà¥øÀJÝ Ó6"]FmíB§wö¦ߊ¬ë‡ÛúδÂ~”ºãBO¶úÛnÜôïÚ{©í,½ýÐóÀð?|`{ºÚìì«ÿÄë–ýæ³Û£î¡ÂN3Ò6§¶Pj_›Ý­];æÑ¾¹;˜YßKí„w:¬¯¾ö¨»Sx\{Ô´GûÒ®ÀGãø.N©û¨=¾=ê4³×èmWíò¼éÒ¼NZí°æñêÏn(õÀ&Èþ}º”ºƒR²ÿ6;õÑ`}Æu„æ§éûUxĨþùXÝ}z_èÈÎ~÷nM£E_4ÁþV]»Ð“­þÖQ;vÈ; Ô.ß¿§EM§®víÃÏ“–È£®þƒ(u?LÙÝåç·G‡FjsXzÌ£ýƒpàÖºû•N')g±GGŸí´œœnü[—È£Ú£^(õðÏÁ-äîva!ö¾ŸŸ=êt!sÜ,huÁ§O3Ó}‚ïßå0ûíX›Ãi~¶RJNáÃõÑÙ[Ô×ʘ¾8ˆR÷‚ýc·†RîìS–bïõîì]~wí¸Ð¯þƒÃ bíÔ¢n_À{Ì¡©¸;è1jºú§ý5ÖÚYìÑú ¬Åîa1»Þ´ùÖ.ƒ`ºÍàöh?ˆ=£=jûâ#¶qVÎ N1þ­Kä‘ìQ÷˜çH”:€…ì5wž«=ê4³Íé»ëíìࣶïM÷‚^(uÛ\µ9ži¥”·—݉›rä…ÎҢvâßék'þ;6Aöû ®Þê<Ýe)´ Bïµõi…î(uí„íÉVÿtÑŽô@©íß¼/‚5]Z±MÆë6j+Ká‘VÿA Ù¶¿´¯ûÏoºØìƒ¾|óÃ]Áô9ëßS›.³ö,öhƒì n¢Ôö¨¯Sx,{Ô ìµ}–`` 9J}Þö¨ÓÌþÂõR;…Aûfa›;õRÇÑKÝaöÔ®¯ž§³O¡ˆ÷nQo½ÔuaéÃ9TÏcõïÙ¹ì2ü›ïìÔ¢îV¡nî"ù<ô {§çëg´Gíˆbß3¦Ë[» Â%à®HgÏ®nöIÃߣ³WY¨ÛÔ¤JÀO¶ú÷§.KwË*wSpíŠz:y…–È‘rU?¼›U'ÞuÅßu;ëaüùÙ}L»FP¿=³ß¤Ñ ‚w6w ŸB/uýØ^úÍûjzôÑ&XÀBîŸY¦Ï¶ÛCëž·~ó¯[/uŸ5ÝÏ÷w쥶µè”±õR·aÕ ix`gììã°êI-êÔÙm»¨m[!Ïcõ<üZÔýܹEƒ-‘²­ÖMwxÞ¦ìë©óÛ£ö´žÞƳÙ]Á´c‰“8-§ïðwYœƒá6Ôs~½Ô¶Zô½íÑ¡˜§••¾Êl!{Å_ûn¤GgïïÔQ/õ$½Ô}ÓÌœ’‚±‹1꥞A/µ´í ÖgX?…µ^êþ3]Ó}€;-ÚCÌ´ýb®¿­x˜—zN}¶ªê]á øpÒÑv—ŸÇuSÅêD÷:,Ücõ÷ÍãÜ“ÌÛשּׂEÛß~¾Ý)3¨ëôÖo>I/uÿ\ïmúfâšC´—Í$–,äAXÓõzØ£Ö0àY ‘_/um8÷Û´ÃKq䥞—Úª—z\Uœ• Ö¯‘—º¢¶±êf’çÂKí-á¹Oƒª#3­‹ÎåŽ*F»§åãòRóÜÛ7nº+tC©ÃÚ£ë ìÛõî>G0ew2¦Æjø»hÍynñ¸¼ÔNs½»=êþšNqñPr`µNöè@¼Ô¡x©Pê¶«Ùòß+3xä¥>/ÕvùÊâ0§ø¦]R¿^^êÊãµÔe!Ÿ /u  ©½˜i[ë~-ólG­Í½•‡—ºX"GõoC?s¨ß¶…Ü}ãCÛ£íQhoÅîv™îõ†aʶ0Á×Ãïmøº•{sÜðâ¥nGak§]J%lÖ9?/µ>bº•];IÙüzd` 9nîÍ“?°‹:òROç¥î“ø3kçŸkg¡‡ËÞŽ¼ÔGâ¥nº ³ËCu/á·bƒ¿*^êz¯í.½½mž /uº8<À'ÕÍnG@+=µæ§ö§³óR×¹–Sþ¾XÕ(ý}%nG;C٣ëùfm-ˆî†­Sv7ÜY~wç 0ü‡x©-µú[möã9y©ðé)ö¨ïIi+| Ù…ÛfÚ+/ôäÉw F^êé¼ÔlŸ}mË7 ¼ÔóñR·6°Z×Îz´qØs}]¼Ôö^ÛO(õiWÿöøšî¼C¸ /µ½o=cÚ6Y·ßz^êŽQë~òÙ~ð¹¶QtüÏ¡íÑ¡]ÔÃÃŽØ¢»=:È”=¦-;‰6Ìêv÷áßÅni‰ãA¶}ÏŸ‡—ÚjÆŽ£J®ñ:íÏo>ÓŽRÏa!›£ÔÃ{ÿ ´ÉÇ“y©ûy© Uû]‹õy©ÂKÝï‚w,ȶÑlE©_/u¿yoE©})H¯þíÓ}€÷“ñºñÀ:õQ(»Rà¥vµ#ÖZo­­ã[Þ3´=ê1ƒ`ÂU·ÛÙõbʶLΖÇfû…K¤ï¢Ý•7´ÃA¶¡Ñý¸õÁAÆKmNÝ×V§¹³… Z·º¶ÝãÂN¡eÛ ´{Úm”:òR‡â¥î?ªëbßÚœßÈK}^ꔺ½‹Ú}U¼Ô“Pêq2$¬þíñ5}oá4Xß>êÞ¢“x©=föI«¿2Ý»}<˜=:²³[¹,Û(u^j<ߺ—Úùhõ$ö«Õ.KWÜþ3Œ“x©ÖÚ`ö¨wä³c|Øõ` ¢ÄmmïÎþ‚ôR›f­Uaä¦l‡[m?÷MsœçÞ6o¦ížûÞòytåÎҢÃPuÿØ à1?Ggï_ mƒÐ»Em}·c‰ €RÛÌÕYVÿ˜p€¥µDí—nõŸ‚kÑ9W_{ÔIUòŒkm`öÚý;O :#Ó½nÒtéÎ.6Ë´¹àìÑó¶]Îví¥¶`Ÿ¦¶ûRx:4Òƒz€R²¿ò{ï õF©ÃâN„²¾·êÎk1è8Ýo­ûRx:4bŽkØö÷Ÿt¡V’K'Œ³ÿÐ縟­-:†Ÿ§ÎÞ¢/¥ÜÙ§,Å“ZÔ ¥öŪ¦û«ÿùµ¨Óùú`òôSó¬þ×Ú)Á!Á)öè@g?JÌ=§™=°Ín]ýßÚYðѱ-:«šã¶§@#æô³þµí4ÓžßÚy$fÚ‘,Ðãv×´è¤ÿ¯pÔº BïáïR÷S>_ï±úµ³Û£/tB¶ú»µý-¸f =V¤ fžJ='ìÖΈžnO¾ûRx:4ò y©¿”úõòR¿ÚQ{:^j¸}Þû„ω){~¢ôé”ÛÇZý_¢= O¾6ñ3þ#íѳXýëRÏF»µ³ã£Çíì¾Kaä¥:]5Ó¾¼óµóRÇQ{"^êþcÎ/¥>±=zŠ>z~«ÿù-Ú³3NÓ&~TÆõ`öèÉLm«axõŒRÏhÎÓÙ-+Áœ~ÖÿóR-(õëå¥~…£öœx©ÝÇîžù}UöèKXýOÇÝ}ž|>8Sñyðä€0l¬þGšÏ•'¿ß)|¼Ô•úkÛ®{ŸßÅ»8êB¿N^êö­ÒÙ­Ú±»~Ü…ŽkѺW8*ÕüW0j]á<ÿCÀùôá¤ãÌûè<öhõ…!Ä‘~%«àE{N{4ðZÛ߇Rª§EØ£Óâ¯aíÑ‘«ÿ‰]öö¨?s¿³Sø‚ì‘9®aÛí2Ç5lûù-ÚQì¸ õnÑqcñ«lÑ® ©3üûoùœýüZ´)œqøŸnõöh´G£=íÑh~õöè‹ÖK=iGûùñÀ¾B½ÔçÇýóR‹ö=Ú£Ñöh´G£=úUÚ£/Z/õWûøjõRŸ+ ôká¥>ïÕ?Ú£Ñöh´G£=úÊíÑ3ÔK=E=¤‡ÒÂsÒû•饦Oø¨ê¤¿2½ÔN^áù­þÑöh´G£=íÑhZx©çÖë$šõH£ðœôÀ~ez©ë>’:é¯R/µ“WxN«´G£=íÑhF{4ڣ笗:òÀFØÈy`£=íÑhF{4Ú£‘—:ò.FØÈy`#l´G£=íÑhF{4òRGÞÅÈy`#läöh´G£=íÑhúñRç¶®·ÿù‹ø"¦óì?ÍÏã.ôüÞ-Z½ç¾·<@g?E‹ÎÎß9²ößò9;û Zt~ŠÛó[ý£=íÑhF{4Ú£¯Ü™µOoÿéü¼YmÞIê±)¾­ZÛ…åpä­µ} û-ÝÙglQßA0m£ÐwŽì£í[~¬Î>c‹úðwö.…Ö =¿Õ?Ú£Ñöh´G£=íÑÖ 'Oü“.´ú|Çï¢Ë¡w‹Žëó:©ÎÞ¢¾ƒ`ÚF¡ï ˜ã,îcuö£¶¨gïRhçû<»Õ?Ú£Ñöh´G£=íÑÊ 'ïe¯íhŸ²—ý¸üÞ-:e/{Ç…¾„¿sdu¹åótö´èü·ç·úG{4Ú£Ñöh´G£=rFÞEï2#Ìy`#läöh´G£=íÑhºuöÈ»è|k#lä=n‹FØhF{4Ú£Ñöè«¶G#ïbäízaä=ƒ<°Ñöh´G£=íÑWmFÞÅÈëv¬3òÀž¨E#l´G£=íÑhF{䌼ԓÆbä]u¡‘v|<°‘6Ú£Ñöh´G£=ú x©mû´ûŸß+w¡5ÂþJ[kϯìh·–)Þ~¡w‹Úî¹ï-ŸÔÙÛ¢¾ƒ`ÚF¡ï ˜¾¯í–ÏÓÙÚ¢¸»/…Ö =¿Õ?Ú£Ñöh´G£=íQ?NA—±0Ç5l£KUØùó[¼‹Öʹkźú¶è8#ÐéBGöÑÙ[ÔwLÛ(ôsœؾåsvö#µ¨SMè.K¡õBÏoõöh´G£=íÑhF{´rÏ«³°åª]ž7]š×éB«ÖV¶Ëó­:òÖºŒÂIzN-¬³û‘}Ô¼ž½³ÏØ¢Á:»õBÏoõöh´G£=íÑhF{´o#ú¸‰Ò…ÖÇõùöó­êÝ¢ãúüÀ…Nꣳ·h°Îî;æ8‹ûXý¨-¬³[/ôüVÿhF{4Ú£Ñöh´G/¬±Z·ÿŒz`£>á¨OøD-õ G{4Ú£Ñöh´G_µ=õÀF}Â]/Œú„Ï E£>áhF{4Ú£Ñöè«¶G£بOØþQŸÐõ G}ÂÑöh´G£=íÑ­þQ¬g‹N‹QŸÐõ G}ÂQŸp´G£=íÑhF{Ô­³GÞEç[y`#ìq[4òÀF{4Ú£Ñöh´G_µ=y#l× #ì´häöh´G£=íÑh¾j{4ò.FX·c‘öD-y`£=íÑhF{4Ú#g䥞4#ï⨠<°ãûhä<°Ñöh´G£=íÑÈKíÎ)yÇ_hä9#¬Ë Œ<°Ñöh´G£=í‘3òR{Lü‘w1òÀFذ-y`£=íÑhF{4Ú£¯Ú¼‹‘ÖíXgä=Q‹FØhF{4Ú£Ñöè+µGÆÜ}¸ùéÓôý̘ßLîîo>M>ß]^¿ŸÜÏ>~º¹Þþ2y{yqys­‡fvý–·ÝÎôÆÛÙäæöòýåõôJŸ›ÞÏ ¿ÚG‹7轿ùãíôòjvËÃêúmysñùãìúÞL~§kÝ}š]\êã©O¼(ð&ÓIýŸ/¾¿¸¹¿xyõâÃËЛ¼y1½~ûòòÅþøíÃóo_įœ—®ç‡ÆKü`òË‹ÿ¥wÝ}û×zçß~¾|;{醡;ñÝ0™ü2©?½ø×?¾¼~1»½Ó¼ô"ó†+¼rÝ}ùÒ üxâ‡~Ä;o^Ô/¿Mô­·Óëu|çå·¯ß.n.ï^RùöÅ^~|1»ºš½¿½¼¾|;ÁÄø’ÿt}ù#¯é+îõï¿:ž¯Gúðì¥Úùæ…5{‘ßܾM?ÿüòý‹ÿ¯þþÝ4ÿî÷õòÝ‹úûï^~xQüÃwßëÙ0qœ—I?N]úM“¦o³ìï_ú´ç~6ýøWzçïÿá»ßgúwå²ß~ûí?~Vÿ¿Œ|Çø©ãé ~èêK.n>ßÞékÔ’÷/®¦|ÿå›¶ÞNë¿Òרɾ8¡Z=o@öwÕ?•^ ôKý]¦_^&A0 / ó®Í‹wê7:ëÕ§e'ýîó·oló^Þ¼øüó«w·êq}WàyîCëËfon?kŽ57è:ôŠçxÑK7qÒI˜ºi3’îËO“™f)Sñ7¿ùƒ&îo'ÞÄ3œýK©‰:y3Ó”Ô3îäÞåè¿©ù~å•ןnoÞ~Ö¯?}˜ÝÎþüIoš?ó¢¼¼»¿T³o_Þͦ·š›¿æÇfò¼xµxqöóÅûêâÁ ßqÝ—³ÿüóû»é³ÉõLËêþƒmÂÇ›g÷7æâêænfŸ¼¸ºüôºÐx\În'ï.¯ß¾»¹¾Ÿ¸Îäîbz5³¿ÜÍîí¿±ÇÿÍøv-Wó~¾Àþrùî/´Rÿήîfk/ßÙ>jº`â{ÞDƒ¸ÞÿëÕ÷Í{¯òÀìxÛwÛoÛ¾Ú¯ÿùrö“þù—ÿýÿê3ÿüo¯KµròãòÊ{9¹øQ½_Vßÿqòéí»ÓÛ?m^Ôw&š¯­m\¼Ì#³ýF7y•Ê …úD¶ã;.ÝÖà»™5xÿý•ÛÞèå¥ë/ Ù”+­IûSvBÍ cÙ„öûàe}ôJ³9Ž5Ý­ex{óòî3#•&.o3ëWq½W‘n2Ðåþ®¹Üü}ºÜòÑÆM~ÿùÍý/Ÿf“×wyý§õ[œßáëÿ5yýû×ÖˆÜN~`Â8ÿÖü–ÝÞNùÃôþâƒfëÕÍ­ùÁµ¯êûóÉëìþa½[ãi1L~â=:dGaK‡˜ÅËÓæÝïÕŸ?]^É ½ôÒ¹ø³ŸgŸïyòÃÜC|”'qðÍöµ·»‰7οåáaŽò†í¨ÕæqÚô”ÿ2C“ÄNÛÔÑË^žb= ^‚­ünöŸŸ/ogo_zéû›—·/n®î^ºnì¸ØŽ®Ñç—}xØ¥k>¿YöÎî‰dÚûgr Ú”ØyôI¦/M×?ô÷Ýüß÷få—Íß÷xÍì{ÑõéY;<“4÷ ^6óáñšáñ½—küæV×ýxsy÷?5><ÛWÛ5>gxãt²üLïññ†ŸEC&A²ÏŽOkW›Çhm¬ÚÆ( BùQ-©–AZ¾¾%MÝ40Ö_ˈ¿—û·ãuwù_à¤Ë»;¡)\¿ü0©ÿÔYÙ:³ã‹vŒVqþ•+;ŽàÚ îXff¯:4Œ+M Ò‡ufÞ °¤4"ºNÐŒˆ›{G„×—#âiD&#bÚGd|xé¹~ºë»¶…wšù·>|ê¸Añ†”•æLôc÷âZëlsx$&ŒÊõ’t3öõùHøãæ­7æ*?]ÞÐÜ`(„œ?ÉÝh€Þ™‡¥ñžO_]¾!zÔxή/Ý5$‹wN›Þ–ÎÖÒ­¶ÊO÷¹¢=KÃì?õ÷¹ûú|Dˆé8"“™ÝÞÊÍÌ‹BT^ýÇÃ(EÑΆì¥å;§ûR0ð(­´J^i{”v§°€ Mö¯Ï l–Äß¾º¿üöþÃílú–žt=Ï1;®³Ãx̧æŠ+ûö_8°?_i•îqÇøkëø{zŽÉ|pŒ±ƒ±gpx}>8Q38U*°Óƒ#Ÿû ×Óíì¸Ú®!ÒÄ™_wåqß!І¢‡VÅ+˜Ë¼9uxúâèfx"»qc'ÞëØy}1<j=8ö«Æ~ýý~¯Á‰’]×Ú58Q²¸êÊã#w48šZiZè>‡b+ÂMÒpß^„}}ÚÄŸv3â·7ïo§?b×|÷ÁÁ¬DÝaìºîŽÑÒ;ß°ò¸Gàíx¯6(öƒ&òŽS“¦é^SÃëv.û‹Ø{3h¸×¯¿XüÒu’h×%wt’Þ¹¸øÊã~öÆ<_iUà ¬Å‚ýƒ ;^‚fN°o¼ìëóñšãåô~ÚX»ûÛÏ÷Ÿo­gp³ãb»Œ,.»ò¸ïH Œ¯´*pŸ‡óŽ­wªHöyûúb„Þ!»ºbëbúàÂoÞqlÁØ)ÖY¹4L&;¾dW¾xçtõqo·áŸ#3oZìí‰0Žª•á˜x¾ëï^_‡·Ø¹¼¿œ^]þ×Êx°%Ë9ÒÅÍu3¼òŽazß ÓûÕQ2^,ǸãËwDËwNW5LC‡å+Mó£ÉOf5,ßÝëIc¦woxÁëfÞë󈻲¡šÇ‰Ü2Xs]½´ãZ»6 çï4Ó‡Çý­”?ô–á²%û§y¯­Ù£áÓÚ…ÞÞþ>¡y^_^ÍGryýéóýë›Ï÷úç¥Ý(Øq¹]®dñÎi³ÑÑ<î;HÁЮä¡U¾ÓeïéWÑöšy ´ È‹÷¯Ïh¡fcÍ6 »‡Ÿïf·vÓÐŽ“»®ºcœ–>î;NCÇëj‰™·*ÞÜ#|D 6žXq¾ááõùðÌcô|zwyÑ8 Œ®*ßáËݬî°²µ;.½cŒ–>î;FCìj‰™·jeOå ÆÈúö†ËßÏë‹1Z@±¿½~úЌҧéíý%e}‘Àì¸âŽ¡Ñï‹k¯<>¡®¯4-ðZÂõ£ýŽÙ çc’îÞ1áõ©™ÉüTäû{±‹Æ÷|œ~údÇ#ˆv^m×R™¿l°üÔqã10ÀZiÎáCÅÕ¾7C§ø×±ãâ;A¸o\ìë˵â¿|ûâ{-™1»R>Nïo/¡bÙN`xŒñ®«îŸå;§«àñYišlàÁ×I[˜õ/¾îåDØ×çë$nß ßu– úæŠö±™_½§3‰Ï°A?o•ö=†2§¢çM(¾˃òýxߣ}Ýn0ÍãwŸ¯­±„Ê•]EE».¶+ÀY¼sºú¸Ç®b0ð®¢aæ ò\7nv³7öFöukM‚Ŷâæì5Íðo_¨mú6—\yÜoúƒo&®´ŠékŽ9E 5¶Þmfoä;{g/¯ÛÙ6³wN†½½ùüæjv÷ÎÞÍ} kBï¸Ü®ùë{‹ ¯<î1áçïCƒ<×ñçó×µÛâ>Ûäûæ/¯Ûù.æ¯ú(^ë£ÛyÙHŒ¸l}{uy§h,L£ÉޝÙuž°xçôáqßÓçpðÙ½Òª êJ‡êÂjÚ?‹±Á–^iü$ŽöÎb^Ÿ®q•ÿÏ_½¼|ñ¹01ÞÎî.ß_OïiÞÅÍÕ}g®~Q[ÞØeóAh¸Í­Þ²;{ûíÇÙÇ›Û_^Zþl¸ðüïnÞqÅõ§·³5 Ⱦ½Ù·µWÓ—kéÝ^¾ù|ÿp­÷ët*KY¿æ_Ñ[lÿ~Wð5¶¡¼Þ/º‰ôëÍuÓÔ»•í{û­«Êp®vß+ë-ƒˆÍ³fœ] m3l–Ù¢Kþ¨_îøâËk ãÇfOúË©í«Ï÷‹ïYáÁÌš¦s0Ç«7vèî~zuÅ\ GÞm ¸ª¿jn,ö´²4|Þ:¬eCìŒ1/î®/?ÙïÒí^r¯dZèwÛê¦Çï.?2ÑÞ½˜ý<å3…Ðü÷÷Í%/kºÞÜ’'ryMO^Íîç½›° 2oÄÛš1Ÿog¯^FXÓº›ÝÞ½ôc{PÛLã÷Í4¾ys?½d_þ#}¿Öeï¦Ø«i"ØEÒ|¨¡}ÐáF£nq-Hµ>ÙXtw¿µ"t›<ó/þUÎãåLì:½ŒµBš×v¦åëÓ•®÷6>ÙÛúæN]ñ÷S¾ëóôŠœ}À ¶i¿[ØáŦöqÓ²M»ÕÙiòª;qÿíuf-‘ùë¿^x–×ÿôÝïùûâÃýý§»ß¾~ýþòþjúæÕåõíåôÕ»Û×wöfÿ|ûúÍÕÍ›×§w÷³Û×oo.æ/ü;{’$"É>¾ü›¿Y\ÝX¿Õêk‡^ûôâÿgMè š<ŒsjeLóòžAàõé•2™¬ŽÃ»ÕqˆÝH×ôœÖqÐ&ö ÓÅã8~–ãðéþ„‘x¸³•‘‚Ô쉆U|óùö¢1÷ ñ`ÿÿí½{“ÛF–'ú~ ŽoÄ4«£T"Þ€g=²mÅÕÃ+ÉîÞ»ºÑ*‚$$YM²lÕLìw¿y~çä AX;׳á‡U2̃̓çù;Ó_.QªX½k·÷{öÿ(•«%¦CA{½ûõ–þ„öqš&ú…§3+\ƒzòHVµít¿»y|£Å¯Ï lÞî4ï%æŸÄZµÏ’*R§Ò¤2€Ržìïâ³vMc>«›ßÈïèM…7›q¦¦qOºY2I:éfÉ$þ#Ýì÷”n–œO7ƒêRI2¢2aQÈ '+ˆì§÷+‹t‚J˜ÂZ·ò²KáW$z§Z"|@“ó~MA½Þo|ÊG/„J ©ÂÞž‡Gð¢÷ää9®'ؾ¾;Èõé6ñf ïž?yöúùÕí\ë±Y¡òžHÃÝõýI?8ÿ™ÿþÎØ—oÞxòêÕÕáËa4;·s™ÄëpgQºnþ…Ó²ÿ„]út.“jˆÎt[Ó9f:û#‹â,WEYž¤´¾?¡û5ÿY&Åÿ”¶s™Ä¥Oé+ÛA³ú‘¶ô3-G¸mÙò¶œ“€«Ù1Gè"s­tèsq •V­ÕŠcWÝx–þ!œ=!“´)Þðp´Èž×úåz¹ÝégÝîÁ.Ú®FcÄêc©:Ž(†î_,®AÝͦxM‚©€ ðr#û”V¬&ôß­ ¶½hö 2Qèm´iš¹h±Q—=:Ô_Þüd|­Ÿ‰#±˜Ϫ*hÌJ+lû}{½~`qÿékîuÊËiMBýºÑk_ßI®¢Ÿ2qL »Gƒ¨õ.§§¹I‘ë°ÂSn4+h8N¬MB-§O«J7ѲËf^ïæúÅÑRêœæŽõmsØ‘!‰­^Kb©YRª8¡œT­¨|¼¹j ¢gL/ÖÍ?ðûvOÀ˜§rÂPM6žè’§ä™ETôÎbÊXlYP)Vl» 5Õ;»áU\¦ÕÐÊÇýÚûsÄÊî3jåǃ+_^@*½,ýX–~󢇽ÒK†5" Í[Ù˺kÉD†u±’ˆôV‹©k:•®›¾Ôt¼§¯Fv4ú.±^AúÙd¿¢í£ßµÂïÕñWØ_]ä3¶]Á4SD"­* Õí€Æœ}0®cæ¥æV×÷‡‹½NuE‡8ö7™zjy«Ñ‰ÅìØÔˆâšë% lQõqÛNß?}ûáéz è±ä<˜8›¤“_ÄõH‘lÓ7O^?×M2ÍLéŠúyW“_§ïzñâåß.tûk‘A²zùñ‚–ÈtSóÐÍ8¶¢¶ëÕý…t7ÈånWÓ¾Ò4ßliͦDÃÖ?:«×z/6Z¯_?ðL)úŒ|$úIÈgeeº×;S?x£ÿÙÈ iÆ.KÞbª•É YîôE2jòËôrã¤X“‘ÐxéÖ49oõ<2Š[q'É53Ð7«ØŸÐQs»ƒB`/à¦Þó°V[óydÃ3WÅ*cæ(E$¿é1ðú[è…ºc„.´¬IË"©Þ!^7²ºÞ³ñ‰ØrI]c€þ䯞 ñüý¾Ï Í2½¡‡ó&dOlA2Ó·Ò¯¬*ÆìVQæÕ&—R™„cÌþ¶Æ+ÛMyéqK?hQjñ…¹¿Íܦgâ‰ìQ¡`zt~2cZSΚ‰›‹K›õø0[ò–nvWĉޕx—¬ù7÷·243²‰×^%³Nû—ó/Ò^Ìó³¨{/,Ó„Ûü Ùï3Ê/N¦Ã²Ù4;ýÒ†=Z,ýlšœŸÉ3òèˆĈf3'Š4WË«K:Ï&iD@CÓZSÐI¼ŠÞTò%}Ä€ñ¨áUÃtWîK³ÊñP÷™dd³èèp÷Öµ‘5Bk,É:kde×Hã{± b‰³J`ŽÏä Ÿ í!9ó,Vf³cÖùÌ‘3nv yu=ŸkžBzWß4’LC mÆ m! m% M‡»æŽtRf­™‡Ör´ž¦×G}«O]ÜÃ:(¢ˆYÀ™yŽ6ûû[lxþæ+ÕñCzÆG­W4nµ¯*ÇE–ð;„Ìú¯ë/§/xGÓI· …‚Á”‘1=®íq³Ñ©cFçŸzíùÒÊÛ3 awØ3KÙ3JošKœðfj™óJDÏšÇP‘Kaºdèô4î[-©Èl-ÉaÌaØx”xâÏî żsNcœ¯¬¼Ìßåí=B(³pÒ9K»p)_déíÂspˆ#ØnÏþ&»ÆÂ|ñ.“ìBœ±ß‹®`· ­Ò,ÒKó!Ø‹tÀÖã¯Ö‰ìÅ¥êìE9mšôرÓIÚ±c§“ä;öïÉŽŽ„M;J£?’ Qï¨á‰ØÓ£çÑC*OZ ^ã§áeBZϺƒÄs+2Ô^M “ÇÏf7/nxk©=¾o‰[|êú`=ÏdioÞ`àx×â)$Ïv7DVCÙäV•ºä ¾ã1àd¹o÷Ÿé°Üè=@Æ =ˆ\3\ã¤ÿ,ªJÛÕЇX–/£ãP×:QMª;ÍzeD;#¶Óü»í­»cAkeªäKŸ!´}q†ÝþÅ*N?‚âÈrQ®¿=H4ªc§C å”ûÛÖìþ—v·ÝˆÒxiÚy¶͸éýàón™ÇêÁœ3ˆ»d¦ ‘Œ3DÌ;‚S.J³˜z÷È·²Phx2½†×üû)8âpÓüÒêkšjP¨{pÍÃIòŠc:õÆ`|š'<ìÍ-QyWïWW’ì^¤ßlä”ÓCiHåÌÁª÷4ׇæºx„g>²Ò†ØGå0×Ç-­é> µQÑøøŽÆ«ç¤?CÃá©À<[è/tC'Þg0y½kêÏv~üH/bBj’꡵ŽoDœa¹BôB˜cÕR¤D~9Ë‹›-!/I4”9ÇD˜ÞQ󙢧u‰§Ây5ý¼±a 15yféðÈFfÂn­µW3p®`n»°^¶Í·ZžÙ®H«ñßD"ôŠ/ìˆ\§ô4Y®´Œ JV~e.gùXz(b5K\!Y¢µjH©7KBµ…Ë“ÂeäííýÕMòÅL¹gL’’Ì¢dv0 èÂÏ’æ—ƒäÒ÷U}ªiuU™~C'‰&¶Fšã.ÔÚÜß^7;M¬«3äâ<Š¢ˆÒê”JC5+&/ô2Z\pâ\xtc5¾Æ»ôïĉ6¤©¬¦ÿJ6Ûláw¥½Å… 4ýwZˆDÑJ w©ò(J„¢U úG‘Åç?jÚGQ5ÜeEãaŠò ˜¢MÑø‚Ò@F! TÜiŠüU3&0¼o.¶«háºÜëkð&7¿’½Õœf9•“ûõ®^ÒÉ¿UÓo(Ü‚ ª•Á*X¢¸`Z¥ÃÕªV}ªiÿE»S]F49CP¼À-ÑÄT+:7Zú«ížÖ,k€Óÿ ITJçf@>H‘š2+Ue¾oÿT#HÒéò5$II"/pk,å]«4Iþ—YQâq¿„{Ü¿‰û)ËýÂ& “÷ $ÒUù­ß?Õ´ÿ@î3*@fxýÈ ô–ø˜Dâc 24"hÓŸï.ö,í8s‚„ à1笫1‡/]L€{‘€x¿ó i¸Àc6ŸmHøÂÏÎÀ0>³Gè3ëûÁÊ6VÏÌy$[ü(ÓŒ‚?¶&,E™qe=·õók÷BŒÑ^ÐÄÊ(G åy¿†À oY!žÀ•s±]‰ŒjLd%6™3úΫ¦&ón+¡¼&\€L³’Í·‚6î•_ȼÑì©ÑPDãüaSßJ¤ÒŠ}p»{êAjÖ¥ç'3A½3 ‘Vé?ùqìÔÝ5‡û݆-ó“´Ê]LlnõÅsâúhçË©z?¿ÇQ~ÔxþWSŒ(|-ß‹ïL9Ý4R¡œdÀ}0“ò0X ri¢?pÕz$AÒµHìËŽl²YZ‘Œ“D¹ˆïYœ•›¬gu²ú¬*¹­o=³4в«ÎÜ’ä¾è³ÉN`“ÅC~öe}c¢fYÖì¿ÕW£ÎH±ütÈç¡•‡:T~¤Bå ª ¨´õ'ú-‚X:¨=ñíþ†ýRXjhÜa„ v&â\ïD0(NêXq™ß±ÁóÀÕôŸ¾#ê´%Õ§TºR–åñôoÅÄË’AE)KŒÒsܰ—xCFo8h™?NG2ý7Ï´t¿þ‰"çš_š ‡Ýƒ±¾ÒÁ7ă)ñEòœ9n·ž†¤ò$Tè7“1Õ#Ü>ѰWÛê0ŠŒÃ¢-?Þ‘ÑÓŒ®›Ã¡Ùý÷ûöðfû«Ñ2’XÄ¡BD¿…Õ £Ò·EAö';ò N¥é{q‚ÕkfnfvÝc H5ŽüÏÖ`A+y§¦ø#÷_ ›Æ–A™¶kV„•ÈëÊ-o ‘Òú›+†; ✣„¼øn"” Ä4kBXZ2Þô óÛô»ÿÅ4ü Í—ö`>jò›>ªc ½Αâ`¾nc‚¿P<3yìo5+ÓGEh®»Ð‡Çç¶¾ÙrHŽGFBq/æ-$Ã| ä-)ÚM£q1<Áf]5k|•¹X ŒÃ¡‘Œ*3e!eY¥ý¤40w¤>!?„\ö{AÀ‹˜²(ª¡¡ù=bZ¢„Ìô†B WSd}“bE‰CÖ~¥û ·KÌGh úWÏÎZŸ|n‚!$¨B=¸È$‚…;ŒX“8/Î’‹×Þd€¡¨Õo Y ’ÑHм6@±ö˜b«^Š™å»T–b«e»4«V\èiV¨Ð…N5†:ÅõÅE~š>ÛŠ¬°°–e‰u©9©³ÚâxVéç!ˆêÏúWY(<=°'/H‹ý$V0²®nm蹫õy%4lnòËZk7›³¶¸Ï‹´:2Ù±1‹ÄOff>ÕN <Êý M5²© „Ô©ôU¬S´9Z§XrŸ;¬@?3ØoD9kXQ8µA_ûLªæœåy ËšTY¬£žµNœòT\µ4¹òFö ¤âÚîGˆŒ$øGüþœ I¦]Ý»êS–Ì’~¶a¦ÏÚ®',ŸäOX>Éþð„ýžc/Ū?£Š¹ªÊî`–X¢™ˆ t•ý.;Jæ¸EÅ \«†ÆVÏë;Ê=¦“‚óx;¡ªâ®·ùæ`O^6ë(9¥_ãØ2ÒòÒ†‘.ܾ§AÐÙ$Ô×DŸP‡a¯/ÅÀ ¤´›ûumL¶K³ôÈlL=7 YÀRäF»ô¦¾ã`V/µ“yþÊH`£qý<¡è§veк¡KÂV_ÿôêÃ˵š„LjC ’‘Ú…'Œ¬Í†$º¹5˜RÌÈÂZVˆC0uˆÝFc¨EpHš§¬É@|³ÛîM.Ê=Ž¥ ‡ì <]™ `hÓ=–¾¹…ðŸ^ÿü•UR—Ž@ž/ŒC²µ¯Ä’jïÀys,ýHzÆUÝ£µøDK}ê:°˜A ¤ ±³Fâò$|…zãÙ7d$éé7Ý['Z×¢¼›y©†s”E1dÉþˆŸPœm!`-Nó®;Æ´%)½à1?Š,¸huÑø0@t÷€t––p QR(w“ÞG^¹Ç&Û¥˜$»é½Þ¶1e¹‘Xƶ`m‰‘ÇÍ—]Òú]1U &•ôÆ –ì 98ZQÙ“-†ü¨¬,XCØýþÞDLuT4G>¯nЯ ‘~y¿«%¹CB.Ù‰ð™²t"N ¶§žEóuÔ^Z‹qtŽâ‰!×/•Ô/gZXFhû¹=|‘c~¸pü±ßÕC ˜¦é‚},*k«„Uš1™!]]”Ä»^H¼ÿŽ+5‘Ú2s¢ÒÍZ Ó~xÃðO´$Ïцë$*ËDËéÝ£lf’™çMß­pOP‘–©%» ˆ±÷ú( ij„*&;±t î+·0ЊE§/^šp0RÔš.Y‚Ý'¡ÉÜ.Á¥K#7¤bPdjÉ`Všî´$489Ü=ÌÖæÎij*Dq›q€/Ž‹=²[-;gݷܯ,ÂL·k÷×N7Ôc §Î+ÒÏTÌé*ͯ=NU ›ãtô3ØT*h 7U§4#ÑÝcutAò«aD¢Ê‚ 7ìåuCFðºôLY"~|Èë\Go8-iÚ kO\®•ÄE?ÑG\(§Î!©3!Æñ7wq§!ùûõ*SŽjß^_([Á\b]w_ƒÇàÒ…`ÄQ’* ²iõR|¡:ëËÉà Aä\Gã{“õGq‰Yˆë™µÂ-"C÷öÎ@*ò¡ÇþNÔ4§_éñãRÿŠ¢Ô\Ü—Ó/¾(bšQOI99ýìýšÿÔÿ3N¿xèô31§Ÿýũ˥ ÄÍÖA¼ ,GN„8)q”çüÈ _€»íûÅF_É7ù°+ñ7›†BQëöwcë@°©•DSÆà¥JGÚ_ÉÊrØo\ÎFŽB»ëôùŠ3x8tß<_ñŒQ¡¾¡o¥þß¡p6áºt¥¯sÄQ¦‰ãŸÄq” aAá¾°Óž¦½‡1·;ÕeÄqœá¦òíΜÇÿûj{"ÿ7ö®_†½®þU°²$Ê7ð&Õ Ipßþ9J¬ÓåkH2 ô!/ð¡,”ØÕÕ•¨Mq’á¬é‚ÌUÒfM„úTÓþY£Ý©.£f=¬¥Ë |L¹¥'†¡ìig¿4;z¦ƒ’› ¾!mÅr~ûÛŒ~w¶™k¢„xò Ó‡ ‹‡(ˆû§šör5Üg ç6D›çIÒ2ßcd³y$Ñ¿»$¡KçÁ3”{F–‡:.È‚C*ܹô}³àŽ›ö/8ή;ÑeÄ‚ËÏq~Açyùæé«Ÿž=·Œç©Jd8Ï7†óäi’„.I5kˆ$¸oÿÅyÂ._C’3œ‡_pŽóP^n0kº ³.fÃG¾oÂqÓþY£Ý©.£f}†óð :œ‡VÁ‡çÑ*_ž““3²à|úç‹bVqŸËœ~zMÕ Óåççï>è –XYå+‰øíïDý[uvbÐôõžª¥Ù)%Q¹û§šž*Š:Ôg s*†‰¬*¶‰¸Ìó€9•i„~‡zsØIÜgTi DÄ@¬ÈКÄýSMû×dØEýæ5YœcNü‚>3EW*úS‡9ýIÌzµÅ!.2]ÐÙÙ9¾gßr]úž>Š$çðÏfÅ1sb3µcNI… .˜YWC§”âû§šž˜õP—Q³>缨Ì)¥Pj)ØÍP›¶!î³0¢[‚Oþ[Â_42“, âéKÂoßB¿Ãý6UÝ3q¾ŸV:ÐóÉ0–:îŸjz z>1ž°ž>£Œug˜Êg$¶÷3*W…bØÝßpd>£‘‰3Ó!V¥-¿¡Ä(J¥'IžvÎYe“ËÇÛ»ú÷0¾]_X£Ü7—$á¡/9"óÇã3ÀÒþË?#ŸG É`ñ¬¨æE+!’A°¡&XÃ+“ÐÏÑn”šsu‘ÓÚýöÐ%s SIˆSvö7l³Eþ|TÆa€ôŒÃ]½j<ÇIC+»sÄ2‰áK?­ƒ›GR“ g#f@†©%ˆC¥qY Â‰“⣴õ¼cüÂÝæ‰lïºæ\®„¶CЭ<Ø=k…8\Žu\¯- B$ÿD´± pq2d–ÂýÚûsL˜Ò`Ÿqá;ɹ JÞR¦½“H‰FŠT£@ŽýT !oŒ ëpÕÝ$ižg!WÊ BªÀxÍ—R¶ÞÂ*Ћv ø7ó|Š™¨òÈÜS*-ácàÓï~Єâ,:ÏÈf© ÄPšHŒŒ*- Á°âþ©¦ý@¬º:Ùe„ÌWžþeL}¿gU6ÑIÅ\Zºð3#½R¥…!’à¾÷ç’ vE’3è´ü‚#ËD(üg£äÍZá‚,„¨L‡g]¦v e:nÖ¦‹êé2jÖÿ¼ÀG“õm¢¡rE,Ä,wõBs3¶Š*¦ERq5ôÛÛhøJùaZ4þ38˜3Æ4NrCã¦'âVmŸ¾Çá=Õ0 åùD’$M¡˜~G-¿;ÁF®‰°ó Ã{Ò84Ãã‚,¹t…3Ó}3uü9bÉ v±äªs¼cîå=#¬¢¼òôfí`bG3K’rª—ïO¤t6Ž$¦KßÓG‘$>C¼àŒá!˪¤3ëÊBY>¤:)¾ªiÿ¬»ŒšõÞÃ/82<<{ûÓ÷¯žÿøîùÓ—ï_¾}#™ûóé_Þ=yñìɪbùÓ»'?þðìåk.E%‹#Ãp?úíïAúÝaKA¢¬÷ ¯\ÉŸEOàq9);Ç夸#ðø÷x\þ <ŽfD—Íš}eèñ(;wPA¹ “ÿÔWW`д8sÐ$#dÜ-ØÉUvÚ‹pÚe8í M;ÉZ‰õÞ‘vÐ9zAŠØhVfq‡wi˜æ)ñ2®x¹>ɹC#U<Ò«‹¬¬o³áñu'åIU¨jcpݤC?ð.ºü6ñ®­Ù@?Ù‹ü…º¥2Ç­½Hþ>qXº ,|ùÄŒr§›÷­Mal#êàRÔ›=OÙH@·Kˤe1ÁKHœPFœ€Á”+5 ·+lÃ׸ˆ+^^Ö‰Ÿ'_6§õÝ éΆà#l)Lf¡û&ôšŽ‹ÊÊmÔíqŸQþñ3±oü²®‹ƒ<‘l–ç(ž€D[®†£CâˆýãΙ–®+Рˣu½YÞ°hƒÃ5€Ò`²KÍê¤JÂÈQ áï…Iû K‹¾È /Œš=÷1j”êο5;ó,Qã<•B,†íóÑã!ŒFƯÃ,¸Ô®)HÊk„»?1r@µpdaŸoi±.h7/›KðäUàkÙèÂØý¡.ŽlDà1o }ÁØñIâÜìŠPŸW]äÁNÔŠ„02þ$I5ɱØM@Q‹Ü"/=ç³s×ÏŠ›¢g°á4ŸÙ˜=ùe—÷8޾x|q”åä. T~0—½èŒY‰L-ç¾#–Àtéüœ]ÚLÿSn¦¬›Ð Å›æ{SB‹sh B-,X-0ɪ*ð!a@íØ“ÎϹ\Š °Ô‚þ†Æ™ÜIÀò•²•²…yËä$³àmª–òÑ ’1'`qÌ —]êè>Ó‹[¬`©0éJºÛPŒOÙŸj‹î3Êʉñá™­Œƒ°P-D~Ü;ýîZÚÊN>9?ÃŽ'UèTä QX;é¾ðüž¦ý…¥õCötcw‰Î˜Üä ~໵3ñ, A´Ô¤²¥U>l¢ÅýSM{ vwG3Abü†^ÃÀT³²¢¸° Õy(=¦ ­\ßvmÒY$I(\Óì,› W¢ÉlÆqÓ~ë¬í¢zºŒ£Mr¦M6ëXéd¦QV†32“ûFÉ`îß?Õ´¦¶‹êé2n¦ÃÉóò¿néòTéà%íW[”¬ø8ýç µõö  ÷ìÊ Îü("ö?3%†ÍŸÿ.vÉ4NC‡).)ãhÐåÎ÷™.ÇMûIi»ô=})Ï”/â78RfT—=¦‹;ªï¸`æòQŸgsª#ÅTûæ)Nø…”pÈØj bë?n¾¹Ø*¯dnšÄ?]0„«†=!ú¾ªO5=A¸Ê:CŽ»Œ#Ü,1~ƒc͹+¼€M§šny!0Ý€"ú‚¡HRWÂÂýSM{yóp—qΑ7¸¥T8Š ê`ð?NŸÿí凿¿xòòÕOïžÃßì(R†Ç7.ü,>°<ö–å©õ~åé8YÐE} EÊ3³<ô›”î´2õ•S2.PM.üö£ìèw(…MˆŸ»gHŸj0’ŽïŸjz"ðP7T'ûŒ’ ‡v3(¢I>+‚ÈìäœeæW&G4)ôï̹óªÃ¹é‚l7Š‘¢îOl8í˜Åe»ô=}ÌâŠÏ¹cù ¾?v©þãQiqä°vëâŒËº0.hÕÓ´ŸN…óZ_嶎ψŒò†ž˜ —7h¤!]B`Zfad&]Lµ´öXóýSMûIvQ_CŠ3bÙq['†“âåówïÌ’¨’_®¬';­†]Ù|_B‹Ç9³]—¾§£Ãù±êø³Sò4‹Ã|Y\03­Šá™V…iUŒ›©éÒ÷ôq3=#Þñ|ñÎÄá CFùN‹n3Ž]°Oq9ùÛàÑ㦽’þp—q´9¨‡Gje$ýfúã;}’\äe¥ÇÁe‘‘ˆ¯å0ôzø £@0*)*iH œ&äº`”‡Ëó} PŽÆ…Ù.}O)µÍ΄(G|kâ°Ø6ÓÄKY±›súôÕÛ÷ÏMÜT›}FÚ¡- Aªá¼ Ü?ÕôA*›7qÜe$AÎ…±sE!Gˆ2¹>âVPŸ’_ºG‰4ôÉgœ.Èñ•Ã9¸ïý9&¶{¨ËHúœÉ§áWxô!VèóüÍ3^/š%@Qò£¶«NÔöQæ„i¢\Ôvu"j»ì‰Ú®&U'j»š”Dmÿž¢¶«ÿBQÛO<µ­7»xÄSIA¡t07µ›»ûÃãíýAÿ#ó%dzù¾QÜß+¯¨½b—: |¹P§ #q¶©o‘ÞEk\hÜ1EÎfywDœç©y?ÜxÙDÜ©€L0ÕH¤ËnÁ(Éõ¦w)жq5‡Íü1"‚~Ýqùf)½cC?·p¬’ÓR¡\¸‘dFÇ Üþ%•åÊr\ˆðª.8²¾v‘¡Fc‹ÙQ6l„€™ƒ!ýùtï’â7Óæ€¢}Íáæ A© ýè“~?zTÈ'h½O`¿€²Ÿ`ÉYà4/„ÕR8Çô~ÓÒ[á„õª0×((1¨ä‡Eª=‚yÖ ˜¸á¨O)Ûf :ïâÇß°çhˆ¶µrñv%4òD\¸ê¹dÈ_ßsÍ$üRAÁÖ+gà…@éN.ëõA­“-@F㺻P`Â×Xâ³}²•"kKEO¦×x„àrÐFhM)3rd?¢ÀžûÛ;.ÿ9'/Š b’’eDY.e»0ަºÅ­'Ц¤ GðêižvX+Ü—8Gü9&6r°Ï(£ä°Åļ@k8{ÑÐrÔÁŽº¸„¥=#NCi~ÐàawRä|CÑHwÒp—1ÒÊÄ]t`”ë°f æ®›(rn¢(¶jó}FU#ˆ5„÷tGa룼¡7#Ñ8¬õ$)HTÖèÑç°Žº£È9Œ¢3£Èy¢‘£á.ãhsfsuF‰)9‚”?ÓÒ£3Ž Èyu¢qŽ 5ÜeÜLÓ3@Ôyzì°ž>jŠfXºÓv;ùǢ¬QÂpA˜E–Jn|ßûsÄÞì2Ž*Ù0³à7tŒ“âB•å/öI:pîš $—oH„×”y|Ø>¦cJé?AÁÇâi½Zî(õìtyÖÅ×Ä’åÉ`¬ß?Õ´Ÿtaõ5¤ö>ËzšGÇ‹ŠdŠŽ=Àêz„ý¬]õzÑ'1c»ú(õ‘=˳*Uƒ4´Þ=þs ‡ºŒ£au††4èÀSìö2\œç§[_y`Bà·EN¿;XäAý/Bxöa-†ïóº’£¼,ðTöñ´!þð”Ô+“'¿iZJä•äi`|ì ¼çlË–Ýr±•GÎÝ#á‹Kî‚gâ45~¶{ôÒ{tDi.I’VÊŒyVéIà!ÉO3~J"OÒ’’é¾çdß8F½r½4æÆ1a3yaœ¥– 8/| ÊÃMAÞbSß^€  ¢˜\eû…T’•ä{ê,¿¨tkÃ|[Wóʬ`çðZQÈÀÞ¦Á›BW3S8²ï–ÊŠ¤¡ÑbEBÞ×V^QæG’_Ä”5¿]JlÑwñó[~´ 6’ø y„ñg±‹Œ¼ø oPÒj¡†·¢äÕ• E>¹o²gü“±(ÙýÁOX0ßùǽ)­ÙÅS“YU·¨=aàîZS >HÎÒšÅÈ ¥LQBO D_; ¼©a®d [ºù)/”S+¼y0eëŠÓ§i½Aâ{Ýìêý <"H½dÞS¼ƒ™°¼:å ·[dú™¡ªÝJuRŸÿŸo;;Á®§‘^…Ž~šåý•¦G?%µ 8úZ(¸þüò©EÒO#AÒO[ƒ… Œ%ûә밭·w·–p¸aVûÜVx[§0Aѧɬb(ú¹~Æõý’p Pü-Dž'Œ /ݘ‡üJN†¬Íîb\Ú5ˆQ¤±>Ú½üÖ’Òèž „'ÒöЄßDÝ$KQroIñŸwz.h¿:x‚vº®ï7'J\–H  êÜÕšgÑ‘K×5¯¯÷Ÿõ¤¥ úlô1'öcò×M&Ì~š‡ÃÒ}“2qÜôDšEnãa{úŒ’Îä-ñ [3éáûzßÞX¹9UJ¿¸è­M ºP«¨'h- F€ÙØrΘŸK9z ]¥è Ô·þ­‘º“­dî¸{äîqõfý­hkÞNÈps+ 0x_ßݤÀ`ÄMØJ ‚T?¼d7»•-‘IM Ãðš ¶ß¾]nÀy¸ "’öQ1›X7<áÀL‘ûÊ“-²¸þ"»´87@(2Å%o\º£›îP ·H¬Ùñ1Ë.ô,΋ã~íý9¼àÔù>cá…òa4{ó–²2ðB¹A³w0­£`?r¬NžÎ×9î²cÇÝ c¤zê3Ê4ž‰gÌMm7ÀÑÄùÌÏcÂïN,žiâ^í3²7/;൹ ÍÒd8À15êLOÓަKßÓǨˆçÊJÊ:¦q廲ÞÓf·%@ê0Ç=˳Y)O~6ÁŽÃŸ¸ªi?At;u²Ë8‚œÁ–äAõæ¸wb(TCáb5Á «žX͈‚‚:ÑšúZõG¸æo×T'šýÇÃ5{cÈ»OåÌþnb¿Ew˜ ƒ;ØZX#«gùÔ×,ú3ųªYfÚ‰²¢×;/j(­ÊN~š…7(†Ñ nPŒòQ¾jïŸÉL+ºÀýdÓÒ’9a§ÞpfË gƒÕ†UæD€ldØûéãÈC4rë³^2”q9¡Ã"§¨&6õbëP_{Ë#ÏCƒ?ýÞá’ù-œ+8tø*º ïyÒMeã/_¤¡»\ÿ–ñ á·O4ì¡n¦Nu7Ãag¨“µ A ”“(Ú§¼¨§/¢LËLEÂQ×åIÓc¦ÏšE}¿>p,4«T ‹×‰nË<²ÝãjI÷ÇBí2qËØØèËÙ »·O4쥶n¦NuGía¨Ÿà7…¦UQèw§ßB‘²rZèÛ†"å(ŸûP‡qvXðó/­ “EÙ[AkŒâ6ËÊá •(zö‚ÖÒvúåYT^-½ãÌvÃÊä~fiUUÄrÐo&dU è¸}¢a/!¹Y‡‘býp¢(Ès“´¥pqŠó‰µÖÿºÓžl—o~zõ*ŒQ›5º ‘B³l8F ÷ퟣbÔÂ._G·3¡BüŠ „£(5s¸Ù°ÈþÅy®û“‡–!hcbŒ³~K&7°¥ªÆ³8u=âh–ðûÈ·¾6¥:ÌÃ÷ÐÖãâ¢<Ìþ¥ &¾2®DÄ÷O5íÿ a—¯GÏ ‘È+ú²îæVô²_XÃJ/¿:JY*Ñ”-øQÓ÷ <<S •´×j[ž*×§ÒLYú¶ÅiÒÍH'Š£òLž@é‚þË‘y~—¯£ï™Øo~…GߤŸ=ü¨It‚=8 ˜ kž(p äK#â˜2Ùy7»ÀEÐÏÎDЛºiª§i?m—¾§$ã™8ÌdÖÉ&&!UGd|¦br:ºwqÿTÓþM;ØeÁλü†ÞØßA‚–¶8UfƬJ:s%FŠ|8¿ ÷O5í'Ø`—q;sŽòz#„máy5¶ð¼>LïLP'__0t*³á“÷O5í§Ó`—qt:—°Eý–µ1tâºÛÔ"t}Ôu#«¯µÂÆ‚âL¾u«­ÊÂp>\°i é™4£û÷4íçghwªË8*fçÒÒ~Ü£¢ èêj 1Ôä)¤qªMlžBq&OÁEÚG£°ˆ‡»Œ#F~.O¡èµÆÅ*i.ü~v&ü~æbég#ÃŒ›é™c~ÃQÞ}f|áã ôxÖZÅ› Yãþ©¦ý¬ƒ]Æ‘ <—†¡Ò­|„Ϙe/¥ï``$Ô{ÄšãÜJ'¹À߸ƒN‰ 6!¤WlÄzšöÓk°Ë8zUçò²~CZ?½ ¤Xz™Óü4½’J%.ؤ‡òLÒCé2Ê‘I]FJгsYF!VGö2ßôøOz›yfF&èY%`:íÀWâ‚It†¯äû’ó0¾Òué{úHEg2’¨Ç4¦†WŠáõ¯ªÀº¸RÁÂE¦„påe!¦Â›æžIspñö#ÓílÕÓe$UãsyéI€)‘w¸ ËGFØYyvD±š,†0 Oá‚Íb>é3—S—Ló]TO—‘$JÎ¥1'­U§­ÿ¤™ýV½f?!Vâm*\bågrõr—x—ÊÕ󺨞.#‰u&Y//g=6©3¼ŸhÂð“=ÛÔ·ô­åØíÒ@7— ËŽ4RÜ“ÆqA8™,Æl r\ |%µ.-”e\CYò}ûç—B§Ë×}‘s#‚eÙµ„©¡/Ìö¾éhTu3é*—IW ãZò}^‡U<î¶]úž>’PgDú*îX¥óá†ýÈ_úÅÕl†TeQsggÉg.ü¸é‰L„°ÏH/»Ù+ééa÷ì µBoÉØÌÚw÷$W éŽóz֜ף²d&I«/7œFØ•RØ™9.ÒÃ÷ ™­´Øƒìae+\r{?W¯1¹•Øg?~xdrƒ.=XT.˜ÞfÔ¤B.&äQz§­/‹dP’¦Å é°\‰qMGëÂ¥kbÝ}RaFñ5gA!5¢@;ßo/Òbrm|\ìðs§K—/Åf¸Å•ŠXÚL Žþ(„nñaɬ|éøø®qYAQQ–Š#þÉ`ÔïéÿºñþÅÎÿðÿ{ øÎü§\Ð’q¸Ÿö “2¯]áKäÛµ&ßÎ%Bâ`˜·;½R‘Ê‹Ì][îZr‘»i.%í¼_W¬£º;dÌÛíÞÀ…ÞI@±yMµq9ÏNÒì®èj ÄúC[Z&ÒI.CÈdX.ן«–%—XN;Õ§Yó¥¹á\P“Bª/R’¹9í]¹mÞ[§/С³ðN8%Gœ@ÙTÈ`(¨º´AÕ娣ÀöPÅhÅÖ“›Î¡ñã­ØDÍOŠMŠ*„zRÄŒ!©é“ÏâU¯Ô´´BÓÂM«ŽÐÔX¡ þ`‚Óz˜þU +¤Ë¡d}øñ n±€ÊEvo€·ªsÜxÌ©ãG€š£–;N¸{#‘u³H A¶¢É²W­¡ÛÉù§¾‘7PZ†Ά}V$sT[,éÿÏ×{ø¶jÆÓÊá®64š=è`”ó’_I}—Zƒk®ž„i>ÞýºèÔÑYo÷{6,-•œìØ2ò–½½cs(\g¬Ù±àLaÁû=€, ô0kœ˜8`9ƒ§v["ù(æýK³RT\!çÝ}Zw´ð~Ý`²)~{ëi¢¼¨l’4R0’0›ÓÆÖâQÃxú™§¢°/§ûõö  jɬ Büªõs½°»—°â˜ûzÁj²øÛí)Qëj‰™ZF/`·I!:Ãs›$%ÕGWä±`·I#¾_,ܯ…˜ ³Ç™€ìY¥È(4o)ài~y‘Í&×ýº„S!IøÑ(¡7‚F4ËáöÌYòùo\µ5¸’fIx‹U_xÀ*2^–lØe˜sŠ€eÖèžnÝDX„p)ýg"Â%g¢^ÂÒÓô”/9.ÕÉ>çÜDÙ ›HÆcÜD™¸‰>\補Ò´Ö¾_m/ÓíÁÓ˜lNDÑ'k²Ï-W0vQÅIdz2°9½V¿ô‘ÃÆ ý4wÔ#ÆÁšNàÿ§]‚'Á÷ÀŽAÍÎ5»–°Œ4‰àä_±}¢¹­Û ãëûåÞm&Í%‚@4Âq¡Z>–CË"Ó\×o‡5Š­ÚiPNú{y/UÎx0)ŒH|æ›èpÑÂðh¤ôëç÷7 ƒ¦.4an&ˆ­82~dCŽpß—Dlô÷õZoÜ£É`%òÑ\Óvš×z ä]6»"ªf%pŸTÈβóo¼¹¹GµÁ`ñx-»ÆÖÆÅ\„H³Ø­µí®6¥ZÀÓù½ø]JÂÁ»¿géeÏâ‹-ã‘h²ðK.êSµÕÇÊÁH,õ ¾ç}pWQ%¯îßžÔ`‚c­¬k¡“VdG}ŒÃÇ6€1(ãt7èSýåw“ÿ‘«éÿ}üÃäñËÇßÃ7ùŸ3\ã_Ov»úáG=ƒÕã÷÷ׇ‡»F=~Õn>›ûccHøáêûÉã'oÞt66FegpÙÂÂ*c]” ä;wMÈ®@ÇõÊ2ÝÝý,—Œï+½¸Zœ$ú_}:]ÈËšì™éà¨w†¿-`ïr)A:ø€KûU4d7SB§,ŽsûH±'ÞÝ­éhæ%Â[Œ[´]°VZÁ´ê±ä³!ú<s!"‰a÷ìãV†s‹ ª‰okNÜcG଴*qmõ°v \ÌqdwOA«‚zpÛ748¯²%NõåTÊ“2P÷VŸ;5$THtÊ_öޤJn·”ú“H’ùt6O›C$—1Â¥ XúÍ»6ÚÌïšÝm»©QU”÷²õê5¡Ëì«9 ÈÏ~À¼QÇ“Åsöò#oY“ G_ËQ,Bò\s¯a¤^Ýòܡ紿ÞþF½õÔþ6Ã’ýê…¯e6Ž<8µ¿Mƒó þöw:¼¿1*3ÃÙ³Œ,éÓg@ûÍèøf/G-1šÅfõÐÂlÞ7ªÆè³¡[mwÛ¶;>›8RÏ€«sØ€ÝiR`±´¸˜²Ob,ô=#“CJn%ÔíDáþW%í¿· ~àÍö~GÚ—&m¦kAF–˜zˆZ¤€ˆ‰ ˆˆú"M£A&Dü®"â‘«M@„ƒþOQâRÃøQßö¢ÁN"ο2-¡Ž8pƒ‚=±(Øi ÿšÞ]K~¢]­‰ƒU%AZÿ~ïJîb9›ú¹Ûëƒfx\ß×(yا\¸#R‘†-þÑ…ì`ŽepŽR:ïK¼Ùwæ>{þýO¡›äåM-ŠÅQÔS*^r'5¨õ¨K’0ºbãQÂ_#T–¡#ÂÎ!Æê‡R¨^gÈl8ƒÖ[ª@mÙµ….Ú+d2 NXWQôžBœ¦ËfHãä«  Šge=ULE»qaƒà—›VoÎÞhœ>‚Ö=7\󤡣<Í¢µ Iã˜.DY¼<²àÈ8´àè~íý9ªˆkÐGý†7.Æ‚«â‚Ye* îåAö¨kZ²÷Ö ;>Â…`0ãª$ ‘Ž §dÜBí†|¸hA¡QƒJ/°ºâ¥àLw\ªˆžÝN¯Û%yðpÒ•¹lĨö†2-M…¦–ß+Q4k˜/™{kQ|ï–µŠ5O¢Õ£¥xÄ6Ýpu¸ùö/j×Hð˜ñê©iž>ºF(|°=½r+,è5äì8p¬©@œBOn©œ'ÁÍä);÷ŽlY"*=ûWPFÑÀÚ²¢Bí8*O꺮A¿ùÿÛ²xTv&ɶ2)šfÏþ&4[x[’©†ü}”æºi¬c޼NXxTjò}7÷»)ƒtœŒÆÛlÜ—ÁÐ6³H¶y&Ûü Î[X}Ž$Evt³E ¥Ñèôðj©ëYXµ'áhS= 9°úsB{îVþ ^ŒØŠ jµÌ [ R' ÿØÀn6x³¹ÏâÒešcñÑäb`11ƒX«lºœ­i$!‹qQ ¸_{ŽYƒ}A>´”<‹ ¬däF¸0Ø8 Ü7ÌìIóÔBƃa²Ûu{  Ñ€—Ó-»¾a§ßš‚¥¸:–LæôÉ •Áö(rõÙ­2kšSþ°«o¨&¶!ŽçšËèÁCo¢`—=À±±ðI:çl°FŽÂ}±̲q'ñpŸÁ¯S ûßøÁúë¨$ô¿¦|!_‡"R$R„S.¼¹^ÂHÏÁ(6ÅìrÊÉK>mUCúÂ?_<¢ÔJÔk{Î[†¶ ù¼‰¬ÕòÑô"¢Sr ×/í'k˜ÍÚźD¶pT0$'2bu´@!ék/Õ"WÝ yî‚ ÜæKlìΡª 'k§¯Ÿ¼zõö)ñ ʦBo_}úÃó§ÿ7âÜ«BáîÏ“<£Ð¥¾ðö¦ÞÎI™+Ì ÊIJxÞD꥞ù!°w‰L!ÝØ…’[KmÈˉۅ6täѳ§o_¿~ûF?7&^'A𯟿~ûîÀ ”öN¥Ì|1<$Ž»Ãò’yRq:ù¥ðÖ€˜¾m7­õô:i͇mÎÕm{jèÉÍÓAþ‰ûµ÷çùª†û îÐrx‡òƒ‰&@ ¡y”=;Gi°C[ ÅþPŽòá$DÀ@°ôúà$mœìŒr\뙬”Ág,sÚ‘ì`Žsrã’2hK‡ú·RTB8lÑ1t£bCF«0W9Güœ ºIgùqQCÅÙÊ)ãÍ% £~úþ¶w“í·ƒR[3”¾(.°=çG9™õéPø¬—Ÿ&àÍ3à œ·û»5kˆjc ¬«õ)çê"§÷‚w Yn¥¾¡‹õ=ø—°´{®éHÅ]õgúÇ}»“§íÔè“MýYÚLZχ#Ž|ïÆñÜ—4wA¤Àˆµr½iÈÀÄdPx/WyµÁ¾EÞɼݼh/ŽÐQZ’ûQV92L¤ kÖoåÜYr!-~¢W<äê­B’78’ü”_dÇèÌ9î¨äÊÕ(1ú[›ÆP>)"Èövör“^òŒÛS¾Ð…øB]ǵ9x!'ÞÒv~¢šð®|?ч]­yñN)Z,sâ"õG«íöóäófûëæßÍÏÿÕ.ÔûzÑžoÈW£—üD<-ú9Ïß¾Pÿië Gmã scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_maint7.0.pdf000066400000000000000000013122371514310134000253250ustar00rootroot00000000000000%PDF-1.7 %Çì¢ %%Invocation: gs -sPAPERSIZE=a4 -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -sPAPERSIZE=a4 - 78 0 obj <> stream xœµWIs\5¾Ï• ÇwM#ÔêÖvÃ@A‘@’ɉp°c;1å…8v*ù÷|-iæéy9ÒÕÓêåëõ}˜œ¥Éé_ÿÿíÅêÃÄTй2Ègü'b ¶ä)xñ6¨Ü÷/³›~ºZ½X¹éÝêÊ\{ຢéÉVeh¢d=…0mOWÍX‘-M’ƒ•@Óöbõ—yµÞ8ë%Oæí$¥˜£¹Rv X(˜›J'a²¡p0ï×NÁ’IM4E/Æ*}ÇÆ5ŽÞ<;T~fÎÉœ5‘˜aðRµïlPý¨póÔ‘7'Js.d®ëSŸK,æÛAþ£Ú9›_”í|I™ÈÜzFýÇï…GõoS@y*¶@PÐ"pÏçiÃÙf—ý´=’oŒ¾’à ‚ÿ´öÉŠÄ®K¢K.ª«d] ¥¨wÎ&˜H¹yx ôr ÛEf†)…xÏ´MéH@ø.»ª ™=oÖ³{=¨0Ù´NWbÓ´ñņŒðjT?¯3R|h8\Î-E€ eQ7Éúì%š¯×ÂÁ:'¨ù¼„k¨)†ì|M–$›?× rt=³ýáù <ң̻Aùèáhhðp`+›œld’P(¡'òu—gYªù¤N¢TâÂn”´×¤R‡ _ÞèKÊ(¸¯Ö9ÕºÐèQHZyjOÂÌó¤&ä8-ƒ\<Ü{4&çvýsÓ-.™o”Lè76¿×’D…Ðâ]·Î.ó²Ž!’_k'Å"xo¾kjúúY}ØWyeS`ó#êÐ!Ìæù¨æUAš0XÍ­Šbì¦5kz KËš€¨iÛj¥Š_„qˆN*‚õȘ¡¢u Ž2—(‰îWÁÓ·;6/zþF¯*”aÒý¸S,¹ÇERê·6IÄÕ¤„¾¤ Nl³g r„…9íF_;&b=Ë€²Ž ³6z¬ö6ã†Ìðíx/ŠF_;W|s!¹€ó¯O¬‹â¢„„æDÖàYñzÇ\ê>+1Õ9-dü ·I˜ íhC¥ÏŽzÜAQ„O>ÜÕÒ¬,ÖŽ,”ôžêžf\¯ub@ܹ°¡¹|?i1Ï2‡ÑÎèÕå>œÃÁÌù=P öÁ^¼cÜȧ kÁ=:Úyÿ>=Ç<昊Ӝàd¯¹=‡°ÃüÑùwÖšK&µr£˜3VL;âkÕ4”½+¸2ûÈJìúÆëìQä}¥1%AÐj±Ý­]ÉC§öEøÐY‚©Rßõó]«žnñ=ôbõé Åendstream endobj 100 0 obj <> stream xœí\M“ܶ½oùGÌ‘“ªA€Æ÷1–¢Ä‰?*ÖT.N«Ýµ¤²vWÖzm9¿> €6HCî®F3ã)Q@?¼~h4ñó‚3±àáOý÷Åõ_¼>ûùLħ‹ú¯‹ëÅ—ë³?ïÄB(&•Åúdzô|$3 c%V.Ö×g?TÏ–+ΔNŠê6”-8idu³”‚iálõKx Úk€ê*”…±t]CI•Õ¸ e-Áh÷ßõ?°'‚Ë…gÞ€Q¡+Ls¿X}¶þÓ•X®<(¦ñ5_…Jð†‹Ð4g^z“šVh髱†±Ú©ÐU|»pÜW—á±qFh[Ý“òE¬Î½ï4ó6Ž;Ë-6ƒƒ×Rj…ï\µØ=SÉø”{.ÃB…kz mãÔç^™¡þÐwÝ篱ºÓ ¬O¦¼´Îa7±e4T¿/W‚q㔪ޑ6®b'•bÐé$Z<›f4>Ο[¬ö^k±X_ž…Îão¤´ÊW,ÎŽÔl°‚à€ ¨ÖKpLx«BÐŽ8ÜTïSY;iDõïnÈó0"…s,mhZsì2hKÑLQyÏÜŽ»nç…1¸æu‚†à}_/”˜ …A„e˜3ÕKbt Œóö—qå)Ã-bg/Vãò1°/&>:ÃoìÝ0׋Ckñ¿` ὑ¸¨®A-ûºmäfY(¥™¹/f>㫞ñ•¶3¾l¿^'¥·ÕbÁ(”öªöòÎRï£ý4Õ¹& Ch.9ܺøKéiÉ—e UÓØOKü·’8eW„fjwŽÕoɉ9“Ü{Þ‡äPµZqœ2”'ì”°³²žioç2ÔÓbèC‹–«"†îÛ"©{ŠÕnYÒ£dÓþI¡eM±O­ƒ‘ÎA„Ögaÿ1 D°‘ i ¹’™Ë¸ì'Yç&ÙÌÖû”¤ˆÇC£[ ã=éÑÝc–Ù±Ôäò0¼à¸ xqº¦‰=Ž»)™†ê[Zã2ÔP(e2mD*¿Â-›ÃÚBdý µq h 0®ŸÞžŒ“U”¨eF€"7ò¬õ6‰¤•·ººÆ"wÆ{ü]*;ÜÛR'TC5)EÚFɼ"û”cì ½ ÒjÞHÁ• !ÛØÌ·è¸Æµb?m/ÑòÁ²Žã ÍH¬¤³R) Ñ)ð®ú5”´q2j)ë¡àUý:ì4t¢NáÍÎp HL‚Aefw”mF¿%¸ó"è!½™¤Lt•Ø,Õ ½ ±{R'Æ´¬E·ì²vn3Ň …Y¶Ï‹²* 3-MF¡¤Â]ðë†)äéÓÂ[Xf,B0€ V›ý{‰+<÷;)›‡r¸FmcÞ%Z‡ü4H§˜ò™û1=•Êfm¼Im(/!ýPbMs4gï™À{ETÝË~µ‚¾”¾é"bÞÞcÑÛNy=¥’—>ÿ=G[fRÔ.ñ,Eí¸êwêÖ/âË88é2ñœŸO†…Ä$‡ækÓîP©}ÙŒÐf‡¦´:šóTe}sh ÚÈÁ#â{29tâDZa9Gè¦qH°q€êÔ1IçLds6*У³ ÐÖÛúóÀ¨c¼ ÛRꉤªù}cð™£Ráã>6¬×ŒW± ü Û~Aêß Ô‰úÍ0#†TþEPùZ ŸE‰‡zN›RTqÔ/ ë­Ùåð\IŽHSëâ¢üœצ·!U ‰WO"ca$öDk\±…—ñ¿‚ur^6-<‹ÆK÷#kU1!:ù ½¥:“Å#÷Y<[±Û܉÷„Þâ,0R¬34œi»wáCš°Lg‰M Ôl;e)–4¡²ÏÛröE ×õ¬Ÿ¾o‹oFá 9½ïï”Ú± MÕ_ÆGKóäA¡­hê¹¢:¬¾=Š:!ùƒr1u)vÝñÀ´ WÔ'„ÿQ>h@<_n‹ürY<­ýpâ—ÃESÆ/M»MÚ LRn|œ³sAf\ w*„ÿê«N@*–±ùq›€îAó¡quÒJа›0B°[}Ý>}[DÓO£¸1¸FùÙ€s|ò&¤M”9ƒgÅ;ÅзÅŠ4tÂÐ'ÁÃÐÃxHíCÏÚ§¯Úâ»í CùÉ)Öð ¬&‡Ú3‘ âúo%Áœvì ,“wìR1i…˜¨¨Oâz‡hÊÏTWÚ2pz¢2RsÐô÷S(èHÑÔîÏÒ N‹¦p".Õ40é9`úç LǦüx`^\q䈫Ž+~{ÐÜe)B4˜8ísCzÌõ©²gO (¦ânQ;f¥|Ó‘8„Ï©´³î’ºJwF)úµa?Ù1V¦IÙuR£÷Â7‹1’>§ùõÃdeŸ**ØrU'‘|Zºã¨ Ÿ¸ë#G© KÒãµÛâÏˆŽ¿+ÜҀėm‘\Jñ¶•ÿDó“®ÿ§"ååè^@€ Lþ©6µÛ;ºaðf–ò ÕVÀ I6’I¼0%è%7veZüزê+R‚´Þd™ê”Ùihª>m’èZeàË‚rv>õ>WmÏ-Þ™B~7”³ÿ±Ù鉚¾£Ã,Îxfžê‚•ˆkð²ð 0ìÄN‘§™Uà gea>žö^iïÑôd5ÚCÓÏá›3@—+|HñŸ0Örð˜Œ5‘nw¬½ð yÉ׸/¶;c2¼ÊŒvhœÚ Ý¢\@öè†n·¢¹@µƒmAƒm7|W¤âu±ØÇÀà=S¨ÀÓbàPtPÚ15+æ²hµ«9w¸ôÖþYµÌçEì%% n}W†Ù1‘*ÊzÙZiî&IÁ‘‹TúÑ;ò¡f­tßZCAÈÐ6‡¾:ßv—ãrQ1ã]&4oíÁá *Ùý€³ið)T©=àñÉ¡=¶ê™)·Ûë_ŸZ1Ø#Q…j¹X)Á”R¾{9U¨ó×õÙ¿ðÏÿo¤Aiendstream endobj 151 0 obj <> stream xœí\Ks·¾³ü#X>í¦¼ÞTù(®8.ÙåÈtåå ‘z8I™¥(¿>Ýf¦†³ÍÈ’¬ƒG#,€¾îþúüzÈ™8äø'ÿÿøô€>=øõ@Ä·‡ùǧ‡>:¸sß«ÃÀ‚•V=9H?‡B¦>´N1áÔáÑéÁ?7nË™VÊé°aÛgJ'ÝFµ_ËíNm™·›»ÐBr¥‚Û\À[Æ­vnókË·›‡S¯ãkÃW›_Hgølœñ^nžnwJiæ„,^ŸowÒÁ_„ڜױµb:$ãäJ+±ùwG+îmrLf˜fk¼4¦“¶¡Ó¥_÷j»3R0¡®áœ9V=ê˜÷~ߟ½×£Û÷Q «2„ !CÿuôÝÌh+îýa_© Gßãë ‡qÉ6=OÛÁƒˈYþno(Òc÷aófk43Jj:"íáEzöÂyÚä™7m¿Ò2ãQ™;Ï/D1Õó©Ã3Òáü‹Ós–sÊæ´ÉI(T¯_tÖä&Àa%Ç BXIë˜Ó¨²ŽN@=ma/5¨ú5°’AI&„¹´¾ínè~‡ð5F¤Qö¯¾%H›?›Ù{%žÞ7Wv—DÀ*üŒ_‘›¸à i¨@¸vx­qè™ér±nY0½`á}tk„®Qör¯©dC…×+tÆ«v‹xÕãkü-ÐGi€”,ˆI²N ±0AÂL뤂 |´Ü.HƒÇUƒôxwz|6ýŒ´=žŸO6äy;>ç)ÌÅs2#gKz óã6åʆu^¥uûµhjÅJq¡Œíh¢÷ëí<*ÅB›M@§×5þûz…¤­J m¨.ÄØqVŒ0Q´Ú;c,ãÆ}BxQ²Hý:8i»7Œ“—À=(cã{æ)‡Î.IÔä­0Üsú{{"8¸Æ~*šEOHáRîܼÐè;°ôÞ¨p¸s+š4B'ÑxºÍ(žV}]ĵ¶v ,8[žg³¯x‘áfp/mUë­Q¼LÏЋ¤¤ÖÌT²ù¼·Í“¸¹0a™ö3Éõþ»†atÚÚÜ1ïmj!¤(†&-Þl`¨ašJºLÓ€»nèx/I§qFà¨úÃ3ì-H•‰½p–1}‡6QÁkïmPܽÉAJî/r7¬ÀT÷æD^Ó_Å9›f± àÛ Òiã“`ˆøh<×-K.4øÁWÆ÷M —Š‰ÍŸ„à†EΖŸ€oºJðÐUù=†=Hô–NJ¹Æ Ôñ­(û0hZœP.NM4'n87ÂeÎj•”Úlý„{#ait¢VA >´‹Näëéuj¡@¦©¨ yhmQÈÃ}1z^Ï_©D¾'ëÑdÇ-$Úõt@ñ¹vZK”|H´ f-Z¯âCÿˆ ‹ T”&út¾v»Fhu\#xö€I-÷ŽB}º<¸»ïHföÛdyå&2C¤&úðàI±ÿ~k-Z«Ïûý¾û]…0÷ÛzÂü n¬4&ˆ’»¶ƒ3mIUíÙð1ÆiÖ„ÎæÈ‹!‘·ÉtqÝ÷ÖCìŃVßßS|Ùr©ÈBD¦áœõrÆÝ­?Õ|p ’Û†S´˜HHñz”§ÀJµ?¿?¬,’%N£Q]ù‘#‚‰Ù\¬Êéƒàà?:TðÞ·øúÎŽA¦N|œ.ÅK²æTn;RÞpcóÒ}Ĩ©Âæ)&¡ú³!#G'6å|BdÞZVÅ‘@! µ*‘äZ„÷bDæ3ȯ ò»Ñ)VVo=à]ðªUUqn‡ xiÝmÞê%Àc‚É©u€—7ì°’\Y³F¤JÂ|»’2K>‚ï*ºÆ¢0ifƒ/L÷%ˆº†=÷ñxIå5òÄóGl!aÃaŠÛîÀ4'þ()(‚Ji@¦30â†-S=Ä©q÷Ó†`ʬÖ<Y)ÓÌ´ŒåjÚeWì2áeYíç»ùaê¨\¶{‰±#î˜3·ºqŽF}¥ ô ɽÝèÓ,‚窈ETT·ž§"XºfË„(Sêý'ÃÛYqÆhš͵LÖóÄ΢׺T¹Íƒ‹–Ãñ´g³b$?¼,¸(W—~ýDVô]zDØœSq°·¦üËy¥J 6zÚÇm.²´åÞA3õYqü¦@ Ÿ'¶“3n È@j²"Í1êÅü)%ÂUj#¸Ã#Ÿžr)Ñrç¾Ç“qLi+ËEŒVë S$-ÆÆ¤¥Ç85n´mW‚²,JŒÌ‡RX!m °Kƃv©žÞj)QèÇÇcúˈ-¼U>•u9é•År>lo¸S­|ŽK$ÂÈ¢Ž¶ÍªZªÏšƒãÛ¼HFƒ÷f¿hïžµ­!%7˜¶ÒܲJêF°vÔ‘+ê%.dQâðÎÒ"àó™MÏ?Œ)¡ è¬cA¨‚Êâw©EŽ!ôRsÇ_S€Le³_HŒý)X³Æ¬µ.&Ò¦JCö~z’²®ÇôcµÖ¸ ø³ËrªM—;NLÌ=­/ÔYIÅÕ˜‰µŽÂ£þ[¬u´\›Ü">æZG‚hÉŠFYsà '­@> ec ¬`ÎwGk’Úï”,¨þÒ7Ö8&ér¤>.§A?¨ì4|h,DÖ þÖä’‹­ºHÃbuÖÛÔD\]–Ó3dËΖC/¥>á#a_o°Vw܆¯°wô.bÊ”ÏÓ_Þ™š”Ò·úx;é×^.œ†+¿9 — ȱÜwüøYf¡&]ÿÄf+ÔЉ…Òó¢—D&+ljèÞDhþõÐ61‚&ô”ÅQR=i™DïâÙë„Ǫʊy†ÙÒµ!&Õ¼Ü0.Ãÿõ<ï v¸ÎÄÖ.\Ÿ„Rc¾æÜå Ê7•ÈdUÇ' D:)¬©.ï”®ä@®1…¹¢Â_j³H€€¿ÛzÀ¬4bpõ Ô,•p¨i`Ž”N0IXX5X“>yéSÁqíÈÎJÇ58&ÜŒ ⬜êgÙ(Nè÷…”ºVöØH›¡µáZEXÁ˜J(’ƒ) ]TÐnùVmC㺖Ì ÌÚRÈ{Àü¢Ø³Ø£öš;•˜­Ý©l/¦=ó’œ~ŸFü #€¨luTà/ˆNžG5jjÅfÅï9‡”² kk í´HÇ‹l}¨žöIÏ•w¦¡$ãóWIÍj¯*Êœ4`W1Õ§+°²J÷b@½ÃóY‹Š9ÉDèx¡Z¿æ>=Ò´t °[,ú»MhNT·J÷âØ$–Q&Îð´ƒ÷«*ßa`9­~ÝJËZÙÅ*¸aÀòÁíU®åööj T¸«,Æ,Ä0|[ 1੸ø‰r 1Ü ðÏEŽ ® äH Êæè@|üÈæ]’ "˜¼~a è;ñ3m] ñ9Ô¿HX¯Çù>ÓBPa*,k¹tk†}èºtRÙÐpéâkÒbùøšÆ/š®5(ÉrÜXë}K›¡€¬õ¦ŠK É@ZsPi -¨¾y”ú Þäº)<‚ù67P½4%Tƪò)´Š°j‘¸¥J[Vs»yFÚ7ÊûâGÄ]<+6ßnÇrÎ^œô¸cºÑ¦<¥:Ášž—=%í{J‹˜«¸r‚Im®T6hCýël†1–?Æ?’ê4ÞîïS‘Aˆg–VÛ†,p à™Je@çA°l¶”½az¶ì×4•X‘E™èþ‘ 8Pðs×Ç¢±™|Õ70tÞ.#ìß»ôÒ‡ÒÒP2i¡ùüÜmžH£d5ˆG· Ó7Dr§g˜µ*Æy°¢ÒÙÀ2£ÛüôÊRã¬M‹—ÑHýÈËâ®Îü/XkTχC5¥‚ü#§LÅ%ÇZ9ÍiÍèYÍÚÅ=´#ü#䛋žºæa$æð áÁ [NµšÞ|›SúIJdz… ¨”Prr{7Š wZ‰.÷X¹Á±õbø8e1m÷<Ó!Õ«‘ºN¬X6˜ç¤((%÷ÏU´mX'äͦîbÒŽÞ0Ö/Ÿ™%úëW3=´å¡Ÿ£0Ù“GÈÄjýÅÍ„ ¨hü¯YaV mFÃÝ|Vb lDØå+ÄpN^åø?ϧ2ܹykEbÜ ;›§g²«ÓÔ ßgÃæ›n^¼Œ$ý‡œVãUúüò6±^ÞôŠª¯èœäùù¹†Àe®@˜šÀ÷ŽîWÍH'IÏ9襦TNÛ†N³»„û¿d‰çGÒÓùµÖjò_˜Ch½·Uät£L2*¤ÎB­…ÃÜè1õà;ûÒšûD ƒã<&bNS 583.¥T£3tá=ôܼKF ·Fïi˜ÈÈâ<\0’çÈ­×0=ƒk’ÊÙóÝ+ôzÿ ½tæ—ÔM¼.å,µ7Í<GêyQß`k Ÿì7ÿ!Œ¤sâ¦Gع¶+®#‚ÅgNø>£ýÍT³è$>?OÇòvbÛî1íæµ‚ûú´sô,¨ q‡«tª0§ïÖÂ\iNi(âUúB+Ec¹ò¶¤~]wèyÉv'°KÅ¿q"Àúh nö.ÿ»”uܳ5vïÌVe“51Åýí”QíÅ=Fe8l˜÷‹1Ãü1ý˜áo.!Ê:T/ëP¯`¾BÙ̓c­K¨I¬Å­ÎxÕ!¨kÐøÌ€¡7 Â<àKÀ6êÍ×ÓÛ¯§Æ?Ložï5g×)‚^ܧY7ÚÄ'õ§”ÐÔ6Œþ×iÁ¤Ô{ù"šÄ¢ys d‹5ÏF ¯ú¾ ¾¬È á&§féúHøZŹïP€qZ48Ýp¤#/ÛREIqÿîÔ¥¦PÉÏÓã½hg”“Ð÷=llcyÅ '¨Ç/'aC~ ”«Â «Ò·#yV‹&°ÇÀMUûu¨Ó ŠV¤uSï³ïy½AÝá\EÆB Â^† °â À%ß ÎZ³&e)WUEôR`ÿæ4k×Û•9;Ž h,ÞàVÏ_Ù àÄÕy8UŽäÏŒgÎ;ÇnÊí‹] •žF¸âpßpˆGÌ–W&0™sÀYwññ8+D¯Ux;à*7¶ºVÉ`vdF÷aΛ*_cHbÿ]ŽÃ”)|ÊÇœ"˜ãu% v§}uÔ-¹…¼B²ô†Û³…—´´?±yíNít4ÊùD³(b¦…‚•L]„ƒÙ´ 9÷Ò˜JN*J&d}'íà,—!Ï´ô*èòªêÒN¥[CD îáÝ[¢ Ì£{QŠh É•77¨oÅ›l#kF&N¨ ªÄ.}[¿„…ö>hÈ.7û«óÙ¼YÏ"䳊XS®> stream xœí=ÛŽÇqï ÄÆÁYƒ;š¾wËP pKò ú—å’¹+í.©0Aþ#Ÿ›ª¾VßæÌY2öK  ûôôTW×½ªk>_v¾âñÿ/ߟ­ç×g?Ÿ1?zÿ÷òýùžž}õçnqškyþôõYx…3®%ϵ 3âüéû³ÿvqÉ–U2éo..×Ee-?\á³TNÚÃÍÅ¥Pð]koqTe¸9<„áU¹Ãk?,WÍíáöÞÒuxGfÓçÛ n)?ü“ù*„3‡{\ŽÃWÌá9@Wg,‹1guü²0°“;¿)­œ;¼ s…ìð¿¡¡|#ONû3‚.ñÓÅ%,¬ìZú†,±a™±Õøu‚_^”F „’ôë/ÉâW¥¦Bô}XNNߣõ8à @}îQ ­p”p[ïìû!œöêVÑRH[\c]ŒÑÎøùÅ_žþó·bÑJe=}„ôV^á%¾–÷`‰§àF§]ùçˆ0 ÿÌÓ•;dNî>Œ ˜<€Ïc:žŒô!D—ÜÁ‘9q~É8ºf²HDÆ<Šˆ$¼D$¥Zž,)ð}QÏ™>|¤ßÃ÷ˆ&U0N¯É¶èüwaIçôLÄBèž¿¨×Ë*ЬØ$î&°‰4aSTÏèw&¸~ Ð[¹«ZÅlè’mÅ S³Õz&µ7c=`å´'æP@J§+Sm$Å‚ªãÚ´tøM.çÔz¸ÚlUÓ1AŽ8“üt㊞®aX5›€}•Ɔ{'¸Zû t›—Èã¯D;Ê08b›˜„yø@¯E{C–¢¬Îý¶9T¾¬O{ÛQc:§¡Y0Óµ"G¸-W*ð Ø¢q‡qT®¼ó›¶bI¦¯£ÏÍ6/uÕ<þDõºöJ8;~Õ­l5ÔD¿K÷7 ½â?ŽìÄ+_¬’I¼vŒÏ¼2Ûászи¢nâèžO%‡ËÊÑ47‹é'FgÂÉU$ñ¢k¡Ó‰Y8ݹ´º ŒlœIh0rIò‹u‘8”Øë¦Á?Œü܆Ž! :ƒþ7µkÇo:’œï‚qNÍ1¹Í1’Üh˜,Ï€iÝÖ¬ð/67ü&þ»mBØËíDä'½Cøw"VgÚ!¼Õ’ŽÞ,XØ#ñŽñL¾úΚ*ž¯A —8òïÑ_Sx N®‚ÿ ßŒf&MþuĵicàyÛ×GàÖ‡µÑ!^ lÝ…/üæ(8àœW¯ŒªÈOÐì7³ªVÈázj›ãQÚ]² >"­heŽº¡uq’tãbYkéF~›ßDä3ž¾Ã`mçé›:Œ=}¥fL‡ßØB©Ä<„‘¤ÕXUÅ—¨¼¦kPŠzÕïÈ8EÁ$ð=[²–ÄR)ðìgs\´>ÆR|U0ËžÌRÈá-KIÅPfÏ,,Ê0Á„fN´†B‘¥Ú`••ñ™ºô‘¶®Åº,Rό߲V_è¹hàˆyŽ¢ñzÞ½[´”ÍLOš^)‹V‰ rþ™Òhoêúéô-Ó>Kï'êpîxc’«ƒ'¼!6Ì~8LcÛ„T›¨)[6LTb–á[ÚVaJÜwk¦>úÄC­k0+yª¤n=HññnS s¾-s?Æìh&><Óte–ƒõ¤ ¾ÖÊ”íÌO/Ùe’÷õ|!V0Ö6Iõ·'dônô l#hÄ•Fî MOì°yQÄÐPl¤ùù øÓHÀ)ú)h¥B»‡ƒôóu_Æj¨ ¯F´Õ*“´QëŒ"ª|R A35ŸêA†¼[kRŸ%!%ø2r®$ºxiŒ)J†3p«FòÙÙŽ ½ÑlVyT5Mϲã½%Ôi¢Ú›«Zµþ™ÁðSw8-ù÷tî‘DORèHV1 ²á¼÷!¢ÄÍ‘ UÚï(Ô™…ŸiHt3Î ÚßíòòkK¨ŠÑà?ÿã…ÅPCWŸ…AyL¼uFä$ò1Ûä×ecxö|zögÿ̱óëû3¹¬êü—³õüOglµraö\Z4¨Øùû2âV@µ<wö=ެq >ÇYŒé·4âg±jŠ4äŸø{5€¿KPF¢™ €,à䑜¢1lŠïÙz©<©ZÐÆ±VψU ´Ÿ'?/“ïË(™ð¢Lx^FïqaæÃ”ßÄoX±¹.wñg?v›ÆÞ¥‡W¸ œ³‡Ë´¢ÄŸÇL.&óýÃè ݬˆOk5¸?Ô/ôkù%Þ”7ûY—bYWVÇ_ÒØ’>¦‡+zq,Ãu“>¤‡÷ þ.}Söý?il-H •Ezqœ•¤Ds`äȶücw¸qn< G‘GÉ#–…ã—CÎò °–•U¼<# ïs…³–bGÞïù‘ÂûyJ`uò{5@x¿š’6S±pçQåãàR.züúô‚ËÕ4³©ùPæ£s‹(»§ZpSc’”zÖà&®«Ùà¯=KèÇàocc¾„Ü«cÑz ˜ì]ÿîÄh½rƶ‚õˆÞžZ) 3øúÈR\·4`ùÙû@;Ìàæª¹ }›ëŸ?+ŸÈ—';UÁh•i°Êxn¼ÿâkúÏ/©&|õH©Ã$Ñ`oãÛŽ]È~£Ý¿`Ír’(2"F©Œ˜ºÏMd™°»Úwî.1âÕZVGÛ}Ò¼>}rf ‰c. §Þ–P«˜úb—jRû 04ä1VÎ3ßüþ¿$b’êÔdNb8cÒ‰|yÚ(Ú>ÕÞüNÝ7“çã.f *XýFô¢Ðôu؇(ž|‘ÝÎÔÄÏäL¨<¾6 þTý6DçîV>Þþzr?ñ¬6:™ÅS…o$†D,/aQøæÁGgV´H˜…ٌ̽¬ì¹§±6ŒJó̾?R "‡"0)¥ºîÚµ¿L­Ê‰3Ò´Pô„î䦴nj}g[Ù‘R§LA€’„(~@—Õ¸ôåô´Ïo¨èœ–Ý%»ñÔÏ:-b¦!f+|©™à@0 Wј$’­™æ®‡ñ?ªw?Å ¯¦ Öù¶”zž ºŠ^‚yÉ®ç¦~Ÿ­¡˜ H„¥ˆWßxjãfZ¥ˆZֶ̰bm¹´~ñ¸ÿ Æë»½€ïªgÞŒ×nr‚áÝ®â?Ãä¸ÄyÂrÚÔ7IvX³t …÷Gäv¤µVÞ.½[ƒdÃ@ؤ_Üô¢ºß¸Ñ®9ï XIÑ~“6»Ýå “™¼Íû h s«¯l:¬¢Û{ÉÁ2ÅÖØŠìùƒæ§Ø^žÂHh{q,©›7§1©IÖNø6U/Ðjv¦®ƒ}³BªÇÝÆ……f¾QfßÁ-t Ž¦Û³›"a5vN›]/¤”ß„Ó}C8W_[ÓÅPz^ Aô;nÁÒ2Õ•Éö$êùu+x’—ùªLi1å|À°²öÃ7¯JȧÞBð¿ÞAù_kõ|-Êk£Ök]^$4å£<0(™êô á»>u¶6¿"6qKf5½’ŠK‹z®M­K$ìͲ)ÿb{0´UBí\¶•±8NNû{»¾ÁÊ1râxášà*Ð!&Ù)˜Nž]VK[w9w2èf›Ì¡ãU‹½ÿ¦ëf}íýMü6ˆœÓ=òTœXœi Á@ªo«J¬×Ú•ðärÄÛC*ýW¼Aâx¥3&AˆÊ|Iø¥cÒÒ¤,E€ÌrÛÈŸÝðÉSS=>7„GÍaqá… ÆšÀzËἤ†:nî Øë¼þj#¯o3Ÿ~VÌžbVÜí \Ì$‘Ç…õ<Î)«!mžƒ—œ5º|Ü``˜›k[|ÓÚËqgÄoý$µJ¢áØzÓÆêo—ûX|Þ߼ز<±„aÝe¿f j_mV,>ÈÛ¦‹H×hÿfÆ‘*Ìw÷Ø >Ä¿ðÐÚ5áÊ‘â/‹¬¹#ÆÐŽNb rU¬ nÝþ¬0a(¸ØHy–£¹ÍB‚8º÷¡Jdµ†öÍÝŠ@² Ä?Âñïä#ÔÀ™´—RÃ[B5bwfŽŒ‹@fÉbŠ€O1 5Ë(>ÂÆw¾F—öTHì™Pº'ü˜Ra§6q~¬%<«6kJ j@’[\Åq|óeÖ^†Ì+´ÅP؈©.¥Pqìº ÃhuÜ*urÌËEh½´÷ó’?¶Ã\Ÿ•1Q{bP¥›¨”åç×*ßÉ·¤ðþ˜îI®6ÌI|‘‹Pd…k «êrs‚‘–¦6%pÞ¾„:È„[vý=„|Tz×|îÃ\©:…+3Õ²lƒymU]9( tŸW÷°Ò1ç&7¯CáµÁTk†uT.y@0Ç Ä®6þ>¼*äð¶©Ùlîx9/€_kI1ù¸T…´8ßÑÇäT‰Ÿù"šŠ°:ï.ô3ü³)Ü’ ýL€ÄYÕÌÆþVšy¤‘|¡¿Lñ÷÷éïÕ@¹Ð_O ×÷ 8e¤'€ Lé h†ëµò¬jõ8ë‘í<—°ÛÓÎoÆq–-±·˜G 4^§,”ÖW-:ú¾£ e”Ìu¸JïÊï»s÷ $Ë¿v'ŒX¹‹ú —M@B ?÷ð_åñ«8Õ‹LÆ0]²'/ýGÓ ‡ùìßK~ÿ6}ìu÷ª +>\—„Y¾3ƒ~KÏ.·ÚøTF¯è„ôØó+ËVš’>ÇKc¬&ý<‹0Cž5í‹Q‘oî‹9P¿¦¦å¿,4w×n¡%ʇá„Wù÷(€½|ø}v.˺ :m¥o²Ñ6% #–ò¬oŸ# Vìœå𸦀P7“ÄR³”-¹ßÏWƸï¨Q¦£(Ks1çß•¯Š#çYõ*Á3¯8J÷@ÖFEYçåÀ¾?™cF=~záuEÞKdïÉõˆèi'O˜ÒŽÃ¬måɤî9•çT¤Ä?‡nt#N¡››rv×E]¿'ÿH½KÝ4Šdðrî‹þZÙŸ~[ŽšâÑ`á˜ÿb[âÕ0W³ñ÷ìÏÒ E~EA„­0ßú<7¤"bû®ûÔûšàüj„|ãC?r]ôÙM·èÛ2«9Jзè†#<]c‹Fß‚oK&¢Õ‹Ä¡ê°L{Aþ¾"u[wT*“(­Ûí†JGH>¦ákž²å)”}=”Jt4Ó!%rOÞÂ6ð¨ln=fEE¿ÊàÐÉôûm9¾Lh™6ÃMG ÈYž¾)¤üP^È«½ì¨'¯ÿ¼EV’Î^„?”4‹Þ)Þ×’©U"Óô5Ì,« DŠ)k/¡L¢d+?«OŸñ%%©:Å®ÿïJåV›Ñ¾’ƒú)9ãµ±VfÑý¥YÜŽ–Ø.?ú)úÿý”‰Ÿ2\4ÉõoÒØÉ~ÊpÙ¿‰Ÿ²Ïê"­ ê.‹á±-e;0bc¼ª´¶§Â@ÉhWiΆ?Tjø7ïÄê‹!;™¦Gh™E™.Íz$‹á_ À\Ïbæ½vœÅ*€ŒfüÅN˽#3aÁ)Më‘Úc<àg¯ê²²É$™Y¨QeDÄÐï|*}EOV‚ÍZ^ƒù?NÅ¿˜ó)±—ƒ¢$™È¯j]™gµDú9Íf$±\Ù“¤Ý$IíYå*‹SúÇ>´‡“d:J8%A°_6}i?K^ÙŽëbQ¹¤vx«Eˆ[pS%ÿ ÐNvull„ ?_úþŒ/à_¿–Ì»Ié ”Z˜c 7fÃc¥L˜'ük‡¤«â&e5Ù;$õv(¥‰ôëÎñ•²(BlõÄn‡{¢²=‚žftט¯ÞÞ ÑYO^Ðtºg¾?Ÿý/¿â­Žendstream endobj 212 0 obj <> stream xœ½]K“7r¾OøGtøÔ#³‹x?¸öÁÞpxåØËzéðaåÅáCgH‘£¥i‡ïþÙÎLU P]=3ÞÐA- H$òñe"ýr“<ü'ÿûõíÕó‘QÞ}¹2“°‡¯WâðOWR3Épp^È)šÃíÒ EÇÇ«?^oüß.½æÖKÞ]ýßÓ|ù_¯oÿð’fÖ3Å µ:¼|{•h’‡&e ¬'éõáåíÕŸŽñú$'i ýß_þ3|üæ‚©%}ª'mm„Ï_Þ@çûk1é`ŒVÇ7ôÓF§_–Öû듘<ü´áøâúäþEZz¼Í­^8.ÍwËpï–Ö÷ËÏ—wm+ýüŒ«É süÛ¥õïÊtê(¨UÅã×Kã"íñyþ;òAª8Ii'ä·‰*-ÿ;Ö#NÖ¹p¨þþ}™áí2Á}i{_~|.?V,ä½>–Ê›¼@£Ú!àÇ«òãõ2èûU¯¾D Ð(µ±D3y@쪜Kÿøòê‹#q6p¡öÐ"t-Ôs/&æs¯KÚLƃAõ¤´O-g†ß’mD*ŠlO‹ÐL —Öõ‚­ “³|Áyq¸hS“²ÐË‹É[¤té»ÔB½ u1žýgb[ów'àEÝ%óq&§åõgƒ>ÀˆN9Ã+•›¬9€¨ÈÄ×ߣjK ríHÚŒÖ@ hàI…ÉFc@Ì ‡qÂC×'-@€¬u…fëmŠx ?´)¡ª/¿¤/µ¨FÀ}#œ ¤F›è-jºœ„³1ÎÛÊÖàl˜óe[ÑšHUð4DþyßkÍ£UFD°Ue´/dß¼ @Ù:cEš¯‹7óuÖ{w­üd@J«/‰ vR"Ts¾O¼ÔFËÌšóWÆâÄ4m½òh2p!|Ù§†ù ¶j$ óÒù.1^ÄPññ¾ðǯøKk*ú—ÝÛC ÊZξ€7‰" “‘ÇV•§Ò‡ã·kÐ!«¼;>ƒÏ$L]30.Ä_ñŽ3)SjÖ²X~NtXéŽfÝy—L6¬R+.Õï øð‰.V#NìËw‹ƒ‚f=DÁ|ˆWêøÃóx=¿åÀׂkÏ÷jqP?6¾Ê +\9³®‹S€¸¡ ü×Í¢,àyŽ6iÁ“ÏQÀÛejFæOËÏÛé v&>!A®{>žýüô&è®KÅm—o м¦í…ÐÌvSlä oÌå”kÄëZ~áÃ)‚¿~ ƒ(¡uôC£ÁõäsqíõP}˜²v𲃠HãS3ô^\9Uf5îpú0yö²QÕÖ;E3roܱžh’’ ý€«-ÈÚfOFœ‚¨À¦Y7I´¾¥dŽØÕ:k ¥Ü懦,4­´y™eJ$E‹k…±2ýþêåw:*¤Ïjd"}é£U€˜d¿ÙO¤Eb@lpž¡RLrã‚“Ö§S+0UyúX©‹Š¥˜%˜³7f$k÷ëÒÊúÞ5JÒ¬QG &ÎÞÏטíÈCÍ¢ñ-m/DxÀ=‘n†iÕŸiyvÈ$yv"ÎÐÓÉÈ#z¢€qj–ÿFp+¥â"°öòKTd%Ø”•{  tÅo—Í~ÖnvãYÈìbßžˆÙEBù^â¤Ìšp+âáO (,¡-œ—̺”Ãà8aê&óî×¾ñâT¼&nĺ']…O3ºóR·ö‚¨suWõF’e¼ å:Êœ"¡F±q4(œ›ŠWe4¶¼µÉÔf £÷,Üh%ÌØ2óÉì+·¤Rgú­°•en"×ÊÀJ¼6£¿eaââ˜s;tÖM,Ú`eÕ {Ø•„9VÂìü¤™ ÇÑ\È,H:*íÐJÀ€öãß/Í©‡Äxþýb*¸_βƦÑ1P…(yè›Eh®VÁ1b‡f R8Hr|I³kÛ@›£MÈŽ3ª&P|›:íGcœM>¼ÉL ÜCú v”§¸Hq¡æœïÄ•ìK@^®ã@êÁs‡É ±‘LÊ©JëÖj&„ñ5P©ÑÉLË/i PW­ºApåÓ ¹BÀãcèX«::£˜g –us¼F.“ s´nCR ÅDizIrñ_Öï1˜fm”hš3F)…³@¿y§ú#êÛ‘lv5|˜½ÅÌ!3ʦu‚U”ÊlŽäA¢rYJ‡£zi³Bì hÀ„ô¡‘"l—RÙ)¿GiéeHÐÀoÕt¦¹ep{¶ò¨2÷É(šh²‚åÙï–¹{vVì˜)ý>õF÷¢§i{š|× Ò­òsÈx+oËU p»…@ Zÿƒ™ &ÞÕ!QëäÍ.7“s$!¡“-/I©Öñ¼.˜&Ÿ£TÚ»¤$NUšÁÕO3B#/Z T2T;k&àL m”N&îÑûŠà½ì ü´:θóïÉûF¯d›íÑ3˱­Û–ѤM¿¤1Ç5ŽÁÁK¥VÙNpûÊfçl%O«L£F0 ®B(Õ×|¶ lþ‘#xL¾5˜ p ÇßAC]k¢f:x¢¿Í²"Ÿ…ÙsR '7È[ºƒ ¥+Qï;„ÛÄiÓ$k×zAÓüšr§€ãšƒRnàÑ>ˆâø_l4~¸ÐÇÑÏÒw^È>(§$Ò÷è7Ï€ò)W© ¢¿EÚ|—3›•TEnšµÅã˜î¥Öz»ÿœ2æÜeŸ«öqþÔ…ùwK$i „ŠMgÔ¨ú`k‡œo𠣇¥y§`ƒ^^=ieÕ(±Æ#: ´w8PŒG´X‰Q‚(qÞ4Y¡Ïé;**V›Ô]¯s HžÒ-J­½¨ëÓˆ [ÎÚCƒÈ¸'öá5l"x"¾4÷þoÓxRb¡$Æ$áy %Oëݧî²AT7lÄúÄûp¾Ã4©FXŸ’ …kÉn/¦€‘×Ì´çç(]zÎyÄaiz=ýþ™~»`בG!§Ž<¯=$.jƒ¡šnŸ“ˆ\•ΩbÀó¡‘ikžhRO2¬ŽGqt±- £ò¨°Svðp¶ õédfüL¿_;cÕQ|Ïõj½Ü䉂CÅÕzñŒÎT¾tG´Ï K-ÅÄWkV¬2-®%1÷ 3K–…[&æ9Oèì¼Ä>è&)f‡‰o²ÊÚž:âÈI¶3 é(ÞúͨzGr¿µoxŠ\uX¡R¬ç±;…{›`Š~èÎqã¤ÀFqùĤd§ê™@àoàM±E#T%°í5!ÎÿjÀÊUúqy™Ñ!©=õ…rÃutʉù(ÿºå»’ÂùšE[ ‘æÎÉ#Ú:§‡~‡ 5`Áw¤‚Æà6€IE?©Û¤:O…´Úšwêsš›Î–€\$–d…\Á†œÂèONÆa.L‰|: ñÎËçhÿ{Ѿ¢"x\€åîìÉ/°_/çë¬ÞŒˆß§‚PëMʬ:¼íýìfÉцåì7§jË€“Æ4{·ŽRO«T«Œ*GïÑ–.I^øÉÖŒÎxœ}±ºÀ<¢—ÂÝê(éSçÏ”?#5;|ͨK:FC7¶ ]‹Œ½ü@6^Ê[( n‚W:$ê1ÁxS¹‡gb:†&©Ï/ã°„éÇJ˜´–Y>Å⪋bK¢š„£-ƒ¿Ä¿‚g˜°Ãÿ Š%„•† c¶­BÓ¸ÛQ÷`Xâ®Ú,ë"þ:ÝŒQ."4àOȱ=~5§—P,w:Ÿ†¢éŽ˜ê¹mnõWùêÆm—!“gM‡ ¡ØLd´xB,ÑæPZdå <0íö$ÖÖ·T>¥ñbTç•é[ž»©«ù’æÓÁ5 ,‡¼çæ#;)çÊ,è¥Î\Êy¬Wä¸ÿÇœ˜2”Ø©«1pÅÒŽýïŠAàlè”Uñ{d+ñìšÂ°’Û»©^\[‚šà¬­íaÍ “FÛ…ë] ”¸q¡fgVfÄV§Éu0Z£Ô¼âí[g¹ªåA±Nåiµm®¦kç+Yb–ônŒ–<Õ^6Jµ¸|Æäúš]˜@ÆX÷žüž(^ fÅW… <ºQ‚hEÓùR ˆð]ð§Äm0> ¢ ·ÎšxlSN©õqÅ98Š£Ó)‡âNT×çÁä©õ”–Û…7eè.(.ñ+Š–ƒ`Û#2Ȳ¤gÕ6í¸˜:*n¼I—¸é°»TEtÝéè ¤“JZ¡’È7 CY)Ñ$Œ´mt÷•Wž´ˆtç|ËŠ@ùÖ(ÈvÄK9¤•îzBÐMñŽðìs®;£ Íð”xðÎ@þÒ„öh§JƒàØRo]¯e”ºüœ¾tÚ=u™fºÁm=™å¶m VÁ`ñ]&G™Õ#@[ôU„µ]L´ªj¼ÉcÝÜðf @èh74š&„ŒÚqm˜ý«ŸgÂk©u‰öÛ40wTÈã,ÔÛŽiX?íå(fçO•é”èï_å|$šÂ £hËA0}‚,š¢ÄíðJ;"`z!e×…ÅšÀâŒä\„°/˜äiÂê}FB˜¢bï3Êq@°ËûŒÒaØDUÞgqn™ßg\ºÐsŒüïUÃò>cÝ%½Æ¸3·Ôä$AªÁUr¢ówÕXs¯vô‡¼¢™Ÿ…•xÓ^ÛöÍÞÓ™ õ~y½…=Øš^-¥—3ïyëÉ [*BÉ­¯–¾ì}Ø”ÏL/Èþfn^o®#ÄÜÖœ³®æÓÜ«â\îõP>yàSŒ‰Oê>]ü¨´è©ø £´ FæNÕª' ­»IKÔÛKÍVaN­þÏÆj°n^G¾Kx¤^ÎÜ«Z`îõÐõXÐu˜ÖcªõÔ$êHoÑÞÖD›ú¥Õ¥WE´Ù~iõ‰Fáe¥D¢½äQæ‹TêÅÆþ`tX=à[Z-~îÕ²ã1‹÷¥ŒK‹w—ÈÛå:…>Æó··iEÎW¯öJ¼Kë={µ·´,^aî’œû{ÕÀ¼BÕ¥°³S18“3|µ·z¹a~µÚܯn ©fó$zÏ8èù‡ßb«Wó“6¹÷-µ[­”-¿|–(¯zÕÁׯ:¤S(@Áîx¾a|cß`N, ·Óë›EÃü®ÓEM85> Íîð¥.o^®úÍaá(Y1Ÿ|ìÕÁ5R ã oæ…° ÆèíÓvCª´ÖݦÎXJ¦RUɹ®èù5/7Å« xøÚ¸ŸïÙ}w]W¤ÊZRèz„Ç7Ö—O^UÎʯòš¹Õ‰Û-·&ïÍõüz«`¶¬hý#(l6Å'L€þiä®`;ùïŽ`±×›°õ šg IPõ°4äÌÔ¸ž+â¢)× ¬œ¬i_z\Â.E2ãÉøŽ;Æ’2°R,í¼ø>÷ÙUn¹ù8&™š&Â'®ëCΦjR*<©çà~xþ2ÄaÔ()Ìj6Ö:Þ^kk@EºóÓÛøÎèåw/wšÏJð"=P*`À+£HŠ=-xBRè rE»vù£b©JïÙÌ™ÖuuÏMæÕãƒ;D˜ÙB³#Æ·o¥Ž$×W«WJÁ,–ôé|þôn{~$ìY*]2Ñnè¡yé&ëziÙTö@°±W„ðèÛ¸ ‹W7/œF™š=çn’±[êgêba^óP°r½¬ªÌb‘›§~Â*eP#|3§„û˜U¾mÚ>fõ€Çƒ æ˜/5Hú¿õ˜Ã‰ÜŽY l—(ùÃÕÿ•ÉVendstream endobj 233 0 obj <> stream xœ½=Ûr¹qï,W¾á”ýC{9ܿŎ;åJʶªò°ò%R—,%jEI»Êä³ÓÝf·9C‰LÅ© 1@£Ñ÷ ·y‡ÿ/ý÷ÅÛ³ùðêìÇ3Aoé?/Þ~÷ôìÉߤð‡0+­><}y¿!ídt8X§&áÔáéÛ³ïÿ{>OjöΉ<ýwøÖ+þ)<p‚§W0øçb*q|s~*ã¤;Þ°çëó ¥ý$?¾À×ÚÎn¶Ç[XF+åt8¾…ÇÙ{)gY<_Óp´?¾;—nÒB?Æws˜Õñg“vêx¹ÎöAš­ !.í&xcçÉ9ë¥/æ`¾Ãׯ)­Äñ*>€d0÷UÜ–2æøš N0{ ïÙ‡W͈… Íñ9Âñw{~{7VÀ_~ú!žƒ n²V;{ÝßÂLj4áàZúivÞ?±± SZ9ÃÙÁÔŒ6ÞøˆV ë¨Ñ‰¾g¨Ltá…óÅ֯Α¾¤ “²!ÓSTH@ð]\fÉS(élÞt~¡½ íñOð¡vDòEÒ™zø¸€51ð¯ãwëìÑEéBHà+"d#ÔV§ÉHç±³/ã.¾Bġð…Ò³„Ô<%½˜T°ÅðÛ´¨,éýÏNË¿Ä0’ÈG;~†ŸØ~Äðowá31žP­5ÇÿÄ~¶y—™eµNB¸¤-z¿Ó^ ²ÍD1Z t4ƒÇ_ xk9%W ì5Ûz‹‘f–«´á*.‰sKØK$u= )ý†Ñ4£ú‘æ5àñýdƒ*&áLò‚}9bÎHlLb•8À˜Ä£ÓÞs$½_³)¥CÇŸà39+\13g…t–†( ?Cí¬AÒö}D½³½7B¥‹R“Yz[¨ZFË-:Ç](Û!ßÀ«uM˘Éi]Ñ6ÎlØ^\ÃÑû-’^6?­ï£.¯ì€ ÔæZ.$L%}ˆç|/àw¸„Píi-'T©µ¢ø1` à̳°{4}:-eHc"3¹Ùp‚ä:«: íÏž-³%$¹ÂÀ’ Ðä2’ž r2Az:3g…î ùÇüºSc=S|òK„ÆMÎû 3GÀ¬[LACàõ^D¹}NLAÙí]vwõd"æ%Óž„ˆÂÒNÞ—žcƒ+}[Éçˆ ø2%ÑŽ,¦OLÈ>gsw. èÙ®tù˜HôÀ¾ü4¢¨pÁWÖÊȸx7á )¼ÁgަÑfÖ*-ªe©ôÏ€[¹ÌåDUZ¤|ríÌdµëm¾l·åÿ~ jK™û‹p!H·ìã\ƃ¡yJX0Meˆ b€/€Œ<ðo¹‚ŸÏË…ã¿åëuX0Á|á^Ùe²UÄIÑöëÄt2«œFHP𱌩Øaü@_Ñ5¬q@>fi3Ô¶ŒI(IÆŒN¸|?PŸ…%Y›b™¢WKŒ1›fz¹i8™ÙÜ ˜„ã$»pPÿÓ‚5*n z>ˆß¯4üU'&£ñƒþ…=býŸãÈý¸šºggú›eoOP0O2ÙßhBÁê|ŒÂè,ðaÒf‹-ân˜ü£=o§YeMÔA*“ÜB."ıAæ×d±0¥Åþ|ààø©Î¾AÉ ¦)µÖHK¼j(x‰ê \ l5f%Z_yf¶Á ¯O|®z 8Ã* `Ÿž{5)©·È‘äaOµµ p)ï£Áé‚Ù £ÝbTëÚÞU!€úh8AUÚvh¬ç¡Å3ÌBTø2·SùLÝ|mîhrsˆkŸJµ¬Nòe>ÄÅ­VåâË‘¬%]s69å7Ènàcù0òtjç0rœ:žy£9Á»•AF÷…âÄYšqüRz4iîk€˜y§0õ(Kä^¶€tx™€Õ…àí›|B>~-‡¥2úà\Û Üñw‘Ê øÁf*vdËp|2 sÛ #õãîÁÏÐðaxSàC/a*òx¨†éñ‰ ’vPšÿœËoûX|vÿA±Åÿ‡@Á_p ¡@RØ-D ß=FxuNØ`4Xx6u¬1 O„¢—Q`Kÿ„±T›$™Ìä-ÿó¦Nr@Jˆž¼ âü-šm0‡û, JÎ'ø‡ÐYÅqƒj?ã%~(£ØôòÒ÷zp‹¾qª.}am` ¡†ÖVyúvàÝrÝ• Š×ŒÙÚÐ&1ÞÕ`ÈŠäÈ ÎRaí ÖUz$EIÛÀMrc…AÔîF´C¼o=L‡#vh¸”b¸,d^Ia'ƒ¨{ú—³§¿þþøwÑ6CìQ(œ!rjÜH Ü;ÊÍ=C(0ÎUÐ{B9ÖÍ0¹ömV#FWl#‚ñ5ÈoMeÂ,³Û›¾‹Àì³ýá:9e» ”(=ü$-ÿláê^ØF£ì ¦ˆÝZáÔ±­Ö‹jcš¨æoŠ!§£šD¾p¹Ep‘`‹¶’Ÿ£d b³©$S‹Â†®1÷‚.s8öFÕ8/»øMëh=ÌC"øÎ žßÉT‘£”Ûö5p’u•$Æ· ë;žœÄéàì_‘t%Øfèea"VZS¸Üfx•}ßêTãd¥øŒßYor¤VY3â¾*&ëÕ=rp1ŸJ`¸žC£ „+ª4h×mÊ8 Kˆ¨¶ÈºpløçìºvgHúz—°¯DŠèºNÎ.˜âz!¢J¥+ŒãeÅ8ÉOøIdŒÐi Ç2>Gê¹ø!Ôõ#i <†õý¥4¥IK ¡V>÷ÈyãÓ\ö¹ŽG 0â¥ßroTŸ¿ê¤ˆ`¬Ê0Îì ´Ã½3{ˆ=/¶2{p#)ÊŠœÓˆ€9h; Þ,0§ô#ßm'U ûVïW‹Þ›V#? ØÕŒü˜ Fü ¦A‚“¢& 5KXf3©^Ëð%ÈÊÇO…wÃW³šô¼«2­â+*Ôáœnjho ¸-Ïçô`¾ÇŒÑâÊ Ôfýr.sH’ 8YRòeülvjë@#Ž[xÒ‡~RŒåõÌ‹{y?ƒÿ–ØpSë:¡«r0ï":¸b*⓼Z_4\[¨.ÓÄN¤À]¸w"}m3O!”y}…NÊÉÊyâùpœÚºÇM 2`òxóæ—Äì¸ 3mÀ‰M¡-u Ê…*P¡eµcîû&Î1hmÝäb+FE-@°TªÝs÷—q X ÕÉ/5¼ÃÈž3ɲWÌÂMÅíª9^µ¦ÒÎJŽùŽ’Z(ßÄX¬¤àÜÃð”²à¶V‘ú~<2¥ÿT7õkRq¬‰£í8¢©¬˜<œÓW¥ºWë–) ¬?F¼Ø&!¸G×ÀlVè S?.‹#`E|‹ãJ‰nVγ¤^·;cgËAÇ# ªÎ€!xfîÖmÔ…AKîÁx =•2Æfr,aŠr *oà_ àþ• FfW®»¬âà|Hrïì0ÿµÆMôYÚ«pƒáX4ý8ÞH<ÐâBlºí7¸)Üò›¢ÖXm:Ø gÁ»¥,_HÇì¡å;^[ÌKݸ7Á…}qpˆ k;­ªe¡*8ÞÔë#¬1–‹¥ŠüÞJ¥?|þµ_Hœ|ïYŽJcR)²ŸýÈ!æ4ÿj(r qO”â*ð’7z¢09VEsIÚ‡û¾õh™¨ç‡ pÓUÍ广°q°¦Wâ3"ÚA©hYøy»1OÒzäÙj)ã²MA8&cCÐÃÚËTÏE¬)5 Óœ,çÊr\*€DË]QT ʧRP lGÆD/@… ŒÖû»·8B¥'¶»·– ^W!œC˜2ÄËÎršÖ›g¿`ÆòÀ´As4¥vhuúzT-àKgO°ÊCy.|Ü›«,$jöñåŒ4LY.&ÉóÙr²½Mðë“5UÛ70BG ÓfV7 qB„º4i:…%MvîDJ./W6âV\jWú3„É×shÚÂ’ª=3(tF)Žà/¹Îl£ˆ*çLQšÓ¶ž4¼±Q…Bj|`*xÛ’÷T:&;Áoã,Àu𝋳ŸîóRzJóTYØÆêîFe ÀGàÙQ/y·¾Xk~j‹«$­ŽU’vVåx_Øé#ßvT)÷¹WÑ™ì—PYÂÃÕ(û…ÁAjó1Eá§À¬ºåÒf@þS‹,â§èç(¿Ñé–’#©ø??ne,lŸ«S‡¼@‹¥`gŒÔÍóðDÚ:l_ìœLfT\ ƨ#>bµÍ«þ"ÎgŒ ½á±€™è-°=eˆ£JY× 0*êûÙátÚ8xž¸áÜvšÒ}Çî0vTu W¾)åŽÙFmí„ÔPP'ü“DtŽóš5¹mZPÖ÷DÖˆQˆ%íó«%•ëavÇzrj–·wëÛëÍ´‡ÅâgÁ2ÿDÀ"ôMƔεr<‘¸ªÊ~µ$¥ÒèñÁ:£”ºZß¾Y_næ²@×ycB'|®Áî¨â5icÚ‘©¤ñ{WɯUEÀ¨Ë8/‰{~~aÀª‡?ÿ›±hÇwÍÆÍh›j„#°#Ö©š~=ñ½«X5˜±VTÏ·¹QfÍãÜgx &êò¬}SˆÂ0Lj¤S ³È…¡(¶ëw?¬ŠÚÊ¥Áâuÿ+£ )\Æš¨Ÿ ºêµgÚàCLÕUhM¾)& ¢ÆSÎÕ^\£T@êGíÃ\;b¥Æ nTØppe40Ç&ã [´µY°²nݲUœ± !zî^ÏÀ÷¢ÂP%ì ã*¡ŒWß3 2ŽD¢“S¶×§%@ßí0áU»M_>OkdÉóöƒø/g¶dLFøvÃ8IŒ*l^¬¬À]¨‘y˜ÌÜ%°©ÄפÉ®m®SXF”4ƒµØN§¦ùòVŒ®QÈ‚j‰™}øf¦€p07RR½2……áÁKYô3!*õÕOì™”µJKþºÛ@Šy›Åïÿ.Å}tmRqɩ֦‘ ;l†ø¸a3  ÆfHÅL'T‘Çîötâ-&$'ªJU„Æv*I]¨‘fìèEôéâs Î[H4qü¢ eƒ ¾ÔÀ˜´}K'e”±©@@ ‹u9ÑÜÒR’9Ž%ŸD׋[Ú¹ôQj+1Ì«~>WóäƒNü/¬O-ý½Ûq÷G¤E¼Uh\ðÙðC3g+Ê€<1¡k—Jø>ˆì|¥"FÓ”°c¹°¨i¨e´j‡ Ÿ3Ǥš-@¤°« ôèçs£:Ñ }£µÈåHy“ÍÞ:{¢«¼à¸ çÁÚ/"rtQÍGnÖqà.~jKTTŠG ãÞí}lÚYNØhÑõäxȇï'ÃMs,²Ät~æó¶n6w­3#™È°?E‚Û¢’Ⱥ Ù|#Õf-*ÖY&*3A¹äH^¹š]ŠHFðK½ºå\; _l¤ÜH·•‹Q](¦·Uêi‡‹Íc8èÞb 4x“;Ü€æ ¬{¦\Öœã箚L{‰Œ¼va2nO.†ìŽ–å/qOà•rT|«oT9Š~l\háQèvÛŒ›X‹\Fº3ïFóEÕ>Л½N‚åy\£ÉÙîç½Ä·~’ªëõ+Ò†K‡ldqzŸ6˜Îhl,¯J§ŒÆû_šlÇ#}'lÏnÏ­|½°Ü=âoŒâ+j­ôÌKw%Ž…=+”ÛZüÜ À¬‰Ø Îï»:Áеâ8¬¥ÜJÂõÒH„¦…ƒ?4üÛ12'U]f|² 0öÇs/¦à…¨‚k¸-'šîÀ…þGJgÀR#/¯)\H@Kïs×&ÿ°Æñ>®oÙãåúøóúøýú›ŒYõ¯NyŸÖÞ®!Ðlzë_,w0ÓcmÑk»œü(–s7¦Lî(QcÔ^© š˜§ºûóBª6Çrꮤû\rìÙòÞÅQ`‚¥¡N$ÂÂC ¤œ1su^7®©”iÉñNš®6Ú¨7 ŒÙQ °æ¶©/ë¶ãÝ>3†óëkO"|m0l)m4XD`–3WÀK!ÆÉ”‘ZæGÖÔUÎDEå-°Ú§iÑÐqÙ;Öy¹½K•ÆÝùŠ„VÊ›SŒd/ÅÛU鎩NøŽåÝ£í_ = I†¥Ò—\JÐj)„d@–¬„µ”àxŸ¶W¦ä›õR¹˜dÜ¡ähÜ®ÞJfžÛêÂvî©¢£éîεp‘6ø´iýL›*—A‰× ñÜé³j½4EÑœMS‹…ib˜Ï˜žÂ§0üÀáy°¥ôö¸WíÚ»-0¨ƒ—«¡¸ žU ::ý¥SºØ–t)ÈãÁˆ ® ™" ¸aÏ×±épvå}Ñt'&q¿¾ø0ªO1p‰žüo‰J´¬æÆm@[1IºL1®…°Tï… ѤÀ!723hŒñiQxmº!E¢Û¹"®ö]þ-ƒœØ‘ìiëÑÔc¯Þ‘KiÜ(}€Ô´y½¸‹p=ªad¡ŽnäTàe®9eÖ3¡Ö¼*œ¾[ÊëØÞÁh1yµ4¸ÿ3ÃÐ]D‹öòÞ;„N?.¶Yûõ[Éyœhg(*ª{’p´Ž×yA·®îÖý¼Ø\•¦¢í˜²@¥µ+Y²Á«]*[>.z궤w¥ÇU £j¡Ñ%$UR&¸³¡Ij‚4•SödPŸ˜d­€X¨íÅ&‰¥û(GazbÍÁ]Ùm)%f“®3Äu{å©+L6n—È-Ç¥J¦YU»q4+42:HzýUHúÆk5(ÁµïZ ÌgТMYè¼ÔÍÚ•õ•þËMc†Â¤ÇÈqxíÎÈù’b¢gG6áéÛ—êš­ÚŽ§í¢¦«8fp\uMhº3ÐÄJ: ï+ôÝÀßW7|*4XìÐèáqÝú×< vY…½ð­ß"3ê›ï¬ÙÔ‘Cϸ‰ ÷^/'?—!0v«EôUÄ\Pê` wq6Ñü\@FÃÈ-ÛABƒŽ›¸¤1fèÉ?Oa^¼œt)d)<ÛžmÁQ½‘*S ÐÔ–&"zµãÖËŽåEPs^ëX^ÝÈó54Ú˜!Þ¯7É Ðbè/°ºî²Ý?T`ì»íFƒ’PžRšZ!(~O¬•KçŸã—˜.Ýgßà’¨ÒôžážN°·ò{ï"€.lv+Ú|¯…©MüÑXS_ ‡û?Làø6Åw1J½T3ì,DZ–Ä–Á†.ngdQ`Î:7ÅÕ½ÍÑÈJ¥à%Â/‘¡›0U†~÷/Ê(ø@Ê‘à©ËU<ÝlX‹=ð?Ãv͚dž•ÍG!8DÛ¯•9DAr´ss}“nßYSpɹ*jß§Pz1½êwl”÷h>óxwq{¦WÇйÖ1b¨lsâ+þ;+®vrá{n–Åü60Á W¶ã^§úÏÈ€0¹DÐ÷˜‰;à¼tæ.žŠîøv9ûA41¯±r_¨ÓÄÎR5Ü ¡—ÐE½çbãÉèìëû»l —­y|Ý«6^›Üñîòºöߊ*â1 µW<¡¬£k^÷”ç×7f´Bm׸Ùx­ù‰#¯Z›d¸=[ ìKÜ–%ŸVí ¤ø_ v¹Z¬¼Z¹yòFäŸV²¸gñ×z·|\ìnî÷ñ|´•{î# É¿z£\}€œ•jZa¾³•µ»Ÿ·V2 ÿ’Y%“NpÍ_lXÌΓcܽñÎT& >™P#Û«j#±-Ó®Ó©¸ˆxä«\X'5¿,ÿÉߤž¨’•7ä¶k¼¼Gðn ’ë'ð#!A0w ä4þî ^§X|ô]”¾)÷H¥‡UP“®¬.=-ëðþØXÖ÷bÇèøgÜÚ3/Gâe’¿Šºœ0ÊmD©LGŒ¾×Ε9we¶‹[¨¸Ç°)”.+Áš{ ËP\E$BÓoUµ¢Bb,#€FÓ›D\;:_GÆÉâ¥]/Ñ99G7ŸmG`ú±¥@?x°TƒMjýMUù¸Š|`:iLÍêîo^¼ûáÞ¦[ÈUh_ìüõ¬Üƒ¦× Ž*ù‡§gaƒµ·¯îÎ0‹pøél>üÛ™¢R>{pàRÍÂÞž™oÔòææìïÃ_€­â›é`a˜fSXÏŒ?û§ÍçøÂÕï".‚÷{ø±ŽUhLˆE¡‚}bÖt´#Ùšûõ•áiШÞ)wŽ#?LØ‚nñ¢×¦ïDYÿÚ^p¸ómD©Uê“H ƒƒÑof’ƬÿÜ" ©ÕÏ€*BX‚öüZéE¤ RÒƒvÍ?' Í”†,DÝ) ^¨*±Í"UÑÇë¾ýL½€”WÖ9^cð]:-L´"ÁÒTœß.ñ{¶@¬‰_ïe,€S± [¬Jôöýúx·øíúö ¼ˆ—–¥¿ GÖºƒ?ŸÊ@©>æ‡Ëú|–½qð—ï.ÀqÆ~'r‹I¶j ¿d`Þ”kÓ¼oê%è‘!«¦' [´‰rê±l²uŸ=Yy!„šÆ†ü­•.B] á…+ÿzöœcû!endstream endobj 252 0 obj <> stream xœÕ\Kse7Þ*¿áÖl¸&ãI­'¤BIXdXŒÇgÈøÛ3Éäð³é–Σ¥#ûò¤ ²˜cEjI­¯ßÒý~%:¹ô_ÿï‹«#±º<úþHÆÖUÿÏ‹«ÕN>úÒÃ*tÁ*«W§/Ò¹’ÊvF¯¬ƒN:X^}³þüøDt`„†õõñ h×i§×7Ç¢ÓN‡õÝñ‰ì„Õέϩ¯qÆ{µ¾ om…–ºÐ@¡åú!6 l¶HϬ_ÆY´°Ê¯ß0*Œx?RIÖßÎ&2Aûqë+\ Àÿ­„Z¿ŠÄÁKçi44Ȭ½Òß8åÖ?±m\ùÐI úLYï{úvÎzÜÆwi&¼¤vÚ©3ŽsîeZ®·~Á¦a=^3Ú¯Ùj[sòvFæš±«ï®É<ÅÕY°ë_².|Ö‹´FìÁis‚|é|ä›lÒþùHi‡­j§çˆ¬öb;‚UÙ¡<Ÿ!Ž˜ÿݱB@9Ãu£GÎ;í¼€~n„UÖÑÁù}> }v|¢|‡›>#íîDYè´T«©PЬL»¼m0–íçEޱÍ4©3¦ä=ŽêŒ±H?©/ŸöÖZ€à½ßõS"·~ÀÞJW‘¶´V¶’ëYã•1Y÷–v8gL'DzÝ)ë3MÁWÀ÷–KPiIÄ@Ðí¸!Þü ÞÎϯ–ë•·  SœñÜvàJ‘™Ðz‘Ä{)ñ9O‡oñ¬KîÓœu5F°rgÜÙóI ˜ü°V.­×¥0‰G¿ü(ÆôâQ¨C@î; ª Ò¶4#ÇAåL–4ãóLïâGÅÀÝÕÞ6ª™6íÁd½ùÒsÀWYÝ:šëˆ>©u0ÅL8R[òVê¤â Ó_ܦÞÌ £™g€U°Ùö®’™âÏufCÆ  úp×Mí ¡Z¡÷”ð©]¢sÚÔtlNøl% ×…­›é÷t8*Èt8йà3sÁ†¡«dtgƒÐë3W‰Q+”QZ©Ñ£óàlà¬ú1~[or|ݧ¶¬0×ø¿™ ELýèK%=÷5¨Â¯Á¯NÎ…ÌMœþ’á“iœw|~r8Þ¯°³4Ay·þdúü}ZAîÀiµÃŸÆOšãÓÓ£/p"‰d/ït'Ìêôš?;’N…ÎÀÊJ£VWø§Á?Ó_¯¾ÚÕ©F LÀẠÁ%¯¹¤µŽ'Þ’»Â½øèË‘W½rœ! = "7QA°]pŽÜŸ‡©9õ¤âŒàƒ…г=›pãrb{M:Q]ÏÑYµ•<+êz·Y¿™¦ ‹Ç ç¢ÿ^6Â7Pý­ðXÐK•„6/±ÅŽ-{ ÎËš( ßü„8—öÄi‡îÙq‘£”÷t\ˆ(Âã§ ·ûuDŸ–çì›A+d6['5žs„­’Béú 92Ú3r=Î-×Y•u]õîØ£~Gg$º†ˆï årt¾ mvARÆ–^'®§³&ãïLK&oaÓÏ=­MéßÅYLr’Ȃ䮧qˌ眅—‚#Eoß0S™‹¸$òé(úÉ N?y„5JIžfX"Ĭ³Eõü#.\yèiò”™ƒÀÏ€x†Ò£-lã7>»kžõhVyÖx/}Œ%·ó¡ÒZ2ÿ4ñÛªLÛÑIJDW:ߪÈpÄ=¢VRqDJ³wcÑ:@Ë—;Oû¥emãNݧ]  Ú6v“t®¹C˜”5iÅtãÐYR‚æ·VQº!W2:‡V!´E2;&ì‹é7¤^±ï³ºÔ&>KCÚ€ º×< €Ï Ý6OR7J;žªèÓ q+¹›škˆbͨá0aÔ©ŸMÖénú|>µÛ©õÛÌ|•Ê]&ïÅh-5?¼¸ÉÂéF*h°Ð^ň µE/^‘¦óÓ‰Ä1¸Ý×ÒYéÖ Ù.•éüúÇÐæ©:"»4Úÿ˜D1•VÛ^Lûq¼ÏYܪ†Ð»ï’ŽNz›Îuax J¨ÐH´0¦jb"flM4”°~ òKê`ìƒ xSc)â2¡V§9:ýõ7¸INLÀ©çºœÂ . ¬7 ²« „Š2‚ldBNfÊ •Õà:/§4c(Â}jUÂ,9$Ô iྟâ•7U¥0 »ÌµvøçèÌ] i=éì÷ìtk„ó¤À˜»¿É9±  ŽDRíPZé–t‘ÎYë–å¹þ=7²<õá;¢MÉ8™éT®÷¸úäC†uË~ãéè2¤–©J*Sx4KºH=¡,k‡N©ò\ˆWZy%Θ;Ú©ÎùZrd”!ì!Ï]±±óq6$­"*@oBLßý3.(+°Ò¤‰”ZðˆjòѲÉ-'côkZeŠŸêLkÉdŽ&T¬h×g1ƒà–“ÝPœHc$?y4ÖFXD^ÎØ.ù¼DõrZuÇ6I8<íŤ,íFHÈÑN¿ÆÞhï¾cD¸ð\3¡:/]ˆ~Õ¹Qèfï:…Êþí1úùd-€ØÏèhï1ÏÏ+Ü&ßÀÖˆ˜îÒê¼0B¤aT‡Ò1ux“é¦T·²ü ˆôÙ;ÝQ¢ hqÿÆPr¶M‰Œ°(ÊF¡“|TÞvºž$ÜÔ‹[÷0 l¶^W”Þl¬Ø rà;1•öò¢ñ@£jQLå0ާ(ƒ‡ûÂ?ìú$¶K3·¹V`„œl®G0½ÍͬG²¹·j¦Á KÆlÚÓI¢À æÚ LOití|ÕvÕ ¢ò˜Vˆ©³³ÆVª%>ªYêÌ:dX¨`5•«6ž|ûòf@䉘Iø8’»?óÛ&*ÌHÄ€.­ hD…T›j¹B{¨6¤,Ǽ÷BÚÈÛâÄRI/ Þp›\IŸQ`YmÑLHîïÜ¥º ¹ªÏüªÛÆÙq“1GË e&:vg `Ʀ¯õ¥}•×ÈC>ƒ=;'Žžû”0–J.ÔG¢Êw¾UMïéa,Md.Ä©”¼§°9ßÑ'S(-] ¯˜ç6¥Ø%ÒЧ‘æÑ¤>ODô MÛÅû–kdØ'uþvJ"\ ‡”exXN- >S­#OyB²Œ`Åd—·†z—eVœ×P´ÐÞøCju¼žpóó3€*z”¿Í•Õ˜wãÖÁp¹ž>o&nmÈD5¹Å Hß$»bÌtÍÌI1ÈfÞB»©¬Ò…-÷q9¾ŠqÊÓ$»ÚÍ“þ¨ÿÄÒ‘ÌÀÒš„Ô³üh¼jÐÎÏÎ*@EîPãp?zyS55>4bú,ÓˆV:¨„½»PK~¼ß|8 ØêÀVce)[×ýföÕŽÀF·¢£tåj@ ÝA4IDñ›1ë*PÈA–RoÀûiÊá)l R-Ð#ÍË÷i=”ÉÊs(q•…OÖºÄíÛ°Á"½q“fÛ¼ˆWq#"AÈûD¥ˆ »£…AG–µ ÑXÐ&éHó¼;¯îݹ d〦¼ú°(Fe%¤"FSè„k±°åµš²žj“…z, ,®Á±ôÀ;æp™;ß[x\E0„`#?¡•9hÜmg϶D0m‡n 娣V¾áûeõ+ª«*”Œwý(±õ­K\ÐBp[K(2­ûØÃ‰kX0P©šGù+7iÕýE%î[šmRgÍXi^æ›®W;üKØù¾ —v“‡œP#LÇyUÐda÷ñ¹T\Îø?Ó¡9ºU@ÓŠd8š'ïâò³¢í Õ•—ÓæK¥#jÈ ×¶,1ØHJT4 d—‰iÂ@)NµæÂ9Šìva7W¯¥›Š}ª`:ee‘†¥}º"×W»F S–¸H"u§L!$vv'›æv8ç…û¿ü&È·ý8ºE±nH³œ8oŽ¡K>ŠO4´‘\>¶q¸ÒâüùàË Ò ‹Ã“ÏŽ™wµ1@"ŸPÃ#ÅG¯§Ï³ÉœZw‹¶qÜÎx¬ÔÊóDtë•À°}P•ZÝ2°½ë¤,Íq¼vLåÂâaTfÂ’nH7xí¶<¤îûû˜¢öGÆì·B‹Œ=>ŸVÕªÙ×%š÷p—»1¾y„Àå6΋à0óbO`¶òÇLd/†H-ž¦íØÊëŸ>ˆçðFÃáº<r& 9¯°O°[Ã#ä¼öÃâ$‚Ä&â°õe¢ç!3Æxú”kÕËCO@šÍÒK¸õÕ$š\Lÿw¥—.ªÙ÷+½’nMQ½r¤±ÜËè½8i 1õrTñÎ, fënSº3©ehæZÎÃûL>Bõ`!»šÎâåžg±·Çûsèº)ÊÕÞýál½–«<®m6îÍÚòýÒcÔ·¹ Æ.§×žhAKUôHk/ØžU+ÓVu1娽ä§F|•¬$3S¼ÅÌO&Ä`ÙñìYÔÒ®*Dcõ„(ÒmS¿8Ðz:¦ –î,Pk!…ù8‰ñûçã­F²&O…pó;’ø˜‚rßAñ&“w¹è—iå¦l ÝqgPC buÅx©–ù5ìó|QÖ Ô<“%|¼NôÅSoilãu–ß½I¯QäðD€îíúéõ•Ÿ]ÐÈžBÓÃ&Q>…î\ÙÚK?.nVã¡ØÔ6Øn%M.'_má-H ¯wN,S´"Ûï¨ 7ã¥Óv.o\I_85B/6=*믓nó¢¿|¼mÐ#ñk˜Z¹©#ï¬ÝÂfžª‡ç»j\mºƒJŠÃÍ‚â"2?s: ³×åÛÀ"RÏÉ/{wÛÉ¿åeΥ胠!7¦3ËdzqÏ·xÛ’—Ï òuº$¹p)&}>T;¤g'T>ß µì<Œ³=íJ>{íØH¬ÍœÚBcûNá÷Ù[},{ë!ý~AûJ@¾‘2"¯Î„¾¢µq¥ºJµ™ÚN@bÀ C&?iu×ÓêÎWáîê7 ×ú“z4³Ê']÷€À£EðŒ…âÞýyÚ×ås³a›ÏûÒ9ò¡Q};þnJaˆ„•­J(·.ËWÒC™´ ;¿ay›Õ+bÉrú;—ÛRÅÜ"ô 3Kú~“M„L½'¥x1)Å»©õajeêý¬Öw+;Åï”K‹ê¤-´í…‡%QÜÒ–ÎLÒÑwhÿXÌxJxÀÊ¢\›…ztXÁ4î°›úʆεхð—ÖB?xwØ)‹!ž7Y(Î5s+ͼ_¸»?éùèuã6>c×m¿ÂP{$gǺe¬|WÒìB"Öµ›Tñn¿‚Õÿ"ž¥—ç út' \¨û ÏÂAÆç-í+÷œäàäK»98G|¹ÑM‰FV½¡½ã¦p5šÔÓØ\ú…Iï&½°äöf Kz«¶þ„Ð"¸µ˜:|ÜÏìî^(¿|'¾ê‰Y·þí4ÛžtÏ&ºwÅzÓ†Yïà5÷ëÕë§Ù>œ: žZR¼*PU$°Â‡´ô#‡²ñù„[•LKŸHã;‡ òĽóö‰¢Ë ïæ‹£ÿ’JÂúendstream endobj 261 0 obj <> stream xœÍ\I“9>psœøœ^îBû2̈€`æÂpèq/öЋÇmÏØÿ€ŸM¦TUJeIõêõk;&|pYÖ“RR._.Ò'b'ÿŒ¿¼}&N®ŸýðL¦Ö“ñ¯—·'_¿xö»(NâræäÅÕ³üy"•¬‰'ÎëAz}òâöÙ¿wÿ;ƒÁ{ùŸ…ßO ŸVGàÅt¾ƒÎÒF<ý¼ÀO'¬T㺚ÝÐkâ‹Ó3#ä`´Þ]žž‰Á8á…ƒáàÛz‚‚ñΔ±ƒj÷i>‡iàgÞÄÝ6{o´Õ(ã/±ùÇSk«•¡¿»Á¾Z[¯üî=úçÝî*u1©°»/¿|›G°Üsü4ƒ†ßÝ*?£C5Úí© ƒ©‡/lMå<–ÁO9gc¤dŽ›¡–»ëÒLÇxc83Hw/I3¡ø>£„ª¾ïÛóŒ[$ìÝG$ÐÃvÔëÚ·ëÐeÿîÑ#¸‡fû3Ñ «‰»7ù,´”óþ ·”÷ƒn⥑¸ ™îÈ÷Y×yyÜlmÍîu¦B+殮XXLµÄ¡ôÁ¹ÏT´ƒ—úäL*#'3 ÿBæÑ+9ýÒÕ¾upü6åãi€A•Žx°S,Md‡ˆ“†sñBO[ð‹yìÜ[¹JøÌ½‹¶’_ŒåWG—ämjmÊoŒÓ_!yÎWÛ&yV­¤<†¼DÓwåó-~%µn’lÍ<áo9}lFPFÆ…0u'Óœ—χyF`޹õÇfß›ù³Evƒ#Û,e¤ÿ|$¬>8.'ZM šån)ƒ0]ؽKŒkE~ëhª˜ú˜¤½¹M ZLÔó6‘¥_¶H™[ëÛAgÛ.1âǤ’'Î+-óÑçoçÖÎ9‡†0Û9,Íx^>Êçeùü‘õÍÔÝ죎qX¥´4²“6YiY;*­0¤ZG¿{U›Ad¨h² Y¦¬5jPã}2™ÐÁ(÷‰ PЀKâfÄà`&7©9[¦Ž]-K‹ápíaÕZ¥¼ûÊÐۺƞôð¾#½´;@TÀ+¦j®‡AºÁ¢ãa§©O•þá™D›«wß~Ë”w íA‘Í|~Uðà}útA'¨ãí™ýv—`"OŸ=÷¸,­oKë»ÒzWZß—ÖÛ¹5Ûæ‘˜ÌæÆÏŠÄ ܆˜Å0“w^>fäšéÈ­?6ûÞ”ÏßãNF!·’Þ–ÏwMÈ\­$m‘a÷åé°Àà¼ì¸weÜ F/œB°OE/,ÞyP…sòùíéüÝRXÊÐD_IÚ›Îço Ÿ8³lgÁ&ÀxMÀ‡JOb›àÝ$¶€¶©<\xƒ? ¸íèµ³°OÀñ,\-|ÌŒ—WS«W*«tœ \àƒ ðˆ&]šî¤¦:ÀŸê@}8õˆÎʃ˜èmÕœ~q‡v?Sðšh`ºj"˜~Åå„CŸÈ(pG¬íþ’lâåâÒ2/p ª¬?=éý.÷ަ¶.Ýœ•~[Bhm7Ú§|Š®üMk>¢Úé¢è^WþÁäæá ÀÙÔ«üZø {ΧNÓuin Åâ´õ9ž! 5²`Ó”Ïl©Ž<ÜcK`àp[š¨•ûSòÕA9ÑiÞwŽýb"Ðö\{0ŸLZã=æÝ´íšÏQ/ÌŒæsa ¶)ñ¬¹ß—ÖÛb¾zœÑá5OñÐ0’&›;\Rl0·¾+­ zSël$-É©CâÇik¯|e%Ùܯ˜OÔbæÓü ̧TjÞ?Ò~Ö¡'„½„±µ<9SÐ4Ažâ±ŠÝ‹z $Âvþ¤ ¬¬˜Sm|@åW9T·VÝZ5§Ç<>ˆ€ƒŠ2Þ¶”Ö‹…Ã6+{d«`5²Œ¥+ýz•gBeO!Çe»Ì½ÍÒ©z¢`ж¶I!3Ri‡¥hvÓZ8jvß“ºÌ4‚qsŒéþ4±ªF»ªã!gZšAHfäÐÔkh‡£&(‚nN¶Ô¨ýYlÛh0òûè‘Òá–xu ""Á£C;j¥GH‚c@ÅÙ)…HÉ¡7°g{Ñ'ø|tŸ=üÄl£€ë|à9R鮩TŒü;1‡8éÚòVk†ÞÄI\uw×–" ®#pþ‡üS€ß\à"p6U:„[¹˜jŒ£ÖÚƒ ¹Ìs6¸ ú½!ÐïùFÝ1’Ÿå$“…“æ@ǤÈÞãv)ÌP¸RÖRHO\à$°¡î; 5Þ·¼–71vœуTzk$ »+++’îÇQø‘ )KNÏGLæ! ¥!üI^¾/Þeo":8å1Úç#Näaj“ÒŒâHt|ÕcD|øÝº¨IólÈkéLg;51,¶‚³r”ë“™Á²`À< ‘…‹Âÿc4I NMÚ·•z.Æ=[yS è}+9ÄÞ¶•Ú!Шd‚d•jñÖVVƒå¾,L€‰"ÁÜ–ð±°Uf¶´¿Æ1ÖB÷@BéýÈ´Âûòy;NÄñ¼B%yõåê¬:’:ž¹ê&=Œ” -«s…gé%Wýjè¡4Ž"bKDx؉Ža–l7\õO­ª2©¹ø¡›š%ñ³ ió4mC7§Ü,U” @œÉú~ŠÃÍ^`'DVÕd…#ëNÊ™òan½,Ÿ‹aj½™?›|Tɵm¡HÐÊ'—!$O>Ý CO@ÞæÌ!Pxµ‰ÝG)9¨Ø'^æ.F"»ÁO­ Àü¼~pÎi³*ÅU„sqy7®AëJé/Ó€`žÀqYÖÒ µ¸&'Æõ5·—„ÞFº„3í)&½]œÅ5èÀºè×ÐBbäÚ¾l;Å-0U°AÊŸ¬€ä¬÷‡bu« żiâ‹ÛX¬¥C Ž>e¨ö¸>¨Ä6QwÙ4&3šƒkE&F2…_äžÈÅÑu÷½Ê­Êð4ÒîtEÉ8£. ¬nó <ò2 ¼-ò’6D‡]»>ŒZB&Z:FN¥ì–B6Ž›¢y[jgr=»”©;uÓ·Á•Ú­ëâ2¼/q$®Jë›ÒJ"Å%~¼ ÏËa5KáÓÈó£èiýÑ#að#¢ À(°J¥HëÈ♽¢8WØ Ž€ ]c“!£q ñ¬y-3OL›ƒ *çqp ¨P6É\¬àµ­¥æ¼+58 Rþ‰¤fZø©I3›cÅæl-(¦<WW«EN妴’*Œ‡ÒZåT¶ËÏs.25m¹ÌH:æ1¿—¤SÚ.ðŠÈàsïX+Qpô1R¾âµ 噲jW×VÍŒC‰£ï•Q¿,½Q¯ ¸°¼Xwüª£‰]À ÿ’4“ ³ÂÀ¿ƒ‹–‹æLa§Œ¬ç#¢PÖÑkªjzÖ[‘ðˆÊDéTƒÄL2,ÌCÄV/[Q[×Ó(JªÞõIÌm÷QÙÝ?Év5ª±¢Ã}N“%•:o\§N‚d(¦$,ªÔÎv~F}o€pB@ṽŸLM΃1Ïëª:¬JAþû%³`÷»šµ¨G¡˜2‰9¿dœT cb£‹!í~ s$cÁØNÈž £Éþ±FÁ…–…˜"ÒM—¥.XÐþCUu Rƒ^}±—y À趆¦Ó‹*sfk°ÌJÍEZE S•NZÿÀ´;UôÄ¥Ö—ë*ÝAøP…5AÌtà÷ pdðÔ¦ÞFÒÑ©[qtqv+u%DÖÚY™E¶~ ¨”ßÖ±XÇqÎJÓÕÿÍc¤„ÊxÂx£ môЀ™O`ó>¬Ú<¥Uª»+¶íßÕc&uYF£´­ÇÄ*¥7 ´* \YŒ k“UçTf ûÂ?±uTS_ÜØ\Î¥,~ÁQd¾Ï¿ÀÓW ùl­~k/“JŒ ªpܪžU_b€Ed”œ»¶CdÕÄ÷c³äþ7áùÓû-aþ•Ô]Fg%|èÀ8Ó+CdÊ9#œg >¤>„*£ÓHÍ¥r¯’r­º#¥î}"£Ý©ùl×Ó%m(¶ !ë§°SscVÈј–ý È–Z‚Þ.àõcú¡è…F7.3˜¿×¥WµNÏ•›H; Õ c•H7iàA$÷ãú'UqG\r´N‚Ù÷O7‹XT¸[ üj³jT°K³¬i=¿ó¦rö©Z¡uR´¨jåª'hß´†Í#VûŽÍ‘(mÔHy†úgØÓCÓn½‹)ƒÃ+—°Õ´â(<Ç\©Œ#})Ћðãìç$àoŠ9hWNÖìÅišvÌ¡éËcñT<ûýÈtv³¢òp_>—¹»Ý7§àô¨(b‡èa’”ù{~äCÖCB/ôóý\,Kÿ¤Ad}ׇ¢ü_?åäÏMg=“º¡çßô‚àt™3U^ú­E0™*ÇlT)*óÛqezé!­¤ævǦws£¾Ü´Ã{£ºOñY¹tHJEpBÝQ•]w”_Q"i¬š=±UË4¥ò1yÓ‡j7”5<[eû7Tah-ûYºÏT# CÄ:׾ߵPZü³‹z³®ž ÞšëÕâ–DÙ/c»Ì]œà¦¿-%,Ï<Çœ{Aë‘7”}G¤£_SÄØ8ÅôY5A zùó]ŸÞm–"^¡SÝÐã̾[zÍS(ïËeÙ…æ6© {ÕEÇúX~/tæë:Ût®Šs²1˜òÝGùLUáÏóhÀ3}³47ô¨¯W%`‹M±lüÿ|郜C½x†“ñ¶îxÃ3z씑›¢3Ùòøäë'£:‡´ÇR¶o ¨¹Ôë@µÉéA X8³Ò‹ÿz_Â4yç\Œì`I—´^,¨ï-Öžâø4O+i8F§Ç;º˜bÖ._p%ËŒ&,B pŒi½KmŽJ‡’RÒ—šM/0²Ó¨‰¦èƒo^¡úË€Ke½§‘‡Ž<àå +Ùãæ’û&xÎQ ôà]¹~>x>~ª›‹mˆénÌ©Dè)& ï\L0–]7Y÷† ÷jœ<ÄE-4›žK=dÿ¨È;T#Ëf|;`uÍÄ[)  ]Šð¦´¾š[[L{¦……=ä·#{]’¡ìÛ㬋'{.S\l›^ÇL2êÏî%Ë©æºÃY=ò‡öõu†µ7€lûfI¿‹<B{On2ií˜l2wNãá“o‚ƒ•t_u ÚœR·¦rËëHXDsò)fSLÀFzŸiéðŽ… ))«û­©£[ÞáWƒÙýéw4Œ±H À4ó ì9ð9Ñþ™E¢¶‡è·n½e’aÏü@_ºŸëÀª!áÈÄó¤ãÑ ºò—õfM1Ú¹—®¨#üÛ"ºT' ¼ ¬ò­û< .êÍŸb*¢Žã¼Î’á°8Á–šÇæ©..ŒdNíÕËÒv!©³?ê¿? ‘*zÔQ5žÄó)yÕñõ”bÕRc\àiÐ º¦=´„VüÊNºgb;(¶J:™“Ò€]cv*œá3G­Q;PeÚl¯ðbV‡qH²&7À§R¦ŠÌ~ÛÌ}}ø˜PC…Ž¢4‘ôÜ=›yýí¯¨ª<ó©“`ŒÉÈ5‹4mNfË>¹ÌòJFɦ%ÄÁYËLK3÷õïdq:ïˆl¬óÀµµt<ºÒ2%É]£[Nì#àÜÁÃà+6¸ž×iCŒ¼þyØúÜøÍ ].U§ä/{×ÝM‡lT¹—öuQ¥×Mו¨]Re¿î`’Ú–»hi!!%õjÀ´ tbrhúÙߊWr]¼ò”Æyi%eÓ¯æÖÎó{м¡X_ÅB.Sx+?w´¾µ¬y°ò›þÞæßÊÞvãz°ÊÞ~ ÌžòË‹ gÉ=[àR}‚¬üÍCxªÿ–V„Å·J,æ^Ü1ˆãu¡í˜'€±Ì`S,¼ç¬\žJQΰ-°“é ¾nk•Ù, ¶p œ¢:æPž&À–å©âkùì68ÃQà,‡˜ž•=CDÒyŒÑ¹.^Çä}ó ¯”*ð8k€BPÉÓp5œ0ì ¨ÄÌoEPÁQƒå"ó«¡Kz›cÞ0Ìo¼No´}é6ަרŽsŽ$ñ8§ÇK6Å9Á+œð8|àM™4]ðs¿ÎG[ñ4'.™y¶è4õÀB3v »w‹¼Ã“câÈ4-°RaÏéÐ À«)7–b¨“ìuª*åý¦·Ö·`áUãe³Üâs>u¢g.¥ØV"¸QÔÒ²eô§40³<ŸZlãuCIkû0TmAŸ‡ÆK²¡ÜjSRšïilÊ£ŠVH`ˆ˜—󂸋¥ibLEÀ‘,?_Œó=ahßïîH1¨4è€Í#âvµ³Ê.H€Å˜V8â‚DÓ“¨óü†m]p^×@“Mû^°Úr ¯+ßÒàãh‹gžqgBÌf&m’k_ë<ª¢Îh Ø4Ë(Zoh|¿~ƒŠ+šâ£¹‡‡<–æ÷æ!o‡ŒYéÁ nœîæëFGûrAÍX¿ËKrAQëÅõñTÜ1Wô#ðíà4«ÇªMž¸úã¸'SÕ‡ö‡Õ¯³ <ö¸¸À»x""Õvtp+‘÷ý°F^)kÝŽ¹,[_»~ºæóÙÖ9ÂW OÆr§œ?i¾M¯ãÒ帆j]`·ç#¯ÓPÛäý7æà= ìµ™ÈÖ‡c6÷¶©…I%Ú»GnnÒ,ƒcLõÍÍ’éz/¡x¬ÀKcm~”¸Y88cÉÕ¨qRbúsʧÈI &! bàÀbŽ”¥] UPíO/žýþüêÄ‚öendstream endobj 270 0 obj <> stream xœÍ]KoGvä7^]fÄv×»ÊN“ÁÈÀÈ 2‘= J¤i$Ê)YÊ ûüìœsêѧª«ú^^RJÆ ·kêÖó<¾ó*þz2OâdÆÒ¿_¼~2Ÿ\?ùõ‰ Ö“ô¯¯Oþõüɗϼ8b ƈ“óŸÄŸ`“˜ì‰ujNœ¿~òýNžÍ“2Bj¿›ð[ g…Ãv!¤™üî›Ó 'ŒÛ½;…Ù­ÑBínèS« w/ðSI§ÂîŽó:hµû™ ö†MÂ~yK]f«¼ùËùŸpÕê$LÁJ«iÕ~ ~'çß>9ÿ§ïwßbo¡ì<Û8¸RÆI·{y*ݤ•5»«Ó3íÅ4¿{jôd”» ˜O+åtؽ…=M³ÕÎU°ϱÙ8ã½Ü½b]®h¥vv07­Ú9­œß===3ÂÁ’ üÍ2à;6 Ž6RÈPÍû(­D;nGyÏGü[ç)è<Þfµû‰ÍÃÆˆÇêcÕó$‚8¿ø†VÂÃüñ&ƒ206ÝXpð?œ§4ÇBhgT>Xz—§éçy’tfÖËv/0P4ßá5cíî·Séa+;wgBÈ× Ëù…í:öµH8úz‰@j>Ðõò™é¨’¯„-0Ñ€pלÞൠc¨iö&9Ó.L‡ÓH¼&¸Yæ](£3ÐÐ/حߥEI› Ã+¥Ò€tÂî5|ΰe ¦Q€ýêî×¥;^Ι€¥R'gB£P`·B«L§ R5-oPBOnö-U+üô±u“†3°1“uÆìþÊ."Ît·:¡B÷g±;üTóµð5ñeߨ@Jæãñ—¸9IY*Û 'ëŸó»}Sm¾tY«•ÇÝíža³4RϹ7PqGpÐùЂÞJ5æ ¼]q§obA)f¼;¤tÂýcœm^À HVÒàÍLι‘:_Ù?°.èÛz³>u¤¸ôçtEpG87,­#õòОH9í囫8 ’éÄ©ÃËÙ×äýÕ\³!vB&Gy¹’KtÂü—©·ê ‹¨#˜FáÔ0b…wëãÏw­@*Ɇ±T2\5ß ÿåªÝp¶‰²ô>öPZ€þ>DùЭ¡²4Àæ2’2 Ù«ÎlÉE”§ITKFOã2\0­ã&­C’‚¯¼8¹©Héèæ¢£kM Ê8\¼}Ø€hN2'ÞE–ñr“Y¦K?~(j; %"m7ä•!öÁmu;£0Ž¸Ë‹6•"aù -ºæƒ‹êJË6ø7)#9|‰ä`´U Æy€JmÝŽôÎVTĖŧÌÓÀÍos'ÛEš(—Ëx¾F¯ïØéÞƒ;[ªF•€œ¬úëýf@n¸ù Wbm‹XÒx‘X—C‘8ç%(éÛ8»**˜x}Ã㻈ìàä$|‰\¡ n‰MrWÄË7—çoc«ëƒa °`ÅŸÒ`JUWÈ û]Ü• ºæ–hA5Dj9G[‘!w_·_¬ uI'áÄœmœiNB)=ÁÝM ¡ò(s¸75ӌހ¥óWõ }ùL Ï혰´ }r&a Ò‡xhÿƒvÊìá’¹áøÏàÓ¨ 2!ýí¤wpƒõ§Á%*I­/ÊgÏŽ‘aò~.…ŸAû©"ЄàÔmçìè<:¨=)×–27-T[l+ÓëM=^UÌ@·k½ÍÓ€_eaïjÙ¡µØáÎ׈=NÒHBcªÕŽŒ|¹©¡Êáë¾\_`|«ñqÍÖõ¸¹µú¹ŒâßÀÍC'·ûw2{½–/?o ´. ¯˜"å0šÄ®)“ÒG&ìnã­Jm3àÐ}²"žëi>U2„\H‚' ód¬±qt<|­ƒi ¥„h,Š`cÉQ¢ý0Ú)´‘DM[–R Ãü'aÊJ…¸¬†ýêmІº`7TcpAÞ/óQªîe¸Æ=…ºÝ.ñjeö”ÕN’Ê~Ž”KÛÊ´»¦$¡œ G.³FE®¬\Ãñ¸(þE8FüÿÛ"Ýo–ÏŸñ·-óÕ÷˜Ì×ÚNv=·ÝÊZêXë­ÀáâÿÚO„?W×\Sž'¹°@èÛ;€&Þœà?ú.¹‘€]q”8Þye5®tí lÏi9ß>y¢try~³ÐäÛåój!Ï«{’§Õú›ÊMż|«Ì§Ö!f˜×èš<BãwFdÃ-a—je=Ñq´çÐ$à§Wi~>£Iv'Õ³>þ(Gó2û–è[;™îj®O%‚Èä}Á%ùPÉã_’!†À[Ôò=™H-ñkÕiZìÎÉ…4m[ö6Ð?a$\Ý€’‡¸ÉÝÞ˜Àqë’ü•ÚÁgc¢¢0 FÀ¡…²¸&òVZ FžIN:|ðF •>'R°Ïyq*¥í8¼´V›à.”©•Ìmìí¬®Îdàlæ¤Ñ8Eº³ív'…«kDt\JØýðC\)ãñûù¥Ú3Á/0-¸sù‹´eï?ìòbbHãzñ¬™‚Px‡§ÉhsP¿Iôaݾµ¶Iñ©Àqû⃉k²fæ “ÄŸ—?œ2èqÞ÷ÓÀÛÕß]NÚÔß#VÊà³æ‚¾cìÇq“QbÀˆ©h}/¨$%êÜjü..܆–yTè½€Ž¬„ÃuºÕFá^‡¡Él/‚‚É4=Zì^Ì‚ÒÝèðÌòǨ|xHm4Ü»GÃ, øÐ-6ø×+Š oá_è¢nÆÞd$ÏEmcdy=Iû9È·ñ Ð+~ôA<bAï h|DI²‹.Mö¦¤óWÆV MÀ”‘;€¨”Î4u[aøDÔì¼ÉF¼´Yª`!ó³¨}’ònòÊ5R>KCÇ…áÚPá^&š?}Ãf§î$ÿBõx“d| ȉ|½’N50R[ç§dÒʹ½af0ÇK냓Xjé$¬„]©¤SüÜ#Ü$BzX@%ºÐ}Õƒ¤y@î׊´«%n29ˆŽÇÊžxåz¹däÍ0Q_O€j˜¬ÑXΜùØYôÄÇ{ê ìà¼ÎÆ”ý5†*•£ðÒ cNŽ\|Ž\‚ã(JU2éȘõØY3°pKo€¬;ro©bÜQú`­£ØÚ:'FZךžïØ¿3iu0¶ ±)±èºtWe,Çô|¾°5çîE$lŒZ*G¸(H£¾ÉFÍÊ®ÉܬèYÀ`Õä.QŸ …ã[}2¢V~ï£MoyÍäÄ ìFÙò@»¡Lϱþ§ÈÄB¸,Ü(„Ã躯ކ9€\¡ñØÏ6¦F¹§ÕCDå·]Qy±ˆÊË#½Ô¯ú”À ŒýãXë`}# /„‘=¼ß`’×IIºƒp3}ðÞCåÓ=.âü]sƒñóýñ>Ý|™un ¹õ¤Ìn=WÏÏ}•ŒúqiÇqàv±"sÄÿvä¥ñCl<ÌñzVÌ×ZªQn±r<|ú)lS z÷™mS¸59›ŽèÎÀ$Ê¥C‚£#å7úé(ãºIèÇsŒR™I5B`/SLVvr’¡E°EK0š‹Óç:Î甫ܑܲÇm¼ÕüYo9&¹¨;qÙ±qÿÇääƒ43~êòÛ’‹°ì~i9ÀS()]èSűÜËSrYÛ:–…Á0¹ s_à ‘rد°áÇ´9ׯ®¤`mšÞä04„ã8¶½L¾•F)³<‰ƒa–ü‡ × _ÂÄì3%8Ó‹&1ÕRÄ­õY9†A‰@©m!8Ùe8!& öËã3Èm«¤¨$e(ƒ(Qní§[ÅÓ—8°È€ŠšÀƒ{ÑT·^¬ÓÉK\‹Vä·ˆ{x¯kÍE‰N>eåážêð5Ÿä·¸èè¾\V}Ï”4ÔOÞµô²E‹ M›Ù^ª«Òf95sâßcm’][¿poÀ[ùç1\‡kÌy›;í+…„Ü&°u®»»…0d–¨ÃÚ+žÅäC]m‘ÙYõñ!Óhߢœ]á#ÇÎЇ_x W³šæU2Ûš¬*‹«®ŒJkŽ Ó¸áŽ¾ËÙÐYÕñmö’ö°wpÛñ \w¨.‡G›S¦ƒEG~!¼• jë°ïºbH¾.¢èÝO:+4o}%­@h¥³õÊ&éL­/–Ö—¥µ'aëpuË/KçÙ 1[0Œª…X £8–üøŒ²8外¼ËU -Ù êP?•Ä÷|a95T˜áˆ+ µ.º>“ˆczÓQoéx%£zk]ê­­pÑ&RpÞÂb’Bú6š’„A>Î^ÇÊ8в«ŠëXeM¥ÚäEŠ×qõÂ[¸œQy¬‰*}/h«ZÉœO«³óÐÀ&–}½lfXÀ|.àGít«•¬a±±‰.ì1gNZ%à¶žÇ*f #Ÿj”¥²!W1SvëÝÒÌzÄ*æûímÀHØÝ"+Fi›œ´V!¶Va9Pˆ³‘à»Á·]§÷vãú/ ¹‹óˆÐ+G\»t°¯<ÌyóxÞ ã åQ­eãvä!båjéÍpã8xJ7"õaÎIZµÝ}s —äáwÆ_ùÔšÞ=;õ L\÷¬äØ1jŠ@ÞÎÚ¤úú|ÚJƒé}SA´_ 79ñÞƒ„ë%Í#~ªh–R~\ĉxA•´¬r†Z{y-ÆadsèeëÿÉ­¢² s°Ú} !ÓÎZQjO7*¢âu©:µ&V¼tåT~à`Eñ<øÌ¹³=ñ·VõJxAÙ¡Y=»ã,ïµÍ^êŬn{1«ÉZõ]Š+»oÀ€9­ÚŒÜQ=Ë 2çÍj—KwRb1i¶$fסÝõÿ±ô"¾n®„¨†•k]ìQ‡‹)PV‘K·Î¥“×Ö1øéÒTÓ¡³•\ªRK¯ˆâêœj>Æ=í’ˆ~%;’ £Sâ­k¿\\‡ZcÍZšG^îúL¢d§MdzÄ) /%ØäIwX³*ÔÄcWz ¯–)xeܪv|X/y8Æ[¼ë<ò·ÀPùÁ$§‡¤À¿§\½â·ò2a`]é§@Ù›äßq•@>Ĉ¹>¿8¥ªVcõg$)¤úÙâµTká&Ð?2nà¥N­€]ÒâõFcçÜßRXLÕX(º'Š?lŠb|¤L.á/âܨ±*¥6`hO°Ä­­/à×¶ÇQÜy ÝuZ„ZxƒWmH¼5e¤¥&"§£©ÄÖòŠ[~´—ˆÈk;¹r¾ôYq!Æ^mì¯úŠ 3ö*>³Ï3 ¼ÖkÊíq„K½¯Òƒ(M*ï›4»ÚŽøÑÛz§žþi0GéÃ×i"Ýf§c« í»Øê‚Є5ýJ­*SÜdähµÊuƒÊPAaÊ€AäÞ³i×C–<O…¾ñž‚ê^Šî€ž&‰'ëûïpäø®¦}úða% ¢ l¼®¹lðQRXq_µÂP|“ C1–F1Ò¾‹à£QC¤Îñ”˾‚Š˜~¨3ëW¨‘^£èÛ•£o~g‡8ÜG莵šaþñ£VÝoS‰n‚Q‰†Vþ*×fë 2ÅóýÜÆÓn^Úû1M"Bý¶VQƒá±:ë&˜ÕÍIÅȼ¤â¥=‘çÛ¸»gLôÒ(º‚-ê.+c¯lxû):šÇ@â>˜™ÞŠû‡@™¦hÀ•Ú*{HÈò"öä¦GQ»Kk9Yß_¥“ S÷kîQ{³ø¿y©Öÿþʈfí¾ˆ #%¨  Á2ߌêãÖk£(…ÊeˆUj÷Ô@0ª¿­·¶™Š‡é`èO¢…#/åZÍrËhFcZ!‚;ÐKø»ñžßO°^æc´+\‚„gDýÐ#g‚/ŸaNñÖBq^þ}a¯”³fkÄœ ¦Î 9Þwú|^>»ÀŒý` p^¹çñ¯òDdvbT™–rRR6‚œy¨yó‘u·Žï5Ùl}1Ù:˜ÅÉfPD_´¨µ»uôRÛâ¿ù\ŸR¦»> }:s}ÏËgF8ðh†¿kØL)0´é_™†ÍHÎ/0„ŒJëûnßWÍêš„)¬W‚y¿>O Rc%"W¾§O-"ñ—øðjŸÅ$L·”ÍsíI}(§:b1¿¤}¿—\èìSß#@2/U!›¿}õ`n-ËbtAO¨—ÞˆAÒÉ2ñÒ¢›R‚Õ¼••ß(L15Á¦Kv +!ÙúÑ^¦üÚl¯{Ë@Á±ÑY¿z1í€Í×e•À´ 3éLv[| BILÑp#Ý|@b×ûÂa­ùsÖÛ)Jt¦æ ÷1íÖqß`ÍaƉÄÖÕéýy™l•ÿâAÜëõ6ùZ Îvä>JÇ>‹ñÓLÔ@•‹6´’ïóc"=´kùwÊ߉YTË4ƒ¼­q6cmá¦í]²G?:ýý#¾q@®åîsÊR´äØytä°zA®‡¨Â»WSßÍ裷6†OïíUœ¬|¯£ööª{Z w•<Àæ1•ßóm凯bº²o×2:F‰ Úf9¹ŠÕŽÖ®µEëX™Y÷w+ Û¸p<'Ɩγêïvh°Ñj¯N™tSa¯í¡.3Ï Ú„\šGŠC湟éoaõÞM^i?¼`ÐêÏ$ÈPØûÉ^WŒY„”¶ºñw”Ž-VO•]ªÏë }„XeåχfàîM×jºÝJö /òjœ+gRc‰Cúƒ8Ú¸éÙÊŽåù¹xãëí¥i„¢ílº«FN´¯uqZbŸÛoTKc§¬C—™øàæ¨RW°ØY^I®ÑfìaèO1 ÿhUëäz„qbg|u$RIL)R›h ?Ò;ve÷ÀÕWªqZgKðÏ‹ !;h”˜_!™ñ¯¸éô¨8Œ›Âs, K‡K‡mkÛáfi}·|¾Æqådg ”¦ðŠ˜+u¸XF¸¥OˆªSÛûÜv‘?^å¯óÐ&-ÚFl…ôZaúÈ«Bûg|Ð ÿŒ¿ïhåãòÓ¬ìw¹­|`t&ÝÖßR@ÜáÀâÁ×Kðº-šçÐë¼[:\t;|‚`­#Ú(}ÿ‚2x¡,ÁIû]|]~JŸï\ë(ý¿ËT]ÛÌbÖñÉ™&Ë7ÁµP˜òÇó'ÿÿü/q|ãòendstream endobj 278 0 obj <> stream xœí\Ks·¾oåGlå´L‰¼¾Å);•T\G¼I>ˆ‘ŠHQ&)YÊ/ÈÏN70˜i`€ÙáîRrÅ)AX<¿þúÆü¼f_3üÓÿ}v³bëËÕÏ+j×ý_g7ëoOVü§ãk®:©ŒXŸ¼^ÅŸ@çY+;nåúäfõb£ŽŽ9ºÓvóü:7J±y8:fÐ^Cù.”¹áÂl>„&šY¹9£mH=m~qt,­é´‘›[¬¶ÂI(¿ÆjÝyeÒ@ÎX¾¹;¹ˆ-$ç›kl¡¸3ÒmÞIJñÒlNCk)á‡Ïɬè8´ó³#É;i¬€aBßF,ê›.çìUÇ”r>U['Üæsø¥±Þÿtò7Ü{¹ö7Â(Ü{! WÏ×'_üáÅæOص÷F¿?:VRu 0g«¤u¸rìŒYf²ò;l,;Éú™J©­°±ZAvªµÕΉì—g¤vDiæ™Ìº¹…YA÷VùØ£î˜S9Öv¤±ÄmÎ+»yµï„±°9CãkÒø:NÐEyWã˦t•/È|€ì»ÑÞÓ>>ÄÆRI^[—ƒÃÁÅ mèžÜÇEJÞŸ¬ç!NÅç{I¦rE?LlÞ“!ÉÄ鬊óË´s‘ÆŒøò9¾,ì®T ß'ç Ïaï9×Üš8¦‘B(½9E!‘‚3¡`ˆAΕŠbé­–Pýª ƒÖ¤E˜Šô‚UÑ­¿B¦Áûµ;)‡C“: íŒçfó/² ýÂ4,­RòX @˜¶ëc.:­ Æ"çÓ¥¬ ÛÉMç¥Hg_&=+ ‰sü¥ëœ›_ ‰`Rz› Iq@ŠÛÎÃê^õC*žÖ†$gO‡ùiò)vÂÂÞ/B!L¸ çZÀC;¡uÖù»F›û8¨³’-œ@¹¶Ó¦HrÚ2ïÂ2…ƒp>´å²o¨5ÞdS‹1",eÚ>èAé$I•NŽl%ú±}˜ž4@‰ÀùT$ð¾Ãµ*eò¹í§Z!‚¡Úº"Ó ’}÷Kñ ²z¶”þ?õóinópÌS¨Ñ2å^èT dYOIqÞ·ðØŠmça¬½r%Šñ‡[©” @ TÓY –ˆ) èOÉ4,ò4‚(°dxœAÛ±f=ÞÅ9ªb'(ôÈ\za02Ó¢ttq G•â°Ybs2² É}<á]…Í`e‘Ë´5SÑÆ—ýŽ£Ú ¨ë¦˜P Jekâ” Â 1Šj9)@çÐòíì Èœ¥¢Öö…ý~….ÞÍqWí/$1µŽÒ¯#— ˜œ;‡~è±_†&  =¼Òþ=â§(ц Æ,´PÌÀISæ¡gðxløé}‰‰L†C-˜}À-}ÖB=ž¸ò>¯“9Ž£Ñ²&}S’yU}Khý3ì]và”èÅj4ÄsÚ©8%èAú5œØR½ib‰ý{Ûk/ù.J‰X›¤„N/·ÊQg ™ÔB2¬4áùIMù8@¿ƒ’ûPu£€E9íïB’‹6e¼‚}´¥.ÇÚ†ú˜JǬäµá.Á‰à‰…ùi .ݲ¥^ÞMµéì‘—݃8OÀ»¢gÕ¶{rrèBVv6¬¦Ÿa¼åsDèI£›+ì[¸ü¶x^ :Ì%ô¡W° æ’Ô7àãØõZxOµÁê›L ->”÷§ì¸ÈÜ¢FëØ·FoòŒXO…‹ ¼5å ™ F e°Âlæ@|^ì•CŸÒ»Â iÚEd+ îzCì'Œ‡n\N=U®3ªþ°lΙmÐùŽÞ&ç¨ýÝÁ¼ÍP[HÅ-Þ¦Do3½_<µÂO§ökô4jþs¿÷\6\DuäØl¬›Xðw¨9@vþšLN;šH Ð?u:' BÈߌMâF îèNsƒ „`(¡2îØðX˜³–÷Ûké ¨¥çi{q;¸ö¡I<Ãa¦¹ˆ»P[ | gÒ§Þ¾AË×F£ÛXßsb—6 ž•Écò»º5Ûrâ—¨Œ¶39‘5•·nEõÎ#XWÔàrJGQ¸d-GyÞ=K–«hSųœø¹9*#ÕñCØ¢I'”$œÌ)ÐQ4áwèÜû€~:¢û²À|:‘„÷cqþ°ÉNëü/'ÐEk«qWÉö%ˆj´ÔhŒÓ†ÐΧB„ØnS[õ·Éô©˜†u´€}Âr8Ïe@˳^Á¹¦7ÛrË–oO°eØmÙ®Òa¢Z¡ÛÆè Åü^@/Ñ‹¯F /F·ðàŸ3^A÷i_ô”&|„ûî7/7¹™:P\#èŸñ~v’£‡pÔk ¯+b§½¯ˆ]è{;W‰dP§`l™$OF˜ØŠ#éÃ}A4 Ü.0ºú2|©]TˆåKÅÀ@÷²Ñ¡ÌYq±Ë Oá¶aßÊ> wÁÁ 3®íTTŒl3ÙI ½¦ &ndE<¨kÆ;ÜLSxža8°Î ï5ÕÒ.>…ñŒÓrÆOU?5&3ÞÁ |ùrô ¯Hó, \X‡7“¢ˆKùû<”ˆñH.tïÙ>’åãÔ4F§xv2ý’ E;¡fâ# Ï2þAâg9îBPJ”Öhˆ¤.Ê]´ åüÍÐÓkÀäoO™ iHÉ1×ÍX¼™ë~Ø¢Š‹¤^òÎÁX Ìåo[¿¶zÙÍJyûeÍñ·q¥°I&‹ ÿ‚®9ì2 :é@ÇÑMÓÁ¾ÞÕœ˜Úß&ðCZßul€õ-ÝWÁFf‚‚Û×ã¿‹§#8JÃvbî~žÅ‰â_Q IÜù®S(»ø×ž‚Ÿ*K%ÞÉðYÎÆ ¾k@Ï{˜³ð_1 ÇÕ¡zÔ8†œ·*ÁT‡å=4ÊMnï«.ì»Ç= Óëói‚I‹æ¹d¼n¦“eÞÖ‚r²`zò ‘¡ùV.Ó¯¦ü>Š®4Abñ~ÿëî>øã%lü`¼¨ÿ=ߘw#„ÛªÒ9õ¢Öàq&æeŸ\ȦdŒ–죷1«kb´¥TR‡5kE,Sv2hÞW±vï«,1¶µ»À;]œ7𤛠¶Ý´¥ç6{ÌÈEüi ª<ùUÙ£C"ü8ŸhK¤Äí0îà­I'ö}ÞÀÑèÌ& ½H Eçbh¥iZrïè]^=Í M°:)ßI;$Á|‡`K´ ôÒ×᜘OYþÞ1!úH{sz’ã ‘‚±ïz.A<ã•B¼áîÒdé½”Y½þþøeÕ]ï>y ÊmIù§t)ùÿÛ¤‰ æ6)êÊýci“4ÌGºâ;Y:þ¿–`Ú»é[iK{)üm‚º@F°`RPu Áï°QŒpDöPÂÔØ  å;árãbª²ËPv˜!ŸVY|¯6—¥%•w½ö²£È»Km-ÏÎõ>Vëf*f‰“¾Â†Z.ý¬`‡‰ªGM´ÄwLÍ[Úý Ë3ƺhÄ}>GÔmªö4+iÉ›‡ø¬ÂwV æ4ð!.Œk3¤í»\åÐÙMÓÃIºC¨.È:Ë‹•ɵÌŸÆÑB’Qñb­šž%î­šXƒ6&ržr‚aѲ…‰˜žÅ¾ æA-Ð$ywÓkÂÙ†7‘.«Ûæe•&¯Sp®¶iÞÒxL=¼¶À;8ï7 3Íp²à>N£„¦†×’çKµ•Ýz22ÝžÒÁ [‚W§sO°b>¬é¬× ÕýaQ™_–éÀYyÇBòcSŒ“¼cÁ­ÒªJ2É« MF¬€ü‘GDÃ-iJÏã8-%¿î¬Eù2r|ü#†DèçâlK…´£Û©ÅÌ«½ û…,“颶 Jù¤qûc§K’•Ãc"¼rà/:ÞyëJÌcwj&ª² “®²•gó,ʈ1ƒn¿²˜×\Á¤ÉßÔ¾xÓ¹¥ªÑóÌóû GK0úiŸóݵ¯ÆÚ÷cíÕP»ÌOÛ–§öðûÜ{ç)bòÚð³êÅ ï¸s'J+ 3 ¶˜@=Ž[žSÛê¢ÂݬQاw-{A“òe“´¾ M¯{òs…­Å€ÙXižkýf‰ž BµŠO°³ÜˆÏ%ïpÃæˆ6)ì_-_ƒêw^jxÌï¥9Hvïw'«a üÃåýJuL¯Y±õ_VÜ‚óªåZ0o@dÖ7P£¡f¨¸^=o¥#GEúJ~NzÀ4žø²Š7Å|'«¸éì!ÃHX…à?«@f,¸†³Ç”¡¼Èͧüº ôb,žÕ`½ùi6j%y-™§Ky¼©c³J×kÑ@òÂBØ|ù£}l­½}Ü;®éC¡dqøðäªjÙ$C$¬ì®ïq¸$ï›C'Ô= 2J_TÑÉRŽ„›ú\ÉlÌ¢ã\ETp™Ãõ¶òB3×¼X ×uñÞ² 9:­w´¾Ÿ›?4$ –GyÞ†GBO¯ye-ƺ-«“þ~;‘¤gãâ¶çè}m¾NÜÌ­WÍÜœ*vçfŽ^¿´‘èJòšBIƒ·#7w#ÑÍÆjù¸A¥1æ1¢2k‹aDFéY+*4i“dñÆ:£Å¡(+°k¯çÃæýrš£gVo[N%-yÛÿgàL }¡ÏÒJÓŽ-ÂoÉ´(£ÒìçË~qY ñ6N†imÒ¹'« Þ±Ó°Ê”½¿›ñçš›Ao¯'Ñ‚¾ñ³z»KÙ3uÕØÖø¬™IcûË%(á=ÊÍÇ\á×7Ê ¥™/Á(Ñyi‹(>Tã“kÙŠebÂòÇß„wÄ;ÝŒWl03üÀÎì•7וîãÿìƒ÷Ó÷¶à_-eZÿD lµ¯7 “ÕR·Ò!)«6?“ö¾:Ò¶ðÄW¸_Ö”QË *MÜè:űÍpl.K h| }ÇeŸh‰ý×â rÖ«Ç?·F8J»>F±Üä]ñÎQ—©Xñ9³ß¢I‹Ç3í¯Tãzåw ,†&Ãòñk†ýòùØ'Šƒ%õãê¿R=Wendstream endobj 286 0 obj <> stream xœÍ=ÛŽÇq@7úˆ½äÐÖŽû~q‡(¶ƒ[køÁʃÌ]R޹¤¤¥$Ó_Ÿªîžžêž®™9»K9’ {úR]÷Û|{“< ü·üùòþJœ^_}{%ÓÓSùãåýéó›«_ü.È“4“6Nn^]åWà‘”“;9¯'éõéæþêgûâZJe'ëÏ¿ùó‹k1é}ðç7ù·‹Úïð·tÞ){~xq­½›´tç¯àÕIâùí `”Rç[`¦è-üħVxMǾÇÙ” ÎK|Œ³IXð[­œ ÍïÒoéƒ çï— _Ò1ù¹ÖËp'UÝw0ÞÑéÿçæ?Bú§è”3!¥à°Qžnþëêæg<ÿ'ŒÑ+™_ôÞ:¡ó„ÆFp8³1ž¯ñ©6Öªx¾‡EJ ‡ƒÁ°)ƒðÁÕ½…¿¡_/?ÉÔdÀŸÈ{éF´¶^y­Œš¬=²1BÇ)À$¯òþ„¾[æ&'`vý>ïID8ú®(`†Ž sÌ :(P÷TΔµ3(^åËôÜ /åÏäpx&´)³äÑ·y¡èM3ú-nPL!êfß_¯ö’fÉ8[jrF¥ÜÜe|ÇÔ2XD¶„nsDÿX§>Î#¤4&¯¨Ct:Ž0MÑ¢Ró*ß“ýøíCsbŸ"'~È€PVRD*j£å ŸÔ3¸”<ùôâÚ«ˆ!œo`%D4nÛj–‚Âó»-7 ãËMÀ_bÑi2:5FÐZ#°®á0“Òöt waõHYÞQªR~ÛöÆ zvøA O'<(7d›hŒ÷Gˆ†NÞì–w“Ó†EÕvB­ÍäÛ£µ”à›‚ÝÓ ³Ž1Ôç?¼°™¢iyBÕ_Wîö^ã ¹Ñylíe¼+{“’å ?Ôõ¸-“å¿órîr·B¢tAœRÖM&T‚£¸Í»‹2p·Ù¢nI|nR-ÌK+7±G;ÕÖ44-¯f:"³Fe:°Væ½ÿæEìa©%u”øòãÃ!N7k’cþ%MÉP‡‚$'k¼ÊO-Ì;߀gd CŠb ½gúü=îÈ:i³Àaú°*á'o<‡è_Í|åvLKTžÒ«ÝÙ…Žý.HŠ0ð­"ˆ"Ëmó– ¦€ò¹ƒ|$*ö®Ã2ØÉ9@Kžý"b²J á,ú† :¡zzô=`½Ž~CçM>”îP‰ ¤»EÂdbñ€ ;baP ÅÏô.ì~Kª{Gáç@”w¢šáÛ«»OÊÝmžÃGȘ(ªò>œ [$œ¶j[ܦ˜ñÛ,§G·•æßÏs›ù6ÓÜ#Þ 1‚LLÎM9éCž9)´ŠOsWÕ@M0áã«j!ˆJ8,l®AŠºÑÿ¥a Ít­¼„ÿ“Š4`ˆsªÓ{®‘yígX]ômA£hzQ4?¦ÄJ‰n_ˆí @§BGhÿºK_ý[Ò&µŽþüIfhx%ýŒxyª¹{zŒ¿æI2´"˜«*ކˆd$J¹œfMI&ëV*V÷(|tlT”AY`çƒmåˆãWõé¦%}©‚ät-Ä `‹ ðwª Ö¨˜XÎ`ecfiÈ´–“Eô§‰á´=‰ÂS ?¿üryÌÉÉn§”cÖ­|ZNàãùÇ5¾Î" ÞšJi-›Êû"~¤]‰DJ7Ë©"ô¯3šjÐó?ah¦Þˆ)Æ5m)‘õ‹@ 3%•·”t̯îˆÏ°Í$i©Ž¡>‹g1uÊo…”ÊÙTTŒXØËªÞ­¥§SŒdáÔ#ÞP6À…C¨œ·¡ŒOhý$µ¥+>ä§`­5¡È÷ãb4?‚:”@dªƒ;®éX«–*±ô0o2)™ÜÕͤt±eJy&ÞV4v'nThßX;„ÞçðCSA_¤b­bÂZ[íIkáП-ÔYŒ¨ ŠÖ™À¸åPi7 ‚‰õ_ãÐßм÷®°6ᘫËv–í\^¸wFŒ¬Íwy0ò%†0_ E”2µªv¾eÉC=¬n0ó ¶ŒÃAMßð[$€ê‹Ì9”ÃÁÀÏ«ÍM˜7öwÁº9] šaU9?dÐi_A›ð–sŠÝæUlX»GpqoÕ¬Ñ.QÀki@WY‰­$‡m0S@Ùt+ffÇj{_n>â®*eŒ4‹§Ûàé7µÁAâ»Æo± ~ &4šVgœeí˜IÒ‚!änÑúD}5é‘iÐùiM…Ù"º¡ì(^3¹òƒåû ³O·¸Gt’p–,ëj~Ȱ”Ú·”“õ5tOE¢¯áPß-¶A ù–lO *¸)èÀÙ&eÓ^»^_ÇSƒ§"£ã®±ØeùVˆó€U(òÆÁ`ÊîžùÝ¢¹å£·$µ!TŠƒq€{ì³ï!;WkLk`}ÃLI)‰·¥°1µ·vPöY{„<¸)©t€ýÅï-©õ —'֋߈&ô3$]å5S-ÑJ‘xÝZ¡¬¸“¢ÚXŠ à£CNÿ–L‘HÓêBø:ØI«™/‹Ö_Þü4*i øËh…°A¢ ¦Ì€.¹r&*;krÒK«c3sÞŸB'RÐ ×D(9жÌ|¶áݲÕû<Úœÿ–þ^ïåúäyæüš ÂŒ¼Òë)„*Ø>˸fÆR—ã­Ãù»;ÇvŽLË)&Êyuu­…F_ý)s#“÷`ÓK`–›â7Ò;éϲ«ÃùWwäqòèhoÈ>Ÿòæ=þVV+•¤kº-›!ùŽ„‡ÿÎ%úܬ¾é £RÍsúnŽyƒ‡Ö(·1¥ÜôÆÇwäÍO–õÛñˆÛ Ág±€Z"Ö€¶qxP8„·Ý uŽÁ¾-†iéÜBÂEß ù~™….ƒ*‘G_S,ÛN#Þùè܆ðÓÑ+À‘b˜#ë¿BZ»)Îâ,yE¥• Å“ácc°pŽ mb• ½ ¸Å¢òz)üÈ,¾],)7Ö5³¹idlÄýVÌI**Uˆs‡;¹#äQU‡kµaêåùøˆeàbLJ`@qO鬻g`†ÐË||Kˆ£Þ¤}$_¹Ÿ9Ö¡ôãTrÜÓ`-ì*`^/ ŽjùŒzò]>#œŒ‹æelÚ#SS•„DÌ—Øœ•U7ˆ^ÐK¸‰^]Æï@;[3?>Í öÃÔ¼¸GõFìì8‰B]¶gP@AuS»{ö¦Ý³…÷1I|³º>´kÑ aP¤×Õjtsµ÷j·žÏê‚vù¬ùé»út˜i‰kê¸.}­ÁdÂuâŽ- 4|µPÇ[¢žQŽ„ª 5*ø<]ásÓPç'z¹È¾mM57ÐT)íhª$Ž´BQʹ-~ÂÈÐN^4HúØß_W­Ã?]¶‚‰"•%Çá> ½¶éb¨t¢{á×wEèù)F»`r†AMÅÐ) ±A‰ÍT £ì¬NðT™æ°vvÔIÓˆ¯•£.°ydÓ‡öȧliˆ÷•+`èßayÀ†¬=ÂñœÀ€zåxÌöË8^Jmö£ÀäqA¨Œ`^šáYƒ0)ó§¬rÌöÜM^뜰¾Ž{y¤ù yWºYþU~º“Õ§Œ™à½]‹ž3ùSØ„K“V+&e&à ўÿ€1>0rLÅWÀ{y¥Jc—L†!áÂ$l9–<0H@­t§¤.tgJ¸±ã˜h¸Y?V™–Yp-LØÖ1ðšjϯP´»î&|¼ŒÄOÔoñÄÀZÁmz'ÒÍrÿC¸dTH.ëæÞ÷ÌN:ý !)}K×dö†¤#`èn¬n¯wç.C7å ¨ÿNk›&߬gf_ž—gãbTM6`tˆe#ʈC¯ƒMZß$¤Vá¤ÁÈIþ;|I¥—”j˜0z–W´·æ¥/_”Ë4’Ë¡˜éƒ4»9ÿË-íB&Cu«ËG1 îG«¨ð~•wë­ÜJ@MeÜžî,…1ôXÝ9…\Dè½?ÛL„^qJl Á ¾J‚ ïëEÊv¡a`¸S°þïéyš›¸3Ò½'c\¦à0ÁØAˆzŽ#¦èažre¼úè÷Mà§ pÞ'KèžÄVÁJóšuÛ½e %òÔ2e·”ÚFrÓ7×Va.4bÒ‹h]ÒJt×u½Õy}?Ý_³óÅX¸\‹ÙõULßò@â`}[¿ ú¨‘’“eLÚÅ÷Ì„w§|¿j~¤³,™èO;‹ò TTÝgÑïýœ[¾2×Ô»®"©»H”'µZ¤ÝPud|Š):„jk‰0ékw9…Z:W(éTjNÿÖ~Ç¥l Ƽ9>[gÞF ñqƒ6"×)®5SOƒ^ÛÞ[’úÞú}¾Î òM®÷1†µûÊ™RuçF9–DJ³Ú´ dT+×z9(1Žy±#¿Ì.úŽøÐjËÄ,èÚ ¹¾ºrö´„O ÛF.&f˜–ÚBÒT"[Gú€% Z W…á>^DÝå ‹Û‹ÞosîQÉ »ƒ¥Iqô'±‰=<hï*ŽWYÁ\ÞáŒ7ãhߺ©7~°YyÓ7®j:ù¨sT›Î­ÐsÚGõÖ†Ç*ÝëRG©Šn*ÝQëãTÎ ZPÛ]ï!¹*Ý·6ȃu;Çܾ%¸ÞƬ¿iI%õuQ]î›<;V;n%“Á,xcT¥íÛ'GµÊØ[ÐÓ;>àôk]×öÛB~Þ—Ùñ7@ézŽã¾?¸Ry³ µ¥`ÀÞ¸LKA<¡0ær¶•@£zW¡Xÿ¶níC~ }ÉÏã\õÐ(Gm‰èù¼þ˜›-û‚ÿš%·2÷°Òè™úIC}3›=;M£Z¤µWŸÍÐ;’„k}2Y÷“p]tF—¢—Üò†ï¬Átzèî#µ²¡¿ÉÜU‡•c—¥v7Ì;ê«Û”îÔÚÇ”@ž•]%O‚ýŠÙÚ¯¬kÓvWgúžÛ¬<­C#d¼š”»8¿w#j‡Þïy77ñÙ”Ù;ë‘V¹êsU¦¶5wóÖKPðÎöAÅNíL±Îab`Q¥Ä@Ûåï¶5ŠÕ*m%ôÈGúW4b”·Y»:` WìXM! F ¬b1+LêÌŸÅÿXY9!NKÊ#pw,çhÿ„°re° XÕ¦w”N@ËçaKËw*uB#15å«jDúœé‚:¢{’Ít= éѤµU¹rF>D±nuˆ¡JÎXú¬öØ•´«%w½Õ‰;e7—¿Ž²¸gço’°ûFVÐð—âÂ"†ldí»o:# ýwÒ-[˜©¾Îb_ÐAiöæ%ˆq=c›~¼©É£³Minu*ÛKѺ³Þï'––ô~?^ÑØçÕ¶tY†Èââ4ŒM#nIéè>c',áÉyÅè©e{|¿¥šŽÅÖ;½üF] òâÌÚ—§k$±ÅÓe@´ñyBiÚË”ÝPþ†üK`âÕâ´·¿JÜ;¾Ú>gc冮àßõ>ÎSצ3aÚ÷JA6ïz¤ïñSEƒ%6« x¼‘Òssð \ø¾“´8X¬ÊÉ"fð›]g–´X-û“‹åm>™Í»Æ ¯_ãc|²…Mi3 ²2mê°4Í"Ú{níñ Ü‹êØY¥!Ê»o{Ô‚÷<_²Ö6æœ÷¼YϪñ‡KN)~Ù–ÄOxx}AÒ­ÁÄm¹¿D[9ªÇsœn»O ¾'Üñt°Ë4iÜ”yWjÚ¨>î|¹x¿Šù" ÌŠûT êÝ”ÅXäúÃkì–÷­¦káÆy=¿=NΨ÷hýÒí§@·“syË6,ÞŽUQ1©ã¼wÙÚù©' Œ¿ZPNÔš¾—; c*Ó_q4ÜíŽDÉÉFÅ™†¹¦ØßÿÑ÷„ðqõÙ€˜/"3#›»µÎG½n-õ>ÏîžÐ9ß×n£dä‘yö½‡ `ëW¶s&,™U£ÄEžºÒ¶cÜLÉ:ì>.²9ba ´,‡~’¥­=âa`Íî_ŸÐP>p+kzyà`ªm`¸š¤ÇhŸ!°©?š7õ” ÅÜÛym×ö$~Ž|ιW3,·a9¦È#ÃqÐŒ†Tz¼H5Aý·ã²•’ñõÌ(›áÓ"ǽäË=wù^‰ ˜Ë»!zŽÅFÙåfJøÔ9ÏP¯¿Ø$ÆžD ¿ˆÂ@µ]ñf.³+ÔÖVlAšÆlç ¥IôN‰¹å¿^ÄU˜Cðÿ^cb#Ûkv…ÑV2:öý“4M¼%l«šƒš€žK~®rò _onÚd#¥Dþ¿Ëobná³ÕMàa¢°ÜÌÌGÜa Î`´‚僨•å“7öÔ˜ò¸“ë—`YÚ N™a×7)€n«JGÕ„@¥Ÿ§Ûm¾8T(—"ðá¡\ªõ8~&M º™ÇW˜n­.ŽÍÖc¨Õ?Ç&ç>}K.ûè{•jü Zì›MmHê`'VIwÞÛm–°7:‡¹ê"6nƒ=õãª>v©åtje¯ã0J¥=c¥ ³KÍ:Ty3¦óádê0hÏ:/É©­dô¸µ/eCke6­HÓøŽ8Ä猅'–Ág‚ÌݲFªjÀO¸7-­©öÃÜ٢υ×ìØÓY ­ò5†#-`Öáñˆ†Õ†²ÇàDßa ŵŸ©“ ~"¹ýÄXoÅ`š³;­\hûrúÑczc_klUñÌš[+çºq+6ÈõJçãÒ ÄÔ4{en+¸Ëúcp²2ÀFNRGÛºÌÖ¤?¨A6Ê€Ífñ˸oe¹fn©™(ŒÀ÷ò‚@ެ›fAµ,H!ß~V2%j;ô_§Áø”-“§^!sO¶ÚMVM…±‹š6¦Ã=\OìôQ-[Ú©bLŸ±2ò1eŒ—VJeø‡  Ñ›s0}zìNˆµëfóQ“81G(p‰?m5.#çó¶†X¹™®µ² wÜ]ƒÆÊX»ŽÉ…ƒÐx =lü;ÃG`×ï_ÔoÄ~ŽƒÁêBK÷’2T©“_®óŸ—m1%¥2.E«zÙU_ù’ZˆÍ,;¬SF>÷±6&þÙÔ#(úøuÁ2©€Åb‹gò"5X©¬§ñz›w(%Õ9¿k}J¿«G¸giû†-múZ¬Q*¯ðqE°œH£ï¶¨˜”©éÍÕà>ÛcN«»°y1%Ï­P.¦v]±ç¯[È‘àšü;¨…UÝýòó/ wûõÍÕo‘(¢<½~¸ÂïÜž~¼§q€9 ò°7–w§{L0òh ó“7W_\}{%Å ÿ-¼¼?}~³ÞWrÂ¥ Ü ¿#'ænîa—¯—­}·ü|µÉƒUú2y=è3P½«2¸ÆÆÿò“T^S.ïʆÃ$ˆþöêÿ)% qendstream endobj 295 0 obj <> stream xœÍ\K“·‘¾O(ö7tì©gW]‹÷c7ö`K¶µ…_âîEòšáCÉ‘HŠ–üëý%€B%P@O(Ù<°‰Ì/@Õ·±Èƒ åÿ›—Wÿñ'åáÙ›+©Íá¯Wâð›+´ÅEȃÕ1,úðòJ)ãíÖ†WŸ]IãÄâõÁÚh/A$ƒÕ‹5«„\BœQéhe›¡Ú¦ñHJK<ó‘”÷X‰â#uMD#Ìâì½#í©öœ÷ý&c DÕ‹³{L4B;ø„ó®ã˜J/Êk±ãu >ÊEj¾ÒÒ’FuÖÓ³3IUˆJµ¸xpÖ˜E•²",ÊTš,Gå—*i墒¬#)ô—T2·¨Pi¥!.:K­Œ$”óÔo•c¡iV¿õ[Gßú­²fýªhk?¥|„¥lݪy·UT[7¯ý¢cÓ¯he3]¼J¥Ê®J¥Ĥ"Ï®¾½’ÉŠå¿›—‡_>‚%«èÑ´oÕáÑÓ«lãò ÀtŒö@RwÞ½¼:ÊëG¹:9»ž¬Z´·áðèöêèé'¥–(=(·ÈàcúAóNü—F‹KPBËæ§ÏR]Ÿ¬SàÊ¥¾>É Õbõ1^Ÿ –gšåõIå?Ž!7[¥R\ÿùÑo¯`!QC—šQíµ ?ø£ID§Ì—lV‰- •7>4‹[æZ[V¥MCüêÑÕ¯>?8莋áqÓþ¹>ÝB¢¿XàÚ€±i·&¨P-ŠQíÁª40¢=,¬ œ¨Z¼†‚6àÁ©öX¼¶pª¯ ë- 0ˆaTŸCzr› øÝ€!p†ýO,¶-0K5=Y%a ½°ÊÁ ÜP°%,´Z‚9Ü\õ-%F‘ û2¸Í8X£±³ØK_1§1P7I#t-Ú.³Z‰BŽª2º6ÉH,ا!ÚÆ-ˆ‰ xUü…ùÊ&†”‹·ua4FÛBc(p®«ˆ+£ÒéÅo “Ðk(<É¢m!YÀ”$VËXt:H¬ÌVŠ~n®ž'€BK[™¹kÁÈ2R¦.P$üI¼ÑŸdZˆÅ :`®k¡!‚Y´©Úåâ@á4Ù2þ†W!»rFYhŒ®…ðß{ò3.ˆôXRY)¤1YÃØ"Ð] Æ€€O|ø@ÂØZò+§S&ëÚˆ¶%ñ!ÓÞ¥[Õ0/É–»ä•4 $ LŽM†‚@ó±3:'ÜJÐo@Þ(e¡UC™®…|ÑøºdâÙÀ'|· ØHÉ> ¹oÁÁ&ÍÇìÉmgm®=ª6÷-4F™·h³òX Yˆ„‘_Å×Y(ÊbHûŒá wÚ)IJwP¸DW”å³)0Dׂ!T < cJÁ¨H`ZA°êàyàmZJׂ1¤…q“¡JpËÛßYjªü} ñQæ-¥· å¤9%:°Žˆô¶kÀ.„á.`EÊ@£­½*Ûöèå¸Êô-„Þ’lªD˜®sUed„ášÀT¦owBÀ)n³þ¹Â_¡gð×¶ü•Y+ü8, ³u›Âô-Ìd…‘fit%À¾I>¡CÛB– Ùv)“´Š¾H ®<×—¾…l[ luU_¶¿W°,=X¶-4F™wË<‹¾¬¡ñ¦0} ©¢1ÒÂ_S)zM( £¢M`W õå®…´{EaDn¥ÀmPdëïbo®úúJÜÁí0›u*Âqãï3 êZ ÒÖdÁ+ˆÜ]Ÿ\ÊrìQ”¶”9GØòáѧWþísJ­œ _-Ò¿ÒÓ2r¢œæ~ryžÜtäê<¹ny7[x×ç{ÊnÕIvéiÎ÷T‹vH;*7¤ •??µ˜/·_ÛEµé¼xûÎöìd#´[„]ÍÇu˜LÖ­I ‡QÃavâ²Ñé0Ƭé kûIûáaú€9œ‚'‚=ž WÃOÀ0ŸCŃ__Ÿ¨,†”íøÕõ  ZWþø c­AwüŽš)êøš¨L™L÷D!:M\ˆÿóúD ’ßã_ÔæÂçü˜°õ % YTð Ê#Á‚tÂJ•ŒD•´-ŒŠè38¤geà%>±Dðù–Vb5 }|¼ñÌÅ–ý$;á…£ŽZS€Áç&Lbƒ²œnäwÛ(/ñ(@‹ùøÍõ Î=5§xC½G šàÌ–ö }à]_e¶¢rÇ[/Ø(Oòê±´§©Õ§š1^çmtÒÿ—ÄŠà5ºã/“V8güñ‹#cDu[*[ÑK$SÛ\Dÿ_#£B+£4+µÞ˜úâšÍ¹JÁÓÇã#P(¡uôÇçí6Т0Ðø²-æ;R䪕w$L1àÏ¢RüEÜ{ Šaf¬&‘h_^cS%æûrÛÞÁÔÚšu« ä\èò<"Þ•‘’d9<Þéuhža `]d£w\}ò(&¡(©Z­†*&­ŽÝ$;ÓÁçDdJÚfwI(dƒEï?P?*…i2€IH,ëjb³>Ü@É^Z=¦i¤˜›(·‘W- uÕQBjxTˆ¤[Ø+Ô:ÑØâ·©Ý«ò'Y°ˆm;À¬ ºalM𕯙ϙްsåJð%â«T¦¢âb[\ò{ä£M˜ÁÍyr­$9—Ù³¬;ˆ-K¿dZO³˜ ÷ŠV;IjeàÉK°Á™Þ©µÈÚBÚ¥#/T¶º"šdu±p’гTHy™¬¸9ú,;£"Ö¥“ MÙ£©‘¢-))ÒöǧyŒ 1óH9…¢ý9ÁM#»Î*€ôÜÙÐP¼NÏÒIÈó»ä!BóM¡ ÎËÒÖeCNXé} ’Œ€ññ}–Wt‘Ü5[áuö$ –GÆí«b¿†4ûW¬ã]Rd$ N—ž‰+¶¸‘s@þŽþa•Ûú9Xa@èxH7¶³7»êÓ{ÅNôþÕ»xá›Q¾Ï ˆd£Üï2Åáƒscy“GQÍ0»ª'yu.Nñ4ØtdB+¥Žp`¯ö[úiÇ…6ú†%>4C¨ï˜¡Î$;7š¨wšTtÛ™o=1ó ›éÃŽî°êðÙkKC’‘ÎÚ¢[‘±sˆ&€8êѦ‘·Ïš[Mõ)_üŒ¢p ÆuŽ^£¤¹“Àg$£f'Œ-é1홆F9 –¨x ë, yàr{žU„þ­)‡-Ø÷ê³5Ø24`_Ôù”Ú¥ñâU)íb¡HeUJÄÑ¢à$Ú–E ¡Ákbܯä9Î2¹“K!˜0ÒS4+·ö«Ò‘ò6šÆÒê¶?~öúñ7Ïé„¢Z¡<ÉÍj·šMšÖš…ϹШ¸oIÓŽ%œ"šâ 3õËÄ{º€Š á4™$U4ƒ‹:™†ÿ€oHF&=ÈMÖ€BŸ**ø^‰žuz}¶H×FA+ ±¢í§ip —Ù•_'[Ò.9Êó„°ƒ  YmXíÎÅ|0ˆäÈÉçûÛ6\g§+¨Œ2K¸ÕÀ³e“¯·ÇÇ[b™ü‚8í ­çK‘܈š±r„üâðX˜l0¶óN÷á)'çÇÙY‚s›÷CZ5ˆd:is4åž‚€ø€¬¡ÙÓÇ­C…ÂÖldž¬ *-/Ì‚ëìlè™I’EþÌÔñQÞµ”¾Éíx<jŰRR>,ÇPòn¯äá\€ZM>ãæëFzÄÀñ»‡ß k ¯6UeE’Ûã]W/Éo·n·Ö/Ïjx*ýFÙ:™>&n”Š„¦J–ãO6uÄçÊ,Ù…SBâ­8HHwÙÈó<¥ ò\ì3LŽ7VF»#…[„¯u‰ñ®¼î$=Þ8"½ßA?É®ØØ¤reW À?\º©}¤" •ŠÿOvŒÂP8zòQSvFØØ=@85 »“aÀä´°ðPš§¯òn»hºzK5¢y>mÝŠÉT›ÒA혂ؤð1§yȼ¬U%ͳ¥¸2qV…sp«G‰÷.v§„q7ÒÈFǺÊÛ:ú=¡i/œ—ûˆH¹F5¼E<#U£ª:˜H„“©zQ[o·ÖÛãÝöx³=¾Ý“ª%!üïkë$ ^VUýob?§´²/!Pµ‘¿Ûfdì¿Þ&ûs³¯¡2+7ÿ5SŽîÙñ7ƒˆ÷“­^z—LÎHª¤Q9#ŽªdÎÏñCRu·€‘‹À¬M¥’*ªFÍ ÄÌÁ-1W‰X2u’v¤îÉøYóÙÉä)têÚyµÛ¾ü)#8@‚Ò:A†üûÕ—È2/ÉÍeÕ£V°Õ6ˆœeñ“ŠÝ¬;/B·Å¢Z5ãY,Wf­ŒUì‚xŒÅ+=ž]ìÖ 4^¦›¥)¼ÑØ?CÑö½15·ÏA5eùŽ’©zÑE”äwŒ33]ãvå†${¾`I’UçâÓ`”Õ&¹pyÈó%Ÿ;œÉx à´J¢µ²‡–;5Ý2¶7,j†smöñ®ÑPM÷I¥@fÐÇô7›åó5ˆ­¤CäÍÛÌ“fÌj8wŠÐe ]Án˜Â=›PgIz˜IÔS,â¼;Ó™œ­ÔjªÄ­M” ÌÕe¯¦ÔûXv.¤Ñ…®a:|ÆÄÓä]p_Ò›šxŠ'Kܤª~a·y.Çü'¹AîŽâÊbZ+Ùƒã®Ð ÿ ±Òíý 1í”Ie§¦_‘r0~¶Ý/òÈ^Ø5%õÃð wÄ—ì¥ø8Ð¥ ɬm}WØÛÌ©ìÀe¢TÃÌ )†“÷dN¯¶Ç3ùìO“9éE²ŠÍƒ2§$|ÑÁÁ›,"ÊH&å+®Ëe]³=>âTª À‹¿0¼âÕô’ŽÕ½]Ï׆‰s§C´N;¬®ôŽñ–ÃpÄñ-Ï{÷d««½ÞZßÖÖdwZ#HZ½S=Œ;SÜÈ£ ¹¦Ør¥7Rírì÷îÅÎK`€CÃÀ ž #[“B6;ǸèÐŽ¨é„mçðö»¡bÿ¹Bz9. ²^<Àçn!e;v¡+^]ÙÜ)9™øv¯>«²Ñé ]£ábº+¢‘óÀDƒ ;G371’H¦Ù„ö ‹LV™äLó*›óæ^’\{]J¿§ë "h³n»øS7!y›˜0Q­ªgåZ  ß³åÐuWiºË#?¸éÝšÖõ<â2«™?ÛZß MñÅYS4–¦«¸üÁ˜ÑFée:ÝhûÓܪåEióhå–NWªÇúx[[bn¿ÙŸW|]•Wq(ý,'«„©VºzßÌ6.Ÿ~vN~! ½8%4±‘„éE½ÝÇc"fG3Ú±=þa{üds!Ÿ i?ÛÜÍÿm¿Úºýn{üx#øtkýýÖúÑÙ ¥³6íýâ5³b†›g{¥àK¨Ëª×2"YÛªuòDÂ_X1qôưF;:sI/î;ØÙ1×ãœ7™±æyQWððøÁîn¦5n7áŸx—e]£½oñ¬pô®JE’ˆnLçkô»sýUÓ|ÛËá—jbïqÜ–¾Y¢„5œ¨v«éäWñx€ûæWÝUJZb^J©eZMwq–YÏä,¡ÜàÊËý1…C:îsýÙwЋG~´•IŒÏ2‰ë kÏÎTF¨e]vI%a¯ã™ãØ|^Ö;Þ®Lùî”vmÔbx.8Ëæ÷w+w¥ì݉$¾?º›Ù7 e\_«öM«€Rþ,ök‡T¢°£Úaoèt~üÅGîÉ€žoZØ•WÙïO -wfÝûœ›ÍRšÚâÒ»›5ë’/ºY£¶öKnÖܽ¾}ò:߬ g.Ö¤ë'9@€¡9±žìë›t…8°áxMsr@¸;÷HPëJ.çuwÍè J$·÷a/7ÒT“dvô#½±@Ù¹-}2%D ;w眪ö»ºK#1.ïzÜEJˆ>NsÞËŽ»¶ZxUN>?“ÄKz½Õg|h‘µ¹ÕGrð˜ãÌ1 (tìkÄÙqÒÍÀ®Ö¦Ýpa*´Â}7Ú·v¦Ümþm?r²¡¤*ôI§øã-gözP—Ù­Ëžž<ÍVL·ÒreÇÊtpPkó%S§“Ü{ÊšÞשåŠßk·[fxaiX£Ðé²ÌšÒ÷ʔ`ºž@{wÑö ßf£—©½Êwkë}‹ª¨ž¶F‡Ho¥ñ7Ä>ÌoLHí³KÌçbÿ¼ü/-ÃØ‡WGï$êêÞ#†Ÿ àMVSãÜPyC[Í~}{m´XIA£w%/¥×{†wíǯÅÕƒRÌÆ^—¼Ð³ÑgDdèóÂ\‘õÁNãÀ}¡"yžýÕŽÂ{™o¶Ñ·)œŒ®äABžÂæâ<>hEw‡Nõ¢Ê%©]ãP’39]ltƒ†otWm¥1¨ñ> [ZvÊEŒ?¿Ý»ñ: ´j‰doc÷Ü›â6Ks ½YZÍ‘}‚¼í‘Í1{螡ާsá;£ª>¦ì€H±âŽâ®IfÈ#Ç(4to±œÖ…µÆÂÑnp\í¤-ZLO_¨sr*ð=ÃɆF¯EG;(SïîX]öÚ¥rÑìb< ËøeÃí„b¦¯mþ4ª–®bØØÝ×ë!èœOâw×>Ìqd0jŸŸHmUÃ’æZóMÁó|þÇjF#÷4 ³ÁÐwŠÂV‹Ì7o¼¿àÄrÝ6:þ ëÈ+ÜóÌï‡Ð·|sÇ/…¬Šªl%Äÿz3¡b*yIíQÛo4]î|îÑmžsS|­v¥vzáÞYE'7}ó›~AÄ|´äóÝÄ ®BMîøS:â _{Ÿ¸óÓ×I8w\¬Ü³p̆4êÖ]Ëœ…µïñ¥‡õY+g‚dúc´}ñ"`zÓk–×|ÀÚ_MhnËÛÁ.v¥xj5ÜW•JBf¿­$Lð‹ÏC[l5Ïô\Å€oñ*Wý¤”–RÿùË+_¾?„IšBg„3¥ !ØívüinÅ’Ùô%¶ƒŸŒ¼K)×+Í)¥”M’1<ût„0:Ÿewoúôrü>L>GýhkÝnäð‹_ŸME±XÏŠn´~'Óžœ¯´¥ˆç‚ÛÛûúÃZi£sùQÌò ‹¾õæ¤ü±gð‘JÉú[ò˜‚*³²ç2-FG†’Üìô›:³¬á\f°Ëñ¡‰í,Øœ¥êûOiä:I‹QÒéŸ9 $ªÉ8†áÖû$©ú§èsøÇ_d}Ð2¬oÂ[úµ¤6P#©û¥§úª7£×QÊÅJO'þí•ÝÉë—ß¡7Ká}¸ä¶+x—u¶Ĺޟ^–ãbMp ýýöK ˆ¿oªM®h<´D@_ÊE+÷…Ü»ô­•9îa‘ôY‘s^‘Hìÿ¿¯_úâ¦í#˜¥xõqáÛ¼w Iû`úH2pr©/™LÊ´}%eP¶¿Ë´Æ·oeñ[‚üm¦çMZ4¹þÞ~´j^ ×м‡Ã¡/Ë»~û~“Zû°ô­ù?^ý(£Õendstream endobj 308 0 obj <> stream xœÅ\Ks·¾3ù¬œ–)ïï‡s²c»¢ØeU\ÊÉÊõpYZÚ”¥Xþõén`f`v–"¥òAkF£Ÿóë¹ä¹Àÿò¿O_Ÿ‰óg¿žIj=Ïÿ<}}þ壳¿ýü¹¢Rž?z~–†Ès)ý`½;w6Úœ?z}öãîêB :£Õîý´ÑéÝÓ¹õzúùßGÿ:‹CÔ6ÂØïÎýõÇ,þˆ-ábï6jöǦû‰¹_à?ëùôüGÃVDÕH”Ø6D;­Ç!vî§øÏjVû©ýĆ~Õîgpƒ×S²†`?¿±ŸÞØÏl#•ïN¾;¹‘±¡Ÿôn0çÒÅA MWgŒ"[ý´1JÞ*õM«©¸àd=ö6“«;Ÿ\ö'—'L®›“ë6[P ¬– èݾŽ*×iJQ1M{6MwĬvߕɻ§xÇ“·YÚæù¶cné}¥íuz.™ú z{…;Ê]ݲcO<棓¯ èüÿ=ès`›SÎ`ô°—A †½7ƒ³V&»øÍÅ^RG+w?]ìa¸¶^ùÝ ˜ÉhíMܽÅfëmjwƒ½ÂŒ½‚ÄKEdäΟ_ìðƒ»Ç§ÖLŽçä?o!ž!*0|‘6ªà)|É?1|‘NX‰á ì_&ÚdêÐÚ¦¶CðFÿ© °í7܆±" ½»œ f;b{~FðÂá@åÄà¤2gV¤.6(kйûõ<Ëkø) ¯j÷ Ì©y78Ð{T(ØÏ‰ÍíASÙÐ’%çÌîÏŒ¬Wl–ñˆ`òçÔl„SÅ$7ioZºÝ­1˜èv_bgÇ#üîñŽ‘¢ª#•%ï¥5ƒrqäýßgRZ'e#£4co=Sõø‚­ù‘ÍÈ m´,W±ešæjæâÿ`%D4n©aá|Ðf™\yB/Ù¢yr Ó·Ä>šAX1mú’$\z…ݺ lbj}5µ6uZk‡[?ßK5ØI§9m×È>”;ÃYìf€–’‘•Áx_ò:ëAyÕÚõ¨ ZƒY-:¢÷ô3DyšâÃ:QAäwLñåŠDÖÔ»ø¨ ÅæzÈõ“‹Ö+&Z— ØyúÝû `µÑ!Ö"†¼öªœúX`\²Á  ™và#YÅÜy(õn/ÁpzkÎ÷ZAéô¤Ã•,0hîž^Œ¿~NAÅÜÈØp@åÔfªØò°Ø…‰ÞÍ4RWtV<­£¯e e-š@¼2Ð œÔ%n9 z>"„3èI6µÚçš$Ú©l/ ƒ†/ÇFn,iWÒÕ²4‚š©ûõ|«¼q*ÙAA“ÆÔªŽ%°ô7:9+=0–ÉRéÏ 9Ç/—K4soûÈË )0`Æ&]ãD,$1 W¬˜Ï*€è6Ίšk¤Š%ó.çfn¢lä›´KX—÷æ=Ø:¤ãfJJr¦†(Kop‹¤`É-4¢¬5óH9yw¤Œµ•ÚJ!o̦ݸLVvÍVXWÐÂ%ï²m7ªmho´!½° ‘¢²'ÖÙj@5.ä%„ üÄi!Øm ŽˆA&J,Ĭ±#”ϩƅM†œï’Í»sZß2¥X“tܦ œDÎ7fµ;z?2< …¥˜ö¶Ã´^€ØsRÄ"7(`ç/I…!ê‰S¨VPGÇaKòùf¹ ñß=•|kk8×Ò/VäMí\|X45=UK)¬ï¢5?›'ÌŠí@…²^¿´UKoC´Âé l™Â¶¯æPåzþy3G-í°æf=€ C~ŒšÆ¥ÌböZ8 ïg{ÿžyêìkÐÇ>K}]´ ŸéD½™K‰šõ2ͤ.N身‘DÚ©1{O(~O„zÙ=@Æ¤ÃØ¹¦o:î¡£›¢Ô‡­3¼Ý!ƒKÑ"öOÙMò­Q§3öã9ž11lÇVÈt¸­È9èhôýºFH"””' lJ™ÂleoðvÔsœM™`Yg=Ç.ºö&á&¶L•¨B-å¸Z%UA}&ÀÆL#õ‹6ï&¼Šh³ ßÚQê€R»{@ Z›=$ŠLñ¸b³Ua Ž‹z‘/ ”«MH®…\_®9 DÛp#@JeÀK» ¼]œHbýqö “ûW…j¤sÕq´þ1kœp=ZHˆ 4›¥çy±çlu‚5² T.îN9ˆÇp‰nž9Ä î× q'NU Íò\'_–#Èȶ‡œ´S>òϑӅ?ÎÞ„wX)†›ˆlÔ–ÑÐ'í£XØÔ–¥›&™øÙ«–:(ã{@ ÏÇË(AÈà•cq‚¯2,| "Ð!Xy èϨUÓŒGiäÇD˜S˜ñâÄ€R½¾Œ™7ûuHYŠÐ@Ö¤ q¢S¨Ôq÷UGD¯²µVÔÊ71æ?¥FRg§‹«ºq ³^*5ýœi† =ñGX 1z(šÈ0çN‰È¡”òÒ8°‰–bxð_N–r%ëću)²ª2 ¼û¯4£ ¶ î–§ª]3«¯L_e÷¤!BÊTOEuDÜßu€«N.Ì»¬Ä[M_å¦%×+yS¥ºt&.ôceßdÚû¡_«ò3MÕ„,é^t.ÖÆ‘ÎÕÊ„ ;W…/lޱøéeîëe{iSåLa:ÀÀ™øÒÉ kЖǂÖ~Ô5‘UGw@"ü^@ÁX™¹^ó“˜&? ™YÆØ™õ¤)Xï§ä¾f¬‡°Ð‘5 RÓÊ:Ȱ$…A¿Í÷_Ài=¿ùjF,ÐAaŽq5·>›[o¦VÒ ­ Š@•ïÿcF8žÌ?éeM*Iùy÷PX¯Z1îèTëeØœ‡û´®Ür§~ß` lqû OÒçôªÓ¡©U×`÷BÑ-—×UÕTZÉ´‡Ð­TïÕÁ¼Ÿ=Ã\Õ»iT•öÀ—V@9<µSÉ~ø°º×Ù‚á§ ßMÒÿÇÒzÏ >9i¡ò<’#Vq·¼„p–“±ãqºŒ (Ô’ BXy„3]Žäƒ³Vuo<˜ÏBYV‹E©26[sJMq E°;È%7æRV 9°U\G‹×5bبé¤E¦™¸‚è¡ |¾+]efÇÔ¡‰ ƒƒ ÚÞ,ü}s†æ°&l°ìü¤‚<Ü´Tî#b€\4ÁÉG𛋠±öGv®×H«Ç'Ò[yî•Æ«¿ºš ÅX†¡äx¯š–1ïk§ ±òä:ª[‹°KÓN/J®©7Ä !tŠà6ÞÃA`¯C³ìµ êÓ>Í ¢8V>t TGv¡ï9TÇÕCèú‰ Ó!nű¼Ì‹ÁÅæ;»;Sí#•/vLN»¤käGâÇR·ÄŠÖ2µIÛí¿fîÅóˆo鄯/AÈ¥5èÛ~¥ATÔ¦ ž[±Iz'пaM5x뛡¥ÔÐr‰ªbœ…ý»X9䊓'7ýV¡‰Öû'öÂà‡ù'ëðuÕ!ù“9ÿünþùíüóûædl‰«¾*àË3ù*d>fPzK7±PÝßñˆÓÞö´Î'à‡¼jdS缉±ÿ«¹õë¹õ‡V6Ußž®œ\ʦ¾mž';¹/æŸßLÚ_ˆðC`oN>K6ØÚÚFfý&¥í–ÀÍC{·=Ån8›·~¬ÏUqIË¢F¦q¼IL‘ÒÝB@‘V%Õ"߃7êÃÆ›V-Ã= ’åoçŸLÔ3P‡‡Së£1$gf@ôRM e¡‡Ä+1}.£Æk§K¨ýÛÊÓ| f ëI{w¤,pQIÖÁúêÂ@›^q¯zH—¯ë¤[HßæQTv›Eú^¨DHr•S¾›,~ŽbV’w|ñ…ïÇ>0ð´š¾°Ñ> stream xœÍ]Is·¾+þ<>V™ìKŽYªâ”“JlUåä ‰ÚÊÚ¬ÍQ~}ºÀLÌ›ÇGR.8b€ÐË×  Ÿ/Ä$/þË?Ÿ¼~ .ž?øù¤·ùǓ׿øà·?}§è”3Ÿ=HŸÈ ©Ýd…¾p^OÒ닇¯üëðüRLFkoâáý啜„3Þ-oß]^‰Éz‚:¼¸¼Ò!LR¹ÃÛîw׬ñS|6NxáJãá%¾ÖÚzåoXóDˆ‰Þ>àkïöáðíå•ÐÆùHZ…FJæ/yBAç Œ‡O¬ñëK€_^Á“ 6´”â°Ý~aæ¼õÏ©gƒ,£h£%_¿WéË«Ã'ð_»IF3œ×ÓDŠPꜹøÉÓp3AÏÒÈ1ÚjýS §ª—W´ÆZ iy~ÿyø—ÊàÑs=¼Vz•Ö+Hض·™v¡Ÿ‰víl#´­çŸ×\+ïORs TŸ~H}k#«æ™î¿"qW…º+©€}œLDn-¶6“ÛàPþ¾C3½o6$NÃ:Ÿ*dóó´tsÉö\²¯”™€yq¥Ä¤”NS|ýJUðÀóã+|¶–êðSó6=¾]Yo–ÏXgïçÇLV¥pfªpå­ñ‰¬ïq. ƒ„@íÛ3YBÙeÚÙzõ€Ýa‰ua~½óË0s¿o ÈìØ0?¾…> »Ò¶ez‚Û gnÌùü Qä™eÅÇÀ™»ÌTGNgNô5’''MEÈÛ>!õrˆIÀƒ$Á¸v„ö1kÒ™°“*O?1mÆu0p¡· °ha%´Ž~KãèB雫­²s/g=c‚+z¦ ºª“ôÓSl⦯ùD>-*¨ &J•‘*”½•XÙîP"ÎLVû›3-(ÊIÊØjlèôg þ]MF]‘Ƭ_2Vþߪo”µÈ“H“UîLžÄ98en‡'hŠÝtWJÂB`Vú,£©‹wiÙ½”|ýzºUÉ6Ò¦ûcWQ.z–i~|Ú4p€¶üáoÝVŸ¹ ]O©Ú8y'T¡‡æ¯Ñ®$®æLñŠÇë²ü¨ˆ3AÅ|É/å¦ <˃·¾1ªœ/80cÇx13W4!󭊸]WZZÐYº2†ì³Ì0ÑŽPo™?€ØZìÇÆÔSÔª·nÔœ¿çìÜ>U-"îÒ¬w~ç+õ!M_‚¼m)Z!y”HÌ B·`¬*ôÞht\KTéÞœË7Åc£GJÞz°0±ð÷~UC}·ªf„6ù1 .Ì*'Uc#j\o:sd`¸,´ÊãªP_Û‰_Ó^Ù¡—Ôú=^ŽZÁ£§@e¥ß`înÖoJÓo,hÔáöôÛư3=.°sŸ~3 ßý¶´©ÀIVf†z×Uô¶¨8M°EÅéñÓòøzs‚ iet3=#¥´fŽd†ÿ‹[]¨VzCøÃ/›ÐŒL|æu/ð; ÍW>Ô‡Ô‡Ž›K’Æ1Ô£8½Jäá7·´Hb"Áõú8lÃÈmâë†âë‚«V»aBî¥cy†·qˆ¿¸ärm¹ey,(ëÙÞ¢å´nÁÓ ¥ö¡u\6-Û E×Ýy‹&Æ(é8·Q~ |åßÔ(‚–8ªU ^Ë‘²ç ¾B¸Hqˆ¨S“{`§(u,¨tþ—D¦ž~ÞºÙ]¢MÔa ÆñI˜LT€e”ªýß#Ö•x'¯Ž‚8˱®ôÌ?m\J"Hú1—6EmÂwè%ÊÓá;®ã9ȧæÕÖI¿‹Ty@õ jR ¨ki/R{Ðt5EƒˆÐ£ÒïÚõÝ7A Ã-®†UŠî+ʉH!zå7Øù5ëäFå7Ô!Æsr´¶ÂಔX‹ZÐ×›< Å Ÿ%]§­~ÉW½,ò ©DQíWrÂõù8k)_G¾ŠB] _-Š´G½#Ï’ær~†E§ŸRl³;­Ð×ô?$í£Ý ˜ZQ]ó®öà©“‘>¨îèßn¤&É»âaÆ‘¨Ž@ÿ›Ô º¦G×ø|“L¼]gü84É*y5§óNØÖiHCð㊨H!;3võOš°kì„ks™Õ a؉–ZøP/5g¨‘²Î‘&çí8¥É„au ])÷†ë±@ʉNa–>1¼CÎ^#Ò?_bì¨ÖöìÀL †å°±ÝŠßÍ.Qµ—ÜÊ.•b¯Æ€‰˜:¿´.DÙ„Ü·o +“I¢â@±ù^Ôj-y«LÒ«\”hÃÐåµ°©wøC“Žh+xKž6]¶©·2zQ‰üZ.8ƒç8—Óu÷˜¼Ù.nÎFäJÉ3tbª6øQnÛÑÐ Ë<Ê&DŽáiRË#Î܆=ªŒðìýÌ0Uíñy¹è­Ú*« …àÀ“NÄÄ îr^3êÁG‹±>Õ-ç×yŒXK!7âü èw]Õÿì¿›6âªÐvE€ð°JpŒø®A-Fª"`Dœ|×;_ŒðS戼!@J\Üã#p_`d<:E€E›"UÞ­ “ˆÖüz¾Ke³T¤#$ïǃíP½æ½ÂÛÁf}ÈáQüé{…nk¡Îµ uu¹‘ðg‰Ö8ÖÑÝ‘a¹N|š*Êjã‰ìëÃH»±Jéª2niž ãÒlëZˆv¨Æ¾å~Á:shšÜpZ{8ÂDt~Û`‘‰ƒ},Ë4Âä“\¯¹wU·J]ßB>m•>¹¨‚¾“r$ M~ŒÖWî .ã̬»l'µ•«xîíë æ’>øìš ðlå[Îp«q"qq"¬ê;&-{RâøŽSÊËÚÃIÙiv*ÉGžH¾ÚvV‰øª¢Þ^â0¥"?̾2TË0ÝÊQX¯ÌÍ7Õ¡°ÊÑÖxoœnoÁv«¹feúÃÝs~wó¼èšIû0ÌÆ|³FbÝŒ «›ÜD"$Ôæe„rݼëz›¤’¿A Ö K¬6bìèãºx‚nëaãÊIr6~&z'YŽVaKÊB¶þýUØ(*RŸºã¢RɼVèv™“ö³©þç_~3ø²‚4¦©C~µU ¢lØ'JU¿t¶íÓ`tÀJ”ím²ÍoÒ@ÊŒ}&¢%Ðùn;F¹È¦¢“[ãðÙÀ/eäÖ±$EÚ¸U6%7ŒÙÍyíy’¶[yvëñÌl:ÒÔm7žÉ±Ø(žIr3:±¢,@>!«!ÛHA^„¶‚»(Ï_(=Ï÷Œ‚Û=§«î§ Æ), ’½¼Ö &—‹ÄYpæJ)GÇoå&Z`«+vÇÀ™g/WQ†$츛qüÔ"Œâ ÿ€ÄQÉú[(ª0RN:„ßqûuÄR8‚ì›™ÍÕCž‡t‹œnÀݵz¨{>χä:}$äÀÃw[Ápe žU¯X}U«ËÐÐõòöéò¶®Õ#ið,uãVmÁik?»áq´Æ¾›Ü½]!h]:A€ ¤ qQ88¦Êýˆ+1:ÚVÛ;ì+lç¯ðÑ;ù¾`·®ÈaÂ-½U0l¤›}¤ÄÆ…âGF¾ìŽnŒ&.¢2a³ù ³")ê8..eÕqƒ„ùZN™–“ñò>²oSm‡„Û¢=ôi¶S…°Õ8ü –ÔÄ~¨50ü΃LJŸ›IÍ£1cªÉGÃQ$d\¹Ã穱ºËÇ#‡áre; GdËŠ:!?Sç6Ö ¥xLÝÓí/%§„\o£ï€º7S8Z!œ²3jÈÙãÖÞº˜3«ê±f`CB†°pt9¼¢­¥Ï™³ Q›â< ¡cË cš6]„¡›; ÏÎåZ«“Ç‹Xxè 5ëÞ`ÔýJͺðö¤WJpîŠp‘dmho’¥q™ +l„—¸¯Zsï‚ê»~Ð@éÿ®f¼U)Š´…B¤ŒÇýšË¶~HÿvñÄªŽ©ÑhX¯¢ÝyˆµŒ4#}:¨ÁxžÊ­ÞŒøP!ï¹þ+%Ïoý Ç‡4pIWgÀŸ7èc ‚ßQ9S*2Sjd0ÞÍWª})Ÿù¹f ²ÏÞæ³ôw#»uÍóálÚ—^©wpI 7â½ HtÔútÓ…ÌènÁt­¾I•Ù Ÿ´uJÝr7lqöÁÍ»º¶íL•tòµmZ"ÛÏ—ÔÜà,è`}e¡ˆ“ ÛÕùÐĈp.Ê’øÅ PŒnÕn”…´ê K 4azŸ­§Žësíw’%¢j ÿ&¯‚\N ø hlÜYë ©R-?ÓVŸ2»-¿T ÷AéªÔKGSsü€sŽŒÝ”¡¬‹{µ“µ£’lI¿jŸÈïe;­¢Ì }“вåõýT”}¿<¾\>cØ};–Z—‘…REwƒ22åÜýz¯Åñž?m˜B938vûß±ëC” Tøuª^¥ÑÚ©Wi±œ?Õ{åÚ³Èrí™ì{§µåZâHÆÝbÄøÖ/ÞRAQžgœEÆUnn XGuIG¯âI©n™7É,&\{1m}ÜD®¥“Y¥+Õ–1ÿû=Ûô/y,ßÜ¥·5;U `†Ó‰,îõ¾…·‚ZwÄ>ÝÀ‹™·»Wq×lw›âÇ% ¦ž}N+~éÍ÷²’~ƒÉ­ÖQ2F;:×¹¬?¢óXdƒ«Œ”B¤ø™©/‹º\#°ÄúLPxæÖ¢£‘«‚«®—é>lņße‘¤ C¸u-fª¹ÁÈHÕùô°¼7¶Í‹àkãèõТë³mtm(áÑSýA~mî Ê;F®g$0Xe˜)ýIN>H¨E4K·”h:³·†¦!ÄêX+–ùÊñ#€ÁÙ{”ùÞ}_®t‰KmÅ(¶3:THWöôˆ ùd’¡Ö‰Æ‘‘7_W1ß'38Æs¤¸| äõ¨s÷›Ù¸Rt¬…¥;õ×Å…ëõì`¸dk½éÇú LK "Ï„ò k<ª ïü+|•«Adí‹Ö©#¯«i×=j«Ô¦ÐtËà}–#àxÛbØS‘ƒMCçDu‹ª=èœï»–*™+‰W<׿ŠéQ¼ðS6ƒÏÂÊãÓÁzŒ¬HsGŒ”° n#ñˆ”˜ ÆžÿܸœÀУBœlµÒ¼ë`ãî+"úÓßáì›æ>¤Æ–\ƒÛñV³L–\2ó#6ÿÓÃÿ€ÿËoŒendstream endobj 322 0 obj <> stream xœåÉr·1gU>‚ÇÇ”8Á¾äèć,å$sJå`KåIÉ¢äXþútc™ilófÈgÑ•”z‚0@£÷ øþŒMüŒáŸô÷‹ÛgììúÙ÷Ïx=K½¸=ûâòÙo¿vòÌOÞ£Î._=‹Ÿð3.̤ՙ±râVž]Þ>û×áòœM‚Iéíáõù›´ÕΉÃþVÚ+÷ïË?á‚–.(ø¤„ó°èåKXã°×^8{x»ü|? Ó\^.£WÕ„øó/ËÏï–Ïî–Ñ7óÏOq@£&&µÈð¼$ù>T҈Çx")µ‚Á €2ÆÂ°°“ÖÜ>ů˜wüðîüþ_[ÎJxømÒZÒ*PÂdXË {¸…a{ &÷qeïý!­¡ÄáEØÏp] {†2­ë¸upüeÝŽ_§•]Ý ™}³¬Ø#%—~2Zn eü¹BJLe¿_F¿]~ÞÔ¤4Nš)•âž{„ÞZ%‘‚Ê0Àóûó >1ƒÄüÑᤔ€]œb˜e&œy&‹9äÓ+2=Q޹™¸RÍï–/Ü ÉÔÄ?»àèixJz5Æ (ÕÒ¶Ê–S>bR²j’/ŸœOˆ Êäo—Ét½ok'N†5‡‹0®´%ÛŒî ò¯âÆÈ{‰çwdo‘À͉’Æ Wf:¿0ÀÁÞÊÃWÈÞ)oŠÅÿƒ‹kø—( y 2jQFe‹¤¹œÐ÷Ä/µ’|j΀D%Ñt 7…а=Nƒ ‹ÚJ„=eùáësä/a@7ËY|Fʽ|RIN7!lð*Žræ«M–óÚ€œÂð”ù[é‹Ëd6MI§”’ˆÄj6+³å# ÍOÚ’hÆq†OÖÛ o´n¹ÿH)¿ÈÁU\Å3QlOøã›sP þðCà{im P4) ¥*F ç…ù®c^hëÌÕXÈÉFÞüCdÀŠÖ,Žp1á)´”Ù_E:Ì6¢ vLW¿žiõ¢Å\Ây£’ܳÁ¦.O‡ðBÂh˜æ\² …´CAœòW³TN×+¢GŒ ®Ç %káÁa!Emgf>¡¿Ó ³à\YÉR¾¤‹GT·‘> NO§¿Ã|Ó‡ÕUZ$XÇøSêb½?Ù>9?{þCµÙuE)J~j¶‰°r01Gàqbl_#3°Çÿ-Ñ5,^‡’ Ú­OóÊÔæ1ËcÏo¾È˜(ÍØÓ‡B•p+þ³\>%õøÏaNé?ƒF™P‘P ®4³“dzÇqŠ«ðëþÚ•¿öqª˜Mù¦2œ¸8sµK„£°äÉëÆJJOÆêÏ+í£uãaÁüHü±út2׃½dâ•?E¥ŠØ­@T7¼d4Z0+”¼­Çzz§åȾdÒ1 ¶×Ë¡Ezƒvd+©S T´"t NÁ 5YhÈ4hg_ù>…+{t¬ƒ¿ÙX†–î­ ÑéÑ ÜÍ;êU»pn†ÜH—Î ª­n<°ÜÆõÑt pwm––ýªN*7 ë WªpkfÖ¾à龑¯IÖIÔÂ7ÃÈ«"¤±æm’[¦)¶ø‹7-spU°ËÂüJ.ÇDp' 2×êì"Ø PêÞÇO9Ø*¤…Q˜ýPýmákÆÍéôwm«ãÏ=¶‚A·'m |1UI‰Ç«ú¯ã>œ¯¤Mps«ÒS¬7ЃªÀ dÊØU §‡¨À±7=¯÷»eJ×aãEáìBÀÇ·€ó».‰\¯Ëè»å燿ôH,@dXcÊþ†rkm„Œ¨Z6*ØÊôó>3ep øúwìDgêÇ82Òt. ­ü½cÜH§Ó´$åÒµÐ(،ܲRXò4u îÒ*B ó¢90嚤éߤïø0IT›1P½–ë­f,PKìã¢E³“†$ ‹0 V¶ÜR»t—FÕØA»ŠÇż —hDÞDÏU’/‚V&!¨{Ö&´uèkP™Ã “C?°*‹° z~hpÈê”MZóZ~:¢ff‰G=Ú+Ÿ¼g`®=óÃ)õLÆ÷iôŒB?EÚZÏ(ˆ†\%¶uˆ‡S¸íѽve~ *gí£’!¦‚Oª'ÔJJ™Éi÷H­„ç°ÊîÖJaw)7j%œmÕF¥è&0¼ jü&»¸M-CβŒìX.ÔÑ)eªÒIaPtÃò^*æ"TÕë>‹'u¥jÏ„ž,ò—§”rêï1Z‰39PKfR>æ|v.à փʲÑ–ópÚêðÉ ö?]WÀWÕ +ŸõtâEè‚cEžùcñŠ$a6ôˆFYK¦Ñ(á7ý´Ö(°òˆF I÷´¢åÌ6Eh@–ܯQp÷*Ó½¢Q„œ„V›Â–€Y=.Ÿ,n @©:s½¬X…™8]ërÁwqkù•$gêÜ$µˆùcWz_9„!Œä*— ]‰=ÊHÏ£P>W)Ö2Ñ åixDµ/©½’åI¡Æ£l+É¢‹hoºÐýŽ…õœW¯þ s')D'8i‘׊RÐÌèýZð«6‰‘wÐ)Ã…FìG±]U#/Æò!Ÿ“Ùï…ét¬B:ºÞŵÅöZB¢ŸÒ;ÊÜGiÑ ÿœ;§kе¯&ФF[˜üºD!’Üë"Ç\%5`ö|Ñv‡\駤MæofpDˆ”œ¬Ü™2Jçޖ˾룢’á88ú³z.Âú;Ÿ:œ¢|8Å, ÖÃÊš1¾Ãó2Ø{5ÒÀ)šo-&álì2Ú¾¯ÊÂóI¬& #qŽ:¼ U û¢LϽŒ h^âøT‚iRfîã°ãÝ*òJgCÜQ;£: AÍÒmÚÒñ^ÌÆîù2?ŠaBT)†äx1I)½brdU0– {q¤?$.õ‡è’AÐÚc6I7Ý8X޶,4íµªŠßâ\¾—+3£0¤}ðÏ$Ä B¬ÿ{y‚“UüÃy„¯ ÞŽÖµöØt´ r×õ^)¨DH>Íí^ÌV­.‚ñXIjõ;ÅJÊëo”U5¾Ã†¯Ð lM0áI};’Y?wìá)c1IÛGô~„ß?-2ÕT; Wrp§£5=‘¹‹©³}ÇUÈ2(v)Õº§2@k.VO²gK?‹ld”ìNZãwÖü,2%­˜xÍï8¬Í0K_êsI“¥SHƒäž×5ÏŽ018eÔ7=‰À®[ôY­Ó\¡Å³—i¯bÈ•1øj;ãviNT¢{‡-+ö¡kœÒQ×J’4zúh‚ ¯»VPÜ ºÛÌcô™÷þº·1ýÙ²m/Å ?Ì` šý=´AÆxhŒ¯½¾¥hÐÊ}‹é0~n¨‘ÚŽÊà,¶…‹`žî¢æ‘¾Ãž¹:„’¡u<†©V8 .7‡ U§D.¸w9ŸƒáÄã8?ö®Å6ˆ‡ô®i‹Uø¹wmS;5¸Ô^éÃ?¾8]½jkèSr-¢ S´yÒT 0‡.ZŒNÕSyÀx$ùHgßôGñB¦ùu*^†±æAéª;ŠÊÚ†¬á'¼ƒ¢'Áëû"áÆ†åå …MÔ¬é•ÃB“ ‹Ì}"‡¯ˆ¥lèê¢BË»ÝûÜvA=õTÑ—“Ê8´š¤yàŽ ™´ûˆ0;ßñ8Æð ›Ñ­)2éÍ­ hð3µ<Æ'-äÌc®Ò”$Œ§.i“Ý•™¤ã0ÀgÈ8 ¸ÆØ&ÁÞ öˆ¿Æ|pprlY(OÃ~µ)~©m ;ÐÊ,ˆ¯»nÑõ\N}ú!/w®ßŽæk ¶/UØ©Š¶N˜‰3– O ìØóêH¢Ò—-“ ý Y˜5  !S¦n*­aü]!ó‚•C6¨°^ˆ1^å¬]:@™xXq¢$,ÅÛ&h‚ÃêŠ^a!J;^8Яœº*d-‡=z-ªâPå‚,\Ï×OxP!ãµî\ƒÄ;E?OÊ ¬NÀÙQ¶¶ëº°ÿÆLRS”:$]c›ëî͉Áî‰78“ßoÕ=!0ºú·æ´uÛ¦›îü&m—YZ•u …ŒPÝô• Œ0÷±ÚçeO3J t²y!ƒG9´£|ºl¤±âöØ>P}éè…ïŒßÜŠHñMú‡±Ém'ÇÏók=iÏ+læf¨ZE`ƒ J`cÌÜSè¹ð4®U‚ÙB1”¥¦póŒ×§„õEaõÕÂõ½ VcÖÅ—ÍG1:ÍGøÞmݹŒ^-£ïçÑøØ¶­Èºx[·%‘€9v(­·% ìŒU½k(Ä?E=´r[ÝÎ@ …Wµ¼ÿ_ÏX!Ô–þ±‡_ÏØò¨ "ËŒäâêæ‚Å«Ûß,??,Âòz%—1>.?o×¥©{ÁâŸø÷æQ’,¤±ºTþj§¨PØS3¾95ʶÿˆŸòP0©äEà«v•Ä0ïˆQo¾“>ûg¹©^Z¹’€{6ÅÀîîÄ(iv'xõkˆb»Ú$‚h`öØ+2)(1I7ëê~cÑÀ†Á§Zh<(`RcÝì]ê¤u¼(!Ào·\4þ氤ꉶ;7¿Ãçm¢ ›‹Z@(ò^Å«ˆ^®^×·ÝO\¢¸õñ†|«³vš`XYT,ÞÂtfw áp¦×(ÕfâYe'ÒœËÃ0C8×Ä+ì[7+]Ç͹ nÒºÐÙ7¬Ä,[š"7û„¨wëžÄùf놫¼¯’``ÒXvcCÐH€ô+/°áêÙ¼FJD(ÊôÀîwLð"@ë¸V“C!göqÔ~Ï'kû”UÒÉ!›m žÂµ‰ý×UÂî|ëu•ùwåä¹nåeîM™Ý‡OËÏw=Þ¼"ÊÍv¯cæ¼KTÿÜwÐWp²Û'd,&YX·á‹w™zø ¬õ%ìkº´˜ Øå‹¸ÈCÛT¶;cãÉÎran/WÂ!¤Œ-"mšòŠÇÕ¶ÒwÉ©Cý-Y§ÊÞ Ú˜ÆJY¾j%—(¶ÿÊSñH@•g .Î \•ù”½º}¹“OŠÀ[™i±¨ÍTï+û}T%ì!QdŒ|ñVAÂw¸3x¢¬§@PÕ3Ó)†½ü$¡è—Ý ¤þÅ2Jžøs¡N0»á„J\7“/&ýf½`Ž%:ëΊOŽiGn ÄÏ1¾Ø¾"„\ý+Vd)ó︌:?>ñÕ“•j•&ó¢,Âá ð‰ ›`Îq«[‚i3¸ŽCôÍ( ¹RN \ÌÛx$YÛ ñûc 2lkØ»4Øgb3½è2ÆÍÂDoºLô°À~f¢¯V¡¼/ŸÓ©0 (a-ÇlvÒ6Z£ðHÆæ°:ð`TPJþë”§“¢;ô_¦œ9z`rpÊ»·ç}·š Ë‚väq¹ ú:#ž’[¹Û\yUÆ>˜˜¼F#Ùk=ºÎDå4ß\Vyf[y›ò €…QÓgÿÃi±åɰâ»Ü²°¿à,. cåCÂoŠži€aùÊóŽ8C¹'e5º vçÞ%­~ò'Ï0ïlwõV"†œÜ”“iø³c­e°–6¼M°r™!‘ž¬àkÓ¼W• '$a؈©õ·È’ “ñýÔ6«‘ê‰ä%[P“R[s±Œ¦á1¢øšmÈÔ;™mt2UI#†T”êRÕ7©ð¸rhÝÄ ‚;(©™è·gR#?H”ÑÅ×î’¦£”.Ñ(%XeêÀ8ß“Æw¼u›¨L¯Ë*ú#iX;\QÈôÔ,ÏŸªÆ„yELÚqôÔžìÆZx*X{¨á¨ëžVÙ4ÁﶦÒ2¶‡÷ÆóE6Áñ‰½´áé&ÎðâØ›2ÙDŽ’¿ AJ§›\ã–½nžçäºáR–µz^]q&çJ3列vÜ$¡Ågm¦ü\/àp Á‡ŸÚ€;9W£ù‚ =ÿÄé_^>û;üù/{.»endstream endobj 329 0 obj <> stream xœÍ\Io¹¾ù:J€Õá¾LN³p&'Žr r-ËX–=ÞÆÎ¯OÙÝ,®¯ß{òc0Ïm6Y,ÖòÕÂþý„Mü„áŸùÿO^Þc'Ïîý~‡§'óÿž¼<ùáâÞŸq&Oüä0êäâú^|‡ŸpÎ'sb¬œ¸•'/ïýçÔœ±Ii)µ:ÎÎÙd½ÌžŠöcµ>þïÅßpoé:ROŒ3k]\ÁÜ?Áh®½pöôUúù¦¹8½JOŸâÏÓÏÇéµ›ôôÅú3ä²}Ÿ/s7yÇ|¤ë^LJoOŸãæ´ÕÎ áwç•›çÊö&`!)Ü7³7#&«íBÎÙÇ%’”VùÓwqKá/ÏÎ%c“´ ;iÍíé§ø󎟾>;þÂ9²Bx?)xúæìœOÌhïgf™ÁÁø¢T²;äm«¤uÙó[\]I£ò˜gGã’…næ7ü ô[a— .{•¬O‡?&Ó¼'äÒW)]W‘AÀ¶'äé«ÄÍ2ù{2ùKÂà‡`6'=Óõ髯`§À~Ã5,´üzßÓL÷¶FI]ÎÇJ\WqRÊef+W†ÇÅ¡D6‹Ó?‚0¯ ° ELh?I·Šx¤Þƒm='ÓÍá¿KÐuLC­vÚ­o9ƒÆ`YŽŠ&¥ˆ˜‘ëÈHøo#q¸['´>½««ÉUG€ó1í3É×N~ˆ&Â!‚dZ0…l•̤6Ï;’uCdôj·©º%%Iô>ú„§ f‹èÓs²$U—H¸Vœ*TPœe‡}Åé™Ö'µà6'È€ r^l"¤²ðƒRøI8×]¿6A¨,ÎÞ¤8yjÂ)…”Ê0ò*ZVÉ'!èÃëH+7"ø7ø)ÙÑöfQ\ío¿% aª0(È\©l‡¯REÆê¤èâçaB¥µ8`kA}Œ™„_qÙm¤üÀÞ{\é£x?Îç ??‘sŒæ’ã’óc)ÀöÜg ©£<ó|`[ír4ÒϦ g‹º3o/×gM“O¬Úk²÷çHˆ»íK%C‚Â~.U¨àÑÕBŠÙ(IRM– êþ@;Ê)®ÿœËYÇ]VC;YÃÉ&ršIÞ"ÏõÉD|Ú;*t¸.³ÑƒDJÀßDs Åä¹ÙïÑåèI‹`w¸PãŠ5dŠ’? (¬áDPpÚqÊu|u±Tº(é 8ÊXDkÀY % z}¥àU‘»ééÔLtÜâ²Jñ8zgal4-„p÷±|  © û8¥8ªôÞ†2¼'ÄF觤°lºÂ)xüdTÐ<ÍA}ÕVŒ'Ä6N ¥–"Ÿ·‘&'Ðb†Ÿªg²ÞÍ;ð‹Ã†þºÔçòÙL+類m’…›¢ûY$€Ÿ}Õ@ÒžxÁ·/w ì=ѽNC®wÀQØ…š`àŒ¹ìZ²wqˆs¦GH‡¶™AÍÖ"¦ýˆ™+§zØ-‹! `¦cPe«S\”‚u}´LÞMÌ›%BÐ:¤!ã;ÁÜÈÓÂn'.5ñBð= â}CÀKB!Ù›4l¦ðåM\ô!‹¦‰ÂÐÉi¼A!*Ò¼×ï ˜0 2 z&ïuT5-ƒf ®d<4¶É‰Õøà{Lm5l0Úv ›làkØþ`ÚMŠÌ„±ÓnWŸÕ 5þTÃÎEWpêt“Yn†®U:‘RUÅ}aDØ%CU†4ËÌ[òt Íœ¥ÆKÎ2þä, ÇózžÞ†ŸÆI_‹ž¦§×§Íô%ØG©ýBÚ ¡Â”cÎr“ ÑÁ߈öÜVÚc¼²&¦¨¸³ª íÙC†´nÉÐ|Îiôe†5¢Rc»†3:KÅŒp P‰)Oô4!¼ÆaïÎÎ+¤ùP³ÍsÏ3“ÛYŸšvšu¡ê\€=äÌÔ 2(jyI‘ëI‡”’Üy6ïÁ™-ÛlÇY) ÕÖ¡³ÏgS‰à*î”[s§þ7üî {Ø·˜@ÉZþ—L×ÿΡv×ÿ&EZ¶›+±†½OÏJ"Üf¾ò.ÔqrtK/C Ì@)l»í,ßQ^ZC‰ëáQÙÔƒ˜}³w¢ŒÞƒË¶¦§]ug²øùid™-ÊË`mÆ¿f0‡ÖŽ—qrš¡]¾6D̳*mNȇ™ƒ3±“œúª&W þ1Å|ÊXß™ôÒÀÓæt®mDü[¢|bñ·#eæuÃ-öìsøPÄã“Ë™ºg^õ¬öèì5`nc SOÙjò‰Ã‚}ÑHFC$£ôÝG2ÓÙ¹•dà9þ(É;ås~Óe(H}1;ó¯Úñ4²Çû0Bi82#(©ÀÖƒ3_–|˜ ß›]@0áÇ 橨cýªâ«SÉ_Øìd¤(² r†ƒ1+r¹Œ¢½€ýy6¬‰”:G;J`¢Ç6’§³ ‡€ü‹H àî’Î[xÙÕ1BÐÛ¸¢LȈÌU†ÁŽé<"Ajk±2ìJoMXá`©+ßVä-œ¼mØŒ˜Œ1ûWüpI-+®ïªW¾úå°ãeM©ýeÎøÒ„…5šsÍ„gQþk"âóácTGFô€^ïüï§1s¢-’Ÿ³¢%&-ÿ–ú^¼•¤”U/(Uq¼¤ˆ¹bl÷£\VÚX6<„r„à–èè-(‘ßÂÂCÃðÁkÇÜX¦RËGGß©)é$k„V±ë²‹ãêb(<ç>0x„ÒøŒ”üèÕßÄYŒÕ¤ÛPäÇ®…"ÄçÞ±Q2ª ˜6¦ ì„ä* õ+^–‘ÓðÏœ)Ò€?íb;¾Õ#,£·YÜ0æ«ÃÅ 7jÅ"¬†˜ïy6÷–?ðeÒ±ô?°Ì‚¡ËRG !Ö‚¥ü,ý'¡€ZûRïTHà’a øõ ãM$[†“ •B銂W’åÊ%×Dͺ¦Âv£2Êé·W³5ÕZÑMOÊËÂV¦`ñ)Œ>Ô·Yx›qsw†¹ômñçvßñ†w®ßÔiD&’‹ŽŠï62ÅÈ,ã@u–ƨ’ã¾ b}7Ì RŸI±± £ Žºçnbï»\ÞÊã;çå.t÷éfèO¸ý[á'#ÔxÑ<ÐËôóÝðD¨ •èê'd% HÏ&&°¯WA¦6wú€‹R­°ò/š•xì{ô€KLwŽ"á#<ŸH¡i”¢F“â©(­¡iø*ë+Û±««èƒo5ëõct²cS£ìOôêQ¦G”í8{Ø!<(»þŒ¶'ß7iÀ‹õiWC µÚžºD£oržï ZÚ! aL. ­ÄLt*p¬Ö”úU‚ðñJÑ&rÜTÒi޾ð·zÂD@#¡Ãä˜P*,Ì(b™ï:½c2JCK™Œ–Ç>ÐÄÓŽ EKIí¦)ŸOÒÏ×éµw­ywšÒ?ü7h͈(k&QxŠîr\²*ž¿b²(pz[²¼Âiãyd€ìòeßZv ÕÈÝü”{+h˜ZšÎ! ¤Ôk¾’ºŽÇ„Ô> ODãm›^mšâzÆE/Ù²Ò\!ˆæfnÿžc ¬¨‰¢5²&êâAÓnu"[räÔXd¬ˆQùÔ´:ÄX}hº›lÑEl¥µjG†=®®z8$rusŸ DÝÖµÓ•ƒ>ÌL: 0oŸ}·Ð4nä!ýn˜Âû„ù¢î´dacQ Æ…ú¿›÷^TáCÿ!–âLwýRõm¦Aìaúù(ý$~.T쇄Àþžü’žþšžþœ~þ”<VMàЙpkû iµ¤véMäbJP¦ª G7à‹ªI]ñ«‘NÝôª‚˜xÁpÚ‰M]—ôΙ¥#é*\tó¥©UqîMg*»VãÔ]‰Føù÷ôó—æS2Ù÷éç_‡†Ìa=85}õÓ…È:n}Ñàþõæ»`ø":Ìýy.š„o›Ö98ˆb…TÙ9D†>Lšò¨©?D«¥§?¦§»TtöÒz’¥“&§M2ñ?&Wôpx@À'²§ú|Âý‘71ÈQbg×Fu ¬ãŒåüp,=«.xൊV{^ÕvSUµªö¬F»¤<ñVúû¹C óuk̆.²–™Ü1¼oJD»±a^8ÂmëjÁö{U˜QÄ™°]àrïúv^ƒÁ+aÜàxÁÀhÅÜ «Ìa.¾l{*ç“.Zïê¢îû§))T,ÚEä!±Ö4 .Ÿù°LÒ¾Vä«Ë] £K±^8Ü0‘AÄ{÷^‹ïàM@=ƒ~ñ"y ÝÜaQ€o3§F÷†0Á»ö¨¡|7Z7xÊËU·hpà•÷_ÚJºòŠ{ÉñÌùZÞrGj‰ûP¥Ñìžlt´´QZµÅ &}¾µÙ½j@ø4÷5‰2" ]7¬ï[ƒà¶®æñkòVsã¸xxÜÅòEŽlï’…Ÿµ’ðm}H¯–°_u0öÓ{+ò\:m¬ à‚ÈÎèî»Ë@Q§úÑ™û&Îa-ï–­j‹:›5¼Cæ}ÿèkÖMSñ*â0ô7ôüÖ _`ÙW›š:¾åÚd¡-*دª2,éÇ—žæ=^?ÔÊßUýP¶¾CqTí‰ËsOßRíp}sgHÖªõ‘ú‰¸^%#qµ‡m!_[6k»mù5Ù–†ö¢ï……÷_fí°GËëvͯæ(NÁ”û,J†sKÝM³Ü _5¥¡ÒVºŒ«óñ÷ÈÂæå×üšL ýØLäò-.¾B܆Îغè¬\¿_áQeº•’leìPÀ°Û~Ïn÷ê:I¤8øf„ôu?à"œŸ„uÐ9 Ä³g8¤n€,nh[Û;Švºâ*Òfô—ׄ3““ý&Šcâ5Z+Á”ˆ3M1]ÇÕ-ÛÀìn‰gc?óƒ¹þ¾;ŠPWìU°Ì1…TþÑQ˜½”r•—À¨+¦.z†~’hoP·Wè4CZ**”Å¿ÇÙC¶n¬Ì‰ÀúúY@¨ÃäöHlÇo¸oGl%Æœ+=žŽ¬ÎeÿC [8Æ]×ïþ^“!…~Ò#XV÷ãkwWÝGàfù(„tDµº¶O¥¶°á¬„ì]1w*|‡ïÈSwx3JîR†ÕùÖ÷è·önIGaýþ þ@Ôð–9‚—{@®Ç† W˜òÖ-Ÿ6ÌïºhAφ4wñ  ÀYç²¾ÀꛃanÂÂõÃ%H]Þø¿ —Ÿ!ìß3äWËe·ý:—Ûv¥»“ ì·B|3'·ÞP _P1&SÞŽ¶õB×ê›#€½ì89†ú)1úŽ Â¤£ÔÄ ­öÁ.Ϊëa\>¸6Žß.±6¯ýÐ Œ‡;½°6ËbØîéwˆv^Ç×´òí°ˆÊ…¸f¤]‡éÉÔ‘ ¼X _º7ÜÃ:¤mJÅ©S‹oUnÀ ÔŠ'¬.‘#+rùXï!.õ3¡N·t{ ÜßHèëüÅ]Y®Áò‰ðxøY> stream xœÍ\Iw·¾óåGÌq˜çé`_r‹“XIìçÄ1“‹ƒDQ‹MI´HÉQ~}ª°u ô,e?ÔìA£Z¿ZÐ?mØÄ7 ÿ¥ÿ/_±Íó³ŸÎx¸»Iÿ]¾Ú|~qö»:»ñ“7¨Íų³øßpi&ÍäÆX9q+7¯Î¾Û^ŸÃœÚ g·Wóåc¼4Ls±}Vîþçâo8·¤s >y!ÝfÇŤ•ᛋ§0éWç;xHÆ Ì ×J{å¬JJ«<̺“RNÆëíop€¶Ú9‘fáÁk¼–R[a·OɘÏðQ…m† “ÒÛí 2â%yòò\ØIkÅq>瘫ÇE±½¿s¡¶wqÍÌ3Y½ŠCŒw¸x‡bF¸í›y_iÑŽ[Wmà͹p“R@O²æ—dðëø©$ß>Çׯàòo[k¼æò„¬j—¢µðbj'´®Öõ”ÌCçÿý<&±º#X‘ânsñÕÙÅo¿ ›NÒòv¾|: '"dä±Ëùò}#zíc=Ñãn2’ñ(zZ'Ñû>ã½<“”ÒÈX­*Ú‘L¤PHDåÈ%¼…_\E-*#d–·ç;>1#u"áý¤œ©$’.ëé€]ÿÅGa³äGÃm ÍŠˆâjS F­X&Q,·”€Ñ’”ݼTIq¥€]x%¯•¶®ý‚–¸h­ýö.áÊi7zðê s< {XÚ€ÔôöËþ_Ç(—äÀÊ#rùø¥Lh0΃Á âô!.Þ2•4>ªÐ›j2ä27¾Ç“ di¯v‹¯ØåwÔ’[óh‡fË)Ô’™P Ð örcD(:5}”Šù4ï…ݬ…°0pq/DŸ_7ºÃÓ#Œ™áIÏèì7ÊÆe}=*_Aè8ó"¨mI‰´ãGeëYöC²RéÄ:Ëe«Ýèð°à!ø<_X‹àð䪵ÀUYo¨µ “¼/JOߦ֓â—Ñéðn_9aòB¢êÏçËWpÉàÕ‚‰f/¸Caj*%¹—š#äþ¦‹¦ÞÎrÿò¹¿ë:Å'‡Ë}ÁcÿÀ-Zí*:vL»— Z0ðcŽ@Ú¥ë·*a0À»EgVì[ŒˆÏ€ ]‰…Lïß+li à³V“Nõ|¸wpñуàœ÷´$ú»ýZ’="—Å#VêrÎâ\ÿ"¢øpî@4…æHlªb»ü¢Ú-ÖW9>´¡T¦ø_ßBö4Ì7Êåm­x,‚lûšk šº·ÇA±†‰¼°?Îõ¬Ù^ô£œ+¤†˜àý¹+$…iлú9ê9p¡Í‚Îb²j5Z#®7àgEÙÌŠYŒ—+fqAÜh“&…©aÀ“r·G\âżœ£¤5‚95xª!1Fµ¢Ç›$tËžW£©¥¤×„sdaÔ¬Âç”ð…QÇÛ|Õ¬¯ñŸ34=…àD ˆ'»íJE Fö®‡‚JÃ8Áóë ‚‰…`ºw®Ñ|ÎfåO][ÒÌÕI³‡ët±È‰ÓöC…4nVÊPŠÂ¾ÿw%!òøÏ䟬¬‘å´žiWèÚ´b@O ÜýgOr:úW ±Šhm$ì€9×(ËÓCÙmê™_ÇYÀCT¦¥³ÃuÊáÕqÕÞÖ`—Àºó«8Úñ;,Â)švŸ”LwÌ]ˆ+©éK¢LRšP«5?ÑDš0®RŽyU&AQiÄ‹8Ú³®Ëa{ Ì}‘º[o³Þu€ÞE%³>z„ôT-ŒîY§À{ôz5*2 ö]¼7GEa0‰õÖ£"ÉM/*Úƒ:*’öìÁ½£¢Â‚ ˆE½¶­˜0MXËÓÁ“Ruµöà¸ÛÄØ§ˆ‹ÐÔsWi"®xB2èºÄ nÞ¹ çò¾–ß®ì^Ã)}.x´›á)Ô†&dpÄÝÃÚ Ä\_ä±BZdží§´•ëîdàO–aR|wâ· P¨ý(aXRÁIô·'6ZQå “ÖÓ“èk¹ˆI‹d.»/¾ž Ò§”wóå«Ò4S»q1¬5ló,+%¼Ï¼ ‘º0=ôhšñĔ̓HÎ)N ‘Ü“EÚÖ8A'üj€C·Ôfó1™î.Ò_Yu¼­C{kŶ.üÖÖiÌ[‹,7ÁÐ\H42v°A-u$öŒ\s%&€5¯íáG¡;ÂWÅCµVð”©",J ±±«FÄÚìëþZ¶^Ö FšÂ3RîÎ!¦tÃ`œÎ2Òa*Ä©GÍ@PAðÞ«¬¯ƒê Biã‡9§f혇g@˜#î}å÷Ç9ÿPW\ÇYŒ®V¤b½}ðúžº9Ëq8Ï»v<ökˆˆ1Ö¢ˆñ®âæhŠßÏÁ`´GGÂÅ½ÝÆ•;5ìÎù‚E¹ f'MÚc‚š~„ÝË#òÑÂWJˆ`õçLàìÂr®30›‰ Ħڀ5ÀçwŒb/LÏ“D8›¦¨¦GLðB’šÝãíe¡–Àµ0~Ço#õ-Ï¡¢’®§H²èѲü ›h»óª:C‡,³Â©£Œï÷[òè]–ˆŸÃJÁ\Ää¯å®ó5tâB²~8xXºW'ÏWûƒ4›+Eˆ˜·)´14×I%ói”LMÛ}ÎÞ$b(>ô¹7dø"Ÿ“f®±û’ÊÓVËŒ=íûóÔ^æ\3"t0¾•³c<ˆ˜ñý\Œ=k\l»²³WÕ«©*–ˆÁ²—~í9C$þ±Ä¢|ÃÁN/ XÔè(¨à^Fi0ápì*uÐ@´A 20ßsqoédmÃR´½}ôöñÍ‹ó‹Þ|—Ça v¿Â¤ð|¹såmQ4ËY ën±‡É@¸ár|X½§ñ †8U% ;‰©EØIÞ¹žŽDû:H‘^ÇF-pÃ\Ø(Ø Œ§ïA+´°ißÙ)é\Óbq¨·¦QÔ4rhtŸýŠda¬o‘Þ5ÚÕŒv“OÒ›l7¯c;¡Þ“É ŒoùQ(Fz ,ò’—Iúê5Á Sɸ=wމêQ:„ZpðÒÐuiÙãÞk(²§o¨¡LÏ8ò=i_3QHTÉ-~ ¯—ÜaI2D@™n`¨´ ÝÊå6h'½`¾[B¡pž“4ø×É€w¬¥ Eh9ÍÓ=ê…%4SC^¬Æ-`÷Ÿ“6®9 $“o²eÄYÞ~ˆQ:ºÃgÔ¼ Ü•¾7÷Ò&Ï*:È=Â-BwD£ö6Œ˜¤ÏrvZVµd4±D÷Rr V«ÚZÚáÇt`›R eþ(2ZWuò…š4âTi2“·Q¿x7 ^×׸D-D8à¶çÈb‚‚h vRϚѽ8,Ç=Ê‚øÖ…Öé7 [²añ¶\MºÆÍ×Þ3µ-S›æQ™fv.c²ËI<{cY`Œsuu7vT»ŒbºŠ˜ŸÅµêƒÂ[€ÉW.ÝÐpìD\zÔN#ÂeòÆ{Þ3­;)°õG, Ó³»#¹ºmª+MÆ­›Í)ò×€™ ¬Æü¡aÝ´¢Wµ6¡9ä‘ÍÏ¡¤®à2Amù1žÌ®)éaϼêÔË[>¦ßJH]å÷…ô{Æ'MIÞ¤úcCøf놸ÑaÆEIu¹k› \¬CÕs8JX]áG'”($#FÝ2mô€²¨E?©™zõ"Yj·U—<`#ik¹¤ÍW£Àv$'cc‹A˜7ž§–_=nwMË‘]´[Кoɪjs‹¶QŠÄ <´1'|­©¥Aé…ú6*Ûmý_CNptWjO:·Áäpa ~>|´+Óe¹ sÎ ŒÖ xõ~²€Ã²iÔ3_^s`H[O•+%]ÏX‚“£ƒ³µM«‹S2nrÎ öùyiò‹Ý/át×ÛùîãùîÍ|÷E¹Û%ˆžœžOÉìY<4qØ—3ö#m9ä<ïI9íîÂF½n ÷%2ù÷'XQSñÜáj­Æ~žÀÕʇ£póñ¬YÈŽÄäâ9ŽpMpÀ‘‘þ’n#ÔbÆ7ˆ(˜䶪ŠçCƒ¼)}k€™všÐNºþÇùòïóåEwÀ_ŠåÇWüùâì›Ð@Á7ÏoÏ`ñzóóÛ<ÂÎð.n¯Ù¼‚DY[î\Ÿ}{ä—³`ðWg@ü¿œõõ¼²Ãûþí?qbú¤Ví1¹å¨Jñh!~NJ‚Êô:I…Y´Ê†Û`¾@–sÅ} Xá°žœyú‘Ÿ¼T#Û–% ¤ª‚²xNZ%[³«’†12w)<š1Á|r–¾™ï¾¨¤hYmç¼ýpÌ)*:*¦›fgd(L®ÉÙÒ¦Üÿ|P]\öÄJ ê%ðüÕ1Š]Û¯ŽéÀÆß1+Ã÷ôH x–—¿-¶r^|q`ð”O‡ 5‘[&N`÷òlMn3¬ý¬ÈÊ7r~tÀ·±$Ű‹&ñ©NJp/ö Èað@°xïYñLôÂìæ»ý/æ£>§4¾÷Y}ŸÆwdRÿ¸]¥Ô-¶Tó™ëÅ9ÞÕ;é ðÿ²Ó–˜Óü}'lúÜjÕ@d¡˜¿ ná'‹ø‚]øÕšº†ªÚt/ƒ!£¬ôëÒ„²–‹…]ÅvyUJƒ#%9œú„uš‘-6gÏ€`±d% ëWÏüìOùü•mvU‪|µz~7-ªŽpþ)7/LO ¸;íãuâ@ŠE?y`O™ Ÿ†جã>FwV§–}$¹k/G/ƒ¬á¢¸ª'íW;^óBïqîc탂Ëý7_ìʤ°°Á’z18ÕUIºŽŠz”WÀãvñÍ—‡ØÏñbÓ¹Ä3dá]|^¡-—%.ûæìÿz£áendstream endobj 343 0 obj <> stream xœí=ÉŽGrs&|ô4|zô¨Ë¹/€uØx ۰ц’›¤4&›’HI¤¿Þ‘U•‘[½zK·fƒ‹Y¹Dƾ½oÄ$oþ™ÿ~ñö™¸yýìÇg’ÞÞ̽x{ó‡»gÿðŸÁßÄ):åÌÍÝ«géy#¥œÜóz’^ßܽ}öåá—ç0£*øÃËüø>:a¥:|ÈoÙã7ùñãúøõÝŸpiÍ—VfŠBË›[©&kœ¼¹»‡UÿðüVLÊXaMe´ö&Þãkï­vÏÆF÷Ïoµ6SP†þéù­œ„3Þ/6F Âd¼ü„_é)ÂÞå¯^¥¹¬WËj.¨G£Õìµ³†¶Gàt>êÃ÷8Xk˜ÃðÙz‚Â}®Ï|Ì šÜ /Ü|¬ôü§´“q4e‚¨rH% ,,éÚtt´õñ5>%µæ>äÇoòãÇõ±wƒžµ Ër=Xj@#åáuˆÅÙ½pó!绕–Ã}†¤6ZþL 1ZøÈ‡´@µAY[\óiYHÿ3[é[ö|Û¬*U,‚=&¤3€iŸØó2Fûp˜ÒýjåÝ ã‚@oeŒ“—ñæVÁç*Äë>q>d⼿"qZ{6qÂæƒW§g °“Ÿ`*'‹‹~•nB¸ŠLˆ6_œµ*Þ$¨ 7ft Ù!&wUšÆ…õ§Ñ´õ“VOEÒö∤á^/#iħ¯KÒôé<°aí-hm&éäö„$ $ìAØT‚îσœ¢‡eÞÄa°¢‚¼ÜÆÛt,"Ú,wà}ï¸æ;PpN”Óž•3»‘%¸8 )WB˜*ƒSFw%ÐlˆrýìO !ÝáWØ¿ZÇÛ‰Ö8f|wó5|åí2÷·]l~ßÅü_ºcßT˜/ƒ¬Qß©¸¬÷·¸»¼EÛ. PaÊ'ÿ1Û!<ücýaõØËõï"}(6ĸ2v4vàŸ2Õ?äÇo«±[2]#㟗û}}˜š;!–f~qýKªvç@¨ ¼ç äé(P¥FfB T¯€Ž_æÇ‡üxŸ?äÇoò¹>®oGÛf@ý²ùj©ÉÜy4øu;yæà¢óðߥ ¶eºº…‰€5úY€±`¬oÐ0½ýP?²‹¦·×ÇýCù(““RÎJB(c °@[é÷鵯6à`ÈcÓ—¥fÀ¥ÕëF BaÉù÷2 ,YŠ^|ëÃe¢ù[°zÀÍÜ”5ùÓ¹¾—Sˆª”ZY8Þ§Hm/JsU… / ŒÃ>0w\åÓøÜßg*›¯•4†ïèz”ó¨^€šÓéyñZ£Xvgð*ËÊþ=|–f/¢ƒ]RÊùJïkãp<íÀf+u®F¤}šBn€¿¨ò;0…­:Iǵp(-d©ä—x,%W1ÈÍv.†3oáQÀæ•èïÄN°OfuaõÞ@ F³ñ ýá1v×aÜ1˜‹D¡Ø×ˆy8´.È:_b8@ÚÆ¿Ò«ûíµ”K¯nCKÕ²^Ùh)¡ÖB1®€’™ŸÎ²]è€bª°Ê@.¶o .dÞ°1?³1œoòy’Ð6V¼r*o°EgÚÝÏîþþËÃ#2ÒÄZ4-–ìt–I9É:ßÛ›4"ÊK¬EåÀ༶ÁÞóÁÑB6'à¦ãÈ)û>} r©#Øf…`Vçx×|ˆ"º’lmÛxdéu9pq« öø¡‡Û;ER*P*Ü“ò+fn)'M¡ÿ|HÆ~ñú}:!àýᇮ2ÄÉ¥C:4É·LÿzÃÞ/wêlçqv"q¢…ªHœ¯•œ9V©’D¨Y&ø‹ÛãïÛ{7ɉ“xÔ‰ú•[ß¹’Þ-þÇóÂÎnPôJïð6P¥%±/9dF|í5΂ÿÚT‡i[tëÛYÕæ2»ÁD ²w´ÙÁߤ©­ög‚Ilk(T¹îà>QB¨©H™ªîwQÝAUÓâ43‡IÛ÷qæîa Nöî…ØIÅè\nAÝPÛ _r•ÖbQy?‰†f¾o‘°y‰B.[… µ6'4Â5.s š›òòðGœ nK6Ê,m¾«’·kvX*:þìˆF&…DóÉ”éJ/4¬ìÀíùj½BµÁ’Žø¿}c¹ïz„åµ9ç°gyAB¸ì“û=ÜUt¸ÐçÖ»;¶]É~’¹)ü|Mº¸·¾ôãR.yøA…­¼Mtüe\ë°S5£k~t‡ð*c¸ßXåFÀ8™¯ YŸ€9Ü=_ã\ÖÔ8®A}Uz$>*ž†£êOb†> .3:Ú1‹þô¼˜G duAi'ÒT{¥È.C_-}xøê«¾&ÝwI,b™(a ƒSŽ‚ŸÀ¤ªO°~Éxæ²é*uM«‡ýÝ<ƒˆ§Ë#D/”B+2Bx/l¬2+ áÛdÛIºò*ä6‚{+‰PV4Ÿx"ªF|JP¢,x}ß’Ù°fËÍ,`#èD¾Cm´Ì fÓñ ;þÚFWy(.­$ê0èûirTh+@D„ù?lÛÉó4¶»¯Q6*|ásÜèF$H‚‰ç*7šåbz|Ÿ™ê—jl:É›£24fS—qî“¿/ ¿¾Âx«ý ‹^íAZ¦F¾gz< Q½â¥ÇóÈg©-‚Î>‡Ïñ1çx€ž•SOFURmÕ™ =Ås.HGQó)3ænú0øIH7§Ÿ ½•~F0JégïòÛËÓϲý÷ ÖÂ1òs0‰òÐ÷è°˜ò¤OS=¢£¦¬þ@¦X¦êW‘UþÏfßl)²_á¬èz²W1à$¨àúI)·òÎ'äÊÖêí⾬Qh·öTlBá©=U&µ“–Ì+3ÖƒJÝ·pÒzh`>oúxUzÅqQÈ‘šËŸgï5²P¹žÄfIû†1Ù9FÊò²&˜H)áJDãjçìúe­%­v\=É)Z+y¥›sɽBFZi¹ÑÂÉØ&Ã>äÇŸ37z{Mn´ÀiW„F ÛØ‡µÉ'ÜäÁ"æhÐqZU ³Å2‹'öCZ”¸A® CWn4~7oT˜ÆÄž²Ð¿ÁGCG9’#=ÓjÏ iWŸ=ÉiuÙ¤üdlù˜À «¼Î?Fiˆ||)´¶-äɰ\—ô ¬Ó†’‰«'UeZfo.^Ê"²m=¯Á²`[‰¬L,YÙñ§M–¨__pg†áÏS$Z´²¹OQoD½Íc÷‰,¹àOYè}Ç4ýa~+I&aB¸*~JÝþ¢¤0Ü•kÍÿ‹*W0óZÈZ¯…´Û–Ý3„ƒÃ(Ì]k$Üu%Zí*á‚”§—Wf‰ßDØ‘xͺ˂y#z³Ì±º¯œs»Ò¶FE¨¸`’[ÅÐÈQŸï ÿ~è‚ëd1¦ÿ {ÿÐŒI.¡û4 ®gªiËi0„ÉÙÒÅ5—˜Lì™ÈÔ £øën2ˆž|ŽZsY89HÑŽŽÌøÉÏYG~{¡s½jëjŸ±%j9™=ý[^å¿òãys_l® :SÌh‰V ]µ·Ã<]ˆ“g gÅV0û•ü®JôG0ŠQ07Ôú.ëÙ8COHØÈx|‡ÌMcæ¨Å™Ëé„´¸†¶ëUèùÓ"~äHÁ,_ÊÛ$Ö{€A9Ž  “€5ù²ÛGÕ—3Ô@ççöjãM›†ggIà‹„‰¾½9!3»zåÏQJ²ÓXž2=² ¹múçaopQU@ðñ:uW12tÈü´¤CÌÍš&±bJÖi^M^ß™ÉÂ6Û§E‹ ýû^ËÁJ4Ã$EŽK/1¨çJŸjp•€.% w\@D˜Œ^91²I¾K»Ó-­áž¬Ð£Üú‡5F8hþWÉ5\ÅÈ::ËI—"µ®i7HóÍž…ÒÎ`føZZRÉÿ*ód àä¦Dí—I‡v6¿`Ò¯stdþIÑÓºó— hÖN¢‚áTY±‘œtß¿vÄ9o'áK]wÀÙk*Äs“W²ðj1ꔘŒÐÊ£ãfl¦IÕÂw–ÈŒöoóöóØý×2j Õ½–£m¡ %¡VzMÙ'S׫P‰v¾g‹‘“Œ@´ý¡°¹äHû.´°UêØ7Vî…œµùu¡@“‚¢Š.½\#Ò¬5³É§`§ Câ:Cq@ÕLN:f¬‡9dšoæ¢„ß 7ï ÂrṂ߯Z~Ÿ 3 RN0 ½:ÙØ6¶¬vÆù)M¢”½TK\cU };2,ŸŽ¼Ý¤P;éÛOѸ,¹3}Ï* V.ÖN¸N/åX/cRÝÚ>˜1޲®Æg ÜNèæB7à–M_â3ËvI¹ˆ—¿SÊILµÍ—ä\j›»]~sV÷V&ÁÈ]ø2ÝSíyôûii=Åñ¶M]˜Ñ˨»I6MtAtœÙ:½ †ú71ì’2ò‰~–W½€ 9ö¨xg’sãLl¹·(v¦ð&U§¨„Fš÷Ï­Ì2j mݸq׿ø5â-ƒåuuF ¹'_³n爑ÑX«³GÁª” ë^gÅUŽüŠ”xæQ”C<þ5Ç\Î)ÄlR)™TQ3õ±…Oc“ÿ?èX›ìtà—¼dêꛓVÿõôóx|CŹ›Ã°M·ŒK…:ô˽– *{BòOÒ®ö7¶TˆMi/+Êe–$¦Çk{b̓WæÀ²²w(j/~D‡Â6¡eŒ±Ã‘8»_1.šY çù7ltªDÛ:~ +ÿG€=l’ÿkš^. Ö•U¹8»~6ý 6u¦¥._ƒ2Kí/µ•Ô‡w3v(Rû¸• ­©KÛ}ŸÖ·¡)U€·ÀV{L@Ï?1@ºžÚp©©«çF'™ž{+ˆé¸¶Õ{½EÓÝ Í¯2Ü£ýVy•“G/q•D*`…å’Ðů#u'ž\å¨ÖvØZW·ìaM4l¢o<$Ѧ›•Íæ‰JçG¡áŠˆ`7•l¦™t¸q{W¾Y †…}¿æ”5‹ôNmF1|¤{!ÚZ»~™Fã‡0dmO¿h¿Œ^¬ï¥AlôÕŽèç“.á¢Qe >'@˶ﶤ-kÐ?¤í¿éGKg4[b¶íúWøSe̾å’4þÝ ¦Ðv‹Å\µÍÖÏËîÆ$e]èlûží5ã™y`'á/rqd®$MÚ[œùoBý Û’†Û"»ßRcNÛNG¸Ñ–qX¦3üE¿ó¬Ož-"…<•SÈdÏN—õèñ¬C—GCp-Å3ÊaV¼,bs„&E‹f%“ØSß9ãÏÅ> stream xœÝ]K9r¾÷¯¨Ûv·Ó|?|ó¶Ã00Û ìA؃=Òº4³’¬Ýñ¯w“ÈL&#U]ëƒÐ‡ÊŠŠüâ É 3Iö_Ob’'ùóíùæŸÿ(£<½ÿ|ó×é‚›¢;+ääÔINÒíOŸžN:}¼Q“”nøÛMÂ9ýñ?n´Up›>Yãýäýé|££‰STUò|£]t“ áÓÄm&«ˆ¤Ü儃O ’‡­- ˜ªØNÊÉê““î7]ìõ]ÏŽÝ»6ö·¶6¼{Þ>äÂùôKu¾Îoϧ?==%P†‚›&…N¬oC'š¬jÕûš–ÖâµñP ¦ÚYØ3ÒD0AH€Yݲ@É冦ñ#_C˜Z¸ b›j¢‘îWUòÜ$AGtkbô 4;Y™$3LUùpó§ú•_9§ÁG±Œª‚b"1°•$o:—šŸ8½_³;÷è8¹qé§z] ýXÀtÐvò’DL uY“ˆUIE×Á˜IzB©â ™õ Y–˜˜¡¶’KB¶¦wusëT?h×Ã?6èý°Ë#a³1LÁаI³g£˜ +"œ Α°¸ø“°e‰‰Z¤¶’‹Â¶¢wusëÔNØ®†0lZÌy$lÚØIX¶"iö´vЗSNçPØ ³˰̓ySja+¹(l+zç® [7·Ní„íjøÃ&¼ÁNˆ„M@·”Òc [‘4{"¨iQ“ Ì‘¨i%'³ˆZ–˜¨ü"1°\³¹sÿÖÅ­G;!»ü±ˆ© Ädé@Dí'ãIΤ¢Ã]PýáTqŽ„LA„Ž‚„,K ›t8&¶’K‚¶¦wîºÐqsãT?j×Ã?6 ´hØ4؃ÊMÂV$Í^iSÁ96 iY-–%&‹ µ°•\¶½s×…­›[§vÂv5ü—O¤lLCUœG}}úôåã›O8‚IEÄiïãÝÜ>½{ÿ„â߯ó›ç/¯ßÀ¥“·0ˆG¼o–ê0  ªÜ6KÁ5(•¥Ï¿ÌRqŠ Oß!Æ,_Ùþúôñݬžfv‰£³eæóO¨ v9‰ƒO¨«Xô¼™Äy¯§Ð¨ÖX¨è{±PBO &³ÖCÛõ!C™:ŸÝxm£Á¢ã¨îk‘ nnUY)BñZ/ð¦ðA¸„ªŸ|î¹,cz²Àñdµ^ÀzK Jã)E‡¨‚àI–(¯õ¢Ð¤å‚¨îÕNO^/)l+¯õ¢‘°ž¢®CÔ˜€3S¢¼Ö ˆÂÕêÑØ!jµJÏÎÆDy­µzŠ‘UjÐŒCÏkAÿá¤OOùÆP¼Ö |vj2ÖSŸm¯™»°ý§o¤Ÿ=¢+} Ä)=Ô>` Ä*=Ô6Juvò¾ÒCmCcF¬ÒC­ãc V©U¯±k¬y0Å0b•ÆŽéA܈S àa¼É±J­…‘SF¬ÒLãŒH…„X€‘Ðo0~±:£ -ú±W¬Â@KT‘¡Ã*áæÎˆU -Ñp@¬Yh‰"2EÄ*ÓøZ„aÄ*‡–¨8 V €`º6…À¸Æ*!´DãF¬Eh‰‚b•ÚÇEÅk‘:fÅk‘:†âµH;Èk‘4:fÅk‘D:†âµÈ#;£-ÚgÀyF•v3à@«e@ŠÕji‹âµZÚbÊŠ×jy™aÅkµ È@ñZß[ %µxo!¼›d[WñÜ$í»p~r†>”/8GÞ[ä»É{‹†wÁ;‰•és—ÞÖ…-áwWÃ? —ŸXy?™dOÊ0™*x®|+täf([Í‚¤ªŒâ‘»-Â\Èb­,YØcsV|Î=Ê[§6>ì„èJèíé˜6Bà‚²X¯H|Ä׿ZCIÈúÚ£.Ìßßâ›}ƒ 2š†´¾zþš à EUƤ X NLäïxÇÌ¡(TÎ`åÃÛy$ð=:ö! tH+šgE’™yqT‰—…œÍ5çvzMÃÂg(_›kU’™€Â¼®­®E£²Î+/æ }§®¥°e;e©ì™H´Ä>R°Áqpy[Ù×Îßß⦀kÖª†uqR¡~ŸmàEj<5€˜>4ów,ŽB¢h’3ÀÊ‹9lß©k)lê’uÍó™HLZÒ#VCr'¤K`^WIÏßÁpT éˆ†ð˜EBù>ÛÀ;Š$êIŸ*@)œb¢_!Q5 É °ôbÛwê ]r_$^#«oelÙ©Ïß›oMcfÞÊ÷ÙFóÍâ0A6ç¬ÅäKläï͹¦‘YV„¥‹À}Î¥ÐåvM¼«’Ì ðÙCå^÷.Tï¬Ð¾,¦ 8/õ{õ®H ·‚P¸ͻ¢jd–aéǺïÖ¹iÌ‚$ù»Jæôk BSÕ½"5Ý6ÜZów©#9—¯-WÉœ}+@ÎÎm;JÉß•DÕ(¬ ÂÒ‹¸ïÕµƒKÈL& •J‹– V´-ïJ?HH¿F÷*NÐ{·î¬ÚŸî€d¯ùÉ`†YÖ}ÚÓãÈ]E­ Z˜ØáØ®Ȇëò4ÐTKÃó¢3Û~*«Ðîݤ±zý‹=¥ZFKv“[X\¸&ï~wsãD‘9QêºÙõ+»óOR@Ó„ØòK¦”EÕ г½&ÏXªî~ª¿`vVh?­ÍƒS½ÛDû¾”-=Ó-gd¨$tA÷P1ñ꾋ňÙLüùñ?op"îa$FkHr±î©óÉ–…îFúT¶?¼ºµwÎC%Ô­Kˆ÷FJÈQоš§t5¡‡ ¤gG‹¤Zˆ{¯€ç}— ÔK —˜älRU*Û¥_Þ–umWWuÁTŒö]]×Å%Öìò2+s§¢²L¥ò¬ÅRoæHv°áR+G¸T#í) ¸T§²š$>i®€‚¼“9ò+Ø-/½{9Ô•Ýò‘©\‹V_¥Àm±ÌòräÅ%ÂâŒÄA½§ Â×µL?¦gK{3LYÀ€Sßéò^HÐÿã¨Ü¤ÅQ¯nÿýîsw´òö/w÷bÂçÊß¾¿0[Õ@óöPl=̤Ôí'ÔÎBPŸ ¾è ŒTUþhÕÑÔËÝ>û^73\ )Ö¯Då™XÏØ‚Hˆdã0¸ÈxªUÁÐðõöÃ|ŸÔÔàG¢ð.+,ý‚×ÐUBwûyÖÐJ£re÷4«e-ªÞ¸ ÂíÛ$w G ‡¢S'³%žQ_ta– UyYòÙ¨.²Ü$\SïÞíøäU‚ûó•X2üe†„A ŽÞùefå£ÌE1‹ßÍ=·‡^†ôb®ÿ$dµ’X œ ‹›\¾¾Sп(go» 2TÉéîÞ*ãÙÛÿ¾Ã­i0ƒ´¥XÝ3Þ$…·o áãÛ  ‰R„©7+´ï!ZkåÌþo`H Ó”^I‘û@âBuRèð勹ýz ,ù¬ÁOA.€®…Noýà])L0î "G~µãîç¹h Æ šÔ!A›÷Ó\ ÒêE™ýRÄ¡”uÀºžÚ‚K»hrSØ)óƒ‡6Œ3€×î ¨;UŸ x- ­|é'R÷JzÚúJë°–;çv5AjVÆåfµíKuRúïK˜•ë…Y†çÝ&õyÆÎ3a† U{qëæ"Á;à*Ì æPVíri_Gƒ‡€îÜ Þ mB'~^íUZb…¶PZ—¡/50牫Լ×Ðß’ŒWì¯2틊=î2Û)žEZ˜›•™ÒÈ~¸¨.7Ú9‡Ï®ÓváÒkI˜m@S(’g"‰v^t-ƒ¥­¤KK=ž NÑ¡‹LìæTeq}ˆÆ•Yç&Ñ[45°•HëqyÍó1S{X“;wØ:¹u©¬9Y8t=øc13BÀe$13B¥•½-fMRÐ ž,áÔpø˜á!ÎÓ˜‰VnRžØJ.ˆÙšÜ¹ëÀÖÉ­Kݘ]þ`;3€®5mgFÅTé[;«’ZGŒ‚I¤õ¨âð1C`iÌŠD ‹/¨ˆ­ä’v¶"wî:°urëR¿] þXÌ”…jiÌ” 1ZÌš¤ + m?RN ‡.'´’ƬHŠØJ.ˆÙšÜ¹ëÀÖÉ­Kݘ]þ`ÌðØEóY:ÚCÒ|Ö$ÕLqe/áTqؘÉÒܳ*ÁÝ·ÁP[É%1[‘;wè8¹q©³«Á‹™ !âÑb&ñd™@óY“tbÀ¥ªSÃácVnn1«pßµás\Ç-Ýn<®0WEHí>»ñ½eZ:šˆž%ÏD‚SêtnS„:‚ñŸ#'IÁ):ì˜FêÐðÉP|øþVRÆþß”ªVÜÎ]þ[·õSÕÕà •O…µèU1£·5IA7Ê¥hSÃáC–€-dE ÷Sšào%—„lÍíÜå¿õqëQDx5ø£3¯<#h­¬ÌZ+«’ZEÊÌ¢U£ŠÃ‡,ÿZÈŠ =iOð·’‹ZÙŠÛ¹ËëãÖ£‰×µà.rÒ«!«I¯†¬I zMž•SÃáC–‡-dEUZ×Ôð·’KB¶ævîòßú¸õhglq-øƒ­LD‘†b­•áy|b‘˪¤V<ÖÏ,:ëŠÃ†¬ŒþjȪ ;Ÿw\ð·’‹ZÙŠÛ¹ËëãÖ£~+»üÁV†¯eÔ¢•éè±3"­¬Jj10ƒ ‹jTqøåñT YDè=ß.jc+fçûއ[úmìjðßprÞje쥀[©¡¿MëËYw?jZH–—7–£ñàÜ:ÖÕ±viyš[·<ÁH ݼ<+†¢â• ±Ë€”‰×Ê;p•sâ•òþÛá3î²ý–{Âûjõè¡{Ù|;TJ{oîõc(ñZy—«g(q:ùŒÅ¯•Îx¸öxL‰UÊ'<®.ÐÊ'<®.±Jù|6p¬R>KAÞ•³†Jé,{"Æ”h¥' &Š×ÊÇ2XÆ;N'É ¸jy@+Éàq°0¦Ä*åW-h¥þ›‚1'V)ÇÀRb•Ò wÜ0H¼Vþo’©á¼þã 'ÏÕðZ-§ì¾$)eðú°d «Ó’åþ[H’+‡o_çä5ÄauZ~–§Ó²Û˜«Ô’ÒˆUªIrè£ÒòÚ…ÓiYmì«ÔrÚ§S3Ú˜§ÓrLJWj‰qä«ÓÒ☫T3Ù£Òòؘ «Ô²Ø§Órؘ«Ô2اSóט§Ó²×‡Uj¹kä«Ó2ׯԖà”.ýx@ëŽÂ]MI½Ÿ>„º%„*öÛ³pë$‘pØŸIî*]Î3಻àÙ9¦¸Î@ÇÊk]N4bW—Ú;K»ÌpGÊ+]Ì3)ÏþáäóluX¢´.gŠg“ãS4ú^‰–ú°DY¥ðą˦¤:M©<’(«t9OÜßVM©ù:Òu1ýO¤áhxOçÅ ^B¯Â|Hwè,‹ íX›UzqÿIiv ³ ÷‡kŽyŸ•1øü_i3þVrÑ+È·s—ÇÇG;+?¯ÿòa¹€®ÖØy·xÙ&ïUÝ®®bÝRߤ®I-ž`›ò—ºW6©ZXë ¸;-žNPôíGµG¥§Ð{$½'mÇŸ_ÊÝ[ÜCW±Ðå¶fuDœƒKcáW<¯À”Ô ¢_EQv)ö¥úJXf|½ƒT·äüxÑ¡ª&TÏ+: „!£‡X< ÛÈÛMÛÄñb»×íÏÉŠN…½îy‡4¡³ rVù ­K°n+é¶+•nS_m¥¯ê7qÏcuS¯wîyÌhfºÑ…Ãññ ‰á39Sài6ä‚ï¿`ãb·éúø¸/HµC{Ž»‘Ñ}CÜi@…™k¢BĺŸl»g?ù±*¥ÄM¨Å>æ¿]Ït;äφ솦êy;^Ú«qA·7½­¯ÉÌûñÔö—λ¥gOæmœÆs»¥qÛ§ˆ¾g)©¬_PjÂVvh×°† \Ü9_`þtR›-CmZî5†‘‘¢@1LH­X˜îÔ`¬CÝÍŠRa¥ª›êÿá›ñ‘Wkn&•ø¿ß…s¾êfÒ>çUç‰õÁøuóT¸FyòÁÅûñ )á/‰Õz?ð¬Ð¶Lwýv“ƒêQÌ•zùá1õ "Gë×¢ø<×yàÒ àô „å¡Xëa䜻›=™ƒ2Ï>Ð0Í 6¬?ø‰¤rÁ§y+6ø9ìÐAÅ/*Þïºçéìíñ?£{¹©0v~—›ºˆA.0vrËêˆ Ü¢ì¾9›tO¿ù}¡w ÔÂÿC¢Æã™¤ì ¤™iïÔ˜·˜G,^>Ì´ÃêÔžrŒÃÛvñYW.Ï[˜OQÎï«òµd­§mh}¦ Žž~P¨iÛ;È$©ÓèSJSkq©‰à <˜{ÞGS² ¤+۸عž‡œÿgÑcendstream endobj 362 0 obj <> stream xœÝ=Ks¹qwV*§ü€ïfrk¿ ÞõÉ®rì¤\®ØRʇ-$‘½©5IkWÿ>ÝÓxÍ ù‘ŽKµ‡Ä4ºÑïFô·›øáéÿïnÎþvÆ-·“²Í%;éí[Æ'u¸»:üùp{^8Ü}À©ñ9ýïÝÍáׯÏþýOR˃´`Ì^¿?‹ 9@·cÍÄ:¼¾9;ûæþêó›¯8ûÍë³?»ÜóÇû3˜Éõá§´ÖŸ~{&¥“Ö£”š´?ÜœI£Ì$aÄ:1yøx&­d“_æ|lÞ‚møda„3@cð–w*Ì1ÞM2Œ4k½j Ý,ï­ÀVÌøieµWt'Vù/=iø›öf2" h™Gp­'®ÚH3yF€Ì‘ë³?¬m¶]¯&˜èðHcàlb}#»ÈÑ39{¤êCƒéMf˜íaÞRw}öþ›Ž=ìMj€é°óÒQžXCUðÄ:ÉZމÉíã èåþ´Î%8þ :OáG…åM–÷¬Áº¥lÀg‚½ƒFX°8”FÈIü0ÜL¶à‡‘ »ø¡…F¼ޤkìd£ù€Ñx O*Lo2°¼o æ-už<ì<ËXéˆÃXê,^éˆÈNQŠMŽò$ X0ä&ÁâIõÀSxRaz“å}k0o©ðä™`ïà ç¾ò%€KåK8ó•/áÂìô%à1Q–ž¤‹êÔ‚v¦3ðžT˜Þd`yßÌ[ê9Ax"x)I! žLìâ‰Y*ü{°L!L„^ÒužÀ“Ó› lÞ·ó–º>Ož öžHíJ#ªô'B*[ZE1äNÂ¥ ?“1¤œ•¦x ?*,•Ì{Ö`ÝR6àÇ3Á~uöý!l.¸Iÿ¿„àLðIfºo ´fÀ—9FŸçÄ!‡!7hÓü`æ«åµNõÒŽ %Ó›Hl’8BÈUVG“ÉÍ#c‘€P& @ÁE¡ˆJø˜3Ì›Û ì§‚ˆE‰éÂ: 6L¹.ê-y#¹x&à;¸b ì6W (hpq™+¤‘\1ÎC½ƒ+¨™„'øS17‰'fJÍÀS8Ra¹äa˦5h·¤ 8ò\Àw…ºäÈtÌÉ®3Cήs›#É{-âèÕ凫8Ê£É;ï¯/qöí%ŽWã0¹½¾œ§£H³JZÆ!†âÁÜ~ºN…VŽ(#™‚,þ‹ûÕpÃ7'½Ês4&§[€Æ“À&À@›“v°R€¤vX)„½ÓíùÄ ¼ä¬³u#FŠƒaÜÔˆnN:Q`‡Ö¢¦ƒ¨ÆºÓ¢›“N@T£}(¼ƒ¨÷l²4\ï!º9i‘¡qÜOdh-9 Ó¬-@›“^åí]'msòx¸°…Ñæ$Èؽ­=Úž”5£ÍIˆ££Ù’ÓÍI'È)ø1á 1U=½G6õ~kÒ h‚+c¾Ò{9´í–ts0Æh±m’7'@1Æ…•I=Š“p¬kÙæ¤W™}ë€6'½ÊöÐÖ$äß´9 ôžCŒ²EÚö¤Eï¹”¨5„áan)^ãI‹Þ/sæÅ( ÍI‹Ù_ÇhsÒ3„ 3±¢™IrÖ)Þœô &„"ªÇ1΢[“ž!Æ¡ˆºq+¶!Œ+“N@<®…´ÌK&JŒULljÍʤ%4Y7Ê›“À X0Ü[þ{{ÒŽzÇ3„¢pÎ+ýƒ4§8ºœ³‡~©(JJçqà)¥ñ X._7xµ¸ nÏ{ÏŽãé&ì8ðh’qÇ•˜¬Ì#¸@ê’eSmk@ÑáŽ'9Í-0ÉJ/0³ÙöÖ£$?Šb7 0‡;=D[b,x&دÅ–þ¼{lO}4lyúíI`Ê&ϘÄ6¢3©°¹hKÇ7'QrÌÚ$wsRåB®g›“` vWm!·9‰’+!jØ4’›“Jr-êòVH·9‰b©±?m‹îÍI§¸k?1^¥&¾õ‚RI5¹¢/@+äDbþÅ.­|ñ÷»Ø1Ff™¡Ù$„ü;®oÌ# <ý,°†K׈¿ß-X¤Ë¡¢ã]”ú¯•¸ë.XIW¾!# 7«ÁÏêrd¦Î2‹ïæƹÉùw¦.$Ü2„„{^#S—±˜gÌXÎJ:"ë¾ZâëæuRë |Ï n 4v)õ.¯ñ7â*Â»Ë ê…0ÿŽkàiı+CpØ[FÖH¿ñ„Ež‘°ÌJ:"ë¾Zâ®C—‚°aÔ%|CF,dò sæÀom0»YúŠãïw±5Þ]f@,¨Ë︾‘F¬½Î¼?óy3i$c™ ÔtÖ}½ÄE­K"²4ŠÏ# Xì7ít€Ë°c Vž[ËÓïwñ0qË3¸¸géwZߘG &³Ÿ!påðìei_¿ñ„Å<#ã Tt$­ûZ‰».ƒ5Å9§Vû†ŒD»®8X»x†¥Õö Š)ŒCž‘ä%C˜ÏV{‰v}íþ²Æì,ÒŒŒe‚PÑð«%®°YFóH’°¬Ø³Ϊ¿ÈèlòŒdÿrž@ â ¿Iðç€÷¹‡uó΄Å(!ǰ3 ðóÁ|Ìd9Ö"4Ô¼E›7ig "ÊÚ ØU?tÁ¤“Ô™ÀH*ÒtrÒaHgÏ?_ ò#¼ÁŠ ž€Ý™atQl<}5`¶Þ)*ë•: `;çÅï-Žs)1tÊÏqÖÒ•é½о‚wc`­vh[Ôùo2’›š†üâ—H7µÐE ‘J°çZ 52+T›z[ þgs+ÿ•ÀLX>+ljû·…n¾£VúY¸œ”’*P"LÆ#~ÀàÄjР«QÅ:(ÀHøixa_óü¨\iJåú]ÐR)êš}ç9È—Ñ ŽßFØÊÓ eÑ–—+4ÔX›ç)•ß8ÖëFÀZñ!záŸS¥¤¦±>0ÌMòïh3Œo˜JØ¢§‹ˆH·¢_ BÁÁ*Q¿4žF&õ¢¢CŒ¶ã2JÓ¢ófÐ*Ó™¢P‡¼y]ÙdÍ›WøµK¢­?/M¦4.*”$´õ·I”¼ÊÎÞr6‹Cþ¨H$´Qƒ÷–¼™0ÐZøGPë @ÍQð÷/øÙ(sROum¶`æ)˜Ú§µŠÁâÌL!üšÅ ExgühX~šëƒeŒ5-|D†A,Ž7„ýhñÞŸAFç” ½Ö¯¿ùB}œ M2˜ŠCFh1¿˜Ç#Ž‡Ð ɰ“ÇG¡?ÿ݇»7?^cnP‡þÇyâ‘£Ég)#z½„)3äçE-Ò@¿±ÜÚC:ÌAz¼ÃGÃó°ßiôÇåñ:?¦5 |%¶Bð¼F¥{Ù¶á£b[Å™U½ yØùj± Y¨>•¤fö>¾§üH¤>âÐS+ÖŒ)NáC»þ>J1äÝŽ* FÉD:>;P@uŒ$³å‚ÔmÄcÁ7QÞô-õ—¸O’ó©O˶¢7ê=Sèêtü6‡4Ñ9(ð6&g&IJÞã{™¸á$®¢}'GAÑûfSë$…p&íE*]…>û3­À*Ät;×YßÉ©cÆ!ÊõÑ™Y; CÙuK$DY…„´µAº%óÞ£ Ï{ |œI,«pƒ¸0DŽ [U¤4±¶` ¦¬U© ò1PÞIÙ[ÇDK%dÌr…`Ÿ«ÆJŶñèz(ÖwC0&À%…#G$Ôûè\‰Àã‹ q~.?Ä®Q4t5\©&ÜÇɆmá@ȮқªL+蒣ͼJ 0ä\ôJ`x¼Îù+.yûN©Z†­4jh~$Afÿ@–Œ¦xÄ0&…‘™ÿÞ®TbŠïâ«öùQ¦ï A1\PàR丟‚5Œ\-…ó!æÆ3Žvƒ(­Íø&‚Q1?NYæ]pfóô>»Öt g„êX.Ñ€ärɨ|ßRRØVP%B‚n&ï†ýSÖ»`~Ï.hmp­é!mð‡-7F}ɶ§IÜRÁ‡4èQ%W¨ôÒyK 1.2uZ©òù:8XåÆq˼¾–ÃØ|—­£:#ÃÝä¼iJÁ®¬U™z¨°CŒmvwÐHyåÌ)Sì=«ó?¼Ú5 LS)µlpœ}a,av03¥Å”‚ˆ´×ÐÐÖT¢ŠÈ*Œr˜2ÞÂ=ÈíjM.U:ÄÏÒwdGó©?ާL)R&J¥2ôvªCs®ú8‰_„ŽKý(ÿÚé&›vØ›¿z Þ ‚Ñ-ê\áE¤ò´ó*ü$Uªóÿ&á`{¸Ð4 ´âsúÖº?ŸŒ¶Éœtî€l«}b8Xi+VÆ0ÎàÙ¬#/t”µO:yxÝGì<×C3Ö±×AGRÆiÆQ]߉¥¨.^:–þ¾³ îa}°¡|¯W ©ÝÛùdÓŽ›‹bP)TÐ.4[Ú2xG­Ùå9úUîð¸o›ðª†Ù¢P~‹õGÆ”•Å07L ~½¸Jõ“T—½Šåö´›©Ü~w¡ñ=cÒŸmæ?÷j¶°kŒélöOkÃUÁõU¶^`¯Å©hÑ­«O‘3”qüÊ`Ž—Å'4}˜¨€¥zEâ.¢ÍqµBEz\ïjÛ«µ¸(Žÿ®GSöB{*T ›q„†Lèÿ^BE…0 œÃóɲqfƒ8±¢Ë‡®yg¸²Àþ sZœ»Ò„»êwlª…Ô­¸±°Œ×^¿j™LŠ|ÙÄñ—©Ž§!ÌÌg0•J!"FŒ£ôº¶)ð€ÂtÎÚ{až‚õ6vEóT…ï>’f}Q¨§Îícÿ9Uûâž­|€a¤äþ¹Î›Zà,«òµ ¥:Ù°µn‰¦”À'ÇÅJBXœ3µW&-ÝtqÿcÚ+Âùh>Œ¡ß»„©M¥‡…Hit¼23Z;Êé“*ˆó‰Ä@¥gMµÄ‚ù¿'ê5 í¨T? 'B¯¾(ÅX ŸWÇòÒTjÊ@Bçþk!3•Mã¡ÓZ>æS°G©^ÛÂ}£cèAÖÓ3@ËúNZD‹¦Ä£õ2±ÂËaAéEýÀ´ÌGžÅS^W%ûÎÀ• IáI‡àÊøPRêÄB¡48²4oÛñ°ˆ$­¼9¢FƒxxxÎE¡ÿ þ."‰eUÁdÎPãùÈÆïr£qMÁÔ( ¹ŒÛ/EÝ B7ýÅšè 2\wJ>¥l4c1ps ³ìÖ Rü1MS# ŒÇ,üDM9Ù-Wˆ¡­iL‡“+Æ"Ó Z‡ç;•ù«K>ÙK}ÚGÎCj_ #2’ƒÇâ§Ú˜6Æ‚´f±˜T¦ãnQMW:!ðEüÀ­®ÉãâÊoÖ7Z2NßjŠ›Ž[ Ós¯ƒ:Ýè3ãºf‡Ptïkœ6BþB•_ÀClóçšF“Òôx22üáq~Ç£°/òåe¤NSuZ=YtÖ§9ž#’;Ê0±×ÁA\ÁËùW ïÎF-©Æ‚ ‡7éãë—H†i”ŽÿJýqæ0—DÒÕ‹ªp`lû¥ºjŰa\®NMp3ôðÿ(5^fÑñL²‘Ën;[P~€;Îcžð+‚T¢ôU·q$_=È„A&òäCÂêó¿ã¼%¥šýg¥jã(JzÓwOõAY8zX?íƒ)rÅÿôƒÊµÓ>¼„¶Ì’ßÇeº_\vl^Ô–B6è/keJj‡`“;ŠSœU˜!ÈøÄìžã^i5º„­Ò 3Žaݬ3_ÈfVFÿéhï‘ì6îŸÉÍñÍíMô™Æ`´ž=î/ËÛÓ:—¥8Á£S¾Ÿçs¸ñçù£rÁÏù*¦ÇÅkqAUçñf¨“Žyé¥/é˜Ðái§€’ïWÃ+_¹\9.g…û[5à uÞ;­Û'ç³29l ÊP•–ÊãDó¨ûôð¾+ùøojã!-/í(è2Õ…IËMžÚ­hâT³šrÏ'ÁžQVR.'ƒÈ`жP÷ÇJâª+C¡}sÇç¬ß•¬¬oÚ:.¼ñH÷£\»: ï&—çüÏ"­7»{@„²Šfvù<ž®úÚžúút­Žw šŠÞ÷z5ß*5îš)ÝY@• Û‡ K’Áµo sïãi¸jN—‹è›6Æ×^=*!EXŽù‘^¦ûJCó¹ûçT]ÄOî}ïÛžç«u8HVð‹xéÆê5@Í—7 ¿ñé/²?RÛ2èæï "ñ6†æêØÉÉëñW8­/Ä=*> CÈ^ùWƒ8KH@Z]@çFº,}°w¥÷(³ Òu=cÒ&7ø^j©6å%âO»r²ÿÍ‹ô&ÉTz  |e¨çÑÏݹóc÷"@ƒ)\¶fß.¼íbg'¡”K‹W^†àq·`÷°ŒÞ.o«¹ÿ4ØY!y|Œ.óè~ìæ&Ë}Ø…¯–Ç»åñ¡ûøfÁîçMìßxae&ðÅ5œÒ–îáí2z¹<>ÔòFÎûö0ÜUZ}ÜEmõ(S-•7»på!ŸVYBS¼%óvyD ‘nÔ¼îNx»<ÞíŠʈñK @ýNøÈ›3?j¼‹‘®uÍb3Ó;O£.ê©õɧÜÓº·,Âöö–Ð yÂ}|XÕWz²Ì¥ØÜ)¿UoO*gùóç,/™.†u¼¼ù¬ør—п! žFê¾Ugx!ïX&b?-ª}ýX»Y¡‡Ôî©ØÝWv…WwXA ê|žý݆aÁÒ"ÌŠÙ#Fùí²7w0{õíèÜèÉà¡"ܲËç%ËWÉ÷ôo€üÑ\û8endstream endobj 371 0 obj <> stream xœå]IsÉqÖ™ÖQ?'ǃ5hwíU¾È¶d‡µDØÆMšI€Àˆ È@Šô¯WfVwWÖÖ¯ß@Æ„cÓlT×’•Ë—KÕûédÄɈÿMÿýîÅxrõâ§‚ÞžLÿ{ýîä_Ï_üóÿxw†`¥Õ'ço^ÄOĉb°'Ö©A8urþîÅŸwŸN¡G¤w»Ûôxv4Bî.ÒÛ‡ôø2=~^8ÿ/Zñ¡¥¨ÄÉ™ƒÑVœœ_À¨¿ÁoBpRìîNÏÄ0ZÂü¨ö/ý Õ(w_NÏ´“ƒz÷¾ÒJ9voâ[/%M%½¥‚Lžµ‘B†Ýe|ÚóáΨµ6ZÜÄ/½p~êÐÊÝ=¾tÎzé±;0(±û1¶5N"ÍàÙ8ã=R*=ó6¯it;ºÑN3‰Ï÷Ø¥¤íõé)mFP¡RÁ~%ï‘’*عµÈÉo)}sëïÓ@ÍÎåà,´Ÿ›_.G6ˆWø¨%L„7xH/Óãçbzùì´”å<\¹¿b°¿œÄïç­á/ù>^³÷Œ1nßO; ­?JM|Èö…±ÈÄD#°pÖäóÌ”f¸,Ì àPæ¯CQ“/ø×¼Íæ6ôþK䑿=q£VÐãG6Ò+öéD 5º€ô>dD›(}ÆLÒÇÃDŽ-;JŸt4>v.eä×eÌË;à]·ûßÛó-*–­´ƒYæä½îtsÍ=.¶Û{{=ërb zoGh*ÇŒ-øø?² ãl¦Ì8HÞ-ß*®6¾àDà ½È–Ûù²§ؤyóûH4ÄsÈXz½E­¤1èô,¶uÝ¢J¿‹í•t¶­„ÄàÁ ÌÝ“…RN*-T|¼Néñ!=¾LZêóò¶©„€5¬/ƒ“[ˆnç]$~“öœdL ;á'ÓnÖËIX8þ¯M ¶ª°"§Hód©£‚}ŸÞ^7¼Joï–Ç”¬Ëp°K*ÈA Óà8.=°0ÝÞG º'i÷OiNÌlÜ¥mb¤šjÛ5&ÅüAC3z÷»S¦Äy[håá_.Œ[’Pm$ÎðwïÕ³Htí¼”‚a¬7ªi÷…‰v.ãjá­ÔªI:Pö %,[owƒÈ •ËdGq·Ù L³ ¼*D4>Þ§ÇËôø©)Î7…8 / yÚ/ý+œžAu‡Rƒ :0J)PoØæ_Ê/óÏ”zxY׿ìmšôPƒ·!ȯ&Ö~°ˆ»§á~e¥2ÍÙPZÊ«|·h†êîÓ[&ÊLÀYÛ›C„ö/§Œ± A:”] €XÔŒ[G r%Á¾Hæx²Fm™Ës( ì:äK›Üö8“ΫÔËuÔ/ ÉÔozi^¸+­[µÅu¬Ô ì¶bQK O[²2¨ÌŠFºÃ.’›ãüÃ8_ÄN|0™I¿MÀ¹Éþ@#h Š3êûBÄžÁË"i*½,.côXyYôöóª…hÄ¢9XfèŸm9Ë=».Àyÿ¹z ®Ô?R,³ûsË(&gEØÄ¾ÏºòCàÒ3¬¼ZK¶òZÌÝ žø!‹~(†)”‰<çü×´‰?ÛP¨§VþÿË“ŒmZ¸N“;Ü[ª&Ç 6M†WÏÅ6YßÎØ€ fný‹u´&`‡—¶b1­ihœt긜FµBo„eЙû¶gðÿÔEøsK˜„Ûÿ¬MϱŒž„6"C3ˆ¡Œ6ä^N†”¶ TÖ—½9cE¬X™EAÞÇî´VÏ UÐ17¡ËÂsŒ °LÄm(”„ Ú]ÄN´oÙLå›)4蜯c9¾†~*UÀª~âRé§ÇGs¾½~šÌšõÊvÌš×ÌZÒD%UÒR‹Ÿ9}jÈõL+ÿT®1±)·?/ÈÕ±"øäåÿ¢ ä3¡ÇD&Q@±ýÖ³ øŠ5¢µRº²EGšHRù ióHÚP2I¾ž3aϵð¿‹„Ö–A $§k%Ñ* ЈI81ºÉÂêàL“Pjð`¯ÄÄ zQv½L™÷‹Îc*J£Öw»ÿD’¯CÒ©ù'‘(Ár¬÷»±àïBv„ÓƒËøb7 ÀÓ0¡oãó›¤cÞ§· %D¾‰ï*ìMO€=æÈÙ}vÛÒcƒw¥éß“ÈÓL…\«QVÉ(×8Ídý*¹~ŸäúºÙàUz¼Û.׋Cð'b\ª‡ÈÅp°ƒ\ ±+E È?(YI=p²;Rè÷"A`pàÍÅë~RJ£+µ9Î/(ËÑ–}^Þ~ˆS¢(ŸɼA1|´Ìƒ~ {E>çk{ˆP1F,±‹ðG¶¾n6XI|5DÞë#g÷u]óWé‘%{˜;ð*Ñæn¯È3õU‹<Ö< ì'¡i3Ú Q *~cé ˆöñ{-’ìLz?&8Þ™A{ÌYêÝï¯î^~¸>=ÿk#M45<\¡qÒ3ç§Kb­H"L•J-%ax-—ÔÑï“Ò¹*ôOÔU¬JëCz¼^UP¦›EÒÊ|,©b¡ã•¨EñâVŸ·ÉÝmí‰E2*,9Y(ì¿ö¶Çõ4ÕMlá•[KØÐà¶6Ÿµ²D{Löã$[j)øö´52U …äŽ'Ñh§X…À5jVÃTnÄK \G,‰Š„‰z Fœf_´«RÚý Mœ…˜Kþ„ž‹ŽPëOA´0¸PV1ñDkûYÖ“å;[õ‘Ÿ?÷xâjŠ-YSZ]@¡`O²=i‡ˆb|ÊÂ_ÌÁ6‚uVå}.Z(v˜Æp´!JÚÉY Í/l>œ’sÕ–éZ~˜„Ñ"t+¹z^Àá:ƒûnÚSè÷oI¡v°ß—ËÈ—ÖB] üO±ñ|øPFZK‘ó:0ÐN»|[ld–ƒ|˜6Æ´ Å(§y»„Bëý¢”fŠÔò¢Ã&ú—žËÔ´`l4#Ñ¢l6#XõáG^R FÌý8¾—¿dïk•¸„d¥Tƒ“šsá=¾7Re}ðï¸e¸ÈµKI‡å`Ffðè€ø­Ò4‚í$¿óüIÑ£eOyqãÓp¬KYX©·ÄŒ¥z ×Aw&Û"â`›æ7Mvy½™GúB¡¦^Ïb³•3碚å`f0jµdƒhv¨æœ(ï Ò廕*‰ÈYááátO²DoïÒÛ×éíuzû!½}Hoï–·MŽîJ¾@•Ž2`ˆE(jsQR@õd˜óê® ÝœRºªCÅmd €éÔY™ÇÍIh5ØÕ…½þX¨ †d+môc"Ðm"ÛÕ*ÿ©¼+¡n•)bâù‘Éò#Ìé{4a@v‹ºŒ{¢¼YÁ£¸ãØ¥“lÞ|=õAŒR!ef 7ߨŠFá`˜/ò*.O|”  ªg+ùøqj°jÐÞqãÊ *+éõ#@QcŠðMp\F…&l™y„×Ë3»ÞÕûsÍ÷‚>ôÝÌ4dN ó‡-JÒ=nëhL°¿[¥´«¯-íAÆ*U’6Çi×nÌLËÓ®/’€(RX؇0L¢hÇ)24ܼ2‚Í"÷U%àéˆ £þ¬[bLõB‰“Ó#ȘAM˜¨ŸCÅ‹i¶¢džalêËñHvææó¢MŸø‚˜Ê‚¡×àÃòY"K8,V0]¨yåÞŒ«Áê\µÏlè¸ìb‡6ßú7±,G<ž9·¹¤Ë§¨Ò€ÎV®aPœ•/è³Ts°²þHyX—…‰o &Ê£¸ršñYwv¸,»€1vÛªÏIxü8„vÜ»©²¡yceiGz.ç +–b&kG”Ê~.?›ËFÁK£Gû½¶8hLÝ0ñŽè–¶¤Ó‘“w¨âZ Ru#D½¸møsx%ÏTÌ«LÇNÓ¢Sš±?pzÖ¼¥1ˆŒ£ςϚ3coŸyâpƒ»ž3'gêMñVe1´¸g+ê¨ùž­¨–çyš Ø.¨0ñŽ6îq)'Ü^zº€î([U¶æ‰Ó6†tIyT_{oŠÍDþZwù·sè5‡Ë@ÒAV!nØuðWýÞy˜Öv<ñ’Ò›+µv‚_—Ð Éèk³–1XukO…°…sÛŽy Š0}´Wx,»Cß/‘d&¨L¹òÖuA7)æBŒŒ`<ÖR„¨&‚•á¬äꜬӃP¥§pzd$ì)–ûxDHøˆsA2…Q]•ôôÞƒ²lò.JT+™²Ä›#üá¹øN8SðõÓ¥MБvöé6.ÆÚ*) Ÿaö¶&+0‚éæço;ãt”àd„å2 ñÛ܇ùp°Ç0¶¤RLºÚÁ¦ lnçM^è, \„Y®™ UgG·õPì@áÄ>Ú4¦´ y鸼·œ gÄÝDyh™Óôg)ÔQxX΄âûÀ{çr¾û w‡ïb4C­Ç¡â.FŒ·ÑÂi™‚#uô ƒláP.¡ÉÚ[D8fâ1Ã9GÅÔñ@ѽ¾Þ‹ß4wô!A õ2QmPΣ˜œ$í¤µêlHíŽM·ãI<á:n:·gü¹ç¾'Ù©Gàž—5>ë5ò‚ä'4lz瀦¨‚^S˾²ÍÒã»ER›Ö¬+å}[>uái*:¶3„ó™ä4œ§ âWÚ¬ž‹-ò©-Ë’þÇ´¤õºªs”,‹Œ¨°È3À™òršsQÉÒ‘»¬›»ø©Ð¶Î#[¹gÝÎc¸PrÎØX§pœ´Úa)o}„¸"?`­âÌ#æñYX-@âî©NAÆÞtóŽâ<“FC÷¢†t Ë¢7ؘຠ¥*C£ hY†æ>Ñø}°I…¶ËŸÏS†f°Æ¤ª°] 4nÂræàÃiœ¦ õ.û©_V»N“Qëw¬À‡°ê,X\'‰¯+ nK–£þ q|ŽàÐã…/³$}‰³ýZ,˜ÐÊ$0Çìz ެ¢â¥Pç.MòTcËé« æ´¦³Ää¥÷ΤÞo—³à|¡ÕA71æv |ù€% xqþOX¿øô¥‹0b]|óµ€õ ƒ3Øý_郠Ô-(Nïm˜¸Çz+ŒËždÝܲ÷Wi$Ò.:˜Q4¯•¡Êúà癘UDZ¬8»ö”äK@ :T™—=µG ŠRõ-F·n‘Ú€Ev#à¿É"gŽ™U`ÉM/ô_X«V.3¤°›5{Âns¹Ž(} @¼/ ,‰Qy-g/!x1ÍZsB,Ñû( x#„K¾lk ¦ªö‡EÌXÓv F—²I‹ŠŸû¦Eµï1æ¦,²ØãžœwcL(ê’|æh–eGCÅg›Jµ±„WÊ\Â;ðúé#°5ÊWéà쀴â!Œ•¬už x~ÛDƒãWk•xØ ¸Õ¢S\¹É{_S‹'ÔªC*îñ2{HB~OÝëÊ¥B¸mihÈâ©]\eÑš®ž…U~‰€ `µ.“'y>Ö¶j,Í+¼\¡uèVÔ´.Ï%0´Gߑɸ ¾Z¯ÖhrtÆJ½4ìM¿˜ù7:~A?´cz 4J”Pjo¥A½#ı½!Š˜AŒú9kb&š×Ý–yꀮQöN®i:Ù¹Z«ØŒø À7‡:±þœ«èÂôBÞâN49¸RQnlÐSåøL„~J®.ãU€s½-z›Z”Õ*Ë—TÑ#ð™Õ-·#Ö÷Är³Úë˜ñ1Ï+ Òc2¡¡o¢~¥ñº^Yï1'[–Åþ°jûeZ;ÕÍ0q}Ýð~å S\Wϳ¯2&mÌŽ¹N$é×âÊL±²ÞèÜÆMþž3ƒT>…ß …fž\Ÿ5€•)PFpϬ­‚N%|›V;Õ¹Æ5å‡,:%Á«•&3Žû-6’Z(_ËŠ’Sqô8øêH¢Ä““r5èM° ¹}X#þÙrxr+æÀS[i(Û·ŠÝÇE ßÚõÙ+Œ-Лq3J·3Yò²»I c&®Ç7|Dî›õÚ¬WÖ Oª8×°ö.ÞšwÆæØ¡6bL/âV¬8¸ã»OÚ§3\þ0š¬ê¯qÎÞ÷JPÊcÒƒ—Ñýƒû8.€]éæ]J³Ù•ÉëIˆÆ@B¬«Ò(œ_Py¶ª.ÝÑõø¡ªÝÖ&SvÎsѼéðgOŸb±.rš5Ð,­(¿êDK{¨¦ºy²Œ¢œ¥n#>skÚ€V =ë'T½ÉÜUfîo;‡ÀRÇü:N<Ö%ûU)¦¬'IÞtÝ+‰âÚdR–ýX^ó#ù½j&æU•|,ž¯‘¦ÜKGMâ‘+YÆC§h(Ëþ–½­Od/zU; Ýäš=Äë¤ÜvcxQqŠÅÃÕôË;8Š¥17¥ÕñQ,ê ºR‡Þ®fÙhÂEÕÇã5=´Ç¥s€£s5ã`…^—Á•H,»†©#ƒTxøji°?\–Ù;*qÜPU::Db«zïå¯óà T ØÛ—X­btxóm'#vïuÇ|_ÓEûFd â7Ç]´mðOenúQà¬D§-ªšLC¬„Y.cã{ŽÒW„ Ž ÝëGž®##ªÝìÿô£Ž—Ym:/ËÁr™'8 ·s™c¨o|¾¸*†—E›’WS^’QȪüTXÖþn(¾ïê‰ÖTÇN¸Çb' 2ü],Ý2n½ºk:¿}´9ÈD€Œº¤è„ì'Iµ¾•¦#†»ˆ§Âµìž ?è§68_÷Î\ľíxðá¯(u«ÌÒ‘«¶O—$ømY¸éà~QiâÍž=§¬qQ*í÷ .ÚR9‰9›±ëóµk¸¦Å—|Ÿ9“Š·|ñZ%<þ¤}7<ÝÈŒ’ºŠt,-Y Æ«JUQLÇÄ|~(v{¢¡uöpæ.Vk?áæÁYþÞÐJüÀ´ØOt”°š;ö4hóÒœ_ÈM`ŠŸvN4|Zò$„Ý3± Çvc?pÓ«¬ øF@¼¿^î^yãÌäo<ô†S´õ‘wÚ‡=7@@×K°³­žT¸îÀÄ{€Â}œPÈáüì%óÛaÒ^Rœ'Î9ÙiDLœôKÓÚ‡µ§ˆ^QFŒV³q–î!ìéá*ˆå×ÝS·±C™_P¸ÍÒã¦iYz­±sƒþ«~‰–FT« õ¸Ê~B½J8'¸ª*NÁœ„ÙÒñ†âC¬Êð¶^ÌSã­yºëí°aÚ—iôJÓUtÈßs`Ë8Ü9üAߎª2ºvc~dµósV€ËÄ £ê‡[;øi¹Ëg%îÚ¬ÒöÕo]~¥ã x…!âÈ#kôÑFÔ¯çÔZ•ã f`úø›ŠïcB•î®FuÍţϧ-Î"'SîQ X„k>«Fâ@´`*ëòNÓÛ#Î Iœm882×D¤w AKL6Zü%œt9q[sƒ4å˜}!`37jÍNËfòuÓ~ŽŽ§ O­HòeW|kúQÙM«k¬Š%ŠÚA­aÎ^unç¿¢ÞÖóåjÀ_ 7øüÞ{Z{åöêe̵ò}|-¥éTomøí‹ØGˆ¿7T§ÓY˜·SKU1:Í­]P±÷lƒð>ÞW»R—õ*]‚*¬j1°¶ ºÇjïžÑ.Ô3l°fàˆíþ'/¯óÉÏYWß¼§½¼lmã1¢35*éî½9‹<žM[EE^ã>Ι|ºGcš|°Äèç0.¦Euý/t"×ËñC¼·—a¨AK¥`å_©Ü=^àùˆ{ô¿›@ˆZ%ÏÌ('†¸½,;ÍóIïÈv2ýîNíÍâÆ*݉&äîNtÌÌ`«$Czàå€%:ÅrÿÑd+Œ»mD[ÕÆ›?5áÀ“3¬ÊÑÓGÈD¼üW±~{þâ¿á¿¿k§”dendstream endobj 378 0 obj <> stream xœÅ=É–ÇqwXãÌ{˜råžiŸd›–i‹2-ÃÏQC´‰ˆ@Ò_ïˆÈZ"—È®ôˆjªs‰Œ}˟Γz:ãËÿ_¾}2?}ýäÇ'ŠÞ>]þ÷òíÓxþäoÿÍÓ4%¯½}úüÕ“üõT)5ù§>˜IóôùÛ'ºz{=OsŒZÏúê»ë›y²~³/Þ¿ƒgkL°éêÃõšfoC¸úåúƨ4Y¯^²²ß_ëÏÎà·óäŒæ¯¾Çgc¬ƒ‘ïòû æpõš~hSpWÏ`hm¦`ýÕGÚÍi6Woò×–…k5*¤¦¹ÑqrÑE>ùy˜4¬SFʵâ4üŧ«Ÿà—z6&…bšïÙ(/q;ÎY…_ÐÖC(>¸Ïk ¡ü]¥ Æ~ŸÇ6Ö¨u…´ª zµsâ‘Ü8•µPø·Ë~¢•Ö%óŸymÜià;˜òÏÏÿõ‰vrÖ’=¿¤â»Y0Æ¥TçŒ0Bµ<8,àqàx¬œ‘ë4ÿ‹VP9#r>no_ìoßïoßlo—9 Z1išÞæÈX©4,Ÿ/”CæŸC°&DðÆX=ôFiŠÊ` à’Û9p<æ¹`@2"|ÀÑì”’*>y·Lãhë(=ÐG=Å9n'ü–`˜4¬uÚo÷Çwû#ûön?…ûÛûã·Ûcïl\˜üœÖ50 ½ÊÛÖ%¸–­Â¿,Ñ@ Îi¥A†÷^s4miΔ$‡ì)ù)©x„mTdŽë´³L‰>Ø‚…•ºmkˆnšg×p„‚J+Öú¨cÙ4¿O­tÐÃԔ̆Øù¿vüýþö÷CÖSnç<-‡ üý9{N Þ0Nº¬ßÁ2Ÿ‡LÎ-xÛÇv.Ó8¬>­GßpX5!c{Ý•Šìœ8ž½Y8s0…b_ß-#ÇtŠD @nq€¯ïmÀÎ^ÇŽØ^°›Ø»q~£ ޹› $ô1J›©ÐÒhó qöXÄaËc»}q <Òjí—]Ú dXRrƒ/ôþÓÆSkú˜ð.K8—¦¸ã$—pÖÌÎ[Ön€$Ùº¹pÌp‚ŸÎzÝO4†áÕ_ØëyÀd»^wL§\…Ár™Óè๻úßR ߬›ÏôdC—ÿºb'Õ( ¿ÔFKŠ‚Å; Ý“y õ|ºv eU IGÍë&¥ì¥D,ì*Ì ¤Õ¦yò/Êñöu¼ÎPÒÚ„‰¹Ä’ò¸vø1O3‡rl¾_‰… }«u ØEX×óóHj==P<#Ñ””Qz¥©w°©h –ʶ°0$— ~ĤBÝü™SÀ#©å¨ 4#º ÍÈРQ´îñQDÑ:FO$7¹Ù©BWÎ:Öëý1ëÊð™æJØûýñÍP]9¤XòÄ5hƒ|³eeìœð/ãMK™(¤|@$™8¨j·-ë¥À¶ ª§1LìÊó™l € \ëa0‹³F¶wœâ¢¡VF`À^äD­N› V›42t\†v¦1 ’}á¤Î!™ÚÌSL®0 ²Š7íŠßíþöÝþ–}{·¿ýص޾ÝÞöÐðÆÌ€#€ˆ%‘ýF ²Jo'¯]-Îà­UCÄô(BÇœ¨uÂŽA±`+pL rd¤JãáØÀ—\7 •i+¹»}½nP=øˆ•ÍÌ„±åÇXÆ‹Š½äGv®}ËïçS–ÐÙ¦~©%tCð:‚ü‹…æ½2ÛÚHŠÛ^5)8Ài»¥s:Y¶æ[äùq2w×ιûÜ!k$Œ0¸XŽ?¯å²Ëª–•dÁ5Vjóbw“9B2c,ÙÜ#:‚O<¬ñ¯ #üÑíNŒLlг–‰"3™¨¢Û0u`í!h”«”H`æ ~…4²ÔªäÝTFï÷áÈ-zZæí2·›ía½[©€S ²1Ð5¾¸ñ)à£j²A'…96ñ¸”öYÚÓ†§]!$2P3"°«D‹¬Ã;P@ÂÀà ÃéúŒà4àÏ2°¶Ÿ"éÛyJºg†fìá"ñNøf]¢ã˺Ï/}5ÿçG'ü¸Ê"6ÝôCW¤¼ `£qâY†|U¬,‰DRþf²¤pÝmiŽ%/”ZY2‚Z+Œ0 _Ý8Ð:š¿Ë³*;ØÃõ2aøóÈÌc5Ú‰ŸpÑÑ—[7™ìÍR&Eð\y |çûã ,Nf‡êߡ̀–&``&¨†µv‡oç4´;ð]¡‹¤EòûÏ?%«´ÒÔ<ŠÐ Ê’ÌH7ËZX­›5‡u3°puÜ#&çéfc¼HµÚÙæ_)%µ«E•zÂùüæÕ* ˆ²JgΗ*·Tò`aXíº½›„jèÅVjJN3¥ƒ¢­VíÅX‘o:n5 "LAÆe¿8èt°ÚJ˜Œ ZENïyg]Ï3ÃB~Œ¤)Àû!s²`Ýåä ­°â"ü‹Ó®ñã,ŠqC¯³4@ÿ«oL X’q~Áh€ÕêÄÔ¶#Z^Â>ùV–87ÒÅ7W‚z3±á™¾0±aHw0 Å‰!­Ê»CâÏ"eOÚˆ› Ö‰ð`ܪ±WÚ(ƒ¿¤žýœ‡@¹'Ãí²"`*œvÞtAëÐõÐ]›+scŸl(èuqéåÍ––Q…vh„ù*@Wƒ>*”HgÑ­’Å`ùM>Q I®’ßç±£Qúu f'ýô›k¶#ôƒÙ bí?Ðhå}£ýÛQlÀ`ZÁ9›8`;oê,Œ¼-TåwÙ²#Qiö|\Ö¬Óbäz0ßZŽéµ¤¡sÌ{¶F5ÝJChz‰††@µR3h\p¿’cN'‹ÒáaŽ9íáGpB² M_‘}»EuP7òtº h b­OmëÔ¦`À‚ÿ¹D0úa«tp殽ö*ø—Ì—Q~žbpëïp |v÷Ow°Z“úý%mÅÍ–lú ¥XKK<¹Q§+‘[÷~×pâ Ã#°>HþŠÂ˜È‹ º½dâm˜o í@ýÍ´ÁXV‡9nJ¢¦ªTA{’5»=kUy >pŸf©f€ºÞN™±»ÏU,æW!¼Zʱc?æâ¤h =­?YÜ3¹*YùÀãnŒ°Îq×zfÇWHÏ SaÉ~㉶UZØ&€°“eª0ôÛðs ÓÊËh]@¥°BŽ€’Í;šG )÷ú`5)»žío»Hó²Â‘Ñ´ùŸQù)Ãâ¥7_Ì(¤í6i²¥XÆÛMt4/dwœ”Š{@Ð) Ã@YK0ÆAéBEc““iÙF)­5ÒcžÈw²hBZƒÐ@'N/¯•±ºË²5ˆÄM@p‡É«¼Ek çáì‹2dŒW{£ûf|sq·×(ïªõ@Ѓ—L XO²?#•6*ÒNÞYi¸lˆŽŽIu'Þ‰c—iŒ¥"mÀL%yŸH.#œ{Ý¥¥&. “‡:ñz™r˜dÔsaJ ®dL˜ì]g’÷MdÁ‘A ãpš©ö¥,Z)/ÙTU‰«ü°õ›.]i‹ T`·†¸Åã¹<ïÂ_w=ö¨Åò"º/”lžËšÁUÙ .ÀÌ ¿;(¾h2@˜*~¿áÀqÒŠ8»í¥S·¤Ï @HÚYC«”h !-þ“yÏ‘î>J¦K8†X™Öflq3O4•½‚oJ(úaU˜Ó¸ÇˆÛ "JVƒ¹Ô@æ}—ž‹_Ñ^©¢ÖÏr¶ m‰Åò”8çç¹hÎtaÓŸ¥&!ð•’iê{ާœ4,¾ëøöÀ9l:àÃÌє݇Ƀ{ݾ]לš¢áéÆUèÆ9ï6PùdiÊ‹å[EQÏNËÝó fcAT™üë4Â8iÿ8쩔బh›2]¿.Öáw •ƒFza*¯•‰õäå,„· kó.ÙN„EÊ-å’æÙþÍÒÆˆW©AÔ„Œ"=…d‹úÃÒ.¥Ol™ÌXùÐìœûŸ&\'ÐHЪ#)4Jã<¥é½?§Å1²òàÐèeþÌ K‹ýÚÎ,ë Ï´`EÕ”Vë\㠂ךø™ »h,qö\÷‹<ƃÝi8céŸÃïóʽïùä·#›ŒÐ ÍÛL­º†Ï(±šÇFŠ$H:Y3)ÝåýªðgêDlÙApI¦¨öá^—#ÀÛYõ¼4 Ò a/> %oy ‘¦F£ƒ!\0‡sÛO“îoûågÊÂÒ¾kM«t<ξÙZÌl«Ê‡íƒ’mÍk ®ÉñŽ–¤5î",—Þ'rîsÉ(1WÅ"ÎdÆ35ÿt8¡Òîcy’³c]é\þtˆ=TÑý–H}åþ¾Z¾7^Õ Ã:´uJ¢±êonâž9øA<ºAž®Y:X—‹73ôð£µy„ÒŒmqÔú´™O‚|~–ëìB¿ººo - c••€©5‚`àј{77Ýqñ5Ö¶rõãÅN7žk°öU²“÷•êÒí¤ˆSTŒ?§úá.…Çaà0vL£"jØv:ÄàÁŒ»¿Ñ»{Ñpú¦†[ínFÍÖÛG7©=¾}5D#—0²×Ã[ªçîx᪪î|*aíÒâ›L ‚RL“¦ÇåëÎ ývA™ÐRÀ&›ƒÎÄÈîŒÚ÷el,`­ÌQ€_k±¯Æ¡¤xÑØ]q0Ð@Ša"^(»¨ D˜Ü™¶“.Ê«QÏUü!ª ·I×7/HºZ\!\g9Çd;(-™)UB¼ÑG+ÀÑ âÔfùÉìýXªôY5=Ö`„9{)æ /ùÃúE·=˜6Îl¹Ùa¡†hÚÉÚশEæ2%òEIËc±6Rk½2¦AÐ…·Ü&æ-ß&E‡¥ £ž¨Þ,þfºÕ­ê3r£±éPªCƒµ×Ö<ªòY‘8&ÆÜm}Ó¸ð[ÂÃFRjØú1H=Ù\ϯ±!€¶9ÇÉS¾Ä/F†/:ÏÊë2q«v¬Üü¿âþEA"Ȭ0¨`• —³Ã(7?Ú Ó9D'–PmUV•°]D;/é†Bé7îðMOÍýK‹Þ·\“¯vF—ó§)äëýí×ûÛ/÷·ØßþîšçšÐ¬Ê¥Ê©{ÖåǼÞR¬úÍçX×»ßï_ì?{^½•›£TØ|Û>utÞh\:3Ùƒ­‘ð¾Ý²‘¤ÔZvlÉôòû%U„zÀ«sîj8£-u‰È$,8à S¡(¼ªú[û¨wûKKw!ß.ýÕA_?˜Üƒ[]|±¹':MOÝ={싷ѽÝn‰ƒñ;ñôóo;XºÜ:c¦ÞÁ¶`c¿šõ—¹áàï3“Ç„#)DñSΉB{ÿqZ#S×òºçþ6ý¨ì¯§/— Õ}2]Ù~»¤<}”å+4Zä¼Ð—väÞÎתÊÍû~‰†¼lï’Yv)%˜é)¦#šôe²‘æº ÌÜ¡VuãrBݸˆ{L4Ó™;Ó«ÊDjïj¢uØ™Á+ªZÎò׋CÃaò)Ïtd6Cóš‘Ä.¡lA»Ó—þE@ râ¡å.ßi_En°ysÚ¯,=x aþY;qiRgK¿ÒˆaÜçÁðîÓZe¦#~ø „;5¤9æM»Ó~}˸¥¹ÅN!¦#Œ˜ ÌPº¢ÍQ8Çi¬‰Ì*Zλ,ùûj-š¨nrùû£îsÌ Í°Ñ­eØzèï™3Œ]Q½DæŽ)?ù*µÚ¬Â1B<}ß»xé„óRôÇ™ñÇGö¤3—¹üoÚ’U6uN„@ ô˜d¨BÜcúŒ¹àMd4¸3Mz-¾ŽNNÏ>žéÒ´ˆ8èÜÖª‹˜Ðý–ú`&Ï)§;äöÂ^ZióäßéƒÇ âD&??ƒEiRGÖV•Ò‹¤ÅnQ¿a°åq ®JÜ®X÷8i|eªèôÁ˜Ê*îW4}‡|Øa˜p¤Ê8m©b­’§ôK{Nó¼ÁŸZÐ7ç}U€–8jË'W9¬ãImîA·º„Ìh¹WZ]ýiœ÷Ç?ÝÀ¡R·éÒ}€7±ЕPðVêà»å0ú×ܯ¦_š‚Á/ݶ0u¤¼®Ài¼\ì3:ýàX†#‡¿q9‚¼\ %¯¸g?6VnsÕf@¸Z58SîƒpIÏËWÞGË C¦ø‰ RijkÀ’ꇄ~ÀѰXÜÌI¡¹“p4O%+Öû÷w‹ËëjÉ­ÔÙ®ÑÄ鱉Øåtä çÛq7<ˆÜÍ6¬qÐ ¸ÐAyêµÙÎùnNŒåÍ“÷yÕ±Œá΂NãÜu”%„–/ÇåÆaX„ŽEÇ¥šåkCòÏØ`÷]ŽüÍÕ)£î»‘Ù÷ûîhìgß\ù·RXÅÉ"Ã!ΤÃåR±h“?Z*æ»y0H]IJÔî˜û£[snod­¥+M~%ÒÆ•$[_6;"íS¾Ð¹órCÁAÇÈ^AKeHª¦®²õ,^*:×#pp´©5¼¢‘etXçÄ“£›ÜòuxUÆÝ©Ù1]»lÇV«µ¶ËÇ®p½ÊoÎ¥AÁ6åhçžXU“©:—…8ÑÈU¹ì÷‚ñ.‚PiŠ]¬£hT“³ãÖc ÌÉ’5S ެ§V–uÀ®C'Ó)QBàöµ Å2胠ªd(Ú”åe[*®¼4"¤®Œ v¯q`GdFSep]§3šÅîÂå‰ÛKGà¨ì®ÑÞÖDl-å“>Z´¹;®q2ôÉë”jwSòÔ6´.ØHt‘s]oµ)N’s©-Óaçs¯nŠ nÒ(|Ÿ•Å>4›Ç >†ý(xQïŒÆ­×z¸ñ ‘\qgß²¾W‚Ôõ@ÂäÚÙ›\¾o(&«m™~.Îê‡+‡nê>©œPnô<%Ð9Ÿ·ŸÜ¬3äõ¾»ý?ÿâù“ÿ€ÿþz³èendstream endobj 384 0 obj <> stream xœÅ]Ks·¾³\ù <.S"2x>¸Ê©ØÎ˱ãðç ‰"å²EÑ"e[ùõé03çÎ’K¥|ðÔ‹i4úùuüùtbütÂÿÒÿ_¾9™N¯O~>ááíiúßË7§¼8ùÃwNžzæ0êôâê$þ„ŸrΙ95V2nåéÅ›“ïîÎÎ'f­’ÖíÞžMLIi•ß½ÇÉ9!&±{uv.´b«Ý=ŽVzò“Ü=_G¿;;çl2ÚûÝux«¼Õø;x6“ þPhÍĤw—øZ[ ³÷¾H¦þGK©­°»òKvv®ü‹³»o𵛌‡-™æ<£õ5ùeZŽä~÷’PHH¹9žÎæ ‹l/ýÙLËÝ3ø€å@´£ï"eVøŒ‘IÚwæ½0N¸Œ4ò ÊŽ0£cÚI•±ú2±`âôóóàÉÃJá ^ûÝ/q¡ÎgÌôëÿsñ×a Ì’uq¹JR þùI )à·¤ ¼N˖š¸Å† iŠÑ¸*›ö!Ê.Lq?è`–Ýy˜NÉÉz\ÇyZÈ9‡ýS†ÇõÜ&ŽÙŒ9ùÖËI0Ç3FßÇ·ÜóÝOd³ê9‚Ž$¦i ¿”l²¨.°1Zs»ûÆŠ Öb³½â¡½rÙÌŸ‚VH΄²¹<‡¥Ã‚y&W¯©–ï®"G@‰23–h­ß}B6ì·ðl{!y8Zrב,"ÈT²ê…-ô-ÏTºžáw<64ºÊ…st>ÜT‚kDöò<égÖ‹Y9jîÙÉ;ž©?!zÈ>©U‹}A9Ò²@žlÉ>”-ÅÕ¶›ôE0QÎ&¯Ì¬èMinÇ-𤠔ŠÏ#P—’þÄűkîXô[ úܳô×@¤UL¶Y¨n]¯¯ß®ªÕ±š=“F©EnYÍLþI2!JŒÌÕXY`]ÙO„‰””Bw–ß‚oÓF1/w†É¹wÊ›dµ°UðÄÁ¹gD‘Æö4µÆiÒ5r`4·¹ÔýŽ0†jMo%tï^ñþ§*8YØEƒü*d™jV¡Z‘Ã'îâVx°EßïÈÞÒ‰Y%,AüQœ™;Ö'O"AU~Y·m_tIœJᣖ÷×Q˜0R¡²·Î˜T(.6ª²qÍ…Ê*´÷äù>ç,‡9µfÛeP6['ô2¿Å)¼ÌÃ*4”¤³tlôÀÒã—„r]]-Ü-.M¨ªrɼÈeígb„ߪrƒS[.‹‹J±ûog ÄP“]ûþ,Î"ñ=Êw`z]iÂr8/Yxbd¶ßä;ôóT¿S¤¦-Ƴ*µCٵɚ•;,XõãÁö†PíxOž©lØFêȈ]ÊWIµf6ÿÑÔ*ÌK\Øä¦zîè.nœUe,8+P Ë0#ÍlIÖHÛfqýD¬1÷¨J%E’Ûà€yÎ< ®rB›å„AH“H\¢§Ñ^¸Haz|³>Þ¬÷ë#²€È&1™ß¦Ïe)¨Ûáùüµ¶ªq¦Ñ‰Ãé²è‡¢èòJ Î9¤rƪB^t6ä¶âD¹ý½” ÷¾ôãÈe8_Ä[)Š}U°T®üH8p0©‘Àš9ˆÔÖx»n7¡© ßsÌÛ–t…D'gÎçð»…åV¸ ]Æ`æVg–ÂbéH!ä§Ù¶fzÚ܃˜*(/iÁ:³]æ"¯Rà§Ùäõl,ön?@è‚c è©eIž15s#úþéò°U¾igÍ,³´ÆÅç`DßÕHÉÔé¤FÃHº>8lëé•>º>dãBb°è ëð5òBO.×I46ʨË4TÏ0D<ýjû†²v†óŒ¸é¢‰ÐŽôª“Ç©T˜Mð­ð ¬žOCX$ŒÐ[`Œþ;DùUð ¯Õ0ö ?”¾ ª/I8¯8 ²]æ.)L%øƒ#mà„² Nþu=ÇÇÛæãEü#íëq¤ +pÚ¯ýžôyZµ¯¥¯†T«g阎*=‹`Žx$ò¨™çe Ú‰ ©¸CŒ ±.êBb#Ñ^«€‰Pðž¼Nå#ÃðXÛ„ÇG#3­£Ô‘¼¨öo­¬cBªî®mÁg;+‘ƒs*ZìT󭹿&þÿÝHQ(yd‚›D§@è@‡”yÃ`Ü}m »|‹Ç©È}Ïj:´c2<rØ+ué­æ8&*B$:é<Ôo7ÀéÀ¹ž/î™þB¡€ç PêÑš˜Ó23Õ¨¼¶râ/pœû‚ù0o:@Y&νp½ˆ‡º“¡ÔEæ…c4âFaÓGƒ”q[Ä–@Ù-^QT¸ˆ—÷ÏâÜjr…}ˆè!䀫G!6‹òŸE€èç{6òŸ -k)ío¥#4N¢†-oŸ¯oo×·¯—·-§)=®ÒiV¡1A\_ý¶£‰+Q/Û .‡î·ÚV¨8|—çTL{$0£±‚ä-¤Uɪ"Œ $Ý4]H*î°÷ ÅkPBrº ɽ†jj¡ÓL€cÙšADþ$‰ÎlŠjüM$Oq[d^Œ<¿ÛVN‹0ˆbvZâÆ›‡»OÌp$ƒ\‘æ/ Ûš+š…”Ù‰áTRð®ëtdDj&Ë÷94šÀ­Þ*-­¶]ÅdÌú~h_Ôí±5FlˆºÍ¤¹EÝñqoÔm'Ѻ«päyÂ*8ßv£ RÌö+‘Âné,›¼©r¯în.³AÎl}Y!˦°cê8Ш„€†‹Í´9æ\¯1+qÀû¬œÿh µr Ö›ápBüô(°oQ÷=S+:<³tH*Ð+W •|…Àq±·B+±@vg²`ó©ôn/TIÔ²”'e»±(Ù©—‘Ž ,ì'mÙ/4 ¾YWÑ$hµ~¨•áZÂÞÚYECsùØ2„; 2½œoÞ¡[Ýe©*á'˜Í¾mk×2_¬À['›eå*(¿‹Ã¥èܴůöww?Ø ^àM¹)c¼Ê¨B0.rY_($m{dïªSfF³/‡4¤Æ:iq%¦Q)Ùƒ”&òX=j³s²:˜¼i[SGt<®òìÞ&ˆQ]·û÷!ÙLÎ ¸rÙy@GM˜pÐQSá%™›½¬çl=‰vUjBáÍHîâ zŠ‚´^¥&·ìHÙA_“ÞˆÙx†7<ÍìÏ2]˜‰Î‡§p5ÔX¹5JQ29á:úWclåNŒ±|²¡z‡XSÑýü6¢dŽ’ö[æãhž§ûã"8‡$©M–î.Ó>å‚÷xxØ…<“VôtzË/ôߢ,mKÉâ²›”ͪ [ußÉB¢¦.b/KÉí?Ž–B/²âdKXF%൙pQ Y¸‡Bˆ4½uâçyo»Ð†vhì7P­®Ö„~ãH‡2§~Ÿœ98J”ß“²,d’ÿ…m“èG(2Ñk^0C'íT.°AUC`d›(p¹°×ùiˆëæc–­¡$a¯¶µ6GÜxQaÜã‚™‡`OÈž9ØÖYÊ4}&#Ï'FË)‹†”.2¢Î‰«"|nžÕ¬,º]ÉgæœÍº†u1Ñ%1ñD9‰¿‚K]ʾ5Åt´³hÝS6YçÐZ§{Œò¾p˜øMìi¦¤\ÅÉ'c¨ ½­x¹ôîL`޼ §I>DRç"@¨{r^YQø¨xiíá-7þÁZËö˜ô rd¤‰{ØÈ_~lÖUhÄŸX¯Ìñ ‘®ñhôÓšr³ÿå™ãÌ[ï+xT0QŽ«!Á ²Ûìã{¬8TÎ{%ÍŽö;ë—!!®…”_l`E€Iƒa°9åI%µab ”I˜@õOl >¬}-Í_À`Œ°;§ŠhȶC÷GWÉ’£Hª‚žQ­èo¢¿ïç)ì‡A`Gq“ü½¸Os›2嘗ÛGÎç5äIÂ$‰Pì$‰{@Îð[´¥ Ü ®l¸”8ª„$mlBÌœY¥øGƒ˜ ð}òÅyË^méñ¨1 f¢Î¤avv«–Í© –©PîgcËj¯Jº;LÌç6¡>ü_V†,·-–!GÍ=¯¨¯¹ÅHØ |Ô~ØSfŒyd?ŽÃdÝo;ÆÔn”Ùxë;áDúzRv.jbûïSU¥ë!Ô‹òtû™¯\áØMÍU‰pÁçE³o"$öxLW‰ÐùÝq ¯âÌÊ K­˜u˜1Èbí@ÇíDíi“" i:jsn_P…y„q–jÈ´_š™S·Ãys¼¸7} = 0•Î!Qí2òXO-Œ Œ¨¼ãbòx±Þå9•R‘¶a‡p©)ŠØG¡·³Çë&]~ІCŒyW™ÛðÉae%Ò½õ M­u™–ÀÛ ¸ßßñŠ«£ºV …ÅÓ=“D V•ãèTï¨F[µ–ÀÛ)?äµô®)§êQË£y<[<é'm¬Q!Ò_¼&‰ëS’å ƒž쟇¨;‡[¹pËËÇÏð/J÷r ÐŒ]íîÓÅ´7*¼í®¸;.߬mÿ@npçÚx_c)x\u‚ca:6þÂSDËërOѰƒcQ¤kܪ8GJuëõü»ÊwÁ[£) Sކɋòb™7“¤ÃàE¤¸#äøDl±’åQwœÎW&•ÜA¶Ð¨Y½CÍŸâÄ¡\¦ÑE{hyD<‘Üo1kÄ!ªy_mo¥"Öa쯱rWuããaºÉŠžlçà}ˆ×t¨´fÎÙQ]C$¾œsͤݒЧÇÞ0¹µƒÊðç w'l¿ß30Ȱ2(8ÌÛí¤w¨Ëé© ½y½9BHºa`—ZnvÕ1‘zÓh€uéç&·IÊ@7›’Ja”ù‹¶[Ö$@],Óãm$¥šä½'|š¨.AW2Ë!dü!JǶ|<<¤¢˜–ýÓßõAÅÀ“v“yQ¢­UÄâ|Ìc(fi^¬Nýà}-þ—ÒÜ“Tlq•ˆön=¹>ÉëÓà‘’ÞÉÜ 3ÆÜ†˜ç`à=ú"¬VF߬o¯ÇðžDÌ>:zã41!zù2ÿpbÌî¾×öj$>¹‹踫òKT¼>PÞ!›,ÿ2ɆÜÓSó³è¿Í‚Qƒ˜äð¤AXlulõ9ø+ ¦ãâAùŠ“ÈÖ¢=|›bGc©rnÏ'=½ó¯ë ”GÁ0Äû9:O„•w9 ýŠ/²U"⤻Ȗ޵!ó*ïO É™á9`‰·=h h¾%ÑÛÚæß¼;®“×~ºißÌM¨þûÉÅï3Söùúøí v»¾ýËúøõñ«õñËõgß­o¿h>þi}üf}üzaýDËDB^îqytð¯¾Þb Ã(ø¾¶ÌX9Ú?ü%V­Õë!0mä½iOß‘:<5Þ<ˆqIÃ8¾°Šø3Wv1<}æÍt:P1™)ï«äÍ«G«”‡>·±ÅdWâ§ûŽw©Ib×:9¶ `K…Ó­¾ÓÅVž/¡+ ɪQ9F’±Nz˜ÊàG¯{?$6ž¨2& ÇUa•Öñã€+õÍ*¤DsoŽQ—¡xBp^DóóAÔÈ#±E¦i¥ùP0þÓõ«IðÁ2;è·+å -<¶ùNqÚ Ú-tŽD¥‹Kx¶%v§Üøº!ìyç-Þn¤8‡•€9³ ;ðºíߤoV·^ c@œN­nìæñ~˼‡!nzžˆ :¼¨b–õ"rŒ¼´Y‡EQíÁ!xR‘|„b€å™ù{OtyêòÓ¢¢nÖX"#P+m«Œõã†yß6?üÝ:ÃÅqüˆ‰›2Ì“¥ñeâ±>ßÑ6÷q>ÑóMºîFs8©’¢Îq-ÚT)P Îá/…’[+iôs‘G¬&ã^˜ê~ŠÀ åˆ7¥(.Ú†p?Ál>LVÚ3žKßÈEwë]„ˆÈA<‡#Àª/ž Wpša™7 ¼¡!9Š}Ÿ ÝðWV6nz4¡Yv£À•ãî ™¸-]Kïâ„Jú§\6P,ëc½0™7n÷cÊL&zù {6Á3¼cab3FY:Uõv·©p¢PýL\·Á|ZÙtëˆ 8™‡JŒ¸TU–߸T²j7Ñé5F‚†ÃÒV2 .ƒÞÕ$sþ˜8rÞr›ÅuOr~ÎòÍ9çxñ Ç‚Ñ q;BÅS÷8@uù ¶yÛtïHMLîâOñ®¾¢· ïs#Ow¬š>°ûHÙXâvÍ7ÝF†WZЧˆðüw—„»5‡W£í^©O ™[1Ú†’”m·áöin Q¾Z÷í§b»c,M¬Î/Myøi¸ÇY°­æÔalkZM ÁÖâÂVÁ}¿Ï¥×IÕ ¤F½i­ð¦G» ÚZóuHÿð®dì XOÔÜ6·¸’ûæ#¹€à·}ê,Ab›¥š4ãå¸ï΄œäÆ?íóŠ: "Ø*ŸÂ×ÎÇEanM¯³­‘[ÐóÔä"C…²ix‘ap%*Ÿ“^ëÖkÿIZïÏüYÏv"‘h4ˆU¹mîлíFcYð·¸V»î=ùé$߇ ßa&7UyCKÎŒ~ð=d6‡Xé«>ƒ:èjØÇà¦V;Ñ“_N—\2¿ïd…†èÏØ!qÞ†´qùé3˜ÜIš~®Yv†µATA‹¶¸nÝkNcˆk³ª.åñàžÆe{y[öµÏ3Ƹ>–­#ÖzØr¯{7‚™hm}ºœXòîÅMïÐÏÙE€C ˜ˆh¹ÉÏÎ×ÇÏÖÇÍyïÖÇW›B—n–Ä'<ÝàϘ¦ìÝ5ßü,]ÆÚp· Ÿdï^p4[x¿Œ-‹8­2­›´oŽ´ç„+æ 1ÅëµOr=)=2^G¤áO>éÂÌÓ¹Dɉ?û¬) ¯š?#“Ý4îÝPr<^ ºTÝö뻣¸Ï]l;B{¹.çõv.ìw±3ºr+Bø]aÎByˆ‘Íl—#ðj—?[ܪ0Xÿ_ܪ€ Gos«aô4´-BO¡¦ý$nUJÑß´|ÍÂ`媿O…ržç`ô˜Â–»ýé^´ÄQÄ@H*ɃïˆÎoÏš—¹9h¤þ¶ù•ò ŠÃˆ©lÝêøÓð'74󦛃>êôa„*v“Õ†¸sF1 Tx¸¨ò Ó6à­] íò\ {ÅO{£Ðø´sb.—GýÅÅÉ?á¿ÿEqˆØendstream endobj 389 0 obj <> stream xœÅ]IÝÆ¾ FNùs|4Lï‹pV$‡‰ää kÆ’mi$Ë#ÙʯOU5›¬ÞøøÞÌÈöAÏÙì®®ªï«¥é.Ä$/þ;ÿùüõ#qñâÑ$]½˜ÿxþúâ÷OýæŸÁ_Ä):åÌÅÓo¥Gä…”rrÎëIz}ñôõ£ÿÞ>†mTÁž­?ßáO'¬T‡Ûõêm÷ÞŸ—Ÿÿ}ú7|µæ¯VfŠBË‹K©&kœ¼xzoýýãK1)c…u4”ÑÚ›xø/{oЇküml4ápõøRk;yUÜüîñ¥œ„3ÞçŸ6F¸A…É(¸øq~JºÃ›õ©opX­£zžn!)ç'‹¦ùźʛõçûõçëíµk\{̣ͫsA…Ó49+L59­Ýd`ÊüæoÓœ­Wþð?‹^¸YDô»·"Æä׿¨¶·ÙÈoÖŸo«Mw /Åc—ëÏß­??¬?¯»o»í ôëZñðm=F;9éò‚H†a’†%] íÃKüm½ Aqm¹M¢µ ¶·ìŽYs´Å}@ÍÑÒÀ2è ÿ‘e¯•w¨‡x=ÀrÙã^áfFz3¡a®ñ3y¸ÌG¼a#ŽFÿyer©”‡}uÉ¢¬-ªÔ"c@Rc¹\ã`˜Ò·´Æ…õ‚®šèm1­Ûô–çM³Y iˆ`½‹~Ø©¼ö }Èk'ñüˆƒ¹IÂslˆ›Ç°TcHoÖY¾™'¯âá'¸W °f_,ÛËsÃZ#ñœp,½È+vï«YpÁÍ‹®EÁž{Ëf?,$ZNY‡XÈŠ ÁWRγk×I2vRÚ¶'ï%,‹ñžÍÝ]<ˆêZ·8‰$råJ‘¿b*ûq^¬•ó¥D65©â"Rdø VeöŪ¸®OëàI¿ç%ý6>Mì¯tøK‡¶új¸íCq¢JéPB†ª§ b!ÍßyIï1ÎƒÓøºïmfïm4èygÝtû´N·ç½/äTðhy’ÃÕê+ßT8”ðú¦ëmŸõ¼íQ¼^¤ÿ/|&F¯ä=JB…Nê4H§‡¼n!ݧBO>NVÚ¦3`z¾þ|¹þüc%ìƒÛ oä´`¾rrÒ1V³WF£Üæk"•!¿~C[~]iKZì6»+K T“V;×m\¹îÒÓך8]™³‚9DßEÞŒu¨3ÖúÖ‘¿JcÛàÌìöéêüà¢>ÍÕ€ŽÉÂs½Yï¸ÂÖ3«H>Oˆ)xYaz…zè‘cìG=K¢Ël²…)2Ñr7ǬîùÊ¿Q„ó \$g.ìƒà"®K© \Ä—p|¼=àQ޲¼’O¥ƒŽôèÇYÜà(['H ^îÂef'|p>—Òb–wÖ®ÞÙÒOÂw`ãl6Ñ‚ïvU€íð¢;n‹×f+é† fR^.âíêW ¹ ãü3bÑÕÛî½?oÆ—*êIÙšŸ„0žTNŸÏ€§ÃóF´žóÿ¾Â3ßÊ׸,)¢BpF|m~Zƒã‘² B¼ÒœhØ©mÁ=^w§v8€²0njoú–ñczÒ@d}*^ïN4XË®¡Ó?&)A€]ˆ|ƒîhaVCoÔS2% ejÎ@óšû%KÚæ~%šO)°ð âL1˜è2ÙÒÂg±Ã …*à’éÕ³´n-÷F Ëït®ÓºI[—1*„Á$ €_Ñ fÜæi9}…oòDƒ9 k@hñ —Ó^È «L”€P?ïÆ¯qWÛž¦HÐ:\ýšR»¡:דg§+Ç´_R[¿=>;Ìý}BVjy–ÈJŽ[¼  C\g»Ì=÷A!?i¯ŠË-œÖ¾¦¢24ˆ±'S*Tfí–Tƒ³=J…ßÑd²¦çÌTëØ %è„›×R³Vnûd‡¢¤/ó¼îø+S" ñ,bDÈ3/^k§k$„Ê4 $)åõh¹«š'®Ã lÙ>PFxÅ­­cœ]Ppû¥ù횘 Spþ“A„àÄza.§‡ŽÉèU’¯öZrݤ.%æóݨÑmÚtKñ±X­îã¨ÍÈúC¬VQmÌ%‚vÈ–°dP6³¤éò¨>gtwRšW|Rj1‰PsR=¹^  %µ“Sê.”ëIg1RÌ9>£ºà(}‚á‘°ï \èÀN÷v•ÐÚ:”â~tÄ¡PˆMÍ1ËûÔ c׋LÉ:‚Ãr½2oúx•˜ “3KÌ–uQÚYñ×÷ë^´‡S»ÚF0ôÇË”ù•à}‚¿¯LP·?Ñ£¹"‘$0®H³@ž«Ï ñ–ƒ];K¿ìejRÈÓBÛ© AJ{–©ßƒzØ…©uõ('{ÿ¨÷$IP]Ç,x¹v!œÛsÏ~3¸ç*ïO§D=çW|§¼I«‡ˆ¥Ü`| 1ïhßCeõø &ò¶_ª`¦Ð2”ɵAvl©½éH’.(EȽ&"Wäuˈ†uX&a`19çðe·ùàͶEë •U}]xØê|jòE Vކ¢¤szMÔ“ˆ5òዜÛÌóÐdCaÆèµÎs×µ)Ñ‚å$ ¢I‡w¿Yˆ¡°·½[h÷³èSÙ'Eì¸îfÏÊôò î7IðA† ¨¸tñ‰”¢bo{žû ^Lôƒe[EÇ7|®÷£ª]Y}0&§ ¿úÍj“ ‡Òü÷‡àÖ±ª*þéÉþ¤0¬:Ça1Îwwà`s;¼À0 •Óà“e/Ðbâ¸ÊƉüÛt»a‡ÛåayŸ¼‰–ü„µôJ~{À¼7±Ü_±GEÒ–GÒ‰Á³æoûÌÂK˜÷’º˜g¥ÿ‹óÓ€sñ¼ÒØxZKã²JUƒÐ½ï©|¯uí2/¬4˜AÓ$ÖŒ`°VwÚ°Ùä‚ ÉñãàÁʦõÅà7²–ﱀǿ&ƒº^ Š üv½Ú?@øõã“ÝÐFh²Ù‘%o€°¶è*ÐM™¹Xߢ¥™õuÏÀ»)¸~9F±µi ÿ°TiSw%CKõÛj›%Ñ•dãÆ{¹æ–®†Þ雊ätñfz7F多‡NW»å@Þ¥„¨¿\…0È£ò°räN˜êmÔ¨)Å-ÃÂE8!GÁg: –åÅVPxý~ŠQàÛÿ²Q*3ZörSq:z!Yǹ‹vŠ |Þ†¶qDÇHGµÃ²Äep¾ªWC¹{…Þhdøâ+ñpüyùù&2ØÈ£'íKWw›&dSŸ7è`•ÆÃMƒJu £8žÞûVÍñÍOh«J ¿¨C'’âTw^¿™e­Í¨¤jª! ôñYŸFÕë$/wÓÑKþ¦ÉVîÎ1SPV‘Ät Q~Ò¤$s`×3ö`‘ëÝ1ÖÑXãèyز…rp}*òSÌ–(˜ðqóƒ[$]W—ÏæíéÇÃÏÄßw<ŒÔmÑ £¾M{X>3;(E4ÂuX€¬Ëò8ˆªÆnºQ„f}•Ù,ÛF£Å;ù¼úðø\ÿÃìç¸þ÷t˜Ö7€npß‘Ž Ê­òTKÝQ£à˜N,§çì¸1kP•ÍÇUöœÀ(•Ùhœk`JêºcワrÅ4xL ã !ïô+eÁ³{ÀóNvº„̶À‰Sö 'lÐÛ’œg§³šøê|ɨ!öÉjs)ÃAùMØþâÒ^E j’¾Î³”feòª9ÁÛ|S @_w·fËÃÖŸì`í«õ±ï7QÉjP$ÃvÃêôѰ‡îˆ‚Bö_¤ ër‰è~LÛ©ÔF¤Ôk“nÏT7ýô[}ö0m/÷ÄfÛ§µÚ¿£ +ñÌYWí®´ÝÆ–vÚe¡ìŽ‘e½›B@Üí«xQ½Êz¬Âv[oG»J:ÜàåH¿`î7÷ïtï tÓ ›söúI¸[ùÒ3g‡£líÔén[Ÿ=£r¤Ï]¢è…+à4ý½ s£ó#ÁžèÕ™ø%#ç˜QìÉîó÷ Ï“ÏË ]!I=D¾ª§ÓX\½9õS¬¹ÁÒ®I©ýެsªvd¤ÅÕÑÜå­øŠîˆc«iªlóüÇ #Û<)@Ëcš6’}¤\{9UijK˜†Œ”bsq*œÀþzŽ\ciß›“9=7Œ~êlœCà;=}7Œ¢)Z'Œâ|þ˜‚-}#ëà㙌‰ï“¥s^é¥ kg¯ÈMÒáé´ÛºW>%µÎYJ]jûÉ´L2‹›!Q^Ê8S1L–"è…ю̧éÁH…û}ʇ'©h’Y#å‹d¤ bn3á=÷VýìÒ¾3ñyÊ&Pm +ØúU¢Ü'SιjÍO,a9,-Ãý ¡ÿÁWf焽ùû>µ“ÿÙ@?7ê ô‘akLó8û¤WÄ¿#øØH³ŒNzI¡Æ'½Öƒ)ë!yÔýqgì½ó¢ÃöbT]¼ž5Pl~ô7µu…Q>˜ó¥ÒËçz%ó¹ãaïóRIÛ/˜ú oõe&ö¿\xÕ­\°ÿiÇê†ú±ý_fú3ÊRêhe±t&m,OF;)3þàAU¶Œ„qÿûžùψVÆ{ ñH.})ÌÁJƒÝLÞnY(`Ó~² ¦§Ö|Oédê/tê5Gú‚d0g0ìé=Ë/{)ºx‡uxY>*CD/S“â«dèg|ˆ½"@}>ª:ç„h©ëd#]mûK9¢ý5B4Ž BFå÷ó¼Õú&³üÄ»ÿôôÑ?àßÿ{þõendstream endobj 395 0 obj <> stream xœÕ]Is·ÎY•Êoà‘¬2'Ø—äd+Nª/‰¬ª¢$’’\¢HY”l+¿>ÝÓØæÍ{ŒòÁcK£—¯€?œ°‰Ÿ0ü'ýûâí#vòêÑxh=Iÿºx{òÅÓG¿â쉟¼F<}ù(þ„ŸpÎ'sb¬œ¸•'Oß>ú×é‹3Q{áìéóåó? Ó\œ^-­?vû^çÏ?ý+N-éÔBMžI~rÎŤ•á'O/aÖ/ÎÎÙ$”fÚ„¡””Vy˜š­Õ†I˜÷\J5/`^­&-9§}¯±¯”Ú {ú¿µÕΉø;9YçO_†.ŠáNoÃ/•·úô=öГòô{2ÈÍ™°“âJÁ|ø%a„+üÿÊ0Ë þŒOÌhŸ×©¤uó|޹ÓwgçÂMÚi7úáÛ3èÀ/Vü!ôÕ èD7H›é:o—.7q'Vø™FBm¤Q^ÝËû;n]:Ë‚Îóa 8=!ãY®¸Y>oºìv Œ÷~;ieã¬ßào¼·¢¤e 0gÀ4/ÒaØú,°¿s”Œ/±QMÌŠùèmó+í„ÖxŠÉ2^±cÐÛ‚^—£`á Ý a·4¥T’8²š2ýj¸B =Wœþ3üPz¦ê…ä±oâv”•[ÖÝ ¿q ­”) µâ§dºðÔÐe]Æ3F%òê Ù WÀ¸½ø)‘DêY€à€=J4®Ú„ãâ”ò'„Y˜ ƒ|$¿¤Ë¦ë£}ÈOɲq¡çóJ£è¤Béþa=RÙÉJОs¯ø¼é¿ôd0êö(ºï–Ö×ëBêA¦Xø3Xf“Óc&hÖïI ƒò퉵ÌRݪX$€Wº×LÖ”âüC™ùE)5'®ˆó’£nã<¨è<©‹ÄÓ#¼Ñ=$.ÍL(¢<¯º‡ña¬< ñ]ÊSi3?O÷Ûº^¡4þˆç¨ —=ý æL¢>Z}$š4º¦N šÎ‡.…5-Ó¢ÄõHf=ÜÛy_/{$3Nš„XBëëÜÚåT‰æÄœÊ' 'GG=È ÌÍSÌßÅjl«ÐÑž7¬†¸‚ó«…..õèfÒMvX­¶ÓñsÅNod5n?”Õva.Á¨(]b]™¹ê¢×£±GF¯‡ciÌÄàg%ø †‰ž-1Ñt D›˜…û`þÒ)QÛ|l6Ò¬™k\!êä†ZÚÉ£=íëšZÞ B_q„É€PÃ7ãF2`2àx¹×‡ã§<›“YN¢^e^™y¯”Ž ÛéŒ40`¢€&7<\Íõi$¢‡4]©ºVÏÚƒ+@ob/'$å€s_±™s¡·p]Ε¶æ\iàüZ{­Jed:÷±S(K30¾)Ï EAÏô†œÈeœ\Ó® ,”nà{^ßEÉv%u¢t¾…9™ÓÖx[´Çµ²Š§*`‹ósS´’=\œÍðùuêªuϹ 9®Ã Á2/x¡a¸x©ѳ›™m2ú§ØWzÙa íŒ*x{>è…-G·lš[h—Qú†»LhBY­U˜ a%‚;²ËkB„!ˆÊu[Œ0 +8vðKª|vøk²q§ѵ ×‹µ}ó+³¶ÞÙÚÚzàðe)õn 5Ž”RŠj¾E2nâØÎë’»ÐpKb`, ~½!Vä.ŽÁ+—å&.лU÷»8¥Ú [ê­ö·cìö8Wo\Ý1ÇýKêDÏý:ÛZ#³šªå©Ëàø ªß˜Öxž0Xœ£4°·iXäS2(Ú¯›c; %6šcè+ýfsl&ðÓ ×ÑKf2@­{·Ç•š¸3£N¸tTé4„ïŸ.I¢½å@‹ó°@¥µð“ ÑÿÍ'«_£ßór¶ä0žh#è×J•D$z Vä0E!ÿÎ*ûSjä§ÏN—sí&&Y¦c\ÏÝyŽ˜¬#2wÿ vwÌ©{‡Ï¨Èa¾lçÙYÚ²BÛÜB¸«¸S#Ôæep ýH¿Ñ`ñº ¤â—lJO&F`}ß¼6LQn¹š„¯ðp2ÈÞ;`ç@…4YŸ¬»MâVãlÖ0>ʺ'Ñ{éj §¾ÌQˆ ] ÙðWðvDPB.óWñIí¶úŒŸDÜH¼¤ƒ—Û!þ\*€ ¯ó1X8©Ü(8Ké=p{0 à(@þ½¹ üÎÔ²€­Zˆu¨îAÅê‡êJè° ªãº½åÿCnE­¸žœ·;æAÃp!JÁíÀ "—@Œåuzì,‰ŸÓyßÖQë$¸ì¦Þ/­—V÷¾^ZßäÖwk¬;P$µ ¸ì¢ñfœGDçRðIÙµÜÂÍà G:uP@»ü§4„8ŒW! ¯àœ1µ¯¤„ 5#éë0²dB1˜¤Öóyy$IÐM¢:0~K3~nNc‚’†±Å’2ÙQ2:‹†¼­ „ì¡`xßW ½}1´ê4Ö$ï6çl1ì¦ÚkUù€å|ñuO²ŽàÕY)ð~x!+SÑXŒhFÔåïªÞyžW4°tiˆ°rï*Ù;ÎÂH,æÝu΀1‚ªÎÙðç…ªÌÅL££xg—ŠÒµ%“ÒÀ0 hÔ„ "ŒèØ®Æ' ’úlH^¥Ð²ñ# @¬[ßrŽòïÓ“Aô†•?¶P:åv¥e¤Ã;2Ü»öDÃÎèR®¢ë®ç,¨—‰+¬ï$»^ÆÉÑ&wØ5ø$¸u™ÎK»&¤ͶÒ«þBZhé0tüKU•DV¨&eãL(dû{pî÷v˜»?ç>äï{è»æeÊã5Øþ#܉‹þ‘ô y]ó9^hí*c܇½$‰à•ç¥À®LÀi ¼F-ZYEÕü :-]úþŽ-ýw]ú~ñw¾ïy6[¼X·±]çïÈTV»BF:Áµ*…Öxçf¼Í6oÉN!÷t§ü?-í«ô¢¨¦Ô©Á¿FÐÈHDF·{Èo—£ÿXñFSrr´‡œ!É׸T/4s¶G¼PŽºR_àÊÕ°-«3ªEF*´ºÈyÌÒˆ3Ií{ÚÔ™2ÅúRÅ'n·Ö—J,cFìd.J§¥¹©)ÉÉÀ‘ĽÆ^zpð¸åM4vaK42ò¯é/c¡·b$,°~XÉgY'›¥˜®G#§›^}мôû6æûHÎì.¡+±F­Ä=\ö ¡p t¨ h¡KÜÉ»è²ÅmØÒëd¦W²'[Îm蜃Š|XýGy;©XS¥çžÏèœá¬ç×3É¡PáA È3ìØ¹Ôç©o[š–Ðóe°ûWª(.yž„¬ s³P×+QÕòT>/´`Æ$ô{à"5°…3Yán1Z!3IL‰„5™³L½0‚õZ€ìØ~3ÏÍi_XºÀ€KØãÛn<å²kâH‡Ç=PÔ/é¾óyçëÀ+‹y¼8²ëY¼®/Î0 sXÌ?øâ(žL€ð«ÄH>v@"´CÒaàÛûÆ‚A˜©ÒcýïªÃÔŠ•HºåÔ*Óö¨ë¥s4¬Pk1&'ÄŒ{àw¢ÔÊ)‡E#në„2ƒ-àªà%ÑSýG(ÈÌ9ÇO GÔÊ6œ¡«ŠSÂÔN2{óÍß‹÷SFYb%õÏ¥<®ßNNÚÊú1žw5¶|eD"ìûã [†ª&E(Ð3¬6Gùpˆ3;bòtÃËWJO®ä£¶wZkèŒdTtÐuÿH8wÅ" ¥Âåµ›Ixeˆ!»¼å’Ã>méCÇÄF(ZÚâZSUöŒˆåü“o 2€~ÅB¹]h>í.ˆÂÈ@ Ï„ .nZ Ìý~s`K ùç¨Ú½S€$¾‹½÷WºH3é:¡^mK–GZÿÕº’ ŠÜHˆ"–(PúíE V&÷Èñá(ŽOÈ¡†w¨’öïQi¯5¸ÀØ»nÉñ ý­Ñ%ƒÁªVë’š•X=ðippZLÕ&ƒèn\Ý1SÓ¸¶º0‰s(бr¯de¬5pâûçt¾I)â‰2>,<¹÷Ú”Õâ±´Å2¨\†'¦Å=îð©ìÖë/sïiy*‡©ÐkÉI*ÑcéL–¸Ö•¼AX“[ž‘ºÜ4XÉâ&Œk.1 Ò#Ü¿*h:uþ¯ÝT|œSã üŸëð_Ð,KÁן1²ÂØš>HMB—t¾¢Ô+ÆÃP¬§ i62h1ºªJC—%ÏW€oïð«œk°AÁdOy{=´ýk¾÷x‡c£øcE…UOÄŸÚ…ªˆ· û¬`}ƒË! ªtvg²¹¬¸™¼T½ˆÓJ1f¡‰KY Ö‡.bÿ|r<îÚ+¢ 6š# £Ë¡zØ#m¶¤'æyFVàœaiÏÆë@®¬¸ëö2¤ß#±™öUŠLÇñ ßÔå/í:¾jÍíu˜5i¼y{ð; ‡™D×ÍXŒ¥ ÂÙW÷èfÄr¬¡ƒ6vã^= Ë£·h9Z‚¼‘8³´!Q‡Ž¯Ú䛽YȰV…ËæU]ôàî\,ÉÆË’ç=³ÐXšËˆZ N579gÁ–y>bp‹÷¡F´)ïÒŸÏ+.Ñ|¾¨z꽬8ñ¡,˜v÷)ˆXÈøh2›¯…Ø`é¯|l»7&`k†&DtÛIÁoV|C^³}h¨‰Õí“lrþ\V5øØ¸nÖ`xFt¤”wD÷tAtõíúæóÙ)ù>[Ezx ØÖ¯ ‘Z¢cdšr/jCªˆú¹0Y¿2ŸcªJƒ—ÇúÒ óìíJÃϰ‚cã]-Xª1»*ìj¼_;©±Ôÿûˆ¨„ëe!ïÒ¹83Œ2Ч%Fá¸Ë8 +JÁ d_}¾%LÞÙ]’ŒÃi«:—e„ÔtÇx¿ø³Øqzm"ßÚ€M•˜›×ý 2rñ Ï˜¼~é·\a¤±×)B=/¢¥©F‰{ns)ŠšÑ5ª‰Äú4[JHk{ƒ1¢J5”Db¨¦ƒl ªµïuͅα"Ï mD'v??L7²#ïÛ‹TY¬wÛWŽãþñý“’ZtNºž¯Kîžé¨»ŽZ ŒW~äcѤpUy¶jj§8ùzyc»8`ó6qÀ}®×ÐÁ6>æýØ-·Íýr‹åEº0Oãç Â"L~xÎèÆ@ꎬ ­˜AŠ!„ÑÊ5¼cƒ‰o3¼ŸðºîEÚ;5l 1©üÔ÷÷Â`ã:Á°æBYè­ñ b¦—qáxý¥ÙÁ»jõíèÌëgH–S ‚æ¡â\«Éi³C]Ñúlɬë4Xû¸êØãéÍ*Aëìû×ìþ°æº–ŒìÐP³PéGŸ\È}"Í©:éÁÍsÍ׸"ÕÚn¨èzÙ€æ6ÌuÑ%„º¸ rÃíš?,]úï¶… =z_Ð z¾y¸íÓòª±ïÿÙá,¼ß ã‡T*ç|Ãí:dž½o˜¤.† QŠÑá”SìI˼œM\/´ÛŠ»)ÃÖ¼†Cèý@ïrÂ!—4°´ÛîïX£Êã½Ç§úO/:ÝõJksк \“Ê 3Nexöi¾ybÚÒå0Åà]ÙÈÉË@^qu?„”wTþ;ªHèLƒ˜íÕS”Uê[µXç¾°’¾Õš"¥Ý;a¿&2Ô$Ýñ£/ aTû€‹BaÿUü…±7ãB²¶Kg­ë&—G.?  ÉGÑè6æÙR(âºÇ±¥Pnò~Õˆ³»*°6L®Ã®J-=|r==Ðýöêæ»ùÚу»Ô²ÞäŠÑNdCñ޲©òÎNVÖj5Ö‰Ã2«÷™šºÏ«HKŒµÍ"[?VFàÔ]<%îÜ!6Âbd®Nz6B1‡EáCú½kX£®xnÓ¿3£+æ±h®`Ëoç›ð"^é)K=aD‹8n#¢Šóõ§pLÜî‚ÜDºx½›–$²ö³?Ô÷­‹ à‡¤“FÌzqœ@‘þs[žÅ§Ì]Öû"£KŸ zãžÇ:jü› YvŠ•šørê9ìö(z–FqD-®p£õx²Øb¾\ZŸäÖøÚÓhÑ«È41/_,Ÿ_-æåoUküürùü|ùüsþY×ùäWˋ샸@?s3¾”i-;P‡ùU×a®ß ¥‡Öñoº}Û\àðÅ>Ð’O/BƒZ»ð÷ÆÑ^¸sñø6„n›¸O§»ÉÄïÁœn¼ÖïDys•œñ“åóO “Ùípÿ²1†i3á®òqR9X¹â­š2ö 0çØÇ¡¤ ·‰÷.µÂwËk%ž Úoʨ»k®â€–5F×§«wïbo^Ý“¨Â°ÁTI5D¾£û+#ÇM×UKýG!ã†øêˆSkÞãy¬/råµ^b{†Œ‹—jð…Dë©[µ˜»`fxøƒ·Oœ,–èü‰ý¿|úèðÏë`¬endstream endobj 401 0 obj <> stream xœÕ][oÇ‘~'ü#øbàp!Îöýò‡Ø1ì1kŸ’\±õ_\À£ÖÞD &ïö¡Úâ3øatSlNñº¦†fÒÞÞ/nŒž'¿£]U$Lmƒ²¶'HØS&¿6Z¦Ã˜É«jÁ›tDÕžr2°Iøù…ýò ð „J¤·“öð’ É?ÕŠèp©üdް>ÙxxsñÏçÿs¦¼D†>{~ \Åw Ô“°Á™B$ û+›6…»¬QðÚÊÐkF\\첬v)Õd“iQöÙÓšÎø´ŽÖS53p*¤³(㑪88Š1[¼èòn äÎs¹sbrÁËB“+ø¡´Qôß.o–ÇÛf¬“H’»ùm^®sc&'U,ËýI`¼>ˆLøîoë1-Ð;‰†yy’ûåñÅr’—<‰€ï:Áö6'açRÍ›û˲àÿ-î=öÖVðõÙÚÓ"8½µ/ìÕ˜œè€eH¿ú~YíoËãèü6{ø®;àÛåñ›f¿égÿ»¼eÇü®Y"=þiû˜ @J‡$AÖJF»½’•>ãr“y^ŠR‹&Tfä’hfœ·¦zß(îyÊü삪uôÓ™yYøµ©æy_ñ³½ŒÎø±üZ[ØÒÍ—¹KË­:ZŽæà+¢öñÀ½° ·¢EÏIÝ1ÀéÄh­%UôVWBëèWjç¶c~á·¦^KØjš8 Yظeè_*LJ \ ž`¤)nÁl÷¼š¢•=¥KCæ£êʱ…;ëfï&Í[{7£³¡x¢&©=ÓäCF´ˆ]r§£:ˆ °:þqØáms?檦wWn|î ŸÌ9³èÒHæÒÀטŒ”½P¸Š#EÄï ´«ÿ¹€ð˜¢xIFºx¤±ìû¹³Ê% à êCŸŸ3G¢©foÓ:ðKQä¶L¼/PÅdÏÞŸÈÕª¥HžŽ;) ;ì< »K¤¿Íǰ©îÀTZ(8‹ê?TèwÆïô1Pg‚Ìís1|p†NTãÔL^p*jßjf ÎjŸùF‰ÐÒ'{/õqDE[_Ølœ.ÛJ(û‹õÿ…±ßŠê ØHÃ줨#¸…Âá;ÑV¾I­›óTµ/ñ=Åìó.=¥%˜œ%²~‚(Ò[σÈ'…-«žÇÄ€kþ²8&kÞ™]VÔ»&´¼õjSé‡à~q÷ƒOrÖ‰À±zâÁfãS|L?S 5 ê6Oì‰åA@`^Ž¡˜ñÇ”qù}aÑÏø;ˆè½®y¯ƒÂ›w480Ï–1ÄÞÞM:hÕ°÷ÖGÑôè^5UPˆžžZÜ&>w€ù¸>™éÉuH¨f™m˜7bËvðÖyÉ”×gæ‰|H3x):•ˆ)b³ÿ¯Bö6þOBÚÆÿé‘Åÿ?t'ûkü艹÷ˆMÍ!Z+Ñ…œ}Ì+½K˜ðΓa]tƒÏðýæ™kÌ£ø@n…8)Ê!@1ð87J®Å0"ÙP9Fc\!G 5êyÙs`Ÿk›| á‡nµFNº½îìÏ÷Ã;…Täÿ}šÏŠ!Zv­­¶Ç”éOLàùÑÙÁjÕKq`^²)øÔÜeí;µw9ÄŸ»"Lèx#B>‰‘¦qVP¡ ÝX‚™O\¦ßð9ع¸s™%|A^t¬2äì¡0‡!ÆÇÈÄŃ9þ‘VÎ!þðc—ìœUÖ¦™ >>ä.MçL&j±ùÛ¼8ž¬=|-´n,QfŠò ¸© Ü$Œ?)Vž¿E5±ð0Šh\ÒqÞ¾JœëÀ*ÊÙÝ{·d9»"¾Á‘«ÑêÄßy5ïAŽOVÌkn5sßžP3Ê@ÒK1[BU˜SCo•j´"_׃¥zþ:…‘˜†Ó›p¤èóÑ1Ç6BfFyæDåü†Á¸ÝxEöxD îψ?1G—' ‹còjŽŸ Õl7•;}"ÛtFSs‹‘Õ>fvN Öðݶ¢€]¨²áq¢À°¦:IQ¨ˆGÅF¯Ò“rð]„7‘þ¶ÔMN”ºyLÓ Ðef\ÀÊùö.m|HTïø…„San¤òi½ ú$~3)Om„5®ùïˆ_ÆØRr%L"ê:Õžœ>!Mh·ÃÄŽ¿×KÌÓÆA®™áBö¶ÿœs-iwµ“½f©ò.Ö"Ί-%ìñå‘Ò ¢O.xˆvÒpþ‡ÊýÎîÎâ^¥ßé>ÓhÓ­´!Ÿh„ÆrÉ9¾@À¾>&÷nîÓ‰”Þ\7æô©â„ 8^å¿Ö€0.A\S’`¦³­xuFºÍ–¾/ÌŸýí´H휦À)ÿgž¡ß™UhŠ%¡6i^²uŒ-ó"AÊFq cOõfñŒ¦ÙH=[§ø]i[¡,>ãÏ_Ÿh¢àôÖ%Ì"?¿B H”!öº‡Hp<õŒÚä ¨»=¼ÜƒF(Ú™5ó´1׬6æzy¤2ë‚viB]¨÷ë`W`¦…Ô-Œ F…]­ˆÓKd|.kè‚WéÐèù¯²¡µêøM4P¹ƒJ­òv•JZœ$ÏZ’Da;ðÔ –«Ñ¾ óm°•r܆ۨظÊ%¥óì;rJT@eQ‚ŽWÅYÇÑg5¸¾ÕÀ™MÃ'¿íi+‰¢/‡[çLBÓ…9K .ÑëL(FÒÏ3‚ƒ!#gºc  ª…$Â[aœùû…¹6Ü Vª½Ÿ”7£Âç9l³ÓeøŠˆäxŠ‘Æ¤xÜõ‰ ¶QK¶Ñ\²Þ€ßÂ%£<¯\iJL×ʧ¶$_ k­‚»`Œñe¹ƒ›ÔPÞôñºû×5´¾˜ù7’rjØfëàr€_Ý,JwÚm¬öÿ.NòÕ"í/—lèÛåí›åímwìÝvæ´ÓéˈÙ‘Ð6ü¾¾B¡­ëªA˜ßû]<+ImoPhö~ƒ‚Ä KNPe!P_•ý~Qe,lb™Ÿ\F B†I³'p×õ…‡¦#ˆÛâüž^®¾&ÞÞo Ýä…œ—{º<8&îBŠcÄH†Ñî©ý6Ü$#fÈŽ5†0O¢-9HmÉA"ä·ãOѶÕõ( qƒgî0h;0It“ÏCSZ‰©dÕ+>è¼.£7K›pˆ ®J+ Úr—×ÉIgT¹öÞ¦þŠaWÕgæüA^j@ùÞö¹`H“2z“=[VŸdòqç®)˜¾ISŸùd;¯µø?KÄ«ÀVf¶Ýš5^L{V©²ÆMVé‡zÓEßø[ ’yŒñ_ ¤xÙÔ¢ GB ¬å¡'m߯¦Ú¶RÔmýº1’EJu-kŽÇ8Â=¨%Èùš|Ÿ]D¥Û6ìt=UDó Èè~¶5È+Ï¥œ"É5]d” "õ0h“è’û*•É0±‘{p©ìÄ·àé*.Á}`ú5GåFxø/eêuÇÒ–t0Ñèjxúd 3OåuÒ)!8ž't:Ø.* Qfà=üùìùý=ß‘B–|pnÊÁ FpåH¨ZüÂ)ˆWzuõåú1XF9 åÛþcÚUí£*Ÿ¼Rfí‘$¶¨ [9ذŒ£$i¢x¬)n1Ä™ÅËÊ@ÏcxM502Jö†{ì¼_^§k ^'Žˆ w ÿ0×%ó&-ðÞ`×à¼'·ÌPçSéæü47™ qÄþ\˜„²•—4J7€9}`¹™:š‡7- HwøA\µ)²<;Ïû|L¯µ–£–,æ3p ltO·+-X&1äózgIqâÆ—i²5ÄŸÆ ¸ØÖÅñù¨µ^o'ïèú€¶Æ9™ÇVEøØ•¬^kîa@¿^ÉNå¿› e«ùåð\TÌ.¦{—Ž}­É‡­Ë:ÓÃw2†«çCÐ÷±(}m-Ýly]}²TѦ°ÜÃ3Ï&[•¾eØçÓæ}¬àSÑ©!äbx$þÙèÌ]é`µÔldOÈŒøZÆ\ƒ¢­›ÄÝãë¯Ó„Q®ºñu®³k§†"ݘJ<—ß©9둦toçwäc€þîÕGi•꣜¢¶’‘Ê¿ƒ 1W¯'ñ+éÁo¦»ßá Î+©É$+øNÌ¢Bî“{úð ;SÙž¦×ï/¬Ä^Älp)½ÜEC6‡žSk[¡BvÀRê­œ J×,øo6¤tІ•22µP*(kR™ím¹qrÉÕ!Њ|ÊQ©ÓR¯I犘Š?#xþ±n`åž¿&f4÷àN˜}åf:JŠÊZ”¶%ÚÛ©Fælæ1„¦%ö3ÚÑ­’+èWÐm|ü˜•›QntüÄÜU>ÇF Eš»-Äé*Ý­ÚêHqÁ¨oÖWƒž‘—s#|\n¸í\­¶êØL–£+ø5‚ÂN)º©´;5ÚvŒ+ WG4N\!—6«ûpèï¹Uj@¢ª ´®¥1@÷Fž}eY­£‹%Z2 ýœo7RçLZ€YB «WHã+T‹YÍ:ºJÑu£jÃ`W‘$ŒÍý¥ˆ$ñ>U÷Š]u3:²Üçb >Ì–€eå"|hIó ±>AâtŽ U±ÒGº>G øãOÌb#r ZA(®~¤j»fÈcò‚WォºíŒhdUõæ¬ÑUéÁéB@X‡Ò8GE›ËÁI±àE`–Íì©§ —¡ojЗs—¬1Ó.dŒM¦ dL×ýb“›:|“öé­¨9„·2Úlp‹v‘îkJ+€YýŒÙÒÛb–›KoÓàX´r¯{Ýqgð[wy¬ý£Vúø!vÈ?z+ kâ†>0×9ïç N®Y‘«2•î™kì-ö½í¼ƒÙc7J2è`¦‡ê­ÜGq~LÇÀŽ¬Öžãk¿ñÂß ø ›¼®Þ%/ºó™È.îè›:»/AB&Ú€z[z¿_'êÀ‰×GÄ›Úvûõ_¤¡xCþ Ú®¾M„†”+zæú6M¨æüÕM wiu˜ed»Û»Ÿò¡k‡wK䣛¤^C8ÂÛò,”‘ºjëÜ †EO±éÈ] Rç8‹³º—ÌU¢„'d¸}À9ÂÔdXš aiÃß–UÖ⯢6ÇËm?—ÆhýXïÎéà‘ÄUŸæ«Å ѵ SvÁÞÖ9I¢ß„V.ëdâèÆ§íÙJ(Fþ*¦-CüÜÂ*˹j÷v£ŒÄ€3~XÕÌoKËÛ¤RÁq{ª>éåH,z`;õ~:7Û•¦ÒöËÁö8éåf™ø¦ÐfÑëakkY4µÑÇÔÀª8·9•7ÑÞEݨ—jO’‚ÐcÖâ«Áz#@·ó/bPÒº)‚'æZ|ˆõã­C“ ÿÛ Mo1®Ëu¾ôÖ._/ &è_âuÀe²lÛëûr© ‰®Ýê²`×rcÙ|pt5×÷80,µõ&Ú€.qñ¨J]÷¨×pÔ ¸–úöN‚iy¼1–3<§v6NRQ”¬ ƒ{ÿ…!­Ü8æ^ú¸?7ÞQªxnñ¯‹ huLÄÖvxžŽÍ\;hæºZ®ðñ=ÃÓü›#0Y°Üѯ›«{ÒP±:åMÜön¬gm·N¥£U_:Ò¸‰oÄqv m„?VâBvfähñj.’lfG…5¤+íãˆùfK’O¯²|¨_b\%’ñ8Áï½SžFÇVÝ—+·@ßg¢»ÅnNø:½Ub bhÕW›3Ü…ÓùÇúÒ¤ž%ª‚ç¾gšÕ[)7ËÆ¥4¦5vrÁv¬7smmó˜zgo¥‹o5ÿ›™ø%}ƒH¦n_Ü·Óÿ]u~iÀ9ïƒNÊn›wó#ÿîùÙ_áÏÿ¢ºIendstream endobj 407 0 obj <> stream xœÍ=Y“ÉQ½>[Ï_œýx&èíyúÏÓëó¿ztöýï½:K°ÒêóGÏÏâ'â\±ØsëÔ"œ:t}öÇ‹§—×EÛÕ­öâí%<*åt¸x¯•Òf•ùÙ8é.^±çøìœ±«ªÞÇitpæâ ¾6Ή•†+#áÅÅãm¡÷—ŲZíÜÅ3°.k=€¯~}‰öRT ؈VÎ_ÜÄUà)­m`|leõòÛúçø~ °ø`ÖKšÆ›5À~ù·o.¥[´Võˆåò¡fQN\ü íQ…U_¼œ¬ÿ&î]xSMÒ Ç!Á†  U³M\_J¿˜î#›î:"JJÍ6PH_=¹|OÆ_üþò_ýÙt~±:y=ºrb§ò<Âëµ®€IÛƒéj:¾'"±H¯*úŒ[2„|Ž^)U=¿Ý†Üd|™²_‚ÿ0ÃÿPÈÅh+â6~ˆS0¶¡#˜G+i/>ÁBrU*¸jÀXT™Å4t]¶ÀI•cå?ÙþžÏýç–KhØíC\rÕí¡oø|ÇfIüä…ËÇi¼4¦ßS·€SœÑÿU»»hx͇¿Å×jñB´T_*81$€K«ÕNE H-œžÅ ]S~ép¤Xþ¾X0L-Ô#oX»o2o\ÅÏœ y³«±Â à;¬Ñ7ÂÇ×VÒ%Rv^µ‰¤lL"å_¡RK „£„?¸‹/Œ¾ßMp1AûFë``› %œ®ŸÅl¤z1뮀òɳø)(³jøã,Ó¹Œ~ÇIU˰ <éy¶Û¬Ž³Ñq½n$ýÛ´_ØÇ%;)A˜- ÷›–Y…ÞCa3È‹?]°1mΉ~¢C9+þé2²F}I„ ÿXM!dø«A@áû’¤†´ŽË^&œr2V¥ážobŠˆ[ å!·v’†L T?Vk¬"“жuþL52›}–ÎCˆyçd"9V`W¯-ˆ,}ñëK/–àB+é<—™˜Y#Çç8ƒ „´YÅ‚Lí˜&—dNÈ«7çÒ¹`gBÿSFªÃ5ĽÁ£]¬‰¾ø:&T«¿cSóí¤ Ûh0ŽŠR:ÀìŠ7.­ë™¯ØÌÿÁ4ÕDx§ý‚iìF'Bï9çðñÈÖ/Nè†"•Š,ÆAß"íf>UAÚS­ &ºoG¯+Rhã[0†2  ƒod:ÚW6Y­ˆ`(§:“ Šój'¦ #FPÜºŠ“ØU4œ8²„Þ¦‘j)TÄ?·ç†NNÞ¯W_M€q;|M>æË¥ê@òC«Í8;+?$c^YeÏP¥Cðó½éÄÌêrÇ·àä“yÿ‘=sfçF-竉÷0¡øäÄ=Ö¬3³w{ B{‰{Æ ö­qË ªúï 2³jòYôªeíQû‡ëfiB8Z-ÁÍf´B^½½ŒÜ’}vH—.DSzuàáÎ Ç›´º± KÓžLÕ±'Z@â†uo5ãˆ~_…ééD¦ƒJG=3¢2*­€ш[‹§ü<þ}uCf›vvc‡ÖŒ6ŽlÄçpi–ÖÄ]‘GM5œGä†tíOì~ð} …8càáÎ`C®¢›+T/gáõº:æÇ$ètù³ÐÓ§QFºÑTU¢"º1í|ˆ‹¨Æüê½’¬Wq´‡Eq“‡‹ý×É£mµ™‚ÅýmÙ±ÕfˆOaf>e÷aïö|'gË?ˆ°¾õWq 6 ­uPR±¶öâaDr;pæÜÄ"Já¾ óÔ\÷T«ŒysEçN|{.‚uDÇC«Â0È^F„à+†í¥!DÚÌFpr¿Ó©­OχÝÏì×Ï Ât3kjrŠšFº$bZÑG÷ÎY‘CIJ9³ÈÝEêŽ0£€:&]ž3È,ÌËçn ³(OÄ]Ôû}J Î SËhP©€”GS&×¢ê0äÜ Sè‹©ãËõýLëÌbz{Æ3®ªw·O»PaJ¬à@ iïâñ¡“iìíȼŽ=>té­ÆÑåÞ4(È`ùÈäÔLñ­Öl"øºŠU>Àbd0b<Ô7Ž©è²?àñ p˜@6äAÁÒÁÁÿÐ+¯ã:FV…ѹªÌfÄȨœe |é¦aÔ,â=XÝ2$N¨ë{“–f¼M\ÄΗ¸ù㫉G¯È±dIÒðlb¦f“ƒ½kж2¤¹‰ö´XÒ/a×?„ó™0·|9îHCI¡TÚ,ê/žˆB$ZEfÜ£0åæó»œ|U¹} óI+i§ âà-ȉßXF.9T2 í‰Ã´®ÉéLŒƒ<ÊÖQ ÝDô(=ÚdÐ^7aÖ[ð¬OTŠZÝc‘u5ÁG+Êp£=˜žz9UŠv[fàwq횎f´| ÊñŒQ“iÊTñ¸z›÷3ñ…ˆ˜[тʥ Ñ0£Q™B¤=¥"èKiËŠÈéZÔ5ÙñaÑy/8bARŽ2^ÿ G{ÐKÊŒNÁ‘é}É©‹ îïân¼êò¸ÝÕß½b˜kET³<š&|>3“¯",R†Æ¨ŽF£…šï3éógõÊÁã›y*üÄ8̉VÝ)u| ÞóAÓââÏ{#ŠŒÎÜÝ-Hp­K‘µ‘8sšo]GÌF†—ñk]+(%å"\8e†Ñ~“–èC*0xGÊ##°-Y‚”;¢[’íµ :#&Ý.ªõX¬ kãþj¥1)ÖæBùiqëg‡ƒJWš¥qß’ë¢çŠøó£š¤hFçžµù"AY¹:ô-jO¸@³fY×Ýêr„Ê×—'&¼ËÑx¬ô€å;e‰è]}[ A ªaS2ÃŒ™Ùaé´|o•ât¾Q½“¤zäð×Â1Ge°vÌ £»î­¨”Ó!‰QPŒO89î)tÆgÃ]š(‚^{ÙwTôôúAÓØÁbOP5•¿ÝekfÁ}ŽSà‡ã uƒð¬ðVg!×”ÛÓ-0ïéÑT:8&kIî:¹(7Ê‹°g•éÁøÚÎû^œ`ö® q‚‹Æ‡ $ŸŒzvÉçþr FK â n£õÜ®~qšŽá· î-•YÝ‘["_—wWâÒNkÒ÷ä*JSÉz¥™8ÿ8&ª×ñKŒwµâ&ܵ¹Ô°Šæ+¸YÛ:m|yª‘WÇ¿yˆ¨÷¶>Í›rì&íCTúshògÔf XÚØƒÕβU}ë)X|ë±e°uUq”‰l0/®FÉ`Z×—uxÚdr[§z?‰/ñU^A·Æv„Â~M{\³Á–âNq÷µ‡s‡ô‚£k0“ ªU}*i.a°Ö®2wNT‰GúÓyN  Ky‰Î!=a¤:Òµäh[ŒxÂã,Är÷ÿ‚uñfþÁkã€k´„¿¢ÜÂã:Ý¥9Ú½¾·Ý™ ÷íýÊEqĵëóDïu0QŸ_ÿæaè?BÎ’D­%5°ç¶ÎSØN2´w\~…Ñð° [é™B¼{a]°Wí-z×ÁpÌÌ|nVµÍq!ÀPŸzîͬbûÏA:&Ù -ÌjZiGû×[ì9Ë6÷›"6u«†1)dj«rVLê¼;Û¬¥ 2W“æè˜K—H†¨Tå8®7pO½I,ò¶ã€Üõ§6¥úýàêÒ0ïÚºª`•Û,÷šTWÜgíRMzd®_Œ„sEN \'¹or)MFïv‹ì¤Ÿ5¹bä[îZŽ{¡ѷ'oÍNïCQ6œÄ‹Jyô•ø»å˜9£¦­p^MâYD :º“fƒôv'ØðÁ5´”,Í·Æœ[§„Ô UÌ’ÎÓ×Ô%UiŠ”Qò^Ïêffm§¢Û‡©¨kún`éÈÖAšuT:êø»ᓊRÖÛ“#9»n¹Nàúr§Y¢{7Û£×$h´-À2A«[wú£ÞÉnÚRå›4(DXE˜–ÏòÙg~ÞÀ9×ÇEä׿}¾\ÆZd ¬’#Ó¦œ¯Uu*†êÐò0hð2ÑÞB/£Ÿ°mµ»0›a±Ü^ð;Åâðs[ó9‹$ESãÆ-A=ƒ‰½[PMCvx‹iŠ™š:vÁ C¡4Í[ÏHirÁêÉ8òyRcA^ÎÔRÝË8Wä2 ðµeÜUáø€Þ2áý4,²yßÔÛÄÇ7ÛãÇ­ g«ØÖ[l¿F÷?ÄÃs~· &žï!çOÈ{×;wG#f¸–°u·Þañ8f1Aq4Åã«2Ø/Ç!‡‹Ç»— ôèi *̬Îâ©x?Cùum¡ñ­Q'Âel =’£œšðEUÜ@툣ǥ6áž)‹‘ùºnPˆŽý%­R<¿IPXü¶->âÉLS°u ÷¦Ò9wD‹´ \’=ðuU#5µç8ãÙÙ*ºÅ9‘a\­p§ÌF, mj»Z‘f°Ê{Ëû²+ìâÄûííÍööÙööÍööêrï:lÏ£ÄkÔ]×iÛTîöp£%mkÝ¡)–Û|ìt¦Ùáèø©¯“c;— ®¯ ’É`¨…Ô¸Í)Œ¸i³ŽCLOw¾®!¿š¿œGïÞ.0ãuSI”9-Ï*Tq#ÖN‹M¦ŒMЗ{j9RGoýЇO¡î2:#Ñøþjp¾òÐØZ<ˆ÷Q¶N(0µ§:‹ÉE‘Ó¥ŽÓÁcà¬Ñ]õ)–öÐcŸŽ$Oà®zÅ@ºÚ_ M¬;SxÕÌŒ)´ýµÛå/¼=vËüçäY¸¶i¾Åß4Ù]kG'2hlÝ>Oˆ€»Ðƾ!Ý.à9 ~g®É™¾‰ë(;4SK!8Â=ômEæî%WëMÆžM {ÓÙFÉô.wãvòË\2¦ìÐ^ Õ”&¼UΉB'Vµ- þöÑÙï0“Äù‹g(MÎ?­ç¿9«Gut"m]¼9¿fo,Ö圿>û¾“@6øû7á(–ÉÊ%ª!Ú±âß«øwŒ\¨fˆ%8Û› Q…¥ÐxÏTWsm£ªÙÓ¨Ù¯ÁWçh%ùϬc×8©]„ôñÁ°µßbQ‹”° îr«ÉÁ¶,œŒM.á¼ðÑ‹×vËÛgÛãÕ6€½}Ž—èåb…¥kéíÍ6öýööãöøt°ÁP)Ø ðÖ#ü»mŠÇÛlå—Ûã_·Ë@÷aë‡à €“eÃÅ¥w…JËázjfÌ—Òøúp˨ê¸Ó¨»®‡Ã 2®l·F•æ•ÛU–ßl˜x³a‚Á5î\P¦ò§öÄÛ£»90¨<²ëÍyj@ ƒTɈßú¾5>`TuQÁ¨$Û~6S ùyì倿ºðÛ|²ïóëüðb½¼{“X%$PQV;ÃÍ€”>GôôI.¶¥Pp[ï-vÜlçK'”M,–"¼ôða{À)`·&^d‰û2 ï2$¬ËxEž À{¿÷sFסôc8Žâ÷û)k8 zç8k HY³FU1KuWÖpX•k#k¨ÿ¬Á¼á‚óÞYC£DØg2dÄ7ùáeM£io‘r„Ù¨©ßUÂŒw_Á/÷DÊ2à-ê!FzR.æ¤l^J検ȶ"å2ª%î¯!ej{)Y+JëòCeÿ&äïHÉÿt "!ÿ6¿zž&sÙ‘aûãûú¡ž¬HêwÝwŒMF𦍡hr8¹MzUë¨XœO®¢z£–Uºû£zƒž€åTDYQ}UñAuWª§ß…2‘ìÍ.Ù7vëo”ðU!½}Í‘ÀÑWSxƒ2lU £È‘)Š48 T­ÎJüŽÞeBþÿ{õbsPê!ùl28ì´ 8Ó³Yw~cX€˜ RÇ“¹]oq¹õÿ-¾¶\aî'6Zc¨h̳®á³Þã¯ØÔo·)6ˆO;…ƒK˜:…³j¯|%§i·> 5¿Š?¤hõü×cò-iªÉwjŸèþ’ê:{·´‘Èá…³cíÇè¾”œþ8Øî½1îð-[YÐe.åvÄd{¡…v'4¿áUõ’j:IÛií?ïRãxÍQV>$ü‡|o ÈO²ú®®®Ëv¨Ayå¹ÙnzñϨwY|t̂З«ž\ÒìKåö~.­»7“6;¿D6ÉGäûYÝà,]hç7çË/ [)t°»Â&"û…,ø“K;Õ–“›e³¼[ÌÍÑÂ=þ±DÚ»{Fáq¢»Ã€éìüÎ nÆ ²º¥Èƒ £2$Šn²ÆvóË-ÄGÀÃΕ¦,ÓË£ òƒk͈T@(ÂÁ¬DüM.;I÷G^Hïvj&\îé62K~_Å^¶þÕò½â}l Û>Y¼¢-6ÕWu)£ÊG{ëö\œµùOŸhmè7Ç¢âö:ت*éuª]»b„Ty´0;6ªØiq“Š1Ûuã݇‹oü{†¢¯ï”ï]ŽAPw ¢â/®ÛP£v+e¨mµ˜6oïÅPc’6áAµ˜˜Èº*šUÉÒý|PÀŸsú•åm1ð®¹åmÁ™Àþ¿<5`ÉLã©ü¦XÞÛ2´ùß«›å]‰vöNySƒC ‹™DžÀJCdÛ(>{uGË„Å'Ç©ÝÀ«6ÀÕzM×í# x¼½ý¼e~yùhî¨,Û€eûŒ½=YÀ|€ nYj7z ±Ö×ÁÍÎ.wI ”¨ìÇÖ¥äáä'Ýw϶dÂu7×çzšôº^ˆâÑíwŠ’Mcè› ÖjÖjhÀŸð _Ò½ŸH1·ÈG×_p.(ƒZ¶ø &þ5ä ŽR(M~¬á‚ç]¾Ý°ô¾!Ñ&TQÉÒÂ5–Ö8µ§y(âd¬b‡©0ü©r DröIG.¶ØnŸcx9 @F§‰qýÅ_né‡c4œ c†è×ÿb›íî°1‰ JôD$ ƒ&üï¿Ü€yÖ’fqYþÈ0”>òòÛÝ|߬å܆‰žò÷_wB¥‹´“ÿTPònø8ˆÞ¯`ÔûiòY~ì}Ïð ¶Ø­¥âÛ2fcä2fƶ nKJy¼és®È2“ØöíFáÏ7 g©—Oí^3{â‘9q‡hs­ZºÓŠ A:J| àÒ7r³ñ\y,ýÝÙÿ3SWÚendstream endobj 426 0 obj <> stream xœí=ÙŽ·•ƒyÔÃ|CÏC’ÖØ]æ¾LìNà,“Ø~KDÖfAjIQ·ä%ÈÌçÎ9d‘<‡dÕ½}»å &\bŸË"Ͼù—3±È3ÿ­ÿxyï£Ïe”gO¯î™Eسo_Ý“"˜E†3ç…\¢9»l#Ft<{qï‹{Æ¿ÀoT!Pâì齿ÀïÓûÖÿ=¼<ûù—éÍúÌ,1H­Î¾|r/¯IžÅ°(cpb½H¯Ï¾¼¼÷‡s}ÿB.ÒÀøŸ¾ü/ømðgð.xµÄŸ*±X"üüËGüõ}±è`ŒVçÒ£NŸ_µQpÕžµÑïï_8¡'Ýù'÷/lŒ‹þFó^6€môÛúˆÛnÞ†³ D—‰*¯þ?ŒŠ뼌g À¬ç?%}n¤¦8‘fÑÆÉ‚“¬Y¼@¨¾÷ÓòÞ7ÃAÇwˆ:¹XiWÌÀŸŸ•‡ïËÃã e¼=ZÆÞòÙêü‰0ö²<\·¹ú‡«•|ú\•![~´¾9øóeìÕðæGÏ&œ?þø/!­ïU{l«FTÊ Då Ù¦„|Ä@>ûòÞï›âî€q.©¬ªEh.™ŠÈj…:U*^”öY*Íû’ÊË)Àó[KåAi¿Xéì¹âŽùËkt­À ^Žpõråë)³ òßë΂òü¦>ë”+Åç\»Jc©°£dKÃ¥½B1ù_¡NÕ®RƒS²¸ÿ¹ÉÎE[¸l£?iÚõÝT<‰J};•ö&¿ˆëñÝ"ÐXGjMáÆLk"Ò|H(‚1µ(‹P`”R„)¥[—FŒÇþÎ- HÒÈJŸºFÃu9[ ú ftÊF0.¤9³ƒÜ•^¿AAÓV ¬­[E¨PÅb€'2<[oCH6Aq‰bFkX:*I ’V” <Ápâ*OÞã6"*JxȈòUÍ•: ‘‚œ¸á–²H­Wí‘\w°Nz퓩ΣëëbŒ…­øªÕžµÅah¨-âÙFÆùë6$mº¢…N÷2aì&›bæ Îæ—=y•×aº_Î×AG3}Æô¨JA—ª€ VqsZÖ)^ <ÎËÓÂSè7¨…ƒð¦ÁQQ_º_4Ì“€L[»îÄz}á&ìPh¤Sš* ì¬NæË©0{H˜=q%{a,mv…(Ä%(ww„SÀÒ¦ÄsB8]éºc üKÄ)á~ÑÁÆéNÓmÄ•ÀФ¨õ €1¦®40Å•$@‚‘rJ®`åH‚—dº=m²¥%Áœ]TGƒ—mx‡À"š¨É„\º¬¯Ë„æEy¬µ“ü oO2ú¬ È÷ûµ[Ö·kŒ?Œ?É, å{²õn]Ç¿8*¤;æ=724™^ðº®3?#’‘˜ÄaÍìt™Ä—ø5hS "Ù“ÁìE@•·ľÐgÊq9äY—ý!.ãɸ"!½i•¡¿FA(Ï3Öºœs«³Dbë‹9™‹¹&Üöü‹I¶8,¹†»Î¥R´´dÂÕY(œ%ư¥¥)o>Ï‚B"Á$F8Å\´7ÂI»©¬ñV£øm^ŠÒ² ™û-ñ¶&ÜzéÓ6ÍrÿÂH°àÀÙÜW/o!æ RBù¶º‚/Vô‰ÈXT<ˆøMas·È¤8p‡é:_•™¯WÚ K‰Aõâ‹ Dï‰äõn6r—‚àèX؉JTgBÀc{wßð7#¢0¨£G ¾"‚Eå“"‘¼1;}Â-ѸÎä*Ëä(­°3ÛÔ£x½aN(‡PšMü¶„9ú[TФDiF4²Æ‰ƒPÍ,²— ú%áè\ÇYi:÷kòKªqwÌ|…AÖ³ÃË-½Lð`.€T-$jøEÆ]#Ô{%«Sœ9-lÒ±Óyõ¥«æ˜MóÉ–”¸ltçfdÓ[RO¡ Vè–©u|5§sçU1¡’ôšŒ_åui7üEX*Íù7ÉÞ‚ñ`çŽ*³r!\莡"E.¨Të X­ó_Þàñú;£ ½_ÂåÁ®oWRʼn°$ðÌ 6šÐ»‡:˜Ey“RJh=#J·3í1°Epº¨5#á:Ü>dt€ùÔâLçî—ÌÃtx±Œ· 鮚ÇzÀKЕýº,¦{)º(Á¹²D6³àF&ÄDÆb¾ÍmY¬ÄžJЏú™˜ÕúŽˆúU&Ðio®/¦Ô¡ãÙÕ²Ī-ÑyHDƒ˜¯·\þ0qM6_¸Cë"WBî,T̬•CúÕæ¿Þn3>¬+ÅH,ùŒ¾b&.ÈfQzt–Ë`.P‚ûlÜ1•AfÛšaŒÔ’:ë"eFŒ¦—sÜ ú¨|¢@þòÕ¡ ÌRHç¶6ÈìÉb­÷Ý"0¾¦WS3‘U2¦ùdºÅƒŸS^÷ ..€Û­íA¾²šEÁSÌÌâùãBd·P¡[Âõ_¶`Û‚Gcšß£›Ñ(¹¼ˆý4,Á@ Ó0Ò™3Ž>°ý.ÖŒáQ°²wí·øÆ¨ðs)©*™8UIðêÓo7¼×­)G?­(f­Ý¤ÞñØyÁ|ûÍôÝŽì±kÁL²’hùn}½ˆ¼\R´ûÜ$Æô*O Dè²/8ê\XK´øm®WùÏÕ£hîe|¿š‡ýo¤FœªxÈFûÞ¡(¢–ibC!»ÄAÆaUã6Ò,aŸ1¼(+å~ÑÉm}%ä/aSª?aÚ ùÍúíÒ–;äúîÔ¹§ptikŽ4‹ßjàÝËJÅiY.µr¤G@Ö<Å}L“*?ˆ«U¸E£ÏúŽiF\ijèû®…VÛã›öH:“_¶Ç·-bnqÚá"Ø6²ÍÖl(lp§dûOZ›ÁtkÊë˜PÖ;#âò[·þ›6JZ_¶Ñ·³"ÀVÒYZ]W÷¯Ãê4ÏØÔÚÏå3g¢W2}''c0ÑA˜‰@ü‡¸®áüóüQIßΚL¶èB}–¾Œ sºë]èåK¸ZNP°Žéã#LS×xCÜptm@ sî ¹e?ÖRø5»:Á¤_Ú[˜5£fІð ë,0›l›õXß©º4Ä›¤~@~öaIño[!nì32†€ò° 9Ù ä0 ŠÂ¦êÁ'¢ÎÔ€Š08ÈT5Ó)²aW¦šþjsÊ Žë—àÛÕ° ;îÞ·¢Œ½Ýw¡5 V­!¨àA\¶ ÝOi©ž9ù”7›òHå¦6p:û¾ˆôjSl V¬•Ùjš¡ô£9€IƼ8Gi Áž’1Ïë’;9]œÜо—K§5³ìøï6›ü.-YvŸlT…>šçh(#ÓÔSF> Q(¦UŒvCPhÁw¾¸–‹Rº¶þ a˺ß¶X_¿ƒœ» Áoæ¬ÃCsx—ˆUfY‰µDk!U),t¶X^¬;[·S`uä[ ®L•÷)‰:$¦û‚:4^“j™+q·_ÒçÙJ@”t¡•`/”’‹1ûàÀë¥gÖ½ÇO_¶´\±-*…]ç¯ÄÆ4E jö4Š0“•ŠúXµ9…"&õÿœNÛUЇ]V×t(êËÝ-î #|+®ûâË8+‰]i¦³rŸ6¿ ôÅ&yÖFQ×{j!’ÁŸö÷pãyþaªžSSùßî@3˜ÞuH‹²q³5€ªOšÝ™'³ 4_2µ„nØ¥.XÃU¡Þ{€ØZeŽêxÂU[»mºwrR?óF%ðŒÍIŸ‹º8ü’{ës±B™½ÞæDêS²d¦òW`VëI¦RÓ¼ãôDå,¸—å“ôïR¯Àc/©}6~Nñ‡6½8=ˤDu´`ÚÛÈÁÝÆI¢’[ÑÎî'ƒVÞM…Ì©Úrti(…G>Ðwr·$ˆ›°2nJ2m¿^÷·ûŽwD êÔfy¥Gn)ÇÂã¯D áãœfØGÏéØéí?Äÿi­Fò,qÔÛº¨±Ç6y«¯­…kÊ-¯š ÅV“ÌZªµv3 ™¢3Sf&}1{LgãPµï•Y_ËßPfNûxؽ1^%mÁÚH®í7Ù®T°#õóéPŒô(L肳‹ÒFE¹{«Ó®û¨Ã½È î [h;‚Áw„¸YNÝ)[å­ïˆó{Uw¤YÛ<~ñ–"º–çäýh[”Xœ—ÐIDBúÔ=t¥ËCÝ£Ø6ú´ûnØÛ ‰ª¡Ð$èE(G#æ"þ¨ájêkxìå8æœ ºþ”s<ñË[§ä{mÓ½«tî ñüã!–ð],aÒ‚wö¹H·H¨mÄþ`bººc÷Ie´ ÷¿P¾î±Ñ}R ]ß@‰£ÞZš nØFÓ(~‘Ág nË«£‚µßqÚ§BUÕVÌñ߉Jm~ÿ<ÙL‘nî´V×ãG1¥Ç TB{p} §:Fi=êxŒ' ÔïV5yävK™¨³–¢1úÉ‹55 ¦—(íÄðî|u‚X€ùvZ’ÓK\äB¢…7“ï}¦=]õ1€pôÕ¾ŸBÃnôîg‘¹Çmæ€ßjgÞ2mW“jâŸÎs¿ 9ôF[@jÏpºqvŒP=kuIF08öí'ép̯Gäá1N"Ö‘zŒSI§6Ñ¿³vŒɇ6µå´¶œ´D {wˆWù«Aõ³ßâÌ>Ö®çËî̾îо|n\:¥k8å¹ÁÕŸ''Ógùä8¹‹zhßÃétÑŠéñ]x< ‡§½l£ä\±K<ŽL/ÞX4Ëålã%¤‚zÿSéèë¿®ƒÓ“éð˜.u‹óÅ!n™ŸKWì{SO¬Çêgp“Ó,3ÌN¯§>.'ÓéÏôü¾z˜åuO•ŽÊYÏ¿n¯¬§$˨G-çO§£Æñg1¬eâ|Îhw†¸ó2?9óÔ3ÄUÀ3µ4‘Å$wžÏÖ ˜t8ží,‚®ÆÓt’,ª²èß>·»cQ$Ó‘ ‰ ¡ûGÅÏÆ­gó_öh¯àgógI1ª£ÿl˜ýqfâ!I¬S<À¯Ú Î3áOˆ®óOÎA‘3ƪØh[VÕ€' Îït8YT=a¤GŒ'±4üˆñÅ„×ÜêˆqŒãœwóK8:QÅ/ÚiOGQ%gi>j£O§ƒ¨®'ò®¢¨¨îrpýíA¦ä\Pìꯕ=ÿCÞ¸¹¾Ã—vÂ\6Z^ú§òçýûÀ·ÎnêšrƹÕrÿ<Ú °a÷óU£Ð3jW§ Ã !'•aã' ‘™¼÷ Š>áÛ';Òé¬_=÷$d~îwƒ"òZ¡nz2­¢ “àÑ,œÄ­$ô%ö‰<Îùÿºé¿'mE_g»tcωpxùFï° 9×¶þ}ó\[ˆ†¶·]rÂð›"£Ë­.ŠÀ3[‚0Ç܈b~X*'*òýê´Þýø¸ÜØNV/êÑfV‚N[ÿ¼õFÎ(Ç+´ô;âŸàµRŽ*´jþÛîãasO·07”?×ðæò‡Àoí›ü¿î(ƒœE£åľº‹–+cr}»h95Q‡Ùå'=O…%²÷ÜÂÝ&µ>’ƃÅ;géc¸j8¥?G›…¥ßâãÜ–ɘíãêw¯@™Wÿ«©•¾..Bɧôy̨¿šM6 žÆóqhn­¼ Õ‹â)ÃI¯KD™¼L µ3“Nn‹ u<¦û­·E¼jõ'9UâÕã:¦ÝÚìKe0©yg×€—bΜR )cùeh ŠÑÏÞê2´t´cð³ ˜ø‘¼ž^c•–#;ç¤B±EËÛy'S +çw•tWåÏ(ïPY¢6~ÓàzwFúá ›ä2„þú˜w=3÷×S¢¿C ÿ^8¼Ü,=x‘TÍÛ@̸Ÿ·Á/Æm)÷¼ãi0õ›f ê¾_ûnÊm¨‚ô·Ù p#»Ë´¸éz9·™Tow‡R5à.ŽîvŒ–´½C¦ÃͳÌㇹÚx$›£RŠ /aRZ¡˜Ü®P§J©ˆ‹”ëMnန‚ã®ä,ˆ¸‹<ËM®\‡gà§é4uRÞ‘Rw'ˆ3/¦ø:‰K$ò€ß—"‹‡†3€zéϧåá‹òðëö¢ß•±ÏËC•¾ß–‡ÏØí??nÇ]¨t9üñy¾¹ÉE]ã˜:gŒ¹ñ`ÊÙÈņ×ðVÆèæVeI2¥_ï%‹»a„óéS1ÚJq7lz>dÈñÎ/vš%Àk~ùƒÉe¡•Ê ,ÜÂìãXþ /¨ØsBúÝó“o{R"ÏmÚžƒžúMêw{i¼×½Ð{êCÑŒ\R×nT:t=Ÿ ;ˆ $~gPA˜HœâΧo»Á6 ¿Ñ7¿˜ïj@1ÞÝo3IðcdqðêÕ£¯‰’ÞéEÒäCÂŽãɇÅpèNK> ë&L H‹¡/ÕŸ‹}»Þ¼g×?T¼þ îë@]rá0•ßY„ÿð›<Î4LUT1 5jO½$ë…sÇoª/Yö¿‹{}c‡u[½­âäÞ]”ÓdÄoÚ‚žd8ª æ·ŠÛXªÁÚÏFéÃk¶-Î'IS¼8ß ˜<ªýâü–ÊJGH˜ω]3$Î"…ß×m”Ädß±í¤OLåÞÝö7SGx ¹¡%дùØ)ð ÅPO+u„iåuÔ7uþŒ[¢•êæÐMÜõÿc*kH¡] }¬÷sªá@éRâ7!§—.W§þýÃ:»>%’¶(é³Üoôõ޹ŸµtyœnɰÓ:è(J¯¢õÊ$6–×+.{Z½2H`X“âç?Y’nvõð¦j¹}áPj‡ ´ëÞ>*T¡Û¨á§TKßõ¨Z6SïQµÌs SÕÂù/Ýb¦YÅw±ubüäO‹® ÷àÍN"ÜÓ·éü¿âžƒ%­¦æ»Ÿ23ª6lÁP~Әܸçî‹'YÚÙ¦k̸լ—ŒQ°Þ4s4ïq»ûš”È}´°–å‚Ö—žÓ kÅôȈ‡uea!mÃ¥Õi”x¸üNê»vk…Ãïì)B°×WðÚUƒ"(ªP§jbzíÑw°tQv§>¾šb’„ ©Ï;‰âzIá‡&í\æŸÖßMů¤m™øÑû°O¸ýWE2jåóÝDʪp½n¡ïqÊn,¨>mJ‰ü²N[pÝÆêÄuùá€a$åÉWmvW5Ùèðf!–=Bv¼àÙ §»Ó ž+_ÇtŸøz¿‹¥KýñÛZÀž;ˆ–]ÐU ~«·Ø^Rëì¸1÷ƒ§ÅO©®`pó‹Ï€WeÈhZKË-òe.â1ŒÜ™­×8›F¥+VÞ_®ë€×‰¹®â¬ì纤ÀSÃßs)ùd— cS™ó–y™èy‡'fÑC1P&zˆÊb:1'†‡þʸzÚ„_ôï›ô»]3eUí2Méü]ó±L4ŽØ³r7ÓÙ΋Ô)rÉðÍØCÑ}«(ÆáÊcÜ·ªì1KÃíÒ°ÖF7ÒA´>ñ 6*`fêCü¶§=U*z†/žEú”ì¸/SvˆYÇÆqý\ÇEdŠªÂÙGwãçq o*˜?ؽ ýÍØÛëâ]7—Œá¥áižEY¾@Êâ"õUõ,~ Ï㟞ö?=íÃlmÀ hM[;…}×´Ô (£û›–V¶¶·“_ï7zïikXtð4ˆ(Û`_žW¨~³·ØšÁ¶ËRSÛ%èáó> stream xœÅ=É’¹qwZÑ>8¢)±k°/ÏÁvX‹ÃფÉæfu³)6GŽÃÿáÏuf¢$P@½êGÊŽ9Ì#: H$rGøË…Xä…ÀÿÖÿ¿¸}ôÍ÷2Ê‹×÷Ì"ìŧGââפf‘áÂy!—h.nkK€/nýþ‘ñÆ/ðm…*- J\¼~ôøžÆ[ÿ÷âö⟟ÒÈúÂ,1H­.ž¾z”p’Ñ,Á ëEz}ñôöÑ.Õã+¹HcŒ¼”å矞þtü XHìÅØÅ@ââé5|ößÅ¢ƒ„ý×§~Wçc,6ðÙyhº]bó-PçÎÌéEi¿™™Ú™‹²q<³o¾7Rsà¸Xçeþ¦6‹÷Áª‹+\&U‚ùy“;h@~]@.ï_9ÿò~–Öwµõ¾¶¾¤Ÿ6:}ù¬¶~¨­/è§Š—oò·ùÇ»üã5v­gÔå«Üv—|À?ÊÅ¿Ž@_®¸d í6ÿxŸ|¬X|NXi+BåË›ö~€d’ÙÃI©b!6ðMð h¹Ò à Ź’fí[®,P Ÿ®Pçr¥Õ‹rÕzŸ+å"ÂŒ-Û©@Ú{>µuÍÔ T?Ù/™š©9»™šÙšÒ0¼:45íâ(ܶ“ ކ6¢ P4¥C()]ú.µ´1ãÙ?º¿²Y)VÐi¨º¢3¥!(5øÌ)g8 ¯ØIt@ cµ¶æry|%­þ2Œ›‘¤…?¹Ëï©Y©(]’,­„EUÍ&Z!5~ýò'ü­¥TJ6íïð· &‚y]]—°D¦ˆáâé¿?zúó?\þ®·0Ò ¦>¬·! zÀñm4»MŠ&4µŠ(tm¤]¤DD”_ŒQîòpûX…E .Ÿ?¾‚Ÿ´R¨(*+@&ãI­a-A©Q«`š+LÉ+Ÿ± ª®xe-i2<ï —û„‘!½Y?}Çp"{ï‚ =.@‡½óùr넘–¦ï=7ïRÊ,ªyV'ýœAß°ÎéK·¡ m‹ø ö›Q1‘%(%TC®û„ŠÕ‰að:ycËðk©¦ L¶*…u-ƒŒ#*h£åÚ(’˜W$h­‹ÂaܪÁ±ðNæ¾ÑJ.P2jÒº ÙÕµõMm½ÂþXZGÂq¥A<$èî+ FÌZ™†ýãeHúLiÛ  š$ÆâcS(£Ìua¿QÀ%ÔyÞ<”RÐøÚäþžI£[”§(ô7à4ÇË¿’üiŸLq ûr "D0¥_[þC0Àœw1|P*À“’$€p [ ‚s(ÇénÈ€|Ì@ˆ–ܨ ¦Wy†¹‡,•AÂïŸÌL¼FÔÁîE=Ë?]­Tý˜8eàpŸÆr;™>ïxŸÅÁB>h%`!}³PïûuM¤lDû±è»Ïë2 ’ä3,"£ýrk@9¤Ÿ0îVwtòÞWIÍÔÊ—™Xø¤«9Ž|¥…]<ÑVœ8©Øb‚ÿ 4¶0Ä€RdЮӇ^ÂP?l;1¾µ*À3è ÎKþ’Ù¶ò>Éo„³Æõdzö‰ Úà&3VFsÁ‰ûÆ`§æ¨]cìÜ©ÕÊŠh›ž9׿è4}TÀÝ¡·®€žw‡Ðãd(hp[ð,u'ª}ZGð>§¯¸¡…ÔRnD¾Óàèp5Û H¡ûë•§ƒÁ'^yza3ÇU³Ô¹üDÒ$"øYÜüpŽ]Iª"pÄàÌBq½ò¦Bóf.LzYI2Ò$ xÌX ˜jÆx3-A`bÀUN+è{gfòµ6“º‰¾å¸¾¨ÐŸ¤=ð•ý,“`%çÇ&ä¾ÎQkwˆ!i¾¾•-> ›ÙŒ?ffj rªÊVÙ­¼·«É_$9¨ëMšÊ"¹ÊƒÈñá8·}\'†ÂO²à ¾r¡úHcÚeª7™[*N¥»u S¼Œ ‰¾ŒÉÊ*ØvåEéE(ð(.h>¾Zû´TJ’³N±µ#¿Aw*F_ æù…Ñ·ë’Ü"T†Wå´a1ûÞ’ÖfGï| ¶Òf¯‰W4Äñ`5:ûŽÃH`‹¿0õÉ”+ú.FÁO½TGX¾H ïŽÅoÍœo:àJbì·Ñ ëÛ"¿_³™0ÅM¹#AzÌël|Zç_QNB÷j„uÙ‰Gã5‚vpׯ t†$ ôS»–î6¦T¿öG7ÔÎ8¦OVOÎYrå·°q¡/![·æ./'×;Ñ$×Ò ¦ Hý©­I.§o*!œ)—½¡Z îdjt·9Ðx¢§`ÌbÅÈ'hÎÞ7iP4Ém…<…`ü`JwømóåP¸ïVÂt ÄL~—J¤ÖêÝчٻ“ú´Ë½ÃÞD2mfé‰úb}0§)Ø>½”šÕ®Ò&‰>¤å³i#¯g Š®?%'ckF>x¡wÉÞ¤~…Ýd¹Å(¿ß2žÄäLß§.•Û1Aõ C´Îª X9ÏV‚Ó³ÕÕèekgÒÀÿÏ[ï7s$z¹æü¾ì&Ü­Ø6p& ýü8à¢ÆÀS [ô„‚è͉u”kújÁÕKŒn;ŒWL±¹Bð´§>Û¸N£¸mÆ”še`)žjšî LÍ ¶‰Bc–ï⊠Ç 0ÝÀs(ˆj¶%;ê.‚&Pfç`Hãt‹·UÆ›ºGâÝ”e{$y ¸„Þ'üv}Ä4]=ûM:ve3§cÎ/$ÑÊ” é†WÕh&aÇÌV´]ð5qÑ®Aï(ì9‚ ½ ݨ†‰»JÜj­jÓLƒ4Á'tÐú9¡2ÒŒ#s\…û„_œ¯(m¥¸y’•Ë<<¿Û4 =¡6Ö ÉÝiJÊ‘KMc¢È*T ½3ß{¨ë‰ ½NÎûcf aƒÉ¹)/Ár÷íØ>'!äüém7V@ÉÐm» *lÝ_³A­ÛnŒ_nFCÛn¢:á‡<^’È7Ü@(f—VFï Ÿ†àP ӞݤD“f¨ö‚Öú`àg°pHmRÔª µM0kðümÑõvC+±Ž1ü;ëeôfϘ¦1‹¹ü-Á[at¢t´ïM"±lGÙ‰mù¸BÛ¡oG¿;Fã›M­­O_{2ÄÍî-ÒÔeºN=%î I¼ûœ W¨yÚÞ4ë}Ów';ÉËÇlµ’“¦,Å]:8v>él%zßI`yƉE)1Gá¦|“--Çå_hj…]@ÁtÉ9‚õÊöΡ«61‘+¡ËgÿÈ|ãnŽÃ´ï‚ *TB²ceUP~S`ƒÍ5UÛLAê‘¿F#¢ÂD=ŽZïÒÜä0R¼ €ð.ö–˜ó>—£ÒÓ8Ä£œXæY¼´— w7î=â‘Ýûù6?g¯™÷{H¯DhD(Sj¶/9‹ ;aOr[õºtŸäl¥Gk”¶±êùÙ;#â/‘ #Vyž‡ƒµ7vf~B²43rÝF®VLû<„ÝN(¥Ó§1l#3……ŽêH!Ö{¶0ÜGÜ©8£AcN–7gñÑå_ºAñUêÄ·wELÓ$Ëß1™,î}ê¥Ý jÂ_FˆäêÅ©²…¿ë ª7ô8]¹¿Í¤p²-ûŽoeQwÚroìÝd~OVz¼==I™¤iµ2s,41h9ìf;›M®ßårŸ¦à‹ó ¬qckÐ#j¬O ¤Œ·—ñºÂâÙ5MQôؤBl³jT–ÊÌ<Þý¢™·8s?>'̵ØT`³Ú¯ˆ,Öìϳ¾fìŠrD^¥£ÞzÐvMôx4I³\ñ”ëlS¿ÕASJ|;‹…ÛaÍœœ*‚)ìOK”ªø:+‘¨8ÜãKŠq›Oø² ,ƒE×q”½ÙÓöH­@ ê§Ãˆ°¸þ}ÓhÎñ9ðSéI‚Uz·8&a¢gUÁ,G1³tÜŒpAãí¯íƒžFRØ_‡Eòòa›v4/;ý•,–bª–#ÌdêcTÏÔ›â½d&q²«)_®ë«E!™¦kƒ3Ó‘æu,°Õš”8&OU‚ŠãìøÀ Ý<¬–¶»ÖI)Ó†AæWKq%ĵØ6Ùg:E·_¡ƒsƒÙ`: eÏɯãŒyúåÚµÓóp!“Šƒp²­Î–˜$o2eí~éÎf<‡h‚r ö¢)R>ƒ»•"ƒ¸×ÔþŸG6‰máìÈÃkƒçW4˜Û^°²€2%Ì„aec%ÕèðÍ´D-î¦àzþ)JAƒçåtçëÆæ‡bJ=Ævˈ{Ø}²ü>¡,º½òÕy•¹.O‡ØOñ1rZ«x“:¶b×4¦9N«5‰D[ºÎØa‡nãÀ¥öʲl©T0ìdÙhs˜“­©Íˆg>ޤџ|xF®LvSSi€~½±9¶Ó‰“vÀK¾)â[:Ç=¶Ì°8ˆÓNâQóÔè¦Ô`U¶04Š~0›)A«„ pæÿŸÐÒ›€e¬I?ã@aºwk¨9ìú¤eQ«ô|JT Qílö’ª“f=^ óˆ]UöáÍtËঈ€wî€[FÝéSb™ý,žH¦e*¹ë¼“‚­È5;‘ Ñ· Û‰"ÿüåê–á!–¾o\dß”×=‚Ð.mñªðY>ññº,‘vžNNª‡f¥?{•3ï h²Ý<Éòz#¨Äó¸EoÒåòŸp›-çRÑž m, /ö7*ˆXù¶£R‘Ì Å‡6*a@{Î1LBCÙ‡m³®ß®AŒÁ´M–îÏܧåµýi¢á~a.ŸÕ±‘ià»Öpq+ ÷K¬Ä½É…fŽ46È?¶)™k1–ÑY<þרƒ©®¡¯úˆLeLv?'Œ\ÜìR4»ì ì7Ž¥úŽ}4 ÆT‹‚s>}?G´û’ƒ†× Q¼ÎaPèHv® bç`Žœ8Þ*ŸÌËm¡ÍòùnN.¦‹ô j:\¹¡~ÛÓuûhÈ6Ê&r`eV³€bÖ#—,VYÊép^Çö._æ³âv¶Î}þB‚φ…“BüT©ž«óéûçþÏåj³:¶ó] B èçg%ù¡Ç"žÑ#µ3ÞlÇš@ß׿¦yïC¬ý§1ó 'åœÄK™a¬úZ’½lb§ûššlØÍñ¦iî=7`6+>ÚÉ_qo}«ãgç,¡§…'\£VHtºªã<Õ™OÓ F‰Ô_¦=é ÂWÔœÂQùî>¸‡Ð"Ó—Ð]óÃ{»ŸDmÛJØRÛÍ‚…þ˜!ÎKí‡ñÒ•ÁÏqMDA€QB†tg¶¡g;öJy|èj½ò‰r†>èk!¸²)æäG+ÙÁÉÕ€¤yµâ2§Uï̘ɭ+Œ¿ß!€¦«Kfþ:O ÏR·ƒ‹ƒªÚ‹•-ÕÛ# ƒêužøü˜æÖkà»4 K7;vÓå`Znb_ì[/0)1,`(Ƈ:3:¨bÏù š¤ gdŸÓÜçIßíÙìBš±èmzŠßÝâŒf9¬Áç5l x~>½c}ÄÍj¯E²TawZEÞÊ{˜lô3hî }î±uªmÔÂs(œ{‰ú ±/häE:]} «&âÌéx·[õ‰³£XØRm¹›§JQœøp~Kã7aåÐfñ4ÕuÚëWfc7wª ”ú¢ðÝIc! ØßéOs9¶ADÀòhiYÞœ5Ü9ÔÄÃ0±¸WŠnB|˜{•–ÖøÍ Ñ÷Ü¢pbRöõ6Ý:Ù¯d±¬ZœõOÐY1 ƒF¾Áÿ¸§õ¡-r5Oï…ý+¶ MEÓ!Ã=vô¤sã_‚>½«]o…ÌUx¸e!RöI>Ò…¡Ë5Fvÿè ®€›ß¨0H­9¼þEóÔÚŠÑDµM’ò'NC°ôרCÄUh²Ð³Ý™Ì·¦ÝãÙ^'ÖæöBº³³=ÜÜúŽèØå9QôŽì<¬¬™e'¨ªþuÎAÄ“T‡ê’ÓÜí.k­ä9ç‚)¯Jš—œ—³0÷È*r¿<éÝ`qb¦õÂ~ªBöÄɧÿ½°]õåÑ“5Ûä©Lf0Òº“åø?—Y €·§¹»h|%æÜ\ã¡4±6cðp–µ ^ Úd©aÀ%l&wêÐ u¥ôTñÎhƒ6Iweu9éô›Z30<,0KÊpüzÙ¯dXk 7#ý<]¶©§4‹g„:´zož}~|èi5ű9a`…gG]èÒiûp Ë;C“"Ü)´q‘NTÀ£Ïn×à{9ÛK*á“Í%•§/—ê um¤¹ÇÅ•TÒ]2óÀ0÷i Ó]ûÜf¬BmN•`+î;L³nˆ¨mè¾GP=éï€u_½@ê®K!ß­ˆìWÛDÚÈæ2ñlì}dšÇöLÎÙ÷–÷*ÉáÍÐÉ’’aºÏúdÝÚ§ŠŽ, ëÝpÒ¤Z¥´B›»áÖ?#9E_)‰…øKNªOxÍ˧ù,çVÓ;ÐX‡ïWbZɼ‰ø@œ£~¶¡7³fo˾E=SšŽî.Óæ9 Ú=‡">O#ës(Òa ós("––òJ¡×Oøß›†úJ ’?©è”–„¢sàƒò—wè;ß¾¼S¡šÞýy/ïÜ0ÂNw¹¾¼³ÿ¼•‚Ù©z“az/‰žSJïÑCFìé%À^:b¯0=_ŸU’îò»ÇW Ñ´_z[ØãM¬õû!ë÷¦ÿÉŸkzƒ‚9³ùÚ¯^á_ž*8Ýçoê(7PÏ‘f!¸Hñ½ú,½òY’xå)•5ÏÞi>xu ¡2¯2ÓkÖñún×|däß=ÞÖ¸{2ª \žÆú)ÿx9@åU3@÷f“^L¥â.³¤~3™.u]hñ/í¸íãXWøGt1]u¹~š.šñΨ—ß–öáËe•ƒê^.ËÐø˜VÔCZfVY­ÀßœÊÜuêÅ|O¨;¼Ë{I°Þ.¡Möë›Scqarú¶þü©¼\_$òˆ¤§'Ðè¦ô–D¤Y«µûÊ#ø¬wã7áÎyÈL¼MQrÊ#•»—ª*T³ñÄKU'Ô©xè¤íë€:=©ö~?øX—)«3÷}%íŒïÚÅË_dŦ¿@+]ip§¤¶¤ë]ZKùÇ“úšÞ×P€2Ðm|Ô€,ößRB Î`µA3ØÎx_J¼ÂÈ…¬÷RÇ«BˆoÔúoórãÙúÞg°\ Qâ:!,@XîËà)íg@ãú^Üo+C¿«$d*)¬·§¼ ð—ÆâQŒž,/:ÞÕ¶ò¶äuà‘lÝ´U^~síÙõu±êK¼<ÐG¾R¸,4KU šÅ[¡ÎÕ—¯ªi­t£/[¥W¸MyÛ"B‹bj^¡ÎEµR*¡h:•ÞéŽN§¿ªìÀ–þCié ñ¶²½zx°N>äåûªÓ¿ëuú¸ßz=ùðO¡f÷WVuSBý öÚN9‹ÏPh…„ŒæòO¹mÉ?þ:Pér[Á«îùÇm}ö»Üö]w×-½ÛtZõ¸ÏÿC)oÓÆV÷€0‡8išì§å„Û¬£ýÜpD…J ´‚ðèOs‘[Å«¹Õ ážÈu,ß+p \’¸«ÊœWm´nD`·Z´ékĸ1•jmZóq”øWC£ð®¶^W—ø~ÃCÏZNh9z'¡çµë–‡èƒëÌñ(lw³ŒáQpë\ó6P.Cý™{TõâžGõ0g=Ò5^³.<^×°Y…bŒW ÎÕìHª5J²«ÔÇ»9{lRé—”›¦_t³•sûž^KpF¶RÑ.ßÓ¿Ê|S¸÷CËx=—ß·<­Òåì©ì&N¬²¹—ÉÓ]eû›^w½¯­c½éàCõï¶Ø\מŠP=kPMx\ßÔþÓK· 3ú™UH0õ,â®1ozŠ ]rˆ °N“ÉÊF#\Ö*—¾ u¦S g„]óŒìÕö›n¾¤Ò™ÇÂ4dõ›8Àçfº€oû³«ÐwôÓð…mïñzZN5¤¶m"§Bq:f¨35TÀ¤x”ùéë©{ìp#OsžÐéÜã Õ ýeî1&Q´^Ýcÿ ÷øS¯ØúØŒ)¶–«7ú¹5òkV±ï¹q„GLAtµ0—_[‹‡'z¶3o”r"èÏä¤Èí)îúRÜV˱â^SåïEoÃÿ¡ÈáË Ê/êÄŠºysuçêß>5ú;%}η \ãjY®ïªÖ|Á[Gz—™+æÛ]w££ÏÌ´ÓF$­Ç[A™D¢ôar™Kdâ"šÎÔ´´[¹ÊãVñ“C½g°æ„‡Ü+¶|¦›Ñ(+çÄšB 'Š_¼(bÿÿn3öù¡¶Þ ·ÏQßV}qLýÌãVÝÿ±†îìç±r˜þíÙ½µ¸‘“÷‹ÜT~¤Ø/©‹]]©¬Æ…§ºÒîm9€®ôNúVZ¾¹Yéú-oµ5a¢]˜êzßs K{´Úe#Sž‡J(~¡õC*—ÑpÞ~’±KoÊ<õŸ$òýPÈÆÛIlVoûÏV±)¦õmךLkጢñ?míÈá&‰ëŠ½ÐædìÚ?d¢±è¨v¥ñ²Ñ›¿k‘E,?ËjþîÑÿSMíendstream endobj 478 0 obj <> stream xœí\Ùr^Çq¾‡óH.Ð!f_¬Ò…¥(²Rv•mñNTUH‚[H4Š¡]y¹÷@ž|ØŒa4ržÞç‡3˜kcŒ{uòCÛòÃùáYë]»ÚÔ0±%N¾Èc_à<[ÑO ݤa¡é´|sÎxyòè^šÎé“¿¤¿G9(.Ax¾ MÄg„VmÖ‚Š?@R^DŠ_ ¿icÜqó÷oónž×þ>Ηùáe¢R®Ž½ÉõØ@Å7s½¯ $8­´¯zneuüúáѪm¡,´£Öfa„ÉÖÚ ±¿Bµ²´žÛÉÒ¸¥R&•›6ZQf¢±Ä¤.óÉôÉÛ^ñ C:{ ¢´›ãVìˆ2ÕPmhY¦l\P–…¶-Ë UÃÄDuSçŽÞ†Iå&,ãÅ9°ÎOµþFé X‘µüÇʧÁrÃèՔ༎ž& æ W{¿ f“Øv¤2¸.jO‚«áŠû伂yÌ-ç¯à¶ž ³Ã¡Æòù®O±bãZ¬|ŠO.EK¾ëRÊß¿¶”ý³ú–×Ãë?S¼iZ]ŒõNÚ°Oê±rv’ìeÒaŠÏvüs±–U2 Æ¨ Uofw1*Feô`T|?ø·Võ¼êùÅ̪¦y€ß¸Ð$ xÀ6+™¶êPc ç˜âè‡,â]!æEgúÀP;3¢²"ùMÃäoòL¿Îßå‡ßÔ…ŸÇþ˜Jxý]~øºZ%úÿ˜Ý’Û7‘²ÖÙðÇ×Õ!}^gû¼®qØÄç?dïéª`xN‰k#)[ð‡ù« ¼`¸ÄÚÎ$S˜îYkyδvV¨ËKT+;ë´;‡{Ã6V–›>šÙ?ç“K0³¢³E„–WîG–ˆgÏr¤iaËÁ4Ö$g-ÇtËžBÔ0LßÉ `Sƒû^Hƒ&1]j‰¿v B²‚Þ÷àÆÔ4Å¿¡åtq=Ër/ÃBJ,c0¦z?}^sÕCòzĦ(ó_µ< .$þÑÔYWÞ i †CŒÑÚ|ºÜâÆf<5´®Zû(TÅ$ªÛ—›Vn0yøPÉe]xRµôÝ4n•½kA`¯žƒ?KÞ…úN%Q dŸ5Ô{J™iP--÷­œNt¤ åét¥âž)ÚùD3Gs,oòI ýEõ´Ÿ5¨#ó­?:2f6)©:¢êYתc¡j4QÝV!.uT?k}-ftó²‹&6?)Zô÷“Pò-Zä‹­×SFŠ«)ö“ Ý4¬?«o{í×)¤ö`N®Œ’Q£«T½Þ22‡“ AÂ?ZÿHGWpf’öŽÙMS'ìØ·(N¥jÎåï„âhEì˜éé]§‹c7)‰X[£GÐ ,ÿ°Âó€Ê&ÕÕ¦¾¸iÉ4‡òÄ? 8t  òVüÓ™ýWC¼}›>VÐæt8áKIg‘wÀÂcÁeÔÊ“49$ÄJÁæÙ E{a{îC,s7ÔúÐÒ À5ÖW¨{LT·µ> ÖçG¸Çüšß,¦‘ø‹sUw‰•°Èôç?³Ã¬HaÍ-­HïáóÓÜ·`@‡ã¼®fTl¬Ô_¹EâìµÅYœ‚8˜bcÏ*sÞ£{éï­-É€Ð`ŒF´€E!j,KÜ °ÐFn°¥ÁŽìϱkY¦AŠv˜#Ús¥j¹èïÄ4 »r`šÛw>mÑð_;GSœm¬Q<†îr³BÕVïçf×MÁÑœŽÖ÷Ð÷zSíÉfEtðë"záFv‹èoª†]Tüñ¢Žž×QâáIlí$m¨œäp×]™A8]„›ºK^”³‘ Û UÏÈ;ø!(£Á4Äà‡zô÷“ù¡¥¿˜ø!V >ïRæNŒ€òZì%T·éJ”fþˆäôV‘ÝŸ‡™y€'ëi‡«vtÚEãd}ò±ž}×òqRY •¥uŸ´²T›´–¦äÚZ¢R5çîTKÀT›š¤#ûiWÞ¹˜ðóNT÷ûÛZ¿®¦Wýýx£.ջŃÎËŠ§´0™¹Ø¢ôü.JŸ3Žû7½4ódB5Þm¹ñM™Þ¦Usƒ‰ÕÇÇó7BÒ2":m»óW-Uß©Ñ?›·yÀõ·E;bnlƱM7± KÅFŒ „k€ êPûpnÒ{a$PÁ! Ló÷f Ø+8 Ù‘$.Ûiì\í÷=ÀèaF# %¡©†08•Òbó,Ùô·ˆKJÈæQî¤Á»ü!§`›‚¼‰!„ÏÚjçÐ&‰õÑ9*)a눠 ·i'°X‡'Æ>£°ðd-¾¤†YfPµa9©­°Åq´¡6.sí…³a¹ôxY ÁE}D•ã†[iCzGÓr cZÌãUÝ[Èÿ1&Ã×òmÁ] âsÍ,&'ä ¯ÂVëž§I˜>dòâ²ÌiÜ,®N_Œ2¢ÙÞË8“¼Y°•f™‚®r1B`k3·㓞ָÔp]‰QñNŒRXÅÈ¡Pª´TÀ…Â^“ùJë9—eFB@ Å 0ÏH­è„¸©JË58#,µ5•êœpö´•páì‚- +»NMpTp¾§&H‚¦÷”Ì÷ž¤Í+°Éôa&­®=¬xlVø°Š•RÒ5\I;• –Ö‚zaXc0¿`íQâlÒ´ª ª#¬Ý@¬TéΉDkæÊ…^ÌÞF¹Î»Çƒ|8[È NYn”º^*¶cMs\dµ5?\YÀÙj}²ìúñ(^3S–°-¢éäq”¯0¶j‹™iK ~Qmh¢/ˆú²UsfÆ=8QáEœ –½ç rYï)#`ß`C@Ûõ­^ƒp'7 ZGçp>)®9eXüÆV¡8^©Ø7a¯¦qËhO| =ù[¤5ø52úÚ Ô‚3ÌsÈþWcP Ïéí&UÝ1ct‹Ÿ/ã–µlôó<ŽJ%:G)»(ßõ¼B6jÈûq×á¬Z6ºL'¡OÏŽ[¼D³HPz£kÅÿ>=ÀƒiÞÀCŸcNÄ ×Ác^™Â_Ó0E2zoy«ÖçWê`yó1ê€[LN±O¨—|Jæ%¤£\óFË©²Ê Iźâe¥ÁÛÚ}5Ç5'9Eg|Zeæ‚Û~>êv‘º7¾yë÷â®Ô 0¬[w}£vë uÉ8ÂAZÛøTÙŽpŠTC=õ«V—é3Rgz£*SG€ou~I8 ݱœÓûuÞ‚/zÞ¤¿ˆ£|WûÂ{BP;¸˜ëû*_ÆI0 ëyµ~7ZæÕoeÅ9„Çšïä·8-‡Àåx#–×E„y1ðÞ “§&u-ü/ŸMc¨; ž rÞI#ù¬*” jVMðÇZÞ=«0»:zUGI)ø¾ŽžíC t³~\L-m’x† xZi"^ øf¥ï ™Nüê8(ÇùÕð—H-Àa6š*^trHmÂð~ šÛëRDö’O"N§¬oãÅ*›Si*èÂg¨ëœÉ•¢6ŠW·0Ï¢À*§z…¥˜î÷i»4iuÈŸä:†®¸*ÊGƤÔ;šø`ßã`}, ‹+°ø“Gïfl&N=pƃr6­Q:îRC¦åµ»Q>«£çuôtß(9hq±ÉûÕö¢½i 9¨ïbÛžr+ؾ‘‡¢LgwÙáÞ‘ŠT_Êûµä|Uš¿ŸlÃ÷¨1Žr¹–`AIùM«âû ?zp°¨a­¥­’ƒÓH.;‚ è°mË;r¸UÅO¥3†“ZÐüÝ¢. SL²‰X}ˆû23_;BèQØè0söÇxQ󑻦zãzC’‡ èrº°ÿN©&œ V9ñW!uèB™‡Š<—„ÏÖâ ÿ§3a‰dÐ1'ñÎÜ„€ÈOÚů*J›šñÚ›ø¡ÝéÌïäŠæ{5ŇŸÔ×¾_Ï{ –ü¬>~¨në‡:ºÕǧ¯½›î—,ñ¾>†¯ð×g|ø/~Q9u—%âÖÏêhø¾{Ž éÁòTÝ?$™»Uñw °å»À ¨ !‚œ.qÜE`ÌTžj$Õ :Oû8+­¥vñ«.j 'Äfi5®Qhµy¨¯ôÿ+ôá ­Bsë‹F¡ñ”©á —4Ê×LæaJ¢™4­‘ÜÌpÕ¸ѲÚÄåX§¸Ý"IB‰r;žÐv{ * Îôû@x“åöÈeœXT0,;uö¦±=(tñC­B˜Ã8+É]T¼ì{@à€T&ÎŒha0­0ʸìĵΥôÀr6ôÎÂê~•oÐ^ÜJzÀ6àT~„Ü ÝíÐføg' ÁI àÖÉ –”R,»=ïÇm¦nÓo,Y Õ*ÊÂq[¦ËUèR©\±øÝ¾«}Ü~ÍR©!&Ø´‹W!/\R/SœÄXß&JËÆ~˜Îh ½=¯çM‰QÜ~[¾ïe ÖlŒ\N5ïjÏ›_Òb&7v‰s£Gy|/€áÌÜ9Ã7­Y÷S›š4P;ã—ªŒGtcQ£w!· .´Ùê>jßca}y‚,nöL]Ë*YHüƒ¸Óõĸ†÷ž™€eÉÀÁáµ8ù6UñàüŒ%ÅDhXðºØI¯V`ª3Æ– Ä;±¥@Â÷ôê§ž¬Ô#A›mr=8÷¢ú~n‘)¹Šgm‹‹ý—*¸Ì=¯*eIèHWÞà„ˆ %àH˜p8ó{À—q5õÐy¹°„X¢¤}K¶ï#WË0õ´´¦u:Õ.*ïÖÕ®…n|߈•&€^]†¢^‘±}ÿ9 ;ÈÖþ½N8-ëðn§,~šÅÍ27ü¨ªB«ÿDv½u>˜{°¹þÆÕ¿ ÁC´òœ¦o£(Œíï°Ì£Þ̧€]N÷˜šÂ/öˆ)Úì'aêe†ÅÑkH•¹í÷kZ¯V¾±É­YÂ24Ư¢ñµ”¼ó»íå.ßʯ€™…>`àæ w°¹—: a0‡·ðŸŠÕEŽœ+Y/7ÒÏ4L:ôßbÒ”Xôm&ˆÊøô1ð±Ä½W‘kêO“«ŠßjD=ÒsÊEL(žLýôƉ~ZáçÖ½¡­/–ÆÛ;U«Ãwm0 q…ÆÖÇ9¶~Œ®ÕqÕ9_ü»¶¼½tŒ¤Æ/Íú‹Tq·Q!x,`êÖ1”¼&n\C0Í‚¹s ŠO—/fÆ­|rË•´bÜY¶U_³2uçOÁLð{4„ìÂÇ èæ%~’öÛ£‡¿ü>üžo»|&äÜI‚€©x‚ç•1,#ĸ±F¤ B¾¿ÓÀf6é!„T#±ìWøs©ç•‚Œ†C íŒM Vz1x+œLŸ0p#ã‡âÈa)ŒvS˜2,pÓ#;\"n}j8Äû>¤yÔ…¹hg…“`È÷‰*­BÖeœ]š6Ô/÷g‘šiÝ7àÌìš>8¾¨d—÷á+ÑZ˜›¶h4\œ&*·*‚IÖ=¿Ë±JœhêK·8kCˆ¾z–òx %déÆí!šæþ% Þ]3î«؉7jøÏ‚­†LW1± ¶!”¦`Ð…l S:Q„Çl½ñžÏ, ¼ø&Žûù(rI)Äà -—å%òA‡,Þ|(!Oá1J°i¡ñJˆ/‹mH„Áb«Ãn,¢3ÖÇj@Å—lxIC±)¯ãõw[Èl("#srúâÝã·/¿ºxüîòÙù—ï_½9}„ÈèÃÿ˜È!½ø€;üñW¹rymSçyjµEõ}02ŠGHš€Ïo§àóWõñbú” |Mg‚-9…™_U$ûM%[§€ü5à22ü×§N %ºÑB•ã§ÁY´PKñU}Êê>%Æ!Vîv~)ª¿Ÿ.ó¬+¥ÕMñ…¥ ÖŠY—ãÇË›ôs‚æ†S¥0ß˸s¨õ)ŠG_$8ßYbš¥yu¬6•‚Ô´¿°CsÜþþ'3õ¾†]Ã5òÎ5ì¢ÍððjÏ.æ6£š›zdr"sš_P7z%ásÁeݺH0b7ø3rlY&Ñ…èh\¿Š³ "×AG0ª‚ÓNôÿ¦æ&QŒ)<½ÂƒwT|‰È±>Þ,“ÑTŠ\ÌQGÿ^œMø¿Æ€®aýP4^U%o¡r<-D¼=1ƒ±ÂLos„%¯ê¤7eQ(0M—‹çÚLÒ¯a¦÷tV÷UƒærÓ¬Š>¶¼ô&a Æü.¤-oBl ¹PŒƒ£ÿ6Nb¬k ¹qpñžÙìRùòÈP~^ÆuŸáÌNZsô4ÁC´Ÿ‘׊ z#˜®ý«!¯ê³Í! KµÛÓ.‡úéï¦aŸ$¤U½Õ×Èm’N¼™¾öæÞ,!;#i ùÔµîlZ£*ÐÙ7a׉[@'˜»;Â=GâçwטeÖÞeûõ°Ä#à- Ýq¾ßovÑ«Z{Gçƒêr»‚¸[?àáîS¥g4D£éŠ  Î çs|øÐøû*‡i|IµÖ¯ÂןvªšÊîè¦Â¯)’M0Dõw’ŒkøêdOûí‰ÍÙU[òú+úÎÞCQš¾ru}CW¹ðÛ²Áü¸¶`ÕžGNñ;™1Љ™rò„ý;Õl˜Úµ×ÄâÇ+çšQ 둼GÇ®xIdèå1JrJ„Ž?Ö ô2|X“öÑúðe¯%ðG·W9Äú¬ w‡ËG6eø›&üÆ·§yBh^kü=±Û +‚òN>°îU$Ü€ü¢ý¬«‘q>1&p8¬ÙìZá¡ß;GÎÉÜ*ìí««A+Çu\Ë6â„æ:¤Ýbö]nù9> stream xœÕ=É’Çuw?bŽ=t©rÏ”O¦BÙáƒ-ã&ú`°@„}½ß{™Uõríêî™*x`£&+——oßêç›y73þ—þÿú§góÍ»g??ôô&ýïõO7ß¾xö‡¿zu¦`¥Õ7/Þ>‹¯ˆ¡ìdfucš„S7/~zö·Ã›ÛãZOL^¸ÃCµ%ã¥1‡wÛè—ÛÏÆ‚0‰O *²cM·G­çIZuølf­oãâ!¨ò,Q€ïS|¬MXAc|6ÖË“°a[5Êf[}ŽËÀs)êM©iž=ÂLL³5!?ãÇ?¥•è á·ÇŸ?D YËüß‹ÿ|&•›‚’€b/î¡>E89B!™PüºîÙþ#œ„„½Š/z¥TºQz|OèBÚŽúð+úÓ-À\À¯ô½ªQPIi¾ØÛ àx²ãr´#l×h+â Gç½xÝ…Ýkö›!Çæ;œÅNN9ÂÔÆk—Íñ2ƒŸ‚“Jçß°éØE/´¡ƒù ø!ùßâvÙq×&ØâÆÇá©Óp!ó4Æä,{”É—¹cG zT“XôsíT¨Ë—,çSí½RÖô¨æ)ø&Qÿ5ˆh¬í¢a¸ð‘aqbÁ Ž¥ ¶ Wb»°ÄMÉ,?d·À_D4Òq"b ErH›&r0f%ÄLLùïDtÁi~X][ T·`—†Ÿ VD÷Q±"´_öaìz0zœ‘QÙÉa0<›Ôx‰¤¡‘†¿Â5Äl}øîÀà¿CiùÜΩæõÆMÒh ,¶¼\@ h]¡ì 82§ù÷ŒÆ:ÊÞçôâªïîÂõ¶ãðâô¸W#Êíéžñƒ¯ñùŒÒå»Ûø¦”¶Kù9!ÐèY÷îá5¬¹¿ŒæDCûF'§«×$ èã³RÁÁ–ˆw8=SXxçs¯£<ÒwOWgD&UKI,´ôHAÞ¸ ¡ÖmêLxVb2í-“çisVsLNæÙ›Ùñ•Ò“X£(Á½¢ø¢-f¤J*ÐÉäUš$Lg=HÓ)×»ÿðWŠ® ò0,Џ»]µ*šÁà¨î zB\þð'|,A4hÚ)¬ gÅCá.$ð=(<ÞÛE  'ŒJÌ#MHð°Þ ƒÌ󨼂¹óáïã F † ~ñ {3ÍâíìÓ©Ž|šÛ‰Ž„0`»H)øs¾át$¸µd‰è UqvBòË­"à+¾&/φ úï5YÁ½ão7ÏÊÀ%ä6ˆ^ë–˜tæ9ܼø¯g/þåo\Íð¨ '«eƒ ¨à|¤´ð‚žæB=üçkn1-éM®—qNË©ö.ΨMŸG"„ ˜•SïeuˆhlԷΑ™$Œ ØÜŒçû@¥{ö°°ž$XWñÙâÆÁÓ ÜÎëö…O‚ æo„ºËV¤: WÕ Ó"%,Âkµˆ¯q£ý ùfI‹ÄCÁv¥i' ¾0pq‘pÇ^,4NmMó¨ËÅ,Âg•&x\š ± ¤¦áÀ)¼Ê 3†ÎzüªÏêjpf’°ÛÄý “Ž‘g­V‘¶…|fVÛóã'0AôÚèÙJ_ðÜåìE±wNÜ8‡’v(ç\êJ— 5Ì—)”!åä`x¦ñrÝ-)ÎÊ‘;ï(£º‡ä{ìõ«Ýu·lÏŸ¯É®›CrýH]cÁFÔæðâv´|F®¯}Š ö®tIl$ô6;úêa$yŒ8 f’«"ž1§švÝ÷mJxXô.ÇuÑž¤¸£ ,ójuŒ'•ÉùвRˆ@>4É·ÒÿX躰þ£ª§v9î[†©ˇ•_ ÒÊœ, R+œª ÒÊÞ<9oiVVèçmµÝ©3@Ï.çÜ!M×Kk@„xÀ%DÍÂÆ?>M Èö—ÍÈm=ÝIÏŽC Ÿ¡’ªGÏ~È=‡È8œ)­(åÄäM{Š‘³ g3ZG^<;oºzÀŸÓfk*1X›3A.Œ¹Ž‹Gq@ßt6™da—Uj‡ÿܼOO›?;Ôô—ssJÝcÎo˜í æRеAç^g" ËÀm¦˜‰q—X¿ˆ{w /ý…'âxç_q°¢D>XÇû«ô˜a.±Ûµ}•azM¬:PaÐ~Ò=­…¼ìRÌañ’©ùrh0Ógü:1`Ñ `‹zö5îâá©þÊð)ex:øgQoãS_¸Ø’§ÇªÉа ï:ƒß#Í£3D†Á “{jÆ»„nËj\G¿Û·õ^<†/Ï÷=mã“ÞO›‹’"ìåg°‡‡’¥‡uâÚ8$,䃻Š8`#.TO…8?H`m+G,½ç˨ÓÈ /´0ÿs³þ]ÊŽ˜Ô¦Ôuna,åœë.]kää”T+¸pŸ+™ÑD³OÚ9±E…KkG2Ë{ oþŒ¤žl„îaúóí‘À ˆ“¹4§_ƳØÄ\¥ü9žˆÖf’h|ÐZSø©¶O GرÎN“À%]c¬ð'ÔU.)PWYÁZƒ9®äáP‚W);ð)ZU'¡Øˆ/Ÿ²¤I¨[1Ž©A^¯T¶ЭŒ#àS%샗I¢F(’ˆ€ Á{a{/…@ãö˨þef$ðU¶n‹©=Ü®ÑÅ»>cí0@z x5d€Žtè[{zËKˆ®ÕÚÚ0Ê&·lª—§t¼U-+n ¡Ž.üL½¢‡jèÅ!BøŒ–;ÊVÙSÚ„ EzºäEÚër²&À©`.°¢ÈcØñ}gÆ‚°Àƒ: ׈G»s¥5öAŒn¹]NÇ™y±žHÁ‚xÓû©„ âq#­©NêÌü{„³fªÒyê' jv'?‡™Tµ£JÛ!'H!_Ê•ž;G+w™Y¤É€Æ(ŸËI.JOr6üÇŠÒ}Œ­p³Ä؈ҿ5¹ÜnÖfØÇ³äf½s“]$i[aa%cX8A¨Ã!¢®C‘٪ظՆ†Q"y/¦Ò ¨—±x\ˆLŸ%Èrάdë%§HšÂ‘Ti[ª°ÕÌ]Û2uøÞþˆ)FãžãœPIÆøUá‰A#9Îì„eŒ¿"œ÷ñ©×Cå ‡`ÒßUÊMbÎ̉©S% Â($Ñ7•g“lGÉ3l¶,Š%WMláÄÐè“%µ²½Fèe–¤¾ r›Ó¼kŠ›¨ˆ¥-h¨æ}3ŠÿþqU zIpÏ£×]ßYô)c߸¤cÒAoH?Ÿt¬ÃQ\A0®¤ Øìùôî¯ÌÍÅóä.x8£™õê‹Áu¬¢£NÅ‹•…è¦ôÔ:‰Ž€pü{ÛÝMìÂ[]%@ÓtRóéøˆûöïh‡Ê餿ã,­#'òDà&•a$Öe(C–/Ú¼*Kƒ>®~n$<-'7ë‚𴘮O™ÿN¡Tcd(.k}•9sÆ/¸Œöª}ñ U¦D±ÕªŠ8aUh§rp–“ßM,MáÞF(É.ÅòkOŒÃäùÐEÝMCídÁ ϯž:û#/šbúYôL-[è”kòü~25±âù¤z-ˆ%»C¯:ÀU©0<ÜEÈ=å'¤øý¥9'¼!H¹eD´Ü²¿4ý,ÃúýöóO…Á[½Ö6xß4-‰o·Ÿ¿FE´$î›VÇ7í‹Í­w`¿oÇ>etKߨ\ÙÄD;Á`šõ.W†P ãxêÆ; ãöâX ÍÞo3D§ß·ë.Œ·˜WÛsÀéPë¬æÀ-’oIù”^öSö9içO ó[yò9seœ‰ÇŒ«ÒàYõSóÞÄÂGEgKµQŠy’G>ÕǤ´è¸¶.ÝÄð—þ}1wÐî' ‹]õ¶_ã!l‘ywn>ç ¡½øMO{Ét4¬€Õ³ÏSÐz~%~ÔF.câßюŠ(Ë$R¿®‰U¦ ›ë",Ý+Ã}F|ÈÇÍPb#ºËà¨9+C­¤O<Æ®¤ÌtÓÁ:§®_±.QŸ½™eÞQÞ¯ƒ}HK¥g)¬S!Úlm:å¤°ÇØ¨ò^Ñ Í-Ôÿ}˜ü‰Ì_b3Óèe›p—Cô”%>Å´ y¹þx{4ø‹fvs:ÄUpÛ çèɺ’Êö)žQ’c+êm”š…H:à¨Ù°•ÙeäÀ Ód–·ð6Nf濉™ƒ‚[K\ÚT7 3 ×õlÅ¥e®P:gNE»$†Ò Ö >TþሿŸ8•ëL^›”¨&ljÿßz1çméþÒó³ËéV¥Ü¤=X†c­+dň )g\Öqÿ¾”ëˆ A?)6Û2ä†$íDºPz­q+ÚeOÙNØO¾|-¦ãóH’Â4²&Ö2£-ûšØ†AêÊ7žoÛˆŠ°8Yå]n2ɰ™–ç°îLu))èd„O‚ܾ(Ò{”p³WbáS`xÃh¬vX¿§ ²gû¦òf 0ŽV òѰçC?_áÆ3+¡.É ZÇswO¡Hùó̰BFNó¸†þ5MD$°"P?3ÿj$%FÐ* ¸$lè>•­U9ZK¹™,-äU{‘H÷JtËVŠ˜ºˆ¬*A´º±€¤!Ar9?nS²1Úá×äÖê‚Rz<æ?Ra©Á8 (v1ßë` ådƒI\ÑùeAô_!zçOøY°FºaHÈ«lÞ¦©ç~t¤ŠßÈ -·k´ Ë)s’ì(Ãã†Ù÷”Áû´¿G+«nêU]u:Uî˜Èý¾ÈÔ+êÒ405lÚñ2¦Â9阽€JÐ5N#O“'¿™»¸¸Õ¦`M;2àñE ý55°ÂÙ‚”% ià:˜Ë%<@__’ÂSu’(sd/é$Q8µùÏÒ‘7 û¯Àf3)©2Êÿ0?ݯìÆJ ö» Çbîî=v•sæ.ÞNÞÑk.Úð`¬k¦ü5„…¶×˪šQŠ*Ïë®=‰ºPT"IgÚÎfPÊbòhÒ?GÅÃ[»Äc¤zH߯ñædÌVìÁyT°¨iòr’èTIæÒâ½ EÀ˜ÆÐðkä1jb”ÇìÔ'É)B%ÚÊ=¢1¼A]¥QÒÝ»«4J´¼ƒä\H…œn²Ì=d¹:ÈE» ¨¼œ°X¦íû5gýUÓ£Xz ¥N$øXùt+FR‚*ŠÿRÄäÎqŠBLÿ\“†ÎO‹’LNU&GÄ…÷UôÑtÕÄÏ°î§øw'î§’C77 Î%õÇé„ÕKÜ…ÓYuENîÒ«ÚÊÂy‹HJ‡ó/\À×Y´.Ø{_Öm6Rˆ¦\æÙpÊX7”Û3ë%¸Ù8: 5¹|µS‘û¢’K0ž´×ýÉÝ[=¹Ð³ ˜¥Óè„WU &á†M G4|Ç µ›†X’8WADdšfÑy~•?DFHña?²Ó^Ùñ×$ÀÃ>bEO_p½ûÈH€™÷‘(Íàt#‹Z,¬ûÇu·äÌ?æ*)ЂY­srâº-!/èŠÃ¤±G7ª‚AƒêgÙ`íì¬! J1>®‘ 2×_¦‹Ð ¡íesy´–E#¹š!8žø®G^[Œœ ¸c‘!"ú>9ý!,œnAs)™¥Ö¹äÖf9)ƒ];–,?øC' 5TkêjrW«‚õZJx½=ý²=eÊì§íéÇÒŒ¤§¬óÕú´¥×ÕŒ‰]¥&ÖÏM]~·‡Í@KÎ×VÚ£ ûËmK•gºþµ±#m®´‹ }Ò û(Õ:ígJÓèIþQ󲆀ÙdKLkÁðd›ÊûòþKȾjÍ»£˜‚ €Îå^»)´û]˜d?»·Qò@TÖ‹¢Qv.]ã3¶¿¢92N êÀÇŒ Ç{ º÷µ^ñüç³sVȽwqe>ûÔ¥º¤á•-«„ÃTg[X>àL'}wØ6ûCÙ½DIÍ=«ŽÊôXˆ¼x:¶t »½’³ù]iñßâ 3Q…2vÒ „oȳÞ(ôçP•pÀS™ÒÌ vë'Z£,\ô¢-™æ2ºÅl¼õùÇK~ýKs,cŒ‹ýïöók“1ÎT'wû `#[#­ç1ä7NÆØgYzbGëŽ'Œ‡qŽz2{‘µþg!¦Œ-P‰éÒ ô «ZÐÝ·¬ê“åõ'[2±vŸ©¦Dé0Ålì 6ÔõaŸ G‹~›Ž}¹c‹#rY]”œ‚ûÈp~Ç`§K t#˜¨U¨: â"Êžë$¨"Zþ’—ÆöF'fg ÷ïkF½úþŸ¢”9ÿJ%ØQy^…4è÷/ôõ³Å“ô‚>VÓ¯£Ä^¶¶pèõ5wúHÛ­ Ô~ iKƒH«E±?,¯»ævÕ>ÓIt–ß·« :®=ûÑÄÆ @¾^’(ø)„ó¿Ô…ÝRH´Wƒ¹¤OkÒÍzcP#˜ÌÎI‰l|7U`Gït½áB‘3 Nn_·ç©´¾Ë\”~½@&5d˜)ñê²`C3ûŸŠ»ZZß9Ùÿl,³Ñ¡• ª36€}D À"¨=Ï£‰˜OÙ®?3× [ßšêdirâìV .“´m/lâ®wøÛ«$™“šÁãÞÖ@òpuÛü\ü©åº)ŽO ü–fßr!zUN“HS‚»ÊŽäq½‘ú ÆV[Ÿ¼Ç'»ó‹nfVÂп½¡ÞŠýü%jke*>r*ô¹d"«“Ù]„ÈúϬ®=µqq^¶LX‹âËÒ¯ó›]Ð/[1Zzñ¦Â°´Æ^‰Ä(F‹ß¼ÜÝ» 4C¦ÚÌ50|?ø»D“š>µyQçÖsCÂôåÍ`v&LáÆæ¢l•}z3¯ýLþ»"ù¿å¦¾ð~ªnnûbŽ”ÃõûêëH"ƒŽ~(‘6D8F?±¨‚'>Uý‡IcúQÆ„ìËuëM,Ý(]þ}µ?aÓ,t».p`†a^ÈlEï£{ªâ¾’ç6ÞJŸìQ=&•Ûié;Q¶D¨ûù×…íøÄ(ESàûÑK ‹1±Fºz{s›>]•E¥óÊñhD„ÉoÙÜÛ¶:Í _TV¹Ct:Ñ"œàßëþÒSUj[ž¬…²g-†r•ÛÓŠÓa•H˜ Ðo{6n'¹iWZ‘µ»ÓüÖ°Üy‘hƒRÀÿ~Ì,%òáZ½ qÂïF/*ÎTU=ÊÉ[Õ%ÍÏé^M¥ÇNfü‰=÷ÝÈo‚]¨}YyÒƒ\6_Öוq³:7·a'åH•³8‹IVß‘NUë!”Ì›ÃÌùìݪulÇiÜ…@5ÃUÄMNÉÞó%Àó8·a@h°¶FÙ’0"ìý&(ÂÈ^×iç_ô|¾ö»U–Ä^ïó•!ÐQº»©íç`•ºõÏëbò.ðM»6šºéSkTg±Á÷~1?Æc+úî×Ù¯ªVÁ©Ëî‚eЄn¬Æ»IÑtQª!Û£>Øö+¿Éƒ]L¿`‚ŸCÈ:ɲ)zeí½½>D¸ºÝ5áò´ÌoׯÔX g¥Xœ—†k ᢼ¬L\µ91"¢Å¼©L~õZÕ”5ÄJèIÌeŒü#jÍüÌ~¯–R8¨#¦rïâ[|!ú|Õ(uZÝv|Ï—¸Ä¶çÛ2Ã|ÜîT¬|M˜‡ÑÉß—¥ƒŸ÷#‰†®¬"լ߬f« h`†‘ÐR\c..ß§Ú‚ßõlçq±Æ‡ÞIëêiØ…M¶Ðd¨k{p¼Ê fÝþ¶Ô¹}Ï»..®#Ô˜¦êeqƒd º!­à‹rÐÓ¡ UÑ2ÔW P9–®CzVcá[ý„Á‡hª>Ž<²R&I½ó‰qçˆû üTˆºè+WOSÁ¹£%ûßéec‰W¸—É-ø‘ûæVùÐK ¨v,€Õê‡Á•E=ë û³çñk¿HIa¦‰ÐQtÄúGÿùųÿÿþêèzendstream endobj 509 0 obj <> stream xœÍ=YÇqïDß@äi7ÐN¦ïî¼9qŒ8H€Ä!+$W$mó2EJV~}ªª»gªšow)zàh¶¿>ªë¾æÏO×E=]ñ¿òïËwOÖ§¯Ÿüù‰¢·OË?/ß=ý§gOþáwÑû·'ڇůìÙ- Ô;뢻úÂ6ǡà ϋ÷´!T4ÆäMÇż½ðiMÖ×9Œ¾®SŸñZ=,ùžMòaÇ‘Š‹ðö>.°WÃ/ÏwSx£ôâ¬Wõœ 07XÙ$¤™àÇ¡»âm´ðÛŸ-Xo’ZœrÛéZÏï’­XB@ù®¡½mØv\R°g O©áb9¥mã˼eX€Ð‰ëCj¦~Žs9Û«‚­‰)ï(-ÑmêR ±?ï÷EاðËÛ|Z\8`×îOGâ zS~´ºDŒ’^d’ v?U’áÄñ]>~H B¼/(f 'n·Ó°I~"Nåt ¨”ç”ÔÑÝ6ͲßU¦Žr¢`¬ùHψ™ G&²—lƒü=`&Zà¤û|-éð»¹ÝˆÄ¬º‰p˜îN :™³Ëdê„oéOþ6üsÙ¬qíƯšsÎAûð¦Ü¨“©Ä†|&v€Æ%}xÆk5l`¸þaWŠØµqhIËpÜ[öñx Ð+Q‰ÒC:õ„ð4Ìòìïh°Sä ýЪàAÑÒûû<‰JÏ*"¨…^ݾþôüã›ß|x{ûíÕ·××Ïþ8¬š`«po1žÓÞ­Ñ+â3èÇÞY…,®>NÕ Ly‡Eýå#[·Ñ¢o”ÌqÈê€Ñ&¸Í;X]®rÏ¥áF"õ ´Y—@]¡;,Ÿè8Ž.¼¼ý¸?¾Ù³?~ØövË–øöŠ=_oÏeŸÍ™¥þT·É0Iägt;Äãd ZÎ?p—ÌQª—É ê¡|È÷YÑI.’´üêêÛoâš1ÜNíàœÚDW7޾¥qX4ø‚M#±×J`¾µHØä ZÙ|o2„‚Ñ ,˜^Ï´âwœþXÛ€!ÞØFgà,õ#{þž?s¿As,]·jÃ`L?&çï+=óŸv`ÕÑ.Z¥ Xqò¬4§w4vuBð€#à* ÿ0„¤½êËQ þn°¯ÍâÀ2ç¸Ë‘ñ%™ÌÚ†<‡ƒ^–-¹¢Íº‚ùßÉz­Úù^Ù$\O«{µ’òø©¤ 5¤Ê´|ùzÛdZR¥ømüT ×Ú ‘owƒ½fê·M_åÑ1>ß«¼§”Ô嵊E9l6N]Q,8’6L;[Õp QO$;°@¦73Ë`ª:'Ú\‹¤ESg—Ôõ÷¤ªµå™ÄÖ=êY½¢o“r‡Š QFÞ7—M™Eã;“#ò–\ÎwA´ …Ot2’p“[¯r÷âý)ü͈ ½çs¹C­;JÎÄ„¼,v¦*Á31ÐÈ-` u³µhp€Bg¶*®/w”ŸÁç¶À9¨“ÄÆïjß@ýÙ÷µìc m峟6m^Òjêû2Âñ¥‰ÞMØSL7Xf™Kå©ûFk€Ù…ÂæÀ3‰3ÆÖUU­Ý5õHÚ’†× ró­vö(¬‘”Ÿ¦w‰f€§»ÛuÄÍSË=YýFqx¶Q­)À (:R(a•UÙ†{I@âï³'4*ÀLIq1^í~R2øyZÑ·Õú¶ÙÚšt1ºðQ {åíC­’“¨~>ñVµ~ž²ý–ʆC˜m5'®ràÀýiÑO÷dWµD¿£Ö07Ðágrv#Õë;„\~‡”k±§†ÿ[[žü¡,)óøVѲ«†A¢/Ÿo© ƒkôsçŽ`ŠÉ´lWG£ Ö žÔ^UxadaÂňØïàb„ÿS.–×÷ɆìœÅ`ï\é›1åd-¹LTWDãéÉ%•Ä9“Þ|¬ƒAq·ç•Á%ë"ÎŒ* XµVI«SL«•ËûÂ7ÖU!ÙÆ}Á×x-ñƒV”ÂG-Ç“‡õX=‡!>EQƒâb´¤+!nwßÅ”]’I±³_ïçS]$õËøT½?~™Î{Ó5/öñ®Ÿ²î®'Z)§‚Ö{¨¯ '±—[ÝÜg´q‹¼¾qlÍ5I.Ÿ %¯¹þ˵ˆOyÄÚqK¦8dw™M:‡ƒ-ÆŸOZ¥Û‚½% ƒu˜ŽAþ+bQJA«NÏÜtxÐÙ1Š_.Õf'†SdÉü¬~%›ïò+W¹ñ 1Ø;6õQòÛÃn ñ8\‡C¼x¾‡Ê¡.wBáý€kÂÛÕ½†Ú,ámþY0þ! ö»ÛDž7ÔT5®osõœ{ø{aÆNm­‚4AáßÜ<ƒ–¸F4´Õ‰m;µєȕ¼ÕåfÇ×qHZ`ĽãhPb¨'$~Û’›¨¡rܨýã\„õÃl4n. ŠùüŒ9U¯žÖÆ>'!¿G¤E@Ù3G¾ÊŸÊ|ÉuZNBøÌ*÷ÑÖºݶ>¤ÜpKôuA–ä_[üœe«-üÓ¢ƒj®ƒÑM`ò^Îû.q Âÿ_'í0ïí?ñY[ôúþ¶Äͼ­Lý{JÛnqÔonßa$(Á˜Ö%ÅÈø â#œg÷t–“Õ˜·¥9Y¬y紌͂_THÝ•ÙÙ6#çŸDy%'*T ”JäQNiÖ ç÷Œ§$2`⤫Û L» o3ºÍtSNÖÚ.'Û8t¸v½]½e¶ îb°ï‚RÒ e{"5ö. Õ–nøß°ŽQÎ D RO:gpF#©l¯Ù‚³IzM3£Å€bͬ¯oŠUçʇùßäÁѸ‡Z 8‹}µ@Ny5KvÌ×¾ÆG2£nkÄ#J^R)»oYÂÉ…$½âó­©ß†¸#¢q²¾nÀÞ aðfÄÁPé‚‹ï’\’œÖË]µkwxÏÞ¿Îj¤Š«B£-<¤xLHd@šª£¶IuÝÓy\ã—™æÿöØè0†Ô_&ÎárC yN1b"é\8ÜOÚ¡ièÒà%ƒ]y›s¬Ð–JF<|5·ü8Ø/!Ù£@;·Ž$ ךVDÂu‹S—BÇ<ÀmíŸÊ5ÄV9ý[Ø"mB*¼>Á•˜ÞHàı­Q’(óµ“Yw6plu,ÎÅ`Õâ.é0©¥]îÂê¸^ðqÊ…ÅeŒ𨿶€Rèa‡˜j*øî³S*›3Õ)ÅÿÞ%xʦTÔáYúiP˜¹óQ+`¯\ÝW‹6«ÂM­èÇ€íæôÔuµÁdÌ4  ÅG {ÉÛeÕEF•Ÿ®ÝºxåÑäp¨tPP ž< =ÿ=[wØ‚ ‰˜¦{Ó \ˆÛ•‚n¬Þæx³Üc¿Óþd™NJ7P[¦SmúWÝ{Øl˜Íôq±>o\Эi5Y’˜0¹…2‹2úb³œ~çZÝZ`ÇLGE¸+ôøÉšuÙÑ¡9DX ›wn÷2#†…ØXñjŠa8 :ºë†W5 ¦(Œå8¬üâÖp±?„B‡³E!0:hsÊ¿ˆ—·N“ü6€F8É Í hR©S#Õt×T&0U‘a±œ¾‡j¬ MAvD O z Û ­½Y AºR‘®j sLh4€FáÔÙ8rÈùÎþ`ßÚw’ж”Ô\Áã:²@Ž’—ý6/ü݉=’Å÷—2EÍó¯r.k†Ûp¾*]æŸØrý§R™ÞfŒSP¾'ɺ£gb”8%™=wÔ&ý”Tcìß§²Ÿðþí(9ý„äLa ­S¡É ãG3e”™[S¡€±ôÕ©V‹Ñ1ùÂ~µóaÔb”ÒZñ$·bÞgªrE›¹B¿)rÅ`åó»0`lŸfEMOÿ"rE)¸§ Ôßmr‹M­ë1B4ÅAðï~MÒõé^0´”3E¯y¨ï´~xm†uƒQÖ»ÞaxPç’º‚YÜ(T=£Ú?6”åMÞ#Ý0ÇOÅ€é,)Ôç ®¢ê“D«ˆËqTk»öžî‰ÙÂÓ¤k—f H»¼ªï²*€ªâ$ÍU’*­÷P§tiÜbÊ•D|âïAOðIQã¯pq·±´úâzѯw.ܨ5I&a¸!ì¹ ž$ÇP̓šªŠGÂc¬C}}§%¡·N 6‡g ÉWí]µ³D`n^±Vßç P÷?Ìÿͧ|@þ/D)¾ZÏ™F9Q ¤H#¥(¿}N¡œÐÏE;ÈÝîÕaPâ’,¬Ö­Ïõ˜?ÒàÍBÜO,ÇÛÉ©ûEWÒ¤Ì¯Ë ª èAvã¢a“Žþ6¯lC:+~³ª‡çIO”“¾^{½£1”À · gÈGæ<9¤ó}S ±ÝÁiÛÅ·Š&˜AÒRÜa’º]tlœœ± ólþ€<Ä%A…³]+‹ejàC؄ē Áb¡á/âH.îãt³ö~h|»õ »,g·[ñF$sXú€éb^bC½î¬ª‘戲aEŒQ“ ÃǓӰ PÏ6Û‰4’Jö9zî'©>tî¶“g0c H(ba7I­ &¬8¼ç©ø•I Aº{®Æ>†}D%¡±öÝpæÝy(uXªÚ꺧ŒÇˆJ㿼0—eAWÒ„°ÃàÛ­Ö8Å-´~¨H`ØxèêUqTi_~ùz.B˜dyÁˆ­Õ³pnbfÍYößÍέÖÛ61éάÁ{ûg«£kÌ5Ô‡œ:(S~ç•«zîàÐÛŸ³ž@ænm.ÇÜZi€»&ªhW¶ø<õGÑb]/-6-­ìÞôý­ÊrB¶ÍD®V­Uq ñø¾ØSRÓP^IpQ±½5VÝ„÷‡Zp¾-QN³Þ‚¿v#û¯{ ¤]Y=Ýð»úŠ”^ÚÐÁ:oï4¨må\}¤xÇÙ©¸9qï|cTe`][ËÐtkcIÔô ¶ÍÍ5ÚS1G_Î|ÚrÍ /ÔŠ¤N^äǃ æÈXx‘ç…ÿ<ûnú8Ö`ÐzÓŒꋉ^„±]f½À0È1ÂR1µ~>£Aäh—ŸXÛ-7ü¤ »®³®ê£($˜I3Å•B*Ý]®¾Šu7 b×Þ!Ðm.áÖÊHÖɵ ]-!¥”õñB÷wy/kKðžËkê{œÃª#—?Žˆ^?¾É|XS˜°³Y3Í£TF÷&ƒ™üýIaîIã3qÆäéÛ<£R¡zñ0YkÏ_<ö:„O©m®FÁþÉMÄåP¬¼)¹’/O š±,â.ÑÙÚJ ­±t:‘^ƒv–±5E²“6­D§'%+ «¿2±>Þ‹oý˜m*iG8\ÅpN‰Ù±âÑï0åߥµò¶r Àʵ6q­T<$ ˜Áù@q—f„mÛ—²ÍÇÄ34Áë*ùOÖû ˜"vn2±õ¨üÁÚÉ]xý ÓÇ´-gjEÓ%-îjê›cч̟Rîjÿ:XýTǹR&]×¹'( édIåþ÷÷q%—5fjØÁψ»Š¾7íé­U_¿Ë*&Ãûª[›¬'áËãb:‹›`™¡'8Éâ5û¬óèÂ…kHÀ'§ˆ¡]0VOšnAÄ5”4¦¢gÙ‚jÞMZeäÓvFõÕ½C àîÒš>S½kS:/´³Ó€¶òKìë±Fîç‘ÃmÈõ÷ñÈ5F¡pÊÆ¯Õ©‘ ‚75ÙMÒhO–¤T¢›'÷•8Z»‡¥D•»”˜U:Puj³™Äëm»)>'µDç;<®À+…„? ÞrÑN©sÓmr‡‹²»n[¦ÙZl~}\d‹CÜPd sh6†›jº6b󩿆>/ »ˆÞûÄ늽 Q±®5HÖ³Zô|ýÚve4¥>°MuW ¹=Žjݳ°wá·¯†eð.¤íÓmˆ‚ç2]·*#[úN»U“¦áãt›Ài‚òG‘ç‰7Ž_JùzUzG‰æ }CIüèúqN^Ù󩔌LI%¥¤û$g$mj„Ïyq‰,}ã² ¼æÓ^ðuÐr’V¹»XÀP­~â^uwM\ÅRŒûw:a•œÒñ@nR°ß;ëMÐdøöaN,F–?n;Š«ˆŠÏ¦ÕÅ êÒ¥£xÀ6\Ÿ÷×y„Â@î(“7ó–â îv/Éd;ãfwûĹû3ÎA žI_ _ú†Å[ÝEf¨Þ¥6‘Ò»Ðcû9ì¿!x †0UX-3õQ"—É&¢IÛÀ h«Aðž ÆLçsMìq×µC@&Em,ÆÏ6=ÏÙ9Û¥'bÖ³~”޲çtû)~HÊ…¥Qï3„W}¬Žà^µ•bÒ}‘Nz­/rU¤¬hŸ‡a…ðè–éSû˜½&§gxi%j¸8¯v™tã«â3 …$KƤjÓ}U*<ÝsE·& &ôV7‚2°ì‘¬‚ûç|“AçÛOñaéZÕcØÙ·ö¹p†::|Cçvbwî–Úð¹m^½)ñ²ÁaYi‚µ£—’Ñ[; gȽx[ŽA£ƒm5…úqNöô;×ý'ØéÆý’澿=a/·MO;Ò TE!Öø¢æUG°§ :ÖÖ”ÏaösêíÇÿ˳'ÿÿý?ÈÔLendstream endobj 516 0 obj <> stream xœÕ=Ë’¹q>O(ü ss‚S*¼é´ÒÊ’²$¯áƒÖ’CreÎ\’»ÿÞ™  *ñª®™é¦×ËË( äûÕß_Γ¸œñOúÿ‹»‹ùòõÅ÷‚Þ^¦ÿ½¸»üõÓ‹_|ãÕe˜‚•V_>}u?—BˆÉ^Z§&áÔåÓ»‹¿þ~%ý$‚Ó‡gWó¤•r:Þ^I7iíÌáÓÕµ²j2Áá# 0s˜Õᾞ§0ëÃs|mœñ^ò)nñµRÆIWμŽ~AÚÙÍöð2®c…(ÖùŽ §!brA“¿['gëÜà`9y©ø€WiŠÙþƦH+Âßôácd–¡€Mr3$gyxáSZ‰Ã V¾ðÂy>û[6ãG|vÎzéO.·§ñ°~¤‹’Öo߯m¡‹mæÝ×{ǃrÒ>\]‹i¶&„b¶…V(ßãíÕ?ý÷ iíälôzzèÄwø1N-d F†®Ú`<!CyÂéÖ=’Û+¥2¬xc€‹pÆ„¡ðÙÀߊðç•’Îæs§É_(Vâþ®ó¯…œŒ¶"î“ÇÆøÞíë]°ÛÁ;³oË‹IS ý3$Omœ€«¦·0̀ç2îlô5"I˜¼  ÚÛü‡+˜%"’òåÕ3Œè .ÍÝ9ó¼ŽòÀ¬¼tÉp´÷‚ÓÂ'¨AL¤[K“¾õž}Y  ž¬I';Xoíf°äM<¶à6!¤‹°¶€êFÜw‰|$ЩËä“nDú†mÁ[§åžoV3¢z¶>Þ0\Ox7;ÇçUw‹ÿˆÀØI%ú‰;$ú1&ÑOÂ7çz—©Ý“%€S û¾¹yjåxÅ&$F‚2ñt+SúM\;˜âÃ},e÷ÊQãcxüa7ø\¶—¹+î»LŽì‚ô7þ?‹ï04Yó³eýéêÚ ߺßð50s©LajÌ"ò¥éBοO¤£á[™IN Ú„’…ŒŽ/È÷ò$!¾íê!ñ Mqª{½¾f4Å®’ žÎ2D˜ü´ã.,C¦©¸õHSÚÅàûë()Ih?ènµžØ ž»…+¡Bü‹oB¡ÂùRùîþ«+á့Ah 'ŒD匒¸:¾V@ni„@˜è¼@hYâ*¥Ú«èqÊçU "dñóPÞ=K:@¡¾ÄÏ ¨.¡RÙð­f qÈ™-N­ô¦æÜ½èÛÎHBªi‚Wt9Mµ2˜ –*àe[Ú¡X.„o:îþÿm¡ô@BU² ȽEÒñzÌXzËÑfòZg„br”ÈPf·¨ƒ×Fe36? ®ŠDlmŸ …мópÌ¡¸šÄNÆ .iãК =Jmý•’$fÝØ†°¢tÝóî $ ·Â¾= HÔ‚¥°%ùÐ~ņýj*…)õ!žŸóvd½h~µ„YD_"ô·'B5c¾Ks;;R^D¼sz Þv×(¹ލ`ÒÑp+3Ë¢x4ºcå667¼~`ÏV5°¥pÊ(¹ÒNJ9‹FZ­¾~}Ͱ£j6:ßZë49ggß^±9Qýñ€¿ ¾ÿžd—×ÁVR¶Þ‘ñÒ˜F3 jRÀ£þ³ÈY)0n6˜ìßzS\ä6hD;ãÛd&Èi®¬Öõ(zR^Îz²V ¥<‰ó$åῇKùàݲJÍüȨ³¢Î¡¹M9Žv*p¥ì#ƒ©9IÜ‘; ¾zžšoŽ×Û´6·à-\zfpÖônuëÈìÔìEi8dí+ÿÄCÌõ 'ods€}5ê<4 m´ewéV{0DÕ™éVÃÞ‚#º%´ÛpúUÞÚ8BÜÉQk-ˆv™ ¶cE=“d‘Ø[_‰¯Ê‘å ŒÑ…Z÷vñÓžÇù€+f»³ol:N#‘P¶ cHš0&r¸îÍÁ¾£…,™-"Ÿqè•øy_k72ž³+nÏŒY̵­“r²Ý"¼6‹5c÷¿Ç‘õ=S/[%?Šø·É—·JÊ •}` ¢ÑΘ£¢cFÕÆ×ß²¯ õœïsbÓ0ßýd½«äÁˆ.=­"O¦DzDÖäî»Á—OkE,rT±à¤H¬9ñ ëÄXLW"#ÁÞd0 ·Ý³ÀÐ,Á‡#Çæ7QÛRÙ|'1ó¦a•×I›’x×°$°hû€†¨– Yé¶8—SÛêPZn$-9·)%%M#w>Ûáf«_†s3:½ï’4ƒÎ»Øçl_;ùºŠb¦¼‘´—² ®†¡ÓÛ?ðYŸ´F᪛u_ÉfŠ» Ò`\$C{êª8JM~ £Æ×G‚´ Ò Ž7âìbÿ¥’ÿ°:‰oZ\ÊC¾<7|øˆêî‘J6&4úkÝûkøE(¹>»ƒs—äŽ@š€Gë³9WŒ3Êjw¤ú&¾/¥Ôè^ƹ”÷cÊÊ‚™½Šs1X13œAV‰µÓ?ô_V¹—óôy•{tš‚–íl 6†Á½èßËa«“žÃ‘8abí¨à÷z䈕mœfx°àUÅß*Áç5 ÂvÀ†¨ÒTÜ@FÝ—iû[ºù«¤)Ó)YŒ"Å[8±ˆ”kƒ»9n‹ûäl©T„q´öe€{dûµAë¨g–¾œ2Nޱ‹n ªë!¢õ¥žÍשM-¸#Ûä!Ú‘ßÅÝShÀ‰a`/_~5*œÉ¤4¸ÕÛt«¾Ñ·íº,ª ‚sRú? Aw茼¨/ØÜRNêípË$]ÎÎ[YKS8œù-ü6E4 ÏWFæÖç+àH«Pd:”“s8üHßµCÌ ý'äâZ‚*§ÍY¸¸Fn¬kq¦An œÝ`:xö¸ëÏúl¼ÒipB)z>ÞVÂâ̳P;õ\ Ž¿å£ß,™]p"L uò3N<h¿äq¾Ô|ƒÐ^ƒÞœ’é%ºJ#;1B Ôöµ™œè†Ë˜ó€™Á4dIóÂÝ–éN¯0ù£gq§(îÂDÝS¢Dèãt&éšL x{$Ezž¤.Ø¢ˆÅ ŒÖ×#cÊÙÞh \0 )ªÀ;>G((”_Ôé‹ë‡½©2‘‚¥îQЈµàÆ0i­ºsx h±™’‚‡$wãìZâ—ÈyòÉÀåÑDæÝI7[Ê¡ûYPoP ¼0æ%žÁhДÂÔYçd_ eéD|mapQ{:¤œ"—dã©ÄmªM†C¬‘;åÁ­ì.¹ƒ3Õàu0>»éU8΋ʜîìÍqkúN«°4Á®È<ÉÚ[éæü”NCË*2Jp[ŸãA['F1¼’P2Rwõ¼Åƒû(½Ï ]VõA®Â£õÐgRésC£†LçQ$€Ç¼ô!òÞ93 ²c ¤ –ïaàП۴ž:µMø$‡# c ÓY8¡$vÀŒºy…K)Ä$‹bÿˆ@QP`à¸Jhܘlrî°—®—z¿W˜Ãä~Ök!Û’‡;ŽŒD lxMq¸ §Ú{еï]²‡q¥T)Ck»È¡Ïfûf` ÕÖ¬Ò^²ÕJÜ,i'/8­ 6.ÃEÏ|:”gÒÁ sLu.†‡§±”¶0®cmI3ƒttMºÈ®öù pnçDMƒøZîHwæ q'ɱo"|s(uF\n»œB)\íŠ*r/±Ü?PlL@çÀëõñÃúøl}|¿>~‡V8åÿº¾}·>Þ®l‰ßtÇÞu¿=°ç«e½^>x w,!ø&KH²)¶ÁCÎÒº`7²Ï$%6îr¬D>`F!*>00£“¼cãr]m)›Êî§ÞՉ༪ç_íGX$éÝÛêážR¢¨*"·ÕÄ`cb;7C-ëm5i”\ã+¹çªÏw\”°`Þ/×!=:“h_†pùôOþטOÒÇ|;!DÀ¨ïËcÐ2«±ÆüX[Ø´eÕqá^¦ã§´0.¹À¸Õ ³$“)_ ¨’ÉLãAp„µ+ ÞJg9eŠ í䥆R6§3cdm½/“¤!.¬¹ÛJïZEƒú=‹=™ iÿ $v>Oø!tãJe+¹«»8’Å©ÁþÑÁ|^ ±fgv9O×; ©—KÖkðRŒ¬3µEhU)Ú|Áaâ_Z¬ÄÜA°1³3Aß0æÉÏ‹¯EZòîàs>”Jb®þ?²á‹ºb´­°:©“8wAYó!L›-b« *,ãuÓ*GcðؤcYÅÇq¸'ŸUHÝx›Õ`.))Ž4º‰Ñm·˜ÜÚå"Ÿ%úð!5òvý]öå|Z¼´•‡byÁïçLœ?ë¿æqñ‘Vð‰ŠPŒ"b ¸!%k«E At\Y‘ƒØ]O?¹‰“ØyS¥uæZæ.“Ôó©Iϲ–pŠ>gÓAÜikO?.£äÃý:ðGÞZO>йDK-uͪlk.Ö×bž¬=.ó 8nF6Vp¦¢dîF@Kž^$ÞuD!¡w'ð[Y¢»o¢žƒ¿Æ„: ³øÒeqrï— BÄW@„£9̬‰T Ê­Üt}âY”¬p‡ †3ëênqÆ ‡1œÊ §õA3ÚôX7²>(‡‰·q„ë³s¾û@IÒ¹ŒHÈnDïqñh\F•ñµÞf\L`a£Ú$@K'ÉàÀ7 S5ªH³¨t=RX<ùZñ=…ûL¶ÞJ×@!§ÿÂ**!®Çœ§‘žB[ˆ‚ït]"`Ä+«Ö ìž„YmÌ–c>“ÛÕ%ò|}ûv}|Þ›7Â#¼(ÊŠXþ !uæ=«O`é‚Xò­ÅŠÄßè>UÇD±²g ¨*5´¯0µèÛDéöåc—ÙF RSIŒ5ÂÖÖ 6r’BùóžsÇ&¦9ÌҘ׉àïu…´qîX€‰")M$ ‘š7Fù$Á`†M<:ñCÝÃq¬þ¼.£×¥G UjâѸ´ÐÎÈPìé&ÀOy»õÏ–ŠÉ +׎ä“`1º{„ûà 6ÇÛ0ci¯âü¾gª7%¢÷¢„Ö’ —Jÿv¿ÏžÇºŠÓÐk¬o6 ç´²aˆ:õ›²”\[&*BcbU˜‡^¤:½æáN"1=Jn|`{žÈžP§ÍbíÈÉ;Ö«'æu:~Ó­Ù{t:+a˜v#ßµpMôÊ{ÁL…­¡5î˜óõ~liôÇW¸«1i+dAȬvûØã×ÛrŠÃšpØ?Uïà/þq}üõºÚ Y?ô*&øÇ¼¹_­GÞ; ršÈY\^c^0^F¥ýYÁŸÖÇÏë# Vÿ¸~ÆÒ†o7wQ¦ /ãˆý Å Èý™‹¢Í™›Cô;`ü´¤µòŽÚôl”p7Á~YÆ”ûÕÝ–x7Ç[‹œ}Ñ—xà*mæT«¼™AûÃÛþsräGàJ×Ìè÷JX¼*·ì·ýë—S1dÜà9àÿeÌ`™+Óv°ßj ƒæ›•ŠP;ëb]±¢Ù‰:³,5«©hYSZѹ‹(qEÓvÎ60Dp8¹IœFÔ‘åˆòØuM÷(}ík =—AѶ@×aêÍc]“ ÒRw?§6ž“ë¤ÝÙ‹"·ÀxÓ óç÷qð\Ùcë#&ñÕÎŒ˜…¸¯×‡ûCüÔª{júU"'mA•­îo70FK¼ƒÞê GÛëg}ãÓ,ç¦9g=Ž 'Gnõú[7)­µßv1{ªbZ«ã(?’7´E½ˆ¶2CGÌ^–(—çÜDÁsƒ­”“Ó ¡7¼gOþA®àÔíYÙmn³­ËƆïâk,·ÚÂö ¦p‡>ð7MvZHIÕvFtܯÔú‰š¾F$Ù‘6Íž°¿…)s›à§mÇ"Eb¨Î5ÎÝ¿ÓPòPFðKM_™4U•ÊÚ-Ûkj~—¬M—¾Ãß̲ôä7jůÖÛéÛXÙ˜y°ÅJ•™ õ©zll¬5³w¿õú§üÜøx>Å!NÔ4f˜†²h~6ÕñÙ’ÿ˜ºL j•Ý›;´¹hX›‰ ÁãCulÿŸX™ù× qµO=Èún€¢T’Ž>Œ› W^qÄÕ …³Lxé²Ãª?l®aEé*0œÒµ.®ÛÊÀë6™C¬¬'ÛË–8Å"€E²ÖVÕ&ê´ÁÕxÚU|k@Pϯ»§/î>>ƒA‹cÕ· Ð~¶“¤aȼñ3ç(Î0rútõ©ùÖvv÷ƒÑ^» —®èܨl^3C>éJ ×FO¾‰uàâ•Ý0ëö‰FQŠñ¨íÈ«š/_g¨KoÄoqTl2YDŸñ–•¤HtIY©wŠØ«tX°žRÎÆíÿFaÛqj¸ùmדDÇà#’:`š¤,±8W‹@¬În¬å‰öj¸ë¹öJøˆ]'×Ñ“ªê%Û¯ßçÎÜ¢ÝþA¹xq®ƒ¬>Îx VXÆ}vL*$ -7´Ð>DRÏ¢ÀìAU;BÖ3þåUjñÞÍÙ»W¸}ù‰aìä.Æür$Áy„ëIÜšåèêù¢I$Z;®W¡uÿç«*è¬û)Ö>Ü_±þ±«ôR±^çWWÄQU0[Š5öIU­üâ[ü±µÇüÖ!Ρ\åkå¿ôÄ0:¢`U„»Ol-Ã1•Å:ªëª8ƒ0% 4²Wÿ.OQrµ±,¡Ók~k&ŸH¿ÆR¡{muŽî×Ðk£¬ÑлÊúÜ1øã¸kf%J 0~çiY˜»FxÞ°‡E$83-ƒUÍÙ»ŽdN<›%ƒ÷xð¨ƒUÝ ÞSwy ƒ:™ÇjÝÂúˆÃûôâ?áÏÿ„±Eëendstream endobj 521 0 obj <> stream xœÍ]G“7’¾3ô#úø:‚] ovNÒŽfM¬Uð¶³’-7ÙÑŒøï7@U%LâÕkØàÅ" 6Í—ï¯Wb‘Wÿ”¿_¿y&®~|ö×g2½½*½~sõÍ‹gÿð]ÐWq‰N9sõâ‡gùy%µ[¬ÐWÎëEz}õâͳÿ=}¸¾‹±" }ú Ÿ­·!¨Ó÷×7F˜EYwúñZhíM<ýŠ-´¶^ùÓÝþúùðeÕÚ»D­N?“ß’Ö·õð©^¸Óïyxí,4W~1F‡ÓGÒøÍµ ‹„IÃØðdƒ U¿å‚¯&úC~+]<¿psúм†þä"œ†×ïñµ÷.¨€½¡aeáô)ÍS‡ØÎ¿³±q´V¯î?UrFdDrïòwÚh‰}¤£?½ÆI['-¼ms9« µ>ý²ž‰‚ýß‹{¦‚[¢ @\/n”~"Cä‘¥ÊËF*Nžþo•Ѹ• ´òn¥ªõ[ 8ÎõdCµ]8ðÍ:òT‹5Næ Ð}ï%½rŒFûÔ$/•¨I•öXž,ªÌÇFV öRøÓöOqšÀˆž2â2 ô$¯n|¢BÌÓ~ƒK Ëñ0ëíIA:a¥‚CÚÞ’Ç·ûã‡æ1örûj{,óªÄ6-ÜMkËnþé:È%zØÀ»Š¸t0‹ðà0JͯÉ3}O·5³Š²¶e•Ôwt+µRγi"7H®6²£ÐC¥|Ú´ÑA-!º²·„z A ½|¾†¶Ió9|‘îìŒ#q Ú×û@†ùH†É’MÆD[ù»@©•¬œˆŸ—(ùŒÉø9e¢l¾*¥@º¥Äž&¬\ʵS¥­õ.úmqÀÃáŠPðvqV„ÂÖ~´mðÝ.*¨ ¸%’§œž…ÝÄ÷؉•¡jBå %‚›ôÞh Ø,9ÊôIJ³TÇQ ÉIuœ§$õ@8#ÓôÂ9õ÷SùÎÈVÑŒfHɉRmNgKèˆNöûy\ ¸>íæûF†e DäF·ûã_q–?{5ˆg×v˜œà2U}Áeðd0O.¸Œp %ÌÅ‚ËÀðn.¸p{¢Á[yZãq-Uc #éûF2mï‹ ¬™-íF\¤”-ºÄ‰XÉÅRüùs‘_VaWù•’5rí!I"³ò 0Q¡èë´_‡$¥qžð!EE„9Ù¾žê˜#Ë4³Î6þ 8ò>PÂÂBؤÿ9@‚Ü9­‹\‰úïdµ\±es¿FÉl—`uÅ­µ9öos'^ú¦G‘T×D ðòóú•kU/ØtF>ÌFƒ‡Eù‡0뚎Øy´Íq¸Y¹ îþ_+`hB‘™T+™µ§[œö§kkð¥i–»ý± øÕ•v¥3¢Ó„Nº_I°8h@®¬ñ!ëy?’RZ‚]ubµî:ˆDÄÍ+"œ^V­óéÖ“£2k,“Ȥ2l*“¯M„ûXõŒ;Õ) ;¥Â£^¤¾4¥Žåa‹6mñ/yäF±PUAÆûG‹«Ñ€þ™h\J\¿æyÅ)Ìš@ò<Œo· '"bë²tLÏ©j÷ÉÎ5’'oþéÏ'²Ú#A •d…t¼šu‰f\õ…Ÿ¸!*˜˜^¹Á¥B¥]¿-ƒ[×¾^"p¯&`JCôô*ÙRYâÙzÛÞ®ˆ% <* ÷(ÓùVã0 ŸÊÄ»?ÊäùDz¿ýùšüã"DÆ{ üúÄž“cæù>ûlØt“”Gu|‡Šà8[Ú$Çð;¯äXf?H­×ïð¥\×Zpá[/*‰xKD)'òoË—eêJÝòÇœÇAEZ°j­ø] Ó¹Àtýeé‚9…¸šÔŸÝ|ªoËJ3Å irvàsšØÔ©ÒyIÊ,jº¦Òã]&ÜÀžN+_¤\”r½Þ†w½žÁÏ|¦ž­¥#vvŠáaÖ g¸…d˜0'wÇØDvu¢©5rœôº7rº¶™jˆ²u\4 0F~ѵ¾Ï'›w©Ã2ÛÈ)¿Š‘´µzNïЉ”¡‚uÄAÔ^û u)Åÿ–{ñ»›­#²„Ìö‹i#2"$T §´²ÀAöCÏ”UÐËl,Ïoe„ϹïõDè%¹ï\uf„7ËœtF ÄŒŽ @˜µ£Û¥XÅ-äRx¨ ØV^^ ÎÓšnjbÑ÷œ3 ÓÖ4FD°öa&-»ÁàwÆÌf€8¥±õ„u¤D[ŒDt]ºÍH¼-Ó€ã¡Øª=´88õ°^÷LUMgÚ:¿¢ò7 &pI¿d©oÔ6}[«Þ ³^‘Œ¾žŠkáRÒ¡ö†1žÊd2|ì·ƒU”èÖ÷§MM­0zs¹»ÅGOе"†:ë–'ÏVª)‡Ð¤–jYn¥ýçb›ø`Ñ—=Ñ”—W‰}-"x“ÆQÞÖ}QMÑt¡ ¢UDÂÖ«ˆß*>aÿÛDPçÅÓŒk2#lÛØ#ø)œOëSÁYùÍzë$?g*ß–[K¹o8JÜoy00$Ó´ƒÀ—Ú_gM‡"œY:r@ )²mþ)S¬ÅŒ”•`[T6„‚ʼÙèøMž]aDQT á1RVaÐè>ª"3ˆ” vM“ì1‰hÌlƒ94Ö`vxÿ|ŽBRÉ.Y4ëãÆ@Ÿ&ª&˃’¨ˆYr”C6‘ìÔÚÜÙ‡ðrgåÚVOvùáøÖÛ©Ñ> l소2–Pƒ 㤞(A%š ­e­“½1ÇÈœ%’ØÍ™Ø–ïqi‘¦/ûE4#EµÚñ ý£6&±ƒŽ)‡¼H*f—û‚ïP›Fº8Š GÚeò+j­–vÉúö@>nyp’³º¶ôÔMãw#{@§Í-í>Q”ˆ·ú³F~ç‚{„¦ÑlqvÑÒõ^,DÊðn§ÿ-å")Ü™X_5Þ8+qþ#à +9ñ8„Çø2æ;æ èqh•úª¨.O»ä ²å4urûuM»žCn¿Õ…Ý8ÞŠÿ¯Cœ<…„Áz»¼$ªQ“ÃM,'Ì?å†0ª³µÍqLâJ:FV¤³Ž]Üty|Äòâ<=å5‚ö óôp]¥­)Ùùá Å…­#ˆ ¹;Êê£î(%rÔÆe œ´§Éå•éS‰°ÍRáG;¼cí1b8 Cg@n /ýÅ)\9˜“ÍÉøˆjôKËmÔ­@ç9$LAjþŠtCwþ˜O O[É6ùokL2Ç&¢YÏäœ2Ï•í©yî±k.ÍÚ{ÀyæP†x0Áäé|«`jÖ ^çGštŽ>6a§µu©É^/ð¸±è³_¨=lmsè#ÉëéëcP. rq,>’ iBµõT›™÷¾u<ää{°L•jv+U¯t;†Û<¢L5$É"MžhžÆ,¥ íV¸Œúâ¢<ýš!ˆÒ ÿd£Ð££»ò<£FgMû© èóìÁ¥lšÙ‡•3l’Rä™:' &jR”Xi$'„9 UÛëk)Ü_£JM˜¸GqêÚÉüøæÜ#qÅþ>µŒ1õ(ƒáÆóZðõpYõ6µvÛû¬øEœ&$maŠ@ú‘úÃWŠQ½ß¥L|Ò—µ%|ÒøSkíΑÆg jLoiÁï÷ù;ä(AOnðùô~?mR4{»;J^]%ï§ä*AvGÉóœ­o‚žÊd­1 qŸÄù”b,B« Cç§¥Nø¡w¬šÓ}ƒ¯óX†ÑÊ"û¬UµZädɇ-õg+f±Ûc”-~Ë«òî,Nܪ¹û7„;¨¡qò2íHâS•3 Œ¡(Ý€' ô«L=UäêÆX·UCÀ£ãc–sßÐJR©¿ûxȶ¾1®P‡N©þŸÚ/†– ÝÑ*Œ:Kˆ2mOM-weç#ë~9Eî#•‰31^’c=ë:§ëºÍì…læ”c3ÉɲJ#:»­ró#ò4 O¡åî×/A½ ¨ä òBŽE m¥º÷`ÑŽââ‰v7X”d† 6hA é#{ÉPv`˜µð%zW8[gDÌûé÷"¾5þXh1ëê0f®³…ðÅ0›]à\å™DŸ·€~ùbì’k$ŒÚ”f ¬ÊqŠšÇ‹Y2Ç`¿åà· U1<ÁòkÐâ`ž´%déš!yÄ9SÕÖTWcñ¢Ü´ƒŠthaý—­—Â1ÅSÔKðV¦œŒ?â”5.Ž.whUi7A“’¿8ú¨íƒl•‹%¨ ê2Bª±™4z&Ó ï¬‹Æ—”—ªåëPLN U`öa"„(°«©“œÈý9G´pM^Um+œ­Ì¢Û“ª€ôF•7ç%KWÀÕ Í}¢ý dêPÃë¢mejîÚV¦pÍÄ»³}o,¬“M¨Î$³Oã€QܯØæõ©¢‚~̨ŽìŒ¡¶àìËi+ƹ€ûÝEÎ…¶Âk.jDcBvÕNxv•s™ê/’çS8+¤m;¬Œÿ9æžú‚\„•èJùfÕMÜoÂEXS…4ÝŸÔg”𩈚· Vjvõ_xh^*¯cVÇÂpij•#™À1¢ã“HMÉ.Áaã8¼V;ƒQ@y²¨ˆ&+€*+Š×™ÜÏvSV[sÒDeÖDådz¨Y:5¬Òhê„:÷Æòýæ#ýã>â?ïßíýzûßûã¿ìÚÿkü÷ý‘ ñOöÿ1|üÏýñ›]<7Ý8{°&hÁd娑À&á¢Zð˜\P|8ŒK* ¹‹À&€ÓÛT› •f˜ü^ð–($û5‹ÔñÃáQ[¥Á·‹å¦ŽjqÆ=Áæ„>ƒ¯•žØ$ë ‹gð­ñޤ:‰qw¡Wn»¯£»wƒV¿ÒHnãÐ È­zdÕïØwl$%• }ÑxXœÐ“«õ˜­è± ½Y³Sêýy¯n¬rDÈ:*60P‹#&Þ/ók$B˜F¾‘{S5\ê.Ú \±R•ϸš$šNµ l¹Äd8¼žÅSÏ&)Ñ÷“r\™1v¿›|Cïc™×:]ýãG¨ó‹Ø5ÒÃõ[€›ê…Ù{)É¢0ßÌ¹ÅøíÔU*c¦kS0Ôe;«´¬´Nõ½Ô9ÓB[¿p˜R˜X±Œ–DöVY½Äè.¿ŽÄ¢?Ž¿¦)Dm¹Ýå×6ò4O©¡È]Ä¥„ÛzIvâ[%œbÜëðÄÆŸq`º¬+¦Éÿòm]Ïs*ewíef¼õÄŽ‹8qv.Ãm×UÉ€³»[a1%Ž©yMZsîÏâ”Üm …ò’ùûž´”6 Äfùo%ÉçèéâhŒ@°Íñü/¾±K¸Ó–eFìWši‚6ñJWéÚt'ÈÑ¥ñk¬,ßÓ•%¯/Øå΃Iß3h²Ë¾Öëþí®†hOÄ…1¬âù Ò?4²}H4ˆwEXtœ'ÜA‡*jîØÎ8'P'eç„‹ÑTUÁmÚœP‹ô-2^¯9¨ØV5î÷´v—_<¹?·ÄÌÅò¶•iªÁ·ôЦ÷Á\×ñ] ¨?ôcDêrŽéï›W˜Éø3‚*Šãm1…ˆh¯OÔ #utwti‰ž´®‚ÖxÆÜE)'%•#¿wš%Ôó8«¿tõ`딘ºþþξ©Ë°q¾4ˆ:¶÷U~‹ ÊúãUz ›¯w¤ùaekZeëF'šÔqw?ÜùÓXí…×OöFºV{%Ÿ–¼ö*7ßMJÓe„q°·z L—wíÅ0ÉçåÔ dp‹CêBÛ/ç­ÔbΪÙ¸&}ìAΉí‡W}35d[j Õ~ë%Û8­qWï–Å6–Ï"xÛQæ6y‹?àeí1Ç:6n½¾L2ØëªÞ片úþ¥õ­;–§˜¦ä Ë9®jiPMv¯ìÖIi‚Vú:Š6‡F± ð×Ñþ®‚d«ÃCât·ø :V3Ñh|m›¬sš°•IàQ¨R»3ÍN/ƒ]¿ÜœÂtvÜÙÀeG`¬NõU4‰¿;Õt•Òƒ‹Nç·ãóZ4L}‹NÄ¥¢j&Ó‡ñu§yjØÀÖiH÷§,u›Å‰ßá7’Ô© JýCv!âărÐD§¤ Í‹n.|´hKhÏáã•cŽ®y¾…_ÁÆU$Rí=uòN-7ê²û1ï»VUzäFVCglWCO;oâe15bdôk_šš Ÿ×ýÞ–˜R|RÓ@`i2sFÑJÛFG€„U¢‰‘ +ZÈsº#¶μ¦h 3¤& ·SÉi}T¿«¾høô€Ï¿÷¡ý >|õ…7Œù`߀> stream xœå=Ùr7vycò÷ñ2ãÛƒ}q%S•Y²U*•±Uy±õ@‰½’Ƥei\óï9@h Ù—‹–JùÁ-ëÁÙÜ¿ìØÄw ÿKÿ~uÂv'9á¡u—þ÷üj÷û''¿ýÊÉŸ¼Fíž¼<‰CøŽs>™±râVîž\|³yz`“TÌ·ÿéôÀ'f”µû×§lRRZå÷W§©ÍdµÛ¿ÁξœØÿL¾Ó@íýþEì-ýþ;X«¤uØ óf™Ù¿"ÏÉ7íCvrêÉq·ÿ6%˜”Þî¿Û–Ú »¿ 5óLî¿ÃÞn’Ü쟓ùªã°‰Áz‚ ønâLëê4iƒRI>¯ã8"N¨€þge´ݘ„ƒËŠ½Ñ”0è÷Y™å¢|F&ºˆ»t¡u¢‹„kÎ.¶Ëää­®ðµâ(dV:óWJCÚ«¼[`²Úù—§Ïd•€C„e$,ól€¥ˆLâ·(PÆD4.Ê'Þ*ÓÀ±ý&fV7²ÚkCŠ-³ x·”QÍ5r„½T\uXRi‰%™Î­©ÉY» #öÕ†ßôp¤Tè§ #•ðr†­h¾Â’ ugw¦c'gìL:¯ÓßoÑ Ãjä j2OH鬈X§W þüMÍ3BhT—[X4édµE¿ô´zn„•d5rÿÜGîæ¨´’Ôé{ŠÊ–˜Jën%MÖMBÛQZmƒü{T•*›Eøs5yéÝî Àöd\DðÿG褙 zèBÈUѼ“A¥›<Ù5á‡ITí¢…°¼¹!£WjB½jEÐÂ2è¸]Ó à ^ׂölÖèҙÎëåÐA_j®ÝÀ ìoÿW¡5…Ù ¯yG4°4 ÷’ë1rÉô€.í6ŸWdV¯šÈù¸OIô᳊›àß…ÉïçEÀR.DzSÁB-ÁŒwºâMDóM^Øž3ÈFo†t“cµ’²ÐÄ*½éYdèIìËD”m v8»4ê9ÔF’ q”h]kØlتæ<ï:Ù2¶²e€]oOƒ{B4þT>oÊçYù<ÇOÃ- Ë·õ}–?{¶•ö“†W”iµ»âá.{?/Ÿ—eï7÷Û»QÓ‰ÍXÔ5¾ óéHà â’¹nö?_w÷Iú¾ ŸÆIC¯æ¦´ž•Ög¹uë™Z"¬<øh/£©¸o]é•c_¢~§×›0h´-½ÅñfÁï’k.ë­uö—ø…sÆp”¾£hÃ{)Ì`õ ÉÀJN4¦°£ZU]* ÑsW´Ú®`!ÂÔ4&9ì6GÌAôæƒ]4°­³¥DGu¦K¹ì±äÞ¢ûyiýឤ¡AS²®Cƒ,‰Þ¡@LIÐ D£¯Î0 …!/[0†›2l;/“(®ÃÌdH„o³#(®£fËå"eÀ19°ÜÏ´ZWëä£hâyìΚ,›Wqu%j•¯«b£h›sT)¬ø 왚̘€»¡i—u.¬¸ª…®Ú(èåð~}œÐò ¬èh· þp–z;7ÔÊÉ-R6Fæ×@e¾Ž‹*>ŽoÖÛ [4n >åë­Ø‚áak›ìg‰Èä+™1¸(†VXƪ14±]Z-RcêÛê^"5þjÿ,2J°›ÈnSÞfUëÌLO‘ ‡tšf»PkŸ¨ëÔ!PGøq ™‘Š>Ì0{W –ÔxäVºÑ!(<ç® n¥³A®€ñõgHÌαUáø¡ c’¯Õ‚Ù£=pOÕŽÎ<ß—·`ýß=ù¯“'ÿxœŒjm…øÙÚ &£~œ®„ak÷ÉØìvÛàò˜íÏê+MïBÌñ0\vBRVñë%Œ!çzç WXÀIÑ‹yºFû ‹ =ÊÅkâ!8±$î8Î[ÿÀº;U6ñæVyÀuT¿Ÿ7Èü¬ÈK?|€°6‚ƒA¾~5±óû-W„Y¸0%{YWE’®†JëóÅôUFçqWCmœ´a§zñ2›}Øs5º”CäU’YŸ˜sÜD­à’;Z‹xž0@²–?|&ä(Ïó D Ø–5+æ T»Ú7c’.qèLm¥Ž;LHb^Þ ³õéfi—ŽÞF,úV…KS{YëÄ0 æ)´Y%¨çn#…„èžÄÕ=„Žös–£©À3n¿Œx¡ª¸ŧ¿ÖØã¼{¤„Ô’ž´|*Ââyáú¯‹ýxUZ¯º­g¥õ]níÉôhë|Âßà΄ŒÙ-@¯@f®¼@oŽÂ—Äîxíûy^@øwyhßÕf/޹×]éxQ¤ø›n2ìy㮊Þõ†…ÖeG=lH8â Zú–ÀZÏr›ÀEÍ6ÁŸ±Éh»p¿B³uv4aÃ^¤G÷¦ †ô9s3ó&ÖÍDÇ0ã[ÏYh¡Ý¼â½Ó¥1BÔN›bUAʼí&8“Ó§ tŒWãnÒ5ÈÌHZ£"ØÛ6Ð2÷¤ö‘—‹Ä°3Té)„…Àz”燮ó3¨5{×Bfì¾S\Nb‘†s`Œ`¸ûnºó¸}ÍWccá„ü¸¢©Ú‘2ÄRœÚJÞ$+„ãbwcc±M¹ñíé÷›tÞ&J—Ê i$h“H‘­€AæeMµ—É –Àt¯¥É±ZX  oYî?˜TÁ²Eç@Ï£©”R øÅ8-lä¼Hü×3;êÝØjXyäô§–lØe ¡ÎÌ`Üþ-€ñ#OØj­*Ç¡õ±* ½¥#Ö=à ÐÊ:J¨è`5˜Z·ÉP#¶¡^«_Ø«ÌVŠ7¦c¥‰ÐˆvÁ (n`V&Vé*·Ãç]Ô2^÷ ó„=8¾‘Ï×:YÍ 0§U{WrUWU s@æ›c¥L8ÿq"½ûoÊg9Óþéêñ Ž»^Ö`vÐSF}^“)^Šk2­[ôd 1½… *ÞĹ1è>(g!÷MëèjaƒB nÈF*Ø»¸¼]›B«²]bαÎ… ~N6k~”rüã¼\UùEh*PWx“m2W•ùÞjèh¢šã¸¢MHg@§{MkÖŽ½9y[Ò?öfN-Òe±Œ`¤zÔ¡Û"KBvª ÐÞ’õ'ý,£WÈ“ÆuµwO £i3óF¹_ñn¬¦, j¦ìGq¡&ÆÔžïË Os뀱hYì^*BŠSAE 5ë²–~b°W“±­©ž¼)Âô*—yIÚ^P u–¾!lum¹ÉCÌ ÙV¢c*Ä¿6¦¨cÍ£Y–º5c•Ð €–x˜IÆJ<èå’6Èï§âf¹[…SꜬ`±®pì¤b¦T9œ‚7ö(­¥±ã@,¦¬%@ĸíT¶\Û ŒHÖ~FÜÊË%„–*…P jqW’H9>{0Æóƹ"Ñ„¾Rì$”BßÍÖnÜGûz8æY…ÞɇA q?5iµ¯Ói†N‰ Q8WãaÃŒ( &"_çôxPMf2X*a‹š¨ˆûÆ+k"õbüÏìÿ%†7˜0Jí…•JC<‘c!°,a‰‹~Q«N‹„ ùHµ°ø‚­‚g#m#+Jô4V U«m€ éh}÷ÿ(Å0Œ²ª…Ð ã^ê¹Tð~áïíªça¸-g7'7˜,ˆë•ä&/Ö¾Ý/¹©q¦ä&,üx¡ Üp›ý|Дޤâ3Rá†"½F]±ÉÇ^&ÇaiŠ‘ -¤¾èÒAj†ø®|þk‘ˆÃ.»tóíž|Ÿ®ÒˆåXóƉA.< hÝQ³ÃŒ³©Yi²#Bqq—À¢C¶øØ3þ6d_-«pȈä„áéa¸‡Î>ª«b¡¸-k0°¡Õ¤…z¼¨•öêü"á8W±¼!Û;·XàÜßµ‹º@ü}”éJ-–•î[öоW•µ¥†Kk`»r‚cÞ𥫨0ßãò‰$Èùáb¿½¶ÛRŠ2»<2¥È—§QÖ3ŠQµ.ïÔ­$ Eö@†^v9ÐyÃkîŸQ„¯@9¯zÎ&’rq.Jt V~ývF‰¥Ò1÷ ó¯'q„íÞ;LŒO_ñ»„‰ X¬®¥ œuã û^:æR˜8«Áú¼“íа“"4BsûDŽÅ4*ÛV,Þ’³¹x’5¼µ ÔâjJ·šËÜ…üÌŽ6€]koDኺ®jHvŒ‹¢+ì¨~[:›b´‘Š€[\x)%d.o'«|Z)Rc­Å‘r©«&K,›çÛbø÷Kþ]úïWnc©Ü–Ê…‡×ÆGBã³l¹k9$¨Ù¬­äùèÕ˪t‰Õyõ#8£¨ð¸nðÄv¯xaí™"…ï‘éøjeÜ57s©ýÍ®Z‚üoJÄ@=ìF@6¤VÝ’¿Âk÷ •ñõ5ÌÌ… iÏ"AËúÏøÌѳ}#z:v[c×°¤ƒð6Ùº„¶§š2?~3 ­%t!áiÕ çRªI—É/m®µâžù‰ XrPÔÐqáôhuÅí~[ 4ööÂ|ô`eêû©‰á„ì–«Á.ãĽá[>уœÜ½×¥—J¢M 9bEHŽè´F a#·j_C\T"¥­‰ £æÝj-¦,R|;íSјÁÉù`ލoG|`Ëàk0 ¨ºøÅ¼Ù±Æ9wqÕstýNIQX4ÊÓÕïðv>ŸÆFonüI8bÛÒí¶ú€ñ6=ªH¹¢š¦q/v¸þzztLÕžþ­!!&=zœm¤tL…€Òó…xW­³ïßQÆyoï=•2ƒ­¬©a­sè`ecêt‘öE|ÛÞ5Ï¥Ð×­oÙQt•Ê…tƒ·åñ¸Cg‡¥o4„4rÌSìøñŸm ÈmYè˜ÊÉV^Lm^xdá±½q¸"^Ѓ½YЩEÅZÿË|V½ñ»ó뙫3–whøjÌ¥$Eù¢¨mÄ"î²7¥õ»J™rÄòý6 £ Ók0)ˆRù‡nß«æ3;"ÈÜT½:[/ǠѺ÷£÷5|ÅõÿôääÏèèó|wq}‚Jëî—¶û·Î€Èí¸òø;»«Ò¢Ñ‘¸»<ù›PÅ&LpÅNœ8An ½xÕEYòOü{Õ€WÙtQ€Dœì&·T»‰”KSé–q˜2õT¹W5yê5úÉ0SÀ ¹ô7ü›Æò9˜hÒÅ ãxwCü­‘ç©.HêRÿ‰·+Œ¸,Ƈõ.JëÛòù¢tø©´Þ”Ïç¥Ã«n‡›Ò᬴>‹?QiõÿŒÏ^ƒR‚çWlÅ>r/J_>£gÊ0>¡‹IÌmõáÛÜåo8)ŸÛü¢—K3€õÿ·Ô–é$£SHùÕÁ™x_¹S…qü^è…ÌP©ˆ_âüzS®îì6ôyÛÅŽËø«†ŠOô ªâ7-ã }Ÿfb6uøºtøïÒúÇ ÉÁ'ÆðN,-¶Z¶enýÝÜZ:8oéÌŸ¿ÎwèÒ6‰¨ùãiá9ÿ4·ÊŒ„Iå¶!×ñÞÀDô’ñB½¬.9wªn=uºë³ðfK¼cýî˜w¬㎷æ^U·®muÇ¥½õÔéŽwŒÏåÀDáŠÍ¸bñ9\±yŒ+¶³ ¹b¼OÁkí¡ô¢·>÷ºã%ã¯6coÙ~€[–ÿooÙÌ£·Œ7ê´¨n¹ô¢÷>÷ºã-㯒ò™–ݸeuÛ-U:ü¡´þïÜrfÂY£å¿,—ýkAoÊ5Ò{›>ÌM¿ÛvíÙÞ€¶ÞvÛjÑŸœbˆb“Õ¯0ý¢XéE‘nîuG3€bN&­ÏÓŸ'ŠñÏÅœMS ÃÃ2YÛ¹SA¹ÒéXS“ÃP<>ÿ¥Œo) 5\3“%é¯wÄ5óyâšøôpM¯àZ³ÖB*Ë…TVi±øy9ã©*ÉJëßrë«¡‹«ƒMÍ6sŠåænL3á´ÂŸ@ ”¾ÅMø (m@é¯o×Ã6ø*ò.z2@ó°«ZY[  Z¢`OW°»Ð+¶ë{-µŠíõZz®£g=4´ n«s‘ø®ÈE›DDŠ2AM‹ nÔ¤™Ü¤ÄÀAŠ "í¥PƒÎŸ™Œþ|ò±AoDendstream endobj 545 0 obj <> stream xœí=Ùn9vy‚|ƒ¥Äªp_&É“t0È‚ 3m$Óý`[¶ÜIv[¶ÇÆ ÿžsHy¸Õ-éÊžn è‡.S§HÖÙ7òþtÊ~Êð¿ôÿ7'û{îùéÕ݉Z˜>ýã ;ýí gN-ÜËøâÕéMq0"ýéõÉ·'Ê*»À»*(vzuò¼ÖKÿ{qsúOÃÊòT-Þq)NŸ¾:‰{â§^-Î0Ë…[yúôæägüü‚/\)ÅÏD~üþé¿Â4Ξ²° f1‹•ÞÁLO/á½çl‘N))ÎÞ„Gí<»)£ÝcxVF?_ÀnÃÍÙ?œ_hïÁì™Ê¸‰~zò»‚$׎¢Í“5Ú2Ad†z(ÊŒ\„´Êä—BÙ]ø@F(ã@å×zìiã£)ö¦/0&¡ʲÅsØ~x/Ž(# Ê’F4W~ÄÖ ‰(y;-á¶Èää)Ìh„Q”J°­ÖU|±"Ñè¿Ïá{˜”¼<¿Z.@¬çlQ†Yf*)aƒg·@KXk•´ßËÐëLý€ÃRjX)¾©%ÎÞ`Í<“g¯ñY[íYÜŸ]“é$tÍ4à· å)¯â¢RVñF`yà-x‚aöñ\Xxr>îC/‚«éVÉdïãÂéuwÆ ˜6A §2xK°ôíE³g\d£Z‘bõ 3ÀÆr^VdÂoQ\À·„­2ÑmÔÀWJY­ù†-àÆ)ú ÿ¥ägoÉ×ç(9Âp@–]%—àæEË@ QMœ¹Bp-,¸²…g‡„M'„H­ÞWÖDr ÷UMiSþU'DI³DfÜhâg_¬ß}ÁAµæñó¿;#ßA‘E(¸"ÙÛ E {³àFUPôÝy¶ •+çÖ;wîU _~‘,ˆ8ôzqÊnJ‚81’lɵYÙ'På²~§tÀ"¸(NŸÈò ú#ðýŽÃ¢ ýƶèG<(£"ižì™"°iÇH¦ŸF¥ç2‚8ïªá„P™8A¸µ+¯¶»¢:â}B¹1ÕßD©±àB­RE•È :g€ÀdJŠLŠðZoåmSÖ J5 '˜MÃL£"V=óǰ01iâðùØK"¯5`»¼¬–£/e¼·ÈÜÁR’Zd!Ðj‹Œæð³0µZdæóH±È$`ò÷j€Xä $Ùß¼i}ÀoïÑäú¹M%ðš2T…¸õ@4ihr*âé@|Sãé>BtU®©Œì‰åbµ@¬¼Æ6Ðk=$» N¯°»t ‡"£ˆàrÕ}ûŸCFÛ‹$™VŸýaˆï³t‚«‘¾-ÿQF¿ &µ ~DÑQùñ¢@ÿzUC¼è³_Mu€4ýQ]§? TMþ-ØT–Rú+àŸÿñ"îh%àZÖy”UQD>,²âß O“btóð/~ŽøW¢+j®}c3TE” ÔZ@xÌ#þíWÀ¿|\ü ªÙ2ÒG¤5)òãŸV³áÒ6…/nÎ÷Å»ùûuìbècå±¹§#½\u”WŠVTÎP-Ý¡²*{©ì¾•Õ!*ÿ¾üSý¯ •Õ=¨l4©É½>frËŠÜa¯ëЯJmt´œR)ËMMí UÑ?A=”ÚR #±ýW ¶þEÛ~ bs¯å75ùëwª¨¿ß>P†Ð+®º2»Oâd7ÿOvtðž’i¬ê4Jª8!A=”ðo]GøYG!¼½á¿=lÂgÁZ¶¼#:M8`µä#Ð=ÜצÓüÊh sü“)ïõbhRJ/¬V.а]†z(“aýM‰_\]X9*•7+”e¨‰G  }5ú”äÏ£.l¶P˜¤!x@°U1 À„YR ^Grê¹€„L3ý{5PRÏ5ÈJ›u;µÄv¬³U †ÅAR ù/! ¯™’!ÿ/ô¢å¼ŠU#‹;S•%û:Cxs£¸)„]w³ºó¬Ø JGœMU±ß¡ßªiVÏhu¦­i&s{K¸¤?Œ6]U¯>NS½ƒÕÁûnpoi¦Á ÌÞ° ÷baB‘g³¼T%5îi­ÎW™m6xŠ»G-€‡j.-€‡b¾©KŒXÀÁͰ€HÑN ˆRvDöTõB«½N˜«ÃˆƒPV&U‡)ÓâÝ_cyÏxŸ«æÚ+×íÞ‚¼3ÝìADUq¤(¢ÏáYiÝ7MëšsÞ@.´n±Ìï­mZ³8×Ö¡© ›ž[Ä#Ûj{žµ‹‡Í4šaEù†6x¹‚èÝȲ‹õ¼){HnŠŒ³ÊØãV‚O4mŽƒ% åáW‘!ô ¹uY†{ ¨â %bZ.>Ðw_^÷]$ eí€Ë²o¹,|hⲆaB)!Mu\OÎÒܶà°ñz-¢[ÕØ;ØÜ˜ßYzo;>. ÖÉ@UoðkÜkgæ˜Oq<4½GpˆÏ¹ü"Ò½ïÛÒñ®Cp3’î¥l%9žè->°Ô«“`ÒÀ[ú÷“§ò¿èqZ9¼¨¸5Ü¢óºŽÇI€’tÉÀk^ÓHg—7/ï^sõîÙÛ×ß|xvýnèé{v±¾uÁøÓàý "˜”Àb¯{"ùuàÉ‘¹„DÙÎy¬K˜ƒk/ v¼)X‚ä†iæ4úº<~S¯Êã»òÚ³2úöÐ Ê#yíº<†€™z¥E ­ãéójO–¡ œ?¯ÈLvêWQ  ÌH•&`Ô{Ûæ\*UJAîâ„›°RŽóC”ã ÖÒ9<øf®’âãP%È$<8œ,O zZå `¦Qíûø!ØÞ;„¯C›HG&¶ÂÄ,ò·\ÕÑð]œZ‹¡Ÿ½*Ÿ¸?S9D´i®çØ«Ì"UmÏÉìÈ”ü’aRÀ ™õÑùbŒªh„nÆVt¼ïLE¾{²¹Æl¶óVPúÕs?5ÌøoX×0›yŒMŽe‘I›1w²éÙo[%¬Ú0—éyÛ\z¹=öhÖ’º]¨õ5ø‘¿Áx§¼‰d1‹P|Äga’«²þËHD¦-x¹Ùã¡«7Ñ-B;f³°:ç€ ½‰Ýû–ð”8ÈŠŠ¹LŸ`x³Lž»•Ž,§l“(º³øý‚ÁÿmŒ q'£·‚ã«Á=¬ì>9&›IhJ¼4¡ì]\Z€.ïÓj^ׄŸc¬Ïym¦^Å :»yä£5Ak„ˆ¯2èÛz53ø81þ¶6±…¡xüÍILbxÓfÆì|3}Ö²uÍÆnº]ŒÖ«dÞ‰~S_ G ìó¢aÞmê¥Ð¨ù²\AD ¨04 Èï"yÈŸ`–n0=HcéªÓ­mX›ÎóšMC8DþìoÊ©i­°ùß å`–`ДÄlü&Ç)ôé¶@̆›ÂŒÆMÎ^Ì×d.xsh³h9<ã²Ïü V¿€Ã2ṉ!ó¼4¤y–gÅž¨ƒÚÊœ¦­jå Š^Ø«H˜îm«w>ÚcAwqI»yB&²NåÑQù‘lŠØ”A*Ø”ÛAa<]ö„«¤ÇH¤¢Ù‰G×*«5S¥ìÌF›ª DâÑL‹T6è —78Ö´ÓDzÔ Ï-µYq :ÎXq@·åìÌ¡©•ÿ(òŸiýeŽ|‚ëø…ApKàØvNÖUú íó“Cµô.R“KOµRÍy˜Æ–G„œ³rxtqÕø9š-[ÿš™‡Iõ%<ñ à¾BN:ì$gn×$æ©q—¥CB‡§yt軌yÕžyÊïu±OúüZ´f™íŸâL 5µ+/0[–PÂ|Æ“¹Z¤¢1ð¡Ãè¿K(Ð9fI‡æ0¨ éæÍŠì\2ùø.­JM´v±~ErŒ²©¸Çò±ÎˆÉÃÔ¬æBY¡OŠ÷å…™f˜ÆN½qhÀ¢tù…‹låÉNÞ–Ë­44×yÓà=µu×Hx?4{mE”/ÂMÚ/?HèÒY¨ðüªõö>êjPNÓÞRhi"H“ð*ïj©’Md•¢˜©®A¾IŽÜ¡<ËYMƒ ‡ÓÿÜGaÂrûÚáã§)9ÕH4Å:>ÓL?xÒoB ›UBn“°¡0äãµMyWr³ÓUä€7œ²Ì,-;È\„pé2bA«aŸHÉ%QÅE+¤†hÄv (d²7o%utõh •0«¸Îa?zGå­žzU”U(Ì縱mþÏ¢ä×sT¬µˆ×i þ>Ç1›¢¿Ã _4SSLJE'íJTbê‡xž•¶#ÂGcç•Òp×WS‹ÔJ4Î'§'ùgšèã¹V Å'w*h[r ÁÍ u„Ì;tËø5,_ ü¢)ÆVáv…–¸RéNÐí­ÛMÚºÁ.ƒlQÃ2ó4ÃÑz쟗3³5óE›0adªÚ;C›]BÄ$ÅÛ°=ª©ä‡J‘«¤€ Í,"¢•Œ6é1:/ªÖ÷–”ïëd¨vh<ªMÄØÅŒÝ¨ú~ ^})QBí=1­U­0ãÍzá<›®‰¦Ÿß½’õÎ†æ ·[hߨ¦xçEŒÃÒŒ–¨=XÞ0þvÿ2!ÍVã,Gg«j);N†òxÕ%‚j]òÐÈ6#mã"86“öÅ‹.6»N“×]³æ½¨À±0H¦~’]€0 wâÌB†ú³d!—¿çê¢0‡¨›o¨ƒ2IvSÌ>Y¿±ÏÐÈð÷qœV3ôßÌ…à¢Ìó]&«½UȼñµÑú:a«–ç²1UeùµOëËAÒ“‘ñQ \ãd!Z±ÏÉ’rñ¬åï=‰IWÕ!Gä%¯® ¾ÓÁ7¼ôƒe£Þ´^ã19ÆÓ\ãâQã¥Á|è a:‰&· 2ü.ìÊ Õ¸ ›ulŒ4u  q†k;Çä¡Ãƒ¦Zç5Aqà‹9S½Â,)%_ŒB±±Ó„â™v4{ÚµÅjZÿaäSœ›Ñ)ô³í h݇3@©«‚×2ɰlm˜‹dªO3€ùX,7A%Â#¼3sÌÍì5ó Æ½™¤`E“ÿ¥]Áõ°§wòßs‹Qk#hwoM á˜D¯]óIÇeµ5X‚· â(™fK0a½_Lªàù0³“RÑ_1AN1 j´²V=qÁR½æœl´ƒÂ6´Z9ÜÇ%8¯%r'_þ Ý3úû¤Høû§Þª†™{·*~rÛÝÓ¸~)1rž»cÊ  ç®ä0º§æZæi£>8¸"ÍË㫽™›é?‹ë¤äNºh¯€X}'•zR¢%í;Ÿ6ë²F,‚Ýu?­ƒòP{Ž Ð“-”v:¿ –JwÙm6W ™°RÊ®zu¡µ¦óyÍvñªw}UcŸcQ)Ù:<¨7ÊÍ·i*+È|}Ýó8j‡(¡ ÆêT6uŸEëî¦È®ÓÇ€Y‘m02ÉO¢á³ÑOdøifŒÉ·SœƒF¸ªÄæ \r›ÁiÌÄèãdÙâ…¢bãÓ‡i§\âkÕ à k±¥½ &@‚™_š:ËýP/˜Y5ž?D½\5š&ª—çê|1“Ô >Õ‹ZùF½¬­¥!É¥«¶íçDBh‡¿Ý µ½=Á]qéTÒ)ûLü·W¨@[lV(¨1NÝöƧÓò(öRšcgÎ.†ÙÙ-€ß¨›8yÛj#c€SeÖ5lã•u˸9y¤òq+Fo+Š$9Ë`öö”S¨µ4éuÅi˜2‰È²“3£Ä©›ÍOq­êÓl;Š4”&OjyèN;¤¯©m̆&‰‡64 é$3Ä×Èèv!ø‹Ö0Ú‚)½öt)&¨ÁaI`•öàÔøÂÚfí\#\i—º¯£n‡Þw¼Ò·ÀBÂe}ûø%Ž!õhûîùp-ÒÜGZþ>6°qã×›ÄSuW&Þß« ³€Å ÷Ž”îEÌD[QÑå.Òo§åž¡ˆSËpßójoÉù†É£„s]´ÕÑÕÐÌ=Ë% 0çÊ5²øˆ&@¦^œ±û7i3}™ÎdŠ]Ç“ª¦Á–ÞÂ_:Q¾8‚sjÊrûðáÉŸQÎ)ìtóºå*2&üC}Î&V[ß H HSáÍÕ@e)Ü4džõ™a­Ë‰"°¦…;ˆ°á›E+X§tÛíÙ¸/¬qÜ7ÿ$œZ¥å:Ÿ”ŽÇäFcn’Á²Çù-¸%çõnU.æÌòÐàCb³€øÒ¹Jðq»|ˆêèA| ´˜ÅõÔaz“0¦ÚÛóó›”Ú˜à o]Ó\6¸Œ…æKDɧ†„lÛÈÊÀMUn¦«ÃïàõƒvÃuÏÏ4ï¹£îvfY(<~Cdð> ÛŽ»Zhjé§Ä„÷QÕ?ŒæÝ©ªYÌu‘Òê¬DZ²†\w‚–d¡3©)šz¦ðxŸ[sÜ¥9è3ÎŒ#ŸqÑ6­‚1$Ï™ÊäÓ£ŠA°ïÊèË2úq[h54ù|q2£¿ËମiDû·â57 5ä5ŸÜÛFgÁpÖ͘•;pxÕq1«àáâ˜}º?¬(ïwú A9ð´š×¢6Ì®îdux§×aƒ&N\²É–ÝÅQ&º[¸ò‚{NJPE?-¢Åmwý˜—mOÚš°åÝ Ý5©|Nˆ¢Šâ¿Þiìqàå{^7þܾ,—Ð&\²¡öu=íílCjQÂûÚÃ7è~[§ðÀÍ|¨:çùJ"xã“'³_£¿‰JN6WM6t Ál»ÒÀ×Ù&¨Ú6Ý[ã<ÞpL™ó¾ö"4÷uÔÄ,ۤǹërõbº6Ù0¼}Ïj™÷þþ$@3s̱¸¦t±¢¤Žˆö‡ªZƃ-‘gؘl1 ¼%¢á|ˆ0µ”à#9Åç'ò ‚Pˆß>öçušùzÆ„ÞP5Áe“šÁª.šÄc(n»êÞÔó#ÐûN……¬;¦ûº½ÏTâ5žó'ÑNAgr@ÔÜüŽÛ€ÀÔí¥³-µýXpànê°5åçx’gV‡·6'£w<¯½¤„®7Áyž¤ê'%x|š"¶è6u6K׸Á3B[—HµX¾ÝɃWúÝgª°fľŒ=ˆ·Ž¶JbëwíçÏÛÄU¸g÷Ñ£¼¦bÂñ¶! Vqð:Tb+Yveªôf¸þw'ÿ `Ôendstream endobj 570 0 obj <> stream xœÕ=É’7rßþ†/nÚê2öe|òa‡Ã[ð&ÍbSËŒHjHJ#Í×;3QKHàÕ{lJžàAOÕ(,‰Ü·úÃSµè§ ÿ­ÿ}ùú‰zúõ“?<ÑôôéúŸ—¯Ÿþãó'÷¿ZÙ§yÉÁ÷ôùWOÊ;ú©Öz OC´‹Žöéó×O>¿‹ÏÔâ¼µÞÝ-ÏîÕ³7*ÞYù±yv¯µ‡?…»ÂÇF© ¿ßáoRÒw¯àEkòúî>Õ)…lï>Ð悔Íwß² ßàï‚öñîëg÷6Y˜ÛVßÂc½hŸòÝ{ü G»Å›juD *Ýý; ÿ|5æ%íV¥·íZCµf¢µ1zÛ®ÍÉðáïiöì•¶¿}þïóTƒ<-9©üôùä%›¢Lç“ñ¾Ú5ÃÌ—_–Jf_Ï€ˆÏn‡.;ÆL*s„³9¾«AŒ«hÀÍïÙ«© Â^:Ù¾S\ÑÙˆ+"†(eŸ?á ƒi{ŸÁâÈ<×Ùa^ÃO2ê¸S ‹rmò~Âsþû¾ÜNÜ1ÖWÓ›÷ÝýIZŸ—}ux6 ß ›p¿Aá^€Ÿ×¯Ÿ™´¨˜|…ö;8FðeÙrœåÃèv•Î0X‘ßÚ “Ô³õ~ODäép`²ºpŒš’Bù÷®`¾èªÍÃŽ¤ rÏžÛ ¥rêk¹ ìJ…Ürš~rôâo¾a3>àð´´›ågãÏÔdS"¨´©¶²¢†÷¦Ýâ~N†°|WƒÓ(0ˆ¶€b\LŒ¶ðšªAÂAõõ±È«BÅ.úsby±Ýö¬üñ7õåÐ2yG“Õ3¬– Ù¬¬ÉF`«Ù¥íb}8.™0ºa9&¨%»(m˜`#- €ÀÜýñª Öæ8Kߕр8Õ|=?Þè O×bóÕº¼ üÞøòE içZLÆ÷¼O¢|Ô¶•’•|±¦ ‡>ŠÇ¯¦á|ˆ!…À“Ž5=|½‚~NAˆCá‹U2é%g½QÏdŠ]p3P4†«ØwOJa'ÒK_¬—ºKûU‹8ÅÛuón?6‘Îvv×¹è1ß—g=‘Im…FMjsîGdwù©‚êÙ/ÉIàéd{ :<üZ2ÈÜ€§:çšmCsûo±8ªÀXiH¯‚!g¯Ä|§‡8ÕÊ‹œp”ãîK†Iýá ;ƼÈ#ÍŸ~…OÝ’¼;Éï+67b€)÷ŒmCÅØrX\6¨êpbŸ|*ŒÝ21Ô›•ÊâbM–¨ŒQÓÛî2øõÒŽZ‚ƒ%2Í€iÝý\¥ÀúнÇpþ‡Záh#yŒ±Ÿ/ðš רa»±^ƒ-½X‘X÷<ˆÎ\Xéì[DoŸMBÕgÿù0Jh«ÅFíüë¯ܸ A Ëy DÛàŽuz\¬süû“ÌÔ¥S9»4×­|áÝñóí~À˜ýé×ÇÏ_ŠðøRšWM@WÖ’ÑQé¤dÍ8]ñûß Žjò=¦sí[z/îùáøù²4òðÍ}—Ÿ/¤SKG›$e¶ýÐmäq3†WŸýY5Ñ:³¤‚ðg4gœ\Ùçlð*"Š®O–¨Ã­Ôø÷‡4•®M xį­À¿\[H6ð[yØŸ’t´6Ó«tt±Ìò ^þ÷žßr¡$%˜ØüBS€?Ï/4+¤û¤Í}âàè‡J2×½ð>£G%¼šðÛžÙZ|Ïn„3ïN‘ z„#µÑư­ü0LŠÌDå´#Ɉ¶áR®@ÛïD*þñ—§í—Òüb}Z¸µ Fj-Ô‡W-uÔÆ€£$mιF`´[¢‘Ìv‘A™ôÀ:jb´( ãz#–ü~Þ¡­ /@φ|9`Ö´H€•CëÔŸÉYmÉé}‹öõK¦E#bN˜p›1‹š¸D˜x›zèW¼^Òâê)Ÿ£\Â$#PîÄÞ"ÊÃq©­­{ J§©ñjÔáã ÜrKôßvÑ ½|<=|sËe'ãÃÈÉü WòK´¦ñê#P|B±HT¨]¡•®É\T8½.×{ìÆ4±Šm•ëž6ÜÄdÞ– ðŽÚ‰‡pLy&×4Í õè*z? )1ÅÏ‚™ßl矃ŸHAc!¼@L»Ž6ßs—W…ÖÁRÆ6Öû÷œ)¶è8ɽÅëv#èQ|Èê‹ûàdT ä:ÓCŸ7K&p¶þ3NtíóÇ£YJ¸³SŒÃIrŒÒ$Dø}¿/¯š¡ý xòX™Wœ¯Ï×K ÆáÛµ—ÄöGò½·f‚lýs¹ñuâ†RÀÈåjäñúÛòRЧ´òiG°·ŒßГ{øÅþæ8¥èITK†VNÓ"¸Þ.©¯Ä§ßOßO_¶¢ž2øeåÔj噯´! /îØ¥|ñÅ¡ídY‰)„Ž}KÔôÅ3|n½ÍNÊ5)’k²ÇM.QA›¼ûKy¾6ö +éW§É€‘ˆù‰ž‡ä-h—®êL}v¯GJa”Ê–—௴Oôû+v=Ïjb¢™Ð($[sÿƒF»ÅF}"Щrm€£ëíACL_U¦nwÀQ.Ö«›”Euç(ªM |SmñAžnCâ®CÅ@xb½¯;;ÄÞ·» t¸ÿŸ‹C?‹œ¿‹ñ@êûò¦ñQ^zAï’ Ö8„òc9B7]¾Â®dÔˆçiS,\¸§M!¤œ~¬„8YÃjóà`ͨÓ]ï­l™‘H…V£(XQ¯DrzÕÕ22•­¨ŸæTX‡â$i²ùÂv€ð¼;Ndsé,Ž4°×ÿÛ6w!3Œ¦od¶[1o¨üã»V‹¶ I”ŽÓ<0u’‰´uJò[·üðô#J7Ì$'@mÍUÊXM¿"V>”#|a„{êâÑøLdz¢ñ ] oÓ¸þtÒ•‹!c:÷®rýÅÔQPSIŒôÊ4óú JºEž¡?"ñ~iñ²¸[„ÏÔt·» *‹ ï„N“ä€KcNÁÌý†KÀî89o›œ€±<évÓš)aB‡Ðo•˜´ï}UOCô#gr¥ÁžL¬‹Ý"'=L±5Q/IE!11˜òw³„Ôî”^s¡KÓÁ§¤u’­ª½<­ 4;‹‰7Ñ.èv,]‘c-LE×?gˆÒ²˜…W÷tR\É‹ÖïÔp%Ø/‘ö^R“@÷µn#¨‹ð;ã!Á‹±¾Ï’]'žeÉ›näª%BÏ­ÉUÚú›Ýäï«åĵùX÷¿`fTôFPb6ùg0”í’À€úäKtŒÁÓz”G_ûX`î´„Óyp0Ø[3rØþ¦&ƒpTÈR¿iR Ôš_‚öæNùswüæÙ½3 t驟!Š•2'£¾ÚðÝ^ÝS­>&Y~½“‘á$Ü|Z“.íÀ`¢Ì¾DP3£rä,}æãÑžé2°×oà9ljè}ŠSÇêP£#\©6/›%8"5€†:¢èLÝd¢±!£b¢5` : ¹ìmèIܪ:Qƒ²íwä¿hF—+% &bùŒh èZU$ è04ÒÚZ ®DŽÙ%ð1­Vê”E¿ÞÄò"¹©©‹·•ÍÙ”\­Æ jdùþ´îźV‹† cžl;äIå‚aC»Ý0RNh ªr W‘[¨D‹Œݳ¥¦‹QµOÃÿ‹–j%^1 G¯{1±èÈ`9ª|RŠ”°¬kÔŒ-xw"ºxF¹è i¨…‚›ÙmÁ`ã3r?ÀJŽ]‚J-‡‡ûþ°tôÔÒјU½»0j§ B:äy2$ ™§8POë ÅaÌ™”Ï£¾¶öWGa5%“g9n¤HEn®Æï0.y0Ä£ŸîÓ`Ä…‘æ6ª¡x_&×Á7 ÁÙ)+Ýr¨e;÷û~%>½Ñã4ÛSÉ”Iú4º‚È#gœnF…Oƒ"’ôbJyD)³ª[”]¯t WŒ×¦ó “0Mp*ßL@½=̨kÎ-柜 À¾øW¢Ê&®5y 3¸.e¯E-][+†ŽG‚† Œµmu¼Ùfa¸o<“jk!{}ZÈ-}žF]ÄšØ|"ë­$±NÊ:ʼ‘H³>ŠïÆ8)Xÿ"‘Z—¦š‚z;`Nˆ¿SÇÜŸ•š;œÞ—7½h¦ˆª‚ÁÔÙÐÆ=N6²i±zϰÃtQcú¿ÅöI683ÕŸh4Àï•ë5£$çyÑ‹î\*˜îÎ…­{Ú»Ÿ‚’aÔ’²ª¤“Þ tqóö*3ßUÂlu»»˜AÄý²õÍñóŸ·Krc.f1}?ž¡üü¡y­Ì[œ(”ëùßÇS–-Ú¹VèéO8ž¾|Ž SJðF÷p‹ÓÔQÌýK±5}«Dé#ü%š1`Ž æêjÒþ&xgZ„[׫&@=õ½{'ÁÆgRàÞ”á1™GŠÈãžBü°îÔO[ãÐѽ‘4ó¶IÉúi×HÑtÕƒeFûQº:© þdôA…å´QôÀòðÿÞÌŒÀàF-AÞ•ÆŠÒµKV_¯:µŒ×t³ZÏòQݬ.·§ÐÎ]èÄñÕáç™8c;ïÏÑŽDöóÜ}Þ¸|é0%ÀN4¢ê$ ‰k“öÑ¿;2Ú6YJöèɃD Ô-œ|˜Z € ”¢yƒÎˆ³ç. 'ôó n|1Éy³Â!T‚#:èý 5–3ù˜°¸£âcMO–/üt<ý|*:kD3;IŠIqÉ@XMR m'£{‹$N,’ßN·}ȈޞI‘vß׊|ƒtäV »ÍÃe [‹^êtxÞZµ*-°ÐǤ–”ŽébþìÌ(#íQÛ%™*ïûŠTjl¢Íc øÕ™Ô+=àì×úMÖ®Fp>ÚNF_0¹ÞNÞGÿ- bÈ &hfˆ°uØ_àsÇ” —÷‹x¬bÙ–L”ÜGpÏfE´®=FŠ“Dgä¤<>–»À.KÁ-¥LãI:èÑ÷œþ|€¤´ÌU VsÕ®‹õ?±ËSÅÇ&ÇQÌåîýàM‰µ µœ½óZ\~ò¨Üà–—7J§&ØÅ3q£1¯; ”¦àuÄú¥5!¹\§¢rÑÄŽñÙ1DDQ0­ÃMÔ>ºî±SN©¨Á¹³:îyñÀAv䌔reo«ÚfÑgòú‚}µ‡ÎsNo´[µm)ÛšêvðxÝT»ž¬;À ÅwÄŒWü3:m8yÊBs™Å©qßî€&¶úd|ÔQ…\hâ£Îavĸ‹ÇXho]©üTò*©0§=ÆNy•„ÚÀO÷¦¦f9íPÕþ˜­ŒwÜ¿.&ƒLÓã̲¯Wpk3’€Ÿ¢={REÖRšTpU±Êå“TÒA]~ãšúáPŒô†4O8Å~.YŠ·³ÊOÛ¤‹õhkY¹Ç°…T0\KÌq±QI=\~î˜Á9ôÌqš À0wqWÑ,>ß¿ýB›áÒM&^BJ›e±~%·DGÕuì(çÍU±üú$êP¼¬á›%©ã&sM3Ñý£øôÍñôC%_Á¶©áÛ–3$9ÛHw¦+Â_Þá¯sf땟vhT†úˆ\޲é2µïÈjKê=†»$Ù-yε…‹O‰hÜqÙ.oe±AÅD?¾5øPVt¾ÖÒåfÕ¯ËàHe¼Å_ Öª 5Ãé“ ¢¸±y¯¶¾iÚà‚MŠI®­Ki†6>/6¹jÒ:“ †$òD6x/_çÍ4òÎ÷wKÂ#NŽÝϯúSÓdKlóiú1iÇZ{ÿinÂvýÆ\Ö ~îéê(|@=Õ} íw×–»éZ:_]]OìÐè“Éû$çµJöPɉ_%8¹±ô+ƒ$pÔÒvmK1ëµø…ªƒOO¿ƒÐD8w‚’Ñ]fñ_îOë›Ô°Úw«‰Ñ4ÓJߊ”þ©ÚcÀoIA½¦çzhµ i1í‰mùèm~«CåˆÄLI™ÇéßL!WPÇü0CòMáã´â•D‰!§Ð”YÂÎ¥36ÀÖö-¥kU7NlkkwÕ³VÚJ×o7¥‰ïãa=y˜ˆ8›"‹êÓit°÷±¼X ©>F®ùOI5¼+à¤J“–Û.H-˜)¥£j»Ì³Í~Çà]©s²bÆ·Â̽3Ûî„Û±jCfàÊãjÙæ¬‰R[[’£ôšwQ? úU­>-âøzï…Fué&)ˆI/¹i3(—áLùÊ/äW@—‹–jÌ®‰/fØX“óë|nkrÔáœÔäXTœ‡AX6º7·lèLG«Ý¢ìT!Ä%³©Û¤Ê.¹MÅý'ˆ·ÿ(–ÃÜàî³Ó6TÞÿ¯¥`ÐíRǺÐCÄ ôM‚‹å\Ÿä››¶¤Wc@þ~¤=öþ ‡Gÿ΂‹Ø²sèsxs“†ÈoT\q%sŽÔ*ȜЇ«»Ø¢8çúÊösÀK¾á“:ågyú₃¯­ïºÅÁ‡î±ÖðŠ¯€r%fƒ\ó"J^Š«(ØšôYµ‘Q¸¢döaQ“;ÿ\>þÚfÜïŽlòßÄe¬,¿9–h IO:ê/ª’» †nõ"×^&]ÅÑçÐsrb¾ˆ& ‹‡Åoø&“\ÖÑ.œ¬±¨TÍú+ BšöwÆ-6¨¼Ðvþ· #Y9ïº" 1BÛŽ‡"ñü 5›ž žsøYe7O²Æî=¥áù§m7.ò ‰Ÿç½6÷ºVÐÖÎ@7´ ÇÓ[3iŽ_´ÊùT9à{t’Ú°‘® ]V³œ@ܳž—[•K5„.±0sQ*W¼å+Ñì ®Ó¨ø¹ïÃZ`møX€ÎÅÖ¨?>ÐØ¨×}Íõ³’±¤B뉠&77¥¾([ƒBøB°Ï5ù·øê àk[(*ˆÇtöSÉ»‘Óe-L£ÀóÜÚSø±Écja<ý!/ºa’j[ÆýãØ5µE.x9±¶žØyù§»8w.'+Ì"r  û=sñ–n,æ!zùºêÅœ³‰‹´ÍñºÊX$ ”vº1.Êù^i¡4ÑQe"Ö¾€ €í5® tã{ÍgŸÞlOO©k–EÁÌ& »?…î°W`òMþÖ£d_ ÐU1PŸ~/б÷å=P¦Úø)>VVøZ“Ù¿F0Jh¥D0+¶‡Ùw›ÀÄÅö•­:Ð2nÚíwf*ú°Øä¥ÅÅ\_ÚTÔØß~ÒÍ{O¸"ñêÆúZ«Z²®Fä}îY” ¡#aZ²ÉLÛƒ¬#ãb×µN}íD¤#½éôcÓÑ!¯ Ö '6ò°ÅT Œ¢dŽt×µÔk›äa‹4øŸiqÃÀÀ&ÌØoìÅ3ú(€rujô îKá ã‰ÞP½I¶ AÚa±SÑàvÔðèòP±Ÿ¾Þ[¦œOòBhd{¶å,îk€›ÎöFÏ6|Ã%•ëJªp–ö#9= We§4½iå䩳¶wqºÄ…é—ŸÚ7AÕ$*? é A䜵G—ۜҮ+ mdÓ…“ÝýwìßäMÓÔó]!ɸn–˜î°”ØE»ù9!¾ÒòEÑ<’˜;1«‰þ­¿ªÉjá„È@—¾¶Ém¹ºtĹöA¡´‘¿r|ÈùDÊ܉!Ÿ"YšŒþþñÈ#Ef·¾R 'ó3è3â©LáSئðzyÀ;Ñ>nm\ŽµÍ“ï°±Ã2ñÒÕfap§ÌcÑA®{øL¥á7t©»„Ÿ÷;£Ê¨øgâïDXsÖÆãf0¶ÔÐ×™8 ; K á¿Nn¨”€à—Ùç èúç™4týF èľÓ&÷׃ÄÔ¦‰caS…(šœëàd‡‚Ôj¼¸Ëf¹±fýbR®Êé‚èÕÚ†U )vÔ ~XÏ*bx¸ÄžÝÂu+TMÙ¢=¦ŒûOþ/ÏŸüüû?²]´Êendstream endobj 576 0 obj <> stream xœÅ=ÙŽGrï„?‚0` Ë)å}~Ycm¬° ïòMÒÉá!‰JlŠ«Ù¯wDdVUäU]Ý3CAjÖdå÷U¿<“|*ð¿üÿWžˆ§oŸüòDÒÓ§ù¯><ý÷çO¾ù«úiœ¢SÎ<}þæIzG>•RNî©óz’^?}þáÉ·%&cµ¶æ0]]‹ÉG«„?èÑãk)-üÉþ+ï¢Ô‡ø[†à¢>üC&á¢ó‡Ø›·øÛ'­?¼½ºÖAO&”?Âc9I'äá†=~£ÍdU±Lœ‡ñ·‘ðŸ-ƼÂßZï%Ì?µ† k¦!R*%çíê~L»µ'‡ £Õá˕ӓðÊ æœÑúðžÍÆÇ¼d_¬ËÈ)H{øLý´:PVp~œëýܲ 'þD·¡ΆÜà:v²Òó§ïÙØãð 4®òýó¿<ÑÂOZi@²ç7€T·WZLÑ|ÓQœs: á­h…ÔøÎ7 ’^Ï“\Ë0Å bšëù_+¸~……?e@'¼ £!ºOˆ²<~ðÑÚ›˜¶`¬ˆÏSÀšR£é˜L¯æYl4Ž)&‚R¢~{¥<àÏ}M“€²)ž\·’‡øæe‚²v^>HŠuN¬oh«$^'?1цõÚÀýü˜–ØF>„ƒoå6½jaÕbÌ „Òó#nøÀáMZG8æ;±1òÃH°×ÖŸ€ý®Ã«ì­U±‚=bšr0• 3v²[¸eô‚™­—z Aáu:¡²â‘Aœ®/ ‘*ö@쬛9a^ó{žALÆÇÙŸ5ðülÆ9ø—,ŽùŽMÉ^ų_χ¿–j²ÖÊ™B×ÎW¶>ø²ÿ1|kÜ&ôg4táõ&Ö¡­6Ó<íðG†siˆ‰ÞÎ@ÕÒÞ·µÕSŒÅ9ßàS59S?æûôž5¶ æ¿–æ‘VeCx£+þp“¶¢æ[9¦§^¼¬óÃØ·ë›ïöZ:R*L6ØÀÎèú˜ËF˜R̈́ՇRÞ½ *”ì @<· ]Ö°‡/fÊZYÍÈð%ÉÙb†|]±j>ä·•¦å³–tôŽAøÅÀ „žœM2I xQÈŠnHÚ9Pç±0CÅ;Ì~f«µXKôv“&‰Ý.˨.㘄†À’|ªŒÁ¶ËÛf’Y0õ˜Î(!£Aù;F øå ää‡áÏßfðI=Ü6õ˜ŽNI÷ý&­>_hˆ=,BzØÆ"¬F=à‚Û>ü9QWSÔf¦žr 5«J„ËÇ3^#FZSôüpø¯BÛÀ嗙*‘ƒÓ¿q@ .qôfÖŠPýÎT’ÎETbœl7¸l~Ò·D8GêC³K| èÁ¸ïˆ…¾º"L±tƒøž ±‡VI¹OhåÃ^¼RQ£ï` Qp«ú±Íd ÑLl¥´à£U;•–×ZN6Û}d ]ˆ­¹Ù,L¤Yæ˜Æö0·aeÍÎoƪfâg—êŠ ¡`ÛŽóÔFðѽÈ|ß0N±žý”Q¦"É–M£ 1 ŽÆ£¾¿¥)p§ß}jðÐ¥@*®Qâæ–üPÉdžU)ñd>WÚ f¯þ¶EøÞ®?߬?ßw~\õWW'¬ß6…ºÅ ŸXèJ%˜½ …Á-` v©í}VÔFS؆ÀÇ®^yl¦W®ŠÔ9˜]Ç"WPÚûò7á¯ÕL„,«æT‘ÖsN–bU@¼ 9néU軯Â}ì"kÅ ³†œ¥Ž]ŠÄÅ¢^ÓGº®³Ë¤UÊ$ ³LÔ¡Èðù@ú–ºÆ?¥SÉXË¡eÄ/4%üZ¯»#.F¶’/rVÎÉ»ñ{Õ<]ÇÎTóXB…4µ$TˆÂ½*,:1ˆñãÉ+¥lìLpzÈl£|”Òztß9ˆ J(aá%Žu–›Ó¬4Òùè»4}åe“¦¤zl¦ñ*ò¸ÆÁm—n…N–å¢ÀâšUòîÇùñ¶»ÖñZíÅu˜Óß¡[ÛJFYW½É” ‘YLü]q>t'á@}H[“¥W°ô!à#DZ6~í,6SI:Fió\³I‹Êð}TÌ’2·Ðf‡?’µ½’51`˜;3š»Íý÷˜‰ lí_¦ùì8ïåJ U>½9OåËIzðV^“$F‚ƒ_YÇ{\ûExšgÅ3TtÀݳ?çÍh[QóøPY{”Xj±:gì§<4]ÙÃx7i¶ê%1<–>^fà;!=ïW&Ê=$t’–² ´ÏD‹ 3Ht¥Ô¥ì+‹ùƒâZb üDßáŸú´Z©*ip™Þ6p¬Óh#숩6A >aØ1í£ÕÔ·e H Àú«€F¨ ¢7È­@ÿ>Ð( r¶—¡‚Àîr5oƒª˜!μé ÞV£=”O™Ô*#^iphÜY„r~D„ñ2‚6àêŒð}·,¿Õ@B {‚¦eBOp@}&ë°ÆÌGÛ†–íäÆê·Ç¸ªÆï|¤ñrƒüÆqrÒU¼”G èÄ¢LÍÔ¢0L®5Å€™¶ 5ƒÉ(·í|Sú‘ý5J2ïòûLɰÂsIRê’fb_«ž SkßÁQ¥HåÑh&n¦NÌ¢¡›º„n5Ç ùt\ã6ìéM7šs»>}ÌÜ%gט^¥úE’ɉ&ˆ`—.”Ó´j1/($3·0À‚f›ˆfƒ ¬3¢p÷nïGäÅ£A…wbÙá?¯ƒ×å/cïsÊ´:üçUMÇW‘î6Š}ì á©Å°eÃ:ë9n[ž š@÷šd8ÍÝÉÑEu3.ívC¤=C™› ƒEyg÷S¼rþÉUîJfJ |¥—ÄٔžH£U ½XCsxÎöéU§j ƒa {ŸŠ}9p´%ßÈ$œÂËW’÷+:9Õ”:¶A­Ìµ¢>oôsB`àñkøóã [²†- ÆkaxJm=X¿ìßLÞéâe½D‹‚#µu‹ #j)GøªL–I:…T;ý_܇ë!¦r¼S¶‰B‘8 ô0î™°=ï®4óG‰@oîW{€ùï",þ,E“„Q…bů¯ªË`Ú6p„u‹Á¥ÜÙŽ_™¦‰\ÀSmv© »êÜ$ „P°Qî}zˆŠQZÄ»Z·G!ŠŸ„áÞœ]M=ú>æ9²iM·¾hìm6F ÖþG\ÂQ4i§w˜6dÌ;Üä¡Ýà[ƒO0£”Êv#C䃲N^Ýéò³±¹ªZÕS:1_­FG«ÛÐõû)tRõ£ô :< EÂ?€gsÎp:Cé ¹‚¡¨àø²ønê<Ü‘zø¢»îKÑñ¸3M¬J$ˆ ãÒŽ”0›íê ^ÊÖ‰*'~Ÿð™9v }T –`?E?J°¬Ioò:Š…ôþí*9¥eæ+rÆt‰YBsAjClÎø6H8³Ùv|¬s[W£? Õë¤/h3­)7—¥/À‚5ÆÓÌRŸà-{ §MG¬*å»à¼EcSך2>v±»0‰F.úe²«Üœ¡ÙËE¼Ë7jIøaG.ø2Ö;/ßõ˜‡…h_‡¶ÉmðÛúóÛƒðð´=LƒÅ”·fÍ·¾¦5Ù¶fÖ ßW¼zÀ*V=­:q¢\q@eé=¿ê–ÿ1’Ê—ë¥ð„´]¢ÛÍá‡i´_wTÇ/–m[bgV.›[žJž¶Ú 90C½špgPp[âĤÓã”8 a{ºÉ4-#úŽïKÓõ¡Jß}¨N‚3ºnå g,X J²†d'Qy—¥B?"·ål_^’Ћ5yF6ÞPGeY»Ròð4¦Õ˜$†ë¥ipÕÙfì F0é¦,¾L¡‰uˆ•Ô¼ç#æ|²Éæ,”B@;eFË4ÜI´u²s ®Ç©ãÚÄŠ\»yKÎW›y ÅR5h\vÃRŽ9a#žFÍñÉwˆø¼u£ÅÐèÔþï$Ú¤™í&Bè 4¹¸!qBõ`bP%yý@¢‡g©µ…ú˜ Øcj'­ÈÇÉÓÂèhÍ©ÏL”’ГKÐ~†µ0;?…©UY°p5!¿ëötKÍ*!SBR»¡ö1/ÞŽɃE¶ü„XÃm'VÒ亾Ë[u™@ÈöðÕAh¡ó&Qñ Í‘ïñeŸÞ$ Ú*rG-T“)A26NïMWÏûêµi¸AŠì!^ênF3ºµºð µ]'b†ÉïÕk¬õÌ£ÏNdÄ­ÐüÉÔ¹RûŠË—ž%ï¶©øâÈ\—J` 4¨äë»ËD`} ¦FI²(=ø^ßðøž"°¥Nêp.Ší¦>Koºh+°‘‹^”ÆÕ|‰e°ú6ûÝM}1€£Uè–#õ U.¥›±FWg*bCi:ÜÆ©†O`ƒd)$µ\™1º}•’$0ß| æÖÉ´LW”íÉ©.ôZ¡[ûkH¥Î„1+Ûè}I¬Ì‘Ní—l”#™³˜æöÁJ5`aagä„´A¸¿N›-޳Ç|a„·ÀÄ¿aÁñ“+ûo³éï6%üő¢×o3ø9¿¨›vº=hÕH·¯‹Ó”Æ.µ&àÏaÜ.A¤ÁNG ©³ÝA}“¥í6û_B7)yÍ:摊æÈ®ã8É?|‰úmY\é"šÍux\©l*€ƒ°uÑÃ<ë(ÛøSz1eø®C>2Õÿ\Û$î2ÚZ‰ï6NÎL°#¦R)ëôæ "ƒ=ƒº=.-Æ)ü™µ&4-†q^ñä ÕÑ Uê 5óïãýz<)’Ýœõëmºˆ*ˆ½.Ò ˜ÍÞ¦j¦2¬ª Ôx%7?ÁO(TfϾ4;¥ñ‹:÷ê„ÓaÓænÚ’U“+t_±ÇFÄkvÔ>W€ËÖˆªK=vŽ.íwåø)…vrc0N§U* –‚ gçÓŽœüZùÙÔÅùÃ3DöåÏÀ>'?z».Í1L²éc×ÅÝOˆø}r Oæƒå#àF»É‚ôQ-ee%lyiR¶ bTëå÷ÜWÙÌ< o»YÝNz­iN5t#€±eý!Ù)m *HU¢nRö_•¨[×÷À¥M±þ ÄŠÇÄ(<9°÷•+âh ÓmÉ b\—ÉwJ1‘ÞÞï“S麶Gñ±±êÑmúFÐNF‹©Zµ™ ¦Ãhÿ[ÉÔ$­ÙÏÞæ¼“©Áž¾K g&yÖ˜r0¡g'sçØ˜áb¿¦HКü+T†ì×K$¶‘YÝ8û™R¿OÕD“Y|¹ Èý-åI®†­¢‹;¸Zšš«ñ ¹“-÷6‚·B¬|ê[£ŸáŠžº›oÑŠEÚ0iYŽÎÏGe=V à)lSÆë(Özï\äfÆ/¸¾¡œ»}=«‚íÁ#)K¯°ò«sˈŸº¼û˜ÞÃŒ—Í~zøm…°SZà C,"Òc,µ¦PØšeÜ4¬×^7ålŠ£3‰iI­jÚEòh*Â?äÁ‡¼Î}ÙÆŸ'XJæ­ª»µ\—ùÄXãƒ&Ã]”àªñK&g;3sõA®%ª[£b‚òð e3œA„·dfÎ6·½vQq4¤ÄÕ8éж °èC©[Í‚ü{Ð)€n•£±o¶úÄf턼ÃUüäbã ÂÅM´» ÐïýìŽÎ hCœhM­ì´¾é8ê´å—»’‚  ‚Äæ{]eÞjóa"дäâÕøßÄŸH‰¾[#øþ§äºC”¾pr,ºîE”ˆÿl|š2È8áM%‰Lx7:"`½ÅäM°ûëÚ;@¦A@uËG{BÑh C—MúÈK¦5äë26‡Ñ@awaìhìWð°AÑk€æ ©}¨ì>Èᇹ2¿UÕA¶èÖtz8%@1k‹·w]ݱßð¹v}×Úg/ñ›rÑõb oÖï ¯©¤<2߬/?ÿ×õ`{·UÉüÓºÏëO–„À<ûìüZÏÄôìOÕ¡YÕJúùn}Íðk×uó~}úçõ)›—}«åÝò4‘ @Ò¨:‚ø?ã;K¢øõæí(쌤¹¿Ì…„pö'W—ó½ªäõ“$@º"ì“Ñ{àãÇב ëø”ÜëîÀÑqGþŽ3Ä”;‘ê·vP‹$‹gÖWö.éôï̽ÁC Ôµ¦{_À lêö8D[ؽX¾]ì¦(ƒ˜4…¬ÓRð)f—íl¢‹ÃõÙ)*¹zÂFQåF)TrœïvR¢XÅFF JÛ~5ÔRb„î7S­h¡ß,¬Í©O£C'ô—”¡¶ÑP‚›'±[} q„{›Û,«gËÙÇaDn[jøóeaŽ]Ä㜠ù5 :–¾»È±UëjZ# mèf6ìêzh°Ç®,̹O™¯î\”´BͩԹv^ךßüm ‘¶2‚%˜šfœCR÷¿À6bI ;©§7›)Î×Óp•hä^¶/ U7ÕõQj’U>ý`'£òÃWy'`ûìjWNI¯ÊÆn->s$I ØÍXÎ38(ä=Q&áŠÅoPwìÇ~yv«÷ŒŽúJIÌíCsˆŠãfÖòˆ¥ãhÛ‡“4}7\×=âF6˨–šhFUWÕm;#.åó9ðC`£L§Ï©á¶ÔgöÕÌ·i:L;Kq„0›eéˆæì¯FáÔñlIU#1š[Ç|¿í1íÏú‘ýÊ=¸|’¥æ²,ÄL-Ïð c)É|Ý,\œ¤êõMàù–AW–ÍPZì»Ú¢O§öUjïs¾¸Æ›%ª»’áÀœöð/Wå÷VçC•PÁ±Æ¸¯cÀØm'Ùiác‹0íA­Oí¼ ›¡)´,L¯é1%ñç;Ú Üåš’.iY•›ÍˆK·R¬úwaq×bþÿ &)‘ô„¨m$ǧÀÏ;{ò-Ó‰)!D˜`‡8»V¿ÀªÎÐs¹Ÿ­‰.¿¹Dhs´iÂgn«4Ž m÷ úˆñû8d Ôȱ°$9@»qÎJ#O_Ê¥è5J›‹“utÍnö~€DFÌ𮃠Ï÷ün®cª¤]ê¶[S£ôþú—Ýü¦ÑÐÚkR;¹À“ ±à†üå_W0Žç2mD_¾ZUŒkÒ{`;‰ ¿š;ÂàÈIÈH0,Eqír(½ïáµìo©¿‰ì½žÞ•Z_¾édÃ5ŠÇÌL)zÝLX~âèÿxþäÿà¿ÿ~Ý6endstream endobj 582 0 obj <> stream xœÍ=É’G’sÆæ#ê2f¯f¨œØ›S·¤¶YÚ¬mZÜZs@›‰ýõãîé±åË* $ãÀ#ÈŒÅÃ÷-º‹¼ø'ÿýäõqñüÁO$^俞¼¾øã£ÿþW)ôE\¢SÎ\†<± ÊÚu#tâÛnDû¸çòuK7˜óQå©Ù#OØlyfëD%ÝÃ6žáM”ÄŸOHë¢ñe[ ~µžýJªÅZ+&”Õ¢‘“‹’ý(þK"5©ü¯¾¶ŒÃÆ{¼p„³p* °Ÿ˜ö:­-ä…ó,Hlî_*,,Ã/ò|ÀP§¹’º ª¾ï' 'ØÔÁ¯Ó$ |ØŸúE~VWGa|SàŒnã™ozÎ7 ÓV“K]Mùùjûùzûùóö÷$ ‹‡=­£#6mä´ZW{ˆj¯oùY:v–BÔó§é¨"†‚>^J~ÒÑé ÀxéºÞ×Û6Ó9\ÐIçÑ÷Ûè‹môëmôù6úneÇ;š!‘S4‹2®!§¯7 þÒÂÔÅaÿŸÍéçûíç‹íµo¶ÑëíçóÑõŽîÉKœ’+à€5D¸:$óí.ÎénÈİ(åödЉq‘¦¢j†ç¿²Ëçk¾¾<-±"^mVÀ#ÑV‡ókFßLprªYw-Mƒ™¸Q!í—”CeùÏ }¬P‹á³K’¥ é¢,¬f"†ˆV´dÓ²¡¾,ÃŽyü7ƒÊYãA¹G–¹‰mjG§Ó[)×Ì PIÔýû&õnð½°€BÒâ?Ngä{»fùpiÍö‚lžƒŒƒueáÌ•`Õ”„ZA ;Uô˜ˆ¡]ßEÆ vB¾}¾bn„ü¯˜*ÅIïãedÕ0!Ý—niù{7Œ®ÖM1‹ ЗýÌíï$IòQˆ:ŒËÔQa¶2ø_µåÀè¡ÇPÎ#Á®Äaeì¢kçgãÖº“ÚF-ܤ³ °õé_ð³x==ü¶CIæOóKH€ècÞ‘÷ L[òzz‘œÆøøàyTƒj¸ªrÕ(9„9:4Y(îåøF8Ûá$’×H fþ/zÓ SÓêûïjµ™‹Ä“áÓdmõ"lQÐú v@äãL® (§¥ã-¡¡Ü–䈓'¦ç çtäšý–B“ü£Q³É ?lÉ0Ã* )ãÈZN¬ (ð#2ë÷ÆÂL>ãJäÆuV†ÝÈÐÉ$X?€^úídý9:ÌÐgôÁÜ6º°‡C~BtÎX1—´3Úý˜Žê½ªŽZî‚;¡gxš0:p[+øœm´˜ËŒÕþ^6Ñ/Vð®üÍ|[¯²·È-2s³Õ{Ô‚tû–q.åè××Òpòš_ ì‰7JC?Í<²aïr‘Ê4„òaè!x·YžÌ-Àl×7ÛÏ' !½Æ,Ú_wMS*.ê׸YÖߣ³Iøí¥ÜL‘ÃÆrw¦dö·gê¬ô;ž‰á)nYÉv¶r‹4jƒSÀ~BrÄ`¢kŒÀ–˜‹¹Îí#"ܽ¯´6¶N GC~%aX›Ïç;¦éwQ^GM~ïÄ‚ÎvîÜ€'nšÆa±š¡D×ìÒ $Ú¤Ö7¶ïZ íüŒi/rìÂÞªfÊþŒ§GLôvj„ι?š= ë‘Ù õnxc¨ùPTt{«?ùqxx2ú„o„ÃPyÏòÝ…©³#u ¶ÂÌ‹„¸ƒ×Œvk΄Šf-u$=>€- Ž |¾IØhF{ª ›’ëËÕ•Q.þ^¤÷PI8fãÓR©"YCµ¬•§“ׯñÄxãt´k˜Õq%íŒ[$/œªÀÿw&4[UX¢×±Õ×aT'™¯•¼röïN’ !c—Ïfo8+yo¶Ÿß7PžF-:øâú74[Ø7æ$7h|wÉ­îNDPRs?^Pº·pˆdŠË{LEôJÇϳ4й fÕº{žY%åhÓ½Ÿä™Up`©MãÀŠ(hnÇÏlÕ‰¹ÈI·ñrÁêÊu¾\1¼™™NŸäËÀêü.àê @röXÆ7Œ“H³kGqÎÙE…Áü–ߎ¬纓’L*ŠÏЫƬ冷1QÅ& ÛÐ…÷– _t‰.ÜLs¿N·æ%[0GÝÑiÞ†>¸pšd®pŸÀÀãÕ öÖ™/ZMËÊU­àÞ­´ŠH¿8#›hþ¿uíñ9bÙ…íÍé§»HŽX§~ÿ¡@Ÿy}玜¡EBçŠpUöƒ³‹v$‘ÐçuI×é èRŸ¹;&j\m%È6íGz÷Ò¼OKFó?O0fæê®×Ì nÍ|Ç„Gj M µòŠ Nn"e`Nù¡Ï2ç³ -¤Lb 5‰}Ÿä­J-­— Ö4ÊAîI¸{¾Î8S…ŸfÏYtÕ?]¹DÛ/ ‘Ū8OVT)W"Ñ>µ¿ƒÓ^tÍ®ïf„ÖŽ| 2mvuŸ–¨ÌÌÝÐDèËïY~ÀÌì™Ç/ò¾hžY?‹ïó]å{ÃXEÐQ[¬””Õücy6÷èèE¼25©‘ 9Xº7Ü*Š­\y½«ýL솧@QC™î•HØ£kS6jèyg`ŠÍÂÛQ’9@Ò@¹ÓÇè žD/Ac:YMÑ×=L·šø×M=\h•ŽF”Ž‹Â†MX»ÈNáž¡PYÓÊ ¤pþö¶ë0$ß'Ûòº;’¡KéL—ž†B’x´<îIQ#ªŽTlÑ^RIX9ST³ LG­e ß×'™‚ÁOü0Åúl”µñV¶»çªÕ 죙IÊúžHÅq’e/Ž=:#£&Lã–ÏË<››€*Ì?Á¬–ïÇ,™±Q³ŸéôR«`Üà|¶Ö^'`œ±ñVàv§ðŸç¯ÔÂÍDpN‰’@3º³H÷uFËUÓÒ{p‡aP­%§²‹cfº"J¾üy}¼~_FÏ'§.õ¤œ4Æ6“%e`v sdìe:áO2=ãÜMRó}†cË?EsÁù¬è*<¢€áÞŸãòk`”I WË̺²{à€Ž73‰n oüyhçÀÙ ÿ)á`›_,é"lI5óÈ7‚Fï6>ac­Às÷ ä¦ v*•x‡>ž:½š ÁœÉ€« À,úLa,nB`Ù”¶­Ýª½ZœÑ[†…¹ð&<3€¸>žŽYÑûÑ-zäþ²ƒ5¨¹Öºcyœ¸iû©µ:(ø—šå<4GÇý¹à(­Ã‹%ø{ÒgSº0˜‹›ÿñ]ZMY? æpH­û!~XÕêC8Œ©{ÁbºÎRªA$Æ«`ìÍl¡¤í×¶ýí/‡29CUépú‰‰Þ>ýi5åÈ3k:_õŸ‹Óg0ÌÝÚ \¦)¥P½ Ü.#ƒ¬˜¤Z”e½ÂÝà‘ÚŽXjX¤ô±8²f±ÊBð;u¥Ï4ø§RfTʳâ‡ÂŽ„'Ž¢›”½‰7|Ì¢%ç÷ƒx0é´“¤ë‰Uô1͇<¯ö¼½07is¡v3Ÿ7TM64™t‹Á’jE–ⳌÍcá8Êfº’0Km êÞµ.­"œøœÖu‹¤ ˜O…ØÉ2XÜ…xo×ŠË o¿/% ÷§Ã”²†Ê½#7ÌSÂì"…ZZýŠyšêÓõ°v¤„µîøÉÅܱÇ`7òÕº–Ò[q›˜YrïyLdÔ£þ³W½Pû€ÔàŒþ7.”|õàñ¦îŸUP6Ñ×Ig>{ªêWÁ-Auþ EéLzÒ›Ç*mhº¦î kMïÓ|J…Ûf÷ÌR¾ëbZ3¸ÝZ¹.†ÅƒHü‘wi:£æ>ÑÊw›|ØvMm%ØYüq\Í‹‚?ÚÅï‡ÖËãÈ=ÀCRY~Ä‹bB±$ &çVDT#Å` ™ªÊ5²«sº¢R/|gnÎLŠ öÙÉ«l)šÝó²& n‡YÙ¾ñ‰6‹Œ],Ò´t†ÃÒÖ(@.¢â¬pD¥ÚJLjß3)0½•ÿÒg"õe e…V Ò…Š¸zºt¡Æ—Œš…Ð^ÙNŠ@œÉqO›¿O‹JpkŠ zí-¬©Ä+ r¦-tñZe|e>5@YÑw@Þ$¢ÆÙ])œlnhuâ[-›ϡ bŠÊ0µøŽº Zâ E‡’TV9Ñîöü0¡ ºµqBö)‰`6Ê%¾ïJ¥0µvË1½‘u´/­[ÖŠã4ðö@s.„ü¢¬cTs@›“”ÍvGP§—%$h >*¬3Ý1øË ­GrÖÉàiMŽní`WmzÄNZj—Âz8§K[¬O*Ù—ÿ‘Ô'挱Uœ=Ns¢ø,3!ö.ͪ¤žãK¬bÛ‘^œi}®bq-k¼`I›i¨g6@=Ì57Ë­oÜeüCaä#À’³ ÒYêJ}@P¥|SžŠ›*8T:EÁHaZ'MQû?’L¶ÁÔùI]T`ï3Þ¤±]ç u}u±Sð¯ŠþZs‘Ð×7ð+»¾²‹¨œeæ²n°ñK5Èê±à X“Œ¶W9 ëgïa/H9+@~2zº]’_ fCY±Ûá'ñq˜ÜÖ·*–гƒit3؆Óò ³Š*fU¼ešÞÌÄitáišWa¨Á‡’‡søÑ¡š¶kƒ®d&ƒ({Ë:Ÿ'‰7W0£. œe©ÞSpËJÿ~“#.ÎtË&¼jav ˜œ¨ìNjYºS®dð¤g>þ»#*xý°¯µ¯ŠÕ1¾†| âo·ŸÌ1øÇíç/Ûk/‡÷ËVS˜¹ÈýÝiþîr÷Z‘oXÖe›p;¾+Žš%>M¾5Ñ÷‡@wž]›%N³;ù;ã¦S‚¦Wö]áÊreP:=Ìñí„ h¼û¬àâÌÒä«peq˜Ÿé^Ð֥ޤͪ¾ßì.w7ˆ‡ˆ†;?ÛÔ®a=AU-KŠ ¦¸Â’¿gËp·ÐŸKq¾R"rhsˆ™â;ZCïãkìËYûËFÐ a{Ö%Í£¦VkONŸD©LîÉ`¤ŒíX×ñŒžÏ€ðeþzº~óîú黯^<}òãwHÂ~è(÷j}㊺‚‚ä=Óâ![åãþx-,ɸʛ!c´6ýüªálé5ö,“F?2fu ÆBBh90Z'+†Éկ㚆\JO€%¼vÖ*%º®Uï3 \eîŸ1‹#iß i肈ŠÊJÚrH0DJuˆØVð\_ÏYl5ÀÈ5>ç•Íp5ñ”ï”0¥ÃUþìg—)¢*.®MóéZ4RµµE£ê t;S@®8+¾þT;àf@£UÌɺE ç&î¼õoyýRP©Ö¸ÿ/W׿_$T&Db0a¯ž aå¡ìÞYe¦¿üšO&í}©ƒæAt›©2b¦Qï§ .†¿-³¬b­D¶g'Æ~E}ŒÌnòùUºm”¥¡¢" ãQ€~Þå¹Ô¹ªSÚÖ-{Œ{Ý11n]·DÌû…µŠªè¥H­Î±ÕÓ.?/ss¤{—Þ4²Š/NšÕq iõKß~CYÍëX›n=NZx”uügÒù¹zØy;Dd1­Ç%dµnMöY‘¨/šº:’çï®®¡šìÖ¢"¬LrÁÛƒðËmÔÆ”¥Ûž @ž£WuÞÿŽWÇ€µŸIF;_¨÷++g2:Pœð30éõp]0š6*œ±ãƒ½ÄÊ3S†–5#ýP‚â“ó|L;”VÏk (éÅ`ñ(*]Û‘„¾­ê53bÑŸ™ÓD3òÆdv΢BªÌ3‹i¨s¨,a{Ì[åúVFȺnÎ ˆ”ÄŠûÔ¥ui×1½Æpöw§j.©4xÒ¶ä{T´Ö«!TZk>e˜jå©oß´@RÛóíb&z̽™?Ü¿Àšà0ÇèæT˜tÙ^‡-í›k Ó:d€ªT²µ˜Ñ‡Bo!Þ²‰¿õ˜ úËöó¯ÛOöÀ7ÍÉßÏ@Ä<ÊÞ~þÏp”Mö‡íçŸö}1Læ­ºe%6GíS „j?ÌCP–zºÚz^§‡M”µŸ¯Ä5r¥¸Çæá¡üí¹-S ã$¾,£÷Ÿ?°ŸÔ V¼ŠÃp“:Û#fîýÖMºRR›ÉÔÛNžâ*Ö¶mí­ZîB·‰M}èÕ.€€œËz¾C=h!ØÒ‰ÚìxR©ó´oot}‚‡A#g·=õçVSS®ÇŠÜÑ'7ö>l¶å?Tcã(E‹ëo+ŸÔ¾uÅeèœ-íž©á,© yä5*µ“ ºü2+æÊŠº¼` jÓïUI7µÛ…/ʺIîH¸fŒ£‘.eüE~z¿²?°‚•õ<²Õ×˯èOÃäN^ZM?¸õËh•Îä'úÝ„NZQϲ~Žt®RØ’a3§=Ô ?ä1á[@ƒ²­¤yÂÀ1˜pû §S.4®Âòב´kïm¯\p²sØù®½r5k‚@rFØÍÈÚÿdU2Q°Xé¸BdÑÛ(«º‰žŠJ­(*GÁÙsסmèe!܉²;3«u}Pƒ¼YŠû‘¸VBv£åcó©²לUQ´0§Ïœµ¹ªÉà’XŒ8×W÷×½¡½íäyºY‘jãF^Ó3Ñ`\ÉRÂ{ûÔ¹#{x¿f"¿YÜ©+Ê@¨¥Ö$ODýtÁŽ6{ð+t+«Ì ·êrúîbhu—»ú6Òg&õoâÛÀO ÆX{í¦ÝøéÔ½/1’£0'-îs:Û9ãOhŠê[~çÓ6ü™²\Ķ[5!]¾Œu‡¶‰ª?ö2÷fÊZ?åÈ MÍC@løáv–,ÒIjòàèÅ¥*²H½[Úï™Rþä±äÌÛ·‹ÃLÜ1¡R#½ð‰aGîÊñ7?ºŽ¸=©¥XSŸôƒi»m$dêãÀ¸ˆÐuÂ鈞g4º'0(õÿžX#½¸WKQ†ÒHÁ´ß]»CL¸éˆÓ} ùj] p°bãL>ÎlÆÃrüqæüýdúZ0û:ó“KÌçÂN?¦£“…æÎ§™£äŸ;æŸ*ÎOÓçŒùøóm¯¿™,3K†|6×liâ(‹·Wº˜Œ¯²à/³t{ª SdÍŒ¥ÛÌò{—^lËêsi\Tþ~¾ÔJ³iòöÜ=sÈ$ÿX#é`4Ú3etŠÚ¢ìŠõ95·bàb~±Î#pøi=¬Ì<,Ü\ †yÌâæ+ì éUȳ8Ž ¹/£Vë(Ø*DZýØ6^•ˆ§½îþy÷óCø¦Ú‘@ð–¸Fjå™îdŸ¶-3/Ó­8"jäb¡¸‰i5Hö--‡é“DÓ¾¥thì8úBòCTuw‘L|§ûFŒzu¼BÑð ObÏ7BœBûZI&èªòØžWHp¹[ªm¦í§äÓœqVÊq® 0±Â¡–7첞»ë3þÅÝ%ªv—²ì=®ÝÁf­ t… FéÉbNþæK|ŒdêÖ¼ëáZrºßܶچrwK[±´ ªQ¯õ©I;ó qÖ~“!aç-'ÖïßHËdv+‘© ¹·¹Í8KÛ›ô}? z[B… ¿Ï7²A í#ŽP9K²±nÓ1KqtIwÿú†J_êmotmÅ>¾k£=00ÕÚ‚²¸&Gö‹ê>~m€ÞƒÑ碥̿ûÅ`•Y—1+zã§96,Lð,Íáì4ïû bã,ÁéOBlcp8ß"62ÔÌ¥•ê½r¨¨Vn÷äãð,»‚qX4”¢ ¨Ñ,k_œ|¥ˆº—ðFÏ 1É}šÕ¢?®ÑÕbÂì“P\Ãd%ˆ@°å‹ÃгvX ¬Òô’X~âóß> stream xœÍ=Ér9r>+æ#xqÄãX,c_áÃx9Øaf‚·i$‘RO4I©IIÓš¯w&€ªJ `½GRšèC—ŠxX¹oõ뙘ä™ÀÿÊÿßݾg^ýúJ¦·gåïnÏþíòÕ?ÿ)è³8E§œ9»|ÿ*ÿDžI)'w漞¤×g—·¯þ|ø|~!&cEúð3>[oCP‡ëó -ÌŸÈËûó 9 gcÄ¿ãï¢ åÑ /Üá·k “«Ã>{o,C—,càþpGVúP–òpC†|<¿P~²ÁøÃ;²ê›sxÔÚ›ˆ£µp“z^Ó_òÜÚhy¸…ÑQ°¯×0\L£§“Ü‘ÑW8¡„’»&¤Ï0ešÃÉBô¸Ú8æ2‚®ù¢•nN¼Àç&¯â¼ìÝ[ž:AÐÖkÓ–ö¡Z½“v"ñ6ÿïò¿_)''/`Ùå`ÕÇüw!;8“gȫ۠¬¥Ç¥àûD@\À´®ñ‡L‰ÛÄ÷ñ­ƒ~ÞÕW˜\:@}Ä5x´.h—V/o¯Ö·Ö·7ëÛ·Ë[\ P'À_âÙ…T“5NæeòÜQŸÇçÇûôSa¥*­)ÔO0JÎ;E´4nÒÆ Ôè H*íµƒ ¬oÉb1þ¥`Ó€Æ(7ƒ:½=WpB!Î6Øîó.Lc™÷}~ëtEÓõ< ÍUç €Õ_Ó&tˆí3q¬c€ËÃIx×r\2î= Þ =ÉV®v2»å™Û2át~a€»(Ààˆ¯¨€\Wa®"YÍ]nIÃÕ%ZôqRÚ̸t›/9JIù@Û⢄F¡Ú¼V~¾u©b\  "Ž ü$Š©2ÑX[ˆ†ah”þiÓA?lô=Ðïa#œ ûÃFm$°6#éïòÚJ©ÆtyèuÙ¶ô¶f²Zî´_øépO¶ž3@ê›ÚÏMÓ:GpSÍ|ÍN3s#,ïãúxµ>~XoVÎJØãíúøf}ümyì1M'ïV¡LøÐŒztGù.l%Ú(1ý­f%w ‰àùû­ƒÃýÜåæ”ýÄ $d¢i7¼U6V,š +=ò›2 6ðú—ZgÍŒâeJpÌ §ÊþeéW!6"H㈕½lT”,ФÊ3„I‡Pq§+ŠI%óéžÂ>›.¥••Ö¶DœŽ§~Ü@_ãê ÂU" ‚Ýȼ¬;7—•DF“@-”t=ƒÌviBÔ‚Ê7ä?¢(2ö¿Â`%D4®Âû;B¨äk‘Èäyý3y~³.™aé"^z9/˜É~ž=ÓF9 +_( Z®5ǰ¹x³)Qõ¹s»E¢ÒÀ#åXmƒ™}ôÓ¦Û£øC/“"=ÃÀ«yèRßÊ&UCøó5w9¿A‚µ3~¼í2ë‡õñz}üÚŒ¥:5ÇØA] aцŸd0ÁQ^ÜZÞOë5壾BÏv!èÀ²/€˜8 þ|!ì4ƒVr›þk'×?ü;¾.„–Í@Ö|@`pÀÑ´¾+×Ç“`¬!ÓÝ‘ß!Q™˜LH­ÀÈs¡Ì–(ø>Ðyä$·8³Ä±_È #¥—VGä¢ð‚‹ºz_–wpkùöò!éNTMTÖé®É¦D<»üŸW—¿ÿóáòv­•Mv†¶·\DFÒñ¥ñ²ºQÞ‹°ÐyMÍ(:„8CÐrsïj ÃT5ÖcQ4%Õ^^ecD3e5oÑ;0¨_Ëfyák a Öcƒ§Š¬s‚˜=}“ŠNÍI:ÐÖOÎúJC!¶ekÿÁ¦`ç%ZôŒâ¼ðÀÝâÌm>±–î¼Ï±q‘¯ Ö5S4‘J°bcƒYü-ŸÂô¸NjE{qõ­ælp†NKåïEÞš>fa˜VËBNÝÍsšè EÁ\2uéÐxB0ìÓ ©%ìÑzH9šÖ #;¸‰TƲï×Ów.¦öƒ C{N#£dyÿ›—ÈõgÊ10ñÏ8ðÐ!Öà0s0ê_¤²‹U·ŒÌ©ŠˆÒQ%½Ú¬®À–1¬R^ ÀììshuÌ3à xÞ°C艩–È‘ÅCžÒ8y-1ð-Ï ¢c‘ acï^Ì«Éåe Ôiá%EDú¢9'ôßú¸6÷“)8™J²gF~×Ww½1nìzõͶqxÔ#LVhüˆžÒšªÁˆÙÚ{ÔØ8VòŽÌžýü‚Ï-¸*´"¦UVöhœÀ£T´“7†³¯òND î݉Ø*+1Õ®»Í„Öô‘È“AçBCùÀ5 mQ&‰™û¬ Å{®ó·ñ§68ãYòl`‘ ;'ëŒ2>†gT¾@`z Ô§x—³L+¥"ä¥Aâ %a‹Oè¿Ò +ŒÎ>Ì8y"=:°:œ¢%´Ïet-‰7‡y(mx²g¾ANÿŠî‡Ð3rQã8™Žè±_ÏØ –Sµ6Ê&%'´s”3*;s;»ÜKç(`DiE¯ùHû7«Å~ ~1úC'ÆQÙ[$­¬+÷&›áë U‰r*íW”€(0Ò”Ü;êN¬œ<*N:Y²'SxÖåÂp3ýY¨-´ÖˆIô%áDâ>Üþ·óçEvüz]¬ë¼°º2ë=ö|õ÷ëãç®Kç® “¶c‰'hõísÛk-1°Ðz¢$®VZžútQXô`Ê#6|º<ß:ÄG~± Ð=rJ@ä¦!û®;Cg @ß/; ‹ÁEc’¯ñò¼vYßèùHôÁ>M“GŠ…Ël9$Ȧ]C‹¬§3q2«9ÆÍÑlUÁY¥®ùóËZP`wkÕ†«ñmKï=žAùáR`VÚ§Åû* 0%ì8.,ÜÓñ(¨w(†ÑK"”}R:^ bЃúš~Ë@Ú7?M‚ÈbÜqq?r„¨Ú9N¶. :.ÚHm1Rz(ªb°D•,ã6¢ï±Pú2Ë&¾Q ±;¾á N5T°ahŒGÜÚ’í¥1{Ám‚ˆÓ”Æ.вæ3¨zmž8¸ÆãÇæžÀ¬“ÇåžlSÞ\6 ×:<8þ€Œ:ëøØÍ ›¡ÁÓeó^|q@] (Îq<)%ly‘fæ„“ù`xÝ/5Î@9Á@¿#‚‰ªË•¶Ùóâ%ì—w_çbÞÏPHÍÅ“q¨zF€©õ‹³$V®Å G¯«ˆ™ˆðIO#'ɱåíõúøuðf}{³<ö$¿†g¥CE®›înÀ%›œŽ¼öÝú˜40]´Î*L~ûa}¼Yßvgx»Îp¿¼íª0pÑp§ó~þ à´íî>¢ &ÊÌt+˜óâ×ëÛ ˜›“”è]œ ‡[4¬h·F»“+ú¼Î^ ;02¨ÒÄ) œjüu‰4PºKú ›0æ3t±WñãDޝW2íªÁ†âÐêÏ~l4×üöóú–Œ%)™Wݱ$|¼jÄ=°ƒ*0U«IÙk[ÁË¢Õ¦4fÔ#(A33 ¦ë'"=Òì[¤é/¿á„q²±ŽUöCMEÉÆ°„¸+TÖ.èçuS°•;ƒâÍÊår hâ#eß_>¸®©ç‰ŽYlž Ù–ÈäëœtìÝÆÌÏ×öx]{â~UD¥'i2èœÅ¸Äc˜ÔØ#Ž» ½$¾$Yëìò%ÓsU©²ÈQNV?W•SúFåì ÆN™—¢ŽÖ¢û­y ±vß"˜Lh¤õ"ñ˜q:ß0¿ls—Ò2À3£ö˜ãиR»ô@1©ã²šy©…ƒ®"=ôì£% »ÎG“j¨Ì÷Ô¬ë pt­ny)ç@šê1x¥0ñ2™ŸƒtyÖ…ä€Ìå*X;…%Y%×W/Ü=Ün¬RÍYPR¨ùþÐüa2ÚOfqMâm´î¢ƒKÉù( ö+5ê$ÇDQÍŠ—)Y¦’/ÃJŸM†@Ú—œ²7h9ÅñùY£#‰›<"*óý2¸RMœV,?ýV.È6þ™¤KÄåÏm-„XBôøgÁæp×ÐÈRHÁÝ"…–ßQùMƒÿë†þ¡S4Éqx@“ÉÇá "™-%|¤dö¿£!JJ&Ž&Z@ÓM)ímB4GðO‰ô1©1‰6¨ÜKš>f{µªx“•~H_¿ÎáB³qˤ„UÝ“ï½\Îcmst²ñÁgbs43ÊþÚ.4‡w…|ñ܈–çä‘$к¯Î†Z)𘚆،Vöˆ€†áG©¿We6鈺nø Qp€.nS9’v(t«ˆ÷0žPøgüaN¦BœÚŒÔiõøfqhûÄÜiŸ|ûº¡'„¦vÝ“Y1Ì;·µ7 …Q‹«èT·r›ú‡Ñ,ØRcï‹…/‡ü6Ê*Eˆž†¨ã¤×Xñûn +ðX¹Ñ 7$‰„}^¶;ƈ‰\«÷­¯órñ,4`íið5æntTœFƒîH ½ŠÇ<ä 'T“3º}Z½›cX¬¤í‰è•wªŸ_5J×.R4¨Æs\Q¥bé´}à{½€y’ÍMx6¯M¤_ …P ¯%¿Ëî¥ówã¼XkmÂFñ^Ü©­w3¿½Z7ÞÍôömwò¶õnÊÆ½ ú ôŒ˜ÿ:öÍbº¦‹vÍLî,C·ÿnßöOwÎ*¸ühÁ2‡¨:†y’Ü#od€1vÂB†“7Š“÷X²üHšðfëJ¶`YKY;Á§vÕ»—ö„;°qC#šr5ªIq> ´`±D[Vïó[¬ûN~§Mjº“IìÕ$º3. š*+Â$I6FraâÈ «g2¶+É5Œs"N ÿ^pïXÇ"‰%1ÒƒO…§{{:_m~wë]æB¬Z¢h`íu‹@ox°žX× `^Úí>€Ð/`´§} â´åk ’N>VžÉ˜%Êh?"&4ò‰SÁÍ`€W麖Ç/ëãíò¸“릛à³|)eÒâþ‡ &­$!̬,*šj;Y<1.ÆÉ›MùèŠÓs?Õ’LØ&ñák72æ>[/º£]«á*u€8S~:¬»î#£W4÷å)ȘÉ"•¾¬3ÜŽ¥’I1M6>Û²Ìç5ñ$–óÓ9¹Ñ<ÇÛÑ{äN¢Ù' ïÍj¸:’‰ç ʨ™xFäÜÇ=´³1üVÆ·ù°»( v2i«xóúô„½\·Ž^,ÐYÊG¹b,™|?$? ‚ìD]í;«ÊpË®ß+¢è‚);dfžuù4µ]ÏÌ}žFØ]‰ásdp]§s›ŽÍréÛÖÝMÃYdÂë· rnÒà®ò–§qŽ‚*]¤ö—sìI @Éá0eãu&E„F"¨«äÓ} Hø;%¹\Ï»>æ0©¨£q6¹ª,€´9ô³åý³.Q€^B4(·q»ãÜJ²EÇ‹c—;80·Ä•7‰61O0Jý*y.­~ s”ܽI›_»‹±Y-pHí*ŸÖÎíT)xŒ ŠÚiÿ‹§ Eå1’%&){‚dI=ü éEO²tÊ^?PÒh1Vg4ŒK‡m^;Yg 0Ö FªÆ1ê¶AÔ£)ÑlÖªØÙU×õ›“Ž’“ü!ï;‰´fŽNpDº°U=쌳K@¦„ìWµ°q(2¸O^€K«²÷²U)ûÈ ô uy­ðl2÷5f`õ³Ú4×ÒPPÁ¯}c†u’T¾M>™è͆½b †²œØ -©nô©~Fõ G6sÛ$žÖÆãÔŸMìí!Ï¡ä¦Ú'õ­t{rbjOƒÈ½íؼ–ÔG45òérž'ôHË tSPº‘¯_iAÇtçúJRÕN‹J[U~aöÀ¶°cÎç«ñqoH¾7I76vb·­ÑŒÈxè ¸‚Àc(gÉçÆÝײæm7”?ê@ö³0m#Áª .y™pÂpªLýÑÖ~3«x´ûm'â¾ÑLvvÈÅΑA»ÝÁñ£ˆ?Æ`‚íEó͇0‡Ò¬ÕÈD-˽#ç­ÙÑX1Ëå=Ûwµ ý!UAÅ–ÉG©m™gÌ€Àö(>¶Pƒ¥d¡—Ï´X±Ç·¶Á¥?O;%F©$û ×qíþîòê¶I4`ôþ^ T²]ÞϽazY¤óNp„tcdAH°èûL‘ªvÖ&J<€§WÏ´\N[M¸d«e_=Î\~اw7×ÌÎý©0È«ÛÚQÒxËhR4¬3ÞT e[AÉNãÌr²ZªpõmT©§LŠÜyÜ×î×›êOÿ„#@ ŽÖï¡:ƒ/MN›¬÷›ïì:ûÒy“è²²Âsž‚ÅEvUvi·d&ÙlÈ*{pd'6·‡ÜsÈÛfUf nX©ØU3îóO]Ê¡Ë4#Ñ3>pÍ)¯ËË/‘žZ-•¨Ø¸Å° —?ütOÞ“áDßjìÚ!óaØ„ÿ1ÆnÁU|A·7ºAqC~÷MQp÷Ïš3üÌóÃ0ÒïëÝ)]·±›s%&]}'Õž¤+3)«:*ëj¶hPÃÆ/ ;GÛ‹¬¡Ê%Íï(}¹Î·²´Âìô§¥ê½ÝÉ,€/Œ—© 8§³mF)'Œ8†Çuio Ýd‘µ¯‰¨A| ±NóÁYõړΉ³8·mÝÃʯêHÊò»ÖšÊ{òœ.5?´OBbxß @‚a·ño^`zR=ö?Døˆ-9+,—°Ú‰ÈwŠï’<Šèì6{*ŽÃEàÎùÎ?å‚éÜr›L ²U>è|G.*![ÓhÖ>úIBÜG±.À C^Cð¬L"QÛ; v¢TíäYYÛó¥u¢\+J1)§ë\xI•§w_Š&Ÿ`é@k üŒE8ÖÍÖÔ·=z³¯K»CY{Üpuì·I“ÒgKÆDUke'f§ç{dëRÈsOX`n­¿J]ò}Râüa}KêæHAõ»åíö[4$Ý›ãì·h”@iy1¾»lcˆ¾×/rnþ§Rm‚b=Ç…S8o»|ºeÏN½äZãV´ãU·NMè¦f*¨7»þL J\­›x÷3zþ@g‚ zþ´Z?K•ã[cÂöÀ„­?׫¡h:ø´Ó ˆGÚáé›ó!ß:új÷Unæ]c$¡éòwPk¦‚˜œÙdU?ÅŽ8¤dÕ†Éã§…0È•2âÏ\ã¬y.»âcr­~boB!7î\{{>Ñõ‡ÓØaŸ[Ÿ?d2¢?˜Ã V]å\‰`ðÓ_k1Í N@ÁrR¼÷,¡çÌa™HeiúL`‰Œ>•á­…wEØåíÛ¨„|>j§Ž$É-)FMEþ  °7Ó–é^Âí‡iöÁ-¤Œ›Úb™£]"–¸/ü®nT…é=æå;î;L…Ñt>ª ö©´’ˆ½nöä 3@X >ãTsÈ1"ÆÅ§íûæÐ© ârv˜ü»¥ÓñM—ûAÊa+[B7ÀO6i7Þ&ã~\¶¾éms‚%‡+¥Ý–€¤†fuq›qF$GnX÷ŒÉg òmIob¥Òñ…‡~”‹#Ô¸ÕGj³65eÇ|§;`{n×Wsçr4©\bF%|öÒ´ÉVu;ÎHÛ“¬G¢±ªÂaºÉQé²ãë¡ÛVåø5IõÛûs‚„á´[)Ñÿoê̓®úÌ ~ê £ãG~£ Ö‚bÓ¥_§ïrý¸oTa'{U„ñ}Þ—ˆÃæ‰yë­jxútú¶Âù€Ŷ"Ûï¨49Bdâ¤ûáǽº AN`ËnÚ¾ªÀjoŠÆF|ÈsXc©t*û5|í Üß§Îòèlé´e?~>¬,˜OÔMUŒ` ™°#U1W©R7í‘N*n×è‡8hFÕíU²€ít>wÎŠä ¥´œò•´•ì¢.½B*¸F‡Áε¸ø5®y›ÄÔtiqœ¥Žûs»³l pb@™–[ehÔÆhÿ+B#e78%‹Ao궘rÃ)%"W*Tg:¬¿|?v¥úß3êº0¢št0mŠ 1M‰ðÒ·8»‹nT+›>+ºß®™ý‰»f‹Û¼LóÝ%ê­ØvFŠõÙZӛπ¼N9šÇ™vå§-–*7…]%P{>S¶Ñùg‡).ƒŸMcÈ“.I¼kS‘3Ì¢Åáǘ¼sá·Q·6f+*²&ѱ6&^¾äi¥oÝ0p×'¬oJ·%×vE?ý6Øýî»z£«|¿æ9;Ñiüǯϗïõ쉈eGPêÅÍù“IçÝè)ß„=Ö¨ƒ³è¶%þZœËNrlQZ}7}õ(ì5î”1î˜ ø&©Â™»Ó:>ÑA€ )›N¦$ü¼w³_,8þ?/_ýþûðjösendstream endobj 598 0 obj <> stream xœÍ]Ko$·¾ ùsV‡ïGrJ'HàC ‚ ‡]iWkx%­wm¯õò³SUdwÙdOF’<¦ÙÅW=¾zú~'¹øÿüÏ«Û3±»9ûþLRë.ÿãêv÷§Ë³ßý#È4ƒ6Ní.ßž¥O IÊÁíœ×ƒôzwy{öŸ}8¿RÙÁúýßÏ/Ä`¢‹jÿ*é¤rûûó ­¥Þ_½Ávé¼Sv}Ž?Rjÿãü3i•·ûÜ;ïöŸ€ŠwƒÞ¿ÅFœRIÃo´Óø¡övÐ.î^$>'2¨<ö¢ÇOçZ QÄihçaïi]28Š?­½ÜßÒ¬­¶®üôî\ËÁ*%÷?¤ÁAoZ‹¬SûW°}ƒ0&³¾Æfˆ0¥¼Æ(“){!}'e•¶E;#ø ›­†å8Þå¿—Ë,‡h­ÄVf€w—_]þ–ÎT ÚJeÂ~Hãx'ý^æ³û?&rÚÎ{i¤æ?¿eߥ• Œq“ÎÀ[5í™Ryy‹i§t°Ñ™ý»™ ²Lx‡“ÙBøâ³ûÄ Êʵ7™[´.Ž7ÏÚA÷ýë¹÷7óÏ+ü©…‹>ñBÞ&>̺‡…Á€4»ü–QòQ+"#œ‘ +EûþŽ^éò9ê]„]QΠ,†ñ /¸ZÃdßAoœXÚmMæ…XÐP'Aà/¯AÀiâRù4q§¥Pû׸'XO{ŠÞ}š,ÞÀžLͬMXAÄÖ¬\4rœÏúÐ0 m†8[;‰jöïB…Áò²œð¿ïRo¡ðhæfFï# ÓÖ’ªÑF AEÑLàßdÚ­Ã$‡Z[Ûó€©!¨€\owPÖ&™ôÞaŸo™š („»Å‡i.×ã"Tâ5Ü ’T8ÔY†¯‡OŠOöþöÊ€^&]SV£üœF1ÈbÞ‡mÖ]ûxÞ'âÖ‡bÃïçwçÊãzm1J¦lc,öæ5Ûú| ·Ü¤-U,óÓ9ò˜²4âÄЋí“C˜Ø(\³AØo¤u¡A¶Mô» $íYÓ\JZZþ·ìP`Ž ñCˆº{àŸ±‹ÖímÎ 5Þã+˜~1Ÿo/Žb&λðöœ‹y“ü˼ˆ(}Õ:â5;¸±sn¨@Oh°bЦD¹A½=‡3æ²&Ë¥0KžÑÀQ_u­4µ¯;AÓ½Nk3ÚÔü‚Ó2`²~ìÐfSljWçG^LJ4À YEjÐÊ£…ÿJ”šS X +ÑnjQƒTÅÄñ¥æÄxI&&m±íŠ:_Wêÿ•Rº.¸ZG¥M‹YuŽZ§!›$L*À¤C’%ãŽ%ÎÃÌBi/¤(wÜ!(•3¸AêÕ}é£U±M§ Åq÷ÿÂæ`„5y^°| ÒI¦Z†à"©$‡ÌžÒK0¥¤f Ùö㽯öû) ;—1Ä:ÀíAØŽö˜:ÄB_sg½KÊãxI£«XÚÚ:Â(Që–¼hi#ø—…ýÖÌ*FɶÒ'” Õ‡Ä^Êšyñ3€g\=½M­(qO§XÒ8tvóX¸’»JK0’À!.K„,¾€9¸>DÞ—ëÚ%øå“Ì¡ˆûGåðûYRãÒäœwÿ„p» †VƘ>ûj.¼—-vˆ,âã¾K‚vû‹ª¬Sõñl?ªaD&°s‰M,h(—AQÍ­lÑÜ0ŽÛidq°ÞØvq¬ÁmÀM¢èÝžÇ#†Ú&!)u\¦Ú¡ ×¥ qæÓñ¥2ñ°*=Ÿh$x)7óÏóÏWóÏóÏäMÐTXp„ÁÚÉý¡VÒ .ƒUƒ3{ —Ë. ¼^ D¼îˆê:ìBý׃Wƒ]-ç˜ÐÆÓ1 ®:H´á¤kÁ}ÀFô»úÃtPÒH®\ÚÛDÏDS£¶²©÷›ÔÛ‚ÎäÎÿ’ kû XëÒ+¨]<> H¡2þŠar€)¬yêndÙ”G]: Ü;Éò¨•wKLXÊ£AdRȯ'¹Êâè‚vIS뫹õÃÜúnjÝ Ž_Ì“Ë^ Aé*¯fÄ%¿4„A(Ê¥ép€v¬9ü,V¬}¢¶FŠ0èi‚3Gý[­Qû®ö­¼_ áb ¦y\Íê¹²°;ßn¾â„¤‹ã ùX†¢ÐPT4L¯ý¾¦èŸH‚àÄzÃ8 ô ìD˜$„Ù‡u)²°‰Ý#N0Tª®KSûóãôJÎ︥Mc*A;¹Á˜:a¥Z3¦ôÇøòòìktdÀ¶Ý|:øewŸÏÄî/`¹ ²Ü™ˆa¹»E[`)L-ïϾéõˉA}@–((àû˜Âú·¬ÿ4K€t|: 6\צAØty=ÿæŸÿ™^µ Êþ¿ÅÔ3h`­6ƒð)Àû~I¬2BÛ¥EÃïz€[ •”îÙ@. ˜eléP®õƒVq%ÿP®Ð`Fbâ^åÆàªoÀ—àjgLli"¥¼.´Ù?Ù A‘`ŽY¡Í‰¾¿‚Y‘Z¬ÃØŠi½dbÁ„÷D©gZ~Æ•Ã8àÐÿ2HV ‡A¹ZÔˆ`9·É;ä­É?-’¥X› #ñŸ~1(k« âF(k *J(›õ–µÆS¼Ì終Lh$¡ îç‡ÉÉôVÁcIë0n Uñsñá†O  Ð UÉØ‰¢õ˜‰åbÕ±‡£1ë øÑG è#*æ#rH¹°CC·…:U$yìÍÎèÖø2^B‹œZ5h¡wÀù`Làë¾i.¯gHû¦Õaš§t q¼Gšg˜Õ¡6SË#扆jžwÕäHLó\‰éç“‚D8åà÷ ¶¾Ç³\öße,%ZüàPƒÃ^8jHÚž¸Q7°!s|[êyjõ*ÐAÈížD4ƒQ>3 HÞ³1‰™Ã‚˜ÄiȧL´ E£O´ôÂ@Ð ¬Õ±'!:–¹üBˆÎ î|- 4)ŸQ@”÷ƒ›ëp»íÓ›¹õÓܺî1U2®ÑØr®@´²CÀ’•ÌÑãÇ*GoýϸŠÞ  Ä!ôÆÒà‰óYúó:4¦—o4êó`7 ºé䌴ÿúÄnÒ*v‹[Ún F´]³Éý ¨i+¥wÚ£- Ô`‰ƒšŽÇ?@`D ƒ –á´4¡ó„®çÖ7-ÀÉñ¤?‡OÓKwÂ$G0‰jNÿ:AœŒN¿d@f åýªº08çôS†þ¢ Ôþ ÞsWœ“V¹úíæA@ÀëV:'¹Ú<¾¦ MM u Ždþò‡Ÿ_ Ü’«­X¸+$*üú%vRFê1a…¶¸±ÕÈäÉ Öÿh&TTI¥‚†CuPH˰à»53o]²!*`³Ëë+¥åø£«•ð;g æÍ±2«Ã©‰;Ý”ðÒuóHXÕȦÙ×½U'¬Ê‘Ks]¶u2…ÂÈÓ5”ëõ îÐ&Ó«ë„Yí/O>¾Ë›4ÃÿE%$#Âñ+ß\ðäcH Ç´¾±ò™w2Âui[¡5¾ËØ¥bÄÞ.šåØV÷NºÇ$9›agk%ˆYtUDá{%jÏ ÓÖwðzY c†5ÐCµ*Ë*cÂ-Ï»´¡UqÎ¥Ô—1Ô÷í鳡Î2’Ó>]ìLS¸_åe€ù˜%½Á©~„3JÇŽ­ ­TÙí[;:ÔC· HI"˜ tn[ä RWðt™´À2GßóÊ^Í1ˆÊYÓÆ¢>®ËA¬–«lƒn ‘œ†Ø´ÁüMÇÃÁ•SÍY«ƒ³¶ÏâNÀºQz÷>ƒM/æoížÛÎ 3 g¡rª‹0¸#FᎤR¯0;Õâ¿Íÿ]¯kcèNÆV 2üλ±T‡Zyý ïýªi£¸Õá_6X‹ÚYÕ=KPŒÖï4%ÙÊ›P¦ËV\ .öD´V&wÁ½láÕäÍv0rÔf4Aëj´ƒˆ`*¶Â¾² N<s"õè—yfp,ŸIÙ{LáLiÚ?Íþï³U/P}}ÕȤ@ÌoXû2Z–ú ÚŠzø|LÈÅ @rrÜ_Ÿ°Þäà [㇠|(vA¡"ã‚ÈEè:s“ãÐ"W˜CŽhŠ‚ÿ2x Þ›€í/ÍÚSC4ÄŠ3€Øß,Nl‰jwtºð%þå5­NŸîºF¶oã}£Q€Úþ«„“™XðaIÇÛæQ¿¯úr·/‰Õ‘Å˼@QG¼ë¶2Ö–åB î0›ÐÁðù@%iLܹຘ±Ñx&¥[ÊG¾M“Sfs ÝË «ZtêFÉèäí ÍÚaAN ž gªFÁ+Q¼iËàZR“{q‚‹-ë~Ìk®£>¼eK±é”èþ0ÞÉ96¬÷Å|à-ùðÀˆ~ö†Wä#OYxúùب)ÚµŽhÇÜF6Æ[>*®22ÐS.ÖŒœïom˜HO<§óŠ-Nj\Qàœ\”\Á\\ÿðá«kŠRxpàk§æ¯ÔË Cƒñ²hTªà$ö•Å;ö²fz¤‡kpn+6” 4¼®")Ò"@Ò:7õ9‘•+ç­U‡Ž]|‚# ×nßX ›Ôø oðÛ#]Ø{$Tí»a« ýØÍ›4(“¥ÅN‹‡ˆ9Ó~šBh°øQv7Ö¾ÑÑŒÙSi(4‹¡#n}+Uœ"^½:³ q°^>'×0ßa™”›ˆlªÈÕTZçÜ8\N{Õ÷€zîó¡ + U4Æ {I«Ï©‹0kµé93èùõ¤#¯¼ ¥Ê_¼Uv1’¿@W>øÌ¸Ç½Y¦¿Y†PÄ PXz]T»r‡Aà½|½ äÈÅÖëeÁ‰päëe_è)‡O5ô?$¿Ã&UÈJ @8-`‘:È’ÃZ$ÒŽ¢ŸÕ©*¦`È P G‰/þw¼sEOXÉèTÉå£XM”êâ¡4Y—d¥*Ѱx@4MÞQñþTr••¡ zOG—9áË¢ôËž¤w9GœmAÆéî%>2áÿ-™»Þ¿Ïf¦cê2%Ü+‹tW§s¯$£‘¨B™iþ¥eZVKs¬<•¯ Ûì*•üè: ¤}]'¹ïC~–&h?ùyÿÜæ_Y›Š{B/G0e7apöNɺ¬8?=³P^¨ù^E|óŒUýà´Š•pr;[ƒ僡þýN”s5¯¹¸ A#ê½´­o.â «ZÞƒŸŸ)\”JqdÊDgKR»~g -ñS­ì—PtS—Eô‡‘#Á Î¤^%yªÅI”OWüÿÚJç&äÂ+ðo±*ºA ½Xvĵ•V¨ÝZ‰ •§‰'LYh‡]¥¨ŸDëEí°óÊ­…Ê›ÅÞ²¾V¤´sƨX GV@1QqG yЬø!Ìïµ±½Ý‚L?HG±‹•‡ˆ›Šïx´K¾'YËw%ÓjJ?¯ó36ʱ¢l<Ÿô(Œï°n *9¿Ë·»ŽÊÞõî¿+øq©×ôÞ2¾)ñöšZñJ¤Ä»( Ê>½ »†ÞÉm¨¡wõÖ¥ÃzLÇâ1Ò¢OY€CØBº(5Møjp‘O#؈— O˜úFD¡½Ÿ?Î?Y:ý®¹µ·ó~²cØöXçÇÿ~”œĺ®}9iêЩâ¥ì{¨o¥ ÒXDw¾†fH_@Þ–HJ½c×dpið"ÙºÒ¨%Ü ­ñšaPTuÛ©û0aï‡4¸\Gœ´ ·1x€ÝÍâ.¶FCÞn°*+</‡ï·ÆÄ™ãY¯üud[?Ü\ã·ä`’uŠh‹ª?©²økAã¦UœÃ ýðœX/\æÁÆQóë7Àê¾¶1§]Ì2M|\«ç5Ð;¸U¤Š]üjbй«4$& «?SC­ôSð•·àZ¥õÕÕØ¯™ýÉ*Z"h™>¸ÇÚ­3>.ÑÔÁ´CÏÑ0ÐÃG/àÅò kë+d8¸³v› ÊÙµt’Ó¡&”sÎü _Ž,¤m!  š=¥¹ýþ›¢÷!Ç#98+üë@ˆÒƒI³1ó:e£&ËøõÙÿID endstream endobj 607 0 obj <> stream xœÝ=ËŽ\¹uû†‘ohdUm¨¯ù~8È"†ãÀAìÄ!0ã…FÝ’nuËÓÍ(†÷ùìœCòò>ëV—:‹Ì,T¢Xä!yÞ¯úË%[ø%ÃÿÓŸ¯ß_°Ë·¹àaô2ýñúýå¯^^üâN^úÅaÔåË7ñ+ü’s¾˜Kcå­¼|ùþâëÃû+¶0ç„`âp{uÍe˜eæð1|ÖÌ3yx‡ŸµÕ0íðpu-좇2üˆÃvá^³_] «X~øt_SÒZÜEX³8oàŸa)­ò‡û8Ê™ƒ-òè²…è;ü,¥¶ÂÒé÷ÅÖyø×v‹.׋Œ8|uÍf´÷ôK{.†ŽK“wIß  Æ+p/Ž-Ö'\±4ꇸœT’^ ùl™¾ŠQ_À¦Î,f“+½su´uÁǹpÈ?½ü× a~°ëå `SÀS¼ÃCï–«k%a¿Âaèb£‡€9‚›Ã°€`Ì+“.Ëx{4Ò‹¯0㹬b9„‚‹í:”òðv~· ãÁ®×“]søSXbUÆAø,¥Z´ÑÅÅý×dÞñeÓ£9äGD1‡ÞáÛ¸¼ú Ò+ì³0QbÀËÅq~ø™}O.õ&NñÒÍp§X ð–8Ã"·é@ðÅÑ"¯ ]gÓK_Vìògråë!á¡)Ý”käoRJ¤7[=V€„‹ÑµEl•ÒÛñiáXXïVÂùÙ#0Ñq7§, äÀ¡§•ÊÞ‡/)S^â'#"k¿Hæ#"kù«†D{\O:¹(˜ñ±VtLRŠéÄbüá[dW°„vdªÏÀéË^ñ&®a™}f!°®ò7t *TÆ;µ|Äá×pº'ñ,ì=’ç‡7aŠbŽN/^7¬íç|§qt¸œ’áUöp›J®LÐrt9„Ù~ŽP#íŽwÉÌ›žr‘mÁ€è’Y¸6‘]ÙXûÚá*ÒòÊfn¬M†W{U\!Š+„ÈÕáeŸ¾É÷ªåcØÅ—Ã:`Ԅ©p]“˜Dl-Xâ›$Ö¬,ÄAk€¡²!1” ‚¤Hþš[|éÌ?Äý,ç5ƒ²h(.î|¾BôD-#¼Š’æóWiÙøú,l iäÑfž¯(ÞÀ ÷,Tç9ñ!èä_–ùÜQõt „ ˜+8GÜï`aÉœµ<~«ÔéᣖpVªR(PZphX£B/|Ðù¾9lßL0Y “f‹)½Âô¬Çµ7Ï?æ½cq äò±¾¹Š›&NCªÛÉûwŽ2ݹóOºó$öÝá›ïûò´dý]û¥TôòôëÈÍF¿žÑë‚B:ëeTQà3ÜÁ±ç„›í87Û=lØ>~»}¼Û>ÞâGe÷=áíœÖþùß“sø›õñ=¹Ú{樱 +)!Þ²=„Ú[#vÝgîTß'Rã&mhw<IË õëí)Þm_m¿ŸœŽÍdñ@ÂÐìiLNàflT&n#µÙµMIÚî aÑç¨=OÂh׺;®Â´-’¼ØŸ³nNyWãm „ßp]©ÀI³¤Ú •Éëb™K͈Â@ŒÖûÂh_´~ƒB¯2…̺eø\éWqKM×~³ô(–‰6¦2è:;Ø5²‚¸ô|pWG5¢‘Û£S „º?|ºÒ µÈR8Sˆ(¾Œ”„q=o ›¢tÆàa„ J‡D…×tGT„¾ òá›<Ü#i®$èv³;‚³+-9p0±~íï·­“ndÀÿm8·f*ʤ]MHNÙA¿Žbƒ“‘ ÔlSµ~°°Ø·dx€&;œ÷q¶dÔ(0ÿy*:^ÑRØÓùjJ§b-Ó÷”JâÔZ[›ÞÉlu÷D)Bßl ÝßEñª|&àŸ§ÁªÛœOuðä>å´ëç OEý„c?/žTŽRñʘ÷¶ ÂL¼/JN×*¨(yžõѳŸ£ÔŸê3¥­fiÃ{š¸—•&nï¬P}…Gà ¹ .x! z®‘¿Á*jå^‚.’fp´Â#‚ä3²Ë¶¤®Q²K£äõƒ*%s+ðL+à$E5˜|“¨•(àV\Ò—9ãÌ l@Nnv—ü<V@{ƒá˨kû[BRÉ–À‹zXI1:ÓY\`ÜÆÐþCrâå¹­&”+¸° 6(˜™`»=JXC¤%”÷yçšqé1¾Î£]÷… ›gMJÀZ>F"A¡²IºDõ0,e%¤Z>X©nT ¿[¯|¸ÿI±€Qx8ÒòVoý=ÉÝ|Êj}5™‘@ |D¤2‚ë‰ÊLiâPI(÷uÇÔf’žÄŸ~Jñ ®†…¶ï×hì­­¡amÙ²‡­5À ˜,£ d˜Æh€CnÍpHÞÆmÞ_qï1rHL/ª]e'àKË2…†@c>”Þõc ¿óElq•ûõ…dëqaÓu©åTœ€C²Ð¿‰ X¦Ñ¬l’)ÉDz¥Ÿ$@Ë<*z'H”Çvˆ‹U‰«úÝ㺙‰3¸Qùê#íãÞÒì!Ä5å2 «±z}†FZÑvÏÊ;üòôd 04ʸ‡ >⦶ßŃ9ÞXu8*º©w=S§ËŠRó0/è:ÇM*–†s™À{¡y [Šþéf¼—PºrrG®¤wCПê‘4²r»ÔŽÄ•AR qÇDI‡)ÕαP ä{g2ô°P M쨼ñTc¦a¥ÄÂ&^úÛh‚™ 3ÞGÀ5ð‘° B¢¥ª0 G&Ô 5ñ\µS<Ï ‰t‚3Ÿr“aᩈÆ‹±µÈ¢ ÁÀS3˜P0ß0—“X¬CKO·1yà –žBÿÇ@ÒèhC=v¯Ëöñëíc.ŽFÖŸ¦îX’Eæ0SÆ€±S‡²8%8^ó0(Y Œúà ”7ÃsNɧ æ·›¹¸™¯É2£¶Ñw…í[ê¢Wäq@I„~ÆëÄ{Å0,Ø< 1·#d †‹~ ¾ï)O©øµ| ø+ ‚À=í"$œ‚ù<ò„S¹0æFç¨Q,žc‚bñãÃ(¶Èvüãv->F:ö4W§ø˜æ ¼ÉuîßFoÐøæW«©h+3PÊP6Õ=Ú\{œm_ízŒë9]ȪVÏ¢ Pc4æµ&í ’Õ*mZ4»ŸJ™ÆYÕ²¦,N„”¶ocœ@Æ`Wª•›ÞŽrh§O!^fíSÀQÉÆ™ÑOP!q&Ÿ¤BO:Õ Ã“úÚá`îj9ó8ÜYÝk¦^RõpÝsZr û"Í [+Ò*çÿ·Pò”à,ñ•Æùоy¡ >ß(`c²ò€Í„4]aÔÝ)åæhŠQWé‘©íðß•ç"ìßÐ1ŒJÞU{A¨ 5X¶Hž ýI.äÇmô÷ÛèÃ6JŠïÊŽN b¼îJ¯œh.—÷i.3MùÕXüF‘Ïçé™> !OwB`¯%gCT€!ZÅ g"æÕfp‘ íá¯í¨Û}‹nµß¯òχí {ò(Ø0ëe ÷àªHüó2õÍ‚»¼rl%}#%Fî:!µkgÍýÈ"©I&çª(6¯ýøHRש…÷ c¾˜ß/:;Ïz.E…AI6N6+ݰ8ÛŠºõOX£D–¿Ä%BŒ¾Q©Cà•izå†3Nu&ü¢a»ymZ°* ÀÍ« T¡éÑ¢æCGÌþ ;}^<È1ìÙRLt`+L´­ÒŠN¤œºáÂ$(¦ )IYC¢œ4"áú‡]¦]„0{½ã³wÝFÿ åÙ¸0çmM"OxqN‚!E*Z' ­X&‰<×íÖÜÒ›TÖ ŒŠžöhnn“hÏRÝRzüuÍÌDóåNÛq¢ºM\Ÿ=Õ °BmÍ©öä·†mÖtXÁaĘáåî£ð€p+ G­¯~æ yµ¥ºÃ¡òªÑ¼õð ŽÚñƒÚ±»ÚÆ"(•,WìúÙ‡nëQ rËJ¤ï í#ÇÉHÂÕz”,öîÈb©Â2èl•/`‚ŵ?h="¼7)ët¢Âþ=²ò“…øVVbW)Ú)µ?¦±ê|¸špã¸âºwS~Ÿ™ÖMÜF³q£Ÿ/:Ê(k¦Ô÷9‚¨ ¸ïÓ Ÿ†ï*Åôn§×ɉ¡Y’;² ¼Ç³ÿ$îâåцúØ™+i¦jÓyú›’±‚›ö ¤M“ÿÚ&œ®²R½^&>Zì«»wü NÚ—¦}`¶%ô(Š·¹Òq¶TºôÚȪ6Sä‰i†‰€®ÈÓpcXᎶlC qÒ+ÜbƒÛp,Ü{à³EÛ D “Q¤C ø®üzz;ØT1>R)bEÐ{*N†5“™‚õc~û±ˆ‡õ]Ë0ŽpyT ßɰ߲¸ÓÎ¥¶4só)`ëFw˜j"Œ™ê4årÔç%½=€ÓöaUø“f@QâH¯ÈÏôt³5]‡ª»_w?­+)ÁÃ&ú5Žá(—óú¶´Ï(&B[7ÙUµ Tþ"„s¡ÅGU/÷¨ì°½q‚QØJÂRSW_‘[l·aÕqX`*ã:z£ KÙ Œ{Ô¤b=‚,Íwš"]늀SÅ”6©&xœFyÛß…‹6Þo15dßß p©_Š—gÁR”ªâ¦”ÔÐs¯Âï"E—û¸gs¼f°<¾mI¢á”ņ4Óx’Néô…ÁÞy\Á,Ø…bZÓ4F¥·0$uB ¸¥VƒÆñ0úw¿ÇÏïú « 6Pü2Q´×ýb· õ[ê$;.ìP¢÷ƒ=¡š.H}7=~Üô kUa•­°ykM¶5b¾^³+÷lš%¥ Ÿ1º¦‚X†ß–g¥rÉN)è¦ÖöòÚêkoRõ«Ð ¼–ÉÚ[ïT¬>ÃRö!Q˜Èë± ™ƒŠÏ1嬘–R: Îãl&iSáM°")°Ú¥9—`_õéj+k‹^ÜKîÌÓEÀy]‚N«Æ"F(Ò˜)ÔOŠ[¡-=)"èE.–eçØs’ûð(÷ÁÂ÷ž7rŸÅs BÀ2aÐñŒ`Èà§9ª˜SQ×+`Mó;|=ÕÉíò%Ìü4À;˜´Gªì&²â%eød‹íw„ºÎA¹£²[%hP*ˆøÉI‚~f/5øÐDy,âñd ¦âÊ Íê•Á©#]¶îc†»ë}Ó£!~hm&×Qy³»ôú3›E aË_Ê©¬I£ã®'MÂ7G9?õohp»XVgµÖv#ö†D9oãç׈üsý’ØÃÅVpÔØ2‚­öFþq:ç­Ñœ¿«×Ìõój…xQçJ9¼ÏšŸ °úçh“¸n¸«Mbô·áSÕµåµäyŒ0cî]á?‹¡2í”-¦l˜x(æ кŸ}pÝs &±Á,ñ¿¬¸Q *ævÿ‡¨zJcéPð/räé8ØÞ¦ÍõðGfî"”¢õ„´Ã9×Â¥- [Vxˆ v,½jñx¾;Ÿ&œÜ•- à¨ËB£0Dü+~ŠäEïj^ПÎüaSÕöüä߈áÝs[³Œ5LÊ7aHÍoÊ6NêÔõg öÚz%ºÈ°¡³oâ#›~F·oƒÇCØpVÂpþaGµ]¢ÈsÉû.þÕȼ§endstream endobj 614 0 obj <> stream xœí]IsGr¾Ãþïæ‡ ¡Uûs+<ö84ö,pø0òAH‚HP\ÅàŸí\zɪ®j46ÙŠPè f£:kËåË¥êýxPƒ>(üoüÿÅëuxyò㉦·‡ñ¯ÿx~òõ_’=ä!ÜáüÅ ¢Zë!B´ƒŽöpþúäoÇ·§g& >ÅãÍ©œµÑåã«Ó35X룉Ç7§&Ng{ü€oWYÙãsz*ªp|wzfcb E“|íMñú Ÿ}ô)¤bcL8~¿tþl‘Ñ@žàu>~¢Q@7üM´wÇË’v‘Œ÷Ç4|gUÌ’ðGnÐÇkžaÒ1áèˆbÔ¸3Eþ2œŸTð¹ ö´3Ê«qÛ*¥p|¯a¹’IEsÑ‘ëE‡úG1ØñS «ò|Yw¹/x­µ)·÷òœr´?1m•“.š—Cÿ¯ó=1> );à¯óKà§÷Ü ëøÝ±³×‚²ÍW@'…!ß-‹ŽýoGÉÛÎÀ½™úÿ7h¬°w<þ>úl8~»¼ýv~;R+$¸,¸4›„#ÙQ:`õæå³~”Ž·ö}ÜìïÌÁãáL›Á» ¹£×Èè*&_lê¸6ÀöÄ'Úgf!Y —Ñœ+øh” °OÜø5L3€ÑšIˆ¢Vq¢ìR![ßò{ƒÌ3œžE«ã *^9 ˉÀ[¢>¿·åB„…2z#¨\2• HV*‚1ÙÉÆ/˜‚÷Èú0dïu<~Ü>îyÔ±çímãÄ,%ÆÊ&!åùñÝòø}³ÁŸÖüþ¶Ï^/çÍÏæÇsƒœ‡ó4`Z7D%w«™€Á—M‹k¥+̓·“š$r—¢µx&Y0Y°Û, °<¬ÎÖãXœ‡ö…ú(-UÕ: Ñ9aá*±ÄΦ]š\²26dœdhFH%\<­é˜¨àžE7øœŽ/ÛöúÓZs“•“Rò‡ Ìàû“œ–[‡‚úÚäòYš ‚²ÿ¿ïHé; ´ªÅÖW°£3ÂrAÉ*%0 q¶J·m%»dTZe?xÝ„.ÓˆÁŒôˆÓ“¡“ë3TKA{±,KÃ8d–·GŽV”[¬T¿à²‘k\ŒÇ{Œ}›Z~Õ›ö¨¸Cf(ç-è$Sm=Ò3¼Ý | ã‰èG[+]‚ÞºvÒ›=þÝÚб)rþ…çZxåW, Q:ÍFn‹ <ïí-‹ÎÓz&dEèzi ¦Ö>í°ã¨} 3 õ°A~ÙÅÀâ2Ϋk< hxX­)¡ÞJ-_‚™`”Òì”møÔ\Ú£#EßâÌÇKD’*ä§÷& L“³aS)㢃F•³ÛÓç,×<5S.Û¥˜Âåz¨8K9ÔŠspLJÙ&{Ô6³NOB3ó‰ÌØÊç”å%“¼RðÕ݆Uáå ûÔ2&¶F¼½§VŸœ’iº¥,UànöË ¼c»e¼‚Õ¥£8z71¿Z0ã5àÖÖn¬=LÉ-ïùSetC$‹QùgýHä A93¹Ñ//™6ˆÆäÁù–ÄϸEå;ñX7Åç´ë J®Ô÷íõ–(nŒÃϤ]TÛþNpí{%fÅJQ’\Bˆ•\âݶ/9Íêq$}Zw埡£Tv¡ðâ¹#ˆÏÏK,Y­¥\Œ(¹¸±“dÄq¶qAÊ@9³VØ6Æ6 ¶ŽSÞM—cÁÊ]9O/§þcCO~x_Sü VÀ@»©0LÁèm8‰Q»ÔcfãŠw„PºOr­J@øËUN¤­/Hß´mÿ[ÑkO‘_ò":ãa° ÷€Ó…ÛÃ\bïÚ·”iÚdßgôžÃ¬ ¶¢o{†i )ш+`E¤M“ˆUä€fYš«r³`TCœ.zû¶³žR :ÁAቂ]Î:WÛ2P*elíaZm>F¾U¨BkM&§(¤Òv e†%<ȯ«rO|ë™ê¼Ù{Šû¤ý®~tt© ФÃ>x±øJÒ6>×d£VÕ8fk™‡·!÷ã¹µ+?dc×´#Œ:ïƒÂ=šR7×ZF`Ð@g^v ÀfÓ«7ógp PA%¸”òqStÊÍŸ„ñ@>û3Å厡Ž%6LëÉ‚ãCö#™»â }¸@T|[c‘ ~*‘šÜ¤&|^ÑFà+<·¾æÀ×Upß6ÿÙ×"Ò3õnð&‘k !eÌ»¥MÞŒìkPÚ«MŒvB‰‘Å }Ï"´¥¥~V„op|Ù) ˆ‘'ç ÄÓ6Ü'¦æ““b0[åS¹òÈd`GÑ‘_25Ô‡A¼!ØÔR gÓ‡g:™Ê‰¿/Ë3lʃ²¾²Ò“êe?Þñ‡^ù•g¯“+kQl‚þu¸C¬ae>+—«°äc§iŒáY›c¡¬*¥L­7ûD›—4—s j©ú#®”ΞŠ-°Ë”°ÌøœcÄtçs~oÀâ´ö¤&.[ÛÆ?Ì}NîT½ôŒÆ¨è\™«Äì6º›v3ûOlÊDbŸ¹‰žºC!è)ëný¼¯n_ JOa_j"1@'LKx@'ÉË …—ÅTÊVÚõ¬˜¿tÁÕRBîI gEÐÑÊç… [5??ÐRX¬ð|_/–¯$v½¼}~ºU*äõ¬š{®*3‡í*€­YŒK)ë¥b°Uõt±<~½<^7gµT=Ib‚ÂÍòø¡Ùàjs1qt΢ÄqFÒbadøYˆlW#Žˆ¾ëüv{²6Nâ¡/‰PЗS0˜Þ:ªÕ XÁ{u¾d>:q *HȬk:á¦j‹Ï ¡'wÛ½€g‘œm)+@|=¡ô2dÔÉ[­£˜S6‚Ю+;( s¤ó9%uli;TNaXF…ˢ݀p Šªýž¬‰Í¾«æq·ÙõX¬‹*ˆ.YëCt0@·\€ªŒKhBí÷ÁkýTZñuއ8±¿"TûqKÀXLÒ6†Ôþ.+¿{€‰Ù ]t¾eÝ ‰6}㺯¦¬U¯sg¥A[â1ÛɵmØ¬Š¨µÌÎÀ¨ÍØ,ür–=±•]}š þz©Ñai=V{Ö°óÉÕéÝh¤]Xçf/ÆÆ°:Ÿ‘ÍuŽndx<7ðÿìÀÅXXú*š~á4í"`Œnf¤ÎíЯ¢AØOP«ÈþÔ}/,Ó s8ÐÈ^1§â†`‹:×ÕZçz¸rÞ‰º@×TE[y÷<¤:[v›iëùŒ; ¤hýÓ˜åôCt¦þê²7"4Ljceõ¨IXª N•°–wÒ¸(é™MžY7·YÁÚ\Ág¦>­Ì§㼬pCF$ßöðÐ?ŸüC €Ù^¾?÷‡Ï'êðÏ'HÖôà,Èökø'F¢ø_×'íNŠÍÃIÁbñ8~ŽÚ›' <÷¼éjü·–Ú?_ÏÊhñáiF;è<Ýw x"V9Ä_ŸnÁL­‡¼dA[ Kw¤Ž¡ ¨{÷Û¹XçËØ´’ô¨|®CÛ7üVoÛOü,õÒC".xŃpsg«²þÙèJw~M@Á³fhogŠŠú¾'ˆdI[ðK• ÙNr]²;0[”½ ˜-«k¥ÉÕåìÐjÊ».ƒXÛ*ªRf¢àM¥IZÇUÚQÖRº'`Þ±rý;Y­q›1ÒSÃr„Šk¬M¹Ã,ÒÚtÒ©[x~örú0fr?Æ5¤3VÈD:ÐÙ‚.†M`uÚ…á¡)Õò«¥ú´Ô‡Ý.bG"z"k,…lͺv¶Œ@ÃÖ²”¯®¼ YæÞ,oŸCï¤è”)Á\¥d›—m$~á>mžS"eÐ8C™ü —ˆH•džɫԜåœÇÆõ©ÎÁŒà㔜HÒq8{¦À\LUŠOZ"2¸lx k~ÑMŒ(¶WL¨Z_hÝàiƆüjÙ¹&ÞÒ;ðÖ ™Ôx‹‚Y 2  œB„âœ`“˜æ7÷À'™(ȼ b­†\O„ãoÛ ´]’˜‡Õ9Ãê>`@ÐGèÎãÃé&Îíkì ‘ûr¦ ¿¶ëdåä~‡ Åv};Ù¼]†^r¨šj“¥)l"£z$fÓ7`ë³ÿ‚+ž3ú<ú’) ¡0 beE¹r~L¦¦KQÉ^ˆ¢_/gE´¹”ÐqN4¶ãŒY1³„ B/“ÏÏcR=päÊÕÇ™q(N¹®ã» O›ñz2QÂõx*X)¢Ù!eT ™ËÍoAkr Ü4ùYTœS ÏΉ‰8e±ÊÿÁø{VºœÈ‹eD¯ç\OSǹ!ÙÙ—¬cO)‚ÚìÊÐ,©Qž—Ø—5¨08K¶Î¸Õ¨uCHyUDEáú8öO†ï ÀÏ€½€ï|7='N³8Ç^aƒíAÞKÓp‹RÉ {“ûÌ“J‡¼%@ öñøßB¥­³GË¡› ØßmnVo«d ½v›€{RŒûj&7oÇmEÑÍÀú{\XÝQœ÷Mc:0qF~uj²¾aTB”œ½XÄøfyûay{±¼-õæ*O`çm+ OaȈBûa‘>œ7`¬£#4]Iñóô„±]DåãýЍü¯ETcÕ7øzÔÒÛUA/ßåÿõT&a6üq꩸ˆÊb˜d©´©ûØUOÅ4¨ž*+ók=Õ¯õT¿¸zª%RاÑi_ù•’çX‹z*—u=…‚SÞ@E½z**VÝjûÖS™¼×Ù“ùf1Îui'—~X̰ðDeû«Ú¼×)'ñvh6øioÔ0»Ò¦Š–uì›aùM(“0s=+Í_DEV1Þ³ÔVK¥"ü!±S'»Ó9á]Yh–d•ÑÝÃTàaÐz²5ÿŽ­àxë·iÒ‡¶¼l‘Vìéí6»iŸi™¤ækå–‹Sž>ÊyUá踙kør¡ïì VÅ`Àœ&)ó8™¬©Ž6—©R(è´=Eu÷³«õ™è–í3FÃ,f_¯‰³:¡´»gë醺Åô}X^s çj1”-‰p`Ä­šÕC?eLk’–[_ó¦(±' 9ïs£ÚÕÓ-š= ²*Œ0”\×:ô²b²J‡Ž¼è~à3˵v­“dwI+ bM{\ðµí›<à¸(u¸ò`ïÍkÅqE"/„2-<Ûðòf_ŒÀ®ÀÍ:Aµ z] ªÒñwŒõ­'CŽšß;måã+ñÝzílæ$r Cô#ª7ðž4ÔÒãGj S-=x AÁ¸}$Hýðbp¦ÛGÕ”|ç ¼¾Š–o’¯¯ tiªµcq ½ý¸<>[¯Å0ä.˜¹8"€,Lø¸{À¸Æ4ƒvÓñ Þƒ~^6ܲB9Iy&ž{—%^LTp'çØ=ÕÀ$ø•ñPãuX-]‡¾¬sù‰uÅìOl^)#ï­‚Ù"b¾Nʰ¾çùBÿt,:¡ë¹yhW/øˆá’%×ñ1$"iT3¬îi\auMj÷s›1Êíî$¼âïâÖÍ&Ü ÕWÀ´¾’'/iÈ=÷â’Ïn×”©â[Sxiên‡¨oªBÝã­©ºÝÎ9«sk ¯Wÿ ʪ¹RØQç1~è'¼­'ÆèûÊ)­-Ê)óËk£9HG·P‘çÐÑuÊ£ªÛ–­ö¬û÷_ñ¨KÞ—Œ;Å›AíŒ7ÓÌúvp쨺sa*½¦KP²¹ŒB^0Eec‹ø°'ëj€T;ç9’*«eú˜Iå! ¬ŽT›[£LG}¼ý6FÒ—¤Kz½JŽ’"nw}Ç]y¸ûlšz ÃÊÔ­,‹Ñ?¶LN•Úåb¼‘’=eÁÐ:›J¶n£$ñm'„×¥Ø;‚ \ÓvÝæÒ9ÇñHÅ•^¨ÒÍžV(ÎèT%þ2]äbàs<´D›ù?§S¤·eOáÑÛ¥üH:{®P/¬¸8s¬²B3»ÉÓi°%ßœž ";Û8À]Åá:› óüý"O”©SD8ŽNíÕ4Ô„ ªU¼‡Å§¹ÛP32¾¶NêívRJÃÂø;Fr(Âu]‡µèí³åíXüxµ4øºÈeñ=ºÎ,m$Ò8*×.5o¿±#ÊÐÃ:ã]í^Þ‹ÅêIÛ0¿¹GÁ:Â1ëÚ%ÜJÎÐÿ¦èÛÎÅ‚+,S jÆ¡µMü¬Ìㄹ²Åß)Ø›· ÆÁ–ô O«Úzž|€àvÀ¿Ì¾_KàÆÍb¢U(Mö#IvÊF›u€ÉQ½ä/Hðê‹÷ů ˆðìå"x›a_œ}5ÖL[„ój}5F°Sybæ†MfÚ8ÊWÝŽ7x©òå~öê¬zš¹LaÐ)îªáê£ëø`lúhÒeÞP´øL"çšš|£Óv<ÌÞ|åûOó/¢Ô‰O lV?0ÑŒ¨÷NûÉçç2„r&¦.ÒooMTã BxjúOb 0g¹çÊ‚é­kƒ"ž‚µåFÞîëvZ¼js@/,ùgƒ.Õ½¼¿_Ö±®âLfW*ÕÆ<¤[~V âmçöøûS´ºø+JíC·Eaß0)ÒS#Jì£V¢4Ô mò@• óœ vfzéÿõüÅJÖhHsé¶këtX­·fçq}·Ý6HÍ œLÞ“nd»³‘nlWYñg÷K7Þ)¹y(j¢›ÀSᜠ5í¡ßÜ£°c×€HÊFÕD¢ÜuÒiH²çäð×”Ò3àžÄ€ÝêÈãn°kð'?œ~°ë¢”Ý‹uS°0Œð’Ë:?ž‹7Û¹÷üs>ÚÖRë¢EóÒ=ôS;Ÿ÷}p5ÂDt}1Eç`RÆŸ6pºUÆÖÂSkOéõ­T³ñ¤ûùÓª÷ŒÉ;&‚­ [/’>³þšÈ„7f§¯ƒýXŸÈŸ@Dù¸Å ÔÄÚ½¿ ‡+Ø}=²¯ó 2ü_ú: ´ýŒJË“üX!¯´®®¨¢ÞÊsxŠ0£_Tq!_ûv­ïCPù©¼¥ñžç§q—Æ;7Ü%,q1û¼¥ñªî{¸K㠮ݥ•¦ïy=}w ‹fŒ­>d ˆùž9ɺÇoWõsM7¥šë_¡\{W5º–‹þvY":j|®Íá ï'²c“[ˆØùóÉÿ‡Éï›endstream endobj 623 0 obj <> stream xœí]én]Ç‘þO æ.äºLÌ£Þ{ ''vlz)0ÄE¤’RDI¶y€yì©ê­ªÏr/yiib -jõ©ÓëWÕ_u÷©û÷•äJàŸò÷ñåžXíý}O¦ÜUùëørõÙáÞ£o• «8D§œY>ßËïÈ•Tn°&®œ×ƒôzux¹÷dý?ûbÐ"x/ÿzøïðnÐüUHZ±€Ãþ„•Ð:úõëý9g¼_ŸîˆÁ8á…[? £µ7qý&e[…Feý „e¥BÏ+Ôa>úZáw ,mTÁ§ºKòkL:a¥ZŽ\Ðnýû$}ôXLJ{†Š$ôãìzÏ Â®~„ñûrOI­q@ôàíêr ä´Œ‹½ï¹owc(`:ôcü'jäï(ùGJ~Ñ’­½JG=hÏÛf䘻4Î(è®î÷ 5ã{J~Fɯ(ù‡Ñh·!ã¦ÑHÕps Â"¥„â9fÀ)x²1®_"XÜ ^¿@ ­­W~}…ië-”3‹Hߪ¼¦¦¾¦ä1%Qò‚’/Z·ÖG”{=[ÂKJ¾™8Ÿ­í’pú’j;¡Ü·”{A¹§”;PîùÆiÚ &Ø:&ŸÂÀz5( G0˜ÞíCj…ÑRŤ‘ZÁiVR¹p2¿Ëµùœfb¤ðZúD¹~žæÍ§t‡¤Ùv³ÏKçsþ’J¿Ê¥›YÛ£a8jáú›ÅÁWʺÍÅϰpcåºf=Uï'd×X&ñ·},Òi)Í»õ+Öá Ö±-à¦fKkhºÝp²!yë‘Î/)JgàÍ…vóqµ%MgXÿHfŸO=ol7¸Q• VÃ4 º”‹ƒˆ±"ò(M3Ö‚¾9, [á‚©uxíG,X›wiص³4ì}W_æ¦Ùèxu¬ñ õµa õÖÊjEHM8Žÿ5aÊÅã÷SÎ1ÈnHN˜üohz²žŽ–è\h^€îYb®ý£­ÍZ¸Á+µ¨äIÄ q©dŽlžÿnßšÁjez¼á$™d5sÍÀ Vˆ"«ûÑÏ.iЫY{zFåðF]ç—À6޵F ;Ä‘‚/>OHì­­w ­s-hV^¢¶Ñ Å=ügòª‘³³„”¦À\‡ètœ]Z#ðØjéÍAYBg['‡(]}í¬Ä¹( ‹È¡„Ó`óÝú åS4¹ýJ Õµ®´?MêÊÎN[Ú•˜m¾ ƒÞUÛñ–é4W6>a¥_ÚšõÑeP*Ðë)z’¹b…dª…Ï«œ Äìh•›¢,,Ç÷0VåÌÆ6Ù Ðdz"´\%KSÊ é%XLÈ‹ôk ]“Êaýmžuƒ-—Áî/˜4Ï–ZjÀŽ”ÅÜÿ'UõJÜÀ©qÁ:HgœOöÚë¬Ë³Êû²qÐuY¸È¤ &=Ë;p1V쫽Ã_=I›Y?¸öád­UÒ.Â`¾%F;K<²­¦.ŠVŽ^Wã&öD+T•öD(:·T ØÈyý€ëÙ8aËôÛi!HœS5ið&ƃbe½·Õ”3màÃ6C¨R«Îj‘ꤤ¦“È…Û ¬‚‘DÀ?©Ëyˆ#É™H¾SÑAƒ Μ¥„–8ð³–Ìø‚L¶oj#Ì®Þ`Æ­ª7ãÕj%à 3‡§4ÿeh, N¦ìˆ?mFäåÙèð£®æSF j@sw`Мº°þ2IhDžã¿´FA+Á)<@Ó\«ãÚGXXŸ^‰øL¾*Jd»yš™J^eáq3+]a˜™}=ž˜æÞ †Ñ1¡ 9óÎÞÌ&_Í:€ÉcNÝ£Ôeµs‰wpwrR0ó7ŸQòˆ;xÐ?g¢Ò¼„«Y—öÅlai‘ñÎ åîsï=šíÝ­ÝÛ:­Á×”{<ë龡ÜcÊ=o¹sÚ¢`”Dz wÎzÐ?—7T²Æq·¥‹†€ïF ÂM-CgSf¨­úä¥ðÝê’Ö ¶.p­èU•Ç›péÆÎ5¤ØK“K¶`¹äÄûÁ å–ÕÉ @=ÖOŸ¶g5*ðDÞ†mhšÝy™ß8„ ZÁr‹¼ê—w{aõ:f‹Jé®ÎËëx20÷}µ´r´:`åhðwtm«]¤t=hã~ЍžÊñƒ%ö±É[óè"v\¢6ÅÅn'‚o3¼b•v§)­%u+:†[èݶÛZçG.‰þKh£ ãmöb¶D'9ÍmXwËnü ’­:âmÝñ øcä'ý³­åaZ Úú- ìa^ZÝ-£¯;· äà oaz-öE5©¾ðx²@œÕ;K¢ÏhÑþåžÒ‚M¹Ç$û’rßÌ œç¬é¡“M“rSò% LÊMÉT.ô[Xb ×5qYo©˜–÷ŠÄs2PÞ› ­¹ž)âí¤¢Wã6Lì`EÐÁzfMRdŠÔ®MõÒg€¨ÛäŠü²0D0…Œ«4:ùÐÇ:'e:Ó)Œ 1‰G$qA/(÷ˆ’l &里³-WÓì<«PÈx+ù½ã=¨yï¨z¡å}Wó>¯‰¯kâÚÙþ¾*H¹•áñ–IZj󾨢­ä?Öó*ZÞ7$Þð=×ÎDù¨2–››£¢0h-Z €¢fÛYVââP“jaãZöƒÎ}éµÄþ;w jD§%Mj¬7[¨Gz%éÚ ZX(”$Ȭ$ojw4uR—Q$ص¡õ¯ ßô5U[­ãš˜?þðœü-ô½q£I›é†«ç„ì1èçü¶7}mÉ5ØZÛØ!õ0Õð¬æ]Ý¡†f~[iÌ–°$Ðã\‹È@­˜= Št;8¥9M]B¬3k=G¬…¡zÄ6)†á&u[Ä‚¹PÀ[pc[»ŒØ×d£QfVvlp™=n{7€|Ë}NeÍ7á4ë”Ѥ)aÉÔq¤^Ò̧ûšߊõÄ(ãáózŸ+*¸mp¼¤êo гIØRõÃD›’ÿЋ7µOï½í[«p{2í'" 6Ýyty£6|‡é-—©Âk²ÓTÂõe:BŽwýn Iuzà6ï¦lA½QC̘ÿŠ÷y~ ¢¸Aþ!ùéz–P°½“ñZŸrÿ›`ÿp\ ý£šxú45žÚ@3ÓB9$vÆàþ´à7„®Ó 4Î —SjrE|8©¹å<ݧW ºž€µŽxõíåiÏŸ°5MÊ î@] aÉü]ÿ43Áÿª™‚ž–DÌ%ƒëj‹J¤9û+%aÔô#ßnÄüšžPrà%´U€Ö†)ÈÁe‚å G@{êP¿™°o¸ˆ»² ó„@÷x<)÷“q²°ñ–û¨ö‚7a½!¼uZ¼1fÃ+»sùÊqAì Ÿô9u†Ò+w.®Øëí­3h­æ·¤M¬™Bætð±’&¾Ùð öÊ0)ù§©•ž…Àˈ€hF¨¨RNŠÔ®~œÒÀBÆ…þåùq¯H€9õ»o,Àèk¥\Ù2ÏsÿìgÃÛ–öáÜ»:G42»ømFûn+'8á¾ÛN F¢x?F¢ EšC» œ§jP1…qZ·Ån)â—©PazD)3¸ùøØ5žq¥´þÉ8|‡Ç0¾‹±_ȲŸÿùšr)—~±&ÇiÁf“A6.XüXAJ cRÂEÙdKÎícŒ(Xd¦ùH(é7xr4¶ÿÜŸ ׯ~xçËýQ¨”Ñï Ñãl`¨ÀPÖ ¼.Düå š³CƸ1}ŸX —ÃQësãXëÿ4בEM©qçnû[B%ÞÙcÒ¢É"^á‹pÄ/WÊ!_µñ lgY¸šÓaIk.ÞeÐ"Ü‹ä%—šÓrúæ¤&r±k´ÃMêÏ/IŠ—^¥v¤n€"Œõ¼Cø æ®N6ÀØç.õöSÚ_–jq×~äÏîòE˜M.rîw9[ %ÙÅ­ r:ñ6‹Ä¦mÓ¾úºÀ ßç £•qÖ0f`ðŒõÕœ8IøâÏ» \/R@ÒšÃaS›³h!6>0›&!¤CŸ ú%*2 ôšcWo\_kŒÍ÷³16û0ÜQ[˜üô~X»ø¬…Ã8ÝGøn§!§¿Óði %m—ìÓévJR»\þ)°Ä&–ZŽ¢{Õ0‘Óø_‰fŒF»½AlÏ-Q&>YŸ~®çqf,íWUF`uù3‘öó )¢yˆ7D…I!|â¦+”ü ._°B§ÿ’‹ˆÚމOŠú!¹_žËåŸúZ"ÖG„ãqÝÐç’ju ý@‘ Õn:édØþ¼÷¿Ÿ‚6endstream endobj 646 0 obj <> stream xœÕ\[s\Å~Wñ#¶xÉŠòæ~áB‘Â$€R…<Ë’$ËØ² ùõéžk÷¹ìjµ–ŠŽ{ûÌôôôåëž9úu%¹ø_ùÿ“«#±:?úõH&êªüïÉÕêÏ'G+…^Å!:åÌêäì(¿#WRÊÁ­œ×ƒôzuruôã:‹ÁX­­YÇ1øh•ðk=O6Ç)-üäÖÿD²F½~q¼ÑjÐ8N‘삓֯㳠ÁE½¾IÏ^Z×O=˜Áݾîóœ!UÆ~s¬Å`]ÐÀ*­µònýGÐÎÛ`Ö¯ÒäÑ ©×ϲ|:E‡{ž'qÀñ‡‹ÊÉõk"ÝÕ±–ƒ4Q®.⇅éþuò7Ðià* C "®N¾::ùèÇõ_ƒ¢1‹ µ7‡€Á@Γ‰A„ ”PY`Ñ+RÂJa’*«Ä‡õáq}ø¥KÔ†ýj"Zö¦S6zY̼Œ¿£‘( †¤B5ŠúkóÕnâ"ÊSGsVÝ-•ä]½2ñ$BwÊÊ]°ÿJÿM<’2T'ªr0·R[}(lK\ ©’*;Ð ,_ ­£__€–c¤&Ô8ç1-=À€j<æPœN•ô£Mô6‡\*J²` 9ÌB±7ÿ½åEL™¥X}Iâ0¥?î1™ÆaÊRè.¨ùøÜv¤ÛsÝàx(–ÂBq¡ô]o,y›ÉïŒ@6ž±”}nÒt •& ˆnމ ¯y>Tçbƒûƒ"±Æ|‘ø3qL#a¹q¼¤S#3<ÚP¬°Þn"]zñšG¡2]¡]¤ £Œ=ß.ÜMÂÝe´9ƒµ#žN‚ø¹ãÅLÄ.úzÂEõ¡Àœ¢CAs,\g«U¼{Õ¤7§¦À6õM¤¦’82·ŠÂÌØÊ w%OŠ à}ÑMþh¸‹6&æ´f{œç^Vã<@r« êMvЫYCPÊóþx“ ×FÈâÄ_κê%†³N¡²Ÿ·4ã/+ñëúð]}8éÃ}: _¥5¤ªi 4;½bù¶?¯mÒ¿tAv®æü»æ_@ 6@ÁÅ@6ØT†Aà‚´d©”–Ž:KÊ>ôwFè鈳T­â“mâ܉@m:(0ádŸŸu$²H¢¿ÉøDD‘, !‡—©T†²DsÙ5Ë‹¤j£ d©š¼ÉPÄÊõÛ.Óˆ¡Í~‘gzL¥X 9ÔétÆ%|B1 Yñy¤oŽÐŒ‚t- Ïodä`T¬ßM]~ù¦HâýÔÇI1Ê -ÏqN€D6©UauBñðž H5z»±%˜¬¿‡ád &ºìeEŽG‰ U–eäÐÕd°^g2jðlšú”´ðY{ûõvlïí|då>•úH+FõœtO¹tJ,j©ãóŒÌ3îÑØô4ÛâÝ$Ô#5lè$Ñ"¶¯-àZ)ª=€"h''·¤L¤¢Î´“ê4‹í j;èïȨjËÚ-Ô·Ÿ»Øî~dñ`8ʃñlœ˜þfb8œMæ»:VaÃÂ~<Ù`ÃxºT!É0ö¨döFÂò`\ »ÅÖ‘Ç)¦‰…¨pZ„4“6YŽUžúÞmj¬7ÇP¾Y >ù˜ª"­?øHüú"ÛÒX4Ø=È›ã@ß K)«…’WÎí.€å……Œª{µQ¤»E„>eÄ n„uQ‹+›@ð¹€n«¨F;ËæÌ‚Jkƒ{îI^vÝYž“y>é,˜`"Ú?A  =À V´ÍBŠ$Ek¥4”ÐY( ¿3BG œ%c‚&M'0i²„=À0™ñµÈ‡j\|ðxHÑj‚ŒÒw(ZIMzZ #ÎÿiMº¦_¬OŒ×̘nªÞòFTçbT¸îºØ[®Pí³ókŸmËNì`)NÓ—ű7®± Y°die^°~Ç NãíÔH—XÃx0Ò¨¾Ü¢=‹:Ú%KšòŠk¯q1}úíË]Ú³npÂeí™÷á½/æÍÝbhÓÑác ºÛ‰.†»9Þˆz†Öß'úgýò-š©yyÅu/%kv—$ÍÎJieLgIU ýzÃYê–VqØ&qîÒìÔÞBéRrÏ—©ž³Â`ªL?(÷i•¹|ª 5à‚¥M‰³<†óqkó`ro…×Ü8„raà[çÖÞžòaÐQÎP”sÍ× }`õþÌ›JÖ.NˆKý€™.Nzzy'Íòû4»K]*ë5¶wà5Ãå@á¶6p×¢0TÚ 9ÍŠŽBζ R·.µ6<ø‘Õ¿_“u,5—ßQ/Bù8 ¤¶Ä%áµxP!’ÎBÛ§ýµ©«ÚH€«#\1Zª“ÓÜ3ŠrGÏ:ÜÜ©ˆoó(Ò¨»˜pïºàÕb–…i-,µu°­üÐ,žÞŒ©”ÅKZäwF QŒ±”˜ÕÄé&NÑ ®<:uàùX‹.ªç4”`yÿ§Ý˜éöæë„TS¨•Ñe‹ÎÅtwØe‹|"u‡>Éy_ð3ZŸÖCOÒfºêŠÜ.ÓS¬¢©_…ènuñÕ8ä⊱|?»7Ø‹Ò@.qrëà|Gèš­'íój¨3±-:¨ÒP Ùz¶¾Wg׆<¦–Ý~?e:l®`Ä{[ ÷àO}ìXÿ£9Ž”y4æ/½ÇÖH4YZ©Â>¸z^Üv¢q‘Ýr»N•wmDU§ÃÚD»6g¾ÛsE}h~ª&‹@m±rÕ®ík,Ì…pÏœ‡ä»Í‡Èèy A&ªì£‰ºûg3 ·"{©¿V\?»®™û Zh_n.ŒL†Hã›Ì!èÞ u‡ž×;heܲ B I "”æõj­‡ ¥#‰Æ’ù’`,uŠ4l[ÔöþÀB9„‘Ó¬T°”)ïøòÞ_þÉD˜¹ý‘ʈÉí‹w{vŸ?»û¿þÚÖ*Œ®|‘4ªU”s'«¬K6`—Òíl±¢ìÜyi9 @iíE¸u2™~¹¦C䤙¹œÜ¿1¥ˆÜ¼;$à_w¸Câú’Ϭ„ˆÆÑ"äÞÈ].‹jrYgc\äëåªJºObC¹% jm÷It`÷I¨T—ùÍ`ÜâÕ‘ó&Êþ×BR1¨âm.€ÐŠ»Xk0~©ïr™ÛŒ{³™2»’ªzhº=_?AÒïƒ4™Š¡êZ3¹I”­e[í©$ö[)ÞRÒà[¬öT©¯IíY)-ct–” èïŒÐ3gÉ ¢‹Ó)Lœ,¢žŸÄÂ{~|Û¹ÈèþÀ“XíCŠ‘{מ»@â|Çù¼ô¬ƒ/_á$†ïwÂp(~X† 251iŸ”6:”í\Lµ‡ÊÂÏèŽ÷P›’Ã×׳½ý‹~°éÔ ÁÆK{Ѩ¯Êl&Ѓ%‚ÑÈÃù˜š¾ŒZ€·2à×uÔ´“öµc¸ù°/¿ç؇}%¹ýº?r–²õMf »ŽŽ·}+-æzr¼_Šó=Å=L)λ(õzþ>dÏ,«Ñ‹”»HD¸ŸA› =åè ¹ o¦æû~f1Áp˜’‘Xæ&½É˜ZÀÕs¨§\äCH—‚«<„SŒø*' hæF?»&AœKwíæ…›dÁ4^‹„™Ã}²ÝEö Œ4s_ü7ð„ØúÇy£ù1KÕI LÔBA§j`–—´QA¬~ÑÑ:%Vîṵ̀P/G ùñ¼?¾ì¯}Ü©¯úã“þxÝof.Ú㜡Àýäø¯Wº8~–‚»â°"Øn¤@Vˆ‹×8 ÆÖÂsSHs†aj²iÒ¢,@üŸ‹XÀüÓOœÂCT:¸Ù2’G(xTné0ç×´ÌtÕü5_ñl·¿›‚χÕÁÊ!©1¦ª¢EJ‰&Pv\-˜¹ ‰€¡ËÊÓ‰É×½Ÿ\¸ôÍýbAIàåy\PM§.R(°®œº˜rÝ}¡þÎjË_ì¡·´Éö¥‚æ d[ô~»¿rÌ9§µx.éªUoñœìe»<çÞÝLƒo0g@ˆaíú)ÙåºÓᆿY¹ßR?ô|‡SºÝR×aï[êÁ¬<8¬9ñRwd:t@—ï^/¤ZfŸÈðPY À)pWyCTé;¹¼™Î'Å<™pØ:æÍ¼šïoqž‰Üuðìeø·+üèhs½ÆÓô­áØ+`™½q>ñ½ýzHry®}*ÉÓ<Þ°1&œ™Úüw=¿ç½µ3unÚ­Ó²zïÆm¸v . FÉSZ@‹ü“¬ÿ¿„Ü {³i÷í&KÑpt ©fG“!íï&Rq_U• `ÐóŽ¿|¬ŸZîPE8(èÚ_3è⡳z;8çjë!Ù'É ä€ŸÆ"’2.>+šù9G@Ä¿×Í“sŠ¡ßl´¤SNþ€çےΟüƒcÓ·mwøëŠ]¹==÷ÜþKéK·ôáÚ;úÄ…Ï[|Ù²½ù¼Œ£pdµø©Ð8jÚ÷FêÁèûÃùµ{Ãrb[çë”vD˜ì€wäÁÒ›Û$ž$Oê@Hž—÷ Ƀ` ö„ä¿Ô 1äËR]5¯‹c1T÷Ø3Bõ(°G(â :†M%í’l~¨ Т¿V`Çf E5ppûù46Ñ+Y“b’ok‚L»h.?òâ"ÝV´[o†Ñ¸›¤svVfy˜ÍÏ X´«•À4êš¹Kgë¼E,‡̰Pƒä']U*ª „µ¸MÚ ¶ó}B‹w-Ä–¾È…Aܸ69Æ‹Î5rT'äbv·ðU^~Ð]"$øš~fI,6gÚ¾N¼n/ëå%ï’±L¾Ï…wg+‚õš‡çR7ޏÛR›Õxy[þ‘ë\š×7øwHÌë‘TV?ÿµ»Œg±bÎReÜÇR'8ði?ù_*~hf}„¾T}4ïœ|ö eQ0wHV cÚ%ŒI¿À¦À’Ÿk¶¡·ÔP¹‘}‹ë÷Å–Kp^s9)øSS}VéÕFEìH32}@˺Gé曣ÿ_¿D·endstream endobj 680 0 obj <> stream xœÕWËn7¼ïW |š ´4›ÍGóš AbïÍÊA‘-9ˆV$ÛÉß§HÎìôŒvå•oÛhsúY¬¢ï:k¨³åoø=¿^Ùîru·¢ê톟óëîÛíêå+²Üe“£‹¾Û^¬Ú7Ô‘‰]Ll(q·½^½éemÌÁ÷f½±&åàlêy¿[Ö¢€ŠýwÅí¬Í°ÿ.6GêßáCfgõgÅK"1sÿPíDsÿ§ x;å¹YoX¼‰ÖiïEó²O³ï‹%RHH‰#l‚Äþƒrl¶D+ýÊÕÒGÏ<–ÂY\ÞÂ0*×™t—»º~ßþ„1Ë|Êb²ØÜm^m¿yÓÿX‡¬çÖZ6–C íƒÍ–[!AöwÕm²qˆtlF™”¶¸}‹­Ý£ ÙIBÙ;³Œ"Fïfß÷“ùr2ï§Ï–Ášù¥`û†!„…„]ÁºÕº]Ž®¿†a%¤˜Û3šÄˆ>¨³gãÙ:zæä³U²ÞxëKe;wÝ1ö”\j;fJ‚3.™ÀŽú¿Z>Ávn§Ðâ2ÓS‹*GÄÅ1rÍ¢³/–4hëóºÜæC?&Rî­扥±Å°â‡¹Œö) TÐHÿ©`ʳê@‰dl ˜á}%™äÛÖ›_vî øó¦Fó‹Š®×Ø5H}ܺYf+ß{Ýÿ}ó’MO÷ÒÍrxˆµSA–›}sy‰Ëàì|ºT£à|9ÛÊn0'%L0Ó8øÔÒÛŒ1¥u¸Ç¸D#ÉèÐöQèêNO¡¼;g—&^ˆéf̺qÑø?OHó$¤?T&!ÎZ=of ·s+©ý}-SÍô•¸£ôU§¬°öÙ…¸³ƒ%Š-ãÓ f–‚™€«ðˆŸ!˜ Zú_ &Ë„å£3‘Á‰ç &§ :¢¯Lä“–Ä…Ee é)ŠIEiåXÁ¬㱂YŠò\3âåDsï-ø ÑÐ Vö1öÃ0PûAå|Õ#X”§¥îjâŒYL¥¯Zô§Í³Ç§‡(édNI›òŽGMIýÈ@GÜ”:Þ€æÉ/‡@fé‘‹ÁÓ8iŸÒò²ÛóãqŒÚ´G=2ê@ &ÐÑëGíq!Œ‰*.t”óÅ^Qn»—‡!Z¸™ÆéL Œõ;º»Çyέ¨ƒ¨þ‡R*ë#o‡€6ñª© ¨{|ɸˆäÕ{ll>§åÃûŽÙ-®aUЃLÌÙ8Gœ³nfÏQU.µ—SÀKEöÒÁøBÜ·îŸ= ¤‘ëí¸˜ö^/ÄXóüiùÅÇ[:Ø‘öœHëûfâ˜%òïZÄ‹³œ>£¡¯KTï”Ò¥6ãn΂4øÖ“Ÿª‰;³ÿ~»ú ÿ]º^¡endstream endobj 4 0 obj <> /Contents 78 0 R >> endobj 97 0 obj <> /Annots[102 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R]/Contents 100 0 R >> endobj 149 0 obj <> /Annots[153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R]/Contents 151 0 R >> endobj 186 0 obj <> /Contents 188 0 R >> endobj 210 0 obj <> /Contents 212 0 R >> endobj 231 0 obj <> /Annots[239 0 R 247 0 R]/Contents 233 0 R >> endobj 250 0 obj <> /Annots[255 0 R]/Contents 252 0 R >> endobj 258 0 obj <> /Annots[265 0 R]/Contents 261 0 R >> endobj 267 0 obj <> /Annots[273 0 R]/Contents 270 0 R >> endobj 275 0 obj <> /Annots[280 0 R]/Contents 278 0 R >> endobj 283 0 obj <> /Annots[289 0 R 290 0 R]/Contents 286 0 R >> endobj 293 0 obj <> /Annots[303 0 R]/Contents 295 0 R >> endobj 306 0 obj <> /Annots[311 0 R]/Contents 308 0 R >> endobj 313 0 obj <> /Contents 315 0 R >> endobj 320 0 obj <> /Contents 322 0 R >> endobj 326 0 obj <> /Contents 329 0 R >> endobj 332 0 obj <> /Annots[337 0 R 338 0 R]/Contents 334 0 R >> endobj 341 0 obj <> /Annots[345 0 R]/Contents 343 0 R >> endobj 349 0 obj <> /Annots[357 0 R]/Contents 351 0 R >> endobj 360 0 obj <> /Annots[366 0 R]/Contents 362 0 R >> endobj 369 0 obj <> /Contents 371 0 R >> endobj 376 0 obj <> /Contents 378 0 R >> endobj 382 0 obj <> /Contents 384 0 R >> endobj 387 0 obj <> /Contents 389 0 R >> endobj 393 0 obj <> /Contents 395 0 R >> endobj 399 0 obj <> /Contents 401 0 R >> endobj 405 0 obj <> /Contents 407 0 R >> endobj 424 0 obj <> /Contents 426 0 R >> endobj 456 0 obj <> /Contents 458 0 R >> endobj 476 0 obj <> /Contents 478 0 R >> endobj 501 0 obj <> /Contents 503 0 R >> endobj 507 0 obj <> /Contents 509 0 R >> endobj 514 0 obj <> /Contents 516 0 R >> endobj 519 0 obj <> /Contents 521 0 R >> endobj 525 0 obj <> /Contents 527 0 R >> endobj 543 0 obj <> /Contents 545 0 R >> endobj 567 0 obj <> /Contents 570 0 R >> endobj 573 0 obj <> /Contents 576 0 R >> endobj 579 0 obj <> /Annots[584 0 R 586 0 R]/Contents 582 0 R >> endobj 589 0 obj <> /Contents 591 0 R >> endobj 595 0 obj <> /Contents 598 0 R >> endobj 605 0 obj <> /Contents 607 0 R >> endobj 612 0 obj <> /Contents 614 0 R >> endobj 621 0 obj <> /Annots[626 0 R]/Contents 623 0 R >> endobj 643 0 obj <> /Contents 646 0 R >> endobj 677 0 obj <> /Contents 680 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 97 0 R 149 0 R 186 0 R 210 0 R 231 0 R 250 0 R 258 0 R 267 0 R 275 0 R 283 0 R 293 0 R 306 0 R 313 0 R 320 0 R 326 0 R 332 0 R 341 0 R 349 0 R 360 0 R 369 0 R 376 0 R 382 0 R 387 0 R 393 0 R 399 0 R 405 0 R 424 0 R 456 0 R 476 0 R 501 0 R 507 0 R 514 0 R 519 0 R 525 0 R 543 0 R 567 0 R 573 0 R 579 0 R 589 0 R 595 0 R 605 0 R 612 0 R 621 0 R 643 0 R 677 0 R ] /Count 46 >> endobj 8 0 obj << /Type /Outlines /Count 8 /First 9 0 R /Last 59 0 R >> endobj 1 0 obj <> >> /OpenAction [4 0 R /Fit] /PageMode/UseOutlines /Metadata 736 0 R >> endobj 95 0 obj <> endobj 80 0 obj <>/Length 6107>>stream xœí]ÍË&Gïç´„h^ðˆ^ü‚5ÆC"h4b‚`4(¹¸—õ þ Æ„|xó*9¸—œDI4 Dˆdã®xÈÇFAr_ã"{z홚驩ꮩžéyÞéç­:ìÛû<óTÿº¦ª»ª?ªw·<à<ýç× ¼üÊ+]ùž{’Ï„òo~½ûú'úr©z ¿á?›øw¾äÿøÿ¥Êžg$÷eˆ–×kø ÿYÆ¿ƒ?x¼Ž– ;þÌwyX|>Y>wîµ"õ*ˆßð$þüYÞ~ß îPö (RïÂö~Ã_5þfÜ/â‡x‚û _ Ÿ»6ØŽÿcø ¥ømØðþŠñÛ:°á7üã·u`Ãoø+ÆoëÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñ[ lø Åø-6ü†¿bü~Ã_1þ.êÃ{8L¡ƒÁÏÈ_-¬w²lø ÿãßE}w^Æûù1\ËkO¼³Yü ]Ä™áBlÇÿ1ügÿ]?ú(g¥W¿òþ ⇲ÅÀ†ÿðñëm•“·ÞSÇ/Ô»Å8KÜÞ½ÙþÜz ÿÚø—0øÏ›•ÿ†bà%Rv½ Oÿié½á—ë]C¯¶#ÿÆ…¾üÈ÷>~'|JÊÇÇ |tt1õŒP†…l×nFž's éƒo]Û3~^^X¯á_ÿ<5z ø£Ïw1ðJï  O=SÖt1¯ã6`øSõ*ïoþb›øCù4càI߯{/Ñz•N‘·áÄ`úç·C~¥ ÿykøO9Öˆo2öÐ0€âømAï ÿŒz•¼}ý9uàIñ)çî'!%Ÿ\ü®ßr¹Éå-¯£B^A˜w¨¿Ò…Þ¾þœÂ:ð¤õ‚뫬WxY|f¼€(ŸP>¤uÔI€Å¼Šðk ¸ ýÙw ¬‰{sëŬEöÃð oÐì<«›W/7µÄ0eùÄ\Í•EÇ/1ÈykøSõ:(!6ãÙzx°1p3<ú‘¶õ™ÝØt1-‰Ý8f«%†Q–÷ß sp—¼£äÿëéŸÿ‚òîþg6‹?Uo×®ñü QÈzxà1°w¡£Ž §ÜØ—ƒ“‚øÏZ |òƒÍo¨Þboý„»õv÷îÛÝ¿žÞ|, xƒøSõv3ý\ ¥¶Q0ºMü¼¼ïx’fÄ¡\èâþsÓõž¤ë}ÈàIò8°”ÿÜ ¬^‡ÜZ—Þ‡¼Üný«ßso=ÛYr Þ“ZφWyó÷»þÔ£Øcš]¯ï˜ pÈmÆÁå&ñwó¦h.^ÍÑSÏ` ìԴĆ âǘ‡©rPhïU‚ZúóþÛëÏþ2 ŸWoÔ~†Ú¿õífôó5OÛ›ŽÜfØptYQôCrßc8Žº û¶‡ÉηžÅÆ R”g´ÞÎä…ŽÉ{Þ­hÛExFù?ú°é«>¦°ž»´¿פŒ)õ ”½ ÷Ab€ãã Ÿ{ñ=—CþÚ5e½kàWú ~|ðÿªU |~lKµ€ûæËM÷ÑG#±Éa¼5ÈŸ¼ׯ`òZ™n¤f|ÛȨÈI/>±4ÓZ9Þ»7éwÿ‚›ìMNùÞï~¯ (<›BÃzCì?s>Á'j˜„ßB‡ö¬®œiRþËõv'|—Å bbÃGG]»LÚ³ þ…ù“¢à5ø•» RÄLØäÏûVˆÁRõެw/(ç2\oW˜ä>k il¸³=€;ÓâÛèß]”OèìB¿ bñF .Xèaƒ¬Þùæ/œ(ÿåz»ƒ?x¼Ž– ;þÌwyXxçò¼žÜ &q.Á/» p4Ú¥q(x›rËD`¿ü>ËÊß˹s¯ñ¡¯ Èò—›€ñkô‡È‡“¯®3à0óœ^4§å£|GÑ&ò_®·;ø3û÷¡ì …Õ-³áUíÊ“zLöµ+Ûª ãÔ[ïŒß 6ì(…M¿k¶ü5È1feÆ;MÇÚ&«à[âMDûyÖ ”²aAþ)üÑòéì…Î%y¿ÞBü“lѳršæ¿NX÷šÍg’ƒ÷âr×!5¨4ûŸSò×t—óôG^¿ »åñD4|âÞ®…NÊ ùgÙÝþöBŸŠ Oâ×@tož>åÚ‰CkÚeñ§Ö!çíõ×Ë_c½'ÙK¯A•ª×éNÚE~‚ß…>¯å!¬=ç¦@xfù’fìMµEósðǢؔ¢Àñ˜r͉Sê¼®¼–#“°~#È_)p7W„õÛí"?!º§d(¬íÕ´,¿ýÄ&Ðä:¾¿ÒQÌm ¦lúw¯‘¿†›Þ†³°eÉ_I ¹4ƒ°°Ÿu˜Û|´/Öó¬~/4þœ4;µ/ZþjI ¦÷å佬“¢±«>¦Âm\ûXΪT 6ÃÏTÊ_“@֟ɰEˆsÛEöÕÏöÉ*Ÿ{nخ԰³œîØX-LJ~åð+ïe•™¤°?ªl‹&Ë–¥üžº¬9¹¿S°crXø*vcÿ“'„°G™gáÉÅ¿ÄçÔìCtéØUŸãBÀŸ»D,°7ÿYã<+÷¦Êû³Ú…å)ÌAlÁvû‹!£éu†mtãý·Ñå»\Æã?æCN„ÎÖ§T쪟ÃËÚS-°žqtˆìåŒz=.BiÀnîJOÖ:¿CòÁGbVCá˜ëˆq @òì@‡¾ÑY.¼cVïKçÔc¾K¬CFñ‡X(“G×?''í²Î£Æ] JáwÈÏ$]§æ¬¬\Vú®Yúã}é¬u¬äŽQôÞ¡]øDêÂ9×o¥<ÀÇúx˜+^”øÃyî(]/xž3j.Ö[)箢106`""2Åñkº6§˜w rèö?¥ç#]oÀn–þhäé–¢„Ç€pˆ2Øó’9‡öB` L~ëEœš¾’)üêè¹K“øñ‹$þaÐ0¥/'ÈAðŸùIT (÷L"9¤ရŒ?uØ}‰ÿå™Ê_³Ddù“`¼÷øirb#þ³;ݘó9y:ÙSBFžä·-MÚ0çÏÕ˜ÌÃ/Ç`òäœëÕ(Kþ\5‡múájŸ%[ÆOÓ†ŽÏô¹XÞ²I}ÀÊ10ç±aÐEbÀ1{ѧðûI9ÇèÊù—–àçõBÇÁg×¹V¹¶ûÈ’?¨jö‚ÂíŠâçÆÆ}„,ÿyÔmádZãQx®—S ûð„ˆ ó)‘=Õ Ya>œœX¹1@cÆÁn£þßžˆ cü]ž'„õ è ñkb°è8,à×öw@í{l~r <NšRýË46$êèBàz1p»$}3y¥‘?î4S™ñ`ø=œœX3ü‡.y‚LÌÂw÷?“ôŸ_x0þ[7˜ôþ³Œ Ì#Kþ´k@Y]8sÿñ÷<îã‚|4þs‡mÌhüÚþs÷ÞÛ÷ÎýÄúM>ꪰº}ùÏnk1p¶ “ì ^Þz&ŠÈ¥Òg<‰ŽðWîv¬ùƒ; 7~ë}Y3‡ëŠXÈ8ôêMôM¡®Á€±`™«BâC¡<êY“ëý¥ð 鳊Ûp#|.Ÿàž —‚ç®dù‡¦umAB ñ‹rÁÆÀ¤L‡MEsv|‚'ÈpYü]7Ä:š˜yèåßc&‘ŠÚüL2~IÎÈ=ÉöŸy/0†Ï}è c}÷M–?m—U?YpExf•ø‹W_]=i®PYÃàw™ÄD#„A˜ð‰0ÁÔ3„„ g™Œ„—)Küõ½iÁ¯ä#è· [PŸµR L'>2Z( àKàiWz0€a âøøÑ‡á“£Çžt%ü‡†¡Îâ‹Ù³WVÎçî›~ëÜèçýç«øÏr€”`gøÏ½¹±ôüƒLâþ3gäèɶSŸœ "גּ†B§Ð:Ü4R)ã—®]X„sß]VÿôçMÂÎ6h>¹Š4L V||k°^BãÜ¢jùŒ0QbÔá~G#*“pmBŒ®|æÇ~jÀã~-ùüBª,9MbŸµ–ü‰™1Ú}æI•úvÅ~>¢7_æó…5ÅÀÍ%ˆ¼Õ'ïE‰Fú**«„ÏÉ?~NŸÓuŒqˆÁ®2ÛHëFáó¦Q¡ X ᔾu¼]2%Ò-¨¸Ö†V'Zä€}ò5b`}ÇuÆÅä¯aèûÊRø>ÆÏ‘2¦Ô3÷ ¼ÐŸ{ñ=bÀEòâ²Ã¶“àÿ÷$áÓÀáa|ÓâàEŸÊk=?üƒ3éèë:¤”ÿÝFL¸m˜· ãrˆžÐÞ¶›½mkÀŽéOAùï}T/Ó¦3)ùÓ·™6à"ø 2/Ÿ2€66ÜÒåÿ¶T^ÜF|øeÅôîÛþe>ƒ®G©‘ ègª¬ÄßaNû X‡>˜†î, ³¤0þ0Ú®€?®åŒþø·‡4í¥¤ÔCI‘ú–z…/…ŸPô™òy¡¿øô—áÆ †Ú;AHŽßÙyqGÆÓTøÖ‘ŽSÐõžOª¯‰– þ;žÿ¿ˆÀñWNFËCJ‡¢rpnïDÆ$ôM#n7%5&ø$þ’y¡—ãÝ-ÔÅÀ¸I­a@yÉÝ0Ê©,ì‹ 8M§ònr­)ÆëØzÛr¶ÿüšãåªÅ‡02þQ,í˜#Ý’ï_8¶ÐvrÉ„#‚n‹èÆ™’È­Í#;òŸÝHΤ¯‡ÿ‚§øuÆl±ÿðôWß ûX׺©à:pw\÷ÖÅ0º|,2!Ĉ̵ sÄ wdõ7 Fqfgv1}ùºò·yorôØ“rxÍlw…Û‰N®ÃðR][  ØÅÞt^äÑ:ÕzþÕÄ0€ø“ùBÀï >Á9¶»Ül4Û@W6*s2ÉõÒí~ƒ‡…Šè^èÑÜÞJéF[ æ­cæçHéüÙ€ùvbÀrøÆxofTˆ­€ŸÆÒ}Ÿ;Âéùüà!Ž-Õvº.•&è¶r׈c<¡ÜpjêÉV¤ød݇¦_Ç^xuõäýr8Í2é°€xÚêT (äÜ—õ§Ôå\þ|²@®¥Ê»‘”ׯhêÕ\i§Ä¿P_g×ËãÆÃ(½ó¯ÉÃ$ÄY¤ñ?—_‰Ç ëÕäÇŒ¿¢“€y­Xxßx§ ¡ƒÒ\`ïDÓpÐÌ9aüJTzØYrSök3l ¼˜ÈèW³ LŸû¾” ‡%Œ@‚ügÈY~p>gfYþ“õBY¶»]4öàe¼O5õ ¡RÖ’"~ç­Pø—£šW¯K¬?-'®Ü ö.\ôÛ6œÕöRíM50U¯²ëWâ×óä˜'å¿ÜîvÑõ·,»l˜OB!/e៭RÑq`†Ü :nJþ.­@.Süþ^¥üg·7Ü-”z Z¯¦:e[fôûXI&å¿Üîzù8î¦ü„,”{Ž€?kðI™î¹-éGfÈ?…ù=·kÄ/¡ošÄOêU¾Vå|A.~¢'3ðózeœkÅÀrftüB–à—ßwP\¡iËßA›aÀ“^ýÊû5ø³ä 76Ë¢õ ¯‡ÞDV½)œ+ÆÀn/1@A>†ßðW‡õXh@Áz ¿á?›øúò#oÜûøð))_€òÑÑÅÔ3B6¸v3PÖoÖkø ÿÁßÅÀ+µ! ß¿ì ¿á? ø-6ü†¿bü~Ã_1þý­G¡/¯W.~ÃØøOgµ‘w`ø ø-6ü†¿bü~Ã_1~‹ ¿á¯ÿ*÷ëË¥ê5ü†ÿlâoú†"¹yÖ¸ßUS¯á7ügÿ®TûõwÛ@¹TN ÃoøÏ2þUrb)Ëæÿ~ÿ°^‹ ¿á¯¿ÅÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñ7Ã:¯ISê({ïÿ‚2ÄÇÇÈ箊Ôkø ÿYÆ¿+ÕˆHŽŽ.º6àmƒ`;ïÀðþñï௣eÂŽ?sãÆ]ÞÃ)—Ï{­H½Ê²á7ü‰–·ß7@ƒ;”}ŠÔ»°ý†ßðWßÖ ¿á¯¿­~Ã_1~[6ü†¿bü¶lø Åø-6ü†¿bü~Ã_1~‹ ¿á¯¿ÅÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñÿ.¨. endstream endobj 7 0 obj <>stream xœÕ]YsåD–~÷¯Ð#< ç¾LDÐÔ°ÄôÐгUeSxpÙûMͯŸïË뛋®òJn‹‰ž [Ö’ÊsÎw–<'%e¹A q0nj^R*àÈ FúAÚÁ†0H9x‹“~ð#œ$.(q€»ŒþZœT¸ä…z Á ] 6ޏpÞàzU?-HFüƒ–Fà`ÐÊ  ÚüUƒ¶ZüqÞàä 8Ó¸ NÚÁð¥Ý`”ð¸8 ¢Úư3ÈgA×àÇ …ƃ ·š:Æ V Üa ŠÕòøÁZlL¬÷èÄN°±œ&Λç¢ÀMƒ‹`ÒšÁK\´¨A ;q°a ¢‹ c?Xï@¼è0r§‡(pàÌ5˜uvˆ ‚e)€uT„Žh¨6¡6 ¢P˜‡2 ¥0xhC`A%K‡Î¥„‚¨[(R9O3`cÕ+Ezî80 ù±nhØñC¤ú=䌼äyàJÀ‡ì2ÒHÎkáÉ!úÒ°²ˆ=­x.Òvh[ÉŠl Oh¡½LŒc/hž£e¦þ`™0’Ô4Lê •óhMJ:Æ1 “† ’´PCUHÚ¨‰*É «†ç4í— ²'›Ü¶)­!M¶µVS.ú…ƒv$%°>JÊŠ½HJ°J 3¡¬8ï$5 –NEJƒ»\êR9kx}:*Dj:—§ÃÁv¥‹” ÖŒ>4{ƯOüÁ‚¥W¤kèk&IHÿµ¼ø{G+±JŸú#"žF%éê!õGø‚èÌ*&tҥƠ§Ôš{‘˜à7Ø„ZÇ6Ô]2[ ½È¾,]ì1Á^ºB~¢¢©Q‹QÓ|H;ZbL4£³ ìù@ìp>FZd†}&LMðSn®3™7™Ö*ªê˜ê7÷—¿1…©X0§Yøž›_¸¹äfÈ|Üf oó…_s»÷Üü-_Mšºè³ª{¬êšUûtVïóá.›È}ïyL›Ók }Ÿm©£ËBg?»}*™!50nðùÕýÃîQ½ÃùŸ_>,cV<ê"ÃP¬b-Ãõ²½cÈ&š.¼Ê½¤s=ôTãn#&gñS?y„ß^aO†L_ƒéOóùY6·y3aöa–ÅÚüÆ€)/zêzȤßg­\Nãa‘&‘11k€b¬ §ùý‡Ün2–,äU¦Q@ÙåÃ_zwí§½÷SxÌQN¶¥qÔ…ÑìEæ¹°–Tz—‹!Í)í£Ö‹ËÞäsÅ¡‹0EòÒsa£ {龊!3–mëȵ„Á\Œ=˜.ò…]Þ›Œ+ éÈÞíܸ[«ö`â{ÕúÆÞ]mï«GÁ¢ë—-¯7-´Äµ©ºZÍ^äQl;ÿeF‡®Îã ±Z4㸂—*kÍò¦Ã¹ê÷Mj¦ë˜¤âèi&þÜ:Ó¯}úê˜~2];z! žfæë|u¡ÏŒî1SWQz!å?ÍÌg9H^/ czÌüÝ`Ìšªšª¦º÷ݺnÖ¶¶[]g„KÀ|±Ú}*=4œ´º*¾|šËšM[Ó\¨ þµ¥4­ùNÆ£&ò/ú—§ 7Ÿ[1]-f“öëP+y!P. 0ËëA_L³0aó—çzœ¯ñÿ»¨Í ç—¡¯Ó£jèMí_f¡tyñì±½Mh ©ƒ¡Yðù¿d#( ),ÎMÛ‘VǤl¦ž/2 ™Ò·mRÿÏ ÛlYÐ=¤ÿ2‹›¨–|¹(hZVÎÚP˜«Ù2M:±‡æ`6kég§„CÞû=«¼LÝtõÞ }¸ÈæÓÉ:(›fJLÕÑÊ,d1ŸµBL8œÔ…s¥Ò\ÕðQn|›KR*‰‡¶«RgÞç&5r¹·ª¯çÍÖ·ù­YO.²¨Óñ$ÃÔå>Iþ§l¥IþøAÚ~8cØ~>O6õPdš¡È4Ê]ŠNËôy–©ð:7©7Ç-B“B›…Ôýé,È·60WÕ=©ÛY]w‹JšT=(i}êÚÊZc¶žÍ° £j©é‹õßgM7[ë7Yò‹ö _+HBÒ·ó¶.]ìB¶þ¤Ô•çe>÷ßùðuë å Öñ@ÓŠ¢ŽEIZ¶õÀo†¾’þú!M{ïoy¯£¹Ñ¶Ny®5™ý+tË£¤ÉÜÐeÛé⣀mÝC»NoìÂþìql… sÃÚŠÛ¶·OÓClÁ$/ZKJÖŸÜÉWßå IÚ“ñrvò·—uÆo›ôÅÖOôV©½hòõIw+OQJ6öfYuÓÞ^Lë!Ü.ŒÓO’bRK¼ÍÊÙµ|žzèѲ­ŽÙÞ›Óš”éô<ÏœP'MÇÓQó¦3]ëG–«pž‹·[¥í~Îð›´½ÉÚÌ®‘dajçß3¸…¹¹X^ÂNçÑ~h³dWÏ/¹…Ú¡0Q´ÞUVq¢Ž9I°¹:¡pk¦ÿŠÍe–ç™k3§tø·6€\¶wsš“z®ç»–¡RFÜ÷Ñ=`êŒÄ-„ÿO‹ þ1˜¤HåÂÜ­I"3çÅ—ËsË« ti7 õ}ÜM÷:7q ƒÔ?îŸýÿßöÀ¾ŸÆ±$Ó+Àüãž7h”‘Åæ‘ÅÖY”k²(WÏ›n` E‰%טÌú< µ»ÜU©H®2VCæên¾š…¤N[ê Ú1l!‡)Ó¢o3Ó¥xºÎÌL^(ùë,È›¼™ðçÖƒN= m5íêœÁ-̯$ó{Ÿåy•y/¢”qºd7ÓWAúŒ©cÆö¨×ÏÈüÂ4Ç_³ L’ëî[ţe<“-¬dBïs{ßꋤ{"Õîåž=<]¤ÉL÷寛laE¥§ó…¦BlDòµoø…üî‹ÖPž_œt•Û¬Ã"ȤÖzÂCJh{Ö©¢ÖÜÓi¹ºcA‘uCŠ˜'üËõäª3=¿fî©èk”úÔ}zïøgÍÅ<ÕcÅ*hCO¸úÕ¿Pymãsb–Çd¥$èfGzŒ=iV?,ÓV/[ªõ2ì—ɪòùÁñ3ÓÂ_ÉWâQ¾²®m¾R?רupô…½ ü2ÅEDèù™Ñãwü¦Œ·|õYL‹]yå~7ijwýYð»ö,ØÇ]}o ò,¤Û2Ñ×\œüšã¸ya:Ä1DoŸ•æß¿¿»<ÿôæævwvþåùWg纽¿¸¼~`´?Éáù¸û- Æp Ž£ÛÍ3€Š"Z™Ÿf>ùîÝ«éüùêæ×çRU~ä‡v j@Üé0zá¦DÕFD•­Qi nR£Ñ L80!:¶>µ™¼&Œ:vBüHHÚQÀ˜œ¤á¹Ÿf]óð̆ä-qNŸ“¡P@BÀäŒìÓß ù}ïÆÈ©œ%]~ý;šhûôõÆôuþäF¿£é“7Ûžµr ün1Š1ZwHƒ5¼­‘×qTüðÍ‹‘ŸËY+Æ {’og÷Éábž_0F y8º fVò­tþb¬0ãþ;Â185X¸žwG!f+¢òš(G—¾ð³£¢¡ Ô;r.Äè­¡6>ŽüÜRó«r˜š³n–ðÆaÕ87Z›¾H…ŽùA;‚̼È[£m‘ÄðûV­F‹AÜ ¼X;çWz3—~´.£%ømÞBÆèQh?5¯­©Š0F§e9œX.L0Z§Tí¶0ëèF.Û l( ?F¯gP¶[§ Ú#禂Ò¡MD5;•×m,/R mÒGé#W‹ðjŒ3Òº­Gi¿>¤‡Gc¸ò„QÒm˜%äÖnä͹ý¼àR4,Ç¥;@QxšfôìŒÏnûìL#»æ ˆØ#W-ÐJŸØ§¿±ü*†¿2}˜¿Ô'äß8=RÁBùUôàç„üçG nn¸&†0Í/êa€BÏE·õ¢àc1-)“l^Á×1~ÍRÞZh€¯¹È#eÁȼÌ[Åóƒºá^\8BÁí/zØXtø·0.eÅ–¾fÀIWò°ux—ðq.?K+·Œ¢ûø]ù-‰Ã¹"×4‘ˆ©\~nE§ô>¼(¿a Eõ®E‚ÒŸËaI ò±ª«÷N¶46©ÆÀ5rV®¥ ¸˜‹«ÛÙùpØ·VŽ‹{±ÈNSg!t¬ÍoŸEdM^ ©Ðzä¢F‘Fù¹¢ÄomkiWIJÓ\ aÄ«Né·¯öÒ&ǵ€¬LþîYwDßz†—žBPEšë—ÊÏVßÊE™æ~¥Ðgø=žç=5¹+M\?»ûŒ‰D„¯´HêÎÀÕÝÇð΄Žß°Ø?ÐGørÈŒÆ(‚¢ 2t©߰ä?ÐO%‚K•¡O«×ðÓõîíêþƒ‰Ã¾ìã´GsƱd™5ñ­HD‡%E¤MZ0g±`%˜žèfû9ì8r=4`‚F‚¤Î®«z³™é&ôÎ"',r$R6&¾¦#ÙV¹ËaAL§À‚d”k9"Šb.Oß!ëÓߨß-—´À¨ƒÝ+ÐGÙ$õ ù7žö3È\Ò:uøËQ-üІ¹2m»¤ù@®n¸Ø¢ œ+ø«æ¢ìvùò#ê^—Ň1ÝpÊ1tòõ°á4þ>'¹t "¨å¬¾;'…aûñÝà/WÁUQŒ\ÐÑpÒŸkø9éRz¹˜.†û Oˆ¿±ÏN‰Hí£n d)u×åôÖ33†‘\~2ÀŸaÿF)°ÓIàïúl9 ?sé95²,ø9yý§H4ç!¹&´o¹sô`ç„øÏS0©dÎ ÇZ›7Û™=¼AsDÿ¸Èïnh”Ã^9®cܼêÑkŸ&¥±V®k/­£Þ¸2éºö|pæ,WY~lo´û"%Ž ï½4QõjÌBqÄ^pãþ|©”‚[_)·ÏÌs|B Â…’'•Õ?ÿ¾ûâ»ÝËÝ%´óéðóËë‡ËÅÎP¶ËÕ+‰K3šE†uíU¬¸Vòªö¨-XçymV¶×,€• +ù‘ɳ-$^ÙáÄ@´¶  ÂÔ;írMÉuWµçë þ9u¤NsŒbÑl+ŵõ¤×Jfq]ðbâ¿;_ £?“ñØ?$ˆÇfÚž¶È“ó¹Ê>1 ÛNtHSµÚutRYɬzö:ÑÌøŸ"çÿR‚L/ðÁŠA|}T>WÔ7`+~xÿ G8' endstream endobj 260 0 obj <>stream xœµšI$I…ïù+â/_Ì|‘F-s‰SÃhÍe A#F=¨—ÿžïeUwV.^åÑÕ²Ò3â…¹¹Ù³Å=*ûØâ–«oÖùÊ[j‰ïÊwå»?|ÆV¿[ÞJ5¾Ëf)ó6/ηmnˆá™šÁ·¶U=ßãÖ²ðcëÖø¶î<×óÖønÛ(úíÛèúÝ·% ’0â–Ò¤m©DnÄ ([ ÚÛ’¥Á€Ç­2ÏàqO¾•Èã^ žª)1à©êAaQS°ØžYaDN/ÆÀ g‰L:0FI(·‘cÕ-æKMvA¹Ôu‹…æ¬M•P·äxo»‚!‹´,X¯däXF²Ìcدd–ä\.Ù5Ð-ä8«,²Hž¥ÈUé¸ì:SxªáÃRŽæn dggíEÆ’E†èÂh‘X«HVBñbG-yÊ\ðÇLè–¦qnyÔU•Pº‚r®'Ž·¥†h©È²M–—N íJeIó‹8¥Kd+]rdÙ!9xÈŽVÅy t«3€šX–åÅ9´`,“C k³û a¯dxg&©ÉüøÔ`pT!i [È©² ²ðx¯ ¸\°¬WǬI2ô³¥&suñóY‡_…Ø€Ôþب ý<Â8ããQOÀ1´Ð•Ì@âᘧq\îæ‹Dr‘ј˜`b椨b …˜³Î@3C$wœfpÌ]ÚÁ1Žd¨åUk‚p.Ëc6Z7aãb¸eŠáÙ\ 7ÈæCƆc5"ÞÀÕXeã¸U‘c3¨ÌE¨ÖŒ0CzͰÀU7øÂÃ*<¬f#Ù†\„d7Ã"ÕecCrå²±¤Z»¼‡ä†0ƒ‡8G`$÷"0’»ü‰ÑëÈ#yÈù°ªEÖdpµÅ&W§­‘8d¢•rQ’}1ÎM4Ä -‹ð¹Ïj›ô5¨ÓLŠÁ¼¦\wIÄãUŠÁçV¥ôjMŠ1_kR é­K12hëR >·!ÅøÑ†ƒÆÄ`פé2%Mƒ*22ã`xÏ$XÉ@¡ œZ²è‰œc¸ \/Œ¬Ô¥”A‹îäLc‘]á %õ õ Röʺ!µr2jÀªÎR ¹AjƒÊ½‹‡·wñßLŠ_‰&% F,Â4]˜¾e ÓŒ¤ˆÇ+J¶‘ÄÅPFw&ÊOUÐÎ ¡°s7D=Ç"CëvH9Â:!3àú¦µ1ÐäT–ìÈhIÑÖ5@2q1Ĩᄏû~{“ ︽Þîþò׿QbbhxŸkp$ĈeÛöîÓÏ?ÿðêø?ÿ÷?oï~óîÝ/w¿ÛÞ$žŒ?î~÷‡ÃÝoyÿ·ï·7ñáâë·ÿ(ñ9(îJÏá˜Úk II}0SÉà¾ûáã¯>|úñøŸ~yJ°_îþôéÇšì?½û÷«WN%=0ÿëÔÓ4¾{ y"ðýâ%îãÞ˜îþzê>×Ë¡?à©pH:þxõêð`‹ÚÖmqOà»`~_ÃS;‘¬;/±µÅ$.¿›Ò\Èj+’‡‘ý¦­óµ­G²gl=Êa”eK#æ^ÊÉÎÍ÷Ùùÿ´÷Û-ŽéÕFw$²íßõ¦Ýʕݨ¬ýÞn»G+~¹½îo­ÛëÿHÛAýc’ö¥6ï?ú×§÷oCº2ì×ÍÙSH¤áÏsv\©vöæœ×A€¥|âÌIñ:²ÅŸ+7ßòì$ýŒn>ûJ¶TäP)"Pø üÉÍô”Ž©…”rÝË6%T莻pUh:­‰®HG«bq½°¯_Ù·Y™6.Óݹ±g;êoÑÇÔä?ÇŸv(´÷­7/áµ”òò¥Õ¥¦ßØîÎ{»=o²ö¶³¢¶ÛÕS…h4tŸá­´ûú)º¯–So=O[¸Gòö¬\àOåÿåZSúâ?#_ûïvþµÛ¹/+³}ûàKÊ_<æÔ¦çÈ·Ó—·°3ÚÆ$zRS£·RŸP«¯6ON4Þ£âþ:l¬3Û%¼Ò+ø6ê">²Ó)ý¬x>Oxuí‘ÖðüÈ1-.7µL1ïz#³†¯:¬¥E|¡º÷¼jÍÖBìRؾzˆÉ³_nÂæÞ ÑŸO9¯/•9Kå`©Ü°´¶‰gÓ85˶Èçø“iz £eKyßÀ‘ì’È3<ýDÄòí’ 3¼ƒ÷\—õ)àG‹«úrKŒÔòKêÌðÑÂðäcQzå ×å2gø~T½‡ZËË6|.*·ªwökøBCšcË—‘2ó JÖôÞn ŸÀ7Ëù2±ÍðÑÉ›q¬ê“:xs»J„3<æÌ£÷«D5Û‡B9õEº%ìYZLW‰v†Ç>†ø¾è/öÁœÂ²hŸá:¤ŒzÉ·„oŸéÝíbø²IìðEùÐÓt^ wÌ_©Zv²?ã´;3¿ ßn}¤Ð®tì“ã«Y:žágéx†Ÿ¥ã~–ŽgxíúGŒeQ~Ò¡bïv3<„ìt³¶¨6ؽa¥UùEï0S²Ëü1Óÿ†µQý›b…©¬ÊïÀÍ{¹*W|ß²Çqe&ÿË“GèUºkx:¬0NUM-ÝÓÿ6ðâ³:ýçÚJkýɳ²gnMºz¤ô?U < endstream endobj 704 0 obj <>stream xœ]±ƒ †wž‚7¨‘ŰØÅ¡MÓöà Ô¡o_8kÓtøH>ŽËÝOÕõç>ø•V·4›¬Ôù`,ó– ÐFÔz³~ O3éHªî¢ãóæàv¿ê ª»d5^ñ½ÉÌ–¨ $F -cªuNö¯Ôì ƒûyY‚ •U¨feÑ“Brµ(¯"DSgm…0&‡¢R!Y-Ž>†”-Jžc}j¶” ¬C•,>À÷_âKÍ7µc endstream endobj 706 0 obj <>stream xœ]“ÁnÛ@ Dïþ ýe‹&€±—ä’C‹¢íÈÒ*ð!² 8‡þ}gÆI=Ìc™\>r¹zy~Y.·fÿc»Ž¿ê­™/Ë´Õ÷ëÇ6Öæ\_/Ëîpl¦Ëxût>Ç·aÝ퟾ ëï?kmø‡:ßý÷á­îf ÿt¸ש¾¯ÃX·ay­»SÛ–Ó<—]]¦ÿ>õq8ÏŸ=öÅj[ž´Yîj²Åâ×ÙÇbÑúëP,ÚAö\,Ú³ìX,ÚQv*í$[‹E[eçbѲîSG©myÒŠE{=‹ö(Ëò;#tBèxIç‹:]Œ džbƒqáØPltÅ¢íd™&œ*”*P,ZȲ1mʲán„º¼3|oø^Â…C€A¸0`°'\oÀ^€=+ê]U¯ªzVÔ»ª^UõQ,Ú ã$ÎHCá`@L§‚RiàTP*0 œ NEV˜âYa^ˆd…y!^ð!À¾—è0>„Nž>4}pòðô¡éƒ›5l ܨ9`càæ@ÍIÂ¥›“jN’&M”"JÒ¤‰RDIš4QŠ(I“&J%iÒD)¢$Mš(E”¤I¥ˆ’4i¢Qòi§Ÿ7OíÒ×Òh­´ _ûØŒÛV—›·Ø[ªå¼,õߢ¯×UQ µû +Ôÿ_ endstream endobj 708 0 obj <>stream xœ]O»ƒ0 Üóþƒ„}Hˆ…. ­ª¶?eÀ‰Bú÷%:t¸“컓ϲí®»ò=¾(ul"M~ŽHÐÓàXT0Ó6ÆQ!Û›ïO X d×ù®G’Ï“:—Uµ†Ðš‚FŠšµRMmm#ˆÍŸ´z»9—¦@©…³Wr4—ØoÎ1§Ò´4ÉÓï™àCNÁñ8ƒSJ endstream endobj 709 0 obj <>stream xœ]“=nÛP„{ž‚7%í¯q1‚$ ©Gƒ…)‚– ß>3£(EŠ!4¶8»óA»{~ùö²Ì·v÷c»Ž¿ê­æå²Õëç6Öv¨oóÒìíeožã{¿6»çïýúûk­-¾P§»íßëîgv'ýii¼^êÇÚuë—·Úœ»®œ§©4u¹ü÷/·ûÃôøêX¤ièööR$Øì©®Ã¶ ¶Â1†ê:>stream xœ]‘1nÃ0 EwŸB7°ì8bƒK²dhQ´½€#чȂ㠽}?§C‡OàÙñDÖÇó霧ÕÕË¿duã”Ó"÷ù±Dq¹N¹jZ—¦¸nd5Þ†RÕÇ·¡|ÿq8 ã“߇›ÔŸÔ4ö©y^Šs’{¢,C¾JÕ{Ïý8r%9ýûÕn7.ãv´‹lñ(l p¿g‹÷¨U¶x lÙlwlî;¶;E´ Ö*X+b laÌ*¨UHl&E“ *F¶ñæžðx÷¨@’I’JÉ$I% ‚d’¤’A2IRI lE’I¢êp_SÔ9ëÆ^ rñ±,’W[«­M·5eùÛ|™‹ÞrHõ ÎÚ”” endstream endobj 712 0 obj <>stream xœ]O»à Üù þ’6Í‚XÒ%C«ªí0C2ôïË#éÐáN:ÛgŸÉ0^Gk"&àä "ÖÆª«Û‚<Ál,jZ¬ŒŒ»*,án¿?p]õ],@ž}SKM5I§`õBBvÄ(åLkŽÀª¿Ö¹&½O¶À (MŒXwâ”&FìÒñJ'Ùó‚$û²üX“ïäÄG@,·ÀÆòV‰Ó ¿Ï½óÙ…ÐóÉ] endstream endobj 713 0 obj <>stream xœ]’Anƒ0E÷œ‚`؉„f“l²hUµ½˜!bƒYôöýó“tÑÅéßc{(ŽçÓ9M[^|¬süÒ-§4¬z›ïkÔ¼×Ë”²²Ê‡)nOc×nÉŠã[·|ÿ,šãþÞ]µø åŽÊG(΃ޖ.êÚ¥‹f­sÒŽ£dš†¯ªê‘èÇç§Õ Ä9Ô¬­+!ΡBwB ;S/êM‘«™­-Û «á*¹†ÙƲM-Z›6B  Ô—BœC…b žÛð¶ e<—ò¶”GÎ3ë™Ý îMB Ó^´7B ÑT…@ÕtÅõµ=ûë°ýÀ#;B@ÏÀ¾¨vׯKµk·¾æ•ÇûºjÚ8eNц7%ýû–y±T²_ñ—w endstream endobj 714 0 obj <>stream xœ]O1Â0 Üó ÿ ±T]ÊÂBÀRÇ©2Ô‰Òtà÷4iËÀp'Ùw'Ÿew½\ÙgðEœg›h sB‚žÏBÀzÌÛTG…ìn&¾?‘`1[ç»I>ÏúTWz a°4Eƒ” $¥ÚƹVÛ?i ônsu[¡ÔÂÅ¿+%ZJì7甈smZ›”žé÷L ±¤`ø,%S& endstream endobj 715 0 obj <>stream xœ]‘1nÃ0 EwB7°ìÔb\Ò%C‹¢í™ÕÛRš¹-}’Ò狸.îÆ‘äá߯ú°mœÇÇÑF A§ëÚFBÐéºX3‚NņÅÆpLjâÎP÷"v#v[F[ÃȈb4Ü3¢¸7<0¢x0LŒ(&ÃÅÁP}#œ£9Ç‘E½sG*H$“$$H’I’ $É$I ’d’¤  ö|Ïw²—´Nžøt/EòŠâPŒõ1eùëv™Ûò÷ rò endstream endobj 716 0 obj <>stream xœ];à D{NÁ øDJ‹Æi\$Š’\ÃbQÆEnXÛ)RÌJÃΠ·¬®Cð…²GŽæ…:l†%®ÙaòI­7ew8ͬaýM§÷'­p›¿ëØó"Îø$¶’‰–¤ d& çªsNöo%·ÂèöäI(çuV+ªZ‰õ#Ø~jL5kÎ ‚#Xãñ~·¥˜Z‹V‘/yV0 endstream endobj 717 0 obj <>stream xœ]=à …wNÁ ò«x‰XÒ¥C«ªí1C"ÉÐÛ×8I‡Ïâãaá笻^®Þ­2{ÄÙ¼p•Öù!â2oÑ ìqt^¥œYâj&DÖÝtxJz€v绞0{B|UìMfp Ú`Ô~DÑæ¹j­UýðgÁÞÐÛãe](VžSmCdž±a,‹°LX)aEä»\ ØvkÅ"¬y’óÏ4TŠw¦‘f‹ýÊ;àŒ)šóø[S˜Cê’$ñÀùe¤ endstream endobj 718 0 obj <>stream xœ]‘1nÃ0 EwB7°e'¦ƒK²dhQ´½€"S†È‚â ¹}H:éÐá x²’ßÍát<å´Úæ«.á‡VSž+Ý–{ dÏtIÙ¸ÎÎ)¬/Ó3\}1Íá×ßG!Ë(nþé¯Ô|ƒõÊmEa™éV| êó…ÌÔ¶8ň†òüï“ë·Šs|=*mË'k‡ k'ºC…u'ºG…u/ ¨°‚èˆ ë(Pa ¢„ +‰FTXyÐ ¸'h_¾Ð£ÂÚ‹ò c€Œ*¬ƒ.ùÞFö•äÞAÙp¯•òªñj|’ZÊô÷ÊR¤Ê2æ lÏz? endstream endobj 719 0 obj <>stream xœ]‘1nƒ@Eû=ÅÞ€ÛŒ‘Ð4vã"Q”ä°;X^ÆEnŸ?cœ"Åé+ñvŠÓå|Éãê‹eŠ_²úaÌi‘ûôX¢ø^®cveåÓ×ÍlÆ[7»âôÖÍß?³x| ÃÓß»›ŸT6ö¨|ŠS’ûÜEYº|׆Àí0°“œþ½ª¶ý°}Z !`º¶.ÙZ±­Twl@wª{6 {ÕЃjÍ´V%6 ¤zdzTmØ€6ª=Ð^5²ª‰ hRÅï×–P[ÂÀWÐîB в"Ò"B Yi¡†¬ˆ´ˆPCVDZD¨!+ÂÔË}Ý¢Þ³nìµ Ë"yµµÚÚt[c–¿ÍÏÓ¬§>stream xœ]Ô=nÛ@à^§à DéýÉ€±Ý¸H$¹E­ ¦Y.rûÌŒì)fIa?<à­Ÿ^ž_–ÓmXÿ¸žç_ý6OËáÚßÏ×¹ûþzZV›íp8ͷϦs~›.«õÓ·éòûÏ¥x¡ïýûôÖ×?k;ê§Íý£ù|èï—iî×iyí«ÇqlÇc[õåðߣ]Ý¿Ø?_Ýnš2Ž8Q·MAݲZSP5›‚š¬Õî7¬»¦àéŽõ¡)¨z:5ubÝ7uÏ:7uf=4õÀÚ›‚ÚYMAòÑ eÆ'*4&‘QdИDF‘AcEæMAuÖh j°Âjò½+ƒZ¬°š¼F¯Ájò½«Ékô¬&¯Ñk°š¼F¯Ájò½«Ékô¬&¯Ñë°º¼N¯Ãêò:½«Ëëô:¬.¯Óë°º¼N¯Ãêò:½«Ëëô:¬.¯Óë°º¼N¯Ãêò:½œ è:p. èÀ¹€N ç:œ èp!`À…€A`\p!`À…€A`MH4!QP˜^h‚Á p!`À…€A`MH%®Ÿ"$ ‰ë§IBâú)B’¸~Š$$®Ÿ"$ ‰ë§IBb>©%g”ФDIQB“%E MJ”%4)QR”ФDIQB“%E‰q¥F–Y—&…q•FVYW\ Xp%`XÀ•€E`W\ Xp%`XÀ•€E`W\ Xp%`XÀ•€Eàþ•ÁÊ™µ:¿v$·(÷ñ×úæëµ/7-m-eîâÓÒÿíõËù¯dõ¢ n endstream endobj 722 0 obj <>stream xœ]Ð1Â0 Ð=§È š´…‚„¼ÀÒ„€ „ÔAH£PníÃôZ[J~µíw}Š“®Žeôgœtˆi(øŸÅ£¾â-&ek=D?}$§¿»¬ªíÞåË+£¦ ³îŽÕ©«çOv^òã€ì<—n¨6ÆÀ&P˜†¿_ÖÌ×ðmh”c D ¢eÖ !ÖÌ$Ćق„Ø2 !.˜K—Ì$ÄŽ¹ qÅ\ƒ„¸–{/ÈOà2¾o×þY ¦I“F¸ˆ˜ðWj3oiŠz¯Anâ endstream endobj 723 0 obj <>stream xœ]O1ƒ0 Üó ÿ e@,téЪjûà8(NÂÐß—èÐá,ïN>Ëþz¹²K Ñã‹XÇ&Òì—ˆŽE­À8L;+'„ìo:¼?`5Ýø]O$Ÿgu*«z ¡745$ÚªêZk;Alþ¤=0ØÝÙ4]ª”*þCÉÑ\⸠¸ÄHœJÓÒ$pL¿g‚9+Ä4­S@ endstream endobj 725 0 obj <>stream xœ]“½nÜ0„{=…Þàô³Üµ»q‘ Hò:Š2TX'Èç"oŸ™9;EŠ!0wÒì7¤xzzy~ÙÖ[{úq\˯zk—u›ú~ý8Jm/õuÝš~hçµÜ>Öò6íÍééÛ´ÿþ³×Ôåî¿Ooõô3†¤ŸúûKå:×÷}*õ˜¶×Úœ».Ÿ—%7u›ÿûËüþÆeù|´³Ôu˰Y‚}€>stream xœ]Ò1NÃ@ÐÞ§ð ²IÌ|¢m ¡!àÎz\àX&Üž™ PPÌJãØúû”¿¹½¿»Ÿ§s»yZO奞Ûqš‡µ~œ>×RÛc}›æf»k‡©œšÏòÞ/Íæö¡_^¿–Úò…:^úcÿ^7ϱ ?Ú^>*§¡~,}©k?¿ÕæR>Œcnê<üûi—/ŽãÏ«»ëì¤Ä“õ&;¬7¬Ý.;)ñdÝg‡u¯Úe‡µSEvX¡Ùa Ué<¨Ó ŽC:ê<è˜Ö£jÉkQ²Ã:¨Öì°VÕ1;¬4°ÍNJ>stream xœ]ÔÍnÚPà=Oá7ÀpþˆÝMºÉ¢UÕöŒ¹D,b!‹¾}g†ÒEÇÒÄØÌljîúåõËërº ëï×óü³ß†ãi9\ûÇùó:÷aßßNËj³§ùö7é:¿O—ÕúåëtùõûÒ| ïùÛôÞ×?j»ÓŸ6÷‡æó¡\¦¹_§å­¯žÇ±=m՗÷v~b||tÛîcO»†¸ošãï@œ›qÃxhÄ-coDCÜâ5šqs`Œ¦G\³i“±Ú}ÆÍã®ip—5¶OMƒ¨»SÓ NŒ(ÈAÜ3¢ qfDA¢j  ±3›?гá—⌣Ñk›¦A¤× á ÒkÖ4ˆôš7 ¢3Âjò½«Ékô¬Äb„Õä5z V“×è5XM^£×`5y^Î4}]}]}]}]}]}]}]}]}]]%% q-ŹG_WgWg,ĵçR q-Ź”ÀBBK .%  ‰‚¢€&$ Šš(( hB¢ (  ‰‚¢€&$ Šš(( hB¢ (°Ð‚[àBÀ 0€ãà˜À. õ9¸Ë7'ö“ÚQrG MJ”%4)QR”ФDIQB“%E MJ”%4)QR”ФD©ï…&%JŠš”()JhR¢¤(¡I­,)JhR¢”ëJ­,¹²ÄºR+K®¬`-­¬¸²‚µä-z Ö’·è-XKÞ¢·`-y‹Þ‚µä-z Ö’·è-XKÞ¢·`-y‹Þ‚µä-z Ö’Wž†c#ØÇ‰:ÌŸ×k_n:‡uÎòx=-ýßQ}9_øÔ€Yý”¯c¢ endstream endobj 730 0 obj <>stream xœ]“½nÛ@„{>ß@GqoׄkœÆE‚ É ðçh°0EÐr‘·ÏÌ(J‘b‰œÝoÀ;½¼~yÝÖ[{ú~\§ŸõÖ.ë6õãúyLµëÛº5ݹ×éö×éœÞ‡½9½|ö_¿÷ÚâºÜý·á½ž~DŸôSwiºÎõc¦z Û[m.)•˲”¦nóåtc\NEZÆÔ•ærŽrWêžiç"¥„¶ ¶ÂöC¥„¶+,£ús‘`Ï´}‘`{Z+¬Ñæ"ÁfZ/¬Ób# 6hŸŠûk˜iškœkbddbddH5%“ ©¦dc²!Õ”lJ~.,Û04ajÃØ†¡ SÆ62šÈj#³ ô,üLüŒ²¶ÊÜ*c£¬­2·ÊØ(k«Ì­4."'‘#ÆåŒrĸ¢œQŽW”3ÊÑ¢«Ig“ŽTW²+¬.^'¯ƒÕÅëäu°ºx¼> v¤ÅgBÁN´hÂÕ†³ G®6œmøR$X|ˆ—@1¡r‚åhBDA¢Mˆ(H  ‰4!¢ Q€&D$ Єˆ‚DšQ(@"ÂÉûðøðy5xÉwª>£n7ÝDÝ4^°u«ÿ.ë~ÝùV 5_ð endstream endobj 732 0 obj <>stream xœ]Ð1Â0 Ð=§È š´…‚„¼ÀÒ„€ „ÔAH£PníÃôZ[J~µíw}Š“®Žeôgœtˆi(øŸÅ£¾â-&ek=D?}$§¿»¬ªíÞåË+£¦ ³îŽÕ©kæOv^òã€ì<—n¨6ÆÀ&P˜†¿_ÖÌ×ðmh”c D ¢eÖ !ÖÌ$Ćق„Ø2 !.˜K—Ì$ÄŽ¹ qÅ\ƒ„¸–{/ÈOà2¾o×þY ¦I“F¸ˆ˜ðWj3oiŠz°hnã endstream endobj 733 0 obj <>stream xœ];à D{N±7¤4Ó¸H%¹†Å¢0 Œ‹Ü>|ì)f¥agÐ[:N×Éšôœ|am¬ ¸¹=H„cIÓ‚22®L¹ Oèxþýñ)€ºú»X‘>/]WžšZ’Náæ…Ä ì‚d`ŒZs‚Vý­ÚZ˜õ‘ì^ÄXšÉö¼(Ù¾ÔÏ`þ)3 ÷ÐÆ^À2±ø»Í;Ÿ[D¾zLV5 endstream endobj 734 0 obj <>stream xœ]‘1nÃ0 EwB70m9 \’%C‹¢íd‰ Ú¿hµy.©Ñ}y´Hv¢ë\L?Ø4ÇõiZã-TÓÞBýþ©dùåÍßúϽõS¿ Å%ѽ†H-”+™#sFC%ýkõn›˜òó© ¨ „¬*¬Q4¢àT*ÜÍ¢„ wev̨ŒÒõ®¬;TXw¢TX¢¼Æë*/«ö|€À•u@…uõ¨°z=òuÜ+ɽ‚²ñÑ•UãÕø$µ¹ÐߨK•)˘_fø|< endstream endobj 684 0 obj <>stream xœ5’KlU†güˆ§Å”‡bS:!¡´¨rXT©"ª*Ry„€h7mHÆ™ØÆ¯ÄžØã8Ûõx|<~{ühR»hZCMb±¨štÇ”²d,Qìï˜1C º:ºçHGú¿ÿ×Á1 Ãq\79}íÆØè¿íÒi\zM%Qƒœé~ÐjA¯½æþ_ôË(þ ¾€¼/bZ÷®ÄsµIïÒªÏa³3ÔYë9jl|üÂyê­ÑÑqê²›ö9¬5maì´ÛÂ(ƒ‹ºæµ:hf•:;ag˜¥‹##Á`ÐlqûÍ^Ÿísç© ƒ±SWi?í Ð Ô¯‡¡>²¸iªgî“^÷Ò Cû¨iïíóXüJïð; »‹öûéå‹ ðE› SbØö)¶‹}§pÀtŠ]LƒUð7ñ]üHõ™êg)yJJÊ™¦´¸#98r=U£¶ô·:_ý„ðB.ÍBžcÀ^¿œ"å›:X§õs»‡æWR‰ÇÁ-ØÌC9uÄ=¶‰3x°òŒ,à|Lï»Ø} Ä"ˆee1mú0;ÓŠ‹æx!ÆõÈúúZ™+'Lèõweò½µXŒƒ°1\Ô Üù’Dš_Ãò„6°(Vê…;dM As)!ð0ÖªµZ=šÛÈ›>¾ÏÃÄwˆ|:t»XÌB¨GªëqnúHYsQ«Ëg:ÈÜ”6úü¤? b®˜ƒÊ±ÁD”ã9²w(×B±dbFˆæãµ[Ò¡\ªÆÈ(·S*‰%.*šz ”ÒJù^°Ÿ@¦^{ ø?ÿN÷ÒÝù´¨ëœì>stream xœXyXS×¶?ÎáTQ[Òƒ¤¶9©V´­Xµµ‚8 Jª„Q !aA’Bv$až¢B±´Ú*j¥µÎ-m½µïÚ^Ÿ½Þ¾z¯V½ûômîýÞ> ’د¯ß÷Þ?|áìuÖ^ÃoýÖZG@xyàÙ(YúölÕyFä˱ҔìµÛÓdüó`n’€{Þƒ{Á³EýýëL’ûÀÇøxµ>ÿÜ[¾¿êŸùuÒîÖÓNE•‚Â^ Œ‹Ý4}úŒ¥rE¾R–’š% ™?¾d{¾däD²Lª’¥dH¦á9Ò4¹"]š‘õŠdT*ÉJ•J’eiRÉҵћVFEH#¢â$Ò ©2!M-K”DÊ¥*i$Y®”¤9ÿ‘$Ê3’dY2y†êI˜J’ Q)¤‰2ü’4/QªàfHReºL¥Â¿%2•$E™‘%M’dÉ%²ŒÄ´ì$þzüqèÊÖÿ/AÌ ËX"_ªX® WEde¯ÌÉMÈÛžŸ¸¦ )Jº69:%5V¶nýδôé3^~åÕø™!³æL]L“‰µÄ"šx‰ˆ!¦ëˆb=HÄoÁÄb#±„ØD,%6ˈWˆ·‰åÄ«D81“ˆ BˆÄJâ5b1›˜CDkˆ(‡GŒ'&OaÄ3„/!$üŠ4ñ1†K¼Ž‘JxÙ/QðµG–Ç/žež¼òÉò¿©êŽ÷Loµ÷m:÷)ú©¼§þ6&s̽±¡c»|žõ)õ¹:nÕ¸Îñ!ã&„N0<úôµgV?£÷ã«ñ}×wÐ÷¶P(œ-<,üùÙmÏÞdr;óµßt¿¿{ÜÏ㹟Øa¿]À¥Âh¦‹©Üuán‹®™…3)[}mS}YU›LÍæÚHôŽÛ©…:‡³É4þQQ‰ãÑtª­aä…7¨` ëí *¡à›°Ÿl¢œÞ²+쾜áøDáUXÃÍaB]:;©eè¹õñƒNt™°: ͤ°ëÛoµ\˜ÔZËl¹ME5¹ ”}…vþ27û.cdøU‹Ñj4ƒZÑ• ½oD%æ­^*všSh‡RlÏ‘yÏDá=(²3qn}JÝ¿{ëÎÀŽVt°Â;×»ºNœîZ̉¹bTç’:Mé‘”é…RΣÞ[~Ka]È¥ÃC×Ï ï¡ÔÁ| ID}Žhäu´ÈA&½liäÞŽB;'°  gçÛãÉMâ–2è%ô<òCì”o N…ÏC²!V½ùñ|ôlD!ÏÉhì¬ÈO€$ô|ǰNMÖî6_èݹÊý™«b’ûÖ·¯+ÀªÌ¸·ã¶Ä‡GÌó×UBùüø*síËCŸ‹÷·[j@m-3—jÊ+4qÄêØÌp@O ýæ~ce³©‰mú¢Ž…^w¡õ“ùûTVM{2ЗKýÍêj½4€ÚZSk;ôò7V«A%-œY£5—«Õù弟(Ê_µÃ?9 p[xî˜áJÛi y ·’qn‰ŒÃ¨iƉÌgƒ©XudåÇé×J Žƒ"Vèoù%D,^§_!n„1g˜>]¿ðÅ)Aˆš»öì‡îB’}œí›¶‡8Ò*ØÁÀ©Té6C ©±hkkjZMâp¢± £¤RdÕZF¬Vo#ÑTÊ‘Ü~*'è ùC%‡ÃÜ0W„~¸·¨N8Ç¢ ˜xê]J4–D—Gë!Íî+€·q Må—îr¼û•£¦Syü«®‰…WyD7Ökª‹XA}3I¡äœØ½¯oÒ^ÐRÚ¦2k+ f@764Ô[ÕõElnK%lo)×\úÿWâÜBpy$V­Õ-o¹ço4#é+vÔa¶º€EbÞç‚¥óî–aÆöA}ÿDa$ôØÏô-¨ ª­5­UbS)<šÜy"ÿâ$8áþ7ÛwÈmf3÷¤Ö­µ¼i ·&§¦ÀšéÞkÝ×;»Ô%mâZ­MÊõiþÕšêr'«Z¯:Ñh¢…Ïó9(.ÝS.=œ‘Ð3 fG‡e7¨Z‹Ùö‚ýÚ/5gÊ:´ûvµ–4æ€:fÑ–é c7ÍF‹ØX LÔ®D: FbµÁ±Ž²#0¨rç¡”i¤l£~»²ÔN¼&3Y³ˆÐØ¥ŸÝk«l­²±ÍCÍô]è DÝ ow{A“º]n(Ó§ø›±3Õ#δýè_iFÞHõ»HáÐ{ÉNB/$BdšZæ¯Ë®È9¸Ê¿…/œ¿ÖÚyiÄävèkÀù=žðÆ.k§V7àó uQñWT,Ú[QjЀRQì)é·_5í9!>ØPWêéZ­E£Ót¥âø¬Åë#}·»Êh1ZØO „ ;îWò°÷…SqPp«ý¾v±¼ŒºÁùÈ›Êq]¼5bÞ _™1)>ýPTUšÙ ð ùq`1ýnÃn°[´¶Gzéòåýg.99žËÆ n)ׯ@Éc;òY4Då¹å„G-’¸=reGKUÿÓ°…v—ÉÈÍŠ«’ãªÍ£Þ€·ÈKe°Šé.;uk؇ä5Ú ‡-‹òƒs±Æ67ž.é)ô’A+¹Bd-‡CäÀï‹¶QUXñI ·‹úc¨ž|êevèo÷½Ó`pq¯ûýäz?ŽÂ r´ÆÑà:ûéËyE)â]Î3­¶h­&“ÑX-Úk·vúbb{À‰f‹–­kN¯ÞŠ!,–„³Bãê“þãÚÅw?•UÛÇÌŒU-tTê»}Wÿr z÷õ•©±£aäÆB97ÃÒìæ‹‡Ë—šü^„~dÿï;k¡  AJNªÝªKäBZ£aœ€‚ÈÕnþ.‰Rêqˆî;BÄõãm„Ü=Ü’0ŠŠÍå-|Kòns§õŸ¨¶[¤°/üÈ©Ô/'á>äEðÅûK¿x),rç²U,Œ=ÏÜülí<ä ò^õÙwÐû$ Å:{àvÅù`Ò…Çü„{¦¢©$òu³p— z«)Γk%1À\Rè ÒH‹À–¢›/Ûä)7oWÑ6;øÖÎyÚS17sŒ'8&µkcÛ@£`ä&¢ À¯—?¼2d{o=jÛcÃõlU×huÚr­F½eIf( g¯ùä»¶ÓG{ØžÓ_Ý ·dOA½º#è0CUãîoÁ Uãd(L–U€ByèÞ‰›û8°}¿ŽqÀ&×›Mh·ì‹MGCq‘°x–óG“¿ »ûÍåÎ/>g…yy³HŒ#§{…ìz M…÷™ï£ç±Âƒˆ~Q‚è×£¿‡Þÿ|)7«ðƒžxït«Š`w–ND›9#ù¢+J§ÿ—(Õk«ø(Ýåáæa£Ó'¸Äƒí‚vŽéöäáÛLu‡©4Ò_t P †Ëx$Fž7CúÂPë¡ÓâC͵µ25eµ®¼B§¿½óÍìH@Gœ¿]¬ÆZ¶ÆÎtýõûswýã…Ø@‡ùÃ9ªZì‚û=Ü<ó.à†4ÍD+P }½á|ø*\ã ³ð6¢Xív毗",$ÂbìÌßA8W^ œ†ö#Ƹ(†jø¬öä@ç% Úìú}úþ2€sK7Ö×5Ztfu%»Ó¼Ò’fÅo-)ŽòÍ«[Ž1,È-x×\ÁCËG:C¬šprzp?Ý L2ðYHÞùçõUg^e‘ö·¹p_1v¹Í b o Ì4ñ›ÂÕ“ñ1‹B–±¿œb´]ç¬ð/LÚå-‡–â2žˆžAO#¿ «á? ºü)+GÌ®ˆ•ë#0òh7bñ¦>öæãïwi;\c§…?päiW fPÂh©‚ùîlÜ"D"…ëÏÜxø¿ÿs$À¸c b7ûÝI²™=ã$É­nŽù»ãw7kCÕ GZÎQhû[s‘5ïn:ƒÚ¹»mu#WoÃ#¿©²ÖXƒÞÝFmÉŠZ=²»%ÛaÁHÔ3`ƒÉÿJêѸ4—þÄ¥ Ú'ç‹ë…T×à9pZuöu1ªt^÷û9yÓ½>ðÊ—·¾L]8·<8R2Š·_¸—yFqC 〠šã6MüÛmžMÁñÜ &šÊžB: ZeãÆá ÒÎÏÄ[û ¥o¢°Ž;Å52;íï´Eã {Oy-XÞn+`;²;K®”\-±•Ù [Š” ›ž²ì¥¤­ ­9ââZùûÀ\ÕﯳêªÊ@1(--ÏÏB^þ†rC®…á'ý*±ù )<¾åð™Ìk“>Cûûºßïì'À‘‚cY-ÊVEMhCT­²ç©~÷>`£¿¼qñö±îâ‚qzïLû #K_=¨­3µìýÅ¿ÒÂ&-ÿÄ€Œã4l˳ý÷»«ðÏv†'e¸€*Zb¨»AdÔâMc¤w´CÊx ¥Dfga—ËØ¦!.t¤i²[ «\ýâ PÁÌ™àd<ÈÝÄ'>Îj!Fšãá8‘üбU58¦4Æ%½—Bñ(à7–_ÁþhpRsÆa. 4ËQo%¼4|Ê)þHpÿ$rŽoÏp+FSØo?‰Œ~×hzü]c¤IòÓµ°ëÜÇ]íÇ&Ø—¹S«¡Œ]®’_¹ÏÔg¡íãsﵿD‡ö*w:'¸ô%rûF2UZ`}œúÞæ„äœM›Å%'ûâAåÅoá÷GØè˜Ý¸ÒWPÇáVcY3’w½8m%ÑJìvi‘ÓíT<Ý4-—צ†S4™ôee@'*®-mh´šÛšÄp+lå¬Ã÷ À:ft¼žæ (Â[Ì—fÞILNHÛ—s”­£z»»zgíÙÁsÿúuc®­¬Õ4¶®T­-ߥ+þY¦®Ðá+Õx¨5W5Ö:ìù/Ø(àÚø4>Gý i,f]µµ4µ²&oþ6;wãkf/¼ÑëɃËaÓ!p†^.ÎB¸EÎÚ!ΠЦëÓA†yZuzÜ…Ò)F—~b.½ÒÝðØû­=€¾vlã4…^®S±y³v­Þž´M”‘š”¿ÐËSOÞ;`Ú_Ýî¶€ÛÀq Ú“_¦Ñ‚b‘Æ¢±šðºV'†’$nàw×W³¡ÇsEÁèîÂÅJöc¢ô·3FÓ£?ÁøF¯èìiÛàý͊ϬŽRlÞ,Vff§‚"Z‹ÃRg17ZÄ?û¢÷ /œz;&6+ _bÌ[°¸x­?'¦š¯»öÆ‘’צŽHÁïìð |© _ú9÷)uŽï8Näã·ILzP!2ªÍeV`Õ• æþ=ÖwãÀôƇ'mS&±IÑkwD€X°i_Ro™¥¼Rèâ’’’b[î‘l¶Ky¼øC@ÃàX8N¾ûÉœ„$uÎ:>h%ïÃÐ÷¡ÿ+€iTüÇ“› w3‹Â–¼¹®'áì·_ }3¸½;†UKûyÒú›Ö'É~0pòä›Â…0o†-YkOø„<·ÝÍj¥L÷yb”f8O³PŠò™¦*‹Õññ̢ŋ°A'Fãwé4üº¬1ã5ªT:1kÿGå6nß.LG»0Í… —~ÿ„ùÍ?,˜[ƒžÜçXªäǯC^(`+òÈl®NmÜÔÓÒ¤4•Uë«ÝÐP_Wi0LlÆÍ’‹à €ÓÎÀçq$çÔ5,ŽŠqØ|iÐ~Ä+-.Ù]aÔõìÁ×ëW€cñlë‹æêÊ å@ÇoŒµ ­­g{ÄÐ ôCoýÀ ôL9¯7ëL8{|QÒÜ*ìEÆdå@„óY¬5k-Öd€O'LF^¥%@#â•YÌUµµâ‡Ðëò2ï6é­@TÍ6UX+ªØ|É”žV³ïV^k¨Ð‰Ñ”øC5Ö“Pj}(×ÆÍ±A_›ÍFÙÇk÷ñ!ˆÿ< •ç endstream endobj 686 0 obj <>stream xœ~þCMMI7$øøø‹÷òù+‹ ‹ ©÷ò÷Z÷W÷Tns‚Copyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMMI7.CMMI7Computer ModerniJ“øˆø(§ø§÷è÷ÒªÓ÷Øù›¡opnqnz˜v¦¨¦§¦û`ü‡~†‹z\³eÂï·÷š˜~‹ˆ}Š…€‡t;_bd‹w†˜¡¢’ž”¡•¦–¦–¥”£¯æ—ޕޗ‹•ºc±T(]ûz~™‹Ž™Œ–Ž¥á·¯°‹›”ƒpt…|rMwŸøC••—÷pŸû`•« Ü  7Ÿ « [É– endstream endobj 687 0 obj <>stream xœ¥XXWמuag4ˆÊ:jf±bC1jŒ‰E»X°¬ z/"Rw÷ìÒ«®ŠaÄÞ51±|FŸ˜bbc4=C.ßÿÿwASþäûë3ìÂÞ;ç=ïyÏ{®Œ1ëÁÈd2vî§µMoí¥A2ipéuùJ²q°™¾c¹9XÈÁÂìÈàAÖVøïý0»®ïËÈe²Àðä¹AÑ!¾Þ>av£¶Œ¶›8mÚÔqvo8:N³›ãïâ»Å=Àn‰{˜—¿{ýã}»•[|½Â¢íFM÷ z{„ÈÈÈñîþ¡ãC¼gŽgéæcçâêáåi7?0 Ìn©»¿—]÷ãï~™èæb·$ÐÓ+$€a˜7çÎ š2?tAXø{‘îQÑ[–Äx.õZ¶u¹·‹ïÊm«üV¿ïïjÑÛa¼ãÄ7&MžòæÔ·¦1ÌPf³œά`F0+{f3ŠYͬaÆ0®ÌZƉYÇÌeÖ3ó˜ñÌÆ™™ÀÌg™ÌDæ]æ=f³™Ì,b¦0‹™7™%ÌRæ-ÆŸ `,™>L?ÆŠQ2ýžÀX36Œ-3™J‘f̘8æ©ì=Ù¥‹z”Ë{ʽÍú™0ïaîi¾_a¡¨c§³Ÿq«¸ôœÒó£^C{•¼öÎký,‚-®÷®²TZžècÕç\ß }“úÙô+êwÍ*\9@y°ÿôþ+ú÷¿ÍÛñ9ÞÖÖ§mÆØÔÙ¾-i,;:@Ä‘¢´°XÖØ±_.tLæ*w@ BZRr4Ñwþh“§Iš\„ZQ¯?f¨†#pkŽ[ Yíd(Ô§çéõªãØÛKÉHóqtaú#h†øêºŽaÉ÷’ RmN¢–Vtßgg¼V¨ —*¬•-ôÄ“ËóÕìýEC=Ýç‚ö€ÎôõùèÅ¢ì~Û•Ú’ˆY)ûÛ%ì/«Ø]ã²6XPÞA†%³“ÌÕ¬²år6xª,¥›) ’Ò(«Áþ˜ýåÒ àqà„gd*yËq±%}¿¶ÇwpúWϰ@rÈbž(™¯ZàÄžZÕ¾ÃM%mÐM±¥>%¾° 6p“0D)XvÜH¥_EÙUt4mòŽìމü>ÈNÔj““„÷–/9þîÞ`K ÄŒ&îÄé+pšcd‹“õ1ñ‰£S%“¤÷Ò‘0¦–»^RŸÛq¾³éÈ\ùðƒ¿Ê?IŸÍ*%Êô(½¶ ¸J½¡RE±$kDb”dg¶4X=§(fbkå= ÂÏxا×54žÌ*îÚ٥Ċ qv]¸] §7© Aû¸fÍ>Gw6‡c~úUhëø=>{ÍûÑa*åã6–8›`¤ z©:õ‡è¶]Oè$ÑL{býKâ³ñ6ž Ä6¤À10kî<˜IÆš>ÙhÄq?Ü0bX£UÍ÷Î(Çy(‡¯ï[+_$`ºð“àZK \ûúkxwÓ&xw’ŠXîä[COh+¨¬ ?s÷ºr(n·êàîC¾^›ªM„.dOteåž}åe1uãÔŸÍBt{Éš¼á«f8{{ÔP£ÜÁú¤l‹qëüâ5N°˜[{f6ªÑùî…ë“®¼[+¬<° ÆB0mý©úÍÙ õ°ò2veåp—ÉjÚBÕhK¼=W“Äb}këÅ+P¤êš•ºkPöʦȩ‹àiFþ?sÒÚ[Â|ôÇʵìhO0†ˆXmÄjÑÊdæ1ÇØ¡Ã·Ç­•±hÄòX½Xœb˜±t%¼E¦©plÜÁÀ‡Ü3Òã ²\èìû[òŒ4ytd¢É{¥ZXÍ*ÓH‹¨—®ö­ñ¡~Ñ Þƒõ×}†_N£3È‹Âov—R!ŽÐíŒ×©RÕáþ° o¤6ió“>Öen¿¾ªÚm7%ëÍ® ò:ZÝ¥m³2Öʇ&­á‰“)  ¿ Õú6C„ZcKXå³<éÔ»ÖÝÍÇÇͭΧ¹ÉX{”ÔŠrÿÖluµeÓcüøñÌkå-i¤ôOFToÉ]Y —l›\~úé3_2¸LÈí+»Ž‹ºì+µ_;„M›W´.Ì¥ý›Œ›;vèÂCKÂUmëk“QÊ)~MíGiÄ®¸ JnCðüa³È¸b$èöBfø+뾰˺ç Ù9Bkë‡ë¦4‚-N»ŒæÏTÊ[€ò·ï9î3•¬©ßží‚a%ök¢H0&$~ù\ZÊ«Ù=P »´¥i\çv]ÜÜe±I†Œ8a_Qf ìâê‚÷{{…y»\ôýìþ£“Ï)¥0¾C'Â:·Wà4×Õ5Sp) ïž—5‰˜L‹7‰NHaSùNQDÚYrÑ<ïîNç]â VœN§¥w^ôåtwö¤»Ÿ°8 òÞÉ#Š®Ù¨ÛF¡ëïätDÜÉKÿäNŽÓ Ö‹#†c/38•lUYNVqÑ3be“»cw$h¸ÄhˆÔìAÃWÔ1¡VW«5­aÝ@“¿›Ì@oð¬(?7ûšÉ¤iBh%ÁBCX·)ƒtMNí;eÁÓn’T§L~øÿ¿m½YªÌ²õDFæjÑú¬ M¦Ýšõ¢Æß^£Á«Ûø3ãXb‹ ‘átù’ `¡‹ÚÒZíœ “°Ž…ü¤FÌ`ÅVmío#¸ËŸNTÜ»¬•mÿÝ©ÊWm—kK#gþ+µø,)`Û×6wt]·1Xˆ|8!Ý &ƒË&¿ÅœòÞï§0mÝ 3ج"©¤C!ÊÊ›…É=->kÞP^l(Ý&Ÿ¤óÑn/XÞ]±p ªÈìΕ6ÄYÚdþƒ }Š¢'LŸ®5÷ÙÆ!d0ùå_ŽÉÿ”eÅþ6QdíF'i :u®ùӹvQ}î**÷MǸ­‡™Šê¸$г< |T䣿˂4–%óR¨}ÕÖVù9±¢øâ£úïªJRãË„˜” ØÂyVWU4žÜ|•ô }ÉpOÒS°ÙbÿzKlg_=’©/›g+e…TEY‘¨[•–Ét·ƒ_n0•RŽ6Ž×=«ú¯nˆ[ÿþ–Ü¡á=a~¼÷Jé~–†¡Õ ;w¤l‡XØ‘±;>3úÅXn$5@Jtz,+Äór¼Nücr~ kâ-:Êî¡£wÞåÿª ÒÍ£ô­QÖBx”é®oòu˜DRHŠŽ$Ž¥'±˜‚ÉŒy*T"òÞ°²4þVâIøÎБúƒœ“®ç•S-hŒÚ·yÏVÓ`%8&»n¿x»¿éÈÈT<)âÑbîÀ×äø¢CΗB^p‚’…™.ÃúÇHu±b7œÑ_ØÇu•š=šþÚèõüÕÙŽkº1ÏázQv‡ã|äR†ðj…&2qÑöä„”ÙŽØ+Ä#'›[¡â‹«"<âöêz{;,™¸üX\yMCéñ“î»ã2„ªòú|#p÷[ÌžïµÀyžŠl$îñ;(¨‘¶ÑÒÓ– ÍÔ¡ù‘›øzý«cè@zSk$àëôÕÁZIÕýü…ÿ¸äÖ9¸ÏÝ™u™îóÚŒEï¸UÕ·TÔ>¿:?M/Ô8šS Üçé‹¶Åëˆõ°•‡V«KÕíÔiwR?£ìLˆÎƒ½ÂQÊ`ôZ5ŒìšqpƒêPnE4r-~Õ›Ý}‚ÖN|¼ y\pëé·ÝÎܧ}°a”‰’3…ø–iZŽücqŒ4M±_›¡ÓÅíÈO±‘  ™š­Oÿ¶ë8ø«ßƒôKxż+îKÔm 7~ƒ}­ÎáÀ·NÑ^0”º6 øFÙéɨ€5?µ€6ìÔ|m-µk#¿CóŠlmþÒT.ákRÜ`¬Ùœ›H ¿¸í«"-t ˆ/-4däd GZOçQ—ñ&½£RþêöÄ"tqæ9wÁh¨*§±ŸrÛ皸ôÍ»ob_Aù'?ù-U]OˆíÆcØ·Ò”—b?;l­ìÄÅøˆßÇ*Jš³w•‹§—¨­«Õ”…y§F?ç[xäHyeýe÷+&‘š6…d Ê_azî;óÅYŸ„^§¡¨~ø ¢ÝÈ[¤·JÙN)í>‹û…\á]!èHÒîØ¸{9ìwZ<ófÛ„9#»ê©DÊÂ~²«âg¦<´Hù¼|0Ðɘ¸)€ØgnψÈÐåjó8µÂ‡dÓ.÷Iaa†!?ëì¡ÛÎP¬Z8–˜Í%ƒ€Œ²u> Y»ÅÌ…VŽ¥Ës¯•\¨k亂—îѸﯾ{n¯¾o:ÂÜ …ò±¹{ –»þMvÃÇ=¬öÝ  ᯫÂyî'Ç¢ *çéc7ï]|w³ |0uëf—9)—™µ”Z“ï}=™*®? Y øºh1èÌûGCGÀnªC¬Ëh—wïžj®+î ¶¹ûµñ¹)ƒíhm.Ã×Mˆçøpœ—ÇùÆxºmšÑàmð/.H?\-\mØOÏÐ`¯'\è@0'~¹4× ÈN2tÔÛd ~œM;¯òEˆÙõ×9"÷àÇÁí§OàÓÊÖìÌPlƒàË-1U°LÈ—–ç⦒¼|٘͊½PñšÐËlj±Eφl T°è­·°d˜ÿÿ6w endstream endobj 688 0 obj <>stream xœV{TgŸ!0•ŠG[ugâÙúhQZ­XWAZ*¸ð±U0’HB0„<€(ŠTáFP‹`%@xk‹ŠE,®øÖ³FEÖ=«ÝUi}Ww×ö›Ó?vÂCðhw÷œœ“ÜÌ=ßý~¿ûûÝ;$áêB$) Šòéü9…Ÿ@ò]øßˆ¶c#o呸‹Àݵ~âp›'*R<ЪQ„ˆ$ÕiÛ‚Ô)F"Q®•N‹{OêëïÿÑt©ßÌ™þÒ@U‚F'K–†Ë´ò•L+Ji¤:N‘ 5J§Í“kµ)s}|ôz½·L•ê­Ö$ÎoºT¯ÐÊ¥ËR4º„xi¨:Y+©¤}·óîû R«RÒ´ i¸:>A“L“¬NѤjÓt2ú%qñ ‰òh¥Š –¿'>#"‰("šXN¬ «ˆ bL„>D(±˜ø„˜M„ÄX•È"ÚI²ÜÅߥH$­½pÍt}äö±Û.ÊÒQWÄô$z Ý>LÅWŒä+ÀŽ:ìQvÏ'å'¹‰æòc˜F(‰cRPªªÁÂıƒú€²TC}ƒ2¸XBIN>»qø›3õRëãŽy5μCó2©ç+Ïc%7CŒÂ` …Ú9vtÓNžs ›CÄ'"%ƒF{ÿˆ]±«÷4<KMG.ÈåÑcäÉbžÅ†w=øáòåk׿ ›éÈ G`ùØÑ•~»·Ð\TÆ\8æÒó ?ô ùüÞ)Oqm–ßÚ4"Ÿ}ŠÇâ^S±ù| bÐÛ-ßۜijw¶qi+£·ª!NgÜ¡ÍKç…³W¡ :4…ï:†Q๳Ñš‹žuç Îñqäüg×ÇI~ÎB&ÌDËZΜ;q¢íOÇV/_»‚ó•3ù¹‡µ­@ßï¼Þ]¿µ.½–³Wì3ïN©Ü¶è²ÊâºJCCtÖòk¸Œ"ù5@Ϙ½¶lC‰“`"+ckšj<È-šÂÍ1°²èY/"Ð4æEÇ?šŒ§WÖ°›öÈ*|¡²adïÌ„Ølɲä•ÃN(Øi)ØK£ø35àø‰ý…圭´:î^ZfŬÚoÛ^a½SQÄ/@dœût±s—²(â ¦1ý—•ý,lg«²ìü;Ùå@YBÉhÁ5õ*\Ã8¯RV;'~HI?Y±byXÛÏ,zX/6Ù›²~¤°Ç]ŸgÏîÞGCli¨-(¢°qØ>Ü1‚îjT»³»»;Üß"ˆÿÄ& endstream endobj 689 0 obj <>stream xœmHqÇÿçÍ ~¿÷éNÓÍú(}år"ôÐsÖÝÖÍ”½ÛqõJÐ :’G›Ÿe+5ÂÕê`P9;J¶TD!m\5PÇzkÃMZŽUC%¥û£ÇóqNy<ú´fðDP³çF9äåPkágøvg4ÐK#ñË1 ~Àrëñ¶“§¦D|M«¨ûòvu σMû¶Væ,Û6ô4Ô3ü™VIc ‰É¼bxÿ!q‹T¨Þ¨x /©7ÏGÆpqD^ÇujÎ;=­Ý@õ€÷¦õ€ßájw;[5Fý¡g»{a£97åiª\´| ­Nw_ôœ÷{5]¾øàˆþƒãP8ëË²ñì>Z…&‰ï˜$ñÑgê¤%Ì›¬Þ³Æ“áX\£jIºæýC3döRZ"ããLM†b}¯2=Þ©T~ìQÎBè?€˜QV endstream endobj 690 0 obj <>stream xœ…– T”eÇ¿aàû>Ƭ¾”;o4s½¥h^²„RÔ,#HB^„ 0nÃEä¦Ã 3óÌ ÃUFQP\u½”·=YbFu¬¶ÖÊm×m·’=õ|ã;íî ƒn»{N{ÞsærÎû~ϼ¿çÿÿ?£`üý…BÁGDFÄDÌ þü˜ü°Bžä'?¢„Ü; =±¤„ ÿ®Ic»ïÇÖñ˜37ÞÇ(Šì|cDVövmZJªN==i†zÞ’%‹g«ç‡†.Q/ËÐhÓ’3Õ‘‰ºTMF¢Ž~IWÇd%¥itÛÕÓ—¦êtÙOÍ›ŸŸ?'1#gN–6%|Ælu~š.U½V“£Ñæi’Õ«²2uê—34êÑ_7gô="+#;W§Ñª#³’5ÚL†aÊ\ž±*G—X°%)RšóÊë±é3Ló(ÍLe~ͼÂÄ2Ë™8&‚YÁÌaV1ó˜ç™˜ÌBæEfɨ˜ ãÏ號ÑŠs~¡~_)ŸQž÷ÿ¤³l>ûGNϽÏñS86pC`–lRÉpÉÉ.røi§ce³°«Á À“ -ÛÐRÎ{Çs:X!j¹Vëq[ ì—ùtУ..ÞÜ/á®®¼«kÊìP!P½O’'pûáÍAÑÅåYâÍùP›­Z=¤åaN"§9•§Üxʼn½n.üüN)ðŽp«ùã·á:sú§äW¢W•ÞÆ^·•¥HÞ6.Å\.æ¤Ë3Y¿¹yëO]'A ©Âá­ú¤ˆ“ØÛýKbVF‡‘‰„²¸9W:=Ų¨¥j‰ˆì&sõ! ÛiåqÅírI»âÌø/”ògô8ƒŒÅûÈt2ƒ’ûèë, &8®` ÄY"i! âwã0ÙSW1 ŽD‘8â·v…¤òtäº=»ƒCrM‡Ò£’½ÂÖî—ÎM¥(ãÈR²€¼J¾ã û'áØ:¨.)ÃN‹¤'‘1OàŸ Ñgñþ¾÷ãí'Éœý’­Øjj¾ ì­îäš¡º¬¢Jõ¢Ê³‰â;éÆÝ œ\JO€g©à¸G¬õ.1¶Çþ1ôB?| ‡M´ î­Ülhè‘Ðr‹ûÛîô…’ ÷jÙ…¥é3ÄDZŠõÁ aq.tÆ65ïbUòæb—¬w*ΜÁê3JùAÙ*4AÍNƒÅ’[$;‹* š#›wo>ôùçÂbnÝ]*ue´Tü)ï­’:óþ*;o)[LÂ\l-Þß²•ÀŸ·C‚äe¸¤ Ê)OËöÚ/A]— w˜“+ ¯¨ï“d†;f‡óÈ8 ɵâ0jœêÂk-Šnù %~&W †&cUƒÙ`,! ½ó&–eÆ¿h浜ÓvÀê„f8an±Œ'Ñfê†Z¨[÷M“XgLM~CB²R :­Ãz‰:­zÍm¾1°ËQÒÓñ($н…†€{ö•g]*v#è¡Ü¸=k¸`§õ¢Í mÐgqûœš :(h*n ó1»¬é6>2±ç7½ÍÇ­¼‹ÓšÓ-ZȆx[¾uÄ MæF=h¡P_Z®_:yâlvíT†@scݾ‘#–—ÌyôH²5Ãçé‹PcèLF‘¬H827S³5íysˆ–sÙº¬íp^¼Ñw|[Y´@sM}“ÓÝßõÆÁ>^%_§,w81…&QàÜó¹Rû…«ŽÃEþòÊwˆB$ÝZvÀaØ"yYn‹Ñ°ZÔâ9•×®^{w͹Åõ‰Ã•BŸÃÞ#~Ã~½','eÛòG%âÏâÌ\áFÇ3‰ñ[Ÿ •f°©F{Ÿ„ÑÕ•s™‹&€<®M)gË!Ϲ¡ÿYj×YD cÉlBïM#a>ôÉß¿¬½gÖòÉ £Gfu`jqnÛñn¬'ì“låVCݨö0Œó¹Ã¼“:õN6¸= *ÄEòÙß+=Ež)‚Õà¼çÏ#ö«ÔŸ½0GFü™Ã…›ëKrwØV]ls“0V&Ð"¤H(ßk€<!a÷ìnâ²aÓT1뱞²‚CpÊÜ3LÝÍM…“’|”³Z±ö§1•»»ê ¤µ•µÿ[ “;é ÄP—R.’kïËw‰+G‰Ë›¹¸.@Ë’àœäAÊŠ%yûpwþjš#µìêÒüeâJ\ÂŽôã6‹<´§ÖÅpŒx¶ÓÐ:ÚŽ—)_àCJy9¾'  Ç|<ôíä/ÉdÉ«øßȧö!¥ë#èù9 ÜÅ™ð”/ý¿g1ˆ_|.‘™£.-t¡Æ5r5=Íp<$=.bûUtõÿ§Ê¸Ö ÔIN8oîò)xµ±ª_Â5¨'k~yÌr¿XC…çîŽßA%FÉ‘Â1‡ã}º=Ͳ޼ ¶Áz[šoûû#M).Áh\AËu[ÏÚÚ¡Κ»}åVÇhÜ!@¡ŠÁwðëw”h’Ÿ´æ½‡ù«.ß@ñÍi5ж0Þ HÜ<2NÊÁBÇÉkÑٛϢ‚âç?1yMw|C‘trCWùçùMͦ¦ŠKÅ-FwZUyWÄò+ÖE„&®®9öŠøÂÓ–nKµÁf¼›â›¸B(¯¯¶Ùk«Ä#¿ëÌ|7aBpügßÿðéÆ¿¿ŽáY n™Qà÷7•žxÏá§ lÉ¥Á܈K[ÚqìƒPgvš t<•AO“ÒÙ~ûm8A×ôÈ ‰›ÝÃ>ý°Ûi¯³ g1Z·5’¥#‚÷sȘ- ö—Ûò[ÏrßÜÀò\]Éî()È1ëéæëÛ^ ³tøw+äÙ_;C–aÉD|Ÿmµ³ÓäÔ™‹FÂv=ë#5ëÍU(ƒí…y;Šy•ç-Úà îá.»•òma4ØTÓ2ÐÐõ,¤ÚéÑô6Îg’ ŽL¡ÿU8gÒ6+¢—sÉ!ÑÍ¥X6šÓ 6ÚR†«¥sC°)["ßqdò´§¦Å’à-ªäº#’3p eõOïœOÔÀ¿èó·Ìq§÷ÀG#ÌÖ˜3èpˆó=ñ¿™Ési´cÔEE;TâEŒ.’ƒ/sª\§\߈b}•“uŽý·qU 63Ì¿º{™È endstream endobj 691 0 obj <>stream xœcd`ab`ddduö 21T~H3þaú!ËÜÝý£÷§.k7s7ËÚï«…¾‡ ~áÿ(ÀÀÌȘ[Øàœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*€\¦"œós JKR‹|óSR‹ò „˜YütðýøÞ½éÇüMÛç3~_úùûïŸü¢+Û»så<½U»Ó»9RØ—vŸí>¾œãO/{VwŠ\B Û¡þ›Ý‡ðf÷¡ö½<Ê›ØUºg¬‘ç+[ðÃyÖ÷ü©“°ýNœÆ¾‰ë·‹ù|ÎÕ“xxîÍááe` Kq' endstream endobj 692 0 obj <>stream xœ•{PSùÇoɽ«YX·h»{“ñ¨»¬Õé(ëîŽJEÁç *"#„$’y@E" $9‰ËSIHˆF@H]ª­¶n«¥]wwv×µ:vk§ÎZý]æÚ™Þ@ÝúGk3™›{g’sßÏùžïá`áa‡ÃáÅoÞº‰¦Ä¡_£ßà#™ŸØÁáþ×_qÎDÇg y$J~ ãr8*­)^“_¬SÈäqLö"ñãâV¼)^¶tiœxJªSdKÔâ̓\ª’Ø¥8Y“­ŠÅ1ïÊ †üwÞ~Ûh4ÆJTúXNöþ¢7ÅF…A.Þ.ÕKu…Òq‚Fmo‘¨¤âÐÙbC—x*¿À Õ‰7kr¤:5†aBµF§7HögçHs劥*öbÛ°d,ÛíÄÖbñXöSl–€­Ç±$ì'Øfl ‰Íb•cáØqì;NF/,1ÌÏMà~¾+¼Ÿ·’×ÄÇøþ=<¯'Ò‰ƒ´9‚¾>šç+uÍDáã(w½Òš€ŠÉ´ñ)+n±(=‘ï(éttžè>¥êÎÜ*‘l6P!1qfî¿3jo²@?8­×&Åñµæ†^VÍ"“‹^ÚÁñ C#\ô~‡< ue•(;DY,åå•Êeföþµ©yÍÚΑ_Ùwt¤|äðIsGIýWH‰åÑPº@ûõ¥2Ê\o­)¢Ž‹˜Yx ”7ÖØlm­Ôñš†¦êêÀ¾!³ ¼ucÐØUÐ)Rœ–Õ®iÖV¯m‚1âTgà>ÂjWêì”­ *š€h†Ú6öœóXêBZÙÎy2Ž~èá¢Ûô|ÒÇ,@›4¸u…|þb3¡û†ñâLø†Ñg®ß¤Æ4;ð5J™lÜm¥P7ΚÈä*eÁþi"ZŒV‘ËvoŒ_Y¼D¡¯pfIÞ§`^&bã’!¹×8p´.Âp§÷*!,²­ä£˜ž__^;,Bèÿ™r‡ËxÉ\Þ?žqÍ ÞÞó­¿å‰î1¡oo‘Õ¯,„ëÚ‰ÏEkRpì–Éà| …âqÖþÌÜÓ{NìbÅ:ÉF¥£ÄÝÕÖîfU[E]îóu^ FƤËEûq¡ÛaY]¹!/^^° ²‰¸‡ù7(ö_BßåfQþkrñjUVz–ÿ¯Æ~ƒÞª¡¦Ä;h± åX[!×(ái”ˆn‘ж†ÿÐpK¡_ï–¸÷Ú·A¤WìÔfäíSî„L:õ½¥°AQžBú².h.±]œŽÂþ„¢ÐŒ˜GŒ`}º<_/¦£8ó=‘g<,ù³ŒÄÕòmðqÚ¿æ¢$ô„¬h†j°n?8(žf1Z%`†ísŒµ§„6Kc>Zö Ÿ­ÛV°S½> æè ¤ÉlÿÐæùü„»¨Å +>ŸȽøËàÏ.;)”H¯jp·\·Ïñáyf% (mûdÁ! È  LU‡«ŽD3å³#èt“õÜ÷z8þ;(ë—Æè7ÈÂ*c)¨ m»Ñívœôýb]ßrfÖ13ƒ!/BÓèzµ®ÑfXJ*(CB²6ˆqQ Zúù¹«M—,ºÐTM9í“°Ùò®›,lzP 情ÊÌŒ¢lØ ÙNm@´\Sp®fÔÝßqjÀ7 è/ì’6+Ç~NVÖd޾Ç`¤xC23þ¦ÿv0èheYoÄÑ’ï­H?~|Á ”;Ñû“Yeþ„KÏgS¤£ß%Ë•à­yÌkLÔ_¢1ü´³¶²¦ü°ùh•U¤X°ÌröÀ¾.ƒÿ°õ*›“¬C±÷Z•ý“(9SsËE'’È=ÖòòÌFIøÿ¿(6@š\™Ì.ŠÔ@„Íü akئ>@›è-$3?t”ëulâ:ž—´;lA ÛÍaódù¤ªê³"á£ctÙ­wª”ZÝ©óu;ÝTÄD [›éåôúPÃ=TïãN¬žˆ#ÿ†óLÏÃoFqí^´˜U/Ô[Z«l‡Y¦Ï:pœKå(ù=ÇP;¼A`¿z&_—ƒÏ…~݃ÛV×~¼ÞÞ­À–hW73q„gJÎ'jmzÑ!8'­Ã/nÁ‰‡/.dYè%žÜÉ»}áêåÖœu/cý¼/ÿÕ_hÌ7àÙß[èÌnÌ€xH“hv–]ÉîY« mWa!üÂúgþÿ²ÌYãÜE¥^"½z—J¥×©UN}÷T[ :èø“HÝPÓÁgö5â¾iãÓ©iá+Ú¯¸j‚ñÁ«öwØ[›) endstream endobj 693 0 obj <>stream xœ­RþCMR7$øøø‹‹øù,‹ ‹ ­ø÷Z÷U÷Qmq€Copyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMR7.CMR7Computer Modern12Q½øˆøÍ‹¯ø¤¯·Ÿ÷’Ü÷ãù¦‰ŒoKL0Šb‹g£‹Í‹Â§ü’j‹~'egŒ÷ް‹ª‹÷ˆ¡Š½ #¯e'‹˜¬øÍ‹à÷ìõè¯Êõ÷ƒìø÷JiˆuP~ƒ…>‹}‹ûLôè®§ÇºÕÆÐÉ‹ê÷ !Õûû74/X¶†•£¨œ¯„®WªÒÏ¡º‹ï¿=:4MFkgû…û‚‚‹‰‹oø0wŸøCš÷n•”Ÿûa–¯ Ú  7Ÿ §“ Ú› !»«Ü endstream endobj 694 0 obj <>stream xœ=’{LSwÇï¥Ð{«]‡º*ÌíöÊcC‘Çž$[´>2&RK•ÒÖ¶PÊc±PzJ ב2œPž!Ð!S óí1þ±lÉb¦‹[æÛ¹ðsÉ:²,'99'9É÷{ÎçÐTxEÓ´X™¹_•öo'l§…ç„çEà\½¿šRHÃÇÖê6£~žxs#)M,ç”F“ݬ+)µò šüKii{vó/§¦¦ñûʵfFmà3ÕÖRm¹Újô|ŽQ£ÓZí|BF©ÕjJOI±ÙlÉêrK²Ñ\òæÎݼMg-å³µ­¹R[Ì2¬ü1u¹–_·–¼ž•ÆrS…Ukæ3ÅZ³¢(fŸÙbUŸÒPT •CåRïQû)%u€bCkQáT5u—.£¯…%†µ‡ý-¸dk‘ÄØ pÔG ¯¾&w Ô‚=µà0‘¶'¿E¯·ÙUÝ\å®¶2_|«¥Û3c€;®¯¤±AÆ:0^º‰QQxU¼Hb#’òÅ#Þ?`&á']ÚÅÇ‚^Ž2AΊeBmHõÑ4ŠÂ-"4¡AËÈ>ò:ÕPÞ±] ú&çò†²©ŽWpn¤ÅdoCD>³xŠäöá|fÅ۳зa~]éuF&|ä¶\£ÇVðüŠHØ!dÈ/Ã%[}MC½+ë)n= ¬ž¼$*·UŒ8?Ô}ë€lV™ª#Ý¿¸Æ^··Ø3à´(v0vpøÚ[ §èÑσ¢¯â«€/ÌöO…£e2º .¾Ó ÓìâèÃðÖ,S ç©ëN`û=ü ™PäœÂµ ¾å£ÿD nœ¡EPÈ11H1G%v'}ïb5?’~†ˆ¯½soöÖ27¯ú€9Pb7‡E?'–œã˜?Œ/ŽÓ˸ß@‰H¨Â9ùÏÊïHr6y¦9¥p¸rpxÐ?ñeu¯ËËu¶ø[¯»4Q’¡(cH:É("¢ÜTµt÷ÆÐÌ€â üÅÅŸõ@¿¿êG=!¿~–HnÊc M*õÐôÐå{˜×ÁÉVãC7•Žã»ÿ1ëÅè³Õ#rrøO~cfeAý÷©⳸}×’°÷}]]•¢-GÞ˜ |,F‘¾­†¼ÊÅéœcM6ÈÍhe€• }Î)A2Ea4Ä­"Á¬üÓÐ/ÚÀmoàl…Æ,`I `Üô¢#q[û×îFw³ËíVœs4Õ@{jÐ2<8üùôCÂC1É=Dd„&›ïÇcúõ`Û“ÜÂH× ð²²³]BVžôuv‰É‰v&¸%¹ á{|RÉx‡TŠ’+Ò§>stream xœ­VkP[e>i(ZD-ÆN¶î9¨ ÚÖÖu[k½Uk«”RK[* B.„!!!!$y¹„! ä!@€½p)ÐÒVmWZu­¶jYwÝÑÎθ—º_êéÎì)Ô­Žþ¨®s~œs~|ß<ïó>Ïó¾ ,d Æ`0ÂâöîØ¸áæçšà*Fð%Á_3%çú§×“—B"Bz¸kÍ Ôz/ßRîÁ˜ †¨X'—Jx¹yÒ蘬Øè[¶l^ýĆ [¢· ¸^GÀ‘æq)ýSýš(‹Ç•–FÇ<“'•ŠŸ~üñ’’’õAÑz‘$÷¹ØµÑ%R›&KH§–+³HÏP 2<½+wü‹~knÖ‚NÆòjB+Ç&.39ì¾æÎÆÒ=u…À4þÉ^ïÁ-¯'ÊU„n‚ד¹P"UäYªÝ`Ä5Í`¶ÕÔxÍ„ó‚k"x'Õ ƒ¼ZA¾@M«Lz0°Õåî–6‹ËBDo!^rµ\`P€uu÷ù'©{(õµfõÛ Ÿ¢{ =„!¨ÊÍÊÎ ¼7Ù‰˜½§ÈÁÙñžÃ€Ot¥ïÎ(^ÍO$…{¤œ¾•Ú@kn&¾Ãüœº¥-вMxeÈuf½…ôCw]ôB¿!“7ØÀÕ¢åhhn°tÖ·’h¥Ì—y؈–£ûïĉă¹Ú¼‡ÏSË…¯’Œø€'iæëjêjÉÈൿä 1Ç^a"+:ʪ©E¬?ºÀ­ÌSø ÇUMòNgÀ~øäNkþK¹)Å B=•íÊÿ™}è±t7ÖÒ}X«ö¾q­Ÿ›ô®¸8¯;ƒV¼‘úþʨo ÖˆfTÉ8_¼uuq’ù„‚8a†cP‹»T6™TT–¶k:÷]ôèŠûìYgfõµ¨!·qøWž¹ËþAM¶•àWkÅ ÁÕ em-Ãc™‡wPá™í'¢¾çÎ)»ªðH4O+@qnší7™È\Íšm³Òm©¹5tÅÔÛ¡ÌlO™Y#ÑÈh‘fS¿Yº)´L òŠ&h%/‡ÆQGLÕÕ P²Sú²NþýÄ-IW€©TK”¾žõÂÀÅàkµ@«¥‹¦¼ï–üŸEg™Áæà*VmCêp«ÖQ"Ð µFâEjT_ ÆJ[. ÒO«é›íûÜ7G6zÌvpá“ùŒõyTLÕ"íµöz¢1à¿: ¸Õj(,Òˆ•Ùda|á6Ø?9-<5ÕßÓÓA8“‡«\0Ÿ#àj™¦ ]€j2WÊ×ä¯ò/¿ý[¨· n˜µŸA'˜AM0‚u¨" ”J¤R•E× #: ëø´›E©T=–¬žì›îýÌÿanmpÜ!Ê‚M%‰Šo8+œAÏŒ¡ÿtÞ²è*·Ñ»asèùÙ•Q¢̰¬e‡îþò}§y|Oo"¢F‡åüVþ*ŠI-£ÖRk6Å@F}8#ž#ø)da¥RIZ~ÂÓ{ªé™  pç1Ò7;6y”1ß~ŽÑ¤7Vý”sŒÂÞ@âw˜èÌõ¬›®¢Q5UÕi “É@Äh+LjÈÙêf°×ê4ƒ LDÌ ÒdÐd—½ùØö÷Q G¢GnšË“ñy„áF$K’ïù`¤éP7 %-Pëpwêú1C/ AC—FC3Ï nÞÅJ©‚LÚ— «¢ÝßášÈ|åÛŒ‹™Ùñgtß§_9ÌZ«¶ÚdÒh‰m램.(eùJ•2q‰HâÖÚÝ]®nbQéBÿ…m‹t?;3ÿÑÙcéjª%N ôAýY$±AÕ%m=WãŽKG¼}.+á²ÏÒÃë¶eUäÛé‘%6¶»Û-]5fÒì°Á\¼ÿÕ¦v»Ç㜜9<6 .°¨kL>´ ;†·Ë9ÔYÚŸ¶/ƒ“Å#öìP(òÊè1Mkä:ëãË7b9÷Þ C@_åì}9ãCn¿ÏF´²Ÿ½…V_z¡“”ÅË9"`ߎ˜ÈëÓ·—Ú]³hß÷÷Ú ¨mñtOOŸ| ”‹uBc%¹“²ý`×<‚ž\<ÃþÁ¡Ÿ¯Ã+IîÔø”ôt¡=¿ß•‰p0Ÿ÷û_`1F3ð5-E &’¼Íò*<"~¾ ¿ÐYÖÙèë!"‹½Á8+*ªmõ†RkX`ÙÜrbYÈfwD¸·)"Ãþ !)…, endstream endobj 696 0 obj <>stream xœYT×Þ„(6Ö¡ˆî¬±÷EÄ‚]"ÝUšÀ"EÚ² w©», °(`Ašeì-FEc‹ÆåEc|~/hÊÏ%ßùî,eÇwÌ;ï|çX˜[ÿõ÷ÿý/„U7¢·<<@ã±dÌòàP?6’s´àtãZ¦"oŽû0^ÄI­ `m ¬­v ö/›Ïû~ß›{اý\‹j‹f‹_Gø._íjÃècÆ~1n|Ò„“'Mž2uÚ éƒg ™9köðÏJ猘ëì2r=A &–3ˆ!„1“J,#fÈáÄ Â‰XIŒ | gb1’XM¬!棉µÄ|b ±Žp#Æë‰Ä8ÂOxˆ…ÄD“˜D,"&‹‰)Äb*áEL#¼ kâs¢'1‡èEô&\ˆ>D_baCl$$„Ñ  [ÂŽ°'º„%ÑŸ°"‰Ä@BLH ŠH%â3BFt'=ˆÙÄœxIœE7 }·žÝ¼º·t³¼lÕÃj³ÕKÑ2ÑER!î-ŽÿA­£j(øÙªÏžuéÎõˆèqÚzŒõ®žŽ=7ö¼Ýkb/M¯'½—õ>ØgfŸ×}Cú¾°gó£d¬$½Ùos¿=ýþ¤Kè§¶=lGÛ®·Ýa[nÛ`ûØÎîÑî½}ŠýK…Ãõþ³û·8’ŽK/;©G X3°UjÞ•þÎø25̯²@Yó …ƒÎú•{Û‹{ XèÄ“¬ç}è‹ÈI4—LPªR’õªJŽ'+õEe¥Ê¢&„Dk9£mL[“È£M!  2ï˜M^€N"˜ÏÒ(•„<)ÚI¶ßø’bmn¼ `a-k'¹ gqShó!’è¥ßþmd ùP?XHֳņJÒP½oñ!ÇÃÀ¨®Ù^W Â)äb³4ærXD~çÑ2Q*ññ¡ñËS&Y8kA–†0 ȯ/S&0ÈÒ,Ð AÑ8¸QtÌ|"êf^±“„(ù JXC øbN‡[à ´Eä%Xao^‘Øa$c¡úðnѲ–øÚW°£…|uÿöó[›NO«cZê÷稧®×FJ‘Á¼èÉ¢`Ãéâ{ý–yy1•AN¨–†IÐY|4ªêã*vo¡”׊µnR|qËY°wY®;¾òKn>$ÃPoÔ·u”@›wÿ‚½ Äé_¨`õûÓYƒGL›9tÈô'ïZŸ=ù1›²ï~‹hèw‰jÈrƒ®´$]—ȫ˟GH䌶£Ñp»èÀœƒ×ðæÜ%BòÁgæ›×&Û%¦ª`wvK•Í5^l;É[.šË§7œXZã Ÿm~ë7mŒ\¼©ébä{£ÞpÀõ«µ'ÏH÷Ô”T€bÊ¡KUeeg¨¤¾‹×lsêîôZ3ߊaŸÞBË¿_å/Õ&e”ª¬H…°KTªô)É*eo6äÍÂq,|ÄGônØ ‡4‡y ‡â-é/´Uú’’×fu|ÍêH^9cíNz^ ÿP°÷›ŸaFÒöó õ™»6Ê}•T²ºE·~ç:rì,ç³¼ùåñƒ ìÞ“…§XKNm ‰±|ÉÉj,„nå‹án“è2z‡&‰ã‹”e¥Ez£v‡»5bô¤m“ÈGÜuÊo,|ÁZþÆÒrA¼E‘n…Vp0sQ  ‡Vˆ–¢(ó‚F’mSМ_w4m>P»¬¢æ‰Mr%íŒéçU¿³6|Pcÿd·cý/œq@ó#Ú¥ª”B;q—mýÐ0¿'Åx¶´Ì4Ë´¹šÃáB›B’Ü*8™ìÚz [âN° Ú€F‹½‚(21=#5¥8£‚y€^Ž2ÁÛdE±®¤Ô¯p)ß »5UŸpÜ ªÒjb‹T¹9E€*ÑëKôj]b³m·BÖ€u‘c§QBE-Ú…ýp6´ìÐäerŠYË[k¹êï´„Éde±)fâ$mÏè*ŽdåU6ïÙí'`9wÂN²—sãhzó¿Ëå̸Q®b4ñapú×7+[:$à `Se=g ½q¨Àâ®SPWq‚ÝG»I—«ëù$í/V§gjr23¤A±n‰+復á«`”¸+Ã?BvVã\õÄ’|7Ç_džœ¢V€ÖlGÁ¨_øôlm›¢£ró'ÊÌ«|aRGÄð9aJŽlÀ;;I·ØöŒâåœ5“eËHɉ¥+½Ã:® “‰rîµÕ¯ï\ÙséªTÒpÂjáß7t~ç¯Ý=öÇñÓje³ 0ô1AÐ6úɽ7aÇ—ÞC_8¼0˱‚t+CÎ<£á:ûr庛ýÙOÊÁÜæxFsȿè9æã].| #i8 N}šA&Ñ@d‹úC[ÑÉO³°"NCÐä.R îs0ŸçA ÐŽC΢EŸæXÊ®xgò¹d¯Ä%»—lÉsQYy¡Íˆ‹öº®‘7/IÉ©§®Èï9Bë·­°/ì3ú-êÅH޹‚[׺QÐýkú×G3‡8Ïœ1’‘œ1ûikëã'ÂBùÂì’í8-þ)°D²YÞ¶)qË­†um2Ú#n§¢¬Y‰ l²•ìrCÃDHòq©è<| õ\¥¨ìÓ†¿@¢)è9šŸ‹Î VˆÍ+ÊÉN~ˆëÌsþ6×wÜΚhö5zãÀì?j4²Gý~ínÞ¬j:Çì3î¬%T±RŸ®ÒdgdHW¯÷Š™‡WZÌyð;ìöðìöü[ÿUùLnb¡J€ÚÓíšÆK»,†)i/l°Çðs{÷‘®Má*ÐÓY@ñ?ÂL'E­hløåïîWN¡#á$ô‡È´#›1RGð´áý(3Qù æ‹ÑôZÊukæ,+P^„¯EÙ5~h‡3\Ž)Èè™F®ûvYƒ 6M‘<ßîýv8Ïþ¢€+M§îP߈…¨A¢(øŽn}4k#ipš5ÓÙi6¦à8ÂÌözÏÂÛXæl[ÎØ(HXg ·’è2§ ú(‰…vi®D.\ /·iÛ•‚óX8£g\Oƒ“crCè³YçFañû9E=‘íŸC¡ã+h}ªÉ€}Ÿ™•©b·ÎSxD€Y·“§X«ÊŸï^~ Þ‚û>åã©öÐ*b-αÜdSëqF8@‘šf@ü?dà@Ì?íà8Ð Â-¤~F$ŠŽFb$Bä(†2({ÿ3„ññ¡58Vá2At/»Jž=Ñts÷af¯ô´€\ž×éJŠÕE©yÌÖB÷¢`@MX¼jã=É\ë^¢—Î#Ý1 ¹w@Ýræu6o<ð&Ѹ „ä÷_¿ž~wƒT‹›s;˜dóp¯öøÆ ÷ùË'3ÿÖkà˜ú±=¦sKà ÚïÖª:>¿DcÇ Q¯GC#¹w\8pâ&…h±‡ïJ)¦¾æûHò,8XÑt°®¾ô`)ÉPnıdp—0n@³£è7÷pÓáâ2v¬ n:î?øÅ$‰˜ÝÁrß³6&§ÙIâáe¬¨4ÿØÀéîr»A;ìÅN?zŽú@2Z:a‘*3K T©z¥!/¯tÇJnê@-(×ìM§$¥éû šrÇ£_¨*QêÓ²²r4YLØöDUH¹1zJoÍpŒIÙájê ÷’þ/bÁ”ˆ&·Ôònù·$l3nlÿ*VU˜ÊE§#ü Ž4”^¸¾³L‡#`·ª:¾v{é6Ó;ƒŸ€¸Ù™+§Ì#Ÿx¶Œõöõ^ÓÑý„°8 M·Ÿ0E>/y¸ù¸ïK4•ºdË0r&ypɱ×õ'OƒÔóéwq_¯ýïJ-Ì·‚‰pŒøî-ߥ‹g­vîÊ‚÷¿ÙÀ’– S[zG²I‚#º£—h²àû/AN&%­ÙÜ÷´Ï–®^£„gí?³ ÇáaVqœï5–qe´?ëWé¨Á³Nò75Ä2uŠæÔ;©ß¦îR×$á^c_bÅÖÍý]øŽïzî¦FšS®Ö¥ŠMYµ·ííÏ~Ünl`[¢oãû÷çbÕ0áÆHÝœR¯âhݶ ÜnDW$ï;ÐÿæÕ3O]õ[ÚÞ wÖ÷¸Ýø·þœ«Ä&°€°%ÃâŒm#ÄëÖyJQ?â4ùêú× · 5 «„ÚNõ±-ÿªú•¯Gp gbGÞgù¶wæ­¤¬P‡Ûj²m"ÍÍÜ=8«Mñ7o²¹ÆÓÞ?^p!}ò0\ˆ9Nä§ß‘üH7áJh':%4[óêÝØmÈ9‰¸ž.yÝNfZ#o: »šµhm¯Y˜–4¶Ó¯ŒÂxSÕÈP'›–ßG?‘,˜4ÑýÎORøÓýjK‚²cU#^…È&C´zñ’uÉØÕ ´Òh¢@³ÏÚŒÿ!þLlËÁ›«l/‘0˜3ŠÈáH,]ÇÆG$òmSˆ4$òæ¢ï‹F™…; |4´sø?üË€N ­\mD/å¤ävÇHÿ–Ø…ö’[rLß%M—Õ×696ØÄ Ûƒð³‡.×Õ`ßt`K0îy>šl"[6œY°%nmTqzkõ&@I|üAD‚|=_aY§±`  Hù¨àF´PY ‘à!…?eÜ)­*ËÌW*-]™ž¥ÍÊÏ`à÷-)J.È*ÅÅúâüœ‚¬">a F/@y9pA–CRiJy©®ÐX,…Ã`%_ùQöCÿ¹ê§Ó#yS%§˜n–~ëëû-odhÀ!è.µÛ†›­‹ìÀmöiHÑAá‘!!u‡™bòpݾCÃ÷™ Lß³çBÿeµöƒ ÷¡'¯Óæƒ|ª8]ŸŽ©E²Jа:YªœL,r:nË òËŠxåqq:…™—K‚¿ÑpÒ\H Kd9h’Ô 7ÿ1™°„–!'JÑohp½ò›º“»GÁQп[^·±Ò,¦&ŠÁâð ¹<Þø¹QÑ~2ápÝä/Ó›'—EƒÆê½õyÆÜ¢PF•(u;VnÚè#E®bªIÊÉPá*–¬S—ç4kj¶P ÏùÛøÕNÌ<ÊTñ¹Ò­y±{A#ñ6m×–š†Ã.\œMakxÐá8y-KÊÌTƒ4¬uº>W—‹ë(´?*j+EŒØÜüßàƒ©›† Gø¼OóAdzúkª ¬:ƒgjkÃ-`C0ýöfé<ñ¥Ó×Z^üûÀžUûA õjÊgï‘ëC¤ñ1)á Râ¦ÕPXX–/-¿òõ‰oõð–·»_|ä˜qŒ‹ë,—™ó¨¥bÉmNú9tCùÀÚˆ§<6j«&>[• ’©T}ÆÎ¯Žl‘ò8XSÛœW®ÕR€á(Iš³4óÖiÙtråeFjrQ¦1[Z¯©ŽrÞš À׳%&-P`Ã-dãy…¸îð «ÍÕjÁ•ÚCçÁ%êÅÜ[N«×&…Iã’’p žŽ‰‰./·¤Xº¿ñLÕE@}ײn‘d—ž”³P‰éqûíSÏÏçÌ]4~Å cóFU•«TºR™žRšÒÈœ<•rPPüËÓÖo6\ù¼¾óû±ðœÖ84­qWƒúÍä±à(rØÏ„Å¥eíÝt‰âÛìE݆¥Ñá~¨†4é Ÿ°p6Žgî†]Î]¡¡Z€Mh7™¢S r K¤Gw7ÔóË^/œï¼Ì·úøzFUdR M©LK-ÛQÇœÝr6éK¬@üm •ËÓa_„(ãÖ0íže¡GUóoÏp̤sŒ9;\¯øzßñ3ŸzŒ RSœ©ËÄP(ƒNo0†–oZ´(zã*ÆuÉæ)Qšÿ õ‚Ýß>ü$ÞÍ}>ÞÍ7pF€´Ð—®9n¨ÜY^ß|d×A@ݹä9{ÊrOW5'žG1=Ъ«yçTq,kñ; óojÜQMn+Æ8¦‡4ìÍâ‚‚ò)œÆ•‹n´}6×üÞ‹;è¶–V A.µ;±B›˜¨È™Z•´=ÖÆ*KC(Ôi«¨(4šUDFV+ê˜R²®f÷¾}1»Ã;LRujXŒ;a<Ñ 3ýJ¢¼IÛ|à¸Jý4óÁ¨Q3]&x×oº*•¼Ÿ'ZíÙäóÙïß?üöfЗó¤’·.°‚~xe…Û"ïÕ.s—ž¿yçÊŇŒä=:hõìÚò¹®žKgÍ\tåÁýë—Ÿš{8.©¨0/ZŸV *ÞWÛ íÏÛ~j´]N9ï=ì8ž:lÉÉá_´6^»(ÁâD¯È/Ö¹ÌÞ0ă„¼ô‚Œ‚,m&މ eZ|sÒ±7jO~ÉÜ¿Öô€çO‡½P÷‘s§"bØÃi¯¾½pä)+U_ c¾HKØ‘´540.P –ß|üÃ¥›÷¿9ç7m/“§9…±&Ü\ÆBœý!G¿2GýD²Fk+T†dàÔ9‰IHa?žÜ‰G‹´†ôâ4~\Õ1>Ó\U‘Jd#‹dŠeˆùf£´PW™+Ý ¢Wä“‘ƒ2‡RP¤ÓV–C…ý3³³È­Ð†æOOê¡È%Ü€ÿP²Òá<aßð`ø~S)ãá}¡ÿ©¼Îƒµ·ù.l¤¹)hG¦ ;8‚Âü¼ÂÜ<ûÜ<\ ó@aV¡²A¸Öâôù@çòrò²ñ_û¬Bu>΀›p Õù$¹kkó;[…ƒs7Ðö²Yí`2Š­Úgt¬Ú˜‘°KZ_^R„oÕ;”ÅéYêlZš®Ž-Û^ ®ð]Qvbã翸SíÔ[ólÞu¬N*ÑÆ¢A[›µrý…k_5ý²ÄÐËÙ÷8*Œ¸©5“Áƒ˜úéÁÙðŸx WÊáÓ=¸_i56ŒZ–®Jä›Ëüà][©ùÛA4ˆKˆJIQ+A•¦Ï0åäK÷ÐV`ȪJ9cTíÕ ªxϞʊüB £ ˜”ð%”«Å.k›wdæeæj€ƒ¨³4Ø.öÙ,’¨òÕúLÑZ{„ÿQffeâvdi5¹­Æ>O]”Uˆ›Ÿ[gÊ‘SW-¹EX§t R%F¹¡nAè3à†6 ù‰ªCôéÅU‹õ†üœÜìÆö {þøí6ì•[ ÍÅtÉ€i)ú>­z‡Ó¾?ûkz~ û¶9îS?ÏÿzК­‘K¤šTµRCyˆ»è$+>¿§^wPÏZ6x._· QëÁôfÔ“–Çn¯ÞÞÈì%«wí¯‹­’›ü‘wÕÎÆòc š–¥ÍÎÍdî ¾uNük,lˆ;ê•™“ ²(Rí­~ »†Ÿ_Áû-¿{@«ØCJ}:àmáÅ–cx´ÿ' 1ÞOÅyÕ`ŠUƒª(5—uâŸ=nG¢˜ë–¢ibàVéÕ¼ºyÍñ˜+€ºÿ°þ@16‡*''=‰KHÝÖ‚Í•Q‡ÃO$^W(8Y í¯¿~õÍ™µ ¤Äô®Þ`åvÙ÷Qq±6·JzÔ*U“œ“¨eMg¯\:öȤ¤‰s‹häpT•›­Í| M×)u9L~t🉬TéXÏLÓÇ® ¿X'}­ž"+]Z¾F z½¡@SˆÉøLhŽî,(,þWKUNv¦9lAFüQkÛAÉÛYáú­€îIÿ ƒRó÷H²×ö*nJ´©ªª"ug{³¶f­{Äÿ înË endstream endobj 697 0 obj <>stream xœcd`ab`ddä v ò5400qä~H3ýaîîþáÿ#ˆµ›‡¹›‡eÙw¡‚où_ 0012Š©:çç”–¤)øæ§¤å)åç&æ¡ 2000v00”€t°;ýgôu`àûÏøùò’å Ê…„|¯û(ÖYš•ŸQßÏ¡òÐà;çg¿Ê /xkÿö7·œð¶ö®6i¾²…?œæ~Ïë™±”íwh7û{®½Ür\Ì-‰ñ<œ äFä endstream endobj 698 0 obj <>stream xœµXiTgÚ­¶¥«ŒˆF­§ 5Á A\0®àT0¢¸ ²ÈŽÐì«"4[/;oÝìÍ"ˆ€+DQq%jb"ƨc45Æ8I&ou^æ›ïmÐ$“™ùóó†>ô9]UïsïóÜ{DÔÈ”H$’Ø;:[Yþš&¼-&þ"쩬w7c1<0éMj$4.<ÀÏ?Òü}/ s+[Û3Í­ç̱5_ìàå)5wôŒô÷ öŒ$‚Ì7…xøDÆ™¿¿Ø?22t‘¥eLLÌlÏàˆÙ!á~K-fšÇDú›;ûDø„Gûx›¯‘Fš;yû˜nöл}HphT¤O¸¹cˆ·O¸”¢¨Ù+¤v!ö«ÂWGDF9D{Æî^çåèíä³á#?ç€M›]‚‚gÎ2ce=×fÞü…¦QÔ;Ôê]ê#j 5ÚD½Gm¦\¨-Ôtj+eGm§ì©Y”+µ’šM­¢,©ÕÔÊŠúšK­¥l¨yÔ|Ê‘r¢ÆP&Tõ:5žš@M¤Xê êMÊŒJ hÊ’ I¤”¢1¢Ñ£.#úÄ3Ä%#—LùÐh¡Q›d.=’Ž¡/1nÌ‘QΣú_ÛøZëhÑh©ñÆ1Æø›˜š¤š ±6cg;ÎiœlÜ?__ûú±ñã5ì'ôM\:QÊn&úpÐ!°R#ÞÔ¯gåEÊœH¥"}/ö|jš°;$lŠ‘ÒÔjh8uÊãwu´gF¸–|Îuvñ1dfв%§±Uv"(Aa¼ Â9)]­¾E¾Òסzø¢µ ®ªXÄà¯ð>‰‰Ð:a’F„¨~äÕ/6"9 ¡!²YzhgNLŸ…)1ŒêG ž”d$¥¯æ¥ºò¸†vK‚µä!uê^òô¾:ÙºD8Ê#'úçkg.^,ÙæÄáÄÿúÝíªFÆDï@€¸¦A]:âÐ×ćõËX©†¾ž)óåh_…Ìž‹‘ ÆÄ>¼ÿÝm»¯ðèbþiŵËpƒùÚæ.~“ëñg,RÓ-êÜ#/ù¡mž‹ÃÖ…XÌ¿¿aÝ•¹-<Ò¡ ôw= –.rZaÁ› ²*ÁZ#j@bÁ²ˆµø3Øxæd<Oüa’ ×ž}Æs8»±¾àV&í=ª:]КŽ6>RÖ ‡ +®Þ»i¬_ðǰ!;vÅú)lk´No©õ>"êÄzsý¶²ei*¥,s]ìvfM«=˜áuØš¼<°²ÁsZø½‹FBN’L•žÊ'㹘Y5˜UxS:ŠºÐGG®ÿü­5ž®áÕ‰ (¦25¼‰~6Áñ’l¡I·‘k•X?å³Q’<'b%^ ž$†¢úý]aÐ<¾ •EIæ%Íàæ …d<3 zš¶—â)L•$ E vJ5’a.ê~㢗ôθáÞùéÒ/·Äè”À>ëxt3O ª,.E¾7 BiuR™FS\ßÚà1_j›Æ©X‚ßú­Ô > PŸ½ì×ÚNYØFªš@ªê!?ÃUm® W ƒõÿ~(IúrVxº¡{Ó6Ê¢6©ÐO  —»@8‹›‹ ^–ûºMÝ–<™”k"¼!Óó+D-GQÜQ1º-|0DYJlTr*T”³‡ 8ÆÏasø·ûóÍ!R%ŸN*VÔÆTì+Ž‚Æ#|Ç\‡í?Dqò ÈPe(³ä & Òãx<‰Žƒô‚ìŒ m9— êÒ²ö½PÌÏ'ûnõ6'çó~M¡9EÁ9v%pžiÒ{ˆD9³ƒÔ\FJ.dSÙ¤yÇ‘æ}K‡jD?ö£IUb´X˜Æ¢É:<­’¨fù͘£`bîá&‹¿ˆ¤šíÃÕ+ËÒ â““ÒRÖ-2]ò£"+-rÍ '»¢ÑY¸rÛ¿Öÿ1T*µ¡hžeªVf¥‘¶U,±íwwqOò0øP;ñ¡ÃDúÔÐ3¬à™òR(²Ü¼‚âRmKgMÓsÓò(rÇ4HIÙj¸¨NÝMd¿…\t~ø¢-§Žhf†ÐRƒ:ˆ‚ Š"!úµ,æÓ†Á§UtV^COVnµïaŸËÀ úÅ3Ä¢ ³¾ÇâÍ;Ã=xµ  .,«i;¢ë¦ñçD¼ùC™g„ä´\À¿5¾~¿²ÀÀ#ú½#…+CÚ({o?ž€í±–Fáݦ.ºÏ5ê$Rå\¢çÁ`ý²MÿÝ€F1öÐT I:Qå ±`î³õWŽgTÂËžÜC(P¦a€*ó#‰ “ž”˦âlS,Fµi%ÄÇ3ÌêZACz2Lé !C,:_ÒyéÅAÈbp„©ûdPÊSâƒC}Ü€ Š­Z³Zkb‹ãâ£eRŸƒ¾§Îtv_ª#S²FV…twz«D­Èí®ý a}awDy|Mue‰îʪ‹ð¨Ùïlî; d„L‘q~~*(’UŠDµÒ%اE§ÐL´è^gOûé}ÞռɯìKüø¡ü 1Š×ÏdS+U¤D[þ¦Çt(ìœ9äø§†"È©WŽ?Ž×óÂá ¥ý㵬¤Ì”0Ë'!&§Éõ&¦ƒ7$¯¤¼ZýÉ :øê7;°7(€Ð@¹ÎitØR*UJ,–~búÇn"EW\£S†ñRÐÂèhG«9&󞞈'<µ@#ŽôT–ð«i4ù7ÙþN¯ü‚%)¢"üwK·†©´åzQGU ¯iêhê‹ÐêV°·(ž°Ç å¸á¦ª¬jÄ(ZoÅ&«2¢ÈÓfI%‡¡êS™ÁC´ô¿£¢ã…j:/”ù‰Â[ƒL 2T¹@ ÉÊP3Â5ZÇŸuÇÒ!°†»ã)ì”òƒô0å¡•È~(Ф\ Ð>¶J •/\žà1X2w ‡Mÿ6‰Ñè£ˆÒæ¤g¥¥mTòa >ŒôÆsZZÁWÒ•l²zPÑ¿@žœ@*TGWëWrŒßc±~+ú–E^x&²Æv$wY`ì‰ÝÑ l…ìÑô>š‹vqø~ÈNŦߡ|¤DüÝ'ÏÑÛóp:.Æ“,§¿Ì*]5¨Ÿàö—[èôc1’"’à–HШ_n½x6ý~›Ç멆?xüÒpç¥5¼l %ªdQípþ{"Aóyx–à†¨‡=µÈåô×Z¤ÖŠ.\Cö×u{<¨ yxåêÍú”ö=Íü¡ŽãMÔ‚ü*eòt$1 ‰eyÙU þ[½÷ìKà‚«ý‹IÀ³úpÍRçVß‚d>q_œ”¨ïÆÖð¼ô]ûwùÁVfõg4~~êFmê¹ Mܶºí0œ â*eÉ• …òœò‚湌 /ª+ ³¼ž¯Ô5hyÓ"ã`w|(+ –ES;îûlžúP{_U’ŸsÍGËvZ<½£µÑ3tzÑ®ÇßkÅÂ"ô˜}^}óÜdža£»x ‡OþL«‡0ÕÁÝ6BC‚ƒIõ!|ˆ·®†ÅvÄ£t_Wä`¾,¾¯Íü$¤ÉT|úièØ²ã)§T¹i‡µ©=òæà¦¤Â°ú̬ͥ"–p©ª¡H›•ŸÑ`n£‰€gØì\‡ßàMP ñ7¦Mx&B"2¾v []\[ÓTQWÅa;‘¡¾œŸF†ºö÷èx‚¾úàÀËUGž}ˆF’±è ܪ^ÔÛ‡®÷‰‘·0ÝVìÖ—™OÏ\ú-¬Âó=r8’¢å/£r£ O!‡ý©\ ÓŽ‹Eî$£‹YOÝQî~ЋoõnMþ,®5åtBIÚñÈ&ØÄ,ß²r¡›cáaWnãIùuU‹Ê0ɯ"ŸÛPäËÉPårYyÚƒy¥m^—¾&n6òöS4âBäÑÐÞ÷¨[¡wac ZB¡On‹õ“õ‹ØÁg’8aT%)AÖùmÈš¸]ä)5ŠŒDˆdut$Xp~RI³úG²‰‚Ÿ y?ÚJð‚Ž†Zu~YVžZ•@nïW‚­ QWN°ykÈ Ñßë ~Ïbó™¶³6¼Ûì9aâ+¥%yͤÄmÿd„&4žŠ˜wÐÄßB“~àúÂÍ¡h¦t!2%%öû»P…s¬7ê&xùŸÜ^û;ÝCá¯þ°TšèÏüqU5dV½çŸ¶Õ…à¹a¯wÂM—ªõÿ¯›ëÿeËE5ØE‹–“î¶×ˆÑV9{1ú·46*,´2ª±´07;‡ËÌÌ€ `Ô¾.lƒû.^®P)AΤg§gç|hÎÝB{E…¨XŒjÐF¶»ÄïÒ ="äß_F¢|c4»ÖUÒ­jŽ‚=LPd8ÁÇtIˆã•Ÿ;íP´/Ó ‰Ñý[QçÊ#Ûïfô9 wÓoû ì¾k_å a¥ÔwaÈz™#` ¦çÚµ­<´ìZÄIÈ{NêúÚn¨¿‡>†ì¬_°{`mE,%‡¢Iwà‹²såW>n2äľÈÊyÅÎD4ÖÀ‡°,É)X놣èy¶²R˜ÂáÞA?#)*›Cû*evÃJ?ü_¡?ŪG/tÓha ;8ˇ«Dôä¬AüBèE=ÚKv¸‰Â§ìá„V1LdtýnI–2;lòd~SÄE8ÀNMl^j&920)¶—Ç=DýÒŠÈÂ[TÀ5t¯é1Ä×¼ørï Ws}À9Ä-ÊÏ;Ü\¼öhÜçÙÊ)´¼¾à@ClYx\X²÷ü«†Ðbôü)Ñ™Ñ<ÇÙ=<$l¨ƒë…)šoïtÖˆ:ï ù1±Û,ÊAc;zÛÚ’‚+¹DØU[W[^ª;éó± ‰»¦˜Å¡¸;ÞC¢ÇOÑÈlö7ïY. ‘ñh,¾Ê®‡à3ÉÚä:Y7|ÊÜj{þð´Î7 ”+ó…íàÛÀ-Ö'|‡_¼×PG×ëÇ’§CÇ:Åècô¶§þócðWæþ‚ó–ï/±›PÐÀîÏP}ê:Ýmû‡`ÇL~áð7$~|çç¿Ù]r‚Ó²ûó½ê ›é¿Úyåúå­öNî®÷p«·°hÌâºøcAàd¶léÖæÛ]¼ûåÙKýdLò´h*¡Ü 9ˆ±~,[VLü/›©ˆ/OHKM"ÔÆ3³Ó²ÓsÒÍ ùM'p:Tn˜÷#çY:_+þ…²ñ±1àÅØÜu|rå¼îÄÇ\mÔÅÍ÷à\<«¾ÇDI”Ë}]ÁÜ:=»÷8wòAëíÁû†í1PE^d\‘/!rH“§ð1¾¡ná»ý6ùÈÓãµSÑ»q]÷ÏáS BŒ­Ó*—wv毩]Í©S3 V© 9TÉœ½ÌF÷%_…#ÌíöÖ¶ÓY61km­¢#¸ÝËØŽ9ŸX\^é¸Ñ)UJöì‡겺êò™'Ïæå3&ÑZÁ¾…äi%سֽÖ?š{mäñ(M¾±q™ñŠú_ñ¢E endstream endobj 699 0 obj <>stream xœX{TSW¾>áqr¤T-ñ8 míøV´u:«½ãL}‹E´>°H±òˆ’˜„GHxä$Ap‹rBÂSP‚o«¨h«kmרŽí´½v¦3NmmÆövî>vûÇÝ'!D;³î‚µ9gïýÛ¿ß÷}¿ooF‚ñÉòüÌÝ*µ*iÞRµ2›ÿn67YÀ=Æ=^Œ2î…ß‹ŽäÄшѭOÆMй—ð‡Æq×Ç&©x^Á™Önœ5gÎÜejA+ÏÉÕKŸyá…¤™éàér™Nž£’NÇ eJµ&_¦ÒÇK×ÉdR}®LºU®”I—­^“š˜¼B:sEòé ™J¦ÍPJ×d*åYÒ$y–L¥“Í’nUk¥ÊÀ?Ò,µ*[®—«Uºxé4CªÓȲäx¬8K¦áÌ•jdÚ|¹N‡?Kå:iŽ6C¥—eKõj©\•¥,Èæ—ÇßoU«ôRVŸçã'xª5j^—¥•kôR¼âšå õ¹z~]?–ª·â7³ÕYün†žé3ä*T/+ÖóëdʤÙrF™aÀëâ©4Z¹?„\•3¼ú\©V–“¡ÍVÊtþyù¬ ïO²ë FiðUûßZ_®×É”[ãU•Ⲫ¥IR¾°#¾.Ñÿ¯hALS-U/Ó,×&èVè_.H,Êx¥83ɵª$;Y¶zkN®\¡ÌŸ9‹ VOkˆ_¯ÓˆuÄ b=1“Ø@Ì"RˆÙÄkÄRb.‘J,#曈åD<‘F¼DÌ'ˆÄ âe"‘XI$«ˆdb ELÇX#"ˆ#‚Õ6ì™°¿…§†ÿq)Ò@þžü\xJ¡þ4fó.êÆcöèç£/=®|üç±ÆMwa|öøsOŒ}âbÌzÑ“¢Æ i.ÓFú½‰±Ü±Üàñåyb¾õA…ïW¢Sp#—HÏ#- TT«ªJ @­%GwPÈlj¥š©41L (&»ÑÉ8¬Îªv@Á²Ôר÷48ØFà–†2‡¹ÖR£” ®$EŸž;Ýãî›|¥K¿I‚„ÙE^kÉ)É?‚ãXÖ ÜTOAS¶®‚âYûóÚ3ë7ƒõ@nJK§ø`}pªNñÅÜöÁ2ßZïO·}´‰Ôfc«ž±[]Um8¬3$ŒúüêwïÉû–’ˆ¸“½ÍÞ¾Iß>ÿ!Š£½ƒãJspœ™µÖUwªô¡)4œã„ïÑe¥oR.“ HTIép²ðè±v˜(ÑOF÷6ݤ¹a…GgôÁfŸà„^ó…Ë\ f¢Èé(M„ä¯!ÿCþ'B‘ÿƒ¦HvÌ ÿ~mÍ’Å ¯>ûlÂ;ŸüùÚ¥[ë¤qgZòã-8ÒOßAÒUÆŒM’SˆâãÅh79Í«£ºP÷“#ËÆ?eúáR²8CÐdõ£É\³ P¯’p—F^¦³¨»°y+È£^Z•úÜÂäþzšw·ˆ;=^öà…ùcíö…ì£ezƒÂ k­÷£v ùwp¹íìù¾3íWÀuê´>ƒ"àãhºå’` R´ŽŠ}÷E4'‚a·ÀãþÜnyãàu*]^+ËU+•мòÕƒëB³o¡/æS˜>×ñ<€I…&“% ¸ÊƧÃØp=Ã6,z÷ 2¿Jn Y1@/vÇý˜& »jwh2L/5.°Î E >ûöH{ÏdpT6”ᇕ.@íkkëj²: Ýe§Â™ 6YÉïVøô÷˜HL$×1n§¿´’@_S±‡aKÝf7h`ÂQÂ}ŒäAQks0 F‡Ls™•©®ZÊú[Ìö5¡°ÅajdÜA@9jìüà9÷Â[ã·>Dµû¢_"°‚ô<°ñr¼q†×•ä龆aPùyð}ÚYàbp¶@£ÝáÄ!8@'uXØgò(LŒµØ"ÎnÊ´oâyñÜÚß-È‚R“äm[Ëv·µÅR_ Ê(}JÑ+2ê;Ubf¿Ñµ Tj5—ZÌÕ ÐPyB «aö0c£¥ Ôû®:öXñ9ó%*}{à‹¾mo¾Ñ.ÉwgÕ-v¼ÂÚv–î1î5³€¥šÎ¸Ïð2E]b?ÉqÞó}¯~è çN×é.»Ë :x¤—÷‡–‘XoGf-_)+ɶ¤$Ú ïVv–ïPW… ßÓïõ8pªñ"¸ú ¹v%{­vf˜çvÇÎZÐE}&í˜ç«¿¤ÅÀl)×e´lªÛ^+µ)SR”KÀ‹Ôr!x©cÅñ-gS¿Tý|Î7üã4Hü^œä@(~EÃÄ kCjUè(ñ& :1‚X¦¡dAL9Nªl£æ G#P "ùÛR yþswÛYñ·³´S]…mš k5S"Þ¬O«H2 ®-¯·ÕV³ … tµm>¨õp[Ëóñ°°ÑhŠI8 gfÖè_èC‚1:Ø8éÝÕܺGÀoúèê`ucyuk@SQœÚ@¶¶†}Øœ V5¼UÔ}‘¿ÃŽLްþ"ôk¢ Ná¹P惻|'çj’3šYl0±+Éëµe©€Z­n;+°^ ªC¿¿¦ngl#~¬iÞr,¿Gw¢ì¸z\ý§©´o…¡-?к‡DGäŠè»d¨ ;ð(.”…»÷EÓGé!~Ðn\ O¶º½þÉ$ƒ³M'ý…ç¦`H¾ éPbä×ä_á-o _»¸‹' ±Êb-c,ŠÁ¹ý­©–ÌBó’᳑ ÉÕèÙl8¯Øqüq.6èlʃ½h>öI;@yµ:à“TCoõ—èVìíAeŠøúŠ/æÄ¿ õ.ß8.v"ƒ«èª©Ýó=3ÂÍä7K. q©KÊJÒÄEXu@!¥j)èb]5»Ýâ>çá=^@]í6É%zaf­r—< ¶mNÕiL¹@I-¹‘üýÀ€«ãŒXôÓNA¯—¯+Ù¨-yîÖ#Wþ±÷ðvë1ÉP…nûu?›¾|îÝ⫳O£§ã`Ø(±2q 2 Wý%¹.‡ób·àäó¡K†´8 U•ÑÔ@ï(m± 4/Î:( € ÙÀ¿é ³jî0¸1°ˆ†±0¬wW«· ´zjPR[Ö\–œ›|Ö]‡çlŠ x‡¬ÙþÐRó„… MCäÕE‡ íI1 ç¡ÙÛn®W;%×ßý$Yk5}ž¿”gUGˆ]v±>üýEMòÊß`Ó°»ºA#j´M6Q‹Œ£DhX0¨ƒäùœceàcp±¥ïdß©öKà}ðîô“é'×µ,«ÁëÆ-r ÎJ¥Ï€žònu»¶Aò€¼T®Õª5ò²×µ0ùÂç^—·£CÒÕåuž ±Up_h ‹I~‰]ã Éó]ãK÷EkG? Ö˜SÂõ$¶¬5mæ„5Љç#…0`I¹fÌøÊ]ôzDDÎ ´œC‚‡­ÄHSBäJ–pÉÞ HxYa†)>|¢m†ãbtˆ„º#;[šÀ¸3=CZCNê&ÃíÔOy óanÝH^aShg{Òkq–æLžNnI9–%9›v¥ðîÞWÇ=Ç[Ú:±éÂÞ¾œÙnaÄÛ +·Ût–ÌÊ,Ï%܆ڑ|`(®Î& 6fçp©º I„q$ÑxrKïë«Á‹`]aúéoè^+AbûÚ¾Í}o\,ü €£õo¢r!5J‡uŸD»ànºßOÁ­+äE‚i ÈëÕû´¥^Ð ¼®ÞŽž‰gB˜xÝë0—pb:ï‹#¿çŠÈc-M=~Û#šøhD§HTÇ=‰„¿(ÈäV¡Á}åºàÍ›_ùØã.¦ ¡…ÝE³Ðt1 ŒŸ„‚9pþG?4yN‰Ûëê\Àƒ]«†)¯®*Ï×i·§ƒ… ¥K™Úu“nx{àÐuL‹wr×SÁ“² ÅÆ{‹»Mãòè)´ýâ¿0Î…"ø|þ;å§I—%)ý+÷½ŒUÄ÷ÿ„(ì…øÙ³þë #n|óOIKÃhJÃóçýìœQ‚1¬js“Þ}—œ©´õŠÕŽ{ÕÙÒÚÝfrkj% 6©6¿õØ’µó%[Ó…šQÇZœÕ8§ÿݱodvC™%!òw+ˆØý±ñÜ4:Û›æÆmMš6Å¡ØfÀIçßlè퓬nÜš·VŒy8Zsƒ"ABÁŸÿKï5>±˜HòýÙ»k/KZóâ‹«>¾~eàÏ’à}Ҡ톇ØÈ[£f#¼Söä~¯4:ÿjþNéòÒ…Vçip4WºKÝ¥»ËœB/òÚ¿šyè=Ô#F9è¡Ù`é[þÁ”›‹2³ÄA4Üø)ª`ÔsX"¿ÁfꜺÑG2'ŸºÏ}t7ƒwFÕrMcIÑÝRÎC£¨©0jHØb¼peàþ@Ÿ§›\?.(/Ûn¥ƒF# ÃóaWn8=y$ú >•G}ÙìÌ#øYQ£Å«FàÊTT[‚¹*ÝÍ8K)Ñ—‹’"áWË›‡ûѵçð¯”Lò…c¥ñs‹‚‡ øíÁÙŒÀŒµ&×PÞî/z0o#šÍ/ç-ä ó¸†ó¿¿…Sp±â‡[w1Ø”­†#ü-¦PVðÀ5ÐMrôAfE7z÷7×í›Üá¨PKÐÕÛ#; šeü[½‡Yœ“NÖ¬ò¿ÄŸKð 2 T ?Ywqq¦Â$WŠó½yÙ¸Í1¹j^¼ †‡s‰÷¢éPÎès–"Á4H ;„„¡Èî×ë+phÝ­­ûœÕ{Í’¡øüîøîCáh¬Ù œÔ¾‚VVX‚§ƒ‹ðtª‚MyÍa”\C=sÀ40]9ç%a6VÛ@9¥i-ènu²ÛÄ×aØ›pø_Ãr p9ŒT.«Óá®Räá=0Æãñw£î>ö=:únôãñÇÎd, endstream endobj 700 0 obj <>stream xœµyx×¶õaÍÐ X™`™:„Þ!”ÐK›jŒ»{î¶\dKÚ’Ü{‘e˹‚1ÅLïÜB¯ÐnBBBBΘã›÷Žd›ä¾—{“ÿ~ïÇß§•™söÞk¯½ÖÕ½%D W­›4Ñô¿ü ?¸ÿžÐkßÈÛ, ·zw¯<ös+~k´§/rèGuüCRFïðô µå:ÚvÒ¬Y3ÆÙNž8q–í|?÷à®Îþ¶«œC½ÜýœCÉ_Ûõ®;ÜC#lGÍñ œýÁaaaœýB&{~4zœmØŽP/Ûuî!îÁ;ÝÝlø‡Ú®vös·5ïn‚ùua€_ 4Ô=ØvU€›{°¿—{¨3EQvóý7-ؼ0pË¢ O‚‡, ]*]¶3ÌyE¸ËÊ×U‘n«Ý×x|êéµnÇzo;{ß ~Çö×gÛø 8Mœ4yÊÔiC§Ï˜9kö‡ï˜;ÒaÔè1[»õ²¤¨¡Ôj5Œú”šM §ÖRRïSë¨Ôzj$eG¢ì©ÑÔj µ‘ÚD- ÆQ›©…Ôxj µˆš@m¥>¡> S©%Ô$j)µŒšB-§¦R+¨iÔJj:µŠšA­¦fR½)?ªåO}DYR}©~Ô|ª?eE‰©w(–z— £PÖ” 5D ¦DMqCí zP=©^ÔJÐSЋ²'U¤ºSjÁ@Áón^Ý. ·otßÑý„ÅX‹zÑ0Q6-¢›™Lq=Ê{üÒÓ¯×è^g{Çö™×çœåP˃}mû~Öï~eýÇ÷Ïëÿ­•½ÕqqÝ;SÞù‘]ñn÷w=ß½3 fÀëÖ 6á§Œ4vPÈàþƒ?¼h°ËàÂÁÏßs{¯Î’H$—m7Ûþ}Èê!7‡ú -ÖmØ…á…Ãï½?æý½#úŽØ1²çÈQ#sF9ŒÞÂ+,ÛÀˆ6ùe:AMÛ|!?´m%›œ§Ìˆ‚(PÈ“c°kû7Ö›\£íUŒ/]¦Þ§i#´*kT‡{3Ò›ƒ Zu¶Z#9ˆX ÅãÕ)9¤Øø­‡@ΗnÐ~»aT5+M—DÐk &CVË`=ŸÍ" |ËKE–|+y‹f©Þ u»ŒÜ/@ÝÐ —ÒŽ2XJnT¯>¢©„ ²v]ÇÚKep@‚VÒ?]9qá|Žý:ÇüËßn„`PíbÐz‚Ñ·!¦È[·€ƒSÀ*F|óg‘YøÒâ_d&m‘˜³Ò&0 ÊÛÖ ùü»,zmÓ×ÔÕr¨ú0WÏNÁ¸Ï'3滺ëöJbJA :Æ’GPÇÿj\6ð« B~Û`6#‡|•ÁÊ!Œk·ɰÔ Ê@»î¢™d±I¢v›vœ$$ÚD¦A)Ç;‹ŠÎ"X”ˆ%áãñ*`ðL‘e[jgÙ¹‡¼ø¥°¾më[Nwaµ ©ÝDhâÐ(ô)Z‡¡Ixž¿ó[Ö V~wG ¼ƒËÒ#‹ö}š5 憯ñܸní/¾¼3§c a:«ºû¨0Ô]¾ßY/ù÷9äOJi÷‰âU±.ç?„™¡cð»¸ÿ‹ˆ!øöîÓW3ZäËâ!4øDHCbc|€Y°ú1¢Q¯/î_»ÓÓ%T,š&óÃMBI¢ŽÖgEhðIïQ·hª  Z ÉÜ;éùÊœ š@èàñ ¨4œBAL@i´¾Ø[Sã[íĉo.Ï¥1N¤‘mI˜-Ft°#L;F s»mÛ~ð- •¾mÂzí-Ò‚{áigzÓã ¯^‚Téo³»žï=–›†Ò;î-BcÀ°¾s$`Kž“éùé%Vµ†àÏP„!ô³âÇÈ m`õ)÷¢`!³ÉËuî Ï“_…sŠ‚¼—ƒ29v"β…jRrU¦ ]¹tdUÕ&eøתP¨ÌŽM“çøe„OÃÉÖã.9—ì3µëŠŽ}¦ÀµgLJ!W‘냬ð/Öi1ÚDÓ>5éiù? ëqcªÌô‘MhÍ{'FiD>úŠ'“žÔ[5ßÜú ͸|• v¿£èá 6ÕµÒ¹˜Ò³ùw%'‚×Ókƒå2ï”ir ‰$ÛãÙè¶gsáV`f-vXæ§‹¬¨*ÖUä&×nSK*ëårè¤Ûd‰-Þwt“âÅJ¿wo„íÌìÁç9²È%8ØTÒÂ$¡™ìHzÜÂŽ[\êo¾f¥“V)þ $üp~‹–¢ù™™GÜ5©Õ …)'¬ƒ]j5= *>>1 _­ÖèÊÿAÃ,¤Cû2\šž q6~nd´›d©Iÿ×ÃîNYJÛÃÎT¿ý¦‘j-FA.¯¢&ÇîÚ½ûPy…±aoA‹ AJ?U)òMl,J•™±Ä•DÅÇ&ËW͵žûC‚I¶¥Û@AA–Î|…j™2 v‚ƒ:°£È_€ZÕ²æ{ÌZǽ¶®ýT¹Ó$¯+4FuTC³²¼cNKµIyPúêÚ³_Þi)Ë‹"àKHˆ4éê]ê=ë{T»ºˆÐ„V3ææ'˜¦GÍ]2+šÈ¬>,ú¢Sg™¾ý¹V«3ó+[ñ¡Ð‚æÍ×u‰©ÑßcaιàäAÄT!‹\h(uNážÇ3Ëá4•»W¸h× x(×ø;îôu÷¶Gð,i$úJ Ť·,Wºêx®ƒ+¿2 L”ËdïÇy½ˆà®Cð»è:Èÿ†«5Š<É-݈Òù•æ‹E&Ùã¬/~ÀK ]<òSHÛVœ?¢.„·liG}ŒªÂHb³âUÊä¸Xe…HŸ’­L%]XÑ%\G"ÏŸ‘Xó½Ð˜vurlŒ·#~çêWñ³ª„(ºm2›«R‡“…>ò­€NU *S¨Uδ—üI%Šè´dµ*UÎka§Ve“%þ] -¯B½T[”Þà [4^ ~’öytæüJѽñ± —‚Í ëŽÒØt4ú¡˜WÙx›'ìdQH¯…Òïí_îc>ŽûKæþ<†zËHX’¨INPÊ•œ×ðI›ÁuWh£ßgp HÔÅÒŠ¶¢î¶¿¶¹£g,rÂc‰y\Ž—àñx*v!²kžˆ£åh,š‚9üþš‹~òQ.ñùýGhØ"œ…‹ñ{3>X¢Sf²ESdê¨û¥g„h!¿E ýõgŸí×@R— ÁLhaXeu®¼Ñ£vÃ'Ó7 á0=Ç÷6¾ùgÿ:雲»7™²Ç¨å•…¡Ë,š+B½u÷åw£¾ÆïIðëß)üÉhQ "•u˜´Ç"4†lqÒÈSL' Ø¥ ­;õ  A™UUkØu´àz}ëöSÄ¿ÈP0ú˜ /Ë*Õ5IfnYU0`dh Ê':X’àJ€Ä¸± eEº={%À<¿|ùfcTcp™¤¡®!­Øt4Z•,%YqLd^\avIFYQ\[Øv¹‹3ç\묕3añâ¶ëÝ ;%±ÑÞàňÛ(ðÍs7†­‰ôqWfá÷vÈõüéÈ­ú˜#›ª¸ Uka5áK'HRû¤î4i“áø2;bñ‘£w7î×JN‹¢î0Í~ÑæÑ’Ž2s[ :´¦u»Áþÿ;›Û×Dº3èÕïûܲ-Tª'õ=ªG­F+bº‘ YÌ{õmÅñŠ^³(—†2ÈÕk³5Õ æ êž‚ß_2’¼Œe_”ß: ·˜o±èÉá¿ýþç©J—¾HG4-þG!QSõ;v{‚/,…åàº×}¯çqù.`nÝ«J‡œX$$©$òE^Á°Ä<½cqaK­] QÓ»Ìnõymuýõ'—ˆŸ£OøÕ,¶5x1KNˆLß•¦õ1M9¡£ú®4-KIÛ#ÿÊïfk‚K|¥Aú c•¡´†L¤V©±mb•ՉР èó HB®¢yk¿c\Uàv NÙ|qìì-ô¡ÏtLçÔrçtÚ?´Í쯒Tª¸$Îk_µËÞÉÄ_ gL2óè‚[’œ”#q_D2âç•I»’ªF™aÛ„¶Yl;…›Ï}òÑ´‚Z4Š ,³•¥) ƒP†`bÄ å\}E{µ?ÂAò÷ öš1áJ…ü:Ót$Ë/NÍ!€.rƒï|<Ílê;Ä% j¼¾$|ý¶Qj wUÃ.hR5)k”Wô…ã7‡4¯‡›ðÈ”pò»*õiM)шժêŽßy€Üb1Zb­Ò$§Ý•zåLvæù#ÍšR“öôWÄBQÙ«41ƒ£D•-ƒX‹‰#*{¶´æCÿ¹“bt¶6£I°E±xè˜Ç9àž´Žãûÿ©(ïCã!ˆÁäˆ~ò‰Š8­² ‰AWéZ8`šgžª­Êà[5ž¿›gæFh&^¢OÚ–³¿—«EôÛdÕÀ@ÆhãïXÅ´óÒ¶!D¶m¶ ø{l~ceõçêΣV“d{ÔÚª* "r)Q!WÊñŠöÖx=¯‘ç›dõI0˜O[“ж‚S×/š4¡;Šncž¦Èƒ"Ф¥å“±xퟘýö¡ÿ˧ÿW¬óh~ŽãÛ§ wß>]8ÔQú7¹ ,~"|3„$°øä¾ì=&Mí§ôU[ +ºø7•Λ8p¹"‘$pL»‹5žÊǪR•éÄ ï:æ.1£ÃIãÒqÍI(…\Oý'ÖXÒ>Oãe*-Q:ÚùûëšœëÚÛ¬µ Úø< õÉHÍC³ø4k4»=½ãC›ŽOMêdf):Єê¼E“"M‚'¿tºpˆ‘àT+ʇ’°0áp-®¥cÂ!,ŒTU‚È;Q „ëtP’Ïu>ô1úîCôãÓ#ZùÌD?‡Ñ}~8{0#ÖE‚Ëþ=y!­¢Tä؈䀹Jˆ„{" Ñ÷›ÎíjˆÕq.JyD1Þ±%ee…»NÛ5ÏŸ€{m‹þIÙüñè&MÛ—îD­CJ­¢R½IûmW³BöºzE6æ¦gfs…Z­ŠY°z»ƒD.'»Ja’ÒRÒroßFôÛˆQŠNfŽ×“Dû‚“hÿlü¯´§ÜB|7TêO¾ !If(¬&ù«Q O#‹½Ijžß8x-«ª¸„”¨x‚ˆÌè"¹i>bmÓ›qMÔ«Iˆ¦´%°ø=׿ŽãŠÞY¢‡hÍ)A*¢j´†=…‹×š¯_ ‘ÝQöS?ÑgÚÒ7ëu‚ü!¿¼ÍMË#Ô©ar²d1)ññ ÿý×ɱdt)mdY 9ù©ÙÙZŽÜ–ç^A­a:«/õRÔÛ”o;~=[Yé/—s*¥©äŒòSk2¾<N’k:ðÑ2ɩɲ™ópÏ5åŽûê‹++L»êÛ¬õ‚=÷Qæ}!ï„®²p'ùŽ×µmßÎ*t†5° Èe‚Ïâä¹ð!|œ:iï¼}³¯†‚cp£tÿ75—ÓnÁm{⫬|jˆøVvžÁi¸—2• ^׳ Äj\Š(•½æÁJBÓKd+¢Ç­ós4=8P‚7÷ë(ðšµ´½Ã–ƒ&”[µb øãKëÈ­Z+˜öÒ˜q“8“ ~DÔu<ê”Á>ô$EN£IìÂMôóÏ?­ÿŒ¶?í0 â›ìëWh"â΃—6H4é¶Äó?˜¼þ0h‹ês÷VDTx%*A¥àÊ.k<ÌÓ}³g}¸yŽÝ* ¶ÃÞ2“# ±ÿÌÓ¢*´€ØÁd¿¤íñÑI‰ËÈÄ3í_Zu…Xåáe¨çç VͨûôÑ‡Ïæ½ ÆÚ‡~fïUžú‚dèÞ”cGÌ[3Ï[^mÔé«;@4g·Ó¤Z‰bl†£Ê¡Ó«$ûHéÏ'Ûm‰ptâ\Các÷ÿz4êΉ9 {›ËN1¸ßGllßópL|ÙRÚXyxw^=‘êµ;Šs}RWÂ6fæŽ1S8ó @³‚·üßÃßúï`ž»ècÓ•V_‡4ÿðÇW‹Ÿ‡· Y"Á箘Ÿ”ø ¿¼ƒ˜jå5û. §i@­æ2Ô9šÌ “¤\¯GXz¤Õ?Ò NœCë h¶éUØ6ŸL«ô,ÒÍÓ*>9)IÎm^²4p|« v­áE; …Ï[4÷À}¾œ}ýêÉǨ{>´ìl•\ô8œÜ7àˆ1=U­²n·ÿǤ„XH6 ¹ì„ìlMjN&gà'°aËòÐlôáżңGæÅÔÆ…%üšö‘ø©ÏÑŸ>Zô?Ö4=ùAFT¨4ßß} 2 3U¶•¨«˜³ÂÛìaãŸÝ6}~ðöžK¥õMzÝCi¯’1£ëÀü !<˜ªRHìÆ8.qÚ[@ÜÅ{Û}ìÌç7PFÝ_´j¾Ýçô…õ“¹‰c·‚½ÍÔ{+¿ÿêô¾ÚFîòšÓQŸ‘¸ÏŸÔvÈb ê;íb<0ò”9j%’ïFÄS»žçá~Ø*¶#iòÔ”ôì'Ÿ#ñiîê–‹„ðÀDèËÒüBüdïòwMgu‘·À›Êˆÿ åó9ìaÏëëÓi ­"˜Âœ‚¼œ”ÌÈL r I.•d¥f@®Mž¬ *I áAÎ*@YÄfÇFÉâbãó0§‘r¸ß“˜%ÈÁ&J+KM,J” !˰dYxBJÄÙ(!¨–C¶?Dã,¢óâó sró²c§Ôs¿¾=‰ðÍÄZ¶iÌ›q/šð{¿FÓ¦æ*C'n ãe‚/N’Î2œ|ñ×eŸ²£ð{QÊF’Gßþ€MÄé8™9^‚ó“ØàøL]0n¨Cgv˜Ž.îtX„4½€KÏ y;ÓÓsÚH| #züYË?<¯mðª[ÿév÷”dοq}Z 0ã0³SÕ ?=â%Öî5‹,è÷š/ª 5§¢#•a¦“¹:¸2A Ç`šî4ëfk÷¬¶Óêtº»#2þ§ÿ{ç¦Ø’’[SlĨ¿j怜sŽàBëu›{¯÷—ÓàùœÔ²N#õòÑžÓåõÉ•œ›2!Â@šUœÌXJõüÂ"䟓®a—\ÚØór/®g÷ºÞ=ôY½{_ÖõîCQÿ xí¦‡ endstream endobj 701 0 obj <>stream xœX T×¶­¶¡«DÄ)!C5Î8qHbŒ¢(*EEÅ¡AIfQfš¡ûtƒÌóŒL¶" b¨‰Æ!&Æá%!FŸÑgþ“h¢OáåýõoþKÞ_o½U°êtÝ{ÎÙwï}JƘ bd2kë°lËì9Ò¯Å×eâƒÄ7å@v¼Ìîq4s9˜›œxcô‘‘ølê‡áÖáŒ\& UÛì‹òöô ±¶Ù=Ùzö¢E ¦YÏ™5k‘õR? ïÝ®þÖ®!^~®!ô_k§€ÝÞ!Ö6ïz…„ì{{æÌððð®~Á3‚<ß›<Í:Ü;ÄËzƒG°GP˜‡»µ]€ˆõ:W?ëþÝÍèÿaà·/4Ä#ÈÚ!ÀÝ#ÈŸa˜9Kýl÷-² ^²*Ô>,Üu¿[Än÷u{=½6x;môñÝìg>}ƬÙsæÎ{kþ‚…“f,óãÈŒgÖ3'f³‘±a61“™ÍÌÆ™ÙÂ,c¶2¶Ì6f93ƒYÁÌd옕ÌlfcÏÌeV3ó˜·˜µŒ³€YÇø1Ì0f3’żÂðÌ«ÌhÆ’±b8f.-.cÂÄ2e+dŸ Z8H?è‘ü}ù_M¢L:L™¦™^WÌU|Å:±?r›¹ÎÁï¾m¶Òì¯Cì‡Ô˜3懾5ô/c->Æ;9ìÑpûá?ŒØ;"fDéHÅȵ#ÛGmuø•÷^ùˆŸÆ×ðß‹)=Áˆ³ŒâêR™¸³g¯.Ö † Ð$©#ˆ®÷…¥ú hR‚R’!¸•â°þ"ÔB5Ü„ ÍGæãŒl(x@@Njèõiøª%–).“Y¦ÓUŠ#ú.h„#ð3Tõ…NcÉ}ñ i2%Q ‹S0ŠfÊQ†;Q&kðÿw·É [¯÷½-RÅ ¦*öR¸+Éu;[¡¿5ôúe};ôf‘éì¸r¼,x‰@ªÿ,„µ/$6ˆ¯dõh޹h.«1€Ç×g>!³É‚yãÈ«dô£é8Ü‚#¢'ëyò*àà;­ðQIƒ²üä©b#| ûŠJ=Á\¸…@8 =1Ft.ÅÕeèf”]Â1¢®YÞ×3¯€ÔPá}[§3«*—‚I 3Ȳ‡¸ád25h‡,Z YQ¢.2.bµÊx2ðγa5Ì-vºìÕèsP€ n¶ž¿rûiö¸ 8ÔµŽ,×ÇgA.p ¯TÒ"’ÍFœ`G7ÈžÓ:¦Óìð™ÊÛáFEUhKÐEàðÍßáDf< ¯;n ÷Ù­lgÉÒ_ëÚ›ùÇ¢Ù‰Müñ3…'€»zÁ‘X’ ¶[Ö¨Tå­¾tÉg´o]FŽÇQâø†¼±g¯êîí£±¸mpîÅ02 ‡G%qüÇh^ìÂ)ì}¸î}ܹ֭dÈàHg¯í^;Ví œ…¸« ÏŸ?CNŽîÊ2p.¢bÕ ‚s3¨ª25µ9׸¼ëmçEá!W…ÿ Û4‰Zø*ûz?µèq¦¯¥_g¤[â\Ú³žÅ|ïºçGcTŠZ=*à8tÀø°ïCÄ kϱ3w-S6c«bY®©ÂF¬Åq œ UËòÉP®Ya!~h­ëdŸãÁÏåâPq _‘‰ˆ’SbÕI)…{Ò=ó#S€¼:‡‡Ö')«“ ‰ip2þd¸rïÍ‚°-k »„ÄR­îpa¢$,»Ôz(,—œò: Å`uGä¢Õ™@Cx±Òí¨wú¦ì59äÀîê(CyúŠ ½ ‹Î”°Q©J‹—Ŧ‹QÙÌ9hI‘‰ø¯Š`5øÀ:°‡uzš² ÇL`! v…Gûƹ°Éw¸é~*øS@sxVtýTÇ¿!ú³ÿ?د}SÐѤ<êóqp*p¹]¨´íé‰d¸¤Tö3…íÐf9zŠxo$ãÑÉU¡µq±±Iáö~KêÙ1wBnÜj9Kèpufíýü}?€k‚ÅK9mì)#ûÛ)åÜ3šï6*üi~žô²ÿ¾üºI1éÄân#û‡;nÙZý h × ¨íƒÀ<…äÔŸÝ¡ˆ2¥çÚ~#.ì×ñ¿Àp »dçºÅï'Wð1Kì~h;éšÿ‹Ê[ð­Qн­À¥é¦FÖA '”¢ å¨ùÇjÍkhhbTxj&+½&g£Lz»ˆ‰ŠmÐ?…fz=…†~ÌJOx˜T&òF™˜ Zði™—3²ž ¸Á>ÐÀ†¾'°ÕåIj-h“â”d0É&<5=gT„hVÐ X}a—Y\Þ;2k¿>©¬ !SŸUÊQ¶ë_¡Ç]Êg¥f|"­à¯‰¦uƒè=²YB4]!9N9–äM?– çHØB÷±µ/ꛚp(:->51;’@“¢Ö¦,!ë- ƒ%R|ˆf%÷ðˆÇé½#2"ÒÔå`•CÁ—YÚŖݤ0+TúÓªRÓ3Š)• èVó ²£´En’²¨°´ìãDÌ’¸‰¨®«-k,QÈ Y•PÜçM‹”»Y2‡ÌÝEä³ ÿâ«›[J•{@õ“Ц(Ë„ò²xˆR®ÕA!TpDvžŸ¾ Âg››áôß©ÿñ@;@!ù’öð!:´ÊÉËÊü¬Œ¬í‚7-¯ úkTR–¤¦*«Ñ(çM¶Á¡¦Í¿dì›b¾dqÙ@ÅiRL”Z½¬TìE½ê)¿5CM¿üî;”¡]F¦ò)š¢œ¼nêªRTê¯Q¬£”Öµb³¯pS¥XÌ‘T½g5ÿ{ø©™-*)*),mÛ|.ö$• ¡û.NÀ7§?$o:nßïã¦<äÂ;Ó^ÜLï 2Ê~'lÞ£ôuÙç+aÏ™¨rZý‡d»A¼j”•KuO‡ñéùi™W$œxk’ÿ/u­’’¨M‘xˆ¼‚uƒih©x…E‡Þ I1QþI1Va;}ìV@2Ä@lº^W— œ!¸ÌÏ78Ì{{‹ëÅ;goµ”Ò>¤Pv¡ŠØHõ~%šÉE/ÌçÆBÜA­6&IPïß·j&pd à´St8Gg\Ð$iµZV™’ AœëÑUey­w›¾‰Ø­ rÏ’7þ>'áìzä2(ÿ´ØI­âsi‘:ŵx,žÂ$Œ² 7%—k Õj“#4áÚàBTŠ ý×}JûÍ€= a¥Š§ú§iuPΉçt,Võ¾8›WVEž}(ëzYê$¦RTëŸÃQz=‡ê~>»ºÄ› ƒxˆã~ßh)ût‰žžJ=@B;ÙÐ’]µv4û±çk2îÉ|´:×Zb8¡tfÑî7JY"ë}È»®ÛM%Œ õµCåÊúóÒ+  Z" »¸>î·­bb«=óù¸­.œ~(ð?ª€zȉÑióÀªÒ+”â·,”ët‡ÓŠõ¥ºb*;ÒaYLQïBHJ*ØjÐCeJm²N ¡\ï|ʇى èT‹ïõ¿øGrq òéPU§¾½£UéÚì”·žnsÖü d$±~6 §âÔSÝE‘xP›¨ \mæB#&hñõóÊZ}“îDYCÉ‘cåFªYÄ\·•³ÀÇ}§ƒ©—5}þ@ò/~’–)ŒdÈ3ÅóÏ 9z­&]ˆŒ‹?aÜî#‡Ë Zš<›—Ï"r –ªn‘—ÿ¿dѧ4bG¿ãÂV#§^äßSà;?Ü{†Ì´{d‘²wZ¿–)þ¨XøšØÅãLX´Ò™J¢Äê_.GpΣÛG0ú¨¬þw§ß‘㫸š?x $8÷Õõ6ÿ†˜lemaeZ‘>%‰Ñ\XþþÇóKÊ*#ޏªÜÂ"·J÷¬-´NÂÆ÷Vøf»5{+ì𢪠ªØSv08Ñ!6pŽWWáZ|ûîÙÛ߯¯ Ê\*×À\:lì‚$*#¦‘²p¦® 'Ã!éü<øâôiøâþ}°Û±ìæ)Ïþæõhg/¯õÔZzžo¼r ”¿Œàÿd’˜¸m¹ŸdTüžê>ù'‰žÎC˜°Á8²¯8fô¨Hñ0þ@'Šà 8Ë={—8½¦¿6äy_CþûWsqœõ!Qœ„#1åuÞt¶ZE/·6ïv¯;Úrà~Î}˜_”½_«ŽÖ*“¶ú†ÀP_KxÄŠLìPß"ŒÒW)Oc}.H]ä¸Q;¼£´À«/bÛO8^B£ƒ{ä|ÓÞzw7_oz閭ú&,'ö”.üÎ8A§º¸2<qª$1Æö¤ìÒC¼ùPŽâZÞ¦<åäsm† ]]÷·“ÑeBjhK,':²’V§hãâÕ¶ ²­'¦P"·d6‘­jØž¥lw®I|ò44WS–]Ø»Äd.QÖáÄA[ ©á¿Ø`Ç~¬Óee 99YyUUŸì¸-M4³>ëîþ/‡‡DVEPAð}» ¿–  ;bÿ1INâL›Y(˼‡ãû¶÷{2U¥èÔ?£Ôù)ü:û]ÓTñûN–d.È"ƒúL}¿‚£‹¤“r¼‡Gþœ›“õ…$ãšpØà4À:lneJBrb2•q²šL4Uìq&U¶¾øg¯±…¹yåÅ8”̲ÌH Ü§åâÂ!JP±•úÏhhäCs¿¾„pˆÕE¥&§Ææs}½»Úúë÷Oúݿؗ}‹}ù;Ä>Œ/ëB=›Wçç¥e߮ȨðÕØBåÏå¿dRNg šØ¤(KâÚëE|Å8ÓŒ ÍT:ßû€ õE=d±öC²Â³´…’+̆¬2ª‹7Èïêÿ–÷Ü£Gð‘{;1™¸}¥ÏAáཕk`*8;„¹pÿöd/û¶ýòñòÐÅÿâ<þ!lAàËö›h^&Í—èNk÷TÜÈ'“ñOYjšÌ²Oæ4@xà ÜžêࣆšŠÆs;?™Hdš7*Lü ÿ©ÀøW°UéZ/%¹ýg÷ÅTˆ†àòG²\ìãU\Î?"3Y©—ôˆÞÅñrܣïõus3øžè;¡”žc ⃬…JW”ôÎ"oðI,‰¢ž2H Æb¬#ŸôŸm¼ç…—U,Œëp%³=ÿÉŒr8—"óP†~›Î|$62ÊÏ/<|_\°4x_ ÍK5¶”Êè*¦r|ÒÃòµð–®!ré¥Ï~U‰ât¤ŸÌãzˉRÅ6ëÿZéÕ=€Qò¦ô‚Ð ¯ U›Qv­Ð_‘‹zôá])ajÇȸõbˆ¤1SÑxäo)ÈAùwŸ·Ácͬ¿¤tn:eÍ´ÍÆÈŠú†²Ó;e¾iÂÉÓieÀ=jyßvñf[7•’ø‘ð¸xzX"¬ˆ ¥%cNž@G»‹¯47ȾÆAè ic>Þ¥£ŒsÙ cfŸzÔEiÌ*¨‡:®É¿ÖÍÕßßuæÓM8 }ó·§ý̬¾¯þô|Ãݶ½L”Äd‘ãÛ[O<\{¬ätEÜÑíBsÓçܰóóKÞAp w ÆC£ ×&kS@ ÉÜtœ'-'~é…~%)Ñ œÍw§ˆKUÚ´  DƤ«÷S§è’Iæ*GáÉ€£›B—À“/ ôgù%ŽÀ醟Ð4—>”9Ò€8C,ä&TS™®„áZS}Iû):•‚Ü­’â„·Å:ÑAÞ%g{‘ZŸ¢O.â(I eÕØÒl½.;SÈÍoh¹G« Óßµ…qdØžµù{+;òN–7VïñÛ±}Þ7 pÎèz€ÃÑbá}òæn—•²ocH gѬ¦AÖŠæ³²©¤Âè©P™|(F”¦ÉÑds®Š½¨ÐŒ¯åd¥G8íÔÓ‰>èëèH¸øÙ°[Õ™UùyB^!([§ç£ÉåÛ\_¶âšh'^ì”Þõ˜ð>¾æžÍl!2bµ|É”MÕÜrˆéÖývàL§…§Nh‰6÷;é({«uK@V=ãÃs*è;_è+îÙiï¡Ú°W ƒßâQx×°ß [¬Þy'ÈÖÆ©ã››§NŸ©(O X†Kû¸bžô–ä:¯Y¼×Áig|‚VKqŸ—žÿó]´úlï9§]ûöº{Vy¶Ödf 1¹¢cî*ÍÎU¬Ñ eC3“¥æƒf™›£¬Â|¨ÎÜ‚aþ‘2Úä endstream endobj 702 0 obj <>stream xœ%’ PSW†ß#< ¨XSkµ/Q*‹ãÈ¢–¥.UêRd+Æð$ACX‚ˆ¬9€àH0EDY‹T4€Ê¢‚:b±nµ.µZÔv°Z[ñ<æj§3sçÜ;wîùÿïþ4ekCÑ4m>}¨™È¥ùq6üg"H>èoRHm³»4“œqíp A‰hZ—` Ôǧ&jc4…»ÚCáíïï;Yáãå寘£ãµjUœ"XeÐp:•AØlRDèÕZΪpŸ¡1â<=SRR¦¨tISô‰1³<&+R´"œKâ7sÑŠùú8ƒ"D¥ãCÒ¦ -z]|²KT룹Ä8Š¢¼¼}¦N›þ…¯Ÿ?E9S#©¨Q”Œú˜M}B¡>¥w”-C¤]éfg›QˆÈjëoÛËç œ‘\?hSOß}‰·_Šø¿ð¦ì`± ªÀ¹@*ЂÀŠ›¬pxY¶|÷%þÞiºà\ûîÂá‡wÊN mW>Ï¢?…¶$aÒ—ij`„`åÍVk9ÝÏDü„Á²Úˆe¿^LDÌÖ¨2ñ!è)è:̼͑lãxvE”øÜî>èªÎeŸ•ºXWHƃù¨|èµ~|„·­ôS´Çª7"þFÊTâœ-™ÁÛ2wìô…4`ˆR|õÌ­óO<¹ü° Eœ®2Ö}¦Çrk–¥ªnSCBù¦¶º¹«öG`žßóð [*ÿE2•Ÿ$#ÿ‘ÖV£-άG‡~'[ñÄ€•üiYGF3˜¡Ζ±T–ôž‚ ¦Ô˜Ÿ“› »Œ,—œþ „ÃÒâeû»s!˜tؾMN:$[!ã€9/ß¼—m´vTô ã봖͇´…ka¨²#¢£×® ÏI†E0·zS÷ÉK-bê’*7&k3ÖxôûáhôÀa/qÚMzMäAÊm±ëØ÷:yÇc½¯«é{Hc— 2ïËòZòî6ôÔtöœÿ@snmÒ¶ì„4Ð2+7×”5ìmíä.'òñ!㉚ì@{Wt}Ñz¼ú{¥c_7œ…K)g–·DXS5 Â`‘^È ·z20àäsO^·Õe¨Êk7ä© B¸ÂmTëc5©ïcž|oé/b^4 ´ãŸËöî…ü¼B¦šì’$qÝZ`(4ç3*1G’íNŠóKÍ=eæ¢Â?óJÁ,±jeddôJâH&§‘Ï!„YúýÎýÐV–Kç7¢ÍÅ«Ì÷‚ókøæ²ˆŸƒïdÿœªï€ Ì¿DršÐdÄÄynžw׷dzã×/ †HqLŽD:ÝF¤]ÚÖ²DùJ¶®"ãˆ×+jîÝ{={*¯7™LP˜ÅNýJ†ž3¶´ÅCä˜W—kóÓHµÔY>ð¯xsíï$¨À.¤E|^—APölmhlXèº0Bh+ï)=G„=·5&k5£Tá tCTã.âÐOX·•­š Vf,%„—);W·ªZ~ƒ&¸aiÌß…25p{bšuÇMMÐ 7 jO”–ÕÖܘ¹ñ_ç:ÝU>,¹‚,Ã8sQ…˜¬/‘XúY[ßr©}½Y*í+“:QÔÿórØÇ endstream endobj 703 0 obj <>stream xœSklSe>g§“Î‚Æ D<§d2‡rFÀ@ÉC§r²ÁÊÚÂÚ®íÖv£ÝYÛuoÛõ¶^ÆFwÖQºÁ÷ûM†!IŒÐT¢‘ïÔo1V¦1ñ’øãËwI¾÷yÞçy’e$IŽ(,*Z4#ï÷cŽð8)LÈž 6`Oʘ²fBY¢Þ 4<‚l#ùh´b A‘¤ºÆ^¨Ö˜´ŠJ¹^š»n²tÆÌ™ùS¤Ïæå͔Ϋ’iëÊUÒ¢r½\VU®O_6JKÔë2½Iš[ ×ë5³¦O7 ÓÊ«tÓÔÚʹ“§H ½\ú¦L'ÓÖÊ*¤ Õ*½tIy•L:ÌnÚðV¨®ÒÔèeZi‘ºB¦UñJ£­]'+VÌž5§`.Ao%Ä2b>±È#£‰1ÄKˆÓÝ"â0©#‡2 _S‹¨^Q¾È,Ú"ú43;S#8ÅÂ/LåIôË`ûEêúy‰sS“´)jmwb~Æåñõð7Çùxïíní$]­í}§¾ýèCÁõÊ¢•øÑú2ÖªßÜ]ºK~äö”h³‚³œ›ŒáeÉJ ëìmÝ=Áxg·žÚ2àýaÙ@ጕ¯éëÇÙµ}«a5+Mõ óRh¦ÛÀÝærñ>¦ã“ØÑÝ@ÇBe­“³,cÅàwúДûÄ….S‡°XbS´Ø×ÝÀÑæm° Hz¶ÃNèwî€ãYÙÞÄB`^þ`x?Ê÷÷°Õvù  F9è©Ûo^ziÅªÊ %Ûxº¬ký}6V“Ia)ç?ÙtDm2½“k®c/r"±½³}W_Òßô@\¾t©0ÉXÅ‚UÊõ@/²\õ¹Áí §™/ãºÐ…‘´àßßúW¹Ý­ýhBkg`gçǾDkdû‘8ð'·€mÐÞà‚*Gªéú1Ù½{׆Þå‹×¬TÛ¡Ê¥ÿƒôŸÿð¼Ø6ˆÆÞ¦¹@KNWo1iuÕ5oSˆcº ‘j¨¤Ë—`¹\¿ëäÙħ}W‡7 [éCö¬˜*Ó¬Ã0î-^&ùÓî$ÐØ mÔØMìL[VC‰ëõ‡QÁ9tí$#æs<ê¿>À“û® Õ-J c$õ`³¹~SKØi]'·5™ˆ+Ý3?ŽÇãlÞõq¯÷^²Mù¹}ÐG*E6~ֲ┧f[êÅòø-¡õ•2 ¯JÐó'ãXƒ ØŒg!QzÉ‘©‘š74_’»àK4î`å|†F²ݽsòs ¿ºY‚'jp^.Í®Z2si>Ðb4RôØ ò‹ÁƒÚ“Ê”ÄÌ[ôMµÆ­‹w÷v÷2/ eIÂÉ´‰@ì¿JÜèív¨Ö^ÛÜÈÚªßÅt}YcµE µti¿üh:½“‚¥×ôºrÉò?Òë‹v_`Ũ¿Ý…^¾G¢E<…Ö¸$—´{+”­Z«ÞŽ´ÛÛårírm6Ï“+•,ÇAKz"íÞfoè‹t»Lº Ü#¿¹G¡·NI’º¸J¥Ó©Tq]2'Ó3âÄž®_JbäYa,%¼–*•¤Ü .:d rv»³ÉÉà-rX 6ç‚ÖPÄãïð1âTgE—Ð#¯ ˆJå IØç÷Bèþ?g Ø-ÌÐ å64Œ‡†€#äÒã"v7x€ƒ¡ÝÛàc‡xäÊü[9d”„¼/„!lórÞ¡(:ÎâO74gµrVoSÔÎ >stream GPL Ghostscript 10.05.1 2026-02-10T21:31:01+01:00 2026-02-10T21:31:01+01:00 2026-02-10T21:31:01+01:00 LaTeX with hyperref endstream endobj 523 0 obj <>stream xœ½][s7²~ç¯àÛZ'î—­­TÙR|IìÄ++‰lh‰¶¸‘H/I9ÉþúýºAgj¤ÕÙrH З¯ `fb•‹±UflñíÆ†þÄqÔc«ÅX‰¿r,CÄ_5VÚ㯫2mÆZë@th­ˆÎ'º€®ˆetFŒ cçP†¾Ç¸F]TøkÆÞ¢ñã þ†q°Tvê­G|¬•ãAgÕX B«qA j) ‘Z\D¢ucÉL[ â#HfÛF\ߎä$ÆeÎzfÖzfÞzfæ1ždî†`ö•ÿ=û@è9@{Ö“æ­NƒÁéR \~õÑŒ¡‚ßãêí»ŸÉ(8M7°ÛÑÍ£÷ÅÍÕÕ¯_}U¤— VPÐ}„ãËô&Lû#ÄF¯ÃDaÒìÃèè ¬H/Aù èF/@Ð` }  Ò„2ˆ>€ÞÀõ@}zÐrÁÔ§=pI“× z&˜0gÔ'Ìkt€#Öü`Œ NåŸ= OºF¾£·b—zÐ#òö¾Ûô ňI¤`©Ò{ÐÇ(M}ôôÈT×P}ô2BóÈþ†ö/@‰ÎwÓCLŒÇÔÔ5l}}„Ôf ½«4À0ÞÞRJ2ŒÜ‚Ü»8˜'˜Ü`v4è&˜¡ô ô&ˆÁê‡y‘ 1æõBÚ¡ü˜×+¤ÝáŒ$n"'êpCN=Q"QóÀòs¤ #JCº~ŽiDS×éѶnZòçïæÿmú½ÿD=A”ö¾Èc®Î~3LáZvç[Ç0å{Üzc&p¶˜™¯wÉŒÄüt×T½ô #²çØ…SïÒ~·ýã3±Á›îÞI½!}*%âÀþM½ ¡»7ÖKhCÓyÎ0zGö…S¥·kf h }½q´¹;Œ^ƒÞk«†êsŒ;ÙÄÜG/A¯òèÒGŽàë1o ä^;?se±±Ê ÿ «¡Lf†:—†2…×n0ûP¦ æÊä-ûÁDÑF²²~(x(ð!ÐÙÔ0zÚ@ ˆØù‘s‚»ëNÝ}ôÞayS7âœÛ‡ïu:·½Žýí»^#í1Þî×!RºÂ¦Cÿ‰Ã“ézöt¹ØTß?yùÅñ«7廊¨+ãóÕüÓf¹âj}¶üa1?_^ÌÆ´ÝÈ%”Ñõ¨z:_­7Ç—ÓÕXT/§ÛK°Pý4¿Ø\®y–‚¾­àü³ôo´»JÔ‡(nëáQO’àƒ¼øë3_|äã>RÍ.ß%ɤmÖÖŽu_ÿøi¾x¼XÏëß'óf«Ùâ|͉êz¾¸YTu}sµ™ºú³‚‚g«ùú·ëéær¤Du5[¯gÿº™^Áêªz¿šžÏ®f6éj5ÿx¹ùµcñ×_¿|óöÅßͯß߬_-/¿<}¼ùþýÕ¼k~:–ëšßõ›_û†ý•ÚÙŸÏìßò5ïÚ´ÿmKFí¶¥_{úfï]Ê’pÚ/Sa”žO;þ¡±£cõ¯›å&a`]úEØèâé7/þæ)BÀ«¾ :íB ôC@ ÛŒ¶Æ€¦!oÆyAîš½ŸN~:ûú9Ø{ò¶¡DÑx€?ÕQ:ö×á¿ VK ?¢ûg†|ÚýG¬Ó­9— ‰Ud)EOt˜0% ‰X0Rº޶©4¹”!ø¶|[Ió}|û“GZ#™ú­ùf¹½]&by”´‚úQÒ2VÊ*ÇtØÍ:%ñË÷aÐMQR¶`-ÅCÃü0¯>\uAüÓÏÏŸ}û=Prv–£„î è DÊ~”x×D‰¨Q’ÎXù»‚TZ ߣÕùˆÆ•g4£6MÖò¾NôüÙ7ï^¿ƒzNC¦ã2å¨~åWœåéf¬›céÛ{ ±èÎ!y_¥¼{ñãÛWøŽßç ‰9fôµØ2ftJg Ž•ò8¹´ØÚ`ÿ/&yÃÇ|»ÑfªÔÝÇF7ëYÎtéÃÔŽnŽ£¾)S·ÜšÊðkË£¡;µ¢Üö„ºûª÷ÕÙ«ï^½"̹s¹r$–&î•‹ë:jË{›þìôø‡ï(í=™Ý³œWÚî äÞÂùÐ`T/ÙÐz²›Ûþõt³#Ù¿˜qú¶hÁ=àÀÐÒ0F.ß:ŸQ÷Õê7'§ÇÏNH«Y"¡ŒÌÔz —lZÜ6"0ßÚïmõ—/~|óŒS‰Üì"ãÏ÷óçšî.]Í`ˆ=†lpžŒÉËÓJÝ‹A@0ŽŽ6Å}Õq¼¼YÍg«–ÌYrw¨ƒ·?ÿö)yøÙ‹Â¤«óyå@jÖr$ö”–ÿƒµ%EÐ%v×|²ýÍ|ð/eáJ2݇š‘å\‚î¸3tW1Ýÿ¬ÿ+»œ¼}}ú<[¡uõBW½Jô«Wë†zm{qÖ]rÝu©vÏ,²îÔb_36î!¾ïÞò>í.ÓÆÿÛ±›PŸÍ¯gë/O—×ÓE cYjxÉ/~8~óäÝožž¾’Bä!býȱ¤nƽºÝeZU4Úû›««Y¦§¯ß>}ËËÓS,Mº.šE@u •±œJ¾#ý3Ú€w²ñ‹n=¤ûljŠúèûˆÖ»^éù õvk‚ŸcЉŠî2g€"î…è™#ˆFp¢›Ôø^wmz N#ɳû»ãƒøÞñä¶>D–”*ÑP+?\‚rËI}ãÓÆ€{p Äjz~³™”©Îgó««i¶•ròíߟ½jFî'Ë«‹lÓ"æ¡û@®aDÿ¾ZgkP9,Ëaïö~zÇìÐ~ÙÝ’¾·ß¾9yÌš -CÔÝ­žÍ£ÒŽ5=ïDyÑ'h=Ð2»ýqjA½*O þP]]Fϸ¥ýôÑv'úÖÚ¶­wØÉÇ­àý<ŠêÞñC*üT†ë4Ç¢§‡™"¼Œ[x?"JŠŽ%äö6õ'°¼ûA!bËèvp1Úý¦†Æ˜ú¯æÚTÎBò]¼‰é ·ê$m*×X£Ò“N¬œm1Béƒ>Û!>t@PÕÙål3IY}ø¶¥p1i“æÕ‹÷Wi÷µ³«êjÚŽ=¸7ûãkL ß¥ÍÏ|zÉVªZ˜^Tyzq»…Æ3ÝÚ¡ÐÞ¦’§Å·|ºýÃ;ŸôÀ ×ÒäA[™ÁÓÓS»½L)œç"1ò.°ŸDfß³&R'9ÓtHT.þK[ †omJé± ô"]ñmüp¥%ÕKÒѵ­¡²¤â¿ø´@¦×5v—ä™ÐŽpúÁ ¡‰OÀÜò¢:_^_OGNVë«éúò×F·m]óÏï¦×³ÂÉò“'Ë?~ã/ùÑÕÈS̯ÕÓ«éÇ5=0jĨz¼>Ÿ-6T1ªŽ§ŸžÏîé' AuÔzT½ØL¯æç¯fPLõf3»þ‘ƒFÕ«ùz 9Øf<_TdÇ7³Í£ÖÙiñ¨tšš^ëc×#æÿéüjF“$Cg€n9ieu|‰`ô¥DFë):¹°Sˆ¯•¦2,fß½2вOV¢‹Ï[EPžU½šþÑüÕT—¼Ý$6´ö¸zRW_WO«gÕ‹êUõ]õ}õº̪³jZë´z_'TÕ¬JJ¤Iñó¬úX]V—~ºœ-ªyõ[åV‹jY-³êSõi °±ø*Ù #ùvàût[Ôsd#V«jYmªÍïËê¦ú\ý^ýQýYý»ú÷lµlÎ4\v"ºC.=,Nàuzg'©%î6–n‹îÕ\«âvÞ–Â ”"?8Mˆ³N$$í[‚]íƒ{ÿ-ÿs14ýOÈ^ȹ’5¬¬mÁê¸:)‚ê‡ê'‹ðÄHb;§ôŠÀD9ÖòfÕÕ?kX-æ@U­Éì3(×ó?(—«Ùl\üPEggIÑÊ¢×(ÃG[5k½G‹”-=ÓϽžUìѳ ϦCýg§_-PImÓôì—Pû U“JwÎù‰µ¶a ýÑVK¨–î™cþùFoJòLyºnÄúÙÀŸíÓK< ¿¦ìoXÞ¶xq x…ÓÃZB¤‘0¼¶W@Ûж ßç_ú €Vˆ€´ŸÂ³^o}*™yÖ Ådk²sÛÆé0d€ºg|[ Ð’“^~`ó;Mcu”´í(Ù¿/Fú Ø­ ‡oK JÐ= l¢”×á{#Ò´X6 kMÊý•ª˜¡ìÝ34D:k¸æØm¾wÎ}\#m§'éür€äÝÓºŽíLŸíLÛvæ!lGѸ-…j¿î™Þ΀Ž„ù-óÁv’)šIfoV¥üá£[S\2 Û©-ÝÐ2?aKS –¡ ¡F Ch'Ä@èá9¼54ñù‘ú[cé ôs[Cs±‡aÛZ¥šï–@»a ´ ÷O e–@ŸlSèçÈw¾ÅÔ»Ëyþ^g=?Vo«wÕÏ”T_CwëéâbŸ^O±N©ÞOÏKÙîû骼‚¡Ëßf›ºש‚²ó«å¢™£syÊÔgœ_M¯w û6Áú¸šM1|žhÑ2iŸm-n®ßƒÝùÇÛ“úF2?[Ós·õNX–ÔÏ®ç‰á}æV'ú)›_]첸›Å88_®f‡º84s.[ÕÑ‘·‚Œ+¯\QÑÄÿ¼-:º®ÇiÝŒ"騩-ÈÐÌ4;œjÍn´Ó+ëØÑˆŒ²:ä°ôëÖØX^U¾h8Ãi¬ðIKÃxy™]271[#µ¹Êd@RÆI†’¡ùíÞmdŠIÑNÑýUª´à•ö>4ÅaiDÔ÷ŽL¶›#ž¢Ò-q½äÜ»(¿u¾¶F‡¦ÔÙQÍvµÝ3‚/ÆÖ¦Qt7ŒnY°êÁa·Õ°_S«³9¢Ï£hïðñÿ@šóš¾Vôµ¤¯súšÑ×}ÝÔµ\¶¦¯1}}¨[¬ê²EM÷{]vQ—}®¯®ê¶Ÿè뺮à6í¦uÅE]¶jw5«é¸Ùìh÷¢—í[^èu4Ç˲‡W¯) nÆ<ߪ׫Ùçqº~{„©sÌßÑiÐ8½§hÄêU/ç×óÍzüËèÑÉòüË7›éjs4âÊìß)&zF¿Ž*W‡xœží=zþa¹Ü,àÔy4V|£/J?Ì?Þ¬RQJHê"u4Ö鹊ºH£ÈÚV‘¡"×*²(JBŒ]­7Wsdà‹“/1†Œ¢P.ŽøM¥yZ¸tÒÙ©PGÛ»„ºà^)šW€Oz³h^aø½¢y…;â·æþˆßó™U(’¯ÀxRª@–Œ,°d©¼Ð2ºÀ)øI§yòpÄï0ÎÊã¿LxWž–UkÂRy… § M¸Ó…6rÂ6Ò¥2’6¥²’¶¥2“v¥²“öybÞŒÈktª)Èc¸ÆÊ¼Æ¦šר!»‚¨–•` YV‚-dY ¶ e%ØPª!%Ø‚@vBhu%X)~n¡&ñ«q³ÇJpyKê ò8–Ôäq,©+ÈãXRWÇ3¾À›g|nƹ NÉ\E})‘ëF‘0JäÃ+’E‰Òè–*rÜ(²™¥Á=UäªTd1%rM*2˜’ù t¥rv5 ¨rv5 ¨J]‘€*gW³€*gW³€*g—ÌÈ\»†¸22g×W¦`(3á šn&EóÁÙÊÑÀ¾jTλªQ9LÙSM!,²£]ƒcxi â…8Êg ÁÒ1xÉMˆjcŠmHF“ë5$¤É‰’ÒäšD ‰irÅ †ä,XÔ 6W jÂÑöž“¬&RMI9$Na¾@)Ç–”£H9…€ˆê­QCÊ)DÔr ¡Ÿ£ž)LXôLa¾r 4%m2hJÊ$]&8z"*J’&M.‡USß>Á,ä}ù³PìŒ4r­ø³CÓ'˜…Ü–>Á,y#Í„\—>Á,äÊô f!צO0‹¹:yf1…Ì'˜Å’rf…dÊ'˜Å’rf±¤†Y,)G‘rbI9ŒÙ’²%PW¾$?©Ù—¤$-&cÏ,ÌÅžò1ÐBf`ÚüÐð€¶³ÐbV #ÛBh¤H[Íi n EÚB̤H[ˆWi Ñ""m!ZR¤-D‹ÈŠ,ؘYHcRd!&ƤÈBLŒI‘…˜Y‘…8Y‘…0Y‘…`Y‘…œ;²" yudEÒêÈŠ,dÕ‘¹Kª?M?òZØ5R’è[%”Uí‚X*¡t*¶Jh­¼ËÕR -•e‹†VÊ»Œ#•8*iµ‚@z²TIô.†§’xÄ·‹íKÀNlŠDqJ»æHŸ´oµ¡¿oŽMñH‡æØ‡thõL2´$W-D«g ¢©AEña—L¦žã›£cpÙJS°m1¨ ·¢© MàM5¡N6‡Ò7Õê™p¦š j˜iŠ¥ Y®Õ3AÊ·hK¡Ù3†’¡É²!'Œ-"67´’iéËÐJ6-ahí¤š¢Z3µX6´*ôM–)U—MPŠ®›½ÐÚÃ6)hͱ \@k¶;PÿG>³ÛúØíJÑnÂÎZ»2Ú"ñí¶¼àÐ:ZktÛï»ü ~›2¹]g\[ì´%KÕeû3•˜Œ… rhYjÁë£U¤¥–.UPW» Öª ®\>xZjí¦ÕF¯]TÈÇàU‚Þù\çmÓÛ×0t+È·w3N«‚\|·ÄoU§ïæôV­Pœb×.;ê¼®›Þ¢—U¤44ær feÞ§9Ö•º"/¹œi¸‚®8p2œ3§]µÄjŠß®å]ÁÞ¶ä¢ë«%ÈžÚ´­¡ŠãºÄ•²\ËmuÞíZÞú }µ„eúj >ª§-Xûž¶l}{¸b»ûjyë gÜ’áâ¸>éÊŠ¢|Ò••ª\Ënoûzfß·®È³O ½©XË.ZàæqCQWTKãF]ª I^WÆFHˆu¢(oHˆue+„„XWF,ÕÒ UF]Hštª·–·“‹hI“N­’&)ê™jyWµG^ÞÄr¾w\> (ZŸji‡Õ÷èJó.kZ>ÿšN{ª×«åÅÍùlõèÙë—ãg—Ëõ&Ž¥˜ržQuLgqèádº™=:ù«ôba‰ÿ´ò !ÿ"Ä_@öjyq w´\=z9=›½ÿ>ß\Ž/ÿü4[­fP›NíÒÿ©àŸà™.ßl.ÑWßÎþü}¹ºX?:úê«ÿÝE© endstream endobj 737 0 obj << /Type /XRef /Size 738 /Root 1 0 R /Info 2 0 R /ID [] /Index [0 738 ] /W [1 3 2] /Filter /FlateDecode/Length 1672 >> stream xœ5×yLUéÆñó»÷EÜYEpÅ}ÜpCEÜÄQDEÅTÜqWÔQÇq—ѱ™&í$Mš¦iÚ´“Nš4™LÒd¦ËÓó~ï>yò¼ï9ï¹çÜûÞ{Çq~ùEÌÀFÇñ8ž.Îk1iÍŽ#&p­6_zÇß6™ÿ±œb{·ìŒЃ^4è‡Ñ;avÁ®€Ø C00 C±vÇpŒÀHì‰QØ £1{c,ÆcŒÃ¾8“0“±Àþ˜‚©˜†ƒq â¾"Ä¡˜ŽÃp8ŽÀQ8 GãüÇâ8p"fàdqœF}FSÄ Z Ïñ>Ç«ø /áS<‡Oð4¶â)|ˆ'°Å=sº®2ULP€æi˜)ŽßÚTâtŽ:‚wifàLÌÂY˜³qÎÅy8àBÌÁE˜‹‹q .Åe˜‡Ë1WàJ\…«±×àZ,Ä"\‡Å¸Kp–âFÜ„e¸˱·ˆ ö×»T%N·WšOáV܆۱wàNÜ…5¸÷à^܇µ¸`ÖcÄCxñÅcxOàIžfÞÆ›ø’Ñ&1!«ô'.Nó <ƒgÑ÷®»/hÎã§4W°æ^ÄKx¯àUlÆkx?ÛbB;ê5Ügl†æ/ð6~Žwð.ë^@ßœ{x[ð>ÄGØŠñ >Å6wõûºâ3qæ·:^sþ³è;ê9úîÃKú&ôÿÙwçàqô]•o¯~ƒoÅ„•è*ïÄ)Òü¿Â÷ø5~Óg$ÆîóyÑ®NÍ]m<¬r ïÑzÝ£>èƒ~âœ:©MGì€þØILx‘ŽvÆ.âÜùY›ìŠ$&"FG»a°8/R´éŽ!ŠaŽî±Ò™‘âüþ°æX^ŧ䨣0{a öÆ>b"OèâÄùá¾æì‹ñ˜(¦Ç0M‘VÍý±&cŠ;óW:š*6EóLÃbz.Õ~I*Ñfuçü MºÈè{šGâ0Ž#pŽÕþ|LjdÕj‹Ÿp—ñÍ81ѳuÎx‘‚®š'1ç ~F3'bNF÷û¨—Ÿ5U¤:Ló œ†™8gb–{Ô 9Kälûûgfãlœ+&&[Gç‰<ÊѼçãBwÎ_µÏùmû\„¹bb+´Y,ò}–楸—‰éí¯}žÈÃ5çãr\áÎ9¯ýJñ~«y5®Â1}Ò´_#ž„1šËp-b®ãÂÏiŠq=–à,Ÿ 7c¹»âït• ñdäi>Š•¸«p+nÃíX;p'îÂÜ{p/îÃZܰë±â!<Œxáq1qÛôšOˆ'ÿæ«xOažÆ3xÏáyôíð"^ÂËx›ñš˜¾±ºÖuñìhÑ܆7Ð÷ο‰·ð6úž”ït}ûç}lÁøa+>Æ'ø>ÅgøÜ½ªö½÷…xš5¿Â—ø¥˜ø\í_‹§å²æwøßâWîÌêè{ñüº\óüZLÂ.m>Šç»é¯JGüÊÂ5‹˜Ä`Íñü/WszÑ v@숰3vÁ®€Ø ƒÝµžêùCÄZ©9C1 »c8F`$öÀž…ÑØ cÐ÷MÑû`öÅxLÄ$1Iyz ý0Y¼)?iÓÝÝ>éGmR1M¼™©Ú @w·ï·O߇Áâ]S¢Íp‚C1‡á1ÉtæHñîNÒ<GáwÎ[í};üXñž{£ÍD‡ãqfà$1ý uædñ>x¬y*NÁi˜)&%@G§‹÷›ï5ÏÂ8³0g»GµêÌ9âý[¹æ•8çá|\€ 1a..Æ%¸—a.Ç|\«pµ˜Ôuºn®ï¿Gj³×b!¡og.ÆõX‚°7â&,ÃÍXŽX‰[° ·â6ÜŽÕ¸wâ.¬Áݸ÷¹ÿåƒôÊkq¿˜NÇ´©ÃX/¦á¸ýÕ׸×zå½µ¹ÙÚöwëÛ\ëûëo>Z¿Í³þ¡ÞúÇ&럙ùŸìž`¬~iÖÈ{Öä…Ö­Ëc¬ñv~a›^ÏA1E¯5Sü³]ÿmŽŠ)°ÍÆjë¦*kÙwÖÍßX+8[eˆuK¬µjŽuk‹žá¼˜ê:ÛìhÖæ¢˜ š/‹©9mG÷ähÓ,¦6]óu1rìh]™µ>_û[âWœm_K£ûËùÿE w¹ endstream endobj startxref 363810 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_maint7.0.ps.gz000066400000000000000000013463221514310134000256170ustar00rootroot00000000000000‹…•‹iì[ësÛHrÿŽ¿bnSÎJ‘ Hë™Ú*K²}§[I«[{.W†$,Àâ!‘‹âÿž_÷ ž%­/IåCh‹zzzú==ÃÁ›?ÝŒ{§n8‘½a`¼ysK; ãá>zQ²ó°+†ƒá°o‰;y/.½GÉ€]!ÎÃh{³yÊqk»žcûâÃJŠq8MŸìX‚Þ—úòD,ú W÷Âà½z—IñQN„5“‘u2°ˆØoì™LNÄÛâþ—Ø•àê4qdàvfë³³py"øw` ÅáñMïC'[È ý)Hœ_Ý£íüêÃÐ÷P\{‹I–\…ÁeïVÎ2F9¦6ú:Ÿ[¤‰S=©ÏøW¾\]( ûug¡ïŠñÇÛ+k0 Ö;tH_šÎíµÜi*‡m~™ø^ñ;’ñØûp)ÓTÆhü¸çႚãÍûO7ãÏrBš9;OOOýXé_®dß »‡ºØ{éR›Tô’›Ó›·ã‹¿øÉ~[X†±oìØ^HŒ‡ÝÈûé`0Ð-ã0‹äa–F›ý ?€o N†ÖÈ2̱=•éêCàøa’ÅR$6¼Å•S2—œyÁM:c™žˆT.ûQ’ÝŒ72L}ï9©Aƒ.Ý “(€êj^瀭ñgžå/p e}mŽs¹t渹ÏÇÆõúÌ<ÍÝ,Âõî6Oc;H|8š½ÄOÄÔö)®ÍǺ–%‡b‘ù€ÌrÔßÈP j‹ü,9äÜÇ~‡÷‚œ¨å_¢†c‰žµÎ{–°ÖÞTÒ8â}uÂÀ±SÀh°[™„~Fþ1 ò© äL$dFÁcµê¨èIØJâw Xy §§‘X6jP°vwK Õpë´Ñ¢·%l×å!în¿ ;½¥p²8†#ª§üTœŠ˜ÂQ$ÙDØ“D úˆIJŸæÜ€ÑÖÓ0¶}_!ĬîC·_©‰ÁTïHfè ’¹2[#MmßÁ•3ÛŸJéæF’Úi–·˜XáÂ9 Û #O&¹ù/êFÜøñÊN¿Xœ0z|ùj\›Ïξ 6øzmn®Í‹êê¤1_Ýi/µ=?§ö#å¥×÷잆IÉænI1.=\)UMƒ4^jÐ’•À`蘠1˜™Ö¸vÛ+Ã<óÐ zožežïžÏí8§/~’1tƒØ )ë âîZ ŠÓÜœ†¡€§b=4˜˜€ÌøzÄÐÂm"€W(¦ç ”‘Lµd9ÝZ¸UÜ’’ĵ¡%¢;Mr8aÝ+œ/Üw p!—e͉ªÃ‡< #ñÔ@Ø ùo%gæùS~Ö…/ƒY:ûì93ÉMóFÓۢɠ¶en ‘Jkí£¢®„²jt–ÍÖðQ à¸Ë’UÞSM)li*+Ñ-¤ÌIs@b âÏP¡qMÎMl—vÊ9ï@6áñcqªìL\ r—\òý¸²8?2q ~/ ¼ÂNv‰ëùRœ¯Äùœ9¥‡'ü|e@©ŽíÌ¥+=GR°( *7ïaúFîº}÷k~î­½æ…<±L0ëKò>7Õ4¦ ÔEn†§§¹Œ%¥QƒË/;ï½$òíÕîÛݹDÆŸcÕš°L”j»_ó2 *úÑGø­&íÐ|W{(=¢€‡FÈ~<“Ê¥GµËš … 5“¯uY¤]SQžÏ8Äîn9ãà?î, v.h 2DW5©07HiU³" ­;)©þŠQ­(ùVJš»3D¨¦HÄTJ)Õ!DYÔ꣺^… Ò1Gñ1›¥Tº‚šú Zy&4 ÀÔCòŸU‰ÕÎòXé§6û—§pOô $üÊÇ"ª‰"NÏ­ë'ï½WD2ïøFæ½!ßL©½¢ùn–2Ï-¾z¹Âø–«.¹¢ñ”ׯ7ý< þ„ÛE O·A‡|Ò­Å·p¡îbÜ©æwªOŠ;Eh™£(×Y…¡š'#asBGÅ6ëdMò€çRäi†ZéõÄÆòÂMlçx=^ñTK7ø/îæ^‚êšì#Å?:pÜ#´™ dŒ$àŠ'ÜeŽ¥LèPxGiÔ÷ÒU¿¤(Eȳ Â'á•SOÄbøDcU#Í¥2¡ï¦KµQ#JÌXuýCµí13?îR?ú«ÖÚ;ç´"·Ž{¼è¦‘/mZ“AøoÒI‹)æ´R 2-ñ<ÉHÖ&Òó5äÔÃ3œÙƒDÃ2Åõ˜Òz Êâ&Ã*Õ—¨2„ÔÎåÍÍåîžàD±h¤¹Å꜒´ìkt »ƒªríhiwÁÎJÐú¬ìÝ,Á¥ N›ÔÈ‚óHz>)¤Ægž¦Qrbš´$&:Ë^¤øï‡ñÌô£Èï§ËRMì ì¸F˜@ÕHRüPZKL %_þ vˆµÏaü@C³ðD*´®Qöf¦ ¦êƒ2!IÛ6HC$[h¬_ðð‘$èôÃtB?Œû‰#r±æ•tcQÌ gFI$˜ç`REH@Ý…â…“9à3?œØ¾aFî´¯îyæy[®ºÕdÓFuÐ=Øß½-&8)úŒíG)‡}ÚTµV¶5ä(%ü™ZkÈÔ·†“íæD {]‘Q¢å$=âGJ޵È¿ ;¦"/G‡Úˆ-$7êG(Ôr$‡VË<íj!V (Š)¨ë “öý¥¾®øšÅK}]‰¯õޔрE òT]lF!f^˜úÕ Ë:tÍ-MÊYüebh“2±ûeRÈs|·tk4ÀZ˸[Ê ,þðÔõ9l!ß2wcÔ umóZt‘ÍúvàÌÃnUíQŒ¡CépØ‚‰,7YRèü¨ªìCµæeĆDLaõŸ…ÒrQµÖ}ÝĪug)×–‘ž¢kíUožù ^€é¡®¶ÜjpÚ‘KéÔùxÜÂßc›=†§‹Èí;ÝàI7Øî°_¥aF@úã6QWz9˜^x60ˆåzÐ5)N*Š›Ý&ÁJ5 ÔòIH›ð¨‹šÔT±¥µ¯f¨Â-ÆšÝ¡ê “¨¢¡_IªÚ¨ƒ¸Úá®·Zº>U;I%oÛ,KYð­¨~Ùïjß,™yúé¼ÓÚ]ÓW7fm.–?}Ögµò3*ËÛ_`c¸Õ­Ó´þ Ÿ¶{èÑÿ˜b:9´¶r¨Oåž’±+à>ߢŸþ6Ê;b[´†èBéTÒ†FÝZ{f‹mã3ت‰×³1|5ÆxÞežu›gbª4Q½Ú:¾õýãþ;Æ=;~·SvM¯õËŽåv‘»åÙ_ÆkC¶¹Ø(g6ãEÒÏêwaçÑSGW6:u\±Œ¤$»,þŠð{Eäm ºmŽfméE÷²þèX£ïkôÜX…­Õro{Ä¿ÖÙ_öóÚ6ƒ^×õg!ªú&CÓm¼&¨$y­ÔP›úUJ£Ok©hòC]é¦Z¶š’åµTåüºzùÏpòxx¡¸êµ ²Î“3—ÎÃÖBܸaÐ*UŸ­©êzÈ‹“W5hC7…@SDšÃË‹Étm±~×k÷VeZ5lì~7ü¢±÷MJa²ʬ÷äs-­=˜Íb|œMø$Ÿy ;·«N-"/ªUYª¶bíÀݶq[&¦1‘ÜÝU»0ÿ›óøÝ“Ã`Û~s#ÀþÉçú’©ËÕ–Æs6hb5lßv©n#pÚ]ß¡åhZ—Ç—v¬c¬ ¡ã±;xJ?¯ís5¸RÇʃ /òFTQÄ1n#š^ØþÙ¢•²×Û;nLšœ½·-€;²gñ"g«Ã#tùç §Ïgê¿p\ê(îËÀQ'¤ø4Já—=Î訯%Ê“ç‘Gå û̪ƒÁ°g z#tF÷wï¢DjTâè]nб;KçaLBü$~÷Å­=Oß7}qe;?Û«=qêÛø«œNc‰§³¾øK{âç¾8“q¼Úc2Ïç¾;ó…ç¦LèRÎvðƒB,Î ñxàSƒ]:ã)4Ãà |è&b6°’›”üºE.lÏ/:Ñ":Þ¼{—f3:STVgà `GÌè$Q¡ ðäÀ£¥,>:t‡€ž6ÅãQDÒù¡,)Ž¡Á"|HªûØÒ&•›ñõÇñXŸGÚ+õrüÙjmñ‘+Ï•6sŠ9¼£#M|.lnǶCo‰ Œ6myãg.8‚ ó+–b¤ìGèÊž€1“æšD¦)í •Çî`b(Â{” ÔôøU4§6ý”ã–êÛã_Ä¥ bÂÚŸQ€„O‰8½_h†øÇdRx‡"Y-&¡O¦ƒÝ"#À—HßI¸ Ýµ4¶ëOãp!.3Çsí¾ÒÉyш âBIâÍ~ùŠÏô!m0bú>ø8Q½v¬]f¡Á]m;&Í.Â$e«#l^ÜÀ™(LÔY¼=ß±3ú¥„ø.Ðèx"; Ÿ1¥xPe,YSR»D‰ìÑQÀID¶„ö‘é)èTŸÜKVI*I_cDÉUŒ2mhÀÊÆ$â:‘êÐBƒ$|D5½žˆ³ æ)艎}IǃCíî¡ÏIdƒ¯ë`XNÓù*šË€õz8Úí‹ß²0• HÑØl³«’9ÂGøã7uÜNiÌKL0‡£H¶‰„£ªU'äH8¹ö—»±¼¯´®]`g¸‹\‡àø¼[ËŠìt¤2žÐIá˜l€à!ëÃ! V KPÑç c;˜!þìÇÐcGìÑK$„5"ʲODÒO!Ùb  w( nF»â×ýU{©8S§Au(&u¿FŠJkìþ»v3И‡0†²•2ý l£~,Pßó+Çmk— øáï™©Ü³Ú ƒ>gÌ®YV_@`° aöárTÉR4ÛŽƒ9QL‘ŒÅ¹9¥ !³™ó,˜Ùq¶ðQ bšøv2Çø|b8 ùõŠ&&†GTÁæÂ ²¤ÿ»cÇDõw¾231£Á:±xÍcT9¦(eu?oúqÃU+g4*o#_2Õ„dÖæ)ælHœ©ÙÍ”KÇ·Ç#ÈöT–͈œ‹¤aÇ &c¥I{Û„šêÂyß`†d@§iô­šL;!”„~Ïò³„B/€Cû*‘]/-¥vbnDÌý.‘MX@˜éîÒ9ê Rׇ5IªÄ[â æ >¥S£|J= ¶…Ç·Z‘Àj¨’$ ë~Kc^0O…y&Ìs<½G’æGaþæ…0ÿ*ÌŸñp)Ì+a^#¸¸ï>õ½æß„y+Ì1î„ùÂü$ÌÏx¸æ¯ðrZ ¥¤'€ii¤ýN7”Zs<Ïñb'ƒeø¥ˆÄ¡Å' u@C±ê•¶¡Ì D&[A@(òá4áp³’ å@£LâHD ÷†šð:™0…ùdÐÏÐæ &PLÉ’×Xê<¦ô‚iLüˆˆóÔV娚ò›šˆÅ0¦½ ÒíXú>‰(ÊMמÍÈBê rVÈÔ§>ø *½L9âXGÙ,ó|Dóüˇ"ù•‰­ž¶˜ÝãFÊØ¼)Ô$‹G­„I†\±Àe3Ê…«ÒÇ1w­MnÛXö;~÷Ãì$5±‰ [S3&H"qUâ¸âxã”˵£t«ÝªQ·z$µÓ½Üþï{.$¥–=³I¦f]e5ñ¾¸/\PÀQd âŸóeø>wwLd²œÍ2yÈÑûå?ž¯`êà„§±9 1Xì9½²ÊƒM’­ý‰¯<¼89ƒüîɼÂñ/»Ýò,ºˆÔ7JºÆ“o¶ç°—`@DãzyµIŠºÞ¼'îQ :Zî{vÁE~µ8K^Ï­çûrl>zJ˜ñîÖ[û6šsJ’ÕÝb#œ_Ýzç±€ÎÜ\&ß@S¤QhrËsеðŽaê ”_Aoׇ¤ì½&ao½½ãùr±¾ˆÄìÝ䈩~-Í¢‰î³‰ä5sl¼„©ÖÄÎ&, Ô®´’-ÄnúØM?ï¦ ï+>ŸÏ+>?ЈÎâËüEÔ´ocão}cRþyëoS­‰Ø«Ûõ~uC/´óo£zûx x=uZ¯§¶?Æ ß_n¶¤ÒË-zü´Äõޑƾ±êbNÎ"1o1õ¹Ì[ÿž˜·ŒÝ,c7Ëy7ËóV±â*V\Í+®˜çˆ¾%1ï:²eoó6óÖ›Tk"ö|õaå'°‰¬»=ÜÆáoXw;µ¼öu÷#eïük´¿ójììê‰Wü'û˜½$;xÿ2]ôƒ¿|ÿJÜ^¯ž^-n~ï7"y¿† ¯a¼tóì÷_PÆ¿ÿòiW¯NÄUù—4A# åíÄŸßeFÏ"ÿØ¥å_ÍB,–Gýù­‘rK±TÈù&8¼C6Ÿô Fcìhy .°qñ9X…|=.8Xm>ÒŽj¹þ°¼õþÜqà+¢ƒÏ«•ZOÏ7¡Þb»Ýüìfx +Á2LÉoÃý¾:t›òÑÁj¥é0w¬ýôzùóéSÉHüD<¢/‹ñ¢ˆ•,¤<5ãñ!{e\Œ O§(Qèå,ÛÇz,®[zbƒ[gc(ž¢>ômÖç»ý=O ¬³ dJRL8K!6œRˆg Ч¤§$­|SêÄiòA¼~I‹9QÊsÝ+ø'¹üÏ{  YÍ%3Aùë©ò±Ôߣ@qì’sl´‰Û›ø0®´gÃ6åÈ"÷èõ¾vƒÍÇyJ¥§_9™õrq:B|¶{½ºÝÅPgy(Õê_%ÕÉ3‘…_„ŽVõt±Þ¦Žè;ìQ;}Ìçû݃¶3·H›Í"n¯O\h6¶YŒy£¶q•ÜÆd;ä¢fBý°)»‚UïÛûØwcÒƒNÁ88D€×«ä+v›ð´^m¡z[¬ÿ7Ñú†ªC‹ë´e»Ü§VçÄÂSìªb’ct92Êx¯\òª”¤d»p¨Á× ØðŠT8¥DÓóùKž"ô0HQ¦Á¦è| Îçl ÎÙœ±y_ŠÏÙ<>ù~÷X3Fç‘(Q±YxÎbx!zŒÐÙ¡³y„ÎŽ"ô š®ngldÇAzdµeóÄè,mÆØ,6g)6?ZoYØJþŽîëûG\ ÑÿÅöx2ðè~1Yc@þO¡«ÿÿÉ.÷‹ÉŠ!øoNUŒÃ?†ï—ws;„AÈ·ÃÅêúÜcŒÑwú#ʘ u†xà0wÏ;:P/|Qþúz… iȃÇõ@ƒCBnŠ 7óæm:²È3MÐ'þ’¿Ø•)÷Qï ª$д6޳ëåC¯¤ÎvÓᮉúñø!bž Ë¿ôÁzºX:ø0¶¨'øšËð6Mg˜!ÔL+",ŽR±â€©ÎHéüäÈ2Â2‰ÓžB„z*Iô-ÿ6DD¡ñNÕjˆc¼M'öŽ:cÈ©‘Ãôu#eåVޮн£ëb (’P5!ØWëÅõžP!jB%ÛìÔâƒÍ})qc(âàñ‘Ûc|_<<¢ùß-½\–¾}küÊŸØe[¾m˜ ûÆëÒ$”·‘¨Êæk˜•¬²3ùìÃÉâ©Øcš Œ¦÷&*t¥Çfh²‡ùgëÕÍrdȹÜ\\@¥Á¢ C¦ pÆgøÐà9âÓàÄ ž1@bMBÎÄ´Àœ±Î¥¯syX'¶^ß 9m¼ ©{J݇Ôíö³"˜‹˜D!!dPêjñ> r%Í$›ÍŸ}³ Íy=Ãç»:y²ÈûxOFÉM¤ Ñ÷¡Zrê}îêœ]-îbÞ{0ãŠòæÞ_òÉý{0Ì`2ÞI¡fÐy¬#I;òÍù°¿»ÙøÓO<»Ú!Qdç@Ø+¶Ø/®¦eoF|1¬ ƺÃ#\±‡‡Y)›1ët€vZöÉï{>hqH—oõ0°Äµ82ý—Õ œbÜÔ†™ò,û?ñŒ}„gÙ!ÏfÔšÓ¬b‡û«NOŸúù”P¹12âúyÿtoôp¨ŸKQ ù¨€´<ÆNY2x.óÔhïÜ#ƒrøOÆ{‘ŸÝ¤˜uÄ Ín®FÜ<(óÎŽÎò…¥Œ=Æ•>5=S'w?DìБ,ÚÊý¥~¸-õN6FÃ<ˆáÀ+z‡aY=:#›vxÃ<8"‚ÛÉ7áÕÁ›üÜ?0ÿIn·‡ÏÀÒFè©Ë}"#.¾Xc’÷š`³ËÝñÈx†Õ:¡9¢$H8eŒÑ{zš:â¬Ð ”‚ŠWh™Žú×åViZKi±õQ:"¿Œe—TvŸÑÒË<¦9›ë”oJQµhÃ'º˜IéDËIac 2ãU§ª‘Cì{¹@I?THRåYòò¤š¡¾.· *ö)Šâé1ÀI 4—´?–§µ†¤ MNÒ Ò΢`²¾e¸{•iÂùT‰l!^ÐJÙ\'SÕÀXøOh1MáÙÅr¤…*Û|½âÂmóízØN‰³a›VT›_#꣡ް¹šû¬E¼ ýÛrOé iò»ý°ÛÓ‹¬Ì·öŸ?²I¼È/VëÁÎJ³±4|ßh‰¾?÷Ç(ß á˜`ùýêM~þIÆhç$Bò Òv_×· šI»‘ͺ[lϲY—3Ð÷ ž»‹l&Æâ‘Õñ¶‚; ò7æNóÊ~¯NË !ÿ½ÊäJ½¯GÄ2U}\“åóË ±E4(F§Zè$þ÷›—>†ŽèAÕrÔø~ãk§iã*Ú—S½ð‰z:LúìËËÍn¿óç?g;Š}߸TÐÿm:Ðo0äû}x÷À}ã5„!·þžC±ÝËÅ;×µ|¢àí¸±=ùŠbù·°óôÛåbí_ Û8­é÷ÞÑ\Yþ*oÃÙ ²‰ažœü«§ÿ‰©_ø=ÝÀð{§ìúv÷ÕS› þrÓ[*ØÏ"ðírXø{ÿ.5x•  ÑœZ©óÔÁôÎæö†M2@~¡ž§k¬8ï*Ýî{–Ð=# _gƒL¯s"à9_Î.NœÈ¦ >ÍÆ:'¦‘*MÃÏaóÄ“ñ]A¤§É"ê$HÎ ‰lN<•ã~˜s&óÝÇyÏNR|Z:stÆCŽˆèOIöýÓívýl‡ý!é™#·¯IoN=L¨Æ5¡ú.¥¬Ùû¼^fƒÏ½ËRmFÙÃ}ÑHd@ôÿ¨­¯ð÷Ç Ic–ïý¢sjóÓfÿˆì=]¾šî©ŽPË©Ñû=LrJN}ÃÏØÈ±þˆcqœ ˜H:åüè4¨ñHm¶‰ñɱÃVsñ-ÃSà ù ¤sGsZùöÖfoÓYǨ·o#3(ñ.Ë[å;Ïôè¾ïèlˆ÷øüc–7;_÷<| ï¯³?ýiVä/}Ò‡·W?©¤ o6£G+•°Cžz6?2ÅIÀ‹}nÚSíC­šärš_4J|6‰ÙûvœÉ‘¾MÆC}¼K Xb'›PñB’?[Ÿ#—ªúâé§|j˜¿õŒêA¡Í¬ÕCzC†§á“­bÕ‡ñ. ›E›Yü,jBïžÿãôoJ?ïEužˆ§üd½ å£_çúayžuˆ—¤Ì„1tjCþú»>ÿþ˜r¨JöÓ}*AK:Òœý;>,×›ºM7Ù 8(?.lç ÆdluAë­a²«A€eÁÉ e‚\pÕb(A¸ãðÌ­“¼…§“œü2æ «’×­_= ®3¦­K¨²²ìÐ¥„Ù@ØpqJs¢)a® *Ú—°–Jà ª.­‘¥ÉpÔÐÕu¦=J­Ê=8#+m¡?¢nÉ;pË»–<(Xlƒ‹(5˜aaÇ=HW¥†úS‹kÓA3ØF]in±öÑòƒÎ°Fö®V¬+Àn×Aˬ„ÛÕªCÒ¶¥‘ÐÚ†;¤LÑó îN¦„ÿ˜¦£!nÍDYÖ`§5xƒ…®Û`ó…†wª ‰ÅÛÔº…Éš®Å©UôºiTÛZ˜uËZ-\Ûc½ª*®k êN …UN:(†UP,þEÓ¢zÙ8t‚e±nȱ À'Vpp ÷ÓšJ–¥± hìàÍ È Ä‚Å¡ïpÊq+jØwMóF”Âû–Ad‡Õ® Ó’¡cùhD]A3LgZ‰Tº»»k¬Ð¨­%Ä[3˜ dÚa]Àšdë¾÷ŽÖh æËU²$øÙôðMô͉ÿeïïzvk²ë<ì|ýŠ} $öªU_«„ @}¬lX1"É9JÚdÛj„ì¦É¦$CÐÏuÕfÈ–LÊRDZÜüè~÷»Ÿç¾×ª9Ǩšs ÒÐÇN鑈”g)ì1¶FýÁ+yÊJ¤kkåY•1~È^!ÏFx`=óŽ[¾¿nçH˜¯¬ûœFJâ”=Ùîý½gª±1O&ÍæÀ@›”A.ã{j9ñ ,;~Á0Y6‹lD Ú,$^í÷…—à’Z4°ŸH༠ÿ†¨Ft¯¸§ƒ¡@µ¿ažéå· =0n|ÿËŒ²È Và³÷n¼Lcîü’?¯0?’QÜ÷$f‡ì]ž·ÈAÚæ‡É¶t QË]:‘Çnã}J—Vi•!Û“ k4áñƽvižpÅ ‰ Öë›ò|LW ³‚dû\{ïžL ¡þe}íç1¿‘Ã]Xtì±Ef5î æ8>R7ó•+3Í“D5ˆ2Édk&°ó±Z’ÂŒÄv÷ñÜî¾#å'ÆDb}î2bIkƒHK'Þ·š#µƒ¿z“Þk9²8èk·xhž—oAEÐ"¼çÒØcPFʉ±wç$ÃP3ënà×ÛÍc_ÃPú<¬´N²`N‰NoœÛxÆÛf¦˜öø¸°HÍ|*ot½ÂÀçLÞÕ OÛbZ 7ÍíLŒ4’çVü‚=‰"lŒý™äÙLmÂ|'‘>@ov±1Œ?@2à)xKÚ©ø&.@óä z€‘$FŸ4 (k/TÖ}¸’õOy…ž@P2yo—Ye¼?ëø¾ŒÉlAZÂ\<ƒ5["ëè+¶¶•1O™ëö7Y +|GömpbBî ÊZ¯ ’|M´v3n„›µS'G‚÷s×þ•“M…Ü„–F €’/€! ú!Pl°áN°>Èíð VA5²®WNÄMà Æö€Õ5árñýÖ:ø6à6qš»öÇøÅóµ'0SdØܼœÄ  ²`Uµ8Ñ*s_™6"¶Ì–„ͤÇnù@’²0‹×»AxMJ˜É|¤ZÈU$ÐTÒÙŠÈÏÒ†²Æ™%Ãæ¸H§½¹~IQ‘*´Øg„€t9ƒ_'wïþð˜ Bäí ›íæjéù®ÅªÈüè‚ðÓX?ï|üŽ,òä{ƒCåWˆZ`<¾²ÐÞd{ˆ²D$ž„¥l¦ŠŒ8f'²646ê€u€|Ëìå éyâͶ"’n?²žÛy‚¤êdûß›\C8 ‡~2@9&€oEà.ÌÖ»ÅÓ0pÕüêµÐo – ܬò“‰¬Ò7àî÷µ2úèàf¸Ò*DAñ̤Þ(„yÕ?·½æÊçi ^^°W ‘*1T‘¿!L ~¨ Á 5Ý{¸ÜsA"Å À^Á›=ÄŠ‡ÀðÁ³Ø¸‹xêf“§+ÿM.ßl¹øñJd&àY} àBlÊÌ ñ¥B¼åDF6B2’¯@)$1&e'ÒÙú˜ì…Û€Û몠“ùá$FühbsÅ´ª €Å~ÏÆVˆäœÛ…ÿÁÊÞ}UàÍÇZâ-Ø-7¹®È¨¢2l‡ÍLL} óìÝá0™àÁ&c×…‹IüXß×>0¢£”kÖ o‚Z°qÊd”ÁLÎWd. ΞukÂo¦èãÑÀb«Ûäæã–×xÁ“ ùYÄâšY«PA¦‚Q«ðÆäà™|Ê×3ÓÀ’üVI/aùc§…gžÄ8"ɤÞÄFp£!ï¤è‹eA"üH€’Ç…4°ùàè$¥š ÏlVÆ2ž€ $øqãK}\b ôL‘ÙD*~›×"yîq—=X,0_@$KˆŸø’Áöê„=Hì.®ôpµÔ2@ Ì5aI¾³‰•@Ë,ÿ Ð¬BýúH?ÑÖÆdt±Ÿ/.ƒW(†esVç2½Œ¥vÂcrò­È¦Üd…þ2› Ép× 9„gI@ ¶&¯’5ÉÄ æt-b ZÇZ"4ÁH;ô‚h±É¹pí‹<°¤¤Ë/…£2BäfБ;– gjÈç$/† ‚‚Â=I}à?@-_M臒Ka›î€Ï7I Æwƒ^Ö^f7vþ¹˜ýI¶›ÜP¡q'4#_n0ŽWï“GÂÃõÜò²,$r6Á󛇦°IâÛ€ür};ÅS²‘tt‘HGÈ C'X™%u;?ödc"oòõöMöùÇ¢gvØ~wØëbÍ46Ž1YqôͼҬqß@]vëí[¾f§AΆKc k é|eMwð lI¥AÕw!bE£o¬³ä;/N>1Ç÷¶×¸ùæ|ö•:nè„Y™£ C ‘ÍÄîQµà<(¼<b¿â/rgô臩eÁðÈììûÓÎJàÞá`@.ØÓà2Í(ýdÉÙ†Až³U÷Õàý™D¾Òãˆèýì€ »#ÂÃoár äú]"}',žmݤ0¶´ÿj¦þ>0 -¯ÍÃÜÕ´Üç<“úO²ú¢gÀÐçŦ, ™fÈИäÅî!3Ô*4,‰œº<õº‰¾q/ö¬dÒÕò$™×€±²ÒÀ(…½ÈCï ª"ÐY²1·wBÇ“/‚ìÇ o~¼ HC+»Ù“ßZ X7H’Ç+žB Pd˜ Yþ•÷ªP˜ì¨(~€Ë±”ŒŸŸìôDÄHV[ –˜HW¯X ¨x1ûw¯BV%Â}¿ãä1=ˆ`>×x‹¹mÀ–@ÙD„™â p^Èþ‚g#>™ýÁäð<ÎE‡{B‚?;ÿ“o)ŒrõÁ8§y›‹ýy¨n©Q´Ú`ˆ sbáT) 5±ìØ´¤ÉÚ $$rðqð¼5_Ðúò3ϰ—„ÒøøQ 2qh’ø_i t„}G,Éž©Ö?°òãá'ì¢õ‰ýlTP‚™ºy>,‘¹#ÈnߨŸ›/níª8ö E>Ö Ù^B¥ˆÎíåݾ&Œù!–ÀGìqaò D¢áA·Pn›Äã`5îyWx3î® ra1Ò‡Çø¼ë?^oõXBØÞGŒ<kųøÀ‚g[‹V ücgíæ·šÑ|VsÝ÷™Øç{ŠØÐó_Htjžž‘pkœ©d¦âAilk)CÉvnÆ_ -›•èi¸Ó³Èä…[¤Ô=ÁÚɆ¨×LižÓNÖ„õþ¤/ÉŒn6'©†ö±Z;@¹“œ¬üÇ«ˆFJ ÀH{~ÂG]Ä×ÌL9k–ÅÆ(<‚„4íñ‘CnéåaߥÏc4bi“ž¯ê€ a.«%OJ­ ¼Ù7àí¶¹üy+>¦Eê¸ä­Áê$ü ½-„þäðF!wpUƒôÕ—˜²ÁølQö^‡}°lA`VÇR|x¿H´p‰ É&ù*"Áþ<ü=’q‰Âß_ üÃ?GˆãÃ/ÂOÅgÏíF†ÈÌa[up+›âÌò‚Ã1Û¬ÇÀÏÈ ^0íU_Ï"[ÎÞ7|àv,ƒiÂ&ü}°}rUg+1ùÎΤK›ëÇ£Ðüµ}zVÝ‰Ž‹¿ˆ‰fñ È$}PÑ×cAxù3YKÄÄlò„‚l/ÿÀ9,/X0,bzë]c6Ù{@ÿA>m­$‰"o¿l¦âq9‰Ÿl£ê²ÌŒ/¼ïÎÌJdH䀀ոñij'ò™$Im „¢È”AÎ ‰œ¼ó¼ÀÈÙA”ž.“©X—Ìp­‘év÷–àeƒ‚²/r!!és)ÈÆmNY:Ð5}g~<Ô.ºÿIî@VB#‘,Ñ|@…ü É3~#ÊCöæ? …]Ó»InÏ~úšÄ&Ð5XY†ÍÂ!÷Mv•FúôÎx0ºéÞ}¸CI‹åÂràIß—˜…¤qi0Ø0ýè¿`ˆJ|^µÞ°} °‡}Yâ½r”×Bñ2Éãç‘<Ô‚O(à™=ôL©bݽ=Þ²yµ·?æ™•í«¦ f’î;1 @¢öLíé9È äÍ o"‹9ë#-,ÆÊ#]–‹‹›-¼/8{…\ÊGž8öÀPy¿ð¸‰¬E/î<›œð:co8n"°u®ýŃÁö9*"­§z6T NÍ›š@: ^ûsýòfKξL,bÞ—G1“‰i_óÞŽ…ž™”½=Ÿ,›` H‡…A€¹A(Ï$KÁHÞ†ôéÙ©[ò¯ÊP²i(?‹$¹(ˆw›Øùò•Ä/üŽÇ‡oüøo€‰¬ŠÅ´•À/‰ôí*«“8,d}×ÉØµ“ܼ¦š1K„Yîpžn õB™ÄÇæçç5tb§°A`rãœh’˜†7¶ÀÊŒü'Û- ¨ØpDµH¶Zç`0y¡Ï&ËvR²Ô—·jÀRB¨§š“o ›ÂN«dü{ÂaˆÑaðHx7´íñݘ~Ô+޸¢­…@4)ÈHˆ'+çYŠ$ Y†y'Ä}Ä^`dË ®seC­äË$7øðr¯õØÀ|?é¨êY$ßÊèóÙÓü^ûœóse}|`AÀx¨t&1¾æz%sO,9vÌ ÓD@“©ª@@䵨Õ9B Ìí`§í¥3@4ª„¨e@ ÷ 5b“ZjpyHP†%Ç}H³…°I¬µ&—×d';c{dà²â+î µ_¬Î¶¼|jî[âe]µ7à'û:ÏïÜ%Ã6#X0?` †(Âäë9e|.ë#ˆ™Dî$ˆ4>·×rûÝÆ‡ÜV`·³ÔyÑA eÕ1›1²g¼½9 }çMb˜üû”š6©‚8Àæ®ð]˜&8ÿ‹ž›Ìá vÇ"¹@‚kö–ñ)ØîlÉÛkJò¹èp²™+0÷mÍ·Dkzië.(>ÅúdÒj#¥Âl½Ì‚%2ž$A4 ž}÷~a¾ñB då°æÚÀH´ ô²y8˜8l}øO~ 9mP ÀöÂS4ðy³½f‚meô!a­ämn¸¬—åO¤!1C«<Ûùvã×¼}߯ÈzÛâÓÆÃ«C÷-¾Ë#‹7…Câá_@˜³â'iŸ… fR«ë¨þ;÷-à$£Æ+sV2£ÀoÂ/ üÔú^’„ÌÜÂLf„}7nL ÕX _" q”<³øõ×´Wá[ßÅz‰dòìßýA4"–B§æÍ—LB¼Ë=ƒgD ‘<¥°ïz-Ï€AGÏMÞD•›,-}ȣ쇬ÏÀt2€œ€àä}¤´ÏŒÊH_D¾-õ÷–î5ƒ³úI­ `Ž àI$æ—6E‚»B`}þðhYÊsn£ Æí4mòô–W!2pÕëý1ô|ò½Lv`4¶>Ôc@ÿI*ø˜½Ž¨ƒžïð±H=_cí©_‰€ÔN'‚yÍ9<—»‚Y$ì±7ß‘SÌ.ö¼Õk‰`AÍ“4«=Ì|®DÒ:÷GÌ à‡ë1Å6"o ¤`œêY±¿Âb›B7Vïweb.R ø•ñLŸu?7‘ˆW$%m˜<@rÁ¦†ñ_¸1¢Aýø€ÊTÝ^òzÑÚ‹òt¡‚¬ŒbåˆÝÐ3,«Äà1—Dn^þx–v çÚ,Æé`X'jXñwC¸Ø4à.–ë’fTpЧ=Äé.%"uÖL)Br¬¤`,E 4vH“8 ž¤R +35è,>d6öµ€ÃkMyDîfØÆ6›äP¶ØöLè½Wa©¥Êž€º0Û¼*Lìõø ®ËÊAâ9$ Ì•`*Ûk}¶±4€a²hÁK3§'€“X@`ƒ…”(ýÿ¼,KÄ`ÏÏÿ<æcßl­ûõv¦ž“X ØÆ àáÒºX Dr7模CGØ|H›#@;kMÆ€wO©©Ÿ}¯˜× _üMëmØ„lËQ HÓñ¦c©#h̃ç™,s74ÆËKX†¬œjl¼:ÅÉh‘Ðov/°b1@Îê}ÉM@Ìû"UÒgë0•ÏÓ@' °£ÓŽå½-7ô6œûxÄLÈ-7û&+‰æO$/ÔóϹ&¯ †I3’Ó¶ QO_ÖCœ;¼a©iy^¶7«XÞ¸æ8·mrå‡e&Èp°CÒÊ#ñ81?P^Lþý¾ËZ»eAg3†r‚=ô•\Ño±a&L=ﲸ” ÷#PÝÐ:6<¸±Ô `áÙN“B'I2‚a@1Ì K÷öÈE ¬+ülKóõçòj*™òAî­±ô-ˆ_n++ø!–=ag!,…‰/ˆä¼×}±j;AÚTæÍ§•¤ ŽñÍ`íaïõ¬Ì;a~×¹'Ùð\{~Ódä~QÀËBb: Û*RÈysúEqõ0ž<ø 1Aš j Åç©ɘW#3Í q~ Ën ¶:`2D^ÐßT…¶dã2Ù¶ßZ«è#+Üpü½‰&t-ÏL£‡˜­_x ›q ü^(D¦Häðh´Z@,›^‡E°"Ž íËG0É^2CÛÞ}õ¸AëɳKóÖb;ßÄrˆŽà€)„¤B›šL1@)|®Vo” Ÿ/Q[#±°¤²ÕdÍÀ™lëPa6ä,Þ‰¨v …G«€|ÂŒçÒ€þŸAº¤ßò@xUÒ¯‡„Ã0kÑ7á’H ]‰ ¬‡HZdÏòPëŠqx‹—¡µï‚#™ Ð4OJÂ'!ÁxÅàOÓoñʼ€ Šdªâå}ã‡$TÝ»¼ä4þxì0¼­dóíJžª:àÀ+ØÃ º_ìß¾,ºù–5ÐyZõg­ÈßÊs§e ê‚'×’BÛk‘*Ê‹EÀ3GÆgE‹ñ6X‘€dâÓûåϘ=B¤Œ›ˆÌ3,þžOô¦KîB4c‚N*ÙGì{ÂLî7ÃÍ#»ÅÓƒÀ<“1&0œë@­Ø¢•§}·èoY­Ãï•a_¶ä€x‰d«Þ¡‚!Áà¯Øf\7ùÅ8?!_+3;Ù›ŸdåD+ÐÜe° Îa1±ä¹I*pjØv±¹X  €0K˜AÑ“i÷TŸÉþÀIrÀ°Ä—Ð{wÀ8¨å;@}™‚ܬN(C2Âø ŽxI {LžGOÿ¬8’7‚ ,$Eä+Õ0嫨pÁÃR¦'ó±Â32÷÷¯ý†•Y÷æ‚›ÉÅ3¶u’×ú4‚Íx }jëN'˜øcküE"ݼ–: \“Ÿ0¼D$õîÖF tÍ «…N.(~Žâxž»ð|<ÓH¿ °Nz‚óå—”s‰»8z¤!é@ËçõˆòMNîl¿9 cò7y¤M®ù;²ÀXy꘳n¾dXóÛÙµƒLpKÒ=‘íÀÖæM=Äo5÷[‚i¤N'ÛÞ`¨WìZKc$Ò7Ѐ5fÏd-&&Ë žÍWe?'?„mbTÁ:%«ëþ#«ŽlÌ#ÜðèPjð ‡U_ËL«…ê™pËv´x$¾Øô+d‚3K *Ǥy>5Y» Ùª (»7Q“¤7UÛ™ÌæµRš\»@jD¦ëñÊžw`|×úàQê—¡¹à”â̇jQLíl”{e­Laž·„õóôˆPö#ù[* ­Àëû ý©7ÿ%…Ò3lWaÄ"åð:) ¶ç-M÷Œ@FgÊzp-˜ºRÄz]<-<'€gûÃ|GQÿIÖº4vɘm3Þe*ñe{"6y]O¯Eùã”îˆâ'`2Í žÉ«Z—Âä_c‚ÿMÔŸƒW“Å– Ú‚Þ…¥¹Á˜—‡§òf™¥Ùdþñ&oÛªª¨¥º£LoûlÙ95Np09”™)¶! XáuËB¯aé`™ç±Ž!±ûHÑPpq¥Y£Ð!ÙW±ÌìŸxñ€Œj]6ô ܽ„êðý†x{ÒÖîLz*T¤Ë4þ˦E¢—Yÿ±½A.¯Å†ç˜Ùx= eµ®n;šD—ÕNŸEõQ$yžÄÈ;zª—ôH>_ûõíÝ4Q°»‰½&š°B à²$[lÁŠ4AC1#>¼^œñ#½WVXh§¨†˜t¾ùÔ½D,@ PÑ®².–×x[Û‘ìþXGkü]ùÐBòß|½G¹»Ás÷€ªT²Øì!˜DÙçQXxl%úÜÙß´pJ&g)ûµ=á Ö}³Ã-Bò³"ã"Ä;µÞáhöm«šÅÌÆGf/ÍûŸÇÂ÷ÆD¾dQ†mÆÇðâà×áv!#xÛÈ$¤¢·7­íéoD¤|vw¼…á%À’b!.w´ iÙkxj4‹WÍšPøÈôžYÙAÛlõò€·’c6MZ›öE°@²Oÿ}yPü1é}ˆÍÇç‘úXô€›[f7H³{r@¼Äמ‡xjêlÙ6UkÜÀ‚;yzÑ`w¼Ø}y¹¶ ¬Üà^{‹ ÂÞݹô«]$+`íüçŠÍ³ƒr/ඨÈЦ@v7®ˆO˜Imp&ØùÓòB¸ °pÜÕ+Aæty¡~N$Ão‡F¬ ÝcØÌ¼‚7ÂY„UˆïŒÓ°é£þ œ:HfØŠcQ=ᩱsµ¢•ïêÁ`‘iX9¢õô J¨á"¥Œ.s¿?`Üc¬b¡5ÙþŠå°÷¯u‹.mÊ´ñŒ—_‡¶ Ê|øw Á%@#2ûƒ50XšV&|Vl[5Æ 2×&ñ÷Ó=®b)WÞ¯¾$¯/=2ÝO¸)ylWOʾ\`ÂwÀ…¼´c 0èâ…ÉP<ÂkFaooÑ€*ýér`ÎG€Èyí˶Âón1ÁCü-{&%àÌ!Ÿ¯é èÍNïÞ6@ÕשqÑì ãd@v:]” éÉ!|fA™ÙÖƒlc­6Ü— aU½Œ”Q˜¶æxk [%ØìØ+¹u¸ùZp«}¿æQ{iAèc˜„æ[ÊÈL3x[ƈKG™§—/#ÙŽÙ …™p1fýµñ¨3à§ž¤î3ßkËFûâkùå Ân€¶W³/Ù’ð<= ±< œÿfOÑk¹–­}¢< Ë\Câ³É;Àvz ,ÌÊ›÷2`ÿƨ1uÏy‚s‰Ÿ22Ua¸tFBÆbIÚ_KáŸ+qü­ÊÔ³©’ï¹Xsð@x,sã­¶õkÕC= ñ‚½¬ žÜ2R&„hº%Ì/[±Pn¢€g¯üðw¶¹tL+È ¢GAö*ÖO››}é¬}ZêéúnYó"‰¯áV&[¸ wóÜòñ—?ÖCI˜,^>A)=*È)ÖIõq:›×þøìøX6‘{{þEsáÕN.ÔÙ‚tg¹Ë¡« °"@Ó¢Ò È‡v‚Iï5‚,mH³XEDM!¯bvÃmËŠ{à+W[x±Ä-K²)¨È#ät+]뺽%xÌðéËÒöÆKËó? Î&a‚ɉÙ.™&iͶ²EáÅ%youüóô Íî,‚1dz'Åž`.„%º{_ úœYÖ¢·û 3B`´èýö¨¼5A)ÜV†¥ßµˆt'ÔevUÚïÅ?“§Ä¬D–«'Oeç6S{ÂÇæVf7*É=€ÚÃV´ïÝÍdMØ»ÉîÛ{¬Îãvv H„Ê0Å®â'2‘éQ?äâŒZ ¤‘Õà"w#e½}’`¡5±à’rH½ê·6MÏö–Dn&šxÝ’ùx ô´¾òcm Tð4 ÙY5ë`Ii64y!rÛXôO?H9ð¶×ßf^%·guöÜaïžÕå/$îìE!óòïmlâÊ?|éPö*€]±ˆGn„©ÔXÑphY/ Ó$‰¯÷æ/mípûLÙßýLиoy¸<=ãds[ J«$ò˜6™ÈËôߊ-ï|g÷ê\݇Ñ[ÀdQÚ¼“z¡ù;KºâÍ£"h׫»Ó,šßÖ*zŠæ:hü®–?3 v°ñùèÿ±™zLv2Z‚m@‚®L„bôxÑ62ÞРŲ|]”™g‰^zö¸–…³G™©tà'ñž™dà ù·+ÚW_ïØ*^”­£šªd‰Á.ö9<‹Ác›’”ØTÕC¢†/‚­‰k Ðû‚þë7᳡œZŽýð‹i¬ÆÜá/wÍ©¤ /NÌ; @sÊÓ¤\¬(oûŒô”h×/¢k’N²Àmx«v`„O­EP8Éâï8¥Gz„7äEÓ ¹n¶z¶þ ³#²¹á°Ð‡0ü˜D‚1²ÙYáÑ.‰Ú>¿]›´Jˆun«å†ÄâøºÙ’|”íŠÃ^<½ð€¤ƒ¬Å¢ú,° ë"ðv„›Œ¬n†;²pY˜€ Ö²±†¨.:—ê$‰èCzžúdß‹¡}Ô0r?ë»›|äÈG§q!vx´Àlš´›ðR<i]+/Ë‘“á,ßùÕ?›©Ì)[¾m-kÖ Øy>ì™Û‚xêµà+õ#Ì2à̰ÉfCKíKº¬ë°Yá ™]Ñžq_ƒo´<¥üp¯¬›FÚìÈ's-e;<g‡†,+=÷­›åqm« ÙÙöê¾Ï<8 ”Àb|8°‹¡nØÍá%Ù'PYÀôlĬV."s¦¾¸UÀù$A°[Üb;½êî” (ð[® ãÙØ©DëA.¶ÐwÛh$ž`r·üuß^2ò…wîÞÍ=f ìºv-aX~±Ïá‹)eÞ,‹áõŽH¬ØÄ›í+‚éä×¶Êbi<±ÁŒ €9‹åoíú´’Âç”h="ظÌîÉ6Lïߊ;oœ¾ÐîÉv©aYB’¼Q±Î‚x<²DJ5'`_å7à@ž5Â…»Éý±VÖòdŠÄxª¥‘Q—ˆ ¥!ó¯+¸J<ñ¾-÷drùžŸÜ "ˆry…V¬Õ§I(µ¦¨`«šdùò®x=ͪsûM¼‡-ÒFVÖ[îbÁˆDéŽVÁ“¾Á‘/ûìáÙ8ìeE¼nö(“ɵÕªæ×c¹$“üs÷öT6ªÚü£WŽÀú‹)4~VŠSYÍsY(?¬°ùÿ±•󱎴3Ïå|÷Neæ x‘½Ù¨ÍT Ç‹,+˜-tc‰žµµì?+B¬€A¤xTl%\ân ëÛCc8P™>â0¦Z. Ì`ÌB—U|S !¬Íl[1vä¡à¬4E(Vai$¨Â%ÏãaS xÜýá}Þ²½uš/¼ÀË! Ú¹i|½µcÄVn CIB2C6˜ÉªÚI(fÞûj||$ËàÅQ´Þ8toöœñ³X‹i_ÝS¶Wáå1Xؘ&7~$ì´X±QXþ±‡ \ÏI¡¼:9Üo–‡Y­öÚæL‚¦Àz%(-se+HÊ‹"öjo–YÖ„¿®3ñýÉé%e¡O­É ô`ËHVËa.j¶±:û.«t!x³vz¹=>‚}Wëh]€,5ìªá F»·#ÜÈ´®w©‹¨@M±õ†\;˜ù‡ið ç>ðý"Ûº? ,;›yá¼ MÕlf+ Üø±šh0l¦j§9Á-rUx¯¼dr;Uëö€ÝkO2 Û‰<Ä`ÑC"˜Yl *3Ö“7èÁVº+À±Né¤EéÝóµÊm1ú®€O¯Vò²s‰ª&3tbt˜øÅËÛ«sGfô‰úÀû©öZ;c1·ï³Y[êGšª§·/5¯ïJVð¿›߃Z*Yñ)ßYÇ|²¼ŸÍÿZ×á•Ù!¾ñÜGY¡wU íy]"à=<  še(À L¦.Ödçƒü!|ð‚–€o1XÝE`l×WíeeµZ#@€ª[rõZk3™7”@Ìg{ êG¸åȰ½R¿ðµ5Ö~XÜMÎÁ¨ åAT·BPøyD}wˆþ‘…—üìÓ¶ ·¨ÞÃãf¯+¬„»é#ÐÚê;ÖØX,D <‰EÚs²ÉÅš¿!™·Íúì%-ä˜ù²"2}Qô&ñy’<¾ôÚL™  Íñ„i¦‹=ºj”Š­FÌÿJR§Y`N‚~ØzF{.>µQì g?B™Ô={Ý U(ÃÛÇòɆÿ=&“”iÝ\ej3Š€Y!Ö­-øÜ9Ïö:eH¥1¤£Î#æçµÏ€[9ˆÙdêæÉ k¶½ƒ˜Ö¿ËRø<6;þjÛ3§\P°¤Ï4à©™9)ƒU(Ó ›Lr` À[Õ>y ˜‹ŒÂŠ|=5"Ì,FŠu~+\ºû¼oªy—÷µÍsÃìÖóDEYèdLB°Ý‘Þ¢[Àj&Y‚ràÞ¬?!OAm•SŒKñÈ›m¿†d0× MÒˆÙÁÛ˃­ $˜ï ½!Ì·OA·xêjˆ‰Å¶Ç[‚[Ù#n}?¸Å-òéÀ£mSóru/´?Þ­XFf²5Þ{A¶kwªcÅ2(V1žÖôK °ø¶àäÁ›yä(ÀXêûY4Å&Õ,oz“Ì^|+!jê#æôá1y°º]‰J;Ù’J•!•8å)_àñ7ÓÌûË2ö>'žSü©NËMb(žÙÞ¡m¨Ëc‹½EO9L†`¼ËRÑsL¥mnÕÄ*¯šq³1B~¯(ù–QJßÅreÓT@šÊÍ@"Ç{t\g“½JÀ³œ¯AßßÎŽ¤j³M-+‚Ö»síSc¿;gÊl_ÏB[Ô¹`Ê ì9!«p4!:W² ‚ª÷X—S×ò6pz- ]îî"Td‹38áUšÍ²v›¾ëÎÆ^Ký_øžƒùÛ”LŒ(ËRH¾jLܶ©Þ¯j‹Ð,Å¡æ¾H¤s“omS…þWêÚ ÁWÚn‚o®ME{¡\ÐÙO,ºƒ•*Ä»«<·ž› Ƨd+MϹñGhΞW(y¦X L“¨LVPÈc˜ÏH?*8Ö ôûn6«&'9xX ¡ Þh)VM.í#ÍBvIçˆãÝ6ÚŽëT&B™§TŒ›Æöƒ¿gµýP.»Ur Ϋ¸ß';¹¬2b²+[I½¬®ù-mëràXP$Öì×aû£l«¬ø§É·^ƒBd²ÙÍKÉ*Âù>ö¶íÄO‹I™ÎšBƒy@ÀŠÅöPt.²³§Ž,×Rƒå[ DÄö2¾Ð-í`Nì?,Öœ‘>KËÈÄê+w¥ÖöB†#•:mÕßáeÉ{)¬ñ0a¿ŒhŸ'¿GžÊÏë '¦@ÃM¤±o…?ùTÐÕ¢O=«Þó©\MH,îItQæøº]Qû¶ ÚÍÔj¼2'$ÚvC"jGâùý”¤é–!«1ãeX\¾®…fÌRæ—'Ê­âÏš]¶x#˜X/ÏKYñÐmáK±° åc;çn-‘ÏÊB'ü=¶óæ•ÅY* ñÖ†BŸŠÙä+Ó"d“B*pg‚#“üouÑÈEÓÞtÅTy¼UØîþŸ¬ö‰O ¼ê½+0 6Úîë±ø,›…¢¡¤xtZÖ!‘Œ `JlN$‡o˪ÒÏ^a0‹ê2˜Ø‰YØý,r¯b©\ Ú¸6Y?Ó#‹%5gJBÖz]-]ï° Ë²RÅAc®ï×"½Ð<íµ»æ,{jlcz…qD{È=‘¼^ÇrÛôìU:–ØídÈÞo*\Nü„<LEl·ÏIdž×‰?€DCÅî‡%Ê °|lO¶­„]qÞB°z ÓJs_¶0!Ëðâ{(œ¼ÁÙö—z¦Ö8CbÅçÌÿ)‡˜,Zü0’õ*Ëî¶Éùf¼Ÿ"É6bæ™d2*:[Çàõ7 ¶(ÿ[¿«ñH‚ôõØô’Û¢#÷Á ë'íJÒ‚àÈÁàpfs!>5)ÍÒl]1„ Þ¦Ç°÷giZw:šHpàèÍÃ’ºw1zƒÇh°QÙÎ6­M¦t…ðÃoÞÉ+YÅÇùýŸ5Œ(ÈGeÈW}e!X=µçz^^ ˆàîéAµoЖÕÕÕcQeÌÕUdJ™ÍëþŸù?ø€ÿ4>à÷<þ~ê½ðãïµà¿ýÓ?ùŸ²ßñgþ`½óë?XïüÁzç)ëcÌÿl¿¿ëC~ßlçþ_Õjç„Ñÿ8›üç¾?Ê~¼õ6;°Ùùi³Ó‹"ö\6”tã‚(ÈaÅØ ú,Ql uáÿÇ«ŸógØJP@ØÊ!0ǬÅf€ýU=¾Uä¬4Ä4|®•Ž£Í>T#/ÃÒŒG‘Ð Ó¶8çÛ•Ù¼àÁût¥2ѹ¾ýöØöžàÜ2n›eS«åm¯† Òk/FÔª Úr)ó±8¾`ª s¼…W`(-T†=1gm¶dMHÕ-æeìôüö¼±'«é¦ÈDyR¸kúµ¨ }yÀËý àuH¶À»&†²½öûÀ..WP³4U©åGÖ°'UJ°„±?EåSÍÒ×¼‹¶®pyéeÓyVÑ´²D «ÊS âãû¼ S:Þáÿ Ìåjf)Ú¥¬5ˆ1Á¥|G›‡l’® ά¬( °¨²¿á,Œ£I‘-÷ÖzÓiCˆûòí슉ãÝþM(…wë,Ñ©c„&œ¢# ÓØ—#ðQjRc¿à“—eÚÂN)ôWohÇË×[˜![ö&±‹•\üá8Ytwã[®R`›üÏ£æxLú -?Ôå+ˆ ,Ae72dv>švåØ%¶ˆç|Ií$)}³v˜Niu/zˆ ÆßVòz|<ƒ #“‰„L*xõ×ê ÖºZH,ÃÆŽvÓýÚí S^­•Ó½5³™„ž`çŠBGù;·Ê6ˬHBíÊ–P5íG¯áUÎ ‹^zE­í¶ä#z±xåsµoÍ¥R‹ê×+ÏŠ%ݹyåó°B † ×ßýöx/K§ôa^Öí4Ëñ*²Zßs8¬ PVé“©µâ·Øø¨§uïïœñ™Wòþ$¶`…ŒFA¯g9Ki,°£¡ ÒI˜}ì¶ñ¦Û‰8úA¡Æà©ÏøÝVXî¶æå¨wÆö)B§õ½2†2ÿŠÔ笒ћ‰Lc¶Ù9Oå¢vO<öò„Óöƒ5ŠÕ ,korªE·[õéÅ,1fŠ®¶ì€Ð@¤¯­ei²)‹ÊÕ©Û“=íì­Y‚ô§&ÐdÍviº,Ü ä$ÅÃÌNOôù¨˜úÕGeU>‰Øö’TÞ<«:©Å^2˜¶U˜WW3(g/§'íc0~¹Ì½Ôö¹“YDFûußu,SnÛŒß4Ù¼MWl2{ö]³Ÿ¾ö«ÛòåÝÒ´ù!Ê´T,b>µÓò”{³wÊ¥¬¦ºvç¯7²×lĪ$0è?»p¾l¥*Úƒ>ëk·µŽõ®es&/¨ç¥ú¼Ó»&¡û ^yØ•ù³²·¯é¨ñX)Ýv‹‰ˆÄª'^ÔUt^˜l‘šŠm#ŸÇ%[+i­¬OìB‚“W +.3QzÛeEðM)•È¥¯ Aº%/À;Þ}]y¦öf/¬»fIGž¢[˜PùÛËÒæcóе¬žVemh6,•¨g5íµÝ½€ö@(-ò¢žózT¹ßW-Õ2ìE~òö ýÉË6I¯Ú¾EDµ°“ί¬eXHë)_Ÿ^v5ZX0 ‹ ,3»%û[>½b‹¬´= ·†5ú=q"Z·¨¯›ÕU, 6.;½bGÎ|“­Ú[§˜¾4u`º¬ó°ÆptH¨Y4öj%—æ)©`É퀗QáÃ’ÕÞõ]ñ¯ŽÞ+ÄÊaÖÛ9IómËìk»r4jŸ&Wh9~L¤Ð¦Õ_³PÒ¾ƒLê „}Ç-ØxÔÏÖš ؤ Œ÷×*_€ À,A£Õ¶¹°¬Ó±m3¹6厅:¸ƒàù6†ÇûîäT°Ï“¼mzÉLÞüY«­€ˆ†Ùµ‹TñŒ4Ü@ýȳÖ{´£ <šóí¥Êó)õ÷½j'Þ[3-Eؼ>-„fo"©Ç¶÷¥ Kßï[žïz–¨³äe¬¨]„ƒŒX@Iý|’¶"ïK`W =Ù´“Ö~m÷ÍÊÐé"éáó:ÃOö‚‹Lq®æ×)¢UË€Mi—ÐýL«ø­]cËó®Á¶[µž!4¾ 5¼]Ñù€m°²c{[ì6Ì€yO%è‚ÖØ…… œ Ú}¹AÄ^•µU¹=÷º„ú;)>Õó 9°bUÁ&Bmïο´Ž-¶õ²\ÏÆ7\J°DC7>‰‚âç¡‚NšŸÜ¶i³¿ûÒVH?˜¯x²/Ñ‘[g¹Ü÷m±HJUÛØÁN|®ýŸ*X À6˜LuBef¾É߃‰G· *“ðóa w–>Ý $¬•«Ö Æ[àU¸ÆA‚¯•ß6›hºb/òGl*ª•æ’S ”¨àð¡Þnÿ¬Í›¯féƒ}Û@È:ر˜c¨•ôjã¸S[»4Y  Ü_”•5ÒûúÀ’éý”ÍÎÚ¨Ùš}yYIΨžšd `9¤ZqÔxí ýçÇd`AÞ–«ÕŸšÃfÍÜFº ÝV…Ý^ng…*måÒƒ3ªnª€À´I¬z?O®õY7;QÌ#¸KüYc5KJUDèA£=m®tš¢V.ÉÆÞÏš’‡`*|Ï’‹Ýš|å+,ñ ?¥ÞA’R_^¬æøY² ¥J€˫ڣ‰Ô±Q°Û °¿Û¨Aü÷°c)'€à67ÔdÓ)°YŽydýŠŒ >ˆˆJ?ãˆ¤ŠŠgØ]…3²ó|–…:6(¬çj±L齧•§­^yAPŠ?Éð ¦m@éì­÷ótm‹îA§wˆEgO$OvV ëøí§úU9¨q»¸®›]T¦õ¶ú’M- xÏZ·²¦s•΢áʶЇ¬µmË ªì_¤ôn죱…•0é§åª:±n˜\;áxâ[½mÏU8î_Usþ²r°¨m´¤ ,¶&cô²Z¶ô³$n)¬vÏLÀ–¯ª)ÝôˆóÚÌÈ`£«´íåMH%ÍfÕb+<¢ØH5ÕзÄ*½wºnÐδ2´JžUUYdï)ùÆlÛì·dMr”âÕše­w¬Ù½¤9Âÿ¦QûV•÷`ѱ”·èÆ|duØŠfõ2|“|ü×`B[òŽxŸ΋ØâŸ®SÇ 60“é$«ÇQ¢P¹ôþÎjx“¼Ã²دe.W f3u:8!ÕXb-®bë¥åàŠD2ɶ/6¯&uZ¼ÀPªç¾/-áXlúÓ^u«úÓTµoO]jÕ¦RÜÕTdb§¾jÄ=Á@wk4§eY%uRW³z…Ï%¨Z;8aòSa{ö¢èØ’¶o]|i„ýÃ*KQ@`¹­ðÙÆ·[ ´TZÈV¶G4ÊÈIxp“œTacçhØh% ÉÞÀ’ àâúȲÀïGó1w'˜FûYà /a·nš·‚h¶5¨Ó‘:i†$0H9‰ŽÀaS9ÑÜ+ávÍðÚ=ÉÛ–êç†H‚Óv©®QœÖ¬¸ò4!ÆM†÷ìÓÌ7p"+‡À~ô¥hÅ bxJŸNCDÓ$ÇC$f Nýb5öj€‚2ìì°0ÿ=2YSo¶³²ì¦/3+5µ‰/°¾q\8î»]„Y¥tÙ0¬3%W‡RÆP@­&›§Q:Q²Œ†²´ZþheÚ­q8©áQ±b©œÏâI*HûKï½=ÎÉüó ~$øÀŸƒÅâÝ÷ºmk³oXþªÞ¾-ÄÒ ÜMžµ²zw·SN…M?A­M»7!N ´òÈ{´ÔƒH–‡uŽJiªÒªgðhT€Õ±çÑæŠ=^O&jÖÞ³hí}WQëLß³ÁÅe‰+à¸_Ë–jŸükê-:NÇï5£“_Õ´Ðý7*û¹ûNƒNkW-ŽxˆéJ¯mï¡¢ûàœK,{vȈC×d«×Áy¶Ü(mîcá%Yä<8O§,cõžçE&n¿¾Eš@åøÖm3¥ËÒ¡vÈNZ… •ý0àüø¼Hû¬ÛHK¬‰ÊZ¸f`1*GaØ^R‘½Ëú{®S¾Ú#µÙR¹›¬œ|^¡VÛ"LŬ©ö*A@X’ɨ¯”ö]OI튚Ò¼”/,C9OÛö$ÉE1õ÷Ó«M?Ñ’ÉDçØØ®ãž2¾ðÉÙ§Zr/> V7 íÑ\uKž^:s²È‚§~¾©×êö¬W±âWW˜¡GXk†awð³½ ÃêPQ¦õTp`[œì´§«.xJwe{4•jXŠ%ÃaíP"AÅœ¦U¢½½ØLÎX«£ì 'u½0çÅöÙ¢(BI{Û㘕8®›Z#©c}.-«¶ßC/‡Áʱê½åËâ,®ö°ýÕÂþÊWB õ,õˆH}ݬ@L·M(x›´5ÔÕ)}´ÖY’îhÉVÝG™ýÄò%^bµzÛñWíåÒƒ—ÍCêÊ^M3ÉG[`À£»Ä{ÝA–G?ÊÛÎÑìÔèN~fééW?ÄïzF¬užŽ«;àµT”˜° / ­€ª–Jò¯À²,N›}ÇÕUz¸Õ§š[+£"ð‰lÅÎVvˆièŠê‚#€;_‰ìÙ~båb · e« ûF¶ç+w·LÙáo«ú2î~jËzíð†h™ëMJTjÿˆ=Glš}¨à<Š‹:¾“0­mvŽ« 6»Da©G 0_ mP÷©¬$.êõ“ž[¡âØÍÇd`Á«V™&Û‘”˜¼JQúòè]æAõ†Iºª€MkÝú±Ù=Ìmú¸onÙ7*Ê®Ôãì…—d;}DIxm¶ ¯>–fiþÉ‚þdeÉ?µîgö„Ú+›/Û)z|±’Ùø†¢ £¦\ÚɾDɧ?GOÔ²)Ïْ„ì3¥=ôóöëÜõ,…°|]PâµGÅßÖì1ª¾@6‘}âyakW6ö¤äÛ¯cí¸ÎQÚœÜÊíYˆÚtk¶!ó»ÉuäT¿ñé¹2KS¢-ÐQ3©"Dܵ*uª‘ È=-YQ<ÖZ+ òØnå¢a›åi˜cñ§äã§2™š…ªðH6„}ðH°ž:CÀ,àçµ<$ËÃX äüô J*pe¡>Gp›p³<5ŽG¶ú¹«¦ÛÞÔyÞv):£Ø¡dç®llËboû Ç´Ü\U÷µ‚•ÉóÄ•ÕaïÉ®;òÅmUíÈç¬5Xø …'ž*"6,iOÕÐ`«¤Õhwæu‘\}žÝ"©Î¡²d'™eÔð? ©†®o¹È¹‡ò˜#ž i–D`›Çâ9—…pÚ6³¢aº>]+i›»­û”´ý–¬x¿žžŸ;ò>XÝ"ÊÔwðõ&q7¿ém9T6g÷[­þâw)&‡÷Îü˜V\„aÈí#kT/âS˜+ÁîW†Ò|ØNͽ‰5ï¸RSÊ(˜niú°Šåµ·Í,Ÿ½EÇ£g*þfÖ¸âgCÇ©=¶®š[ø-¥¶!l<Þ0gg:l[… õ–¢C…~Iëjmð´*&"¿¶yÏñ¼ºíÝ>A۸ŵ’ÜN€ª¦ °M§ÐTÕc Ûcì &‡8ò¶÷¹Ñ¶0”úªy—ÏÙ]âô3^ö5®‡ˆµ¶­7RÒ«vÉÆÙä¶á™>˜4e ßSý¨ª {°¶pËã+K¿©ùaÓmb U_f&ûGƒb²•–§c"¨Ž£ªeñPÁöŠ/@ã“§–9ÐxoÏÀKÞ±<‰œã ðÖ ø<ŸªQVTå}–ÉLÜdRŠuÈï¾ÆóðjHÍØGzŒv­D„» 6Ù>裚 g­áTwÄHhÔÌÖû5Â;öÖªÚ…0 ÿÀkr^,z`‹*Tê²K›ŒUƒr–”·÷”ÄýéþqY“ü#MŤjÞ`°[ÖÏÁõb¬ÊÞv"ÃÜXEJæ³ÒÓÕ„Ð4&¯n-6ù‘µñj ðxZãfÐ~ ¬—\.v™‚ ïã‹ÉbOcøû¥iÈDÆex? J6]©ÊÔõº‰ÅÞà¢×˜w®dV‚εÉÃ3Óå…¯–¿ÚZ²Ü™'VϾ×^}}U"bÒ]ü<$sß® ˜BkßÏ–útTïeïç}œ=‘Š¡Üïz8´Nç8>öjYÀ ±4rTS×öÍn/3ì_´HÀöÒ%>YÄÑ4C±zø}<ß!ò€õ¦ç½h#?ÇQ¬2¯ª–€¶ )žËÅF#•e‹7645y5”ªŠ Æyß$¢±w;í Aw?r»ü@cq'èb@´Ðb ¬ÌrOQXuä N`-V‰æ­1ä ¤)9b{2KK–úu XÆr5Ù?Y£O“+)Û.ü©4ƒ¼´‰úÑ©œi†p°AµVQ¶<+“W`P¾´ç 0¡¤÷ Ru®ÄÒØ¥{‡¢WÐŽ#a•°hšãTݽƒž¯ó¼Þ%£mÕ’’Pn*­ªxæéLñ˜Ç¾€j^Š_Mèƒ $½½?E²À斱㽤áa•sòK±•óÉs–”¨¬ývé"Už®íJ³xv ýÍÚvUOÛÉ@lEÏ?M{Cñ=“Û2õ)ªãóä¢(ê5ÁŸó¶¥Ë,/âħÇ5ªS,ïUÿ§F±Öœº­M6Õ —T÷àJÀ‘Fൠ™;Êm]jŒgQýH—£s)zN |&â·—¥€o½H;„ÂáPzЇ=¯X\”í½QÐ$xùþÙ²¿&¶ ëí»\Ö:éÝ( S=ukoÜ<Ÿ¿-Ù<°%¶ø6‹3ÀûŒ:ë^×5¨/»™~£F9ý4 Á§Þì„–ãdp®p¼bÈøkwåÍQÃ`] Lä:È>&4Ý–Š-îeNU%Ìð9OäæR¤õÓץ́z™Ò7Ðí¦P¬FiÚßz’ýå9’Šªš¦´ Âˆ&4S¥éMp¤^ÞémMAÛ ÷×ÃÌe»xQ£ Îð„–Å0ÍÁA­Yx°g)W‰ U ]Á æ°‡ˆJ¬!Þ°òŸ6 ‹[ÛP¥Æ,¤dð¦Ør㡜ÊRjΈ‰ÕeX³õ©Fœ p:3¨¾œŸÆfº“×Nû鄬ӎrëC´uUÐêaõȣ͟‚ÿúìX¹Èc‰/e³ªw–ìOWóÏn+Æ+õy+4²µ(¨ºX+oè6 e [=2»¬x:ÞÁS®ïö Ù’FBÁ M·yH‡jŸzA~6´A§tòz3Á„›«†u ¨——]f¡¸Dµ¬k{‡â}Zã]°²Ž×ëYV„ÉváÏÏ!½v‹ëŠúZ, g¦>¾%ФtPµ“è3!÷U±!’¤çT cÁIõìôm÷jô†¦h¡ziu&Õ9•›‰ s5µ'‚½`Ä~Yu\[=µ9â“=1Ò<šF:Ú†w¢D-[Íy.¯Ç‹î*ÊâˆöHzìd8‘LªþŒ\YyÈxä­KYHÚ{>rȶµÅPKnyFæ} yË¥ìâͤáîÑÙËÞ`«H,)–féqƒÖ’'VäMq0/~²Z’üØ2kžÛå*ÿÕ¨ŽÍû–·öØ®(\ç7ÚÛ¨d×í½¹"ðOŽç %ªÍmehüØ f¢ªéA¥36ÅÝ›Î×’¥H^ë‹#¸ÄeÛøX°ØÎIsJ¯ž­(Ö9‡bûÅ8Ü£j4¾°;JY)ö.{B²]w¿ã%µÄ7n-ã¬DÞï`< Y‘jš{ÙPZW¶aX/¥BÝk&>²ì`*àö¼æÒýl÷JQ€?œ«f©/›¸ß•$›úY› ´g?†ÔñúéËê]•Es,º¬&AØ<>Á×ä1ˆ·¿!nÞs[pbW pÀ˜ ¨\3D¶!ZÀÍ#hÂÆª|ØàDðŒñ/igÖzúÚ½Ã{/µ´ŽÐeò%•ª§¨š eZî3åd•×øâ·Wò+v/0·PW;;;4•)%&‹}X­FÆlŸa¶'±…ž÷,dr’ªqÍM—.¥¡YÆczL8Še’–Áž ÚPÿ9‰[ÀúÙ–‡u ý˜xr¿¡%çN3³P£Æì»G– &Àµ¤îF|ã£uð[Ãu¥q.ƒü‰åÞ 34v>ܱÝAIÓd{çO§]f¤ª´>»Ûޏj’âšWSÏ‹êÉ#9­&Ñhu~ªôÙ‡¿¬qN\‰”K(yƒôö†ƒ“T°õrÑη¨@EGTà±Ð1«9!û˜WW û¨/•еçèÕÄ“ÿcæ,–jX{ `§ì.÷¼…¹Z> î`ö¢Jÿ7©´ÃNNÍ,ôKß›(ÛèŸât€eF|“+¥Ó5_¯V,*áéÿ2x_¨ç<›D¡âs5”KÁÈÒÛ#‚Nœ´Ìõû.¯ü;ð€MoÕ?ŸáY“|qö³™^ëßR/¨yÙ®YX¯‡Zãa;ß á2©„©Ò:™كų=Ç m‹×âïÈÞ9xcØø¥#-Yu›í¬»Šžs`Šuû¨°W~…¬™¸ÖŠ8ó«œòŽºà½_óžÉµëŠÕQ è\§ñÀ=°ºZã“UGóÔûÑ—º+ˆ 󼇂5*{òÉ™MÉrÛ¸#Oêzbd"=“üììùløšöEJÑ Âõ¾…‡‹Q-ÁȆ¬zÇœDÒ÷9B´úÞ¢f«5_¯Ü8Ó´Æ[Öæy³õyò b°„ý%SC©F?*nDS«3o½Ü!´ÐÏÚŸK ðS˜Í@)îk½3[—|ݬ#dåÊ[BÕbxÊ_ÿgPob"Ÿ¬E¹VÏÆôºdè/jutû;!ëˆiÏ‹l×Ù¹o±«ë UeíGûUÅnE¨Ÿ@ð#}»FÊwÞIJTÇu®iý×c¥ïc_›…Ì`áã:oÁL$üiÕJ¼·àEí]û(>Èõq ç·ŽL·ÚȺ¯7ÅU¢"ÎL‹G(o]ê ”(dŒIÛ€£pþ²©ˆö_÷‚öæ7á Œ>¦ŒÏ6”*Ó.Eñ&ù»kÿB깳ЦÖìâa3Ôäfm_±ÔEq®ªE13äq Ë^%4â ¯3é¶LâvKî¡Û;€NTæÉù~W–ÍBŒs1² ú¥Æœ^E¿2/À.ÙC§­7صܞ«ÄBT~–­Þ­óM7FpVëæÿnƒIO1M;ÙðÆ­…°A£ˆïöúP«êqònú¥=·1zúJè´á)uSdmÊz–ñÍŠb¤^t?ñœ l‹»pËÑh$tlÖ‡ÅZ\1›TÓ$U¢oòœ ÖU‰\Déh6àê å´Žh÷ž—ª(Án?Ý@ ‚oWzù1ð±ê’ƒ_|¿ÔÖš' É‹ð V ƒg”gÓïG‘©ª¸)*2Ô‚ŸË ‚cå¶Ãd­ýi_Gà‘ªf½$,=RáÏâ·ã7 "'z²wkw>mú¶ w˜*/K:ƒ.˜:Wf4Um+ŽøÞήƒ8jA­ìòg}¯(’uaÈJ×xØ×–MÿÁ'Ù]È®Qofª1NU†™Ÿf™<šåD‹A.çöÿõôBû¿cÝój/j7ç|ÑŠ÷¼ÿT¯UB¬hRRγ`2 1>=Þݶ½Øv¦vïäòS~*­–šhúa ²PÞF86Û­×ì{í:§ÖžY­ÍÎeÓRšê=‘êœ>€ð²Û™xŸ#•£G Êùì© oñ‡,™&vÁ`C²˜Ûs-–‰‰M_@Û ²0Õ^¹ikª¤cs÷b’Éó@¨K¸cÝÐÕ\´"€¬ ׫úIë"¸ó{;h·"Mð¿ìZ†ÛÄxå\,â·§Pߨ#ó1øÙWû5‘º“"Aeݨ¹M±D¯añÅä (ÙÞ šMÌ­Ýö;¿G¤]±Í‘H¥Vg{à”rJznìMÕIâ[P‚]°`_M®gÔÄôÙ ¦P×Z1V`Õ]¡õç<Òïv>³zzóÓMMÖ@×ø<0Ú[ÞPÓS ˆ¬Iæ–ç~6+@ybmk6H0ëË1âw5Ô\ÇétˆÉ*XkCçsØAõ,—H#dl-þô¹59du¬ûR§”|Cn"°ßV­+Ù«˜u’vªÀß½»†>§d»žŽ½üdðÉZï^³ë›7€‡6”n^jÛN»ïÜu€e¢š"Ýv]°KBI  TÔ·uVÍæJø°-h³&]ßà¥SS 49WÎ&>èÏÂú5yµoL;’s¥¬`¼µü…UÁRäCðØCU-S°TâMWÔ‘§G•µº2¨fłƨлl&Úvé²+¹ˆwL(ÆC¥ÁKéU6£ Ól óK˜˜JZäü¸¶%î°ýð%w&ü³•_´|iæÜ‰¥ÛëûQ Š…÷®.Y"ëµ.TEm@ 7qo¸žõ‡g!%2Uð®¼;Ñu„÷!æ<öô«Ï9ÆÊfp ë,áÍȰòó{²”͵ö‰ò˜l¬¦£ºveú^@M€tͺrOO,]ðÖ?êEmÕìI×í|üT m–Y¨aª:ê£Î›V0$&Cð®ÁRQ¥¹â\ŸwÈÛª°ûÕ`ÈæT¯À¼ÙÜ06¬¯ú6‰Ð©Àz»1¼_Õ4‡zÙ vÝÁÎá{{lÎÜ÷ÛÎh,SÖ Sß5è°b]»*ü(Ø™¾N;\’ÛyžBí9«YÚÕ,sfƘ ÈI^ńʢ`\™@—¶[’G[JP 1oy¤®1¼¿[¶©qUŸsüxãžI!¨²Ìx åàYÁ `Îû(¥ÇÅ·ÚÞÔà•3Ô´[Gú~ÇxW`©Sðz0bD#ý@‡lCVŸ·*éæ=ËÚW ÆË‰Š½ÌšUk†Ø-aÈ3;ĸ$Úµ–Ä[(Ùßl³=V2ÊnÛü~ox#@ÏKÍá™ñ†¯èr¶½{#ª?£XdìÕ”•0øs„ç•«pÆk¶Þ>´=N[öµYâÖÌ$$¶Íö±dj­`épbÙiï©&x²£š3coµ$V ù¯~„·£tC G*ÌM ÿI€ùô(}ìFÅ®ßD0Ó‚fk6¤'‹Ë3·áß@gˆìKAR9û«Pó¶p˜xïh#±ÿ³ð°¨”º˜áVA ª©°­“ Ó,³-|Þ×é?³gh^Øð?ïÿàï}WØH:íŸcYR cÐ'Ìîz/NÈ VsÂ[³Í¸v¦àõ`9™å‹ŽvöæN/xFvìþ,‚íA6ÍÏ `GNn$)õzþQ±ñØmxY¹ÔÁ`O‚­!ݤަ=«²Õ×:å/ŸÀºÏ“þ)_ç •ŸU'¾e—äòvþ~HJîªÜ¯. ±·WÕ(fSî…»“…ŒãÔrد†t.·<ÁÖeÀpɽˆ²ú@`Óìôˆ§sa¶BØé[ÇSÀ4[‰®»y ç Érò^ÉMêÊvyéê)(<÷ôZ©ncÛò#Ñ{o_¬yfoè@ä&¹¾Ã^z•mŽX ­qï÷€ ™¨ÏU¦|F•šºp"6».Û êx4 ¶Yðþض?½_ïô–1Z‡ˆÖŸÕ³<ada{¤fò»!¡—uÎ6K¼rqV<à¢YØÒì—•™H;’Н,YÈðm‰Z/Dv(N¥µ#—Nb7i åE‘άüxÓ)±œãm 'šN’MSòÑ©-ô­nÔi ¼Æã0å%yÒòn퓼ùˆ0V*¨Á«p¸uO`Ñ€Pl‚ýT,“¥Ÿ,¾ºðå¦M5ëmQP; !‚¤AmÙ[ßHg_Ä)(;ÕÐ{[a­aÔó`h?·^¬Èlu½V>•zi8§CŽV‰dÖÀN“v»¹DØ·^4¶ÐQç¶ ”Wõ&±·¦˜]l­W×|S¯D½¿Æ-•ö_8ÕëfôÖ™åV+é~}›ô0+ Šur Êz·}{ä÷iǶKèù/ž™A𬩱¥²»³G5·¾Û®¯Å¦W¹¯ q†½ÕO»£}¢¢)ñ™&õRÁý˜€…jdtpIñ&h?5šõ=×€ £k+ÊjPl“9éü´¬¾-4ÖC1§È€¯/=RÓtƒÍyÚ"´ xŽ!¤º3²À1²R-ÝŠë]! )I1eÜàXì=õm°~'(èó\ëœ6¨K†síÛeÀ;Ú+ƒpO¶Àú²Ý³<¬²»š%ßÕ„Úï:‚ÍY/«¦Ù¤&é?♕4OòRËû¤GÏ eA/É#%ÍEmÍWïÚ¬|žóHU3‰­.“Ù³T>uígë; L·M¡Ñ“dË¢/ELŸ`G’¹Š ÓkÓ©‰E–vÒì=d×v—@âÞÄhLÕe,ªç|¿e¦¦­þÎ?5‡-*MæUÞÒBqc{ãㆠ_êͰ‡X:€Ð–+YØj@磡x¶7–LʺÖÈ*ëRDÊ¿=ŒSðWÿBökVBj. 1Ð^ fÙ9b‹#ˆÝŽBóܬû"™IÝb'Vˆd0Æ«X vËû¬êÞ ™¡Z˧0Ô·3ðž(jÿýÕž”÷´®±‹žQxšÅNÎVS; زÖt¡o £xA|}uG±áïå9¾T•ðu«5'DUŽ‹½÷Àn–§5Y¼Î¿ñ¬"¤+{X±¼;Ua²êù ûE¹ {¹=óÖƒ èÚ­›–ÔƒæNPW6nxôHö6GkÜx<†Ï Ô°è9=ôM§½ùs=Ú¦F}O;6½íõ®ô_%¹VðxÆ4ˆ|[¨÷y—–•Å–âÏÓ9jÇjhXe!õ­vð\Ÿ&·å-r&k÷Yª|wdùóÞúëUn[†{6¼œS~p¬#6›…ã°ìp†õnžëi°Ûº6“Q«Þ;¾ˆ u¿Ù ´ßù;u¿ (gƒ¹ÍÛlm¶µ½%\ÚõèU•ždV,¦;¯í ºÆ£àã²IL{‚@ž„Fim1ï@uT~.“%†®¶^0<Œ“êu9_µ*ík‹ª”@ü[§€œð@™i€Ÿ|Ò?+l ^Ü;‚¦ …êdU9•£úcCÃ-³”ÃÏ~‡a˜ð‰ÞšÊZ*3uß*c/H+˜ªÙþnÈ´]$k  ¢%y°-gÉŠ¡Z é1b *RH?¶sw™ë2òáT1dô£^ºÒ:–ƒE  1.6©u,ñ ¨ SºØŠ½÷ûøùî\õ(7›æKOåô’îTÛ²=òüõª>B_Mm÷n/©? I"vM0¯O[UeKä2+,¾*ekHÃÓ<3NRëRù¿ÆÖûé3{`NRù¯"Ë9\ ž¡vy˜åaNµZغº-õÕïøS{ti U¡àø,V´Ëy+ªÏ£L}ÊÀÑ"ò ࣠Ö×QùOåä[ß<»qÛ| -cIŒ¬°µtÏwJv¯h5 ‘uXŸ´aè÷§4¿%€‘òØ\iõÂ.n x ¦ç~.²,[ñ¸ÎDá´—â¼`dQÜÚß²!g?·OÅùÚÿN¶öè­– Ô—˜kž“úÛû­¦ÎŸ2Aú{3¥$תR<Ç^{u™Œ­ÎÃ>.ÍÚØ:Ó¼6o…âéÕe,½p0ù–ê0°°lßóz„˜µÕ°™IVÀð0òU·$à1Ô+Z-pbªÚ®G+ÃŽ(K·X3k¤„Ëc+¶ËùLÒrp ÈÝÆ¶Pß÷V*²fÚ±¥³u*{â}^óòþ.™ˆTºòìOƒu¯ú=Ö¾ÕµZ™À†ÕCˆÂbÔ‚éëWÝA±ÖöªR+ %¹¤Ü‰DxϸÁG;ª}³Ž¹¼·Ñ``­'õ|†;¶ô©%ÜDZ3Ùù6Ï# ô…¹¶ g·_„h†ëÀC”ã¸ez²Uª·…Ád¬¼Œ&ÖÞ f-@” e…“mµ Õ!ç4ÌÁ™oчÉN8YÙý|ëÃÒN-d°[ ù¤n.Ï‘n”.EV6ëÅû¼Òd€ öÛ£ Ft S±ö8y ¶‹9öSÀoÓ®7Ê"iÑ@Î`ß XÌÁ'˜|ì«P¢½ÅŒá­N‡GÒŒìÔƒ™¥rñá6äz¼³ÆÑŒƒœe‡›÷ aä› ¶>­Ïʺ3R+¨Ë´\*¿ddÖ[V±ØòjP(«³z¤Vó&ö˜·¶‹pwuUWÚ.^zz@‘éÊW4U ôKëÕUXÍbb½G~­Ñ°~ôU=Oçš] HÕnÂû‘ˆ$+igÈú6+÷åÒñ"ó}¼š{f”Æä¡°ûȜǥ@œ•ÿy5'9·ÐS§^b(Aj¿¿ÛŠÊ¼>DsÆÎxv¸<†ð†ßÒ÷`Búë•®Tå§dóùÄôÌñÖô ÎsÛ§|A p‹õ_0HŽÚP²8ICÁ–øD‘K‚ªu<ÿñó9æB¹^(4K“Ïåx|ÊŠîזΰQæ1$®ž8+O»…âšñôÝeïÊ,~è<@ðehÔ´þêc¨² 3O“ :§þãÖ]’WH6ב«² K> ¨ ¸Øˆº“H[uƒñâ¨\JÉäR-SÐÇóʇ¦{·¨ìšÃB€ä1ÆP2e Õ°?Ð{^¨€zY¯{¸Jµ×`۪秕鷪&Àò‚Lÿ¨ýHi+4—ÍПêiýêðçøÃü{”Ìüÿóúw:“œ¿ùAÎø#B)¿ôÏ~ý»?ýÕßüÂÿí§ùÄ?ú½ø·=Kþñoóã¿ø«?ýâPþQ¨ÿ辦EâQmÝ–ç «ôy¢7CÞBlkÕY’%ÙßÓöcñ6k´éžýé‹ 7³'iô¥µ·u‡ûøA¾G¤È¬AQ `ç¤ÍŸ-g &‚UÔv[“§Ñf»>Ý+”%½ðeHa±Í$Íí°¿ ß{z§ekO¾gö¬w;q*#†àÝÁVë|eTã×2o¦TrŒðܘ^xÄÎ-*JgÏ…âÓöiC9¶šðšõµõZÑ×ÕVݧÃ\ÙÊ(|v´>”¨:’•ºŸvl{¾›½p{ë:—=_ͳ8¯öpW8/ÝËIYµR«fâ¬ÀÊtãÕš-@¾S²ÿÞ&æS ³=Öf7†åñæâiËùVL9Û÷¶³VÝU ò(s.o.”¦¯–бK;oÆö•~*ÄáCUbìúan ðÂË_ù®çÑ: „Ù Y#ÔK¿Ö_1ÇðÍ‚³·ÉbÃb/ðdz*˜§]1Nm€9Ã€ÖØßݼPúí³¡O…^6Iøïùz-ÃN»?P¿BhRëbJ\xæñ²f©Ú@óÚ¼Ù÷³ÿ+*wù.ÏQoå²áç¯_ëaÁË.öËGà‚—#Qœ ÷S<9ÿô-VÉuª=©bá¾3T[r¾â†îÎç(¾÷Àh{äÌ%®T+´ÊŸ\EÄ´ï‰üf2ªU¾(€µôò¼:i =vŸY‹Mš5X~ÃîœE! g­\-,T‚?©I|UÍŒ8¸ò¶·øôçZ.±†tq58j“¤ÎKÄ[U6dhÙXÁ<»‹J‘âoö$*gKÓ=±õO1Éû%?ÜvÔ*¶‹s0^[ŸÇ™Ö–J±/z©›õ´Ý¯:í¯"óc>^(Øþ[HˆÃþÞ.¢q®)I8ŠFàSõ\uw¢m 䤯ÙÖWÖ é²Qwû4~ß—å†OͶ¤ñìß[{"ùn/N¢´÷Ð_| @¸÷«‘÷6\JÜ>/QPÅü¾€[a%7™þµÁOÕ¦Ú—®jj܉m¬ `Ë^áâëû>ÖäDµ#Vèvìszxû`m¼&=ÞQ?ZiÔ7j`²ì²Vr>«ó´ÖÎî5 U¡V]¶z¨V‹§þÉÒÝvÛ# äúnìIDeå%ß$Ôö2!X¬>Øø>OTd+j­KL‘¾»ÕæÙ})w¤ö©3…mÍæ”*еA=?îLû1±"¦ÔOmà˜"›À™ÅV½é”çïêñe ŽnÕkóÃÊ}Õ;gslµâOs/¹fÜm]l‰OÏ6k]YdíQÉ—íb3²÷«ñ9¡„è²c»3ôÄ®hT½ºFÒÁ:ýׯ°Tƒ´$“N,ÝneÆšiöV¶›-³KøèKuéôÜ*µ°š‹oŠ•zý ˆ<ì26n{A}S`ßÒS¼ñU™Ò{Ù×Ëíp± >[a½¡T“y(•”Rû‚×_â[ò¶¸ëϧÔ@½ªH›,‰‰oWÉnžèû‹§ŠGß=¥ T<Žr»=-oÐoáÜ`óx¼›y…¬þsK•o™@ÄäéíZ'vm€ÏªKVCÇÂ/‰&H–Q­ß¥ÙŒKòµ­ö´¡{«Ç’fe³ëIÐÏ´H¸eq²•£$?¶Díò$Z°U®SåƒdI«=0÷m•-ƒ´Úç’$;TÛén0[clGc>Ϲ_‘¶wÕwá ]ö}°XžQŸ%E^Ù:€MÈÍk/è.¢GÚ %RH[ûT\-׉t÷ÂJåw5o —/ö#Ú®ÉE»¯‰^d õÆÕpU-˜Yš–+°ý¬V Ê1Bü\²õŽÏ²æ ‚¾Im"Rb\Vä'+v¯åÕRuØÛ `ÒTNÿvèUTì8bá÷Å67UÀT Œ¿:Sª9וã!•ƒž?û½HnÄxÒ±—'ýn,øé…½²dÁÖÙªË|Sª«æw߬‹üYüÊ7óµX•ò~I#w¢òz,±ª ³‘U­½*5Û¯uDólL¼GãÓ³ÚµK9~b@h?àĬyH!¡xÑ¢{äcq÷ž~ÔÂËí V~Nï©UêÌ”.S7¹]Y};ßÖ=¿Áümœv3\Õ›t’èKZyd^ÀFÐ64îbÁY®(_y—ý£¶ÕhW^(®b+u*ŸyÁŸz,y|Ó…ÍÀp‘BTëƒ7¿ê i²e\°¦“<î®? 5eÀµw%¶Y4r"¿\bµªÓ¦dÖ£¦ 7œúHßC´n°Ì­¶¸Û êjÔCà+fŒÂ,teµ?;zC?ò¦ihƒ0ŸSý­%èP+ šÖ;ßæÑ"|ÔÑïXœnp e‰·gpãeq$!ð™Â~I aGý æT‹rŸ_ëˆëÚ?RR¥šd»u«SoLóD}WAPïw5‹éÅRÐýÙY/§hgœ›âU0·1 |Z#H¬‡†Zï—Ó¹¨õ–4[¹å‰ç¨“…Äž\ª ¾ž“@¥‡Ê·ýGs¿‡eб8½ãµ°„ܦqƒ¥$ðKýžGÓøLdä¯)ŽAÞéHz«ŸGPYÊ»‚BÂéb¥ßÏݾ‡iÙŒýÁ¡‰àž²»Ì’,€u…®Ì S,r>í·e›§Å»W_¹úÙ„BØzlÕ\¢+Âz?|‹Xgà ˆz'ÏwÜvK'$JÅ+bÚ”i õˆÍ²>ø²=±Y®´­t“Xˆ\Ò¨ô¡í1,™iRjV_&ýîD:šl¦àËX”юL…Éá· pRwõ%ÉÖ‘‘ 0Ýæ*†æØÎƒî–´×f½ÄXÜ;Ù_`âËÄÎÛ8Ñm/bÕL%–!ãYÿ¥‘­‡•ö±ZÀuO·K¶|,ë€K”¢§H 9öö÷]eX:¾ ®•…  …+4`ZnjŸ”Ó£¼»œeT÷EÔÌ´¥¬ŽìcWÂNkœ0J4BÞИ”ãt“%áÜp‘ ÇåYY-#\Ó¼ªùAUÀ]ª˜€Ú­¬J´Ù·žê©É*cAÙÒÊìæU¶V1H ÒÓšEý0õlm`רÌ"0LѱÍNé¾}¼ÊÁJ5Ý»ôU#k‡¦™·e=Ûžõj¡$ˆöñ hyPm_ç9y`£ó·Ó–ºÜÚ©\<¨%khžP¬('ó • Ó ÿÀ<»PÙ VÀCÚ§0õãI´‘7ÕȨw½9îlÃÐGÔšöe‘1TòŠtQ+ï­·ïW¯­èÊ›í§p34›œ´2QÞ¯[ôÚ˜W<©kÚÄèù}n¤wËKn¼Á†‹OaEluV&UÇ ö¦r#‰¯@:ŠÉY±¥çAQ¡Œ¹×é’œ%~ºe­£'ï¨)„=®R¦m¤3WÐQ‹ú18ÄOV~&qÀù“ \h™…Eì& xËÞ_jŠ1¼=ÙE[B]£ ãÛvÄWžkí_yçžpöïš~G§ 0¸;j·B@kö#Î2“0¶v즤DŽyz¥ÀfÖa‘¶ßn‡½ªµþÃëxb¢v/˜ú-¨ÍûEHcÍýF«§ `Û¸ÂÑÙÌ–™EŽ=u¼¿ð¹ä–œiÚD/1o(ÃN§P°Cb7žm­Y›¥ÒÉ+~OÐù@ÆÒ¹ðѧâV•Óþ(5£àä4xÅÄÖtÚnŽ×õYà@6RWò¶£*+\ñ©O Y*¦²Âv´ò,Ú:Ôo°³ümz¿òÔ˜åzMsdáj;‡h&Ú»ÎlOØîeyØYÏ+}¤‘0¯ Ò>11ªÎ‘¼Î(äEí•ôBvø)Ÿj+_¬–2”€òFûr„5m>G!>3Bÿªõ@Ÿ\YЍßî!šKIJ¡}áN$«×’zPc .=³– Lá{š®ìbE«-ýTíQù˜O‚/0 »>‰ªs1oË{öðæERçZ´Ï³aHI†?Ê×-Xôòny©À¾—V)ÐM8‹ Gã&(P ÷R›ÃæŠ >+ýñŠ7ÙVÁ^ì–ÝO)€·ô6;,]â-ÄRYÜö(’ú« ÎÐ(ôVñk5n °6¾Ï†G{~×wGөƘ ðøtÝ|Žü¹z3‚z‹*4…b”ÁÑ—Ç$¥náŸúg9Õö$™"Ñ«Ki[ÛY ÷£>›tjðÒ^ äî«Ù]Õ“}`Ì£Á«ÉU¿¶“ù£xuÔÈ>)ÙˬS5µq/Fò³u–€mR ž^&+ž„Ǩ’lC/§ÒFó'«ElIÍý²»ýUó¯{|îQ—"¯2âE‰ (K `TŒ3s£"ÊçYvùqnõk-Êì:Åá–-Î÷a{šò|ýœd·ý(Z‰Djƒâ=*úÌiÊþ0ÊÍ7U|:,Át‹ÿ/âǨh£b7Þí2ŤBŒNº5©Ü %Óc…éÕ4^É8*×rgµÇ>Ùï{m%þò| Žq%›Œª85Õº5ƒ\êSäc‚a㜺dÝã|ÞŽNÇ?‰ZÍ>ÀôE.²Töe›_-åòïLÜ0Tûÿ€fÕ#^øiR"Š”ç˜ê\:F×b«>›ßº3ƒNØŠÄEÏÁ‡ç)æ‚ï‘mg%<$ü6Y¬\·‡kÞj±ÖXvA—­mcòƒ iH†®]¶+Žl©’j²º<’Âni_þ€¯ä¯éȧA~ÁŠ®¼ {Ûáù•©#žBÐÞtù½K—«)Ĭ°Ã"ñh’ém;8Ò ·mUÑ÷{yÍsk]¯S|W]¨Øg§ç‚ÚEÅ/x¼}ŽÖrðÍ€v ø4¯bÁR—Üs¬˜ð¯UG·gzK‚e‚—Χ¿<²$­)üÔGqÑÕyµúG9 (ø@ºjõ˜né¸ÝõšžœM„_’¥¦* pc¥µ3žÓ½e =­ûØL¢17Œn‰ÃÞë°vÚ`v—½UN–æ©sLºŸa©†gE*Kšdƒ13J¤sùøfÍîJOôÿmÿ>ý*öé\y"Q?—ÖM ÕGHïõ°œ cŸ:ZípÏa¨ülù}ÎeÙûË»rU®ýš¼${…\ÝBQÃ`íãFµÀ®©mú¾ËúØn/ô ¯Uò.áÕº¢ë{Ò,±èÁŽ™%<Éç$k²£jÐP/%ºê‹íc%8*ç=žj¢ËbrØçVÄó²&Ÿ°VuQÑWMãÃü“}°¬j"ß`a$‚¸2Æ–÷zLkq4ø½ ¬`®S²XY8¦½ô† uO/æLÍÐ Wqðç¢Å¶U mY Ƈ̳§Kæ·sŠ{kÑxWËg'¡]Ç”u„["[Ö5œéÖc!©Ô­"¾èIwdÈåúkjÖ*)Ž“E®XºðzÂgþ¼ØKìï¦ÜÊâÖ)¼žbÙï]‹xàñÚîþðÿ£ÆÃý¿úËßýö/lîú÷4!þ³FÒú»»ý«¿« ñç¯ü'Ù‡è«ýï£ñLîßt"ž?ýǶ"ÞŠþÿo¯ñ¼ë¿Û‹˜~üC¨ïë‚ðx+bûßV'âYßÿ¾VDàÿ'½ˆ÷ßÑ†è¢øŸÓ…øÿõ®ÃZ~üâ¿·ƒIõóÊ`èêõ®öØ3¥Çβ>ô›ßè^W×f.è¬&¸Pà´T!ÌʽOM…xµh…àWˆlÍŸ®:k\Þ1[Ÿí]WQò$ßÞúi=¬fåkEOi~÷>ÙfÔ'¤[óª!÷!_ûST«ðK%z£ #\±¬¡jÉ3<™ÒT;Ù-éòVIëvÀP(ÄâIR¯#ø’Ú%ÂUsTuÌbÆÊ¯ÅW]ð›E¨xËg|ôשºd©|X¯¨ÎÝœŒ`ÐÁì. öwçòÁDrk½£Df÷ öˆïÏ÷öÂ2Ï®¡s“çhÌý£»õö2j€-Ù0[à?jÁKùI&â]ºšµdÛ—ç9ïû–s®ñ…6hŠ~*ô¨œßÏ YÒ¡«ßo/cš†M~YQG[(Œö|ÁÃtö›Dç£_,E½ºw_.‹/¿Po/-üÙlïs ’ì5*%oÅÇíi+éxA¾çå™*œöOž­G[¾ºÁeîŸiUKMG&­îÇú/¸›Ç?PØq`“OÖ9-Hp?Í…k(9Û½?eUÇ–›ïRB0Zvk}ú(l¦àQ¡Gr ó© ‰lîm mÓ—c ‚­šÍJ|ëQDŒ+M»ö‰JWÏ®ÏÚ<V‰h)¢X`®ZŽèµYÔKŸŠ6óØÐÅ®’–­˜ÉK•ß[Å»¬Ôù‡®Ë=´%üF8Êsš†Ù˜>TER+ª+¡I ›—gÄ;46S`“?•¨Lø ÷‘†špζt™ðªU%C-nå°ü-/ö^<õTuTV¬vV,²·iMîÄì2³í·zdOíÕSžã]Ñdžö”þŠkX*D-Qõmlº/è–Á¾ø¦Vb–¢aB˜È—.Í^³õ—€Þã·ºBêññð®õñ 7{u×­à1j}u·z—e Ôþ”Vjñíñû½»v¹E·y5Á& Ëîou‰H!__bu K3¤½Ç;ÌòU bî—)´n6Vçú¨kY žŠ ­ÚÂ""Þªô·®Û¦b"k@÷®øµ6‘±èÙü(?{ë÷àÊ~CÛq»€oONëó^³–¨§Õ¼³“ßÍBëúY™M;ûM‹÷i“¡ÁÑý\×ÉN(%] ¶ } 6ºyõí}dÁ~Ç2„ØTmszÓV[Ü.d{'+Ñò:Ýì—g-†›%«¼6 |+!jßÍèå4ºY£;ògõÛu¸#Ò'æýhi]Ùݶ:†SËLÌG;µËö/YTœ,:©'vc±ñzE;=QÙfô×ieâ­UÅ×µ-\eÙ/ÛëÚTNדο¼Õ¦³È"u{˜ó i¯ÁPz ®?»µNQóö†È+Ãu•#dÕ]mžtŒ™5^­»èØ>Q‡·Ç¿•ךö—°³=™½>uRcWiq[E¨ˆûÑ2yŸŽs«føMMƒ ޾s Ùcý¶ˆçá„Êréèâ5‘wc›Ø¸ùÅ 23\~ZÙ[Ÿªœêf³Áܲ)B ïÒìcÖè5¡þò½¼…Ût2åi¬*Òœ1æqêqë!eÙ½õUÒ#n,bž‚·P( í©*åð„v·SšÎum!¹€^¼ô}YÕùj†*BÖPÛžø8íþ(;§…vz(&ÍÎ|”!¨U_PÒÙ“Š•3W2d{½_-âÈŠ0&U0‰1ÛÄ#ßOÂn›Q!Ægy_ ²c›¬ïJ6–.3;’x£º/1Ûæ%ÃjT~=“†˜ë’O×âr³]Q—zýÐÔèfÞ¢½B$C²àÓª.zzGzÎoÞq¯(Àò®D¾Æ—ƒõ)¯¾#ÚÚr¶ÂîפÖ+|Ä»T"ª·À â´û„—=70^ºà–l ÝAœÛ7µi?Çëʠ/\ojï‡îy}œÕuÚÎä†_Ðe›¸66ÛÒ_‘aÐy}ƒX«—Þ-€.Rªâ=#´÷(éˆ6‘ýÕT… n^Œv#½†K0ª-É[EŸú‹$E–‹iëïÎÁ¾¬æ·¶SSž´8Ó\UË&à]¶TLo4­übO™' ›ÐÞ¤Žä÷m;øÙ`z!³#°ÌÃT€Õ)­L˜»‘æÖì†Åab¡$…t\`õÃ@ôRÉXUhàÆ˜ Icˆ¥·BÂ|01^¦Ï,ÞP,ë^ÃÆ®ÝõÖ‚4[óämÝìt1Ÿ—B7ÝZSâû·½O!¤[>jþŽJˆ¾ýp?ï«¡† ˆô/º…“…lW^Ú °ÀJÍÇX‡µÀR* ro‚?òJC9xÁ²†g±4:›ˆ¨s™~-|Ô.:EIÓw›VõØâ/Îi ÉÆ,šEù.E)»~.+ ­°xIšõ½£%#lXö"“/B—2ÄŽ¦ù‘m‘‘Xšðã (y–û*ßHñ½!¦`«G ê²²WÉÈË®&y+/‹œˆ_7pŸ©²‰¦+ÜkkÕ= ’¤#öò:ÕfÃZmsâ„ñ¯¼0®*€È÷З°•ç”ÄÂv†c*½+¦ù’‡3€' fIÉÑÂkbµ•ÂÖo;æ‰ìÖËô¸²©Ø|ë} 9X[,{rÇYYÌ´# õKµ| ÜlÏ):7ÄòñIgÍeÛ²šìQà3ÔÒ±Ž4;y‚AV±úbãä÷lGÛ—Úýµ×S…ÆÑŠ`hðËöXÌj­ 35ßS¨{_HåŒ*ñ×á“·}I`•¬S²UWÿ ¹›¶¼©1[L0ÂfY’6dKÏìI¿!|ª–ßoŠ/ƒ•,E¸ \lðµ[Ù˜Ä1]¸þ©Ž»H§¯®Äs3¦î5)¯g:@‰"xëê–jFu>ˆ8$MQ¦Õ"€RYêÍ@˜²Uß·w>+¤ðèjT½Ì¬×¾O Ž6ßj÷¬Ø;É|¥e·¢JÎMCÃw÷ s²õÉš­[£^bâí5b"ð,Î oõ³=¼ gòösZEØíTâW‰0†çÖž8|¶Xwc¿ ³yè{]@veCÙæéém@G¢Zéš,„ê’P®#¡oÙF}¶‚ÌÇŸý”›ZŸõ­ø¡›6g/}ªùj¶¢’O½òÔA‚)U‰] ŒÍ'¢—,ù“ˆ(±ÞìØ…Å)÷¦bïVXܽ¥b“»á¹óä¹áH¶E²GnA¼§R ̰¿¤­CÕ“Ñbˆ'9"Ø)!7F<²€ˆäÇ-SV0áYR Ê€È)ô´cã›×ó;§¥vÙAÀ§-ÎÒ¢*|Mü5eÕÄd¦Ïb¦÷4ûÑOõo ¶ØŠ‹ãCD~Ùül]Þ>K`žå.'ã,M:HÔÑCL÷ë d%2É[™ìj`•ö¦eh'njR=íݵd÷kfCâI#ÇlšÝXH¡pè)lf¡ <Õ^@Ç­h‹ÃÓ?˜«¡á­òtVl›°®ÙKí­JDÀR«ÞNÀ¬´¡RÐÖ.skšNgÖ&ÔÎBCtc [Nq­%b >'›èpH—„ÿ†Ú=ïÊœX (|èú¯&7¬Þ£í 7Ýò@RªŽÆµÜÖϹQ± Ì8d%í¹$Jy_ 8À@ú›5àlË|%’«è¹`¯/$nK÷§„œª$á —5êd!û­ÙàþúAU½lbig¦¥à1þN OýH|§4H!„´®œU=+>ßY«C¹ä± ³f ±¯6²5Š7? LÍVÐ]µ[L¯#¹_ª«9JuŒG­=G™6« @†¾FëC³ùÔbªë§b³ZÔ‚Q5£ œk½—;îõÄŠ­­z§ðúøAõc@øÀóÅ„x5õ„?†è!@Ò0ÌæS#¼à l>P¿½clÑ0ò|öKÚÏÙzÒûÚ#Éž“[\ÓWo(جÞa-Á—(¥ ­aÀaŒ1«²ÏÈH;·^WZ¼’Ä£ Ök¨l¨÷R\VÛ†cp=È ,Kâ4Ž@{{‡?娵iÄýø]/nµ·À¬ /ÀïÁ.*¼í‹_ÍÄ@å_ •IÃ"åãa4ðõ™N&†Èü‚°´]gš™ üYI}¤;è!{×ùi \¡ÝϪ Š`é}©ßÑ $ýùej/kg ÓjoM 5U3O*Íwà ›žÒÚÖÈ–Þž§X¯YPÂ!œÛ/ æNzU‘e»aŠmøäטBYáÔ ³Cd‘G…@ª¦¸#qíèWè¦IDÑŠ[£wb´X,œD °6¨\'âBty’ÝdP€s“>¯zôx™:ÞÖy«î„ÔÚ®[à÷¨fë#Í~ÁÌÏ%V–xò*ëÉTÍ >] íqjU"ÉÒ|Ûs`‚ KÀ}b.©Ò§ AÓÎ[U›ï ÊÑxUmvd±I@ˆ Â¥¤¯÷pG¡†ÈÛ+ÆÙ¬ËæþBä˜zß|¥ØÝÂ*‹ÊØÙ·œl8²_^ÒèiÈB²ýû›wñoÆ €p ê4ƒv÷Ÿ7‘U,c52¿»®Ç~r²º} yÚtʘY0Ì´tË‹†Ñƒ¨œl%Õlg †ëšç\ykb¢$DÖŒqAèmàý^%}öqeH╽Þuo'†’æ¼N—füÓbͼ^ž$Íúì^«²çU8xÁz`ÆÒ”Ùû²¬¡5©Ô¶pUö,F÷ UÞh ‘ñøk(íG•5FwHCû׈øÅÙåóEVžê IsŠ!%)“¤‰j=FÏôÔl;5Ýõ¾z#‘Xú©¬p6R/N=x\| „òõöÚèæåµ+M_ü=Q?©!y$‰å6ôq+ìÔIÝ0v”‚¶"½®1]õª[qµ`?ÊduŒã8Ä ($Ñ´ž¾íWä>¾ð{ÈÙ@uÀ“ri Ö@T†U‘¡´´¯ßÑcŒžæ 31ad\Õr˜Êf[÷gØ6lÚÊ ¿e7zLQÏ“ã)aíu0êôØ‹ÝÓ=ÏUÚ7Øñí(*g©ùôΡ,c•®ÂÀ‘XÈ–f¢‰­+] ¹c¬>= !•aqÒ‘îèwQ™9[Ì”uúÈó • ò‰•8ÿ•Í.‡¢öõñ?@»KRî·'ù©ÜßÐâÍhÿ€q5ùq¬}o£§>–Lºâ=)pâ1T„Ó6Ìj …{ÔAèuIøÐW¬gTÀ³í|ÑkPÆ(ßx«ß Ø›½Í'*²Ô#úrÏÊ}F©¹ OíJö~&¯žœ¥”®£ÔU¾I6£Ã]âÃ.öâlkÝöFFS±5Žøs“4.o/¡Äê¿°öÇÜñ|J ´†ª^7Ùm`“ÔF Ñî`'Nº‚á l%«%l¿ÿP@Å“êü¼°¥‡<)ÃHšópõ¸Û 2Ç.˜ š¶¢]Þë—ó+ÜØÊÞÈd ÏÝË› bähIÛL[,é—W®5?ˆM#;5õ˜õHª·g0a½Ï¥xuT=ȵHžvzóϲ‰uýµ>œàóø5 â²9qXþèù}iôkk¢%ã]J{ÈÖ§—Ú£Ðjìç §^'Gס|†È,QBÐ5ŒôÉÌxü¿Ó«¡äâQÛ6ét¤Ö,°¸=ÊRQOëîzO‚ö²i¨P¸4–Ò¡ŒõÓX­ÑÑ„ï)DöÖ]£òÛJ±è•Ý4ž|òûE‹U5]åƒÈëËÅO-ªIÐÚv*(Ê$*Þpx?£ò«·×Næ¸T;’?…TrlYâàÑp±X>{|rìdßpU{€åÁd"7+`¾ ´F-a’‚|6mìÇä/«fî[m{i¾‹v Y3¦¹“w ét$?è@û>Ë&@Ä‹èbyœ–Éy«®[!]¤Á¤)/ Èpr[ŽqZê\zê×`—Ðéö# ¬© /Zöl»d’:üx ëR^ØÛÚ¡ýtödIßuGåÿt.?Õð<ɵáMõ­Q´Ç,Z¯£„ÒÐ {kŸª m•® ®õp@•×È•Cñr¿yŽ­„{¨N¼˜ÖÃUÑ3âêMƒ6 >j+“¬‚R#d.ëáB$±¤‰ºEú®‘°¼ñQi ×Ç~4Ç~ÚAg¿»åi&øìŽcibÕ¨ÞŸv†ÂÂMø·Žº Ù».ûêXï­éͶW¬‹Ãš‰Oíø—Eò­n]F)qP5Žåò8µÂ<ØÂK…“Èÿ ^˰¡'Àƒ$k ÖOx>?>ç2Œïk˜k-”3G‰§ç ì­Å0åâÁ¬²[)C9:ñJ§÷ËvÆì0±«ä „=åÕØÐ¬ ø.4l»{4æøÎ¡‹ŒQ´_WËë>mÐ-»£`Ѻ'Ï÷Ñ’pÛ†w¥ºâ<¢EoW’)xà½û³y0›2½¯×x›D|(ó­ÚbÐHÒÅñ0)éRѳÂö~]Óûù¸ &)N £¦ÈP˜ ²±u±Hv5Ã0¦UzzCùAr~®lAŒgá’Ý"1PLPhU–Y°Xîñ**<îM’ã§‹ö†À]*ªZLšj‚Ÿo¸súY]%°UÈ\ÿâ¡ñ!€—\ïÜ[Á=ùzª¨™ÜÝ$3ž‘Ìð×#@è1€;L1qNº:ã ™‹ &µ©ª Áª½|HŽÍ.` ‚´ÔTÖ3•`[ל”ÐRtÖUôùމ†]³l¯µ³t­±»†Ëî¬;,G}­kTV€3;¤^]ïx©¿PÜ6+=‚0ø‰E $z[“0s{9›ìØ>¾“ ÆÀ;ÜÕ,…+XæÃ¸~K³ÈÍø6ÁEuì5UÁn[½S%èóVàúuî_¬†¢RP¹¢òz:¿:5Xlè’ ÊÁj-½x+„}Њö¬å(Ы9í¼¡(—.Ìš®ØŸíGÝ.”Z&ßhÉýÙ¨.ö™‚iæs½]ä¨2bÊ30&Còr³ §«÷éä0-ùšÕáóTΩo “â¼Ã¡»{‰Fcτƻ-4ü·jÇ‚Z¥>U…n ê>Ç:oçµÔp$>ðqŠ0«7¶fTм¢¬bÝŒï V<Öyñ% ’g"T·ªÓ­`R}œ©„õ¨DL¤ep<‡pªÍxú˫»ÍJ†¯$/®Õzô«ߨ~«ˆö~µ~å|FÔ[‹e$øòTá"!ÖHŽ`×¾IÃrÄ=íÑå7Ÿb;ÕË2¯Áˆ¥Á¢øÞ-¶g³]]‡!ƒo¸•ü©–º"ßÐO U·>X•wkóSwôȶÊP<ÊkUIZ¶}¦Y˜Ÿ·Wï¬ÞcÉu±¬Î¢]§ÖäªÕëÄLÍ”Áeô³± ÚƒtàÛã!¨{±©È,0ÍLø¼Ú£ –œ´¦’µS3›I‚¦/Ooç•óUd)ê*Ë{Ž蓦J*y_º©dv¥fÊ©p,²}TÌ^¬Ý­^=%? >ñ²2$oà%1ŠÝ¿ÏyÛ­fß:'4‹íDƒÖ¨¾»ÙüØJÏñºUY}£qNÚžNÛ«ê±õD]C hÓЄ+4«¯uOžÃ$èÿøÔ“‚*+–¢ESþ”† GÚ€¡Þá]zHî™^Dïr½üZuò‘‘ß‹û”0ÑF$}¯‡P>¯êØ}³X:9Éz§c>qd´â2YåÔr±5™VôS³ì‰5Ì Mù‡¦ŠÔtƒácöÕ´ŽSŒ=LT/úÏ{†fGÇjm6%”T8á¹o·,ËdŸòòê}c¨µ9-ïcT¬¢½êQ6±<çTK-ÈÜiß,æâeÓ5Iï Þ¨MS1_ý|W‚°¥§lIݧŽ_ð¬zÃ=‹§™ŸeGÐÜç"*J¸w;2–ÞèàÆO¼ÀÌÏë^ ‚N *~OË"h˜5ʘ’acvù—xÊ/=Í~\@»,TÞvÅn}º‡ê+Ý–+ˆåeÉg.¢eda»,AH‚u0Fµ‚¦xæÍÛC+ÞÂZm1ëU¦¼9a÷+[Åœ«‡¥T¡ƒ|9,í©FžCK’jXnð`_Zæg¯~Ö*d[un,÷Uø=Y™îG1x¾ƒañ Û†•"§ƒéA÷.XzW±ðIòk6}\Ê](àÆòK:$B¦˜à•ôu«^1ÝV•X C¿µ’"fn–³nˆ¤"r<ó£Û ¦ªÆª´¾-5^…{0ûLo}y¶$ToIo>ó‘o]/ð2ÍÉ?µ¼H£½K½ S¬Ó‹'ÛÖÞZÙÆW§h÷–œµ*å£:œ®NÏ«á:kHM#"£tS/mæ¹ÝìOÎUc4f¢2½!±‹-BI通W÷¯Æ:÷dUQ¢OžZñG4T…?&@;«Åž£< âç!Ÿd­~Ô‹Ä¢brcGå‹,ã!UkÄû;Ö¶þT±I=rJ9Akª®"’ MzO0lD+ä 6Ê‘œZ^´¬¯SÀ÷ÓfyŽik Ôñí2\ÖÝI„|ÀÐX縡 ÇäV›'²2ÛÄŠÆRW3•žE_ôZƒ3C}Y,<¼zA þ&ŠMW¹;xÆ8TÙ qÖ¢·µ·¥ØfgÍ$£ý\%ƒƒnY?pÁƒe>+jgoq8©hòˆò”ô’)ÞêÐßí>ØÀIVa…­êZ/öÍHŒ có –A6¨ëº•îd?çõ: Þ“ u`Y»W  ryé²=‹DB'0)=^¹3˜—VÀ š¢Ý )þYU /:H%€iJVÀŒåí®ǵZÞ«ÿ_ñݨ%s“¶ÀºO5þaÑ;°7.U˜á:Þy쾇Ü\Ÿ¹‚Òº€¬JŒÒj}§ð(¬Ö¹bø:FÀÙ‚Éf¤÷ØÜE¥¶!ië½³"Q5"´~7±\ 'm™xbI`PûY'ÜHdV­ì&‚‡>Khã cˆ[ÅNàQå³^^­5ÐíY˜<c¡uüë²U›- i=Û¥Ô“.pÞ€”-¼¼>N¶däÒä×–Â ÖJ 2-·8Ö­ïÑ-·¿Þ|U¬T¶»~zM|.Y™!)p¯Â8!ÙGÍþì[6LCh„dˆ+Q7AƱRðžñnf—rá‹ÍyKw儨¹¼hÑÕÛ›[‰ó©Lo½Uœ<Á/ú v‹ªH"<â$¼–NŸ[?_ÉnãíÄ”üÄsã%ÑI‹íê€ñˆhUš¬mo9²\(²UmÓS,^) @Ñ–wüI¹X9î Gþ\T¦½½ïœ¶ ØÌð\Þ O2x>×¹ ²TìTó†²Á/ê[V¢¨[ïKì¬ ë•ÖŸ×Öüød¬·¨«LBN %©`Ò½£7½·Ö§°šL¨†Ž´<ùû]g( ¹$°ß­B\¤˜×Ž\`¿ÙãÖy„í7xÝ7ÝȬaö¼‚e—ELJüy=ÝùÞ­êeÕ:!¾îS/ÈCc½±´½ð&U÷`r¿—=ýéS Òzé¬2!T1Û1I@\v‚ð“ž<Œ1ŒßòsU?á¾ð·ïªC°ózª`®GbIÁ¯=ßS@>Õ|eKõï[JÁ¥Ž)Ä„|¿¶íƒî,©§’øóZIwksxîÚ9Z/”Çá³s@ná‚àÕë…Š²µë¡æ]âôºnËkÝ^ZTBÔŽÆ­ŠÝçk ­(¶Å—¼‚ï¨Ðyò´ŸÇ²IÅã'~A”oH|ªÞ†p¸’AT\W»PšÍjwfÜ@:ÊÐ)\zNwÉáóµLÈ*•Sí¶«e-4Êñî^¨v‰ÔfÙÌŽ:™ß©C*ï0Ž+„1ÁX!›û4àt_ƒTßמ4oA˜5:ó%¬f¸ÆÝ-`6p²%U9^Úõ¨N§RÌcÍË‹²hO´¨~/ïBæÔí+úøžmÕxìáó«>6ðý^¶×|,Õ‹õ^°¿([;0•’ª&ƒN{Ô’TâËZ)œúkJíugS•«ÕXáå xU°ŸEíno¬T?' j[•yª…PëÁÐ<⃌~{Bù:%šTÍ‹†J’ž 3@65áÒ<,¢S`Ѽ|¨™Èf`dva\Ã|ÒVx¿¯Uÿ`k°‘ÕH†\p¯Us«}®Ób!{Y@c` »Ù`Äqì'×mÓÙA±â¤•P!{”S—͵/—ñAØ¢PD±¦åÍ›—çØµÛª@t™þmÈ5'j©²»QOÂ%_Õ+$=ÉÖ­§‹Ç¾U¹u‡ÿØ\žóšy=ÈyÁN,¯Ã™¢öž€ ûÖäƒÙìô‰›‰/]­gìš~4Pµî–ÔϯûÁvÅ£=–œah££@—§zªg~§øB}ºEÙw /ªéJ”ÿ¬Ñ\ÒYm¬ÈîËÛj-ŠŒò_MT5øÞZ¾Ô±€yvÉðRÇßýÒ=}P”ÆÊ"ˆ¶ ·öT–Þªi GfG¹š[¬ $&&•詾ÏbqÝÁB¿ÎãGÛ§WVYU3¶fs²ûŒýN"ûEî ×¾ ¸dõö:ߟDòÖ®y'e„`z»¾êá®:µHm6j½ÇTü§B5Ÿ¸Œ ¶8§š4µÇcC}˜í‘ŽZ‘Ë¢O¨ïR•=Ú)ॾµ«/` LÁBÑ2 z^™²žŠmñYV×|UåÉïaÇ_DD@9$ê%ÄÉúaõöÞÀ¹½ùËË.Þçœ?¶¥ê(YÖsŠ%w±eZ¶ŽX¼?MrŸB$ú ð E¯ê;C¥UÆ|ô²ÏÕ –´Î}/È¡2å¸8Á£ø}ÖvÔßÊFL°yg‰¶ÁO`Ú“Ïr!®·^GtÖÈ|{ÿ»Ùj™Ø¯è¨Q¸´Š*Yx!©ÞòÃ¥ãoêÕ|²ø7tU· ®^þÉxɦšp¦£þ ãl’¦šŸ’o»@`Mn¢q6Êú£iï®9’•6QI¯e¾vò¸–˜2A¡.f*[Þ4ÛQæ °jÞíZdzÎnÐMÀU´ý<ÝÂy×ÝNãÐѶH·ˆôvE+øŽ×¦ÆùÑYW R©æ9«Ö’ožÓ•®×¢,mpŠÞÕY¿Ïcî®éûЇp²IŠú³ëýF/Ï`D‹pg¯õ¼Î²™Y»Žs½E$h‰QòÈE×AH&B1ªÊת^û|°6?ô‹jàO»Ù‡.=ªÅ¾Š£˜þÁ² T¶wŽö/Zadgèˆ{Ÿ§Ê¤D;&¶® šI‘©÷W=eJD;¥!¯J¹+ìlñ¶LöÎ\ÿTë}u™‡m(Œ¬õ2è|„ÈNk$Êë^ÈÅRg[Ø¡ y Waëm/´·2oÔœ¨uÊ«hÔІ%’õ8¸ éómÄ“aš.¶‘"GDÕÏFø¤W{©½Ê[éöÀÛy„­±Üôj6Ũ½v;AÈÂójûLzUIV` =3ÀÓž6ìu}×_Vë³$;¹­eÕŸ›oaHÄSäx õʴN†m)+?ºlŽŸ¢$l`€Á¬@ò+âÝ,% ÷ŒW/«ÇÃ]åg=¡l¯fKˆí×Y"çÙ"³|5ÜI‚m¬§têÖ[Y`_£F¡ëóyùû½6‚[Fü…H•kY7¡ðò©±µMV³LvÖÍv í\§ª)aëO<ªÑ¶l×ÔÕò†Q]Ö| ‹Œ¶ÆA¡ˆªdH<œœÈ¥ø¶d>N` vhbÒÛ÷^u†ÛâBI¦}PúƒÒï·ŒŒÅ†dFv7ó,Ý6M ê ¤—n| ¿ø)7b§Åg-6’wqkj¢ñÚÔÇ5+ üY°äe „4RÁkѶí/À9: Ö˜µ·W»¯…/Jͽ6wëd`VÃÉo„^0ÂdT¾x¾jùt…ý4)ÛA^$÷@Ýš]ÃÓòÈ¢ÀE¾º%õÚŒ“Pm!­BçSeД_Ðê‚8¹Ù"ÏŽv»N+WœÕòÂÃÍB±Ô³&‹­Ô½†SjÚÙͱDÍ(à$"ZK³—·u;êÝ—áÙòœvê4ôWe†Æ./ãC>¨îVK|(5îôÕxL;&ÎBÒQ7è[øö€ì¶ ÔEÀÑTêÛŽUýg‹E— ÛÕ@ýòÊÞ†-ø9x^ ŒÇ¶Paé÷äË7±0©*¤°’õ_ÖÚ(æ6XHŠu}£¾SÌ,Ÿ–*Í»?ìn3ô㓳=ì¦XÔ ˜þhÁ`¥„Õ‚Lýë¥z¼ëž.JƒWcçSŒ Îìö0{,LžÕzyƒ·¨¯[…9tU|¶{£5Uö +>½[<,ξn’,q¨£¤ç@ËÛ}­¼¼'ÄzÇŠfºÈa‰”Ôu{ŒVÂhüWV+Iìý¬÷aé-•ë38áË‚¡8w~µ°ªú¡3ÿŒœ÷×$§˜Y·/ë í¨Þ#©«B0PÆÉz²ãLAU1eM•Uú¥c7Sd¬ú¾}!°¨”g· x{zº^xsSICŸµåé-Jy]FƒrMÕØÅjŒ¢r vvjfÑ‚¢ÖhL¶‰.²VÐÿ¸0÷%:[hÍÖ¿Þr=*!XõÐþ Lý‡øÿPûŸ¼6÷?yÿ.enü?I]îòþïC•›iýMnþù?^‘»¶ð¿=EnÞôßÕãŽåÇ?$üw½Tþá?UEnVö¿OûŸ¼ÿ«©qŸÉÿÿ+9îT~üâÏ™„ßþ­|öüâŸþˆiÿA˜ú?uaêgÖž<´ÙµËÞ|¥ ûmùE*‚ääå÷ òŸegx$ÔjÛÇ.+0£.ð`Æ·©¦t=§rV ·éÙüú Ûpú~tÊì_ÒÞ@¿>}ÁêWZ<ú¾^Ñ«“r…—¿_ 2”Î/o=ŠÒMÉÂ>;þv¶¯IÏvg–€ÃK®ª©—…¸Ë êiyóÒ|´¸‹nñÊÃl{áí ÞVÇ.ëÌìi\U îçæµ›ÇyuûuЦTÇÔçfž¹*GªQø†DøRÂ%³ <™¦#ƒÞ–åÍv5ÅgÛ€Ùf…=#=ßcúUôS¯¡¤B:ª5Ú ü–ñ²ßÄÛûêWÛ¡ë'Ì{ñlP^ð¸×uüí%éè=-Õ+Táƒ2—ĺ ¹}•¯o‡ oéVi­IMWü´­Ê¡} Üsðš¬Ambµ³ëIYT<`$o³5†'T¹8ë/WsMÉCV5g¼ ñš]¢ÊÞü´|··ˆm­§ÓYªZå‘ýÍÈ¥|UVgʃu×¶gŒ_­²<Ö½U#³ëãý^ †´øªr‡·FvÿÅÛYüÖ>¾êl¾¡0%mP4Ûl­gµT¯ÁóZañnŸt?#¨®9ì•òäüƒÆ} ¼Y6=qx>/—ìLñoÕèÐêy{¶Ô»Œl-šÕªÞÅ}u+ÉÉFØ<ë„)WžÇã=ù;…‰•mRx&|žp6×z.½Z‰6òÎÔ-³NKOÑú8·K ü,;…A{¾¡U®Dˆ×wÙÆª¢ÈÒyë±Í¶ðˆ-•&¼û§ÑÒ›T ™K'è¥Îö†ÃÀÇecR/¾«éë-Q¶~MAfö²ðÊÔΑ-ó ñS>F¯»Ú>©×ü ÀPõP«ýÉŸ¹Û~ç{4¹çyjIJ³”ô4ž‡ˆô]Ã;PªÕJs–>à°[kï·»r0"ÊÝeÛ°4”HxÕÂßw—ÞlFÄ8kTÒ÷t 6yõÔ©p½-;_™˜õoS-éN*Y¢1¯m ÅÓÎÝÌ>n¡Ý.‰dë²§É¡ë$®®âæá”¹1ÇG©ù¹*l¼/&!챋'YÛ¡¤Ao=³‚Â;JL<¨îžZ’ÎÄ¬Ž–Ø¨$W›(X©ÉÒÆg÷ʦU¹‚(òÚ;”>Í-Xd3”bUú€ø¤¢Îû”kòè‘wÉ^º¸“eÝ=/Sáè<·zÅÆZBò8×z+/"Ošáìë*±©ååk÷f*2ßeÍti3yÚSí =³Ö‚ž˜áR5%èRçqº}îùmÅÜ[(‹hˆe¬ŸHˆŸÊkJÅætõ5¶©TÑ+¥^?Ý­s=ÕJLñ5W±c]J»Ÿ¼?’¹6tFPfÙæAPQw Pf:ö—Ï—ßíÑ+ó"M²²KÊE«˜´£äõš^ÉïòúÒbŸÔ¢…úú›‚¬‡èJ»O³ûQ~-Lø!ðÿãÿÅÞßõìÖc×yàùúoÒˆKâââÇb£Ñhr‘tHÃvôAd©l"©„ª’:AÿÞ×Å-•Ê’ìtw¶¥ÏÚ{?Ï}¯rÎ1'ÇÃñ9™ G¤ÇÜô¹Ç¸ú¨1y{XFÉJ5_ÖŠ)ºt`“†TÀØDTŠ 3Úl\zL8Ë¿´Ôtó(C»[‰_õ$GåY -»ØŠƒÖªùjdÂ+‘½ —ô DÊ¢pV½R´Y³¿XK 5ž¹R‰ $¾5©Q‹L®T®'|Í­ÍÎ*À{>Ôù׆sM&㵫e¶²TLŸ'”Þ ð^q™ÉöŠ#=wøÖÑâêDÄj+0ÉݪrÙ%[Åù(é\ùô¢ZÞ¥É1Éeb‰²ÄĽ{˘xÝÊvÜ6ãŸWƹN¿åN= Õ¨zcÍ‘Ä]BC­`ýª©6(ñ§Ø›ŒŠ°eÌ×>·ã­W8‘…ÔCiM·Ê|u@@Kd5Š ’û`qå§Û'È–·î=¿¤Ü²²NÝÜ·¦Ä¶»Y_ްSwΙ§¸²Ã3–ab–†š¯<‡Ûæ-Šø|ŽÇ åÉ£¢²±K=±ÊsHäbݧͤ> —'Ê0õBÌÁàZ¶xñó`kV!^Qásä=}£`Ý¡æf!YN¨œ×¤wW^¼œEÉuŽî75ª¿:$KEÌX³YËäEEò†reîë¢óh³¿qNû€¦±Žðºšxf9¾u:1)g•ݨ·ð§N²©Ø8ÓbóP\ÞH¼UvŽ’åKY³CW@¸¶å¿‘Œ®Ï“ïÖ)Kï3jªSt1ñÓ¤fRÑ>¢—v̦*—HÿmUܨåÀÊÍY0s‡T(Ïáõωj(=ú¯°»-ÿnQ;_C˜ËA^¨™'1ìd)“­wÌg1»ì‰ Ó‘í~§‚Ô $Fõ:*ïÔ„žñên•ß«Ê_WÎù“mže)–NÈzßyT²U~Jä@ð_§ÍúKÍôû^–¢*é´æ¾£9ÆÕƒØ>’¨w¶Äµ3îÕUU¿,¶•h¨Gcƹ]‡"R+ú{ÔWUf–SWû”!ý؉ðàŸU@– JxG_¸ô"Hᘊ¶ªÅóZ‡«©ÌpçñÏ©(ï´/^öÓÏt<Ë‹‡Âvò«ì×;Ñtïçm¯Ååª^F$òúZ«ów„À«H êÀü¶{f­íuPiwSt²x²Úo@Œ¤â²3T¯nÁÛQtJÒ})³«,£•<ÿ¯;ø‘B›qªMMˆ/G9“oѧwO¦‰Êªj [l‘Ò͉wywNù¨§¯öG«Ö| ø¿VrR’v}òóÆHõ^ }÷0÷Ë+¨Û£d S›¯ò<‘l©±Á–/X:÷8Ky·¶+Îio@hO¹ ¢òX»ÞºÝ­$Œ%§T€qσº%4Ð#ì8Ç1i”hÔÂÕº ”®–sOªñrìvlÒxQ¡]ëí–Î3Õf¦*ª`k} ª$=9¶Øö§šŸŽe½€UƆêÃ@w°²•ÕWYì›+ÕkŽïž‡’­zV­ÐÙ´a Õ·j~&€[o¾ Îü8€{¼ H¬,ÝbU@ã.hÔ£—óËõ]êjs/À<ûÛDšáܨÑô&û½r`¿Û,Ò¶]¶É½uézˆâ·ö”òÄ—<®c H‰G¦Ú{¦÷ç´¡Ü5t³«šd±žWYŽ8«zÊ']¡}ÎY*)ÞåäGã阨K0—"~@ ËçdÂwÎ@>Î~ÛÓÜõ²~7tgLJNG–¨a›½)¬@Š‹R—’ާ)ž’#ãódÑñ2N’îíÕØnj„2)˜GÊ ÝÆÞG¬¢ÌUtdIkõ’îÀ³veŠq3"9RM77äi©…à•±>5ÔÄšPÕñÒ/€‹Xp‚«ƒ$ü·©íQÍOUÊ[¸å‡IÓëQ4¿iÇãÓ—#Xˆ’©Õ¢XX1™p„„L™¦v^Šò꓃&EY¬¢(‘»‘P;nÙ, E¯³ò^¬öW Ð[Ÿb˜üÏõØÿ›$>ò=$iî> ÅñÑ#èCi£zsúÔ\y”‰hDiªîL[[,XrÖ½äúðU×­L¢²Î Îg«-”®â¦ÊÀ (P‡*ŒH°#ëZ›úo­ë)2Tmt®x¿u5×ÏÆ3Š÷ô ‡VDÃá.öÞPÌ>û²ÑfÔ¤R·ÈLsX´î“²GYä2Uk²ÏÝåp¤K ºî….Þ²zUl—íŒ4›§ðYlûê;àkëV9UBWJéS»’dï_ŠRq#Ú“PR ÊpptòP¢WèòsºvQÛá‡Zf·ª¾W»•g™äkÀ3‰<š© fW<‘ÏhŽÃ$_ß–Ž[²³ÆOº–t7>Å_©ý§Ãx¢qÏÍqsî#º˜¤º*Ÿ* \ô¼»ÈKòô¶±,Ž!²Û„ÈÇmåñ’m ÍñÃ:˜:Ò™zþñÒìÇñ)æ­ÕJR£5õ£Œâ0£ŠhtQœ2Ðã‘y“soˆëÒ*ƒ¯SØ3‚šŽ‰ª þÆÀm°ýð¥ÆqW~`i}µ” ž_¼€»Ãù8gmmÞ¬9YN¼YrºÀ}¯zKPÞZ´-Å6ÉzDÀŠqO)åä¸Z×å/«YG)kkÞbJ¶Øœ¦¬¹QM=_vêžMŠc¨ìCþï,¿sPQt¡‚ï’:dzv4¬¢¸5=UÛ¾µFÀ‚€Ceov Šê=L¥ÕÀggxàFâ§HÐhˆêŸw^¯î Z:nCwV%ßÎçÃÇòŠÔ‡e ¿Z ’ uýúε£'³R/Ý?:ÊŸ7§?Gz¢Ð3Lµù«l}þI¼.øJKÜÌ£\èÈŸèÚq!uªš<;«o[”—.òܾýØùœò¦6Þ_~_·0 ¯ÜÑŠ{Jðæ2©Uƒ½cin …­kTëïࣗ”×Ãnäw²é¶[³—û„Új‘AÜi¾ÊÞ®”•”=fµæ¼)p';ž{g:ÀÃ9ÚM.dø@Í"k+‘|¨ÌlÛìubCºœ óv÷ë&>[GpË,¬»ªNÀÓÁƒÐ+¹Ž±€-Üá°#Q•L²ù¾ˆ¦ 9²ìЧ‹X–SPÀg µêºz(ª NøØÙ qVÃeQÜ,‚Ö·lÚ'©|0UœÍmÈaFìÚš£¢ñôjY0HT)­É=aÊ‹ê÷ YL=P©ž‰Ød8"yNvIïÌó&ê8˜I0^†y6(ûH™¯P²Å¢ PSjx’ç‰D2]AXÌTÎCsZgõ’7 e‚æMêq5¿SJí#\+6KÏcYJ©[hùª"'ý=SÇ_ν âSüR°=Öòu˜¢WÓYC¸¨ôÕVaéµ–‹Uƒ®‡«¿“ýÿµ°ðab·ÃE`«ÏRÏE§'µî(šÔœÁÁN"ÜõMEc^ǹҽ-–ïKvU_"ŒÛKl*}ï:j³à•»²eeù^ÊÂ-Uv§ƒzhÆôݦÈX¹öòœ;Ìjç…:N¬óÒÃCp$‘÷ô)ñÝÙ©Fí×ZšŽükÉ ~›à|–@‘q¹ä·¿¯P÷Eü§Ž²-›ô?ÞãíǨ•ÑMºú²q¨¹>Û…ªÜ8Ï·í±žÕõòɇ(q·ã™y ”©yjÙýÓ|„2EÁ¯¯8µzÏKñÔ¦SYvfƉpªÉáXp~uÈbÒÏyèâ@Æ ŠVÕßtô‰•¨7©6Ëfk‹‘úC>ñûQÛÖ!€èÊç _e–³¬ÛE‚ëV®Á¹Øª¶u¯IÜTá#)œ÷Êñ&‡)}© ô£ßÀWsŸ2nÉ®JG¶tÔÏOžÙ­m ˆ7’eéKå¼ËǺŒRzÝ ‰ŒIy:¢»µ&\—í>Ö“AÒn?(ç##>Ëé'姃@ª?kzàõç¾ÕpÞûzƒ¡O7Šåÿ«ºà :y5¢„ $ 5 U§Ñ7¬gªT¢²Zò: /#wÑ«YÙí;&û•m€cûA7 Ö TYGmÇIúTïϤtrð¨È³ ud—¢Š*κ¾zÙSöØt†wM?Œ¢r󾪚?&2À `ÎúÈ©}œv»'Z§®æ]x ºFhò Tþ—=.Tž=À”rÐ#ØÂW6ð|V˜˜å݃$¥Q%E](v)'ËÃ;²ÃdA G]OŒ÷ •çËi>;ÆØŸöèj@ñö5¼½¯Väª8Ž9¾Òl³ô5ÈÕOõ~ê {ÏGt&MgÝHšƒÆj›ÄôÜ—•Ôß6%hõª’¨ÉÁwE 5Ô@¹Iš ž"7ïú,zÌ<ÉNúè°ä¨NÓGÑ‘4@ÊÌQúðÐZ\JŽK·xÒÆaÝ¿Ztd 'A_6ž,ñUÏ(Ý||ÔžgJžkºëž–È5•‘¤F§”$æ¾·ïvécV‘-+ÉšQ¡&+cšÈ¬;E¨y˽·MìKÑu XR2¿¤âgv Š9Á·T%c—{.Fv%¡ùò.•°¨*Ž7–CßÖ¹‚œ<ŠzUŸø‘B•ç_xoÎ<àÜOì‡ô´®ûU ©ño¯š“Øåqß̓[ó~ïæonkÉM‹ÏZ/í^K.ÅÆq='çOc¼#&e”da©»ÄËn rSÑÏA K d~@9Úã/ÃFç¨~h«Pf'Eq?Ô'˜+¤L(i¬p¯é*ú'Ú<ëöï+1‘̨xmÒ«P d©ñU‹ÜæxÖQSoeuy¢wý‹c4в')ž°t'9%ŸÈmpÄëÑ*óÓ®äk×þR›Î=m¢t‰ó°,E$1¤×*‹•”H‡&›ÏåÕW¹æûM§KÀõõ'™ˆ~ïÐNüM™V sC“$ÐŒíÄf*³JX[Q'ÝÇRU¸@ÕÊšÂðð4…ñ”õ+Êvh°a§>hþU¢îwå-yUC[7r‘”•¹H¥o§¶Ø>Û^8®’Ë;uýV4]šE-Bê{³ÇgÉÒ1ße•kFþuU¼[deßw¸ôÍb]SúɈ‘¶/4<·¿ò5ßRG‘K¶Ò”W Šõ÷*Õ£¡[‹×K™ú¼°àœ›MºÓd´:ôè¡(°XU¦|ìŒ.É¢” )_Q!BÃdá“!¦V—<Õ¨DÞ(š¹-Ùna²p•ü™ÜØrYì'¯!¼ Ýsn½ Æ|ô Lz—³Ki5’‰«*ª½ÚL:€ûu(ºv«©Ý<ÎVÈ-8©7Â"|…6ðÊþP‡˜Í¾¶ªlï¾nâŒ->‡n¿nÝTžÞI*Äõí“ý‘ê¡hòê<¾¤ˆ¦v· Ì+:ÕW´Âzâ™;rlLª§jÖÅϨÕöEû:Ýú ™ÊòTô"Ñ Èžá†5K•Úe.j6¥(Wî²"¶ lÅF6Lý<à~ ÜVžVf@$ð’d§£…Ÿ™n¼-ÏZM¯>rŸ®ÂKÙÓ=ûÅ"ýxJCž¶Øë;B»h7¨ñπ߻}ýÁ¹þgêýVjìäÆ$Ïæ NY‚¬m'²²qÅ%¸‹%QTâASÒÒn Õ •Ä~Õ™ŽË¬P*8DYůº¯ÏÇ£ô¸1Û©ÓÜ8³a )*5àu´FªŸµîÉF®äu¢å‘=nVñ‰Om]Zîð=¨Õ“î&ØN’­nr(•¸€Ä2¨Ž%oت|Ä»ÿ’Š‚@ÈÞbIªfÈ^ H´€ <¬_›«fÕðÅTÃS=YA­àE:2d¬ºq‰œeœ?vÑT«SªÍÉqέ€×±ªæ»lz8Ïôú$x<šjiK´³(Ñ•Zi=¯Z†SvÓÈ.Deà‚•¡Z”¢’4FÆe!)@§‚ˆ6²ÊèLesxAÜm”-Íú+úŸ}¬lwª[AýEÑÕ”g¼ î3Od¢–ª45¼j˜Ø-¹µ¤£Àb[hÒT5þ¨¹’‡4¯…§jô‹•SX "€'òyƒ‚…wú™Ó&±;©ÌÇë’‰XN_[P®e¥XPzl/2é9ë'&sÝnuÞ“i´ä¡vÖ2«mþ]> OÕ‚øäx$eå}<À®5I&Q"¨mY+žD>{Ûúß叿XãhEF‰T±=²'ª ˶/Ú¥)f¬Mûñä·PÚ«<Ñ´Ã(ã0Dý"}³º™Ö¾q1ˆówcwÏ´ÁùáŽô+ŠBä¼ô‹U ãéßG "Öš©À’•øE‘¥·;xaš†Ži²¨¤H›’'8ýZ<Ä,²*·nÝÚ!œŸÔo ÉU“Q‰»õ4–EÕ••œå—¨¥@X,SMi-sÔp–Ù e“ì@À¨“d ê:ÂÁ<Ìöuy ¨x$’=”1ò!šmß©²Š•X$z~<,çT›ìÇí1õ`€»Ÿ-¯³KÞþ¶6¥R¤:Z®•ã ¬hg¶#s]õqÈ¥‘5ÀÙ]oVEý§À´© ÚÕÆÓh€5Î2µAXZ—‘IºÖܪ>̧:ñAVª¹¿b~ÝW (çõ3ÞG6–U‹gq’¤²œ,+@Û*ZòÓ¦ð¡x¢’kÍýHì«ü[¬è£ˆ©“óĨ«ÇãTî*åGËÍÙS"uÓÁµÁÓ‡®qI·CÍ Ù qëÌ4ÝÜéªGÄIîÏ»Ê# µî Ãì­ˆ'dDìH­Tµª~&Õ>›bÝ—qaUÚ«¡æ™/QK‰¨HWdª:Ï¢¿¥8š(À÷$+¡¯d<˜¾]kÕa«ý·š¶CV_wT²Æ‰vc>SPÉ+Eɶ…•(ëÌitD\&8þÖÒ 8:„Ð[^‹õg³WdZžjXZFñ8%]aª*¿å•¾®DêÏRÎi…Ç67W/#IéX;f¼Ëù$j¢èanÀ×´"mÓ™‘/ÜRç|‰Z@¶>wË,Ò‰œir0 ë9Bšµ¿z£’6/‚¶)íáS ß=)3n©‚4ñ‰ÜÆ^¹¨cÖgÿÕ¼’·+Dý”m¦<Ó%gyƒêã·¢ÖApúá~©nÝÁWŽÏ‚˜€6Ú£¯ÖÕS“Ó§ƒ3+Ž(¶lËr^ûWψ×Q¦Î,——lO~ÔBZíâ¿þûø»J—Û tù[¥Ë¬ƒÒå?‘Aéò[ƒÒåï2(ý¶ÿ¥Ëß”Žá/¥IóÿqJ—÷ tùûAé¿”n?ýñèï'Ÿÿ™|>‡ ª(‡®&[Óã,jÖSëwý«ß¢;‰nà¶õÒ-é•×;mζÛ&ݼ’óŠ«)œØÊV«ó¸¸Ê ØëÜeæÝ×|^l‘°§)šÆÍ‰Àùv­=UÂæ‰ŒÙ©´y^«€ˆ[uþµm°iöük{ÎnÃÎ.ð36€TÊ:ùŵ´KÇ?xˆ¾w(c÷;NÆ«Õ;Ôå8q''l Ҽ¡ˆ¥·®† W5€¶ÇÂfáKiuð„pÔ—3ùs Ä9Š›ÿÿh1œ3kã%Kq‹yÔeÊ:ÅL.ÃD¨CðšÛDMÒEã}ì;|Kuëá̉g¬“7QI¹ï¡y²‡Tu?!fëüpÔ?—‘ûMŸL]áUì+׫ΛȜö3¤¿bDîY©IݾÍ2\–#™D£¾1s“OòE€ìïs|’HgêP$Ùü”åšY46”dOÕÁßùÂÙ!Q ©ÉA—[µ perå²=>m_ƒ"¨¬¸é9Ÿö%ã… ÚßâÏvX†&óΗ96VÒ´ –f±ËªŽé}tø˜£ìÊ7‘wµÆqૹ;Wø+x›·Àûš<2Rk7iÈ{Ý÷í¹½zIá{ÑîƒKj|&ßvÉ%'¦êœ ooŽt%ÿPX]ŸJBÒWhžo© y4îŸýtg-Kóìè{>¡­ú q~)?0]·:é«:qZvlU^iÀAÅ3Å(¸ q¿Ôõ>dÝy€¶^'æ*ÙQmÆ%Ç–4ÿ+¨®ùb~´¬ *B×»(fWAbÑU’2Ï+ñÊ4UŠj/ðÌóV‹¼µ@7<ƒy•¹h[aMXÑ )K@VÚ[VDZ…lÁA%‰§Ëq†ééêç©ÛôÔT®ÆA Ùñ‘wI˜hDTÝšs7%÷q|œp¢Xeñ9Û=tÙ¤½›ÌznŽÒ°×gLÉ„ÓwHÔþ°cI‚ï}|ö.E¨uáž÷|k T¼äôÞ{›мx]T´¯žÂÇbçj©?xMe^Ç¿j?óëdæ×>Ô‹Û£*výÐK n§«IœˆIß3®&!øýžâTæÇ“Mo/¨,+ CŠñ,Ãæ–³°òMHCjÞCðö}×§1ªÃËz« @Kõj D9ñ‰]έmÀhMÂͶrúAŒzÉd—Àع׼[V6 »áð›®~!t‡Í@a7Žæ9?–ò2º¾®Dµ«µ] i¾¯OÛ)¬Þsç2ø¶æ7UMq¢"É™Õòð#="ü¦Ó©äZT>¹y:¾ûGWJWÁbç°aó – m_`F6“¼ªÙªÄï%m˜˜ÈGNúºú#‡Ôñ8®f:Í‘Ôÿ~æÅ.TG¤/×åÓñl¤Ù©Áy+¬X²Ú17…¥ÀG²ïçD RS¼ÂÍî¹õÀQÜ#kæÈš- ³U¬ušÎ‘ÿ—õ8éQšÏ¨gX°&²s$©hwùmÇ*œc!©oÍžx :nòb²r:3¼g$A’·9/å^8Ô¸"oëµÏ,Tш·ù¸ô³ÕA Äv˜²ÁœH\á¶)¢Q­”Ž)e8žbkö¤ðëЭ,ØDΟç‹V"ä~¶=ø€ÈŠŽ6gk–ë·§s(gëL‘.7½=Ú&;Ä>Rpuñˆ¹à¥@ÆÖôõÌ& Ú!x³€ƒ7ËZo“-äj žkçyZ.€|lZË  Ë÷'ƒ Kü±+ÕüðÀ•e'qe`¹$©d§ëÍÕYD«1O‹¡®ÜwÕ࿵=ƒL; ¥hý‘¿—E¢¾.ã¾hé;ûÍq.*Ç•ö¨½ v†ñHù³mzK¡œ`R€713ôKÍî(»Õ/5öŸÉhïóïp#‘"I³s ˜å¡"7ñÙ1ïÅÖpfŠ;YNýßRFµ^T7É!gPæ#˜ó™‘ mÈ(‘»Ès¹ÚÑ_ž ®3è;e-5½#ÿɃsªÏ-§DDz†ÙÄ$%ûMާc«:‚ JW6ô«óÑ£18­(ðÄm8 Yò]nóR'A²ñ—@¥+{æ/L{· $¼õârJŽ=5¤ÂÐ> ÂM¸ªœÞè ÈôQÒúÙ\ßê}èòF,]ä‘oqnÚ2‚Ëq´#/ßûÚ5¨ŸŠ8í³²Ë,+íÿtÐ}4¢©ú|wuš¶†ºXJè¼£N$ÃYÀÄcò'$EZÇ¿WÜßæ:¨«ÔcªŸ§§Ð¾‹—|8¢„±!“hš1tûi׿ðé§WQb>Š3N¯! «”aÚܯÊ?‚Ðë¤eдHgÊ OKW¿= ‹éLÀ¼‰…¢4•sÀW8'ð!Æ;i@DPQd>ï9TPÌ {:,ú)ßÅ®.*’…tüäÒQÃKPÎÃÃÌqR̲r›&rE¥È;ïWF\» V—žUö¨ËIuOò}\ fð ^Á4 eàË8=ÔœbãG:aú¹¸uœàxz\XÚŸ“¢Ô‚‘·¥™ ºf ÜìOvl’^¤–›Ln–È5bu¨‡àïì¾p„ôìK'û:úT@n6t>¨,D@¶S6|„¥ëqªÒ¹+aþw$MöâîÜÖGî‰]ì#eYbº…+OÁauÇ X·Zâ>‘LÄd™î¨1{W À¹<éfQpö‰sŠñ˜Ê‚¾É3p€]NÕ› ™Ã޼T§7|s‡Um.Š"E•íI‘$ñ¼Ä°HãÖ;³(s¬|‰\z5Ÿ YQÖ¿š”Ûz©~äÇAnL-¾§Ru¬?À—}«æ žö^£¢]l©•÷¥Û³I õw¨G2Òþ:ãðÛœ>, Àü^ÉÞ£šoϬDШñèò¬Ÿ,h{¦FÅvIu vÉcGÉ_çfc_:…Y.;µ^ u±ûM?û[cÂ…Sî}’’Ò`s€Vû4 )EíîþžùÎÅ"[$.%˜ˆ&D핟ôM”¹ Ü—„4$RsñUC×”u¡ÙrtǽœÙÜa@øÇ&™2’è/bQÑۣϙOÀ©Ë±dÅQi’ T²ÈhÅ­øå}+ìoeõ¤¯\ ÎG¹ó2@ÍßÇaÚÇ“$À’•¼ x;ÈCÌ &Sn\g¼ðÍT¼ ‘sÞ{E»\Ü~S !+¸¦…¼Zˆî k ý³Ö¸^Å…¤‹²h¶Ê+š%tñ0HWK*Ûr&˾™ :~F1@V.¤‡Ä¦[o‹éÎYëv¤1磿x-‚ÃZ<-]2´rXEáþ$¡$1åþ;‡’Ú…YekóÖl«Z輫î$lÞT¹_öB鼇ÔÏ^Üø­×Œ´IᕬثÄVžùްâÙù†Ïu»ß„ë„P«S‹Á)ŠTCq˜¯K_ ð€=dâ©ÉÀ$†Ngì@XßsüýìßIk Zÿ]+ÁÀKͨ¿Áð<ÎÏo(g¬´\:¢q‘ªÂl[;yÙ5’{@kƒ¨á¨»é:Þ]੊X=¶ úŠlçÑX”òŠ/^(yDŸÆÔED²5†„=â+YE[§Û n8_ŸTWdËY÷ѤwðÅjCí¸ê¼²ÇÔ$Œ|˜ ó­KÏ*Õ îcMg3†ÿÖ˜ˆ:IŽg¾áS!GJ;¯‰$mv'Íkˆ°Aø¬É´Ö¡NZ=‡Èlój(ÿÈm’i¬Ûël·ÍyÐÔÚE=Sx¯‰ Ø@¼Ì›QëD’huü&ú³R‡hÕÑé=ÁÅËÑ[×éhЩ¯‘œ=çãÈ}6‡ž­xÛXƒ Î?-½ÝØÃ „ò.”µ:žÇ&ºö€O.ýÁ>,Rš«V}”¢ŽPU…!?" æ S]€%ùó•Ùž¹ÄMùšxƒ„T²}eØó¸R %Â]•²¥ëEÖ¦Ö¥æÇêøF‰9%uòF-þI_î<>MEÕ­±0K[ 0ÈUõ›¢V9¢Sì‘¶#¿éÕ¬ÀiÇûu*I\ö,Ë•P€þ¦n›0ɱL..†Ó%r†GŠOÆú†uJ.~kÑ`¨ OM›‘rØšÞÊÕ¹žéœ“N‹YÞ>ALÇˮűÈÝÈâu€•(Èž ÔHšÄQi—+oûž¼…vÜßCLœªue%ª•{µJ¥yƒ–9Ä4–Ò}šïÑ[¸h›@Ï SÞKqÏ—HÆ;øWÍ¿$ïâ\OfL~áS®cÄûÒ’5SY}¯öÈËéwJ¶&ð àµäíHRQñM£úCI)°K"ÎÜÔ ‡ožçï„]"‘kËQ>tÖÖ„încvýA57Uòz<øžwÕx¨ÔÖ“xª¢æqZØwGü«ýƒ¦|Jx¨”òe«Ÿ5]bÈš’_TFyYúøì8&©4Í]Hîyý‚]ÎjËíAÁ¿4§e!²ä‹œ©»R?’1 ÂEHÉ%ǹ,¬÷Ì$·Žâ`j;#Eñ`7lGµ~UY‡î8³.¡Ï Œ ¼‘\5|ÇŒÎY!ðq`É‘, %_Œ ¯ñ(%ÃLE…–WeÍö}Žn͸.vYZ…×c&MŒÈ„(Ô1ã†î¤™ûí«|õpï¶(˜$G>"U‹œÛIÜìð_Öz‘ü²Ã\)èÙ ²:%˜z!jÉ3_O¡ŠùÚ(fõ²VŠsv}Lú»Ótmç—Df‰L9é|v¼ºmèv†ÌL½ŠÂð>ä|6€¨¢»FMŠ_òQ¿¥ˆzªßjàMRKÿeç60ÙÁ ðaÈ»ëL 峦—ä»Ïüí›ï©*4¿÷•Þi3¾+<ìTÕ¥‰åxŸÊî<%` ‡TµyÏ´B%ð† ;ϵ«sÌ‹\˜í=Á1%UÎ43ð‘|Õ_Ë=3Œ£ä•Xœ™j©qãz¬Í[£sÒ”?¯GmJççAÔU–X Šõ[å©íùåšú§(özü]š©žÖ·#¨Åz|)åp 3Ë–(ßð¬féÔ¥8`{=„:ºyJKn¤rß.¢½Ê§ ŸXå7i²‡z$” ú®ªHªÇñ<¶¢—,„÷Ìç“1øhý(eU¯ç¥TQª›Z q±;]êÛ$ËTRŒå]Ö'~?R*ž®¨¢ÁNÏŸŠ€ šÊ#+JvVë4 ‹äüqk÷˜mhmõâ’*‰‘MýRQyìEÝ¢2‘%?ñÒ Tfè×yjx0í¸{#»“÷E͠毷(‹ÂÊ‘¢©„Òs«Ã¸u2+ë’K˜w ö&ãƒÏ.­6ËR,.,ïžPWÌzŸ{Rß‚+µV7qžï|>i:(\.§@uè¦"OÃCÙb“èÓ(ÐÙÄ”ø¨•eÇPZÛœSŠ dS/¶Ù­@›¥¢bªif";pòVŠ0¡—^k89¶Xp‘ø”®äË`39ÄË‚á¶_ùìjÐè+)z8Aì±(§À]Lö{^*†Dg¾»ð°@ô\ü,u"ˆuŽè:à¼nV¤¸')GÈïo«ÊÅÚ;Þ ®_I‡['¸œ¯Ýíûø¬5 R É÷)©¯×š¸AÕÔ½fs_y÷}Æ=a%á¦UÚH1)€lþbµŽe_;Ù®ÀÝC954³¾íÓ9—%q„¢D’VÚìزSÏÔÔÚªÁö1µ¢;:b[}4EL†Îç””ö´šÑSØdÒ—㡑磷ƒÚšKúp`}‘ßìÏÆÃ PxÇ«µ»¯ãgkÏö°z~ZÒ 4ÇxØ@NÅÆÇInb [üñþUd®~—ƒ´íÎÛä;òïôT“Ó¹r¢ð(!B~Ú¶cEèy‹ºî¼Ûx½»¸øõ(eVØÖ¢w;PTü¹ÉÕ!Á‘Ä?¥…ˆfï¹õ’Óá#U6ŠfÈÕ#R"¿ÓŸ#hÅÆ®V6¯}Xvñë ‹y!ª/ª;g¼íŒj#±_^§GÐÔ/ßC¹;ϸÃߟ†Ëù—›ZAÌ®9ùeÈ´ã˜ÉÑ‹v]^€™ðòÈKÚÔöðEÂbãÝ£‹8©@u9o¥Sì6nöLÓГ¼u¤$Nr•¡fþ¤{k5?ÔS¿éø:Ÿ/Åp©"òA K•9‡ß¹ž¬°¡.ª`™ÔÐIª+¯ÚʃÜHÚ‰”æÒ©©é˜²ø¨c #ëˆZ$µÞ”g-ùèæ| Õ¦¨—:œFÀÏž•“jB‚Öƒ¦ÓÊ=|Ê?²¢ÝêâI «‡í6¯-͉˜úX›éÜ)ë‡íoGJ§H;®S-v‚ÒŽgkŠO”¥DÁhä¨Môn\”ÇÍÑ8¥B-n(]õ5õP=9ßç¡R¶@ èJ¾6ðvŒDÇõ¤E‚Ž×Î/îýCLxOϲ#Su™l;Iª[ÅËÁu.m-"‹±á¿[ ²î¢"íȺ4Rñ[Y €ªÍšèIKÉ—h‹Øa®E(×’3%³:‘TõNÖè6<ª·zQOE6êPz05qDtXŒîYc'ŽmeëmÜKu`]eé@Y}f•.ÊB5@[°U£4 [­?[â™í5¸{û°Ï­à€§?ìϯXe)á¯o'!}pƒBɳ¤¾}¤ÀeVé7¹Õ茕EŒ*ZL‹ßÔ­¾‹öþeÕ¿çQ@Àtm=Ú·¸C%›£Œ¤iZÊ%‘‹º©WÛÚHz¬áéì$#ʵ° ÀžJßMõ-Aá%>÷V›N¤'•R#õéUÆwz ð 8¹“`‹jÞ<À›Tezj°‘GÀ'^q ”jÅ+Åȶý¼çè€ì}H"ŸÇ‚:UÆÂ •I©ÊÙä•¢N0›e4>Ô¨‡ÃVZÅQ5ÖÁ«ôÿ ±‘Û£'96û0jêt(~—®ÌbhWYlj¤~'™‚rãv¢´Ø ¢Zb?yÎS싪¹ª‚á5½ä’\&#Ó(ÿ«ðù'Òü!ßq9€(Õ:bEñ!˜Xt+FÒ¥MÖôÑoªÐAR®¬Û7Û€Js†ƒâö½ùgÞ™â]J/%ÛΤú±OË­XåÃ7rMîæ¥BWÀ¯á÷]›M}«–Øœ=µYã¹ÎE FdYnš<ßÁ“»Õú“ Ê“nQ³§º‡’L ßº |úŒ\]hPŒÚ~Sß^™•J)ö÷*«È–ä`ê, j¶³j¶„•kÈTèÚ¨X3UUúú!SIOõè—mÂ~«ºsÄ,ë­­“Wåš”g|,Éó¶WN(\×÷¾‡Üã\·‡„<ßõ¨¡ªŸ`ÁàK}]›q®Õ#8é¬s,$U£ÿ~®ëï?àï:ÛVÿm³mõom«ÿ±Î¶ÕÿDfÛêoͶտ“ høp¶­þÍÙ¶ú—³m1þÇ=ÛVÿݳmõïgÛþÖÙ6ÿÌ÷üÞ¯ÿß¿øûY·ÿd\>h鱫ùèëY<¹ÜT¥‰J®Q˜é —ÛñÞëÁ3Ij‚’ªeãz'ëJÂ2P/É$çE;“ä«IoúvY’`úK9’§2óŠ¨Ï§ ßEÒš ÕP/GÛxꯡ&,j'í´¨9‹'Er‡@^>ܪ<öiëí¼ÆY¾!¿û›„:I¢T?5Ëh.í»Ó{óÚï-kÏgݤIÔ½8/ꫬÚß3^¹Eiñœ_ù,‹›R¾¼¼îµ<žvþŠ·Î2jQ@];™_VQ„Jr²”¹¢öŽ•g–iÓx/ž¤StÀ·B±TK–¤ܯMÝó_-–Âó¸â(5]X,dÖg d¸©ï)JQJëÏË£ÜËî8_”¦}ûÔªZöý(Vk~ªÁaëdyÌV3­2ç_ùàWV¯:x˜K§¹å§çFøzËžh 'JtAU–ãÛ]õ·ÇEý°‹.*ÛèruW:YüŸ\Šô9e—Ω« (JIö¦”ÿs$ïЇÞLëêÜøË>N”.: Î÷ÛçᘠÃ!«&_q¿à¸£j!÷Yªç׋õK_ušq<-Q‘¼òkëÖ5M¿>ª.j7i²…•Ý~þšý™®)KdÕ½Jó¤G…Ýck´Ûà=<¾•ØÙò‚Ôƒrw-ßUlA§w1&ßb7(»³›2²CÍÌúéÄH;|u;¿u±œßu§³BȹȎù¼:"o¥lI½:¦ÉÀ“ 9¿H™ê]c¶íD便Ñêlî#¬4ÈÄ  ôxˆ}sY\ëÃ×%ü±ÀõS™·ê–D Uô§L¦¥#Ú1&-i•bƒÉ)LO•Õß…Œ6®O)^…x£A¤dÝø”Ôyå¢å—ºvr9ZÊ'$à¤ç±.ùtóßüã’Ç(FyTÊ麎ï~·MÏ%ë@UýÔšÙÍhõ]«­îck¼›Ä3÷äx}N_ â¡E?¹uTˆ \gŒC¶Õ§ƒ»´¯¦g©[LÂ\Ñ‹MnËòäÖÁ6%ÆŽññ·x7· èà3_ewb QEvÏ9Õúí¨Xªƒ¥³M#Ç&yŽŠÆÉ&‹6l]{­Y®{óžó(ù}¿ugn•¶”¥•Å$‚n¯ú$È“'$H’Ñ’²½UÿÓí×鿣í¦(’Þxï±N+6¸m\Rä/ª¼Æ2Q°ù;öÖˆ…E·Øöü©ë)Ô^ ‡D€êéÚäÍÕ"e±^ìüå ` [«;-¡‰Ožß?ƒ˜ÃÖ‰´ÉžrvFtÖi€§Þ›×¸Óއ,¹®9«Aò>¢‚úòÚš'uù´F‘>˜'†ço¿úMšwõ¨`-ÝíF?zí íi=«|uÒ‡C+ÚO…­=µû¸5<á¶:3ïTÍ·´–ÖÚ¼«éÐ%»bs7Gb8Qò¤ã_¥__®ž¯ŽVøÝÅÏ<$Ñ,ÏAOy:ÚúꪪyëTs{(ã Ôp.©°ÂrÌj½ ñ F{_çš4‘,vO¡”ÖE¹f¿>X)Ëi¦Fìßê ðÝñÖ“Jªðýd)4аåx¥ý¾”§5Xð8£½ºÿ~êË¿ãÔ,ž%z†§ÂÀà‰¥ ¼¾Ê¢1Ú_ý“€¢[ÐróTæáÃEXç¶Œ&äfž+ÒÁĨ,?9^%•¤§ýgèÉ´£”†¼ƒKG&üŽ5iYß¹h„§e¨}•=§M½z~­ÒÃîN#w⯚Æ9FšËÎQå[b`Mª-Hy¬«°RùÕ¬ã†N˜hƒºõüÁùô¸…Eúí¥i«D[¬×ýÆK¿ÔF€¼š7ˆ±žÎÐëºyUâ"Hme€ØŽ‹´B£25´W@©E„>Ûïn© ¶ÚÙÈØìëñDDÅiÁˆ\wàPð³&ÒûtÞJ{¬ªö­"!‰*ŸÛþºfˆ}ÉÍ']þ‹äaŸƒ#¶Í°@ºôd¥*©*6ƒžÅòÑ3§¨¨áÌNÛsÙŽ/ë½ù=0¡z²<É5ñÈ;â•Ì{ËEÖ<Ü´š¹Ü‹øi²þع<é^>Db5ïc™÷E4µŒ1ŠÆ°‚Õ#»d})9[‘·þJùLÔÆXv/ 'íòÀA[•ÉBÕx+‘˪uÐààv|À§qäʾH)ä÷æ@™‡ÀD)7ħǧš_…`)ýT¥oÀqmZ^Ü î×ëh@`kH꜄֠bm£zxùÏÄç¯ÞN$Û¤ØzŸN©kÑSÖmô¾Ôˆ Ïqå²j„–E;‹³ì*¸ºPàSOjŹ%Ͷè¥GŽõ"+A 6 Âñ)–Î1×Ìf8é+½J©sOÉ÷! ˜Ê§ —D@ÇR6yúù‚%-•^Žy°³-nÒÊ),w¥z—[Ÿö\*Ú†ý\Í©EDÞôrÁŽRÜ$ ’ޝUNkzAÊi'ëÙ2=#· [Éè¦Ðé™!ÙÎð‡S;uo zþ«Â£¼z9Ì(¹;©àØö%Ë»2Çaoùî]Û—»rÝëûØ <Óeä?òÛt"¬û Vx.}oNứW’#Ô˜Dôˆ•ÇJ|¯ ¾œÂÕqµ.GðCß—¯³¾{¾Áz€¥‰eöŒü>H1î?ñ”²Ž/dz*ÃHˆºnŒ+> ¡½)ž B—u®E¢OÖTQó Â>އɉ§‡ÝFy\/?‡Bo=‚šLb'ïyÈ,l„ÍRE3Ó2[£JÝOzP´Î»¼ô<ÊÚ:+íàCHEogGo äU+µ×=nnРŧˆÎ¢¡bIºŽzzYg=ÂÕ[åíŒjs¤‘ìÿÈòο–¼ÂvUI ]¦ÌË—:¨ô*cPO uD¨8½¿Y"#ë§`uÖÑFGsÆùzý’å“A÷H6Žeã.]OSM­¾W%/Šp ¼’ú]*¿R/LÂp9Ô™ñMeŽYU‚#ÖÃ^XrL@/B[¬êk¿³ð¢¾6ò¥`À}Ô%ô¦=S¹Ys'(4 A²ãí­S9“ðjÍz}5°Ží² æžÏrj¤WÍoÿÀJò¬ÌMM­¸ ŸXA,–®Ò)û<‰¡§ÞP±J¼¤6™âþõ#­=MNwÉé¨û3¥MW‹)ßU•‘’ä6õÿ È€äÖ­tY Ø@1¶ú{4tYÑà‡F8 K,ùž‰>Ô¦VFpÆ „#A9èô5†‹¨ÉÑÞà<Á:ö>¤P³ •º„aª°Ê Ü¬v15ëj ‰G¾›–@ªª`[sFù}|÷¾‚JZ[³“£;Ü1=Ir/ñÂÉᢸ;0¤u•>¹°Êoœá4å=4Žª¦DÕ€_yîÑ®ÛQV7±Ó¥P$ñí-l Òlœ`9ÿ ø(—«èЬ]•dI7JÑÿÂawbõMÀXŸs> Pz¼€VÃæ/`–Ôm¶ëê—õ£®àÈA +×­ü›®ß>õÚVn-7ˆÀ†=²Oç¦gw{ICý.*FV¨d³ïÒÍõ¢$½Ïç# еqæ•€±õ íDtòpíD…ïHêì­S¹²;ØÆ#‘?òÓuV~Ôo°ÏÙÝ··öƒÂOô [ß…åñÈ8²7`eªègXµžT‰/ÅÉ™HÅŸ—NÚsKàÕ}yæcØžGÄÒõͼd5*U'#˜k–¬#()1‘‡êêE¶¿Ž  Öæ2ø²ÑqdŠ]_ïìN; y–ÔTÖe…|B~䎚p,〴Z÷ôÇjO¸Ë!Âôé>¢r9¯U¿|!Ï5?”ÅDpH×!ú`/V7l+B½ÄW¼Ô,ù¢“ a^­– ­ÛrV/A5Í×é<(Ã=_%êȪ\^e%6_<€;ð¸¿Í‚,O9fÙ”_•œE¥Ç;P˜½ÊÑ}‚Öy*šÀ¯­¢?y_/öjãqÛC†0ôïLÇÚ™¸Õ¢z'®CKâk7%o¨vŠ]š»²ËÏy:Gq\Aã&=z“)½(Ñf„MÉúcßQ|¢gü¨‚;¯Ð3ï=4s"@¯‘K&ènÊÔðžXC¤à.®ý8 ÝA‚™<ù*VÍ»[ß:ÈR¨:Øžaý€â¶P¶=WF¹•aÙ‚í¸h™œÏøFqq“SqðUŠŒ&uâ;Tî³[Û¶VIÞITçÛ€/oÞnVö. ’ÿq6MOçN3 -†¦å6kª Û):YĤusUö‚ð;ÞÃJn€ðÑõˆÄÇÜÍ©)ùwÄØQ+y5™zµþÀ2€ÏÃVïªçq'¨íY±€¡5 nj²{^p=¸#gV§VþÎ×Ý\°®÷Oµz‹Î\F­Z5l° §æ«o-aøËùÎpœgmú4+rd¿û•šøl»Ss-^ý ÝéH­žY˜‹TðÈ–žQçG¾¸Ê º3@Ù]yš¾QÄŸxeÂëµ´`käþ«Hä"¥>ö2HÇ3;<Ò 99¤Ç °Íe´kbÕR7z\XEFOTî‚’¸÷ ªèÁÌR‚©$_éÙjÜÞTºß«kcMr!!nGØ•NÝ’)X*Aå7*šdYg+4omøº‡ÊlÐ d1Éù؇’ š¥X¶d-© Û­³¡M2ñÎßÀ°ôÃæœ—wi|çÑAur²QŽjW¥Í÷—ý©Têˆ&¥~ŠR‘jx‚¬E÷"¨Êô’­¤ºÎg,¬©i$ÐZôSš›jnaÇgèë WtXD£•2…·CÊÔTÄ.°…Ö­óX¥¾J޽àB!`³kLf)ÉhizwÒ„TÐäË7ý «Ú@Á&k<5Ý>ò1í¥!=ë¨~Žq¹J5RbkýÚíÈkc›Úioù‹Tšw8Ÿ_UJ}9ükÒVô" ’ÉïÎÍ«#CÅÇ[~œ›=òg(ø|º‘V›}XúDˆ¡Ù;ðð¸Žï7ñÈaü(“÷§¬¡¬kå6t ¬ô6R—բͱÜWNå*½¯mDð¬=Qü´;µËYl±½vg&•" …Š“ÕºC¥Üغö9?K¬ò[lhàZõD;»^Ê+7á9ŽSŠ Éx~ÉX÷{Ùºzí-õø>+^…RZPÄ/:ªº†zÑ ¦êYø—ÿR›Åಖ+ßòèUÍåžá¨VÄåHd3KÑ1ÅŒøè½dS›¦ó"Qé$ñôÇ.œÖ}k¨R ¹ ˆ¯Í¯HŒö¼…/ÜEl?œ[%ÒEJ«+{À_’UÕÓd«¤ŒAŠýü)kùfŠ_}stÍ©ÎÍÙ—`/l]­³Ðó“IAm~“òšÁRçUŠt´ËS±§¨A…¨ áû°Yjx:íÑ–r†¡„ÝQf`_ƒÈ çÎ?È”î j¥µ4¬U`¸S„‚qËW›§¢Êr¥Áʼì‰LÙ¬8¨ùh:Cô[? 颾UÏ’e=´R’c`u¥èá•“«(µ¨ª<,õü\¿žKPçJð%MêãÈèÇ·öºÚ3 ›TÛ×.<$¯Ù÷¨n›š#@šnSRÚûš2Îs—§5ü+UÆmŠ»`K-¡ïëß&î_®ÒpŽ…ñó#z‚‘(ª^m@Ç£«Â Fѹe8¥:Üa˜²ßÊ+,ŸÚDËwln½²O…)WgSѱZYÄ  ž·F,Ð3 ¤u^qª–¼¥U¶v@—Ó÷DÛ0j]NwʺhÞäÈWE>.ì³”CÌdqò E}1€—ð*WìÒóÉÅë 'òå{?âblÃO§”V :yš¬é!G½póÖŸé1íõ€±4 üŠSÑ3+¥-I¾¬Û8Ü¡|‘t]åÚ¯ÝßåMOö{:'ýÅúÀþS ÛÙLìÆGWzÑ|’h2Îdy^¤Ø|Ž\,ôõT±Ž)òk¤ßIb#þOxy\ÿ|t5²+¿÷­NŒ_꘨–¸sï`3p°CQÉãìO)½¤°÷Pu5Þõë‘Û¦¬bÇ?öÖ=*ê4éw†\U1+'ðþ$†½äáôåËnx"ñ#[qCÍ{”_ðÙ²ëL–íÛQYoÍÞ#@Îö³@”¾{JÕøS㘆™ƒ†§AS©nmè­@»q¤BI…>àó¥o"on@ª#‚Ù9]bPWÃWÙ@è9ŠÎWg=W%v9Ây@ûõyô‘<ºY‰EÑ=!ÌT=ó‹ŠVP¥&͸´- ´ËY|û¢ óè÷2Ni¾é¹¹¾ôi‰ <“±IˆÀ’y ?”ÚQå?Û`ì{Y6ç­]}ôà€àâU]H×Õi{¡¬Û:ài>óð"©üX®k°Ä‰¤¡Ýº§~ë&qNÅz.â@T2Œ¬Uuÿ|yê㵦xÌ+ô¥FQw"ø;Vv*®_àû‘Dãl¶é’„ô)"JÐ$Cf­+{FÒe«ÁÈv‰:úírðŒr+¾ùñ€ì¯G¢Ä7Rwðði¶)ÐHt™¬h+—"1)ŶêÙÆ¸¤(ÖPHgµ•"/€{É ‹EMP>¢:܌ӈÂu^±]Ë}„6³¬-Ã&墥žZµG<†×}i,IJŸI>rÑñ±ôe Ä¥CÚt]Äú½¢„ªjÓx«xè¹Ö¥j8V”¡¥Š¢?å.ªþfͦ§ºÒEŸNkß-·ª)"Ïj¸€íËCÉÇ3†î!`¸Hªe’׫Î*•9®ƒ;…§|5@“¦*ŽþÓDw§?XF²jÚæÕÃ̤nu|\Âbʳ ‘ƒ>ˆR3}W°ê}pê!AÛ¦¨=GˆRz‹¶¯sÛW®*m''‘îQÉ5í ÀPy“íý(Ж÷«O-ÈC›éEX$e³Mo §hUO±Wn‘ïf Ï_A‘ ‰^‡êúÙx2².šãwY èÛrt©Óð*kæðår89•K¥§è$à­ofP’ôõ¸6öqÜÞgÏhb¯4½šêwax»^ùÅ+ó{”žV¯¸íWR² Š#*UާêþÈ·Yb÷´Ýº‹Âr€8°ä»ÛvO*-þP÷žJº7í D퀶ÌV÷F¦Û§Lv|ĉ ²}Æô¡ˆ:•¥¥ÏMQYä”ëŽÛƒ‹¨jèÉ/ÅeÔ¬ôúûq¸¿ÿ€¿ãHà?ÿ¯îðo ôŸþ¶±À¿òå` ·öŸÆhày¹¿<ú?>|øo<ðÜë_|òoÓÔ‚g…ÿ»Fýÿ¿ þÎ~7¤ÿ0&ËO¿÷§¼_üáo†[ýé÷~ÿ¯þôþô{ÿâ¯þÔ~ú½?øÍŸ¼àßûÃßúãýÓïýì·þú½ù[|~ú½õ[L?ýÞ¿þ­?æŸ~ïç¿õG.âú­?rô[ä2þø¯þȪÿ½?ù­?r¿ø­?rú[ä{ù[ä{õ[äyüú·þÈeüÙoý‘ËøóÿŸMQ*¼85w)È”L øf'ùÉS¡h §À£hÂQ ÈpGÙ»®a@ÚüRƒ„¢¥v½ÇDÊ6HXZlíÛQ“Rp[£>é«ú(X¼Çβïy©·Š¾ƒâY£ŽÄ~Ü537‡ß”QIÕ#ó!©Âf¢BÚ3Mëˆ\Å!H«“Gª‹)ŒÀî¤Å…Þõ¬OevGiv‹¨¾•·Ý52SËh]ÇŠ¤¿eT;G¬¡Ö­Üò«¸¯5cï’Nö˜÷têU¡%KØ~9É'ý3ñªƒaË“4ÇUÆžámTÿ òîJ…¤é‘Œ§fÃzv^|Ý;$O¨îÔ•Z¨BwNQY[1•A|¸“ΣÓž¥”5&xç¾äyõÅ}®:ŸJesŒ¦+ÅÍáB²Ü¾¨ÀáRiÍú–ʧح.(<ËcO;*G=j÷TA¼ëÑŽcqñè–ºMCÿ#ž÷£Çû½Š¯\žºõ²äJ”ìõV:L=±3´²yé‘uÖc8ÝÊ»S›QSõº;(‹úXnÜý ÞšóòicéJf}r~zÜÌ»Dçµ&Ë9Q_F2KÜ”5š?y´Ï[Ö‰çCìr^ÉÉ´¨?UÞOTÄe«ˆ¯†á³X¸7u‘­3»’Eå™>Ž˜æ[¹Œ{P±ÚG • Ú뇫o™Çøyª5"πʩž®˜Ô+ }ÆÇ:y·Õ`:íx­Î55üåxÖàðVüQ$êcªÌ×Èm.ÚTòø>ôH»‡N=&wgd-(T^53ìz]EÚ+à¥äñ{Ô§…;£ýÐ/"*ä>›/…ŠO–B<Í».¼›Ë Ìï´õ‡Q­MOO‹|ÌG;ÃíìpžÒj‡zÏKy­²ƒªÁé’ठø´.…4ýtr~O¯$v±ŒÈœ›¯IþÖ°"Ý\m/¨¤õá@•@Ýç6QrU|OæÃ¦l´&-[}ó¨×Mì—ƒ Êeêp ÍcSʲjÏÄ0iÍù©öŠªs*ÑñÆGÛOgem{rw¬ÔøeGôöÖU”ƒÔCö …âñœpŸ“§5ÙgÁ UvîIÊ&Á2;çU$uRêsœWÕÊïVA+Û×»}¹ûLôH«öY´‡åXÅ7¹dß<Û¥ô÷`VVë’Ïïz¾ÊOj,xÛbŸízÚz!ˆ½SîÑXÆ9"•ñžN®Rå]=Y¡9 £B΃ ô üRâ¨Fš%gE›´Njq(âjçã>B]Q¦(/‰Ûr <¼Ò¦áJ“³©Etî¼N¥.[®v•ÍvÑŽ•(÷rî·“;ëÇò»B—w˜K>g”“×£¬á÷*~7k&iÒ½6©ÔƒÈ¹lk£UžÄ[ <½õ+)²•¶‚¤Ùúgom/™ßØëP,ˆ´›e³Rm„Ž7”™æ¥›êëü¼«"åBoÝES‰(ÉgB= ÌcVôóyTWb!Ø7 ±ðä¸:¾LÕ£¿*ÔåÍ“-Y÷d_‚q¹ª|è°k9¶®ïåÉŒâNK…]œT ×»ùA>ÈàÕïl¿?Ntr«íLÃÇÉfz—Êg¼øaäÿ¤lðô´¹{ › Ÿï[I]å—ï¢N4Ÿûè€Åû¿²£‹‡Q%õ“ðF–âmC9z:ÔyÊv«§jåÖh¢…#_•4×ÝBÀ#WØ8RjÉä‡#—<æ–äû½Ží»•mÎŹ )ïAžîÌ{Iîá—æú&©•Mêlž)=k±«Îtw;*Q;–·¤|í3ˆ£oµ¯'!¡qlo3Çý•Ð6éô&æé<T\TÉdB{=ˆYºº&µ›»æ¶s‚¬$çJÛkå>fàä¥ìÂdIq½ŸÂGEϾ!å"$ôøˆ¢Ðú-Ø‘?ð¾—’|[G¤ö$KÅ NJ{føØ1#)„þò9} 4}JpnG{³÷"`umK*‘ÅS2ºƒ#ú­ò¬SŪGAfÖâçܱ µ·ü8=mWqzµzÙúm×å «¬š3OùE§MÍqºšfÚþ)‡ÈBÒqàÍ7w=Âéx$©-ë—ÕxXÛ·œâªúVàÁÉ]P9o!:x”©ï% Qéì$_-ÀîDRX³4~¼ÊE#o_@D­„øÈωªzìf›F*Î…« Ú=ótX{ÍQª¼×1y)” |@ÐvNAgg$¥J›Ø]+L™&Pi¨æ®¦3{Ù˜Â~'Š·Kj¢ô$ ‰—8=@”ëvÐkh¼¥%WIénLe¦&Å7«][Ù{¸ØyϤ¤yæ<­Ê‚Ä#¢™škýˆû§!Ë!ª»Ûb–m##-ÊçžÍ³`#éK Zòh#nÝlÞUrÄ™"`ˆÖɡѡ)Ú­)Q‘ޝuS§½ÊÐp¡GŠ>–·žªWëS‰Êʳ8 õÆqËåZ‡©ì–3&gÿËS  éy¬ëÌ9/‰‘-^ü€¡;%ùXÒÙBa,É/ë$¢Ðö %°§f@º®¯@ß±lQ)Ü^·iy4wXR™‡Ñ¯€åHy(ÀžYíܰÂÄ$§$’ëæ)ànLÐØn[SeâP©Nƒ&GgFß—ßÝ.õ|¥[“K¶—L&2Àã±S‚R]‡fƒÚ–Q«gÔuX˜Q)×>§(Ÿ¨S³4j³]uè··?YWß*Óóì´Ò&+ÍZ¾sÞ)aæìžÎÍ®Uï=³BïvVR&<~~X±…ã&Y‚­n Î;?“ûkktXå[Î:­ê³¥ë5A‡çIÆþ”ÿî?$º¹Ñ6å¢Ë2µ µ¼fÒÚe¹Õ’Yú…Ë™¿]ͤOƒO§V晩¸›!÷£Ïu;Ýã”ëßQ›eBâz¬¬ñ¹Ú¿ŠAé9Ì_©Ðp݇…\tc¡îùuœ#i.™ß)±M“L"i—˜ÞurÕu`hö><¿t3,;Iƒ±„Þΰ y1õ²3T—(w†¢îãCÍÍ©¾:{φ ɉç,¯ãUÿ¦PrÜ:› ˆÜUÁ›äQ´RR·•&¹ôpÒî•íeëGÿ(-ÉyD¿?‹ФžÄ,jP‚x໌t™`qíä°÷vv‘\t,xúTëúÖÞ!(H¼-DÐñl‚¸Ó­2. éÛº<¦6õ¯-ýV"1bª\ëA².Žß1L%Z ¶Ž$°¶L΀:N?±b¶¢Ó†—Ô*ɉÍfO(sOÎNói·ª—;`i^öËJZ¬ê6 Ôj;6+QX} ewêÞ8iÔADl¼w¬×CþKÅðGß’ÒîRì{£$Ô–ƒw:õ(.ɳlŸHÐTÛŸ–HúA7ÖžÂ\P<놠²¶bû$1–ƒ”´U‡43bÖTÜ#újŸ©gæ^:€ä¬O)ռޕýð)˜-(ÐùŽ__zÒ§HbS•3v‹îÇÔ'Î0¾ÔíVŒìû[³ MvQoL‹(”Ÿ 8æO:È›7D©j.‹RRÛžj»(–Â+ |g—ª0ßáBPÑ\éöLÖ„.$$8§ó¢·ÎgéXwû¤­Ø{¦²do°Xƒ@c›>ŠI€Ë_››ÙLË%ƒõ¢p†˜.PàÖ4MˆŸBCù’ËšÏÑÞü* ¿¦Í"Û´ÄHåFØv:î–ó¯‡còù:Ë1­³Ûu††c ¾çæøu<É ÕŽº³d­c°¬bómI§ñ: Læ!.õŸ eYiÅ:pk½Â-Rž© Óì¡ÁëTsîPXw²Òº•—9[žßóŽ©UÆ0ÔÊá¬Zǽ‡Œú¢2Ÿ½Vw¸LdÔ¢0Å#ŸT¾â‘rT:=ÛôÔ1ÍIT 1å¥W’ÿy ì°õ($?QÒ~¹w5U9¶^d[yTTGÿEÙ"È=žK]¹|Ç@ÈÏš›Ù¤<ȵ*Á“¹\‡*æÃFí²%ÉWíÚá²õôb3oA•ÕX° âˆÄâÏü*Óš½í!¶~¹‹²S·Æä9]€µwd[3±øã 9°`EGd&;+ðmX§8qY¦Ëçy”Š×¼ÜA«Ík'9‡¬Œ¡6§*’ñàÇЖªß™€à…ñ*ÏÀ`VŸ$ïéÑy oÅÑHÚ~$l’$«Û±’$éT/}+TAèÏÉ@`©“…)Ö0ÜÛ7ɦú¶˜"Ve®HkãLéîñ¼<à¾Â“$JÒQH#o¥Äõ;F³VW±Ífq,ñ(Ÿ;yÝkÊ~ó¸ª;†üêlY³QǪõÆVÉN¦Ó­ïtÓ?‚t®´¼üÐg¥‹mî< Ä¬’î£L¡ðºN š|ó(ó¶ÆIŠÇpÝv$n.Þ‹µ~§^HJð×uÔt”óRA¼{TdãuG—z¸)ƒuÕY0N¡>6×wI¾²D9>µ|² ³p¬ÖA¼ÕHM-Ù KÅëÐæñYßâ†|i f°r~'²Ì<À o#ln-Ït×Nž i\c‰»µoVü‘ÁÖ%&Êv¸<Êù9à¨PhPâÛ6yÍÙüí_æh5µ¸\§ü tØÑTìB…Vþ¬ ë.*¦ªÍAýG!J¨ ì§un'—ØçÒ‹¼ —pÒ9Ykñ©u“ò£Y ü[eÄmÂböãô­Ð9àóT²z”BW‹R¦­ß—ÿaHü¸çÏÁŠÎx“Øìn°Ù¥‡ªžâ¦mú°ýê,ºØw\¨§ÛÃ;.£I‹à=ºG8†J±Fl+`õ*jæ €í@Bl7}Þ¬±ê|å ‹n½Ç “Êg«eªÿ!©s )ZC»]Gp)We£ä޲kô+mšÖ(f¿¼zÄÉiÁY’fN~Bj 9#;îÚš-Ø€)„³Â–}ôGùŠbYMËþÚnõ*y­DWʱڪaJ×»T áë¥Áƒ1Àôm6•nÚìPr¬ìxvN¢ÓNuŠ\20ù3+P•vÓÏíÙ‡¨9bÒ£…X¼ÝZù±I¢#¯^mA=¹ûúBSåWk´*ÿS<ë‰Ö²×ŸôýâW_³þ`Ÿ|ùÏò¤ÎÝïEŒví°Rï¢xPzspÂ(;3IâgÕg½;¾¢ÐG©“ÚåãYÃà;¶ó–ä^ìTÆ“¥E»¶,R½©™Ìi³;E R¹“Rk†€×“ŽKQ)A5EýX'UfÓ¡xÍ9ŽçšzZ|ŽûR£vFHQ&2ùg]”¦_àʤÎ?!‘z•Š‘,Mj­,¶héìB}ÚkNëEv˜lrµJv®ò&{;j šHÛ>Óû£Ô4ØÉ*=²”`¥´ìÎn%¥½Ú*¯µâoíŸ>ßr@0µ4>A÷ë õ}b ×/‘¼žÉ\tå ¨ï<­/G7QÓÍs{óS'çÞ<„<šNIô ùÙò|–‡©å²9pG"Â< -$Áx<Ð%Ö«Š©Ëùqná¶à™ªems*U•ž&LŠ’ ެ–>·*Çÿ¸ŠwÚ˜\®¬ËöP1§iÖɤÖ_«Ucº¤nÊ%‹åÔ;ØÕ™œ›ðzVf$1WrXªd\" 5lµßÔ+yQ“F Yâ¡Z»«‚*ªÖ¼ZÕÕïòØFy+V"€0ªÙÉ|©8+ƒÄãzЦìtNÓ±,hˆÖ…5ã®àD­—ïK“’ ´š[<^0Ç£œHtLÝY1Ź¦à¬ŽØ¤ú¸/Þÿ§Œ™¯‹âËI•W÷Y °—À©eS”¨$êŸÇ]Wi !w,pâ#x¢P¢~ÕËÓ™ Z lø®±ù{ì©ó¡ÉëàÞ´Ðbc§.ñȺÕ^ PWTZ 6u«"p+Ù²ù6hWâ¥&ÌÇZ*É•ðìD·TÐD PñÀ§µ¨6Ñ]n›ÈÑЇÐÄB<ž…6s^eT­…Tˆä1åºyTY†{…H5’ËyjÚ·£ºcÇÈpëxù·É,ã!˜-ßÓ?‹.–ÔÐh³ØxÄgþaJY›¬ÌÖT†Í(w •”7Ÿ¶B<…—c ^\žàOðAVÌ3u^ŽÄ³‹ø­×1>àÑç°‡½%?yDF[I|ŸÄ m—ùá»\ìXb½Fgâó_H0;ùÄ—„xg•_@±ŸÔH¯gÛy8®¢ ¡–Ÿg±»XVÖOloeE¿£ÙLÂ% ‘vœró4Ðc&M@›ó¼ûæå—¨_Ô}Ô³sP@·j.YçÀ±ÅJØìßèNЭ[WÆÉqw§êUãއTxÉü\ä?ߪ_ΨBtUŸ6½ÅêçMzó:Ãýiôf›Ìy×*›sÁiÇᙀêX*Gd³/ˆ%@ø«J  Â#Q™Å®à–Żݟ8_±|NH%ƒu²oò_Ú6ž}I5ªqí·žëÌRŸboÅSJ[MNYxL©d-Êü9ä‡RHIÖ 1ë {Á‰G ¸'ç^«êbuâ§BòÉðÊ»ÔÛx󮶉3ެ2f/¬ª”XØ\A.ÇÔ„CVHbßT …Fòò4a³ÙâÜ HÚcOÞ‚Ç!Š#ög‚íJ_usJJèR’9H›À¥†]£’›-[¼òt¨B{BÍ3»¨çf{Þ)dêÏ1œõÖOÕîâç†\Ã/¥*<`=fÃ{¥Á3‹0ð"¦¨i½´Oî:FñŽŸmCÜ]¦S9øæêº ¦ÇÛGÁl)ÐId¾o]çˆ%¶Òœº€Ú Ie˼a%È:šÒJìÚ8û´H.œ,™eé>_[c€8WqÌ‹©[ æ[T‘ŒØ¼ëê—³ŠsV[xG "ªv÷Ù#Ó[ªîã=Ö.Ìë8© *îrWLƒþºoEZ÷,}j.iO>š¤1‰uF ‰,t=Uçñ ÿC>4.@>AE u¡¦SƒøwFîì­eÏp¿¡¨ç.—~öÉ™æ/ ¯ÈЯ6¯GLm:ôkŠƒèÅàÄ•ˆ‰úÀŠùöŒEâiÅë*㡲ܤŘ<\çÑòôX}Æ@­Í>Ç/Ù¿°Z/¥R­åO}B>6¢îß@ªNßvvÀwǬÚûsKªÊ²âÆ¿ºlê®cÛ¼YNf2ÕhÙʃ·ù¾·r¢7wóú²V©:hG.iÎËL4¹œÅ¦|·ð<E2ž+.°Ðƒ*Ê»’§Á„/})†(ûT»x_Õ|ˆã,вyÿûQDü¡¬ lv°³@ÎŽûñš¬9v鯍4²ÚߊWA€· Oà?©4 užP—íÇb…rªhé§úå3¯n:ÞhXQ3À+÷Kö"f*¬“ñà”ÌÀÒì¼*ÏB­+i£Ä‘ ƒˆè½G›G±ÿ…ÿ²íÛGZÌi风âUÄ~å*ޤŋiÙ+ÀšŽÆ`«W³f ï$}¦Y²T4€Ðú$ÆÛÜÎÇy2i'‘°E•¯ã†ó½;G^ÈôÌ‘+Ùfê—_rˆÂ8 „èÃY†Îla°Ä`añ!|:u| ®OcRÖ…‹X—ÕËqxo*) µtÞgXj‰{>h¦þªSkoj8û!m=¤ˆq}€“G_xªÚÇÄ­Š%ëûMà”zhA/×ê"ã^œò××yýÇɳu®¢Ú@O’Ë+µ”&dñŠèEs¨‡Ç­uÚš*™;¹À†g^¼Ã÷‰_~‰³¼àðõã[ÔRSiè;ŸK8?þÊ]Ž¥r¯Ž / ê8vpËQe~ È¥‚.„Ö·ˆø³Rí.Š@u\êt,„ùD=}Éºè ª[ ׬1BâŸxï-÷r¦#³s•‹5ìUŠy;rÚçš~}qyú4±bóŠ-ÞÝo¬¯s’s´÷)¤T´$›fSÚN«„D‰£ÃÍK« ž·YHžýJ KŽR¹«Í×èIw|Þ5Óý¾YÛp=Àߊ›ÊlEsS>j¨Ø4•¨•‚ '3‹âûxvóZÊÄ×™kµIÁÜåiF CºmóÛË3W¯.k¯ÎóÞ‹ ¶@Ķȸ.O~L4Y¿r¨tú IŽÊ’’¶C$¦*Ž×£›J×Ka‰/=ÝÑTàã•ôEyÃ!ëzWp{QqÁVAÔ5ðW~,ô8§‘º>KÒrP(¢+Ñ·˜÷¬Ø$ÐVöt&/a§¾Öv¥yÐæ±NTfª©f:Ÿf÷LÍnö¹ŒógÏ/-T¾‹ Í«§ KÕ¹@Ý¢*~TyçÖ\¢÷3màÿ)R{ŽÃÕ¯à Ë•Éó¼øsƒØ/âQ€ËyuK"SAµSÊP=‰/GÆöÔ£Gv*wA’ea]zQ€­ˆº”¿áp/N7_™ ° „bèñ`·• §jç©Yä_ tÕKc?êͬСe )Å%G­Ï¢(FAAAÈÛÑ€Ja­«®.ûõS~¯8Éð*EÄN›c©½K? 8ªÃJ¢1`Œ)þ£$Ì´Õ ý<éªJÊòž…Ô^.óžš`v„nïE%O* ™ó½ã£Š Ãf6U…[NEÄð•Yåy‰m”‹,wIάH­®ÇاRKl7 ®!+]¹pÇ¢Ãq|xT#•ðŽ#²ÀvkXeõ'6$%ÿø9e_¥t‚Z·(S*aGzóþŽiùmœÈ i}F˜¦pÿRßh–YHÝ>7Øv²C¤o~ õ@OQ<ãAJ›ˆ €©æSûR)æzé G áÌD(RM¿µˆæ˜É…¨2}l—n CÎËŒÄäõ}ÞƒÆåº^«þl³ŽP E£'D,KIeÔÔûžw$eÖ--¦j §Å€ºE2€Ê‚)‰ÏìÛÙ¬ƒ=FBªÖæK†‚ªÜD¤êdD—ñ‘m:ë(f ˜Õ²g¨—ä¨ú:â,ʹlb»5Pîû¢@(-8~Sƒšœ³µÀ³$ 8ürÁ%úêÔV],aý )MªJ”¾,b‡'ú“ô–}í$Éâåið§ÊiæPI@ùëéå®V‘Ž®4^£ºLRÐËñI³ãV”\°XwÔí¤eO~Á§à䑽¤graª—øÛÞ …5sYN ·ã7eo= C[7=v0£.§Þ&rX.òfÕ}˜ßafÕ{€D‰=!lPƒ î9Kv‰½’ž¼ 2(Kã™åz^V”nfÍ£ËB\;ÂT¯Fg‰ Ôy}ZC¿]E£mÖ“ÚL¡G:xJ¿$UßÅö.ÿÖH’求_åYÈ¥“ªÿ¥ŒPŸQò²…òjúw]ë°ÌÕÉ>äSV4IP1û¬ŠZNžfô¹½“@%3]‚¢àÍ7^Ž„¥k{øV'ì)…ù'ª<ŸÔ¦ê,gµ.‹—À*ºséæ@ž²ï÷>G2…øýu›A¤íJˆ#ŸOuU<tvS•~×sÞr­6Õ¢ã™;”Cëª&­œHIÀÕïP.“ýn‚_–(°;Põ 6û¾ÎìËJqÜÅe>êÛ}­ž9™Šˆ/¤ÒÔ·ëŠWxa¼UÀØêâ¹’·«ý¯p4ƒåϱ¢þd­©ÚÛ$ø{”Oà3l<ʦ$á¾úÆíL–84Gçeš‹¬ Ýº]iVÞKŒ U»¤Ú<Ü„°Ë}ËÕÓ§¶…93w'UÕ7>ª4eçïG¸Á›Ÿ˜×Ò¥£±WÇ£¦^Ž*–Ø~îS=‰ÖʵX™V%ѩˀ*©¨XXfúÚû‰<UZÓfÏW¹‘€i7ßš?º;,=Šì×Õ Ô‘f”®GÏè—lch+ò2Là’8·*ŽÔ›êå âœÙg°á©à!PË3 ™µ­=Ü3¼±£Õ×¹Ù/ÜÚœ%«>´.eÖ u*;wÇȸ¨ö;YzøZEÚ{àÞe%«µaé , f“Õ×'ˆ«ñò& —¼\Qo‰cGôÑ­<jò2·:!4ÞˆŸKQÕ5\éS ¸{Š:nÅÃÕ©G‚+ïZŧ%‘:ZC;(ªEz*9µT¹O󌥄QS¥¹›y8™Ér7ñªù*µ™¢rPB>àù:š¢*Ó¦n-Ãn×€)Ë2cqHíÚŸ"Í>w+ë8“í –€³îKMwóÀë– ÔÀ¬¦°vÏ-ÃÔÑÔ1Ò¦(õœ§œ¿Lz•è*M+“RÕâj[APÀyq,KÂõl%Û´m)™”H,®·>WÑe*‰æÀžŽêò,ïÖ²° }x ’«äó+øÄòI§YÚ¼‡• à€)”²‚‹ô³VÀD¯%× ”VQHCÌ4& Ä /v‘ü‹‰T=Η¹À× !vr®j)g<Å1ÍHb!d5™,Д´ŽU¿£—´«Ü¾G ÝÁÌ'ñ¾<·5µÌ—½û\Ò UP]Ο~ù‰ßQm[Pä´Nßö½Q5)9$®Ó§Ø1Ï 9ç#1‚â•;ÆeåKc•èª+ªäåWU=´S«lÊc¦.»lç©û$‘ºKU*uGO> »HP³[55…CÛR)Ç£^$¥o(r‡1°œkø¨”b%¨Ëg^¨‘BôL­Àþúœ &ò0Êë4±™7ÈÒ𜷓ÔH„Ž5i­ä%ÞŽÂ;m‰ éˆ7I'¤i‡DrÖVyÌ]’ޱ-câSH1¶Ž³Šô&ž´“ z¹yˆ.z’»|âˆ=Ý7m×yÒK®¡°3©æYݱŽë*&|KR·']D_u\Ÿ·á+” >æÖ¹®®nmR@³…(ÒmýkE<;£q)T ‚¾­«/G]<þePÍ9·“:>ºr°_—¹V¾—Ñ^µ©[ïI‹Û¡e¥Ytm|‚|ƒ¸¬F0®ìlŦŒ\Ã¥E©ñ°Èv'ef>ÒÁÞ(«;N‡>Ü£í–ù©øË» F¨½â÷ŠÒŠLzrQŠvwÔ˜]’Ê6õ#ŠuǤœøhNv¿GI1Ÿ1üü^¤©žÈ“½Iê'·ñÆ´Q¢Î rØtx™ß=«&÷²®Õ²Xb…›½•ýT—GW’^öà,ã\=ô@î¬Ù~:1Ùó8+ƒyõ™–ã}Iu0 ÖDyŽwÐ )Tc,ªëÝj"'g«a•~§Ârñxq8¹²?Yžª—zÜÛØ±ACAwq“¯ŽN¼*6Wõk%È?N»-„?%†×]t;Y¦™äSR>3µÉ®¹E«‡1ú’QMG Nå‚ùŬ?sREÿ°É&é«Þœx¦Â^–ÆF2¦§$TbÏ]¯"¾U‰Žý?t(CwIÅŸ© ˆ‚s¥—ª¤+E?¨ËyOMv²a'Z]RÞq^ý-UÛLJ‡ ©oÀYÅU1 §@\ZŽÒòT+¡ðyx÷—ÐÒìFF|$«€Ü‰¹À*¡,åŽÏV¿KqVõj 'µQ!œáد••¯£Dg5jþœÅ"vÉXõÔ!{ª9'4AѱJa¥Ê¾ÍµOVÅÙ©Àb“ÇBìÑÿªÊú!©v9ÀòÚ·ªîU"€öˆ)PìòÊ%/ïÕ— £`dñ8…;ôlbY É {uH–HG:mYÚð½<Œ Ì0Þ¯j¶Z$ 8@¸Tg¶™¸õþäù©á´Ë 0›ª.U¸¶ï³õü™eÎFdoÅñ 'õdËÜ^êk®ê·ÞÃ_ø04´Ö¢,kšuliIï2®‰ó£¶æ#éV| •lë()ŽŽ{#ÙÜH‡ÊcVSlq:F£] ÿ«´š\O Ár¶Þ£9¢r|âP;Ú訿à(ƒ•*š”ܳ±W”e ÛOt™ç®ö¾ˆ²Mç9·±†©C Þ[ÃìjuH¢2äýDs¼Üчºš›&[Í£ÎçA¥óˆ²ªtèñˆÐA¥xYB:žÎ]Ú,ÉS-g¢² û⊠òºdç¢Ù$·>G4Ù8Çž:“ÌJ,"µé×Ü·ŒIn'ô…‹ðØh‡O\u¯fÞNG“_YéŽõ;AilB’&Ø&j $ž×á{‚xUVÍ@·¥À*aãî[Q|VÉ Q‡oд»:x¶Ü]ÙÍéf!ЀÁýz,½‡Ãçüs8*¶6‘>gdC>ÚóHu!ãQR]ü}Öu:Û ºOØäÎ…€žôxŽ¥5ƒ‰jÿdz2y˜|޵/‡t>øQÖéŒOØvóƒªR¨­ ½1YÝ@ÈÀµ Hé&¿ûPmžü ›ò>PHžû0Œ†$šB»·óÔûfVG©€û¬Ü{é8 ëĶP+[‰’I@vuÓ6©·ÊKûÔçÖò~(i®(»ÚƒÛàöHõª¾|²¶„G£ø< «s«/2o9ƒ ¬²:ŽG,O®:sPïái,Î¥õq¶Í§­ %—z*ª+¨Î/i¨ŒÉ$·½Õ> cöÔ«®"øhµ§¼iUÃê&DeS(WË[ ˜fÙˆÔo+ûöDCÇ¡A éM¼4œá!¸èö"bUhTQñÓ+a‘í?éZįJ,ž ž¡¿Ç•lÚ{lVOsœ O:¬·í¿!²²K÷ýÿ,ë9;zy:0!÷Á‘¶ù9…ξϺ¼×‹Ø¾µGdE(¡G¿Õt^WµAÑŸÇ Êïu—Â<óóø„(Ѿ#ßvûobyŽk™Di¥¡ÏJÁM™OrÉ*K'lê].vî1ƒ8ts©½TM„‘–ìeHF“zXõqJJP‹ó…]zôpË Š¢_.E$+j®6ˆØBq; wÙ©‰bÕz¢;3(µ >.2TÖ„ÆH§£yÑ~òD‹¿&G˜ÊŸ=!¥V+g/’´aêõ» _RXVÖHk+M ÉòŠ/S@Y½›£œ_CzÓTJß®gÍ‹¯ì«Ë”!“EÖ;ø“ 5rqì ô´£æRI‘Ï lÓ»³®t‘rT;w"6EÁÔâ(_ éjV¾K‰ZYµ]•(Û¦…—& QV\»‰nòž÷mÆx@îý´ïëh¹Ýüê£âXwîŪgÖAoÐåÖvø’3+9?žê1rÙçSoÃ3ÕA<ï2÷àŽy®–ɯcnË¡h-y42ço³Âó«§ëV?¦ô<€äž2P ¤¸ QVp²ÞâIÕœ,ÇVZ½®¢—ý¾úÞ’È<`&?Ž3HYY™ ”IXMêy*П£ôþ´õ¤»ÙL÷”–:ËäSÔ+ÈàÑ?—Å[mHëäþ¸kªÁ¢¨uF7/"iuôbxJ €Zn:vòžîר?. Ÿ@°‹ `·³…«PÒ¡–{izÀ†gÄþ}ØÅ‘@nN?@º¨ž“êãži; yíEé$Ã&º#µ¡vßÝqY|ßCmÛN†w ÊrQØ'ê:Ô Q.¾S¸E>¤5Øô„U£ Í ¦š<Íj£€WÔ*3íG*œq±•/,J7CñP¨ñp“-Ñn Ûz¯²o6_{I¹µy×ÁVyè«(Ç~×ÇŠû×6‹?«w®A •¶~e_ÚÂYëAqùãv¹¯G¯ÃZô÷{•«Žÿ4j-ý¨ôQ·•FÂrNêVAyj ÛˆYÅ“¦¥Á!oG£¾Ï-Ž¤ëƒ°5qRy œïÑI¹YO®Ò©O<í"‚Mv–õép:Ƨ!é.­XÀtp8¹4àæÇ+”ruëÇæYnšÞæ¥Ìv?îÐéѦy)4|ë Xg|Õ’æP}¸áÕÔ—å]j£k²Pƒ76 ½ÂagÒ(:ýA@T¦LeB‚–7U~¾7\I@){§yáç«Ð üqB_çû&Øáv´†ÇÎE²T“bd)0/… yÉ L·rÍÛRé‡7fp¬JÍ"õÜÙç¶¼mï͇…æÁºGÜ`8b4¯Q30P8~ôÙ}£² åÈä­ÈñïéC}Ó˜eBéÚDQÛIïËYè"*ãRê-iþÛ˜Æ# ªÖeÉ^JOœñMʃìtÿñIîJ~?¨ÍºÂpgw9$±Ö£Y ÏÓƒ›mS†PÝ*-=u‚|å›Lnu ò×¾ávôb& l²<ï<ÍW=;õ„*.s@pÌèÕ×þ‹Á)J3É­ïpŠ'AâcUÇE÷\€ ê!9a‘¢Sµªýy.½ TåfuJIõ­fÇØ­.¯ŽsI?\tA"Ô”òAkýÒ¶Ï1ÏûgáÊ]8jnˆÍ9¤Ö–4º&CNH,Y“Ÿôû¹¸–e¥Î2»,¤ÁÁc÷¸M¹-˵HŠ´__ŸáìÝgU}£ÆËr€'Ì®ÿl,’ݵ‹x?È*槤ð]Q›¤ZÜDà´X’.Û¯G?PŸV5 *5Â…~û R… Q‹4º¿¤&«€òþ’ d‡1Þr=×øØÎ_Ï1R”çÜðd5²â´'ôxš•¿x&ëj$øÞO"6¾|‹:$×åÄ^%&,iÃ,[Êé&ûu$ó›êî—3WD‰;é»û:@NѨQìIË;Ò}RQ÷•ÑA¥ì›CrCÓ6ä"r9ˆ¶ã Ëi–Ör ´âhTi¬§!µtõUÇ ¥Vö?•ç·²jcQ›“ž¯ÒÔ`+vÀ··”O&ÇM!ûª3xÔ@–܇$=LJ²Ÿú 0£t‰W% õsöÜŠt9¤¸)ᨪÛ8í%¡„B[«Àt<.ßF[µNëS±É7IÍ6Šú¡½Þݳý;ÕÇ&M8)·ŽJsµ ÉíErÑÔ˜ê;:~¬NÑrüx‘Òº®H¡ècFT´ìVq²ÉËí ’Ñw-núnÇtåun}tßÃxqìø@Q=©p¬'Ô#©µ9Ù?(E5ÊõõÉëy‘\œh‡@RS‘-»Ï¤€Zuy@FA±CÑš†êò²S–µK¥6tj2yÊX‹4¬„†Ú&<  ~¶Â“Žò(+êõÈ·ãß1Þ7ÆÆãÕßmÛ/eR³*B`ó³¨x5ìžC‡õmý‘>åƒ?œaSNDªüÝ õ‘~hž²T x¥ó@êÎ`ÈK†Wꬼ59u)èíVªô®OúCAMáõ7¦Ý–,'*+åX©^Îl*`cS»mù`T;è—RÑnH>•j­ʲ¯]·È :šNSZ•×kî¸Ò–ÛS#õÊ”õ¹Š£É[=9Ö9»¤«ÖÔÚ­¼xþ€Ü%$0,û0l 5ÈÂQý$I1«f“¥{šµëâ¯ì°ë­ZıÅ-=gËÀU½¼?oã'ÞÃÈûU>)ÖKÁA±ÙÀñúºdk§4ᥤóå9·ãsÁ>×(ÌV†*ôë#¥*gý´M±®h`­7UŸ¯÷Ž:4*Í÷ÜÔ‹Î ©¨P‰£M2®6¾J¶©Ã­ ·ÂÆj¯óµï­¬¤æjËÙÇøõ3@#ÃôóïcyåKÞ 4=ù¯yËxÛï¥䈧px§ÇûŠyFþí#1­sû£>]8~–ª±ó6ßÚ$ÊŽ¨ñÚõçUmòv¢•xqfÓô8ÔJ–JÖfÁsK«Åªˆ– {|öÕ$––*cèî‘Í-GÏ+ÿ¨ÒœÃ}56‹<@ w©¡ª®ÊíDnåúÔC_bäêRƒÔµ;†Ž¨Î~ÛJÒÕÞtÛ;aSŒò›ÀVÖ¼n„±Åi/¹Ò‡omÜÝVPU…’RåØFOϺJJDÖAZk8HÐdØNˆÎIòÔú$c;;•HQ\¨)¼£evc?W¶œqø4²í©íå•¿CãLÞzЧr=Ú©š­†,¶/ú®ùòôð¤ýu5;]¨›ì=¶C}gŒ˜jä•:d©x‚¦cu&ý¬pÍOàæ6³MõWR0ÕÝ"ö”<½ßã ‹*¯:x$”ÓêE¹'õ^ˆƒÖcª:ûÙn½³sÑi«9?=b2q8ÙýhÜj(§hººS}¼MŠ÷§Øªá;©©Ùz¡hÿÖí׳ݹwöªcÌs{HÅÞPH€o\ª±8^…•´#dݾ•û&!‡GEÝ¥òAÖ²”5 7nMü^ûå-I$Å/gN4?{÷aŠ–Ýƒú”„ÑYr«’ªf¶ÊÚ“z•Ôq‘¤äbik™©ÏݤÚ&'yBÖ¥žÒ|Ú°.Pk9Ê•K'Ø &`3•ôW»¹Îé O~Ã1Ù[éPl}.q…g~U>ÏVŒ7rµ:ºjÇlgg«²TˆwÈeJF³®l„XíÍöé>~YÓš•éŠì«¨öÀå 1/ËQA}›?ÌøW‰uᱺæ•yÚ§o$Eußò%¤Ÿ‡”28çÚ’¾º•ë›­ŠisÒËPçØ>dt±¾õz«’›%¤¶tiç«ÒPOuݺGús_;Ã¥‘”§,A•TÍ!6™äS·}Ï©@<)Bi™>uÃî®ÜÿÇãå´ˆ¹Î'WP™Qµ [Ô)ØN"ü®I¡õr0²ú*äºLzdýZM/9Y#†HŠ´vÎÊ"`ì-(¤ŒjÊWÑÏqÉîvȯ[gŽÈÞè…‡rLÊV-g¼êŸ+»–« yöߥ4;åuS~OçPÔ ®|ù\‡S<žœDÚÈ£ŸB¼¼ã*ý˜~ÅÅíôçþåAÏ}«ƒ¬'KI¶ nÛÕEd‘¤¾¤šO`åè2hL±°ïµäÁ¸žÔ“=¨Ã)¡äçѹ{£OØóÈ••‡¹ïû°†d?(³Ñ¾Î—ÆWëà}Î@ŠHC’‰:h.j'¹@e“t•ļÉÉO]ªäHÑÙÎß9Ò„MŠÙ$|ž-5wga«I7W¹¬:•­¸+@tZ«ò ‡d¬ó$­xФªi]ºlp‘"Ú:\`2UsEöuáuêZsÀ [JÛLtH°KÕ¢MrÚV¼DµË¼/ Ur 3eÀžˆÄCXÕ¶ì,.‰¤nVדó×’uá½›“/`¸x=$ã\x*ۉ⡚~2ç4Ûèµ#ÒYçí¬QdÏÔYÚQ&~z»ûTi¨ü:Ýç,'W÷²Ãíÿ)iä’ô˜‡ OÈYŸóyG($)ÖìXÛcÇ=*A7SP.nèûíG¡FÑ$¤UïfÊ¡&Ižyá÷ ¯:×O º]|œ¨™7[G’†dc$~§æU(ÁJµÐ›|3¤8¯D l| ­\†ÇïêÒŒÞåü~„…™½Ï68e ·rwª-È”®ªúäDøÏsµOäyE[ÁOÏ'$áv[Êò¡£~`¹+Ø5ë®Qd8P·{Qá›ÃÁªéÌ®äœ _2PPñN0¢‹:›éŽ\¯øF‘dït«—× ÿq‰’,©žxNdËbÞú \ÍY) ãÇGìC{òöö9øKï“özoc( ã¦“™Mv·PdrÝ¥ÈìZ‡*ðî¡/¹øÙÓ±Iá…òŒFHÔ1ãø^>ÓeÐå—Ý49Îó𺵠Ճ3®®™ÇÂ<Ö6°Ÿ›¯óýkhQ“/'i==Q{æuFþ¸[‚«H ½ת&`LgG\Á‚š „Ú¨‚w¬¶”£Z¬ Z:?·<êµNªQ‰~°UR¬„¤äYž¤ªÎöªZ¦@Ûò²–74ǬÕy¶ŸËr'S}ßi ›ré”’ðzHÂùùî£tb›¥×$ÝyÊê4 Ùž }kÍ­ü(B‰sPìÈ,ïrI¥Œ ½‹€KçÔü;"ÚNÂs[\€è'•‚“8aw"8a¸H®¥+÷ÃÊ·£ 'ëìZúýªû²”îË'ÿaÒ¢Ï+ë”ÀLñS¾+èAœCco=}UÁ‘Šn°½^¼JoÂXפkµD…£lÑwÉIsµ ë±B垆wÊ;ÝÛ-eÈÓ'@ÙÔ¶0’Ç`ÛN{Ñ›E0ÀŽúZlfk¾l£_×ïÈgt§œª÷Ø@º_?îYãuàÕ} ÕÚØ¯¸Ôê„’Aöă ÿ:<Ü^G Tà'Öt ÙtT Äs ÁIR;‡²Éðxþ5eíÞÎøz9ŠC«u[3Õh[ñ”8& º@ø ä®O¼¨.ÇwŠmË»Ô×1¯âdb°Âx QkõËðl7Ãáïp4·¨-Y„›¥þ‘wUìø¸%kÑø–X¤<÷Àn$¤W)Ââ„©~[¿!•NÕ¥œVÿ•€Ã9<-V(—T¬­¾ „·ÌZ:K‚t`†Î”î”B|?7üg+FL8/l`@ªUÍ,1â˜ý–Nº•z¤ÖцD;Ž£~¾¢Ë(5Y{DŸ”Ö«+·¿ò¬Msê²sߊ*ÞñÍUüO<$GVéñ]Rm’MqQ})ÈCÏ9ÿþ”ÑbÅ =ô\æñLº‹”—UòÈòî÷„ Jõ„½’q:/+±2Î}*›¿._yó_$ßx”‡Ù]G b³ʼnjJV‰Ú{2Èμo⿃¼ŸŒ/.ÇZÃ/%§ÐI<À‹·"GŠŸ«B«D-k²>e(”O êj£§©@G8j¨€èùÌKÒO”dçø=Öãv%Â9úBÚÕ‚³$e;²¼ RPEë /»ÅãÿIž±ØàÅR»x––Ç `–iõ)§ºl#ck©q;jÐ<é“h B½Ê›¦5Ž<`TãÁÆÔÎì–³„šÚw¿kP(Ú¹9½RPWk3±¥—Èš e(3C¨"îPæý%?€a³]eÅ(ÃöU Ì7¯©¼hަã U)ÅÃ5:ùØW¡†`Ôuo(ùXŸ$÷µëÿEiã0W×GÛŽŽz¬FŽ£˜Qœ‡NcÔμuÖħñB9ÂeÊÉVòÇs UÆÑÃ{Ù¢ÔF]©¦zÚvYØ€mÉß’öQuü “?{ÓØúX>¶\õ®ÇŸ/+ŒÂ‹(œ'Û~w—®CHb:BOñ¯ ‡Óêüÿ{¾Šä<5Á}6êüyuk›W)êò2Q3ìº=X·ušÐÛ£büά_‹UÛ}¬¨N4µ£@e=mÉ ÉôꄦÒ% óìÑ‹xò`­ÉÛuø‚°ÆÒOÊ(éĺ†çÆ'ÅBë‘5à[ØÁ겄û·2Áß”ßÂw/6"ɇÀ«7aóQ¼üÈ.Ûh€{æÕçøx;úí8S";?Çí%+(+¿Ñ)åˆ0†uÒ)Õþ Æâ®±™Ö2-쾫V S´ä·“5*A)Ò±ÔÑ›jL@MδÏÊaÍ®ãÛ}u6'uÆt¨‰´¢tÚ“) µh³u+?ñ®„£%³”Ð茋;T·«_Dëb_ßañ»UÂ6«P›¨(ü²©wkݨɓ"jÙ¾Û6+8!3h:«ChÑ$D•€÷£™€Ǫ™èª£Õ `9œY#yæ¤wVùu§ý»šî$Ì'¾n‹|êT£Æ–\pä“‹ I^422héæ9#ñTÞj£?õ‰¨ÏïZúþ„¿œuZ¤‰ ÀŸºV¹Îdù‘¯r’ˆb‚ˆap®WϱɚêÎmßK6/ ²yÊ«&«öês¥À8 ÔxJN>Q­“0Q‰›~»8t`œÎ§èTN­C¨ì‚¢YRttªO¥aÂÛԅ!|‘”¸=žÏ>ÛG~ãÝs¾ 5{Ss­Ö›J081Y”#(¶¶ÀQ/6çÕ^ÁX%Æ¢¾[_ž*à¨éÜ_²·.mAÀ·áùÏ4šÛ’M%|Í ”T]äÿj@èjç³Ååim¦Ô·Uq.7s+ÄöJ·°|| õ”¤ ´n“óö•¡ò œÕ¡M«úÜ¢âHÄ…0 MÎþÝæ¤éØhÐ|›­,*qê¢IêôŒˆßö—ñ •?(ƒìße@ÉhÂÇ^úV ùjªh“ïI™f4*´½l_Ê´]µ¢]åná€Z1™Ëµð%91/¥V,s«¾Gje’Î&èÆãjàûS¥V5D¤¢¼;%’ÙŒˆ] N—º}j ±~ˆ—}«†mõ㺂Êû¨Sfîh– —Ê£ø¾£‰«â8Úÿ±¤»ö#àò ¼Á“Ç”OW<º(~ÔKÍþ[%¤ÍœY3RYGN |ñŸ[²ß52sVÆ.¡E' )½ ô¦Ÿ£Ç6oµJåî-Ölä$'$ Àü¦s[2~ÕúéÖ—¬c•^éíæ'#¯Ã@S6¿m°} §â8T™ö0SVz$®=MvÍ~4‡],M]«–]&ð8[tÜu„]õ FŸn¨ë² £-o€9Y—§zeVŽ–!¼Ž]ˆGIf u…ôΔOn*fpÔAÉðúÛhkP-.®Ò}¡À~ó×ä9v€þoëèXäU{òlŽH_”RŸ–òø£ bY²ÆµN¤Tª¾ùÉJá-꺠©ÐK¯DLô‰,uƒ›œwP¨Ë:Ô©yZ–+Óv'«Š½>7ô® ¯ä;`Pðð!oŠìIl¾Ž“îâ UmãðsjoäÅ+x¦;àxt»ÌÆû¦°|Ÿ:·ïE,*WÞGüWf«ú–5F^3S*š€:«´í²ÈO¸kê^¢•$ë-}J6=E¹MÅ×7åàÒt€%#o”5M±¢8ˆ´å²{ÆôÓ(¯i¾¥Ëݧ¤$rË÷½ìëÊHž»$ÖçÊŠ8KËVÔ1ë±…-¶;âPÐÕ{5GH*û¹šè?-9’àå²Ò(¹È‘…«w”>î—: )Æfxš´Ç™T¿x·½Ñú!¤”ÏÎUå~׳µð*I¤G1ßMš=TøHÊ£°‹šZkÍڵ£ªâ©?€Ä¡JÓžó²n©änÅ xì\œŒÜ[ ™MiÏ>Y—nw®æ­R»âšÚ±ªÈiCGù~jÏØ¬ìÊå&=q‹Ç„—ócTýZ>=÷–TÊõMYì…ªú‹R±NöãáBñiÌOºn/…“ª^”É:bJËõQò!©ÄÂoVi @™M7’Vt‡zìé—nçdå(6„×z™%ðËdJDôÖš–dD‹;*íÑB=æWu°ÿŽä/A,k+¯b Pýe¼bGAI ¿ ,Ø~œ¯Y:-w³:×q*Çcó¥[¦‚JK¡©²=nÐ$OW綃›äìr%ë°pþ…€³ì%S5¥¾ŸW}(ÕtuH¼?U9Ô1;‚Tñ`Ÿ«$…“§h¼rª.u\ÒÅé”Ëžš®‚ÛÔ}.œ# J‘ÛµKrÍâ9iÓÀj0©LKMZk—å ^¸€r Ð#Á)«‹[ø®æ€Ø£Z9_}¬¨Óúë“öá©lræ” T9"“½x6uiÅ®ìù§¦õ£¬¡ñ‹€¤µuf‘ò¼f=ÙÄ™I<2œÎä ŽÞ4qim®AÑà ~–A@nñ`ÇÕ‰§ÛášwÊq¸K—oE!ªÝõ8ß‹|éHáI•¯ÆšRŸÖƒº›ŸÍ’úñêïïïY”ÿƒIúocþãŸÿñ¿ø³_ý7¿ø“ÿúwþéÏþÕŸ]ÿùöOþÙïô?üÅ¿ø™ÿþƒGú×~æ'þ2ÿ­|Òù³?ø)ÆŸnJ©“OúßýÓÿáü—ÿå?ü«¿ñG~úÿË_þ ¿ù«Ÿÿ«?ùéÿÂøóŸýÑ/þôö'¿æ#þοøï“–ÚõÓïÿô«?ýÙüœ_ûÙÿü?ûSÿéþô§?ûåÿüW‡úó_ýô¯~ùû"uõ׿øéçòôgèð÷òUù?ýå/ø‰?æßø°ò‹_ýúWðËŸÿé¯â[ÿÉÜ?®ó×ÿú÷íwÿêçüóO¿ø—üäþâþÌ[:ÿÆÇð¯¿þýŸÿɯ~úõÏþç_û]ÿâg?ýáÏõ§ôûÿ ß͇ýé/~.ãÏ~%¿ó7WðúåÏþÕïÿòÿèg¿úÃgûtþê>ú­»ÿý?ýÓ?ú_ÎoÿâüÔo®áç¿þÕÏþè_þîuÇ¿={‡;}Ö5óþ_õÿâ×|åOÿÅßí-ÿî¿¿—üïáÿ{yÁÿ^^ïÿ¹—û×ßÑomâÿ³ûù¯ô_ñ¨˜Ÿˆ0¿øé¿þÉóG¿ÿË¿ñã¿E¨þ7~á¯ÿà_’¥ÿ-ŸóoЮ÷‡xýßýÉþì—ôó?ùoô<ÌŸ~çþKZõoþíŸÿëŸÿÁÿô'>úþw©Ù=˜þíìÿA¦øoó±eVÿô¿þ[ïw(*|Ó{ßÿÛßò5ÿ;Ìíß ù¿õ§ÿñ¯}Ì¿›0þ˜¿ýªGI9T”ùÊ÷é Mù4ýÊë©¿ÞЊ~€G»Ã£j*ͱg8Ü·j¤CØÔ¢šâõî)å1‚שn×õ{l}µ-,MT5P è¾' jŒ‡Â‰’Ø~>Á®Þ Tûì„SŠ€ï® ×¼€G•!ºµÜrè¬ë ®0ûÒ*§z¯ÿi{5….^ü4›¬dïåal«#ªy)[s$9Õowä}È™ÓëOžägïZ$åxî¿{¥ëÔ¼üDâ*=¯C”Su\šò°;÷ì–fÖŽ««&?L_PJë¦>±{Êe‡¨'¡ŠŸÚ̪û©ºÙnKÎzR§Rg<é¨9_ƒrOŠ38›¯þ(Üž/ÝM=ͦ6ßVèÇ" ü®¨_WÍÌwœê°ó!âz¡*“¥§{Ð!ö•ëòªŠ(Ø—ü®‰ÅÃSØ#2¬bå5Ö i uõ2µtµ\ð¤Ÿ* zLØmýé‚ ìά‘Wë.ÂZÖè’¡.ÕŒOwS圚L‡ª|;ÅÅ7kì­«ÝyñŸ¢-™„Ö‹ÕðØøb™>Jbå~Œo_»YKú±“×Ëãþª.ѱFëST ¸_EÌó!¶¶—²Q#õšY £ù¾¤×£&]Ql*çòÞš¥Æ…K2zÚE]÷½ot8¢Ñqô)®ÿoZý{VU…d:lÆRìCÙ·Ú—§O<…ë.ñ¸˜8—XœÊ\QÆ|íÝn¾¤µÂWÚñþ—.Ÿ‹Ò*+ܽßu=½û3Ê;Võïà5é“E9ßQü”ŽÖP@Ç©— ¶U@SÇï)ëö.)ßži­ÉŽù4¡ÛZ¿óÿµ¥a§k9•»G·Îo|­³ÊžÚ(À<£³ßÀ¢¾_*LµØÏÝŽ¿:Â3êPJ}¸%¸Øt»•É×%ˆ*éúʪ2–K<.= š v¥]ç@øèùûÚî} S ¿ò·Ê¿q ìßžHù¼yQ©e;yĉ•ú^ò§²’Á©ÙdÑÌxGuôj|U¯ñÑÓÁ6ûf;Ë–ÔæŠ—ÐâÔ’Êêî&fÈß_Îùb—²t!ò„‰½^^_HT0DÍœºª”­9yšêZ•Ö¨€»b!åmÕú•ÏL6þ¢êÎr•“GûY‘g_Ûl÷©C§”³jЋ«3Ph«vg$:ñÅl3ç¬ ‘A2ÍJô¿cdôØåz(ÃÁÃ@—>m³*‚@ŒñˆpmÂr»?‚ê­2CÜU™˜[G•ÓÀGIñºÇ°§tŒ-¦´Ö7¿ƒÂ™Çìlé”i%Ù½9²ÚÅ>ú®¡;ÔR‚hwË9\Rs„^ìߪ³I¶{óÉù­ìl ÝO¯QªóJfæ À"ÑV>÷Ð÷°í¦à”ĵèãõl‡WÖ±òˆaÔ5v|tB%&)ÓTe {­µ?ªZŸ]Q©íÙlvÇ’O€¿ 2‰zÜn“²seÝ&Šklyz!; Û©wìH—ÔG‹u "³‚+Íq›‡˜Ð»V{lâK²µÓ%ö3[fÑŒ'urU[UõÖá£ÔãM€mAmn $Œ×§1¶Ó« hMÏô[^‡ÿÉpä=±IÂýÙÛ®¯çòNÓ8¨¥LEÑ«&I&ëKGïv(L_ ü VBcJñ&[zU6]šÆéWãÉlæm·qí¨<è¼ÉUîÓ_0\ƒ'Ÿdñ¿Ó’ª„«=KÒ`eÝdÒÉ„®*à ýlÐùèºø¼-7ÁÁRêEeΛhºbøÆ]T©±/®Ž˜±(^â°›ºˇ–Õ%±]îÍ·rcG¶;(E§þQÓ‹©‘R.¢Œ{©(C¼Ó(ëèGi)ö(ž=Ù_O<²Åòf™ “²N|ê?±|ᎭóLe±É´ùú]ú|ôæMÈh ¼y´LÖ¢…WI–¼40”üà‘˜ Ö½ÇxÛgUñ̘;9pFöØh•Æ}kL/°Ða~€ÉO8Cð(²fÑKçÁƒQ2:<\‘$&õºb.9=@œÏ9ºŽÀTtºã ¬®hÔªïsl(}˜ž£ö9¤0ƒ›^Ù¥<3 ÎRïkõ­$¢>,L­“bµ³§böyöhæ'Løžå¦}lâÔ¾võÒ%eE´y>ʆéïºlv²iÇ&«yx°„ZRöÃ']mЪQ9eOÌ¡ŸáP¬9Ra<;“­O€´I~§áŠ®­–¤œlWþpÇëÑìÓ AC( LÓ³g:"z_ÕÀ‰mÜ»Ç#‡;=ê;6Äô-H`˜1h8ý¬Vp ßldɜՓãb[5¥ùbS{:¾úf´ãzz‰ºÓû\Ø­øÑí$ 1K‰‚G¿OmòöIJÏ uI’œL´(WQÀ_¡ã¨TÌpòƒõB~Õ­o«´©êä¬5°'ît>Â5Â<ô /ÞvG¸šìUYº,®ÏiÇç´åíÓ/¥Øºgç‰ÇXpÆ2‡J•±íaóÞqÍ-UÅ‹ø- hr$èœòAˆ:ýÈ-~UJ™ð±;–ìÐ:¯Èí†<Ç'žÝ(™´ 2r¿ÈbÓ- ¼ÈSá¨öEžk¸¯ÖÕ¤W¿éœT,9ÅJ´ÒQ õ<ß9©ŸeNwbˆªEjý[€y”s’ò”Ärv&Qp=J’§ø(*:_¨«¤‚—ô¤PRà±ï…OPTÜãUŠ´µä{”ä…þÀÍY½¡Ì™°€ìÜ£R’—ôè*åTO¹ÀDTßf•Ùèö@G5F²:¥e*3Ü3øTáwêNMÇ×ÇC¼5%þ<ÕVÆ¿²Èx“3±ë^E€»»Ž[t˜B$O·µ3&—UÒócíê€ À¤J}=»ÓXÇ蛆eÿëd˳§^^ª«{¾^ ±Ê-ÚN†všì#ÉE@)g•wb%+רô‡cßAÀͦc%û•y/ÀIñv6{â˜J™*–gçÖ@ 7õ HÖdvþ'ÊVy®@=¦i,ÁFñb bb«žƒø ª[Ç*3+DøWþ„ÝÜø~L œþ«|Z7L’@—ˆÙ"ãÓŽøôžŒ¼zHÑGLV!ðÝÐk‘zÀ­Þ9ˆÌ*Aˆ B·ïªü›~áRÄ•›—Öª™1ëu2ØPí$>ŒIŠÅ¸8eOè׊š 2ï­}‚øò% Æ–d‡t9l¥sJ§Œ0æTêÓF8Ta@s„´ @ÝÂãsŒToÁØ¡|Ú.E ìfàŽtÞXDõaUˆ·è‰¨Wð0»X$K½äÙ©«]‹îÛÔ\Õñ¬íÔîàîJåP¿W^ThZÐ+^´¬Q]ÇÂ7Q£ ÈË#|G*Ó½ÙJíq  @N‰èùvN?˜m‰…D„ï¥k¹/jBÚš™wÑøÀÁlªñ塲…ô Šà€^€y)o=¹Ý‡B9úº+OQY-ÍÊ<†§Ñ[ÃaráëaøRq[±™{©kÆŸPYý€ñEý¼©Ûö—ßÚoBÝPsÍqˆ_ºU×23Þ îÚ ˜6€™Ž$N ÉQ×ÖՔ³÷ñ)tužduV¢Fgr€,¢×1k°È![‘%ñ½Ê Ò-;ªu¬„øÔàKlÕ~ÙüY*t`#!…²‡˜­|Q›Œ'µ%ñ˜yîÁ®T¦àé*ƪ"ä´e‘¿l’Ùl˜|NØkµ»“ö9òÄï·¥âŒ,H:8“HÐgÙr{ý½vpXc5©ÕÃTG`òj‘s;j¹SýHE¼©‰ë>Á[:^O(F7—G¡Î ‘âsŠã“¹:d>7ÕƒˆÔ(¼ÃéD¢Ü3ç6J½Öž c?^³Ø»ÓYÎQ=Í¡Ò@¥vÈÃæ«¸%}±~nï~¿kWgÅÐ E*ýùl5Þ¶É£ [úÔ–¤âÚ_Åç «lw½uuÕÆ\Jô!¾#Š>¥  -®:iÁÁ·°Ã¡ž·–•Zd/•Ô¨^SÕôGÿÀÖ‡”g^CÑœwñº†²Ïw¨@ ^瑪ï¯n}dÅðÕ×gulxŽœ?Gã°Ú¼Ø÷Wþ(Ï.ÜaÞ‡e§ÅoVAYç£.)yE5§AÜ/èTE_æ—ôÇŠ7c›h«Wfº¾Þ%¬XHζS­rMQÏ¥”±«è­Ú'1+IÐV¹””ãúì¿%P.^˜ó¡šÆ6l/D²[­ƒ¦Ë³–2oCÅ/]˜Y½œOµn×r(!e@‚^kffÍ™5¶´…x;ÿØKh0ÜËö&ûÓ3Uᜥ k2ÿ°àóü×Éq˜O¿¸$!®4~×1<é@©È%Q3|ŽÀ½ñ¢4ZMÔ׮娩·5*q"½¤ÅǹynÍd0]U¦5jõF\ñÒŠ¤UM¸¦£º*uSM%íèd¾9\¸©<¨ÒL:kuO  ˜½¾(`cÖKN‹?¹àrò¨ün%‚µè ܽqHÜ!íiQ…']T.ÖÚŒVð1a‰ö¥dÓH@úG¨%ôõl»!ÔÉ:¾÷r F™|›ŠºÑBì Èïf-îñÙ¯ZìáûÓŠQÂ" Ê™ø¨çTûׯµ22„˜Wˆ8첑r õgTP¾€‚û–Ö¡‹–ÐY¯\,’­«j/Ð^åTrP{ 0DèJ;©¥c9åŒ ü¾H> î Id<Í ªV²ž:gÒjt}5PQ—¢ ppF½Š4½IüéÆ|NZñˆäTõíŠ5_j2ºÓyÙR¥„ ”Mv ЭÒGØà¸ý» F²ðêѹ³è n«QQ¸G™ëºÔÎ÷ýGMIlÁ&z§Î“¤3‡?/ÍÏjtÇwUÿ WTž©ÏüsIe¯Jøé¨™íeßÊ«¥ìny«¤Ê«ß§¼Ê« Uáv€ìÄk$V(o:³Dõ(MÑF*0}6ø„ 蟶šËq5b•Ê¢y4=Ù>üWpXHø;ðÅGá4Ï›mêX8+Dí†xÞÎZgCk7]Þ‹‡~µöå¡ÍyK³Ð—PžÇ1YÞe“/«:¯%Ú¤à-ä {õZ<®§¯=éL(:ˆê¥È^qZüŒ”=gvÎÖdŸ Ã×ÐT2Ðß XBå1[:³€ƒ®>Úw„»Ü@ŠÙw¾–„³²j/›> 7²XÝAµo5­[Óá»Ùreƒ÷õº‡Ö+iÖWf8z«+\ºv ²ÊÀ²Ö4+Uû„Ò’(WuÆÒË'?N¾pƒÎÇn–zîu¶i ‹jO:ú:¡°ú¯¦˜V•»R`³šÃ=‰`¨ÞHH%s ·NÜz Ú ·›ÿÓT%ÆiŸC{8ÀïM¦È|«óZ™dM€%&J³7Á|èMsqø†‚¶t®È†mrM…•%f·e?/{Íïbƒd”Ôy”0&›/§Þ £W‡MG?¶ÖzDz(´%ÑE°Éu€¿qƒ©poÕÉ‚èê;xud¥`íCá8•‘SôdƒQ¹V…È;C Ì¡Äöعìí‹õ_QF£QULbÕ¹9*{SŃۣñ@áé܆ðw*ÓM\ªéNû2‹4" ‘²ëöð&Û+Ìà¿zón”2(Z=éÀâ¤/€M ˆ¡vr8h,Þðˆ"å=õx>^‰]ÀpnŒWæ/¹KªÁ¹<gwÒBõ5αÏ4_µkË»q<À(äêš4’ú#X¢( ¶ÊßÎ8´Ö£ŠržŸDéÆ Q« ïc93ƒÚ°ñ5Z[Þdâ@ž#ÏS9êh‡*X îMÓ©¦¯—öTD Ç6B­WŸ>_µ‚óY‰Ž˜—y|ÙŽDæÕõÜ-·~pܾ“T…å¯W¥ôŠxé ¦­·Ò²˜õ‡Ïô|œGrÎY/ÃlÚi(‚7üÙ·s‡›Â“ñy ÀñúÊq«Ä[·ñ’Tx$¢²°áO¸?<2iïÛ.ŽcÌ…åÜÁÓûôø}Óóý%Úh1<ĩ֩ÄW”ô|Kðÿ¾ oÓœº´z¬¨)C³úKgp]†ÌsÑ€U‰ýš:žÛ¦1c°Å»:|ûÓ”¿ŠaßÖ²I#u`™Ìjò5×Ìû;¦= zM´\Y½^ä=k¾¢ÔÍZ”‹¯ÒÛRþ‘¦~u8ÅAžÁÓ`ÅÿÓ•’Ö'“ÔYkýTœ&/ZÞÚ@ÓV`Ÿ8lühsÛÀ€QY#…ôë¤ØBcaåÇ9ǺÉqìµiKs9YŸuaý¬D4Zf±©¡Ä %D¬«ò¾ ¶P†O²´K©Ü£Ô«@zušß1@°A—G1aM÷³÷¥#ækÖÝ ôKÝÒ•¦a½ÅLR¯Ž¤v5­Šº·—tdê΀S¹VÔ[†¡“…Þ·›x>¥cðÏ’s›n™ª<ü“T@'BS½+RïLïk[ø ñ”ÈhVì:/KÛa+<‚ú^²·Û’ó‘Ü/µ° a‰…ìü-_ s TQ›5£:0›Æëµ94ÉMN66b+«ú»¨†+ѨUgi޲ÝÍ>ÖZëUšŒJ™» Òý!ÀP4ƒ¾ó×ü(iæD‰ÚÜŽ[ËÏ!lË3B¨‚NÒò®³t¦UÖE_ºÓºtïÍBn¬–¨.±3¨FôÒ¹+Xòñ«é$EÇ( £5‡N)/fŸb$ÍvIèàÍãx™+X…Œí™Ð§(;Q‰šöÛGôÎQi ø N¤wÂQ¯¨OïQagv`´z¾QÔ)ÛzçãÀÀ]¿ë ™ç¾<»lYhKq[íãléMÖÇA§•®ô9 §%C>yoë¤]ÍRöÒÀ› ýdMÄ“˜<ÃJ¨ºžjS©Ê§RI¬iÊ|~×ù`ázT#;^öúÈrr$c)ía¥çPÍhZrèåp}ÚÀ)1ú¡’c&,å[ãïÐ4S|TÀ‹ =ªED!­ðÅä¦tSJ>¶öÍ®tÒ,:Ê/BƒGŽN.=ZõôáÉ«ÊAÍ Ã ¿m¶˜)“¸tç£ISonz]Ô§,Ýu𠉇£7ùäŽQ†º*ËÁvàÿg×[Ù»äðÔ$¾"_™I „c—DülïtÅ)¤[”ǃZë/’÷ç¨/q„ ¥œ~±OI¢iÓ±`ŽÂø/«R ±€Ñ¸Ú~Áwï4QÑ»À⽦. 1—¯`Û†ÇîË^Tït~Û‡ßË’õùRœˆlú_)ÊÓÏ€ûæ~=Ö÷øm/%Jðb¢Ô…N£j¬]Qµ×9`à¾Ë«E¯è2wL^3]/rVɪã1*üf¨8üa Ú’MŠ?uã[ÊOñ(WOmAý´ÓÒSDƒMbæˆÇ¼Üy(è©ïÕ˜Q4<ïKiFr§²õh) b¼ú²TÙséßÄ#þ1ñ–?¦Ý›ûwøc“€â® Îj_‰<±ÎÖ}­qT›oÇb—˜Ú?Oå‡Þn¯ðÓ Èf’¬ð=6h[ûaç¢mZð¼`–á;†®Ì;ïI+¨]´Ó¡ŒÌ>àƒ³Cú®ÛS+Õ3ÆŠ%ž;}Ž ôwf/Ùà&“(º£®…gÐTÔüŽ™×ë¡yŸD B´²Bûrã¬î.¬»%ÉÇ?÷²Öõ¬XÕC%foÅó(¸·EaÀòïž*â7•ÿ7·0Û 'U€g Ši0#}Ì3Ãx<ê]êbˆ *ߨ!÷)’Ì _û.›L¯ Bðh¿)ÕT<Œ 2‘¡gÖy÷WA `ÑÕV™ã²AªRÅó*CðzÌDtœü´÷á#¼ŽÄO¨]+õòma ÄqäjòM]ÓOjïòèfN‚~(ù>ýÔ ‘D¸¢¬Ò÷xA´x†k ýªµ¨ïñŸä=J9ç±¹œ5ÿYê”wË5¿ÙëZê¯\ÖPöÌ ´üêYÁZ~ô-Ú¨l˜`köaµx²l”¨­0êMÖá¾.MØÙ2@®QÉO~W‰iöZï~kÐ@Bú{ÖsÍÐ)V@ª[5è ¨Ô×bÊpj/þUµ˜ý ²U&NݺöDy[·ˆjëïùÍã8 JF¥€üˆ$y¾ÇËɶ<5‡¥ßHÕùúÖÑÝ%b ªš7ð GìÞí9ýÔ2¨écçÀ|tdÍÉxV½š’]6’g‹¬­tÛÁxõÏŒv=¯¡ÎemHÈÌ%iØrWM;ÀE¬ôFaÄF’+ß&®2%·ºÄì–ê<îFl|’ W¯Ê©Q  »U@j©Ëº“3«nƒüžzÏõ`Kåù*áÙ͹dò£íÈQôj›tNȶõþFµ(œ„›û·NНz„®×‚NÙY-¨ ^°îRmò‹*MÍ=—béQºÚ R[‚WãÈ~h±Ùý¾ãEå@Ä¥ìÓ²T3cï"ªUàA“Þ„íˤêR±Lm›(yoŸ]AkJ–òÉqºÑ¼Ÿæ¥4ið»cš‘¥ÿbWSwÉ®Rùà í©XTLËšK«­gVšÅ`FEPâõ<²ÕºÝŦÊö¬— ÈfPJmã¸ïv»ï˾7HÕ$3uü!™ß™ÿ<¯da¤õ£o³*=¬/ ràí-‹»N58Ö™g›J³–|õW®îSotñÔ?²Æ-7އåV‰J zžVÐ8Û§$b÷+hýÒ?EAú|YõÕiXñµœx—Œ õÖ@VR´J”'µu/ò6Ù•·„³¦w©Ò(4Ÿ¹²SÕlØ­#ò'-žÀ¬áûI‡÷TF”bö•U¹=ä%ü%‘HœÈͳðûé|èd¢€adÙ‘ÒýÓòÄL¸eUœYÎdB¥bá…z¸ö²“ÏîÔ»šÊü!êÄk¤Ò­àÂ92h’[>"/ „ØÒÏw±ˆ»Sî¬è—Üõ¬©*œt%_µ*Ê©”J›€€,€°–Dz8òÖÁƒZÌòŠÀxŠ‹(q{>çõµW·'ËFWe÷JBçép†ëVÑ…Wñµëu–¤o3]?zå«´T=Ê!ìãÎk<îŸ|Ú½f1Ë£yì˜uýì#ÁNV-iÛi—öloòæ“}Y$dÍÇÙí»òÔy[\Î@ýùi³¢ráõ‡MƒŸ<µ›õÞØçÐ@ÇÁ{`õ0%?À 4{#GêîE.áfejOž‡--ÇÈo3©-À Øe§‚ ÚÃ|;ÞAÔŠç}úîò›}{“+Á[ʉdE 1šmÆ;]J–®T P(#ðémžRñ‘‡G¡—¹y?=²)üy,‡cgYtQSÈZ>ë9M|›ÀÝÞ.ª¬ˆèX÷¹=êûêÑÄsôø •u»é~-bƒÈÈK¼þüHq×–|»ÿUÆmžTÞ½Ë. vÒÙHE´k½VZM¬ª.Ü£(çÔý fž@ÓÿøK¤Áã˦@+5oP+Ãyó4㥓²* E¨<ˆw\GkìÔå!(KHk.ç¸vê°êa›úoÔè9÷¥j8á3ÆÄþ´L­óæÎ„Љ•I¹J‰¦X'uß`ۀ͗´#‚ú£#0€7¬jî¨ Ú-i”-CyÖ´ïO [HdÒÐT+dj6ë ÝŽˆñÊÔ Lê¢SãpËJ<ë̘ô°<æžR‚¸ó¶þÔó6Ö÷¹ZúÞ’µ¾¼´r\q9 FZu¶ÍæxacJÔ ×<Ž"f®);xã×éˆUØ¥²ëC8Õ¬¶6ºÉm6Xm³=6ŸÁVãÛqêœìì¼rR‰7Å…Š2OÉ&ÂC"guY=¬Ülûm©3ætX*_Òðö—± °ûJÿyI'²è—Ø:¬Ä)Ÿºò¿áåß=À‰·é2v ½fìX¨°«âÏŠºÕ7¶ïÄ.'eO5J¡Z¬¬¡î¸ê°Š’¬æây‡ðQ7{8=4{Tbu|‰ ªÃl|Ôš®+L ´¦‹‰Ú`ö¹~œùz¶F!œfµ¼eÙ[_QÂ…þ»É†ŠnN9Ù±ÒŽZÒ’G2ò•eä_¢,áªÖkB7Vé tƒÊÅ]ßÂó:u}=#=Q¢·ÐKþTgKpŠ*¶çîαu,3aU“Û´ûˆlQ\" 8ŸL·Ȳ†yK¤âÖTå+pÏEvÒoŒªG©BurÀþ¨õÖ‘<Ù!¤ä˜$盲BA~‚û¤£"’DÏߊ–ž -Þ¬,J!ÍkÜ e‰ªo)ͨÂ}TÇÿî³Òe™Ëå¸Cä£xÊDyBwó¤Gß8VÒK0eKQ±éídÒ“íâÑhlªá]ÐnrŸFïѼ&Œ`ÞÕ€_›¥¬uÖ­Ѩäá_$/âç$òt75y_²è¦ÂìYèp› ¨×€`Iò`*μÀ¼k©þÓ ÞŠ£×Çã!_2šŠ¥,Ûôa Äj¢¥MÿÞKï³Â!¿ä\©ÀM×ÖZì^±ß™ª¤ Bˆ½å3ŽJB#½]Ó>þ{†Ž^þ†4Žïßi“Pžb_w;†àNgIß?NóåtÕ­A2¨”UœÚ›ÞëQ úX­ ¬bìë Ðـɒ&õKÕJé#Q”¨¢Ò}¤òngWr ß´Õ‹60}©[(ú”Cû¤KÒŠ–™ž¯ðl©¨Õ±-  IæööK—7šAó<áê‘NûQ‰Œg_z×nÈsœdLup©âX¶¸kÀ.jOe;i­r[•u’y9 õøµ¾5"”œÌ °8ƒ„¯Æó#*6@iªjÁ9–—¥øW’«ü‚Ó×ìrÉoø< ÔU|¯/´NÊ[ÔÏåY"-Q‹>^ÓÊQé}Š«½¨5Õ©¢º<2P…þö(®q´« oöÒ­'0Qà¡ ÙZ1¢sGkŸX}PQmÈϾ•î«y\š&)>g{‘⪂ÄKÓb·š«ìÚ  Å5‡‹S8s5|õØŠU:¹¾«ïLž·J B¯*éÕŒ˜o×cëV^€dÇJ'ÐpÝ–u› žž<·NÕ7†ã‚%ÎPÇQ¼ô°ýIà'yZVâa9dXý Ñ,%$Õ*{„ùØÝ¹ª ÷cÕÐ a¬Ù<&!jzhžà‚Ô=çÿ³(>¦nZPQÙ÷÷bIQˆù=·7åÛÐÖ^SuŽM@5׫릇½x¹+>ošg°í®V“öõŽ5€k†³IÉ$¨ƒ›öñ”2;ħÞu¬4a"·Qîw$µÂaEÍÊÈ-w´ ~ßÛã¢&6Bòµ0îQ.®Ýmæ L«¡B<¢AžL@$ÒY½YWŠjHd4Á´GøÌR¬j<$@²‹#ìÄ¡§Íÿæ”ÞHÙõ|‰ Ú4ŸïªŒx"lPuÀ¨W ´I PÒ3”ì¨ÇâEeǬ>jìª7÷ÂSèº?êÍÞäw3ˆñ6ÌêÇhHXG6¾9„LŒÎtŽG£ôaˆ1žm# n×g„x@¢Òg©ÄÁO°f¹—*ëð²:¡°xT*Ð>(*O‚Õ6u÷xì Å9à\Yê!¼žG;%á /ƒÇÀƒÞ ¢¶ªË6ÄM؇’‡©Ì;yî§y)0nê¼S~tu»ÝÃ}ƒ#7ê©d°%¤èêVÆ+ª×C¥@> Pú}À­Èy6T¿ Xƒžm͉? d§µn'ædå\Q©x`n$#é¡v;g:EYNÛ’Nk™§v X¯êë­EøÓqˆr·'j™ {W5"á¬üdÛ Á@›:q7Y¥_J$45=\ÒJ ¶ÞU_¨¢s]Ùfy‚Ñêar~õ9ÑÙqÙÍÇÛ;=ò/ÄLþ±’ÐÝÌ×™A;‰‚%M;ø¥ÐþÎs?»T ¡q(Ûb'QŠXUíGrSâÇ£ ^ øŸ5Ï+Ýn˜…÷úù ží²Çõ ì7V"ÊÖ^OÓÎz¹sÇÛ3à›ííª*xä?†#Ç„GX¿NEVU'¶fÎXå4ÅAé4•"åTÎ~ˆÊΤ„½MmÁcå98d{®2¬@¶¦äô¶mÒm>“‘œ"$Õ¼äšxÀó/M¡½É0 ¸!ºyùZ,VÏØ^ʽ7€<€Ôþ\—æñ%§RFÀФÞxõù?çîÚ}:+ÖÆú;µ+ë4œ TÎwÁ*q„Ö<¬Žõß üî¶VaÎùÚC wzgÕs‡ìÊÆŸUÏ;±H,¼ûf;˜Ý2<+£jLBÑôQE_½šÝW¦Î„®i~k8#7ŸçP8‡pr*,é#"ÞTáYã › %{ð˜^í½^5ií† å.’> Ó¡qîêŽD6e+Š3¢ A"oùõ¬ÊžÂ¡>GÔ-3ZµDrÞ &—8Èð­b ùüz¬[yZ·0TJÅñä³ÀP"jRçá“ Å8N{òè<ú°† µmL”ë8ÎÔ䳄ݫÌr³AÁ Ã¡™¡¶×-¸˜§‡vI•öÚ‡›Sä¶[D‰Ü»iàX,t_6÷Y׬ ÞÄ]õ¦^Ü1KMJ$̸uûe%Ã,=nµ9Ô¦×!ƒthVÃB|,­dUáyó€–Úíb‚Xz>:n„¼Ü„Ž _ã¹Ú”C;âËïñȳVX…T^xÝÞRGPH¯<­j‹«Åbvæ¡Þú~ò~ˆ`ý°óDïr†jÇ{‰TRÒ”ÛÖQ>ž`ªÃ.K§®ý&ò® i뀉Ù{Íê‚fN,¦[;ê ^ÅT~®ãø{S#y(±@ä9Yx¼F7,IÅ“G{‘/»¸t9€ì9DÏÉM±Îž€l–€ƒHƒß+Ôb÷“™Wù©ÇJdHõ+eÈÊ©qu­jw§jÏ(öÜÑ@ö~8u1Õkâ¥ØÀtGÇÍó©ZÊ>ñ!t‡€ QC²$ÐË]•p夵“€Ò?]?±…·’ŒÓ•þ6â){ê™»E ü¼@»52\dÝÇc¢&MŸã²ó§6Õ½Ó|Ãih(ÏOª´­EÙ$Š[¦Ì óÆÞXnÇ´ÊÖûÝÍ2°í¡zrÑö¼)öœ”ÑR:ˆoWU¶»ow…Êvì‹AÅÓ“½hÜcQ—NQ<«-žbÌš6…½蟞¶]ûLeŸ TÇ ‡ f cÜ4öñ€`{$[w[e©òþâà ‚W[ªv O/;†¯®0¡™€Ï Ò»ª :mE/4qÚÝCé({vtgï( ˆL—m½*ã×âááÊ©fc‰ÓÚv¶è§p‚2‹ .¢×wÓá ‚N¦7ûn”1Ó*{g,3èñîÑÊ[7ž=Æ^¶†xË›n}XTd˜K—FÛÊŠ–üƒÆq26òïáUäÜNU …Š%5Ó ]‹mƒŠÊì‹¶Za£oÚ³jÎ\Q«3âÖe¾º’=×ļmɶ„èr…j õë<ˆÌÊIØÛ´BƲ(ñ@¡YIž|QcÆ6M;P=<ƒ—ž!4êBE6®ú!ñy,%ž) ³*×’¬ùF~ÓRÝÓã¨æTŠŠ Ý=€õæ9¦þÎRh¶ˆñH8€½³yYäIç1ÍT–Ö‚›Ú—ÏkazîQ_²mÓwDo[®ÍRœ3<[£aÔmfà á èéi”‹:›Îj£ÑpÆI$u˜T%ÓÌ¢ð˜=¡¼ º©%Ö@Ûæ‡!Nä—nY /s¥Çð@X^ì£%ŸHðR`)A‹½4Mé¹¶šNŠ‹{¦ËšžZ ˆÎM'”ᶃgMH·ë±äÞmѬ~€n’pgÀaеf%~>Í3Šè±A8Ÿ`§àEˆ€ùËÙEB¸g*2̇gÇWãxõ< ­¢*œFëÅEª s„SLüzvá +ÞxegP¼݇´¥ÐÿcìN9öX²Ýî¹oI÷²V[oïm¢{ò$<ágô'OΓ¯µ]_õSÓÝÑÿëUXÁMP3`Ûhf³¬Fé?ÛcYˆC‰ËWÀq+Wñ(°]²™ÓhÙ–U­6ŒJ:D¦8Ž0õܽäÀÚ®ºÃJ¡‚^›æ»pÃ7ì‘?u;Xeÿª[㸴 ¹õOv¹(‹·.í>1šÞkìÇ`ýŒWÃËz²Ùïâ $?}èœr$s¾¨`§ÍQnÛã2Q%iý ÓV€Ÿ•tW›¶·<·v%<™#ê±Äõ]:Ô“ ‹Ý´Ô%Ž¥ _@ªnëBÞ(D éŠúNõLpT†®+£3F[a‹WehÙpâ5‚ïº:¹ _Çšô<1Y"Õ1µÚ¦ÈÓ*Q;³¥«:#æL‹Sã¶f ³tôJ¼…•MV@›"­CƒØÊeIŽ `6‚Ø tÐåvwóà x`ZŽcÙ”‰ðt€5tj\|o#ßl›b[ô$G_Æ{`‡É‰ ÙÕkºŒÞ S¥êoÐòî'‰ÈŽæÓä¨2,¨íÓ´™…ÓfÏasÅýv€ÒÁƒ6œ0ÓýuÊíµÎ¤.¥‡ óÛ1® ç-Øó»6;>]’*¹<3AõtîRhÀ¦4àm›§ýÙîÔ³ÖqLïtä-Ü#M°±ÍÑX@°'¬×¾^íÈÂvšµN:MÇrÒçÃ:‡ ,DiO³ãJEu޳Śä9‰Å"Sz<“ˆAò­í—r±C¹kíÀ XDèG5Buæ4!¤©Æy&€yŠGÌ}uv¯žîÛ2;«Ñ±v D~,Ã{ùȈààlûÚŒøõ\¤dû ¥XˆÛòÊ>PÖ„}8ê½&§VYþmKSÙ~cQrAº%eõÂJ=xÛjyBÕl€÷ô”ggg†K kU}žÝ¨kõò¤¯ZõÑ×Ôɽ¡­ Ò>Çöa%ø‹f™Ïôœ^£7’€ç\}/Ö<8Ÿp÷ªAiÅ¿G¬æRÉ:P¾Ä=’^djœTÑL„~àºêlý!ÒD•ù¸4癀ÏyEËÀ·GE(óŠ:Ï…TâÛS,åj÷‡ƒû£¯â[@Äë ¨Ø–-©Úðv)ñÙŸÖQx­•\-í+»7 |lêݧÅÃ=lw|—íó6%$^½™ÙË7K­9!* ¤³«ˆ6'~µ»‘…ÃöV=»Ì†H¼‚Õ;z`]Qqzg)hpáSû[›ÃÚNRÃX¸D‡>Õ[.È1a£”=iSu °²ùɳþH¢2ú¨Ôq«!w`õŠÀ÷òDXœœÔ+ B»4´uÑ:·y™ÚþÁÝ 8~Üú듶ݰ—~}“Çw)3`òªöÁ(†G I¡{-ŽãÖõ1˜Éùl57^`›=·uz¾ µMÍ3“¨ã©- û<#˜ÖªªÔŽFpÏkO ;«[@[°•&¥Ñ¼{ð8E†Ž¢;ƒ¬(o©[Ö"Ý•òª›7N(ð8oõ›ˆºÎÿM57Wc½9±ïÄ«JÜ`duÐ4¥âý…¤²=ˆ€ôž ´\†}IðV«á žbE¸ªÍÿjTD–M\sˆnTÕOsèשx1pWGJÍMI‡jÌ¿~a‰Ô¦÷%Dì±) ²ÌÍàXĸ îb=h<}, Y{*yˆÄ.vØ#¶Rñœ>”S‰ ,0вXæ,x*Ð4Ís_°&)À‡¸uMßÉùÛrïZÇ¥ ‘‚GC¶ *©]RzÀžŠ‰J¥͈úÉ™]õ/ËWZ8Ït«9坯Eu-ŸÒ®êƒìpGr¤Ð©wOô‡QØz,ÖÍyhÎ rð\I}B§:} ¶ÓâVqœ€_ ¶üªh4L‘/,$mvt0tÜt"Ê qMËñrŠrñʵòn¼êKÙT¬²Ü³ež‘ïà¦*ÁâÒ¼š  ßÈnSñýªI±‡Xâ9Üíók‹èIªµ;›tà‹µê³½E€P-Èå M'üL'ž²žÙÎzÁ UÉ$¯Ä NGyU%l¥4:-Ýã£Ø¶Ë÷v…9>NÜÀ¬Îv4Å|‚ýÊ ÝÊ-qßUÓ­Î>7ºbUØË»ÌŠ.È|û´KÒ¡££©PÕ·…e$&v½lv×µ ·þX$…—V'NI‹ UÑe ²*Bëq•î²qØë\t¯ó~Ú²,vn}ƒ;Ú)åÕë»dYK ÈåйB%°".'¢;ÒË}-'ñýؽ¤ËÅãGIC2Ð{%³f;uþQ‰Gi"üÄ deuÄÜ–ÖÛª™M¾,û˜û¡ð¬ ñzFõ‹b»gލÇÚΨ…ìàÃnZñv.† 4S¬‡ÊðÎá- –@îÎÕ{¶¶/õ¶kâ¶Vf‡BQ®~8Ãf±´>«6IäÅ™Ò)÷³…ëѶ5' W =4–’l€Í ëÓY@q¾=N&Ù²vOÕdÛÏËc½hÛFõH€49!MÍC»\þð{ƒëØÎ€Ša¡¼[áH– ‡Ú-õQ=HžZ}×IQ™õÉ-žv:pOEKlWú£•ŠòlŠ¢;›—‰¡Õé=4ÔWÎê:8‡£0àÚ‚ù.³’8+±ÜSË=ïãZeŠž=Qhd3ò¸Â{êké¤0—‡Úquu¬TŒ&x·—\©FUoöÊfÇžo–C¥(6V±®àê»õ²÷•·ÃΞ\¦}Ù1¯4ÜW@©Å1oÛ^3 dS¯Í4ÞyFD±~Nv"ö(|ée.¥šïJzW¨O/‹ôS(¼ûËØ“¹Y¥&/‚ÀUPru”aíåáiæb äð‰ëR•cwŽf8“CJW^ qYÃý>TÓg[cWÈ 1ײÒ<ï#¨ú?’¼Šˆ’LgIsÓ F¬7z¤Õí…5^º­Ò%úžø6˜Ìé\–Kƒ|à™[Ö7›MênH9@l!ífª¼åkõã6£kEƒ2ÏÇÊ­€5«’½”vÔ";Éõåû•I8í´¶}.XÓ­DÝrlIm> ì¥üoÒ|éuÚÇ«`WÜÛÍWuAS1pI`†³üïq9X¢ÿ¼ÞçN‹öÄm±C¤b/Ij €¿“8²i!^áÒì…Àòß6c¼Ã ÎÊÚ-ù–[Ñ€“ºOétÙÎÜŸÉûæAJS‰¯ÀTe!+Üä=:aá|“<˜HTìžEš÷=–ÊËZ¶Ò¸]`2>'\&‹ž‹lº±~Zb[°DàØ¼8©”»€BÛ¹µµ”G#–ªuÃ$—«;|Ų„‚9X,wøÍíì/ÙvµyæJPu¼Ÿ÷lÁ2AXì3S@Ž·£PÛ¾Þ`OU¾m,ÄvûÙ^Þ³{[‚HÖy•/ êmäÂE¼–¬{Ö÷@¹ç¯kö,zEEŸï£Ëò ®<Š*Ú JÐÏÓ½YØ*\ägSˆçV('Y‡Ò‚0ÿ|­ZFME«òê@ûdkd<¥¼ç­ü›ì8‡/gààÀ,¤rºÑïØH]ÖÖªªÀ·³à«¿,#¥à§ƒ¹Ï<¢ž pv§Z2ä-V‚º vJëœvuzO ò^g'££\²˜@ü´ýž}ÅõtÌ]§.O{šÄjѺuš«(!Od‡C uö#õl‡âiX$<‚gü¥U”fx¹<öÊvÒã3›þÒ®E®Çª8«•Tã1A˺þ{j¹C½m¼«Ç»Ãú\‘[ ¶Õ5gÂÔP}/u¹FÕöMÿkprÒœÂáÖ>ZuE(°ø²;ª*Óf^6–²,>Ûô¨ý"a%’àNÕj—c5Eò`‡È"}/[ÈÉ0x} ¸ècl0¯}+ò3^ºêÓSKWãÍ »¯?ÕOWÓÝ©Êí#ý  Ûf8Õ%I¥]Éú((TÙg¼jðî÷ž/6iÒŠ:Ù!À_µT7oä£ÊÂU»¶ÛØËFùCýœ·î$’e b3Ÿ ꨪûjÒêñ*ì¿{–¾vû·9a®yyÕ^Å>•gÍÎK…^M|tñ Í×`ðU… Opäöœ"Ñâì±§q#(Yšƒ+8¥b9p¤ÛÉäªÔU¸’ò#¶çÚ©¶%c YY˜¶¸Š³mQ8èáÝR9Þ:úµ4âRަê³t«ûêJ²Ó½'kéV›†}0jUU´°Ô_,¤#û2©“Çxf¿ÊN‚­û™ŒîÂun?"åú<»MGy᥊W'„uI¡{#éDu ê¬Gç=p¸¼Xðá(u6ÇåCX©”OÐ&*Ö¼%nk÷®:˜ýÙdöp9Ö7!ÑOóü@ Ö^I /¦(øÓ´Á8EÐ$²°=/ÍØ‚hP  Ô7ìqÍ{Œª„é½u›ºf“jþÞv/ÊTswE1µ»YÊ•ö*숾¾ˆ'‰ï¸ûPûð¥ôºÍ«ï°Á<Š0œÝ÷èÈ£urÙ¬ƒØÚ)*+´ÝУ¤ÌeÍC\öž“ËT¦ýÞê0ºl½º7pDÚñ„£7Í0„0žËÛÃ5+Ƚ,Gk[e÷ç+PÝ‚ÿ7Aáˆ×±ç\ ë tOcKÝÎ54™~xÉOÖ¦gzV˜µÜZjM(Ýn¡xDiͽÇþ,%=1O*ÀÖ%PNÏ=¨ŠV´öZ¯taDxéá´±«Ù9ÕIï›|X±r DYG•†ä¼tíïìÕvKN b(êœ+¯ªUv‚8{d2m/PY¨G¯ WŒ‡hK¤ì?ÎÐgoºó%*Ëø÷”SÐ¥:@Æ“'öÈØ)‚ äJ¼U‹âÊ~H%¬°¬Z³yXâY‹¾tY9ÀBéºI* 64éîQ&᪠4¶Œ“ÉÞ… ³ªÍâƃÔÓPø)LÓeS6Û©6a0{Û°ÐÂs‹´OëòP•ùU€”ºöuJÅMœÃÖUm¬zl/øªç v°¦Ó¶R·IŒdž=ùh„ •-uéUyŽ°Ô”T# u42«6LÌ]•õPÈ%4uÑÂlß”]%JÛD•›¾Qè¨\.T·‡¹}57¸l·wjñÇÿÞ ³î•,_WÔö(v1fÛŠçëªÅ=ÊêCÛN;côT…5‡/–HlpZ,ØKá¥A—'IQxàUy»ãm­÷Ý›èl±bà–<;ú‡*Oµ#&Y5A_å'”¡Z;õ„²9@c[RNÛï!|¸DVe¶O;nŸpêejµÞA'즙6<&Ó^}A.kÙÉ& ] Ü$ë„4Ë*¬SéE¥6 ϸw€°·dÇ”¿[B»v$G§ïì»Õs‰÷ã”ÃÙ,ØOýQ¯ö¬ÎSݨÔ]ŒíhÚ¹[Z:.³Ò늼‚³©‡¨Í ÂYØehnfÏøIæzŽ*úl:S7Ý4»uý®ñ­Þ…YyéÇÎÿž³¯mÏX®ÇÐh2ÝŽæéø UànÛËT?íʹK-jëÑ×–/Å-Ã;u̶)kQÁx¹{ÅC°Ÿ´œÐg,ÁÍ‚ƒò—Ë+ÊÓ¹ÊÒä'6ùÎck“@V=Ûºô`(öxÄ·ŽÝ«r~Þ#Àtõ»ì‚'‰ê+É>‰Å:…³ÉͬéØI^le`ZÐIÆ<´£üU9ÖoÁO]S…|WuzuY—§òxÖ¶Ê‘kìQ÷éУ¶àtBû\›—ƒæJA—C‹@íž|k§í©£ Í™eˆÂu[îÊŠZ@ïÐÍîÍ·:¼ñì³c*sz†Ìó¸oM|Î7Ì-·Ï§€^TGŸŠêê'6Í{l:6éq¦G¥õŠ2yÔK-kîgR;[YõãwcÔƒvª.Ús(– 9õYkWµJUåÚ%飑®”qy6ý¶ÉùiÚíZ«Q³ÛöGî?¬#³à/]'üc´‰¤u8Î3*\+ZâñØ!«F?2=~ÉGRI;ÇEàb(X©V·ÆÓF@‚`«*Y¥n„VâûÚÃyù V“Àáè Ë„bä–³xú<ÄÅKx×ÜH†-Ö5ÒJl •lˆÚGè¯ÂòìVVý07u“êÌ:ü¥³ PÆh›#à,[Qõ:™Îö©X³¶(–>,õTV×^pÀ~x¸ƒÖ–n95îq€* `ÙVVt @¨ißÔ¼¬Qªó²¶4”ûÛááÛ!Á’U â'û”pS“Å:ذ dïV£I:î]Ú‡ï92ËëìÞ²©úf‡¼ž¨E6â 1îõ±±-Ý» ËrOŸJØyra[ɸ-'yúÃIGåÁIðÁ9S8!n¤ƒ¬‡3a‚€°œBãŽÔ>ÙòXûûïí»%½°9$ìvYÙ0Êþ8º­ðzº¬f@\Wj}v_6bi0êl,¹ˆM›„º'é‡g@À.eº>:d¸sàz%ôò–'|Obíe±ñx m<È¿»*£’˜Ë®q¨‡Ü ŽÛÝìu õAЦ@¥Ñ\P–s—¼¦#š#éõ›I®¢Þ½5„\Öb·¯öJóܧנð“ T”êÔ‚ ÃRWJ)Q‡·CΕ·zÿv«­åˆlQZ§ª „Cá>+Zo"ëG¢GZ¾]¼Ïù-þHÜ€{¸Á¡dV÷ÆV7?ýæ98DM ±KáZ‡D_‚–ª÷Ž>ˆ‚¼{¶æåY…ªjævc˰šÀ_v„ô7"ºÛ±ºêRŠfpyIm¹®)ж6!’ÆGŸä;]»Ž«Lp{¬½ïVÅTSz&ªtxi³ ã.‚)žÜR[w‘4øë>Õ¥œ’Òæ/´¯u…Üjöðé2eÓ=¼Lïæ>JÅTøni$_Hï:Á¤õmý° ¿>ŽÂ¨ôy¿ëyôÛmžëf SNÙY¥ }'ëø4ˆÑµº€©®aSSXÈâÙ/kÊjמt´£CH[¤,;Ï÷@ôáð‡ƒTÕº•Vôð+Ûx4°éþ –G³u™‚€€ÚáYßð×¹ôÃÞUÁnÕÒ4w3+ðzRã)wfí üQ,±D‹êäéŽfZ dgødÊK+Áð°h«²´ŽŸCñú ¨³§šüÊ$.Ÿ^‹O!¨ä)æ{µRF¹²\5_{lcR¤ÂŸ"Ýô¤Û€èæYÕõ@uðv…@U€Gýe;]3É@@e„¤Ììì`Ò’ÚñYéWŸm­+{6:Sƒ¯Ï¢ø÷%3›ñÁפ0_Ù½lG¹eF À)°yï*·9>.²N Ô":KÚB¹vµªë¥ÅrÛm¿Ç•6w€ˆ´¸¢‹ŸÂqöñ” ÅÓkåq"ý]Ý“å2™²î¡ÓÅMè°?+z¤Ð IÚÄ®~IpßfùÆš Gï1­ ¼Ó˜a" óü-Õåf¸í•ceÂTòQÜ6+f{“àÈg05”¶ïwÇ# 䉙úc·ë5|:²—®H0%ȆÇRÚy$0§-ör3«3 &²FÛ ;@ëWCø=ÔôÕ¿ œz¹ê“¨ñåÁºZ}»;[&)/Ñ]2¬êÚ\Ÿ×š”žÇj³(߳ʹFsÎyhÜ-ž’¬¨nÂûܪ½6ËûÚž‹O2a½§²L›àñ0®žÞ1ð§oB@Ú=|çöÑ7Žï\žœ{2´äóù[»[áhŸ&ÁÆUI•ELêjŽ€±ˆÚÎÌ·Ü,5ˆ;Òãû˜NPa­Õñ4Ý kŽPŠä“› Íí†îi^{ec“h_¥Š”$Œý K8Ô4*u>v÷œ.M>xQOÒx8ñ‚žQVƒœù#D+Ä – ¹:Qâø´]Ë”Ä-&›Íó)½¢X¼Èº'Ø©ï[imiÙXI,N´V}^ &(˜ÚÞ5Ú›½JÚ{è֡኉]¬*³n•–s2|ZOtrCÛHòЂL¾v{0Áã 9§^n[k}xµ²)YáP­2_J·;>¬P°n÷¬¨å¼QÙMM7³“4¤sà8é‹ÛPioË˱OXKNZ²y”ãa>΂jþÎ’;@ú®Ã¨ÞómA`ó.ìï‡åÁ;Y—p.ž­%@G€î‡'À÷52?^U “úÚìíóÿÇÿùÇøïã~þëÏ_~ûý7¿ùòÛwüÑͯ±¾ùúûOü×çó_|õµ_üɧ÷Ïþu9þèÿð¯þüï_|óo?ûÍ??;?þáÓy¦ŸéþýGôo¾úþןÿöÇÿ§Ïß~÷Õ7_ÿÉOþýýöó—ßó½ñå÷üØŸ}óõ§ÿáw¿þÒ§Pÿ$´?9ÏOVVÿö¿ùöO>/ÿÕ/>ýÙÏ>ýß|ýù»ãÞo~û×ß~õ¿ò¢þö¿~ú'?ÿ§Ÿ[ãŸí_ÿtÿæó·_ýü˯?ýÙ—ßÿêóoø‹?ÿòןþü›Ÿõùû¿þ;ñOþ¿úþûßþÉ_üå_þåϾüÍw?ûæÛ¿ø?ýÓöé/¿úþWŸþõçï>ûûÏ¿ø´È¿øò7Ÿ÷ýìø£OÿæW_}÷ñí?ÿæ—ßÿå—ß~þÄ7~ýÕÏ?ý¿ð»¯ñùÛOüíOþ§ÿüÓ¿üíç¯?~øŸüÀ?ûô‡Gó)ü,üðqøm?諯÷/ùóŸó›ß~ùõ_õõ_|úåW¿þüé_®þ³ïÿêûöé˯á~ùëï¾á÷¿üý—_ýúËËì ÿòÓºÿ¯Ÿ¾äþþpwßýüÛ¯~ûýw?ûî«_{‡_ø1ïúýæ7¿ùüõ÷ß^ßøêÛÏ?ç©ÿõûµþ»¯¿ù˯ÿæã¿ÿò«¯ñKoá¿ûíÿã×_ýûß}þÓñ‡Ÿà[Çßû‹Ïß¼ð?}þ÷Ÿ>ÿÕÏõ…þoþú·Ÿ÷?¿Íõÿ‡¿ùí7¿ýôKnáóøê—Ÿùão¾ûò÷Ÿ?}ÿíï>ÿ‡¿ùé?üݯŽ>ý⫟ÿéߺ@?oþåÇ×¼ùo¿ú«OÿÏ“…>þ¿þÛÿ›µõ‹o¾þõ_ÿøãûå~Üéß{žoþêÓßüq8?ý1¤œEzæO‘Oÿáïþú¿úò«?üùóÇßýÓ¯ùͧëã*y<{¥¿ÿÃkÿ'ØÿôÓßý¬ñ Kõó§òãÊþÎÿ ÿ‹×÷þ•ÿÔ²öSþ¿¬ì¿=ëw¿þõþ×â?ÿGÿúåo¾úõ_ÿáßY¨¿ûžEÿgß°ô¿þû?úûü±Oÿìó/¾úÝoþþ¿þé÷_²øï¯ÿâ×?<į¾[_ýÕç_ü«¯¾ÿù¯>ÖÈÇ÷ÿGwÖ¯¿úúó¿ú滯Œ$ŸxAçßû7¶ÓÏÿÑâ;âþ§Ïì–¿û'ç×?ÿæn«Xê§/¿ýöË¿>xÅ|U>ýM`ÿýâó_í¥û鋟}ýÍ÷üÊ'nï?|úå7ß¾ÏÜ?}ñ?þö¿ûñëÓ¨¾æñý_þøï¼À/¾ÿÕ·ŸòñÓ¿üæwßþøÄ7¾úýO~"úâ;ñ_¾þü{‚Éß©Ÿ¾øx²?|§}úâë¯þp!ç–þ»o¿e§ï%ÉóøÛ¯wXùüù¯>ÿüÐ\УUõSë-}ÞÕ5Ÿ Ì8fyõùqhÑënÇâüð¾Ó®uHœo)Ž A, ª×}÷<,Wx5Æ´Yf{òŸûJúˆ>ËN3ˆ¨¦öCuƒGµI€QÕ¨Xø¬dKQµQ”’3`“ß-M_‡Œt€YGè{Ó• Lç9Å^Z¶f+¡¥â·X{­¬W+·>;é·t—¥ºè‰)ªwµ(…\Ðå°‰AÇêGv˧`V€î‚—U¯”h•¡‘ÛPª¥æšîëž1Îu¢e=˜5'ç#»l¼ÓONK;PŽ>ej:=£Î:ÊÁûUÏÎ ×{„ÃöŒ|ë¥0gú+ õš—š–<ª©¾‡ÝÎÄ+•ª"û. ñ›ŽÊÍj±Wõ½‚²ÂÙ.’©x®|w ³FÆÉ!tÐgu ð=Óuô×"ÏÓŠqÞ¾>0µ>4çà¡XŠU(ôŒ5ñƒ2?ë”Z‹×®Þ{Ú¶e}‹¶>*NËdÍ~Dz_rë– ÙÄç—¶õå™6çÛÔrè%Ù JJ{GÐaxY¼uÚœÇÃ2v¬¦‘¡5ée¨^gÈ€lý¥›Z”ž]ÄVÄÝ>ÂèÔÝV<›\½ký·¢6~ÖN<pv§q ·*x²õ–xð¨(t;SšÅI^:tûïÚ?Ø` yÚ@nwWõ|ñH†äh-½èHÏJõÌ&ØÙŸª‘·Y"Ûåa¡Çl4¿¦:àóV\@û[úÒYØÆ.î:æzTôT?‚õ¡)÷Å+Ô.¬*ðdâ α-…ÂÕ­~\ºV~¸”4&ñP­;Ψ¸‰wÁ¶îkyÇËÊð¸›uðBÌ[Ä[&wk|)àX¢:ZVG<¯X£4Ã^È -e›p9í°Ý»ªŽà)^ÒZaº´Ù¬¡è9;[6GþÔž»ÀÈx†%=‡ýB5u–¬Œ v@V™][º&àg,ÜËú ÔPÿ:原¹Ê±ýV•ßXóÕF>¨³}Æ‹ZÞVöéYÑ6æ!¼}[Æ•Т.žO·¼VÙ¢…Ø¥U-k`l5‰k© ­¢´\lÖ$[^Ax(i¿‚Eãj“Ž·ýª»G-†vnSxlö¨ÞIªé|Õç«´–—硟z ÛD:³ÙÂ{ò¶£CÉk»Ž{œAÈ"ŠÜ§"a·ž:)7Go^¥HùHûA4>./¿4Y¬cE¶§´÷^ʵ±—­§ÆÁ¾tþ€»»=Kç Ö-Èóóù8ÿUÃÉÛØv˜Ë¸¤>P}âî-f/ŸÄ ‡.Ö²•ààQž£ë-wªŠÆ¯™ÿÈU£ÝË Ñõ¸³ázj½‚ŠêDNO$ÎíKä|®5<أ״²`ªtëýv·XÒõâc63YùâqÀÐUYP²Mk[ ²3„·GèÙB¹§†Ü[%ˆu,/Äÿ¬ý(ܽ)ØÒ^ ŠK›1ÜuObí®°+ŽB–ÒÍ|QÝ„ÛÞ;½)—ݬ™ËU¸î’ R\¢<UÿgP Ï³Öî€t˜Ç™Î=ûh—GDšE´/ê¿%ÈE |ž\wÓ(Sõ¸;烈Hš±ÿë°QÐi¥«²J »zOìn;Ne@.¾ÎŠÆÍUÇ>ÉY¬çD<<©^Mï ã5;€U[i*F;õ<:LÔy;6Û¥š¸I%Øqç÷ˆ½>m[¼ŸÖ ªíz×=@€ Ä»ÚLo=œQ·bó2è8szÛ^iÚ?±ÊõŒ6+Û¢Ë÷[ÆíÔ¡Mm·KKíÓÞA]½õaïŠÛ”¨F!žëŽMÌî©}ëîO^‚Ð$ž|‹=Ì{›E‰<äjVO³ÚΤO‡fZˆê¤w¾¯Rªê‰¬ëiÏ:=þ­ãö’ ‘eéÏîȸ¦HÉNÀ­4Ó¥¸øxž°fŒêOkÏ5íæ‰ú!¸n(9kʧ:›„X ò#;ïp&Ë„BÖ¡õH:h; 5ç,*Sßö„-Mš4¼/ý"ÿ°•íPp×Ù °Ö&,ÛJàIsÖ›Ÿç•)“RÝYúrªXoU©²²VöÓiGQ%!ÞÙØB.c ƒÀ ¡vÙ|ŽsË[©È倜np¬Ñèˆ§Ýæ3),njêŸ*´×ö iK»§X†9ö4jÂlÚÔn‡¯&¬]žU`ò¹3n}›#XªWƉPsl~壒ˆZnÜ'هĢœ©-kô¬QÒóæeCu*$Û B&&:O¥~ŒxœèªPèGdÑÐ[뚪±ÞPO€&®ÓzÈÚg¬¼…äFíp5fXšó©æ¡>ñ>>ȦÐVôóæÕFÈ7™õÖIï`d'ùœQßžh%À=07|µ­Ì™´ªU‘·âŸc[Šg;h=k }YC;¾ˆæ£LË~ åƒ>õUu{Älïv2Љ$Rös8×ÅûdgnMGN{×øA‚R iû²C‹íÉhýc'…-î`Â|@ŽŠ]¤Ã¦×¢Ù®]Í\ÒR‹³ª?©Ñ­ö¾8fÔ\Ç!Ð ?œƒÕ™B ·[) ÍÁT ¸ÈUTq¦ªËrVÀ»êN5xgyNažÖe«´+Y2=èGh+% Xü·žòr¸F¦©…J·Aæà%ØÍn'ȃV|¾ÖÝÒA–³^§’ïŠLȤþ;@Y<¿[•m"Vz·a-;AÁ“¦QÐ}«™Jä ™Å =Ýr¼LHl«³í<o‚¿u=­•™º¶'I>U½^„òhùñ"áœM1j*¯ÓÙ¡€ë[Ž–]Ð6M+zÁV·ïí"çˆÍ„_zT¶Õ5â${éìÐDê±rIíև겜ü% ¢ÖÌàÿ¨xLq”à!lÔÃhõî4IB¿ˆ¶úfâN!n¢àÙ¦ÑiC~¥ÃJÞd;–¨dǽA㯎F×xªÄÆN§bÑ»ëU¿u>7¨DÍ­LÝ §-]dSÐCYlc¦íÃ*ô‘$bU’èáøëi<ú…·„Ú4‰ÒÓVÜi7´í¡Å9<–*ìƒíÏ3$)«Œ¢!ŽÂŸo|°·íQ6žü8 HzŽ0¤«*ÌUYÔOg§&ÔúÙñ,H¨/˜d¶³S¤d½þ'/‰õ˦‘•«ßH§áÜùe÷ ˆÈaSHZW${Â>lŒç{öë}Ÿì÷žÏ¹÷p„ä@.Aè·jKnÙgë‰Ä:6iU˜‰•ÿ\:è‰TX½Ô»@{í¶DTˈ:NÙ‡-µÍ'ÇýÞ¨®„ù²£ ¬¶œ5œºDmÇ ûÚc©÷D’I„;¢ón>2åŠl]Zé¥B¤\áÔýg¨ÜŸ@§¾{Ö„ŠfªM‚À$JØ…Ñô Ò^Z°«á& XDb÷Dý·ÙÇÐÿbû£¤mì”aüGí3Ÿ*@Ü1¡IªÜ´“ÏŠÔñr+jÈ9üÈCÔHn‘x®Q^ÔYŸÖƒ}áÈÒ­6å›Êõ¨@ÇFš,W»o÷…sE«;ÑNŠVnþz­RÚÛ&.û™”…Ope}(^å>ãDnx.Y/PØ–µ¨ðŸJì¥V"älá5x΢ŒxJk±¦lS Û­ï-&1=Ü8€µz8ÌÈWµüÒ›“û£#¦Ên—ç$‚¬')®·ÛêÊ 0žž˜^r²ÌÁãùîÉ-CÛ=U{ xÚË(\”õ!Æ[šJf4ÈUåÙ{ØÆÄ­á< M…嶉gË_Â$0ßRׂÿr¬Vôcx‚vYÛ×9~ÙèÀKUð™;AÖ ŸúH‰õ’c^ù!× R½ƒ;hÑtͽIjŒÏÚÜ|IA©ÒÀ°³w¨s7}Kr#ÏUsV¿Þ9§ À†>@HH¶ÿÝ*8ŽÜ/[77%Œ” áf=éÁú \Þ‘Š½Š¶Õá‰F Y¥¡$æuépá—Cëüuû ×Ñ^Â¥#×ê1žšr™íh»kN+Iö©àU….Å,m™W\ÆÂ¾€¿˜Bø ž¦ý|’3þÚ•;êQyTxTiÄ¢JÌkW‚Ÿx$å¦d¼ª¸Y¹ ð¤VÛÕƒ,me.kÙNÎ@ÄC[ÁVµù!5IpùäמußÀ"îÀÅ‹:š~9BWñ ôz½ï§x¬¦9Ó<.úª^KäõÎúwâņe®™àÐzdÔÍQšB dÌ–Ù“§¾§ãU EGi`€`TáÐÖ:óRÁœ6iÝJfÔãð¶3 ÈW…µ5V»Tú¯,^vQÌóÞ…¬–æÄ«Ž‚Ám€fG/£|‰ÎTž.R gÇÍîwˆØ …ÌnEœjSá4ž1±õrŽó2äÂÑ~áp@çqH€]Á­ì“kìq%ªáîlm_Õšìû‡ïÝ ï¹Ö­zQ„j“àv·¹]ëƒX±%ÈÛ-]§’C­Ø¯¢ç|’§m?8 ¡Ëv}llIˆ«t°Fª”là@­çl¥‹¹Up5lÀíÜ2„ (|²š^žG$69¿•DZGm؆AXÉ´Gv'Qx©ØPåŽÀ9¢Æ(äÏ#Ÿð]à“¤Ù ¿B„7îQ»tªeQeM³E{í3U658/[²/˜«‡=6’3Ô¿l’~úµ-‰GôÀIïâÕµN¾Zêb„¤k“Ê–‰™ÔìA¦öàYÞßuÚÄã°¢y ²Yaê4âÜ=À\þY€šöNOµžÐ9jÒ·?8Oð¹á“¥XHÌwÒ·…W°¶ézUµ$åC0þ¨Ü!m÷ꙉݖ¯¾¼¦0ýž‡"u, ¸uUÚWGI 侬;ëËÚɽ<‡8’Ùº]KÓL¨‡ªVg­jKsy~³öj{92$Jå¬ry4e[Û{LÅY0 ÞËK~;üU|µƒbëâ’ÚÆ°ÈW gMCý˜KµŠõè|A Á}»=ÀP¡æV#ò´°CœËÇp˜È}y϶¹Ô6i¯ ¯×¶¨†­9/ÐÒC4eßÕsÈ2¼‘Ïw^!‚cr"of­Å«ºÕc;H?ÁAÜ7›VOÇ¯àOOÑ–Æy»·©W™ f:¥§Íâhs%ÖÀÇGÁmë9À¤»÷Ù¾âOׂÀ³9Â6†¸wÏÑõ$¥¡ö^X*òw½_TâL;â@Bü&PŠ'¢Ô©˜lh†9ƒþÐÍÉ£³­,GˆQ ôÜ>±1óŽ˜XËk ¡h‚Ü PNÀ´EVªWEZº ä(ìÆêazÕîB¿Û¤ä§ªnŽï{ :‹P(ø… ŠHÏEë‘ë$ƒˆç£g©¯ ¼})< ëµvìÖ§&p̓oèy¤ EÜ y<Ü`ÿÏl›á8Å‘vöÙ&ƺxÛþ‰=N]ýÏìDËãHŸ['f·8þü\΃𣏕K‰}§’rùp©×ÒÕ 7åÛV=]^œ­8²šÜôÕ’eµl³: ù®£×¾I HúçË J9¿J?cãV@“¾}ŽÀ¾¦ûézR–£ áZýŒ[Ä Ý„”¯UD è}·ü÷ñ‹QG3dÞÞ„ò¡_ú7ïîj"µ£ÅºÇÃp'ئ9êo±•H’»c{5êÇcEö‚3©Ï gN?éµx|fW™i*‘ßbó74ŠȼK¥IÆYÈÙÉd8ȶžÄKéèÛÖ‡98Œz€&ÕÔ˜ˆ¨f½â<°ß­ºº³VA‹…\|¦ÚDçt•òaAÈ4¬Ê;×>@-hRLð¯4)™Uv+¸ª/Ľÿ¾“Ác/"¸MN¯-A>IÅ•STRišP¼qOP0˜]ì ®>¼°r8)b»YW”°Ä]p/è4Ã%O“ÞfóÚ³Ó3?ãyŠ53Ç`ÉLSçsîqè@ Õ¥ ^<˜¡Î6ŠWɃ^ܺ8\zŽ?·Ö}aàÃî²»ÔÓ–¢Û†,‘]A› Û “øRäÄpnj_}Ø£Èz²Ža.ú<7œüRªš„CÌ×¢×Û³*^ííñ£U4dýd·@$ä×½ššñÞ*‘¤’´é¶Ú'ú“]êEØ/LƒðœîmŠc]Ž Ó]ö«tžKXç3%‡¢M0ÑÝš{©Áp¤ët¥Bu43<»Âl•Àœ|ÚæR¤C@Ôm[?RÌ…]q^ÛãAa…U‘`»ÀKž(¯Æk¦ÎZ¡²Ì£Ý8îb³Bë<ÛI¢·F}é3ŠˆZåé{pû½Ù0]¨yK^£ ¯A·mg(_•í„ë¶ÐÊüêX¬ZÿÖ=ʈêÜëd1à<*›NU霸­wDÍ‘€iùÐX-êaTÁ©ê!Ÿ‹%îf @ùSµËgÃ/&ë(ܰA­ñ˲GP@jñ=XØð—ŽäŠqéšR´ñkª¥î1š¤]b+§F"Í}öèUÞ­ w^»y°ÙÌÈ~¼ÔkºÊÞwësÞ²— 4vh7zm=Aˆ‰ûR¹#;3 ZÚbö²§ÈZ·ÆoWûý²bõ²‹>ÌE!ÀV¤„ÕïÐOYDÝx ‰hÁÌmb$«”¥Œ¯£w¤ê]gË-×û»÷±¥'ŽøëmÖè§llÃGù‹'صÁmð*ãá &o\j2¢Gr•7Ò·Oâ¥Ó³Ó¶)†®§^Wv«Ø”-ÄDÖK°h/NÛª·jÕ+ŸžÞ»N ^v”Ý ÄÒ…Q/ÊûÑ(éÎÇé¹ȸ,–tc¿7Ob ávâ°¾<Ù±¤¬«a™•HJÎùîŸÅaÚ¡ ¨ý™N^Î$ƒ¶†ž2=2ü£ °ÝnwÊÑšqTA iñ7ÝUMîǺüNìôNñ¼ÒZÉÐ-6ìÞ6Ó¤©$Ê–âkÚ^°ÈSVr9ºQ*w°=Póöƒ¿!çíªh÷‚gõ³ëõÌ’ÍMüo»máT«%p‘¬¥I8Ë‚µ¡”m6m)û =v´/q’ÛN÷\³Ò \pr'¹¿|0(û¤ aï vþõÑ£9©Ïf/žá½À@€öÐE§žq"Ñ*¡D´´¯2®óº. Œ" ûDs6-)ù)ûÓLPßך¾6Y*¤uu[Ø)ê5Ûàòž°\Ý£ßÊ~°€ã„úàt Ì;ïÓö|WgV{Ý Ø,ÿ¢”Mµ;p BrqËÊ E5&®Ãš¢íòC)1• lµÕ”  u»{ƒ®Lשl< _z·ë”t(CÄã €BÔ ¥Ø$›]TÏ\>ç. ·MÏu>ÊÝ  ˆñQ‡CYÜ~^“’cƉé+|<ªþåX†&ÔN’¸¢?B´èJ¼zâw²M$íÓ4Ø r©JB¦ÊV]¼›é1‘UC=bÕb×–ÓFbCûȆ¤YžL깬ù»,ÀH—úôê¼_–€ ´ªÑqå× o´/-9²Èãa·Lxì`¯þÐÑê2ûاÛmDf-¾I”¬vÒ{ÓXý´}mH¬-žŒ²ï³ÊQÏ_ñ£ÅZ¶ 󵻄d¥Ôn'úO„2O<ÙH5+~¤6ÍU'."m}¼'ì Aäž×î﹈Jă ½¢q_çCÉJÜÄrkîÕŸ 1€+˜­ž©ê!‡{°í&õ1§‡qï—³xº ¼µzµOnóúã–ñVcR€9dÎj?cµ­Ÿ€•W[©dá9àªØ¯E D\zLKï5®˦oç„~ÝÊ—²] '‹íÀÆ\È¿£Ò(¦°N ¬ž#gÏ•á.‰W ìÒCþ¤¦hŠou +÷H$gÒ-(ò·_4Ï4š„ªÓ:— 8ë!ç Wò¼·ñ¬«Nµ–ã[ Ô’àc gO·´8­#ZÝшÙ!û÷ßÛ3˃±ÆÄ{÷`€¼å!…ʼQ ½—nÍ™ôƒW`÷¥µ½¥#”“AS¤pYœ©[åD¹˜V”jsœÔZýh d垸Õñ3øÖAO, Y•+r%$µ£d$#þ–½•àF5y"[% tïÕîËÝ;·=iQ}qÕs& _ã*»ësÆëbû{ŽÙ:/—ÔaÏ|É穦ÝkŠ·ÊâtCzTW`UYÓôn%Yí È«¡À“ ‹%¹àJdví´íœ jý‚ Þ¯UuøÈ¥›8¬ÍÓ5'ˆÄ|Å+†®³„ UZ‰$]åâéh·;ªMÏÛ³'¸Þq—¿aÕÅ«—ZÕ©.ù…„) ¡×½xÕ;úª‘­Z0­w6Û|Mnv†tÝ‹BfÓÅÜYF3 åWHYçÎzLrÍ9mõÍœB‰>ySo"]Ž«Í¼"25v »ø^ò·¹Šøx,NB‚rÂÞÉŠBÐ䘦yÄ ujİ­gC" 9PlZÝ õ1ÔñÇñ–©£í4öBÙ\vöIšSæ Äl“ÌÓ…À]•Sˆ§Àߋۄ$½ÐvØÒ~»Ø÷ðÜìXÅñÚˆp}›´”¨ ½-ôtÊlÍV§ÓD¢æ $ýó4Wš%5O°‡‚×|² ï=_Uùn»±ÀðõmJP`â„¥«tn­îÆeg)˺C!Ý“µ¢uô°t/‚°Y[PZ²­ >m$ý•ö¨…'Ь°¹²*À>VÀ~­{F@¹NÖ+æh>¯ÚX6­…©úÏ„å!‡ìiíó‡î‡G9É(Êzç~i ’fEå°Ö\•ÌjdRâ ¡ MÞ‰RŠéaŽ’¹Œ³¥£jL>ºƒaVœZ´”NOP‚ÇóÖ‹à¯r!’&µ>“Õ½´o 5åª@'?¡÷ý" ÙmIyu•7óvŽÒ _æ­’×,–‘ö•iW×—„·Ö3loòé!&{j€xª——vïp™Û¹4lTe(K#÷ÔDÈæû É¤*ÛÊð_N-% ɺÌîI˜óñ| ,2ü°ÿƒPº<šj]v±öð1OElf£D[w{±‹R]^Á«ëܺ=†˜“ð \{³böòÿøOÂão¾ýüÝ÷ß|«XÂAÎãÏþ4œÿAÿé?%éññ+ÿ]ŠzxkÿûõØ/÷aýÕ­´GoĨxÒû^ÿ¾¸GŠ÷ü׉{øaÿÔ=öÿ/é{øÿQøøãvæÿ2_|ù{íûý"ÿ›È~”þé‹ßòv¾ùłק/ØÎ¿ùò‡ïÔóÓ¿öª~øFøôÅw¿þò»_ýøøé‹¿0~þQþ£ñAÿò‡¯.?ö‡¯Ëû‹Ï?ù²|úâ«¿d-~ñõO¾äÓû“/ó§/¾ýÉ—ÜÃïÿ›Éƒ¼'hùr޽'G ÛÚOæ·Ž.ÀõìK×Ф!;N£BÝVq/žíÛ«›CŸºñEÛ3UÙ[O6A_ª¾:ùÔ¦´òu:%¾4ÆË„¨˜ÏVTã™`'ãúò)íY@ø:z?`ç¾õhïvS>×v–ޝãŽ-ÖíôJ€ø^ž7Ïã™ï¹^0a `¶Rùq;Ï^:^<®‘Kö=«ý‘ͼiKˆ\‡N¸@úèIÏ3µ Ùú ¯Å3›jaÚ³ô§O*Á’–©²~¹H±¿²Ñy+ßü)[3í?·‚¾^%p:<:s¥áWË–òz¿ñ°æý•›LhV¿ö;Ö=^µE.÷vñrD¨;¿îçDÝ!¸£ðíÑ`^›}Ð@ëz¨uëaIÝÎPê³Øi‘œàRTtÌ[WŠæ ¡®E/TŒÇ¯J\OfÃô߸¥aþquž»(1Û£æAQ­¼8Ú’à›|Äýê÷—”¸ éíwÊåí+;C'ýSEü NŸÙ­ÂzjGöÒxý·õíeõôRÎyM•2¹§¡H‚U”s«ž_êví%=!¥CWVð9úÝá(»)U“„Ö×|ŠþJ¥®¢YIP.TVÓª½Ç :gÕ¸[‚+A_¥×³êÞê9_\õãÁϰ±ü‰N8½Oa{Àè¸ÚÔ'14˜ùóø7v·> Ò…g†U¬üÿÍvQïvçü!íN%äÃ¥ éSS¿@@‚ê$Žø:y·ûç®î)p£M–ezÖ7ú–^ª|ØšÊPZ9òàtÕõX펖ÿ×ÈUyÏéh1_z;Áà¶q|ŽÞ>;çÕ—Å/¶9öëˆe>ç“t¦„n¶°=‘lœ÷ÜWRÌ:ɶ…?æéI;û²êÀÀºKs•9à­ùž¡;4Ù+¬Ì¡†¸ª™Í”“~ÍqÄTóK×.máø8þÇínSÛl•p¿v¶ÜB¸zYÚéù¨¬|Ʋˆíìÿ6HЛ‚_¯¦uÂŽK>!¥öþð=üJŽèdX»$<§×iàÊë-¶Å²ÈßšÖã{SÛ"n)gÙSpdKÒ«Ø dãÕhY)ÉD±Êym‰r–zK:çu슃Åi¨]üZÚ¿øœÃµUz-Bj/}—Ç-­}Ø›{äö¾K=‰A¬»íÉ?¼{9)YÚTªÿ:Yá#jX_å¤g Na9‚§IoJ»ûø|5‹+°N¡hïóÂϯ`±þá}Oñ/þ¸Ac9¼”œ¢æÕæ®UÆ º=Ïñò;¯'½á4À[[eYqÁÝÁt®eïþi%{Y1Y'©ªïlF <È_D!O•‹’–¼œ1&Y©Q£ ¹úƹÅ{—Æ’FHóòˆ#×·–rŸEe‰³¾v ÇÇÁ½—äA昵ӢV(A„D@L½ÔN°gç½â>%]ݽðê¾vzìPìJ²zæùÍk_TäÁ‘cžÙÙ,Ð8?æ{«›<ÉËÊ©áòd ds»[e§®ïhoKŽH¨‚F÷¼‘Ý¢ES~ ‡'b=õ9u…ŽO(à/žšÍvû6=ˆµNìªcÙ ¨ºÍ§²”O¥X­F_\û´h`¯óW$ɬ¼ðe4ÖÇÆñÒ}lȲzÔEÇ÷n=:’'ðq©ë4gsðÙÞT,ÓNŽV†ûÚ9i<ŠÆ­SqÌK0´²Îξé{Ú°gRyÁQ‘WÝHHzórKij)¦À ²ç‘yÑ3’¦ËÁbBÕ”ôé?‰¿×w ¾zj¦¤OBŽú°“5~ÞŽžÓqÐÞÞ@¤Ì<;½=‰Lz5»tW=X¯D0®4Õ…Ò–2©ózb”Ù&:o û^@M6ƒ´÷IÛ²9iÈ-ðÎ={:ôµÛ‡HCIž7i™hF@´iîº=è,o3ã®¡7[õ*jU\í ËñÎïäY¥Ž*¯#y²íÕ[.eëÌÝoeÒÝ0Ð!¯B ¹{U3Únƒ¾>zå£VNš¿’ÍïI£Û¸,vE’;kˆ%xî#ŸFDjÀ…ݨ`ãrà“}wJp8ÒžKÿÅä«çaYÇV•躶ÀG_o-wˆ}7aAßDHÂÉó¦ö—f ì¯ÂË"ºgû×^ë6IÏ¼Ž¦µÉ£|ɶN&¥·*H×ñbÝšKl÷"½U²Í²>áJÇiE\’ÓC ¾E´ß7Ø•¡ÄþíÀÑöDÔYcEá Ùׇ̃Ïf×WÒAR4™ÐÜ^ðT‰]e Ý#ÉôwóºI?ååš[\äêë(>³×ä >]DS]ì®íEìr›Ý ¼ð"t\Ç€ƒZÏKy9Ò(QYX¹Ë+ÅLzd\öÝkü ¸êzs©§·¶}Ì\ªŽLÍÎ~BØÁ^ºˆ\ù.=/‰pÚ-*­ÈC@1ð",K2 ‘ú°cØNes‰úèš¿¾ÚݨÝT¢‘-3a4…y‚].§ÌO8 »÷P2á%ÕàÔBÜßæýŽÛµÊþ×sþh|¡CL°nsGÖžVR(qµbo1ï¢ÙY>Ôýw ·]x×8^4y‘0•A#ñ©$E$9ýdm'ûí x­è;¡¿‰QpÕ§@-KWM5slqFBÎq¼~cµÎµÜ ñôË7¾÷ySNá‚ôÖg;ÖFÍ•u8æVÉâ4¶ ?ëd÷t ÎêPmH[‘W‰¤0 Ò×®„ë¹ÔpôŠCŽpæé9ì½qnì6‘x=[¸ 5áñÑFK…úbC7 ¸}>Ä}è!c£äøè” ôú+“ò°ÖõŸ%½6¹4»ºV«Ü<Ž®èÄèŽ>7X bûvÑ 6 ~‘w®2Db­n«7SꩽaQLÅ0˃ØÎÛ$ˆãvYëhÖ6àlWÎzƒ¡×¤½€˜–=;èª÷\³%Õƒrc3-uLOòV.$Ávv¡˜Œï­1¨“˜eÞÑ4¦PËÅ*}ÖÈSSËé74•C°{ˆÊ}Oþ‹ÇØ]Sá%»ˆˆ!ê®å`w4~K|ãH;ýhIWš{ëpA "îÇÓm:Òæ@…Ãå´F#.¨Ùv' ¢2C€OVÔµÙF×I/©Ÿª¹½Ñ©Ž›'¸ZµèxÀή¯Œ!í¶ºè+ÉÑÇî×Ã1XmBX¾—/Ä˦ Išv¼A]C%ÕÌ¥¢ê DöisñV˜ ö{UçQõ°;_§…ìÙ*±=¼Wâ‹ý-€¬¨Yó©KG8 A/ëã¥Ã¯\ „ÔP0Å‹¸4ý%Ú¥@.:G=´ùÚÓ<ªôi ›ÚXÛËŒÅÇœS™ âft éK¸»æçxŽl£=ì’õ¿ ÀÓ•M¦fœ-Že[l*wÂ7Hv¢…%ŒV—oœÕÓ14E m\å-µÓžóцKX+yM0S´›=ØO•ïd×  bd·«ÆP,¾ÃSû°¿Õ:ÚNóç# ˜Î!ï-¼Ž×£@®Zè%èó­à“ØåSOPÇfÞ<˜ ªe»îP~o ÊÜ–¯zASѪ= òŽG[IžÎ)šÈù’C`¥,—q§S:B*žwcaHZ-‚|HáÉ8JØÕ;ÎbK7¨ªê<8mï )@]ð‚Mï4´Úä "B¥&Ÿ 8 Èf²ÊðjlÒ·-vP kN˜ê•$ ¡¥ú¨GŠyôš6JiSk°³,w""Ý“—JsùŽKj/nk®Øh[JÕÀÕñ¢´Á€€ÖLc<– ž΃˜QWÈÒ÷« ¹h×Þãv-?¥ ­Z¿ƒí[Ñ9u(øyÛq¨±.Q½u6lVkÄöŠÓ¸u“1û£q¶bù•{÷›x^79ÕÏ@±‘9Í]j–Ue —ݾÇf;å`Öw³ 5k×ôºLëV`m¤Ócª®}¬ÚÙJ…’Úé=?\\È÷Í€v.Ïnà;oÌ!Ú¢·‹u»‘Ee§”mñ¼Î}7µ%¯gÓ 9n{*)ÖØ§>î¨7i/èúË›˜-7ÕcTGÍ> ;êZÉ2x©•6²ÄÌq 6xVOUW^v) N«–7¤!KpvSò¤™Ò «2ÍN ëã dœ7®¤aÔN¦'ƒ+±ÃVÌ¡ÚMÖÓÛI1ED÷¨[|=3J, ¡Â¬ $—âPðS‘H§¬ó†ç¼ÈÈC¿‰!ÀarÊÑáQÔñîVý×Å6Ò8ãîä$?ERIˆˆW·J"š3ìŸ#l›¦’´d 8O—¢ ¬_äj€áåY‰ ±E „Û3˜¦ŒX²óáäàÃ%¡Ur¾Ùí¨½‚mª °’ëõhŽºÇŒÒM«Ý¦z´½n6†7ˆ1ë’€ù¨4Ê+‹™ÿi*hBµÓ½l¼BX±¹òÖÒ{˜ÞOÅÿºzCöIÇÇ®X=¡•éªz!ij ËìŽZ)pN¤åDïªÖÎÐÑ;`ò¢ºêZŸÍ£ìhLóêìV½ƒ#¦´Þű¤#Ù=»e‚µÕäÒNç|ÜRD‰[W*J”¼4x!wÇõóI¸ƒ¨_ — öŠü€ f=²øáåûÛË~:™iCñ»†Ð¾-ƒ]²å ƒ-(’ª‡ö'‘\«†Ú·Æ¬ÀÆÜ¨ÓÓùQ¤]ïmë9Sù.x< ‹ ~ésdO¶vã©hY4€gWD+Îß»O®³ïaQÐèTÀC©~ße¹ ÂV6½ç-ïîÏNL‚uªƒfɡ뵲VWWýÎSh`¡×›@jZªM%„Fq2R}õ×iÆ*_àY#°À›Un®Ãfh›Ó:<:°(ü† }…À*{(ÈۈʒŒ~[r ×¥ª¦ó¥Á¥ñØ ÀvêÔó·âà ¦X/¿ÝVÖëòP¶ E¼=YG05AÈü QÁFÑg†ž€Ý¡`v©ÄÀ¸m‘Ç +d5{Ú¥ù&›ò,ÆV4´8÷ÃN¾%ý¼]o‡§{Àïõ¸O9Z!4¤R`é˜fÅËX×Z¦/%ÆU}½ÒyŸGRCÎQIg៭PΦ$ ˰¼pr=á§*,g»m˜¾Ωz»åç¸LW²lð§2U*¦Ï´íql1¥Ìyz¯ _\›r¾—5·¨@uã! c\¬Ùø.º…Ÿžl«f3É!êöàÚô ØcS¾áù7»AÒ•jræËsB G0Ï«°1öG,sÆx2͈mâ Ÿʩ١ý€ §µ¡%÷L·“•'1±’<îâH ¡Ëv[âÓ¥Ë5¬åBPWY#Ø;¯j×XA“5}™ÍÅNªïÄlvöŸž¯T»HŸ Vfy õÜ[Uù–©­Š*• Œ†* @ 7ÈÁ29˜Í´l{&yò 2´Ô¦Í]ÀÝR¤Iòì*„„^€/CÝ¢SUó‡5ýïO{- „–…Î{Rˆ:Bª›jçð8&$ƒx‚B$ dÌ<÷Q[÷"z³§Ò 9ª×æ$²å ëÓC¾À8WÕýt‹†Ð,^-QjÙðŠŸº¦ˆ€Á·.×´ “xŠA¾w=´4*ÔÅ[èéÚmþäÜæ Òo+³ˆÊS{–Ä–ô‡YÂú—U@¬äkÀûÓ B¾èÚ2¢c»P–ËÍ»tU(ÚäÁŠsÂÿX¼“«Œ‘‹N0VsÔ¼:Ò«.Ùù®š¨J ¶ŒóØl´U2˜wË<\wOFóÖ|+}©Ï{8]˜ÏðpÞv;²QÔë‰ac<"|¹…n´<£•1µWTë Ìƒò¤æÑr;­]‘TÍäÙZ wÐÆ±<åR˜vzð‰•N\bžÛ–ð*WL$¶,q›ßäg÷>3¯ÇÐMó|Î-Ž n#?º£qáU\ÏCK ÕBaI —*b~MžÇ3%þ?9>ª2µ'ñ‰2Jê‘HœÛ‚ZZqèTɺpÚ”Õ>µì@v8JzÞ©Æ©-ë7IêsLF唿© ‡÷Gô#’paò¿¥0Ëa+Ì®Y¼C¡c¼lmv»å*@[?B³bª—4+Ïãr‡kÁsJÖ6½d’Ý¥B ©xH˜»»VÀiòlø£Ü¸¦ègè)æ¡r™:¥*]CngÏS ?Âî5_öCôµÇ,òžÚ¾¼pçØûjìú%˜“V{±U¸VDÐá(KªNA¾,@’=°„]"õuÒÉ´ön‹iK´÷æV<Ž“×Ó> º%{‰LÏ6L19Ý•¦W&æyN0MäÕâD·zLƒ?šµ¿gª·d­BÕpÜŠ ¦/Ä‚p<Š ÆáÌ5Ï ‚ÞNõ/ùl¸¹hG±Å 4ØEÍKŒ¤2’-ׄ˜Çî0aíħµ/.X=× !“LhÕ­;НQ-Ås5Ï=Îãr:ohMе!RŠÎ2†EÌ@h׌AÕÑ çeyxpGR^Ûg7 c•µ'\ÆC{­”«ziÀY:tzäÏ iÏ2bwvÃcIšåðj³¡]cYVµ€tÒtŽFEQÈ6öõCÖ A$øì¸îÝŸ‰ E0„~°'9Ä8'pn¶Ë¦&Ò©³Î=ë´rÙÜ¿Îã tåD¥è\›zÆ4BÀ;¶[¸ƒƒ$»bòå“ÐØÞѽW!•k_A‰pÈͧöBkÛ)ÇqkB¹ýíI$0Kà´ P«ñÏ û9[›”L‚ê§•LPJ9zܤ3²Bç–¾u¾?zÁ>¤î(ìeÿ³'”ÀÉõqup“çÙ"Ð?œ¾ò®Ü÷ C{Ï í⹕c»mÞ-“Þ¶ÎÙÜ‘ƒiFÚ,/òÞñIN'Æá—³Ú¤¬Ã)ô*¡ß­1Á~S!±W8ˆ·q*ÏÕ«“F’ÈØà¯ëˆÀ-ënÐm¶R™†ÓÖ©hº (n 6ƒÖô®¦ª°þ¾÷Rä ÔfË%—ß/G 5A!>asâQ4¥rö­*hâ¨jyßþè«êet(*Fc•­5Ža&…¨ÔQôÞ{Båývsã©rG±i º_³ B‚Û˜•váõe+S°:Ôh‚Þ¾mÎD;Y ¶%ý×›"¡µG©ty,¦¿¶U’SUÜ6jÿ]è\Ç`‰q[Öã/e›õöªÖ÷.w&ºÚ¨•^z yØI¸QGÌNû<ÿ€Ÿ(K5¥˜³o—¨´ïUÅ14´oŽSoÛQºgn­\A'>©hRcP[Áª“cµåÑeomã| Cr‰Ky"ϼ_k€Ð»Šs†±Àe´ Þ =×Cä ööÆí›è‰è¥[–° -ÜÀ+"ËJ^pXRýŠ|uŠ:¦Ö¤@ˆ-/p†¹‚hñ &±gIh/Q¹»¯Þe8Nï³Sy©3²¬nWÎà±*øM'°ò,€ÝªGÀ3ËÞ#ûKü†ÜJ15xº½”WÌRRr¿ñ{©=íp[k«Bª4“ÔP·³‘ôS¬½I½ô/6{½Ní¡\£óú&Ëuë÷Ei, -«$aƒ*€•È7ºẖc9ÿWö£ÚNÏoyíÌîúLëL-dBÛy‡ Žvá[TV×n¡â²|—¶ž,}Ú@4A/Žã! Êø“ú}¬¥áA9oèáq€`k7±Žöh®×Ô­‚,((îÍš¶#@xh‹ÜpÙ É^!̪BHæH M@<Èõd}lò>'ŽÚ³} •ß²ÄÀVì#¨>ÇŽ´ôg;ò­Ð?ïþT®Åþ£>ä˜@Žiùb·X`ÑüEwÅá93ÐrrkÖEs`5É©_ãg Ûƒø2ovŠÌT¸&M ÉX‡s8È0ÛªDÑ|hš€l$xW°”„¾¡Áù|uÔì0‚Õy¶_‡UDñpOgD »] IÏ>"M!ã鋹ì`Q+Ò㢰[HÞ¼wB¯ž'sø"ê>€³ßNÓ7eè/)çáøpsOï<ò¨X%$ŸfÙ]÷8Ì¿¬z’jÓEòQjnzµO?”jãéòSM ®š¢BúPÝ;²#ˆdÊ«„½K ²Owp°ÉZgiÜ1q/•b¼N¥"Ùƒ¬ûqðÀOÊZQ¬ÎMX$FµgûZ5GkN"% ”Ì-´–Iþܯ6[Oðð$MÒ+P"M‚ Êêúvì‹=Ÿ6Š–µP‘X%f :4ðÜ<&;{Ø-æ™ì6Hï*6tí6àšõíR¨!r%›ÖÕø¢H)`é`ÑX¿Žy±_Û‰Y<&m"=øoÍ$*¼C2 ffs€ó|kÒ){1`!kyJsÁÐù<²ì—'PK­ºwÛ ïq¡ÇV…¸Ã›õ9«Ø0ÉN}÷Ã9MèªÕðì¬É³ÉÔ·R¨CO¹?uI?³˜œ,êV­5ˆ]ö¾³“´¤®wP{¯œülçø^Žö?Zô#æx†Ë#2µï{ŒQ!m<ÞadË:@ZSåd}6"£z¡Á©EÊâiCTª“4JYY”¶®„åMéë²½yGÚL>%Ï̈+±©æ;ÙË6!騪ê<­éЫ½f÷0ò Xp·sŠÜY©¯C4:C¶M[[)C?Žf—¢¦Òžz+À¥Ì¾»í¸+2:o`´Ú–¤Ø ¦ø= ÈǵMp‰{©*4§®l4ØeøámùŠìmuª5Ï&™nù¢©RÑa{í²qHýÛ®éÝMØì´C_±DmÕÇ’èZ ‘ $ÜÛ‘bNBÝ3ê“k{þØC—€û`'dV õdÇ5Ðk@ ’€°ÛfS‚{½·gMåuB°6ÔÓr›8¶b©ìzVìv?Õø«ƒ†OV¢:Ù÷êX?&Þ© ë5Çêc7ñ%,a+%û[”MÊ*@†íæéj?—͸Ҹe«©::UÝ®5Kûˆ­¸Gò>£O¾ìˆQByƒl9õîì@ñ¨¼ KñÔœÔ0µ$0ž^òÓ+DœÞc<M—èV·Ð©¤tr‰BÄ "]xzœìý4ñ,éìò”¢’]Fkïöôò‚Oå\0(¼ëÞ³=)"º½uUà7aÉŽš‘²Gñ°°¥~‰Ê.:;’§QïÉ{ÖcyUY½/ ­:Œ°0J˧§.Ðÿ—¤`χ€˜+UíÎNŠ(fu–8 Êø¤n×”’öÆ¥8y÷-è¿Ó«J뙤e gwK’€OgUÑŒø†óh#o‘)ÒwÐÏÄÄ[°x ””J–¯ìœeÍnß:IªäP=ˆ%ÃiÏ–,-³Fv•ý\j ÷­ÑbÃLdá°”†Ö”†Ur òD•ñÀ9\•‡vq™81-´«È¥Ý®}ºixå³ˆê²ØO¯Î[¿šÏÏ ¨tÊìFUåbÇ7‹Kek”HJXS>P 2†1 Ò/pp‚ö¾û%Z«kRmoðìÊ>C•¢‡F!– EÓ–4ó®}ÁK×…¥ǹe&ý+äFΚ·€A÷bð0x[Ž{‚XyÀ¯šžÏ#Ý»R5´3dò¼võƒÜ‘"$1ÒΆ—dïÈŽì@ {†¸Y§Qú{èúûâ.AYC´K棫n”Ñ~v–ÛÐÏ\çE“¥>ˆë´j¡œ Ï a¯NFªÙh^ÁÖ²+²ïÓÖk7ÜN<$•lÞ°³y»¶xÚ¡íÇ=•o*V‘³M»Z†¬òœ˜nà iÃuÂ2xJuäüˆT“æ ·®Á“VÊ¥83{›Œ~C¾ZÔ ¥È’çÜVÐÙšõªì<}³³’}×TžÛ[ß»ìøÙÙH²å$œÄ¹A!X¦Ý¦ ¥ˆ­»´òHóìQa¤bQx,y¢§?ÁF.L’ØA qé/™­èÍpý¹TK¡!;Ño‹Uœ„9oÙ+ÒY-ªuGS‹\Ž,ð¤ãµ¬ÌFÑæD&<,0âÔ\ùÇø_§;óçÿÿ¬îŒÿôŸÒùø•ÿ.ug¼µÿ}èÎì—ûƒîÌþê¿VwF1³ðOwfßëß׉ק?&I|r´áSkå¹îÌõKvf¯ðÿ’ìŒ?ð\væs™™óÓ¿ùêëßý¨ ùÆï~ýýW¿åüí÷Ò§/¾üŽóÕwÿŽ—õ£¶LüƒüÌçÿ;Þß’1|Æ¿ýöËŸþõç_~ÿ“o§?|ûceü·‘…Ñ«òL=Ê¥vÚŠªåÚ\|ÙSI£j®½ZQcãêu ‘Î3çêð ýÂÖ?†¶àÜäó´9šm9³Ä§õl}ΪS÷up«i.¦„¿ÊÀ‘’·6h÷ƒ@ñkµ7& ½:P‚ž-4X t2ÐiŒèlvÕ½+hÕ<ü›Ø"^®¢'ŠðMußÃ>Vi*jk¿OE^púáWp¹cRÏ °ãÂXç€R#ËhUOd»‡î˜­0­‡ÚK‡­l½-½W!Ú =%8à8Τ½Þ·ß¥ï#äH&ävd¸çÙ_…ób:­ý‚öF ÕéâÀµðuª‡êIQõ¤Î™Ê6³Ø9†ã 7Œ¶ý–õ§5=;:¤}ú@Ý&µeêö,\A‡´b+Yiö¶ÝPµ¼gà,ãt‹ÅŽ œ©§c9*º—л~/¡Ã®_Vb<µÂ+ì xÜ/è¥Ç¶`I䪑ŒæÃ¶+dßux¥„—8a+#¶›.ˆÞí£Ùœ8±&Lùn6-ÝJˆO˜–ÿÙÕ‚f7²Xàä6.–òº¹±É²<'}X>Kû^‘F.–ÌaØö^·]–<M†¶š]º?N7É‚Cƒ”W}’O×úÃßͶÿ ôEÓ€†•x×Õåׂåé!†mYÖÙšŠE aNa;êu«îTÝŒªÂ¶G›šËá[ܺì×x¸cÔˆW¶DGãw²MÔP_û¿Aõm%cYÊóœ2¼Îugç0Ê1<ûÐNe Þ$oØö¥uÙ)øò”tE±|=wO'ÌI!ªb4›$ǹm2kh6ÐO-nKÖ´>Û¦¨Åø™ÕŠãýðÊxÙ¹aeV:WÀhhùƳE>šßÛ©2¼BÏrtÅŠ^Í–tÅ…Gíê(4BÚr,¤œ¦w5ÖÆÓ³×lˆX|{¼yÛá¥ÍÍn'àfv9ÆvóÇóyÖšI‡0l룽ÄÒ\IÇñt¦Eà±0Ï=’-lóÞëœí¸ÝˆSïʧ† 'ò½=F¢ÙÖ…¨¡‘ºÎ2$;3žY‘NXäyœÚr†ó"¡{–5Á´Â>ôtRz£ÝÒõU¤é4DZ纗1&6ùs•°@dÙyfÅ]:)°ÖGïƒÛ)«KæÛOϸ<õxšÄy¼„RÇÛâ ž<#ߺAÍþ)ý¾§¬çŒúVäÇ&ßSoút°d£ó.=«l~nÏÞ¼-¨õßY¬‹›{ &_¦úSÇt¢½‚ÃÏ8Ê\åØ_MÊI/7+‰xºåï >“Õ¡¶l« lg.ìMûZîõ}êÐt^ö`G®ZöV‘çð82¯9/mt¢W[Àæ³ñÙÖ1/M\ýª~EÊxÈ›ëjCaË•·‘ ƒžœÄÁ˜tÉ«—ãº\i¼Óg·;UÛîlF`Y>­ðö¶ZDžՅ>/vÀµÛÌx×1CÒUÍî O«Šë¹ï*ÊjØÍÅɹí+°iÏ™'Ôª¢m,Ì|r[Óý6 ó¼CÛyR!äÎ…¤mZvi£•4{Ð “x=âuÖÈ {\Í+»·¸[ÃI²õÜ= \š¢Ü[a iø-V(WÕÚ·YW=+,Õóÿ¡ÉˆTµÇ± ^ƒnRÕº7 O¿%õô3kŽœæãLÎô¾ÝÊ< زŽm`¬ô¡0þ“œ‘I$/Âhªgp6±ÙùПð\4³u²ì¹Ñ™#ØÈõj<ØÒõxšêâzcgq% NžâIgw!±Œ³ÎÎJnm5ênžÍ ëÆR‚ÜGßúqD#-@½`¤\.^̉·§Ö4³Ê¢Nwö¼YÙú¢C/£(,ï4½'¶Dö¤ݳó›-M{Ù§‹Òo„Äã´"N :üUÙù€yF~?¼ôÃ'F(›Ã^qô¿¾Ê`‘Ul¦˜Vœd}yàE]‡\@ׄ½ÇñN² Kðj«%‰è5¡{4­è–QU»Ô§¹l‚nŠËðHùc™…TŠ@C%çö² vA£¦>ÕÇlߨNŽù ë©N“šǺù%ðÉ0:³m­\qR“øè3t=—š&ð˜^ C«-Äp–Çs¦Ã~ѼKëãAÁÀ+7QØ`wÕ­™‚𳀇›#šÕ+UÀN-étÕàa&í¼Ô;qíYÙê­‘\!8}‹$*¤~Â@Èv×:@—Ð2‚Qda8ÄàˆÆKN{ïߎ=VRšëTF§€úH¤wG«Ž}I‡ÙjÞ3vÙÍjœ>ˆàˆ©"ë”,h÷ƒ ßÙ³­šB4JZ:Ø9ú[±aGõxY¾“#¯¢—Ç&@Xg}à:@í¬ñ¦/î;Ñå.ÚªƒeK ënç|c =3†½¸Ahtv\^ìNð¨vCeó?ž[ñè'I2,CãmGv€°§ ޝÝÑ÷a?‚†T?ì!¥¿GθhåA§¾Õ·Ìéºl–"‹À¡ù´aVy;q&•×ä9X´àÏZÞ#ÑÛ³V“VÖÈ²Š‹iâqóÉO˜]‚ñ:º6¡:t QZ6Gðˆ^OqB¡“Ò«iè’\±Ö£:á¹QIiX²5ØO>"b3^ÚpòÑçT·mÙ óJ1 ×4ÊÈ/èÄšóv 9ÂÝRËP‰¡^"è<\uõÔƒ[L?ÙX™:"p´“|/1…+H¶¢î)¯Û¦“c(y•Ö}¸8Và èÚª©shõ¹j§Ç.Ù­ZÞÙêmOèxc€uµ¦W ¯'f9pò[Œ›¶[âÿþ¬\5œO;ñÄ£ŠÄD­+xÖ±›îü´"{ZÚ)k¢Î–óþ~B?' úüžEçè0ûx½ ά­¬ƒ‰­ìP,Ü ¢ÆÊæ©“¾U¸4hµ7GvæÉÙ§tX0^f+Aþû¨`G"ƒ½ ¤gìÀw+U¨tÓɈeG”ÃÂÒBÍŠ§ 9›6]…·‹eNôV'U4i+ ûÔ'æÙz(b"§ á¶ÿŠÇBúƒÇ{áý ï»FfQ,Q è4SSE­>’ãÚ‡JD žIšäx§¾¨Iå-â>Éiöªs—íñåKå‹tr)ùƶ4%==¡VjäÖ‰å÷Aø^Ħh»¨™‹Il”˜ô›$²rZæ²ÉʱcA(IûÔbO Ë´ëÕ9uð¨’t7JÚMöº˜Ëpí×+ð8’έÙ81¾ïò6;&QX7HWÕ<¯óE»<áP[ʲ³c`7-‡Ø3êjùã(£Qò>H©¢Óh`^‹÷¬,é‘%¼•0IxÁ30E‡•¤f%*vçàÏòžÝ_‹×Ô·Ôµÿä¡Ôô\Ѷ*{¶‹sªØìŒªìòÒî‡äå|Ñ–uôhÎô äòÔnÊÝu8»–C׺ñ*žQõÜ•7>Z`jÿ=Ej÷!˜ÓKvX%+ªêÈ oºòÒ`&PÝÇ™Újr@øA‰7qúÕøº*ËÈûî«äš@7YqhÅW-›ÖÑ:ó²ráÓø –N Î{nÝ=oÌ,½v*ñqŸSE¥¾Ä‡¢*­#B ð0Dê<ÞÑ>‰Ï|aDB|«ùÒ¯VÖm÷. ãWxL‡X§Æ–ÎÒ:¯]ù‡ÇA€ï•À'*EÍ쎳b099qÏ«…±tÿ€æÚ ]ÙÉŒd?ïÆYâìÅ ÁSU¢ç²o•m_qš¼.ýô©Ϥf3«dèÒÅQ—øÝ.Y: BíçFVCAäAð 홇vã]ýšú^«ÛJwöÕlOkšoU'Ám$[²QÞ|ˤ}¤U”{8@2ÛÞÕÖ=}Ë;%­Cõ?‚kI]®—ò,_ ë@Ó[çC‰  {k{6K ÒŒ©Uëe]¬IˆxhWÍbÃÆôéñÌ“„â&€Ã>펠Ä9­EÀÂ’‚ݶñÎ/'1sô€}éµ·”açAÎR§5«5q{ÌCè"/Ë* {ªÔ¥ŸŸ+wM«^Ó©ø‘cTé9¶*OWJ/ÜE’'”+á®$JÐ ÁTUfÞs>ÀCÛÕÆ*£a÷ug¡Æ£P"±Ô™‹K^À6dpé+Ý=êtÞÅ.äçV¥]uÙyxß=0vï8qKÑ  2L»AS’ùVmòIjãÚ{xX½ô³õì¤l-̉ ÒÛVGÎ0¼ßMQH„d^í\ãEÅÃÜ ýÓÄíê<öÇ~'" H“Ì þ³]ÎÓV;6³ÇcÄ„*eè^üy(ù5mQ÷¹ØÙJø–¥a#W}Ò¦ ¤˜´>drÒwÒÍ-Å4R#7Ú#v‡SV³õÆyW‡W<")*± àç©I“ n\j" 7=.[ ¬Ÿ/‹Q ]£úvÙ]Q­xü%  '^i Ò¨­ —ç~! ¹WÛ4˜²O3Ùë^erÎõ$3©VæQ?›t&¡\J@ìl©Ï\Á«ˆo]Qbˆ9{ÏÙHœü¢T²Ú )ÕßV0ÆÙ’§÷•‰DþÝÃQØè©oç&u-w³lèâÙE[¥ãû´²š]ÍCd­Ý¡ræW›$ ›l$¸†Ê^¤/q{æÇ¦Ýß:cóõfËCNÀÆ”Eâ<žk«!L{OIØIÕÕª~¦›$0°ˆ™ýa«"|˜FxTîȩͻ%„÷°Ý‚ªõ07@ªãŠá.Ò=l7ˆNøeþÈ$,P†ª*šÈלqŸ—‚¥Ü'x×íŸTvW5c+(ƒÚ×Íʱqóæ5Øwí,à±XšÀÁh[Ú¶Z„T4ÌÙY…tÞ)9Öo2µbas÷¬>8ÂyHËš»ÂU†½w6î¬=>Zd¢;lpzT ÚI—rߊ×Ö£;8Κ%!†­bäzÑÒìQ¼ÏÓŠç´µ’K˜¬À|jûɪõèóÒ:û}íÇàQgÿáÒ–ð¬ªYu,a(1éÍšáë²Oˆ¬qñä<әꧼªÀ®ÇauåÚ!}Ž«­RU1uF×ÝB7À­­D.W+´šêêî<£"€¹s…ÑI‚ExÄj,H…ǵmÚ, …}€{·µXðÀètD©ío"2QS]•¦4K».G‡Z)¯þ0FV©WxÆTURµÄÀ–ˆ ¦¡§‰Î„ºP «Ò.ÚÍÇG7Už±Šèס­­â·ƒEšDL™b eK gÏ8?…àsß„4”Y¹äx€›ýÿÝÓ̻,—xŸ×E¢z¶ÐÈØÐ:r°Œ´a‘ZniåR%j¿ùJd°ÓG7æ+¾°ÝŽ9æ7J&Ne º¶àÂ_4zfk(RwüÁ¢ÝÖwHB>= ´ÖÔ;ßòs»ˆ:ºBRðIõ²÷4X‘8wœþ±aƒ3„`'-ím^:1Jû½emz-è]õv“¶ßõñ*\UU][ÖKo­:œM"µº‡É׆Q» °Îã<° 8ËÂÎà R÷Ž‚Cª.P<åTû5¨½XU‰Æìw Yo¦Þ‹ w:²¶žÀBÊCØs(œn§WŸL0ou~^5„©Œ/0Ȫ£ÂnPö,AÕSs±Û)¼¸U‘ ꆼÉ3MGh§/…T˶æŒ õmbïs×Ãà·Çš#Úºgq–âbzS²pï„PP‘óóa·Ò6Že¤-åÏU5e›ÎLÍž5ª×A¡XéJ'd~ FeÒPTƒVU™®Ç)EÃuVÁTÙ`8Ø?€SúгЋÊñfàú³KWj®Â•€É„hLR·v ¸BŸ‰w»Í;=»5UÒ–¨±FÏwU~ª¼—az1Þ«Ðwœ©Äë²@òÕr|ÐçÅ›³ ¹ºÀ쩸¶7«ƒuj º†‚¦j •¦Éø`ààô7ýZóé¶,˜†„šúX<‚ÃiÏ:„i)¥CÝØ‚âŸ{€áÞ£ˆVŒnn::œ´}éy%'i&¾`9R®ƒ  “—ª.n'µœ^až¬Ú¤Çƒ~Æò)>»¬1få”’®Jò_÷á¬Ñ³^ÔÎw¼G˜¡ª ñíšÍíôÚôì\ÍÕ êQ6±¦ÈÎ¥–á#g­s1jzbÊóñNOex.M1Þå4‹ÂdS‡`M5ˆ>Ï¡mnPòÝ驯å×£@É"š—L® ñTў².°(Ï  ò£—8iÔó–ŒHN·z°¯wçºøca*3¢ô592@ Òêrÿ-ó VÎt§"’“~ °%´ƒf³¼k+?ŠLVۅ𠊹nÕû+ô„G®ÐâP‡š¨z8^a ó4Ž`­ê˜zò—Ã:#(Óíú¹±óUïȾ6 Ùù ‹G¤„àx4ù€ª^ù©æþr\J™‹§jKÅÊÎ;Tñmð¬þõ;)î¢ÕBQø•4 Øv„Usê>ºÊÒlausÕ‘`–´'lñФ(úœ­ß+±NÅœ#퉲„zîœB'x¤¼T€y>lám³= !¿pö~¼Jb^SÁVƒRÑÜð•/!Ùî·X/¬è«EG$òžYäbø» m“™Šê…05<ÉæY$óÝQYzØ?upÀÞš¼ÒGíÕ–Íñ6 ¬wXx}œÀ³ñ®±o1~tHO¥ƒWľ|—·t½¹ÎC=§Xº|…Es³–‚%’Và³jóÁž÷ÔÉÓlFTËñgb‡G¢»(À–Ñ4éÃ~Á¹ØXm=R×üÆ—æÁ=×q¥^ôÞ°NŸ²ç>lu{ý‚¨fvkÛH|Àj¼œÈìmß8Ÿ%z$54åvvãPïœ%OÐf«¹NS¥ãÒƒ¯eòæzµÚ´U9€‹z‹{Èlçaã“e’3tåÿî´]u²»?[Î"Çgm*—ÁÞT äÅš$Ñ%õʇ§§ËymÏuƒD:[ ¿‰J0J=ß}“g=Î]ÅÕ$ð$=·z5Mp øêf‘ÃòËZjE{¦†Z¯GF­¬e§gÖ?”FƼ·Ë<ËÃàž‡Þk–Íw5±x•Êõ;/š=mVöQåèû°RE°nAE§®õ Æa‰Àb¥¦zj¹ÞBÅíæ-ÄãÌ(`ûÕ«ë4Ÿö°ºï(>ZruQð–Ee+TTd¨;¨ …϶Ò(3ºÌkræJV/ç€èÈΟmã6R0y¯‡„öûh’gßæ PF›TæZu°Sk08×x™=Äg—H y®$Σ<»÷µ«`5sÝ*˜ìxù8AU k»£.<ɎçCð®DÑqF‡«IŘíÙÍv¬UE/§íËÐs•y§­9,6ݪ“át*BŽõ~`ç@Š›Õœ›8fy…ìùø„FÃÿwK °G­ùÀMéQ¹G•v¥vòš¦MàÄÆS}TÝ( ~Ï0¬°Œ‹ôN¬]mO?òù¶æ­uµË¯9@^¯¡2ÔÐâgžÊA&$’`ëmM´Ê¼N#T”zÙˆ–6íÅK¹ªm ^U×V67:kDÇýˆ ·"sÓ²-hB=›¿”Œö³ÕSÒOöè~5ö(‡'ñ§m±@K ÞBví³õ«rè+êÌ4O} _û™m¸u# ¶z¨ã8òIëtÎ[ÝgÎN,:&ƇÚ2ÕMQMÅR–šÖz%_ ‹GiÈXÝæ?@àk“ì½µ¿œ*tìþ™Áad…Ò¬ØÁÕÎ4ˆk•pqªg"쀇ð Øfõ¦’­ *å®bŒL}q ï-˜ÃƒLC“¨v(lX¤-’j¢‡·B0u ™0ÕžW‘öe¹`q[2ž­þªðË_®#D*ø0·lW¯š*ت*úìhmˆ–Â&¬G%UÜÑÈÂ#¾Éž®ÇØÓÙÀ—æ¯÷†Vo dýyùÁöÜaën娺Zä·wíLýo‚§‚ ö\øi+¾Pµ4­n+©šJáÁ×Id–»1iŠÀ¤QésO£Áœl@VÐI„_eÞ—ú?UžÕâŰ,WÐ>²ÁŒ&ÞvÚôzjk™´jTfe8½­=o­oH8ºÜô—4€ïÀ<%,óŽdêAD‡‡“²€üq`µƒ°žv-'`ùQð¦Ó\êð½[½ 2tO¥v¸J²0ú-$u×Î˹O©ÑQkpz\GÔ%СçÒÙLª:0ôÞ"UìœÕ¨Óᬄ ÿ úå{ÐŒ€Õ ~®°£V3›mªIl ¡Ž’Çn@k91Éìн ±•ìƒY±?œ®ÇCWà:¨â5Y–À$œ Ý—ºp,j¶Þ#{!޲§×ò}ÂkÔO(«6ºT!w<}ˆó†GuöՓ˽q<Íd£:ùk#cƒÛ5xä<÷2Èß9g0ÕãßPƒeÊÑ´,ÈKeà# Ð©…‡U. ‹7þ’ß{ªQÂj“Dú®¨©ó8-')·g•Ç x‹W©ŠÔ£@³Ç‹È*Oð¼m¹«ѦŽ*ýÔ(W9^B•l¥mi¨ èÔ¼h½`â¯m† ˆ‹›O‚! pðxÀ´÷ƒÌªu» á32  ÐC²ÑzÎavrµBÕM“1BšJ~ÄmR)8„$ ˜ð%¨Òa`å-F?¬à:™>‰nIµÈ«ýY¹cßšàŸEìÒ²B˜äÕgºÍ»íœ¹ûš*Þj—dÒ¨V]‹¼©°ßéy*ÀIÿ¥yÙÑ ÑL!8[­ë£šªzÍ’ñÎÁ‚ÎõÞk5ãÖËxB„!6žk{\äšì¶â…Æ›Óδ¸¶=-<’ ˜dæ3ï#q=(77D©Du¦U^o—²¶ÂëEX²Å_Þ>UîÇ‚—ò‚õN³àÃ;~Õ7™T7 WÝ‚s…¬ì&c…‡]]çnÅ+ö¸æáVßh 8Ñd/9èà»çl®Ü•ŠE³ç øõÀpF'ï 2ÕÌR¡>Z‚ÖŒò\Ié^êì¼?¢»R’[mÒ1”DlêÖš’áDViô¥À››ùIÉ@è 4Ÿ¤ÔøËï y“‡ÙØzÈLÀ“¥F|_o¶Ôn/8áRšÚ>@ÀÑ_eQíÝZ6DÔªIÍÅæ`Ýi+ªp'4Õ'À~,jÛ ÷/¯;‹a«$9•”|xlÏÆV™¿ùaJX†eJNäLj(åí_Ê#qîHñÆA´žž°ï’š”;ï/ð!È¥Ób¹¨üE>UG²¨C ñ#@O…T2ùÇÉòü€ÿUÓõÏÿ=ÄÿÌt½ÿôŸš®ÿø•ÿ.§ë½µÿ}L×ï—ûÃtýþê¿vºþ?]ÿð¦ë÷½þýéú’>ýqtº=¤ë¡ú¿Ûéú½ÂÿKÓõþÀÿÓõÏ7¿þÅi¶þü1VÏJùâ—_ý8@}úâßÿî›ï2úî·sùôůþú·¿" üð­úé‹ßòcßüâÇoõO_üÏŸ¿ýæÇoði„½¾æ&¾øþ/üw–ÃßÿêÛÏ?ù /ç›ß}ûã7’×÷ûŸüDþôÅwlоæÒ¾ûüûŸ\Ïá‹Ïçò+?sÿøUc“üø=~øªq…ëǯ¸¾ÿó_qmÿ—¿âÂþôǯøÌ?ûñ+>ó_üðUç3ÿÕ_ñ)ÿúǯø”?ÿñ+îíßüø÷ñ?ýðÕÅ_øòǯø ÿöǯxÎ?ÿ‰~ð?ù’»øüwE~ùwÅþâ'_r ¿úÉ—<¹¯~ò%ñï~ò%WñS9.ã7?~¸Œ¯ò%—ñÍO¾ä2~û“/ù»ßþäKßêO¾äQüD !p¿ûÉ—\Æïò%—ñ—?~©öÃ_ýäK.ã¯ÿi:XZU”Þuõ¨ÿº&ñJ²§6W%^·õæèíª9\åÝSÁƒßÖÈÜ9RÅ ŒÕáɧÎG÷•{)ÖÓ<´¾ØèèÁ÷=ú8C…xh#úäðáÃ8-é’ó9•w-í°íRý~ ,ò¤;§’u!-ù¬®:ÙéóBî$üÚÔÚeS3|dY Ò(o”Òßòv-atjè ­¬·GyZˆ(²¼¸ã\#Û`¨Éܵ^x1 jKsž:è¾öÃažrO :!êÂ…!þ)¶t¼vpç=¾Ü•_å„Ënk n ­ÚašZÂd•ô| Úé*¥¿íIW‚6Y©ê¼†šUÿsâºÔÛ›õfýÜNŠ·‡Õv¶•}Óh®\ÜþòÝœ:V¦˜`v·'—GoLn(7˃çqVݳ﷫{Z’ú U…i-Øbycqljª»ÆÉîÕ¼‡­ûË =®Ý‘K:õŒ·æ(Õ8.¢€‚ ÝÖêê€ÍZ …b-ZÒÁ¨+Å«2£úõÃF®Ž÷(Ö½/›cY¯çÉå« ¯½S»b‰7»®Å¬‘—64·’žWò¤Ïë9Ç:.uK5®†¾·Éè£1jðØ¡L›u›®¢ÑYÓÖ©(ýh6¾lg§sìçsç;÷™®Yõyc?ÝÜùmHU¿æY+¦ªý¬“6k—]Žgβt„îö Å(›€ÀwÓ¾ûñä—ÄÂöБùñÄ3:[÷xJe?ïãR i‹¥8biêÿjxOè~ç=;}Õ?ÎN:ØªÅÆ#,²‚ù¹ ±Y¡©îòlÒ©ÙI½lk¶ ÝuX¿mËã;î(o{ï‹¿JðÈ·"°±S—€ê¬ú}žÄ”Ÿã üÑYbk¬] Ø55î\¬ÛÃí=x#ÍG6Sst¥ÇÖ'ey¯©Î¬6D³ñ–<9ÁÚÆÒFÚåF_á$õ$‡áU¿‘ºî##Ý¿Xçå°µ%Ï¥ŒwjÛæOQé’/=;ø.©í-ç3\.zºnü¦ºý±ôŠU3î+;ð aNoÌ‹@Tlzºë°ÔÏÚ•g]-Ðåƒ,Àv+½’þ,:ŸŠÆn FžùnV6·8e=x2Ž"^,Žz%E(Í,£îL Í/YŸU,-{F?EìY•|_™y¶Ð3ÔÅÎ9”ƒ‹t²›?H-m·€8Þ¶¿B´ãõ&K]wy”‘Õ’ÄW§ÆÖDµ~8¬Ÿœü&`Yx¨*ÚÇ3gÞÜX6Âð• PžAÕp¶ýˆ:ŒŒp)`®ÃØEÖ :ÈÖ“]Z¼´§ÎÇÓá¢ý“3³Ñ±T^‹f”"²;°h첇ŸÐÝn)þþÇ¿b²eêšòžºoÜ6³Ä¡}Óòk@’z´µýéæ¶„³#X ²ºÆ©‹²þy¦ÄgñdQ)öˆéq"çpò;Ù®S·6ODaަùoZ©–y ÐÚ*º£ÚÄÞÔ é—Ià8b'¢_ ìÁú[O/w“,­ôš¡–­–U¤Lh¿Ÿ¤íe‹x<¬ Ú‹U­{¹úѱVÉÅŠs°—ˆ 6+=X”9·…å{\êÏkmë³¢Q ì»ñÙÎÊ;ú2¨ìñXS÷æq BÅð~oã}p-c÷3 †Ô¶ z#=ºo¢²ã€¼Ï¨™µ9T-c‹×¼øƒWôwÍÞ6ϲ&Þ©2ßí}·úÍlÌ¢e ®á M¹÷˜Èqƒ È´9fS;Ôø8ý­õ#`˜´­Zlà5zÖ\uÈ´EA1ßuDr½1‚ߪ®·ƒçÀ‹«•»ª²äp×ÓnÄ‚5m‡T,¤žÇvMÐ ÈnO›2[ˤ¥ í¯ÅzYU:7ì!O]z”æÕÂŒÚíökú8š¦eóÜí²ŸË©vd[¹Ó¿Tþòê_þ~Ô¥µÅ#±Î®'¯wâAgã۠Ǧ¯ Î¨FËÔ$7PÕÐÑÙjPPo_¿gKœ®o\꼄t+5&¶lcÝÈ/öb5h`¦_í|Áad™Ãޤ©™ø8õ8>A€ºŸL½C­ ÎNvKÓ:H%ßåÿ£‘ˆR¹O½& Ù²OU!¿hÍRôg{}q¼){¬x š¾Þ±-HQšé4aŸG<#À¤Áœ³³IŒÍ>”>#°P+jOºtÕ)ÁàÙQÈ:¶´© t&©Ìõn5ƒ6¬R¾fÑ•̱õž—Úìw{OçÁß^„eEÞ+/§–/ P·§ˆm­·¨-c×ùÎàiöãKŽ)V½-ÜóÜ€­à€tÛ5;·z’*ì•Òò”èlÒí—p$w8\ H GWÆCH²¶ìÂkw` l¬ÎˆA¶6Ùnï@¸£'ˆµoËBðÞu€ ì¥x‘ì¾yÙÒEÈ»@Lgß•gÌ„´xo!Áè€ ´6Ù p{ƒCºÁö=e œÊç‚_¾*ÃD›³¢ùCº9õ¯íC€ ô0$þX"@†á€Ju.¥œ¼ù“\,æè <ˆÎ~bÛÑÈ *¤ÿKTýëÕƒŒ¨VïÛÉt,Q¢J~ÃéNbÀ“InÄÈuÙ©ä4ëÕÙ˦¿ÛA÷:¢í÷¾ Ûžm›ºEäÚЖF¬ÀÃT Ÿ•(á&!‚(«´ŠÏrk¶áœŠ÷ÝZ´ebº¨ÏGXêVèËæÑ- § ¥y¶;›¬í¬lcY Üí³U×€SžuÚ£ØÁFïÚR¾§c…ªÁt=ƒá=ÛVIKjLñR{àE¿QKˆxê%ä³øÖñpYJ64¥´<1¸­;5¥xÕ |.%æK*{ïÖá +ij؀E°#>wuêKÔÙn¨I"»ÚYàóU9/Ũ§y¤z–2°ÛÁõ[Ãf€®€E³®fäꛨ´Ô¤ k×íÁÞV$’i~ Ž &±ê" hê»ÕÉW†pA~`,:hÊå, ¸jXì+«iÏà:ÙÊ*/Ð2î ©x¸ÎpÀ`¤i”èv»l|[Ó×à|›Æ+‹åàHôì„%ÒI[¨QcæÆ.¶G²Ž¯Û!²µ¸È™ÖKrfu/Á¤ÃÐ/cÞí~óŒ­erŽWàN5tíÚá!.I:iºw o!‰êº£‰9:éÉw9°×¾œË$»X•5Úò?vòi¤Å)!>J«°u@NÕ±Û §Ì¶|ƒúêÃÖ=ZeV(i±a3Ÿ¯“ž¶ï;d΃ž;µU»Ãò9Š¢ÚL$ÖϺùôu /êxìûË ”B—÷;ž}`·…,Ö/ fœyoš<Ùã¶gJvmûW Ùý Ú‹Ûd Ïü“Ç„zqñGK:浕¡ÙnªŒ¨XÙìHÞ×% 0q´šõ£ë(ÄÄÏê¨ØÕˆÊo^þ=ÚL6÷½Õ—R5ì7p`§Äyz©E®#R‹X í¬RîÓ™4u¢ÂÖT³uÖ 08‹Äñv¥rÝÃU+žå ýo /­£ìv}X*W²ûËëÎþÐ@—rÁ¶6æt„˾¼1uî̼«µE¶¥/šíØ‹™×‹ö–«+Sn¨üáXyQžôu&àÖ»´¶ëJÊ•ð·+7åôÉ•¨Ñþ%U©¼’ïìF<"hl=¨ÇÊ’u‰šZ5v²7.ææ ´‹HH‚Þ‡§´I¿&` Ö Ð*N7ÏË/bÉͲ޽L™‰F‡Aó¯wè'È&—Ò‚F<;vˆýÔ(ŒÔ¯uy–]èŠ9 qj.6k?ö°Ts9QÖ«®I`WâÁé0=DNx_xŸ¨\5ð‚\YS›{‘œkƒdU»€mª#pQØ·Ù)ìIE úÄ.e¢]ÌI݈Fx ŒÅ?çÜ-éX1Ûç váêåW©ál×VG+[~ℎôô.݆mæSÀä|ˆ¼E×¢&îÖxÎ:u3¬íÖù¼Ô³*WX‰E⩉ÛÖLP‘G‰¬‡Ýô̬ cG˜¬@ œyÉÄ¡EŒêq÷u¥ðx›*!©Kâ’öªy –ôE¹é“·Ç¦_AJAÞäÕq\ xÚÉÚP§Î,©`y&V%°2®(E†ª¬ÇYRRO]•×C¡ uùΩ)ïKï«Ôwà‚Ì\§VO0’Àqm 饿½‡帶ÍÙEÐ šðÀºu?3É«H¦`à­‡÷ð윬xÉRY-O†Èªh§Aê;`wÓ'ò°d“$³€1BmW’E ÀeåŒúR“#Ú=ß„9Ê+ä×TÙL¬îû´0¨àä¸QÙ¥ÙKê™[©sŸª,± ¿Õë±È·“ä5è#øSûs²ýâ{ÐîÉŒÕQ­6áÜñ®óTJªp0-ªÈ<}nùð ”ÊÜo%®–L½)}žfÓ~N#ÎéyXž‡¬>†u=¶·éº‚{ì‡Ið´ÙQaG½–oHãߤ«žáÁAø×Œ´G7¬¢ª^¹‡ñ؃ [m9³ƒè !{˜‰µ3y¾˜ÈýÐã±:´8j^ĵ³è‚ê!€QÒìãž–ÔüÑmh Ú> •vxœ¹¬CˆŒG꯻‰=«â"3E’aU·Ó±g%2>Ûv§ Ø!{uMæib’&0‰uZo-š=e¨"SÕ¥í¼m'0ûiñgÃ"¥³Æ/×s§ç"­« Õ´vè ÿ܆aY©åçPtÏ5 „z®Û/ü¡ò¢ÔL~¸ï­¦áÁü–F%N¡-‘°ý^_s_—Âÿw.´úxÒÄ÷ì¤iP=mÑYñjºõ®/œugGœ-ý\泪ü±!T4«+Ò¯;a*9;7¿XöØþÿÂX\ !èU%'zêí ³# §“,ÙÙ‘à)ëð€Ð *˜ð†Òðn Îx²Ì:EŸž•NO÷ÇTœž‘›ŠQøc5šG•ÏÓîcV§Cúøw;ñ ‚˜v ;¿\ªô •P¹á¶MŸ¿€œ ~ß”geñõ&êóv”—oU®Jihé¨{Ør†žŽ°çQ_ølg=BÕHRs=ã b(÷œGö˜‘ÌéTù:ý…ò Ëcžõ‚ŽUB?w ‚¤ÅMXÓZ×:š*@`û‘ºXoܱ\ÿ¼C Œe5¢‰žKÅÇ.Gœ¯Óæý>ŽÚмA•ê“í»ÎGšhp…ÖÀu6õ߇è†rVÍö9¨G!GP,qh%õ­>©9Ð/þLÎ[qŒ¨Fz”2a‹m½Ý››]›&¥äƒ;c aAo®¦©õ@Cgòáóà¥X'aÍsK?ñxÀNêM¢*éîv…½×©.Öxâë˜ë0jt®C¼¥æo!%3«…ë Û\À¡x  YØAO!^”¾]œY7ùx oK,@¶ÔiÙâ Þ¬•ätøãM¡dvÇeUŸÂÓoBXT=Š®“í¤Š¼“®sö­òKD O÷È9°¶¡€®"·Í*SGy–î½ïÖ» A‡Yøê²úçUr¡zˆ$ i–Á‚G ì§‚ÑñjªŸ{†6›,É Gž3S¨5¨Ãzšù¼gÍÂ!\Š©]iKBâ Î.©>II³›èˆÁØÖêâjüÜ,éÉ`8(Èr¡]NPû~ž§“>ºâ#¼`Ö€ d«SVç9àkLÕþ¤@Üc#Ë­€e`/è»=m„²T?X…ΕH%@ã.Ѳô­=+ ,!À‡œ[¯ »w²tœn,*Þ¾lIãÊ×ög¿Æ~¨6µ"¼%AzPw=@ö^Rñ}*vÉ.S + "Ü¥;+œ`ÖäúRèhîñ½¦Ø l¬B7OñA½xm‚%eˆ¸Y·Q-<ýȧ FÏÕ«[›žâXm²|PÙÓŽ%† c:Ku«#€çœtsšgk‡]î¥ãecè` ƒ·%À¬¤Ú*vH)GÅM’ýe‡xˆŠ± “b¸­¿l.õ <µfú|è¾*Ëïì¿âilî ÎN ^zo÷*€¯ÇÑ;ï!/wíÈi–­÷tõ£Î˜ÍDÁf-µ¶‡ä{Ù½Tïb#]sV¤z©Íö*Â_†ô:\5Ú—C›@ê÷9&›è•PX8…†lÂë(½S@‘w 'J‹mÓ•Öø0oŒ\'Po¤÷Ø¢4 ®5Ú@Äc©’î-tj)–¥ÃÛWŸ ZhTñd °–ÝøÎKf%6^†…(>üôC¦jRü@ReÍê…!ýÙj¡{ä2Îc’Û %ùŒº'lUòœ¹Îˆe6#òÄÊ/—süÂ…=Ëᮚò¡¸¬Ä’Ë1|"Û’Tü5^W®¡UûmlïwçÜ9[¡X0Vód$,Z“‘ ¯¹µºZÞ5ÎLÆ&g-… œîö¨‰L®ù2ÏxÝÊ •Bš²ú¬¸ aÄ™nÇN퉰$UãÎx:½ù@ûà-ìnVmʃ6›‚«øàÒ;1o—¥™òEÕ¤ë–oNu¯ˆ¦pÒ½"pê—™vã£%·ZÙùRq`Tæþ”O;÷ è"“0´t RÊ{„j«dÙÇë-²tEÕ¡:ÈÓéç®å¼v ñiýJG¶µ ‡ú9#h\ü-ØM?¾ÍIy°©Þ ánvG=št[W=”˲[󙀂µ¦:ÎÏö ƒx^Žô™ºßxšR®¾¥ØRa)/ <ŠŒ ¨¥(ZI: wà4q߆ª¶%µ¹‹l)ûH÷±c[xè”v¾W{®à<`͔ț\Ö“x (øTOœãfLjP ÞJOB Éñ\µE{³Ú^>ØD¼VëJͰ¾m¹}–¸ûQ2LàZ6 @©O nàvÊ*ÉiO¡º¬Îõv›T–%7qÖCSç[±Ž \ϳhÕág­0+Ï~‰#ªØPN-µX¸·GädÀ÷pN®>¼t}*â 'e){þ%”ˆÕ¤CPÏzÏSê¥'éo¬9Mž7ön,MÊãm °îP}j§k}â õñlˆúf*ûo”í6Uü ¨oÖœÜÓ$ßž_½»E âºy× ÁÎÜ·¯Œä;ò¶¨^h'¡Š‡¸Žxv϶RË[¾#ƒ¿œ²þh- íòøìb±ÃQõå…Û—`c®}Å•WÏ~X¹§’ë÷T`säe'Àv;Ê÷®hë;Ñ« ÆÑiI˜Þx’Ácîd•£ÅÀmdÞ¬iõÓ܇*t ¬ºré-¼t@³,U¬nuÉ«»Ê B%ÉÝy€ Àz¶Mó&b³­ïÚUçÌ*+éìI‹zÿy€"KâÚVQdVW'þ¶§¡£h&À§;zŸªHµ6º¯ºÏ=ñLMµ©©Z­ÞìRX§Ϭöù ù´÷œ[’ZǶÕs–l˜®zÝi‰@b±ÜÙàv”æ¹ ®.3  ŽEV:wx°y±ªý«0"9xòÅæcèXÑ‘”Ó½žÁ2šÊ‘³yu'|œûÖ*œ<3‰öR–hƒ’o³¨™`û{«I‘@•Âlk"Ù¨j'9Èçé$êô|` `—b¡¼>)]KUÍAä9wo‹6 :.(„XHßÄ>ÅÉŸÀ<øâ5[Síêȯƒu…gÙöpªÌÒØ-ðêJÄ•­±îX‰a6Ø 0no_™=ø¶Âi’bXTi’¥²„Ï ßæ$ÿŠëD÷ZQŠó:’ÇâmB¿–ýÌÌBÑXÊwÎ:ʉõhkØ«_¼µ,x¿“€BÚ˲qq±²ÿéyß pf ¢˜µà8Ù8¶çO¥Õâ¹ûá0¤óX¼YñX¨P:â„]‰ TvÛ ãá[]ý´Êî÷>Ò&wD@ñØR¿QÃ!ÀòtÙbh2ª¸ª»œâ׋mŠíœ±=ƒ uµSWŸä™¶¸^¤(3!¸¬ ©.»òJ°SGÙØgFx?+6Â_Ê–:Tì4V ų ô‰—Ò’t¢bÐÁÓ±ñÚ^kwÝáºW¿nÍ&X‚K'@èê0ót‡ô*×7J¢ÿúdçj·7!˜H>JCG«ïXÙB“•icû»}3`‡7±Ü­ßFeFw’R>êMê­I¤¿®ôØ‹Œa&•ÁÈQM®Ä¦áÁ‹“¹¸Ç‰fåÔZ”å_w—aî5Jÿà ÷©žÖI¡e3ªrBãöá%c“5æ!±1ççð<÷i2Y-<6—(!ü€8·'!Âfçl³µl¸\GVûXA"=ÄÊXI=DˆzG)ü–3¿W5·È€ÀÈ^”³a_}®¨hìëª5K®êŠ' ­âˆŒ‚>–y¸¡£:E÷écz›ÕYu¢æM;ÉQÂ)ÏRXµkAMóœ‹H_°Š]IPlK‘b6®]­ãÜw¯zî7ûè¾§W@¥`Ã-°O«µC9NRèzŒKüÃ6¥ö¦²åyŸW‘Âe/Iì¬$V¢ë»Y¾v:’¥ñÚ< Ï-؆g– HƒËµ!Ô¹e £)hæ)AR‡âõ ´•2YýV.‹Uõ€ú³ÏÁ.*þ4¢¾Dä½t÷Ç.hy¿l/Tw±55ƒêUf§ §úd¶H&ý}•Lâ7°Ÿ:Æd¼ÂŸ¾Ó\ŤЏûˆ•û)XSYz%Xxì€å’­Â3Êzw`PåÒØ› Ô.•qÉÏÊJÛæä¹¤|æ-уãì±Ü„ô<‚nt6˜ëm*„ãVݸߓUáh³ ÉMí=•œÄåzÚÕØï°§dŽÛöè¤óåè¥^Ï ·Ù)ºÌï³·VÊòÌP={Á²ûóP¡ðÍÊy©fÿxÜÊâ?ƒ‡u±¼IÆí²™4È˲“¶Uñwô :f¦@ÅÎ4ÓòAǨ­¬RÇ~€šzîdG¬ºõÎ ÛÑAzŸ ã’n  ð¥hž-@IÁc(Ïu€ÒÉ~JuølÄR® „µyd¼•¤…}ìôÕ÷üõ@…K¼¡îëѸź­FkNqdY·Á/ ð®ZuÕqî>ÖiBñ[QSÀäÐ&]b.mõê¡Ù+¯4Ù;¢.o<µ”ÔË ·]š²3Îæ–5é#Ö¶ ‚º&]d&X#Œ#ó™<2}•ÀXÚ9·¯æ·ngrT t¶‚õÓøìBÒÍà¹Mï 2³ Æ›'fK­ù÷|òä›ëƒ$È_ Mp Ä…õ|8¦U•®{XÌ&%}$:Y ¯¿­èk°ßØ —öºÚ÷êÚƒðê¢?‡’Λ‚’ö*.:BŠ毚½·³B¼ŸùJ`!KßW–rQÝþ|×)‹P3á¢íFñümêYáimáòvÝ<üÉMU>0Õ©¨ç¶&*6¶Þå°ƒÌ|YˆñŒTìv‚×íÕÄÑù3{ˆž±{l-ä]¯E½(܇±+ás:/ûjªÃóàÉëGøXlÕt÷±ÏÌcȥÀæË€65„ËA.#™¾ùQÅÞá@°LËöú÷§ôƒ íŒá¹«»Õö}C5Ë“ÜJD§Ûš ç2I÷±e=Ÿ+ÈœÓÆ4î²:ýfë§ÓžîfM$‹Tm´r°† |¹µóÎÿZÕ)Çúá-Þ)+ë~¼4\(ªŸÚA”Íz n;ëupÖªË"Y:]äÉó|þ>ñ"ê¹3ˆÂ³u_‰ ªãÖ&œË©š°Ä#Ô¤#eˆþÑXl.»ºctïÉ{¸‚ ~‘´Š‚qìÀ¤Ž·"†„ð°]œ5ì>«¢"Ú Dp݃‚c ‡I÷V~ÔȦk2'µ!×7o 4wÆÎƒ)S)øñÄ¿< Drôο )÷Ô©ËTÈ‹‘—£!ÖJ‰–—Eêö8AlHQ{Òª,½u—/Ö™g‘l—kªx‘l âYÙ>½ÖvìR`«×ëØ êJj ¨éx´ØÆ•Wœag¾=  ‰¾“ôìVB¿j“J¸iD¢'™®9Jܤ#žZ_,p07Ô¿0ôyndèn,ž0êÚ!&ÚÎb¥Î¢vÝsø XôµLÁv!Éê÷‚^Ó.µDs³>‰¼ÀP+5a½> —¬XèuêqvgÚŸ a¸”#>Ž˜ÆVRäúŒ;ptÍ,½ìõ _R¾P¶aòsEY9r”xõMŸfhÈ1×v/µ“NIRH:”y šÕ1ÂÚigÉMê·vfø"ƒóÞ±ÌÁî“•5 ÁKCñϽÊȾ,—SÇU¨ÁÉùA â/²Œ|%y!å¨8?ë © ËJ¥V€š¨Ú'¹£5îluTd¨§ì¤bèî…bÓ¯2òs° (Çuxžö†¨bÞ”‡‡Mö=Y¦Ÿœæ·óPP  Ú‚ Aòä~kw€E#kµŠ¨ ¿iJAÎÁ’L6Ã*Ðúÿ‡½íÑ$É®ôÐïþ+B v§™»Û­!ÀÝÍì€ö’’>$«²ÙyXY“•Õ5øßõ<ŪjŠ”¨‘Î4gÈ™fGdÄ~1Û{mÛk¯µDAmz“>dÓzvd Ëe‹5³ ='t¢n}ô@Ís …’Þ%ö÷éÜ,+݉)SÅJõáÙ[†-h±—ç. Ìß–‡pwJ_­H²"m9x¿Dï\QìÓ”R” ¼<Ý{.Y+=é?º›Pô€³vjû]ÄÊSÕ¶*È-a΃N¢#‰°JÖ¡Ù"Í”rwÛ\Vrm¸yµXÕ‰¯Aa{°,ƒŽ›nè§œµ)>½SA÷›žÓÜ|õµ< «GÙÛã¼äèÔ£hdhÅa ÐÓÁè°:¹ R~£ð±B» ‡Ò4%ÐÝ,€”ƒÕ6];õF WE pân‹Ï¬©ÜynÜ‹±“71P§v¸£÷¿çi;¬ï# sàt=»¤iP™s 8cÆ×¢`ŽÊN Ž òÀT~†”ž[k¡¾ÜE+x,Ç¢‹h2g`=´ÖZ¬ª§µ]¿¤÷Ï)&UX†bs:·Ù#OØ4ý¼õ[rME¢(µÆšÓí,»8Ǫ»£F©yi™?z_v©÷Ö:¦Â¬XA]þAz/Zß”g£ï˜S_”O¹jÖJ ªq'“;Ò´@1;ênsQí±Ak5gÜ”…b¹²"‰XUI•±%·ßIxz4ðùÛì…«¬‹vgþu»‘– ÄPjæ¶óQ;–º¶lTWÏpö–äù¨ºuË*R“„Ô˲²áªW VnD\Ö×€ >¥"Ý¢r²4§ôy :X’E9šŠPó<Ï=g£¼ xÿ—Ì•ûÙ7ö[W^ŠKÉyîÒËÊlN«S)GéÞÔ&$ß§SöúÔ€®´ÕM{_fç‡Q “`ùKžÏ‘ßÁêä }Lº<¯ž@1!»ŒÀ‰ËªkÌB†Ð´çJEé\ÛÅM²w(Üx~´J«Mí .YõPÖ^ÀäïrNøYàQ?]:pwqêÿÞuìj¼$µˆÁ“A¼ZQ5¶%–A±‘;Ú¡&ݽzð}XB@òر;zUì—cžîMÝ)"±m‰Â~øãÒ ã#Aˆ«`KéBÀoƒÛ¥g0µ§³–û2x2iž–°ÎTRrhê&‘V}pêŸV5û#ìn#VÊM–ÞÞYw5i"9.öBTNÿ°”%ƒç ’±,Ïžô—¸—÷±`1®‡T1p”N‘ŽöDÏü*(kÈŒÖl‰µ“Ù´îœ$´oÿ>åíØÀúUÂ7¥ îY/§¬bWi°´#ˆV«)ÈdÖc#Çê‚“¤$¹:ì€y”µñ*F£rHQâ•ÕèÜHâ m(1/õ3n‘ˆqT÷¾vMpôìÞ¥eRZê·8zWZàf‡Aa,:¿úlG>—ˆ),âC°pmÆ\SÒkÄ$ƺ(Ï­î ˆ xiå1Or8^•¦#·M+©5ϸ2‡ÜxÏFn‚&ßÓ»öX. ÙÚ×A®,Í4'ÖØ åŒäÇ)¥Ü)uœÇ²|ÙMËÀ]®¿5õ±t>¶¬´•(ðÅŒ‹Ë©´åýì4"AûÒ’]?+»~‘âàt¸ Ù(ý7yÒ*»2´=10 `@*XÍhX±…eªßÕb—¨kwªEÄNpj£ž$ò9ÍÌ ɨò¬&w=O÷¢ºWŽ=³Ó»ì)»ÿÔAP©k «m+ªØv’îi%oãÌÆÔIH†³ÚBïaÈôUëÙŠ$žTVÃM-&nËÏÎ²Š™²o?”„£ -ª’²y}N…Gà2¥Àš„ØülT‰Ý†=ô˜«B”é9ÈáÒ7FŸà2(Vf¶ œm¨Ž#yÈa.œ ¨›§Ó1„"Zˆ uÉÔq£>ÑÃ{ž‡›Óc‚áNÐ-,Ú°­îÇnÚãØáñ,Õ à+ȧbôXà {ä‚Ò¡Ù‘u€´¸ñÄåú;ÈáošÂ%Y$';v¥7æ¹ÔvlÛÚú o‘„öfïM;„¾ÛzvQÕéYËBO¼á á²Ð$Q„ 89ø³öB/~üQ-èHe[ \‘iJEµW7Mž+¥,ÉT’\Èב»Þ©ÃaµÆö¶5Ï6™yê‰9ÃVb(]¿ˆf¯UU¶]J ¨{¨´5÷`E€dOFÌ•«Q¬uƒ¥ö›’«±/v–~TåFþà¡wË%}Ài;.µ®=á&Õ¦¥©çuoŽnS( ñÀC¬&’x-„Yþf?KÉÙ‹tغ mÒOÔÜœaWÍÔ:{ïÉJÅ]Oê]ÅNKÐq¥f­«-,w…õäÁf=K$Ýn¤ÉGsÒ±Nç§²¨WéTérE:T«ÎYBìZv7‰7ÉâPãˆ-k]¾=£n}¼–Ã¥.ëP;ÐéY9I€)5ù(¨dÜs<¢ò¥ß ÐÊì"#~—Î4«J—¶C=Cá©Gy¤L®öK;•0¸=k"÷œ6ÈUEzQÙ®:|6°ïÅ®åÙU'g$ÝJ¥ܪ {[•¢Pô½ªCǬ3v=…©Q¦³]ú‚D‘%è(!­.þÔrR‹6…ÀÜìÐ#mª6ˆ–Y™üè·iÌKð‰wë“ꉃ“Þ²üÁ̓P+1µêß.ë[;y*¶S˜t¨iljÜñ™úãg¹ÊìKªÜ+ë”Í›'£àxÍ"ò­üð‡£´Ãò^ëx™ªs=·´KŠ¥OX«-lR:K`ûQï®ã)ãH³#Ìo••.P`v4„˼—¹xBÇš=kÙÝqî‡Üž˜4î¥Û­±ªDœ:òSÄ—j¿‹Ü6 z™-©óhO¢æÍfóåð<·àÀšÎ&~°šØs×¥‘1ð&ØœöP•Ûc+WoîYˆ£¢Žö „&AE,;ú¾öO`øä ŸÊg¤up4e™c>v$Tx>æTÎ%•çT‰ÚÐ<ÆŒŽÉRE)¡omæüÅ~µS.KUo†’'ÆeÉv ƒJ±O5§T‰ä1™Ml¦å¢µ¨sÌ Ö[kgÇ5@(-sƒ6 ºÞUóªD ¶2¬¡£¼Å¼v¨ l© xüsQ#Ê!€ÈJùO %E’~®YÚ#$< <<¾Ó _¹ÿ®—ƒl}#^—Ü”¬ÏÉ¥ÀÝœ$m+iµ¦~ªÇ|71§9¡--WUkÌÒdE¬Â¡d8ôäóy=¼ñíêžZ×o=„—0Û<³ØúáH!9¸4ÕÈÌ^—EoÙV¥ˆúö9²F¨š–Eå>ƒöá‰Ñnár¾Kxõñ³7 Kf*Ùz× a׿ÃjU¶XÆ F iå_릂dàZ•íä9OÒéaÏõí©Ê8´Ö8åÜ“Jž æ¥l[Üx ˆ)…²„_£§,÷†P=‰â©£ª„ IAÝtŒ“HÌÚ™jÎ{È:tÐaóP=*ª5x'¦ªe\UÅ :¸AyG9$Ä»|—=ïT,àp>XÞŽ:î’dY÷-Ç&´ã8” á–¹®;e짲ܜY:6…S£âŠT\ŸéñÑ8[ª€]©«äavoÚ;b.'û‘é1ÕÕ*oÝjº$©3vЛÒ‡Þ-òc@w–q·Ã/¨¹&ÝØŒ˜[;”÷Ê úŸ)wâZW±ãÖÇ' IãeG6¬”Ö=I¦{H©¯¬î¡f ñèšÖì<5Ü®(©Õ-@žæ×¡oV5j,ÂÕ^•eHŒÍ…*ÀZdÀŸ¤e‹…áÉÕéĘžC´ð87F Ê—Îë›BøY†È×j¨(I§Â ¡ºšç±FÂÝ’–pàTŠèSÝV®Œ¨¤Roç7ø†g°Šñ*%yueàϯØTþ.ôæyny–>ÿ³´\çÚz}4>Žød—LçжrzEMàäŒU‹Ø¾ƒó÷2€oüq'®T¶3&~‡ƒWd-N¢vØe!™îýF@+§ã‰v.\,€Î¶;#®Æþ:&ª{ð ÷$6J“¹ §ˆ7jqó ×çÉÕñ…é"eOƒûíBÝ ‘ÃP2ÄCÄJF8´ZïÔÎÉÑEµ gl(ÂH—VæTË\²æWÚÒ²ù!FÛ@'e\ªÔž0jWÚt8¦­Ã½sn r¹2Ž*K"yÜ\Þ}Î㌬?ÍàgI<( Ž[¥^þtÐæ‡*›»*²…§É—MÞÌá3b$e«åì»GT4àѧv¹n̤¿ƒÂ§ŠF/ÛtõêØ”d‘ÔÎÍžŠµTWw¼½; ç)&º»‹ØÞS\z‚¤h©z 9lºh¹›„€fæÉa÷Àˆ¼r„µm–©EB©RYïl×°H ž¼6ª±¤½É±UÇ[Á@¼j¹ä§"˜Qvéã+M=~;< eÞTTÛ&>=V­‡³; _•Ô³÷´üᣙçùžšIÁ /ÛVÖÎþSÞß¹¶tÈ™ìšG’šúoI)šµZòWêÛã¸áQdOˆmÀ6ïH°:„‰<]îÃñE(sbŸ<ÛÅÛ ¬™ev5Õ‰¡xÚP3ÙwÌŽš,ŒD…›;ŸrÛd^ÓÝC…á£2²2¤z<1 ¾ÈƪÖ*«¼#¦2¶âÊ{ìMsÊãi¶lN`Zp¨Žíʤ©~±Œˆ 1xq¦ ¼s’Ç%MÅÄG^=£u¨˜ªºé™FÕ¦š˜ñ$¢÷™«ý™ÄJ²Î Ë'„²Ü­õ.Ùn¡“²ÑާP§*îÅß/˨C.Ëp\W ҢgF`óCéoêÑ]t¡P ­söBÕX \uêã4WcAdA¯Cí¥ª©X ØQîW¶W ø½efôÈg[\1þçVº[g–W¶ì=¨ tc!8m帚ŠÅ€¯[…nûpÀï6Bvq s6s·C]SñVÀrðD@¶‡ª‡c4QIóa¿Xád0ÅP€‘p@}D QÊ©µ­µ‘½Ñ|켓e=·—ÁŸÈÚzSDùÝéÚK¢«ú°àé(Ï]5GZú¡þ0•ʾÌ ¦Ë† F4 žìW2ØôXXኪ_ ètžª²²ùNæf¹‡ëºžéøó}Ý„*é²·3’úµ³Ãˆ‰NÈëäôÎr²g_ßÕÜÊŠ(<ËrzüÂhθ8ž9¦ÃÑÖ“ 46°cîÊüªPaµç$<ÿiõ;• +Líi:K[ù§¥Êš¦PÙø3Ôø»ýuy$B½u£Sqê,Ýv_ÁZ¤=G ²{óÔÒÞXnáHSÖ„úͧøÓD¥¥ *yšYÕ­n©j;¯‚ÈÙÁADé¹ÜÜeÊv NØ6…xÔóœ¢åJœ_T=gM²>Ϭ@ÂAÑ}ÀÛy².{‘l¦‡dH¨£¥Æ"!T¯'×$ú«Ž:*œ §‹ä+0ì•ô.Ì;xh­.ˆ¼ôŒ Fúü5—3›„ðq;Þ®µƒeœ Ç;ƒÒîåëE§ÎWyZ™í*IIÎ9LuéðJêJ‘©VTp¼†ØmC ŽNW4¥Oå‘2«º¦ÒjÙ('sI–pSVÖ¶ÓÁ ÿxPôY¬Ül#âÝUš¹I ¶ny‘§Zl’ëû½é @âù)†’PJv%à(Jxä~Y‰æ¡¼Iî¥2)'WDnÙ[4(°Ï)|3Ó±ñx.y‰ÑÉ M¾&Û‹G ðužÇ0°÷­†¨,¬ ð¡Üåƒ% #ª8dV¥æ\‰@n‹“Aöäí–ê?¦md‰w¶=!Åp¨ÅFØzœ¶Öq¨þ¡‘Îm”ºY–E¾b#@( ëL°v¬Â» )J罹uŽL9´ ”âsª:uoÅÓÐ!C·»s³•,Ñë~.nð©®¼v5ËlA¿¶Xnçjx¬‡¶•[ߥޱ9øÁvP¼k¶Ò¢šO$Ï“’”Í_äᩇ¶ŸÉãi´¥T©V<Ï^²î`…]K« ^¾µœ‹Â¼ÈvŠK2ZA’ €¡ByJÜ¢2ª—ÓBD]õWøuŒ©@i׆¡tûÌ"7ö=—ÛĪòk³ÕÉv8nþú×ï>|þfóúúûOï¾àÁÿþÍ?½ßøðñ·þðý—¿|ÿáË_z#_~ûõ›¿ýðþ?}ûîÏûw?Ä·¶¾÷÷ï>¿Ñϰ¿¼ûOË7þâo~ÿõ»õÑosÿø‡¯?~ýjgÏb|ÇÿÙþðÍÛß¼{ùüéÛwÿø‡ÿÃµÅø²L¶ÿÎ%»ýðéñÕÎÞ¯YŸÞÿîå ¬ÀøüßïÿÛÿüG®ÝëÇ×[þþf¿ÿö}üÝËâùòÓ=­ËË ™êåÿøþêíûï.àG¿úç~ùñÅÏòBu ÿîbóÝûÿ“ïvÇŸ¾üñ‡ýû,Ûw/òÃ*ÿŸB _ðñß¼ÖׯüKKÜOù?^åÿü’æ·_}µ~àO¾û‰ÿͼýõû¯~ÿݰn¿ýÌøÅGv‡þ£ÿñÝëÎýÅ»/ßûëþ¯þù-{áúð÷_}ÿ,ß3ßÿîÝ—õþó¿z],¯ßÿ[7ÚWï?¼û«ß¼7¶¼üTÓú?þ7v×ÿ@üø†ùúOo¿a«}^oѯ߱™þøƇ/>~é®ÛS~yûéÓÛßo¼y¾J,¶ç—ï~·ÖôË›Ÿ}øø™_Ñþ_~ùñÓò†?ÓË›_ýþë_½ûÁµ>ç—7÷_ÖÙ÷_•ðòfþðÿö‹ï¿ªüÛ_ýðÕñòæ¯øê|yó7?|ÅýÛï¿j|ÊÛ¾ª/oþÚË›/~0²gC¼y÷£/ùÔ_ýèK>öý¾äsÿáG_òÁ_ýð%Ký͇}É'üÑ—|Ô7?ú’Gòù‡/w~÷wëË?z_|ûé/kí ^Ô?}½Âá»w¿{÷ÅædOž™bÁ3kÅ:ßõª¢ê-‰‡*C–ªÚ2ò¨‡Æµ¨G´n%5¡nˆ®Å“º œOg®WAÁ-LwÚ¦=D»ÏÍs°™mÿŸKç&òe2vŠ1϶”(ãÃÎ65¨æqÓqÔt[±ÑÍvÕÓ,ÊÞV1S Øa Sªâ­ÕœÓ˜:æž—Mí¢‘šJ×Û-í[±[ µ½j”=Ôži/JÛëu›V±î¥Í¡üï\§XskÎ8x¡¶ÿPï­Ù€Ÿ*>…’¤v¥¸OM:ê]¹€Bµ0’ÞqÎ|ŽO•8´•<¥ _z©†ë±<¨´î™-aE´ÀòÜíÖh"8¿D]~jåpgiHT¸'EÒ©r©ÓžcR «kÒTÕ¢¬Éú}±¼ë:þÛ,žÝ+Lú¿”@ÕKl¼j½G>»²„á=Õ[ dÓ&ùµ;,YC15}Ôe¿R‘ÞyÍO‡¶neæ$ÿÊ÷ñ²{tQ¬„®c³?«Z¯g»—¶«ÇXα-«ËÕNWèYñK¦›E™SGÄ-)å ÝÅKm`®ÝþA–8¼QVAÓîK•§ÛŠ’R•k¼=–ÜtûUXÍ–Åv#öi 6pwÔrG3©4£Ú¯V,£}º97ù¾yO¬’]«'ïm$!,a®f&ÅãÍ"U.¼èñaŸ òz·Òè:NÊ|ÉÞûý$¥]&Õp¸XùS{?tÚY9³nòÒóv)YŽo=t•ÛÚí=žª‡”¬J_µó·T‰±žû½&¾lvò!M\ÝéîÈ3p†‡=ÓÕ™F]Õ°nRf¥£ðg­[jŽ»íåÖóÝÇñÏKî‘®ŠÊµYFJºÌöcÈuQh/¼nm•Yŵժ…ÉÈϳϭË-JÍÅ]µæZ5ô ËãU>È\O.J4y:{l·¾DÚ)SÐIiårÏÀ“ÐÃFÇ ÂG©cío.þIðƒé¤ Lù…ϬoŸ'{ûVššç£ êè‰XEã<Ôí"÷›ÒÙá–[Ïɤ3âÙ6gæoÙ3DH‡>%äܧDz·´bS]>Ù軦’ѱB¥w³¼e*é®TGå––-áƒX§ŠãÜg·Ë;ÖÔ{êòæ(e›Õw¥Àl,ÏG#ÞËîP²&ýôHbï2´Ô; IäLú“õ³MÛ1vÞ[^j+Ä–¤Ú.ß'¢\éQ<ƒ¯T³_~WJ=îüwÖ+HÓÑ{“4ä(CðrDbH>Ë:Ô¦Æ'ðë!x)‘ê¶ÞDn9¯¦î OÜŠ ºÒ— ¡}ÑHhÓ bDöÝT<•§q±sRëê‡\{ÂYàÑ´~§çˆ¼=Õ+pHí‰#Ç|k3¦¬¬l²ÓS4î¡(¡¼è½£•AXþ-—³|mÃÛÓÉGc¥~(pòÁÏâ¶êÌx¦tk2jéÛmq®{(¥ØéJ™·Ú¦37z&«ÿ( Uä!«Å¥Y‰y5d‡G ©ìyx‘”AˆÐª´¦v\»žÙÉ0¢ª)*"Ú’T¶_+FRÇÁ›\‡+HŸÙƒ)’a^„j_ëÀíȽ¶n{(cÙ×pûS.>Hמ'¬€÷b«3Aá©Ì„ß+º?ÔK—C¬x$k-ðˆøø@²‹Ýhî±½…¸±NŠ'…ɹAÇÁ•âêÝ—,®œ¯øPI’Å¡¢ýRm"¨¥KP5$Gîî4wYÜc”ބAíÜp®‰3>Y¬ëâA™ÎE I¥L† ê‘çö<²Ž®‰NºEÒšV»ù\vÖ‡ú}²Ù%Nt×Kί³6nvëžÜuÛ’=èÔë4í±ZÜ£ça½Óº“¹MZpi‡ÓšltÂhñ ¯9ßs7¥Ž2¿íº,T'Y«º“½®ñÜË<9h]ÄK9UŒ:žÍÁÓ8T &'èåq,N—é{Ã礛pI¼æ:]ÝãGÁöº9¥i¯~5K´²œÚúÜ„µ×5…u:ÆÃûÝ%)UʶB% \oŽ5ò ãvìLDzWeÀIê@°¸šÒ>ºGëïÁ. õ\‡›}Æ:JÐ_°­¡+½YtdSÍáÒh!ÍeŠ,Àô5í*’Þ‹š—MJÇòžîc)Ÿ¤+±³C&ðfõï† ó.K–Å Yj)ÿu¾q ·/EÆÞ“Ùj½#Ù-:z¤èôch—=ë³+vÞ€ó½± s6×¢òª@/í -Ûù±sP”‡V-Ú¹‘té(rHsþ9‚‘v¥ìù#×}i„¨]$§€aXÏ\ãvy0½ÆMøjòÚä\7ÃCã!’SÙÀ;Eúó¡öýRÕ·<É5;¥/=šÕ„Òãî[k5ÁÔ}¹Ð›ÿYPo]?QVl,jdnš7·_êÑê³_E¹ ~™·ª×š@=\ºÖ%¿¬ªc¾ÔQîª`*¯\$ •Üb‹~ê–YÎ’à 4<6»bm@ÚìÚ=;›I;š‹ÿÊ&%ñ“Þ›·KçmtmVÂlª«hb±o¬qž]–·Gﬡàp•Ó"l¦vhËN-Ùʵ‡@¨‹«+XÓBåa7Z»<ª2¨yílcV;hÙñcº²¬™…ˆ…òN°°;)Âyo]#E»3F¬nVU?DÔØ<Î\ªq(NÍ6í}…9Ù†;©Mm  ?™ ’‚•Lůì@³õЭ2¤°$848 Íóu5­&©,QÒeÙ—ÑhWgc@cʧVÖ€x‰Ð¬ü®z,5Ÿ9l%,ƒç»5µZv'÷ '&oN.’‹Ó@ìÄ’géô°P[ÛlbF¡Æa/¶'ù4„¸õáàJ.ýII+@¼¢ök#‡—M¥™_P1·‚2üv¶˜}AÕ¯)í®s ÂÄŠOÉ7Óí£<<…[þ&ô, ”%:|Jƒí:{6'ÎnÝôýÑb$«—~¨¯×î¸ØBÕ .•w§²Aê&ªT$A›*|™fÕŠÆ>…,Z´èL@ã4ýPݼIÙ%@H¾•KS’R´q ¢¨ëaw7©Í@ÕÁ‡eÁû®{ì©Xì#iÿ~w<ŸjÀä3Ùi>ƒä+…¶«rd!ʸçiú)éÏc¡(ãHÍà´2xjüïK0`–%ÀG¯PGä5©kÚ‹Ù¤fVgv܆teË$yš¼÷ÉÓ*{ë(}ê?/Jv‘Kt˜šÕ+eJ-&¥ƒ(8’NRš•ëj¶L[yy™"PqylI€›ÚR¯Ç“?þb(0…Å<œg=œ aƒLž;|ù…ÙVüšpþ88žœ±SŒŠ ;xÌ”æÌæT`ÁÉTá€g—¶ßä|©eyµn§ÕäßùÖñÑùJŠ+Ð:9J)ŸËñ‚KØHuÎïÞê0“¯I«L­ÖÓt"¸‘¢â8 ïG7!µý]‹Ú°•{iý^Ï5”J—#ò†’¨ŽÕ؆C£ln{ã¹5áx^2u‰ÊTiG"Ú脌‰ Z,îÚx_·¯`‡¹Hâ=õ\8 ž±®±2Ò ïHò壥~~‡S)¬™mØ{×DÕ6´‡ûº¢E]„âŸp€ÃU‹öÉÑ "¡ö¯eSAâ’¨9  ¢ADv@A?cmö\~ñ‘Pó"’RêE ùå ô8gj´qþýÑ›ËHtþ,uŸÚ÷‘·¢!¶gMÅÅë(Ís)—‘ÿ´ÂÕÇo¼j]4–\‡û¸Ä¡µ–¶pÀ»m7§’ó¾ÒE®kÌ{ ûÕªå­@HÕbHÖ®lžkNXŠ’â#a}_ çé\¶Ÿ&6mF+»Údsùôj‰I†Wv¨(G¦·õà¶kÙá„Ncï‘v©ubˆëëéï&^ŠCb'Ûù’ê d‡t÷Ç¡;ÙÍAÑÃÐzSžÅÁI—¦…kÐá›8«Ð)Uÿ¹Áe7/\žG75À/–“užŠŽçâøTõÓ˽ŠYg³åÄ6ýžrܵR’¿ìrYXö„G³âÖ£×]_Bgd Xš>¡7‘íð¸4ª?G¡½™n™¤woÖ)Ôp*…²Á-Ïs¦Þ CΆ«½<–$;¹ÂÊ™ð٠݈µ؃Þ}r§<}a‰<’r„µ;RÛ•.³¨aïgöÛ%aü‘X:ëÁ£e`"ïuvm/àшZAaʯ)ÂæIÌu\ªÇ(/I5ëšµ0±^‰ÿ>/]:ÏF©â‚å˜æ±Q™kiWmÇ(‡<«¡ªºyºÔÃnË1Y‘…±¦rÔÀ‰¼Ø^•âdWZ“ÜÏrÝW„ëƒyj4,œè¼tå—{£‡È üê-C’e}¸[¸*à·ÇcõIYRJ¡ÊÞ=¯§ÛÜ@Å¢0µ—Ú=«b®§ Ò“J©ùKnç¢2·’ÿj8ô¸z | iŸ¶TŒ§°MP]ND<V*~u¨çº#Âäœú8 QŠuëEo$žOŸ?/< S"Rºy¦Z©i ,ÊEj®àdLð4åt:v#ߦ½=ÖÜY¿åâÊ5I r$M ºYh‚Cœ PˆFA݆CÅžù€«Îàªãqj¸¸ýԮѶ´;JP=6UåÿYëL÷ËÒÖ™¨ /ÖõeÎV/êuÊ™ªPÕ!*-Ü€›<—›ßÍ—~\ :éÕD<µZùÕËX¢¤^y÷R‚Á9¹¯Cäš7+òçõÄh6E«M¡’¥÷x)Ãè à ¬Ö›ÅÁçhîì9@ÔL¸¶ô‰r;1-ÚÜœÚkƒB 4;A²‰1§B U~>“eœòd‹ëQÅ~wš2G`©±'±«LGrzlä#«M¡uÆÕP€¡8`Ò”Tiú¬{S‰…üõ)yÉ.“]²)Q†Šð¶ F ÎrP7¡ÌØï%ýÙ=Vd[OÞ /}XœÎï„Ã)Eù¤Ú…ê„øs¬Ê \¢Ô¤ö”êDÛc©®ÖÕ8eÜi?¡rÏí~tíS"°TH°Ëßæœ>¶¹µ¬JÎ…Diíɧvñö%ôæ¦À”Ï­ È*?ÒF$šËcgvG Ær7À'TR8\Vjg´¾«V"½ýtQ ¾]•å+ÑSÝt”?TXI¸(õ¹ºW øª¯ŸOÖà¼Ä{ÝùyM¬nçL«“ÍCõSÕe.´Îª$·ª—b¸d~š[>³ÝLÊTuaTÅÐÐ+;#˜7&užÇFB#è´ˆ…ÖŸ:ïNsEÑÓ±[ö,Óƒ!›Öì: c\Çâ+ÇÍÎץЍºÒú‰êu)‹Ñ.-ÉCPŒ‘×YI ÚŽŒ¥\¯Gš×X‰ÊÃlElWWŠÀ _8¬QÈbköS£ ®bƒ|)ÁêOÐ>ýo6;sc…<ª5m®TÀ/«Ùqö¥ýVÈ8 ®?‰¿¥X[l¼úÃŒ³±…§‡cUkz>¬ï‰a^ymÍ¢ð:MíÖ»û•ȶ]¹Ñ¬-Ž[.YÕü#xÖ¢Ží:óHS•|‰°Î_êÍDLkǡ١¤ò‹;ëdQV@s&ƒX¢Šga£[+8e/²¼Æ&µ>©nÿ\§ö%ºƒÀª*4ð3*ÜÍIÎGˆž§–I‘%[»Ê +ý %ø´LôˆÅ RÍýK‹ùGîaÃ^ö“}_Š‘©šNb)¥«“耟²×Mjlzp¥‹$+ŠèŒ×­¾³ Š(çq·…K"cw—UQy×*ï²£UäoRm’f#‘ –ë:©/‘È©ÜÂå9¢î «cmÄÜ-¸`¿u¹Dgç6TÒHš ƒYüvpöÛR‚³`QoqéË—ó{¬g›M¢E]N‘³Pœ’¸;9s8~o©¬W´¢9•ž¥ûdR” WhuhÌþV·5@ì¨6¥¤/ÍxY­›6ì^õ®¥Òƒ«mŠwÚJwóq˜*9Xðèø]P>ÆF=Khk*j.l ¸)íÕÅx*wí± ñ ¬¨ð×\ÚL†•5ê B‰`g7XƃjËÛÐQ={Ç®‡ó°/eQ_ÔñWß rukb°~åƒO{%jŽU=à™€ïÇQð*‡A; ONXùN/Ú£ä>ˆ‚ÚÿYóκ`U™(œ[YªuR«l¯9x½vù' ÙF k§fœ»GÓvÙØ‡ <?;I·ÍÐÉ¿\÷îxýn•’=N +Ÿ:äʉŽË)õÌRR)5øZ/ÂìÑ}Jc©>EèÌcšÿ©ö³—[!sgõZf5O‘êçû»Z«å¶pºHØÚ2&v5\â.EǤåfmã Æ²b 6ŽÆkéD×éœ^GÚLËbÁìr8Xýu¨uZô‡à¸ó$ÉEm%u¯·® Ž„Š[eü®üaÿœÇ¢JFP¨ÿfÀö˜¸¤„A½]ú³ñŽ÷¤°r!‘ñÀÉ|ކNà[iþC…i¦aQš²Ú³®¶c߀‰À½–=²ëË•Hùt࢚>ކÞ—”£½kH§…ñ¥*€qJ¬“Œã4…ªä®mM‹W’„“•W$™ƒ_O]‡L8KʕլÓ¹±…ض°œà}‚y—¹©Ä®9¬ é¬ \¾†–jN®¶í´gFjs¢”4å$¡,ñÜ£enUõ]ý·~7{Üî‰=J÷a’Á:Ùfe%b±†$éyÇKQÛðì²€]ju/ñT=ù\R¥ª—æÍYG•RG Tò »OÙJžGýK‚àÞÎ]uÛ-D9µÝs"&ö’í²Z¸¯Éç I!hç’ðÔâÒµ±Ç>K«zÖ» .7Ë­ŽÂ^cëz:nk‘ìa{_ªG¾%ÿbr9{å³=Ý8k*‘R·¥‰i9hÞ9ž¦A¨‡ª€8V]tHÓC.k¢ÃøÝ+‡¶A‘•eáyÞʼ8Žñ¡Ý¦:¨åÕà-š9ÜÚy5@’§Tjëòi ö›g L²õˆiÉ.¶>ggv¾ŠdCL<•2Tž=X²µ/°/Ð,z¶3¬Az^í£j|;T¾V’d…Ò•‚}ZOµ ÀøÎÆÈT(%¬ßdåš÷DÙI¬ jÉaÔÿr®ƒ’uYB¨“#rd‹« DÔÑ}ŠZì£ÁBÒQâèF츫¡ÀÓ–A€Äš?µ^áùïäçá‰ÈÜ@WIñ3ȇ©&'úº tÓ[P/Ū‹šìÝv,H†}Âû§b‰‹õhKlÐG´#³SÉt•=àÕ| Ó¾+Û,®†Ü¦Ðð¸“3_§¬&•ž²åå÷°ÙE(ÕúMÞß$OO–ŸÓó1^ÿ¦ 3ÁÄS M” ­’ Ô¨'Qßzzß5¥~.ë$êêsW ž­z*½¼t«†»OX|’¹ø q81˜ÏåeØL: <ñI*[)´Je@îÞ€ ŸT?=-¨szlÌ?­ †kÜzPvÅa,v ›$ôêFw4žœVÝ뢺rÎ_6\Vã†k’º§µyúòtt¶lŽ0)ä¹Q 7{P=sÀqI§¤¸ŠŠùTc¤iÉeßY-çâ;v^&×¾eÍL¬$‚úÉüùG¾ªg–‘tòϤJ•/cZVlm'_>ø©&”oAUfu‚—±W"L\è۬㧳5øqè$•«GÊà’©Ó™¢ÍR .êSYê ^¶ÁžUG’úfÊß8<´G?7ªtr0áF‘¶µÐYïÁ蔂•›µßöðÄ)áÙ—šÀ+ªÕ½Ýž~{öû•ƒBm4il…l'ØÝ;=Uÿ+-s—«œ´@Ib˜ ª´KÍYº2(¸¨x9îù‹q|!2žŠ(Få'GþOp±Rü„\'Nø ò`²+‰}ZÝ”ÎJ$jYØŸv•#+ h¡©„gHžû)¹,?‰­”6ì£à°|šæj¦¬:²½ÖË[P:'¼µaE˜’†2×/^ uÎr¹¶Ù‹®u.—Pö8=ÇÒíàº4ÿ• Hã…ËÒ¤(¥ jN–vå?É>°8ç D<}ã½Ki§²ä]ò ñÓ"»­ÙåpÃ(íü%‰,öå¹j¾°ÚŒÓÇ£¾ÍP±VÓ5iq ï\|wzع\”Y]›G!wª=O)øìTöÕJ¢†U–c÷d”Šç)…Õ{´â }¹)–wâA.ät4ssæC'¢ Æ«70ˆ‰èà@ÑqÇGWO[;ã{S°šüKºí*<óxôa´ùÌûNÖuBa£%ƒ”§kž¼³()<»¶--Kn¼š”ìX—yÚè;U#ÒQÚÊP ©€-‰¹É3©MÞ§Ü30‹‰S<Ê/œ‰çÅÂíB¬ ƒ'*’²Ô F±Y¬²eÌH”‘ ¿[šÈHml(þßà]ò1²4àœõ>¨ø¨Ÿ;„@Öù€ó‰W^ÝZòæXLä–«¤C{x$2°…|­ç #t«ð±m  ¿è+¡‰@±’K‚§x%t¡hSmê7™ç’yévÚ½ßô­r.Œ:*14—b%XŒ$OHÅú0¶ËjKÁí4«¡<šUnQåàü¸Ä âÁ/ï PNŠú€[K†]«ÅÈÒ°¬¨a¦Ž…ݾ¡ÎB°ýÜÎK$%í ‰b—pä÷êYì OR4˜¢Ì°}lJuë%½ÒÙ»­ƒ*ì«$Mˆc;:«A°’((•Š ¿jÄÞ¤ïó•cTÈX¨*€PÄ•zÊ~0e¦ã7¥ù¥(àTÙ@Mí}ü²ìÈ·*HŽ'¼ö%¸½ÁÐM°;ªTÝO;ÛN° &½e 9È·å+ùî%“Z/"(—ИªãðÎUE¾ŠÄãÚ·­æ¥«ï®KN¹õ?#— àckÈZº¡$Cº# Då .f‘å)ìjÖd ,ý{ó R ý–\i#ŠLÅvgѺ‹ùA¶›3.r+ˆ•,i95“‡ÌÁ~†š1ÙELÍ  •¢S`F–»wWsl¤K‘L¥¦Œšdaò?2²õF ë4¼ „§ ”—@>‡bÜ,Ê-ð·o…:º%©~géà™(¾ïQMU@ÕãU›ƒØÅMDø¦Šò¼¸ ’ìšJ Ô²BiöGËÕ‹¥Æf:ê—yÓðrz:z«ïÆ{à›Œ`6¸SQé?&™©½ŠûRh9pÁÓ&ÌÙŠ²‹ü8´r¹\ð›†F Öªó—‡Ø\Þë œK•ïC‘{Í+b»ØŠ§ZÖ9À ê O¬StVf—4A‘ÝÅÿ;ñ˜šˆªÒÍ.µJßÕ°Íá{NZrr%aØVç=2¨]Çx“¡Îö쾑RÉ’cÙG[Ó5|—`tx¤x¶d±«T(ñb‹®ãÐyš`}“‚¥9y¡ÙD8YªLOy[úè‘jL(àÀ³ñT«J Áe…>«WX†ÇÄ*kò%J\^*ÔBE§ÿ aoêJ•½}†´ù8 ®ì+A±ê±•ò”FV9ŠãqÌÉÐ5,á"äg E/ñ,ÚšòuhB0Ü1ž”ª¡ .ß øE±Xª=eê<¤´³N,>ƒ¦—TÆŠùð‘žÞ•Wži(“uŒHÐÇ¢ûˆš-ß@‡Êé³(¿äñœfÌ—( uÏðrŠªPóœí(ê$iàsªŒ/9æÒÊ.>ÍíË+Þ£ñýjšÑ«i­õk“j°¶%QÓ¯²;éK]­¶ž˜™…³X,£áØÊÕd…ÙÌq4•¥‚zŒÓœl¯( “WÑœÂçQÒË13“m;„M}dÏÆ JÞzþ/¹‹½û9j sÇ<’3ë,­ªÓz¬ÕCÝbêˆËæŠ*l”s¼Q=8ù3—=F•])€k–Ý3ÛÉ'*mÏÒ9¶Õ–·À‹¿XåIKïªEÎ ?²h°Ö®S%¹á°¬õm—„§tóòH¨»ôîéáCžîR Îs]ë ‘4~‹:„;›wx=ž’*æ’‰ù£Ž7·§ìÃfëä¦ÉœGZV†l«%›})Î\œ}ºvÃpÑ­H1ö[ÿ'Gî†'¢«CB ‹º³ÅWS]íçš5‰$¶c·¦jóM¸¯*KDsÓ©A#‰Èn•)Wvut¦&Æç.ÿ|” ¨¬Ð²³i‡C} èÍÕ= =ž»HÆ€¯ ãÔQY¸e"HÔÚäÑ+p}éû”£Ô[)<Þå°_c“ûyÄ‚ÍóIŠŽ¦%‰Ïî7MÞr´[¿´„)ƒ§¢V@²é“ó”,,ÿ¬Ì]–DP‡¼7≠­GÂkš´®+Ý’y¼¸]¢Éi;ß6¥ªXà Jɹ|§ê­óWß(WOžñ’)ʾ<„pNe)–Þºj¬sϲ*¡ÆÒàU=S],ÙktEvMt€m¨%gŸ!9˜Äµ{´º_ày0*)‰ä)éýpZìÀzŸÉjÂJ±EÀiì£ô¹ï´y h%?)ÌOaÇëÐÅüd]ªsÍÊv$Ce7òªªÈº.)˦óà,‰æÑD=Õ-½< *K} ô¡ä6IÌ}4ª:Támë!I滜?blî‰T±95Ùõ‹Š¤•Åžš8§7&šEÒK‹ðÜ—o‡T'ƒ‰$Û-ä¹FÜ=ãë ‰]í]g©ñ¨q« ´Kê‚çÄ·%ƒ’hNŠ”µ­¤·#UÏiÏÜžÁÜYd¬ ’#˜OÍ¿¨”k«·¼I%LþM5˨Qšœ VéT“C`5‘|÷`TÒÆ®Ú¦ö.‰üîpºú Îök{Ô¥—ѨG •B£OW'™8s×´ëÚE9!õ¹{ÄVÉqcYž"ÓØäe8z•õ@U(x×âMêÔG@Ýß›WYÈ!ÃQ¶“ á*"œ4[!¨Ú’ u‘À¸Q˜5!€xžJKhvÀ"%è¾ú-iÁ;‰»£Þ®•r©TËÝÖ¦'DÇ#wÆ ï¬³Xvnðrd x&vjcÄ~ÙŠÇâñJ(V8‘H›^58͉Ï·‘Wî-H2è2¬£¶(š\‡°qQÃö”rkGž§Ñ‹R¼:àré"ª“˜¬t€tuDåN-ñ&/ˆ`:/M—§ë—zÔÙTç`–œ*•fRžœ—Q¨¨/¯†—LßHÌû\ÊG¤0{~Õ¹º¥N6Ó¥†uÍ"Ú¯Nâ9¤^°‹»ßÎáºlÃABYÔ<7u3<¢•' Ò9/O.øÐž—ÒG´¡‚œ®„:Ù&ÐÔ©ÇÕ›& ×ÁÎù¤*I²5ë Ú>4ö´X¾ü~lŽVm²¦ƒ¶Ô¼ìúB`"…<çtÜ(sÚíÐ"¦ú0UV9]Éž5oö¯µÀÚjé!Cl§Žì¥Û…U„òítÈeU’°ò xó]D·YäHÖCÇû¥N U(:Q{/‚Ö–Ðç”<Á1×Õµõû½ñ7¤†;>±[ØGVGȺ+çʪáÄJG91:[V(kpn-*ïGùª´ëm+O1]ês)¶ÀE©e¯^«ÔJņ‚â¶ÿ=…ó4O‡—*íjF1éöVKjÁØôÖ\Zâ´*'?L:ŒRi2K8±¹‡§ÆrOS3sÞètzI½×¶¼AÙ&‰ ôP”SÏJ áÙÂ4ˆÍìZý§ÎÖ>w~×QÒÔÜ‹sá¥8Ápe?Ù’Ä€6©²fKN…hK8×[‡*“b‘²zSÆŽ%JMebófJÛi½ldÂÅ Û”"ñoxƒýy½·+¨‡`óÄÃXQ‚r”÷ H±€Ùúò u˜5.SNVˆVñºàžòAŸe:àZ¾%Å»OEßáALTÇZžÆy°†X&!°—ƒÔå•)à´ÿ©ý7KKNæTuÖÖSé› ƒD%‰ªð%—­ý“uU¿õ X´Ó¨“”Ið˜ö\6¹ãØdز¶ôÈV:ò¸WìYB”j$…§>(þ®ˆ O­Ü¬Ë3 ôºîMÓ·ê©”‡‰±G)†·–šU†ØR5à}±§.”È‹óåYßëq;<üm2Ðå“k¾vòÿòëHŠbÍìÆ´;êf2Vžðž4Ú:œµz6] ÙK{´ãEˆ¯ª0è\xóšÄ„¼œS;Dþ"Û¾ç*hWô<-_ÁíÖ”]‹j’ä¬7¬\jSÎÅKãåÙ’]$Xkîr©x¬{z¨yÓl;xª|P+ú´ì´«AOJÙ0 `*ùD5MJiñ"“¯ ›ëæ&%G›W7Wv{oZsª¶{ñ#ÎÌ.k¬›Ðà<éJ2šµ7@“¬c¿s¬ÀOa¬Ìˆ£»eá\ò¥Ÿz¤ò:V¿‚ÝЊSÙaKB.Šh#}RùÐ|›MZ¿G²ì_ª'¥Ü·õ?¯Q¡ýã>úV³ƒö™g$uu0šêî»§*„÷:¢Íåt G Í@ás¥ô«Ü¬5ÿÝ XyƲNW–Wñô¬im¦+—çô²GÁà:ÞØ6´ØÎ …h§²å‰tR<(?ƒÃœ–=`]VoG»<-`û³ÚçÍõlÎ7Q—n9i Rq -éåçÄE¬ÇzdÁHÉiyù}_éœÛ®ÿÀ”2ÎsJžÿ•Xg§ô{ô=•¾‘ì BÛ‡ÃÛìOn¶ñZÖ¾‰ÊåbÑpNÉͧÆEîĹ/EîlñIÈà]Ë_5ä‚צ†°ÄZ–&WÀ}+F5ôÓl”j{ÓA‡PF}jéûúµ°(Ár0êö8AºáãÌ÷íɼ>zŠÉµºÆË ìV̰“TÜâ“ÊfûCöbר%§íd¹ŽÚè°ôA„º‰ òØ•Py¤(@&O—÷zËÕ] ×2‹‡Í¤D”ÕƒÌdy HåG T>`§ËX@¬oe͹\Ëw Ø/©Šå])›ðT¥ìÛ%¶¤þÔâ/‰ˆõǶÁɆ²ËCæÏv4 u*”iêñH¢'ÒìžiÉH1«o€¼LBêCs‡yŠ¥ Dzò™G+zé)Ê–tSˆ¾‰¢JØÕmœ{Ð'Øw«‚¸ Üñ(T—«Ùükà)¶Xkj]¾"Yqçþ9óàááa°DØÎy×òèsÒ¶ x¦kNÆ«ÀÊeME›.aì6Iñ§u(/-=ûjåQø-E^RsÜÔ’â–°ÎS+ªÍé§ÉâºIuwOõÇtè¸z,¾D€Ô ™®ây33;DîÁ”lP[C*Pµ[1"þ¦ÝÀc²…Žc*¡å!›gø/êò®ˆ^€|Ó8?Ö¾ö#,o‡¨¾\–°Â»´Û=¨K£šù»ý…GÈQ•Iždqván gÖ|Dª)¹yEá’]Åê&yDeååÊO®Ìs/Ež¤>–Ju¡Ùy>€8÷ýj9|ÛŽ<ÈyÎ’8bžl¬^ìª`çË™´=‹¿yD„ËÆW€†¨¬N!Ö̃=œ M<7Ó˜'™G.’ +ê“Ãýž+Sز6wyƒÏµ\(ËáL u¼s\-=úûè§ø8gÚŠvÉ€ïœãvRØíÛÎ Z©×ÇêDÝŠD_Zß‘$…Ñc÷CÍA» × 0áõ]ϦMJ––/ƒHÒÉ2r ÌX_—ê@þ¯ðŸ)}ÿÿª´ÿô/I@¿þÊ‘ ÐÞÚÿ@¯—û½þóúêÿ¬ü3ù6×ÿçÉ?¯{ýgêÏ?Mù;ùgrøÿ9ùçöÿ,õçµÂÿ÷ÄŸýÿ´Ÿï_}ùÿsåçÿÛ•žãþòæ—?’G>øò=äAúÌ/o¾æ½}üò‡oÕ—7ÿË»O?%Ÿíå áîû¯¹ø7Ÿûÿ³ Þ|þÕ§w?ú /ãã·Ÿ~ø†òþ7?ú‰óåÍ7ï÷Ã×j1¿ûÍ®Œûóún¾ÿNyyóáý.$óK׿"bÍNÓÿ5Ik.øÿýÃW\ÛŸÿ+r×…Où÷?|ŃøËM ›[þÿÂØ•¿÷ÿ³d²ùó_þëªÙ¾}Éõüý¿YS›'ÿÿù·Jl³ñßüú߬¸ÍU}ý£/¹ŒOÿV=îÈe|û£/¹ŒßüèK.ã·ÿ’x÷ë—\Æïô%—ñ¿üMÚ[ªLi)ðQ"”»·¢Õ9ŨáÚb9µ‡L-·|‚ع͡óÛàï:=½¢"ÅrGÛ}†R‹ZT[Š÷­¦šƒ9-&@úH7Õ3èÛ {x5í‹vð<}²Õ£tä¢PÜʪ¥väÃ~0õØkÑVƒÔìW»2g)õµ(¹ß³}[¹ÛÈ×tJ,Üóñ„Û¹-)íéQÚSYjPåÛ–h³Zµ»^Hu¿¨Œ¹¢þœiæ~D „gáÚ¬¦ä÷íçÜÉN%û\Ãò½SLž‡MÖ'ĶûÔ(ùäc&[z9•”Ó¬½ísÈ™?ûÞσÚã¸/*¨•û½)u÷}ÉSÕ_‡ôåã¨õü¾†\ÏzDmU׺zX½Ö°׿,Âjåâ칃Ïé´Jñ<È–nŽëcÅÊÝ^>ðÎÓÉ3ÚŽv«ÿ Ÿ–•Ðã‰ñöUL¼[‘*Â}æ¶«¡0U›}œšèœwÝ<‘lJ(EU ¥9Ü¥äj/¶ÓƒAŸÎ)íP]"RŽp*K¥}äÁBQLo#~‚Ú·:˜%ãF>B MáËj­Çü=€WŽrÛ+UiUÊkÚÈW2Jr¬öÝ>S­5<ÊŽï«‘LEžÒ’\/ñ­«Iúì¡ç#YX}%ë©„–”U­â†ü2G4› õäžäé—ªââ±dA¹Èz=g—l­h†õï¹ÒçyÛ›»x÷…«»ïÌ/Ü}ê\Ê]8 8ï!ù¥4ÝíÔ§,½]å·RW¡qõú*R’GÅw¢ìß´„ÿÔ·Ñ[¼ç¶=íXú¡Ç¡Ø¹”nõ;b¿j·bÂOu$ŒŠ™øakí·íÏUíS«»,U*Îåî©@W£f>¯Ô›W97ÝÊ·=S×ásßyª½¶­N«®¼/5ÙU{ÝóÒ }´3½bxœ2·‰£x8u¾Ó=jHŽê¶8µT.}¿Ë±š„éjö‡UÏNêÉ;`b‹F‡¢l{Å«¬cìY޵çšS"Á”/‚Í×)rsét«o°ì;^¶Z?]e‡_ÛíÌEô 8;¥m]Ϩ ä‹v¢Îpϲüº¤±4‚Õ©ÁÞî}+K~ç¸äø‹vã•ߎž‹ô½ñ’áåd^=ûsÒ»S÷RåÚ&e›`0 ÙIÁqGþØ íê² ì3íž„º v£ü½zœ_Ê–N Ã=²e©ù3‰)C¡‚¡²Z m'öµ–žÖ.G‚$Óˆ{mŠðµ¢˜„O(/n/·2äjAé@®½Â¡ªÛÔ±·QlaÜçÁçm©¬€œ%…]·Ç®¥ié•ÈI²Ñb}Òì¶YNŧÒÍ]:ÒI}ÌίÃFvyØM•gg3V’–‡Ò*þÌÔ”ñ £UbO *ùNZ15´æA#ñ2k÷«Ÿ)+Òáœnwr9™7æ2öL÷"\’°öÁ6Í,kC‚Ķ#Ûú«ŽeHñv¶4sçJò9©?Н‡mÆsÞ[Ìd”S§ãKåÖ²‚QömWÝ·*l-«k?“3‘ªg󡸆7©Ej)WrÅ£Z”Â`gb±ÎýT3ˆŽJµ4"‰ü墒c´ž®M÷[½B5r¯¡,«u•À*kp]£f“GSX$ªw!«-ÞRýe#“Þ›ªúÿå­{˜?æòoÜŸƒÑÏz‰4ÔÑTl>¤ºóŒrJ,½UeöxTÁ© ›~§ccuä×ÛÚb«ðœ%ÓfFR^à´óa÷bs8sWù«ÊqPü‡mvÅĪtHô³™¹;Þ~gþ;‘ö"ã>Ú çͦ‹Ö¯„þ‹¥aPaéÈ’7ˆJ*ü±ü3›MѤÈ8@|ÚðiÛ¹KR·?˜œdêôÝ_"¤ƒZ®as!†jvóúÃÍ:ÕpÝ·vÕæ µFÆ!KKzPº·KZ/<rÁšíµËÝQëwv¶°¹³oÏÕš ¦nQÍqçZg" H—x:A>$-&®£÷ÕGq—gÇõlš+°…Óªm:´îDÌUÙ6l‰eq;DsJl&HßɪøÃ¼ýÍézòj—dD "ðaéªZI’݃ïý¾$ÃG}Wƒ´Rå{À¥Ï6R#TI"嵟™Ëˆ æy†5„yè½9’ÊeD^nÜèiK'Æ­ñV4×,!)RA<»Õ©å™É¦)ÊÊ5Ý衺û#ª|<硸ÐÜÚ6Üþ$Êñúõ¶g9FÖó¦eM€<Pb`«+¯>YŒDÕÚõ®uà¤^®ò$A`õî¼°ŒÝ­­k{M˵©¥³ðC<·&1ïâú®‹ËÁƒ'pá`¦²ºcÀ×P$Ñ(6—Á¹”à(Ö3·KMgÉŒÚÛì77å¦*B–íJ4Å\ä!_óé`1†‡— hO›r5¤ò6 d ÿW$@«Éz8¿ŸxÝîu$§(‡–šÑÙl4Kįò¸Ï|ïƒ,t ئ,š¥ñNŒ)Ùñ<>xYÚP<”³’Ù’q[Çý#Ø«µÉIàœÜ0È&ë»È1u\e¸kÏ.ôËRÅ÷ºo‹Zµ÷â²…ªð!âdQd[ÇÁô#5tD}J¦2ã*ZñíÓ&º}âÛ©wõYÏZê),:Ålº‘i¸7ÒPÁž:¤?à.¶k ÛRœ´ ÆÔ/y¸¤)ØàãÒ¨ÉXÃÉIŠêL“tMãÆ1}ÏǦ$ ”+à2Û%?én׊še—ì¾K«@Ý©ªV7RRö¨ûÌ iË2Ôl€.€8•˜ô/µˆÉêd\"…áXÕU]C—¾Üãlm­E| ÚØÁ.eéw^£ÓòhÅç³IB ‚e|Ó¬” Ôãu(´ ÿ½Ù®ràLSâKEÌåä ½*ÙÚºm'ÆCeÐȶ1!Æ5*L6ud4p˜J‚ø•@v  ÖN(A¹Rà‚ܵz\ö³Õ®v†q‰Zøâ… 39A™¸S»X/é>¢nNÝ5|/ Š©rÇdUߊLê8MªUêŸ@$ûTœ3Ù·,=9Æ›Ó6Óêuæ:%¦Ä¬<Óá%¦Æ¹MË î¥†@×ÙCÓÙq¥$øk ‰p¬EÇ×í«G6Íú=}ÕA|}Êéö:¯ãà­MÕþÔ7R'Ë?}.…þSnŠgmÚoœNïiy¤ Z^ÒQÜüc{WÇY@!y‰uЗ? ¨;l¢ÁÉà5êì¼R-Vá…¢ÛE¹yà‰" D1cÉqájeñiÑ:±S”csª5“úôXE¹ #g' ;nEÙ¦Ž”ŒÁÕ–”8¡{¬–½m?¨£õÕŸä.o—ÖJñ‡rMϲðë§ìÇ4&ÉV˜ª䢚ÈyPÒ[`kr?ì‚ÁÎ%¥å~ÂËgÎ%j"âüqPø‘”³ŠÍåµýĪ4AÚj‘ù” £.á> ÀàJKº¬Bò6òì"^‡#\„ÆÒNóÕÌA€¼¶«sI”¢XÊõ¤ cîÒ/” RnSÁúU5EçÇê6®‹½§Â²žÜ²óú¼™ªa9?Wd—M æ´Oq©¥ñˆ¥·Ô¹I ãÖö%þT”£ž£T#O(”JÂ!"]uàANÃe™LöãŽ6ÞßáŠLJTè<¥â^Òœv*â±t”ÃÆC2 “mÞwÝ|«Tß›C2àôÜñ~!6p³|Cã®­ÜhŠ.7½ÎYSU§'¥b˱•ÃÙ{¶îÞò}èò“åòüÑëPA†P­ã_t=òhy—z!T¥¼eê¤$©‘Âê,NÔ8š!!XÍ9uÙÛÐL€rV7vG¼ÀÜq;õTç3¾U5Ö¯à±Dªìí+¹ø’ÉÆ×êäqœˆJõñð¯Î#—&uIöã‘’¹ öôq¬Ó£¬¥ûJuÖ±Ò—,dÖð¦ÃžO¡—g ““rˆÄ£8-Õ’£ÊUe .ÂVi-߸PÉA²ZÇF8Š:˜6+5_cñâqTÕÌç~fóÆò=I"JÕ©ŽK–âæØV½¤ã#ÈÉó^©‚ÏäþÕ] !† V<ØÁ ƒG?ƒìiÏ /Èè"QNòŽª­é’àVué¸gׯE”Îcsm9ÓªCª‡p™\.?hBpJ~;©Þç¼IÁ‡F°Ç¹žjNÞ8 (ÑIGCÓYuLOá5±™¤XêªNýAMÐv9¦Bv"îXAϪ|²!ñ¶æc $åD‡ÓÁÀÇËCÔ>õcâ«ý¹­IwMng€¦Ê锿 ðèÄ„.Û?QúæK_<…?Y%ÃCÁ¼Üڸɸ’ wÇ 2_Paì²¹“4|Lª›zcDêu:Aü+ w³éô&GêÊÄux‘î,çI¨Â Ô–d œSûReÞø‡îëè;ûê’N­ö3o¥Ôæßd]<Ý9[ª BñCŽ!;;34W2)êop‹0vi"wÜ€÷î·œäA~c„b& )S_䢦šzä[”œ!8á‘®ò;Î>;}<”KTÉOf½Ên  y¨˜=ùöœ×êš\}õɯLÝêÔ—b%ûEZî7f%"M×(±]$Be,½TkB’:Xŵb¹MØ#ó:MÄö=¤a:øÄošÉ²T‚’FÌ d[Ú0ÒJb)÷h9EÄ!ièßw¤C4iqá$ÛØÄX„à³ê/»T[ÕÜ5;Aé[©†žwÂR²ÆO­f•6ÊâñxŸ ³MÔþ‡AéD"h¯ò°\KÕo5TjìêÞ|؆àLjã鱯u$­~½ªã+°5ecþ,¡Örk `çU%i¯­g¢8•~åwZó´Ái„3ìe2Òul¸=Tï¯ 6Š®N !ødÛíTÈ‘7Ó^íîH@7(äÖ’²™ZIÆ÷)¬:8©©ç1ÙÔNhÁ{4<: ZëÝŠúïCù“<¥2k“´ "ó1žt·¥QϹôcÒ0€ÀF!A8ÏŠ-ê‹»¼å.Õ·vBÂ6qt¬¤ív‚ :dÚHw<ðÎܘ Ï.ß4A‘"SyÎKÙp£d~T’ÎAwr³â¾KŸP¡Æ[-G@I8·N÷é] äÊPJF.ARþܬ·žÌݨ ÐÁáÊhIzáÛÏšL#òzÎrQúó‚UÑ>üÎcÃRa¹ùÅê1 8_Û'ÓŽý”Å{&ÕcÊ–à©€Öèf~b@cÜÏ-‘Ú£+ÇÎ$9^j<Ààô¡i3*\öó{ÔÉëï›îc>zÎ,ÓÏÛá´ûOív2HZa•ºëû2Ç©Éý¯`ÐæNp@Cn½ Žáq™BE•~Oð0Mû>à®M !¨úÓÏY¨Y6ÿ/qY½¶Î$-ó9‰ÄÎ$íWôm„Œ®`òÍZ–± Önn&vpÆCÅã°N–ÐÇ£]殞4˜†œ~Ÿ‰RÅæÕ==3¢P總;Ï®\D'7šhS³É‘Ô]ÍýR¾%h#Ë£{H\&–à…ƒÍ$³š:DQÙYIØ.-ú^•lçW‡-·3©>žœAŒœÎõÍ£ËÇyÚ©Òùp¦é\1ïÌd99ÒËUÍ¢8¤¶¹$â«кdür1ÑÑWÏòå׃í^‡ë‡œ®9…–TùŠ@mQEæ^´¾9E‹b}÷òÅZ¢PÊD®«¿¸8«¿‚¨ûò4uã}$§ÀÏ}³!îë M*wÜ`Íùç©oa3€Tᯌq€Eçr+°H:·v팢ّº\vGÙP,º¢U©v¸4æ¤u?82HnØ=¡!SnªìhrH‹EÔ~:4^œÊA”ëÖuœ*G §lÌÄ`M’ÆØÜ¯„?—óçl •ßu»Ý5Œì•tïüž†Ñò»@§¢<•3;¦àFÖIúJ„ç¡6›Ÿ¬ÒÞS–a»6¦Ãs2}Å„ j>Q9GêóTv6þÑÅ”wþhX¡Ÿv-Dçzªþ£>:E'‹ëµÍ~ËÉÚ?‘V=r)íjÄïŽê5I=ÄZR½çˆ‡qnf‡y¥(JqξÙ/ʃp.}%¤®^ö¥Ð­N¤Út-ɧ6ÏKÅĹ5ÝÖuƒ$0‡5«v¬T4ìà‡u„©·½S뇚’ào‘45éóèP¹i+ÛHòçëØâÁ‹ë³:˜ly0üç`¥’\mC%èc Z¦j—ź_ß.ßô©¢7YË‘ð^œÃŸª O ž1VX%Kû“§z«ár>¹¦Wìx$“Ü_vܵƒúGT|dd wÏñl:ƶÄ.¨¼I ì B]<±ÆâK”H£©6Q˜©~uc×´k𜮥xf[󔪜ûáÈS ‰j¾×Ô¨¯g£’<´8ÓR)Ž Dg‡LEŠÝ:ù±Ù¥4Ãy9êæi¿ž¤1‘þ‘Éq'í£oY ïóÐûX9px§ ?Bswì·w4OG)YÕaJ‹°lž»ÇI®gµ­fÿŒ-KV§§c¬ÙØË\pðO©:"Q{²ï”¹ŒõØnqmU(Ðn$¦FP­ÉóøÉî&˜°Clœðý(8ív.›åAëÉۥʯ K08E§Ó£ZæäEÊ5U£žEÿñ¸[Sv¨HQ_…‰¶éØf—ÅN›Ë PëXq®B$üLëx!è£ÏÑåÉÊ ìæéM3CÒ/y^JÁi´UÕaShù8WÍõœÎIyD™œ3|€òwÒäžeÁ{<tˆæôÔÕaå°Jq ŸTÒÅíM   SÎBCôãÚ<u¦$¨Äš<>=4ê.KOi‹]Wœ‘€|§CÜä­¦ç³S ìÛ—ºÆk=‘µéŒW”pê¢`ç’XÉ›Ca))³ëùf÷iÛOb;ÞÔ PkϬ¼å Mýžy˜—Ý®ufVA£³ª²ËE1Ú6]ŠO;LVa X—=)/Q›‚ú]U²Ç`K`NLY×Aì¥ ŽãjOjC™+mÙˆàw`€SíOQ~õc¯æ–È ÌªÂß”ÕÀ–x´K2by¥µœ Ó¯vn´9æ«iê$‡v[l‘Rž…£ÒÎRÏÙØöTË %ê#¤Ò90EÂÃé)µ5Ír ;šº€Æ’•<ñóÏ´‰KùQAeÊB£î«cugoJUQçóØ«Ëþ `“åÅÖKzi;¦ã®Dð¸GÅ(Í.Icl’©Hs4u T–°ùÐ=~É–—ý`%z~hóJ37é{¤Ðëîéö‚@˜lzàÎán ñ¨:£ÒXeyßt/째Q[2x‘rD8OàÌ!øë…Ê­,ú‘T#z9Žš ¶”jWDÕsÇ’¾2ÁOÂÇÝ§ì ‹Jb·{ºªZä ʧ,36¥ôC…°»äØŒïs‘5ˆÃ$W@G||‚ìlAë1w[5YêÊqnJØêé{mîñÊC*:$.Þ¸Þ–ÔÖ vjÅ.žÿtŨ·6ùâ2ÁÙªJN>Eë­ñúYkˆ¸Á‹ãÉøÞ5sSF%EP*ëZEæÈ"Sq&ÍÕ<7j š+‘˜2õläHiÒ½JUž(ë‘ÙvÙ:ŠìŠS žâCö ö-tWR‡šœyy*Ùã,€ äx_íÜDKˆ´žcˆÌäKðŠ:ÆúM“k“\‘®»o›m~…gxØLçN>£ZŽžiijliƒBÚ}i_x^Y˜$]Ýãð„¢\[¥6¼PGHM`R6XvÚÓ,sð’­ÀIVgrúŒÊŠuÒ»JÊ6{/í¨Añ‹ÞÞÆ¢ûW[)¤ÛÿëZ$’!Uþ^µÓ^ƒDW {2‡jõŽ)R¥;\å¯P´,O¸¢á(HˆËSב4ýHôtŸ;™{ód˜å<ôËÒlPRoR'ŒO¿ôµÐìCè¢] ·âù«~ëÕi Ðù°(é?ÊY±Árijíø€¿fÿp89gvQ`“úåª=€T5ð®ò ÀPL™˜ußÓR`udˆYV÷âÆa;ŸMâNkg®÷n´ݤBP<"áùž½:ù’wuÏé©‚Žq¶¬S6uO6“jeW¤B:  ½{& HA‘/’œ½ Ms窴o×î˜_¤öª‚]Š—AqLè5g ‰–“üV¤*°Bµ|Ë4¤ƒÀxv·nYÜñ¸Ñª±æhmqµíDj1‰e<³¦^„VV"7í õóÈ^,Iý¤­¿/Ÿ¡Þ¿dX}}xˆQÀ¢n‰çþºÉªéCU>jIÂ8益É\Š„ÞÖöŠC+0Èõ‘õx_€ñ˜T;LZ©3xrßoÏvO€“š,ÓyH&õ܃oò\wR•GÃ6Ìû¶Ì—Ór3K ‘s¢ V¿„WyóóYC/Ž)¼/Lòf¦î]÷æÁí5öÕ‹&ŠÜ,üîù¶šBBmþTç&.:¢À›š¤EþÒx¦‡IòÐÉzõs5Že¥Ø:Ó®õ‘¤ÜöÊ•œFû.…},‹Æ,År²ÝÔœTxb¸`³FnEhÕìËÒènÏUÙÙ«ªeêÖ9Ú·$aÐ '?l?‡²åW­yµ¦ª~TeØûf‘òŠ¢pÒk@¾›ýô=ßË_„RÖ´‹nÀc¶¤oÈIñUzñ€ã&¢“j Ж÷v¨èÄZÏ1’ŹAÿj]+AÏŠ‹Œx2’®Nh¶Û1àé¿M@©¿ž*í„È“,«, Ê;ëd_>8‘^­š,¾xYá´¦0ùjÓÏ@³ë’šì»yš¤dm8i$5é×Ô\|%ZÉdOx@5[&(ëq×ÿSµYàòÒ êÕ*w,ƒä1Hž»¥«jÈC‡ùP9ÔÚ«g¾*ÅSÃù®¹æ[“lê‹„Gs- ÙŠÚóô¥<´:WJg·v+¯u«§œ×!¹úκ–ðì UpuñÖ$¼ÛMV±©L¨'4q‘,UË:çÔÇS°ÛÁM‚ÉnŸñð„ÂCþTâ>í;«ñdOZ)$ÅŸ‹üúuXÈ€HìH*EEÐ!DƒÕÇkê±ô7·àA E† ‹%5ªæÔ±;­¶ßìÚ)Çd·Ãüäý0¥éÃê»Ð÷õ›lb›íþ8)§GÛ]²eѰõÆk•Ì£œ¦Æ0 ¾y\ŒlŠÅ9ì±;ýªYÙXÛI)7Ëß®0+»QCëDG¡Ä:‘X¡îe%±T…›"ÛÉÉ6VéA˜©-ðs­HX€ìh×ù¥Ã.ÖCVÖ?EŸ}§ü×ãˆWÀÎaah( ¸¼&`@ âN`‰÷qظw9mºÁëò ¯Þŵ͟.Y·y^„æ #\”‡ŽäqÚ)H4sêjANvÜiXgi-¢çV»–¾ªØ³ÕÈüEq[µîe·(ÑsÓ™þP®òvú–¥t;f]¯‹Ô2e¹Rã2µjÛ7å¬Y³€”™¶[¯ÑĘŠ>k!ÌŽÐ ëq¥Úã­®aviVièC¶™Ø+åílJŸG€¥Óz/æÞ=Œ=KGÑRO IÔ©°­9`ÿðÉì¶è4mV‚/SçÌ—4aÐCÊÆ(/Dc´Þ§Qé'§{'H“òÑÓ¼¬+‰èL9‰ç„ì­Çù±KÉewªL‘tKÚºþíö8•¢¥ÞG™(»vÚbìPO{ÚíXÛ!» ”¨V´+}OÏ0·P­I¥^Ê¢KÇ$‡–X@7bôò%qRH)6ÉèwL¿ñ¦·¨1•o¿ôqôžH£±†‹d:07xž¬h@¦\ÎY=²7‰ìF~mœv=Æ%k&vUOô¾çüV넹Ë*#JŸ—qV_ªíàÝ8äî[;2ÍeoþõuÈ`øtÁ¹‹Œj‘œÍ@ ¶àœy‰"#²ÃÞê7¦|™àîŸCÛ@W½d¨ E…Ïê9à$/eO<µwt;j{ÁõHv.ÚÑÒ4ŒG¥sÚÇàBE0Z ‚æÔVñHóµÓÖZOÄ=©m7•p‹Kýoƒ>~SÏA¶E ¤œW@)5PžMÝÍU¥zD`uŸœ_#²lv5og°ù)h}–3<N3Z‹„&~X¤è°¼zPTu"‰+<ä2ÚÆ.v÷«%“ã¾³ypà N<—]­GïUß首´½UA3[3ßÏ FkREZW?;dGne®‘;6Å ⻇ÞkÓnÉU4ÛºøÂ¶”’åJï‹Áì2âÞÁ]´ÄÃÛ$^ùÑÞÕå«:1¯ßc3Y³1XZó"iœ­{sXЪ‹ñÜ›3!¬ìí:OÝt5ã’<4f½¬ctï“‹Ë%Ú‘ŽÄá…·MßÌéÖ†Nè]Q¹f áø9ÊÊËöc4,ÜWêMÔ•Ž“RÅ×­©3\ìÚfÐä¢eB‰­ÓM/3÷®ç„Ÿ ¼}œ]‰gïε;¦:ôn€vùì`7ȧr¢gBc3c$ý5ªbFõª›Â§ÝÖŒÅ2Olõiã¢‹ï ³6§n”ç ²äCù`í¹ŽBÝô^ª·ç­O«n&<Š€l©8¼×Ç9å“ÜHˆ ×)¡ZÄ \úæ›G…J;]úxòe«ñT Ÿ»[!‚Ÿ²ôªÃnª`ðn6­zZmŠcbï%ñ¸¯ èÉÅCaî‘ýo]™®]Þc·¸aå‚‘¤“ Ê\JâEâw§€­Þ; $iKÆmLm®¸•ÕÆ`S œÂÆ3ˆÔ“Î(DåèAgÍKú48TŸ) HÂNÜ^Ëtý'eo”¾É#f§"¬øØR‡GK¸˜§3N`+à÷$W²a«ìSiæ×AhÊ]6«3£zPR¼¥*ï‚t‡‚Âr5^¯žßɯ1Q±ÏD,# ©òÏÇ*ïAÖ%jpƒî#6>÷³ë© häa¥sœ®DÅ¡7{½¨e<ù¸=™LcÜÎZà¨zF:È4»[¦{1ÒçX9Hѱ‡D5¹ ìn-èyÚtY0ͳÐi:¾Ê?º—xyËêNï)«•»?ö–É|Ô*$§"‹ßyig,™³é=ê±zŸgØ”vWþ|çíè»_Š+GÝëN‹¥¡ÜIU2á|µ¹?î¼ì‡CÈË.±«h*.ÛËÐÑJN€V‹´¸2*,Ï.’rÀös¶]þëv‹ì‚FüãÓ•EÐqÜìy¸£#éD8Û j¢ÞHoNðÔ½·RýŽö¨P¥0|qüð¨Îs¸oX ±ø¶i¸÷C­ ç9Æ]6ž¡BC98æ ½;+ß×ÜÅÒ é»ªjû(òpäZIgé2Õô”½Df¬g'o‰+QJ“õ–a5YPfÙŸ ¢»®­ÙHáñ±é¬—I@Y{ÇžÇÃ…ll“§ÏÝf4 d×úz ñíP(Aóñ=n|p[Ö¬'Ðûv!‚Úê©"žÁ®:—çO`(-+¯‡m¾/¹“¦ì­GkÆ¡“µ„:Xô!XCoÃα„ï³î-éüŸ#É´è¼*lÀuÉóàI,£KÔ³Û˜!ÅÙ«*N3ªš¦d)S GóMäÄ{ ^ðj)ç_òTàM?àkž|ET©’>V?·¶X]GA kJ702¸#´W}Ö4…_´¤®ñ:ƒJßÀN[÷Ä„WO<ÉËxarrŒ[‘Vª7‚ÚÉâ^ÜuÁ7µøM>X³u}Œ WÞü'«òôþ äBwÇ¡u~ÈêØYÞ;¾f™+®ÈSÝ­«õAW'Qíðj3¨¨Û6õªö™³S°”ÏC?/­F£Š,—rç0ÃáØy, ŽOŠ;ž½ *²˜lA‚ Ÿ¼I%Øs×FU{ñâ}ddïÝþ«Õ_°Tï:8îöšÁ/äÌ]ÎR…NÛŒ44Wl¿Î~÷¨3¹¾ËjÇ‘£(m%êÄËY!ò2‹Ôé<Ú½ùnU|»RIà$R÷êô®NÆ ¨®¢÷uO±ê)òµ5- K¼ìrØþ!ò°<=%#Îl4aÛT`:å¡…ÑãùFÏrÊZ«ñHH“8¥¸ŽO;ª¼rêI_$¯ÚWUÿ§Ù¼~Ÿjúð8(U©FÔ}©êûèc×Y£Éf¹j 7aá•0|‡ëiö¦„k’6v3ؽ-Y»¹Ù©SÀìÉÞëŽ%úv)Ê ¬DƬ‰ ’Pô8®J¸ÛŸ™Ë¹ñŽ ò#«9u¬,§Á/gæŠå«]r(=ÖÙI÷â%nJåʃR@/rž…‰–:š×+õþE©ö8CÊíq±¯§Œ@7ÀÅ]5¸Õ¬îÑï$“ø.6gçõ|²îżNRmZZ›û¡Üò OÖbÞçº|eR8A†;™Ôx6®©´Ú8»$-°äãñqw~÷tdN˜MÝèª*ç9š}¶Ç™’[ë•öEƒ"Yµ|ò²…%4^éR\¶´Crì#;(üä±—ó,ÒºÏ0X`yWŠÂS®´xÈÎÓ#O—ÉæJëp‰«ÿÏÚU·‚NZºûUd솛ìá¢Bšd÷EÛÚæ+ÅýZJY<€œöó(`JñÀêñ4^Õ.Ï@ÄT±¨vÀgϸ7±¬«ŒªÇáÇ#­y´óâ QB_äñ„SõPö)ÅŠ`•&@3Z”µy÷€¹xŽª­8‚F¦nº«gMÊ–0ujïP§Ê3ndl7³s$Æ[Æ0Á]GÄáõ7’\f^C[&ËÎ1ê1ÂÚv¼`“.›¨35§Ös\J…6É‚ ªöÔùP§Rë)¡qI¢ä}(~Âz8¶CCWÞR¥Ò)\¤Däéè¥SÕoˆÌGâeŸ©0ˆ>Aª{©ò&‹w§€YÒªíЮ êœüбØ@yèšB‚¥Ž„d‚jïØán ËÊÁʪ°”®å&®Ÿ‰u—ÑÁVýÛ5óð*ÏÖÏÇ©žJ„$sjÀ*IAÅGvî O·$'ŠgîÀßFÑ,qw±îî­óF‰J—oT™‘0¬Ä›<›üõ€PYŒTø·DÑÎ7IæTÕgW®qs¸Œh/‰ÇþÓˆ—SÖ"8v¢Š»£Hw­y¦ÀËu†Xƒh^ó%R̨µ{“ÉH´ l%œæ5¾"9×kÙ²fµ«õ­W*vWêͨïéUÒóÙ¡æÊ=\›^W·j6.^¨BM`îIÜewH¼²ÁϬè›ÍÛc_Ä÷c÷´ÙØïQ’ctšÔ³|—…2ŒÄó{uå6:ž]öÂ"àÍij ëÀ²fš£ÃH*ïLà±Äbžš¢KcòÇÕ&rgý_õh,y;+óTSJŽyrO¢qF£}kH™%Hsûo£’ÝÈ%§ Фž² -ÚKºh”JÞ¯fËþVè ;ƒ»ïnGEWླߥ躊m§ ÌHRÎÙu×kœRÇ«•x½N»¼ ø4¢~s={ú”É Cð»Æx2ªf oOš#:%¥k1*Y÷TI €¨\Ê%Øœ":´<ÒZ,T‚æÍÒ×À! ]“1㤧%b‡l¨ÛÎ{‰»Çó»ëXÁ–S–ÈA~Ú‹gÚžÊpê·¥¬ Pž– Bš²ü{êyŽ&"[ס×Ý ÖQÔî?`aWâ—ÌÆzœ¥Ù·fÇX_¿WèEˆ>¸Djw«ëBIM9Ù”Õ:t:‹|*! 2ys쟇8àPW'k|—ÎGÜ=c¿^µŽ²uá 8^Ú½Ež«g(TÓ»XVfçå•~Éf*X¬/Óï9æ[e¯;VX6‚l«•`_UgÞõvOr¬‡Ù¡º”ÇÏYBØq«xõ€‹)4¶‘d¸Öãª:n©¼9ä;…¡XzZ:˜ëÈ=ÈÚï‚Òö£Z‘;ù¡^°š¹l eT¤\ì6Ä•bw0-a—'x ½_Šo %'Q‰ë-û>†Ú‰ÌÝG#ý®)Ïa•È=oj]ÂHe›ܬ³1—x0œ£&@å“ÊÚî"ÿV»AlŒKþךsßT„T {DõE„Mg,*ðZ.B™ãÅÒÞ÷ÂÆÒ¾›×4å=õïM»F~ˆjOkRò¾ˆ’œÔV)9"¯ä¢FsΞˆR—­*ÒÎ'tˆAÉž²^¬³[ÏġėråŠ~j}!ê`8ŠF™@ð¢?“Ó:‘â2z”LmËútm7K˜=©µ¢â)³ÔUÙkCJmé)Vj&·ÓЀ7BªÝÅx´÷tˆ:cȰö°_Ût®¦vå¶·pòF¯zb­Ê¾ ¥8Q¬e± Õ2Oj˜ið§çÞ¦ ̼ΚQey¡ìîÒ©3¹6êή^všúÞê2>ƒ?aÓpÒ¹ˆpU¢‚Õ®¼/’ï´«ÈŠkQY‹U`󘩈€- š‘÷*@É¡*JÜü–OÒ“¸m°0ˆ (iŠaaHÅ&-,”¨™´û­Ê@u™÷­4¼”ÚÓÉF½€OÞãR·ÚbêxÙÈY¼uc´c«lÇf!¨–âÓC’RUÄNÏã™LWjd§îªC[à±›“Ýö§/V-Ejsº,¸ €L®a¤sMÓåwžBæxGEÈJ¼2wJ¿‡|¸èk˜2K5†J½ êÑò} }©Y£+»IÕ¨6¯ÙT½šCœ æi}™“&¶®Z>WS„ÏŠ+É€riŸÊŸ;X—M”[}E®=èòä¥ëËœ 듼‡ìÌ ú{4·Keã•R’IBÜw¹ä¾'¶»ÝäìÀÖ%‚o=M¶”¿?0ŽGa=’rÅs½eÅ…ÛÁ5‘¸$³<Ô" ð.SžFdmìø^ؘ‘âÖ©P¢S{B€Á+Y_j4Á‚@™;À“Ì ù§æ¥“¯ØŽÛú~%,¨!g—_Á5Ú=°ñ•bKÁ9TU·ã¨±Œ‡³;JËc.¥€«LµÃP¦zt´Hbµ7cu&Ñh!W4=oÛ$žè«.ÜiNEoó¦­¶N8À —‡O`ˆX Á,~6QÙ~Ö±ú‚@¦‘5 ”šÁŠx¨ ‘œ†ýl鮑!¥ !y^àï|nF{}ys¶ïùUí»‡yB†£PÒäÈz¿ ºÍò‘k/ÓñÄÞfõxÀgóÃSS¢AUTÄÁ?t]=©ÊžD<;‰"²T)×$óÈ®#\vlŒ¡Â®²ÍeG¨T.snò_2yÜAPhã¾ïmøXÃr§×rT‘v°³.9@ŒÊîQRÝHFL*Œ¶KÀå@ú³ÜÞ=´x~6Ç/öE®¾8¯Àkó¼X )ÍN}OKáæ8×ô#ÕÁCØrFR굋4Ÿ¨Nó‘³ó°ñ .áw<æ~D4à©2ܧC>ç P\²²@°‰¨¬dt“˜Q²ÎŸŽÁ ³úÞT£‘Ýš•å1ìÓ ”ž·)Lœ]¯‹pv8ò”²Êq¥¨ƒæÉ·cZ­{•[ ¾VonÁÖ…¼‹¢Ï_ÇS’\eOòÖyè¸AÅJ”6¥ø["Ö÷Nx'Œu¤~z±i)7–VïTãñ¨Q3c³¨Šî;uPQ®ÚOíRÍC,<&Vý¥¿çñ,jYŒÈ44Yd7ï-ƒ÷vpXx7ägʩ٩˜t6ÐRC¸fªÛ¥ÖFçw5]@*Ýšž®–ÖM ÈŽ JF)'nÝô’TD²ÅØæÍÚ°Ê#xª¯R‘’oíZabm†Ý±å¬¦_ävO $·P”F<활Ê`£è\(2ÏE°i§ÔþÙºçNKYH|–ñ¨#¤ú$(»JÊãÙõ%C35w|:5…<ºb‘pol‘Ãî…ÎÖô À{IE}=.U~^Öáü®½®OŒótòT¸ô&àµÈK³MqCªGàP—$ÇóÖº¨Gq [)$tDÇFˆÖ‘¢Gkt°²Ú †já£ÙYjž_<@`ç&Ù,&m<*Ã#ëì 3·XµKLñ8𧆚“ËfÛê€öhòwYHÜ~d9^wVÐæöaÛ<+˜EL›“Už-âùÕ¤p c/MéƒUVU NW”ÿRôÍ#³ŒRx‡CŸ} ‘SÍO”ž]SÊÁö¬0’ªãчÆ%DÍ6ì”f¯À“UºT Ëzðb§ãK1ošN\ª0Ú—džŽ'9cÿ˜Cþ|R¨½kô±|ô[·ÙûÆNpVXÇêûdÇŽü=Øä¨v>¸X«R^EÙgetêîÙ«(ÎOˆc¡hgã\£rœ§rlè°*•éB9?ªÎ z)ÛL1™ÍC¦q7n”R/ÉéÛ2U˜žÅ£¿x-‘¾KÈîˆ8Yo_ðx¿éùnÃà’àUx$^.¾Ó¡t°"àZ>ôÖQÂÃÐ0´L=-+Ä­;—÷æÜ|XŽƒ`_«,²¦¤ÖŒæó(ÛPuf-޶Φø@‘gâ%pµÄÈZݨ VéX¥N¿ÙzW¢=Éùv ʳÇ#éÖΓºn2†¬”§±âÕŽæsbÛ–¥®Àj¥*Â!çÏg-ZÃ9øÓš3e1j¬ÎvõDT‰ ÃGIkÞkÎ!HJÄÉBR÷%XIJZ¢#IƒEê+U|ÐZ2Å¥©æ£Ü™ÒY¼|‚ªj¦\; WuòAÉãG¦£Ž‡²Me•O»í€FŠW…%m±I»½GéobGÂØ}°¶=»ª—"퀹ӳG~Vð)I­ ] Z©• ù{&ù9ÓNÒLŽ®«7(ÍpŸ‹Ú¢m ~fý ‡ÜK•‡h«~‹ÄMžþ¤¨ðŽH7õÏ:VjŠX8å€ ìEV ¡]‡p @DåU6l!R™v•< ÐY¦i„¡«™¿ç±4·—œ½Ú-÷>Ø¥Û<‹?®%æq¬ÁÄ8= ëÊÓöÄÖ÷:‘_BÁÈ*œÎ ‚kÆAÁ˜ê#xDI¬œÜô„e~™õXbµëpqœ< Þ1<=À]9[ä…ìÆ3Èž¤)Ø3t˜PåнæÐIÀÀ›²æï*IJWÇóDÿfkF©jR-Á¢'«i1K6Uc½¯8@)‘íˆóTkôÑꪭ©B|€^e½}jík……²Ó‘½9×¹MÐ|írÄI{íplž±åK%å9Ú³†™ï©ŒÛ®0»V„ìÉ®Rc„zʹÓm¡¤Úu|=[ ›3(Ô$›5×¥¿Í¥Â«Y‰ð”÷ÛãU)ЍkØmy¶G‘FåL@KZ™ÜI±zxl19B¡º= /s‘Ý32U(Õ¸tä’ˆÿêßèfnrhãÙ—–¬êxåLð^M¯KvŽô…[–õ).gU-â¾ í¾®Ýû꺙³.;2ª%„Ê}ðÀµª…¸k—”ùž,‹¼¼]êžËCÚwçhŽÄ~”OßõMWˆï½æHyèÊÄR=•ëjûsÞ·jO T½ÝtPu\d©ŸÆÝâ Š„È^ƒZý—CI”<½ ¾ÜJ;Ôìªê`4e£“!l½±’|* ÚS’Ð¥TPlit=éuã¹N"ÐÍÊ÷r]—d¢8Ûfh¬$ºüPöµÔTipß´âµ»žu²ÉÍwàHt8«™•£±Iò!»r»“lŽ:oήpG*à’DÄ86uø5‡€Ô8VœÚT­R²K¬ÎÎUÕòÖ%ÇPì…*5̼Z¢ûØoíÊXè]¿zÊp«d5E†´©;'q^9pªP´n¯ÊµkÚ;h |åà%xÂvzš´ü,Xw²U§ù¨£« Mv¥A‘ZñªK•¢|é2ü››æL²Ðœb ¦£¸#¬{^Û´~õHKîÌÔ,èh¦~«CI ˜]&DSîÔËKµú]cêqò޳¦ûð(­ A4Æãž¬JôT¥ê ½¨Uõ,ÊñF'ü&ÇÇyOlBšÉÝi¼ëüÅ–DÝò\“Šu¼†z¡ˆ§!\›Œ”:/iºlOŽÐG5¢qz\úzT0lm6(Ï"ím%NB0±gc»D`œŽðË€mxœÅš Œ&b#8º‡&‹AU1ªÝAs”‡\{°d´]Áìb5UÂìÚ`,Îx޲¿^SÐä9Ë÷Qø@Òõæyl’´š#!Û°œº”tyЙpGTë­”’goÎ4x @õ·)ëCü¾cÐTý~–¨F'¿HLOXyA‡ªÌ]%qma=…¶­yº°â ÆÕ"­Ÿ+ÂÚ»å»Á“þ²ÏMáÛt=í2JjŸÏØŠæ ೆi²::êÓî« +WáÙ5Ô›‡U¥¤ª]bÐu ñÖ5𦠹S%8&½E% Ö¥N$¹”û¸4Òˆ>ãS|–=õBWjð!z™²ºsò¬ã[]zÏÜ»¢¨» s…‡ïin²BÁ¤C-æ:60>µ7Þ¼ÎþÎÄ]Ø$ÏšÊ>m©K¾QÙH^à¦ªm<Û¢Û©Ãu•JÍàûªRº ™W…»óp4U¥ÂÄã̸ÄÇ9¶Y—ïí+£ Ø¡ÌÛÉ–"~'|I•GeT(®eÖ.UÃúhOÎncô:ÒÆ·*ôn,"²’Õ)®»³ÓRÿ&Œõå“¶E6–ŸÉüaðÙÉq3OX¸Ÿ¢È†Ñ’j9Ï’¿êöxë²Ï6cK4å¼/êÂ*Bò¬¬™‘ÍÑÔ±ÐwŒY¸ªg2¢/ÞQ‰½XÝ$ä¦ ¼Î$ O;4Á`•öš<<fÃýNJU°ýˆR̨ۨ`(›©!yCÊs. Õ ryÅ#D³%ŸOìƒm§ìMò¨šLs«&í̱u|Ï(‰ЇR"Z+8Ö[–õ»Éù¤$©66vsç©=“Ý{~ÒY~ÈáE|kH Ø¡9¢’oqy9 xD¼Ðøèר¿úDS}]‘9¯ûj°¥XÅ—;é]ѨX×P¶”o±®¬1Ò#MX®ýðå\¦§/G€Lp;Î}S>²+3ò|Ǧc×]T½fil)³‚Z¢Ô[ÇM@¹>KL)تÉ´€ºãñÈéÌd j2}kp¥&ÌE¢¦Ñ"éPàÔã]ê–çKi¬½ë® ¤ñ'¢L[/Ž:òã—n:~M›Ä² l8V}k,Ó¾¥«^¸ÄÜv£:Õk£Ê3áe6ßYU‡œ„ð\}Ús”Q¨¬¨”ª$ ź‚§ûª[fX²ÖÑi²øþ/þÏý€ÿ2>à‹¯Þ½ýôùã¯ß~ú‡íŸÞ}óùã§wÿøþ—ÛO~2>|9?~øü½ßýýû~ñó—çÿ¡m?ùoþê¯z}ùñïÞùÍŸÆŸ…×x áø™eÂO~ò7ï?õîŸ~ü¿÷é›÷?üüGÿþ|z÷ö3ßëo?óc¿øøáåß}ûÕK<^bþy,?á…ÈÔþé?~úùKû›÷_¾üâg/ÿîã‡wßl?y>~ýûOïÿþW^Ô?ý×—?ùâO_Ø+åÏÖ¯¿\¿~÷éýo?¼üâíç_½û5ñ‹·_½üõÇ/Þ¿ûüû?úˆ?ùoõùó×?óæ·¿ýíÏÞþú›Ÿ}üô÷ÿ¯?ý³—ß¾ÿü«—ÿðî›wŸ~óîË—õ@þýÛ_¿[7ö³í'/ó«÷ß¼~û¯?þòóoß~z÷Â7¾zÿÅ»ßð ß~øòݧþöË_ÿù_¼üå×ï>¼þð_¼þÀŸ½|÷h^âÏâ÷÷ÝoûAï?¬_~ûÅýõÛ¿ÿáï_~ùþ«w/9ÿâgŸ÷ùÏ^Þ~øÒ|ûÕ7ùý·¿yûþ«·Ç¬ û2¯ÿîå-÷÷ÝÝ}óŧ÷_þægß¼ÿÊ;|ãǼ¾ëçã¯ýîÃço6¯¯¿ÿôî žúï߬×ú>þöÃ^ÿû/ßøò—Þ—ß~ýæo?¼ÿOß¾ûóþÝOð­í‡ïýý»Ï/žPÀ½¼ûO/ï~÷Å¯Þøáóû¯ß­Œ~›ëÿÇ?|ýñë—_r .½wüŸíß¼ýÍ»—ÏŸ¾}÷øñ?üñW[Œ/_¾ÿâóËß¹@·>o¿ûåë×¼ùOï÷ò?^| þï÷ÿífm}ùñÃW¿ÿáÇ×Ë}½Óï¿wß÷ò‡Ÿíå§$û—ŽüB8ùÇ?þõ¿zûþ»?~øÝ?ÿðË/íõ*y<ÿt¥¿ùîµÿÉw;âO_þø³þýG–ê»—?ùaeÿO!…/øøo^ßëWþ¥eí§ü¬ì~=óÛ¯¾Zÿú'þóÿæ_ßþúýW¿ÿîßY¨ß~fÑÿâ#KÿÃ?ÿÑÿøîuŸþâÝ—ï¿ýõ?ÿ×?ÿü–Å}øû¯¾ˆï¿™ï÷îË¿zÿù‹_½®‘×ïÿ­;ë«÷ÞýÕÇoÞI^~ RøgÿÆvúâˆß°×?½c·üñŸ¾øø¥ÛjOùåí§Oo¿ñŠù*½ü!²ÿ¾|÷»µt_ÞüìÃÇÏüÊ ·÷/¿üøió}žùåÍ×¼„_úýõ­z¾¼ù›ï¿jååÍÛ¾ª/oþÚË›/¾ÿÊËó後/oÞýèËýåÍ/ô%åW?ú2½¼yÿ£/ù;_ýèKþЯø2ò‡>üèKþÐÇ}É'úÑ—|ò7?ú’þü£/¹½oørç£~¿¾ü£§üÅ·Ÿ>\Ö.àüÓ×+’½{÷»w_l½õœ©±ú=¤Îœ©¨HåªÔ=‰ä¥Ú»u§-à’æµêÁ·ž³ªrßgqÄ/6gt÷Hñ¬×^ÁZÁâORÔÐXñT8žâç°ñä´ºFj-îKR@Hý­°~vPSÄûxtbi‘ 0Ê»®qÓâÐ1~à÷=ÏK7­¢5l âÃ]W9Ióg)Õ±uù<`óÞS‚ý:¹2žU¤­v^&Å…ºLÔ4À[Õ÷ú#¯…Ò„WJ(½Uî¶!Ò³ç÷T£N’­Êï\“®ž5ó)p¾}I›×ÕŽ¥×7co[Õ‡;/sX­œ))öm¹öe_8XþØ-8¦L€S{»æP¾¬Z…ø)2©¯NEZÐY í—G“%ëȺ†)•ÿš,r*Œ’W ‘ÒF‘©êE±¦6 ‡£ôà„æ`Õsfù›¼ØÓqÍ3#™ ¤?Æû¦îºÄ²[w³U ;—®•¯Ã§»3Júzq­UuWظMÉfÒ¼Óv;'ÂsYËŸš‹òË“e2…Ee¯²§¥ãLÙ›$7+ W45¼Ê¦BÇ£¥òLû-½GÆuï6ªZ†•š>Ü‚ÜS*éSÿQ7©:À…½°S÷*¤’Ms臈Pv]˜’Œ«tR;MY‘ò#Šùdkøš}Ïô¼ó=ÓóȇMû ™Sùç 'Y×’[}2úN*³]ZGÚKÙd-8;Í&q8Q|WåKøœjA5 uè½Ü„TªÊr®£'¹ ¡PƱû X—•Üb¸šFwÃ)Ó[Ù1§—ëÙ•¼îcHè‘ñv©ýUûumN1%I ’IyQÏY–¯NÕ=µû4óìM‘ÏÖlGå(žQ°”'Wû¨À~k{Jî O{åíßéÖ#B_aÕÛvÏÍmj…rx€qmÒžÔÈ·µ§€ë¡zlÂ{S†I’ŒôñÝÆœó_š_¶qÛW¸Ž1ÏÅÿð”y|uk­7µ‹—"‰:ó6c¾öK@â~n”‡Œ™ÚŸsã±IøcéÎt?Myõéã.Zº5Y¹¶ÒÂ2K,ÊÈ$D$¡ê(YʇNlú¯ë (E+8E²ë‚ŠHmù8º~ž—µF$aSR–×áÉÔ帖Uú³²ª]ÁO^§×N-+n¤‰ÅéЇœËp- y v‹Ãr;"òô{—vº¬cmš¿7[4#ÃJ\WY5GS꿽W¿%©8H *7Åë‘ùäQ£ìq¨í’ u¶³†S_.•=xC«'ªb\Ï9dwª%âk¶i‘òq^køW¹Â±rŸëww®y>ÙÙt‚’ðDG3FWÕÜk'Ô_Ü"‹¶l¯”tÒ&ï°<*™FÓ{8–Ž®KÍVÁ¡üQRi»s_”µ¾xú-ÞI±p ŸÈ„yý<Å=åQ5Ú–† Íö‡Û%|D¢ðVÙ‚ýœp®!IžT?9d•Õ]Í€#¢~Ù/§lùñ0|hw÷S髽oÍ>G;Ö Ä10›Y>l˶VÇ*:3R Ùì࢜Ñ_`ÏßÛ¹Of•nU}qhÒF„œrâ“-?¾G<®Ïe¾JŠf‡O¥$ùErì= ^܈¬fÏœ÷¦A,‡ ¨ãJ(Îaƒí䬳 ˆs2Ú7²û3¤2Þ×(IÍ(û8n-»ÃÏ»Û73µC<ó­{=é× Ûܦ…îEdÁ¥¿Y¹NvÛéŒÀÔ µŠ»“ñGæC‰áÞ‘À.¥áM—¤¾Z’©«Š<{½Ìš¨U—ì}MNgu)d¥5²tëË£Ç5kÂIÄ¡¶1;@–{3´·ÀZ}ØÏË *(Ï;@K)l‚) ÕÊkTHÓ†¢Ý앯P*IÇÜL^¸{eùGYlwÛ’‚7<[§r×QC£­Ý!×Sްc—v‰Øç¬„5bOIB]µ¤¬uã~ÖŒ†i·ôÇTîG…ÛRôÐ)W‚kr;ïÏdà H”—'ØæíO%´Ì–”YOQgWüʉUk 6¶±^g• ÛQÕëØ¸U^-4Èð;mZ(¢Ùu÷c÷kŽ‘ÝDóÖ˜¹&¥t½O®ª>j|±Iš¾-õ…aãŸɕ“Ñå…óè¢n!C%²„C¶1ÀJÛ´~p„*Ü.§IUC€v‚”‚ Sn mYEn朖´~ÅtO{!ÔÎʪ©,¨{sÐ{ñ0‘Q‡ê€´˜O¤!œöÛ' ÒÍú»«îœ•o²éòðØ)ò¥Þ‚4oEY2•¨çÀª:¿Mª¦Sä¡bHÖÝô!±ð¶¶NRP?<£Ú÷[>?×2ü>ƒ-,EÐgV—;kAy­8õêvåSN¦²tT30%?`…Ú@ >‡º UÝt¶œÒ¤á¢hPtK£žCaÊ$ãn Ø!OÝà×:AþN5,†µÆ¨T‰¶;‘WÚ4º—‡¼&-•¢Ädn×­¨õ^ή¬iÍ3f-°Ø* ‚<@(Y 8í¢u¦úr …Äðæq'‹Š^,bÔ’ÕbCC-mûšâÚäãÍ%§ùJÛW¤«Šiêð¬Ç0ï‡ýUŒ(úíÞö±lË=Z6^›”e--$)z¸&c‚•ª/¥XB¨,þèPs ¼ži BßæƒJ?Ӈĕ"Së±x<|¤œ e¹—îÝM)¯|¨s "š±Iᆧ2k.ÍIvP…ÃÈêWÚWÜŠuÞäN™†ö® [»±Gßq‹¤´›ø´#ðÈØqV„¹°ÌåªfŠZ·ŸjMèbNò-ü'¨#òr¼Z¹¢¦0¯CÕZþÀàG–|~=×”Çw*yÚåž7ȃ–£x¤Ç-{Ã)œ5J–XYàý¹¨4Üe3\»0Η[h:#Qû“¤¾G ðœkˆJŸ#â³4:De—JΧ\ãdÇ7«'Y»E…e•«yËQQÐz·B…Ëc‹°zôôàâ7jEÚäB\ƒÌ4ÚbüÈ-%¨š`Ûï½eezðQ‰KŸ¯n»Ûav£bçV,Œ‘è Z)øR— wèhcUQ6(êÆ „BÓ•íù§£°0·¢s`;®2¯ì¼¤cäQ]hV”ªãŒ±…KÁƒåÌëŒÝb³Ä¶Nq´Ùäö¬ùÄTƒÑYéµ2Ûœ·¥”rhÀyt>Lÿ­eÿJ"Ë©šÖÍ*H‹Áq—Tñ©õ‰~†û~.nYóC£=[æGï[uÄxs(ꨊ ¥6!8ßçb˜LÅ*I4üA9±êÎ:}îháÌcõPß…)šÞK-ìP0ÖôSÎÖT÷õü¦¬à(‘r5Áê2¶É 1D})Ë)‘×ýóÈc*siµ8§õ8Õm :»Îˆ @Ùp+¦s£"3CN?ÕÄ1Tñ"ŠYæ—¼äÙ¨%bð`G’60KÑ å®Î >ÝþRu¤KÁKÇVö-6¢AÔ b›¦}ßûÛ¨K’Ê(qOéKZöüT‰a›kfH@jÅ]³<+¤e¨¾|DØÖìb W¨´±“=UT}sºDIG‡ß<òñÝÚD+úK$y¢ì{M#Uõ±Ô$Œ´beÜglQLÔ|$M=SKb9—D ¶GTÈr¢†RÎwó ž1))\)8H®—>¸ºäÝùöXnU)$ââpÀ¿)A@ô›lÏódûñ NÍ´¬p\UÔ8qd_ß6@`kÂÿ*‘ú%¸‡d Ã]o ˜:T7PéñÐØè¢ lY¤ÿ>{:òÂw Egx§~NDv¶ô&GÚ“ž[™*U3øuŠ Ñ\t"€DóèK¼ Ã<‰<·³•ºÈsåJñÛ¥,z\Ã˪øâºEÁ·)L#2AŠ%G¼§cÖûÍU?isþqV‡4Ïí‡B°#¥Î”Wu^Ü-á^Ë.Jx/öŒ§Œ°3“\ý)ö¯@ËÓMªŸÄ›’dÉ›ñí«ê'MFþÞ©A{3çÌÒ«˜šg®#=t/g¹ƒ#<ÂUD³^ºþe9{6—žÁsºåù‚Í·\ö&±Åµ|;œÈ¢¬[IºÃãU£#ò9jòu8%O¥å#Ó @Ëz£õ Rëá ‚ŽD©V(.kÔsKg§À‰Îx%£lsn€ <êxÛhQ #gëxu‡ø1ÖF$® Ál€N±¬þC¬¶­8#ªË ºd¯]2üg! [•k1¤ëÊôtâR …ãZªæ{a‡kλkË;[Sn\åvžè©Õõîñy+zãpM{Ч™ KöäÉ“=Ðì‡T+vÈÉ=IÕª—®Ñ§"ÒÜ|{©dU a,'ˆ"a]ÇÇæ¼ÌͺKÔݧÇÐlµ»A`N‘X4.$‹I)Iî`…ìˆÌ½]úUÞØÉ!îч’Nš'­æ»8MëjFkB]ÌyO” bƒê¥ 5Ãä™kz|*Ic Oé]`DQüCžŽªšçSAGœåAÚ0ã)ëœèI!kE m£‹–':\ÊÛk#ó˜@Ù26 ‘EÇ!âãFIÊÛä‹aŸˆ¿êPE\õ¥ªeK2Y=ñC¡Ó¬¼s"쪰rgE·#åÅôñõtCÑ"Š ÉÒಮ—Àq†}¨Nn‘á¤GY:<Å'¸y+Af%‘–<¡Z¿èÆÞÅ@nô»níåý¶+ÜlÇ[õ“´Q×{v%Í2ehˆ¯¡çf³•ý0ä ò"ûyV¥{œ%vò©Ú¨†yˆ€O…7e7÷\/õ‚Äßlt|eêç©ÿŽºÜä–fPñ™G¯-ºLS6•êT÷QDCõÙ$,dÕÔ >X$K¸×f Ïjÿ’Ùn6À- Óônú=‰NÛWô*I“o£…Ð`µQèkáPpWpKaaE%£v¹ÿO`P^šÿ³&N‘‚'«þyê]Þ–Í¥üpâ4êd.Ž`ãg¼ÀbT.‡¦Û"°)¯”xËZ ºzÙtÛš§¢TìÔ¬:ªŸž7‘ìâV èÑY2ÞŸ¶fAo^Èó%\CÎMk6[©|ì0ˆÒø½mµrï¬R™uR$ð¹ßMîh4Ì2b/w=™ (/{@ zŽT–rfãöÃοB`hB¼\u’çU6ØlïP¯PX~'c¬ê"—ߢ"&š? î¼p@–ç¿ÔÜÜ*០CqlYiSË ¢jëQxÎBRïúRå6hie›6èÙV¥Œå•äX|7¥¼<ª¸k€åúi¥&9ºP&I1P p®PF&<õ‚ éÕî9)ÁJœ»7?Y´AŠy[g-š'k‚|È›6½Y¹—<&^<‹|×â¡ HL™­ÏW<¸|²EÜeY®D}íGpÞº ÕÙÁ¡Ìc+˜Ì“l޲¾Í¿Ú`P‚yV‘ËUBQÁS]6…`<ˆ·3òŒ©=/[a³&±ŽÓ4G ÷paÛz¿ZV-ËçeÝMçV'aí­ÂœxRª5Ÿ‚­žp$Ån¨R´êSyâ´,m:òªõv†)ÅrwϾ£¨¨ Óƒõ’ýØ«Z·±)Áü§Mú“ŸÛkINæ<)DK%-µÀà%lÌ-/?>wyQ{7NOçwgOeɪz'ºÁÉoQ:˜°›ÍÌ"åÌpûHu$D:ø’‡…zújjàh¢µNÔY¿\Ñš­é°,ž^ó¦¡& PÝ"®"@ž~_>?Åù<ëÈ{·½¥ œ^½ÈŠæ' æe¤®Ù}•òHÊÔQ×PM“­å ÝêÁÉVTÚwR¤ÎíÔ › ¬m‡òH õ¨}´‚Í Ò§§j:†GöÁeàä«ö•«_›¢Ý& }‘YÌŠ†—¬ý!!ªÇ°G´D×tgÉíË2dzôºÕA-èœqÛʺ8yäµë+tjI¨Ó:u«^‘·Ú*;ì¤IßÈÃk$tòXyBA~$à"–ô¹œ{Ô'–IÇK\ ¤Q1ÅåéΚUFîÖJ0SPx€}ý¯ìýݶn=v‡Ï«¨;(üLL‡˜€“–8IsœÄñ-•BF%‘I9öÕûy°¨ú>Ê¢-³)-!Y¤Äª½÷Zï;€1z£w.¾)ÜÏ7›?ôjåùò7+è­dÚf]k:3«¡yµéc´áÌ×wäóíÚj4§»ÿV¯‰Xʵ<Ú,ô-Ïö I—%ck V ƒ¼:¨$h­«X™ ×§•.U*›¿€j`eL§‚ÁJ¤ÆÊke1Àj2~”»ßÎŒ®ÞU§“ÿx"`dõáÔÍ T^+hê#>ú’f…COŠgjOf¨¬iïVÊGÏËò\éLBK¶BÝ@s«úíQx<­àñÞJ¸ªÕ£/ÞwŒS„>¬œq@á ;З¨¡`¹6⊔ Án|¶Æ1~ÌÆ‚hþÆjN2ŸÝ‰#FeöOÓßeÖ–Œo¾ ø¼ÏlªÌcIL­Ñ£67Ë]fû@пBâÆW›º'ç þK·Ñj݃q¾ä)‰vW’T‚/$ù*ƒ7•tÎ Ü<ñœ']G¬ž?g†ˆû¨äàœ"mÝxBó,uðëañî#ý‡¦ ¾GmYˆÌ {4:‡[”zÔ´x%×µn•¯ dÎûó×X£¦¯m®žNÛµˆÑ·[1B¥67öª²;ë w6‚6glŠ–Ô#š +’ ë‰Hœ§›œX ¾½„ÃyUÍz›Æé•$Ñg!©jT(ßáj¦ðŒ’ —f¥i©¾LÒûG,9Ò4ïé(ÎÅ@dââ¬+ xz©ņ.•ë•ç¿,¡¿Üñ®l©w+T|ë¡»|æE‹£g+L!Ÿùl{‚¸ »“n ĵMç1”ôUlºU• §ëYXHêÖðH€ IâjÑr8E[¶BÑeÙž¬¢Ñîý9¼®òó:F*Ú Ag—ïSºÈÊ©ÝEÑ  R@l‚Å4ð@‹2û`ÀÀ–Õªäܧ£Xq2Ù“§®TÔ󩄯mî}q%£ðEÉÎUÖÊ8bxϱ  =*/——·ý)¼Bz·uØ@òºà$ä^n–âñqZxföéXk[e™Ïó2ðÿ¡–0j›áU%~€º-¸vR……ðÊmÀ„»=”ì¢ç±dP¶–‹ Άev ¬ rìmÿ^ ¯’?ð4`©ßšÊ–ZhL^¨ #ð'=â@¶t5³yûÅ桘Ãä ¶Gõp¥Û÷§pŽê(ý9#;Ï8°>ßëyŸ‡·(²Ÿ#‚õ2ëØ!A¥üëì>9¾š½5âwÄètͮꊵ“Y „ò†âmwþ1C™HÏsUkPƒbÖ¸ÌÖ>Óx¸4/ª1nð\à[¬] ÐBÿ”‹Êî<0$·¥y «H¡û¨²õOÖröú޼¼¸i«Ü]ô.Éê&öø¨~¿žÝ>ld6Þ•°ñ60’äJøQþ5³á›ÓZ¸ê¿À”uߊwÙ#³GñÕVej¿l†Qšáò ý>wÉÑÀ¨Ž£GäVænhØ­`…!ÂêHÖÇÇio>>?äí³@,ñe+|Ϊ'M%e®Ï°Š_iGµ{Ê+ Y¬Zßüì6ë7y¡é¼¾»AeÄNþ`sâ±=š$.M÷¬IñLcEÝI¥DeÛL‹7ÈyGuÛ·`›s;AE8…Z8–•ÆI'í±â¾«`=¬›«Yʺ|J¨¾Ce@jÔËRs g /4— ë­&rî‘x‡&\ÐM,é@q^)âg,i°¥¯j¹ªÒ´ÏS·ö…°§Âá …à—,ý}=¶ñ/9$ñÚÀ–åÅE7“dÓž&ï9hëjÑŠíý#¬dÊ£õÆ´z”Sñ®;›âÁm#þz4¢f‹ý‹®DKê¼UoI¿*ú¨¢×ŒB³±¸=;µFÓÑ×F52¹A37%›†ØùïÎYÊjÙסˆ’Êoy~OƒjÈšrÆ¥ÆIx<ñ$ñ)Ê*ßwƒSxÆÐ>›·ÂrÆéHe}ÊŸ‘ÃÁ±ZPeùzA¦ƒ9cU¸™'8z©«o+=W"|¡¥’]#]/kEîeÿ^[¾.¯KAr¨«ÆUìCŒ0êÛŽoUñ÷X§–³íWšA9 Ҩ@ÿùêÝ¡`³]ÙŒÝ6â2„ù.R‡–÷/( ’TŸƒ>f[¨ÆwG_“zÛÅÒÓØVþ^ýxÔËVm;M(E‰ðrd¶Aûä l+ªDfk¬l¾ŠEj첉Í8J;h/(¨u¿z&ßÂÍ~óЖ0¯µ½ãØÈÙ+=êÕ![d  ÎêKtì%¤Äf€¦•©ûLŠ(v!gæ¡á1l_¼ÎÖÈN^²4:÷wRwZšWs Ÿ*Kvxð¯òtÚVVã=¹EÅsoÏ‹àvNF×ÛMÁ^ÀD¿Þ£Ûê DNBGRÅèõ©©§¼)Vm/~9^”`õø±[¸çõJM‰‚l÷Ø~”r!j®;‹%TsØâ#woú%U%ÖH2ˆ§ÇÐ<ë ©Û«­D8[JTÚß)°_¯žÌzž$õ…º>àdÄ‹ËQÑN:¥-öÞ?÷vDë“^fca¡¹­G†¥B>Ô¾”¾¡f=÷qözÉM_Ð`°ð²Ìrù±ÿ€‰$BÒ§£Ä{«* ]Øv™J¯OyM’. °øKÕ:!9ØwÈ&áÔ­0]e]÷—¦E¥×W7ïo^dØßZF‚W"ÌiªuÖ:ÕÊ®êÊàQ.¿¡ŒÝ¦¨ñ#­¿/O øKÛì5„ôtŽÝQ!ÏA»3-?+”‚4ÃÓÁãÍ2\s¯ñ ¦ã«˜Ô¥±1°šn”¨:d%nw0;ì•úŸÆ4åv^IݾôaÓ‘(»½;êJÂë°íË 85º¼J. °Ï>Qºòæ_UÔ¼š¢œ¶Ö2…‘uë ÉcÉú AÓ{DêçªsÔ8ìêbï÷”ù åÊ_…ÕŽ&\¾ž¬\Ÿ¨í±ƒIN‘¾^?^¥½VqÇõh<$áiJE¢sÓ=@šÏSa4©rî$±Fä*ÚaT—Ÿþué¶Y^°mb ¾òóèD&§“4Ù%h…YÚT¦Ý@µ*-Qª…tö‚³@Èè¤L²KŽý7Yó4 ;©jŸ®H}•·J°?^5¬àIH¯õy”³(rðÚ³ú ÜöIÚ,ëµ» ÚÀõdØaÝÂÏì IfU „Î~9‹ìÚ©³¿,=þ_»f¥"€äZzÑTI],p ë…¡@ö?[Àì86‹U7ã®l”ŸŽ¹ÄäÇÓ>ðÍZSÄ–òq½æ6¢Ö&æ‡ÇV Kßìy=X»}z$*}Lâz¯˜£­lEêÏR,Ø„œ4¦åÃì—sÀ¶u±M¿©ÍQœÝÃFçE×Äó=)^8þ…¼š§0Ì]ÜYGHb×­F¹>L¤Síä¾|Á|Oi›äNÇžkù%¬<º,Õ“6‘Û"atm{‘4ñ¦yÏïe 0Ï­ÁfUzìo«ª\¦ã=Sæ95´Ïô¹²Îß Ö’®Ù—>M!²¥7¿&/hߨñ³WŠô]åòø.µèINÈ9ÅO<ˆ‚Ï—-Djaÿås. å¹ˆO“Ýcäæ “FÕcéÇ©gOkM—ð3fñb”°墾e¢’^Ó&Ø µA8nÍ:V4#"°¬ØR€"ÈðZ‚µ–¥i´Òºž :%w”yµ W7Ùå×uy"&®Þ‰$A&ÇèÛÞË\ ZG¬;à{ŸŠ¨^ðÀBŠ[©™ö}IT‰·m.$BèÑ3çB¢”0/ ^Í0&Tû$¡ Ý…1¹ˆ~.ØRU4{­FlFPÄ¡Éwo§¶'aÈ,h í9ítŸèn²öÁ&å²g ´À„hФœ«ûLÐJXÀƉdÞ"‰YQ㘗Ջ‹jO<Äžï«LæcÆí1kœ\gi òüêÜθyËÁuÀMÕèDñË#ßøeR¥ÕJ¤³Ÿ!×Ãb6œ)!‹ä­ïMâvéÓn=Ë0N࿼z°œÖ°ÒC9¢bº£DþùŽÃI‰lÿN»,¾vý£*ìƒæª†®”ÚÒkgî{{@î ­½4G5oÞYÞÏeÙÕv½lC}e¸S5Å$&ŒÈ†!ƒ}]Û­€±‰Ÿ^Ôª Zÿ¹•ÓJï#¹Ï‚*ž‰uÈÆ9ƒ’¯&éÃ%w±¿ãó¸ó4“ÜÚFƒss©¾jM;nÍYogø²$6¬"è%Ä¥ò¥GeÏü@lТ˅¢`a-Jt‡VnÛÑÞ~Ê»ÀOxü£3|1¸.‰,¯3¢&ðU×µ,âò¹‹+Ñ[n9ÄXž¿I¶‘7H&xšÕÚÔÊÒzNGS»Ä;ÅŒáY ëÕC-Vͣຬ5RRRfÚš§©HYÌ÷Ð0ž‘mÏSLØNš±ÅÊÎuXeU-ø*¬44®Žã.Õæ“¥4B¾¥q¢¶eÑÂÜçÃXRîsƒ² º‚ôÕçw¼õUí¡Ãìo;1ÆÅB´õ¶àÁ²%Ñp}jYë¿j¢ßy"'Ðò2û!ð­|’ñ®£A¦‚ŸÆÇQ}eÆ|  C¿¾­F€N6´wxÈLʹóŸ7¹ñXÌï¬-´"¡däþx„þêU/<Ö`Yý>-†3á &Â’ðøR8/.ÙH†Ÿ®§­qSO÷ôΩ$ ÎuÔVj×máÒIRð¦ËG'wj#¹„DA±â©ªè&G6 läªêú™‘<“|KÐù3Ý—à&9o«½¶,‚q·+rlu"oð×+í²%OÏÃGÁ·Nõ<¹¶…Gµû'QT3S©Ž NÓµ3ÿ{æJèퟚÄ0‹ÂâÐ hxiÌ¢/_ÕÙpž(¨ÐÛYž:I{²`©É¸¨ÆŽ*-Í ,˙­0ÂŽýØ‘{˜PŸr”Ô-vBˆ° îby…·A°zoux&»ÒÄá)Ng |të¥sO·ïÛA·®­_Òåuzà¶”§æA¤/.[›k}úÎwÙëĮҬ+©>®÷q7"í@OYõK3$ 8=:×ë6ÛjcyŸ”qL@*,†àضg½D·éù÷:À’>ëJ ëü˜á?r7O[Z9ûÍVÒÙŒ-¸HÔ±é%,šž;ëkuŸã ΖÛZ`T0è£x4€À^œ è:z@éˆK, •3€‘ù ×ÔÈøãŸH»Ð¸#­ž¯úÓ¤c­Ñ2{! 7…±ö)öü÷óÑ“ü~üú²T„x=·kÆ ÒéëÊq¥!Œi< é‰ÌE z}¨ UÚ6[->Ó=;|繊xŸ¾»ÄŒçÔ  gÎÀJLö|®ºUÈ¢tÒ4Wuµa×qkß¶Ùº¢xùöÌüö„ÓÞ›Ás\ UM3úÑpâµ>v•ñ–´á òƒóº(îÀ®DXó°ÛtvGáWºöÝö€#äbøË.»)I­ ¡è±íl"Þ™‚­-…jÚ³™²ææÜb=~CØ¡H0Z6Ž+Ç"Ocm/¥g hqemñT¤xsš—Ró .´¡Yʹ4o.Už]Â2æç1&k4ø2v?Ù:iÝÁ©šŠãÉ¥öËL(©å»UÚÈÿ©¢Ä”þÇ/; ¡«KZ;êʯ X!i¹ªÍdŸžî&'š5’a#GóÐn¬cPëLæU¬§i}ZN—_¬_ °u}J4D›þ¥¢ Út‚"ªfRRèžߺFž„BM÷uÃ˲åg«+V!¨Eß®gÝ–ûÀ¿óóÎöAﬦ¶<О‚³ ÚŒR[·.l6[從ü©kæÿfÏÕ)^µ 3OÇÃÒ8mt}Ê›®·že¶AÑYMhzRäIý8jq~~.5zyIã\`¬™û¶a=^N?¬¥‹=‡RÜ!H\^ÑQý¾7ìê¶ŽÇ4f—PÔ`%¥ŽkkìÝŸ•6¼Og·¶¸[cÁR¬.žF;‡µ%Sÿñ¶{ÌigPÄëžz¿@:Ê/·˜ªD ÙÖÏ©b¬C­5¿>ÒîϽØ>—&¶@÷h“´%zø„þ¬7­\ž´ÜÒJnûuþ#]¹¨þªTsͧ<»+еÿÔ«Ö“5=1<,«dßÖ˜ÙÙO^OåM–ë”>²Ê3Ù3Iñvº¦Ýl¢Þ”ƒº²÷bqy†{ttðO³âIôzåxÔ(Ê¿ƒ0ÛPxfO^¬] ÐÁ“JUó¦J•‰p¨§£^§„š%Öí±è“bñâ³›‘Å›¸Hž¼•:ÀÖ†v–DP_¼-’±Î4 Óš‚M$’‹¥õèÜDD쯯œ-~¤qíMYw¶Ù#¦Ò³)!9ÍtÛ›·‹S¼$½®¼×t`èsÊ*ñ(Ðq,Š 0,¶Sd pÓÎx†ÊúßÅËmÊžºÕû욀ÛÕ£‚S~ÔaI<ŽÔ/lû½­_ª¼³bŸíñáQ:aÚ$¹ìâõôR!Àªa"7 ûñö=¯ÀEРɵ;l~+ðYVޠĢõÛB^äCVMfÉÔ¥¢ƒª6}Ke.¥¹ø G*u7íA¢¼DBÛ½ò§îÐóÙPTI|=çý©É×ÙúŠ›.ó½AÙñÓºeÛ®ÙW¦aEQ|Kë“pyÜ3¡I­ý} ‡¤xKRAñlu…Ù’³ÅÊ™;åå(ñtÄå=mD¤Ú=nã¹¶J•Ê ôvö—¡[CàG­Ž÷ñýSd‡Cvµp®-Ú¼W{ðÚ‘Jy<$?®Œì–—ËŠ„ÖâÝu–'MÝ'YZL.˜ôü~”qôM½ÏŽpùóÚOLä ‘LWߨ}Df˜WÊÍbì–p¿k+ø½y³vØ­JãÖ ÆÒ§cÛ×Ï2«1m±‚­ö£j¥¹öu²=P]vB0Å ¯·‹>¾þróŠ`Ï×Fh» ˜J\èzn×Ðd³Ï虯qîªF“1{Ì¿«Í*ÆÙ§ÞØÎ>ÚqìÁ?@Á”YmÙwk³†“gS ¥Ð]ãeúJúOvœš¤7RÑÝóër©w]^YU®¬Þ0x’Á±Çáðw•,‘{ðz<›ófÀʪ™~_väÕÂÃA žzæ;»RÒŠ©Èî°íŒ+Lªÿ’,ž|Õfmô¢Qu¾„_dñ«Ð0®07Þ‚ÙÌïóÈ„=S—¨½ä^/-ƒÈDYÒ` N!pƒZßV¾Ÿg‚yTÐÛ®MûØÈJé=X0öë¨`r—7ðT‘tKÜ[mÜpÜ•‘iŽ%¿š$’µ4p ³Z¢ÊG ©³"P‹EðØ^r¢R9)€¹³Â÷±¢;+Ûœè¬SáÞø\àþnnbç5ª=xÓ§ðÙßNòо"U+S©¦ãÒüºE¬mq¯:HU^gô"´UKU£~fµUÇ<‷fªéuV“ 3ÎPÕâìÏÜSR5$’U2´/ŸŒ=Îkò€Á134…[¾ÖâûtÄf±JIéQs‡%ͳk”¶§B¨Ûé09Þ¦<2àn]z«ðæø:¹ÔÀr®MYŒèj"Œ¨†Ô<@e¾§7¥E Û Õ¬íˆO{}Ø;%# ž¼“§”ÓV„ }RMù$[sC¾5£Z;=¸X¶¬ª‹æP‘ýtÄnhjÀ2ÌæÞH¼/OÚ¼‡?ÄG¼J^KÓÁü4†ZÏaž Kåˆ ¬tqïªwK{ÏÈßô‡zt³UcpUg›Óp” „Èj.p߇uGnÄi{šD ¹–>·â±`ýêƒD;³€. O»gÑÅíõl>€ÿ: ‹IÎ3S|B å5¬©¼ßq±±x~Cé?¹±ÈáÛl.¨›>œSékquÙ x‹á£½*y©…ËÆ„Þ;Jd{Ât~ŽxÒ.0¨‡¨,4§Ÿ4åµ’dàT$6ljl—(ws.¼—«íó ^•.ùÞ†­6ÌwÁM[ ¿ê@!Y@™›áùX‡­›Z+ÃáûNzJžëߊM@I€1‰Rœ,Fû¾^c>Ƥ¶^L«o6øf§¼¢îôA…—œ‘bJµ#n7·fcAÊ)HÖx¦½ Ž0SùÔJ-ºÃHš]›ÉQ´ ¢ä«äãÝC}ùn•ðxò¯ Õ€NÕÝa½ú›š4¯^j“PX6·dKF¯}LN㼋—¤¥71îE’Ðü´¾ƒ‡Ÿg'Øõø¨:¼,·ð)¬"²@‡ÉœÇî´‘pCw¾kƒ¸³]å6´°_>¡êkTÊrÁz› óÈgh‘~ÄØnŽðñ·<®êåHìÑ¡c kësÆ6ØSkCiÒ‹éi0Çvøä"¡‹y†˜Îø¦O™í¤u¾E'ËNµê\W{×g—1üþ½”hùS™}¾ÉtÁ”âü·óMÆØ uRFŸhûš>6äÖW Ò;„» ÇLÁâSc.P]Þih“Ò5·"¦&û–â{AçÜœ@Sw0:ÁÚF#ÕUâ»ò§ŸJ¬ËèXS°gQYò¥UôMnh‹\%T6ýkgo.G—CPöò~W\Xlΰ©´G#¿GÚg™9šÊpl1Ò°3€¦#„Kõfñª×S>­ƒ>'ãæjε½Êw(É ' ·ºÅ¼ûc;1œ|¿× ‰ƒ†±lì–«ÄKeý¼†šaÚ€×Xdaæ”æÓ£H“ã•ïèM:-Àtœ*wóYÑ_½‰ÉïeRröÉÕ¢#BÕ– 'QIVË庣3$U€÷ ò±ëH<¢z¨Öç¬ç(û,‹>€NK›Ô‹  -€°ÈØ GâSI]w‚¸2_ŸÇ寪áÊ0‘Á‰Æ¬D‡U¿ÉÜqì·=™oÚ ]N¿·=ÁÖ±”‰oº±Á¬¶D®ãôª¡Í†0ç­m ïü^Uã½ÈŸB[‚ÃÉÍ)ùJ6ˆÆð,¾Í¡¬G+<@/r»mæäm‡Tãµm”Z‰g}Nð€£¯jg;›Ê.$ß2±%î(têҨç˜LÙ¾_Uëœü5z3ý”þ#ONYqK*–o›«ž+&{þû|àÎY]nY‰8ÏÚS71Ø+È*ÒÖ;Ùåm3¬R'å²Sž¨¨Ç³•ñr*9ªßG…ã¡#j@EÊ6O`QÇûN½J}PxûìP›æôzÿ$@,¨­,RVZ‘`Ç#—Õ&‚ü§5F9þ?5È•Øüþã•>¬´ªÆ‚@ŽØ( ÂãšçÓV‰ŸÃºàÚÓ \©ís V.|´Jz¨*´̶NjNµfpа•‚œ ­I ¨ÏaµH+d)[³àß´Éòq>ÖRËV.·ð_nu©š=.?îb‘r^»®` ¤Žëx<0Ø<\UÌsžZ··@LÍll¶Ã唑k}Û²)Fù=Uk¯-|±é;¨gu;ž…oÕ¨:QjƒÏø;ZòŽÁ'ëUà§*Å ü—·¦6”’ ¥B¿€'ëU„E©b‘¾ ÕÛT§ièë² ü/1´]zá@§ˆjÑ=î=5IŠ:¼@› ºdø@Wª¬’³ç©ˆ0ýØmw9[ñdC½™­ö€ÖøNêÿò„ª§GÊáñT 3dŠjBv"˜ xñ²Etì.o™ú²»²ÔX¼DÇOÝGÅ>î<"¡Q²Ï¯±¹!Uw:·yº”B$VnÑÅÌ6>¿Ö¹|{ÜpsÉJ¸¥tYüWðÝn½`¯2ùØîÙÒ<íÈ 0GP»Ñš@c® öÿ»Æ¸ŠÆGš@Ñj UsÝ„ÓY * é¶ãâšðªýl¢ž"óRžYS÷ l<&RWןOmɤ$¢}v¹xS÷4Ò”#3:z·Ž@v;_»sºž&¨8H*Gå3¸pt_tØ¡±2 c1ƒ2U­RKC“”Þ é‹˜øqž=Õ=mØJi ´·õÓ/r¹Úí ͳ¯Øï8›ÊøÐÉÎæ‰å7@š@åÎjN4Ù÷úÅëþ”‡™6™AãÓ1~Å©„îÇ v;’7×òèq\7$òRÙ›\n™ÁW5ô?'÷œ¢8R†j€ÄªyS èMgØIžM=“¤&/‰@Yl&Ô‰G×ËÖ=%Ð$Ç-®D¶w}äƒú©$Ñ4RÐèA—‡—{WgP=^ëPlem•Þ wYíË8œAu£+`’l*ž<9…Q” þê Va³§9žXÂ婹ãì”ù³1ðf'+¹¾ “Ô)]Ä ;òŽäœbl÷§¨lg)»MFUhx¿Vç²j”å"xéª-O:*½@Tø4µcOwQ Aõ9íØñUQ[sõÜI¬¥£F9Ê"KMIE˜œ®]êÈÕa÷¾T|…£‚¿y›,`EÝ•ã'Ëð[1Ïê«á‘z¡U‚ñƯ~ÃÒ›8'VT¬Ž€R¹Ù­›Ù졳ÞQ©TºA¹z+AµµùlÛd?9”´;z¡Þ|;Kiïc+[ÀIZݰ ä.° \ú‚䪡KŸ3ÿE¡.fQž‡ð±ÒYPpˆFÔÚ¯åcœ ‘§^õð1"Ìö ú›u±ÓÓÏá“›¡)%X ×–é?—2‹¼¢‹äü‚ÖIp]aùGˆhtunñM?:פ|õÑ^~jÖÁ¦”œÐY¡B!Ññ‡"Wiº°|¬ûi‚ ÷8/c7vŃʹĊuÁ˜áOR¥ÕÖô/y²Üµý`µŒÑ6; ^ ’Uëðz~o!Èõ^NÐÚ*Ïe‚z‚5¾àAõ#Užcpw0D°Ïîà‡áÄ-¬Qm­OøJXç‘hŽ¡½éäÍËí 7Ôòü°…H"ñ Š+[ýj,Äj[¶6?ÿËü”s'¬;@HBž Ÿ ‚L=þ6ï4¨³2ØUýàÌ6à9×y=§¶ ×0-ÀÙ831Ÿ2DÅ\¨¦RzœÓK¤p’”g%ðåÒë4¼.;*ËBºƒV–ÏaÌŸvËs¤ùÆ×9u,€Ö¼x›x:ŒM¾t9ç@¥ ¦5bŒõ1îÕ¡²Q·hHÔ¶§Þ*ÎZãb3Áí¬±¹ÿtÓXNW¸tÞqPAé»z“NDu®m 'û X6läa_5ŸâhfRÇMµ>X lv:vx›`U ÿ¦)Û³ésH“ƒ•±è8"™¾¸è»Y’•tvPˆêy‚¡^U.a/o\yˆ/nGYìæ×­&½Q.ØYUêzuÌö9¥ þÚ‰(uÆc¾¸úº¦£8DO%WYT!CpOSF¡"nÔÏF´Š-þCùº‹,ýH9ÆÑøR™ÔÜÈnéU˜X£²ëãdœ’|ì/ÓÔš%¶×¼† $¨©¤©[Á‹G7B5®yßúŲíºØ:úòº"Î&}/…Ú— Û.¶åA¼5Xý´óKôÈ,+nïM´!:Ì¿¢»ÎQžîqä Ý<ˆ¬õ­êHB×0P‰âÏì>K«HТIªlPÿe-ˆ×3œTh졘b"vÛ½l& ógJUM¾ŒWÄF%8¾Uo>`)Á–O›þÝA÷BEb6Ô\˜l’°©3#=ïEiáf¥\dÞ×}¤óizØeÀ¸à±\v€ñË6 l ²]FÚ²5Ï·49t`²€Ò^‚!HÑ­Ë{õàÅsU³(E AÅ›ALV>?R®Î…Ät–Htµ]¼?uG@PÎþg>WÿZKšŠè‹Aðpdå‰< D ÿ·yl€Ýk`e¤ã›PW}ÊVršcö¯7ä÷£<ÍÖ°)qXœ²Z«®ï²Zg}‘ ¢ÙžEµ¤Tm¯ŽP:øV¥«œ€ªZ(?ͲûÍuM{º¾ä }S„lÈXŠN·23œ_o{wÎÖ‡?}zâ9½â¯X,DuÝ5½'ûƒ 2lw±;Âñ\o„Ø÷¸Ím9UìŽã[EÔHýNZ3”¾xI§˜Xt&Pýt‰­êHåcíAb< 9AþÓ&\E Åx«ïcËŠ5UG”°ÄoÈN=)|é£ö³éÚE•² ^ nñ”ëBãÁž$ ªn¨¥¤‰—žF¾-ˆÃsšS`Ö³?Š¿ëä^yË‘4Z--Ç«Nw”ƙ߫l”ÿ|ë’×Kêz̃ yèäW‹0ߣ^@T[sa ø+9ølŸ¡]R…ü› ªâO”è²Pxš”g=xà niòJ–ÜÊ ‰<¨¥éÝå¯Ôêq û¹¢‹¢[jÖ¼¸:ŸdÅúžjŠë¦8x<1Æî, ¢©² øG`õí§!tY·ÁsÛÞ +$ОtæÜÑ´÷Œ`¦“ Xüøå<°½kë ¥9©Þ~ Ð%U:’=:ޝb½€=æ©[v†Yhž–X·bD€m.K=ò œUêòê¢{[7hÚxkÚÒ|>ž¯V‡àƒäé‡ðCÍ*î4¨3Îw„ ÁÖÁ1ÇUUaÿ*JËn°ÐÛߦ8C7jÌØmÆƪ( ̽'›³Ø0«Ý… ;±µDàëÊ鹿ÁX¸¸±"|2¯[¤ aÅýíìnå­NÈ{ÛÒ÷Õ&“ož_×ú]§ïÌ™£™ž'=å³ÖgýëÊ}ØÜ­M“ Fú êvÛ)õ…PB²ôž$@‹äJlóØ!£\¨vîÊ¥&kÙŠÛ6+ôÑ‘J•Pµ$ÞÇÜ@ÌëQ2´øm„ÐÀ]ó™¾lùdôŸ)"ñBûÄ6c²eÁ³Ûí Öõ¨Rz{•¸âÀ%kä3ÏÁ!p@ó‘K {²OŠÙ8Û$ËÊ…¹¿inÆ»TÌ|Uº·|-„Ê—5‡@¦&ò½?ÂVWX$8lº,¥¢ãm^Yá©–:ÐÑb6éçR(íNpvÖ¡"¡™}ÅövbñÖì‡r”ª0BþVi„O·Åµ%C=W¥§ŒY¦w b›íp,;øž©"ÕòöGUtNµM¹¢lWRðŸ¸Æ·O¹þÒÞ£‹/ éUõø´[£*p”ý…öΞ*ÎÖTêÎÒa[Óocs¦“9ì„aV‹A±u¼?²¾³‰Nf2¥Ü°ôei’ðEX•(Îcï j¯w·9T»:§]šÉøÞî[Ûâv "±Ziû3µÃû”Õ!¯}·‚ñÄŽà0ñ©«6–m=˜ý&[¢ÌÅ"[ OzŽÕK&¶•2máÓî²ÞrQ,Ï+ÔS·Y„¨l»éòÈü&r½ÐCä[µ­"ê¦éS8ýÙžp~÷ÐTœdI쯞ÀCw.â EÒé¹ H@S¬¹ôšŒj. #½•·×ÏÐ…p|q(àú,W;¡ìº³Å¬_[6È’öÏC5YtF¡©§ˆjŸè¬]ëÑA‚½;Oï‚'8ß t­®Ý鈿Ëp·½%” Ôw«r«¥€5MdT‹í!/²8NÙC‡»U­1k´ªz™êB[½O',ñ)ÁŽË"E®®7Á­|Šòš®ž¼Öñdw —“ÂÔZ !%ZìHl€ÒÑáàuÙªÊ{æÈc<&ÀðœÃ¶ìh«+é×ùþqQ å3Oã¯b),:üßT™ò¸ÕŒ‡‹(þ qâ±[•×Ï› ß'Û&o—£-T—‡Ž¬‘9L¤]=B+Ÿäï»Ô\Æ~ìaK85ÒÔ§äæ@[ê~ñx/ ž­ïõ 1Ї†ïvÄ„u޳*T^Û§žX¬L({PÑcŽ‹ÕOôxn[6ÊöZ{” _QÔHÓÔ÷2:iO9NRTÚ§A Wä”ȧá©èS?.öA4’fIG/v-í%?‘4…½º­Ô):Šäƒ8Òp­$ãÔfÔöòõ}Ö˜®i'\5k'd&¸„}ç|ÏrÞŠG¸ôí®Üï÷cØ*€¨ûK’ ¨JfR.[q‡ªYY°Mä<€£ÓA6çštʶW{AMGј:A\ðÏwIù^[†ÔE%´ótX"WV»\ß§aüµs\Ë[±.繜–Ô×íIþm-Œ¦jø5‰-WfÕñ%¹ÙÄíQyÞGñçɼ§IÖ¥H¶CO¶ì=ùÜü€¿çûÓß1ÅοüǦØÏ/ü£œbçÎþiL±ûfÿ0ÅîþSìýþ‡7Åî­þ‡SìùvŠ=þ¦·özˆÝÅý¿4Äοÿgbÿ/÷Ïÿì¯ÿÕ?ü1öØóÛ?ùgÜðFÐÓý›ßþ3îî÷¿ÿe =7~ê_ý¯Ý-ûïÿöö'Ùz¿üÜ]~óÛ?ýþâO ø+~õüÝ¿ýó_þ‚o$ þáÏÜÙoÿê¿ÿåßY#¿ý«?ý·¿ûÕO¤ßüö_üù_ÿ24_2ñgÿîW?Á•ü%ûä~~óÛŸõïÿæoë?üûûËŸ*{æ—?q}ëª\ÝþåO|ñÿþ—?ñ)ÿÇ_þħü—¿ü‰Ûþ?ýò'>óÿü‡?5>óÿòËŸ¸»ÿê—?ñ ÿ×_þÄ}ý׿ü‰{ø¿ý}$XW¿ýç¿ú#Oøw¿ú#_ùÿúÕù–?ûÕùàßÿê|ò¿ú•\Ÿü¯õG>ùÏÿ·Küü‘ûùë_ý‘ïýw¿ü1ñEÿŸ_ý‘/úþ(“ðOD&á…dÚcm—€EñÚž xh¤¥J·¼Úû२èj•ifcàS¸ßæ´…mY÷T;ìÚª™«Ýí(:ì6çâ¾ e\¯Õ #ÚЦ÷Öòw:TT¹½Šq×9¸— 7Œ:8^â-^/ü[U·3ñîL8<³zJÉ_ñ‹›Ÿ‰S±éؾ#ëpËï)hX¢uÁòÞyÛÁÔ³ƒzãêÏY­û]‰—«§Àßc-Á^ò‵U1Gê›-[ó¬ùØ2Ìù²ƒ«?ùpß0·xÄ Ôò‡·kÕról }ʰ7^Oá=Ih }¥ï¶¼ôªx±düéô•ã™ #õRžüîcñ=1wÒU„æDîU¸Ô‘í?Õ?Ä"‹‚lÉG³Ý’>õïÓhŽ_Ne¹FݯëÛäýåÒhô½&Ûå‘oªE-_Þ\jÖ=oçªý,õgŠvÛÜ÷äć×z-'4lÚháÞGuü£søin¾G©êÑ>~9–dýmZb÷ªOw±Ú6ήÅA®û¸ºò€yôU[ç1«ü˜åùozFréñÞW»ëT¾é«ZÓ® vQ¶ÿèÇêD}$Ýí JÔyÀ˜gº»uq‰£Ù¸¨j¿ï8lN±ÃuZÄO+øk äõ³ìi°`í¿2꺳¬¼hã…=p,“Gý¹õ =N¹ð ìМ_Œ—c¤Kû޾,M}¨·¯øåؼo»TûLCílMÞw’“¶ƒ"ß³÷{i'hÕdžþõ£Â(Ä(‡bµö´áÞ&‰e뺥’]ºûºu8©—rè1Ø©fWB½G΋í\Ú ¶ÍaXŠßZ³:>çt–ø íÚö¿„OÇ+k#i²¬4*䔸»õöµq±³ò“'_±í'—Ë·¸uN8emåFš*˜ï£œÇ°—]-úÕ2Oµ_’Ø1ßG_ýW‰€¥)JºnÝ6 ¾¿5?ûàˆfΆ{s±×n¹ÙUǪx<_åeŸ.]ì ÏŸRð„ú˜tµ]ùÌý;ΡÇ|×T ÄôX™_° ÿh…Á+¼;;§Yfo-“T`™GÃC/«‘õ"üöa£Å­b'8ôÑ¿¸ôüÎúófÍ{ŒxmHOOß,1Îú‘÷tFàMéÖ ïçË}imÊ_ƒÅÁbžϵ5שw²CÉ…,$Åw öw½_BÞ}{F·6_…Ͳ97zúþïÓ¥™M‰Lõ;ÝäNUÎø9Ô¦}…qM½ÆtÝ{+A•¿¡·V˜Ø+î ¼lN*¾n×X-iwS®dßÄ´í©d¥w•Qñ=»ø\^÷}׬k"€¦ZÇ?pè½`_ÏSú²½G O[&ð±À¢¬f\Y¬h_Ã&‚lO«èOcp²×ÐÖÏ^µŠœïa¿:tËA¯â¦ñºÍD2ïHýAxsÖºn;YÇ­&ŠCë²­Ù[·MŒqA¶”ë7ïhA‘x°:ˆ«ØôãulÌÖ!í6ëÌt"së€KÁgëô)õVœ…ä%»VoT¦çÚòQ÷iõ´·ˆoN1SQjnDÃ#bøW¹ˆ©º  –Ž_`Ó'0%iEô¨ôBã9ŽÛmä b²ß¡¬;°² WC÷±­ “gXE÷vÜë©Ðr¬¦•‘À!iÖ‡Dù™¨œ»Š¯l0,ƒržùõÓlžTùƒÔ…iÏA´¹nâÔê¼Ö^Oqz•wÊÁš|cÏSƒ)Zëï=T몪þ8vw¦Z ÷žÅ’Úìm›ÎB©/>ìÛ·å0(¤Rôäv“9Y:Ý‚¹žÁwÅ 5´KÒÿG5;­cíp(èqÏ'.Ò!lN¦Y(~[Ì^BAÒ|ºg#÷vZCù ™„;t Ç;³¾BN*¨©×thÜ¡}ÚÌÙÇ^6ÜÃ{ópHPó.ƒ Úæ„\%×!…U!–iŽò”v¨î:óD€¬¥5ÂÔp¥À­³HÎUGý·Ìþøký3Î.Î%’Ìmè|žë%^9ÆnÃI¬98xÌdII[@Ѷc h¼ªB~U±w­0C¾²FE6ꈬ?"™hÊ¡«çqä`hFžˆ‚ëÀây<ÖÏÍ ÆÐ„e K{tþ×ÁAÑ8›!ÒÄ¿ÀúSUT'®®îfUò¾ÿÜô·Ô"°7ÐA}–š¶yx6 ±—I_áI`;`Å3xÑÔ~« .´Á”¬8jj‰ÌZÚÉÎ.¶Ð[ -S«=£A>óªÒþÏí”·ÙÄÍG‘€”Ÿ×)´©ìÂÿ±[Ý­§¨‡7v¹¼ãÇûm©ätÕNÓ–])ÄÀDÌÑWÁ¶|ÛˆH„3 â<ô_·;§§m£PßN£ ¦Ì¤“­ê0ÙŒÆJ··:…y&¿YÙʰU;rIþ.€Á”ý)ºXßîaôq„M2‚þ›?]ãÏ{6é´öd¼EyጃçNÀ+6° äÇÏñðx»þ N­^J‚³õ# ÿ>À}›@À?#9ßÄòR»E) y—éØO ™f±­K[E›ØcoÎJW\ºð†Óæ Šž$+.Ú!€$Æ3ë°sÇ•×Ãÿ#wk Ñ}ôJÇÑ}Ôr@ø˜¾½fâ\ˆQžo…+eU% žoÈ*U‰+«€û€!M˜â‚¿q5«ý,ÀÓád­\mܳòžx΋Ðjs.Q™XíW„DìWuLÝXôºÖi¬á:I„dîÈiœíLȕءÊA·oN·=µÈà^’ RÔr‹7•@ñÑLdÛüÓÎÖïQK äÚE¤@ž|iýèÒÞì´^’¯ó³µC¶Á Kzüð“CtT‹ß&½}ª>õ[¨º”Y·“®Dc'ݶœÝL¦Nd(|ǪÈ\{=WöéÓÀRgõñeýa~~ÅÔ¹Ä_ºÐdԠͶˆ¤äÊ›rtTþB îâ;úh®Ób'ª¸¸a~,à ¼ ™û³Û÷bc¥Û]þÓDNŸeZ5BArZ7ER“â øigsðæ£=.ÜÍED&mžúÂÛÓ:BÝþ©2œhÚ/ZNÏ ^³_çK ¥Ïå#õ¶aØF@âìÒåJËø®á–¸š>«Í¨õ”[uhά8ß.[xI@Éò…¶sdµxô$(¼Ñï3²C€›ÃQÐ% Ò_6! ·Øè–ûÐ ”rƒ €:\Â*’/cóˆì:ÒÁ”_4&wí]VC4qÌíÓL <µ´u€[ö×…þs™ÛT Ú™ê—,-§$3ñsl·ùÜ ­ãI‡KáA›­»üêáq[ˆŸ£‰ ÇvÇDÔU¡ì¾$ØN®:«™ë£»!¹µ¼º”…W뀉}ĉ iŸW¢By¿+»›ËtË*ÑÒµ7H0Û,Do“C‰Ä¥› ™ ‚â;´´rY»2oó–Š3-Dò(ĵÅ㌟êy:Aò®$Ñœñ4ð}ô¾‹ËX²¿i“WbÒ¯X á*[B¢éó„I§»ÚµJ.>3BhÐ/ËVóÖ©/ÕE­åLOÈ⌬²²äî¶.²Á‚¿}çVïk²¦VÁpÏV‘Ìö¹ d8JŽÀ&kÓáxw.ãúlvôÅžT{À†–­@{á"Y͘«¹p¶\êåTªÖ­`$ ©_ÄÛ¦G:³2Çù®,Ñìô,Ériü9êc~5u³4Pƒì½[Tîâ3¬:’Ô”·‚ø= o·µN§¥ˆ–AÒsäÙ`Eq^Úf„h:³ípX2K–(©lØ»šÆ@‡ë˜Þì:BÖÍ—ÄÇ';G™V‚1ò¾>‡¤Wà7y×TQP7›¬Ö(¼å<ÀbõMµéؼ5óùj‚ªÄx»põLŸr·ÑЙ¢æÎ'€iÞ^ˆ€º¥v‚Î_°ýÇBŒZ|dj6ÎÖ¨P"6gS¸ —m—¶ðz¸–Ê€óå`Oºˆ›u‘~ù_PMÍvZ®M…öS.¥žÔ(޼N ¹NRÌÓÕOÎ0Á3NB«ÁSР.A²6 JŽJΈŽWÑ:PgôÇéhÜ㉒© Ù‘Ðèl`SWèUò{‹m”Íòû ÇÂöRë%oå–IþÐ¥¶ãæ}‹9ƒŽŽã®, ¸êY“ì í§^}‹ÀÊ °BÔ¤û±l¸i²3¿¼ yü¯ç3€rz[úi¾–*ttË]A—àOÝ ’Ø‘ü•ý²Ò^6Ì-–ß$Î3£&vz-UàÓTbõke«y¯UȨü®ïøë6ÝPCaÀ9Ø">a¡QùrÀvÞòn{SËо¸€¹»$:”€,’®ï!¹jêôíÄ¢X ÙsÖá(Ê‹Ua›¬¿UIˆÉ.m0ƒÒeQ­¶áT䈔y6«C›¬›£¦ÍÿÍÊ‘•d‡øt`ÍSŒ—_ݪ·ž„ ÌUzge5/ÆÌ\÷äü<øÄñ/Å|¡ŸãÐD• É|b|¥ˆ€üƒÛ¥L§“ÝI…T¶®Å)lÖH’$lùíÌ•;ú2‘gí 1åΈ³ð“/_¼wâ|=…¢wQŒs+d‰ ¶›ªø”Óö]ë¹¼zÚ}ÖÙ­÷s ä ìuHbF„û£!£cgê|ܯÒ>߉Рýª p7G¿X}<ÀŒ"‹Ç|SéçW”s¤àµÕ‹*k‚ªWÈ S]w¼œ9csèØäC{)M*»ò·*î¼¶$ߢòãR(fòþ¼‚xTœÕ‘xÆä—¡ÄÏ«3Ï`Æ'»P›A)å<œpR)–eqA©¶Ç?™·¡”ÍwìæA×:¨©U7XvžKõñŒÀwV:&¢O›!›Ô^Ga÷Q”"rÂ*‹¢¨V“:ÜgÖP¹/ÇÜS:óâzSðàâW(ôž/÷HR 5 Í$ò¬ ÜUVX#ÏžNS+ë°BUÞåÀÕ…$m øvÐ+ ZÛee+ sT/*F€"¯X¥Rð¥Ú¾j›E›í?é²¾èéèûa.‹lÒé♣j\Z¨‰L»*HÑ?:Í€Ÿ±¿…‘Ý{¹\V­¼åKJý4ùÀarGÅð¿Ï7ØÛÊúãüð™áh¼'YÕHÐ{~zL£æÐVWCÂö |©µ6ò­:7ÔÖ¡:IôØŸp–Ô‚ötMy&%¨¡º/KR¥¥ ÷gݹƒnƒ½Uêâ„:w cpzkÐnº³c=@Ó<‡uŽ÷9ƒƒÐ uÿ¶ÓEÒæîŽ;&È+¨ÃgÑ2t½`FD¢A~”÷XA¼~˜x:â­Hq±wƒ§8ÑYCÕ ¼ÏGÝÙÓdõ@¿7ÀåaQ)o¥.Ek©ÚüÒÆ•yörÞÄ ÿ9³SÀ è§\B4éX´Fõ½¸»×c«SÚRM[iϺuã.žy<Á–šjÑ”˜¦œ¢'Mü·wô›%HiR·”ˆÇ6$½Û<£ìœÃS¬$E#’b‘¤ú'(\cJ…Pë4};èN÷ÌäÙYÑ•ÿ,¾ª6¢6¢sÙ«‘­bæ·?1þö5Nb«âëöÔ(m€r;/ñáù<®ûvêi¬iOÕ1 ï$ÞÏùõ=u„½k;ª*²T<Ðè¬<5dçI.%òMlè7[°·¡„¬ïcË¿_Çr¬‰ì†J諒êq–öcŒ¸†Óë“X´cT9Ú“J¢Í”NúZäWà p¶¯®ø`™F–<¡ÒƒD+ÙŸòñûÛãT%GmPóN‹çàQ»®t‚/8Ž›dnöšDù¶²»“£-öÑTE©jn»Ç<ú À‘u¨¹0U€ræxßtëêÜ5Û&ÁE‡ZœO#Ê;ÄÀ×ÜÖûÞWOwË‹,xm-É©…ù…[­‚u«' ÑPZit.8¡^ŸP°yu8-ª©Š o<ƒªx[ä•ò=šZ¹x¤(ñ,®5U5•ÙŠÀ»ý]`PuÏH`¼Dv(QQ `ï˜5û_B=véÑs&úkÅ0G©·¢äé´*¸m@âvRÖÐ^u&Ëã µ45÷Vú®™í±áíÓ}FÍr3¤8‹—¦+ûLÂñJXIHžûé'¸cx®ïí:.Àº>•SEÀÌ>Õ!§ºíXƒ@ãàÑJ ;ÔÂÙ8d× ÄSx9,¬£¯›ùµ¯w»âŠÚÚ|™"ÉHÖ)‰òllUSø=y ¬Ó·Ü.â!ÅiËúq E5ùÄSëÕì5jס–”ÐB-7ÝDÅ`I¦l+‰0?u‘Ùº ¬OºfYj{ÁA¼ý“i~ð7âÏKˆÅF°C„}T~Äðÿ½¾°š<Õ4çžÚWψ7ééæÔ›sv©+ø&gî ]4 I! kÏ¥¿%ÚÈå[•üÖ€$çƒ|´[™E>m§Á^QŸ˜×MŒ¾Ÿ*ky¸§ý(€-ß›“µë/KX%Šß„ê;é9 /Ž·Í=Ã\6EôD‰¼ÀÖ»Ÿ¤ñ H9Ë#´)Y³y­(ÎQw}Å ˜áí×™«$"8Úo+6×-£©ª-€3O'rpš@ s!/5ë&¹É ó=|Vöd;3ni­úâçù–¡»M'ЊžÄVï[õÆ'_-“ÈVª¬>lþ¬+2¿2}ê£}NÈ’Ëàu–ónVsà}j' ŽzNŸªšKÉn+åËP)£j¨ke~*éö=ùF¥ÍpÙ9G­Œ2LôÚ-'ìTûK#‹s¬ì@Òƒá‘ÀÆÂô±Â µå³¡ó}'¯ˆx©ÉMZaÏ£Â+Ôë(+sÇ*êÊ<Ùmùñt$ª›>3$W’ÁAßü; ›1oýéDíaÃòêV:^çù)̓ì¤Åô›æ‹ìK³&ш<¬„ªN R®õ,]Õøð9Ê2¸„t«wAx7äAÖíA•¥ZŽ#>*eB6„i€í¸! }ˆwwï§> а¯ýaª²D^p{¹ê'Ӿ掦7@S…«¦¹úHYHU5Ÿ  Ðy:½Ñ“¥¼•X•ð,H»FÙ'åÒôé8"°dzªS›f{e’ßEÆÞM†Z2UCa–¸5Æ1À/ÕÀµvpxS¸BµBµÃ¸¥÷I»hÖãËëù³ãç¬è$óUª!¨òß²?çj›-߯ˆNú/¶ ?Ý캎͔Úx *>@eŒ5¯MÂ6!egÓW±?^¥kÓSÀºèIÍD•ô…žÎYÃêp0l ÁªeÖéWlZqþ’/au)Yu¹³¥Ñýt4»Ùþ$Mž;@U"`J®¨â6ÛÅ:´6£ì9ñ«©¦ø~ê©Âˆ+·ö ÍS]“âïZPX‡Dt¸/YnwBXõ `ô!MÛ Ô8¯©™æ^€Áiï@8r{<7ˆ5v_|çG´÷„¾$¥øÙW$®ýž µë°`jH#ª¤FLG[ã.U Š«Á)r¶¹'èáš;b߸*% ²¬(D¾L`…®Çë]ƒÚç鲸¡×®…3q¦Iiɪ‘¼8U¿y@§?Î@‹OI8ë•-Dñ$sb„uú4 ÑOȤ¼:‰°›ÆÛ O”Ö7Ù4ÎN‡ËýÂV6JQVG­W}Žx‘Gð²“zÁ÷j˜} À:MS;%b"o—ëã ëp¤ùù¶8 ²CÁ¤Evg… 2HN0Ü€Q˜o÷Œ~ÀŠ–?«w+ñ˜yM}±ÎÛwunœkÔoâ!ʲ£¦ÖýJ ³GU&eÕTvÔ†Ê×Ý\ò„:¬`¸€‘âQC¿ÛÒ_ àF­}<ðм]‡¾eʳ߲).wËå|ÇØJBÞÔbߥ®Ð ‚ döqJ-S„©–1Ø)¡Iùû¬Ç[‰ð TðÀkÉdûNeÔG!„^)?ÆÙJ¬ 6Ó¶‡žt§6[¢Rr­ÜýÙÌ3xù„y±Ò3·M,¼÷W+;Îrn*Ðg[£ K]MEçš•Ï9†)‘ØbÓÊc€­Cp2f‚íU'tÏG¶ ïºéô­ÃÉ"ã^Î㿤·ÁÅ+°œÓwmxdøA‰¨$sDZrŸЮ9ÞEÑÊÈÆS=HÉe°Õn6Ô€lú±ÇÓÕS/7- â>ØòÇþR]Ñ 2]óXöÊfËi[³Íÿ‚³Z‚=òÕÚµÊÄ®vx@mz'-'†>JOd 0ÈBi9øØ·hðpE;þ‹êƒ@¯¢u’mÆ ™®R´Ø·Zˆ?||C²" „.-Á *×¶j²Ûp°~,a¨<Û~ÿ2¬Nu{¬þc·Ay'‹ÞÊ]C_–Z¸ì~!¹þba±ò,žÙëÀGDT T°u5åênµ`A /Ô—4Ûz@Ä/Tù¶NsªÃ±w"‘ç³þ*O¬_r€ÀI¸Ìpit• Ч)G‘=‚oà‰u “6ÕK9mó ÔIòt‹´©dΫ‰Ã@Ñ@EÅüVÓ ë»!+!ˆíRÐ/Ó6°¥Ê©á‡_ÞdQî=^ª˜c,ÃÙ±«`‰G]{Ĭ VWwƒå¦ö°'qö©}ñ´”»ÉÜá“9P!éRÞÉ5/ú$|-­:Fñ¨kƒv4‡»†35hpeQDàŽú9Tóúذ …c¶Ñ¾\xSªª>ÚÐOˆå~Až¢mæðúB<¶v©2(˜­Y:ÑéJ-;Þ=Ñ´MŒ· í"cOº¤šÄ'eÄ¾Ò ¯ŠÉèÉ2þ–t8öÕƒ PàXÑϽÀÊ-5îùø¨úõ±}P²ì§/bŽcÖj/cuIóÅ›TøÙ£§ËäAmVÄùü0O5¿WéÇòä%ð›Š!êbx©5mÀòÊÝ»Î\]–`hæÙfþ²ä`ù{ÛÔL*½Ú­ÙyœÂË´ËÜj?Ï÷ ¾Iã× `íd-Ua”RáótKù–:mÅCJ€åËí¬ã7§ 8˜r(ÔünßçIT¸ž ž ©¿:GEvyã±.µ ,Eޱ?Þ²9„Ò®¸¨"VþÆTÀ zzj\—3.ùã‘j{>+ÞÞËU•!êcŸE•ô&ì=(nVÁHëx§xÀ~|#&¹À‹°öc}@bé¥ïãœø„til¢o‡Ý!S½Gu—5lýñµ­8¨Å–†•4M/òQ5Ç‹ë8‡róv„†–¯mvUôL&Ä̃ÔÙòsç=í…3ñxänIpêAžÒ\Ŧïz:ÝY6÷ñS!M°úw̼@Øc„LÐç:Ö+Ä[rz“ô#®¿^V%_TÐs•dyC!9λƒW›ÕÕÓ²‰ê€¡Aàæ‚È«—<Ù­äÌ-ÒÝ1ªÀ’ªôU?mbЭó¥ü“GàÙ†…N€¦'RCvŠÇÝé-uÜÁÍz/¸ïVt¯FÉPŸÇŽ'Cf$×Û6=îAó@Þ>Ë»„ÅÎ „AMZ‹¤l¼Ð‡Ië#W8˜¼ŽNT&×òÆJ­·ÞÉ.  6çfÙ¦ätaB ÚSæßŠs’AøèñÀ\—^¬Š|© ªpã½ÇbW²3fZ°CYE°ß.Î ±€4µ-x®AqЊÅ'sîvލd]ßÞk;?"/FCiP©ÁÆì¦Z€~Eªu·¦ñÁŽq»®H‚®=À{¼5ß ~VpðìBÞ¼6ZŸjc›’ÇN*«àÍÅXe%ddãf2%x¤D¶<Á'χ€P¨k+xÿôç › =ËQþœ«g…Cìsku¦áƒîxÄ:-zX`GsZá.°ÕBƒê¨3‹Òí>ðäSV:ºJ9Uyn«æ¬É=ñ#Ý×]sø{hÝ_g²´êPmùÑÍ+´ô*¶Ò¨®ÈÞÔYš45M«—ÈêXëñŒ©ðå[&oÆIJy¬*Ë¥´'hvåùnw8Ä~_ý%Aõøô×yyoÍŽBS~¥ÚFœ ± '§r.…§˜XíÃÙÛ­FÖö„o²…·ÍÁǬf⥠5àv½Ì4¸Ô‡ ÈS²%оîÈ `}>ƒ¼D€Ôùý¥c²¸«2ì‘Ø:àAæù Q¦fgÔ‡6(Î6ô¢ƒ{uñðÜbD²Ù^we»L`ˆª¬²jÆ&>zº³Ï4‚=A;½“È›µq!•–»G*W×y(m…ô¹5eÇ=õÒÜq’ïô´™¹Ú­ rÖϼTt¶Z•ú]é>çhð’,íÕPÍ~¾ð¾EZÞ{TGõ[ç8$;¦¨p^lñâNUÛ$b—­\AQS+ÛŽàâza‰*&í²´¤Ý6‰¶Ë¹&–Rãy{­´»^;²ŽÎSMƒÏ /ÊÔóÄWá¼1¤Ä ž³%Íé±b!ÚÍ´‰$¥#Ïý- ìà3“yˆ¥DMºà2\Epc)/ËYª†¯…sC¬A›å³Ù³IÓqf¥xb ^«ÊØîKsÂ(åñÏØìþ{ vŸf—7¶4Ñ­yt¾@@ñÍ$Ö ,Ð!¬ j¾%vßÚ¿ÌN ÍÌ[(Æâ&çG‘ÛYA€ZcmD›FÀ5§r{M‚þËs[ÁÀWƒò®u¯°½@×7éN]”åì™ú‘}×cWôÂÚúèjÞG;úØy,®¼noðò¶‚§â2wHÄIÍ}|o=âØÏàdZ»4`$lp±þTæ©ÚsæðˆlWy­Ë¦ì º ÑðÒð»o}qŽõ  øëˆ†g„§¥öùÌÓgÖ‚]cÖ`<M·ÐFv6M§E Ü«ÙCÑ­Z‹MÛªR£OôèF¬ ßÑËj óìîÐòˆx·óül¼6ƒõ& ¾fXì “Ê;ýŒ#e»ua!ù¹¤Oòâ$e{€eŽ÷Èf¿À ¶’¬1ªs€PóÃJxøj»T½T­uìáQSŸµÈÞŽ·.„WÍ»NE½œÙÄšÜJ-^ª÷ëÙá¥[JÖLi‹ü4Ò´°ÎfG%Ä „¾ÏâÛçtëñyÕ)®éˉ°,…â™›z Ùúâ>“h° ®ÃPÜ•oÁª2Q¤jHFl9=Hzß!Ýöjãé XªkØÉ»s”üØÙ£{Û1 O­’÷[eTàëÅ–äëì8I¨ýñrqD9~=é]®6Ègc½º£‘DÏ1Q'½Û, úÀÿNç°6¤iZ„;] ÔVäOOn>éÖT¸Ë/àìÄéH [¨¦C ñˆu¡mÀ-?²d ·½„e8o«DL`$ÌU3F®÷è.i˜¤°ŒôTV¥÷ª& N™dÄ $Û\Õ÷?$CÕ ;=Ÿr¦K_½©og‘bsÒ@aª.=.Þî éë©S*W0sÙØx®M«µ-\ƒ¿ºu¤ül¢ífÖCÚçµl˜ÝÎK•=äé¿Ûò¬ÂNÝ1}‹øA[¯Ë¿$y2u³Áé*Øb:â¥Q˜Ö^eØm¯žGgPÇ1Ÿª;HK˃\{¼‡]Žã»CÁ5\¹k€Á7ªòN°ÿ¿•ïh\è‘cµÿÈ=X?›ŠízÙ¢ç¾~žyúæm d4íF³U¯*Aw³ÑúÖ-LW ËÖIåpòø{±»K<çA%Å Œ wSæ`UÂÀ½lèí©©ÃñŠ19¯W¯&=S;j«ÍwÚµ‚™y´Áʳ^bßüd÷9÷5—䈫­¥}<ƒVȫǞæ±U͇Œãå ·¾ºN“•ÅôE!0ÏbÈÁâ@¢re›Þ[%H4õ–èÎW}žu}6/Á¥ou€ÒÈàÉλK½ø,M Æ=­&[v‚ç°‹YIü%‹›D;­ÆÍHôÍÓœŽÀÿ™ö!߀»¨qŒµOËXàµÍË‚¡'lfôjÔAzpü_±mgf¾y9ÉíéŠõòEc5“YíùŽi—åyÔ7¬~E³UžZŠžƒ½\t4LÚp[vØD3…ˆÀš¹ò<ÖQ_'àZ#¾Ã¿¡Uõþ‹x ìƒq˜íK"rñ®Ž6Èü…Ûåw%½„ì;˜I0¥Ÿ’qI½4p;`íL‰ ç*Ή$ÃlÏg‹€»“ÑŸ¥!ˆvÖû§Ù•~Z¡.4É48íˆ%û+G¾Î!ƒgeD bìkµ3zº£L ÌÇ{ÖõºÏY|Ô‡ô5‘(P­Ú8²—ãÁÓ.YÇ7¹ öºu¦ÞG´‹¸=††è…©7˜g];妥 V_BíLÉ–[Á9؃ö”úgÇô-ã«SrÐnzg{š¬m‚yýìÚŠûa'À}uH%f­1ô÷#ÙÏÊÿ*mþyÄX³“ér‡Ï‚A·qb*¹€ub?*ÜO>HŸHOéïj½ Ò¯Q‘æ3dñäAØ‹@½,1‚^:-Kd5rŽƒG×þ8ùì¿D sŽÊº§]¢aVšT Rzóân»ó‚z%䣼/«Œžºµ´·uK3õ V@½9Ú0Îăæt$F C£©[¹W‰Ûh –ªKý¯uÞ±8÷F ¿&KÕ’¬6­Ï­ fßË6[_1ÃýÉR£J@CYŠ>&2=3ÔëVñ³O{0OûJ±ðBj\Äsföt-»gÿ9ÎP¼‡-³•i)ú¨Æ6ôµ¾¤ ŸGªŸ™£ |Ïè”;ÎÑLîVâÆÚ/kržÞ‹ÏΧo@k¬e­mj­ª¿êëü])6ñ†Î¸’Žipêa;!8s½lGb‡B2„úuºØQç¦# VÊêÅÆÏ­LÒrÿ\Ú*8]¨›˜  ˜ƒÄºêõrh5G~ì=€÷“áiQÞõúD:åŽÓ£îvÛ6ˆ ’I“°ÊÒ)PÁzºJTZi¶K3r»l$q¼J›}öµy{ì¶!éž„ƒ6ܧï,G€X·*áë×ó‡ç)-X$²².}vKƒ¹>OÔø‹·)20)2¡Í ¼8¶Î Ö¯iØ—` Ú ûLG‰_êñlö7·|Ãníð/vPØÈwÛK!†Øû•Ìy"!‚ ÿ©½µz…!M÷À–ö­ŽÂ»Ú1kãd[;L"ü¨9ª³ƒP͘¬Î)ØÂ;€ {ê ŽÒK›$û(T•|´ìÓÁø Çâ'àïl -ù¤d%ê@2zØØ}µA¶½Ú'9D­Ç±•篦Aœ‹\=Ü]¿)ÍÆâì å™Ç’Á©·j=z•ûǦ¼åõðå¶a4ÿM  ìeµ(àCʽ¿ruEO;k¶÷ý³•–pËf ž¢•õ©H0ù,ÞÜ£í Ö%·ãÒ‡†¡E*øgWŠ †O2ÿªŽ°ª}ïI‰[²›¯dõ]·ýEJìhÀø(ØX7˜;ä¬ÙXü+Ahµh[º$€ª­Òí¹4ÛëÖR«Ã,ß§LÙg¶V+q[îlawT6D"ïTCÙa)»U¡g_ Ì%­_øKX•ŠÁžçPY*©iAh±Ž¢> ¹IqÉ©ÉK¼Ç^Bl=·íyø<ÿ‹+¬uŠ*ª‚oJê:ªð.UœlÔh ë ªRT}X×@#àLØ H‡u†FœÀ‰PYÿߥhÖÔôzUý<¡®*+]ìOñ½ ×J³€·Ú«Í Ïì< à‰×ïw³ˆ.[ŠÉº/Û¢ã  GƒÖîž×¹ë´IÅŠ%Üv¢³ëÂî„ §ã™ºlòs o² ÁiáGNc{„Î>!zzÒøx¤Ñ-GñÿÖé¿ÖÂÐxAÙÄWÃó4Õ˜n»ä!ÏÞMGçë§ýÀ•x… _äïœþ“×J=óäEÀÂ*hÚæ¾mË«!³0-nDéÊίG?U•Ø\ ”ê¤æ«•D§;ÕÊÚêµ ßÏ*ZÍÉ%Yõ!e¯–S–áT™Îz¯’s«ÓcêZ"Õ}º±§Ô¼zÁ·þÓ:]Hcj©‹{Ý+9:ŸÓu5Iæ á:[DÈäÒ47Ç4Õ!,âOR´²EÛ²‹8\*Š’#<ã!{lU;u5Öùª"1rçHtÞ§+\£cºv^ÂÑêHa´25ÊÕM lQ:‡P§`äV08=Ÿù žˆ’c\,7pôÀìÌc;ǧS Êyv¹nä›D¨Óe Í)5Ù …¥ËCaåÚí­zB¶^+IÆ»ëp¡Ïð¹¥Zµ¨d‹ Q¼^ªß@6‚ZÂ`Bhtp”ÕƒÁÛÙ‘’‡Ò½P ¥£I £äÄ)UÏŸ 0i=3/Yï©Ü»õŸÅca#¶îÄó90ÊÖs´±Ü¯R Å&Ñ÷sœ†VÛÍ=A3ò‡Çr»cÝ®N^ÀTn:ì1­m°7Lw-M®žÔœYy ¥óDT…¶ ʦºoЦê9ÑÓVÿIDôEz‡þ'ç%XŸIÿo ÈZ¬ùØ¢~±³ñÈjâMÜ-¤î`Ò4¡ó†té­FVã›ùI+üàc:^g¹™ìy¹…D˜l#·[¨"e;± u—ê‡AÝ@U¯íVÙº?Û¦óæßÁ%NKÙNWAÓÒY…ãÄBÒјÄJðׯØÎKBf²{\=ÌlÞg°Ñ¡6…í¾®ÙðQ]ƒ=iÞ-~,–ߠʉc¨Ë7Éׂb¾g8f ž+\›LÈú8JÕ–‹Y?¨ÀûË 7>‚»8ê\”hüŽ„‚£¿÷óéN#µ<•›ÍxdïðÜ¥=lWÔEIň±Ià±8®ÒÒ§€¡‚µŠ\ñâô䆹“‡?k.k_’^¿@›é[íZO‹¬ñ+–;Î4«ªO·ƒÿM—,¦ÒQ}²z Œ•ÅZŠEZ›áhÓÉÅî£Mä|´°QwÀÁkûEUc‹¼´¬'rwž:Â{Ú©ybBdÇïƒ3%ö :%­(èSZ¡_ù‰¹4,³uúÕÿ·ü†t€%;¶%?šKïçü´MÀv›êì+Ù% ¦ûº§ž¶õ ϤùÝÎ>¶wyt%y’S÷Nw/¥ª ¬M:xÎWõ`ez@§¡²(#·W«ìêI³*žéØpå€Ï¢ÚC@³.ÎÁa™åx*ßó>vŸe>O\"™o˜ ØP[Å=L7ñƒÈ£žjÏ„táë1éòÎo¯"é‘>¦³ôC±Å¡÷¥SK_…ƒ~ªàí‹} ):‘œˆšNk*Ï”ê ì::!Yöœý!‚æ6p ˆíæ-*Üįñ!ˆþÞ9ìkÁϼEtúE›H‹—@ÂÅc¹WXß×.%3ž2Só€oŸa‰Ï>Ç•Íu}*9Ϫ`ìû8NòV‹ÃxÄí»]¶ùNµ\ÕK&q§—è)sÖî´¸˜’Ó¶E7ŒFD4-&£œ¾ÀŸKƒÊÁrV5@µVþéÅâ-KäçÜÌ÷9ÜÓÇ­ t·Ý^GJ@õå¨RK BÍ©Ñi¹²3;;Í~¬vFM!¾ŸÇ÷i“½œÒ#û`lãªçñÞ‘®â=æyíJáØX¨sƒ D’¦D0‘®Áñ¤O‚6zãvßvÚU4L>6ãà…÷¹›„Ôá_ ¨ÌbÜô÷^á½87š»h¾wòõ⟛]¡m `@Œ¡àûÓfw‡¤5"‚'Å âÈJv(¾S›õƒt¥#p]•Ëv.bl¶nzf º€Uml".{Ì OŠÄãç½:Ø®¼KNUÙän¢í©vöTµ >’ Ä |ÒÀæð@vüE"ƒ mW "0ý´3{S™@­žSø‰ëTŠnõJÁ€$¥‹·uÔclRɘí”X«~jÄ'7”’v’ežì@P`€­Ý@ŒHÃyçnï q)AñjPí¯ë#¡,‚µU{?ß І²ØD$V¢'V÷Pj“¼PlêÅ5 ÄWÔé©Ó;™Ø4ßýx Í#¶õ‘üy¯ÞøêNô'Æ×#œø©ô›Åˆ—¯Mºüß®š|ܪò ¦ÊEÛq*mÑyNuH1ôÉe°¢,(ê•ä´¸Úæð;8Öš¼:̪«¯z4—^%Wíú&°zPÑÔB´µ±~xÝJøBÜ”¬„çØuµÇ¶<­Ùƒ"ïjî:§Ìkf«ÄûŠ{‚$´©NÁ*Û$nõ$v¸¸;v¾6,v6ƒ›Úák%¤䵜‡D¾`OŒlLpÀø z(ã²ÇJ¡<ŠPBœM!6Òh± ë„þ@ÄÌסšZ ½Y¹#”•k(0Ç:–Ï” >ç¥ï`Ë ÷Ùç-êy£aÈŠö©ªD}×+ÛÑlÐ ÷ptP‚L:†Ôa€,aÔ8¬—>äl æ-ð|¹ZO»ÉæBÀ²6,ŸzQÿ­’J^Ñ+ ÅhëdàK=Åêu.ÖI{Ò=»xâJpXõà™ƒ°_ÙÙ3ü=d/çsá Æªâƒ¾Åþ /Z§è©Ù°öš¨¨u‚Â/‘$iû«Bœ«¸d‰gCÏ»Ø2iÌ u+O°‚=:ÓBh±^W…g¥6–^)^!W%c8ÅÓá3Rl‡÷£Ãþ>g3RMY!”gÑõÑ /¼Ò O€`ÖI1§KKÒçµÄÍýðpo–²ASòñ°ÝíÂm׉9¼4ãùðÓ2fðo\hyO™—Dg)¦;kœÆ:–€&©bi-2©>ÊÂóÀ$RªSSöäBµìÐXª;Û~»ætÝ'/E±®Ï–W%»mJÎá®}³@¾ƒ³Öáv½±N]C³¯n›/!ÛÙEMà‹mT†¸nœSÇM’qŸn¼Ùí¿ÔI›W”XµÎ|+ÉηÜ5:¥ÿy¤'ö'¿YtRÁá¸"ç ;P%ùbÛ@ºFT[z~&'MôôyÉR$Ï[sk‚iP« Ù³?Èš½˜=Abɾ²¬QLQzxí±^eˆWñ‰TRÖ™{›g€ÅA•#` cIõ©Šo9Y!žÙïÛy<œx"룗²£Y0nÇH0$’¯ÛQ݇x¥æ™{﵌§!BoQw–{?$!Ä7Î?ÿñþÞ&Éáï4Iÿq“äðÖ$9üS1I¿6I/“äüÑ$9üÏL’ï IrÐ2µÿ#wIÿ+.Éá.ÉpIN¿ùíý§¿û«?ù•=ío~û/þůüh5$þåúÿÊ4÷ö‡ùçÌŸÿÍ_ÿù_ýîŸÿw¿ÿ·Ë¥8×ßüö/~÷o‰õ¿â½œûß|ÆßþÖïoÿ‚õ¯ÿ»ñ«¿ó·ÿÁsÕò—~Ä_þË_þ’kÿ‹ßÿõ_þoty~Î…ÿÙŸÿÊš{ùËßÿÉ_þéÿ­ 5þÝ¿ûÕµþÏÍ¡ —ú¯ÿì×Ò¼çßÿù¯~©û1ÿêÏþöß>:)ÿ›¿þ“ßÿ}|¦ùŽùŸæ:Í·ü¿ü‰Gð¿û»©ùöÿÃÿŸøS7¾ýÿþËŸøöÿÇ/âÛÿ›_þÄ·ÿ?ñ®æÛÿÛ_þĽÿwÿöOþÙ¿üÝ_ý­%ÝÓ/{èoÿCþÃ/üíÕÞŸ¿ù¿ýãÿÙ\´]™·©6êOÿnm.íÿý«?rMÿò?“7Wõ¿ú#Wõoþ¿âÏ­üÿŸ`×ýóG®êü£{÷?÷î·•Î?íàÿlWyúSoîy»óeµ[¸°¡%ö ¥³G¿·Ú6ª,Fíh% ^ ^¹å—ϹÔyÎ÷Ô•EÎðò®ï­ºVåïG½ß­ÂTïã}tI½Ç•ÒÙ Ÿ~ÙvU¸¨¡Ÿ÷Ø6;zZaÕcëKp²x­\Žï}9O—õdSiOÅë>Â÷£æêùéç¡\uÑÕ2æ_ËlN£é›9´¾Î[÷b@š‡óˆº[±êþjѽªçì(¦³ßhŸÖÁ:ÛèÅ›žk«"­¨Ãh¶°{D¶ÂPÄt+ƒ•¿¨A—Ýa*VTÌŸÏ—ºÓ})~è¡5õw¼·”_µ}WÆ&P”¡WU[÷¹­{Ï|&¹•é}óº£2N£¼ ˆç7”òĪÿì§N±¬é}u¸Ñ'«Ôø´rU¥iÆh<¢u/GäFü*ÿ£¬Þʱ eÈDÖéíí¬«‡X¹;³&Ü\C«‹¡ÄRu ôK\W¼­)ÚW=ë­e¦Rýó®‘÷¤d K±¿×\ªâ½úkªÅgðH³È#GVÕc%.•¨Ä-«õq¨T ¦#£Êr–|ÙËôæ»>Ç®¹w}çòÝ%ŒJÇÔ̶Èä©^P‚×h/¥'D ‘%+Ùë´*MÝ~Ïlk“Yù'jëu|˜ì'ºÇ7¾Ë²—^,¡Z ]Žë2¿éfa7Ø÷óŒÓH¦²¹>Åê¨èpæ‘|{UaûZbî¡=*qØi˜C·—“eÛŠñ?GÁƒ 5º_RÅéÀëŒóŒ¡Àåç™ç¾m¥o÷é±j­¬Ïôz×mX‘äÇŽTòíÅÛ&h‘÷mËÛ°Ãb,ò£Åy.Í(ow;úÙZÛñ¸<÷[§?òzõu8JìF¥ü$ßÏÛ¬ Ûä©<äËWWýÙ¾aEò‰šq_÷ò UGÛGMn­ I¶±Õè£cçõ‡¶<™+õ'B’4¾ìñɸH(õU=ß鈤¸µ±<¹0^Kžd­{¿ï²S…õØ€Žïi¸F ¹Ö† Âç²oûþ™tÒô+´v:%Èó»Û^‚Óб{9,‘§½ëâQ„ÅSž©éxC¾Ú»uÛŹù¸í&gexš¬Š–Ã$/®#ñ æQÔåÕùtÛáTÌÈï—í™Cov{H½4°Fn*¿½¿.×Woß9D =*ÑóôÛ4‡ù-­_ªfzæžÏ,úý½ »j÷æa¹»Làú²9)jË•#¦—žVžO³êÉãVìïÙ6ó®{§yï¶Ñvòv†:Á÷GüŠÆÞknÏa,sëÞnCqµyN¦HúT*ŽK1=¢9án•y;¦Í$n±ót™mßKà¯Þ¡T²ú¸|­F§¼".=Íé4ôÇ—k\•µ.m<.ž†2—Ç꾞F]§ÝÇU\a²Ö›Ëvñ“m§ç‡¼O•F¼…uÌ® µZ„FÕfû;G߆C6zˆ¤˜æ1vÜöA{ÌÔ,.ž;ðÈm àS´[ÊjØ­¦K+ h·»MÕq¬éØŽE AÕã?'¥5óºÆÙûI[e“N¤×oy¨}|—è\¹½c:ŠêbÄ‹¥\\í´!k ‚&z¯ÊïJÙ=GŠQEáÅ{ jö½“Yìçzƒ°š½À²‡:å ñtúDÛb¸Ê­è–òlÆDÐQZâÒ>¤8Ål×vÍ)º!Ÿ0aÑÒãcÊp¶ž[Ô´Ø­Ñ=;A»õRÉöUy@qÍ¢% KÜ«y»É6·»hì™loS<èØ»M=éŸ>U9!¢Ú›´Ð]7ÙÕà×GÁ}ÀŠºPí ¬TS//9t(ü.6CÝS?гØUW¡<«UñØnȳݵ}T Ñ]$UÈLß—VFËáb>äÓ¾ÑÞwÞÓ`§éeáåŒÔ¦*^—Ž ^;¢rÎ=«EÄÙ§•á uG6@ö(7Øõ¨ùò~HUI%¥VŠp¡ö{³¯‡5KÿŽÖ섉òKñtw±O‚:!`ø¥0Ã8ÍUNGC)¹¢Àöñ›Ó¶xà#Ô“/Ìê¬/®8k,“LYu_¤©tü:æ€òLÜ>lÿEó›`µ@šåד KpÜyZÚ‹æK„›);Ä—i¡©» ýÏЈ\ d%d‰®2AmÊGl%F£ºiŒóåræ©Ù¹jV‰¡É—°õ =âu:é"Kºh˜p}Š)ªê V Úï3¢uܡג®tH™ƒ³´-ö³6^¾A tþ‹š6Iuz]ë’ëXdzWÕÏö‘aÕ÷ÑãƒÇ²ì@Wþ³ÍDäûÖ])8“¨5Ë)h«@†¯]ɳžÎ4J&£”»ÆÔÆå!ªÜŸnYò EG­{G»‹$4µWÔ½Äû‚‡£¶ì万½Çz z·fÕîÊF4l½ÛFýç2BiÔÀ’­/±m+,*ÜA˜§Žñ±Ó€§_r»*òÝt4|†Ê©‰™ºtÖüìSÄ"^ÉáRõrPlè«W?UÜldg 5 ü(±¿§“Ee%]ù÷u½ÍR>Ü«’–N;“ -&nwÛÖÓ댂@–ÐÞŠðªæd)lñ?º'§îa÷±$z(>‘fáhE£Š­{÷»3|ôÓwq=WÒæ#ÙyÎæ´Ï‹®ËZÁAœ=."1vË ¾#Kçn V%Lâ{ßk‰«¦DAS°ËÒAîqd_Ìú4+švqm;Ívk“œï¬¼¹H]N×pìc¶E¦° ˜%]ìŸ×h£ë^—wTÿô?ËòÕc½Ô®Ê¯Ç}¼‰¼q+±CÙoOYÈ4í6³tЮÅ~)oâÒ\ ¨×£*@V­üL €Þ™ìˆ·ýSsIŸã+µr‡ônç%²ÖE?AÍ~-›ÈÂ5X8È.fcz¬ž&½®#”ü*‰À=;…>”B‡Æô¿»‰§*C~oVv ~¤ü"˜ÝÖ›òu7¹:[1áõ9¨ò Æ{J:¼/DFÛ—g]ì'k ¢²ûÅû`ƒÕñ='âÆú.’˜ê§*°ÿÙP!¨ˆÉ6#:ó»=Çq|L`¶âIvÉ[Ãu¾æSüŽê<àG ë•'ï ÿÜÞ6{¿Ïåñ]žš¹Á¾¥ÆÙÃß D¦Á:OîL§da%Ä7U©ïc>a¹é»æÑT ‚~¼X˜üMáónAaÊ5mÑ!xåªjÅjÄüW9SŸú–<5Û V ·]ï[Áʶ³{j­;ÏOž’E¿>„ÚxýÈiaOUµ’ƒ×ˆz§rÍjzõªnoô$0­PÀ€íù®~4ZsQDÜJo¿_¥ÿ€›Ð®©w3@Š\ M‚jî¶¢Nö#OR>‡[w¼©Df)ZV+ÉÚÓ¶ÌŠ.\<*1£§%ᢨ:½ =ñrß.ÒMÂg ?™øUI!êŸ=n¿MïÎn>ß™]önXÛIá½*Êþ)Ë × ƒ©x?ºf=y‘‘]Ú­ôj(ã(!ë"žÅ6jW¢¡š±zç~ªt$ï€7ä=“"?Ôk°|œ»ˆíÉs.›¾ÉÌp^¥üAµÒ½j¢ê@-#!¥‘mãÒviª8‰Ê™× N¡ï->×# "ËÑØ—» äKÞ[?ZgÐA Þ·{0—vYâæ: ^÷8G/xmyéf) I×Ú”š:¡Éú0×ΓõNØ{Õ0”…m­òYðÞ[Të<…‡´Éc]‘Â6!2Ý‚Jä`ázL@oC?Ôž'Db™&-Ó±ËÃQ7B;_Aàˈi¶ Ý.éR–í¹ªíð,ÑCñV:S@ä_¢¥€ƒ¤?Ž{·šKG>8âϬBõ.OȸËã#Ç¢æeM`ømÁ,ï™Å;ëàÂ[µÊ ³—Y°~(³ò'ËÕÉòO˜Ùñzèñuµµ…ewòôF˜ÃXid¿XV Iï2IW©#tŠèÄS. ‡î¤BRtrîw £ß¢2ú8–4×í«@»´Äs$}ï(J º'G~nG$ÍŠÞØ-¯xê³-çòSépƒ5XÐì"2!×Ù'¡¤¥¶quˆuçh„ã— U{ÕãôÚ݈’âMtHÙ¢-_ÃÖÄm'Ëš 3 nkÊÍc9Cúã0· <ìþPeªûˆ¶›†ŸwµivÄ©)M2ãfƒNÚëh“î[s=rVææŸ ® úɪ+?m@xn›×F’^˜Ü!Ù9G ¢ŠÊJŸ** ëÆØíûx­³¤À:2+xm§ªÁpÚ ¾Þu&Q½©Má3pñU€Á!÷ãìкŽÒ\«Q+wè æÏ{ÙÆ÷j+Ô«Rõ;h*‰ÏÛp{„× M°ÞN´Ò’‡÷ ²³kL#¦}…)U‹=Ã+¯½žm€=õ)ä½è‹’†ZÜvÕlö¶• wwÈJR£ˆ“=èÍv{¿lŠuø&ß]h0!‹®t1휯Z‡ÇÒͲŸ.¥U:Ÿ4txð@ÉôT¤Úžc!4H]­d±ŸÅþJJhžâIÀ9éz-ö—.³»=°‚{ÝÚ«¨Ä¨K±¦ , gëš±lØg<‚벺*Ús Í+wC]‘å!ñ"h@tN8c>ËWͼ (.¼®ÛÍô^å…²7þšWìU v íƒJTv lžÀ¶¬ðèÎói{hÓ¦ MÏ®è?LA½¼àÐ’KM’7êxª/ßi»V͉›.b`ëì9-'‚‘Øì:2Ô”áâ_¶%^ ydQ­¥*xåúÒr®œp@XQHg¦ÛB¹ÍQ%ÂÆOSWSOF¿óÓS½Ncñ¶¿(õ¨Ý6ó©{ãåŒËTo{9–ÁV¯ò¬Yp»Ã­ñkÁÓù®xµJiÇßùR‡gë´ÒˆÏ0?U[Žjúˆ¶µEU[Oï67¢v˜ö×Åæ¡üoºˆ7ÚÞmÏ$y£¥Òº&I’š‡Ú¾q@t’  ,”0•«èú ŒüÙ›Ç6°Ä¥ko^AØ´#Éɇ[áË`LT÷›5«j©Ê£2{=yˆÉr;@a…ÝsšÃ<øç2DoÊAè¤eK%Ôy­½íKçŽzÎìk–Ф+å¤-c¦°*¸‹4µ#˜¤’*7¤üKG ψwŸúwÊûìo= [ÖQNÍ ‹a†ÒÇ#¯§¿¥ÍKa¤¼vU¦±<è}“VÌY!èšBȇƒ)ÓE¾ºcÚßúE€4"4ÛxRŠÃ¬:”+\¶7T›ÝÕ Z‹Íäâ©ÿ‡ëàÕ\béš4ÉŽÀáyl·ÿÅ·óyÜSvágûßKgãŠu!ñŒÍ†ÀYðýò| BÕ(5ëªZf´«[C,6´F½z‡(’\ÛŃÐrb3î΢'±s`q9yµ_Ú²Q»^…*gkõgS”BüCíü¢(‘ǽj¼Z D»e=ÙHjá§~«s ߺزrêúµÁÔ§QŽ’Zë%,Úäm‘1-ÒI$¥ˆe¢Ïé®`w<Á$Køˆ×P\[2ê,ÈúTë~Ž,vÕIØÀÉ+&Êß œù³åx`Cá´é¸Ãµôš ûXt²mŒY­®¿ã³½Mù› û榦­™L’…+°¥u)XJÌS,¦âøA–Ÿœr¸O›MâãýAqÎ÷{Ï3ì(#Tr‹/oA‘åxõÒ{º+=£Kvi~C…&XîÖz†#·p›žõ³X`Ä`õ»Gå' ‚DÞìî®Ëà}Ÿ’K @ÝU.ÞZ;%M/Ž5rPW:xڷĘpËx£3Ëã! 2pœLHõ“=ð¥ðÜm÷‡ì¬5]t7VQüõU°*êÏÕ¶júó†,ñ•l/dS̽΃¨u?+"Ø‹0¢> Ù•˜¼q¡îå› Pímï:ר6`6ßóõcuEÆyA=ó>RêÄð^ºÖy%XÖruÖ©u‡.‡ÍF¢`qˆÔ¦ÐA…›½A²Ë±=B¹eH‚a;ñíÑLu©Tî6uÖÃyyí²Wî°kþ&$˜# ´öe;›ŽÍ<5pÅ·U£¶ÅEÃÝm! ΧþO¾@C¶LÜ;ÄmX°·™…hKØ`M{ÃdšJéÙ¡ èÐF‚+œ³ÆˆÂ±+;éü‚Æžº¦ ¸aƒÕs1Ú-–ÛšáP5øk[W3‘ ૊¼ÎíU«ôÂ9Å£^­äN’úß`%Ð e×8}—¦p‘Úì?ç¥ +¤˜jWñά>4g?¶ô£;‡ÚOjó‚> 9îÏ%ïm0µ¶Ä›êMŽÁú#°X*6Uʉ­_±šad퀟«éÙÕŸUty\ÇÏ*¸´´º:”}ìÙŒšÜ^Õù•&R¤K.e =í–Æ-L4‚cÔ[D;6O$nnß_~£³#Kû¾t¦ŒV#»:p¯#0žO¾@UVõÙ8çÅiâdl¼a¶ÜNÇW^¯ñôÐÁEË"óÆërõû8Ĭ#@Eµ‡S5Bváiu¬ÍS®ÇŸÒÎdF—*XçjC~#>³›¶¦ͳÉ"Â…{®uñ9cF…ø;ü€dÃfbß Ѻk ŠÓ¦zúD¢¦\«®0J†Ž~) vÞ ÍØòâÅt)°8Œ‡ ¿ãr²àâ´³p±ºÌ°ýƼ¯mý °`gtþ`‰à èÃÏXÆþÈ"dzþcßÊú 9¬½»Åâ\‡h^\ÝÒ™+=aÂîÖ¹™“¸Uy=¯4öÁ@ÛŒ´\ÚXÒà5ž ­_¡@ºm”<ñ_igGàO[Cºl s;Àésg%Oª N’Ò€&eâ­Æ›…â“1§¼š½K !LX6w>º·£-× W5h§ŠKµ°ì3𸭑ã– $$d8>œÛã3ÝáP Øö'+»¸œ¯bÝŒ¤—ÉfŸ¬ÕäšV묬OaÒ“®|Åe pW0/ÊØ¸òþjGVå‘q¯¥~îI6l²iXÃÒ®{‚~ÁÃú@ÏZ ,3ª}ªWQýÓd\¦¬}W¬˜—ìôY $GFuâ:ºµÂëm?*ÄW•”_\z`ƒs7ÑÝàH½Á:êok˜~XÏû^χè àé¹B$HuÝÃòðÙ {ž-ÆúY+Κ/ƒvN`k…õ‘¶g¯ÖÚ0?'kL³Ÿ‡x0&7á$˜‘È´Pz”Û Jù¿ÕÉRVô§ƒwñIj¾O2@÷à}' Î×C¤>…Ü2Èh;Å55ùL²—¯Xkg5±ö:ùÁf>‡ [ų†×ê#c!ëÿ2àðé K™)?ÚÏêLì”§us›€n³ïcEê|ô²’å_Ñ0 hÃ,s+‰>SHw+œy؆„‚ÉØø(«HXÉCuh¨0×ôµôV-8ñ¢»ùNº5ìa_O<ºE‡z™€½©Äuä~aëKƒ™ï+]WjçKš@¢à`ùœ0r«fg;«_ˆg(6X”Ôcà1¸!•¦¶Cvukƒ6_ÆDPAl^¡’&_PEÛc$Û‹ÕÍ\zÉöÇÑ[®`éžÃ‹ ²«ÿç,Â`Kò8.©’u`­äy"¹\‡jœ4&›Û˜­Än©†;Är³ ¸m…kòÜÏ÷Zö±íóx4õÚ§kì|ðhÞ쑞#§ð;2Øs—ë!ŽØ“eÚó`¢ÅÃä¡ì£”!‘Ð®Ž®R<Éfx"h±Å…êüxåѸÔ Û~æÙ04Ð÷ëO&»æÍç%øížÚºUù/¥èD§Zÿ´ Üñï_;>Ïíæ&Î ¹-…IVЂ4ëééCH‹‰ ¿L}¯Ûx=õ# ÇgêìqäÝ=MÖ‚LwI3‰Êá8BU¦æz ôm“™:¤o%vu5tr ÀoWÜÖ¥lÍ2Tb^°„'«û7ªCJšxj ×M†cÏV†ÇURþ<Ǫ=uhõ6ÅXæ‘z˜Ž$±“ÁÈ$ލw”òØÐ/‚33² Æv8%;Þ ¤iØjk´‰Jv³ñêóØ;Ë%½4>Ë×`%ÑãÊeïçéWñÁäËRºØÃ ˜â4À«¥§rì>Ý&÷ä×s‰Ê+jàÁÓ•P5R½Ò†™ó¾?­á›+ßö·fÛ,¶«Æ-ö™Õ¢ÌâÅ%ÿmà—”(®·>ݱkòÔ5eë:X:Ìé°1vö†Øñ¯§#¬F»wÛÅÚÓkÙ*¹ã­…‚£Û±öÏÊ\Öh†U(ÐͶ(òOwP$ÝðKòþD7m~Uãek.v†QÜÉ}íBÕÕ@”%E rL'8Uôû!4’PÑüaª ¯NõWŽÑ£,œ@LŸ=·Æ„ŽçÖcú½¯*FžÐ©îœQ$«¼Ï«o ©ÀV@âÕ¨€ x|ÉRß:þÜþ9^[D¤F¼Ý·÷çP×íNMß™¢[ÇkTW"„5 12˜ËªÉ¨á:Qú88”75ƒZ,h”·gu³Þ±\ªÕ)Èøã¥S.XYz±Ê6ß©t2EÍ:²Kj¡æ$]ÏëØP{(õû.Rÿ¬‘zŸI%çâlÈÓx‹‹ûƒ®:§ªy×pÕPËÂÖC6tNâJÏh/= ÙNÎÙfûf¸AÕ¨JHL*øªÑ™H| ¼†ÉÓ^{RÒ«Mh­Ñ1‘sÆRÖ¦$wO5?6—Õq½åøë/q!àæ‹m\ŠŠÐÜ”J˜tªÐo"e·¨•%<ÄzŒšÚ¸‘wôw/ûÓãŒøiÛê=ÄÕ]Ç/³Ó “ïÅì¦À÷k)_}{(øËõ³}îÈæä§Qû]Js+þ!6ý!v.fÍ›—¾hWЖbBòÊPÌDÑ^+‰U»»él,W–xûi–¹ÔÁª&羫:ë³”•öšPVŒèù„Üšv±ŽÑ=t¾aSë&«Ÿúö'<×jš^¾vÜŽØl‡ã²w¦£%ºÍØ!º Mz©¬Çmó\ž7ßêU¤8žwЧ,&&K[8´·íÛ÷ýúÒ‹´õÑ€ó«ÛŸµJ|)±Ä^„8u–xì¬Ê@À_å…Mó<ë¼ì¬ðK·šÝ¨!â«r†Vð½XždEr¶íºöïû€zHw s[2 óUtˆwï;PÞU¡çJ=ÃÕ+©kW«×›é·›VGmMöÇsª«ÝÅ€5)u¨ZqK­Ïc Ä“ðl<zfò­&n-éìô`ýOt±¶ãÀ†ªúÙÀKÍ]c[A¿M%ä?6»šDú-yÅÑÁ¨¯ÐùPß~Ÿm²ôúZFÈ#VÁKr\UΛ„»dQÞ £rÄ*>¼Ð7áV¢47N™Ï¿V¡†ÍáhgÝùråN¶9&lÛÔÃymtµˆšr¯bÐ<``)”ïX2ØKÀ_|ÊLÅÎfÜvùä<{ÿl¦ÛÎ& gá• ßã5°†`ÀSzf:ó£Ö¦¼5–‡ ’Ò ;£žÖñÕ^½ÈÁ›×3½Û¥Wé›=XÓ}ÙÑBä·o\7‰z©+eÛ{TòG¨ú±¢ÞŽqoáûÌV Çëre¹)'¥#œÒZ¼øËBþËŽwöãõ`–”ú| 7€¬T95Çlv&g޵$ä×!aN¬>ߥvM‚bIµ†ÝÀüKµ‚šO÷ìUEÀµ~OÉDe`¿Î úš?Íd¼ o†¬7‚¸ÙŠñõdœ\fMuÇãƒa\ÚNÿÁýxçšÏ8P†È–²*Ú„;Ý4 @fÞ HMäÛo8U¤2•M¹Aõ_à)$¸¯Îuq«N‹<°¢”ò\AïÝhÛèZd…#ÕK°µ[Ñ'¥¤AMË9ràÆ²S®kF‚:‹øp0»÷4Û{–9ÐC¬Èƒ" q KÂÌRüÆÑ«äQ™ÌC§²x¸¥Á¶tœµÕájvM?ÖnµZÔÛÏãP¯^<‘ôÎKš-©HuË%×‡Ü Y®÷ˆŽI|=6Ë8ÞñÙ(`èê¡°ü8J,ô;°ëAM³<€b4¿L¶1M4 t4á*FTq€úéü©å–Ïô Üä¼ê¸&;Åg¼Ûî3;Çàsõ fÑ©ÐÁå:¸¤(ˆÇA–‡`”sÚ~¬>KƒÜíJv‚hio.8û«Cî«zÐtNßÛaá@Å¿‡SQ…¯°áÞF6{ ”&û‚­"=Ùè ±ÅÈ{ú6ΓöûNi&¦•Vg=“ØN‡¨&p~vÖ÷ÒVµÛë%s#·”ß& ›•wâœÑ`‰1ŸYNÈ ¢9Ûgÿ,÷®7 )[å.=•¸Æ<ìóNV«.Là`Ñ3ô̹P%]‚ú‹›H÷}l#5ôQ’‰]Ví|$JÎÏáãÔÔvH½÷VÂçêê½u'h' I©¶¶§©+Ô£–žÒÚЕs®ô‹YÊiã_W¥ÃV“â¡Ý¬äù­"ž¦‘aÅ®Ú8ô;YM†[ìC€³ÁNmÚ÷ì]äÛôíɨâ@jm‘«%Z·úöK›;ý„áyÑC¤ÆE¶ T9kºmaX Éw³ØµÖÐÈùMkVgÿß•u¹Þü“Ú>º¸ň±ZDÐ wý>gJ˜ýêAaÃx²aýùŒëÌšos¯Ã.\cÝm—"pÌÅÖÎhAe ½ &w‚Äq%ô°ˆ×6l0!Ð]2+²/7µžh¦e¶‡ºñ„ÙÏ&DµÌÀóéjKF€ºÅ×5,½B¦LÓþk69mÀì.ŠË³Õ`,nŒ›rN°)ÇqYÈÕ „0  hN‘6ô 7"MuöiI„HlÏ:OÇ&AaÖF²¿²a/Š0™Ô¢ÔÕ2Cd™7§ÑÉD¨"ñµVèÏE&ºµHÒQcò0¦î{pÂä—‡q'v¶×Ûø2_ãÆü9(O·‘°C¸”’áÿØ’YÇ8oC`kôº:—máŠPgO>9÷’d+,² Ûÿ=t´’8oDI†ù~ÎܼMÉY›l!Ø­ë™ûleŸÅ¯‘ªØZ¿d©X¿SØNi?›òÆðð¦;f]-ÊZ´"ÎÉ[%( ?Ò©‡™•wÜ S°ûßA,Pm„u Mç±AºËEZqjî“ßÝÛÑJ…ÒTÞqÆÛóàlxÁœã#%Xs\Z׃=Tµ¸n‚›Ê‡N˜µló0 œ¾íOÄM$T•4x’«Ð;ý5ÚÔ~y~£²hs²m[Lµöo·Nuš€åí¨îƒþ:OJ-¨ªÁš~‹„´jså!ÆË‹ÍQq²±š¥lñLðjärU aaÂstL›cï½­«ƒæxÆž©“rÓ×f(²dyWÐqJmŸ“Wj}ä¸ûIúc8¦Š,‘$fÕ¼K\:+úåUÏÙ8ÅñÝ®™§>y‘ ³³‹6jÃÌžE_–”xÁìgŸ¥]®p‹£µ=±Ñ(x™ð{'†‡W**fKÒÀ¼Á/n»uHÑÌÎÎbóF!.[¥‡ªÑ•>¼è8=!qÖU!µëq:,QTòPÜ “uƒåE’Òj.ÂFm’nƒ¿µ5ÆŽ}\¸Î>.gò=™WøÕ¦¸)8™…îØ¶‘¢8›áH:Èš4—71ãf'ÝsvW„òqHìãfyhY9é¸ãÎZ{ÈÊ·Cš¯|†W”Ôs= Èw͉ÚåAÃíÁ$E´î1™)€+‹ìo²‡ ÞÍ žgSý):Ù]ïK3âô2•UÛõ¸†;ýŸ5 }a,ù±\ïmÙ ¬{ÝÚ)YúUO)¨°¡TŸÕ•¤µ­Ä7í§®J°VR9ú9Îéô}©T*æq@ÝA(ýhµjGÅÍÏV‡WE®è=~Žƒè €/ª„I[4U¦\Qµ¨YƒVB~ .•FÐcíÛRm'êÐ2X=€ËN3€ XÅÁcTÎðYpìÓ}™|VŸÏc{'³ÁKôÒÇïëµ6…™PâÖq 7ö€L”sÊ·’,YÛêIÍž¢“¸·nY/í‹TÙ¬'Rª9l9Ü•¦ÎˆåvnÉKÊ# =¿?ë Ï­“Üå“]Nì’é)žlî9,L7Ùá°„ƒë nO›ã«4TÒY)ßêJw‰¡hŒ>Óa‘Lµ¶ØîòD‡²·Çý$õØ(s&WåÎöˆÔ9t¶±ÿŸ·ÌnÌ2î8+ÌÄ’Ó©^™«Öa"»–RŠó¼°;_Y?7½·Æ¸§çdÛÞiÿv츟_­ÈÔŽëê q5ÄÉ 2¦mbWÑöÖQG¥‰Mý ’uº‡#1ŸÃ-@èlŒ3ȓȩ­%ÁÍLö‘“–xÙÇÎõӟ̦Lö!%†‘ÛùV\ ü ÁÛÖxÊ<ör½¶œv«µÄ©¸Âë^µg(æç ,2¯½M-·æüÒü²­åœ‹²íæ>Ê1)½6Z}&¤ º÷ôVI¶9mÒvExÀ|T e“^6nß¶wéwfŸ%;ªª`Ë7±Á¶½Ä÷2ÏHü«{ÙnÀ-_G̨«”R"8Qóâ'ŸÎv(ß„bg9j¥ð7¤¥aµAu”\Fn¼•Ub|ÎÎ;iÃý3l[á…¿²õb‰k´èÔÝ`øÛ'¶Þ}=â›éȤørLéÑc§aßyËö”B †z¡ œ·@ø¸úÅåF'¦ù×l÷ƒÇ:â˜[bìØzH)š5Úñ @éóÈ—Íÿz\X (‹‡ÜÙ`¦EdÕüÎâdäùoBÑöèÇQ ¬yÿ¥œKº|à´¨q~ŒlM‰üRÊaîä¸'[9xÔÕ;”§Ä»Cy²Ií­g&’ÍÙGëÛVõfÿËP{"Ê8‰ÎÙé$¨ ÈQ¥é íóòäî;¢æ¥Ã!égĈì?xE5Ù–oäËþ°'ÆtÒ^;¢^µ‰«ÚÃ$<’Ôò­©b ƒUµçëe6‘Píý2\ìV”58Ôh– „’¬Ý/ãZ+N”Ú9l‹‚B£ÖYD <·t5£¶ Wm éiB¸¸¿:ªo"O²6n ÑQÿIÞª©Ëžy Ie©C½-‡ïÈd?@iË•‘ÿ"×6ëdR1>yB§}P]µGkéõz0>Û–YHž(´û`À0¤_ǸjÐ(wØÊW?Ÿ^Í€V™œ Çy9ÅDBb9Ó/E.9f49+6 ; c$Ï€îJXhê2ƒmẔ^’óò|€#ŒÓ:ð‰Ú&P¯¦²šÓP6èQ¦U7ŸB ·+,«¤¶ºÒ¼85ÍÎ>Ì$Y}µX½—]NΘ<ÊË(ó«k»2µêâM迨êóÍ…°•õ˜¶G?Ø|Z› +åUi©  ž%å[è­v` ÏÈ]Z5H\RP‡×›÷ÛíÙ°aä§„ý×îîë#ìk‘°Ž‚½ ƒÀ?Ïûj/ÊSVj¦Á{J³;º7U;DÖíj¤íû¨ÏÖñÐÕáU±Ü†Þhy–ØéÐ ¥€ó¦]ùðæûèF_ê£>ëaˆ˜±Þ Æ/¡Ç»ÙõqmôäòK´pGA‰¯ 1ƒ‚Ò|šK€1wgy=áxž+ΰ®i‡Æp¬Ã.æãTñyØÊ«ë ;ÏbCwfJÄb!LÑ™ÇPp•LŸÅå‰*%Vo70W‰r#´¹Y^ó®Ræ¬:Ua¼Ö‹Û}Ú~ù>ûÒ@‰ &¹ß ªïé¬_ˆjh®O器«ÈTòÓLAÍì½TŸâÎç¥ÂùVŸ£jÀmÒÔ´d寖jwA׋NRò8BÙåj"æPà¥nQЭë?V&–ióP¼«ß:ø•Ij°"å·4%Vˆèº8ƒo{bÀ·>¤êGÁ‹<bŸ%ZÕôŒø6ªyÝ=¾„’Úˆ$v…«°èr²ÔU]§§À±T™ò•˜a.0öЯW•°þs¹Uï)·>àTÏ’‹EòºNW= À¥6ý”ó“é"\²0·Rªl% H¥²¿vèlj;mS3ˆóö—ºp;ƤB}jjÎ;g<ÔÏ:]ó邜V±Ý)[gÔ›†å‰}©§*+Ócö‡•Ûh ²€K†løå J{5§%Z:%™æàN¡zc³”ˆòÀ¢ì'ØŠgßÙ ûºuãU‘FžÌ½¿¤ eAy¢dŽÇ1e~—ÝÉé-5®³¢C £á\uü§8@éÁµšÑÃ÷×ÎTÑ9ÌÒeªPÌ&|6"ªÕiÃP<Ú¿wT$Þ#iE H°wò‹vÞ;Ω6DVhk[bÔÃûSÀVœ¬*‹Â#,7œTµ¨›\¯G¢|¾`)õhêu&ü†íù=·W)H_›Ï=Þ¤‡Nüì*éŠKg°™ƒþ]›kQæ·ç4Ø¢V ^ˆ™Jn-uàÉ€Ê%ÖßÍî –b·Š’WptPdzR‹ü¬§ð è³]Ù:nT.ŒÅ@aK''òdiר™s"Ty¾æe¿G59]hxÒÕaTêM.òFµ_aÛÄæûÒv…_KÅ& ® QU•)j]óv“ /kZWÐà9†<Äè˜@G°DþI·‚1^–TÅÞñ —-ÑìSA*×p¾Žr¡Šš¤Vi’ü;?°ÏäÎR6x¨Ú­¯Ìöì¾mã{°WT¹³ªQφÐ׋Šð‘‘’°ær„ÀÓŸ9¶-@ÿ€¢¦%Ña]xµÁ¤™ýè8€óFXŸþ5Y¯œYUæ|‡Cìý4!*¡ò%6#1±@ÿzvNõµ5‰kïE=Ÿfà°‹k啾9٬ƴBÂ:’x~'c`ÍY¼Sè½:£1mõTŒ·`K…R¹æ®ÝpÁÌa]8ÕSýå½kI4Ȇշ,Õîü€—,»rë+«©ÆC»=‘3h@“xu}H§ÑJFb…Têéšô¤­'Ác3<¯-sÔ³„ÃÌ”G¾U·=~G;VÕÝR§™v±yØQ¾!®£ÌG\ÞUuØÅ¾ô¬.Pt«\«¹þn¹¹Ã­[ ºÔ´¤,Úé°ùµ#¤a›TÐ!<¢ÞʰuG{¶7¥Þ¼Zæ*mxä#“ôS5ôæ  ¯Â¯ù…8þúê˜`¡D3òÔ6±êÀóp KÎIØ su®µRUáV{gå>¾z]TÛñwñäY!A’®ãvgîÔdëÓ°°«ð=ãÞJ+{Yfžl9„®ßŽd¢A˜½BÚ–«ÅöDyòkAƒÝÏÐu ËGLõÍi[ ÄÍNïgž‘Õ’Õ*‹Ž+%P «yˆ ´‡£œ yôTúv Àô¬AÀð2ÀEíßøt¬òÄLf¼‹ÝÑd[CÕ?<:Ðl,`|'bÞ€¥Šc¢ Þ¡%ðå<Ê1aíšRª‹&VÊ­E.ȹ¹‰îC‘2L+ìèïhׂë<û~õD'Ìò¬µus¨M‡p/|³¹àª¿Ú¥¤³GâgÓ{E‡ÞCñÓ]V›àtds#Ô–ähª¯æ·*´wåéMpû"Äê;3þXªñë¡ ‚95H-¯íV˜ÙÙ`e+%ÄöL(Æ÷†‹XÂ(?±²¿!l‡²›"ÖÛI ™ûÑXaÚÿàó>~m<x+P°xø1}Ú¹ÿFe ±ùLPzÆèÙ㓎Oöš@"|f­“[rHµ|Á;аéPOµ¹w á}qús‡c¦TfvØÏZÂEéˆîÞªUëž@¦ ÔµcØmÕJ]µöV¿kS¥A‚z(Yº*Qu´Ë8£ÔJó쉧š¯0æË#ƒZV{ó™-.F– íKV—l”éyX×jGêf‡´Èž­ì„ª_•z6"xP¯C‘jL±z.rœ qËÉW 8¥‚uŸ‰þ-A¡ÛU*UW}Mµ’ƒ—(9_òÅ>L©¿ÆÒÉ 2õðzîØ *Z¹l’5´ÇQeëR{«">ìòÙ„4¤¤Ï#º¥©Â¸žÎÙ7[K)Éê–ço´’É^dmóù—&XÏ»‚Žovˆ•@vT1xþúkÅ—'™Ãy䯚çöB¬¬{¨·®úÏx”?î†êý©,@àåñ–Çú¦.‡DÙ²]´<€Î뛯sFh%\køV>·ä¡Ûâ)ÓÞ¨”šz‘_éÌlÛ«Êõùƒ 6{Pd¾ÙåµûþÑ uÖVï3ÏÃ=á2n5²£º‰‰–ÖwzÓ=ö´+*4˜Ž²ïS(´xÄ|>©=ð”ïuÞNÜYŠ¥Á÷ÝÙö¼Á£·LÖùÞv“{öŠ»6þÎÌáU¬K:›ÃL‹ûó&#vów¿Òn´~Îd³—ÉùÑago Ó%jêaã˲?Ÿp;· Žå§"f<›ú‡’ËôC|7øbÀ¥ödVo”0q{ Y!F6^DµH ¬KQŽ’×óSò/Ž€ë(ÖCn¼mÎ%ééwWtiòê±?ôIw" §]€ˆ¤~~ªhpH”ƒ YªI7©ÍešˆÒ,ZƒKü(@‡/1ɶæQ»0.õÔ†ÛCÄÜDšçZŽ=‘h-ß±àm|SvŠ:Ò?Öy±xný?†t&3º{ÜgÞÍvã[­æ®Ó!!«”+OÔJ@fâ³pžO… µMX3‹r&®Üa•N Éd«xíŽ_ªä°•jôäFÍ™—¯ Ãþk5CMéÚa¨ªº3ºªíqê-’ªÀÞ_MÃ2‚Ì£¸Çòˆ~Šû›®¯WKé±ÂKrú;zζ»ZWG¢ß šDõ—>»’Ø®CC¨b¦,<>Àr;/Exø*¿ù¯ÒR${pµî£Ü¢„²²ÚÀÁíÌPB¾ôXjuÙœ°•fµ,Å®RñEߌµ!L8Ê L`g{8£Ð PìKÑe‡à"0Ø©X W†¢±ø>R_‡o«üæk·Jh]›Ãü@ó¯|h áÅÂ/mð0vå[€‘J Ám>ýT×ý†¶2¤dÍà&a]gÜ»í wXrbÅs²n À>6ÐòG*Åweòe’åƒ^R}ÒôŽ0¨˜BþWr¶âmÉ'ÝU5Ÿ_vt:é?Â?WI 5¢òÇ6Î×1,P ¨ë ™­ûT?2úM:þ Píž’‹ªÉ(©Ÿ|©ÅžLZƒ±7b!+-'EP€€ƒÕ±-eÝgyÿ&ˆ“Gç¡jsD¨m} iŽ”¿LêX€ßƒ%u{aÒÖ]'ª÷ „Ûx5¹’Ƚ[Ö’¶˜Ç\k³kU{Ér c\¶7­5m-Ï/‹3Á•HgÈW ÄÇb¿ó`üHª­Ã¬‰?“^ûõÙÀ[Ø CÜ"l6»–)SÓÄéI2hOÑùØ×š#KÎAÈ—Šõã(ñXùʬ‘¨W3h² }’#²#¡! Y…°”ŠÈäŠèä, jp¸÷µZ¡yð›ð ‹d0<Ûÿ€hÏM(ù9ÈÓKÌv…¤v UoÖHÑZî´E>Çsk‰ÆOíùó”Z¤œ½M)zWTëeVéžë&Þ9ªEä«fm¤³2µe]U×+et•à°JAÔ:êÀl´ ôuŠ|*ÖŒŽê÷ÚÕR:Â6óû%×õ£õX±Uúšº¥D¢µ:ø!zåÃÿ ‡Îà-6ó‘½ï #Q›·i“bnTR$)ªö~C—(`RQ"RD1g9Ó ‹ž: pÅÑè¨T´N¢9Û=Yؼº?ªI.í\ƒìÃ#QŠúSpL™*@(¡ Ü?SžE è¿Óü*û’ö­”Wë4QÙ8]ÞýXšÐ‚¬È ˆHZÑ)¥vÙÊc_%8§÷Â_ŠšãÀ:U_·J„¼Ò K»m/æD* ÌUK^;#ZÌdÀÜf§j§mkÔáâV³ÙšÓ–aë lM+»ypŸvLÛCê¡wʃWËâl÷¨X; J , WQY;Öñgƒ‰ÃêÉ/PÏõV#Xí³Å•$ øÖZƒWk-è™HKÊR§‰‰Ì6ôrÏ$W»WÉìcpâyÐmO]QäÉI³J²;®õ²žƒ-ѾAÈhqÆ“˜hƒÕ~zÓkÈz3û°ÃŒîÒ?léÉ:(G¡º_^/â Ff=ßÜë…ì¥Ü¶˜¢`2ùœLh–ƒ–±¨»Úm÷¹X$Ü!XÓÌç-ëåÞÝòœ³?i)3éÝQ÷ùTlàù’ !};¥`??á1I'Цݟå6¼-eAk|kƒëKöDL`ÞsÄàJ>†Á OL–æ=§Bš9?þk~f×éXŸU=0åõ$…mœüºª™JÅeBÐîS¶WìÙSÅg[nŽ x¦Ë^ÐâMª¡õ©}µIë"Çà0N¸L½Ý¸·ûÕ@ÌÉ£[ß\‚¯][ù[÷’laù°ƒ7¬×Ô“…4\Z ¹mOTa0¿$ÏÄù†{¸œá¾ŸÎÔ:59wí³ßt„€8Qð«¢oP½Pé V‰®‰_ôsŠj]&ít³Ô£ÈÆ"ÞYÑYmÎ~„nuÅ©¢¹rÔDò/1^ÅíÜûã0LÊšºKœúoJP›4ÅèÏ€±°YƒA E5i P„Y9‡×wÆ–'%† ËbGüB]ÌåhßWÁ‰óUH,DG´£“ùôŒèˆœžgÁ)—°Øê[ïîÇ; }ÍÃñÖ¼ê'ç,ç~_þ1¶ódK¡xU_äì¹E·«ÝƒŽoÛÖÜÛ嘽V©Á³¾gƒª&³êY?º 'wƒy=ßwÕ ÛðÐB7»k;dúñüc@M›u@!ÈÌfÝzÐÑ´[8&³6 ïPVÛbo®BJÓ ˜Šç±ú¢k®ôúv‘\NšŽG ùh¨XãÑ‚Ë>Ýþ¸rÑ"Õ5ÇEAÜj%MEQ#ëqed—-Ú=%ÛÛŽ§Ž¡óqݱHý.Y1ÇXTµ1ž¸•¼aª»fAïtBP qjEÚ.ÂÇ_ÐR݈ÔË9ÀvD((C†îØ9îéƒÓKÙè;-º[µåÝÚb$‰.ÝÊ t=~v,YÀXEœMØ?ÝÓ´¬ÀÐ+4•¯© u¾µc\Q;‡ë2—’ì%[Q?‹¶[ŸIIÈš`\jõ Å˺²6^MÏd²ã«‰- Àšg명¨¯†¶<¢²a¿íìJŽ’©3X®Ì»t,…ò­['͈¦Î„oµ÷À…PÙ[=ÿbo“6n¯Cªpá¹®†¼¯ÎSP·±€w!¾í@»îÀZBqÜ(‚¶Ôì%5\a8‹?þ™LS¢á4ÛZù"m÷ÀÀ€^•àÖwLÖõq¢.z±¼6ËRÓg°FuòÏ̵ÖQBŒï鬞aë×N–ÈÿBÔþümñZï‘@û’-¶šz–Ï5ŽOÝ¡%‘qÛíIƧc+D:§Éê:³{Çâîv¸Ã'a{ÐýÕ¯8oæ ÷V¾š5ò%5ãñ1V_Ó?,SÕ$ËÖ——-¤³\°…C]Ÿ¹NZ³W<Ú204ÙR¶3ò|·:W³¹ê=(ýºc$|GßýÖ[™%u+9!8Ö€ ÒÖ¤ÿ‰½ínä8ÒEáÏ“¿ÛïÑ1¹§›]÷‹ffoójëlYÖ’dÏœÓí5  @uƒ¥nkù¿¿ñDDfe xiY{/Ú-²Ô%*322®O ñä2&óŸô ®â̓œV, *ÒžH{ƒ7'ˆøÜ8œ6;tÈF×$nBÒ6Ë+8 ÎÑÂ-]`7Òä’&‹¦=Æš/$X ×2ú¦ öMêIˆsÚ $=Ú 8ð¿Áù%™üdøž2Ïv%Ä|‚2‰êS’?à2H':3¬TÒ Áƒ”èjpuŠÒ@„PК¼ä²3Ü H€!œù9Y$90?hÌ ÙQ1,`­%Œ§„ÆïÑÕéLW)Æ€™@+õ’´5RYB CÆYhƒ²§ŠÐHK§×Œ‘² ÄÒ}‘ÖtÐ…àƒiž¦$NH»C¶ *ìIi11º «%t›KdX#ý Þ ¡Ü’I@j¥up—8ö2Šb -T”¨Ñ›7 UÝhÄ|u‰°T ,@Úï@© Ê?‰HþŒº®t -°ypŒ‘zŠ€!mçð€¡ €èJ‘OŸDoÚ)h‹¼øÅÒH{Ë‘T…L0Z×oçpìã )EŠ$’'èð}qNšu€ð°!áÁ€}lò+²ŽÐ9-ÿcÇCk½qGbB2kO‘ô}Šv ôgtz…L¡+d †BØG¤{d´ã…hð•$ÑK,ÉE¨µä$W Í•ÈCA-FÐíõºè=@ôAÉf("a•Û)ºJI4_’pÈØ бK€F¸6îðˆiÅ)C8ñH'€3‹˜‰Ô' y]°;`±A{al…Üd!¸Þ\™…`5\µ0‡yx 0c°5WôE´p_à• 4ú Ђ(89Eoxî°)£_Ý)Ù›çgWdòådñÕö-4ÑNŒè#%Œö4X!m¹)p ŸIðá5¹€´ ’ì#í íòâsFÍ3HLTe‡RüŠÔeT@À*â"ãûÄ‘FÒïé´{(ó&ý€±)I¨_dèâ PZñdS'´EŸ‘ôa^(±‚f’ðzGψÄFzŠÖ—†^ùø½h¥ÒžGl#"’2Äø%úeåX§4ÕçðÖÑ}r —Àg1´ˆhKŒHc:e -t6QçÙ¨†A9% ûÒsôÿ ÜHÈ" í16% ê°ŸdŒÎUQè|ɤ#ö*‚Ÿ“´E4©8n€”ÒMr.H¤Ñº†~‰ê ܜþÃŽJV6šÅå4É~—1ºÒ Óz‰yV’`¸ÈÌŠJ2 7 MÍE–p³ AIɾB§'zû õ£Äé—H I‰»"Ŕ셔ÖWrA÷-/cH¿0lÚ,—@\$ž!ËŸ„í7´l²$¿BþùÍjyi‚‚62`á&€‘½@¿ Ãed’Ÿ¢øýX‘!‡\ósä”’,,eæxËŪåNM¾LáN8Cw…ðfAÀµ‡Žœ§@íCZ8Úå^±›¤0Üš6fôo§EvÐ#!óµ§è—ŽÆ"¤þ“|ÔkÆU@b²4e”°8Gž" xà«Dè5‘æ0žŠK4ã €]„x©G‚ÇÈ!E4:ƒ‚QD—P3V’Ok) Ó –6PrìÕäXÒi5{õy@êÏy|eÒZÈÆ®" c£¿àÑÑõ8ô—ð D%'ã‰sį–é3% IÕ-€:€òà3ô¤Ç€ÌЀ,ˆÞÙ)ðåIî‡ðÇ Jž_’h‚CÇ\Ð2¢3mPzK¸Ä»@@ÿ,ºà²ª+$lž¢ÞžÔê2#¾Õ@Ïå}h%a.¾ç$ð©†v”åe‚ÈÄUÁ€Ò9Ú=d:&h­qqÎ!€Û@ôŸÇÒ©gɹ»ˆ­Ð+ÎÏZq‰ ðH{&Ì)Ùæè ~aš²M£˜“…J4Q"qŒ¦4—poÃ1Cª Ú²3Nl6: ;37ü'‡Äb@»6ÃçÌ0w9Úz–ÅgÜ%fÌvwÚâ¡Í¥•¤ü• ŒéL´ä€Ú?ÅÎ} •)ÎStê7ñ L"° ç f!=Í TŽ‹y$Ëa*ÓùÀ&'u» ¤8á-!Ñ‘ž]9àuPLj.'Èç ss†dbk¤Øp'•€t¸bå0)Éܘöjbbn] ?éÙ%m«@rÂUÄ–I‰<+$´„Ä5ÅZÒæ†ŽBðÑ_¢¸ í%Ûèµp° Æ]"§@ž¤O(M¤Á)Ê)Ê‚ Í Ø³ìÌœG´_“Œ”" Öé'‚E\”—€ž‰á·ªQIýK#$s…è,LbéÌ1:çæ´îÄ3¬E  ý™O#Ä åîì(}{>;'Ùô7IPHvžEgHŠ(/HG Q·uФl²R„ÎÀ— ÄhžG##¤U¦•5À°B¨…ö A³EXPI„ò^°€-ÍʳZP@q$âÉ^ Ù]š>(§è­Hbõ,ƒž¢Ü0Њ#ƒ~OãC-*cdFh® V <<½€u<l\·CNò—4.Ĺãx¹¤%ÑbQ‡1ΦÁÓÍJ Iɰèú“`ðÈÎH<ðÁ @ZB"@‚~udË)50¤õ‘zŽŽjH¸ÍH~*›‚œ1¤1mÄYxš;ø¸Sî‰Î´Nci2jÑçÌ4%1€8H A™ ÿ“@A…BQ—$†.¹Ï1zräpHž“ña#¾ÀjLbµ|ˆ#9É<\~>£%w  »H¹‚Ì>Œ~‰Ò^‹K€žú›V+‰¤€4hdÒôÆ([ç²´3dÑ|àËæ xêH%/Bô¥ ¹`>GÆk‰JÝ€ºWÈ'ë`µ¤«"ñï’®.NŸŸÒ<‘p6’Òp&p,¥Y†ïĸHÕ'‰q††¦@Þ€3Yï´'–—´-ÊCÕ vuÍ$ZPjÛngH÷AŸF:ÜŠ¦s1°¡Ñ¿:¾¸Bë6²y/s´,8 µKÒ®ÿ†þ+dtdô“ ð"É{ÆÒ¿@·î$ã].ÇP#© Zhç«„ÄÊäJŒ¸A|9A5­Ÿ=®®ÈÚ +ú<ÙÉ­eöÀ±†&™ é&bYŽlµ3¥pAÍFn0¯Kà!  o5Ù@HÑ'8L €tå ú÷²jN 6ôìŒdê¥ÎÐêù×hˆE[dç \ÏsÚà)¸*ráP¼ÈD /i§ ŒÈ.ˆ|‰Þ4¨`ÑÜ~xÒ3è´gEE[@B¦£ûë‚Ô!ÀÎh"È̹¤u‚@~GCqc^Òj¼$ùzI%†9Jâg_ ä´Ë3„Ø´KŠ{Fò)2FO‘ „rŠ‹âýÈ)ÒÞX"„H‹¶p<“ظ"ã;==E|u#òEÐ_¸0+QD/@ڀݯ Ê)‰ÓQ·Ov6YgÁ9@í ”Gt·Ƀ®¼B&Ìú’_’r,šyȽF{C!Yhð¢\—íð 2ÎjŠðY¦P£Î‘0Ržr ±2 éîÐê”Äþ–‚4’ë´0R²hIq€rE w!¬ÉKTà€ă¤ÄæÍÄéå9b”ÀIPóW) ”ÈšI¢+ZÊ"žÄñ´DM”Æ Úϱ¢ûU!™yÚȹ†Ç€„m iÄO-•ðÇÆÄ­ñ9éÊãœ!@²J²K.RC÷ðÛaJ»))~¤«_ mÑ—…“uÌgfˆbÚª€¨*ÖQÌ W ·"ÌÆxyXAÆàÙ-‘ó‰sdÚ maí£ 4M€Œ 2‘Ѳ”Vu lŽÈ†KQAyNë—vA²³n‘¶NâWªéÎR„\SR=24ò(Y ¸~R ÎåÅèc´“2ç kiPõ*•9Æáâ%|ô1c`,°”Í8¸ìië‚.HË¿€ªKóD8t~Aöœ~]¤´&ôäHRQˆÆghk§Wd¬Æè h’Y±¡ÅËFm2WçX3kâ–Äsˆ]:ÊhÃêÍІ‚ ø´.Q}lH›B*`pí9ü’å‘‹wï ‚Ž¨‚%¹S€‹.#äìe\ãOfJpFÛ;qT@FYvô(Bè €û…Œ|€õ£…Ìè³ì MÃJ´~ O‹sFãL “@ fe@l,`eE@I¢•Kƒrp4¾g Ÿ›OÀÆËœ,ûK“–³^\Œ]]á˜Ú1vGôOŠím°q†à}P•ò— ij+ø±Ñ¸–´IäÎ(•Ei ásèwÓŽu*®:´ç¡5¬Î«ÐpÌ—Ô—+´8|4úC“ˆXH‰Æ$—hkŠbäÍU2%•‚(ÞSªÜ YX$ h?B¸œF(A×VR±€7Š&¬Xp@£S‘IÒiKD>-çŒT Z*¤“œŒ¨ •ø]]/Ï3Ú/1È& éœIV’°‡PLŸ º ^dLàÙ!ÚIry Ü/¤4ШÁÙEZCJ}‹dH4Òò¯€9~†Ì‹S a!š`2M/ð-…Eéš!܆gÈŸ„^že†vs‚nðòœ›bŸžÆèÆ]¢F>ÖùzÍ#W/…-‘¡ËDà§Èb¹ ²ø*@`®àq¢rˆïÄc9:Ⱥ  3§¢ý&O3¤—ÀÝnˆz2È? ”j²` Æ\ LFÊsÀ˜E½e„¼¶H`cq‘þ…jc"ª"Ù*ˆ¡£BÏ9IÎ3Æ«bõ8EÕéY„Z Æ4ƒOjC í4T1¯:º7 -QßAB]xhG¥ý@òÄ ¤J“WIÜOÚI¸ Rq’òª8åF¹h@bžvg´.@ãÓ!¸3€C <ý„i©~áÙhÁ`2†B$hœ%ÕˆòÒ2Ž ´cÄ  C”¢cæ%‚ùhúC*Ð92xhƒ79çò»“ªE")=gÐaLqªÀѾA›txŽ´`$Zœ±&™š˜ @ô芆ÂÐŽjNJîOË%p˜‰+ÎióŽPÈDÜ^@¿’«Ks†Ö[Üp§¤GÑ*ºBÍoxGì_&µ”NÈI;¦íæ*F%™h6žLìÒÀYˆ£SîÔ‰Y#“Eè=D‹î1qÚî°øbø\/á­8c·íîç°&4½W1Pñ‘(N'!Š@‚bFt."­ÒüË4¼…!kˆVmÀû˜vöÏ àó ])PÃANÏa86Ú°Þ“dY˜€7‘ŒF$Db;äÏH(²Ð\ I½˜5Ú\hˆIÍp dOôð¡I<;Cã X}4»4@gÀQÌ‚ÄbÌ#ÒÔOI{Ë¡‘œ£´ ҭŧ£†°˜!7á`'þÍ,A:iYh°Q# éhw/D¾8wmB¢Ü%ìÐS†èB“„ $¤ âƒTœ(íè,y„eÚ×NÜ&ë*š÷9ÎZ 1Ò|€º†ßÄ£%CÖ‘Údh©Ädø"ØLÖ*ÙHî]f¤½£8ƒ†+F§®K >Ñ3ÉFeOò~ ;¼Dé7éJ lÄø¤ÐÓþ‡x!p±ÑÊ;¹ zJ\}C+IǸ(Ðãî’ jf˜l² òÂ%÷Œ?Af#Z%¬"_]pK\”h£RÀMðÉ ô %õÓ í )údP¢õ%éPò•²IiOG)±Z vÑè8Aú%»O£Ø€®È’B«^ÔMhÃ@œ3#¾ˆú\3t½"‹µ¸#'ì!¹ u7²† ~´àÚ+©n4Ùy†¤%@l’ÌXÃ"S€2$©€= ›ëô4BCX’±h‘ƒ"Œ”±4iw£!Žw„ÒÇMxQAÒ="‰S"™ðŠg1äü•A Uˆv|ØìÚtòU"[5¸$%QMúA x7:ÈιE)ºÞÒþL*):‰žä)¡Àå>¥ŒPÌ„ºtZ™ç¼%s ˜ëˆü3š’<ÒÒ¨ÈBIËÑš‚6hÔ)ŸÈM Q=xʪ!T$9]מ"I0º0gh[šÒ®‡FÊ´ÿ¢! ½ã†.`U€c"¶} ´( —¨bD`†Ä™¡9Ëà¿âòå´ RØw„Fˆ¬Ð†CX—¨ Ë3KLƒžè]š€pÉ "¶‘œIïIL/]L$¢m,Lû¬‹yz~L¹ˆÆà"$Í: ÔÛKÒ3.értã¤ù¤Å±‘¢uiB$‚È8 .€ÑfYrÔ9—ùKà֋е 09Üâç12b z_œ„ ÍfÆaHR•!p ƒþìB„p‘nF»¼÷¤H\r'Ͱ,Î9­‘8>„£M#ÎÑKÐ@‡ ƒ({ȇ: ‘Ì+¸ˆ!Ú}œBX1D6ÙíÜI¼„£“J‹ )ÀÈÇÐÉ \ ÍÅ8(ÀIÎИ–V"ÝN­ð\ÐGº_@«í  ýèù‹’Ž îF ½H-@§ pLȳÿ3 ‰HÉM»8c$,”Ì0æÏyuÿzhC&Ý€÷ ;§°Õñ)p®ÈÝ¥PÈ Ø]„LID‘JG# ?þ‚ðbb:¹D|ßœAØØ$Þ‡´¡žÁ —pÉ@ÖH8HЙ„Û:Sž"sÖ3)aYš+,”Á“™ƒwp%—À ¥'À«~I;鸰%‰ù^‹n0d9Cc2ª ´ †)Laâ7â ÔŸ¡bˆ>G¾'–ÈH.ÑYá‚b Eì•Ë+Àת”hMu6;‹Ñù*DÙ&Ø ¨<&Ƨ!ò+Ñ|ˆ 0ƒf´èCÆjM£Y$€usÄëIdÁÉsEóxrdz‚Ä4․OçP-ÐøІÜ!  kç¼â—¨¾HÉÊIÈ”$•"YŠ Òr¸¤hæÎ¹YRnH%.ÈÈ:F¤4žÀ.B°:Ba ©KhŸˆÎP—è¿G»/±iG(—»2ggȆ&•þ­A"d°¥@Dˆà ¾*þ"ÓˆnÐô™l¿S˜T%_óÈœ×( hDcÂ2D#׋3š°­ÙC´LìÐóh3(ì~çnG SJ«˜sü TËÐ2 ¿i3¾ŠQbv æÓF”“w G‰¶„†à"g1ͺÁÐ0"Aê" ©i4WYdôê;ßiY’•G¶×™?hÿšÁÃ%iF§‘úŠüޱˆ´ÃˆÑ¤_ÑæXžÁU&ú» §ˆv"tÉ"㈆ôòÙ&æƒ4töc‘?ƒ©^0rHœB"¡™D^¢.ŽöÚ£ íÆˆ“ÚHÚÙk€¥'›‡ 8’4<¨%ŒPËŸ@¦ î#•<Íiœ’rdF¢?_ôÉ+$3_²fO;Ç袇ÖX$íò55pÇ¢!1I9äF1šL"›†¤9©|ITš ä£Ýà)K0ÒhâI*]¡4Õ)O ¤â”LN™Ñ)éÛ8Ð?>+²3Ä7Ò ªée鉅IÒAT bz'’DüËY1 ²ã‚>‹R|F‡t@?ùØÈ!rÛ/ù•}É÷4$%nÒ«aE|¿“ñÜõß_}÷G|‡Ó’‚èG °?:ÿ¼Ïph¼ht½s"÷Ã~¥zNºwÝF™£µÃI²dç´6xÉFÙÛ{ÅÅ–(:@”ñ"?èªî&z{øÉƒm ûþ³H„Ý»B‹È²¼éŠCa…›YÍo‰]wü3ô3)°0è™áI†Ìò©\½`–gNÛó:³Iò6*ñY‰…˜Ñ#Þf$ܲ·ó=ý$YGÿR¾q¬3/ÒÎrù’—²,ž"Ä•t½\Œ¿~þ{æ]öýÿk/»%Š’·i9 $á"+G2\E«+ÐOD|BœÁbB>&ºå0àŸ$w‚·ž•ø €dÊsÃ4XÃ9&· *BüNÅ[ºKï?’H¡¡ñ‰™ 0‚$""¬ä<ÿãÙ„‘ÿ_,0‰âõ’…ÂÛ”Æ Hèw,²ƒþ¦¡ÍtRRð÷ôz‡¿ƒ¯ã-æþ­ C: EÞ6ÁCˬ‘,çߟÛÑ[¬²”WÙ‰Ð#Ìþ³üñ[_Ú˜ž±%‡¶Ÿ×w‹|û³ÞË‘uÈrÊcÓ#¥šÕ´Å"Ò'd%Ä<ù´#€áh1cÄôôðœeÉü9·â82ø™ Ê·%.ËcZÈø"˜ÿñ;O%8+ì-ýÁ;9‘˜ñ,,Þÿˆ—À”ƒTáqÌšÄú og*klxaåá€þ•9~ÒS¦2Mõù9> ‰—é}#Hù0¡…ŧø™Òöƒó£·%^†”žA"sÁ ŽXO õG×zÿŒ;æ=',OÈ"m/¡;"´d%âmÂd ƒnEc™ðÇôž VOAþ÷b''9ÉÀÎJøÑàu^ˆ´ïú·Ã°œ°ÐèG‹2Æ~.tülòÄY)tVœ‚Ý<,ýG}WÊs~bjãÄ®€yL 4±ªcL ^ë5÷/=û½ö#oãV•ëQ í/ùŸqÇqÔh†ÐùÒƒ”Ù>¯YŸD‡"µð;Qíú$8,ÏG`@b"Þxìð³„<#N&K Ëg¤ù h%¸‰µ<¢*câz|û%R,·þEPá°ÔÞÒBžØ„vBžb#‘¿³Üô7^ÑÄk²`x7Á²>häOìSH£%Pë”ã"Vñr¾$·ŸÄÊ‘o‚¼í`‹IõÉð’4|`|FÓbãÍ/æ ¢ž$}ã’óôaÌûä[Ù]UñŒŒ=èþÃi~ʶó?ù3+ o¾Ø¹K&;ƒÄ(p‰ÂßÙEsj`¢”ÓÄ3CKšÄE€qNñ;z›'øÍSJ;+ÍBI‚ùm1ò6;¤¸${ËÛ*]”áG\Ê “ø$ÉÜ‚‡jX-Æb!»ZΗS:>ƒqü}µ¹»¥?®ªáænU}9øïßUëåünS/°ŽÇ·uÛš¶~;¼­Vß×£K¾®6›jeÞ¬«ÍípZ«ëQ5øiV­*óóàvy;ø×¼ù–¾Âùƒ·1M^Füÿ1h_ów:ÿÍœo'×äzýèïƒzBçÔ“j¾®ôm,¦yCûNxâ—ŸŽ? ƒkºk@ÿšï½oÞ¾¡ÑßèYGãëÛõàŸõzSÏçÕêøÍõf^ ŽŽß|wý¾¢«èð|E#·\™£¯‡ô”ÁOõf6˜}"¢VÕäøÍéÝf¶\á¼ÿU}úi¹¯éxðæâOç_}sõ§Áíx7“.äôõæ–iÚȈüŒñÐOŽÚÖÕp5šÉ—òŸù±Z­iNì—ÕÇÑŒ¿µGq†ÇÕý<]¬‹ê§Û!‘n–?V›¥Í—ëŠ?ÍëÛ7çË»UMƒ3©ã Äqôz4œWüÍ%ÿÆ–éðôÙò'3m5•—Il× bZ4¯ Ó‹?œ|/çÈ·î´A÷´ï9í훿ÔÕOôë?þßÿ®ùË_ß\•ƒ#päIx<ýH£qùýí‰jnÊ›]nºw¥a¢axèíÖÄ*4zGËEïâ<£ÿòwdn~… üØàÇ ?–ø1Æ;ü¹ok÷íâØ¼ùÓŸ»Ô Q yƒäÅò¢ä·é©µSüx$~¯…ŸðcŽÕ“(L,…w׎È=£øƒ{öm‡Ì{©0{¨<*Z„ì!å{GÅÐMÞCè<ŠžÝ3xêf¤vó¶øeˆŠ÷Ï׌ÙÄ磩ã¶;²ß}pgó<ÿäNà%3Þó æ ¯<ôVî“[À+7ÒO™ûç#ì[:ÑhìˆZ´%Îgd’è ÑxeþÈÛÙçî»kw/þl½ãµÌƒ_˽S|€4½q?:¯µ~±©Äì&å7 7{FsÔl8øñã®yhN9Œ~søxÆ{8äÊ0ßZˆÍÜ wn³êPm/ºq£²j/ÓÕÓç¦÷Ýv¯Ë¿´I©Û ܼïú;4Œ?þLo»ö´<Ž…ÌC‰Jöo+÷cèdò65R裵»nýY$¦¾D²_ãh´ÇŽÎx×Þ•,ÕKÇö“Mÿ†Ö¨×îa£ö>=rWî¸hÕæåOϳ¿éÀ¤‡,—±ûn㎶UÝ{ýlZ‰}×=ÂðÂ=vÔÞfnÝŸ ƒö­»×m&Ÿ´¹¹Ú¦fBhn^Ć“¾)z{öÈöØsL³½¨‘ ·mcÑ~Ò£¶Ì¨{Ù}\2m/J¦völŠP‹=¤œ÷°é°=Ћöº]?·M™íÙ€/:Jy£ <›ŠÓ"ä¾Ië%e—žüñ3hëÙ^;b?_·…ɇÏD^üHò¾i»9ªÏà5yÉ#É;oë}ž[kËö Üï +ž@Àî¡ùÃC%Öa»k¯ÜÜ­Kü¯ÇPñxVÞ·Ñÿ±MÀmý¶~þ ÊKÏ“ö•ÞYÊw’ò§G‹ë‡NP¾g‚þô¬ëØÜçÄõÉ*ö/£ÆL™m©þ½Æåg»â¾­î©JÙg¢:Ú?ã·íÉ>ÊmoEÙnñý][ƒbRþöœvj×å”KøUªÎû–õxçÐ~»Æ.Z·ýegŽMë¶æ]ú;ü Žìü~5¼1f†÷yXwø úÌÅ×mWþë¶qÚ7Nön?¶×Ò¦ßõ2ìsÞêû<伂y¬˜ïã¶¾Ù6/ö¾V3C÷nŸ}âƒC›öªêxþ¶Þ{¤ùa«wÕæûéá[·yðèDÏ&þö½÷Ð}ü¾į́Ú^ïú³*Xù^/|£­øåÞrëòÝQÝžÛŽælǃ;¡©Q›åv¸,«öÝŸ?·{F’Ͻðn}ûñ—}NöÞ§ïF}ò:Ù/¯÷ûPfmÏô‡_D6'÷)_}Tí˜û›ÅxzÐäuƒŸéU£g{ÕÛžÍê®m>Ô$0ÎŒÚmOÛN×µN7´¥)7|Ú¹•KiÍ[ÕÞUçî·;ÅØÊåªgý7‚§YÑéöÚÝgöŸ:âÆ÷qÕ–Í&µÞ¿aüïßì_[Å^îß…í…¿=† O±7íßÛ³°:`§¿ŸÜ§l|hPuÞ“”ñ0y{ïgêóóí.Óús„­Š½)r‡-êèhu´áª_üiûµç{7 –>Ö¤MÕíýbÑ'¸?{§ÿ;ÏÐùÿÁÓäæ(zâ 5ßõXÕãwÇ[wÏëö¾7òÏ:u ÑWORøË¾±9Ä·Ý«¿l½Ç!ÚÚgY‚û¼3ßµµ÷eÛ:žïÏÙj”Ãk÷S÷c³LÚ‹cú¹¬Þb¯ßå{—iwãè_n½òª½ôzV?ƒÇ¼ØëBù³ã¨ŽQuO†Ý¨­¶jëS·[êÛ§6k¯>ÓD%Ïþ¶'ྴۅcÞ›vŠöçzÛtºCÕ«ƒ6’«³‘7w»lµ‡D Íß<{¤ê÷Ýga5ð-ךA˜~¦ùÎ÷»C›Yž>&4jLOñËÏÂa;ù矊òYz;¡Ñá‘êJLÿ¸Wƒ7^WºÛÌëEµæO¡-.¼ª7å’Ï¿|uùïöæ0hðóùp3œ/§ÿ×ýÿcðæÛ‡’ØLÞsbd4 ]qzèîÙ_=y±½þPZ» (- ²8¤Ãßñ]×·Õ¨Îá4øÝ|þÑÄYˆƒOƒ$¥OîVIQâàÓ Ž‚`ð»ÕOõàwëj£WÚúd¢âî¦Zl¾œœ¼¹©×£7ëÑr3šý' æò?GËùrur»6_ü·o¿}:^^W¯£“`pùí÷W8 »0o~9è¿ê -ûýrðüE mñ Ñ3ø®úñËAü&Þ”ñ`ðz0¸þ4ø–³Åàl5Ï«O – Ζ¿ä7ÅKâýèÕ´nyM_С} ` ¬¿”òæóå >Z·Ê¹[åÎæ‹Áªº©n®«Õ`¹ªi4hD×›á¦2oð7¸æw\Mpúõ]=Ó$lª›ÛåjHƒ;®yµÒ¡‰þKë¿éìùò'ºó¼šl£åjQ­Œ}‰Íj¸XÏñ :mjïådPß`=ÑÝ¢ZûÕìö&êÅhF7@Uô±‰Ãò]kâÄâ]§µ´w"*ia ~ËÀ·û-JÁëÍ ^/~»ÑïÇtæ`p$gm–ÓÕðÓoÃÅxðÛ›j5­nWËÑú·ôÀ›j0Y-oG˜Ìþ÷c=|¤K®I4Ñ*ôÁ€hX~ªËŸÃëåݦEÍÿ4-Uÿû ù߃O˜H|¼œL›½Fò·4=›»(ÆeÝÿ}1X,¿Ø—^.*ƒOßx¯…‹Ü¨ ƒï~öú|5˜Ü-xÒŒÜçÍjz=&ñ!õÞ\~-·§aÓ$Üâ%ôœßê5ö’yµ˜nfƒxPëíý·õÇùÚ»÷ z1þ8ÚƒÔõ@¯ZoV@ÉP2¾À߃Ír0FfU­ïæ½”¸À^hïülìèÈMAƒûÈmÉЫ̀X÷æn.oýwÿ$€Æc¾"Žš+~¿ªªÅÎk"wMè]s6¿«Ü%8ÿe £Þ¯ÿ68I?øçÁI~‡_aqæ.¢iqÇndíï˜ïçòß“åÊxccäSœ/Ë[úçM=¯7Ÿ€0ªÆw4 tÝÀcõ%­MÈ´½à‡Y½öÎÞ ?TëÁæ§eóÙÚ²µ^AreôW/¸5¾º!F£i’4XLi³wŸaošµI\ÍL­/3¾»U6ÔâÁëp@ânÞœ G­ÓšÓAëüîõ4’öh…E5úñãÖ-º×>çÑLÑËU«‡Û$%ÄÞuÝS»óãËœö0XHb’ëKÛ¿ çëjÿVfm1^ëÙ?{Râïƒflõk~@—€k‚Á—A´SCxË“Hl×$Š=aŒ5Ë»ޒȤŸæÑUÎïÅ;Åp< yl<º[­h›ÔÄ|í¥ãYõQ®5A•†$üís0ÊG9~•/Œ&øÿ`Œ‚8L’|eƒÉd&ýº¦ ýª²a>0“É8ÈGô'þ70Í0‚ªu¥"x@rGœÊB›ÞFç(”y©>’бY³ÔÂÞùÛŸ3EúäfH—|¤ÉXÈ0oZBx½¹¾#ÊVgÍÉ'ˆÏÚ_Ï—´”q‘´†Ôc>A¨¥u%g2ýÑW¼þôåh_@fñ6ã»Óza a^¼±þÎr>` ×ýŽ6érïEõæ·k"f±\¼^Ý-„(O–{W‘4·¼zIL–iør¾\~KñÄA•`¾€±|©‰AeæÒûÊ{Ä,¨cÛå¨ïæ=ˆ½êé,ËuÍh8õñ·ÿj})¹·>z[4ørZg7ð†3çmNîá“'‹ÕèHÓ²Ä2ÕÑîŽôC‡s×`6cù„‘ô¦ýçC†I¨5BÞöäÒ­ÁQáÅrÌÉ-¬úD夷Ï_ô²!˜+‹ú§"ÑV“f ];›¬œ·8ÿÓøä¿âT[ ©,}ã¯wc’VE°ÌÚ:ŠðßÎoíQŒ#Óî<:è!æÞçH¡é’øX Íãp/…æ¾A<”BóÈ™Ú:2æ]Gæ¡Ó¼{°ŸÈˆöÈ<•·Û‘~Gÿ/ú¢þo‹8çóo܇ ýNì‡|bŒ~Ù‡?ÄÜsâÁš.‰¥Ðì‡Ã)4÷ ⡚‡ÍÔî#óÐiÞE¡yè4ß7ØfDK¡y*#vûqÄñQÄG MÉ4Jú]'[´‡;åNâ½J,…¦Kâc)4O]%»8!z,…æ©«ÄìMó. ÍC§yבy*#Z ÍS±è¶Ñ‡=yë3Ï£ƒµ•§ð);»yLÖÊ3è`}ÊÓ#)4Ï£ƒÉ`?ƒFŠÅóè`ýšê£(4Ï£ƒ5ƒìW£_l–›åÅfy±Y^l–›åÅfy±Y^l–›åÅfy±Y^l–›åÅfy±Y^l–›åÿL›%êžMOŠpì}Ç«z˜:*RQ`÷a$G¼¹qëÈ<•û™y*% K=‘Kˆy*%öÈ<•Kˆy*%ö|óTJìPž$÷oöÿ(ÝþŒž*OJ鯔w>2Í¡øëA·–#óÔˆ2û Ô´-‡'Pƒ#óÔ0EÏA ŽÌsPÓÕM ŽÌ#¨ 0G|$·O‹ŠL‹$YtQÏ"yž9º7GO¥æ 9:„ž£ç †¥ÏsP#Òç¨i¤Ï©1æ1Ô˜‡mhªØ´wV½Lk«°ŠÍ#vJóTJìgæ©”t4šÇSb 1O¥ÄžožJ‰%Ä<öàmû¥äÀÁ~ñÓ¿øé_üô/~ú?ý‹ŸþÅOÿâ§ñÓ¿øé_üô/~ú—Ü¢›åÅfy±Y^l–›åÅfy±Y^l–›åÅfy±Y^l–›åÅfy±Y^l–›åÅfùµÙ,ýƒÑä¶t¿µ 9Õ-“ŒŠÇÜê]ót4d˜§ÑÑGÑ£èèc©GÑÑ\kžF‡OÑ“èh®5O£ÃÏÜ쟃­­cû(ÝñmÎ%ø-šçcn²udKA÷væ±tÌc)è`KA—óX ú^íQt 0¥@:/õpîÉtŠÝ/õ`0¥ ûy* ÚkÍc)è`žÊ‚ýËõÜ·\ý£Œo}àð›Çs‘uzþxàbZ#ºõ,€pÌo{ÐM;í¾é}T›§ñióÙŽ}uæi|úàW»Ÿ:sØ”«ÅzMÚͯbŒžI‡ †FõµÖÉjÉÛþB΢^?Ø“t¦_ÔetâºÓeëSwçÏê˜}6 Ža%®w«Ê;ÝÐ<Ö»ô/ó^µçñ2?‡âÕZ¨¿Ì`?£; Ã{ ß,(÷œ#¶ýa® û¨4 ãì~Eón"ësÂÔfOnóxZT6¥{²Û3üfçP?£oŒñ†¼Å\˜‘tÝq®yŽxÝ¡ùªrë“èh9 ž>Üæq¨nåMÓ/²}=*öõ¨ƒ$©F>rúoKÃ2OI>< x€SíÑž9Ý£8ª£_P³;D‰}ö˜ë³)X‘U° ÐÙ=Ê|¿òQA½§»W=Mí°xÞ¡ò=QÍ2;né¥×ýCÛ§ã?!^ú”¬H•¬‡F?2:3ë–OßýÍóäÐôn¤SÛ‚òGí‚îÑæi*hãc0OÄ?ÛRº>CIHü—‰ó×pKÃ;~ÈóB²VT®ªðsÍó$§îªyÄx™çIN•"!«:=iæÌS)iWESë›Éùyfí3TÓÄZÄàØœM6üÌÕ|ë&iD/6’,8ˆ:ó•4‡$Ñ?¶Pèñµ>­$zžÈFµ{L¥ÈÓ«ŽúÊrtæT[8£ÌóÌYͬýõç)‹I´!cK&÷DtîØÏ#úŠÈ¾]—·nî¡Ïmp”yŽ»§¼ê³Õ·d, ¡Ð€Wà,R=f E{!o‡ÕcWNp¨nô êƒÅ_}bmËîÒGPh¼‘‰tSip“‡ª9æyèñUãîS¬š“°ÀÊõèÓÿìu>ŸfŸ(¿Š~Òx´"ÇŘ;ÑÃôEó<‹àa…g¿4ÓÙá-ŠÈù¨ýaò ?8)÷p²éݹ¥™?‹†lpp‚èãl°ç·RÖÛrQƒ|+€ ߇W ëPFÑ'e\žAŸü<*ÑS5oSdªeÛ WäNÁÌÆ¿›WóøJú6uæÞ1ˆ-Å*›ß¡[=ÚÞ£kýÍã+é‹AÄÁð eqKÑ·räÑUÔ¶mÈ“«¨Â8˜BóX=˜·Y CZ Cƒ|Bô‘,‡ÇÑgžÇ^è5Kuùò²-”ùMðŸÑníSû ­†w¥5T ½gd¬Âò_[¥í¡öa¯2×lÜšh–µ„½†LQÁ4‰Bùƒ(óVŒì5yëË{¬ã!Âþ…UϘ1ƒ‡¯us¨JÿLA2ðj?¶¹„'ÕzV“™Ï?èÞòöÖ<ΉÁx4;.V‰-Ú۹¨[E¤Z‘-E4×ÏË^ʤW çfÊVÖ–EÈêGÌ´ ­´×Ð?Fö$V^äâ äÿ U‘› d,ìÂç1+–Ž% äœÉqP׎ÝÌaº];žÖ©.•3 &ÏÃPöIR<˜íg 0q»,†Ñ¢¾¶h"|²oÄNG°¶üµÊÜ,2Í“åò0ë™o±ƒ2oŽT$Ydžë¢"#”ñIrÉPŸ]vÔ‰ÍÝ(ž¹¹[ŠGð픺r Ÿ˜²Ôy{l7)1ŸvôHÒŒMnÃd‚¨“AÛ×ì- E-ÚthÈ¡¹ÑZUMÙõ‰–“r' d=¶•½nw-¯þç‘íðÌgíkÆ“¸—/&Ï~iXË¢ÝöÐi\@1ê¼@ßÄîìïU(/4K÷ÞÓeçÆˆ+s-Û„=t…jPÝß‘• a¼5Í…æáM¿>Oà^KhèéÚ:i§»/cØf;úïbÈÛÆ³\ÜëêñG&ߪñSb4?Åa¸Û‘©û|á{¶ŒÕ-XJt^2Œw¿ÊNк çê±¼²Ëãà‰…>FÏ`{œ¢bþ¡7U¿ˆ¹7eaßèÙ«J?«·ñÃØMbkÀ•¶aûa’fü8òS Í/êÒ±•È~fÛc"NÌØeé°E=6½Ûòw:IÜÞ³ÇÔ2×{,Äî«ØØ]i‡Àôf6–ýþ«¾Ú°ŠÀÜ;õyÏKZ¡qí$îÞd°Ô{AÏ*Ñ)¸§ULø«Õ|wyÙ„YcM­pfW¡_ìÞØ0 ù}‰î÷;Á$½#wüµŒÀ˜¹}¯ëÒÿÌ^ÒžøB·ÞÏûÒÛÕ±¡OóTø>ý¡SUìU/<*±*ÊÑ¡¥æ€Éϼ5/»U*Ýä9õV3uI»¨Üqrò€Hð¯Æm¹_㊕‹%‹¿ãX»è°yoU 'Y™¨«@¼Õæ‰ýüÜì™Þµí óZ^.Z[@¿–ÎHÖdiWÏ~}PQºôù›dŒfÍ›ýãàòsMmŽûCv³{l4CÜ÷µLÕB2?K¹Æ?´éØ…æF*“Çíý´Hî”Ó9Yή3î{Õœl”¼=({Smy9ÙÊ\ÿê}dÀ©‰ãÉÈiR{¸a0J#1nyb_¿v|„*%2f¥1»—1XD­W ÷à=± ß?¾e¶åÜÒ±"É®bk-E6©W™<ñDwäý~ŽžÉ*ñšÊ?9¾tÚ.þè/àvJ†½ÞtôK|/}…8ŒcW‰åþƒ4Íïu«™\dîÒÌÑ5»ò3üœ®Û¼i꘿IÄÍ{‹fº·Ø×^m€_ð@Ú̯YÃn«Q¯Yyÿ?zxQ«éè?Q#’ÆŽö¼´õBµô$]­‰®ÛÔ€z«5™C4æ ¼ÍðVÐuôÌ ¾½}0vƒ.Òf¿{?o´JÃÐ|¡3¼p;6î04Zq°±¥«Åüª\—dz†‡”Ú¡Ö÷ !š{Ÿª"™—Ã~nõÞ¹ -¤ØÊúî‘ï¯wMôvú,^ÉÓ˜tºÃûTasøð6*z«*J6¼¡ñÖÂ}Y”…'@2þë³U*?‹ê+Sgët¶‘h6c¡ìͲŠÿÔa=Ìßé#WÄçáï¶ñ°8Ui†2‡´ Žô@H“aÑhõÅ?vÑ\$ZüP_[–^xŸÆjõ Ç.ö™, Û3{o›¿ÃÔ«‚:³Ó£¯ {߯$h©–›5œ0ÇÁgf|mY ÐÒh-[ðèôÓ!I®!H,¶Ôé!;ÚQ÷& ¢à™½žˆßÖöhK꺶×.ÃcˆG«ñ¤H¶‰Ûq³ø…±ã“ ï¨¡+Ú¿øžjå©9Ò” ÊQÊG÷O ‹§ÐØŸgë)ªm̳TzÜ‹N?-poþ*ÓY °Ü>Ù£Ú™CŸÏ·rûk${ qÚ;¨ °Iýµ2eSQÊßìÂFaµ@.L-wð„FÒˆ6\œ*ùD’Ùë`ßZ™?!ÛQçô„_åj·yŒ»ø!%²©«bÄü$L§k›Ñ£î¬âÔQùÑL}¯5†Y¤K¾ä]LN*[|Ò-ÕmÕ“š{(Áë$*[݃XFmŠ7¥rì°©wvüšèêêÞDüËšÅTP¬âZpb,» §î*]î­¯íÖ®Eí}ÁØv¡cÒà ICQÂ'üä]œfžRÙ›¸Ê^‰×èü˜n¥èAuªCÞØK=Jpdt ü[`2”¼ ìì÷Ævmö–£Ú‘;öçµÒ3©-T•SJÇ‹ú›e«|oÓW$n†F߳䋣{èãKŠ´µ(CÙRÜ¬íª³>´hØ´9s3!s²‹>qÀ”¼ ð¾Ð3ý)X¶E_O(X–õ+W&’y”Þ_üëÕtÇò†Ž…›^è%V6ò0ìàˆXgǘ˜~jøÉ\¢¤ëÞ‚-Z:ƒÕ.IŽTäË)_ÔW]«(âsL‹Ï¢ƒÊºÀ¥5¶ê=¥ã­#»ÃE=Ì‚¢ØQ”õ®—F‚Çö?&2÷OùîbêÃRR”’9õ"m5θ^#YÉçøJ¶/1ûS³ ² ¿£Š6Œ*ôä›VÅ>[û-Ë·/öâ-ŸMÓïEÿÆJÛ!U,‰;êq›’Pó33ótês¸S…¯sq›¼ØÇ¹Á$¸aÑ“úÜBïÑiZ‡âÙ@Ím‹ÄÚB¢ïÞGºdgjÊìI¶TÑÜY?å=pÒÖ]u-Úeð“]ÀþíÉÒZÔÍû¡Y¦êPi•õW¬óÔ,Äçó|2Wæ¼…/åž/°QguÐñ~ʇ.{ÛÅè4¦Ü—ªéÃûõ1¼wKõ센ÎBãñý¾—h*"—óÒS÷­ÞV¼­CEg7×ÅQÞÌÚP#¹s%ذGp “¿U;ìôÀÆ^º‰°—¾ÛÅ<Äÿ[sdËù·’ØÍ?"©6Sï[&bÑ/{ OÔe†ˆ‹û@ˆ±ËØê¦úÅÝ´6Íê”=ï+Ñvì“Q¹°fJ©?ıÛÉŽÕ†-™MæÙç´ë§TÖôÿëz!;[¼°à°qò{üD_¥×_jzªþ£p‰Ss þúhàæ×³–º UÇ<žƒ¶ŸA1vcbZåþ‡«6‘CµUN0=ÕàíÛˆÓIøtýÝ\GSsO#ì[l×~ÎënÇ;Ý;ÑŒŽxxÑ5—Þ¼èaÀû(Y…·Y…­äÌÄ%êì˹̈́vOæg¶2míòßåå'$ª§äNæokã÷ 1ü¢ ÌŠæ¡ú²„9Èce¶*ζµ³t«~»§Ëlít}õìÞùˆª®:¹7~Û°È¿÷VºkgÞ¢ôË]¼&B[À9Û“#¹|FS ‹®Y K#¼WE¶À÷–×ÅäÞ¢ »¿ÍU$Ämt¨CtQó $ÖZÜó ü—ø;êÁ%RDŠÑî*¼ q¬UnfúÀ>t6ö™+E @æLnz«œ¹ˆÚѦמJ-´†RZ\‘íb½Â¶´ï¤\oÏMê ³^Ìê­éWÛÄ«Ònjæï…·l6ók("s6ñ½7³%ùåî")£ e½ñceÀý7ׯXf'˜Žlù{ÓÖ‹¥+vÄp¤ÙLEà…6öÞ.çŠUwçcî –»²–hRGk“}Ý'év}þUtl8^U÷'˜îƒ÷²¡X…ü; Pz/ÌAe²½F[«;«ltw]œŠL¿66éࢷz­dWo–û¡WWG¢ÞGÖ§™Ï `»ÐløþslÌ9 ‹b•í {ã¡èŒ(¿Ñ£pËc´U»ö!qno/£î^fzÝ%¶ ¶©D¾7…Ì<úé¡ Ì­XÄÿG²Fv©yÃ{ <`k€Àuì^ª)ëŸo)êö:ÐÕð>Ü$žÉœ¥M¼½õä/ ½ÎÀà2FíìëodßoŠÛGéŽoi,‰c4÷ßD''iðû®0[ÏU«=,µP.die!«]·3­íMDÈö>½ƒv ;'OD.·¨¹gLï×Á®/ö~k$¾*˜×AÄtÁCŠ»>”ÝtØ!ÍZÍtL0S•Ó÷1XÐ7ëÒâ[lÍB Å<>”éXVŠŠÃÝls˜@Ùi¬¸Ëf‡¢®lÝÜ*Lc£ÓöXºx¸·RôÛÄ2‹Åú€ûàn{sýÛÆníÈ­·h·Á©ëƒöUÿÖCVf:·6™¯çØ×ìøqŠIu¸’°ûAfkÿ(Ԫ̶ìÚŽv y÷•ÜãÌH`ú¸×ô“·ì‹%ݧm-€tŸ»lÿXDs`ëåÌãöÕ§m«¹¿©˜GÞd϶ú@ öo«  o[}]Ìc)è`KÁAÃcØÀ<–‚gÔ-ìVlžÊ‚­2ˆÇP°µ?•Û™„  K€y* ö/×Ppßr}4˜ÇRÐV'&ý#+Nû¿íY<ÔDSÿ‚.ì}€¹ÿY‡QgZ>:sÈû?íÕHyèì<íÕ Î<…wžöj;¨3Oàà>6|…†±—“=ëìÀ˜§1ßN6|#üó!h÷QhîÄC)4H´ßÌûiÞE¡yJEê~ø¿GRhžÊˆÝÁþÇw§ÙCÜ£W‰¥Ð<´UË. ÍSWÉþÖ  ÐÄ<æïçOl‰ažGÛËü@ Íóè`‡5– Ÿ¯Ýät™çÑÁö™¤Ðüjì¼Ø,/6Ë‹Íòb³¼Ø,/6Ë‹Íòb³¼Ø,/6Ë‹Íòb³¼Ø,/6Ë‹Íòl6Ëá˜÷;¡ÙÍ.`úÃnÜÇy %M£š'RÒÑÂO‰%Ä<•’¾Ö9¢ÄbžJ‰=ß<•’û±Í•z›ø˜ÇõÒÙÉ!§Ä~fžJÉ!=¢‡462O¥ÄõDz*%–óôõ#ç›§RrpLJ·\ÚÑäÇ<­ÓN·Ì©éfÑ>šš¶þþjpdžƒ¯SÒÓ¨‘Bºg ¦«µ=šÎVz5nÐÔC‘éíOôÀ~=ÏÑ}Ô¸9z*5ÍÑ!Ô4eO¤Æ–{5"}žšM¬N ˆ1ïóôâ§ñÓ¿øé_üô/~ú?ý‹ŸþÅOÿâ§ñÓ¿øé_üô/¹E/6Ë‹Íòb³¼Ø,/6Ë‹Íòb³¼Ø,/6Ë‹Íòb³¼Ø,/6Ë‹Íòb³¼Ø,/6Ë‹Íòb³¼Ø,/6Ëÿ&6‹ùÂ|18_ÞÜ®ªõº^.7Ãq5ØÌêõ`RÏ«Aœž”Ƀå„>«w‹‘žZëúoÕ ]oÌz¶üév8­ènƒõfy;¸[׋é`SÝÜ.WÃÕ§Á¸mèæthªÅ§Ñ=6ËU5X®êi½Îéºá¦2ø“ì tî?¬†DÊ ‡—‹ñÅrtwS-6fð;º×ú¶Õtyžƒ°LÓÁppuzôýh¹ÏfÇi4¸>ÊO‚ãÙчõ‚>ÛЯjõÛõñÄýþ®WÇaš†ƒ(Ê‹Á§ÁÕߎÞýx¼8ªVŽã(“ëOÂðÝñq˜Ä¹‰Ò(Å™ŸŽ®Ž_ôõj¸xG³qü:‰é¯Ñ²^Çxì·Ç7GÕ|^MWõ¢>ÎIÚEY’>ýyQÿˆïèúý.ˆbºOªŽã”~QÕÑÙr5®†w§Gÿ7ý÷õð컯^ê?ÿñ;zóo¾ûž>N‹ 8.òtåYI÷þAhŽOOÿxƒ M5¼yEg~õÍw_OãïïÆ¯ÿtGC}œÅÁ *Ên§áñ„Þãnµ¦ç-Ó£ùÔ×µ†¨] 1­¯ä9qœ)Ñ­œ~}ùÍù%}—ÐWßÒÇE’ï1†ïãÑ„£urëFéww¯¯™ºãåÑÝǓɊ†œ&ŽÂÀøC^]¯îˆ›äÁa@ÃrQvfYH<+Oøéèôz½Y Gôvilâ,áþñèbo™ÙñòxuÄüDS¾¡»Œ«õhEï¹:ªÖÇõÑzySѧÄ8 C¹"N]ÓH,'40´ Ž«ÁÕÝѼ¾f†›ÏpwúLü89‹ 4i–Â]áñí ¢%‚uðÅßÒªùr "óCõ´J×­ú$\ÓYýh¾÷¾ys»ZŽïèÏŸfÕªúù–NÒOŽ.êõ¦¦‘\¯«áj4“/å?ó£04¤_VG3þÖÑÌ„ÇÕý<]¬‹ŠÖôfÆ$Ü,¬6K3š/×8š×·oΉCêjE‚b1ž,›A Ö£á¼â?ÖÕ†çþÉðt’fª«ûïõäï ’~WóuÕ:®'C}„wü0ŸÙtlQ•å;væÏ¬Ce²S—e¹gv ¯³Éìüåø5øy¸ª‡×ój}ñ_´LÞaRÍÇ4Aq™ž{÷LP Y+OñŽ:Aϼ‡ûTÅQUò$yc´+äa‡ïÎR"³„q€7L¢5iXë£ëášMü8.å¢ûבžÉëÈ?tÖ’ç^G UIz—ìs{ÂJÞ¸£¸Ìö9´ù{Þ¸Ú¸áÛ¬îFd(VbZNŽ+øÌ\´‡¶ð"cí ‹44=é™´áFy wü€Â;~ÀX¥ÏAyœêX…¬õDY±_à{©Õz.*DÔÉŽZ®kÐûz\a?]Tc5µV#’³zS 7V¼ÝòuÖóÄíAlÎò±Ðù@)‘>·:äS•=ØÞÚe”`AšfÍ"ß¿èñýаÒʬ{NåõnZ}¼CÕ×3’ظð~ÙlÏdS×?€u³gfÝAA©¬ ë–ÅÞhϬ›)ë—v1] ogÇe¢'Ü«c$ú¤áÀ]ó@>Ìž›BiØÑ1žÍÅüè8ðsÄÞ›8(öÅs o爆i Áíp´YTkhç´ÔznѧUØ3‡Æ?~¨“&û A†œA:[ϪÚÁªˆÃrïªáïuF¢fÕð›cÕ˜žô®{§æð¡«&zþU£4¥]/ó“†yâ•Ðà좉ʽþÞNM3C_±Z&YhzîÒçv@ò‘ÜÏ;~剞}Ýx¤¥Ñ/í{%#ñ² öÆoø{7‘?0šŽ0ì»Ißtè™fØ?r:ž;þÙãÇ?ïcÏhÍIì_#ià­‘ØŸ“o–H ¤×1=7Ù5'r;ïøQsŽ9Òâü!ÒdJ$Rg;} Æ}ï¦$ñ§äüzn—ÉöMú§Äèíš«7%Éç˜!í°eòì‘™q›Æy¸7ÀÉßëœÄn·ÿ=«ÈEI¢mûúíé€XoÔ>t³f7œGSo¶Æ/â½ÃŸi\„ùÞYÂ÷:K‰›¥?8KÆôÜ`‡N&wj:MÉgÐÉ„¦_©N2Ee´7ØÉßë¥nŠþ—7EÛ7Ø1Er§æð¡S”~†)š~­Sòþ“Q¾O%àïí±­ùÇá-r;ÒÌäûû]$öLiºãGl=é³+Ìié®ÐÃâÈOsiEìa$aî[9üýÐð´dnåèÔ—eïúbAöVîÐø{731ÍÌwÕºþ›V{ăžë{«=b£wj®zܬÄÏ^íaÉ!áH¯y}ÚîýýS#y!I™ì ó÷œÝK^ˆÔöUÇ1¨oG†£(í»_ßTÙ3‡|läø‘áü¹39‚€ U~b¬§Aº×äàïÙäȽÈð˜õóåpµ®gwõ|üîôà÷ž;ö…ÏiåȽÍUÜógÏál(d¿+³QNSÁÓlŸ áïYä6¼ª†’·¦ç&s$ &¯7Ë×#ž:O6ÕGzîÐå¦Å´¹õ‹¯* ¤T> Â}žUþž=«…ß|Ëðq£jÌ%b1“åŠîMª)–CÅ•óóåí”ϯ±GÀ{r´¢}c¸¦Ý9Î"ÓóÜžm‚δxÇðÀÏëõ *r…YK¤ª,Œ‚ýµôøžÙº°Ue§ã±Øs+ÕfÆ€+Ywa Ï\ý—\É€E¶”1Š‚|ÐóÔžqtgùXh}àQ<{e™GU>4¡×Ý‘HVT‡{Óø{;,çÿ}6ܨ]½d5ŒBœ ïN½…8½§wü`™R|–B!Ç)T<¤ç!¡š{å¾Ì‹ “0Ýk6K„%ÿ¿ÃžÖÄ%k›cäLG}·êÍ™ŽìM½ãGMÌó—8Òâì–ÆnL–ûvdþÞMLÌþ¨Ñ|¸êØ Ø&$;®1i•gÜ"ˆ±‚ø/úØ+þ ûhïøQÓ÷ÜÖ—%‡ÖUR>2ÍMöaq”‡Y´Ðß»€¡æoê äX‡ße#™Èøh#!sšÎÃMPÍLÆ2§LŽX™ý±^-V¯£ˆv‰mš¶' gZê¼ãGMÒ3s>iV©Mb‘Dy´Üß»áNÜqÿˆÛ7ÞˆŸ?dÈ˨®¾!/#K¡wü¨!OŸ{ÈÒ¼!¬¡x?î¾×!¶õ£ÕònS/*¨“4Æ3€Û»ëy=B½Õé·_‘ƒžçôÙaöÌ¡üP蹑mC NI;,gí÷“ÂåHûfß»™Iif~_-l²ÝV¦­Æ,æh£9Ê€sïy@ß¾’»GyÇš’ô¹÷%Ç܃3ûøZ$;éþ)þÞMEæbt<v(èOmü¤$§Hqˆúnß·6ì™C>6rü¨‰Èž{m4¤ÅÉçÔ̼I1Q–ïu!ò÷nRrĪ«ÕTsÁƒAÏå½¹àÑ5W=nÐógÏ·äôcþrÁírÉ÷·ËàïÝÌþr1à’õ¢æãTWKÚ{÷ÞÄ>ÇøÇ™¸âÙw7[¼g^)™¬”bŸ þÞÍG¹k'‘ ®×Õ±¼ÞûöóܼãGÍDùìáÇ µ¸»€JN„­êë;Ò+ƒO‰:dà\sS’¦è[x#YSüà5V•[œìÏ—’Uˆ·§3]û¼éÑzTksT%Œ¸ïàÍ t¾»ÏøD€#2²Ä?ýñŽA1¥Ëb½ Á¸‘UÏSDo^¯1°'Ç)L¯&‚é“kyM¿âXóüŒôÁSÿFh—x+© ñÛb Gàp!c‘gdU¯oè-_É+®å‡Fcÿ”Ù‚•©áxÌsC:Ô´CóhˆŸ<·œ„6®Æ3’_hÌ~wÇŠ'ÇÚ¿mo“6þ~èÞ¿"ùD³óšûVdt_¿9Å’éŠ<çµÆJÀ;Ä!sn—ÆõWd»ØeIŸpÑ„[+ñ~ƒÿ„ã×Ì0sD·…ðZÁ“Ž/ÕCOkÖëY5>9Πwü¡ZŒªWÇ1f‰WóF9’Õ]},W²0¥òûhˆ"ú`®ªÿº“u=•i^£¯¨]A3ZN¯lðÎM8è¹ÅçØp:_^Ó“hå1¿Íduf1–µöÓ Àø³£k¾ð§µˆ¬È-©tÖQ ·¨5'‚ã3|C»ö¤Ëͺ–P«ì˜$™“ro2D«µ,´$M¾üÕ‚/ç±ÔI~ånØ1˜™.Ó¬m-X¤Côß|ÿ_} šdíVG$…pßœ¶gbn?š=°2Ö\’z4Y-oèÛ¿U«¥p’ïÖ£Ý÷CãÞÏýrâ`Ç5;¹»Ý\{ ˜îÂ(¸åÖxa!õz2H‡”î¶ÜÜ÷Cïð—£ÍÎkö½\_›6yC³µÈ•²"Å ®]g¹AÓYŽÛK2b:–ïåGÛyX7],ªšxƒ»>0ÛÉÆIkt öæDx➟°GúÄ;Ï Œ„duÒþXxÚ…·¦‡VÄÓYä-ô’[Øð@§1»PÈ©TG%i?;z÷îø)”õä8Áu$þíßè«oþüõ×ïŽ!…–Gœõ·£ßÈåX¼ë/Ūy÷Ž.E6ÓàjAײ̪ׯIb ç¯y•â>²f¿á7¬73!. óIîX;Ö6o9Ó·¤1¢qó`éë",–¦ÀH::]‹²ÁJËb<\!=¸#7¹­6Pd^‰DXUVËYÈ2Äý°<'´„y œ-ùBU2ˆ™ Òêõ+–¹+™ã B"h·qG›Ý|)JÏÑrQ½²ûÞhxDznóI'wÚÀü³ïÒª¬ˆ{úè&ƒ¤SY‘ â—ÊŠ_SeEre… €©äßiUТ¢•WC—Ý Û jâ­n¯Àc beEI¬„‰‰¯‰›†sœÌ®PË— á|,ž!÷zÖmi¸ÖŽwY”tºÅ±îòŽ®bµW„ÔòF±ýö`.ÚÞO¦'ÐÄIÔØ'«©´3Þ G«åÚ.†Í±îÆUCœ{¶‘‡C< ž·{ rÞö›¿;¦ ZŠt½Õ Ò݇6Õžu–›áÇú¦þ[¥yõ–Cœ‘Hkur‡—ƒ cEŸ{àÂ@äá[ÿFêã— OÏ_Ñ뜈ýÃÒ¾¡xà_Ééh`ÂÉÎZòÐñP4ð WÇïiBëé‚…¾œœ0-ý¹¹·†µßœ?`*³LŽ•v§å ëÅÚé7¤Ÿ ö>¥7°3¡O#2¬eÿ°‚Ζ¢ë±ôÇËLHñ.FJ„4–XT֌ئˆo¾=»"ëà ¤ýôèlÅÊóʆKXxø GkÜpMZçªÂ0\;;UœJáß'15‡,­×›;¹ÛL¢Œ4¸3/ïÇ^.‹h¦ ¥‘Ü^ÞzH€mÄòtÃÞ{ i»Ó·‰xçø®šµ¢‘*µ Þ~Vé`;@-ŸòN ,­ÿÛnÅöÉôEÆ%©EHc3ÿï(aÄxŽœ<Õ=G^ÚÐ[OýtK÷DxQèæWc¼jóYÖÏàM2g—Ï7õí¼YÐ{2щbIBwOrG2ú%Èã„dLé–AƒV‰hI2§´lÚÌÈP¯GBpg-G5þ´ úüûê¦-çPÇ´ÿïÿ¾Ðœ4œQûÆ}ïÜ`È=Ú«Û [4•â've¨Hò2¶g žÁ«nn7ªäÐB`ì ¶Aj•¦¬’Œ›Ó4RAÃ)²TòÕp9;L† ¬9 ‘ͽ@µÍ Dä¥= â?ÌRäS@£êB™@PùCrèo-­lèif*åE¯Ä¼ƒ¨†{ܲVóŽ6;B<°Ÿ<ðƒXEv‹  Uc1u.TòkO(zSöVà= z¾”/£ý‰úø^šÖËá¶FsÍ çš] Â|½™CõZLO^ï·£ìýôë"¾M¤"ü¨‡ýEý¨§Òß1‘¨ŸØäWœ¤÷È=¢ "Ué:¸ÞV|ð½Å÷ —y¹ÃÖ©åII¼uGkß%{Fkqws]­h°Nî.A†ì.¾34áÚ°9ó\²*3®g׬÷À¼Á_Ë9–ókb±ð_ÀÄøl3¼>^½¥ÿìùË£¿žZ rˆ¡ÿÛ¿AæF4äÿ¢w¹fÙôú5KÓ£!)-cœF͘Çò·7oüwkÞLûž–æÒ-×IJ„ã«Õ tíuKĶk6+ïÚ½#)´}QŒ-Þ~ý¥ûÚZª¢·4;뤽³²|‹æÝånõZZÓD”‚ ðqÛ”S .Eÿ$V~™‘°}ŸŠɲHlÜ èìþtŒU+De+Ý®Ð5HüWxÑÛ9=;;0Eš°ÒGü§v«Nì»!.P-ù•jbÞÙ-Þ³¥+y$ëâý|¥#ÂÓ™”Ø:¡LŽXçÑ¢PÞµéöºßõòn­=‘«÷ä5ó;jæ°;<@lí¿æpI´ÏEbô)¤€8I·É»v' e«6`ߨêdYŒ™ªÑݦþQ}<Ó2Úª:B‹#¥~>\Áôñö|žó÷N×[-i§ú$•ÍÊ£%º-èÅ*2­"øÐ±ëŠå3\MçÀ¦yW5¤ߜҾ>ú=±¸ÀÙŒð*šl«wÃÖ ×½µ»ÕDÜ“P&–xú 5Í&Yãö|l½U ¾ YfïŽÅîú¸Y ñ/-õ·+çJIŽs<Š1!n KËÌ–Te\b G|:òô'± ±D#Å~½ ¼Ó†ÝÓÕL—·ìo^mzchïfÝ%BxÏnÜ0{X‰ªºL0U&˜úL@v©¶ƒÄkŒ†óùZ´°UÕëÎÑ׌ÑòDB=k1ÁEˆ±÷ªÇ;w ÿ‘úŸ'N³o± „!žo_5§ }W+A³Æ´æ]Â/[ .X"Æß‰è×Ûjw„UÃCõ¾KÊq.>Kû!j"·µq?qQqG±¯¿†¨ç1ʶíœ6Êq9¯Ëü0P4i›f·Q‰úš zÔ¹ °¬ÙTçS²·Í0¾·‘<9Ì·½ÿšÃe[¼×ýË”s™©“m±È6ŽßDÐ9>M—˜Dœð5Ÿ~¢ŸêÕ0qYDMÄgrtǼÖXî\¾ž#¥m— ­ñÙòŽtZõvyÃC¶ªG.8c½2ߟX.øqÀ™xlg¾a§vPÀ /±HÆ<$Ç`“lìfÇš$™ÜGœ¨âÀ¬` ÎÀtÄ¡ GE½š4Ñ«‰c(¨ö$2éҊ̘;Y˜IÈûfc>~°¢—öÇ¥ìÖ+–7$U21Îi‡Æw)àç¨qWFÈ&¤eA¤'À-øa˜&†ÏøD×›Ñgʳ°¹IT¡½‰ì˜†Äxƒì`o`u»LÝÈmºc°÷]rÐ`'÷ 6? ì¤lÞì9݉xÄh¤Ã,§×réµG¿ÂæÏJeµ`µo¢ù0"œ±«BæGFØÞ*Ê’ÐÞêúÙÒRÞgn| ãçÅÞñæïe·Oíî’¾»4Þéþñ–4ãBÀï¿[KhÏl¿3} ïœdÁÞw¦ï­Ü>µÿù¼]—ôÎÙþw–4B2ƒ2Ù»¡mïgâNû7»ŸÉW´ŸCriÔlhü@ÝÐX˜’u2_Jþ޽¢aiÜ%q”–ö·ÌÓ¬hO>ø ‡Ó4‰÷N?Øqjÿ´/1˜‚|ÿȶ˛eÞLv¬éÑÿ Q ØÙý³“¬&M9zc%+n×§1 爩³NÕˆÄisu”bzäj7ÖY¶ÇèX£é÷¾±æï;Níëö%ëbÿXËš±.ŽSs<Ö;Ýmk%okӣׯøÖO!x§Ìé4niÊéQ$Ïútô'6¸n–b±X?ÛqŒ¸±» óÒ^ðÆOFb0‚¤Wš‰N>ÄÒK>Ò¯()½?‰Í¤°½¡Ðßæ/6«yßú’D¦þ{W×¾ Z[å^sRnß,­RA"çVEùò8C§†Ïâ[AÕÑ¿BY„T›T›,2("ÕŠL0k!Ôà5 Vàø!|ÃÑ ’,Žbc/ˆâ,Ö ¬#Ó³=È¥Z¢&É÷nüust€ºç‚ÃŒÐàž<ߘã­Òƒ†ŒÐàrÛY5ÖîÈü(ýi_ÙŸ3—d¯Åð†S©L¯qAm;¦gÖ{:uþ Î;¯ú ®Q$r/æU¨}%¹gCÍY`—ÿõº¾®çµËŸ䨭ýÃѼ¾©7M¼E};5PmÔN:(šxɸ^ª-4YÕÜöK Å8… Gú*M¤€>Xm4ò–*¸¶fSq1Ì+ä ´5!þG• ù¯q™„}µò¢Á“a=wß41äùryë>ž¸´¤Åùd3÷ ™¬›Ñ‰<ì¹(áÜ MW×. ĺšâ’kp$?š;ÏÔ?,“Í“$áƒ0(ö6µÁ÷ªâò©etð‰»®9<|ì èSÈØwáƒDp³ýðÆVªÞR¤b7­çÄA‰„ΈCÏ_µƒ3’‹­NÔv(¡•˜Ã…`4 fªZWM»+¤+²zŒÀÀÚf[åæ“zz%5“œœ8èÔ}õFfGh‚kÔy³iÈÙõ„ËJÔ¿[¹ôê&ÒÇ>D 7ÈL» Ó„ÓÕØ;ËÞ{ð_ç=fö=&üµO>©%!w6Tµ²^¶¿*#Ì\…ÍA¬×¾æ1Uû}Pú€¶3­ÊˆP•ÁÅ‚cµ… ai둾² ÕIqØ—{ ©ûžžíÁ ŠÙ®Ác£¼¶¿äHC\ñþè]D»EJ{˜Ó¹b»8¹°¶©ŠFƒbÎ->iܨlÑ¢ŠMÙ"gŽq0h~w³ÐÊ }Î]*AJŠ/Yz±„{Vš§1Õð*—®Éåf«H³ #ìSÛ¯¥é9Ã뵤·HÝBöôü»5gÅÔ —V²&¥”Ó>5äâ÷%®¸±¦Mõé®Õ¸ÞpübUqzËÚæÞÎÅ~9‰ÑÊéÒlí™\9ɵ\¥dRïdw«Õ?3®×ìltÕRZ²wüVR*Ö²‘KVàa*Rv+¡ÈÂ4ÔLÂV5‹ÝÔ¼¬›Zš:Í+›ôËÑ?Úi7ˆsÊŸÊ(™„:ÆŽ)y®áÙÎ2xFi³”8%×­ÖG’ÚÄëÞÚ !íî7¥ÑJÀkãzÒŰYÕ ç«ðùLi&\“ÍÃç6Oè8ÂòÓ Nº—J%Nh確…QqØw¹è¤xûÛ£[ˆ.‰3~%HS‹JÎ?öJô=ª­P¾dÏ´HšÚt*Z¼Zä‘ÛùTبݹt*Í‘­t¬,ÉáDc”‡RZ:qr\G´¦543b^I·«Ù¥/?ÚE,i$¤9d¿¯—Íd›©R-911r…šÜTžòk]#Ø^Û5J6Å…öæOG_kÊîûö„÷Žn{Âß-m,Ýhý¤5á-üzĤ5ƒÞˆk ¸4+å¿öµUC^ª^Kµ‰—P,š¬ÍÖ¼ ¯ÜÍXÕ€ ýJiF «Hú" IØOøEýw z³Àâ [Íšwžm׬L̽o,Å\“V~²†t7ç6&$‡‡dŸì½æPõ1Ú_|hô)úÙâÃöFjrg}4'Siõ#o^Dº»7&TäL(ÉîÙÅgEÌjZ©òØ79³²¶»åD7Û©W™4ç”Iµ\ÄX™nnh7£çÕÅëªI™·¡î¹Ò« ß´+Š]†­ uìf^óáâC'»*×M©±d,¯M¶ ’$&ÖÔ0y)fHÿ]tš#5õhK~ÕÈe;¶“®Á9kžëä82+¶˜Üf¡!<ç„Ñþ…Þ‚Ð>¨j„•µÿI¼lq‘Ín­[#?5Þ¸/ޏŒÆ© –œ(ÁÀ, ‚0æ€ÜhÚ¤ Ù?y3¡ûT½xÝlÒqÀª `-©ç"F¨ª ‹ %eœñ,Uê(Ø´+1>hæçYJ—³ÖY-{%Uí5XvË%Ðæ O™ùL(Ù9û[«âû¡wxH²ÅÞkI¶ˆ÷'[èýáŒJ¢v¢’üd üÝI¶hÂýÊ;÷Hƒ²l4Ù")ö'[ð÷»Ní÷rÑyfç%ø¹âû’-„&?Ù" ânì“ý$pÁ«—/-ÛIþ@!Íò=ƒ`äû]§öÂÞK„ýÖ£>ƒ`x¢f__’åí’þ@½›Yº×‡,ß{‡¼õÞKzë{VŠ<ÀÏ1p%%6 ›äiáþb=¤Ñ=.ݨqÑF:uõÓsÉAïœÜçÕ:¡~}Ñ" Ú/ŠôE‹poNƒ|¿ëÔþu—˜žKzÑý1v}€c·Q]Ì_Ê››¤ŒâŽÏž>°o^ûß¼,Ü›—…9èÍ[—<æÍ³{Þ¼lgdÂÖ¦½˜Ë4ô=÷ü·¿7àïÎÞÐ:…Ê»'BûøÄÈ÷»Níß.÷_sçìžL#y@uœÅê8C]Û¦G²6R-µ…G‹í¢‘œâ¹´Èv9mýž’D;”ôûW~Aëá7ÇÏá ÊyÑÅצ0Dq螸 ^ a|IW|‰roò¦8Îs#'s Æ3é]ЃÎÿùŸ9¢Îù4ó¤0©U’¤› ub5ª&lx1xÓ4ƒ™ü—^ŒÔSƒP¤gN—«ºr…'Þã´F[¼<Øñ¾Å`YÏïn6i*aŽÙö5+HuIï;õž»O¤‡Ñ÷¶“S1¾z3¤+ëãD´Ü(tGÚÝ‘ ²N¨<¤/¡ò_S¨<{t‡óøöø^ÄŠÐþš¸ª{…¦™ÍÈ a°—½½vH Z=¿ÞxÉhy[Kõ"»‡àyÇ7¬ß!ø6lÐ3“ͳ‘ø |_롚elÄÀVc†¾Q‹úO )YÛpiyS Éyïº*µT)muc- !Ýæõ¨Z¬ÅÓ*èò¶¯Ž?´ÂM•ÔD±Îsöl IBÈ«{“g‹xaH¬-gûY3ôö¦+yÅC1³UIP ³(ä…f-eyhôþp/Z{¿b7 _ËþÈ(¢sø"+^£@®sÒµ±¹}@ÙvôÏa&L[ÄT-ùÌCq¥1†¢åóµoÖÓ´p86,ÃÜe ´ ù7Ì|WóyÀU—sáA5œxボ ârx2aV9?yÉň:»ÌRÌœìàY78eÜñ·¹›pœj¹ûU‘Q!ê“`”&ƒ"ad%ޝóÃ1”âÊ›ô" À“À(cRmÝ_ñZëå×Rù|ƒ±âÒaÖ›9÷R ™"Ài|¢-᪄Qª|Ô®‰]¼ºË[¯'¯Z/lY·ØÂîläÅT\t³\ zˆã¼”Ne8—§G¢/7¶n'L²¾°Óרè¢Äô* ‹çÜá-”,Ý~›=•ßr\1µ¬þçö½9…B…˜:L9¢ášf¶•DÎÏÕÚŽùÊœÓ|¿w4Ômê>&ÀQª&N4s!=ž€Ú×¦ŠŒ©6U†©}ö?Û%A[ó;éÓ¤¥q¶ƒ™éªuÙoµÆl+/fǰ€«oå¢à˜?‡…K¥Y‘8>à#E¸¬«Ýg‰ËÅ¢¨L†#Õ`¥>×ÄH½«›Ÿ6Eó’í͈ˀ(ì¼I ¼ÅJÍ1#ã8"ÂÇľ©é‰‚+vrLÖÐÀ‡K’*"±]Ö.,ˆô­·(RYÜÝüÕ¦—ðNëê½ß“VD«…ßÜAs,DûõÚÆÕcQòšwyeºØÝeƒ¤M…·êÕÐá¯%!ÃŽ† H‚Ê=2飿À*æ·À”ZÐNF½=<¹8lÃ}W[pßvÿôa?L"÷ õø‹ý¬ö€ËæÍE‚±eºo}ã{ëÙŽËKÏ÷^s€{÷Þøˆö#c« ÁÃK¡^Œæwk`!|Ãʖƈ´8F¼?IëôinÆÒr\M°U2£ývÍRÛå,ÑŒ 0…ƒ7²Ï´ÖU0³i‚Î'C+‡¶Êš±i$†Ã¹vCbYËâ'#+š§ÍåØÁÞÈÌBгoNfPw~+9Ÿ Æ%9Öš% >+Õ]kÁ¦h›†j¤/…EIœ ,+P2×Öc}DŒW ˜“3CÖ^OÀµUUIInØœGtx¯!O§ÖäUj'EByÌÍÜì¼o;‰Ô§5Œ;|ô[4ÊëÚm Ù:½¦Pr¬Š¡Ð˜Ôб×|" òÂÁ¹.$ó¬±Z¯AOpš6g›vQs"óÄÛgŒ®Ì>²š†-›ÓÅE{”[Ú-ÄÇ‹’¨GÁð¦KL$±k¢ðŠf&­(Öw•äX*§}Òm§<†ÀY6.¾[ñfñ‹žwQƒb{FŒKÓõšsç6ìqTã&‹·ðøÃ4Jõýb©9a8xMË™DÀ Èiô]××\Òž9ôè¡ó‡Ér¹¡¡¬zšzÐ;Ç<º©¤’!=%È$éñµlÅ[µhÂOOvdd³¤àpŠó7úëxë9ªÏ,Ç6n3E½¥í(”ÇF)G#î¾:úƒWn"}$¦ü&*æ$„Åp>nyË~ì[eµ:J ªË¥,8ºZ¥$•w[ž«$dø ü®fÀò=zÛSwÄ-šïwºk¿ëòRßfçÝýjrô}UÙz <²@öíÔÙŸ‰Éf›ÍíúË7o¦£ÑÉtqw²\Mß,°!ÆËÑúÍèööÍWÀ`"]_̦×\þ´>™mnæÇ†6:y9zŠ}|sØzààÍõÝjþ»kæù3úÏÁ „à.þ·ø‚þÏ_˜÷»÷§÷ùþ{w²‘3¯ÉêÿÈU·ú¢Ça€‚Ø´èB/âúK]bî”!›ž×yæñ“GÊ zÇÏ8‚=O {çºSüAÄ[’úT4:e±gÝ)C>þ%©¯×?çn?aïÚSZHo33¿oÝ)C>þ%0n$ˆwüœ¸ý„½hOñoGûw˜ß·„Ý)C>þ%©¯×?çn?!Žö  =˜êø5/v–œÏQD{†ÑžÂÍÍ—á³có˜|â0vž`öï&zz›ñ:ÇÃ\íåCw  öô³ó‘OÀîî@=½=€W9ÞéÛGe‰Ö?ûاçõøójó˜æØ<ë¨ö<¡Ø3ªÍ)4ªVÉ!šã['íãJœb¥£oÞ:[׋… ë#ëɃÊy'*d/yP¿¦<¨ü-Œ¾Ò ³®ëp7¹[±SjÖxx¦êáQ¿Mãày%P™ìÏò=h¦m­iöÑ{ÏU!™Oñ¬›Þ3în å`¦¶' Ûþ9³mh굄Ú9üO ß!›„ìíåúÄ©WyV7xÆ^—"z¡?ØgM[Þ@1¹µð¬GÃ…@KOºÎ=Mzâ¶C?H ÕÝjդͰ›©•¦h]V•f}Híµfµ2ÖVGߟÿé‡sÐEó)Ö¶.¤åî—ôFxaÌ­_È·eûÉ0úI(VóÉ¿Hv £9¶²S€qùýÿüÇo¿ÇËXNú‹÷´qëiÕZNæÇ‰[Ï«Þo¾É'ã°ýFá¤\§¯à©w¬¤8™4ñ4d‡©8–õX çÝJ ÆáYÏÌQ7ñtíÂx6éÄy «5û¥ê…×]ˆ3䜃UÒò’ãÃX讀Éùýjx«Î×ß®¥Þ(Œ÷ƒ»ò÷Cïðè½×äaßÒzØ-ôÀ_Ž_—^Lœíåra/¾C–*^ö_´¨Þ]‘è³æ ÑþȦÛ ~tá(ÖˉM‡Ò6@®²œÅÆôèú®žc:9î$­Ÿò”¼ÇŽVCøêçšòR ËY÷çóqvDPC>ÁúèHŒy,žLziºþÈ Œmò‡Z1]‚ӱùÛDIðkª™5-ÊËöB ?‹7+@ê£eo&~äàÑP‚nâ÷¶žV4 7‚Gû«? #ùí¯u0m\˜;±Hü[rnˆK–¢U® ¶Ršj—É'335PüP)9jE¤Ý€Oµ ¡qœ$¦gÞæ×ó¿Ð¬¬^kV%2{sŸk"°%Å5QàИ TN¿ýŠs›D?Ò‡›8 Ó¦á0µÿpþ@³ŠþôÓJN¸ÕájDƒ>Ù5Ž\¾kœY S;ëÉÝŒ1*›EE{QÞ3HÕžEeï9{0ÉI=$Ãi=l3\M+U¢èKnȸ©¼%™„eß’¤éŸ´nÄü ÏŽó çEoªuûÙøÀõÃYÈl![Ù¨­J&yõƒXöÆ‰Ë’â€ø»wôe5þ'Ïçw,—Ô°áv.VÀj¸˜VÿÂj\Ó|ÉF¦´­4ùF²éÚ¦ƒ k·†Ã"J Èå­§1Ǚڈ®±aDt1ŒÚ{¦!”‘¸dÞµ_3kN`[ %˜Qœe&É!Ñúm7œ0à†z\ôd7µÂ[ÄAOQ#‘ÆD¶t9-í-z”0÷ ?”EÑ»¤Æ;÷9,©…k²!TÌVš[k"ü&v¯u÷㎂«d5Ûoys‚€µ7aSÏ•ËßNƒRµHË,“Æàµ§}Ü7ô¾Ù-¹ë›w¥VºqŠÌÖò–¤¾ø6SÇÍy²)INa]69‰kï(¤`Råi¿ R¥†*7Æ]¼ÖÕñ½ýæk»¥kgÃY("HHH¥£˜»v¾ô¯Ä#'ŠïZû¿:õGQÉÔ,³ øÿ ¡ÕHv­Õd½óÈhaš¤=Ë0ÍD÷²³/<f»ŽHH½÷%Qeì£ßûË£[Âm¬~ß™éo¨Ïj\ÿ\;áÒTu„r®rH¢ìW‘6Ô-ÁÛ¨ÀÄù}öÙíf%Jé—ÂGœŠ]kF¬¨ÁÂq´†FÄa²álk¨ÇŽ£,ß¶R=…yf-C÷tkŽFAÒGåºY HZ³Ø5ª~¶jº¼ s}œF~S<˜ØRP¥¯vô¥eãsv¥v±URõËýq÷Ðï¸÷KšôU5w“û˜k¿ þŽÙÞT7KîŠØ4H颹õÎìcøïñv}¯Û–ë1â»}3ÓŸp¨@/3@¤¹vøiØôÉÚ ¶›S(p^Ó:†­ué0ëV§B­6—óV˼ɤqd,h±“ö…ãÁ˃°wð>2oò8Û-ãüHo)Ú¯FÇó#ü ¤[ÀoÞ)õ*Þˆ§%ƒy× ãXVÛÚ&¹¨«ž`™†Lhh®®` {‚örgWœ–±"s1’±¿Ã4ŒŒ\µ+É7Œä¶Îþ³Åvi´ËþnNò±<àm UîMtf˼Ïõ¶ö+‡+•Ú‡bouX•˜«Ö^Kå®ÛXï@e§%äÒÚæ cÅlm£ŽY¯¶Æn³±Z9–õû­ˆO­JE›VÏŽQÅ¥ò¸l£q¯-¢²ms©îɨWôAŒ;Ÿ•W‘ÅNkq£DqK;˜©ÌîYмîmDâ]Â)m_Ø+q† ÅU༸1Ü­øw›Évn›./o*»ec©Î#ñÒœ›*òc#Z¨ìÚ ›[¯nä¹§~l¹ À3[öøAÖ«‘\†’Èö+ S±'ãô6ÖUòJd.¯¶SsŒ Ž«Üúo²‘û⹸)ûËóRaò=PƒÐê[Ý €£ŒÞ{Æ0((7XN{-’ÒV€É%€Šé•„¡yéÕ)f*€·õɰC+‹ÙéÔËq²Û;É«u´:Ý=•U?\x—w‘^¡VQ¡æ›Z¯w çšÖð¸6’‘Ü”¾Ø6 ’ÖK)ùU†A32zoÐB½Ä3%Ú”·ÔïV÷ 9m¡ÀösÀ±mf76—¦½z¢”+zc(/ÞâîÌØaÒ¡Íz°šH©½›·§ƒá®æ¤ÿZ„Ã7å>óµm‡nÑãÐ-eÇ¡[Їî¯É¡[ЋŒ;ä{;ŽZôo¶OÜä;o}PŽÓ~H¹}Û '‹Iú 䦖ìkí\R(»6}â½l €/j²ópÒäo¸¦IOê*éJJÒ§ ÉÑ”ŸÎhF€&¨7ÕÞ/ƒŒ;F­eó¾©,J¶`ŸkŒJÓ…^ÆÑõÙàPîp=“ž¸è;Kz”*VÉ´Ýæ jÔÉ1ÃQ48ãS-¨5¶{žÚòØ÷=‡¤ µÛ>àVKQ%ÿ÷J`äîAU¾©Üµñå›j3cIägˆJæWÁ#ÃÛÛyͽÞÚ¨ëa ¥°K߉Höï]ÞˆÿÛ¹l #PLq‹¿g1™D°–™€déÉvÝñKõËÆ}yDžcÊñ'°dѺGãc°67û^€R çX8Jáøf¹Q%ÒŸú±æZ Ë×ó×ê¦åÆMàÿW’À¦Ý¢É·ž¯†¢e+ÏÂÈ{µ-œ¶N˜¶k¿½Zwû][Tµ°/‰æ«E½éhw5ü÷6©õ|aË.xèípíY«.}X=çiÑgÁ_3Õªj&ú€Wjæ=n[þÞÊLú‰E¯DçŽRÍB‡8Śͪz„lݵçËY–¼Y6 Æ¥ó]ß)ªV$@‰Õc`Øqx÷ÎöùÃûA¢¨z£¦ëˆ¸eKÄ\ÎÓX¢ü¬µRG\ãkZU¯ï<‡m,V |Î¥6%{Pç¥Ìúæåòcà ï›I ÛîÐZ›C옗éö¼œH0@ÚÀ™ö[ N‚â‚ Œ‘à¤1œ‚¼åÈrÇ Ð(HsÊÝ.2շׇ»—ámÄ"ÕÁ¨Ÿ‚Áb8DQÒ§×/o?5ñVžÙß89dø^ÎÑc¹,àTK6<Ä9¢€  ¤ÑˆÎƒÝ'.ÊÒbd…b³=§¸‚Ô«Eõ….c臙£}ÆÚ·iïdœ„9\Lï´ÓNþ ЯáƒqBAs7{覠ÆÑ™ê7šn™õ†Í¾'ݱm6+•iÜõÞ¼ ¢"íËBƒÎÓzÀ¸^ßÎeݨ‘%¾BÉpÜÊx¯Y¸n +8•]Ì÷qu}7ŠŸëön%øbv ã *{¤ëù¬}p´05+ Šçvˆa§‰’õFã`ýËI¼5•Wê\¨<êÐÆ'Oò+¹çË)¯¶†°Îê¨Ý:´+ëCK*›Ð¶Pu½¯¦²%6Ýp\”ÌIÁ¸‹›1Ë-×6×Á2;æöµQGÝ‚±w:‰¬™®54˜Õòvųcã^”ŽþÑŸZol¼™¶Ã»¹­ç¼Ñ²UÉC UíÆ6­ì¬|o¥?ôÂúâw\s¿¿ùåa%ªÇÃ|°ç˜bmÓùÒAãh€sÑ*(w決†|,øâhÑÞ쓹Íä{ccÀ–SÁ¿|k‚nˆ´-³8Ó¥/Q.]n5`àwbm‡úPþ_Eõ+‡2?Õ–Ò~´ZÝ8½”íãbZ×7UtZ£‚“#€3£”úv€˜o}DLK:›ÕG\Tq 3† _40èóöX´¶ÏVù§íÔRùiü±fÞå±Å»Wļv†ÒMµR’qý$ž ·ÓÚ½ô#”f$ÏÍÚÉy¸iºd¾ “)"R†ÝíÝwGܱ{/]¤oå©ö.œÙÒ2£ë™€¿©¦H„¦=LdZ¦M¿Ù™Ÿè `°Í“VàšÔоÐÇl¯mëmÆ7ZÞ­¤=²ù¤“ê  hÍò©ù„^¿žYà+/Ón{Lw¢T÷"ì× ÖÙZë`m+±£/%ge¢¢Ã‚Í2˜5@ï‘N4¶>,I µÒß`×’!ö‘þç%`×âzªÜW¬>3 ø›Tw4×I^(2§þnµ´lËa:›WQ7óbÁ'íö4q7EŸéòOe‹%hüëÆ“5‘4D…_£MáXq‹á,@—GïÄËê­ƒï.rã¶Fœ÷ï7®q°í#½ºù’¦%@ãÞµç¢ZHƸ{)NjôòB›/þ•ý/¨à°ßhÞøôèçcâÄAJBžxßTÏú+ç¢×hˆô/BEÊa‡¿ûA¼nÙ‡Ñ彉 ÏÊ—PÄÃCfÇiOEúL±³ëÄgŒE¨b“ìG,ö›£@Rð<7ˆÂ‰ø¨j Ô¨öÉñœ[ Xû„1órÛÌj­þi;ÀÛ‡K½.Ÿ¹#óоç;©Âˆ°ƒ&;ó®ì÷C=Ì‘ª§xoÖ•bñkî\^5è–uãa«<» ìµh¦er‚l €£/Œ¹ “€³‘àÉowé$µ«Õ;i¡¼S jéÆL¢&y0 —G{›L#ŸÄݤXåÐ.- 3«IŽ«õhUó^¢Õ´õªåþQ-kw¥ƒØP«»P“MŠ\ý„Qlu´×$^,J2×ÞaŒ"2q!µZêÎ[á6pö`—ï¦Éïõû±É6\,Ô)?Õ€I†+uEVžõöW¶ht£N}uóvâí±…ÿb%vü¿MbI€´QpÈ•ÄzA`\' QDAªh €#æçŠïhõ-Ú6Ó±NÔø oÓî¶MC3ÅyŸÏó!µ«k×ܽ¯VCŽÃÖ··2TÍüÙ˜HÒ罞6é8šU-Ÿðü *¶édEù1=Î šiÚ®uÔ³û_›‡E¥ímû½áûÙ:c™1V*äLƒn‹ñœ=Ýw„EÑ—8ó’˜´Æ^>aŽeZ÷mȨH¶=v|ÖO!M¨мó‡ïÞ¡²ù7Ú&¦ŒÍ';†,ç­Œðcgša[_{#…YÒ÷2½•Æžo¥5íÆMÇ}1—ÛóþáµSeEDÙT¢so½ùA_þ–]þ#PëÎKÒÉwëæî‘é­åÕƒ(ËóžçYÖ÷Ÿ×êu$€J^\Ú®ÓAlDEovk{L‹gù»é>&²B>™îMÅ/ÖŠômw½f®«.ÕqXöeÝ"ß§]7ABö²¡ÔÕZ˜ÇÎÊ+—À<õ›ªÓì\ÍQüÁ†³¾ý×ÑY½ÔoÀü(û¾1{¾¶R„÷ œdDGêÌ—:dáôU6ü¸g -,xûÖs'ÛS)t—Bí§ÙAnѧ¨ãÝnh­| ?¾é¶ëÖd5Â(LôFŒˆq¹¶¾é àÆ2-ô©ËüXrg¯%Wþ7¨5Ó#mEƒØt“³ék‘oÒxb´„ܲ½ØŒ¯™¸WñÔ#ñSs¡Ý6þp¤õâ`€ *®êööåIo@lâ4[¿M"³ÆÒl"³Íóm†o¶½¯±o"(’à‰ëNR¸âóûœ†f•ÄIú=ó0`ºˆWB#RíÞ„Æçx¸aÊŽ´€CÚLåë¿0Z÷Ñäæäíhö×ã¼ÒmoØj>Kµ&ÃÙÙn㹪É*ÕCÉ!Ã~¤?7P[IÕ{m#ÁÞv0ݳ,_)îEöÈçöKâA*;!Vv2r…¥^Ž¿ƒœ“ôûI/ÌL;véE:µ™¬–qÎlk—I¡FÂtˆàÁ`¤Ú›Èi+Ó]I WR‡ P–Ú¸ËɃ¨IÏ÷D'p5´é´sR>£¡%:ð§Æ ¤(yÎRÊP¡«&®¤m¿V‹ÍäFëä8Ì‹B€$?Ñ´ôxYBú×õ²„ðX¼¸Y~Mn–ðC7Kú7Kªn4€YKS#±ûX¦Îü¨.{T­cåÏÀa’È"ÇóB¯YÂû#©‘hR½llkœœç{Óô[\7½«9ŸØæ“ÜÏNߤø|¥›US áıP±ªü$qWm†È ½€…°y¬ÈPê¤_»vlªÊƒ¬ÒeÄÍЩÁ×òEuK¼I|ù«Í𺶸oêPæ÷CSë+ŽgHü›çbUa¡ËI]+­"ŽéjÖ›uëL\·*ñ:ð$r&I³C­gZÿã笚Y]®’%‰æ›õ±(3Ù¤ ŽXAJœ0oâš8ýþü+:ã+ÜM 'è¨Q‹\j[3±%3G—˜éLb<Ò¬Ò%ÉI‘Æ[U¾wï¸GÜoØ7TI’‡înƒ0¬Ê¼v~ î§³a èy-L´‘ ¡Ý—¥reLpˬ”õ'ÛäX ÍáõÝ\#AÚSW{÷Ý ëu#!Ta<_|"CÛÓï©§‘……$¬,øœ}C½Ó·lfX®Wi§mÈ)\Êin4Á]ýH«NhŠ—›‡F@­k³©:ˆ:]ÓtÆiãpœÔ)þX»Ö‚¾aäÅzÛ¤ƒíÈ$%ab‡ Ìq·˜£¦WZ¯ÍëQ½©‘qjÇ\и¦çÞà¹7ôÜõÛrè–„@ÒÍ'Ŭ]Žˆqå?hmÃ_#í´\hrP˜&Ù^Sú^…=ŸzŒ)Ÿ¸ëš’ƒÒ{…é\rP*ˆ/*8{ip¸‘æráë $çjDÃäÜb蚨Œ&€ž¡m(÷YõÜgÖõ­9%ß²±Št㩬@öm zµª¦´´ §¾;¦¢äÆ£[<)ÐrIéMç'Õ6ÑgÈC£µM¶¦HÒÉ_;A6ݺ¿ºØÕpôƒ5øÔ©éúõ4{!ߊuÕ¥ÑĹ5ÅeLƒ(y´Muߤ€Ä¢•P묨u–>é¤TÅgkS@† Àl}ÛÞáÇ»'P_Ý4ïþ›W¾ßÕ‚?¶« „ˆ>oínôÇtD‘ÂòH"ìö„öíÂÒØ·³iÏU­É|pm»¦ÛƒU´†4pƒ¥Æ¿kÛuùê'I w¬gÔØŽâ˜,5[Џº°Îy䬲T_¥ýl÷*ò½µ´ô ¬×wsnÉ«"hȉ‹£?Õèo x² E"ŠH‹’€½3â€(J,AÅö"3M£Zoo5¿YмÉf„j»º¶g^œˆç:°må½Ñâí\7.j«,žCYuXsôç³wvIÛôù¿ÅØ"ç1ôþ~s³¡Q“Ít@ëÓ¼™~†2½Yþ}@ Ìý>ßÜ ~nó?\~^oVË•ÿábð³r¹ÿé”Îå%ÐúpEZ®õ>Ío?»uѾbøi´$ Çw·ü'Í7«éµt/M¯£ÁŠÌ¢Á Í@ë/ÓþŽ˜Â^Õzörþ:üüw÷W O÷\Ê)ážS"髺ï.±¶^ÝsJ2ø9¼‡–TNÙw— §ì§%—SvÝ…VìjøÓ÷·à-½ülþéͧXÎù§7[}ŠZßµþú¶¾kÿ5Ðt>ý$-wœdø_Γ8í-†º =äÓÞÓ>^ˆ,Ü-Þ{·ë½ î¶ï4¢ˆž&‹…þ" ˆVº’ŸAWs²ˆÿ'á&óOm²FY ~î¬Ë|y¹Ø@ÛþAÏït¹r¤ž0Ök[§êR‚•³Y:|»d¨1Ís O=è oî÷Kúêu–“ô‹²˜~nH.­Ñ¼ŒÞ¿$yòZ~ñvdH6îÒŸêñff¾|»œÂ߆öÛ¬äö†D–Í$d}­ÓUûô²äónHnÓQ~èÙÅ·.,!Ý!,¹wTps{^<ìîÅCÞÓ^wèÍòf†ÊnÞœ}Ø0†{Ïݧ'i—ßäÃÂŽö?…N*¼ýÌ:™4Mþhÿ,$±Üðõh NסÈÞÇyaŽ q‡”¯+å£{C®ã§¤úÀ®ŒB{e¹+£â+#weClTt¥Œ¥OTöÏ›±xýÖ OÇÍN‚5×`B3Ì®¡»„hÎç Ž`œÊMIó}ø}1 Iß}ó§Ýax´•ݾqüħ»(Ξxã$Ñ´5ÄÑ»îüÄÁˆÂ]4—O¼q´“ä'2\Tì"¹xâË$O%yË¥O¾]7Nžxãt×ê{"+ïã'Rœï\|[cüO¡¯³½ 1ô/úß_ÝN׳1¾g¯û§·¸‹¾nø„§F¾æò‹=µQÆÊ_f”ý‚Oe)Q}ì—zªSHÁñuú{ñ rRáë£|êƒs8/ƃõ­›¬Õרß7DYç#‰lQÑœòoRÁäïT>ß²¸q‹ö)¡þ޽E–É#yDß-:§„úô(Ö[æöûlç-:§„¹R¡Ô¹[f»_¤sJ¨¿iÛÔ¿íXí¦¢sŠ›ÂŽM{¸·#¶«ìvgSo¥n2;Ÿäíyз I¸k:g(ͤèðïR8Ü93Â@ïèËöûÝã×9%ÔKI»×[´£÷íSÊ6”vŒvÒÐ9£hswgŒŸ2–ÏH”ñošÁîG±{™DÿnÏiùÝSâ0i €û~÷Bèžâ¨°cQ¶¹ºçÝS¶.urf÷-:§X>Œ²6[Ùë»Eç”ȾHÒ¹Åî5Ñ=ÅQaGí[õÝ¢sŠLGMgÒŸÂSa¼ÅSÝáj%ã½<Õ=%,’Žp-ï®íSN¸ÞËSÝSœpUž Ã{yª{JÑf©ü^Žêœ‘·ù)¿—:gmf*ï奲+RÛ¬Ôë'‰§¨-Î!ž:ÙÇ4‹A?vîÝSÜâ°ë+½—»§8™’Zqu¯ŒïžwEÜ«ptO‰;ûŽ[ÕÑîéœÒûù=[îCf3l«X˜ÍÎGQgçp³œîžÍÎ)ŽÜµÕɽb¾³ÉØ£¼Wëêž•ÝMçþͦsJó·•÷òT÷”fVí"¹GÞ9›6Úb$”bÃÆfð»j1Ö˜2Ý6f"š¯æZ€!éòMQp{ ¬z|b²<äÊŒéQx<±Ÿò‰R!Îç‰|ZÄHéŒì§±Ü¡äú¤Ø~ʹaÀ ¨‰ý8²£›ÃQª—r‹0Ì@W¦Ÿz.ñw§×[è;„q,ÄÉ¥ 'O Qò}Âý¸#}%ûà”ëyÝ+qª˜Ü!C#z)}2Ñ3¦îºiønßM¾•{Èõ xpFì®·gkU”&ÐkRçã†_#ÃY¾ìÏ|pß½Ãþì‡ö©¦çÔ]í4«žï֨ؓ)›7°WMÖÙJûq ó>;þ¯£þ¼Œ¦‰r»Ó¤×¶â‹ËôZ©°’*5¶²˜“Vz&Cßk¯²œ§x·¨ÿëNŠøFw+.6\mÝ˨[9º®`ÍxKÛãDjvRÀ;ì®êäï‡ÞáUû¯¹¯Š?ÛWÅoôÞE"eüÊøi .Pð´°¸´úv>\ ]'åEhßëµdàÚÚú©œ.™¡ŒÈßÂÒ¬Ón©PßܺnÄ®æ{Щí×5CXý×Ñ·?¼Ö´C¡ÔåÑ^ð}|oûgÑh öšAÏ5Ô×f÷Ô×êÂ(’úÚÌÖ×®ÆG.ùmÀ•cû^ß½ÃC^ŽN4;¯Ù÷r­÷k½¡Ù†ÊÊ/¸>’ Ê„±ron‡£Í©¶Rã’„aŒ®,ì±²½j:í)¹”%T«úš3ÿŒ¶i\koù™«ÜÉ_Ù|ÞŠ“¶kûz¤8ŽLOš¤¶íb<_Žï:¶(>®Øá¦"ù0Öžƒ’¯]¯¤++0‚õªu•E)@‰;À÷¥@ŽóöQºðJ:gY2†W¶J)K_+XÓÍ{Í•ëUCìG®äî¶[¼~“ÙêÈ¡fð—-Ò_-Û«·› ‘à¿kDà ÕBûeÈ»p…ý ´2~¤íïÈÛ.Ϋ!§ì V#»ÛïfÐç}«6lÚšrÁÙJh–ò®bøc§þDÀ`¿ÒÖBumçõѬZAÿÖ÷aѵ‹¾#¼‚¼œ”èPJW*Ep¸&­>•3-¶Òw-N›tØŒÑ7Wܸ®_¶ì‡y(W˜jíþÀ˜åÞÈ\oóá+×m¦ö»Ú»ÎíÀw\ÞÝ¢æÙ»Æ®W„ö¨æ5¶pÆ&·UÚ=oÈÛ9)"®äÉc-}°=m'óá`ÛüöÚÑ¢µ‘`Y]x^>º«ä!¯Ñ_}Ýôýøýw§ßþá§ßÿåò›‹¯ÿtŽæ/|ït8Õ: Ó¸B_`yè´¯«6jªGÜÆ•{ØŠ- göžUÃzÓ†óx‘ý LÁëÊC¤gV“RÖe’–}*ü›ÖZEt1W3¸+£H5-d]»±­íc;ù¦¦öˆä’˜0Ù·×ð÷Cïð€½'š×´‘F{7R%ÊUà|îbéð*Ãqå¹b˜_ø$ô:m‡’>,# ~bxþÚº³#¯"ÂÖÛ¼V`²‚¡ð”Y‡{–¶®™gWª´vˆ†Ô=‘ª>·Y†®‘„²U{ãœ4¨”‚KV—ÌÃNÆŠù“,mh÷K!u±ÔkwÔ\Ð >MŠì$'ÕŸ ±¤Œwã_»†|,øìØ m_í…PeßDú¥ µ`Û›6;ªc r·ûÁLEr!ª}4*V˜Å×¶ V<7}n߯¤q¦C˜´êƒmOÚl¸ÀÍ6äñíUÅmMOdÛÓAq1dÀüîf¡µ%ÄßµìQÜ}lÜcáµP2š‡XtW‚<Æùm L['í#  ÖX6ªÝ¦é?“I‰çòº¿O¸Ä[ËïÖ˹íÊNö…ä¹-³ ¹¿×´uëiÏëh-q mFÿ¤]màŠü'>@¤«èW(Òµ­MlvYÿ¢!t~=ÿ`;¶W]A¡Ä·ÆEñÓÈl3JOÝ<ۯĔÊ@F§ݹ>÷ÓÖT‰½+ü #w*Íú¦`Õê{•¯+p#Z—rC²”û¸ýU9ªZ “î;j gÏ|hKïþaháXÑ~­'µÊt¢¾2˜þuËtbTê¼”éüšÊtâ‹-hq}†8ˆÓ³ÇD˜ògb—ÀZ° Ÿqnij—Ðg &îΠõ™:;SuFü@uuÆþ‡õtFíÅÑ´/7gæ–|¦x;Ó·ìðÌýú;ãö™âêLÚZgërqj†í3 8p†{›“ÖÍ<׫±È™hæÉŽÖpëÌ™ºXq¢Éò`ω¡;‘&-f*Û'Ærlô|fÁÕÓÖk´z¦:ùÙeXè-ã^o®{6MzØópõ.›ö©EÒrI·Nõ΄'<ïÐ{÷^ˆ˜&ðÎ ½3C;îöñq)¥]vgà‰¿RïìMýaŠõžIYt^©9Ó´*-d ÄIÄmG8¶ãèËã¬HŒ|¹ÃNCÈ߽Îð{O½Ç¾»ÐQ¹ÃÞÆ#Ùr„7~pÓBp£Ÿ{ª_céö(`d•ç?3w8º«Û9P”® ÷š‹ßœ!¿f½•¾»à>Äè°o=E…4³DFž·£" i]y„ôîy±»º!º†|,·ÿÇÕ• =î U.eW„¯xÁ '½¹g+s¬|ÁÂtx|`1´ÏL àã¸OÚ·Yk“\¦„;'¨!Èç/µ9K”m[gŠXU“åPÕ„&m­ÑAè¶Œ•áhµ\3b ›óM}ËÀ»m;sÜv+ X‘k‡½q£ÍŠWSÍdOáU~†è31*qÅ¡AƒM-ü®ÜžÙ)½{¼[*HͤݧôáÓ˜LɵŒïPßXÄ\§n.¹o·àö!G­±yî´÷¹Ñê¢gþ£v`tꨶ¨ÔE”Š=^­Ö>rImšq÷›õÖሩ›¨Š¯¼sž¼öF¸"^ù±ÁãÕv:qÄít¶à(\ñý¬›dáèaî®kAS:À.·¸ªv\Õbªº©Ä Bÿa7j8lÚËÄ<È *³À )à²Â+%wÀpnš> \Ë´CBå󵯀CÚ˜+ÚÏÑÚTê¹­«Qeí:|àðNÈ´µÁÀT]ùY×7º Í$7žV×øÌ³WWéú4ˆÙùæ£êÂ$­»Îœª5N3g25­G^)zXWôȱÿ¦Îþ“~Ó›Užû뽂¶ÔÚ°¾f혉¶.EÓgËæ_qwä‰ÇëÝn(ydqÀ8$ÜKj—'”Ôíæ µñ:’[‚dXEÕƒH%#n®Qƒ¨p€;†en­¬¤ ®lÔvÚH";ƒÞœ×À*¦…ÈÀjâE^ÐÖÄ/D¯g£¥l.3– ŠŽ!óx}7UÕXa¡gML¥êø e±kS—æd9ülÛë L‹)ïýíåÀnÀ€s?¼uqrœbЉac!`s¶ÇÁ|¸‘€ÃlxËV|%€†ðŽÝÒ\0hWƒ’)ÈJê´÷{:Ù¸–IÂ$Ò¸–6 ošcNέ‡9pT -§•¬7ð„ÚNk<‰4㵬?Û&d¤ð  ¼C§Mx_ñv4 ªùˆ}5A¥äeñêøƒûcTA¦|ˆ&ña(`%yÕç”Ý^FaIÌÖ#œÌòD4«¯Þö¹žI'¯ã2½†£y§o–ç.EóäeS{‹úä8÷z·@¥L,½`v1ø'£‡--w¿’a6€D  &1‹‹ƒØbØ]¾]Ó^0Çtp^«Zq–RîÂhZŒí¯«kê¯.dÆz£úýqúîâò»ó³¯ÿ×7—_5°ÝÌï=oáMàyõô›æŠáÅö7nöõå镽™­dÕÒë,lÛ<«,.Ðϧ'|í‘kZä^|uþ'›ø0Æ–CK]ÝÉIžAb³f¦ªÏ;φ·ãº0 2âjØxÞ¶8sºc§0Ž!×Ö·Íz.¤ût¾¼¶ }E΀•~ktL¥°l•ßry-zŸçzöf¢Á1 ·:q]nªVÓ2 xäÚpXW:Ì"›_Ò«ú“  ÝiPØ kjÓkÇa³–«·¿Ç€Ñ5qævBé>œ&ÚÿF;£+NЏ Û€g‚mØêK]hì§iVçÇ*õÆß0N¡8ÖOÔ¯šã°Xާók4bF›¡T›ðüíèOrèµËÏ2Ðm&Ìcõ†©q°ØjCª&Z¤]lF¦Ù¦íMˆõ škŒ‡:“oùyú×õó¢>üÅÏû«òó&÷ûyÁq©9‰ªš‰$Õí«&:¾MÉ“êÁ –NpgïT(\.^£5$·zox—Å$7Ü*-<ãØÁDNŒ—8ȲXÖЈ†ùrd×Pž©×æk›ýÁ¡½.ɽóÖÒ–¢ÇªÀ¬[ÖýɱÉ"Ûᆳ¤vŒƒv¥oXÊC.ç"z/djvé)ºqç#éÙ®:š‡n†"ƒ 0›Fô0N%;<eIÚë¤-ŒÝn¶ 6ŠÛù]Ó\ŒâþK¨Žw€9¡ª& سÞlüqÓÖ±»õoÅò¼"|. ‚Ø=R³T·Ã„6þ¨ŒÊö·& ‹ÌŸžÕpñA^§¾×¤%®H\ß#¾º·¹0FâÎ6ëá,%ä°‚mukž–0’^@Þ ¾ß_m›Îcf&à½ïn{ô–ÉØKóYËÄeF™S5o[Æû}漤ã2 Û'élºø@{¯Ü3Ëtïüž;¶´:Ž—w×´æp¾ö£0Œ'îÚH·òfö½ÿÄš­uÁ”äyì+!ÂBe¡e“å< ¦›2mÍ8󨴘ƑÎèÛ£z5®é+Öü–^¯i!¥È¥1¥¯5¬!þšh,í]Íæ.îŸ&¡¨b/š7’üpm–Ž8´õÂMØ:Ð|é Éd°LÐa‰‰ÂTs?ÿøíWdéð äkàÿTPkÒĹu˜ßn¯==v‹8‘df$ú!ÙŠ6Ë»ùØK^ĵü܈­VùÚkÆèµ”ö‚{ó¨h|k—„¥w}ã$Jš7VÁÀÏN#åÊï°È[ÇnúuöMÚ¡äœ6mѺã¦de.ÜÕD]Qð&(@ß%m¶ª.¼×·*²$s¢Q¨Õ:Ùœeækd̈eL-†‡xb°q¬hä°ùTºÒþå+-î°DƸ j:‚x]tÕ}T³Ç¡LÝëõp" .¤…¹ø_ãbx\¸<ð¸80K€i¯[«0A¼Ýˆ_êgÄ]°, ·¦|—â{R¾ñýÐ;<$åÛ]cz®9|ÏŒöî™ú”0H›M3âú¢fÓD~€Bˆ§‘¿g2¦ùáFâl¿WyºK­×ΦšòçPr^S,rÛQZ*é†~òo¿îÏŽiY}÷冽­nf ›/¢i&AªOíb_Ûåk®ÏTë\´ÌE•YÖ”-ªjÌú5|Ãç†löɪq¦„·“t2Z5šlDšyV }3å®F¯Ô•Ì¢è¶é ”f9âêÒÌØd-GeÒ—šÒ¿®£2…¯òÅQùkrT¦àÆ#„m•ÒÅÑ»±Ü™ìÊÖ7šÜ>ÓFÁ’Ã]±¯ÃÌîÕÍlÿöO¡³;ƒfzÜlŸŸ§zßaÏá]/ìde |’ÖÁ½mek¯X‚tŒýW^µ¯ˆÒµñF¼æ_–v«a‘ Å_}ªUép$lµ±™4QÛ‰±mkêmÚzÝÄ™AGΙ«X³®½žÕÆYÃwd±2b½Ë$ ®Œ€Ô’s–Ęåf€Û©Ó“@~ЀS´âMÌ ãvÉÚL^`ãÂI+ÖƒZuoÆs-züPµîĹ:K뺘Hƒ‘´^„QÛÈã0;;‹ºNÂÚÚxÒ=N+ä… ¶Tß°lå#zî\vÌœ~ v4Dͳ¨ Õ}‘4:ßhó5¢ýÁ´0*ÉæÁ­ÕÇÍífeŒêšÿ†“©øq4`€þâ3ÓÀÞï´ùv»ŸØvAίÃT¤ÈŠílñœ?Ôòðaô²ÜùªÝ[äyï[0z/‚kêåÝ«ùðd ß·/3ñtñ!r8Ô½¿×]É.@ä"ïLÀ÷CïðÈ„½×®lÆû”M£O!ÓéšqG×”\ ·Î" • Ã4Í®bŽû.øÊ´åZ;ßÈ+W5gGHæ0§c¾FMæ±c_N·¼ÝvÕX¶m²›„£±Q ÑSÕ˜ÛùÁ —b¨’ÈZà.ç½9r½§mm±¶ÿTXiM|Ý“QÒtl´î¶-Ÿ_Ùô^Îbá:iíÚjëµÔÑÂFöf†ÁÁã\>Óî2Jžzíé'+ȇ··óš©¢åg¬ó†îðZS{ Î]±÷’„3¥¿é€7´ñ7ã?¶ðçùø¸.Øæm¥BuÈg2r.`iße^|Õî«ÝNçMº‘—-azr^1A~aÚ—Õ´õ(1$.?Á¦'h‚‡Xu’gÙäkýÉm…‘¦65Î6®lS¿hØtôùÆø…›ìæÒdb6 UžÑ ÜAo8þÐk4@‘3Û ×uí¼ÚާV^µ11?ÿ}ÇÍÖw·>±ˆÊÆUëü´ @à­~9»éÚ5“ŽÚbiœ%3e¡WâK‚ 6„ꣿU«¥¶õ ¹àÁA5hÿo¿Ø«kÚižn³ôUÿa#][§.y“žH­o$üd1S›1ÔÒ‚4‚AÊ„s¬Î{)‰®9ÀÀRÝ=£®ñH6ˑŤ”ªØqx/El•.êF4Ò˜ËÄ'æ‚›×wõ|ÜÎ#…áÝÞ7f{ó‡5éÄæºØ¬¤ [£=ê¢+"a„#–þ{Cð‡_ÚçðËè_×á—Áç÷âðû59ü²*ÐYËw)_›]'îJ.ÈwÞúpË5¹'µÏ cÝ®I'³@¯¼6ŠÆnEîU×ñdv(&¾¹°îÀ¤Ô;꺾†µ¶8WßfÆeàmŒSœ!ì ,ÄdÜ `aµ€¡ŽMü<5¤ÎCÎÌ|¶•³à{H㑌ØÀðňhãGˆ>, B·.xºoщi?¾ÅtIêT=}÷Ƶ6¬P·KR}øŒVOïNIªÚö3³U…Z²G«W’Óo;í.†büy€œã~.è¤ÿ›íØ+JæªÕBYf ‰$Ö|zû|Õ ã¦óJ[WïK” ÁM+fwº8—ìOëuК§©‡ô†âUFì‹:÷$FÊݺ‰%¶ø>™i7ÅA#Œ“V© û #®ÌwûÞß¿”0Ç õÓá§„G¦k@¢ù¿o,wÅßÈh§e©TÄìgh¥¨Í¶RûÆ’YT‹Ê.Ñ´F1ëOï{¥õÒSÍÒqYQaR"&GÌéÂÝj¿O«Eµòœ˜¶sWŠìcðÀŸs«·uÊ,úŠ–% UrÆ=ÝmÚÒݸúo+ëÊ)[¬„m9ay|Dí´Ê«úX è“^ÞZT‰,Ì4>ÓÍŠjäzk:–b90è+ëdMQ‹ù`Y™–^ìÛ%qÞ„FЄÛA$2`²¯ ‰Ôé¼þÄ¥"-ùµ]NŒ7$ÆÓÑmö{½ÚFÖDÉ„nL¿IÞÑËf’GA_RrÚò€‹n¨.‚8ÑT^?Ô!‰•+ô"ÔZô<ë¦î0ÕãNàPÒ^¹€[’^[%ÍûÕ]qîÆšÄ‹ÇÌ—#‘ˆH±6}‰ÜHÌv¬j|ŽÈ@ã*+=¿Ã­‚Ÿ%]¯&³ÖÖÖÂL€zÛµ¾M[ƹ‰8xÖ1ÎYVŠÝغ+=½bȉ_ ùhc­M÷ü´§‘9L Ã!SKØL½õ£¶·¾ÑbÚ·âÄ‘Ñ[½oŸ™¿-Wš3×XóüD‰Ëq‘áÈ’S· '[ŒÙ‰£"íñ=!DÎ#ùÕV6¥ç^°"Ãìȃ>¨ò€è@råW€íø’*Wì„Ñ´ÉÏ”gIS‡Ò+xµ+íT+èøìÄ>ª‰¹ZMŽÓ@dl€úuˆ _M[ÕYZl9*LœÛÈQw¼Øoà=Ü{±í2¡>õšv4 ·klv•RyÁ¾¸`ÍÏ© ãv¾ÞLM~ tv¶UÓRHªÍ†êüµ3ð¾U(î<Ž2E²e¬ϧ˜Ó¿®O1‡[ñŧøkò)æªv^ ãåR¦µüþk|Ÿ²Ç«v¾ûl¸îÚlzX¤††©è¶ƒ,Ž[Š;ö²"Oyœo…eûš'ô}ºÇM:ýIO ¦¡@Ã>¢&êÇI+ÔÖÒNxÊÌ iÑ(® k=}ÓSKÝX­Ý«ý ^‰ÝѤح†S§€’0´¢ò–¬ÔgR"+*ÛFOí è# ÛÏÉw:ȯü½­‹Ôà  G‹ÀG´C«Lg´1ö 7e©ÿæíH:n\ªŒ—QÏlË–‚ÙyÙ‰ñ[ˆ'ƒŸ-ylÂ7̪ÃшÌ™tï›0—…´¨||¿Ýνàr'Çœf¶¬’^°ò9#·e•-Î`ÇH«Ðþ^4/1UzÛ|H±]‚"zóã Æsò'…—Ÿa™¶_ÀòSX¤6?…¸—âѤ—Ì<Žštrêæ}w•­u•²µ°TJ ?ÌR\µå ¸3xŸÈ^ ß'.JÓ.Úob,=0¤éOkš’hØœg€CýÛ¯Ô;…üô¤ĻfOWAéÐWãZ¨ÏcÕ%¾Ñm½0×ms[¹µ½­¶·õvq„'ƒEG…ÍåÄ8©ÆÆ”–y¹K¤™=A&d2s=dú>¸CHV\T‰ÁócÁ¶iÞùUsCßÒ2>ÎF­æ/pbßµp›È™‡‹qÉÆ(¦º•‡Œà,1†wÇœ¥¨³ïvÄ*ìá¦^Œ5¶ãâÜaŒkS£½‰¦üýКƒ‚uíkÓÈ"ÞßJ¡mdK# s5Ö¾GR_jË/6.|¤ÉÝb†#/OAWÍ‡Ú F½Ç l$mkÈàa8“ùêω©ïÅÔnhàᱸzQdü¹Ùõêöyõ„®Hòý¯îNê1nÿY_=Ùûê– 'ÎfÕ^O³f×Nrø’y4ÝW¨;†<¯‰¦¤žS:ð€ƒ4CpÒ46n-5žÇZ¸¯q/ "²=Wu›4*²Í´S±'EÓkš&©úŸ«ñ´rð‚iíº#,˜‘3ÖõV$°›”~ 0îÖ€ÞvJ¦NœØª¾se\HÅ4¯éЕÈT[MöÄÃ\QŽi¼ÚjÒ)/â,ÂÁ§AD[üàw«ŸêÁïhÔìU_|q†›\,GwÄk›/ëÿœüçtžT·kóÅûöû×§ãåuõ:: —ß~…ºè‡š–NÞТ£?Ïܸ\}I³4ÆÕƒ¿# â“hÀŽÒyõc5$ö\úî‚—ƒîªÁ7˃„&ö˸ø’–{„¢/¾¸Â oa|­êÅïH—›Ÿj¿ªO&«ÁÑÕj¸-ëõàÛ˯¿¾üýw_}óÕ1^™(´¬Ï–¿äIÅ8ÐÐWNõÕà(L„'¤àU.ãóå ^~mÞü_WÑíš§‹ˆŒq0®&¦ù˜‡ÜûûÍ͆ùf¸YÕ·wóf´œ¿?àM2Û>ý}pM¬Ë·Áw}…GüŸëÕôºs^Ø>/Üu^dÏ ÷ß/nŸ·ó~ÉàçðúÒöy;ï—Ùóî¡/oŸ·ó~EwüШ³ç¼²{^VöóÖ„Qÿ‰<#hdH§„{( £æŽ n÷Ç͉ n÷‰Is"¨Û}bÚ}ôŽÑ ³î£w OÞ}ô®áá‰iÞw7<3Íûî<1â™iÞw÷‰a÷Ñ;Þ:ŠºÞñÖQÜ}ôŽ·ŽxfR>%Ü7…ÏLÆÜ¥ûNä™Éù”¸ØwbÞ¬ÀÔýì;±hNð³ïIJ9QÀÏ>Y4'…ýÙwbè˜ìxÖT  ˜FÀ®%»9Kñy½À!„y뜦¶Õ«X˜×qvÂî­ÿ?{ÿÞÜÌqÝ¢§?vªƒ Iaî3RœÚn±êµeKQö)?®˜ ‰ €’hU¾ûîuë^=€àæ=Ê>*ËÌôeu÷êuý­Ûb´·wÆ¢+M4²,¥cÇù8úÙ½­'P7£ŸëMc¥ým»ýìD ýýnDBþr7ýÜÿnkx9ú™¦¢¿\~&2 Øo·‡_¯G?ó¬ƒØì·›‡pX û­•‘‚ï–3ûe½‡A̦áO÷î§ûM·ûÑýöc7ïunWµÿo5˜Æfoç±Õà,Mðå›™OwAû]! ƒÇ|üàëYÃmüò#’ÉJsØÛõv;'øÁÊ?ÏŸGðr_¹yhnâ‘Z–ø{D°UáF l>üaõ´Y ó¿ïa:jö½ôó££V-CÁ_A¿ðkï[¡u;ýñ‹¥=|»zô³ù»ì±žBz žù»ÐÞrðíóv:×ÿÔûû9ø1hÏž-¾Pã ñWøÌOVÇ´kˆmbGvƒO± @ FÆjµówŽ˜¿SØ EŸÌßý1.Q€ýÜ“Gôãë=ÔèûvùUû&½.ÌùÝàQf00îÌ÷e".W}~ÙÙÿXÙŽ(ü{f€Éæ|_âw3óæF_víhsw_Ïö»~þˆ_Û@Ç#bìF»0íÔvûhÿ[!yôÍfù 'ÜtË,4ëQ>é$²wÄjTæòy9*ŠpoðsY¹Ï†Š&øƒe—( ïF–¡êÖ£<“wV£ŒÅA³þ‘¥FðLÐÑ èÚwe‚9…ïx­´/÷-R¹íAÜ¥}meì|ÍŒœÃÛXØFt¿£?cö_ìÿG»¹ Ë ºÏq$Ÿ—ü¹ÀÏô ~6#{‡#ýù/°æ'{ñ-Ûɪæ> )5`ŒòõMU°g³ W¿Jäó’?—ôyâ>àÜ}ËvÀª¹Ël‚Q¾Ø”}¥d5Ucý¡ æméIŸ—ü9µ:|ΰ˜:}ŽÝ÷3(T-ÙᤰáÓ ÷}.q%ð]úl¤¡ÃaÚiG8Ýn7?.ê)NÏõ³êõ¯ÇåÇÂëA‡‚Tà‘•¤€ÔÍQ ”±§@{ Ðgj½ŒýèùC $…§}†O~—>iè ø~V½þõ¸Þ‚Eâ)P$žô™Z/?z~€©¢~fV™¸ÏF:‡¾ŸU¯=®· @žz ä©§}¦ÖóÔ€ž @¤(€»vgî]ül¤¡s(àûYõú×ãz d™§@–y ÐgjÇÌ# ç)—žø9‹лñnè ø~V½þõ¸Þ‚iî)æžô™ZOs?z~€™¢ÍºÈÜ»ñnè ø~V½þõ¸Þ‚qé)—žô™Z§5¥ÐóˆsÅ8Qz7&>À CßϪ׿×k(pZ’ŠÒQJ\½Z”:ÝH<9hD/_ÑH~8’åÝ@Îo$žÎëÉŠbh:¯kåç~#µöšF’x`:¯n¤hÜw=iµȧbå“s”—(;¦¼ Äš{ ;÷vååëª'^höMûø„. ࿸‹¨TB|¤„øèu½|ôdußüi³š®‰AãI:éQ5N©2ÔX 5öC2?TúüÁÖRî%•ÏKþœùÓì- Çxôr‚~t+Rdd¤…iúö#þ00Òhrb¨…j2ñC¥ÏYØo6ÔâÈP“ãCõÃ[A~šj⇪†ýVCM&G†šŸj¢†š«¡æj¨ÉÛ592ÔêÄPs5ÔJ µRCÍß~¨ùðPãø6“*6“ÆýCÏÏ\Âf<Vôî…>g}â¼Aª#ÉNÞÈÛ:Ÿ°FŸÉŠ@Ïôm¯â»©ê¥P½ª—ôâ^ ßK2ñ½$ʸ¢züÐÅUÖ¡DY‡ewI&÷’¨^rÕK®zI.î%W½Tª—Jõ’_ÜKå{Á#À½Ðç²ßãöâ[^ѹ’^2ß‹êñC{ÉT/¥ê¥T½d÷Rú^²È÷’Eª—òÒ^2uö3uö3uö³‹Ï~¦Î~¦Î~¦Î~vñÙÏÔÙÏÕÙÏÕÙÏ.>û¹:û¹:û¹:ûùÅg?Wg?Wg?Wg?¿øìçêìçêìçêìçŸý\ýBýBýüâ³_¨³_¨³_¨³_\|ö uö uö uö‹‹Ï~¡Î~©Î~©Î~qñÙ/ÕÙ/ÕÙ/ÕÙ//>û¥:û¥:û¥:ûåÅg¿Tg¿Rg_;UÊ‹Ï~¤Ö%V뢤#~æâ^ðp‹U ñjž{•>_¢K/©ê%õ½¨/‘ú¤—BõR¨^ÒK{A)ˆ{AY…{¡Ï¹W”.›K¡z™¨^&j.ÅÅs™¨^ÕK¢æ2¹¸—\õR©^*ÕK~q/•ïå.î…>çý/‘ú¤—Lõ’ù^T—H}ÒK©z)U/ÙŽ¨³Ÿ©³Ÿ©³Ÿ^|ö3uö3uö3uö³‹Ï~¦ÎK®ÎK®ÎKvñyɇɇQ-ëy]"õÉ\Ô©ÌÕ©Ì/>•¹âc¹âc¹âcùÅ|,Wg?Wg?Wg?¿øìçêìêìêìçŸýBýBýBýââ³_¨³_¨³_¨³_\|ö uöKuöKuö‹‹Ï~©Î~©Î~©Î~yñÙ/Õ©,Õ©,Õ©,/>•¥â0•â0•â0åÅe-¼rYÃÏ,%‰—Çèó%ò˜ô’ª^Rß‹êñyLz)T/…ê%½¸—Â÷‚ÿá^èsÒïñIIzIT/‰ïEõx‰l)½äª—\õ’\ÜK®z©T/•ê%¿¬—À¹UÞ¹UÞ¹OŸÉqŽ!ˆì\§çûø 9÷¼pŽß··êõ£û“0†IÖ÷â„?/ù3”+ÛTâg|ž¾fŠG¼ðÊ~^šÀ‰ðRè‚k{ö©Ç¢ú?gÖæ’Ží#'x¤}LkÄÿ‡<ˆÉHÇUŸ±ñŒj~­bß²Q‰¥}Ã6}°î[7šDo<ûè¿¡Qx|a£ì¤út³œ\@Ãñ0¡+üdHÒò’0ˆ4*‹KFäÇÜDCMˆ4»¤ 8qt0‘h¨‰#^Öüœñkš€P´H©×´a­Q~@WµQâνˆØÆ@¬Õ«Úˆ°ËÁ8’×Д*•\ÖF†aðµjZœ¬Ë«¶ð«óöš6òbx½j]RŒu*ÎÚ§GNÜdð´¤o*6y‰i1XõªµÈ‡ÛxÕyO°¤Ùä‚mUÂ)¢ô,æwª$>h#{ÍT&Ãmä¯h#‚#R^´*ØDtºQ¼¶¡ÐW´‘jYQ]²;âl¸×4.‡ÛxÍK¢á6^³Å’t¸×Ð4)†ÛxÍÚ¦“Ëiš&Ãm¼æ¸¤ùåôH«Ë÷X_¾¶Yöã(/_Û<º|¯ç錣¸œÅìÓ"yƒq¼Á>-ªËÏK¿Ao°OËòòóU—ïSl#Ï.¿£.m#»¼ ¼.G9ÜFüÚ{îÒ6ŠËÛÀ;j äµwÔ¥mä—¯KZ]N,~ƒ6ÊËç’e—#ƒ=–¿ÁyÉ‹Ë÷Gñû´xƒ}Z¼Á>-ªËÇQ¾?-ß`•o°×ñ~PçÒ×Þ/m¼ú~¹tååmàÝpié´QœÓÆÚMÊ7Ö°É£x±sÁG1Û´"ÀH4„Ø'x…fôÂ+f8¢¢RS…‹É ÚnòñU1á‡kÊ÷ûtä?C<¾üè1˜Ç°4ÌΣ´gp ßNµTJ¹Õ\R’‚©²å#—0ú)ºRgŸ·õA™[‚nÕ5ñ\4Π.ŒÔyNúë5×[ÕEŒ*ùšQ‚7X¡º_Ç@NTG ‰C0ãÃV¯Ÿj‚Æyš3„9B{÷ŠÝõš^ô*öÑü@,X*ï‡)d×VW4ïvW÷BÆk)qD¨¶H§"ã¢WõÕV‚:=¾à Ôé)†€¬guz°,†î4ÊG¾Û«¬J¡È#TÐ @@G£A@¡Z$‚€ÆQÉ  Už ÿÿ4ú8Í>N«7Å¢ªQù+è¯  ¿‚€þ ú+èÿ P¸µA@™Àc瀀ÆYü+è¯  ¿‚€þ÷€þÿ f69‰)ÃÀ•Rù$µ8öIjq< ]8ÃÃÍa#7‡Ÿ¹9|æ¼æ|œ¬#Íe¾9ÕôKÍaÀ77‡AÞÍ™ûæð™óš«Ts•j®RÍUç7‘„®½hRúéYIöŠ&ÕòF‘Z_úÃ5yþ S`k¥âÛ+ˆ+@Œxrî†áæð nN£`(ˆ³6Œ4—©æ²>¨ÆYÍáfàæp“ps¹ÂWÉ“³›«Ts•j®RÍUç7G;Û£5äéYIöŠ&ÕòÒ‘&#½À“VøƒÌrÇ`{CÄMÀë‹*BÜ?ü¼äÏ%![BôYTâ%>_#nVp3Š p3sŸ´sà¦ëfÕë^ËåÃ#ԫ *<è3µ^~ô|9 ¸Yy¼Í(!†U¸ÏFÚ9 sµð»×Ãz ¹'@‘{ÐgjLiô|9Œ·Yy¸MŒ”WS‚ÛävÎÍ=Âîõ°Þ‚©"@ªªžR5‚ô±òh›ŒšF¯2ÐPz>RE€°{=¬· @¦x@¦x@¦[¦av„`”jåÁ61X^͈dçó€Lñ€°{=¬· @{ı'}¦Öñ:çÐóå0ØfÅØñÙõÍ­zÝèîß„ÙVm'Èì«?/ùsRæø°¡”1|.Ý÷Ü>I<»çŒ)|—>iè,nçúYõú×ãòcùp D“Ü“ÀþáiÀPö? ~g€ ©"»Š3ÿvELOÚ:+3Ëwµ:D0¼· Þ¦L ¼M™ô™ZÇÛ—Ç@ÏÐ!RtÀýÈÜg# wû{"„ýëq½2ELQ S=ejÙ Ä>…>cÔ¿¼[(Þw2E°=®· @®XB®XB®Ž^®Žd~„% Ç ЬIžO3_¤ ?Ÿ%äŠ%„ýëq½Ò‰§@:ñ ÏÔ:Âèóèù ÄŠ±d±È»91nè,`â)ö¯Çõ ¼p½¬pùøÆIv ð HËÑYøÆoŽ*ì­>œJ. Ô”5è’Tré¥P½ª—ôâ^ ß ÞêÜ ~–^ŠK{ñ-s*¹ô’(#×äâ^”u)QÖ¥DY—’äâ^rÕK¥z©T/ù¥½¤Ê²•*ÃVªìZivq/ÊØ•)[W¦L]iyi/™:/™:/™:/ÙÅç%Sç%Sç%Sç%»ø¼dê¼äê¼äê¼dŸ—\—\ejÕ=^!#%˜”é¹P¦ç¼º´—BY¤ e‘.”Eºˆ/ž‹:•¹:•jüÚh} PÌEÊBÊââSY¨SYªSYªSY\|*Ku*Ku*Ku*Ë‹Oe©Ne©Ne©Neyñ©,Õ©¬Ô©¬Ô©,/>••:••:•Êc¡{üÐ^ÔN®ÔN®ÔN®.ÞÉU¥='±öœ¨Ó_]|úUÛ+í¯ ½2A¯âT §R`óÚ?¾F¨R0B•*÷;ÁU F¨ê_÷xÀO¥~*…y÷©wÀO¥~*W÷{¼à§R?Uߦ{¼D^â^2åêÉ”§'-/îE9©Rå£R-k÷Ü%R™ÌEíäLíäì✩œ©œ©œ]¼“3uösuösuö³‹Ï~®ÎK®Î‹ògê/‘d¤µ“sµ“ó‹wr®¼È…ò"Ê‹œW—öR(çr¡œË…r.ñލóR¨óR¨óR\|^ uöKuöKuö‹‹Ï~©Ne©Ne©Neyñ©,Õ©,Õ©,Õ©,/>•¥:••:••:•åŧ²R§²R§R…è/‘ʤu*+u*«‹OeUéð„X‡'¨sY]|.UÛ+†>½^¶ýƸΨ5€R¼P¢%WXÝ^ªz~Ó‚Uå Ù|Xß êÛ‹„Uo¼oZ«ª|Uý'74ñöbdÕð›–©*_UP‹°·<·•tú¦£ÄZJ ž¼P *W°ë½¡Ño;Êdx”Å ¿r¨ÞšZü7­ö50ÊÉ GølÞ'𛲥¡ž*ö懷 présÞö›ò¦¡¡&/0§DHTñ€D1·*2¨¡ ðR ½DU†°t'xã¡&ÃCM&/°©D~À…óþfxSV5DÕ£ ôÝ«ØÅ\Å.æ*H0WÁƒù‘ØE4º±¼W ¤¼š“Ù-??v1W±‹a÷zXo»è]÷…Šå)T¬L¡‚hŠ#<8/^~üse¡Ü}6ÒÐyÁ‹Þuö¯Çõºà…ÿHC¼‚âè"P![hãÕ` mD¯[h£x-ØÂ@ùkÁÚx5ÐÛ@ñkAt.¤Göû#Ë._Û¬¼œytù>Eðš Çà5î±¼¸|]ŠüòýQT—Ó£Œ/§G™]~æÊ7ØcÕ챪¸|Ñdrù¡‹&ÉåTEΞF—CÎ ´ñjXÔ ÛH¢7h#n#yí sax;\¸.i~9=²7XÛ,»|.Yyù8ò7Øyqù\ð–º´ä ÚÈß êò½^ÆoÐÆì±ò öX]>Žê øÝ0„n˜GòfØ`iG£©ƒ%€•0XF¿ ƒìï†Þ¹GƒÉïÇ},= æšþòoãwóûé¬^Ïž¯f¼ÛoŸf{˜R8T-¢Z-Æ;k<¬¥ß-Ÿ$æÔ¬áÕabßHÓQZæåÁ’7ä)~6ƒÓÿ 1þ “¿|ô»ÑG_}ôéf;¯íwüŽþz·µZ0‚F}ôíÓÝþù±6ý¾[? â¨ýîöÓÑGï¾þ:¤‡fÄ£a [ÒÌ»Ý=£m ü@e“ØATþ@`d L`Ä>ÝØ¶bøò@]5ô Ü@| Ù½ 3 (lO؆¡Ûï€*–VØr¹±]þHèlY”:[³ÙÚ&pÍxaûZò[C-ÏŸ×ÓU7“Uß]ûíÐß%?.ìsëñš™MC®¶ÍØìŸH¬n¼·Gøö**Êr”UQeGUW£zóˆ -ÿðߨ³÷ñló]ý©åFÕènóˆ.áVøèq»™Û~„Óýó£}ˆ¿ÞíöÝrYo¯võt;[Ðôó¡ŠYbñˆ|¿Ê‡q2‰¢«ú¯„Ä2ò€2†“1!NŒO%`‘àIBȈ1DFE ÿP лå:ÆaÀtÍÁ(íëå®>w íG$݉ñè¦<` |êܯGûSøØpkÇx ðÈ[´Ù³×ji÷YÖéi/gWÎÁËe–L/—ä1ÃË%Uq¼Ü áå’>¼\"ðr‰†—“‡í‘dî¶¼;€–‹'qzMn¢b4™|œÅG“!„8˜ŠÅ™q<¡o¶–—µ¿$¼¸sðÓðÐþ²¶öÛí¯8H¿â ýÅAúɲ§ÿ»[Y†;ú™þcÙÑtÔ,Ÿv {´j‚0²LX•wûÙüÝGölN×í²¦iÀ3÷š÷¾}ÞNçúïŸz??íٓɼùÏ›¿Âg~=ìRc›Ø‘݇À&£‘ŒŒÕÞÂæï/1§:T&üdþŽQ›þ·BD}Wxeìåþ³ÙMÍËêÙ[œåïËá{p ¡L`n’ì6%UŽ˜qwè”Þ 0°f³ÙãÀ¼2C3ÐOâÍÃ7ŸÍEVVL ²'óü6/N§qÞMwõÓå1¿$ÎÜÐ̇KZ®|ÑÈ¥*J¹T,UeÅ࣊C‚'Î78âÂL×ÔJU »ö5Ã.Ž6ÛKŸÏ «^ØAšzšÐgNSO¤¦tŸµÇz%Œ>KÈc–ù :úcØç:€—“*¼œTáå¤ /'½ØåZùI•ŸtQùÖ‹jxÒ¡P‚RB ˆ)£ÑçLÚw¹’·’~÷zXL:Q“NÔ¤5éäȤS5iøœ2P‘¸Ï†ÿ8kÒ‰št¢&­º×úÀOÚ*ÒnҘϭc~z (Qh@)¡a&Êh@ôÇ9“ö]®ä­¤ß½Ö%€~Ò™:Ó™:<Ù‘3M  (% pH(;ûLgêLgêLëî³79Óiî'æ~Ò/” ÔБIgjÒ4Ñ"Ø£”Qès&í»\É[I¿{=¬ @J?é¸ô“ŽKßz\™t¬& ŸSŠ˜¡UçˆúãœIû.eã0ê^ëU“ý9ÊìBüÅþ´›K|?Žke(Ä>jýù/ ÈÌÏmŠƒõUg¦8³#`ˆçõR觯poÁí"g±ýR¹ ÏLåŒqÊÙ‘¡\q¡u\­,S žÅg-¸t¹’·ò~÷zX—€›øI[9ÃMC2ž4îì\šd Ð$Ó€&gMÚw¹’·ò~÷zX—0q?idèÓyaãÉÀH6‹~#o?tL÷þïH¯:LFˆbßC¤rÜþ’žÉ>¼Ÿ"° SŠ^‚}òº™8¦ƒ5¤,‚Wæ MüHƒÀñ¤8ð¦#¥òòUù>&T½ü·i><Ò8:>RJ2Wð@©‚Ê ‡]åŠæ*W4Ïû£~K.94Òì¥Ük•Ô˜«¤Æ<ïú-åÑ¡‘¾”ÕŒËËû? Pjá÷± ¿ÉH1©9ÎYmüÂHñ_¢ò”j¤‘i4¹LTLTn×[õ•Šë¤P²O©dŸRÉ>Åe²Oˆ¼®‡‘rFÊCqR~&#ëGg;#å Œ”ƒPw½‰ƒÐ®v˃΄I•Ðg»-&…xš£?JÜç`r(¨D^%Gµ $›ìÉ®i"+û]꡼j¢kµ=VÊä˜öõ¶ùÀý¨nåBÝÊjÒ3—t’Wª“XuûNòê “ÉmÕ'Ô‰>”–+LµKÏ\$(©‰¤j"©šHréD”0–+a,WÂX>¹°¥çJ+VÒý} À+beŠX™øâË&R¨> Õ‡Ú²z—½Õe›Qžª713ÆöNS–E²4êØžˆÿìj¤CÚΘ¢êc­¢sÞ°M z»&}¬ÐÓ,½á8«³ÈùÂN?œúËÃ|¹É74…ºj:ë…¤¤Ã&¢4}e^tèH +[N.G‘·¿¦¤CJ^ÑD AQ”¾2¥9ÆÄ¶‘Äé+‰ƒ60Q4{uju¨FeÃm¼f˜À›½:³:l£nã5ë‚ ¼Ù«ÓÄCšf—#ªÞ¨ä²cÇ—Ó“Õ/ÝÑåû4Í/ßcYy9=p]”ùôµë’¿„rvÆ8XaöZ>6Àƒò×ð±êòµ-ß`Ÿùåû¼/Çd¸üUWåå{=/.ŸK~äܾæÚO'oÐFrM?P~*_Úœå°ÌQ¼Ø¹ÏgðéØÿðßm§Ý²¾øã—/fgGU”P²±ä(g£»qöñ•UéÇáTeã~ŸŽüÇáÄÉ—}!A;;š=)íœÂ·”|ÝŽÓåÆþ‡r°L ^Œ»ýruëÝlÛ=B¢áU=~ÚAïb<½jÍx¶Y=Ng.9Ù'_Ý@†0g ý´ºÁÌàxæy|wµ×ÛÝÕSw»µm sy·ûnVïl‚쾫²ãéÖsøíö*-ÍÝøß¶õ3ü8§äø®n2ÌB~²oã7SLæ—lS˜HÌS´Íéë–†Åñèyü;øSÞ³R²qëò™»vaém¿N ;ÈB^¸TökGGN=~\NgvÈÝx9µo6F¿0ßO™F1&wsÖüx÷twã2ºm#v&÷ãzJѵ¯7뜘¢Ï*©âcYóî÷©ûhÂýÅ·`5Ií;sæž´sØÕ3Ø?·ù t€éwP&£ŸF_>Žáñ(ŠGwæËùøw´9ñ±<±Ç 6ðw–|q2º}¹•0·Ý§‘/Æ‹Ír¾ƒU›.—–Ö”gÞ­›Ív…é³ö»um×p7Ý>Ãï»,Ûúq[ïjʽ¯q»ñãÕ¶¼HÃ(’ÖÊž‚§=6Åû϶iÏÂU3ú²£m—”ÿ7Úv»üy|ܲ£•}a[7p,p NŒ·í6+>nßJ½ËÇÑ@èð3n¶Z}€ýð¸‡=¶±/à|¶Ô ì¸Ùìi;ÝãžÞ؉!u«›M—¸§m®íëwO{<Ú5ÿ'KEÄsXoö´A¯àÌ@~ו=GwЧ²³´Ã±«`Kû‹&Ô-ÒÖogÇ[Á 2­:Œî³[Žá<ç£;%àF–KØM¸ÝíHìABÂmë9ÎÎÛNNª_€Œš±dƒÁ%“,¶œžA^èLñ^š{ žÞÁÜ-°3{€-Ü=N·; )¥âB"8„e”À8舜º‡$Êàœ?n7–ö°ùhÑpY×öØ`ónÇ'çYnãt‡zöD,véç¼­a¤ìç‰ýN©eÏNÛ1¤@n!Aý&›‰çܰ(@X¸zq0p[3¾`§ÇŒ|lÛŸ²eeÚÁqo æo)d÷Dm¯–l‚ãˆcIrĸØï©';‚{š#b\Ýn^×À»õlù9ó8¤ ®Ëºþ Ƨ€A&dþeagðUƒ[¶J-ëŽãH‹‰ÇØ Œœv=lÁ¬°£§y¸cI´hz÷Òôi‰pâêéÖb5E ÛÌ~1]㩞î©ígèÏH3»ûZw»ñí@P1޽À9ù†È¤°mÜé/d¨¾à=e·"±=+ðP÷yQ1ž‡e„Ëv³µ·ö f´{bd8qL[cOܪ[w«§•ß¼¶§¸ÝÂQÆÿ[~‰ÇÐoF›8Dµ]6à³sf“ßûKÂŒÃ*ÊÔ‹—fÁRœ.w¸e:‹%j3¾›.§ëtÅA°JŸØ-oéZÃRt0¥Ùt‡G×m˜ÝÕÌJ-K¦LYePž±Ìɇ«áÒGi ºØÁÙ%Š­†wOMÍ-pcµÐðçàÔÌ­¤´YÏj˜Ü2CU×_ ÏÑØÕ[?’vŒ7mümÝ>-§°jÖ–ÐY6J'UiX ‚eòPýÓ¢»ëövóïpÛκ÷“(ð¹e§K–uø21ú6±,_³Á!µ|p¹´œØ âÅ¿:8ù–†,VçUÅ¿ Ë0îwd³«"EŒ¦êîün_üˆ¯þw¢þd§PüQ'ƒ›ó+ €à•pÎefÝ>u»ñzºë xqVñ˜f»!I‚–¹Ï‚˜Óƒöwóö ø4®í’泎ž…:Fp…žõq‚1í¯ÎÉÅÍôNW lEæUw@Áø´žM-ge¡ŸÎZÓ-30{/×v#:A ŸÆ.8@öj°¿²š¯Ì6ë5, uÛ!a²(ÇÓ"@ªŸðíÝ¢´NºVŠhÈOáðáj­¦óZ°­Wç–6ÿ;˱®iI:º Ó<Æ[éë{V@OÀ¼Tùp›ðZ\à¹ðºÂÁ¶À Åé'ă,‹rŠ!Ž£@Å$rã|Ü0¥Ãk¼áœñ¡5]Å ÙÉ5l'än¤ ùa‡ †ûGQ&p£LÜZ+pÐ'7O{ܱ°7Ï3‡s4À~’8J62+¹ï¥|wÉ|Þ“æ‹0­’ÌSÀîlDß²£G™Ê©¾$œE0ÞuO²\¢\O[¼w5qàl’T¢‡:IÏŒÙÖ ÁtúÄÕ¼#Qˆ+×çtm?}L@aQ•‚š´ﮢŒ¯Þ·ãÝ.ŸQ.6¿ÛI½uF4öG*JÆïí½ÙÞ^³9÷Žä yé1E¸•Ö(Fàï¯nÉ,ñ¹FI±bЇ,é,ÿ.ÀÚ†ü9ÄHjõ, ÅÆMd`§l³[Lö îHÀÍÜlb³2þbºEóôã«V/sÕŠ…eMBä"`mŽCÙzÂ;ÖžÛ雑 ÃhìFEâŒû×êahضÛ•t¶ö÷Ë^õGׂёh+ç„@~µ½]ÑvïU3Æ•ëdE‘ ÙÿQ1]Kž%3›n{È…‡6F±s]´A­8òx‰S;ägÀȯ¯frï4‡÷NÏ¡låi=g;!,¬a–`™Ö¬¦ó=Þd•Z’,kÏ œÈzµÙ>Å24{Ùµ*éŠ6÷-{†òâTˆþ>uÏ 1è½ó %QnµælBÍÙ÷R– ¤ìÆôBŒŸ¯¬M½ŠR/¤d1ÅXn·ÞlÛ`×Yå¯C9*ìqïõü‚ïg³ÒÍÉöO,”´.¹1p™_g²B¢‚2|?'êvN÷Ã+b¦pàe“uÎY÷$£ZÎÊíU¹-L‡Ç‡‰w qRÃ(žÌ992åFožH>°“1jÓ’g|MŽexqÉ>f¼TÈšÙí(ꂃ.êùÇW) ¦cG È…c$ºëþšÒþõ… #fu'1=SïÆ;öéNÌÎd䤜àÄÁ7Wæžúöay Š"ìPK¸°ÄU•#ï*Ù„ª“j‰ö ½BÃ.=p¼u`V¿¥‹ã_€']ö×èÙ‡˜¥‘yî ‘Ä yñE°æ«Íó í,ë} èb]’s„Å +ÿ9×7Œ»¡Í k º&›œuTäŽ,¤ëºr$û:Rò1è€.²M÷x©³­-/7™á„Ïž ÖïZß? Î0 .¡$|{UÐfÿEŠ÷æ†ÝfxÑ.´Œ‚ ö<Õú}¡í.ý Óøûw®o¿ ¦8Ó·ìôÈ€ÿ<2`Å´lÜGÀðÕÈæ´ÚÉch¶W¬á¡ÓŸPŸèùôü­DÇ{Áb"?H>!$œõ‰™ç;l®!fâëÈSó<¸}[w_/‚R;ô•»Z×Ñ5›m¶(/ÎirD|Ù@ÛncÅQ¨í¡ã´ÈC&¾níSVÚ¢Û2ИZ²œ!‰É)·pÜF‹ü„pèo¯2¿°=Õ+;ú•# bØÁc‰ öÖòm;/3¢¼Øxï<êN^XÛÄŒƒ$°hEÇkTh1FIBL–¥ i@ÿ„}aÙ uAߢ_°vñ;+·Ó`Yi j‹±û÷݃Äd‘tÔ‡—uîOÕ’˜ûç52;¬|A˜´L¯zÇp7~èPוxŒjqäÏáµür¤ºÇ‘x«v~«’ÿ’ù­Žß¨Ù%Tr '‰] šk©j¬˜¿t7ìN{¨¹E- ¥év™tÌ–@žG°ªa¬í÷‚ Ȉ (rÅöŸ¾ (/Я. _’ (~• èo"¹CÅ'ËaÓq "RE;t|+Æ@^¸çYÄÇ &8ÖFn߃cV«Œj“ÕNX«2¯D®©4Ù¬ÁÁ”3Tò0ulfwÌ⚸زv÷ëÒÞlت»;T‹ YÐξþ÷ßÿ^XJãÔeòC©áûÈOÇò÷°·‘Ù–îP|$~Í!r¾ç(¿Šœ´À0à“> Õ.ÛR·#‘üQèCCMz³DÆŠ¤Q*è¹ælÈ8èb”à^«æÚ=‹G’k;Ý5ëÉ,_Ó¼$LEí£ûIÓFëíè €,a§`ÜÚAX4ˆÑriSØ—mK cw`×cpÇÆÁ¾&§VQh‹hþî¨=ç°3±í—;Q™xšÎٴ椇ž…ÞQ2Á“7È“fà˜Þ!˜¡î#Wɤµ w»ÃjaÛº&EZ5‹pÁIP"_nâ6´d^cë"ݓք\°g8¹Þ dJm•t ’³‘¢Á“„`;‚…`¬5E‚ ÚÇ%bY¶iì~ÄlhGn^7¦…»í]‡‘Ár”o"ohÁ^tr¢8## ùš×1ÈëÑŠ}[eö1aÄ%óº©:rÝrz·äPp‘´îéø4N¤¤Ø.Ô?æÝœâÁáüýÔ±6J“œâïÝ™«@Ô Œx†âZÑNézY1åfƒ®2´À¾›®ÛúZïr ©:7£ÈêuáÁÁP|m®[ˆµÎ*« …Ô˜.œÌu¸Þ_qp?’βPkHÐbcú|ó$Ô–£Q”§ ·È6G¡åÎùÐ÷Ä·÷¼áGøÃ»o¾ùêëûòO_|ñùÿð5U%´Óʦ­%, àn“ -šå´·¸Rš¢¢(O§ð÷©ûx–qª÷·xÏòÓÞ3ê šäâ=Ë}̼²ßbo™¢$ ïoéùÏÆ1 ´0P0¥º9œ¸®—‚…rõŒ–™´ßǯ³&ÂDߘå¦÷Îclœ€ŒØiìvwÖÞ'EK—Ã&yGŽ49À5_òÓnN95"\+e#n×ÐK°§k‰j£Œ*ÔáÙŒ?éåw-D£·÷b»F¡,;-&åtkŒ`vþ>Ö«¯)±¤»µw.s§N³ ZKÖIœ`Î^º¨¬S»ußXÌÇr°9ÄÒ?Ú©‚QÌ6›–j¦¨”‚Õ¶ž¢º°6¨«J¨}eôÉ–³8eÞO?árNÈÌ·®°0(0ämâm›BNŒ¤ÑÙh ¶9u†þ™œóžåÉD5ÿ("™×UQv1(¼\+A£…§ãÌeÎ+l§`[ùç 'ä9í\¤×äAC®Ö ×Ô®l‡ô&%+Æä舭ˋj8]y®KC’ vþ±Ú¢D²ªým°`£†lÅFv \"à+15ƒ®çÞý|£n}6‘oQ»ÔiM8Þæ¨o[ï~ôW¨”ã.¶ÞµÎ‘ ^I zFã–~…×½ Ã~_sò(9ìP Ý&ÁDvl6´»vÎÉ)VÝ ǽñ¾’IYbì6—šÅû Ý›Þ@‡;Xö•dQÁɵ’ìžó¥ì3”ÇFW¸=|:º–ˆ3l÷ꔯ©—¤UL%OÜ)Rqæ–@Ý¢À¬ ˜dæä£¦ó[ò4Ò“‹±SOæp+×?A¹ªPx.]²gŹK(K&ÚC£×å'‘¨dãîÉcUóLˆîá|@A’Š£øùêd•åÆùücp¥f%B?Žƒ0Ûn(4_®¹,*ûÜo)Îùwžklפ"»Ý“M€7o)$#&$ð,ÆÍÔ*Y,ùzzÄ £…¤pΑ 7bеœ{ÎaYdйô¤q¥™;R\NR…œWflü …œ‹HÅJ¾T3ÚéÈéÞ¡«wV“†–üéιeÌÇ•-”:v‘˜11e©ì'ÜÜ:(”d/AÉkì-¥’‡©EÁõëÎûw“5&c0Ž*Ó­ÅKMÉê;Æ;`ñÛ™#0Öª+x;e!ð­_«á:ð e¼vÊ>Æ 3EÀT³§+µéén¡fd‚ð+ðh“á;LpKœ­l òÃænÙµ’ï ÙySžó}ôÌÕviÖñ:l´ôfd|ÅCî¾ÄþÓw÷%àñûÕÝ÷Kr÷%¯t÷‘!ø^ÏJÅé…\s\4 Œ>Ÿ[ïñàóÖjK¢¡ ,·Ûu(¨: ŠË, sÃ̳±@\Ü“Ü.†*ÔŸ,#æHd6 “ òíAž-AÒ =Îy´æ“¯ÁÙ…9t@™^|ÁNq¼ÇThß1OšGgêÖNpƒ÷­w!ˆp°é| gä” …y-NöN”§Ž±w´DhÆ«·°€€z‚ö™ ˜ ЗáÞ?Ùù°“ÚØÝGâHRj¨죄ÕÀC;ˆò蘭Ö(½°¼ž’)É̦ÙÓv§"ÀÐ8¾ët _3ÓFÂ6ÑÆôÃå¦î¶S¾Qv:JdAM»C+£ŠQ¾>‘£eø…Ù>ðÆýaúo?˜ -ÝÍ”ƒ-§Æ¯´øð>B»áÂÛ ƒÑaê—Ä<‚9µÂÐcœµcÛG»ÜÜ¡<ˆé  `I†x:›Ä ç’\œ8»jQq Žº9°Eˆ®þ v|6HÔc’—–…V÷»z Zô{8MÍaðZcuö¹Va»µöÇ錻wÊyâï/­†å¨ÈHŒ³_TdºkЍ`;~„[u6¯ÙžO&¢š¢òm3;íŸóN£ÖîæÒvãnç:|Dœ¢A,Ç0¿<š÷nVäïÊ&!¨„½ ‚ÈiVÖ‚6Áv,eÀ¡æ'8»x=ð‚w™à´˜gØaà%l¯}—b¶ sPû çuiªµû,4D4N‡¼fqM™bÐ|W•U=ú 1“y»· rL §­½Ì ðÚwCÌ{’^úX ¼²ÅÑÄ“<%m!MGwý€ÃÐÖ‰ Mª‡“ÀC8ÅZâiÛ‚Qj—/ªDßqx·‰)LS@° žlúçOˆÍÕí<Ò  ‹P|P#&›ý‚åçGqÏþ¹ %¸Æ‡…ßJŽÜN½´p-´"\ìÊ Rf0Àœd?«ÃøeÏPjØ“hb Ó ¬øœ·^!ŒN$ÇpÙs ›^beGqñ €qí,§³0«ƒ×)FB#æ9y˜åMæ¨Û‹x³@‘™`Í7¯ÏNèt`p­µImÉS§Jr ¡-ò¬U9ƒ—¡¸¹wq4­Ž’Ǽ vMNw ©Ç¥Cd¥d^Á5|÷Ô‘a‰-ÌÓ r¦²ÆÄÕ$B«ôŒ&W3vÕŠ¸F‚qÁ$”À¥æ…™“‰a:’ÆÊÙ|aRÊÚ$C„ý“TƬ¢šÈP©wJ«Ù¨²íú Ùm}C0xBóý¹6Fšà&o$’sÕ&>®x‚Öš6yØm¥cxõhœÉ_»E¯?󇉈œ,BðÎ1}YÆo{òŠEYo¯¶lÜ9ÛŠ§›íœ\"¸x’ÿ¯ ÓíÜn”™mÔÏRà–Ø&Ç…Ãx¥#rkàa$‘èMêó1{É2Nî‡Ç@{’圧ô­< =ÊG0ë­6/,ÐÄðß`E”ÅJÅ`¡?ž‚wWqJ°ž« aE$y.y8ô¹š òˆÅm𚼌šâóœ-Iöù6Œ25²äÈLýÈ™éFõ×oÜ'Þn˜¢/uЛ6i_ûËMÅTPŒš\ì«Øq‰ñòŽMP†V’¬Õ7ïþôÁ²DIé×j µÐ¾æ€&°Jæu Y%£ÃÓ=ŸvpJÞÑ5åWɤqË*9Õ»u«ÔJ¤0 §>¡¤%Ÿ!fLÔôìâ`9}˜ªCˆävqIx¦µmL…]è ÍèþJXµ|î€Kþ•»Û1»=\þ¥vlš—´‡Ë m§3ÍcÎ@4Øi‘Ä~¥y#ù“Ïþ¾Ï„ô‡"ç^˜ïû”éŸfG‰jëŸ:NÞL«*¦1K-,I6©ró7h pÞÔ…9™àßü]JúµQŸ¸™»gÄ/ÖvœÑ3çDebE8€x"pw¨+ÝÑu¬ÌüÎÀã¾ùWÅ™&Ô=¯TÏË%ò‡ …¢/vžLò€&7ÿ*¸@*²0K󈞒\-|—aÂú”‹"€[XŒwk çí"‡íZ2–Ò!Àª}†$„Bš0M.{1(9A‰%Díõu&Ž$C–äÔþÓ·$§`LþÕ’üK²$§¯Äv`‡}:ÝI¦„rQƒ’Ò!|·~’ -HK2Ž[‹ã'éš²„!DâÃãèæhÛ Ù½p> zÌw¬åÂ[yÝËvcÄ÷Öa+ DªË„q:9ôãVá‡}ÅÀZ.œí7ÀuæÄ E Á»P¿ó™éYNDô×)Àupä® w3LÉÉHSÒ9nW>xÊéê¸1Ýõz¤¸c\«’Uø{ èàX¡]ö0L9êŽ#äü¼Çì]*ëÂÛÔVEQÉÐfFŒà×¹¤ŒÉd¢4Ï0™âÂ儾àéË FùÈz\ІTZžP—qO½ÃtZ\å²Ä d” Š(§t7ŽPøÕÈT~5`wý Å>Ȫ1„ÖCür€¾y$×#U‰•Rab¤,Ñì T¤a:Jêgƒ9G"+€Ýì¦ I`ë5ù®qº0ü>UÏ) ¾c> 1¢8]„:P‰…‡û#æÀ’™aÂBØR~ǘ[­ûl3‰PýëøÛÙf?[xàAåÐ0hƒb¹¼AŒûîo@ýûñÅáb‚@ˆÝ¸1ĉÔIÐÎX0‚Êyh·‰ËæâLnŽ…zGºšî«ëBþà²u=I¢Ü`BÒƒÛ‰XͰw‡ÕGVÆ ;ÆG,3Bωžxö®`ˆò_éËì±lßTRŸtnÊU4ú(–…t“^>­Ðë¦è†$u9”×eœ Çg²)Æw3ç ×Tj¢±|sùxµPâ5Ù00ÝÁjZ}çK8‚@Ô •n™ä̹Û, ·°Ð[V[“"!™C%Gk3v Kú YâîѺZ ^ø’·s~°N;,ý _¹ý-£_$%ÆYJΨwî®(ðkIYÓåÇt‘¢e€.i)èPKùAUñqdô6úÙƒ* –´A¡Åï$1.°9GD1ò/n÷@­Ò2Àmõ NpƒQl¥ðý –Æð縆 †T**RÞ@P1×a+R  »»|.³º•~°ã‚&ÀTážÊMa¹PÀ&4k¢Ì(H‰ž«¢ãD¦\¦4Ö £·>•Xx7g”¢"‹ZÌ8l2=ŠÍÍŠŒÑ‡°ô†d5, –憥]êÐÑå%™†1‚ÁL\I’ ~9ˆE mÃøÂ?b2fJöV$ ¬xÄö´1f 1åÆž»qäa;w—;Gw¸š?£4ÅxJ>”Hrp.i‡ZŠ®œ˜F ²Ç÷§éµ°Ür(p„?¢P²o-Í0 “²×Ùr–#6¦óv0m{wðX£˜ìÁõ1ݱ?cO%gÔeÅ'±¦Š/5åÒƒ#íúâá=vêûìnùàÁ–{庆¼ D[N:„9Dä§{uPl™õ‹ä¼ŒI¥I­ ëQ'YqÁÒ$§óvËù–l¨üâ.p¥ÕýépÐ E¿[Ýc&{÷[âÆ)îW$@Ó[1W)Šà¹É„øYä ";µs×e‚¹0Eà7¼GUE*ïúSŤšž¯0R0¼kª‹Sq\e„Жç™qûÂM{`Ämê&pµ„$¯¸Y*ðÀ_ÚoÅ„¹pÑ÷;íRYÌrþ¡‡‡¶8õWÂx³?Ž +|•¡Ûuª1GæÜÀd—™ìÀ)Ü7Ùe`µûÕd÷K2Ùe¯4Ù‰áûÀdG²š6šc$9ÖÃÝØ È•=ÉôâÑDÑÙ ÂBhvã¹BO0jdNHê%[ÓõntE•r•6¼ÚkÀ®Ÿ1øò ,aP˜h°ÙУª&!Á×»€¦ ÁË•ÀH£â›iȘáÞÈî™MÈø˜‚Á£Oâš#éÝÚ ‚%4mo·Œb A\ÍfφÁQœÄlnü¯ÉƒkÜô­5+çèþP2íAÁ8"+ÐNL§¸HÎT-᪜“$ªyÙ¨šŒdcé z-ÆÈÐ0îB©kÁ•AmÁU±n—¼YLB*óÑ)ðì7¥¢|ÝT¢.äH9‘›Ï‘Œë¤àİg¬ ÌÑTvÒ˜#ú¥Ú¦MOä âz:¬áøh®ÉºP5YoйùpÕ¤0ÞàZ¹‚_6¦áœLÔÉDNÊD=J"ñ8ýቊîÂÔ­äå:P\ôsf×Ç8‹Í {‡…¸BL0fçRÉ gÑ^ˆE8r£ÇiÈ´Í~kÆup*Ày…ÆIó’I›P²á`žÀ¡†ß§F}<‡yç\êâ%jêÅ*tŒC] 5˜UÔ1gÈjŽ&ùŒöpßìA2v÷0Ãèͨ>Ex§ãÿĈ¸ì$ ÞE†™q‡ºZ>ÙFXøXÌ tEmZRˆKâÙÔ)À¡ËnÍåoŸí¹Zy¥sÁæçãOÿîÛÞídjmVe%š/¶«Ä¯©B<‡zcÈö°"lŽØ‡[kêiÆUãÞÍcÆR¿4©(™tÇ^7lßðÜÒ…Jû ØÎ¨\ùª±z‡±ì™q$ód ¤œ®}8W¨ô¬q1CO;ïFt0µt2ˬ^v+ÁÞqÌx]œ,”h:Ñ[n¦­;€6¤A™Ï¡$ì$ÃÖ¾ðÀ¨ÀmeÐúß2îÔ” ’“š)GßÞLÐáæ8™ë%!Ê|J)¸ÅÂmòþ{µB]Ÿw"/Lš }ä7É´=7ïgA ·@ÍñŽÝK†cQµyŒÅ)Á¦x1PÔN_!s$Uf³W¸½H*HQ»›Î¨«Î òxWîg· šL' Î1´:7=`¬{ÎI>ŠåÕƒ^жIsŒ½°N¨ì» Ô¥®§”Ó5jV-×€…CSz0Ü?%7>J9…“uÌFvRJ1)ÃXaÁEm“#Âú†PËùaÑ…¥CC©a]X•.drªf2SɶñX¤œƒÐàÔÞt+ψÄßPÍ[Å&d„ƒ"FòbÒP¤1WJWéÛí1ÃrO½[¨ I ùœàqÂ?!Q"LTÛ¼ï\³X`›Ç —#ãKÝzzÄÀzh:PÕ°Š=3¸/w‰êùiðºq³½Aô~\ Pº™¤* YéÑÂøvÛýéó/þDãIê³Oÿ¿~ÿÅ»/Q.d³$†¨,æhTÁ}úõYÙ#Õô™S`S‚ÎüŒ[SÉj)USq®ï"ž_;õ÷ö’$zd+¼W ãZ•û±±» ÷ÄOxƒ§Ä|„Õ ¬¥Ùµ4·ÿô­¥9Lµ–þ’¬¥ùËÖR»Û|ª<óÂno%\ØÚˆ¸„±¯CJDœ­ŒoÍ!ÖîøIjùÖ)eÄÉ™¹ºÆ‚O™Ÿ¨Øá߯¿µ¿NØ–)ʼnàš÷ÏôÁ®áàå’|àÎÝ×_|þŽ¢HÈ5kÆ_ã£.x4:×Ë`rK…WP®Ž‚'çp ïCŒû9£ÀaY8ñr¤OæC(‡¡–Áç(AÉÃAú®,¥Ñ¿Hرõêqdºl3®•?<)0€*%äM˜T}œE Ç¡p¹…6 bRéom§ è¿Goã$d?N u4É Ò Ên'Fúò hè $ü4´6¡WÍÏ¥gÌ‚yGBŽÊ¤âŠàn¿%²—ãÙ=l¹¯©2Ÿ ¾¼÷nÎx®]êÚMï©%$BœOœ}øàjÇi`²˜¿ìšžTkônþö‹ÿÏ¿ûëIU}þÕg¤Î³ Ûr-+¶7äšp‹qD+Z+CbOâÉÁDþÕ^žÊ6¢]bk¯sDÓ¨$\ì>Ç¢uïÃã²FÇá´-êYh"üÔóùÈêtÒKXΔÃ;. T@~ÒíàŒ}Øbì#¡ Xƒ´Ÿõ<”€Àîá«3Ÿ]õžqç—àð°Q%´R0¾µ ïZ ae ½Î6¤uÎPƒÅ^+¬;Gù†æÎ©´‚7;èï)_‚‚ü~ƒ*ö5fJ­ƒG$h@<‰soñìÙ-8Œ$ô‘4ƒ§ÿd²P#j¦-ϵÆúî¼,#‰t‰;<.Xîɹr~â8ïŸUÏpÜœ~ç¬T„òT*‚á ŠSJJEÿnº[0> `p±•hò üˆ~žøŸEâ„¿>u{‚žØ×k‡ íRá#†%+›¼s¥h)Ljâ ·ÛéêF -Ò­Æ¥Ö$$£á 9ï" X¼.ÅŽ÷•3É(ò51å†,íÆmí†b<1÷›`Z2bæâNdðxêLêöb•‚šTO]`;.`Ìïc™ˆéÜòšÅæji7´ 5Æ£°ÓüêI ¥§óù>Sl¿ð(,«Žzh°ú„}z TÜ<<=JÔ4¢ã}ʹr!aû@QŒ¶¤S¬ï0ßRO »¾­W]óŠ.W*!ê i@„T½ÚI}AÒ8âx×Ý-1cE¹1ÕS”‚Q‡_¼yÚJ¥EÐHŸ¤J#}äÒa½¾fUCnsœ¼TÀÆ%6.¾Wʆ/ü–rÕeßD–‚’ß (.ÆNØi “ûüñâòµcP·ãx/¯¸V6\ÿ[–´¨L[È\ˆ}SÖR=¿!wú^ªv´$F[í?{?I3KЧ³éãt¦wê-A¼ýÑ’OvÛ9Ž H™ Ä¥õµãœé'DÊzZ!Y©°³qyÚ§é–ÊêÚ×ãz‹ˆÎŠì‡de·ãP‚§ì®%]$S}z‚î#œ\^„‹.o!¹´@” É 4 ¬Åùµ¸°ÿô­ÅŒµÿ’¬ÅÅ+UÕCdp:MÓ%–¾#ÀOXœžcì"Nãëðªíޝ驼ŒE,Îr:«ª°6šÅ~  KxÊ:d4–°dãµäÌÔI¥CæÔPì=„G¯á£Ç7:ƒßé” ÛièòpzÀŽÍª <¡ÄkØ]Žîó,@2ï|Æj`Ía#å‘(Ù~Ç"ÔQR‰@X¾Vÿ»zmµàcy$-Î;뤪:g`vµr(:ƒ*¦ó3<*¸šÃõN¨Ü‰²Ÿ{'o[”^Ä%YMרìO¹ú ¹÷F;£4U$µÇmõ¸¨õ¼Å‹J *¹è 縀GP8ض´KDéóøTý¨†~½v°¶g|0Jª·*’¶AmŽˆõÁ*;8Z2VHÈI#k]ÐÐ5!gIèÐAµô^q-Š‘FTV ­ñ#[Ti{ãÜ.¢…˜v9»×YØŒs†ÀÈÓGœ%W™šÐÚ4ˆælÚC,~…K’|j¤ £Õמ(ö =Å9e® }Ô¦§åÓŽõ8Ì,íjÆéFÙ@ÌàÝóŸV`û Ã’b*7éÒÄç×”¦…aS>°šî¸\Þê¬ gFA1Ó²úø†š®!8]-¡Â‡Wy}•WJ…)»^-Ód1OQ4èÚ§Ž6Ç<ðÍÓ •#J¯fB*µ€vVÊÑÏ›aÞ êÅ-Õ×`…TLÞ³>Ûžd”hÎì Ò‚±‚U.#ñ¬™4píeI,XôZ†¼Ðíå‚ecP© =^¢ ` €L':ÍdÐ2n†sÅOvAÎÛÿ„¦9ϵÙè7R Šä…:k`>tk·y\b%×Òâ»`ÅtÅZg˜BNàͲjôªD#²€ÃÕh mB©qMã8JªÕRöÌBÅþ¦,“Ñäç½ø#„rÍ8ÛwlÚz¼#@óÇkŒZEq<À„ÀYW++ÎÖûƒ€H®‹íæñÈvü>Nd$¿‘Ë}ñ ·ÿ{6G¿Á@¤fe|¦»Ýb3ÌÆº€N£ùÎA¹„0a0r<ê½0Ùßd³±™Q”98÷QÜO¥ˆÍÐÀ›hKv6àCËgU àʺÌyfúŽo†´€¼‚;cË9Àq•ç:Ïá|yM)Y É•æÅJS!Ù9… µXÿHUM“ÚUÒ Øëa¶ sï“TpyðYÐ|ñðrô.ÈAà˜"w›åÇgv;‘Þj·bsÉcSá¿ÄhûqºÊî#TÌgª×{¡%?y%¹-qŠÝ†Üò{I«¦άÂÎC‚ÄÝQfxÌÆ0ùpTÍpn!Å`ªûÓ†¼1G`Ćá‘0ìÊE‡c-W¾ †*ª*ã;kNáA?qAB ÃMƒ'O  ì°Pâ"hK!t{l5vâ­ìúñB$¿Þ{÷®ÿ.ê7f’ôiðïæsW[šUÝú'+aáaç—Ì3_B‚E²ž?LØ-£k#È¡j{ 9 íáTF¾í®x‚S,@”ÞZ¸…£~}OgŽOhKø;b(¡oûƒ(ŠtØ| Ðeh¨C$™¼* À•£P˜Ë¯5´‡ÎtZ8 2¥FSÙ¥ÙÓnw¤0Ì””Wã5xT¨(#DàKÀ+.D-¥è" Ô¡i8 …ä§1RÌååZ &Ü â+Žœ¹…éùˆQ¾põ?« W±¶ü¯^íøT ä ?Ø3QS½~ÏÔì§}99ƒÙ{`4.Ѹ^3ìÄ$bÇi';ÖXꆾ?É!¼ËvJ¹e³ •àÖ°à¯ô¼ÖQÜóncÊêˆ ÚS‘îÎûÓa6,œ X$©˜æª%ðÜ@ë cj^{ƒ/ý”kG›4Ž}iï95Ñ fÌ¥qyÊÓhðwñ–çzO½sLÍ]îöK,ÓÞÞ¤'1ϤýIlÒdRŽÒ‘UO~€¿á§þJáoz4±?L&ü eÜ#€êÒoLéȾè°_|OäH¬|1=á˜ÅßÕÇàÑê¶*2ÛCH­“¯œ –Ý@wõÖ+° øe©ƒ›Èêø?޾\£«Ãï0ob^sÙtb5°A—è’ýÌrªÿÛnºŸ­@ŠtI‹$¤ |ñ=üМÒÅY>ÌÀ£ÃtñÆ’ô|cI@—øô6¢<]â«Rÿaþÿ†,MœÌO7ãO€MÇ]Ue E ŸüÓU4±W,4eo”¶§ðۮŴ—„«¼¶z.{ÈÚ‹ƒ´¿þ³½'s»‘¥½8CR£6ô‘åÅHù,ËCÊÃßv£G')¿Ž<:Lùðó”ONSž:ð”O€ò£ÊãGÊOù õY¡<4Å”çXÄýV?8ˤ§´‰#{çºbè”p¤Î“*$µýÂð&Ï£ô$©ñ÷c“:|åCHý¯¤<©Ó!RË}Ô'uŽ¡›BjhŠHý5ÑTŒ;+ì7kÎŽÆëÆ^Àvk'@oi%N€ÞÔŠ£wÇšÞ¿zWÅizWîž9|ô½å3ðÊYôÎ^ 7vàé1³]Žÿ‹Tba­Hlæ¬PíÉÝ@ ý­o1ø;¸ÅLøìSݺȢÓ7þN”8|ôÈÅîÞjþ|ûu|Ò~ͽùÈ™¯cÌýÿññj'MŽ¡ÈØnýŽ“Œ¡žµ²EÝöÅq.åĹ{_x‰A€¼¹ùfÓÜìÅJ0öÐi àÆéjTO–A`¦ÛÑ@¤Yžv._OÔÿÙž ×z‡ä1]£(Ftjà”˜ƒúÀÅEñxÑh$ V|-qÔ×PÅÜ 4ô’ gë*a’šGa{ ÔW9YUçÅ¡N%™”…’¿8¾sñ÷©úxÆÎ=ýÎ9"éÉco¤}{˜3{•kqÒþéÃŒÃa6N$ Ÿs¿,–[ÉÐðqÉ,›œ¼•è÷crIxÎ}å .™IeLZ$u·ìm€¬N@‰‚|¯ÛÛ['zÙ‹R(#¾–"«›b[Ïão–Ó' }’#ê•‘ÛÁ!TR—o.n„o%“åQp+ð ¡wYœ¦·Ó~à£9‹ÞÁ+Bïøz—Å¡¨;º3_öE¹-!ʲG ~K©OŸ°±”¾úW&!¶ÛÛ«1îÇ8²ÄâRÏ–¦qœP§Ï’Ber«Û oüùÝýüð—úMž‘Ù=n~¬·,)dye¥ƒ`MªÌ® ˆÂ˜8;efôãÆ^¹ð3&(üÓUYdRúã#]ø[\ E.•öŸ~ä Œÿ¹ô‹Š\*ψ\é*ÊB 3Êø(cLÓ x y~pð/˜8ŧÕ&j~Pk‚chE’æËN8—À"M:‰™_ÚC– ìGú (úÈR¸kä ¸Çè ßv>zÃQˆ‚ØJTdÛ‹UŒ«tâÚŠ«rb¨-'íWe¨\Ù¿YÖ/’“Òj‘ð…tøà° yᬥxA­Âæ{Z•qK±Ú=„KkÓŽo âò°úy—™q„O¬ñSDí@w<G-ÝÛZ ”Z‘l3†K,ŽMŠP2ÿD7½-¤ÎÊ(¼ÁìßdÆyòþr’R–Ÿ'-á,Rg/Ü]¹ *š Ànê Âß´—@…?>Aƒ?ypp‚§^8k‚ùÉ Ró4Ac'˜‡ÇÄe/½§d ÔÇsŒÊåd­O—ë({roá×Ú.Ö ØûÞ­üQ 1àš}¸–Yj© bpgZÖkÙ ¬%®¦_K°;–N NcÈ`øø+ù,Ú­CÅV¡h ‹[‚”9þÏË¢Úñ4Mû0‹zö2JM‰’ž¬*ÞÞô*e þ u¥àèÝ¿…è'hì¶¢D+UF"Žû¾9DŽ"7£ŒCÌ4ac4ÜþÀÖ œžœ&br뀪ġQ^¤Ró»a(§æcÉV¹Ðç½±™GÚ©9LÃ(Ô0oˆ(9²[ïÀd:'båÕ3VƒmX÷<ŒÚyÌŽ?o_yOWú’¤Œèõ£d Ë,¹–\ªQiîŸY‡ÑkD¯Q> WTÐAyh7£ŠÔKo{€°ɘAxØI¹ÇÁµtùB¨LÄIËnÖxÁzJFÊ¡ðUº ´z01²#O‘€˜ÉÀKŠÛ[t;‰,áø#1&£(+¹8îŠ3z5¸½_[Œ<(O±…³=GbispY?{¨ ãê±®ý³Ðsò1µ9zü“´”BñT·ë–pùN@ÜnI‘®3GéP–Ñ#‚¯¢ÎÒM{Êõ†ì´CO)ÎȆ눚ç f¢¢ªÔ=VÍWÜ74s¶1,žÔÚ>‹TKÙ6ö€ uIq;…Vƒ°L;.buÄ{–à?gaÜD´bX¯w5IŒÐBx(Ej·G RΜªP¸ €O(¹Þ5ˆ&q¢¸=  ä?)2í_þEÂÒfæøŸD§ýWþ Ck0&uR%µ¦r $µM!äw|MI& Òƒ»!ðbºûê¹ˆŠˆS¨lLP³ßÝàuÞM!­ˆòG—ÔFà–«uw¾Õšož Õs‚1HQ\ñO ùS}ºãÆQ“Àp(† ²ç8È9Ž1hÀ®ÉÜ›@ §S‚ñÛÆ{]"šl÷5×&VPæýK‰rkq‚RhÖ°é0GdzÀƒÐ¬Cà ŠüôÇÚéHÜÓ»ônØ"ðuœÙñòtT:´î˜Ëæ%ì£øÝ»o÷ÍŸ¾ú÷WH&ß¹d"¢çŠy¶Lž!DÜ–QТ@Ø$¢,.…ë+œ±…2OØ3±‘Ž)êá"Ø;ð (ÜQÎAÆHÉͺ¾¡˜¸‰+X²VÀâížîöÛ)jÕt$(L5¨øÃ{8ù?h¼ó˜Ä;Õâêðû=p ,iœZôÏÄ0~àìÜ¿ ŒÁpKID%ç~ 2<òáO™^º‰´º@%@-ËHönG|M* vNKC ²_å)†[“ÆpÃùÈSUóIö“Bƒ¢J‚÷EÑ­)‡oé³Ëõž¢Ê:¹©!›«†c2-fEaa98ˆâE$Œ:lœÇë€ ´"xÃ!­^é wc{N£ðP¸’Üm¯:Eì®· sA~¦ÓуŒ«ë¬ @†)WÉ‹°˜¾˜ñÌrÃCFëš¦Ü <LÙ oþcxá¯9¥bc¨òJEêÒúPx ? ›YSÀü‚ÃÇ~š‚”w†®{"Dà †âOŽøüý­V|Úx™$…t‰SàIêð¼“ôL ðSïœãM;i1Ò¾U“Ôn9å KRûQ)ˆøw¨!†ÀÚõÛȬ¨½iø›„³(>iÆß=:l¶Ï™£¯œaTÈ_ð¦ñ˜¼iÞ»cЛS.ªÆˆœkè›ùÙyØ [’a¹„B;ƒÁöŸÇ_â]SOg~›ƒš/aNŽÍÁßh 6®0¸Qü“<Ãìð jJ²*;½ •¡?|ôÈ*¯˜X…ø…UÀ´-žôVl2½‚U0Ë!žPòÀÂ3ɨƒçñöµzKäÐÜÂ?ø$\4U`¶¥dm€>|Óµ–DVëA"¨Õ(&¡9¿à3‘'ƒûàwÙà‡¯>w앳Vã_ uà­ª øýj@(Ž_ ‰ªñ’õº“3þ³^¯õø/Þ€ñLI^qà^ÇÔ­•)^­²F˜£L´¼Ìz$/Á3E“"‡&ÅW#™Zi{Ü¢´€ öÚÀÉÂWÔ‚–yÉæRã>hSzÒÑB¿{tx-Ý+fà•³Öò´³…;ÐÞ–”J/ƒÕÃÄ÷Ôe\°õp=°~moÑÿùŸÑp.®I•…¾üB\†q~Úg(&fàÑ#^C›2ðÊYôË^ðÆy/&-!l¯¥»0¾D/Ñ~PôbáyÿÙþ_“ÏlÆù‹sjÅ`àO*ÌŠÁ$¢îŸÇÿVï}:ǽm8ðÂߊ>N*{\ô&.jÔ-úg¡("p:²c£Œ"zY¹!8ÿ{ñþFr×§“êä]O¿{tØíè^1¯œµ–§EÜ_ËÜͱªznîJœ$)äyš(þ~ìÑቺWÌÀ+gMô´§„;Ю’$fn•"Ï¿õ®ÇÿÇo©ö­—sЉժ›µ²jY•tÆ“4žì]øUãP’h£IQ³åô‘ò1²¯O×@'‘@í·¸ Çð‹ïa¯õ.NÁ´ ¯Å!»kQ¾p‘IøÁµ(-¯ˆ‡DÑ«ZѶ6ÁúD…'Ó8goPiÅC‚ºó¶Y¯”È#«‡¡ÓÊGË&yÖËÏÈ%¢Ã*“ÓùéD¶íá£Gò3ä•¡ÖÏ¢nušºÔßéÕDÝ;°‹Ò&’:UÛ*­Šü,‘{‚Éž7ìêË€nfdIL½’¤ÂeÏÆ æò=Ò^´|ñý¨‚“Ɖøqn³ß]EI™˜4M2‰$Iè1ÇDâÂuŸ!`’›“) vŒÏIa8õÊy:×ä…† Å%X2’Ò5¹JEëêu&daÀÓhoSY?+YþåV˜T Œ«=É·â"·[•†nÖ4¢©1ß‚5 ôYIdˆ’ð>€/¾•HûîVHÎ}¾Š TqšOøúŒàJ&·ÒG²ò*wË&Ÿ!Ô½8y‚¿»æ¬ðüà•Z¶è…øü‚ROܲEW0 T½Óݯ’Z$….Ó'à‚"}Ø~^&*&'GgïgT3ªÕ†Ô3I(zY'ð…=jQ ý©],2E˜2Š<§ ¡¨âßÕ+óØ-–| Ç䨵cüïÇ^¬“¯œ·X/dhÙfÃ3ÓbN/ ³>¬ïL¹àH´´w‰Àœä.'S'bw#>:L«“¯œG«ät–õ h•¼H+§8 …ZÇ“ª$V¹R„uCu•PË èˆÊêä{ŠAƒhí  ¾ mM&pƒÙ¶µÉ&_°­ñwÎEÙÖîóÊ+¼:àw NÃg„³|å¼¥:­ÏÒ õR¥²Twã;Ë*Ð ¿´{•. |Ï ûbUòÁO Õ«º+÷‘=æ\%t'evO³™UÖ °B¡ ÏŸ¸ Oå*´ád“Ë¢ü¤ˆ~yt˜Ôá+b“‹^¤©3¹¥!!‹g 00k#³†/xƒÅÙÉKŽ~?öèð¬ísæè+çÍú´’ȃR³ÎÁŸÕ“KS0ôÿö·XÍÇóϵÈ$;ç,A®ä/#êe’Ö ¯`b'™½êŒÚbðÉ%YvçÀjÍÊ’¼˜ò­gÙ=ª6®•4{ÏX¼õè÷c¯ÞÉWÎ[½Óš/4²‡ÂsrË¡Y÷Å$M+gi\¹$Mƒczÿaºžx‡l@AÓI#˜„Î$‹„ÅmŠId\‹qa…LnÑQlú‹€/˜EX¦ýB*Òħ"MÎLEÒ¯|‹(_ÊEê]œå nl7&†pchæEnlzìØ7ÂIImÃÍÀb0&øÂ¥!Å/¤!Å>§(>Öel޾r­«—òâÖÕ;6YÞÃ_À/xÖy~Ò’E¿»g%_…¯|ȬãÓª"÷àgmŸOÊ„tŽÿ:HI*‡R’À£ÙOIª +é×”¤_RJRõÿ²”$»·£³r’ÜÖŽÀ"ÊW>ëǼ:ëgôaY?惲~ìlã³Ò~Ülã+~Tz?Ý˹=¬’›SL*NÍù· Þ²X3Em€µ£72È´Íú—Oð‰&éÿÔKÕä¬ GÕÌòáÌö1/gûŒþwgûØÙžÔþŒ¤û¸ÙBîX¶U¬“"ìŸFżÀ¯!¦|£#^ä}C/”ÙIÍ >òàpЩ7·HNÁ@êC£@$bü'AzLjhð‡á½‰ “If¤´Ø`.„¤€7>Ý¡õZ‚@ f›¢J  ƒ…ÐQÌ”ÒQq-®! V,LæŸøJ—‹^*ec8—Rp-y®3Š%cÁãr:ƒ"Œ¥+¯B€c¯)¡ÉSÒÉÃL03S€èçOÛFg_uõnˆ%a8žT·\Q<µóUe–WÒŒï^b9;AçØ6´xRÚÄ„²M P¾­+«¬g¾ú؆K§qWªNT€M¡È;*§A±v#î g>Áìæ€˜†¥<1q¯ÃrA†êå.VZ!ö×”ÃC•ˆp$S®cÙ7ÆÝmç#åhÅú²Ûîö×¾ds*7†Av©²„}{ëcúAàöšÒÕìȰ<,ŒŒ©^".õwv‘®¥´ Æ=—-郖4°|†×ÃÁg³Í–w*aÒsU'+‹JÖHí6X§(b°´Û"6œŠ±ìf.ÒÄ45vhÅuŒx_H$»N¼èƒåBâÁã‚Jé¤1CÝcC€Ã¹Å¼ü-&X™Çg5uÇ\Eˆ8 pÛI5àõf}£ Í<­Ã„éÚ§Í“”5u¸3§«6$TQ;ÀëªØ1R¬k²W ·^ªfÇ»®óEs[.×QÏ{Á¯Xy3åw¾J$–^d±H ØNdƒrhტ˜ȀxjˆSÃÁ-†Eçð2ª7‚Ö'NêÁ2‡€»ÇƒŠ^Ót°p®DGŘêÀûÍⶆOw3f¶”Ï€ŽYÌRùرŒŽ ”â®nCKJ 7>ZS渨 ?ÆÒ?!8gN{8Àìl0~_â)Y½ñ R:º£í½r ëpª 8ƒÌýÚÁ˜ƒ™Ç]Ÿ2‡eÞ!*QÅÀqËøx¬™sº&zKy1/kèÌ`®ƒ;aê×4g—#ëe….~24‚9Ìë^¶§Þq|4.–9Õ̆Ÿ ®ç½ 7²ä†èìxAš6 \«ÎreÛš‘´R`Úm¤½Þ*Ñ͈;HУ9 FŠ‡È½¶«ƒÜ2ÛYݪÂu3·ÔˆJ¼q²­®}­ŸBf™U‘9–)us°Ã7ñG;é©Êêì. @\áS®<€”` ÈF5Ly ¡Æ&¢ŽŠ²JÚ­4fAÊ”ÀºCÚ"m‹»§vÇÕHÞrzÍUhÜT›>oÔµ|Êk K¤à¸>¾JQÊaÌmD‘–€÷36.¦ §0i³L9&‘pŽÍ[‡DN™-kRO CKÀ_\—%‰%™”ß’ÐÌ0i½cË})ëå4:¡‹ójÂ#¹0zåÒ×`p f“:© "N ž#¼ÛÁôfË=˜`÷.Ÿ*Iƒ_颕Ù2x2Ð:E?Ôi¬îû‚êeRÉcƒ‰€@޽„Çÿ­Þn´W€‘½ôQ3OX0Xø"àE®5nò’P´3:K©ºf^ ÷§JiÍ:Ã"ó{W6‰)ŵk£˜VÿDØ 2cRLˆ:NãAFI8u²ÛÚ]`ô"éß-ª3e´Wªâ¼^zAI¶–jZ¡¼¡¤\KD¸(–8Š53èa•ƒÎEä¯ÕÎÖÀM·ç|©§·p‚ ãî+²Ê˜õj‡sÏEŠªpßí‰ÞPÀøÈ´†Ž—µHáBQ\™6yXšº–ZD¡c‡- ï ¾ƒÅâN1¾¶òqîîPvÄSB Œ³2ùVŸ˜@¨"Y€‚~tǘVÉ<0ŠaÆ&(’*À§Ù7îÅ"‘ŠZWÊ„÷-¹Á®Ã”ö€÷I¾HºÏi»öÙïiŒ°²;!¦,­–»mô|msÆ4òôPf8¶Ée—›u‹#g½ß€†TS(%¯¥I’¹"¨áEŠÉAÒ™%3T˺ÃZà­+>ä¬P4LÊäáEaáYM4^wI.M1öÐÞ¿X±œüQâ¶{gÙa}‚¹,Â’ g2^9†¼}h¬àXÓðóút¶âÅPA1üCZÆÏ&8$ümzxåÁ#½×k#Ÿ„uüBB+ËÓÅøû±G‡ì£æô+gXH‹ÒÙ¸ƒApHˆÄK«zõ'2…ªº stXL€fcåeFSÀ» ‡3*4?H†ô„†Ó1/Á騥˜øV$³ ±rà ËIóÐrКyP“àLšìÙO –ž×ÀÉEæâüä3AŸŒ¥˜à©úxŽSåÔ+g-øK^ó!:e€Š4Ò¨H Æ>Ëú!F’¤Æ}a¤r‘³ƒ}§4òŠÖÕ¶Ñ[Z(W® ²ÌŠp]í²®em_9Û ‹DŒ—,$o™”rÉ9y _Ò8y©‹vsŸ93§13Ï|^ÇÉWÎZܰÞqÌj¡ LúÁ®œ@U•§'Z¹Úøñœ‰žz嬉¾ ˆcBZJ’¸Cþ·l¯„ÝZo žÿ©æxMæhð¼ŽEÆà¬6¬Nठâ,šä½`¾I.€©“pØnnB`ÖÒê Ù¤¢p.ŠÒ,#˺ÛO·*!Êq 0¥Í,ó´GÙµGÕDšð!†eå9K‡bå©9]˜úPÁôÌ诜µâ/¦=hÂà¢Zc²B$få öŽ3‹ ¾™â<§²÷6°ÍìÅèâ/çW×€*0ßôxãlùs]åÆE7Žbƒ_ð6ˆS¸ƒÈŒCPoU–B ]<âÂ3> K²Ô­Ÿ|Xñø¤–~wÏ Ì _ùõ{!L’:8È¥3Yê$¤Ðdéi€úÝ}4ç…êW>d¢/FÆC°ƒÿLu´z\xÚÿÙ¶Ä{8E¶á½›•@ €'ì%€ Xh[!à2‹µ4.FÕs;Ú…Núá…٭٤0SÛYÕW¡r‰Û–¹K]ϲ£©ëÆÿ~ìÑ#ѧ^9kµ^ H,‹¤<$ ³íôR‡ñ¸2ãá×RLEý†©Ï½,#€ææœvÈ2ÂY>[A@!YÿvT/ó—¾ø~”G€ÉÃóˆEG÷Í^ ™‹Ç"yš›!?!--##ÿ!Pw5F’I/*.AxÈ_£â~AQqÉäÿeQqÅ } îÊcO©Ëi9kÓòã #Pa„Ä{æÐ¶“4f´mŒ½×q A©ƒ„³! nC!y€H‹/ʃv9åYœ;HjÊ!Hê³2Ê[×lM@<ïÝG‘¬ ‚¬Tå?òÆ€æKÞ}èjSžWµåBèêâ¥lLÁ®Vɘñ}7˜XDÿßþV ľ8 !«¿,t„=íYׂXW£Ëc¢ÙSTl5d¨”ºv ÂQÂS#On)]–Ç ~â…ó~ÚtR–½< Äg˜SbʆS|àq(«eUQ¢Ôċж¿C¿(G+­7{ÎKA |¾±Ctjrò.†ß9ígàÑÁU¢ç޽rÞ:¶­p´ùM/qsàþ¥å¡ {¢ õ3žÍXáJee¾–¡L,vù<þlóø,1§ì¶WëHjƽ‡P0üž[ƒ V¾ Xõ(ŽNFbÓï£#/EøÊ‡³/d“rA6é©¥8@M`© íó¾ú ÀðXihâax°#È]Ü>¸`D>$SuHâ*Ÿø7ÑYÆoº%HâP-Å/ø4XMíäàïÇ^ûœ9úÊyKpڀà RBûWÁ«€ NB< üBpÚ%¿»Ùœåä玽rÊP¦!;(…oû¬ L g]I&p”æÅ©‹ ~—)àÇ3f}ò•óf}Z¤A‡é’*»Jå•– ¥ì-,¬ê€ÂŒ£–¢ù}Æ໇#¨4ÈO‹BeE˜â‹_0³ì¤*N¿£¸5ðè0Ý+C­Ÿç_<­ÜqA¦ÕM¸{ò,4úâ<ë<9iô…ßåÌ>:Ïáxú•󦚼0Uö8ªÄ¹6p>  £6 KÙ·8-LTF\Å.H&ÌÎ%Êׇ‰#ªóKy1Æy¸iTõœøY†£ ;¹w šD©M%•½³”žRwzåý†î3dsœö¢˜1UÏX¸“¯œ·p§•t˜èN¦¬•[¼‰_3«Ý™¨‡!¨w8Âçñ·žþ æéW •è;Ør€+¹üÐÆäš%ñŠšâÇð!ª#ü‚VÀü¤zA¿{tÐØwú•óVà´zÁ=¨Èt&ȬDòÌÊMñ$#q`ÑðÍçñ»†N…É"6Æi#äTAxâ -7›G pÝ<î¨x¢ë «'rgn¢IP, ÿVÑcøw†>‚…O&AÁ¬8Ž}Á,žÙ/˜…ry¯ÓŽÂ\tíÃÔ€k*«!¤©ûmàÆåO*Q QXʹ;¾2W¹ ’úVK5 $wÐÅ‚céÚÛ^NŒoõ–ós0|R•VŠ]ö¦ŽÖciMÞýˆÙ ª~RC³Å"˜¯¡ã½ì­O® Ùáç.b‡É™5Õð¢|Œ¤\Ø©/¡.Òn…îyÎIR\¦àGJUÚsˆ<†ê®7>À]%CÆŒÝ ßb$4¦(È[½2P г€(ÊÑISóÌ•Ðïq¬*#Ëe¨êb¹©%õ¤T¶¥ÈrÜéµúZ¨¼Y íýÒPÎVÎðktb4U¿ýž3^jÞ…a¾¾Wëå¿„aä°[ì~ßQ$=öàR‡\Òœ.ƒ£]9n>.Ñ¢ƒQí|v$“Ïíãp»’¦ Ò)“µCÅÌl¡„L©…%ž==JÑ Ûy6m¯9MOÖ¥ôzT³’SC\‚%NòYGCßÅÄׄ—œ¡k|MN¨VÜþäGnU†—“–#zKi(˜- ÍÂ6‚ÚIT~-™ êÔ¾††ôš÷ï©xxØ‚hA±ßy“Ä Œwìpþ†*yýmü÷œ3]cZÙn㲩ïÇ?n»½¥ËÇ\ˆ5¦Wõù[îí ®GÎí r>‚ü¬hcÚ— µÇðwNÛAxwÈ9qâš{ظiÁ)=>ƒ2H/„¥ñR&TÐ.ي뎳±uJß#Š./5IŠœ÷ î~Ó ¡ú6+| ¡”ÜQxÆ eÑØ¡Z²¥z|Ϻį[Ê6‚B,r¾6X= é¤Xo0LØAyÒŽT×ãá¨ÿ„;QBê‘mªò~XŒsÔ¤ö.*¥Çþ†+Æd­÷¹N­§ãá™eÌ0‘¹b 9qóÚ9è0úò¯ãog›ýlAuË9b ¶o>ñªÔ(HØ“i޽1WçÒ@ãc'ü‰AñàìöÛîŽÓ¬ ®´õ…ä(~=Ï8¥s B˜~Ŷ€ï\ãiçªPÈ@·õîi¹—xÍ)•4T]­¦{dõÄó0¥Ø*ìG~U¥»Z.⪫÷èâ] UÙÄtम·ã?|ó•¤.SòŽÄ†…/2µ£«/›¤\”ˆ4ŸîoWv0ËÍl}·½Ê¬ÖšEÙ.ËÐÔ¯Ã| Á}Xj H’ÃT-›Î—&ÚSU«,ðÀ ÀƒHãHí¸œ]ªxášÒ– ùÞ^a)Al¡ž äˆoËAÞÖ2xLÐG!ÇeSÑбžÛ†g² ‘0tþp˜'Ír_`À\3Ù‰ÂVhXĦeÖ²ùœ³Ò»}ÇÜ‹xvûHõVÊù&Ū]nîì„x9*`ý…{ üÔBòX(Z0H‡KãE,d:%ñNÂ'9¸ˆQ“Ô6ˆ 48N&C‘ý§AL௿¤€Àèå€@؇GgÏ0ËžˆÀnkà&[Løl§ü•BìÈ1çXì_êMC6 *mž‡yxŽIÁ!¦d¶^ˆÍMq> ­: > VTu§\Ò€9êEMêšóØ¡j¢Ì…Æ• æÐÉÅB뎋\SËákÉk÷Ç–°¼Í«V¥ÐùòÚ¨üàÕf?0?#„œ³r¬{TYȹ퉛µ;¬¶T­J¾Äß G¾·zìñ­Ý^öjìh íbƒÜ'¼2 ß"1Œè3e‚çpÛu6ªãGÌ H¢šeÏø¥W^ÛÎÏ.¦KúžôðÞ]_œ%p~ç<¼5+CR×!Þ÷R–¸F/ àV/@¨‘(°{­ë›ýæÆW¼Zwÿáuºâ:ÂQ º:ÛÛ1—c棙“޹1S‹ÔÔáÕe9{&¥z˜9-ø=.+¨Šs¨²ìj§Ž" Át—5o}SµGaG —r¸ÝJÀDužÁ÷ ÖŽ%é €Ú¨(»mõ†‹¤£ò¾"sÌL R"óì(½ºaØ ¤‘>:ð_>:3ÔzB ’ØáRÜ0€éÍL^ê‹ld•a †©qþhŒ:2V<ðŽDps˜á¢#¢\gõagä kTØ¥Ÿs¾°ê)àÃi#]DZ3Þ¦S·“¬*¹†ÊC%C¯2Ô, Øo…=Òïú(-fl{¾gª±2µ¨D DË/–»šmm“ ‘èÛ˜jŒ€CCäÍ[U‡S ŸG ®­§×±Ü5iä=¨œ='¥J¿?ìÖs;U³ÝíIÙUKEðCì)±Ã¦Ÿm·›ÿDe런\4š QÕ"/ÇÆ å”×5Að¡ ø‰bè°Šë¹BŽ`¸ èlM=Á dÃ¥¿`h!;cÞv;Ô ½tNåÛÓIv(&ƒš$‚xyÈbù;CÞ0Á5N1<\ \}zèÜ,¼þóƒ5'ï–Á¾3A)»F£-¢f‹âVŽÊ:‹ÀK"¼³hïÃjꂌӽ‘Ÿ ‚{–øÜœê•2€b\ |Ox!-_.áªÿü`;@vÔÙ]‚O×mvZØiP¯`EêÝZêÒ7;s!è6¾Ü4Ë–£'†vº»-ßì7h=ˆ¹Ú8T™Ï!“nèéϬêŒOÏ”­ eqC„ÿ;´ â†Qˆe «9®}ºÒÝM }ÆÃ«ŒF„ÁIsj´øT’5–ð±°Æ Ô¹aw Î.¬q#§`a‡&ÑØp²vÓ‡ãA»q [1šæ´ÛîÄI¨u[:Í,ž2FVWdîo=ÅzêÞm‡èqè1÷*{¬UöûGŒÆóB!„Ms ². d÷ÝöÀ¶ t!£{ cÄRmÄØ÷‡£k<ø Š£u÷uð+Û£éÜ]qƒÈwRÖçùÍÁé£Úàè(lÞ+Fø>úQ×bÌ-ÁÀ2ÂÞ+iŤI-ØdMÆ£ÀlDœSLÈPÆdÜâ xHÕ3Þó<ÖnNÖ%‚<ªh¤[ÀsMàOìͽޠýÅ;¢PïqB£û”¯´$Ëi{ÕŠìåïÁÚÕ±e_ĉyÝL-©5ûn¹ÛðGàXplg?ðuÒôÖ=¸þ¯é‚§©Ó&ø 3r‡‘‘ëøzš‚ÙH¹Ôú,šVÆHÀr'•FŽ”ó£¥äùÃ:ÌÇE%qû_ ™ÿ<߆·¼˜0N²zîòóz_oWX[Ä&_qÓù½å¿ëY?ÄÚI¼Þ 7`N|ŸäÞů16é IÈÊS 2‚°¬ÍÎá®ïØ3ãêYù‚ØIêPÞ^e‘· Dµ]ÿùîQi0÷¯PÆy Ѥ‡fk’šô&Ù]“U­¦Šl(Ô‡—w`Neì2÷xŸ]×a+™t‚Ùº8aò,*¢ÓÂêÜÈöƒrÁºÎìAi§Ôlwj븑D-ªp}Ãþ,‚gÙ甆«—Z]Û´\i\Â?}f0Å6[„Ùôà¯åßM—›oŸ×Ì Žuï´tîÖŸž¡: ‚ î"ÉsV‡2ÆœÁ´Òª0²¹pqí¼ÙþÍ V“³ýéñQˆ&ñáB3†sß4³»¦xÂÔbPÅ>ŸÄdNÁ}8ÝÛ}d '°.¸ä5ÝœðСèa% Ã÷nZO:!ÄìQdG–QàÌD\Xº;)T Ä7QÍÕ¤>ÂF)5eÙc»¾¥à6Ç\£÷äCz¯ëS‹D)#BŠÅyx†ìHAÇÕ‘‚ kŠˆ­ûDN¸-^F­"qð.9B‰˜¢l`ÇT”ÁÀýŒ½!,d™ÜÌ%xCÛ™­6„Ùñ7@Ê™hÙM¾µÇ÷h漓.†×#Ý¡ü‚h·¦P:}Óš#§b3«a  #¸'øÑ®FE.cA)Oòq”5yùgû§)ˆ èj¡¸SÚ ]ÏÓ›#Æ&Âð¹(aHòúàd0É% ­óˆíxºG7ë›ÞCч{®L¦äP8r{-N©­~¹`uÏ_yJ¿ ¸ƒR°´ñ‚^ë=ZStœ¥‰CÂ~a,˜§Í óºÝÖx>ð}މ!ƒAãYì¹û°‘9BÖ>‘7=Ë8|ój .õ=Iˆ÷‚C€.4ËjœÀ’ÊUyØn°VÛŠ?¦·={Š…ûP½&Lïêóæ{ß4¢^c˜ØxïjB˜·zR»±ù¤N Án‰Ða¡§O”Tã$"o— ¼]±ý§ïíŠÁáõ«·ë—äíŠÏ€¿p¨`ý‚ '¨Mç¢zPÔ"â0íÞ¶~˜¥X\Ñ­Yù·Ó¹Û­¯(é > åt‘—'3 »²xlšY‹C)­hƤÿõ©ãà.‰&ôˆÚ.8jAW€¡ÏkvúW,Õ»[ ©ÀaÚÎ{5 lTÛÎxñ« n|ìç! lýO{ŠÕm‰ ä̲l`.Ñ«¡1¹LN‚“–.k¶Lú0£G íè7>$Òæ…”~l`á8Ð&†@›‘ ´ùr#6˜9ñ~ºÿüéÑÅàD^îã.b²ôÚjtèÍ¢zóþ}cŸ«çß¾éX.dl~ïÖ ÉÅhÕïÄ©=EøÇ ~Ǧì1ubß—:SOr°û¼Çf¼{œ®1 f¶ÝìÄ͈¢| 'û`œ(‰&FkñÎV;SÝŽjb´NzDÄH0õÐ<·äu Ókñ~ËaÇ r®ÜM¥|t-þiKNäÚCóv„‚¼œÓiÚPMŸ­Ø»ˆDÊLÀKf%ÄnE·¥Á= § Ó¦ÓÁÑ¢Q†w›và’ éœÏõìvð´-d·¯_wh­íWhÀï\A»6v¨Sò+8™håc¶‚âm-Z³•úož4ݪ怈:-0@xçÂú0>ùçü˜ºÜò&%qѨ)éÝ ëpDE\ª*mÒ|Å>›ƒ¼‚»®m¥RÕÞmÚì$¨QØ ÷áÙ”sDÆuîxê°dÛ; މy*Á2–§H³ó,L€]äU¢’^t«ûë­ˆ9l›ÝÞÇϵæà¼¸ ç'ý­›uà6îØ³™5`À•FQšº°fç|vòu-7£+•…ÒßÚI·ÓõCXZäølˆq„ÀŠX·Ln$Ãk{>íf(,@qÛ=I¢¶+uÖS8³.†ßÝêþ7:¿Ø)•gž¢æNXåÐai3jêT\c-L“UtQÒ‰p£Ô@ïå[†…”’,.T1 ¦Á9ƒD¹›îê¹dÇ8WX¿„¹¨IRÖðÏ÷ŽJömT€j{‚òšyŠvÕYW³%ÿ%÷HŸ¥P<8ĨË9¨kWÚ*$À‚zÂãöjiÉr<³ÿ'm֨܎j´¬EÞ:4¨nkÐ( égÍ@ê|C‘Æã $¸~¡·Zzë~xasÃCXPP2íA^äÖÝ›@¼ÑK‚zi˜dòÀE¤ClÇh7¹›.§XÊ­ ýÌîr‚âýå® vQTóbY_æ±VPA³ }!EWœ#ÿb€‹€† R•Ìî,ËåêçaâGÖ!À›+\oÌ›z(j•kòÀíöƒâ©¡¢g•ÁB–£¨ŸdýCgÕÛ¬ ‰°¼,è&¢%†ýû°ówn\¡eÖ¯ Z'X•~os¶|š“cTʪ9óöRꮌ'}ÏÓÐ `kÝpúN îO*`\hÅö6'fLQ@×ûåÀö ôSuÞH8›sa M¾¦Oæ„.sr6bÖ1ÝOË©ÔJ"ãaÂ]µFÓ†±¾Äù”@šŽ3×7®f\.ŽƒÜ‘äZ„b’p¬0"XVöÂëuå#Gëg˜y†6ë$q¦¾HL}?.° ÅY_ŠgGñ‚РkyÇdêU{pEU´’—0>³,õ@ĸ¦u švU,ØO:;—ÀD1c˜‰ Bp#Š_O³ŽtHÞ5o„žs÷Pæ‚õxîj¬ÒÁIRux èhòÑ¡È~{•â*|l¾ƒ¾%x§ðî"Á µôÝ^¤ºwQs8 Nè)Í© ä¹e_Å¥¡~àÏÂŽƒ#ý–íúš²¬(ï Û‘íÐNiϳeÔ qç´Ûl©ºoôvè<]_™ûñt·ÃÖ;#jq}÷§ÐÂ9TÏY¹%Rnßç2 N*eÏM‘öçœé*lÊó’…. «­ëJºéSrBæ.ìÅtCÍsJ×>MYècBØ“‘%UU¾$(œU.’]ÙÓ]MFÊÃb¢Üi„Öê91™Í~³"X!Ó-~}-\ #˜æZÂ}¿U¸*½¬Ð‚‚Ö 5t•êõíñMñ "˜£T³£kJ^{ÉK8ÌŸð¶ þbF`xɲqòãÑ#hܤÄ$4T†Xõ‰¢ÅT xkPkÜÓÁœq4‚wâùKc^ïºv-õá›*^Æe W5qÞ) ƒên·Ú]ÍúIc-VA»ö$Æb\Š i±.ù…ª»¿át¤ÐÎÉÌ1ƒ¿»20gfŽ|çÜ@æøt ³ôRV†™cd}ù0tQîT\x³ìþ3..pSìtÉ-¨¾ÎÂZ߀JÍáÓ"T†Ãk÷ni»§nØÒŠÑXàçß¹â®vºê˯½'oqå´$_*t‰ˆtçƒ ² BÛítúª¶D„*nݳm9óÑqO ›®ìïÛgUÅ—5'”0×ÃaD)\·Äh(.O HFÓ]P}´vVpØ9䈳]Q€EùîÀŠv\’$ç1» Sr„î Œ(GjˆÓjaÄù½®kR®ˆJPXoh½2¥‰¢îïÜÃ3Îj”%P݆é4 %Å…öñ»¸ÚVDwþ7[ý·š5éʪ¬©ø¡SŒ¥újØ%”Çò[Ê÷_¨l8±¼m+#ÂÆÃ g•Ûˆ¾êd LÒøn؈U+Z $Dà»+XÐ{Ï“ ,Àǹ4¼ñìç)Û,Dà5ÛÚÇ¢ 󿍭½W“ñ˜ù,)̚刣3uˆx(Ñ1N€FR„Ci8ÝrŸ Û_Mµª§s©BßqHÀµÄ\µDU§þÃx([.±ÿôý‡ ¸õþ’ü‡É+ý‡(æñ=¡ƒì•·j)\·ÚoP,mM>ˆI²Ïnï²–wåÍùíý{€ª!gÐ÷Á¯¡ê½Võ¡Ø`½í´±[·±*™gî,­»'ËL£+ÆÂdv*ÐKùUß¿P£Š¼ðæ)£ÔÅpý-±†?®}TK™xƧⱾàŒ\†= ÝR½Ì~tŠ9 ¡ç ç€]½$JŸª†déš‹ œC ÞÇ ~M3š:.Nxwx¸t9@dùÎ3à9…PB)Òg˜_©j‘-š=žDOÃ0Þe¼ML@íVcAfÜ‚˜8UzÚ1~¤©+;D*mÝOÄÇð4úÖiOßü$wE„•ˆƒ—òü…›¤ 7Iw ôP(‰ œAßl4#›¢¤hzðL>¥ÐŽÚˆS‚|’b¹Ýc‘h$ö¶–3^ãa½'W¶ªH, wÌ!¸u\ß¶·×œ¼cÜ= ¬°ízhõU÷ãÝÓòAkÆö2BÑöáZÇ:(Ì×}}ßpL€É JÃÞ|Fe̽ ®¼ßÀ<´¡]) ¯Ÿ?¡8•Îâ8nMñËÔëÓ÷Üuuh:ºçJ & Ô”‘gݘlj¯v!Ë)¤x¤,6ÆÕO(´â8gqã²½‰êµK2Q·í±¢iN’*8ò•\ÉŽš èôMŸ›£nëE¿ìr'ÁâK‚ÁZ>ëÊ´J¨Ä;'EO]ñ]*¨ìêQÏÈŤ¥áîœÑAó*Çxdu ÌäÞ'^É’´ÞU9ŠJpÀ½ ©Má&:é·TXg=w.³Û³%³Ÿà+Bcæ"Ïé§“)0qÅÝ)¦.Sc ¢½>©iºfRþÚÿ÷¶Š'·†éˤùC z.B’a¨â JºÚÝ*™ÛrFq$aù”BšIËhD iÜD¬sX³ž«´Œs-Ë`EvÆ”²cé1j>¼°t;­rbT(ý/M%“}µZQú: òU*¦DÇÒO><â â|µ^kõ­Kp×õtCCÉLŽ »­#Ûàš>{ku!àkˆ©ïT´hwZ‚¸&Ï?Ði.ÏÑŽÇAg»º›ÞuËŽAÊ‘Kwà£ÅRúí¡'÷ÀO8ïöµÀF¼û/'î½Þ™v›þ!{s(Є.¡Â±h8õJºAQ"Ò%³F<0Ë ¯@…0q„$ð 6Ç ½µË1#\ ð ¢‹©”¸G_n,/™LHž€ò3)…°öw‰A 昻€<4;‹í]CçÓ­âÿ«.æV4‡ØbU€v£IÑ Yé÷‰µZF8<Üãì¸ó$ò$TûRF‹Ê ^œ-¡‚—ÙX»"Ú÷:qH4æ¨×”“=…Ž >$1BÃÝIºåáV“äRTOºõlCAñ‡ö¶[B r1N@lÉ­!JEÅò&ÌByÜtSrí7àÇž’M+欎ƒP'È@ïHb_ÕOå^à"[ÍŒåb#Ø&£$E¨¸Ã-õ áYÝ©›Õ4ˆ½p.ñFyÏ=’'s\R¾¿jÇyóŽÉŒ±3Îoq‚)‚¾>ë’݉[‰YšSH˜£&xUrT ™8‚D+W-IϨ?B¶z7«Iä]>{/Äù°R7æCíÐw* §‚«RJ*EŽ'$ªÞSmXc…0a£P%v@ÿqR a5¥M“ÌlšUÉxHœæ5½Ûm¶wޱ‡væ39pÅ«|:Ó¥öé‘´t„à™Dƒ†þuž×”wïo@Ìùüßþôî›ß}ùÇßþÙÿð‡¯?ýÅ;}"ùkêjß??þ@ÈXª¦n÷{¦½8’¦Ý°Ÿºw[µ¡†z\‡‰»Oª4L«ÓBy.Çáa ­¥}{FC™üsJ’Ô€ˆÀîB\‰áJêháÕ‚£½'|Øú½À‚HàœZ-¡¬ŒkºGZ­gǹ,sJжÝͦ‘û=…b¯Ï,»ãtË=ƒ›‘‡‰æÁ€Hh_kÒþ‚Z^†©´’ .XEã`ŠI!É—3±°cdÑ”wW )š²»8¡ _ÇàÄ>"¼7ÊF&ž³ÜP¸f‹ê} }ŸCÿ*%#AçõnfdV0y×…B'AÓM0S  Ý*‚:ïÞþ5¸áÓ½¯Å0@I>à]GŠ"qpK”w2ú@;ô;ˆ·¸_3'6èÂtÛÖ ÐGQ8 ï`·ðÓvÎS"ƒµŸù g[åj¥غ•β"–•fôPÅçH‚#ò¡™D’ë¦6‡p6ýô(T¤ àë%CƒÔþÓ÷¤à4øÕcðKò¤¯Ä×#¢¹óq:’ÊzJ¨qöŒ^Hž·Ô¸Œ 势góR€zÛéz·‚ÄÂ9ñ˱S×:áÙÎä^’¦ù8¨hn|¤ì¼Û‘Fƒàvc—~2s°²¿ÝõOÛú¶6§<'ÀŸÎï<5Š2Æ-U“J†'ef…L¨³iaöÀÖ µ ¤wB?HQGgY0l—ªü ç™ÄùÁïøb–DÂïf>,,$µ¹÷XIΊã¥8kYn´Di'¬»(\8¡ûã€ò$7’1ŒØ$lrð Az϶C{¶^S°¶D Ôį0 â0 Ô`¥H°Æ±S)ˆP0;0`j#Íû«Oؤ[E‘§û|éŽHäB…[¦’¡`ìCy°×q:”f€ z»õêU±.õÀ£¦ãÖ5¯<$:`…¸Š,*¨NE{c7͈žžåÀA^k]‰²þïÙÔ®.'Äcø˜_fgª~ǵŒU¸ eŽè9bP¦­@Ñú* ÷˜.p0ݶµø™¦2V-ÒIx+T9ƒko‰ÁR>— óÚcÃux¿åÀ99€!:Éûq¢e¿yD¨~0´LTk¢áõ,ýPÞÀdôdsïzª9{猯€'ÚrY€fÑÛ»ÌÇq Q‘ j14€Z €3ëi\~£x ¨µÓ-ž t~¹1ÂöêÁþl¤.‹*ô}’_ŠÎÞhؾjl¢’R®‡äø¨§r®¿`·‚åî$µÆ»Ëei~¨#ãz·¾!y9MÑÆËn71È3Yyö,0ÜF!¹Û×פ% ‹›wsŠÔrç»)¾ð·?Ý«›íÇöèg é€SÜ:&¢ äÒ¡ëÑéNH§tJqáKJ,*ΛÞÙÊÛH)°^ÜA/õ’Jª L§þ ëªF-—];T$(BRÒ‰+žÄ’#ÍÁxƒ£|ÕPŸ–àœýPb*S¿q<†Ñ€ –¸ÆQ&Î9w‚c%>Ífš½`7öžQ`#šxƒ“‘ú,U QŒ¹aæà¶ ‹Mu,¾5”Tbwë÷ú«”M"BÛ€ÇÍ^œ± £²7©âX€ÏgÀLŸK©é_‹…” Æ(¦¥¡b%1i¸"¥‰óŒ£ÈcLû‚&„rA·çÊÔ­-“¨e #o´ˆ+eP6T*l[÷úÿ •-¼æ˜y0[“Ì×­×xø<Й‡?˜RêíZ<{¯Ì炨ãc÷ÓdÒ V•ÜjÆU\(1ÙŠAêiK­Ÿ‘¯õ“ö²‰1t O°;ÉV  :ÞRª³éãtƺӌìhuk¥Eö/¤â}Åê#ð¡ó<ò¾CΪ=x±ZNè´§Þ,·«!ªžû@QõIež©¨àÔŸ£žRD$ZÒVí};ɹƒý-kí}¢pƒ!÷G`*O‡LåP®o*ÏÀZþ«©ü—d*Ï^\š1Fª„1šÅ»ÄЧÕ>Ô†“sBðo·ë[½ëÉ:ød‹ WQB™E¡ú´\sosÓï$ µÅ'—Ћ–f|œ„Ö›g‘»{ÁS˜Ò÷öú÷/«hï=P1qh>~TÐ)٘أ ð‘ö!ŸËRmàÄJ ¤%‘øÝp„" ŒÈÖ /²—,BdÔþÚÞ^Eð›|ú¬¢ëÈÍè× `: 0TŽÍK›ÊÜ_óÀˆÄhÍ÷rÛ³­FCÁõ8_¼pví€Ý Í|“Z™¯“fHæoÒŠ³°xÞM‡çMÕgOuz”[½vzµ"ûrçŽ/‚ãØäöR&†€oXÀ—¤ C©öפµ>Í8íPÀ–(è¾¢x/Žs,Aú# f …„je°“ÕtG£‘íåp¬}Á¤…35¼W¹Š AE‘÷*ÎŽ0OÑ/F.ºÃb$.#q¨ûWíkÏýV tÄ¢ƒÝK¬Ü€¡ [y5®CõCáŒBP¾èÉA‘î\»d_¯²hŠRî/Z?äGº6';;3†A¬çhë;Î` ØvË@RÖÏ¥Ž§U«ä×¹/š{O K°“G¬ãÜ×àí {.ãÃþ1Œ½7Q5ð±*m¸ÂÈdb²ÑäÆë¼Úù |&QÓοès_(•Ë.wã9>†0?ÚþýäË#‰]Y‡xâ¢`MÊ«ÊF%¤á bš¦9ú:9t†ëú¯Lœ¤NpÇ+]YÓT1¶N{èzÞ¤°²=G}‡N‡„µ´"®ÉöÁ±ódað÷ØßZ¨ÑÏ ¦yϨ¦G:‚–Ř-vHlv7:Âă©ÑÅ‹^Æ›ìŸU:†“ë†r£m¶-xÒÁå¼&$ÖêŽgM¶qXœöÌFꊓ½¾Aí"±ó ª«PQ÷©Êi)‚Å¥1[qPî=·"îk&¨D˜y/r‚;„á:°<•T¡éV?vèì(G\\P ÔxÓaå,ã¡U6¼³ÁM ?à~¦htŒˆÃE¦™c q¹KïÃòçî/˜³ ?.6P­Y\{äÍöÕ ø¨Ù9š«Sh†ŠK×´uHŠATùq­j3 \Q ´ÍO$<Ã0öyàYK1é}I­6¡&Zã«'z?Ï*,æ~^±8s+F7れÂ.YÒÕÒù«w<ßa¶–ñ÷̵ßÅꢩýEÓÑEÃõ\ßausÊw²Ç¢Ñ{\²q^È{ïš_SÆA®¢w#cá Ð0;pP¿¸è„¤`·ò&Řs‡¢>°âsp̰WŒ=?¸“䡎þ"†l.‚ÂdR‚ Ejî⢤Zš€7ʽ”˜ŸÕXRÏÝ/Ž‹Þì–PûÐÏdº´ ºø°DÁuT—„×AÕªø:h%ªªYÎÕu@,®³ò›Ý¨y¥¼&•‘Т!Ö×õS Ñã½÷å5Ó €Êø íë» ŸðkÎתÇNÀühð&rw,ˆƒR~íú@Fs2Âw+aÃEJöQèªRJ`Bã^“ë—6RãŠÿ1±`Œ>~\ $a…& ”ѱ1µ”°èǤþ2rÑ=¡ÿð.ºÑä¼:÷tM£•…ОÛߟ͞U”à¹LP›N;ÑÍC¸=tùdyfõu[{9«ú§)dÈ»þз¸óñW˜ j|%œž3Ù3,©äÒEå2ÚâíGîÆß§êã9hGöAsôcV©ånª*T}¿)O‚w˘&±ý˜å£Ô^ë£øï$‚¿Ró?ŠU°'ö<ᾂGð ¬ÚâÚ0ØF é£2qÀßS{e”µÙ¹ßG\‹¥ÿhukÙ‘í!¤–{e¨õÔZ?­î¬|SÞF§ÉEÜDQ4úqôåj]• l…%ÄÀ 8´=㿵§îg»«â 0^ø÷áç–¾1üUTMJûÝY^‚ô«¬äоúU}ü÷ýªÜ£ÊϣߩW΢_üý`ÌŠ~±¥ßé!!!ƒ×Æo-"¦A‡"5žøÓ *ª“{?öè ÌéW΢AršÔ§Aâh¨]ÞÁÝ‹þ]Ø@¸#„eìü‚(‘Mòø% ý~ìÑÁÝpú•³(‘ž¤w”0H‰ÔQâ+OÐVøóä/òíן_mÆh»Š'ö¤Üü«ý*ë|lÿøÙ~þsúàêÿrƒçË~)‡(‹ŠIH6ø‚É¥Ù²ÿû±G‡Évò•³È–&›m58DÙÙ¢³Èfõ–?g–nCd‹³8$|ñ=í¦8.O;ú]}<ƒl'_9‹lù)²ñ˜Ùò!²Å§ÉfüvËÍÒ*$›ý·áÝ–D““dÃß=:L¶ðód+Nï6êÀ“­"[rœl&<¥ÇÈf%jM6ƒ_Ùªä4ÙªÄÑ JÎ#›¼b^9‹lå d«BI¡"[JdûÓgßk²ÚnY[}l?ýl>Èûw?4ã?Јý¡[iÎ~´$Eá+Ë&¡ð€_0IÓ"?IRüèsøè0IÝ+C­ŸEÒê4I©OÒÊ _Š¤Ù I)ýÅmÑ—IJ»4³j_°Ká &)@ž")þ~ìÑa’ºWÌÀ+çɳ“Ó4¥n¢tÂíäªLöi>DT3LÕøŒ}š!Q¯‰'dþ/þfµì`ø‚¯ ¼ð!D;ÍÄ©ùÓÆA£I÷f_±‘JR§Lbôû±G pú•³Hpš“sÞ$vÄ8ÈÖeØ LHêB!|Á„ˆ²“·9ý~ìÑaBØçÌÑWÎ"ÄiÛ Éo†³lƒŠmF.¦Nœ…–Sü‚©'ñ);:ü.ÔÁgPçä+gQç´ Æüz`Ÿ8ÄA >* |ÁÄI¢ìäÖÁßé8>:L÷ÊPëg'?Mê 4ô™— }C;ÇDiœ„Ä/„8Uyš8UéfZ•æ,â¯|qŠˆS•§Íyæ´9ïÐæZóhKAq­€jðS--O^åô;m©ÃG‡©æ^jý,ª¶æq¡5ϼlÍKÕò‰¶‘öã­ QVö.sø‚é–å'osø]Xòá£ÃtÃ玽rÝN ŠÜÑͰÉnô²ÉîÝŠ¿8ëh`=Žò"4uâL·<-N¹xè÷cÓíä+牧írЬù»Ü!åŒ'ÝåŠ, )_|o¸€ðI‹&ý>:òè0åÂẆPî´äÍ=|€‰mâMïá®ë;ÈœE3w–7ûƒ7¼GeÒ“6à ÞetÒlI¿÷;|t˜¦î•¡ÖÏ£éiÁœ{è™WÌQó í¬*î‰ðגּ:-Vàï£#¡BðÊí¬dsêá3 S!—½P¥¥6³àßÊ΂:² A©60†¾HÉÖòÕú*ò‘Ä¢B®!òpjeƒé†êì3_ïB2‰Í–Ód!¸:0…$\-Ž ÈêäÞ¹ ʤ½›A0ûbè½'»µ³H!¸|AÙÁ”]æë XYTÌÏŒ°j­î¨²æpn †œ¯½±†`Gíú§£¦v2HD%tw€ª:¾ÍáwÞ³ôñ ËÎéwNÕ¿sÅïNosôÔj¢ñè§Ñ—cx>аÉ|<_Õ»…~þ4]ºÚwq^Ú™ FXSûÐÓõpaxʘۧ@‰s{¾8¼d*ÔRì¸(9„ú¹Š3 ÍóÀ©½Ö`L.·Ñ7F€¾ø£à‚ ØKÎvL°Ã¬Ja’Úl¾“®ÝŒašŒÇ„I'œ}ç0*Ý z†Žÿ- Ô<0’Žß­ ¬ Áºê^òš‘qò0* ÖÔQËq˜Ó†ˆæ†b‹±bSÇ…ê*Lå\ §²ÞÌ6Œ´kªé ˜à¼rqËöý—`2’ܸ Ôã9q\”³°Gn…pa}ç³–$÷Ò@øêF²˜ê @Éœö!(!诤}\ÅeP¡ä°`d[ñt¢S ¶ÆcS@9€´`µÐëÜX0´Ò…ñÙf͈5ɤDø©µ£’QÀæs÷Ô-ç>ñP¯ hðtDe]#šl'¡Ï¾2ÔÎãmñ^x´L¿Þ}ÌJQÌÖ–Éú!ĤL…ÖŽBhdU® ¦àã >:sòU–èeDƱdQð‚~5]Ÿïʯ‚Ù“\®€:#½¯›„æ}ªk:ruM®K&¡Ê&v5™ª7ÇQj8»„± …2U-«ŽR5ËÕl,›{\â}%5ÒBªVs[–#…Lï»Ç%Ñþ)k ƺØ5€8v’©ÍlaÊ©sׂ¤8¥Ê[ÌMÄõv8ë´âúÞT˜ˆê‡G(O %òkà©‚–8Õ¡²jÍó)¿¢S¬èãâéwÎ-›¼PG·b:⊰ W„.µÅ!¹aâ€õìÚ «Xqœ;T/‚tXÆ?Š8½ÃŠq=‰Qïõ²³­Q¾ëîGÎO[¨Š áÕ‚tÒÓ[ĆÎᢇvM©R4Z×Hƒ¨ù ’“Dpw0„~çÓ‚Ôé`_L…XoæËÍLC¨-\”=#¯Zñ`}M%Q«¾ó¥8%°¹å a H¹âäJhü!ÈepEœ}OP,Ç}+ƒnΡ šÍꫬ¶¹È<4‚*ÅpS†PérW\kÇS‡¨ˆ:UÐ~ °€ZRìý¨†Ê„8r‡RzršÇŒÎC‡»V2ªÁ¥³\1˜áx÷¦Y_ü3¯à‚ïJCÉ>‹qÄ[cºë¾!Ö£Ÿù@²/»£U¢/VÚö5#7ô —ko˜{¾[Ï–OsXŒ”2 JS·Òh}÷Ô:lÀúÚ»—e7×f '³¿ƒõòõöl`Ë.±ø7bb5ÞÖW¥U*Å•çƒÕo×ùÍJ z׿€þö[—&¤âw ®ë-&­•56ŠZ,›"æâ?ÿ×Z2¤)'†ÎóÁQíL°§››Ö…Ï|!N.g,¸´´„ËM€2íÚ#'àú‚ >§ÆÓЙÃôæÕ›É«ï¸J?IàtÅ 3FpH¸kÝþT[YŒà‡©¡)ˆÇkMåw©HÖpðìÕÔ×”÷9µ7Pq Î8: š °„EГÂ÷M–ä®LÝ +ÊÛe·¢ûƒOÑ€ŒïíÒlï6èÐÈa:M öH :4/®.Y}n+¢”Ä©©\ìž«<Pì´$9%×Q‰ Î””ÓÇæNuíW’bJÙá¾ ¨É2„FÄc*X_s©Ž·°l©Qepª’ŒÏU)ð;í6¬cœE¶öŸ~d[Ám¿F¶ý’"ÛŠ3¡–&ÅÉøµ‰„Ç>xDÊœG›>_ÆŒO˘ØG™x 3¶¦eYŸ!'0øˆT“1­™P„téʆŠå qjÖðí­[êóì°PÀµO¸„;ÏŠ™$æ¸û‘ †F¹ý½Cä)ÕPðÖµ˜h¼ vÃÕtŽ´F4KÎ¥WÀòNA"`VÍfRi†åbƒÖ ;ÆÌQ×e_Áß?mך µX “YÙ!5‹›¾;*ó8Tbïñ[²z¼ótDîÀ¦É2!Ìy×Gà²6€Ø»Á|èÚÕhl,cPYã;ÊîÇH€nÀtçõž­ßì–^!„ôª¢ Æìõc„r…êÝzÎÁL"„zW‰k/©:Î2¦OMƒad§„ŠùîQ5ø 1ê]k[ ûGHj‚VqhÛÙáÐaK=X®'6Pü ¡8¸c™ê¤épžrPCp`¬‹ÀsAk!EïîF×R à¬4è+Öö@¬°'Ä…” ¹… KúÔzÈ ©oÄGÊ Ðˆõ'#44ëCŠñê%%VlÎ&ÎxĉCpI*´¶V¤åq5ÎNj„”íÖãÇ›ˆ°,/DtÅ¡éì5ò4…zL.9i®Ú¼/g§àû}};šç+7S!B*ªªpf„÷Œ8uë"ãCc ì¡FôÖn¹¿¾Êb§0§0C¯3K‰ö!<£¯Š„Néã¶ÙZÍCѽ\q˜ÿûñû÷ïepï¯ÔðbèÒ;hÞ“Ê@5~5wý=ü <²<Ø}öagNía_S?ñÏyئhU]4S¸ž ¡£ÙôØK›šg)‘S"_¯áb.ìED'ªL+q^ÝC-½9¡œ÷d(*оöÁ,òRë”Lñ”Ríòù˜·»³oöGf$ƒ·•r‘Êþ á¦Ê!KàDß”öG­)Qzv{ìêhœ¥MD_)C>R_œ’ªe`k G}u_ˆ_Ì„ˆËŻݵ»ë˜“ê]PÄÆÔäöïmí,¶Àa ‡hÓmèŸ<2Uª•<8ü°”|;,9wio‘CÙˆ{såù´¼1)†<Ÿ4Û÷|–àüüÕóùKò|–ÿ£=ŸÉ+=Ÿ y>ÿ0}xÁï q«þ­‚¥þðÖpü™žS0Wp˜wéwlõ¸JA Á5°&H¼z­”£Qá·aøzZ¼YÞS:Ì.0h*ôÊ*K‹ªnrCµúQ--C“ @®ž—€½³TEØ`¤—*0шLX}•œTcÍk‰iíÕ ™¡à^C-õwS#aÅªŽª» C]§^ŸII/ =P¾ÂÊ)†ÊüP•Ÿ:ŒÙÅ›g¡k«Ôh b×ìW-¯|Ó X,ïE‹#©£Ë@Ý‹Ê á|m~"RŒáT(‘³Û·¦?·k,™(é=Êw*îuèKÀÑÉÑÖ Ÿ†#N1”À”ˆºðB7˜TÅXôÄ)ïÒ—âØ™ R\T†uL>ö!³˜ÉÔ‹ín1-D¤‡áêòÁbófoÂRhÁèЂá­Y!rʹÊK"㨅V» Ìv(¤L·U/Eë- ¼¡yÂloPOë©EÉDÌoS©R-9 †ª<šL½‹êÛŸ¯V ªÕ²ñe5Im6Û^¬£n… Yq"xï7š%l4{?–ÚÆð&ÑŠ¬l€@ùë©óÞZRFˆ"ÃøÝ pÞ'ÉUµ”û jí*B% ² "ã×u=ßI]•FûÆÉÙ*[ãŒ7äPÃÍá|‰Ú%Õ¸šI Ø ©[e5LŒ½XS L_UK‡y10.õÁhgR¥6Äãæå|ƒ­Ê„©î!6@E¡³iVzvNy›e_”ÄËÿ^VTÑÂR&\W §DljîÆ\ôŽúb÷áÙZ ÀqWïö>Z¦gy1N»‰ü-ÀËß ’@9d5eŃk’9Ã]T--|£ƒƒlÛfÊÏ\ÒæPU`;ßÓáGg9\µª‰zÇ€³*×§’¥ K›ž±%Vô¨å¶ߘ×8˜Ø—ºÀHì TÐa 9ûÈ UÀÑï†Nw;_ n¨‡wš™Ð0@¹H‰³Üš5£¤Óbaß«+Óó†é©QY×ïÕ$ÒqXw…æÑÀÅae‚Šó0Ï5YåÏ+˜™cayïß«L‡÷8tó†=üïñËÁž/™lÙ!ï]ÞN0äx> H(l„Ä”¤)™7¨Ì;«mHDÊ¡,Ä"F–˱PY€ï%²ÍÝ‹CkëJ¯}Ð=ÕÞëX¬-\ µU²Ð%»:Jí±9ñeúïc´½à2ÌPP'G^#pÑýp%þZÊXí9?¦3YV4X jŠy$X° ¼ÖÝÄd†÷I”mÈ ùºýájG,Žé_Ð$Å›\=â™$¹¦\ÈÞþðGã„ÊU{·§3$̨åQôp¼'^}lœ$\,8O£qÎCID`Ï0S%J éÛ/´+ÑøÓçmâr~ZæG<’·¦ÒáØŒ5HQ(PÐY{ ûüÐÊy{•OFÎïr¿!ê:¬j†Ò€Ü2ÊDÏþ½NX ÛÖC×°«lµöÖw4Ìqyü]Ƕ5'¢ѦE&{Ó³Ùƒ®¤"¦ŒI;†Y`“Lig«_x“„É=Î`(“×ö0`QóŸþçT+çF¹…Ç^b¦™ÄGö«÷)ÍÝ3w¦CD jú¹Õ¢‹®1¤ ª‘XG¸æÙ2ô>rWøJè´0«o7ÛvøôœlwÞaD‚*¶öcPT±.åqÞ_óŒ’6ÆewTÛ©ÛÔ³:ɦ|ý»À—BiRmÏ ™’=/àe½—j<ìäýŠ“Ò±‚¤KþD í|Pþ AÑ"u¢ÅAœK/G˜d2v)£7èý2ö%aƒ[W³=ÀŽÀÈ- Û– Š–Þ¸Ú_,IzRíêÞû‘©Hâá”дNEÖ{ yV\qÙ D4ªTò @ŸöRzi½§v›à¬“?™9Ms80PÐÂa¼…Bà8†áоU­öN¨gѶV‚i¢ ë3 T®w¤ÿ ›‡|Ír”çÚB—覜55|Y}[7èÎèßÖC—õ=]Ö5^Öæä%ø@—5úÍœwê¦õ‚]ÿJzôVõC‘¡$*‰Jˆ2/^è Moá.ôV]è.ìß_è:ÉøÔ¤À§nørwEàÔd¢Bì‹`>ähcO4ßþ’»ÛÀ?XKèSÈO¼{ÐB«g¢— yÍ„NŠ Z PëžçÙmÒ&t’AÐèÈ;p%ƒÖ´'ÔÊ$ƒEs˜$¹rù,N½\ãx"îé#¥V,)ñjÍ“Ç@ÅÈÐo½š"v¯]SôævóÔ.Ke1Eœ“=ö‡|k±Þø¢ÇÄO=þÉÂáŸøh·ßAÊOýõfî‚ùfÎ\xÍ ¶&’šñ‚‹Ò’zÓ «7î‚ÂIt"á8ã2ޏ6©.C¯muœ ŒÛ ú^Š|v;ñ…zEÃ*@%áSØuÔ¹µÃåÀˆAÅü•d ¼Ó>Ö4”.ñ>ûïe¶sw;YœšgÑ¿«wPSyF%z9Ì¡c‘o:¿afEs «å QkTí ß eäK^>Ø^|$Mý@63vÜ¡ü®òê9{ªû>Nga'w+¡Ùä*J1 Í´ü=Çóº˜ë8à >~0¦äs¸ ©†9Ä¿ÐJ•ÿ:þv¶ÙÏdò¤u½‘jäs"ï=‘wŒ ó'ÈžÈ*(/8>Oñh¼"ÊÄYàJ¾òbˆÏ zçÄ*äK "ïe¦–CþÙÊþÓ÷ÏVà¢ýÕ?ûKòÏVÿ£ý³é+ý³éPfj³ ܦö¯^è:T”®2;pôPæxyì3â™Ç0ê–D:0 rÙ"¬‡!÷ëwäÙÁQ¬ `‘£SݧªN72‹qŠkõräöo×vÞ®8rºÊEû¸Ü8Œ¥ÈÝ­‘zÂ*öëî2rL,ÎõUs2ªUÛ¬ú œã)]nrÖbQ%"Jtè¨%ô‰tшOVçÎì0ÓÂôy=]uRXËÊÑ®kï©ô:ÁýB®mw?ÈE‚žB}ñ°††Pàðùc¹ìvTxMß_Ù ÛmžÖ¸íYŒÐE(êß‹?ÕÊNo†¹Öà9eù[:AWQdÅ5ò¿mxÀàˆÛ˜ß–WQ\¤öè°f,3#ÿÀT>‡ØÆŸm–›íèϰÁ¿|ô»ÑG_}ô)êr£?Oð;úë½Ïž¿™Ú+ó£oŸîöϵùè÷Ýúá0,äßÝ~:úèÝ×_‡Ì F"3±ëøãȧoà¢t=»§I”f×ïwäé¢5=P>/.;]ÁëìŒ Ø8 @Ÿšc‚ŒW-)1QP]d÷aˆª=xüC &ƒ2P)l¿Çm·á$ÒÖ3ŸáxO—k‚Ôï:ˆ,yh269êXgõ²ûO‰9(cëdâ<4 ¤6úl¹Øüµ/N®£Q„A?¹†ûƒOZ”$¯†2(bE~X¾ t߇àøÃ)—­ð£Ôñ#KO+®¬¦.q'ˆh@†”úȨO°ë­ì|ÈØ„9Ý}¿{K6 tÓ(?}" ‹2:¯Qf®s,¥ ¸†üI~ ¿1<†ös’‚ýæ¦[_>0´O©ŒXÉëdeäMà°æóF^Rïv¢$׿ X˜CX;eý׿iÌ‘æP»¥ëx Z’½¥öœ]“/B4DTÕå:z”ïZ4¯cA•!^*ˆý‘`l‹Qɨ{-+E¢¨Unù{2=Ú…9{ƒ†KA‚$à&\­gk ¹;B¬rGö`ÞA´œ dÆ3LgÏvdw±K©Hu?cö´ÝŠVkz¹ÃäîÔ{™I'ŽBKÙ¹Äñ.D#ä ‘ƒ:2y7äÃïÏÌgL`A 10°?“Ä ¼¦7¥ðÝ:³Ì9b€àn͵ ØZ½ÂlpoTB`cÈ,€V¡L÷€•±ž³ºnW)©K¥œö&…ê|ÅZÕ¸Z+¶"¨µjd­Ä,­Öª>vJ)»@§› ™÷GV{rwc…¶¬ ¡ûvèCßZqQZ |ÜR . ÜßêíÆƒféE3ØIÙqŽÎ¼¶GŽ@z%RöÚEü7>ÜʆEdÖk×ÚÅsw#2~â ¯ÁœWš‰Jc•$ì~jA»ƒsÐñ(AÀÎL¸”aƒk¡’v[Jè0ŒO0[×F½Rêõrº%7. dÕ‚ i…[/3èWèâØ£y¹›‰d|Ïñ|‘y§þÉŠäÕ@·%^Mk€Æ-˜kª!§¬Ç!”u’p†ö— †^#òA¢-¦¨´£VK!ç hì¨éœgêúª’\‚øÍ*qŽѧ °ÅWfMÙ»1[¶Y_‡9ÔKŸE&t ÃÅæð°Ão µÿP˰Œ†šáx*üU{üxŽ5àä;gÁƒŸ.ÌÄD“Ü0Á*[ $EîÛ‰dÉLã³»åL‹v€›çèúü‹?}öéïÿ×ï¿x÷¥àzÌa¸÷Ì0Áª&ÑSâë–þœÌZr Þ]E•¹ë9ì¦"C½ÁØì³‡Jê*ä·„ ƒÁ”0¾ÀY çO:]ôBMS¨."a×QŠÄîtlG×+aÑøðÌ'޳W‚îæ³ìÞÿ4Ó-쨉mÝ—øÕ"‡à$wèRz'”³ Á޳Ádj™ ¼zö´wÁGoé#¢!7¢!ûìQ€ÈKaP"`FÜ—XVâÏõøëaw.–qG±ãK/F € 𙦭RF(ý•¼‚Q†HèÌtX‹ro‘ùñh¬#…O›ÃhdQQaþÂHnÅ'Xž‚8‡ß¥0~<ãR?ýιFþôˆsùtd™[ùSA8‡kújEL9Чþ =¦ä‚ƒ~Õ&‚r®Óf:e]F¯/øÖ—ï]0nò©Mr¶p½þ[ÅÁLŠqœ|pïîR¦š±¤¼S 6xWÛéV•W¸ãPóñ?Å|ɵêXŠ ÛWµ/”ÒK‰ghÏ9˜ã:ghÂù#°—ßl8cÁ¥X 2ÕÙfù´Â46´Š¨œfŸ©~ÆÍ m20Y©|5RèÂCÙ²žªá,Âá4†•ªÙì‰*°yOzòyA:Œ„?PüÙº ±ÀwZ øN¡°å¤ç;MAùÕwúKò¦“3}§XåÓì1dRÛ+k},wO+Înÿ Ç#·€m}ŒK‚ÀíÌÛÁÂ4F!“¾x¬&„Îk¤ (ö 9­òù!À7â<ºGçÇ£` ÈŽôßÊ«<ØèÞ´æ,æÉ,´@»ÀW•—R/fœ¡mtL;\H²ä]fCΩ×G‡'(Û®ß-x±vW)¥ÔãmËH±tIZ–s{U `m{5 …• <ÇYˆ©Ü«0„–¢T·nÓ¢Ž#HÐZ‚jAëM ÒÅÇ-Zò5Ú—@ÝëãªÙúC|"ztbPÓ7ŽLA/Ðý“c1M†T-†¬oÛ[.@РwÉaf‹oÈ©¯ž{v1† ø_N¶cöWpå¹Ü…䱿óœL¥¥‘ ë%˜'½åƳN<½ÊØ®Ý,§-[Óšž) ýG¾> Þa(¼Ó2q¼vYÁT惪¶9þìÏ&<{Klÿ-ðÄZ§Üp˜4§¨ÁîAÒ£Í(OFšë½š$ÎW{¼#mSŸJ$‹Ë¨‡ušJk×CÿÀ færT¹"±L¢o v›o0_§ÞÛ{ÜŽâJ|ïî™ÁB6¤>0bÆ59 ¦VÉn ñùÐñøªN*%o,”ê E̤¬jË}“²Òìk¯^aôys(_ù[Á; )Ø ãsSi°Krr1éØ3G’Ew,åÝÛŽotVBŠˆsëððÄ><üpI{¢6a<âáa'Ö½3I§1Õ³hÃy‚Z“¤Ááv NÏAܾ:<¦=8=¤<“ÝXÚVŸ¤‰¹Óg(•j9¤=„aB¡ù }šn ¤&“ËÅC:ï|˜‹Œ¬ 7@ ©v"2Ô x†¥&kïò™©Ò­lëîúa÷R£¯½^8‰I³nHo.$<Û!œëH»ºP¾¬ ÇYÎiò²¹zA1NÄÜÇÛò ¦Ä„)_Óü½ð\\–¿ex-‡ûâêTô!;YËj ó–Ô ÉKUaAi™VXóp³„5çÓF&d¿uýˆÿ)Z+ý>ã^Ó0­úG§>Š Ü„5oB6)c±Ü//bÒ†µf˨ì9ñü_ï¶F‰mC‰Æ¤Æh7J:r£DöŸ¾%Oʯn”_’%úŸ”‚ÆVê°¦½Ä³ý¸¼ŠðüÆr×½å®s ¸BÌ_²Øý€Ð,?\-!´å¸õ’etL¼t¨)…N˜N9êsçsÏÏtÓãŒÈ»ò6:ygµëR¡µþq OcÜÝøÝ|îÄèU½_ L*ãFÖ®xÈ&Ì^­ øÞÀ߈ÀNØŸ‰ŠÏÃ´Ž¿º$ð¥„KCŒ«e>lúLÅ·ºví±A¥ò<†”Z kÖÖšð*CpRCV®éœ,5eÆ•–”óbO8_KÌï>tËðŒ-_ƒrkkBsjË̪da’]Q6„kÊ.€0wDŽà<´˜†±º•,°òÔ6Áß§êãéb^~ç<ïŽ]ÿâ9¸€©@ÿ½þÿÀë‡ArýDI¹­°­Å†ñ®.¦yIˆy1ËŠP0ØNªÿøE aEgfçÀ; ²úcªÕ—p>úò~ü>Ž&˜ôÃx¸ñÑ~¨ƒR^ØiCèõ§8 ©þ$¸ôÚç?a§E™ÝQÄ=pã».Øx =%owXÕVw%Ú\}Jûêöø5R¢Òçj@×W™U—ð ~&0_4Êܱ€Ì Œ<]EYeLÆÈbÂ5Úî\W8´r®‚`*ì¸$7ÙÚ•sÔª¬>…?[ʧ£Fq5úFrõh"H¥Áß¾·,Ú~½½»ýólñMãx’§1š†Ý1W±;XDLœ8XD²yìî A@%\ RcÔvŽtj{p£«Øõ·Õ«'I%«˜ú:<¾äÛŽäS+Òó1ã•yˆf ÑŽ½ÅÂ1 QÞQÂÙ|„}~?ÂîÁÖ=KLsQ%dþþž–n=?\£°€ˆ]Î9?í½¬@Ëk:`ìÃæÀÃŽºl»œ=¹zWAºŸÝ^<À¦5šš/6Ì 8OhïßÕjêÐþ€;ˆ=ÁØ“OÖUÌ‘±!Þ¶p‚cjoK òmÆþp‘‚wÒ†mÆ‚ë’V®=X§ÏMˇ=c´˜TP€6)‘™³H³=f’Þƒ<\²µ ó ‘axϸýáRšó¶i¹hˆöMHº¡‰Ga2Ê«Ýs¢V\e¥´¸® ²~ÇDÆËðtPåb!–Ç¢Üqœ¿ÌËÕ…ÚÖíÓrº¥ÔoÊ%Cƒ­†Ä®Âx{b\r-Á´´S9‹§» wtY³9)i¬ÖÄìäBÔèĆÁN·Ê0Üöwà\wA‚x+ø´¢ËÅ®?­bŠÀŠäO~æÃÜ÷zùh5@ð«­]Éš9é¬zcYvÁýÜ3$8Ÿ'ÐîôMv+øf“S)qø;ëØøñµüä;çk[§c鸗²4NÙŠEÙ]*‰\Š k[iIwþ߯¿¯÷T÷!’-{ZÕâJ%³ùæI2Ÿ‚Zþ8NÑ¡õcp“jé×U&EËäÿ—ï §m°ƒÙ,‚^`ÁV÷× ßäS~¾:‰CñH5hw§N=Ÿ’æGÄJ†ÏOŠÜŠQe×sC+Ãm¹Ú&n´» íg-¹AVü…[‰GºÜšGñ$¢çYœV åÒüf`¥áÛ"«Â7žî 'Ú ³GήH«”Pkë°ª 3NYÔ†‰‹ªó@Ár’ûQüÆÅ[šÂc@S¸’€²Zó± Q§ê]ÝÏ^¬&Ã=Q ,OTãž–ìsÀ×_ìoÛLg.Ð8Aç»`ëoARKƒc4dìí?}c öþ_ý¿$cüÊœ ¥% q$ÈÖGIoó—káÀÙP†e)`ò†N¨ù†"³Y,úÅ…A4"Ï4A¨ùì ÐqbЃܡhCÆgÜÏ„I<‡Ð’ø)öŽ`·—³XØ~àÆäÃGÏÁC`uXôL“PL@ÖL<ˆ+ñ´fVÉV »%MµÏ «Á¼”aÚAUŽ‘KÒë¥õ9Õ?5îžÄ+èðYÖ•†Ý`±À8Sª%6Zpd¹·ÇZ)M¬£²ÈÌqS_*UâŽ[‡Ü­÷‚õèø×d³¤ù€gJ ‚WuƒØ€7áµqX.M-í/úíÛ{ *ŽŒ1(×e“9cÄj0ݺVÕ*GÚ#¶†C‘—,f íàbj\Á[`}a÷SXN¶ÌwºÚ³—‚ž(¡²&t;>p‘o+„ï]@·ñÝ…RYŽýý{šÅóšæð÷|®¾â’p„±¶a5c:ç¤xléíšÜØj9ÑÊ›bD…P¬£©Ð}_ޏd^`ðyãyÉw¼4YU_zu h±¦‚qnßÂÏ$€ùxõ1w1¢•ê¡þ`¸³9å ÕŸ,C ÜS2ò( p½Çî½g¢î¡ùÃo8û€¬KµÊkÓ>|—*Õ'å–ìøä-?IX~:uh ^h«°²=:½6ËÁLo;3}©,q™Ô½7ψöOk6%‚U˜>¡LŽZ{0~I©´ºÏãŠXºh7ÖÞ2„`÷ áïSõñ îô;çët'ËRîÅÊ•N§KH§û¼žYßËòy•v7ž»êƒ?ª&¤ù! Ž7Kÿ¨/C¬òP:Ná›_3hO ‚m˜ÇŃz] ‹†Ã˜H UMÛøK!æÃ;‘êúr*³Û5_u/Y…5‚Š\Ë87BåC 9®=Å{š¿8 ݯÎ>Öô"\A!sŽC •XAkRç¹Áø¼ä)™”vû@gäã a‰k!³>4ñ=íÀÜnϾ>Jß²­IÚÁ'þÒ-£Õß‘„!³>µ¢ L¢q´ì’ ðŸ€ÝÌ=ÌR\`ê#fá3,ÕÂ^x QCöåÝ)²ú>Í®<;ÖeÔ¼£»9W5¥Ôœm%qJA¤¬õ·4i.„É­‹o…?ÀSóïžk S<…>iæm '¬nêíÖÞ€° T0c–‹)™Z;Â{@ŽHè0q%EÑ„-Ò¢° þ(jäþvÆÉöh+#ºïÛÅ~Yn]øe ¨+Ôa­‚Öóf2:Ñ–UITC£ K“ ÊþltJµ&N#Kiüøu}”úG}_Cž“Ò¯ã4„¯8Яã Åù7¶¤,h98$‘󎓈ðš‚ÎËPœ}æÓ0x{Áû‹ÒWÔ¥?0¦A#Ùp΋-h6ÀÓ§²AIÌHeKW˜&IrW‘¢£’އz‹ë‰%ˆS‘ä¡Ç„9–âÎ^I‘·Ê©I°½S²Sr­Ó\CH‹{©˜R›éÓrÏI—^N+8Úé`DN`lû$s€|RmBÒ¦äÙyZÓõšð‚½äòÆH®„0ÇÙßåæ™'V+@¬\nqüóUŠN *&Sá·¼Ëþ¯ço€nvÇ€(Œ4ü„ž®PHEñ*M?ø¡Eðjyœb¤Ó'ìæHÀÔö_”ÍC›[62“î§gº’~KÏül‰þ³Øíí­ýô_öÓ}BΛ,NT NÙjÑJ?ß`Vên±yZÎÕe¸­™á`Ýã²PBLŽ#kˆì`ȹc”+Ój]5“#4Ì¥v¬sN¤Dõõf_Ka]—ŽÓ ƒä:z³ÕAE{©lèÿªÊ±WœRa¦˜œ[¯AÏÆL«ñ¹ÚßäyEpWS„s”9,p•{È”ùX)m¡ý½¤ÀŽÁ§u©ÂþÐÎj›•Ó3BþD\±¤y—²ŽZ½]«“ÎH‘ˆÉ¸½&„a í `wS„cïÉ#e‰¢¨±(MïdÌC5м1­»°,YÎYƸÖÇ'ÈŽ:×ÐèmA±ÇR^ÇØñC¯ã~¢>˜†jü‰j«¢1cÇÖOã0%½}]ØôQõ¦N^a®ë Odw€:É “s²ñáDužÁÞö%Ö8fEÜÀ÷¾B‹ ÄSAŸ0‚BEÑ9¯ˆFR!æ)OØU†?¨†å‚×½4§<©–)–ŠMô6Ï…x{¨ÂaYE)l¥ ¢`Ù~r;=ºw äÙ<¸§i%B¥Ñåçõ]윟wQ¯wO„õµg‡–¢évξvú>‚i¤›1xu–`>ë—Ýú Z@èÃabu°•|éß½f,o“ ëj!Ô“6£ ±BçCìfº¦4"{©Tyõ°Àžc=ˆÀÍ—÷nD «°Ï€$’%8ß`ù׺ö›6H÷28¹(ÕuãK^¶¡É©v.Â.0n±‹5½ž(¥2é*®/“!`(ÌjåÚ •džl 5»fcÙ‚·Ž¥8â#O€®ò¿íÑÙ§›nDÏ ‘xy÷98+:]ABC<äãHì?}GnŽ_}¿$GòJG¸S°ð³òļxæ¯FÝë ª8FèMôW€1áýHuMà³pì¿þ÷ßÿžlj½þÑ›¢Œ;-¹Ç ðã¡~ºèF%7®¨ ÔÄ~îùžb:(~'˜ó× ‚®õt‰: üÚ ÛyÌ7ÅH•JtMe=.Þ‗˜V<é<ÎCAEÜÂU™O&Úrí bÎÙnÚCù@'É9†5g†uíôÉ;tm#ÏÝB>žÇ…rbG;¸æZ`í„WZ¾JèÒžJ¢[ˆ$O×Ûá˜) í~“a¼Ø{Êׯ|f§ ˆÁakÝnË ïXðwê|Å(,§·sc_O¨Û¡†!IÓ,.¥v9ÍŠ#lüuÛjàO™­nÕÊ.ðð&)—^Î%|àïnYß€ë Ø{Ë5àF -S„ŒTNÈà4¹x4ûÔKZw欬Ê.)¥Ü‚jè|˾ ÆÞðbì( Z¹ü´ô=ç ý¼C‡Ž‘#È*}^"û†Z}Fñ¤”…‘Ä®Úwp›K®âÝ]4”dkªtÎ0íX¹»Ms@Q—¨ßú¢}¦u<­[%åâàR´­èðVFdÓ,´—ò>t/Rx„wJ%Kzx!®FVœtàïSõñ ·ÁéwÎwœ¬–f¸—2õnƒ”Ü’ªå“¶µ­n7j [ž÷‡éÃÕʦn)ó¼úC·Ý¬ƒÕL1øjF·8°D5ý:«©Ê;2w×<£¥Ž—F%ÖŠN£ ¥¨ßn Šì2è²ì!ü÷Z:š•¶³¬>´#Ï!ê¹k´P¡Q\f3KÎá¾r€±£8] ,¶¥Œ¶d;7bµÛ9";‰í¶“p‚&ŒŠ¢<4LxIšAèžC‰ªñTjG3œùjW/ɸÌñŒë„¨Ö‰ÈxŸûĨš†")ç¤ÇíX_ÕpvM€#Eú1é¾k\ÖøÈŒ…Ñ—yç|Õä3BÝ×jÇ~ªü#xàg8¤ƒ¸ Z>ÀFæf%r ‡ºp«†d/WÖÞv=2¬ÞlÌÐÒ^_…î…4E%=på/ˆ'²'7ƒÛãO@È \C^5m0xFp·ï Säù}ZÖñÉÝAIà+'@Òé‹–Ú Ãêò(¥÷Ìþàèt¿ð|Љ£ Ãî)í>Ý55þ&"ºF;¥ŠVýènد³'¾Ë%‹ŽïÎ.ôY@‘iìA{ÝÕ˜¤ÙäÿÕècD 1q'™DYê®ÆÙ@¡-Øú0Áú÷ rÞîÚSý:¬[îžxÕ‰~±22Uä™ô à’;!ÀM„óÕ.3„IvX‘™D<ѸH(ECÚ€0}&““9üðûT}<']€<òÎYyüñé<~T4É%“?ÈäWI%paˆÙøñénÙÍ,‘Þ}ó§®ä©.¯Ò =Óâ3äQ*NI8^«þ‰*Ès (9çíºÞSizqR³ï¢Ÿ$ÄŪ eX¾Ú,*†("l·Œp÷,`Ù›¥À¾`P—b®ùˆ­8×Ç «£‹Èƒ8×’R€©r3HÀ!BðÁ”¤-†ÊÓ!Za$ŸØEŠ¢£ ÓØýEŒz¾s;C”_©ìP‚£¢…úÌ•#u±9ê ¹JG†K¡ ȼad–8Rî„ÇQY%¿d骊rûP(ÿt7¿©M1»î8Fß]#YäňУp݈]ð,ÇgÒ™Ùjƒ1+ ‘…±€Ÿ9 •w‘u@yLT‘9º¯‡ÒHw¶«l¦ÐÚ(a6³‚½9Œ@üEê(Þ#ÓGÊÛB¥ÌáÖ+%ÆW(s=ÉćÂÒª-´ÅZV­àJ @¡#zŠÇöH~á¢Üª…øô÷&Êí­—Ei†« vÍè7û¹HéótÜØU\ŒtVˆ,!¡éÙa!Ê‘;­µŠÓ ÷QFšÕ[Î0åÕp£êºÅ–Ëkr¶ÕÎ5´SèÖYøÂ²~¯#“ÝPß$óÓ¶q^ó±Zgy("Í¢Ó\QT:¿ž,× -Ö^™ÆqifƒM“Ö/Ý鎵d×­HsÀ k8V8ÿ±vcµÎÕ•¹h»áð(C‰ÖGf ã^‰.“úšm¡Ã1-(ã–1Cw#`~Pô!4D…$>£}ä쇴Wé7¯¿{©QaæÚÏPVXasܪi7»¦ŽÉ±zbt){¯3³3âÍzsâõ«,®²0n|²ˆtýÓ}DGŸ>¤¹ÙînèVs4L“à&]OdªX¤ê$¨|÷üœ‡ŽD"ðY‚>—ÞгÓã ¶ÆH¥9Ä´Õ Ô íI–&M(4/Õ÷5mFM™‹= w €ku·ü8Ù´Ä¥å†išóZÒÓsµÜ€Ýþí©ë哜óöù‡Óõ`tyùWyrš&y7íÀ×þ¢žêŠ‚¸QóÁt²UÑHtnfO5)3 LIÏöƒÐ³÷A„ßáíŒ7ÙY:Ö0÷›ö ©éÓ5|’j(zûDq’”Á‹Ä…(Ë.¨²±R0Âs‹“è&qíD µ,>kþ¾Sõ xFx¿Lo7‹Õnÿõöj¼šÚ!—|ü Æq—wDË« üò¸2,Cœv™”pÓ²™PO3¾Ç1ÄË:6€X‚}ÖîÔz£¶ãë¥î¤þÇuÍ&»·WvsHƒ«áȃhlGzM qÖk¢2®)Í31¼|3}A J²[þªN¶gŠ/¯«³Gg3¸¥ü˜§_ÍÁ®hŒöäÑ Æ>ù÷‹ÔQõùi¬ú }:ü16ªøág%‰ý¬Šk½œ¬Hx9‚˸œ,ƒ‹ªŸžüüèÑà–šuޏD¡(O¶êZÌååŠkgƒ¿Ã®öl·¼…ª%†”èKžIò¦‡üuõHýÕ"”›@Õk;,&Ép—8’ kuiÑIJ³ê$Iø(éÓfGUÎ U˜*ù4QN5ꃿEKׄ`HÆ å<õ%¾ Š””ÑØqçáTQ¥Å"­K’¼ºc—Í;$FûŠ)zÙ¢¬™%ID—†eÄ·¼ÊEI>€"EI†(²PGí- Ë´¤¢þõ)úH2–"‰§–en De\N©dáŠ{$©hrOŠ*»H²R;rý˱LØ]eY0]Ö÷5í&IÕNôv‰#Éû”å4¼6¶À*;'âÒ. h2×·v;†áÐó¬6»1-E Q¥úZ[ýþÝèýèGŽU’ˆU’Û¸#yl¬’PŸx\ˆU‚³8.ÙR»d?‡žtdÔvqsò¸\ݱo5×Â8uR:!Í)…ÎÒg“—QHgvMÁÜJ—†òŽW3„°Ã¯„ÓJPð9…%K4«MØîØp ÷D[í…“8CýØ)Æ/ûD±Í°ªTOR×Çøê2.…¨ç6…À+—wÒÂŽYµ<ò†Ì<›<Ì„¥€ž-_ÁHÅ$äÎp¾*>ûÇnbUˆ0†{‘©ô…¾ ª‘iTï#LÆ‚]b¨¦ xѺ—ýヱ—ÍRïÈ/´Ý\Ú”a 4¥ùEMÌJ„»Ä!|dຎ 3è—ÿÈO;œžV d–ÔèÀS)ÇΟïFïOÁPÌÔ±Á[{w)íîRfUPÎP=Á`¿i7˜.]£ÇÁê€Ù/Íà›ý V7°ÌN 9:Â;*8Œ6½?` Ó@›G×-Ã]x¡m¤ƒ{R!íSFîIÃ]â€uÀ ÓîIEëLb€Åš9D% Á8ê¤Æ¾‚ðªÉœº:Žå ŽUÐL3|Ãm÷ò²iÙA—Ú DæyÐ „ê8ÅS”ˆíÒ5z8Ã'žÁ?Ùˆ®.úþ²­uåŠv|6>¡ç– &V´›1Ä=…Ø¡¤÷Ž–µ¤°:‡î¼!–‹¬jpZ}®ÕxÓN‘­ó^;ÚVYCÀšÀƒú±SŒÇÁ>ñÚÖ2¨måYÓìAÐ&ÓÙÇà3 °°öe^mÒ鎖”Ä„1§Ô|hN€Ö÷5í6àƒ“fo—ÖPPƒò¢:Ýq5§DšIRTåXpzæ¯Ú¤3a3Î(jí•ÝÑ´ºK×èq 8i“fèò•3 ¸½ÛB¨×!¼îƘèf½YÌ0W(ö¹ÂÚ4³‹sðܲiÔM„£¬ÝQ^4a›ÆÂ0£Ž¦Ý×á>ñ ¬ Úoð,®ÇqEüëÕd3c÷b‘×’ŸÍ'À>é !“ŒÎ„0Àh‹wë»­—9ã['1¥ø€tý3×ÁG: 'ñÄkÓ[U£zêØ"O|b£V-7“)F3 Dœ«êòÖ WHdCä­·ntž#1 Sãå·œ9“=&F´½£Ô ©â.dtšÃåþ÷w;2o9p'F)Ç;Êý9˜Œf£'©î¿.ï«Q2ªŽ!¯E¹\]?Ö)¿0ÓÖª-nSÆG¡¾ör9ÆàôŸw±›,¿âÛ~äñÅ’ÔÀZY$oáýq³¾cë³¹ üªã‚(gƒNwÆ r’àúI*Ù»Á#øN5X)°x!1°8¤kíï‘ýÎ:®8}gÌ÷;¡ï,:?ôÂ]Á“™IZËßZ9n/Í¢þ=x¦ûa&zìzyùôÖØ1g±YAÚž€W ÝAò””4ú"{lv˜tîvan‡œœïGoÆw+R”LôÇ.JʹЩۘ+GçïDBìXB`?Èt¨?tkÂíÝ$Àxº>3΀‡öÀãJ5§ó"áü¬[E—¢:Ò”mÄlÿ4@ü= –hÄú+ k2@ìÝs¬j³û>2V‡/œx–mŠÃpìóõc12v¨im³C-®PÄPÄ Ã}C¹(n0ëÐåå²nψéK2­ 4Úei!òZG°œRK>S°ÌqR:õJAÁs1Ò- ~ï”rpÍY =FYh$ñçª Æ`¯mp¥<õˆÇƒ&ˆjdá¦èöýV/Ìi >Shû‘ÈÌàÀÔ ÉæŽÄ®Èq‘€CRüNlŠi§ˆ 't˘©³dE‘Ÿ0Šݬ̴ VˆÑ[ê’}%Ûƒ„¬ÂÉÝ®¾¹jži¼AÖ–¦Z‘³w“_v&™›H3Ì~ U“}1Ò o6ã…âãB@°×køÐgªb8_¯?}Z­ÿ³ú¯~TlR\Œ§“Ýçó°ç»Í䈙«çü»Šÿ’Oú\òXscotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_user7.0.pdf000066400000000000000000044604061514310134000252000ustar00rootroot00000000000000%PDF-1.7 %Çì¢ %%Invocation: gs -sPAPERSIZE=a4 -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -sPAPERSIZE=a4 - 294 0 obj <> stream xœµZK“ܶ¾ï5—ç”pª24oÜ"'Nʮ؉­Õ)Îa¥Õ>âÕ®+Ëú÷ùɇ9eÛ*—(~~ý58ovj¤â?õï¯ÎÞì ¥4ú˜HG¼ó;2äÆwN[=:ž÷Ùw:ùÝ_ξ=S»ë³7g¤Ê UwÚ}~ž'……Q“s»ó«³r aß4Fív6ºÑ:Ú¿:û÷ðtP£v4 /öx¤à£xØ‘Oä†Çü4þÃC£KV7ûƒ n¤á‚_GcbîËfÚšá²¼VÑw<êµ8â¶<;«Ìð|™=I¡HW)| ‹ZÍR#S¥ˆÞ)ìèœB™¼¶Ã(ŽQEãõð,Go¢Þe±­÷Æ/ùû˜DÃÛ¼ŽÉ§áb›wU_—†¿ó°2Ÿéáý¢EUΤèXÿiXìþŸó¯²Ò. &±Ù?:bæî`âUÔ»óKøåûWY§Îþq¯Ãh­¯{Y¯‚ò,)Ê»”Š2G„X¤€;ϰ¥58;±oŒ±c$jË\87ÀNëá¼-Ãâñûý"^QÊ(DÉqd]ÈŒÞÚu.êXÔúÛ>l¨]±sÒNÅXBÈè-÷¬•ŽÚúá÷{kBÊÂá˜@Ú{8ÿALκï¢ÒÙAÚdãð¯=¢ÇàK±ðNL–ÏrεØ\J(Ša¶Â!†1Ù¸;…òÕ“Ïê|cÛm~d!‘¾ jvÏ^¥d•2ÍÊG^I¹ò»½õ°9åÀ`í£Ñz|žuË >ÏŠYR&4”J6 g‰¤sÞ/ªÿTö¶* àÇ€ä4Ã?rL"D¨YWO7*¤á»9–š|™3É'‹õßÊ6!úìë¼Àçó093üHHc†oä6OËÈàÄ©±„±b«ígöšÆ>ÉØâ5‹‡ì¶sŽTàœTãrñä“'_m 6U#öL÷*[Æž&E»1À¤“!»zó¤œÈÿFŽ ØžÎëÄûe³CŽA­bpÃ? |:»L^W£—’'i œ'Àc“žL^,n„|ÒTT&vqàýâ˜j«|˜ ¨~”p~õd ˬ{¾×©DmÒ­÷ÏEB×í0l'ñ}°3¢@º)’oÌ!Ÿ­xV­Éx)2l Ý'B“/r=²*=|“ó‰?ÊñùðœfÍLŒÞ 2*ŸtÖN5ÀÈ`ÍèÂÒËÃÕÛ‹û·ïÆ×/ïî^^¿½½¿ýóÝÅó··ãÕÛýù ‰³HU”ƒFAñ*­ëˆôÁóÙŽF—ð”~‘þúÈŠ;ÈHl›ÖͶAÆ.º3EŽûåy2ÛEÔ|pÖ §…dQ ”ðµzÂ’“@lž—újAxjuGåEÊ?2;B®ÿPtB¸IŠmN.#SFƒ”BG´{u7²Á62nô¹¹áçUè· :häSE—(}??ɽdŠHZ³=»³ éJ¨1²-äÊT­ç•u[€šYYU§4ÒtÇz¬¢œ-w‘§.âÊ6êD«‘ó@k`Õ”Íluâ)yŠwjuŽšLÜ?¡‚Å5ŒªÆE ¶aÓü£W´>¥%ÅŠ šÊòz?9s¦¦ 'm,àr#zäg Y.‡ú× ÛÄ»tÿ×VJ††»\¬=ÜX=Fˆ|QvÆÒz7à¼Ò¿â}á?µ÷6Ñ5…w 1¬qއ™fI¾'9Š™E§Æ³ Ŝ;’ÌÑ®Ps£–-cþ"uÜ —9µgäÆa»ÎíM™´¾À‹`Dë ŸLïN×´ b+¢@ãMÛqL2Eß$¸*Op“9¥ ñ  ±×¬Tý¨­+ùg‘>]pè‰êm`†7ïKÔ³ÂÎlÖöŠ¼Øø‡²Î,ä0$;ß~P¯öoÞ• ®Çö[¿?¬7ºWhoøåz[˜Ë¿ðpë+¾eª$7ì”"£m•uÉúP?~ :>L|wôéëïøw |ðÇ"º^‘¦æÓÒŠÀLßV‰‡]øg]¤þå|°¡[ \_XTZá2° ZQWU‹™Ò4yÏOmÉ{<™_ã2?ÜGÇŸm=ßðùÃ$hÃ[º—Ç)Q8¸‘Éû‡œùk—L?n[% Hͽ‰t…¸K/—–ù#ðϸ™ÍüÖ%crÀááÿßâ+ –ÈwÒiÕ=³â:/–?ä‹;þiѪ›Ä2þõ\¯Ä̼Ý$2¯ Û~ɑˡAÖåyÝ«øNAî¼µÕ› ~_BÅ™¾1¥nõí²û®…-hõ¶Ÿ/ÁY‰¶$éÂWåÚ _Ôë`gåw³kQ3æêœ7så¹¹Y”_G׆ÇýúúW™Èw¯ò¯ÂÐG§úûÅå'¼è‹ó³oñç–5"ÿendstream endobj 316 0 obj <> stream xœí\Ks·¾³ü#ö¸›ªh<¶ã¼ÊI{í‹+†”I§DÊŽ%—”_Ÿn``wV$­Ù‹¦° ð¡ûë¯óóJ4r%è¯ý÷êîB¬n.~¾ñîªýçênõÙîâ÷_«àVR7 ­Zí~¸H¿‘+)ecWÖA#¬vw߯?ßlE£¥ô ׯèÚ)Ö÷‘Þ­_Ó]e‚Qjý‚®¥uV™¶…µø…® (kü¿vÅ¡€ «Ð«¬¦¡(ÕV»//v¿û~-7Û tcð1¡‚ VHêZ4‚M]K' „õc ëŒ×4T|ºô"¬¯é¶õV·~î¯bs¨›ã[â`…Ãnðå €ÑøÌ­r‡g×.ÞA@z²WÀ‰Å±ùÕVâ»#W»ë zü€ÓaÝÄ'ƒqÊÑJ¡pÂ×ßÄ™ÁÑ{•Æ“±¾~ØÞVRµÃl;ÁWÁ«_k}‡­v¡„â¿ü‰uίÛ^¼tžÞîƒÆ¥¾Ùl ÚÖœx©Ch¼÷¿éƒÝ±—ÒZÜk&ápñá¦GGõ">T| Ù*ã°&„´ÏœÓ€ û‚à ‚¢Ž7Ö ÇØÛ„1ÜiWLžxÍà퀶 [ëïž½¢M ÓŸ´A>CÐØ@›Ï±¡µf ƒ#ã¬\£µ‘ÙÒóeK-À¹¬Å/ A[Ž‚è.ši—[®Û©¡‰ƒk;Rv ‰M^‘…ÅÿHH¶¹È†+ßÂ`­¡çkÜYh$ŸASÍÄãn{E¾Wzü•\ï.®½ã-ó dW<4ä‘¿©8Væ@¹½"n Wô–úÐ躒Mk»h]¹÷‘tXhœÐ~ýŸÄEðÏà³ N œížç‹hVk|Ð:᥵qÝ[ðÒ k¦Œ ‘3GÖZ[cEŽÝÖöiÜE|póÍ7 oöšJð•”^ŠÛ=Û½&¶‚ˆÁ/Š dNÉõ¯ƒ;¼á¾•/êKvÍšü»b(ys~ÿ5™;CtïBTx¹åþH qÐŒ&{ƒå&²µ…¤FеA†ì>C®’¥Es‡.ì…Ç&Ý/½ YO~Í{¹g÷oRm4ïæejn˜Ø¤·ÝÌŒó(ëGÖ: Ýá{'á­ð|¼h%•Ú7&Ñ–dôD¼4^è#¢)8d§Ë´‡Ûé×]Ðù v¡…U¾£q/rŽÊÍú<›M”Èã \fw{.sݶˆl^á¤xãkÄ™°Ì¾§ÄÞÖÇßÒ–¼Õ˜©×b¥ù%‘y‹ƒqËÛí„0ÀHCiµ Iõ}/‘w`_²ß÷ ª½ Øv=% a÷Csp»šœ!¿HxpˆF28^¦´ØÇ×Q]ÁÉMŒ¬_ž‡Ž½T‚D®üé´²®C Íégé9Έ:™™Æ¢=ókÍG Xüñ¯ÊfV`ÑæêÑ õºn—wOaTq´·Yì±õZ4ÁÛ'Ä*áJœü t?VeŽUåÈ Í³¢{H°Ô¶Á øŠâÈ«MW\!ãD¨#Ø gÈM[ŽÎ×is؃¶:.Õ[]™•‡òø$j6ï½Ð£&<ø8¬¨+_$»!Á“†Dk$‚—³LÕþµK.ŠR²‹õ‹«Hµ cûJy´«cA áû¤úT @`”Œg¾à£- íà\ç¦å7Bbh….ß»–oI8B$?ìxÐcËó‹Oô¹{ÕQ®>JTº"ÝV &ùüñ¹Ù&ãhŒ ÙŽà]þ/'‚ýuÇGÁTÆUÞVs˜bn£3®:t>®Å€Ç)âÄ÷¯ã ¥œö¼€_=vƒZÀ<Ê6ˆ¨KËÍt°«é¡5¶•XýHyŹEÄ4¤Ç=þóÑ´Çê:Šp…\ží¥Ë!&m—ÜI㲩lM:œúI‹¯=rØ Cs¼é<ðYÊë>"ø(ù£'ñâc+Æ¡”h>C™= 4Á‰+Mº¬4q-ˆ =LaŽBô¹)Uè5õZš wê„ëLoS'RÈšpÔæä£@Ä”üš¶tÏ^â&uá7Õ­¤•ຕÝJÒ­†ÈªÀy(´Ú/Q‹Š›á»{"%ìIÄ |b ±{b&¡änü¦+ˆ ªT(PР/ýîeH«1d~ÿn£ôõ©»Ê\èSF_}}Œ¾s³}yáC! Cš¹ yÆ õ‘Š åÁgÉ‘—ì:QQáUà(­A… œ¸Þ3B{JvÝLž{™š+p]†G[ÌßÄœH{42æ>F'*úöüødú­²Ã±ÆW¾Nªá}r%û(Þƒ‚ÉO؆¯URJDãÝbT¤!œVU@PÎvÔí~íÝܵ·>4’W„-1ƒq¶00“Gô÷_îC”Ì_ÕÌ9Ž¥èæyâƒ)H]áúÚ™è‘Búfé9UpØ 8Xþ«Žî6ñ©É…Ø‹~äð):×{Hª€x¤š–gdÌAF~¾y®œG*öÔe´Õ«åƒŸ•Òun`ÚÓ=ΛBqû¤:óÈ3¼à“«ÎŒŸ°ö÷•6×}!õÓÖ~m GRÚ’ÏîÌ\W$Ò´G=î½?|PÈ …såóa¹í~þ\²òzvütö‘vgR˜y`ÌÛó5­¹yÉš§”±õ2¼æ{'ý÷¶ãT³!ê飧‡Ñ@5Pð¨ 0½¢/äÌ>ÙÆ0êGm{ʳÇa”UþGNW‘xPvºç^ñþVOãV°c½XÏÝkÃ\]†°oo£ý*@4Å p~¥}¹ø@Ó'¯æ;#ú Ê鰾Ŧd¯ª0ÙÃü‡Òƒ§,M™‹«Ðõ/¦îälÑ1=½XA‡ëÑ1¸¨JÝu¥*òm§Úûê×:ŠçXÃ\̸@.h)ˆ8/œÒø‹ŸôpƒÆÿñc«±Mv‚:`gX.Ù¾á-trùÑÊyï+¥ƒrž>¦h„†î¸¢²]žÈ¹ŽkkT^)•V¦Q‚-ÚÂ%±sF7YÁ .1ýÛ!˜äÜÎÙº`Ó!A"Ç›Š]«A¦eðÖ _Š˜ÔÖU΄2@ÖêŒGÃõ8\J?ƒh&ˆÌæxàÀ3OE+•š2>1ü«Õ‹^y친͙Æ~ÿ{º€™iuMþù›z 8òÜM¦Ð"/U…¾Ëö·NçG qžœì4rÒåé\~ù]Za$ºk=Ø"Ýú$²…m1À8g¸8Ý(oÂj«%VÆ_ì¤6_ì.þ‰ÿ O˜endstream endobj 367 0 obj <> stream xœíK“Û6€ïú:J©‚FãyÜd³ÞÝrâÊz6—dã¿ÊÏd=¶ãüú4øB“"%‘”,iÌòA0†@àC?Aê÷¹0—ñ_ñyu3“ó—³ßgÕ΋«›ùw³oÿ£B˜¬²z~ñb–æ ƒÐFÏ­Cç7³_n)…Ft:,Är%¢qÊ-t{µÊªupæÿ¦žP"ï Axïb×Ôö%] &(ï7©ø&­4 b?\Ì~Ž Ù0ù~¦…4óOtsf‚ãhQ83¿™)©¨¦ªx;{Úw¨ám}¾Y®œ”¸ìN ?ñ¢æÙÑŽ]ß"€EA-`† Њ,lUŒ+¿2(´¤^F[È¡é$È >+½@Æ^þÿMè5FÐDÏJa•ËÑ{™ÆðÿT|Qó[j°¬mâPÞщùàôu8½¤å2*‡Ó˜Apê¡pÞ§âû ΢Öz´­`TÔ^Âé’ñ°x u^¬h]É‹vCx1½xaÒã*?Ö„Ùºô0¡=8_ö™]ó<»ÆJ'-m§¬q€Z‹/²o’ÖP¾Ü©õ)£5“Pm­ìF ¸bé,*¥ÍâÙSjM˜Îí× 5uWÚ¤êûT_&èüö1(ZWŒ +e¼ê³³ÏuW5‚°`¼@cveµaЖ,´ý3ÌÀé€õ&^L’À)ê}å gÌ$e‡ñ©eCžÅãÙÅ7}9P§ÂÁ?–HÐ8ØßÙ·¸LcÕùH­ŠcÐÎ MŠc¤-_ ‹!˜`+&· “h§IÒþxÇpx½ŽO¦Š¶á£T±´ÙP¸âºÎ•]Û‚#WsY{o²²õ¦[R—–&GÚ¯—úáåþŒèÄÈßãUƄ̋3-Ùe|a.¹ˆìx¥d—«|¥;$O¶ŽÏX‹…T@£yãLV|.Ȭuó>³3õ$¦x™[T kIKOVŠ›xËI¼ü˜ƒÊHïøÚ]-•#¡%uÍî…‰ì`ñi©âúVh×%×¹Ú ÊÖœ7ü'[ðçùå`,7HÜxR`_,n&‹MÜü7óÈÕƒrŒ•¸Y¹ ù”–d!"7årep1ÓåD­r«Æ:½5&Š8 í뀦á:M˜ZøºM#§” a7÷GU®:ÓIlø ^–$z¤™äWê/RN66D‰‘…ÆÆÞ ´Gpa¾^*ê³ô„bKr—ÈäÓŽü>Ÿ¤ÈäE:RÂ.øgv8tUöEs4ú9umâç Ýt1íRÖ 9”©âäeMô!Ï¿ü­}_Ë*n? ©PóçyÖ•k®´5„N¥Í÷ßGW¬Ì¯ùÐ)Y³í*ýúvÍÌÍr»B¦‡½7¤ðá OB'z6£ï÷¸ëGGcqù¢f òHÆaš!ÿ¨yödÆÝÎôÇH)~¤c¶)î˜!øªð=ZTK «–6­´»ú@`Žl­GÑÜïYÙЬt Lpš‹š14+-”+øiÏé°œ;Þ ƒ¦òf^¾’Ü\§ããK½i<+ˆ“ãÛ̲s‰œù7ýî÷Hí ƒÁr†‹š1 ‡¸&‘Ãì`ÀM†™æׂÌí”·D”£Yñ9@:0;ÉÜàÒŸ+Úªíâ¹ßÓ¿ûG›n…n’‘]TŒ[ÅÕw>ûI«©qÝŠ;»àu5bòþ«Ú—›7ÚVçûx”1n‰UBØ̹]KoR´3>ÖÁb—l ±D_ÌÖÒ?íýðY÷ÉHX}¡™}ÕF`Ø1ûŠUøá)›¤¹¬µ°_&íJ9%M©¯5:_~SÑx˶µÛ”®«ÌâÚVhØS¸i XÔ9ª§ãz,°½ö å‘È5ã•1åöEéjdòè6OèÝ'oœ›ÛÒ¶Åß1…JóÞ[@‡]Þs£â Š œŸc(G Õ¡ñôUù×ú!¾~¸©­ žùíÊ·`H+~hHÇí†ãnÔ„Léö–ŽgÆRG~¯:¿¾1eÓA;>ð(›uTÖ—6;IPpã@ºÒù”dí=ëÀ‰c¶Œ„t%rºêoKÌÞ­wÙvx †›ŒÆ3{hÈ‘?.~™ê dö¹JRm±ñb™òëc4';«ðËÒ£ 6C›©M'nQk´_üQFÀ¶0hU×Ù¥±vž˜!7è·kðÓ²:§ÓÕç«1¿·1J£Ÿ Ñ·ÎG¼î_tÈþß–Å NSd@š@~Èú;wKÑ”±l¾¤ìj ¼ìàÄ“XíÉÅBѽf2”!ÛÓú,42Y5{§]ÏJ#3–ê6]5ÌNNü”ü…"Fà½nú™m&ë¶ <ÁÑž ìpiùê²ÐÀ»rw«s€ÏKš§Î¨w¡‘Auló™ŸÚt丈º•i3Å¢\êÖÞçëÞ8šÁ¾Wä”éÒ/—Sæ=]¶)d¾Y¶EM¦b<^âô‡ŠvÌEinó‘QÑòZ»xMh6cÒÊéø,iãáÚNJ;b(Ç Jƒ·ZHÍ¢Òe͈°45A¶_ñ*®ö·¶úàDÞ¦°ôÛÖ4Mj¡5BM‹çœîõ|ÎÃRÜÝÜ ;;&Söò¢òpëžM)kÆpëPXmûsûC*þ‘¸}j·¼ÔÇX!Ó»?÷ ÒCÁ–”0š0 ÛcÑ€ø¨G@ŽmQ3[KÚ< ·ÿJÅw¶_Ûí¶ì†ê#b«½kHÛ¢f ¶ÚÇc*ý±}ܰrlY ×¶ý±Å Ø4n}â$c]Ú5c°%ë)„þÔþ”Š—‰Zö‚‰çµ{¦v˜Ðïµï V¡X¶EÍjÉ;×8@Ø>mÅöã„í(l›‡zö€m¿×Å[Y?}\ÖŒÁ6¶àGQËηý9Q{0jZ¶ýÞ3¿jƒÏ^/Ũ-kFP<Ýž>(µ<¶å­¦HX"¸q,)¾ÊFªæ‹5;62ÏÀ¿Éò<‘µžEËr]›²hZx> stream xœíßsܶÇßﯸÇóL…‹ßq~¶“4N­I;Óéƒ+;²§’íØq’é_ß–4ÇãòYâèAÐ ’¸Ï}¹àîâ~ÞJ¡¶2ý4¿¯n7r{½ùy£*ë¶ùuu»}|¹ùóß!ÆmÑ3ÛËŸ6õkÔV™(Œ5[çµP^o/o7ÿÚ…GR­½‰;ñèB ­­¿³ÃfS™Môöß—Å#i©é‘´!øt¼Ëç8öSì­l„àwŸçæ÷©é¤U°»¬¬.hG;|SuÀ3ôé _^n~HGrq{ý~c„´Ûßðê¿Þ€ò^D•.G o··éñö–›ÍÓƒsÔ;óvŽpáë!ò=Ëçö.7¯róåà…Þî¯c÷6[oró—Üüm߬'¶÷:¼o X|K¬L'M#NVXf°‰MjS)¼t¡ÆTá´ìü¾™¦êBi+” Û Â§ê: k[ë=ÂN¡)Áµ°“Â?àozj€?dëÆQµNH°‹’z  =hÁ mc ­µ³ u¥¡5zºÛX8Øš ¤‡Ó±ý¶'«5¶Dl_ä&÷§Uwç"Lu×?a_a< ”àÚÀ§Åªºû]Õà÷ƒ}a¥v*µqŒÚyÂJS x<Á¶±p¸Hÿ[žp?åwgswh³(°Quó×[ ‡f‹«K½̯_FâÈOróÇqÄTÎÃ8Öœ´ãX—ÞA Œ³8ëÆÂÁÚ8¡ýb"=˜ó@^¶ŠôtšÇö[çÓ\z3)ÐW:ô‘GkáМʌyO£¿Ì0ÿž­D¯×}‡y^@åí% Œpin,˜A p÷€ñ~Þ‘sȸYÊý(½Å”Š(mÄøÖÂ`‡Àã™ÂŒ?<Úôâý•ñ…/½ñ” :EŸƒ´ã?%ò:¾úØLšÏqGhö¥iöé:hMkáÐì•–§Øßfš‡C‰kÞÝÒ4Ï ³šCišmðݲ¦Ö¡ÙaÛ²¦™4?Í4“¾¿®+Æ4‚}mŽ¥iÆEo7¡¿µph6VDË ¹šgí¬²Òª6¾6ãM*v(‘¡?*Û®¬oIô˺°:˜ÖÚݱ˜ p¨ªúýM;Æk20j'çü§öJÜ¡—é™Òk™P<þq9zÕãy3 °»êÎéþd?c¾Omï]€îÕÓ÷£™8mÍÈiUÕÔèâi½¿,ZÝnñ\ÒÙFDÞB˜ûAè¥Tƒ¨8myÀ\ºþ;Ú(L§Ž«µ0´˜KW†ÛÕ>ô«Ik ë«I…ô¼½ N xUf.×cûØKiýj¦’»€£¯Ôy”×ZX»€ «™ñïSÀþ>7Iæfá‡Y#NšýJ™" j{jœ õ´tóì*t~Øü­Ødøendstream endobj 482 0 obj <> stream xœíßsÛ6ÇßõWèQž©Q`ñû±½özwÓN¦§/>ôìÔñœ¤MÒÜÜ_ ‘—)‘)('†7 Â~µÀ. ?Öœ‰5ÿÊŸ·O+¾¾_ý±[ëºüqû´þúfõåOàýÚ3oÀ¨õÍï«â±Ê3¥ÕÚXÉ„•ë›§Õ/wÅ™’Ò*¿aWלI©-Ø.³Ùš•·ú×›á$—ôNR0çl¸ßͶýk íÁÙÍßêâ‹P4\ ØÜl­ÆIC+üc[{hÃM¾½YýîdüúþýJ1®×Ÿðé¿[°–yG2«×O+n±;ËãêeçE=¯Æ›`¶h¢£ûºoÖÅßê⻺øº.þ´{ŽÍ«Úút¤…b`£?¡Áç± ªÅ?‰æ¡£>¡¨¼ÇÁrÓ4Ö³h‡QL‚Ûˆ-x‡…í®FíZHÍwëkL+#ŠÁF¸ÍDøŽfÓæÂ²áÌ€ÍÀòæïuñ¡.þ·.’Æî¿^1kÐtìxX»kckU`­õ(¬]n¬•ƒH¤KK ØÊ1na°ßµ¶@ÚýpV+˜™.×ÏfÁ¬€9mK˜•³Ï 3vƒe¹0¤ Œ]ZÌ¡ÑP.×»ñÙw:9þ}E‡\®XC]äÖÞàÇ“í§Ñþê‡ÌÍ÷Á*¤áÜlÞ^c „Ù|ÂË€Kéíæz{™Òüæ‘4ñ*”•á/üë ,^¨uʵ¥4,4r_wãO¼5ãFÙ‚†òaÞ…ë´•ø+…×I楫ÌÚ9(k¨ZÐxÙ‡íí4÷\"/ÛÎ9a]§ýmÕÆÒðy*j'þ"t _0ï¶Çÿ^ui[ƒö”> ½ûb¿-¢C!,m…Ö¸+j`{·ÍAÝuö#¹çûP¶Ö8h>=ýƒ”'µ:Ü-ÉœX;p˜;){[÷õ#¹¬k¼iÓeO4ö%ôV:Ôw¼Ð|@zf|ï¡Õ,rë»à†qO¾´¤(¼À‡âi ÿC­ðíuÉó½muÓIÝ­µÂ_¤Þ và ?6¹ì2ƒ­½Ã© "`W–°µÇ–ÂxÌ ö·­îÈCÂí¹g`G{äÏfvn’dZæ¦ÙiÝ”éÊ’B³ÓLâÀÌJó¸e‘Cê^Ü-UÝhœ’ÛI—OȸŒ}r‹0ˆ~SÍÆUnÆ-xü¸¡Œ—–ÆmXy™Y±ÿYß,Š=Í(¶ÎM³á8³t”æÒ’B³Áûù™ûûVé%u¬^_<ÍêÍ#½é\ÁÈÍÊ:¦é:`eI¡YYfô¼0¿lmì¯ÞnÂÅì§—æÜqG-5DÒ\ZR`–ÁŸ™æŸ[½ âAZh>5͹ÃÂ’8 £W–š!|V壧,ëÅwkŸø ÎÀ8ò<®MĵÈ5$MsGµàá”ëÒ’Â5Çÿti*}Òüb°Š»Í³Ì-”` õ !3e@A`Ûù‰¢/e3Ôȃ;vÂàÃÜ+KîØDø H¡ý¦Õ'ùw]\¦‹‰\Ç)PL ×"7ןÇYÊuiIáÚ)l)Í?9 ö2uœl+ÂA/½®©Ea¾Ö®ôfÞ[T ’>ñš$*ôÏ'‘ª:IHÙÏÆ¨ÓILE“Èewû9 4["TéÎÁ¦qŠ*µÓs$¶÷uí¹Á~ëÏ…ÌÀ“äš{¯×0F£”=p€•{¦ì5 Ý n{Lâ‹”0ÛßÒ’"¾:´&¾/jñ%—·÷U[»Ë~Ñ` í‡áê+jõ=ï¾y$7$¨¹y$WzÀÆûIîy¡™¨¾u°/Î,m¨ï1×·éyª¯T®¹ ²¤¨/z&q·Ö8õ¥Oýºµîm]üÏaÑ~î¹uÝŒÚárœqÈÍ8à§ÊxiIa€ á23¾,?÷f\DŒ7–Ÿ“—¹çÞ2c(ã¥%…qî™6¹u<™qºüG–µßG—xÐÇÒÜÌ›‡7/îÀä𜱃v•™vtƒúÚ+Kí2ä'ò,ŠžšNí°ç ö=ÝóöÑSßË¡vLj=•¢ëÜŒ;eð9(ã¥%…q§p ˜EÑSP/“ñ½¬SÂxúìÓäfÜ‚hn¨,)Œ[Á|âή‘Œ§Æ/“ñ½\ÔIuÜæf\{éxiIa\{£´£F2žr\Ÿžq—›qe9<üšB7ú9ÖgQðt©°¤n¼éërÖVâ”Õ!©}Çéö¹é–*xÍðҒ¸T Ô¹+x9Xu {k+—¸”áÖV´è™ Ep‡«]Üò‡PÃæÎÆ18BÇÒº] QØF Éþ[ó)Ó@çÁPbqÇ<Ù&Ä„Nõgÿ|!Û.g|·í7Ê›–Âùì:Ô‡tÔÈ$®ÜËæÖ€Ê’"®Ü3¡ÊµO­ÂFV‰¢~Uk¹{lÖÝV¾%ç£U;ã]ôŒÈtšs‡Ád˜.hT–š± ¦Nó×uñcMóCÄx¯•‰…æ 4ç*‚SÀ$=í ²¤Ðìãr„6Ç©{®hÿÔŽ…æVšãdèÆù½º÷4®ƒæÜAC°Â47kU–š­`ªÚ¬5„æoZ>DÖn„µaæØõ\aˤî¹ë8̹£ƒ ½hnŪ,)0kǼÎr¾Þó3Ž„ö–ÛX®—Œ÷òó¦e9w”Ñ8”åҒ²2LÚÂü]]$+^ÇÖâ7c<ÍÓ:͹ã}Vo€.hT–šC–?œ fêœä:rÙãað/(ÆG¸Ž3L1¾þQ®sÇø„b¦¡Ò¥%…k Ì•޳‰—cf˜©Ë1(Æq–!=àÎ7·T–˜¹cVøá0ÇiC{*}dqnùÌq¦è´þóÞÛ|\ >gc@eIà:|™‚0j8×q ¹àºªÐÂõ¹p;J(œtLÐåŽÊ’µÃ7ƒÐkò|5×ÿ[¸žŠë8ëy6®sÇ … D?¨,)\[Á¸NÓëc\Ó@øï‡i_VAz1>m°…ÔÈEÄy°mnÖª,)ŒãäZW›µF2N6 þYíÍuËÉÒ`å`í–WT¢_kÕ’Ž·ý^©*Ïu”ÒŒçz(Žš|‰çzNã$ÎÆ©JC8=Ë´:(SÅ ¿¦È-Ò(ý¹}QÉôrˆÒtz»w\ô¸C”ÔÕ‰Q: ñ¸:c“Ö|ÞDnåIj9§šQvøÖ<> stream xœíÏsÛ6Çïú+t”FñûDZi3iw¶Û6ñt;{ÈÚŽ“™ØId›ö¯ïƒH (Š%È6'Á/@R~ùðþ¾¤„-©ÿW^Þ.èòfñû‚­­ËúãòvùìbñÍKîÜÒ§¹–Ë‹7‹ê;lɤ#RÉ¥6‚0#–·‹ÿ¬ì%R#ÝŠœS"„2ܬX0ËuQ:£Z5̦Æ/þ *p§‚kïúâ ºyµ™rÜšÕw¡ø³/jª_]¬­Ú +ü°®k|'Ï/¿úž´[Þ|ZHBÕò¸/œCóg&ˆQËÛçÔÀl,ï¯:/WtäÍå‚&ˆ©š—ë6Ûu(~ Å·ÑÙUÅûÍy¬®’-܇"ºT¯Cñÿɯ]$[¸½…ºÕ¯£Á(áÚ6¿ü¾Ò9¸nÖõÀ¾h†µ–Dp[SÊà¤jJ×E·)ús>çTÅôòœq¢¤fÕ©ös¯ K.ˆâ~¨¡Œ²–¯>û²TÔQ×üœªtú:|׸^—55T¯nB•?ÏΡCb¨`BÛ¨‘;d¾Bå÷è`ßUeËŒmê 8qèZ—Ä0ƒðChü ªŒ¶«A|Ÿ q¥‰‘â`œ,†)á•Aà»&¤ Eé@š¸¬€TjI!5Ž+ÄÑ•–G¢[[rDWZB ¯DÉëç¤à½NVø6Èàû`EÅ¡x¹['5Ò‘'³/‚̦ë~ E^~–t—?&[¸:Þ\¡íˆ0…›¹´<Ÿ,íã%×b•!¹'²Pš â,f¼¶ä0®¡?§K0ŽÎÅí¾„búp®“½=K¶ð.ÙEÈÒ¤ïÉWjR?ý ¸‹HÒ=æÖ öœ;p/Õ€‡’·ã^[rp—†hU‚öŸzê&Q´†PÎØŒG\3e‰€ûq"/ßPBñHÆkK×àjSw’`ï’æ­NŸ4?š”6Â]F¸[F4åSá^<¹À¸×–ܹÄ• ý—½\ptÙP”0¦}F|šÁ§.8£¾ ŒxmÉAœÂÚ"Š>%ãOÒ1ÅmÇ<_ÑKMÎkp‡Òpò÷Æ’;4០hgòÅ(¦gò%u’í:â+ËGgZFåTcO[q«(±#^[r·Z*ⵌc¼ÒlíæŠe ÝGÁ]G¸ƒZQ7&™“ÄÝ•ÆÝÀ¯ÓVôÚ’ƒ»áЂËÂý§ààÙ:þ4Ã.&b¼v™0CTÏÆ*ˆ»‚Ë´Ô½¶äà®| yê~xÜ·Üñ­C‚1–Pj&éG#ßûë\éÁênÎ6©úë”7È_;oÒß~± µðáuå¤m2ápçáÿ¬fý[8…¸¦@1M”›^‚è®sõn$¦›;% ¡mC(@™x#àQ›>ù-¤¹BÚöB‚Æ’£¹­nVoÝ$¥M]BË»¾ôn+j1¯ȔԈæ±sT;h.Š—tž3LsmÉ¡™sP ;œæï#¿¢¢ùsdíFXipwV{¬0sžñðx^Ì¥í’ÂhVk smÉ™:¢ôi~Š_“jÏšæ˜Ý.˜÷æuÀ\:».œñ*Š`n,0 î¡#”ùÇP¼›a>6ÌÙÊ\:w.¬„všKÌVú©ÛÃaFç‡&o䮘ýç@sˆ2ï\±˜?,1†³ö¯Æ’¶aÄ5k¼ØC%(¿Ò{?ü3Yuq•¼no£ºUo=£ÌÇ3+dã#'>u0^:MÏ!‰wmÉa\9xÀñ“dü‡d…ÿ…Þ>îé±e<ý·”¹'ä1gèJðÈ }ËŽjé·uÃ1“ƒòÔDµ'ÌqZ¾*þ`žÓòÓѯ9­µƒæâN³”pi,94 x^×ñnÄßE+ófïE¹Þ?‘ÓÁuéIœ3ItK¥kKלÞì%5ìyÖ#s7a¼qaøÜ×à’ ‹×gmtÖ÷@3øK³†®ÚZ—qýC´€.;ÒÏÿÀ`«–uùM·67Â.ZP%ÂF àÜià˜ƒ§hkÁ@cÉS›aº^?›VËû¤"ë/AN‘)+z Áüê1z¯éÿv€]z4Ǭ°„áÈDcÉÛ­A]°Wÿžý„‘\KN¬2Sq]z\ÇŒ?¼áAcÉáð¡ê‚êÞì&xVé$ÍñzEe å|¿´GÐà ^ïËÊëuN™}Ü×Ö>ë÷P#ñ›°«‰‰R'=¯5@ÝÜWÝ&’ÑP ÒêÙëÝåõÆ; ñz[Ø¦× ãÅö|þÆ’#¢R×,ÆJωCö«¤FÞE;7¦õtŽŽM¡§C¼Þ~°‹{½B´ÆrþϤ… ÂÙ©~¬éiÈÚ3¦›ýÝM1^7;Äßí'º¸¿ËýëÞZP×–®áÓÊɤúU’àëT ³T{Z©.È€S‘þ][rÀ¦–p;™`ÿ–l¡g×ó™æT,bk…ìÈ 9ϧB8ƒwg~K~©Úy<ûZ‡€™õ3ðˆtòAnF§ÑEá!€·{[ºn[ÛÒ Tvšƒ:ë''8<¨k,‚jaþ¨×‚šž—›Ž×¢§?Úû(~¡òV ûï'óÔ=àÒ:Òîàºô˜ÎÀ3]H<ý½±dpm(Ñ‚ëxϯëÑXÇû L‹ué²|½AzÓJmÉyÓ 8UÆk´EóÇd ïúz‹× ªÞþ¬h‡þÛÝ·Ë߸Ѿµ6ÛÆí¹6»ŸöÒ£=ððI;6×X²ö)'J4éèÃ=™qïÀ]:¢­ …PÄjiqB¦¡v Ô¯‹¿Ъößendstream endobj 596 0 obj <> stream xœí\Ëv·Ýs‘o˜%™“A€Â{iÇ8ñ#¶xâEN²(Ñ:!)Z´,É_Ÿ*=]†löH”)Ú á€¦“^º$+eˆHp(¿|y´VB:ãýáÛ£µÖF¬„~<¾ ú¬·ø—’íàðtü{¯=žq^ã4¢ki/€y¯+x_ 'Ð!¯^™ùŠ®#Ê;bG㙳cÉYÂŽÆ g39ž79ª}Døª2ß}ëlp{Àûs²î'”×J©ä®ÌgÁ&–ï\Øj‹›3p,—œ%XÖ$o æ/ú¾Y}ØÆuà¼`ßG4G±?0ß¹l2ßüð|ÈYf £uC,3uÉ<¨7Gļ'(š´ÄG(£<ôÞÎöÆt[ž>g¥¯(í½Ñ> ã2ÊE.ÏXyž~&GNþjääG&+D¬æ­PõF´¿DÄ MÁ&ç6D¬€sdÓ3³Þ±Èÿi“ž¿“ŸívÓóÞêë#ÿœÜE3TœŒû^©ùr¹ƒæy c_h6ÞPÍ%g š ú*f4Ï8±âW˜¬ø¬)³Y€âìh§îp‘®d?¨åX¾¥Zî`y^(m_XÖ&”ëø–KÎ,k#ÜðÔêÛ Ÿ[$ýÀÌwƒæúÉ~™ÙÜ štÅÌ%g šQðcýóÑüc욙۟V>„†g£¹¾‹|Ë3»šç½’ÝšeôÂ9Žæ’³Í2’O—Ñü¯¦4h_è­/e4ï¸4–“ÿ“¯›­½Ý½‚`Â-·Ã=Àµ­pm¥pÒíËœ÷ôuO¸ÖÑ£2\9 p­é ¶ ï ×íW¬ìŽ[}K£Ì­5È;Å÷ƒ¹wŠw`ü–wŠ;Ÿ÷âu_dȹ®r–`<aìûãîïÆ#ˆÝ,½~€]_–çï—;Œóž¹î ØT¹?»ä,¶W"O¡æ»”d`·%KC"Þ Ãm¥Èýv}OØ€›õbÆž÷Ðu_À¶ÑVŒ]r–ÛFÜñåukûK¿6Ê gåÓa¡Õtü†Í‚§Ç‰åÜ'Ÿ ¦1Z¤ÉcL¹í%6"êXßÿ·çdת£µ’ …J{¤FIŽü»u.HwûùÍ$vFx2\ùïÞÅ*iëpüêTuÕ‰^Jx¿ðûÈ0Óí’Z„㯎ÿÜ… l óE:E×ѪÉÒóãæ§^©g㻀×ÀUJósmVûÅ.pºa’æwõªFuRþe× ,_É£{åz02]¼­‡‚7¢*½Á¿ÿɈèIºú`‘!9ñu¿˜’Ï€Ì×G€Ú!zÓxÔDW6 7E ¯ù÷éuS­5J µtȈ؛¤í䳘AgG6!xyÐô*XMe€m°Ä¹·XŸQ(OqI€n§¹Ã7tYˆõó´jzf°¢¸ i¨µ Ö‚Dß:pûGû.'ö}èaædÖG5öñ“Ö,Os‰ÁåÌ)þ6àD†ivî% Ç=‘J(Ô²4<œKàªFY]î;—ú^&ø{)µ-?Õà3²éM5Nÿå ÊÖÂx…ª{¬$Ù ­°'ŠË¤üKe î…œÜùÊ…?îL.ÌOo¿ùm‡ZG ·Ó¿L A ©8‡°ûå—ì~9gª«L3*IFnÁ6%N2³DºO#9³ü¼ƒYúæÌÙ}£žÎÉìÆ ±m»@7x}˯rܼ ‡TÞûœÀï„SG\xmå2ôön'öò_ u\ä×ó¤ÕF©@ç{‡k'Ñõ6ð±ã«!¢ºH눨ëÇÔ|BAƒ=Ltˆª'£N‹Œ’Dq˜¤{¶®Z¿Î¦p‰{v ÊIUPMԌڭy˜.þ€ß³Ç{½ùü'jIÿÑÖóøŸÉQ—œK(eŠ´Ô!:ÛW¬ˆQκûýg‹üŸ†gCÒŒü:™wí$B‚c/{‘éAÖô‹â“C¸¡ü!“w]§E£¡—Ü—gÌØPÁ6€µ#‚ÍB×È$ÄO'Û=òtÝW-œŸÖÆûÊœ“óoéë ÚÙI¯ÇFŠ;äZßx ºþ—šsÁêô@Mœì½¢·õÊKÒ•½µ­æÁtzfI{ׯPñiCß2$¯HÒÂjMÐ Xp»Vôé3›Âƒ4 N ¢æ´*Ú¼Þ`QeCV¼ œ—ô, 5›r×ÈÀ¯ÆäþËçYe§C¦!A;]b»VްÏJÄ´­žPÜRúQgÐ2[&äe”§ÎC9žíP+ÕŽ"?š£´PÐOòŸ³JžP§BöxÀj;ùéåX{N"xÔP ‚Ç Ã¡§cgÛZ<ˆâÆõé(ÃG&ÍÎb›“q§’í/Š(™FŸêÓS‚y“›”1Lµ4jñØfC¥F§±)Žb\Õ¾6¸¨1yX†.¡4ºNŸ1â8c;ý¬3Ú³ #5&O·óÓ«2cÞ·Œ{”X‹IÖuÍÔºö¬E£¢Nß${ž¨_¢íàX¾è̯p÷S¦¦lŒèëÕG`öjb÷)w#œÜÞ­ šL‚³²„Ùa¬ŸæR¿÷³Ehbzs…Slƒ c¼d#J¸ß>첦‹’¬—ãEiÒ@5ð´K¼GA´Ù%pP—Üf‰P~5ORúEµ÷©¶ÍR Ïçø7Keº[…5˜÷GÇtt "½—SöƬ Ê‚«†ƒÙ¤ê¥4ØõP.’ˤK½ùº÷ÊWÁg£è]Ë4øÌýì«<nØ#v7¢0L?Àµ…f51Sk2Lb]<¢ÍÇÂÁÚûüÁižJû_Kèén’èx ˜;ü1ÇàbuPy ´¤fnïlEPƒ:ÃöÇ\*¢Àd„¡KÉZÙNì¥F™yÆì ·1|:Ö)ßøŠ¥È=žF3¸Hs\ñ‡(\ˆïâÕöLULwCÝ£±šàv¦ N‹wv?Sgµ²Sÿðe®öD5´Éš£ªcÌá(ôÁø®›u™)Ý»_ÜëapS†·Ïûµ¥P»IÙB<ÍœµSŽkëÕÎWJІàHÛÁYT›«$Ï2ô¤ƒÐñÿ‚£oV©þªVçeÁ=·—lïäZ°SòZžL;å÷­%®õÕ¤8kõbl5o¬2öéI¡ÿòâ:… ¶EmòPH*(Ÿ¢hÕlPvp¾w2΀ÕÇ:Òù!iE*Úoil‘NfÚú$;mN»é£˜B?WÔ$h©B¢EáÝD“'{bQd(â’›O‘$²sñÐe,«Ø?[I)×ùÅpª¹’C¥Ç«gq3XM¼¡• I@ýÝëT娟ýWÃÝD-ržî™Ë“24gzË>åŠ4Ìü-—1ûMǤçθh|’ØZ‘Ìp-E[lXò;|œxRÜâˆ6q¸–«ÓG™ûNPǶ< ª&@@L½ä»ô-"‡>Œfi›íÒþ&ë#ð¾Ö×S )écìu3YÿJæò)ú’¹ß²Îi1Yg©’寢˜‹^ëõÛ“Ç4¢– ‡JNS­]rƒ[fs£5ÕöÙA”ƒØÍfM 7ß“êÔ‘ü+4N[”™zä€Û§&eM&aC™)¶fmðrl­Pâe']HQ*k )}÷RÔ)•¿XtÆ °Pn@’„Ü <¤¥Ð·Y¬AeÏMŸj¤ë¹ßüzõL(endstream endobj 642 0 obj <> stream xœ½]I“7r¾Óþ }l:Ø5Ø—ðÉc;ÂvØ{Äd$6Yb·¤&5âüzg& U‰%ëUsQÌaZE<ÈåË õó•Zô•Âÿ­ÿÿâíuõúÉÏO4=½ZÿïÅÛ«?=òÇ?›œ¯ò’ƒ îêù«'å7úJk½„«í¢£½zþöÉ××ß>U‹³6º|ýþT)£ÌõýþøýÓµøèá_®ïžšÏu¸~‡OWYÙ뇧7V¹Å*ß<¾ÇÇð*}ý›‚½ðG|l­&òÇwlô š/¨¨Âõ÷l8óº¼^©Ü¼þ ò‡˜EgÛÌx?ßüOå—6ÚìžÏÎÖ˯kL:&>û›±%€Uañ!]ÿå©I°¾@knùõþ»7t .X|7î=+Í_÷ªl7Çc‚ØEe_wKyz£¬wxzðïsC1¾¸‡§ß<ÿ·'&øÅ„üõüøéÄ’IÝ`x!pŸJÇ,§u+¹’µ¶œ®]r6³ÍE×ÍèºúÝÙ­xø¯ºjgáØnˆæÎª˜q7uƒ7Ú,ÞÝì“~Á(¿¾ÕÃ&`„±Ú >Æ IÞ4ôad{çïƒöÍï$ùàÇð æö™Žá/0ŸQÖ—H³üȸWå`ËNóMò¹o±9)ÃÆ&àØC¦!.K2ÌÏäÝJDçzêÃ&0ç =ð–dRyßéÀ}›\ÜË„>?j‹ŒÈw_¤ÇÃLªÒs‡ë3Kˆt&ɸM×ÊV20ÒEÿ¦–ðüo.ë묉¡)¢MÒÝœ\·rÆçæspZóI~ÝTÿ%g¤;ýŠ|­$ ùò~•¯–Qhap”ÒÊG®â뽩|â³KŽØÙÙòÀyæØLX_c>Eßî$?T³qQ:wæÇª´m&ŠaàXFÌ„Öá¡Ñ Fþõ‹ês½<½qÖÃéë%úz<±»²×j°µ#U°lN3³D63ÿjé@ù»'; Yžá‚5ìRZ¼Þô!‰£ÛvøfadÒÅdç@º«ÝÄ QÄËÅBó(ˆÎùãPЪç¦À®CAØÌÄ^ƒã„vRÉáb- ?Ã(‰ç¡ôØ+ÁÃ=K0$ëØ¥l!ε#º%Ç‘n§­ö VQ«mÂ×S9Ð*í3BòBYüT~–C’dãnE}qÑÀL«xÀ=ê“O‘]”˜lu"‚_þ%™Îä\>¦¶ª“¤,®¨U¤¥‚ÍUôè5#æ+ÛkmÒÄ¢±%3“Úì`îô‰Í°J ý öiržÈßíal,ñfÞ™œàÅÛüfÊp„kãÞ‚i\Šoq,³l›±Ú­òÃLËVù™z‹|ÌÄ‹« 8Äl&:s×ÏçšéeÝf>°FÛèŸV»ƒ0ÖU â á‹}½Nmò±]¥hçø…½-b|f´‹5fQ¹æ2։ͺ±6ÊPí* Š$gtcŒùÁÝŽݹ¤j=x¿!.ªR1ºêšbL}^ºÓ™¨Fî² ê ~swn´Kõ4vkð5I)¹>j-Zý‡2‰Wv0:èÑæãh$S¥ðeŒ/ÌíÔaOßn6çUYžò§–wròpguôŽ0n>V)#î2ij)Yx”8æ]Y†þØSŽòØß«³S6+¶ÊJ1M¨yZ`à9{1Ñœl æ§“FdJ°Áw¦$ç õeí¾´PáZ]vB0­ƒË›BÐlSŠè‰ù®Æ¬Œhäè=qWF(í:@IO»(廹…%û-Ê Æ-€Â†µµñˆ2-.­lÖð“ÿ¿S¬òàßÙhÃÿ©ü2Ì\¦! >ø*ëÒZ_‚k¿•™€1Z—6à9.Í©‚j&z\ñðÔ-Òø¹Ì¡À¿æûõ©w‹ï„Hð±îšììÞ3¨`XÆgËCþñÏÁ†&afÍ¢÷ã&f´*aêûr†^y’ @’Vé Y[ïI²²yòíðï`k:iëÖ€JPÞ¤Üü”¿go½ÃŸ*pªmYo—àâ™Öõ6©‚Á¬ta.Ît€øöwŒòÑ cìc2À]fŽ¥6#…g줳›¯óm™Ð¦Yˆip‡¸Ûs!ÄÔ§šJ j/@Sqê¶í@ ¬žÄ™â\NŽ"MÎÃû§ ¿bqB—ã,2qiÚú÷h±¥®ú(…ƒSöç• Ð!‹wÉ£sƒ^2u ò#<Ò9È‚ªØ'—hrëN¹mH‘è&Ûª’؃BË h(øÎ€ lQåa™1ÆA=ÂcL2C4ښϓ^§%‚ŠäQä<—«è•]·îÒE™9÷Ûß’¬ ݬ÷ ÷,‹6?“–±]›ú‘,¾å òûHU‹k2:uàŠ&IáLîjFÓA$zèd½ÜË1 ׿[ÎhÙ_Ž\‚ì=õQî?`ŽDO‹éõ6ì0ß[Ÿ¼±©ß=>ÊJ´_ ¨8åE«}“TŸ"´)*³4WH´VGar­ÑÍsŽ6^làdŠ0LÀ lê/´ÜWe£&v¸¹ÅÛ9UÂ#rP‡•8×âìrÀW¨Ïù¥ü.çÁÏBVÔuX•€Û 3”M—‡âø–¥ýŒK,¡`8§Ì-¨”·ÓõÕ˜SYŸ—Õ÷6ßë^÷‚âp\#ó³Yöux¢ƒë¤í+a—£ ¢D_âp Pr8ÊV=VPËŒ£Û’óì}ýŸ(9G”ÕY3Îj,*8:•ŒLÇÂàbEϘÜɃ÷ßÃ`—bÒw-3ôÎÀ˜´D ùÎs±è×%…pý5[·ÞG{| ¬ž~ÃF ÿŒu. 2åà0[jqÁ;?:¯Êñ K,¤™:”è´_²r¾ZÝm²úšêÄGr¸' å`F0²«1«u_­ÿÞB“àðÁ \Ã…‘XɹLyÄ&HÜYÑÕa†±i ^D¯t ~à‹åÕ©\ÐïES÷¶Áx¾9AG¡DKdŒ— ׌ÂQEÅCyQ ƒ[&.ÙdV[V‰/$§6OeÄèCŠIËwì1ÎVuv¶Ò9\DÛR·rT#¶S‚3¹D\îẌY€cóŸãR#–kE\üñî@Éó^-jEâ4åpV)ÂX]j4X=I£‡®ÄXªÎüCKPÚeÃÌøÌ%»ƒ†›q¬ÒE Ú>«vWaÀýx:F¬3iëü¦µíw[ sԥ噆á:€RB6HÂ;ÔêxØ<¼[›ÚŸÐ=2ŽL#ž@Ì‘KÞCyšó!þ«oܪ™q¯½ãÌÜÜ->\wl¦Å–h!$<[Óg%•o 8Ë!KÁ0€ŒãHI™}„e#:‹†ƒÕ×ÿC‹²hÔ%qWV’³;„S#&I«Œ¥À…Biül}tù6Í—Gç–ªÓ,';„øáHzå¶Ì˜ºÍ߯˜û*%ɂ۬M6 žJ’÷IøvÜŠµ"׊%“\ž„\¼dnæ¶l·0°üÖÂHy¹wåáÖ¾6È$ä,¸WK½Óx¡e‡$ÝfP…WÕËÓ¤%§ ÉSɈÃÝ>Ö—Š#:W÷R:<¦¹ù¾°D'„%ÙÃnµJWÚ{àaÎ’è´Øìáa^*`@2Ǭ·‚€­ÁV±˜§`8•üÅ·efZÌ,›¼+ÕÇ_bóÓÅrÿûuý)œµ(CDê¦n¹uh~zê5¬Áç5¥rΡ¦Ê`®úBg¬ 52e÷²Üñù=›gÏ5Cð1 v/ìÚÒ‡(¥Ð´7[Eëå$Éw ª ™JÎTÈÔ)RIÒc+5 æÂ„Á‡òÏ YëuÐhXSW²Û¹›ÁDçÔd×)¯Kí[2ÍÕt-!˜ÅVIfÎætïDµÔ _†PdõYÙ]vC G#@ŸƒÃÈFØ9©#`%v·-~MÌ€Žµº2ê÷¡fÿó&›[ñœ¾þŠHå<œš\ÙÂA WÖ—`S‚J}ntHpùª{VJ¸cYµ .Pgˆ:YÅwð¼.ýÎt-”ÕzLq¬ý"¥ù@ú(zöÓ…WØæ¡¬:ê «X]v*Nþ{tªT^–EÓŒ™/•©ßmôÙ›[cÖê‡BkçâuÝF*ÀNŒß߈›âµíð;oÚ™>_7ÔzB|3÷ mÀ ,È~gü„*$÷Áœð¼nìY)ÐÖYŸš›q×~êó>¶±1[Ë™„¾Ê2¹Åì‘}k\’¾ÐAŒ«Žî3:Ìô'fZ“_K9€E²»929ZÒ£½7œ#‡ÇŠ}u‚¦0!i‡IÂ4cî¤õemµµ¸ÀRƒ}Øm‹1°Yxhõ¡ü2©üÕÑ›Kd‡z•Kçý—k}–·|Ä{œî>gît>ª‡•RÉTíVêó$Êß·Täí ´®Ðâ-i] " T×ÑÎB+5ü\hÚ:ò’¬óç“ñôÖ¿Î÷z.þl±,>;‰`we¹¶K'ÜmÎ螦̮U§CëAe©0‹éMªFˆœ©Í&üÆæ^•TJÛêÜu¯­¦¥ì«•Aó ¥"<!!^©]òð2Ú`s,Ÿ.øš>\4¬bAµv˜½Ölâ³RïàhÃ>@±—wBžO@ç/^i½d:œWOˆÀ ü÷'ÏÿîëkM£½6.•_:ƒÆ•Ühmü’®¿BPl ìÄ?¥"u$‰§#ÇÖÀ?Tü€ÍJ+ÿblã- ñÖP½ÚþS"ègl-^§I ……l^›‰…qL Þ³Õò·ÞÒ€.•ùuÂá|È÷ìùݾ¥×ûŒSWY'pcrªäZ+™½JÝ5.õ®˜¹†c¥ÌØëpыڨËS”Îî$‰Àíº”©´¯àhû¡¤S%YHwÌ|{pïÊ#ÃBmÏ/V¾»Y“Ò&bt½Ý³T¹ß_ÈrS‘ŽÔZ&E+™]jï±(/·]^ª '«Ý½˜c¶Þâ*X^ö ú‘ºâTôKñ<”nñï³—òþ|Ʊ–òû“Éø@Øæ°ŽfŽ —ôŽçˆ_.”2ïð5X“õKð!F¡ðkf™Ü¬{X2>ZZV„„¹¾åè¤À˶Y¦µ¨èI¸ü¬{ð‡E„ 8-wçXÝ„†¥Ú;Î.¦—¨j3j³¤rÜý„+c$ôzx»Ÿ£`ø‰`ý¨ô÷KP1b»Ö‡uÇÑwÈe•“t™X¼6$åY«ÑE­sZ¥Oj=MU£³©õb´§µžÆ l9¼¶ƒaêû×&±v8ÕËÔüô—òÓãìTiÈ_Gv›K=Þ¥ú¢Àyçòíò@†3-»É¢S‘íŠÎÐ}¿'TÑ]­B_~¼Zyî㛎hò6i²Çp6»]å6ÍeœD)‹ôPSd¨åÆÎ.!þdë sƒ¬µ•m%_ñ<1`™º>ßëÕª{$$ÜQ¶å¦œÉeŠÛº' )ïºtþªÅçlD‰D»<ËÔ•íµÖR2o Èò†×gæ#ÈlKeo,¶µ©{Ü«´¡ƒ{"õ}ð•&Ãbh–Ž®G‡‰Út„N'võHæ-I kË ifwœ§ÀÍ8}.ÆüL.>9ñµûÌ Qøc!BuJÝÞ@ÕßyD§a¥*Îâ”àe¶óï+u)ìB_ùk %sB¡(þxMœËsÜÜÌŽ¥çeOm§ …!%³¼Y­álSça`T4ËYËP`«Œ¢û­’Xæ·&ލ7¸•DêK9JY?~v¡òçt‡Ø8¸õ·ºpòM6˜¼ìÁ¼|õˆ5‰ÊãKÝ‹%n?…Yì‰_\E1±÷ý‹ÂÒf3^•ùÌ… zÑP$;‰ m&Ó>ª>‚Óà· ~çš)×&c  JŸéžxM^ð&…5¬ô‚¥»ŽBÂß²Z[4¸vY‡¦± “N8§&çßù·´×ä.`ËË—&c ÎÆó6WÍÌ,§`Ы©ªÏÿbÍ—­#WRt— q9Ûæmš|•°Cª‚ÓÔ¹±˜œ4c’‹%®o¿t«wVÏ)™©|ö—[áRBÛ™ Ýt3˽”=f¡Áœûk*8ô×BÕDéËð¦Íêüº9€Rám׊{±íícõÍ6ò²ýûfÀÑ­ÛÄý·Õð¨‡sž®îÂK;èM}=À¼-Fº±žuú@WLj±˜K≳Å_`’}Ž—*»èï£Ê.ºò ¾°Þ")lîÌ>ciQß\Ð×ãäb®Ceá£Q‚ÐNú*hUtM¨Yr ˆÇWàÂcÆûÌŠU± Oa‚Û~?) î û™>³9ÉþW‹4´gÜTRÜÔF $ˆÔ¦a·6ħœ‚rÛÿ6úî©EVïÕ³ÉeW±Qí†À©’fñPú‰€’ÍtëuÕÙnóù2l¼ÑbMÒáåÁ·ûú2øH” Æx‚ ãÛÞ-2®´ÞiS^=…ÈØªq.Xâ‚[L÷ñ™õp±pZšãûªl)4·gIÙ‰úPjø¹ú}vHá‹ìq¡œ ¦¿EðÙ…¨ù$ÈNæëL­Ó°Ü°d%bŽÛ²!àëI‡mRâçC¦—OŸ¼L.xú>pã›⪽ì`4,ŤòžšÑ1µØ+Mü©;w{\FÐõt:6‡œçn¬ ‹N™_¨à2 WjDü ƒpuÝ+Fù5S™YLà\ý~«9~Újhö »Û'ù™¶ýÃר¥xù9¡î­óë¨RQ U%í4”™oûä•94Ëc®{¸ÍÙ~ZïHQöÑ—Á¶È]º˜¥ºÐ\cØ8Ÿï:u/å­¥©P^m|ÚÆOÔN°ˆyvÅy·W~Î/jŠzqIô(O5±>Û5ìU6ÛÊ”†díg{Ëýè¤%ú™ÿ~gŸK¤“{ÙŇà÷¯ËÏØ«Æ£üÆ ñ4F¹‹ÆK9Øy6Þ!…ý,r'õ`”P~%ŒãÈoÊKš§Öv'5Æ:,ãÔt¨‘º Õ}yýÑ}Zt~ùRÝæX§8)Üœ~þsw 3]®8äWP~¨|”šrø kÔ` O¾3*øÔ{)¼Ì…¡©p`°‘Txãij¼ŽG¯w;GËÓÜQõÈïZ9,vò³ÀñIÇo`L¾íÚ÷ëÞ—±§ÅÓðŽ>í~á4¶²w_ª º¢lØHráø4ú8à©Óp>Ó΋ß×¼˜Î"ª–¦~üŒ !ݧܮW?hõ¬ß¶‡Hie§r¯l=ù¼§½øÝ"¯[4ûVŠõÖN!ÊVpr~»«ùIÊzZ”6*Œiñ;’·R6Ò÷¿•Úbnð­ú2j úú6ë©;#wWã×ñ‚A“öXö…zЋÀÒ‚¹á±éÜORIŠÅtpGÇ44l¬4‘,`ë×bq³[_w[ÿáÈd5ôÿІ¼¿Žªžty cþæjú¹¨H.Ý÷Cnê¦ZYiciرkÀ£/‡¤¦…özºŠ=šÆfxm²ÍW!‘KšÝkÍ r¦¶d‹+H(†*¶·o$9μcµqBŠI¾œÑfX¡îEg‹Çßå¾éè“ã7)½ùŸü,BU{q©œÞE°ÇüÿK9xb½d8Ö‘gšoª·?®•©P_Qk™­ü%i»]™ ð“ÛFL¼§Üæ«§a®¼ÊTÚÎýóó'ÿ ÿûÞU`¡endstream endobj 666 0 obj <> stream xœÍ=ÉŽGrwÚðÅ?Ððů v)÷å(alc Á‹Ä±Ò¸K–HJCj¡¿Þ‘YU‘KÔ{MvÓ–è¡:+—ÈØ·úùJ-úJá¿õÿO_=PW/üü@ÓÓ«ú¿§¯®¾xô೯LÎWyÉÁwõèŃò޾ÒZ/á*D»èh¯½zðÍé͵ZœµÑåÓ/×7jñѧdNïð·ó*+{ú[룉§ïÙï×lüóë§ü¢Sh^ý®âãÃé,ªà™Q†oà-ŽŽÑÙ˜p ?ùšüÍŸ®oLZ|R™Oò—뽨àsnvòxñúÚDø|Y$ÀhÍÿ^·’IëA[Ü? *ªpzÊ~óUÞâ„v ¶¥å,:äóÀqÍÙ®~b£ëoë¬^¡“4@ê5{þr kϾxVFØø=cƒùéÙï¯ÿüè_˜átpìÑ3À)Ž/ Dlô|¥¬‰Fàc ([·A?ëò=<_‚?5@{[nÕF3N§y¼/ĆàQnÖ³Üh³xt9ÇAÄšŒ—lŽPsƒ'E>ž?/è©ë1 ‘ÒøýðúÆ[¸Z·]…‹íÜœ’VD¸…ù‘~-”¢Có&?Ðûë`2^Ÿ–ë›lÌ`ů[ÄÆ©“ñþÜ’„Âo\uÙ-Qç“ÇŸzɪ¥Î_Ø•rp $Ôàí~†ÿaÛꀈë+uL¶Ù,1¥3<¶ûn#–¤ìJ,# ùr\¯-&/EÙìu;$x½ÝÙ»²Ÿ @zŸši^Úz RÊEŽP•à!ˆJ¼¯Tò¤räßÑâ6»Óo×ðg;L¬(’10[ÖÀ-*îuˆÍðã8â›ÛáUá®?ûʪF.F½¸ôz‡§àìd¡Ù³7pxUžà¥eš^¼Ç€‰ë,2·5À5ŒoY9»P~Î_Ë•“–ÇÅõ[œoB¯pKYbÙ¸M(oÛ7G`гfÑÖß!ã…åO¡œõƒgÂäÍž¿Ƭ Hþˆjñ*´ (ša[ .L„àÈKz±Q–A wÅHõEY‘ICëFœ^Føcá^¶›PØ;Q£õ ×Ù\©ÑÅòF‡ Û¥ó™ÒV¥%Ȫݔp¬]R fÝÛ×pj«qY¸PQ³±¥9L’£·™Õö˜ XØlTžÒ•  PæN |!A¬¬Ìкþîp¡dñ·åT’X;ÃË)Ö2&Ô©F8stºÓOñ©IöhKë ¦¡ADíD„°ÀÞW„€V„ Çe„F§ DÊ€ÌsŒ€]2¼ã7ÅAß›˜•JâGOIþÂèp‚A¤„¾™ NÂϰx%Ñúlÿ]¤hŠ‹ò¾“¢wˆÜ·ãN ¢&'È]&-Õí¢€&,Ñ „»ØµµÛ–±@i#,Ò½µöж¬1ΟžÅ­LCO# ¦ÇŒ&ϰ`vŽÝu›‰+€SPϦ°§ÍYlékF&¤'%”“²L°;DµSÞžVZ™¥{ZãKýÎt.É€cè&¹BPHU׿¢ß îë|Ô ÓTm9V¼¹¦=Û ‡¬àÏè6‚sPÿôPáôÑ ˜Í2]“ÃäÇ2cVñÃÅG*Éöˆ¥]ºP| ç—ý6 ·H/S·á¤\#ãK§Â…@+ÌA¼#ù.¶u ¹hP2¡‚ ZL#\ÝtμO ”ø£Ê9]ŸJDŸ| {•9 …*‡:Oçy‘(TÐp.ñ¼ …¤±ï@u¥¸šæË9ýº ´ÖuC+=Ü=¶-il®è™—‰Ü A¥÷§ŠM‚Wî>1œCÛ[3Fáooûq+“®ÄÚþ˜¸)+MŽX)œÁø“ÒõùÕ?éAêÛ½tn–mœx¸â‘§7q}¦­&œ^œOrnây"Zžk£O¦ž²•pÝÝ‹K¶‡^úc}$-1™N‰›ý,¨ UÑyÙ]„ 8cÓ620äkõ–Òû ­…ÏË€td!>ZÐ9$·¤u£šj1²˜žÚx‡ü¢ÌÈÙ…fs,û{+äã•%ŵ¿Qb”ÏW7 ›S¹@ÐÆÃÑNp“SˆP }èÆƒ ‚p×$Ôëç„ ÔP­,ã³Ç?\[Љr|/ÔÅðE¯"1 ôIîš›ø€VÂÓt) G'(ébô§§uî¢fÇÒK&òl£H‡«G_>xôt‚×fõÿ9ÀlPtÊtúÃsö˜îÆ©ÿŒ×iÝcp¡be^át=²M.;Û yÃ6ðš†ÃM鹯”–œðÊÖïË¿áÆf¾j´x"˜—…h¹ã)xŠëÜ€Ý2ÈSºªjÜ1Ço':,aÒDsàÔ‰?êdŒ}ïDÑ&mΩF+Æf•wå=ão¡×š[²€Â»Âùåµ×±ŒËà^UŠ`<Á§è]®÷_žþåÄw4jÆV¬JÓŒ¦³ƒ!¨|Xß´…uåcüé "«L˜-clåQõésĤ­«J ­möÁ×{[VIÊwsÀã¨N_á ]Ö0<+øÓ}‰ïæ+—­©,…°¥Àßz]ÏœÒétfç2 &rR&%ÜPáËPîú¬;½óE9¡MdѪ9çPÈ;E¸s á!*x›È2Ä1À'ÌvKÆš°BŠæù™¶i<Ü¡_P@Ží~.õ€†•ÝlðoO ¿$ngÁ$nP÷ v=_•ß9ÿ±0·ùí5¢·«½Ë"™c þú'b$ÀÇB£6ŽŠ2Úã· G”¨ úéo¯Á†!ó’V¶xI½Dµ.[AZLüùÈ0$QüxÎ~/PŠmüºw58°Þß`„Qð¯;ʽÌÇu.û£ëdäé̘âŠ!{Ì~¾*ª0Zv»¥-¹ãš÷vmõ¦po«b!Øü¢@¤¶*ç]I“`vÓ£':Ir6—ÿ•ð0£÷MÀöÏñ=Ø#wœ6ón"¸S ̇GÅ~iqd{^a<Ÿþ˜ €T{>~ìŒ0ô 7Óòsöa)€•RfV,;rëC@ÌH¹—ñäÊ2n°¯ªƒ@Úœtø÷eOöÐ)Qr —4‰©rƒmbìÁñ3·Ë|û&àÃÍÓ+¤,Ï\™;G¸û„ÅýjØRÎzÆgÑeñ~µ$§"/Z7Œ–…k´n]Ç‘øh3xZÖï!Î6;ñÒðˆËàá”›¶)—}Â알¦Im©Ã& *š.ðKöud¸4~ ´ï´n !È·we´mSD^—]!C¿Àó*]ÆÓ2‹Qúî2ȶWbJ•"Vr ñÊ4ˆ»ÅSÞ–£‡VøK9KôÜÊ—ÄÕºº¼áåv5x›–㾿V†äÁʳp\G›3úŘ»²3£ðl‚ jXÈC6;Uoþ”å\)û&‚Ç'cV#2ºVÃ}ïZù¹¼aL§‚15IŠŠÕ4ìb*"”A¼M²®€2°]î¨ù½jÍ}Ã'9^`lMÖ~0ê$«ý’svqOI&[‘ý¥?ªâ¥Ñl¶¹_–¹÷2–MºߺJ8^Î%{G8Ý0ÊKÊãY*Ok$<€l…¤bD]g0éhÕÞWˆÁþ®§~f&«6‚ÍÉ‚ãÑ™ È[$ƒmK=܇Ô`yD1“|\ èà ñ Z r-Û–Yò 68œêaÉ’©›èlê=GEÞ…%¢-î};»ô™#ðe²äåTÞmhi3QŒvü;f8\¦®È|ëò›êœë‘lèø?Í`ôù´fNBß­+§¹Ì=Ö˜ý¥såÅ­Nx³ÒÝi¢ì›NsZ÷yd !`ŒžÈ·±ÀgJm¿³ù™l)ǸÑV¬tÅŠL1å'¦XAv&løãÎ…³€)| {wáüµÌ¨%m(íÚê1Ìmíù€Ì¸V§/E‡Îþ@_Âù¬Dv'7hjo¤h· ,$«Qr„KÞ—¼Y‚"<Ï ò”ñ{ÏÞ”Ss`kù¼j4Á—;„™+“½ïŒhîÁ©¯¼.Ù¯[G·6PFDïο#ÉÁ†  5X2ºùñܹä·quuøN§dó©·rE¡ÿžå Ð-Ó'΄¾,ޝô°€B;ÙX|Õ?°«x[f *…ÓÁtLÚÞZ‹3µHî/'²çÀ„k¥^i.U`Ì€Šô÷+ÉvuéåŠ Mù¾Ë¶ánÁö‡ñ]`çf…BK^Ì©ÍÏñW´@R°„ù ¤ƒÇiŸÌ‘ŠewDŠ)…S5æŒKcxîÿB‹i$Æõƒ•kÔ%‚[3Uu«¾-3*“/òYÌœxœ¬ÑMs±;²_õF[¸Pîʆ˜õ° sÀO®…Í"Xíñ%8lÄítáh@ÎYoªƲÿ®¾´¼DßûÒþ>Lž—-ÝQ-´E‡Q°] —À’•-ÂfW-ŒŽ? fò`»G-bsüUk*ôD…ãF&¬˜Æ|«³‚ DGI­}Ì· ~€²š‡, zÜm=]BNdgUÓB>ËkF:¤Ù¤âŠ-Ž˜nAÁ£ìyÂ2èEÎØÒ`+Ó†²b:ÛŸ‘ÓqSœÁØ9¨—ÜNÙ:`j냚*ƒ¸•ëlRý3»Ak„7¹óLÈm:£“íqû½à>&¬¸Í ÁÈ5*Ü{ÅW½ÁLÒˆÚà äcìŸnÀ‘€6ÏCîä #RéA…—=Ó&kÌ»U€LN{¬éßqxYÁ|ˆS°¨Áp#½%häP”ógË0â’NÓ„Ôo¿mhmȈN Þ„”šCl¹Š7]Z²N©y xì±ýDÚÒ’CôkÎp0ÎòÇÅ‹4²ª“§T«à¢AGLÍ(®¹½”qì-ËS~Ìþ^Ò›KŽoµÐÏöÓ{sX¬Ò=G´ºf ·ã&l÷ƒmznù¿e-æcJáή"Êe8\Ùz3çÈÍSÆsÞA¬qOdô˜Þ=ãMǽ§´2ghgFµv+?5[]Ò—»Ô·Ž’¢­Ê¥Él:§†m킈x–C×ɧhz½('Q¾WJTÎFQdöÎð¤±?Oº¨›ÏÓÝÎóa¹ÕYE’Ò œJ·, ¸©°4—-œ´²4¥óH=K»meYÂ:YVô\’:䜑5²C @fÞ:7ëO7Û‹) õ‰ÑDÝL¦yc}“)H[‚ƒ ¿´o2›j¶W®u>žl6 §¹¤zºÓœ9o Ö&ö­Mf t£wS£åšä’Gó¸µæÑ†h¸(1“*Œˆ™´ÿ4äØß¢öqG]žF·Ö>:Û“R_Zç$õ‡†I¾mÐÃq§n¯¾zVÝUiv¾Np¸N›Ç³í/ß6§¼† *:Kë ÿÀ"=ž:´¼¢,«¬Ó V*ñK^]+³rúAüö. ‡E›iKYÐ`Ík–Á·îq]Ú:Q6Îͪ>÷¨ Aj ¼¦`ö¦ö£ëšº¬„(Fƒ7G›íáÎj®_9_kÞYó03¸k’Of…?£Yê{ûyê {[fCÇpSÓ˜óê>ÞÊœ1>Ü!€â絊ÔZ82åݺ †dúv~ý²ÒT5@ÈÐÿïÛà&“˜ÒþzóÎÉ0¡­ Á¤¨dB“¥Ë-Y6qëÿ[ó¿M6#¾z{èÎMßõážGBƒ‡]gDkzm{§‚ÝéiÙ<_¼žK.áº+„UŠºû:R¯MN<$1än§Àƒ€æ'Ù߈ed1Ý»¿Ñb›ŽÔ¥f‹À 84Ÿ•Sú,VP(Ÿø¦NcᜨGÖ‡&kRIw÷ë’XûTQ„qp «¼º¦Áx1«kŸO]€è)îWÿDg‹1éÅX¥Sõ%ؘÍZéáyáJÀ0tÍP6®+Ÿþ™ƒÙÂZÑkPÐ~φW§)†»§bŠ+þꆒß0Êf±Ï®ö(–€›ìmºOI¾´Á9”kù Hœ÷Ã" `T~’HÂîë$'MØ|IåÅhNa1Òã+­;ZFiÉÜÓ˜†ªò¶Lvl%âI0Q."œ~?Ã.W.j«ƒûë³²qG)´ù}|‚ßJ(È×4ú¥ôËÝ/HçÞ‚… ú*!#C:~Û^»” ú™µtIÆ÷”;„ßimÉQý ÊŒ[LÇ ªj]µ ðŽSˆáí`®g[sÂZå8†ï]æõl ¥ÀÜQe‡`~¶^Nþ=äü2eºD«1¯ÜÍù!îõI—8¦âl™‚ >ÁtjC) P7ÙEÙXóÕGf#¥M °ôö¢ ª‚·ÎI+¦;ýqeÕ0bú’Ÿ×f%£ëîÝZ0¬g>Ä5Ý óm¬¾MõîÙê-XRßwy`Û\+ñ´–K€-ÊLÑxr;¨‘ÒŹ¨YÎJ¥î¢ÓÛJ&žíÁip)é¼LØÏ¯·f)|y¡!ãÃr})I9<2ª¡B9K¹KŸ‚ã4ÅÅà\OغNæ$SC8*ˆN6 @·HdÁf´…*:iæëˆº-hÁ¡Øä}ÈèÑŽg”:{ ~‚ÑËW†pxXúHikzó ×,lðÈ–®\xD¤†]¼Á,öýfmÚë¹dV†Wc|‹ÃF_Þ BO?VT Â:˜!ÚÔÔWŸQ°ã®]:§å¼ƒ1Wß–ãz×ÇæZŸ$f"wRIÐÌ_–\-AºSHTh1$¥R s`â!I5Ÿ„Ô'ж³XþئÚù}‡¥ßiŽ\W ì‚A›sÈë¢/uô;G#vI¤Ûèã²zSìS7d\Á褃-{- Z>ÝÜÚQDè}{5¾äµ—Ò/¬O°v¢ÉgŒ?÷èÔ¶«°àõÖLj»#$óßï;Mo=ºll]Ø+w.ewI¨=¤‹:*sºStHêµIª60U5PƒˆÚ(‰U#/÷TZk&´™€T!ø°¤ÿº˜;â@Ø _÷ûª¶¥Œ[£×)<oá1»Ê‚Kxþ%š¿ žW>©ÛÊÞ‰nHϹ³aR»ß‡ºœø¡—éͺñB™nëЪf=M×έ -W…ß„»8©‘¾¤=ytE¥¦Eéìwc1 ÿäzën* çÏßa£WƒBÞUD)¦ŠFénº_Òy)wI¬ Ñ]É´ ‘óàÜ«2ï“|”*cê½Ûð\—x»{÷)~UiSÐèÛ$™êío‡³ÇxÐÖ aSêÑ.±Ò4à\§ Œ7qö‰guÓ®WÕéÊ'É(ãQÁ¶s îYµrûCÚ;bg‹pØÈ ŠÆ7Ãàbæó=„3 ö˜¹}G‰$¶˜RÃ|¾ûß×Z/?cÕÔÛqÁÃ})9`»”ïýSS™Ê¥FÇ€“$¼HY¬2œ$-J‰“cÍæÌAåV`ƒq͸ó†J*Þ*©ª”ïªÚ.§<«ªËÆB?œO³{g}y¦t<Í~;â¶:m&•TÁÌæ|#äI1K.Ì»f¾.·ô4-i#,d*)µf`#¡qö¢ï#òÊZƒûr7"¸ŒuܶëÄÖ£–Æ“-?䟊Ù8‡§ÀY’/eŸ“`)r¡<üˆo½hò~sƒìQ1ŽÇO*Wv³^[ÁôÍxt¬íÎ/0ÚÜzo;ÿýÙÜåñŸ3‹.?Œv¢;)×ü•ظH ö»)™|½“E¨nŽ5®«y)gZM}\*ÌJ›EÌa^þPB÷áæWë~t¾|”zÔ†ô—ɽN›`·³!3,ŽúAö ƒ3¿Ðz7޵©˜ðøšŸ~Öûü·¼z¤y_T®ï¨ƒO½|¬M}–R]¥æNÏ+|ýP³îd˜ˆÁµà+>0tÁJ‰6@Jˆ)u2¬Š2~$¼ì#(C´nkáªÞÄ+Uvµš´îùÿa4ŒÐcöiò-Ðí2ºØ?Ρ…ßKÅÎwWÞÌÕ¯,ꆃšâ±‰ý™O'b§ù¦ÖR–T@€§ÐÄgÒUb KxTÇ^oøÕ?ù믷|È`gº"zpÀÔõ× Ë­kDj ÅÉh¬û¼øcž’GfhUÏ(WWîp=qÉúÃ.6/‘çš›\ý ÔníCa΃Wë‡,dºð;Tø§‹Š}7¶~’áŒßu0x¤PôL¨Ë×±!Ì!q_:Ÿ/†¾°‰ÞžAðÔ<RôŸöœôíxØc$±î¿ÍŽA….„†6ë}hÝY/´ˆŠòýš†”²Z:îë¹e»hž:ý¦8]‘8úŒÆ™:roŽMùÚ:5L=Ð{mÍÇ›R3A$'Ï»)׎ýÆßŸß7È0‡ŠW7èåM±B>oÓà˜|ôà?àßÿˆh8endstream endobj 690 0 obj <> stream xœÝ=ÉŽGr>€áCۧ׆º&÷E†ö`0°!^Ú’#R¤FII”(Ó_ïˆÈ̪ȭ^½×M-&|(feFFFDÆ^ßÞˆEÞü›ÿ}úò‰¸yñäÛ'’žÞäž¾¼ù§û'¿ýãM\¢SÎÜÜ?’Þ‘7R¹Åšçõ"½¾¹ùäãÓý­X”Ð:úÓ·wb±Þ† NŸßÞ9¥íé9>ÖF8NßÝÞÉE8ã=Ž‹q —ÛhÂé·0ŸÑÚ›xúš^ÔÖ+ú3ûý['OhcLKšÅ{zƒ#¼7Ú‡ÓkšP–*H¾¿U~±Ö¹Ó·*,6{úÓ¶v?¯Á$¬ð´ÛIúý*Á©aõ‘ °tÁ ¼úÛ þ¬Få:åwéUã €=DgÃ(@…  òô»íDC°§ÿL«Zaôé#ü)5ìÎ•ßÆyºK$îeÏ?|‚ŽS+«'ötþ¿rº’üÿW{FµAYËyýk6„#ê.€XÏž©Öds¿„Ÿ†*‘Gû%‚¹$âÆÞäkþp‹”¥‚]lô…5jµn¬ Ç”=’è[ŸêÑfˆÖÍÄÓhjm¤9ý+q7p´=ý¡€cÉtžÀ!:·6Ó9'Ì<ŠòôoøX©Ž0Ñ, î€ON –O>Y7Ÿ$ƒÓŽKrCéP¶ÿÑ­•‹uÁà°"ìÝ‘ˆ‹R!:þ“ ¤YuÖÑ&¤¥«F¼ÂŸB¯óSí#J+>ŠG'‚÷©gzI$ê#Iâ„…©<׈²¬`e"J8! óçp‹“¶Ä„%a¾zlÕ’ 8ðºâp¦­j!y(]á`¡lÁáßnäöÉ-;Šoï¼ÄçŒ"¹¸üó„gøótÅj œwxä€'i*ê{ˆÄð®§9¸$ú ‡ƒlC. ‰3º–6¶‚…B{³¦õMÃ*ø4”(DªNº I|.ý?c÷»fØ|ìé» ƒÄBÒ;X'f2¾¿*E2.˜’Ä+Ĭ1>aV]_ÿ„z.i•ɺUQ˜ð©ªoÌ·¨r¾UŒpSÞøÓ7ýˆ(6ñ`BÁåssäõ¹‚2[ m¶äÕzâ*„áæ3F-$ߣ1RpävF/Óá4ÊíÂ߅èžãŽï•V¡ªâÞ%A+ƒy\7+¤¢gˆWlijê•ÑéªÉÛª¯š ‘ÏvšÛºF~°ifÔŸ•C/…o•CMDï÷$Ò ‡_…k'+áÀ‰ý†=Ÿh4Í^zõ5!ŠGjóR(7œþx4^¾5A Åó÷8Ýöˉ×ÒG jUÖàð+¬é"nt?âå1LšíÍX>ð"(z  †£öë½;%o1ÙpŽ‚I\ (¸‹ &Þ1o4°¿‚Mrk¨aW. ðU fR«š£µ{’£ Oýëêú¥ãê|c4ùPNÞy1®ÚÉK•N’ä¥ÕªÈKzÌF$y•˜ˆKVL”Q ‡âp|ªS ¸<DÚ¤:½¦w¸Îá”t(•P¤l´Š|À®1!V sFº¨‰™@rãÑÀEMCs–¿ù Í Ô¥óO YæN‡d«¥/Òt!>Å×lð ¢´Ó ‘ù÷w´ºtR¹jò 8ÜŽè9YÊÀjë²?I¸µ†èFÕR†psÿÑ“û¿Ûóé‚DmGVJy¯ #÷þâš^v&&û:ÍÃTáO´j€ªC#ý»òºÀl`·u¢Ÿjm}@.Ù`CÚ<•ªRÄØl oÒ‹NvW'‚¯©+™ia¢qׯDC”<`Ï0l4†²ÀµW‰½—üm }O=r3Eái½Lë¦rfñA6n*`Œ€µ†N èz¤ ëØÚœjV ÇÕ‘giïJ¡}Ng Éø¦3"S~‚0¿½…¥­Z釄!Ÿ7{TµðÅIÛ«õ–Æ ±£j)ï—Í(oÎÑ¡õfovØ’íϬ–¹gŸ†a9Áw‘g}¥? ½á6ýyW®£²/ŪîsBÚté ¬¼Í°h¼…€çV°˜‡ŒDjößqW]òðIíÉ݆4PNõ„´ìyK#…s•/ðö;Ýnp÷(9DºYÁ²˜+ÛQwÖŠÃB~‘¯™áw(~áßÉ >ÃÅ›´?ûöçZªPhÂÑ7î¿Vâ!C›}F`KÌN#3ç)“Ù¤/W‡UQxpEtõãêØ®,–:tЄÒPeyÚ«håÁDÕŸÜmŒ“'¶KbpmIÃSðkö¯[ Ó³lµÃèeÇÀÎX 눋ŸZ;ô"Õš&áÔäVŸÅiZ="‚­m‡[o\‹ôˆí:ú`ã•Ê»Ñ˳´+°Žl|"Ì(ºD-šŒ«Ã`€uôÐŒ±~i¬M۸¸ëóK@·>¿•—8ž^’oƒ´íÒî.Ѽ½ši^M¡^900máÜŒ*ok}L±óˆ½ªÏ¬U8ŠÚ¢AŸð1¬êdëŠ&÷m4Ìß332 PŒÛŽ;ZÌ8ó~–@p ì9ó ð½¿HøScµ<±S’$qšÁ¥ÇÌ{ÀŸ/É> ®Ïz km§0ŽPë ù?µ –hÏK½ÃÀ8 ¹Ã+Ñs…sÛžW(9_°!Ç,÷6¡dË:ÈûNY6›ç½OŠCι+²€Ÿ §ˆ?m¦W†R<É…0ÅEÎÌ€ø"¹A{Eˆ€4GŒ×ç;|ÏSŒcW3èÉa²QÁX‡Uän)4ó'DÇË££½A… N—âРŠƥY_€ÂÕ5¢°D¤º©ÞÙ!Cܱñ#L¹)3¬˜ÆCù¶¶â)Íë«H!­`Ät€•=ç}{ppNÁËÃÆGÐ^ÊQjQR¯Ð‘?#¡‰•ßbUÑ€<+¡¼^‡µËa¤×6,ÝíÖ«%0åÿGšÅvÃðD¾]&T¾HÒÑgÈé QˆûŠ^íoÝ,ʶÉ/­•ƒÂføàŠXöuÆ Oãˆî(P™³vH¥åêåx‘Ás«.Ù&Íìê’¤g5J ·¡‡cÌO–!ð@Ãë;èÄ@£~f2¬Ôz8©)’ t”/˜`T%NìüÏ®ê7–’äË.ò‡°)› ŒPj–ѳ4h¾Ë:ëe›q/T­Ajµ”‰PE!÷ÏDd »ö Sg¬Á„á¯3™#—æìÂ%ÐÜç1"âOµÍÄ]Y<Èñôv%³…J#ÞÝ tee  ¡A±&Ô€ÅÐpÂ<Zb03¹ØE#ÈVh¢4‡ 3?>™aZ`2þPÀ%Á¹kD+ °Ú6\Ói0ÂId&Lð- ¯Þƒ“ 7æy'YâÔ‚í$o?!ÌÍLâÆ¥m;ýˆÑ æ!l“ ŸE Jb (`¶/%ûâOœÙ®×RÎ"W„€€=qÁÇ ÅÝüPZA „ó‡Ê£³! r¨œü=­àƱˆžË ¢ÐdÉbTJ!s\ƒâ,ÚÁB ,ó%—ˆ`VêGŽ‘Ìz¼2´½Ç—ßB@O7H¿`xR9ÇÇç)ÁÜ+þ"ÐÊTò2 jœ¡&žÁ ýbÆûEèíBÅŒD:š pQšpTâÀpÁ¼DÓìmẉvà4%}u–íú¢;"žïXÎ%—}4¯“‰Š '®72×Ù&'òslãwÚõ ›cD¤a×ý_ƒföÓ;žæµxž\bð;^ÜÝ[SàŒ9óz‡Sf4«&Œ†H…ëà1š&ñz8Mkä)º§œÂóº:bá÷&d/1t.cýCCNG¢#@”«Á8sʤl×'Šížï;—½ÁžmÉ 9 øhlZ³j$ñ%©œPqˆlñ×üÖb â-ß`;¸'f)Å܃Î]è>cì]ƒ¨Î€x.ЍÍàúpúŒ&ew < c+ šÑÕ)Í`¤Ç~ì2÷Ä0à€`cnn˜GÚð¹"U{‡E0HcعÔPG>#uéˆ?)Í^K_ªít)®×¾ƒ)j[æUjhB.7Ó5lÂgy„§, H±¾˜4©M`n0i8Ç}™ù2|Hn(%µË®™6!\̱‡ýùùÓÒ±Ð8ßw,„³ÎLAä¨`ëoé€Å]Ú"+ø&¬òÞr/‡×Cïw'Þ€l}•þ%eÖ–£¾z)é-•«VÓÜ`?ͳ4EXó·¡UgW®¯¹¦íW¿Ý "Ž{á<Ñ)gÞÈa&š2Ø1jù@nž›kð~iQÒ¼>?fHµXmË”àdzaRޏœ…+ Ï‚ž…4yi\ݪ& ü¶åk"½ã=›ð¸mSS¸f–¿pÔR«ƒ“ ê†æ hKJOÚ)Õª "ÅÌ:Ý̳ÁFÚÚ9Cµ§mØZa¼{·'¶Ã7sö9Ô…—ÑrÊH×½’ŒôÜéʧ¿ÈŸ pƒns׿ŽJdדš¿.Ó"³ÇP"uPpo®¬p°úÔÕ[ߤ̺͢´^ }[¡òÎ3Wî ´uns‰ñÏз.°(@µ"|ªj‰Î‘ЍI Íî³Ö5· è®EŽt˜åˆrœp”V6”ËxÝ/Žv¢­®œw›ÏÆ’fö™„®ÐêÙž ó,­îņmÇ’¶Žå¿ØùsK—-]3¹hgm3‘ ´Y„Ï·Ë/’d)É“’Êþ I‰ÍÛ›cµ×Q ‹-úfðÓa×*C4%™¹×“†Ï5ÿš€ç—(csàÔ.^ÎquA¶³‹”ú —áLV?2àìŠyųó‚\ïK/Œ²»ó}Ç=ugø“º„#9Ø3_õ›lÛ”Ÿ™ýùˆgÔ4ëlöaµ±°$Æ„} Wg®ôÉU‰‰dZ ?å˜VJW‹ƒ+a‹nSOy/B¯±.w$…×â eØÈ.Æ$u˃t­–žº™ ¾¡7³KÚR­…×ÓwŒ·ÔÑM³I:CëÉ>¡Ý±a‡v–µ’ƒµÇäïÐé”jÝaòç3QÐ\&XóÌô‹PÍgü0¿´þ=ÊÅÅ»iѦŒö ë¯a”îµèÂ2Ö3uD{冤îÊ*çl :øùÕªH|^Ÿ_1Sª#+æQßQ3?¥ýo EY¦â ¶kvp¥•£5ƒ/Uvœ5)öo’“pB;Rÿw®áwêkàȵ£¥]€*F•{¦Ÿð75~*ï#à*}6‰³s»}¦€&âßm%Ű’Fó5éV‚>ºãÂÔê}3p⦰°Dõƒ­¸ùð9Õ22íEjžä7ý~Óþ4œÖªxT‰¶f»æ“fâç «ïj?/ùVM þ΂PkÆà5$ ©÷ù³‰jxCæo.BË=ý=\ ¦U਎ýªŽ•Þ7³naéÚÄÄp9l ÞöDò©Öž ñ5æŠ5y>wÛŸvútЂR­X¾I˜Þ}³²Î_Mk*Z´ùN " ?çsÀ/WMÝ)Ši‡uO芆øf=ÜrÇ[Ãr®,jlÔ\¨Y:Dw¤C×ââœtÙ÷ðDù#‰ý6ôú#I§}¶mŸQÀ’Ï$7€ÀÂè›O_›þZÌu$/À¡Xü·$¨<»]?³òÁž·XmKXKpWÍÕ¥¶uÖå%‹FÞ1‹A|é¿•X!õ¶îÀ µ˜ë{§$ÕõÀ[êý—=†±­¥`]ò€D`«Ä_Uzü.ÞǹO;Š 1¶Ï˜uW^«¥bKU,{Cà qZÒ;ùîAÀo Ö¶xgmtÖà…=°£^ÉÎ_ÞÐ?èÚ ÜfÐŒž)–“èSm)¯ê ~‡Ú;ü~×,U¨Ñ°AÕ¹9ëit1ó6O>ðý¬,j‹æ¦Ó÷³Oµ-Íg{»6`›¬±â´ôƯ0°fëžô%=—«‰Ì’«?3€Ø ¾²뱸 ˜®¨²út}ñxíFÛÀ5ºïýä}Ô!?.NîùÐsÍ/&ÚÆãBµ6.‚"Üú¹”Ö3aàšhŠ­2HÆ ïï¾I5òø1"·IH/Ð <…pHO·ðt ·Ÿãžã§läqæ­Rs^EgZW¸–H3h×7`šþfVn-ŸéÙJ_¤#ÖbXë×T”gÚÌ`šyF¸Ù•`u3®ànðµ­º¨ýû„eõøMz zõ@v-»ß%NÊ;¯cemvŸÁÄøQK°«òœ8˜hܳØyäšoЫ¢dtFßò».^;¼ä&8m„ÄÚ ¶tF@êMcí¦ß,ï›ÆË¬Q7¿ †Î„6ã»"˜U.N>ñbcÜñÌ”M¤_8xªØ3¯ºppm9N#` î9U¿_ãdJ¶ý»Y£y\ïó„º`¦½š»àPÛίaÖ½Až“&«cå³B{Êpni;æ!Bçÿ Ûéöᬼñy4mF¤³ˆå,Ìtyº ¦ÀDE5ÙOi<óSË‘‰05!í·£Ô O/É/u/R]GHxŠIC—]ƒ~]]RÈÛµå?³îZËS‡Ÿëo©£qÍ0sÍ¢¯&Ž¢hˆøµç QV?ÚUfŸùÄ>‹RÖ¡Q+ám@¾¬æŸyœXŒŒ“´Ó)¡ÈØoömxýÕh°œ­3hð >îJjß‹rUŒÕS~«Ì¾ÌÐô›ÆíÚî3@‹›÷sU`ˆ ’5áËje—uWÊulçªÇ§œ·€E­’ ´L ¡™®p.^fAÁò¥ ‰y«çyºtân¢\DWa·Íj©hÌÀ²Á™&ñve5–f•m¢´:ðÑ¾Ž‚œ—•æ¢ç‰-4ùp1ï“:ïI¿þÎ÷†×'Otž‘3îDIB{ÕáSüNÖÀì c¾ƒÙ1ïRû ôx}±m‘¦ƒ]¤S­VV¢‰£›H;M»âüð&ÍÒ~z©I¡ƒ›o™ëMÉAŠœÚV%§Ö Ó|×~Äôbmóðò„½»V¿]Ö©y{!ïµ6Šf÷Ìå4¼þ‚rÓ“œÅÆlÁµ1O}•4.¯§ÙÏR§à(ÛÈpÆ §Æ7i6±SM_1;”^øU^\Œ{1O-ÊI*Ýìj»ÐoÙvF®WˉKÀÒ»\Õ¾¾+ÖŸ8ü÷÷Oþþþ‚  ìendstream endobj 716 0 obj <> stream xœÝ]IGrö¹møèƒáÃ;¾6Ø5¹/#ðH#oÉöe$Wi¸‰¤$ËþóŽˆÌ¬ŠÜªßënrhC=VçË‘QY?Ä"ÿËÿøâBž^üp!éé!ÿïá‹Ã§÷/~õ¥Šñ—è”3‡ûO.RyÊ-֜׋ôúpÿÅÅŽ÷/Å¢„ÖÑŸ]^‰Åz‚:>¾¼2A/>ßâSï†ßïð·±Jªx|sy%áŒ÷ÇW0†ÑÚ›x|ÉÆxŠc¨%8y|}y¥ÂbCÕ–üþÖÚzåË," ]=ÿéRyx.3ufqÎRc'¼p|ìL¶¦ü´1b¿µñó4r0ûêèT™Zc?>u½BœÛ{{ü6¯Ê†jäwH§ÕѾ„¿K؇êïüwÍXž5ÐM™LÍöœñc½?ëoÓ^ÉXÑù$=uÆV å›ÌWø6"‚ÁžðاB5gÞ[m´¶sÿ_.”óØ„ëþ#¥ÁÆ{Ü 6¯Di•š µ>>Jt‡¨«Eþ95 ZiSž[øKµÿƒùµò®œÒé‡íS‹Pæp%h†“i|ÞÿJ¤‰dõœÏË™4Þš:¸E‹¹¨¿€Ö†S¢Ûjì RRmäƒJ©t°‹ƒ'âÙˆŸ†í°rºæ¢¹Û© SªSè~I; C¬VÜË9‰ —ù_@Jæ]Ä1N ä/:]±AY‹Ò…ì1µǃÓ$vÑ rÿ$ÉLtœ:¾,þ{bø%årQ6åø£Nmý4Ò¯c„§ß$2¤+Ý ŠÁ. ô˜”ñq¦_ÉãgdÎE4îø¯Ø"*i¤<^%•ö1ä¹aŽ{˳.$zI¬Íºð`¶Ä+P®%ÊPø¨ñQ›%H“ù½’­¼ñ!Öß“]|H–Ô sücj \w•ßhÔŠfÐLlb4ÿK`H£Õ\ôöVÓ€©šli £7ÎОBkПŽT ¤zf›§ŽvŒÏþÙæ®ÿ}ÕO±…2Þ‚Iù.BºÖç¥ÇµmKŽMÎ Ž˜5á[ÉÇ{”–@î~Þ8ÌÉn„‰òBÍ —ÿlž]1¯Nj-l¯ò®*µ'ƒÊû%ˆfM”õ]†ð@¹bõN0ÕÒ,ä˜#fß$–(XÁlƒd¨‰çÌós°Á²UãÔ¤²ñX“d'½]”³ÌPÏ“(˜É{Ýøhh`¬_gÖ4™:'mÕi‚–g&õ×—WNƒÑC_±{œÒ(ăõ°¸³£\Êp6´Øž:;ÇžÔ¤RÇ„çfàu¿íÚšhâUqqÛ’[˜ÆÆCL »ç}¥ïÀ¸¡ß3ÅQ¸`åteÉÞd¬ Ñ£­!ÝáŠ-¯‡6 ÷‡Nq‚øßÁ郪äöð7L€Î¼QðwF‰úEóýãúÎv†ùóÿfËÞßãQ¨&ÁðÚV6%:~W6%8FéÂQo¥1SKÏ,\F\ÖªXI/kr£]&Yª]\NhB¡‰½ +%@/gW—‡ 8÷œ¿.H–0†›QÕ¤ˆß"4è:9³h·:”Gõ>­ôq»Õ8_#ìe¨?2MÃzŸ°~Ü¡p•8%Æ|5Ô&\À¯¾tÖót âìà×À€(4¤ÉÍ£=¸%zÀôØ6`ªíP©½M½>K SH©R¯&çãAXU§e#˜ömQÚ7®lqåѬ²h]’¸o52ˆ˜šåvNÃ88ìNe¥yO=q¯#š¢Ð"D -Úªñ¸ˆ¦Æ#Ê™ ;ÑïD³øýâüŒ.×ó•’ôº)߸ G6X_9šgغtVâñDÞ'×þ…tÖ Ôý"á?jé‰-h¹bÎìñ¶™˜ŠÎ¬æÄGóÍùvœá`£gØ—Ö”tÅø´´o×Äæ,Œ|E¸ 1gÃ,«ôð.ÁRDOž¢²÷ÂÓÎ2Á-VÀšµ€½.¬™¼½s"HÂ…I…A¤À+@ªLíš4ÊhDƳՎµYiÑø"‚E]­ÔÉòuFÖ-¸”,ø†a09ã$åh>+[“Z™àÜÄö‚/‹Qª¡ˆ]ðÄ cŽÍÅEš+€¤\ŸôZÕš…»™ñ˜S:KF^†Eä”8sÒÏT'­äµ‡ê,º‚!7Ô·ãO'q)¨Œ¨õ- å'…©U¬Æ—©…^œ#p4²õØ\@ó¯lm';L€<ÃA ¦`*ÈÈÐ+Ûe,NÕT­˜%INÕ)³Ãwià*K“¨h½Æ¡Õ5+è(£~œ¯/Ù¬ KZ‚ÈÖ¦¬YD™ih”B½,Öá/7^L „òN­ƒé̃—íbÚÝh«S¦ò~©PiáØ]üÁ^òd ‚•-ô žQ5ŽŒaÁ>Œ ÃÄ>Œ @‡\јY¥â˜›~ˆá¨Và|B8Ý(27Ùc/ÌœxZ añ܉kîD,¡ &l0¨Õ°\@ZüWà{¬Š‹X‚³fWvqVÆ åÿ»á g¡ÀUŽ2ëÔAi ³Pðv’FÉ52©yp%aÌ(pÿ„ÍãüDü–Ðiéåùb5üôR UŒ ©™á_ÑžF£,>™]„T ª—B†ƒ—œPhíµ°Eqÿçˆ`e(sÈzS! •k¨• 5°ºl[3º†8ш·~Erk…2ÃÁíòÖ¤M2Q|ðZ,ñ”7‚nÄE»24FAò*Ú0¤h`yZ‘± °9µ…áNjHà%¢O¬».ÊÎLbÐ@ÙÙ„¹(ÓÇM;öúüþÅï¡«vñðô-Ì»ýó…8ü#mFè`…› /.´ŒavåÉ󋯦5~”šL/0T]?.íÅIz‚gvFÞBO"€Þnã)ÁNLôÄ ØÎCÝëcÒ“û׌^äñtEñÁÞ‰¢t”uYElzßš¢o@XîMÑzÑÌ¡‹àf§µ'Á¡+rpë5VÕ¨À¢5ÉÔ»LÐ+[\&8ÍÕô.Ó„‘ˤ3ÎÞeªPögà2.›\¦ÒæD—©Ò/„ ¡ðà$S«º—y½)0ÐZÄ.󶦠ْb 4&KHG)”ZÇN§½“Àøß]ÜÿÛÑ_Ïù_wúÞø‘ÆZ aÄ®®PAm<æ(çx<ó§õü–a¥ëïë¿v\Ý ª½YÜ%I®r"ÑDnU¬–@'¡­ @¿z²çB›­_]¨‰0;  s}ÿû^ìÑÿ éNð€ÐXéBãÏÌ»sÎr¦‘Œ¶kÄZQd¿Kß~ª¥%a8ó!À¹ÿƒ^å,Kã§•ÐgX…Ê÷§ç s º¬~ à»Ð¹S·¿¡^:Je&Üu §¡ç®D^uü$Én׊8’ˆŽ¯ê}Šù®84ÜÅjÈT­,%£É¹Z§ŠC:Ax1ü¹% c 0¡„qñtà軸ÿFÌÀ'D~¸˜]ØØ™#Ø8CÆ ì’X˜ÜóWŸíú«ß´þÊ5)°lÉ0Û Ñ!ЄÖâ³6¯ƒ9»ó2ú7ÎÙµÑbÊè+P©þÏÀäòÖ{ÈÄ \¾A;Wþy“ËÊ!@\N˜yfÉ„÷YR(ï&§¨üãÈ,yNˆ— [¿×ÄÒ1{7I, 2^ÝkóX¡· ¡½eÀ‡S]iA)oJ/[ÒZìÆ žÓA“‘jrДÎôð4fp¦‡IrL{CGåüô™Z­(Ó¸{ŽNÛÍ+myý]¡EÕCº:{ÃÁþisÚa#Î=—ŸJܶ$QãéÙ¤Ða^7–9§Ûa¤ß‹©ËöX½+J“ÌÙ€oýa\)1HÅ.úÕðÔ¯% ºŠ»U”DtS¼4«}“FÔ¶®Œ}™F Ùåñ:âþ©.ßæ ´˜ú¨©óŽ3öÏÁU4‹ÐñŒƒÄîµ~míz/R‚¢îÏ[·å[“¾P™¿ufã”òý !G»`³´Œêþ58,ClŽp‘iÒÉZ‚p%à8ö;,œ)LðòÃUá„Æ¶ï¥‘Ž8@˜vÕ‘^žÀSÞ<èªëùï¦dÙ‡¯êÕ*@¼V×- W& 9É»fé°!ËÞiÝîQkfI]î0©>¨%K3±Üþ凴¬ø§Þ7,²•2¶v§Qj¿èÐ`T£Òß®€??¥ÂJ¢Éêj…ðj¿ž!Oªcÿõ·J,ÎÈ“ëo=xeL­'—þxŶów@Ç ÞÛµRCj‚Í´Ðö¿äù&1Ù‰¡'ìø–Öæ¢É•Ay9µO: ¬à›^*Ü]õ–3àK“]á=g6dlyûBuíjn-‡úšÃRÏ8«9_·x;*;OƵP·PÙuD´«Æá‹G»PÉ` QUØî2ÖÕÖˆùãg »ºä÷zT@ÂZ»ÿ£È@'Ƽg¯‹³àËxM4n³Öùu›sñ»d5,D ‰O+õÙìlS´w«z€á@ôj”Ϊš_CÂsªæ×N 8`‡`)þøÏi‡ñ=Úw™["dx}s*õö*v¨6‚Œ“–é6†Ú:õõ}\T0Hœ8ïÙë—Ü5vïGÄÅkwN‰ž9o—‹{Lqf0^FÓ·Usj ÑÅ®jÎh*Ø÷ÏŠWo_U‹œr¦cà¨`±Ì[ãÂæÍúµãÄy 0âà}‚uz¹ ð€¿³KîIì^¡6ùîÐÜ*PpÞ_ˆ°õ²!§µý\:ÕØ¨Òql$,½#QË¥ QíÔüai]%U´£°T~ú»¤OF Çr‰9P§:¹œ¿g³bõÝW¿5 Nß‹¬÷#‘m*+k1$ÈÑ&¶ÙÚÆfñÒT-¸ÐLÏ™îúœ3¨»îz—&æÈ‰ Í ‚8ÿUžö¢|EߌJOÑéS5#®]¥òþ¬c[<[ì‚¿ûâ™y½i»òü ÖåªrÒ€'çNº?{kœ4bHpt@õˆ¥ÓŒÊ80Cj}rƒƒ jI C@|àÎ8ÉpQ~’ü•;àýIB N‡QA"€¼õ°éÎ c?O¢WŒ8´Gò£9¾(…±àü"ø[–û‘•PFÈõÍ£V¨Á™a‘Ë™”ÑI×uõ~*Ê;©ø3 <ä9®/Ž8J«m˜˜(|½¨¿£’øSLÔ¤êæì’øÓÕÝ#D«ûn<˜ã»Pwô¡º×»7T÷ï7Ð0vˆÃpü5Â[ Ú­S4ufvØv*xJUN‹ï°*'ÆÓdœtæY÷j(û¾FªäkAñ<æË6_kðåWNòµm©GöµÚ[Ì7Á‚Þ"_{殓” °i²hxÈPÚq³mÊšª&¢à€\‰nÆêébµZd0f÷4úJ+Ìœ€Û¤\©£¸Ùûkç!LpXÒêñ\¬åßaJôÂh½ €ÃÓ&&°ÊÄèhÝû­½…'´i `ƒx ¦F¾‚HûñWy²« ámOõKÊÀ.IÎ Ö ûìw¤ÍïÎÛ/R¥p'©4“ú·çÛVcÊ· ³NÈ.Í.dÀüž…Yw^­A „þXO„gHŠ›§/Ú« -«û)_¼Êkž-k’é*-Ù'K­ÅÚŽ*åù#[<ù1»Êe–2ÊüÞ´‡ÍeuœF>ëìXsp€V®cÅ…˜°2©»9áÁZ¹ò›ˆŸNò÷CYÏŠðÅ)QÉÖÙ§§Wuž%åL{5ÉŸúø¡á'Ôìܨ2„_ðÓÜCÑ_¤Ò]ðÓd?K-BÕ£Lίf£àjBhiÚœ?n›ThuËKâ`Yø„§$pÊä'„4Kw)0>¶MZ§¼)/»+@pYý¡L:§ð€X×[kWâfõݹnl/$ø%I…žñu—%´U݉(W§É1ÃìF">ÌÓ*mzU8P+×m¥˜®š•ñç”þlgO“žr­èðÔ̤ŒhJùÕBœï ¤d;7œµ?£ë9cmžäË7…ßq~ÔÑu·MM8#°§”£Ûƒ©Ï&Ò •RÏÏýRîvré4_^'Ц¹ì­9*FPá ‘¬.? ¸¤Ô+ëA¤Y ®Fb93ŰËýR”%½¶/.†Ÿ ©,ÆxqíoÜSe¶…˜<ÐeÀo¯Ôþø%M‚X¥O§Q*ñ.W¸ ò†P(â¶|¶&PUbDîùÓ¥†¸ï—}œ¦._¦j`/KcÐôÃ-€¨b5Ï»D!´6Õ<ƒç4ä+Ƹ—Ûð¼+{Œ܃&’úoeòÁ3‘¶·"€Æöå5·Z©qœ%xklÚÿÉ…a-Ìtx÷î´êèüš>ÑÉé}éLÌÙÓÛKdžˆS‹UÞ J9û| IõÆ y²[\DkÔÓâÓYUTo(±õ/™噕ØÎ˜èÏ`pd{æ–¨wvUçã4‘U®”ÐÕó+ˆ µ®’»ºúí,ÝÛФk†Nð £iêÉO3[ìZVÓÝDtN¡jsk'‚ U1tÇÓBð ÊÊ=]Ž.u•ÅhÀ»5AAÎK‹cv ÜÆûjÁ0‰‰3þ˜7ÇòIà:¢žì1/!Œ§Ò.lÿæ4s@y6Q"x0µ¬íÛ„´`'¬"¸>&{Ý´W îg]’œ‹çð¬­{ £ë·ý}ÊÀvÌ)Nîmæå|?ާžøçš_7ü„E¹(_rÖ]¯çÂt.„S" Ü]mqœiüí¾`R×Á"¤–#ã'i xa=W¯ªÖ~çÊTšdv1î‹’¾J@˜4ÜZÀ¨üÉ713Àˆ†Y=}§!bZ¾)8ŧ.Æ»Gã㊴·iiŸªëìÍÖ˜}¡à^&Ô•5pL®¿actu©› E8' ÁWÂ4¹É™í=/{Eª#–ªùö3‘ŽìÏ®_Û¨Þ)[ᆒ ˜H4©l/™-Vhš¿Ktzu¨/†vêvÊpÊ-ÑB.ŸÞ Ö¶—iÑu]éÄÊä!aßÕ4ŸØeÖ^Œ**·ïlp·”ü Ä äÇq«CºVv}Î]Úæƒ†^/aþò^cU¬äb9;ºýpPµ;=õx4eœƒÞç™(·*5èeT7’¬3n¦æF"-üO#á@Gp»Õ{…Ô}³Lîw‰#ažß½?Û^%t/eœo«åxI;Î.að3зY2êuBêÏ'%ÿø, A6ï6+x¯B2u>/‚¹ÏÖÆ ðGcg埦_•‰¸`Ô76¯‘VÿîȪÐTôªº_TûMðƒ;Î)—ѤJÑ=õ€qü5mn¸½¨ÿÔ£M{´ª»­š¦WÓ€ŽS…µÉ€^ ØòߤÚr)k{õ„³¤nÚŒy]<ãu\‹™à†Pºeÿ-³D‘ÝÖÉÏÔ_þh"Ýü)nR6|UbeK¬î·ä]¯¯Bí¢¹¼Øyñæ °w«åË*êèíÈ)é‘«E$3*ö|—Ú¢RÌŽ6öAcˆþ6¨·Ñ€…²M >ƒ‰$®Ö»XÌ€ë<.@Ú>«€j´ÕùÃ-Vò¤Å«Ì §¦¥ª|éì½{3cJmT5Fî”;ÃÏaEÒ€hºIut!˜Äkx÷î¸E™ >ªVÀö„Íf­‡Ø hf+axÊ#p+(%”ã}Šá_³ß϶ßì@¯½ãü[QYç+ öS2*U¥rÔë,&À(­êdÅìù+6K5´è(Cg>”N.VæòéF:Ç™™H¬œölŒK'æÈ7]ƒ„MG„_œ¬OxŠƒ‹@w{uÀº‡ýû†¥›oõ¯V –à{ìƒëp³èæ,'+Ðfƾ)ßå9ߌR$•„µá¶ì~ïkCz"‚g™¿Ûø8ïóvK8¹¯É™"3“ãÀ”ôÈr5ýÜßäk“wH˱–ºæ“v齆Τ§d `Õ¢ÔäXÈê7°º]"zæ‚fæ6}§¯|y°wÕöÉS4(å«ÎðʹÁ™fýzvmœ‘Ž:¯ ‰ôäsiVußÒä÷’ Årr÷zw¨…>ø%z!e.1²~»Û÷@­´tº¤éô,?e?¿Û¼Üž‚ñuB9,á[ÿvk|[À¿Üñ‹íï__® Îa#½‰ÈújkøxèÝöô?·Ÿÿ¶5x2lðÅÖàÍöôÕöóáÖàñöôíðç«á` qR¡átyá(?É?Ê}Oïš9¸ ð†°<Å`!ÿ³öÄ'` ^AzµnaªÎüX»·v§ëŠòƒX‚ÿõÛåÿƒmÆøeÛæÑr¿Ø]î ~Ñbvâp¥â°¶7ßM·Z§íçZ¾ùû‹ÿ “LÝendstream endobj 727 0 obj <> stream xœÍ=É’7rwzÂàð¡Ý|%ì‹:ØÖDØh™^"¤‰ »É™1Ù¤ÈÖæåîÏvf($P@½÷ÈnZÒA¥z( ÷ ôwb‘ÿÍÿ}ñ摸xõè»G’Þ^äÿ¼xsñ7Ï}ñµúÂ/Ñ )/ž½|”¾‘RÉE:áœYdPÏÞ<úæòWbÑÁ­._^œ€ÿóòòÛËúú¿éÑF§/Ÿò·i° —_Ö·_Ö)D}ûíU}ý¾¾¾©ßÕ·ß×·i¬Š—·åáÉÕA*¡m/¿Èï~ûìIiïÂÅA.:š¨]j¿f#âb h~ÿû2늸ª+½-wåá°?n{…SÈŰñoë¬×›Y½°‹rzÀ·([ð9J›EK{qKŒRä!g1÷«3˜+ÇÌý¯«ƒ @aˆ=o7„¿É?ºËwåÕû µ_T,oÊ»›‡·u˜S-Î(Î鈯î›w ÆXßñn¬(zE¡Ç×\“ì*4|þªŽx¼RìiÃÅu(™Q(Ì®å"¢º‡éˆ‰O¯6F Q¨¤üPIù¦¼{^Þµ-Ï®3rz ½3lÉõÇ{×»3x·1rôø¾¸­oŸ¬´ Öú »eþ§$Áä£UÿÇGÏ~ýÍŒùÌ*?®tbª/ëØ¤Ù Á£î'>ú̘ö·õí‹c’;Ò¸üð»úÁïË»•‹«l<ß|w70Îw› ˜ÔfaQÁBÁË¢×EÈß”i‘Â+ñ·$~zŒÄOÿŸHü»òБ“>8JPN¼‰9Ae~±Šôiy¨&g¥±h~KX”Ç8äS±}Þ£DoÙ#Ù)YqÚ!žª.0Ø[ÎKÑð’©ïAãèpŽp%ã͆K/{éà?¾Yc’÷›^”‡Q¸µ ψÏ!-üˆb Ö~¢)•q‰.v6îspY㲜q¹7ÒÎËÖHñµŠñUÎ`p®P-€ãÙ¦<ƒÑàêè!Þ<ˆÅz*ùA ³D‘TÕhí 9Rd5Ú‡æ< U´FŸáµq äg­­W>Ïb"àyGC¬’Äð:äm]è—·KT†¿}™€ò^Ãtð¨)}Ĉ@¾O(h£%ØŸƒ ‹ Ú _1Kó¹ ˆ`½‹:§ ¿wW²¾Áùs¢”ž²0x†'-d¦šÑÖfz+ ¡uÍø×°¼F9F£Úà½|Ä»ÉsžQH@•ôÅè>©ÍX+¼\¼+IH@@™Ðɞݫ¤eVX`é%È3H&äFR-Ö8Y³á.ò¿pX·e¯fÕ4˜^[´[‚R„QVŒ<ñœYÍ‚\··­¥ˆý¯‘*1z%ÓÌbKTœu,×O>ßóÍâ(©œ@3=áïW]¼Ý.YTp¥ò«Æiƒÿ€ Qo2FZ„šÌ€ 3 |I y;œ.™ ºh•„+Øc\2`c$'«Q…! îç-,eÁÐ;W„ô$ëà _óô?ç…äL0‚Öºñ¢ }&• Îp]È@‘q ÅgÉTS`Ç¿g ½«ÏÉUgÌI£Ðï8ßâDn…£š,±4&ñÁ,.’¡¯ZåcRÀYÏà5›™é*÷m´ è™4Í, }Ǥ`®¸jý8õÛ+· ¹¨_“þ:Íg]xP/ºNö!Q}äŽÞ?Dèý>‚éõ©r\D¡ )˜Á&u @B+‹:-è$sÎ.ZBˆ©Àš‹Ò¨x 9#ǬO!$ð¯c–Cð˜ùÃ$ùmŸ½8 fVçM"zô¦™›óh£ùÀ#£û€ eI ½ '‹= †b=å©cµ± rÒo]QdúñM‘.>$‡h†¡0SXNïÛ48è&r|Ñ·‚¥»üó+Yâ<ð!Ø"qÜäp“»h¼»ü«V*¿øÚ«&p9МL#ö6ä$à¯J@4 wàÑ긊þ‘/0Ò‹<ú:E[1F´”ø,¥Ï‘äW>Gjé}ŽÈt¢Ḧ¥\” ± o”V®DŠ&X™ ‘Q Î2ž&€äCÞ_Y R¬½í1°§ „N(Jxeff•óýÅUÉu0ä8†Î„­Lå6}2dæo“•p¶— íã¢r!ÄÆ(Þ´2¥J’î­)¼uFß[±®>Ÿ Ô!l‰b“H5‹HºVAX`ÁBWõ-Bî—V+Ë>#l?u4eeŠ@2 Z’"káSá h,äÙhd(m´üûq>À‚‰'•XcÝG56šTß`örÿªï!M€xõžT_Et©žJƒY—ùˆœ:*U=Z' `k(xê˜ßK)dó>Á˜Ô ãu3„½~…zHÅmÊ ònbØè«9²|"EýrÈ©%š|f’0<Ñ€ÿ¹&‰g$ _fÇCb7*dpÄK ƒ$XOþVxî9Å$½g™ü-SïˆdkK7‹rÔv’ÛôZ›ã$õÑI` [ƒÌƒÔqA kÍÃõenJyÄðvu–ÝåôB¨fnVJüiÜ€}›ôæ”ð}µôOŽÅ%Ü6™ð ¦)@"q_Q‰–èC3 2‰VøŒmKæ\òðó‚¡Üç·)"· ¹M‰°*{¶MQÁ òçÙ..eméû@7Õrž¾Ü¤Õ¥ ƒ 4|] Ds9¨šáwÛœœ¾·¦³i2ŠA ~PJ N*¼ÄÁlÚM¢nĵ…G|ãé…G)h»ë §X^·`ÄàÙÓ‹˜ÀXª)®ï^bªl%}+,ȹMs ‹m¥êFµ­ð3d8ÆÃäì\ ª‚_°²|/µ ¬°bõÿyô€²”»Þd|»ôö£aBÚâ¼­¡ÇZ„¢½ü=ê–Ó¹ÚþÑKS¬Ç]L»•çAp1dÚвץDF–­Li¸(ü”a P¬ª›¡jJ®Ë$¸Z÷:)ßq´[(€ƒø¼”ïʾΠifpS‹Õɦ6޶¬N߉…ã<íR2m<¤ý~Ê_ü÷ ÏR\‹Š65׃hŠ`”Ef©Gul0æìG»Á§FPTLåÏÚ>+ì°-Qï ePòabá!vã¡QküRqrQ½nµöy˜ùæ­Ü(á[“O¤µ1£\šÏYp cVò’t¡h[ÏP'm09äâ8‰öØë×,†yXVnÉ\‚ªÖÉÜLR?l6º¸-Eå [g¸_€µÅ`mZÉN2òh|÷Ônnã[Í<Ì¡ÙD û%zbƵ»r7Ê«M/¶²DÏ™qìÒéadZše ¯óf“ÇB=3ÿMJÉ£?¢ŸjöŒ˜!ßZ‘xkÓÇ 6¬H‹Øø¼c”ÀŸ'a³ ÛL݆t›6"³\¤¹ü†IŠ©ƒÍ3IJ%yK[GæþË&A‹iPÌìí:ÐâòZ”Æ1垨Ü5{¬\ÖfŸîï¯[öÞã*I>ofï;¥±r0”E_é3˜Cmœ|Š‹¤v«b$½äHfÔ™¤³mÍd„U ~Ï^sYçÃǵKî0KËVVy^°œ÷á^±jæãâÔCocUãñ!UÇR“`Nuk¿¬õ)›¹$y\P:Ѝõ©OO=¤ÂŸ²(Å"RX;U.ì’ÂI¬Øî†ñâfË÷ž"¢ÏŽ¯È¹©¿yÍØ¾ú¬ÓDIëͦeôGö­‘(ÊŒr—¾õ¨ß*„¥ž›‡ç9µ0‹‘<–" ¢,Ø’¤Î¤ö?ÒpäÚ8…>¡<Îs’I ˜Ó‰ië)N/ÚäØ\?)½Þ0üAFÙKá)ŠFžÈ/ò;Ÿ?c„›äÛmV•ЋĔpO…^ rÖøÿ¥&¾³F–γÉ<-©ø…6´5 ß ñ`Qé°<Ñ·$ ð Aq”MÌwkŠÔ³Øg›SÑk^X­§IOEôP›7÷Â&íâõ¨´µ‰Žî‡=Ë8X–±Ç~ÀÎKM­%ÖeaÏ;i,ëYZÎkìtdÂÜÑ…Y¯ôO%ª]K³Ó6ðê÷8§žÕ¢:‰'Ê*;ØqìÜ _±`i7‰Ì¨W#¥Îp+²ÞûZX´îŒ~d´1“¤àxCÃ)­ } ‘pšg»í µÙÓ!âù–·q“èY »rÆ]6àÖC Ý¬ÓËâèäX&Æ—× ïü¶nQ&Ì¢¨„ª“vJŒ½6}€ÚÇYiÆ¢¯˜[‰±ûCpkV€“;ûoWA¡-KµVC®:3UxòCö7Py ¤÷}TL5ª±îá V‰˜3§0o­Z‡gW i#ÿÓL.mFX3°¢ERîmö«¢Ýš|“3T´›æƒýæl½NpbíÿvÄÊÜõmœw„Q÷ª4£èÈÏ!œÁ…q4Ô¸ÕNß>®nÝ~ÒŽ›©kÿ”¤½l&8ëÛV’ÊÓBúÞűŒ?o†²À§BÄÏ1¸N<®ï×­„¹µñ3«–t{ ²H­ÖðS›€žzáwOG¬“sÉzŸúl š‰r¡ær8ë1ž´ÔOŽœÐïü˪üàÉ+Û¸égZÈ«§¡?§ÿ›„¾r›d:÷áïEƒ?ê6S™ÈC~Þm°Õ¶ºõ·Æ9$2Óƒ¡r̲hŽÞ“VòGMÕk°{)bßk õÔÜ5¾a[bÐlX#“9TúüF&-u>Ɔm då»=Î Û;„òÂ>J¨› £c¸¬î}´í§¶\ª'[Ôܶi ž¥ó4kןl.÷…ÐæÿúéæÈ4ÞƒMWë%3HkvÉD¿ €k¸Ý½ð>î¶åP|¢æû(“Ü캙Yã‡4¹–aÀ¼Ü†„”Ó—hoÓp¹í–ÃUDhĈhX ÆÍ`º”Æq³UO—ÿ”&£úÜ+Ùõ9ÑÝ3ûíDê©r|Ì%xµÜ©6®“¿ÊÕ4.¦oÍÝTG+xÓ©¹žèѸÆL´Õ~¢7_ÆÃÕ¢-¸ÑՆƵêns=¡ÑºÕÝÎÏrÜ¢ÏP‹d§ÚU[ #îú|€sƒRs´Dw}•¯‹ð'äUç¿¡JŽš™Ãļ²h´ÝÃáÚÜÉ=¸¦Kg¡‚ sé<÷:&¬¤Éð 1fÙnÔa­Ž|¿±)œúr%ÐR‡§H_Ë®—Ñ;(‡Ëå ôÕZ ¥|´Ø{®Æ¯%ÐRZ÷òé•–ù’Šf$Á%/‚ ÷ é%¤” •<Ž®+@&l²™X®‹†&Z!uê,ÁÓg>ÑirØ0êÙÁòN„2cXoœjѱ„,i%öé8S K "žpß›“Kr¾QµÞSŃ'.G$bTªvŠÎ#v ñ¢mÇúsfÝgwÌmËqi»Wqñ¤½îÀøÚÍ5¢›†t÷Ýc#ÀäÂL‹‘ßчTÖçŒè¶O&eL$³ÒózY×\BD kG›ñ^–öqŽ£Zå¸L´6DD±æº÷Ø}¦êo|(è¶ž{Þ¸ÃYhñ"R뛚7Ä ¯D¶5?ü ¢Í½¸ ‡à5=“à §¸ÏIqñ9–s!óž×*[Ù HDhÏpÑKm»Ïj#ábŠ Ç}«›EÛœö`õ£³ÍM]Èëeeÿ ÛÆê“éíqfa…;åà ; ;—}V4ðÉ2>Ûx…À‚+°’ù2‰D=ó³Vø .­nœRáU{vÍCÙÊ(Ϲ®k=÷s·+ÕJR:w«£¹ !ß…[¢×Áâh.Rø õÞ˜w%è N®ƒ }©Ã ¶¨.Íg­óBšF#ôHÈI€Ëaäæü>hUÍI:9à×ãªBu‹fZÖš–àF!„7œU4öÒhöáu 1]·§5lF:±•¶ˆý‰7´=ämj¿—÷úO9TĤ9{kUÛn–K‡XFšå3\AÅ´¯’QºÒòŠ).ïþÈ·Yòk/|±‰M Abl×S;oÔ(‰ÖàÔÇÆ§ÎÎ"ð÷›KU)O¨./hl±­Çn':v±-vÙ˜ñ¶†V´4º î—ÓW2ª»N"_¤÷°ȱ‘UKZ…ˆxÍÐØ%Ú¡ð÷•`û<ø<öÜèôÙßèQH9nbpÔXXÜ%„õºÞ=jà‚´ŠŸ~]sÑ&ÓÔ‚ºÔ†R‰×²Ì­5v5«“)f¢RXÔDi8Ï¢YºšýLª·fÿß^V1b¦HÔãÚaú—¤Z…u8ðÚ@b,µ¢ào  ‹S°d'»géÁ-˜¼m¥ƒ˜èYz”®8í­‹ðÛE3þ!稊ö言4N !YïtÿH6M3@üÐA‚¢¥dÚ‡†À¶ U4âšJøNKÛàZldH»¾Ú*k†à Mzzqh&û’L&Xm Ý•Àr¼Ø)¢p—{Wÿ=‰ T&Ò…… C•Z4¼MŸQo"Hszšêýv }¡Lo¼ðÀÈz濬R²Ü%d7¹D^ .´@-©†³ãuö`(Ypˆ'„*J¨>Y¼Ø TWã9ݪ„ÁÌ"0=¼²/’<0 :tÓˆý;0 ÷vª… Rb¬ë-A\Mð˜Úãéjá-€Â xÓbQ„‚üö(†¡ÅÐE­Kº•!µía±Ôx9éʳßäåä„ äßד}ŸÊâvrbq½¿kêޚ{¼, ,%ÞþÊÉ=T¯À¸O$,¸TsÓÂÕé5$ðî ËÖ$w±Mk’_öm:]:‡—ÚÖ6” ×{8nK@8ÁqX7”{ÕÛ‘¤wke]OB« â(ãÿTƒ®!5&ÇâÂ#>ÄBÜŠFíÁ|È/•ÕòlVm.ÉéŽÇ8Ò¡êü¦_®ƒÌrÄËÁÅb—ͬ! j°ùͳGÿÿþ<¤ñ"endstream endobj 739 0 obj <> stream xœÝ=Û®]·qï§E¿a?ÖÊâÌ[Û$E‹Eb}PüK²”X[’í(_ß’C¹8ëì#+F!XðÙ‹ä /såmøýeßÔeÇÿêß'¯nöËó›ïoTN½Ô?O^]þíÑͯÿ¨Sº¤-yííåÑ77F]”R›¿ø`6ÌåÑ«›Ç·?=Ø7½“Âí‹÷Í£¾ý þ6ÆnŸ<ÐasÎ,a|Ü´s·8kL° ò¡¬õ{Ø}ýí’·oz‰æ×ˆÍª=Þ¾/e÷´›Ûwˆ9mÆéÛorÕv÷špØÜíÛRwÐiä~†E¦­º}*ôåeùUˆµ ^>(b‡Â¬¯uØaD-Oý¦´iWënƒP+7Ö¨Ûç½4/ò®4Fu¨±޵C9 ƒÚvïRnS«†‘ãeiT2z@ò¦ŽË•ï[>ÂÿÀ|͵»V‰£ÃªùîÁWþëF{ ¸ëÑSà¦æþúÞΈiS)**ýeîyÒ{*…Ã/~KÁD‡…ýæ£7æb6¯B fG˜=§÷ZÅÄë~³Öwy8€±†¿+ãc¡;?=ÐZäõ0ÄœGh06…‚ê:õ*³–²ozƬ~Ŭy°kêÄ~<ÔÑni·—‡ FÔzUÚ=²àÈéj ÉØQoú°`Ç™¬Ïº¨¾+€ÊšÐz‹À¯À;0–.†ÕP.¤‰µ(ãÀvU[Ü—#8‚T@bû|ŒCò‡¹ÿ‘–ЍÈ8µŸQ[æa%…´dj•ì¶w¸†«ƒF®ÞcŠWr54*íÚd®î`_¨ø‰©Aç¼÷ùTß@î×DÌY%åQNö{TÊ‚À %ž¯=SD)ãnUgûÛíÁC ‰ZÝ>zÍf´åRö-kq­Ïèà‰{"|6î±z*’õè¬ u¸Ý›"pΩƒ¢øvM»)¯ÎXWƒÖ)‚íÉ>(]šXhhù0î£ÎÇ*“ ·¯ 'E­w=ªë^ÍwÇÍìÏ ÊóÚB¨Ÿ™œÉ„!s²Ã@p™ŸL¼ âØ Î£’aš´¢±ÑÎÁ!·&¢pckMÐCGGl(~dª@°÷¼Cï r¯Ì`!9äHÄlÛ¼¤XKø˜ðÑ—Òß›òúXù‚l\€(©OTÃñ3ÞÍtE^² Ê¹H½¯ so³®\¦~xXT¦ÙC•µ:EÖl5Ê‚æ×7¡Ù™;˜ŠÚ£Ñ ÊŠÍ$ qî[¨Ê+>2 r¬›¬T¶цAþ'ÿ Z].–ÐC{¸p7‚q"qd³#ر¤,XÝïK£ ÔÈiÊ+zNµ¿à¾d¥£eiÜbj£½\%Xô¯×í她¡ý€-RðeÐvî² ‘Sì_“,tñ›d½+ԴøþÉ8×wÇ À3&G‹kžÌ1&4o'ÑsìCZl재G‹à¨ÁâµTnš9)™|T)*=-ç‰S3e”?L¿´Ø£di½¥(Ðèy­Ìi …L#-tà¡F4ùÚl1 ³>çZLþ$ {æ™N2ãã|:Ì•07c¼NfHEÖ#| 82uÎ\d,¬Ø(*°ž»#¡z-ŒæÑAÁÎ<-I>,¦So¿cÎÛ‹·‡¦òs2·:¼8㓃9‚ìz¶W3±s:³XÜ‘Étà‡€0Ë 5¸ºõ-`TQ‹ÛÏŸ_«Ç)ðíCµÝ`’Á³$³ƒrÓÂÆóŒF£F}ûÀí¸h^VM)UÉ'Aƒ[‡ŠÂÅmw˜ õ¨äÒPømnIð{|«®|¬ÁiŒpLÃð¼ÆVí» f(‚ÉPlod _NÔ£Iuª7OQt^€qß’§åŒ&²s´6î­Ç©ýJìЂ°ï๡jÙK–RÚN8©oT+}“g S"“°· ·1zSÌ£TSñ#ŽRû\F©¥¨TG©¥Àœ G‰pVµÞjmŠ_¥PÚ[SGŠ¥G &¹gû.µ"J)-{ÉRjÛ 'õj­ßÕœkÇQšS^âªÚÎGI•xMý›F©¥YË(õ_èN8­+4¤Zë7êXð’lO0¹GCz›p¶ï@¼D)m”zJm;᤾Q­Ã(u5Ò”[s¢™\Ju£úf÷ž÷ã…›™±mGµìçWÝ“ÿ<]5¦¹…ÎËéS¶Žÿ>3}‡Ëêz=Õgúy*þ~y9Îx¼Kr±¸Câb¹—™€@ùdÊQˆœÞ×G?^«óíøÌæ“n·F<”%HœN‚ßhÚAÊáБt†úü¬#?þ–¬Žy|c´H{ºÃäû$ÈÊ©:O/ѱ¤x+åÝ>•ò$h¬”ñz*US†RZÅ©TMJíanWMJ¹ÝO¥j /e“™ZO)C©'\”2ÔØÆk†Ë¥°ö±TMJáØ¥jÊP sÇR5e(•`º8–ª)¼”ÝãLíš2”Òzj=¥ ¥&>Yžî0† ÝaÁTÌû²gÅtX0ó:˜ÛÍaÁTÌc`*LÅ<fôaÁTÌc`6ˆCrÈc`^‰CrÈc`ÁÉC2ç˜%z.è&å1°ݤ¼¶¤›”ÇÀVt“òØŠnR[ÑMÊc`+ºIy lE7)5†‹"ݤ<¶¢›”×Á–t“òØŠnR[ÑMÊc`+ºIy lE7)­è&å¡ßµH7)­è&åu°%ݤ<¶¢›”ÇÀVt“òØŠnR[ÑMÊc`+ºIyhU­hßÄ<¶ ›˜×ÁVtóØ‚nb[ÐMÌc` º‰y lA71-è&æ˜J¢}óØŠnR^[ÒMÊc`+ºIy lE7)­è&å1°ݤ<¶¢›”‡ž§±"ݤ<¶¢›”×Á–t“òØŠnR[ÑMÊc`+ºIy lE7)­è&åá|G‰tóØÊ¾Iyliߤ<¶²oR[Ù7)­ì›”ÇÀVöMÊc`+û&åÝût‡qvÓHoÇ5Ÿ_ât‡±®º ¶Îâ{ŠÉ»pÆâ¢¡Á­žÜQcIu]í7VcœVBù}[O”âò.\ÇàíX‡·A­ ÔJÂ0öc8ÝñùvòEæR_kZlê)6oéÀ÷žñz“å°-¤Ôo¨KbÛZ £G ôM+Ç=Åç-Ž¡œ­êuxÁÖ *A­$ c?ž1û\;—IçRu[]]Ûë)6Ÿ<1.FÄ ßθP'––Úê0\Žc%ü>b oÚwï)>Ÿ<éÊz¯ƒöÄ{+¨µ’0Œý(¤ûl;÷"ûb¡.¥Z–m)>·Í¢#K¸rUÏâ¾uɯ½ÃÈ™­Z ãG ô"APJÌmë’ëHž ¨T‚ZIÆ~<)ÎäçÚ¹L:3ªêW,¥(s›Ãots`uŠ£9°:Fnà{0´oRÕ=¥(óŽ¡(û^™ƒÞŠZÂŒeîG!ÝgÛ¹AêvÚI¥›ð¼rgL›Ê•IbúîŒÙK¶ë*î´;ÙS”s×#ó×oƘ­µ›0Œý¥î³ëœpºÃàù9,¨mÂÔšÖðÓuþT:Zž’7vj)ÂÐKqœg];BÒeè9å%®ôã>iK1™c±„Ï»ÚýÛÖyJšBÙ‘ï)Öàî9á´¡º"µVúF¹Àó =ååÍaTK±èG2œý»Ô 8j µì%K)m'œÔ7ª•¾É³Ô:I Ëàs ôÐCUl)d-O:Rû±ŽRKѪŽRKÙC%ÂYÕz«µ)~ãCioMÁv¤Ò#‚Áöpœí»Ô 8ZJiÙK–RÛN8©oTký®:iwv¥9å%®ªí|”ì®#¯©Ó(µ*/õ_èN8m9ÛÔj­ß¨•ñðcO,¨Cz›p¶ï@¼D)m”zJm;᤾Q­ã(55BÊ­;Ñ].¥ºÑý H9ݱ@Ù¦TÖË(» èØ²ãEcšëøï3Óı¨kìŸ}ºÃgƒ‰OwäÐ+>zåîð–‚£Ow¤Ð¢Žý+F³‘ü¯˜GåxÆ"j¼-§8ÌXt uƒáAâ®Æl«ø7R˜¿• !Q<ß•deÕ ”iï¨Â) ‹CÇC0€R™2q‚®v”1)áAMrcX¡óð ÄÓÄp«záß4Ç †+ }iD’ƒ"žÜ!ùN8½/£g†¸Ë?0Få!½xw¯‹–dTóˆ}BÈf^Q ß\Ú?Æ ».^è*bt~ëž1ìNB€eK”ôjp0q¤P¯÷ Þ ¿@Üak."ÁækHNgÇ8Ϲ‰Å*1r z,…¬ L! §…ö,2ã‚O¡ ¦”u4Zçp‹Äî¿ÍU§])½6> X}bQ¥ZHEÞÅ÷9©IR`ó)ÌZî`<RœÀUÌN†ùMÁ€qü‘%Úiì`M˜Ð ‘i¥pÏSDÌè>Ô0?ÓsÔ¾:º HC!¹ÉÁ¶ÀL—ümÂ=&·‚9€NëH_`QmÂ}ôçµ2BˆoA÷Àø×48ǸêVÓàCœs`ŸÝ¬©¶ ¶ðP—Ó,ž$FúvÅêý6G•ƒ™Ç«ŒóàщêñWjÙCòU¯-àëQжÏJ u7ÇÓDëÌ{àà‚ÏõwAB‡¸ £áTcîLn—Jòm?—­ÈRž±·ÉËñù(Иz/EÃ= -ŽQëÕç’‰?úYß™€>#‹U~:‰jøÐÀ f“Æ>Çä Çhª9âÞ©ED=¤0hޝœY¤6oîñDÇ]s¸Œ°ÉPsZÆÓEæŸa¸¥.3«tö  ´’,Þ!©%õ±$ç€Íþ™uúh¶é¹©Òðq=Ž×ú}Æâ£6’¢ô?{ µ„C«¦áÂfiðƒ˜Í8zõ—X+Ó0lÑ/ˤ ç[þ8BfX0#qß½&×mjì -yûŠ=ÚÓø[î·Vò6 ncÓC4\ZÿÞ媼R}ÓžŠó³ÇŸn— µmÓá).b‡¨¸¡ÿ• Bœå{Wzᩞ"Á÷ÇŠ¼`³ÇG× h|Œ9aK·uÒÔ‚xº÷A]¸Îw,Ú'M¶¹ØÅé™ÉÜÙ0†ÉyS0ìA¦®x𦈅ߒn–]°hçf» Á§lÂ;'=ÚÕˆÑi‘¢õÆÍo. §O¦ÖŒ{|¹O`‚‘``ÓG‚]Lò\ñuÅ•–]nL¶_Òêï¯^qˆmZ¼—æ•7÷Õ©˜µâJk÷™®-·„“x"ŠW.­¼a ¥V†;>Íš±¼hÏp~½Ü¡x[zëî{PÉâí¦-EÃl6ßßÓÍC·§ií)Ó6ŽÛ³Ã.õÉjr^ø<»ùdÁWä'Ww¶tE™1•ž®Û…SŠ•6ÕqÁGU\)âþa¶%¯™¥8SÄÇI#øŠ>–·¶ÿ“#¨4ãÊ{‚&Ÿ¼³_âôuý¢èú1E–úáA„q-®:ñ&þ²®[}Ròܤ֞_1ï|WßO÷™Æ3¡ÅjhP–aq ‘ñ¹tdùÄæafŸ[­}y6So&µwÌ•¥½ð<Ì ;b\ ~lÂ3ÄÕ””^²ò§[Ö0½‹=™ÕŸ2V¿Ç!—gò'-Pþér]V¡2×fOÂ%ÁÐà©WƒÏlÚÙÏÁT‡Ÿ“@víµ~6Ô¯ö/„ê‰k5ì¿+m:¬ÿÓfÕ‡’oýµ¯ÏÿBK@åÕ`a;ňLot~q^–I/Ô,P¼޾6~¹ø‘NfϯŒÖÞ!)óRdc“ÙŽK'µ›ãä}áØ5²#.nx£îïÁ6¹Þo]0çÆÍ¼™W?ì©WÎÚij’Ÿ½‹ÛµE 5«J:uýŠnÝÿÈ S'Y"jž?›]‡@|É÷ž;çÌtC³oÊó§vq­L«k¦KÄU±»é”z^ƒgé’ÆåŒ‰_¢<;xG}:ÝÆR0júüˆñN:³Àf$õ<Žž_¬>ž¶i«í ,Gq.j‰Vz+7¸vÃ.)Ùá©Â6¶¸ƒ¢^ØyRhx¥7øÕ:]™XH~ßÒ=[´W…}ç5]|ŽÓÛû‹œÂ=-ÿ©5MZlh›XÔÈpx “óñÿÏ×LLÄf:ñ Ì}\JgG!r‰;îs¦>Ò….°ˆ Vªû¼SEÛX*y.#ÑC±} ×;£~Wz†KÎÒ._Ìââ%§¥Wjœè óú±šioˆ_õxH]Åç¸ìrÜ:NíwË–Ã&ÒãÙF{特ï+¹’oðE9}Ü}…]8Ykä+C&GǺz¡ ‹{svšÛk˜ ¸Ÿµ”6ðVè?˜XZaÐk;=el<}¢JÇ2Æ:q7£3Ö#Áá³µoJ;­:h¨>¦åê¦÷ùÆÇ嚇7²£urØ4÷WD¤hZ›Ýµvº»8 ŽÄŽ’â?ŸˆÐ¹"Œg¢d–׊ðBûÞIµ2ô:$KwŸ"¿ûä¶d“Ö—¼šc<»«Uý‡ZIr ¹9¨¬/¨Eot,pÿž›/ß»K›.s`ÿ|uê®EF ‚‚g«ï¸.$ìUßqa]kç§™3êE}¾qSZ%ÚIæ¾ËÜ««ç—ð ¼p•}Ñù•ª½‚iÂañwµ{r£Ã‚S W\xyWF"¸Y½-ÛjN¶ÉFeŒþàGc²3q’Ëœj 9¶@5slï¸sÎèté]œ27ÐkÞUµ«Ö&…UÅ2ã&ãçèáT¢Nþö[P[8mšlÁ?e¸¸‡6‡ÍÕH7·ƒÓ´Ø|üOÚü2¶nœÜIHÕn9™]p^Ááׯï]ÉG™._Ìó:Åêº7?ïêð³¼ïËíöxm ÛoË Ði=ºÃ?ÌHðÌþ'º3œ‰(^.ù#¸uËó¿ÔÕàlv-—Yºó]þz¿4[>µ8‚vX¹>Ý’% Âåx“>Ɇ,¢²Ižº¡‚ÿ#ÄÓ;¸pãÓ'ÛiT¶Ð/ݹŸæ°´ö¯blôŸhö·T­OKÕà’Ê“B,€{1³¦‡Ö¹4?,úìµ6ì TŸ(¬^?Rn5Å;ÈO‚1V—*Á¯¼.„ÆèzÖ—<ä)iV[& YÌŸZÿÊ¥qP`JKHY×›Q6³Ž5iuÝðà×ðtéz¢tá›› ¬Áp¶3Û..·Y#ñìt³D¾8.¬Ÿ-b{í>k6‡Î^)ðˆÒçK.ÅdÑŠ˜,–™[Ä9$“.2Ô¼ ^u1¹¸%+-î~¨Œ!òÅ·Ëõa¾âþ™ç;'ë‡ e¸•ŽÒsz°ÆöChü“ÅÃçk`ŽêG¿k䘶~ùòí~:?WÙ×%¤Û*yw3 zͺó†óyE ¾ô|g›¦Óã’T,îéðjkËáØÄì¯Ï?-''t<Ü'É[•`ÏJ¼, ¾“´\µ¸S«É8è6z) “¡üày’¯o•'Ülnr#Ì„Î'ªÃ4ì›ä=à8º-ÿÂDù ãnH¦«ùÄHN§Ýðè¸ÝaW±êNTéã8§ù'ž}€áÿç#UØi†,ïëéE+žÒ{Zúó£ÙÑc(žž·• )Þq8»…Ô¦êñòÔ/pÂG[p_ÆÍÑ{_Ù´tÃ\Þ G?uÍR]¼÷M†pýÒ7Ïnr?rÇôa7;òò(W?.겡•.á2 -¼sì¼Ì¤=°…v¾e2ŠPíâÕçëV‘Q„X6äãÌ(G Qâ4ŠÝ(ÎÁ2Ìϻ͚VÐóþ¹–Â7kyo[ü“ãôgñŽycåõÞ*>Y‘ Íkè0xÝ}ÒÅ„ÛÇ,Ùö.y&J_±"óu•€¨ïÒf00U 0Õð˜ö³=ú‡›ÿ"gùendstream endobj 752 0 obj <> stream xœÝ}[“^·qàûT~ÄÔ> Sš/w y³÷R»å<¬ÅÚ<È~IJL2%QŽÂüúí+Nãà›Šv¹§l~nÜúŠFãÌ·ÛÅÝnøùßWïnþá÷!·Ûo?Üüpãb—ÍÝ&ø¿K ·Îç ÿUòíonÿåö»›¯nÃ%ߺíRoÿÈÿóúÆÁÿ|³Ýþ¯—™<—­ ù»Ÿ›·‡›/w¬”ÃK –/é€%ËwÀˆÅJ­楡¯èÚ¡/ }Õx˜½B¬Ü})d±ïבްª¯, X­ø–@,–w.8$Ëçí€%+nGn dÀJñ0{… X9Yì×í·°CJͲR<þÿon¾ùûuÛ—{Så¦dÇ6CÖ’[’Ûv²¼µ´";µ2Ú’ìØfÈB]nÉ©Í%¿Ü’S›!Ëe¹%§6 +ÊÏ ßVm†lÆ·U›!›ñmÕ¶“Mù¶j3d3¾­Ú ÙŒo«6C6ãÛªÍÍø¶jÍÜê¶âÛ²ÍMø¶l3d¾-Ûv²ß–m†l·e›!›ðmÙfÈ&|[¶² ß–mhÃ}\òmÕfÈf|[µ²ßVm;Ù”o«6C6ãÛªÍÍø¶j3d3¾­Ú ÙŒo«6 yéß–m†lÆ·U›!›ñmÕ¶“Mù¶j3d3¾­Ú ÙŒo«6C6ãÛªÍÍø¶jÃ8Ç-ýÛ²ÍÍø¶j3d3¾­Úv²)ßVm†lÆ·U›!›ñmÕfÈf|[µ²ßVmy¦¼äÛªÍÍø¶j3d3¾­Úv²)ßVm†lÆ·U›!›ñmÕfÈf|[µ²ßVmxÞ K¾-Û Ù,ž\µ²Y<¹jÛɦñäªÍÍâÉU›!›Å“«6C6‹'Wm†lO®Ú¾¼ùêÖ»K¾ýãívûú“ ?ôʱ©¢ | B¦ñ®ll¿e áƒnBÓkìÓLÆ»$–l’ý̵M¦¡Ø^3 qÕä'´Åê‹U«'ëš;mÀ†§ßR$(J’WØ! íÖ•œ.-áoÑ5üûPD€ƒê؃þæ1B!¹]B¹Ý{(eƒ#…ÎB1t–ÚøŽW$5”Húõ.ñ-%MZ…¬C@ipn>VîWÄÇ’­À¼ŠÌs멎=¤Al‘B!.àÜz"–} ù2‹Ž¡óÖÆu½‹{Khfh*Å‚™JvV0SIÁ þÞsÇ`±Û{ÐßÅ‚™JuV0áwǨmÌCg©=Œë`ÝûÕ.îíÜ鸚åTêÒh™b­ýÞ¾!Õf2È)]ü.ÍïN¤ƒ‰v€Ë½,ýâ¢ù·‹§ $eðh™»PìNq·ÒeÊQºä1õ7tQ±îè¢BgÅÐt$]öß<è«î£tb"S—>ûÒdÔ]·I‹ú¾÷TˆÝÉ}´žÍvÕBžŽ50ßµm;’lC¤0°<’÷ÁIŽ9–!qÙ*€=$IîÍþ#bëŽ([wó@ºTé˜;[}ñÛÈV_B´lõ¤O¦Ëþ[Ùª؃ÈԥϾ4U3[%’»ý·›ÝSîþGò€ØýÄ×R/µ!¤¢~#$ó8¹$U,ÀÅ åR˜ ôÞ†lŒSÀb$_÷¶"ÓXé’xtˆ7zûEÇ Då °´Bâ΀Çò2Ÿê´wI ñ:çMƪ «Q"@3¬qCk“!I¨`çyíö¶R„so¬°ž÷ ›¨_”ž#ÚL„´Ì«€8ØÑèm«‚ã/úi0Ã,±¯ 1H¬Ä¼h0€;3åù4àS¯½•@`pjá×~ü¶9¡’±üærŸ­<¬»™s`H,—,ëJ ¾u7(ïÙŠÙC¿5‰dv¾_u!¿h†àÝ5"˼c=dï’Iç’U3q?àih¥ k$-¤¨4zÑUô\e¬ ò d­0ïTq†´û)‚Óœö\5ç™Õ(€Q${Ùh>ak´nÓ±‚g9t΋‡ÀÜq`B<­4Ànâþ8ïeWÈ:™g8ÚU¦CŒ2æ‚È…uߟ&ùñgˆ8QôΡžvÃEÑSX:K¯Ýa~E'Vö™¤ …W‘Ez}ô‰øî2X†˜+ö\Ä2x£ÑwA&9'«ˆ ›„˜<ÈüF*ä$C2k%¨ƒp0fÙŸ–t†™åD]ä9¿§ÉþD” 5Á‡ð®F˜+®D]gXxŸýæ/‘G/$ª$DÏZz±dN]`×»­ b5s·¬è)Ä®³‰ a¤€€„Ó*Jë6›wVø³xƒZÕÖfŽì¬¯ŒÓåm6y§¦¼@›ÅŠ‹Ç(ìÓÐfûn¡·ÄZF¿j³Õ?œlö7ŽÊ­nå^½»ýÍË›ø}Á¬èÅß¾üæ† ±àÌ{°ñ9è‚Í/ßÝÜý÷/ÿí$­ÞÞƒ®úë›»ßþÎw(zó(Ð ¡÷ ÷ÌÐ!ð¼¼ù¿ðL ®æ``n²Ïq˜ðס¡›ÔjÅ9}u÷õ‹{8€ò·pwÁƒ-õ[ùãËÿù6v{®:ƒù|빇-N`îÞ e½®wßã?Ñ?måî'om wovÆßÝã¿CLÉ·»¿3ø?b[Ž¥Ü} ¹ÀÖ•ŠÝ` 3À<(¨Ø–ï~à^ ptw6#Yœï@Îï^ø¿ÒlBg6à|ûP@µcãaÜâÁ7#MØš^aýs*ì‚gò½N*z SâPa×±z…]Ç2v«WØu,Sa×±z…]Ç2vеWØ)–­°ë}õ »Þ—©°ë}õ »Þ—©°ëX½Â®c™Š±ó~é+¢ °2`¥XX°28ˆK V é€%«•ãìb±¢ó‡Ù+dÀ:ÈÉ|¿°Â.x¥>߬-۾ܛ&7kË6C6¹Y[¶íd³›µe›!›Ü¬-Û ÙäfmÙfÈ&7kË6C6¹Y[¶YP~Nø¶j3d3¾­Ú ÙŒo«¶lÊ·U›!›ñmÕfÈf|[µ²ßVm†lÆ·UZŒ”–|[µ²ßVm†lÆ·UÛN6åÛªÍÍø¶j3d3¾­Ú ÙŒo«6C6ãÛª ÈJkK¾­Ú ÙŒo«6C6ãÛªm'›òmÕfÈf|[µ²ßVm†lÆ·U›!›ñmÕ†^5®ýÛªÍÍø¶j3d3¾­Úv²)ßVm†lÆ·U›!›ñmÕfÈf|[µ²ßVmÁluéß–m†l·e›!›ðmÙ¶“Íø¶l3d¾-Û Ù„oË6C6áÛ²ÍMø¶lÃÈ3¸%ßVm†lÆ·U›!›ñmÕ¶“Mù¶j3d3¾­Ú ÙŒo«6C6ãÛªÍÍø¶jÃóŽ[òmÙfÈfvrÕfÈfvrÕ¶“MíäªÍÍìäªÍÍìäªÍÍìäªÍÍìäªmZì0W…ؽf®Cd‘öÖ;Ä4ÄnáˆÝ±LŸ‚eêð†ÉD¼(E„~ù®Ùå;Á_ŒØ¹±Ëö™›…hí\€ù±8èÅôá²0øí.©ö²±Tñµ°,àU[1.Œèo­ùÚ!\Ö;àë}-+Ûç :Gí`\…©œûµ.ð-Ù0&¶ž†RH¥ê¢è·DýF¾-Œ˜¦ö"õIo‹A(eè ÿnN ’6JskikÃòtŠ¡sÔ«xÅ&ø×¹4* fîW–;„‹ÂT´hLf/+‰Úx ½ý]Ü(’ZÖ;à’±}„ÚF‘Ü1tŽÚÁ¸ŠW|¢ÿu.ØÖ¼$´8n‡à=,L o2±_)Ú m“Hº©žã¿ÊŽPk:è¿]R…x*½Ñä.° ¿@çÐ1tŽÒÁa̶_éÒÈHn-^j4…jGÈê]š ¤{K)÷Úk¥Z‡ø(×½;$ÐUwïSêiû¨½â6ú–/q‡@Ám—w*b1}öß<*ô¡^ª¶CdîÚ§®MGJÕ®ÅG=ˆPÈj¤!0ÜÃñ„â%zÒ"è=±¼¬<ÄJï:ÄŽ¸§Z´¯¶s_X3ŠtOœŸKYC‰ÇXêáV«Ð‡ b.ì+ëX ±X}{_1XûÊ«C,–†{†]Û «¯që8Ù7-EíSŠÚã\#m9-Ö¬*ÖÀO6RŒ^ |„<Äe¾ÕfH@ÇK£q™íþ[+„²—’î®ûÔ>µ.TGÝkIÖZÅ}D¬Ì;M_¡ôÙk-©Ù))Þ!2w鳯MFK„Ÿ¸ã"ÇfÇEŽÇWMmÊ9~®[>pçy@ÉõwTwt…ýwçNŸUçN‡ÈNJŸ}§eÔ;+RîD¬Ü1ÜÙKÜçþ[¹cJÂÂs×>um:ê;½Òwí÷óÖ[USO qÞÔõ$3€ŠH^Ô§lŠx¸J“ªpà'¸€ÊõºAÚe«\+ã@œÓ²©Å`{®­<Öd®³eù H_MÅ,@ê%!Uê+<\%ˆ÷@ãù¼7†€³@ßW]=÷nº ¤ñHÞëØàœš7µE?Ÿ‚ý‚Ñæ}ˆNºÿ¿ QW1/³Ù¤Œ”ŠÙ¶mRZjWh~Ð?Õ,‘†FБ@±Šgo_,õâ+Cx#bÕ‘¢°’bÏ#ñü’ãÍÂj"FñÀEZ”Ôx…7榓ÚÝ€µÄM/uN!ÔÒ¦×ÌÓ RÃtùËŒÉn89"Y„TY*ºBÞÓ––N•KNU ÍX!„Tà¥x3ð³<¸íÎIu1ÈˤoÅ’ƒëØ–EP S(Ž·ÐEå9úPÔ¬sã~ •Oe)Ï&£†"êJ'I^L ¤á»&µØ9ä˹¢IP š4ªöRØ¡#‘ÄPaé²L€ž#0¡Ž£k•%!Æùy(Yvã õ©÷£î>K94OBà³ê|'Ö+MRR?U÷¢j®ê²ª‹ŒÓ¤ ËkhCC—ä ñ˜†sR°´… 8e9–Vâ*°,OúÁb!èl„Î´ç ¦TX‚ˆý¤¾.ˆ;qãAE”ñÍ QeÓŠÅë釥•™…}7 ~¦žµ• x˜Þ:è UÉðš(jj?¯ ûÑxÇ(¥È¡‰yŽZJ—+ÈR×°†’òÊñ¦õ8ø²†æ¦5(r®GHc.$-Ž#GêIIâ¹’Œ±¢àk‰ÚÒ²ˆÕ‘ R/Ñ% ¦PXï(jC@%‹ÌÆ$hǰ‹ØK”JF8|A£ÝÆJ…å:´+åi$c°´ÌJ¤rŒ#–+E±šÑᣙ¬>üløS¼ztˆ—yö<5'â‘`í2ŠXº¬QœFœ|Õ~r$Û—|Ò2‹bê‡'4´½bóæR-±’’v×mº •­ZÚÄÍRÎ'#£Ž]Ù  a—ùUeÓ½klô£ÆOë/A’ð k‚Hu?@xUÉÉ^4¶©±‰ÂSÒI$­9 ²÷åÍžâØÓ.C¡^OL‘ ®iD1ü,(Ù4*‰Ä+‚‰4ù¢®<à{Í=4àð t;‹àHlé Õí€ô•!¬c.ÐàúÄ‚r’‘ÀËU aVìFˆ—wMf#ª@±4¦ßx«²T›4n„€3ò YSïBé˜ý Cµ³Ááø>Pݸ-Ï/ëhQè§ÄEp4FU’Ì•ê(Œˆ«„^õiˆ…-Q‰­Af˜å¡y>”ϪOs>* Ñ‹†l5ñ¥?ÏGf7áS ñ…¨¡P¨ÌΪ*)zH óc“4Ö–¦¥Ø¡6ÍàÉÃ.r—‰^¿±ÛäÑé¬m¨@1LÞùhž'ì-$önØl „GFˆäYÔ1—cæå5à´$>œŽ5àÎcù7Õ|›Âî{)öþŠ Ãñ]Õ‚cÍñ=žšÏåàTIŽ…â¦š\JÄŸYÐqàë [þ',|ÎbÜ¢åá9†°*o@/Õá¿Al¬«ßëºÁ" Ù_ïÖ¯MÍö3ªÆ©N[zO­iyx]Û«ÆÃ>WgПç'hÑ¢ñàKÇuR4î`k´hQˆ~ÃW"ñö_í¹ÊÛô?qò|$§]&8WØÚs;3³T˜¤ÇÃp»ó;î?¾¸Çs'Ä6wÿ›zƒh èü¨‡?üh~<²h‚ÛJy,L¹{¿ù !®¨qà¢< €x=雀ÏÌ]µ”jÅÈrë5cÔYŠÇ-ütY¤Îe¶à<™¬>``^µÏ,Šò~ÅË£Øg,2ÀðøT ,eáw¼U›‹Kö¼‘Ýtº™$íV ¾7ð¯w-0ûÍ}ì7?PÚ1-üýÞËw‹AçªÇê&ry8𾌂KiXõ×øOp©Ü7ÈïàŸp:ñændÅê¬Ñ¶9k¦ˆ’y=ƒOÇAUëÜšBÀ'7E‡]Çø¡–A$Ìð=eevl»…Öª™‰œ~lze´‚ó³³~žt)†Ç}åáñ¨²üÕ1FǬB ??QÙÝ¿DÙÛ®˜:ôˆ³á)ä‰á=‰¿®Ç¹…(Bt+ŸxDÆãd±½Y‘¶ÿþóš²na†¥G¦»”7»\üáÎÀ è~ ¨~æEìÝïðß/™ÂñÏ $çázý¾>©…o¯Í¿Uz¢—øá¤t?ò8ÁÁÿ°ƒy†[‹ãâÍâD»xFí’uà ˜õlipE«Ðë¿íZò‡Æ]vŽñGoÌuVûòw7/ÿþ«»ð¢[Uó›wgp¡Àœ4¬ô·–U?Ú9¼àp3mN¢9W¶à0FÀú-‘åÀ„b­â¤—ïL/h»ð‹ÏT³XÙÝ}d ƒMyG£TèyxXþ=wQóVõßÔ ƒ…ó0À™&§^ýw4".]D¦¢TšRFßÝŠÏÃà²,Ðé8 hqþd&(;±•—Ý¡Hè^vЧ´Âù/êß9ïÅóÂ\ëz6¯^à¶$ñÎdSìBMߤãa«`Œ”?“އ ¬…ªãŒ@LÏ÷ÚͽÃàbkÜÛ— {ÏJçãŒÆˆ%:¬­Õx í£‚»™½}ü@fõù5Ç PÐo§Fö:‘yËt›÷Ÿ¶}Šÿ™×"ð¤ŒÓ0ÞÏl¤u¡«šõ:xÞ¬ÏY´ ¡ô0)Qxé]vqˆ5l:¹úoílŽÈWvv[ƒÿüÀãŸ'A/y›Ž°ÿ^ghœ:Lˆÿæ8ÅND3:‘ OP"ÌéüO&:ó„Dô@P¿‰ˆ´ÉˆÇ]üv– £6‘n–óñËÀ,`OŸkæáŠ™eÓO»ÉžÓIÈèÆÃ•ñC2h,Î$1zÌêáY¬ÅË!Ô>ÅpÞÅë6Á©Ìöüîȸ3‡‚T&·14wÌ0@·±æ§TX5èb_4ã©–ŠW»n’Ñ 10>?j ðà¢J²mFG Øn>²wËÛ€`b5ÑZÓ¨ ?ïAäJXVR"V¬…¨“Ü2ï‚®`Ük/qð65—¡“üoÊXt³—Ö´¬82úµn¬bãfy¬]òGK+WÏB8s&ÁôÉ Ú€÷ù:CÅpbÅØ×g(>™m;ë‚ÎÆìÅ;³ÞÉž`Î٨˶õƒÌû}¿ôÔø©ù速_#cÚ¡?Éîø4¹k ŒÓAºg×t£òL‚!:i,>À$˜;¥¤ñ¦bVÉØ%I‰ÿ¿x§Û¶6Ù–cÁ`<%´°¹;;uÛå-̪-üaÕÌKöPÿŠ‹4ÛÊ?¾aßÖqÈÇ¡ùÂïVÍOü«5àöe¤u\yð¸­ïÙÞ0]I•xEPÞß#œŠ#€~ÃnfÛŽ¹¤÷=­ á´9qèì'Ü ³œÕm vðëSùœñ뵈Œ÷z™&°žlLßa×Îô?ï‘V¼ªŒ8´TðÚ-J†mƒyýL1C+hÚppvƒ»ùÇ÷ ¢WÃ!ƒ•†ís‹ÅHñº·ƒiø³)ÏX×·ºô—阃c¸”þ†pbïšÜÒ-"„NŠaÓDÖ£»ãÒIé‘ö#¸åc2SöôQv%ˆÙkQÕ9û¶P™ëæ–¤ZÇ¿÷gjàâc3Z²8B­ŽJf ÑZÕZMÐhb¹^ÅÏ;–,¶gXý Ј\Ý´‰>yœIß#’…v)K;÷À]À¬ÿ"— ¸#ùt/‰õÄþú½$Ê>8ú¿DÀ…}·¼:ɬµ´¼Ÿ¸¶ìÎŽ yZÂ$ãC x]Áj®žÆê¢p>Å┲»;_É´¾aÂöl<ªàZËühؽ ™™pMµŽ%!Æ{ðüGµø,åÃ|†Œó‡ÖxõòÑ:Ž€_òM×ï*ñýjNöƒŸ/ÄÖ€ãü|Èë„åR»¦}A¸?ôÈ+óþþ$qû)(!’²0ÙõXáËÇUÏóï³a·v'»kºv°­†³Ù _±‚Xy^û5;1÷éà’X32n׌×2ÍxL²† V ¿Ž*à ñíš óõ$ä43 —¿'«{”å¢/¼ªñp2ýq^ëÜIA+DÓÓÆ·'“sRŠ×Üy)G™ã1ËUß{±ƒ¢ÔÅtñO¸ðµ“¶œ¶é“÷Aü'¼¢ËÖW^«:6”Ûˆo6ü)ÂÂǾQ²1†K (S)^Rð+óü“'mé+ŸK*ž>UQ>÷~á`¹8{t·áÓ˜—®ÉÆqµ¿eÝ›Ùf¹ÄäÕFô´,/biƒÿDžãŸ%yj ùöPNª“0%™îž”Æ¿¾Rëò”ø—J¸úH) ôÑÄ•ã,scÕgsOôW§¸'úþþU÷”ðïLMòéFbb±|&»@Jƒ—®2Ñ'ñ—ËluÈg³Ï$ W¯T¥–ü<ÿbQþsïÕBæý8°Jºý…¼GÀ?ÒNÒ•¬2T‡j!Y××ñrž=Çû7¼ ý^‘XðÙÉà ÜOØG UZäè¡#ŽèÎñ8M¤®Ïæ£vÐãÄù­›]Ù–¯å«bEoÕ>›‚㈠ÓZM#'*s éÎcjó¸i“RB[×øjÞãä„w¬8;ðN¡o¹@À%ü ¢àçË Õdâo-‹r8®Å¿^w<ã,/õIÃåħ;ÒYô:»#}Í5B5&M€zò¢=FtË #»×O¼n÷ô—>¨d„þËßpjL+·žpc4­è´—òÆÞ}ä25,Æ^©ê˜}¡¢6˜g±àlJxÆÀ‚ÈgdÌQôï:Þõ_-Ä"2)­Ù­{m¶näÍDë£JY=p¼B{(21Ãð3“ùŠÉ–g›ªí3ïU¦ìæd“–Ç%4çøyùÎeHù"jiŸz{v-¶‚/Ê}®U½àŸß«u)Ù‡¤oÄï3`IžÍ®Î-oƺfôñâ$çÇÒ2§‰-^(½:Žß ¥MJ¬TMvôëÆ¢ê Sa ºCMqçvp¶Z„S×ARŽ·¼pÕ| Q`Ä?ótªê‹|-Óÿý„JŒ½åf1·8¸Q1¹ƒBFz_ûŒòYáú‚Õ^Ú¢¶ŠTËsµj¬'U¾«õÏ;š Wñêöj9€/wçL…Äš‹ ëÁØNE+ºÎÕã=ªÌµ”­.Õž“Ò^‡|´@¸®ÜV5<‹€å2³"ömƒ­øº'ç’ë9{é¸zrøëBXŠYn%ÿ•bjŸZòjlQ _SôNoVþ¯¦“W˜ûÆŒSåš^Õ§ôû½wþ'lšÓN@#ƒ®ìð~èwÁÕúT^?¼Ý)©²ãÒ2•Ôv(W¯‚­iþz"•¶õÒê+§&ü~ƒw+sŽøi•ÒAgø“ CÙå¡ÿ&Ö-¯ª7Ì+‹‰ Ћ¤H¿sfF?õ•-þx×Ö…[îäÀùÉåöòAÏ™)°×nÃJø?ð4|HϯÆÅï¤ÏùìI7dÔ|Rkþ æ¶|‡#wªtЬ!Ÿ3Dú,Û!=HÀÔš§œà©PpÿýòÄÆW®ûkÑ÷½Aò$T€`ŽQÂp‹ßbõo²ÏÇõfŒO»¦B'w¬{ÚVĿގñ¾rÄ#×ã£,.g-“çðëVaŒK§þi¬z¥w—ùä;~,c}ç¬ÒJz,"Õ•Ei÷³y†¤×»'w^÷|µâ¿ª·r; …8ÁÔG›U8\w\ÿì’­9-¾Îg§ºl¾I9f1×éžúdaqÁÒQÀZã§e‚kúÅO}wíìù®•Wòä×¥³ 2r½>2›è‰Ô±ô¥Õ!ð”ìûäá¤ïvº÷ vcU—k m ŽIüó¯W>#ïòÒét×ñð‚ [ýŒq /×/“ú+Nj|âÆôè^¯?Hìw<ßÜr†Ï–è•kݽǤJq–úèÿþe£\òú¢›-dÏhzníÆZlÚµ|µœ”fKš$&=3‰'•[«ÂûulMGúTyº?ÃwÆ9¦§P­Ù¸{}à´XÀ3†[-a§=’³>^Ö£øãQ?g˜ŽSÌÉŸ´Áñø.òá~¼r]|Sé‘ÀBUœÇå‹oûA +·„œVcõ6mþ©xKËá¶ýó1od¹Á¯Œïê5Ê´ôùÊ«8ä^Ô{Œ•w”'”\Í<;ˆ<ãyP\Ê)öbì0 å8´º28ò¡ÇO!Ÿ«¹qpnÞ³ѹM^Ë{d §åy˜e¢Ð¿ÞÞš¤cRÂO )¿+þÞtó½Ûn(Á³ÁÙŒŸOƲšÓ/Ȫã‚Õ'Šç8 sÕ­ ’±Þ?¯n™ç~6¼x*æ#7µ±Åki ¼ZH×¾žð¬ƒY—†CT’ï°­ºMŒø)`¯Š®_仵Å7ZÈÚ†N>¥~YŽ ó¢ù9ÒÇî|8‘?ÙîÖG•–R·~öØIKœ)3^——†O¹~êU «”óÙ"ã×Ìií”>|;?"ˆò9ÁùϤ)™¸0|öÁ~Â~)À~àÁâ˜ÏAü~n!qANÜ©îyt·àžV´r8áý›Ëƒ;›¿x^Ée&½kqq‘ÔÙ†Å)tq³råÙGäè3å£ÎWß¶b»ÏiÅùc‡ˆsý¾Ó¡×‹Ùæ—ÒX0Оó ÎÓòdòµ•ÓC¯ù7å<Ìø+ã2’D=pC2ŠÆÖ¯^RhŸÌŒ FØ1è®$¶†/|þ¸c<þ% Kxë›ÂÑò7åi`ô×6ºì¾ëGÇ÷~]@3²éy•>:ŸÛ)y̓b‰ûX ‡ÐJŸ÷¢I]yjõ êIp¢[ämžŒ7¬•ZßX74d|t±¿ì`­ ³[6ú8ýFܸ?´J®a,¥ÿ‰»Ž’ÙW(W®VheÉÛüê²§æÈÛ¿tOOY~ÙÑvpɵ^‚;r%T ¨©=ávÒÆQï9'Šîh¨gÌžj!¾Ö\ÖìjõS?cD‚—†¾ßHn»šüTóO:áðNa}aÀ*:'Ÿÿ2%c±ÿñå›óÿ#‘a¡endstream endobj 765 0 obj <> stream xœÅ=Û’·qïÄy<›âŽq¿øQIœ8åTÅS~°ý@qy“¸K‰¤¬Ð_Ÿn4€i`€ÙÙå’)W™g° oè;F?ŸÄ"Oÿ—ÿ}~s!N¯.~¾iô”ÿy~súæéÅo¿U1žâræôôå½#OR»Å }r^/ÒëÓÓ›‹¿œŸ_^‰Å8á…;¿»„ŸZ{ÏÏÒO½=¿¿¼’‹p6Æóœì½Ñ>œ_°ùøÇË+íý"?¿Z×Ë‹ïóÒiô'|Ïz‚:¿Æ÷¢Z8¾§Úh‰+øÕھȆA¯üù–-HÚ ¬=_³ñ'°Qˆ‹š¯rË6º&T0 „ÜžAø–¶p7^Ñá-m|ÁFD€ãu 6ÒöᔟQûöæ[FˆÄ·(Øè{6…v Ø®übMTçi?I¬« ½ËlônÒ¿=ýÏ åˆš {z òD$ ‚œ^™GZÁr¯Ö|8,Àc3MyKà«ø‹li6÷'¶ÄkFÿ'+‹â«ò•T@' òg-—”\L ±9òï.U@Rêó¯ðžZÇ$~øž º—Ê4ìåù÷¸ÔÑÊf“_Ƈb¡`#©Îz¼\^ Ÿ®`ôâ{K#Ï7²ðÁîIMåô&×|—Ä¿£+U3Š,Sj ZÁ–b°‹í”™HÔ¡\)7GV™ÅéÀ©Ý¡YgäæˆÎ”×5Qt–iðäâLGò#þC> q ¾ž…_˜¡?ì%H4pNeìE4®™L‹ÀŠBªàFÒ¿=½ø ãÌ¢ãÉ Tl“ £8½qúóévjK€^'!dcJŒ[".§A‘Âr`JÎÿòîÙû/nßܾº|úÃ…[¼=]¥ÿZœzýìà WZâXýÃÿÜ>oÞ“À¸á‹ ‘?DÀ‘Ó«wàt¡€¤‹?*Qwºkh@ÐîôGÔqÄÄ2"üâ҈ŷÆ#Æ,6­ëœf¯·¯/þüÏ@T…¸ü ¶úß؈À:å âvƒ#ôŒðVzž5ØyÉžïOÏ/ʈu°V€ 4pö½ø“JªÀ–Çç ýý¢eý»•7‚G»x Ï€¶!<@hŸ_|wLTV#*¨ÓQðî}.Œ Qbüã Œ ULäq#È#ô9¨ü–&†G"‚ÞüK#í^#ö¥·ö<`Ete<ƒdWîÕǼ‹y#oiÓÓï» …¨´HL/#Ò”ö¤¤ONžh*œ!£¤¿çge¯PK­3¬mV¨Ïyx£Œ€î·äTW0¶Ý#?ƒø(òH…2¯ÐãñøØi*¤`P»2â h_|´1>;ä(¬+¬áÏk–Ho_¡>ç=y$Â^Ô"ð‘»E™Q Ì+ôxvFô¼«#™ò:¶¼Ó¾ç¶-ïÀ`¶+èžwu$S¾®9S÷¨¼«Pä‘ e^¡Çƒ°Þñ®ŽdÊkoÞi:Þi#ÞiÔ.|…ò\éZG2åë ™3uÊ» E™Q ,+txdÉŒ UF(’YG6ˆìTó©Q¥ƒa@™D×ò RãQQ³´_¡>‡rŠÊˆVq£]ÐÎ6[ägx¡Qf ó™sÖè4Šú‹8WGh)TEë†Ë¢™–DÕüŒ*3€e3ìÀW¨Ï®p®ŒX•´i]<ÐfüŒÒ‘¡(3 ”e…Ì9k;ìÖ‚ lcƒB·ÁN% Áfàéã+Ôç²sɰÕ2ìuŠ]…¢Ì(P–:<»ö¼ÐH\l íž,Tr‚„“PeÄÒIÑ`Ý€gÉÄ)Ù2YZ¹,i i‹U¢§×AÄ$,ò¦EõXKŠGŒäh¿Í(À»Ž“üf]m»¾‘uý""ëŽÚ 뎂ˆÃv,HYG fms³Ž@`‘_/ú#¸²…S„TÔ04e·è57¬íbÍÉPÖöF´Qy%oÒþÎT„<ùEW‚•ÕÖõËLeûÕ´3ýjëúeÇu}àšïé¢ gï{*„¨*ˆôŒ.:ôt¹ÓùÙK¢ Λ]d&\$ÂX‘€‚[œÊÞÑVÖÓ[üÎFÔä²Â1‘yN³×Èù,’¿íJzt/Õ1´z÷oˆåºƒCäðy³$JåUÈ'·ÒVò‘G*ï6#^¦à"Ik&h»×.ù²Äݬ'£JýCÈ·År ]Áw÷ ´h/ƒIð=Ú¸}óñͳ·§Ÿž½ÿ¿Þ•ÐæKSâæÿ~ÿîí»ÛW/®×i8„šs:}ûâå›Û~NŽ´ï›]«~wþYÊ-?(Ù•³ E!Lò<Ùõ;Lv9 °ßKv¡ÖáaÉ®4~ÿd(ÝdŠkš•á4Ë­ÍÆß•5xN{–ë~…P€Ònž±N™5Ûf³fiåüÛ(Çk‡xþCÚÞ “òYÈ¢¸“ÌËÜp±MSó´Ù´ú²i\‰ J6í@â0©P¶ô(_ܧŸi'áì•,ì•2’ˆÛù„YE]*eê&‰ð×I¶”k¤’rÕ™)Wmí6WÍq»V¢p©nòoƒ”*IòT°bÍð~1¥ jÒ/ëð\‹6š*`@KÝq f »8Î/PF8Õ”XÞ ª­Ž0ÒP‘|5äLÂVÞu¼qçîx gÜ®˜'Ã"ì£W‹º45BâÔ稚t¬zߦ«™Î1(pÒ/Æ9Õ¬ÅQâ''ãa£Ë|¥ér¥sqC|C…³sÐÊÚt`2zíy”2ç{:ÓÄð¾¥Í¦”¡ÑMØ9ÃI±ÊpD±~I«ƒÅóeʱiqÕŒs߆˜ ³êèoˆ3 ¶-K\¤}TGú'ÙEpþÌÀÍŒèO¤ƒk7¿£ú“—•‘t½2ªŒút@¾¸VËjRè€hhû+ˆîÁ‘%p9\ŒŸ!€ö©ÌÄud)Éß@þ¬Ñi³ÜVó¥¹dÎÐäÛs)üã ÛˆKÜ›D~’ /!˜Çª=~ ì ðïëãã&/ ˆôæîO¬°adz¨@B~`ÇæˆœõFE`Mé€"¡'ØBÙÛVƒ¼«Y}¬BÖи[ ñhíÀ6ã¹ìtA!ǧ•Ö¹ÂOp¶FàÞ¦¿Î­m°Üç%å<î¥ðܬðUøïOèUkˆ•Ì,&ù½@›n£Y…M]ZÅÆ‘ŸÄ`3§ù7l|{ò“‰@²‰H¾š1‹wa{¼-¸Ï¾ÈW: L¬rE… !Þ¡©¹Ÿ(Á:å½£Ü8¯H-âùgÚZÄP¹—ÀhUXU>|•ɃÔÈ.r@b×úþ±j|b³ ]3Ç®Ånt’“ûô‘x«¢ê¸_ÎPv‚Pêp±Ùø¢™ä¯ŸïÁò›í²âUø*["Õû­–Mål€!fÚ`c#±á›ø-Cp1w€Ch'­'ÿŒ~ÓÒ]Qµ®Ü0øi5 eËÈù™Â|yŸù–+Ü׬‘b5A¹ð™I9<ÈFFÊ15— ã$—€!†FÝ2Wܬ–3¼6ÓÛ¡ +Nà¹ð!eÊæˆ°øÐºã0sɯ9pó€›Ù¿«ó#S_…dz£õá5¦I°F[·‰#…Ünvo =ŒG¶fc)¥ ¶Ò°iÓ™)^ÙWƒÉ4ÝfÊjÜ“WÊN#º–ÜÞ£Q6jA§pârÖrÃÏn—ç%4Õ×éMફ\x@·q+w9+üD”﬜]*¥Q]Ò­é#]Ì©ÍéWl?ä:PxÓé¶•àÙðXñ¬ ?KWt¦µð9uGÈÌMûÜê}À²QT™µØÁ.nÅd€5C=.ÆÃºøÜ÷+3’_‡Y2Ù9pC»SE, ‚‘·à(:©ywËGÚ‚Ö^+ƒü@PmÈs† t_¤‰;:¯s¬'Ù›·™Xsv» 'ˆáŒáÙm>£BYƒE•<üQ§ŠÙ‘ %A ÐξßåÊ`÷¸sƒ€˜UL± ÐÙØg1~~&fÍÇ»b§V‹4_©ã -°uI“rÄþ—¦¤šÆ$¾gw}ǧãwï#§ï!¿^³Aß;ë{`q£ F“‡ñPÆò ¡œ˜×Yê#ÆÔ……+Øó_Ïl”VKÁi®°³ÐÇu…I‰“ç7Ê Ø¡.•Üe[…v çâÝUAÝ?Å¡@ȽŸ¸ÒûRžà؉¶ÒÝê8ä; : ¥U4Ýo6£×Ús›¸¬eœ¼ >ó30{Ë€=ÎÁ5>e7e˜’›|„ £_‚¥ë…kꨵGe½‹CW˜Ý¾›NXúºšäÎâ´Ø?)Ïž»æ¬° «ç£\&vB5Lƒ { z1Ïk(©Ú4Ì_/Ùâh¶˜¾ wò5{Ý%âT´pÌP*0}Ò~Ùά#ŽBºŒÆ]–‚{ÜaÊã­,BìœOÇeoz‚a§½õ?t5ž·Û7>7Z/éúlÍÁït§o’h9Èb”65œQuÔ¡JÎÕ™Ÿ2 ö𶢊íçõ9ã÷Ãæµ#ðq». ~:Äm­À4¼ôqÖCÓÅé~¦÷‡7bÚ~?ó··Î«îîŽxß5ÙÖÏÔ”Û{ -Á,M:A¤rZµêÒ98[¯îF»KÙCï¤çXÚsó½Ž t[ÚÍ—­°é˜Ó#9M7æ^ŠhÚ†’;Òi)có„ BÕ ¿ÕÞƒ[×»‹UûU¼Wcäj#Âû¿qšñ¿Í·z¢„àÃûã@cÍäfPÛH„TÍ.\g~‰þŽ~½|tŸQÆÔu÷ÍÒjØCÑ6jR›¿Ck;úÂS›G@ 7)•Þ4™IÞÝ0ù:ZçÈ\ ¦iù>’¾–&;Ç!}+iGŸíÞmBOÜMõé¶’:br0Þ>Ð=(±‰º†É êlëûùò*j¢é¿&×9j NãÿBªfЏ+Ÿf+¤n¦'ø(údW•îö©«Ê:Øæ€w׬ÛëÅëémú>5ŽÝCŠë±óŒ¥&õå|gÐ-‹¶ê±|gÄÊßm3 uêN;$üöN_—¾C¦˜Á§*ãÝô¨tÕ{¨¼ö+4›”^Õ<(=F†>­6½cñ¶q[Y)D_6& \X"˜†Ïiâ8 JQXR¹(­úHÊÑGmæv®¶Å,ýnwÉÀ1®[b&À$ßË.¯.¦âþg}¦)p…GÛ„ƒž+ΆYèáÞFM?±õhž+æ“ܶñ,¡®û‘Ò´¨¢c¥—ªÙ2ÊIv¾+â«åü|Žïj”Jÿª§—Ãë!ý‘ûÈÝéJ{ìGÌgD®až¿=ü3)¨endstream endobj 774 0 obj <> stream xœÕ]I“7r¾sô#úøè ËØeO8ìðÅcÞä9HjŠ”E6%‘Z8¿~2@½Ä’ÕÕ\B㘃zŠU@"‘Ë— ð~ºQ›¾Qø¿úßo_?R7/ýôHÓÓ›úŸo_ß|ùìÑ?ÿ%øx“·Lp7Ͼ{T¾Ñ7Ú†Í+{¢Ýt´7Ï^?úêòÃã§j³ÎYåþúì?ác“3ÿØo.§da€g·ðúÓòº÷&_~{lÒfLH—¯ñ/gm¾¼üÔD·™è/¿>6Æxy޹ ¢ —Ÿ?Õ› ¿ÅÇ1Â+éò=k}4ñòæ±ÂÁ¢Ë—;Îl^_nñ}J¦{ùOåy²Ö®æñ9ã<&ê fù®P¯‚Iü6áëòn²úòŽFó*+{yÉf^h²Ù_^1B¾¾R¿„pÝ(}ö!¥îËJjR®[ä»ò²Iù~aïT&‡Kæó3æ—}„ƨ°%“Û¾ÿpÝ÷¥˜¤Ms1á³2îVž|y[8Šd±—¿+OamœÍuÍIÃvþTÖ©rÒmÍÖÁÎÕw¬‰¡ñ‹øò¶°ÑÃÎ1J û5,¨R¦m9,¬+gàÛ¥„ÐülÄ»ë(È·§ÆÀÿ5ñæ©©vAvý“ËÅæ‘†ÀdÖº-ê‚fy¯cQA£Æ•6ƒ8áC Œå²r‡í–m8rü2ätùF¸Ùó¯ïÝc¾oÒó²ùÁ4®ñ)é…;ÆäH!4g/ß2¹îW¿s‹þv±È²Õ,?5nÒôÍSÚ¬”Ë&ý?3FƒX_~/‹LÅë”B®„X­á­²HaœªË1{òóþRÐ #¢’!{XóÚï4¡àÀÞšžÁFáÝîñmBHD!°lÜ%7Xgþ7·4`ÖmÌ H–3˜ë%{Vx4²ƒ=Û $Wœ×H«Þ4ì)û’õ{›KÉ`Ú`Ë7IœômYÕb 77-ïʇ) Vm þݨNþœGáFi)Ç8b ƒÕ¤EF…Æ¥Å^¹êË9f‰o·lFna¾}ŒÒf"xêØŒ÷ó:ZØYÒ7W«Æ Üm!?_w˜^~† ¸c›ù ;ʾã#WPaUÌÅHrzùu‡ Ø:éµQÛšyBåS¥*&?ðÍ)ø6”E føöðÉw^oÛÓÐŽÃøÿŠ=ìhö¦tºü ÌóÊ=¬Öï+?°è£M@–€©åR̉‘†yƒîX uÙzà–ïQI}#j;k¥"dx×½]mþ»BS[È÷ôÍ´íÄCÎs¾2NH·HÎÁºìš Ÿ”nÀcçäxí÷GmH¢ˆz¥¨˜uz"ŒoŠ´ýü¹ôþßÖŽqáÀ{Ÿé 2!lÚú•=mοÁÞˆøE4Ø-×m7ÿl~>Ê«~m\Ž÷›«2>/O}ë¸Û>;(RK®[Üoò¯'½l8LuR‹àeß}ˆ7¨+è‘Ï9wàÆ¢£ís ä0÷v†"IÈùsak_•)õVL†ë¶LïÀ >x“ñC4•‚Œs¡åúÓ‡ÂK÷Tbuò> øÈ\àï”Çxs€`˜ƒ0”‚À=°± ÷¡ßÅð8¡™/ÀQ•›UázäâZƒq±‹9þéõ©c®£8ž¿Ì'g1-ó{a[ºÚµÑ32R9Øx[Ö®BXèDÕTZ‹ ÷S÷¾®$ôq;{C0/&:!εÆþKÕ‰´E§ïÉâ ±¬ªß¸_˜Z4? Ø€'c˜«˜#)zÌU„ã©!uõ´QÝÇ ’m0YoNŽ€`þæûPö¯ânPf0FOƒ~˜¬FÌЇ¸•â3þ†¯$Àž /F¾, øÐ\6eÂÚ,ñaZ y·…õ x‚Ó@ ðë=›]\y0z`åqΟÓCZqÐÏúºyAüùtýŠ p‚oüœÖJ͆|%ßM3V¿qeL€ÂbpÕΩ 2¡1Ï@Þµ ¶Z\ªÂ¦Bï"©Ô1}ó²Hr%åˆ5w2¿.ÇÀüm`XÜÈ:°‹©I½²—U)1I‰f/%þýÇÂ9Ñ6¼/‹ N³růÁ×zk\Ö#°WÂyøp jÎÏÔµ±-·VÕ/£6 îmþ Ý"ã‰+BÙИ6ÕéæÙ=zöO_]þ˜nÁ0rÑ.ú @µ¾¨9_Øø9dÂøˆeÙ‡âä*¹²û@è k+ø†V’Œ&L­Ý"ƒPŒí"X½¯€bŽL¢a5Œès&uÁŽ6¤³ÍXä; CÊzãÇe[ jʆ¥eFí¡3m£“'¢L)p$Ãö—Û>pè-hÏQóweš¬ŒXª™ò1u-½Õä,ZDV(ëóJ@ߤKâ’Ó6Øïl_EÀ B/™mnÛ»g†—òäEÜ—†’»Eè€0Ùk³#ûÐvç˜ãà_š¯ÏQÖÑ~™à¶ –‹¸˜IÏWŽ)§·ìzöñÌwKÀ¸{±%÷% ù±Y-àK‹bï)~Ÿ )ä?¹êãž}Aò{p=È ¥‚LžPL :-…LR®vÏñE)±&eh(Si!ÖÎvÆÖù0D¥ÔV’`Å'«uÀ#à_»ñž¶Úî”tTÙL4l„ÀÚÕB¥:²¥Vâ6Y Û­<Î&†3s™ âÏEtRêNØ@â›nüÈdŸ©DïÓ‘>—Mç8{\¼Y„ÉãQ®a,©•§BPŸŽ¯ ‘;æ–¢£pw¡pq³&„.‚¤ Æ'ŠÆñD–ûülL·áܺÍyo6 õ1äxµWŠÁ|jÄÄÙÔcà"&³õ =Ä?¿m>ç.4œVe7l;Z†x’lß¶ KƒââFÑnOçâJá/èòœõ\;h®”Ü¥&åïpš@Y€>½;æ Èf àg/‰škìD¢šˆ†×|X†÷(sðÀÒÒ‘oM |ÿР ðìùŸ·ª¹讵^ÅJˆ6H±û¶š •äÝ¢íâ_ñ–ÚcNÚt”¨üå_¯H`¥TUZ4IM±M…©ºgl='ôÿ±T³ŠSø¯²7ñæÛåÉ‘:Úƒ—* "Ù>€2­ßƒeOø—¯ú¿ñíân“Õ¥.ª×ɶwU·³5ìŽv(åÍê OÒc£WéSš§éÂÂX³ÜÁÌ5&µ•¨wÙ.SfBÔ .ƒ´Ê´9•Gä†M‹¶ôtjYç>÷©Á“fW¦³Æû,Ý8%(¦´ÞžÇ¤.â)ãe¢:uÅS¦ \Ž_ÜŸ_U‹L×™{(¿J®9±ÀyξÛl©?בּÿøÐxcÔäªß`"8ùRIÓ%gÛä€>,¾dK Œí e̱¹npA ß•·ÑÂJ¯?ì{‘cßkqÙ@5©"ñ؉UdÉñÁßÕQ(/P€×žPÞOо*aÞ8·þÐDIaœÏ(_M¤U9çÐ ÂÞ&R]JSׇúëc‹¥([’Ö Û¢‹«CðwœèËZ;Ç›V[¿«öMöc¶9™ÕóàZ¹¢„Åwó´ô þbýþöØÝ¶Ó{§íìùÎVʉGû“xÓxøýØ‚µ &™¦à´›úêiR#ûzt?À2×óà Ý-Úbü“µ  MÊþñ-(àzÀñ‰·®8¬u/wÙ÷û÷Å.‘ÉkÒ³NŒgæf‘BŸÔßÛâ7@&w¬¶j¯Ùíâí† Y§Â뾃I¶ýäéË54ÉfmsÛ®WV*Øïz[ôÅ^Ÿ2ã~1¸.À$€Ž[j Z²1Ï !ÔDK¯7V)_þ‚oˆˆTº|Yœ¤ïÛÇ?Cžñj2hs±eQL‚ß]aC"1ØÞY@¬Á&ô¡QdŠ=ÛÞùe]‹é£xäfˆ +Ž-“÷\JF®¥Qޱ]¢^7åŽÊÓãbI£=>±ol“¥lH/|µî{}N¥$¯Ã‰Ò¥IÊ1oP©iOÙ3ÈRl|$¦{ £­TÅ\;‡>l,6Þ`à±ê|z×&Y ¹²œL/Ï`¿¬‚¢ck™§q˜ÊÆ­ ·uHkú"PoëRzõ8 º @Ì?-:&2g ?á‘Sk¡J¸Ü@hi³t¤”É„ÙÊZtŸËaC›öPص) º”·½rG—­ËGM÷]šÌ€åœÿPÓÓàá¢?ŽM$þ¢l6õÌ.š ˜Yò}‰°Z oýxbT¬ŒZE-CÈ!5¥€Wè;gY¿Ñ¡âÉM#€³>™CbºÞÙ'¥AÉ¥¹¶ú ¥]:†;‡på<겟~o.Z”ýÃq>7÷S8or¼Ñ˜BSÚ…ó˜V´eÛmQKm\Ì~Ëï€R Ö)a—ÌçƒK¶ÄÍFj<í1—ƒÙ*þŒæh 0gú=º¼ 6È´1´±|KÂÚä!œnŸ‚¦‡Õó,:ÜWq7ÍJŸ²Ç/J=1Åë‚kÁ¾´¬~Oôòú%Šp4«ÛŸ–LlkòK¿ Ó–“Ê­mMÞØâk‘D¹o2¤—ý˜«Ä§ÆuŸ ñ¬¡l¡[ÅÍ+Іã)÷¹ãfZLp´>6õâåãÑÑñ<äô,†¦ït;Dµ3 !ìHãdÛNÔi§K½>vØ1¼u|¬JG­:4žË<³°¾Í`£H,+ÿÿSvàá1Ÿù¡Ùyc;UÅÜØeƶMöݹþô“Xëѱéð‡2šö¼Àõf‡¨¼?Dà5¢[´#ÆC‚´=Õã\fĶJæòßÞÁŽfi{R/q‰AQz© `-ñÖ›:‹ëòКƒo7œ¥mý®ï›m»Ãé.¸ª¤Eö5™.ñÆúƒj1 ÛëÁú¢­#º ¶XýÁS2É~¸þèkÓ°õE‰ÇÄûj¬ôsm DbŸJšhèôœZžÿ<Êç ¥È¾Óµ´tƒj|·7Gäk¢lHzY¼ÇfÖxZoOn޵A##  À áK‚e@¾ïû!N5Ú©ÕÁ–Åóñà﹈­½¾w[ä)£ÇoÅa•—*(tÝ!ÆþÃxá0ǺJ"¾ C'êQïó£†"ÿ±•z5² 0w⃠ÙTû‰ÝÌ@=/Ÿ!¸ ,0b—Ãäú…äWýí¼áìàÀaMß—´"ÎhSø£Ñç“¢y.¬ Ýб²$õ|ûÃ’â†Û%‡úêr^©Õ9á±¨Ï¸ó¾°Ø+ý°&*¡7¼¨^aSIbø8™)ìÛ°”§:L!Â+F—Ußp½ _kÄÄ"¯³4¹â€Ù„ÑZ±¹ü¶<ŸLÐw6LÌð<æâÐawыɗOí¯·ulãGDßQjúÞÍñÝ‘!þ®8ª"nÏ],'/§ð’$ǯªTHº<zÜoËŒÞúŽ—Ÿõ°ñv}^ÏC”…õ®j@ì\¹QA»è"™“MÜ‹”ûlNù šÜïÍn«v¹éÐÇyãž½×Íc¸c&P3æU¸Ð0ùrÀ÷e@@ߢLüº#9ü4 æü¹y;Ú=Z¹ûØÛ’ºà¥!¶:(cY‡£ ä32Rq`nêí3ùI¢©uöIéTÔ±ÿtºê\¼¬û•µ„ö¦&Úº¬^WWñ­gNOFc·¸2XbZ•cP/ú>ñeo—‡w› ¯èë=‘ã-g›äp”¹‰]•#z÷NoWmãa~ô_ˆ‡D-_KFv<¤òfäsó·e¸Ñ/¾i;’D –*nC]‘8–´/^è\LåÚÇki+þXº ÇI}åCó¾ó ;µ¸{%¤°ZüØÏXƒ¤²^¹®û¦Tør:–-|”ì«·)eX~KhZ'G¤Þ á´ëà&÷&! ks 0z¦¢¬Cžz"fÔc7ÂÊdŽ‘™” <ˆ¨0›§«x©æËê®IgÏ9r›o½¤wjÝ݆®+d,Úý|M0G–š!äå¶\„JPsSÿFyv+œ¥U¾£%׌½†w±ƒêOð—U .:ë}ÿe}®µÒÝó7l*4)“ë^aén†M"9Л±jÇ¢eì²J“úUò7žã¼Μ:ŸÒtÃËþø:ɺ<…¹×¼;ñ8‚È@L8ž(9èÃzì`?üìù±ì=âÖmi¸Øo‘Ä›DŸk ½ŸUˆ*-ÔQRä¶T€±üÁ- –Î{þãºÚåÄŸ2R±Ü =M>bðž»` …'‰ÖjˆùäÍqxo}NjQy°ºs•ƒ ,:ã+áÔ¯ó¢3žw¡ÿ‰ôO2v½îµÁÝ«V©®¯¯Ì?ýåÊ&ƒ!í¢xá°Ò|pu¿Á⥳] °„×~Òfü¹Ž9yeY×ñê쎥?Y¨ó¤®.ŸÁ²V¼Û³]GŠ2:õ£X‚ýÿŠ=v×õ:jé ˜‰û+{£ Öõò¿?wkÄá|rC}­È€¿ð‹ÙÛÝÉûköŸÞH]›»æŽÀÅáô‹¢3ß³¼­š…jŸ×õ²9ÍM/¼h¦¬¶ÖÅœö»\1(•š¤nȨ‚FO—Šþ^ÔA(ËÏßl"ïβÞla8 >ש®ù R„î@°uåníƒ`ß賡²;ÉÍ…¼ƒñøàÓ”dîÂïN©¼ÛÌ©Ÿ´@ /ÓÏÒZ\’™nƒÇ1M:ÝMƒ¸þʹÖWë¯iø¿{îºÙå˜pu Û*©5c8)ƒ¯û°LÏ 7••õ>Cº“þ·"žZ/;F‡ÅÝ~߄Ĥ1î!Lã/‰Ð„éø.NàbŠZÄ ÒÅÒïÊœ!zs©.™pµÕu!©Y¥Ïrc!ª²“*ý(­©àe¡ !x?ÖÊ'ÍÅĆ ‘Œt`›31 Í ;Û–“;~$>/½u“æ²÷béVнê( ½ìŸg°/ý!nÖßÇ`¿rc«j­ `‚¬þƒM3ÞÙà܆ýx¬(@äøòáמàwj¨±¼)mßõƹ­ñáR&ÎOq™æQ„2ÁowÙW)/:%7Ñ ÷¸ûÜ¢¨S'_éëÛ"†€v$Ÿö•~ñšòÏp¦ôjœ[ò‹NF<…8k“›t¤›ý5»k 4:o 7m;©´sØÐÕN1×¥ìøKO80^!ô?õÔ®•ÅaLJb H¸7s(Wµ â\Y$²»žüi1|w,ÁÔªz‹üõî¸÷e ‹ú˜ú?á÷>¾1¬ÿ¹ÈOöckÞ²«gÊRW’ 6ÐÊèF =é¢2Ø¿Á²âo¶½Ò„æÏ}8Ó1½ð<èN,üõ<§zp¶¦Èª/xrá»ÿbÑÛ:Hïèl¥·˜ãAÞˆ€,Ð:JÚÛÓ/GGŽKäáV%ƒÁy4AÐf iI<Ð —˳Àÿ=ü€Åb4?Ë¥Bã ×€JRoêy³TК¯›\uƒ:¿¹—Φ&š£¦jœið}cc0“>.àBqçÊí ˜ ¬®çÒ²SãÍ(‹ÎÄ7ú¤Nd|ìá/ŧ,\³1¤æ¬°Qã¯4bÑ È?r=J”ÇŸ ž*ÔD†;eañÝ ~YN×wTd)6_’‹¨áI‰ÒCž#=×+?jÒ½Þ½ºMéDŸ G+_0™žãÎér²¡»-ª]}ð+ëÎ?÷ïk+1«M9>f9Š µ ÷5hº¸÷æ)µ™J¹¾ö?ñí??{ôßð¿¿™2 endstream endobj 782 0 obj <> stream xœÍ=Ks·‘w­kOä–8;xÇMUœÊnRåĪڃíƒ,QrÊ)[~„ÉŸOw3Óxô|ó‰¤wËb€Ðï×üp1OêbÆÿÊÿ_½6_¼}öÃ3EO/Êÿ^½¿øÝ‹gÿùW£ÒEš’×Þ^¼xó,¿£.”R“¿ðÁL*˜‹ïŸ}uùû«ëyÒZ…à/ÿ~u­¦ÙGk/_âc£Oæòþ6JÁ¨ËŸèy˜²—Ãß!9=‡ËÏð·^¹pysÃ͵¿ü‘^õÁEûÍ‹ÿÀtªÓvJ0×ŵғ³^]¼x 0½€ ôlL —ßáÞ:¯gŒ :\~¼ºÖ&2—oa°5&Ø„«!ü6 0Öú9̾úýšÍwŸçs„í®“¼c«°¹ïºe\JHt4ÖÁ¿ì¶±F]¾‡eâTdÄeô«1ðͼá÷ ÍÞ7üz¨Cý”÷ç|ú„õú³s#ų3^±í³½q‡ÀŽ>ªÒd£U­6gL…Ó¬º<ã­•QËuŠZòH™GT ¾±Þ‰¯­3f ¬5£çl´W¦›$G0[n÷»†g‚™|Ò›­º—pí]Ë2†çXSÙ5ÔQ©Úæþ—ÉmmÖHgZf™}¯ôâc«ØrGÎéTÕVC{~W*®Ðò•v¤5ø„$ÕØ½ }L•&µCÃŒµdZP°ï•θ+¢‹å®Œ«|º D?³Ò9g‘tFhç3Lµ1{Luc.µÑ+ åyÌ!„*y ªE?\G'ÑÂårƒ©çmE·iÜ÷Wö|U 2MÙËϯ¢€¢o^B8}Šû‚¸uÉŽq«¿àXJ ÜÄ›.³ˆ¶u£é8¢£‘ãçI¹]ÅÍÌɈ(ø&MWçâªÞ€ÆôÈÃcâe>ÜHåÇ#‘KöÏAmp¸Æ,®ÕùœÌåEŒ×µQ÷x¯#(ÿ&5¨]¬¼ûü÷dÒÀA3s[¬ÑÁvœ’Ú½y¢õ!=j]†{×w’4·i½†¸ß RíJoÏ’^W:Jãi¡“Mã‡éöxíʶ¢·n {nf8ïk<éï2ÌAùGRèE¢ÞÑÜ8VºÒµ(N½ÖýOªþÊ‰à¾øY­%í@ßYhà’ÊnŠ,¸}÷´!cJŠ=qTCÇ%0 ¯ÂŽã²Ýņ£ùñ›MÙÈ v4…@t‚(àØ__DŽ-ŒÜ–ƒõ–@'B®9Üu¼†¶Ëï> z³w«;h“c€#ƒ(Aœêlš6ÚƒZ ƒ\”0ý°3ƒ\  Z=•Y}²® &ú%çšG¾Éýì$˳_)({$úðK~wN±VÃ~¢¸›‘h´¯BƒÆ¡ÕEÁyÃÖâN"üù`à*¥¤<,r ã «¡^s«-4ž~Õ&\˜´ÍÁãÍ¢¢‚À²\%B¿l£¥c•ZÄ51N,ÌPbt“ç†-n²ŸÞ<æ®}]eµ¯K"Žšs[¦?œ[ÇÃ@I×Fä'Ü\æDC3úÎB¿Ëg£[Ü£õFäÈü3¤ˆáXe:OëžqÕøóâUINRÛ97ml>dì˜å!Ä®Çf,ÅÓ1O«ÃK³µ¹² Ȫ.(X‚]^[)ÙÝjm:§F'Eàö Ï¢8ØIpz ½8:Ö]‡wFlÏñƒDÊÖÀã^yB_'žãJ¨}6yI××^rεV?ÂmºtÀ2G žE3ù6Pp)ˆ5y2¬Ò^‡h+$˜ë‘q“¦$즘 zJïyÎ[©Å_Ï;[A×$ÿažÆ2ù§-%Ô…ß‚„ØÉ×ÃY´²ÕEÔ"‚Ö‰$ÐÖ£Ýz´ ‡ëh+)¯-;óK* ?ƒEÅȲ Ñ1ÙºN±É9£­x%¨¹'´š…åà$¾.wäWºÃ¬èÍt$s`‡—Æ/™D@Tš0ò9÷”èõ€;²¨ýÓË?^UJc’®‰Ù²º¤kj“ý¾¦CTK`´¤\"–Mþ»$EºPäú‹+£àÉ’Æ€·*J~æ¢ïØ„9±RÏ 8_É&,©šÔk™Å ú ¿°–þûMÞ¾§µãL|qe÷WfFáéùóZh­làX£õiòú=´pk•ØÙOzØéáþQí’#… hºœ…«ƒRNÚ§’Ý~½M°Œséð±mU:ØYwݤ'i_–d@7ÏV‰;÷rBæª2o¸Ð¨­Óƒ :»fc Ýo—Xä]§Ö?M­-K`(OY¡õtTQˆŠfÐÓ¼Ûóû-xsJPyªI{Aeu¢Êå6 ®4;xŠR›Ò‹#ìF"VU$ù6‡jrÎîPºñ #LÎQhf‘Jšõ¥D¨ý]î%‚—0¶ú¥À‘àÒ÷<—}× tÇRÍj5\'l¯cúU(`Æ<9qé&ûAµñ—BÍÆ رuÞéæ§ƒ—¶ïµu: ¤M¾¥”Ãà VZG7ÎnmKM½½;›ñXÈ’³kð§¯CÊ‚ç¨N6cÒ6k3ƒý ¾sg§%7µUmšˆ:Ý‚© ‰÷ƒ:Â.g·ÿ[[.?x â òZU!3«Œ<Â&ˆá×&…gÎI“¿oŒ„.4òq¹ÒV:'‹„Çô¢Þ3·“Wp»@ïÔûp‰ ²7ÇÖiÕæ/ã‚N¨]¬÷‹2šö˜ oÃbFÁL¿Œ¦ŒÚ¿­½$f7äüãzv¨‚ét¡Váó Ȫÿ¨c'wOáo ƒvƒ‘R§_æ¨ƨ÷’o`Èl㈂Œk(ˆfžÏlnØàF°•1óÏJ±„U·¢w-,äg+5Øh›káh¥›Ñè:‚û\ ‘~ÃfN^GÛTZe¥¬žî¾°Ã\Û²Ÿ&µïªÄÛÍ¢ídórÁù3w2oFî3TÈϦ…üzµ^cg/_1¥b$»EÉÛdäåÅÎ_ûÈÕ䀒ERvË€Õþ£NwŒ,´†Nñàë“Çî,»NöuFŒ™8Üä¶Cµ¯€À´'Z’í¶ÂìV}Ý3”³’äáÁò>Å>Ã^ÓÂ@dÉ…8 tÂoîÝñÒ®“S±•"Èñ¿âcmSrƒîb ¶W;¨¸[kbMOR¸šÌH9¶%x‡-KޤÝ–p›n M†ÎÅñÅ’É=]Ûän±m® B«E#%«éÕ*7ÌÖoNÐÏ–’.]#MS€Û°\é@èì%ÙÇMtðzô“ ÍðÖ©†D+M¤¥ÎÁqÞ-Ñο‹Þõ œ:%•X†ò5•pÿ¨UÇÌ €¯®±ŒàÎŒªÓèëݳoñ °Òõ·‹f€Â–ÊS¢§¯0IÀÓ\_“†”oÍìŒgîˆ&ô³°:gùËqë¡;aª¿ YÛnáŽ÷-‰Ýù~þ§h$•û÷õåS;»º}š¢_4tôCÖá‡ÆÒs]r1®á‰ñÊgÚ¿<Ÿ8Â?j¡üÐ K€©·üáaÚ—VË̾#¹ £‘þÆ^V©…méÔrãs÷ñ :w¹R¥Ë”/ÐÉ)Q;ÌJ-°¸^¼üç†rÍ ÖûßåaÅù™à°«Ûïaºô‰ÎŒðb× `¨}ðT[îï—¾@ÃÏöŸ ˆý§Õô‰oe?¸Ãz;y¸¾ƒ¾ñ²–°kãEY˜xTíW97HööÞo("› BúnÄcùÙ:u—:Q€¯eÁ8e¼vòhŸ¦Ãá U§¸z€so:Œça½2ËÔ¸©q„îoƒð&Ãà‡U_«V‚P#6®ú¹ iZ¼Þ•¹½˜7¼ZÇìï;­ p6ãkÝšÇáÆVF£‰ë’ê#…ázwu×´ôÇ|êÚ×9¡¤W23¸„ø˜7—ÃyKø893úÞÆ^F,wØ-}¢!ΉN!©ýÇ®ã¨+oFÊ‘àv1£ŒOøì~§Kr ZN—ÌL£Ô#0Ñ$ãJƒMéÌ Ñܺ‰à¢qæä—ÂI e|KÕuñZZ»ð ¸íÅÈÐyPV¶¤ 2B—$Ȫ'Ï-i”1.—”¿É~ò®ž¸õè¶¾ñÙb`SðnØ‹ßåÝÇí^¼»Â^41b þõZ!QÒUAÅ,íÊtÛoÛÙ =…M!G}ñÏHýÄ{òn€Ü6£“`çË¥²¯V Œ×¢s½ŽóV0[W0 Z7nÜYeXwÛ%Bvñ5ÎÃ_/Á;ß"Ü–%·ƒ Æãå×ÛÇݪF©]bÃÞ¯~Ÿ×eiPLÊÒûG×᳡ûæÇüfR+±“<0ÛÃŽô6¤OË Õq±±òÒÇ—Þ /5¡eõÝ”„« Ú\I¯»výh–j×wÚdO¨Ó˜’›=PÑ&¿pOÂæ/ò$ˆ–¯/Ùä_½ÞD&uo|õgl°·5HÊœ-&åQïpئXáI8…m.-ûE 8…U˜¬ù„Ѩ0Àæï`nnèy¶¡d´•Æwle®;gÖÎvà<SpdfV±,ŽÕö˜þŠ&YÂ2ðpž•ª â‹`+£Q©YU«ü‚?·ù 3RrpÀ+Øeãä„Ù¦ÎG„Ÿ°}µMð]ðù ZnA\k(¼ÙÁøù”W'6w΢Ëu$’-y©1ó:Ovmìóïa|}µ!Q€Ñ[b6|^j»ô²BpîÕÇ  Ž ]U“,}/OX·ðGz¼vU5ž2ÐWMÒC?æÙ–^…Äz%ÿõ~ªÈ¾ÊÖµmƒýéÖJ®÷ï/œ¨`hS-°vݤ 1ýA™#x,ºí•ŽO±:IÊÎ"–oÑ¥›Ë?•¦Eú$~Þ®âø\ag Ár]äbõ‹;•i´®ÃMäÎè-ûÛ&ðJ¶@ÛCÛXó$I£Ø¦;6_°»+½ÖÇ>°aIÍr Ük˜`ÔÎàv]M¥MLù¤W€Ã)t{1ZqʪN1w.—­£¦¡0BkÄþƒ•:ˆc]éà_lü×EIÂ/]¯3®ð꛲¥Ú6¥bhìr¥‹ã}Ã6뜢iím´» ™Îž²Ctíf;öuì!+nLxxåY´Ùù`K#,߅ލî9&Iºý}.?ݦfªîhqúÔ§Ô»‚ƒýÊ;.<fÁZ‘+Êv`)H&Ø:+¢Z[Ç­Èœ°B^¥FN(bõÌæ(;"›cI40þhCŒâ'9ô µìZš®ÿiaœ¿EÓšŒ&7è8ªZ<<¾­Ì&µ&•¬YE 5˜ÐEV—Å7­à?šJa¨eޤPJD^øÏªi1•OA¶áp£(ÎsRŠª†/HQÕSžUŠFdæÕNSû1ÃÍ|ˆ¡²CÿâÙ_à¿Vª endstream endobj 797 0 obj <> stream xœÍ=ÙŽGrïcÃßÐ=†º”÷aû¶áözW"°€%=pg†D%ÅýõŽÈ£:òˆê‰ãµô VMVfddÜõãA,ò ðßòß›·WâðòêÇ+™žÊnÞ~ûìê˯TŒ‡¸D§œ9<{q•ß‘©Ýb…>8¯éõáÙÛ«oŽ®Ob1VD¡ï®OFº%js¼KðÂÆßÖ‹äñ‡üÛ† Žoð·ÖÖ+¯Âp­½‰Ç÷×'¹gcÄYò„öøí‘,ôF ˜B Eß|À!Þ» B]èNéaJy|MßçÇBÆãó¼¨Ðñør ÕóóÓÛ¼mÎÓéCÙ¾ ÊZ˜Zùňh˜Ni´±VÅ _z“õ}zSF/íñE~Q8ØäóùÞ_1PTÝ“!ß^çÍûèê†ÒùPPþ*?ZëælÛÃZç=+™Î!¡’Úæµïžýû•²~±Ê=»ªj7†h¥ üȱ€O}T VéÎ+ñ(S‘côŠ„4IÁ»VÞ"Ì3ÂV„šà/½Jð‡àŸ*ü'©kœÌÛ ëRÊ'Û»!X£üâú¤µYllNùžLr‹#ôe˜¡ ¹Ë“8øO×'lh–éX'ôQN€uŠ]bˆ{þ®ÎqkØÅÓ2¡ÌŸÈÒ”Joó^°%̇üXYØE‡– sðàUs\Γà ~ù•–Ô;)³À6äá¤`œs!éâk@0Qê ª NZŸiÉG«„ÏËH`V!¯És:æîWWÂÊãÇk jgéC26ƒ× å:$8k Á=ƒ ”Ð:ú†z„8Çg¥D>=Á.1ø‰4ÞS‚¤„ò §@ ©mº8Ãen<–_CYëÔT¸Î5 j\xtA:é0hà¤7#8² å^#ÒèFòôE~êŒÞäm¬Ëê=‚á úÒÞoÊ,tj–ÃqqZMä0=ºˆ°|M„è=yþ²ÌL ¢Gø`)K¥ï¼ôœŽ)8¶€å‚y+Uƒy¢G‹PΛiy„ômÑ`ÕÀb Ëu–A ½¤låD ¦#¿©ه⿊eã"Q,¤ï­”$ò5í*ò[C8Œ®ó‘˜ft!FWa+UCstÆbùPqËÌN%ü»&˜¹þ!Â讪*w”ç§&­½qñ®¢?HRÁ©V¼ã;Q g.1ç—tz c`—MÐÎ/ʨbZå•ÂicF_R°ž7Œ®œ3ñ“®w×ñË™MHXT‚¹‚𿍡ÆM:.%ü…×,ø!Oa¤Ûå(K¼4€¥´rUŽÖH¡qqPj|üŽÌT#¨`]¯‘B¥R¨ ÇëãP¢–ÖeßàO Þ´Ï1V·`Lž<¥KÁITÑ™ˆP³FJaP]_+1TʰÄ(TT2Î,ÚèoÔÜñÇü8Å©F4ù$äWâGh¤éœ¸à5kèÃp¬Í™R@Û÷á§tÓC©ëŠ[1ÝuD}l[­ðñÚ¤^ñ­ï(èºcܹ˜èqîrmY¯i8þê.å‘ÎS¬Xú7)¢éø8!^É!ˆKðlÇfL<Ïú ‰äÙ|“× azÔ‡3&ôülâë[™€a‡np26%mM¦Î;wÑ´Îd ;æmej‹ -¤4ñÈY°"íñw«­Y~&§ì¿Ó‹Î‰Çàí!tdQ|m pAºz6.‰þ¯¹Þç5‚è£â0í“(*8+8¸KÞ…Ò3*âBfUq½ž‡Z =‘Šƒ¹•ÜÌ<ðˆ*\j},ä6£ÏLjb…Q¡ÚàZÆù™ðÆ18uÑnpNc]Vð[ŸŽ³.£¨ËýQľÒ;9JY\¢ÿ…óõG n€f ÇL H‡¾xízžR8zÛ(Â!>]Y®@ÕØ`³$Ö Þ}÷Å L6o=‡&¹_è(Ìiƒª”ãÁDCZÇGß9…)/U6™Ãt—tÁ¿Çí¨% tÿšô2 ç&8ÃèJ Ø%PQÓ])4ãäðêmò—_Ál4°f ꢟÇÔÌz1 ž¿QRë鬄åÁŒAø¼ªÙÉó5s« |[Liú‰¨ ‹ ÃP£ôÚWà$]ÈÂOø+ÞõŠË;*A:GÍ/ˆˆ<[…=PC:™ñZXÊ8'ÔšV¦xê!”à×–³É8ÀSœ4ÈcºÄ°„Ô¦Û©88å‹Ó [Æy¸ã´ܼÓûR j…Üö¥¼ÏõB¼\¥?qÉè…£Aׯkð)ðÁ$f3hÞGGmÖYò:˜Ÿ3[]qf5¥AWŠ4f4‚‰‚W[b=,tõƒvzZ&Vg¹Ðƒ ®W¸pLœeÿ$A#œ;èÏä¡‚ UåþKÞ¤º-NŒs´BÌùÄŠjÓPq:qªw@cQMɃ  Ämì,þß\Ÿ`0È­é…(g#”›_£sèhG5ÃŽàähà&—32ÀÒÁ ï˜+œF¼Ïø¹OÿLíÄæ:E›‚ì¯4`»ºË ÊØÚܯæ€ïíÞ»| z¸ÀÁJ·YÒ0©®ÎˆK§Ü±ãò—÷‘d‰ ³û_†céo°?LÀÌÃåÜLØ#‘;=a¢ß×™špt–O…£âx²xÌy“C~Û†‰Ö9²“4¨!›êMNÿV]Zè¯,]Àê8Ò³½ôˆ ”m‚ÇòVY‰Aî 'ÅÉ@~Ÿ×¡a ßvb'n,üň?'Ù‹°“ä®\ŸÌœc¶CJMyÁ,ão]» $ lh4 å™Û¼4ª)MÑü›!c:ÝsÐmá­ M{¼ :ÝõõeûªêÆõ!¹E%ˆ9˜Ö±zM©ˆ·Žþ3]«؆r:[Úr‘µœ«½™ÑÒîºÑ-‘¤7Jð /ÖR í)MdV®h1l,ä>ÀÀ}{ß0®Ô$^—9—æxrHôÝ¿;ãy^Ê£AÜ„5¡0¨¶*ÔDÝÁïò)[¶qrºˆô5';*ðx€/Õܶ• #[Gä‹ ÐâòJÆÏmÊ-Éc¶FÁg±JÏÁµèïðªˆÉü}F+T§MJ©ç‚ÌŽ”í·ô‹ÖÑQÈÚ l1©;/ÏÛ㶤cï rÑqº)"ºnÈy|-ú>oK·`«¹OqÐçóŒv: „é\ÀÂ8,ÔæÆ{ÁÍ©†;62§qg’–~\,Wg*mS ¡XÍNõoc¤å¤ëÅwnç1TJL$å”»ãh¨ü¸"tb ¥E™Y™rà«oX ›B"TîöQbÏÈ,$4†¼ cqœÁŒG-V´àªÊ9žO »Ÿš[ :Eœ†Œ´E¤o 1¡$¤i9«Âí]X¦ÙÊV›,óí‰s-v—M–’X0Öt6>Ål±çù§%·ñc>A] ]Ï3&æÙî ÁÀÊÑv¬\Ý÷y8*úEZó(í#ã¶öÉ:ô²òQHuòÁ[q–hìñkFÖ„°")Ì Ûœ#í;§ Q§¼eÏ{»x|šQ‘“5æe‘•a"Û bgÅXâ)ÇQf5ë|§8ò>Õ×Ík+É{Üi=ä9LË-øö=ÙõdúÀúP€Ÿ7\¨¯¦!À?’Ç”™Û(õÊÀ”™‹kM)D?79“!Y@[Ï+`¸äÆG…ÒÊF•\û8ÕPð¬ÃÒ¼å˹¶U"Þ–Û8®¦A­5 ©×—‰BÖ²š2‚Ô$ÐÇo¯1º‹µÒ?¼-Ý`D<þ­=xIV§ut ùÍÖ!$3ôbB°Øcè³990¡m2ȧ<ïÖÊT,çÎëê¶³S® e‰ «UÇoÈp{ž0…þ޽à†\O„5ÛX&`w%Óu¯ÌWñŽ‹½¼É`¨ádÖ¥™€XÆ´qK—™ÑÊ_'tåý–Xåš"”ð®÷©ŒfOà"Ý^ýõí`>k·n= äþ$˜; ;­@ŽÒ5RkZâÒhÛpÝÈ‹5$éÎÈíå€<#»Ü¥½ÔÒÛ­’H¾À5œ"¶zœ,%9Åû¾J‘ ÐŒAå†TNâ ›4îéûC9×”ÓX%J¤X3¤¿?5©Mñ»Ë¡hÄ öÜŠ;ÌÚãôuóçú~Íý·3£§,‡Y‘œ@£>aIË„4¤œ¼]ËZJIÇWà´^ î´ÄšóßG^¸Ð$sõÈ5iO!x¹XÔ˜–yötCм!"H¹@sBÌu„Á~눔GYZw~Gæî‹×Ǧ{ǽ^«A3Q!16…ë~çLB¸.…ÊaAµÙGaÎ÷wOë¬`÷c÷CŠ”y¹tcGa7e‘9ôoJc`p6•"UÊäÖàSøiÖÞdÒG™Òw^¦N»¨ç§73#$lV¹ãìŒð8úGÝvËO|VÁ ;“ýÞ1š€N©‹úÜéÜ·¹¬©ãÄv¦Ì:ݼÀ$§€ú[©Þn¦é ëqÏ\ ùþUÕXšË|ÒÅž  î[ÄI°¶rOh”†e­µ'J‹š¿!’ŽžÀØY¥¹…¢ÿù²Íÿ¹Oz <ýŸ‚;bJìe„7µÉ<w@͘Ûp2É ™Æ©è,åw0ª 7Ñ®´{í’A;yœ{ ÿº@•rŒBÍV2S£p‰¤ ÓŽiÂÎã­#Ì\·¥2ËG¸¯Ló(wŸZA(v5–­^'Œ­E|5„‘ð±Îá,Ìæ‚“£ð1ße¡éjÌ&17˜B†§så s9Ò7§]³ö›Ëp-û³ô’.®dª/œuŸ,Î4 åzeÕ³–‘+üh’ºIç(Œ¤¾[éTWpVàž®(nQËêìÔŠJf‹Ô÷lkH†γÍðºðßØÜ ¿º³†lÒÝ.K¦¥wÎóÈæV3ü~énÎÚB+Úžr»UGåñA3´ÄwÙ•ïÊ©cH¢5Ð$´)cþ³Vó™ µùU%~jÊÅý Êì¹ê/ÌŽ“q%\'ù-Ž ‘ysñ€T,¨S'åà>Awâ:!SÏ%“¯ß1úEº×4»qì¯4‹Š \ê%Á È=ø1­Ø0>ÕõiFËš³LBÁžXfÐN ùÇ_oôa¥W”F™¤;þ-›O"â%ãkŸm_ o.7å€êLðU&<ä¹U!{´Í£‚³³˜y£L×™;Çá@›s4³âù Uý¥6A͉é# Ìã~ ĶrÆ Ã¤£mlZ9óè»ô97÷ šXÚ X]d¿ýZVtp+f¥kL*Þlâ3õˆÞçW…’3i¨»î«ØñëØ+7¾ ¤ÒXÜæÇíË"ZÉŽ¢e?q£î¥ËÇ ¡îó µü×›¶s°h* )HíñÛ”^3•áÐÀE]–ª`#Æ5#_w~\Û·ü¹¯eìŽ6ü©Ã2Ô’f²Xæùp÷«€áÌ*FB— OFG{½°Ï&\mÙäè|îºIMZ&6²Ä’Çr4/ô¿·D)¾®-E_Ö â?:Ò_âºÏ÷^_*o®J&ÍfX$7MéÒf0Õ~£>Ww3XËEF®ä½ÏèŃïÔ7.îâ…Êeø?«ž¢!E­þŠJOÌÓ}·( laÍ~ÕkSå×›õ@\ w1ÝyW5 lV§3éŸe§­%:ù°cú]®YSWK–)°ß]²6©¨ÕË<•öþß˼ixÌßõÕ&÷éÊ Ékk~ýÇÅV†uJˆ<ûAŲ`¿Ô¹0]0óŸŸ]ý?Ž H{ùp¦«=üùJþåJJé6Ä{{¾bÏÿûæêköãÂAʶ‘€6V*µª£àSùãÂéf $Y°%°¤>€ýþ•Ì´ùᆦ¥aƯCX”ΩtÚ`ßáêv^ºª&Þ7a)çJ1ðŠÀ”²Çò˜Ž~xϽÁOÒÉïÞçEÉZª¼úg”­\|Q9˜üîù5f àÇ‘>&&SÀnwëØú¡8 fW5qÀ‚°ug¢^KæÇ¯ÏS?À£];”å1ô÷Ý ]àî6/ìs¬¾‚“’ ð¿]áñ2EŸÖÅn2̈jÅÂü¼Ã/~·ÊЧy!sæˆâ`•wyŽfÈÃÝ=Bé]¾2J3¦´±®ûü3È9¦j<-œ>¯ãš‡¯’ÀFOÞésÚÃz÷ø•ŒÄçeìY— MDÅué'ß/ñ‡SįWGCLˆÙy~ʵ¨K{R…ÇØ©rƒT±þÃ×ôä#Z˜u³>!àòû‡áÈ‚X_´µZ›NÒ9îse@­öbˆßëNƒðÃGTg ÿéNqãež ]Ž.P¢f‹éòaY'š‹x> ¨*<¯e-[…mX®ÒðWÿ –]:endstream endobj 819 0 obj <> stream xœ½=É’Çqw„Ãß0Ç7L«öÅ7ËKX)l‹¸Q8,´€ÄˆF_ïÌZº³ª+ëõÃÌ xÀcOu-Y¹oýË•Xä•ÀÿÊ¿¯?<WïžýòL¦§WåŸ×®~ûâÙoþ¨b¼ŠKtÊ™«oŸåwä•Tn±æÊy½H¯¯^|xöýé×7b‰ÊŠàO?\‹ÅhíM<}¼V~Kwº¿¾±Ö/ÑêÓ_p¬±" }z¿­·!¨Ó›ôÜ /ÜéÓ6Ççë¹g¼oF”Y”Tñô#þÖæT§×d ÙÉO¸~Xœ²uBc3áþöÞhN¿’mý”'·^ùfëwùDÊ…æ?\«C‚9}ɇi`«¯®oàï6ØÐ,NÄÑn‘Îs‡)'ÐÖÐÃ(éÛ¹oóêB ÖrD ·ƒÇJû³’ŽøXÞ3ø«»%”µd.¨Ð€f´ºøsæGÕ»ë—/þë™ z×Å^ÜFÑë óXø¿²&üA¬jå+öfl‡°ž>%,› ðj³r“¦6Zøˆ½QnØÄ«©€œÌ¦'¢{w}c„]dЧïɰúyƒ<™í©Ü~¾$ïá`eÑb]ð6O§|löÔá.1Q±—ò%?¸+úü¶Å…z´ý^f‘½P\þ4ý YóWç>ç½sÍ¡óúNÕcj¼8Šã-Õ§mÈðš€÷•Pô¦¤K9„nÑÁõ€MÓ™v4™Žâ2¥RÊZî3x·˜*ü<:!9IËàúy-Ð-Ñ1”^þ¾Ûv¢’W„4S&\®oœ“‹áôÞTBDã*CL€'£3õ”#&ê±¶PsQiζãpËoXK÷¤ðꆾŇaÒÏD‘fÄ÷bcÂq<ÜXéÖGÅ_ZŠ¢TKYyU9§ˆ=·û[¢¬È”SKˆîq0~·=¯>àM‰h)î|€e<`ÕXx2àÁÝÍ%r$m¥ ŠwyÓ°LóÚ§rÉ ’ÿŒîؾ©èåì‘6Ñ ¥•Ÿòä!†ª8ËÉ}þ¶í$SP>a& ãçòrÏBz­Š<¥JU¾5}£1! œG±4ÓN§%€ô¿WãcqF±þM™PÍI6h[<¦9Æj†TÚ“€ˆðvK¼Tæ¼j†Ô7²>½(JâÆt"W÷²=[Æ1å|¯Q®ÓQpŸ'IûȤ£)QÁÒÊÀ ÞÔÖO;¹¶cZ”!½bÖ¦û!ïÁô¾(‰*l—Åm™Ø(zoÉÜ!}$íùF¤…¨òÙ[±Th¶³=ñPŠ)jJ4IÖe¿!a?\¼öÌloòÐj8UŒÆÏäÚ(ˆ8c%pH7Ž0Ãuî+z6<ÄŠ¥¨4›€Ú5+1ê~MtÅ¿äõÁ0šyÝ#œ8+‡î®ZoÂPø3YÙED[ÉJo¸¢Ž±èõð`65™··Ü–YƒçÊ5ä@ø ü!/„ì/r¥‘wÛèWÎÔ’Ë7B &ÙšT–OÜžãhTÛíÄbÒÚ,fO)†Ê¬_ÛY†(v›×wÊp8›/ l 8Ý`ÀÆFÒq¨–¾ÌdzѶ´‰0ôÒ6tÏ$}þ]¢³Ñ>äSØkË^Т¤kÝ!ôˆøšRÈZª 2a%––´akk¨™Ûe6&]°;S€)áÐÜ÷Dg“Ú'5`"¨ŒF`3Ãz Èt/Éé€ P3êWò›x/V „'oÝ Ÿv„1uœ}ÎwmϪ§`ܱÙb“r¸sp¢Uèð¼¨ñðkzo"ã¾¥hùmÑ;œS&¿·„XÓ8áàq°¾5QÁÓ¦¥9k“s"bn±9þz¥ÐÊê#NÇDNÖ,QëJNŒêMAþ)5(}ÐY™³© ·9Ap›‡£Í(H+DU8w%(‰NYÙÐÓÒ«k:.1êNþüŽRFê@eKæAHâ Afê4.¬Û#ú-«¨m;8Vomß›DmÒ¯?ËKdÄBIa#&4×7»‰5îÅnG%­I<2Vîò®‰Ìloò–ðXT¤í½Î#{}ެSÀ5Ú0ãx¸Ä´ú¦-þÌÂGã]TjydÍÀ7°ÀZÎ{@°±÷šÎ<V¢E"Þ‹.€\ ÿ€²5r¥i}ëºjY;«‚&$l‡sö Óþ§U/LËXÐ ìé¯É©uô ¶ÐIŠð"}ߢœñ tá&@Ë^\PXÙoÏ`–—¼ä`TçºËoê{Ÿzà Ô-EÙ6µ§KÂZµƒî6Ây&>zÜ8°9²|µø˘ˆË=»®aŽhF´Ó:%Óv´X¡N5B$G¥kÁ_îÊw˜×X6;;6Í÷ÄÈé yäs´’…ò³"m'î1†ˆ¿bîðáRÚ2ª±eˆ‘¨‚_\ ±"5a{d1#ñGÀÍJÙ{AUý]ϹnÀj£C/ò]-\ãc î êõ=àˆël*œÜÛ†è9uë}=Õ¡ëÙËÂùb¨’ÅKÜmkÖä³ì=ƒ½}ø&_ª7O,'&F!kÈœ7vvÊY9lkÉÐóñýb8£>ëƒC…Áû%^O#œA@,¡E» ìБQx¾§‘kyË,œ†]£ŽÝÉ@0'$åóm ¤éÐùð¡{¨Fõ´‘®lÓØÅë•–úbäf*@Æ`u4 yì!#Ä6•¥ð'y±`¡0í±(…íhÓLJ}Ú¹+»ÉV Ðʨ‰w+ůÊÍ0•&m`²ŒÄYå/”C̬Fùý4´7ØÇâ`'ÂvˆŒ|hŒ}2@Û«ãRŽ Óp1N&á”Qú"4|°/‰É)Eé”¶eFÓ­o=’eA‡´îï*¨dô•¸µ¿ÕÌ#î ý׈œõ4£+«D•¡Í)u[*Ù0éÞ·VNÕL— €>"¯.sVÔñô»“2è³p¸[(ŸÆ¡™ &(x_\× ¼·*ê:!ÇKÏGå÷i!œ´¥`@OµJmVT–¶8Hõâà $ÓɥїjrÛi:Âl#s´úr;"ÏѨÃëO2ÀöÛØ-Òp¤,‰$˜2+±|ƒ8Bš}ÊÓšðj/¤¸hè@UH¯vaNãÃ\Q%‰¶Þ¢„ÊAïAÔ6f™ôš• 0:Ma¤wÀ á¹”Ê.áôŸøTõ ¸xŸF/DÊ ÁÀnO: ‘θ¢´•In·!ôñßñ±–^"Uà‰’¡h0:ØèL€,gÛâÇuÆzÈ6!õû®^üþÙ‹úþôof¸¨¸K^ŒOL¿³·F91ÖE>>¦F0ÉÝž\JD‹"5e…îq¬ZÝã® ª%IÌ[—²ó Y¯Y÷f6 €ŸœõPü”!æ‚i&+âVF6<Ìæ.OˆN§É¿84hÇûÓ/‰$¸¬¼äc~MèØø0ÆšjuÖèæéÄ Ÿ¦6f ðÍ’åš÷Óqï3Ì•ËÔY|é]å$—7Ê LQpèòš‘DqëÕ±þW„:Hw<<üƒšž½9næâè ²uFßåt’l%Ãw"ã,îÎÁ4+LêÞ=³®,2`LÕGà‹ÀŠbÈI/ˆdFªzð.86Î"d›ˆÈ»vyp@K)0Çä‰ÎÀNÙè T¹Ì›ÓÒP¿ÌO%Á;œâ(²KÍ«}ÒAå&¢å¦[­p# ê¹Ï; ²}\/9¡“LeÓ­âȰ]Êö9¶;÷h×X( 1ßyDàÉ‚ǶQ!Ñõ vcðºUS`Ö+Öe>À-¹c(ëõý30Œ™IÞ_qaú—5ÖÙpH¸©„Œu‹‡iž>QwMVŠ0}¼N]¿&n öç±!Ôý¶Y¤s8$Á1`IÙ[Oo;K{ CEeœâ]NÕF˜ö~ÎΖê2 €·c/£à±\l[ËrYL 9 ¨nNȉÇ$-î§ÅJi#¼ÓöÒz¢«y«•¬jpï)òLqF „kÙÂ^Žs ”±SÙnó¨ˆí®UÁ ×¼Ù0‡ìœ€{3D‚Ô ¶Õñ°Êú|ç~©p#ôÒ§ÁѼRÔÀwKêÒžYWÝ4i¾Ï|ã z(jRX`yF—”,åÓà(¢€´x›œW~€Ô)ibR$g$˜×"ôÒR’×ÇÞä!Rul¤Ñ¯õ`€³Åg±“å+„Kꇺ „À”!Ö|íÃ6_Ý×”_œ‹¥MÛ†Š…™Æ}¸?]µn¨ŽH’S®l¿%*¶béµ^ê—å‘ßÞ±bb,£ºKH“Ì&²p^-%Gγ|9ÌKŽ3?4ŽpVOœ8"ìJšL\¢™ ®´˜T*X¸(Ó¸õ>O-Ý…‰vm~ÆŽ“6 ‘=oMµ6« Íœû¸uj/D«Á½b8¥ÊÑqh5æÎ°ÕsL„‰ÏŠo-ô|ØÖ@ï+›0•/a(üTK”Ž nÒ½ÔÀriz {ÚÄ,.«®Ãç”æËøÜgØ 'ðq’?|(wÓ,«–p~±3Šü(È‹9Õڌҩ²Ï&§SÅC‰Ût»Ë¶$^¾Ä´Î®nJ=tBâåÿ7 ÀLô®²AÃ@ÍFÞ”Šsxù ²U‘‹8ÂL0‰\`n!œÖzýÃpî´+ùDÛë.¯™„j9 §–“ýg?˜Š)Ô¤ñwe4í8ê·À¨oÞQ<µvžñ€/†ƒqV¯áÂ1„ ®BuªE 0÷ª÷ñn¼h˜/U/ÈfŠNhnú2®#ù-Æ%ó †]NHÕy.Ö”ñ°›Ç´…³MzázϘæüâ'm8º”fØkôl Ÿ’àVêA\˜†b—­o2•  r÷¨Ž{a*$Ö™?äáFí|›êL #Wü[™3Á`1¹²NÇr’ùV0g Põž„ä"ïü%dÀª[¼É壤H_Oì‡ Õá’Žã%kížwíÚZ”s¶úS-{L*c“Êva˜ê`Á¡2&•ã¼¢1 e4¾:MôÃdÛf#&’,Ù80ú?ð©42îBt¤XmèwL¤ˆÅEó¤DÌ ¶G™øT:Ÿ¿mûtA>T:²Lçz º9íù€YM|!ïQâ¼>w‚ÞsH}E¢1Fṷ̏„V<=HšTèC¬Ñäøó#k´ tÏIof¨š½”OaUf—a|«2½O¼‡Ó‚âqÄûûô>Y±Ä`9—kUÛd ]礋|¯bqn(`«¸É—kÍÑÚ—¤ä<"Y` &.<­§–‘)iüO'2†ïAv6WŒh9çÄi×äœl`¢‡Á{™³[Êï4=p ŸZz­Ï‡i, „ k\öѪ2Æ>ÌßYo‘âô‘°b}5ô÷˜ŸŽ4ÞÁÀ¿;ŸlAH/&Øq à³«@pHËJžAS„ôœÓçÔ£Ô¦˜¦”–¨rs½¨6`þ¶ìÄ Yù0š'á~cÕ ×h׉Â{g/kaHœzìŠ$e uÐUOzP›•ì xjÂÔ÷‰Ñ/ž˜mÿéšè(¨,ÂÎàâw )Ì“v©œLÓ?Ïe‹zìXOú˜å,bÁtõÑs †¥vqYp)ÐõS¨„kE‹G÷0›2IáGNát—'Z¦žzF6þwÄm’îXÿ´Œ fÃpÜÁúíÁ"мlëÚ8ÁÜÆ©7ÅÇÆ_šÑqľ»Ë³c™ß$F‚µzþ˜o!§ 0?:å£Ï?h0=‚$ÏckÙÞåKUR8ïJöJDð±+·ú½[@¾Ÿã0º›¨¤2qq„´E3LýÙñƒ[V9lëšøaŒiS/©yç_¤=h˜åÎÏ‹?ÖïJ‚µÖÿ5Ù*ø¢2ªWÕñ±Õ S¼¼¤Rˈ,Š#[Îh¤°¢8VIè.åº}éít%JºÍ!Db °ÜÎÏ OµI¾yé@¡4¬.Øe’VHqôþãÚnÆoíݤ‰î&&Ô%±ðП~‹#LnÝé÷ø[jxÿ/×hû8ªòw„t9°U,•ì€jc…)é˜Ïw(ñRÜÅþ@ÊûÖr.²Õ¨›Ju¾Ò¼ fþ “<¨LvæçÒEÖ{ŽÐóÓßçÚüzÇÇþÖɶMÕŽ¿Úöâ·¶ísxtÔÓ4íˇ {‚Y€Kó˜… Œ¦³“Jol´+F&ÂW5.­¹cju’¼+[ö‘ rY15‰¸K‹©=•ƒí#EôŸIµW=>M ô »k§¸ŠºiC¶Šön,`HÊ1%óç9NŠ=T/íÓ²ÕºOµ¤ôÚÔ¹ŽMߥgr*øç ½>äú©Ìù2•ƒÉi3-}¨û=Ï`~Þš?m‘«Ýq ^Ó#TJTüG€ çËý¦NÐû4³ð­·Ú¶'ä!j°àFdífóZœËŽ9›~â‰ÚÂXIcÚá‚&Úí+f(ñql“®ˆ£$›yJXI²yjovŸÎR+Ú›t)T¾-&eõMadûNÄC™¤Z„µ–Ïæ Úµ,ÇÇ*È'ª…òžûBrá¬G“QD¸”ïRI4–Nví'ða”¬gç.³,é¹ÚåV-¨é€[ãÕK®? ddæ\ã„À¹ŒLC¢¤ï£°{Ýá–ùèz‹°œl'b#A¸™0ç»®úd–Ë“ãpQÃ%ŽÁ’¬‹µš‘bB\¦&¸ÅxwT1Às‰Ø—×§Ç:²&S“r’Æ6’ã±òLÒÏ7ùÐ2•æÔqì°·ªoóÔ4߆lNHOíƒÖr;ñ6/ãÄ®r0­¦É9³å½ã|‚ö#(UM6n˜öø9ƒ=ï\¦ Kp+pê-Êžt’=d‡|o$~óG-šÈ­‹pM¿ÿ&×2 ª÷:¹K$溦ð/h+Ø^ð/›¯éõö3‘£á; gmk—µÂwŒxº8ûibÚ×z*8°X Vr`Aü.½ ªv4ê¬þlcK±?lŠÆ_#Xûjô)”GÐ#ÂE³(2nš¸i6Lzdz®§qfêu„ØæjF3»ò†ëã·Åñi ÿaûy3î4”@jØgS—$¨ö³4 D¸Àã]{¢ˆá°))fp…AvǨŠ<@rŸ¨È-ŸÿX ýyîRàø»aE[+Ú ˆ-cúÐ>ÅÞ'OÑ)­h¹>—ŠPAòy†ÔnŒ´åуÎÑæì–ŒxYBóʲqÕêc—¶ \àQœm¥BᾤÆTÿã¶-ð[³×'•O/yGS–fËÆ ôÆ‹ÐÁøÂC¬»0t®bI…kz®>ecãMmAY Ð×ÑÚP,²üŠ¢ñø¾Ã VžÊ¹ù!5r*úÚ0\J`۳΄h;?žKtÉ“´lòœÈ"q>®Zm”åÎ(Ô3’6EÂ/¥C@Lå§ÒÖÎòÀ ui­’[ŽõPÁ¾õ®—Ã@}Ͳt›–øµæç P¿ÒL©`æS÷ë½ÒüG‚vÔ!J)ˆ(’ÀĚ„‰lÝ 8& Ç²Ô,míL=rH ¯„;S¹®Ó Kçzý‹#5Nð}©’qà(©u1è;íÄZßv2w_c|ÈŒ¦B)eÒ5‹3CèµÌQ½Ëiÿoª¸µšùWö•œø‘CŸ‘ú°VÐØ­®Œû% ÚTr¯eê^D0-η©+;Ëmꜞ·©³k›ºTh ô„MÀi?:Òƒ.ÃU—?F1lY·5˜«‰:ÞaŽ5Ž-v­¾Í³¤Ã—–uï·7SVp²T¿°>½ËLÞ³|ó:0'Kó:ÞÕn” æ²Ûlƒ¹Är'wÀ¨“ÂrN‘Ïy 1Lõ{¸q–öt<üÂ<ÃZz‚zìrqÄcˆ¢J‰%ØQ,¥3«()¿Ï€2ú˜ü+u¹s6KLjEw]‘\b€][úVs Ä.\~KSR³å·àdÚl_jšTöüAW˜O¹ÂMÝ{«+RÛÜaÞ†ô=¶f_)—žÝ÷Y½ø1kõ€ÀW÷õd/öŸÀetƒ\]¾¨´ÛÙ÷)­¶é»'ÚZqz)×CíË>ñ“älÏã‡á:î^ ¾ñåñØwz¼dŠÆúú߉‡ò„´õÂÃà6ÿ C¾bÐÔH÷jáÇ ë¨ÙK¼ßËØVHéŽ+ðnÕÕº’f–Îûä,bÙ¾ú¢~«×>áaŒsWqH(¸þ\¯ˆVú ¶âö&Ý];Ç=†ÂÈg]b0Œk½ºÀ ©L=…Ù:KŸ˜&Äô ®× õ„ëѽ°£Ž.|ÇÎ ú.³/±\—[”§@Ö¥ŸÙ»o§¯8Ç-·vÔ<×6%Ó†Z]®­ØNùróßG¾¿ùHQ²;\RafkG—%Èi6A‰ñÍrPžc¤?ïv´î0r¾ðzi9qKmš©PÛ…×nWK„>å¿rÉtÕé#Ñ©QªTüWøÎi—ÙEЛ ƒ8p¥YP™²'Œ¼ÿ6‚{ ‘³›Õ;½×€{)_ÔŠj–Y„=¬EkÜæÆmí–!^øÒfÝõ Ý_¯ßLüvmnzQ€_¤•# 77@òƹof-ª&-ÓÒp냖<»òÌ)TsŸ)bš ¢VÄ9¸5JNI@ý‡”ð‹TÞƒ^¥"z‡ ů!Äõ'Žÿ÷Ïþþû¦ëñÛendstream endobj 852 0 obj <> stream xœå]I9r¾Ë ÿ†:>­tr'¯† /0 {F°3}T’jÜ’ª{ª[3å_ï™/¸DV>UIÀèC?de’Á`,_,¤~¾Zuµâåÿo>>[¯Þ?ûù™ÊO¯ÊÿÞ|¼ú»—Ïþö7F¥«´$¯½½zùî}£®”R‹¿òÁ,*˜«—ŸýîôOÏ×E›Vwzõü £Oæô‡äôN·Ï_˜hlóÊOøÛG¯\h~ÿ£‚/^ÖhO~þB-«ÖžþÀFþˆ¿m\jFþ%ÿÊ™tz‹“k»y» â­1§Olnþüãs£eU8ýÊÞøXÆÓætÍ¿6³FíOïá§uÆ8[—,Þ0:xöó‡—ÿÜÖ©á¶¶K"¯^(½8ëÕÕËk`ôKdôjL §ÖÁ¨Qãú¬w òŸ?~…Dl¢­r‚Î[a½_¼JüŸØ‡ü÷‰ë.%øPÇÅjåq+ð…5ÅÂÆ2ôGo…¯ôÚÌž÷ºVD´†ÅÂxüí2JT!Òf¸`¬QÍó8ÿ SþÊèûH«I޶âÌœ1jçh/ˆ¶zïaõÿTCƒ¯€³x©Ãâ¢R8=a~ÇXbϳ'œÝøÆû^v±aß­e]çÞ§2°Èé²]Ä©®¶ËxsúüeL'¿(ãA‰³,ñåM–íà/05¬Î*믻v›)S ¯§wçÍÁ ^Ô²Ð:W„Vâj%¬ÖXõX9º}åL¤Ëz|J¶Ê¸MÁUJ4O³‡E[õdrˆ«ñI?N lµU¦‘!E¯å²äà+:I¿Ù4·Ó¹–dKuÃÖËyò=L`gm–P°ÁGëêötÚ¾-îš(w&Á±«‡aZ‘‡+ØUÎÚ;_Ÿà/‘‰¯ñvq`l™D~*sXWIµ&l¤f yÍÈ~þ’)ΫóS®Z7ì7œ$¿G’oÑ(Êo60T#*|ÉoZ¡à<ÔLÕ묛ÖA‘|•X&yôçÅÎöä¡}h¨êìÓ¶û|H> §œOÅ%ä¶1nD»~¤íeÒr&l³¥¨${úç<¿[­i¼£U{×:²bøjHì4¸ã4®M›v?Ùê'V<Ëå+®YøEC9³Ý×…ƒ&4´ÞÒÂ`9ÍäØ609'²}²¡]ß5> ûôN²ÒN iÆ:Ÿ˜æ¼ Õ7kH¤9ee­Ïh]]6·Éö6%ØÚ8±·Dähomƒ½M@»sß̘¢_W¤¥W-“"¸£(Ê{ ¨ðí?Áœ{\tZqÛÌÂõ|¥FKÚHc{üz.xy `~ÃŒT”ˆfÎÞyJxõ ©rŒCxuDá ;”ü2š3r›&œ~bß«æRç÷Qº­´B±@jÜ®aq®(p ¶&¤Öce<ûýs"/Âïk&Ü£ õ i*C¡×Ú¤úQPÑܽ —yUD*¨µ `ù»Â“?äÛ†Ø6Bø¤ “éó”œå´@ÁöÏ"ˆ<Ú‹à¥õzØÚ¤/Øæó<Ýîš–íé;6½ôiñÇÎé4%Ì÷z°íÞuy#C1ÎèìVÑkÐp^7î’OÝÂC\Œ†`K€P­§Ë¨-µo)*.~Ý¢_!“Â7ïŽ6 mÓÐ4«O…¦Æ—`Áv iS.`çP¦€#"z rØî"ýü|xï(Ñ…ŠÍ„à€p2cþð‡ÇÂ!ÚSNäd:¸c¾¡R ÿs~î£kCÍ­DÚÈ,â6š#‘Á¯ÂNá(!þ1 ¾vHç¯;¹vüAØ{–Í!ÀîT…x=’”¥³ˆ²7©r8~$zbô­Ìò-¥§8Èâ\eª1DfYKÈóv0U5&„€nà«ç×…N=È1f `'xÒ‚%•¤€÷áp¡÷‡j¿gn’¤öY&Ö7Îäv®£ŸéË!‰;e—z÷@~|NÖäü|9ÓB©ñ®ñbËk°áщÿÇEˆïØãìCöû@‘Á…‡Š Æ©¹q¬È`Ü Á–PØW.2gÀu»§Kî:½h½‹©=Á?¶ˆ€£¤1ñ†Ñ¿"ƼúüÜG4Ú Á4 ±)5ªÿ¥ìh°ÜD¼+ ±2ÁoËæúÔ žWäVbX¢Ýò´/ɦ&ÄýÃXÊpÑ×R†ò¡ ß¶<ôà5 -r:&:`SðÛ™è rLT…{ÙAbT˜%ª.( èÌ|»DDF:XÂNüI´=¾/‘!Ѻ'?ù¶ìÓº—€•nåjlç˜7^JîHBÏo pÒ`77 ÿ…ÆKFïºù•³ð Q6ì<"ØæäjÎ;‰Û{ØxFÑrmµSÁ²µÝ‚¸0›乨÷&xM‹]Ó`ÉàqPºQ£ÛI+°u€„Ƥ‘×âž]ÓÈN›>pÀ§Êˆ pGëö¶År<°d²&(h±ª*ͼp% ¼³NÍ‚QX?}\ũզáö¯­4f¹`Õ0–Ò¬ HÊ0UäŸxr¬FÀŸKþûØ"ö¢‡B ,ö;™äÝÓw„‡áå#ƒä4¾ ê—¡?ÈΑ”Îe:Ø÷ø•Q™Ä‘¯”o("÷k) Áþ¦Tb@Ò+†rTM=0zuŠôÃ&{UC¼ÍÆ.P9Âô#ÛmÛed‹‰–h¢/—óˆø]º¼¾·Ÿ"ê«;µSœß=rÒ*RÓs óÛ«F×ó½:õ¼1ã!·Ew4þœ$óœc‚†Ð?·F¿´zœêt4S»š¯QÁ"þIm¹Ä‡ Ç·EÂìÑÒÒ4Q˜å|'þvÙË`‚˜Âç“~±ZL›`i“’ðà(Ûä&îè)ÄYÃRñeš1 ¢лü2Ù çÜ:OJsù ¾Ÿ!Z¥̵ KÇr4ylïzqƒ§q×#Tš¾®èÛUîòÊÚF8¶Oh³(Ý·OàÈÉ)¹Û*P`ò«–TÁRIjØá*зn Õ+Ɉ2ë’ ÛJPHôå÷!‡aÀ}JÂg àÝvÆx°¾C`~{xÑ~Ž[–Ím ŽÑž€9¹':°v9£ÃˆX\ìey¨X;êlAèÛ4ßÓì~v8åWŠ­ ± š¤¹À.Ð÷%Q¼ª½Ö5xÃjÕA}ª=)`¢™ù‹¿ÊœŠ+ˆz“’ÚI â<ØÁ8† Yº9;Y Eêäá= ¼ h9¿/€ÈŠ~C‘º½fÿæ°ïÅ¿cžÓÇd)Åĩ⠧rt|ñ[6`ɸö;bpïá—9þñœ¿eø”õeß?7° ÎðmÞÃýx¸Ù‡Ã”>~yû5¡cÙH…±§7É)´”<]/û!Ýv]S¦èw°jjÇúVA½ÿ†6#s6 mqÈ,Ç Î•„à,Òå_zSœ_©Wð]^Œ”ZÍÖÁûüeSq_·*Ósk‘9¶µË)M³Ÿ¶{£¤PiêV¨çi2kö<¼ãzPq¨'õ²×çiN.»]w‘  ÷³êf-Säê¦r¥º‰¿~d èºI0‰³¸š['¡dÄÃãÖÈåVßc•M¯/ݰAªå Í• L×>fÑiÞÄÁt*o,ï¼ß)ÂÄàAãD¹KË ¾`½ž(4¾ µ¸Éj¬FVÝÜÝJFIJJ- „÷œjIlÍ)ì¨Ã†CD2k\Lʯȧml[@¼ŠmAUè´Ø8«.‰LnUM}ÜÃ…´G¡·Dc«éº¯ë’êU¶ÑºÒ[å×Us?°mZÑrRéx3Z!¿UŒKD<– WЗc¸¿(5dÏ­q ˜»0¾‚5¶±a¡nà4½“®ÿ°¨{ìñ(%uí4·D.¶9î ‹¼¢Øk/އg¥¾¢ÀÁä)ˆ}gÈ£'pÔ5fâêÒÚúš¶®ºI}ÚXð¾)îÉ*³µÙ¿lw½Ê2ÊöŽ›c©‡‹”œuÀYw­A5βjR§ò%D·¹ŽõŠFˆ*ñ4’ƒd+ã¯_Š9J3Ì¿›aÆ${N¬·­)Û+ˆ$£ËÑ??ÚÊ …Çolª(¥µj"²ýlþAŒR…˜¥¤øO± ’9ÓÔ>âñG°òaY¿ùù*§ìS¯ÊIA»€õ#h;);rþ>áEþ+7ÃŽ9ä3ÀáÒ믩$ˆÄÔ¬Š9Ù@<ñ!“7 ‰LêÇ,—5äÿ?×äß8æM½?ïd{à±ú‰‚Zh)-jùª-ô]qÁ*,·OºkéÓ®jñ¡-ä×ò€×¢°sEáUÐ74¢ _odüëØOw:Ѯ҉šñ¶Lég§¢ó&ÖkHávb‹Sº0"/xlçç—6,‰´dÐHå~ì8›!ç[ °ÌÕ>Œé+Ÿ¼ÛÉy´’_hÛopÉŽz÷OÎ.§>6Zúýã cUqè¬bÄ#Õ¯›—gvq_7k\›aŒ±íé# 2¿­,’_yà ý±5`娵¬]ád ¬²vb@j´Çsû°"a ›¯YˆXŸÂãMÛš¿,}ó÷›$Ài†‚2ò x?/ÿ}(MY×Á[yF]¸y„Ú8’ÂÊôÐÆ£K7™Uâ¶Š³» §Wxßò#¼ èÉ#h{l=íå¹9Ñ™Xü³áÇmQW’]€‡ã‰d·Á8>u6æ8Ç«]èûq Äöï@{wioþžÕJºJ#üTÖlZo[Vj$VôV_¶3024 óbñ}¹öÄ¡äiQƒ7ñ>Îæ|vËÆe1W~Y"sýÖ,ÁÄYı¶KÄ ¹…Uø>T7 rÌØÐåT¥C¹ùÝ¡\ ãZ³_+Áe9w(41¾o»IÇ(Ü•;õjŠl°Gc 4)*Éçµ–þ|âÍ{¶QEÄCoçò1Ê~ÑÍ%5¡`ƒÏ}¹ÿ•?4iµMº‰G%]ûQ nJ«ÑÖžùNØic?1 õž®ë0ëîy,«ì¢•{ Ù"Â~ÝÃf˜ ½ñ·œÑiÝé>Eçú ê,ðÅ==´?d“Ý^µŽŠ'k#¸±ý ¨ëÝ+…XÕ~‰"¶²¶Ù¶_Ê®æÞJ’âéu–ûì‰!¸/K9äþÚ«ûH¸´Q”|)MüØÿSO+ÚY<ðÀ] ÈrÓ7¬Iè/Ì1Ž5LH°+ŠàåÞ¾Æa0y¿qŽÙy°¬þkN˵UÈooDy\¤Ë9glX|›JÊO=,VlšÀišÁÁl8_Iª#4©RŠÐݯñ]»1Òc½xáᇆ—õø0«Ñæ%e³‚„|ÝÉ;ɾwÂâm˜cû`}ÄRæ'úßí¢$ÞW>W·éT~ØC6ì|[XçpbÒäÉ ¿£±´ +F¦Ñ›ÿCÅ •Èç{/W ðlØñqiqÿ&“,¡’&a4£|Í¥UºKó¦PèÜÄwÕ2V_Lw’ñiÖæà#äì¹ÜÂó'ƒ¹S*PÐ`õ²&9…ÐnrÁë¡w†7‘[Œr]é¥[€ð¢êÈ‘vнò‘ž—ÝÉga~â+1ü¤c}Ý6u“wôÔ%·7O¼Ó*[ý™‡+BÛ‹\þŒü9ö2¦Ø¯ ÏÓUyšÛ¦.‰Ó¤ vàðè ;ÀCŸáݦ|ø×øòîEüù{êÕYî²fÅHBºBÍßW^|Ÿ3€åj¿{T¤Î÷DýS¤<ü·î)Í2’Û^|?÷I 3ÄTö¬€oôƒ{I«n2ÉtPîð¡ ZUÛr„²Eñ„ýäd\0~‚Á³vI•ï>mYŽê Òs ”âþ%â5‘ÅOß ²w* ·=ý÷Ü ½nwˆ€û5”¦ÎUÈî–H˜ÏöÙ‹ù]ÂÔyr uÕ¡ ¬ï‘‹‹JýÕ#¸>| gjâ"½ª½-û ¦Õ4ߺ•E ß%Søù<†é„Zq@ûfšÒ®Bë27ä0šÔ×vCu—¾Çþ ­¤@\ÈMIñvçNà ³ Åœr€˜Zý¼m„`¤î £½ììt—?¦1RŸyÁÄíþµBH´/)+7m°—[pkŸ ìÚš_qÌôÎ%ÓäÛÇwDHìŠO ]s#vëqÁuµé!³9Á“}2Fª ¯Ö¡}¥<¹N'\ÞÒ‡XÃíàú87ŧ퇖…µÊG¤RŽÉéÏ~¦Á»à¡ÁüNç{Ê»˜îïݾ%Š½Û¯DŠ¿Q:!€q?ÛüÑúpWâÞQZj !v.¨—ÕÑÎLNaT–ÕªQ4üÝd3 <¯étµÇ<¸ŸÁ›óu©e)­79pÿ\wÞÃÇàä¬ßçí@ßÃ@êÅf^ôü°0ÜÄhÐ熧lN„W7´­åă–›Â\§z¤ >ú0ï¡^J×ô·=íDÖCê|~~ÛÔFQÇp¥ªÈâÃ&˜ö~Ц¸Mò‘HRîP>àq×$äQÖØÁ½ölHYÖñ®Gƒý Ó»ùÏùÏŒÄÊÝ¢üæé¡|>̃ G|¦’„ç´]¼Ý•Z1Òªº„È-M£vb^ùæ·F«2'ì~:YçìO¨›8©ñö`®ÐhûÆ Åè@÷u^3Ç|6²"ö~²þ )þ/öžÈð.o›‹ç»†…ƒPóDò‘¾¡U@:ÁÁßy#ðo¸R§,\¾³ø†bÂ5j/wèM~x†Hwr‹’|—ï~#Vi–ºÔ¤þ)³,× ©¤o: øÕ®yàž7¥E71ŒÝÝ]Ï \ó•¸IVx[Á±F©=ú<æºýÄ×ÿáå³ÿ€ÿþQ6ìendstream endobj 863 0 obj <> stream xœÕ]I“·‘¾·çG¼›_;ØeìKÌɦ$[žñØÛމ°t ¸45î…2[”øï'3T%P@õ{½(ìÐ H™_®€¾ß‰Iîþ—ÿ|uu"v'ߟHjÝå?^]í~{~òë¯TŒ»8E§œÙ¿=IßÈTn²f缞¤×»ó«“¿ïÏOŤ„ÖÑïßž‰Éz‚Ú¿9=ÓÚL^„ý+l6Nxáö?°.ÿ<=““pÆûòÓÆˆBoMØ_Ÿ*?åþ65Š(ôþkm½òûO8‹ž¢ÖûïXóÐ$` %Ôþ=›1¤ež ¬­ú¿aÔ&¤1¼Çk$ÀMNúý b´ö&òå¼\Z3%Úh‰[•ûØì½ *TCóî/ï›ÓÇwâférSÚÉK5\/…æÍél„ Râ‚çæiD¡â€À7i•˜€ŸÚwì>œ~sþ‡à³)xà±ó×ÀR›› åþ[ (A¡îÀÏ÷æzÀÞ™ýÄ¡"·ŸR­¼Ãiý•–£Ã2#Œ¿;S°H B@ô|_9¡œÑî£U§½pÁIëcçßÄðZÄ]þ-¥R²úö%þ–!¸¨÷gÄ¿MQêêh#¤—VÇê÷»4™‰ÏW$‚r( ¸óø•˜ÊDeÎ=pͼ9­¿te&ØtX¿T“µV¦õDœó l›t4ëf [iq]Ö˜IEµÿHb¥Aîùá18È  ¤ŠU—Ÿhv,ìÍb¬….7]æã\Æ…=£Š [|fŸà02¥!ö(ÅI²ðÂbB5a-w¸ZÞú6µÆ†R÷&uQ u›+¤fèÛ¯ÙxLF¹4>;=s†±j6a†68ïrÈ$én ¦ˆ÷Ñ‹tà`$F€Õ¿À9¤Æ|Û9Ñ?°³ ²0d¥Ž¾[ð o°\, ÓÂG¤ÿ¬,  ’Z%üŠ9#7G[”Ü§Ô Xì*nâ{P€VºÎ(CÅÚ²W4}AøŠ ʇ·² ]M{é2É÷u@AmmÖ¸ÊP†–w“Žt•O[íTÕHª‹a/—VÏ(–È_ ¯‚þß%dR_Ã. à`JØê'×h™<²,=æ6|ŽóïÙ‡ïÒ‡ÐðáÍ©V¨½#(¶³Y³eÝâ`éIèópËøFÊ)¨ RAë3"þ>xO¢‘àÞ‹«~b¼Çµ8õh€Ÿ†“ àãΘ ·»8˜ñ x9¤£Ø w(;0qùf¿I€oA{ÎxÏÁãSZ¢&Fx›CFg(üžø»ò]|—Ì=Bfíqt¿fƒ-#$tOÔ’—E` ,Ù¤}6ÑÛÑ>Îù*Áyô¦¬3âÏlÖVšŸXm\+ÐïÌ‘ÀªBdÊ3›¼Üv¾d627y¹íÌû0øýxªaí,od}£3ßõša„€ ì¿FÐ*B=Â&Ù-Â~„±Ÿù&õˆÁþ«`Þœ+Dá>noq€¸Í/ˆ· ù6]®é ³4í»•5\âÜ$Ûsd¼dÀÆà𦋌;OˆÈÙàMô'L´~ äVf¥æ•ÔáXEg|§hîmª¨ àg!ºÅù&´â¨Ä­.þ›ÑbÅÝEó®ˆEà° ;*Ú4¨Ó‘¬Y5ƒ ¬;XùmÉXf5²^ß1¾J´Æh×6D"ê?Xïë1ËôµÞX—Ý$ÎÐ’ÐAKœ1È'ˆØÕ»‰ÛŠü[šx>Xì€LÐ[_y7I),êEi»´!Íe"ÍÏ‘æmúÎÆÞAÐV0”Kà’ ªUî:ΓÔÞ«ë2-ɹ¸üðèÁ^ 4 ÃSÆyz8¬l´Ãaó¾¡7œ&ÖÈ$§£¥x:‰FE æEP~WKô[ãqf[cÙ‘ïûÄ.R c4@@s›¢¹)Üݤ“hµ L>`[¹B¿Î"&§Ua4è%ð½±\>¯3Ù®ëç6Ñ_‚2‰`†000êÖÂD\Í÷̧X¹}Nu…¢rz aŽÊÓùUî}^"(ø!9`!P ¦+‹ƒ@ËÊ]ŸÔ¨}ö®‘ÑÉ(ïÁüØÔ:Ø%ˆQb\h퀴 ²cPï×i+ÃfTM±†÷N*÷ìz½Û™»—ù/Ê*uI[Žˆb•1øï¨kG·üI‹ñüÐg4r¶‡FíÙ6h„sGu˜°¬$$¯¤n­Ù«/,=ÌB;5ú‚Y©þ<²LøtÖÝð~*ì¦ÝƒõoA>°~Jãïhz.ZÊdqF.iÖºÖ‹A§Cã´%~ÿglô0ë@6ǽ¶[Rƒ“`Rï‹Ó §èƒõ½HD: ãïì,ìÒ[ÒÔ)¹ô ë2a I[°'H6z,®çÏÔfD]Ïžqp95m¹þHÌœ§Â=ÿûô1yÚœ/9/>EÿZÉÉëí¤±R0Σ©Þí²Â^®TZÝ :R&c5=šÇøFQ‚Ú4`\ŠÆdÐú yݪè†ö&Gã‹J¶p佦7žÃwŸÃƒÔjòÓ Ðî{Û›Òà3Ë£Sé3 |HD;[70W0ž‰«9Ÿ‘Åþv‡“GVϨÔ1_ÆåŒ>y&¾Ž°µ ß«2Vó r‹8 3Lp?½±µŒ°` [Nùˆ§Z#ç5˜‘%_VlÏYŒÓ4J4Þ¦Ý4 R¹-`ƒ-ê¥Þ†´€w±å§g»  FYÛŸH.z/OAù[¬€ì¯,Û:{Ïe#•U_l–Û|.@©#dˆ*gû¨¯`ÇõMêm¤n2Ô*LY)‹DZÍõ¿‡1Á ÷µ1›•¶7Ãdh“søæ6Eœ4幩0d³ÿ/l 𙶃=}Ÿ#9"ìPß3YjY¸>×Ë€ ÔN¤ó¨Õ9æôþslV`ÁmËc:=±+ÌÜÛTs9bZVÜ~´âMì®A©ƒŠÞ-YñÙ¬ŠJQÖQÚŽ<÷ò|D¶b–y<ÑSóøý”ÙV2ê°« (mr)´ªaŒ¾:ú%)G|ÌgÆkŸN" ètɱ×GC¹²¨Žê(S-ÕÊ¢a§†€Œ¯Å’7UH<(’L“è•+ ›°iÛcÄ™c]i¢Y9(,˜ò…Ë)†0só—c cöó£™ýY\Ø¿T‰ÌÈ1µ^·fêîU!X^”ÈYí ÖÔH,ˆ1>åV4oîW¦í˜®êsTô; bnœªësÃLTiÛ-#Á ±~ÿW-H'ÈÃÆD.ÖżF]í€({nfQ6Z•K:F$í#@€³‘6á"…¹­€#ÿï“ó_Ñ옘•ÊäT®‘o„ÉLUØ?§y‚ sÕ85å®5Z Üó¹ù‚—NQ—b”£8"\žOË#3ú²wà&WßQÌ^É€ÖlºlÄY û/s^§ypŸ_/†ØÅb¶S[íª‰ø€W©7ÊB7 P.íÝL… S 1”3¤(~y…9˜"-³ë˜îà¬*m;ƺɤR rôP7æä‘¨×+ÀØr±ñ LéÀ†{t–ьՒ¢=ŽÞ£óv»4§Œ´9©®»­Fà ´Æw]üG«jGnæBSaVui%W7ØI¾g£²` H÷ÌF!­fh<¯¯*Y¹ªÅý1›!€ Á/YqMŒ9 ‹4š0/¢{v(wŸ¤ëXG68Ãû¶iy 6ºÓ­¿¿>ŸÞº×ßooóœ:xi³€X ¼Z*20,Ì ,ªnà4òê v“…œB&}›ZA; §f–Í)¸¡‡Úbè¦ôJèi+0ƒ¶Ú2&++B`¹‰ÃÆflï­¤ œÙƒâúH{_§YÀAßv[1íþ!ñ•žïYÎQØẃô¢+È=+묯–Ðb$èîrLxŒé$H†¡C\¥],Lѓۥ™õHÁˆè"29Iz†äÎEìbrö ÆX¨Žµ~*Aßž¢+9žwk‹.^Ì_s(‡êäÛ?…!±ºÒ–ÖuHb¤¯fÑùò?‡š5еL3ºÚyÀá ¤làSÐLPW'ûVé+¡UXš” ‹ë5Rˆ[ =’7ö%ë’¼1PSJ•º“½±ó×I厗è’(Ø»ƒŽ¼-×1ìn0]þºDóQ(hn×µe§ÍÚèU ŽcwüÀoÒ„ŒcñbñÓ^x䦚…6$óIœ“îxÛ#_]íWÖ/½ù­ãO¹^8¶Õ(@fj_‹¼êº` ‹µ—W@l<ølóÏ?-?Ï»( ¾˜&EðùùÉ_p&°¶/>œàûÝ'b÷»èývJE°Bäîê`ZôÜryòbø(KCyy”cÙX†˜œéUFÛÍòóz&3Áw9ªîÊ­?-­·Õ’Ö(©í½dRŠÄb‚×…ýÿ±3á¡pqd:OŸŸê˜ QÌáb˜å Ê2&x<‚ø` ççB00_"8…ãÙôj¬)ŽnøáÅS )qœ‘T‹ñ«nH('€¹œƒk0/«m™?lê]qÑÒ÷ÞæHê™VGqH˜çA³ì(Xµf´rÁ"Å)A«EÛs\¯ÓQa,ñØ(ð¦G:ÜbBŒÌB0ÁÈv¡v^e Á c;v!5¯lˆ±]¨'ê»± ÉjæôR…›ÄÐbÅo[¦}¬ñˆX…ß~R¬Ã&ü.Î*ÐZqð–kšÐ»-ngx¿J=O7N ­ØØáF/l” ÑÕž+knm «Æg­­aÚ ÐAU"²o\åuUùÇ!FÓ hô?1»’Þù0ç X¸¹íE–ù‹ÁN@z\·Bl öaÑ]¬{¯–f™¢Ý˜Šy–²26Íl3Ó´®/Eª#ËPûå§hRpyjq]â_$ ƒéXÍÈ{ ^X;à%š2 KÚömœç€âœ’~ò§BäÐÉic©CGP×y;”O‡zÅCÓ»YýX}—ú¡ÐX£~è•a´ï`‘›g< ÐØé•Å䃖.*zt+=øÂ~XñÞ:A†®9‚Þ=..³âSU¹›¬˜µà!¡äñõX¬ôfŠ Uq”~€e‡˜U¢sU©$¦‡Gx«h-`펬•áLÍúʦ1qxw°¹}#‡Z‡¼M­ÒT`ݵš¨*K=y|3„!4iëF#vªÁ:w–>£;ÀvQxd5~Ç¥*àuë0ªæã}d8ÓÆÏÀÁÁÕz¬?ºñ;|° F_®»Rk}'Œ*5 ÉwYïàyGÀÍÌ(UY9¯#)©ƒÃ‰= &¢ãå/«Ü¾ÔzB5S뛣ÔÀ0¸ÒMm4mûÒU ®?ÆÜÏ1U¾+¨][ä.刑›Ä¤1jÂŒW;Œû¯ÿYÁ†X0nèFe¤“ñsx³Šùc÷'ëð?먌˜µ–;‰oQ†ˆ)ì$ÃÜrŸ (?¬‰•xÅ!øùj¡ã7 IéçgãE54a³8Í&B‹yÍ&bÑ^Mó _.?ÿwùùyü…Ð À| œÐ€¥}¡AcÞ»&ôE—¤!uëkЍóþª/ÍÓTý¯c‡s ’ë¢G{¾ÄÑþ´´ž/­Ï—ÖßÏ­óF0V¦hØF‚0@‹|ÈFJ´fw°Å™¶ñ³îÞ™Nà…mÖúUWÚ¾l¥>c­/šqWŸ=ß>)º¶äS0æ€ãÀÀlžCPàIêõ[\˜Rõ}þªâ;¨¸øÙõc\kÔà·Lÿ4LãàÂÖþ÷Miºü!CúÒŒ“Ð#‹º|ª‚fÚ4Ÿ  ã Ó™ª/ Ý‚„%Nj úSäJëms·)ùì§°zv6 µÅ2²›œG V 5»A²¹2Eª2eš¨¾®ãsážRYðÆÕÕÎíøÍ0Z© òñì]Z¦²û¯÷¬ÿ(Ã[*ª¥~Ä O*žö9ʳ*dTK³\õ á ä\ƒìëS6å(Fùc…eI',ëàö÷ûú7BO´nSÉì⺘6ô|ñ˜ÿcŽ Îõ˜Â§æ€•U˴ש UÖ ?Œ•¼O³«´™R•*½ß$Š„ÆSÀÀ8•ý08pµm,(ÍsCwøãx¥ÒÕÕoÑäŸ7_";dnx÷³0£@o˜¥cZ F‡^ѓުyÒøBùèuÅ‘{ô38‹ì•9Ý—ÛDƒgI Y^yë2C?Ìïu ýý/ 6cû³ÚY½ã”ç«1aœ³¤ „&U¡È L½‘³Ç˜òŽÇÏ:¥d|tƒPµW’ÊÕÍÍ»Žè£†Á ‚æ5ÏØw œØ‘*cOi,"n4´r¹MëºÏc-¯§·óκñ” £U¶h¤ƒ<*ÜUûÎMÁÏ—A/ÃùjùùµÓh¤Œ“Ž;kæâÑ…€˜´›[îáB˜ôÉ΂’vV%'⪚¯‚1æÞŽù‰š_U}ÖµØø¯ÐT}óøõEUŒGÃþ˜ÐÚyƒLÌ*†0 ;Š“²=q&¦WòÞ¦.x§«}°›»÷ç«;ô¡o¨ë^.•ÛŒNk_¢ Z|wPÄù @ξ·Q ¤VJ4ÖÍ¢–}hÓì—‡±€þÙ"6Ÿ¶]O|FÍßõjPÜ4º‘ÖßJÚóíRqd@×ܱÚo…DЏ[ǧˆ¼fIè ¸î¨µÄ; Yæº&ø d9ù˜ŠX×endstream endobj 882 0 obj <> stream xœÝ][s7r~gíàãaJœ î@ùi×Ùl’MÕÖ®¸ûbïƒ$J¢Ë"%‹²eå×§»™i`ÐsæŒíJòàY—F_¾¾üá|Ôùˆÿ_þûêöl<{öÙ¢ÖóòŸW·ç¸:û׿é”ÎÓ¼ööüêÍYþ:WJ þÜ3¨`ίnϾ9¼¿kL°éðæâÒ;¸ ×—#|¸õá5~[?†Ñîñ;kB<¼bí¼Ïû-ç;ü6†UŸ·8­Ò˜øb>^\ªaô6q1¥‹Ké0,cÿóê¿Î”’IñüR»AJŸ_]ÃVŸ÷7ºÃ텎â;üÈÆ~Çø‰æqcMµðKú¶>8[õ¹aã°uååºdãáŲ7iC׸@7€(sïm5ªjï,7ª|F8¢Ú¾]ÑÈVõ}ƒ¿3@Äxx)áÖþb5¶ièÃ%µçÓ÷ºâÞÆÎ8Íq¡¯µH~>ï/.u\T*SÜqŒUÓJîó¿+mÈYÚ ¦i"–âÓ5ç”é§ÊX $r:÷ÿT}7<0·®6:xœÅ:€ É9…b Ûˆ@|ÿ6¯Éѯ¬9æ¬ ^…ƒ†“Q ñð5¶êè"¬é–§< b`¥8µ5¸åni~ËÆË+UÑc m‚ÚÙ|HeÜz°C°áðÓ…o­©~÷‘fW&ë ì¢X¶ôxDóœwymýÁ¯·FC*ìâ ‹A%ügœñÕD|ÀÛÜ;Â<¿Ø Ç¥}:ÊZCÇ!EÐXWÿ}võ/ß®€üz4&…Š/_ãD”·:|Ÿ›éý¤”œÓéðUH'|T¦ÃüYQ\­r®û›ä®žpî#‰ÙÝH“r¡ÀÑò¼å*†)õ™KZ Qq`i†Ú2¼É³ŒF–ð‰N^U«.‚ï•«T0_Õ;¶’iöàĉ˜âûTzûÚ2²…ó¥peËmŸ¨1¼8º‰»9iªèkí¤©n2I€Ý¦¹IÅ0í´ÒÜ0õ8+`TB½3£ö÷Ë(wlðûÌw:F`Kdè1ˆ¬ÌÝ,¿Äõ_N¸Tzp¤ñ® ¯L\ýñi8™18·çµËVV<ÊYëk´~¤[CGÕ“Y/š~„s<ñØVëš-Þηó%[?oÕmäÞŸ ÂzpÎç‘æäº`c1¬¸ÜˆÜç%šóݽ/½CM< @òö‚ìR¬¤ê„cÌ¿Ñn.jç©jÝ~0¾6®®®óºçûh‚ŸøöWš·ç=F%m‘+sNÖwyJ2(ža Åþ1¨0nØRùvîqÊDáŠ! ±sh®hM(®ŸHmØD°~R[L?}Oò&tæ&Wk§lˆT­DÕDJÅhÀoÑ7J…‘ƒ ñ«EÌ×F¬ØJšr¬Aí³‹Ë @'¾É¦yôzÃ&°'@Rò«Œ=Akpcµ28g²ÆM 3&É‹’´ÀÏy „Ÿ®IÄR`$¶¬9X%@¦ñI¶@Iòª:|׃šÐúZEÞãhaðáýdlA&®•T+ãæW8°CäÉì^ë à$ & Cgj€KR‹aô×b6ª¸ÐšÿšÒ² KŸ(ËÑb €0Øà€1½a&9+?t>Ÿ 0ø,gì‘3#áÏÌZ[ÙJ¶2JÖ’­IƒW"sã-táû^cdãé(ó¦ô¿‹£›Y~ÿ«ÑõH øÕ„N\l·Lƒ›qØ~DåaRœYˆ©ÂÄúý ¹d8³32œ|ÍÁ [Þæ“å‚ÄIο‹@€ [q)דÅo2€Špä­ˆÆAÒ.Fðì–ã¸K[7¥·Æ |j`Jwš 2‰ù¹ŒÖwjÚ€ÔVΫ!‚™(DôQÇÊ5â ‰ÏÈ}ÀòÕè„3Yí/Âî}rHv .ì‚öoInŸÈïæ_‡ªV“Ôž=­€ÿ®² ‹?gY×ÍþRÎÓÔû™Aä]&ZTN’$~8?2Izǰҧ‰ñ&ÙÌûb#Vr70ËIÙI+'à ˜Áv´²ï:ÒH[¿Á_MÒîT$$„2:ú€¬ 7[õñÑüÖ÷τȊ$í²vœÚhŸçµ(Th2! |ÇÆÕ¸» ˜4̃;ÐZIlù:b´m|%$¬ >…#ŽiÜí²vK?j‡ž‡¤rLÌŒUL c­£ž]ç0½› Pm4`@ÿå8\ ð8ýÜœ{(\ÑÊ$=¦nä ,fšäÛC àÐ|²¡6O=¥HÊÛ峎œ–VŠÚ”ñ·lÆ&â Ƀ¤›ÝN6†-x#V^Bq’ŽF‘¡ÇÓ1œn~ÄhÔ¬Îp<å’Žf)Ÿ?.ŸŸæÏî1 i3èµæ›˜šÂêÊVÆ«¸“Ñ¢;™S<þHØ‘¼Ö c€"ôýñQ´Ésªÿ¹ˆ@GKÎvG?LfGQÖ1}5‚RšìŠé›ÿ¿1ýñ7ÓïÊ:lÆôò•µ.‡Û3´^÷Å]7ç¡î»"÷’|„öENaTÕ¡ êqÚ7í\pQŒ9¹¼bšGHxÎcxáwÅVuÈM‚Þ|èf©sŸr.‹Vb¬=«Ã{äVª*‹Ò¥ÀÜD»a©iZŸß( Y‹@ùCþ¡–| ìlÍé9_Â7ñüž3ý~âß0@Xaã~ìCЗk°Ì}²®,'CvpªŸBv6ôüLÐodc+[A S÷%ÿ;J;#g‘ŸfÓ&qñw®Äéó/™Ö–AÎÀ§ßÿÂn4ج äHC><çlnL÷–wà¼6„°9;J)¦Üöu£Öfä¸C3n€81pÜ:šñW:¹¹{‹­Õ Ä§Èå×8Ýøá’öI`}åòqÑc–gæ¸÷וÁªLÚð 'ÆàF¿œM^I°É|ØÑàC´ZÈZ²ž|·NžŽÙ¨u ¾uPoóhqöŒzJv>Ÿ•ëØ;÷ãp¾u>IGÅζÌ`|˜·åbGJ:Ùº)Z(Å-vX.ŒƒŽpƒÅ›ãÙµÓÞð¬ñMö&%!¨ýÆl[¶Æ¶<(>Õ„G4-ŽÛ»7™øZ£ÂÎì*ýxÊœµò8 ÿî$s‘â%¤’÷H²c}‘³æÁ2IóH òFPÁªÅ„ù$ÜŽA³j«0P­€Q•Ù"¸…-ÙqІVpW?.ç0”#Ô÷ù—Aù&J2³_ gý·}ãÓ„)p?à-3M¢ô%Ïè CÀ§I¦b¶94Ç­W>#GÆÕº‘›žõà[•¢¹’—ÉLÓWEn÷©ùìMàÝ‚jaWÏ›w V Ï6j@L zÇ¥•Å6À¥ê6«¥Ü?`€éÜgK"+y_µêk¿½v w¥¥uÌ1…¨ÌF²h¾êѱÖm˜^HrMŽr<~Û\¹:(»?bÝèæ¡ÖBsIGEØßS$­*Öã±UF¬g“¬¶fzN¯ñÁ$ÍÊD"–1éTg Öš6FQÃì‹B“Uކ÷àò%¡À9^Ì'Qåw¬¿¤ê¯óV‰¿>~%mä¸2B†M#«2CËa,ËëUØõCá¦6™MÚ±tÜJàèEPŒKÚ±uÔ +ÜsMF(,ÚPÛÜ<[ îWqäÆ+Ë{Ø®ê…[up /¤ßý’|J+ j#D‰h0ëu žŽŽu,z}'‡4Ò8™EHfŽÓhBáù °e?Ô¹Q„‡c¨(_:¦”°xm\BRωùz‘£¿,­WKë×KëÌ­8ɯÎþŠ3rz{†i³óÏgãùŸÎ,àû!§1r~ ˜ sË»³çâݳfáÓÝ3p 1`"ó¶è²²]mpS­—jžÇØF˜þÐ ñ}7'?@wÍ­L™ëmµM–e>ef[…RÐN‰Ü¦+þwÂ:Þ$:ϯ3–VÉMžÙî(Šl2Á©ï)ÏŒZ¹ÿïVÍ4†®Ü1FZøÚçòºQ-8€ 6›/»Š[A9ì=æpµ%Ÿ1cQ«_ÅãšÔÆgs…U‘ €Î¿ˆjHxùдbhVU°VˆÄ ×(*Pœ»»èm¥wÛúz#NŽžî%N)ñ¯`œííVàýQ¿~¢D—®üïU ûØä=<ÐÄX('çìAH`\ç…D[Oó[_sr•ÿëJö7yÝÀB{ÌR«¦ðx"åÆ(Ò¥àûÌèzHK9蜌ä<$Düà‚­jÛg% ¸ÜL]Õ¼­']N,%ÖÖI™“¥{ö‰µlµùS :©Ã7}åKm ÖÛÃ?YéN剞²™» çðŠ„Ù(L .c3x]>€p,¨Z ¯—„§¯óxuÒbGù1”H1Ñ5³;KÉ¢_Úf»Ž;R.ÿ«QIÞm–Úáõùød€7‡k¡"󮌋Cr½+-%qÕÀŒÝ˜¾|/aÚïVeҳʬ•:ž£["á$ܬÇÄ~æHÊŃVDgv…ðŸ\lŠKOÉ·¦“XZµùJc]çFIvç4Ûé×)•ËÙ¦â‘ñ’ε ŸØK à‡ ©EL:ñ7˜½§ƒ­D-¾[íØJ åØJ,²“PZã´­ 8”íŸGœÕ» Ô¢—2ÉF²«eº„ŒcŒ}7uqA%Þ:©I»;ºòø.' ÔöyaK-hnÍn‹®½X>ßl»iùžKêQûäB|)C÷~‡rWÌÃèÉ]“ ¹Ô+U©N¥øßðÇÀ0©ön¥Ñ,ÇF gèS°QS˜èÔbœN{ß—AÁ«{ìã!=EhÑçò[žVëêÝýœæ|•ç©@õ‰JJò=úÙV*‘oq©a‰¥öKЛ§ÔëLÌõe^\œ‰vâe?] –ÓsÝ!ÊU·â…ñB*ìž<쪱ÐBª*‘ŽØŽã×±WèÍZàuî€)Œ#ÕÞÓmP“C¬áÛÏyrº%5åͪö°-”ä‰E⋜CÇ0¯JcñÕž—*î¦Mn> AÚÚT x¿S~±Ê‚ AÜwy",·‘žäèôVQr^1ó)xÃk¬8~MWåS&ÃH5¿/ÇsîýÅÓ¨oº/íËe“rc$ï«¶½õ»]=CƉ(i¼ªqèÔ+å¤Qðβsô Á:"^áÊWSHaÄæŽ7 ŒÁhÝ»XØaŽùk³Œû5ôh†whËRƒ-iɆ¸£éI6zL:)»á#á†Fe~³—%H=hÖ6 ƒãëÑžd_ï3 •¶çGUráx¹è¨÷L¯OWšçc¢$0. Ï_Š”äzxm(qÈÐ)-W¸µo^[¨8íXx¨¶r‹ E`ÈÄ%‚£¶¯œÇaZ;ÙNÌdÎ|c€l4Û8J ßK‚†¶ÇÂöV!6Æ>B¶Õ­¨Î-ê°IR¬Í#£gý .0¤Þ.X\Ó-²ãb.€·WYÃ'ª­`Oµál>¶†=Ú—Ç™8Do¥Bá*CÁ0yí3F\hV©åêu¹¿>÷ {ž„ Ysúí[."8†·vç%vÈNö‡ªg4ú@íKÅÚžçâR’˜ôíŠ:«Ðz àÄÑ>êÂØ'z?dI_wa´/Öþ~› d-ÏçŠhØbý ჂÙ옅ŸyM&^1LR‰B(ë:ÝΛ¯ä©€U`e––”o¾®.»–]e¸ïJ,ûnaú—Eð‘ðK<Ü©¤o~=¼è’ Æ@ïçhOå¿í+,ÚÒ3ßwnàßrgPË•(ï¬ð#‰›¯ãhÀ/±B5|k×¹GÐöQ¨¹¿Ø ,ãRCø½šÆÊ˜mQpGr¢wßÃz’n`\ÏM G=÷ù bŠM° [­ï>#ÛRl+[«í ÝYÞÓÕœCv=åËðX¹k½ì³Â‹%‚Æ%¥ø‰¬ °#±¤\»ã*‚n`s#ÌÝ$-p#P §BÐÇ-b£¤è]±°Å*‘²¾l¸zëï>oÁ'ÕÑW+Æ¿Éë3R­mTLMªÊˆrœõëåó/ËçU·•Í•yTFd¢ £ÏUðìüZðÍÑ4·< f†’Š8Ð#䢡çÝÕýmù$PŸK‰®æ…–ÔúÇ¥•Oý½Û—ZýçòùÞ`]‰ùôølE#Ÿß~ì«BªÓôÎçž;LøÂHt+}—G±É5x»ë>)Vï”L`ežWUÔ´òÐñž6Ë >æŠ=lîP¥v±ओÒ&nBL¨ö Q¹ÐKõS¦ŸˆR„¢‚SÎ,Ž={¸Š(P1cò<ïåJ‚6‚;ëj9‧ҼDø°Jª©ÐôrDêÍŠvmHl —êu¶"b+üh±„±<–¢ÆòêûŸòã:)Á†}`6 5¬x“]²EÛFÈ\œ Z{r`d齯gHqV=2wAóÈÅg×ÕRVñÕ÷Y Ú÷Á¬Æ­Ì]ö ž˜ó¯s¾óV<Ã&Ô‹ÝÑý¨ïš Ú‘NЩŽ>öÝp×yÓã^E¬kÜõì Mˆš`ï½<•ð5·kï¸Ñ¹6_+÷vþã,©7ê•úgíf:fz‚àù1³(ØqÀM]†ÌÎçKù[&Êl$[»â3©pC šþP4[¨šþ^JOYÞ…´Túº](ïòSÑÎÖ“ì‘·Ø\Ù……osØõ®p„l’˜ö^×­±5Ÿ´îÀٔ뫷ÿð%¼QØK6-ºØ%ÊháSî‚C£©O(púݾï²ù†P[* Ò©ýFÕ+þ{Ø[ôšð¡¸^üèa·¼h@oZ‰ÆEVRŠ“8ž÷+l­É…=Jiçß¡ÞNmdp“ ð–ëý£ŸÙ„üµôR×Úbo¼Š"¿ñ²`ßÕÎ0·v>?õOßxhu½ËJm’LºÂu:"®®%„üÐÿŽÊK’;†Gä>kMéÍ@Œñ\kÿÇ<¸@ºÏ?ôNµfTjûoó”O¬Q ùl‹‚*Uï=ÓÛy*Ê(üïQ­Îµ ÂÒ$ã÷–Ï•?u §ÁþUE_fW¬G Š¿È"Ÿ‘%°XÁ€vU& bUÍËçÊýëÙÿŒ^‹jendstream endobj 908 0 obj <> stream xœ½=É–$·q÷¶>¢žNÕzÓ)ì‹ýt i‰¢ÍÅ"ûÙÓjVÉ3=äts½#ÈÌ‘UÝÓcé ±/èjÒ…ÿ­ÿûôÍ…:¼¼øñBÓè¡þÏÓ7‡¾¾øý7&çCžr0Á®_\”ßèƒÖz ‡í¤£=\¿¹ø¯ãÝ啚œWYÙã+üöѧdŽß_°µÑeœb­›¢rÇ[œ£³1b³ß]^éIŸóüéb<¾]×à“oØ÷3\ÛNÖ– yNãAEŽo`EƒF™ã?°|H3X!™ÔL^V‡E¾Ý,è“ñþø”Íæü ¿­MÊŽQA·ÎjÜÔZ?)—Ži1•úhâÑn†i=Wñ 3¾/=cE‹Ko‡iiye&6|ö_ÿë…vS¶9®ŒŸ´Òæpý nÿ“Ë+¯âäuƒÙçRø­¼…à‡ÉX„þHÊ_ЦN3£Íåè‘&¼JSt®A8C,ßþ† N7Òýp̽,°¨äç)„®Žä†¤Ûš'R¹A@w/C²¼¹\8bãkã{€KÃ}ÃŒmž±møÒlŠt —ë‚·Ñ.vD‹ƒ $ìó3Þg”8åù%’—IèË‚”!ºšI"ØÁ–¤Sá€ù‹± ŽŒ0Àµ¹¢H€] ΕÉqJ ã®´™¼w±€ÅŽ ”ꜞtÒÀ„ð ÿh}¹¹”cŒK`ØyU~4Ws[†£Ê .ß^ÂúøKÙÚ‡+ã µùøó¥Yfã»ñe95±)eWǧp”¤t9LVù=I‰@ ')3ðážÒÑ#Þm4pž'°Fˆ“M¶Á{9}hÿyÁ©Uñ×QÏàg‹ÉR×p¶z…¾õ”œ›é›¡ÿõ÷ßXe¹ÂM sæ¹ßÂnÚg“âñSú ò5~PÃñx½Ž~ºŽþyÅþx}ñÜ&äÃËÛ ‚äð XŸ]8›â¤Ý!R'sxsG€=¼¾øV´: g+‘Ë  b±¾ÂûÍ:úÉ:z½Œ/Z ÿÖ+¼èuAË¿¬hù|ý,Û( ìÓuôëõó«áç‡?»î&”Ïuãru­A¥Ã:óí}÷nl½œM‹\FÝžl|DF"k!Ý—‘tÃHd*ÇH85ät =#åè@‡t†ÅU Ûµeño8+!`}#h@§Àqùš†Ò#-('\¹ ™¦Àìq̶d >/¹ Gò:9”×&Gƒlyƒƒ*‚uÁ “×HüF¯Šeä½É"Ø(ë]ƒ2¶d»ðq¸œ šS$ÁùÈ Œv¬nš’’hwp]—nVP`„Ñô·Eîz`Ç03#ò‚¥Hù€ÿS’Ù¸ÉÀUÏ+~¾ °¯V6vŸ¬£_¬£_¬£Ó:z·Žþ:ŠÀ8A×IÊÿ^À—ß»9¯<ü‹kø@0+Ø‚œˆø”–WpÏ >$ÆÆæíûºM¸ó\œ ¬lçJôƶù‰©ósíÈ-òý D,޶ž8üë#åBBº¯÷ÃA=Aä !™Hã2 Äê‹@Ù "XjÊþã a–á2CkðÕè”6•‡ä f‚1)Ï»ü?4Je¸ã ·5qF=«ÈbF¼Ú1õÒ‘·2ÐÃ9+õ’cÀ<¥b^àŠ®³ô¥@EÅnÔ°fuør-ÚýwEÇwÖ4'É­!.$b™gló³Üó/éŠ xoÍ7ô2ø-d@ÈÆ''¯}Õ®ÌíÑ÷$o·\"îâÀd–â Cg¤CråÕ8€óölmÔ‰ëœèßþ¶,ƒ“í†ÕÜÐÏ+â d0¥sþ¸~^ ­‘;™CÚ4¸6~æÐŠr©ùe â È| ¸)À‚ÉØµð%Ð4c§Ì¶&É~x¡5 z«8Ñ*6ë°%KŽíVKX,ájØomáÆô2ÊöÓÅ,6>Ø}††:ý5ÉH ƒ8q¢ŒŠsˆiþ%žFgO2A~),¬zøUs«•ar(¿-XÅà>Î랯›â!kqš•T¿CÎ\’¹`ÀYPÅÉ\Þ2¢ó*­ç&œ Ûø0Áå<’€ø»2ˆX˜&À¥ê†<¥èà-®úŸ£•«ùŠ?‹ÛÈô>ÂüÀ¾¦ïŠ?šàg—6å›#n8?˶QAŸ¡s°z,X÷¢ˆ—&í‚’T|'(¶äŽv¢Ê2½Tz¯Ôn`awŠÜ)‘“íYõ9G£ÿŽ‹§m¿á¨–'%ÎÎÒÆÓ7ËfÉA“ìésÅ[öô½%‰{"BºÖ?ìZéÚt1锿X˜®J{ŽÇ®ë¥¨Ó5.ÖÌ´~ªý茛3ÄeÓB€3ÎS’/ ¯ìù4mLx¶”†„éÀÍ)=ŽY2º±\ã=­òþI¡›Âcñòzé5Õñr¥w³ÇÁD‡ÊUö/?³Ò`¤Êq`›ç¾…ý ï¡ÿÍ\R‡hþ¶`x¨õœ.ÊÆ°ìäâ"Æ 4¯E‰âä,O!›]ãD‚ª6[wžòH=ƒ£ ħ!B¡M»Ë¯L»Ì))ëø v1| ‚Í¿Ç" ’yü20‡à¿k-'Oú¦eŽ÷2fLŽù¤x·f !/Z£Ðer9Ìti £•ëÜ`Ûê0evžMýÝÊ O×ÏêDhz w†3/‰³M€qc¬ßÕ·¥‘G²=Ö¯ž)ºØéº{šxO¶.-  š,1sG'4ˆJŽ«ÏŸãÄŠ™²k/¥É­ôé‚ëá„?7q8Ê­,»ˆ=T˜H1p” Äð<ò€LŠÁ$~YVÈ%“òå0+ÁíÓ!‹6,€.‰ç€†#惊§ô?†€~3‚ŽÃÌ2[,Có‡õÓï«x¦ÌrÅRƲ¯Í¥z“EEÐt¾‰¡‡Öê,L-fÒuüËc˜Öæ,Ž_Û +ªPþ'‡ÝÚL:BŒ#Ô—Ñ¢•A:D»Ÿ%71‘»¼—(ˆ‘²#¢)¢²ªFÊß,‚‡kü"Ðâ 4@âFZLyì‚™Š‘ŸVK/V›e ß7‘¾ÓÌ– ~R4ëGZ%$oâì;å-Ù·Â;DNN?X€ÚîUȸ(¸Ìr ¬ ËÈäHª,Dþ(t1˜5ΜAnÆ‚3£VëàÜÈÏ>eþí:ÊòP_¯£_­£XGmƒü‘ü¿B³¢%‰ÃÂè/[Qôä.Zƒaã|‚TÒºåÓ"Ïb\pŽ¢g#-wÊümÓ0Ý>´ˆòçc5b.¾‚×{ˆ>Œ»‚f×þ…KœLôÅ?1žowK\0´ž2]ÿ‹‹+@kh  ºWÖõem@Ó NG F¬jÔ r·ƒ[¤¿"Zõ °Ì 䬡¨eø%[¯àN§`©¦ÓF0T‰ÕmðŠ"Ù¶pã(q0úÏGänMª^9h};—:Ø4‡bµ×=oÊ>Æ…ÑÑhIS±*ú¶—3Î/uÊšÍc¹Œb´5€ëÛø9gD2&³îQ˜¹ˆü)µ–±×áìåD,¢çšìÕÌrÈ.€`ò"Äü01§ú Á¶eŒÛ„8ÙÛˆ¸]Ó˜Knïí±@'ÜOà/ÝñO— XËÆ™v!3¾`ং î{±ïj!hº¼ø«Ü°fçºE(¥qŸ`ØÂù7º€§ý ÑKŠ‹—SùÚ1—ï›rÐ u ?ùjèns[jF6jɧºäÁ¾9‹zùœ*fƒWLÉ5¾õ¦¦J$©L7­CBgHráÔó2ÅG±v„ëg~L \hÕZ·o |X$7Ì{òƒÿ4#DUx%b˜„‚ÓT‘ ûi4hïqê£g Á‹5& ¯•Ôª†y‹—ÊoåÙL+¦ñÈfôSA1|¢Iä¹+·•¢Ä<ôš­Ç8e]¤?Øöʈ.Ægš¤<8ÝÜ×¢DÛ"Ê~¥±ÄJ±].^ØzïŠq†¶`R>nñ%üô˜› +¾,gTÊ•M8Ã}¢n£ê“r„‚XŽ#o3/"°îþyCk °JÒM:[«µ}ÄF0_Õ®a#Z¢ráÀ]™’œïMmX£§[ŠêьޖãJÅx4¢™Pþ=ži&à2Ѐ[àr…ãþå÷0YN€q¡¥ßÔ—þBËÁBåÍó:Ûî†tðô±­ríAkÎÆá•í'îzGØGW7‹U’',ÿ9ù_S½-¾¸;†ÇÚw£ñç”´yÊ‹qÃ$,;|q—=PdîÒYßÏù´† ª¥ Ü(ÖŽq†íl˜þÁ° ‚¾qÈÕÜëk§ß_z½)Õ*Ž’r·$e'™«¨Zâ#â=ˆ—–XJc|t€²Œ<$¾ +xZ¬‘”J|æçŽçëç»õóvýüÛúùv ÊÜìG²ÈʤáÑjÔðÞ$)ÔÈW᫳é]Y-õ1š}€{*ý¡YÆUÒ‘=SsÛnµzCHêióæ©Ö|ß’yÄÉ:a\èbàgT:U³3R5°±¥âZ¨Òâø¯Ë5ˆœ MVµNBhœiF¬2Báã]À‡Q«wE2aÝ#ÖZaŒÌIwÊŒôKÓ;z§×ŒKσÆn—ôPyftÀ~Ûw|®è$@r ¸x̘Á›GÇ$ºƒ% ÒD‘g¿k¤‘‡ ÉAc TÕ, ¾~¾]?Ÿî 7k&£WÐTÊ }^ÞùE}FŒùóäÃS~;A²ãeæÛ=rñ¶ ›[•S[×Â=á­Újœ{Ʊ¶×Ìž¤u +ä½Doµì„Â7+–Û8-„C¬î••@’œg»‚¨‚ýÞèÇ›UñD –üµ¶á¨¨9r‡E¼ië83tÐBÎm«tƒé-=„DiW‡Ì#ëÓ”œ‘ë3I|~x}æ•5X`ÐWF 藢̂äBô‚–‡ÕП&û_Y4.óÇ~`b )ØÂa8¤¤…CMáûxüÓœs©’3vÜÙº•ƒ|5EUOßìÎ¥9·ïŒ)¯;E‡ø‡OÊø«hù\B…yé\M§júßš)5s•ñ- >åsÊ8Ðù2=€{?ÃЛ`Ë› œ6ë-5ãÚ†m0ªo2h€ý’r|ú¢½CÆÕÿS)uZ¦&ÝÇS±g¸û‡E¶Š­ª ²Ø÷$îÑœ\C…Å÷BZ IK’rátn< þŒäþH}` Øø›G³4Ü·•àä±ôs˜s¯9…M^ÒWé†Âù¨j{…!Ó÷ ¢IÕZ\ÜÔÙÏ»Ó÷“ œoJÀ:¿¢ÌV®‘G {û&¿q7Š/±÷ `£MÀŸñˆÃòœ’m3üBŽ{üVÁ³ù¥&Tksœí}4ûEø2Tmâtñ ‚·Ü¦Šf–¿›_,Úé8Ä&È¿±JŒõ¥kåÁ«Ýãö1²V.*ì‡~¤gd—/%­ý"v®<öæ‚òù;s$cjF·Þi离֭_À|ìgÂU3êêóýøœ”n\!ƒ/Ä*ëXŒÎÊ}‹<Ùýéê}N:ÃúÒŽ…f VsIÆö¯Ì8ÇŒ,6D¹6“ãH*ãL— ÇÇš‘þj“Üç{*ïˆe:Ì—ê°¹¸RÅŒ•°ÅàK9è¶b =Ô,¾ÐçÑ×ruúQö½@F‚¨Æªíiaå7¥ÆQN÷»ï6!ŸjÜIh/ ü¶ž iɯoöE€F/a«›ò3`ݳ²Øƒ‚8Ö¿¼ÛÿÝU´ÏÀþF`“ùFbh\âq°ª¾³´6ÖC¶Ìs†gÉ U0¾ñÑ5.û,sø»Oû•hÆ׉R‡%‘‚µ÷ö¤o6Ö&ò[C‡1 ðÆŒm_bmM†qD‡ÆÇIÛ¦`ò¶ŒâsÛ`D!>øwŸ'íú²Ü3´Õ‚ÝÚvÌö>Ö¤6Y„ólH.&ñ¶²³²jB@•M²„1À]¹8,þÙK®”°5P{ÖZ…ò“•;ãnûn•Ð …vºùŸüà¸5ó*üƒïkà¶®œpuŵòíU7>§òõm™lÛç?9cÍ”œPêÒfX.h ”y¦…ŒÓƒ2ý„ŠžÑЃ›JY$VœNª’^$ Ói(„g·*_%PBa‰h¿/¨³1Ÿõ~ͳ²‹OÛ)Üz[˜³£Tê‹éÒSó;â“÷ `ß07¥ —”KR/¼ìú,O¿œÁÒŠ]ÙhH×m¦Ò`”]ýŒö &Cã-S«Á€ÊÔü‡­fµ\h‡B­6DÌìÓ‰c(éoØÄš¥'ñœ°Y]—¶0ÀߪVýå/¸¡3d%à—³”G¦Á9ZÁLp†ÚCU^á"|è¨==˳®\à‹JYb zM¥j‘oë"g—#¼]A}Sf»p·*¯¸;yY¹üÌ'åÆ]XÑRõ!Øß"Û±êJ}|ãìH£O­Q¶mç³ ]!ݶóúÕ¶O/í|ŸÑ~>¸d—ˆº qîç3€a`Š¥ŸïUiC/ý7ëèk¶tzéòSµÿíœÆµÏŠ7Yo= xó÷_•W¬>ÓŒâø.¡I~ŸoË–ø²(Ÿùø/徯+†á#”Ë»åxÎ{‡pf‘…q1/:Ga‰°ç˜^®Ÿ¬0öÅåniF@ÙÎËý¶A·õï x Øúx€ÝÄ:[x·CðNT®mÀ[`¢k7S\ßê¼o¤+sÖþ–ÌÔXÝ¾Û EB…[ºr9—öD$Io‹ únþòpYGþ­‡=0}?Ñ}Â堻NÊV›ãSöÆv…ô¾=Ha1y©Xˆx­SF&mÚ”z Æ0 !X#ì´BÿØ]uñÒì rÂ(´c³ãEœƒ—…·7{"×Þ;~{:@¡á¡Çñê÷ÑIZõ¾E¤¹4?uYžçe¹®®Án.Wj»Ö¡"f[³Þ­²›ÿPÀÖ%Ê®i™þ=•-3Íïú®‹ó9ïkž¶¢AüQªÛП0jÓ“VŸ8#R+¨„aB}*Î\â-–K€‘u7>øOõ»‹èœ ]Øâ¾V§_o̤Ì('[IÙ Dóá¾qvo–‹‘ï XuvIÛò—™æ¨Ì9oX÷¯Äú³GÐ?>Wx0dÀU£á·pþãåUhÝ~ =-É(âæõM•ðX×]IôFlË/VÑáL3Z1ëó(F3†ÏlÕGâñ1ôÞ„Ù}3¦/«a$økɶYÍÛ2˜““îõôCVB‘2'¾e¯Éá4BNŒ¸çdåž7ø*À¹tTg÷9Lüâ_uy=ÏØ¼&‰åfÞ¢$K ÀP+‹˜Ú¶ÓÖä.Ý­nl¦±àìß^ƒÙ&¶˜æX§fOÁ5Ö¬NIÉS§Šáu vkØa£i(w³ æ®K›Át"_bPY¸x1ƒ®ÌÀ_¨Áre¯æ vîáQcÔ_.þþúendstream endobj 926 0 obj <> stream xœ½=Ks·‘wÕþVN·Ä1Þä䤒­ÝJÕÖ&¼Ù9X¤,¥J"mÑV¬üút73 z¾ùHg¥ƒFC Ðhôûþx¥&}¥ðïüïÝÇWêêÝ«_iz{5ÿs÷ñê÷·¯¾ú‹Éù*O9˜à®n¿U¾ÑWZë)\…h'íÕíÇWßœn¯Õd”µ9žÞ_ߨÉGŸ’9½Ågç³K§O×7zRÁç<¿ *ªpúŸá;§ìé&qÖF—·£iŽ××7ÖºÉ'wú©¼U¾ëV´ÖNy¼6 ç˧Ï×&ÂSŒÍÒó^·®ü¡ä£‰ø O“‡Á4…³éô3[í#.¡„7×7ðä“Oý85|oßCÔÍØû2¯uVŸÞ­£ß–=GíëZ¹@LE,ãà%Í ?þ;ÛÅS™A; ƒaÞëxúÇz`óؤc:Ý1€ÞλÏþ<¶/CÐßnÿ畉zÊ:AÝÞ}*@:6¨rˆ•3¨Òf¥+ƒpÓjŠ!»NÓºA\ùÆø0å¯à`Ó¦@ðW6Gß{ß¡Ç$=Ù|€¾ 4†¤fn¶U¶ ùÕ_¬j˜Ï'Ds®ø²8<¯€-h1{ûžß]™¦çaØz2©Nó~DR­‰ð]ó碦-Ú'Úµ¬ÊøúWÁSŒ aÿÌÎöNXò~^ˆí»k€Ñ-aâšÉx¤NC’ϧÿ`C8£Ïg Rä‘SÁ$A}„· &0Êp¹Áw rÊd3imöÅ^Yf@3ÈÌ—÷e7€ fÉÇÆÍ@G<D%3â`BñÛ2ÂëpúöÛõ× ¸»Y½ˆ •]8Ýßd =ýÕ6 Y\,tÅ ¾xúRæÄ…Š|È4óÿæúÆÌQÊí•™ òà¬\Žþò³rÇ.9_pª¾+å}T+/Ô Í˜Œe€Ü12åŸ>•=‚Zܽ8$ÃØkF@|ÂÏeˆÊIKˆ‹íùøHŠ‚ 0`ÈL!4üq¬29+ß”óñÞäfÆB!¸JV{Ƥ"< À/²ê7ëŠó¡e@ÛsÈäÅI›‘¨åâ8hÿð£¶;‡Oëäç\epš"ù­˜r/qmJ ¾|Ãܬz*³90›°Ú½€›^_ß«:&=KŽo±:Ä-䦱•[læ0Û § 37ø‹S4¶Q×+¹7gôÓ+ŒÓî˜å6n Xn³¤H ˆ%£¯‘÷ëÏ 'Íûn9é¸,÷Då6ÛÉ;ǶÁ!‘>›eÔ*6tË1„X V:[’²¶™‘C8¦ó=ìÄÔþÓ:`ÚÓWëÿ;[¾æ6??iÏ(ppIH­ZÅß}Y(‰í‘A"°IÞ°I8Xµü}¡ ,(@lïÊ›ÞBHü*Ÿ[ó– /άÐl •¥8rØÆýf_惞b “ Œ8pSÑçîú™.X;NÆÌìSöHìJµlõMQ.&äàâe°eÿP¼1å]G¥ä¹v~õ§k°¬sÌy@ÚÈfóÑØà’?Ì“>äïãPë1þa³qrçG×y‰l+›{ÍDAí \+¹”ï®o¼SzæêŽaâ‘ÃNƒáä÷}NŸe²ÜúœH]CŸS+ÖUúw8<ø2WŸ0dNj}?ö9ˆbSgQ§ ôÇ4¶ò—²áìõžYâÑ¡{fÇÄ!^¿Ä¤ð胻>¶‚ð§ÝÍXN²?w:·›? çyÄP¯µ¶@`Š&ø× $ø,iáb.Z*å?¢ä&‰m‘Cçâ šR@ŸDþ;lPO.>×Ó[ÂVûAû=çÓ*ø_–Ì!¶îнGø@!¦Ý ×¥8<¥1’ÇyjµÒ`nø ìlBqöÏØz*ÖG·Î}I«<` wY\<¶I• \ ¼-hÀeø\# ÞkG%„Lðk¶‘B‚ï§ >ŸçŒL%;µá³E×e*hð uq¼Le²v(Soàȧ¤b§Ÿ:uû0öÓ{'CP x‰Êë ê_an«cïàQgó#µ*¥ÐOëk6‚–‹LwbÆ—À&gëNÒ²ˆÒÐdàÃß°i¸4–Œ`A!Áb´ ìÞK£C6‚ ôq 7fç.Æ>¾ýÞ›‡S¶>]r̶UϸÁŠÿ'<8ŸMŠå Ëãçåqx†Bó;2!Í í”<,ì'ºêü¡Ê«tt rmäÆ5lÞˆtˆ…ܡچ4ik;¿´ìÅÆNr·1‡ÿõi=0aY8`…ÃGÙ”¤1§3ÁÌ¢Cìdء١„Ë^GIøS%„õÙÍ#4j¿"!RVmñy™Kµ•UDån¨°á''eÃÈ÷­ó±Ì­mÞc>Ûôæ3#¦«3Ræ»'¥‘¡V.ßœÉÿëI|Ýî¤èõÆwÂI1sˆ›mb“‰f® Á ǘfèiÃ@m½Q^ÕŽÂCñ‡“äM¬3¶ZKö´[Á9ÈJOÚ%éÊÜm\QŠIòHœ£Ä=€õ×—ë6¯ ù¾f’wÜ/Š!½ä°uDR ¤|7\&nU'Å®ä‘6;kª>T¢(ëClÿb-ªÁÑ5I3G¹T;Ø ½VAgöñ(ÜäBœØˆ3¹.±àýÖÖmÁñ³1-‚ÆŒoA ø¡ …ÞAÊ´‚BÜ‹t•{)—’‡FÉå(¤Í½mt4!%¾½‰£XäÆc]L…ž&¥#6Mç.W`ðu»)QZz•n,”Ls–œ©žÊw`£ìê¯P—Cà»pê³öÞ±`­èŸ_¬Ci2`ÓD΄T¼3k™ 7+Æ]ëpó“™°³9jn6(3¨*Ýû|‚âX‘À϶ÕêË´4å¼¢BíK/1¢µ gšS´Qïq#Ú :ŠÞè(¬³Ü—Y`KbÆ çRÕÚÚËY–ñv×Ï¢ý¨øl¤ ’ɽˆ•±—¹E­cÚ˜ ENʦè*Sž÷ÀV/– °¦ñ¾=±¹Ë—>·T‡ùɬq¡ïÙ©ì—˰l,e‰<€áŒÝÚ]°£Om¹L%Ã!CÜX À»Øyt«Z‡¥—ÇO¤×”צØÒåíÃúø¦+³–Ã$—6£Ôî¹²1­1J´Ø%DÞ BBe‘[2§7Å€CJû±æÐã™ØŽºÍnQÞ¿CégPЉ)R–7lhÏVôíc© ³2×i=u!uÙûÕ¸~H§?!EvÊma#xÎÜ-ýÑÙŸô:82 µŠyàÖé’¢ìê?=V‹úSXßRÊÅåè‚ã“GZ!sÍ–[o}@´Ã1Wcƒpá6ï(ÚÊgü…!›ÍÈmÖ^ÕipíŒï³úY’ÿí5ƒóÖÆðᆪźz_æ`݈ӦÖðÄM™‡C÷3¹6íéJ.Û; DOeˆËæùZ'ˆ±×øVE-ä"¹«G08ªyiÄ0ãasf\š×lÖ(lù8Í„+ç%&ÍRЎ˨€›é’pH(Ѻh3Ï€64>5~­XDöýúøn(ÿVoçÍêí|Ú÷v°¦å©R¢^:-…Gí•ëc’øZ»ÅYè­åà.MAšÍ&Ûåø8Ï|·ò ÇüO%̪|{f?–ù)NÅɪ=(1·6ª^ë¥üg\®Îìê x[àÈaßjÁ™CCÑÝf†Ì°æsP9¼€{†˜6Õwˆ ›z³0˜\Í·¨ºFòý ‘‡¿c¢eŒq\3¿/XÐyÏæ.fœ›râ4D+)6¾kD!u) ¥•Ë´TäÖÆTæÝx¹2ŸÚ¯´[¥‚¿Î†©Mð–ÓíS&œñ}vm°»:ßÈõé{5^—¦ÛEïù||y©Ï¦5“-öt+¿ /å)¥ý8IJзó$Q‹\gãðœsÓ^¾ @ìZpÇ+mþ*N× u)Ô¤ƒÒÇðJ.–ÛWry,ÉÏ®¹ª¥ù–'ë{}!7ßâñþ¦è­•>™u@`þS3%¹.<Úåö¨ïɇ>•'(ßûž:2öÅlúgÁœÍr) à¾ÖùÀÇÜo-Ïóž¨<³@ kºÜ9 6ã F®ì8wºõ¸9VzvÌéë.V½q ½ÄðøK^ÎøOÁ²oK`±7“²¸00…Ô›Œ ¾Îf×ñ.¸bî£øE$kí»E‹énœ35íBCʃÔ%¬:B*Èö¢Ž)q7{(e_}¯í(A¶%7r ÞØ5tQ–BQCÿ6Ò1W¶Xl ñÃìB=di˜0²¡ˆ]æc ÆÝ94…™ƒ®¬28EÌøuYöõo!tÜL´—:~g7á7›Q¥í—qá—N>뇥¸Dšd>$äv®‹)½¶ÙæõNšŽäiÉŸZÆÁÑÁ›^ýŽ’'Á Fg}öÝLÁaãÖ ‡ý‚›ùޏÁ÷wa˜1ý5‰Û‡DAâŽKCĽñ7ŸAÞ¸ä/'.ꆷçâwôa¬‡ÓEí»hÿÈQ̦b¸cÜd Ç0/û1L>GÆ/~ñée^À¯ÀšÛ/;#þ õm0Ó1³·mK ÜE|*s„Ø(§1âWì÷âÿlñ;l pbsJèu¶µø:v™è§òÚ¨ýœHV^¢ÉÀû¤À0òúÌY>³7"Te„2ºónq7àaˆ9‹m„qÀhuꎉèµr-ÄÚ‰Š@ðçÙHmÔ8òŤ`©ìW×ÓFª Á•—UI}@c8Ü¡èJip0É(‡Â–MÄiS'6Ƨ ÛØ.§ûL;î$ƒ¬“Í ~ÂÛ‹–½/Ç^Q#­}_]µk@#/ ¬[v=U2+¾È%åq~UTo%áùfx=Øq‹fL]º,RÒí?;3ŒE|.Q¢ê  c]#u¿¿^ßkojhÅ0}iu:*¾YkoÎU§,;ÕM‰ùeä¸È2¼eS°p¶Ä×p1ÊÛXS.`Laì««¶0 ¼v£»œhšÚãAì™çl?µ>Kñ!ÞÖ­ã~LðÒå¼ÝŽp´ »­ÇeCñE œCû—¸}ž[ƒv ¾g°Îöv¨‚À<“ºÛ·ö,©ž‰ã§;v¼ç[åR¹à kÀìnÂ2ÚŸ¿ð—#=>µŸŒµY ´ãërÝ(ðÉQA$Îÿ¿wPÀ ñ‚)»âiï"¸²Å]O¨`òBFÀäý샂É]© `ï¢Ã-b^—‹<ñʼ­-Ð[Ò ¡°œ¿Æ…¶ì¤nä°†š·Z,wÕÒ©A»4‘ñN»4¶t¹íÅÝØCv¾…LâÍ;a sc!"ñkJg%—‹žÇ6À–ƒÚþ‡Òm8hâO ŽD+™{yÕ&D¯;#_šHè{Oq`v$=¿Yoäš‹ËKÖ"áu £8ìërÊ)Û^üPo¢N‹:Ó#{mè ŽƒDLüà^rn¢IB 㜲(›j•MÛ²²hÌ}½ÜRÍUjÝë@α/ )"{˜z[²!0Ä7áƒf9~;é¶ϰßÊ^…ײzj3©µv*“}Fº%±ïLÒèÌõ©„2dú¹iï,ãxü¼”»t¨Jé».~L‚Ý.yñm̬¤†êjÕL¶ ÂNVE¹¨°+–áHÒ6Rî†êg(eë¡ô¢¿4¼TúKmåÅñÎ…„¨Ùp{õí¼ÞÙã’JËL 9ì÷Ëå†Ìþî ÁŒM²m/11i¢ðWx$^‰ˆ‚Ïãm·6e÷Ñõ¹Yòb¹Òè/@kÎw½-0Zö‚­Z åãH;pUBݨxqÀ‹CÕCÞ«piÉCEisÉ7׸ªy,‡˜”騴N=‡IiÛ-'IÇñ¯!èãAÔl²‰AÖ[gDvÄŸëþîÝCZK¹a½±Ë#‘nvÐ6‚Xó8¥§Úâ}®Ç{ª+cñA¢«)Û×Ú mCQ4%vT›ÈâþŽ1g6¼E•:Ò—¥Ñiñ4Ù)€ ) ÕM]'ÆìMØ¿1çÛ"Éù¾¹ eË—»6{ñrê©ä[\mBÐVyVL›cÁ’?YOÑ/M^<áÁ À¶Œ¸þŠ™/3¢â[>VÃàme!›."×ë×&3)Õ<ú­OîWª®Á{’°Èú> stream xœÅ=ÙŽYRïf>¢ÄÓ5¸’³/4 !‹`üÖžÛåe4Õv·«l¦ùz"âäg½™·ª<ê–úvÖɳĉ}Ë_®Ä$¯þ3ÿ÷íOÏÄÕ‡g¿<“ôôjþÏÛŸ®þñ峿ùý•”S´V^½|ÿ,½#ᑜܕóz’^_½üéÙ'÷üZLÚJeÂiÂßFz'ýI=¿–RÙ)œþƒžF!¥>½K#‚ÓátG¿…‡OŸ_ko&oüé7ÏaÎ}Ëæë¼ùû—ÿFÛWqŠN9CÛ S "^½ü÷g/ÿêÇ´¨¬Ë4NxáÒ4ÞínÀˆ8ù€€ÇÖÛTÚÖÖ«þ«/àU £T8ý/ì] ­#hål–·Ï•Ÿ¬µš–DxªÓW6–ÏÌŸ¿†© ÅlSóï aø¯ó„"f{ý”fÑFËÓM:f6ÛÔ§íÍW¯Ö…lµÐl­œB0€/oàú'¼-Àí§íçÝöóãú³yUJOQè¸L÷—Û) ¬rRÖ‡t2”µ ¬\€1oÙ‰¿îMÂÙ³S¾y~­Âdƒ68 ÂÁÁE}{nÍdµ2=wná>mDÀö3pß̰” "à5%T {hßÙíŒ0LEXØeS¦ÍH€è¡ 5m7`|<}ÞF¼OOS²e8þðç×ôðÚ\Ko‘8®®¥Bì•éºzü„HnðŠ8”àHÚâ128~bà½ÁaÒÖÒãÏpq@4^Ù*4Á¥™t~Gó7q'°õ0*jSªö)Í ~:å{zz€AILf’ÑeØÃ.ÁK­ÈmC:]˜”l¡ ½÷3[ûçô¢“ãâJ~ŒtbtÍü9-(cq¶ £ÈÏ¡TêS Ùó…ïñö`×’ã÷ü¾¶f†Žf !ý A­¼ëRæÛ|•uÌW6[h€^ËRDóQrÊ ¸–Ìa„›ÚkŠо)u,1–tþ8òi y9Â=:Š)qžúÝ9ßeÚH=ö÷Þ‰:·Á‡OÛîñ6¤™¢Ž¡¸@ªBƒºmÝ8ls Ë’Ù§%…„þóFsô/l+çÀÒÖCYé,¼´egF À>·¢…Ò­c ‚S+ûø´¸ž5#¨GSs™ ðp&tÌœR^L$³gÊZ[r’$—“™Î «ûK1p¬‚¯µI;Ò“«vtŸf¬@ÃÁ…cŒ;ùµôÐùg&)nÙs¶ŸÔÆÏȘž»C{Ô¸w'nT6ëMéX9¥äFrSéèYÉìÕy¿pi©2Ÿ “Ëüá`tÈÐõªçÌ7¯š¬§Å ajÑö¦>˜ˆŒ4°“ž¯€¼zRah¤ãJš'Q˜pyG¨”ÉVXQ„¡×_ÚCüÉì6pk²ÇE%îLKÃ=Šœ"nÒÆÐe{œPÒu¼•lp"”ùD¹í}©d8à 6CÆ ÑY;?µÂ÷‚ˆhwÃÐù"H–÷w1 tc:¥ž„PW kè†\ìÈß5×™#eT‡\FÂfÎè«ç<˜8‘-©<3g¤ϱhÐwìû¼”1(F>œ­Ÿë¯ê¬Ã9Æ*%°ŬbÜkѰ36Là]xÏK•Ð?€¤{Ó]gQ"Dt [\†çUâE&«ˆ¸[¢t`ÍéØnjë¶m¿b€ µëëË¥µhì´š×ëÅ0¢:¬õâ{Áí¿".M+¶\ßÑáØ2gÄxH¡³/ƒjà<޹œÆÝyYÅèñˆ6dÈYsÕdtÍw¦ñÒù4ùm¤On{ÈÙIÒ&À4DÓ,†×Ï |/*_ü/:b”õ.Í¢0zš<(t¤×ù‚eîƒñ“× KÂT&d§™n|ð.½'ìÊͪÍõÃì-«£ƒiÿ9M\*r{R£ðŽÆÜs ß%iõ¥JA(­cx ·5vêÉG÷$z*FÈVàn1FaqÜõNw=ÖO´UTÆü($V«f P+Y¬kù"¶,Î{ÖRæÈçGcÇæñçô5$ö"?@­1$õžïï~žEgY€ŸÛGÿ˜;;Lt¦ù ïÄ…Ë$;p'ðŒ  =ãâH»ÁM…,®Ê=ú»ï>MÎéT\!ÈïýKz³å2N l‹" %MånµQnP‹#0­á9Ú7î—ˆ¤é^Ï ÀY‡ß‡ùÆ\(Ðk™pvÒ§Såä2RÍÁ2ÒN³ß=Ic1 ýž*íºê¿Ë¯å½ââ¹iÓA0[”jÁÂÜ@¤©½ÚeGw¼7i–‚Á7î'[Ó„ÃJ¾çl?BûnƒÔÅò'¦ÊW¦»ëç¼,¤Á|[…Ááp¡ „¶y¦zZº©é.ާthÄ1вe&„´çÜ ÿê´­ÖT·Àøsq;ê·UÝ‚…ן·øÓ +/ˆø´ý|³ýü2VØŒœ‚^—{õœƒR7 ”l°hO"‘™;ÿ‚íÍÉ(¾òXiŒã¹8RRFcñ@aHqÞ%€Ólù0à¡ÄWxˆ…Ha¯¾î]ÊnÅÐÌÙ›•¬½-¿ó[óâ>o?oú7 ¶~”›Õ#a‰—¡ÍžËè8[>c£\»M“EµrЭ¹ATÝl¨tÓüf2_xÞì“ó¾™´osBWAN˜Awöž±Úßr[7úa£àwJÁpµ*jä¾3¦_)•ëëE²N((]fËÂkZ*…"ISËa|Föµ½œœq‚¨Ë ,|*/IÝÀÝ¡"»dÔP›zÌ4I‚Œ¸8¢HÊ^O ânm™á<~%eá¿ £#™N`×j©W­|c à qÊ»èy6y„zΟöM„dÍe6ÛÊÂî¾zêgݨ0¬0X} è¶dït*âp+LCÝ«¼¥Âg1ôÓ§ÌNM ­‰ÎöÜ®[ó$áÑQXòoQ”<,¢UFópåëeŲòƒ ¢w…0¸ÿÓüj¨ªšàié˜nÝvh¹µ­Ï>·:ؽ‹U]à`¯È{ÞÅ!;ò§4…-ÑW/J­¶§óçµeÔøkbtXpV°¢ 3ò͘ Ó×ÛÏ»#rµÔŸHÈÊ!b Æ€æ{Ç‹¹q ~ª4ŠqB¸¬=ûÛ‡¹Ë÷iÈ4·:Ä*Ч°)ÓSÙ>ŒQnÎNH(çwèr˜h¯m†sIùNªš :ÉùùéÍö”)꯷§wëÓ p. oi G™6|^¶¾ž#Œ2,:—r…ÎÕl§êíVIúêK[ÉdÚÖ® ¦¾`E`D–«Ê‹üßí »ßÁ$`ã ×ó-Â<*í¹Ã`¹b%þýö˜ uT"¶/gñœ'‚â|œ³a”†À0ðú!ÎP̤]Éû -î‚ÍÓ˜:ÚH'qoÚ*ndÔO‚¿ÀÞNi«£üJ=êÆGnç´¬ë½GUk<:&qåf*¥¡­Å½dšÞmaŽÁTÁÉ®T<*:Ù‡6ñ—©B*”±PþSéӨ΋¹Í³,:«Í.µùø.õ3ñ ¨´¹ç¹g®á®£+9ÔÇÂ·–,W0ýOUŠü~»æŽâ£©`L÷îÅöÄ%¾$À(o—›#YÙ–öy;·›±¶E$ÖÖEª²zŠœ;¸ÌG?LNçΩª—£Çyö€¬@v€ŒïTqÎn¨h„î0õwiÑ­YC™,”{»–¤éª`Ô2Q ŠTœ WwçÓn?ÑHŠzÂÃàN”Áâ²ß!è7+5…XxNª±5¦.­Zþ3t¶Á™ väL…Ašõ>HÄ­´DÄWp¾ß,\G­qž…,{¼:%×Åâ(9Џƒ¹:m¢¦ªœ‘­ ¶-Ñl˜G,.6м¡{ÌAÜœ~X&fÉ"Mjõ4ÉËÙ 5/dÜå# ñ‹6äA>Ù5DÒÉsX¯ºIîDÕpE=¾:ÕüéycŒF².©êÒÒ®sy2F4cÎa•r©Ã$„/x-PÈ„’åxs |SŠV ØR±¡`¥n…Ð r÷iëVo˜‰3hÂò.½éwz°Ô#¤ê­¦ÕÉl)Õ(LhÍëêW(DV8ß»»Ût&ÄÎgO»£\2 zJ²þtQ–ÝÖ4]ò°/b+$ZòWW$oëL=Ââ뛳k0í97æ÷;´˜ÄKÐÝŽ…¥æ…ÃcÝÁƒzºúj/J?Ç"®Íì‡É%íïÒ¶t..v™âqr§¥mXat ‚Uç€^ÐëEòðªÜr`¦H;j-àÝáu]4"XWdØév«3ó°´tÖÔßá|©D{ðWåÕn¯á¡ÛœÐSàÉ®Iú•pù”Ð"ЦYõ`ßÚÓÑ,éïQc#ÆB*å>ŒÚƒºënZê)Ö }nËäLä4ÔqKõRDz¤xŸRCPw} óýÅê6:ÁɤÚd¨ú‘–è”|¿çÐɤþ·¦_è6rãÊذHæÄùèŽ5Çš‘2„(3f4Ø}Ãàþ²7>_¡cŸóšåW8¼Ê…ÌeRÚîê*['3øczOÚ<(ÐUÙ4lHêbŠ Á»Â<ê5{±=o#¤{–ÝåYU6É·æØÛ3é&üjÇþý9ö«°HôhPn ¦—a€$éw£ àßÚ¹w`"Yý]‰ß븮÷×çE3.^²½ËÈö3PA)ÙÚÞÙü¶ôWö`*§N¦$s¿Ï[)½ À;ýÓf ²98Uza9–åÈg!=}6¯Ì ÈAŒ'5#¦JCwC_Q;`nBñq’r¤£ÑgM[w³ØºiYïÎ! æŠ#óº›åªÖs z±ä6ùµzrÂìtY®.?”㘤&}Kû Eó°ZnèÑÇ}Ÿ›Èûµ/¦eÖ ÎïÓt]>Ò¾¸{žk_KUN¯«q‹åÜw ·S, ÌÀf%ãþ‡ZQ±¡„-Nì4دzXî6èa0è¹ê1³É±ŽH †øô°9%l†‰»Ü¦¸R†jédgcÐ4§ØÒ»–ÈÅÐP°{¯÷è]G-õ®„•;ô®-9|ÚeT«JàÏ‘—b°‡{Ž(:ñ²ê0×amÊ»)…<©m€cþ=ÓfL2"ï!Sµ ¥ìüÑ÷QêÂÖ ;b«ì ?+û¾¾NBØ2Ÿ2]ݡё¢½i·°¦‰…Ú£#Ø·¢ïÞc×9(Iâ|Øç€ÿ6m«p›—ùC^KðµJ[æ i†@™À‡ÝjÁ:"‹£–'Ø»®>Ç9MÕí¨I–Ѻ¥¥:~pKÔé0löƒKª~eA@ˆQ?(‘}™zí¶Žç*{#µêkt£2ǹsbQWO]<ºoßìˆ:°w+ý©nN¹nÉË| ÔƒEŽ‹“8#ˆ›V„s= ¢ãa¼>Žèø^]Ÿ­#Š´ñ7@ðMÓ¿ëO«åÜ›d¾$ Ð5r[Øî‘Ûco¬rWY¯ 7'Øãèí±D¨Âno)u„Ýô¢g}j÷è;>W4 <¤wýΠÈö±ÇzôŒ^ªÎI ZÀ·° ×Ù:âQ‚>dž_&cæ@¾×ýüï»4‡ó½ÏƒÕ¥tº\Ä<%Yü|ŠÆÛÒ!Œ½ÇuñåÅ¥¸–¥;„:•›±YošîºzöÃÚÑ»øŠE†ÔKøC hxjsÀν~`B­·?!.ú²*ÿKÍp`Ç«g†ûÉvT`r-jsj~ÒÓ‡ƒ†>§Ü·‚ž9š»6]¸h±ÏuÜýd(s¾\ŸAÊT¨áËœØ}A”òò ÚeÏÙF9œL]ç…VYuæ8è±û£i®I]DÅ–Ív9ᦜó=í¢<>ü8g²ƒéÏ,Øl¦ôë píq/„!gÇ%U]ú´=}³=ýr&(DîV9àìK½ÊJŽ Ú¡ÓA€Vˆ;Ï•åΆîX&À¹€ùuú­vœ±=sk> À‡as“  \^‡AU”Áªý˜ÂvëªDn|,SÿV0EËÛ½Éiއ²÷€i¦Ù¬î€@š¿L;δniA°hwôÊ®2‘´ dͽ7V÷ÑñH…HÊ7\¥2–Å*•öðê¸:}crÿ‹¡L«VWöuç*~– ÑëÒöÅÌ-SöRôå‰ötvUê{ëyk¢b. ]~M¡d ™'9ÞÏ ÆíPxЋ¶6è§ÊÚˆm‡‹jáC !Øå{œÒÊËÅm«¸öÿ)ÓoËä\Äçý¶;Éã°Á|܇µo|útÝ~bFa-]S¹½* :õ‚V”ÃÔ9ÛÕÄúqÇÅ{õ%M¢lîªì6[¥Ñø=¶j'‚>±3ggq S:m58XºŠÜékÝ.Žãæ¼ñS!àÛÓ >å3À~÷7|å;ÝQ½8ÀË ÓÃZÂå]zÓéþ÷áV·nXöÆÂx¡9šØd‘ó‚B Žö©ª—69œ±{Ý¥ Ž«_Êyj?2jÍC‚i})kü}"®­e@SL7…>­î¨àã"$Œ`ƒ >*HsÛ<ïa3¸¤UÆ Ð›O”»[·ªN“0‡§â$$=Œ1­8[ïhbJB˜‡%¦p"uÇ,ZT0ù×í´ÁsEUóÉ÷õý®Ù>ÑÕìŸhtð#Û8´º¥ A XñE€_eT`ÌÕåéOsF¶*œ0‹Ÿ¢ã˜üÇy§yV5¿Î…ÊÒÃq‡õ¥i[h„ÜúÂX®±q9‚ËaعôÖ`›·KRâSêÄÀ’Ì$M¬ºe¬V¨èoòÃVtF™›:‡ ¨g©£™ÔY¬3®–0|f@þ [ ¦tŸQ±<êÙ$P4À^ƒR´/]F{{8]ã3Ø@Õ{¿zK§±¾Keó„¦h†Vˆ(‰Ñ|av4æF™%ö´\¬ˆ"¯Cù!WÓk¯ _”­xç÷¨’¡ "€Õ¹÷¤Æ%t¾âÎçôªç>ªÌ<ÿªK™ Ó„ Àß]fp "ó•ÒÓoͱ·gœže·m^Ðr-©ï4P¹Á8‡Si”ÚNlן8þŸ_>ûoøçÿÎîãendstream endobj 945 0 obj <> stream xœÝ}K“]Émæ¾B?¢Âäu¾vx3…'< köÌX³h‘ýð¸IJÍnIô¯ $çqëÉ–#½èºÉ<ù>_âœüý»ø{‡ÿñÿ_½¹s÷ßÞýáÎÒ{þß«7÷ÿååÝßü&ô~ß/½„’î_~sGÏø{ïý¥Ü—/¾Æû—oîþõáûg/Ü%Æ\C}ø7ó÷¿? õ’‚+_?{cº”þðÍø÷äJhïž¹KŠ©×üðVÈ—"þé/®¤Zñ1¨Q\…&¾•cMýá',Î5·–¾¿Ò*?P‡É>f65oûÎüýÿ®5ÅÚ~ûl $C?éá¢=þß—ÿýΧK½Ý¿ðá’Sñ÷/_Ã’ü·gÍ_zí') W¤/3û3õêzóv`oàO# .,ƒ´3¶Í<‡Ö{»¤T¡w˜©=ûe?N–×çö5ް\ZË™ÿ„–y)Jƒ=ã%Š)z˜Z€þb‰‚–ƒ‹±W¬Z»¸”~¤UsÝÅei¥—^™ ˜•z;$'–¼´agË5Z_jpç=.­}Cë^®¨^jÈ˪Ûþ6k€ãï°¿8ßj1.-¾ƒâzÉÅç‡×kÿ8®r†VPªBÍ—–hÜ'»‹oÍ|ËÝÄ|4·QeÝ]œO†Ù=°’þóäOæo’K˜pÒ ä]È™uÁ.ã^xsOítÕi—½kÛ]ÆC·¥>ötñÝ[!´ëµY˜ŠÙ\Z4à­ù{}w«>| Çj+œrgÇÉk’{?Ø?KÍ*¹ÝÌ×\£¯¾^ö{>‰Ú`@Uÿ„zè©—çN4ÿ»1J{°¤C¼ç’†G¶ŽÊÙ»°í'¶p¦Ïäÿ˾ ](€2Å‹.ØÊ¯iœ÷¿C¾dPše{{c„8·’æB‚ôón´£¨jU†:Š0a(ÎX´x²ºb4­²ð´HYR¥ÙѪ¥P}3vØù6§YäMÛTŒ&*¢‡sØ@#–‚Ò\Çèû%–vª3û½\†…PÁÒÓ<¬Õcð®×ߘpÔ³½ ò6ÕE¤íܾÚ5‡ãûÑXøÇ–0¶E¬Ì ÞYó=*7èÑk)8)LÖþÃh"»±œl©éT›V+r´ Øp¤ QËÀ”<²¿(ŠcCäÉ [ýPŒf΀v¯ôT i Ïk5-û½d·1‚šK=sY‹*àÆ Ö Qìqjéhß±Ç;Cç Îó8êêy¼“áõ‡¨ÏáNµ|ñ¹^³° !W÷ª¤\žl p†±,ò.èã)Z¿çÙ–ƒ­@¡œ[Q>y+¦5¤½7ê ïE²{1ü&¦‡e6Å+~›?Asa ’…57§34+eçgÌm“=)Ó[æ€'C]÷ê¹j >sük€p8TfëîóîÌ~ùInR‰';là1]BôWÄæÙ{>…m+Ãa¾§¶«óŸQ ÁÕo“0X5POSð.î”—܈UÙ“o!.¡“Ý¥³éÊÃè•tÈVÀ3d¬p€kÚú#xpäõå•ÀÂ,øNT‚k‰%€Kq”Ä0%òT*0a,È@|,Ã(™‡ ‰%0tjÂ1ø·Ô4G% „9b ´Ç%àHôûÔŸK%dK ÈkÓãvº§GO4WK|jÆžþDΗ~ÂÖàPœ¬gl¸FP/T<@€0ÊÚ¹1iø*€ÖhY¨Ï y,@ûF% W 7â Ž„­Ç5ÂN% ×¶ ¼r?J*,<ö CêôT‡§p#qûF§i#¡Ï0êdØ.½cŸ£åÑDbIç±æ"‚pnX’QÈIÔµ“a¾8Í‚˜4J vÇDœ(Ì ² K**–x\ƒQ/gQÃÅu*éTÒ¨ù0JUh<-Ò˜1’ˆTÒÇÞvT“QÐ륌‚æ K@IÁ` €ÙNA4uÐG%°áΓ–ñ˜yïSí°ž^ld)ëÒ ÈSXzª°±ÙÑT0 ¾šWäì”*¨FY¦]ìÊÔÐhÍçêÕè±²YáŠPVí.ÔØiÍçN]D©2»Y³¿ä`w¼‚L®RQ¡d,&ÌW…]ðÁ ø‹„6SHˆ}VÁðB a…½Húl¢ é›Ó`¼G¢U àÕ[Åk ²ÝÍl0£¡S¢»­p¿¢Ý ö:5 ­ô¡«Š CêfA¤ àÖ*΀a  XÔZRnë䱊iZGpÛIÙbc)¬ÑâgË91¶tToqg1buƒ}&Tb8oňUÄÇõóÑZ…–δ-5\c]Xo P‹• Ù4R dv±c ä<ª­%°½Øn¨ÃCŽ*n}v.ãTF hØQÆÁ‘5пìÀìz4‡°UôŒƒ‚*‹ ™°]8’ê=D,H¨÷£ ¡n@ K°þ–,.I&¥P¯üá ìÕd7Ÿ=]ã¡z¡ÚN×IôM½«Yez`܈:iÒ:r2uöd¬êòtÔg”«_)«¢¾§¬œú§²ºêÃʨ›+›¤®°läô–e¯ÕŸyPŸ[dFýr+õÝ¿ù¥ÒYLi[謤2ËtVjIOãé…ÎJe>ÅtVüuV©RÊl˜ÎO/t ˆçÊtôÎû%tÔáM:+¥€˜¡X‘RÛ¤x’ßüBg¥èdé™ÎJ CŒ˜R'$YE¦³öÒ™Î2uˆÎÂfòÄÐ4Æmé¬1µ…ÎÂÙ‡…Ï 4ƒæð?6³ÌgÁ°½B —®-„VʘÐÿOÆü@Ifƒ.„VBê¢3%•g(„V-*ÅXÄ’H›+„IJ¢WLh¡ˆSô(„ÖP•…зZ¨§q!´P—óBh u_­ ÍøP’Å`B m¦ZX®ZÙ‰EF „!\-€–a´‰P/¿WF |+f´Xó¾WFK«0£eZaFK{FKG#Œ–Ž˜)-”PZ:q¦´tm„ÒÒõJK×X(-Ý¡´t¯„ÒÒýJK÷\(-• ¦´Tt„ÒRñJKEP(-S¡´T”…ÒRqJKUbPZª3Bi©^ ¥¥º'œÖÔNá´¦þ §¥*.¤–€ZŠBj)”©¥h#¤–"’V¶‘ZŠl³ÎD?!µ!…ÔRRK‘VH-Ec!µ±…Ôš .¤–â¾Zj„ÔRû!¤–Ú&µÔ ©¥¦ŠI-µfBj©Þ ©×$1* v¬¨‰ˆÚPx¿ŸDG€e¸œÄ±%PЙ†eB&™X®‰s‚Êd.Ó2`aêDÝà ŸðDï@I™ôΠ€R¤fnÌÜ ?j9-óÄ,3M©Àܪ%£`Éëä½_.@¤`½+¹±PÌ: ¬ 8ÒFO¶« à –ÔÍôÂ-ш+º«ÝNªÂ¾$ËkAIg’Å©qhºYÀ bÜ ¯m’V´ 5yÑ<ÞªŠ¶ÝÌV–Ø‚’&ªÈ2QKò†å¦Ö&¼ ËVEÚ­üá8YÚHD›šm¤¸n2YK‚Þ’ãc Ñ…ñËlä'QVÖ©–7\r• V1[I>‹ò6˜S±ÄïäÞœ²Å‰Rì,¯•Hq·¼VB$âí¢,,³Âd¼öárÆé ïßæ‰ƒœ €z0ÛÄPÛš2ïÇcè–ÙJcv“ÆÉ%¬@Œø[™'lp½ˆ4ˆt¢È¼ŒG-³%NøP6S #Ûåt¦Ì¶©d¨vãiËlýkhÌÕj¶X¬Å°¢Ëm aË–Û‚’Â$Få›d@ }ƒÀ1-ç[ œ¬Ã0ôÄ“5ô^,¹•P·Ïd(›%· ¤ Þ°ƒƒ*,¹•PIpÄQšnÙ­¡ed¨ÄßR½—ÌÔa·Í´Ã®ö%G\D³¸‘:/q5uêâŽêòˆËª+(n­®²¸¾ºâën‰ ­;*n¶îº¸â*⮫ôˆK¯&n¿ ¡„*¨>¨0Kˆ¡/aˆ*…„*ª8ΨfqÄ£Ê'1‘*¨„MªÄZ©¢sô¥X@É,$aâÉA¾ÂÌi`X:J{àÔˆ‰n³ÎD@‰I%%nU$•Øv‚­„¿ŠÇ"+fK­¸.‘ö„~ Ƨqx]í‡Äôjc$îW;$Ü€š*áÔœ Ç š'T„ZE¦+ŒådJÃXW¦=ŒffÄXifOŒ!g†Å{faŒCÀLñ˜Í1~3>Æ÷ Rȸ'̆¹%õr˜~2Ž1Tê*1‡e¼)Ñ:õ¸fé•I+Óq“ŽÔ¹“±¨(ãU'‘§4ÝH™´zš²0êÊâ©Ç* ¬^­l‚:¾²QêËfNÿYö[=l‘ õÂEnÔSÙšÞ¼¥¹x ÍåPpšËù­¸» ì¢ÎMq'µ‰½'¡ýH³bo]}R>(@f…ÑjÒa(kÀz1Eò¦DLMaΑà"b–Išô@JÄ ’lÉw(‰²ôM±ç.<œÔ ·Xš J²0s„‚¶Îʈy'})ôãE«ÐFÌ'àõ$,Ž˜ðR,Í1qfÂ’³{K¨1¡[ž –*É (óÆv%¢´ª‚’v±'1°•‘Dl™Cöx¡¹œOa¡¹œ—Í»é`}ÊBs9PF¿Ð\š 9Ý`͸‹21õ. ˆ‹;à@z’ ÚBr!{ÌÞ{.ŠÙïÄŸ’Ë%±)âå /í’ËæÄ…ärœ,$–0§Å^+Þ÷ê™™:ì½™vØÃÓ¾Ä Ôñˆ§¨cfgR§%þ¦N]R]ñZuų‹,ίîƒ8ȺWâDÏí?[w\|q• v×UpÄ£Wá¯_P"R‰T9ÂPYç ĨF)F_8Œ1:Å¡ŽÑ;‡ŒjrȤÚËQ•Qp޼ ptfp‚#8$å¬á@Ðà‹KL0;qmÖ™ØÇ©ÁG^ †r|kp–c`ƒÅ'¼æXZ!£mƒúËÀA»±Ø«…áØ_Ðj¨˜AP[&$ƒªÆÀÌ“®:úIl†Ó‡è`I‡þ›x'Š*ÜŠ×D8¢_ðL®.— N ÅågŽ =Óà&ç…öÚ oFl‘G+É%D(yX·ð[õ’ÇÁ¼ÀÛäÀˆ»òšîÉ*络ãI< ¿0z²]L¸/v8aÎŽ8 2,üV€-iË´¿ð[¡È§¬¾¨-K>]µ{€~Ù'Ì¥XÈJÌ`æ‡w¿–Ð~+ô>%‚D&ú™EÆb…ouˆ ‘èa"B¶ü¦ä…ߊ0MæŒIÆ#êÙÂoá;ðüó[±Qæ·"fsv£r ?PŒRBÁL„vöÇe£ÜP2;–¶Œ€‚.} YqøÊ¹ûy&09w/k~ÀË wŸfÖØŽßŸgóüAÎ ¼äÁ̳¯,<Ÿ7 ™\ÒlAŸMêÛ8µ‘<â“ ç&1O ¦Ðžiü 5Lpáûs¹ó“ð“ y!¸"†µ‹‹ ´a!¸bÉbTÙÆ"ûË“OüBpÅ, bxQÚ8÷™m3f’”…ଷ\1eIc7³MêBpaöL·Þ0¾°ÃÑoiÆ'‰3Ý“½–˜œà {6˜¦S~+FQVñ0­¥.üjY_ø-Õ;ñÆLöØL;ìÕi_âùéxÄ;Ô1‹9§%N¦N\Q]qVuýÄŸÕ5ŸW÷AübÝ+qu?ŽÖ=\åBÜt•qåU¼ÄÝW”@ÅTÂe¡·TÜ…ÞR•zKÕFè-Õ+9Пª7ü§zά€©Â3s`ª¹$L$ äƒ 39af ìófŽƒ ÒQ„äJºÍ:gÎ…€äL˘8:S7jgvÇDã™2[è-Eu¡·&ð ½¥¶Aø-µÌ«‘€_íjª„8Ps&ä‚jžpj…§PË)\†ZWá;Ô %¢VZh5äB­¨±úE¡hÔgGý ¡zÔ÷`2HÝá‹Ô…Niz9B;©#ÄÌÔt•„»RoJÔN=.©£^·¢Ž›t¤ÎŒE@¯:‰<%¯¿\°^¦,ËtDeåÔW•ÕUVv@]^Ù%u‹e'Õu–ÝVïZ$B=p‘vÑE¬¦ÿÍ/ïþæ7,ηïïðóEJÿtGÌûͯﶉ—o4ÇWsæöÔµXå÷ê/utÏvÒÿ¼Û¦ªö¿?ôÛ÷¿wœöýïâAè? xÿƒ¾µi2K(ð0rÒIftéè÷«;¡ƒ‘ÖÊ5"2禅ù›úÀ'¤_A¾Ÿ `ÓÍtÁ¿_ÝÍAÌ2Hj`3‹W–ÚüÒ¦öîßx[i™Û,á‘uhΙ¹M‰›sø!›¹É›%ÒÂü=ç6KhhÒ€Œ\ºÐ¹É ¤Æ$5°™mÛ:µ±mÍ{šJþFK\Ø?8´qäi;ð÷Àž°À¿¡ãB˜´g/rÂÎ?ôgópÿtºXÑÅ£»FB£vŸ3¾H›è¶ü&/bk£ïmÊg6ÿqt¡c|[:ç1>mɰŽò,¶}ñúHÒGœ>rø§ô=¾0J}'m(,õ@ ö¥7Î/£ ´ùEûß>Œ/t†ãÃßC#ÚmoàÀ£[ß˸€„kPƒ›‹ìEšˆl×»÷`Árx¤w¯½óŸ¥=y éñÐë#©ûîAýo鿸 f·Æ§¬~7×ô^nïýEßôÝ~ÓÈEýravÆ}ôÎ<"¡7‰ÈÏ* Ë…Kú3â7)Ÿ("þ3ˆHúh‘ïÉŸCDÚGïLù rÑ?º÷ø9äâ {WŸ( O@«aðgvdcë‚­7 ×Þ<eñúHÜ÷‚Øuû#3ú„ÜŒïsN}wƒÙ <¯.ø)}t¾úetU×G\–%­ø=?”–+ÿ-Þð‘Æ->ÿŸë!»Ím-ösÛx_IÄÃækWIa7}û!ol.ú\–ëON>îöïã{¶ì—«7·MáXƒ;¿€bSȼ\`Ì!,ß ¦Û¦JËqYãó;  ׿ ÿÉ _¿æŒ9G7J5Y'OWá›ü•îÉ ¸6"Ÿ.ÿ@zW¯ß.e®©9¼] ÛðùÊõCRãäóù,òãÉÝÍ^<Á©ô;Ú×oWüñõÙŸ~Í/Ç:%Ö‡_aqHxÜGÃCÝ_ ‡×†¸vþeü‘×s¹ífªã:¯©™èÒíRúJIñ±{+Æø‘µê¯Ý76nÕÓ{ÛÑ­Sñl*fÌW®Lsii½uŠ”“Ö¦=½v9ßȸ:¼Jfb¯[É=¸j\6ña¯’£ÜªË·$0Þ[­0í-û½yÌ|óõ†æH·QdŽ,ó´4ÅÊ…˜G7Êáu`÷ðSó·]iáðƒ6m{~g¾Æ‡—Çw|MÏ¥Sl¥®cOtÙI¯Xæå–JšJ ›‰Œª}w¦ðß?¥¢±÷qÅ@ïç+ßå?¾Âr¬Û;gFtã‘cE{;³Ð7qº óÏÊÑ]ÇÖÜhÿ‘‚ÿn18±äúV5°—òöʶ:óáÙHÜuA.9¦ùÒšÔÖ¼Ür¡cªH³•ó«Du×ÎÜ WjVX”*Zã³ë‡ÈJ;Ї³óq·\ ‡ó}(W³¢]wƒeHã íížmu[Ç®å™ 8‚okÄk02úg†bwYÎXÓpœÐüL ^ÏZã ¦e´ûr5—A|{_Êzgäx°ô­3o®QY‘ÅõTö·Úñ8o¿Ü Ï”`Æ×ïÍÍñÔQäµîÌ &t§2ã7XÝudîqìÜ•øeö>°é6ßz4žA!ŒòîϾ£Á–ÍåÊŸà’@G×î$Âó­~m^û9½-~<ñ˜,É{ZÅšÊÁÝjж 'WuY‹›4f•¦S0vÑ´bLÁªÜÖ;öv¶€‡»N¤6¼‡ƒË—v+´^ÖËìjßnÃh°ø¶U|Q.^w ðã¾åó]ñMŠrõÂ`üô[«· Ž¯Ê…P+°ZÙª`µþø,ã7{B²ƒ°súiíâÌT$ü®XéÿªjýÜÀ`üž¤ÅCoÞrR ðšËt›¶´ÆX˜í=XgSípª¶º­s`UG˜òžöº:k’ƒ¦°*ÆÇ]‹‘¾pÊ_‰‰Ç…wîÐʱ¬øÏo¥á­bkx7ûc–ýÀ`]½MþQžë=_îÃ8¿ñÃÕ1Ä« ~ýN­'î!͵Jß‚¾­Sý™ý¶›vCDpp—àà|ÞÝUuïæuÁ%ÇZŒ7—x!Z÷ ]ɋϾÀWÂÀ‡’|,ûø°äkñxûå YÐíá×£“\R¤Äwhq7ôÉ7øwȰi©3ö&6¼]_²,©,W$óÁ A?'ÏW¬òƒ¶‘±$ ±åC¢Ø·Ko½ Ùüë±ø1ôõò³“m3¿ í7zWݸôŸi{Ëøø¼V¿åÞÐWtá]&ç»ÌõôÞÇÖŽjs‡7¶ØÓV[Wó„¦Ý¥äRüÛßÎŽH|øÂU‘΋ÄÿYÿü þÇõ€èãâtŒþj¹ßM‘Ü c“ùk]ËkHoާºQôaQJ;cþ,uFŸ„ó[´«xQeµÞ×74¨æo œW¯Da¢7W{ßà¾2†íDŒ‡5ÃÖ¿e”·h †vs ëô[`Ž¹Ä ûa¥ÝþÍÛ‚w[¾:iÐsV©·×ã«Ý¹\Xj¿g ç…õøú”w樎3ù¥Ù :[ßcNWó3‹9Þ¬uåV`¯·Çk—c{~ ±VýH *ßz-6WÂ_ åfïAj'½Öxc¡G·½ v»5Ãw³_ €°Å°V_ ¯~Íÿ;L½÷&³^g|F‡ÙÓcˆìZÿg˜“q½ø2†³ài3þX0 Jgd›íôÕyÅó$ûô5-ØhÛ0ÅFÁ,LÚñ}e Á°¸¶¸»ÕŽ¢Åt{[2Þ®ÓV1ð«GG·0‹^ŒÏ/¬(ºs$ÁÚW„gÄõu‹FĘÒfmiƒò⡾" Á „,râŒþd@e‰Ja h½oAå·¼ñ° ˜/1ë_×¾ÑåmÚ7}O‹)ÐfX¤Y¼«ºÝ1sµ¸ufŽ_“Ûï|ÞW³†‘çãHìõ‰^!ù{:+O~øqÝôÞD¡`~µhÂj¢ÀŸèÑ>w³/LUìê,g£×!ZÄ|™YÍXB´¿ÅŠñ:´r=yéµ›MGÿäáw“¬ûÀ…ðï4£¶ª(G4¼¼´ÉØzoÖ§´müÇÅä.n'|Ý•³Œ»Ã¹)šuw§šƒ×6ýÙ}Ü%šàšç¸E¤üSBÝÇ4Šnê¾î_YámœGÛe–]7Š·O;©;«9 òqBs½§Áºwjž´‡ÙÝúØé\MüÁûÁë-3>»àü,áæ¢½ŽT/üøcß&ŃÒbàŽ/.«忬ﯟèôÞÔÕœl¥lEž†RÎp”½ ¯¥ïj#„]ïƒüó £óýÏ‚Åx™_†=¹âÿIºvÙ^ÉMw‚<§à°{w|Üq„ï©û6g‡WíëbBÄÜ\TÿœNðc‚3þßwí}9%oÏùz­àD`ô¬nÐÖ¦§Ø'y–]Îγu1ç%˜DÚ7Â?ŒZÙ%ÊÐÀûÕ6G喝¥Gi|£¦—¾¤LŸ³,ùÒ‘ðS–et“ýÚû7<(woÅ’c¿š‰Ãb^?=‡Ü3Ì{O½ã±Ù-é|gÔÍ#b#]P´‡ÕÆZá·-ÂÖÌþň¦%mÜ‚Âãòü%:ö*ÂÍòt…ÊÇtÅà—“.»²y%»åÒ´Ž/hFÑÕNº_áÚ†(ǧ9g©<–‘Ðr•ÆL%ž‹Š."·IÁ¯üa‚Àc{^ñþx–çÿø–ãmU°nW¶?¸²IÚ992?[ªGvÿ‘ã”Cm£«xçFßîþ_^WÁ„d¼¿ æÆNÀ"†–wv"Äù³Õ·‘ÌÊØàá ²œ(\Â.Ê*î² ²p¯û!¿0Yê1N¡>’OK¢ŽÉ¤ ³Ls:ʘ›r“­šL†¡…ø9N×¶Y:7oâ§kg„@8¥5]ëdË¿ÂÚ˜ÉO]ÜwÚω7ÿšgwL+^>—O4Éo;ÛzÎiP|ûyV"FG¢ùW™["k7’×ÒJÙäÜà‡S‘‰\×ëæ|žÑ±?jDÚ¿Õ%ýÃÌŽÊÄSØyò{ŠoÜý®ê V)áq]™I[ ®Cº¦ 2‹•øãL5;àR“f  ¡ä}Æ.¯eâ@ ~îÂâÔGNîñ`ãóž]Å[9­€õ~:Ù†~ç6m[ î<ÿöLžÓ£Éù3>jÇÁJÚ²]0žü·Q>::áÞ®-ã‡ÞOcHÉMÀJ·?Ê$î¨3…PNc.ë½ÓŒC6?Ž?~…Å¿°¼{C`úÌÒÐ<ž×ž9Á¼F¿ÙÙ! ž¾œŒïÎhì¸Þs¶ß#5#{4.­©ùÝq<ÿ==ˆ)Û|Õ~âõ$½‘…鯿kµ=ê±Uþ<Úo­I>k]sšÎòã$3ô3ñ(Y¶zCv¨'õŽ/gÑüà~²ú‚ÿîãùùù•·õx‘Njl‚š‘$Ü>ÞÂH;ž™g´ROÎ|Áû ÚÑaœ$¹û†¯'9c°³Ë!ÖÿÂ(¦·Äï9ÏòçÔgÉŸÕnPë_k&Â4¶©’Ø8ý‰?7 ô 8âµñ Oˆùþ3W`Ênÿ†®gº®×c‹ü-Ö–¬‹Ã”O“%€ ໌O†'¦¾Ð׋ߨ ­l9~æ–µÖã694Ùóœjs`óhþãÓO`ƱTÚæåª8>!òÞe(ìy—““6kçÌ+¸J®Ân’7ïÂÿó3äZ»;”ŒõhAêBëgçQoY.§)l Yé’OŒñ2¾N½ÏÎzpä¼5ÊäÀoå$Ø…ÚÆ¿{}a ãz2«ö-!%zfxÁ …ß¿/ štt²ÄU„tƒ_0T|ñBÑöøŠ[8?!°\_Ú{ú¹Ì°aÝ/¯)YÿuŠÄ‘ ÍÃá!HiyMé«1oT‚ÃŒ?Fýyâù±—*y.Ûו~^ç“^B¾•+ã;ç36šXðšÍÛRÑWÏ)–‚/Ì^K‚ >|”ñy약‘ŒTv‹9f“¹=©øþµñ)Q³0s]Ù7ˆcåéás!¶lµž8•–Òcáóü(6’Ã5…›þÚ”¡/­áçÓÀÚ"Yá»×cpY¸rþ6ÚÿôÔendstream endobj 954 0 obj <> stream xœÅ=Ér%Gn÷}cN¶XÊ}ñÑ1c‡—‹ŒðaäƒD¶Z w“=¢Z£þ{¹T!Ô«G²åÐAÕõ²2$v “»‹¼ø_ùÿ݇7âêÝ›¿½‘éíUùß݇«¾}óÍ·*Æ«¸D§œ¹ºýñMþF^I)wå¼^¤×W·Þüõôx-£µ7ñôp}#ëmêôŸµ¶^ùÓçë­Õ"E<Ýákㄾ¼Q~±.:É/×7rÎxº'óýLæ+ëx)üéûô¥‰Þž~Ms[%U<½ÍÏÑ„ÓS^]Ë:@D¡O?‘¹ßâX4¶`¿õ€`¸”eæŒý”'1€$ÁæG|+€îôwx«„ÖÑ7‹SÄ ÖH‘I¦Oà;#•P$ŠLþNEG¿{!*H1É ònØ.#]äcFP]P‘‹ŒºÝæÿ¹ý÷7ÊEÜ%à­Û{à%Š*î Ÿ½wA…mºpú Ñ6ÚÙfpH[ÓШÐY+ï*Zø _§îaÞ-k¾|ß>ãè`m%jšÎ‡ÞTo¤Z¬q2cJ!#tûß„Q‹p»vzñ2vB€C¥i±|ÄÁjñ"Ði©ÔÝm’A¶ãáÈ23LAg^®o,0…Qút{ž“Ÿ2ÐQäxm„ƒÍ£x1¼L!!Ìõ¶"f釔kËs1ƒí0J6R—`2°_fg „Ú Ó°Ü'ÂÍ?ðF1ÐíÜÉàŸÈ$OTT€Á[—´ZÆVZºÈÏEfìâ¬2óÛÊS¦ñ»Â ¬P`ë$]°pж@–Fü’ßêhΉ¨Ñ>¬“Ûñf°FÆ# †µE0ºyVò}?ŹB‚êÓfW¹ãÐtn2_‡Rž0PºQD7ƒ3¡…–Ö5 Æ@3(AP_1–’.ô5 Wr‰°G™À 3—ki€ ÒƒlÄð¾%Ä:÷}FÓyÇÒ­OùãbÍ«€Å(ª:Ä™ªÆ)(tÈï8¨Vàï#- H€mÑU@z˳ù`:.Z×­­SxØúDç<7æx}K$Ž~WyKŒÒ=°l‹¹Éèe¹1>cù/×xÅÇØùRÌOg '̈Áǃü"Àâ@K©£m¹ïÝܾôZ=.B¹“+Î÷æ~å§ÂïN÷ZÝÿœÝU0u4¾ó?‰çZ= ŽV¦#Ò›õ½"<˜Ê éíÃ?ç·°ûÚg¦¶Ö!;Ú@ €c«}’ȳx½ŠÌ ]cͨú¤ÏÅG·•’÷gb ïgð`ŒX‰ä|/ú%¬,Ö˜ì:ü`ãÌ:bäÁÛp­Áƒ0£cl`Œz™ D@¬“Ù/Ûˆå7ßj¡¯<ˆ¹2…e€°F¦UÆJ•¬lDû!†ûÏ7·ÿð×Sh2&ªú“¸¾1@tŒ“Dë—øö¾°óµ€I˜þÈ#_cE¹»".£.3›é b¸Œ~eÎcc¶e¦3½Â6á2ö5–ÙǦã?wpÅlSÇþ5VÜÇqH¤ÜøˆW¨2šj½_¢7L Ý6øŸ3o!äþ×4V«(_ÁŽàŠŸ‹T½i¼⢘dÕ›ÞÛãìó}KR߀š ÎÀÌ`0Ôyñœl¾@ ÏÌŠè FF7á†dDiDZ2)#ÇH-8ÚWÌIúªó$‘9ý•·1L`N-À‘¶îêÆÀìÆê<—KŸY©LÈS qª)•]Âéö:b¬¯ÑÐ#`y‡€Ä‚Î8„}›#o› N§]ÑÞ%Kü*°AI]•UèèÄ6ü™`§Òf0†ª€ß^½hegÑ#ZyÆÇ˜”jªÝ-¤‘/0œ ·(»S'°Ð®Ù$ðÞâä¤ÔÒ Ìl™ 9‡#ÀNl¶†ª»–*{9t1'T‰F~¶ ¾OZ% ìÅ9R\›6b³ZELA68+õdhå<É”· tu‘)^âW@+/ØÀ',Ò~N#Í!ó13‚Ó¾×u4:4àóª Oÿ–¨d| M€I™s¾Éú÷jÙ³.Dhó—­âR¶$öÙý>º²šK{N’û\Ò¿$Þ`ÉàÄ]©.™©‘¹F@¤2ôåLŸÒaB”}©…^YŽ(„kvU DL—š(\:8?S‘¢$›T ’A¥yݯÑ[B±TÅGø„î4 W\”_C΃¢Š”6—›dü.‚ýŠÈMå÷š ¡¶±4’­Øj?Ù»š0•¨œ¡V›J‘Ä"f™m{ÐþhL¥jÖüÐYÚ1ø%è†5sšÅzt¥ÒggˆÎ™4%F;&ÕÎ/J™‹wªÕ„¢ÚË'LÚ=eoÇ“0Õ¢Ás¤ïkæî¡;ú¤.,Ê4y¶‚ä}†ôQ›çßÀnÒûÚ9x¿ï´¦!ȺÙ+Ô‹„ˆ§YW¡Y%’Ù\ é^É,mgŠ`09l¬ü ¼Ú–JT*2³ Dšº¢[› -¶ÙPf³)þDû£Ä#‹†Þ!Ç·^Õäµo1'P«RÖjª^{5*C:wúîDhOçásñø©7ŽÝMTO~ÙÙÂA¹ý:õX犈ýÝ5A½¥R±ö?ð5ø=JÛÙö§g*ÿTÒ(#¢íNêm+슗hƒl¥€½”íèrµ°‹M„Xwv¨É 2ž$Wý&–ì!/ïa™Ë’®BÅ–e¢ñÉØË-ˆ„ÐÞ·‡ð Ò"Õ @™lü8×Ôt–Úµ0’àâ"&“BŒzŽ“M™¹·ˆA”²wÐðuoe2nÀð\iís¦î dz} ÉZÒŠB¾ÈGÍ›Ç}w$:ÍU=¹è-{Y˜šèc¯BRˆßšÂç wA˜UfQ æþû:(ä˜u¡Ôèöár)ìe ÛHk¿Û!=Ón‡da½éAÐçÛ}D+ fö¯¯'U| Ö½ú™P¤Æ3ÝjHúJ¢PKô½D¨î~Ð;!½Šà=9Å9‘ûgÛiÓ%SŒ"eÄ›Y¼Ý5Œdç’ö¤`Ôr‰\Jj*™Åÿsq]ÆëƒV-K æ|•š×öv÷ÌDH.Djm~Ìx;­‹¦ßæM÷aæ”>7´*4hÍÑÅ…¿a¯1¦8M7˜“ØTŒKŒ–5\0WrBA´,ÖEÓOVKñk†ÜûÃérËà”{kÒªsó;% #Aó¨^!¥×ž—µ®+%á û4:PÖ›ý( †ç^”7¬Yw±¹‡W §`#› `ìx šÝMm¿ 3ÛRŽê+êEËiwD¹*:%¢Ê8µÕã\0Êfc+ 1Qf³›ô<->3W«P/­zýæ[-›Ž:åÑç¯Mº«Ì¦/=ø¢´¬¯%6Z#:¢¶)m…K,€ •*ùƒ<ɇ„P9ƒ‹GQ•ôt@nŒCóŸÉЉÒKˆªê{ˆõý4Q\&’}sŸÿáÐèd°’Ä}EÆ<̇$ö˜Ë=FG{µóèÁÞ]k¹hQÊeŽ–ƒiÀ%sgªˆàk¾ ùD¦É y!r9U 1]¨§!ïÉJdöB;eæ›(¥®[ž£Ak×â”a9nQ|ô—¦†è{æxy" ´™Y=±¨ítJ|ŒáÓ{ôal)uñ!úÓ:ið¼¬GÍ ׊3oë|»#qHˆ’$·’égüÙÀ }(¾bJ÷ämPýr·yÎõUˆ>¯Á.䀈£#6!“Þ{¤sÚÖGTJ¯Wm(¸¶wnÏ { ÷%ÙkËÕo×!€õÛIwIvÌÒ ÃŬԲP1{ì&±‹¾ àñ–E‚<ÜÒÙ†®™}OBKš¶ËÝæPîH"šéºìôñ¼OˆWÇÈj\ª³êO~o×w]¢/–êÌþ<Ç‘ýå8þ—< fB;æÂ×ZË×1óÍ+T¶Ûa\NšršÈÊ.¶KÔ‚¸Ù yc¶hèøI8Ëjäu›‡Œ¼=Ä`x.Ç«E]~$Bƒ§(Ù>ò´ÑzÚ6¹¶Õ&þ”¬ßRótÚ®¼yևɾ¿¾¶k¥³‰xÞ4NÏ#å~ì|©ÓªmÖjmôk»Ògyµ§¼¢f6®B7qßPc­M±7?ýÐ…ã8_|NŠ1³\5ºkx qÙR_ÏàY„tÎábPX‰¡Û0‘UíwŠ$²ÎZœk¹:3£¥ ¯£uë$“*ßâD­R±£÷®9ŸCÛèEONŽÝAGþrÐÉYP×òX› 0‘͵ä 8χjBF&7Ý4¤.d¿fò¹ä-ðÐ ¢ïŸWÉ&`-ìÓ©’˜A¾IÊ‘éÅM@ÐÐ^rG°j®ìL‚¿ú9¯!»#Ñ«¿ò”g5ª¿ ¿Ò"pîñC㬈\}¦4™œ¤˜VÒ2ªKYgiÁLm_à¤o‹¾-ÄZoì™Ø˜Ì.kPÕçlwÏ”&æçï+Äwržõ-¨¶ç/8J™| ÍJœ’²V9¸pà? ÷4`¨Åîíн¸×~süTÊ8ÛÈAY÷Ý"xDQÄI·Èà= g±dÎç9MUÀábæÕ`f9ºe¿mI—>ެÁM ’í'go¾Îí?ÀÝÛñB aøTa÷ØW%èsð:,¸^O3w—©Þ ÊÒÄìšm) AÑ6$~Æ1t¼ÚƒËá %XÓß#Nõ›Ànê‘3c¶a8pßõŸ9O3È;€"åB Ò[‚Cð à SLÜ9_&Mr mÜyxx7¨Ü|[/ºÆzýœ=ˆÐ6ó‘¿½m8ó·«)`Ӝ٧ì¶vë]»ÀD³3º/smñÊ[õ*)WkÀºÛê ‰©á0TÁˆ?Êþb$««¤cÊi$•›)gPó÷¨'ðp¨_òŒ[/¹r/‚,Y}ô!`Æ»™äÐéuüÎNOó¾ªùÀãÍjL¢áãö³Ç0}¬¼P 9I’@™’ÎwY-XZ[Åß ³Ñ]Q½JÇ»<õ¼¨²<®£ ?É‘j~Øb=€‹Ø¶BÔž9Ÿ*Wžžx()ÊC}ÕgþŠHíë`Á dÛ>ÞçÞï:Šy’?òÞŒ u0Ï÷édxŸª=[ oÀ²ÓÓ‹Õ8àwRu-´¸-R¾ØÃä7ª^k´j?³ùÞ‹yÖÐãý­ž¤¦…t¤1W1uBNÈBëíE¡ÿ[wÅlŸ ±µ,º*j%êCž»´_$qÃ^gè^ºá9¡í¬oê_x»ãö×a@28eæ«hGÖø˜EJ” úU""#ðvõz’rËÿwH§@L.@Jcb¼ƒ²“G\Þyuny…©‡x˜¦Ž-­ðåâªh¨¾·Ê¼1Ïì¤nÔÀâì% 4M6¦ã6,áãÀ$)¸ŒNÚe×fIÄê»ë[É°Ü ˜©àf ,™ WRÔ†ýî ¿1êÉP3w?±m­­ç%kïÈ:óF>ðXҶ±ìô&ÓcÛÚÊxæHݘ!Ðï7yøV±cþ25ù”Wsÿ| 0ƒ3,Ûd2U€~4þŒüöwX<^ËêKoÔë%a<´z˜HÿÎLÿçJ¨Ü´9:¤‡uEìðô}ÙBÐ:ƒ?©1´:ú¬°(ì¹ÍfÚÛÎï±_0¥þ"¹X{@S¾Ê¦{>ؤ²Š†½=ˆK;ßgRhŽÆy8Zî  ‘?Cp(óRÿØÜ®‘}½³‹OóÍnÁO‡¨ˆ•ÍÄË>&»Ø[IÇ¡ßȧjÂknãóÆ3I€¢^¤‰îêFãM—ªü‘ÍÌŸ|cñÿrûæ¿à¿ÿãßuendstream endobj 965 0 obj <> stream xœÅ]K“·‘Þó„D‡OÝê2ÞõÉŽ]ïÚ±Û㥃43"åå’é_ï/**ÔôŒ†±¡ƒª1@"‘È'2þx“<ú¯üÿæþJ^^ýx%Së¡üïæþðûë«ßüEÅxˆStÊ™Ãõ÷WyŒRç0Á¶–F‡Éuß·ÒšáϷ榡ßÒý5S²Ÿ zÄ”²r‹mÖÂ÷—YŠÌªV»Œ8VcýlW¡X6ìªÉ[V§4L€U„¹^le'Â=’ Þ\ôƒ>nì\ߦª âLKI²aɺY8øª: O$÷elN#AÆOÎJn1ÚåPíù(kOgîÓ–ƒàLt^ˆ–«P!K–ñ™¹)ç¥ðC'މ¶Y¹É{üà  #Ño•òUq™©)S*,jƒ¶©ûÍ‚l·ù*>þè) ´O3's`8'´Ô'd}GOŸ¡Ý{®ø³3¨îœAåÁKÊì™.š%ÛlÂ[¾ÜdHœnÁ›jjx4yœ„tk@ó¹ ÷Q “Ǧ»iËo’bI1,I–ƒËÌ,Y#•ÃQé¹ý½ÒÎü–$ab’2&!Üx·Ø)ÖƒsÜÌ]ÛЖ© ]Y­BˆÖlýj i’_!-zÃõIaÎûÜøxüZeŒ^Éã侀2è+_–ªîaó›¿8ëy„É^Êy›~» ’»w™°Ã²îª^Xáë›”B& ªÆ]Ï õd66Uê:Îëuûç $@Ân{Øj¾ÒÅ[áùÀOƒ)ÿÎÌÉ› %bÊ—›,¿v%“Ô¿*H™µû'¸;# ¹²•ämM¸ŽëfMh:9¾;iCà¾ÄF|?dœ¤ꙄScÃ/~Ç„ìûÞ1 ?G˜²Ù°Å9ML5À\{2W0ó¢šób2åB»N²h}ÒF2EËçÿѧV*‚õ_×W&€.^~S {øùJþûJj!‡œ ?Ü£EÃTÄÚòúê¯ÃÓÁzú¡5®b2Âçó— nï—Ïï4Wâ§$¹aa¦ÖÐ÷­ÊâAÆåL7µÂŸˆ$5m@ˆ=Ù\BEôº¿RP7È?·e$ö~òú`Gô VÃ.0ŸÅNz¥PͶ°º¶mXJK9 FDT ¬¾z!0wöAXë^kìûqX[ôZQµ‡>èµE‰þûnäv/ „}¯ëˆÊÀÙá«-- *Ì ‚Ù¼G¸D ª@ ù².ùK襬€WjjŸLKhð¸Uñ~â„é+7‚›T¨]8kX¡ÀŸ!‘­‚> Eã !ç>|ñlÜ }WˆÍÇͤ]Æ)r£$6S±V(ņy ß=6ã2g¶Óeà•(•t3Q*F”‘V‚µ8æñˆ™VRÀ7F ì¡HyÞ_åéúïWggÉ»ˆ‡³Uˆ3l ewRj‚õ·øó2ø˜þ ùÎü/.Aƒ¶‡ç+›?½8Ju:[§€•;J ÕH‰ëc„ÑÀÒL@³„k–Cn¶J¥H†ƒÎ‡4ôqÕžLðøƒ?šSv¾^²AX%´$½_òE-sR„<iOU ¾88:‹á É\aÚoê×-(ú§-á›[BTˆ5FJaná½6”Uia½6”ÂÜÂ{UqwaÒ«Þk­çÞk­ç–ûV0Ãz½h'@;ðwC8•ql[ •>kࣱ_X#~Ã5 c° Œ“!Ào‡­Š‡›«¾…4‰JÒl+QÔÅ*dŠ06aªt£k!í€UŽ/Ãc Ô•ªQ†¼u†Ò DÛB (#4 ÌÐø¥ùŠ(@ÊÉÛº4‚Ѷ :nÕ•ÈQéÔfYš ʼnm ‘%±å-‘"ˆ¥Ùڣ߄›«W‰ ÀÖÒVìïW-¯Ég²¤®æ5£˜‰hF"ŒŸ$a ‰Ã¬ÀŒÿ¤ÁNV+/B|@áÏäqôÛ˜$WžN <èZH÷ã ²  H­!n‘µ‡„·šå#CB¢k þñ„4ŽV*$,Ò$uE„CÛ’p™w ·ÍXRÏÀÖe`(¡‡ FÛB´@̰cØ8gðájžôy‹à"êÉK®eº2 P‰Æçå hğ釠ƒjüÆþufò¶o€T ¢£”Cý]¸¸Ž¨\Ü·Œ2oábå!E$*ªÃlâ ¥D$±_ß´¤=R`4°®²túlje ñlÀèZƒ…Hk´ÈN´2ˆ?(ÈAÞ.:-¤k ¸ï¤ ÀðŠÌñò;sC‘9¾ùI”Ëî(Ü ÄàVpŒWv ©À˜Æ· € aèˆ$Â(amíÑïeQŽóIßBJÊA>¡ÓzÁ™Od„¨šÀø¤ojq“^ؤü¬º®ôgº®m!]Wf­º®è>â’Ù[¸¤oaz¿p‰$7ºöÀfI>iƒ¶…¤YCƒ,æFC#»…I¤Nž3IßBÂ,<1ÇÌ$ËïY-–³Zd?it™qV‹UMf&™à…Kú¦’ ›Hë蜢öè·¿¨mRmEyÞ¯Zˆ…±GÉÈJZ)`TU§Ëß“2½¹êX”psàm¨IÈ€M|à4Œ3~˜é¤®…ÔAÚ’LpX5fÖP.Ðx‘éÛ¾%)¤Háÿ¬£¡²#³~­¯æ½o!@KËê,šv^H‘E"ú$Î] `TùuˆøA 쇪֬'ÿ¼MZÔIïÛŸ¤¡ÀdÊU_*È%c_ð^þ>[’¾%é)¸2¾ÒkќԲLÛf_“kÛÜBA`ÑÐZkÇkR‹jI ŒÇ¥o!ÛUv¶8;Õ;Ö0'A±ßUëw-¯Y ™-¿àa Ÿ@SeÜ&nªÜÒµÖ…LŠÈBÛC+Oß°Ù‚¼I{'GV/ É,FÓŽŽgw‚…=X=Ýžh©(‡\>næ·§³Kq=ŠÒ–b%`é´>\ÿïÕõ¿¿ `Ê ú«EÀWFZÖúÞg¿; C^Ô ]î4^6šy¤Ú©;õ~wÙu7ûÝU×Ýnvãu»Ía¼\¿èê×£Öc6ÿT?U‡»…’z`ÏκRßåËÐ|†­±:DÛϱ+Ùèô/0@z€Äz¦æêäõ¬,Ì-åH5ŒMÚv:/ȉDDÁò‰D:‚¥NX>¨ÿãt†‚2ÇëSÐ0cv+õA lж¾pÉvù>#²™f”ÿ¬’bO*!h“X åö_D¯öj~ ‚S%ñLtM‚ç1‰/IµPQ=sâ‹’ÝäokÒ÷¼%se ‘ÈÙpi©FØœšRd2¢*^FÀPmÕL®·1²á/Î J^9ú,©®”£eaéøNRÆ &±-L`ÉôRN“çÙ–å¢eí¨îós·¤»¾Ta‘†Ïd•ÛRA.'o:þ!wKAñI^T[æÊËL8ýLí.Ø6£~—— ?¼ÓOÂÈh ÔÙ(/™ .]Vx@–Ê%FùÞA•#ãÉ‘¦¹¤Ü•M™+(Ó³@wEªZ“¯©û.è„>»9mìn£ˆòØàLQà©•‹)prReä= 4ž‘å™Ói!A>Gì*”>œ¡¬(R4ÖOˆGÈa<~ýu§B»ü&išèäRYXÓ˜wËçMÍhfïE•”sî°©mA€à–šÅ_NzËíEl©Ì¶":­ žÕRyØæÂ•¥ª©V®W"‘Å`]j­—Z³Üå6Oˆ˜»1œoËZ”]Íîh5})Á:Žd“ ºpÙܨÊ5D3N#ÙdîÆÀóxŸ hÕ¿1üÆÞKÚ¤ZeÔ3ÿM-}ÅxT¡sWküÀ.33=Pe”Ê»êŦp;• ¨Ø#´ÕЕ²#×lTC÷UvŸ`uvuÒûøP‰âÓÊè2p½#^­Aë?ò"‚èkÿ³Ë²¯VÉeò«$IB¤.ÐHù³j$™Â­Gi¤„’;ÞêÉèáÖ»D‘hÎÛ‹äÌž¥ ¼á{½u'ƒk§®¦8Oî{¿’&~ó&Æ\–“X9û˜Ò4Âs™üxyÙÜ÷Í‚oß³/î¹T³$£Ði#i§ç|?¼ûÃE£Ð3ª wo­Ò]¡ˆÑ†{©¯™µ™µ‰À„ž—¾çjR6’ù–ínZÕR–l Ç´r¯g¤ûŽm-ïrW@{?*aNõ]1Õ®0l¸Þ¦¯mK›![U\—­‡%öãúrÂI‚%¹\¾/† ÂÿE¸ }ó(3´¡O3³åÃV©.7Y¼ŽûeF^ú/r!ç誔w§u·WжOJïreųÏP¼Ëœ©/iw;ß–x´÷‘`¼Ï0z«(HËy?)oR å U‚4 ÃWö3u!|š±WÓ\$Ç2DxkyðžÝû¬®‡l0dšÞ Õù(ðî‚–·é¾ßží‚`¡‡Ã'p‡§ßG‡„¶꙼ċ¹xÏ9üªsUt“…Ú³‹/â›ñ-§R :õÙ–ï»ÜA*uá1`‘ËñNÅ/AW*õöÎÅP˜J„_råDSN;b¾}‹Ÿ&ŽºÇÎ:QÊ[ÓµJÍ?³]X‡_[NÍøP#3=9íÙù…6”hZ9× bÿ]'Ž0[×–qfa¨rãéG_eA˜‘i,¦,¯zìî\rn:+%WW“PÉÄ€t«Àµ§ìúè´¶½y¦çV‡KùvÀ@,·ÏøŠ_][äå>úêÂð~oª¡ÇÿYŽÞG—øya§!SýªˆïXKÌí¸jîÜÝþxô­¼zIv1^ó¶»Í û5 ¢Éíl¸Ýæ¡òàÔ21÷Î@š<:7°o»f§,är Tâï÷¯–‘RëoÁ¶rßÒ û¸Ï«5ûï7J½yC3Æv³é¶¶P) ØÞP¥VÜEAÆm†­¤Áù^#¿í‚“”„#ÂñZmÄ3_S-¾e¾×GWv« ¼`°íCÐ^i¸wîø ëAé1J¯¸­+¿U¬h å+"&›ŒxðÅ®–«{y­­,é¶#šÕÚÉÇÞ¬hKnõRJé.4^í Çê…ƒN·Œ°}ÓlµósÎ+®nÙ¥-wѺÇ*hù"†K¼¦ùm7Îcdì§z¾p—§Ô^4]¯»‘·w­Õ]¥Ê9kÇϦdß-‚³ ñ‰×ϼ$ŸÜ#ª’8V2Y!Ò‰hÆ]pC¶—¡ÄͪyÅ„;ƒy5.ÒͶ²â¾å…"nV¨%!"ìhMÊhöWÑ&Çõ3tï3<5úK<¬„“Ürïf§äz/4QµOw—ÁºloWX¿/‰ù”8ôÑ*áS±ÖF³ŠÒÒ¼Çß½fí/—îo—Ï÷ GÆ?°ÎiǤ—ˆÓ3U\pÒ’Y¤¡Ûîi×´Þ'Oœ waFÊ#>:Poþ†—®ÈÏ&2cŽg>– 6â$;ß/³¦Z:tÉyª­u)C·LT–òÒ`ha[Ì`¨ðÕeØ‹m*˜ð.Ÿ˜<‘B'Ó§BrA@éÂÍ 'Æ0QÙA“ SŒ¢V¬ýîT¯óeàx¯\;?9±÷&–N•”£Lj¶ã±ÒVβp×ÒÀ»ˆ¬fYÊËÖª¸eC÷zR—糧\ÚÊ4ó¶÷ó=ŒÐ:=~bOÇ›*^_Š’Œ™±“Ôz9öKð¢pu:«bW™M‚¶•°ä׃ÑTøÍkÍ¡õ»ïÝm9#_õ‚òÊô†š‚Ù8‚Û r’¾'\=RZ=Štb¼z/Ž®Þ<ð ]ÿ)êÿó‘öy!e;õ¬„·žƒŸüf$=[©•ákÙ8}D2:¿·×hžkkùsóàù‰^]8·ò]BBÓ5c3*.ØÝƒgN,cR 7zÛèW¬›2ŽÍú¡¯L“±©+Ê6l±p)ì@6kØÒz|—¤»˜‰º]Jq·Ÿk]?»ªUãt¬c .a‰%ÁÿÝa–šdǼ;ÕúÅ×KëÇ.aé´k–tP( ðéU™0?7¦Œ¦ÊäæfªªJR,Õl¿ûrFØ,–dâ¼qÿ™XÊ 2ÂÆH´u•ÃìP ÄEIhñ ·uxe¬v–ýÃËùwSBZ±³é$ÊšÄþµ9 "s9“)4p鯏‘L¨PA(³ITGl$õÂÿûä̱… iì]Ôçø—RI›“¿Èš×gª’26›ó\N6®ÍÜgD:ߎîYÍyXî©> stream xœí]K“IRÆ8Ê8À?hãT SI¼`ÀvÛµ=°˜ÌØá ©¥™Ù™–4££ùõ¸Ç#ÓÃ3"+«»º5˜ÊΊŒŒððÇçîž?\‰I^ üWþqûD\}ýä‡'2ݽ*ÿ½¸½úç§Oþîß´ÐWqŠN9sõôÕ“üŒ¼’RNîÊy=I¯¯žÞ>ùÏÃ7×Ð¥*øÃ‹åò^:a¥:<Ÿïþ×ÓßA×N;Úµò“Òzz½Ý\ŤEŒÑ¾ÅketÐòp‹×ÖZaUîEÅH{9ªIkÜÕQªÉ'sw¿º>ÊIYåá%ö`l4áð©3ï¥ð‡×ùÚ† h“w×Gmãd”=<ƒK'&!a&KÛ48­­WmÏ`¶FkoâáG|¹p6ÆÃ§Ü‡è360+¼‰‰äáíõQøCÖ:á…£]¼Èƒ 0 îòÂçåIíðÉ<Òxx³ ãUžJ*S·3[h-পy=Ø;¼öÞhê³AÂ5ySi®–Ý¥–Ö&h¶Ö¢®5¬¯«k­ƒòݵ–~ÖÊÚÍt}´JO0‚ÿ$riéâ“%y»Œb^“iMtˆ#â¿ÏÄQè†p/Hsúè»Ü70ry»„9Ôµ5óRÁ_g†¦.kÐZ`U%¼®¬oº7¸ÒÞ¶ðC]áºGãätÈbDK$#¡3x±ðÿ›?÷žg$_ÃÌ„›<4¡T{ƒ·í¤mnÓŠ_j·?^[3Y­ ê÷äÖÏù¨9ÛÃ8€œ§_xWÑFêÊïß ¿Ð•¢<7hBe«•¿Ä—®¥G‡/;B™Æ„?›:ó@(I~¼FÎRô¶uU)ÁRð­ =6B’Ý>/=kågu“î±É„Îí”x…L€.Ž÷’&,ºœ––ô’¤¤N&K‰ñyNES+W55èG7kjÕ•G”J‹ž¦6í"O m³ºc¶÷¨ (o-atqÒ.äÁ}¿ØÚ÷Ëå÷‹Ù}¹Ü}¶\¾Ú6Æ:N2ØXW5Iœ³FçÞ‚ÔFlâ%Ë“ß_£‰Q`¨çK  4ÆÕS¬3ì?çÛÞÞñŒX‰ò>çm10^È+7E¯ƒÅá;5 À%У‰ Pó$>$•*vçì'¬tWÍCĘ̈eÂYJ! ö;>ØtÙ¬ÑÝ¡ª8 sr¨ÌòáPÃÚ¡ÿHŒ ö¯½l¹ŠÛb7!ŸÔ•Ϋ£… Í„^nçÕÑ>žšð²:ѯ¦ Hï¸&´“íŠTÀ¨œŽðŽå:·Qæ†Ò rfLñ9iòãÒ¤’;4ïsââÌØ–z±B™>!£Ê¨È_ý_!'¨cx9Î 5ªˆù©·×VN2ÚX8±ê1ŠÔQ’¹§ÂîÞœ…öqaý¼£4F/a95ƒ*™ 5»–È67Èí/j‘ £ðJFs¨ÁEi”Âø#ðaÒÞw”‰Þ6\³ÆšF"BÂüWô+%в.2;É£j¡R²m´$œøB'wæõÜeŽUêmÍ\ø>ïý*£kêâçaJa&©Æi”úÝÈ`¶ë§6ÕºŸ8åìgž«—.Êš)9Ls¾OÚZGSÂ)€f´û:/¬ŒÃl¹ã@Åæ—Hª¤€òˆ[ä»vëx¡MT#Í}· em]Þ¸ôDCC¯ÐäKÛ®¢O—!.q¯&Ø13Ö„¡Q;9pBƒk,‘µi?¢Ä7B 3‡CX.ßs^[ù©ýôç»Ü·j¥¤z ¦å!­©ëIó³,H=ºuZîBûfØH'a²J†ç0Ç2T¼+'Î,´˜$Vƒšõžm¨{-ðfÒ«òó=݇V#ë>ÃÊ/¹2ÊÏ)0`£™ð³d_pÔ§ oÌK”v9 ƒ:ü*Ó脱 .âÁÃ:¤õŒ$‹ðÓzOHÂ4#VÍd“Ö÷0Xjñé7F)+ÑÒÜ»`’s¦C‘ Û"õ@p"o)Å;brFífç4~INš 8@¤$lHñ÷"ÈR;Š ¨ÂþTZ›Uü¨‹‚(÷ÿ”ç "tÀТð˜]Pc˜±J|îzN$‹Ó~hûÞžÖÌ· à‘yŒ˜Ûê¢áþö—2èVè”G©<¤àˆ­2€C€Á’<Œ8ÁÎs/ &j°ðsò>û5:Zy†_3§ù@‰ƒ¢K㿦Qr8qø=>'¼µZ ðRd†bœýÀ$OlUé8î?_\c­ŠCèö¬1ãø/GpùQ#ò%­µ dú8d \aÆáÇ!V¥Z|Æ0)g þ¿ïáͱv‹qóª×.²™w#4’瘢ô‰ýLÓõ'ÒxüYï–½Íݶ¡ÙG ­é“•ÚN&5Q¥š/‹FÌôh]Ä6[˜Òº^õ²+KV”/†ãxj ·ï$í„—2¸Ã¹´—2Aát‹:•Œu435gbŽfÝ»QÌ¢ÌÆÆ]Q3Ê`ý"ó_Rb.¦Á%5>¹Ã-¡³¥œT×@¯`NWø^Ry$)1Qvö„¾†22=«²Æjšøtk¬6o._REƒñuRž©ë™£ÏC4Nˆr¶³q<ázuŠØl'ÊÂorËÊ¥×o‚+µc%K£¼ïêm†„ÏwÁæJåµF_™Ž‘yI½À_jœby™7t”@=hˆ¯} ;:`Þ¨ Þ€±ò. )“oO5aŠõAxþ=˜Ã˜ãîêêø×¹o¯ÓæK oò~æ,Ö7ÑÒª2:ÌN)Àß 2»d€k|¥0£ÍžóúZ¶Á)GzPxçP»·:-‰L¤ži­uaÛ4ºƒýøœbdX¦hïù»ÅpwZ4%PgØŠNkGq\vF†Ë]Ì›xtî0qhx¦†Æã´i³¢ëµm“ÍØT+Í2ƉA‚Ùe·VKœ6Ü„áˆNSÄý°óIbÙNìPc÷H°2-€žBk…GÖ–§¼$ø w% ‰×<Ø‹ü[61àûHb£™Ob²–#>™eá_ÛnìiL T»Q©2J0{LT'|³¤ŠËC€Þؾħ„ äýÝ[Gp|Þ­@HݧÚ“¡$në€K¡Ÿ‰~¼*ìô·‘¸oñÌ,¯‘!åuÚàBÝ”Ô_bðZœ]§`×âfþSù‹W7À|;â9P£ñt!(5ße mÚÝSu‡D—ÖÀÜWÂv'b¬…-szUúÛW¿­j©Ñ¨·´_,8ê2ƒú Ø–­ ½=÷Èû¸Í´4$Œ5²?q§äÓp±Ï#†»`FyLfã@=©Ë0ª^D©æV\ç¸ÈÉOxR@¬¶¬únšd9UÜ=0 ÅÛ¾þ5ÁËÊHÖ·'$ôh[–øn–Øh º(ÍåGû%íêh”o33^×Rü\ï'd‹‘¡ ‹ nœeŒz’f†Ö~¸ékI“šù)w¡lo¿`?§Öއ>7ð3?Ì9JÈïˆ(¦¾à.Y?KpêðFw5Ä>=?ôغ•àÍÑ.úó6Ë¡íC17Y‰E_š‡ÒYyD[z ø‘mA@/ øýäû\œ§¿h»š‡ â×>˜ˆ–Xàã¡xÌÚíl䱕‘¸†g#CXLúèÏ#Ø”; ~\9„ô†ÀÜ¥þÚ~WiÅîüÜêdõ±u‡p£p™ÆÖ®ãü\v_ò!¬}|…õùÎó¿ÐNAóê™ó°?ÞÕ#Ï2¥ru§B)åD{N­„…ŒßOWV|ÉX<ÂebGa¾ÔønbɆÐËSe ºC¸c9.e…x¡ã;Í£°h gñøHßg&Í’¨N•=ôZã†Þ^Ü··¨ ´“¡ì'4¸Ób^϶ü›šü¿så­rü §‰iÁ— ˜èH:k¸RçWE9t0sPNvtˆeÇñžÖ÷ô¸ü`°×j"}l•Zí* )€žRÒÍ9%‘/7²jã* &!uÙÙµ?(Õ?U€î²¿ÓPy@é.CýLû˜y¦>E(’rÕ} ³×ÜKœ%m÷ û©X^ËÉFš«îÃÊÁ®·ãž«ì˜À‹M9,PX O·ø\ +˜rÐgÇul„‰Ø3Ã:kWYÖÁ»¸Íê3œ„aúfÃâ.¡Kš3êÍ‚åW¹–/Nº«èóaF|Ê`çB){G{ÝâY6FØ=á …~H#¼á‘xJ`¥ì\j3•h‘Æ>,ZtXPÀšH&쌥֎ïš|´XPHù¶¹T©,úº|ª ÷êi@þ¾¾·­ØÉ©Ï•H•n%Ùw«tXÃ^áa¬Á¥¸Wëä¼}¿Dìa5/RÜöfž"pÖ|Fýö]V'$¤/讃I:ÅJÒ[²2A²eÃ:?Ò˜0 X¡lIkš0óÙ•‡Ö3éhõIØmßÏŽá¦GÓOP/ј@?úÚ,IýkR­FI­ûáS•d‡±Â‘Ap¼·W&+X<·&w;j\MXyu “i‡ßlóPûŽ?P",_|ùÇÄL°æ ØË½÷±K^Y]Ì™žJÜ¿L„ý<<“‹i·¿tø}b7LšØ˜ñcH ØHá‚îŸþiMψg‡û¶]W?gÊ)…ç³îWŠ_’ê»wé/ùã`C5Òzý]–óq’rÿÛ‚D†h¢eËÏ+ÐXlÛNØàS:ž°œ?Eq߀eûý€š5Åþ¬ó»Á)ªù¯ ~E@EÐzîRŸè|C´|?^¤&±„…âsŠ´V‡Çs œýápuÓ!Ê֧Ũ00`;jlêmSb æßåëTaòd0W úѼGÆ?Nè7¦] »æ§fÐסÌNÏWg§ðØÎ©0qv‡‰avÝ/>»ÄYÒ-0I²ËªBû1$Öz–,sQ€;tbú„(ÈÉ`ôr29n³ÿ#`ENl…Âä±µ Ä4¢Q 7%lURSz²Ÿ[ƒ¶S䟔,IÑàßr¡UT4xüEþÚX £#ïƒ*T;>?zjßÜ k·þ/ <Ïe×,–çÃs¾ÐÝ-Ìǵ`ÝN´S;O¾_°ã;£x¿t¥FuHWD-@ù9??’ k"÷•°jbŸ'Ô‹|²– ;µœYf$½Ñ…=eÉØ‘ùí|‰µ´˜ìÝÍèúƒ c„Ï‹øXÇ*ÌøÛMHÚùóRÀˆ1¶•6ŒÎ½Sq ×D¾Þ—vžUHÌ+lÙÖ„£Ä3—nøK_u–½º×˜÷£„j7¿Î³qu;ø^uZª´S)è_BA¼¹y©gŒ¥”¶jnãᦸ#“ÉØt«ÊC‰ ¸/ë\`È—g‰;@›Þ=Wµ]“ùJYLè΂?þ>©°†ý.µâ7¾Ã>,ãU?ö‘Гšú9ëͺeômleT–ml{—럨”…M«ÄßÀ÷åð¿£;|G"qü5f3pÊŒJB²/‡àÑma-+äï­Íj¤”È?VGMd‹ù§!j.YÉât´\k´Ó%y»f¯^UÈD®+‰`l¯™YLÕ²ó§ñ*ÕÑùÍu˜Ð J™Tk™Ö…Ôó{[¯gôA2²¥’O/%£YULNµläJU¥O¼oXÀŒïù=è‘nt$A^B~IW¸¦ éëüœ—«³¤ÛÂÞï‹@,¯S ¡ð`×¹ŒOŒÃjA”“K×1öíS>ÚÁ¹cÝš±RH,í°ŽM=åE…þ*A¤§ Fu®Âh'æMY1fðß0èìêB¸:¦ïrÆ" ¤>Vœ/±ý¯Ÿ>ùüûªw@endstream endobj 985 0 obj <> stream xœÝ=]“7n©EfœK]+ÈÕŒ :t”H~ŸŠßæ§¶cœ-„ëÉh»Aq¦]×ü«ÚiÊa÷ 3³†ŽÜÊì$„ì©ú†/R;QÁïç ü•èLÉñM?Éðk"YP iB@Z¢¶ÐÔH¥€ÿ^éãú=Ý€[8\%~÷ðqØìeC™WæRáeÖ¥¤<šº¡… A5S¬”)2 ÿ›1¨ž$a`0·l€À`ÐétS@Ã$p`d­@:¿ß=kŒ·,ÊУç(¥'Èsèq¯;eO÷¨³sìL™ÿõâÑç_Uû»¹¼Š~Æp´—ì)ÿz“ àå¦f¥$=eõ–½ùBÆ›KpÁ£Nàð×Oêlš7&v¥É]^ùÿê|úi/¯ÀõŸô‘h*°!ctÉĉˆn©±oèÓñ‚sÈ)—}‰¸ ïŒlKwXqß+íìd€Ý+X|%äðOªP&¹>ì"B†+¡£ÓtÖO †#5à_ÀÈ€7'}¼õ$Ž•.ÈÀZè´…Â<ôáCaÄ2i?„­±4$ôU†QèàÏÛœ¢Á2(v2ðÔÀ-©Árå,ÁyÐëÏ7íç‹öS·Ÿ_âO¯‚ «£l¨•YS#}’Xy¾èê1TuS€•Ù i×¥úÁuŸ xý§ÕñP¥ç9Y?ˆË u×DÈ÷‰€®âgæJœW™imž½ÀéÃO£­ ð?«¶°2æüÝ R+é’=3„¨íž,ê*üiᎸca+¸º Ï;s†tÙûGZënTÔΡø"ý*ÊÝu_†óËŽ›Õ"6  %åÔÏÄ›Éwü1K£1iTS%È‹ÈyO¤îJY•÷†qõŽÐú‚Sï¼ö&ŒYð8öÐG>Ìûr»ã¦°ç·Ù«£íÝZ/#‹)S™ë÷FÞA&bšAÌ}ç ?v»1h7Àêºëh'!®l äq¹) BîÕ>템حĊ!­ بN…ÂÝÚ÷X÷§76?²òý¢Rý¾”ÅÅW‘E°«õ®ö%íª‰`HÇÕÄ—ø§Ë‚§Á|6OËïa¼2è9)C¢ÊKëËaE/N•©¥ÏøgiÁ/[0h!·µ7“é5´hQâO †øû+Tà)i ÷¤@7[‹VžÁ®U¸ë m¹«4(JXÀ~.Å!lµñ8wŠR–ÌÚLUÈ{øke£ÉE<ƒÅm2h•ß«iÐÐi•g0(",0‡®Rã¬ëfç3—jž-ûíHlþYˆcª¡X%U'X§í]¤¦Ú>VÙžT4)<¨¼`‡Ÿ½, \+t‚šJ/£cf;†nÅetLHw1ÜF'…»YΕ‚QÞ×e¨ò&AíwÑxC…ìm[ì  ò}¡îŽ]Û  Ñé«ìþEÆâfm×å¦W…VwKPfèKÐÙvçÒÍCÖ"°†:šÉվ̲è\¢sùØÎgEí5÷‹‘Ùö:ÕájšÎvsÙÙ84$ŽYˆÅ¥¬bfÛ³ÛÞžgX”‚J“Õ½E³±@ÉßòøÐp8cmM®ëYš{&o„7‘i (ÿ–mŽ`„Y ,Sy$hêY #?!îXÖòÏ~YƒõÖµºªå¿çÙIû ¾Æƒ+“úÆê©iö®Û©/‡Ynõ¤‚“â7XÃô›&žïgRL“ñ0“À2 àr’þ3O@8³®Y Õs8\•áašJÕRÔÆª%%ŪÅè‡P-*¥wÓÔÉIð+mG<§yžA$ ˆÕ£ÿ]Y¡Á¤†™I¨ÿ>÷5–N´N‡Ö<â3+}ÐSŠÐœ\bßÕÚXbþ䚀†‚ànaJ$5§bJTȯ:½$¥R(ð+,n‹z÷aýj°_" ‡!¨’×ôJ¬Çsˆ£[8j¿`:gG2,Š…³ób¶Ó¬Õ²Aì»>2¸˜¸Apø‚…gp[‹oVF@ðÌ"† a¶ˆ>ê‰2 Ô%BÜð~O.dÖm¢½æh'íà4o/w:!~üw”ë”tçåŸÑÿ†õ’v äÇ@`P¡É ^)–ÚH(r=âŸ3}ôÍñ?˜G¾áò]ÿv‡sO+·)Z+FEÐ ÂjÑwfKX¿)”€Ø D†½¾k²\óäáÀç¥S½w£`bCxuy|0W”KÌOI¼G\.ã2¿µâßTܰÖýØBR¦JMì/²Ëlf;¡¢ª:wÃ_óÒ£_37òJ+šÉ¢K”©[ ø`8IÁx}2x¢Jæ´Ö´)äÃÑFY0ÌíýΧ×Þ‚öõîh$“ڄ퀞ÔÃ2Žô%· O9ú;‚'²ü[:oK§¡;¹åÅa®ªÏ¥»ØÍ­HÖOÖÍAñÍŒ,ß:ü\xP½<ô=ŸC>6ÂZNâ»cädü¦ B´~Mêhs KÖÝŽÀwýï¼ÐÅEkzOX¤­¡E´0ÖO™­ÅÅÑ´D†ˆ$–‚³zjRÁ<ÀêÚé eh»ºx*×å–ªû%Q2^fÈclí¦Jë<¡U…)ír庩"‡KZz”zß{»¹½åUìǼÛVÞFH÷ÛbÅFgÊ(E7wüú¸´Ôꂃ]¢­Þ±€Iw´ÚiÛÏþ®n,hmš/r_UŠ·Ü!XîUšÏ;õ Ìꬽ{[`qífa ‰ W÷2ý®Û{ÊVŽ]l\8-Z§ƒÓ=J¼&àAZ´º%)_Ex ñÅ>®£ë;aòªÕŽž^ Îg¯d$Ù»"¾züúRÌbÚdèƒ/´=4÷ØåÞ»ì‘Ûºšàɶ†ä’)× 9¸ŸmtñMí8¥‡ RîñX:ED-/^ewAvmo˜å›CÑÔͬ œ=d›R‚AZƒu-)lõ¾Ã ÃÙ'Ð~{LÔº× üJõžwgö©d€øÍýl©™ðÖ›°L©­-à·¬-›üoý^•þÀå½Ts*tÓ¦tWèÙ®‹bPfsQ|Sj‚‘¾ð'jñ©[™ÁM7b£;†Ë•ÐŒó»šYÙ¡Æ+ –W!¶R…oÙ‘oOYFÒ ™46ÖârEÊ+E½É´±»4v)r4:¿¸i&•#Nl°í6mÚ“‘Æ ½vk‹¯,µë[:‚ç„gBU>^m&í"]ßúê î÷ê¸|aVþ€Gµ´Q7EðÓ߃us·%=|ý(Ž âÁ=ㄺp¸½0h{Ã%ù0`…Ò ·²¢€¢ ep—ßz‰«–¼Ü{ 0ÀH˜þônâÛdaNáé»cÀh[é …gìŽúò¯?hÈbÞ¤9êar'ƒž‘h-Gè_¾ž‘´¸!Ã3Þ"Ÿ}]\º,_ÛQåzQ–/»äxT/#ÞÈ|ò0t²É€Q ÝS¹ìzQ†ÇBñp™(Ûv}¡gp¼Mj…!Øž°P×cžC…žp®'k 2°²²= ž_íÉÚv½((Ðæ0gÂv€­1iæ8ÁŠlTU¯·˜\@]/Ê6™¼ ‹ñ|Ù1Ÿ“í»^”T‚ARzè±`× xü4+ѤQ@¿u=e{À®e¥Ã<¥ž°PkLÂ/ ‡ C¹ìzQ¶ÉäÝ`«ªÇϸÍÙS¶ìzQ¶©zî[CÆÒið΃ÚB¶»^”mÍ¥`kÈÖGsØuΧ¡ LIª¼Vk,»Ê¸4)üž¬Ï‡¶®”ï§P#kÚ•ÙGè»´5¨ò—/ó´&Ê7V "‚ˆ¬z.Ê…À3e­\¿µ å’ÐJ*e¦Í,xãõšyK…£AÌó¤”À@ßÌ—ÒA¥œ›`Þ˜‚ "+‚ž‹zýö*ßÂK%òA —6„—šÓWÆæ¥šæUm”oá¥2QY1 |ô.øÙ1‡C÷ιBAêpUÍ©BßR:Η‹ì[ÒÎg—›éCMK *~r–OJ)4”qšÏ@˜pRüÜ™üÓajûþÉ?5†]9ØDê¶_\^YðÇÁ›+×È1ãV<~ýõâ¢ÈúÅ|~+[˾< !buü+"5n¤½\Þ"Ï—t^”z:Ä9TÀóœÔêÓE§²ªQOší[µwß@Xܦ×yhr¦mµï¯mÑuç­èÅ5áîêDÉÒ†·ÁH„¥1µó)pˆ]Þ›õÎyŒ·q`¬¼÷þªFŒã,£'⢊¼¢+26ð½Äoë`9¿35̱Ù_º×Η—èäíþñµ´þ±xZnq‹ƒ +Rk‡ëï%xyðA ÚeJ‡·™×[Ɉ«QøOÁlßÌ¿Ÿ<â>ó£M§²`›Îu7ð„PH„o+´½? @&«ÂJ7xM€â–;Aƒ{å·¤_ÞT¦Þóvå‚R†¸©£PÛ” W(O|Õ}óz0N”Ø“ÉbDå Û?jFú‹}ÝU §Çïf³u Rdµ}ܲÚí”*'¤)ßøÞœ £4áEç…0å(±Ì~g"WNßZŒh‘Àõuûùý%'pý¡•ŠìêcJõí´® è’èeÛÀÌ) ©ÈnóP87;½š] 7˜Ù®O9ù[¬•tʬgç%2í*=, ¿ÃZs„¾ŠnÝyð¨˜B*)%~ÿŒ’y¯.«ÙüD²K_1d¢_-ßÎ5ÓÍ™ÕQ7v/Ü![‹[¹«~ÂZnšÇ'(ùF.Y°‡µÄ+'¬“¹OëØB¯…»Ç–sÒñõ£ÖýBL«”ð%;Yic:K•Úçho#1¬Ø`7ÃàRr÷Ÿ ælXí Ì󆣠7Ò¬‡Þ(’À·ë¯'à#-ÐW}wt –p¨ÁΉL°ò&Þ3ù‘Þ]i»7#:ñþ-Âý\äT]$?[¬`Ã=V‡NÑà Êé'<‘‰•†pêDJ <„ÏhÜ+âøqö¾9r–â˜f¿¤:Šƒ[+‰;óÈ-3_,ˆ}SšG‘™‚ÖS­ÌÈäZΧ&•&{hó e›^Ï?Šž”ò«ŠÀÆ h¸Ðg´ô_ê*ýݸ+#Ú’üÞä®NÔä´¦J+ù7iUäJ˜H&‹VËq±bÅ!„ñi+Hð¤eºÜÈ,»ÚP œ5ÚuµG\¢ÉKvËeº¿GÊø;ï×{$·Ô ¹þ+EXyŒ[¥:ÿŒi¿ öw#µ~гs^òº:y?bw¯ #½«+Ãbz,ÎP3=Åw¾8 °1…©€$ØÅ‹÷1XÍ'5X‡žÚg°r¥‡%ai°.i€E(®Òð@¦Äÿ`-•´³ëy¬¯4ç…z ,츟Y¾—Ÿ°èlùv»Íç4û0é&æó"Aä.óbŒk/ÜŸ2Ÿ5î¯}/ûÙÌ<÷‰ìgh+Ùô¡ìgì§ã=ìg‡¯@Új?ŸðÓ–y±»­‡l?G/í6’íü8WæSYâ;b=I¸›¢ÿP|ÖÉíg»Å¦W¯÷JT/Ýif\< ©í¶C°õx¦¤Å×_µùxîƒñ˜îß­¹5çò÷³ ¸¸™·ƒ„.½·û€8ö»¥+?™û€kàçÝîƒUøÉØãã3@;ܶ¸ÒÇvúˆ–tÔ¶ôý#µ´ññ¨-ÚFZ·==ØŽøŽDW <â)g‡¢_E™@ëcb¹& a$/H©5µµ9 Ê‹c½»;1HßIç'¿cÑUz@çç]¤OΕñÁ£é{wf{º.;̺ðýõÊe1Ƙàä@üÌÃuØVþÔ˜­è·‡%a!6'Þ‘Ï—vAõ'ìø ¿}WT<ÜU:­¼HW;-P® åûµa¿ã8Œcä>ò“…%’^0'@ÞénQ€ÁUY€,ƺyúÇŠôÚÆÇ?ƒ¦Ô°uÏÊÓk¿ÊÔ¦×{ò ³…#' ðŸEMñ|ÅÊ“+n´ÇÇ ‚<_Ô'³}ªL»:ÿ&pmoNŸ˜÷å牽ÒüæôbÞÏOã Ú<¤ÛgˆU¢A.”io€½#Ñæ^D»Bô§~rUî_æ•&g(Šd}ïù|&Ì@y˜mÀˆ"e]–âFD[ãñêXϼ¹ð®š¼³ö†ž×Ÿ¥ž—‡<`Û7'~¾wÜÊ%ïÍŸÈM"!SºÓÆBórciôúcnc ‡z}]À—½m¸÷ºpj}ã8È]°‚ûL_ܱ’%DXö‚âe°ç®•C|õ[ùÿÔ òØñw,È.^£šÍG_qàµ÷Ë~Ôx$ÕxOÞ.Þì¡XZvb>âìÁ1Ÿ¨gQL› í:'cÿõÅÿô*îendstream endobj 994 0 obj <> stream xœÍ]I“ÇqöÒÁþ/tzcqZµ/Vð`…ä°v„%Á¾> J3P„~½3³ª»³¶~ýfHlôT×’•Ë—KÕûö &yø_þÿ‹Û'âðúÉ·O$½=äÿ½¸=üæé“_ýQÅxˆStÊ™ÃÓ¯Ÿ¤oäAj7Y¡ÎëIz}xzûäÏÇï®”ŸŒöþøêêZLÆ /ÜñýÕµœ„3ðú½¶Jª˜›ØhÂñû«koÍ…>þíJLJhýñl µõjùP`“7©u€þ^°aÞ^]ÃèÖ…ðVkoâ<¸ñø[¯–sßAúp¼cï¿Z¿äCòåÜãðnðúÙqmóOÿ¨å´+¨¥Ô¤¬Š=} ôyweå$£—8Y_À$v('¥… ©øûÁMÑë`©=y«ÐÆD#MêIÀ<µ 0ë<®õ|\;9eÅ¿^©Ùª™ŒŒÐøâS•™ªtÀ^^ÿeøè}<¹,Ø©å™;àE»,Ië ©›´ñVÁÛ.!@&¤˨wÄ„F+L8Sx–0öx{ý)#­µóïPIxrîð¨C+”éï&¥‚ÔsëzªåÙI*)âÜúÙUµ¶JhØ0<½ã* ¤eeɆ ²,9•$Æ€XÇãMÚ.­¼ËUÏAvÊ +Díf•Òîæ:9Ùèäg/¥„7]H4åW|óK3탙É\Lö=i×°R˜MŸý7~&’z–h‹ùá^¸V h< š9JLÂÃF‚$½µ3ο¹ÅÕj'-(i€–ªÏSjò z%KÉ»LÒ°ÎZA×±;kÜÎhµÄÅ !|f6Õî((Â2Ê—ÄM°é`.òˆÞûØ%¯†Ž•Qi@ÒBïé#-¥°]²S4Qáà|dãÌG1F—ùH…èöóÑËFòŠáý$@ðÌhåP]À7Ç?\=ýKKÏÚ[”\É”ìkŠœµÖxäg‚©ïï0›’60íбâS}‚󳸡èbfjrQ ".ûŠs‡h&[bЮQtð¹f-ñMRÀVXw¼¥Ž-,Â÷·(b8µ×õƒ•ÒÓÂcÚëîÂK¦6Äi£pù›JKBtu²4¸dé©6“Z_]ƒå™bD5 J_9ÔÐ>3©QMÿµö’•÷ñ¯¢¼s”<Î6-jÄb0 h™Üù;Þä9>»à¤õIûç6¯¸Z~:^'½­ºèçïLXS{”Ã]ÖÁ€Â½É€©2#5(Mÿ†Ÿûv€”^ZsßdÂ^0âM>²nÒ@ð¢Eã¦PŽ?oWJ#±ÞóB@ê¾ ÈK xÿùäé?ÿˆ]«Vö«ÿ"øæxšµxÎLö k ñ5½7Ö‚¨Ñ¬¼˜Š.ÿÎÚóoþ0Ll0­è4XPnxÞ3Gÿ¼ÍGÖOyµñÇ=ØÎ¬ÐYx… Ð’"ÓÐSémÜô‰™‰ãpÛ}úÐÉ’¯ÓÈÒþïîõúºïÈthCÂø†92·€J¨ÂÙákXÚÍòh¿I¹0ë>¥O©gÚ¬à…Žÿ¤œ=-Ú€ìæemb7ϨžxAÇe-Daž?ÉÄyú9Å ºv3jææ>@J]Ϥº»b P¢ØNÉ0 v5SÀ[ ìÈà‘<$*ÂÆDèÍ îSwáëãmáÜâ‡0Õáfýœ½¿oèü~`v=(Þ™£P’œš`/b­Š“$<D/ÌðÛÓmúŠB.l ÊP”À;¿%ûU—Æ•£Á}¢œ7¾ÙÀí›PEE·…åN™9B–Ÿö„éÞß¼f¤Î~4ÁBR9×Q;ä÷Ý­\I`pÔ’\Y+g¾éêÉ¿]VA¿ À´ˆ³¢‚ͤá5ì<øq³|²ÀaBaø¸ô¼cïûÔät*þž1J+I‹•\Xì  ›l© “ɶ¾eSæ.-XŠB½ræ%,ä`õê=û ©Êc^…¥½KÁ?Ð92ݤ^BðUçø¡4fȃ®Ÿúw(4ý×nyå0‘jh»*14Êf‘ǰ¶`^ú赤øž‡Ý+Åm†E1”Cöì¨/r̼ÿäêà“-½¼Ì©à¬¥÷Íck÷3^ù„?x=ÂB•=陨Rh ?ûálY¡­ r9`à_n°?öˆ’?¨bZ$ˆÎLÎ-‚ÈÝ>ÈÙÊfZZ¹[ÊÒæû¬xÒęԼO=‚¿32HÛp9ìc¾BlÙ\’<å'Ëæ ßŸøi¤úÇ0LƒŸ€ñ¡¡ -¯“ ›èmÑBXLÊcþ¦¶Œ<Ö&Íu¬1í¿Rò'zE‘ i«ñiÔ÷ØÂb´¨®ïØeÆ–›øì¬;oÍ^÷G~(®?Ft¢/ò— J¨ &'G–?ã`<²Hé8Ct¤+ß’ô‚H/É;ÞŧÄW"ú¡šiŒóø@vRñ´\¬Gx?µŽL¤?dÎñ-rÏŸjfaÀñ"%m“wZ ?›],@ˆc³»S`¤B¸ÂH³N8â êÛÆ*€/·ZYŠn_æ¤ÿŒöÎ*NàyðæHþ’ËN@òÄetK«7<'§ ¼2dJ$‚¶ãg;5°Çù»k€èû´1säR0cW›‘dlfxf¡Ú7´¡®Áøô:šÓ¬À„mЮaØ6àD…R²ÆÎ|JîÑWÌ·–QjVNÍA}#%¡©îÈM8—zç•GÜXÔQ ¼)ç‰+30 —M¥CîL¥jÑÛa¾ÆT!©œˆgÇ¿Év Ͳªðl2j#gs‡Ò½õÄŽ¥Êâ]ïñeg‚Ë%‚Ê7Å\‰ïÁKM–SDÓÕ¯þ¨….¯3!®¬a¢Çwm³O ÌïñÑ +Q÷,oo×ÇwëãÍúøaù¬/WTy'+9ÏÁr%Ç–ySÉoì$r¬sœA"¼ Ô+ ß¾*ølÉɳ$*ØÉH[ÁÆ®éáÎßù “„½«¨Îv9—UÙèкXþ‚"“b#ÐE›†z¦j-){²÷'ÙQ0¼z©Ïš‰-ʸ7MI)CÆ…RåÊõ¬(+Ö$Ûù!EVeèÚÜ~/O®d{®µJÁýZØQ؈R÷íÞ’ÙÖ¨h`Âåkô£žŒ"~ÁàØ¡Ÿy´ú„Ü\̯ÊÐw6nl"5îÅÉ¥gPðmþsåøÈ™•ª6JB‰ŽÖ»èW„¸ÁØD:Wãr|+l¹P‚£|È´Lùàt«ZU } epÊô+9Àû7Xç#¸÷RƒÂW™ïÌ#Ê({9§5“€É#§ªˆ‹ZèÖ]©ÁÔj´ûWê+3‡GµÒS„5Œ—2k è©áAû8†ì T0È¥SFÁ¾û-´«°â5 *;\nνUþ…z÷z‘[™Ù?è»^üù.{\~,8Z ò‡®Óç«Òþìb<Òßp)'½–Ôïá7±Öµ—„fPAƒÆ…Ëþ‚Í£‘ÐqwP€JV2±Öt!9ÐGà£Â¸;oÀb¯ýõ{PÛâ Í"£’±¨¨åEÊõB±ÚXî^( c §ò»“)èŠY 9ÙUT\~šÄZ[ÉXêÎ" Va/ ~³¾eØúãúø|y<¢—’ G¡èˆõâ¢áI€Ìü„At “ðèv²@Ï}×Ç,…ãº:ŽÜåX4`0‰æˆ/Š#Áz9éã&Xu9\†4‹.Õê‹ “^k¨Þ¤‰H;.V«`1ŒLÅͰ˜Vf½Ž¥ù¹hʰSÑiv¥ü? kÀcj Ú´#.I~ œ*| ‹BÊlÐX:ù¶Ûƒ¹òúöFÖÂü`ög쥩ÃÕðÅm p–Ñ?~ }3ŒcÏÑÛ“ð—„5”ƒÇi¯C¡sª¿=Ãæ,ƽ‹Û''g7ÊÜ« XX†X݈ýXØiV(‰XOË)Ó`a fÛÍÈ/ÖO˜Ï……3ä³—ÀÂHËò¤gÉöDk9”]Œ*Êp!ÁÄæšßZT–Ëoêhà7þ;%‘A»aP®f;‰Ö&gÿ:‘Ø+ÅqpZi}2Qþ(FÚ›à×Ð\¬±cQª9Þdo:›LÈ ÷8Ê©sj¸ !4qzOÐ?W9Cƪa!)þ>5F×jˆçÄöv#}©¿>KâR¤º¬ï•ŠPñ0Q‘§++ÄÖ÷yyB•¹ËnÿëÔ–ÚßngÍ2) ­žxG·U¡1,«`ᆇ9OÏÌ!‡ÒÀËcšttžGCá™UƪM¥ÒÌÀ‹wðb}½Ø7}Aø#7£{ØDmø ß-¿Nv‚Áæ>øØ1ú uq®×ã¯cåÑàR‡G¸”WÀld«±—(UÕ$á5éà:õË· hã*•îAб`àÎ3o©!—ý,ö ¢ž¦ZÚª4{|=D¿&yAâ1þ“ƒÙ§”é@ªJªð «°µr‡·˜*KÜ×Åÿ5=“Ëßç,`¼~†ú“&”w‹…#€ièÑ™ã¿]º 0UïÓT—ÚïÇÁ¯åeCÚ¶ ©”Z$¦¼\Ê1´a5NHL<ò9ÈÊî„„„Jæ­6%qëÐúcuÙ~còŒKIØéÿ: sǘÊgÐEý2=z”AsQ?R­àÚ {jÛafÏÆêìòoh tvà~«./<@~ðˆ¢l­Ü^&"Ï·¸ttýuòýÜ(1{í<À\¬W%Þ§&AÍÜ×ëæ<;†•.Òl¶¦Âm´,Nú>BºOjèèÔŽ ´ö%M¸ræzíR¬¸•%Jâ¢Âqχ´[F†¡yh¬g¦— 2ð £Kms]×^%‘HX»ßuFÙÖÝ„30¢}\ÔŠÔ»>Úµ…FC R JÿËôˆQ;&À}YÞzëTW¨ñš!¼9€„Z{»[¨ƒ•îP|DJœAÑ„‹ð>à Ôð¡¬o1çŒGN/Óhct×|.2W´û¹dሔ$ÓiI­H“]˜gÂŒHeªjSÝa©pTX‰ãHª‹/Ì Ðê\ô`|{Ô»¥ØÑî„'°jE‰DÚu%ÒaªOÀò=UqöΘ|Cf4‚®ÚjB$aªXí[Èx4µ¬cÇ5H!›‚MíI—­6¼d øi ²a4\Å0˜SO†ñPlöë6Tÿƒß“Ԏ᧺¨¹ ‚³wK*†ë»[DbhdÞ§¢ª7Ó¢e}j–Ô·W×è•ò-TѼ&nd¦* ¢÷C'ügôì¶6=wô@BbyreZî"´7tgÀ–B߃ÈÀÉ?õ\D†‰Ú`J@VèÕ‡”¾).¸|ˆÑ¿HUXڅʲÁæý2=â¹³Ïa٢Ʈ|qbu=×%q’¼1(f®kJ‡jÓ bô3ü 8Šžûñe8º{,£ãµ‘QA…J»\fyvY’Ë›A-D÷qmÐG"ï7ÒÝýòR;t/ÝTº%òÓ þYûT{ƒ“ÚLR«F9ƒ—']vݹ‘ªÄ;q{$î‹€ÒСQ²†²;bÿm~¿ f ÎppãXW«bM·ôC÷ýgŒk™üÊK'uÔ֜ܣ“:†®±k‚f#›³i:[/gBÙu!e½¶ŠÀ—ÀÔÄqX^A_#‚JnÃ|Q~e¥2!õ`$24ÎGJe§pü/z…LeÑ0DM!Ul;°y:?3Íswk ŒÉá‰.‰ ly{“§g¦çt}˜ÂÔáQ4­¨¬Eô­s¢µáÐibx¬½‡#XÉñ"aš³¥FŒãÓøüýöÑc’ŠO)šÇeG,ü2)L}Eš tþìYeë«â$‰¡†5K1]õŠøY}ÒZÏ߯9ÒXs´$|Q*· T£ Wÿ¶Žq©Œå7¢âj©?R£½©Né5·#á[¯6/h¢­îøëd¸Þ1ÕÅŸ·²¢Ø£+HUuÞ5ˆ0Ì«>#ÕfŸh³4¬ö)G£ñÈfÿŒz!çrù¦”Š5¨Øî·ñ¶ö|RˆBØ`×ÝC؇ëÝïö“8>;¥ãöˆV7o*a§fC>¾Ræ{ÝØî^Ï>Ëè:„ñ•Ò Ùò¦ã¡×3“Rºw¦wp oò}^€ªÃ²xRŸnÈ6©Z4Å6tR÷õú–ƒMâŒ0ðl‹òÈf‘Ïô&”RµïjðJ%ž£Ööh‰bõ)›þˆ;̰hTaºõXáFà¶Foˆ GÌI#^Y[Ü[°xÎ VcÐr/bÀæRØëþº1\k9!MàéÍÓì+÷à=ÖâDV\QiþÃã+°6·À —»b;Ä3È£ó£;ý2­ñÚ€³ƒV¸¥a+«Oê-˜I¨¥¢õSþÎ÷ªq²¯J")ÝH1l8¢ Á†n4ᙎ¶’ËsëÒÖÎx‚®½xâE¼ÇMÚù¼Jö%ÆÉmÔ¹T!®…qÆïÛâéèËqÎÕ¸ñ)Ú .*SØ lþ_+˜­(<Ø|Þ]%.ÂE\RºAqïhžܑ¥°„{ ÜI¾Oßyºc9Ǻ:s”Xß;°_#ؽ˜“æÅpó9fwé¼þvÂ*Eò±°4é2gP§|5Ê6q.o(¼ÞÉÂ>êÚ?èOIϘ¿£ƒe‹êv̺šp¾²Ãü«Ýð*§{Å — šh3*µS‘RTƒÄûWkþüq"wr.¤H©ißÞÅ?ªN-Ó˜¥Îäð ©—s‹.¡çýÈߟ¸žç_š„ÚS…Qݬø²ëtßÝ+e*—‹ú0g{‰çµaåžÚŠËŽw|í]Ò4$0·â\óqd€¢MÜCx{Ýú"»YRb(4¦&gÊæÜÔIïWJ —XEsJ˜#øež9Q¬I`‹¹Øµ¼Ý­ò¤É¥c´aÖÀVnAt{ÓÁ)ÀÉŸfPÞ»AÌøÞÔ ;+Ð{² ã¶},‚íû”¿F…!éÐA‰¨ø$Œ‚ÒÙÍtC¡"<àÃrÑǘ|Þh‹löX/Òb ´§XN¨|ÚqW¨ü“Š%çÖK"6.¢MË6ɾ t4F±ßy¿]¨å—ç Ùá&áf¦â¸øûtÞ¹S H ,­Fd&¢U.rôø£,såg¬%ÜHÀ †^ê §BFI³ªÚÄöG‡¥Im)w¯ÞêÝ”®ÉazËnm’²¹ˆÖ¿Gg ÂÔ¿d= €gƒÆé5xŠ— º^Ñ|êÓË‘I¬[x®Ö¨+á£\ \¥ÛŒR“ª2–™ŒÁå×›·zæi—Âp6ŒQ@sþÓÃØuÆìJÁ"ÌÑäÇhvÑq令\ï‹PzC‰³Ó0ö§h§™„&†kijÆi`&î é®›OsÒÒºt’K•üd=0ëä*µXJ¥©Tkp'ÓÚÕö.üΛ n“¦¤»;xçMX0 ëô:æ#­°ô¿G)ú{Ò5% TÈWU¦„t í\|•h‚¿Hq¹+ŽhÖÍÁ`ÜøPÞüÃu‰;ç3èf­3¬ŽØíÊÁÒqÞÏ¡åS¯2˜Æ¢éÙyw,®Ñ'6â¸ÞiЯ8Æ=4ÞDy ãwOŸüþû³­endstream endobj 1007 0 obj <> stream xœ½Ër·1gƱ•Ó21Çx?웫œJ¥œJÅÅ›•%Q’cвEY6ÿ>Ý `¦fwIQ¥ƒF³˜îF¿»ÑЯ;1ÉÀ?ùïoÏÄîõÙ¯g’Þîò_/Þî¾½<ûê-ôÎOÑ )w—¯ÎÒ7r§LœD0;çÃϻ˷g?îù˜tPñ¿—ÿ<‹S4VÃ7ߟ]þõǽ8¿02ÆI†½¬WiMY%—Uš­ÂŸÔò“j~ÒËO¶ùÉ,?‰1qvYåÇĹe•iÐøå'Ç~úêãÀ8å rïBj?`Û…ò|wùøö÷ó 9I­Üÿt~ßkë•ß¿PFkoâþ7|m½ AíßãjálŒûkÀkÜäu$®æÅìñëó çådµÙÿ ADeEðû«eÅ/ 2æ„ܲ÷¯3Jö_°×7l9Qå''ýþÝ‚èyZ­–ûø ÐÖpZF8¯Óò ¬Ý¿Dàar°üwøR ­£ß¿Y­v ‡PÚ`Ãþ-¬ð»êÀþ‰ÄLK>Zèýë¼9`yÞ…ˆB·‹@Þœƒ ÑaŸˆ$âQþ!eE,ì ¶c.ûçùKí;÷wç¨m*š)xæIJ•X/A „ µÎHlp&#q°Ï4•ÕŽ>Ì-b¢·¿0po2ƒÇ÷jávQ(»j²ÖÊÇk= ž<Úwz \Õn×½­Dô®¬•[’ÓÚL.Îêºi W]NÝ' ¢dæÐ~GŠ~w…O°"VÞ… ¸IÆÀy]ÛÏì\î”ù’€7âò·=Z­„=,]íâd¹f†˜®BO·iw‰Á*ÊÊÉWŠF~3Dð{³ßll¶5â-9}bòÞhüù]×9QŠì#Ó­•w…k2v¹Æy‚ø“SÍd×N•SÆ•†3‰GÂmׯõ‚ú©Òj.;x˜,ØV‡Õ¨sÙ jT~&ëY43ï`ºâã—[MÞª&È›œ0­U!@T¨AŸå–ê È-ÚÄf¦<Û8ùäWtˆ­ZåZ“ÿÖ~;éÉGwHš”œ<…4É, Ë‘6³àß­| fzn¼5fÂ~'åIS!.à“Ï5 ‰£¯¬T ÁHi$¼—RA²³ÿ7¾#°†B'„QéŒó`µPÏÀ[Ybš ².¾ä'ðvY öù@BôÅòö†áI‘ Ør°Ý _†)†8‡%"7§´-\3ÞãåìKÈ_7Òo0 ¨ÇÌVúÝuN¨÷j©F™3G𕵤›:À.B79äßúªÆ‰ºa{ŸFöM®>;»—i‰këÉ_>{6#J‚ÀB• ÂÙÉ[]ÔwBÑÚ¨BÒôüø~y|9?våª Ö ¸¿,»$¶*ÐYy¶U:ª¶®{J­`ý›ñ¹Þld‰#áp‰ §ôJ£6®"lgôV ¢½ĸ¬ÝTtê\ÒľyyQï·ê ¡ÏYß„¾uðÝ*"^,f‡rd/aBs”‹ojs@±.DÞã[‹Ipå¦G¢U±¸ÐîØHÍØQó:÷ ª”é2ec]9ì~…ÂWë!¸+5ªÏq§vUýÄA4±G«ö—£¶E=ç'ØV±óû´Il°0š8àZëR’cjWÀÍ›•Œig°&iÉL¡_ÈÚ8×±ÒT|®Xô\°„‘™¥<1ï¨6Fµá›’ªÔùxJw°0è Ek¹ÏßAÍ©‘_•TemƧ€!<þQJè¶èJµ¥:\À‡JHkwÐê~£C˜q"ö~µö®0Ì´.^qÐ¥ÜÑNµÛ“fŠR ¤qYCmN5–«“iÎo&î#Oh”$–¿àúõñ». _Ö¥×Ûê@æ‚ûȈêÇà×u¶žLôMõÚó^<{aûaÚ1а\‹+Ùv¢÷£kä´Âê⣞©†ÊSÉâó6b3!„Òõ öú†-EoàÓ>Ínfsy}¿¼ÏýÃ:!Æ u.Ù?Óû üÚ/’%ªØaéJ…f/†mÒ8š[{Gx 8´÷¾mtœ©Ñ&[ £*Öov3ÛD[{ŸJS ¹ ça"Ë©ªf´6%]厠KBy’‚¢œ†|øHk×*Rôì÷ó˜Í¶•|‡hÖ¡‘D² ð‹Ún%@,-nçC€Nãq ã6¬ÔDWbÈÕ'q¬Èj#ü°Ù0:•™Ù~BiidácʆÈyIPqE#m¾ÏÒ ¶SsQr•óTé:5-y¹¹ÝÔmаÀÀr8Z’›r¶“l5q[eÞŒsyr! òsºý€ž5ÀÞS«:Ø9§åeG¦ÚÛõº]xÑõûõfíc36ÊJ±!}v•²AzàœÈS‰õpãÞÐ܃ ~[Nô¨¼ðX¯›Ô‹fíj3VêyKÃ.öq§ˆe‹Ùˆþ:c=µF‹ òŸÂK¡ ò7Ûk4åž&º3C /”vÍ8Fì2y>Ú61ÞC)k·‹íâ„„DwoÝò#`ì4ÂÛ§ñÝ’àÝ|wU&»`äþ;|­€#uÆ’œ7F¾7™Q®my|ªí€+mw“JôˆœÅ*šmÑg¦–×»’Ùð<žw©îÒw.8.ÛÛ,/矢ÑUæ"=í©Ž¿¬tn•·0ŸMH‡nk ‰íi4Ä*VŠP±)HKÏlç]þh%8Ôpijƒ$]­t1†‡»QÖUBX”øä$`çÅÚUÄ)(ÃvÀÜ ,•º2xÏû7 ¹ôë,H!R/qGw\pL1ƒª‚bm˜ÌàNò@‚¬lO5IzÍÔ—ŽslHtÖ*ÿ˜Ž‘ ö±S^‘ÐÙ:¤‡¯»$تvÀû¹`Ô«”_ÛÍù \bm| ÇÉë5ƒ‡%Üü@¾Ü*Œîs™×l†ÏêúlP´Ö–MÛ?Àãtuž[ƒ‘Êt:9Ä7žÐd¶dÂ-±‘µnÞDTÚ“mªîqdâërºÖ#$HQknFÀ¿Àc>Û×UÊê¬Ì¨)*á ãž/§bWË㎠<>¼^Þ~쮽Ù>L3r ZtÏΑT…‡U— vàÜf³…–@^{„ޤµ^­  j]ÏGŽ–ß%41l–<…ê‡=R…Uç^5šH`†8Ø(ïhS®V&^ðþ×C^nGrÓ3YåB¥®Ñ~˜Qqˆ¨/3_’å_`ä·ª=F D´­ä´D±ÈQð:­ÐP€´)‹´Q~>›Òؘñý ÉK}¸.yãœmž}匇ÂŽÇ?,·Ë#íÊI”Üû†<·&χ™¼?µä5»iÈ“Àxït§œKvLÔ§7º ˜KKìâšQàcÉt—ÁP8€¹!þ×[ñ'þ~.ñ'麠S ÌØ_.oo—·Ï—·ïç·'ˆ8mN¿â£ý¢ŒÜ(È„×x8ä€(ÅŠYa”òOÓû¶X{™¥ ±£)†,0LÕS½µ*ã µ 2øVÊúø´ŽÊ­y-ó¢KW%ƒnc|­l§;Ò‹öNΊ‘K¡ùcø¶2LXÃæ]†Ñ7¹Eí'/U¯EúM6˜R3»Z‰òѹì±ÈFt;ÎORáD MpǵšATj»Õl@G]Ê“„«8ÎÏ»Ë<@£æ8a†3Ö7yÔÀ…ÇŒÃæO;Ps;ËžkãÖ?»($”Ù±-! ‚ß©±ÿÁ 9¶7îúFY,ŠhpÞœüƒ®idŸ`„Ÿ„’üF’Jt _7yI•ÌHÃÎX'ç.AS듸:¯v˜>r.¡ÄðT·—`8ßväí%‘&ùš;›k?ɇš|À [Åe7‡G¬ìW1óü.i&Ly`õäB{¨|êTÑëõ¹išúD÷Žn ÙÏzÔ¹½2YîüIÖ½´§æ®$¿hÈîJòÛ„$ñ>£‰ªÜ•lаk“¾AîMÊæ'vW²½lyÜI~óÀIc>ÁI<’P9T>h~üœ4øÅ§Hß¹Ð[Ù­xª›’ÐOÁê#} ’"[öàjº)ÍÆT mÝlvwHxJ=âe:12à{æêc|¡2 C]C–N^âœn2, >GW´·}½ò”üˆ;GÐÙ0§9-N;9Mƒ);T; œð‡æËýÁÉPjŽ)!;iºް7}`œ²uÀ€8èÐ¥–”ù#ìÁÛž§s K;¤tH¡N À[íÂnÔþoR9Ó‰¥—OÚï¿KhðxyT¼­O¸PÍ>d®:,¯S#]MÊùN¾Àœí¼Ûb€¢8ZU7ÀRÛàjiÜ-o¯—·»košC:4ÄWic“!в·Õ^'Ö? ÁvŒ XI—N¶ÒT‹A÷.›¶Æ`ÑõÅÞó*@%.Ø®#œm–@˜ªldpI‡'o©­eêîËÜJí<¨÷¬¡¢Æ‹3O~gƒwz`§Sˆz£ÖLÔ)éFˆÚÁujÛ÷÷æc©–Šƒ×3ÇýW¯bÿýOt¹ÙñÁ°~’T‚x÷çÕÇSÀàˆepû`ìŽÇlVˆýްëvG‘é|•2ãA¸×Âïv¨c5/zlÎÛ€òšÔ/ŸÇR]¯—­û¯d=Üdú£ÒUÛ©ŽjõˆPÞvÝ ù Q£v³‘ õž£¹ÒùÆÈã¯oâuí:ºeRg¼üÏ4žƒk:t‡E5³ÎKveín{Ÿz•á¦ÌþP†‹cqRö"ÂBuŸR_úÏG(öì '¯ðâ‰ä=âäµ&ïðÉkEž\Œ³í:H &p» ¼_Unkê^— ×wyöøóî逬endstream endobj 1021 0 obj <> stream xœÕÙŽ·ñ]ÉG ò4hÛÍ›LžÀ¹ ×"yˆó k%9‰µëxåCþ‚|vªŠdwñêéÙÕ°eÀ£6Y,ë®"ÿ{˜'q˜ñOúïË·ÏæÃ›gÿ}&èë!ýçåÛÃ/ož}ôÜAˆ)#7¯ŸÅ9>‰É¬S“pêpóöÙ?Žöêzž”Rûã„¿µpV¸£»ºBšÉÿvÔ””ÇWñÿ{«üñKü-…ÕÖß ¯B5æÛ«kåìd•>~Î@ÿ‹ý~ ß³ƒ ŸõñÇW°Ok´Py"Áã°ÓDøiþyó;Úr8„)Xi5mÙOÁÏápóûg7?ýl«I†9$ vv³ÅMˆi¶Ú¥=h#…ÌCLÐq ¶/lÄD)ãdÚBúM˜8§•ó”œj`;òøö£•r:ð%_EØ€åñ+œgœñ^ð8²·wüôJºIk ÃûüQ¿`0Ò*Êèãýºö› Gî-üœa¾œå‚¾yWs˜Õñ3¶ ›‰g§ôä`DÂßzYâÏéÇ¿¿d¿0þø5íQùî‰!Þ+~Ÿúa  ßkÜ#=‡xÏ);TC“VN^£›[›>ýÒ( Dûlp¤SDÕ çîµÔn ³=\ 9’W„ÿ~•ÎL‹Çð+NÕ³ó+a-h|Ÿ'c½G]öœòÒü.†ýÔÊ Š.®H ‚—øy/¸Z~h¯ã2Á™bÃwÄIBë§+ŒŠÜ’ñ&Á@‰ã¢úöJúI°Oa¤Ç~Ä­ h xêã ,,g¥‚+øe¡´UØ•êŠ0¸má5l›xÕÒ™SŸ¶{3Y¿ˆ—j¬¤×=½@¬ŸÐóB7¡3Ý<€iéæUn°Ñ("NŒJBÊsWÖ‚5RYk8·GnÒ¶`rSkl8ʧ೙ŒòCíø*ÎTz·(ÒðYp¹cd½#´•ÛkT›œ>£9‰xNvëGªŽbÁk165™˜*Ädð+9!†VgA©³(u/³¨,|ÔeíšÀ'ì KúnàÿÔv®KÌ|Är±Ö $£gÿhÍ—lÍŠ“f{¾Ž–QŠ;ZÎ_/<ÁÁ£DH5ÍÁ7‚"%Ò‚­I-€¢~Ÿ§ αL`[›Ò0êS-@Ú㯮<¸½®4æÈÛRàY¾c1r‚¸AÿœÙ%nÜž#t83 Ç¯'¡E° ¹õ`gù*b(@DÄ:XEÚ弯5í=*R`uüfµ$qš ÛâC‚Ó{M/!Bª{¥#ZyJ$[0³L´vx\°Æ@ ÐnK‚q&'âµ¼¤Ð$SD»"9ѶoŠÀoj>QO¡ë zH®ŸGWß‚Ðèõ«©€nªEm=™%„ðß-#¦uéJ©YÀ)u³ˆÑ£šz´¿~²³tqÓÀœälÃ(ןˆ™òñ‚á3ÐNÐRø­§%¯p†D•=J’ Fœ!IÙ–`P^~!IËÏŸ¡²·&?F‚L†* õ*U€TÇ`¶Çê¼@¦ÒOà ³[Ha¸Ì”]ÉWCÑJ[vŽÀtÜeB4dü0 å™Š†Ô½rYû4Â…a i„ ×ðI¸+fý¹WV{ôõŽ9µpш©´´)5£AZIüÅ©p¸ÖèNbÆ1ÎéãŽ"ä’t’Â.8zéQù¿a¿ù˜tZ{R¯ðÙ€+¬‰£e|W&I ‘s'ã %¦/l/õ°jwñØãRͺß͊¬ØW'GXŸ¹â¯¨—„G¾z‰ §  „Žt þAk±|Ž#z=´$p½U}•¦@"ùÒ2ü̵AiöøofOfFÌ(ØäL~ß×ÿoÒ‘•BŸUfmFé–:4âZ˜ùN ÓÄé•'¸ÌíìÌS|ˆ:_©õÀ£GÆ¿Wé–þâde„ƒÃt‡k°CÂíȳwNt~µñ¯éX• ¢ånbÿÄNÌ$C 3Á0†Q2­2ÙµÙiÂÈꈺ•—HòøAcø»ý0ñ®Ù¥• ²q6¸úìp^˜}%üøãoúÚ¨4/˜2ZDZ0Îz$5ƒç.ÒÜù ðf}üä“eæê5q%jÂ$Õâã:Âé]—¡ ¨p!ò蟖‰H \4ò‹™Az4³/Îkà §HΆx\Ž„°T r  ˜–&êä ~ÊŽá«Á‘pÖ½Í~MØôSa„úFuæ=oŠÏ+î+D £WnHT‚þ´T<"ÍÛêT!Z‘ÚQJ¨Ç¨?©’pØãHÿ3ÌÅI’œËhéÔ$úeµôtBWÖŒ)fÌíÙêçÙÆ×@¢Éóµ ÃZÖÙÚ&NԽϸøImB¯ýÂoŸ m¤7àÔ½¬²êCT·ãªÕHÛ }U¨ýúê²F!·šçyÄÎÓl·ë˜TSOݸJO]^Ùl¦QÙP‘fÑ5%Ëw–l>£1M ¿¥nôü(/çkR bˆA}h F“Ð¥¶ƒyQ€°–3±ÑÁŒRªã,b2‡C[yŽ&¤xš'çßDØXÔ¸¬&4 W¼ÜÌPÓ&ÁÉ?Ûñò¨Dê<~ ÆŸïx ž@˜)"÷ód׈¼UŠd¨+êF¢û»ˆ‘’*+Åìž4JQcP¼Â^PSpê ˜Cÿ"Y?Ç*Y¾³HîÂäËç®2†ÃÜ.Dò@yš'å8Yƒ*Åy¨]½˜w´˜h"A„£;Nñ9?¡Ú©³¶ÊWîSŠvIg!.F ËÊez”µËF6‚¯3Ò3|£m8M;º¦!ÚY'ÀW¼~ÌÆß Æ e@<¼C‰é+àÉ7±bÔÆÃ13©áÉðD¶ M^š,g§(Õ+ ),l¾§¸J;ñŒÙpãZÑæàóQT= Ì.ò£Ø! ïcš Ò;lÂ]ÊÚi £à§¤^Î ­i¿PAx(_$aª¦™œ(9]¢½Où"!ù¾øˆ~-vlÄim/¶Ð[†?îÈ8-[ˆµ*nŸùï '’Òm©¶”úm‹˜HÕÛ Ç†l®ê^zÂNˆ=#Ÿ¤“ƒ$¥™ª¢«pö;­xâ1Hþ1lòG\ÄÏV*Sè¾ežž«ÆHìÂ_(xF誛@ÿÁ36pJu~0Kþ¾h ⼤[Q9æ YlÜŒÊÍf4;ÑsÅ‹Î}¹l±ªÂ€—©–-a‚`ÎkFb`(Ùgnyß³|WÅ€³ãÏG·Qg3S}:bZ¨[æÁ¸kp h‰,¸Êe³GaWŸÆœ½¾[}éïp»”U¤ƒ?°¬ ×cnz³ï ²ÝNa@ïø'$ŸÇÖäHVøêúò:6º§¯ª} …32?6’«ªœÕäc8û¿‰±}õëV¨sᢢ¾:-9|êwLZØðä«Ù…¥kñ‡iœr¯¡_)»¼ö”Âfeð®± tV"ÕžfÚ±‰õÖ“ÖÆ$i}¼>OõÔà;úýûNËPÅÜVý±ÝeSìò:Ýz¯À’‘±?ôzoUh%ŸM‹]µØQÿÚ Ê-€ðIêõpÜfh¼â¤Ø§µºQU¤^ÝUËÄz›åZ8ìN2²ÿ(?¹ebîÝdËM–ß"J8>…¢†@ìfTód2Á*>~ø‚v¡¥ð>ßsÑA«âË=[ùî*_]_KAGöTk… _^ µ!¿7{Ò;ÂNéñ §-ng3k¹-ÊÜÈ‹wnÀ"B¹ðÁ%ÙêMTAŠ ñºl£Â¡Æ H•º7øÚÛa†¬“è¢ÓySùºdz+@GÖThhEPJŒÜ|ßÅy~U[µs@†Ox°<¢N¡îàÈÖS!Hð)€ã´àº=!)'ÐÀ6|¥|ÅE˜šÒ8zqÛ×q·Ì¼Ïô¯¢MÌÓÌs•B¥ViŸò]úÖUÂS-ú}µ0²ÒVï Êx³Ãé=­AL=q>T ¹k%Ã$}·ˆ©S?yU¦N×jxX›Eä…"‰ØÒ—ÝŠe¼GÇþsy¿ ¯Gó¸¥eÛD+íª—W |žÜæ¹—:Õ›Vm¯3½¿²3L|Ì¥\FösWUø¹v !{Y]†DD(Q]u =Ä™A5]GðÕÀ¼SõwÛÀ[Z\͇«\¤–Ÿìë»õç«õ'PZ@ 8;yüä¸~þäêj³œ¯±l'×Êa=Oe@Ž_%°ÿ©½`žwí’übÅã~ýùE¿õŠÔ<á–'âOå¶Œ?é㯀Æ&ÀX¿,±¿/Ï«ºÃç»5…†ŒRÙŽÚЫÔH+¤¼æ@Wêîa\Ø`ÃÈóØ3›­è,Ðs^µ¥Æµºˆa¾9%³‚hüp„&›N‰žÔTùú éŒÎ¡ øÏuô‹¸ ‰±8­.Ѱb6ÐÜU])vu5Têó z Ü0¶—Ÿ(é7´‚€Â‚ˆ£‹óÛèíϽXÚ–x÷0³ïÙÜ¢ Mù&’>éç¶-V„_XµÅðïmå'÷ ö„'´¯}uîNš¥D 6‡,UÁý8ö9¹!¾!ø“Dw ~yˆâBG3Ä»žå=æžÈ¿àf±¯c•TMtŽ ¼3ƒL\ÿÞTÍÅÁÁ´qÊ:n• CßËëdfúe#AC˜Ø_Qºnwq%ëšV´nÍŒWDßÅ©èkwPW2_ºt3^ÜÎâRAXÐæ©‹QÝ Ëúb´€qøæÅd:6Y-]„º®ËÔ˜a 7I)å·Vöuè•w¢g7K‘¦ÅŸ^Ý·švö|²ñV`§Ïbr¯·Œ¦7fÁ¶ÖYøÙÙ!⣜ÕÀ WMÞÜè¶ÁXí÷Jw¥r&Øa–l0=Nu¶ñ¶fOžã }à\VGdÝÏNm¿4øH–…9f,‰Wµ8}Y ÝiÉsá9þ&Â#»ÁºOXO 3,µ³>ƒf XÝŠ*ÜŽ`{Í` D765eì Cø™~ûcØ«{Žz‰Ïqpj›¤(@ö݅3ËÒì ¶É½\®v,wø¹««4?øo®§ažèô”Æ‘žò™Í.ãÈP¸eÃ@ô2iè¡•eÀ¾ë橛챇!ru×ÃßÖ§]jÿ27ŠÞÅçî @&t^FnX'ßF.ˆ7BW‘üKíBqFÉ#‹˜–!Ì™½„üž8õ¾‹MZ-Gÿì[]¦ÜXëwøX·† ½`+cM­÷v_š¦m*ƒëÒªüõÑ R¹/Ö …»®¦ÓÎeˆó´~bHDîfüÂÍ.‘$¬0Àæ>á¨ÿó«†& ¯|aÖ¯9„½O7Hüæe/¢fû0Me›«Œ3Óðm—#™œÛ¬ËPŒ¸±â^mjG±èçÍ{/ Ë0aE/.H›+Û Ü(]6UÇ0Ë­§±´õÞÓÚU2)®å‚ö.) UäÈ1ZjÎOhlkꊊb¬ÓYäÜà£ôt™Ò„pըд• Ìë…ºÖð‹øîˆ”e«ó ¯‚ãë8Ñ™^[𣋳ǣóå`¾ˆÃƒÕuì©$¾µAZb]¡3ëR›‡1jb¾MKú½…ÄÄ;±¡äq„ÕÛ¯'¥J.ØG/ÇÀ*ÁäÛ-:–à›Ù¸Ñ’ãX#•¹3/Bg´ÜümênÜoàŠ-?2cÂVäJxÛ͇¹ª ™ð‚2^=;â k6˜6v„µ6ÃHªáó<56M‰R·ì)Õ}a°¨,Š”3 zuë‡ò¾Œ±|¢« øæÃ° @u¦ôy4z†r¦g=6ƒÏ`GqtÍ&-Ù_Ó×ÎA4ÁêÖAÀ¶+Çs”“æ×"¢“V2”_’~É_p€E©ïVÊtÒ*$d,å@ø~bX Äe®z•G#ÖÂ6Êx¼oôHJ%!àÕûr«8Ö(^™ô4¾b·/øÇ¥Û@‹¾¡7þ@ö›t7)×Í$=¢iÊ\gÇäàÌ66%…rÀÝ' 2浩dá©9VBp³æ©Ì­é-»§‡â«»£œÙ¢ Ô ¢—J<às·\ÃÍÜ#ý‰zé¦x”ŸËðÎex&é2Žý{|­ÏoÌÂRkE !0÷‰·Zð  a±ß/="׎Œ‡¸¤uuï4ÝZ–n»›‘½øu‹~±ì¸·M!ƆÚÖ›ý ë³#œj3…TŠdy )ưùwéãÂÆŸ²Â5lÕ”νpü½Ú’Ÿ×"”6;|õ|GŠg Ð7RóС¸‹†U²×ˆâý4ðp0Ë´•B%—ªz䔵8-öoÛ¢å 6TÑ­iVO¹™MB¬ë†'U™£'t~•™ZöA „6Üv1l £Ó轡¹3JŸR*Ô£»žEèc+Á[]“úÁ™N«×© §‘·wÔ^ÇCÁí)Ì¥Ø%¢ºù*ðéÃbªÄmXYüîg×¢¸ÎuÆC‘¬û"£Å[{ý7òßb‹ ;?ønù“‰¬‹dG(³×öÊã‹eóL»ƒ(úÛw bÞ4Â3¼o~fàj/KX H®,Ñ}’i¡Š|}Ÿ11HöØ–d†OÇãªk[ƒ,ÊC®¶rÞQnæße4§öwìD:ý˜ù¢–ž%=@1z$á]ÜZõ CªÂRØØj¢J»»œušïC¨úÀ‘ bi Š2Áík§þ“ý4\0ˆ2àáæøª£q ½5¾1Ûo±eþ죬@\$ií 6ëøRv¦Ø‹‚G°áýà1½H(†/ =_ñN6"@¤£ª8£ììîÆùâoí{öâD„î»Ú‘­Êð-8…÷Ë[öe.¡kWdå,ºµ« [Ãy“| ¾ÞõÐû}¾é:îݼ|T½ q–;#"z®ý¸…nƒ' GAV^F4ïAÄ{Êaëé‚xnrÜ€µÜž—>˜÷49ÕÒuÞ¹,vUõ0Ú* Èéú÷”o’Dƒº–ÏHNèF>z“÷Aäž—­?qøÇ7Ïþ þERöÃendstream endobj 1032 0 obj <> stream xœ­\[\¹q~ïü‰~óÌs–·ÃKÞÄ$H²À†aÌŽ¤‘œnI;ÒÚÞüúT‘UÅËá´ZÓã,ñOU}UdÉÃÓ¿ìÕ¢÷ ÿ£?ﻲ>í¾ì~Ùy–¸š½6Æ,.ì]Pn¿j@ßîÿ¸ÿ¸[þ¾SûW;«’[‚Ý;£Ô²®ûcEt0KÐ{«”ËRô êÖ½‰É.ÚJû~gBÔKHµ‡OzY«i“xB÷"Á€„Ôè öýN¬ ¤Ú]$Œ<îwïw¯…‹ ),¶egƒO x„åÚà|«™Û•ô ÛYBm•f]teg£ KhtP»²cD¬$ #ÂÎyåûØ Bžw«ömìœSk;gÀ–&v ˶±“¶øµ"Åó""#:$vb÷»IÂÀ£gWcW‘ây–Ë‘aÍ5vl›ô ÛE‚´Ù¯‚çEEFtHìÄ îÁV²„Ga§×húØ Bž×.™6vÚÂ(êb§a µ±Ó:¤6vÒ¿V¤x^$PdD‡ÄN¬àb7Ixôìjì*R<Ïr92¬¹ÆŽm“d»H6ûUò¼H Èˆ‰XÁ=ØJ–0ð(ìLpzIvï­&v‚ÀÔ.9aÕ‹Ðö%g¬N-ÖJr„ÿ¥T{XQ“Hà6é€'q%«°ëKVaÔÆ£6Œ33!¬‰%H›tÜï*,pÖ°„¸®yl³jƒ¶‚{ˆÝ$aà1°sÊмcR`ž5,×ÂÈo5S»aGˆØN¤M:vPèò¬a n5yV±j7츇ØMÄÎèœIMrTï*¢Ë*Q—Õ*L¢²ŠT:gknã¨I9Ÿ3¢£Êùž%Ô¶ãz'ˆ/ÕŠ%¤TÖ™¬ƒÚÀŽ­àbe‘0òØ­–+‚ ªäs–ë¢ï4S»aGˆØNjÛrVÄ—œÀÖXò=ë vÃŽ{ˆ•EÂȃVbXë»ØU¤xÞAimc¡}ìlÒk»\a›ØÕ6ûµ"Åó""#:$vb÷+=­T{;‰]EŠçE.EF4KìÄ6BÄv’PÛì׊Ï‹ŠŒèØ‰ÜC¬ô´RíyÐȦ,GûÈû;AÖây ëÓ mKdtÊ–qw'²pü›ó9K¨íÈû;F‚¢ÝI¶ìÞXµA[Á=ØJ–0ðØ™Àû;A\ñ<Ë5Æwš©Ý°#Dl' µx%ƈU´;# Ö”Ýë vÃŽ{°•,aàQØE“7Ú«\ªŽ@YÄ|€Åk„1£WX÷‚ÔI_›Ú¾ß~¶éá¦E‚´IÅý®":.ÑïEÅ^tÈè+«‹€DÏ,À$Hºa´©´l)`x‰Jj7´£ññÚ(ÂNÁ¦%šÊ)Kn”vÉ1¯Ì/œÔþa÷ËNçc™=ýqÜÿëíîÇŸ‚³û¸(ïö·ïvåÈFï!Ik mÃZÈBpn»«ÿ~üôðxw¼¾ýëî÷·»ÿÿNçÀÈ‚ï°NG éó `ê1Ø~ÄÂJYO‘ò"&ŸY´Æ¸Œô’Àò?ì?î Î :=JkyŠòÞ±AàiÉdãóøhuYW×ß$šÏ­ZÍÞ[#KX!C”Æ[~ { £)të»vãÙÀ¼×¸ ÷÷;m¯¨4ËVÖOôÖpOôV s»Æºô„õCœ÷s‰Æ©ƒ;8µ€¥–z}{@c2õ]`‘á«AEÔSD4™5Ãa<Ðã’úX|¬¼uP!hE¬O‹ A—CŸ5¨16’±°N ±ù‚‰1ñ߯o½æ3á§Ïƒy„cçñD÷¸™S‡¼²êÏ›9u8yŠÙözú¼¬ë5œx7óópòü†gÞ¡Ù5½†Y|8yžÐõNŽ›¹~8½¿¥¹Þj¬½ÆŒp8½ß¢¹že ;¦ã&o`¯qm~ÜäÃé]B+ëéõ(e—lý°¢GèÆ-ÊB*Ú߀½ ‹æí›Ý,¼>¿ß¿£(þø“VÖUÉ0°®ÒnÀ*Ÿû/ï$ÞÍ+5gǰœ´Ætí ÿÂÅ Üë'™€ÂuK˜xjj%*ǯ_¾ÎŒ´°!‹{ø¿„ʲ‘_¨gç§›y_iÓ¤§˜ûÞÞ=>¼ý*ȼ¬Ò)Ÿ™¿ Ì +eCæÈd}¦ï ês°ó7ƒ¾»'œwc!q™Þ{Ç/ïgރɅOäÏç^PãLÔÃð:¾ýò¾÷­¼x®PR6\ŸßLÀVìx>£1eû~ÿ¯o?Þ2 ËçÖS$S€ s[µ* K' ãðuŠ„TÅCäþo³0D(Ɇýê7c b˜ßŒƒ‹¥ú«5×–KãàqY â@k }Ýñø¿ùaë5Qø^ƒíí•>tJ…¥„êB–ëm¦#‡iÈJ°z…h»¸2«þñÛÿÊI8«p_}_½ýt|ûõñ7ìŸ3oŽ%ÿk?i¥þBÓ /qLU4ŠCc,¯‚“±/1l`ï p=‹ Õ&‚ó¤Á:Xóßþ9áwÛt% 2»k+Ö<Ü`msÚuéì¿ß¼}üðñûãÊQgIÍüÆýÿKª2Eõ7ÏlœÑ±?s¨ŸÐ8[Ùî̦"| !F9©%ÏÎlœ]é€ÂÑ!$#°Ê/`ÉrÖRu=ÿ¬eÆ{Ë`dy†CaÇ KQŠf,ˆ‡%CvŸYñdMÏzªL­>ØbÎ(yz6Üç86r¼y®³fœ¶Ö ÎpÎ|·mÊ]ØàÃ"X¬„~äi †6¢ø†Æ”-í fæ89~ ‡êYƒHù~¿mé=išX/Çybì«Êe9”ÍE8ÏïçŸ~àÛ,Ê.ÿv÷õnÿîðéïç¿»pÖå£J[ý%åéÃH~ƒ–“„õù¨r‚ÐS™î05x&#½äSiƒSü±‘£Ôs£5ã´µndpNŽ 0IÔ åÙq®aÄFΨ°íXŒž!ô"±\>Å‹Œ%C ’§ÎÂʵv9–:Rj$¯F ˆMÏϱÞ[#Ë3j“ö˜ª`AÄ}°»ô˜&ˆ¨‚RëóÒDÌ%Oßœ)OçÒnû"/D²8T :ã½e0²á´µndp†³´7C%DÆšön¨à‚H\´·Cý%Ïœ3Ç÷»$A| «Ur¢Wc‚\0úf¼· F–g8Ó‘Zu#Xq_Œ¨)"ªbå…˜3Jž:ïnuK"AÄ¡U2;T :á½e°ayζ3ZÓ/^‘å·‰øŽIÏYΚèL¿ä%O ½øãSñcƒ(*8"9)¾!ºž¿hŸñÞ2YžãÐÝu‚©îK°Lñz†T‡Ò‘bcÎ ù¤CéÄ¿q¨ó|-…$Ãæ<•1[u]àÐ ï-ƒ‘å9Õ0ÒQpÄÜ• æÚì>B–¨£W:zIO3zEóîxaËgä|–{•â&Hu¦ÑÃ褺·|7ÑšÓKþ÷Êè­ˆŒ^ÖSG¯h¾Ä½[/lùŒœÏY¿Bî Rº´sº/f‚Hš×Î꾌’§Ë-Z36„*’Å¡U×ó‹ÙŒ÷–ÁÈò‡Â&¶_vR݇—Rºå– Õ¡Öª~±2J>éК‘À’ëê êºÀ¡Þ[#Ës`§ÛW ‚ÈKœÃ“˜ "/äƒEy11Jž:tø”òØÈyþk“§­u#ƒs²¥ ©ß– "{%cSê·£‚ȾÂäk7s£äéÚ”/HËq õµHæÝ“ ìžf¼· F–g•Ÿµ|’ ᣨ}å“„ ÂG Fùò!ƒ7Œ’§er"ˆN†«w‘l•÷=rÉÉŒ÷–ÁÈòœéŒß˳·)Füz k(~=9âd(e3Rž:‡/È Ì‘JÇ k:ÁùÆ9=ul®±œgLð ˧¬« Îbª[Á&O­Ö}ŒTÁüÔi¯ ´ŽºNŽPqŸ\K¾À}3–OY÷]›«TÖáÉ {¬\¥ft¼*÷ây2Œ’OUç:‘éÌ’ët®ºž?g¼· F–gm.•éoKT„_^|°»%R>è—äeÀ(y^pRþà¢yAH}!’å–HÕõü×3Þ[#˳NßÓ ¸"rÉFëÁ¡‘k7tÙ©¹´2Hžž¾óSòí_•sÁ•š-§­ußñ2 VO4¬É—$ÚWg„žª/¸4æ.ß¾L«}&ï~ø)º0wläÄgOÕ§uß±“n†¬ 21i9Cdªò/Ô>HžNÕá·Žœ ¦á„ÓÖº‘Á9# ’¥+à6ˆÕÖYFjâ§N#à€n!0êš¿g¤ö¤Î֢ϯ³–OZ÷]uÖÁŸ}‡½eì—)ŒTÁüÔi¯LµŽºæß4+Ý/Sä«Å Ü7aù¤ußå¾U…|eÎFXa'‚Iø] ĬjÍWï&=…ˆ/ß°ârŸ‘^ò´àEQH×ùG¹ÀiGD|ÿ-¬HÞ"t›÷9ñÞ2Yž3qÏ×÷Rï 9¿öÇ\‚Ô[itAª¹÷5Hž9”I8\¹B(}’ÜHÞ"—Ü\›ðÞ2YžuÑÊûá‹dAäÒJŠ~ø¢[¹Æ’‚¾c$O‹ ½xjÖ}„ð©4’ë—Ø¢ë‚k,Þ[#KÔsêB&,¹÷ |o†+ô¢=þþ‰ /dþéê×7˜È`Ñ~õáúÇÐL¸z¸Vø¥PpéêW„×°Æh®±·òkJWo¯o0‘¯îJ×¾®þõŸ¯o€7„)\½ÊOY“4>=Î-Útm˜£ÓÕûFpKêkV²ª¤l§ð¾ù{ÛgÂÜßÌ? 0WŸª%ïØ>×Éx?'ùçÛÇcU}˜^™õªÛ7š××øò!®Á‚…àIØ>&*AH ð?T$p页sE%l£½MEÍ0lZ€Gb5Ÿç,Afí¤ýÕ_³@§¼‰gùmÐG½DðÊ¿d³àoˆ‘ˆ:ÄLü¡8¿q!Ö…õ” ±‹óØy4jShp@†H$ T†c­µC,…—Áè•…üS~0ZcÝl”ŽBÞT=èüU Kþ¾juk(>ÿǪs@ÿ7PŠ'µÚœäl1 MÄ/÷œRwL†DÚ¥°ò¬ |ñ¦‘rSüµ®Ò§•Ì&Gý0ÓSxz¬ÈƒÓ¹Ù(<^ãgQ÷»Ùã˜:{“†$Þ‰*>e3yÄGŸŠ¸`0EÀ"º§«¿]Ã0^­q­„6+´ã²éòs¡jat]È^¹NÊÇ¢;Úðìé#lÁŸg¦y™•j½êà‹&oqëÕÏ9/Øðv³žòBfúµÂMæ(y!Áˆœ¦…Õ.øJ§žÈ}hø·~i†@3íô·ëˆµŠËRDX2ù܇°¿ÁTĤ³N;«$Ø>ø¾£endstream endobj 1041 0 obj <> stream xœÍ=ÛŽ%·qï}Ä @€3O‡÷Kò$[¶ãÀNlí `åa¥½(ÐÌÎjF^iýùìTûRd³úôÜ6² 訇M‹u¯bõ÷çjÐç ÿÿýÍõ™:{öý™¦§ç㿾¹>ÿååÙ?}ir>ÏC&¸óË7gå}®µÂyˆvÐÑž_^ŸýåðÕWjpÖF—ÿûòßàU«lõªÂß8Áå+>Àhí³Iqõ3(¯Íá÷ËÓ›åçËåç«ùgY¯Õé!¹y¹¿¿8š¤oíáöâ¨\,½8Ÿ£OÉ~ÀßÎmòáð·µ>šxxÇÆ¼¦1AEwø;Fgc‚‰Cðæð;zÕ+gñM\ö?M®²²‡oÙ„|¡;®‡hÂá¶ÎË\¾$åðf6ƒ6¦z“mô~*XÐ(sx_Ö·Îj>ùˆ!Ÿ3Î8í/`_ΦÜAÍp‹cÍ ¬‡³Y6V&3ZaB\‡7´q§‚I|f™É1yWÖÆ~„FY›ã„Ó¤K Þq´s±w´™yã 6ƒfB‚ÊAq¤VÞKÖÚ‰Fè÷¸¼51TëðçeÇ@i¹zµœoÈ.\üh P·çGmï‚.@¼]ÁÉç”v®‚¦·Î 1é–¨aÃCò^$*NI}Ð4ìä¦õ!ÐŽ”±Á#eZççÕr–z5¾«snl ²ÎÀ9X‘à}9dÃ`s˜Îñí"P~X~ÞõžvÅ `Ú›¦éÖ[#jbüÐ*ÈÑL³\?PÖÌ@½gèÙ yÙÛ.ß½ìK»BHªaÁ›ñlB‚|¡±>Ÿ ZaA~7ú+âˆ:"M`œB-œÏøs¾PÃ!ó<|© 0ÄŒt™7…½y‘a$šµÞ¨‰WÐ6 áeQŸ]¡tk†¬cçpPw±ÃáçûmÍ9‡Öy‹å`üâÜÑm!tn¥;fXdÂDšÌ…!¢€4®}~ùû³ËüË!©ßt:ز}jã‡tø3>50‰Óe§"ü¿œí8úY Îf¸:Ú†è-ìÈêÁ†lÛøwï´=\±×ˆ lò9¸i:8…p8"*rRÆ„jÌ·Ë4·¬∠£€î_‚œÖa4OÊèqòla¥Ço—Íw¹X§!§œ&\½X[(DÁ}Å-Éi~ú€W`–­Â•pß@º.ƒa E½Ø+"`oux°£#ZXï]éA»Y ’"IÞÌ…Nb¶v …çjyÞ §r˜­CÐMÞáÉu…P+7ù®ò_!‚`Œ’ÁÂq?[EŒ»ùÄ?¾#ä»@ TëõJŸocVƒ  Ý´õ°ŽÕ ¸¤f¶ ~P–]DøŸ+º¦<.#4Z߯ÈÁö1 æ·>WiŒ["$—*3‘ ÙJu¾\ä<Ç 7í¸¬*È`f_’¨² •àâ/2B-‚=ÂLl$;;Á+¶«Š²A®9Üú$= ®ÀÚøä*Uið›&ç1´¡ÀÞXk^˜%ŠF¡4Ãø{L\ÜT{´. QtÎ'$o;t¼²ø .Ì;ŽËm¼øº Áûicà•Tø»ÆãÐðÖ×hÅ>ù>]«µÑ@µîqB€"ù 8I϶˜4uí×à8:²}\›ÎÛši×+Ó‡ƒ÷j4üc|º´+Xö@3aËîÂ9<Ì2rGÙIÍ'p5:‘ ®\޳“µš4 Y>n¶VmœB˜È¼Y¦c rê“àk-Z`}ð [‚@”í¢Hr6jak¤<‹AÚ„Öì#¡qþð5Ia0+M%cG) fò$…é1“ÓE g£úB؃]íB®–ÑÂÅà×}ïH8¸+¦Îy} çìeÑ´¼É IN4ß—1`”é*â°VŒº¶¸Œùx‘ÐwŽ#P Ýë‰!l*ûЍ€½ ±>m—Àè5«p¦A9?Ž Ÿã™†œu÷Pào`ޱËr‡XŒáÞ1†[GhVlv³zs–¾ä$Œè8–‹2¡ïíXôFºGГ0l®fÒÖ8ÚöwÒã`Iám9/í.½Ù†+‚BN»EY‹ªŽ(£§ËYbDÏ;ö™”U0¹Íà2‚o U4€ãBüǾñÅ8ˆ{Û]nò\6æÓ²Ó¬Ö‹•üh›ïT]u×X›ÕõCì¬#—= F»•ɯËØðá«Û¾Ç`ÏötÌ^`Ó—ÔËÏËÏ_-?ÿcùyI.¯Ž¶ð¯Uë×—gÂõAY½½;sàEÿx¦Î é1˜uî½ràŸ_ÃP(˃«³bö¢ÝΘ½€`[§L%ñÇàÊ×ËÏ_/??_6÷Eµ£nB–ÀSZBD+¥ÇÏ·‰ªuÁÁ{ˆ—攥“ñÈw±‡k¾­,z2húCy 4&rhL#§ OP¾±›Œ÷CΛü¦Ý”©ôÿ›Ý2{ÉÉf¢áuŽ@ãgt6¦ŽDþÄ ž:lºŒéd¬ÚxС}WÎ<ŽJáÍ­J™§k<9$;ûYS´–ð¶øâS‚áPÚ¾:0@ø)@{ÅÆpèû-Íóv†¬p–wÈÏ;œ“ö?œ¾]èx¥Ã ¼¹Òc6â¹Ú<À¤³Öþ¤– 2°¶~ŽƒÒ v¹^í«]/˜»cS1ŒýÕÅ´·,Y—ï ŒNå&Ì`)Lj+¨àŒ§”Ç7WóŸ­6WxþUY¥úâ1H[[1\Æ¢kœ‰®Æ”'2ïDVè ÊÕ ìë0‚š|t¢uˆ-®2' «a‰Ð¸.µîpC¿ßV•R?”ųPEýð® G‚éÈou/-Žn~n÷—·3•#êUª¬µTPrfÞiX²Mð†Aòí ë(^» "“J©ÞÆ´¼îeÊæ]°!š16 ;›Ø.Õã¶l&¹MÏ ‡˜&˜x3û,uê´WÞÀàªzûRô(m¶­I‰06Zô 5‚ „Îý¡uUlGÍ™»É:Žûª—n‚ìíÌ ðRŽï‹è •'ÉÐUr/š&2€K“À,…W’+ ÿ/*=•@Ùt} øém®T¤àM”º Ë7Îc>ÇÄ:@žƒŽžÌà9À nÆ)åN{ä•ç’ ²ç@а(ƒAo@ŽÉ<|ƒâp]ÿï t^~þaùùË®ãóå ~ß&ñXR2Û$ÿŒ¶LžÂÎ(®mOV£ÞþÀ dþâ¦XKD=€‹ƒ’™ô€‘‚¡÷×ÓÌ{¼>ÂB€¶B’8$ÿðžÉ#Aºs¾æ‚” çÒi4k¢íê‚YPiàv˜³©Mr ? 7§lê<ÅF2À5&zLè%ztÚÊô€0Ä2®^†\FtßTO‰íŽ\NCú^ê:•E¯á‰R´à6x½HÞúÀ(ŸY¢ýoÒv³& ÃIƯêÊàqÞΞà˜{•=½òÂéDºËs==°XƒÇNL¨*âø8Ò,`ÆÑK̨›ÛT˜¤n'L*3 ئÊ4‚oAœ~ާ8]«•ËŸ¿ÖÈwΘê@„*^ƒž{'"¨·£_­f1©$ErŽLªäBËË€óÒ0ø >¶ƒqa‹šiˆ©8ö® Ë%'Öv°DŽ5öì½… -"·3ï  0… øof/ìÃÚ&~àá‘FÀ#ö´·µ§W¹rZ'°%üÈ.ž ”X0_²®Š.¦IÉÛS¡‡ A£õc*ÀÉ•¶’iÏO»vYÐ¥rjÛUƒjâíÜm,,ùYjS¨j´¸Ï37;+³]^žm‚†[󘂘 ¬ K& v…š“fÉ—Ó\x$”i·9;²yu#£K,%­öÐÔQêO…èÀzòYŽÐ=Q– éCÙVüÁÈNâzÑC%n¢Ñ lAI†u¨Š"}oqŽÁI:¦ÞFÚÀ²;üH–ÑZMâK'’ûÈjôSk÷7åKœlj…‡K¦ †3Ÿ#éŠ9% äQÅ®·ƒ:c0ŽhÙR·àÛˆ¦Xù{µäß ý¶ $äÐÐF‰ò©!ÌlÙ­QäXçñõZÑADÙÜ*<V4ÔÙM·FMybÎ+Ë„%DR@¯¹‚dŠÉWätµ>Ò•­¼ýɰ†äÍÝ&Çm‚œDæÆî(²UaÙ_<] ܆¹ç?œŠî1Tƒ~žÁ€¯ùyDwlÑÊ‚;ã?"¶3zR ް<7‹}\.·‘ÛùÃÛùÝ2€EZØÓͼ«¿ºØÔ«1!Eió§ª5Aü4ñ[ 0¨ÒVD‡X×ÚÒ›¶A$ê¥òMmï0%ù¬ÛyO×åxaúúþ»ƒChÂ@Þ\ÀÝLŽ?¥€÷FfæK¢ÀëTîrÛTJXXÊÜЖ(Æ¿–x49ÏçH¡í•_›0a™›Pγ”xf`Ó´¿.êž%ž=픦ÛIb A ºÍæå4 Kï©Ïæäò/…mŒ;ù°`Äoña¥½vµm£k5$wÚè>ÔðLÕD$½ZW[¾q¾ÃDk§ˆ?n~>Œ‰Ö4ß2ÆQ²˜ b ë›¥Ä­ãõ0˜1µf‰pLr*%eãž…J]„Î%§§Tmtògs“ëx_sŠðÂéÓDBÚ´8ÕÍÅOiæ£ Ws›ÒJ E*Q¬â%ó”#·yŠPD|>ÅFÜŽuB¾{™ãè¤g:?73®X]ÌŽ<Ƴ‰î ‘!ÇrpŸ7Yù‹f#­!Ç2sÆ *3¦œðc`†)0ùTÃü›®9ø_]“´—BNR(ØyX¡þ@1ÛT¦X}ÑI„n}Ï‚Ž±Ü„5T§Þ«:q´Û.¥4YÑš{¨NÀ8ã{Ã[kÕ‰…1&n×þeR:àrZ· ò´ ÇH¦—¼xƒùáÌø¥˜OÁqEÈÕ,7Î<&CÒ*+3ƒÂyJÑ•X+ývñ5ÚQ!ë½&94!wKLF$ŽÈÑJ*§.´ÁÙr•Y®õ¦Ém±¢üçR÷ΠןÔz„o’›Lülxž[ âÖJ–ný;Oæ!¨J«ÚˆÔìŽîk|Bži“2+A-¬0oݵ–©5ƒ QL€|÷nÓ2Ã[e»®£>Ç¥8 C ½+æ®ÜþÆV7-{ˆs8øfo:£@Pì½<æÙí"²£Ð®}9®êRLn­þX†¨”Ÿ@zÓApëº_P+ÝÉ«/õ;4ï³QÛHoС”–jh›fInï}T:Î`«`1S*M˜Wû8˜l›ªÑ=›jTEµ#„’à§uªqŬ¾\î\`p`,n“XØ'h`Aé% Oª]Y–¹¦ =ð(¦~ñEظ–ZRŒK‚NòÕï2¤ô¤xUÖ„9Ÿ]´­2hÍf‘ÛV€ñœm+ðúf¶;ÛVàT`ÃOÒ·"ƒH~®Fõ8|»?Eõœõ¹ØÙ·¢¦Ù¤£goôÃ÷n ÞËîAÇÌH\pg#„‰bîÆnnÄÝ"Q¶{Kµ[±ªIkBDt*nˆXõñ‚Öé½Ð–Üñác¯§Å•®Mf©óˆñËTí$ˤHÕ³ç¦~ãž÷kk€£æcƒþ˜l©åÚ#jØ’l§÷€XmžlŸKIV4•èµ6vUÀp¼IË!ÔN'EÚ‰‘Óú:J"¤Â…×UødÏî[\ÀuXQ°]›À*ñâ¾Ti;àØ Ìö¢UÜÒèˆ\f Ì÷ll¢ûækΛ\Ói„dÑì¡Æ¯ã±°$½É¡mS'ӆ娯¬RœŸÇXI?òI¾+PNSÄoF— áõª(„«ÍÚL„ ÊÎàÖ] Þ«ž¢áu]õ¼ÚWúGÒ V¯‚4…–ežíÕ„ÝzÑ0¯ª.c¯¨UGÉ-刨ÐcyÐqu½›¶Òx¼ÄDÙàMè¥4£Šç$Ì'.>.£§„V²óð®Îá³5•SDZí2ª·Ô`òq5~uĦTILfw.HùrMÞƒ™j Ã…êûú7"õ?S€Ó°¦ÂÏ*²e!{?8X´ªGú㹩uB„³7Ÿð§‡׸ï]Ç:Ÿݯ„“ d­…a1È7ûmYݤ'B¸X${œÜÅÎÕ·•ЗºKÖŠËÎrû¯§2¿U7Éqãòõ ·Mq8&Ž”«(xt¯³[.Tg† oåͰg-—o—Éw'Âøà¦Û¹’ì±u¾Ö0ïÎÞ.ó™·D6kŒ¶…‚Gw>·YÚË‹„u´¾ÜØÅ. á¡E ¨‹¥–h¼*óuYܺjÈ›ò8¹HÍ’³Ì×0¡•;UêšæC3cm†R÷¡ ¡k·u„œØŸKªèßhc²§0Tƒ%\¥­|ÙeƒJVr×ò\Á‹öò­ZàËÿâ¢ë‚c](^‰|þúbmfk{T„™ß)mÌa`r˜ìIÞ~kn‡ˆ h}[á/…‘§æMÍ•=~ß‹_xa®`ç’ y‹k{yÕ»`jÍDuv8šº­¿)-޼¶-´Ô0ªIJÜ•ÑÙ¦“ýp°ü‘ëö¬ôß¶…¤Žü7¦' t­.úñj¼ù°´uî® [›¾?)®½]®™=Iöª s ÑbÉÉIÌ:GÔÝÁì×Ý]š{%”äþò]$ŸÊ"I†'GwiÆÖÆÏq¿ØbDüt“`äÆ^K®&éR¸zu1WAümyz½<}9?ퟖ³)Fè²OÕÊ›8y:|ìœÍ’×ëÎõb±¼Ñ®>]>˜*cõêBþfêRVr~ö|aÓu`#™fË}a)œú€æ¤ÔÉ`•[°$Ã÷|ÞÑjë2CÖ†kÏ”&“5yIÈa>lU WE$°¤>„܉o^‡§2÷D=v¼ù²\•€A­Ï¨¸?øV¼!|nWìß÷vãüliÿdx§ NŠ)jo %Dþóx)sš6á3@N‹õþá£ÜA–Šæw é3V nT˜Ng.´¨kSØ&Ñmæ&B!D ë ÀËšîÒV-Q­UÔÎPÈk×mlÖ!+œØ<üûT`8ZË[ŸŠNûE<éHuNOêtb?˜‚×ÍßN¯Ü®í6qcˆj¤©¶®Úl¨a­¸ÇŸÕÓU—â~ï8í~^¯¯üñÚŠ—[=o³íÇ|áʼˆÐZ`ôt¹]æPËÏÀŽ*‘÷h”Û²Š »J.Þ•Ñx¿pë>}dPü>Âë2 êÍû˜OCöO6 }}ìï`z‰=>¥^EÂZ:m<®I¬¹¿2t^>K*§î;3c“ÃUBÝ©dúâá’×Ôr¨´{2žkH^ÀÕg£x„íh,Þl¯ü¶:M%°ëö7£Q‘¾\wÏ—®‚Ç›ƒÉ½N©Òˆí(í=c…²l x¹â)4)È^ðàúHÓT¾?aY¹a*ÿ Œº©ÿ/þ¿ŽÍå:F=¥Úï3ηá¥+ç¯Ë X2#oG“žܸC«ß/œ#£°Ø‹;L;„ÙÞvDzxE:4}ڦŋ‹ömÖa3éL_/Û¼Me0[’BsxXÍê#.ÑÞ¬ biêØ~÷£«®6óïUÁµQr~ Ád*¼Üˆeá„®©’Ä·ð«çbݶ³÷KÅÓú,Vá l.à¢kL±ÚHÈ„¯ËeêûWrÝ.¶Ý²,*Ô8 )ßP!*êhŸ#–ìô>|:y‰¾½Ø6#$@´ïõj\]BÝ5Ah|’µDÓ:bÓÓ“È7õ§—ʧçP#ƒT]aÛÎß\$7¥ª;Ù·e‘hä–H‚„¨Ú7…R½f° ×J³ Ü»#¥ïóHƒÌöóϹÑÀŸÎþ1CYYendstream endobj 1051 0 obj <> stream xœÝ\Y·~_ù =Ížïy lä@‚Äñ"H`ûA·kµkvdäÇç+’Ý]d7ggvÖk۵èv±î‹ýýF r#è¿ò÷ãË3±y~öý™L«›ò×ãËÍï/Î~ûã&Ñ)g6ÏÎòoäFJ9¸óz^o..Ͼ޾;߉ÁX…Þ¾ gëmjûô|ç¤Âvû88á…Û^ãQkoâö J¨êùa1ÑÛí뼡—ÂoŸÐ†ºí7ßL»|{ñg «…æè?á%!}ñ(>´´QŸö.@Ü ÚÝlÍ«oæÇ«ùñÕü8ÌÏéÑÕÏžõaóãOôb9˜nûâÿÌ/þÀ÷=äÅj0ÛÿžïlŒƒóÕÿf¯}¿$S”ÛÝMTøi„56¯fX´k`Qqؿΰ¯§UâñnäéBe“™µ»ù${hé„•ªCË—óãÓc–ªF ¬|0£P=8ßa¡¡'߯™6d&ñNEw”T‘ôeÚ„ÿr žTƒ¿%Tü BاF˜AYS0l¯Ïw*\WgxEÀZ[¯<_~>?~È/‘cZ –¤·D(嫟=½Ù&pŽô›ó„Ó8Kz¹#cD¯ihæÔø3M° Âä/|–W!ZDF1xï‚ {PÊL—å,à\ä=œW¯3BAë‰DUƒ¥‚h©ÈÖ£Ö°$…¸šW_M««’ºÓÚgŸ•ÅÚ¢,K%jƒ¬‚lH¢Ø ’‚Og‘圡Ý'lø%ËÁÇ_ÿ¶¬z—Ø‚G•W'¼d‚Ç‘}¾.›Äè§­ð6×L< ó`EZšp)ÏFûRÈAûõYw·AYËIQ_Ùhf"³4z¯NåpüÞëû*¹f_²“LĆ$o*Â{7Jë5Ûí=úw…'jäCR‹gyga*a*Ä`:1ªtŒ1uU¯v#ªYŒÏïqzÙU¼Ûï ¡ãH€ÏΡp2.»j°ôyý)ýT¡1qÍ6´»Ãqì{¬Z>Œhíq×mÀpÈ)Teh5/Ë®Îrqã0œ}7àÁ¥°(¥»_§ÓEÑWñStŒË^+ó1ŸyÈ´ ˆIF†z„ìCLÚ B m OP&ñÕ§_AêaèÓFzx™­Á»¥²CØ~þ”-'Táññ'ÖÞ0¦bPÒç3 øuR*kd±c:˜›ÆA®9èÃÑF?)ë<$ 1 µ¹øËÙŧ„úäÝæ>Z%óÕe9-ç½¥°–o9›‹Ù[Ea ÄõZ<¹ŠëNƒ3Ê(Ø`bÈÛ~E¹à¤¥à=±7“E§,_Íø_³åLù-«¬[!õªYx–x(Ø@oyºÖ8 ÞÔS0üõ¬ÕÚiWA!ÅdJöÊè=I „K‡Õ"Æè²#&øUÑ£´JáÎg_Ò)]Ü<{fà6?"™ý¤#"6Ó¤ ¼¹ÄÑ!À~^yuöU7åmPžRÞ¨H¥i à`xÒ›0"»4aýæÜÖ®d:AjCœ%ŒÞhkÕt%½‡obXC™h ÖØ&ÙÖX2“:ÅNPK]°#DWù,HoÉè¬ÚˆD0¯p”è0r}ÌL+$z0œV´ò$ZyR%µÊa)…,†1TòvŽ6Þp¬aÅgŸ„5Ò^¡î‚Ãà™r“Ùû–9èo[‡ÒàÄcsJ̹͹ʹ]Tß ë*xfÞ’UTZȰnWYX8ü=Xu~÷çé¸QÃÀ¥#T€ã¶1G “¢Ò³ AV¦”›Û„5|›Õ±‚aÖ¹mØäi×,ï~¯¨D¿óàžá”ª€šEWs]ìùj@±¬‡ŠHw¯këPëÞÀá QVö½ÈÐ[:Ž¿7¾ÅÁE´UÌÄãÃâ½Ô„ª¨ÑË(9./g!_©Þ¤Xn—ÓbÈo\Á1ãõ ƒÝ¡ˆŠ u±„qðñ9ü*‚¥XQ¨‡9ßš“ˆÃ¼_ÊI.“¶OXVRj­¼ã|Yҿ;ªdî%Ûå£.Ç—á‚ ¶Òlÿ” í#…Á©ìÜà<”¼Nາ#úÙ¦&Ç*E ¬ºó“ÄŸjŠK.ïG.ô¸d"ŒÐ$^ ¢)|ÔˆGü«)pÑ¢0d‡ud S æ>Ó1J U‚§#k=ÝhÜ^ 1ÿÜRbƒñû ^Ѷ±r´ªdUlyT‚]U›åøÂg‹8`ý&C mÖ"ˆäïz &ÇIw$ £m”gOŒ¤,8¤d¥œ?ÕÀ‘w´4ªŒ{KÊã{®V%¿‘éq¯òÇxñж¦F‹êEYœ\¿#ÎÉdNy ÷´=¤Œèƒn¯zzÅ4òõüÖ¤Jã‘kUjB R7¯ºÑûÒª&Wµ–aÔJÕSÇ•s¬ˆÛ„Ë]fˆÚnÒºYï´cß•†C; L¼ûÜAîŽìS‘ñå”É¢áÀMÉ4*ÍX?Öœûé;d&»tÞÂÍA‘%§kGü&oâ¼ëõF^gÕmjL†æI†”iÊ$K®­èÒø€ ü³Ø}CYO>´éL‡&úÇ7”]ư–Íݳ4'à*œ ôžì›ˆ"à¬; Ûy)q b)×.ìÝô‰v#Jµý#E¨1ú @~ ¹·éIÂ;U„ø!¥AäWVR|ŠÀɑٳtL{~Á‡}ñ«Ašz†î^ãW‘ÊCvW]ÄÓ~Ò‚Côö– ˜$|°š….4KNöuÍŸP¨Qÿ û!'ÒË,äÈÇ¢ž&êN8ÉJ㟸ä8dqM%5LªG¢ÙÕi§6Ó¦Ä<ÖD¾Iͳ¹¬ ÷Zz=ìe‡–ÊL=±á‚ð!V:Õ›²b2±ÇÑ{F¦»Ö'›vØ À/ì&)7KÄ´…)˜!·Ã½ÔâjT.“ïfùæÞ{E»l\x¬ÕÄáM>$~»V‰Èó%¹HWj„ËðõÈ™$ªeJ=È`r£w’˜›S_c*ð¬Ì†bCŸš,³9q±ò®j³ ·-…:<Ï'ëg³œvíD Ëš¥±ŽJ•y< áƒ;8žM{Ï"~C´ÕĸO÷0 ñæ"s^äß¹&Ø/n×UFƒÛ’&;ÐŽ‹b·àªˆìm&t¼aˆ”xáë³ïˆ ¶>w×£å=Ô‚á@5%†IU¼G@8¥±M$“MMñüÊ«4ÉýI@ŽqoЭ‰ —-ÆÒ꘨ Pg‚j¿ÛÇ@‡OôÚ‹™¯USCcd|‘ªWDíx˜Â(n¹k“¶ÓÁ@¸Ô‘v~½²­Ô çöàÉÝFØw6dÐO•ÒbÔ=L±,•T 3C¢kµ`÷‡€ Z7šÂ‰³·ƒŠ†“rÏ  mnåZYl/ï9`g»°Üò÷¼³å|à’% ¹`iY±ìí÷Ǧ¡ÆØÆã¤à¨™¬Ózè*×q >/wc|JטDÉà—hšÁ7!êb$HG׈VW^Ò†•æR’+¿ŽRΞë*ËÁŽy\‚&;D™ìøýÒ)xÂiŽ.Ž˜Ïh§çn˜’£—‡¸˜¡}qƒQ’$^“Çú< ±Xº6ÓLCLöžÛçZ2’…‚éýP&Dåj$X‹âžxwbü·ôBijÁþ0{xî$êÛ#S´²2'£ÈϾU] nrî$â@­Â‚ÿ<Ч÷)„æ”eΤónÒ×›iîï˜æ•Gj- «Õ敹•,3{ÊmÉÊnqÑ@ŽÇç:Å{v¾«ötÉêFí‚òP<ý#­ãF{Õ´|ìhïåü˜[ë4ü:µÖ‘çÊA«ŠTB4Qê¨-§•}­õvxyœ(uOóäBXk}:ÁŽ.Ç •ɳÃiâù#˜–áXòY Ên”UûùlÀŠšVö’¯Ae$ÒE‘· +o™|,Žl'”–êd¡›^Y™äÊ—I pÛòsR|4#² 9„g$W°iƒ>ˆâ½QS­ ¡²¦øÈ’TÍ‘EwÖ.™«ë»]å¯D¤‹?óPlã/¥Ñt Šjé'·ÖTÄY„“ijY9ESádð™ìz4{|7¡”l9wì­úTNÒÙøÑ謶é ÀL}„.é À!Ôïjm {e5õïTkµ:ÇÚy@…“°v~ KgÖ¿b­öÊZ+G7¼ÖBˆÀ•6/œ¢³B ÂúÏ©ûÞÀ*¥…­Uw¢§zÔÞ5¢[xTí‡hf*+…ΚC¨Ü½žƒ˜×ØšÊwëQ‘Æ"¨žq&Q þœiz‹Ôã|?št ÷­™à¹ŽöT*ñZÄÚL5Ç•tSz*—ÄáqƒçaŒá +hä„Ûg|Xÿν_ùÓÌÄÞM”,1–ã½8‰<ˆå]wha–ß©¡‘>æÀ±Žd!ÌIXÓžÞÖXÿ:例fÃÃl8}ªC—d¾÷èãÊ)fÃJФpãú–fãG¢K`X(ÌSv¼ò],¾ÌÈð;³b¦noüÌ»­e)8g¹€Uì}>kÅ ¦A\³ä8:¯>ëボb’£pêC%§§ÇA‚2º–œ»´>ZÀ¾E.ïK©Ð Xc jÙÖXß¿õ±6¸ŸÛú´7c¥¡²áf§écYöÿåfìXWìÖ–®÷ú·“]»Em×{E7Ç#DЧkS2I5Ýqåצ°Üb 8@=–vw1³×½¶þ w£¬0”HôfŽ¿ã ‚µÍLرÝDH'uŽ_™ŽÝ4"Ý6‘Û/²ì#„ªZø¹;I·Q^dôk?ÞE«øÝ¡ß¢"p!|Û“³Bà ¹î…†Ü˜1Nó‘‘^gôI&“mf–®òk\õ£Tì7šº¼º™5iZ…i^<¸•lšá⣧Ǧ{Û‹çœJ÷?MÕFÚûá·$ªyNÓ‚9ŸåKØõ[ôô­to¢þ.PÐ3‰í©™%—+rküè+¡OjQL7íOR‰ô}"¥NR‰„‡Œlãœoyc‹mê ëf65Ïß’‡›2£Þ¼'ýXi-î™ú»zR¦fóë À-zu!›úªŽrŽ»þB"±ƒŸP¦ÃÞòê°øž­F]Y¥æŠñäóøÀ Ûú°9z^èqÀ>Í*Ò]³"V;úr¿ÉQKa²“iÂhüysUŽó¡Ê©Ï•q9¬5Ï?mÍ :˼ ]nJÑÀCݾNS½AÛ®§Æ7}naé#ÂGW¦cÓ3gVA@ ·9ª¢éõÀÔ)C¬Š®y×cF¿ÐG _T9WÛ3m èîÓÝ»ˆ¿ô×=ÞæajÓL„pÿ¨eïED"ãTý‚´h}/rkn‹1Ç–'ɦ)?æ§yž n\ñ´"WÉ)ï~QËì"¶Nœ«"ëƒ>Hí¤v®¥²»Ë3¢ËôÏ[”0ðû6% )ª^||9aó¬Âf¦{¾0 ¢¶NŒ¾/¨U;Æþ—”îhÌUböÝ4&CC͈øòkÉÞ\>0Ì/6w `Èퟨ$åšýøÅ&¹#Š´°pñ°ïÊ6wpèlRšØÆŒ@|4\¡Ö'ä©29È{qoĦt×ï.Õ½"f™’_8è¿tЋ÷swýa>dF í¼Ùì(!˜¦¹ô|Òùfýd/¾<û`HÄqendstream endobj 1064 0 obj <> stream xœÍ]K“7rÞðÉ1¡ðÉ? =–ºŒ÷#싽k;ìpØ^/c/»>P¢DÊ+’’¨•¬ï/BUTWÏ )†*ÖT¡‰|~™@w“< úoþÿ¯ïÄéåÝww2Ý=ÍÿûâõéŸÝýí«OqŠN9szöÕ]~Gž¤v“ú伞¤×§g¯ïþpþâþ"&ã„îüö—Z{ϯq)BPJ¨ó·ôˆõÿ<ÿ™]ÿ^µ" }þ’ ó‚=óÙýE;?I)ÏÏ×Ñß°'^И˜<Cwµ¶^ùó×ù:HκW~2Jþ•ÿyöo˜©ÆtØL¾äÂlŸ½ÀÜè‹ÒF|šÏ|ù§å’Æø§gw¿¥\<½|wg&aO?¹ÿr§ðÅ Œ·ôäíé5îXÜqËoî~7\‚†°²b’yˆu ^®´}¿^~U‘¹]T?áo²L5ñÙM2ØjY^1Fó%úš±ú{¼jãÔÀ¼ÐÚhYFÄó¦Cºß-c¾ü]œž~ž/¥•„d²lPÖF&¼©ùïèEï]P¡ú<ç©·YLº¤GŒ ‰éöÌ9 ÂΟäûAk]½ÊŸI" Q1º" +€ÄBÏ%D-8“V¾ËÇÈ/‚BÑú_¤r“Sò„‹É'W Ÿç‘‡tÆ{° c ˜È×Ä.|ø3|¥çÙL°‰‘t÷ö×c>øt‰:LB¹ó3Э„ÖÑEt^R£}Èßñ“nŒÑL ‰%[Зž©Ïûâô.ÏÀhßà3ø¦Èì‚;ÿ”ßÃ2ï雉aRz,ïœko,ÕX„‰¥]ÇÈ&é|‘iѪµÚ$[ʇ).–„ó aõm>ôËyš¦”Dù«L’‹–$á üS’M²å—™Š$ßÖn囯 [âüMH‡å«=b _.üy®û2‘®ÎCŠûa­Š-»F)‡¢@6CÊI[Ù±­0³ùsŽ’ Ðï͆AÆ÷iHEÖÂOXéyÉ“Úsq­P^[·‰:h’á@‡Å.ÔÚöu–p íºˆ8Wµ—4œƒ÷;æ8_Ï“Y\¨VÞÑ€4HèRü½èD+O(ìÓÂN>ÊF§ ˲ÆÌ³Ê*c|žÜÎ,´6“‹µd‚ÂMëìf®M8s2Ó*5‰Å‘†DDóïwÏþæçÿ¢¿*#aüØ;»Všè[én¬g ,ä¯ÇzNX©–Xá¢7yrñ’VˆëdŒzra¹ó€¸N&_†€ˆ%´^èè^vã:0½±LëqÙ") ÓSôqW>¬‚åï-7 |ÆÙð DI°{¡IzÄ+Îå¯2œ 9`G¢=ÿz5\üƒŸ÷µdvÐ÷8¿I^Ž«2÷‰#ÿøE?l#Í6x¥¯&ó &-óÀfÂ=gï(~ƒù€éÂÊ]Õ^nK^Ñ{ÈàtÃgLb _ D›)N7ßhú[×”’VŒdþÿfÆá<¯Ï̳°ž¹W ¦|K(#ÝÐç¿Ã%ì8š§ ‚P‹ÑÀû%þã=÷K‡LŽ™Iô_ÓÔâ|nh 0¸Uq?«Nâ¾ Na™tŒ £tégä”/,En…DjjYÌYùo®^¯VuLj¤¦ LÅÂŽyV59aò«_Èùk3§´í2Ÿ•+õX=ptç¿Ç%cS"GmÀÓaÍΪ"LðÒW¨H?EÐÑ€gþÚä`ò¼ê“£Ê{\&W¿ÙúBƒdQ..^mȲ'Ÿ¦ƒM.aO0éÒGÏä Y§’öüõk’K¤lAöeÈLV›pºT#@zŒˆXú ®¨Áë8„­¸™Ê–q LG‹˜¿6oóØ.èÇôžñˆé%1m0ŽUŸ*Õ¼®§R²~LDI-”W®+#^ƒ_—îWWVZ âByZ®JЬ|„.˜Ê”püQ+ì†r­)#’7X˜Åf:{Õðh|›áp­á)&&›BŒkLIw„îl<É\eèëuPí:(Å&ÿ)ا„;[&‡”õ˜,-÷Ñ]² <œWºaòÀV5LöLØ>—5²éÌžiS˜5¦tUÎ!-Hnõ£ôË0鏿&yEúaŸ£’ñ1v.!+Ä@J'a£÷iÛ²Ñ'Dë:ˆÛ1Ô‘#d“a*[4Š3¯ÉšÇl˜m¹nŠÜÏ¢1ñô‹[w:)XÊfe>ÍDÂõ›. "¯©&™j»´áÅvF¸F|Wb¶Æ;QØN>Ãó– ‚_ÙÏq˜šÀÒßËf#Ô)Idš)u¡KÁætòÉÚµúÕŠçí:EвŸ·ÍèN|[e\D‹”q87{l3qJÎ r¦ºTWÄ0àx^09A¼í~"ENn VíX”]MWÛ£käJŸô*Ú‘˜ 8 µjŃ\™Bª@ 1’XŒp7ª¾ô#‡õ2,4î $²"›…¢…—Æ õ`[*KBœn„»nQ¾4Hƒ[.*9RÛuô :ŒJArÃ4Š6ÉO€"ù—8²ÒQ& T ùL1r‘ZoŸ¯%7ùKAÅ!Êð#SáŽöoJŠ5²€›ÈLÃÒZx˜0ȇ`Žƒ:.Ô6ØÕ}}ž3 8|ÓÿŽž"ΣrlÀµ¢€»i,h´§ Á¼ÑÅüÔyôßòÌõ ÆÄÉJã Ö}}G?ÆYî<¤p/àäò°".¼k‰ž_þ°^ª+X/˜¹¢-OõZ S'w¡^Kp•·‚z-Y~@/MùÅЛ§Û½ô¢ˆ©3ÁJäáðÿŸ3+8²”›:~q¨4žŠæüÏ÷~+,=/éÑQ]µ…máÙSxSÇ9yHcGL8KH¿¾®çÞóâ<²xFð¤ÖÒ t´·Z‡™ËQÑÝ lª3]¬K2~½(ÏEûU~ῧá®ñæGŒ‘+‡³|ÄXZ9)ý(ÄØº@+tyUÕçŸ2†O=¦)]浓dÌBj¢6_ÂH”†ÌÈFœF}ÏñrSj)ƒ¼¡1»V&×q UE Èà0¨Š\„"×r`’WÜ-£kßBfÉZÌÖÈ?¯ ‡RÕ8ã,€x$‚¹Ê#I°b| “ÈyhÐäÙOÁ/hÖž¡Cà¢Fµ‡6.…ha4÷8ä9‰ep-òlS¨ä<§òd“ÏÓ'MÀšÝä[ˆÓ»bF¡€¡B°³‰3Ô18Æ'yÀƒØ)špºš´BP^ÑFå&²Nûð¨¡z‡Ø¾šÇ_åîLQ2%/$Ú¦.õÊâ»r¢ ö›ÄÊx‰kØ«$³zÀûA°lí¶w Xu.$ŸÒ a®­(Œ’fÆó¦˜`_ö©Ï-Æ]˜Y ü‘,…V“cXÍføºò˜ÑÖÒ ÜP ¨ÔîýÔ<‰ï1yä¦ý«¼2Á›*¹Å'ˆQ˜Ô=0ÂLG€Ëb¢åéT]ч¤ªR¶w™Z—mºÍÆ(u‰v忺İÐxQJ·vüz}B'ûp¸>Ëðõ /}¤>á1ç~}by5D^µýÅ?Yê….ÃO~8øI:xüzBœOF#~ó€’(ËâO20)ç3þôj%âç}¤©I5Ÿj2#ï¶Àk*7»GMi ÿ145Ót!Æ{P“ÑйØ"4žÏxÚøÐArK¦µIŒ `óÕ+Ö,Ø…Œyù€ÁŒà·Ì²†å¤w>&K² ö›K`Çøú1™ÖÞTmjL~œš¿L&Æè‰ÉDħ„fÜ„ÉlÅ1¦·ÞfÐî®óàøž¬°N_¬÷â}1Pˆ~Mo´ÊMK=Ñ7]My6ã~ÿyÂ1TEºÞ±$üÜÙŠ]ßä{Èç÷°½V-¨cùû2ÄŸ™",”ìõß{Á­»Àö;#RGë¹$*?Ó Š4€{:þÉξ)ÛÔßšz7ÓÔ¸aµàÆ]vP*gâD”Œ÷ÑtŒï—ùH¶ &LlKc¦ëöü›Á3¤“ˆ]·ÜM›*,U—$䘳$Æi9¨Rdg©£á}®^Ø›eg¼¨jå(ÓªKïg'²ñT u¥nª\ñ¶°¿‰Ø©É³ ìð&b%a´?A˜1=CaŸ¸c–;‰û” úò)õKù€¸Ï¹Ú).{«À5Q'ô›ê¶XÚ;ŒG°ªÂ0yÛ8‘¬™<Šl6ʥŰÕþ½º_š!¾ÌÏŠí: dTÖ]5ƒ}ž_–éØ#ÖËŸBübDilSåKwm·úZv‚eÂ]UmäzÄõ‘»(>$ßd2¨TæÒ=2‡©¨½Ô«ž:,Á§ê¶€ä­ÅëíÎNdq©»ƒörZ8èO½óµ´®e4,1_¾¯;4Mì3£Æ«BàN!q„E «½nëDú(wYHñC-Ô”À…7»9[ÛhÏ~hà º-C_+_Þ8l¦µç—+ÓˆF µ'Ï/GÛ‘Qu‹Y…¤ÏÕeºÁ&Þý]§›;³YTÔSdÑwCY«,‘6÷ZéÏ?Ñöq 㜠- ©†t#sÄ-ê`÷ý¨’=›Q*”Æ–Ü¥ö;GÑ~Àäº;Ú;»Çy`F\ÕjGYÓšv¯Qô•ÃV寡çñVHÒ#St—öNIÏÊäe¥ç2œc,eü0Æâd6«EÅ…%±£Ðu䣨¤²èÏ4Öv¾ÄÀÃm¼¬[­“òуÝÂ|uûG-w^›HÈìh+C㹩 fµ­k¹S°z’Û¹A&ËgûÙå¶Âb ;¥‚(q¢¶ªÛm0„±»œŒ¾Ã#ˆÃ„ÉÙMe›h–Jí… je,h7:n=Šßo0Ÿ¦¦Uªa%BêømàÜ*QÙˆ2ÈË9™Ô”‰6â¸_¬Jl²¡Á?’еk;KÍbÿŒ¬Ò±ò…9‹Ì¤Ôøäj.÷íQ3f{Ôœæ´Yå8­.°j­Ñ-zääÁã”èio[Ó’ÆPÕn•мŸ2Çbò)QKâ©l§ÕKîÚÂW²r@Ó·+Ì3îG©ïçìë£6މޝ0øW<ÿkzÄ £³|Cš”»jm÷ÓÉŠQIP¿™å“3¬¼uÿ´eŽPd¹9Ÿ"±ZÔ¢ÎDoÇ®TÈ`¡h\¿¢¸ ¬”BtžFŒMSk“vóùÁÞÄÁ~Â1 ƒOQíC—ù&Ü#·ÚÚTP1y/"Ö«#Sw¤'¾\–ºöú:¤b¤>Ï—tdÏk²…‚Z j¨< :̵4¼uØ•„—ã×G¤—6<†8ÁºŽâì¾Ëàø9¿t|Íš‘§P㈠$ˆÔ¤: }Fµ¿T¥í>êü”GF¤82‹LDV™LE\¯À½)½Žçq"6ð¸brnÓY^gj‹ÿŽK9ß ÆnÏýöjΕªë²åæó|éÃ##Ì2È­»Ï¢w0ÀÞy•ýÎa«'eØÑ“»xQ Ó]Ö“ÞÇñ?<W‘š¤ö:±wçfá ¢‰£¹5Mö„à8éëVTAŸñ©è÷ŸZe{>Ƈs‰$ JùŸYdL6w—~ÇøÙtu‰ÚQ™:xÓxEÚ&G©´I+¬n‚ï.ZR_ù¡ìóûü4)r[¤ñ\{E1£Ø‹×†–D”Ñœá\­ßä'æƒóþ—¹*FÆçDy¸æT«§Ð_'‰K·ÈxîÇÔF8ñM¸õtBÚ¥zíêî6Ð-•ˆ@x}Ú ÿ4ÉkRaÛb”ø º½ ’¬ÒîÙëe‡~Ÿa9þöÔ¯ˆD_¹á-„VPnÚvX¹×Pwyí¢?Î¥½üEž|2OÉ]3_€y¹”•M KÒ]í¾Û$§ZM iøVµ.¢w=’mšOsíNL>â°I‰íiý2}HW=u-ïéÁíTvl6̶=\HòóšŸÀ1ð…;ç«SÖG~¨Í_O UU„9­äÎ=²ýtôQ|žYÚ ™Vÿ?é5§0åÙº`¢žÑ‰ôGφÈGKma‰¡9ây“‡e›»9ñ¢åëM³ÿ¸ŒóöÂËÚåñê~7¶¦Š‚s,Æá7Ä&° v÷·¦eU7ç(,E`啞$ª•‡±‘X–æÀ¯âd55JÛƒ]°ºÒŠºXÚm³å¢Û©(3Y¨WãRØy¡³1 ›åxÝ,G{<Þ·ì@"/íøÇh¥$G57eÀèÌ¿’4o{{o¡B±-d£¸éà¿:&øÝÀ`m÷dõLJê–ܼ  ÖMjE¨où¯ä”V‹Ê¤íw+ÚrˆG«ßÎàÉ#eõŽmè ½p’é·3¨£ŒŽ4¦Ž²rçe‚P²8ÿT£ãZGý¤€î4”ñEàÞo.íÙä²Éº£‡T4H? õD@}gÔ#°ûk]ã â•c¦¥KT·?è³±¨§y¤×ìØ>µ}CUæz¡|ðåuMŽ3hà,®ìšÛ]³Uïiùy·Áêz'Äñ|‰óí鈄vÂÏ÷â1þãzipNXÊê!¦rvœÈ;r¿ Øx'(ë;Ú¥ £¨÷³¦ÛaŠÂÚLº‹&=ž;ºèØÃJLËþŠ-Õh-¼×E3÷åoÿjh0-±YgOçh×M[:¢aܱÍ;ïa}?ËGÙî)‰yÉ4ŽOFhèUÎâ);ìÆd°ãŸe¤ïSƹõà•wy[×wü Í‚0ø±—N›œíox“Ũĉï7o§ˆ®JFUSæüi\;ÁJäåÙdÉž?»Ù@Ñmjaì.ÆÔŽº‘Œ?ÐÁ°Hø÷7ùš~ïþö8j!£G:uŸ6û¸ ;Á3gO{‡LÍ{PxÀ·Ë®wA±éñOoÁãPs®YjI¿(ãÜéBçÁ ÙÈë£×Qür¹D£¿½ûJo endstream endobj 1071 0 obj <> stream xœÍ}K¯Gr%à%íq1_b¹²*ë5K{ƶxÑÝ ‰”¨q‹¤šT·ZÀüxç#ÎÉÈÈÌ÷’¢L4bÅ'òqòY÷wóäîæø?ùïóWOþößÖýº{ùîÉž8?_“¿î¶Ý¯ÓuçÜyLþóö›»ÿ¸{ýdžfw\×âï~zâîþéÉ|÷Â{ç:în;Ü9¹åîU‘œû>mþîû'ÿÞÓÚ×er+%•–¼Ylí³óÓu´`«ão*[A}òn¤%¶zñ¦²µ:7ÇH ¶zåMeËïó´Ž”`ªç0¿¨,íó9~ Kwòž²tlÇäΑLõüÉ›JKÛ2¥?(ÃVë8çi;ëZcÞ”a«[ú Ë°Õ[=ú  ±Õ‚­žÇ¶B¨bl•`ªç°©º%Xê¸këC§¤•Lõü•Z-mË”þ  [­k¹ê*c^`«• u|uj‚.½V+êùêT]v­V2ÔóÕVUt­R²ÓsÕÔ]lR2ÓqÔ–~§\•V²ÓóT*HRÑVt)÷ʪþ}™cò{]/ô;½Rª§ ëÅ´.Ÿúw˜h¼Ø"ÖESÿNSºªXêŸi¡qR—«.êg°.LÚÒ*¿ÓBãƒNeÅb¿L:Z˲MgÝ)Ø7û…ÓÑ‚­ŽÇNA«Rêh‰­žÇN‰«òêhÁVÏc[ö¥è:J0ÕsØTU„­,uܵ•¡SÒJ ¦zþJ­–¶eJP†­Özøi­Ç¬öÍA¶Z°ÕñØ©º [-±ÕóØ©º[-Øêyl+„*ÆV ¦z› ¡K±Q‚¥Ž»¶>tJZiÁTÏ_©5ÐÒ¶LéʰÕÚ–e:ŽºÖ˜7eØjÁVÇc§>è2lµÄVÏc§>èBlµ`«ç±­ª[%˜ê9l*„.ÅF –:îÚúÐ)i¥S=¥Ö@KÛ2¥?(C#”Ž‘ òndƒ”Y?]µh#ëçÁÝ…ñ[úÿÛ—OÜ~¸ªåJ¶kš¯;·-~Úã þZ¦u¹+ ùùy˜húàdUó5mÊŸ³çO(ÙI8G iÉCùç𢀢„ƒãù“o ’2Œ„äši[ ¶ËÏ1aô+Ï 5$rXÀ³øPØÎЕmû]oòç56h0n±`phlj|KɶM×Al¡.\SI©<dü=‡Í×ùœ(`WhmórW§æ2É»40h0ýbÁ€¨€•Q7$ËZy©{höÓî 2yVШ!X`Ïâ£`Û]h/¾TÈœg²ç6j0n±`pTØÊt€’m™N_°­ç>ÍGñ+Ï 5$rXàsö¡°-ǹµÎÎaòwhlÐ` ˆƒ£ÂƉ Ûì¦å,жÕÇpèVž4jHà°€çìB!óîŠý•çê칪ԠÁ¨ÅB¢VfP”øk:J/²ïç2][q+Ï 5$pXàsö¡ ….vàun¼ÉžîE¨Áü‹ƒ£ÂVæò”\¡Ý ¶suÓz¿ò¬°QC"‡>g Ûáö©ô#99§Iß©¡AƒAfEBvÌ{=ø+a¥ýXc kq‰“¼¶]nr[ÑH~”>“× !+‰°|^CÐ@”°`pTØÔš™HÀJ° Ö‚ßÂkˆ ˆœÌ(Ï…×(+éìx“?¯±Aƒq‹ƒCcÓËx1‰UðW€Ák~—° -♼Fè`%šË$ïÒÀ Áô‹¢¦–EV0°^4h ™Qž ¯QVÒÉq&{Na£ã G…M­tB"¬«`-.“×49™Ïä5¢+éì&‡Æ –€X08*leõU`%kÁmá5 Nf”gò`%•çê칪ԠÁ¨ÅB¢¦„!V‚Q°7Èk œÌˆgò±ƒ•tn¼ÉžîE¨Áü‹ƒ£Â¦61 V‚U°ü^CdÐ@ädF<“×(ZÒÉ9MúN  20(²só±ËQ¼F‰°Ò¹¸Ø»’µ¸ C^;Ö+vE#ú9‹>“× !+‰²–ø(¼†( (aÁਰ^ƒ¬«`-ø-¼†È¨!‘Þ ¯QVÒÙñ&^cƒã ‡Æ¦x!&± ÞâNxMââï9l¾Îgò¡ƒ•tj.“¼KƒÓ/ ˆ Xá5HÀJÖ²Âk€F Á x.¼F XI'Ç™ì9…Œ[,¶Âk”+Á*X‹Ûyä5DF ‰øL^#z°’ÎÎaòwhlÐ` ˆƒ£ÂF^ƒ¬£`-¸-¼†À¨!ÞÉk€•Tnœ«³çªRƒ£ 5Š Xá5J„•`¬ÅMOò£† |&¯;XIçÆ›ìé^„Ì¿X08*l…×(V‚U°ü^CdÔÈaÏä5J„–trN“¾SCƒƒÌ Šˆl™ç5ü¤wE œtíW4EÎÊ[Ȥ´ó<§Y-AFŠÑðHBÙH^[%ë…Ìà\$ˆMÞ6±k8j3 @C°šJ ‹!ü,á’ócá0@@:^'Ëk8"a°ùm»‚£÷PE ä#ÁMygÄ%ÑàÇk¡=y$m+8G§âÒ™º4‘0Ïùm¸Æ¢öp³d, £¦pÐàg‰Ÿd— SAšÑÉp:UNÁ„Áæ·MìŽÚFð ,‚òÒâÁÏ.ùMIN€ fÑÙ8t² G$Lu~ÛĮᔭìü JAPNòW áàg‰–”–ÉGx™¨\8§R媲 CÍoבk,j7]Â"0–É1HB?K´d1y$,øCçÂëTéN&:¿mb×pÔ1qÀ"ˆ%9,¼ƒxð³„Kâ’G²Â:§Îթш„¡¥—Mä ŒÛÜ´WQ(Éœ±¸ð‹/”RŽ®€t–yÝ'*èFYà3ˆ2‡X ±ˆR£€¢„ƒ£ÂVØ!Z~¡_2#£†D x&K hDgÇ›üy Œ[,›¢"J2¡ÀªÐM9Ù#t„¸ø{›¯ó”Q ƒStj.“¼KƒÓ/ ˆ Xá%H„ZL˜‡ÈÈM„F Á x& F'Ç™ì9…Œ[,›>äX$‘gvÁ†Õ¿’S<Û¡4bä¾Xà3È„’Ä6ç-¤ìl&±mEQ‚ÁQa#cAHç*ÐRG«*¤<+hÔÀaÏ –"ˆÔ³Üµ¹i²gó˨ÅB¢Vè‹’È@kA–:ݽ¸•g…Œ8,ð4S°GÚîÚÜ4Ù³ùeþÅ‚ÁQa+\FI¤££`‹lU:/yTÈð»„×ù Ê)’@IîºkSÓ$Ϧ—!Š"K·J⹎eãí}BJÂMKèSÏ£pØ‘ÝÜé#ãP#º;=Ê#¹M$&yÄ…Ú4$B¨¤b‘:ª• %XiÁg¡5D š¼˜ ©AFÒ9ñ&k^ƒ‚B5JŸ’X_ñÌ!øLbÂï9â†òH6bP‘NÈeRviDÐ@ÎÅ@¾F¤N®ehˆ@S€Tˆ ˜ !(È„ù±Ðà græ(j d1P#HK/úÔTþ]ä(¡£äà,.Ïd–.9éÚ.™”hɦ¥#±ºªò¸æY4%,¥ôœ>á'ÐŒ¢Ã…[Õ%K`M— J4lÓÒ‘ÉM›=›_F-j0uâ¡#EË3«¥O–ÀlŸLJ´dÓÒ‘ÉM›=›_æ_,6una$X‚[â’ß>´dÓÒ‘IM›<›^†( ˆšÐ¼?c—©a$ï¶i-ÛZåü/)m]×iÝ•FtXt”g’$$%±@Î…Õ4%,©ô +Ä ˆ VÁ[ð[˜ ‘QC"‡<n£ܤ³ãMþ¼Æ Æ- Mñ%BQbÆãÑ 8‰‹¿ç°ù:ŸIq„ŠÒ©¹Lò. L¿X0 *`…æ MX È Ï5 ,à¹0%`*g²ç6j0n±`p´d—6Mv”U%‹êŒq”œÝu Ó·Ý5,4DÔR•X •édnº D G)ÄM‘ *eg,nKwÀšîZ,X&j©Êæ¦ÉžÍ/£ 5Š X!;J„ª`”½1ŽÚ³¿F`¶¿†…†ˆZª²¹i²góËü‹ƒ£ÂVÈŽa+X2ƒ[’âÂï†+"j©Ê¦¦IžM/C DMv۵ǾM_U€D¨j ­õ(gËå’?]>a!É¡²Àg’$¤*±*ƒBvˆ‚%,©ô S,Dª‚UPü²CdÐ@ä¤Ky.dG ¨JgÇ›üyˆ[,›¾‰°•X™ñ ÈNâÂïváJ<“ìT¥Ss™ä]5~±`@TÀÔM‘€ª Td…ì ÀBº”çBv”€ªtrœÉžSØŠâ GÁV]—£DØ)Y-ëiåÆNé¡cdgÛC“!-÷´ì$À^Uþ6bÛ•†D GKäP(wˆDª‚tƈAu×eÓ]ƒ. µTeÕ¦²I6¢ 5ŠªÕ½'H„ª`½1oJ•þZ³ý5éÒQKU&7möšü"ÿbÁਰ©»m[ÁªÜ’ì—üÞp¥%¢–ªLjÚä5éEˆbÁ€ˆÀþ5ÐÝËø¹›ÌzòŸç¯îþîËø5œðÖL-»¿û2Õã¨sçB8Î0PsÏsÝî¾|õä7÷_=}Èù<÷k½Ÿâ¿k[æãw_þS0´\µ¡5tqk°õå‹ðæß?§e^×ë¸þéWÛýëhc;7÷ïÇyÿcü·ßæk^ïß>}æ¦yß®ëþY};ÏåþyRÙçcÞ+õÿÿ½®Û±ÀS0\ÑÓ:ªPþZúm” ¶¿Šÿ “f¿ßÿ Ü|•”÷E‡Ñqw:µ–¿ qøûŸJ>F&¾‹Ú¡vn×½+!¯ügÌú3Éò3·„z´¹œì?=]Ž t÷ߨ, ÄâfqË÷ÁiTýj(›uõkq÷¿½$ûuÖ uåþk•Àï•ÊWÆóâ¶»íþ÷YyY‚Ÿß>ÍFöË”Ý:R _ÅÆGwV‰øÛÛMõ‹ ; ”¤þýEôrΡGߺµ5tx×ú@Q?³ËsY+0ï‹üUˆkÂ%äSçðµÒ–ôý¶-RŠqЈ¥.FÝ"ÆÕÚTÕ$I_cÇwÃÑÆ¿‹ê«$˜FT}É¥åÃïß P늫݌š©nÊâhÝ|õêTÚELÒÿþ2tdx².ÿNÿèov­ËHNC DÝIîhùÅçÍõr“ݾYlé›Ë-Øêx,YJÔý掖Øêy,cGJÔ-èŽlõ„±×ë,Wù}‹g´Ée\s!Û­ç:)…äOà3ÉRU6&ƒ‡Âuˆ# ©ð S«>"SÁ*˜ ~ ×I`P@Ü$Ky.TG ˆJ¥Æ›ÜyŒˆZ ™^ƒ‚D¨J¬‚ɸ¦Ëaág ºð$žItšRy¹Lâ. ‹H½0*Xj9L$`)À‹Wá9 !QÊs¡9J@R*3ÎdÎ)dEQ‹ƒ¢e9(¨•:H„£àÆe;²œD € Mâ™$ÇD€¢Tž“ÈCäŠB U–…C€¡` ·…ã$.( l’¤<“â(A•Ä8WgÎUÅG Ä,j ,µŒ ‰ðŒ‚¿¸¤I†“¸ €°I‘x&Á9èI%Æ›Ì鎤h ÷bÀ ¨©¥xH„`ì¿…ß$0( n$žIo”;©Ìœ&u§F „˜ß7jvÛýQÿM"rÚÝš?ª*äŵa²Û]»â¿àðPøLzƒì `/ø(ü†( (aÁàH…Yá7H@O° ú‚ßÂoˆŒ (‘“!å¹%ÂOUv¼ÉŸ×Ø Á¸Å‚Á¡±)†£D8J¬‚¸t†“¸È€9ìBx&ź0T•šË$ïÒÀ Áô‹¢e(ƒ|”à3À,„œ¤DFÊ”çÂx”aU™r&•N¥ã GU‚…å(’‚U·ÈrˆŒ<(‘“'ñLš#za©*;‡Éß¡±Aƒ%  Ž yÐŒ‚Æà¶ð#JàdJy&ÑQ <¥sã\=W•4µX¨QTÀ ÓQ"D£ 2nÃé¹P'Wâ™TGìÂTUn¼ÉžîR¨Áü‹ƒ£ÂV¸Ž¡*X•Áoá:DF6”ÈÉ–x&ÙQ’ɪJÎiÒwjhÐ`Ù€AQ³ÝqmñP›ÞÇ‚D¸êØ}_¨ìi‘íösÎÆäPYà3Ùr•X—ÁGa;DA ‰ ŽT|©}5‘€«`\¿…í49ùRž ÛQ®ÒÙñ&^c£â ‡Æ¦÷ù º«`3nùí$.ü.a²Ä3ÙŽÐÁU:5—IÞ¥Qé DËvPP;"W%¸ 0 Û'4Œ|)Ï…í(WéL9“J§€ Ä- ŽªÕŽ($ÂU° .ãö(Ù‘A‘“/ñL¶#zp•ÎÎaòwhlÔ@ ˆƒ£ÂV¶hE®‚QpܶC`Ð@àäKy&ÛQ®R¹q®Îž«JˆZ,Ô(*`jËá*—qû˜l‡À ÀÉ—x&Û;¸JçÆ›ìé.¥h ÿbÁਰ©ƒWÁ*¸ ~ Û!2h rò%žÉv”Yéäœ&}§†F ™ 5Û]>t<Õþ;%ÂU—›õõ ²cO¶;—s:5‡»²Àg²$à*X—ÁGa;D D G*>È ÛA®‚Upü¶CdäC‰œ|)Ï…í(®ª²ãMþ¼Æ Æ- M±%BWblÆÃ`;‰‹l˜Ã.d‰g²¡ WU©¹Lò. L¿X0 Z¶ƒBa;HÀU@ .ÌÂvÀI>`äKy.lG‰pU•)gRéPj0n±`p”¬æv”ä»@Éj¹SN›àL¬\÷Ì-½\G*Ï$;Hä*-ÈU¡:} •ÛFŒ Š ¹¹ü›r»…Nyÿ…aAaÞIuä»?MfÚÜ™ä2f1Pc¨`¦£$_ýM¹ÜRNâàú †>“èˆ<ßüi2ÓæÎ$—¹E…¬ð%ùîŒæ›AtŠ›CŒJ~GÐx›Ïä8Jò½Ÿ&1mêLn 0",?‡þ´ú£ˆE’ˆŸC-åu9ÊTªIà—eoë Û¨­ÿm  Ò‚èƒMŒQPC¢ G…­§4•z@·ª¢H`MMA+5M m#unÚìµùEÔÙ‚AQSÇ» É„F¥*”£^¥®H`¶²°Ú6ж’:7möÚü"ÿÙ‚ÅQaS‡î É-…VsC¢[64Ä% ­i¦¶´í¤NM›¼6½1[° °%¼¾K´³eN3%Öž¨cMqa¬s´… Õ6¦‘ˆ´!x(­ 1@CBÄû5ŠMLžÑÂ`5.K‘˜š*‚&jjÓ’ˆß”œþ Ä©ýù+4?éC$×"“®óZA‹½o€òl -Â̸Ûâ1É8ê"§y‹ã¨…’[i¶¡ Ëq@‘LÄ.k}L–M/¶„*Òol¥Þ×½RŸŽ}99:Ni\ÂX-4×ÑQ ÔcÍY_çëºöÜíÿá-Œ—uÙ™ŸeùÙv•ŸeÕÐíÊ ³€0/rÉ„ÍÏéVéq‹Aí{þ Ó:ŸÊvúwêu×Àw‹+¡®ÁÜét¨ë–vS>&ÔД×Õå_•\¦èBè+ŸÂxÛ®,É7 {§ÈÖm[ªü tJ®ÿÅõ•«3äj9>*Wgü<ìYçJ¼;7;)ÍTjªŒUÁç®Çµt£^C·¦B^?OUƒ…)’èÇ—n(¯0@AqýNQØïêÁrK˜XlÛ¹÷JZ—¨.ii×Ûœ¾öUtTûÞeÝÙï½?Õ†ìKhÞ±¢%çÿ+á½Ö@Ä q¨ù¡kÒ]p¿Hçñ6ý{?OWõغWOa»ÃÅ °ÖQ$ ܺþAnužù²ŒûõÄ'NÒȯ‹¨ˆš$¼ìŽPÔ¸E»Ì&­a¼Â6zƒsÒ?Kã SÝ´rÎéÄGü›!ÇÝ!ùÎ &¦kI;†Ó…••œÃzœÆÉ„õ€¹¡ŠÌq¡Íç™±zap½ŸK5)ø£»U“Új¥ Ú Mð½åõƒ²ö]~ms.´çþ‚,‡9Aý·8vÞWÈß bU°^ÔU/jŸË¶UÞt+T 6 ÏÛ«^ÆéL¤±Ä „|m 1b%#Ƶ…È–¤ÿz ó¢èä‰þ¼L~±ëD:¸þ°_M4ô”âÇ8¥]øÒ{ï×þ.[ü Ü1Ÿ·ª‹]{»xêfá\bÜ7Å0.v{“Ð_žÖg¥¹.·›«Û¦Ã»B¶9$ß]É4æªÜÕË2¬àª¸ô¢ªV‰AI»kK-&tKgŒüö·f–o²pÄE¾h^”,|Sþù¼ü34Ë=t™;Þ—¦PÏÎÓ¡ÿG é—lÄICwvï™ävVIR!ÌË »±F©Ë,<âzêvvþ:—S$q”ÓåPNX‹liLJ(WWÔŸëž *KSAÅu?S:,¨}S¥ã­4.s¹ÜùPSl­Ý”&›l…†¡È–ç¨•Ø òsa„5Rù€ÕÁ0j hï÷îÒD^`¨Ä©J¸XøëF¶÷_Dñ›¸®¿–¨hB^ªµû$Íë’‘潦áXaB÷Æ¡Uí®5ô꬘3ŸGelc70Ò.˜7µ{´è“qµP3eC”v`(©©:c­ZâŸü µOªÜ_&…sû7=».†=…Ÿœ¬±áEæÚ¼‹« l¥Ò_kûùÙ8ßNMèßÖ‡gˆ²&ß¶÷jkªôöz¯ÐC·½WóUÖG.ÑÉd?B¶F1þ•JͨÝrÙqyð8m¡gø0ÇpŸÓ.Ц 3 øˆQ„‹S×F|ÿžaÄfæÇò‹Œ#¼/̾<´+íƒÝøŸ+NÖƒ`ƯqMÿf«÷k˜ñÇTžhß½ÿÚ•'¡q«šÄ<ìî=y*¡ÑŠíÛUèRÌ~gêY·ušÃlt®:«f³DÛV.7¶"RóÖe=[Y®tp«*Ü"w«…€?qbh¶ÁÖ¸–²=î«ä¥ßÿ9{Þƒa=ßÐM@w?J a&úÀ©J,žußïÿ1©„†¹#G1Q讽ùR{·otlï§${ÝIBÛ9B6¿Vìñ½’“Aì½|‡Á¨Þ¿ÒKÚºÎç‹RB_IµöÓ|í½%’GSüÓ¬~ÿìöa=Ø Û ¿Ç Ès®qC|kÚuqê€só =Ó¨ùØï¿Çc˜Ã]k]Ú¡Ù>oÇí ðæ¶h¼q´>j«ÿ]NÈrÙƒC9MyÇ>üsv~¸Ýª*Õ ~½ÍÁmn´û+rWn7{ƒp;+ÍɶióÍŽ£“ëôWµ¦¥Ï,}“rÍãIpM¹vçÀMk—Õ³¼¦êª´ŠÝ*tõQ…CðG0UwÈÈÚéHÒIÿÓÓ-ž,<6SéMŸèãµÞ¹_}<Éu4Ÿ!z{HA=l›=[ }v¬¦¡ãDç³hŠ!á†>¿Ü,x½Þ}ï]L–>ÙC±-ǘO/lçîÕI±j½UÎwÞûùDævÇ…‰iŽ~¼*<>èE›_ÄqÀ:93?-1˜2‹gôCE©êà›þ0N[yù4ͪ÷ÓV™,¾xˆ¦>3¨ë‘y¼ˆ¸0Ì^‡Ã±š5cØ»a8ß7³J—•?‡YHÊvHÉÆI{³<¥~¯gÁõp 7Œ5aBÃLYH¶ß‹Ýe|öROA´9ŒC×fxÿÞWs#_\5h––‘ï[ƃj %uð½?Täì¢p”Ãz®' ^WÌNÒŸrëÕã_MÍ–^ü#HÂðo&Í>®,È'åe=FÎkRž±€pcýnÒìiOVëqGÍ5uŽ6ë–iÓßiÚÌ0&¦â¹eÕ6rÎܰM}¯Ú„¦‡’kü#UÁ¤Lt÷­—µrŽ½Ý­|®|„d˜•€Õ÷ö/Š5½Ú¨ç‹KRsüã›ÖêW߯Wã!‡­3•³’Á€|Ôëñ\Œ*ÌÎ?ƒ.=‚Ü·cÔ¥ÿ¾»jô.¿w»*™óŸhr]i"iGTI<ÞµC‹ MFàtjLZ˜µ[ÕØ[EçÛp}«]ñÌs5HÓD3h'l‚=œ]·«9Ú럮fC<Èé>Í_×»â¼deœ[·cºµŸð€¶õ2û9×f@:¸­üh2{ÈèóGñêݨîé}´ÍñÐ.8xšý2®åÍîN,Ñ1˪1LnÅObûÞmTƒêîoµVò› ‰z ÐÎgšÖ!ÆS‘7Òž÷:ÿyÆíÎk4ãÖýÃ`Çò›Ü¡o{w…‚ ñ©kìM…›í·Ò‘šËeq'}é^Xª½ ûs=Õ½àqHÎÚ1 %íwº£š1å|½jŸ‡@ÚŸjáù6ÂêvÝaÔü-/ÛÚ;ç+FœEiÚq£Wb¢G¦w¹UÄ3¥UTg®ÒÚËÞnÈH{!üg¿–ט´Œ°´ ­®ïýÃTƒiè»|köîÞ®D®Ó>`É‘©ýê _>—?ª™F»{ÿɬ¼áGùêlY&ú ?à˜ˆ ó7sBcP`[XÁþJg{'º~ï6àÏÓºUNF«÷:n­ÿ}6W íÓÖ÷›XÞ[ǼŠyȨ"ý9ÛKk­Øòr¶ ‹Ò¸íð*v\óqn€ª¯\Ä>¸ù£»0õwo«E¢Qÿò6{_B’P=EíNIõD®3©Ã˜*î-E{ƒë©ê”hYÝ>°çãeÞU.ÓÞ˜^uÇ4º®„vy†>ñpëý¿Dq¾¹—ffñžÓÍ­ëhpuÛn+_hƒ“Û{ðÌ-à‡Σ‹ÕX'žÈ %úÓ°÷PèÕ²ø F£š[œJÅ Ç6Z Íûû¹Õ­þF/•ò³ì¿Ëà¸ß§¸:Àœçhàû}e!U™¸ÒÙ臫¹ËÇ;.«†7rÌ·;o2R:̉¤4(œ‡ìÅtéõ¾[óÆèc_ªZþsip£ù!v5—)ŒP·_eTή‡ýJ¨jÆTïzF…})óåsÍ™§÷£±ÏË[]{±®ø#ž«Çskˆàº¶*eöðè‘¶NoÏGû{—™ ݨB$ÔØÖ˜\7ZRÔϬ¼.aœr5£à€m5¶õ°âc–^æäÆý¯ÖÖ—kÚÝ:jìîi7wRfõ?Ê:ô 3¸}Ð/9ÿZ5Ý‹›S\5x‘át–{bs¦M=b‚mæ˜íJÛÝ•¶ÁqÉÁ–} q¿æ¸îÿ.Jå*_èü¿OÒ›4[A£µ¬þ¢Y÷°hüéy¹Ç_` ½wü¦®‹'s·t{Ô‡ÎÝ9J>ä[ܸÎ&âìêc.°-ñK¼ÀÖn4-绘ùøÅ®Ûk*é®ä> =ìtA2âÏGŸ.ðñdomÙl_öœFsíö¥FöOãJ»šÓu¦MÅhý-"­¡¦YÜGTùºY<ïƒáZšÆÛíÓþÊÃí‘L³×š6bÎi߇÷>|§WŽzÃV/­Åìó¼¾g=/Ë|Üé]CYÉ‹9Ùxã©x|ÔÜ[A­$Þ\a<§PɆÁ`E†‡s¶|EçuîyºÜÙ9ìþmöq·«w £ž´?tf•¨¦3³Jÿ~c¨_ι׻£|=M@ÿ¨Ñ»™=ö½þÔL¬Úóv»Ä–mºü§½Ç0ÎÍ=~ô^¼ë†Û¬㊹ÝÖŒŽÖfï(Š—sý4Û)[3ÆÉâåCÎ2çR;Ò·éhö¬ëig¼Öíý2-K»¡G\Í)>½Ëê~ñ¿Î´"¶—0_=g‹ãBDËz³«°]ÁÝ+ȉæo¼–\âªKn qϦð‹tîöè„wa¬_ †ÒÝ)?¹eØ.¾(ri9ÎáÐè\Ã`×øöeÌfsã¬óóÓs‰‹n>OÚãüP_¢võÏÃè4Ë™Î6ê^V;§ßm=nÖżµu~Ò·Ý齃Ûãìš3ãæDg·K‡`]ÎüA˜ÅŠÔÞ üúö´+ndø_èK[¼µpv‰¦;¤{ÈÎá»h2~(üæ ;þÙ¸Ýï-ꋈZñûŸxGnÌ5¤‡FopÀîñÝö Š6^·e8rzßXMo¦¨‰îϹâ93½¾3ê#_ÈòÒW:GRÞH*·k¸t¤»Q½Qf?l²Ä<󭛨þá C¾å½Ÿ³ˆ_ÙÚÌgúß³H߀+ŸIXògnÏ¢úLBiK÷‰>»ïYĽ5]pÖ]·wcŠÝÇ~;èŒÃçñË- dÊ%cý‡§§›®ã´ÃĈåZ†7Èjåö”/Ë+±}‘PÅ÷ë ­tÔ|×Çl:ÛTêÔŽ÷îc-©i™éº•ìýuiŽ]Æ‹Ÿ¦æ¿ÕªäÿÊOœ|§”Ÿö+ïÿ\þù×·[÷~ÅÓ(fôù©øhÍÝùŒù(~gwþð>}c¾þÛÛ–»që'}tíðÍm!;þ}1!§“ÎøÙìø×j×%—õZ«?ˆœVÞÿõÉhÂÿendstream endobj 1081 0 obj <> stream xœí\Y%µ~oñ#®òt[Ê-¼/y Ù£DY˜ä%ÃÃÐ= (ÓÓÀ þ}¾c»ªŽ]võr'ÐRB\ª]®ãs¾³}vÕW1Ƀ Ê¯n.ÄáÕÅW2]=”ÿ\Ý>zvñáßUŒ‡8E§œ9<ûì"ß#R»É }p^OÒëó›‹?½<©0Ùà//Ob2NxáŽoé·÷Fûp|—®[…>N—'Cí:þö2È)ú·—ø»ÖÞÄã×4›œ¤tÇ/è6­­Wž.ËI8ã—Ÿ÷ñ¾Js˜èíñºl½—Â_³I^4ÑSÐfóp5 Žÿ¹„”¨ÂEzµÞ÷ù¥ò“1NWKå7^ÓÌfRZóûØR˜l_fñµÑ3§ß6U©ôç˜/êI,‹ÝŒx™iD-Ÿðe^®––äã—ixPÖ?K 6ZøJÄo˜ˆEÃAfK“Z•Zà‚ªP­ù“g¼PVMNjìÙ5àTÆBɦ’„©íûKHmµ²‹”„ÁĤ„ˆÆÍkLÒ}Á¤»"3Yk’ZIN­â<@+Ÿd&…8ØÿÓ hC U"á³ô«pɼ´ŒÓ¼Ž“„pÆÉ¼œç_o4›ñ]¾.b¬>eã9xù½äD’|.?LO¶5a •Ùø|+·ó`·‹âb¥6ù›ì:TÌ\Z‹²À£W3Àë¿3û¦gÅ Ša¾ùYÀ=ƒR8U?ë ³ûÓ_ÇÃ-~¹•Œùáß5€Ñ-~éǸSÚ¨ô~µþüËúóYwÀïé§Cäôôß<»ø=ÉÅë·Î|ø¢òï.4œf çD˜ôáæB{@ÊûùÂ닇»»nÌ0©àh†Éa)p¿Xûzýyµþü|ýùÑúó›eP&]uA;˜wùy½ËÕ¬Õ&¯Ø8y'Ô¬Uòfç'¯–à˜"Éý^­? Håa½j“©cŒ2‡Ù³³ƒFÇ,jmqP¦Û5‡Àmá(°ùn,'„)ÈÐz ]&ä 5Ò§¯Üý ½…g Š9×Û¸SÕS¦u@º¬Œr’øéÕá¤QMQÓ_è.@G“らZåGK/­.¡ÔG«°ÆôèÅßäáNÚup£aàgìÙZºüðÓŠ¾O—Ÿù~§]u?* »ê-iN©5®¥‘š¾¾´´G:$]à¥ñò¡ÊE‘'‘€œGÚ¡¥JåUÍøée ¾þAÄè‘¢Jȵ.ơԈšãˆGpÁ°ã1œÛýÛŠ¥‹óc"î㉅#p[Ôàõ ØñÎ6B¸r(i¾ã/S·‡Ö8…H‚VµSƒno’îužÃÇ*PïD{ŽqºÓ‰0שÎ].4D¨¥¬hé^ŽÈ}dg#$µKÇçÏ—[ûͽF´ ´O¶%‡ÐNã¯óèŸUsŸ€XÈ7lk]ÊR¢T‘çÉj¯"eÆ÷ô¶¾M®½Í—ƒ”CR‡Wu| ïTÎËR< 5l+þuM²ü¡ý†çº(eÍÂÉyÅÀ»Ïf;çÌLýÏNÍáPêÀ£x½‚òKX¦²ïîêÈ¿çꨤ{iÇö;å#Q»cãTòËPa©*»’Îr*„/?z»ü¦nxCã'x¤B˜v±XÚ¯<`š Ðƒæ®ËùRX[Ñ&.¸ÆŒÁ~·þ|›âаR±«}‘5Â…2Ôˆ…)FL\ØýÓBX~ŸµLÍc2zóKv™Ñ›Z®[!õ´'¢™ \]ë:~RÈ—EWÿj[œ&G"¥!=Å÷Y‡hQ… í| K5qTHêë•ÇÔÄQ‘ÐèrUÎá¼âå”n&ï„sœšc¥I·Z’ž6 ™ÔÈ&È5ö©Õ[yŠUêGUnÆÅGõöîªña•¥óÄ3s]yèJȳtåÉmT­«k&Õˆˆe×W CÄ#—0Âém8KBÚr6ñ=X³®#?aiì“6Ú6²„)Xô =Ë~9Ðo%øxæÞ+ >Ú‚u-Û3j!31¯ý©¡_×Û³Û¤âú KâV´o7£iº¹/íñ7§$~¬p6¢2©}ÀÛ<ìÕ\,ÿç¨æ3\?mW>ÕíÊŸHP¦ÚÿwÔ>Œ}µÂˆÝýv¡ ïÁ|ù´˜Ïû-ië$ 9ñÇä;éÀ°?(È :¸-ƒ£]¬åÊcøÎ€:)O1¦‰I] NN{r(¹º–R)FŠIᑃ˜  ±ò9‚b ø©æ‚>–àD¢y2'4e×”ƒ¦D8KSŽÂmÜš´œähLºáôº& >Nx 4JôY‚Fi߇IŸg艳^5¥ 4%ä9šÒtj&ªI×Â|17)YTu’‡¯«0ÁÊöôy^KÔ󵄔.ÏZKЀ|<Ûê÷â¶ùõÑI- AöÐÐá¹Ó‘íÊ\[ÆKí¼*a]Eeîä¹ ùʆº|~ú<·ˆwòÜB¡F’?Ï-' wÉÇ;9ýÞ…oËnc1~ÿµ´^+G­§¨**¯jé|‹õòÁ¶é>å¨2}³T¦w–Ê÷£»2Q¥ ÝMÒ[5b>ÿžM”GKx‹|æ¶.ÇÓš¬òoüÅ-κ½ËjCü_ѨáGªûg±ùtŒL|âܺ=ÈOK7ïO'ÁØ0µ‡Ò[¥ûzGéçWÅî>J½NyggbáγîñÔRUì¶õ i۳ߛƒõŸgY´ßm çÉû5»£ÝÕ1®ìÍ_ì{3 +×­¯AÇ}?þp–XoDkbÔvXoKGáôÈõù#¹(œåÊz›1(^ùAoˆ¯é¦¯¶³oÀo/­™¬²Üšs{ ã÷¦Ç<&ï@‡(؆Ëni„Gbuv#(…ó°Ÿ‚°nù¢„ýàÎÆ>E$§î‹}ZqØÝÝÇ>êvìßÞ}4‚ÿ è£@1R×Á¯ŠYÑd¤ù&‚“ηy™æä£$…ÓjÏáÓ5ÞÜl´—† ¿l«ØZ/ò¶§—–ö§~ãue:<È€Û$’¬Óʸ¯Œv}x½Ô¤#Ì碙7:‹xõ9€AçßS¡[­¦b›KöÎ Ï”nUç%“fI9ºüÆ7ðD¹{8zDç¦ËQ9¨µé;üM¦¥`w &®ª4­»%œ>ëµLBB6Ƥ]~Œ–ÖU½6!̺M°Ñ 쓦Tä×ú‡Ò& Ry_~Y×ëù8É%ÅñŠ…EÜãGô{=…F‰€Þ7ìì²v_§¥ÇÞ¶1/“Ò›íÍ,^åG_X¹ZÃ/Eh›”pS%Ò+ÛçÕIŽ †Ê®r!³ i¿½5±2xz÷Ũª©«Aof,%=}²ð÷rþ˜ZS§©ÕUж€UnᣤsR‰bÁÖû¯º«I0àÃeA]I ½õí<úϤ7óÔwÐvÄ3ür“žO tÓ 2ôM-°Òƒ¾–´¾qÿð^:Ïk¹u Á§Ö.½•^kw§½A¼÷ÎÐÌÙ¢o~"ê¯ÛdMìœ%F'l¯ÖŸ*ÑÅ(û/ô©Hj}ð½dJÿ¨ãœt#ökð™—Ù2Âù3»Ã4 ‚ÚûÀH?øÎ¢ú¨¤BVµôê ÝMiÙᬤŠ)¹’Ss¾ñ£†gø9¹òÝä–bÚš`s3yž¥½çǺÕi–°îÁst5QÇ8»Œ¦o°µÑUiŸ@tÕ?ï®ôe¥ÇÆV›>'xžçXúnß ’é£ »X¾#GJ´ðz$µKôDG½[/³0ÊòiW•E­XBñy¼µ¥œ÷ð/&MùЇåïu±Ø2ó}oÞ½>Ãñý*I.Ú$êm¹w^y^”s/ª«Çå—zŸêé~5KýtÚëôÃö’ùœ(t©+.†g_5‰UHNû¶»ø/ÜáYendstream endobj 1095 0 obj <> stream xœí\[¹q~ì8ðÓ™@§—÷ üæ$HÄpìäÅöÃZ—Ñš•¼Òj­üú|E²»‹l²çÌœ‘²z˜ƒ›,Öõ«b±ÿ~“<úWþ>¿»‡Û«¿_ÉôôPþ<¿;üææêë?j¡qŠN9s¸yu•ß‘©Ýdñ_ÎëIz}¸¹»úÓñtImTÁ¿[~þåæ?0Ó®šFNÑ*Ìtóコ>‰I´<¾¥ßZÄÝñú¼Þïè·µ:(ü6‘R)yü@¿QZ¹¼’Š‘¯„Ÿ^†p8I5Yãd^ñ›4›·!¨ã»ë“ “uÚ_¦É°žpÇçé·&`3´ž¶k'ZµN…ã§ë“öbÖ2¬ˆB_³É_æ!Á¥ÊcÒÓ{4@Ä çÕ½”ËXC\ÀlZ{iAzê•®èø¾ÞÁòûÇü[x“' ÇÛuBpUNÂÙÁÈåé;ößÀt}²ÖL¬¾Áh%´Ž~³E6[‡ù°L¯ñ’ÕÊð58ýoòï }àCþÊÈàCoÔ䬿„ \xo»¹ÃS”P…, …ªÄûþšM¨UÑ`6´L¦­Y8ã–½hUþŽý~O¿½7{ä‹pM|‘7ð ­|*K'†>e þšõ(ÔJü†ñêmŽrÇŸVANë€l>­½ÃÌ¥ ‡›ÿ¼ºù'Z¥6ëÆØ,ŒÍI?såOíäP“‡$â<ü{š\ãu–Ÿ”™-ß «°¾•“ó’„ÁAYç¹›èR¥álŒœWùKMÔI)pÃ̧ÉcôPúo»jòñRÁe ¹Í•÷”ÕÎZ¿É¾Î[A9‘KÙö—iF ~ u’qÒØòCÍYK?97;µ¼ 3€á–ÛYS5)ùw•Š-S‚p­D"ö1V—Fpƒ€¢#!rsü}’7¦Ó¶âßŧuÏÅÄ\ÈÃ]°ºZ“ÿæ{æ0»æüœ‚]+Ì a㢞5Û:_厔I ¿x?²ôÊcìzƒ²H­Ágp”ñŸË«_÷}Ö>çÝÀ&^NèPÍÁ]1]¿¸Œþž‚$†Ö¼ç:ù)Óaœ®$Ë—á‘ ÄW µ}Ý»Çë¦ “òÁl£ªÃÈP¹©¼,F‹Ÿ_ tuÃå0yÛÙó¦ÇHƒŸe…Mo¯R×Uªéì¬Â\°lìL^ì8˜yÀ¢ØÅj(|Qà¼DFhÖç•ø6‚V ÀÉÞ6¦¥%ÉǤN¤+œÉ—é’@h2cÕã±±= ØDÓxÂeô˼ŠõžÏÇe4RÇèM=5öÌç~»1óäŸ_×Ë÷˜ð sG`<¨÷ŽM„+¾gÄy1a™ðÛ*úè`&èA#^’TC–Ü®úUo¬6ÈOªkÀ ÍŒ5T€ã*X#xH¢` e ÖÚ¨k(sÒx¶zð¬èQðÈÆSw Âž ƒLôvä­vp‚nÃî*Íb³0™ÜÑ`‹)ÍQ¬OA:¬»oE²®òbà{¶.by‡GÄ’Çg°täØžçÊ$»3ð´É‡Ú+­'U“c¾Ð)wýxâ;†4Î8qX©s¼#WŽ3XØïh»rˆqrqÓe€Åz1mx9ŠvCAÖÒ2U­¥àXÂ5àTö´Úû‘“élŒQ²ñfÓ:dML<ò !%™Ú QRhA'%šVe:ÿ³Á™ ͙ߪ t~I¬£‘bD ú’°uÔˆ”Ç*¸CO£L@!#´Ú×-6›Æ*29gÒËD³Û1-Ïû©é ^ȯ.té6”XÅE¾¿#¶Ê˜³=ÄN$·é¹t0$Q,Ʃ舾!†È®ö=–“¯*1OÕ·¢ckž$TK¸PDGÙå YwrKˆÎi±8×b„Ö”“Ä€€ZÂW˜ë7°-7qÍÒæ”Ô÷¶ânÞü/÷-ØC@˜Ô—íˆÓO oëŸPÞ鼑ÛKGÞ혅WFÁ3#­¼Ö6“V—ð SLКšW…A.ê,ò{¯\O|Æ‚«œ$ãÃ$ÌE$Ô¦'¾tvË©Ëtƒ}B$T¯ÛÀRQ©ó;qö¼+äñ\À›Ô¥%^©åfÁÂn±ùxf"¹. +ÄÀ¥3ïL •ž¶@«Ù©Aˆ‹ª?Q[^öé‚NBܰ…'äÓ…A˜^Ÿ<Ƨ 3ÑÑd’YI¸Å½Z} :Y£DºdA—P‚ôš,¨¢ä]²šèeå/ w¼²òúEê~PƒS—ÂÄË „ƒÔg›‹Ô–wÛI˜QÅ6 #9JÂÑiDÿ‹H¨DÞ_“úÈx¿òsF%ô¼²J›Ðó¬Â“«õÁCParÕ`'¨í X(Püù û2ì •$Tµ² Ê@ÇŽ—° SPð­Yõìàí$<' 2GD¹ˆ$K­¾¾'½ÏFxÁM>~!¸ÐVž–²E](¢¶"&` ¼’«šüÜY»dU1áU•DµôÒêXaE˜R›1Q¬…Xæ:Ïø`Åà'{Åãµ×-õÑQ<^*í]ÌåääéÀâþÒZ‹ÄFEŸ(êèÌzÆ„œB´{esbÏ)Š· pxQ{t°ÐiŸvrØA;]Ÿœ·‹þmÚpˆ uVUõåQ |Ú/éP³o~Ó×ítuêÏ ·ž¿çà}ŒþÆÔdG]”BÓqjçÐd‹êˆbpWhЮú)k­u¦½6å¥Ò~ˆH]cÛ¡1šözrŽŽ‰ñšêkÊ·[­©°ÎŽ—em~®åá-­Ý¶ ¶GoË.ç9ɃÆo¶4#¨=Gð)Û|÷³ÒÁÔg‚™<«‡æXÌ‘(¬{Æ›¯³©|•HÂ' ïmÏ„œ^©Îš^å§F¹Fô©3#ò̳¿ù‘){æ’ Øw9ÅJ½£‹TÚÛWûwl:Ösž©Êʵ&ï¶ŒÒ"o‡. /ÕîKç¾Uw}çrS9¥J·¯ÍÚ³Lg~6÷ù·úl"a›Ë”[@̼ÿørtüv/{âæ  d¯æÆ¢Úášø!èhEÞ#N¦EX®¾?Ô¥‚(Ë®ÝXjŽ!™åû)tD¯X¹ËÙ +®ôÜÛ7WºmØøu>¼näÖ (D9jõô/•‹0y/µ•ðS[î··޶wÖQpªõMw„`§ý‰‚Ü·S†#Wp¬ƒÍ]@ÁIsé8ÍÎML C €Ù>ʃx¨+¤z©w¬kYò€Îµ‡?ïŒOSþϾžöÏOV#ô>·NWîëó!ýôÝ^†'‡£P%Àõ3ÎZóÏ`Ûà‰ éì.ΰÒƒ›²‡/ýƈÖD3™`D›¼» ç"ÚĦ¨¸Iq!|ömm|Yƒh)l/? ¢­">ø—[é¸+kƒ%PA\C1œAQÚ`»»Wì0D™žï(ý±\¿xÊÝÿ ¯¨´»"Iß ÂfÂÎ]×ê]"§^úemh͆&p¶0¬ñâa†Ì÷ô,§H| 'p&)Ú–½Í=©Vá‹d?.MX£'ftüEÊs £gªÐV«û ÕÐ/7eš¡#Ù2ë§©o’rÄÌ"Í çíY^݉ú6_iK×—çÏ“ÔjÓ ¶{/Dß–.I5¼ä7ºu¿s{•úÊônšG÷Ûx<µ`-ú´sEc[ÌU¾‡8~6·Æù.ì1²²‡AÇ\Ý1J/B+Þ/!b¯‹PÒÕTkÎ9^úÉ×;ã˜käÅë¯ô¿¹Ð÷Ÿ-yº#oü™¬.Fä:|[vdÏúÄ늻Ë'<¸!¼ÏB‹F$ŽL¥ùˆEÞèØ>·qH›«Ü‡Pƒ’ç]&²•xx¾O‹ÐgÍ(R.MýßÁÍÃï¦ö?Hðéšnš+»`ñåõI$ª­•yíß*ùDs»I¹MÒOK:ë:ˆ8«ÖÇ¥h×8^zQxy n*6Ð †zoyå|bO|U^åÇJµˆÐ•*cF›,—®gó¥+•¤‘«b4]“é$(Áï 1Å¿ç#-I±}}rÚ™ƒkÞüÅ;Šê/–mëij¥øl*Ð[—¹–Ç·«ÖžqcŸ>Ë@fèâÑ&—-tmzk¯Zµ©P¹É…8¨š½Ìt¬ ±lp¾üB /6i¨›íL¬n!¼XA+Î¥A§?¿/Òýz}Làƒíßáé„­{a¸aäŽSÈWò Ik‘¬¿´­¾0ð>³ÀíÜÔËr°UEmÇ Ðp+tG—óŽ™ÌìÝMùÌ6òå9ùW–Ië}Ùf„îgsê=¯Ùà[JÝ;]ܯÞn@Àæ[[…ý`¼Íœ–}*ÒŽc”2(¬³¢Ã÷&I³„QühްÛãë)ç û˜Ãë29ã”ÂTÕè‘lÕúšÅûÖ\C¬2Êêa>œkûyÈryuÙ¹çFŃÂöâj¦ùÌOq¬;ådç^Ø –¡fEÎj‚ØÞh#†r}k®Ì(äÚN ´5?iE}¦ó†éMJêG#|¥[„¯’ïµ,ùòz›­wM{qeAŠÌ×´›¦juÆùÑþÈ2¸®I‡¥ ¶w4<8¼ç+K:‚Yb}ÞO©]ÕW1ô › ³½šÉ·Ñ#b‹Ä‘m >H×|ö0iÖÿ[ž%]åc4+†R2Äùi–Ôy|Í<Â8<ó"N•#aÔmÚDÑýOÕm½=Çöªð¤’¬–ðàzf’¢|’³0Iiö-„Oó=J™#€ðÁî]MlýXù(^}ì‚Â7¹`bP©qÿ,¦š$ïEÕquù2vÞ—Þ¿AªÒ—¥:ZŶjUͰΩvèc.°ËùàF*ÿUcsð´Sð±Iá×2v§Ö¡”eÆäjŠš/¡þ3©uöÄöO­FþÆØ¹õ›!èyCƒ¡ŒÁ ¦Øë΢Va„r׸ú0¢‰¡;¬Ãi„²Êˆ:Nt¾¨Ùfc#w^å×@ô ê3´Ü¦÷«&¬P¾©lîQm´~§gȃٖC½v˜¾Éu¨Ú| ‘k"Õ%tþàÉðtó'Ÿ=Ö¥ø·è"¡ôxV64«Œ—uÕH¥@´9œ€™BˆEÕÍÊ“õƒ~K§í®þlŸ®¿endstream endobj 1102 0 obj <> stream xœÍ][sÇq~G\þ ¨¼ä %¬vî3y“MÚQ*¶cI¥*ÌE‚T¤HŠ2?ïîžÙÝžÙé= àPRéA‹åì\ûòõmÎ÷çã ÎGü¯üÿùÍÙxþêìû3EoÏËÿžßœÿæêìËotJçiH^{{~õò,£Î•ñƒ͹fPÁœ_Ýœý×áÛ‹ËqpÁŨÿƒÏƸ Ãá-{ÿìb¬1Á¦Ã»‹K5ŒÞ¥tø€-¬Óhª/¥÷o–^n…AùûW—:èÁ¤p¸/Gx§G}¸¦ÞýF_ôûô ~:¸¨Ôá{ýŸC°&ÄÃpqiµFå_Aï*E›üáã…³ƒÃ!Ù’ù_ç稠 Ö¤l¢±FUM®q" ¦˜î¹ÏÆÙÞ~RçÒû¼Ï^÷v™ܲپ*3Lîa»üßWÿr¦­☀֮^eÁvkd•xÆÏÙ0¯Y›X›l¶´ŸðWô°WÐ{bP0q‡1D7}1SFßÛ*zÏÛ”%;˜ ЬÌ:Uo;Y\îå´ÞK¥g½ÊË~I­ìèuœNÑ†Š ¤þסU²œUXÿwqiÌ8èÄ3a£@ý™¤ªíäLÀÍ®‡.ÿ|—Jp¿\"ÇSIP”àšƒª¿|“_ÛŠ°ßôOþ-› ? ™—¼œ/]—à ®7Ó‰7òyW~Ë8‚¿—8"ŸŽ ‚䎻–¢áoy‡/–çÌeÒÄΆ`ÌwüWlÍ·iÁ:Ž(²Ÿ_OÆñøúŸP{@«Ñó1oËl(xùÐ]ð)T‡Î¦ø9ßš‹ä11­÷Afr»znT®2j'Kø[TÙš ŸõÅÀš —ÅÛAÃðìíË3KYOfò²$!Ë%c(¾MeP`F¤mØ ?W‰3ažÕ§¯úlÑ)ö®“YIÅàlGW5"œÏŠ#‚ë2ñXÔ$ÐH=¶0Õ­¯g´š4tË}Õ•Œ8“ñ¥ð=ûú‹ H DB×n0±ZŸéß1‚êhi6;dÓeÆÎiš·„0ë¶Þµpxµ˜YèÕòúÍòÈ”¸¤`8Ûp„[•P`²gÞÀÙ׊d}<­NiÖ3ïð§(Šî¾@“º£^œï0O–°Œl¸œ,RݻՎc>ô@£K©†Ð” é IŠýÖ~O}åëyp;åÛ ú:]<üN;@›iœ¯àLàó¾È,mhÔã<8[ú“ ûTR‡ôhž_Гr±ñˆF…t’Ÿº›ý.³jÑQ×lñÓ:"·¦ô2¡“Rº`–B'kiFß}W¾³‚ÌÈðïz4h$oámèÌl[ë³Ì(}Ƙ†ë3Tyκ$ªƒ]4š¯7 X‚°>•£[iOŸ.½ðæaä8«3Ž@¤ys~ÿÄ:‘!óøÓòðqgA²Îyf&uIg™& H5«E23&ÔŠö÷ÁÎ^‘ÏÎ/Eäù×ÖõgB-,y£V¨Å˜-?.*ŸõÅŸ ç8-\çqˆ±>Êl–†àh®ÐÉd6‘Ö`5nÇÔ`ìNaíD)”¼ÖG8ò…Þ"ŽEé*³€3qçŒVZimº,*‚îE­Í÷zX6‰éËoÌh*—¨‡U©x~õ¯gWÿ˜å­r =+o—G\§ò#ºÞ-o?̹çÆÙJ$£g'X#ÐL Ù’|J&îDÂí¸ V ˜oâ¯Ø&¶Ô|[ß—žÉ'P#—Vìð[↵á05M­ûÇ %˜Ù¦cÇpÓC{8ݽ×f€A罚± §¢¹Òâ©6áXBö¸c+¢Þ±7k·¶à'I$:Å™ÝÆ ÇiJ¦~ý¬+m¹õºÇçÃd¶ä.âïiOrZiçœiŒ¤È8¹—ùhèjRÈÉÆF‚Ý«Ø8𭆥JÝå>@e¹êuk ƒŠ1cmøˆ[~2ì™?ùã”8e¿]HoÛ³´ò|πʼTjz>].E?]DT !£P@EvÓcœlˆ¢…Ó±LiF­øÑcŸ§ Z¯Z éóø–³ZvÂ\Ó `ÞåSW£â;Ó‚¹#c¼Ï ûö>,-âØÚ%5€/³¬aÊ´˜ì¸bMOkçŸÆð5:œ…5 :;EªYÆ(üˆ¾ÈúÝ5þžÛit9.ÁkÉ‘[ÀˆJ¢ —t™É;VHKÀòUxÞˆ®úÊd9™®®Ó〠&r¾\´Ú·ÛZM9Á“#øÍúš6a¨¬7úó»Œþf%Iò•=5 ëq¥›Äš¼§¹Ëü¡zþòwF€!!F;˜àwE½Þåæc²+ìQRFÑ]ö¡4ñ]¾n©ˆ£HÔyÑ„àN ¬ô .ÈuýÖsœw(ÎB*ÖÌR‹CÜ{ øãZ¶à¡lfJ¦‘ÐUÔLt;ÚÖ··HØ—¾ƒ–>šW€=:<¬à˜×…suÈdÙ'ìX¡†»3ÜÄ ácc-àë°“’)D”q xR´Ÿ¦—VÔç…2Í*ðÉÃ+œù9a…у2n[$Òû2Q;ü£#•nŽH%TRú$RI' âBK¾×­#7 Ó20ˆ ŸÏ ¡^×µ1§-û*CaC(RÒ  U² Ã\’d#ÚJŸ’_ ô+™#ç˜ÆO N«‹ßDv Þ›c#ù ]ë/@÷€Ñ³{à7ø¯Ær•û›ïÀwvH²2Ì›M’£¦_c2b¦’õ®:–` íT ¢á­´¶{å67nå…§^€ºOc Swè`Ü“û#wŸ[öfè°ò*1I¸‘›#ø÷¦Ã ©Qy”\F0Làþ4Î(ª‘ cñ¹öðR45pó*úžD¤Æ÷E¤§$¿JDÒì¸t¹H’5F«¿—eÍxwÌù|bcH¯Ï œoŽõ¼Upp9=SÐ@Ê×Ý)8±Or釣#FÒØë]ÌÎî•h^Roû oϧÅ×à }S`Ûÿ|\l@t'w ÖJ™t²üdD‚yb6V´™Ùíff·B›ôöí6†y¥ÕÔ]­ɬ±Î²G2ë¢W´fÂý)e´éuJYµéSl®&ºæ¶AÒ2¥59$j››‚³ |$’ž:ᛕ•ÅÈâ#ë}3ðÒÅ~º|ŸÝg#( ß7 …­a^§ÄAÔ´µà%-Ö䄾)mÖ•œfQ‡ìVÑÁÇÜj½àë:¹y•TËW[Ž;¤É`öÉ_-寬y'äJÝÏ!ÜÚ-8¨[å5­¬vÅÝ‘oÖ9 äk|Õävó`L«ŽÏ ÃíÅg5úŸÒg5ûÀ}z`ŸJ\6ÊTÙ5ï j7nÄìÑ|埗mW¯©ƒ+zzÁÆiÜpMüîkúW‡ Fg¥&~B‡Â"åÔC û³X>¶¦ôí¾7ô:/T[Í2âž ­o†P1 fȆ=Ë$N#ڮǩ ™ßæ½ÔqÛ•ŒÛ}Z² #Qîá˜r®ã0.¡ÛN‚6‰¥;_'˜òõHFŸÌ/FbD[ò!¬×|´Oó®ñÂNÒ¶Ö©Ž¯IС/($ñ{q >ì–… -F£[ Õ¢™ä¶¼¬4Á1 xºo3e_ût_.öËåñzyü¸<²¶· Êûayûº÷ØÅ~£>–£hää¥ ª†!pÃPÅœÄåÞÝ&@ ªã}cÂñGŒ/,>X|r­OQ'ž*Ô;gÝCK+àÏ;£ÔÚ{ÀmžÝÃå9ÿ´—mÝêdd59„CÁ7-öÇ·fG¦XSïÆõ'ЂªïRÁ 7xÇ)8YÚ ?ág^ÉÙ¼ë>ÚdÊ AD»©Ü$$§ÇB}™(oss¯\Ù,ø0ÄØ÷ULƒW§Ã±Èž ²)Eo+—äeNä¦ËÙѵ¤‘ó|Œèuÿ8+g¡Øª›ÂÓ Á¼\W+dž“8ûÆöŒšóo—‡`¶šÛ}'8*%®m¥dxÉ ¤<E »Îù¸Smx4ïH©bÔö-pfVÐy€ûT6ÛyÉgÖI¯að—[)´Ú~\! ¥2·Ú`Ù®hÚYK¸#««MúÆÏq_±à”—³¢G‡2âl¨Ã8¬»Ð•‰Úc9A¿53ÅÁ½Š"3HæŒw¤rCœµQ5:’ÕU¯®f8CéA †|:üÇE4€‡ë’cÉcÑy´âö¨µkUÔ”HS“I«œgV0¨G” •MDµív‡Åèd&›y#Å_gi Ý‡‘½n4jpLiÎú±Úè¾#4a}pœ|3.¬5|›\"Œ*×å\ç&p‚’™Èy¿Vs%ã¬NC£ ­D_|“–`E©-ôÄjô¬¯ƽ®Âè;ÓÅaF˜‘}Ü:¯%dÞ¼¸m3µ‡#Õœ²RÓ)Gàƒé”sºãô0&˜Í¨a€ïœ‹Ûj¯ ÷@v<ßârHc0M¢ ‘‹¹:/—f¤çý]ep‘ׄ0C3ÿ@wývMg?Ûà Šêýºa«ì–7$‹{õ’¯ZGÀo€ÔÇ\Æ«¬D¢ÓÈVTå³: T¸ Ò¦¶DL°n#cwMÝ I§ ¯M•¥:åM·£êV\öwëšc+àóHÍ÷ìYrJâöjí`ÍÈ´û’z'glã6$¯$¥Ëñ*Ëí*4QÓîúP$ptW—Þ'S½Gb¥ƒ¾ÈZ×ÇJÒÖ½¬R“Y™f˜b÷ÝI²ãê†Uò|ŽmM3]É“vº„è£?£KHY€‰ÑÝ#!«:ŸcPäRk,B—%fÚ½î·w$O³ôLÞO D)­sÄXøötð PZL;àÉ >¯›íêhj“>;OùcÛfÇ:¦sW³Ã"Ì I–7SÕëFíØ<©9uOÇ%Â`öE]_&]̰NžÀa$¿@ë±Æ Oë4%|í7]?yÉi—QÁ•#~‡GŒt6 l†˜S³ö¹Íb|œYê 낉ñÆŽ§™º6©¨Ê£úÝGÛ tQ¼w˜ÀŠ{Z]ëx¨=ŠØ:¸ uWû‡ú¡¨þ‚ å\q$”¶r½‚¶€UaåÚT : @EKnº;‘XÚí™ÝÂ)ØÂÙ§ä“1²JB`§FÛ»gå—bî «Õ¨°åð¨ÔÈà ì{˜C`Ú©Rìž{®I¶x”º$`¹çg­²Â ïr<‹8×¢7zëÕ]ñ@'ñ¨M¨Ø?ÇKIR+}ÏËÜÐWélœqö-Šõð§åñÝGÖàs0 y|uögɧóWïÏ,€ðóÏÆóߟ‡…&ê\ÛˆðìüÞX°ãüæõÙñÞÂvæåÞBè¬Ù€]`Ô5ß[øÍ2·¯šiæÇGòBëu˜¤°`„Ï9Yxc4çdÑP®çü»e_/ÿ9OéðøbÎ1{´ž(é4(>Q €ÀìC& ] )w±LôIwJ—·æ·bÚlkçšëÃ:(1éêÖ²~ÒC‰ùŒs¾èU·Á?Wˆ’6T%‹÷Ìœkr[ZØP•€ë‚ßÜcC¡‹!æ.¯TÞPFŒ—Ç«îÛozÔÊ æ]2zÒí÷ëÞ^tÏ áË= á• XúQ <&Ëçû¶Í„„1΄ñÑ-tòŠšI¶N­J+Oœ:EážMItÃKeBÁ¶”SÒÁ#<¼‚ÍÏqf ¢‘6ܽUÊ®Lèe=¶0ü]îZEz34"_ÍàÈy×¹Mse·Júkã :§E¥j—;ŽÕýiˆÜœ…R;é?ÎEÏ×Ëe‰Kqãm^LH®CN™!¨õ%<åûZÎÜk#è}IÐñ¡¹Ø’£E!uO¸¾ƒSꋸÑ"6¹³-8·òÖá=?ÈbvXàxÇÀâCøç&GÃ*}’¥SŽZº˜Óoí³§¶VQ½(Öx7°•»ŒbeÜN»ÞFµ¥=Kž‡'’˜²Ê¦Ö…eH˜(ÇÕÝtæï“sÙÎ…lÖøµ‰ŠÇã/e´Z% ÷…­/}$5$Ý2ßÖ„Á2a“>2.ULˆÉ—Lsü¢-_?ä{®O¯¿­õtkên‰¿ cKEn“î$îîœòeIÒññ¨ðOÀ©nþ/>Ÿð7è´Ùimõ:ï¤MCúçD¼Gtó&4±è)œðî'ê1öªï[™ié"8+*û_Æ…sÍ¿ÕU"§ËGÁ„Um½Ž›éùK{$eu¯.Ìu\%r_SÐtaÆÆý˜‚Ü’2Ù§%¢ŸG©]’û2IV¿Å6ºÊÌ•™ø³bõ/¼Ì? fýfÂxWyR‘²öÄÚé'Í‚d~Ì“ÛQŠýSæ¿`®jï“ÿB¿·îó£`,†6Ío&êB‹@ùœÙg®AUÏh›ÑškKúåô‡ú¶Š{¤Âpíq9M£ÆKRÑêCÌ£±Alrä…N‚Q á!.où- fõšÎM•»Rܲ8 ëѵuLUç•­.—mB¶{¯ÁÞí¡m~ˆðŒ¦&åq]ÐIV¶WЈ×oàj~Ü­¾T™vÄùɶÁ›¹»¾‰ºü)Ã$?˜ë$GlÜ´B7Ĉ¸x—@ÿäUýB™ÏîDÂ\B:gN¶AŒúL¸—K¾K›{ŽU®f8¿ЬÁþÌÓe׉,e s¢ÇŸÏþd·œendstream endobj 1110 0 obj <> stream xœí\IsI¾;ø NOVSûrd" ‚`ÌA#É`IÛãóëɬ¥;këîg½ñ ჟÛÕµäúåRýÍ›øÃ?éïëûgììÕ³ožñðô,ýu}ö«Ëg¿øJ2yæ'o„Qg—/ŸÅwø×nRž+'nåÙåý³¿¾>‡IµÎþýò÷ð®ð¾x×MF2œáòFq~Á&¡¸t‡ü©­vN^âo)½bòð*)­ò‡·ç|bF{¸ÆÊ0ËÌáöüBJ99.¯ã‹Ú K_¼Z~Þà`=Yáa«ËŠq„yÇ­£¯¥ÝI%y»¶š,×tô»ø”3{¸?nbÖé÷d¹ësa'­Œ;Üš޹ÁoÎ/`í´£'z‡“Ykœpù·’°åíMöLuKö?-‹üªx}‘vÁlXñÈ·oŽâò— — •µy«WâV…€-Ñ生tÛ¯JÜF†.`WaæÏÔ‡'„¥t  ½ ‘öð1É0ôYïyØü¯’Λx‡JQp#ñË€,Ý–‚2ÿ¾!{›– ía€´‘¤obÀqÇŒºÐ3JÞQ‹|!§T´²š M‘ž+*††¥´“á#YæÆçe¬+”2ëM£¸ÔJ0Q Û °»ÈˆKxU02[lžv(¼™¸) 5A£RœÄ‚Qz¸ªFèÉë`ö²Ç¿O•kf™êO˜Äˆš%á±+±Ë@Æþ¥F2ë }¢¦ñz 6[Ç?|·|d—ï"Á5‚‡PA¯˜7ÛUc!]¹¬³önâW,ù½ç È ” (B}U¢š=À½âi¬‰#ÑÌd©\H?7[VqØL¡½oÈð«e¥æÅÂÍ BªR€€¢hÌ¥"=Ieí¥±ãªÃÅdN .JÏg«‹™hl‡÷ǰl…knÀ’ B>;¸Šö¡*ù퀂#ôA5 Á…óÁõ§³‘#Ò²Íþ8_±d8Â+YY²x®Ù‰©­tb&!•ì×dÌU€  ÅÇ Œn„“Ñþàâúq‘º UÀÙ¨Ê$¹Å6 \ÜÈŸôTb_Ƨ@¶5ï—çî 5DÕÞ+ßêËÏ ¸'ø$€zyŽ“hàhÄÄÄ­­|,9ÀÝæ®½ó®ƒÒBìyík1i4-ЉbAIjŽ@ÄáËùH8ABªÑÃðô>É…2…šE4NË‚¦ÎÐ7©¥8*PÈäŒìbÓHiÆFò]à†p>{|%¤@®Ùo`$†ûaÞ—#ºœ†Ÿ–;—4P§ ö— ,¦ŒH¿-fCšˆÕ㿠ݽjHJg ä]ì<œÒüÆ7)}Z3¸Õ—ļšWœCTˆ-m&¶ªäRkÑwv~RN9â픆C{ø]˜E3%#lGÙÐxØ00ýMºiÙÚG?qÁ‡&ó %,a Ø^~ÎC8O°ÖÛHÏ}ú2®^¹‰›b¶ypñm° €YT…ÅÚ´d¶…ÇSâÓ±MÕ¨‚M‰‰ÃÛ|Š)’6§Ì¦tż=„ÓÊL’¯‡ŽpZ¦‹à¶Ÿ#ˆÆûxpÇM-˜0±8¡1}•<1¡+–ÅJ|@,É,6wDD‰<Ó &n²„ø=±HhÄm”²=ò×`˜) Ns_lFë&p¤r‚C „O%`FዼeÊÏÈó‡Á˜ÜŠ›ˆ+Ï:!ôáσ77¢l¢k«E²ˆƒ[žÔvÍã0‡˜> ‹¨[\7u/ã0Gõ©¨V&ò¬‡j7B5ëÂñÊé£1Bò†1Ñ!OþÙiLu Õ(>ÛWÌmÅ\ƒI[Éù‹!S•âÃç^E îÜ;7ÇIeJµ,f…t¨(ôãÅy<µsŒ'„`ó?Ÿ¹ñ÷ûU.JC´º@*x¥Š ‘°‘aš·ç…èïãÌÞùÛ‘Á>ädìSì}0àÊMÖ̪BÀ•[ ,(¡ƒXˆÃ|æÁªÞ V,DB°ð@ £¢©$U~‘·YFÑ­¥ló#×-ƒëòC–Õ@ä\å"é?¥-< ›=Ò–*<´"–öÀz"—wæ™Ê“Z°Ž›6Ü´3ËþÉî -ÜÉ5Ö¥•-ײˆ0ž[É%fr6ûw‘:˜||’¨#l”Ç®¿RÂû¥bü•ᘌbãd?´½€¨ âž<‚J±í ‹DÔ¥» ðLÒôòÔ×G&8×37 BI;Nl8é*sóë…³‘üÊÛ¤Ln–šºŒÊÈ+®'Ì'<Å9ä´K¨Zw[?š®ŠÂ…¼ùçq1“X`‰$™:(,HuE$Ÿc”\ %Ž+yç}9Ê3qDÕ$‚R¶St¼à»¸ˆ¼ŠÕÃqù¯í ËÓÂOŽÊ5–8åF·:¾DMÁ«Rê±23s =XìPØëyôäØ0¹×÷` ‡ïy5çd'«Ü-iƒsP^ƒÆÃkZ EiF %ÈM|O3¹íõ£†[K…-¾7ËÏ«åçÒ~³Uù¿øDg8S7߯ý3§F˜Ê+É[õ]—ž+àcò\÷³çŠg‰O߬û³XDɳ ê5Ao$ÖY[%u©ÂÄJîP%NƒÙÝ™ƒuÈD ‡ ™/bT˾ q66|/uð¸Ôjä’FH´Ó1•`wØIA„ÑšœO´«›Z7UÙ~|*à)ÝÄCpºÂsXÀ8÷Uç˜ñ.ÖÝŒR ðÕ`ØÜž]G´ÿ3YòFAª&ºyÅ©Ý'„%Q›jÝv‰ÅÉI 3ÆM’n*Òë– m97; ™aš‹Öí@iÈRî!lµO q=÷>ÒxµI›ÕòS`Qª.}‡¿Á¥( L8¡ãð;rîS P3H?ýÎì; ¸ï2à͆€@ÜÆ–ºR] 0€D¿D=³ «#L¼'ñy!15ÉÊb>µÇ|N ;ë¤ÐMŒc\£ô0ݳRÕÔ T‘FÕ)}XG¨Ï„Ú×C+45pwÞö rc•ÆP¹ o±Æ‡E!—B±€'^ϵò³Drž5(– þiu…Š7¤€4’GŸv*¹¯¯ƒÓ‘Muk^®¢_V =]=F‹¢B§rgˆt±î Ã&ö·äü¾ 6¿9Ü}ÖÂ/pš{š`©öÑSÑúÂuÆÓ§e–æŠOì Šû‡§EZF ±Á’êÌwÜЦ¼l”°vë”5BÍË•BL"±O:Ø ‡ÓÌ~Ù<ºÙuLw!F€9~ÂÝìÎóåüVy/êþ_«Ö°”¶Yzú*çáMÇ.ãw-sŒ¡_Ãv“:dMé¦ùŒlTÅä´Îr<§oãYÄ·;Tä!nD˲’2¨¿6éù´¥±Á¦$ÜÑÕX¶„wcòÐ}gCOÜfüþmÉÀyIlÆ”`XáçoÏ`@ëêXy-’÷!áþy"y4wÌÓkµTy‡ílG“I a߈G4Q3¸½F/æÔ<˜\*¾ª[0Ä+1,‚šÕÚÚQP‚ $`™IF[4) ÅDΖöÑÖà–Ї–]94V±‹ÀëlÄqÉ8 —ó*çž®·ãóÂ…ŠTŽV;9ÙÛS•¤ Í#ÈÉ*ƒã†éQOç!É}/Á:l«Gô´é„fµ% Q'ê«\‹ðØë¥ý$=ðÆÈ=1Ú® Y£=G©à°šüÍæEñè/ (Oä’ñÊš¢§×}£MÝ–°b¶±G6ëÞf!?tËšºŸníµ)U‰jºŽ+ò½“®®DùªïàžÓJDï‹­*-õ mh•°²SŒÛº«é{Ÿ«ÛºI­TôêòÕìËcX-¦V¾^2.e)Éw´ùæ?à[^hæleVg!ûH–nÉò¡f°Æ.ÕÕl¡!ªY¹|[&ãh>Šønâ,Ê=¥ç8INµ*ù@Ä;áÕ·—ڰТžxÇ “ 9 € …#±ƒIð¢ƒ)ìÚ®ÙJzÀ€é1/l'í]¯Á±âŠ­¸ñ˜¦ƒàÿÅ‹=PüAs*­]‹—yÃÄK«6xÊà‰—ºô§?GW- †Ù=ÙÉv+'UÝÆmu‰ºž.!€Mm:j*ETþÞÅ9 HÀËÁUù¼¥~?uÁ^LדÙZSË«8·2æDʆt4Uë1ÙuÑ8Îê…ïÙž”­‹Âl Ív¶rõaŽ*$œ'¸I¤³s{„馂Qƒ[1ŽËŽƒÃªªO%¡ðªK™«{Ÿo÷ê}ŸãØ•?Åûä¢{Õ6—n¼dåå ì+7nU´nN3Ý€ˆïì–™‚`õ<ý®Äðnfâ jYep"nÒCàþa㓢ߗa±-r¤!÷Q·µñ½ªMx*L]Òd¡¯¿cgÈÝWŒ$þ~PuMG”•ù2 Ó òÑÂeüU)"9žézQ‡(çÖkKE‘¤[·êŒprê/Ê$ûÌÎåÀòÃ<Ûß‘èq|¶>œSBíA*·Óä¿á G«Œ>?ø£·o˜„gšžrÅxÿŸGcŠjdLSM¥óÝubçÿŒ E…ÈFΖZ áªöÍÑŠ9Œõ:9°þGŸ0ÉíÊ;Q±N÷¸^§ãè·.7™2‡Ÿ¼ªœ÷Nǃ.XèÑ›œ=j¤ãM¡ ?«Ç‡øi®ÌñÚ×Ã2Š•_p{ì9²ãÂs-?éÛ“Ù¯6¯5B[¶¯…¢J{Áþ3+h¨Á€¥˜¸·£±7aÓ¾ Êà#-lÊ f‚òdØäbQsI¬~4O)ÄÖ§ZŽhsFÇöŽNˆ&ûýþëB†Ôß Ëë•í$û#.-—O=ûÑÕתv†F³Ú<ä:ûÎB†ªÖM¯™ƒý*€6¬{ªn¨«Fˆ„Tê÷F—Z¶Š®“k‡ÕÓhí*«wÜ'_/Ž.SX­`CâoÞÖåÿsˆÿ£9D“Ùg8dT Ô2‹(R`_\>ûüùçjIendstream endobj 1118 0 obj <> stream xœí\Y¯d7–x¼âG´xꛤ÷E<‚!#$<ÌÌ…pga–„ù÷TÙ>>eût÷éž$”‡éøúØår­ŸËþçŽ3±ãø_þ÷ñ‹¾{vóÏ[wùŸÇ/v¿xpóÓ?*v+­Þ=xz“¾;!³;ëNí¼¸ùfïn9ÓF)£÷ìöÀ™ Fr·×ýæ¹÷ßüæÜ:‘2Œ .a²w0ø3è.LÞí_Ì?ÿ?-7Bâ ¿|póRlÃîÙÛ͸ÙýkûÕ°F0%‘\Ŝٽ€/˜ ¥åþæë³9`=iˆ™ŸU«:À´F+½;Ï‚ç!­åkdƒõV·ÿp{Œ[¯õþ%i~53í5i~‹¿uPÎûýß 3s»áB%n*®*šá·prw’áÏd©0†3ivVÁ2œCö-²´¬²¯!ebŸñŒ§!˜u:±ïùLLJò3­È*[ c˜ôE:îpýЇlâ‹ÔÊ+ë‚ßÈ72"ChøblKæ›8Œ2Nö'•ÌYéK÷WdÖ÷q—`öïânheŒL»§¸wNŒú>K© šðYJ2£OâsË Ìg‚ymj>Ç­÷Bi¹sk(k÷ ©”ìçñ·RŠ™T#Ð~Ji¼ˆPkEMè‘PεSûûÈ=P§ý“B}Sa›¤-²ñ·#›j2¸fS\ ›šE ÄÊVý_ÎÔ¾E½–Š ßUȃP–)`ÔA&ÐÎmTIn³–ªdn¹D%¹eÆæ tÈ+«äþÏ‘§ÎZ¥»;)ø¿Q;ïÈÆÐ Ë(/Ýþ/‰çíp~é.³kšžu°­8Ùr˜V"NÚò‘ÒYP:ÝlùåÖÁ{ɸ£¤ÐJë."5€B_“z]û0ýöÂùî{æñöSÛ ¶Be[ÁÅV[a¼°µ­˜Z.°0ÓV-l…ú¿­¸òü}‚ä¡?¿aN]Ê\ÏXù AWˆÌÉjs’Ì -D¯ð§Jæ.6VJXB*ü`¤Ä%¤ÂV4êññŒÕÑ ³5éÅ'6\šÀ~¨l¸ÂÖ¼Ãk@ ¨áÊ-—.FÕäy?Óñ¨‰w IKBäüFìãå ×S\…!ŽŸY.•ôLÄñ‘Ú*ɼ5ǯØÀÀJ-‡åØ‹HµÂ![“úir¯‚ÿØêYa%“VÀ¢•NSW”á!®Q) @†ýc"èoâo뽨ðŠYD¢…F…ª82ò¡ƒªÈ¾xßK®TpI>Œ3vÑH© ºo“`tQŸÓmð–Õ%M‘ç–UZÖ¤­]ÎdŠÀ˜‰8„b0Ú„ 4øN+2ò“—õ&áD&„Ä8¥ƒ3‘| ¡¡´ÃùÅá{É%î!ì ÃX‚6“Þÿ¸…(¬n=ôµLËŒ-9g½ôyêØ÷}"Ni0qdî(ÚrÇmTQØã„¾&ÃÑí̳kNŽÝ SgAÊý/“ôƒ¾Z:Êc\€Q2Ž 0ÚP¢Ÿ&Š4÷Y—@̹êÈOZÀ‹Ì±Iݲã }—¾ôJ©êËï#'ÁóçÙˆ@5%í|7ÑZSõ*³OŒÂA"¬¨ʇØÀÌ€gI–)«€`¶ ¨`5Óã¢Õ‚~LÖ]`1Ì‹ÐC· Çvº’‡{2i~6 ë‡[äÂæ|s€…êžÆÏ4·µt½Á†)©ö?ôõœÒŸ¶Ýè¸íJAäÉë¾KÍ6€{Ÿ‡ "üwLÑ¥ÜÕ²ˆ£å*Ö<ìÊ6‘xºïÒÂ,Èð%:é¡‘mÜ8 >€Œñ2 bTkÀ‚ßU|D‘BÇgMI_¨} Ô¿$âNÅ-sOIg©ÀÓîlîexš±–áFƒlí7u«YØiï= ºÃ´Å•–-FÝ¦Ó oĨ+t¶òcuØuíÍ@Ÿä©­Y}ª(/ uT >à(·fÒš…un-L ŠÒ Ž´Ê *7ñŠJë,ñß%Ë ¸« %ñq­YE%é¬õð¸ á=µ*Tõ^aJÀŸç ía+uÖ+›¥N8åŠÔiá1Þ#b§%$šÜœ$vƒ´†À°¾»gerˆBÒÓŠ¤¥ ;ð°sªzë Hÿ2#H ŠM5œ @ŽN! ïóëÿÏ0D×Vl̵³(ï$œZ¶hkÎa&´)Ú Þ ìüGPVAÔ¾ÅAo¤é¢x ×ÅAÿ.ñ=HZtêE²öÒ˜Š@:=™ˆê'åÄÈ=Ë;Â}µ%‰^+k¸ð’Zªû´çBÇC>™ ÈFì4ôBªÀfš$¹O½ÏÊd´›mP½­ÚÅõBÊ á–8Õxcwí1ZŠÑƒ´èðC`Ží*·AÃØ¡1œµº€Â)Ò °_Ï>ÑÊwûÒ²ÁÂ̦!ÀB[˜Èx3ÿ|ÚÀÔ-¨ªx/¶°‰ÎSÕ(Ô£ÎìI_È~5ÉÑ‘£Ìc`ò\ûúÒ™jaŽØÀÀÙÞ-•0 íƒJ¨%È…¸(üÅ•É +©ñzD~H @T’¬¾«!•z޲®QìðžŒC&êðvRè*®\3XE×VФxy; ².¶¨Dýð¡Ô¶ú¡Õ ×&I”ø* deæ 2vVÖTXMB™¤–Óhèþž‚x=§3J”FZñ6OÎpÒzJ6æ”`nÉxäLJ4žà¦ ,<á ô-&êØ!cßdj¹©ø®vhq5…î­C!næ5ïùôÍ~žÎgL#‘Yg8ßyrdYÄhc㉈’-Vs+›;Gbå‚‚Pè·7>ûfÿ‡Ä@ •Ɖ Ø® $ûiMשhHGmØ€³kÁîÀ8â©fyBÝ KË–3?°}6 ‰÷±RÃ¥›sÞ„Ž›£N‰º9êþ¨ú7^Yy×hå![þ²œOy%ƒ¯,G“!%JèV¿§Éðæ1ž§8ä&'ƒÊ Ã@—z+Ê‘GùKU(ÕÜ"ùº ¡“j&òE…ÑS³p}³{¶wpàßi\âæÓb?ƒNx$T4gºõˆ­ñ®ÝGíÍr&êi- urÍî}F¾Ó”HOí½IçG}Á%ã˜yBꦸ¨uúN¶Ÿ¬m ' á®=ãÈë k:™¾l½Ô,Þ”D4 Ð×û´fiÀ8ùÏúP'x\h0œ¨¶Çâl.¡¥4lAT¸D$FÀ\ñhepk´“V×w ÖÁ~ƒÛZÑVì¸̃ZD‡Á“¬xPœGp×xPü0Ä£™2Æ(B¾r”Hò¿ØCTö ƒà:÷Ãaªöwy™AÑ$q‰µÄ#€65\úEpöËÎvŒÇkAAÞÄ|œÆ=±Yn!åx À(Çœˆ¦EѺK6žI) `rªÓx¯HÛ=g7ho)Ü@µ¬˜B0nÿëHˆáZ¥Sdˆ¦ÜªœØÙ‡‚u<^êàIïŽÚ=#q>˜â`Û¡QxÆ !ºà/Òfãq×  ¢>Έõ  #%쀕0Ô§ŽÖûZ¥ð3C<8„«<=Ñy'ÄÒc1öt.gÜb@&$ž1‹^Íú´‘£~ÅMà9ôÊ?V €„ÑăvùW¢Ôš#MôëÆD<Ðú¶òdš…Â#P|ŒàÓ8§÷Æí¿ÝÏ}uñ*–„e-x}kØ['ª¿¹®o²„Å<`EE]!æÌõgu<³˜\c%ôÉ“³M ³Ç¿|{›ø€°a£˜¸ïA«ëe«VXƒVBm^¦m–)Àt–ûvöTQw'Ç ~ q縀¼ÇF*ÿq*»üùyœ*bãé+kË|–à Ø=k•z}üɉ-%AÁ‚éÙA¨˜S ~7àJËFøÉ¥!°bôØU™¥W¬kƒ¯?Þ_­ãOyi/ÅŸB,È[ß /ÛRMlµ<íä1(­ƒz‚+ÒqëgU­ñ¿GrS§…Ѹ2H ®EGw'Û›T—\$:(¼ªlSZPÛæ[²?¬yjTY¬OóK’šÍÅÁ‚¸A´Ot¤}¡Kûwq¢÷HOXp4¥e‹/Ê/ »žÆ CdоìItº×0Å™’/S.LÑZz“(¾äö §qG`GV#H”¡«Ü]@¯KVƒé¿h³åɦƒU±J±NïbДPŸa¦ÿš˜ë¦>7Àk²Èé]“É i|þ:¸Ñ5ÊêjP?3윔NIºŠ¯±-ÞšÁ—¸[hD¿ÜÍé¥çk?LZ°„·5â´àµŽ¹eË3}øœè< Á`üÅÓdY¤¬–C1ÄY¨ÎÒ’cÔy5Nê£^°'a~W¯fÓëeXn p ïÏ1ërŒ½“`*>‚@‹=‰O+ÞI¤!f>½¨&_° GŠ?›UûŠÞ â]iV“üI Á%˜0VëËÎ>ÄËŽoR‡P—"R=¾¿§!ÜWd§$ÝqlÉš‰Àɵè$ÜåýÈÁ ü³|0â Œ‰ð™àÔ·…¼~¢‰®c¾~|¸] ·› üIZ‹RíchX #€O€èèMëãµ/XyH»›%ŠG‘‹×qʈ#Œˆ&<ãcGÜ^pµ_—Àƒ••¼R¼¨€}—Y¢•y úÐÂzyrÔçhp&4èbœ=_ßô&Çú2â0΢‘>œÖí$ ˆ>O°3øP’ÆËD ‚,-0 ÷Ë`¬ïk "Oô¿')­  wUé¹ó) 9;Ôvi€þt–Ä÷Ohk/¡âd±QlŽà{heÜ•­ÌÑÚ›ÓNšŠÐw÷§ˆ·™¼.¨9Ý¿eQe£Ñ 2Ú7D&9Bà}È‘‰æ»ôE¾ºù7ÿýendstream endobj 1125 0 obj <> stream xœÍ][o%Å~·øçñí™ôý"ž’E‰"‚•àaYïzöðîþ}ªú2S}Ïñ9„"NÆ=ÝÕu몯ª‡Ÿvlâ;†ÿ¤¿º»`»›‹Ÿ.xxºKÿzu·ûËÕÅŸþ#™ÜùÉaÔîêÍE|‡ï¸4“†?+'nåîêîâëýá&Õ^8»ÿuþùíÕ?aá=FðÉ é`ª«kxñ—6I͔ܿ»vRJ˜ýÇðKZ»V†Yfö?_øÄŒ‚Çï/ÊÞáO¡™grÿk«ø¦2vÒ@Ok¹Ø¿"³Ý_`mœƒŸðTJ«|^C{¿¿Ž“I%ùþû@¥tÜ: syþry“Ò‘×ó›Ú ‹oâc#¡7f÷?’lj,©U¦[φQt—”׉Bíoº_<™ßÁO3 &Š!”pBÕ¯ik\í¿Ù“!oÂö3bÀæ¨#•ª Í&gLÖ¤–Ð5Èâ 4iö?ÌOqŽ¿]]|‰¿»y¸PÓ»_@»ÿ~¡„u𠪫œ¬ÞÝ](Éà‰˜ŸÜ^|u¬ À“‹S,6pWÔ(¾ž¼…¿æM}¥a@G"c8ŒÏÊ夔ûÛ¨:RXƒüåûÍe`0d3-š‰«p·ÒðÝ‹I+ø»‚“ÔŠjU·˃´z2 áTö//…›”ðH´f‚ÿí¿t“vÚ¡j€@—U0Lü€¿­v…öPu ãoãâBÙBÁîãciE¡ìÙ¸’q0ã„I·Äb〘ej/mü<­ËÜt]]ðºÜfà™öµãc¥Wí<ìLÛýèì,<§B·Eçøj`çb©y÷.`ö7„9Dùˆ=—*€š%,貜m’õfvfò^f¡ý¥Jð=Ñeªã7óêI{ã"A{µæíZ3ºn„[0|é 7Ϩûåç‡`µLsäÐúÉe'!UžmèžgöuéeßÇ"¥šL!ùJ©æõ*/Ñ9Óè Ì礲¯¶~ÎK­zÙ(d¶hlŪz#Q>x.üéyqZþ/fÞñ–=18£zä)>8¬é`êpbL!¸«Ïgz*FqM;(æ}ðxÌþ|'ó*ϦàûÿÌA5Ò¦jû¹nìÀxº?]&Må…j<ŸWnwfR^Û¨cçÖ' ~Þz-˜Ý«þc7?Žkp¦5]ùÊ™è˜ÃÝòó‡ÙæS•Í' ‡ƒ²NPnÐëç'k'hMÅF<„ÃÀ(CŽÐHÈÃòómASË< O+°Ìwà„`‡aÁUg¸~%㔊v”ß/Œü‘<ST=™`bpz®—}¿¹ Dð^ÌËf QÐ;혘r~MBäOS`0¥0ÃĬ=†ÇmÔ.@³î|½˜[nÀiÓá ïÂÍž70Q(éàÔz‡ 1¦¬Œ<—Ì{páà€õá­dªJHafîÜÑfáŽ` ƒÜláNE\æŽÀ00Î@¹ƒ†«¥ ŽHu\ªpÒ$Gò6Rí¬å u’™BvBB–äô)ÔÓ4¶¢î“…y!À1 ÷„Ì®è¸`Xû'Šî~ÙmOFRk‘å¸6fá”NqN8±<$g§pʧL¥å7‹ì~¾ÔH’Áól!”Eʹ‹H%ƒHZØ…PÉA_œ=P˜&pg)I˜Ù“K¿oË| ¡¶ µ3=ñRŽPñ&ëÕL›b<±äÅ<úZp ; JÍœŠk¶ë!ù÷aÂÿ¡^6#ÉCü~C¾Î §Lw š[ úŠ1ÄÏ'÷Þ}ÀÚž¤O1ŒÐ^¹~‹ =ḅ\Ôc§…2¨opXOÔüä)'(³SL pÊI©çìÎà8¨4f–]Hƒâ/·+ɘ–˜d£K-Pú¯N“Æ·q «|Rf§4¸Ä!‚_šÌ’¹ïÛiAIA+4òÏ”8¹FÉü*„šd!2ý3ŠÏƒ‚›"¾¤(éiÆ÷&.£U7K<ÉvEÞ–P(„dh¨ÛÙf !·30 F¸EjG˜´€¿™ì8ayG8oãaHSÞÆá€Ry1̧@cŠ?ô5ú]cø ª†‘5XN™aªÀ!ଠŒÉбŠR6ê|Å)èz”¢,HÕî‚R|òÚQJ(♶˹­¹0€‹ñM8<:â@³8ŒAtº„J@h/Q‰ˆŒ¥Á†Gª!â~¯œ¬pMÔgéij÷ºåX˜BD-QµUJÞÈ&©Ù¢!:5 ' ßIFS¡mEÿæ莬¬ÂêI:» 5GÍ`ú[5çFŸ52ÉÇIW;²Z^ ÷¥ËÙÞŧ–—$àÈ$33uà €úˆY9D½ñ _• <ڠܳr'qÀkÐaædס´­ñÛ׉óÌW¨ÝÂIâÏJø.\úøWŽPfþ‰ xuÀ#ßž0ð¨ËSÒÔáçÔÁÄܧ¨îß!À˜9ýǰðˆ(²F A`qˆ"ãâ‡*àÚ\0û<„ÚÐ5ÀÙÌêW(Ã#®A~Í —zÂsçŠñ€Wž7±¬aœ–Åùzß?;ÐhˆmèÞ«zH#Cfçòb­¸kÄñߣÄñELޏtÔÓ¶‘€Œ@~ÀMçùJõïI<4hè`õ¤:0{ä 3+¡ADz]Uh% dëYÁÞÉöèÒdo#îZùµVÔ•Ùc¶|ÄTs)ì8LÕŸS}¿”ª§DÏjê%C\DTÓåTôwF5³½œ²ÑÊ $ä¶Ìøí¡E8$Ö‹¥á é€- HV–'OÅ$ãJñ< ”"hJ©ðNœD¨ð1ð’Ð'R~r–?g¤ S+ÇmТ…[xÊ Œ;=ˆÆ)ö¤Õ9g<‰/ˆ‰•H:²MZ/ºTƒµ)Ä?ª%C!óS¨F8ÎùóÕˆßQ¨B¼ÉìÑ(æÓØ£õ$D¥óùom2 ˜R>ØÜMÁи/ÔDõRz à$÷3­Ïe´ð?±8 ÜÜÝí£#ìzÌÌ(ÈÜÁSa+8°¨øŸÀ*˜b-*yuM¨¢Ân-»,ô(ˆUÁ]R !EŸBaÊÁaý¬uµß]‰ã¦*q‡C•Z9T‹ó˜ŽoŠ Ff¶!ØåÜ"[ûãW rl4®Hm&é{±ý+o7 ÖAèm&ô§õZ_êp­Áÿ ×䤈ŽÕ]àØ¬ãE¯ãUÆ÷‘yºåÊÖ¤ztX…¾9jݼ‰â(à.:CR—Áƒ7šö´¾OûuEã EdÒÔK¸žžS„.ÿé¶¢l°" ~….…õ}9šâ¤Kê@Çûi_mǼjY7Cÿ^MBúªrKc'p€«šCÀƒSÍ¡ê÷q†ÜKL ÞƒÎØóiÎü*â~Ü•¬Íyù8؈ø9jk¤hjªÇÁmæö‘¹¯Óv¥*Ši/3e_d7¯»ËB£ÎjÖ¢3jCýc€>‹ »Òê ç˜Ûž_%lÖ\€ÿNØšˆ >ŠX_ T4&tê¬ìm¤à)µ‚´ÉlFD#™e;î ÇnT¹¹o8dZÁž³mýëâêÓÕSÈÛ NºTòРV©äaCwyø3H“ÖHÑû8+·#±a{#GKí¯ò.Òû‰у“©¹Ò*=8f_Ee•…åÑ!eÙGÃAšš7é:•³’Þ…úó£­ûÔâ²êbMAqÎ#/—y^ˆ+Ú–5øà¸_“ÛÚ© Zz'iåÛÁ&h'üëÈf'»Ðu.YçZ]2¸‡òøi¯&„ЫªÕ# Mä]]è¹lea”#ã­+£ÁéZ©ÐÃC¶²M+q4Ä#P¶ãë`A~¼ˆåUŸ@ÑŒÝò"ÿmšx6ÇAëNAåÕŠ§ —x˜ë¹BÜÜC²ÐFˆ¾—t¸Áãzf—ÉÙA{ä#!¼4„ÑðVû#}euú¨ ]‘@eê|>uÖ˜~#9n²:£ù¦ -ý@šŠ••ïâ¾e¨j!ÕÂmà×ó™"*ˆÙÑý«ª3¨ëäz]×é*Ÿ›aïæ®øyãÝ0~n' §Ýô4²šÃ­A£Æ"ûtc$ÒRX¥ «&fÅ8ïŽ*Ty‹¥»/KLª—tÕmE8Ÿ˜Œõ©â ® K+ðÂå-jyƒÀü;Â;:ä5.››ªCw['s•ê +aˆä$¯B\¨¸Þ…ô”}Zªè«/PÚf2%P%H÷úåIÜ<÷n€(ŒìÈ’Pz®°8êÏQ,¢¸8Wjz¢©ÔôwG×Ðêœ?…0ŪÁ]¹ž»Ê¢âPvz <Ò‡1kzÙD‰ç‰lÎêþCƒ|±Š÷ßD H]w¤p®.äovQßžüÄù£—x8ÂVŠ`-ÈÉÔm91¶‡Õk‚2e¾Äó\Ì"«{ñ¨“TÏ+Î…™í©‹¢âØGpD®).Õ“Þ Ó•R]µ¦O8 GG§—Ÿ‚ÙMjë"ÃQ°?C®µ$c®–º!È•›Ö²ž¢g‚Gñö‘ò P‡4S í´AÖ³·q·ÕÕåaB±nÕð¦âòxw|‰ž¡t± Ú˜"E%ªLl`Vµl±’«ì®=#΋½í©¬›±+<î’&ü¨œ0”x–ç„'l=Çz§] %„gè¸Æ@ÃÂy8±Õ Ð^áuû­aGزÖGøžÕëéºÖ 6šx‰>O¾Wª#1y7w}<úu\[ëž……Ñÿk—^✺ÈPy™ˆ2×}2Þ"°ŒØÆï™è!XI…Ô´hJ^|dxÖãÒ˜`Þ?e*Ç×)büöuè¥Æ/ýpR[üõqu™ QcOqæõ„3¶=Š#ÂçeÔ3¡8†a§BqRD»’}¸/;]äe…­T^¢&£›ˆ&0õ˜ˆ&ÒYF4' Œ~òÌW’–Ømkäój=.m„Ü¢õ2|`¨>ø©Öе?IëqÕgÅúÅØHî%9?t §¥÷ÈWs$Þvl?‚M­¾Fk¢#ÇœŒFôa ç«hjÖØA«D’¸ãsᘑ®Õë‘x‹Ú—¾fKá{ÑÐ7qr ×ùžY¢ð«BT#Âõ§JµÆ‰9k¢ÕðXVߒš ¨°˜Ñu®0ÍKߢam²é;›3¢°ÿ’W8/ó¼ˆíæ×h„ô2o™W››éÙx×0·¯ ¯9—•öÍ¡ÃmR ‡gv¼ nÆÉ^k 9–O/%7†-2DYû†Úú!§DC©ÎOñUB°¦r¡C€WjH±‚}ƒÐ¹pðnôxôïhÃÉ+¤ÛhÃ),Ùm¼ÎV/+áÅm›]paÅÆØÃmÔl “[QFá•ùµ|Ëaz jêûï¸ÑM'–H[(©£úÅ-aúÙ§‹x¢y¤ÄH>î鄎„®Žà2:¥rp'âç¸`Q±ZÉÀœë S8â.Qå·31và<‰+a Ǭ͇){±@&DòµXÔ~£64v^ûÅBµf÷‡-`ËӖ歹­~óêYüIŽmÀ;Iê¨=§4 -rs—AàƒÒTÿéèù¬„(s؃$oþàx²ÉÍߥ< ÐÁ[2ØG;Š÷óGʳror¬¹·Ïðs›ë=a·|£µÔ\ž¯¦ƒUrþ i$Ðg§ˆõÒÞ†_¸Ø´¯Tjä1>´ïY?b䛔סmº0å}ßfùÕtO¼vyÔøå[“ÕñnyîõÎLÞJ§q¸‚ÇZŒ ƒÓ7¾õ×@‡g|ðíDB4s»â¥)7Å'ŸÕ´ÒÕuø•Ûúáÿ,gE‘¸î|„ˆ ïçžêÙ¨==RÊ]8[+¡ó~|oThZWxœÚè3DJ¸˜Ô£«ëqíÑì¦õ y¦ñhg“­Nòùìy‘·dïн†xÎǽNø¡¯€z­Ži Ÿ VÂàÒ±>€h{Òʵ°ùòæǸø…5øÚW€®xYšÈ}|,U©èÄ,R ¯=ê†tÅA³!Hjí&îj[¦^}É ï«hW;¶p³P– _þ°¤Ð5÷eø/ªôšÂÂéñsá*lõ‹B²ÊR+tUõ. þ¶1PsRÂçhÍÅ—Ÿ¥o ÚM}4Q©rÂqkS.F“Ï߯9êÚû}º ¹O?‡LâM|Ì™_)— ÕžŸè‹àÿdv`p)W‹8—Ÿóç#¾¼ø?'Úÿendstream endobj 1133 0 obj <> stream xœÍÇr¹ñNû#x|t‰cäpu,»\å –}ØÕa%J”Ë)+ì®üõî03ÐóæñÑ¡ö W htNÀþóRLòRàåßWï/ÄåÝÅ?/d½,ÿ¼zù‹›‹ŸÿEÅx§è”3—7o.ò7òRj7Y¡/דôúòæýÅ7‡·W×b²Þ† ß]©0ëåáû+å'£½?¼¾ºÖZN1ØÃgœj¬ˆBWŸ¥)Z<|ÂQïáËÁd­½‰‡÷ðSÀL%Ô¼žæðn'L„ÉNxáÇßZ[¯üán]ãm‚È8]1]]ÃØd£=ÜÀ\%´Ž¾ö;|¼º–“p6Æj; ™BqO–ãÆïÊ6êðŽÌ(³ƒ|Ü×@Ⴒq†Ø³ðé›4ݧÂáa……@þ¾Lv€M?•”‡[ÀB`=Š5rΕ6Z^´´‰à*lÖ«¿¸ùý…òj ʃÝÜ;åm`@g>‚n,„L?Ëi´5Ž4JÉð ÷Ö°)°UD³€‘ ¥x}…Œa­‘óŒ#d×3h×RMÖ8™!¤–A8…¿A+£í…ln„úwÀh†f§Òß×Ù’Y[S•,‘Õ¶ö¬yáÎHA¢s¨Ú#2øz>"kê©NøÀèKÊŽw<Ìè-(q8Ò/pXo…?|MÈœK à~µSó†é÷—¬cœ¦G•[ä.,ÈPMù\&¢/²Žˆ~î­Uã!šå“›èmEÔÛô®rƒïP›dZƒ_ó_ v‚DjV÷ü„àîĸ‡Ùø(ò)Ñ6•ŸÖIE±Ì0¸Îûm¯דy]m™Áë„ÆzâÙEÌÈ¢š@˜_‚ `l¨ÎZŸ;Í@*\SÍ][¦ÌºarZÕ¬›~(g‘nàÌt`-ëï†MÒy›á·5q' {e¶/ðÕá~µp$X>Ö f!"ª—‘H­À×‰Ô P•Ó ¼°~+H•XïÜQƒ6zI¦¿#ã¯ó¦¨ÛVÇ‹N~,€‹Ú[$P^ôRVÒÙTË&ÔªIÛ°%5€Y¡üÀ½Z\X˜!Mµr# i Ðß„:¬àe×0NÞÙï¿C×ó]’Êûô7¯ükÕ^àÈºÝø N µ½#é<ß·Eö$_ó€q1ap(Å’*}j€gl3à(øåœ"kÜCœ.%3ÿgãv[­4ÚY-3¹ 7=#ãÁj-Ó§U‹++oóZF @‡)X 3Ó÷ø™SÀc&3 &êuI/­.) ᣮå8ï>OwÒIƒÁe{ÑÕæ!æÍ¯W_ùí¶¯¬ ºSz‰Ÿ~…8zFɆ-©*¥EsIž¹^ç=g6\8ànÈ ß5¶ØÓÔþv Ú£lûÐY”¤è—TÓ³÷¼PSãzFç5F7Z…Ž=‰Ên«Ô:o}(®U˜¥çˆ{ƒ8÷OŒó£¶h¤&Ô’äBÎÛ }”3¸2ÎÎ:RÄ éñèÖ}3Ô˜;*öÜ{ˆ2Á…ùœ=¿JñD„ÛŒ‡å:,–Ÿy7ÌÑíŒ@Ïoæ ,?¬??®ÁòmÃf-ðhL ²)8¢½À4ÊðÈõ2ä'µ¢ê›UXòl§]5l3êMA²2 ˜9¥a!Œ/f_‹£Ë6 ¯æXPiåpõ_ß\üOéâåݧ 0‡öò‡ qùÛ ¢ „4€Q8òå{8ºBg~ywñœ­4 /Õƒ¨P:p‰I…« {`’¢Ì" 93àïå|”ô;©-¥Rr_Iç'PA+¨ Ü”)†s@…% ê5¨?]ñ› ‰³­6Â/µQCâ‚^Ɉ¤î9û€ŒÚZUᇙ³âÊ®”¡¸r€«`Ε\y[ãŠBžé*É!u]‡:OL0¨…œÚ ë(CßUhN‡Ñ=ƒà’ÃÃëIÇsK}žˆðÆý¿^[À•³Wp¥ìY¸²€+éj\­z¸²·Å5P!MrcygtqRiØÓic[%JøRs®µí¿c˜LY:ŠL¾]àaîù‘•ùÛÓDÉÍÿWm±xlúŸ2~ýM›Orj3ë‹Õ«&kŸ„M°Ê~)±ïlŸK™g6±Ü·ÊØ5½ÒdqJþk5·6=gÍu}!r‘ÅµÑØm!ø‘{Ûeq¶­ËæôXw»Nûð.®H˜ ZÃáÐhׇ|5_vH}žÛ ¯—Ä=]ºqãñ0¦nãü¸¦é4¼­mZ=(lë\,çáºe_2ãiIŸôØÛbˆ±WD¼ÓJOe扒kë vöñ6ü€Ôé}Öâ›®³é*_×ñb¢3ÔµGÚ÷U§ öÒs›5§Ž{˜v4ö5Eq\ÛG{z(ä`Oa+¨Éî\qyÌžœJÝÑÂôW`w¶ƒP§+…ãy[å²#˜ìí ¡m3/f.“ÞM?¥Øl®6D¶]µºÜh+Ý¿X„‹oÊAÈh£‰Û ÛÞ“®BšÜ—NbðNn ß9'«“ WAŒdÁdʳõw¡rÊÚÚoõ1aUB×çî›}’Ä”èÖáŽÈä]Þd5O ƒfý»B6®ÈI^‘i°[†f˜¦ƒ•é%á‡úuBa‘[:e#ˆ.9v8Â#¸É–V%€Ði-­Ëê&~AP$bA04𿺎W:ž¢dš$`¢äÀò–wY„,ö-ÝÒL¦ïuC3s´‡ž˜ ±kÛôÁŇýS9­’ã J“r¾Í~ ð:ÀÝDê[PeÓ<Õj0!Sëg“|‰1eãÆAÈÀŽ%ã¥*ôQ×HÛ)mŸÌéÉÝÇÑœ¢îJt—Õ]sãi>gØÑàïÆÉ­¬0=L½yMÃNH–ÅilÒ$ü¯—ìñ!sd¨±‚ÑÈIËØMxÚÄ×'£íãã›WÛ ä4…îÙ¤#çJ ˜¡®så/—liÕâhß+ì™X©ÿG·šGÛ3s<~‚‘„m ,Ïr{¤€d\a‚¹Ó›ˆÓ6Qm†«›MJÍì­&Æ£A«GÙ?A`Ü‹@¹*ÅÝåi®îüæ*H,Z´Âd|Àµ6ëpÞcR™MSq•—µx‰XÄU¬±»n]>˜võ'ùˆ[J¸ËJ3iV.qŽ)_®úxe;0bÚÒ«óð0_\ÕÒo—vfT Û¼ À(ç†ô‰÷tàšâøiáç6î ]í^õ0®@rœ‚ /…oÝcü$øËÝ5ð²µW†å}Æ¡£×M©. Úùk^=èQ*á±åȯ9“É¢æ/ <šÉkB¼í6oµc‡ç’Êïsìp²èKçÄŽÇz å{8 R熟´ÞžxÊ ¿$h__-àµ>ÄJâ/ ï5÷Àž8ÕS-éÍzA«ÕôHyˆ¼s±5z åqG {vÝ0K“µo½W¦¦³±àÃÆuwsÛ>'Ì3›®ØÔD8‘ߤç €`?ßVVNè[\I‚— «mÏ]Û9½6$tÓÄXÒ4u‘±"ï2Û;'é‚ojô_ƒ¬OÒl]ÿlù¥œ”<½þŽßik‰ÆU-ƒ«mu›®Þ𙜕›yB ÆÏ?a(Šg¶f~KEklÀòVᘂ ½ë›q ¨í½<»‹"´D\m&š2%OÎz5ù9`+ÅÚV—œßAgbØx7WzäV­qÔè]¬!Ñó½}t¶eôÃ2ÊtëÏ+1O/ÌhÔj©²‡¾@ ¼Ž›2ÃÎìBŽÙÚ‹5yXó,×ݳ“ƒDkG<εù˜ÁÛ*ºý¤Sñ?PöÌÛê¡c9„:±¼À÷õ*(Ô´6¿ D‰…»„HkÌŒ$<ºŠ³†yµ­a…ªy±»×;ðˆù¢^ÀRلȘ­½»~Îs#à£oé›×90ÀöØljŒÁëõ-›¦UšnŸÆÆâ—QD®dOgSÏxGÓðÎwdR¤»œ Œ þé¢CŽko«c¤ƒI—ëaßA“Ï2èÝW ½Éº(÷À´)¸¥ç''B¤¬>-ל(¦ã evf®¹«èèÚûìC Sû)éI'›_O(÷ÙG×Ìu<År iGmÍjá°˜Ù¡âJ3ÃÔª }æD¨Šèmé9ú·„b#Md¬l²g"å‘6½€SEVw-nc¥ï, +ñˆþühÀWtòÊ;n-8¥Û…™.ÀgÙ)DÇù(랃G˽E¹{§¡mÑ‚M`¹û !Æq/‹ÜãÛ2KÔ]`’¡*©¾d¬j.¼¢•¢T¡YS‹ðOö¢žªãRN6îEJo¦B˜H=É;*îCão€_Üꉮ—º‹Iù6ÒÇuôvÛ;ÐÈÖë²>vŠÉPP±Ñt¤¢Ânè'ºsˆp„£z#8 ·v‘ÍÖÖ²ôì€sQÀ2è­¤/ú§”¸“ðÑá9 kß™ì~E‰åðtÃ.úZ^‡ó °Ü8ŽJÄ!5l˜„÷+™Ç†d‡“J§R•I¶S]æçY®éK{ò˜*J/»áΛd©Ãд—8Ž¿8G²fäXó“{ÉŒñ^ûžµù"HmŒÁ¤«‘ÙÚÎí•`®‘¸í5CAu§æ‰`ô/þO_náîjVT~L¯pÄbÁf™UG—¼ª§¹v©#>ÒÓ]»D8ð.0çv}¿¼³Ah´Õ@@«.³kkÿ„öÙÎEpm8„k ê[|t¨·oºß@Ñ\<.´YëxK sµM@òy&w”SïÜr‹aíUažµº§f?!Ûº§ ™døzu¡KuŸÔí»'5̾¹v¦™ŒØÝ…”šèûævlÒæŸžj¸Cƒ‰±ç &enç}Ê›;Xa òGÕW å2÷µnî’niNä›+A ñùëUÀ{[‘íáþÒ­GZñÄMê"WQ ˆËÂôsû¼÷µ›N"Tu¯[Ò ecz}™ÖwfŠFC½¦¿ÿ.¥Õ 3ÛS@¹ zJm­I_å‘áåɆ “ ö/› vÿÔX÷™™¾Í˜‹Îéò–Nz3‡>¶“_‘¦‡ðÓËÐFR7(ZÙöªZÅýÀ“öꈌ÷]L§Ê¸AšòWÏ_F¦@a B+ÕÝÜj½ï#]nTÙ!€øÜsõ‚»¿]w¤ß/#<öYS>ÒΖŽwI0q5ÒwHâo?5C´ÉÆÕÏÑekï±™dæÕçd ¦Wj†ÔV‰…®(]ÖÝ]”n%4]*€q«ÀÊ‚¡›O×ZùúÖÎö–ëx˜—Íÿ3aô„Ûx ¦spÓeóÑnÊmغç!ö‰ì5X®¸œŽƒ?Î'æP\÷u$œ5âP'šp†5íCÙ2šoïÂ^&üƒ úºô é%ƒŽÆ;Ò°èáW™a@°¾sžõ1•XV:ø¦¦‘»—§zÈ• »ü\^NúóÅ¿Im`¿endstream endobj 1144 0 obj <> stream xœÍ][s¹qÎ3k+¿o9L-'ƒ;7ÇV§b;ÞebWyó Q·­ˆ”VÒÞòëÓÝf·9sxHoJšb€F£Ñýõ8ß]Γ¸œñ_úÿöîb¾|sñÝ… ·—é¿Û»Ëº¹ø‡¯d—a VZ}yóú"~#.…ñ“–îÒ:5 §.oî.þrøáÊèÉ(!ϯæI+åt8¼»ºž'¥Œ“îð=>g¼—‡Wø¬íìf{øtu m'çÕáå É‡«kéá¶x{[+­~‰cï×áïÓ[+·ìCÖâgNÎGYúû6î…óÅ$ØÜ>Sf³*š×ãûI„Ã7ÙÔb'VÞ¬M?áß³^úÿ¾ù7ཚUÁ{ã&1kàÿÍKàö¯áKa‚ôîð‡õñwÝGÖà÷øhaÍòìæâ8’ —o>]èi6—?‚<üË…2"L^à«É™Ë;x£,ÑòæÝÅ×C©©)OR]LÁWRóÕJÛ¯*2ããoÆ-硂Гrœæ á>‹æ '­UIó?¯tüv}üóBÒá½µ^ÙH~I¨–ÀJÁ …½oÎ"º˜Bìb%ôë.IÏÖ·¿YÞF™«ö;ôi­Yæ¢Ø h”·žWjÙ´øÜ•Ük@t¥½¼r2ÚŠØÛ×+ëja¶³òpÓmð¯ËãÂP´‡­siíì'ü6ÓùÅØ =L>ö0YÐtÄN&ŠÏÖÇ›îÛ¯z²ÊÅå÷]!úºÛïo{œè®˜ƒó.ä›VÍÕ_!`i”¥± ¥ÒʼÜCxŠy‘Šg8†ÔBù,¤ã^Ç¡ƒíÈ4"¨A1ÍÖ€ q j–h7 eé1tÌñÒ˜¬yabºxÏ:çz+çûŽOêWƒº.ºÿ–éþ[¤ ôªÑ yã ‹ô–õþü Z€îp`éí¼(ú+Ù‚] ˜4³0œCinHûŽY |FÆÍAÀìaìÙ7¹Ñåvld¼¸ |ÇÞÓ™I…‚Ëß35À9˹ù%|i,XW°ê‡+Ð.Z ìÅLZ3ÕÉRu'ã`¼Dž’ÎÆ× #”Ú?¿Îß“’1&‰òƒAï¯éY[ çmÞ²~Øšð©±I0ÂQJÉ=ñGYSŒÎ‡ù‰‰o3EÖe@ctn(¾õøHûç'gAû¢›¸!d8üŒw K®_¾*ïc[-?bc39P/œ™±ñ€ú™övŸ;6=FÍ齿œç’\ŠDNØìfQyï CˆC¡¯H VIb{Šbª]ìsoNpØÓ ´>|w'¡6F†'j¥'¯ÌÈ`x·o¾m'Aj˜+VÎ.?_Æá<ðá?E¾©YÿRæä.Qàx‡œµßQ'`ûT!†\ï %MN T¸Ý뎠–=( YÐù3› ŸW|”à4D©hoQ]Ÿez²„ޤèàLîÜ Øƒ|Áÿ·/n;ý,…JBŸe>Q|„”´58oA'k ÎÀNÁÌZõœÏf+ósá\ÈÕ‡¿;‚ò„U°Ø. Åëmxg¦àìÚšužá$Ò2€“ð§T àxY-v XáÉÿÄÖ!8¹ÀPÖd§ÐK²—8>‚l~Á¸öÓºøê¼D¨(^öíy!<<ŒÀL SÄÔ‡7¶>L¥—^på%C à~}ý=ôo™Ü6].;çf_HçûH˜‘ãÈH´KZÍ®§tQ–«1©Ãȸ¿‚º$õV©Kâµ5ò£eä믋ËÖ¤ ¡Õ¬M–¬7«6|ÇÚrÆÕº.uPêº#ê¡VïÏWÍ7Šo‘åTS} 8xÄLû6-†pŽiÏâ´üŒhlN6 e¡«€µx1P¯¢"tgínR¥ZìÝÝ´X ‰ioÍVújoa‡àÝŒìD4—F|›@lìÖ±â¶xÑ&Zÿ€¯= p‹+õjhé: +K-—4üËב@ã²)ÀMÓ•$© ·3Kèk§¡9P4ðß…Rd¿?IdµŠ,—¦±2»É[µµäÐBUqî‘ô࡚} ü¤Õ9¸·‘b;‡§ˆf¨ÙORž Çf øÆ=M4 4òئk¢¸i‚1ý]BÜE\>òɘèåÂư‘wËq?·Mlb |ÇÑJ÷‘/ÃýjJ¸¨2#Ä5ô†ì! & m W‰OšÖhº[©Õ¤ršI 'é¸áøí÷Z •?‰õÖÚâÞܯð áŒQ£ðÁtÒî ^ÝÇ×Q–¬õGu€jVÝÿòét¿ÂøŸŽk/c×k€ü¶²€û + ¦`dø›¸èÁ‚bN ðÿ!EèÜXŠP Ðd>ôS$ðè„÷B¼¹ò l‘=cåGJøX¸¡@b+®z‘‹(5Û3A劌«½Ï©ÇYÂ//Ù‡ƒÀ`µM²Þä é¡õiš•Cg‚EŠ~Fª8fdM»ŽíhÎÀc3P¶q±ðµ¶ÇWJqºù81Ú-´®Ý4š`+¾¡?¦½¨a/fImW‡bÅié ÇXÀ”‰V¾Ø£â8"fø2ÀD4»#¬6“´MnnseÀ.çHMX"z ȦP„£G•nUꢎ.ÓæáAÂV‹}&° ð=gK:à¥`ZÖu„MÇXþÝ(=Îo"4¦Q޳ ¯IwXs×D{€ïŽÅ373.\ªH¿B6½<Ææq×JKa/f£¤mK‘cY¯QÚã1¾=I¡²ð épµ¢¢'kÈ ~ÉÊh,±f’O9%#ë I‹-Ë?ø>f›¾Þ4F©³÷x.S"I @6Î ™S›‰/úNŽ‚ç%ÈA;‚éó„f36•v[[ÙÛÆ9;DLS#dÐa}Ĩ(ÈqS{b„Ú©/˜E1:qWmé×RwÆs< Ï«kÖ %g¥K¬Ò®’lJâ—rÝFH)÷S¨éP$¢ñûENKÅA‰Qá—ÈžëuZ˜ U˜feÇë‹ØË©ZevÃ×ÙëÒìŠsGy‰Â³¯L9q[‰€–µ{ÔmÝlì¹.VÅ·:lîqbƒTgjñHª~4-ŽÉa]`ìDjçîé UÂ$¿X2We¸w‘ÉÏ‘æAeE}<.Êjêø‘dU5©`«SFÒ^ÃR?#&ÔÉ<ÅŽ]hBñð¶Š¡óÎ~D‚¥˜C¯*äCPy}èÎáÇ#ífè ´RßÓ×÷iV~ÜúUä,ÐlՇň!M¹ ñ¿[®rÝ|ˆŒúÀäqPnÄ‘o‰j#†°zËô<‚ÆýtħH·hWx"ŽWÌn1ÔÎ %çF0£S–ݘýí‰^¥ˆL%Âq/iã¨PÍÇå|¤u“ØèVpÁJ ‹ðsê0„mѱX?Ù;ûRxXÔãhJ£2ú¦2KVñ¶Oqo¨Ó@Ö¼Qü*6q›¢ýA4d‰îÈDS·TêäÚ¿«O3™h“Æ[͵v/¥œÝ×™Ôò"ŽÊÿô@U r2ôQ¦Ôû–·©£bÑÀ¨žãñ‚dq[4––­YÁD“>½Ö3ÁŒòS£`Ï-Û+ûêF¨ äÖökÍ ²^ù ]—Ê9Ä¿¸ù{ŒwãÁDB›› }¼ÞHL~3¢h£ª”lwíq‹˜Ü ?‡—;¹FneO·‰RhNŒb×ΘF"àu0žáˆî!·Quf{Êm³Rõ®7“Øà{>ka'‘þz“{ó öºwÜéqüÃ}w9ðX14˜¬Üå1}NhZä«b )‹¢7ª˜jL7é“o…ëøKû =‹Ê„NÈû«*Ö£ME1ÂÇ+ƒ—žY™S·”è¯JŽ„ÊŽKŽuŒLSIŒ9 >ïÜ+>G‘Þ‘$Ø<ÞÖû Ž'åˆAŸç3f¦DÉt5/ŽŠb™éªÌ—WIü6á k½$œ1<ŠGNµÙõÈ`ã·¯ô—çTǰgžêlÙùK×i¹Æ}¨Oq†^6±eœ"Ö|Ž‚í8©’”»BpV)÷m/a”3<éD Æàʼn'RÀy“t?MYuʨj°ò‹”Q ¯ää+£ÊoÎ(£‚.`ç¤k#;ºU D€3na%SQ 6e7Z?yÉ öº9‹8“!v±÷ ú(¬VÍP§×Ga Ì©åQÀ¼',ˆ ¬"Þä sy”]ß<´< Ì!tþ`!LóƒélD¢,|Òàë N›ÃâÎ" ®){hÙ;ó²#ñ²Cê>ö”r5Q¿êD Ÿ ô“TJ›Þ䙽êô,ÖIj™ üŒÇ’«NLò¹ÂF "ŽÕšbõd܇¼õŒwðÖ£†ä±ä_«š<à*ßÇ1%²ãX`™DƳ?Þlz?¼œæv¦ènI4ñóV–FÓõ2®XøÎ’[xý˜ƒ¸b^í †þãÕµ XmS$_Ö¯„w1d1¯·Þ’B@5À|8b*ýlXHtï”ÔYi~FIšúÖ§&éÇ«U]lm‡™âþ½mįa?]ç¦é„òVqŽráFŸ:ùÖáeı nYSHw„‹Çšó±U¦?5Õ%ïã8 q.µ÷+!”dêáKœ ”í Õ š¼Jt3Ð̹­-@Lã`Í“P®0q­° ³Ý|)üCë#(&,RÎÑÐ#سӑUWJÖD‚J‡ºŠt3‰Sªˆ]€¡ SY-—ÆÖºŒA gÃéÅh0´,ƒHOR›BS”…õ¾œ|Sñ&'r¶ ~šœÆÇ8гâá[ ò%­xfž+¯=nnØv ,k° Ê¤àü—„Hlg²Î+ðHÉö8B¦ì g0 ò æ¢ÿ)ÖXãuG#‰…ƒømJˆ™<˜Q }ß¹NT7 ㇋ž9C‡Ã¨“ -²B*7îª}›aÎÚßj­§cõUqà³jùId.Ørç &{\½æª µˆ…\hµÊfêªÄ¶û•”‰åiÚLA6%øº.=¨y‚uÉÂö5ëÍ&xAB¿¯M9¾µaó°1jÆ[™Î,vÓ1®xja1L5€ˆ’§‰ÈÿÍÜ™Ñ?,Øl€6RJ‘êÑ50ñ,œ®ú—Â3 ½¼® eßE<±³Ruvƒà)4Rùà°üúS-ƒÝÇ»âú¿‚·ñøíà=3.†„0Ílfð VçÖRÒïìXyzÝ~×–Ú〠øk?fÏtÏJX,>éÝÁÅ%Pã ©¶¦ÑIÈ„xZÛêÖÍXR¾”Ïf¨K”EÒë8†lœ•èÙyøK}OÙR@Š×lº|ÛL÷÷:Ñ•ÚcX¡ÅuØíòË廣ÈR•æ‹5AþðÍ5?Ýõ Ìc¹ *„™î ®.ÆÂóÓÕåC-ˆÓvøCüº”X0U€svt`pñW]ч>zßèúe…]¹ü“kj(µÑÊoºG£Q‰`®*Ûè$],ôÄÙ‹tÕ;Õ^žG«iù¯#5måÝ'ÇïJ^•ôKÁÐÑ~Ü NŽÂÇÑMb~ÊZVxù¡‚áyÕ‹ÄϽ .#dó{Û½µ*7_ÀsÈ0(çÿõÚËZŸ¼d9ÿxñ&õÜkendstream endobj 1153 0 obj <> stream xœÝ=ÉrDZw„ã}Ã/8íÚ—£·p¼gGx›ˆA[@ ¤%Ê?ï̬êî¬êªš²8lVWå¾Uf뛘äNàùÏ7wbw{ñÍ…¤§»üÇ›»Ýϯ.~úG-ô.NÑ)gvWo/Ò;r'µ›,ü“óz’^ï®î.þ¼?\¦6ªà÷_~¾¾úØÆiWl#§hìtuïÑâ ¬óû¯è§ÔFí¿½<ˆ)x'¼Û¹¬HÛ©ùvðÓËv©&kœLÛ~XoCP°/ü6°—pû—cĤ#‚©üd´÷Å8YNÂxüååA…ÉöƒÑÚ›¸ÄÅÞË_ÄÝŒ´û;X!à4%¬>ÀÖÖÁã›c䤥A0à5+¢Ðlï&¹¢›”½ˆH‰^ÚÇ…^^ ™é…+šô’~ŠH¦¼ß+ÊùI½ÿ^TB#mÞ1°ÿŠ¿µ¶^ùý¤™µFâ c  Ô¯/dFÅý焬Q ^ZÉËyŸèïlAëuA>8H ô}>N›™.¨Pp.ñÓ8Ýâ§1oíÔþ}‚M‚¬2xÞÎO x2%´Ñre7®]@K[H 3nŒµ±}_,Aª©2p`Fß§Süu»ì‡ü;Hi@›\’ok³|s)d|ã¼âXd¾ÁâwÅàNë.I„jCúodØ]ýöâê–Rßk “¹œŽk&qÃ(b _ÁÁ½]—|F5•“ÆqôïÙ9‰]F8U¨2;²”áæñÝðD‰Ÿd3–À!WÇUé1íµÛ`K!mÓƒÃYÙµ&¾M§Ä ST²èÓ&í\€“Zƒp µq…ˆA.(T­1àoRvÃ$¿¡·ÚšJQPÆ”•(³HÝæC´-Ä8Áû Å·»^õu,]´äóJRÇùèRO7–èvl "6T—Èýž½÷W[p¸†;¤¯ð©ž|ˆûOìÀÊ9-ݤåBâ&d&uà¬lªyô“ƯT^<üÃúóÛõçÍØ(=ã¼Ý1#s`j%¬‡@q“)ýñIÆæªm¹õlÆmâ’ï¯ø—Y•yA¦“,0>8 {ùÝA¹ÉDøAˆ{ÜÊj”wÚÀCÈ%üÞ´Ëõñú3&…µü8` (ÃX&ˆGNX©˜oØp®Æ„܌㩘·pB)2=HØ`L"P~ü°ÿ=&U04!û…Œk~n…Ômç¿¥W@O…>å|<+ 5äñÜŸk5¨Â?5y¯EkÚ ú ¡:!®EŒÑ%{PÁ[³ TZ9ÜýWW@Œ]ÜÝ>^˜IØÝwü¶`âÎjç 8ÞÝÁ“rµ>yñE7O¨ü9Oˆ`¬lÀ-P¬Sžp»Æûß^ZÔ9Ð X9£B¿É–j)•’ øJýRšª”õSÐç€ [ Ù,AýÉJ_2ÈÎÍ’”¶ýq“0.žÇ]+¬kp—HÒà®¶V­äqÞBFÄÉŒÉYäñˆ½/ÉóÀ J¬”Î$žŸn:JP:XÞ”%d´ð¶eÈhPПs-&•¶8Ÿ×Ö>—×Ç™ú$ÆÃÁ™8N+´’î,Z9ôŸã9‹¹ærÈÙóB!•áš«ƒ{–æÂ`ýí pø£Üb—_3§ÿšùè×G¸,A`!(nqùÖVR®ú ¤µy½ÔΫ¬**Êy%=!;1€Š(ÓœÆÚ€þKÂ=jˆ4{¡ÁYq˜róì8HGµ A“;U[ziu,Ö0œ]3xÞ[þµ“/QÂm§ Ê‰EX)d2Ñ[žÍšžß@Ñ, :ðùéç|¾žzU˜ù5ûBÁ r(c PÍŒs¨¹FѪ} ¢\Ü[hÓM†x~8H3çô âJïè¹Úÿ ™‹Nu78G|âP¥ò„à®:2¸ s8š\](¥úP/ùu#§ s›An×¼©!ô@AÇ+A÷‰­B)þ”‘é’ðp©Ì0XÕyeU>lU)ûœ­K–Ös½oð&ÇŽg¢<Ñì6²%á_Žˆ6ü‹°¹ˆy)?ç Þ*s_NÖ´2b@wC˜(°_®í:øœ^S²¸+c£Þe× Vé!z*\…~X&w24¼ñ²` <Êп‘\Wó0° Hª3Á’BP{?l^°¶e¡YÞÂEÛ»åað}b¾5ßžJÒ5¼\û6m «»wFS ŸóM عáàûÝçÕºÀ›_)ñ$Ž_/q¦n®-`Ge+‹Bœ ²1v±ÃÄñ6É;$È1,ÐBöÀïzÚ—D˜¸òè¦qcŠ`$9ÎÇ•r<Èr^ŽÈýOØcƇ*'ÁÕÁ£ÞÓ•’ôsâ1CL›AnßËd~œ˜¼ã$¥êúïûÔXà«]_õ óš–0€ß'ôqÜE“bYÄ:f›´Øm¨Ÿ½6¤‹3k——ÂW–³ºq’'9“ÛK5d(@aäl#rON)aeSÀS>–ƒÉ_L c{Oö‘¡äWªWÉ! N¹;æ¶2ã§ã8¸!t{eÞ0íê8@ ^¤œl,çR•ÚZ´+Z‡Óá^cÉ_Cø5¿<×e3Z@L¸ÁSÖ»|¶[ÎÛôðM˜éGSeº’“ÖDÙ_VyZÀí ‚K ð>MÇÓj@î/{¶<¿ªàb÷ÒÞh€S–ž9§l6N. «2 \Ý•õN¥©Úa‰a—x?ÅãÔŠÎ$¯®œXÁL¸…vÛ ¯§d D•OµËAw 1««”LP 3F›awGnˆ£cÉ’a²àc.¿‰€<)À¨ø2#úu¿f12Ëy‚'™pã7‰Á?P¹ÀQ¯~à^Ç ŠDïc^+uU£Å^m#^ýå’áCVÒ’·ot¶éì·ŒtÔTÙɱxUfÙ”Î!m׊r“¹äÑ“üw</p“óvŒxO97O‚í8Vý¯Ì%öè¿4ðƒ'À®6ÊœÂÑî£áNâöæfÊ#m—wj›U-¿Ñl|QÔÛ‘›í~‡¯9ˆ-}èØ÷„–¹ºmýH{:ïôcÓ—ï.‡­hJNòµ™¿¤ÆBk£$®:ùè@iJK· ¶®:p#VßßЛ<;hÜë°á‹jHe&ça™‰«ØQÞ̎‡|£¨T™óõ£ì™­Î=ç6^LõtÚmÐ:€Š«•>žÿõ"þïg“e:=3äÚT±Ïâ5º5ôÎíd‡,ÜŠrAá§wÆÍë29ôÑÊÉ&n6µÁÆV½¼´upÄd«ø­è]n<š h :i¬ÛhÆŸž¤¿Çó”‘:ðaNë\ã%Q>jü [££šÁIØïiIÖt4idø°ôhð"ÄV¤Úu@JÊ@3¯©ymŸ=¦–ŸÏŸ@ût¹Lf=iì,†ÿˆ±3Ÿ‰Ü¶ïÜõoœ5p\G ±B ¹²àúäYsey§-&g^n® ûpU)Œ?TœUÑ— >g:EéI»uâùß0WNÚsòø¨¦èÏ"“ªÉ³ÎQ¬œ\¤&úÔ;²iVU|3„åq3¬L&xí™\j 1¼âÌÖJ‚ó<‹Ù°x<÷_Àl £"×ñ\òxðY5y8/·ÚJZ@>œ„4S/8I5=†ƒ‘Fƒµ<Ø ²-ÓœVf±óvž~œaj2ÙÚšÉk<õäéAµv ¤¹²Çë5+µ\÷eÔò8ßÏ2ÔùCA2¼HÔbüá&M¸†‹S1Ø.qÍä`Õþâë‹×Ì31oT,`®Ä–Ãd0nšNL¬Ožå°0: %þ53Šüy{^:ž:®H¶•« _ÏÔñظ¢ïBÿ ÇEBi†x /”#ûjÉyÁ6@…õS/2 y0ˆoÕ­ð˜‹c]ë|ÇOá©5ßãUúÄZ®—ë–‡ EèBoØxóÑ9’S•>Èý 5å‚+(½gª‚(L/â&Êø¢ùx“žR²¾é_¦Và˜áp¦'+Òp¦ñq 8˜85FÍ÷Û1ºø«A³µ2u> gŽ:f9•«j ¾*bj°§Ñÿ²äשj1é¨gnp&Þ»³Ä”¾ 63‹MyL`ëØm€èϯ6ëBåtÒ;­y³x¯ÐB,§‡ÅäŽ ½:i°y—S4k§ª”ÆÑÙNqH ;…hVþ††*núðùïþwÔ3)í¾¼ƒ\ˆ³½ Nöoƒ?uH> *(ò©\A’-¶,Ã*™-]ÃNW¹¶œJêÝÎnÔTN–ìâ¢U¸“êBñøA½ö{†Û—lyÕÍŒâ,İî çc¿êK}Á 9‹Ò2åöBØúgÉK¹Úœqƒj6K½zp©Õ³¿¸ëNóy߯,zðªŽèê0ÔÝU„Nz=‡.h—à zúqyÚ3ÜÙ-¶fõ©„n°iýUÎŽ5lŒ†`Qÿ¤/j ««¾¡×™Àª¼¾‰×ÃèÍ>5`Ý(X'f8Åxl‘Ó«¥J­77\cö¿GÇëa›ÆGI7}_t íDOò™¶ê4“ö˜– H·Šì°ë8ŒƒK¼î`à1wWS]ûŽ?[H”Å=òÛôÔ–—)ü“„+v[–4L+]É4¤ƒžo¿"˜à/›­Ï {õö€n»Ú7›ðA‚¶¾UÍÆ‚pÃïÀ Ç ‚ÅolÙ³â ãXÄšo$Ë·“ÆÚ¶ [Ò¸/n¬Î3Åøæb€£œckºÌÎ7Å} „^DÎ7€Ø:—Ë–pÇ¿ÓwZ›G ѸÀ5S0a£š¹#;ÁZF[ ip‘ 2΃ýû3)Lb{÷¨Ô-¶KÄÁ@4V÷A"OìSË%{Ü‹ ië:ð&A§CÙÌCð¸~BÐoæQl¦¨ÇÕð©ò]蟗‚Ô†çMÂEùØŠSSªz°8i fËÅf«z3 Úf„=5ÒBAýösß^¯7µ89g ßûøÏ1Ê1ãùcΟӆXñ* ‘¾úôÅuq“›d¼Jm9¢±›ä©ùMVß­È4Ê#\e:aì²Ð܋ڌªa‘ݶº^Òx¾%ªqÝÿaàqiêÕ]x×Ë¡öèѨx4Ã7ÇáÕ§h–ÒfILýaXäM…U6d5È¿iXMQä⌓ñ¤3uT"¦’˜§cý漄¢ù¨-ùEx½Ï_zÁ{©};ʧo4k¿Û^9íí*Úž‘ð5S‰W¥ißk§A.ͰX>ãà±câSÝŘhº©KœsZ)c9ÁÚ×Ü"cݸIÙƒ >àÕXjW?73>âçµfpþD\0R€äˆÿ†Ò.áe;ëòôÁͼǩ8v¡€m=ÞÁuB·êñNõáðϰϩñÝ·˜²9MÍBÝÚi¯щ¬^ì#3—Û|dfþÀÆ ~²O<Á€óFÅŽ¯‡)Þ'ÈÐóg0ð[iR–ñá‹|ð¯¶æÒÙ’ï³bÀã4Ìýp ݘ­ú¸9­Þ̶ÀCô/WÎ×Þý¯^=·øD•YOø%Ixþ×ñ|02M2éLÍ¡jþ^Ù ‡€øŠåË|4XÃõÓu­U&µ½2p= pZêå~NçÍŽ$ý_9#ùÝ?äL¾4+ ýòs¹[þÃÅ?ˆ7¯Öendstream endobj 1164 0 obj <> stream xœÅ\Ý“¹mßѳ©Ûv󛌟’JìÄI*9[•<ØyÐíêökwu’îÎÊ_$HÝ=;³+9uu¥i,þ@ øùôÌjZð¿òïÍýa™î?Q§òÏÍýô÷¯¿üNiJsòÚÛéÕw‡\FMÊøÙ-fòÁÌ*˜éÕýáÇ?]]/³1.èp|Àß.¸õñøý£øýñêÚ(7­Ž÷W˼M/úø~[c‚M]Iù{¯¦;”hçhâñ+A~+Øßå‡Juœ­NÇOT4þx»Sã/2=cP õKXüñ}.j9~Gìvñ:"YÍ‹w)›j÷‡NÛÈnI‹9~/ê¬P(©Ãl-è%ðA+(õíÕ5ürÑÅM@VÉš¿Ëb ÿ‰Äš˜Æb XB“Mp#ØeÑ(ÛÏ‹Õ;5nèj¬Q ä¿_ýö £š {uÛìÉè๗©Í߉ß?Šß¹½,âXæ¬ ±Q`ÉwÖÒEoY:HmÑut­ôì¬WÙ]Ó­4– aÏpe—þ Æ4ûÐÙÂÃŽ­¢-5G.pjÎÒtQþ‚Ž»¢Y¢×]9a2åNÚ* ¶‘ÛÞG¥’? Bô`IÆC´7”Í ô-†”êÌNr3Vh´Á_Ðæø3PõbL ½yƒ_8~ó=wÁnŒ’-’Ëéäe¹^2óà@ºa;g¥ŒßRŠú¢*¥¥9W¥Ôç4øŽ,Þ¹gZ¼qjNÁq„ a+ ˆÒ|àr@cê“ÆéY%%;RÚ­lï· 6m#[pTëzOhóg‚í”îê~ÈuGèß~BfeûHþX*‰V –jÉß;ŽRD籪·êÆ–Ç®[PUÊÞÀ%=SF iiy „ƒèÁ0øÎW×6E0~{|õ´óÔr•ÌÝC­Ñ²¹ËÝñ£µÙzãlí·Ú¤dãoÅ0!?’&²¡,Éó1 "Šªsd‡(ð³Cصã°t¾ÁÌ­{ £a 2ª® lÎ Ýx VÄì–x*ô’¼˜d\|¦V#qKOùX¤„1lÂ/éÏ©þó RX© cÚÂP^3VÝ™´tœo»¬pŒ]hLû± eÛ¥w£® ud"=dt†ú·šæC† }ó¡a™EÁ · ­!¸{•†ù¸²yjº1€³Ü—ðúûkð˜ÅÍ>™!Úh :‡¥S ·î#’ˆN{ñ¯plw)|Ït¸¢pÒ^‰%ö@ÚÔGFžº—KB5гïÊðÝÐ@[I´hðÛw¹’„ãüû­±¯ú‡Ad-ræ>Íü.ëY,zµü¹™eÎZ ôZ7dç² (^ß±hNH³ð”O¹ê^ÕÇóÍ%Uìr>°§ùuÍRÉf2èÞNÍc€)ÕÉhk"Œ…H>1Ì’*¥ƒZ¶a–*Wé@Y…»ŒÊìú€ìD EúOnmµsç!‹ÒlZ˜=m¾Rv?É:Œ)7ÀŽ«à74&h¶£±êµ=’—K›x O ø¯¯"&ÑiT´ëÌí/YÄ’bçs²72$2½2U ‘VPÈž FÚâ<Ì~~è•Á:dÝ­rr9âä;Æ7Õ˜½À< ß6+vŽpúYê9ÙEÀ(dÌÄ7xaÂ…™ˆN00¦ÍI| ­0.ÿÂL„¤øqøGª²›‰[_½ýŒ™6Šr~ÊëR¥ó_$AÙÆ=¿dÝÒu÷"—l66s—¢gC—^ö¥ Í}þSÙûŒ]';G«‡· åû•­gL}Lÿ7äJ2eJÛù»°¨ÉC<0ÑáÒe¯„”J¡ —Ki,¥ Å×)—<íl¤?SWèGÑô¶vNà]"¨écäüUkí½ú`j[çJMøñWÐj>ÍÞÆ>ôÒÜ*³ò–N™ ²ØÝ‰èÁpL>»šH: øÞ\ÚÎÏþɦ¹à]‹ë±Q°žN‰.Ë" fXÐŒÃìûÂ¥“å­•ÔÛŒ.ö3™)¥³:çâɵG4à›~€ š^¥ËýÀÛÅ?éè?À€q¾¶Øå\ižïh?km†ùùKæ;V[ˆ$a0£Êq‹£½Ÿ¤e´ONu¶#*—£\?Ú£ H4Uãõ"C›…¸›Ê,²·†í!‹áâÛÆ--. ƒ:½¸€UƒÏ|.G85Y­3@—‚>‰¬q'y+Ü(p É]ùûOyÜK ÚEm{w¨µŽ9uÚ_ „cN4«y:WÑcÂXŸ˜Ñ’©`ßÛŸ² NÆàv‰YM<Œ2ÍÁC社LvƒÕ$µÚ›L üäœ †4¦ù<²ì8âÞœOàÃÕbþÔ‹æ#r€ÿÇW‡o ºŸ¦»¸ËêA=&KËìvR r~Çÿ¼3ý×ôp{U!%m§Ÿjúía™~s/‚DTM·¸ütÐ0Å…q’ o¿_óTÈ›ƒ!¦¡œ$™pc~7&&¦Qú¶¨5SlÐ0À»ÕJVÇ5 h¸$×([Öš«R¬Æâ—e‚‡ÄjýFRÖPrýS¤¬¡¤%¸Fvp ´Úvßìž$0jû$®®k=Yåæe‰ù$ÁkÊFbÄEGr¨œ^¶3fefˆ3uÓøïÀ‡-D\w'›%fÑšÌÅ1˦2¨1f5YÃsÃÀfî ¯ˆ¡ä^Ò›‹s¯Zèÿm‚›LÐ1Ø!ë¿V˜T¬¶y( 5„Ÿ½e@kŸ&¬‡/@¶¦Cë-V‚ÒgÏ**}niL è?ŒÅô<^ÇWÐ8ºEVmpÕ_Æñ5D\ÊݬVPaè<•  å@ÃÌÉJAk&HA}9!HÂTÙÆ´ÁU(2TŽ%·a­¹˜"e%·ÑopJ'k(Ùduè¶qmp1E„ݱä6®5W¥YcÉmô\L‘²†’B–D?h´k¤íÔ8жkÌCÓû» j„Í6Bò&ÈÜp›krÖ›yÑSµÌò}s€Hg!Ü5 © àOªàæÀß2ko¦ZZyœ14ùå 0æ`„,¡Wáæ|ñ8ÉžX TJnV¾afiZE£`ZÝ8¨–Ð$ÔoÖ‹ ‹0l®¢)Æ ¥‚,-P1È ¼âÿÐwÖ;7/´¬„Œ&¹ˆªCõ˪¥¥©~hÆE<îU%Ôï¡# `¸ŠªeÁ ’%ôZ –kël¡«RRš…u’p7X“ÖÉÅüJyþÊò«uÚdÜ|µN #>LV«|þnÖY9 À*aP¡3Ï+%Ãê,à ¶ã¤y2[_P?«b…Rq7G—¦YÁÆÈF-öí³©Y)„²7 7“öÉl~E@ýdL© ‹€ªê&ƒ¨c•0h±i bDaJ\ôõÔÙ‡½Áw³ÐÊQL”ÏRC3Qo"f`µ8ä³Àµ Ê·0Qæ`ˆ,aPBš¨¸˜Â¸¤y li@Y1ibºe•ÀßM5¦02–ÀÈ¹Ž¦£(”вHõX)Œí2¦˜w“[Õ¨#lUÔ*<‡Ü¨N×ðwÅP)Œ²`%¸†ªfÅÀŒ‘ ZP²!7͘ÂÀ¤é#péY3é>º9\•ÀßM5¦02–ÀÈ¹Ž¦£`FÉ=¶°¥NLq¸ ê¦Þú÷îWþ^¼‹K—Ï"¾yŸ±Ð!ªy̓|_¾…÷1ãc ƒk enSd烗HG,g/ãâüÝ”d cd¬×дd…R! £d l´M1¦d½Ù~!¯ü™½ŠKów­³RU)Ï Y~U«`È:¿kj1…u?¸„ôºòwv).ÎßM/¦0,À°¹†¦C`†È%P±‹×¶ŒµÐx¦_Û¢Õ'½r×¶¼Í;Ûëµ-ç*ëÂX^jGöŸqGÆB7».8¤Aò U´ÈûBeó¤±lƒZ‰)ûB Ï§znXäé¶þ¹Aú•¥á$® -'÷Vq1ÂRw”zï8ÊÛ²%áã“Ë{.›U_hyﯳµŠ 6yy`iµ0ºÚ?“[‘ÛëeJY<\4i8•»`ß·Éb‚l!+\¦G×¥ >Sh¡{ÍÅNhlæJ Y‚K+<÷®W¥HYƒümY#Mpi öîû+W¥®±$ÈŠÑÍЩ×@Û‘µâbŠNƒCk%Kr%·¹jÆ¢¬]hÂÕ:) b-Ì• wL«RfªM]¾o ñ¼&Ô8ȺB“ÀߥޛC¥‰œª\H­Žò %s0J–0èAyK0Ö:šnLad/옆œ;µé†cUhÚæzl“ÀßM7¦02–ÀÈ¹Ž¦£`FÉ=V9™6"¡‘>”SC´™m¬jT[ªŠB²±àÒyåX Ì.©Iàï ¢R Ì*¡¨Q먊VÌÁ(Y G—[×nÎˈ¥³™zñƒyi¨ÌÁfXðg©AØ©õz6¡Ù©üþ­U”oa§ÌÁY Eg§M3¦`øÁ„¼4Sæ`#,ø³iÆÆÅ7WÑ4cÌÁY ž•¶¸Ê”Œ²7?—FÊl‚EV•R@VE‰ZEU³‚`ÆÈ-zÅ6Ð2Ž‚Ñ «Ò‘\ýÐȲËß©“Dqþ.ò¹¢¼CÔU®H-" •oîFÛ8 BÐk°îDjP9ìU  ¦¤¾4)äAup+ß!.O]TªS7 üÝÔd ¡„†a ¤„mu”o(Á( ¥¢,F=PÑÚµM7¦dqòÎ|H·ÎÀ¢›,¿k½•ÂÈX#ç:ªns0J–0èAº}EZÀ-°à6?õ-¦†6U²ß˜ƒ{…%”o®£õ›Ž>Î^×~Ëyg¨uðwë7¦TÜE¨‡ì7¡·@AÖ·˜ÚTÉ~cî–P¾[½•ÂÈŠ„ŠœÓ®ª£¨Œ›% zõ®Ê¿^ýÍ6Oê'Oõk(Dws¿Äaæ¿Îšñ¤ ‹¹6RR\N%fÌ¥Ÿuä¸,ñ€ßrÛŸ9®?ÿO>ëY/öøhƒÏê¬ïE®®èý^œ§ÊO]²qïH¦´¼êƒ—³Ôþc+O¸‹Ut·ï™­^9A*ÝžÓó“µ³îGyT>C§Çgc^t·ˆºÃœz«&WºûÖÁàÒÔ'Žjÿ¢ÜLJ ƒ‘¥ûo­æSU:ŸçvØ8L‹AßvJ^¾ŠÄ—‹°< ß?x*º´y`}çö~VvÿjÜþ ò|flëqS~&\à  Þ:hxæ}||ÁzÈPŽÿy .n¾¥ñÜ×z@E¥Âpˆ\ œòÉ÷Æ;¥xž\Ÿi¬Äüä-Z2¯?ÎTÌÚ>çÜx^ö=ïþ‚_âÐ4ùRœÂ[ì@Òe‡›§ÆAÔÝ0íO%žwGáÔ1H=<<@Ç ýx´_®#_³}~òä¹ûp¡÷¼Ûv¼¢†ì ×(Þ4ï)Õ€+›=®4Œž«tÞ‚Øé_wˆF“¶ÿŽ¥¼†Øa3P!'(·PTPΔÑ+Ÿ@ÎuçûÔ™6r&1–Êa¢+så„A@ÓPrL®ü„)— ¤QxÈ?KÂa|W^Í©q~w徯’òAé’i¿¿‚$Þ+ÚUiÔ{j}燂§ªµó|:Öj£}!+““åeŽÁFGQ7=cÚÞF€ŸfSõ«ßP‡ÀÔ³ içV¡èìK-Ÿ8¨ì¾‡Âé1%~ßÕ9w>õ6¦Æs¯i㑼1»&3G«ˆö³XÍšVo?¶ YtÀ„.ùa:u«Zã´ÚLVK$O %д@Ç©'è”–“Ï%"’dºÜðV4@ ôÍÞûq2ù–ã†äùTÚxÎû…;Sö¿d!‹r{ïõéÙ5¿ž(‘H;ÕWç ¸?wîkèlÆÓÞ[‰d›ÃR—y†WI4ɳOJ|ݧ×\]Ÿ7žÙX-Z VAo–øðEb>ÜYñ9ã?ñBÁýéµq#ëÉÂH€3ÝߥÕoZ­hÞæj0 ÍÇä=‹’z'¦½„b/I˜óp æmÿLÝbM~ÇÅ€ý\\ýã¶a•„Þ/K?•«Ç7ᒸή“›—vkœÃ5Õöµ‘`¿nEËRK®äìù$u¿ù²vzjm-ÑãÕë†ø§lRel0Éü'Ì`R´‰×Ypäû™rÆ÷H¥¨œžh¿»ÞCOóièÆÞ´‹m%»õ‚¯¾¯§˜hŽKM)IàC(¹°‡d}5ÓçÊ2çižz yú9_L‡†8y›æà,è“1‚†öv¡FØe DÌÚLtn·¼GþS›×Róh<@êy^ëxÙÒ/ -”!C@x‘]ƒxˆ7ÿKEaÇìÊøúdE}?¹Ô#[¦† X–m âô¹•­@[çöE­àðµ×5ÃWµîN¯<ë÷ÚnïËÑd!ª8,œî¼œ0.ý`"nW³:ME÷eø©>£;¾¹«qÚbÇðâŒ?¹­E8‚:ç£ìHæï·JPO½E¹¨ÐS5äªYJe‘/iô`4>·«8%ÆgêvV{ßÍ‹ùe“[l0ù©IøŒ)^OÃÇéÝÅôLåf‰·é ‰˜qŠGfy×¼ó ®gù¤uç3eå*åUs¶²Xp…•J)´o†§Âa¾ÛT±øJat/QÅÒ¥ שò<Ãõ_“Ëþù˜:¬ W°èá?›ÆÇЊ!ཅ C …Á CÀÕÀÚzzYºŠ‡1©»Q³©„g´H€ñ$ÀX¥Üv¥—M¤iAëý zT«Î~wL¼YSSÀBu)I ,1w*|Õ`”î·FXì^ç+qìaV½î™•ÁäC~nI¶ |zvo½êcy ²ìñý³ÎÓo†ðÈìMãdnµõì™WôÇòèšÝ_ÿè'†ôÜ;=‹.º}%|¦¬³²©âúaN’±—p–G{û´=ï A2£%Γ—V;ý±;Q@úÍáÿµåËpendstream endobj 1173 0 obj <> stream xœí][s$µ~Ÿð#¦ò’qŠéè~y$„¤H%€+•*àaÁ—Mb¯—µÙ…üúœ#©»ÔR÷ŒÝ6Êð°Í¬Z:::—ï\Ô|¿eß2ü7ýùÝõ†m/7ßoxøu›þøîzûûÓÍï¾Þo}ç0j{z±‰ïð-·¶cÚn•·r{z½ùj÷ÝÉžuÊ0ËÌîæ¥´Êï~ÀŸµÕΉݫa;ŽÜÝì…²~÷/ ¥¶ÂînãÏNˆÖtoNö¼cFjÕ?jïwçd0}ñ.„7ë€òŒ%Åp¡yg˜jÒr××Üì¾þzXô›Ó¿ÀaI&³Ã2è´p`§gp<{͵ÎÆÑÅÑêÎ[ÇѿNç¼}M–û4‚òžìýŒLd{§»¡¿¿ÁU@„φܤMÊì׸ºwÿ r¤9áÏ8߃U˜ ï½Š[qRÊÝy&Cˆ|‘Ȳ=7¾sLm÷T†GNQéxEXEÙFH“ÌwйBj$sã~ Z¸ž:‡:3>_ŸÿÁw?ʼnµ»ËqâóºrR„87‡¿ú˜ýZÉ~Ó '\m¡Q‘µZ· õXÚNkWè1rÍ€bPJÈÈt-‘ö§à²1…K®:Ë«#l9 ×ðBU3…éõ™b‚êIˆk㤠;Ž¿VÕUÀ®˜æX–ñ*!{aPb¢HkÍKS$)=¾ 1кEB9×SDdíu. È2‰B%‰ §B…j!Á4ñLY®È‹ïPügh‡à Fx”VœyLJò墮þŒöíÐ!X=› | …v㘺â+˜YKdš]„¥åz¹h®¼ƒ¹úç%ŒÈ£îšî<Ús ¡@°Ä ÀÑ,.ÆS²ÞµÜ?9°©0LplX+“a–èWŒÓ23: “LßlÍâqôìŒÇ!¦ºt$³:MEƒˆš¸Á[ÛC,' ªÐ-%"<<‹³áŽ©]y1aEq”YÔH^¦Õ½É|Ä“PH–A(Ì~¥ŸÅ‰½÷MçC³¢À¹ òYÅÍX³,ŽtÁ—ñ=fmKõ[+Þô|*£hV¹Cmä¸Uœb´Ð±ôªþšhúœh“èÑ(8½ÖKv;L–#ÑV°q-'3ÂU’(• ™« ýœTÉÀêB.j›£2e£Uo¥ôÓ| ÌM|VЖó9ÑIÖNvœÇS²ŽÖ† Ý¡ï—Ô®µ·©9Šê^³º• JRªEgE F„ÓHbwBÓé prµP-à× ½ º!¸«yu<ÁÀdÙ ‘IþEné÷‰ª(îÊÒ0®”ÂhÍ4Ö†Œ£œ3Q½Á 700V>HÑ1¸Ò'§›ÏÑ¿½¼Ý(ˆ¶ï6lûé†{ï:æ·W€Y|{½ÉÄ?þrµù²™I,ÉO™D˜¢sfàc.&ßâa8.Uâ >ÓAÀÁSA|á²-¾ˆÛrÖ&kl´’Ù‹ÿ_¤ƒÓ¾%PŸ ¿!c‚KeLY9°‚1ŠCÙ” ›ÂÃBžñáƒaq²±ó9õÌÀNGÐLgð“4øEݳ‘ÞD÷¬…¸š:': jWª Åð5/\i¹ÃÏ fé`ª…²óœWÕ4>“ÀÌÞÖ5l9#’² ÎHs ,ç|f8~ Ï•\œT} I©ªïžC°,Ah*þN(é$•½šê–ê=È'Èç0U5dHæÈ÷Èa‡+S½y»²QƒÝ2^µ·Gµ„0Ø[‘Ê”ÇïâÖ™æsö+èÌéf¿Ð+Yº;åóÓUÊ£jÝŠ‰‰CéîA_ˆ;;žTÎm´“œƒN«šÃl‘Ö œ©;o„3ú(97{z¡z³®œK†À `z½ ç«&a@‡©¢ïˆC°±Z“ €t¡â€CÀ¤jn,/Ÿ\ÄÔ€—‹tLú»áùwÄܾ·®ÙÑ:)µítÌO‘@oÊÆ}¡ŠñcÚ¥S•ü|P*±½‹S¼Ù=Ó¸ÏB;ÆÎÒšV'R}Smˆo¾ÄÑhÞbµ•êjæá>lgù—® ŸH!UÒ”öh£7ÌŒN¸ .Ë|¨4Pš¦—2Bi£Pä¥q> héïhÇ,ÌÒò´T@h–nCp¨ŠÝÅ%Á§­“9Æü›ò€"ì\IÈ XζV©mN.ª–³À"É‹ü[¬zl'­l­ê×ʱM._¥Éò¶Ãª¡è!x.xkeâÀý‹ÇMÅ úù‚ É¡RŠ©¸Ì-*£­~‡ªÇà,¨1FÛ%€>û¤Ú…KÆ•µR-àbÑŒdôÒ)[•õiÝc‚£Î½€UÛÖGh8Ÿá.•u©ó×^0È_§ã5,€ Þn¸~áSfí¤pŒÕh,‘žƒéÏÞ9< ¾ƒWjþÀ¹Ï¤ ð¼Nƒ€0\›Œù'ÒŽ-¶"k( ñ8„ { ëgi„ØéY RVy=>ÞŽóz…·”˜ôÿØÏøcÅmÏöHª—ê¾ ‡(DJÚ uxSãòmüf„äEܶ°HaŒÆÛ-ƒBÕ‚^_¥JJ4*à½\Å“zqìù–Íëº÷Ié*@¨B<’ ôò9ÔLd¢Î~'šü»tB·2?yÓhð«¢@*—ú¦P¢sVQ]ÔØ{ll9iÞÜrT"ÐIu{¸ÌÑX‰#GõXðìÇj¬]så'^/(쪨t.´ûÌul; AÂñ‰‡±Åäk18ö™®À2b·§´(°¤€¸V\`¶7Ì•ågÞgµÊò1&ñê-Þ™}ÿV>苽¢‚G9âÆêÛ¡TpSßàÐÔ¸bÏ Ž=Á­æùËV™ùãD“»nS?¦ÿÛ‰¡;ŸÉEáIBf¼ûýƒü ^zSlð—gkgô±¿ß¥L'öŒ µÐÇëqØHªŸÖ0ë€.W„zÞ†ŽÜ§zï$XuW6©„_ùãÔòÞ…¯]r;®M¥oaÖÔÛÊÕª}ŸºjÄSjÅŽ* ìûYòæ°…–’cÁ™Àž Å ¥9;Jiæ?~s€5Ö`—†ßÌÞìx¶´‡YZür)?O´à•ÆÆ¯¦ 5¥ç„àsBðçMjfÝRBpóó&‡`â9!¸bBp0FÏ Áç„à/4!X-Šÿ?%µ+X¢‡÷»UúI5¼•_Kq‡¾¾÷šb¦5oU^™b{Jˆ™h²ùê(ÙJ@&\.šûHKfÝE~q¢uo”=„vþiX OÒàôî¯8 Æbì’ªÄ> SGÊ¥ºGìƒæZÏ5‡©¹m®Þb•cJVÜщéýD\UÍwšGê§NˆøÊ§ÃI…9­áË‘ÄЫJÓ µ3cþ95—Ä—òêÏw¶±ó߈œûˆôÐ9ùþXP\=¶ôÜ®Œ+AP÷Ï·š³<ßzx¾õð|ëápëaÁrF~m¡‘‡-"g%4þ/zž!Yü6ÈüZI ì?¬â˜#$|S™ÚG\zã#â—שlþ— %I¸Rù¦N`ŠF³<çùSêÿs…ëHJlÕžò¾:¨•nEØ¿r":3Èzù¥ìø—å§×JvN¿Ížn’ô›'ÀL¡¦þþ€&€Èœt!4šM{ÍQÆÁœ`–ØùtFj¤ÆçO?ßüÆh”endstream endobj 1180 0 obj <> stream xœí\Ks·¾3ù[9-q ñ¬TvâJ9rl3Ž]–%S®ˆ¢,Ê–•_Ÿn3ÓÀ³»ÔÊJ–Úb€Fãëwc¾ÛˆAnýËÿ_\ˆÍåÉw'2>Ýäÿ.®6žŸüö3° C°ÊêÍù7'é¹‘Π¸u0H›ó«“¯·?œâ¤&(ïœÿßU!ïÚ!€ øþùcýÁ)¹ýöôL Æ)·}B¿µNØíëÓ3 Éí{ü=ý64Èí+ƒó¡xó1r‰ i§Ë!7ôÛ9ë•ß§gZ›ÁI¿ý ’åu°Ûg‰,/§ßDŠŠÏ÷òôLš¶ç§/ØâO}ü-裥äS³Ÿ¤™½ðãlÆ{Uð’o‘Å7öðTùAkpÛ7§Êá:+œŒlÂ1Ál?¡Ç^€ózœÚ#9ôçCJ`{É–ˆ‚‘\Å‚r–NÇLûQ†¿ùÍLjUHeÕ`¬Aõ’NÏ""Û4Cpø×qô0“Òœ·bí7gRFk™Þúq‚ùö÷â-ØñrF«EñÀíY‡L§…¥T*†5šë!x4’€û4Ú¥©þFïeÒÀüyWtÈR¸0ÊNq•†¸úr–´bž±é ù ~Ë`õC“5é\Í`¡b>‘ãôEg;|›—£Ø {ÆgE ¹ðIz”³WŸ'Ò ÛûÛÎðç‰s4û×lv1Ï2°ÑìñïØh¹sô&5÷O-;1<ªÝÄ_¾?¹1CÔépEð²`tİ –6¸_&$È…šüßÀ°œðïà ŸïÃQ—Ão~†Šø«;Eüÿ¥ˆ¿zo Öö)â¯îñÏU#ïͱQY ¾Ú÷y8PSÔŠ…"OõÚŠ#G¦•ûvÀ‘ãþÏq}aÁI#YŒ¸,„„a)1lUp!GWà•ò¾É^À¿:3Î~Û=§8Kã± es\ݸ_…!pGfïá|§Añá‚ÂãuŽvþ*›ñÎ#Õ'‰Z/ y°ø2= í¶Æ˜”Gœ<åqë36&‡ÄR¡‡ú“>Š:HKMGúè@Î$¸ATJõÖhqÈ?W‚EÙc€ Ä[`E¢óS †ç ÒØIÿš, ¤ (ÔÁ k°È1ðƒfÊ‘¿úo¦Á÷°•.5jðAë³ϯè茱”P"÷ Ù±’SÁýä׿:îK(²@Øsʇ5X ñ ”®>mÐaÀ“âÄqäìæÌ)w[±5¢RRF¢j)30 y ¥“œžrAæF¹JÆLÏÙ,Lz"ô5ʉ¡ ì–¼ÕÎÍùªÀ•ßr2óRëbùÉ&’bMrÏ™¸Ž¢ (¥¯çaV°iÕ&ì¯'ç¿NäïŸÆü`Nc&úµ~x|ƒ¼$Ž8VÊ®-”µOC2ì{œ;F|ÉÊ1aùÊ„iÔ²=j; C©Nuj‡r¤;rÉøÉu ßæãD•ò0º‹U"“M×Ð0‘mÜ¥l¤Š£Ñˆ2ŒQGËÌ”•ƒÍø¨7Œ=$z6ÎR©×ÝNŠC:‹¨!H—2ŽytÔ|H‹(<Ó .’Ö–nû/†ò³¤×Ñù,¼ŽO.Z|øë¶Šn¸ñ €Î„‚üøhŽþžWÓç8c(|àJü"r@t<É‘Ki9˜lk>‹›Nåâ¸@‘Þ¡)… (;©€ò‡ùÐØ¾¸6,½UŠ¡tÞæÈ+ƒÝ†,7Õ$¨‘Ùleßü‚©’Ž+í#i;%}ª…! =¶äZí^°y51üO×ýŠ=¸Ó aÄÆ£#{ ©uW·;”g×?/•1¡ï$¯[uƒ,~“=ÄÈM6±[öI¹…ÉFtÏç-Mvܧyg&»@²·oävÙòp$kŠª&$?<2’-PP_)Þ—!ù³d¡C0eMž#2{ÛÞ—ç§¥G¨™µšý8äíjö¨›kÌö£D«²{Ï¢e„ñkQºÆHÜ£W_Å"M7ã&íHjUY_zjPƒîá{dGGQ$úb´¦Fê ¥ "þî¨W³›¨óE¹ýùÂpÎÌ9S¬—Â¥wcÆ`pÁ"ÊÑ5¥eˆ°—ÇÞÉ”fV¤ÅwöZpvÍr&I¿ªŸ¶ƒœIø/2Ï0È9ÑûÑ•îVH“•8¶È]ÏÑ]ÏÑϦç@^ïÂùQk,D‚÷«8$„Ã)0â‹ >ÎÂ¥€eSÿ’ÞAë^Ä/.Œ†"0x“& (÷LÖ>g[bqæÇN€6Ž~ÒF G+•q«¼õþ«ÆòÈ¢jñ$íq½9"ûñé¤ýósƒÉn&rzå&Ì^‘T»ª¼ÇØFô*T.uB’:Œ9KU7–8zËw,3É.¾*m™tçJn:›ÒÔÙ±<Å…¿Ú_äœËE ,Y‹|SUÈm™úv†’Jb ”¯šͤÿ‹æ€g³œ??e"³CäÉÛÓÌ„£ó‚æÏmÿ1[,MU-—Å­¹A¨ñ•=/­lLC¼¢ø\0´w$")iA›rU­ [»Ó>ò ‡Œ^Fô²‰I½Ô¨'vV1g^Ò죀´G?Ùõ{8àÓÚ>Ã{œÚðSÔ–7¹zâ 9Z{£$N¿Oø_ HÜíŽfl]ZÍ´µ—4‰!;¼‘×ýÆžÃЈ¿#ðnÒ¨bóéð܊磠rÏ•[+µ³¦ #âBz«:͇vðc´qx™(#&P½dMÕ³@£íQ³ãqB7±Á—F™ëTæP÷:)ÆCw{4f$°à‹B%‘¯ ¼¿^K,ôZupÉpï{rR%§ƒþ RïÄ`1$“RØÁa½ˆèÜà„Y!Ý`Ñ1] ü¨ÞãŽå®LtÔ=8˜ò£k>4‘* ¯þvM¦âšÜfƒõA.bÀ$_¥&ntð(Ûèàé–š§”`JIßU:î*•ƒyëJGŒøî*w•Ž÷Té0°gø®Òq }w•Ž÷]é@/TÝF²äûûôÚY+™Ó\cë `Êÿ=ÙF žG|Ëì(Ö*µæžFÕìŽ–à™„Ý.½LJã*‘¬2ŽÜbG¹¾× öbŠ¡y1Û^'‰ó4™M_r®ê°>OæLáÔ*À¢9*'*0Ð) +l;½üU¾&dÃ_¹úÎx¼O¥Í¬Ó›‹N®t’r{ÿþ4aßÁ¡zS…áú“ªÁïü…ú6þm24߬¯H!§ ¦0Ký¹+q½¬æ^^äsÿjfæÒ9—śҚÁ; PÞµ·9ÓèN§)Îà‚Q‚îZ4Ëù1L?ÓrRSPŠ/æÛʼžï©¥|¯EÓ§·×jê '1Ǹ<àqÆYcéÐz+MlÂ'¡ñZ'̯gŠ_°ÇoMµÏâ7˜Ÿ!¡âàoI55…*Yú[n®Ö ”EšXõu}ÕT58Ë _ß&} >¶õá:Bh—sR BÙ—@JÔ”ÜÕ µ>ÍþÑùɧ´K6—7'ä†l^ŸˆÍŸN¤f°‘΢½r›+Ü:URæ'ÏN>ï~¯¦¾3;~¯&(Ò4Å ½Nß«‰ÜKWh_ž"ÔÚ|™Vxç丕ø;‡tÉv"_IëTs3©Jêy~RDÈå‚Ô_Îünø¦ú…— UÏ#DÉ·<Ýk¶÷Æ1‚1ªàOgÌÌ+‹¼RšóÊ"¯¼~+^Yä•3%¯3ªøirÊÙó™BïÚTNa@û¥å[QˆÀ Žpšx>èŽÇëÀj/®¢C_«çòÕuáœ?Y¶ãý >žÉùM´æ ¤ïh}<]¡²€¡Èäà~ yŽ;F÷¦ý’Ç’ÈËøÛúñ~SV–\¡F²¥“B1†é߬–QëvxÛÒ­ýd –rÐ.´ùóYgöq §¤FSë[IÂƬ~ÚÓ÷!x_hðÙ±ÑRàj°ž*’ƒÝLÙ†«Ü…OÃêÑâVÊn–“µG&”Òj(•aýqd„RÊŽVÍi*ÄX·Ä–FÆØüŠÒM¢ÔËuFF{ÓpÏsvjúzáÞÛ.Ÿ§jˆŠGÖî—y’ _×"Öv%,‚­‘KLÕs–^-6µV-js‘WŒ+žºP]ü°I8À9?ùð­9¯ tU%p¶±Œ³~FµºïIš³™S†W÷®wÅò‚áš3⾨Ð=Cݺ„Hô˜˜ELíeèßÍW'ÊÔ;éy µ•+Š\(ênŸ‘¸²Û§‘²É¼®’KŠ™}HM¾@†lêà’îüœ…Re‘jœÆµBþé2 ±_áúîëÕ7é='¡§ÔëÚ+5Gו–õ›ü‹ÌY¯K좦1wÙË©_Žùé6¸{)¼úž4%몒Z?—HÍT†}R€¿UöjDÔÓwÔÉ?m–*Á£#Þ&U˜‡wN–割F ÚÅ„2ã“·×í&j]üš$¾êÌ`黼¾B²¸ˆý8fÀ|·¾´uI¯ŒRe³‚úrèŸq2-Û­7DÜó|Í߯VÝâ‡&œlÐIûî´3ð9nÒJGãz¼ï¯öu”âp³R‚Ëߨ™º|“¾H!V»hÆÁÄ<ÁÞŒªwñNØÒ í—ÇÇOztt?ú•¬#º›¯+ǶjþŒ|¨J"š<¥*»`¢ÐñÆnÖÂ-W¯ƒ…wG=N‹‡8cï›5#¥g·ãŠ3W™ñÚÀeúÞ6}©LY* ïû"ÍÊÔ±NJh-bëÁ¶¿uƒ³›S§tWT•©fñìm]Å<ðqêÄH$·òÙÒç”ì!ì­¾=¥bC/‘X„€â;Tñ3 VâKÛÏ)(WøžN7õƒ$!æ0¢¥ßÓã4Pëåü}¨]ò輸ù˜ÛöxœĦiÜòïtž/|@R9B"–ró‚zê¼\4ŽÍ *H”/ÓÐõ"Iêèãº6’öD±œ£[=ÙäDßΆÛ:mÙËÏ1Áw€Ò·Ø£‰ÖÛ_v”j««]ÀÄnºŒÄ£ª8P¸T›ØrD)²ÈU3Ÿ¿“7åú>=ùÂgendstream endobj 1189 0 obj <> stream xœí\K·¾/ü#9Íš«øÎ-†ƒÄAÇÑ"Hbë K¶$X»òC’£Ÿ*’Ý]d³{fwV‰c>hÔb“õ®¯ªØþa§Ø)þ¯üùäúBíž]üpéé®üñäz÷ÉÕÅoÿ¦!îâ:³»úö"¿;7ØàvÎë¼Þ]]_|¹ÿüò ‡^³ÿ>ý&jÜ¿æßàÁê¸Á¿}´¨üþÕ¥ŒÕÚšýM^îÀúýOü›^ô!<ºú3Ó tEý»ªÁBŒ»«§tø61øýóég~cÅÂQâ#½øéå´6B&ŽèñX¨ðÞ™ëm¸)Ö<¾Ä@ îß]´6C“¹5VE¥‰’ùÅox‰&Þëý~äã•c!$yhíMÜ?›–6F:ozzãFJ]ÀÀtÐÎ.XEZ;—³µÑP½Yx@üJÞ‡ùyW‡Qœ6 ƒ¸PÇßo¥Ž¿òyh@‡‘sã}¥™›KôÄ Ñü: Á—¹¿g™¿Í4„ÈGЧ¼rò5)B)ZqÞÍh3òŒ¡ž§™úaÿDœR)3‘álQ¼W‘¶ìÉ£ÏÓ{&Ô’[ªºvþƒqC@OŽçz²ÂüìŃpnÓ óãyE> ”µò8C/i3ÚÅõlPOæŸoù§S°O±¶ƒ7l›aˆ!†¼ÕClÞeYSÇ š¾ï‡¦*’•çV>²BV¸ GKoAë'oùrö‹¼ÜiW-¼ÃÇå/²sé@ÖuÃ)e¼Î,jctû7‰]eé­b5:ÞýW_0o.îžýtaew?Sòøã’³ö; <”Âîšž8;ÄùÉË‹‡«)¦!yJ1âIÞb t“SÌu2s«É ÉóˆÚ ËŸäB$»ìþZïa¢Ud% úHÎCmA:kèûhjJÎ-íª”â&Y~¼£J_Íüöt§­ÅQ¿[kfYÙ¨( KY9’•ųdåHVFßB—ZQÔëê2P²}ôïœG_ðƒWú~tiÜ/E—”^Ü€QÈŠÂ?Åðxެh ‡±–Õ³Yß\Zr­ˆX±³¢lÉÙü;P¸¶Ózy4íÃ4 n‚‚Á‡³¸ MÃ=hžtIf>ªò‘,D~tÄ"€d‡z!5_ä ` ê ¬-ëA;%ÀcD#|ªŸ&Ùþ£q ¤þ4ñ5¡ƒÄ½ÖHyI&»ŒKJæHúÓ.¨r£ÌŸ§W\8ôåÜK¥Wô>*­£_Â?”Âüc˜–±”‰ÞžÿÔ è}TØMòޏ'tt¯lbaD¨Óõ\h ³¸‰v‰ðX#{ßt)˜”è²l¤\ÁpsåæÏy9 ?ú5Œz3aÔ£ Y2ÖYR°¤1ùi“Ï’t¬"ß|=r®«=„ò¾Kgªj9aÑ `N" ›®ëŽYÔÅœáóQ¨éw!$.³dŽ 2 Ïó›dÅ~æ K¹I†åä«l=‡@iÙF·ä ÖÂ2&F¾¥=­¦EqÓf,2¼šŽ2ÊM6“üBèGò!dËL[C;ƶj¦ò˜kEye&R¼ÕTMk¸ ²,R³ÿyvsYØ4¼1ËAmº‰ã¬ ~*a|fCõo‘ËQH»JO)æfat£YRáLËÒô»Iëü*­ïd¸¶ØYÏp“ˆ~wy °ÆMÁMHIÐÔùýŸ8gp‹•“‰N‹º2ÀK«?d¬%ù}¿Ñx›ªÇnÀ‰öHô*&`~ŽHxCf(z<¹»W@–N@ªÊe3àAÎèTq¬žÃÕvô ™i2ÆJ3 ±„ˆ —”A¯ºÐñ"˜¬¥‘ŒÃ;åU‹ß²_òëdq‚} ÑKý ØÔPF©!¦ÎG H[zwÉž€.M:Y±'\µÑ: Hå»;/âñ»L‡wx&ç]QuŽa¦=l%ÕWÌM8bÍk#çf1å•Ýtü\ÖÝ ¹u£I?䎒CnDMêÍ ¬è=¤¯çÇyåeSšÂUìQÃããX6Ù«¬Ù³Pmp¦MIfn‘×ê÷qÇì=˪*cYÂ%É=-£@¼êIKV¼(M¦íàÁžixàî)W'V“|îƒ'}¸FðáAçAÛ|Y6Îã\~›áAt–úÜ£ž<ÆU#‰Çi âÔ[§ž ÅÓO‹¶ÛÃŒ¥Ú_×°s¥ö—¾–ê2 z»cGK\òˆTf‚¯ÆÿåtŸáPZ‹Ø¶é©Uæ6prLcz©”S»ÃÓ«œsÁ3HØÌ¹ÌY|¿¥“ŽšÛÐç0—ø˜OÛf#~cj*$Ðç=eÿ©ØÀ8²U $;aÒÛ6Z u’*æ$eKý2Öw~•¿ÊêA'ëÿa^и£cÿåâêc>e3¼òõ²—;NRÅå†2$%]™Ñå-£˜¯ÓœÒÃ8ÙCK‹ˆ]ª¸·?+¨æñHJµ˜7×@Ñ#l×@Fÿ×k 0( §Ny‚Xá+Sž5z;ñ/•D§uuˆ‰Æû‚#d 2Ä´¶Õï¹:]KòÌ[ 2ÁrrÜ'ù èÁEˆ¹$4”"« Q÷Sªåmk zn©6 ¥=þ#[kpŒƒ"³ÜcefY¿8­.ÓF¨%ßÔjLϤ^å12”lʉµoyGbí˜ûŒá))V8aÍ;¥£|“ÉÕôó£K]H9PÝÛÝ3Óëc±vØÌº ½L×¶V3]nðªÇ¦>Ʋï:¶Øy±^=¸µò±ôàòuneÜ …Œßå Sò”­ä·Óüied=ÕQÜ£sÜU2·FF­þh›¨Û«¢r5¯¨¼H*icˆ®]§ M;¿Zøy Ïk¤ )pSË3–Zþÿ“È«?|­÷kùZo ´wøÇ±”¸r"MíñÂÌøôuž!:Úmq{t£ÇƒH*/kšeÙ3´¬IØõÕ´a×¼#÷Ñvî/~6ÿœ;ÏT°œ".èD±öóùg¥Úi³ç«§Óy¿™Ù]†ÀvøIA>èü1etç~Li§Ÿ·ü˜RüüîR~z˜¾¹¯ÛìÀR¼ 0yMO4=ÑÓ“­onÖ>÷šR|Úbàûëé››+ÖÈcü_ú—›GÄg-…G»ãït†€,>Kqz²)¾†”Q|65îi5ýc¿¥›ÈÀ#Йû$(ª¼ .ËCå äIDÞ9ÝoYPpRp×/R 飦BZãõf|èCt>ï:(º÷Ï'k„Æé\È'i|õóIÃ÷ËϺÍדÎJbøëÉè(fžE^ˆÜýªÈ{ŸÐuµÊ÷tL0=­v>›KZ•Ö&׋Ñáâ³¹¶•àÍà"ÅKoÞ18ú#€Áa|rFpU<ߨi¢ƒþîùü¥5«÷Ñ!ú¥|LÏÉ0¤Ía$ =ÉæÖü?]Šp­ÍÝ%>i°JRsMOßÎ;‡>ˆ©ØÐ÷óï]ƒUCûÁZþŸwàôä〥>°3b//Oêøââ?}ÚVendstream endobj 1198 0 obj <> stream xœÍ\Y%9•–xLñ#®xºÉô ¼/âiF0#0BT=tgm­®ª,*{¡øõó;–c‡7nf ~¨ÛN‡}|6g‰øÛA ò è¿ñßÛwWâðúêoW2Ænßþëæêÿ«e<Ä!:åÌáæÕU~F¤tƒ î༤ׇ›wW=þêú$µñøòZ Z+aåñž†M´Bêã-ýÖ"ÆèŽÓo‚<~C?}´Jøã‡´JpÒúãwô[ziu,æÜaucµ¶æø>O7Q«ç7¿Å*–ã·ôêpRja‡› ôÏ+¡uôÇ7ô¼õ6¢‰RMÈKi¡ùR  çOk¼ÃÒF<ÿù-ýt8v¢æ×7W¤u\<¼¾¿2ƒ°‡Áîÿ¹’ÞÚÔ8+ÂàÜáFFÜ<òöêË®Pê#NBñGLK`“…òóëä¸ÌÙñ¨`¾Äv6ÆÌLm¢·Ç×é§ö&ò _-£tRç•P$WH`ZÃlö·×Êãw uÀ\åÈÚའ*Œ;§©ßgÚ´Ájlë¤/Æ /\^CA†b¿—l _ü [±7gH*¨­WžÄu2j8”2ˆJeIÿf)#u˜H3Þsâ×l£ m¶55Ë@5`E—j–ŒQ 1œRrðZ„ 0bç‘--ªh˜´K@3i 9DNÒ"F‡š¶í- 2D9¥#âï²¥% þÀÆ¿g*:ÎQhšƒ.yíŠáÊxA|œŽ9e'åñ§lí·‹žÌû„È×~• T.@îó_³5¾ak¼èŒ÷ôú=›?Îh¦g,Ÿóž4k¡„”èNE÷¬¥Åßäƒ:aŽ?&)¢qÓ–ZùIx«Œ¢øSÖ §׋SЃRNŽØŸõ㻾Év¦Cò(´œµÂªãÿ¥m¼sÚŒK—*¾¹¨ÜOhzNiÛ¤Db“àçé{(øsMA¥ôàªÑ œ£•êÌã}Q“Ï”+õ×Á ^îU¸˜_Ð =XâÙqy²Égèẁཛྷ€C»‰:€òQ>¸öùK üÇõIá~³p÷r!÷ÙõŠ®j‰‹\ª®kOSÊñì±qu`Cuɱÿ|æØðu>ÄóÇ&ÑìÃíø³=þ¨ˆ»ƒƒ¬T_UpºCÄ%t³XcuÉhÀ2ßRÀä#Î( Å_š ˜.G¥Ì Élœ\9øWù’‡ª>u<(€ŸÌ.Êž7¹å¥˜.ÓRFº|Cl3‘v‡@p k܇k+! ;¦÷D¡Òx£Vg}¥¸¸§Õ~Y‚ŠÕæÜÒìÞüœjxtf3¸ÎRð+ïó 4²pH̙ં:Cå.÷ÅdÖ<$Î –>dí4"í÷ºøôs1̧ðp:rS¿„€‹¬ÞlZ¬­Ê\ÂúŸZáPMxh @T­~xf•CH+À!ÇdÕg «Çoó9 «°ØWmBV¡‡(ü#!+-o¸YÓ>¦†¬‚@™Ju\ƒÓÊv|bôšÎÉŸ]£WB’5zn°ÒìF¯a•ŒO…^5èø<èÕH³½F(ºöQèuMw‹%ï  (¡/q®Is¢±¥¶ê³ÂgM9(¿Ÿ1Cãö;à¥â£g®#%4W„ËÐ3„ÆPý9ô\Iñ_žKµÅ…AN ÐR ©ýŽ}NÙ$àýºÇNή>öIK7h`Ì|·â eñÄÚ?V(b•é=͉S­åÍ+~O9«1S¦–R¯djSbwÌ ƒvªuÞ?¼ˆ!o~Z®ô×Õ•^Çørˆ‹C¹cN2ݨ¸˜Î¦@i5&GË9ˆÏY Œwv@äi"¤sö6B>ËȆ©I³·ŒU´ý˜½MÇD,èÈûC:Ò~îç_¦ÉÚÇÉûm­ÊyöàM°òø)‰I*ÏN£dÄü4в‡òQ§Áƒ¬óS¢OãuvëÎ=-µi§ïOð¶.NY#+™fçÖÅ_XôXÍQ›Ë>`©ÒÈ4ݘùä»&b.¦40Ä'Z25%êº 4~ ÐM‹·Õ¡@ô±ÒÿäµúŸ´äÃù9³Æhií@ªê]]Ð-ƒ%ì><@c°Ä`1d¨Š¡#×ÒŽIÿ•*ŽÃï¢Jé?X r4?“XT?ê4ޤ,ËÓ<Ĥ…_ ­ûŠ<ø/¥Z™ ö¶k ƒfi³­¸Mzíg6!”T>ŒMF:Œ¸]lênXbPy‰…MïæÍÇbÃ6„ÀÅiM¹¥ ”oèÿÄ@ßxÉæ÷¡Ï‚Ÿ?þ'máÿ§ œ‹@Ï9Ööj0¢vGkA¤DÕÇœt1JrØÉíøí˜1s– p#\$«‡õ¹¼6TCé-'Aõ2u2)NÞÊât¾›uüb$Wʳg3…m½J0#«ÓõfÌ ä!âiöÏÆ¤•:–¥Dø1ƒ ôSþ3¬dÊSæ†X8xŽrª”MÒÔî6—e+ù˜Vì¼< ÿª-¿—YNN”¡/ŸÒIZa0»?^Œ\Ñ\ñ¿gñ÷ïÍ1!¥Š›">IíáHý”^¡²7ÛB§Š¢ZR•¿Jù/k£¬s•³ü>tt;k†Åe0«†Ù²›l¡U'Nn¦ÅV%ð1•Zâ„ìX\°ºBåóƒˆᦊ ÕýÿMÀ1Û’“)«ÿaÜ-èÎ%´$øu¬ú|öÕÙ©~øYi8ƒ_Ñ ÿ!»Ü« M·)/’8©ÜNg#šþÖëª$ÄuªÒ%½§¿ãBjØKU8˜;ÕÑ÷%‹Z÷ïqãÞ–÷@9CÕm­Ö‰Tù•’9Sß•h[¸!žËãiB>žæGh¨ÔÅø?Fœ12_o”Ì¥›U•Šÿf ¤¦„–¡)%Ú™Wd„¬Û‰ŠÌ”ùé¤Dªyûn’~•><Öë ®ËcãVÔ[™QÄíR{þ»«›ŸIÄ~ãx¯ß £}aŠéµû´ˆ½¥ë]ñÕF4Ûª"é4mŽüuÚ7®ž_X˜U(‚aò\5²ÃiÂõsìT%ÑðŸ?ä )KÝkå|™c„úìø,&t`©gD”¶¾3çóðw ¸|ÝOKú;ÍXÌR%¤HË×m²¬7£òÄ–:¯lï–®†>tÖÐm„hËl¾ «\,S]B°Rtjz)5u y+3¯ŠÕÍVÌ·ymgzq<@]ÂT³Ý9ŸKÍo©'—Û?ÎC™ïÎ% ‰€WÕî‚Î[;—ÕšØUѯltÊW¤ŸR„ƺ.Ûo{G 0º ï³IPÅIÌ/Èô(ì h£ðFÛCâ{Z¥XSö¤AAÛ|IÙÄ)q›îIÖ=Ù‚ÏÙ”/–ßÙ„ÆS–`+qSD¡tyîõû4ÉâF–ÁtË„ÅÀý6o[MçSÁbÐ,W¤FЊœò¤Œª„{ܨeb†q»zŠ3‚kUýÖël·|Ê™–Õ’íÐ;1<¦ÔËÐCÐi‘ÔóE>R†3(2³`ºÓáúAV˜;ù]#”·|MÈR¨gÁL+ö2“‡ÃTï:ÌJË® "U—šÙ; kó©ßÛ§Xßé+©º OÓIJäØ{ó£×²qA÷¾1›L¢‹â¢À‘% †·CèÆ=–DL]_Ô °D©§ô©@¨òƒ‹ý¬FÏP&w'e¡eÓ9CÇb^æ¿ ìíˆR1 ëë5 ;!»*Î{Ϊ ‰µ6îÂ9è§÷ÈLe'µbslõzÜÄ·²¨¹“‰­Ât|;‹š¦ð=9*[%ÀFªK›øzÓY[ROök‡= +5»èÚÓNïÖö¤Ù3¶3—tçõ«DË9„3Átê(0žû€!Á´MTïÈi´Î­¶ç¯ðm­.u‡7BcÑMîÍ]•|µ ÐèÆH(¾¥ªäß>ø35¤ËëFLVpëµK)X™›Ÿ¿Y Ø`bîæ>KŒ1uyÊ"Q{Ÿ— tÞV¢QR,¡w9; è%#WQ4†)*€³ËnÖ'?CL·7¦‹ìÎ)h‰Zfú>]Ów4pÝB‰˜|d[¼‡è eÌ­Ý·×Û­Ý–ŠêÎn^ýà.sð |›©‡Ä(U9î!oOMñCÜ·cqø½jjŒR©ZMÓ*UŽ´Âô$Õ:ù >›C÷µÚFVb¯<^%•®ƒ>›¯Ag¹^"›k\nýߺI­ÒÒH>º$éUÞÐÅ~žÑ´i¸I ' eõe@&ILǧ2«tÑH]ëvJceJHÔÚÄŸ”Е«~í °\Ô†o[p©ÿ1”QaSü«6ìà·J#‹¼ã]Ç¢1çs½ëØkµ)<ÒCrÛ‘ÞÊÒ›—QtIPOÓ7£#U°+mÔÉÕ“äst祗Z]@´Z¿$—ŽkËk“ç…'Ц͞›u;$Õ!öR&o3BÊî5Ìu´‡M{M7Tø’rЕûnwldÎS®'»$êÓ(Z¹ËŠÆxE&yÈôFbb¶uOsãvr£CÊ´•jQvzOT½ã5”D2ƒ»£æTôYc¨¨à»»WÚ¡-}¬DÁ¨ä£ËO{u”´S;»Ï›;ºÆÀí»^“ÏZ¶¹0LTÓW8ëYvï—¬(Ðqñø§ë b·æðýj=–§Wh(—s ÌeVú©ÜãýtߌŠN'ªºÈk€”9ÀÔ˜7¢ñ4Ý$ÑØýZ^§À;s2ÍåíÌ|0ׂæ,Ùôv™–3rjz’ Väwr7§Þìñœéõi.‘Õw5 @µ*Êç÷Ò|¥&óijS OƒÙˇoÔGztëí|±çȚŷUP¼ù%g™sÑ9ºhK)•’ü=ýÜ ¥nÇ5øée•Û»!C@À¥ªšx¡ýpö„¶îw¥Eê íõ(^¢ÒŠ¢•Ëx‚ìh:Ðg_Aµ‚)Š"\¹:9¤òÝʬ|½NŸÒ°ÙŒ ³¤ô.çQX:™­_«Ë[kurWÆ“šÐ°QÇž & ¦üì#›Âœ#‹?o2.Þ.SÚ¼ýo*@ÓÒg0ëÖNºB7£¹¦“›´ó‰JU·•Ògz7rP&1[/ü± l‹N6³Q*^YJ¯ªHÐÆDêsÚéU_Фã:sÉ›éuW÷Ì3Ósíï3Ó‚_½ØM¬4­loÒ®±óÍÓw §"‚P¦jáXÜŒ›Ç)Íå©1ÈOj¸š^%ºNÓŽåýe‡)—çàóç¨ü1,£ìŽKŸ´+‡“Ød~Pú¸ñušQ&Úî‹×UÃw‚g?B±§Uº‡6ç]†Üþç6RâD(ÁïN«mV%ÊIuÖ•v +óøk+{qGñU«ó¢“ꕲGJµt ë›_ O‹ùóŸUwìè­3Ee£Q¿d!˜‚gýö>¥ð>åèÚ¯>.š¤Rd×§ˆöWÔ¦¦Òéã§­ŠÚf„sb *S=¡ñÉ \ßóÏûí¢‹X4!ô‹.«Oî¨ÛÕŸ¥&"›¾kOß?‹£íò°šÎ/þñêÿ5Žbendstream endobj 1210 0 obj <> stream xœÍ<Ér9v>3ú#êXt4ÓØß¼L8ÂáƒÇC{3}P‹Õá¦ÈÕ‹þÞïaˇ-+«Hõ8tP Bo߀Ÿlá†Òßo®Øáþê§+F鯷‡¾½ú‡ÿ’Lüâ0êpûþ*~Ã\»E {0V.ÜÊÃíÃÕ_Žß_Ã¢Ú g¿»ýwøVx_}ë#®p{³ÿp}á¸tÇøS[íœ8¾ÇßRzÅäñTRZ埮oøÂŒöþøg(Ã,3Çw×7RÊÅqyü1~¨­°ôÃ7ëÏ;œ¬+<€ºîg‘WpÜ:úY‚N*Éû½Õb¹¦³Ÿã(göøp-ܬÓÇŸÉvo¯…]´2îø!NuÌMxº¾´ÓŽžè³Ö8áòo%äøß˜é±Þø—a‘^ ­o2Án¸€tûé,*ÿçJåDBem5Ðê—ª§ô¤`߯˜x j¸¨Â*Ì;ž±OKñ@7ú"íñKâ è#’¾óü¯’ÎW@|ŠS¥¨¨‘èe€—ÞÕŒR~ߨ€J!ýùñÀ ö³È…W(˜ÏqK&x? ì¢8÷Ñ̃èÐU’X_¶ÏÃ8Ý ­“Ô)Él%1?OØèsB< ’”y”žóCED&ðh¦uM‡ÂšÄÝX)s‰Ô ð³‡/¥œöüÿ’/Ïg$µŸ_‡÷X4ÒâBµðù,ôÿ7ÎöÞ3' i\›Õ9HÄãXÓƒ|Iú”?E39vbkf„+k Š™- D@°š3zš畉ôN?Ƽœ/˜L‡ñ®‚œN'¯¨ôÿ…ƒJ/a½HG)ôi:*GKt4@Gî"en âM’ ¾x!]&é¿"ÀïôS±POTŒ¢‚ÐB¬$U§µY½Ñ„uî‡ᇬ>ME‰/aeã´¬œ²òaJú%µÂôìË:>&GFg ¨ÅŽ 9Œ4•„Á÷Zdj<†í˜÷ ôƒN0L Ð «JHaâê9 *ŠÎÁþp{õG„×øÃýó•Z˜>ü >ã¿]qkÐZ´7f1îð#Þ,rùñêOSϲ?{–Ö/F\ÄÒDÏò! [K˜¡æ\€î 'x"ã?Dí®™6@?@cÊÊÀ Ô…å\‚·xzziÑ/:,´àõ¾Yá¼oÀt3Sˆ:»1”²À ÕZ']ûgràu1³]IvXÔ /Z/8…ŠÔÊÊCnRˆKf;Á"ÃYËgsV´ ƒá â |ˆv8ú"Ö‘KÐ.`>Õ´/ç3Ö‰>õlÆÏ`cùâª3X&©/:ƒ…Ýes†KX‡[0L®Ü-mªAf]eßtz.L¦:ê9j ïã‚•~c”—š^ªB?DŽÕÎ4Ê7Xa æþnt—%£[G)[Šê¦°|ÛB…kïÙ‰[z]„Ä‹¥nÊÍê[#¥@”°ndš†ˆI€%A%‚7AƒÖ:Ú ˆ1\§àý/q ;dA«8Ì N˜S ÓÞ1,.´ àÛâ$T³Ú£è¤üóæ”e++JÍ縣ã~®ß%ä 3uÛ£ï!Áá»ÙÏñà°ÞÜÝè×¾bKêˆ7YêíGÚr -n®Œ/æa@Ö+¨FÑCžž-Þm=¬@{ºÞ (u Cór‘CU °èéf^ãÌãn^¹ ls6èAƒ}楮:ø, uô„ÙPs»@z/Æ/ œ¼wRWj'mT|õ»t6iÚ¤A&§ÐÜ MèAòL¶L‰ÙI©xl¨¢€P)/RE ‹_5p¯.Æé[XØ‚½Nù5$B˜Wu Z›¸0D,ÁP ·Ö EZ€ø².;í[™¤zs ÃÆØÝ>¢Cå§jÌS<jŒ‹HÍÛèÅ6~›× wV2†¹¸»ØŽ‰` Wn’3¥i§ “Îøè>áDø×Œ›Bé§_Öv à„o‰1X›ŠîAÜÙ¡¾Í ']göËB6p–¶àc+ݨààQP´aÎψÅ+”fe|å‹PuÚºy“Úu¸@p_˜7Ítä8®ÔÔNÔ).ÊD¸þüX¸¶V" _œÉY²ó×R`åœÚ FÁoQþæÄ³mVµ¦Çž¸ ?àQgÿº&j©NjøX ·Ë]ãh”}* †§‘’7ÎŽ"6$AB^¼D£{pS¹ÌÞøƒÆÖý~õò")Iu»,ðj_ñþ-ÎåÀºõðÏd鸆P%㽺 ž9—o© Ävæ §Væ\VÅïEß(…i7 1ñ§Qg›H\ÖXÕ%÷a5oä ™füŠð Î|vd¥ÏV/»þRl1É…Qߤ….Õø)®ÇÍÜÕ¾x<Övq¦[ph¯2Btm½Û´U…ÏI1;X½¤)Ÿã\Ìì=n$þüÄ3®Æ{Å7©=æÞïÞ0u’keÕ“6€0YÓ™hÅ@NÜ܈¾‹St£®)ûPFÍÔÌŒL”åÜWL-àÛŽf1Ò ºZ4ŒâBóÖÏ€U˜›ÑfêS§±ú7H¥ÉpÂ*ÖÍ«@{ÂI ‰kvSjFoŒµâĵdmXuàØ)5Œ$¬ýf•¥”­3l–$âF„3yÕ¾¹¾îôM'§k¡¹ÜÎvÕLfá÷ ÿ=É?`hñÌ·:¶‡%_3Súìñ›‰­hUV*šj©ÿ_2³_G—û˜*-¬‡QYËýð-±T86by<¥çG³Ž’âÔQ’,+ƒ"k• ã\Ýþ=潑HpßrFf£-“˜×ÝÎS ñ¦ñœ¢Yv{B¨Iwø’!i—mz k†æD~ áV;³¢8›>/ç“Í4ù†JƵ1Y5õÑãæ†x%¿\ëà"U ëmûÍžVÔÝë_z„¾äEä(MK“Ui/ÉAÁQÇ€þž©Ïûòi‰Òp“:˰!ãR@øêÔ(‰ácI˺ITÀ϶¨ú*–µ„q¯š„@ ¦ðu*°åÐÃÂ(H; Êf’ݯÑÇõçÏëϤŒIOSO€]fÕÌÃî½Ò5-‚†joLˆ8Nêû†$uz€3Dê„A?DjH_”šq²F€mšÅ ·8–1¬ÄšÆåÝé‹Y±°&íZ‡ Ê"¶Ú0 G¹¯5Óå± ¦ß!HÀó´Q„,øHÙ4ì®Ý¶eõxSÎ"‹P¯dÞшûaöÖÊ™ &¬«T2ÏΧÛLj*ÏñK¥|‚á&¾çû6ŽÃ”ØPÐ…XËJÐ pYî|0N”óh©Ã*ãÀÿ”pîõâåáá à3åŸ[EØÝ­€©P©K…ä¢bÖV³Ø#c˜æã*¬|^\÷º\ÙLy;ý¹º f±ªø#*H{Š ³ÄôÚ¶÷%.h…Øä}Ü“í­ÙâlmgaÒÄ;¡S~K;‚¾üë°#v`nÔ&?Ízå–^©FçÅ]¢Ÿ$ p©+2z/¸v‘ꎹ³ü]«À…‡P–Ù&l›°ÚÄ8Þ¯œ{úßIBË‘¢ ‹Ù¨97¹¿¶3Bk™k-vßÍ’|]œ„Ý||–h¥§¥GÃË•×0çdÃÞɱÕ!ÚÑ!öÊ•$sl ût­Qu‘»eBÏOÓÖé9øi¹kó_±Á ty‚c‹-î”™@ÍpÏ0§Âv”Z7ªX”ñ¼Œzq¿åMεŽqÎ PZÛp"Ò%ãÅCãœñŒtY·(5S}‹¨~§JfS(Ì,Né "X»º3vïÎ…Xi¹î9žÐ‰®.‡Gd«Uí²Âßñ“9m¯ǀĘF Oú‰©Ués2gõW„,?ºqNFvÃASkÀÁ"¬â¯¡­Ú@íwígͽ«Òb»½%½«y佫oE1ýÆråȼ] eêãÚ¬-÷à€:Mó„]¿8ï—X»¨)ǹS²?·)“íe<Õ“Ê ÈkXb«ßôÌžTDZ¹Y‚†ýœ’cHRF.éç”Ø jq ,ÄT,AT?ØÎŽ%êfSeÕÂ)l,‹}h°q Ù…¦F¹b†6#A„üúùûÀ[Ò´VØ^ûí ë¯Q(0ÝRéÑá‰ÁêÚQAçlNW"Yø®O*AÚÊHMê;ëp4E Ô—o›Í÷V×`WÛÆ˜ VD/dÈzåÐ%ËfÎòǸ u®Oúô)M:ob:í§Uù®FçÀsÕ{®pâTÏçUÈwqŠ«™ )p+bgºŽ[øÎ„Hí|)Wdç´¤‹ 4Ð^iz€Y›õ]~ni;šHÇ}e[›^3Û}o$×Dv”ŸA3tåçÿ¹Þî®_·:ý^\ Ü„+­H{xûuŸ°:ÙL7{/rаÕäúøÔ">•pŠ^E$Ç£[“ó}ˆê­ÉŠŸùr–è2ûåœNƒ_J=ž>x—,ÕÄwNKÅþD/Tö‹ÿ4±·Ÿãû"¨N&Έ¿×¿š‹^¸šâµ$³MÚ)¾ÈæµµexoðÂiƒ¯€¤ˆ/i}Á—•Œ'|mÕ=šƒÕl(Œf „9?‘,ðÕªé= <,¨‚×*ç„í¤z%‡pý›;8º™x ä®jqý;DÁî ÓZ€IYæuòÆõ(8 S.ì/DÐpŠD·è¶ÏjíãyÓf£ò‚at‰Ï{ ”Jæf[Ùæ½®º'PjPïmMaÝæ%Ýwe÷^›:¬i¦C®pçû²5kŒÒ(_9iõmÔÚMhçµZäëu¦ûò—ö|ÛðjËwI˜àûjŸ"H´‡› Uºc®A-s³v&•ïˆÑ›u övñä³´]íIŸp|Ñ€œÏÇé}jêLΚ,Š_`ê{&™@CɵzÆ7‹\² ·»>­?ïNxmõí®ÓoÙb£Ð ß²½k»=×éóàùŒßMS4.oÞ¡Ô‘n„Y”Ï g¯Kü°àE1{Tãa¾¯ÆÝ8Óºy|„~À+a¢Žo:rµÀã›Þ ý1·xçÑúÆ|”ðKĦS©‚†WˆŸÈpàå%ö!ý@˜Æ5ãrl¤ðuJ+‰û'/<\Ëð6<™Põ—–ß×MàC ®ˆGzëRb#0yërÐGÛöÚ®­ªÎë…˃Áû¾^…VUø^G.jU YXËöïx¿œ4Ôˆ`c¯'yÞUƒ*x>'ð%àÁm‰ ¼‹'ñÙã/$Þ«·¿lDuUP%Ü‹PeU ŽUw¨Éu:¾èðÆ©¦‚rÃ>é—èac_NK Ž0%(úލóïZåÚ€âg”S#º>MÐC©¥ó‰¯‚1nâÁ1m>ŸÎ†O¯öc½PðÇ«ÿh8°endstream endobj 1219 0 obj <> stream xœÝÉr·õÎJå¦r¦<ìK|JäT–rÊqÄÊÅÊA‹E)6)Ù”,óòÙyïÝý€zzHQI¥|ÐDo߀vb;ÿåŸ_‰ÝåÙg’FwùŸçW»ß_œýæïZÆ]¢SÎì.^ž¥oäNJ7ØàvÎëAz½»¸:ûfÿÅùA .j+âþÛs1h­„•û6Ñ ©÷Ïñ·1F·ÿ‘~»äþ5þôÑ*á÷oi•à¤õûwø[ziu,æ¼ÕÕÚšýušn¢Vÿ¼ø @¬b 1ü–^íJ Øîâ@zß+¡uôûWø½õ6@Œ–ƒ¶!A‘‡P9gcLk½Ý_ÒOíMäžÎ£WðSÀ÷JdÈ´Ð2§- “@ÂÙÒFðÔÓÏ›Öhóœ* 2ø8.GØy…‹À±w*!Ô„^žþl"—÷.¨K§yŸfk@?/Ô8á…›qŸ‡§)|ñWiºº«7½7'ƒ¼0œÀÁ;¿ÿ3ß C‹X¡U~°ÀZõáqå ¬Í3´’ûïÒ ƒœ0ü:w` ÇI b%Nµ>h­ÇƒíÃH*­¼+Æ{æëð­n3>½á»¾L«éòÍ! ¡ãî A¬•‰]VN¥Bœ G]³)\RÞ³ßïðÓ8X‹S-Yª–±t&MHÛû¤m#Cáì0ãwÁ8lÎÐ|zBä³,³²g³9ŒLð3{•j§‡ÙKØ&Ò2k/Il¹ÉÄÎ7i²Ð}Æ-!%’i³ÿžÁôzf¡¾ïÒâ^[À2—•´u_ƒÓ¬AK µ9F–Zê&Á„DåÃo&pqÀQDõûl¸Á0È‹$#Ì¥<0¤ð¿@ŠèAÙrxÜVÙq[¦W¦mU„¼_†•‰Åì0—UBs“ |v~ÐB hŽÓ\£CÁÝWçh@à«gˆX°í6ÔZ Ö×¼øöB¿D;øK´Oü_®vߨyI 0òrø^°)Ìê÷ÔÐgYÐñ˜ì1Ÿ\*„y|`röäœþdçñ´mOä—ó nY~‘¼. è$ Æ'Ø;ê»"§2aA·L˜h2ää:ñáÊQiZ?>çy ¾²bˆ±pIø2\OUr¶YÓÂÆ1|<&qÇc®±! 3‚¿¶Ý >Àëbp ‹ùÁû¾JzÀé5±Su¬Þ(‰\É‚uCpMßt#@.àaЊ¢©NI°îjˆ’|äƒl5¼ÑЦâÒVüC}² 8Œ/y¯#Ú\±äH¤Œês;˘£¤¯ð3§€ÒfŒÊ0Ì:!*£ .ÇHhÆAÅæ•¥ÍsäóêHä#‡¨t¹ë Ä èþ(»º…»¬\ŽŸ"ß‚^RèKí¤Ys‘b>6ƒEDÓ•‚EÚPšÒ–ÜÒÊ.X]1Ñôá[&üKî´­óBIÈΆøF†9þq9þ†û)#Áß`\[*[”6EŸìx|ë¥ê¬ÂÓ©Uô;imœ"RÐfÊï¨xŒP‰`v“ÊÂæû/IŠ­cŠÆH1ð3äg”R)‰£¤U½*„Ó`ʇoÓY}Œm~Q°l6ûòìâ×ßì‡kÇè!ç¢ ¿u4ƒª¼Oa•a`ŠÖ.ÂF`,›]D 1;Zö½½ÖѶ7¸60£Q}fD}¢A‰üÄÈÉy¿§ë_$¸Adþúm´ëÇÕ1~ù˜ÍãMÚÛ©Ø¢€\ƒh<Ô¨nJêk´¤rÔ1m(!Ê@ÏA‘Ðf‚—ç=úLïæá4CJ0O´%ˆ¯Óm&30œ…q›žß·!mÀ§?cÂýžy! ß•|ð2¤£~ŒUÚ9F%ˆ­¦,èàJ¨ÁÁK‡¤w¼…“LÐK~pñÃÜø>>ÊYfmšnHþ .–æû¿Àµ ¸»zäu•’YÖ|`¾ Û¼Ò“Z\ñãqÅc9<œâ‹‘[ØÕ´ðbv‡m–*Gç¬âØAØÊuÒ¹5é‘­o¸Ÿ€;E/+aÆÓ;T/Ék`Ô(3§H5QY‘’ÒJŸ£§†áÏHÜ•ªæ,îV«QÜX•¥¸G%ÚÒÜä´UŠD‹ã3&²LE²Ð‚Þž1e%F!ã$ƒà¹ D¯0û‘ò@Ønð§Éªí¥ã×üMÃ.ìÑñiWÂý…ïç%(f¼M>ßëùg2þÂJ•«.h—ˆ“&¼¡ Ò뢒Á&Ìþ<¸(Óϧën¥‹`ff–ê»X#z±†-8£{ÂEýåŽ'üvþùcóçvº~Ü;ˆªð´+õ¬¦"F7¢dåbG‰ñÜxϘñ°›Ï7‰'upÃUhëe}$çÂHvUºtœ¬Ÿ1`9“à'—Ù*.+?gï[©c摺ꙔJÃŒÁÆ2EU†—SŒ›ÂŠ2MŠýv^&±†WµÂSr rÿoT¯"€Ûä'ø !üÄO÷ªÒ€9AW¹£XSZíUúN•&±Î·ã sϲ¤»¦„Ù\EÂ=aÁe™Ä©¾¦ÒmTLF¶VÖCŒdî&x‹û9hr •óûmÝPæTÑ*A°Ÿï©K„wê­9§5¯ÿX32T]è@Ñ¡[™yΔ7Ùm{Ì¿œN« ›Î]r®¹øâ˜Ú°Ç)õ §3£ã`ÎZŒƒv¥v™3MÙÞW±%}0ì[ ,¾ÙS‹Úô•YmH%ßV!»åJÖ)§ÕHªQÈ^¨ÒÛéhí²çýTU [šªŠ~¹#Ïñ“Kªàñ­åïü¥¾I"â`+_éÜQñ¬É5ñ ñĺ ÎІƒË\ÚP“BÑ”Þp¢R*8½š¿Ì’ .ëBbþ:üD ñ}¯ŒÆÚkzªº–ߦµ½,óç“Öæ#ÛçGìêm¤ÑÙ®F}»Ê!n—¡.çcWGÕƒIïMôDïô†m±¤cÄ&âÚhžÜ&jþ²8Ý&€ÑlI?¤œŸ’X#òé#ù:0·ªj)=‹ëÁø©YìGú®6°´Tì·>ÜËÀj1}êøx6Ÿ*Xëïh`Qð+–2×á6X`œéâf™]h°\Âpe 0G$³2~™mŠÁ§Py½@ªôÌPŒ.w˜Ãíõ. ‚š%~oÁÜ|¯<€õŽît¯àSòd„HÃ2Íš³+Ëõ3{€¼B£‡É›AzÓmÃiDÄëRDçŽ*/Èp<მ£½ƒf"¬ªVçi÷l•·K'«LOä”êí¨–zÓ´õ½JQ'Ç\±7À:DÙì/å‚9»À•ËĉÉÄ’ @Ïeý|žó`ú¦ÓyÉ“ ü÷Z‰À%'’a¾“ 9’ :¦ D…ت"@±KäÄð¾3ƒu:†ƒMr Ÿ!±Fr¢ñ`«ä…i Å±EÊ­(B• ª²Ù×¶(ù“¾ ba…¥î©¨êÅɶ4û³Û:ð6¥æ¨­H¶Ê½ë©9n¨MBÆ…ÃIKË{zKvpªßËüßñ–R_ˆ¬ŠïÔÝ¡»¡i‡ÙrUéF±Ò½]{ÑzkvÏÈ:û’òØFÏ⇞ºïxa‹~Ò*å_«ûÑÇ_ª{åa«v¯ÓôýS8j€ØÄŸc©%÷u¯Ãt™é:b4¦éšb,Þy`z¬çˆñO“gœ<Þ–´,/Œ¬a+ïx´qE¼faN£ƒÁêCX”²ª„TüõMÉÁÇW6³Õ|òÏiam×1憠L³Qžg{SLFìÄØäBÃbÞ˜ŠgÑ+f£×óØ’Ä'à.CøTà u²ÑÊah£ßËøµ9É–,zúN˜^Sϯz^¹Ù5—k’T]`W€þ»_@lIWç¬ñ ƶԔ+löÚÕØP•^Lyw L?á{åž_u#È&Ô 7™ Ço/q¤’œíykrkxazùjÆß/pNºU_)CYh:&¹TDhÊEÜf=RNh=¿”Ú:Ûö½!bTŽ.¨Üý^í÷ÔÒq~\ÆGƒBƒ–¸JpÜvÏ:IœÊù«ã¶lË–›&}º©§>Œ¹RüÊx&™à¹0åzíV½ÛGC]dXgÔ½Êô‘P€&Pû÷z{m'SúËÁ@?œþBQ²wÈ¡èºÕöT:»Ž›3`0]ÉPÛ.ZÅö/¢Ý+ŽÆD’ Ý®ñÓݦÄër˜˜ê³Ô#!|«cJ´iMÈl¤Ñ+»€h7ÚVþÍxº^}bi±„ÓåÝ5:OÙ„×ÒÇê&š>~M`c¿ÊÑ|ÓI9ÿéþÏiz©AIDIûñ„TÀÂäÐäóÿ+Š®ßJÂJm0[{û-þLÊ(—þ¼u6m¸‘|NÁoÌ®\“HÔX‘€»I 9!Ù&¬íázÄ¿ïéŸÅ‰J‡e÷S°Û²¶ÑØ‘‰|ÄÚu=Uæ¶¶ß>¸µÖpÀ díÏa¬Y™¢6h׸ZI¢)nýz—MµÜžÍñZøBr‰æ²ónä‡ÑmrÿgÌPøZq6w²Ÿ.`ºöÕ›ˆõu“¾w£fÍ7?S“¾ÔΫ܂OÝø÷nÒ‡¸Óu{Ý©½¹K…Üáß"¤ßPN´“âñʟוּoC Ÿ å_b-5‡K¬Q².àð©Pã ?çÛPM j óÌÄÛ½ÃF* yñûM\"zm=ïR'¢Nõzˆu¢ë÷q -2eu(—o_ä;àÞcƉ÷‚:A[ûš€’ôXÔ§»&Àžb7Þ57f»Õ—h·¶·†ÊÂq? tºZÈ84Ît“Òw¦ÙØÛú”i:TòU:§W‚gSxõžOáu¼ñ Ì À$¥÷Œ/Ó¥ùNœ|X¹¤ßà¬fGkòænRo1j¿»2¬¼èy†„¼8¸Çç¼éù Ô¥_†M Ñž­éøÜæWWþ”1ðýи_‰wjëC°æ$}¾xËÇ" Àuì%¦zllcÛ*~*}·ó˜_×K:Ð:þ F7=…ëšÅ—DìÊObk|G¡¶•jZ"„*y:‰RGQT®›/m° Ó³)ß&î×¾ˆåyX!°7°²ä«=G´-SÈ¿dvŠÅÜœeó8UDHŒ jÈ›%Mt4B7™Ða­hö­•v±áäÐð 5¾ˆ2Ûþ«‚oF:Ô«Q¿U½cðÕ³_Ì£æÑ?M£¸É.ξÆ\Ü]Þœ÷awÎÄîgFG|:ig­$Œ^aÆ8fùþìq÷ÕíZîò«ÛO ÆJ*½ºý«Ù/R‡)Ö¸.æl÷JNŒü¯—•çÞyð¨Ó§Ø¹•’4¾Ué}CÑS¢U:ªöß`ŠÔþØ)‹+¥¹é lîš WÑ º-V™ºÒé­wSÕ`~bß\ZúTôàkè¡­~ÃOfê&¿®z#nÌx¾”»=u5(mÆØVúây²·É÷BË9vRƒ“m}£a!ïÖŠ‡“ 0• Þøþ_Œ6<óSÑ2dù"p~J÷C›ù9á‹b\å[{˜dv­ÐÞf‘°Ü}ãj†4À×gÿ£§ ’endstream endobj 1229 0 obj <> stream xœí=io9rß…ý/'‹™Hÿ—exhVÒOÒºý“'¹ù_Ïþ €'™¬€ÇÕ䕞]Àp®½pvÿ¾<>-ïÊã«üGnÐ"üäãiä{eypgfÒL^žžœ1yy—eöçåñÃö5É @èïtMO» ;ÿ_]ÓåÜuÂí¿@Øó+œ¨òÉýØ þTe]±]dËI …5éÙq‹]„›”âbÿ|â°èj)820¾’ûg÷…Å®*sð=A aÊ4††Q&§BÃàŽS.€g  ¸Æ!µæ)ñ]!`N`\X üxRx|öT¼ˆ­ÊPÖ?^–H9æ ´_Æxÿ”OÌ(k;0 CH ȘÔNhàÞNÖÊfn\¿ñb(Héª?ÄîžÝ?Õz2ðòïdut#€ü-1! ‰èõ;> ›©ÿ»BòoËãëòx}$GFä¿aÔÎP‰Bœ©`öv Ë@ï#Ê „DÙƒvùOOÒ}+­ÉIðŠ%ëU. ›óœ¾˜poÜŒû¸VÂrCÜ?(b ²%Ów"²%0bDÌ!²Íf×  üØ…aš‹…qS—ï”·:P…A-,W©ÂØÉ)W B8–rÊ̱ ®{4d9C# hT+ˆ`%Zé‹×D4ˆ»á O¿ ”ƒ B·Ð‘?Úg»'DM¨Ââ_ga1ãDMâddyP;m~÷@—Egz€‚¶dùI¢¦L0 •\uêÅL#3Á¼és(êÅ@ S‰ò2húr)³.Œ¾%ë†ytÒë±;A ›è ÈÛÒNÂé™·•MVÕ)°ÿäyF¥’E. iÄ%FTÝ¡í!õ¤¼¢=(´Ð†€2tÊ«¸çÝÈÆ'öî-jé]#¬Î¢ÝbUkCt±x^X})òCÚUph®xƒ»TÂL0øtláˆÌù±t«µ¬XCS^“TÔòE"UÓ ‡c¹´ ÃÄmŠ)ðQT†+”V *«Xìyœ…ÝÕ¨–î,;®5,P8ø@Â,\ ôq4oìš~ «Ö®bÌyyÈ=á4< ‡`•N~I€sQ1ÌÇÁˆ§‘ %³>2¾uó¼á“ó`4Æ>õ¯qbI2²¸±¥7°øÓøèà‘ö°ø¼v­Aî@Ê£YfxaöŸîkP)R¨#¬ñ%¥‹»éaÕ²6–ÉxüóV4@ ?šIR‡5)—=¥oîƒ)î­÷Í R:5ÔT#?ÀãyŸ0 ŸŒëšª ©{×°v’ÌgWâqQö_—Çߕdzn‡ß£’[@õðìä8“ñ»—À*ez÷—¶ûöD(˜\{°M`òKøiÆæ–7'‡1°Ön™c`0ˆC ÈcìfAèF…MÜÌÒJé9“tôaæ¾Ev«Sw HГúR{ rèÃ(}îú ô׌Oã¤C¿„ßú¶Õ‘c€5˜¨>UÔŒ,k¼²™ñ,0ÛŲ{WúKP] ¾éOåÀy_¶Rò,†D¼6­‚NÂl­¼`Þ ¾—cÛ½`ÅB'µwU$6¿hÍAóÒlâLõlÔÄ-؃+qóY,ÂR«xðŒ<Ø@bhÕPHÍ(ÓÄÞ¶íSð#%¯ñ´´a…®5Pw “ g pŒ$e€Šm¢ûÁKšz8…ŠÖ¢ëœëZÇ]Æ%) Ä¯#õ!_T±È´dÊt¼#¦{_ÅØææ0æ „Ú§Ä)F^¹2´¯¥·k®¦” ÆtîÒ˜A6s†ûu;mðÁ€p.-`[„3´ ‘Ø¢Çb/ÎÁÌð¹%ôâUeÉŸø{Õ€¿+¢²é¢,ØŒd9¥¥ZN\¢–°ÑjÍðš×õP©S5öÜi¤u,S;°º—‚jï&h‚1aóÂG­Ã‘J¹‚ö¨8Óz3YÆyxÄ£Ö96ñ×€aé AÁKÊPµ?·ž—Ç7¥ÃÇÒzQŸçE£“©ÁDaÒæ©ÿ¾¼ø¡Œ|Ý™¬í 7輇l*^E¥d‹öÿ›—„LСH ñ5’r¯mþVXRH¢óù¤ø?ƒ¥{],‘ù®Êãu·Ã«€0H`y €UÁâ™;Ü«TãK&À|¾\`°ÂWîÕbð6ø©Æµø’ ¾˜ p×Ì]N$Ó Y p¤¤ÛÄ-YWo3÷ª6>÷ºé6…™„˜MVuÔ6—m~]¶ù»ÒzÖíðÛÒúoåñÛÒá}i}Zß•@Qàö%©`dÏÞ—äµ-ñ|è+° ÿnn[b‡G÷ì²Æ—5vr¯ _s¯›bô˜;ú(ì|S6þ]Ùø£Òú°¢GŒYƒk°CÑk9›å¿¬ú€G¦ØU=|‰hzÓŠ›…×o˜}aÆà Z˜©‘{´ä^7E3`=E˜ Õ •—`çU®¦6%J§jÉö6ëSà¿*6/ÐÐ, •¼n9e¨¸ ˜ìW>Ù—7¼~]Z‚ í°¡Ã‚£‰ ÞQÕÒÐxx|›˜û5¥7 €eZ8üü7Ñfpxhö25¾OYD¸Ì„þx•›ñ2d<€}÷•~ÿÕÜfÅž¥¶Üÿk$t”Bq„˜åTÔ”:µäujr@MÆEjrDŽ×_£ö€ ˆDJW<­|ôöUÕ[%îB¤DŽòb ”Œå~WuyØQ«X®hÀŸð øU—àˆETÈ›šÊ„/t÷’ Õ‚‚–Îv·{à&Á.¬~ÿjHϲ¨i 6`K¯šRneÀ‚_‹ñìHþ(]ôßc¹®ŒÄ1Ý.^ËzC¹WµÅ¹×±H [e fÕ´~0ê:«Ê»¡1Óov`îD§"M+W$“tÜ«Vž Oôð#Oè´2) ³©.𠸕—Wt¥á 0^|²ùÃÛK!"}n^Æ~PÄã½Å÷È H;"õWÙû}jûSzxTp@Šv•Kfô ¬ ‹ÔÉEŸ{U4Ìo¦éÅ‚§o4_Plëô7tNsú(÷ärzlÊœŠÇÊ&Toá`^èj°˜ïiœ–Ãüg:ò%Ž¢'tlî¦"ìœwCÏqGEç±Ô¸ïU„$×U6]&€ÛåÚ “>ÎI¾-퉆”AþöÅ<»&£„ƒn,OQNÝ®0€+!Ì‹B®¯">šFÁº‘bGŽÒHa´Ò óÕšÌìÉTÓŠ<:ô%¹”‹s P•¿ ÑŸÇlAPŒ@@:À_zÈN×)gÑÕÉq·HeìÊšQBä2k ,á¤ÐZÏ™\¯…j³\h.ÅáÔÑAnæç˜ã⪼&SÐe¯4txG؈² å€óœ lt¦`ÂOÛòv‘Œê&k`ÆÙˆŸ§2`Ì3ñzÒ¢-—û5rƒ÷Vð ¯4¯“’øZsFIn~H•[Ít– ÕáŠWŒöé’ ´¢«"¡ÕU1=ï6º ׬YèRºö ù° –˜`›†~×]ÿ¶½Æ]ÝV/k>&½®Hª—A#·U5OCFÏçy4¯šŒ¥@ÁÎPšú™x`¬9 ÍèQÊýç8­ñj˜™E×CÛiY­ÞpvŸ++VjL†®iÔØ,P¬±îÐu©VKëK:yÕƒ£®’ñr’\U¯c-ËP¥c!ÒÜP€Êh-O)®‚ÀÊW[R¹»{¨‡nÙ  Îí('0T ÎüLs`3%¸2ðc}:,O’kf¦´à,y³*´\ˆÅdo¡€´ü™H-ÇCUð/úŠì‹°Â‡ø"³])žòËV³!U$^ÀD¼Iu¼m¡¸šÄšpR\OœË•rOkj­JrD ‘Ž ¿èœÃ)@é%Îd0W«XpRîëR²~1Ѩ ÷%%±âhX'z¬«€ÀÂluºûEö*ê©0ýwËåjquÀWC/î‡â„57¹ËÛ,|®£”ˆµ9dÜ ø$5pïnXïxË{(¬©ÈÆíz×uz Á(N*ž>M›«5N€;çÖ$ê—–ú,DºAl(¥‰Ò ™ =€ô±¸éº4“aIÒ æû6‚œ04– <¢ýgKÊ.„›x/µÎyä!ô“‡˜aÀk¤éO1÷Mê9úòêcQt<´ôZ*x¿OS¸FXcÞ7ò óáÂd iÇcPæv~¯¾&ÏŒ3\‡nÔ-z>U€ó°o |;7GâJ.±«šÔþ›û«À3"¿Îïàf%Ê-×ÒWíq¡žc‰7YDÿ‚4‡1ÈG'g¿üs8Ý舔áÂqÙº"®kÁPŸ`ä'¶v!¦àV±‘qFPlÇ”}U[s22!Vl»›0ò˜BÍTà¶äƒÐ{H4RóÈH¿ÂAêtøÑÜÎ|Ž@QL¬TQÄzdQaz{£eظùˆlwËB D*R̦B ³ã­+s±amî“·:7 xµvx¸4Iažžv¼ª‰'F©[¢ƒŸã.$3á°/ ‚`¢p…B_7^ò—©Ïõ…•àÕ(ƒŠøAIm¿,’O–‹| ºR†#f± ‹Ó”á î-°×Nm'Ž1rð…,æØ§–µè·‘¦[)Ð&t8xœžÞ¦8ôsdpaÚMšÃª´ŒWJ9.•Øÿ†6ÏK#!`@:´‰ü/™³–ÇJIÆ”•ýÈ#X ÒÖ§É3pBËÚõL³”²8Ö@“üZeE$¯*[8Åx¢‘¬QªPkËë¸Ía4l–cg©»p×ÄZ¾iEí/Òú+è1Z‰ ßbP BÖ‘Õ-*nÙ˜U?ÆAƒÙl©["!àV–z?„9âuZþí–ÊÆÇo‚l¸­ŽjŸ…5[ágþ%>vëïÃs”>ã³Aþ ÞGãkòã»Å®õ«Ñý÷± ý~pžKìXöâÙ¸j©Ž‚žA|)aGÎ e§ù–ß Ú·ÇM4`ÜWýÍMJÈXŠ-ù ¨ -–£ ¼'|7,“}xWºØ¡HãÜý£ E@»ò™‚Q{Ä©{äBŒŽó6&0R²£ÊDÑQYríþ““°ÀCo„XÔ£‹Qˆ‰¼á’¸fy ¯–РѨ‚=iF‡”€–QK2¸:´yF<,ëS> %ˆÉÆ`Ú_¶>ÐÌ‚Dàõ”âéåè°ò"—鎶֘üHÆ£¼Ö5ùTá,$ÚiÚNÍ%äbÊïËãY1ÉÈ…ß–GÒúÇ¡z3‘Ô»r…è¦trÀ¦Ÿ…#Ø·¬³à5Uà‚w8LoYÚP³í¬,Ør5lÆfCe¶ñÖ-ËG{S˜\ºêè‡*ÛÎe„.–žC&IR¬jý97n€Ã°yï/Àk¾è!D0_Íl©&ï³AMõÂÛyÙjsúË”5o!ƒ{ü¨Ô¹ð»çä ¿éŠÞ”ÒÞ‹¥°Çê!]H†A7)ôf@¼_FÚ†œæ¾®D½$+«õ*é%r‹çàjh7™7øÔ=.$NÇ]jÙÙÁô¶˜X²;E‘i;hß±XI=ÄÔgz7Þ¦X"öh“žWîâ1Ieá²¥žÎJ±/rI)N*Ûtnv÷̆WwCÛˆÆeÛN1éˆG¥¿dl›‘[Ň©„úº2ÌžîDÎòÄ«Œ]sUQçÕ0:åȨ#D6óÑ¢Z¦ð/ÞêÍ„ šw“ IZgÞhQ¹öæÄ\XeÿÖî/Æs¿UK´u€ÂMŒˆO ;0&¶ÜÞJ‘xKnÒ~âj[Ò"î h¿9ÍˆËæãÓô s|˜£hÂEœÑ«µ—’iL©_ú7ˆ9å™ÑÐ;ÓÈ]¯£è.ºWf¥þ‰%"âPÚ%f]Ï+z‹2šrÁ\3Ƨ5èp$G!)KG„A3NFÇžqcUã*b«“~`éWTRçŒnӘ¶±‰ÒVûwÜMtòMp9>þ©<þ¦<’µæ³ ýï{þ õzHxš¸P»­d ÅÇêj&¨ô¤há”:¸’q¼÷§½FÝáif2º|¿¥k´¢Þ×ò‚£<ãÑØó†oC > stream xœí=i“·qß·ò#¶ôÅ».í÷áª|ÐiÉE“²´r\¥R$—¤ñI̯Owc€i`€yóWr*‰ô³x¾»Ñó㹘ä¹Àÿç>;çOÎ~<“Ôz>ÿóðÙùÇ×gÿüµŠñ{o´8aŠÒTc¼I3˜qîí‚ yJÚƒäÛÁò6µ®κ?dÛä¯ò!oØó£¼0—MD¡+X0ÈýûõŸÁ´ÐÁ”“7ìúê[p#Í$Býf"£]ÿw6ó3h𣪳þ (ü\ÿkÐFÍ^"N)§'-LÆÄÇ ã€ËÖ „³²ˆE‹yQóQØe´n^9°Ü²rBs~´/°·Ú ÕÂaóóyÒ«._¯åušÏÔó…Ј ò¬ Š›m„/¹¥6`fâ&I8ðSäÇñKêdÝÌçy¹C(ðþ¼ýy¢;c* t|JÀ<í'¯+áù8múdá\G¸"¶òùXó}†øe³(:Z]”[¢¡Wïuj•¦FÈqsBD_rh9yYÈãóE\Ü]™<ùsyìò}¥'€IÌÃMË :19ft4>OÚWe´u€f(h|-êÎÌL.#o˜˜v —…x²øõˆ,iÇdî'Ëã½åñºÛá‹J¤~v}öœÉÅó'¯Ï€ÉÚóŸAçüãÀPŸ;€Æ¤ÎŸÁ_ZìrÃÓ³o†Ji³è¬”“ŠG˜¬ôI-}²,ëÕòxy|¹<~¿<2½âùÒú÷åñÍ6úÀ@,Ë È1½ä£é‡Œ“ æöOðÑM~½¶ÀÈÝûÀF€ì­ÀþÎûÝ×nŠö6†½(°ŸÙ* /©ö–)r‰Z€,„É L9h§e3Ñy ´›uw¢Ë•n(ìd€ jQÆyg“LgäìãÁå•  9Ù•Ú`k@…n™Qr˜µÆQJèZ eö…£{_Xz0–yáWÍÄßåÒìp 5á)‰Å(àºÐ|ò, 6)I3c€ãÄJoìè´©— ܨŸ¦¹kYyIVVòE De>Iã2 ‹I¢åm‘Yï'lñ4 §\Ïd€b¤ô,Lf€AJþ;#@Ni¬™i›ÏçSëæA2yÀú}WËþ«¼Ñš‚FftGê’=ô$é3AnÊKìâÁÀâpH›3ÑÛ4gR³Å+n¤ä?­Ä¡EÄÏ lt¸Z+»X< Í s— iL2œ¡_ö¾´€f$ñwhSÀe± ¨.b/)AK‰¥…zɪ‹ñìOü½jÀß zš.ŒUÉ–³´TË¡%Ú(ä$Uµh2õ«±–^Õès¯‘èò`>ÄN­¸èBã Õ°}™D—Dä=ÝÌʦÖžÃL^H‰/‘ŠÅMÚ‚4R6uyªIÏ­w–Ço—Ÿ.­Ÿ•ÇE`Ói4 a°¼÷zíáÒúby|Óvµòûü€†Â$„Œ0©ýñƒùa…X6ô½cgDç¡d}F¥Wujs¯SÏ(hü6‘:ꌰï-0ùviý¸=.ê° y•æÇ¯»Ø¹tø¦mek0ße`^»¦ Ëþ˜ßù:?|”>o±Šÿx€ ÁE}ñÝEnü&?|’X®W?~‘þ#?4«¡÷Ê”_­Þ+Ëú2?üùòÊ"Z[uñÝåÙ@«˜ Ç5Ä«`k\Ë*ä›;Šj¬ ªé[`×=jŸ¡ØbÒ×ǰƒ¯ÛÛéþº<~´t¸3¹hFËažà[¼tjá}@îäaŽ'˜ä jˆO˧e‡SÅzV ß‘ïÄ Yo²ôbÛ.½NÝ¥Õ(²Ó.íQˆõÉÆA6r¦ 4tj€–Å ÊŠuÑp÷–Öën‡/–ÖÏ»ˆÜ°'j[3„Âî®Z®ÑÁoA füjÄühôÏW\æ£j,5Áxl0™€ñ ¢н$íT[PÖÂ2ÉgË8óÃ_;ìîqØeÜbeF˜IiŽsˆ_.Ô8WzUX8÷:猓S%œs§2³EÈt±KÐ]±»ghoÈË‹b@Ñ9ØN5-w d©}Aí»-OØúµ—Ü͇‘%XÉ…`(Âh'&šÒ:PÐä‹Ý­ÀW£††Cž£¢V5j”^²èmÍ!ÔûÆ8—PÃÿºLW ôñ]⎢«wYzUûž{ºK8&;K–pþ3vøU‹ï6˜¹Ís9UÈe<±´~xÓÏ4cÁLé¼Óâÿ˜jã$uñ1þKFÖß%hhˆÏ¯òËü@&¯‡ylXLˆ'«þY·4²V9ò˜YJÖhedÌxQáJéÕbÏûàŠD¡o²Äÿ»:+ˆ‹­Räݧÿp],Ú÷̮p þßP4#'¤üpaü¥gnójy‰µ£"Ìh@J‚.ã}_Îùg5)ÈÆâÉ*J§Y< TàÎIͰ¡u€À怿:$ÀÌh†³ ©°&&tÕîg3X»ÂÇDáA?áp%Ö^ª¥W éø>€5QO^ê`:™*Àþ¿"ö(b&ÀùGî4%Œ0ºÆ’ҫ›¹×©XK¼_aIëæju² IŽÖÉŒ÷’}¶Añ+‹½@Îúì%NïQKñ/]È)̯/qÝe†cYN ë-ÈŽ²•›,ÀÜaÌg,Kì¤QÔ‰tO–fÌã bRmF|Êúî»òf7âë<Œd é¢{wz>\YTôM·SSõñÒ:]v¢­ý*`âwþ—§z %ï6(ZmÓ½lA×—ÝìÛuÚ_»ëôxÒ®µ”{ÙiS^Ü› ÝutM Ææ¼Au©ÃDã)ù9ûaîêKðÐÙ6Q/‡ÎÞeÐË^Ì‹ÂØ|9¼ÿX. K2)Ö¦í$”kbmMÖ˜1`+hX ­ÖûÝ`. 0,¥ë­9¾+t½\˜UºßàS(£‡I‹sîdð«lG\‹éˆ¥¬­—¨à~>8@hOöÍz Ͱ-Cû8ŠäþŒx6Uœ1Në˜Á*bBÐ à”Ôfº1Hooì&'ƒu8뺲ó%~ENFé»K‡œ ÏȘLÒ”¬Á3ÙM¼N­Ñu3›éˆX‚Ȝ冊icÔ·™jm,Hn1§Ôe»~•z¸Uܹ`Ø(ï‘oƒÏÉ©‡ã/¸-?3”V¨F\eéÐüLή²çÒÀZŸ|¯‰ÍÜûŠµÃ’MT£õ~FGœ ¨ NÚyƒó OÙ3oÎú#ɃE“®êà)¥ôÜ,ž® ƒ^Ft&ß«ðQÇœÍ>wÿ! ì˜a—'eÝó“¨Î-q}çìú÷ÉDì_Ÿ€1&an‹+²ƒçvÆ8³Î€ì @ÎuN7¼6Eƒy%ð('|“fŒ«v0É-$}ã\@rëŒ/®ÒåŽXg 3Åu"¦˲ñ=¹É²qÙÒvÕnsÙ/kYÈân(çÓåú»xœ‚C‹cÍÛà@÷gæ¦W3ërÂØs£æÔC╃Ì4–}£±Ü“»R „¾ð£;P?2àí¯¾ÆÁQåÊÛú‚vޱNÇlî×Tß_¥ 9¥*ÂRÁ‹gëýáý-ØEAøÀÔ_\4º*jÆ€ñúðV@üçœÀ=áÉ*–öÔÜâyO…»d]Öw³®ˆS˜•«S‡ÒˆC}™ ÕQ¹ˆ1m¦ÏŠgN#žUm¶áQ—T³òdýâ!í‹?«1ä¢9Á ú‘<™â¯qpI†T-ÜpJwÜÅÑ +¢@‘‘ ó´À>³b¨°ÃÄ<ÁNV†³Æ5ó¤æÔCÛxy‚ÀÖÞo(†tBžÙ$¼×<AåÝàw<'À|´úfÒ@òÍ8èCíSºIg€jGsÔL·1Ó„NŸ¶Á6¼lPmYã„‹Fw²ÙùíDš½y“oß%\±µ+éìd¤\I¾ÞÅŸľ„•êx˜^û¾Ëõîos½Æ9 pFˆùžQ`K1kt1Œ›ü÷û´Ûø¿^"´b.cSß@G­³÷ Þ)*—|Ûɵ`§È‘[¡ž’ÝÃÌonYÀÔNÄSÁ1ººã¢4£æGiV„æŽD¡–›y¥ªFùÑ-Ü7³î ÜÎÚ'φã’ûÐ…Ö¡ÕvBÒÈ:_Ån^ d®íÍô|…T®ÊàEŒ¨Ý­)¤i³Ç¹ß×ë Ïr‹ƒQ¤ m¨KéñÑòøªû¸Ÿ€ÙíÜ".Ûë­Ò!ݵ q¬0äÓܤJÌHGäÛ7IÙ˜b!añbÓ6᤺‚h¥ü@ÏäJÛðOÂ6'¬Ò¨%Ð*êûS/kYÚâÎê†ÿàÖñwì,^δc¨Ôƒ§ý´Á¨6p’}•Þ²¬ Þ²½fŽ­R˜“µ6dDì†ëomò¶Œ±QÛHè÷ð1$Fh1¯Wä±ì%ÎàjXMÔà…ì…£Ø-qš‚_o»é£Óéoh`ó»ã¥¼‡þð5þ5EnÖr(R€c£bÓÔ0qDOl©l|šö‚#m]oh+´Òj)~¨Ã|nSðñÐmÃþÆ<^ÃiÎ79ôͤÁ£´[,pºY•ÙºvHÎÝ‘çþIÂ-3×!à%ë12FY÷¦EÖI“ :o±®˜pÈã`€¾],QÄ«EÀ1yûzÑ­sD¤<Á`n{܃;MÃ`âgÛÂ[b6¿ã·—[Ï$7p*^ò Ã/ƒî>èC«£ãïì:Š"Uµ2œÃçXKÅ{€IÍñ± œ®ñ§³J‘q“ æhV”;P†Ú´5ÁÒÞ ñ]‰’ ‚]l~ßǷ¸„xÌ誊a&²:8MÒ¯ jÇ­«•“ÏŽ$¤¶š—R”².P”Uì!L7bÛSš´ÒÅÜ'¥hz7ëûH³ÇÓÕs°ŠŒÿ+ÔsD/Œù9W±Wt¼.¬µ•¾Ù‰J””,äÂw›'»̦ٮ£ä.`š*¸¨È=6ÝÊ™V ¦°Jm© ¥zÜ[Z¯—ÖO–Ö/JkIs4 öOÑœ+S^¡´˜W˜[N(v’ª*ç@ œÓ¥7Î> Ý_u[ÿ¾¼ÆŠÏ0ü£ŒÞü|¹JÀýp¤ ÚÝ.ÝÝnš =(é\qQ¹Æ§Î{3ŒlR¨¨¹›6dR„ZœKóîZ™DÅä0Åb.£˜M¥™£¨c‘Ë@ʰ:#1õíeÞ”šPXü@ÉQ ³ i+ãJãiÆeéH0u›¨x­àAO¤­‚öVšÔøb7ûX¶vS7…<ù"sÕ0v¼ëGí,zBuÌ’PÊ!£ZTV’McJû†©:K—£3t¨ÎšÝ¬³‹’¾âÓEãêK€‘ÍÐÄ“hnWYQ·çÐÅÁ±TjåFè»â‚â"AË€5íXTföÀ=Σì²Gò®.ì±£‚â¯u¹UÞ×MBAY锃”²äGf²ªõ# ü?u½ + j>H½Í 3è"Àú[cÈŽÊÙ´8‚þAàG?•„ߎ֎C,ãz†0´6²Æh SÜΰ§í®‚Wï•a‰Cj»™a 놄J'åOÞÏÑútªª&¿T­]§›y’ÛÖDºw·_pçlXnÑJí0þÍí$nK¡ täi\ np¦mÞlíYè$—®:J.ùéÒ"9z;"‡ªªn.ÆKrÇÇÙ£ÇVKjÆŠ¨¤ç&ÎlúZ¥ÀÛÅÇDgî\"Õ ƒóÒÌÎN'᥋_+VW”uìIÀeøû;µ,O€D^îçÅÀ§)ròi:=Ó-ïu¢¢ZŸs¡ßNQ+]ú¹¤À’&ß/—Ô,¹¤ŸÖÀñ 2Þsž&OåY ,Ç”ç>D7 –³ÃÓiDÊö|E›tYSÎÛQVb¦^tyÊ1%L3QYW?¿e F›NkÐAï2L,X_ã`b©2mek.tf&$d‰}­<ŽÆp¢¡ö’=N‹&*À¯Ý fw®Æä –Q`Gë[røð±ÛX¹±«’Â8=L´75z‹jòß4Œ‡g}m Ëû¥€€„#Ïç(u§s+6.¸õöæÜh˃4ô·Õü‰€½úâl#‘zŠ6tÜÞ…ð$£ú¼ƒ„¸&ˆ›tF(ÔÂw¦‡´æÚE²…o C¼ªô¦·òˆïJÕ©æ7–þuªµ5pd7S+óä)ݤ߈•ÖUK¹Øá,»(qˆ…,lë«Â<ïÌ.uwÙcïOYv/7;{÷¹Rì¶MnQðç J\“Ü‘x?k]@c©’Ò·$,ºEsÉÜÆu™w©†:åÃ[F3‹ò^ÙŠ2›J+eOÔ0¯¸¦†]¬Z­)ÀÞá—}4Ö‚ q”ïPëL4œì^ím?0Ä9òȆkî6Ò¿q…NèMêjâ¤Úú‚;‚øoï&*ôÄ^-I/­ýœû?S±¥$<¨œ üìÊ0sll¦‚×è )nŽäB÷âêðk uÄël©Ín]¢®œ5%àá¿ëÖÝVŠîˆwT:g;…®ÓkºÉj©@04ÚC¤8Z>À,-rvÿ'íGPˆÆÜÆñ°’{«b³dS¢G£`ÿ0Ü8G_ãzQ®­ÿÄSÓz>€ï^1ø¦÷dÄŒ,Ø®7roq˜è6¼OÜJ†yõ[B tMŽ|_šÝÈB˜ÆøqÕe4IT\Š·û]š.Èûg^‡”ÿsÞ­êÕhX•tçNðܳM¾Ðÿ,HÒj;cÏw`‹ìP°(¿HfTûý#üÚ™—o¸kT”ósRs/C"¦{¿N &JP«+lÖ“Ã8)~d¡àJ1™­ýÖ^C·;kó'°p|Sm¥Í&9ÝR˜&/Ï A{¶’<émU©àÔ=½#WCskO¿$6ø<^‰’yƒµ(ÙúaÊÅHcj ìÅ”o9(Z—– fèíè‡Äðæ1®‚ÕU‡Q ãUZ•a¬ÎÓ© ÃV»Á…·hŒ›Ööˆ²«ä’Í0p® ¬O»Ýň$ºrÚ|vl z;nH ¯ˆµÍ4ÃOåYôV&ëU$ÇrW{¬a_ F®l¼æ>—Íœ‹Ö¬*üç¤ó /hF:Éð%%à·¥X¦%]õAôô‹9ãzt¼ø¢óz¥wQÄ1ÚùûŽWųËE̘há`@ÜíÙÑvÒbO—;°µ©…d0½¤Ÿ±¶/Ðå-~ÃòvÃEÅYuBY¬êªuÍ…¯ àk YÝOØ!¼ª.oæ.«z,Øœ_/é6?Ž5)뇵¦ñ5Žrto/:‘)aݼKå}6B¿ï%±´pŽ¡Y½æê^û°Ø™6§èAc¶"04fŒlVÿ‚Ùjð·7û(æÎI.úè+Ï@Xê L0Ê%ý}ob5¯®…ètŸŒñR%è½Ä ßÌä¡ÜÊ AúÙ‹„¬h¾øÖ~]NE@±½º7@Õ­R*ë›ì*†1¿‰ßÆ(oÖ×íUÀÁðZQÖ„˜¬ûó4H„Âzëô¿z%tQ8ê¡’;ÐqPŽyÐù·o1vý`f{¬. Ýâg!1üçâ9~ÈEK¬ª®©¤+-§|ø¿†!\Ào»ÌŸ øý%ÏY¶xÉGús´·²IÿѲҧÝG–Pýðr3³ƒY”[5—{߃Äs¡1 o•db“RÇíc,EÈV9WÌ’êäÖ~#4¦ú¬Sö*®÷ûÜlmz0˜„œ']±«»øèzR›±¹ävA¡Ga\±6¹Æ:(f1ú=F¥C =«Ž%R’òÊ%x““˜E2‡üÀ;3¢àwspJ”ŽÎßSñJ:”u Ê±Ž“ô* d¸òX(î/gÿ vAylendstream endobj 1281 0 obj <> stream xœÅ=Ë–·qûI>âo2£ÃiáýXd+ެ[Ž¥‰+ ‘R>&‡I=è¯OÐ@ª¾}çÎXÒB- .ºÔûÕßÄ$ÿÿûìõ…8¼¼øþB¦ÑÃüŸg¯¿¾¹øô+-ô!NÑ)g7/.òoäAJ9¹ƒóz’^n^_üåòë+XÒFüågËãðÑ +ÕåMwÂoëãÿÝüçÅon.þˆouñðòý…™„=üð}~!M“Å7êÉÛÃë i¥˜Œ¯#¯.¾>yV pr2Êçm|ÒÀc§èô9yãD<Ü\Þ‘9·iŽ^¸Ë÷W×F‹ | Š”êòÛ+`÷ñò#þÂé˧W×0hƒ ¸þÈÀºó»-üוŒö¡yÇs˜®âäœiÀ{3¯âä¼íMÄ×ðÍhm €T§Ìû²^yÜW0X|MåczvÁê²ó4L¡Û¥ >#€“é¯ÈY¾"ÓÓé ¯îí;òÒÛ ¢†Û¦'4¿T+ïM–—ÞæÓ²pZäŽ_äE”뽆ު…UF7(v,\"`íµT“…ÃϘEnàmÿÀ¾ÏÃ"ÙÜ:¬¯µ™I_;ƒ©zжô—ô¨é®èœù§Vgh[ß4-בiHˆ†”›LÄ}þîâæ“¿\†«ŠSé—>ZG&ûÃÞ/-¾÷ò÷8 ·¥†sg‚‹¶·+£É×á‚“Öçë¹#ãx\A¥ãú $óéç—¿K»q°{ƒ­ñºô|£&*ëtYÚÁÅdÌÑ"x/—¥U3…þ”>ÿÐ@…G(‚rtJ—%É0ÅC9ÎÏÓi%½«Œ7&z[ÐÉK88  ¢'âzᔊGtÉ0AG‹˜L‘•`Ümž ,¬+¼= ÝèøÝ•òðJgüe¼/ïx´áeE{Æ&•í£lÑ2¡Ã1ÞEm#rX$zøùjÎ3¤43>êŽC颀Xæ×ó«§ܸ_\z´ß—Ëtø]^/Øxùã•5€ÒÊtØkz c.«›†Ó&ÜêEÝ`謕~fÿ™W½ÍrËKÉYáZ@Æzì½.º‰ ÚÍÊK½YF?[F[G«òb@TNÑ€Ö4š ŒÈ:rM–˜".*‚ÌzÊ— ?,°½®£}‚öè²ìzZäR’p)“R!Ë 8Ý<ë׉Öái+˜$Uh¨—ÞÝ‹¼h4BÓk§WMQ€ '°º¥Ïè¡„¥(ú “Òq ì]Å•²EÖŽ¤K–>Bÿ÷yE-WupXèM-a7Oœª·DtÌ»åñö6©à ¡¢÷g(¸Ä“('_èøÖ 7ÓžT:c8?vMÈQ]¤© 6?¼›±J?B¼°ÇØ„v-”bŽz¦çl¨qéÊ…íáV§·üzÞxzÑ+F€°_‚ÍÓ*l ½@Ö‚>"·ÐK¿.RæyÇfà"žsWŒf×Ê­ Qy–Õh9¸^ýnDöRˆˆ„~Nθè,Xm™ÿÆ:üíÖײ½6)ç9ª”W%‚ŠòúÂ÷y:ÇO3ÿ‘†ve («­.9ò!u$D²"_" ‘Sˆv[(Â@~óMÝ—‚ ÞŒ*ˆt½`à¿/_,n¼/»´ô5››ÿwyüÍò¨—GµäÎN^/Äý«ySÑ3ˆ£x`ǶªÀóvÇVóãÆV³qt«ny4§o¸MEüB&]ÿ•¥ÔéIMŠòN§·Š‘¶n#íò›w+Å´ÂB˜*«ÇÑ*ši}:#¡>óZQ4ï8yò2¬ð‡ÅM™`Íš Úô—ÔKùñ*‘)Û(çÕÏðe*,h¼‘‘fgqª¾ÕDƒ iu,”¯’MˆƒÎÈ{‘7®gü&yãPŽá|3õç!ý¿n›Ð]-öJT<{qfáÿLÆ©ªÂ´Ì=x*còÏsÙr㊓LãÉg+Žû¼²[„Éiu—Qâ“~—O„GváTà, fHFÖ}­ŸladBŒ_S(rm©Hî§‚Ž îW¡‡VñQ™ÔÖ=þù, ¥›¤ä~•‘ÎOW¥Þ‘ѼÌ^yŸTFáÔ(wiþ3,±Î^~ Öï üx…Ðçñc›±Tã§n‡¼]wšo9/ë@îpO5ÞVÜ÷±Ï\éYÒ…±p˜W ÏKl5q2™ð»·D±§¼ê:ߨ³±-Ð¥«„Sv9·_T„{­”¼´ôö¾¥t˜ Û t¯\Çt|qd2š*yS#¸V{±P§3´ó¶ŒR,¬Rf÷¼:NölyÐúa]+Ñ%%Ñ” í_GîcÊG8ôõ2žaʳøW§5ÈÀÚŸ¾<ò"Rí÷6Ÿ¿œ¡ ’¼:! œBœ›tëšJwàAÓ¡±O#󳋯;ªÔ'rNØ 7¨kÅO¯B$¹Ol#¾—üP'pÒ^’̵š"`b`A%Õíx$¸‹sCÅR³Ãif3š~¨}!()·N?™ñt‡lhÕ…äwÕ)ÕMEP¦-€% mƒP‡éWZ‡úc^NYn¼žÕŒÀ Ü.5­k•–ˆÅ# ™¢¿}–¢KÆNNTü+o‚xt'|°CœùP®Þ1w¹Š 4éØÁAæÆjˆñ¹!* _å×D5+"ó¥ÑÝ-?ÌDãúXÐéþ-$ Ú¶a€ÇýÇÎõ-o%Êê Ï®•¿lJáOµ;N·  bàD¿-È@ãÕîÑmCí&bÅL@b818m¦à¡KÎ Òé¡ H•—9`ãåJKkÄÖó¦˜æ‹5Ý´3ˆªH¨ SˆžsDè¬loÈ{Hn–zc¥5åû‘1#ƒp”T´ö±˜zëÓH ºÙˆ:Ö¥×XÎQ‹¶³ÆÁ„Ü66¸F¡æ„Ÿò›mƒ§9ä‹k¥/)ô#=ñåü:‹$©º°Y"xd{#‘Mæoó‘Æ®¿=¡4Å3–“V6æÊΉè0)éÝØd×\àoÉb€Üw5²ö½ÀmعWªDqŠMM`pŸ•Çlºqò]'q­a½`MZ£1KÅLÕÛ”©‚î Îb;¸ï²,Ò°Ê›v)&ö(vrL¤]Ž× 'ÆíÌ^Ÿ%àݰ² ô~͉À³N È’d¤]ÜeÔ UÐF¹u[rÅ"÷á¡Ë¾ÌýÛ¬þ‡°+m”› —®ãOé®]£Ï:F\ÕáÇœt@BêŸ/dô«m›‘SЪça›rýJ]ûß®jÞÜû| Nc,†qßf;””OT¦TS<%qªÙs² ZŸ“b¦¬2p€/ 9v•W¨ôº,Ðwì:´«ÝŽ _]íêÂSN÷W—w}á°ó%ÓwO¦Þg4WÑ@I´“BWÍ%-Â"¯4Z#TòìÉÎÐfyJê¢=[ç­iŒtN`NºÆÅ¾b§_ÚÌ&LC{­BEœ´&Õp—'BÁ:ÙðÄ'/zžX§îã‡M¯TÜš¬@?Ÿßl"GEå€+_þ>+#$“/ò†Ê3½²ä&¶n‚V+,i¬1V«‘æÆ­ ÍÌœUÜ,»òžÌvuâ¾ÃCRRˆYa ‘ ‹ì–ðºßzÆd©¨Hòƒxut*çpzÊNHGq>ãN¯òÃ1S6ìÊ(è{„‚+P¿ +„¯°}D_¶´)Yæñ,À¹)Íø9·‰Pó¥ÔCˆ œý×êIŘM«¢ÛÂéO¿rÚ5‡ß«¤Nþn!Œ/%Š(&oÀ½#)ž$ž §Rû V3Ø:ÇòÆQ4…/c$ûÌÁ'9P¯Ò>´4@Åãä1¬ä‘š¦Ï—$Z“BŸ›™°ø;<ÖƒœÖ{2Ý(ý»Ïò5µL~F2Z-Õ-\8OAiQõ¼_åóFþrYá˜ÔlÕiYˆÉÈŽ &5²)ǤhA^XÐI-×bw׺òõ}¹PëÍ2JlÌÏ»£­å™Ä¾V=±O¬ÓŽØÛŠý¿«!±\ÀkçUAÕ]¹Öë“WՑljV§1÷l P\¦ÌzLÃsyžm]¦©zžæÖ”ƲEýuöDÁ¾€p9^O¯Ê}›Av’Ë£P^ã{±¢=ÇQ࣭fhÓŸV*À:J‚á„y·ºSû6l²Mܻ֗ë(¶GË_‘(vZM»á1m²]0ü%ðxM´3j¢sS2rϦè³%€‘º,F Óx¾@÷ó¶ Š%£<É·ÉÚ x¦(3‡6“c‡Ó‡¾‡ufû…ò\$€£ÊÑûÉq65²©z-DŽx©þ–¹ôéîi¦¯2€ ±G„NœóT¬›¤¢y*õw£ “%‰†Î^õÂ#Lnµ½0œRIßX5$&v¤þs“‰Ž9Ì¡5~D2T‡»€y'mk‹G)Ã|ªXLò;…ñ‡Òœ˜hÇÅ£´ŒÄÒUD·ü¢§iáP©Wv”÷ü!¿ÅG=/™ØãˆÃDø‘ö<Ñð6o'Dü0œ#HmÌ '«È~™‘ÕƒíàÜÎv@eP–6é(ÌÉçY éÚ VaÛ˜¦sßÃô¿U#xê …‰†-ä”0ت#÷)âBí)/1íð™Þ·†Ë{ì]f;ñÛšü”†¾Ãë²Ö¸Èù½"í§9CHõuÐo#>¦ ËTÏØµJЭ"‹‚5— šF”WžXMˆ… KÉGqý)“]¥|ºõüQG_™¶Ý%$¸å6ÜÒÙL-lØzÀøn=-Z8«(p µy‰äçÅâ­‹©0ÿœÀâã™hŒ‹8ÑÖƒŒD>ËsÀóS°–pg6ÊÇ¡„ÖFÇ(G1¶ùv°Íqßh®|´^;®‚ }¦×·v»ySÀ‹†±+ (×á ÔÏÓpzWÏô=Sjjçæ…sZ6ö-ßç¶ñÈ Ü‘GÉÌ`Ã:Éüà}3 ÀMÈÇÍžIÙ¢ãì™1;{ #º›¤Ê£ä°ÝîüPÛÄy5¡Gë“XåhÚ5—[;{ Åi¯±ƒéÐñóOi<€äFY Ú(…³}«š„åm|‰"§R÷K3¨`oă°qèò?Þñ㼆×ðR ä+w[74Y‡RxÛ I´†Î–ä@M«š±mpv#‹â6ß.N¨ÿƒö#±Ü¹‘Þï´À5'ƨ{ñ¼·Öõtž‘…´b¨ÊLT fɉ!õ­Þ’Vb=] ¢7ULͦNˆ•¢ÙlJËk ô&w3Š Z)øƒÒû$6x¥v9 ×sqG,=èQÔåu†[±JÄ9¹^ _ÕZV\Hû\tâ°ô›ú=”ŒYƒ•pgèêžÜ¤K‚šÓ˜«¶ðï>ÖXBR ʹO2#5˜ÃïÉÙ”;²&G¹d£>&Mó20ÑÁTqÃɧö)Ãï±Ñ#æÄ>E”qí(\ѵt vq¿Jv§[ü %-Ϋq[>›a³N–ß&/ˆ%IO Ö»ÖcuÕÛ1€Õ;¹]ðõ·“Eh}?+Š-E8”†þpó»‹›OrXy‘•˜al±?’ì;ÀPÒöËÿN` /ÍÜ VåÓÝóô—‘«óçÉÀªÏ]œ‘BtqÂ:0ûí|ùóÓž%h…:–uÄ®Dù.bøwùÇó™S™±vp{èX®ÄömšSâ\V6O§kÞ‘ñ—uÛ}à ŒâD7ŸÝ×c—7èÿºá,ÀÒ.çÚç2lÜŽ¹LUÒwõüÕ¨I}Ÿ’ûM}5~k¬°<‡³ç› ‚¤Ã”ƒq±ŒZy¢(=ÉŸnGŸÁ‘¦®<ÜÆÇñ|@¨Ž[+/ëõŠÓGQúNÁ^ÎqQÆïw`å¢;Ã?z 1à‡Ô Ј%X÷oòå¤õA­ß”5Q•$ià©ËîÍU÷ó ô‡3$Ñ7©îLI­ÏY—ÎSí–4xÌúªÅOqßé¦m'¯Ç1e$†_ˆÐ+Í3-b†Û~ؾÊö*¿Ã„ÞíäÅþëYiŒkCkååÄ/˜8 %mzrFìrxWýôç6Ÿ<ím}¼yú‡떻ؽG\P¸½î³¼+æ>˺ªÆïþП¤+ßtçRŸN‹¥q¥1Ó Ùm¼4š2ø8 ¡¦çí‚u ïå‹™æ©ÆØ iæ°]Â×ÇêÙùãÅÿ3È9¯endstream endobj 1290 0 obj <> stream xœÅ][“Å‘ÞçYÿˆ¼ì‘CÓ®ûe#öÁ6¶ÁÆ9ÂË>ˆ!a4’ÐÐþúͬKWÖ­OŸ±8=ÕUYyϯ²8°…þ?ýóêæ‚ž^üpÁÃè!ýãêæð»G¿ùRxð‹7¨ão/âßðç|1cå­<<º¹øŸããlQRZåÏ\²EJm…=>-Ã/ÃOå­>¾~pÉf´÷ÇïÈÃoñ·ÒÌ3y|†¿µÕΉã ü%ƒ‚‰ã›—RÊEpž& s‹£ ª¦“< ã†Yfþ÷ÑŸao’U{³v±š9Øß£kØOØçÖÀºÂäðúo¾‚—Jî´•Ç+øÉ=çJÁRà Ø™¸€u8>!µWq)Ò æãÛÊj¹Hg}õöD•D!Ç­;~C6”ˆ(µ¢Ä'¤}ÿÀ‰E kŽËƒK¥Ôbað<*˜”ÞΨƒ$f‹µJ Ÿ aaB¯wŸp»ŒÁ K\tz½T’÷',€È|²¯´&L—ý‚ÌGþ’Œ®›þéuœèrü)Їyeª¦§5<Ÿ_䀇œÄ½XŒ‘ù,÷rŒaJ§'ÂÏÄ1Æ{>d™K)äâ˜8\r8fex|%w ¥Z¸ô0qÙ.9'JøW„Rt–žjÀÐ.M/¨óSaª yÆ¥8xzCBñØðñë×d<¦ÀjAö<~ýõº…|²:–੪½pöøqùùUùùûòó‹òe…PqÕŸ¬?ñÕxtñ7|¿ñ‡§o.ÔÂôá'P©ºV[ ÄÁæy¸ùߟ_|5Õºíf’Ö… `SgX@-E½û×f¹í_–Ÿ(?[¶öqµŸŽÍ‚‹LÉâY‘µ„qÂU²DOw)Ì€s_r‚c «uâØ¿ž÷Vð,Z›ÂJÕ28³ ˆTõÈÏq毸z VÃo*3¦û_ë rE§'™®æÇÂ.J(Ѩ+•¼¦X«•`s@kúÄË8j¸ÇÖw‡a³Øê\ˆ ?¬¢WZÚ/–«Æüi0€Ùü J)Ú?¦P}hûÇøÐö/Ó ’¼#úR˜¾•† 㑉ÅH)Ñæ>¯K”z³ž©ØÐñ+bxÞÆi4êÐÖN‰Àd°‘$qÊFòFÞSÂd$7K8°ª<~jW PQ ¿£×KáÃZÏlL¢¾²ã2ƒ~ÀÓdE+«ÚöÏŒQoå ž“óƒ*‰”ªÜÅñÕ ·Œ>b@j)߈Ò&sØÔ8ìô•Ë÷aFã´¬†g †„ÓàÍt2?nøÄ;» ´«,«W®R-*›ü2³…­8ç9¶W‘<Öé^yG˜¹ÿ71ŸTBžUkIn!•÷,¨–Qd¼5‡ÿì½Üò_Â¥? ünÁNen›è©Ät«»ºž½U0 ÍQ­‹§ž.הߓh »²XeRD‰k¯åa¶î—™V@ÒàM'ÕòlªW(öð®05þsv`ž“-P ìH•w=GàÓänyQ”#Þ§uXÞ›¡N˜™0Ã>3³. œ^Ç9H¨šÛMˆJ¿Z]]ÏGubÜ(<ØAqqé|µ”+ˆA„® \›<ˆ0›—‡ƒ1¦QZQÌbœÍòèv‡Òìo=ŸÐ·Õ¢°fã ååÌÁk"j"¾þÄçYïXÓñ:ž?x;°Gb“2M“œÄ]Õ¡ôL:{#œí§„hIjÙ¦¦0†z3ð…G˜æ• žåg:JÅçÛ\H8¦¦|2>"êSÌvçF÷ýQ%@K™±@M è¾ä RÄß õWišm9Ôw|²ÆÃkP/…K¡Ú;Dð yaD¬#·ˆá1³å‡)À/G>»>.¢±EXº|ŽE¨;-ß:4@õòÿR–ô÷òóóòówÃåÇM†ö¿*êÿæK£í<‚{'óbJ¢öp®d,Vëø¹ ÙTíIóÝ‘ñARß»ÀK˜rA×v¹± È}Îoé ˜vQn˜‚¸'WÀ±[ãg>ÿÏ]“KÙD›̪”̱‚t£pTÎìâë8³m%é"<×Ï$¡‰•|®ÍÂà¨a­åÄQm7+JÑõLÑK Ëâ ÂZ½¯Áz¬æCË—Êh˜©´)†¹Lò4ó ú2q…fÈYAzòq ~èuœ7_ÂY:B£/¦ù~yŸ>CÒb$‡3dÈqŠLÂoëV-Cw\™äšhü=åÆYªëi"²oÓ&Cï÷}|†|T½ë™ªußÛ¤*œ1c|›ýf yº£çÓ8¤tŸuK:±(Ëÿ¥Õ-x¥sæøõ‘¬0ò2 ¶òdi°˜b+j)0‡Vª51˜žkÝ[¬×ÊÖÞPíCwñïaÜ1Û ­NÎnx†ÁŸðuö¾Î¬ÛDw‰'pn•#XÅŒpT«ŒIx!Û(Óe7N¯°L†Š*ŠÙF6ž÷§ÙñÏe\¡ÖbnÏ31TÉ£nµr‘~š1¢b•ßËiî™fiÆ^:„Êà×È@K% häT]°<Nޝø>“U1Pe©Ì­÷“xü˜™º›ƒ÷˜UaÜÕ‚%Ôñc­Œë(Æ4È tq‹ ù·àB‚H=´à†5_K̼Xõ6'¡åÌ‘û>*Ñ:a?4}˜:ôÜý l·kÒa÷Šî—™©ó¼us¿¹ Éø¾ò‰‚ÈV¢óa,çÁ&áËJñ8?“p21ÕX×d¥}:Í6ÓÙÒŒúÝèïÖä0JÉZ6ÝÖ; Æï"œ4ú>­Ûw¸šÑï—9£«4°ÍéæýaWtáB4æòÃåï51øT!Î/M5ƒ–Þ5Ëüí¸˜þ²3ÇH?0š903×2§Ñ­"ó>þgnTe®k€H>"5Î,ža´ä1Zvá–´ðÆÙ1œ™‡ÄÉ<›V,©`œÈM£¬MsÓåé+bßGâHe»˜†µžì|%‡ 2!1Û#ï!Aæqò E =f˜¼‘uà6 &oÄÀ`Hc~‰¬âeùù¢d¿Þ–LÒ“2ús}Ûä—Zˆ‹/#¢™@ëhàFÐÉÇÖ*~õ*(ôþ“ñÊš¨U°t.\äV1@SvÉÒˆùxeBEªO T(n“ÊæýUð!Ž®Œýre˜#wKðdçbBQks Paبå™Ö tþI´Êžm¾‰ûñ`f~õ¯Èø‹ú™HÜs5 v¨ú~TNbä})ò°p޼¬Èžu2%ã(!fúlîilƒfa´ãôÄ)PÓÏdô|C)ŽÕOkÅTå4¸Ë˼áÚž[¤ÌO ÝÛ°›Õ+߯Þܶ׆ɧ0QkIü0ÇDåtíY˜(TÎ’Ý( '×|£Þ(l›ÔÅQ àÄw.·ykܲâÓ°s¦4²»Ê††=#o6òP A„9köl‚%=šcÁ¤‡Ð ˆfr†pD‚ïhàÊ’'Æh¡ŒV$-¾YiKº·Š7qï<ø"Æ(äª@Qü„É,DÊnÖ:¤ÓXîUÒÒaUÛ´žÎ"¼Ø_1 ±ØU=÷(ÂÊ%gâbð8&ÂOpҩʧLøãš¸mø I‚pôÛ—F`«aÚˆÖ?`a„jl‰%AÑàÅÂ+µ$`œy!;10+¿Ffí\à40¹£R»ñ:.Ãz[E‘ÓR!4gÏTÕn hŽðï:ßzލ†Ãã]œ™Iß'ƒµù~ ±3¨vŸ(’é’TÄå×UÉc¼Í[ôàý µépšÐò5ó2t–'ƯDw(³6jˆM]-‚ðÙ4!1È ÊÌ<–I½¤÷ij#®'¬Ü6 šÝˆ1Æ_¡ÕøE1þZÞÆÎJðûñgW õyKü¤Íh7_=àT€hÚ’Jd¾Ñ!Õìiú;zN4çO‘}Ù%‡Qö01­ÛœáN§J)°3­Ú€a×$Ê&FdÂäOÒ$ÌÎ<³ÚgB“NëætÒ×ÓÍvFwO3儉h¬?ŽÒg!AíÂã²8~Ĝœ¬ÃdËãÚtSËŲڷ}o†z>/¦6hvœ*Zï!æðJh(wΡÿ·Aó4d¯çy†YºŽüfíÚëcÙ²q»uèsF^޳½ý>Ár5•£^§QÒYÅ&ÇEuÂay,5> €soUƒe ð6†áN&¬KƒÜÉ#ylåìKäÙmÜLɤDø©ÏI”B6ñ?¬·ä=×P}!sg/³öʨiºJž˜È$|’ÅÔÄ›F¨w#gQÝ+ÂØ[K PI\–ܬÐu6(m²¶A;ÂŽwÄ£›5èó»êec~Ú€áíLŒ"Xí±ìI1mD‰Ï\Hà›LS÷¥j|fÛ’€š¹SÙ ¡0!¥ºÈW¥¼ëEKX1Ͳ¢@«ãX q5´*2·4 KV¾ŠØvh—±5ìÃS—È_x7kï:")¤ÆKVÑæ¡K8Â%œ$çïŽhÌ¡¥»Ž=10ˆÊú: YJºJB›íiGWU_l€nT h#aÕñÓð"Íìw%×0\hÌž‹-93Ë.Á%s~Õ¹è' ‰aÑf¢†)ð£ÕqRìi51<-çÖ®´[˜ÃØstÍ)¼GØ„õS¼Aq¥&×Û^ô+ o¡ßbç$¾Q[ãm÷·‚b~×U”¡ÿ('l»\°b2”š9"U´6E|rV­ø8±ŸimÍÌ9l´:ªëºxc;GŽÄç3æ–nÞAº…?ü9i:{k;6D';á(Nysü+>!”À¤ ÑKÖ©õ³îuJ˜¢„qrz7á{Š Ú:šgAƒ|Qgãð™  Ù¥ìÕ0Ú¹ï›/à±bsž%7Lç¼i n&HW©r~ºaH`V¹â8/ ”âã¥ø}ý¢Œ~^F?/£_”Ñ¿¬£+|D,Q¨ƒt Q/‡› e9Œðuäø‘Ø™JZ¾xvºCŠaš‹­ÛUmϘuñ\+„›vG‚ÅsmaD®#·Y¼¶ “¢^>YÇ›ŸqùŸ–QrëÓá®ÿ»ß‰`xI‘†E+~—À iê|6\ÜøòØ?ªuv6[àý¶ÚìÀ;4< Q6nu‡G„Ÿö$b~\áÖ-0Þdﺲ0TT³Û{n?Dß‚º!†[SnVœm‡bR2¸ÚY6èví*´Ýtßö»l][j„'W€gÁb þ0Í,dA;@”ŽÖøÛ °Ìˆ@:D‚©ÈH.š%.Tš@ãÀ uɹÊ?~–¡LJFH¾¥µ^ÐÌÜ£/‚½ÄÀûŒåroã5`,P¶g‚óÄ@kéÆHoîï j}ôÙÅ£_WðÎ× ,¨}[@lË6»â…G|mÙ'iÆÇñi8²½÷ÛðqÏ;w" o·˳Œ+èZn¡ÿ• ãÕW±v­Ul]ž~OÖÖ%¢ÆAÁ3aÝ­ópôíeS«›¤¦±†nÀaaQŽÕ$·Ù m?êN\ãÛ I¼îWuYk}‡GCïã“GNNð(à- zàƒ"Ü”)ÄËàáâs¹ðWñ®¬íf rèµòL£Ÿ.%vj}vÊÑ…Žý½0&÷jšpi Háq·Ýu±mõó îo|…\6UM¸­LZ4Êv©ÎÍίT!Mb ÿ»íµ¼· >Ôà"ÀJoggP„=í,*ôUq\„@l^TÁ£wT‡Ñaů>Õ‘B7k½@Æ’jâ)3+³®ÓÕ•kµ>>)î´.¼ÔWØ‚úÙ|k•ä§h‹üÝdMt}ÔŸxØHVÁ­Ð;Q9µ%41ݪMÏÒ*¶]°RO”téÄáµ#ÐCIƒ æõbg¿ÍY,›p^Ÿî¬ýEíŠ|SÜó«ò“ òßxV”åÒŒn4´X &="å]þã 7vZU¡1x¼ð –ê}¢€YÔ tÐ\© ¶.¿¹öò¿çc‡`S;°Þ>ÎáJßÊ-wP‰é2p´BSC¹óìQ(”np]Í¢Ï6®y =qTvxxÂlÜ’FùÛvSÁé¹¢Swù\aÀg;l ŽÂÔûô"ÎÀýlß”ÚÄcÚß>³pt³àhi°9*M™]M{FêIïÏì¼Í.D}(ŒÌzÒ<窴GyÍ( OT œ#ª1M¿‰çeu3a=];ëìB÷R•…‘óŒÌ-4]õ{š7oy‘®Ç)wZÅjxw}}6)ÈïÊÏÿ+¹ž''ò"@VVÅ…x;꙳¹a©öäJèM.#6Ê Wú¸rÏO¯t]&9ÄSCõe#ÒÃÉO¡£çûkaBÍ»l‹Œ]K'•ûÔÂŧ¥Ñ0µš&ßoSäÜ)ŒÅ}ÄÀëÚ—þ…JW%¼'í6\´ÀœÅ5*Œ¦|õf„·åBo¹§s·TÑ%Æz %ãT†¹œ´.\"„kgsþ ýeôDÜôfw|„Ë™­Ü¾P¡øÈ9h¨¸)gB¿¤ûHŒâf5t{O é(íÆ·½Ôè&ÎÉ›ë3ôoE°aŸ€’es»t3­À>\Û3 ¾²h¯³±Q&K£œ"›nÀ¬ßTxSÞ¥¬ïصwá…ó°šö.|ÛÀRa½`T›ë–C1<½‡”ãœp«ßBu8­-™‚ ¸\”&±y˜¬“¯i7«Gž(MGè\BX6ª¿È±Ýámxºy;ÌÝEªÂ‘ulžªµpGð½%Íê‰ 0ÌÆ½”ØBlÓ1f›Î×ñœÁgØèÝ{-Hx¶ºß”X´ø'1°£OÊèÃgŸo'ùêN…mæ!äø¸k‚¬Mµ$b»cC‹¸Â—Z^¢sßÞŒÍHˆîÙç'xŒeJ?›–͇8yóø^Ìèî¨p¼wdé§®oÐÏ$%xV1ƒœ¨MQݵHHÊÚ]n ‡¿ƒ®òŒ—êÃ^äpÍ2´¼S‚… ß»õ ËÄ ã½u£^mç–\0>ÁbP´Zí±åhŠÜm ¸ ú~CýnÉv±U暃ªé¶ºŠKñt†ùäKðžpÞÆÝ¦ ±¢qŸÙõ¦^åuŒÏ€a¤=©ø ˜òØŽo'›aÃRS¡ˆ†NS€SÙÐïÜ>BÕê^)Ýeã:ÜìæÐLFÃ6¬Ÿ”òg¹¯ùZZ°`íZÂ2SµY‹.£^Hr Ã¯YÌΞÆqG]Y¾ý’‚ÄÄ„Õ9Ox*¹‡ ~¯ÉŽÔdÓÓ=]‹ŠÀº¦|¿ªúúXï+9¾ÃzMÎ9îzÈ{éûiE»çð:›a `D{‹ô¡§JL%†¿´^㹋ñ0_‡ãÜœi]™nðz8ƒQÛ¿'šîþ= †Éag ·ç2‹&g&ëÈVµ´]åŠaržs€âÖ†éuS$ˆk~Öd‹ZúâW|¹Ôã ?|`y†8Nl·…À ÉtÒÏÆôD¿‹´6*ßòá¯!gí¬‰“€ƒdyõÈ;2M|‘eàÖÄ&ˆ]{(?ê‚Lç@·#Ö¶/}˸4œ,lí=Àh5uß±äLtö[ƍŢåØÔ6 z™™–‡fšìŒ‚_%àBšòØýW¹ €÷9TðóŽ=3Ðæ,_8#WÛ×–›Å±?[œÄ™í WQ}øšÔô*j̾#x•š|Ã5U}>…„zhbG­Ê!YYÝ:a¾î惡‰|dººIÛuJ;­»_^ðó+¨$Ú6o0Ì8Ïߣ±‹¡¿£éè;>ÓãKÓáuþ¦ ºE`þ¬oŽo”Rž|–VÄï”Þõtü’ávÆ&Ï2niçìê›!¨¥Z€õBGÂåÁ"€ZGnÓÓëUq lW¾—;1‰m…œ~?á]ÉJ Ñó’ ¸ÞNPhì)*G­îꎶƒ/jbC~øð ­/$Ï0ð;<ÂÀyÈV©“§>Èà]Iîyù³ë2*¶s"ÀŒ´¼—»½´_Á¦Ëz™Ws¹:¯{ŽëZ†!וqNN]×4r'וq`;ÙæOC¶y\Öüª0z jiHŽ¡¹Ýû´Ð”:±Ô¹}ýOØ›‹MßÕb‚{WŸK¾¼ñ9ioÉ C³A/´Ñ–9}CªñßÄ9¤Ÿ¹®é%ÞZ<îò2&Ÿ9I^µZ˜+Îeû,£c¤9naŸÃƬjì3Žâ¹õ-{Âߥ˜!Û6‡³\ÀšÝcM ÷ÎLñ+3è_S"U^…¯Íl»œØ˜ß Óuù»8ÈQ› ÁÀrb_ÄŒàдU ë|¨u»°Î¹L{Úã\îÊh„|0L†dįÖÚ)COreã%¥7zÞ‚ÕpT•üíðÜ¿êì?¼7&Œ@¤âÁ2‰¢‚W“ JYGns5ÉhTUð9Ñ}ÁŠØû›msÞºüRIëJûáW,S—™]Õå÷¹}P—³Â¦ðõÿ#0__ñì;Ëž ˜á5<¦ âŸÙÔŒHl}k6|iT /2®Î(ï1 *~Po£¥dþ†õÓ¡˜©§ùM2ÇŠZT\5¢ù«J-ƒò¦;ZÈ22Ý™ñd@rßýd…Â'ê7‘Šé#öÁAݾõŠ-6 ßNŽo&ä?Ë#¡q†‰ ±Å²Éî‚.Ï—Ò«èþíâÿü‘½«endstream endobj 1302 0 obj <> stream xœí=É’Çq>OèèxáÓLÓ®} [Ó6%;l+dN„"‹èÁÄ€€¨¯WfV/Y[¿~ËŒÁh4ªkÉ}­÷ãN r'ðÏø÷«÷b÷öâÇ Iowã_¯Þᄎ¹øûÿÖBïârfwóæ"}#wRÊÁíœ×ƒôzwóþâ—/¯`JUð—/–Ç|tÂJuùzyû©9ön~|~óï°¶Š‘¯­Ì…–»k©kœÜÝܲ_]]‹A+¬£¹ŒÖÞDX^{oаðµÖfpQÁÂÖ VKÉÇÞáX­­Wþò'|¶Þ† Òwzð!^¾¡!F8.¿§/MôöòްƒVº7ß]ZÛºÀGÀwrÎÆùQ[TŒröòçôUúòOl²{¶¹Û|£0µ ÊÚË?§÷"9}¤Ó·ÚhyùvÙɰ I@/~=C]Áç*Äu†@†Ö ²?.oï—Ç—ÅØÈ¶vDöáG1z%3D½GÀIø}yu –¶…0q · iÄüM®CjTÞúê#DŒ×|•T1ÃÇ+6œúÖ2–èãvŒ…üÀÐõŽuXæÛ€/€UCÒíòø¶Éœ_¾œp_œ‚P VB4½*PàR®BÌ,‘§ À*;È`/¿a¯{ŒúŠ1çë´«(sz¹mófIR°qeZ‡Ç§©‹7óçü,!£Ä>ÙûûÄ •F61ÉT¾}<•„×/i°ÑDBZØÉ6ptòÙÞMhñ0éKšÅƒ®!:šQ/ËÏæSï'ThåZ¾8}`Ô~zæPx¶Lƒ{ºž6•+ Æ†íZ'Ž ÉÞâÖ¤–Œ •Ø…âÕFB‘ƒŠ„+ŒDBNM›×IýÐÌ^U´ˆàŽdÆç¥™P»”õb&ÿIX fÀ²WäúΖÇÍÇ 4_Îo;N,/ñ’ë9JN¥À)Éȉ$°F‰oma×”cô A̪çC8•uä4IïÚu3…|Ÿ&ÍW˜ÎÑ‘Ù{Šf$¶º#ìÔüñZÁ§É˜Ù[<|›Îªn?üÎê3!Ò¬ls݉O[¹¯0™Ì!`X}—°#]'"Åð4mÄX¾¹) ÐF“³ÃÚæBÌÙ9 Fsµ›  ª0n؇s”`B0œ—ÇÆX¬-sH§Fí Þ{½˜¥œÞ²• ¦·‹1±ÅOåÙÆš 3ïáQ(ѳe@ÕØEš=¾!¿GÕTû¼ÃˆÌ:ü©Ta æ4UHâàyòÝÏ|Áe>ewøeãïÿÖ”9 þ:¦Lô.Ú”éàô¸ÀJ.l<š*$CR]‰•)–;&ñ¹—ÉE&× Ÿf«¤"€z­À÷ FƒôsàûõÑ~ÿ‡$‘¤Q*„^ìR¡*pÝ4ó]å)ž¤rŽtöãûò¸`‚Ÿ€C³ˆÝÌLý>Õ¦w{À ­îÎQëg¦Ü¦(9AÛVÁWzdGÇsX°Ç½“‡…Š€l‡Åk{ ż°gècôÈd ó1¡@h½~Hg4ÆbB†l¡ ¹!Á§ÁD4ÉKÆŒwìý„U×ñ8ûÈ\vÐBÙ4¾VŠõX¥r&Q.Žr5³ÎÏðÇßטG–ú9Mâý”¯Tn~çrNø~ G}vv…§gŽø±}ž¢b_rÈôLê·8 þ«Ê–r©CÛ²SbÞ&KWxÃYTÒ†Þ¥©­öG‚™lkhÔЃ;le૳kV»…¯0œÆ£ïîßÒ|%|‚ë'¤ ‰PÖ7€]ñ·Ü«´_`⚦3Ü Éª²©—0ËÒMR-/Fy­o@N‰—_ã|v›‹Ræ“ñ]åò]§’[ži«gû 2)@ õt5ÈÞ rßo Oàa¢×€>×}üÿ´]çN”Èñ)ƒ€~ˆÊÍðý5àNƒa u¹Ò/ ëšüƒ`Ü¡,B¨+Ϻ´5bn†¢|•.Væ`4h½¢÷ZNvtƒÇ´|ÆÓŸJwša…yÖ'8Ù@0ÆH†A‚.Ý1žCñg1•`.o®æ”×@U阵J÷”J!çp´SíIŒ-LÅy>®IV3K•_ÞŽ)j% ¥ä™ëi#²)ä—‚øðòÛoÛv;F‘UÁtls*SðƒŽÍšf¡žÀwLí^é<Ùß3ˆx¸Ž¢’ÐL31ñ¡?e>šEÊÌ$4Åž®µ$”LЃ{­PuCd_Чâ+ÁÇŽ&Ð Lª(3™ßöqÖÊí0Á)êÒF˜[‡nZ½¨Dœ'lDq+ &/N+¥ìYMCöëo´èÝÛðyü¤`¾¿ç¨kä @:ü·º–9’àÿySä/™–G–OúTŒMg¹Û«NË_fiöEÜæ ¡µD“¹Ê¼?6ûžƒšiò*6~lv¸PÛû²ÃñØÈòÑÙá‚PǸÄoRŽ£=rÃ1³/Ÿ"é´UÇ‚õpÏÙ“îû›8,v#¸±ð3굊4‚SªHû~y{†Š43rðïÐfA‹^D„é˜û¶ @‘ ƒ΀¬™ŒŠØ–r:ÅÎÀUá›S6 ÅAÃ,žZþO]¦12[Ï.¾êårËà€+¨WƒS8¤´TÈ{2}§ÓA‘Y :!E3œå¡pl\×âFê°³FfÖ/ß6Óc<ûZäYiM;Ö_‰h\Ž?|7ö¹5–bJv]›ªB ‹ uH=C…ÚÍFsAù!ÍF§Ë•ùÄUº2Ö×Ñu§ 0ÁRSØYØ;ØŸ¶„~Y¶rü˜€JQXžžÊe­éÊЛH#2£x>w¿†–vUåéŽä:8sNÙŒ¬›pÊüÙÃPV°É´?Àb† 5¼4ˆ ÎÍw­œ¢V ¡wläÅw_bbõ¤1Ìwz¯«²§*É ö‰µËJU’ur&jsÜÏ#MIb23(™¹ý<¸ÆÓG¼ë¥—û}›øÂʦò)ÂÆÈ¹\•Q¶:wJšë;ab]$½Z¦½ î0Ãd죨*£Æ†ºpM9?f`h60ŽÎPžvlÃp['<–­9ë„G²5Ñš–g·55p®HÔm5;ÉÆ²G(ZR—Ñ´d²é#Χe™¿Ÿöw}±&ÝnÔ7 Žäÿë›ãõ3KÉÐ}cõ²T¥oÎeÀ!~;UèÄd 5T8c+ ͤ°´-SÖ?®¸DÚËÁ¯»DÚ Ë”éñ‘öÀÄÞlóˆœ@@ê¬Ѿ1‚$€äë´ð–}à´Cs¸Ž¨F×Ê8€‡¾±ßzRÊÿ‰¯#ˆ-Ùé‰Nù »¯ú­îî‚%ÚÌWé#™7àw¨–‹òÂ_'(ÛÉZ©hü3ª"•"$äIÓë «sh“9Ýç*ÎñE¥tžîïÜ'ªG”ôÔq¿2%ÕªmT_Ö=­Îí5Ь9λ6ÿ…$¦µE)MÇ8àZ­8æ·À‚l7ÔýñcO¶uœdc*˜’†õóîu|¬l$Мê–ð÷´ÿí´J΢½áo›8¹Ÿ QŽyNÑÈÑÒÀ6ÅãÚ½j–µœ•+جær×xÊ)¸'4 "¨’%$ÝîèäuÉÜœS7$f]Q¾„€ÌŠøL\#¶£PIHD‹w¬älA‰Ø –RpâY‰‚L‡³ÒªZ¯Ã£çŸq}ôûdÏâì,Ÿë[œÃyuü1ŵ" _èŠÚݘ\W‚˜iÜmÐüdyÓpãÚ,þ€ÿŸ€*ÜPìù+÷óhàž6½›Ã׳zÛ^ʬYi·Þ/§– haí ǧL È8kŠŒËSôëØÅô?,Ô1 ÔpB ®_ìZF…¤¢ï~iyŒ@ƒyä´=¸(¤‚Ê(bOƵœ%³N3Ú®9÷d…îÕµ/[b›.ô®bòšŸòö9ÆeÞ†#*·Þc‡PȽ ~·ÜT$WØES×'€ÉMNܯGãØÀæ'Júœ†Õ§2´ÈÚ­$‚šÅ7²ù|Q•i4аJ´#Íy;ŸÛ¼É^S‘1¶¥Ë,bŸ§S>ÛsEŠ8œÖSBeøoë¥p^p+LHÑ=&-U/å&sò6ôx·a¤Þ £rêVËíÁÄJitâyë8DƳOWÀÇC0í"¬ò&Oðcìt¦;¤Í&„:M9„y3Ho2Ûç6!ãÆWå—€…:ߺ´„+þ;XÛob3çØé“ç£ÑL6e¿/~(”Z>T¢u¿çVµ—Ý]âÀ$ƒ!7W3f&զ ªä¬ù yÆ‚Sì×[ÖT¯ê°èï õäYòí &¶³[ydóY:Ž­pýd?§#¨­ö3чêÛÏ8Õe?Óˆ˜î•ŠÜà¶ô<óH÷T;°×d¦ËÂŒ^7IÁ@d}. 0PÝÏÖuâÐa÷…,¬ù²†ð¾´’¯†ðÜ SÑ AµB¬­[p´ô«2 ‡²ºè¾dezfq_rfÀÚ­_ P" üìhÅQ],_N›÷)5\åHÐÐÏÁTÕ’›ycµŠ˜R ÚÖ”£âà´ógŽ~­×¬‰ŸM¨Ù&™¿lŠÝŽš¥{ jȶsrÈme³Ÿ6ØTVÆ×:—ÓfZÕηœ3Šõ®´þ4ß‘Ò3Ç—Øâlb¶.–™³ò`Ƅ캷̠&sE9.º¸nfv䚸ÂXÌ¢QÐ ÏáÔrƒd,Sút?þê%ïNxÜ‹lp ít³²ñC\îjx“þ=´½ý¹Ý6àé¨!Øu“q›Î«kþv ªË“¿ýà0 ´‘ÁÁbQpEz“`Ñ{0Mîý”‘ë‰ÂÁÚ÷ïaÊc ¿ºt÷9™ †¨·Ü‡*â¹·ÏâÕ†!ð°UµI<Æ’ aª ÿ×ÏÌq7ÎxÓlZuNÐnæš½çh.£ì–úèò†œòî)%ÁƒQGÚEb6:ÄnÇg/.úl‘Vm3¹‰òñX¸ªë0ƒ„îö„ïHì\ª•ô/èx§MfÈnkq9ˆØMqsëèíZ¨ŽwÈPrܨ®ÄäkâoXg6»HEÙfòäxýæj®»ûçåñ÷ËãMsÀïðÑI¯É|þ×›‹?àJ.îÞ>\ìåú|!v¿¤Ñ˜ÜI4”Þ½‡7x‰Åüâîâ›C‘f€—8Æ#ÓOÒ¼]v¶ü|¯)üay|·<~5Ÿ(e~û§åqù¡^Ì"vy¾šŸ›” Â\>Ù%ÍÖ- Hj±Ìíô×/”h&óJ!$ü EĽí™LrìB13ØçRµéÌy„j<š7£UÅý·SªìE¨ká>ËÇñ—õj‡qúñÀ“îM?ÿf·ô$þoJYçõáö©¢„z b™o+q¬")„Æ€nݹ<'¼`„£tñÓ²ÿýœ.ĉÖs]CÕš‹ù¸¨è”~a @ö+]ðÿƒŽµzƒ£€Yÿ«1fé”`XýKºÏëñ3û ­ÝrÓ¾ü^î©dçÎôt˜nD¹6§öµó[[ÎSìþ¥§ö¯µŽ÷ehñÄò ”`Û %:M³þã—e$®Y±g¢°œ«ï{É Û饛 ËC³rTSÊ_¥Ò»© éq+èwï,ÿ±–*†yèS¦¢xøÄ,† û…J‚±­.îdÖ£‹ü\7EMc§”ÞÏK¿šy±£ ;LµHyg:›]ŽçÇÙÿÃÅ_îIendstream endobj 1311 0 obj <> stream xœÝ]K$·‘¾÷¯¨›«µª4ßßl`wÅb©ðaàÃ~¹ûû7Î,Þ”f|1â ”vnáFÊÃç§ÃŸŸîĹòüðÏ» çðýÞI-à1yÐÊÚÅÚÃùNzå/ŠäùÊ0 Œãð×€D1©-ˆ$?e˜¿$wRjР tÎ-†kx^uuoŸzn8vŸjÊoËzhx÷¬}H•óù#Öj¼NÞŸz„Jç æ`k¬‡Çî¢?ø|°3(RB­ûÃãùîøîí—§_ß>ß?þt÷ïwßݽ9¨Eïä‹Å8 ú—rõáN0¡©Ú0µsp@×Kÿ½ÏOÀOpœ¡†à¡E ÛÇЊ*+¨ò\E)¦5^+ 5¢J9«òW 5(Ç8¨Ù<²Ò’ùŠønÞDA 0Õð874EÅ}þåӻϸ‚U…çÀúñ¿ïŽO>>¡øw€x~÷üËÛwp©Ùb5Ìâ€ÏE©t 3УòcQ ¶Aˆ$}þ9JÙÁKˆ0?yü€:¢|Sö¯OŸ>DxXÚq$ŽÖ楬@¡-èõ*þBcźŸ£È*ÎZ¹¸î‚¨ v8Â;¾L.V³ÚBçµ.8C¨² m¬Ö^aÕͨ^F‘nêVe)ªš£^a5¬áåÚ~°¹g2÷áÝÂŒçõ ž0\rU*OÎ:D8O‰ÎQ¯! ]š¯ˆÊQiäbåšBÛˆæ¨W…„íœ5¢J9™'5:G½‚(LRµ\õ¢ZŠðölLtŽzQ-ï)Q!ãÇØõsŒ†Ûðžo¬jŽz…ÍF,J[j³î q»üúŒs£wtyŒ™(šÊ0V4=”>J1;òeÐCéCcFSÐCiãcESPm^cÓ¦ PdÌÀĄфŠ`òÞÄ Í@ ÈY˜pÎMA Èk 3¥IMA°ŽS,¼šb@ ‡qcb×jôE;¶jŠA5Ð…ŸÐ™‚ð‹uq‰3R4"=QÍMA HCOd~RES(2¿‹LMA ÈBO3ES(‚õÚâÜÄ´)AOTvÂh Ez"›)š‚ê:cÜ]§ ¢H3…]{¢é2ª®V ËÑñ2Š„Ç‰ª)Š„£±ª9ŠÄÚ±ª9ŠDÛqµÏQ$LŽYÍQ$PŽYÍQ$TŽYÍQ$XNTMQ$\ŽUÍQ$`ŽëjŽª±nHjª±w¬h ªashÛDç˜ÒEBçXÕE‚çXÕEÂ縪æ(@Ǭæ(BǪæ(DÇÎQ$ŒŽYÍQ$ŽUÍQä•’ËGÀм£ ‹p€ªp¦jŠªak¢jŽªakRWsTËVsT€UsÔÎLCM­>\0k^7Vݦð,&sÒ¢Ài NŠH÷øDä…sR°±á}œ |†ý& Ò…­Õ²,IÌ,÷8 *ÄóVÎjš±½ŠÐð·*È·Õ´"I̲‚̼ì-¦eQX' +¢Ó¾RÓ‚ÛR9y³ì™H$Ç1B°ÂypþZY·×Æû÷¸³Éᦵ‚ÐÆ/‚h(÷± |"K`Põ‡ªÀ‡µˆxÕ‘IdD&l¬ˆnûJM nóÐn/»žÏD¢Âž&˜±Jœ’& \ó²O:ÞCÁ^Ò³Eª†|ËÀ'²ÄËEŠ‚\9¹ˆZ}™DAd’IÁڊ趯Ô4ê6ºé>KÀ½ŠÛòܲnS÷Õ¶ŠˆÌ«†|˨¶iœ&ðjœÖ|Ié¾W‰eѰ¶c帯ϸàºÔ¯‰uE’¸|÷P¸—Ó Å:Í䂟3BÁ’çâYC¹/ÖeIæ–5dj]fQ‰eѰ¶#ºî«5îÇpHÖŽ“ø]$1ü*S WçTå´H‰ßŠÁ° –øÛHŠßù¶Æï"‰Ñ·(HѹHÉñ»(ˆÌ:kX[÷µš¶o™äÝ/ðVT"ìZ‚fQwð@Ó“p ñÔÙ°¿+üÀ!þ2˜„_`ø®?œ€­öÒNŠA´—‚ü¤°QÃ2ëNõòT@7ðVvøÇÚ-©à²? b]pÜu¦ëOyÚÉ,R)-·¿èCX¢%m¡Ü`xw®ñûßÝ`¢>RJ]Örí¦ÜøgÐ7ÁyB~I”#/jÁ™b,¯Ê“.QÎ?•_0< ,?l΃&S¬kÝ}ÊÕF«Ou+) ƒÐ š&~u@ì(Üè1>Cyü¯;\Š[˜‹Ñ&lÌ‚µ>”¥aÀá6Tîã7oŽúÞX£˜8š ñÄaþ'L!JA«¦Òý„¼Þ¡3’—J 潞§ Ÿ( \J¸Ä0§*R^/íú±„Õ]¬è*]e¤`ÛÅš®^Rš^_&Ñ î…šAQ¡>Kµ”í›É“Ýp)Š=\ ž¶”\ †‹YI $6ÉY üž'ÏoÔ¶¼äÅË!–w뇇zYm[}×êRëËÖÉ«KT‹kížv[v3}Þ.]ž¡ÂP‚âé_ˆpb®Âþ¨7Çÿ¸?aøöšÿzb ¾’öøñžÁ‚UÏã?P¬-,¦Äñ3¢™ÑàÕ'¨i|Qj˜YÀ¶^þz¸À¯yòø@T¼­ˆ3\2 pÜßä™ ÅàBÂSN‰L5’>gn?FzÎZâ'‚ø5[ãV–ÿ‚×0rJ­Ž_"„YèÂï)BœÐ! ¦;Æ w|ä†YfhMQíÔÌTóÐX)æçßh…<¾»·)%Ýñ·¨ƒyDZüþ{ÉVÞ0+‡a–Åæ*“s e,ÅH!”>¾{€b¤àL( Žg¿ t)( Þjè¼@°ˆ#Bj¯°fáA/˜¥oÚ,™a¥Çsño§a•¤K¬ã·÷Æa4µ«Ô¼S«ö—j[A¤ÈU&–üêàš <ªa:…ž/—Ô7?×&Ói‚A iUéI Ï&—&ˆ( ̉aÖt‚hªµæÑæ'Rm7¤DÁ¨ˆ¶†°Y“ÊJ5Âßî”#Œ<.÷'/`Uõ?Á5Þ ¾ªª3>Å™ÐrNßfÛ1RÀ$£ÆÔñŸ L0 ë´\¿ŽC]Ó¦ú#)„6ÛOQ‹þøkh«ÒùK%^júÔKôÑÄÐsy¡A…ú„93ã/+œBþ7À·fs?\0}@»4×oïOg@º:éëÏq+¥JïýÛ 5@$7Ë¢ÔÉžÝi4Ën¦„Ÿ‰ŸIψÜWÖÔÖªW•Wѱ3$ê¡3à,Hî°ÝÖ‡-=i 'W*è£JÞ-þb×yŠmøË OúW›ª0Æ®‚ñ)š¶ Àã’á 9 AêÕïõ.4™ËGLï]Ï»[ú”g¨/–o¼#¯÷½-ð_h‡.÷ÕÒÝ@qè †/ –(¬ «Ñ¯êNSáK_Ýd¼¿L60”Îxxgˆç=ÓRx*]ì©F–M¢½ëhò¢ø: Bg§ÃÓ—(6ŠwÂàp&FÊ~_{í4ßÖrât€K¦è|À ,¬¤S{$^z¦•EúK•’Ë·õò]¹ìN?$¾„‚ùP*¯[ ŠšþC”‚1«vBü¿þHÔ·–Œ\H·680߬‡ö@¬üÔ³2UÎeƒaؼüo÷'˜#pæ4®>â7²«/=Ep>6æS5æÃm½÷·n \Gg6afºê’ÁÓøÉÆ âUk­ïÃdne¬¡[—ËÏõò—îåÛZïŠô¢ç€L×seŒXêÀ„JÂÚV}Pø¶¦õ_øÂ"Ap*¿Hs ‰‡4Ý-À­ _þa ðC¾ö°Ž—¿uwV+ nèáb¬(lQän¨Hâñ\?Æ(f!¸]ÃM ËÖs-LlV P¸2žbRa’l©É¦ÔdËdø‘ìqÙÑ\î¤1ßé‡sÔ΅ϵС¹fÉ3‘x7ãHcÖ6,€Â˜g¢'cèæݤK÷ÍHܱv®©°cÐZ ×·=ï30ô‡-¹s×€ÖÈÖ¤¼geÐíÔïó™‚y<,ÉÏaÇsõY•dí *9M8U=sŸavc©Ï²D ³K h%WølKîÜ5 5²5©ë³Û©ßÙÏ`¼Çýa¤Ÿ)áC£¯ý¬HJQ“§í¨è™û CD%>ËÉ4~¸#´’kúنܹk@kdkR¿ŸÝLý>Ÿ =TSŸ ípŽM|V%Y»ÐÐ÷=åTõÌ}†Û,5§>ËyG h%WølKîÜ5 5²5©ë³Û©ßé3Ìg"h< 9O8gURʃy?îx&œŠž©Ï¸wacrõY‘à$Ü)Z@+¹Ægrç®#“ú>»™ú}>ãÎ…ô&ÕgSî8Ϫ$kç–Û’Ž×UÏÜgùáê³¢îåþØ|î‘ëÐÒíúãvêwÆ*/Mð6n°1m' Q{’< ,cò8mýόìCÏDOÆLç„0S‡ŽO¦„Ü…Ìý­$Ïý_ª6ÜÎ]þ­­EýPu3õ;§„† jÕe FUŒèÕeU’µ+aÂÆ¼Ê©ê™»,M«Ë²ÀÁè'$ÑßJ®qٖ۹˿µ±µ¨?#¼™ú½+¯´"¨½,¯j/+’ÒDòÊ¢6£¢gî²4ÿ«.ËÏä"-ÑßJ®êenç.ÿÖÆÖ¢ ¯[©ß;¹HA¯¸¬½â²*ÉÚKð,œªž¹ËÒô¯º, ð# D+¹Æe[nç.ÿÖÆÖ¢ s‹[©ßÙ˘ga*V{&*d«XV$¥‰`¾Cµ¬‹ž©Ëò쯸¬¼Ò1tÖßJ®êenç.ÿÖÆÖ¢~/»™ú½Lñpš˜ô2é-F¤—Ii" V°nÕŒŠž¹ËÒ|ªº, <ŒލoWõ± ³s}ÇÂÖž~»™ú—¤Üì7R> ðŒ9 ¸a?hNøø¨ ûëÒ¶Ïœ3~À3…øMcï/ìÚ3›œëÔNÜiçÍàe1ÔÕô½U1Ü=x£Œšæ¨t4Yˆ1§9(L¾äÎç’g¯øñÀ±½uϧ’‡ p(Ùá!È ¥9*ÿµJ3LJ~!¦•4G…ä7e)MA)õ…𵥍”ú‚ÍÚÒ”_L7¥$rô¹('™‚B’ ‰‡EÆ”v B*…b¢jŽJù*ôĺ&åª`³f¹rUXœ-Œ)MA)S…˜5˨©Âàà0æ4¥<SJSPH-Áð(ÒDÓ•þŸ >iásþ—Ò/vÖÂw jL¹øm„”Á÷à Gj¦˜,/†$±røù5¯¡ž)¦Æ·aíÌ05ºéLA5(MA%Híš@j\j™ajT5Õ˜6ä3Ôˆ6¦3ÃÔØ1Ô3ÕÀ82kŠ©aqÌg *‘lHg©qlÌf ªQlHg†©1lÌg ªlÈg†)ñkLg†©Ñk¬g ª±kdÖS#×ÏT÷àä/.ý¸õ‚Á›%©µ‹ÃwƒÐ¶Ó1ƒ³m“—E"ápy%yt=O‡{:õŠg'sYŽ+tŽºž(n™7~]¡½$ãy…;ªÐ9èjž!£>¾O¤<ûYÛãjuX£;P×3Ťíøº¾W£y…>¬Ñ)è_Ÿ‹OšZ!i.·ÎÅ 1I»:þ±§g$ *f„kOýÑ£oá =M!¿!»XnW‡éè!,Bûä(ÕBá‹ñ,s¶˜ÛÍY¾pâvpbý)24L­޳R†ôœtÖ"x'+E<“Y¤›¬HÐ1ÝÐÆÿ’ѧ& ¸7/h±Bâ‰Y̸RÎë­sœpw¿ãnçëÍÀŠmB5ÃŒÀüþ6G†Cæ-f¯ñ×öÈpÔCª}ËÍb äòrësþø†æ•Yk§ÃÄ—ØòaþK“¤<“®N¯m&ÖiÔ ªIj‰Ð©%¬‚v›Ä?ˆ+_y«Ñ;˜E ŽñÁÌT|y”èfº”äcÔÞ =0AC©>šÒæSŸ 7›œ"pµ˜˜n²œo3½µæþ±“ZqÞ­@NÔ¥d3ï1œ@ˆ!©³uÞ‹·)Â4]”ÃøŸ–ëU@ˆYB„±ët,µ´_sðzJN‘жgçH† BMê^›§Þ§”–ÚãBÁï{°4=ypÌ:¢9¦²eå’ÌHÿU9mendstream endobj 1321 0 obj <> stream xœÝËr%7•µ×|€‹Õ5Ľ@@Å£W±H²g&±=; æë9GRKGj©oßk{HQ³˜v[­Çy?åoNÙÄOþKÿ¿¼>a§oN¾9ááíiúïåõé¯/N>þ›ðþÔOÞ£N/^ŸÄoø)ç|2§ÆÊ‰[yzq}òùîâŒM‚Iéís6i«»Wø¬´Wnw_[Îìs©ùd ßÝÇÌ3Ù~)•›„Ñ»0·’Ò*¿»"#þ‰ÏR1#\¢¼Õ»—aBÃ,3iùø|C>¥c¾ÓHm…¥Û½‹ëk'w·eý×ñ-—¾ú.~RùC8ÛÍNh=ê¸u»7eò¯Î„…gnv—gç×ÖŽ.þ>ÎìŒß}‡:_ð‰í}VºÓtòqõîú Öfž¾%û¿Ãgk•„=ßϸQ7oÉ2i´qO£í$5=Ö«ù%®òåÅNÑ÷ èëâ èé]j¸¬p—3¢‚8=ÇUÜB†‚`Þƒµi ¤]#=kø)Á< I pRJ@'‹x~?qc 2*Ég °;<Ûù|¸s.&­ gìPPØìtv®”¨ÝïÃÍ” ¤'Ää´L‹FÊO+)k+8¼Š£ñCйw XÔ½\~é­¨ø±fB)äÄ€×kŒŽøçãÆQúlh/op@ΑÞw d > ]Ñá}Üžð­ —pFÕç(àZþ‡¹­æÕ‡(a§Z+Ž 0#µ3•ß²»± z°d~{UÞÞ—Çåñ2?Æ-Íd˜äózŸøÄáF[:\LÖ1gæáœÜ¡dvà@çóì_"€8DdO­&-ÅP|Û‡¢çp™àf 3³ZN$!`ìHJ<ÄïŒ2Ï zÓ"]@rDìø‘€®ÖÀž‚¯FHó¶tWí8º6kÔŠC´TCƹª9=Ãøß°D.¼Ž"Y—C¶òš )’çþ>XŽÌ+€„ß›€²3çüØ.ê‘·ÓlŒZq°q‰L!x«!à­òë2Xjà&ÞÓ3°pˆ…³5òçæëÚçá2¶’Y¿¢¤3I$ßC:;¯Í±oÉJ—äÓó¸ªÖ¢Z•°W1j`0‰„À*ôÌ0ê9HÙ""~fÒëgØh4.å$Mt s¼öÌGá{Û!¢"3œÌ¸•ªe <C‡¶ƒŒ‘¾ÿ(2±Ø'#3r¬:º WV€EO­Mª;fh ÞÅ`Ú¶*çCxÌ  Œ^‚_DN úމÊ鸢3µ‘9ò=–‚fà¢V%9a»V¶Ò2‚jUt°ÙæÂáˆâ™—Qf+Ó¡G\˜ˆ@ °†Œ[Ñb^tÛà}‹Fx‰æamÑXD}~|_ï»Á¢s^ÊdÑàÛ,š™æŸÞ¢AP]™¨¾ìÃ'ÈiuÃ…-¿ð¸°üÂÛËüøƒ°üãH?Û‚8X¥Õ€¡_}ö§—0Vôå@âæ¢ ŽÌ#·Tà$nOT Qà¶ûG˜Yz¦*QÖðZصö•È¢‹S/…ºîtõJðSL-…ng uð²ÿŠ‘ _+ú<’ÍTÒ¼I˜®C!¯±Ñku“àv&¦ZæÒÅ…Ayq0xšēMä¥Ñ[·O0xdºº¸¥Œy´ìY'hªáž$ºÍ4ddŒ²ç¡+<Äg …Ú %kPjib~s¸ê aÞñ´€ µb0á0¹Û ŸAŽ}*6Ÿc{D—¯°W­mc±„“€Z§L4š„>¿Í1#ÜL½¯l›Øt÷,/e(ªn3È“—O{B!JY…#bX¶†‘Üx­˜Þe‘|[)‹oúL‰*Yä!œŸ pªÍ©©ÕB’WjE ù Šéâ'?ý|çÎ2¨Â—ÖƒPµ;Ñ-ó뤉™Ö•ÎÒã,[*Gý©½€“þ¦<þ ÓÅ‹î€Ïò#®òÛ‹“¿â1Œ?}sw¢&¦O¿?a§¿;áÜVsªµG-}z / ‚'¿y{ò÷a–¥ÝyN³8+ànr<æYþT¶öª<Þ•c|Þ'Mäv² Êg¨\l9–ì·hYEœ+/tÔ)`u€‰Œ!AŽcÐù! §“Áï®m³Æˆ8l ‘*Òjbö+ÞÆõUàP¢s< âQš™úèºH°k¼ˆéyc+ïóEŸM¨‰»Îù2†Ôæ,¤CHõr‹AØžÈíN¾g!Ì^Å…«ôU¥Žº¾a-VÚOB·ùž< uáÉ: tb"QíCg˜¼ .‘1sÉúlZôµ]F¬é`§—½ £ÝØ)§0鄞=%³‚”K#! dÇÒC9nN$á£9£íÌÅ}À-=‡ š@*©Ö™åX›ëyê„ëC\Þ1ßSÁ P ¦žÐó5 HäJò9œÈ×Ç ±3ºPuH.#>eXo+ ‡“ÊE):Zðè9ßJüÒ 9kF©´oÂk,.º¿a.2?2gaGþB4TTc/$‰ÉžJQ Œqª¥%héâ -m¸•³FE–´tx{QÞþ¦¼ý¬RzAKfÀ%•,¬‚#€JcÞÈüfM%7»œ52Ls†)€QUTÉ.ûø¶ìî:¿í+C‰^Ó&ºF¢d ¨úšë.†\9 €«8 «LV<”‴9CÀ¢q¦µ³qÌÅw´{Ñ«"ÖüMÚomð@ü)ZWn¼Y(pÒÚ_Ä}:0dxì‰0yw 8öj9 ¯Ãžg1L;U×hàÐõ˜!nÎzS%÷oh_X·É+ è ¸G³‚îr,z1°¯ KWïß”á?ßÃõçó~Ï|Î5J”laܾ-Æíuy{Y_4†p6×\'Ôä1JV3ݯq·°¢[Fº_K Š9×Ys×J®3àÕù^ƒö|RÔ²´‰ð¬9ƒ$oœAØé89>R…)Eüý1Ñ´Ð \½ôóZtÏpGt£ûÑ¢û¦<Þt_=%ºsðgº1ªç?ÝZðÉÂwctãLm×y¥s,±MH$íÃú…8|ftrÚÓ®ˆA<„ñºã™E˜1€’¹ƒ«" Úê™°òš Ÿ‰Új"û’?Äj¡&ø\vãñìYØÖ20._‹Ã*¾–ß¾#ßQ½øQÁÖ Ç0o c%C@+FîÚÌCxü®›cx»?ÇÀ-[™ÝFWÏš_Ö2…ôý¬íZwz6:‘Ì™xwœÓù‹]¡€>˜Œš¤qu¦*œ˜d`‰c"꺼½l¡C Yjoš”J,3ÈÐùE+Ûí) ¸sÕÙßMy¼-û»:tì‘ý}qF8hjIn!À™DóúšHx"Ëߣ¯ƒÁí½¼âñŠâÌ‹:ÏDù;jÚE¹X¯vö Õ$Û”/Vˆç©Ð 1M¿4åäåØ6àû±þhµýx¬gµ}<ÖAñØ\ƒvåÍ$jXèVKàh˜z´âÜh2´uÍs} Z½¦WÆú;žGÏN˜ÜPRÞúô³+‚àL%.ÀzÉ~ä¨Tx?|Y|½ý2éj°…‹”]@ÞœLëÒDȯVµÍY˜•K‹Ôbªc ,¶¨›ðpkÈuÓÑè‡Y–‘]em'²¾£DñÑ>…å`¨W~]¡¾/ ‹Ô1vÙŒ]WX­¹q†¾¹¡ø0Z•Í Þ±÷qô@AËɹž~Þk?w\Vk©¬ùnÏû u{áÑõб×~x tì÷ùÀÅ—¾5ˆ@ÔÄ›¢<È€†É`}›}ßÖÕ&„Ù^ÖB¬ßIÚEr §àìð¬ƽÁŒÙž9‹.᫸ïë…Æ•iõ)ü$¬ë9E’ÃÔv_¦ ¥û@n² •N^ÅåcveÖBqÓÌm«{‹øuéJP!Îaؘ ë)[P©“LB‹’Ën±gY­ <ãF6×wƈ•Ÿ³0=ÚçnÍ\F'¥U̱œw+ Řë†JI‡‰%§$ûvCðtk%nÍH‘ÜÇ0ÉÔ¶_*ZîÇ…;ÞHZÃE·.‰à"3%лLزØF{ÝÉe(ÜÚâ¾/ý¾¼%/zÂý‰þ«"Ñ—•LÑä –- ¥SÂëÉëzøÖ–,à\®ÈæF’ä¬-|4ø"·å6:lN¼opf&Ql۬ʉ®S,2à¸î"Ý1Ö+¢‹°4‡9HmIÀ’¯b;C¦ªû9|V-LÃÌôh=2lDãÛ´AØŠ­ñ˜˜<#)ì€j§Gù•«´ºQÕëÙ7•vS!ïíÁ H™¦±æùSý¡Ñ¢Þ}´Žìè”â!5‡Ä7à—+í¦ßx6câ0¦´š˜j;0?íTUu””½*¬Ô6I‘å(¨›ß íßÇm8ý¤‚Ï Ç¾î@†€‡þ`¢Pñ‰“`j …¿½«ž¸C,ÒQ·C,ˆ—K²êùbÕ6»±dO.ªJÞŽI,#Ù}zæøìËWzè¹O¶íMU…C0­¬žÏåõñ½%¨Ëc£_ÛŠ‹€èÚ˜ÉC²ðêQT‘j{ú=¨Øˆár¾ãðTåà4zhóÔ&„…¢6ûL+ùŠ;.2S%ÎBs/ v”.B?ÆÝÑÐÉR`¾–Ê`8¤çÓÁ¿l¿l%7oN ìM@a›8ÛO …0vdŸa›pš“5Š×¤m­\7åñ²ì¿ŒÝ@ªP«Ûë« e5ÿ÷}UÍìõp;IïXÖr?j©uaZÑVoèl?Ðí–-°VÆ[ԭͯ…×kÞ8qºW f¿<ºiO2`Æ£‘^+ÿ°)ó8å¿.æ-¶Ó/æ­Ã8ݰÛù*Y±êŠ\$Nº!­:)³°ûR@"¢M·­cÔ€?Ø[©]“\ó³êÞmq ƒ ÂtS$4¶ìL¥–Æx ·† fç©‹B'Ñ+Ü|[Gû¤ p€ÅÃÂÃâé~ßc9ÂI–©Èueo°ŸÏûg|ËI‘×ë܆„!Ç%&Þ «ÙLðk÷á"){$åbØ„ßæz~X]×¾¤ÊŽÓzA>|)Ð57b™0²8ºK­u@ žZ<.*¢žÅ:Ø„Ç#­—gºèÑxZ/à9]nx[X/ÍìM~“Ôl‰L.„p²Ô -niè:¼£bÃQÿu¿Ï¡I}žƒââÒ`S޵Ä]ÜpìW<è“…™‘nDÄ~a†µ¥oãŸË ޹G3q#Ÿ?–Ò®×Õ<È•®üTªQÔïU×òqÊ-@[/ê§ÂkÇ;sh_ê}èÆ2†ª€n'óá”岊BX?)¯*»ì>¢€5æÚ]<£R:7 ;*÷u ‡I.‰-H kg¬6yÝZÖ‡!œõÚæ£k¥Ž !j& ­LN ã;u vϸ{ˆ“X;'•…ÉïŒn¢>%£6½ÖÏ™§3G¤`‘qÃnŸQ9YSý#,þ´Ú_¶¥›òŸp¡ˆ—Q}”ô¬Ï†Skiu¾¹ ÁêFý/í l ¶R oX/×¹)|µíª½•`Ë¢F 9q>ßÙ©¬OÞ…;FÎT#  LÛ°üFý§E©€µØçÛØC_/Épñ¼rKÖ/ý²µâ ¢C»–‚%×›ÔÒ%17wxKè\£Ô¨¥koQfP9?ª¨íتղöýHÇÂ"Év…´C+å?µªF¨Z©7(Á‘ÒäÚÂç¯è9]âQ?D:8/¯°‡aÁ€T±¡X×° ;fÌo‰„0¯ë-Õ8íkÊ:RR M?`D¯ñ*ñ°d\uš°½ÕX£Ñî6 ` ¦ößã}ëp<Â7ÂÐ -gXÝã\‹ì|,lcØñcFuË-·èx ñ@15²/ÇKГˆP76ˆóQm4(@|y—dË»ñÂN–í²x·~k$~hùî‹/úvz?äQ•Þ ,üp…Ì–²®¹”(B“SÝ´–$ …É~2CoÓt±Çý,K,ÙJåÉp I•Äkš… n&^E¶­ÒdÖ‚C‘Êx&Û¨N”b Nð\ÎÖÁ¾£´¢»#p!ÁðÚøÙr™B®;%YÕWJ]+mʸàóp÷l²ßÀ+½÷µŠ}ÀDÉž°Ñc‰qÀÛƒÂxѳã!§ò nu5©hðÞú&çYôi|¼ëjäïš±›¶z.<ˆ·Z° ¸•:#àÃéȧ „nÇç‘yõNO‚ÔOÑ“ð|-" ¡¦àÆ'ñ‘é-v0`Ý“c>}¹ÂÓ¶z3zŠV[E­G\Ú*z[Þþ¯ª„é Œ©±¹_ù>º¯qÄæçAÖ ¦{þ4Àé¦êÞJ£TÛ®FM×Nl¨¯ç®› ƒ–”ÒÍ[߆’×áîxß™+£)(‡Âcôw‚6F=B髨zYe¸à¦šƒ˜ÃÑ^[/=°5rYbP5Ïftp'•;=Gòä*±‘)ç-Þ[¾jé¯'ÿbaÐendstream endobj 1330 0 obj <> stream xœÝ}I—œ¹à=ßüˆ¼UÊã s_ú6ÝÏížy=ÓoJš×‡²ÚJ·R²%UÙ5¿~Áo‰/r©>èÕA‘( ;2þzmNöÚàôï뻫¿^ÙTÒ©¦ëPm9Åkb¹¶ÕºSqןß^ÿûõÇ+s*Æäb¯ß]ùbì©”ëM>Õr}wås…Oþ:ø¾ó!þ”PêÉ”€O9"Äâ¿ ’ðÿ¥ÓÉÚqíK¹Í€\O Ñj§Α"¢Ûþ”pŽä•TÛwÜÉôYáÛÞ!ÄœLèxÊø­˜ñßñ'ñß±'‡ÈDw ¾Ab=E„„ŠóÖH"üdH8EÏÓDD9xF9…“_ŒÉ§û4Î1®"¤œÌÀ Žæ”û—r<=âÙ ùdR§¡XÞ>Ó¾UN© v¿a hâ‚?E¤Њ—ÆL@+uHµ'›:chk:5Ö…S[»˜p²ø\è;ŧI€#fçOùó—†Mñî”› ä6ŒK°ˆ)@uH9Ù±¼lr€ t”a“‘3I®C€WmŒ?ÙNH`—}Ob\`“kƒÀØ>q (¥ÑDÜ5}}m»>qí,&U>…Ú•Ê6ªÍˆiƒô!®œr½CHò¼-£gA©ŸWBqÓÈTP"4ÂD)FMS-æ”’¦»‚àØª÷¦øþ´µd"œ÷¸‚ðU³¡V×w‹9UA¶BTÜ GÍq€”.Ç,ÁX° Jp‚ql W0>ôiXƒLZHƒu V r0°9 Y@:ù¢´!¤&Ǭ1u¯J«’º³æ¤4cÆÊ ìq(JâúV°’°°ÊÄ$[Lísß#& ±ãÇf ?McJǘ¬›B i6’‰Qv`µ€pE¼†=H"+N6 ž¬8Ùu€´Ý¶öÐ Ã; œJPþ °ÙI¹` Q•ˆïßbW2PÉ,‘7H$éÏŒPìPëAIcGv׊¶«vR 4‚Ü…ÂòVQØAokç'0Àá·`,mFpÍ”F˜¯Ò<¶¯R`’‚zxùN…¯ÍÜFØfâ @<š ¦³Æ—æ#H` ±81Hi%Hî/U–RŸºÑéþ¦AbS¬ˆÂé⑈*² $ÃÄ ôÞ&­{Éúnudˆ‹Hœš%ù¤—ÉAs¯P->ñ˜Ž.`Ç{E$Á¼$D5ŒA¦ªIÝ#¨ÍK ÇÖé NàÌÄ„„.!jF%C¢š˜™@¸‚æ7ÆW!k™H`õê$7Ù´ÀEÉV6U¬R—¿l+ÏC2š]í¶Vä8Á´;$ëv0U­Ü„÷Zg2¬'µÊ`—jÔª‡± É1©'†M!iÆÐŠ,©y‹n¬6„+%e-0º™ìI nœ¶9Œ%±†ÌRkIBËc@ «Õæ ƒ˜L ÓÍ$†Dd&É’bØä¢¶¶wæÉ"gØ7›µÕΰ·)(ÃŽq'™²ý™¨&çAFKÕãÇ\µ“ÉìÐî‘Ê 9h_•ÁòÓ·ÈŸe4â“Þeh’ò‹t‡ÜkwÍ”ÕÞ5{1¤äQܪvÒb’Ég—)âgWŸÁ ö¨ŒÃ :ï«2 Uœ+â’=²óäPt‚ r(‚ÉÎaÜ<‚œì,9eg(åX !äP8…jFA…\¢x•©1¹y8ºkq8ð¡ q`Ìqä ŠcM!œÃѱ7²Žý£¨vl1¾ƒ Vq=¸ÉA¶0œãp‘ ‰ÕEn$žÑ’˜_ÄOòQÉDŒ9»I—D´A’ÑIdD«$Ùéj'Ùè¥dL¢º’U‰zKæ%&@’31’À‰)‘$OÌ$‚b’$YTc(ŸÓ6ưù“¼TL¤ä®lE%½;+)°ØbI“Å^K*-6³m1ûœŽ‹gà„]œ‡äôâ`$ï'Ä¥ñSR=_&†¡vr—”OHéK±ßÑjB6|k6ˆÅ†ÿHènœ\4b3¢âÅ’šO°[*h4I0¤ È ¢AÐûJàÚŠM@;@’TôÒS„ÛTJ¢ €¸áð€¦$#Ž“PkŒápL&‘ˆM’¨N‘Èñ•àP(’R¨– Sv†ãPÙ< Uy%šHÄ+l’¨X8)‘³p[¢k‘‰ÀEj$JÉ’HþÇß ´@* S%. d„ äØb&¦%ÝBè'm°`©jÓÆzÏ­¦QÖ.u³`šcÖji¿Ik®6SQ‡´Û" £¶ÖVòl$,ìlIÚXØG3kµùAƒd˜NÏJ¡ ›…}ŒE?=¦H ùS ÚˆZÔg« ­.ú¨1bÈõÀn°-ð*8mÔ-ŠfÐV÷Ç$í,ðÜ c3ÁâPñŒ<ŒE•²t”’Ÿ² ^NÌ ú2 ¾,T­{|Y—ö‰,"yhò›6ò:ì[-h•™Èý¢´‘Æ’‹¶Ç”¨Ý¸…ÿS‹võ6¹9°Àý”uÀ`Gä¢)¨@ÈTâ²)²¢Ð!UG/6µŒL88Ý ?A6®Q „î×9˜B5£Œ.R¼#(Sc(pSóPp§Öêñß@‡CÄ2‡‘ƒ*Ž4åÊæpÀ:öƒÚ±Çø6Pl<8Åá³pS"lá¸Dá"¨‹àH,/Â%ñ¾ ä"¤’7ˆ Kn!Â.ù‡èƒä(¢3’Lj^I¢#ºÇ¹¨§¤K¢Â’R‰šKÚ%¦@R31’¾‰I‘OÌŽ¤bš$UÔcz:)&nŒ±#ÁL³©äÄU¬©ä¶bq%ÿ«,9²XnÉ£Ù¸Kª-ö_Òqq’²³‘¬^ÜŒdþ⊤:ÀÞJ âÏ¤È ª'… úOHÅ [¸ØHõ [dYܰäá Ö =§ªˆ3™Ó~ªœ8k¹&CÕg'ÚTq6q¡„ª4 ®VõJŽ颤žª=¶8Hý#‡Ÿ ½hä “!!¥Â’ïUíÉa8§\Éîõ+›³V=nË=½Í4 H×¢úBä‘Tšpñ½Q‰ðõ¶Ê·:MÔŸd–èö 7n*ÿyP×<ퟺILh=HRžøà½TY‰W¾m¦’¥‡ÍÄsF‡«e],<˜*’c’F‘KX]º<ŠoÕèQ ¦R,x .V ƒ åýá’.È—×úÀ|Ô¹2lÅ”rñD'Nª0ÿÖÊ@9‰r®Scâµ’Øe.XQ½Û[6“T‡MfÓEUs`5Ù®¬Ã&çEñݱØn蹈/¥ÙB?86“r^ õF>Sð…­?Ÿ;€Pe‰Ï&€ 7_€]¢‚Ÿp8‘n>9V;‘F‘ËZtšZM;È.` Èxñ¡ Xä ×nÐŽ­}àYRÈ9‚?fÛý'|FD.Öþ‘’F‹N»jhfoAÐiò÷'QhÆ1@tÐà1 :®€@«Q{ „ŠO<²'ê‚Ê“®ráß~ „<2°¡` uªö€…*„P”CA—èfj ocðÆZ|(N„9’4q´9èæ€tì ­cÿ(®¥ýå¸w0€ccá‡Ïƒ‹bNs.Ò ¡ºHŒ„ó"TãX›o}³pŽãq`9@ggì¬ãžueœÕ³>ó|Ö¹qæÏz9úXuGï«÷è/` ZŒ$ŒÜ¦à8‰Ûheàv®l´DHׄãŽÃæot_°‰lFG[ÚÑéÁÖxtƒ°Å#lÕ¥©„ì¾4°g¶v£s…Ìèn!ÄÅñRR?O&5†¡u\Š(å ñšRÒÏ*eñ¾R-åñâRbOÏU ¤P#ƒÔr$¨zR’à„ËF¿HeIb©>I$*‰•¤ŠÅá”hž\cecŽÛd)‰íÿa …& "…n 4eo$•ý“€•·XbZႼÂ)‰…›? Ç%Æ©à0\‡u‘-‰åU™+T!U劸I¤/M#.é­õˆ6­juˆ„݇¡1ˆRÖBŠhä¸} •.âd¶*½H¦#Ò]€Œž¬¦ßí k|³‘ìà°+æ!+[Ñê%mo"Z½aàûKæÙOc0º”‚YŒB8wû7i6²ÍCýUÝŽF^·¤pÁ¬jbâ’U+æÄõ\… >‰RjE!€é¹ÊÝäV’˜öâ@$Óï¨X0½©bµ¡×³©Œ+·ˆöU˜®F=BÐh§Y¢4qòJ`½n-‹5Ky–0®£'‡¨B{”u@Š´±õÝ© ;>묠,ܬÕw¹‚4ù‰›J‹âV2Æð~Q©Ë€|%¯˜zšº X+«e'¡Õâ*V¯t­Ù6õJ.9•cqh™ú †UI;@JwRéB]áî­^éBƒ”µf%´?ܱÔ+]d€T©‹tW•º ì2m©Ô…&‰«V½Ôeªô1õRZ$ní¥.´?n*cY°ÊÄ©ÀKKÕF•ž+ùÒˆµQíçÀ¶RN œ4®õR—Á¼L›å„kNHKÑgH&÷ûöJm‰ªtá¶QE–*]¸µ\×ê•.ƒ±pPþ ‘k™Té2Øjà”_KÄ|Ué"Q•.œ¼l¯t0Vij˜FÁ³Ê'\‘š¨¨Ðe îÐîÒ E•.ñ¤HÏw/v!„{¾{±Ë„ÌE)*v5åñ*Ji v¨ØeBäJ\¯v‘ Žx¨Aìt4ˆŠKÁU»PÓèìª]¬{RìRC¨Ø5¦áb×XŠ‹]*v „¹Ú5ˆâj× œ«]cs¸Ú56ª]c¹à5øÀ¯Á+®x vrÅk°œ+^,RðÁ‘‚—È–¤Ý"Rð•‚—È1¼DÔ¥à%ê /Q)x‰ZIÁKTO ^¢žRð –‚+¹Ô»Ä¨†ÇÝNÒ´8—Ûhlàæé[7HH…ô”ÉË­Tï;)õ.±¥Rïs+õ.1ÉRï³-õ.1í\ïëÏ/q\ð"/ñ3Rð_Ä/qWRñ—&/Ñ<.Jˆc”º…8O)mˆƒ•òû`©ˆ›–*Џr®´ wOŘp½fD \Ó‘×}FôÁµ¡¡Pùh1\`¡F0Ä…ª0q1kU’uKÜ5ÆŒvOž‡Ã·±‡x‚„Œ²DŠB•D“B¹Dœ²;•ÊJäÊ›,Á­ðA`æÕ’™Ÿ#f–K¬ÍR1Âq–œ²³t°þÇß\ýî{Ÿêõ»/W°K6T{ý·+wýç«v%òúû?\-»2ýtëš6¥Èµà”poUcz>bŸ3ë¯×ë¯c¨õúë<ñùÕ×°Á<öµEQ€q’Oo®œq­E% ,¡Ã«Óð¿Ÿß›40—«½Aönõ5\H`cokö3ƒû™bæ©p·úÚ4ÕÅßS£82;µ«,4-¨s&Ø\í˯é©Ô(úžõ¿‡H]Ľò BHL¼LoäáH¥•DòAA@8zw6²bYË`CKð4<äýÕ¿ÿæúãžN¸›JE<_ƒxën@¨w¯ò"k‘߉½ì²1Þ2^ y·EÇšÔ5e ô{ºþTK\BØ•ÇëdXáÌ‹hç¢fž@d¹vM³*Œd𠙇í»nbCð° {,^d y óHÞmб&uƒ²3Ì{ª%.cžãi'æy<✘'YÎûÖe<0’i.d^è‘bC¬Ä¼Èò@æ-¼Û¢cMêš²3Ì{ª%.cžíN1÷ª$Í<Èr¶×Ö!™åRÞ™Ö4 yGlàì1=­±|}ùêÙwWx+*ÂV5èÛÏ_;Ô\c³16™¿xƒðŸ¾œäíÇ7<ßÊÙ÷á?½¡5Íu›?žçîÕË/ø?Ú üü]ãøï®ðîìE›1ï³ÿþ0Ú"¸+\ÍäS¸Â(2éxÔ;!÷ÙØhg ùi§Á€nNm£]@²¶QeA?ê™Q£†ËïIP½?jL5zw§:3jÔŸÏÔŒqªãQàv ƒ°ãógüòÂÚ ^ØðDõÕÃQ@µÃNâéŽGÁTûµý/ŽG=b=J]™7Ðll >³æýÕÇ£€êèLu<êTGl[)Çb“ðqwÄ ãQ@5¬ƒNú€êãQ0UÏȰ:Setôî«ãQ8Ui½GSŽz~å±k-Ìt<& ÆG(‚‰\;s?¿ãǃ`"Ÿ v1 t< qÂæÝéŽGÁTøÞ`8œêxLûuœƒ­:S%ߎå°:Seìu:œêxÔséæ8 ðxNÕßç9ÀêxÔsl³>Luì¨sÀÝŽk2ÖXŸÁ§ZB‰àx TÚa‚'qñº5«·×C{±o4ðö¿_C6ãS²—GôìfÌÀ÷5^Kþ“ð2©Ë×2C»ûjÇô÷ë+Á‚G0–<ÂŽ×Ó+“ßqïU“ì n@:nŸFóãuàÑûÌÔµëlI àwÐiù›¡Æ沂Ð&8ðÆ‘'XPÑ÷­’ö^%ÐÜn~7 ±¶‹è¾Fú…‚nðÇï’ô¿_ãý)z­•FPæ.3ðß´Æë«ñíMj™!õ;K£ ¾ÿk2‚ñæf:^ë¼ÿÛ#Èð½eOð !›‡=!;n2ô¿•=‘d-dþ»¯¡ì i¥{B?³2Öè+{Â#KšaAÇl,¿9â&c)Ô HÇM´™p—@˜:62€ìO óÂÒQ“ :æc¦mà@#Gš`AÅl,¿1Ò&cI÷n”=q±½õ*šLq踩ÓÿVö„G°µàäニ²'®âëf2ÇÛW~,A+s"#Iš`¦b6•ßi“¡¤ËQÊ–`Wl.ÖÐÁ¹è9ý­l‰Œ K!3Ðß´†²%ø‚n¦„žê7ÆúßÊ”ðA»O° b6“ßi“‘ÚB˜‰æ¢çBÀ1Ðò./< 3þ>á=®Ù1e‚¤û÷4Ì&ò›"LH¾tx§ ¶=Ä Ì·þÆËHýïaEdÙ™Aþîk +ñoÅŒDºk8®Bö¿‡#Kža¦c2‘ßqÚHòíÐ;Áæ^1$|}r\gíC2Ft3!ðŸ}…aGÚ3@Ö‰!á;›²ý= ‰Œi†“‘üÖHÓFrÐ6 5ÖcÆ|ÜfÚÈŒt•¾/ò²ÒãïÞ²€P&(ðÁ&XÐ0Éo‹°‹Zwð°ÄçÓ¡Þohñù¥°ßð€Ýº¹ Ïþôâ\Y|L¹•.Æ7W7íLA ô!¶ÿuÇãô%;þOœ¿“Ôtqþ’ïÿ‹‘¨¨`è¦ñÙ­­íÉÔ›üì6GØD›`2‡o:ÄÜz×~ dü |-°Œ êêT}´cÿÌ6¨kÛFkÙ1Ôµü UÓÒ€iÜz` þRNê¢íxT:Lÿõ Pþ® Yl`=Mͨ½7 ›µ¾»ºõö„þ]ßê¼øÍ¸È}@6± ó, ïIœq’Kaê­Å6Ã뀿ÄRòöÃÍ?ÃÖs©ÑÞüßg·øÖ¨W¾y÷ Ÿö°7?!8f|&âæ3Ž6)'Þ"S@"쌭ãã?Ú¾~ÝÚ’'ÄÔZ_:2ÕÆ›¿ÁdÎx$y‹µ¨¾W‹h±àã†üÜdÕ—ºµ"’´'úšK Ín:¿#O´ŸÒÜoq=äï}Žlë’.¡÷ÍígðyE–á3g5Mfp^ ¥Êaï#+ÐkemXlJÝe ïÄÂ6¾™4D„ûm·ÍÑM"¯´sOQ;Õ´PQÛµƒ™µc­‰g}€â7íD "нùíØÁn¬7A[¤€Ÿ…Âú3*Œ/!¢BàÇššCè×åÇ6à倾’›6´z'ëi£YóøÀ›Õ´ÿˆPüÑ);ùýÅÿ7K˜oçÛ›?Þ 1Ø!> ˜ioô,i΂l(‚?ޝ–û„·i/¸DÇëýW°=í­«¤ƒƒ?>C ¯ñŒwfØ¡ B%ìS;KØÇAØ›]1uAã%Lý U#geF;>sRUq&üé^,§Zê‚ôì`×ÞŽŸÇǯ›_޽y%Ðñ´Ù ä©sV¡Y?¯e1®Å§Z)›ùoÃq}ÁÝ-uu¾Lr¼³¢´Cxë±Ö¢Ý¨rbJŽ´ùЦ‘t <¹G£áªÕÈËèñ&-Õ¶ágËãµÚn)͉¾RâýAÁßvÒ@ô–"ÑP ÷~e“ÛõK‹ ¹Í1¹‚Å«}”’Ý©FNãÿ . ä =šK%ú Õ°áMÖì‡úÍSâS–F<å{µÁ /Œœmž£h\$x·»ˆòˆ:ÀT "É;Ô–¼åš5NIn+öm?Ü`òžÃÊÛ!ûŽm£oñÁCwàg?è›ËÐ>g’wоg¦¡c4Œa„¿/F$¼¯–1%Ný–2 _–vCÌÂo{[æpíSÃ)–¡7ì@Ü´Ff]Ú Þ‘¾6­ÇK¯ ¾õô7hè›m»êïg¥[êü¡'«ìùNŒ§¼Þ½f' ߇Ôú§1$‹lÔßkû€•wÊaL iÒ>=Åkœ̈fHðÙ¦êÛfPë!¿E¹ŸƒÚ½h\m»ØžƒFÅ÷Ýhadþq’—Ûö‹’.n”$”¹3ào·‚+Öä6·9†=t)Âq˧»rßSPˆÑânÿµ#¬—,5’CÄL2háQ2¯åxG-¹Η\½¯`êYôWRã7¦ÉX×ÜhÝîS:-ØîΠв"…û¨í™óªŸ&EñýI9.U½˜0U^ì#NÞŠ?‹XÄ`éâ³þE=¹^ô¿ìÀÕçž Á—éÒ2ÂwžãK·Dnak¨Èr&ˆ'[ƒ¿æ•£_V,KžÉÈ}Âî²ë–E[Ô&Äa1&Á/sÈ„oyîÇ3Ëú(â¡c{U’wãVΰó̯Rnþc³r£?ÿ…wÛµÚîjª í%×n‘¨¶DXnÌYÏÚØUаIº"øµ»ŒŠ±~¯¦´¥ØÑŸ3ž­”¸g<£T+Ñ1+ˆÎ§JȾçïtl'M+~‹þøF>ð­úràLY…¿ÚgKÒåÅ=ÍÖ®¹¡]Ã’0Ž˜¦Jþ ÃÂYö_t›>Ôú¥m“„ݘéÏ ÏàM®ëº”–Ö^­Ókê1¿a1,¸´djû<-Ô~ú)•´/ù†¦Îu©c´ˆâÖ¢˜9sZ…šÑ˜à71ßÀκ̺ÓuÄ×½`v–Â4]š/Ý2ÒMBÚ¨¶?F^Ìn]:3áWÒ…ñXÈ¥%ïO“–”‚çÎáæŸŸa$—´0Û¸Z…)ölò^¸½S~Û+hƒˆ/²$:/ Àä{œR®°ôÌÁ†vÌç½0î/ ¿!zÓÖŒ^:X*"`$lÜÈ";àbÂÀîViþã­~H¾KœmU´ ÓvE¤ ë¹R°>¾Ñgš¬``@@Kž¶‡”ðbòR í:ðP:×e:©Þr³Tkñè–Í…ÜñƒÁfÿˆcáÚ€š`"¶05O•Ô´óq˜úQGJHŒƒ/Ó§mð¥³Xw‘óÃß©Ë$jSƒ?JÞÏJÔT¡Bl3«Â†65!V)zǦUÂ…¬È`¯tº òŒÏgˆ²¦Òšžd¤ñ]à ·ý£Ö' VðÇGŒ='Í&´Î‚Gh ˜ô„?/¨4-8 þ®IyˆLæ1m:ó)*N⮪h#L!qêMÛ“_¥žÐ²u4 ÞF0Í÷Œ/·Ë˜˜Ç‹ŽÌžèxŒ–ñRÆü¡#ËIòï¾O1OèÇm™O!¶vÁoÏ¡…*’þ©o–]°ê¯Š­:«W%8È/Šb•l±_¥öOUÞ¯doîå8^ïe1%=|/E¬0*Ø,6GCÛ{ªÍgKf²sî­×!o`›­ÿ†eYø{Dñl™b×Þ´ ±¿UŽÅ¡¹ì+hütÁ|¼Si®_í®‹H´£b/¢â—N4ÚØ¾ûtI¨³ËhÈô󶯴xÜ7lsÚØÖ^ça8G;÷î%?ü¥4‘¨îû'`>;V޳:Ý+×ø˜WX¦O;y¬’¹=F~釸˜3í0o÷äÞ¤,÷Û¥ö7•·´³ hðz§Ù&Ü&0¾.»TþÏt8-ÇÆgJ^ølzÿ Ë—®”“ñ³öè.,25}Γ/×ÚÕ*ç Á-ÔÑH¿J–>Érø®ù¢Ä¡ë눘.¬¼È7¿ôoÚÝÔôMP’ùt‡Hû¹Ü?cÒW_ŸX`‹~¯ë5FýR_YÙþNëNõGÇÚŠZ:»¶¡Ÿ]w$Þmª>*Z}¶ß/É3PbÙÊEby®Û ³Øíbèë0ø”gÃo¬…”KÃï†_ž+ úüæ•Ni~Œ—×m@I—u¬…U-¦‘Vç*ˆUõÏïðCbrØJSö îkî¿•½Ð‚5h»¡ëMµNŽQÑ©&;ë@—¯«‘Ê.‹88M#TnJ¢ßœ=Á^!åKOrŸ«zø…åü-+gì…Õ›Ed²å0ÁÖnU€{?+i=ãÏB‚œÊÄ•¼6pÙ g5Û=;§F «ð‡Q; }Û—ÏÕïezëSPtäU¬Žá:Õµ)4‚´h¯¡‡ÿDÇRÂ%¿Ðª‰ê+J„›Ú¾ôí±ãìvy¤:#u§N•¶hðqjµÐ§Ä OÔ GvϕБU§qV¢G].A R¡ŠÅV9Q¬¤X#~` Üm'¦#ŠØŒ¶¯œhøUâ_±ù9íWZ¬RóžTíD?ZwÚ¤wĪ#êBÃÔ—Ö;µ:ˆmÁÏ~¿?s2ÀK™1Õóþ1‡Ì]s X?ò¤ÉT!NÈõ5eæZ V‘z­:¿¥Ò Æ=[Œ–Òi™ó°WÛÌ\dâÎá/œ_–þ.êøÕb2Íå­ƒ¬Sü-'ç–í8ìÖ…a޶õž×1.ÌD¿¹ƒ^«Èܛڂà¶öÙV;¡Ü®„:Kë~t Ì9ü-»ït:_\Rçž«ÚÐ;C÷ZW-m3_á¡rPZdKÒüUº†b*#&dÎ ã»m6ÎN²ríÀ&.[`Ö–áŸtò¦>ìd‹è¹,™S(úiöG Y6Xij{,¥û…™ú—>ŸƒÛ—¬Tîó±Åû{©¯–x-ÄǶý On®ËQå`%šO|ÿ0Ÿ½RÄ+ñ…C?õý‚A ^’]¼Wh!Ô‚½ø§ññ߯Ç›þ?&›}–«­¯^ÿíÊ\ÿáÊ;Œ;õsøhE{5 O„о£¸w v‰0Ý‚…)N¡O¯¶k°w£·ãã—ññýøøããO‚=ì´@?ŒoÆÇ?Þ¨ÏÏäófñ ”ÜÏVÒ´ÿïãáP\L‰ëM1JîÕmÔDôÉ€®¨ŽÓ‹ÅÖ·$+-«mgD&l¡<#2²wý!]L¾ãµ³®ýŽâÝ•Å'QÁŠ0äbS€ &œ÷ìPN:ÊJN~?>þ}|Tròu|í^Âᱤ ¡ãAe(Ö­žlJ|«>¯R<ãïç‹Ú^-¸ÝSû³ñeqè:$¾„á!äK«5çºl°ƒPûÜ´¶\rÅ_i8ÐûŠƒ?ÇžrœŒl·7]!¶÷ýÛ€¾ÐÐè0²©`Ó›R™m{µÿ1*ÓÞ°µâk÷Ö—¥]]éˇñµÚÕ L0Òé ¾ºÕ®Ÿ-/:cŒ2 Š>œÞk‘®‡³V{#»>¦q¬uŽøËÚ&ïÙ9‚?+ïl1‹hVë!²­wîio5T÷‹`Û½@ßÀZ*Yl'õ¿ž’ᑾ+3”Œ!W2|6ºPôò?/ײMµÀ´`Dr}óíäYEÉs×àî\üZù%®àO.Œbâ2ìÖ>`·A wÛÝZ›î{ÏcïÎÖž"ϵNù—?T sÐûS®s—éâh W4á°qP|$ÌXM8VOµÇ‹SRA[W›¤@ºvrÉQWžÉ\m‚\£3¹WîÖà `:(61N·ÈËÑ™ù„Abñ5'™öŒÚ¾¤„;#sʸÄR´ôÐô9ÀÑ£:ØÔÇOç»ÉV¬¶Ùá™r‘^¤wÏ”)•ÐþÓ€Þ5nCwÁi@㱃ã›î"‰ÒÎP|éÝ_Ÿy|èÆµ‹±¨‹XÅëxcÍU5ۦݸµ˜C–q}é—Ó¾hsAš5—÷vž}PÙò޵¡‡'Ru¼:G}ɯe¬ÁÆì¶±´*NkÝê^ãÑ¥‹õµŽ¬Ku«;àT#ÃR 6K¥óÁÒS kb+ée¦¦oT컀bä6nÎ/*Íú$ñ}ÿ^1Ëâ-¢êÛ&†x ^hdC$s·çkÀíÁ„ÿ½QMè-шiË\{?j<Å‘ßð+0&nU6š¤ï½ç£Iøõ’ ÷Ò¢rýTÊ¢ôqËÍéëòVQÆgOÚ %¼Ï½ù"ÀFr´)Šoû|6…xðÌCAð-È£rZá–Ný5Œ±òÎ9¢.HïŠèÓ¾ìsÝÈ6‰“ܽ:Õâ%¬ ¡s*êBCúÑÜ÷"ò_áú5®&ô ÈñTÆ_It6ïÆH ´¬/@6[“Ê2ÕgvháÞ+]pø¥oIÈËpþpi~˄χ!?KûÓFQ¥~£[u N¬ÇÛFfõŽÍWàG´=~_¤]AÇ1wm}îK»WK§ÖMxŽÅ€R*›'.ëª>8ÿ*'.}ó–½fLÁË~÷~¿ÁgÏ´C?°*áÔØæwÏ«Ü{•Ç)ûßi²¹dzù!$E­!`ñ/Q·þêè÷¿†éöóÆÉrS7­†_úWkY¾'27§Uó±ÈKÊ¡lZ¼.·ˆµZc;;'пPºbãF"èOØö¼ZÞœ?™¦ÄiçšÀF±.KpÇÑN\5Ÿ–È|ÿ03h¥W˜Õ´_¢ÇÇ;UJ²îF&ðq@ÕÇWããçƒÔVVÝKyïWßž)Û}o¿IbŒ¿ÌÙë4½%õ~uÛ’`s^"ð±­£Îǽ-aö«j9ÌÖä4º`>Ä:úö3g÷W|ïÒÚïbm4ÚåUÞŽª¥Wn!oÃGÏØ’2>™{qš¡Rй¡>ú]¼ ¶>j…µ'ñ ßšGÚ{A=ŽRúÇ—[jt¬;…¨ÊÖØ´ìÐÐI0¾£¸zbÀâ’py†óî©×ÎÃ;{)£–«SOzBª{÷Í–O5àmo7Á6,… i·{sûŽ­ôºíXÜHQ’»4AÁ™ñe¯‡å$«2à™œÔ’ôÄ‚KùÒä¤myZ¨#­:½w&Óñüâ½H ÜßÎnJy—ae9ãeKWO¥TÒ‡4H½xêêÿƳ1endstream endobj 1340 0 obj <> stream xœÝ}Í%¹qç½°DÝTml?'¿É=.`/ÖXÕ{Ðú0S=Yè7cdÉþï7¾ù2+óuWa šzÑL2‚ þ"2’ü·ÇåüŸü÷åúðo¡özõ1ç±\JyŒ¹ôÇGº”ðøëÿçñç‡åÒ—¥õðøÓC*u\bz¬9K©W¤ÄK+@Éã’Óãg ”z‰(e\„°\$Ô~éƒ(9_BJk—Êm CjÓË%f¦äKl@ñù©´\RDJ¿Ä@”Ü;eIÚ&¦K'J»t&„ þá’B¿´Š”|é…)õÒR€i“/ŸŠË¥ %âüTì¿ðHa¡Ž…ÌÌ,ý²d¤ z)|$%œ!"ÄKíHé8C@ÉcP'9]ÿ.—„ÏTÂ%D$´Kc h,á3µ^BgÊr0S¥” )ðµ¶‘ 7ಖÑ.™ªé’Aè \3wô–ÿ "†Ì0 ¼¦*“sá6¹ã¿%àUë2¸PeÄ6µ![Di4yØâÉËÐ#>Ôμ2Õ›˜‘6õý=:Úe‰¾Û¶„K,JAí7˜yÓ(Cç(hž-Àœg?vC˱3þULE”6ñRšN¨yAJ˜P¸xXælJåRù¡@ËÍ· dº®àt„ÕH`Ë©­¸ùÐÇK湘RÁšha%9PòzvŒb3(OÕQ­g¥¨"ä!§ª…,Æ«,}‰+/Ë¥o –ñ²²œ42‰5­+[ Í[`Ó>­45r+Î’SƒEŠ+„HL×påõ|<ŽK¦”G. :ø‡…G*À öÿM‰)L§°'…G‹¡äÝ%Q* •)™–ú®Áäxéì7Fgx¨á] ˆM¦Žî' ¥£³r. „äÁÁUEiSÈ£cª,Sâ5^–Š#eÁ¹J@WŠ03ì™<·‰èŒ@ý’x‚à ÑÏ]ÈUÂÂë,W€»Á!° 8‘H‚ÆA¬êæPfÇ6‘„A ì)è“#SÄëÃìh#¨z¬hR ÷ ÞM HúU¡‘¦>dÞ#è†Ú€OìB ÔOB£ ¹"új:âžaÝ£)¥®ûGŒl(©Ó®F64D ÷ $4±ãz[\…)I{c±@oM•RÀ¢ ö®¾pÇ k=Á®[ºR>ö[¥Í ÁÁlGÕ¡REJ”[.4ûR”aÁ¹(ªc@Ü1lì¼kGtcyÕ÷׉N1 D Q’Ê] “ºb¯Ð@©ø/¤`PãJ$X¾èS]Älcc¯„ÁMÚà±Á8ØÑ¸"QŠŽ.l¡Ùkâ˜P <çâ)`öpÏK`Ú‹™?úìÔ`ú¸ øêΪë«UžZÖEû5©<ûb·Uá%õD¾m¤{ç‡V”šút(º}Dô+ÎÒr Ö@‚‰2:ÆÊÙ¨Èà=a`ŽòÔU p«.@óq¬¼õNB^Ø~&P'èñœ‚ „¾’¦ÊÄšÀMÖÄœXˆ´ uÞ2€ÕÔýÔ"îjÃÏ}A½~ ¬ë%°yí#cJß] y ,Š¿…{dD‡ûJð+w’»f±ø‚ûSôk¶€î¹Ú‰ÒØÞÙ l{¼HtI”A›-›Ê î¼ØØà+lº$7,H¨"ràË–[Á€¨c[Ô hY-sÜYyðE @3œ©‰‘ì\ÅMDü{/¤´Î+RŸÊäÜçú«`h%ñjã…]ÁÙè3¢)?º)¸F„µÎLe²óÉ<0uc~»‚ +ß^Á/Ò|ÿçu\añwòöMf¹‚-‘ª‡³X û ½¦¡!%Ѯ뵋‚+í>öÉ\Õ((ÖœŒ?üÝŒ¦h‹k>šŠ`l L¡#­«h w/vPMá^µ ¦hc’Љ] îCUÂ+ÞV#FmLE@ ÒF‚©†¸gަØžÈ%ÑTøÀ{±FSã6iÃÑT€½XV–DScŠ£©+ƒwL¦‚ޤËŸi÷h8Àx$<áp*T™d‹§î1Bá€*€-ÇU@²ÆiP˜5Þè4  0#‹%¢ Aw¨ Ì$¢ZzU\,Õ‚¸“C5‰¨p- o4¢Z í †#ªþ…W€úß8LÄàC°XÂ*ªY¢  °EðÂÌDaÕ-L~]ÅO Øv.kÊ"ÐY"*XE<‘Œ ” ñ'T೪X¤T@‰:[PAˆÚqU|¶ˆ (Eç†#* d•Qù6Qù~8¤òcqHåùáʱÌ•—J"!'¹„BnvŒb3¨O![k‚Ÿè¡èB,\ÑN›P9…K@5Bªi8Š)¦qi@5 Pªi¤PMCÖ€*€ ¼³h@PE×pDÐÊx(‰¨ BIQÄ€Là€*€ÛÓ舑iÀåÅŠÄTTÞ$îb´„]¨(WÂH ¨¦wÑ€ =P TÓKi@…ž¬J¨zIª¸$ñýP!Tç­\ªˆ^Ûp@£nËPÄæÁ% ŠÀ–H%U„ bq@…x™·= ¨dÿø<ª“Á‘£T˜Óc§U“’èD*ľ]PºTASPÅ…~*ÔG´É ¦À £m ¦`BîUƒ©¨Û‡S˜3“°C‚)žq¤àI þ4’Â…Àœi$…îL¢-AJ™¢‘øxL4ÊM0× ¤Âå,Žj‰á4ŒRÌ3Ã(Õ¬…Q°£óv=Ã(kÃa”ubaTc˜aTU¡¨„[ýgF©@EÔ«b EeÍÃZÛ›…Q˜£ä~5Œ‚…Ç#Y…™6q £’æ|-ŒJš‚Ô0*U͸hÅ8ñ³ £`áuvÄ/˜ƒ$‘4ŒJ Q,Ž‚Þ9Ë`qT ¶iH•dÇ s[Q@­Q”£H5)G9 RŽ ‘”£H(5)K9ŠŽ"ÑÔdY£)‘IB©)³†Rs^4”²¹³XÊæ×b)S€ÅR¦$‹¥’¦Û,–ÙÚ:–O,ÈQc©ôÅSºH-–cd³·XÊ–­ÅRyH!±”:ÛK麘±T‘¬çŒ¥ªÈ4c)É,–b¾KÙʶXjR,–—u0£>ä(’Ò¼ŠERàä! ¤lZ •t²@ æì¤mÚÕ@ÊŒÄ)óÇH™Ï¶@ÊüºRàûy%[ ˆ&ÊôI ÅsôÙR0¢] ¤·ý<©›ò:Š_™`¥^be‘]'°Xªå„sfTAcT€{ÂÒûE‘ó2ª" ›Ä‚¼Qƒ@¨Ša“ì÷ :†ÓÂ)Ú47@[miëÐ_ˆê±\¾¶ßÇU̳€®•¦TÇDè ,ÉŠ‘^È á#˜2v K†•ÒP¬ $… ¸:¬É`~QJÓL(DÀÛTƒ ²]™á^î.´&áVŒÖ)h+ ?*-"Ø ˆ²¨]"ØŠVÛïðgìbMtG +k¬1ÂÅ6EÁy„@mjÓô.Ì-£#}Ûù•JEá8g1G L‰ ïdˆ}mKǰ8AX̦dmÀzT m\¡Ê«íP„æº#¡Q d•Ò(ò°…Ëjt0VQø(ñÚמ#å¦ó…¦8¼AèBÝšü]tƒo…Úº o!Ö …ýÑ„j%·n̘É0<Ãa™9¡t/xÀôJò“3)‹õ,O…j=ÇEØS¦,¤Ð.m ƒcpÓ9å%‚7 ŒpÝOÓÁÄŠ5Í+4Šðœ Ø®0"›f uö–ŒáüP$±0Å×9¤ ¹ M8€0ß#~Eƒ©Š@¹$±J€–ƒ©ä6V©t-•Vy–œX œ¾ ‘N8»ÛŒÌCdL9ÝKÀm€×@ÿ@”F¨xº)Œ id?DȨùŠÝñöpƒÃvŒ]B TÍr\IHÀHÛDN¸€£”©ƒ¿0pº#‡…ã‹4Ì»ºòD˜E¦eéãÀÎ0ämÛÒ)~”Í -óCYhYÍ”n©²±SkŠÐõ=éRèå'„õƒÑË.¸tü-‰ä¯ ¬=^ ÎS°WôŒ°´æÝ µ‰¼O-‘‘æ!x±`*ó¨² (]GÂ1‘Peu/è3R4û‰ÊãDöb‘:Ä6}p*( ý8P ÷)?‚Cš$†#Ž1Ùƒ¡ga Ul¸´Í‚¾0-àÖM”Êý`xÊ3ŠYBLäTUð:÷\‡NEf9g˜¿VÝðÓPÙôˆå,™v]Ï &"8­ÄXi)‘“H*P(”!«på#ÏïüK¥(‰ƒ0L¼4™@©/œhÂRªwÉ–u1õS;HËf8Âc”¯j²ÊÈÆ’Aàò&ýò’Âe- -Üè Û£ÈÐ"‰Âq{Dátz%âè{üˆ‰¨îm 3È](òÞ2PŠ–(]âøÂ¦å(]ÌÏ(‘r¿+JDW½¢À:Yh{XQ:ÛѤ¤(ËI¡d…g|^+± 樽äXá”üì`neÉ~#/ 7É’µqz\ÏTmz‘W¢DϵIF5û²Z›šbkMƒeÜ\‚[­ _B‘ šc˜ JBèúÅ·\²ë!Aw‘E¥¾ßâñ‚)‰G—ÿ$0GkLâò@³‡a(ƒØ!ðÚmòÂ3p§º¼óB¯Õ!ˆ‹Ây–W¢ w/çHvrÄœµ_e–EÀ´>•ÐÅ»U˜c].²¼3¸v¶ý¤Oéè¦]|åÓ¼‘d'Ý;猅*Ýûo­ç1é^É++–I…7 Fâ\=ô/%,÷æ%XµS|XÉMŠnJ/‰ÜéŸÓt¸]Q¶#ªÖéÝŸ‹¨ÎföU«Œ¦gDÕ ¤'–4¢j˜¥J>¢jeáhÄ"ª– ¿A²ˆªeSìaU0™“¨°¤*EQµÄû ©ŇT <Y:‹ ½Eô!UÃ^ñ˜§EÞÙgLÕÀ(n1UÈxT-p2fT-,܉Tm©,Y@Õ–ÈÈÏ*,vÃ|Ç ¨° +¯^¸a '¶™UÅ÷W>žªüÞÛQ*ÃJ«ÖÊYœ‰gk‘‚†y+çP.®ü’Øaç sBWá5VsQD`¼ž¥D¤¡tkcH)ŽXH¥ψ fIEYÔ0)Y`?œ:ÓèÃF·¥âÎ|S³¤-Ò©œÚ\ee*÷cÓN.árYµa^}?`^y5fêŠM¹L–CåɘbÁ†º–lø›³c›AyÈB*#˜ô™©+ P–sê_ y£—^ÙÄB_Þn~«ãl º«ÕÛ–ïa;msyieÇß^EPDcÍT¬¿ P•ÆÖQQ5mò•¾ŠŸU)TKæ"*¬Ê­ÍGT¹ï>¨ÂòÁ8|T¥¹ÐéaJ¡*Uá[~Ê™§*¹óèU•L{‹ª°`tXž:Xamul+Òë2 ¬°6œ‘Ué½µEVšž‘¾Ô§È"+MÏÐ*.´Ê}ð»O ­0-Ý£­r“܆VXIŽö4C«Ìo]h•ÙõºÐ*üS7Zi}î»0ƒKZmÍœŒ÷Ûw¢0´wÙ\娮ip…ï²ù) ®_¤è‚+ Pi‡ƒkøfb¬Àb¸ CöðºÂDƒû±¨_D”æ#'¬;ˆÁƒ-L;¤U“B¯}7Eâ ®P©úà*ç m2ˆå>Ý£G,° ˜<ÅÃÊÁGWôm€®è£…ê‚«ŒUËÕWøe@IÖ.xqÁµ,ÁWÐ6A ®ðƒv ®d¥OÐ.Õ<×—.Óeè°À¿…îãq„.†@LB„”·Îâ*&fªWð•@]…46 ²¯IÉÁ,W)é&žª¹p†£TA½“2_·´5¥2ž”kÞó\‹E…"WÓi6ÙÑE‡Õü`>1ù9lXxÕü<7ÄåÝëÁ Eª®–¿bµ’/ÅGX­f)Ñ«µ(¡ºFX ­Ó¯ØÖEn °Ú¸ÜÖp™S/`5̬`uMÆØéàM{´«/ƒ#V °zÈ,³EX=tŽÁ,Âê._™ é#`ézñVÏ '5Ì›ôM¶¤çÊ‹Ê"¬žé}†‹°°M^-ÅžióvV‡ýŠm?ÙS2ºé¶§&¹ÚHOªõÑ=I •ùñi¹OWß-­¦ÑAÇâ¶äc¬¸ˆŠcõ@~ÎÅX¨ÚC,Æjƒ±õŒ±Z*¹ëï–üøÓŸ0£‘üí!>þé>ÑzüÝÿx¸ýzä:)´CJÒþ&‹¯M03üG(NYò•÷lÓsÏ›±®{èv3Øó-G×íhÏ›ž\ß®vî–íçM+x®×Â>n¶úý#üaù=âûÙ›É?Û_Ÿ"fSÁÉ´O@=Xú?Àfô¿¿þ]ݤJ@Ý<†m¶ÒçöZÕF!Îj@0Ñõ€­R{Ý<¶êj¶Òç\«¼piHÁ+Ä•:ÐjÀŒñ.fÀ°ê –àuóغ+keÏÍVÿ{šòé…‘Jbv V©¶å³Q`7—oq"&‚Àçgô™µŸÙæÿçï~m5Eª÷ÌßçLs'”> ï,6ʆ²÷ÎÏ&ÚpyÝ“dGÚ­là0^“ìÝÆ¸K6ðìÌÀ([!¥îq_ìû/¥à›ªL3ƒDáW Òµ9Ñ ò1 DFdúú3‚󧤋 ±¥ˆý~±únX¼îˆ±'êV°õ½Ûwª¡ZªN}±Vª~™ê3ÊÁ‚©>íç^õ¥Hu>ª>ýbÛ[Êתï†Åë®;¢n;Pß»q§úÌ[šúÌ£šú”2Ç3?fý ä¿å?/×ÇÿþÝÃßÿ.,XéyiµµøøÝøàßðÓq©xžDÓÒãwׇ§?ýôãÏ?üúá»?=à‰:8ÿî·OýüÃç¿|ÿÇßÀŸ?~þ…ÿ\±ê»ÜúîÐþå“<)ÿ(„þáÇÏ×¾ÿ3þ5¿¹Ÿ+¶ÿÍ•$Àò§~üõ/Ü»uñ[æÊ†ÿùÿùßRÊÂkU•䔾W`Ú8ouÇ„6¬TÝÎ'–G,¡…ÿÂ81£Ø¯pŠlðßN_oõœâ醱«!¼Î*­¼ÇçkM\U‹µÐ2”ÙÉIìDŠåŽ:9nà§êḓ“&Ð V §tØÉI“7(?&EL_ð›ÈÈŠ‹;ŠÃc˜Z:TÜI´c}n8”ô¤É$ÅÚJŒ½¤iGÒ¸áPÒ“&o`«Ç “uËdZ𳑣‰oõvŸµbuo%‹/9aõ¼ÕÛΊÕõ¬åÄÎ[½Ýõ¬XÝY×âXŽ'õ¼ÑÛg4îX*q¦ýóFo`Of 7Œ–W=ræÇ-Þ΢wæ{si Ìÿ¾êÌZ½bâóâW!¦B¿×ë”=@<ªfþjVñ“ãq«0OX=mõVñ(„rÃêž(Œ=fõ¼Õ[XÅ#ÈnXÝsûŠCmõ¼ÕÛ7ÓSP\<«ç­Þ!83¡”XÑ_YxavcÈï—ãÂZ(ßÒì¸oV8R]mr¶I§å 땄w9MÉIW­ Ê S®¬ý=…3а&(ç:”My°ʵv°–‚÷жr”ÜV²”ÊØZ—ßÎh õÚƒýæ1œ?i€†–0ýIã“Éæ±<üÛùk¡\J7r¬]å7'œ8˸:¨È-#×h’ûðTžöh'ñÏ>}ŸîErо>¯?¹÷;eŸîóñA×ÒYÿüóåa2  JœO{ÎÕ7~²ˆ+ä#"ÝÑKJ–ðÔ×Åql‡5™Lxš'²*-ôTNíÁ~›TFƬáÚÆ0¹Œ m¡\jk9Ô~£Â‘ê$c+G]]'¯ûƒ§ðZ:ƒ£š§zñï—‡ˆöâZH¶Zz˜¿yˆ—™Ï¦Ó÷ò£ö U”:†þ~yP.”bLr7B¼øTô·%˜ßÁœhFÙĽ*çóØ3•M]´µÐŒ´ö`¿uäIÖÔÉ+çêä§lêä­…r)=ÜȱÚÁ¾=áHuOÃ^:£o½w¾÷@x·³èLºÎWsÎA.¾ýmÒEx“ŒwÃI'\X ãRz¸‘ƒU÷Í wWYü«…+˜¨\ÕØüþ)|øØòäÓŸ"ü‰w/‡úTæŸ}6þù»zÀà „•ßýöỿû==%ÿ~ó”ü¹~ÊÖóàÒÊ žv{¼i æ{ÚJƒêåCžðÊ¿ÔÛ#†ia$ªé§âˆ¸Æ2LÑG<¼öÌìB·…zˆÐ-vðJ»<ÛS/M)†§GðF;0'ù¯<±LÖ–ÉðŠŠã|ßÙô£~e€åJKŠS8•??¨ô±ƒ}Mè}+Áob?ÒÕo€èazküq©jŸˆ‡ŸãÇ Ÿ´¦äcÄ»bq6ÀeµDÉ ‚y:B&æè}îÿ¦¬äk6 Ô#Þ§aø/;0b~Ä»*KjlÁÿøá#h! ˜âùðÏm.-¶§Ÿ>àU’ &èéß‘ é=>ýŠ­— +ìéÇñ²ìeAƒ±ÆËüó¿Á¤BÌ8êxzv]|?[\?àáÙ=Fí_]“ÏŽ&^:4ñÍÄ&‚PþÏøwkµÇþôGáj$?ÐÏÜ9ÞÀùô‰;\–±ø/ÔaÁKˆ±ClcÄÖÆ ˯”Õ˜/Ž7A¾w/Œ´Œ%­Úü²â—xŒõ釯¢Mýé?¹eô€Vð÷¿KËJɑΧm h2šÄJh•‡ÁÛsyúáù^ð–˜s´Çr†Ñ?â­æ%ù/“Ì-ðNLœZxp@ŒÁÃߨ‚ÑKS†w³ïæDþÄIþþ^~kQÁH;2¯öñ§ÿ –÷Ú¤øô7è-‚ÊrÕ)Käâ©Ìxj/kç,«º;´B¹è–ÆÔT—DÞ±“Ýžq¬_¼ ÊBü™*ñ âŠR€wî ¨xª{o«¾EàÜÖd4ÂÌöñô_ö——Ÿˆ¿`k¼ÔkǦé9énŒ°åfýµ…Ä"†µ‰âbÀkž@‚ŸÍw¦ Ù €CÝ™ñ¶‚>±P&Ìóé$ôkÌstùð±Ó=åñéÒ“eÉ‰Ö Ni[­$7ø'gf7ü!#5×Õ(¿0V›çɳ*÷*ú…­6¿ñ|¡jÿ@î:Ò‡¶.™¹y5 Ë<fš~9xÇõý|Ð+ð_/Üa¯Ý¯4/ìGjÓÒÛº0G¶^ŠØú‰§%£ü£3ïÆ¼]º]3^c4J}Õ×NW-ÌNÞJßs>±mðQý‹M;Ñýéÿ>m½2MéÏܦ­„yŤ‡~ú¿˜ïV3Å^¯ôüôWâ(uê‚ZÆ×VÐZžŽ˜^u¿nv"š„Ÿ…¿”ðKgÚxvyaÅ$ØþFëüÿ ¯dó 'õ2‰eÕö?Ü|yan|ß­^Èõ{ÿ“Nu¿ÓõSëÔü’òºÖ²!°4ëEòvk\H<¼¹B1ˆöê"S_ ˜˜¸Â¯­ÖËdÐ $€Ç€Îõ1PXüá¼û€ªï¾z-­|Þ:€Ž/*ôÁ<båöH7AÒuxw†{tÑ Ÿ‹Óéܺœ‘N¥ º(LÜ49 ³ÇÔ†ï¶& ng˜7‰ÚO¥[%èæÅÀ§1V:~<-zuwÄ“Ï!D£«Ÿ7„wmc’¨¾$(¶BÌ%ó5=¯!ǰBšÐ­Ià$¾†(t[6]ÏXä¥Á#X`v2Ý.’èňv„o Ø‹…·™?Ò Ž‘ç+uî }ø!<žSÁˇ–õÑmÙt¡)éC}º5𔆗PµeãŽCæ6©Ê1þm¡þéºØÌOÑe)”.ÕA·;ÐUµOûáÛg(Ó\ùÔåίEñ¶_>šobÁW€Ðÿànäe^4<ø!˜%Ê?Ç"óW[Áû[RÄ«ºR?¬ºÏqÕoºR¦Ññ.¬°êõ“•‚ïïñ›ÿÜÖ”q±¡ÑFñªé‘VCã92tÂ3!ÀÕ$9{¬b5šØÞ‘†½` ÿÎÜ Ö.ÙQIøH/|EÄ[Oè=€kBת¹^2]—çÇ»ZÆŠ°«4VìfZ^$¼Ú)z©Öc›<}(ËÝJŽ¢*Ї¦–2½÷šÌtë›×vüÊaZD¢kc¼Õ@ØŒRMÊt/”·=ºÍÓ›'ôWW¨`†n3åKjñŽÝºÊÌÞBÂb‘»ö`ŽÚ<$¾Ô$ye†÷&n‚Û"®n<@£3¥ÑLÐ¥Wƒ)™†Z:™QÒ…À"§Ná™E…½ÏCét³ ó,…oŽ&ï“…ÒØ­™‡*­òØ`sQÚdzwНi¹cº¬\a•B!¼€ˆÝeà›Æ"Þj†Et¡+ÁÓ«¤ÀÔaák²"æ¿Zæ´;+¡d^`KXT¨L·Ã$¼_%2à Ý7ðgÌøW ÷A¢€/£L;–ã0w°…,øT‘Û2"–¶sþ^.Ÿ‰yPÕ`x@Ÿ*>èRXØÄÆ…O;¥`"gàÙfDÀkuˆ…¼]Šv±1ËOZ³—™ÛTº­( _¾11œ° ˜)„÷½bÜÇ…BWB¥ÈzÇ+²ø¡(f”ñZV| .¼ …îÆ‰xV³ô“IÝ@¡ýM(Ÿ‚åS™€Ãï,GZp³^仈—qQ/ »Fž›Eµ‹W§a¿} Ù­3Ÿ-âÛà·êF§x‰|å_ÄkÛ µI*8^¬TW ºw(•¶ŠxWN¨Â \{Q“åk¾i&ÄðÁ àöü¬kRp(2ÞX×hþßE ”ί~ðž:6ÀLwf‚l.hú˜©C]±«Ã‹ Žåò@Yà@Èr—5ÞJë(U¶o|á×SÄ7Çh†Òšó}dKÉ\1 åúÔˆwiöîì­ºlC¶øZƒ4²ÅãZ´Ð¥³"&¥-b““B·j­(7 hß]QÀY¯n"]QªˆdüÒIÔ_º-Cø×‰i‘|Š›<¼Úu5¿ˆ»V*hX`’½šZ[de&q wàÄÚfçÝfK°ˆhc°‡.ž¹ãæ’üRíh dŽºÅ÷@ÞÛ-^¼IŠMvŸ·M5YÎìwñæ­´Z=ÑîD+ˆwž/:¶{|aBžd :P®ìBa^Ù‚{¡k¡Ýúî…îZô¼¢O¼sW«Ò\ ~sEËÐVs‡ýk–€ÝxaêS‰”-ÃÞ¢(S÷¤ÞÖ“<¢C›r;ly´rÍFßà=s'·b®»ãË\ïÝñ˜9š(¼Œ»€ÅOþ*5jËjig *¸ "4Ul¢ûû`;ÊÚ1~ì„Ü™Y bóte Õ‹$̳º Ó²ˆL,ˆÂ«Î]EunXieTÂwQ½¹ŠnY§6AŒª.|¢‹ÙiKÖð‰ÊéŒZø”¨öµ¹ð‰.x‡9áPí[øhŒ.³œè(ŒÊ-~ }r5QÝ%O=küDå~­¹ø‰ª]0ø°ø (´ÏÏ (ûÑ*v‹3€JXEM%‡@:ÄN.€JxÙjsñS’ÈxÆOð]8ã'jƒƒŸÐaçàH*P*ˆ%.B›87aY[qH˜8GíZNxÕ*á{EÔ@¡;¯'ê&Ê ™Ï6މЂ  fÇ¥'8 ‡ÔÍ.Ú˜ckDB8™J05j! à"BÎÝ? V†ÔÑágôÆPixìÚ4º'ÐuÞ©¦ÕHøŽrÅ Ry~wƾ’©ž=»rtìfÆ(6{úFPŽ¢JЇ¦ž*]PèuYé‚C¯ïJÃz›(RzkvƒXW‡YB}Š}ÌøðfݽbeJ]1ùâb(ð3ÈZ•ð6CêFC( Ð5–3†JøV>UC%rrHc( Bu1¸½vñ!Œƒ‹¡^ÉX¢ ¢ÒÂÀѹü¯¹ŠBòmC¡»¥±-†Âº\] …÷ƒÒØDá} ì4uà u]…·}b?ƒ(¼Û3¬¢(¼·³Eá›äYEç0VE ¬ >¢Ý¨ø@ Úd-ÂÐR„ƒ†¤ßê)ܶ)ZÐ@ «)¨‰R„<†¤::œ¾Újñ[Û²Ú±nµ[÷*€TP`ï‚ñ-Žê­3~·8ªÃü¥êã(„„-Ž(KÚƒ3tk(Vé~érì!›‚ 9~úÂÝXÔ{á¹± ©: ÝÃ*L2ß{¤ÈÀú±9¶HŠXí>’BôÄðL9DôTƒÇŠ—‚qºkò‘ÔH…%·Hj`Ú¦ûHjäʶHjXhÅC¸Qñ Ф†ÏIÑÌÝGRxƒ+A0¤tOŒžè>ïêp<¬ŸÈ0YÑ ­:µ•ÖœœºvÉItugY†‹K€’¥‰Ä.8hMʬGI¬`G¡’¥¥á^µ¢ Žö8?µ¢^WŽ2X3ÆsT²8ÅBß\¨Jä~Ô“ƒ -N½=P Ï—V@ ì¾4°‚¬²Ó•«vƒYÂ*.°"}†æ+° YXÇt÷¬™+Gu]€Ì"qgHŸ%bn”å ¥ì`x©=v‚ BBÃÊYèÊÖ(vSɤdÉRLŠÆÂ€aÍO<3óäŸ%ÂB. nYjt5A–…Æx—â(.'J¢ ±l„0× u,ô.t5¸ØÌW´Sª€ðQ*y¨a âÐEØ!@íÞöu¼ypMÓ+EÀ„ãV<ÞØ.-çâðFÉIHúß>±ˆ«#Ÿ!iŠÊ¦Éí3{P ßÿ I:–~é+P¢â… ™nîLÀ9ån€ãÅ F ë-Åd¹ „V7”(¯í©™÷ÙÁ oÿüŽÆ$X’JPm÷OY§F²¦¼ÿâ|²ƒÌÖ‹äx&s° ‹wᤧºJJŠ.Aì$(QR-6/¥sö•n&B©Ä<¬ §cJ1c̼ócB=¨ S2ij’ ô/7¶G¼>PÖ$eal33$CS((YÀ?fÉÐ Aâ7¢$FâÙææ_D!’X$©—èõIh?°¢,ú¢—Ú½ªÕð»q‚…Ó›kY½Ú•ßyáo/Ðéíï@Yˆ@þ›+ɉR^òï }]ð8~›Ñ¥.ó½ñÀàñ“´¡ûkȇ yOŸhà$‹󡔦GËk§5ÉšàÂ`BF”Iù^Úø’ž?\Z$Öjæ`×™¼K§d,„ C_ÿÚ^E,² 8ƒ "ˆ_i‰\8€,E# VŸ %Ú›ó¸PPŠ=I…Ø;Í$ŸÜ啲½:_«U™ñ:8YP’f燆ùU|DEt±wÑM¡@ ³ìuñE9ºB„¼ *Â`¢Jrg˜uXÖoÁkŸ‡q£ÆÚÄŽ$…ŸðÌ/yõ\ø58(Dº©‘GÉ-à wCEmDÙ¼ž–\ZìÝÞqË;í¡9pwŽHKÌ_¤M)AÞ4~?=ûð(iSuNùe€>(+îü~’•¨®|Á }cФI!ZHÜMÓÊì¢qJh;”“ÁWø]í+É´o5‹ÛjॖáUÕj¤—îÖX‘’:S¤(„ÑQ„©ZñB™7mF^õÓZn,˜ä¸2<4¦¯X–bª/tG•“»/t¯™R°Œ5½ñÇ ÿº‚Ð`¬ o¬VyO 2(ZÜ&‹ª7/L ‡•yõŘjñ3£$ô؈Z%5_D{pÒÜ@ˆP‚ÛºD'Û©Ip{ªg…ßV8ËÂ(¿® >z£+[° äPŠÖTàCdŽ%0Ȭo@r²¶Ä6‘£”Gx à0Òä{Ñl¯\88lÇ.¬-¹]=ááŸÑ&‚æ bÁàwlú24FÝ)ÙˆÉ?Ÿæ3»ý¼fÏD®»èÿ)áM”!$ü="-E‡¿}nïñ÷¼áÁƒ—ŒƒàƒˆÜ£¶ö(Á•2!¸Q ‚Å^×Üø1®(¨ñ(Ïp+Ž×æ Çw2kÞ¥\m¢pΗ9Þ Ãû‰Â%¯@8¦ÑÛ „w@„#²Z£pXï& Ç›rÖ(]}Z¡p|ù³‚nšª› ß%Ây¬@¸dóV ¼®Á¦Áò ÂN8®É‚ Âgú §ÕS‡ <¢x®BÁ' oùÄámp†aâð¾HÎøÅPø1qx,çÄá¬NÃ{bþæìôÌyà Å{ᲊã&¬Àvg€‹ãKš¶R(›¿Çâú™¬aqJ`Å1µY<Ç4F[AqL!.ÍCqT$nÔŠc«x$޹.ÄT(޹†±‚â˜kÀr® ÅßFæ øàŠÅGfH7±8Î\_añï¢ñÁ˜90. SÆq²9Å `Óú}ÆGá0ÅÐ8fY ÁÇTu¬h|à»,ÆGKìÇ ŒF¯¹\ºãÀøàÛ…ÇiOV4N¹ZÚ‹ƒZ3W6*oä¡8ü쌘ŠƒÞóŠe\¢Câ`l"ÅÒ=)§71„ÜŠ“ólŠ…ŠØ ‰ÓûlÄÉ'¦ø=Ñp8œÞ*.ÍápòäüŽsÑ\¨g8\sˇÓÍÅÃܽwœ|.ÚDJó­§qœ‚qzÙE“®@|¾{œý`LŸ‡¹)´¸÷©:£“CPQôp‰Þö1¸½44 N/ )dS .&¡(œl†ËX›ÚÌRÙH°šé¦½KT¥°W^.8hL/ʇϣё bc›P×”N5 žR.Ï~"-C7Âù;üŽÎ³œét'Uï†S uxŽÉÙìQ8½MÉ…c’\µÂ(÷´äA8miÅ#_Jw¯b3ÊJçr\ÒácÀyßðœw-Á¿ŠÁÁ_õ¶Âà0%N ^5,3 ®Ãàõ'¯\Rï 8çøn ¸Öšƒ kίý<“!ƒžœ÷sÀ©žaÂoÁ]~÷̑DŽß2™ tø{ðW €óÛÅ}žùňà9šæÌæYú$€7gýØAAqÎZ’¬ÀydG5J“•R5If?:•Šì±Æ–ŒçϹ™"Á€çVu~p È0·f}g̸ñ,3ø.¸—­æK‘û |½½ÓÀwÁ»KíÕ/¢ï2󇌾±PZŠîÄ ¾`ʺ\Ðé°øÅÞ)#ÇXÇ-¶Ãð;a…¸VËüNTyÔ$q5P½ºP…a\<úNuM¨5a¼¢hŽO+€/EÚ„½SÕÐ8G¬xVMóØ;U>‡o¢èT­ò^vÂoÉ¥k¦OÕhñ;ŠŠ ÝÒæ¨J=啵YAbc¾jxð0§¥Q/V*›-:縊ƒâÆjnf‘Í–mVúNŸ)‰œÓÃরiÙƒo „‹Y.ûŠªNì¯.æ”{;mŠáûæ@ 7ØÍ¸ˆ;gä]&Bfä]J’€G‘wIy !y— ð’w™€^€7žQ,’ïÜ ±jÀ;·¦Å(¼©Âž Œ»ñ4̾ÂݹŤ‚»±‚]¸àî\²âaÞxMO Coºwƒ·CÞxæË°ÝºWöc ÆzçÔtGì ðÎV^,È;‡!ëE‘w‹àм3Îϰ…‘7~Y¹AÞxШÔ_üIM*€ y'D´ŒÄy'|wø¨(+¥ÎŽÅ€wÂxÙ ¼S´+Þ°)I9©ËBaàBQV&âåCE*Ò²<Ùë*ð†JkËx§eèH ¼ò^¤ŽqwÂr¹–qwÂDý w§e1$.ÀÌzô¸Œ3J‡âî¡åh¸;j `Õ†‹¢VÅÝ]‹ w÷ ói¸Ûú1Ü=Q¶âî‰Äww+4›¸[qÖÞ£Þïaõ,dKwç ¼qFsP³"#YŠÀ73½¥jH/È[UeÀ•™Äî›(fȪÀ-@V¥oOaàí) ¼}? ¼ÝX ¼'7‚»»P¼MpÞ89Ap6ïÑu Þv xýTÀ€·y€à­›ï €x·f JyÛ¡;–Wà­oD w÷ÅJê_…Þò+ô±e(Ú8{aEùz£“h+è 0ZëßzãmÓÅÜP~ò¢õ†ÛiP hÁçhû=#ï„_šYn’F¢KÙd"ðg½AÞ°áZFÞ©v˶V9F¬èëÙ‚´À$Ð;ákXËì¢HYË„|ñ‰ÃÞRªá°wî+è+ÅxKAˆƒÙR4²G1-(eo£ð6Š=¬·ò371ÂÝZv2q·–LÜ-E&w+aânøxKÙ‰Þ’Ö[oЬ xKÕ‰CÞRuâ·T8ä-[ºCÞRuâÀ·l×|KÕ‰ß<¡{Ëvì°7—8è-u'+è‡BûÛËtÖžæj{Ýü¼É\'ÅÕ‡ÞÖbÉŸhrë1µIž1m í¶›çÍs×=ÌG…û'}k›ÉâÎݶºî¤[¶£=?9‹#@`Ž—€áÙ¾ö_º ì÷˜û]`;Æ#ØaÈǶ¿>ÙóŒÒ~"h„`´¢jnó¬¸VúÜ^«ŠàìžíA¼Š!¯”ÇÖ]Y+{n¶ÊàŠ×g(W|u_#~ [þuýŒïÄ7ᇬÉùù`C#PeÀO#1ŒA$8U¥|žL]Ów6£9Ør‚}ßgýXwµ×ÎÚu¡ þ>D¾NJ\fƒl÷ËGçŸÝòvÝå+ãV¢×}Õûq—Úbæ4XÄïqžï3§Á•òÙQø’ÏæÎæ«Ö69Ñš~_ˆÏ"½N ~†Æ›” ²!ˆ~ânÙ»îI°r+ÓÁó^CÜ¹ÚØ¦ÚÔ¦Ú&E;WKš,Í~îÔ›žÛ2õ¦üR‘Þ{Û([Ê—kî–Áë®[A·b-¹÷ã.Ý%<²@õô” ƒÂÑœ§4Š­gº26‚鬟{=¥œŽä<¥Q´ÎFÙR¾ÐWÞrwÝ•`+åV¦×÷~cÜ©8îj.:íj.ºIQ«P–¦-Í~î\tjsÑ)e¾ ÒQ¶”/_t· ^w…Ø ºëHwï5Æ}ºÃÏÅñ;ý©»%Ó{n§;£Øpr †cÉú¹Ow|Ø)ŽÆ¥Þô¿¥|…ÖnX»î²¿q+ÐÖÞmŒû´9Gè´–8ƒà´fN? ž,Y?wjÏ’tzBŒ]êuŒ-å+4wÃÞuO„1·BhîÝÆ¸W<ݶºMNÏyœ›œQÌÓò˜¾Û:¹w‡ év8¥`jyÌ!n~~áÞvË×uËøV²­(`ò}¸KS™«.¦¢2–w¤îeë;KÅÂäH»¹WUÔLU)¥†Ìï@m-å vÃÜu—ÿ­Œ‰^ר{pß⢛hŠ_\xªSH~q)eZ,ÄtΊ´Ÿ{•Öø§4¥tÍPê —®±Þ®{üoeÜ‘è`™½Û÷© O„Ëkµáa"kµ Å©wñ,I?w§H8Dó)¡`=®FÙR¾Tq7Ü]w%ØJ¹•é@qï6Æà‘‹ØѸˆM)3ÎdäbíçNÅIaêM ø‚0­ÆØR¾4^»áíºËÿŽŒ‰ŽÐã{qŸÚÎ8µ œqjSÊN`‘cIû¹Wm´WO¥ÑÏ*åúÖý†ð¥ »áêºÇùVºYöncܧ°Rèœ:§0¬’h«ÌˆRæprZ³cIû¹WaŒîÊ„`¥*6Æ–ò¥j»áíºËÿVÆ­Dj{·1îÛ×4åö5|)’¼{4ÊôÆüºØ9líæ^­%~ûèÔ¦¼ûðùý¥[Ú g×=æ·òmÅ9ØÑÞkˆ;5Æ]¹¬¿tå²þF±l5säÚÖÍaµdÄgX­)~p!=¸!6„¯Èùß0wÝã+âV¢#¥½Ów†ÔrQÂTšÄ|NiF±á(ãä.hÐNîT™,)§3¥àùËuqóó+vÃÚuËûV¸­4GQõ» pçVÆîÕe®Ä½ºÌ•Q,ݢ̔Œõsg®X¯@˜¹b¥`aX ~”-å+rW7 ^w…Ø ºëh?{¯1îŒÓ8rp M"·ÐŒb¦¢ÇpNs²~îÔÓNwJÁÒj”-å+VÜ ƒ×]!v݈uª½×÷e³2Ÿ£ëÒY‰Ïãué,¥ÌDL⣉]²Fû¹Œ,‘Îõt`D)5®¡³Q¶”/ÍgÝpwÝ“`+åŽL­wãÎ4$gÇæ¢“ìØ\sFP›ÐÛ´¤ÙËÛ›(ÉmoJÁÏï©DÑFÙR¾|ÉÝ2xÝb#çVª£Tä; qg 58ð/E ü+e"WIdøë‘¸›{×›&êæzS Þ«·dCøRøÃÛuý­„[ŽªGÞiˆûÖš,[·ÖdÙºÅf3YþΊ¬Ÿ;WN±ZmJ‰Y>}±Q¶”¯Xm7 ^÷„Øt+ÖÁr{·1îÓ]-ô!—Ûàð ŸÓRÂtÊ•ï8qŽ[{¹w¹‰žÜrS ·¯Ù¾ts»áíºËÿFÄ­@:{¯!ž¥Ï_BÙøoùÏËõñ¿÷ð÷¿ KÊxh‡Ùúî=â¹Q.eÃk£úãwׇ§?ýôãÏ?üúá»?=à]AqIßýöá鯟øü—ïøðøóÇÏ¿ðŸËcÁoJBÃhŸþúó/ŸäIý‡ÄÿðãçëßÿÿáßÜÏÛÿæÊE£ ôã¯áÞ­‹ß2W6üÏŸøOº56 (¼§ÊʦNK±ÿ‚á‚6îhõ ‚çL™ûFZÖ:»:o]ám©ñ´«óVЕ^gqÜÕy«;,¦å´k0xj bâ\Àü2Lˆ¨Øµ.bŠômб.îhõõ¬F:>¯YM;¬ÁÓ¾'õ¼Ñ¥oÏn­{ŒâÉZ§Œž5z £Ë–5£c˨.1ð¯ô]ÿJ­\îâA«¹WÖõån!´š ñ¤«óVs!žtuÞêí 1àñ%)¼nݲĎuqG«·/Ä«»öMkìxRϽ}!®ݱoYcgŒž5zûBôŒÆ=/\ð°¥3FO½Ñ‚²FË«Œž¸¶ÓFogÔ»¶½ÕOb覾œ_[ùç­æ×5úýÑ+»ùy+×Uæ JN¸z½•ëªòéÂ']½ÞÊ9ÜW> òÞöÕo‡¾Ú?âÕžT®†7'¥Wýc€˜l7ª“&oqâ㲄&óëžñõ‰ñ”EvwG,¶x6GtÐÅq‹gý8ñ¨‹ãÏúÉó=œ´x¶ãŽØ8iòlurÒd~zÐÉY“g»pë`JΚ<ó}W!rrÒ:I©Ê×|¯vrÒ:Á¨?wrÒ:) Ý@wÔÉI“¯_“‰îzìë5¶k’N )éPq'MÜG ÇAçy«7¸I|φùÍyEØ·ºÇ°ü¼ÕÛY]ž¶ã.åX¹£Õ}Òä >}i07>}goL Ï´=6ò“&o0òV/•^™oŠz &œ5ùz&ñ¥ÔRÆ)–Ér£ûÁLž5y~ȸZ9ìä¤É$ ýr Úö´‡ð§cOš¼G>­nÅ㲃^èNÓÍì¼Õ³5:B'Mžgúò h;iÄT哸W99iâÄ9Þ›Ï[½ÝÑÝØ7Y̽ä s¢ÄóVo`•Ä_¿ùØs£6ïdzzÞêí¬®<~ßY¾‰lठtRðíöëçò`''MžíhöÃ,Äq“yÚÐQŽí¤É¶êDÊ*o0öé [yÒä LVت[<Ý *0yÒĽ½:êä¸É;¼·:Ùb]ŒœNš¼9 3 ·rø»õ ¿yŒ—y<|ít ¯õ€_U7†ü&ŸÂ\h ãRz¸‘ãÅßžpâ0#]éiçý*¡Fªô¬=ñqå9aþÏÎÕåŸäP*è¬ è{ðù¼üäþ_ô{q<ûÑžM`U£Xçò“< ® „9zx͹zÈoEq‰…Îvž-…‚õZñ›Yåwž¬ÁÊ|Ç“¶àc$¬û­#ù²Ç…gÀ¤2´…²HßH Îð›‹Ö’µÎ“«…€— á)×x—ž,'#ë'Ýò /½Y²k°Ðýͳù-#¼è7‘Úé uìG®+‘ß/|âGi³EÃÚ׃ýæ1H8¡€Ptƒ€ô@)8Çß$sa-”KéáFUÜ7*ïsru¤Ý)1)‰n›‰ëÊ£‚Ï[(ø÷ noØÑzo´v`¿yòëBÁë„õù¸ÞÇeù ÖBY”ç×2È÷- ¶RÙô$vÿ§8íV…<=‰pf®Fø6W´¾öÜI¦Ž@:P?a׎˜'Q¬E›—#'ÛÊI~£¢Ýõë«/ÿðš’æ_0ÿþ)~øØ28€ÞŸÊü³øçïþéŽüàQ¿û»ß¯ÿÝþÜ6ˬ°Â]©ì#^D×"n¸MãgµðOôÊñ#¦ÎËÒ?âíl üqTZYžu,òM£,€§ºø(ñ©rû>«¢ºpe¸7N` ô ^ Õ-)xÄKß;é4| u\"àLâ èTšCL4ç #µ¬„1àkÛuý3Í?몳¸,ð\’ ÿ˜ã…îÙñŸÓ[9øÿß<ëÎuõE2 ó‘^\ôºzŽþÅ}`ŒÚsÄô!ÏÅK λÊ9ŒßÒˆ¹”8ž®ðäcÄ%®Úüÿnà Zú£cÅsû³£ÿÄ|eèæ—É̘Syú u^–á;Tê+µGbs)¥ÖW†á‰ÍaÔ/˜ØT²ò‘ãjbæºÇRž.0³¡<ý¯h1XŒ¼âòoÌY‹i5/¿¹Áž>íIÝŸþú Å`WXuçTîgî_ÈàcÃ[Ô:­‡÷ÜÍÄEª²«ÿþ^VXÊСk1~@ÌàÏk¼§Ugòw_( Í8¤ïi®X¾Êð/­þö½8:»g‘ä#íPEÜó÷S |¢Âš~dAxÕf\¹WÂ'n‘긱¤†œîèZ¦ªµ=-e K¦bÕä?XX†+C+„­:àŒÛˆ~mºipæàl–5 \=ýç¼ÀúÓÅñð#ᱚ‚!ƒ©&z]ÖWœ~vëÅÓ_[—?Ó”„¸š½?³¸¹=›ëymî¬Úd6WúžÍ©>‘é ­Ý¼|rÓøIÖF))º6nŒTëáÖÂ@DZí™õlf_[?Íe n§˜ÞŸ]'?»%!mð~É}v#«ƒeY¯Žµ ç˜:ú׌G˱Ê.#÷3]/´ ±&0¤õὪØs à*ÞÞñŠá6VÏÿ¼Ò;IkïË|éÍ*ʼnLÐõ+³Åk\-]Ñ‚Æ\ð¦Õ˜=o~jÿ}­ ïš±Zú=ËY‹1ß¹Lh2À§û±ÿUÖž8ekãÓž¤2CIöD¿xh†Êð>ßo=/n‡øe6qúõ«õµeâVÒg×D Ìò2׎,ŠI®²Hx—`t î=ßnÁ©à•ñ}Ç¡P‹?±íB< M`Ç+¯n·ÞÝú6ÿ‰aaÉzÕyxâW’ßHþÌ‚xu}ßx2hÝ[]ÿËûÐDûÙý$,Žx^¦QÐ\åòô_Ü¿ "…[\ÈÈ‚ÙÍÆ^vÇôÍl²Jò]›6­ñÞÍZ‡£ÍÃ[/¼R!»ÅÂZÜÌ8rq¼wˆL;Æ¢`‰¸kÁ¯›?0µçxÔ·®8Y Ìòz¿ØÁ_ÙMd²÷Ëž‹Flã(ë"6sÑ0¥è¢!`Œ°%l]´0¼Ç9¯7 g™7rÓÇ®a‘Àኮòní®Ã§]QáIïêÿÕMö͘ÀövUòÆÇp7ÈA6Âxi¿ŸúÕ|³A­Ã­V3òËJÍ8$Læ ^¤5*ÎQ—À߸¯˜Òk°ÿOΧ¼²KÜÄ&€ß=þ“y€Ì?;¤äQÓŽÇTüiôÍNÁÒðêÈ…úlsHýë0l?äzƒ¥Wþ?l%¨Ífw¶2„[`Þ‘ßµøÉ¥xÝóÃc˨¯Yä¿Ñcµ—´Bž§õ“ ëZû:®ø…Ý †¤ÔÅ2z8Ê5Ð’Ky³ít¼ì}¼ê n&Š&zñSìèmÉKŒ!Öx$ ´æ­üôºN¬çð,ü̬šƒ3‡OÄÝxÔ6è9IJæiÙDn²îö#7Lál¸Š…Zo&;û2l[«è8¥|©¯ëÀZ¬Î÷¯ïÐz®74`ogWd",¡›Ý„èØAýv3IéR[¸3[cÁ³__—9„p O^ü˜è£™±:GMö'6—dâÿŸâ:endstream endobj 1349 0 obj <> stream xœå=ËŽ¹u²ëu¼ïåmX])¾I'‰“±áX@¶zMk2R·F­‘güõ9‡¬*’Uuoßn 0´P©ÄËÇáy¿êûËq—#þ™þ~õþb¼¼¹øþBÄ·—Ó_¯Þ_þêùÅ?þ á2 ÁJ«/Ÿs‘~#.…²ƒÕ¥ujN]>ñÇË«qÐJ9·W×R™AÃ#yûñêZ £ÕÎÍ&àé-áåOÓ¯L8Üå_}ƒoõ „>üépu ïÍFõççÿû³ÆÑý9cp—Ï_ÃŽ~Äá^«eÎŽc¬÷óð?]åéÏ`Yc†18º™i‹A»íÍH=ÀSk3‡‚ã[¡Å3ƒQZÊö…”•a}‹¡±ÅQÛ}[lëÜ"\·5Æ,/<üÇJ=¼›‡©½ñ’n\Â4¶õ‰œá‡x~g¼—‡éYi%ïðY)/œ?¼‰ãíèF{¸Çgç´‚÷óù¦XöŠŒ¦Ïw"*£¯Éúߦ5át1xy“0PkSl=O˜ Ô¨)‚¬r p_Ãp¡ßp¡åñ=>j)”‚%—·äñe~ü¸ŒmB/IÈe½áêZ 9È ¿†Êq ¡p-Ý`0I^Á†&x(éì øþEþe‚@x”ó5÷tMèÄâ^aM3x …kØ‘ÑV¤-Rh¾%'· CàBé}‡“¼ÁÀ4‚,îìŽMatm“(†½N"k¢ôSŒ¦Üä•àµb¢ïÌÒ¤H!…/q‹Ê<^¹_ØC‰ïñ¦¿5PO÷šÛ·„ÜnÉûò&š°¸Oàµ!²j˜EVò5q„upGˆÝ¦¼E"¥ŒðRŽa»pL-l¹Cz »B0µÎö·å‡`<% Ø!ìÕ:ëÿW³£ˆçàtydwoC_4 mÁ[UÐÖ]“¶" ÁK“!Ñríxåå)hÑg‚ t¿;î–Þ 7€äŠ8<üD)5n› =;è2ß„ jt\dµF×xf%O''ŸÒïV0åÕ ' |CÁ-à_^̼ „@±:# =ÀVO9R¡g-o© }›Vqc8|Ž”¤|(nLÑC“VikB£Ä13T#p„·R·å ·ÅðI ݧ͎£Ÿ<¾žîÆ{Ý@pBKMGÈ›ÐÝí×ÒÄ™hQ»´Õ›(«½6(–±}—߾ϟò€ùíËå1-¬@Éî‹ø?âh¤wõ6x“eɦ6¨\\vïÉ®jÏi x¿2m Å‹sËø|Ô ÷Y" üÌß-{ô!ª:7Ï tE–þý†zÌ]¯;³z·r?x?.ÇùùIàæ |¸×qóÏ›¸é¬póh`õ`E%‚Êü‰J¢¯µm<‰XλeXæ¤ÆÌežÕãA½ œ±)-eÔù®3ê#ùš’ƒÓ1þÖøšóNˆ£øZøšÙšAèýl ¨-÷)ØZ°c8Š­qhŸ“«mn½€›ÁÉPZ cÂì䆽iA0•'²@¢2wÜ ð¿pÃwa Ÿ(ÉÂ-Ôô³taÀ•uÛÿkÔ²=™¹ò|€6 åQÔЦ¸¦R!rEÊ󶤂^®`Ë”¾V PK Æûv tFlx“œgsP·x“$< œJ¸â—÷éµ¾eÒyíN0épÂQ¸ÎèÙ[ÌÎÌ›Œ.\"$,{ŸßV!Üy$Õ&AÓv”»%ù*´ÐÜWk ‚ 69ÑÆR?É›‚Ë÷,MWq^a¤ÄÙ~Zñp‡,‡r\êÒ¡®èÙA¯EÁÙé|;¹¼3ˆ‡¿\-¾:jª0ðÄÁ!ºga§à×;:Ýë["«Qš{=HWø0©4§†ÍOóþ ó~ÆÃEÀ Ádµ-4ÀÜ}Qd[Ë]¢“+¸ Å4•»P²8wqK9¨P„&XB¢µåz!'›  ìy¾;¸ÉÅê¥1Åp„¾Tüƒù áµÀíéTTô"Z·<¨~ðh£OiVÃã˜ÑÚ}Ôt‰f ùã,oÓä2op <%ŠßgœÜÏØ Zo㎑‹¬{Y#Ú7eõ ¬ë*5\Š ZúlsD ]ÛN#F k­;…úá÷äÏf‚²ÌAú¹)^ˆ#¨JŒÇ·÷LþÔÆ üç|¦àš‡‚èM§@,q‰ŠÛà ;ß Âx{ŠÂ.=ˆþ(…ÝÊÁJ©žTa—â«QØ \K8BaŠ °ˆÎÑ4ëu ,•r>…3N¼?Ba±äŸÔ5m÷LgÀ´_2üáúúÏt_ínx¦ü¤u'û ®•ðèejÊ䡆åÛš÷ĬyRGH(Y+±H¯õùØ,cdotßá½yR¶öy¦­3FìñCxãøêØ愈ì'Ùq‰Ýý$7­÷GÜàÑ ï¯mîþ€*ŶBçn0ĤåÉ| '5&þô@c-ñ ßa+?„ÌÞ÷Ÿñ›ã>j1hôü>êÈ0e˜vÃÒ[ƒù˜÷€ÈæäÈ¥¶°ÄEâlç|ÿòh¹p ŠÞ.<Š {>¹à†®” Áò·)}¹º¯€Ý£Df„ùÜæÇ»üø:?r¦– y¿Á¨JÛ`‡\ÐèÚ+åBæfµ±©`yÉÔ«G÷u"û•V#,ÉÕ\ W¡öSC—l(F ÔÌàºâA…R<¬Å.U#]«»d X©bÍq¡tcéñ}~¼m>¾\ÄWº±þVµ,ñ¿ÿy°c˜z>À´iQŠCÆXüp-í ¥ñi2µðû8ƒ F“í×fy=á l¢¸;3Œ"ËË?äÓþ:?þ.|4BÆŒÌzÀàø·ç¿ÇãØpys¡ÑQÿ—‹ñò7£õéqpâò=¼°( –7ï.þЭá;_JD|Œ2Á™Y*ù]Þ[¾ªtïéçA~)K|›o˜Üû »lvO&&bm  o½fò˸`ur9+ó`† <€©&ß%_¶˜]¸éþ>Fİ`TMiò fíèãž'«ù–,rK¿ÁÉMÌËôŒNhÓ[è}Ìùm”ÌÉ›+œ0*´u6È9ôŒƒÈ€I¿Jª…MSZ£ÓòÕUÔ „A(HبP­Ú ndvüÕý’ŠÅö¼Çe‚¾‰>òG ¤£©ñ‰¡ stf-uùãZË=ÁÙë}nÆÅh6"S7R{§—°]åUq«1 c0?Ýâö/qjPù”®a-1#bÐNùXê… 4±Öi;9!3$¥¤q¦oÒ±CXê ªÓ¬«0ḠˆâÔ¥~=Ÿ.Y:ÆU)ö‡ñ`ÈÚi¼öxônÄé=¹ôE E²kixj¢Ò…h°ÀÎ tY`‡k!§”/…T=1–¸GffÈ‚ç6U™^iVJHévH´ô¸"ÑS5J4`¤xK85ÖÊø’ÁÀ½¼Y_|—“ô‚) §@üIÒë·y?´ô“¶mí’E÷¥Ôõ,Q†àŒ¡ ,»KïwñB•-˜×mú5gºÒC‡GŒYJnIXEͲ$§0AÓì-IKÍ$\¯°‡ÿLh€˜>-íÇ‚R;µfŒnð(ÒzšèО$‘-šè‚gnõ+cTÀ`n«å¬bM…˜ÝÀŠá5b§dox¥ €Ëà5Î`åjùKRæ“ó'Žf¨ÕHfÀ3þ@0®WæÔǘexô 1©íÈBUx»N4˜ùëXém‹.4ÁSØt|˜RòqˆLŸÓÛIÖqºVòAëB*Qü1!°ñ=Á÷˜Û¼R1¯Ï0¹Ìá+ÓvigÐ$ýÒyK2¢E}„JŠ :h´rðX+HÚ¹†‚OÏ$œÃÃ+Q0¹~ù_#¥-cº ˜»(=zœA &æÕ'ÚÑ "y)e3i'VnÃóXÛ®æYKd£y©» V'¦œ„¸Zø`J^J®ª© H‹åµ…$‰Òùñ>?¾ÉŸùØh)¾+”‚ÚêƒW‹)ïl#ÙÊ'“¢¬¾Mð²£ Y ‚ôDÔÔ”4â”Ü/µ—   %²QIo¡¬»Äí+©c$ÑŠL›vÆLR8áhܪ‚!^ïN„Áõ©Žª7܋ޠc-0cñ¨IU²øéÌöåtô`ZM,&inEÁ?ÈàÉ$r¢D6:ºÊÚƒêSYL ×š¬K¿O?“…1ÐöA‚ªlIÇG÷üb&(f-V zŠ ËxŠhí DQt¥ IºI©ã]kƒqã>·Í¯65ì"p÷ùY“šX|µÛÅ‘õ/¸½Õ ™ 8_(ûŒ[Ðvî;ÉmG*$½ùúCÉ=GÅí²é¥ÒÆ!?]¡ÌÒ.æGjŒ*Y[RjÝÚcÎ[Äp^Y«B³sÅÄ>pM§}O®¹Š•k>-@ Á2¿ÂÝ´J8[âá5Ðû°ÔΩ}ç›”ƒ­ÌX-A'©'µèû¶a÷Ó4‰©rbpE½*áð‡RÉ^‹ Šu¥c5b˜?#uÞ$3ZDÃ~¦úl¢[zo~qu xyŸçÕ:µ²XHéÅ[­È·JŽœÏáßx]êi“ÛNØJhŸ÷6ÞºÕ˜z+0bëO„géÇÄÍŠQo™˜¨q6µëXÞ–ÔÛYí<_Ih›¹Ô#Ü»Ð.2ئÂ-oNð·Á cZœb…Lþ¶ß4£E/ò–?ä·o×½p Ð%䌊“ÔÛJ˜E©IdTØçþÐ ©x4TkÀ¿šŒ¯ÑO*Z,ìá¦gÜ•w¡4‹k+©{5 ”ÃÒ@GÏ¥ÍiVcÜAî2 #¤tñõ”µàK$žD¤ƒÂÕêà Â²;³/û=ŠA‡õš×Ê·L i*ºEþå+U!vÞÄà*ÚUFÞí±-RøsÐà€…€N×ÈTá,*¡Ð…«ý]&Ù×Ùlç† ðÞ3Bæ‰] ~öç£õõ…K1Ó]s¯#¾¢ÉæÛu9< ÝÙ‹r¾xŠB/$Øl`—c¡;ðw¥Ál Ë‹Ø{lEâC «!{ÿ曆‡8~6xº´˜=Ý ¬<ŠG;^£ÑW˜ïqlêŽ3—F—Ðöø(È<¤g7ß,&ÿ-¨ÿuûÄìË&‰1›ÛÄFJû™}ÊNf¯@âzÑô6¼ÇJÇ5ôM) œg³ü°Š‰aJƒ™?’œ›8U’CÚê£8{Kx'Déû’°ü.d_§s£áŽ.xkÖ«ýpì>K&z›Àˆ¶¹áÃ^“fÂÐè´1)ÁayÝ N׿ȶµÜyW×"Y†) ëC“§|Ìò‡d“}j:ž_n0XÂÍiì_ñG!8˜u`+E@¢g+Î`†.kžëXm†È;œS„V®=‘9”f|S®‚ïëu­NU˜Ý=°Zô=—¸jPÉWquÞtÇ?r7ûDjzíEoyxò5."±…Jî:„žöGb™#"Äjêç4d0—«ÿ@Èà~ªqFM€Ä'c?—4%=Ôݯ¼ÌN¿ïqçÌKž•j›i&äzÆp,iT•²û!û0‰â”óf»1”3·ŸfýmÊwê·¬ ‹ýøŽe;c¬¶("I ”3$Úí°ÑX*ú á’'PÐâlé`Xd„A÷Zå$)d q®';é#=þÄû¬j€‰}µ)ƒ2¬.D€×ØZ´´Ábf…Çø~<—Pâ¤+pc¶$& 3F¶) KH±Rë VÓÒt;©ž¬K®'Ä*Fäçá‹Ï’& jï\'“œª‘&­Em'œvÞƒ!¹Ûcg±µB(‡ÓÂHè§7}Þ*Hǹ µÜ(.-†½IœH¬ P ÿÊae#QÇyÁá„ìV;)Lï¿.~OuüFþŒfµ—s[ŠZlK £žæýn=œQOKÙifÔjŠaÙÒ¦†©€\G4©'}Vûš”Ò L®I)­Ñ^åèXû`ÜãjRïÔù4©”~iʆÓL“ªâˆ±—¨Ã4÷õbN„ÊRígŠÖzN ÔjÛB´Yçñ²2ħä‡J%K1Úþ)?’À{ÇïVœHŠL­8QÝæ; &±nçïÀ$R¶»]OO•2r;;"œš0NÖ…c!ò§6Åy€A2– ØÑîbèÑ™dGšG£{üTRX:Ù<«®‡c0vö{ )ƒŽ!'e7JGáD%J û;£Ô]ù.?Çcè°¨Èq>>·áêP½g"ôUKN¹pQ„~×ôÅ“±ÕrmúÛìê  8Ê:°(åRR‰EÄU%ߢ»Û5kr…Äæ\Ój±uü팱®ø¤D딞?Z u8U~Ög·¦ŠùŒ•5R¤œFMµÌ»¦îèY—PU?»{>_òº—MÒ‰¡÷@Òó©ÆWDG¤àÄý¤j=p¢¹þE¤¼jüœ)`¯œ±ætûfÛW>éùà cw 8 OR¦¥‡Þf‚ˉ_η¨0ãNVnaìË(eù+ªW¶|Ö<³RL:\ûÈ Œð[j(*0Ý Å•’»”ôއTkh¶Mˆj¦ ¤tÒÕ¨Cœ’lµ'L<=utR‹¿hõjç(Ú–’éó,A sê÷åÉÌïäŽúD ÖÞ¤îåzܲÞÔÌ-û(ëfn¤ÃÈ+d¨npöæ?¬û›À>œfi¥u蛄uixŽš$^ß~—Ok8à†Ñ¨ýýh@ Óö?ßp ßþ'ÖºY…\µß!sNÎêÄzisX1‡f±d+åŒ&*˜;˃a4~_ìŒIóÚuÆeÚà&ˆnÒ|Òï˾aå•-,–WŽD,V|€¤“ß<µ)Ûˆäf:;b[­$ÑÇ|P€…–Ó6>6i’t&!ŸÞxš õT”Ê>ó–´YÄ#^ 0ÃŽ#¹÷ãuà%¦Ñ…R‰¥U"«”%ÞßTé¥d“¼F•ù,%ˆyQiÅ{R‡%Œ\ÏfèX­Ïg‘ÂCü¦bá1­ZÕGªÁÐæïA­×p=½£s=äæÃçg5œ¾eUºŠ€t›>kü4H,ªôušX° [†#¬Qu”ŸÕ[Å€£¿«W:jg%†D v® Üf¨’n[ÑL‹o±ø¯ìËV[Ï傞,¯°¢Ó0‡Ò2"úÜ$6bhçýǰyLÉžå2O\êØÊÛ%®°IGPOØÓ°lö,µh;Ÿ¥•º»ÎB®•Æ£«WùÒ’w©dLìjniã·.w`KQÛòIˆŽôdÜ : ?޽ø¬ÄOª[ð½ƒèð»h@'®mxˆušsó±Ëò•PÑ'޾_%&<¨ÍiÈÝ1ûAÒZXêé#pGëÓ Ê£p¿@¿ŠmHôQw­Ð?ãXçñ}µ¤§6-u¯îµ¦…Ew¿ÇÏŸƒ-¯ºéiHûí¦[²–1CŽA¦ðª~{|f0þ,8Á0!¾Ö£!l&—À“5Ø7A†©…ówi&Üì(“ä±íy¿O»w£?¥‚À.HŽwBxXÐGKƒß¥:ÉáŠu3É&Á݈†‚?èbÙ§Ö=Éñnj|4ê–=¹–Îb1±îSÙ3:°hôIkÔEvÕ·öŽñ×Ò°Kp±,Ì°Ú 6 ”n£v4…·w¬¢)©Rh#š‚]•‰·tJÆñ†eà^ÓBÀx,Y4Ï¡-ä*EAèYQ˜ÁŽX©œZ¢ ¾TMYvè¬ä©´ù7©ë2vmÝ.p~“z1,¨¹¼:Wo„ôâêrΗR¾öÍç­ÓÊqG®„1"oÑ…óHÜNï‚§tDïÃZüvÝ^–«=ŸNaÃÎ8êu3!~óLàY@yÅŠš4ßÇCÔ$„˜ê÷hܶɤƒ œžBûé´DSØ[ø†Úº}LÁi¸Âsª3µÑ3 ã‡Chæa‡„‹F\£]t¿l Ú¢£[óLE°ˆ¯º^{ñžë±àfÈŸ°¬†}š7"ç?i#áå0̳nºa®œ-Í"â¶BÇ4SGðèØcb…éã`K¥†“²†v³º"³5U¹€™™¿IÔÕ2Óuµj8Á )Ó×鎶“¨¦õyäæ|¤4E¦xúò†çIœTâðÌò «Ök5‚‰É{b´}ΩšÔU³,l'V³Ùç5)«ì„V<Ù8‹¯ £çå˜"‚G³§§ˆ´S |@V±¿Í‡¢¾LžNçTmÝk©A0kÑ#I†øÃThÙ¥¾Òÿa±[˜gŽÓN,‰î‹4*À”˜I³™"væ‡-{qHU5þ˜ý8Hr¬¨cme¾Ioù³G,ì ŒÍóΊX ·Ç#òb•é|.þ>í{Á­P!‚"8–›>Ø" ‘ýi«øw5#0Íjû‚y‘ !Ây;á¡íScØ‹+ª ö£è";0,ƒ†PýEâ*×ð¶~¥Q÷‹Ä¸+kwñuâ§sðˆ9ݽål'ô­ AqŸJIœÕl¾E¯J/WtÒñºe3óÄu¢•«¹&6:|Á½3;ñ%îO¯8‹âæC¡›¦©ì[Q´­KÑÒhï¦Á®ìÔO”5M…µdð>*bFc‡…™y´>Ú¤öäMÆìBüzJ!{f¨ÚuÁ†Ê¾»“zõ‹Qc®ñ%ÐÚFmØ|9ºp½ÇÞ&¿¿ø]òËëendstream endobj 1357 0 obj <> stream xœÝ}K¯7’æþ¢1¿áb6uU(N¾™³›jÌôt£€F—=èEÕ,lIv=$»Êv=4¿~â‹’Á|œsdÉÁ…º‡IFñfùçÇåâüÓÿ_½{øÇ_‡¼>~ýýßœsù1/y¹äÇ£,…þ\Ýãwoÿãñ›q.÷ø·îãñ×ÿüJ­—u}Ìi)—µ>¾ÛAÞ¤øKŽJZ/ZÄ5^Š7Ï¥^By|õ0 n¹îB^ „]ë2TG¤ô1å‘:¨)_rnê –pY\¡Ö|ñeôמe@tЂÓ[Q¬[ª6¤>¿zøÝÃgþñq©å¨åBXÒ¬¾#ÈŠ‰¤\j¦Þ ™ @ü*õâ’@Ð@¸a!Lbõ¨Çý8.)Ìz©Mm}´ÐDR$v[SƒTB7FÖdHa–ŒÄnAq©¬-"©óIЉž3M4?“œ ´ù%B^Tn$§%‹:U®!9hƒ9dhÅ ¨ýPk LoG&|ÈcQ[D0iÝE_˜é¡u!¥¥Ó-AH»ÁF9ffH•·è™_O‚KšŸ j„!4'ïdÆ}p—Œ&>©ÔƒÁ¡îÉxe|d‘SðÊ>²Ž Hno%ÖYÛ[©JR±úVŽ˜õD/Á†ŒsB“äTè=© k¢•ŠÒ1q ‰dN¤.½Ì- ¦=‘*5éi’ ú!5' AÉ !¶fMŠ $‘U ^4`‚êgüB½h­„ûBÆIkQi…ä`…32φ$ËGê:BuDq!u «K:I<V4é51$Zz‚4Þ Ä‘XLÞ‹“—ˆ_²„Ø€¸È”“ø¨º‰‹L91ºH–´©:ÃÄû¬8h}/Aú¡¥‡ê¥É†¤©a½Oè¨Æ$/+C¤A$ÙÆ4ß^F&Y㥱Q¤i‰@—ÄE&<&öCr® ·GÖ\9ÓŠè«ôA¢·²V‰0mxƒ–¨=…E-’'Y"1¼—B‹&Ý&ƒ¥-KÚ Ix¬Ê™†}yÔN3[âⲪ¼¨–¯®’U„„“ I.‚ö q–Ë3$©†KT"œVÛ$&ÕqBr²„i(25ÕOèïf”1§q¢Š\†²²iÂtÑÚ¼ˆ·S×µ¦ЧÀ¶e»…­‚Y¥B¢%æ y,¤xƒ CÈÚ¹—ÜŸ|Ét}ËÉJ® Hy‚R -iÅz™kiÉ­†3ãuá9“ÔÒ` $Ìw¨ÿ¼Š„xRTO Ú ˆæTxRŠ@ ‡·<0Ü„üñì’çõ5š/‘»V9gµ*¡)°[E¨j#E§š¯Š÷—h±‰&[¦”'M @ŠHI2ãìù3U)Käˆ^‘¶È€Ô¬ÎF"s³r²nUiO4—˜ ¸ìâå¦URÏCð#{Ñâä%ÉöB\ÕÅÊNV=D8 X9UBT) ]%JÕgwú“=P[Qb„½ìƒPwb¥²úšpÚDÉÃ'[I…Ó&è$~ôêédÞjÔŒ, Ú9yˆ4j‰*\¹ðL’Ž­ºTYJÔ"‘ŸÊ©N$¯Ä!ÉЀ ‰*p‰_B K/…ÖÌ3d°8v¥H-ÓKGÇ{Ö€xÎ.ý& Þtt”Q€ËU A:íZ»Ö_’”C M.§ ¯W D¡¼Öª [à…Au’ËS’$‰¿eóB´±Ê#5$J°‹7 Þbë§J:¾¦†s\%ùŽTtmÞŠ@^p&¯b›@8ŸÃ&µ2ç€@VykÃ5’ÛØ")ð̹TUä$¨Ïïq¢±Nmìû j›°6T`?Þ¢C‹Wâ„2$·u9„,bŽÄ/(¤žÀé0Gm%< öÛ´É"fDÁ8TµOIm˜™ŠaŸÀ`Iw¤$Þ,#Z¶O¢ÉŠçÐ‚í“ØÂBsPÕ>‰:.¤5‹·fÅñìšMµâÚæ\Ûx+`k»7‡èTvâšoÃÁèj÷ø2r Ó®$¸f»W¨2nšˆa†DÝlCQàËAó@‡ENœŒ)4ÓÍÌFU†KT-åìèöf›¬ùƒaÏɲ²Fä-UÕˆâƒ`Þ»Šl®ƒø‹9zÝPŒF±"(† ¢ºWHÞ†‘¡Á:¤SY½9šl±ÿÐá˜d·¨J—䘶Ù,^é4a%ú“ç5{I!böÆ>a^T>º—q¯û„¢°’òn^—×Tƒ°:æLLyLEå~QƒD@rP*©U´‡x )Kš²,I7'x+06ûë³ø·jüI†(ZQd‘CP´AªL’·÷KVÿ’7ÔvòÂIÞ·\rºcè}0Üx§.øœ>†æö¬²à>5/4‹—ÉXEÝEõË5u,ÙZbV‘¾vnFõ@î:Ã]«n·úˆY]‘q³cvÄ ‰ë†ýv«O€*9KuŒêË#há*ªw´2QÏUÇèŽVŸ íy«Û­ŒŽ½ŽÕíVF]Çêv+dãR1®Ø;pü?Ÿƒ@=(ê^{®N_!mê8%ª¿‡âÅ,êÛý™»Gû@¾8=ö÷‹åÙAy~õÐè ~ÚÁLÀ+Pþüˆâj§vVûR‰«:Äóÿ4L”´üÂÿsÕ(çhåù*< 0´‹nµú³Œñêa@2×—Ž*¶¦Æüøêaà ¿7õõ ²^Ï“²iÑP“%Í¡ZqP¦Õx}X}6”µ oí ?ʆ0o­nÆÇù’Bž i½EÃQ{ØP1¯Ú3#M¶VPÜç{âþxþŸ”kÖºþì™È3ŽÃ£¢·ŒEë[ýYÆÀ ‚âèð8zÀÞU1cÈ3¼7,Z‹†¥ö°¡ƒîù7-ÝØkQß½[Ñî}ܦý;bú{û½ÞŸU7€(ïþ¾*÷±×´Ç ·hj3 ó¢=#²TAºioÔںȻ Í·-Ån¬QÞ•†1GÅ1Û^}½?7cÝjkÛûÍ÷MÌn¬½EÃP{˜IhÊñÙ‘ÅËUPü¬ÒïÑÙ…|a®@W•žW§ª£)ýœ«ÔEµQkÍ¥ƒþØ•~‡¨Êî¨JïCt¥ß‘ÐGíaC…,Ù3%M*åµÞixX¢þj›øšõŸP,³zëa¡›ý%mÑJ…Zý¹{X¢.RïA<¨>Dó°:ú{CQ_ßÑ|ýçHÙ$kƒ´QÄ34Ä» ÒCõÊp­‡þÜIëÅ­÷ ¨÷!iù½£¨¯oˆ˜EíyQ6-(KZq¼È½[=gÚÇÕgCZo¡ˆ·ú³ŒaH+™W*_.0ÆgC\kѱÔ6tÌëö숛”ä0"ú»IqSïṀhz µhzB;èÝtˆªïÞª÷>D7‰Ö¢á¨=l¨˜µä3#M~>?ÐuIˆ" ·´J`.Š‚W®¥íš$ાÔF9˜Ý;èÏMÐDTÁè5EAÉÀ@VüÚËþÍÛ^4ñ­j¥Êu.£¨¯Ä©õE¯ÌŸ·Wæ5ŸØã€µŒß9ß_oÏê°€x´ý}õxG•aó‰;½Eðõ0‘ÀkõÉš–KË aÑsdлՂ¯QJ)φ´ÞBQï=´gÇóÛŒjë—^™ÙÓgC\oѰl=ÌtÌ‹öìˆc•ˆ´ÙVÆv€FûØ(=úìŬ=Y°à°wçQ¿Òˈ>ÇscÉÐP¿½ßR½|¶' ½Eðõ0‘ Zñ’5-WgÆVêÝ*«õ;3vÔ36Ô3öçÎŒ"¬4zVc4fX´ ËÖÃLǼhÏŽ¸IIö\ê€H&´K°fJGzË¥v-Ð[¨–è=´ç–çÉ„Ž$S:Æh¹ÔEkѰl=ÌtÌJòÙÇR—S0Ûxï @µIr¨j“v, k“TGº5e¹k§½ÛŸ[:µTðËMKôƒ ]´±{‹†›¾>#/’ö¬š–hèŽQÝѺmº£ŸÝ躃ñj?7¤Ûëý¹ õ€¨ØËëªzï]kôñ[‹†Ÿ¾¾¡`^¨gD/޳ï>ÊD8ò7X¬Žéü\`¥­¿û5òMííþÜX°”‡ÚûÇúyœÎ…Š@oÐðkLÈb=;¢¦¥,Ø!ÊCÚkc±6ìàÀ†XkÑoôç΄¢\Ô{P.ëct>lH´ ÇÖÁLż`ÏŒ´ÉS[·¢¯Íi³ýœZߺm®P³ÈÍUj¹?w‹Ü!ºñÚ{ÐÙ>FߺíX´ ËÖÃLÇì)>;â&‰ÔuˆR§шë‡;q©Z‹Æt­ƒþÜ7Ý;DQë=(ê}ŒN\C¢5h8¶f*f‰{f¤M.È ­Cµf+êýÐi'Žmû¹Yâözî”uˆ"&¯+Ö½÷NV¿µhøéë fä‘õ»)SÅ­4¸ácTÔþæÉ½xÉ7ÚäøäéÏ´\ïŸâ‹—Áão÷T_öÀíOi4Í/þÏçÿJˆô#¹¯ž ^—GÜfhý†»ÔWÂè’z÷ n[ŠÔ{oPÚð„Sfàªãí\Íù’‡«ÒµØzÛõÀ¯¾ìïò×|‘—ÄWë‡0púv¶Pߌ jKy+¦0þ Ï ¿r#Ì5)Ø—¤EQÉäd‚8¿ïJŸ P ÖƒáÞ‰Äe‰„/1’‹<Ô'½ùÒ—K\©÷K^(Òã÷iþˆçp¿$á‰÷m#"ogûöKÞ;þ%ñ/ b:¦yÄ/ØYbÁ/¸¯nPÑ»ÿ:ùY¶ÃrY9 þ3[Á/íïL®0XhUÌ¤ÈØDÙÏf’õ5>›GÄþ èñu:† 3–“FŽÊå…ãÕ.ÔieÆsºLÿøkÜ,,—ª—üÉÊ u¯Æ$§ÍcúӢÏöu™ùÃy™–ËÅK]‚¶“nÒ a]ÉêûPߥuOË–_Në70ÆÝy™L¬u}|‰Û]‹Ï:ŸÔÕË„CéÕ—74¦€—0\àþï47çÚˆ¤ç¢æsÜõÇM@)zÑEÿ“äïâšÜÓï_dÌŠ/O_¿X.¸q8®O8’?ÿôZ/9bo€#Í®¯´.½±ùó¿½x‰ûõüß_€@¢ÐÙôÏXÊÓ/p»Q z/£y¿ä§ïeˆ³mû-b^Š´€Ç}3žo )?pû´¬Kh$VGí¿1í¿Vbb}úŠ›àRÌj‘ývöñ) ?õý;Ó&'ââ˜j_4ݽ–Æ!7dšØåØáJ!¿|–¡bÚ@@ ÝùÊt7a+'+M¬ú“ý­™‹‰%É!¼|š0y#Ú/£t¶ƒ1óê’ÐìÔm½ï׊mðm"¸?¥˜(›WÖþm»QJ=éP¸kîGfÀ‘@u,Š'¢ ô+ÁŹ•¸P¸ À¦µlÑ/qÑ"q´ªÓï³L¿¿¸ee›h+D†íº¾Ö÷\¤ÎÆD|1^<£ýõñ€c1ΖcqOe%µÚ¡Ј«œãӯЅ ±Ô™m×v1-3}»C¶­=¬%ÌÖ¿_ ‚˜4 þ^úÀ2]“4¸Y݉¤hµ3é2Sÿ]“/Xó}ô>~!hòtLwß¡{­~¾ÇâšäÜFÚ¾_fgË/?ÈÜâÕN¸…Rœ¥³bÚÊ¡,A>Z«¿ †",J KÌn¢n«Á÷‹†:›…¼ mÖX7æ§A_Ë:-.Ü'qó:‘gIbñ7zÑ/$ýsë Éh]‰bËç–«W¿8dµ}ïgËÃsŸà’N#Ú¹ÿV g–‚oSwÎ~}l( ñŸN¦ö€MÉ^Ü¢/4d—á‘®²k{ö¦…¿ï-Äe3ƒ¼Ä­sÞǧ8ÁzõÈ[•Í_í(áë±1 [ø-D,7©Þ õ<³KofÖRˆóÏü$«Ÿ•õ«sÓøß ñaÊ4dÑH _(ÉC´›¼8k¡¿˜©ùR n×^›À¼K–²6ie†´ŒÚP&®iM+„µw¬¸“3´u hŽjÐÒÇ;v߀”rÉÄøû1ûSWtëç.øòOÞ·çOjîü\ËÕÌi«;ÐÎ,Ií,|éÉùÂÇDˆÔ–Ú!ö=~æ˜íÀô+‚³ðFf¹±qè†C®×ãÃ@Aî_imS1Òyü`eŠÆËZOÙOr8؆8ÃÖ¶[‰³Í’tˆ ΄’Cþé³å«W)F!¾Èú9Bž'¿¬sŽP{ëÚ}A]×/$þ\Ý©a¼/±%1D$é3>æïŒ˜Ýí RLÛa•Ê†ì’ @¨qÌ<È@aÏËå]­S›7¦Ã¯Í@Heá{Au >¾Óòk¡&lߨî/ÝT8Nß llÚ µH‡zÐáÓ;ŽóâŸÿü7OŸ¸m#šüÍ’8B®Ùñ³EéD⎿ ”óÉʼ´ä~Ãm¸œlëÆût¹®-%òO,GEnͰåÍ+þu)_ Ýѧõƒµ’¼w–'û¸Œ´ço<§“Œ¹Õ`7Òñ»ñ¿Äã~q<é¤íâH䃘º‹¹é¬™ý‰ý ¢ê[sžIçI†àG’à#9ÔµàÝâa?Ã9âÅoÑ„lÌ{k^b²-˜cÂê—õûñ…ÕÅÍë ± ³ k”’¾sÉ6 iŠêÔ¨FÝÝfZùûGþÃ\Ç{¢âú¿Ã¹Ý&¶±Ÿã&¿ÎŸ H§#žÈK',møý20wàîléïa˜Ö]"á}Cÿ.Ó~G‚Æú]päðÝ%òþv¬%m‡ÃSÐò»ÔY¬e‘µ†öYÍ1àëÜ9IÃ' Ö°n2!ž+"!Íx,y=X.fí׺ÐÂeù,Ðâ,>î(¸c±‘l€›YÅ ¨»;BÆìsÞ–7e-üÛÍ»5Û:‰_*J[ßÈûK.G[‹&w~äÏÞ³µèñµ«s1ûé.|˜+ç+)ìC7ÒZ´×Ò Òps"€±%¥°7¹ÜõAî”m¥«{hø8›ðŸªå$ex2¼š# +ËêÌþ(ÏÈZ¯eçAíZŽR|,&_N>Ñ 0†Áz¨¿3o5‹Çç„lf¯³Z:ˆâÍÞ¨Ð7KÏÿØAÏ"¯ï%:ráhŠZB m`œ•èñÒ™]Nå .½ûË`!õ$ÜdÊ=>Î[\sdë‹n,øÍ²& nÉ{?;8õ8œŸþ·8Ìäê"Å5-m·D›óldr僈-¾eÛ„?W|”ó¤ÒŽ_‰—N>“Ä äU£FmýV:Ï4Û¼qX#qàÚÆ÷)kˆáŠ#çJb€@¬Q£v)ÞŽ´ÉëRWE€õð׃hXÈŠ-špWç¿7x}cð5=š9:0P|'ëò,%Ñm’–V)l’Ër_™˜Á*ÿ«iµÝ–ÒÖ[$vñž¾¯{ -›d×<‡Ë³¡E)[UÊ_]ÇÖo·¾ú¦¼$¤]9 Ée–©#u–ý…ªH O:ÕRr’0šï ¢äÐÐéšn=¾ì™Ó•˜OBŒD ·Õ¼ˆïk»¶­Û›ÑÌ×iê.äÝþ sÍH0õ=I€ÓÕ|^sžt#Fè˜u÷\ã3ÆÕlg¶XEd„;·ÊsvnÃ.ÑÖ4­õR–Y¿ŸjÌò÷¢ÆŠOgîò·¢‹‚+›ý8~óþÍq€²PZº U¥LŸyvs<ð'‘½œýé”Ùi²[©¯g­h:ËÝYŸfòÆ*²\îšvÀ„¬G<Ë-dç+ K6ÒÌï¯û6Ìêûvý__¤H*bÙì$°ºØ¤Ÿx|Ýæ›Gª—e.uùJpuu¶Ø÷õK¢´LÇÖ•²·Á£o Y<>¹Ø»£Í=ñ|-ñäßZÝ{RS3­ÆX}äßñIÔ2óÖA2sç0[æ:óìd9»p\öÇìã 3,ñŠÖí½æp°u³Ž­”Îá0XZ„´ÞÎáÐŒ¬±»ø¤±jv>~p˜Žùñ.Ô#í ï[™6jñÞèå³ÐÆ®ækyÓ×uVT[ªÞšÇS«µPìçöçÚ{-寄uÕ¯‰à~k'q–°)ذ—‚…x£DqÔÇá³€gÚðÌÆl‚l¥Ô²>ý`š­%õŠPÔÞí+=®V ~­…“ë¼¹gÞlõ…ë]#¨Ð¤øõN¶Bð•¿5X›ƒJ`µ-¦:ÃÊ®ÏÙ<[¦UNuõ^"jWw1Ÿ[c½´TñèB®#n  ¤²–m:‘ >gÓÒŒ|(“2†è jùhO€·Ë÷8w)1ë1TgOHœ³Àÿ™Ö Þ¦s[—ßÓõåC ×w ¢÷Ò¹[w‰.F-så\,uÛ¥ü³Ñ¯™9«[E±~Þñ$2EùÇ„»xçl»ä•P¼”`6ynÆZf™ÎôŒNù«[PßM‡ ³ìsGîy“+zˆß[ã½æ¬y¨Ú0hëô±üƒÁµ-q±õ2å;A0…¨uVÒgQkªŽo˜]ä³LƒibÙò¬ùœrn<ð^އ+î4TÄFèit÷7Ñ3.ÞÚJëa•©)©Ýÿ=âÆ«0qÝ×¶(€‚²å§ÙÁlÅŸ0ñBd¿n 6WKÙØvî£dߪØðyå!QêÖ¬süd:»Û @ýúdöÕ äÄ;;+t\Îs†žAÓDl„輨NuV[Ñì|ã­OˆÀ«k5L%y~/ºiݦĹظԫ9 n’ÃéœVÃp®Ygk®ì ü ¸ÄZ'fúD›˜)reØ'ÛÄĬ®un­`л›M¬Á¤H[ râB¿–ÙÈ.4.檥oçÝ™qaßÉZ ³¾M¸užþZq®ÉJÃ7½Løý \ƒ‰ò â~|OùìMÀ0íÙ“y=°,÷ÔåŸåÚN’û=ù}þi£+ù†Õ…k‹¢Ã^Vúônä{ô.ÞOF€ì"™ÆyúƒH ׎ݓvüÊL£M‰j…Vöà ðùä7f@l~|@*cªBõ q|.m¹ÂK*KÿiüùoãÏÏü¯­ µŸ&´Òãß–ÇÆ• _Š÷Ù'|òþAÖ„/Á7¾(~v¸x[6«‡‹q Fò] (Ç‹¿qT#kêi¿8lð/})*èï·ms ù8!S.«‹us²nãîÙPíìøè™Ù˜)ÆYÜGkcð¤g!g6M^¤rt„§1K85!ÉÛ›Ð=1\ÊõóèeÄÿ‰*d»·‰Öš~ kQÞ¼~œ¦H¶îý5š¶eS9m @2W»Óìʹç¨4Úõnx„¹8öä~‹¿Pž›6ñב bB®~ö' ÷Wx%ÔlYÂ-+ì’sÕî‚ļ"•ÙAemò›s©“3ÛÑF!¦Ú3 §.¶|’±ÜîìÌè6™–±q‘ç¢Õ3¶æ¯‘;-P¡þ|>ýˆÙ¸uÈ\F”ç‡m~„ó‰{wÜO"Î亅tZä¶Ý Eëèus>Âþ}-äÅÙ•ta ïÅ»\ [Ô“‘÷2Ó™ob¸&eu¶÷HÙV–q¡›ßW*Íô !äGîÓ|’Bÿÿ¢T—£-ë6cPÝ…þþi2e½Ô:uøq5Ï<‘%ã¶õÔøtãâ@—ì‚vKKåÌÀAt!®ÚqÁÛõè‚›¼× ¬Ó] ÍЈØÏ;~'Ñ…Š’;ËÒ½f"_ ü'Ipͧyà$§Øt¢—+M«äÖSwâÌàmΣs]ó­8zW¹°³däÆŸ yH;ø$åÒ´$ñƤírÏÇÚb‡>MN,×Î0Q‹åÆÙ4¾Ö jþ6¹y3÷OêÞù‹µý­m~7£e‚êZÕåp{÷hbo8eL3ï;¬Íž7(lõ9Þ#ãhËO¯TŠçÞãc?ÆOÃñç%\v»{[ÝÈáÃ@ûœÃdà¡"±>©ÎŒÏ»“ü§!鿢Ô>ÙSGËjwáüXX»òY{~¸m6–pvµÕõ­H›§ó¾£ èâáû1Øû¨ˆ-RLíò¹™2Ní‘μŸe>,RR$Λ¼Ìù²ÎYÙãÜœuæ˜*çúÎ Æzë}­\Kö¡Ü÷1‰pÄU‚k¼– ¹Èvì³Û©Nt®¶ >ªzƒqYÙÛ²î%ôv?]…!sù)¢(^9dÃf¥–[J›j;ßòÀSn™q^þ¹¯è&l_Æ»+é;¹¾j±u¨™tÁvËŽoJÛ¤bc–³à¨]'U|‚íyõ³Ïòè'"÷jX¿#TÖm9SÛ0¼•úé÷wiMÏwl/¨ú)÷z¼Ì±\ ¡ºöèf_³ ¹ÌíTWj¨·åÜçÏØ õwlóç‡mvÛüØû>Úæ÷úGÇà“¼Þñq¡ù{ûÔÅ%q™ï©ùˆ½}fB$´¾”¾þó©I"³N„=Ú¿ýýå°*àíøóõÔÛÎîó•B¾ùí“Yò³+µtù±Îg—&ÝS¹»Ñ¤ гèÅXEs]sÞµàî¼ðíêÃ5g¶×DìüÛ¦ ¢ çvU.Ö¯ØÈ>‹Íæ*T;ÒGžÓr%‘'^êÊv0óÇ%Ž6$>ð´n Èp÷D&ûã®l‹oßöpí~|¯b_èÑöÝGUœ;d|UÀ抙Oâ9¿–¾S¬smÓá­­žƒ°Íõ8r'dýBëÔë¼×<_Ú³å#›r,xŽq— \=â¡Kxâ’þÙ4¶bó#SÛðê$l÷‡[ÙÒ|)l‹«'©zx8ƒ¶5s€f á>lÙÜY4éïƒ@Áܦ9öoÈ.iW^‚~¯ç±Í7½ õy«¤]˜oÃÉç÷…Ÿ•yl Nл¿ÊÅŒl¬7N½õ‹ùÑá†9þ‹yól3oŽôdº!ÿvVIò‰áR“«“^bÖ¾VŠË‡û7Êå“;¯[£8µ+•³à\YÂHóY töÒkåôR|O>¨vr7­å˜«çYŠÃF´©;Š˜Öt¶Q::1µt¼à¢ôÛLmà¾ûf#ù‘¸÷öýú'¥%ˆ>’¿,îÚMùLJæ›(1£Û›½6V›„¸Qpè#§tføö®ÐQßd§]mw}ž€v}úíw†©wçìwÇ7ÈË,žÂ*’#¹2%¬Kœ¶p­ÀœÜ}Ùe¡\»îûä¸W€œ­Þ |²ëÎ㯀ñ½•6[c³9µ@­ãrv êÍ ½âî{ ¶CìëœN ÷¹9Ñ6èý…lÛ¢~çNkÀW+ìîÇã)¾vÊò4OáÚ6!¦Ò‡º+c’$NB¹%nNĉ, Ü¦UÙ˜ÌÆ<7r¼ú‰N/$*ø@Õ3»ÒÔÆ ~2/&˜Qî<·g­¾´©°Cwã¾B¹àÖK,»ï*à“À´Ö¿ýíŸ0üæX*Œ ö^:Ä…¯Ç{3ÿ 2_jôQµ(a˜m;D¿ñÉÜeŒI‘ÞùI3 Jdhƒ¼;ÁDTÃÇ:×è,\ôÛ®NІ¬ œí,ßgëPyÓî” éȃÚ_xß2ä®ã”÷LR[â2Ýz¼9*ÈÄž}YèÄÛR&@ÍèÕ CÈ›ÃùÍ×¶äöêëwíîêÛÎt懹 |³ðçÎ.ôÿbä­ý9¸MÍùë•8ÍíÃãËD‘`Mú­I“ôIýOóÀÿ 7îendstream endobj 1369 0 obj <> stream xœå\[wÅ~ß_±»9hèûåÑ€ É1`lA’Cx°-Y&H¾I„øß§ª/3Õ=Ý«]ÏÊáxð¸Ýӗꯪ¾ª®Ù·k6ð5ÃÿӟϯWl}¹z»â¡uþx~½þìlõécÉýÚÞ£Ög/Vñ¾æœfm¬¸•ë³ëÕ›¯¶'lÖqé7Wøl½Ìn^oÙ ´”Zmža³q†k»yŠÏÜ9ã%v—NNêÍ?ßuú\NÃÜ`³òšqùÓÙ_q‘L‹tƒ÷έÏ®Îþôãæ ¼ÉµÎn>Ÿ¿ÅGÃ4›³f‡?8ÉéÙê;œÉøõåÍJ L¯Á}µâʱA¯Vr°v}½âšÃêìØrµzÒ—nµð,]ÍaƒC€|U”/ÙYðãiš¾˜O§Ç/›¯}?=>l ¥-|‰®­…]Ÿpš¯ÏÎa¹_lOø ´ö|sÎK{å6/ðQ*f„ƒÓ…V)­ò›_±Y[휈Øs¶ÂnnR†qÄŽpƒ†õÄá ³Ìl^’Ÿn¡ƒR0Ü¿c«Ðãç8œÒLD(Æßáò˜ÑÞo†í‰R0‰7›op«Þ)x|S&9O˜gÁ1Œˆ€ŒƒÝÄe2Áé¦Èi0æ"x­5$@wr…Ä<“¸¢,‚&ÀO„ ‘ûÁ•D~< gPƒaßÔ©e ¨œÖ‹@ýÙôø Âììµoš›>=ÔÊ$ Ÿ§¸t›WÕÒ+8»6ÆžO*° ËuuòÁÐyìŒ`y6aè‘ÆpÜ•–'•äiò³‹¤QÜÒÞ7qæúµˆY§ ¥|¾åàP㊘ë ð&)ªvtOöéYIXòÏdùÏȚ鶨šü^TC;oåˆjä–ªC€—©ÆwMsþ`zXö¿4GøÇÙûG“j$Ü+kóñ„7¬rh§Z@\±¯#håæ-ä×™F(oK­¢óÜ K»yÙ ¯ƒÏÕ…ÕÁ¿*é|·wqf) 'ˆð¥nÏçËÄå}0+í}aV[5O1›Z–`VÛA³³O* Î8ÊéJˆ øxÅ@N朘­[ì¡„`£ì{ÈABó5¼Çàß]×þ²˜ç‰ã¼çTÎvß|:_¡)í|é °‡°ª¡j³Þç±7œz1{•ñÝE]¤.ÀÐÓÎ@CŠEÑç_‰‚GY’¦±÷w—UœÚ‹ØÊa±oÈÓØ2,pìLýjO>ôdŸnmÂCG!@¨¨L’͑†Ù|eV¢±ÜU› ­¦<÷6ã ÷IiINò*J–Bá9wâBY<6áÍ༪œ8¶r_QÞ65il9ÈjÒ%Žhcy‡”/âö¹À ¯©R>ÿ‰#3ï2´E.úÐón¬0ð‰×™ÂÓ¥Rûb–€ !èoÐW0p¶À:]w«V<ŠÕbà[€”ì—¢žRœót Æ4,‘£DÌé áõà¬ÜæYþRÕ.ëÛU¶°¨Øïãåý;€v‹›×šÏ;Û«<#nÅ*= '®¸ŠÓàþy˼„ñÒF‰ØO -­{Ç^‘(°ÇÒF,’ØËÌ8Jc_Ú˜1’Ì­ÝoÈ'¸·ª"ú]RYÆÀº´ µ, Ê{8â£Ñ‚GUä6£_láÊ~TÒJ!”¹£3 îÆ8É/åôô-±ÔÈt"Å/v t[sh–iÀ šü…‘2Šóë NðU\¹»`RN>‡U¤4á+Ò~óšñbÚ…äÔ`˜+F¤Ýƒ “ƹdS¸…«<©ôÙCpÅ¥ÏíFIIs–¯æë ]ëÜÊ_zΕjä/…69™^)!ωÂç–% ¯P$¿Há7s•ŸO¯}ßìKf#í˜ì]I˜Ì{+xV`ð=2PNËÎ9uÔkSÛð{‹ Õs RLÝ8vï%L¢Q@š…˵Ÿ¥jN)ÂÜ9!.{|é E;PÖ~‰+”ƒÓòˆqÒ(`lx¶¶—;Ç&„ë2,<(&D1 •`'6¡Tô6CèÍ/‘NYÊd:uYƒdÖG® ç)s-#B)1a‘Rà^YJRç „f*¥aŠL"…J‹+qÿ·°M`e¾ﲇJhc®{fTn7±»l%ÒÃ9]Ƙ?¯ßÓÓ=2|Í3µWVY½Œð"‚º˜2°qÖ%ï!5Ê9S]{ÕÞ_/T*íl)\•$wè`Êã)M8 =ûé‚x¸ºŠ5Âñ1†™¡ë"Þyà#2žB1¦tEªÃ1ó"ªÈ딦JCäÀi²’Ցͤ׊.8a9I“Ëf<’õiš&·q7E÷x›;óžéí³ë0Å©rmg2¿‰@#ß3nUØ®(æ9 |%öº î¹½ l¸§X¤{UsÓJG'Æx+ÓMƒ%èŠÖ«RÇCY7uL Cã`O¯{ ¤±B/ø^6¦jôLÈœ…LTJ‡#/S1^0ƒUc¼@É[»,Ä»qnXÈ•ÐLNmG"§aVŒº÷PD¥Ô¬¤–%f/öøÿÚ¬&òÍ!fe¤ KÌ ¦ãåìº=´6ïžèx¡ІGùÍÑÄ&àÓ?®…QNµÐÂàÖ°P *ÿ€V ñK-Œ@êõǶ0¸x¥ì˜…ð“.[•F±±0µÑXba,ÃÊ ™òÁÓ¬4ßÜ ØóriÍ¥Fì“úA¡û@ªjJ«¼ÃÛ‹£'ý¯øf¨Ç¥“Òþ;Ž¥‘ŸÕ Ì€t´$¤Ãåj‡zÜ‚FØ|¦;ìò̲Õv9D2£]+½ÖÖ<0¤{ÂK,_[>À.ÃŽCÀ¾ï¶Ë3ZVÛå|Õvyf­—Ò= ðuÖg!‚òƒsýK‹‹ˆ2!ûuGcV#áËQ‚……¡ù`I M“Ç›˜-gŠ]©?ï"ê}¡™/&pE¥ )Ù\ì¥S¨0·pÍìó˜æ* `*ðÚý¬0¥J¹åQöW¤\.¤$Ø7¶Ôîà (ûŽ6ÒÞWØ["·¨n4”DÎâhmZ'ÜOìåóû™èi¨d‚ÀµV-³Ô©šš;¬›¸rkû¢ñh¥³4S9£ž)É˜Ý 0‡¬-/£„¥õ@×ÈŽ¡÷=5Âe AE}äMl6ž×Ó„Ë+§f7>i™¥g¡0í¤R+@ŒÏ¿—*,î8+Z”‘[Piýà=PiòAÁ—UÎnÆŸ‰õ~tǸ‡ìÐu ’RS†}Nœ<1SùN‰µÒI‡˜Ìuö«î7êìsÿ\BЮ?Q+ÂòÙN¼)5\·.ýƒ šßK´ª]âUˆìÌòÇø8^ƒðƒÞÐå–%º*$ŽUPyZéä쵡Ê#‰ùCªr¯feß¼Ñ,qоðÏÚÇÅÿµæïs(RªÃÄK¹`2ÒÝžl7 %×8Õ}¸¦[AØ´+ÊQé%­#}ŒgÁÀDŠÜ3âQ8 ûÖ´Ò´;x¿¨uqvsYi5Þ\:?¬>ˆ…m"¦ž˜ŒÙs1JœzÑCE­˜TíL§ê¦K=‚i8¾)»d‘¢œªã®âFܧÓGý Dì[IŽ™*¼½ËO€{Å­½žíå@Ý>áÃ4ÍËr´†ë|éô*%÷ù ¢ò[.„¯®ŸÍ{O’ŸÈö.²_È¢*Kk«r\¬pþøÌ½º‰B1ùûH9í×vï?¨Îu4¸Ò'œX¸YSž¼ÿfÀ±àvF“\u'1xw`Ô®÷§4Ïó”Þ×a=@àD¬ÙãŽK•3•JH‘~üTdPCó1Ò‹­mÃ'ÅxÙöcé`yew1X€˜¤eÝÜ ˜Fôä¿Âª´ü>­õÝB í)ZÓ†5Ó"m8½-6Läè½³Êé_„¯^ò†«(ÐP;^D]V¨¤Smà'¼‹É[p `¾ŒsζÍ/¦±ŠÅBœ`Õ¢ŸT—è¬KÏ,X¼ kÓÇ“ *Ðøš³þ‘§Ä Ûu–@à²!š<懎…/ÂÚ®i> stream xœÕ=É’7rwzÂßÐÇ×vûrðÁöDØá‹=ôi¬ÅUæÒ») ýõÎLU‰­^½nvØ T¬FÈDî Þ/Wb‘WÿËÿõ陸z÷ì—g’Þ^åÿ½útõÇÏþþ?´ÐWq‰N9sõâí³ô¼’R.îÊy½H¯¯^|zö—Ó×0¥*ø^ü+|©bä_*³D¡ñû¯aô¯oÄ¢ŒÖ^—Fkoâé3¾¶Þ† N¯¯o4,àœ>}‚Þ)¡Nopˆq wº§g+`æÓ{öéíõò‹ Jã,ëëåúÆ:³N/`F%´Ž¾úð'|ÖÚzåOwiýàýƒ×—2Aaë`hñ5=k£eY4HNÙøÖËf¬tÁ£\¼WÕŒ ‹N qhÕé݆å/×7rÎÆÈqÿ3ÛÒûòXÖoÓ[£"Ÿãì×k€ÛHc*4}Î8ø~ÛðÎÁΠ­uF*| È~_°òN%ìILE äe EÝnÿÊfûÌ *ØðÓ£!yÛ6ŽkÜ”En¤Z¬q2­õŠ÷•¡;#ÖÉ0§9m²ûLøQQâTЋ’„V@„N>Ã-g ų̈zßñÝ_pj³x¥šÃÃcÔS²}SöäNÒkƒ<ݤýY çþÛµ p€@Ø/ñ 控oø™]¤¶…†j‚d¨lŸÎöþ–µ n*‹ŒÔ¢igg9ú¢ÑZCô¶\ýý>!„[+-¤É„]8ØÙöë"¢µD™…h_³IžÃ2Ñ,+æ¸@,ä‹û@”sdŒÁ×ÎÏZµß%ÀŒô(=èŒ ï8GÑikøt?3>bL’#BŒamf .({\~~ž[ï€Qu€cµ¸u²ÎèJlŽ3 [ˆÓg &®¾¥¹´-%ií+]ϺiŽ?°£à›}“¿T»Œ‹/¦ÙÕ/ŒÉf á×k òOÕ¢úcEW\Ð’œp´ `ˆx)+rÔ“r2îL[YK'âgå\áŽ!Њ$e”û™½~Fi?”àÑp(€$âÏûLÄo|ÚîĦ¨Ä?½öRxdwm˜Lf—lŒ-\é…MÒèÏÝšNK0¯~¦èЦÁ³ì5žd'(0E¾àÔˆŠVÓà¶­Vç!óÇlëa½‹müÎuV¼À#œÄ=€$–s$Á3|q´sñ;9eÛ~bRF&*`P¢}°sÔf ·² NÐû]Ž@|Ò¼mBôÌ d½ôP®Z&Ñ{Þ[-ìûÓh¤1G0?}`'Ç‚ÁpÌGï´{¤NÊ&$Á'Á3á{-«(7ÕJgÄï…tgÖsIM)ƒ–õŸ ¦ÃÒÎî  tGh!B@Qÿý…½ŽLbü†Èû/aByÆ‚{ &ïM”‚çUŸg“È3#TmÇo&+î£ó?1Æ ì—Céν þåàéýíX‰ð!ü=S)Ë6$+‰WÍ4s%¡5H Pi½æÝa±#ÑøElÞ¥%¥ì„·F_íŒ5ƒ2Þ¼@ËÉj^ÝèÇKm!÷r«ú]6ßÌÃà ÙÍœ0dK¸0à»â¬>gêÄ2 ÀVUñ#² l#ÔC?V! Ošì&‰h\K°]°ç&/s£beµç4®¯ñÑ ÄôM wÒŠeówˆ"¥B,h6J+¤Sð/œ"»1Ö#†A&˜*!Z¯äϽeTÎÏć¡b­i=îª;n=®ÆÑ}¸À'êŒÿŽNABH?%”Î&r«¦7½’L·Ö#J´ÛyD@±@Ý…Âl(tìC¬"µX¯­ .¤©­Ì´¢Ù·qè ˜NÛïfâ˜hKi$-‡¦mØ´Uf/Ûã»ß)7îÞxk€¨v%zMô¶’mü¹?C"„‘!'µÄ.5òɬ“ñ;òÁ¨ÝðY1A».ØòY: ”ÏÈ6Ӻ᳴â.Ÿ•˜ßíw¸åó.kpß}!Ù™eT‡¥0ü…dÌ)-\“37%€( †/\܃‡8¡g4ÙHí/&JúJ˜' !šYÖ~;rGâAÉ¿áÞ²Åqf›ÜUF…@j þÔQ*äNž·~Ñvšl)G!åô´z§#óÛ!ªY$t°Cúò.})À‡ùmÍ"Ȱz\%p Q…Ž ®œ ¦ÊI¼&Gü@FÕ‰NÄõ§:ÆÅÛ}c‡˜°wB4D»ÖÐHÓ©'ܺE$ÿ®»{@ò¡(AöÌ{†¥wlrBoØ0œF÷íy¸“Ém€S'9¯Zé07²8Å@±…,ÿ„›–IˆO‘`±Á™Qœœ€y€Åâcíþ¾MpÙqôqœ Ë[ªSa3Qp‘Ëû·›1ñ7 "?´YH#€ùý™Sƒƒ–ÈNž“ö$•ùy ÀGÄ'.ú»Ž¢ GâN¥¨s Ü–á³Ü'®^ùv ÖÅ£|ž£iÙº,†Kig¦Ó‡c õÞò–E¬'¾O¯ÝFåDh $¤X4:)æé–,³~WZâÏ|> â)®7eùƶ*|•ã˜i½:n?Ѥƒ3à©{znÜtc<‹ x¦3‡|c<È Ëé©RµÁ- ˜ª7î“XœÀØì„ç" àŠiÁÕ¾2H¨ &Ê m0Ç2Á„-%[Þ† L´»¼ CܱꇷÇíNÜ›s¦5ÔéT)–…ô¤¡½YÉ—1 Q[ùsm ª@:&åzƒà©ØÊ |Û'^Љڵ~5XâÚ×ÊvPÌKóÁ|ÿÃÈjÝÆÕ5#ìz•ø¡–~@škz·†Ðîú™¿—ÐÀsÑËGñ­@íÁe™Âr34W½xÉfR@ c ;¯Qõ„§pªÏ‹Ô”{ ¡?mf­ÓZé]ºžoBE`ªhÚ³óE¹]9Á¹± èxPÆÖo1ÔiTs§¦M O˰ÿ_ãÛ“(MŸi!°Ô»ØXÐVì§„`ˆ ³p¬8öRMÛˆ²µ VÇ}Éyæ.­èü®Ýsƒ-Ó ñ´Z0Q<°VŠð^ Û¯c:8ÈÚ"gÞ Å“£”tpS}MSÊè‘](yzô6‡œ§I[»&›MÝã÷F†\Øš’ûõ$äh¬PŽ|ÜqîrÂe&¡*wt¼ÌZÖ­RHáýÝJ”ÑÓu¼ÌR81®aßVéæ°ûeÙÍó霨¡tŠ`ᤵÛÄÝOÃ|Îýööýöx&® GÀ»/þŠ£Áu>G°¥T*3«³FOâ׈á6²²¾v%ßENRÝAï“ó’Ûìkݬ†÷éKgº’J‡Bq×à¢]écæ*ŽõúQ…QrÕþ1ƒ‰®Pà–õ0Ÿu&ÎŽÐþIXáŽ;Q®Z^*§€è'Ê´`ÜT2ÿ~e;©Ö¨ ÖBÚH•E¼™O}X%1Û¤ÖìÓ8­;P¯ÉyVÊ×øÂ:búiž§¬´Ž8<4F/¾•ºÆý¬±±táKÚô`1<­¨#ñ¿ÔfÍ`ïÏñ?ˆ)©Âšæ>_¼ö wª@Uǹºƒ¿;㞤.šEè Uò×|pv/\))ê=ŽÌÔ‘"šÌ¨®v…P wúR­®¬r4Ø¢uc)=¦R¬pÇX§?”O% *Äâ]ÒŠòO”sµhÒä__cmºWˆ¥§¯YƒkÝUáB˜yÍšÙPn/þF ѾáÜg’¡ÖQiÞ¡ò5šP‰5œéÜ “WøçÃï¢|íym>Þd`jFþ¯/­`†ÃúÊ+aÊzœìšù|4«aø!Éa£…ò*8éÚo¥N¹–òg&@ÂjFQauÛ6…Õ¾¾‹ ÿRc=Á‘Ë0)6‰S©æj,"m<À?­ ;Ò"Ðú³£Óòˆ¾\…Ã𬤉0kÎ ›fgêZ5Ñ|BÀ$AͶÕ‡TÍlžÄÖ\7U*ðµ™ù·k ÷0¡Ü ÒBmvß+Ò³çC>ãV¡—*zm¢í5x‚ž1rÕÛÐ-ˆîa$D; ýq Ô„FÐwÒ4 µ¨ŠÀ¬b!‰7“s]rùD¡,‘±'ØJ]Ý4ý2Rˆìš M×4µö6KOR•™ÚÐ4O/çÊÒ©àúªoh¦?¸Û´¢‰‡ÏR=1vñÖi|Â_ðŽ>¦YheÅ®è:V;Y¼ÛxÖÇñ²QÃB OúL̼¹´õñà^ÿ.æ•1ë^Ì#­GoÀ> ×Pû´vUÏÅò ·‰H¥›÷ž5N«7‹–®qZÀn¿â7#–!óÇÌ6`?Óôèè-2½›="I 9„‡¦kîó`çÚØ²µ]× =3<½eáãûeVIÀ*\â‹}eÆV“©äªpÿIg£í×îýÑ’loù¼É€q‰¾õ'$áAÌ û4¸o £·f(oh ‡‹¶S…¶aµ{ÑXž(½Ks¨®_fͳ¦U±­Å¢YÓV”álVÚ L\Så*X×D38›p;æ•´m9‚_ûBÃ?æ®°`ԊúLývu!踰†“óNœ¾l*7A¤õ¾Ó]»t€Ez*9£Q+ÊÏ:oä[zÏÃ#?Û³(ÛДv‘¦- ‚×zÑÎOÓ‹ø™òUIë þ%ÍŒaêGQ´H—luæššµÏJðoi pþ°úª³°Möµï<Y„™ÛœAõ€xž\‰A'çj`þÊ3è i%÷@n’Œæ õm›2[0iS5©—Òv¿úvεÂÂbõÍEßËÃÆpÌ ûizðMZ_7•Ùï×ûÈ8» Rœ¹ jxXÓÜ`œÍâè“6!†Ÿ¦mÇ*òÌ›Êp\DÏ9ª%{ƒ=O5ÄqQÓ4¶²mÍRe}ë'ÁëÚÁ*Í&†­Ýå„‘ë%g»FÊç´²u¶R#÷™dýºI×Ý”M´•ŽC‘}¤ò·µ&…‹O¶¼<*"A$B¡ö <5]YrŸ¦V~V<‘§$3Óu³Ë~ÿ áT]çÔV‡kë'0”RZW_@Æ{8içg ‡Y_çʼÙf¿PI•Щ £N¬mÀÔ ;6x‚ÛȘ³·¼E[ÓóEÚ~-ôGצœ¹Ñ ]%±Ÿ¿yhÍIJ€}ÏFøráÄïâb”\Ê< çö½™Ûu(¤.Ïݱ–ý۳NjŒxÝìÛëÞü®xÐtÇ$îã!W<¬òúO×çóqfwÏDÚmIà?ÓEá­2CáIõ‚¦Ò&wyv7å}«øñµóDz¤.ët9îPbc_ŸK’Ôâ;¸z/…E9œU• qé8­6µš¸:OuAü˜Øª8Åî)ȼÜ*eW¡ZEüèÂL*÷ýœ.ï’Äà Høt?…a“,oÓúuX¤‹)¯¦¤Â¡NhT%l#¦:r ÓEþ»¢y›\Ñ,ú¼>SÛ/a\†¹E5 ¡Nðr6ú”†„ž/©a7HX¶2uÒÑ=0[“ÙTÔíTYJ¼· ¡ Q…MÙÕx'Øy£˜”\—³=~ºh'ç:S»Z6 ð 3ŸM# 6m Š®—ÑÕ¥tˆ"V®ËUß›qÃØ¤é…£pv”Ó“jµãÊ% ÍN¢‡Ž<¢ëŠSVmmbw•2tBPú¯¨ËÐS4ü’p¹Cà¶êƒ]igRP••Bç½ûM_æ[ž‘³”hˆÃDÿä)h‚§*Ú¢ N5§çGÝõB Šùèùl3OuÅâÚ úófè½Üï6GûîúhWª„ÜÊ^a´ÆëÔÿŸÔˆ¶‚7ÁʱÏí1¥§ÚßÙéK5ÊŸ³.hˆQ¬j{W&6±/é 0QÚ9Ìæ¬}"£×DáÇG§_;µt\¸Ý¥-Jë× JZáúÉ\lÄL"½NË*ö+¢ì[~9®Ö¯f”Â`F1øùëËæ?eå6¨Z‹K1§Cѹ¤×Wi²ÖÂÚ¡.jUi\ D/ì Zq=SüÐwU“#GäŒu‹²µ‚-zéûµ¹0D…é¥j; ÜÚºœ¦± á­°û7æä%U!òòæêywß-/¿Ø+Áºÿ{•ç©üŠXs,Z+ À¯Û.Ùæ¶®d:õ·“ðJ±-wšg¨£:¬^ øb÷‹= ¶º$üòìélìrSpŽâ~ÿy½6ÙÏ‚‡\h}­WÅKcóO¼`l"d¾ÖôÈõ» žj19‰´0Š|“¾Cuq¨©q¤9éí­ÈSÄÎQO¯ÕÉòÁýwªŽ)n@ñºÝ±Hå‡ñS>»éuvZ0´&qnÌÔâ2±”“¶!¿³~ CKGKüY9ÿØøšb¿$õðøšÞÒr ¯)³Ù´ƒ:wjôü-cøAÙÓäg¤jÕã–¥”:sùòn­Î‚û•ÂY…â¤p(=օб9ËËG§p´¥LáCäÔªè°Y/j/9¤Ô¨xªÞÀî¢û’ê­»&E¬yw£;SÚó¦Œ1T‹ùg¦ÂËoª¬a~&åX+¡[Œ= Ò6eÀM»EûûWRc÷Þ¾ ”ÉÜä6èüúˆÃÿùų‡ÿþHø€1endstream endobj 1385 0 obj <> stream xœÝ]Ís· ïôèÉ¡ãSÇÚòû£3=ôóÐim5í!éÁ¶d%%%’œÄùë €Ü]KîÛ÷$ÙžŽ^ïã’ ?€ýý‰ä‰À?ùï7×/ÄÉÕ‹ï_Hz{’ÿzs}òûó¿þ‡ú$Ñ)gNÎß¾HßÈ)åàNœ×ƒôúäüúÅ—»·§Ð¥*øÿœÿ¾tÖó/•¢Ðøýù´þöôL Ú-Lj®bäÍí`bzl~–š[«âîÇS¥\ؽÂ'£uÜ}8=sÑ ÚÉÝŸOÏä u´r÷ }¥­W~wÏÖÛÔî}zöRøÝ|66šðŸ¾‚™Á(ÞÄ‘Ãîoø•Nñ©?“-ž¿fã_²>Ð{¬ÞÝã£÷.¨P4¹O“ƒF»kH@J”½ôFº==S~°AÊ‚ðÈ*XB¹;‡•úšDt¹û޽Mó„ ß!“…³1ò¹o¡Ž¿g½ÐõÏ@óÔáÛôVIßš¡6ZN„¥yåÙòéL%  *‹@ÐZënÝ$… hå]ž¥)e@ ±ã3-âà´=9“j°ÆÉ4@+‚ß# zmˆ‰d’u£xíâ‚:é)Z›!ˆÀÉe+t‰ 45xÇ6ç4àÞšãÈÝk<Àà¶œïü6mpi`ÓOb:Ì#&ÕQë¨0DmãÉù__œÿêKfÔK4±üø°Rí~[+.í Å¥QqÅQpîN­€åVzC:DŒqd°QZ¹¦:.Æ D¨„䟥Ý+AîÚ¡&ªT lí~J­E ¥&¼F¦Jèî=ëî»ÓÌ éW ¤$ñ®æA¾>2ÆéD³`–£u×{©HÞ1ña´ß°ηäe$–¢ÙÙ_ß’”ØV7_µŸÑżyß?¤1Ãnð;E#¾e“Ìdkk¸NyS.~=RA·sóRi*¸!¨Q0ÙÏoÓЬiÍQå‘Ë]‘tZ›¥“+.+¯™ùL,1ÑÛ΂póVÇÙÌ3bÏ ôôÇO؇"cx¼ N=ƒ.q°¸tÐf sÛ6iüù¶U#{ $X°ÓZήÐÞ—‚Åu8ÎÊûØ×¾È: »Ý€ôž-ô ðbf˜ZwÀšðU­ßÌ3hj7 Ü©0©È¹óœ…ò%ŒC Ù•J¶!P›=hX¾¸Hb‡2Vúrk̆q8I¹X9J¹ñ‰Úï²ò-I4Þ×ú‡mpÚöq!Q%¯*ët<@ÔT"†õHT\Ϧév~üa¶R—óÛ}+!ˆ iß`k!Œ×É© 81o‚•mƒå‡h²•Jè šUS#¢ªM |„ q´@õ{¶O€p‡ßÞ(¡"¾ \hoN ·5|Srç‚/væäYY_˜4>ßuWH˜”«B±­ ïÓt\胷Òêak4¨|¥AE¦[_³Uƒ€dÚKfæŠ[1¶áX‹ü$P}1™+ؘ£\Žd„R¿¿ÑõrœiÚ.ì·ÜÖ¯PÝXâØð`ˆ%\— þU°Haaùöœž9Ð… ø|Ðã‘HÜŒ…@3-½"$H­(•#ö J ÌN’R•âo½-aO–«Csôà°w|:>©W´Ð¿& ðYÅN@U=9g .Ý>·|úë—¥r¼ G1)‹Ú^€çE2 »ÊΖmÅ3¨\êÞ1Ãu5¿fR]»’ãp¥Òe¶¨±¶ ÷ñ7Øï’á—œÜÎ^ïÀèÊ{›–ˆ«ÓØ£‡E¢“B5Ò†"¤>îñ;T@"B·ž}ûÖ¾gIhSéh:P²R4CØ`û""œÐ‘U†wnÓié+”‡ÚI¡Æª„£Ü$q‰ã¥ë$ÅÌ­<þáÏåtU%Ôô…F· TªÜ L¢ùa½$éÎd”Ò¾YhM®÷¸GÙë½Ç1Ô¤¦™ÝïÐ-“å&h¬ å3]x\¤ù¶ØGŠ]/fKñ{öЇJz­oÒ˜®t78Þy—úÓà½VV¾3v]åCë{Èf}G“Ôò€\“U¾PÛ¯²ªŽƒ“ªÎƒƒ«9Qdz˜ƒcæ?d•œº-7kH®R¶ð2fðAöD´§À^â—íÿá¯ÑÀ¶PÉÛ4Œ­äeŒðøßb ÆØõ"F3ÿ‰öê`}Žß Ó ¶Bk§Jt5jK÷õvܧ‰e/òmƒ²¶àhéD·Œ]eÕilµ;¡á]v÷ÕðXX}e¾Ì å·´I ˆÚ¤ÎJäÛÑW•f©”7Ϥ~±wUµð¸O,Hb¡ÀÅ‘r=]©-mìK»Ç]±‰ŸÓÄÊí3¶Xº+Izª“+a·ßÖ¦æc÷¸S;„ÈÕ „,|ÉûÔÜFwpx ™þ]­héA‡þ¼d3©À» 4.©ð SYvÇ1;óyæ>â Gæ±K¤ð1Nö(]óùö4BoIY³-Å=wóC.P‘•TŽëZB|"x—ìåUspF4w 8Âä[% (¢-ä¬ç艓úílC¹ÄIqÜE‚mAyÏGËLTÑâ†8¸ 3ŠѸ‚“|f…OŽËˆ,+M+!À æ.’€gJÍC‘` ïéžÿyÍðdé8@/¿O½P„îýê|P/}ËZsaDX ä Ë §ä Ö7Wzã„|{¯£B"¯÷~Â7%§R'C7İ-,CTÇÕ ŸVªi>± ¶‡ÛqüÞs²ä’ø^eÅ ÊËLÁûïXƒ5WN›ƒÜ4Ÿ¨kp"1·ëðDF œ1Nâƒ-¸Åe¬gByΘ&l}†¬5ؾèŸ0câ°~#ó[‡Ï÷sXÿþ³믜CÃ<Œö¯È¿j ÓŸèZ ;(«q:@'i¾r\ñmy¶Çn9K"Û—Ÿ™U[B„E7:xÚÚ $m ÃâtL|. <»®BR}Cšd0'uâèxK7ÅÚU‚¶ò±QÑ4@©IŽŠÎsDPïq“»•ô'Ä@v×' \ÿÿ Î^fPg7Þ'ÜiE}`ƒ‹Ï‹X*†w\}*¥—•¥K]¨)jþdlË…œŽŠ6°tëæ”ZgùMc”:wÚ—[yØ^@7OþÊü6¶Ú¢ï:"Y£Co-u#ØÕáÈ”¥ê¾ÂÞà‹S$P~ÈQ;Ö×S,…ã‡à5VêZQnißE¾Ì|ŠncÀƒZ‡¸/à±ØÄë°s‘­ôò”$½rÕÎÁñ£ØžU>©÷>ÚJÒ ü1ÁÒ“<þľ+JLrÌúÈ›†(cLYx”kÙfÀÜ…'Ã’× œªz±AMèð¸sI´QÊF¬1õcàAä¶8öæ…]Òq;êX­Vg+š„G° ìÿ: $Ž~c(g9CÃÕŽy-Y ~Aä[Û&ôàÃÙÿ•i²N÷µt'1¯:'§Hto¤Å÷Uø“±MîÕ|Ážù{ÞžŸè^¦Ìà@ÔÒñÖŒ½«O`»âŒ±sÒ55fZ¨‰[ÚqúÙ UPÆ÷•ûÄz™IŒ ó o1t¶é|€²xu§‡›Înh&·ìÎ7j7ÂÎqDM;|Íá]|~X£-øj6ÃühY;üIQsJŒÔÒ•ÇT5zÇ‘Dæ1Úaþ¶?ª•…]rSú:ɬÆW–hð\¯=Î:¡mQÖumj CàIëHÏš|¯Äùëè$Q-qÐöà íùãb'‹l·FìD.0eZm3î®G FY̪ejóBÏ«áçh#)õ^âçJr ² ôLï —G—ëÚ õîÝVã|Š}U‡vÒã›Ó#K î) ÀAQW+y‡gGVl‰ø(¾‚]MˆÇDZåtkUH0ß¼á6ietEŒ£ƒÉm¦.QâkS‡¯›ƒçF#8Xϱsï‰uã ýjñF"\õL-×JÜùê%ý\VyˆrÇTÍkÖ˜/³_0 (ÊÑv€5Ì´ÁÇ%±¾ç?7²xâG– ˜W»Çî§#C¤£ó=vÈ-ÂÆ…9KT'À(çÀn¬¯-4Æ~ÒéühÁ¼¶ªc¢e‰KG,šf¡K †/1ÿƒwÇ49l‹ Ͳ&7€Ó}¸o­(õE¶7j⸢馷í±tdÚ~†oW…d#y2Ä^F\#OŒä—{${Ò-çd¤LG ]:\c=Ž–¬êªÀÕÅ;=›ú‹ûƒ9;ù¢ð¾±öÆÁ¿À‡è ´J©Ã éè±ç¦.H™O«öØ#¬—µÈ“ÿn6gl?•XŒalu>ºÂšÏ 9oªÙÕŽÔãÚ6Å&íו3­Üføjn}î­T¤K;]¹d THÏS„°Ytíc‰9§aZuü@x§Ð¢Òn¨š,Œr0zÇM\†cuoÅê¸áfdÎÖi»mcpñš’@1Z¨V4Ù¯¸VßÒ #™ªrwÚJUy8V´{°*z½3%Vâe ª)“eˆ+«eÆÒêðt·1ØF¢{¸ù,I¼ô戫Å€Ðn§ yºµ8/„²Û\®y¤Êuy(ôLÁwŠLü]ûxð]ÀJhù¨Üxb^¿æºdPà!.fX%_ €Î,«—yë‹È8›ñäÍûÔܹ­w,”"]õï¹*L n¼*ÂÁ¡AØ}µcw8ZWêÈü¯tø/tÁäué7·×Ir+Ñ*"–ΛJþ¡˜eD×Õo¥ðÕ)ë˜2t:ß?…Gª¬‰ÇÉáí” Knªë$Õìt">ÜÙè¿K‹#ú·y1é¼IM°ì‘öm%Nå¦Áù gËm%4$êC#L¾ †Î„Ö¢(t!—Êeî" §êܯcâ¸:Õ—÷G'ÉŠ`0>©q?„­‰GÐZ”ÀúˆZTìÅ®_ª„Ц6}>…MLô½ãÝ[FÄz³8fBÖÚb³ÛGÄÂÂJ$ãM7¡kÌówª®ê^Ëì:SEÀ$\ïLC ×o¼œÄÌ+Ó>9äi5¢Ò<êXËzKo×¼?¼;ÅúƒÃÚøq(KÊ8Ã9ù`º¶%UÓ ½Èý ’{9•».•ñ›‰nÒÅ5Ú¯nã‘w‡ßLP%3dME²«ŒËl™eWUšÉ Á¹V6õY*âV  SÇÍ$³—õ²Æwº¡±›˜´LLÀ’Øv°„Úí» ±ãëÿ0;øì^©»Ù×8ý„e)[Ü~-1ܰzúGMVŸÈï×ÀYaM÷°·—åF`À9ÜÆ!£ë²mÇpØGYH\Ýõ Ü•ž¾Í¯­:ÊÏeóÆ2æV|ôxÓÏ/ðá—N9po:FR(Ùøã^/ga®äÈ–1 \ê›5 ; ³‘xø%Ö²lxZ rˉð4müõ˜ªèœ‹?£GNL”G++r‘2K¬ú0€—&¾'ÞœxspÆþ˜õof—»ÂxZK µ?!ÆËÃ=Ú…Ñ•»Æ3‹:±\ãé‡î§%^¦&Fo¨c¯1^Ä+¤¸-îÜ´Y›…hèRê-7`àÍåUâü6œŠ9‰øi"ÌÛ¯Ö+ H³]½¥›V_;ñ´n9/½ÿb¬êUrÇOT¯¢1 J-BLðµÅ³0ÞY`üÚÅLÇ"Ek°äDíþMôé(̪pfpvÝo6 öëÔŠ0>t°ÀCîC©Îw ö»À¨—:ÕK3k\̘ QRêÛû CHçæfZ#¼*»yëµsƒük&¿°.ÑÜ€HCÿ†fΔÆÍ.Sö&X¡[—¼§»n‰ß¢´|:~OͱdΪAÇ2#Ÿ"¤°`¬¬ŒÙV›ª4ÞCc7GÔã{baX›¶çäç˜é·_ÚÒ’ˆieš~+“ {ˆ sHm¹^ær}‘XÌäQå’Y2‡6¶ôó•͉°Ò1ì%Ôuº¨Ju?[a#Ç×M7×àMîv››ëµh»¹2 KUÝP÷¤Æƒ'€Ú$Gg«ºw0Öú=¨õt·4p£º÷«ÿ,Ô½§ËùkÄ|pÆÍZ¾§µ®öË}Û(¼L‘A °ƒ—6rÌßÉ^@s‡®ÜÚµý[Œª_éâ¹ÏÌ( ãá>n "+޹°€®t’q«Q°X8Ú½·÷PÛªø™{#xÕ¦ºFQ¤€/äŸâÓŠD¥twƒ¹K ×4<õ ¶hxœ‘MìÓ:Ò./SÈ´•2ÿó—œW dâi©ÒEÃÓÿ§€››ìÛCJrËR©E‡Ýxd%”«×ÿ‡L/É^ÑHc–{uá,^–³R6óÜè)%眂Dß©C »AT,ê >!/ËS —o)¹(A«ö•§m4Þd·ØF`3µŸ‘äF T_hàpi¦½øKjÎn4Z˜¢=ô¬§€ HG—u`~¤âgp–éé-{|=?ÞMÍ]nà×häÇÚæÚn”›¶eÛ˜¶™æ¥Ê*®-p ÿj š„hŽ?Ħz¾1Ÿ»¬G"£¨ ¬žç@Ð Rº:^J¥'z†çëGÁpméÚåOçæÕQ¦LÚòäŒÎb^ 7Ó¦Glþ§ó‡?ÿþî'½endstream endobj 1390 0 obj <> stream xœÝÉnÇõNùgM§öåƒ ç›ÉÅÉA+¥€¢dÑV¬ Ÿ÷jé~µõôpHÁ tШT]õ^½}©úñ’Mü’áŸô÷ó·ìòúâÇ F/Ó_Ïß^~uuñ»ï$“—~òFuyõê"~Ã/9瓹4VNÜÊË«·?ì>ìaIí…³ÿ¸ú¾ÞÓ/…š<“øýÕ ˜ý‡ýOBkÏw?ïlÒV;'vOa%¥U~w³?Hç'ãìî;œ!”÷Úî^âoe˜ef÷œü¦«|ÀÅ™QÖîîpØZ%­Û½ÁßRj+ìîã^ØI %pAÜÇq·û*îc5³Åä÷}Ó6R«ÝO-ñ7ý23@=; ¼[V¹‹K%y1…Ž_ŒN\ñÝ[ø’ ‚°Pßo\±†“+Ï|ýz~×ଽïáðM¶¡Ð>ÙÓ“Wšny‡¨çH»{ApˆdÖXd÷¿-æ §M‚©ÌX/"bLÌJa ~‡ÃÀžKt¸Iÿ>ðwK7#–õÔN†1ü¾›ÈŽO ¨æFˆä“V†Gȯ`Á¤ô6a> )Õd™;‡Èîd”=E“²$'”½‹[r.(é_ÅQ l±FVã]pe|_- "ç°y@NÆóávÊÜwûhí8l«8€«=Y<“€š ¨”P¨cL6:å¼ß=ƒÍl®K.¤‹¿Ûà ÀQíþµðÆ´ìm¥¢ 'œ¿¼úöâê·?ìþ9«å@Ëôóþ4L…_ém#M±œD½í³x%ÁR˜ˆ»PÒ^â* ­¦¯ýá½cÌE–×ú(Ëãáyåú ÁZ}&D\ƒŽà³=úû‡¾l]'²Ë{h§eÎ]\E0]ñÒW;¤o` ¦Íp5|(8Êx–ƒ$Ú:—Jõ˜ ¤ž”ízàfÒR¸Ì/«~ w“‘læ ¡×©¬s •·:ˆ7Ìðòdñ3ä”)ˆ]Þ¢ã( òÃá)þžÌþ™(VÀ@ëÉXî72œ°.ØŒ!Ãý›œµç1\8U!k†ÃaÆT±öØâY¿J›`Ñoâ\ àé2š©ÈvÎ=œ^vNì$­ÈÜD=’ñÀ$H2sþ‡îBÎà ™õɃˆë–ꔞÔmpp% ¾©Tn‚OVxu¦#2†Ô´iç7%»âÚ0Þ¶«žBJ ë«gJIÊ¢7Äú4=8’fdZ)yžÕ > Da”yÇ úN/8±RóÉj^;±_]{ÅI]†„®‹… ø”Èyaße´ú$)“¿+¸uvx3Hª”«ßDn…xκ̬Ô¦Œû’ŒG.+Å 2h\ªäÏÆF€ruÎúé 4Ð…Tte££f"küçV©ëÏ'™‰¿âlï-سt$Ìõ ÍÆCj¤_3W<ÝzPó¨¼ýý€‚ñ—"àu¦GR,\£à÷*¸»qCê"ê?¥é«îTM'g"øÊJ ÔÚ–èF•D¼}'£À¨Aß'ˆ€çìbêaÞ¢±é£(aÊ2K…¼èLY9 ©ž–£ïËŒ‚©:쎮•q÷·K€ñtùùþ<Ö€%Î ‚ ðÄ·Ä H\tn°¡„:Ø¥ÁLàVTÒKÍÎÌ#4±Fu eô¼%@^% 'L¡Gî•YkÔýzf͔dz–;Pjü·*@ÄR¯åaL Q—®/Ð4·Aœ¾ëå'-Ó Aih?Ù2í¥ œ«’3Ë~Qix=ÁÙTJcÝ+´œÙ%œäµ7[\¦oÊß#1ÛjôÅþ?N8+§˜ y°ÈŒ¦Ç:ëôÂW¬ÌΕÜ?`²+ì®x±ÑÓ>ÃÞ”pSñÆU´dr?¡æ§9ÀJYÍäܨi„‰Ur%Ìܸ/Sñüµ5¾—&Œ°P¥K ÐÈaÌ S?ø†øÇŸ;q…V0|2‹¨~ܺpê`ÓÅÈ”gD¥Ð)ŽÆíJóWû%˜ûá=t,ûb$ÀÒÁÛÂòœ‘ZË)0('ºÅȇʄ(ucL²ß¾;\‰Þß jSò{P âö±Õ%Wˆý!V©ªO ‘¤ý!FÂ>dÁKXp™­>SsV¨jêÕnc6¿–DãMÁë·îùOQZ‘Xø>©)Š(®c¼‰ê£ÇÓl@¹0ªÖ1Ò5ižõYFÜaÕ«8Š™«ÛÙéQ&s%Ì/ºŸ2©·Ämea.®¿Is.Öÿe¬i9·’æÉ›·ZëqS®éDhÇ£Y"BS"Ehï»Õ ›%B{³Œ Ö<`¼ˆ÷û½æ ßá|4æ½O¦ÌÀY ]ÄKÏçx ™~s®ï‡svòÚª¥:)šÓÕÏH\e¤Å^/ôïš?à&¦‹ê*]þîg8:žE¶¡óøu†ªÍ!à°Ñ¥ÍëºQ>,œ±6NË.)¹´¥U¤Ý›Héà$2)•Ì„ÔX­Š„äeB‚è™QˆqÆæ]&L>sœñM8)pÙdmísgôP"FjúH¾°ÎïÞF[åÎ8ãQŠ4ó,ó‚h< îdü¶œ“iÿš §HD-–…™WQ}qÂe¥¿î{ë*ê<ÒÕÒ9Ò-Ñ7¨8„µ¥ÐC­dïæŸw1åm̪ÙGìZoÌV|{’wýg\Ñ ÍJÌêÒø.Öóaê27ÁçõÌ[Ϻê±nÔe¡Ê_Å­ ˆÒHNŠíúÐ}ˆk ?UÑ@ŒÌÄiå -’»qs5þ´Ä:›qlŒüÙþløÎå¯#Ýœ¾´AóißPˆH>îŽVúaè÷ÿŸ‚B9aWiV’ÕB#E± åÊB’5Ñ`¹Ìæ¬I詺WÖÛsøIfl(α嗋úBTHE+§Çý ¾vƒ{ì:ïdŸ4ß4^˜¹8 —"}GÂg1² %õAh šËë’zÀÕysű¦”¨'m¦^ˆ8Ó V¸P‚s¨LU›]²Oµki Ç7¸¡*x$|òW\¥ÌÔ»ÚstÒ’ ž@M|‰ªIZYÌ ªíxëY§>|™¬w1öÔþUw¤Ý/RìæF¸Ç݆åÇ~ü6ƵñÃÚpq ÑßÈøV¶*À'›ú7(q©:èæ 'àÏÒIÀئ=¢×§Ì°–à› ‚þ3·¯UÅ hg^÷$¼LˆÄ>~©‹ e•'q¯IΤðÊ´Ñ eP™*¹œÑ¥û+±OÓT¹bÀƒ´á[tG@+ª!ÅFN)ö¶¾ "cÜj\èYÝŽhöp wR­\ÍÓ°*ð‡·$úB†r¼ÎüQ^§{ôÓ°Uõ >˜½ûc˜^»o×¥µ¦p,¯Qµ?K§ÆvK0fZõšƒ;¢U{¢·ƒÝéøÒL’š2ã†%÷ÞK£6[%«B^N¡ä­dErxP >ïóÝ=Ëì^[`܎⃳oá”™œ°—l _2õ/ëuGòëèñscÚ¹xböî‹æ(ç#FOVßûÚ”,[&žìƒá¯²5Zˆh[‹9uKSÛ‹¸ŒRmã?¶¡øå–ÞáÒ>ã±ãÒž0JbÆ‹}š‰"ƒU‘|k³<ÞüÓFRi駇­™ŸÆR2ÅÅÍØBeDÕ_:¸ÂÙ×·ñ@4/Ù6–/h Ø@wÙŠ¦äIK{lkw~ÛEõäÂÇÖ_ç'ëNiË:Ᶎû¹¾ÐPX»snòÂT‘o¼Ö…>¶jØ•Iëõª¦¶ä¾Òaóö¥ ‹`Û±à€0ÌÕS„º”½öê:Ôy «µB>ƒ¸;\â„*»^Ç©Nºf´Ú¾,.Ìæ±,¨Ç6kØGšž¹=ÒZ•Ó†«Ép“UͪéíúÎNŒc¥5â„Ê÷¿ì*ÂUF\E S¥eà +t#º¸D•éÐwÄïÂÕ„y´•WÙM:µ¶a±R°¸gnì//ç}g¦K^ݰNÔí fǬ1ePÏQŒCÇ;ó›¬ÛÀÝÚ@?™>ø §7õ33±9“Ú„M/#íUuo  ¾f™åc_ÄUÀ­¬îAdŒg}P—¹8¢×Gý2§µ­ä­_€Ow ±j×42™à,â¼ÑŠ»ø¥Ôq~JÛ*,„&V´ +ƒ#åP¦‡qÅj…™^m³x:˜w} ³öîè·p±r‹w¿å&XêÀU éÙÊ—:ÍÔ<.Ô(_@[<ú´xKôZ]§ÄOâTúhI°/óm»Ft~¿ÎÆ®»$±F + -S)Z>W~BcHÛ¯È}“Þ¥pmãTjÕ;CŠ‚ÏÈ]ŒMõd$ªÓ'©´˜ ¢Êþ \P¥üb`ß"Ž9$PÖqö6.Äêìs&^"dØÇu°Ò¡¹³QJÓð²8N—‰«[†µp„äDúü­ôNôÆÊ¶:âqÛn¦Ðñë¥rI%)/0x¥«'\-Þ+‹PzÎU".7à·ùPöKD¼^@Þ Û§·,>†‘ú3¸Œf\Ž ªÞy—¯auÄ@`áL'¯²^Te¾ŽßYyßkmŸGÆG†”x„4­0áÙ¢6·Á&/‡Í •‡·T0Ã^j6\Zr>Š^Æ]Œ¬¯çãw(zR1AÐWƒ$Mò(4˜*KºŸ _ÇÈ­¹m."§“(³"—r(á«’Œðx›‡üãÒƒëi¹ÔkùJáëžBÚ²ò‚ƒœóG©¼ö$¤œIé¥$n+½à—Ø×P‰hcïåcÈ4‚/‹÷¾³ô’+Ô4i›‹"|6Ó¹ rY7œ¾( 姪 ÐìÒ\ºí_œÊ„’…OÒwüS&bW:ê£þÓQK²šó{b²dõµN%ØŠÜ“t?ש̻ÂÌŽ#ó'@«ƒô6F¦yŸþKnè±wŸÄQM›Ò¨Ë{ûj‹SÝ‹„ýõ³qßV¤㜠ÁûO¸i|¨pÎßüg¿Ú …ѦáöÜ)|°°„ª½ˆÃoŠßç]Ä™y:1ˆ›¨¬¿#Q]xËb,ºü+˾rÂÔ.ØsíFËOç=™ráÜ׬-ÙúÛ&øa ®÷½¯ÂàyËZáþN®?è„'$å(ú­Û¡ð4D~ÅSÉnÊrkï\Û¢´ÍY’ø(‚ª/F’较jUD Ì^þ½nAã¢sá­Š‰ ²8~Ó©äÞx¸÷êNR¸ñýËÂk¦Ìà¾ëÖ–ÌÄÔŽM¶9zzG Û¾ÑzÚ]ΗOuÒå(ÇÐDÅ(#|r¾~„ìU)Å9Q5hc­Ìý¹Év„ñ~Ç–¼Í8½IÛšÚ®M?Ik·ÁêLÖ0Cœk“¼C¦^{`¯@°hXF|œrqàe÷yâýq]Õt‚©'..ûësS¹Y¶÷óOœýõÕÅ_àÏ¿‘Uendstream endobj 1398 0 obj <> stream xœíÉnÇõNä#˜K<pÚµ/YqÀ‡ÄáÍöÒT‘”%YŽ‚||Þ«¥ûUuUÏÂÇ 4jU¿zõö­úÛK6ðK†Òß/.ØåýÅ·<<½L½|¸üìúâÓ/4—~ðFuy}wßá—œóÁ\+nååõÃÅW«wë „pÞ¬Þ¯7lPJHaVoך ðºXÝàSɼ¯VðõF§Ìñ0DxÎ9úæúÏ€·ðžâ-Ôà™ä—.­ ¿¼ÞÊ¿_³A0)½]=ÁO%•·zõ°n`ޝ^ Pmµsbõ÷°ÔVØÕ#y~Þ“Vù„f°Q±üiZoJÅ®}úàí˜_݆Y†§b0£½O»ÀùÓ¹€–âÓa½QZµÜêoOŠY=G?€Žhh'´^ÝOK>F€Ì»DåZ:”œ“ !¼‘›’q—yÅ9ã™›Òfn:ky^!µ‰›áy››~Æåm(­aK@u@do #ÞRIž¢¼Žo:n]…ra‹@*iø„Í ¹)¿"Ðo#. ÷$éM[’ƒB%…5ÝçQ(8, ¸¡ðèÑÞáok•„ã1q&“eqŸG²þ~ܹµáhtÒ5­“®Ý…—CÁLø([(ÇàkäÀì"Ea¤Áݰ¢ÁÝ@hJô—„‡«¯Ñƒ–Ž>½‹XÁ›™¢Æ ×Ò¸®*?Cß´x¾¾ñÝú¦Á(ç}j=0b°Ì-s –€QÒG”’Їü¤²ú¸…,H$‚3^ŸV­‚ØO­FÉc«¥8¿F¯Ád™kÔÚ„ÅÞ\lj¨~\;ô[àô®¦§£²1-’²);çPÍ åê'ä1¡9µ Hiæé%è&—è„`¢`Ko# à´ ¢)DfyXA7ªí- òVhÓ+BT¢{"Õ÷m<¨U ¤.¬Ít"ê(DzºL:*PyÝvWXO ¾Fˆbðýà㤲ž?e‹ô7BMC邈 Ìñ¨÷DL*³ ³N<¥dŸAØ)>/Q½A~yftИ+DbàâM[·Óï ãÒ÷Pùú ÚF¬… ÔWh?8¥ ŸED*hô÷š0ºbõýXöã~UF­\ Å[„4Wâ™ÚŽ,Ý’Šâ+–lKX!{&¼nÌ0yŸ€ðÚÃâ)õrhv§ Ò |>L~µçêK:eð\Ú¬ eX0R{ÄCW¢Ž0S$2 ®ÞÅ% ”¯²Áè¦ c‚Ü#B\ˆÐòQJ-ÉiHA‡R|Qu8¸ºç0­ˆÁƒd’›1÷€‡È"ìöõ 6áÚ g›±¼5Ü–±Íá™a%Çc<Ãþz]¡R…?°³†ÈŠ^ <Âó¹e v"Éå¬4Û &A:5H°¤ìPðžÅê$qÝüP{`£3²ŒVª§g¥3 Աݤ?ÔmÐhˆf)r¼5Ó û;ó€¯ú 8îHì@ dsolÄŽ56:Wø—…°Ú i5«çˆ„eªÐúü˜ûô3£!Ôf¡Kæ6¢]VRn ö)ÆÐiÃOŒfÊcôåŸÆA4—Žô ‰š¡ÙûT PLJÉÑ“3©˜™&|zE}¹Ö|0ÀÄb4xï…‚Cn§ç=3êÜdFûƒô”¬.”ú`#’¬~µƒ–˜²ü?Ì!ö¨W‚ÎX}sØ!~¹ÃŸø‡ôu…¦] }$NlÛQÀýJ' PC,œÑ·Yš(V¿C x‡3õ(\€h±¥ð@P]—Bð1_ŽRã›Ï ’”:F†_ÀäÅB ¾ç} k6Áx•ˆŽûQ<º³Ñ¥y_†ÈÑŠ"ó÷´rÑqÆ6ø²”éQ¥.l¦Ô›ŒwéÓŽ0•¢qÈ©´éé,ñ„Ћҿ§I½ˆ`ÒŽæi@l]Üm¡¯ :0þÞ5Ò¡I²ÛEKŽDáço”B¾ÑöõX¾e`ùtÍ€ar™!b–æ°ß+Ϥás#4¥ý€4$í){{ž®§1¾;$-1ï縿Ö-=%ÀÏÓSƒA1OSZB¥¿i}”ìXÓX-r|¡XŠ™7¥ý’*â¦TªZ®‹ó´rd”ŠU‰±å+Yh&dT #ø˜|…ª‚¸‘³zŠÜr1'RžªfÁé}è@ËuÊÙˆ’Au4Q˜e¢3å ÇºÂx`U•q©øâ.ÌtûDy…€„$† T£¡É¤“e‚’Žr«j¶EéS©ô—ëB´å!.V¢ALEŸVë¡ÎÿT#Ч*cÄ9ÕÂáBÑ\Y*¸Th©îÄ®zSKÿX•W Mu‰0שh„ÔuŒÐ)¾ ÞÊ‘üG ߈ߨ]É{@$hÓ¨ÿ²{5à:î™àº©Ðm’eQ¿ÂÃ@ ,ÛcX¦¹èESgÙKÕ^HC%sÜÀ'éS‹]ºÝ¡'Q‚Û8åk„ht©fƒßœ4£ÃgUâü£\ô¨8çT÷=çJa÷ŒÑ´&J‡‹Ÿã‹\q_kƤ“Iì.·ŒÌú`˜Äp–mKnÈ‚=D(Å,”O-¸3™è§„)ê áö_;ÄšM kCûãÇ{:„ŸŒ$Xé„—ùþBYQ¡< «¡ŽXÁÃ;’c¤ûׂ"T6LÉà¼Ù#ü O÷9.¹‰O øÏ¹ ×ïa¯¦õéŠF‹ƒ›Lw%ô ¡"LâòmÜ¿ÿøbŒ%?¦‡Â÷ZÏ”j¥ˆS%±Î3^ß@£Ò°¥\LÙEx·BJ¬šM¡ùÂ÷måm*åLìhÜ`9Á'_ÂéU7dE\éU,…ô•-ˆ(ñâ~C½B`.oÏAD‰8—êÙñ¢½š¨ÐBÐ_·’&›ïí€ù¨®ænßtç4éç(]T>¦b^øàÕT[lŒ|P{Û«zAÄ‚ŠÂmúÄJ™ ì9 î ²‹o°tâÇä”QøÆyfãÀ1&24~ï:çãƒÞeÝù1> stream xœå=ÉrÉqwÊáoÀñÁ1h×¾|°ÂV„¾Ø‚O²$’òÄ áˆþzgVUwg-Yè 4 ;tЛf-YY¹/…/Ä"/þ¯üÿÛO¯ÄÅûW?¾’éëEù¿·Ÿ.~{ýêïÿC }—è”3×ï^å9òBJ¹¸ çõ"½¾¸þôê§7—°¤*ø?^ÿ+ÌT1Ò™Ê,Qhœ}£{y%e¬°îôf­½‰§ÏøÙz‚:Ý\^iØÀ9}ú#|SBnqˆq wzH¿­€•OÈÔ»Ë+唯U¶ÏËå•uf&œ®aE%´Ž¾šø'ü­µõÊŸîóþÁû'ï/e>…Y¬s€¡}ÄOù·6Z®›éÃé#€‚¾c-  ~ÊÅ{U­˜±èÔ‡VÞïXþry%álŒ÷?>¬ó<œeñ.5*ÒÕ(ξ^¹4¦BÓç‚8ßÏ;Þé±ËQƒÖº ¦²?¬Ø R dð#‰©h¼ìJQwû¿ÿDVûLNµbÃo. )`[÷¸Z7¹’j±ÆÉ¼×[r¸Ÿº b Áq^ÓF »Ï ?*J@ãïà­€#œ t…;Ê8Ô¨nŠxŠî/¸tXbˆíåÁ*Ú–loW˜ôùÔšP/}‡ŸÝb££×αÛ[<£µf_.ÚjÀCþ¬\Z6…™ž…î²áGBsúnÈÜï`q ¼ïâ@Jm4Û;˜H©‚Œ¦,ý1S® ‹n¥Üû|0\âm@™¦Ü@¡÷tÚÊ?*'7ð†|.G]5üõpmÊxtæU¦OCf‰}b k Kp„y7îtýþ"@‚Üãgï ^xY]È”E–éþô6 !õ]œ-™J»xm{¦Íkü ¹o ,ò‹4K0rÊR°§Sµâø11HV|½´ ùTÍv¢-Â%ñ™0Þ0§ñºcôªÛL0qßïˆòÁÝ7­ì,Xí'ˆÊœ¡gÒopw„Ú¹ü²á¬£ã¢ALe«@Dã8¥°îžVùng’ÂúÌÆ÷œ1”¶†’ô€îÒè†î¨´J$ë3õHºÈ¢«‚²vÓ#ÏP#‡.0›JOP98Ï1Ê€Ò8¡`và*¥;ý7AÅ(ãœT¹É¨óu|ĬÌLT§ï  q Gq†ÆÄhJú•#–G"ErDò³—ÊEêΟÆ4+ÍdÒ/`ÖJá •mÀ&=ó Yù¨³[´’ÐÅ‹–q¡¡‚Œ.í씌ë0´Ú 0”,õ?Ï1ÏiåN$ßWhAûü| $%Ác¢D¿âÇÕ„Ù›—‰e{…¨÷ç!+Ø,¾ËŸƒ œ¤v5z)X·e3—€ Ð™wÕ‘‰âÏL ÁÑŒSÿ]^ yøëvc·=¢Z¥F‡ü¹Ü˜ÕÖtc<ËH  d8k.˜,ɤÉ2Ñg¡«Á»ñ9Zc¥"dºÜGDÍ™Dß EscœoÔFåIYëEIÝ1 @¢t²~ÁÚVç/lEjû; ÆYH™<¬¬ò1Ãä 5>.þLŒ9:滲¶3¬ëÿO,Áh]@I èe»È/Al¾nƪõ¨õ©V¬ú Â1_¤ËPTJ>Á3ÜAúN”ØKÅFÊ'©êb™Ôõë1è½Ö¸B%Ò Ì{c@÷k× ¶¤%Be‘‚þò¤- ºÅå@ð*UéÂ, “áè¨R˜M´I)Â)W¼N—R.g§Æmú‚K;¼ÁVqcH¿!»pª°p¦ :#A'Q›²…ÉÚãÙfÎò—sN²~pÀ,feóȲB¿ãÉ%Pê€PTA©VóÃ5âˆ=ÄÜkânijnmwq85ÕÎ ³|tÇlwX.hû+yší–i μÏhpF>7„ «x98B1’gA„‘J@QVœÙ“ˆNÉI¯ÜbÅ™D<m9Ûµ2¤ƒµ³‹”] 67ržøMð¹ÑS¦šæóø³tn‘çÇ^"¤ò–­@Æ:-BÝeºH޶a5Ó·Ë 0ËìÒõbY,|vàÖšPmGÀÿ>‡.Cˆ¸Ï^kƒ‘¸œQa‹ Y¨:fº()]*”Žèoº ­® …¯„ÒÞ<-ßúb”èà hü8ýnb ÚùE¥øbY<‹âà-hw69Q5kÑFÔ; Y(²Ñõ ’mõ•¦Tg[!é«*óy b~+g8zæwŠžê!¯ÔÅÇ`º–saŒDÖ¸-f7_³ÂìÅ<šI6I¶, ö˜ÏF:«•tOeRmà‡6Yì¢z™_j±eœ"/TÞ ©—­é` ÆÿšÚFwÙSØÑ+>ÐW&‚šÐåæ” ØaxÚyd¢_ùSm¡ó‚Šic®@dbÚµšÏ"åñæÆµCJ¿4Z>á)˜™Ó'êÐyÞ¤žŒ6¨îëRDLaÞ±’5-PUWÎ$cMN°¹{Ê]dȇ%Z¿×9±¡×IEµgÁJ¥þÊ€@Ÿ^ÞQ"ðÉÌÆ¤²Þý2r?qóZep¥Qã«£\¢âƒrµ|ÖÀéèÂ7Aø*u{®è½±ka¦ê:IÖCÁîªæ©Í–ø Þ?Æÿ ¦¤ [lPJmë:èO)ÖK6!Ô…wfØßÓ,V¦iÞèjë²Á¹:œÇmÍ#^œh4 '„©ƒBi1£ºZš„=5ýÓL]÷­ðÉÛuf¢rìBLÉUê'œ›Â¡òl厱N3n Ê7UéuÛã?¥T­ES‘J«ß$0‚€c²!ô‰uæÂ¢ôÓ»µms&êíÑúm«€/ô<ûœB?îí/P¿í°“Áuæ~ñAë·ÍŽrƒhÍ}%·1äþ__ªcb‰Ž U‰Î}¾6“Ò) *=)¿Ëÿ "“Ä!_pÐç+M 8$ýÞn¦­—†……t5“‘î¡ YdÀûÕ†h{Á (5 èùâš»®-6ßñžý@¥x)†vVÇPx_Ä“« <û@e“ê)~8è³ìH4œÏrSF?Öœ¸/h¶VÕai&ŠJ—»Ié°f1þˆ:B݆•´,i‘T¨yÉþ’ º>XÄÔ&Þš®²»Ä|ž­W_¶{7N”ËzU\B‰pŸ‡[74$Çq­r²šY¸þŸ3ybæé%„­º­¨ò¾læI-Àbð’­t¤J -i·XhÏU7–:îh­Ý27û9ƒÅ™ÐQgÑœŸÍ f8³“€Ü@DC0ÂD6å²µ(šºšœ²X×efÄÀÇig|¾{¶Žšá½Rm“á¬iÿÜÒƒ³›1+¶#56Ьpúͯ,˜ÁÚr>à2ë›ÞÖ]Y»kðŠ«d¤HCœqÄ9‚\ëã¤[Û€ nÆd³•:Á¶ éluG²!öêÂa=‘>_]´~sj¨HÃ.ÐV¯<}n‡¸d1úfr’nKZ|ZŸ–VG¤ºR°!§â_LMÒØÐ1>Ù†l+Ãhl‚Wˆ:VÀEÕ]Óý•Vñl£>]ñHߥH´T\ÚÛšù=øhC[sÐ$±Qžºè#,Ù0Å÷Rsj³U‹¸²ãÕJ½§›^Iú+6)£š£FëM•†lz kŸs–‘ðO‰œmC dP7ÔÃ:@î¡7\Ó{ùŸ}àP v‚(=ß’vÀ#DZ;<ç&I†ÿ\Ö&°–{AÀK_³=~ÅtŽH´¦Ï(e•×”äp"ê†ÙèíFûNo´?ñ@ÅãH¶h‰ÝTUºÕÇÏ}Ò‹÷ ¨µÅÄ”2viL »?½é)wÔç”ë4Å1ÄÞmžªj§· . œ=U]¸Fóh:PÈÅzà÷’͈ò.‚P‹†S`ƒfÞ™Žc^)çm›Ðzf€*Vþ1Cþd$ÜI7ܦûñ\`ŽÒ^a½Ä¸™(•BûÊšöË\ß9³«C<$èÝ Õ=†B}meO¾Ü— Xs§Žœm˜D£_¸ ¾û¸=a‹àwDY÷õEíhi@³˜9Æù”蓇^9£`K†¹÷K6f¡= Ú§ó˜ósÊCÚIÝD]•Řu½,ßò÷®s¿õáðq ÃCXiZ0À|—RL¨ÔMÍÚÿµÒ6÷zÕJ$æykc[?¹&ôÑ™2ü[öxø÷r:R5¢¼!9ôä°»ªs—ó“K\üƒ }óÌ4·H“N݈i¡&-'RúÂSèüÄÇ^=uµà7 w¯¡5³~Ϙô€ðÚ*cåñºëg½o°F<˜›Ç}Ý1¸Ư”mLñL¹‚Œ’–Õ 8’>¶Eú¶•‘T‹l©êêÚ“}ZÑæÌd=VÏ7Ü´}†±ôŸ>÷á„Ü/þk¿œ@1ñ„0åC/®ÿíÕõßѤ?­c{wùÄîÜ©­ó Hâ‰Ú+Mýî2À?øÈ•?‰ñ6õUXו:º†©ÙtqGž¸LBV¤åÙŽå}g´Âgç5ø aãI½"-’ùÒª‰Oøt‚n2žž³Šr$(¹šØ/ù Ñ¿P+âÇTbø!_‚Jºp}žÖøQ#kås§\áhÏòr}mÓIP&A/ZQ×s{`÷gëÿ3Êóa%zê¯Ô`ÀF#ØÆå݉~ù[IDÊ'T¾„qYÔÞ9¢ ¦"LÊFŸòÐó%"un=Ô™¦0H ·‡‡YQ7©z’‹'9|¾8b…j Ö½+"%·ío÷ŸŸÎ‚äE­“͈¾Ï·àxÛK âöbSÔ¼›KYk¶á‰Gª+‡£°UÛm@ˆ'¹MÕLX„;}».u¸vþ.çuë®8¦uÏmU¬§do¶ð(/¬ì¤J€nDó¶;?¬ÐÎÛ¸8Ðs´Ê¬~/wåòOÖ–>õ#….åwT¾Ü!Æ)«”}}ε@º&(¾ú‹ùNF³4`z]vîáñþ‘Ì´[aúÜÎ4g×âeÓµêÅœFâK^ÜŠ¹L«¨¹ª¶^Z$ß¹q°“웜nkê64©ý_Òp+ŒÞvÔ¼FhM(8¥0’;yKF³ÈGžjŠØ½¦Æ±î—òK!&ÍHÂídãìåè¶ÌêGúY8³„}²Ë+ײ÷P@ÓPÆv?O~6?¼¦°: 6vàÂàó‘ÄjFü+•Xµ *á©&y>š&/ ›45“F`7­doªÕŽ—44› àž–rQg¢˜T¡ÚƒÆØ]kmmBPž‡M¸um-® CÎö*pZ4iºÑÕà´Ñïfç酪ߗ6nàÃ@Ä,¢XÆa¹óÇHÒµ¿Ç<ó2ø¤ÊØIÀ'=Ϋxzæ"U\²¶‰!Í‹ëöœèÒ0x]¹x3ô^ï?ïwGûþòh—˜KžAI}¶B¯s÷mnI´¼ VŽ}n¿DëTk‡MúÄ >G?·.Ò£HçT&Úî5WƒE>®}Ê—u־т{¢ð££×€ýÆW¨PávŸA”¶ p2\Ï¿C»Žà$ÒMÞ6³‰²oå£S¤‹i”£!1øã• ¶I˜ÿT”Ø jkÆÄ¬DˆæHk~¯¯òbµœ˜R— µŠª4®¢55wŠ}W‹4rôry­#ñÚÍ.²è¥ÏŸ„!ø6ØüH*µ ©– ± á«°ó÷*Ê–‡šÇñOy•'¼Ë¥­£BrHó¦…¼~É·c“½|o›YK¢îgGÀË ­õœ ƒ)ꦗ Å l>pÎ߃ÆŒ˜¸Lÿçž.䂇“BF„\[þÈÁ!óSMT¿›âi”Kí"-„"oó> stream xœÝ\Y·ÎóÂ?bgM‡÷ ¹Àr,òbäAZí®ï!k%[ò¯OÉî.^==£Ñ ?xÔË&‹UŪ¯ö6ð ÃÿÒÿ/ïÎØææìÇ3žnÒÿ.ï6¸8ûÍ¿$“?x#ŒÚ\\ŸÅwø†s>˜±ràVn.îξÛ^ŸÃ”Ú gÿ{ñ7xSxOßjðLâûÏaô_Îw|àÒk¾ýþ|Ç)µvûk«Û7ñ·åÌn/ñ·Ò^¹ôÓ0ËLöêSX_Ii•ßîÂc¥µðÛ¿ão/4sÙ×qB4¿‡á/Wd¥wá¹qZnñ§µÆ — çÊ©yµ½ƒ…L!X> ]•®ôp¾vÐŽóŒÃùÎyà*Ð{3 &¥·%‰Ê‰ÁY·}IDZ}…lfF{O7¿†<úœÌòNÑÓ„×ñ©Uª»Å@)}°IöŠ{³OöRIž <>*š°vPÜŒzw ’œ´@2;i¿Ð!µÀÜÀ”D¸“R6´ ’•Ô@I[©ÁøéÛ2<Òy¬†‰|Ž ”…È4ÉHY‹óáƒc~{KøKyM‰§êOI ë¨Áñí3XÜÁâ:ß)üáF[ÔöçYS‡8ÀñȊʚ؞p~sñíÙů¿ƒeF 6–~ÞâOÃ4Hîw…‰1ÒdÓI41~T…Wçš FÇž:˜÷~d°R˜¦.zǘ‹òÒ:Éëß»Ó)ÍÁÝ¢æã0TêDvoãhæ]n 辶{C¦»Ãéä;VãßôŒ$:ÃͼȋsP Ðoi–Ȩ^ ¨“(ïÚ”ÜΤ´ßwNêU\ÄϪY!Ê®ï3MŠìÏ@‡Œ•ØÏèlßtîŸ8˜)ʰ{|O„¯É&ÙR+j2.sá—[šdÃðûh¤œœ“üù:.Íšv3ð4ªaÅhNâT¹5¡Ç™êÊ3âB#K”·º#ê@€ÅÀÅx&﹄ž×x‹stšï¡¨ÓÌ`K ×€ úãlaÚNþ~ÈtU15Hƒš Õ ¥P”Ô ½É+óò°+k}Ãú";®"ë´i™g@¢nîž,ø|f›F'›§m«Ä€’jývÞA… Ö ÅMÃçÉ·|VÊ'°ºà`0yW+sª˜$†žª’8!÷ƒæ6?M'µ\i°pÉ+©}™Ümi":¾Âþ޽¯4*çUávÀ/$zgMˆÙs'×ô0ÿüiöRWóÓ}Ëα ßãhÆ”•Ñ:.U€p žrš·–¼6B&¡ƒ{] ó¢t5ÂÁcë Á ’ƒê „Wø8æ-¢3>‡Û”êl詤ȞJ»s»i[Úf>®DÝ z ž[Ä6°bÛ>F.ºž)w{È1¥?w¨È¯JÜ,?7Ó1¨y=Z˜èŃ£žø>‡èÎàý ˜ˆ¨ y7jåH„Ë­û5A×äPÇU´3j"YJb.$Ž+TÇ»Å0jHà·äZy¾3Ó9ý¦¯ÂiWÒÿ'¤QÀQñ™2.(ˆäj4ÏÖ'Ô^¢ŠÀž8Ê_‚á°Vº;1d‹$Å‘(Çø¢×˜ŽÆŸ ±(µ¾’»A.CT\Òqºàl~·ŽÌ­w£’Î”ç£ Ì[ä¶ó ¾N°™\\Á•ÀYe¨»%^ëf~\)u8:ÔÅ5È ÎŒ¯¨î‰¢<¢È¶‰ÆÎéîp¨ˆ×&Q{’^ÿx¦.“ ®]Ž.¾§Å€Tô=<Î skïÃA’^uÀcqþ¥7ƒ‹é\PÈqf#óÌéϽ3×Ùê¸ •g…Âl€3¥- >5Ê”M\:w:TÑ(R³€ìQ4^ îï—œa€˜ 5Ò"¹ÞR‘>´Í4ú8/¬ ®ˆ[jU÷„T)*lFœÁª£AÖÛßã¢bPί2›H rª·ÊQz((0Y“: +*¸|xÃö/Z¹Wqciz¥7ø>î5§ÜÜÆéœò%.óÈÌÅ;HŽÑ16!hóåd¦9ï™éÀ3m3³ú4À0­'†é*eVôp Å7äM†iÈ| úÆSdJ Àt­ •nÓ7Ñ)+ƒŠ¾ù Ÿ‚^αT×u\FÊ2æA‹Ñˆ@$è@.Ó àß%¢­8ÜÀ{l!É›{)‚:¦‘P¼J}9`eöVäœvÎùe[Û:βÈÒ†µÅ¢ Ë›” SФ‚ oˆj^¥,œï¤y¢ýyž8YÕ­3¾ 5púÕ2¾8»ô¢|8› ‰™YUÊô||éÃ5ÄÙ\à”I–:ĉÚS”W4 y¥l#½‡S\ÞãN {D3uRŸq¸öæà„2 ƒ™J èÁ7üR³9˜ÀWQSÕTx` ϧ£8Ÿ@`ŠF#!öT‘Ö΃¿]$• ÷;v½LZ?çz"%I϶÷BDÊß;XÆ&P¼ÐÊ1Õ]jß>d/á§8øË›æâ„èçd=Š/éQ‰ 2¯³)ë)v¢¤þ0¥çP¯uGÈ"ªãíä¨ØÏ‰ª¢Çu~0N& Å0|ÑÙYǃ‘e¹k È0) &TiÈQÅ3š¼Ÿà“ggºWO|ŽÃðÄUÎfÑðóÇ8KÈé½YÜÚ¥Èè2Ldªè¹ÕoÈÜÔè²ü à‰’×{>á‚ûœSH©á®›–X—Ë TûÅ%ÕtŸUþƒœávæ¿'bJVƒÜ ¾7ÉpƒñRSºÿ%Cå zÄ5 ¼d¦ýxY‚Â4adžG2JàŒÉVëtÆ-ªc=JÇPÆD0¡Ëª³”àû¼=a›Å…)ÜÈüV¹úq.<~ÊBÀšÊ5ìsÀúÀRÒ„‰ƒM?QåZ2ÌtˆãË 2ÔÞl™R…§y5.ÔsæD.eM¢W«!B5MŽÖgå{¥nq;Ê( <‡®° z„gQ\E ²£MŒy&ˆÍËP ÆòÃR©¤)'å˜âÝÜhUZtê-r³Ð3…ˆÁéú¢“ÝŸ ꤔ䥛F@±²ÊƒBße&-¶5esË O§À‰£ò‚¹öMgY9ȹ¾„íZ€êÝ)íîŠkäú[§6¦ÚŸÅÄA#¨ì¤>JGô¶£’%:´j\6’=. :\™R›>à+œ *œ¬M!ttµ3}=Ã’˜B†¨±Ì2†¾Ñ~ˆ|•øäÍÚl3Žv~_£:Ä˰³Ê6?‰M+Lqrp}|X™œµÑ¼÷ÑVÔ^àïŒ jôñ-y&YKÜ.L¥%òSRaZ¾0wÉP§$ tÃîײÔD9ý^½„缑kŒsàNú•y&œÍ2½œ=4"ÅL ­†0›Ù$ãAÙÿsî‚:Ú•©œqå sTñ9vÂ$-øUÀ€ ßR71 Åºúÿò¸Y#ûVºÓÊW”уc&ºƒ7¢ðm1¾g¸ÏT“F5ßßy•kOs¯âBjJp jé¨x…5¸g?ÕaÇÌSW±‡vnYš ¦Th·Wv+¬*ÎÃ:Æõ‹óERÖ·EøDz’Hô•{…§˜:[U}¿²3Ã}ç4ôŠÑUS1KiFØ9®(à _ E`yã?<¬‘b Q¥Í°£š—ÿÔ/3Ÿ¹ÈHÉM^¦*Ñ;®L 2Íѳò·ãQ)4œªÍ.ôOÃߦÎ÷õ÷/þ¨ÂóÒ:ö‚Åfà~™RˆÕb);P×”B'±œòj…RØDß Ê<=¬ÏÏõÃÁb®ëÈ õ©vBàõÇ»êA»§;ù±}ÿ+ȇHÌÜ.çC‚òË i1(îš^%ËÄ7Ž%ÍÅ•ÒZÕY_ºú)”[eM’ÄNµ øœ78À€{}·)áDuu èt{ªkØP6Þú<°c§º”ÙèØáU%3ÊcÝŽ»òˆ-PzNåü ÚŸ2È;÷¸…RBï‚ò•*dœåÞõêÊo`„Ãýn í'aKã^›„x WReÀHŸÈ¡)ÉüPŸÈBÀë}!£½Ší™¤½¨e£†—˜ÇwqnïÖ^Ï•`µðK6%øXÔ[ݳ‰Ã±Z–®ü`ÀôâB‹%¾Ét³jœóÐ|¼.L¡ÁQgHíÙaq£Ã‘–½MÀ&¤ƒW/¢i(ýzÜkÙ2I£qï†^¢5ÎP7¬ú’9ìYè%Uû×å>?eªfFªcÊbGVYAǧK+£äÃêÌ|Ò6Õ™ ¨B·â"òíZ-+¤ã.2¬„Óñ¢¡.‹¡vÑ$7ÛÿœFé>¼ãCa?‡â•0_¼Ø%vÀùx ªZö˹1I‹Ü…•7iÙ»wë¸ûÑ™yõfÃ’^y©³q ’6ÅU™ÊÒwºð¦¥®lUór½~¦ òͺzšoÅ}š¦¡'©ü`"¾ÕIÍФ"óŒeNEJ‘Gïû¯ÀGÁ[ 2®²óG/ÒákÊ™ÞÆ©@{W3*0äCB?wjÑl ì Uzሄ†ÞºxË‹ÛvµÈ—>¶F×L&<’”kúÑ霩±¢¡Îcb'Ä¥ ¨NX^9§LRJ䰔NJŽÑ&ää<„–£¬n›õ®Ÿ÷Dvø).ç¾<±ÎÇOÜÕ(…ýºkA ß–[ü¹6𯲸Àš/…+‰n\„8¢ê®,1øÒÄKúïI58Ž”‡£Ž^®>W¦º5öh¾ø¿àò¹Ëwd}çË'Bæ φwÔ˜^Ç•¹éÉk’º/æ;‰_mÜb>¡iNkœÜ4×½r¦Ýh[¦ÙêoYáOÆ-•†UFþø¢òuƒ¡ÌrsôØ wÔDM£ö0¢úE (<¸3ßýàA¯1²°Ì<2|³3Ø«©’fØyGbú‰Ãÿ|qöOøïÿÝ ¬§endstream endobj 1416 0 obj <> stream xœå\Ëo·¿»ù#tüTT[¾zi‘}Ú =4ÉÁ¶d;ˆ-9–ãXùë;Ã!w‡\rµŸ,9 üâ’Ãá<~3ò‡1ÉÿòÿÏß<'/ŸüðD¦Ö“üßó7'<òûi¡OâræäüÅúFžHí& r^OÒë“ó7O¾>¼;…AmTÁž.?ßãO'¬T‡?Ì­ßžÿwÚñÁ•ž¢Ð&8¿HÃY19­4Œv&&-bŒ†ƒßÆ(­ ¢b䃜É)!ÂÉ™T“5NÒ`ÿÆÏ¬·!¨Ãe /ÒpFH蘶H8¼ª{¡à/jØåÝ)Ì*œ†QøØ7øÛ{T¨º_Œvêð:­KéÃႦ‡7ðw•P‰‘Fkoâá# !b‡ïèK땇î*LHú‘Íñ‡Ó’ñœ‘t½ ÇFfôsšùZ®hlmôr.ñqI®¤1íb10[ø¬ú¢OÌãs>]mz…¹² — ØÏHV]˜ì"«—yë‹diå]¡Õ”y .Ÿlvw0\ÇÚ%BžV“—.$Ñyn’hã‰1/(›}ë¹Å6S„Ém!øËe¯º^© ¥»‚eÀÍ?|s`8š÷ËhŸöKËü—­„A«2h|á§G/‚6 “ 6´æ¨ˆô‹D·®‘NÈûL,pq`äßWK@ë¥ÀéìÛÀ(|sÊFùÌ© 8R9’¬ ¢ÊBó½ä°®X êYÅ«´`øùr¥?ȵl¿‚²¶Ã½¸TêòŽ6Gø=ÒyEM°YYÞ•*§€rÓˆ *ÊË”hœd0‡?%{(¢q\]WþÂg*©<#9ÒÂ/Ó)ßx‰Ž­¹C:ΔÀôz²ÌEe*“wÈÐK²J£>„‘ÇmhÁÞÂV­œª œÅÕ G±fŒ¹.iA±ÚÇ6؉‰^ï˱àysa­­”­¨ˆ#4„³ Y oÖf&ÉÞÇì*`+Uäø;æZP™ð €JePL‡ç}ñæ<ï‹w¦á“ÅxrÞã}gg’ ×;3wAC X&:Í[Ñâx›Z7Ø]ÐÅö£ã-³Wô©íûÓÜК<Ø’‘où w 4Ò¶Ú“Hc ]( ,ßÞ&¤Á¡Ýb:Vܨ݆ö€ý¦ÞqQíh ×ÌED…ë^Ëh’ìb*gL‘ñ¡4M×,ãEã9wøL’šÇ¬Ë9h Ì)|쌇’ÙG`ŽÚä»¶“ó—‡ <–$³¡d Ž«‡àG§å;òuMĦ  kˆßÈ@Ëþ°ø—ËÏwK¬ÿ~i½+ìc„\ö z a<î ü R›¤Õ.ðå²öû)Z§lcG6Â~-ú5*ÐJ¦ÖÈ.~ȸ§1æ(Hí¤A¶? ®9ÞÉ$“ýÜ(ü\ '2Ш:íÐÀÊ‘sÇ™„Ša+ÓJ½²yä"Û×@±ÞDz®«úcH3CÃëüwªpй@ð³TÖaÉSÔ†ew Koš®ï܈áƒÎ©ŒYÓ~l)6%RÑwºk#̤\= ׳ëþf¦Ô øL pÅyt4Ÿ GqR6­v‘ösçÛ€‹~”ÈzŸQî—ýÄ<w¬3+¢‡3˜Û ÷^ ÁfaÞKÐA?:ñh2< 2Ø>‘±8ŠRuÚ8Ëîè¨,ÍmRz{¬8n¨ýÍ â™Ûg¢ð¡ÚC‰eªÁƒy'7ó0…ª/˜CYù;:éÈà(‚H¹ù´„ýõ„|þì„Ȳ <ö‡¿ÆùX£X6!¹•<] õ˜§ÑÖüØÚ>·Ç)¦ ­b¸å¤iù™Â[ÕMw xŠ·3ÅËè ºÊðvåÕZ<Ò‘•d¥GísDÝ :Vΰ}-§„MŸUÎÆ-áœYÅÁ"7©'[3Œ›&•¬:3¾6FvD@Ü(ºþŽDÙ†ÉÏЈŸ  àæ1D5yµ#ËZÙq‡kX%.~%²O§üt†÷f2éÑ_#®jð |;·•ƒ3°¦† Ò@(ÝjFê«À¸Y@)¨#ý˜OWgð癹½å’”óàÖª¸7áÂAIÂÚ袤‰4rL|Á§•sntÆi¯¼DT'±£ ã’Ò¥AŽ»5”WØ)иsQôÒ:‘v;©%£øß{¡Á`­ì}uˆº†~²N?*ðR"öƒH-ÃNg’Ó>.ôDܺÙ_¥ÅÅþs á’w޲« —ˆÀST»Pð¿ôcpê!‚ru€ 4Ò œ´žê§d.êÎ Òê,É>‚óP½vgJù ‘}ÅFç]x;ê\Gîd–‡<äOø;ۆѴ¯è[ŸŽ%µJõ>N5ˆ KIúÙXåå€`RµL_rfE@»„»ªƒ™`v’:•-g;yr>&¥,ÇmÒE‘ÀÎLÂË…-·ÄQ¤þŽÁÇœ›G¼9ía¦…:9ÿû“óß~ âÌRQtAX—²’!ã\2‹ÛÎyÛ®LÉX1wåÀWHŒQ,ü´‰Zn0ri†k"7nÉvñ¯ó€˜t1]wmê›Lˆ7-X†Vcßœœ­{³&UN*Yøû¦{€~xmºMÏÌŒ…ý†ÃZ¾g35·Ô(Ã8¢.ÝÐ>¨°*÷Ê´BÙRU†ºA×+øô‘æQ 1 ·}Y^ØQ´yÝí\˜ÜŽ!^1íâP|Áös.v_ò¾9ðW d¡µ‘Ø*n…mPÑJUy¦n[n¨ñ òcmÙ aFD­s}ù>‰†’ec›[eÓÒÊ]ìœ9€½#qÇlwÅK˜3¬ÀjšS¯šÓjÁ°© ˆ[Õ¹ÈlFuÇŒ“™"[G8³ó¼j%¤@X˜?§îš;Yº&¹9ˆ³Fª·îÎ8:§Ï“tVN„Ÿ7p»Î¬8àZƒ…•V4uãH¨ŠfpËûž\BE”ÖÒ?ÀPœ'èõÑaMäVþ”ËGµÓ”áxªÍ|c«ÛÈʳYåäÊa‚R_ƒ‹1jËvÝ)I ý]RlÞÃyºÃd!â U©éL ßçíâ·›|(œ’é¼DI–ãEFò Š‡9ˆYV,ïð"!ôÈ™¼ÆzÂãßQ±:Ó¦¹ÖWRëÇ#Á RCdœ™¬´r¸c+0uGßÕré¤oÞDœ}ή0>˼޶Œ-¢õ.úNXA^íb@øøÚf+\/0¤9Laøí8;¦Íýœ— ÀzK ©Ê¸HC~kV»4®¨O:6þqÀØ«ómà:p{P¢M:0X“6µ·5D·O+ëÓƒ¼Ä:ào25xXW/“„wc ô·ø™Lg¯­‡0_NsûzØZÑ&ø$Rõ*ƒ ¯/Øp JnŠs¶B çFhÆKª­TZZ¡–ÃИV20Z9q´™ãPj”໘]8ÖÄr¤3h‰ìÝÄcëãŽŸËÆ_ÁµÕ¥¼¼Gv*,­œÇ¶n99)… 캎¡!æò×°zäöW‘¿FZ¢¬ËêÖG¨µ$nº­o¯ò:¶"ÉoÈÖ>¨ö“€&@ Üèµ©ÑÆÞqU ‚­!¬«»ááŽÒ FA”'*È;Êr¿¢ QerÞfu˜”é%èÆé€^"î5Mâw(#kñfuÝ) mü¿#§›­åmã¾r3þšÁ³u š“©ÑŽ HÕ/U¾¾ÙaÜH,£ÎUr¾Nx°±®òX¡N!pgÂVŃñ[üà¾3UD°â÷Êòàh݃J†u|ó•¦ì•³Òµ'<Þ1Íc|ɦÉå±9ê>3e,¸ÞÈÏo>¦Zk•¶ÆŽïv_MØ…WÏöSÏo²HÝx¼ú¨¼¹îsVˆ­‘Ú›D…ÕAåEtï‡=÷A„æg@®O-¸Ìžûbií•…A«ùlëëÚy›w{_̬î.¦¹»þ–¨²±z²„2‘ÞU­yÁVX•¬¬óÕ‚Øý'UDy¡,¸Y>°Ôû¿lÐp§YÀ·ˆ$-©ÚL÷„… ÉcO·Zw¨úààêjŽv:1D± Œ»Hª¶Ü‡íTæpa¤ùž1âx\ ¬Öß_r4º0—›y¼ÚæÐqê€Õ~àæ éfÉŠ‚S—‘~7Œ¦PÚ̹©T¾Ñz·ˆWÕ]›¿ØñbÁ]å ÆÃ«‡Tî°Ü8ÜS%ü·¤:Žh[U]åkÆ3±º=M×<]S¬5>ªBØaÃØüÈÇø‰n+î_ç¼.à6ÐÎx¬ý¸x'ãi¿§}—6¢nŒ€pB±ÊÙb«Ù®VÆ+v,ÙŸq8id¬³B|áÜ|=Ÿ³'JÙÞÑ»˜N2½8üGåà/ƒ§Sî:¢M3Ý2²F±Ûê°)^«ã§Âc‰Ÿ—=,d(c‘júD쥖tD÷ù‰^£Ü—Ð.·ÑXq×] ¼u Áld‹r3[~q™]gn4Ûu³X¬å3ÙoW^žàrêpÜ;gðtûn‘¶Ž˜l~Ö Å ¸÷СsY£h+Û¡YM˜ph«áÅkžÇ=÷3*»;<Ñ ð½ëÓÝf׌a«³áØzÁyMhXÁ( R6ð+òËÖ焳\°º„¦ÎŽ$ýc¾žü€úíP2™Eþ›£É«zŠ¥´ãe¾çítÇò~Ü*Y¾Ô…Ì<йV£ÜÇÙapw„{óµç®Ó«¼ôì;¿`í£cÕ‹ìÇnò+ô¶„{TèI|i¹S<¾'Û½Sü⨘‚­¼+èI¾åK7±y–rpäÍQfu º].3£óz¦‚£¬,}å[ï†(RâØ`Áßm•,àÅ Õúz.´úí÷ßL ÷xJêÍï<ƒûk xù‹º½;„ÿ×¯Šº¼Ï– –…¶¯—€÷x«»l½Õmñ„}³°+uQ÷жÕé5¨þó|„U ¡«_8‚Ðz=›@¬ö@5ª8IÜu.Õ¼K™ØÕœ•æíç7‰Ñ¾sR½ýÎ2ˆš‘' û¨å¼~y‹ÎÂÐc.Å€> stream xœÝ]Is·ΙåÁãcJœ`_R•CöªTrˆÃÊ%ÉA{lK¤,É‹üëÓ ÌÒXoÞ#i')4b€F£ÑýõðëK1ÉKÿæÿŸ¿½—¯/¾¾éíåüßó·—¿¹¹øÅç*ÆË8E§œ¹¼yu‘¿‘—Ò†É(鼞¤×—7o/þqxzum”¢‡wW×b²Þ† àµ˜ŒÖÞÄÃ|í½Ñ>à³QnRÁ^âkã„îpK¾|AžçO]Pá0]]{¥& =þîêZNÊßÖïñµp6ÆÃøZkë•/:©¾žûüJùÉZ#ÿΤFxy·ýþU~ë­.Æø˜z³ð“ÉsôÀ!Ûáˆ+'EŸ)E”gO ?œ—fFD¡‘¾µï—™ª ãáÈidt”«3Ï´Ñæ» JŸé·„=×éµñ1þ‚Qéà–¹I›‚Äü = µ´ÖÅL?]ýëæOÊÛɆbvó„ŠN¿b‹QÖØÐ!ßdZµòx}}·=Îdká#Žv½ w-Õb$ó¨³üï{k« §‚éoØ Ð‚|H©…Õbm°“6Ê,ÚäY¡yvA/>áf ÆÂèb@†ÞÞ])Ü™ñð-J¯Ñ!6\ƒ ê~²q(E” T6š¾Í$µ:<ëO÷cÚQ:šÃwH&¦*~_édi4®¿uB"¬/6Ô¾V šd¥ŽÒ²¹¢‹»ü6ÀkÊÙ/ˆhÝ ¦ïßf 0Rð‹AVí‡r¶¸Îv7sZð™!>ÈÂ:÷œ„ÕÚYXé‚Üõ•-  "¨j`Å«¼„ƒgª2©n|^,Z_ ÈH·„dÐÍð8m¿ÆAÕdBÏ´Ú 4` ˜éеxÇlŠ— Ý•˜ªh&ÊæmÞÓ­t£`7΃,‹I ­£gßæÙ¡ˆñ{C†|“» ‰Áï¢U#šÒÊjwÖŽNbû<‹­“”«âíñÌúBy?MÊÆÚUÛ8›é1`V7-to—£PÓ”|¦! ¸ñ™”‘‚«-¨KmÌäƒìh#ÛôË'ø¥CÓ@¿|oA.A“Q y•‡±•°€ê@ @Šï°…;\j‘§”(œ¬êòD´/÷DR’  ýŠŠþ‡ü0<(- ¶vªV ¡ o‹×ó.ý˜9àuñUæœ öùó¾´1†®2èil5Tixo‹‡žƒÿM+²&öSˆjiÖŒ'(ßÜÙ9ʤv¿y$勽먪…O{$±P Ú¢H9ÎBWJK[7Yi9øB›N¬Ü>K º ¨ôP©ãa%ì6ãc„ÂkŽ;ÌOìQ’Ý#ôÓ¹¹‹¼ie8ýMI"2K{]+„´ô`~hÙœTàû,©ÎL†J*|ÀT–ÝQ¸>³ù@áȇLˆ' ŠyìR°³÷ 2ñ¼ *´Ñ„œ‹ûoölLï1ÈŸÒ{¬¹RÚGp9·¤¯·×})æ<=Ê_ðtL`d%•¸e¥¬q¥}˜¢Gµà-‚½|ÝœMÝ 0éVÉŠh‹)ë)v¢¤~•IÉpïAœTg·:Š.ÎÝŒ*@y½ö "ªhqCœÌ7c(hÿßÌÌ w—YVšÖ„ ƒ|Úº˜QE¦¡ôñè3f‰>e±§9×ó6À“ÐèÅÂã×¹·™ù ^úŠ´¦Âˆ°@H@ªŠ3«Ÿ‘¾©Ò[&äåIÎ%{¿â‚Û’SH©“.ì‹È$ªãpÃç•êšÏ&ŒAöðÓîŽâ–˜’Õ!7‰ïëYqƒò2«³÷Ž4(¡ò =ò˜>rë|¢®Á‰€ ẰŸÑᙌR‡¿Å-!|°·¨Œq&”¶¡ŒÉ`Âï ­Ö`ûÀÈ®#2`–²ÆËè8»_|®…¦aÈk%S¼ ¦ ÅȰ0_€ç¨%~ÏðÑ +U~Ìoµ>æœvt§„\–õ[ aÀ¼?ÃÇ ·¢ ‰)xØ9wREK¯=¸nNÙJñ´ÐfeÌø7ô@µP“Œ–ó*¾'Ê„.h¹aˆ%n¥…”UÄ)Ì_1xñ}¦Ç{_¹­ø6/©ãB-gIdo!a“lÕZˆÐtS¡cáÀÃÐ÷ŠÀâtL|, ¼¹®0 Z„gy1¤É6@dG˜Ã£à!»(Ö®´•÷ ˆæJMrr@t›#‚z›ÜnØP b »ë'ŒYÿÿ NJI‰PØ0.¨s5¸(ð\GRQc{§êm¥—•¥Ë]`ÇYxA]Ç®±l äš%BÚÀÒÍij=Ëo£ !µ¡e¹U ÜË4‚È®âclµEß0"Y£Co&-u'تÃ!‘)­ê¾ÂÞ ‹C¤ ‡¾0pÙôqŠ¥p<0ß^ceLy<ÞE~9ó)º½Ñflâ±€G³‰Ç°³‰6?A} Þ®rÕÎÁñ#ðagpÖgõΣ­,½Àß ´8Éã÷ä»27Pà$ǤYxó¥ò…G¹žmÌ]x2Ô()pÝÀ©ªÔ„÷KI¢•ˆRvb¹sûâLØ›v=tjö™`µ:‹Ù&aö„ýïW!‰£ßÊYFž¡a•‡¾Ìj€–0 È·¶] è'À‡›ÿ+ódæµôÓ¾¨WÉðÄà‰fðF^|_õ‡ß9 Ѥ^Ígä™KsÑdîËã‘&&ûÃlè¨jýj•. ñà'Õƒë$×tT’íô˜Æ|±ô «ÇáËÖ!¯²3:,ýî œÐeU P‚@ 5µ!Û–ú´¶B§@Iøqž‰÷̾q&®Tÿœàá–pÅIV®p¡XWôó,·H¹î§ý×4jÄÉS.tY*0É›¡õ˜[DWu˜·6˜óƒöiÞ®­5u»r†ØÔ_ÛÍõ³aMPÈ?â—-EßXX(€¾} ™oŸEÞIô}ªxzG Ëœƒ0ä2 0T‹—FdîÏq­«(ÄõBgÖd|Þ¾ªß£@ä9m¢Ýu€Ðï¹¼ùóÅÍÏÿÛq+÷F‰8%ãD\ò~ã8:7ÌœAF†n8CSîÓŒGv:•ò]¡•‚JŸ!6F¶êõ"E®iQµ}GÝ`.ÐgG= ìÉÝï¨Ï™#‹yÚ#iõä}pf¡M«kSc‚ªuáç5ƒLœ/0H&:Ü/Fº‡b™CÉBµ 4qG2X„ãÏ«rHÖøH•ƒl²?y=ö͘]lv,}ZdªÕÝ(åójø­.( ˜ª´K—Ý/2«`/s%Ù}ÎY&i(F;[æ“7VˆÛ´¨òÏÏ7;pLùcGÓ³@´]ˆ+PTZ¡8Y19•¹H¦ˆ±lÑ· `Oƒ5žÙ¥às~‘QßÅÁûÞ²$]Ð7ÌT³QÅ[8P©ïøá«¨4h-oLòR˜Ù]ç†Í1T‡^‘¡R¬ÊÒðKa»™¶’‡§û¹Wåš²`¨‹xÙ32º8„ÅàKS….aRõ¨“±2~\æZ'Í×ÕèœU Ç&h^(Ʀ–c&#G ¬/$uODz¬ùÕÇì”k À ŸÚcK€Ä·L¡ÿzpGî'-íÛ8‚ªl/Hžhá½—eVÂîdU„TÔ¯-¢Ié_œFé>=KžÏÏÉf°vnXY˜f å² šØÔ»­˜ÃªÒ„B­£ßEb¼¡n‘‡Ýy£srŒ¥ç‘íÄŒ©V£L+–÷D½_>ç³Á]ŸwîoG 8-¡;‰Jþ‚ø$[|U{͘Ø×e5eNCÊV¤zÄ~%>*ÙPHSì?zø?3Áq§ Ê•³7`(N^×'·²ÚV˜O]Dz°ER_ö+Êê„R»ä½³Ì=7«ðLR)égçöÖdtGœ—,_òKa¡ö'?æ¢|ÌQ ¶V§:½¼d´w¤ºSÊäZ.kõf×wÛãwG<;€“&„ê¬ùÊ<¦®}#ò)movƒ0ê¾Ë¢¥uðÓ\­U8ÊšÿAn´šÔ0™Z4i5?c51þ¨ï“–[Â4-ÁÐ뽋ÍkNš¤9º“KL^"wìpgÖ3§¹™Ü1Peú*Œ©éhI«n–ÃÌAãý “Ÿ¨šç1\5·õE®_œX‡ÙÊD\ªÑО¹l¡Rv¨©,Œr2òÇMl‹²ô䯥KõЃ &jh:…(ëQP¬RžÌYÝqÑ-&;ñÀŠRKíB/Nþñ\ÍœU0ø”÷PÁ«—8RÁBNý[+VMç%·”A®®L–á³YAÔiR<ÔY#` ¶ÄùQ$2ñÒâóç¿3‹°Ý­•DlýÎ Wœ è{¤å9dâD‘–§Þ²sˆ%çŽ`œhð\Êx‘WV>lz{vûr¯¥ÆeÊJF¯¯IE]ºÜ!L .y]þ¶gɼÞat¨RçEú0Ôy]|+uÑGq¯}Q°Aûýv=?PM“޵ü¨ÜøÄ<:&S1Ýz”kØÍÄ'ž­%@v“Õ—ó ÖQw£G8?äæn€Núwb­µ<¶‘h±N¨[h¦ƒÛ…à_ÖÆ§ör€TµÝ¨e`‰Ð þy 3­ïëø_•ð­2 úké±*éÄŒä Ò•ˆ­ò|Ìn˜ÏDÇê7F)üóŠôò$Gk]å«b®H•5ñ<9Ü‚ô"eoËqš0<ö@L çÁ¼Ï‹#º©ìZ:osc,••…æmDÃJ™J·üÐXÅ6$êC#Áó0s‰_Ê7𺠮Äëí FNÕ!“3bÀØÒsœ'IÂ&³Lu@ÔÒ¸ÂÞãGÐZ”Àúœë¨ ¬=eLaB±ÚÇV؉‰žKlY"Ö7¬ÄZ[l¶eûˆÈ¡!ü( ®I"¼au-y§Ö˜÷Žó]×Ê Ü#RØKê %\?C¼w€ ã¦vJj„•.ðÀˆSse–·éí°ØÜ&{j”¿3®vÉçÎpN>Ö¶ä |¡› ‰ä5øœÀæÜJçãDX)Æ¡ÑY+c)wŒ’ƒšuùzVÿŒ²m«%¶SI¼yúxÔœk ný»sSø?FqÕ¯‘¢½*w* aWœñd#HønƒÞ¬Å÷sN—9§ÛVDðšî¦yLÓ¤³¯Þ³¨Žº}ù: ½ÝæÃ®®r“¦>p¿]Ñ,¥-%C‹õj#¥‹dh¿HFðkÙ ¸‚Võí©Æk…{u®écü«Fì_ª)¼÷´ªÑž`)©Bœ¿;a½a÷ËÆÞ¦^¨N®Î9]ã!mãå5*ç2»üÆ S$jsñWø÷~º˜Nendstream endobj 1430 0 obj <> stream xœí\[o·~ׯP_š£ÂÚpxg¯h‹¢h´hª·$¶åÈdɱc')úã;Cr¹C.¹çYÇh‚Â>^sÉ™á\¾÷›s1Á¹ ?ùïç¯ÎÄùÍÙ7gŸžç¿ž¿:ÿÃÕÙ§ŸËÎì´úüêë³ôœƒñ“–îÜ:5SçW¯Î¾ØýþâR+7 #ww—b2Îx/w÷—Òá?¤Ù]³Ç/Òh'üî-=vÿé鱘´NØÝk6üé>VÊé°{sq “°&þôÛø¢A¨Ý¿è·R¸¦ÃåË;Z2L켤õÒWo®æ¶rþœOgòŒ—Æìn–™ ™ýä@Vk¿Mòò  dDŠŠ—•DüdEàDžjײBï)­`‘¤á#Þ$f¥p³\¾ï/pc´¶ªzÚÁmZÂøîÎ*7óá•R…Ø·±qôÓ‹¯®þz&½›@zT®«kT¥LI<Ѩˆy#pQÄì§¾_†0¹Ð´—ó¼— '£-¤éùfpº¸&¼\3ꥪ6Œ³÷äâR¡¸qÖÝw8»ø/WMÂã9IÞ 4BÑö"§Ï%O«­V${ »gH‡G:L'=ÕÊTï1xuc„¦×ºTÜÕÊWûz¦ ߌ¢ý±®‘œÅÚ5Jä¢ãup&)™ž<ÈÇÞn¨œƒ¨}cøö¨ájò ®ŠÊI}¾ÞVš…óû¬¯×i¡¾µŽøXÙÝ?ëó5;ñ‡9§Å’ÍD“ûåéÄÖT«ÇqKü('ÑœØhR›O?WPEèKm'‘ùRÚIã’ÅåÒ6Å \0Tÿ±ÁåÀg»¿Óc+Ñ”5I—¶(†¬ÉÖ[0%BIa`â=$ä ïØè‚ד 9î뀺5 ª…žÆç Hcl>äE•D³»Y¸ ã÷¤Tjž\ o£É3EÞÐXfÌÓ*É»ED~ AÈó«Ïή~ñE’—V¢_fƘØp³íGzÊý2ŠKû@¨|7éM£úȵ}mšqMF¡–€ÿôØ2i€ Eሀ`ÂèÉ(Y½ÄW¸e ͆Fs»cÃoÊ„9†%úk´õèzÑ6Òì mKÜbïFÛ´’iÑ6ΡÍ&ÚÆ¦Æ3oÒl` l hJ÷]U½èÂîmÉZó` °‚È"ò·GƒàyCk<.‹,Å]’ŽEAÕp8òå\G…OpX¸âq¢»Á8CŒ4u¢‘©LðM»íDcí>fYbðÄ\‹•-¦1‹r=ª))‹áÅtѲêW®µµDÐÅCm¦àÍ /³òñèI¸Ò¨«"<«qÿìØŠêí¡Ñ€Kw´ÞšÉkÉ´>oWI µ¾vï&Ù]”­²+‡çÖ!@d®ÆIΉÍ8å UJÊf(§h‚L—V¶ÌõœK©²W®¢”Ï}Ÿzæ1Ÿ$Bµwmž¦y÷AÄ ‚1Îí‹g,<ÚÝd‰@r²çŒñõÅë¬í|Ì:áŠp‰š~Æß_îø˜ }m•å£Ñ÷8 Ž!,˜¤ôa6X-•$ÙÊz¬Lé‡!Ô#ú”dÌsyÑÒd¸² ÚŒÿÏQ´Jà[ÈRõw,—à{²òcÂåpñ}“Ûð|äØ**‚Ì ÇžÉ8c÷èeè)WT:®\<ɸ_YC×i"Ý!=³Pn/#W߈FG†Y@®WݱrmÐ3›ä eÇ)nà¿\QÂf6mXqû6áDíÒçÇ:f¼-nÀà4£’-ÂBJ ‰ì:s¨UòÝ”<âO9¨Ù뙄;ÞɺŽB³Œ}%¸Ã0vò™mŠ÷`Œ½Ï^J=áT(>ôAÝYß§GùÂç@“‰/NïŽ8Aj—ËpéùÈz¿8Àß}W¼ƒø0÷‡®Ÿ•¸‰$¯óžx29ˆÿòã0!÷1¡ÉZ U_ÇįöD"Ì‚ ­õýqqwu¥¸„®£Ü=‹³ÓRb?QTrÚ¢Eäzˆ×M†98:Yc_Îb$¡pb=¬>:ˆIP>?½©Fî{8ŽñokqÇY|[É òµ¨¼z5ŠK•<)€ ›¯ÇéžÀ–`ŠÞÏ¡,o¾€À3ޝ9ÞsxžY𤄇ªŽîÅçýiºF}9Ó]#³8ȶX&oT‘Á|êékÄ;²¤Q,_¬£Ë *“êXåÑÂçÊ Áò¼ï¡<:ÿàë½n*W]úH(Pˆ8zÖ[ `&P¹!ò81SX)J´l*·ô|¦Ýœ.´é  81ðùѨ6˜1œ­ý&yM5ZsP´æ¤p¸»Î‹×ùÙ”­Õ|Œäi}czvÚ+‰€¢Lºäëñ)oà¿oÙ$|Â7°¤š$4E»Æ‡+¯p 6½¨ò’ØÍM fTòé²Ñ1â¸s”Jq…NÓ—Óäqcš #r©á²ÎÔß±f$nç*) JÓénG ¨€§]øªG¶Çíæ¨&£Q 0¾˜ŸÌ¾fär2øoŠ ÁL «®„&øëë‚ye;ȹ º¡|§é ÓY:Þ/Âc}ç4oöè#bã?õbÊ^µ¥à`;Q¿D]+#…¼A{ÌmZÜ×'=¢©v:>'d»¥¬s¤ßÓžH”G3ó=tûXµf^V· Ã(è5h_2pg?*c¬¹µuS_W2‰¨ütT@ÎñL¯ûnª;)©Š u´¥`Æñ SÁ]yÛUy"±TçGw¥íwõ\ÜÅÿ/Å]}Lq7׬{fñ#-î6ذ”3Ru÷(>#Öq¹}‚ÿsºbÉ M‡yÁ%à¡?ü½ÊŠ]Ý,ÉøaþQÔ,ÙF,01Ðp2¤œ@ËM ‰ykÝ ó€ì—X«p@Oƒ‘[à ¾¨†u€ŽÕ:;ëÔ:$ÆsôÇSE\»ڴf6ù$9à*áúÙê"‰~¨·1"½!Qqgµ÷¦|3IUg|Ce|.xÿ šöey¨À©2ãJrÿ¼o{V9÷“ô¦õm݈¼¸ö, ¼«ŠLA*ꬡþR:ï:Þ çþÓõ‡Zš‰JŒƒ. ê÷z’ÆžÒ7:@" løF"ôWiÙ&Nô”ÎR¶Jƒô¢R§÷ˆbî°êåBKrû,séÉR᪅·¹•“HSÒ²’*XäqO•9±y;2›Û€:†›—¬ÝÑîÚ[¥‚6Vëùwß+‡I¹±A3§,´Ëùy:±Ø_zØï÷>lË[Iø¶<†$OTw­½çÏN}<ÖVqFŒ:'rjÊx\*4åyh„“:5ƒë¶z"úþ˜äªIR÷öV1ˆV÷úô>Mºzµª‰vÜõÐ(8V"ìñimFkæÓˆIµ\‘š}Zm"­ñ“\ =’Î+µÖe¾Aþsk:Y›/$=]lá¶–'MdlIÞcûÕqXJÉì Þsƒþ|Â\[†tRè|¡¤Š—òØHEº¥©Ãë qÈ`æü¦îß+XˆäRùœÞ‘:3.:}'rPÔÑÂO¶îD}Twñ$‡Y9lô6E̵.£ì¼,‘ÄJ×g[ñþR¢¯Át±m4¸€RZ¯§hÂõoF®ëØô"Šª]bPä_ß–XùÄ&7Ù4o&\Aî‘϶zú_æ/Òéœj²Rcê zÉäû¹ÁÆŒ ^ý€ô¡–P· GŒ ¯µçÖÀöîe¹ðß6õ’‘躜"þ‡U[.¯éÌÀÁ¹lš–¼+m’FØzB !=wë“AÉ®ç¯Aî‹Å nNcƒÏS|ŸFÇâ Wª‚~kHu”\FŸGê;áÆ]¥°UcíVOˆbG.ùxK÷–ÊÕ Å¾Y4ðÛÓhàÿÓ¬Ÿ¢‚å"Ûc1k¨¯¶¹Bú*Ò†>Z:^ÄäW‡"ùùÔëžÎ !H¹÷0\Åšbqý«[™¶©ÖE¿¯‹$»¼h*¯³´ GªL¨®_¦ê,8[=Í jHaÇ|œa&‡\aÖÞ»YÕå@£e-í7 tšëž—ÖQ?§n¬¾ÿåvxš•.^ÝÄ]£¦f­Ú Ðô4Èñçxm©Lr’ÑÔtŽýx—¨5Ðm*Ãoƒæšh¨™ûl™4nê&´!5éGür¢„É@ù«„y;a}‘vC†‚žÚVO+R&п”Ò|œ¡®ÞŠ mëÆbc­UÝVþÈañ¯xï;®? BÝÉ“q&yJ1·ò«Î×ñ꣥Ñ}šÃÔŒ²Ó½·üáz6_áñ4-FqyÀ·>@œƒOë5)cs @g¥ƒ²}}'"]a±”‚¦¿ì’r p¨sȓŘ›F¹…Sy÷?]ýÿür;endstream endobj 1437 0 obj <> stream xœå]YGr~§ý óسà”ó> øÁk{ak,ìÅ>hõ@qHJ/qHiµ¿Þ‘YU‘WU5»©5`èAfvfdd_™óØäÀÿòÿŸ¿y"n^=ùቤooòÿž¿¹ùÍý“ø-ôMœ¢SÎÜÜ¿|’~#o¤”“»q^OÒë›û7O¾:}s SÚ¨‚ÿúþ?á—*FþKe¦(4þþþFÿæöNLÊXaÝé5~ÖÚzåOïn¬—úôü?9iOßãøg%Üé»4~©NoÓ÷^ z?Ôa‚o€ŒV§8Â8ááûôÙ ãômú¥…aó’AéÓûzº½3÷§N÷0£ZG_üð;F÷#.ïa©øÙëK‰ëã, ˜òÐŽ@¦ð iM‡Œ™9‘GÃí.H,½‡Ö°¡˜áÃí–ÙO/i3F8ò Ú›ÈG¼Áéìäüh@&Y-G«p–qš_¥¹µ3 G°Wct8ýœ¹ádñ»·(`ÊÅ)è0ËÓ#ðÞh_î0Ë–VÞå-ê aÌS˜ÛúÉG\è0êô‰}þ˜Ø«´™—§Yf®›PŒð°ŽA²ïfºï¤‚9œLä?[ é`5µœšç ç q‘ºKè¼5øÃ…µ™ûƯʲñœ‘˜Èµv”'·N”;Ú87ü$b)ÞïÒ„öÅBŸ˜€|ÌC@½ËÉñô¥1£ù¾a«w š‹ÆpˆäÂW¥97_¦o}\ëh×av6|Á×Lš2ƒ²ù3:a‹ù&ÿÚ0Qètôzh,^dN(UÌþ"ë„Zlì{ÆîgÆj“ô­SBÄlAèk6ø1µ}(Ðv•-tíYwŠWë·lßY/í¤Öf½øœÓ&7Z ºc€7e@S”§Õ,lí'ö¹U’E§•r ¦ª²VðY/ü#foœ#·øË Õ—1¬@ªy™_Z¾æf}¤ˆd úHœQv¿Õ^ þ] YœÍÈÞr?öiÑ a̬¯Ó|»šit|ª{f3ë‰øÈ%ƒ)C²^Z–Låäý¥4(£R>óR‹b ùI1ŒO»xð˜‰3ëÏËã—šQ°ð]ßÈýØ"¯¾ï6hþ¾„ˆ‘£6ÎøMÄðÍ13ÇMi*\M2»¡œ´#ÃÙòwÌÙg_k­Š½“ ŸðlàWël:ÎÁÒà ºi»Ÿíé|oJ Vˆ)† S\!ù³Æji´ÙÜ·=$Þ9@dÙðI“`šÙì2tÑb¨-Îö=c)wnñ)¹â¬~Ë–Z]LÒž¼ÇÒ­TÀi²àqë.?±“|‘~,ª"›ã\ÐÎN*¸ËÀto+Ù8h')|11çê÷tÂJv5þ9Qje‹þœš¼•ÊÒŠð»¿lk©ÒO½U•ÒÉ„çFŸ¨Ì#°Ç’-Œ‹G­ÌzXˆkÕ¬6œe#û~ÒBx#:ý;†ÉÑ P…w·ˆPEü„ŸàÛòW?v€Á)°Bp°2…ʼ]Õ*é@¢·T Ûg0ÓñqYjÉÇY½çãÈi|ÌÓiU)~‹:âú`uÎaŽo[Ñi¶1Ÿ+üÁ¶ç#mÚ Úœýü¤CëùpFåBA#÷eIá•!œ…ƒ…ñUüHS€û¢Û £O¿Ã ¶óGÁ` hûó‰ÑÇ ÈŸoq r£N_±íëu!™”Á#hr³6|ÍäÄÓ˜8©ØXt⚊×aTÚX¾g¶Z´Yl0ÇIÚ3Ae€]Û'‹Ç…æäNƒ‡@[; w_õ 6ÂíÙ$­Ñ’Ù²r Þ´`­HÐi¾NJé^p›pÒµ¿ƒC‰f;Æ„!Ò¹…?Ðh¬.Ü¢ËÞpnåÌPeø÷}Kýsb¡¾Ð’A¼[Eqikº<œõ‡3×*'YW`Ë?Úše‹€8.þ/èd­E¹Í'¹hüJõjŠjh”%?‘WúQÔÉ‘=F„a$Ë íXÉ%3 pJï@¬5C0C,ü]ô¾8ŠÇn3›èn@ÀÝEIX+ز¹zñ±V“4Ãò¼I[œÁ;°Í>ë;Á g×CþóéF[5P¡*£àŽEÔ6Kýr,q—G:f&|ϸ?+³¤D€|gøSúéìOµm3®™þ2€îË3j8A”q]•¤[η^á,\.g `š.רÖµ3áD ¡ÖO«M«§zK]©‰“ÅzËýïžÜÿú+ t®ÎkóÇïð£VbîeùöŸªJŽÓ®¨äÄ)±„?!!`à0Õ†Ú&²»,äZJ¥ä·)pËÝÚЇ3wÊV–ëƒ@! œ1¼z‘‡TÈl4–¸-Bézßà|˜ñ“G<⸼Q2#ì$¼Ü'{ˆ ¸ôq¹¼t°ßñ]q¥è†@“k7Oxìh=ªà¾eDl¨Ô¤T Y:š=c†Î‚ícú%2™F,H°K­h¼ã>ó¯Ò„VyælæpΛ‚ðTšè-œ?%Rl)¼ªÇ VþD›×Q˜¡_GXSÊ`„…{ì».áßæ™¥-¦[œÕcúwmd•É…¯õ$EÈ­qäž6BJ`ì|+{f®Ó5sq6¥tV&ð§A6EÁB´½œ"Gv<ŽyØä› 7‰*VÓ"KVŸ#“œŽ,ŸiºÒ÷•{CçbÁ(åÃÉ^Ð[ˆ?K’³µÇ0VA”¸ðcÊ…¿Owü—Gôë˜ÎýWúøöv»ýÀON¯Nk`]¹´0À¥Ú÷œ­% 34ÁmG[£…ë¹*ä½#Ÿ>§Êx¦@Å Ÿþ!$½«ãF ¥/1Ÿie—¬L$Ë1€_p± GòGÜKqNŒ ÞC²X Š!.ÎùÑaÖ¾ Í¥-æ.SÂÆfµ¬JÿrÞ˜¼Šœ‚r§ßÞ‚‹>¸*ÞÈF–Žó,É”‚¼‚!n˜&^ų½Ò¨pdÀˆï‹n‰³ÉõHO\-M'byL±V Î.r³9XO«ËÊVàR‚UבˆTé;bJ”€J€èô¥›¢ô‡„÷1­‚*p5-A\¼¹@n"lÓ–4p‡¢Ê+VM'4¤NV zNˆaÚü¢×Ô2– –¾õ±äØŒ’O Îõ+x(ñMáU/ÏIÂÜiJ¡üT )Ò"%ä-pÔ@MñºÊ8f@¡çbˆ S 5:%|ÌÑŒ>¦îlˆ”¶ ¶j/ð£X¹Ž¾ö£|U8FΪùfÓ„Ë„*_w fÒfÒH7:Ùr0££'{„Á[_ǹXU‘T›e"„­² ´‡”eÚ¨œeÁ/A5„èBö! Ä JÊŽvpÝd¢‡Ÿ¹ÊN«…»]â1=æbMü%)A'Ä¢ÚXPŒ dÊÌÎ;ÆÊyëáµ·_ÀMë€UWy57­£… r3+‚›Á>×A/^¿¾>ÈóæÞ¤€À9VO„_¡]¶Ä½xJ¡©2ãŠNj²6˜Kk3¨T}Ÿ4Ú•Ø2µ¨­š½›ä¶“_ó!mi|iŸÐ˜Œ‘nœ;ÍÕH¯†½SÑÎ…m`¿GÑ|¿-G=‹*Iº¨pʉŽSòý‚†Ž^ðGY¸ªB‡‰h*1‹V׸`}S{É:Ÿ%à4!³;ÏMõ]¿~A&G~™Ëìb»çÔ„‘u»*ì]¨*dcé}S’ÖÖö¥Ç}[Öö6Úgi¸¯û R°Z×3ºëœkÇèÌœjCX0‹~ xÌ­Œ²™hÓ]œ°à—«õˆ¾ÆèTS˜Œ AUø¬Ý#*Ú=o*[m C·ZßTOÛÎ5k&ÁQ[þCÞQ7l|ÅÅ­>:ü9•eëıNn¤Güx‹èO+3û©ÑŽÖ:cäé@I}¼^Ë"nÍH»%Î4DF«¡Dd‚P¡—?w%ôl!ÆáôvÙ¯$Ò´MËw§Æ"Ù²­é±y%êzˆ ÊV ¤Ï¸@ú¬8¢FŸ)T †T&óBíÔ¯Q «A…×sâH[ÒÌ¡šyÔQ61´[OÓlY;¤% ;#:BÈì«K¹D"j£)…Û$ óÅ0o!FàMKÿLÎZDã°.HGg£ñ£¡­X  »ÁD¹ºÚ#ªFÒ¦ÝÆÀ©£J\ßÍ+–RÌBà¨áGþ"5x¿#bm*VóƒY.\Z–hç]nÚðvÜ•ÛÐ)Dµ’ó>]±áqËfpMí-u:ëü›¼k¬lÝòmÚÆÑ[}á¹õáJí‰ü:@ÙÚ“n.@p–~#l´Ž ‘©²CÈZouî÷3>Ž R»uœvÚý¨‰‹Wfò¥ƒ´r‰û¯va@Ì%£iÒ­Ý)ˆš]—£>㙎¥ìóqýøamfxÖ°Ó×F°k8áj–«mœÃ*VL+[ψvc9¢ßá õuÝšõ{üU ¯-Wð¬ Ô<Å.q½í£àä|..§¾g·¹3í ÛM€Ü£nܤÂl€« ŽR×Ê«GÒU[ø²sº‰`çä(rw+Ÿz´ÇicRlÞÕ¢M9†©‹Îý,ìÃ/ïóíŸXêÌÒØëÌZ–fÂrteîcÚUPÅ5@~%ãÈõŒŽ §ñO×1¹ +‘:îʭѬV“ª{³ºpûS—6˜n·†À$Öx{Yiûe(n_2ÈX w†·Cg\%L‰¾-ÎÀ×6'ÉYoà»qÓFºѱ®>qøJ#Æy9Œ¬4|™Î™»"Ù€Ðó´¹¢‘<$²a‰L6Z$Ìõ‚—¼òÙõ»s±{£ÑK@›æìpƒ/®¡Æ .Ž´{iíˆ× ÜU3O&šÞ´ê¦ñ£´#tUIÄj]טFwÌ ÎùÏÈTàn½ ž).«õÐñ¬ý¶—È.åۃƈ%Ç(Rµmå)8*[l7b©:J@j¾¾®º–;ÇBØå[u:¼â(6Á:vØúXw5\ÇkS›°/_i<Û‘Äÿ]*3ÊUQ uwo!o!\Â6Ê;Smƒsƒ·x°±zî5.;µŽ¼ó/kœün Ò\ŒUbò]ã)s&¨)VŠvþµ-œûKø)•fÑ,á×ì{`fÀ×@5ÇuC¥<ÿËÝÀ¨P¿ˆa‚˜â¶sFB¿ âÜ9?²·óce§æÓ³Ëˆ€A\»-ޱè×dˆ­nC›—+'7Cµ: S°ë’ú©ß€@´½ 0TÔÙÏæº×‡5$®å>ï]ШÂqí¥ÄˆXS_ÎÝ1( ¡r[=ÿ!ÞnžxKêìË£‹åjV"ì߈JÓD?TD,¯ÞÀí84s$ÃX6âVí =l³uwnæÀFf~áiõBƒ zŽ JÝNðB#ºÆT­€JÛIÌåVŸéüûRÁ‹Ô™žŠZüKsPd5 šÇ/íŽBÕòé“u–× ]”#¦ú»êäý)¨J ˆ“†owìZ¾i O¢ŽS¬/ì8Zm øÇÚ<Öƒ‹°Ø3ŸáÚVÜK Ðß!黵kçLBºü~žÔ ¶°ež”5Í¿ïæIÏ3ôWΈöÿK¦Dµ‹x¿ìÌÛ]7]X¦DSÜÜéÔò¿ñ^ Ñõs èâk›M ðCsI¯ßWw|Á¢Ñï;Ò~ê\~kì® BæIœ.ÀËôµ“¡W6ñ½[<'aLÏ‹÷z_Óù…:]Zæò"GŠ×#G…¼Ÿ¿WpúÒÇ=F4©j÷ˆ†è®2|GžJ™Ë‘q³×a.Ãlšo×Wž±l¶©mó:û]…’Õ3O°KG—žYÔ‘²ú˜ê´©ò|ü·ùhBÝé‡;#*×2á´ÊúÀÃ`[ëÒÃ|ºí\ÀJ~çÿ˜‡1ÖA£å${±Þ¥þa†h_W\!„ßô/w¯kÿ²ó²$ÌÊfÄkI;"*4‹g{ÜjyúCâ‹éV»QNRöü¿Ì›í_úœ#’Ä´2É­hÌöTï>uý-‹w4_&¢Û|$MðF¾y½¿]¢£¤WäÎ>4ü®_oÑQÑcºG †cF»T‚ˆX  iöÄ"Ž‚j\Àn”Hæ!ç'Z¯æ}‰ëcO¶–sd†ÔÞ7IqÀ‹µ{oØ hŠ3ößXÈkš¹”×Q>¶QL§×eB²~»­rüþËØ,;™pþuDŠRk+Š_±ë—›ÄÈÞ;ý$üÃYIøscOvÁå·ì¢Wr”P QÄîa—û2h07PÃ×yéõ^2¹Eª¹¶5(ÌUyïYƒÿ ¿ŽÊæ O¿œÚe}lîVG|xêô¯„T,¾÷Þ¶]tJ˜…¬‡¤\úP|2²±(>˜uùÈ@EU‡ÃQoÝ‘ gqö³ãÏr ¯‰„=£ràIÇÌa#+ïYö\æõÊÜñnó«>(±4xG` (o«_I`aìV¥K¬I¬²“ g½ÊÔ“ØÜg=®ó#ã£éSøÍÄ&Sg+ha1uô´RÊc›’f×ìðÚwz¿f¢k”HT»žåÕy¯}·:ŸsÎiݲ=ê }E w©´6[ƒ—`·Ì+>?ª¯k^±0û[¤UË6RÞjñ:í]Ç«½¾ù4½òlïõ¯dJ¹Wî½þ¥M#¤àƒ=WFƒM¤ú©3³ùÔKqïjvJ!e3ÁÅ‚‚_1–òç ;Íù>/5ÕX-‹6RP‚ÂAãÇ\ U½,E}§hôúÕœ¶ÌÆP Ý~‚ªÌ[RAÇ.öÿ/´eµ·"ø Õ_´î‚ËÊæ¿ö0ºŒ/-^¿´ (uö‚×Ù§tS ¯f³VåÚ°IzdåoM+š|Ã53¾µÚoŸm†¥7ùy%ÛD¹ÞŸði±Rï­®!ªßYÉ‹ƒŠ}ÃÔW25{¼¦’)Lj…°ÛIW~lQÄ=Ð¥Ègÿ‡[èJj…¯¯Q›Éô®>SÊÚOÚéÝ®§²¬ÒŸ¢™/"™K›,‘ ïõÙÊB—†l,ãÛù.Ñfö„è]ÇÏ[YiÆÎ=ÀæÆS”;R0Ì hW¿N8.Ú”©btÄG»Ôç¤áÓ9ÓkG~vE3£÷X6^åJ}Rgö\ÖÁéÙc_mîËÝ£5¤î¥ÃúÉáPã_XÛx£©jVi@…[̶ŸÍc]_ÙIùI)»ÎÖU°ê5šˆ ®È`–ÏIõЫÊRwRÐEœ›;Â8QÎ- 1nùˆãÿíþÉÃÿ ¦çÁendstream endobj 1445 0 obj <> stream xœíÉrÝÆñίàñ1å‡Ì¾$•C\ÙËI%1o©dŠ”T–HY”Ó_ïîY€ž O¤ì(y¥ƒÀá »gz_ÀoÎÙÄÏþKÿ_½9cç/ξ9ãaõ<ýwõæüó˳_þS2yî'o„Qç—7gñ~Î¥™4üÊX9q+Ï/ßœýkwu@µÎîÞ,ÏðÑ0ÍÅîûeõ7óã¿/ÿxŒ4ð“s ±]>Èÿ¹Ø3XJ¸Ý |Ó mìî%.KÎ…à»÷ø¬”ÂDˆÂ{ qo'¯Ðç{.&­ ÿНy¡Y¢TIi•JaY[æß½ X¤¶Ï%ÜļØ}7hç,îç“3…ßs@º»ôf™) ¼X¼¼H6‰W@–´rw‡`ƒß}~-/`½‹È¸\l v¦‹HÔPdWBkÅq¾f¸ƒcîó“qøûðÝBØk¢<(›<&v· öf÷ÙB_½»Ø#zÃu"Ÿ¾N„IˆvܺÄëx1ÂjD8c‰´Â-¿Ð”S”{”θÌA2`)¬IlËdÇàÅ([šy&(^» D-Ëçݲ7‘éå¾´ÏoÔšÓ—á7pB«mÁFŠÿ¶xø à9¹*"÷øl­’p™”ÃtO"SÕC8·Q>¥ë })j·qYYì~YÂÆ-Ì7Sð›ÊeF…iI˜N±¾*¤pÞh“ç¼Ø *Å'f´/5>O{L³†ï.«]¸">IævobAj ÂÔRÜ¥ô•–®Ó2 ȃPZ5Y= efT2ǹ~E‚Ê-U”‡EP¢ '$Q†•¸¶ˆâÀ Þ^}Žäk0¥üßá²ù/®6ݨÔ*P®À€öøóZ&œ£¬¸«š¿·DgàÐÀ}é–'z€ý«¸ÃiGEð[ƒž<Ÿ–o©ŠQ¼@Û‰¯;ÚàâY@è7Œ%7~(¥>Ýo£ÝH^W»Ãiò‹ŒwÜJ2Á¡ñZ¤£AEþù,»ßÀïãÁ…sØÍb)’mJÛú9î€I›Ýø ª~‹A„÷.óˈÊrfwòbRñ€¹FªIT¨œÐÓ­¨`çî]ï‘39%v¿ÆG²46œ”µtÏgøªœ hò³øè@Ô_ΖÒý"Û§ë´XùÝ…ÄRþu\G:/È¡BÒjB#ÄÏ#Ç U¡ëÈÆì±z_»æb}ZL_ #«x/8ˆ‡t g S°/ÊÙÍپ놾ï?4ô}w¡è@QBÒ˜÷ÞíÎfúx]\z]^ÌëÁó>Z"­…¯­´€-œ60@YÛuÁ«ïðE/ú-q.âЀãØ@7ÐfK¨ðu"È>68½:Ú4Ç{caé@ IÅÂñ,èb Â[bá_H1Ûè*.‘$ÍŠ•X8R·jĆ҈¯„ÂÒA4ÂÇ!ì¡pvÃÇ…ÂÒM€ŠË†¯†ÂHº´æç …!0D‘û€PX{…z¡pÎvˆÉ¥n‘‚Þ)‰Ò@*Žv6”ͬ['I ¬\'³¹OüPT"KçBô"âÊæÕdɵ¥FXAâªuÆö«Ú³T&³ áfíZ`ïtf øÆ+%©bäèé3‰x‘]¹W$}E#ÞõùÂ¥Ov¡ Ú…3F‚ ÀLˆÂjÚG­&8Úìi`×±³t¯´³ðlvZ¾„áÕ ð쎆ˆ4âèD(kÑ p@ãÒQ××VÀHH*R] ò±Æ7…)a}]™ÂÓx©’ëW ­=ן îVÊnÊE©=K×î*S ¢Fn1J›¯Ó}{þ‘Så¬É÷Ñ€ÅAÕië77é`ëJ¦#$CÀ¦(P†)=*4ݕʛ—Ê».k!5!V#kp3WÞœHòµA¥‹°ì:¦O)iROën•4L˜x¤¤ÅL¡ÈÝKó7ô¬4FIOÆÃ«„¤ë¶—4„„tSç4&q6„_œ]þbTHµd·ÿ5…ôY„i!ýqb>‰qóˆRºä¨.×hjnafÁ5ìî*ŽŠùR£ÅÑ1ÿì‚yd¡º-€SÞ4ŠX(ìÏL+†Xòz#«‚µ ‰°]çW8 ‰·(¿¢=óš”.ç°}C1Ÿ>'äÚ,6Ì~²½É8p¢†¦,æå¾’‰ ŒíS*™“òÎeˆCó&¼†Hô@ócð…åÃ/®YE?9^Çž‘¨± éó;|ÕN¤âP,Ðæf2øká1¶4T¤ÂBš}¬² v§›ºzXvÝûÈñD Ûu½JP ±“ 6|¢(û `{eàb]Õýܘ(¢óz{¢ù¡‹•G,Zê'«Ôw<òí}7ÛêŒïçb%ÅBò‡:Á„ÍRÓaíqp1'l™Ý™0UHÚÄäÀÛ6!žRø*W¦•$D±hK|‘VSGÕŒD­% |„-u÷“á¼ßºqà^Òe[ïò•6>ŠœkΆÚü¬ö·¡s ÖËÚGõ|gYÇ^µDc$w04S2ÞŽK`1^ÉÏÀ¥.½Í·åÌl×”—–uĆÆx¿Ã†œ¯×l¨ª‘úDåX쩱hxW¹&r€: 8¾Ù8þÜ# H¡Lc¿4€0nšãïÝTÔVëhâz7$JºâÊpR}¸¼Éu‡ºXÜ`ãR-ÄU̱³4WçðRÑL>®n€wÌlU6Ô £”VüõghCî¨JÞ PZ—ü*óʧé E¡Þ]#2)n*]øÐÛ2ÖStÈ’MÛ¹á:´uôžr?XvvÏ3{©|ôñç Ê¡ˆç¼Þvû°÷K…f‘ö#+4a@Œ1†rÉC…W'Óü²¯®±é-'ëV{Ô±úæ×ý»Ö½‹°^9^,>ZYhgèt ^[÷‘|ÁåʤXf縞w´²¢:þ<¢ñϘ3v"°«W·ëëÌ´×°è“Ô)RH4Tï)Ù‡ÆqˆÄ [%I·ë&¹J’þ¶T¹GE‘jL5'8x‘^‚ã1C7L¡ÐôŠ@¹*x¥&‘ËE©~Ê GðPB_‰” '?‘©º+9BóbR+GÌ”JÙé˜Eéß:_ ˜Àkbl“&¸-V2²TQpWÄÒ4‰v{>ŠÅÁ«fKMmªòJCÚŽñ¥˜5º¦"v¤§Õh®ÊÈà69Q!¹Qg,Y˜ÎXòªº[\ÐëåñzñQ‡“Dõ÷™Ò/HaÄqù6cu¾â¯„WXî]è0¼X&ñ„W£ZìÀèR­x‘°1TŠ^‚Hí6U,"*iÄÐIYˆ gT¶Ö0ÂÝærBi¦¿pÑ»ÒéFñ…„jte ˜–ÜãYa˜Ò²(vAØõ±ÓÈ~?<ÕÛ” J¤¥¾­Ë+ÇÖbÂåúÞe¸7#:‰žñW‘7)V`‰‰5^Ê ]Ëv´Ifcݪ~_ý9ÁÇÐ\Ò觘+μM1£™‹o/Ö£°j¤¨Ñê^TûðŒ0E8ù¬1úM›­;ûZòšÔןœc×y‚¶DδÎYê·ÄC ZBh›Ô…8‹r¿2}ˆ/Ü2¸Fó¨OÜ]) ×±î¯`‹7½ à ü¢wã¤ᯔŸ÷[ýžÑ6!(Ü$A ¶ú+€Â]ã°`µÊE6ù+À½¹¨„ª•lD,ºŽÊ‘âØØ‰ýCò'*Ã3WnnìðE|?WŽ2qã¶àáï¶îʿȑ ÁŠÿ bzâÊ­‚°E×ÅÞ‘w»ú)½;¶øGñîàGá0ãÛ)IÅÝ ®m³OOøíìæfŸž–Lr9£!8Þœh¦×ÛŽ‘háMÜ]­Äœ?à½a˜z*2°Ÿo² Mg$aÙ’Ûn²rEâ 9”‹ÊD„âCÛߌՓޗƒã×t¶Kâd¬hJeH‡,KlÍÇþÒþ2™ýžð&c+|Ì™KN5ñu ò' ¯á¬Rù§V@´Ö0ÈN5r-×s!GñÙ"GSS%$WD¤ª·)Ó òR–?°œòYŒïñÃzô ÀrœK]‘›¥7¾þMžõ|ç–Uâ(w²Y·bà``µàćÝj·Ö{wqL­÷wÁij] ÄŒX9hôŒ†ñ¯–a¥bŒßWW8©…§]×VÙeùi--ÇâL§ô`$zz-'éútg;œB=å”2ƒ(·qÊñƒ´?ú5À}iÓ‡e­×o4° 1ñú}¡âªèOœÌ@…B,é¬]ÿ/vdé¨Ãc²;Y‘H[iEÆíóÞ,Õë‹FUAÞ q“5rè«ûž7Î (zÖ™•&ÄáK¿ Ÿu®«ãzÓáyÄd‡Í ú”­0¢Œ›º3Ø^äU ”ÜÏžœ˜­æx™<[øÂêó ñzœ7¬Aî1²úëõ?y5–" ¿tus$IÏH¿&~ˆRd\7µž³B”(-‹(oí«: TdÃW ©rÈ/G§[3[EŠ™U“Sü£T8—5Ü|„œ$Ö2¯Y%©oùÅ@úÓ6ý¶÷†qš^k7»{i+†=®–>± ¦åwÿþòìðïG,•ÐØendstream endobj 1451 0 obj <> stream xœÝ]Y$G~!~Ã<¡´]ÎûÀB !F¼Ø~XïÌŽwgmÏîÂJüx"ò¨Ž¼ª«ºgVùÁ횬ÈÈÌ8¾8²üý%›ø%ÃÒ¿_¼¾`—wß_ððô2ýëÅëËß\_|ò7É䥟¼F]^¿¼ˆïðK.ͤáOÆÊ‰[yyýúâóÝÃÕ^8»{{øùþ4Ls±{ÞðËùç—ׄ)4tJ©'§µ‡i¯oÂ${> á¼{6)%¤00‹f¼‚“ÀSɼ/GDÚÂ{J{Ïå䥸Üs1iexœâ/ø–cFH ta:f”µ»|¬­åÌînaí•Ë#´÷»oÂÔR[aw÷q´vNìî®öRŠÉ3…ì³ÉZ%­KÜi晤Tp—”„•¤¿A•'tBk ‡¤U~÷)+`¶¤öËÉqž¨…ÁßE–¤’<ÿ콊l;}ƒŠF+  ‹s¤'ó}&—¥N¼)ÎGXÎ)l¢;_y–ùùû+*T©yápXŒ„wŸÆ`†dGÒû,ãEÁÊûΘ+Ê\ˆ»e'ì'á›GŸê=a3o€Š®ŽZÞ•f6Ahevà©u¾€D¨)³Ô¢üÅØSÎÌ=lt zÞo=ÂI¼€ó²5FèÆVN›ìl¢µðƒYoÁv  óí›3Å€‚(…È÷kÜÕÈŒP¦HŸ ùŠr‹|ûÉ‚#€ð*t«¿F头þ8CÁÑ>T.´‹Ós!+áËBH†´½òÅ”¥a^6@óù¬ ΂¦¶>± Ã"8¤ÚýþÊñÉ»ƒõDÒļŽ,K'{ÒB7g‰ž!1_z†#{ŸUC(?1^»rx Û;ø¯€%Jا‡˜PË™œ zåjp´c9Y§/y ƒ`ÊKµA`PZ¨–]7I^:T*Z‰ ½.ƒ«ÊV"=†|ÇíîÙ› pÑuÑ ¿'Œž¼,â1ÁDñ˜;q;Üàç)°p˜‚„·¸Õ6€šÄ² ªÐIß`4O=ØBaÕ„–¢‚ÈdŒ ”¼Ö˜†ÛÉ™ÂbR= ¿“laŽƒF ” 3—VÚ wîpÙT…(‘jëÃè ÂÆ=‚Žìæq¸ ¦»Dka ¶UÜ@`5"æxn‹ã‹F®µè³Ô! ˇÛÓ†[aÄM$ž¥ —ƒ1ÝzŠo¨^}©0LÙPI¿»©4oÅÀ”(O ”‰ºœ5Àcࡶž¬!£® ¼¾ Ú'½qÀ¸MñwJí>Iƒ‘x øò;é@d³ŒŒ“ŠÙ®ø ¡Â›v '–2/ °‡ÐÛýøÐ‰;>ŽÔ® †ŒbäûÙ¼ÓW+µa>ì°01);Nå”Q/Îã¥Åže$ÖÍ2Ü%fMÚ#'\uÝf)Ï £šÑGþ#÷T¦í‡] îÁ)_—7¼Çá°ls–pn"Eå›ìx,ô¢èën= k“â,è£$jŒXð0ȵ )(Ò¡Ré…ä&rgy‘®!¢LS>C£ZK˜åN.§<§¥tbxrJ{…®ÿ 4iªXk«&Ë-’Km¦ù6µ$I@yÂúEHCŒ:ÁV㛺Iëa –ëNiÆ­ Ã7NÖs}Üï=D^”k ñÖtn­5-ñ°úÖ^4 – ±¤M¡zë7Q8d3›õ"]§z);®Å‰¼#2M†tj:ax?íE=1TF±TÔi΋¬2îL‘¾¡…àéÙdŒ9fê?\9,˜P6P¸;]…2±Z¼V¤pneÅ“d:ÑzÿS“Oyqº€¥t…)e·V®ëØzÊ2V7…õ!" œ‡.­¿…·?™ _àÔÀ f9ÿ)¡ð‚`îQ‡Â@XtmZ¼'¦> wä¢ RO)J=Ap°93’²W/:@Åža9Ÿ†fi;½ºŸR±”¢* º˜oYfxtýÙÅõÏôm,³ ý!솾SŠ´‹¡¡% ã=õyNæ Ãnç-]O ]«¶2bb~œV¡ºÓß~0LI$÷̆±F†‚ýãwÇÊMm0¾*‹ „çî~è*¨@ÞÈVÌ &¾W×®ð=ëËM›Ù¶—q‘ v+2Ñ?Ø6PÊ Y×à!Vÿ, J.¢LAr‰èão*ètšæÇTRžZ‚T‘ë2^85/Iís™FØ“$víŒ1 ÷bŽ—Ç"|—‰¶¯1ÊõML±2‹æ¶—Œ€Õ8t¤>Hb³lxê•~Ww”N—4ÇüQi§S Šf†CÚþ üí~\ìÛ¡ö*­$ꀙŒ¦MtEñ@ˆ¨ç%IÕ[R•æl êDR>&eé{ýöŒ$üÝ2-Ô©“Ðf™&±IC3Æ¥œÏ++3Ú0@!%Úö,Æ&Ê©,¸ð÷)ðàcáï”bê~¢Ò¢VˆÊü DÍšf—Q­c‹x§c¦ÃZ»Q‚€Sã$ìxxι¼ñ !Å«ÿ,‡.0ØnÏ ]v¢æªcìÄ÷µðR^.TŒ2™M«tÚR© v “è¦'þ}Ó„iBË&ÁÁ Mr ¶ZSåõxa£œâu8ÿ2Ò¶b¹Ž‹Ók9D£ºÐ(sÜ¢½Ã~ƒvJ°À€Ð«x×*—¶â÷©‘Ç»Yˆîf¡µçÆÂÞX\ç;— ÄL¥áÇ͇GŸ’mêê +)µd±[–MÎóTiÖÜæJsðýáÏ~!²-%=ë5Ø'ãŒX©c´¿Œ:ØA—Ú’x¹/ÎÈÙbY4píJhßq„ ØYã›ò¦¸^–mun3Wj {W¶É‘¼¾§Qv‚ÙJ£.ÏëWRy6êÒf£îì|GI Q:?<ï·eú ,nÙ>×ÜŸ!ȾË,÷ûuÌ:Óc6Œ›˜í£³ ‚àÎtWÆÑÔ/N¹S´@j»NЫÅô¨Z;v½;1BßÜ©ß䈪ÓÙçÖÛú’Òéè Âd”y:¬1³NP§”éoΙ$(BÌÆ \²mÖ]åUÝaû¨aœžçv°sB¡ƒ.C ÜgÕ×[,)q¶‘9¦·sfs%§Îöx˜Ô?j„(ÀM¥:8Ñb„?ëtnxpÝÃ=Ò߈káìÉAHLwüH…6ñX£†êB…QºW¬Y:?qØ-ÚJNf-R*a°Ö‹=‘ÞYRp–‹2#ê+±ÈÓ r­5ó„d˲^3Н—Çœ?ê% ϾCGâïãäSëøÍº#pÅßϲoä>ŽúdÇyHL ‰…ƒJ—®g0žŽ-Ü¢Ù aÀËrÒ¦€wCžÅšürKab@õOZhRgØÞÆÑ "äóÚ àl&¦VßzÄI¹.Ó“ÛoB…IZyû{&N)VV):SÊ}âÖ íMTÌHyÊ vÎÈ:‡[×B.2ëÚÉ¢¼Â‡%zÐzÚ24ºª2ï_jV‹¼•‚OOyìT’ŠD=í÷Ã6n-zý~ó^Ž #eV.uÓë›žOxAqpµ‰úŒ6#Šm"m³7?‰¥|UwÛnÕ)¤ÂŹJ–Ìý’fâq¤µ‡pÑÆ5ÛÒZplè“ ÷ûðÃíÅž‹©nFEFJ#?pïÉ›ƒ&5ÚÞöùSÂVÓëMmù‘ë2€,ÓÙá.sá€s”¯'M+>ŸÐôfÄ;»ßÍé}²Éå{½£·9ûÑá»’t5ü(@;™öWW‹7K÷Ø× *U™¯~ ‰)¹óú,œš¤ëƒ[RÑËá öpŒÎ,¥¢OЮ㠘Ñq3`çvñD‹ œ7©s„é‘­Y©úÛÈ#_þníeZÌÐÒ¥ë(*·šø/Ë«Vó¦Ê±Ð®ŠLXVv’çÇÕ½ÍÈ’vf¶s¡‡qè*5·Ïl—‰“M–k,ÿ]<{›oÿ?zºk!¡ +° ×”7vÌ6e¿eéeÜÕO6™ÈW€ïIýÙÞã ¼ʦ›ñùÈ.:w°‹¿ú8eÁ¦XY§êÊbåçGöRL–æŠñ¿QÛ„Ö¦|¹mŸqPÆcÍo]6óžx¥Q9deJCš©Ê?¾³² =ýÊuƒø­½‰Ó„[î†Í ½QuŠ¿xÂÆ·¡oó›òL|¨4Ù!ì0‹Q|Ïû½âÕ Q^ £óQ>†¦qöQ~Ã7ÙÃ¥Ãgåý§—‘¼MÝžËRͧð`ë/ˆ ËEûÌw ØN0uk¥Çòó¼p2OW†“ w¹—Z¨A;úã*¹ÕBm/Ô9¬ºò¬+GÚO&âå—ÇWž,É_1D#(A³±ÝåÓõA=À½Mßð@xEKШ7¢¸i<3qEšSŽæ|¼šÄüî”´Ä| ðq~­‡_?¬îHž¡§ “bE¿(¿éozy¬s馶¦±8!$Äô ­Øß`Í$îoߦ!†|kÐÿÐ÷ckîN®Ié;‡ž2¾óGë ôh|`\Y¤m:S—séƒ&†Fñ³ÃŠÐZi{;¡*5VW’f"Ïb0æ]W¥Ò‰ëU.·›#m}'?,@Œ¾K™TPo«r"MíeÀ³`V®Êˆ†ù°ÐKiƒÑ«hý›–)Ãy.5aœ VR–Jô¨ÙksðÔÓœWñSRF¨\|Šþ_Îo‹‚{ÛQgûFy’‹ˆ0hq­O¹Ôð)(µpSh®qŒ¾‘22=©š ``Ö€›øÝ.&ýºÏZ„&`®R&|&?C„ߊž{€¹Š ³á~þè2|§,@|r­$Cçz}Üå¨5a•«®Ð:L;^¸÷†ªq,ÙÔ 8À¡Ô¼ Éfä7û ýŒÇ¶fàmœˆ#øzÏáÏšÕÝŸák\V¢”»CP»¢LZéñj_Ýæ$<lÅŸLY§Ãg(–Äå×ÄOˆ"q)ÜÔ}€øëv Ø ¼(‡ñtŽr’|Û¢ã„× í÷Ó¼ †$™«o8åeVŽe郫Ã~G¼ä;’ÛŽ Ür&@p³Ø†Ç+zÅ!B¶Òô"'ëŸÝÄÓ±h ØWzœ¨­Úvñbëeé 4¶-VÕÕùLÙ*Æ©Ã(?ÛÅcvp/øä…Äëò;ËÄ)Vh›=üÙÿ¯=ÄîLÕa¢øQ/ó”¶Ñr`‚¿Ÿr™ÀÏ^™aC*¢ª ‡§Œ-§ØðÅ ‹<‰m M)ºý$̯ì1ÍœobDl†ÿ§‚Wóÿ@éùÿNð!·Õ”‘|ÞE?]GèjíÅMSž‘’k·µÃ†ÚÍÆbšÍ¥+41ÊLåËë1󿦿|À`õmž`Œ‡5×êÈk™KñÊ5½Ü£æÊÅIíaR7ÿÄá¿»¾ø+üó_£–zãendstream endobj 1457 0 obj <> stream xœÍ]I·¾ þ“SfM‡û$b øØs3|iFK,iddGùõ©âÖE6É×oAÐAÏ-6Y]¬å«…ô/'lá' ÿ¤¿Ÿ¿}ÂN^>ùå OOÒ_Ïßž|{ñäßK&Oüâ0êäâÅ“ø?áÒ,þÉX¹p+O.Þ>ùñôwg0©öÂÙŸ.þ ïiè»zñÖp ï_\Áèçgš/ÆZuzsvÎɼ÷æôÌ¿„²îôj}'ÞWÄÀŒÊÚ“s.­ ó~‡o}Œ˜™-JJ«üéËðSy«O_‡y¥¶Âð[faôå:úÍÙ¹Ô–ò@ŒÐV;'è|ãî«UÞŸ ·hÇüé5™ùÃÙ9_˜ÑÞ§EŒÀ à—:! ŧËÙ¹æfáÆž^ÀÁ¤ôöô¡ç:¡ètå[ü L–ÀÏOäÍ7„áSì¿/âC®m¦”y&»«;U±‘L’x'•äq7Ó›¯ëÕ èóz©=0€W#n#‰F¸ŠD‰Odýë8ä)MÍAœ2…NJ öå'ØaÁÞiÕØÜMËÁ¤ˆÎn‚‰êìfàî& £]»›ðT€®îÜM+`ÿ»‰thmÔ]¦¥í.¿˜¬®q»¤Ãá VÀ׺jXO‹¹«4+‚ìÒÜ¢kÃÌ;žM‘å¼pNéÍ" šbÎOâѸ]®®öYåj×!‡ì° çNû#T_@EWæ@[éd²8],pµþ8=ÿ®Zðy¬OËÞ«ï³4ª‰šL½8#FÎç:ŽÐFµ»OÁùŸþ¾uë ÔWb±²Øë?5ؾ!µÁödîè—`¨’—äh+¸Ï³üù¾k2Åk5ªÐ(2€è¢Jr€eþrg¢G)Ç€34¶ÌÝÁùÁ·±ãk÷:B¤ÃÜÁtîUõ"ÂÚÑ7k\ÈY¥s  oeúè:&ƒ¾ºÅ*ݸªg ŠqàÍ PR ¯PÐ$è“S Ú;„ _Fl¹¦Óm½p1å8ÚÉ™o}yX>ámÅÍ.Ã߯Á+m€VmìÿîÉÅ~„Ï m`ü¬¶aš 2` €Èff0è”õCÀõkpžÒèvg%„dð› —aø7zYÈ PÑHóYµÏ=9Á=@suŽâ]z| çàþj8A?˜Œ¾.~´qÙ ÅÞtñK­iÌèC–ìD_ÁP·ý21ÂU:Ì#{¶0Yl3ɼ_Ññéÿ¶dC@l)!ë‹û¦iëвæ&ê ñzºÞZo) “}v ›7ÝéÑ…§°Ã‡1Çîº.0ÅFÿ#°U3pç–*9¶½Dúî!Ûr¾š¹8®EäîûÕ²|XÞ¬FæùÃåoùƒÁÐTÚ[t ¾<ûíÚ¯U^ГÍ~áS½ªf˜¬³°ûÀ<l uT—¶*‹¬¾ÅÅ"xã“ +í(kPgKE*`Žð3qC¶™š~j( q!Œ—Á{¥Ùä!»~¿ìB 4Þ«ñ*Îí˜kÑ~#«ÃfH0, âšÛ8”d6ˆôÏ1TÐÉ@ T²›:*qu“\¨#0dmÖ ŸbÄ?Úª&´´;fw©Ëº8põylŠ ªèU¾óBšóÜÁ  P¢±Ø°÷ÍAt€t;ÚÈü ̓LE‡r+W‰QؾE—ØçÑ?FAOôÔVu€€©pa’] 0¢~Oîò]-Ť|Sæ~Cp@ƒªj4.ÏL•'¯\q™ÁĄʌP›Ô-µQP‚¯uî “fªEuE²&#è1¼É²ò/nŒg0 J2(†åÊDÛe8¼tú<–‚3¡¢7õœ«T¿ð6ˆòÇõq!5D·*éóý„Ñ[IÍp? $Oß DµöÀ@kÄ0j¤âÜ_ˆ<ý|æ0µ¦y†*8E”vP+fZißâ#a¾>R.ç¡ (º\¾[ñÑÏŒ”Yìª1kn—&Ö‚°ÿ;É[4OµŸ¢×° w†'Ñ ¿87ù-*,'X/}—ð ¼h±žµ‡!ýtÑÀ$½O;`hT6 ÒȽìR‡á÷MôUI-z_{ãª~™Gμˆr1›u4fu°ýn“\©x Së&u! Ó™GID.øsàcç†÷QÔ½„n<[“oS°ƒÚš”!ï¥ÇÀÔ=–¯Ž1Åu„ÕµtG„ï.E±Ô¯ &¾UK#•ïPmË¿}³¸ ¨¢ùò8ÕZ¿0E÷áTT~.£V†à¸Û.ß%xF§£¥é[Ém×›G‡\'*ôÈÈÒÑŸ#I^JAÃhí:”b•0w D‚(jY–Å&…X„Ô)¬Nþ‰z’(¬iÞ¶*UÄoëhD)`Ò!Hn\Ÿbˆ7^žj1M Laªq‹ÕÌ}0ÕT2 L%zmÄ üìlü&€F+Å „àuŒM- Õ¨¾3 Ë'jCvf]lÉ46IÚáFÏÓ²ðáT\Ÿ“|§6J4¶->†7i…2„ÎB¡ú`|*äØÅó6ïºèXW_%åÞ²ø$áôÃç)&oèͤÜãµ»ÍB©‘Ë ­)¾øœg®&¦~p`)¨¼^EŽ(б:÷‰O±ÑîÓVª6.3M‚Ö~9ì L½ÝÑ@U– ãÅåÇÙ`–­]+fyŒhk °vÁÄ×k¬Ð–r¤/[¤ ®1d™Áš´hvÓ)Õ¨µðCÿç Õ¾Oµ<7Uñn•¥u¸!ÄÆNJÙÁ¦9ÄhWÓæùJ_sÅ@ô×Qqøµ[Öü°FÔ‰¨³µš”5Q6Ö9¾æ˾›òfª%ôì†lY§I0Œ•pÆýfE¹Ëgˆ –³,®E.÷(!W™$¨Z,<¾ƒ€ð6èÇlóL,¬F7‡-vòp=< N‡™T n˜ú}ã7_oÙ&]‹íz ß9?ß¡C¾ËpÊÀ'¬tÈ“¹åPZ˜¸l‰†KTiºäHH¹—⎬YÂ,›>ÍkäÒï‹€ ‡b›ìÊ¿ÆþìB4¬Ôé«2ß²éÛÛLÊ9àVÃ¤Ï 9Ss*ÔßXèÿðáºÊ:PT‡8Ã3Zsç5 „/3à#,Øæ¿†¸Â)_Z¦¼}¸0VzÎCí cÃW‚-ã¡øZ¬ÿ¾¨*…oyhðûºbol 1 S¾üÊ.ûdt™‡t„Doãn1u””Œš¥ ¬jÛ³–ÉÛô¬uËÃ#£Û&åu¢! ”ÕŒ5‚…—Ç‹„¼rÛµ³1ã;ûˆŽ¶c÷¶Èb™l`®ÈÚT$^¥7ÙHFYó$Ÿ£ø\áŃ¡š0݃9²îÀ!k'Ãü>[òE¹D€4pÓ-I”3Vð"X£0ò)Š„ÕòÞæ¬«xtÀÀgѦ2ÌN[ƒýÜ›4¥Y¾ΨÐÜiF ï>Åã}",:nÛÅõ±9çÈB÷mü O#DNÙ£6,®í—4øawvÕ(ŽËvDq÷3¹^`§þÁ¨Óoˆ´Òô×u~ÑÏ”‚U…DF-Ü{"öÚ.†^«Gâ°AôJs…éA·æ}Ž,aìîµQ¸âÛ`Ÿ:?ïãàë¸íø¢5ó˜­0Žå\-Ø„s~1bvÄ–zª½@ÑbôÔà÷"ÿÍÀÁ´õ4޵7ÑÃ(Þ¢ÐRa=ØMAyÝTƒ‘­›êpع#„<S÷¼íÄ Pˆ¤?3fidkÂñÄ”uYjÌ>€“ýÌäô¼µYL\Þú¾àF¤ï×m±EFünÀ·w@Ʊ|‹QPé`¢¥§1ëËÖmn³¾£¾!oF»\ãòDÒ<á« 6ýHû8ièÚü‰<—0}¸S|ÞVÙ¨phFáU2@Ôƒ’;0ÔÔI^%úš'(J,®îq!꣚ü`˜EͰ¾ÕõÝTŸLÏø„Ñj“Öēϙ¶‡‰¬ûXó­èÇ}HI7î247xû„ésZL& û¦kîi-m¤]”¤|(ËÖ·)¦gµRdé¬5àNM¼ºm9Þžá‹ÂDz“4ºé|n2„jÑ1Á¢¨EÙ“˜xNÖ¶±D8j«êƒX‘ËÚ0‘T«È3äR$i@zìtv(070¿$…=jˆ…„- Ãuø¨.Ö9ÐÉ« ó¡l5÷@±àù°ãš¥ŽÍµñçÕZlÏ0·gÛ%¦±iÞЏrBK t­MåátJ¸|žÄ‚X”ÒOóEÁ¹ÈêÜȨ³ytLvr_ÛyZ»Ž2ÛpåDhàD;[pèÒi°{‡î•0ù ðÒF;¸ ÷­y F´ ¢Qœ_ú—)¡•Ä|³^ƒ­PôEs…Y¨äº˜YÃo:v$q¦öú|/%™ª5Þ禜Í×åÕœÝßø¤©€I"²À›RÜ ‹èd”ä¶'AòK÷kú"ˆ­ÍÀc–¢å<äÝzèzX¨jN~_—¥é`JFs-Q]Û¸¢ãŒ\>™Á{×’•${S_ _;Ï9lg~0àL8jv/¥õxò×ìéáûP΂@LÞ”‹ÆzHÆ´^>ðÉM¤2$.'Fp‘‚°N³Í’Îî3߉ «–µ–”÷ï‘fЉ©6nÒ>x5,+¾i’1tûbîÆ\wŸ~~Œ{ÒflwòÜ/gÑ­gEï«ç÷‚äÛuöXñÀüýIñ½îµ!þ#oRMjÏþ­šc’[ '¨°sÓÃ0´Ìε~Ú|þQ äp£òñWkçã$È¿é/þ*Wwš»Wn­M$µ˜¬.óÜR<ê鞃œ‘™ªÂÑþ2¥ÀÅ[ϳÔ]1/Ž+¬_ɬ™‹é\ë> stream xœÝ\Y$G~øó؃ƒÙ-h¥Æ#ų€Ã@eN̵±’Ф-^ÂaÖ–´ü09£N‘¬‚¿H–¶«d…y³i[ôëUs²×ÂG’ó¼¢$çÖf9ƒº Ô c<2ú8¿•“v ”Kl° œ‹Ýý ¿ô±‘ÆdÂZZ‡$ÑXÌCcE¯çr÷ë‹ §èƒ}‰caïp0_2å²ëh‰Ó`™Üî+69ˆ)šÝÇdG4ú ¾f®·Ïq³Öšd{Q:d(t|ÄÄ=­ÎY”RZ¨ñ³_Rf º|æbÛ³exG‹ºçb›0zëðPþmò“NË)‹ˆ×öœd;†É7Ëv_ün˜É×t™õ¿c"|½~&aÍS°O3ýG0)Ú@¬UGb¢ùnb™M¡ÕšèíˆÓ#žÝâ4aÒ²4Ù •H8ÑÒÖÐ×°À_ᜠò.ró#aA:M!½r]· zAY[ˆ/øA§ÕäA¯ËïžVbÜI&©ƒ¸`ØO—6x历ˆA.†G›b×cn¹'wh¤!&û$ôcÁJ~ã6 ¯›l cÒϸ¾˄ՆHw=î]#È4]iu?Ñ(`¸›w´Jæoà@¥¥/Œw:ë\Ç›¡bTÀ61i¯:#’=æ¬à²É×Ä9°'ж0’™ÒVãh`R±1.@LùÊŸ3ÉGT@{`v@³·´VÅ™]˜Qÿ²2ÁJŽeâšNÌÁ9=Rl³_ytKŒÇÕ…["rTÊ$S =€3¹ºäÃÃo;ËXŒY@âzf¶³=f£Øfv¢·àn\}©™|+±³˜fò –ÎcV ®\„î~“Æje+Eihm&¦r¥äâpj¶Ü&Bþô,™â€ƒ Zkp‹ÎÇ ¤\˜‚—[Þ‡x¤6‰×.ƒÑÒh(ÔwäŸ7ºLŸè&3ÐÞý#~ŒJ§F0þ]V ð®RÏJÑAœiÆO«êo5ÜfôEÌšM` HYœÊÜ;_½Žð=7 ´ ŒŸV1ÈúB+ãÔ£G…Õfò"œ–©9Æ> ¤eOSJ©*ŠßÂùo‰$q±«š@pÂì ²«Ò†@ôÐui;ùc&Øpa°¢ÄpÛÉb°DKßïà<ó (ØPAŒ¤1Κ0+"B›¤å¥dÊ´ 2¥«DååLäRÁŽUˆDëë%I™vš?~‹° )?¯²˜N»"‹©1‹ç¥}ÀÑàt’ð©œasÖèn&¸ƒ¡Rœ¿ Æ*ÂMÂnLiDX0¡g§Šq« YÆ·Èc]dˆžÍR6ÈArSÏ­ç š#øaZ£ÊX.Ø¥¯wlMqåǨótÏP:„z¦"Ÿþñ¶ÐÞ|4­±ÐÌÐw|v/3wŒƒ˜ãàÞ‚P¥tØ ÌáÙÍ,*åY[£…C’ÿ8ÖD"áÙ²ùç~s#c„– ´©´,,}Ì”™‡˜ÛlC„E—›ÁѼÊM˜4û¤®á“–¹†äð¢=Î:;‰ÏÔôŽZ_ëß¡¸ãG¾®Nf%w3­Ûø™HľF†9†2g _÷ËocÄê™Ff í 8³§¥²…ÄrIþ1ûþn0æš-ª,-Ãs¨Lk*«#Ã]!†#ä7p+aý–9Ån¾Ng«°LÊc¶çDªíàãê¿Y?^¯.”ùÍW÷u¡Üo&5“RZˆÐJ˜ÇHj=IaØa·y0Þâ ‰%éªC› F};& Є)8– Ù~÷´1å‚tÓèT­î$×P¦„×áµ’#'KwÀV÷f-¤´ýrI?øùs®o4'†h Æ„2˜bÐÛÝU·$Îè·òHØÚ¢q¥ß~›“4ó÷*ÐóQ ‰Œƒ˜ËS LÕQ¸£ê‚ÿÛEЀ_EW^¶› 4b¬¨sÁ[G+‡‰á÷+ú›Ë'uDóHõî¡ÃY&jËÜGé>=´¢És:€e¡q«8­¨)ñPòúñJÓ O¾vÝf›q›_^(v|ȺÁúF–µ;ÑÙYŒ˜,4A*ÏfÙIï9J°Œ)vÓú›—]*v1+Âð²ׇA¬Ã»f6:)°Ì!¤û?)›¯Äëjyöªu£Å@³ ûÃÙÕO½JNÅ<ìå Å^&?¦Ú‘º†e~•ÅaäÔyÁ±)K¡‹dý-5#xý˜þ«Ê§Àõ+BNóé§-ÆÃ$ñ”“,IÄ.++8M_›qk%ëàfûæ´ (IÓôÚÎ=õ!ô3)²¤É1€rGö2 ÓîôÚ.}é[ðe6ydÈT)Y¼9  ldA þjÐ@ÖA€µwÅqqeÇÚ®ãJL›m”—º.ãh”㧪¼kÐ^9³ûåjƒêªTÖ¾¹si†,´êßDà\x_î±°òtt‡aaÈÈ€³ñà¥Ê ,°‰*ÐtÖ—ØÏNÁ,©ÂŸÕø²†Š“wØ·”‡‹UVåúãO «Ý€Ý%¾F1c}s-dñ’HP@XZªÎêøI ä"W6Œõõ%ž®‰Qî2‰%˜¼guâvõ]¯×V7¶^Y=èÑðÞ›XpûŽÂxM¾’Ú‡RNð&XÙ÷h~ŠÖ©ºãe{6}‘ˆªöEð#„k\Zþ=;°‚À@Þƒºù&™ß‚‹ö2qgÄu’wBòÃá ¼+ë‡ÅÏ:h÷x‰¢¶ˆ}Ô¨OÛqaŒîªÊ½Çk/ªØ@umÀS+iÉVí5šxp>@æÜÍõË|šP÷õâÏ울Ÿ—Jy³Âïv‹vºçÜnY2×GhbGÁvÕ‚…£µ¯}ü(ƒÊL¡¿ÝI:ª ÓûÜ :£Š><¼‡ |“¾…eS''ÅœíÜÓïac' Ó v Û¨Ÿ~+Äp'ºð:êÃ͹Çí–߈úÀÈQµ àŒ2jYäQŒÚ^õ‚ñ„GšgQBÒÜÊ·P7*½éE,ŠM2ÇÁeZ˜‹èða. xÃ_ßM,Ò•šùôút3h ª%hU.~Ì>wîåqg47j@%!šY•;¹ú0¥Ô”?&’{ïWÞ0Bà[·G_œ K¬Á2=¨[9Ÿ€pH׺ “DÓ´×f w\W¥RU+sBîÕ¢Eó#Lš/: ”}§™åþþdi%Âã›ìÁ‚ÁÅã| ÖêÃh î7 h»ý·//Né¿eOsq!ã%hþ9 8¡ò}6zf_ é?{7¸RÈŸµæn'é…­> stream xœå=ÉŽÉq÷†àoxÐéµ0]Î} ƒlÈ‚ ë ‹ðEã‡M6m‘l›3êë‘KUäVK¿î±aóX•{D}b?1ü/ýÿÕû+vº»úþЇ§§ô¿WïOÿòâêŸÿK2yò“7¨Ӌ7Wñ~âÒLþd¬œ¸•§ï¯þ|þx “j/œ=¿\~>àOÃ4ñg|ú›ùçÿ¼øXÇHC×~rŽáj/naæ8š1eåù;üé¸Tâüéú†MÎ*§yœDxO'¹±“×FèÓ “V†ÇÉþ„¯i«ç×ø[f™9¾¾‘RN ûkæ™<¿-‡K©&ã=€$줔0çÈ€÷פæ üÒN»bOqÅÝù6¢¤´ÊŸßħ¶øÄŒ†Ò¼RI«-k]|ŒÐÝdðJFù²¹œHçé~;V^jJ®øÛZ%—ƒ¨¯ÅmdyÀÈgViëÎóÝ#–•^ûe¡¿iнôx×…„»þŸW/~õçF"ÅŸ¯á´%‘$²ŸOð"„óßJ |Ÿ®5›à¤}y_Žè *ü±„­w*ÄLz 㣇‡AŽ”4e·Tž2@ù éu´|9!Žæ–×$‚j[\ +Ýñm-*–¼ÇÇv’°rmé‹¿ÈÐŒµ.ë ÕEœ"Â=oÍ8Qní#°½pÇ,7_2W<±«(ìß1 ŽøYˆ}GØA"JÃX>/ ŠYö¢,Í °QÖ„Çtν¦oà"SIk—DMvCOûA E=4*“(-Ñ1wÀL`6„¦4ؤÄ)¨0¶–.øtÁ]—f„ÂÝ–dMñH7J&ïýè>|8‚‰R&¿íÓ[Ežy…æ‡ëéñÁmÔ¨ssþ?¢uR¸éæ;ºN :‚”¸&h˾<†@ØZLÊ™LØÉT¶bƼå#¹„šÉÆ—æ¾;˜,oA´¼* "b™Óˆ×à¥4h&­)ýR» ¹wS!ÙRúÂ|~²`ÌÜmq.Êæèyˆ0ifH=ÒÒPË¡@U'Þê‚æOf¤ÄÖâ P¬¼÷Í>Ø+=ᘘwÝ9•t6Jz8‚»*ê” Äê|(ÓßT¿¤zgvDGÂàâIIŒë•Jâ¦h׉My«÷°¼ê¢ Ê^P:UMkh’³ã´öM„À\¹rROŒè/ÛT÷ ¹­Öj”Õüp^ûa™_ezå8òvÚ²A 5Ó»EE¾_~~Ù°˜A#¢#*ò'bþn¡ÿy“?ħ\Îþ’@ô+ŠäûнÖ*w:Åùqx+&f8wöTGwÍ!Tn%$#,‡w; ÷&Éá‹¶QâSi#A:¿Æ¿ƒP§h¢óFªåJÕ›Eä©Êøì·Ý–ò)YÕ&x¾–ÈóB‹c÷ 5ŸCNÎçÆž¸ã•íÑv£¤íŠ2¼ƒ>q6?MRæ£RU61›k¿^Ϊoݨ`¦äá:†•ççoϬ£3XÕy…W[WÁ;\8t*‡ —vþ`„{Å×V´j$B>[@Þ(@¦Ž¸ç€+|{MfOL©òÆ,ôyw¬¥aŽ.ÙV}Þ 8A™s0èý€©¿n¬}ø5¾qÞû×ÖŇ´18^ø:4ˆäm*\ô«udË’•fv#h®\W÷ç_^y¿XÏã{7ÌR>ô‚#¤¦ PŒ›$—BŸ±ÜÓ`$º±“?±æ  ¦QÖ¯êz0ĪŸ™O#A°aéÅÊYcRÅÍÏ·†ù‘Š%ŒŸL°ðcä#Ž*Ó`mÀuuOS dúÓÀ”©5Õ cÈ)”W.;Ob5ï$j‰ºÒ‡còMŒƒ-ZÖ r£VMJ\[øÙŠ%ʾ‘ƒwZò¸8zªZ¡#Køwwc$Œ‚™—Y×÷.À¡D«”Â?¸,t¾Œ³á1Âk×9Š@g¯ˆúñzŽkoˆ Ù>+è0ú€Þ~ÂMßõ“Ö‹ŒYÙ%+ÈþËŽYïjÓ=L‹¬™ÊzÀŽôÁMÃQÃŽ²EO–Û%›/Ž[°%žšÀ©AIIð›ë˜2kdå#ž/ÁmÚ+/$Iw3z‰ÖÖTDà÷Ç;3Á½’Ñj—¡ôàY¬צöÝÇ%•[µ…ë6Ki?/C÷ìýk„I´œ¼²¦íÂÑ+a÷®½+™*_¬„ÕÔ=Ã÷Vk¸X–QÉs¬ªðÀ¼ó½(Ý™J&•—UƇtb2‹Ü›ŠžÊ+ÂÂcšFâÑT`G)“Nù ²±ºÚQ³É¯¸œ#2VDj(g‘€:_Øí`ÍSˆp¯x@Š•wRó?^qÞ´uF îͬg‘çíJÑ£+Ñc¥W-wQ):u“Tóx“H‘Ä‘Á–¥WÕ¡Á¥Ò²†TBÕâH§"a%ý%¦~oÕ*ÌQÑèÜy™N` \TCZn¨ó¿áh®¸/½Ø£F Ÿþ¦ïdÞ,ºïð'FÍÐ(Ú)qà¹qzl|''rdO=Q·¸ Ðê—ٹέ­œëA»èä)ÆY:}8æÇ»Ùéó¦ˆ5~%€J@… 7ÜÊ\Iˆ‰Øøôõòô7ËS6?í‚ÛtZûÒk°€Ty­*6=cÈ¥sÑ5Ú+”Qã=®±D]šU-:1¼@R‰0ÕuùM»Z‹^‚H%¾*æ,A›4\_¦:,QuãÝ–Ïë_“ÚÀQèþ5j³Åjm0úÉ6C¬sJ NèôÏéVCµÇ8`¼Â»3ô„ÚZ ¬å°¤È°S Û„Ìl€!;¬ªàœ®HRƒ› ®ònÃEb=îäS]©DȲošd`®Ç0h:.A…ÕW'5 = àB|^tàÐ¥——’8…¥0WuÝâBÜtÒ ¢ÁßJ˜°NßB½M¸—6È|Ä·<áø&¦z)^ö )…{HRV6b¸PT¾Õ¡¼¼DÔS|ô“ËпEe H!o2%}²®I>–7‚™e}Ciø˜YÕQ§›’­\ì¥øhÅbUÃ0Å%ZÑà‘D<©€_Ó{®S¤2õò•Ã.%u¡αUÓ^|L£Æ§;ZøœÓÎ,fñƒ=ì|‰ùŽƒ> ð{2 µŸS,Ä‹‰-±*a—ôU9G›Ä8ù 1‚!it)Þ×.©ºß¶*úÙ¤W9 iËìBÞ(Ð@ ÅêÝ•P‚Ñ“<¯>äø7hV/ P+SùŽº‚½þ¯cegæŠÌɈà@Ûwf¾76öT%¸°Íø(ì½+›+¬hDí‰Y8”+Uµ4$"Œ•¥‡æeW•ˆ£Ñ“× }5QÁÎ-t±]5ý¨ )2 eäá·˜ª‚å^½ëê¶™#¸¾ØÕ¨tc½1,)J#ôxGŠnƒ0sSf °ç_-ë&4gQO¥ñܦ eSÀB<¬ Âü“iE8Ÿ”¼T+¢ŸÕNr @l+!=ʲԇ:[hx!îü@'‚FébzæÀGa4§¦»c¥óàû‚þZõ¡p>á«ß5Û1"‡/AéúKÙŠaEÌ*Á^Lå7ÝǼx[ÈÁØ]'Ý´äQ¥S`­ ½÷Åp!·Òš*Õ ¡¾ÈlU'ÔqF7I˜¸ŠçÅ{ýœ8ú8iáqåR_Gqs‡¢RWEwÃÜ«úWa§!ávQF¸±Tjd1Ç(ÿø!:KÅ>§ˆÃEÀvnÏádeQ„ü3¶™9»DÐOËŽ4c¹Ü%"1úøä°Êy•÷,ªøHTYä$¥*KH¦t”¹wb&”tƒÞ÷«)ìJz44ñµ¿É~÷½æ*$˜Ë«@ü'2ç«E9 פ3±¹¯Šab¢9ÇöyÎéò9øÀÍñÚ·Øíìg¥ÇøÄÜÊ–æ“~5êB¸À¤vXû„ý€I`RÒD êN-»jž*çû7÷’v¿(ÂwŠdƒO¨³œÙÌ£ßl‡9Pq.âQÏÐI1õȫͮsãGês&µÁ²:¿O©Ñ€Ae×2©±Ó(D&5¼çä³gRÇü4‰ÇMÚ°ÄmmæT?[Ì+¥Ðçßác¡×Ù+‡¨¨æ_Œ¤Ìµ¸­qã»V݉fð[xƒlÍ›„·!óig‡{?výîSqôñîðïíùÖE‚‹Ù2gûCZÈ­zRœê9¸¢ôhÉ/˜±è¢Îl)bœy"/H”ÞÀM(­æŠ½´ôÉ.M©†½Ó¥Î´Ou“÷µîhIÉXÂ&™ UÊeƒHD6Ýî¶Bù’Y?×àžÆm‡‚ˆMK7ÁžGU…T¨| ¨rôj‰dª‹T»Q[Ň8s~Öox#*9Ûš8ûíüjWpóP:-óñ“Zþ»JÅmš’o7½½žSMˆ’üº;öåÖ¼Ÿ»3Ⱦ̫á–~÷âê¸/ãOwW ¬ÄÓ—+vú=(ÖÛxœœGÏ“:½‡'Hr~òîêOG¿b2?Ì0Ycâ7¬HKߺ»ø8PîBz`¯Aù°»®ÌŠ`¯'.M1é«ÐüX’ü¸Ÿý¦Pµ$ Í„¿¥2•^.O?ÎOû*cÙÖò— ;¨%ö*õ§$VkÀsE=ᦊö`“Í5ª8ìÔjz+Æ?Á„*Ôdî8 P;™ºŸU ø—µ^ªy[nȵŽÉÅNs‰¦Øô.-*›òÚyÆŽa“jS»œ8|Ö¤šW¯Ní¥ð†&l`$r"8\ôz„QŠãYyVëã2ÕU®rT×ò”ŽŽP÷¯­%¤õ cX};9â z±WŠ5þD1ת %±S_] ŒÓ­²ê¤ÇÃ\êQr¹î}ú³íX{MåÕñ-ã‹+Rç$Hìþ·°'·m†5gÀ!'凟£X‰—ÃÑc:öµfÔ» wçi<¨5¹/Šà3꤅g¨ìÕê7s#Àˆù²N"»¨àje„yg;wÔ+«[MF#§©³ê*{Uw´²´š¿|#‚Z¶JØtKÜ„ZmÍÉm?!ÐÕ7ú‚ÓLÎÊYÍ~gFɦ¡ÿ>ñ³y9þèO꥽' }¶…Æs¢÷oé5ÉíÏ“}ü8qX~Q•ÉÃyõô²…ÖIך?ÕI£á.üØÞ­^wx-T|Z•¡o>ߥ›[ÂA„YYAU±ˆSÀ”7ÚÔ`½˜îIz²ª÷Eµ”´ây¬>`ì3ĪÄdÌöóÃÆ¨©š T¶£r£ø8Ó˜7ÕfñË6ÇŽûNœªQ­($Ô $¥e/‚½jY4€Oñ.ï}Ð3àÃü!¥IˆG.“ë°°E×’çz %t x3yîŠÐÑ7ÉŒ‘â…B¬œnB#9ŸHÞ-;â…Œ®?^ý yWpendstream endobj 1477 0 obj <> stream xœå[Ko$·¾‚ü†¹edì´Y|ó¸qœØö‚‰sØ•´’=Ö–d{ýëSE²»‹r^’l†jQl²XïúŠýýR °ô“ŸÝ,Äòrñýâè2ÿ:»Yþùtññ×2„e‚•V/Oß-Ò;°e#ÔÒ:5€SËÓ›ÅV߬Š”qÒ­NÖ*À`%¬ÎhX[á„]½9ÁG¥œ«Û4ÃiÏG¯Ù÷ôìœVίîp¶ƒµº¢aãŒ÷ß”~ÐÆÁêÇépçVãÖ²µ2y?¸ßû‘m’é°^z:.iDjõÃÉaMy#+Çÿã*ºØ'‘§A'òÔ eIÈmœZ[\0Þ±íø0çu8Y[0ƒQrõ¯ø¦ BÌëñad Òm‘–oÞ§a³ï vÓ>J+(Öþ0J]gÙ)9ÿ=ýûBZ9H¥P¿NÏQ›˜ìz„N\›vóJ©q‚’Φ“ÈÁhX½cï%:u›˜J3$ÈÕe1J¬&!¾™Gß³]®æóíë‘ø5ÐvÒ¸l¸ÌÞ*<3o«Q‰Ùh*’Xr"Bg¢r 5HZêßܺ6Ó5ã¥1™œù£f4õîí”õ ¾(ðXRÈÖìhCW4] 6Ø•g“=³½ma“=“í 9¨ŠŽClùpæÐŽF˜mî˜ BåfÍ8Of¡ÕàŒfÁ'w<ß‘Ÿ‘û·YcП>2µ®V |Á{F“zH'_:*fÜz˜¥ñm˜©]ÍÃÉòq£!“ ©±UdѨô`q¡šÄ_]ÇCiëLy¦7yŠ1h?—»Ì”ÛôU"«Š/­âÊ ýX=bhÅÐc<jÜ<<Ì‘`>þõ…§(©—"Iòþ>IêÜL>¿U%ãKY›ÿ³xdD+Ô‡‘:vbl_»&U}0«1•ÀÅOqE)0¹n`¼§ý%)ÐK«[zÈ»e³¿ÚÓÞ¡—"]Ó 4c+¹2¼Kï)Ù§í"MÑ —“IvP²ì" ÁØ¥Lo{ÊʽRó²2Ã,÷¾Ÿ¹Hþ÷ nÔ¨?07ÃQ²CtraqiÌXxHÓŒÿis¤ÅõjöƒÉWå­K_Å”·ç‡²/t \!Î︈.ID­ÈÕS¤sƒºŠ2q R¸ rGô@²E![ ô^ÀôýÙ=ØÝÆdâ3Z¥–vpR¯>Ç2B«â½ûtp¥ uòÄ|ò€”6rù1ÀÑ‚>èÚâã>Â× ù¾›DÜÑ 2^Â6L‚¬¡” kŒ¼zÔêMfoÉS¹Êò…ã‘;xnE䎞À„–áü«`%{Îép"¿L‡j»Ûœ[¬o™a°áätÀCít(æ)YUŠ“*‡'ÄÔ¢=]|E;Ù°¼¼_èA˜åO ±üD‰Á. ÚÀ ôò,iù4r½ø¦ >U„Oà“G©¤%0ÞAŸÞ̤ý0?žÍLjêa¬Wvõzžp'€Sù1ÞU+°|¶ÔÚ†A; ,E­™©(ë-˜Xj‘‰{­“‹ÉÃw³ðÞ³á¤=YVÌ,ÔøGÅ ¢³”jYLÙ›ô¸…7Qa&ÞH‹ù«´Œ7Ò*‚ƒžÂ\W%o¶(yz¼šSòµ¥Œ½õ·«yøÇæäïæÇóùñÛ“‚1›†ƒ¢¶©\— å/QõQ ç$ ™k{ ×J„lrÄÊz̸qpŠŽŠ9ÌÞ²¢•Éf‘Š¢0“PYa:Å✦4í×rVÃó{[îÁ-µ–T÷“Etˆ §‘c,2à›¤¸Z›_Zë¶BÆb„œ¡‚àja¥/2zž¶õ¯Í,xªŽÐÌt¿q]¼3bT¾¦×CîïÓ>ÖÒl|L•tN(‚Vaõ!ÓmL§òâheÜÕg”Aô0 § ¦¬Q9è÷KYØM›7JÚXFü‘€³Š/É+‰Ôû¶(€c`+Õ4CF`¶¤»Ð7ÊKa7xÃ…ß4amð¿‡æK1ÑØ709Âý—š`V°7$àˆœFމ…!GËØ-ÛSk n£v(<ÛÈ‚=@ôÇ=¬’[1«<«ÚG;”¨@”¹ÛìD9@Õ«ñbzÓ†m¨@ ÖúS½ UЃàù‚xô%FÇÝç'wUoÙ>Î=T‰Í“ƒÒAFxY‰QÏXx?¬ÃüÌ,áe‚ãT1ˆ-Û.æ@a´]í’îçõLû"Ìü÷4ÖÅÄ•ª~§àÔÆ‹“µ 5ª%úHYÆ„M!f\n®Tˆ¨FçUÌæšO?ߘSŒG¦¿Â%)™‚®s±pE»L³ÕBÆMÛuzdÔÞðÀ,Zy^³hpφÞÝAÍÓÈÞ0õšãƒ49Ÿ¹™é¸˜oæt寳ÿa½˜G/ª\·r—(A5¡(á-ý°b ú–Íás˜çDS£N¢¨à¶~ªÐ!©`vd=YÛÍzÎ ñ¢öެÝa«÷]¡ŒŠBŽ'¤IΛ®®?äãà”·ÉÓRH—¨ìŸ› 7’ð¾É 8O©r£òø;¬%]Ó žÑ¶½‰~¯põ*±BRäˆ×MTºpA›wï›^LJ04Ú`è2Œ{µ] 1IcÛ®¥æ\áI’¥}2[Ú—óhW¥ÑÏ 4 zm=ºx¬ƒ„TÝ,4–ƒT‡#ÇTFùÆÝÁ2ó Ð)Ž~>?Þ6‹é‡éµv9H¹ •SI-ÒI*\KzÐí¦ˆÚ8s]Á»¸áØð5¹‚ÿ:*#I°¼‚çeø#+ÏYOH¹GϯGa1"œ´ ºïmÈ m.ßùm  W~§RžÂ–7/€‹ažmP-éèR© wG¦cT ß H*.Ç´‡«ÚëÙRž\„»Á:¨µ®NwY=¿ bB™*ݧË|RlOÔ龟´cþLÞ“izãî\PÝX¯yâ¾™Ó.ÍóL‡‚ì·ÿ÷ª×iw¯÷¬×㎊Tà]"ÕΩët—vàùMÞ dÌãWužÏJñi‘˜Y7€tu‹»QøGnñ ¾¥ßßjvñ^bòa¼c£_<á™7õö”ë†M–¿·ý&¢ÈÝÑžþ1â?çÇ/Z½Â\ª)'ü<ûå:Ø·ÙäçNÆú7l6©‘Œ-Ý‚Ä ´ CÝŒðŒrF·æ1]XJ‹,‰¹žz2ÓÈ1ùZëNy8 ¾‡ cÃEcÑÂ.WÓ<.ø¢„Gu—Œ/X’LŸÂ\bi‰™/b‹{õëÜ€: e¿îþ¿¯³êÈ&öZêVM®% W÷®Jï›ûÜÍjú°‹wóã›ùµô3XâçN­õÇ“þáš`æ 9fƒóãÛùñºÚ/1é}“ÍMŠA÷ÍQFÃmAq¡"bl[5ýì¤Ô"¦%‚“ƒ´ã¼J<øÃì§³vŒE妖·@¸ßa/ÓK÷ÁšZ™(\B…;™˜uŽ#Çv2½¥%èþ‹øðí•r’®ð¼pûÒÇ_½S£m4$1 „&²?ÝNÄ)ôyV÷¾\¼ lM7u¾î ×÷8)¯ ~£!éê’ìhÇfýJ죆»cf‰#63=Ôä]ÔSÔW„*µðu’¢Ó9›G¯*÷S'ý–®HVÍ8ÖõL82C9ÔÌ…™¿op!]ÚT˜ €Ð[š­Ž]V3M·¹pù÷ÝcgæÇ4Ëåší XüxUùG{Bõ‘Ú¯ ðj§0SÑ%ÜJû‹à¡«¼BìsäÐö‰@›2zI—< „ÃÌ``9&á4˜©Ã]h yêB5Fá&Šu%úºøEc4¡€QÏ®ª/8±>€W~xÃ!©·Ûqô‚|Ïæ7nåò; U+j¿hA ‚i|dÁ›ûô¦Ò¶B¥Æ7;ÞHˆ |i§Ïi:,3gLsx¦‰KPçé`L³‡~o&ô€ù›Mg’?phÕ$NØÆ„Ò;íÑ9x#*¢V}d± 5%ŽÁÃîuåPŸ!½¥‹‹³ •ÂBHª§Hšš^Dí¾’~i¯A˜ X Õ.W–zûÞˆÊR]Œ:0&7ÂmýiFÕ¢_K-©^®.Z0ýºOJ‡:èËã}>xë\—y•ÐYãëuòo#z‹5 ™EÜm ™‘ÏçùSGiº‰t# ©/·ô¾ðèÉ‚±…‡ë’`:“ݼ‡›÷¾ãAlg{nþ Ä ~üó0´VMÿ Z ÒÐMm†ÖŽ#O@køvƒxhíÁ~èÿêÓ€ïªÓM¸R„h|VŒ6ýÒ:aÕ1te9£IË­CöìñÈ1afN]˜.1¶çÌÙ%ݘcŒQÂàˆz cp ¬UUɘ£@Z³¤µîWiQÍ£=ѧg~c¶mA¿vlö1ÚqÆ‹A´¯¦Çt×TP)`ó¸q÷žkqì²ÉhŒã^¤øbÍ“ô5w3EE*©E¿ˆ !Y¨N†œ'_ñÕâÇ+`Aendstream endobj 1487 0 obj <> stream xœí[Gs¹¾³ü#æø¸¥7FGÉ¡ÖaWtÙU^$’ e’Ò’Ôÿz LhÌ`æ’ÖVyKâ¡0  Ñáë oÑÊFпîïùõ‰hÞž|{"ÓlÓý9¿n~}vò˯µŒMl£SÎ4goNò7²‘Òµ6¸ÆyÝJ¯›³ë“n~{º­‹ÚЏ¹<­ÖJX¹¹£i­zsNc-bŒns›Æ.¹yOC­~ó1Q NZ¿¹§±ôÒêX¬ùêÆjmÍæ&/7Q«ý'V±<1ÆÒ«f«c‹Ó¨æìG=%´Ž~óŽXoCP85ÕF2--4§¥pÁ€Dã%hHUð›ßŒÃ¿ÐÐÑNi“ù‚ßCÚãùÙÉW´‘‹ÍÛ»ƒ#6ßãA~‡sk×:Õ8mt«ls¦Çaæêäåò³•ž-‚¦ D¢•Jåg{5žívžÃwãðãð&]ïñ4Ãì}q»ÙkX‰W ß$0©°ùÄÞá&qQ™EÆ8á…Ëò` _BgyÐ:H²†V†‡H´AN„çWû OU ”'}ë9L…÷F/ž E¦B¶Â‘¾wb´Ö‹¢Á×°O/éa\«£-6ú@Ó¶5Awï%qF¾‚¾Už~êf+Uk­ñùÀ|WбB´B†Í5舚ÂÙ™$ýû”®«½§£ÐZèx!R÷ýtyÂOsáí—»³m^3íáÂÛo ÁäŠÇ”ç6¯ Ù%Õ¬ð9Í—|NŒP–Ó†]WN#9‡ñݺï,Xž¯à†=’}ç÷-Õ|Øš³ª=ÝFcÈ­ÀVÑ—VÝóUˆ¯.à^ï£m~­+¶ýE¦"-q8ÝÅLx2Κ‰WIKŒÚü¢L,ÈÌëR\4>‰´‰ºæº×ÈÏÈ¥ûfmè8¨H~œ}š¼;Hp+«®a²¬q’$ë(ñ¥*0·Ÿ R²“KÁQÑ ] U'3NOßžÎá´Ûi`IžÂÀ*§|tã" ¬r3ÃÄöZ(À†<žy 2ʉ}MÂÏ_–)á§=\ï²ÞË¡‡pI@CþžVè(LkåÕ7Yˆ¼ñkJ”„ÇZ0{ìoÇÙËò$eF–žÝàœ 4ÀæpÒ¤X\øÞœôᮨ_ž”`*ä²ò×)ß»?»hyÿ-Œ4D±´”wyÚXUXJÒ`à`el¡‰ vu‹·™¶WŽø&ÏF}.Ü6s"Ϻå°Èëf#ð*¯Q?dì?­Zé,ly˜¦ƒExÓXBö€å€iFZ2ýÌ10ÍÈÖÂŽƒxàÇøÏÇáGb|˜œÁèN=I«*ßqÁ†\v񻊢 örnT±ä&-©Õ•íÈ](³ W#¹ìÌréç€ÕbÑ`S  Ò *™±ITÁAN¯À–Qúvza‚­Äó¤Ã~H(¥ãñ9²?åh:ß,>'û ,”ß|w ?'Hù_¥ïB@ÄŸ¹ÕçœF= PײþÌ”Z0ŸG²A;¶7Àî`Š¢€Ú#L³ÃÄ1ñ´·mDø“ÝwêZ>ò,žvA»£ãi#ü k ²Sµd'Ùò žÖï&åFä¡…w![ïà®W5> !.8èìhŒÅgK±Í޶‚Iè¨Aȧ?‰SBWbš»|…è°ÏAOÍ-~%…sd(«à îŸ/áßòñ6_-|ÂÍ[àä=1nK®v♇ñd¯-,LØ•z™½ðzê%M¯§^(g×ã%/quÚ·ä AŽ(抇«ÚÈ< ²)|{.= »n‹•Ê®ß*øãØC»0f0[f;Í®éªéÓ…êñ“2h˜òÆŠ È^GÌË?±–ˆ0EúÞãbá k™Lä—ã‚£µd.&Örú.¶ÆK¼… m "öüÖY£ƒ2Ëiš%œy~ºóiP©Pä§wù:·!(' L3Á¬þ w[X¦Öyõˆïª Q Њo5ùB¸èÐê8Ì¿ 'ˆÜéng8ž{<ïÖ ˆ`0›o6‰Ý¹Þ<&"”ãwŒ1ZXÌè‡0$€˜tɘ#{`xS ÉE”l»ìãÅé)Ÿè¾âöœ ŽÌ~öÙ³b»m ëªü$#úb n¦Oû|~¯àó½\¯‘åÅ}6ÅŠ»D⇽‡Œ ×ãž9-¯£$T6ÙJ¨Ù6ŒiF•»ßÅÕ7“säÏv>ÆÕd·ÙM’.ýÁòºpQýðÓ8|]ÝärdÌÇ]üd'f6ë®:ËÎpSœ¸¡åÅu!h£ò)¥oé$êÓGI¿=ͳa˜Ó3ðXTî,ñÑ’Á®ñìm•ÕÀÁÂ\NÞW_è¢J÷n$VžyH$}yröÅ#Ÿõ}õ³Ûêp¢f•X•"Ez/gm÷²ÿµdãí@¶¨ @E£u€C÷¹nl¨ä×ÏY76Ú‰ÖáïS¸öRJ*9%íc%Î×m¸_Jûñà²CýJ÷u™¥ð&}J•>Åj¥‡§ugüþ BïÓAp(n±x娫kK%`ýW§biÈ$ÆW„Š„RƒÜ?nL^+øj¨=Vƒæ5°JÎÐÅÅÔÃE€ í$©ÙÓË8ÂPfÃN|ÅëDÝ(GU©‘ÔQc‡”Î!Ù¤)‚›~V}crXÚí÷ýhÍ–‚uH¼‚p‘±]Q*gES\”µH ‘}"âÔ\@¼ì8’íǯ;iÅ$OWUpa¡:´†ÓñòþnŽfg]¿ïºÕz‰Ð¼-€«ÆÛzLq^RÔÎ""<ƒ]læ›4<蔀²|KÖ˜sT!¶"Æ•þ½é•àã\¬UhÉÙt˜ì|BÌЪ{̰¢@û×Û~î}¨$…ºÞ¥¡öJ޽ýÄzT ‰è}ør„ÿÇå„T«‚¨å„Öû\—œ– !̶)Åþ MÇvt‚Uå¢%FéúDùü >Dë§O×ï­lδ)‹½Î~ME‡3u˜R¬l²\j´ßÑ_1kÊâã£:' Fer`iuç%a–z'W3XÔ¡¡&ÁDÙA'Ù+%Ê! ËŽíéuSŒ¾î¡4 ««ôÁNþ“À«Î‡¨Åö¹á3NëYÞà}7;d—K”¥\å&~ꆒÕ6ëÃzE¨_šõŠØaú³ôŠHø„6°n‘nâý" núÃûEXü5K0M ì>ý"qðËÛÏÕ/ˆG¡f:Æ´ ͪ{™E> stream xœíËr·ñÎJåö¸t‰0€Æóè(Vì”ÅS•ª$‰%VćEÊŽüõé°3 f¸\.#»’òA0ˆiý~aXI¡V’þ+ÿž\ÈÕÛƒTš]•N.V¿;>øò…ŽqEtÚ™ÕñÙAþF­8a%¬œ¡<¬Ž/þ¾>>”BK€è×擄ކ ×ohll4áŸÇD€ß1Ob´F°Ç§ä%Q6êà×OÇás:i•N»L|3 i“¯¾§\\½½90BÚÕOxÍ?¨RDKçáíêgÎèaæýÁËYd4'PRÕÈx5žíÃ8<‡ïÆáŸÇaúÌ!¿¾gßT·›PÅJ7žÂÁH§Ãú##Äeƒ…!¢8é¥[ßfÉ(a}ž¾… |X_á®À›HŸ‚TÂH·9RB:c¡ìÈG¶[~ÉÎrsx¤cÁ+¼2£08¼¡Þ»€'çr@뵯¾¥â_¼­îVÝA{;[~5.àw縚››‘JUß±%oÊ©¢Ý|6›*¼v¢²Ä h©7«M9uúûYÞD9³´ Ý×â‰=Ž”ÂÿEV=RZXãTæ vÑ‚Nã‰!)y¥YŽd¾+'øqŽ«yÅ(#´Öëk$xùúj‚üBW¢Êêìæ§èX-¹¢i-Œ¶ë× †°þ”$cP]¤Pi6ÒsÁ½‡·£à~X–V£D€A߉Ã#@€ô¨úúàlž±nƒ¶6£qɳàDô¡bx†ýaÊ<á’j ÄYeùŸ,.ÒsúârÊ“‰X7ùœjÑdBÀeƒ™Üf „§rB°æ. ”€°åì„YRœF3˜äÄÚ"'EðƒÒx.4 :È'¼1ûàqF~¦'¸‰7ÂÉÐSÌâ&(]ŽÄŸ0Ø‹›.›_5¼Ý—ƒÌñgÛR|.»Ÿmo÷¢A» qs½q®1^ ¡çìÄ¿éÈi¹¿“Æñµ›Y+ã6U¤Y¤¯&2‘Îtš+Ø9¡Ù,˜7üºQ6 M9d‰¨£­/2a|Æì5c®¾a³EëÊç<Ÿ­P€8¾»,ì”p6”ï³WŸ_5\™9ø¶Çtü³¬Ùøp™/Ž!*nQ¦*™©¥W‡¨+ŒFÏäSF€50±kh¥¬Qhײb±‰‰Ò¬Šëß0½gZæ=£úÆg§›}Üú§Ñkç<ÒðzèH/½¤r Ñ¡ÒˆƒÉLa½‹~X ¡qth%G']—†ÈìÍ@4›Ï’p”kön}”}c4#1ó; œnlÀþ|žù$­ ÝÓJ€8ª’KCúcÉ´=(Û×ëÞ F¾;ïjÚ>§¿mf·ód¬ˆ!†ÑŽŒ Ž›ºŸÖ’ÏâP< ×Ñgùî.ºEÃ%A«ûÉS@ºáp6¸¹†Ùb¾Ó[ÑŸßöÇf(W}É…²ʪäüED"2é·i•(ùgG¾ñÛZI 4j3# ³Úq!T2q“§µ†F7Ê K )f¼%.¿MòîbD"ŒbÀÅÑ“½!í’ÍÕ‘|¨š ü4ŒŸP¨¤Ñ 69¦4ĩˮïÄ-ã sÁÍÓHµ`71%i2~ù÷y7ªh$‡~5gæA-ö4ÇfÕ$<‘Næç¼É[ëÁUH¯ëÖÆh¨¡@ånô|Iš'àÑM¢®„lk—¤7-ñ±‰ñ‰µÐ GuܸE yÍÜA¸Â$ä„Ä…Kûò=›ævr†“Èl.Vâ 8@ǾQKÀ# »F{Ò¬óÛ€~`Š÷Á:Cã—s›6l‰#AÚm2N¼éÚüñè€ÊЭŸæÕÒºæ$b^ô+…[®ï¥í¢Mõe³A|׿ZJ ÑŽÊï[$qV ibCÈ:Á+“vŒ¿;GxCA_wÜ^ŒBPU9¨Yã“‘Ù5H|‘ài“Q$ZÚBrå1-Qš ˆ¦ß㊔wĈÄ%»ê@H¯I*黀Ö21|´Zú Û&ÝÆD+ôó?8Vž\@TÙÞï;  #ú¤+ëm“£”³·83Lì’qFO/ÚH „ŒæÎŒs>ò$ãì¸3Îhyz‘÷sÂÈÙÆeûí­©V\õd³¸ôÖêÁ;hí17ð9€y\Ûì´ò@6<(”ÁÍ*Iv¾Û|¿˜­~½wnnßÊÞ=¿Éûi&Ö•hbýHžÍñ2UÎ[K>nï@²–᣷ïsö*cÅD?ø%)‘×x4¤:½RÌûÃ8õœr¼ÍíÕIÿFøë3:ÙT‹»9ŸÚìoŒ¤U¾2’…CèúÃÚ¹Åý¸¬TT|Ì C› ‡3ö ½C j…®ªYø-ÐÁ-Áì‰éO»aºkNÈÍQòê™ ,ÜÊj…ÒdG‚#< 3»’š@ {ïeH’õ`×c†äÇyCÒRĥʟj<†—Ì”Ê$¦äïËôÕHk6]¬=Jq à Õîò!"RíÉgÑ]Π!c£Tè=REé+ã%º¸É‹ÎK‡™È‹ D0@ß¿2½yÐÁD#cJP€¾óf¦ÀxSá3Á@ݳ€Ï<\Àg:Û€OÔCÈYŠáŒŒÂCð‰ ({Rãó«íñ™œ÷(BˆR’ƒdŽ8í‹jMJÒxO¾dKº%±¼n3ÛiöÃ8ûd˜-É Z;ül„ýí8ün~=½Yð‹7‹€~EÔõÍ*^è]òÍ‚»šfsF~àÔóN ¿GqÂ;î,tei](tåa[èÊŸÝ)F7ÍgyØŠ‘•V%F§]1ú8_Ã÷ ¾2’®Úžø¼{âóî.«Wl ‘Æ:.²*[®bÍj*M æ^Jê´%JË÷-³KtH‚k˜}Ùò£`¨Û8Ÿœw)tÚ…{3' ÃI¿;8þbÏg=ï~ö¡;œT¾Zs®ÈÙÓÙœ+ŠªnŸ tôßf"óììŒ1:žà&œ›yž;àk˜WPœôt7†â~”/-L¸c›FIx Ÿ/Z#À®ÀR>R¿Z ¾—af§~µ@àÅ)¨™¤M­±û/Û[pbÌ¥X+×>,ØMY&Lj>–¢—iÁ“S¿Úêõ½˦å Ú¼‰³éȔ¯c.ÚOéÅt.Ï3O mϾ‰ôtTŠÏÇÙãqöé8ûM¥;j2ˆŒñN É7¦f ÔÆœ¿âŠj8+׿«Î6á°#P YîßÚÃcËûW{*ÿnO n€N¦l XW›=Ô}Ü$Ê…qÿ½7K&`ïÎùe›ÁWLËç)Òï/é^·wZõº›–œËÖ9»¨ÊÉ꣣Ò#ÆÞª6_“¨hî%ËõF 3eI² * ÒË‹J*¥#ô¨@›|É褱eE¦-!ºUÿ>è»ûÐ¥Ù¤Àœ‡X¹€õŸò¢Còµð6Hͦèó·¢RÒ:èx«t–Õ”.œI4ÖiÖTà©Kas-^¥ˆÔüÞVî¬\“îß4dÓþQå|Tžl±¡; É1¾[ÃÙÔõ©èAñQv,KimŠf´fÝÒ‚þ²|¬ÐÏUï|ó—%ÔR·êO郅q›· ba‚'áΆšyCŠÇÀ(g#ÕÃ߯á³î° ˜³æfÞôÿ|YŸÚ€We³ÛáÛ?>²œûžu7ÿë8üÓò9!†¡Ýçqž Ÿ&vÐh¸ZBD6òšFÉ—§Ò/{2ÕÕø:˜nÃB·§^¢Æ´ ’RüÐ5&îU]Ñ׃#Ðð@i1¥LÍB¾\ZsíÝ›=ÖÞ5½ŠüRu½»À¥)þúR;–-æX²”4mõÚk—V†àöÙÊà=ò$Î<B@„;µ2„\鵞z‡ P'ƒö~ÅW0§ê®ìþÝ ¥"9w©ÙkÈ•t~9•¾ö˜îÿ•ÿ_såŸ_±<ð_—/¸*fè¡%FJã‹¿Œ<§¥¤É;²g¦yHI³Ó°û¿îJi#nK‹¨1ÿs J°oŸ ÔrfVs)@ŽgÔ0³S€@hµEÏç.†´æõ6>F&f'lPEa4º¿èbÄ«.ÇÖ¨Áèwú¯KZæBײ}û4–< ]?z(ùHzõ4÷Zï&I•˜æ™u‚·ø¶”.bõ\ò0÷R4¿Àr„åWh4:K/«ûýâyÏT†khÚéyøgL NûÌÐ\ ëü‚Þ $ž}?Ò„Sÿùa=3t6úU§¹t ýê ¯òÞToØþw,zoÜÓ ¤êü¤Äì“›‹üèznÝ bïñËD4Ê3Dz>>ùq%úÁ‹à+þ¾Üð÷àiñ»Ù/»¢åÄuñ{òCì¡e=×É“fr'dà‰¡9Ï"€žA* áж®Î¤÷–QŒe^¥ŸÈuí(¨ÚÝT›¸NÆ}ô)Ð |T[?hË;ž†â•^;j\ºlГG/VjØ^ãµ2º¡›<3-àK„ôÞOΔƋ$)5:”Ææ[0ˆgz[þHÆ6в¼äò1”°+mþ©óâodt³t©ˆ$‡™<%—1k†áà.}ð[Qð*endstream endobj 1505 0 obj <> stream xœå[Ér7½wÌGtøÔt˜;޶fÂŽ‰‰qXâm4."í.2IÙãùz¿jɪ®îf/ÚèÐÅH¼ÜPÅ_çZÑ\ó¿æçùÍLϯf¿Î¨HçÍó›ùw'³¯,åyV9˜àæ'—³:‡æDAùæ!ZEÑÎOnfÿY¼::Ö*“),Þie­Ñž,¦HÞæÅ{~)‹{~¶!%ZÜÛäT0qñÛQ°JG§e^J!ÛÅuQ½Ñq C,óÀb—½&ûß“²éÚLÇ3E3?†é”Ìüä&¿Æ|òÙ¤¸xÙ?þÈJÍâdrÀÝ#/õ“ÙO¼^È󫇙SÚϨßϰ\VÞ΃¤²ß@â!é׳׫‘™ß"½Ê>CEP9SEþ´7í¾<ï·ñs/­[ɆÅ/eüÿï¼lîÅ+“!àI‘ÆáER:øœ1‘=tÔ¡:Ýyµ­óÑ:Krømû” ;ÏZ§ˆò`æÏbÈ[b3MTÎÙÔª.nŽLR„YgGÇxòɧI÷u Giq‡-:k£Ë‹Ë*…yƒî #ⲋ‹¡l\2Þw6;ZÒgUˆ´~'ˆöœCN{%¥«^:·è@òÔy7µó¬wp>Ûo³k—N0 çœCÆÄ¡‹¤êóõn,zÄBrªêÕ798,ÇD9çÇI˜Sª1”xÞ²6%ÝM‹ûÑ“yn½Ò¤MŸ‡ËpJug¬Æjž“9¤“ì’Í) \ØžÙ*›K ‹ímÊæ¥Íãå(ÇÇ~ Y¹H„b™PetW-ûÊûG€ä\Í›F|×ûì7ÅÙÆ”j 6¾ÜT´ ŠVGwP‘šhù¥ßÆmÿˆHEº ïÌ]n4 ‰3sT£R„ÏÑj’²¹“ìàs¨PÉ%V¡tr}^—*ø>?š”CÉx³èÅ¿M _ôoŽºõ£c´jësª=•›ûçaÒþ»þÇM죳âR§mÄåaÒü5¸Tà .FYÞßbRȘ̌´]õÚ„”‹¤âÖ=Å´¾)7 ¯IÎ6)Àh’Îô¿—dË¥z)ªu¥*ç ¹—LG™²’¶É1"ÛÄG^›IªÐQ.Nßj'§žÑÖæ8n‰¬5»4]4êë‡(éÙf¦k.'_ó›2JÀm%»Ôô f†Ú ª™ßkyrÕ‡&x›`/’ªÉÞßð†D1µ4©Œa*“Hö±žò’Móˆ1$“Z}4ŒT¿¼4åĮ̀XdÃoë’Y'0Ç–XþQWÔ9ÑJ¢Ô¬ïÐÕªnÁl8 »¬¶‚/ –6}:Á „0ñê÷—}³ÿ±—žôÒ—½ô‡NÚ…¸ äìDˆ£±CB{…¸ÅñÿåXƒÉ5Ä¿}ú!d2@½fJ¨Û6Ò£ÛxÀ¾6p\Œö¿µ–1+BäÒ9”¥dW•'.¡¨GÞ/EQ7ü²ÈfpÔËß@ª1CòþU)W•SbÕ€6„¸d1ùîWB(7,í“ã¯ëÖÆ§°»*6iHöÿ'Rä]säB«›Þðc£Ã›µ‰ÍCBË9Ià™«òP,#wvzÄaf<ö]bÉ0) â4ëÂ8g7y€k«+ñPÓ&ó ’9˜¢o—,wD‘o7ÊÆð`±³ãò aR!S–°O‹¶n\.ö…ÀRâãiɤllàŠ™9zk\e$U,Fsm6:Oæ·½©5qämd¨Šnw/¼›®ó«Ú‚”_ðê` .VÜšåEŽÈD»šî\bôŠã³l(Ý­Ú…°ø½O™~«"¶KK™D¬Ns‘vȸÅ ¼PèŒz¨8 rW8gMñD¶7oºõW°ª û‚»’·/qßó¾çˆÃ¨š’NÆŸ‹ ®±«õ_5F{3¸¡¸7´káé÷ 1~”£ðIPƹš^.4g•¿ «_o—,o÷çD`¤ž*w ‡e”@€Cí¥OCßs©ªp( A ð Íl$“MõªÓ;C8jn(¸ÀçŠ^G5‰R°% m `äqåÔó#K*†ìïZÚÓë€îäspÝŵV3¥“CÞ÷Zä2\C#_”e9q4ºÝ6‰ÂP·4ëNl™»]ô8±ºF9¤š…§V#Šžh¼í-¶Ô“‘vœÉS_|$mOþ5;ùz啟S'þ$WT®ð3'®¨ZÉWTP=mwá\ªÂwý€÷}ÇàëÉ»½þÌÇ™ìºöb=â›OÉ>ñú¸ñîö£Þe`âh%A¹½çn„ÂõdÄ—»!¾âÆ6¥ãçsˆŸ&ÆOvh=Ú¯ â&°•ìq P},G#µ&o·Î yè e©œ§Z ·Ìþ÷A‹ù±¶nˆÖšCç­rÈ*%íÎàP¡½<ûz0Æg°„Â'‡œöû½ïKÛ4 z×K{é}/ýf@ŽÀH2Î 5)¤¢žT¦8˜ˆsÁ×Ù¡(ô þ‡+m–/°²[°%•؇9Ûßwñ 7*eÖ€,û+ü~Òƒ" Þ­r&jAe\ëLÄ Gμšt¦pñåóu¦E[2^x³ìãN‹>eš„ü÷¨$ÕÇ09.Ê ‰×ãBU}˜„ù¶—ž=|EœÝãg ¾!4<à7‚}À7YÖƒ?(8sèrϰ:kJ™Ì£¬ÙÆq½ô´—ž}±Y£“Çÿ Ç5‚}§_EWǽ–ÙP®A7ÕÀvÄ´Ûî'ݶ±6o¬:obÇÊhöfTÔ½¢úlÍàt­¬l­•ìÁÖ çÜÍïê÷dk…¢yœß?EÓ Ù"!²DLÁ÷*”®*zˆv¡h™v¤hr¿E³°+ÎM«.Í\+ØÅ…Žß^ ÊóAëãp4§8Ú’7Ÿ9Gk¼‚i8ZëÎF²?CPÚ˜M$w²¬D„¤5$­kHŸúÞòͪD¿‘샾EŽa;–FvW–öDÏ=–ÖxΡý+=×HöñœÓ`OtPš¶M|k<(Q)2&U¢ÖÝî}²¸Î&cÍuVÝ•žþ€ëbdû’ⳑ⥸DW¶¿Ü†°rúc¯Anƒ\Ršp¬ÈëÈ<ßœø˜dnå/Íø¥ãV„T`(¢HT…qþë¨|ö£Ê½5ÎƺÌÆÙæ1ÌjZœWqLt7D"½ÄPÆàò@Hw•vëO—¾lÑ‘Jv}Mzñ*Ø0øü°@×–bÖ®ýþùnår\>”Ií›ÓQ­QEc»·ÀK­k¹{ ÷¿éà7®¾ìõ9ŠMêd:@GQß®´SÔ[—6½•“¶åX!u_À´>úÒËËne|Ðé:s˜2~ˆ\€5.©ìí¤ùâqüQ9‘å?¼ù2IÉTcÿ2™ˆÎÊ®¿¾X,•®Å”ùûödDÆöN-òùV‹èAµhpÞšŠìŠóA«ÅRç¤ði¹¹Ý¹ˆŒ®§p3îsÏÑÑÉú2b•ÙŒ,Åý_ŒŒìZÈ·¦#{òCÑþts:"Rdé‹(~Ý›O¢¼ý¬ÿ+j¥-Lõò¯mëWÉþH~ \.Ó~šý ‚ªd–endstream endobj 1514 0 obj <> stream xœíËn]·±k!qÑÕU`1|?–IÚ&-‚ITtgaÙ–mÄ–ËNâ~}gÈsÈ!yîC’m ¢)>æ=Ãê— gbÃñßôóዾyròˉˆ½›éÇÛ/ÎO>û^†° ,Xiõæüò$}#6BYf¸ÚX§˜pjsþâäÇíù)g’+ÜöéégÆïåö1¶µ Úÿtþ/˜RÁwdJ ¿T'>“ü“¤wÛ/Kó[lZn„Œ«,|›¸ÈßÏO¾Ã•lØ<¹>ÑŒ›Íop̯NDPŠù¸oŜټ€ =¹ãùÉCX4ϰ–)_ƒâAÙÙëÒ|XšOKó‹Ò| ³¸í³Òû¼4•&¯N¼ÀœŠkf°¾>=Œ[Âöå)B\9`½ˆ&¥•ؾIhâ+XÚJyáüöŠŒT*˜tfû Áðó4Ü8éævüô‡{fƒ®foˆ‡(o"̦}‘Ý><•Ž-BõÙ3²":ÑšåŽ[ø²´é˜·dži!et>Pï5ŽpÎzé«/ɶ(äv,ä•R‹…<ÓÛW§gðö¡&œÀá|4%ØÃáµ°axÈGiך›jH™‰ãLHÉ‚”h,­H4qg×ÒnߥJÉm—G…¸?Ó u'%Ôýª4ßô>ë¯6ÌJ‘eÂoE°ŒÄ¡¨URÂée†©àkúÂòàÅ@vâÜLW×;Ô4Õù­JOÂu—J+Üg:ØþŠêŽCüH¼WI?˜Ã¹'Ým™}óÔÉÀ ^°ök%Ô@Y¡ï#Ävì˜ Ÿí¾'cÊHvßåMí>°!T&VÐih{îáà|J0¢â¨ÿFØk ç×9óºÜuO©$S"ˆ"bóv‰v]Nù榧ôÈäÙºl¬7kZW*щ•Tâô†:ñúþ]öôŸÒü¦×ì›A°’Ôî¯åjÔ ÄŽèS‘kÞÊ=ເäUi^ì/jö‚ï“® ¡b|Iÿ:Íw¨_‰@¸J£Qü0óÄØþG% `ȃi ÞÍÂé¡j|ž$éZd¡&—ϸ?ŒY Xd %>EaÀ‹/Ü3ÀÚZÒ\š¹c€´¡jë=$´8¢ÑË|C /G¦».½„A‰eÿ ô^T z&ƒbÒØ†A~ì©·?eª ÉÑ5 }a5X'*Æc¬·[ÄÐHMr’›X-³UxfQ Ôv¨¥,x“¢ИJ„½¦1Ž5r«7ë÷.Kµ‚ÜÊ-süv%­&l¤öÉòÖaqu€<Ì}dÖ:æ‰2Ãx= |ŸD Õëq Üê7zú]æÉ£Á0 Ñ 2º!UŒgÂHØBüõõ£•œ¦~[c Vs»}½¿±k‡?4®æA4!WìÕv5bž¦¶ky¹zšÎ‚ ÞVÐÙ¥‰‹cÜ ˜ {x 0nöðhSsÅ£ÝÏYÈv 2íǺ´v:"I€È_‹ðsÐo`”_”°Âã 2¾‰*DlÚþâ9ˆ+5i\Þ ñ–$:ŽÊ5÷Mu†µ*Êz¦‚ôgÀè`µúU] ×íÍ &"̦<ø?éJ@ÍôÜû¦4¯Ê€‹v,6Ó‚¶ñŠÞ¼Þ_p«N¨L_ˆ#629ˆrFŠà˳‹_ÊÃ9§¹XМ•iÍKÑR_D‘’Q¹Okj C®ìJ ®lzdÐ\K2ˆ ò Ïwg8º&'#‰çæëÒ|SšW¥É@KïoçÞ>›Ã9›xC乌J³Æs•ãú~%š ùËM,šFÑŸ&ÀkÑAsßCQ¬Qõ×i ýh£Lß5!¹ˆûæäüÓ·_Å)Ä’cd/h„£•¯&¤ë2:©<¼NÓ„áU7cœ)W§ºPç3âw‡Ó¶fìMH0$ÕMS­øêföKeD¨‹»HcZGƒÕÓMŸZIT2¨{™ú‘·÷ŸVºhté§ÖU±Ì|7Þêѽkb¡tÀšƒŽzŒŠFW"÷RÄF'•Øýð=ÅyÉÇ‘æ¨û=ß×þò›´kŒàîå2àPOM'_›9mx¼Õ9<ó9 Ø2†Ñ1Zq¹&ñŽJ­Yšh@œQøÚTÈàÞÃî½Wï~¡¦‚åÌØÙ/•B©¹R)”}è¨L¥õKx4*@©@™J‡‘Z“{ŽP¦0¸¾q ¦¤x_uA]uŒ‚ýŒ(ij㵃ûKBÞ£Tµ.T.'‘u´yÄn“¡e‡Ä·ã–×á×%³í‡‘›Fz`S,Ük4¼» îa 0K]÷ôÒ¨-OxZm.‚…×Hl©‚DlR˜æ¨j1ƒ~º ‰B¯ÃöŸŸ`½©èÑyÉÀ3Æqö¬³‚Y°c5"¡qüºê¥úEƒ³×ªYåŒ_äeᮂ¨#7OXSW…ˆ`!³÷]ß<¤ï'8É”õ·/û€•@l£eÌAGÂc˜Rçžc pOS`Ò‘²/qÅÛÂ+ÏJïóÒû¨:ÔRöÅ€º”ŒƒwSùËÏë6î_º®‹’¯µÿc ¶Ãî‘U‡€a£ô@m.!@Ήi‡ ó •°G—š,Ìý½Mª˜Qr£¸{B£&ÅÈ%H–¹çMªu¤}˜‚aUàÇSaë¤ï‚Š\ëó²d^é;`eB œî|e9lÒßø0梽OàG®–•2ÜeÑÄ@¡fLc œ4ù¢Î›Æ.éÇF¡º&Æ,AÄ[­Öo x{fíÞÞe¼*m¼KœÃu³ÖwxDqm=ô¹;yè±ÓËB¬¸ùÇ©,8oÇkHsÃú?¼´ÃdüqSàŲœvçTÍÄ›òuÝ&w0ÈZ‡R°++hdµ#_Owè¹WQÁÕ›àNñ%±0Û·.‹Ë_ËœiKɧeê‚öµt¸yûu C'°Ý‹‘½5J<Mè·ï¦t`µêàÒM/udœ,ÜŽ40ÐÊ|£u$8úÀ¥¹ç §•i &øÇ¤#ÇÙl½µW(¨œšÇLXÕÎz,°©3|g¼©¸ï#ñ‚}+lLŒ€ï”N5mÊz‹·p¯ã"Ö{‘| &fÑãéœDÇ¿óÞ†‰ ]0’»j²Ld [? "›:·Û{æ`rn”FÇâ#(8ÖäŽcAq†à…Éa÷+(‹w"¾(ªÿ6éO‚ .!£ÃÙñZ#¡‘áÔã»NÓ˜‡ÌS”J›Á‡e×έÖLIJkëþv¬6–½œ& ¤à88ë3„Ø‘EY§Wæ:ºR?Ë;evsÁlh3»û¾Z]rŠåÐ(Jj <cdRÐö(üÒyˆ§¨C1p7ïä1÷RÁî…Kr(FéeLíT’%\f£û¥"4qî¥Ô—à phÚkç& $æ!¤¤FÄ´éwËÜÝ/µ5Œ ¾O4úPñìhâA‚ƒÒÙ[_î9F<{ËxšXá éEò‘Öl¤s‹&;¹ËƒïƳ¦+jó]b^?DOÝ/ Ê^‘îI³‹L‚oBå.+AyÁêghDa°hŠ’çs‚ž7s펼E”×aÆÅF ¿“hrã™ ¹ç“ƒë§=L¡VM¾/“PN!µt[º6 iľÎ}é ´”ÀÔshÁŒ+]Cëóý¡ݶÀ¼çX/ îO¦£O«1è9I‡p50ed®ä‹Þ«"' ¸¢½F¨¯êÑyUÙ–žM²á6ƒUÓÍÔFbÜ$&°„ÜqTþ :Vq  p¸’›šÝtXÜçüTDçœ>XcsÎs¡#žt‘IP|y[Èœ=ë™Òƒ~‘™SÇM_œ’ÒVaN‡™e°+‡bñæQ‹ÄE©p_C’ê@’_¿S±^t¹¢XÓ©äT@ì]¥X5{_L|ÑLLŸÈk% Ù{ÿ©Ã~ñó³î®Ò†5¯6Ic¶a]Q²àÀ?«©_ßXHëƒLÅn9ÅBÎr‡E[‹Gý„4dZæŽ!­B èè¿ÞÒ‡TÉÞ¤G¶wdOº®ër§2ÜMþÙ÷VÙê†  SUª=î…sí¦ð;(8Ô? ÔòƒÄ%ç0i"GA~Jà%À•1J65w ÎQ­Â3s$@%f‚•w©šŸW:Šæ•ÆÜ{ø«kú¨A’Ç,ÅöÎð6p3sÌž§“‘Ï^w›IY’ŠE]¡›Žû (K&`ý-â+(Ãà ¸bMЇ,¡SÏœzï4üNÇgŠ€‹ßE$‡Î±Ø+­ãV?²‡ÉçGÈ=Ƽ.ÏÇ?Bîà òmˆ:;2¾óçä¾AÞ$töß '‘ôÞ ·ä »ƒÜ2Î]Ö1û½A®¥ïnµÈ…¨Ô»Ÿ ·x#R¿m½f-æ·­Å.®\¼m {ò±xîp…‰7,ôР wôÖèÝeUIB+†/ŸŒk–j˜;D𣫧„\ /ÓÁÐêƒQí3ËÖâ-ñâŸNw{WŠC´9ü"ëXðáÖÞ!Âél›¸žpÀ;Dø¿ýPïavÖ Ÿ.[v`ŽVþθp«™5'¯{ïŠ.^Þ¢åã”Ô—,J*^—µäuaŸ´f¯t©kJ1!‰¦kB©kgÂd~Ý«‡û o¨æ£*ÇM6;îÖjO r¶ÏßlhŸýȵä2]öÖïÚ+ =æµÌb2l.ÓR¸ÃY·¦‡Ú«ŸŠ0ºq¦íX¦“€Kõ႕LJïa­ZÝ÷."¡ÓÜsJÑ?G˜'íLUÃÒ50yî 6Æzp”õÆHk™^œhpÏÀÅÊ=Ǹ*Óߎ-é©ãR…v…OÓg» £0=ZdÅ䯚׷ÓIÊùRÑà-Úέ)dë‡ÖÞ)B¨jµßpÈ;Eï¦t î·ËÊ•ôbX|&J.þ$Aymž ìu¾NS®ªLcõ¥ÐsöjÌ¥I_ú€C“ˆ®1fržÍ%d~)‚šâ‘ò¿;ù?dبendstream endobj 1525 0 obj <> stream xœí\Ks·Îy+?bŽK—Æûq´“TR)'Žm¦r°}àC¤TIY”ì8¿>ÝÀÌ †»KÊ’S. A ÑïþЫÎÄÀñ¿ñÿ7>\o~؈8;Œÿ»¸>?Ý|úµ a,XiõpzµI߈A(Ë WƒuŠ §†Ó›Í·ÛìãZè°}q²ãÌ8ã½Ü>DZ6Aûímšv‚»ïOÿ Û+؃l¯$S"à!§—°á« ÒéÝöeÞãÐr#äömž}‡döÍ;Ù9-Yà®{ Ù™²“lE¨a'$3ڊċ˅…$.È8«ƒ3ÛrX+¹UßIÏŒf\s:§•ó£)™tþn¡B‘–]\¢­ƒ{÷hü=¹ímg | R'á©ôˆ|/N¤~ˆÒYô(ﱈ®yGö!Ò{Ž”¿`u¥€&8Öй´3å'=…,·ó–\]ìéhä‰e¾Rž»D‰å¡¥S5gÛ†m4,Õ¶õÊ&ÃNÖ|žgß̳mÃvÌy>ö(Kp‹¦à ‘AC •t³(£Áu˜mHqˆ Æ$2f´¡Ÿ€HÉ• ®`VÇ(`…aKºB¨_v4‘j\E&¬`Att<©™ÔÇÑãÐ Òmoñ30ikJñ4§Võ—Ø=D"g'àC´‘ýîYº‰òv{•¼"·ÒwqÐí«f}y“DÒËlt÷y–èÛ<{–gÏ ÝÉ ˜4v4íÒ1ßf&ð<ü~N šLœ…`gÛ.…8)EóŽB``<&{«¥E4$7yLÖ2e…;‹%`´Ã(eÛŠŠA}-âšžïÉNv­Õ›íiÛ!õ Z+·Ìñ§õH¢š˜O­óE~B,›FÌWdw´aÒ{$Ÿa¼ž¾O.–êÐtJSB„4a|£·?kϼƒó´‰‡`AWW,¤q'ŒD(~<Áø¨Dá§é…ßU>ÔûÈB²ëñÎ]ß[&©¸…·¯Ò¬k³ŠžÍ¥ìdÅäׄÅ/ÒwB>÷ñ*ÒÜÔEGº¯JÄìï[Å5ú«~M·_ÍQûp¦®ì!ró¡NgKŠbqlæôó¤b(Mon³XÖŒµMVÑ™–*³\çéZñ¥Ô,@X*~#niWäþ7p~@ÞjQêžûU§/×Ã1w ¹ 즼6˜Ñá0ؘϳoóð6/8¯×â0h«R8 Ïû’êá†Ê´½5JcÖ‘ïH%|•¸uºi—”lš°µW“;#Jge¡[Óà§*õ‹"R2FññŒ¨ˆŒÑ® ñdÓR¤¸­bÔÈE•²®Â`Ž.ÕÀɨâóðM¾ÍÃÛ<Œj ¥PЬmÛ9ܳ¢ÍÍ¢\µ¹¢B‡À%ª })e4¥”£<_¤LßkÑs»Q¬Šé÷iPý˜ŒŒß±¼‰E0A ?œ~±9ýäÛígȤœ,ÀŸiŒ@ÛcÀ€2ZB}ÇdE3]MµìnÁ$¥ù:rBJ¬Û1ãäf ñ ÐÜ$6ë­0‚5Ö{‘ª4Ì.…ÊÄÛáwÞ[(“#\0’»brL”ƒ† ÕŽ™͘¿a=iþ&¸ÈÃ/3DvÚ\ð—¢ޱö°ñ` ¬‡ qòq˜™'Žˆ¤˜Ñø¶À˜™b)©ÔIý~‘I~‘g?ÏÁö]Á´#PÞåzUo°¸Ös4î¼Ù4Gm£Ô‡Þ'[“`£XûBDGå©ëBXáx³˜È;, öWpòúµ8_ Ï O"BŒû”Ozñ]…ûâ¤6FM³C¡Äǧb¡ô©eÃBòƪÈÛhPºè\£úÒ1E=,–ŽÉjo?šEÚËâ*ñÎkž%Qk·.`Á+#^0šÝÒ]óš]=‚Z\Ae.-x×)?ð'sÕÆˆk6íi5O·5 ã‚ÏѺd¯ R Ús )葽EöÍ3Ǹdo!_Š[0EÔ!.9úaBòMvɯ›.ùmå’káØú!6ñ,øà'æùs2Y?5ÑŒÓwYP¯ÉôCÁ0Fo7 ð¡Ø*!L¡üeÒ5AB­G ·Ó{|BAƒ­! 1hÌfÆ^H <ަ™#$ [0¯=lF¦¾iø¢Ió’ÞY.°£kûÝ6O¯°( k¥3,‚òs5Â"% õ1,BØŽÇ-‹>ÛŸE±Â ˆö£3§Í>)–€ƒðh§+Ä¢3­j°_;ͦ',¼äõÙû®©Ú÷•89¼ÃEH´¼DoÀëC®G »5ŠPƒzž9F„ÚBàˆ[0[¢I¯Ü;ªÄÀޱ(aËiöySk/À5÷¿;)Ù/¹Æ¾`?æ2Â&öß7¥|—½ÅÛ‡Ô€¼kåÏÔž Ê–NÕf,™ŸIÍø²"xÁÚój·Ä˜çÍãÞ4yO¨l¿É¿lÒpÛ$8Ú%—ëd—–‡–a‚Ûw@êP,qî„ÀÎ3}•^VâYô^,¬­ÿëEÏ®«ÙÖëf|Ìv• Ÿ~mÁùÑZ©Å—HçÚI5¨”ÎhUà(Œò²Ý‘ë¤ûzî;}RË«9 qÜHõ8ºóšcžI7k“O†£_è§?B!ÚîÄ#,¸ÂDï#sƒ‚ôºƒ¤Ô]ñ‚¥0MyhZD º†dQcr¹S»¥gFÀ…£ÛI¤®v«`ùÓζÐkßCº´bÀbˆêœ<æË»Ëía*ÔјÒf E £l7‰=Õ+c£ÄÇSFüÝc€Yyźà/!MŸz~¤z~¤ìµ#Cltùw‡`†ÇýŽÊÜBú‚©ÝT¯øïu`/Þ\tq=*z*×e‹x4D ï÷IEGóU¢JÆwš8TAŠUˆ~S!Ÿ§ã§¸zÈF"Û4PÂÜøÿË „H‰’rÔ´m;rI‰iêô‚‘Q‹ºl%#Z½nÔ‡tÛÙœQ%*Bȹjœ?„¬ßµÈ†tul5r¸¾×r_¶¦FJôØúÕ”.!ðQŒ+Œ¬7‚Š>‡â–¾ÏÔç¤0‹­6aÖiÝíç ¼¬¯ P„WMƒu?{(Y¼úȨ<ávˆ*¬¼5‚'pú4sL›‚'q #ÀJ£iðxg_äÙ¿=°¶ay2gCK>ctKÒ2©EÝ¿nB÷äAw½ Wà;¯Ñ9ïõ2†YÙé´!VÔKáöéxj'D³“AöÀ—Ÿ¥[yUöv:À;´6@fË€«k/ê$!N‡~wtÝèË]hO{³Ü\C±-Ö¼A\b›¿ÊÛïTý¬èZoÔî/³vŸæÙô9é|²ÞجéðÅ ¡O­¾fÎ3ÇX¯ëI[0d±Þñ÷Uˆ9úªã5&ÒmíD’o¥«‚§j¶h欈Õm ‹¡ÊéÅm‡¶NR®Noþþ£zôŸžÜ{ô×óôyô^{&É›ÿ8ñˆ'G¸_êÉ?VzkðwñúïïÃëÿâ?Àë?øQ4?þxû‡À <NŸµ‘Ç6ÌîßS€ÐjäÌ+%Ç!Ï+Ø*a]òê˜&nV_ÙbÊ„.9¸ `ñãî_a@{Wƒ¥2„Ìš…yâÉ|ˆ[°ØÀ³Þ_wèXùG.jæC> Ùºûh™Ïµ†4‡0œx ó¹†jÍ?Šù¯š zè0X¶``kP -˜7Êß:0>xF»3Š6L+>LÿÅ„ þÖÑdÀáý3ôÇQ¸%'ÿ’Z¥õÓIGõAþ¡˜´‡;Ç…ÞŸw¥ä±Õîãm’©ÿÙ:İ‚'ÊkRÉ¥âÒÍÃ9Æ}µù*¸ÞTendstream endobj 1534 0 obj <> stream xœí[Is\·¾³ò#æ8J…0ö嘭âJe)Û¼Å9Pµ”EJe¹”_Ÿ¯·40xœ…6ã¸|ã5€^¿îÆ|¿‘Bm$ý7ü{us&7¯Î¾?Syv3üsu³ùÃÅÙ_•6I$¯½Ý\¼<+ߨR^¸è7>¡‚Ù\Üœýkû§gçRødœLÛëgR£¥SÛ;š¶ÉIe¶W462¥ä·òØÇ¨¶oh’Ó2lßg*Ñ+¶i¬‚r&UkÞºuÆ8»½-Ëm2úßʼnuªOŒ± zsn"66isñG½-Iaûš¸àbÔ85Õ% -|Àii,T2™È7 ¢\Ò1lÿ8ÿIC‹ë¼Ëî‚/§!mò狳¯h'Ÿ6¯îάnó#$òÜX}=ø)‚ÚÜ`ÆcFM3oϾY–[}òInÉ ›IX±e–Ûå|¶óðj¾îÞã&_Ò'™M³oçáÇyøcuç!yh‘özd,4C é]JEÒÆ›¶?AkTQ E“¦(†1Q…X´aXaâC|½ý ñÛ²ÚÆqþòŽV{Eªˆïj‡—Aú®zø$b²êêQ†+ê‘Ù:©‡+„QL`6IèxŒ*€„H&Ôªðû‡«BW:í&9fËÁG+¦2ùr¡^Íü­–k¢1Ó§dù×EbNyò:Â!E3(ŒÂ¹FÅ0:x(Žf•¯¥Ë$º}1ïBW;×à9ÜÐæ\iáÈfò•ø×ï°«Å}Ü>Ïä­öÛÏ…ŒÖ J¢-øç&²b{Ň0Û{ß5­ë±Vh3‹äÇÙñq»iT^[%B k–@K¼s#Û¸ûŒó\ö\°Löo˜)¾gd:Æ×0_p[X“á³/˱œ[ϵ9ƒC5à÷*û­è¾š)¼.rôfMM´ÕÂ]]‹‚ü¢Ä=´Ôãµ²zsos½ ê×…º ŠŸŠñìrž}ÏÌâõÀç‡Ù˜±\ÑÅFí(Çü·¥ ×VI: ë¨RËæÉ½å¹ÑJh ‰lOΩ%}Ì"YP¼¾Ei’Øäv?ͦqÝXI±(f;·óðù>•”œ,Šk.»>9pÜ¥Šœ±ƒ…XS¢Ïd-ﺂç«Å³skþR+@( /r|w™R-ÖOÙ0ˆ2iE NŸÂ´î 5¯bcÈt|Íš Ê7”ñ±$à+jtP´bÁÂò„ôhº;1¨ðPÑÙ‹Á`õ¤··…8L¸ê°dXBcF‡Bàªôºé¼Mç]7]ö¬¨o:ۥȃ߮¦3ž^’‚!ª:„ÕˆûCHùá"SrÀR¸]”näS¾õ‹C$íÉݪ*iÊgj\Ù?ÓèÆ‰gÞ.|W°U©ÚzÉç-;àXÔª}¾ ô,Õ—¼uú®œTJB-6¹: ññma_n)Šó Ï,£œË夅ߎx!GÄßñÄÛH”oLµ'#~[ ÈkÊüFmz>ƒÀÝØŒëÜ`46T+³‡»‚6ܧ(‚Œ\®w4›ÆJ‚\¹Sâ},ŸÚ,9ïÚiÐÄúÔB[ æ~㢔[Þ`–Í4s@jB§L1–ÔâUé2ßÁà-½Ÿ³ÌîÚ®Ÿ¡¤(Í í¨—jÊõgºý2 ×ÂÃ,…å›B.é“DÃFóŒ„ÚH÷`(˜êuQ0—T…ûA‹[éäóï¸ öq$ŸgPÌK ¯+KçŠ<ôé\%!©b“E÷u¶K­“ò¼¦Ä CÙº†‚«)‘ç"ýß?=óFȠɇÐwù®)h((qýÒU?|ŽÅ%]:u]´!I’#MT HKÝ4qH (8‘pTgSö‰÷•€vÒÐrd?i ˆœNHÐR®ÄKl9wÂh“¼,ClW™äË‚ÚL£ó;H~Û?‚‰äÓî‘rÉŒµÙÛÐ}½L8Ĉ‹;ÌÂy”ÿXhØÎGÏ‹ï…ÐrHK¥ÍÏÃq™<ßE%ù8<Õãd8ë­!ëœe:Vb&*/†Ì©2ŒªÖON›_‰¯óš~¤˜ÃyÔæÀ ¥(Bœ[‚9vwßtׯ㚒¥ø'tèÑ Îl\îŸ8òçÑgG>ÎâÐ#Ð|!;é½zöâ_¶ ²Cÿa9«kâáe‚‚@›&Êï®Í1õs1µh§†Mžf}ÞöÂ.ô>VmŸûÂ1ô!Ijõ8¸–@¼éV{ ×0û\Å;pá¤)[ÝX”ÀþÀÒp’¤iæ,-‹’[çáPöoØ<@¸çžÀD´Ûo·™Ù.ù`OÙ¾šªäŒ/FB7Çð$éLÅ—=»ÀV1&Ê E€ïÐÛo«5P%„¹¸©–ìÃÿ¶h_øÿa¶¾ßMÃ!Ì9¡¥j£Íj0L¡ï*ÝÎõé”26Vm¬µuI†àÂÄiæZ Ùe@`ýÇ|¦¥È³”–u8s_ÌÃ7|í4d­Ë™ûogîû¬a?’9K*á©æÇ>VOÈïfññ>-xÙž#v¯ò¼î.hWåjBe¼/šcv>ìÁõë.žÿÐ,Ø9ãý]w¶ÒY~âÊ¥HôVÍ>+ÖæÊa÷2Í­PòÅ?®˜fÈjÓ\ 0=ž½ê²ºî7X…DH¯rዯ½ñU½£Ç–|)©ŒVÒ[étÌ 8g⯚RSAÙ©F{RkkŠ€í´y†žG+ Drbm7hg8ø‚eœ£(gÑç(g†ó>ùg/ÈšŽ}öbáO†é…‹ŽHþ­_¸h7ÍúÂÅX"!$Öc¦ZKÚÚ£ª_È8ö- Ò)½Çc$«rµé±Ú¢Ç,ô\êôY©¤gR7ðn੃1§–ú)³èIï‚Ç,éK:ÕcR€¨\§Ë@ôÊK-)׸߇¿eQF¨h«vÞrÎ.,n?[ê¼;Z~ËÒ{; ¡É¡yUÒ¾eþÆ·,8@Œm œf½×ù1‹ÈCâXS4q”Lqjd _jdðŽ(/ ¥¬`|áåRaÿ~?ýÔÏŽ eAºÈífâ#à…íKÙšºj¼ØÚô@§Ûª¤ 8ÙbB^¹[–úú«ü_FV`X±­ÖÂü¾mØ9lwo .jDî †nÿsÝš ¾[£#. ÕÜ­'ŽèÖ€„Pêþ»;ŽöË} g|ˆªgŽìËD82is_CÕøGêËÄHbZíË`‰Ôú‘Ýb>Ÿ2nÈC"á©ø|$Ý&ÍCÚæð]᪽þƒŠªÏÓ¾NJ~móf–{CÎå{ y¼G$?€HÛ^d‡Ý§ëÓ©úJO¥â§éŸ¥𙟰Ï=qæˆ!Ú ÷kjgßø·òÒE[=`t_6Îó×ÎÈjg$güÒ±ÎÈ8sDg$( Ø?Ó?XæCSñ æþrÙ®Ã-£¬$;˜¹eTT9‚[†žzÂ5WÜ:¤a"×&0@„Ó‡7L ˜%¾ŸgY)öÃ<Ûq1åõ“k˜Xzfà™èíH®rÀÒø÷A5,+SÔ’Zï–h*€*µ ÎŸZ}ÏL¾gŸ?„õÀ¦@Þí[ä§Ãz„U°‘ñ~˜8†ùÈ%åØo\b~e3ÀÒšU›'ãCm3ýNÊfa\Ï"bîërž}þ0›™pÚÓœs¡²™ò÷1bC¦Ÿßý$6î“Ú¸âmWhÌ®¾;‘ЦGÌOGh@¿HU™Ô†‰cÄ–úëº:VSÜùåOfèÍ/×Õ!_#853˜8†ù†œCmfW·à¶£O¿V£ß¤æ–~túgné÷Ç®€Îr« :µ@ò^νûü ¬f%ùÒ%˜‡|ÿêì¿+`œendstream endobj 1542 0 obj <> stream xœí[Ks·NåÈò1?`ËD„ñ~T%‡$ΣRv˼Y>õHHIi9ò¯Ï×À ЃY.¹¤äØ)¢0F?>4º{¿]I¡V’þ ÿŸ]ÈÕóƒoTž] ÿ]®þp|ðéc£Ò*‰äµ·«ãgåµRÊ ýÊ#T0«ã˃¯×ŸIá“q2­Ï¥0FK§ÖW4m““ʬÏhldJɝ߿±Q­_Ò0$§eX¿ÉT¢W.¬¯i¬‚r&MÖ¼uëŒqvýª,·ÉèoŽÿŽušrŒ± zud’7zuü¬ƒ€–Ƥ°~A\p1jpM¬ºdc¡e¤á´4*™ Lä+Q.éÖlÃÐÐÓVy—Í­CÚäOÇ_ÒN>­ž_Xð¸úù 7V`_o¬Ú­.1ã1£êÌÅÁWËz›r^õ–¼°…„PZ½4ÞÞ¶áY¾hÃÏÛð:Úë‹6{Þ†Œî³É™7”äaEÚëQ°° %¤w)MlZW…ëb†&M1 c¢ ±XðÊćøzý SñEYí‚ã8yE«½€!MˆoZ‡—AúYóðIÄdÕæQ†[Ì#‹µš‡(„QÌà6Iè¸)€„H&LMá÷»›Â¬"u7UÙóCðQljP™~¹RÏš|'ˇ5јú)yþyјSž0CGR4ƒÁ(ð5†ÑÁÃ0ÀšU~ª]¦ÑõÓ¶ íHC怡ՑÒÂ9Ê‘ø×¯° ̬O3y«ýú}!£õ‚‘`ÆnÑß+Â|ïMç{ýg³±^(cÇí¾o¸Çݦ³xk´00ø-Ž@KtL£Ô8zFíÜDõ\¯Lõ/™'¾adf|;¯aPðjäqÏŠ>$kQM˜øûI[{Z,&(51¾zÆ82@ÛÁîœ^2jþ%eê_¦Q@Ö@ü\¶ŒÇÁª“œå%»LæÅᚨD²—pË?ß”>yÏIó6{FvìÀâ"¹³C23í;Vs+ˆ1LÍn„ðgÜÈ©òÁóvÊawBwö*²ÈHñ_À>+L[œ ’›Î’Ï߀8™ÎqlÄqàu»9ÒH¤x&v™±Bà p„˜Áü3GVÎ")˜èòWƒhµ:Ò`ÜË!žÉRRªAß>yï×ïÚ,[ðª-8m³oëpd6òmµ£Ë¢†>¿ÈBqRÛqµâ«½Ð:*3®VùPܦ²Ü'Ç—ÃHw€Ú(¤”!ÒWëñ¿6)k9«ÊÇﲌ½ñð(Ù´\àÆAÒ!¬´Hï(|d’ÏS‡?ŽZ(M™½nÓ6<­ÃYÀÇåIaÇ_wpí]à«!æ€Ë\mKE¯­™'.¬&Û–³ý.€íDÇÅoæ·¹“Kïà^á‹ãüë ï$0ä«ÅáQ’â÷$édF›ê‘Ôa²t‘ÒÅ×Á2!€1–´l£*Æ ,]•ó.8†ƒã.å~ÇF‡‚KóÈ“PeCÔ† ÔqiwóÐl4‹£•ü¡ßýÖ ‡É 0,œ´ë?Fû€ô¦¢6!ˆà§JbPYðÑYE Á‰… nñ¦+ @Ĺt/Κ­²€kͶ3ÄÎlq‹á*Aí«t/;†*ºÑ²i†lÑ:s â×Ó×ßGL/µàøè›Æ ]µ¨&¥ÇdÆã|L­SÎÕ /£å½‡ò«À‘Þ¢^ÓÜ'ù>Ž> *ÊoœÆ|¡oöú®q‰H`̳¤ýç³ÑÒÞ3+`þ3õ²óí&—ƒ-çÑðUÉk'¯r’Cà7sʯ;zêl-‘ÑÒý%Þ‰ "í‘l_¢ÎøÊ‡‹T1àûl"m9ÅT.o"8Ùž]Gø´”]¿#’Ì”ÆÆåî”T†> ¿PvÈ•P'¤¶ 7<Ã)‚ ´0j«q€;[8Æ q^óKˆÓ\*â¾/ì$­Jj{XÎŸß œ —ê£"Ö7•1¸¹5å¶¡:‘”_´gRò57‚<®=°C¹~O¸:„kñ°ò‚²›ŸuzþIE+Y 9÷ÆÑàŽXÙÓ³¹{!z_¹ Gzªf”Šºgþ¢ƒÝÆWm–·î¸WŽOÂÅàSa£¬·Y»ß‡Œ¶v©äiÖ¼Â{]†Ûf'½.7ݪT™‘ÔßBéì1xÙÎñª aã€/ჾGE#væé•U<“¦ HS¹ƒ¦ABDANn¾v7´w;Má%.<ÿɺMߺ£ì1#"##EiLD†Šv/„™Ñ-û7/EJ¨ÀN@i0ž_OÖ!¢ó“%·QÅFÛBvÅ·Mb&I"\VÏQÕ]VŒöëYã¾âÛ@¡TL÷Ù„c B@€„ÇiEJ´ÀeëÌ]”hp¨X”ø÷ÆÇwmx 4Ñ’n#¼¦êìÓ6|É×Öá»>¼ÌÒ¿X”>â]XVŸãþÑHßD0Ϥ?Îì!ý\|òfGé¿¿Oé?9œŠ_K<®5uQ¤¨YÅfÃÅ^7°¾ž]À|ðYÇGùìF×e'9ŸÕu¢ZX\YEŸv oHö´ ™\Øv ?ÞÎòs6«…«ÙÙ‰õÎ1œa=­lÅ1욢âX§ç+¨P¡¬qh¯Ù ŸvÊÙx-ndȃioéÊŸ“ØóÙÛqÚIf•ˆFù­wç½ñ]1¯Š¥~“Ù‘Ò†á½ã£Ö±ËO;kø;õR*j+[‹ zŠ’^ºOýÔ%z¯@¶M¢õ¹‰E+éÙĉ±ÏÞΘmRÞȧáÙhsi—‰sƒœòí tÜ¥eù¶Ï¿„7+ëà©ú•»×õçÔ™;u¯Su9€Ťñ¡_S‹éKךöÕ—î­e]ãí•ßµgº”U—´ºUÏ:õè]~ÒpÛ€ÍAÍ>00ŽJžv ‚¿Ì$˜ìݳúÀƒ7­kD²ê¾šÖÉðT^¨ – Ò&ê}èÀx÷žue¨O£ÚúÃ÷¬;ö퇛Ma»câo{é×(‘’þxMë%WjûV£©6EåâPáVaõ¹ÏÊ‚(ã¤\6“>Í|¿(ËÕBêz(f©ôz¥é´«·6õ¢Ô<>ßæ©´“&±`iK{Ú†/Ûð² ßµ!ka»¨³K­ƒ!¦jñ¿$ö¢4!ÚyöJ›;B«AŽ/‚a™ˆ¿>Y×]ž½lÃwmÁI›½¨Ãùf ŒÞÖÒ[n¤ÒhâL>çñ f›I~§–^Þb°Y<¹¡NI´ÿµ:¥ŽU§„!R/n«SŽ{Ô)ABén_§ü¢Eõ{‡FBo?“¼·ê$µL)›ýMŒ‚~Ó•'©Ʀ­åɱý§Cؤr‡õ®ÉïÌ^¥BÚÒ+ý¡qzîWtĉI“¢$+`Ž’Wµ§;òN%ÖÍ”C_¾O'~äZa¿Kxv®V¸µÙöµBÄ&*~Àbá˜Ã¸]±°­þ(ÅB,µ°bá8³G±$ð¢·[,47¤&ÅB ,~æÅBEOùY±pœÙ£X"ÿLì!ÓæC ›ˆÆbá"‹…ý¿X8ØùÕ«°[ÍÊUãÌå*%½ˆ»V«~ƵÂd©m40á3{?Y §û¥Âm¯5‹ð#!â…ÚqfáGú=][;Iÿ‡û”~W¨Ýxô@”B'éWGAã׉Å_c£õ8¬Âúòà¿Oï¹endstream endobj 1554 0 obj <> stream xœí[Ks·®Ê‘•1G*¥…4žÇ$N%•*'%™WÙ>èa=R$%S”lù×çk`fÌbw¹Ü%¥Ä*¢0==ýüÐÝüyB ’ÆßÏ.Näðòäç•v‡ñ׳‹á/g'_=&ICÑig†³'ù5(£… apÞ²z8»8ùþôݵQú¬,ßðÒI«ôéu÷À«²|Q–OÊcW»»(ËŸÊò]÷,=X9 æ¥?ýá´l?_0œ—ïËòiYž'Ö”§æuoËòªËOÅûë.—¯»<\vþñìŸ'ZF¡•VJxãdΞC jÎX=Xš#?ž_锾ïLÒL‰Šuš¹J˜i’¼¦™1UýÆq Hê'•M©f=˜ó pT‡:Ã=Ûð;‚UZ¿H²1Ï-ͼOëœB lÁðwÍÇßo÷ùÑ?d2ÀËãu¾ ‘Ù ŸèI…S•áC{å“jÚµ¥ÕgD9Ó´ÚÀ#H!ÒqÇ©òÊmXT‘Ñö·ã¼Ý ŒøN©¤>þWB Œ3FèƒcùÍ;·‰ˆÁáœH­÷ ˆ) îs›ýnGMÄE\‚t£¶ùŒò+éécöÈ`æªEÚ®ŠuícÌ`0ûÐÔ>ve6$!¹Þá$BÜ^JZ!Ꭹ¨g„Õ ŒŒäxk h$ä €¦[($øŠ®Ýúª[|ÇÍÎÔt;ö¾ÙçwtDD20RªDDJ±RH™HT"ÚófÌBT[k®ÆgÀܹ¡*’Ó½-²¹.»WewYUÈ/N/Ò˲Y¶fÜ•n¯Y¡8nˆG,Ï@så@wx\`%ÄeæÛ(Ñ8dŽDã²ÿUø¨zkHÔf*Õîzôe‘óe‘óÓ›H˜–µLîŸôƒá„\KÜ9Dú×n£¶K¿ñNýD[ýVŒ`®Z¿ÙGsU˰j*<-»cÙ~V6œ¸ƒâùŽ3Á²ž{~fýæ_¿ô›¿ô›ï°ß|C·[.o0Ûî¨ýô›÷‘hõÕý@öÕuô?Ó•áî¨VÜÏ»ƒ‹c4$ bívLHP7ïܪêûhˆÆÝõ…¢5˜õZZäËü±¡°DÛxÓF¨Ñ:•ˆnÛõšãú Îh¤ÐJÿ„«Páýƒ„ÐÚ·ú?¸Iý½µAYadì±Ú MM/5ѹÒÔÄܶCº"epˆöèƒ"’{XÓýõA RmnƒVm´ÒUNxk·˜ùÃUü„mPeEpË.(6aU²ßú"µÖ õɺªÌÅU.áZ«[ñÕߺ©B¿èÌeáZ™K9yáÌfŠ5•WY¯Ñ«º2^¹\®×S4M½ö³›ÔëGø²£Á‰…Å0ÝŽöðØgbÞ°½?ÉJ+’pƒ…µðcÏfpqúèÁÙRÃÔŽÝ(ØÜ5 )¬¸b…@a‚^ŒËFЦí&8Å“9R5&Tåwù„ÒzNhm\-õ‘iR1–L”»é¾·/Øc"™ÂÇi¸Sõæ ¶&ŽÃæ פ6é6sªlËyÙ Ϲ‹‰ˆ€dÄaÈ)Õµp] jÚ¸UYKáû˜Òªß¿ªU}ÜûÖž.ÂÚRHF:OGóèÃTXþ´£ÁºÑ%!W£ÓΣJâ‚%w§úëtìÊú;rÐÑaU #F)B8HЙŒ®Æ­†ìÎ!F„Í‘w AÖM¡ª›Ñg$A­WEboËnÕ›»*»çÝ-SÇ«²Nê Á2ýJ]ÓέÕåAB¥»IYS×›î{^~uÍe½Ç&Ï”³–N©'5x([Æ4yD;zÞ¹M-¨(2 *éwϬHž3ýÐýþî„ÅÞ-XžYA¾8tf宄ï /.áO;ßq¯Gd…ÿß±9²âvvz#+k7¦% ï·Ä¤‘‡XЧœ—³œü'û¸¬endstream endobj 1562 0 obj <> stream xœí\Ér·Ι•cà?’Ž c_ª’C'©”+‰-Þl$J¢“´,ʲ•§Ï×À, æßHÉr*¥‡¦§Ñ{7ºùýF µ‘ôoøyys"7W'ߟ¨¼º~\ÞlþxqòÉFšMÉko7ÏOÊ;j£¬6ÆV§77'_žÞ¨K:†ÓËùñ;zôÒ)}úº»á›ùñùüøx~íծר‡˜Ÿœ{©„ êô«ÓyùiƒZç½éñ:#¡‚ §ÏæÕ—ó#CíYË],_tq¸%„AW8Â__üýD¥ ´3›s%‚õ2m.ž‚ÞU{œH¨nª-_+-¥°v•J5É纜iðMKE8•7¼žW?žV ¹s%ƒpÉáZ8çTAï`^0R—/¾c^˜´`DÊ«TXáÂ.NŒ;8#¾ëâ|õs0Âè½à'Ÿ_w)zÕeÄ«ŠV‰hôVyýä o<·-]ÎØHiƒXœK‹ c:½¡gçLÔ¬ÆN… ‚6¶*CyÓ=“³›î†'½ã‚fÚ‚j'\>+j½ú?A‚²C3 }²A'Sñ=Ú« Æ^{Õ}„æÖT6Ð~F ©€¯¾Ixç:ÿ97'Sþ†1Î †Ë69© ÏF¦”UK3d ˆZW[fxÙkëÉH4vøI†nµ?}[pÕzEHôפ8Sh5À+âÍ{9¿öº÷Z—eÞà­F„~œÍ׬F' 2iÝ6U1Ÿµ‘ÈÚϨ«dƒ3žÉÆ ¦«/˜Žúç=ÌZÜ8:ÍWŸ´$œÝãC£*L¸8>aŸöXZ<«Å4ƒQ±ó¤·Rh«1Qx†É˜«{9G¼ß´éA^}݆VcÀ±KNÏjÆTò’ô®ØŽgÍ:Ëõð¾ Û*\ƳIPß3)$)]Ö'GñO/ªì‡eL×w…ék¾7š0qöå’–ÄÚï`bÁ[—ª“¯ëS Æ›»B ‹ÌlW‘šÚùãVÑ‹Ôy5È` øYì}åë¹1[sK o@Ÿ±·´Œ\7¦žfAq€Ó×l§‘k¤Š½…O·³^²È馫­çÕ™Ó]öžëd¤±qYKâ‘„3:>>ƒKµ‹oÏ"ÞÔÞœŠ³süŸÈ×ãc+ðñ¾Ó–þ`²ûô"ز$¸ÙÀábâ±á»¨:ÿ®eÞJ+b íÁ¦O>]=ÎêWépWÖhµÇ™ûjÉá]Í;êÏœid6ÙŽ?¸.q½v¬—8Òþw"DîdÏGœ÷Ñ aBD8W=C¡ MÁ-ÎdEˆØ™Q´ a>>Ù@–où*k>ÂKÓxÿVvåãáÄ& ±^yzv»²çŽ  ÄzkÌI ó®¶b<&œŒô·c‚oã6¬F»[Ú˜Þ”.eKÈYôlI~.ú ÚHèš,'[ɰ¯{‚*h(JðÏóØj‰}`ˆäœÓiE…k köúAã¼²]ÌŽ>W¦=•Íâæâ³“‹()ï#Âå®áA¿U$l„1áÈF§È–Þ%ÕÆü™Î{N¹¨ÝW‡ÚýpEâoÞJ„Ô¦b´êâÖÊJÆ$¬‹{y¥£+9£E÷Û©Ü`Orgßç5Œ›­áñ^‰ÒVPخ˞ Y™MSñ*«:s­üÍò èRWÆeþ~ñ„à jµ¿!«-ŒÊ5[¹û3ÊP½´"8ãÚ¸ÃÔç¢Lñ¥JçS®…Kµðº*Ðñ`~°¥>Ö¥ƒÇka½QV$›¯?ç=¥€£tvW¹F£o}8x3Džü¿k¿AÈK¯ûUaåɹºwP4\‹EªÞ`Å+ª+ÇT dî^þt~üi0^ô"~¬Ä!„#µè’hu•ñÝ™²Ú5¢1©Å-S¿«A*­âŠ3ÁèF£öÑ‹R÷Œ{ý„ín«Ú’TíovHú÷à,á\¬ -Œ B>*®«k]kÖ–hk´ˆˆç×ÌF£‚Ó1ƒ\¹Fïf4ÞQi¸Fú"ƒÖ:)ϯ‘ø]P¹Æ+wD쉤h…ÇÞœyð5h²ô^ŒF+ËÒp‡Äaôo«úÚ>âL±Ù¾ ì„ fcµUÂ{ºö HÊÝ´pÌ­Op"¹Pov*}AyqëÓÖ.vgŽf–?϶ËtV6¶ý¶–;ƒ<T:•å1„Z‘r˜OÉ„ÞÕ[ú!‹HÚÚ0™Pö*1Pa>¼×Õ—&·|WþFn2±þ .`l´Dt,ý€0ñT•Ǩj{Éas9ê$=ëvT#æ¡ü° ƒ'Š„S¹$Ìî¹þ²š—çÇ®´xÇØ=ÂC-_D íÆDG ùÂ[aEM+G]xÃB¤ ¹…¤ÕááþßÇ€=oìaË&Xa- õQE‘’œ\Çì‡Þ5vêkÈˬÝwG ® z«îˆ].LÃHêˆð¸¦íÍ&ç°MÂÃÆ>£µÌå£Ñ ?ÉÅÁóFÊŒ+G0 È áínwONç>K+Ëû,ýË7:$22ˆpEwi÷"@Y@Ì$:°)¯Æ˜ÔÖ®, ñ‘‚ÖMX{²"Ç/gÚ°®>vóÙ¶OÁL(ßö£µ ¹ áf×󯉡 ¸O™¿Y“©€î¬™±¿Úòë1쳞$¿/d …}ÿX)Ã'@@¥Zô–GVR¾ž)|ÛÆv;胙j½ñ‡CwI šã¤VîC}i)îßNýJcÈÿ›íÌàh¢KÚjK¿a÷?-?÷º;ܪ1SîúÁpNÃW#ådœWîÁ9$”"Åzó œ»îrŽÑñÛ874cN¬£%kú!÷Œ¶²ò~çܾ¥i½æ¢Ùÿ9 eZÙ#§B*gŠNž¶m…§UðîðÁ;iÑVþçíÑVvª1ìéìZìåìr¶6ï“¢ýY‹­_9’ž8£Dú9Ugk©?tÄ ˆ±Ñí÷uj-÷rjÈñ¢5M³ÙÿœÈÀ¢C ÓȤ=ý×½™ôà“T&yàIcu…aÒj§¿Iï3éXAÇ©#ä‹Õá^>/YæÆ_šµ*eà;nÀE?uæûô-=³çŠîgLÛ'ÿ—³¨ íuœúŠrBlë¾FfÌ«™ Ú ¢Uqé’Æ»µ+ð®`ÂJgŽLrY6~ï=ýHrâ ã!GÓÑjWJswËoH”^×=¬'¬‡b‡ {< éù]ûfk=¨T?O]ÏúÏ Ä›Ùl° ·=[Q‚¬ífCiN¿¦ù I„6A±(ùøúÎâ¯$|ÙVUjš6­„ Áh0]X¬­±fB¬¤®€3“@cu~Lj,ò‡1V·¦î‰É½¸Jšµ›Qñ¬nÍVKSMÝ-´ˆOx7ñS¶‡™Í’À9©ÉŒwxu³mntrêp½¦›fÜ.'a»ŠÜ¥âÔ¿`fNþ–n;£@VZW Þ¹ •»¼C Ôö³h!»Å¦:ö€€¼IÊçÒ‚z‰‡5Štgb¸‡QŒˆã\X¡a'ëW!!†Êwêî ?0­GØ—ÜšÖç?±uú¦0»N\˜·Ýö´{©ãY@Ý º¤”à‹–zÙ’ì õ£íÕùÏez{εhº_Ïeu‚r¦P°TgL«æöûµì5³xÌ{Œ(éŽÔ6»N·ÊÔ…¸zv‹—‰òn¯:¼Ì_ç¼äÏ-Qm²¢«;N¿¨XÕ§' Œ{m$i59“(#1БY‰¸ÌóHª2éÕR^®\võgÈW•ÚBÖo­f HÖ²¿ÆÉEw¼+Ý2G霂À7{|æQ-0œ7¥4t¶”ZÓZ]àÅ‚\SñÈÐð„;õó*ë=µ‹å Cƒ Bš‰ù¸`壪ôlª¶ÔýÏô9ŸÀ´þ oÊmR ÐÚhÓˆsn”•uÒöSA¡A%ü\S^2‰áB5 B¸´pÿ„_XW«£H?2öcôÛ·ßïØóÈR¿ÒLzô8~©Ƽ³ G‚àØ„Å¸p —ÿŽJ:|¢`ŸïNï}©…øÁÇ.Fážê$ô轫Tå9-#irÛgi‰ôÖÞ§’½f¢WZŽ›ês:ßA0¬4Zz…Ϙ8_™–zÒmäÎ~##ì7S ¾–Ød€kÓÎ;¦9Ö®ü|Ôœ¹7{ìœF¦ë4§±-Û©æ4´HjQ(> stream xœíZËn·îrp?¢—£ C³X|.óB‚,ÄÑ.ÉB‘,G€d;–ìÄùú’ÝM²§gdiÆ’ì^¸P`ÉSžšÒŸÔÉø¯ÿÿøb!»ç‹?”´]ÿßñE÷åáâÉS¦Ð¬²º;<]äo¨#"a;ëXãîðbñËÒH¡ ³ÑKq°’£¤[šy5µÅß¿[J®·Ôø†5v=<Á.?c1™ ¼[~UÄ£h¥!µ<œ]ðÝ(Æ=¾9\ü7²¡{~¹ÐBšî/ ð킼wÂëx1Ît  šóÅÏ›±j>b·nÁ:*G{]Äã"þQÄêF/Ó=a¥ùìM/‹¨š+¯yråŒP’C·"/‚—aÀ>²Þ’qËw+Òz­—/*õËâºW•ú2Ê:°ó~yVyº×I<ë_eDª[±Ê{ÎÇ8+÷xQÄ«ƒ• AX§öJ*/´ê,yÜÖÁçJ/€Ì ¹…ÏaqäaÂávú¾²’„ö´üuYÔ[ÐZÛî«²Ý ZLÈGå+´˜4f´`BHäxƒÖïV< Â{$2BÖiãr}Ö,aøÄÂ)õŠ›øäUAæ*i­g›?ËÚÏGmÜnE2¦áHJ£û'ž]‹òÊWÑRnîÂ*àÓéŠ u@Æs‡<1¨èBƒ£â64JøLØÏüa6Z/PUYlxùwÑžñ¬^;Šo ÌGüóࣼ1ÊO_[z`à›À2¾;#øƒbð±©ð’ßüwûÿ׃}E¨ùCßýü Û©r;º.O‹xT>»6q¯f½¾¥˜æK¥bªC[Ó“Yk•‰ß‹XAôlRHÖñlög“£­i›8NÖ²9pªŽd…\íðÖ·Õϰ3.WÇq üŠB€ܤTžÌÌÕ–R‰8 ¦/•†¶³€9ÈžO´Ó3n£IxV[QxòÔ²­“,Â[-,é4RjÇð{¤@Ibv¡^öÊÍRç„Sì.û!ËV™t׺ü}â€îµ¤mt¯ºò”Mqm¬úìõ¬˜ îø¶¬Ó{â 'Π¬mó× ÜÀF†´ã4Tst$4d–!„Èm¢l=èdMékÚerd84kª.¡oШ|VÚ¦2¹Ø¼€Áç£Æ' ‡XXb8ã½Â©ãQMÐ~¾›ÀBBTí½]¤À@vÚ¡“*µ†5·j ­ÐÉ„O/ø}õ†‡XtªÊªÄ×¹D땽ÊìtÈyjК3å Ð*É9˜=9Ÿ=߯ãð!¾^þ¿rçy^mœrƒœ¾¼Œ«-z¨Ð_+´³¡`ÑMï 7åp€B0U¡€ ±+Ú!`¼Ðµ¡pÃh͑ʡ3ý˜²Ü9ë•o@­ü[;õ¸àÛ,ï×xæñÓ˜åÏ²Ç ÙXÀiá$î†p®!0X9‹ÀÀÑ4ÙÖ»•GQÀÇ]2£æ(9“ú[ý»jt\.2°h^+Èf”Ú$J£òZ7@´%÷r½˜¶ƒkÿõvhìç唕"WçÍ$ä•¶B»- óˆZ])½2¦q}í×ÊõgU&¾ªÌÌävZS•‚ùˆ,u­=Íþ ôÂæœ* ¾î8;ñã¸bCd^fsñG³‹£ÿÑw„¦úô›Âîš OvÚ 7'§{WÊ méÙ,J5fˆé'O 5ѨÀŠ\K ‡2ŸÉâY/Šø¶ˆ)ˆµ"äçù¨í¹X¨ÇÒðÿ‹çC鼞?ß WBï'´2ñ.öÚô¼‹ƒMpÚ‹"¾- ŽŠö|g³ÄäaÄåÕº3òã´ŠnÀ cÒÀXx´—5n»!äê¢dç<ßByòè_"ÿsÍç|š (ÈÖl«¦Lo**U±-dÐVEÀðK§b¬Çï¼ËoeOµjó¤n¶ô´‹PµñÍÞ“Sñ‡†.–ùøs*“JfT܆09´&D¡¯¸Ž0­íÃÂõ÷K˜Ga†0=Û^OR9«–¿¨";R hi)³RÞÔ°ÓøâJœ‚¶½ q ¡—j /3¶”ææ…7šCP5ÎáçE;A!mî6}÷ÁŠ÷,c!Au]îÏ”KqÀï…ÐÔûõ2ʉ<7ò’¨4¡+uE©_”ã —¨7«¿­åÓŒ–Vµ6g˜u’ßÅ[kᕎ×—¿Ù€õùÜ?fŒÐýOq… ŒÁrW0jŒ_R•Èu°\©¶]3”z(kæ /Τ•ÙÿÊ~ëi$âN#‡É#»Èÿ}5y4·Ÿ<žsgÝ%OŠåöÉ#Ïê>'.ÜÛä‘B—|5y4;La"6Xwèô;š<´†Éãh “Ç­]&~­Gã’»›=š‡6þb‚i¸b ŠÆ_ G™Úìñá¯(CPì>L€ŸÚû˜=nüš‡6uW^ãá ü^± øhÝûbÿÏ>±ÿ$ç¾ü8÷½—¹ïeLygsßÿÊ ýãœûntþ×¶â9|²8÷úBl…sø›¸eŒîø££Ë‡=F'ããh¨£šÆè»gº·ß9§è7"Äý½DÂ0Eß!†)z CôÇ!ú'6Dç²àqˆþЇè“digècná°9i¦¤«j‡«ž³æ‹kI#­žÓ*6ó0&ч†n˜ñ'ñ¢ˆk3þ$žâ-gü1V†¸Éœ,eìfüD,¼syÊOáã›òkõÁ¦üç×Ò–)ÿ ØaÊZ‡¼»þÏ"÷5忞Ð=ø)û2> stream xœí\[o·~ú#}ZÙ ï—Ç6 Z½ ‰ˆó`K²ìÂRKqêþú~‡œr†+­$;Na šsHžËw.<›Ÿ6bAÆ¿O/Äæâè§#™f7ã_§—›?ž}ñ–q‡è”3›“çGù¹‘Rn㼤כ“Ë£ï·áX ÆjmÍv8Þ‰ÁG«„ßÚõiY¦Í<üá䯴¥Ð|Kƒo´Á®'gØå[,–6ªà·_–á?iè„•j{²ºà/óöøêäèkÚÈÅÍÅõ‘„Ýü.üùH†à‡`èbzðvsy$£ÄŒœg^}ÛçU}ð™WQâÖ5³ž–£½)ÃÓ2|Q†ìF?¦{‚JõÙÏex]†ÿª®¼äÎÛA 7;†Dœø ¹à¤õÛwÇ;9ŒÙ^±é‹è^³ék›¨}Û—LÒã¼R¯ÊWÙ! µÙi7¨t>ÆËr«2¼9ÞÙçÕ#ê* Fmœ ¸­‡Ì•°ag¦™{È$ G$ ÐwNÈÁ¹}²-Ó{¸µØîË²Ý ·´„=ªÀ¸¥¥ÇŒ}·@b°ñŠ[¸;·èt*!À¡²ÞXŸÕè³j‰%+6|Å™dä]\ÐÚ>ÏÞ”Ù7eöóy–¶ÛI\G:¨¶TƒµfÜñ´‘ìBË™8oHœb°..B¦ðétE„&Ââõvb«H„&ç‰ûHЪ!ÄDbý,Á¬jëåñN\JÊíY™}ÉÌ ½*l¾*³ÏîÂ|À›üdæ'?2æÛ¨ù™ùÓĘM‡ ô~æW6£ÉÜt¶7¹€ÚhÈ$µó›jÉ!‚»)³OËì³2û世œÂuðNå!¹QpL.­ 3Þß܆¨ÏËðiùìV ¾iv[`E ÄùRÿ!åQƒÆ,â³UjŒÄ³2|U¨—Ù׫‡8_½ÆËæh‹ÙÊÒ¨œ´DÚAƽJî­µ’@®0>Xâ‡C\ßÙªÂ05jaV@O¢aÖÊýÄË.šÙÖÙ&ç!‡ Õ^.|ñÓŽ(±´j¶¤Óa¼†Ü)|€H°¬±:(¿&y?x¥Ãï±ÀÅ¥…N‰ÌjÕ@ç'†Ö—Þiûú¨º ážÒœûìÍê0îì—–©Ôq;q^ÛÆ|þSbnÔVÄ´‡†µ’Ç÷0hŒµˆ1’~ÑØ„¢<à)à ¥—VÇj Ë0ÆÄy…ÊgU±NH1–žÒ‡ïC>*¹c$7:°x‚©é¨6š°ž‰`¡„V=zª)£6`äÆx¤‚B¥´ÒaFÎ3÷J+Ý`‰¼ÿ¯•W6qÈr‚Þ‘‰or‰´-KUkob¶S‹´^ˬJ%tV­ƒô!K~\ÁáC|½ý竼Úzå§qúòšV;ä_±"¾Ô'¼p«ªàMD#ï  ‡Æ`Å %S˜H¤ŒêªÒ|­ æO A*Ÿ¢01Å_džÞ*¦2ùr¡žþVËÇ5AëùS²òó,1+)ÉÚ!†ô¨0çšC+O™Žf¤«¥Ë$ ,Ÿw#ÊHÓà/ÿúG@8$ 'òF9ª¥:JT÷P§‰EûRÉ„ÌöXw³öÙªDŒÁ¸(å/ä¸Ý4*¯½«÷Y-ñJNlãP‰|ÙV²ç‚e²ÉLñ5#³bÜi «ÌúhŸ}žíH|ͳ«Rb#J¹`Äâîµ0e)…·ŒÛíÒ¥Œµ*Vüã—¥Í&•¨€gB¸´~ä±Ñ>TÒlå¨vѨîl%Y 68SÚuæ¥tjä%[œÌï”TNØLš‘>ã6׳4®#+| Ù蔂'h‚È,H×gªD i/ášK Oüì¨r–NRI ).ôv“v1*:Åöëã“Sl‰œÁ! ÔÁÒJ„<Š€q&u}$ÀÆÙL_ja*Ox' îPØÇžë2Y u„ñd%4J‚·Weö¦ Ÿ–á³y¸ª„K'ô ßîŒq³õRAµd`62+í*uèJÐq^þC–ˆû}½”)à“4ÈÆJ!¸¢pýæxÂô›é_=ïȯ)mö„uØèS+¸AÙ8­q FgË„¯‘.^9$ÒŽ®ÆèÐ,¿z6ú*@¿ë›Ì/eZ@#&jÉÝSed·àÄdË-N¤o 4˵f@F|5£2¦ÐξuKÏÃc°«Îš3òè°=#¹nh’жRÆ&΃×, à˜Èã>¾'Çâ^TÙãñÐZÐ"'š”%ÄÑпIŒT*JÇs"žØüÌ–š‡¬´o4 ˆãiú.dYù–cBÄi¬§^ë®q:3܆5J=z^ã|¯Þ˜ †òPËÎ÷Ik<’|‰8!oMk¡ÕIÉÈ7­qJÊ•´†kÑŠ{KÚË–7NÎH.·"UKj8©ûg2^,§ýÿŽŽÁ²íRäT^dÆê&]ÄG)˜º(³#= Š Í°¥½¸j¼¾>æv(dX<‘ï„mWrí<½è뎑•&u ÕN Ÿ¯3>K¥z¾­‘a¼P±ré½<ðÐÐàyæžpªv¿½´ÿ]>|PÉ1ÏËùqz^„3ïóL7çœáÕˆ³i£­¤"?Y߈“æ7:Èá(äDâí”ÆOô½»,ÊŠÚe1uThgõ 먘fîßQ ˆ‘/|}׺l Yvþj-Qÿ4TDìo)6¿Ç† Àž‚‘°†Šiæ  lÿ€2ÿ@ý…YS?Ř5õSpf=¤bßÓ°—õkÌ!Bi«`‹Pmñ4¬Âgý‘< ¿]]°G§¦Þ‘OOÿù§áOoÕÛTõÛ’HµCdoÓÌÞ@Èí~µøãÓÃÛ}ÞŠ*LoP…éá­R…Oo‡=¼ê ‡¼»é¶¿ßÿ»›ƒÎðt·w7ÔÐÈ ±ƒtog½g·|DßT©éXÁPYCðŸí“'eÅÛc‹äX{ͳãΑ؊gøèÕoùå9ÉÿvŠgÌ~Ÿ/ÓËVY’¯éÔZ9ÙÅ+¦ëM‡"'Ä(7• ŽU…˜E±J§ý¢œojO…”›JÐ’£Æû±>dpƒ÷_½4AŒH =W÷Þþù„ÈSY-0«.ð×…œrlJL4k•©ÇKCíë±²­^Q ¬©OÇ ‰ÜH_¨£&B+o«ý§gDðöœUôHjЯN’³ÂMmç™û8+ä“^;"ØotV«àùt1Žþ}5]EßËgEä¥6ܶ_ÄôNÌÝPó¦6YØsº‹Çï´‚xvCÁSçDã†.V­éW–cÍÏÔ.–CYOq{ÖÙM®®¹Âá#ó*dzEÅó²þÛŽWéaž²:î -ßê2ËŠ—[µ˜N44ä8(oà)Û›÷akR Áwsò·£“Ͼß~EÿªŒÔŽfŠV˜F’Jõ^ÊzLåB;‰L® ·µF"'TûXKíøŽð|§U¤Üjr}Ê|®Ž-bèœet2¾O§1G0û÷!~’S5Ë9ñ =¨+d€X@µC8›)LOö×ù¶€ˆÖg(Šà1™ŠŽz=æ®…^l´þTÃ}|¯ñåïí‹'p5HmÖ¢hµâhˆ\¬ñ*uxp“ݬ&£;/4 ­nšàšXfÜÃìdܨ;CY NL.m j¹ÕÿÄdÍOÎq+³ ‰VÅ·úý' ñŠ¢dcƒGVщ^šg,×h¢½kì‘–C” ƒ&*{b~Z¢ûÝù’HU»ÖÉ;YnˆžÈ»Tú©)ÅFÊtÔ7ÙD<…Åz2‘³OïÊÓ5ÙH¯÷äí¤Ñó'Ì[´¸ðøŽo¦ã‘û)ä ¨)P]I|LôvRH/…ßïwŽazÅ‚F»ã V"ñ–Û]zvŒ@t³OR².äOµÏEÛ¤j_}ªTóñ>ôRݦþC«5líu·jÚž?é®ð2¿Q´uz,N(t™^»ÀÛ¹€qžÍ™½v2~­wù^Öq݈B±_=›ù±ŠSQm6µÖ“ÚÁU3—ÔLÏåð¬õ]Ù%ÏxÁÚx(³—„nS+ưªk癊’5•e±±•Î(@J3ϧ“„•hœÖ.£ñÄÁù;-'ðÑ!ötn’&Z¶7ϤMˆu¼eº€dSœ[ÉØ›¦!¢A±ÜÒ?Ïå 둎„ªTŽl)q'½µ-Ð¥ÈKßõRÔ}åO6ô`çZØíxþHUA•ùR„3½tººé¸×ÔÃÙ±›•IÎ&h mÇÊ‚˜°Û–/ê°¡‡á¯Æþºh}O%´î‰³Ó|Ö´àä\ñpÛKsŠvGÛ« FÕ9æñt1åtT¹Y–w ¬m(”Xé÷ÿü!UT\ÅJο)»p~_µPW–šTvI¯TÑ‹ö6‘ô´¦ÓDýjÆäT~{¨Z…÷Õê½H5­¹ušx@ª‡Û•VÞú]©ˆ=îûžwåw.ÖJÿ/†èS* [t ÒK7®½oXbÍÇV"á9›ŠªŠ‡öó³Ççt «ò¿ ß\|Xêä^ÇŽ=(%_+Œý°ð©ñôn§v0Á7Õ³ºñ®.ûñ:O¥éwZd¸qꩊå¥ì;£î×Gÿ[ôxendstream endobj 1589 0 obj <> stream xœÕ\Is·¾3ù¯rÉ£KÁ¾ÛIœrâ²Íäbå Q$¥*.²ISQ~}ºÌ †|\l¥|ðƽ~ÝhðÇ gbÃñŸüï㋾9;øñ@ÄÑMþ×ñÅæOGøN‰° ,Xiõæèô ýFl„Ìn¬SL8µ9º8øaë9ÓF)£·ìpÇ™ Fr·5ýaQ†íüùá–\Ñ-5üFiØõè ìò=L&Hï¶Ÿ—ÏoðÓr#äö¨;á¯ó'îñåÑÁ·¸‘ ›³ë͸Ù|.üå@xï˜×x0ÅœÙ\ˆ `DÌ#çßyU>ó*8uͬW…´ŸÊçqù|[>ÿÕŒZX¥šûsù|]s!¾3Lr6;áYðf´bYǸ7U=‰=šÞ»Ã–@¥¼´“F¬i[ž§¿(fMNAÂâ[ðC4™ª&åw:…1I§5pÕ銮WµJá `qfTB0H@ åd–¯†ôuá@`:Ž®ŒqXf¨ˆ»$ Rõo¢%­ìx$\|àaóÜ?CâC­ÜRÓ`f…¸B`:<$ q,x\V) uÝâ«®/$òï†tçö±èBÔŽ>_%Ñ)gæcüÈîN“à¬þªë^.’~€êÇÖ”©Œñ=1“·‰ Ãe¥½¼P­¡ê9²N²i$Ë®gMÜÃk/•B"U6ÈVQ)ã'¬8L§ŠÑL ÅØÿà €×°Ue”‘ɲ?¬ðØZ#cê6ïà +cÀBh—‰¾>8úì‡í—ø¥àŠoç8ßá¦v±¦¦0ul$Ä_À'‡1 â$n¢ñ J9pÙÄ7\öÁø¦dÀDiŠiR1 Ɇ85 %9d-ÂÐe?0šÄuêh‚¬s8ìùû$§j”râÃ!¼ÀâWø3B‰¯ÓiU˜Ckv(àÒë-­bÁÏÎxzúa8ˆç²2ÓŽ‰Äq}©%71 æB–Ó~Dǽ8S<@>J|oR™a"@ŒE¿é“.TΨƒF¼¶³“nPsÖÒ€Ç 1¢e˜P;;£ùDÖ”r sÛ¤¨-uÌ=rËID5ÒCÎÎý»ÐÝ8‰e‘{Cœ¢l4­²†åaŠ‚)ÔT*fá!•5CëüabIG-6"bs'"©?%ÿ FM&Ò1{ˆ(® qÄF(G¨FßN=pòyË–©4Öö 1{BÅ]6…Lr G‘+KXµÑtpfRH'¸jøš®2ôÈeTAÖƒŽBDÞR»{[B¾ôšþ(ñ’‹{Sµ¢ò6±tWSÛ8´ïä°ÑÒšºÎV`kOÜo k#£KE]&]dzGQ#Ý·saâ$çW– n&s Çú˜èpÂU›d/Æe±™]?0UËfSk#)@­Ê`®“Ìñ²orÎÉìe—\AI¬Ü‚è7lScèêÚIZEŠz•e±•Îq…W%¾Óq.Ñó÷„ƒoÓœòa¤s+ž4®¡ÉbZZW@l-ã MÑ­ÉÈ)!7i ÄrËø ùhÚÏ8&Xie¥r´ nD£ÞšÖà¡0Jß÷P •tóÔÖ$¼Â44›ÌÝþü‰€Õ}S§D]­ïÍÙºèömÅù-/UÂpèDSg˜õ}dADØ R xËýȇŸ§Æú¡·¾NTc‰³ÁMƒÐç\qÛÃß…9E»§íÕ墊Žù{:˜mq ‘*:Èrr©qo¡Pd¥Së1U1W|ad%åß”]XpünRü¥¥F•]"éNu¼hoƒ¤«RÜ´áSd%ý]·e’SßÔ‰)ÏÇ=‡GuƒŠçeq‚îé†Ó8Š9Æ §#‰ ŒO+‘¦È) N ò µwÜøÛ§AY™êufšõ¶GkA7™%Ƭ&Å™æq&ÐvÌÎÚV»p¢õO«m‹@°¢m*HfeeƒÔ™PL“ÞQ<;I«îö÷î3?Â0¿h]  kxvÄŠîg$yBøMZr³=Iö ˜3@šroÔ/¨ÿ?M£¦Hlíöå–0~€èÝ~õçÃÔ†BÏDyŽ1œ+Zõìe¤ØŒ¢Ð/¡‡©Cç>²3KXýu‹ €Bă„´®2–\õ Ë»~-G˜qT΢Ô4ås &ø6Z"ç‚^Ç%™ÄçEó/±’‡þÈ›t!4Ûœ=Õ°¦©z¦B[¬g€ßÕ¶ )£4ø2‹VËdr¬šæÝDR*—Ú¬ð6úFÔ°S,ÒíÍO«‡þKËŠ_q’j;rY ž™1È ¯Ó/m<VÉ (U…À‘8H[_÷Ë0c}KëžW˜îCór´v¾îÇ¢^î‘:•ÕhçuÍ ¸&élîƒD¡‰¡"TäÑÅÈGò|“¶‘Z5,á}HëU·½f¬•‘()öL‹ãqó²Ó¶B#EY1ç ‰èäùµ»ÛóãJ)!,jヌ6¹$¼y+7øËzÚ*0L¾Ý»˜5z#(¥oÒâF´¸1·–€cŽZâ”E8‹‹y›®}ìj¥êðªØ¦CïúÉÊ&MN7Y® ‡‘uà…ó}­…3j¯{‘¸¬mCRVcNd€ß¥Zv™Þ}ýJ=x}пy§|–z^—k:‰ŠÎôÒüõˆSl#22’Z—çKwª"¹¬l\ÚF2_*g `±Ô…¶5aTYÏ…ÂËå–‹úàY¾Ch Ç ÖÞ´ E.ûÕ ®6ζ¡â”³¬,”'À3€•5[¢Ž7x¹5>›JM¶×)…²•dœæ¡BíS•Ñ÷¥¢yP›®sqü¡õÓ•§4¢­-ûÄ¥sâU€âEÈ}âßEú¥ ÂÒ>qÚì››ÀIŸ8º0LõßBòîdôð;ïmÈ÷¹Iœ®ÑoG5y§†ñ¹Kä‰{½¸*£6ŠìÁÃ^og`dxH«·3,˜€K€·º³Õ{ÑzšZ½ã#…G·zcsÚ\±˜x'o«ÆMΣ¹D`»åéS»Úb)«E'][ „)Ê|Ò¥@Ž+ž»ˆ lЦ Àh<$Q墣зX:ã0ܾý¥Å´7îÁ¡ðÚK”'(ëÌÞ]3ÇŨf3ÝHY·‡6rŠ%ˆËé.B «÷ÇZGåJº Vô<#àõ1“#E¥ ”œò¥¬{‘nAt i“7~+Ê5ÎŽê*¤]oòn#°Ý…Ž1CÃt"õ%EðñWàµt¾³Ð_km-¾ÏÂV ð¿iS>Ń];>Å)¬¶˜J”5EÂ[•ŠjÎBÔÈﶬÑ"âùyöE\†4ÓêK²ŸÐðƒ²[XEšìXÓ*töe&ûœJêõæ)gii.DuJaôÏd–èò*H9-' ¦ÓK¬ó¤hÈ5H¸Âãƒàà§VÉÁknÛ.¯¹»‘6^ºqyFæ}C¬‡LÄn¤ø‘^Sy‹j<<$Äz@Z;Âöб1°~Q&\•{QFÉÛœóîçU³ÅÊ=‹%R!>ÍÝO‰¥|]á‚QҀߔ™G$iðFi €w?œÚ[ÒH¾vøÈB®¿VF¯(ë©O×í/AÌ*Â;éãŸoxë`|^qnŸ'‡Ol#ñ=0ÆWú€ù¶;™<%wÓCØ™o‡°K:%8ÓãÒOÿ,(ìcÞÁÊØ.ÿÏ`¨¼ÞéáÿÉø Öˆ˜Gô \þ&=š ¿ºJ®æNNcî4—FH°®`õ‘ðÊÕ9 ™•N òÃÝ”ôÚìGý:ícÒSÑH o·èx¿:ƒÿÆDŽ rËiúf~š–ögŠº—i1;i_=äõ:Íî1±9%‘Ñåö ° ð½RË¡¯ÜWÄ#‰ÕV‰i×>DrØ£*w™|Èç%Qø¦Œ•ÑÅß_šþLLt—@‹e06—ä#´È瑸Kl„³i ¼®Jîò¢ÐqR¨»¨<8U‡ˆ¿Žnî:Ú“‚OÖý(˜§,ÛØÖànôgtÁ¼¨Aµ°²3ùÿöÞB©g»·0JBz¬Ë½Å4ðˆ{ ìà ûÕTH”ŽzùüàÜb—…Ø<ù͆Á?ô²zA®€½}ëD,¡ÖøƒZ»KaNëE\Ãv·UL€?D{\x‚Ô7níÍAƒäãÉ›®àÓ4Ü>q½Éô•.Ѷ†¸þíZççõ€úÿâõëëÿñ{úy4–êÿÏšÒ5±/ô•kß\ÓË‚‰ò¾·Òë“5ý£˜á?Ëç×½Ï{DŒGÞI`ÑTKµ¼y;yÿPª«T)zÇoþŠÑóendstream endobj 1599 0 obj <> stream xœí[ÉrǽÏWôq à”k_Ž–å%|qHÂMòÐl"@3ì¯÷˪^²{ª˜ÐHtWåòr©Ì⯪‘ô¯ýyy·’ÍÍêוÊÔ¦ýqy×|{¾úÝF¥&‰äµ·Íùõª|£¥”ðF¨`šó»ÕOëx&…uÆ8»g)BrZ†µ¯“uOþûù_iiø>Æ ©¤Æ^çWXûG¼­\Ò1¬ÿ0<þ½tJ¯Ï«/ü¥¤Mþx¾úžvò©¹yZY!]ó²ÿy¥¢‘E#‚kî@ðR¸ÐSnW?Î+hÌx¯ è±A«èb`íãðx9ˆñ!S}4~ýÝðÂC~«„õÝ@ývxüÇðø8<Öw{édËÀŸ„ J5EŠ2u€é|ôÊ…õ¿Ï6JH­]ß3òÃ`èGF~¢g›Lˆ|héN*SE€v"ã…ŽÑ6˜ ÷\¤KIø -uV7^EH€ -]&õ”=P%D´KHg_DEyü0<ž/Ùiýó:[É%ì’>Ëã‚>3o½> €&¼cú4Æ‚¢Ñ'– âXŸ¿½>‰;DŒÉð"XxlÚ7£Wþ¤Shøƒú?^{9P™/?Ôçúq ¾ë©´ÝFYr0–´pζ;^Nl¿åO{"†ùtLúhàHN8M 2 zÊ> RIJ„v¶à¢Gt µ{d}€¾‹iߌ$$éPlÜ¿r5¬ø0în ÞÉÈÖ«3Ýžç²›tÌá:ʇ]E”æ¸æêÜÌ¥‚®™«Çì¯w´–<–KºÓY+J+FÆ*„Cl¥ÐH:oËVj[ý|66–N¨î’S®ÕÚê©*îÃP<¿¤ëI-Ÿ½¨Æ«jÜf9û—IÎ.B½.gka)c¿°Ù§êf·Ãf﫵Ûì}UJVbŽ‹QƒkbÕ%ëí-¤9A¿I%”qÑ5ÖYI¥ð«.¿îÓVJ8¦äï K .ú–©¢&;tê½Îð°Òëˆè2Øè¾<kTÜ5H_°b=i VŒAÑ VŒ 6ѧ6¡DOnôöÇÒ«r)uº C †²80lcN…Ñ—DÆé6Ù‚ò|»ŒÅ[Æ _ý™x:FëM°H/ÈhNrGAuÙ 4-uVxKnw1:ø"1v)îFR’ÏpÉ®-Ýá/üõ™/[®"¶jO?Ô.µ“ 6U—Qðyƒ$¡B¬öÔ)¤e …¯;ÀìL‹…B¹xÝ}Ï5@VQh½PÆvÛq“Ýgž!æ¶PZàkñ‚#|>Ó‘´®û?=2#_—CçŸ õ ¹³läµ­ñ‰Áï—³ 8qÑØ ŠÀ^Á >…C^܇»ÛSÙ«qŸÙFSaŸÓ·Ñ4ýòŠÖ¦Ô¶vé%ÕAÆÄ22EU…ŒJ1÷‹äñü¯€ sÅûÁE¦î²Åô†÷Ò¦W•µ ïêP¼+‡¤öîl˜ ÍsêD–â•¡IH‡â‹ÄÌò7•ƒà¹lãQÔ¿»ÌfUm=‰«ýÞ|é¹TÁSË8БP žê¤) )ÆPï$®ƒÚGüÙq”½6ŸOqÁ ¾WâB *®—„pÈ7 uªÔ–„?ä°¤uRž—„¼®ûÄê=Vâ" “þëÌC[¹â"#ŠÌ’XÛz¯Q¯>T7åô„DÀUînTúRAK÷5Ú¿ž¥5 4ÿãkªÝª·¬úwvã/xúÿ‡ËGz.¸é[zNõ¿ÓÐÓ:¨$½¹¡'àqÈГ¤=IÕžP8:×@R°’›c©Üí({>±‚§.™Ñ}¥º‹ºeOs!sÚ!§FZÖÊÍ67ø—sývÜŸaþ‡16–j*ÅŦMMüc©NJÞ˜ë~z…:?±Óúx áø:„õé'¨¹¶Ìì¯ûLÆa¡Íàã&¨G«/7A̓¢¾%óy;sÀû@bêì/6Ž(¨'=Û4dC¥™ùR kÊþ‰ý:Q`ZÛ‚×…Oå—{`­(MÊ$MEâ—ž”U¤@RÂArÍè<G=~·gfÔm›™©jœìôà¶Ë¸ä¸3Õ9H0>w“G?{Ià]iú´x{$ORÓ!}VšøÊy—¬1=Û./·Œws˜_¸t@K£<©ä¤¬šÛÂ*ʸ—z¾ÓÖø\‚o”Òa(²Ûðø#†fòLªò¤ßðDUëSMT,ˆ]‡‰jG8`¢Š%¨?ÁDõàš‘þ“‡‰GžšrSAÒ#Ô'ÃÈ#® 9$»fèK}@gju÷™³EoätxšRã<¶¥²2cÃ>0åIêŠm¸[& KcžÌ”õ4-JM,Kñ—ÛC0ÞžNE4åQ¨‚/FOƒ‚6~¤A³®ìýëûÕTBóDendstream endobj 1607 0 obj <> stream xœí[Ks·¾³ò#¶rÚui¼Ç$ΣrpÊ6oQ2)ʪ)Y¤ì$¿>_3ƒ,f—»\™v•ËÂ-l£Ñï懕j%é¿áïÕí…\½¹øáBeèjøsu»úÓåž1*­’H^{»º¼¹(¿Q+¥”ð+ŒPÁ¬.o/þµŽ)¬3ÆÙµØl¥ÉiÖ¾¶øß—ÿ s¤áç'¤’g]^÷·Ø­\Ò1¬ÿ\—ÿ¤¥—NéõewÃß§%ò—Ë‹¯é$ŸVoî/¬nõîþ· ,·1"¸Õ-^ &È»‹o—4'|bPô8 ÌYôª’ö±.¯ê5¾ÏP_Y7¼Ï€%¬o+”ñäm]þ¯._Ïn¿#Ê­OÂ¥V[EŠ2¬†|ôÊ…õ7[%¤Ö®ïø}é¾§µM&ÄŠª¨¸“Ête­HõÖx¡c4ç–¸ 1 W^E\&dñ*@Ü9I¼J¤Œ"€x[ÄûU¥ãS]Þn¶^’:Ù}—*Ë=—ÊòŸ.¥­Ö»”¶'] („NÍ¥öèlY~_—çÐY0K »~¹îþêql+çvtÁ¸dÉÒ'®¯m¶ôÓ¹°†0çÚÏ5"N'#8s „+›À³-ÿd$4íxU/û±zŽ« eþäC…>TèÇ }1A鸭²dú$iáœN¼j$\–wuy_—ƒâûtFÅ7É¡¡£Ò9á4‰0E@ô9E„) SPcÓ‚÷0÷Ë }_¡·3òmQ{]dìGwûÅl©ŽEÈÓ–ëÈö?NÊ/7s1­„‹TáŒ.'2!¶/Î÷á'¸©ËWõgÈuW½˜a”½­—ê89w!}ÄÌKW—ï*âB gw,úu÷Fo— îØÎ@pàg§Ñ¨l; 3íAè u®01¬¦‡¸ýH÷Õ„)Ú« }Xv:“½¹§˜ºÃjÆÉrÌgfµI-§•D6‹ìèIœ>¨»wçæôÛ÷àv{,{ÓåôÇÙáñ£é:(–Ezã¹ %¶¸çlÉÔHiƒÜ)A”NÇD™Â3Q‡n"‚™šÜñBûÜ̺» e–Üø½ÝlX‰„вá$¼õÃM¾Ìä#Ó“)gŒ†'ã)-”k#SJähiícT³ ˜gÉ´VA9¨!ßÃ’ê!×F*­ ­:Í‹0¬U€ : ¥Aµ4&‘IŸܺ&Hx“ýÜäF÷ê,•P:A–t7œOYwò†²îrJÖ<$Qgõó$¨sshDã#¹‰‰Ÿ7Y¬ô:K¤rWÖÆUô¶¤/Êa¡lÒå0&¢~)ÊaL°‰~jP1…DÊF)šKiò.ŽOì¶ýŽ‘rOø@¥8ûe£Cir!YñCðQÇ‘@4q¨ðº`„Zqºo ïÌþsðÃ@²‚ NgIIÀ´ÔYîx ÄhürâoL&ÅtÃ;Àþ…o_øå@UÄQÅ-ë(¢ŒÅ-[?¸e~½÷›­U^H£ö4ôÞjOe5¡Á-|ß(<Ðä÷Ä•b“Ì÷³ÈùÐ3‹®În8î(F%G¹(§WUªå~IÛ™:p5î|æ’¢@–¹dæör»§~õÝf‹•‹.Îó‘88êÔ¨AcÒ³“›ŽFÁu‹ßå®ów„KªŽ²z= sÁ§0üÌë™Msp_i˜ wì.]‚º#â|¨jÈ5•[Á k¿.œVÚµFSÀ=e ’¬úÔ<ŠRíä~-'*ñ3³Íà%.¿ !”ãaýSj|÷’"5)¦û´Oí´GUf=§Š©Ä)£³*-²¤WKN+õÜÉh„À—¼:$fN«ýåu¹¥ ­cÊw÷jtL0¹Á1IäA]Ǥe~tÇDÞÖ3õòÏžI@IA¤Š{’‘ÝP‡.*ÅÃcVáX$g‚`Aå®p(¥™‘1lŸ˜rtaM{ZÒ–’æØ˜Ð‚£¥0máˬKDRû(3`Zq]~À~èŸ2l¶!p(7ߥLcÁ©¾ #“ œyî˜Geî뙢LÑ="+=¶m‘ƒ"`[êøÇDmÓ˜ MFÈ)mSê/+ ZÄè÷÷‚÷ê; ~ã'ózÈÞÇ©Àí’$G0(5ãyf4b¤ÖÜg.)Eqlðl´ÃXOøÚNª‚”}Ëég5œ§ywEO½_ôGwØF²»AQýp™à¢¹Yqsoຠl7x©`Q‚…s/¬É„Þ= ò´uO¿.­Åˆƒ.´~“Ñޘץ¼¸üÄŠNV—­bM?nÈ‚¦ðG¿ƒòÂÙ½cE)ÇÑ/âÄ@3r (Y<ÿHG'áÌ ¢€–(*.ƒdœR['’K„BhŸŽرÚ2÷>Om‰d&˜4ÕÜ)pMãÚõŽå›×ó|ÂC¾i¸JߨÜÑnÊ”µ‹ÿMÅÑÄG­M jÎRÙ6)ôtOŒ^Óï¤HÆ7Aƒ¨ Zåû ï¢Ã‘ñ%‹vg¾4v”²bZMž%1Å´F⟢™@öû¹f~UéøT©›Ovã‹F¥fj|é{K–±-eZƒÆ9MÁÛÏxF¿  ÷ÅoRF7v¡‰$h“,U€)Ì òÚÝ*>Ø‚:·V´Ô”©vèÉW¼6wë©AÃÿäO/Iéx¿¶ bhâh>OIJì´!§$Ͳ1j7Ô›—‹0Æ:¦J,¼_mòx#æÄKÎÒÞœ ìFú£ ¬6£è„\Bß¹F"íGxAþ(7jùqï[Üþyß· oY`2Vö”e<á% 0 §ù¬/Yx ìf3—ûß·¤) Ù>×ûÔA>˜Ýla÷Â}F•€÷ˆÂ+cîå „$. “&È)E¤b4 Ÿ·?׊­Gš9Ñ”¤ä’GØø±»›af}ÖaX4rq›)6ùì¯zJ¾ÈºöñÍÑCÆÉùÇ<#Eik3Ò+oF’j…Ð™Ø vE…‘Ô¿†yÉý¤¾vàÎ9¯óÔ?_iÒ€ò2%ªã'ÈIóºD×"¨3?‚üÄÞJ õ1þud2KÈX&ÇGkKc;žO‘fÛ„ŒQÑ90¸óŽ=íÍÄèLÜcw¼ŸþxÛô0ꜱç´XÙ±c¬(>xà}‘Œ”ÛY;õ¦Ü‡rùš6vm`«lڴÇó÷4JܵöFÀú @Q†öž Ý_èwÐ==l™T™kW¦b\óŽŸbð$;Fû%G×´mÄocX¬sø„™áBµ4Qvs*‹hø5ñ¬K“O³ûv&k;¾ÿ]A#Õ¼}ò¾€Uƒå?ŒûC?l\žad¶;Y½ŽÍ/[§ÛB7jžll[ÊöAyc[(V‡±z²rÖTâ:DÔ¤€àÚ1-=ì{'um?gþìÂA$jRóÜXRÊ©0´½ÑÚºõwä"Œ†¶ÅÈ’RÙ aK ¹=õPÁe=.´˜¤eêZ™£:¹¾¢iåŒËÙ¶Š>ÔRcŒýЙÄ\—Óò³fÛá. ÷l÷r‡û‰Ô©ì o³á- y2Hn>¤ã)ÂçÎúR\©®X”é• õ¾ð!è]#,ÂyôäÉf”¡yýòåÄ—nÀ²ô((¹Õîö Ñ@óÏú ½SÓø÷¥«ãõrC‰óv©CËÛK¯KGˆ¶ünî÷º-éƒDXC*Ý—Nê¾Tð³t_L+$(¬ý2BžÐQHÇró÷_Øõ^wñ¶IÆÞNKk±gþ’(¤gë´(+ñ׳NËyB§(„·Ÿ£ˆz„ü‡žJü\ßåÐjiãŒ6”4=…qô–°`¨|;黵÷I4œIôþ³-Ç<»?úË(„VÍ æŒ_ØŒ²ÐÑpAÐÿ>A ° ™ÂÑR8¨½ã§5eÞ¼øù}YcÂüó©c^ì?EH¿ ¯§Ü‘‡;‚—-¯² ‚5uyFÈ)Ρ¨¯²¿…,ŸK˜£˜WÙÜvî|Õ¤ê‰~-_5µÝÔöq\qÀ¿}ÕôÛWMˬþí«¦Žáü¿j:«ßkŠØå»ž›¡Ûhé½áÈú¹"ûV¶xå=ÏQ,=ø€‚:03ÄÍi3õü†—Õ9‚}}ñ‹4îÀendstream endobj 1615 0 obj <> stream xœí\KsǾóW঄õ¼G'Σrp*6«rˆs H‰RE¤l“²âüú|=³»Ó3» A9¶JNµ==ýîž~X‰N®ýëÿ^Ýž‰ÕÍÙg2AWýŸ«ÛÕï/ξøF˸Š]tÊ™ÕÅë³ü¹’Òu6¸•óº“^¯.nÏþ¹þê|#:µqýê\tZ+aåúžÀ&Z!õúŠÖZÄÝúÇ´v!Èõ[Zúh•ðëï–à¤õëZK/­ŽÕž÷Àn¬ÖÖ¬ïòvµú×Å_A±Š5ÅXK¯V:ïq›‹kzJhýú !°Þ† @5‘j£ —ºÁ儎oCÚ¨‚_ÿ¡,ÿFK‡{«tÈtÃ_Æ%ñÇ‹³¿ÓA.®nîÏL'ìê#ògœ¥lgíÊiã:aV·€X@Ôywöí²ØÂ±E`p’PtFÈ,¶ËBÛeyU–oÊò«²|Ÿ. áûõm²;¿šÅ{[]".:õÀâ×IEŒp*¬?09Ýåµ6Zf•2Nxá²¾èŸÐY_´Ò‡¬/Z{é£ÊøNI;ì°^ùcÂÎ?9ƒ1í¿,ß±í|Ëa¯Øúž(ˆ¸f½ÑC!KgÖ× œ¯áTb¢Ö»8Pâj²Ù-“ùyσùÉN8ãÀÚ­ìì÷­Ç’ù%Jm§¼o #’׌¬nñ?|ûÂ'¯Ë‘¤+©p#+WXÀ2°H:‰|¾ÑðHÖÅõËsì6F¹õÏRÂÍZµr](V}Ýh8ÓÚlÕwú}Y>Ì)û¬†ƒ[Ö„0œ·@>ÓÞ)ÓH~vâ†+U¡³¶¶€QÚ×t¢Â~;%DuÎùm*šh%| '…Q˜6@jÑìj“Â_lr‡ë¿ö„T¶ÿ:ÓlT\$⺾"Ý+(k×ÿ)L›W"º+%ʾ1+‘ ¸ÊmÞè]~˜Û»¨D°Œá¼þ6Zy7Üf´ ýöøt²ãf¬¦+‚ƒƒÌø–ˉ ’ToÔDh—ûC£–iÿ9ã)¶À6-Üzu4É’JíðN OíM€A;.™ 03º»ÅÐÈt´ê¤ôé 7žO!,¬SšApûÄÞÖÛdÙåmdôèܺÂâìQcÒ è†ë”S}rô%¡ŒÑ+™“±ž¯ýÚK8ïwLV½qHäfÌê&«„Wz›æ ¼åœKˆã!œÛ™µ|]–Ÿªhø N›«úz9qÎZwAÊE^r1Üg$BÊ#|)dDX5· ž]³»t@{^N¼>ŽìBTëï𵨠PCÈçs¶s6D¾¶§®.‘6Ú¨Îx2ªíî7).+¥ãůp>°Ê‡GÄÿw >ÿtNJç‘Ô\¦Ï…€r+s¼¯Œ8Žùl©²ÉU9ÐòÔpÇÎê‚ /MÕŒ·€Œ€CŠø‡`-8µ»˜É$OÜBÒ€Ó3H¡„ÄB™ cÉ^ØvîI!IG¼Tk‘WJÖÙ üÓ¢‹"nsµ´f|¸KpZâêKy*¿HãÒ^æä4ØxÓMà99¾iY ‡L‘TcŠ‚íBU[¸ßyq¾ñ…5R#9œ#«Œ‰U(³Æ±‘R¢MSxìS)°åãŒ1äXRÉEµ!oé•”–”«tfìý?Jéž±ÀPÈ’`ìm K„ ³¾Ì;@ÝOçÖÀI(3S]'Õ~[k’Ò”áÛÓÔ„\)bª#uÔoÏqo)Z-æGÓý$ð¼ f4!”ÛÅÓuÉšJÿ™´røÔÑ (R¥þöœ4K!`:çJÎ=’ë™ÒÜþ¢Š„ç.LJõË‰Ž 5WJ0ÔZ圚bd›áÿ™¯)­’ôûR“0h“øNƒ¶2ð˜«{‚Cé3v,Ⱥy°Á³n$%a§hÊgîVV ¢¾Cl Ž˜;B ®Áu"£ x¯àš"êΜûey3›µ?4Þ±™‹pÊ’t,t1ˆ1g) ÐÏYHqî˜uy³¹Ï‘´¡j6ïÊÒA fpLœ s ±Óa[DŸ¥‹lMÛrte3 ê‘dé.A„Wh“Ùv©I¾Ô^j̮ӥ”Q°r~)e, G]*õ!cs©'-¡²`²ÿõwëÜ›mùÜ]@ù‹:€q 1Ý¡Á5 €1øšk_>žk)¾Ä.pÖæáœ{ø]µÇãÿ¨h«¶\¶}Œä:® ”9”ï ô¡@,Ð#4÷6 Ù¾kú^WŒ'éÙ}#M‘Ú±O§ú:Z³BF!é/„ j„"Ä:Pø.âï¼·0÷«54‘o<%–*KS„“¨Âø¾öõ«@E$Õ,V‡±ˆ¨½±÷Ôàû=­­/$¸‰u?Í2”Yrãøf /QÉÔu!ö,þed ´23‘c¤ˆ'¨©¢ÑÎÀ}$aÐø…×TL ƒÆ/|§=0h¤ºêÓ$¨µ5´ Kf¬POó¢aòˆÅ÷¸ý»¡„OæÞÖR³ÓÐ?ôõcêÚà¶Õ‘¼tSH}“?.½Xj¹ß<&ÓÑÎÚ¹£ÑÃÑÆðY†Ijàð¾ëë4ï¹dû¸8'±ÉrÒÂÇìmµè‚‹·¾t’UqƲ†JûÐiT'Ìä †•ßcÔÂR—ÇûGÌZLÂÂa¯Ÿ¨Í8MÔ4þÒ¥ìVÅ¡-Á.=÷/V2>Ç36Q¢›²Ç=cCŽRO'@jñêêùoþÉÐÃÜÈï½··dþ{˜3)†>˜ˆh\k™qý§sjÐ*³FÆ­Ö¦ÿ±Ï`ÆÚfažªîsTØJJn^Ó—’$ò’[T^e„›JëØ‘÷y5ù/iIÑ}g“9îp‘ÈPÏŒ¯Aó·åîlÉ«/tè_àÀhº†;L¯ç59¼Ø#âÿ¾e:ˆí¢½Š¸<_"jSŸq„R¦#ð‡„"¤îøÖ¶ÛVÇF™“ýèCrDVÖ³ý㌗²mÕ'F‡˜2Ô3á±;û889Ú‘4¹ NI׃ÅáYÈhZÑ'} UÜk‡””Ž©qQ‡¬…€ÄÍdÆcÒö»ü Ó~,‰å’k~Óòì~‹)HÃÅx ¹-ã¨<Ú’§ËÀ¨?(öq2§áBi)Q1$¢A£™² J·>FÓÑ1ªêi‘'·´…qfB¾ê@Sƒ;5L-¸ÁBÆCüv¦»Ü=Y¯rdgÚÛ<#oßÀøÓæ»<c·xêWƒ—óŠƒ^<Ó[Y¾ññphG}¢Ö‹Gó ˆóÛóÒ,fy/œÚödh{Ɉ‡GE=›¾ŸdŠjäOWkÊ´˜/ã8ŸGˆÚ"åóU(#Dàˆ" @<µ'!z‚ŠÜë2dxä„G²iT‚ Ó¦œäø¤Yžîf¦qA–úÁˆÍ;ç9>Ôn²wíOÔÑ(ê>IÎBubº’3=2UL¢¼Ê m¸¤˜FyƒXÀe îÍ ÊàkÍüºÐñøéEziUz53ûÁs¾ÉPUÚ’ßX$uOÚ8Æ’­…±Ž¹Ï£ù`Í8<Ó¦wÃ$Kª}Ýî`Í‹4æï:Ól¡E•:%§|Õnë·nŠa`!ñ5d›‰àƒJoo&xrŒÇt¡ªØìÌ×JùEƒ{×ïPñiSˆò¥ O"—»]95 Ì—»^#†á¶!´[lÄìôPð‹~&°OÉÒÑY“ŸddÏý…ÒŒIêü,SJe÷'™RRÒ¥Æz™R GL)õ€O0¥Ä6Ì?Õí7¥$Õ¯{J D…bÙ”Ò9bJ (:Ê,?Õ”R¹Ô0¥tÄ¥†)¥êROúô•}Ž)¥ÂµaJé® SJ׎™RªæWÆ-|Hɲðð<3JÉ¿˜%i(^F6£4@Ž˜Q ¢îf”ê€Ù!¥qËÎ)%ñDRè_ޔɏ¼æRî!ÇH™âŒ—ÿoR–{Hyû,Úœ}žEû<‹6Bk³hóQ–3zر×$šx*>ÿëàóÉfþäSqú72ów½KÊŸgþ  âØ_aŠýO0󗿬ÃÐW+ûŸ\Är)$½|Šz¯6‡éO.YéNü;ÊÇÎË'ûSÔZŸ¾ãW?¡ä!<áÛîóì¯!ñÆÞt(/Ýb©ßwÝß®zlÞÇÑþeÖúäíΫҴ,·Pc³<èíÝò¦¯Ì¿ÝL]ÀU»›\÷î#–ûq9ÚÈßÏþΊ\—endstream endobj 1623 0 obj <> stream xœí\Ks·¾3Uù {ËÒåãý8Úql'•rÊ2oqI=ªDJ6I9ʯÏ×À<˜Áîrw)W*. ˜ÐÝèþºÑØŸW¢“+Aÿõÿ¿¼9«Wg?ŸÉÔ»êÿwy³úêâì‹g*ÆUì¢Sά.^žåoäJj×Y¡WÎëNz½º¸9ûçúþ|#:cEzýšÚÖÛÔúú|££é´v¢|g­ôë_ÏUèdôfýŽþl;eÃúŠ}õîÄ´ö&®oÐèSB­ŸOÝoh´ÖÖ+¿¾Í_j£åú.´~ýËùFvÂÙiøÐ /ÜúeúЧBÑß×Ö´¾¼"ÒªsÖ»M[Ð1aý‚vhŒëyI"ù¯‹¿— ã¼4² JƒŸWàÞ6&mTÁ§­÷Í›©)¦æû©yOMÐn‡Þ<_%;c;ïLæcŒäÌc"X^uj˽W-O»êJæ¤WFÛ%ÕK»TÏôÛ• ÎÅ|™ôC†¯‚Öz˜D+_Š™kÂ%kó1Œ›ˆ}JÛÜ(«;-Íj#Ug“ywýÆûúj#TéhãCÓ8 -“µºR·—ƒ¶*7h+Θ[”»s]p"ríée9 L›¯•;‡VÃtÝù&Õéõ¾RBëèkc°BìzýÍy]ôÁq ÂXÅÁº³~8EZ•xÆÿÈ(=0íâ¤z Ò‡â<¥•AÇÀb¾àqº»¼r¡4úz±øBâóÉ…Æ–^gz^ð}RÅeõg½ÜÆ^7t»a+?Ç”1v!Ø~­‰àˉ!‹ µ‘"t.ê|ತœ”åÏSóIo„•*iÀ|Àw…6ýåâìšÑÅÕ«»3Ó »únîÛ3éUÄy_Á¢¨ÎÛÕ z,zÆŽ·g?6}am _èmm$ð*ûÂï§¥=Tv1mcQç•„ô£­›œ%s%$UxNë¥,ä!hm:-\ëâá¦3Û=k$ ï‚Å€»Ü EMÑyïBå-ïiˆî|”\Eoso²åC¬e:)lø@^”m†±JåÓtÌvf;! _WwÌI6\&w|£]y6D¥öPx€'#C–ò‹¦q@ªerúý2ö¥ìfVÍDoaê/a#ßæÑØV?‘Ÿ›:ßLº½òm–ŒAm‹ø¢ª…ÓÞ„(,ë˼ÌÿD‚¡9m,+·¨­O[fþÝò¬ýîBt|]åa z³¹hmPÖ½\f4çË‹sR0ea÷•ÌG 0%Ì{nnûnlìGæ,pŽ%ך?ˆ’ ³ú·½Ú 驷cƒmAGïîAQÞ@é¾¢Q ü·C{aaº2m#@b£ß²¼ýñ<‹Ù€*˜3·-ŽÙ‹¬%N+í#Çž ¿Íg§pB’1×í³‡ójfýù€7%"Ò=ŠC¸?_B×y ä£.ç²O톥f_VH!-Ä…–àÆ«ÅNñ.¯6 ª+• õV6ãÝ€®núƒ'[G>NÕ˜M#¶çÌjRÜÿÌÍ|:i sXÂÖ3”Ùaƒ3†Äøüó°!ï¤ ææ/qáª÷‹ªæ9öl¶YÙ´€^ +kMÃÜu&T×´l kÆÙ5?ä5/Š3×MK歷%ÐÄ?üV…©3Óž%JEIâ$ À,oXz‰ 0ë¥ NæTƸ€ÓGª°K°êùÓúhÑô]´÷¤Ã>Z%|AƒM“6`¢R7Ãì´f Z…Sƒã[XêÎO8¸ÿ÷0À'Ÿað–01/˜…‰_§¦ :;”>L¼©¤æ›©yWE—í 3ÚŽ1%Õ-¤ò–Yˆ«ÒÇk¯pŽëS¡=Ì®UUž‚‚liL3˜z5Ѩ`ÍBæäù5¤¦åÔÊóFëFVøŠz½ÒŠ,–ÕS;h¯X¹E/s³ÖË,ÛïF‰z X¬;&½4J¢ãÅbR©˜ßO«x˜ôîfìmÅgN²ðl’n0SN!’—ˆ+máI˜UKV] p³†= 9§¼)xB 7AØ)–»IèSh˜`ŵª‘j{o®ƒFP\*›¸¨<4Ú¹td%韙î=Ì8윾4ÕÙ¡–iš¯\ç'ØJà+œ±Pƒõ_O­0)jLÔlí©7–É»Ó,z ÂLCŒoå¼ÿÝ0Z7)ž"ê„x‚EìîU½!º 8ß Z“%™5‚¸¤±\Mß²6ò‚¡>„Á™ŒUú5”j}*è`#¬roe-–aT06˜V’„ÏrK£%BÆvba hÕüj#DÁxׂ§$dë]ôMTÊ}mÚ…$‚†Û°ä­Ò¶çÁišúÕÀÙFêv¾‰ ÿз —e«d‚‰ ¶ (ÑómC—Y¯ï„ŽK&¸ w³ä–¦œ¥;³ßs‰ <]Ün¯³.ÖÑ ,º‹fˆdûu–º_9cJ×y:Ý)ÙdØ ‘oç!Od,ðpjoa]l+ÃÂÞ8ž÷}d㻜~426³t^»Ôáó–tÜhø•°†€(ÀóÁCÆžC}pÀ²‰‡}¢OpŠöeD¿%KÎ`|-'Âñ©8\¡‹!ޱÑh}ÌàYnY÷»IfïYw‹ápõ/Ë]1šBÀYn€…±Öxú-D‚ÂÐpJ˜%™",’z’©ì"‘0ø£öÛ/+6N™Çã{¶©N§M)£à·ù¦”±è9jS Ñ©Xmê17”+*8Ï;÷Ó:)<ÎIÙ¥-ÙbÃØ¥­C<†] 5—Üúrn%?L×}‘B–κNºÿY1†- r|È󉽿L†ârêeæãýÔ{?õþ2õ~^Ä*¨ÎUɱËJ¶¹yÛH d•‡w?¡ •†Ä¼7 †&F…7ö"è:IP2}§gÌýzê}× € Ý8µ$åqŒôf©¤|µƒxÏþý¤üÓy)f--ÂpZUÂyÆ»j¿ü0'³{¿8€Ù€—SóùôÙNÓ±³†iÚ·-Ð4ˆ½0;¨1“óbj¾¨]O½¬Ø‚­ýzqËY´7‹k¸Í 6¢Xp²‡Œ[M´ÜÓÅv1rÅIt£ô(cÍ”ëù¤0¬²¤6 ÂÓµxeÍiÆÈ<ÍsZǚђ2+§Ëv0zÁùüm=ŠÏÖø!Þ_¢}¿È°W‹|. …úº mÚöÅ3§7šÄÐ*Õ/­Fãûàç] )°:Œ· ¥öž2¨cð1 ½ö´˜s¬-ÝB„â?bq¤D×ðuZ>Pˆ+†6ictü&ƒ£]Žˆù%Ãt«›—kYÆ DˆÅýÒ2ЦLÝTsBˆx#’ÐÚ)ÊÀbGºÐ cÏ!;:°:‘è„QŸ–‡ ¾ý |ÙXmú45à‘èq•?ãZè’E¥Ã¸µ´XIRÕâJ°‘<](H›hU^ÜçEû´•õrnY×!!f¹1Zž“ÐCeõö©çVÖ}Hað½TµKÕ},#›­26à}¨2QGZ§ø!Öw\A®7­Ll«¦‰ÒOøNÈ=+¿³Gý"­l¿Î¿Tu¾gj63¢Yèv\™¹Õ]¨s´šrÝQ>¢È\Q¤!Ý!îêÐrmíÃX^i=–o̬^µ¨Ö&™„V½êiʵ7Y.>†>WàßêRìÉÅ¡€ûµÆ>Eá¶6pev…”fôú*ÀtªzøÍ*·M k´-¾,â)*·Ó\!¥ãj·ÓÒLX¸ï̵Û$ŽJÍÒÜÎìeŸØò®òÖ~Òzmm€ÊL¨ÎçŽzmå:åä“Õk%)*ð4N5)CÇE) XÛý^›ý?S›½CmuZX¤DDvŽæÒ™ÛÍ Ghç]LžC¼õ{ÍÙÒÇÂ:ŊΆŽc¸“Væ ªÎ ¶à¤Å©*ͬ÷`|UghŠƒâOVPA³À«=ºÒÌ’„©.·iuPÜTš 3'÷ˆýyZ>ÉsG¥™¢gRŠi£QˆÜ]½íågø6Ó²0°Mª¾pvË‹Ô4Ø-cÝÙ–tß»W ng!¦_æ/RÈ?7¢•:"þ,Ÿœ˜Åê™Í[ß4 œk…\ù¾OS‘Ó Ÿî±,a§òH¿’R«ÛÌ'm^\˜¡bzž<Õ–uä*ú•DD’f)êCHƒÌPB_Á©˜¾ÝHÊ5¯=¶#½#ý6Ílɉ1@&éŒóÙ{[*‘ ý%0_FL0©ô$åõÔËç<2-û}ñ6OœîÑ"Â~*€º†¼"ÒnÆ…¼c[x˜h'Aé ãðh¨'ÎfA)áúWFèã""¢Z ª–¸øûÙÅgͪ¿Ü-ÇîߤªL§šIVU3ôQUë=»ø`€…]C¾ŸüÃ._NŽ…]Q±&Ëñ\ž—€e{Q«Y6¿UQM¤¹žƒæ¢©…Ï—ñCQÍÐsDQ$c³H¿=H¤´Nhspvû™%úS1ä„U:Î)º™¸¤\Tt/r—@Ñb(¸´Eñg¨ƒŸéŒÝ³ÛJ–*Í÷r «Í^Y…Ьa$åÿѽ\œrË'½–£'¤+¯E-Gqì9ðZ.$püA~BýÛ)Î(9âü'º—ó¶·ûÜ…¥Jp€íPVïñRä.Ï€–²¡žª"e3O¹û}*=±õ@íÍ*b~m7ÌX¾FNOž¨ÛLK2û>ð¤/iò…—ª °þ‘í ¿R€qŒý­›¦ßèP*gè<ÐGF©lÞ'6+ºƒÖ³[ åò‘Ö;ÍÌ€ôè¿äE¥–G!­_zñÑ÷>^EG2|+Ä#t%šj?1dì9¨ö~)‘~Ñ;}ï–S½x<5$@%Æb(3Û,þãóÃ'u¿jõÄQ?UJBԮΛ’RD½õ¾3iêPhñ-ÛП–&jÞñs‚}š§z Æ/®[G‘¿1j=I*Ïô  *²tlê¢vlØEG‹ùõS&I¿V¡ëŸªÙ3£­ s %¤DÍÇL$x½ï³¥äÜëÔKè}i}6‰ bíÙØýµ’ŠÊÈŽbÉù‹”l¶«;ÏVIÀx >Ië;@ö¦·r$¯ò–(+µÇ<,ãúŽOÒ#-# #¹28¡Às©D˜Â€0öT"¬éceˆtÈ–‘åµYÝ+AûfŠJX îõÔ{]¬~~ùk:E%âÈ6겆{ÑÖoŠ,¼¿J?”Pÿfˆ´²“`]z…¨)M'… …³KÜþáì¿w\ì•endstream endobj 1633 0 obj <> stream xœí[I“\· ¾÷¯ècwJMq_޶’ØN¥â²<9Å>H3š‘ªf‘¥¥”_ï$ß#ÞkvÏÒ#KQR>ˆ‚ù@Ëhý¶”B-%ýWÿ<¾XÈåÙâ·…ÊÔeýãøbùíÑâésÒ2‰äµ·Ë£ÓEùF-•ñÂI³ôÁÌòèbñ¯ÕÑZ -Iaõz½‘£^½ZoŒŽÂ$·zÖ˜`Óêœvã‚“õÕz£ƒp>ÆÕ1‘­—Azþåu&;™¤!Þã–œcÀGéÕ{"‡`Mˆ«·LÆ…3Ïa£Z]¬!ª Ñ­nØwœßu½¶¼„¬Q¸èâÈ"øÕv›KƤң*LÆ;ðýÛ ÊÛù–ÿLŸ^_ ­ÌL®qÇiæb¥×jz·Þ(!½K©)"î¼>gø¤¨ì^®é3kâêc¡9hR ‰¯µÔ“Ø«vŒ5 güzô·…öA«ÉåÑ <ŠIyZÏrSå½f,ê)ç¯§Ï <”9/Y-„÷Ïà­<œ7¬žÑ.güêÇF=jÔgúýH¥3þr´ø‰òiyö~a…tË#ž¾[XH–Ĉà– (j¤œ/~Þu3Á·¢ÎKáu(Qw–J:Xr\¾ÈK‡`xÛ¨¯Ûò‡¶¼lË7í³ë‘Z”9C„ÒfPfõ!·÷¡ŽÇg×¾Ü6`vÑöTcªÉù›„´R/7ß똊 ϳ«jEqиM9]Á¦Jå£WŽ4F§l b¢%½®>¬½hrVú.FŸL Èœ–aƒ“Å&'•éz ÂZȬ`H|Ã<±èÿY[þØLqÔÝðýÄ@ÙÁ;ñÒk ¼NÊHxˆÓ¸­Kİìêt9޾iqtÞ6°åU[ï÷?XH§gXAlô"îu7ÌÓØöË)Ðc…R©2c63NxÊ+È2—Ÿ‚?¢‚ëìJYf»É–«"FPz¿ðÖw-§÷áþc9Þãº/º ;µ£ÜÍFD5f8¤ŠœTHNNÉוœ©#þG=EÁ”EÕNH­Æt§Êap>‰˜7l”ÔpF‹@ŸΆâqÛ,Ê#„ 7K¥bT¾x,e«°,sÓ–Hf^"þ ƒžêº`„š}ró*ó—õTtç ¨€‡Rœñnõg©Jç¯"¾áu×°gí³ûænÀÔÂy`žtËè›.ãó¦¢W]yÞu•Ì®ü¦+Ú›® —]ó{_"J•-áåeêÅ€<@Ôåd ¬¹A™Ž·½W°Ì7äÈânlxc ˆu5؜ڟGz:;›QçáMÇX%¢Aòß§†§Ï½ñ“xO/Y)m¨ï¸ÞÆTˆig¢î·Fð˜Êޝ©C¯hô|·F‘™6ÿceÑpÞõÆ}*ÏeWýШ[X—©ëFX߮ҴK‚ª#…²ÇúzÓ?çë%ƒÇÆŽ¦Fy¤™Rò¼w 3^¼ñ¶ ßÃj½Z¢ÂÓÝ§ÄØ21PZDÝÝj&ÆÉÆ~Maè½ðøU}2ФUÎQÿe=ÎÁ{f¤<¤¬Oç8b!Ì'¯õ¦1oöyD“ŸC¬C°ÝíËïÍ;vûŒ¤j`çCs¡~ªßý*en(ÌZþ^Ï¡½!úy‹T?}FÏžî$2.-±Ý0aß½eW}]8'iwNNX›„7R:ýŠÜÉúx¥*ÞUét:òî«¶¥JK±Ç{»¬t6~YÐõ›a†Þ³æ•µFæ÷™ÊZÄϵÈó¡tÎðBäîpIŸY¡pÛÎY¿ÏC"xRaóCÞå¤5¤1ªß¢Õ«¿®£BÑ:MÄlWͪáðU Ù «Î^7„q: o†}€£iâhÌÀ¡Á‡;Ù‡¤GQxoe)W¸k¿/ädâ#0ŸyœTM{=ÏÛùºfo5’o¹Æ9C&ʨJÛùå‚×;Š]3 ëꑨEÍè‘3À"CíÇq÷´ád7‡Õ[¹ «HWÀ#6Gæãá0͘Ï{†dœ¶CË V S¹}®0¼5þ?RÞ)#JuéÖ‘ò@8`¤ B¦ƒ&Ê¿lz?cxŒ)2Ê/Õý©JߘÞïÔe-˜§ò[ ("P"…ÙôËѽ xBF¦ûJ8D÷p7­Ü•Ï&3lzœ™¹øe£¾¼‹ãO”Ï ò/EùÒF<1™ò+áåK”ò·Í®9iC_³°òülätñÑ%‹š—ÿ­ˆ¥´–U 70X ìg3‹­“¯×p…0Äk†«„C ðÐtŸ/âXî¹úz ‡º[É›á*áÃyT~ò¡·çgVÕnÃŽ3[•%3Åùc™í‹+/².ýJ«™­1›³ÂÚÛ~5”,PØïκµÝWV^(«ý[Ÿ¦üJ8Dùx»$iþ°»á¾6°ÓÉ n·ò÷C̆ç±ñ³™í9jökÈ­¾èFɈ §¤ßÅÚGJ뱫ؖ£–Zü‰ý')endstream endobj 1641 0 obj <> stream xœíÉr·ñÎòG¼#™ˆ ±_ãl•R%‹9%9P¢$+!i›¤d3_Ÿn`fÐÀó>ʪ$å!ƒ¥÷ x?lÄ 7‚þÿ¾¹9›÷'?œÈØ»ÿ¼¹ÙüúâäWß(¡6a¬Þ\¼;IßÈÔ0hï7ÖéAØ\Üœüíôþ '5¼;}“›ßQÓ #áô¡9àÛÜ|—›ïógw¹÷27¿oÎð:7?ææ‡Ü¼ŽóJ§ÜéÕÙ¹0(ìýûiqUí}1Ûëælo›[c{Û<=ÛÚ}³—íá6mX‹bÃÿ¸øã H3Ȱ9—ƒÓV„ÍÅâãÅ3gœßCþ~vv.AˆAëñÅ®/›Ø¹ÊçN¬W6á7õ¾˜{iís)Ü`‚Á Â`Œ‘iõühsó¡ ²÷UoZæ®8¢–ƒW `\ ¿úÆ*Ë š ‚Smø'q/Bh§ëçb@*No¨mŒò0NUñ†sƒå‘?â,¯›0¼oîSœ×}p‚L<)S»çg‡¨Vá9s€~jä®yÒÛ|¦× w»TÛÏ@Ÿ?@ñÂà ÐJ†L+$D”ö½’˜¸`Tÿº‹$\ÁkõeÈÿŽô®þ£/G×M³à‹ÇÑç×Å{`¨½9Ž iD? )µeøtüÌ‹ÿ·ñP¥ÜÙî¯ú9‚rÿ¿P:\(탤/^(ýOáè W8³(>YÛ|dM<õ4Ålô€°Ï¥ b÷«í¬ßD|eDˆk(ÂHt̰[#¤B÷ÛJ„H¬PÛz/qsØtÁ€ ŸfñV:+¶¥“F…b AZ¥Œ&Ï†ë  íB±WÜa)·,ÐÇO[½À @((ÄA”åŒ÷€»¦­š }›ÈÄ ÀL4ö*ìëÜüs]Œ®\4ü¡ ºß^œü…B¾¿?у0›OÄæ÷¸o’£Bá„›ì1Øcæžë“W{—R¹×4Å ¥JÁ¥­Ñ‰v<è×™ÌVâA5¿4qda°*ÌÌ‹„!W&„„h¥œI§´’‰.4Ò™P‰.”òÒùD ãÄ%x?X¤‘¯НÓpãÀMíøé}b°%Ï^QGœ\¢iç,ŠœÞÙ)"Õ£Pq¦IPCëijã‡lðeîýžM÷mZÜÙP,Î÷Ê&áá«óáã¯Ôü)1Ô¼AZü€GWã%âm‚·gÞà-qO|â·lÁ+šƒ„„+†äùF; ²2Ì^ÇÙ5ØÓÇ´Ua›Œ)ŠO9Ð E'Î|×$î‡ÖgM‚Õg9­÷c–&yUt„½ƒSÀ\£Rz@À)êÝØ‹êp…,(#´çî´Œ…é»(-/ÓtÉîtl{ãhqÙ¤Õqi/üD«åÒœRy»¢š#TlýÝ8µ”-˜ÆÃ ¹¿Iç(/…P¼µHV[lj:êðábìõVêР&âà»G(Ü”†°ŠMÚ·÷{Ëeq[ Ï·ãÙOgF“¯{Dù±Ú® d¤J¢…-Åß]šØU8»e“\•<súÓ8yðRcêò ÅŠ3ÉüJfØZ²þ2pHŠŠÁr\pYÙçÓyø#íö• å=Š;B'`‚ó.ÑÊ Z¹I€ã’ø?žÅäƒU(gRÚ_’ÏÃÙ’Q⢠†¼a+‹““Gý‡åù'n<¿Ö¾ ‰qÚ9N74ÝhaS >HåŠNh°5öT¦Á¤ÈûtGÛ@–<²nŒ[éC”¶´jmAY»ƒ­²{nÆuÜéïμĿÞVgŸ>êœw–¾äØÌƒ‡¼Ï¶Ý«p]kN°÷'ïg)@5Â&«snqÜD¤|K‚Ά!Ÿ!Ù'Zê‚EnH~Hñ68³á‘UpÙA _'¥ŽÖ”탠¡•s­ ‰ÆMJ„é\x¨MÄßnÕwµ(þ¿CÐôPé9ZÓs^9ÙQtäwú`Ö 1ºPiW ‘ÿL¼¡„+†,A•T'o>æ1¡ÇX{ˆVJŸÊý´’ÇoˆZ_à÷=ášôb qÅ7÷ïòŒZ üCæŠ-¡D*¡ KØZ4¥  ¬­å º&só!7os3"^ƒŒúdêmÒzÕàͼÞ/‰÷¹‚F±=k>6 ׺`æw¥ÜA¥dÑÁv•RZ³”ÐðraOÎC˜5Žª…JâÌBbFTbçcúJ*XØqØ ¿ ´Bj ²áÐcÂØèÐ1YÚR£µjãe'#=‚ÁÔ[œ)ë !G-CÞeþj{U$Eµ\—'+É­½å‰a}\gøüÀl·mpVÎ<·v–l¢;„.›Äæ]悇ÜËš—¹™9¦Í&HO2;ŒÈ&Òã!¥åH—º2™Zêã@AˆYÐÿ)Cø¯9Øø2÷¾\W·€ÔCn’È1Ï™è^dvM,Jœ¡k»±òœŽ¶XåÆ:Š¥F[yS» Mf±ÛB™wÙ£[$u8v»¿o(6Ü ÌëÏñ1Ûw…€çg´ò8µdCDÓ´¯f¹‹C¬çWÜDJÆÉš<Èw•öâŒ:Èãt Õª÷XqÞªn72 UlkSpî»4«nzÔz B7ø¯vCšh>Tü¶?Á×IÔm¯ÉenÅŸu—¡nð¾&' Z ¡ÀCOQý³íß•¨!G´$â’†0´“5ëã& =NŒú|¶sÊ—Ëmµ• f}w+™¨4±1ñ@øtB®‰‡H ÁNÞ-o¨öXùŸÒÊ™I¾FÎa|ÆX–B(&`&ìÏÈàÑô@K­däÂ6 ãÑWulÇPfè àçOPfûó¶íHbnÊÈÛsSTÊK³QÖãhŽaÞ¿âu”€Lv« 9€à­µ=H01°§! ŸHòcP¥IÁÔç­p®Gò•î`âTe°EJê(zL*;€)iœw×u&¹w[MJŸñH`좎· uDjZ×H|Ý©=h…rSlg¯¸ ÂFjæ÷´ ½•‚Nx­OìvPl½:nƒ§wv5A¡5Ò!È)¼¦|/]„׌¯™/´­ƒ"ÄôªGÆo˜ívŸöàÑ3;À]ÖFzÍ]ÖÎ#NÌ”<@ÞZæø ƒ·é`Ê47Å&#u?<6Iý³¢¬$­ÀWVãnQ‘ &ˆ K«f´¸KÎ eénä¼H·Õ²»–ó=orªvf4àÿ]wfÐ F~g÷ìž .&¦™ej¿guU~uʼn§-ËCšÄ˲:‚“ ÝÑî’¸‡ƒ%Û¾bŸHAÏF|!¸æŠVƒS¦‘ð‹ u›@"œî0b² "'ÈŠÍxèo™¨Ñ)7j}ìÂú"M¬WƒæñKväæ´ŽÙ3©J_Éʧ¾O»Ct4žN˜Ê Òbêx1Ñ{¥«$z(Ên)€=®·ärv¬³­íÉ…7i©Ë"ƒk)¸  +ëàð † º·•z‰„iŽÓé©ôB;í®'ó{ •6Ížwc Pµ-Hõ/¶²æè÷œO›Š%* UöÓÊ%’ÉaÄЕ0ânŠ·ˆa¼Øfå^±ewÇäÊ#íîÙNŸýÛeÄÝœpßtTÃá>¯  ª±é=ët ¸cè•A°Zž\}ÏŒd^3Ãq6üv¡_b7&EY‡ö‰s•æŸ×¹J[u³Í6,6dÅðC}âOÊÍÍ—™_®Ð3d"k*Èt[‚£Auà T*£èH²WëtK#ÐA´•¯Ü“*ýh¥+s’6¤MÏïcö Ïüqc¢ÌÄL ã9‚î»-Åé2©Àû?ÍmBqÕ±à¶? Ý+#x›Hãû¶žE€šdB¤O¾ÆW¬ÿ¶ Éœ@ªšY—O2P:IV¾bÝe™oîoª¦_$ ‰q`¡ä«$M´3‘qÇʦ2dß©šaÝÚ±ÈØ-¦ÕRîVpîíhk)»›é›F;Õ‰„Teƒ)Ìæ«ç}ð$F»©E± G“™ a÷äÚ^.íýtâUe5Ú8¤zɉW^¶X(ªúe‹¤³ê—-©šÅM†èI²˜ù1÷~ȽÅËSoû¶‰ zÚ9uÂPÇt÷œçèBʯ£m¬LfhÜwXàæm*ò0c•7Ú“VëÊë\¡µóéPæ’Ôâè¸bªiß¿Vc*HYÞ  msµµõ[²`ÇÌÑiTéMá6ØÙU¿n¨Ž¢™áx¶”;L³€´ tôÅ0®«.vØ'×jª‹¨¸2»OˆAEÏífÞý+™¶Œî×ÕÑ”úJVÙƒ]”É iS<ŽÏÜÈyTè¤é…F8‡õrŠËB†–þš‘WiQ_îÓþHBÜŠæëï¨tºø—€'K\|5'¬xÁq=<ß[»² Óèr’Ù´âecW%""|ýªó5Æ‹¦nèÇ>kÍò]îÝv{´—Õ2G½’Í+‚¶ub6Ù˜Y7êz)¬˜l±rÀOqv+c*mifð 1§©˜X`ºçj¼À&ê¯xÓ¤¡¾PãÓT¢+#!¸C]Oðv/¦a2?N‘‰Aá‡<ñj!I’Èà—«v19Þ¯WStÜm©©9nY»wU_&£;B÷H„ßÙá<2]ÚÓ›pt¨µÕx‹€<œ:WÐÈ"…*Ð{M‚HÊþθߠsÖ3zGMc®‡çÍ–¢ÃvÙ ËÎï…ïtpñÏÉ«¡ä¹hŽ|E³ˆÏkIjIØu}[;å-¡ëáñ½P ŨÊ—äÚ¢¼&.Â"¹Zx‚{p¢_¬°H®Ì¬NT¥])›KS¦iA%WW¸æ-ìh½)Gë «„M»PÖÎéŠsº²Ùc“õ„R­x˜»ò®àÚý.é0†ú)¥¼<0…[ÅþçˆÿË“‹_PÌN&ÆÐ!Ä}•‚€ÓFÃv›II¥`N/@¶žž¤c<¦õÕ[ÌÕ‰gþ*Ë@ÚÙ¾ÞÝýÎô/ò®NEµÃ£ ©¹ò(Ãl[ÅGÐÐ@\Û H^µÞÜ`=Ó¡æž`À)F!N1DêþB`ˆy[Y…ç —£ª3U DpÞ•ÑFÆã‘eçŽÌÒ|(-§¸½Ò–3™$K&°®cðË;ñSÑÃL†¬›ªá,= º—a)KÅGUtÏ…ë“*i«âs†ïÓ)Ôºvá~-í*9t›ºÑÏ88³õ»<ª²/ÿ¢!‹~îåZ^žøWûüÏC˜—à…þœ!ØÄ¼¿?ˆyÛ—„¨l!N=û3óð˜0ñ¶æÅv·q ºy•i=] )P±îò„:ŽY߃3ƒ“ÐËl•sÄûvº,iXFxÞiañ]¥%=*ê2Uç6²'dR*Õ4\gÓª›JáÖ¥+BË)U©ö(·­4Ý›\ª<îÑœî(vÍ‚)¸ÖK?ÞÎåÑUĵ«JÛð¸V­ZùÓŽ 4§Œ—ŠOj-#ñM’ö`zuЧš™:ZÆ0lЮ̂]¥ÓŠ ¬dÇÍ–Qÿã=0…26 •´‘Žò€$ ¥3Ø3wò–”C‡ýGé,IŽ­¦LÚòBF/ò¸oI9¯5 „`¡âß:ª*¨I£eYUŸÊ£ŒX§IüP ,ÝûýZ0ø# þÆt‹›Z <°ÈtÄmÙb¾žÏHš„óAç·Ô ZH3=‹@µÎëå1-²ÔWcÁƒU®ˆò3¦ä¥ UáY¬‚]ñ«’s’yaÝÁ–Xm¹|k·Æiz®*9ÀTpih Ž–š†ô¶¬ž_ê(èž%ÈC+U?ÍN·Z^ÏéíÇq#ñ«´ºr;>›CzQ?ó´BBF»g°GÑe)d¨È4D§õÏÜsˆuè齋8*Õ=»$—%#»Ãnʼ-´hø2H±(ºîum7$ô–[‡vjÖ©pcµºƒÝÓlÚŒu¸äMô£CºûGo*Sp)KãߦïÔJMæ³¼T<¸`)ú]¸œõÅeCq´2r—%z -«Iö÷´ë[U”_^B‹.UdLVK*¤¢Û)Hgµ ˆ3ËRNÐù(ww96…®ëæhäãkWš¬ÛÖkWsÅJµÇHVícl) Ûç¸÷«Ì`_gûsî½È½_çÞ?̽³HÑÖ“°ÚH#ÃàÉÈÒNRÐ{î9ÄÊRÍ ´Üè¡•ívvŒ¬/JÍÚÈJŸíadуz†a펄n0c,y1&ÇX"KlyplJÐ fǨEe¦Ð§ªNdï/¦ZÉ@ y¨?¯¸!8»P.Á$ãë"K:» µ[2ãªò_!ÞIæ†Ökfñê‹ ÖÎÌÜžká#Ö’%öô^g¢ê„ÆWHLãÁRº$Pý˜âöë}ÕÈÜÞ'v ¨­$xÛvn zdš•à®Wƒm™îÍ(àqü^9Hß­o/ÕËì‘QÜ`—U%tƒ.ÿ.ÎÆ]‚Hhy—ŸFAÜÖAã>B7äBûT²ÆNS¬$#MÀâYÌé´—‰ˆ„˜õßmúÌjÙ’GUT|{ºWت}¢],^†ÌÅLó”%AF+©êsøwÕ+ABàÞëW‚¨lجß׬£É¥fòô"ÓCh¨ݸ«4:Q¤ö ‡¨SYiéJí9½´_D}ÈÝi„2(kã^Tz–·`!Ü£½dݵ2Ñ?²nqk ‚ÙìE³£âº-óüp'ËÚ¯ºÏ(Zñ'ËmÜz0• ‹;GåµûEÔI0Å/­+2Ñ·©ÛúÕÙÒ+­£¶Y‚±UWñJT¹Ö%‹«™õ› ÓK7!~ÛÍ,1¯iq{®'XèÅKÜÓsß»9ñôš·–«Ï¿Ô Zñâ÷Bߣ 7±ñ”¯ìhôÜs€ùS *NAU°OJ×2çõ¶ºð_[cœ–~#ò¹ÞË/-„øì¼ÚòúIz¿§zX1"·ÇÇámœê¤Œ¶Gý¸èé]=•ƒyö0»C Ü{—ÃìSÇÂìŽ~ÿnK:®„ÙÛIGŠºæ:ôç=+@ÿ;ôÙZk›æP1¸çkÝ+̱0HVÑš(õ}z4Öý/äìqµˆ½ãXÞ¡Ôyv£cE³ŠÚ~Y¥qïrq?Œ³ãÇ´G&ÞU§Wz@Ð{%ãïÈ|i Œ?º3þŽL\}ü1˜ôÓ@éGbØïÈP¶Âë(Š>QLüÎ{FÏuü>GûçjÚW|,ÿ ïI/‹„Q†ÈL¢ÕœEÄ_Nþs HÎendstream endobj 1647 0 obj <> stream xœÝ\Is\·¾óWÌqèÒã~‚~HC´[~Ÿ&`¿üušðq^OËâȯߨ9zNwJ`xv|NW²ÎƸ|ºq ·|Lc+¢ÐØcëµÑ’O¿Í`‚Z~:]iã;ÜRÐ0t Ã4Ckë•_^f°Ô¦Xû[ä}ÿ¥3‰JFko"ßñ|‚Þ3œ>äï´ó„‡è¼wA…b¶?Í»Í'NXõŸjkF},ðÎh¹‰ Q.ßž®Tèl°¡ +ßh«m£}öZë¿wëËXü«ø–/3ñƒœÖLg¾fð~¬•wË/Ó›• 'Y¬¤ê¬q2K ß ­ æ›åo †ZG_ð¿b:ÍÀ†±ôšÍ¾Î3¬³Ë»iÆeõj£ %DB±;—Õ{6æ„Ig€®G jp·ßR“$0´_Ñg¶3ãÔ½e _ôÇUKI#ÕEYJ?9—`>§›æd­Ö²Ðê•2ˆ!+å:†…Óç´‚VAh|lFp¿GiØpL±LÇñ,² Ztná@®¦ Æ78"ßÙÇúóž–€Õ‘;Yßdr?TØgëË ï§á»iøßÊúÖ|r±3^‚O2t1Ä0Ð\€ù”Ö“&’Å Æd1êÁwÏî8 Œ‰ÐÈ^ä{^öp+¤n2SÁ9—+±WìÅ…9”ÛiɇåìôîxLПOGpò}81|˜NÎoô}³|Í¢ÿØœÀdçr^MŸí"“íuk™Ì‡J2©: (—É‹ ÷«!IrÔïV«Šœz«¸Éõ۶ò€P?CX¦„¤xea(V¹À`Ñ#d¯ƒ¡(‚–À©+0·¦/C”GÍ´A®odÏ¥{þPŠ$Z™²Úû*Ù•)Œ³Äü8w…$´M¥„w†õŸ÷2ssîq¸]ÑŠ&UË 5Kêé4©'!¼æŽjCø7–ú§Cæ¼SËN«Ðûã Þ“#Xç}¢U¿•¾›¼ÐH‹O¹Â-dܽ_«~Oxý µ‰¸RZ9×i¥Œ]¾%›€ _€ç)YGJGSõkerZÁy†F˜qÑQ‰ØT iP:Û7›·m1;/DkP·/§Ì ‘x²`/ UT°ä›ú4üMR ¥òÁ˜†ó\:ñ²Ï±YN÷Irô?ŸÂ ¯R°€ïB ,°ÏÁùíl¿i¬Ç|¦Õ’ì=WÒ RÏ’†pHÒ à …=èö˜É48Ch˜ìïa)Œ!ÝÃöwMõ=,] ¿û%+]b™m.ÇeÉTaͽ§ÕsÛH¨N(½M’P'Ð;?´X›ðø„–A0áxÜî§îC¦e¥4§öè¨g¯‰Só„ò–÷ÄÔªiÒØ\§ÃðL–Ï›”£Ê¥—q Ò­©&w½5éî[ôªBŸõ–ÛymGÜ ýƺÎ*ú©ó¹»ˆD¯ÆU¾+ ˜tÏu^ò+x~“~‘±sίšÙЬ‘е<æJdÙ¹**ÙÛ¬yµøÞSXº3õ1•ä=µ¥öŲ—÷¤‡XnX^nÚ5jzévù&k¨%‘ø»žM¶CÐvÜù¤âíe³¨W †#›,íéq«M–ö.õEï`²(‹q–r/tûºÉªzjR‡“–®Ê!çc$Äp”q®ï(›+ƒ|‹ íæj­_ò"ÛUãîÆÔÒh¨ºÑ‰À!Ø#6Ï÷øÍô\ñö&ê&·׸ÖGFX™Jr{{9GcÞ’ÎOÏÎÃcá9âT‰ªXñ®Ið÷ùćßüô.ëöt¦MÚV–MïÝ7ݧJ‡Å +J=Œž¦©< 1 õVôHçwb0­w Ô ×h 65~zdàÁÈJ%`æÀ³ºéÚQk½ ‘Þ´‰Í?äAïåô싽õæB[¬ý~ïF®•ö¤Îm'q†m^oðóÜõÈJ_k.eºæ³©c T[þF#个æ]€+¹ö«)­‡:ì`mÁ•8‘Qû¤k w q]º¾à6lK‚Ê.ÿuJ媋®Ë¹†zòoðK^µØŸ¾|:´¬Ÿd)$èJÊ*[š³èsñ$$’úÑ ÕY’µöú»þC·ŸO­¡'¯³¿ók© E+¾¤Æø0#¡\ÌËKZ 6mõ^*m¶‹ÚJ­/Mz`^ÿa:@ÛuÞ±ÌÍôH÷ ³•šc6ÿh­2ûD²r ™ õCèˆHR>üÿ}ûQ#§#ŸR…µi=© '5cQòëf5=¹K‰Ðü3“QþS1B-«À{8e–rœÝf$Å’ÎTœœZ—7sR œ4MN&ÔYâ–«ÿŽ^¸›¾DlÜ뢜3IƒŽéÒ'ÿlÙf}endstream endobj 1655 0 obj <> stream xœÝ]Is·¾³ò#ÞñÑ%ޱ/¹ÅŽJN*±Ê2S9D9Pâ¦*’¢)ÊK~}º æ-ä³”Áx@£ÑË×ôÊ |Åð¿ñÏ÷·Gluuôí«ñ÷·«¯N¾|#¼_ùÁaÔêôò(þ†¯¸4ƒfre¬¸•«ÓÛ£­ïŽOØ ­vN¬?ŸH/-×? ;(iíúÿ¿2Ì2³~8>á3 šC³\ø±‹öÊ­Ž#Í×ïÉ?ç”Vùõg2ß ~K©­°ësü¥´ÖëwÇ' Úi‡CKÏ#Do¼³ü9’'µZÂÎÖ'\±‚qµRI^´ŸªÞÇõ0Ïäz8>1‚ ^éõ×0“`Rz;î¸u”€qVà›+(ø@ºÇeh'`¡ä§7¸Pã뉵aúkBY%Nt]l&nDAìù¸?°k?k[-TEFÚºSÕ„8†ÓÈñŸþõHØ!å@ÆNÏA¢Èp”ÝW¡äÅÇ]9ãf}Iˆ# ü˜;ߎÓ¿f©§ýòіʹƒ‘èøcZ kb÷J-Ä`p~ênG¢´)vàc1ç‰ävʯN8tU†Çß²´ä&ajðÖx]†LÞ†0—ù9”¿<±ƒ•Þ) 4[qpšõz¶‡¨¦qV ¦€Î ?ÒiÒKƒk/ {úÄ­å†i.ÂvŽ­?VêŸ5©nŸæ{û@(=›D÷ ö„óA¨RÌï£0¦Lj!>Aþ sÊàº:w1 ~D“¨5·ë_bæŸH±œÇ¾bà¥}ºŒ#xçžß‚Q»BíøÕÄ?%Ý œYÿ3 -=S ¡˜ Ý”îÜ`˜š¶ìû¼×_çÏ×ùó4|'Mì`ÀéØõ7©'yyzôÎdüêê( Ó«ŸÀ·½:R»ÁY)ÊïV·Ðâ¡%5Ü}ßu€5ᣄ 2C Ìéè i¯3ÁÊ­orë÷¹õený6µ¥àÆÀºG¹õm“EÏ õ2·¾ÉŸ¯òçË ¥ð;I¡¨  k F¨tQt塚€îzñ­FIIÄwî ˜†“ÙYE‡þGƒ­z‚η ††¹)I”ªFµ:ƒKsÞ5TJn}žó…¶Pú"QÊÍpÔzàÁ1'=º¯òä³¥«Á@Ÿ²¦*\!œÒ€]!¼^0S%±ÌPBqF·HÅ­i°Ý%°8øu —óä¶ #ˆÍìÀIDÏÃ<ØëëŽ"¿µÅÊËJ[îç¸gÜÁ iŽãh¤“fÒyÜKéjÊanØC³ÄM`Zÿ9û0Y}iš„”4yÏ¡üÍ×.I‚Ù7“äèpd±gq‰ót Pkeä`]ø£‹¨®39åäÏs7è¤ê:«Ê¡áˆ®Ã…³qBW.€Â…±‹Ù…ƒà:>H“€àC\¢ð-0æYþœ»à™­¼#R­¡ííF))*a#‰§ÎfJB«3‘RTáÀ„þþvtúÅðŸ3"ù÷Ùñ|lÀ‡Üz›??7qãcó“€Åw˾Íxt&¼a ;wv ÒB£ÆÊ„•éV sËàÔ",¯cS LS¼Æ{ÐU \_ì`[Á`÷?¥+CJ­ pGècÙ‡„Å”êÖ¢meÝÒô”ÚØ&b‚*L‹†*` ³NOSM¸!Òó7Ts€´ý”ŠÖÊÃo¹•Û aü\£Â´°)ˆ,c쩘I€&(×Cì¡Í¢E ƒd‡£ªT µ=©jp£åa&3xežÁ1c÷w0m@ÖÂD‘©7­ÙCoš¡}^ †Á߀)Ùo¶Õ¬ÀC©RQq+x5O„>à¤$Ðgšp7Ûy*:ªA…äqš‚'ãd"]QEÈÎe$¶t.TÒ(ϲ¤S ƒJ€éÎ*Aào]Œ?s‹»%‰9U gÂHŠ$èHÂß”ØP¢ÄVz€Äj ö.áÇrú‘¦ÒðÂX n$ôÍ(Ab0u®$­Ê Â`·§hd¿Ù&ä Âæ\oIŽAøHLßܽˆÄ´¡Bû~¾a”¶S9ïDí„bÔ‚‘êÒ#T.NÐM¾Œ³± Èçn!Q Ò™ ó(/ÆûZàh¸åOÛâóC0'ž ß ½3Uí"ÃÝ2~>4?Ïr’%ƒÅvÊ€Lr î2 ÖÿÈîg ÕÀôžÞÅ}ÖUþü3a^C`[)‡fŸ" :æMd¼´¦‰P yßAQD}(>£ÛM†¤ñ"w JL‚}uFÙ¹Îôâ/L¶([+ò‰`¨¬àmÈœâ¯´íº–›ò[*;¡{ªq—%ÄK* hþ¨n§œíK¨+ÕAÔö„öIË\ïé*ý)“0Œöƒ¯ 7Sµ6s[¦jë߉ͪ•‚M«VZ‚äX¿º…”žZöÈ˃‰CÀŸ&æeI”•·ËA@˜mSÆê)G\…;S>œvNਞ.ÒÑTBPß¶o›T²´ªSgK®Íá~ªBá¨_ áÓ–We=ž~Ô‰˜ˆI»H‹E°É °‰È ¶28j$à6=»©b—0‚²I$ãôX{ ¨hH¬ðU4zˆ# úBW]çšdÜÅ%­ýÂ<#¦Ï×é(0Ê(3,…K©RcàÃU^ [¶8×%'¿cŠ,κ½4K<Ž’ËÌ™"zbÍ©"bÆÑ‚ëÜ©ÞaKJ›ÀÄjðú°×ÛÂaòÓs󠢊݄¼Š‹p `sC€A×>EF2 sK™DŠ|×ï=ŸL"Õ°òíK‚0UÔtŽÑŒ“ç)”ï%u)À¢E !k®·Ëjì<ýx¤à½š¬ñÔš•V{¤§ŒÖg ‚m²EÔ€[ÎR@©c¥GcíŸ<"çû}Hyú‡kRŽ•y˜ó®”£<ÇlCìô eR—* >Çe^|—”6)o¨C“øy™vÞì°!v h •ÚÛ?ËÀRn7ºn«Ñ˜wªS/ôÔŽöïìÐBJŽêº° €ŸÚR×…ñ°8±ä–Á±–`ïìÀ±W8¹R3rˆ½…=5ì=8Ž8 ¬‹ÐxA8cÜ|œŠ®së_rë]ný[‹%ÍDÖ Œ!§jj-šÞ< [¨$³¤vJ»ß“À‹h}H¥:¡-¶Wå9m3oÓ” €ÒN ±…LD¯k[º2!¨%n •|„âYh©e©€!ÀÒrBÀHr£TÄÏûüy]­/ŠÂÆ,ͧüy‘?ï–-Õ²¬W˜‚^Eñ… hp5è¤É¡D•ÀA^sÂf â¿á@i êM°´B ê•“š£lr c”lã ×!¹}Œ£‰YÒ D +pƒß9gü˜¹À$˜-Æ Ó;¯¼f\¶ |s+Æ2?Ò]d´i·Òn…±=ÖZ),û)o¡ECKjØCDa,€á§ÄCšBü/c-úæEìbÀÊ>p+ Ö“ëÏöðwN·Ž„#©d^î´ÁµF¦$˜æCL^–§c5¢³*i˜åä ‹œ[Ûy$@Qמ‰ßðÝHü΀<ý Q‰®§˜ªs¨<Ïз ìhÁf.qC8~òÁKU NoÄ≈ĂK½!ÐÞtÆ0; þÎÃïr8UÖÛK,å4åÉrª|ŒË³²Å\ êc©zQ…"sÂXù.À™¤LI/·Ky~ük¼Š9ýÀ¢œ^˜Â̰¥‹jÚe"ÊòªŒ"ÍIÎb:R]â°Þ9ýfhUK,r\>†@Ñú~z°cw¾é”8©ÛÙþ¶ôõÊ;{Ù•NféÅÈVˆMvœG.xîÖbŒœ¹«ÎBÆ{Îx½/óð¸ÂBBÁøì¢0X“ÈÉ}ƒ(üÁ.¶ÝlRsº€÷gœíŠ«·Á,N4Yö>„,Î wSË>˜Å€ªaˆ!ü¯0K¶žV¯¿ÊŸä,äCþ¼É³—P§Þt¬¥³Á:ˆU½›6&#Ó_¢£ÈŽÍ³Ü“漂Øáþ(›@-„0ãDšAX/§à µ|Ð>çÁXñŒ*ާ’+  ƒv̘vl§–}3¦±*l…ÅÞëßM`¶£& ­o×¹ÇÎyzߣ`½Ô³µ„õRãÝóÖóºdý«½X„†°%¢÷!ãEšœó`6H˼p’X!é–‹Üz•[r+Iã\æÖûÜú˜[rë‹ô!/¢à•‹o'@‰”1zD!`¡ ò9dáúÜJrG† ™‚žZöJ‘)<‘†ä,Ÿ;zÊÈ ª[5ëɆüØÜ¼‡æ†~·Í6AL#ÁXVÏÈðIÓ˜bñUÒ´±å)šÆµLר¶9®ˆg¤:e˜o)ÖôèUÑaºÍ­g¹õ±Ù÷±Ù÷ÝV:•nž¯ÀBÐÆÉ^M-OØ+´«âŸÅ**·¸ƒÔ,¦.»(ܯn°‡Ö,Ýñå){hñPgƒ‰{}Ûe¯ˆ¾}έ7Í]Ù¨ooËÍN`nèÇ« bJÛ¤ÕÖþ,"ÀÇf¬ÈÝæ«ü³] Ùv•qQ¡Y¾û²Íâg€fr^Ðì¼IÏçædo.šë|hü¾IÚ§fk.–T¬À’±ÄÞ!ø\N¬¶®O|Ÿ!úqu0¸u¾ÉÌÌ H¨¯ïüö¢™¯ªVJ(ÕU¹I¿|c¤)Îì§ŸZSvLÈ‚ü Z¼§¥ëœ¦[¬D‘euïïBq$µ„:$ë;ºÈûô›=™‹dN$æWº„3möÓ%©œÂSÛëÒ!aPãfU;[¸Ù~ØÂI_o g|0|Ùûn4p‡ÂM¿÷ªe¿¸ZвÌ<Ç~ÂÈ øBÆÁ–Œ>Yi…üZÇö¿p|éÆF둱{ë¥f¾sž'$óÞzlO3•4›IOüi’üs¢ÊKÑ‚`W\zKæÏ=ÞUT©eŸü¹Ç›‡¬õÿ«ÙÏÒÜÔ»Èy¥Àüæõâ]ŽªòUN€žç ’ž”…×\°À·®®Â)½¬o¿Ö¢¹PFÇð¨»Ç$(öëÌØ­ŸRÒYˆûˆl* çO‘Mb°qˆ,›¯6yÌf!]S.N$ s­J8S 99áïÕ4 'NGÛUmrPܬöxÒáªi±ëú×Yô¹Cý+>Å4QvŸëT‰•ò.!TçÊuÉ8„ÆÊ”*xQPƒÎpºÐK^ðjòÍ(MÕ^ks·Ä¸û·*H4gœ¬Ìµa}:Þzâáit½xgÛ2‹P*pY¤¹±7<à3¯v· I…N›woåÈ=ÂıH”<œØê>H°È ækÝ}ÞK <¸®¢.©í³ncghÞß!3€ì ®Za‘€®^5¼…+±0qjÙ'«ŠO §0Ä`Ì“3ã3‰’`‹Tv¯ [v¾“#8PÖlÌÙÚA¸*®XðA}Ûw9·gì{Ÿ ¿Ÿâ"„Äf.BHÍj¡ýP‚,ÁJbŠÚ‘Ó¯å" ñM÷vIÿ…Àfo[îUÕS×â­@áͺw³¼~ý6ÌM%'ó—p?†û/‚ÉN¶Õ ¤$ i×a_òÚÛ&NáŸ|EÚ!e6S$rY¢¥Hï–‰ãuƒü2dýˆìô¿ËGd_c/Cêxs‹û74èöP!£~r¼IÍäâ{«‹vÌ€QÍ/üî¢t·çê&hß}ß(ã$w´….,(>. zïXv: O+4ë$wyè wÚt¡ÉîO.àÛ3‹WÁqF|ï«wí½WùÚÀZ¡ü;½ØP¼.“žlh–¦Rð„ƒDÍn뛚7¶~"„³“íC3<¯^½^ßÑsüY/¼YæP}»ãïÓÍÔëi´']*ÆéÀ;×/jÁÀK•½±‹béf?val÷Û åKdÅtËב!å#.8.Ê‚}rçKÙñm%GßJŸ©T!ÙŸb³¦!nõ`3¯6îÌÂ+æu6?‚ê~së©Uj7¨X¸wÄåÒˆ/$·./=ƒ?’ý[Õ- )Nfv~g²|—f¢¸|«î‚9(z/ç t¨9äÔám‡äíá•È‘ÅËÁw#;ª!zïyÐô }+ U…ã¿a·z5 Iº|Òæs”l|$…‘¸?³iÏç“ðâhý|r­ùAü&¯'11À«|]v:“à™_ùŸX‹ô™¢ÚïŽþ ñïìendstream endobj 1662 0 obj <> stream xœÝ=Ù’·uïSþˆûxÇÅÛ¾ä-VT¶S‘T¦&ñƒ•‘3ªjŠCÒV¾>çÝÀè¾k¢¤T*ö`Ðèœ}Ãü²aß0üoü÷íãÛÜ_ýrÅÃèfüçíãæ7W_½Þoüà0jsóî*¾Ã7\šA3¹1VÜÊÍÍãÕß¶Ÿ®wlPšy&·ïñY[íœØþŒÏRj+ìöåz'½¸6ÛŸ®a¶”VùíÇë˜QÖNÚ{˜ Ü  þŠo9£¹–rÛÏäs®wðž6ÒnoÉpüœ˜°ˆÚÞ…gÃ,389~ÄãÊl°Ö8á¶Ï8l¦…ø%NZÛ~ŽÃN»í[²ôs~ñéZX„Cï‘•Ç:nL;tvû;²“§ø,•äÅváM¥µðPiq:¥à-ˆ‹ñD”¨î"T¶ÄÆð¶ƒ}úI ùËõÞüë•0@v@`7·@Nÿt½ƒMÞ–»Œðq LXÎR+/Üîtñû~D4yÉ 0ÈŠ· ÓðÓö!B/ì–<#¸» Þ…áìe¼Wô2Çûì,‘Ò¤¼2]C„H5ß_å¶œŽË8¡õöø*r 컸 ÿò7å`'÷&$<}ÊZ#Üvû%Žó¦ ùQ(è” |® (È›t³¢¹ˆSn#H°Áw‘U˜@ÉzdƒñãŠu̸í}Õqë\!‘ àÜŸ˜à)Á3JŸœ0žGDÀŒ/I´4N7ºpŠI  3"ðì¸wªØ‹`äb½[\ß+‡¯~õZ‚† ÊCpÊ*mí,µ Ý~ÎOøh˜æ¸\}Ì?åÇOùñ®9Jæ¾I¶J±Yø-²ð~Á– ª XÉét€÷×;¥ÔÀ¤èˆÒž(RJ R(ú]÷vœ”~(!¿Ä)ZéJU%Ž£btŠO­JéGïl½Òš¸].ô(†uüˆ{äðÖ›¨—Q7Vô‰@;Ø×sÝïâ(s¼!^ÂŒ¶œ¯ô®!@8¬²Æ¨%³>½çƒåLDÙ®õ(Ûø_Ñk š6Ggƒš¨îm&×犈#G|Ì£_š´ÿ±ÉO-6 sÛÁá·Ò·9"­Gªbp5*âïµS¥`×@'^ï}~ÂÙb0¬…þQøfx>6¡¤·@³_̦¤³ÀÜ—ò|IäOjâœ4ìt®?d„|“fû}À9XÖ6ÈÚqôë<ú§4Šùææê/ø%ã7÷/W |ôæï`Öÿñ ŽÞ‚`Û)ÀÍã•RFxy¸ú¡küׯ?,ÌKp°tU4þï3l3Ä?åÑyô} ¼&³£0…ƒùúfxi2!ûoókmýAXïý _ g¾h›Ÿ Íì£4(u‚V *Aü9ÌÖLÉ–-7{±"ñ4ç zôÓJS÷"ˈ=kØ@h cµhù,³‡÷¹ë²Axü>?Þ4'ü© ¤ÀÒ ƒéá^#¡?Âz+"Aò°ÄàÇ%ûŽüLîúúÐ"*ÊÅϧÄÇyÂK½Ë£OùñÛ&¯}Ê£oóèûBfÌ{'ÀŒTÖU:onŽÔE¿pP<{ øl¹€ßÄ‹¿Ü P vcàDkÀ/ FT9¿H".´#Ï‹ßúµC×òã禽ü¿v»,¸8kÃÚË .ôTA±[6sC%šnæü¥7 +Þñç¶ )>Z™[¸º²…3M­ƒùîF*˜&¼t«Ã€Š*ÿ<~Å»† 6(›4hð3y¦nÛ}z5è@nä`dÍ{G W ¦SÖQçd>ÐÕ ¡ÁÇSó$ü¨âG±Ä@¾?pf±zÛµ¿F»Ï]Ž^a8 ~ãÀ®nÅC`=°Mo‹Ø Õô¸[øbÏo)âSÔ~_µ 0tæÀücz²¾Ã›tûoÈ8]†Ös<ÿk>Þà 8?8ß ŒÑÓÅH^‡Op("‘„~ΔhÛ»Bƒî$É©Šib³¸ÆQ± ð¸8Úßl¦ ×ãè FNa<ì°•iÍæaþ¤0œ ¼CœZrtDÛ=4Ï먣Ai¹ptK .±ƒGªÅ(µÍÅÀŒö1¼h†ÎK'XZ84Åë¬Eláþâ[|ºÇ/wR ¾™Ëƒ0ý~œ"]WÇv6C¢˜ïǽh;S•ãç)´q |(iä:t3Á­bȈY§ …MµjC ÍäÃßJ"r —RÕ¹+¹®=óÄÑ,†HÁ,' ǽ)o5î ^¸X‰Ü‡TåÝN©KU+ŠfrÙ—À—<%^ߤ•:‹ß1BQZ)¤Q¥qz*¯âÁ ¯»W"g+æêì`<-ˆtˆ‚Ûíß³t멤»qii×1È·_®µt á†P>¸ÈNN²†"ìsc)«øçQ[ÈZFB¶íSÎb2_ZúŒ:Ù{Œ'7Y¦ÊNy‰nH1Hõ¶b˜–¤/:” üßñEï­àSúÖúÚ<‘Èʹ.GPÄí-„rpÅeR€‰«í¡qHj,UFÜ!¦X \6xíºX§Äᘜׇê6ä `STf Îw¶7"œ†dÊÖÓ©E>:r0N&¨’º•ž 3¨ª¨²5…L0UET™QõÃÝÊÌÔÌŒA5a^ÍWz猞šE7\+a1ІΚy¤ÓÀ1î¸@^{\ô»îÚwM›íqY´’Ý= NÎ{žG/(@ñœ¢¿WÏÓ¿q6eÏΔ!´)z)è07¾¤5Â Û ±^B+ªÁ;Y‘8 b{5˜Åκ“v€.´¢Â¯½ZªA ›Ñæ°4åÊi­mµ.áó£²Ó>§ÍÉÜè©I²×e©F#geù´‡h‡I†rÑ&s½„.{BAŒ1 ’w¥°f² ;…5{ÙWð/dE:SAm‹cD“—`.‹%4˜~ç:^ŽjÛ×?wãÎû¹ºý*AP`ÞƒjAH†ï ÉÖ©qÛ¿†¥gªZ›pÊxtÁp“pì_"½ë£Œ™îðŠ‹pØBOz…Ä_â ÖäD{N6ˆ/² QfÑf¡+µË9 svX·S)Nˈ˜¹)ïcU“•²5E6RùéCÔ²¢vÛ«¸¤f+îV,ZêȺP$æè¡>×èCWhBˆ6ê1ªøp &Ze”£R UA•S4/£úM˜þ¾ÞŽ—DmÄO(VªàRÃø—)ŠŠ ­Æˆßå×n›>]/Š@äXo›(± xÇ*·O%D˜êö,„¬`î±k)ìèí j!„DùZXöê9·¡&¶î„Ì0ý‰ã3üMï6Êô·13ì±ÀT§‘c2üŒ¸lv5ƒ±P ±ýs3æL"ÑŸŠ=Íhœ!¢‘ˆ"^õbêš'ÉÑaª¤IUz Ξ¡4†3¼*Ë‘çuš½ ²òƒSBìAÔOÊU3]¢øñg€‚2BhŒS¤‘#ˆ–@{–ÀÒZõ›Ék;ìÕ„:ÔÀ«ÂÂ=²J½ –!Ï©ƒW¥ ¾§5.VËó1ñ:h!<åàjqDŠæ«Û"?g¸)˜cÈZ´üÐë ºä‘ šßsÎø1m½Sd`\ƒ|&¨å5ã²W!áÁK/•àù sðå˜N€ÊGa®#È3º®‹Ù~ct f©›yš·Æ£IO2½*âW UÑÜeøÈC !eôÔ¹òZTœ8ùIŽÿžÇo+®k³'ÂÈ©–y»|jaN™B¥[òŒhQ펇ÜeIÛËaG¥ ÿ!¢ž"ʵè Ï¿ŽàˆRhžÔÉPF‘±Ÿc¡¸|l3àø$™Uø¯J·¡Xn+ø¹SPËpÐ' )h; Dwv7™k׆›"]&¬ê>]Œ“ Àôh:¡¬u&”×N#Ç[°(Y\þå ÛlZ^ÀˆøvÅ¡š×fa[#ò±îÀ ÞjFÄdúk$!§T¤Øqø9À2<*]àÀÑ» cMƒÁ†_ßa§U’!u[Ê´ÑÐs˜ž€ ɘČóh†2íÀ³H#ǘ¡±R—83¿3ô0 Ú† ÁnÜæ»…´n¾8z©á 'GNŒ˜SŽ–CT—GÿÇ£Ž²t&T) 6UÈÿ¾˜ÖžsÄ™q@AÓzÿ»<ú!’Rc’B~U8Z;´©¯RÈgtì' ¢ÄoÂà8r %ô$~’]èóIqe¦ZªY ;'6Å„ ¥ðOÃUާÍî'MXþ2,–ózz{nž© U^±$‚¡IyÿS!{"ÕôŸª¦Â†´Á»ºùýÑ[f=ï}¤,^1 öeY0œ „Çr}¤,hËí, Ž‘Úk4×%sßäѯKQ œÀ(@oA$˜Ñ"'|PóL4zÖÚªhçï}~íkd!W@ô+í¡Y°FV›‹‹]çKL¢°Ft9õ>?6&@»ô¥9Z°`>)V˜O1—c‡ào-è)°†-x०2E…º˜…q»—,§Z óôº+=¾u¾÷Õ(”òª‹'öÕk#M•oa€†1ìZ‰ÑC¦… 7 €VÑÒugÖbhªì¾€É@Ð÷¦9·>|,‘“óÚ#•úÌyB"SèÿAóâ’¤ØV,‹”¨í9 ñ’CI\“óðÿ³a“̉t •¨Æ/mŽÕ ¨¸ùß3+*iá0Ž(/ ©aeNƒŒ‹-É:ÂÕ•Í3PqDZ“5¤–à(Âû/·^jæ;9ŸÆ•Ì{ohj‰F¥häŠf¥èèã_ÊËN}õ”Q’s±'ÞÕâ¹Ú§=ûàBÖ8©6hK‡&BìÂÒiä¨>B‹ñ\bàîÿl «”6³¼”¤M¥7gk?TpúR•7Œõò³˜ÆBÑoK¬«;,È"®Ë–»™®~jžëÌN?A(õ.RÞ¤¶ÙÃn›Ît,¥xÍZeíYgAÐx»¾,гÜç:¢XÈ)¼éöÔÝ@6¤Êg-gvðr¹Øö‘BM\[:u8PËE@bû´ClPÒFl8†naï ðiä˜`ƒ20èp‰ÁH~jèxFå–%¥4ó&½xÀ‘TªžÎ]DŠ÷GÞ€{ˆ79kcJæïBmàbó‚Ç„Üô‡”i&TÛ¨Íöåezõ…D ?_¢kïñ’IŽ5ÀÓÝZ£¨ Á›'j ‡»cl­1©ü¬7ªãªi³]U‰¿:1âp½ó`x­¬…W|r~ˆ‡Ž+VÕKøI¥nùšwõ1-t¯‰¶¹þ:Í.z%ÞEY®í­{b£ã¤Áq2µÚû’Œ±Í£sI†F&³n°XÁn]”Ô8ëÞ¯rè·Íaã®R¡-¨·ÛòÓ8Ö¿Ü«]>ÑV:(ÚÛÍzüL¬×w»Õëéw»1lÄôÄÛÌÛݯãñ¯]I—u7–± hš´0Ùž‘ÜX_ÝêG²VÝÁ-48}¢îu8TVpRRÌ„r¨דPfÊ@\m5B™Õ» ÃQB­^žÊ†+i‰æŒZ¾æ §àµ~_ã#8º¾7¬Õ™Ô1iÕTÑ¥Ô¶1¼(ÿï´’¸°…ãzÖÚ× –`bg¿º¿ÅLÆÃ°`ÍÂÖå&;¼“[Õ—‘œ½ågɣРV|Zo2˜Kp»®$øø¢ªÕ°DÆÎ÷.³Ñå†üܶSáJj¼ QE†KìSõǰm»ð¥ëdŒB’þxoCIè\; Ö«ourÌ.Õ¹G‡'zö«–®—±Ø.&í÷½§Õ‰V¼+½ó¦}•/ÞšiŽ=ÙžW>Bã"h$íò"heFY#ưõ<š>ô†ó²$²v4kˆšÖñ3H¡±g"[v_ŒÐàëËÚÜùÁé]ŒËÙÚ)Ç5°ò§8Ás™tîü†ß–|o4ÚO^eø¢7—°ùÓ"Aw`ÛÕsýoDçËØä¶•-¼±É–±9µ7‚€šTÅ.ˆ`»•›ÓW:P¡ðî ½»wn'ãÎÔh• ÔFuUö¥;PÓ8b7í;\4®'÷!ž3ú™T|zW„Ì9)ñ*ÅûD;4ÒºRjÄ4‹×`Ð(ìm®\?­T…öâ¶¼.ï3HéÓkï òxV£@-êHV²c³+Ÿ…Oâ0_ý¼BÎì¸Ï»¼ãúZ5è ¹®Ó/ÏŽu+¬Cr礜Är¾\·l•üZï’9•/ ýñãÌ€2QéƒxR¹…"ðôX*Ó¬w×ßïH¤î›rH Âá,I?7 ¥Ë„8sØ:¸lLˆ°]R× ñÚpøÔž×¬D }`8{ı<Þ#D¼ZW 0@u8æ²pრF9g\Äh6ãû Ü?çÑ×yô‡<úMý.F>ó`kS%•¿k¹ ü›<ú:?’Xû7+L‚ Ôó–ïîoÀ‹vDWQÒÂŽÅcŒ$ˆ¨–ðA$n\ú“&œ‡«.’²Á]ŠÞß º‹”hhíÞxg’³3?ÞCgñhÆœC‹dÏ.ö8»î‘~ pÛ^êCï‰%yx $ñ7w«Q…t£‰ À6ÐMÎ{ç\¬ðœºÂw³ÝKçV:4Œ¿\ý7§É³×endstream endobj 1669 0 obj <> stream xœÕÉn%·1g!È7¼[žŒQ›û’[l¶'†Ç r°sFËÖ2#iÆv¾>Ud“]d“ý6)ˆáô)¾"YûF¾_±¯þ7þûæöˆ­®Þñ0ºÿys»úìôèÓ×Âû•¼F­N¯ŽâoøŠK3h&WÆÊ[¹:½=úaýîø„ ÚjçÄúáø„Ìhï×—8¬´WnýˆŸÖjÃ$&“? ;(%ÝøwÃ,3ø;%íÀœY?ÅŸ1 Þ’/qŠ,À SîáSJ«È þÏ¿»Š[‚Õ7oÉQpä°gÅæðwRI^Àx0Œ¬StöB†³T‡í,N1ùKœÂ¼ã !NªbÊÙÊH0ã„K] gã‚®<À¿ ~ Æ)NJä„þõH8>Hc½N/€™âìÿ Ù\\›‹Œ½ð9âTj•v »r­S…Ç=IaËñë 7t’vtÂÅ •áyc¸–²¶¢’AÀ‹#Çý*¦aÏA‚w«ÓoŽN?ùa} “ÒÛšŒ£”ào>}-Aè¨<úAKÏÒ®×^8 ›ÈŸwøi˜æ.ÞNŸgÓçÓôy9ýì©9÷<ƽUºÂ¸K–÷vÖB¹³càF%ŒF‰!Ø% 2ëôúÁ %òSœì4‡ E†ÖôØÇ+Q±+ε »âf §¤ûážËqcŠéˆ¨ü–a°9ÁDÁ±#HÇ3Cj'´ª ¦ÆN'P•êŠG0ªàˆx#’æ €/`.è(g$Åóc, ÔN»#‚7¡¸Bœ§£49M0;x+5¿Ìªß®?l`èÕo§ÑÓiôóiô«<Š‹üåôè;\ÉøÕõ㑘^ý ÖèË#eœÚ­ŒRbpnu{¤,‡žGn޾ïÚ¬ZFj›%9M4YŸ¸ùC%ó›Œ-@8ï*>k9§¨§fåÃLž'«fìà7R¢…Q¶¬ÛAºT"ŸtÅAf8ü¦”‡¼îCü9¼Vå°.|FX:_ÿ,I-Ý™7¥È”'u w¼˜~—4Ò-5Ai+@'Àq[(@¢Ôâçõôù0q(ÑoØÅeÙä ;gÙ MÆ¥Tzyô±Do‰b»áØ]nÖÿÀ½aJgo4ã=•ç #š0«=:š0­GFÕ'eJ¾RæßÒï«@WÅŒ(a‚ HÅÔ–s;ª&êQýFwÐc>ò®ô $ OŠ>“Q(8œZcw´X?O†œª~ªnâFôPåZšÒ·$û¡ï"4§ø’!¼žÉ_žrÑÁGŸ‚Ó¦À@é,~¥:‰t_tÙiNËžy¢¿¬˜0É"UZ—%‘ˆ-üÁ()ãIJgr5qå€Àhâ*@úŒ»RÁÆ©`ô’Zµ¶¥VÑŸ¤N$ ~A]#Fg‹FE¯d+6C¾,9êü)0 ô¿(áåmøÇ´ß?¸ͦ•Ç¿¬ÿ~(=S=õøNƒÞ õÁ:šä2¢‡q·›9«‚¥ˆø¹Š€a©»nÕÓÑh˜¤’p´°gf._ ˜vEŒB§ôøù†Ì¿"ÚáÕô=5qSÑ"(÷FW­&,`‘©†6D–-´! ¢ÿnÁ]¢¡>KWÚPX0eÆììJá*áVÔApœ—Üóžð7uÛË…âFä̷覵°$ǘ3,ÉD(驸‹¯ ô´/ h¸Ò¶fÒ¯ÿü‡)‰‹9”p.j!v´˜ÜS{üë±C5 ë¿:n‡ ØÂåpáÍä4Ý7]©‡)\ø89c—Ó(qÑž¦Ñ»iô¼5·˜jn²ÑŠ„b^™BènÚßAˆ$ÆÝ´t«’»ô;Ð}ð²ŸxJSÜLà°¶‹ZÝ7©CWìêÿ#mTmO`ÔrßóJæ€$\RŠ(ì^½L !}´‚e´”W§¨B-p# ͳ73pqâÁxwܺŠH¸C7.igCZ¢4Á^€¦µ,Ë …ý òFÝœÍy,TS)\¦Àç4¼ §!Ǹ£’Ϲìm!ׄÈ~fLA»* ëuÝÐMøËZTîã:là— "ö fe+ ²Q¤_„ûáTV¬lcnsØ—qSÀKNàÞ&Ÿ\"ʇ§9ð©méÇ•<ŽXe6³Dàö„ߌìqÏvù:ù@Ù×ß›­ØB/mhÄÌ„s q¦rfÒ=ó0¿çä ¹-ˆx–rTˆ úã6 ¯KasþEØ4«c ¨ðr`ÊtS¬Ôë¨@bò]U«ÞÅ+ª a†ÔÝ„ì9Þ³Â=5ÓHÔò˜jÆEaýÒDÎ6ÿkÙOw^§—`\iª¨ä“1nЙ¿›½yU98é0¥âß&ØU\©lJœq6©3…½Ì“Ýá—UR‰ê&Å1Øðµ+B1 ¸0¸\páÇpy>‡c*eüFÄ,.âT+U±Ÿ<D ù2ÉV< ðIÇ‘ëyõ½‡VrˆRJñ@\Õ¡mTÿIÙIH"aT×ná×Pïü2îÃ6SŒ»— G 7Z†ÉdpðÀ3¦YbsPqÐ<•qìð_OÅ^P\Ë—'Ñü,·‰¿2¢È@Ò*q`6¿,^|pìë¼Ç}àå!P U™¥“…I_ìÙ,p”-5€ÁM²õñ¢4VEñ/"HN•SP¨¸ýµÕ´[ÓœQlâJÏê<{V˜'gÔìbוÄYfAÂ_9óE!2æ>Ÿ>¿j×§Í _¥›PˆD±` Í„„\݈žGö(:ˆAFR¡èXžfÉwÓçÛj÷1×±”C ŸÍŠ©ƒ}Ö,|’šÙÍ´ÚE«yOS€6I7ïέwP –N…ŒÚcL6ÄΣùúë0]30ôÙì— Vͱð¸p®!‹&rAµ"c»6c·‚9ËÐ5êù 쩘>ñu*¦Àש˜¶Ï´‘±£,.0v;9¶ cÿ­)¤åÍ„¬·›°ÄZ}eüt'€_¦n}?ôUNiF}å=‡e Ø$!°—ydº0xÛÓõ·©° ºT6ŽÔúE‰%1ËGLsª(   ƘzºëœÒµ§'a:̲c šåƒöuöž¸“¨=Î…ÈZ5ØÒ¤>e'äKÒ|VR#+Sçà°kÑW}‡éW@î`Ùb^|Ñqà ¦²DÉ¥B7ƒec«*ÃT²ñ2òõZ0[À ËÛ¢¼f\öz†=·XÔI©‡ç£6v%¯ƒàŸÜˆ†‘<°»iÁdk B|¹§»Y{ˇ»%ÏênªÂçZ´×ýFU*™Neï[pÛt/UÙoÀÉ<ËÞØäÚý©î”ŠL6ßO4{G†Gïu ¦GZnò æDÀ)”ì†ó©-´åó€¼ ÆŠg;÷{%CÆ<$ß56u¤½rïzpÊ!ìK}ºGòÃ°ÌÆ×?®+Op6™àõ±@±a˜*2Ï™§1´œP,5àü €oBþr/ ã.A¡80- à62á'ÅœPêw ÏtÊõDÒHJÂÊ«iô]lÖí¥¯òhôå šá\U çÌ)6À!S ñ*f,Œè<²WöÈL*aÁ/»eô 4KÒGhÛ¢¦á´’+:ƒD9÷Roš£OÓèÙ4z¾%’‹ñü^ëAü  `ij'ú;@ñŸ§ìB€ƒ$ G3/@ YI)0ŽB34‹$8±Üãµà¨'"nšŠäz%}êgM”ÿx\áÑ*ÄàÑâÕïT¦ïˆÙÝk2˜&’t»ž~¶‹qk[¦Ú¸%ý – ¥Æí¢ ‚ ù¼Lüë­‘½_6wIü’Çæha`Æ+6„kDe œ" ¡T)k@W†%¡ÍîD}‰tÆ0DÖrÊ[{]É]Ï'k¡ìº¥&2/éI±ˆ…O_i¨!ZV‰–°Æ”SÀ‡ÂaÔ…‘–N´ËÞàx2ˆ™SQÑ(­´‘¤r ½%Dî``§êÝsÓhF€‘hì Ì;9äN¼]P´éÒÍÜ~èAK1»rö[ÃÑU1gÍmn4‹8zN>Å\ ¤ÀÈÏšŸÑt‘+T³Â‡Ä¸ùAüûý"`ÖKÍ|§"óM’yï -|ÐP•†³´fBçèw Š!æm?×ë°e†à°Õ½ß[ñJå7Mž1åá1ªÁ½ M:Üc®Cå‘}r>6:p¬iŠ—("o—ó¨ sÈâ‡U‹[ýb˜ŠT¾{{íq®¢ØP#±>4MnÑ]ÝNÞ-ÖH°8¿®ó—¿ ›b~çg&B—çûzU]€èÕì«r3©;LóGmÇC9¯Ôv{‹¤#¯±,²(’µ­Ÿñÿ†²²'~º<ºã«FV‡*Ãì¾² ¥ß“S÷dê[A¢Ûòz"à`¾¾½²çâ2–ÉtA[×Á·|ë†&Ð…3^?:‰ÝâÛáq“ý{»q|­ŒÔE®â¨·­ænzï ]PÑΨDOåE¯úò!s°&n&÷d’JÒ©o …ïÌ|ƒ‚‡$fãUyǦ¸¯3´Œ]ŒU ¹ÝuŽØ;—_ŸÀ:‰¯»ºZð(mÈUÂúÒ%RŠ6vô+™Ñë§ÙÜ8†—KôÞ®2Q+mǵÖ0…ãú*B™ü`Ÿ.^½h ×ËÅZ'Ö¦øì‘$¾ã ËèÙ‹T‘œÚo×ËoE¨WÒßld=ñUµÊÚ=Æ} ÁÃåDpö˜Tûœ»|¹ë)®fë×(qìÅþ&„¹RÙêušó|¢‹×¬7l®ìVlo*{ø›ZÍûß{ÑG'(ÊA´,ÆE¨Pðh©T.E¥’(Œ×ãŽúM·µcÁ56X6ž÷u¢ÙTÑ~®uÛ~^ô¯Pˆ¬è‡ûÌmý²ê8+·à%>£×+©Â¡ôAßC-±ü4\@&/ÂÎÍEl9â!㹿aKxÐ=iJ[št#m{:à§|'¿ñÖØ_lŽïM·žT¹"eÕˆñÞ¡/"bܱÑ-{3GçZÕ¸TQGå³KÇãnK1 L»÷kÛ£VÒ¥¸ü–1L#B„çudb….ò2Ê‹îç6aC'~©ã¶GP[5wxÛÙRäGšG5mXÕUÿSÁ* ŸûóKoªèmî^ë=+½þO_gß1I‘ÍLÝô†Üiö| ñ“3ö ä€x¢¯1’KÐ,à+±Þ6J÷auæ¬M ‚¡;yd@ÓÙ<Ÿψº ”zyòŸÀ$Z"°Õû 5*}¸ä²-*g.ícä>ãùºì¼·pI ”/²í»sDóE½Æø gz¥sþÚ‰þ¸žÆ#I¸dª(*pç¥/"PéÔØÇ¥7!Ö¯FÃçÝ4á|}ÈŸ##•< ñ¹ “CÐßáþH¸ÔM– Ÿ.oO´Âòd>ò0aÁ`öÈ3„Ïßk?û)›>UþÌ…„ïŽþ Àˆ¼endstream endobj 1676 0 obj <> stream xœí\Is·>äÆ_ñŽŽŒ}9Æqâ$åJÊ6oQ¢¸ˆ.R¤IJ¦òëÓ `fÌð­ ]åÒáhôö5zóË‚3±àø/ÿ¾¿9â‹Ë£_ŽDì]äŸ÷7‹oN޾þQ†°,Xiõâäâ(=#BYf¸ZX§˜pjqrsôïåÉ1g’+ÜòÃñŠ3ãŒ÷ry~¼’Î1/Ìòí=éõRN‡å%±Ì¿ü|l43Júÿ×ø˜RÆI·üTN c,wÜþçä@®š¹V1¥¥’O΀À ˜Q˜ ½ƒû满y94?W,l“>–Ö«Ø£5³\…n½+BöCâ‚Ë÷ÑÝf”Vb ¼Œ[m’-.?K,vù{ \uÌñÂùå—´Jà|º¬´ŸÃÿw^||À¶sZÁtÁ32†¯´4Ìs·ü{\Ñp­ú mXÞÀ"FJ޲•žiz‚`ß§ÐôÌxã“J ¼íºdà$\ê‚¥»Íú‚O{ÝÙ\Êkz¥TñdCÊèžZŠÑ‰©Tua%8¢íb%$3ÚŠ¤S[¢Mû“r˜ ãž”ÔÌà&´$ ÆÊs;2 LÒn¢Gãzž_æU¼*Hij07kð ¶Z+ŠjXþ Õ@rÐm¦)ªÎ–•TÌ»rÁ+"·ŠÀÄ[)VOöôŽ{þ¼ÁIøAyœ]hÛz.(Ò»%Œ¿H›qF,yÞ— 2X/}¡¥äA:õõ1*–t’ií:Ÿr–¦ ^÷ûÑõÌË;¢ÜD‰o£E*¡a{ÃÊ™GÀ„ÞØãƒ 'ûÙ0>;\Q8À• ’)h¯$<#}HDÿ7.e×u~Œ3HnD’³p¨¼që­D”PÖûèÅ”¯*Q,àι“eÏyoCö~.É]1Y&²]Ã…j¢„€¶p,@ žI4ÿ4ÀŸ‡æ¿"À¬2ÂÝxÀß „øËÉѸ  ‹Ë‡#͸Yü xûݬ`±…•ÊÉ‹è1ÐÓw\ý4 Ê5ý(;úp f¬I L í¾†´¸»¡÷ClZ¯lÚQ¼Û&jÞ¶æm‚"HÍsуð¶=ã‡q85b©æŠYÐ[ŽMÍÀÏ&Ýv`çil™:²"±ÿ;BÓ‡´":óþ8²±?ÖÜ2.Ž’ú®Cð‡´¶£Ÿð{eÄ)-Á• ÝÁûñ4þ*ž¥í¨FÑ䚸˜/ØŒ™ŠIãfprQC&xJ½ÿa u™TÒS :}e˜vT¼Tèb•fÐØPv¼©O§cØ0fÂSjˆ\”OiÁ9uñ‚G’À Çfij¹vwè»›Ž vÉA‘:ËÛŸG^£]¯<‹ÎË[d_ß³÷òÜcœ‚¡7ò^Ñe}|;x/Ý?¶bþ¶plý ájƒï8àË—dÊ^ë¤;¹ûvÔéÎ6ã“åg>Mpà Ž[Ò•ÈøÜôÂWS@ÁÅ0ˆÉ÷'r ¦˜»02h¦°¤æÓ÷l!s˜ÌLãLêç+5Gˆµ®ÌW– <¶.ß.‡î÷Mn~št6˜ÝÛ9Φæ g#•=g• dŠpVAäÄÂ.Œ…àtJÆ~·c‘Np$ÞŒ˜Ó&»é¯Š!y̘Œ¸Dr?Ø)9N_ ½wCïãÐ{?ô¾é{tÀθ‰:ö(¡9“ ïÂFé€T„ƒÓ÷l#àW§ëLRùç@Ƨ¡yS0~Ì+Dþ[Z°ŽZ-Š!§µQD®> ½çû’€“׊)O%{v‘DEB™Áç&³ï›ÌÞI}Îaÿ"ÐÍ[t=;ˆ¦OºG+Ø·4›Æsºž4hÚá!ÛQiäž]¤áBü}Òø8ôžý¤a­… †J#÷ì" ˜$²¥4Æ=#Œnp[×Cïí¾dq8°ÖF ”©,rÏ.²0À[ùÿ³Œë&‡¯÷%Z†°µ5rÏ.Òyª‰Î›nˆÄ´ûŠ Ü2DÆäž]D§/ÕËÄ&Òxµ!¬® "÷ì" 8KHë_ƒ4¶‹·Ç¥8`£Lr‡Ã×0Ý‹´ž¾úÄž2Í$A@Þþ^m’b8kŽ­S ’iîŠÃYEðH@§C“ðð¼I!ø¼¹å«¡ùÐì-Ò-‚£–ðÀd´‰i·iXp@j© Í•!€_{>•s1ÃÜZyj£å ÁTF{E÷ÖáÙeÕK3Ým¼v.óñõVYj¡”-Ý#‘εËo7@ù¤Çœ6¦ò}–x”ÿã{½ï¤6ÜäwZŠ{,=x·JÓ®ƒÚ£„éŸ^“Žîà–É϶?ýŸÛò³]|°?_?*í£„uØù›ÑÐW€Jç5—š;ù•Ö×ÑM8úÐÑ—?,¬ÅÏ-½huFo”³˜À°RAfµÍŠñm¤>(ÃÃDA^*öQ<„`iÝ-’ …´dŽ!u¹C%›õh}¹ŸŠáô›H.^Ïõ¸íóè·â6AKfÍŽà˜ÎÁÁŸ2ý¹MqMpL:,¸ÐÀxwèB‹Rã+þÇ‚iÖŽë`c5ÙT9ðDzÐ[ ǥݲ¼yÒïò¢x_›K†¯â­¸KWR2éeY•÷»m¨ÞBÉL‡¥T£¦µòÖßpòýÑÉW³©°„†í7A’g*Ë5¬GзvüÖ3Çõ¬ã·bƒ†ÕURÍ/Ý^½¡¼0DyyŸ¦ƒÐ¢º% Ñ"^ãÑÖA*ªúðtÆ6”º³©ÚÔ…åXçíÄàbM#Õøþ Àò×!졞†ÒwF î«Û? «;KLÐB>Ïv9[t­†Þeùit,|ï»Éèê®Ud»4Ùæe93­Jÿ”ìÜkVDÏ^¯V<[QáK2JÍmï3Áó™èq,İú¦œ•,éåþ”Õ¦ò`ŒŒŠÞù®®^Jn£‡Âwv ¿]<¢ºÁ{§†pë÷q8á5ÄÅU"ȬÀâݼC@Vµó™ ©UŠŠÌIǃF¯]¶q´Wý¥«h ·m¼Àψ¸ß™{Ç]€–òO Ž ¾®0I‡ø¯°•x>\øþ‚—Ioúùê ¿ +t2Þw£§ZÆA™Ý¸ýEM?zéçB@PÇÂ6öQg’}œ>kÆY9eÀggc¢Ý›} dÜØ>p•X’Z‡1g™ ÓÞ 2‡uCk›Œrmópñ~ÝúÖa@ܲ²¢±ãsP rN™üdB}‰£Ï³Ÿr£`=¹¯é0º{ÒÀ3²»Ÿx ›:ŽÓ#øÔìKòI« bÈ4åS~tt ®¾/QA=°%ˆ7$ Þ!®= l¡š:JÛÛ$ç½KÃ…CÛéú…Òh¡¸.ìÓä¡Ä]¬Ï‡ÈÔŒ~EK?ëÐ÷Þ ÍÇjll6ýŠÂ+>º[î` xÔ›že„«nc7WMtê´>¤+-ôvýÏ$Þ#C¦nåÒPò=é¯oÙJ àcme^›/°ìVK5:cC·bÓ+»fA9÷&…«/Pã’¼þØvŠá "›ifÅø”ÙËnèãAfãúùƒ†‚௕lP·¼<¾jŠ/n¶¨iعa;Ó‘­Ö˜+uñ<½ê>ƒA‰bYFnæ§ ²†ƒ¸ˆ¤©¼œY“¸Í*ÐÂtívLëHå½ë¦u¤„iìºi-‚Y/­#3jöó-8DËI(w™ÖΙܤƋTžö6¯¯Õ:$º#»´jí(ýÓë+tOŸ|q=øL}—å©[E,7J4G”7"zX­˜†>_¥²»vÒúDW]–P†Ü˜¬—¥äIóČӧ¶îbˆ g‡JÑShG&b¸(£¯óç_ ¤½ÿIóÝÐ<}&*@ :аÀ"¢ûxˆøè#$q[ó/qˆ—öJœØ,*쟪% ÝRmýõ»Ô)è.ƒß¹±z:³Ã]„©3¦¼þª[D¢ðëv”À J¨¢±»þ¨¿Ó #˜×  0¥/ °©Ía  @QÚiÿ[Aæ®ÔºH…™U~l©0GèÌ, àÚÒ¼Ri3 ן3…rëÊÉZ„ Ý1à¸ÆE+6|ÊÑå§xH¨TžFP‡” [c ý>ت£«TöêT°ÂI¹ìmcw´c»ñ­•™è}t½h»w•XÖ穞M£1Ð/.îÙòÍmÓh¿Ö6‘FC§æÓhXÛ ÝÞÒhXq0vd(uL£a‹&düÞܺÕ±ÂmÝ4ìK‡µÓh±"`“,³b®{áÿby´øYÇúÓ˜©;Ìãà Å:>®­(OiÊ—JD@9ƒŽ'É꼌µC‚ ¿iG9xœµª«Ù:á1ã´—k0ëå6òPó-\-¶(ÞË~Lx‡âNLaé¢Ülî-j›ÙWº «G?ѹÂO7º¹½fð¡iŠ#M¬Ðûáèh®Æ8endstream endobj 1683 0 obj <> stream xœÍ]Is%¹qö™¡ñn"ÃRaB'Ù3Ë!k™¡ŽÐèÐÝìe¬æ¢&»5í_ïÌP•ØŠõH¶B1‡yF¡P‰Ì/wðo‡y‡ÿKÿuu2ÞžüíDÐè!ýïÕÕá_/N~ù á¦`¥Õ‡‹7'ñqÊNfVëÔ$œ:\\üùôþì|ž´™Ã¬NoÎΕ±“ æôþ40]œ¾ÇJ'În2^»ÓWô Ýla6üTÊéP¬÷cñä2å×ö“åìwøÛ8㽬„&éÝéßaTÎJ——öÂùbƒïãl³ùzñíVæ¹ôÜeœ«‚îãu¢ˆ‡MÇk ¿>²¿:“~ðÐK ŒÂÏ,„ùŸ@FF€7i“Æñ…¹bš­ !ÑÖxiÌé]< N8e»<†rÅAÜáo笇ñ¯`†“õ&ãÁ1¤2?ï×g¹øÏ‰| ðÖÅeÅIiGJ+±ÒÐd" ‰è•R-½Ú&¢G"æ½áfÎónÎ…œŒ¶"nНsÉÈôv%Sœb‚ö™6ÆÂf~8cß3­Ä—ýò;rÄDL™IKå3)^ÃêÂäÙËõ'¾SØÙÉ'ܯ?_¬?_.?ãû*‘Ö š@…ü¾ê|• “2b“«aʬÍéíÊ·ŒAùzñÌD(Y®>‹[Ù  ¾Å˜X8bi»`bŸˆ%NL^Û½[ p;±¾Ë»î˜;·)H“%]]БqtNt£é×L„JáŒÔ†#-#‹‰‹Ÿ§ ¬‹âr?”á…cpdàÔäòô¿´w=[@•8Egê}Õ{§GùœÏñ=j6dd´x°¡¥5ð”‡Î Áó³Ó5Þâ¨Õúq–ú¿Š€$hnxIàK&~Ýg]þFÔ.x7$Åä´qñ$~Q€™‚³ÂøŒ ‰?Ù„Û o`-…Œµ 2 WJfŒyAŸ1Ëm|¿þ¼C`ÜÝÃ(„õ#„4¡«&a„)tÿíªu˜zIë)äª6lB 0‡ŸE'-â'áÌíì“øét¤_ÄÔRb’Òì…G"ŠêÀc†Äa¶0r<"!Bˆs@3É{‹c*âoàcƒ1ô"8ÏŠ;nò°ßÞb˜2Ÿví¶¸F­è–É%|âjZŒV;ëÈ3@a/²D¼‰¥»ô²Â銷4¨¿C);†R$®5J-S^¯Àze“-D£¯×ÑÛuô~ýP¼dL¡Ü’ Á/ð4,ìœ-eœõk\2'EîÙ“òn²º1ÖñY5!ÎuÜ„|µfµ³Ü“̬Ìwq§~ ×ñÍÀ¥c¢x °œ#ø;îÓŽ…ëØ¸ò@éÉ.'ð»Íÿ´þümïg÷<³Q‹m[¡­I·Å-ûý‘á}þ0)‹GßÄÁZÙúô$'öM#²(§äJäÖ  0r‚-,²Â–»d¿K-´Ž¿MG L9šÂ­Iö&¶Ùóˆ§jvQ' ® Ó•uÏÎ@Ù˜C»ü|dêF9£? ¤åwSª!˜&Q1ƒtäÖuÆéøÌìÑöþG%@é\bôH"ÈE† Ûîîýå5—Qà®›Fs½T ÛÀŒà ²pIàçIž÷ìAY¡#»;9É‘ —h0¯ôü`ôôà˨š<€‘P«qWp‹ÀË2rÜÂSàz}b{ç¼ÎŤsì4þU¥ ò6J«‹Ù:-ªS\ $,–^A©Ú.R:³E¨(¼´`ÁxGpº$…F¼âÿe\× Sœí‹lo¥çT´â.wû¹´áF[Àξ£_Žïy´ÿëRyðfÑÍ¿=¹øÅŸO¿gŸ7úF.âìQÑÕi#öø^;·Šœ¯Ð*=§Ÿ+‚ÂU;¬ŒÞHõéø‰VøÓ?œÎ÷t®À_†>áßèVcä£:8¦Ï³¶¤!'?ßçÏÊ#Š8 Ð)—AGëžKRm•³×§Wñ-Áà‹´`ÍBPQùµ”¡9Sò&S‡9rYˆŽøï^ÂæXêtŸ´µRÃr”m«â×кšß¿jŽŒðld›ÜÅE-]£=æÒvÚÇøð”ú4vÇò’Ë!¦'8.¬;8Áª‘gÍe€ëΊæò25Šs“¦zX£l§gÈ]xÿµß¨1 #†ôäF)…ËtBFÖá)m(‚1p>ï“`xøîE0¸®`Ï]˜šcìA+Â/žÈZåÂÛxuéÓö§²(ž£¹L´j”3—Éc^põ“ãÀ£jË*Û„Ï|Á¡kïçñšÙŽœŒJÂ?¼«)(¶èäˆãnûß8ãV»)kbÄìv¹xI¡¹‘,µÀƒÜÇ]åѱ¾MbÔO´ ‘‡J~ŠG ¬]•.IJîÈ:ÍH~Q+µõ`… W–ž$%ñKJ)pìÈ(ùt†¢ºpñ̬Ó;©zp×€òQgX5ø°Aä¢ú^`ÜÐþÈë¦+K 'שdçoÞTÀ4Eé]v Í cŸ3Â’¥úÁƒ~êô >ËÀ§n†™9CÌ«ù±›üù阄mY>Äê‘øuÚvÕ+£háOë2)Bˆ  Py襾Å=Jæ‹ 3ôÓ*ÝwÉvD!PC+4:t™ç{-#÷ÅÇ>G“Âq\»Éz_u÷1þ­9Ù£0yù£:4¾«l«ÁÏQ¤ _£ìÑvU ^¸gd¾fbJÝ˽Ê"Õºš¸»`§j9ÐZ[A”ÌÀ­ð¢;f†¼Zòó*¬êâC/ïš’F?Â{.ƒBï°rY~8]9X¬?8[8¿Ÿún–fTÒÐX6¶7,(±$asØ -è0ã+ªãÒ¡³´•¥Îrmëm„xû°1«Ék¹~úB³ëné§‚HG㆞Íô¸®´2Ø‘bn»n(]G„Ç‘š-ºöc¼¯×¡öƒ`sÏ(=Bb¾¼„ó¦jÉ «Z¸ïJÏËmÕW‰S¶ÒöUã€Î›œµK‡L7é4f=-(¼Sz;œ¸Ì€æÄìj{Q:`&_KY>ï.¥AïJV>vµ2õç®^üÐýÉ€=ÆÑèhëeKôž£¶˜±±¬4ì]pWÌéoˆ^À¬¤K‘\R Ò9<ÞUÇ7lB‘^.Á•cuw_NëPLÇêìQ¾šy(qEŸe‘W)}|\pv¶¶¦qX3*ø~ÇÖ‹²ŠñÎO‹kX…ÿϘ·^ÖBsÛÏ0§êÔœºÓ¶Õè¯p¾ŽV´òdh,l°›È·Ø°»pâ^ÿãðÞb¡^~ÝqI˜ æ˜MÕäz ¾“±$°Ì$k%'IÙhJ}[¹ƒÙSyŠ1²P¼¼¬³/ ~ŒªF.q#Àyó°É¡:Nà*øÝ8åøe!½¾.±aÃs)ï"d(f¡¬ê|Yƒï›”«\˜AܳÀ]™Öix6E4r‚ØÁ;*‡µ$•’[Ž Ó`Æ6YˆôpÄvdn §¸zUêu5¾ø66£²j´ÃM9OÑz£v€ù‹ªÖ˜L¶,÷,ª`n×Í~§§‚Çl»'‘ø3–òÈÉÖê_¢K$àÎâV|{U}0QÖTBòÍã›Çq^Æ6%ma»UÃhéP^Ç|‰±e”¹ŠJqŒÛsP¸$ív–]ë˜ØÁ÷±¸@ ŒÚÒsÆ«êsŠÀ¶ Y]k`Üž.S£­YÈåbiF[øè..îw–#á ÷wé$zÔ. ¾ÏšøƒC2mªEaØ¿ì2'³rÈQ¾ŽG—àó@Ó¨ ?1*uú{ö30“nâiO¥;Íùo KM˜N}PV>'/v?ÆBüL•·£P7gί}ol+¹ßá6‹­ÓŒã¬˜Hžâ)næn6·I˜%ˆ‹Ý<ùãk+s¬¡œ¥%ÅÀŒ>V¢ò±äí4¬ÌžU |8ëy;¯V”hïÖŸ?®nÖÑëe´ï쀕¸ºÊ³kbɾ@z׿üF©©µÈ„U™ºg°no`Ú7-sÝŒí¿%>82Y=*»¬¹ Vuò½—ñ»I;égQaølÉ"¾h3(g„ž·µ–Qä‚1ÒìUÖëC¤½=+ŸÈÀ÷×ZùàµéDM5<±6P±N¬ ×`†ƒ ‹ ![b9àsÌdf å$ÀgW†fV8Vë¨\~â¾¹8ù#B€ ‡·w'¬êÃßOæÃ·'ÀÀð趪`ó‡+ðØ„E3>¼?ùþ؆½ÝÊãpQlø·ëÖt±µs…=>ÊTr×Oä¥åê¬7ÞÄP«tÛ2çcË@¬ð¼îΦà<z¥×ÆÊQØld{SÛ¢i³‡ª†lSUíaõ2¶ÐWeã|¾¢º¨]ÖeÞǦ‹ëɹLÊlµÇâtÙ´IÁ¨QOâ7J—];ãAôвÞfëǸvõH_âo±÷oVÅõ»U]¬£ß¬£ßvG¿Ûîíé;{¬.03Þ Û0Y¨¢Z#ãÛçø˜”›1)íðÑqêìb€KÑt¤àfáûë8C˜u­€ñ`«P†›Ÿ—ñ•Zmt°Ä=é¡ ËS[ïq¨\|Z¾äsã¼Ð ù˜ ¨ÝiYÞ£³CdˆÛ&@Î¥.ýRÈ•‹¼í¡,ÕNq¯ågLÌØ¡F–M+™b\¬ŽÜ™/áÎIú 'ËåÐkÒØó"‹¦×%;R«‹ð)­k2*Œ®›¦õ„yg¿Ž²þwJi–ô†‰¢Ñ9Écí¾’jAê´‰qIæø5y‘ýA8F†Øzë·u‡4^Q¦­ltÍnÕåá„Z7u² D•>ón NÎ%5³%÷™N1F"h *;×ëð¼üìj¬¾V‹Zû~u°þmýùû³¥Öã¢;á?ŠÀ=Ù‡ÂÃgx}PfS0` Š€í¾bÙ2ëf¾ý 3¶áÀ5… £-øÈf†¯kO±~Œeïþ°þüï*EQZÔ³ÂÚlv˜e&+ ÀÞ–ô9ò5¶&\³á›õÄnÙ0q”ÀPɘIœÆ”ý0ƒñíç /¯ñþÙO×yìÓ?È Å¤ÐÔ^à…=ËÈcN+eh üºÛ‹ubä‡sng/½õQñçÆG-†}”ÔRN”ÔF"«>ᣰðL†ê£þÑ< Ä’“.rÈý."–¸cG÷‰Ú LžÚ*,`ÔVÁÈ| µa PL¢¤ö·5µëz¡Ûuô]±QE¡Z»ya€]BTLaWCô_ùf}舔¡_‚V`〠MñU0B”|°A¬©Ò«ÄâϺA,>öȱ þl|ŸÎ%‡DäE-õ.·‚ˆõ†ïº£…”¤ ed&ç Ûe˜eN÷†¼©MH2P ¢cžËõÃY…«ÛùªäÌ«šPÇGú©ûû.ÍêË™ú×0!ýLzǺUèBð¹Ql»>¹ÓZ~s-Í×ìt@¥FܸóÅï£+²æÝè+4FÝŽ<б5ÂÌS8Xá'7;,ÊtËÈcJàÑ9ØÖ[ß‘°ëüÿ«ûó×ëÏÿ)vÜÀfØ´XºŸÇ…Úé6°q˘‹`qh> stream xœí[K“· ¾O¥ò¦ršMi˜æ›<Ʋ,;•*—­½E9HÚ—«v¥•´’%ÿú| »›`{vvfW–])DAl@|Èy»ì„\vô§ÿûÕÕ¢[ž/Þ.d¢.û¿^]-¿9^üãg-ã2Šè”3Ëã³EþF.¥”Â-×Bz½<¾ZügŽ:a¬ÖÖ¬ÄѺ>ZÕù•o“e!—áÿEKvš/ið6Xõø«<Ãdi£ ~õ¸ ¤¡ë¬T«ãæ„ïÇ!­ñäxñ-äâòüýˆÎ.…ž.d^CÓÂÛåÕBF Š)—‹góºªu%v]+뼈ö® _”áu^”á·iŸàâW õªõY¯ËÚ|ko…êt\®e1tqP* ã‚“Ö¯>­¥è\0fõš‘ß{]3ò{›¨}«_˜y{ºí¤nUY;µ\k'T:‹ñKÙÇë2¼9ZÛ…óê¯:„QK'vëahÕÙ  ™²‡¡ÁÎÀÂcwæ¡-½v¶Ó«ç«B~U†ošê|_iÖu°ÁmÓlnÑl’rÔ¬6:ÂÏ™fµq ˜C4 "&L³O÷Ò, ªa'gá~8˜Æúì}¯¦ÐBÚãð²¦tA»¼`¶ÔY¡^êM¡¾+ÔG#•–[Ka‡kM¿â>Öt‘vÑÔÌ»j¯Î"²¥ €Íº!(ÔúpZh‡[M¹n*äôþbœüC(„­þ¡lòì<Äö ù®¬øCþ» ŸTRƒGQnÝ‚­RvvcmaO›âªPŸU±bšT0BjH†Xom¿î· k¢¶]LKh +9¼À¶ë.ÆHÑØ… +4âˆuCcé%ì[Ía×ã`MeQU¬“ Œ¥'ôŠ‚`'‹Jت#ùXoCPšDµÑ„&‚&Þv## V…¥UˆdF§LÆ‚bGÊ^™Œ¹XàLÊ/›ÊLŒ`‘9H#ͽËi 2…lI­½‰àœ L’ÙðŽÄL†×:H²µû90–2Z˜`oáR¡žþ™œ¯ôž8á1ä䉇¤EmȾŒSç;Çx}¤ÈdÎV›ñë9¼˜Qņ@ý•;u™*Ød5G^+Ñ1×u(E‰ó¹ÕH€D­~%%I„°JìKÆú2ˤ§ ™™óšÑÏ{±”ëÁ(gäœ=ŸÎ=~ÁKãÀçê8hÖM b·s¡a%ïüq´3Ât­¸LÙÝ)±öQnP*Oâ(ŽpvaS>¥± v#K#†FUòñÈœf”ÃuÆÃ+˜¿²í|b ÑXHãVy_&úýë† îl ¿·$H§†⺱HœWÚ°ƒ¹ÝÉ®•á}˜ˆzç&Ï.RoÖÐpWùÑ\={^€ŒsyTÎc:<Ø/¹ñäðÔžÌsž‘Q_y8oÐD=ªðá'ðc.X¥›‡ÏGÒ ÿähÔn E1.ö½£Ÿ“  åxïˆ7€Ò¹èC¬wD1! nNr:¸¬WTÒw!8”QIξqÄy´[TsN•e–`¯Ô½7€<°Ïê¥QX ¥ú(ˆsv$ìÓÿñÈP…€*ˆÛ¯²²È šÎÀÁý”?Nµú?Ü¡…t:l:ú0š8ÌîòPw²òÛ3"§¶ß¶ HS$éqfB®ÆÃñLo‰ Å¡î´H²[é“Wsݤ͔vª5.kÄ !X1ÇayG¤§=¨h¦z6º–6‡–Ü0§X‘SÊ0¹'ÙLj(jm&5ICவAm"¾Eƒ½‹€ y³ÔrÉÛH©Rv•Z8(OkÓóŒ¸u*ÎB;—ïÕ ¾e·wø~&ùú3Ÿ{-*D,«7‹¶4™+k¾…Ù3œxÈÖÖt“÷…›/$¨ z[–·"i¤éc ç’næªCQƒtãÂĵ¥ê9a‚ïQ{ïgj~ÑgÓ 'Ä ìÉÅ@ÙÿÉ8ç»§xRpêS³ø»9ªqjë“ zôð{?¹ˆ´VÈb|,ûx3Ù]¶ãIÿú"Þëã @b¸V&P³ÿ ÇÊ‘v¤ìóøBJ8C,­«‡¶yóñÅ_Qð{JEZâ¼)®"-}G×w¨,D§'*:ð… [ï’é… ²¾L¾¯v¯\®É‚†NÇçÕ ¦O²óÞ4'\4e:/ŸÝÅ«ölñ*…JÌW^u2x£ô|Y†—EG§MyÚXøª)Ïû&µzwÑ8õY;j©˜m/lŽ<$­^ØPƒQ¢€ƒåîä%'Ó É5˜ÃL¼¤¦!8ö%ä¤ÿ¯ºpÈëªãè9ȬéÒÛƒÉeöøé\-Éç³ZŒ—W|Êo3G†êµ.5ÞᙃAüõóo`nËýX으 …B…B¨ÔN —r?ºpWn¤ì“û!ýï KÿyPôü¡¸óë½¢§ꌥdºŸ÷é=Á?é»è«+äËì 85­ÎGê/½d‘–Ÿ^P¿esxׄÏÉQMÉäfé$Lºnìjx"âØ÷bëçŒÔ(dÓs|‡&*åæƒâ¥7$Sˆ`ð+à¡tðŠ*³²LS<Í,(1<ÄÑÚÍR¦;>÷öîã'Y,Tp¼Ã…‰Bïêv|eÁ–o=Dᇈ.0Š–]Óñ ꣃ2YyF¿çè’^JIzüÖ¢#¶ÝNãoš?ù ÷§ÁoœÝåÆŽ¯Æ½¶}ìpô“ µ%vÜÒ{®¯ŠSÇ@Ð… ÞÛ××;\Ï%‡LÖ-å\ú4qì#£–âO–8lÏuNOòn¼²³Y÷÷îüò„¯:—91µ¼œé“Ÿæ=ùn6aç2×mŸäÕ#‚¹Z ¸¾·Æ°‡¿Kc(…R%°Æð@Ù¿1 (ÔíAqê»iª?mªœNâÔößâÅðU4†£ü ÃR¥–5†Êa° w1mó/Ô.*èhh W*º§ÆðüÏ놾ðìÏë¶4ül Ëðõ´…ÏšÛžúÔŸ°-> stream xœí[Ks·¾³ò#ö¸Liaç5Žc'•Jb™·8Š)Uø’HJ‘}ºy40˜%w—+Q‰J‡[Óýõ=ïR¨…¤ÝïÉå\œ¼;P‰ºè~N.8:øî¥ŽqEtÚ™ÅÑÙA~F-8a%,œ¡<,Ž.þ¹<:”BK€è—oWRXoCÐË×466šð¯£¿à’€Ï±%µ`}ÀeNq‘_pe£~ùý8ü; ´J§]¦~†´ÉG?ÓN..ÎoŒvñ_óǬèÜ ¼]\"Åa \ü2ËŒêä3¢ |ÉŒóñlïÇáñ8¼‡oÆáŸÒ‹â*Åc¯[ÃÌÍJ@Ö‰|ì¹yF¼#Ë{&“«<jy’ä㤗ny—e%£„åÛô,åÃòw5ÞDz4±Ì«¿?\)!±x^oéÉt„bŸ + µ^'v[²µGê {‡7ù9…KŸ²åòl§ûý¬A"ÎUÈDÇ_ë,S£ñl&`• "Ú8 XÀu€Mr<©ßÔŸêXÁ e8QžÃu pâÂç%FpþX£,îx¤ÞŒÔ7µ ¸H‹Zï+¥…5Ne®Üý7€à阯•Di¼/ð8‡A>§DX¡±= 3:£³üghkw˜Æ¿<>ߦ;¹ ê 6ýS1ŠU®Ø£\cš”æ3_°é|Êo3úsš5/âë½:Ô^ ‹ö—1¨´Fáü 8_LéðÏå*[n>Ù¸•6ZD³[Û)1_´qHÒ3ÿ mÑ#´qÂIÓ°Ç ü|ícšmE0zvcFIÏÅáÊû($Šq&ˆáúy›_NA,öŸjvšÝ³bºÚM­Š3½•¹À7,­V—¾oȼÊBØÞÑŽÕJŒº&²QÇ,¢ÍßäµÊÕÖzNí¬ðNíÑsš +ÏÙQvñœèï1 aÖh+ÏY:Jk|fÂ#þSÙ©ï>`§P¾ ¬îyÊAv‰OJ¯–ºW>¥‰ñMår÷•œ£WçAáõ;i6ÇÑõ¡dåôò#0–ž0¯lJ§—=¡ÊÑ/ë‰ÚlÇ7­B½Qî1ʦ.Ôx„‚[ mòB“ µ жq¡Í—5´‚°ê9¹PADˆ™+ZÊhú\éÑ•$ƒ×pÛÈ4‡H>'Û<­Êì‚yÂO‡bU õ_ŒÔìGþ›5~°ÊVtÔB£®³l…«QöáʘÊ*k4‡ÎŸLÌ6“'óÓœVV£Nƒ¸×%RÁ ”- ‡K–ÐôŸ,ÃØrMðà¯Áý6 J826tTh¿ü\FË-éq[ê<(ºÍ±æ’Tn‹?åÇsõ}>)>Îþî¯Ês4ÎFÈÁª6<Šè4*#Þ4¬mÒâ†O:×óÁCôü>榠[>¯“T) ~|¥Ÿ,8œIêx(9')J*Á¯¡® í©×™ž½:v¨avTçÄ¥f{Ë9WLT#Ltf6àëhH…CŒ0ƒ([1ÂŒ¸†2z®útÞÓf]ñ¯M;ïìk9{ŠnRÈ bˆ¡—<8eS…ð½WŒ|= ÷†‘“Á2íUWé°ÐÑ­TÐN2¬ˆR/VàÐ+!w»°xx+þJ+³p¨ÛO‡ô Ðê…Õ)ÑÒÔϲ•”Z½ôW€••ÃHä_—ÍÅ®›ò¨W@{ÜSÆÛ>¢ÊrÑ@@Gãw P‚™—E³qø3ãöàC5ø#;üþ¾˜ƒ†'jïÅ”ëffÊòÕó‘ú~¤Ô³f{×\÷E™Û¢_E—fª"ðSfJ€ø…UèLѶ äŒ‹”ò÷”m$gœˆy !£Ë’û[S.W3J?Ôê“øq?R/GêÕH}Õäþ‹šK‘¢žº ·6JÀø 8;Ê.l”€²WëÙÈÍ%eðœÔ‡9T1²h;‹)›ˆ€Á—AýÕ¬ $ïQÃ8JÅFô”D`"†ŠÁíš‚‘ rèm’`¬oɃʀ^–OxÛ”Êéž Ð¯‡¥ÒÑ ž™2xÝ犳Χ.®ñ ÌYžÃóñ±MÜm;ô¨Ým~¿¶»½x”»¡£+üíiõÊu|Uí‘ñºùFíÛ蓇Žö¶y†« çØ“M0VH×B²! ì!PaÑ@§„é áéHeEÞ»yG(~ÑVEÞ¹ð³ÅÒóŠZ7Ð6˜qÄø:ÃùÝK®HÛ†gÒi¤4¾+ˆ ¼uˆäî$•,ÂÔ•vÇ{J“‡”rŸ.Qa€V,ßS¥"û¤È›¨7l½7eñ}¤åÞ g–NGØ?ˆ±³æcÇÆ‚Ãì$ jØhS¤—.„¸2ø Þ„uE~£@ “ªK˜e\X3·Óf™þ‚Ú(C7=®½FT2`Ô2„×M®Ÿ7‡µX²f×b™Èí¡ á(O¢O8P…óŽ/ÓZGåxJÇó²{–¯±”®“‘K]Rô Ž×” Ósh’b×±Õås|væØFtfåÐ kýäiFÔ¯§Ñ¼ ç¨+ÀccÂ6MÞ¦ÏKp ¡ÝÃ_å#O²²„¢g•a\ë}#)ã&­Ñ—•‰™>óÔ<›3EŸr›UP›$Ú“Hv.Ñæ’$—è(}•sâ  t5–*ƒ*#§† M½w|΃öTÇTOÕe‡áé‹ÒdË‹¾¨ž²}_®@_H|áºÔ?š»½Ÿ·€k£¨5éÿ¼1JLcQ=e‡Æ(jcŽf·oo? VžucÔ(š¾1jÑôQ…h¾5Fí§D¡Ïa½$éÏIðy©v-Q}4²Ú|ÃÂxØQva£%ç¸Ó'Ù¦pHÎûŸ¥.¬nß;µNcú¬bÊMS ˜ŒØEåsí¯RÆš²¿ª§ì"Oúf3øÏ(ÏHI²ÙH&šs/feò¹Ú ðÁp™t”]dBßÁΟ=os=cÓÛ0ã[×[s…Ý»Þnš»Õ±Ôÿ`×Û¶ *Ϩïm_mZ¼ï­Ý¸¶í­äkëzk0-Ukk£žÔ¬Yÿ@/\ùïí…£9ÐîZÔ^Ö(EPQUqü×,O|ä±Ïð¢ÝÂù­ð[ᤰ¾æ¢.yèÊ`çºo SÕ3×må8 Ãpˆ;>ø/¿wAendstream endobj 1710 0 obj <> stream xœí[[o\·~ú#öqhÞ/¯mÓÔEÐ&Ž€>4}°-Y6*Ù²%;q}¿!ÏexÏ®V+ÅNP†‡Î|sç¾[I¡V’þéþ¾¸:’«‹£wG*Ï®º?/®V<=úú©Qi•DòÚÛÕéË£òZ)å…‹~åƒ*˜ÕéÕÑ¿Ö>ÞHá“q2­Ï¥0FK§Ö74m““ʬ_ÐØÈ”’_¿Ïc£Z¿¦aHN˰¾Î»D¯\XßÒXåLªÖ¼ÅîÖãìúMYn“Ñÿ>ý(Ö©¦côjc¢ðJêÕéH=ÅZ“Âúmà‚‹Qƒj"Õ%Ë^F¾—vB&­Á¼ÉØD¹¤cXÿiþƒ†×ù”ù‚¿C:ä›Ó£è$ŸV7GVH·úù„G¢eå ÂûÕÕ‘– 3z˜¹<úqYn5å½Ü°…e á|'·‹‘¶÷ãðÙ8¼‡¯Æá“|QH?@ÃìÙ8ü0_ŒÃóqø}ó4FÃmŪ™lS.yÕË€Âí¼K©Ä˜`¨Èò5Ö¨‚' |JSðdLT!uk€€µ±­ÖË =ßñ C ¸h© Z»/?0$ñ“ÎÙ67ewt¾r·ãšõXßS…ÿzª¢1lÇؘ“ÈÏ9+çk³xAx×sˆôæÙ8{Íö{5Þ§©åµPÆ­6J çl(¬=ÊlŠ…¢ ;1ö²ùÙ³;cÁ¾÷Px™Ùh¥×‘_ºâÆâ ÁÆJVk`•`ÿ¡Œ ëb\ÑaÞ ü’¶†²{Ë?d[³µbŒ¼¦x”ŒÿölxÛäúEs8KÑì©XfrÛ!—Dðr‹8Þø¨aõýœ™®õúã±`BL²™8êltð½R8|0U¾,sZ2Ï fjq[d¤Bâ³ìx¶5Ý}£¡× §ÊÿS.jJ®kSa¥Úú)r¬ÄNIm¨¯@ËæÎؘۧ-vƒ¶´Ñí ÌB­á+Øw=­Þm»ççÜΊèl¥M›ÃœÎUsÁóÜï·c×:çÔxÞ8º”ZpÌòXâõMa‰výs[˜ÙÉQT@R,¼ÔÂbÈÔFémÇxKnŽnPW.äêX“Ñ0àÌ#le¦7¤ Rp•’1ïTÐ/AŸLøß[Öæ|õuÓô¼ýÄmË ñµÏwˆÚ’÷ìf•÷§¬˜?oŒ±*.ßH IÕ\}W˜!STUˆR; ÚÚ¥P±qE“sˆ%øÖÍøõñ¸å.w°N‰h¸·Æ# 7ÛcìeÉ¢F¹»Ùe¸%ÈÎôA¶‰& Dïà§B4m¢OÙMþÏ{„Òø^$Ú ÂO±DÒßÞ-’w|‰¤ ‡¿gßß³·ã¬fÛaÒ0%{õ;¦)Â週ë¢èÁÔöèdŒˆ³Føam|Ñhë;î­DíЖüÏ0ìàrù…2L®7¥§Ø)Åô§²6ÆX>y׊2NJã ŽŸD*ksæí&4瀓´þiÍ>å”Ì­4bœV%¾¦§%6Ð*VGòÕŸŽ-9,ú„vK"·­áºŠ wæ™G¼‡,Ž¿˜¬-ðcÙBt’B–Þ½jâ~‡§ ®Ã ¨ýé˜q:_0)úÒR%7øG¨Ö¿^6_S)áÙ§n‚±¨tÏÀÑ}*úíЕÉÓ¬YÃ{;Ç‚ŠÄª·³Ë“i8ÙõsŒßZ†Àؘùá ­£Ôe m­r_ñ)8ÓÏÜ«/ãžH[(çcK:î¦9Í0½w¦]Îh°ÈÈ(Éç,2ŠZW±[ä( bÑî ‹ˆP¾èD"ÀPuAÜWÕè/ð 5äKöéd\s¦7ÊŽ”éðt~£5ÇÉãѹ–±ÀäíˆÜÛæ‚WM‚.ÆÏöT[½¦ÒÂB9¤Î&ÏB­±,WÊL³$óºÉíóæ•=í”ö-¿F‹`’–ˆî•Ý Œ>c¨–PÖªðíìþí.¾`Zò9©1¢$µ=§}†% ØâÙÅd¶‡å&ZI®šovÞ¼ÉÂËŽƒ¢(x°ì8uŽãË, S<è±@¶ÿ‘lÊ•qšš# OEÓaæ^‘†–W¹@§v§ZiLÓqªÔŒ[ŠŸy Êå¥]u1ÞAOãbÆÃ¿\êëÌ«*y9_òß…‰ªWÞ#åç©PF)+ù]`ÔvÒ F³r8b€À`d G`Ê!0¢¢¸rݯ*ÞÄ%drH¢yšU„öJÍ5K©^#ÑÎkêö.\1Ùê i=0"uvab4HÔôp(ÆIYÓ6Ê,UõªÎq^ê ý¶ììƒje·[aÌŽyÎôˆÃø¼Û=¦Jë"­0Þ.*iƒÍy~ÂfºœW|ï®Eåb·µ\Ág˜i|¡ÌÊY%J5A‚º'ùK'­)|E±Jiù+ùó¢YJV6‰Ñ… ×1i´o¾@èÜJŽB`âP·ÿC›u…<Ÿl)Y—U'Œ"EŽmþžh‡ÅÌ%öéÙbjÊbõöÚx&ºV…ª_¤5 |uüÜŒb÷𙓠†8@ºŠ÷`¼™ žŽ¬KNM;‹-ëc>œÕÍøX…¢Ê¨¶3f˜¹O¾hK!”Â" ‡%Cs; Ǥ&†¶ok ògê¸T¼›àÅ" µ¡ðïŸy…IÒ.õ‹xÑmU§:·ÿK+‚™M±ª™Õïƒó¬‡ö¬IEÓ!ÕùÞ²©Gs¹¨oÃjö~¯ýªdô„AOSL^öœºP8yW›ÁTð#ó7eͥĨvÅk³×G#,ø–xmk—3ÒÓ^Aw‘XÀ¿®èAÅJÐ]o1c‡™ûè®')ÚBHÄJ‡ÄÚߌ±ö/÷Œµ•²ƒžO”\ñU­×”ÓÆÅy·zò€û曂iÌž­ùyó£õR†°]ÃT=pLØì’ŠQjÜÒ %Õo¶g(“z´ž¡™ {ìöô ±=#z„žá^Ê•´Ú××òSÔÖ¹åGT“Ÿµü0¢ßæ-¬õÙöîÏá;z±òè!A¾¼§{ˆùo !ÖÚItÝ̶ߔÝè!÷]Ú€®fî&.=.iÄÛ³lŠûyö+»îÜÝIÓrGe‚›×;T&øÛ£…ÊDîbv±NP2” "yÞ ìû¹W©KP‹bÈÆ¿Àþà¸â³ôµ•‘~Ö3öû™û÷±œŠ>(’øn4vo›ŸMŒÝÖþ`’Ÿ¿?HµÞÑ~†þ Š^Â-³þ`?s@PEü•»ÝÚ’þ•úƒ#‹úþà,êûƒ‹~ëýÁIë'Ñ›š¤'/rÿ2®23ËÆW‘rûm7óôK hQµäfBíì’çÍû^7;©©¯38¾,q÷8Ã&8ëfÁ™§ß;téÛßG:ª lÀEjsñF'cÍM“w»žáOQa%9iò“¼G`£¦¼íØØÍÂF…ê÷íd#ÓË&G/ö`ã´ù®<Un¾#ßùrÚï—“ƒÛûÿí÷ßKûýe“}—MšÏ§\ÏäŸTZ> stream xœí\YoÇ~'ü#öqih'}yKIœ8¶ @œ‰’(%‹”lÿû|Õ=GuO÷îò° ´4jõTUõÕ9ûãF r#èÿñÏó7'bsqòã‰L£›ñó7›?žüî;ã&Ñ)g6g/Oò;r#µ¬Ðçõ ½Þœ½9ù÷öìT JhýöÕéN ÖÛÔö=MøÏÙ_@Rã=FRa¢dÏžƒÈ÷ "mTÁo?[¿¡G'¬Ti•õ„¯æGZäó³“oi%7×'fvóŽùå‰ŒÚ XûÖƒ·›7q‘óÈåÉ÷Ý˨v>_FtƒÉ$–˸Xöö~y|º<¾[_-_§ƒ‚Šß¾m¾ö¼8èŠAÖã_§»|º“ƒp6ÆDÌhíMÜ~ȼÑFËíMæˆBo_Ó³ÖAú°½bsÀ?MìVaû cëežn½òÓszõš¦{\eI}-Nxáš"á⢑GˆD~Ü#é*g‘иŠÁZÆ~íFÔ}جØÿåØßd)6¦T˜oãš.Ï{À~ÁŒÙœÃçË]ÓÇ9AëùUmÍÌlé°Ã ¦G鑨Ø$%Zy)Q~0ÒÅ‚2ã.¤u^…ζS6.¸ÍNªÁ’Τ#ñ·ßžî¬Cðfû,‘7ÊmÉd”ꌃÎOW´G÷2†¼lòá¦õZ“%ÆèìÌ’ŸàãJT‰?+ƽZ‘NncÁãŽæ2vs'"~ˆ>¦[_d“Ÿ.£ï¹q3ž¯±;(k‹Mñ%ñ× Þ12 ˜IsØÙ®¦ ¢-Bî0·O­¬V†o›àÀæèl8e›‰OX,Ð5xHðÞ@Ó…ž=heñJ 9(o‹ ³ËàjAG ï÷\"Ëá§ÅéæaCÜ×è¹)™º–’ß×Ë<*¡ñ÷Õ|6}{y£-EÛõœøÍ^çé6¸Éôé@¦(uYiñƒ»ãRÍ–clæ+[Ö3öW§$WÊÃÒ¦™Ñ_H÷h ŸåG'9XŽ;¢ýLàV S ù%MUƒð®"0 dv7ƽ”àZáž .ÈǧA’ጠD0~ÆE…•øpG|Ÿ€pô0^qŸ>ÐÚ„AÏVúàT i.ô²i¹L}h­Q) Z¡ïÍßZäó}ÆÚ«ƒQ€úŒÄU\R{š*×µ¼å´„±tmÉEµãaºP{3IU{›H·ãS•Q³o)ö›XøoÆ…0ÍfîÄ¢±Íe¤Ä‰Ìl›e¼¬Ã<*þuš„ >“ŠrHCÈ‘nÒ訛÷kú;'«W€åˆv7›¨fÈ1ïäYÓùnº@›s/8ñˆûY”ùn¥‚GâhïBùøûÌ ˜åµZ€—ÚíWD7¨ûaüŸB6mÖ«ÛÁ™ÛƒÇLÞƒÑä3éí29r nE8 bËŒ&W¬-A!œÙ´[ø+÷óWÂÓcAZ…úM?ƒ«5ú$5îqø:ƒ lB‹•I{J* ­tw2‹'æÈYØ1r¶Æ÷ÜßÊ$q™!wÄYhªjØ›¦CçÀ\%‹a.›k/jåß<ŸÖ¬Á:Ó^É…³ˆÉâxÞ×ÁDPÄê8DcôÛûË»ÊË.Ò_´ÜZWS¼ Èý˜'ˆd!oëzN¤Û±«XŒFõÛÉÛ>Ö<§LÏ,X:9kÒ¢#•@ÏLo„û,FIf‚;p?©³†W˦²x)=µÞñë€ Ø†ñ;¼Îq’Ô…btâbƒÖŒA²ß6Å®‰Wè5àqI×íÏ/í‹äûö'v±•,þˡԈôMíp÷Shw—ü¼ŒCK~ž¥Î.«g³Ì’ow5Ëv¾½[Ûo(‘P‹Å^ãQÃr•ñ]Á]Š<¤0DölG)‡G¤¸ ƒ¶vÆSæxoàœ¶]/qQ…Flu‚&¶tr”U ›>ÄX8eyéÚ>AµÛ~x€aÍÇ„— x:º‡BO²ßácÎ×&6œUˆgy*³:t7ÊÙ)½L’úh¨MЮ£É~ùœÖÑ8X¬P¤éTÔ€O(Q™4j ¡=©»!&ÀÇ=Fö\ü]kU+®­Ã0¾ïß— Ò,Ü©7g_Ÿœ}z00Rˆ­•ž£¿ñ1Öevi#²( •á.~L"¨+ïÄæ|ÊÏ ÓˆÓ“ÄLYñ© z&é&rAêNŠ‚³Œ½÷*e®t÷®³é¢³ò÷^æQ"ùˆP*%ˆRæVw–iÓ"ô˜†Â­‚çŒp²Å…O¾à=2È¥Db„ïšN¥“à©Búb}ºŒ¾™GI‚³ ÕÚÍÏÑ0®r¨ët¾ÎIUø,š?Z7¾£E”‰Ñ–òÎÁköR3@nPZíW»'ˆù™hhü‹} ùžE‰ÂGe}ê»!´¶6wÈ8ÑžK-¥™º¢UM¶aˆ\Jד.Þ†ùêCäWßqS.ó Yâþ˼! V…õéSà:¿hS¬=i`ÉÕdæ•5æâË!þö2¬ü.–\Ï^öºh¼Ë.ü¸‡º’Õ¶K7£ u2nDXÙˆÇVØ÷$cŽÅt˜11¿½"C¯óö”Òu‘¶á Á:°HÓ XŒ,3:®bÔùši‰Ê'‹#!³%@)º_9ÜùU1[yIåü*ZR¿ fkx´Z4½°–÷Ì ãCym NÓÚÁÞ¾†÷¬ ÇÀsšÚU*@¥›“9­u§Kî£s&æk­¦Ñ¸i˾Ϳ$Ÿ Fgþ‘uM¨<„(´²/÷Câ‘n™+|DâG$þŸBâxS(u¦ù uX+0^å¥{ À¤ðšÞÄB)$<¯Gã&/ƒ(vß2DO轕ֽl•؆sŠö «þµ<~Ñ|üóòÈúJ?_Fÿ¾<.í”í‚cÀ‘B,ëš•··qK¿ÎÍÅÿ¹<þí€Ù <—ú*O‡qð¿×É!¶“ûOâ «E05ÚÈ3ÚϘ*tä¿J¼é`lK2Ú% «1#¬;ÂúÕÜ%É/ ç1… eڊ˼ð¹2yÔ´n^,›xLžÉ\‹ÁDW˜k?g‚^ú}04ʼnVÖìA;o!´' º‘ó~ÝL?o¢êõ( ”ÛšÖXWá&37ƒ U‹=tÙµ:„tm€Ày'ã‘}«iöZT’]dt™j\¬T€WXë–ÉÔÚá¯Ù"+Ì*F•›,?6X¾$kïÌ‘©¹õÈúÒØ·çb«¥ê@…•Ò:ÕðU•m †²Ä_¤WÙ@Jl‰5¼R”%qÃ=ˆ©Û^zI-Géâ\pÒ¦Ž.Ìq!ÈäeÀ¥®ž§^ˆWä€Ó{(=2ÐG«„/h°e’Dš˧{õ¢¼çÔV¨ÔCÖÚaÚFGI-yô ‡·™îò•=àÕè(à‚™ƒ_pä-¯ZøS&ò¾ààeÇ›n´ò׌“Á4#©ã·"?"x¬³Î4ÃÞV#ÉÛÇ€ôžªZ³îÿñB#ŽbÃåwã-P)ßTÍó"eÆ;Qž(Ì1‰ïï|M&!—?ót~æF)/á\]¤ŠÂ}…hý—Õ“ ô:ìö™ívOÓn®·÷­7òS!FÚcíb7¿ß±ÎqmYÖš¥òOǶj¥ŽISð&OZþíáò’Ìe“ Ú ]~5½ÚËA;¡ ¸BKØ GÐßÀpÝ·‡å2¼¼ØDxƒw–ßDöÚ7ÚRÏKçIŒÈyäNçIœ( ÐÙ{}›÷ý‚ìl.krxQ!{Í&Xˆ59!pý‚œMãbgÉ€PWløí›wlx4Å@“±‚8²ò‰V°vºŒ½Æ©?n>ÇOìè›9çÕ2Z‰Tyߨè<^£áY„73ÜÑ á D¾Òa~ONïõÎr~Ø.ÃçËãÛæuI©ýþ?p4” ñìfµq1÷¹Y  zy³wÿÀ‘z—œ%qð¸Qü>-æ@í!ÖÐ^>eÅ̺òûr}·Œ¶kÇOæÑÀ©”²þR`O.%?~^ìZQ«T”{OeRÊ–»w¡›>ôá²°S–b{JÐ'jµL-¨Yoš˜^°@øbyí6šuÝœ[k–Jß»pÍz^m8?~XY»øe}qõ~ÚIPvä×Í ¿nî᪹á$ˆbU’©¾8LüÅúlKJúTÙF°—ÍKzºÈÆM_è)nžú÷Ùç1mCк³‹j4/*J£ê{¥NòöŸ’=§¾rÓуîõuóµ÷ÍǬp{l½„_h’{ëiݘÛþS²ÞQÛT1jÅÔÙ'×"ÆèxèÎí;÷xÔÏç0—aô$à(¨v£ü±kj1ó‡€wü5‡H.ÅÃ;‡»3°pŽ¡Uù—â€@y¹ã/7Dã‰%Ä~[ïp÷»¥÷éá~º!•>MÕDŸª¤Ú–UR^gËeÍæ· K=”¥ïuÒ cÍpòj^¼îŠ£ïŠÖ™é±{çBŠÁ ÷%3Í7 Ï–Ñϖѯ M’‰xò°É4fWÊûH&H >“X$óK[-àÝ2úª€Í•´¥F5%Ößïxy«Ugã¹—[äg¦NDO>Òü¡RÁãFÓqìmú<‹«$ÿ¸†,?¢¾Ëh‹†H¹Ê#~?besëßàìé꺡ª³š‹bý‘,ã ”ö§1í.xñ“"-ÓùÀß(P®±¸­ªí)%ÝŠ½yÇZ±Ë…Ü€ð¾ÿËéwÆ_H=èù—µö/ù—`T¢ì•¾£Õ/TŸvò:FõÝMÕaNWW'ïÖÍý𠊆Š}¿J`S ­õ»Öͺ“:«ç6fS«›ÙÌã>m8ü³’~×Áø½¿J0·Ífÿî±à± »Ç^€Ú|?ö<ö<ö<öü¿õø»êÜÒ 0 Ü£ÀúP±æ>½xìxì¸]/ÀܸþU'‚«F/;ÿU'ö eŠ®ÆB»²ûÙ0=¹Ëñˆ“ÿ–˒θk€I½ßAoÃb<ýzl²í,ýÎqrÙ{Å¥%ûöä¿üN_ìendstream endobj 1728 0 obj <> stream xœå[KsE¾+öGLìiD0M½Ç] `7@{Â{°%Kv„e KÀš_Ï—UÝ]YÕÕ#i$»>¸"U¬|~™]óãF r#èßøÿé周\ýx$u3þwz¹ùûÉÑ'ßi7qˆN9³99?ÊkäFJ9¸óz^oN.~؆c1«µ5Ûáx'­~ëûdYÈqþûäŸt¤ÐüHƒ5ÚàÔ“3œò=&KUðÛOËð:a¥Úžt'|9éŒÏO޾¥ƒ\Ü\Ü™AØÍ/ÂG2?CÓƒ·›Ë#%(r¦¼9ú~]V5㳬¢Ä­ka]ÖÞ•áó2¼.ÃWe˜nï°‹ß¾.Ô_ËðeuÏ…úvÞJè¸ÙÉ0Ä â$T(Æ'­ß¾?ÞÉA¸`Ìö-#_}]3ò MÔ>pTÔ;Ò­º«Te‡(Ôf§Ý BЙŸË=®ÊðuÑíÙñÎÆ8¸ø„f Dƒ 'îí¡r%!igÊ*ÇCP°#OæCë|焬ÐÛgÛB>íJómÞ”á-m!Ü>ÉæáÉ&.gÉjadšIV[Êc‹†c-Ø/,ñ©íœ…ÂCõÙ ?ª¦ÐA €Ï¸(*ɺ ]>0SÏ õºPo õ]¡~/l³ËŒæ”µ|Æ|2¿íy&ZÙYï33"Â'à8Øz)Ç}ðÂuí®‚`T7²¶>-îýM¡žê§…úeåóÉ.!#78Ç ^Š~Œab ì©kÃüºðñSáî²Bž ³ÚbL1˜£àF„0Šû5³Š·$o#cmLÈT¥kjb5åŠÈ‚ª6ÄMÚÃ(7éL©åÐ>RÄC2ßuCíå¡…PŒÅÕt3Cî;gÅêû…¸®}<$¹Ì´‘Óq¿”èÌ¿q[í$êÚ½ÞLS|”£ÆSI.“gcÕ‹Ñbl¨¬à]Þ€"yí¸i[a¡KÚV‡Ø.£€@ɩƴò.§Aã,TKo²ÝÁå³ÞPÆÍz X› »ƒ%6ƒxZéö!#¯­T5˜ “#à ÛV²df„)JÃ팮œŠ@€@XÇWq´UjZw:§\’„¢nšÙ§Ò<îR¥Á™²J‰ª¤o£Àì0eöË¥ˆ]P!U ‰;\ ÝÜA§qÿµ¨í ø9\JÙÒ$îÍO›·ÖÎñu,!1µ]³Ë¼×?KÈéÑ2UW”ØílÎÆ}í"l¦ëY?…Mi¦°Iüt#†sk5‡„§ìWõ#áùù&gM®ƒÑ §L3×£¤_xñì £|¯5Ǭž»ÜRå8´ZÈÑÍûãn öP¨©áG¨Ž~òÕÑÉG?lÿF7Ñ«)JHþ”=‘mp£ÕÚî3Öö¦ˆc)ÒR”O‘™ßdNƒ¯‚[Øèdo¯×’z>ªrR~Æíȱô¹N;¯€-3¸ÙPX{ê_eøUoØ5;ÈAPNÛ]5·‚‚\+º¢Šk6nÐsº˜RÕÒó¼£Ñ{ì´’ ûj](×,ïšù»Yª½„6y†äs.FUÂ(צœ3˜pÕMŒ»4ÃhácN†AðÊ;à„mÎkóx’h£.KFÝfELè!Z®¸«jkšab=ƒ ´““sx®B4°"À®¶ŸU¥6‘cÍ#>Η Ó> !~!èýg]áÔ"÷NÊh’ؼùi}kM•B° žä¥¡ <#úJ,ܸ>6¨¬(ôYG-‰{Õq˜l„ê}á‡>; ¾{‘³b@0’º€ç¼ƒŸ6™,Çqv ‚~áÛ:w“ŽÚ½ÍYuÎb0¬ßùh ‡ *I56FêÄ ‡å¯Ü\>#8W"K0 ø½öõÒVºÍ{85­K- ç#—j­pè2¼ÈôuPžíÁ$±V‡¬ñÏ‹­¡¬%ÅPJ^é?5¡ƒ4¨Œæ8cÙ/I ×@DRT Ö¡{Žª5È£øšwóùoh34‘ã*Ÿ)ºWôíÈ•V{á1MQu*ç—øµÓ™ ÕGjwå 5ܾlÆ:©ôZè›Íó, U¨òê¹Òz0ÆãÒrƒE¹>눲[ 1(åDpSˆ™/×ÍìS·l*9û½MJƒ:~€’#Ý™Ž(¡/ ¼†2Sin¢Ì°ø“ƒ w67s?¶ßÜd`íª»¬´<úÍM¸A5½Í»}õ®Þf•”#Uî¶um`E]xF†y¶²ß»¼Ð·H¬>ÔŽ_õ dí¨°w!¬¥Å&2jÔ*NTY€'êÿäqê|®…nN_&nÊïó9^ª•ÌÎæ>OIW9[u]o²pæ ¥,Õ!¯¦ðtNÕ6 ±C¾6Ô½žå‹jpè|˜{E|!¡¨›*ì&ogkÊ÷‡œ™9x¸!³…Ŭ¥WÖdÆý㪛Hú‘ŸZåCâc‰4‘_nÄy/|~$b¤÷C 3寨`}Þ"e€ù÷u‡® õU¡~Ö{Û£ö¿?(‘júx?Clî+ÎÓ §Ù®ì5Ü~F§žƒÓë¥[°‚…Ðû=ª¯ðÒ”<Œt>zr#7;E…Ôtó‡= U…,æáïú€vz,«SÓðDzåðDzØaH&ñû|wåØåü¸,ûŸÐ™þè'´gÅ;jäw³(¢Ÿòál‚ i—”˜ ™‰rÈÃYaS8%ˆnp»?Dÿé9­àï·ö6ad0ôíÎ_2ìiÂtU¨.¯B>\eÙš+@ªÂäPîѨu¡#¬¶^9(ï7kîÿቕw.Õ…ÊÅô©ÇS|tO»x½è)j´µÔx ‡õ@ú÷½÷P~oÛ×mEÀC_î*º_ÀâÓ’~^•¤4ô¨ýç7žš30ùëÈ´UÛµOþ\h¼3ÍõÞùl:9)t’’5Ö^7é¿¶¹£9üc›#凯HsDRói|•ž›#åðævÀqö©òmwÙíq /þ4m¶`rô1²Da0oü5…,±¢;œõôíÑo¨M0Eendstream endobj 1736 0 obj <> stream xœí\Ks$5¾÷¯è£ML =R¯ë>bcc7ß`0¶›‰°=3ÌxþýfJªR–ºªÚÕ`Æ„PI™_¾Sj¿]K¡Ö’þ)ÿ~y¿’ëíêíJ¥Ùuù×Ëûõß®V_~k¤YGv°¾º]åoÔZÂÚyÆêõÕýêû‹—¸©:ø‹×uøŠ†NZ¥/®/76FáâÅwõÿÿ½ÿ[—^.øºþïê_«^­¾!]\oß­@H»þ™ùj¥eB%ꬰv}¿ÒJáŒígîVß-e·AÃåm¥í—:ü±ßÔáÏu˜ØwÊñ~ô³÷—'•°Ò\üpQ§_Ž"üP‡ïš-¤°ÁÍ¡‡3h'*{´ Ä ¢aÈ"8s °¸ƒ1ýê `‰NcEp¸ÍF NÆõÕ5î÷Å`ò‡¨Æ|ɶ %é‚qùÈ<{[gß´L³¿ÔÙý,·Q: ¥‰Òˆ’UùÄÊE5ÞiIBQÿÓæÿ‹ä?•‚Ç:¼«ˆÒÄ ¾õcØ;+¼³æ+>Tàn*œwuöu½¯³¯êìC}SgߊôÅ¿F6àÏ&ˆ Àrñ”™c$QhÐJhÂ<¸ˆú%ÊèÇ:ûñD2w>û1½Yà2*3ÇÈÈ8ŒyîO&£wuöqTrÇÙQçã®GCcý§:¼«Ã›ÁÞ€¡Ô,Á 퀃ùùuvû\Ḯ³w£ŒŸŽÓ[0&˜Z ÑU îfް`ÊZ¥Qgƒ×£OLÎ{’Î ¡àœÜÇv3ÇH(8,Hìïàc”ÑâàŸÂ©,ãøØ%p|º>"þÛp .3ÇX0¬¯Ïîb«”‹žüq¥Æd7p±eæa«Ý¡.öì:G¡qÆ ¨ nŠK¨Ì#!DÜ«ø;Á%2z…Æ8žA\ÇñAð‡Ë!hBKÂà kt&‰5FÛ&jn8¿]Àz¶·u¸­Ÿ-éúš³cŸ¥–­ ý ë»X”<ÿhéaߌ²üj”àW£4<Œœ<‹$g³ªcEôHêPwPš¥°Þ²°¿»~; ‹LcÚŽ¬D툶±šWœ·1i1̶Í,WÌŽE2 £Ü\üò[g÷ê–î“DŒ”à Ê}#*Ÿ(Ž­5A—­šá=Æ$j`‡»QÑÞ·²osŸ·š.êYñœP«Y@ûoþPDÇs•9Dûžç_ˆŽú§ñÌbVGO)Ïé^ ]ºE¨0ÿ8ž` Qé±ø÷êê‹ÏëvÁ|\ >ï p½&´¿‚À="| Fº•….ëSñSK øËO5Vu3ƒÍLju€ŸzÉÿxà¥ì3ñûK}>©êT>S¿¿‚½~?··z P)UäJ¹QƈU% ®¨ø?’^GceLô£¥UÈNC´RäÇFÆéé] ¹Ã¡VKŠv NÙÔBB¼²&Ö3`±@ÐrˆFgZuЊFåõzc¢N–Þ5ϵ4&R·Œ,ÐÛ4RM¤ÚaԵƽ@uÆxº¥*Ú œ_kpAÐ%—Š' ›8 A;ˆà í œöç~;:tˆ ,µÖ*n(x…²°1fAã!f¯h½£²ÜõHš,wc‚ò! »¬AYYÈf•)",›“j¼¾Üh®,Ò+à~?'©#úh/]‘}¿Ë{KY{½wAN-¹Q‰Ûi©{Jt¬æLüX¿áÍzí'?åü¿Ü¥Íó̹ئC £œŸ†lq%Óc´wÌi~[˜K¢RõóPt¦ÅSK Qd'M±­À{ —"n0Žö¸€ñ=.á›<²/9DœàÇ]!¼¡ƒŒˆÂ;4ÑÃ%ê¨h;sȯi;+ÂP̯37è¤0TÐ`ÂÅo™ ƒu6Ê p}ù—4¦ß4–9–ÙìiJutwœ¨lS'EÀÔæ]ÞLÜÃâ^ì!ΓWgé˜>:²¤ êlt v'z@yê6ø¿DNyyCeÃëæR¬&ݧÒb. {2™_x`–Ëù¸Zb¤qîÁ·IQî=t1ô{ì˜íòƒ^Èy;,S¡Ïß_¢Ó’˜CqwOû¡û4ùâÀM1ê¦<ÙÇL’Ç=î˜ dž‘qËãë ú0ŠàüRvYú¸ËmŠL‰[UÝy Q;Ü:;Æ-E¼n»órSôdÂ5µÐr 0c ÖÌAWÆH0s­(•1޼ÍRa§súîhE:Ýù¡xнužË$0!0O€%0î÷SÏvšg7™k̉~¦;F­z¯t7í4–@PÛ·xæM:Ø$U“€¬ vÛé4Ž[Á³¸&ÑM;§ ¹_}[}JyÒ)ZÀœ ò¡Þû1à)[ãI\-¸îXVJG*Æ/t =0O›{;+Ÿsz°d*…ä©`áR ëNøo—‘ÓXïÍ¥âhâ)nKÎL9!½=ŽC¦íã‰i &t+Ò&)™ºýIŠb…성±²j*I1CDOôzw”æŽFhÛÆ²Ý\²Éꨅ†0gê´£2~,W)uR]Îçs®âãN„Óô£´ã’"Ó¬g(Þ%hkGÊÏÖ3ð1ù©„òz„ÊÀH“ÎùX+¼]TS“ž ’5œ…Ò<Ö¹ jgºÀ»®`>Æ,ˆu+n2¸dÿ›,T«· YÃ{Èq€1ÈxeÄP¦ ƒöôL ôc`˜Í‡hIЪÄ~£a¢¸àz5qàK&ÿ›Ì¯WM2Iǹ8Úâ©áwú8õLŒcÎzõä¡<áŽZçÎøsh ¾—3@*Ív2€É¢[; ¬·<'úÁÀé[]™¹rØi ì´UÒ𤹀GL?°ßSÆ©«mv«“á¼ÿc¨Û{cõÔL%ÄévJ*2öµStBKBõ¡ý”hÍÕMËÑ„=Ô Îê£û)]‡ösMâýóaø¢Õ;wJ3Vl±°Ç÷h qC/šCˆO¯Átˆ,N—ÈÔµa9Á6¬»ÓÙà–͈]î嫹^á÷8D,ýý•&ªFº™ mlš@qj›ú4±»'¿.ìß !ÀRÎ)›Ç•Sê«Óí£_®¾FJ¡be´éZÐdÌSb—)5QÇ<9-ª-ܙқ¦Éf¨M¹Ÿ¢ðD ¢ý‚ZÚRÝépXq2Eú3t8tôkE½0’)Õ @¿úRë|ÃYÎ!}…±­!í€é!† šWô%\|M³:ØÐeºeÅ–}™î©E‹µú½¤Ö…в<3 ‚3ÔL3R8+a0‹«-u»õpïôDA+I¥I `Ð)—¿Å“Îü9¥â³|1ß$m‚:†ÒùeÞD­ó¯1u{¾„MsÒ_”?|*¿1ÒXDhÛ¦”óœÞ-é€xrÂàè÷ÉÈx€lÒ) ?)g Òé0a÷yïö1ÈÄñ?±é‰—(gbêÑíäôîÙBÈüö¥¾w&a©iA%# X³Aßߦhä1Pa.~­Î¼˜7µ³¹ÉìÒ®Uرnôhè•z{á¥g¦¿¬õëÎ-f%FôÊ] Y¸jÍ17zÓx¹ w›ZÿTžLkCC¾ÊÛÑ6Ê–ƒÙ“PÓ«ƒéÐÆ«Ø÷%oWö„Ñ£WTQ­&ýjÍ#‚f½¡?­æ\ÆQÕ/ÙP÷Ãþ…ç7«ÿôànendstream endobj 1744 0 obj <> stream xœÕ=Ms¹qwV*¿áŸlÐøÜ[⤜¤â8ÞeUv’HQ[%®È•-ÿút˜™Î#©ÝuíAOhô÷°?¤PIÿ•?ßÜœÉÃõÙg*Êonÿ|qö›oAÅCÑigoÏò7ê ”îà<åápqsö§cx!…±ÖÅ‹s)|´ZúѰš‡ÿ÷â?h |°B*©q¯‹K\û;œ­lÔÁ»üüýtÒ*}¼èNø·ù'mò¯g¤\<\ß!íá/xöß©2Ÿ„·‡pRX?¼?ûnŒ ðAÁá¾FÑõÚ§åç«å·iÔpÇw˄ߧ ¸J™›Go«Ã­(uî¢0^©Ã¹ "'L" \pÊúã—çJHŒ9~`Êݲá;úm"øŽß3J–q+tI©­ˆHÉs „È`|¿œãÃòóþŹQ8¯Ÿ‘âZê Œ>8$³0 É«¥ â<òòâ"˜@KáAò¶$ÛCÞs'‘ ƒ9þù˜Ðm£óæøf™ò±‹Ä» Ÿi ·ð™nà3Á6ãÀGÂÚ‚O02 OÁ'.!"4øüÝ£ðI€¢úÎ:ä}á Jaâ¹_US”Ç ?ð[ò™èóv‘ÏÛeô~ý´Œ¾œGi»s¥£PÊ HZXkÊŽ¿j¢²Bœqj–‘§P¥Ä†¢üþ©‹Ü7#"ºBˆ*“ÐMꫦ¡¯‡jÊ«ñ>™0ïž‹ˆVýˆh#hŒ†eà $Ä*ÐLÂïø9ÍûŠRY õ&5¹DÎSîÆ[r•ùtj§ô5N%‹Ô¨¶ÝÁéÐZ]¤Å˜GC”)™—&èL˜ÿZàøqùyÓ–-8‹fºíÒ÷SÙ÷]¼^Fÿü¢¦¶ZèÄ^€ô+¢·²•ÿ}w³©o—Ÿ×Ëg§Xå›Á\_…ˆµU¾ìªF‹×ËÏ÷ËÏ«1· jÙ„ÕA™÷t×­Ô‡¸b B?Àè»yëCÍHCÔbè8>èó0J\6VÜÓʧôh>\£mÿQ­pØ©-w„#zšÁñ¼aÕV¬û$<Ï»ÿ½ãù±½aqVÌý<= †z(»îbúSuD£D€m[û›o8n^ºhIÐHi< Ý)”V‡ˆª[ AûQÄ'ú %xohD;!ԉ欈C í¶lÒ {÷]"½)4Íðh„+#‹ðÅ®ºÐ³ŸÅ`.„kã|¥‘§41=z3ÁdýK¢W+cÚCVŃu”>ü 2ÆHNýv!¨*¶çñÿ=ýV^¡PÍaé‚’E0èufXu¬³Gø[yÊèG•ü)´EI‰gy‚F¨ TMè32¹¶ÏŸ RÑx‚`ôÂiÊEï) 4<&iMƒKmü*邚KÌ£—eˆ7 º>åÌ1“³Œ[T¦¶Aî‘© € ™ÄeRÈx¤þL¼„¢ê¥ã+’%‘˜ZêÌKåËùNWldUã""<à9ñ'%qtµâ«e£[¶ ßhúu]îÛ¼¥ò¾‚ªáJš‚®}–%ï àÚyt¯g,@AÏxFo& Y<ܼˆÎº¢|XˆB‚ôj½e˽[N͉Œ/b£ª8\å—šÖ7ÞWøç¤ã§æs¿ ì`€˜²ƒ: =ó‡ãÖkÒ”¨›ŒŠ0$ò%­”Où8mbQOÓ¥+ ƒêj…‘‘ÓfâñS· ~}(gÝä®tîPÍ`|Îq½Œ^Õ$LÅŸýïÞp©RíÌÉ6"Ö œBL|5WÏœ€KJÙÅÀM¬ââC¬B’·Í*ÊL¬2 ÊŠUΪr™’ã<·•:JVäݘeÚÏú,“=³Â1/I ÐÚ¡B!—ßZšÒNdÒ_@•·©©hJTÏ©4Á£8ÁèÐÍ«`|–7r3µ ðýFËm9É+£0³Š OÒ*,º®+­BAGè­#rÊìÌž¬X¤ÉGõYÄáDÍ|çV$ѹË$î%3 ÿÀÆ? æ°os6&x!©XSeÄ&4 I<øÝÊYÛV|™JYâŠJØr­0 6úÚx <¹ÌûX阼…WÕ63#_æC¸Ø¶-í–>dÓ?ÔK W¶ýÚFiT2™ßKöiWì^e]+H3-·ÀÆ=ŠLßšTNK*´9›Ä™Öt’”j ô·P›ÊÇÙ€¼°Y 6!W«SlÀTí=me;ÛÜcY¶y‘6€1t’À9vG“&ÃÓ"$d3 žåOu0#<*¤i¿Óø½µ]aÞn'JIxϸù²,‚!ì»Jh*£~N¬!‰:MÕŽRÓ³¹áŒÆ Ù ÿæ+­=yöçÅžŒ4^ÇØ§óÓÌ(‰‘|Æ{¦PÈ©Ãø½Ò¾ìË ‰š‘ŒŠ½+´ïMLD€(C€$DÀÔ Pû(I„ÿVã0O¯]ý#S…ðï³Ö@¿!›êŠEPYUhWi®$@ Ñ–@[gmµE TF¨åcÍ—y¶ö•¼Ë£”¨ó»= ªÝ¡g¼#•‘î®?i« •Á£—u> F¨.8<¦óÁZ"\Ââ výi¥/´&Ó3»ãá3dÛAðÃÍL!ߥ›Ù2yízEÆ RJ;5ÐlW…­ÀÕš¦ÜÈ-zS‹O• Iõ>ÓÌÌ›®,9š˜¦<)_1’óh¥œiÝÄëZäsíÉ1ÞØÀÙôýçÙůþ„œÿ¤ÓhèÀÈ6Æߢ㹥„G'.¥éÜs#_Ñú¼Ð(ñ¤^0HðKÄÀf®¦éZÇ6ÝD£è\mù_8†jæ1^#-hâ©]:®í¨L§+[ÄÑ»üsjÇ É wC@(üh`©?åï£Õœ©ßf‚æG.¡-I Ôt`á“ –°ã)ˆ0I#©²um†Šbhx–ñ&gߎ;þ-³sH‹UêÃYš~üKßC¬u ¹Ö¦³§Õì&Uh .8Jí2>Qܵ)Q=9EuèÇc²ìó‚3Â*U->HaW9¯JFÖôijšOùk^Â*Waø.{´[û¤•PâÔØ!CÅh þ Eâ"34]mÜÄÐ 'Š); Æ@\·¯)ÀÈÖñ?ñ~æñM@µùô€¾“éV?Ÿi(»Ô(tÊ•ë@Z½ J\âk®Ì§ó"hßÒkâ¡nM4 -fl³jèÇ´ Æû~!Ö‹^néd~]…&E}rfîðBšüÍ‹sxV¡§¤öç†3.í×qQÖ^oùGHÞGkúZÍä4âe^—‚ÿ·Œo;3»pS8'I?]ú®¨Ö¤ºFyµIï—ª¾Ä'µ;T©]ï*̧\ÙƒËÄ­ ) ¥šrÙ^AB¥‰¯@èø•ˆ¯¨ [—üj=’|zÝF¿tZsU•äsY I7È|4RœÖ@7’£µ6F¡ËÉh{§M ¿a\6íR³7‡ƒo2ÍVm N£F†ŽQuÄ9Wfð aIÛ,*ü=óýYzk;EÔWW«"æ¶LfÉà Ⱦêâ«…ëx¡bšl„Æ_„tõ£—1(ÕÊÔî`? ¤èº»&ÀK+Èxü=}5r¿>þ7ýÖF*$å¿§ó[iRª˜ÖpÚÄ( G åö;VFe +a”)*‰»rIZ¯)ü.áUàÂ9Hjÿ_þOwfX©Yƒà»Ï:”ЬL¤|¿_à¦ì‚QvSôÄFÂýOúÜP©Ÿ¿Ì©è@}7)W­|úÙ5øŒu8Ø nc¹{ÀÑ|žO‡F;V(âKþm@¢”…Ž)½ýó—X f­#ÆÝ\cb­Õy¼ˆÈÁU½i¤N¯2±Ð«[—€²¶| Tr–œ–¡Çêúµ“U££‚Ohrçi5¨‹A >my Çk`—»ÙÌnt_©Ú¾û0'Á \ç¬8 ˜'·eìÈ×ÖESP5\\E!8œšäVL“%˜ÂzÐs®ZkY2—+².%xÚö3  ý‘ Ÿ‘ShÆÅBæG¬y)-§‘ˆˆžˆâÛÖ 9•éžÜà Xl‘‹÷t¥˜Ê‡Áˆ í•Jé*W8bç‘Ç\%ðø¥7¸ ?µý>gWÚr#cî¬\w¥Ñ“š®´Fæx ËÝ•&ÊëÛÄ"Áôj!­&(ŽŽ[šAfÿ< 2;2½’XòèMD[¼å39„aòÍ%òóœo*S´4ÂÜI¾6®O¾£ï‚pÎÔ„G8¹+{µÂáÊó¸ËË׎hb'rãÆ.ëA·Y§Î”døó\*žp‡N·ûy\Ýž®æÙÖH)ˆXmY¼ðl¯Ðƒ^øûºÒG>R ­)î¨Áy™žD=Œ=ù&wy:Ê߈Ó;?e+_.²S,V´½×ölÀè©C cߣ£ša Ž®=·Ú¹#앪öùy—yA77U¦EÞ¬¸p+¿ÙIMò†¬4~]‡Ugת§Á'GcĨ|Á>£~)Ç1Uöjàpr;;éoÈõ¡ôfA,MÇŽ$9Ýä Òq²Ðáæ üùû£ðT-cÙ÷T5Æ4Œ¹‘–™HÀ¢ÝuÁ´Í,GmykºÎÝŸZÞµEP°òÍpX-9°ÓÓCƒ)BTÜÿ!‡&jT“ª{¤Æ NAô}cå ´Ò©Â€ð¢¯ôs+×Ö ”5ŠOuN×0ᨺ"]Mn,ÑÜG؈r&®€eÆZ÷gØjÝ¿U"ïJ¯ùŧôFö½Ô0†àãʤoO¦LŠ}lã‰Ð(ew(0ŠX¢Jí…9xéÙª‰Ê4WÇç³U9¸1ïæµa˜î)“%ΰµÈS 3vÖæMÚZ>­jÃ-^ŒB7‘ò5UféÔO%é(ÁźvÒIf•—N9µysjrRXÑõU_q×ùPI kö.à|5çž¹6€á_íhÔ® ý»¶ÏÈ-Ñ!¯×ñ77«u²7G7s(Ùuò¢Òl†,é406œr?Ÿ†N´XéH¡¬W Ë_ F-lðG.ÃÒí¹uéF™ß;ro7½š^ªªJ§ tg/Po)õPcFR–çÄ ¥ƒ„½1 }¯¤NäæÔ9Tház—ã³ñK(ìU¯×x’ \;ÈçT¸”¯G_SÏ‹téC‹émŠôqº~ª8mÿÐîÚ gvînÉMŽ3°¿F¤hzÅÃ5E¶ªñX¡nWJç±ùÛß.å5Ê » ‚zÑúªlX—îqŒ¤÷9ôq*rîjb8§wiš€ç¸ÅÂwl\'ÑÉÒÕí–áe—u8js › |íÄŠ“TÌROòýs#/~bÓêùÔ KCRÔVîXµ€—÷‡Æ‰ýb\rAšb\­Ë¡jùè&ÈéFOs;³Ûè\á}þ0ôûK¦ºƒ8êº+5%ƒJÅ&#é3·YÁÊüÕI˜}a,}YÖ³3 ’ë•*3’šæ_3ž_'&ÓäAB~fdi)§—`orÒ§>M°!ÅÆ ­hÍ>L·TÕy——ðM¿`ãvá Ò êX.´¹:4t·eó±DšT¦â”uªpj°AH ÂèêujPmÜÆ4èÆ]ÎåÚ½Ó"‚]Ò„)Üu©y8SÞÔ\ƒvà6‘HW@}}‘ëÁ—ù¥–ؘ­MâZÝœ*@oÝ*¡m£™^Ý—âÈ/sG°ñ=‚´:_on¢ÞÊÁ9¸á•Œ‘Æ-]Ê*sÀ+7ôcjÓØÔ«’;}Ò&I7È-Ì]qË£ýKž°óþÜô¨å°my±àÛt­éXìù¹´yyC.¿(˜ß–cÏÏ‘R &µ|~á#gMú”¾ µÓ±ËÛs|þ+wƒ6½rõÊÂ3¾!ç5õ!œ é¹ÇÁxÄÎyBÎÛôtœCÜØOÈñÿ¡kÖKmy{BŽšZUï ¹QH¶ïåÒ–^ºC?¬UøÛ¬LdÜìÊLM…ç|ŽV„ÚhM Ø¸”S;òè;ƒ¡R׫ºËÿîÔèöÏ }XLÐèá…QÔŽäçÊÏ’nÖµ~>wFOv´^ î„ÇÓŠ{lÒC:REÚ7É jiêª{Tù§úV"‡|ÔýLY»:Ù•“em=æç&òGfJ¯ j^MƒfSšiPsÝxYžùЛþÖ4}ðÞLÊ$íxoæ¤'Z·Þ›qÐ-²íyoÑd UÕ &°Ê Ê.0 –J7Gâç¹½u;]7ÚWç;OÖ`8VÝ'ãÒÝ5X êDg½:“’šÙJ¿Ê³¢ç.O~tÔô4êF}$XŒš>i¶üœöªSdž:®bŠæeT®Û]ut ­Q´zŽuïÃäȵaBºÞÖ¤®¦çr9yãMª–‡Êâ2/|*¸ËÐKc$·ž%Jy ˧ðwæ† ÷éªeS©Ë"åmôlôùô¿þHÇ`%kösynvºþxöÿæêgendstream endobj 1754 0 obj <> stream xœÕ\Ére7rõšáð7¼%©!̃wÛv¸'©vÝ^PEÕáªb5IMþú> Ü! \¾G²rhQˆ $r<™Þ_R¨ƒ¤ÿ¦ß~8“‡Û³¿ž©Ü{˜þyûáðÏoξúÚ¨tH"yííáÍ»³ò:(¥„?ø`„ æðæÃÙŸÎã…Öã칸¸”"$§euë¥ûÞü­# _Ç8!•ÔXëÍ5æþ£•K:†óY›¿§¦—Néó7Ýÿ±4i‘{söGZɧÃíÙÒ~ÄÞs¦¢‘e7Fwø€/… KÏû³oÆ ª _=5‹nWÒî×æÕºO¹×GãÏ¿[ü6À,ÓØÒûimþûÚüËÚüimÞ¬ÍëŠ'_ú$lPêp©¢HQ¦Y^¹pþóÅ¥ÒGkÏ?²î»UПX÷µm2!F·*ÀÔï¤2] ÐN$(À¥ñBÇh lw׿ãÅ¥KIø _QQ´ÔQX}ð*b·Z¡¥‹Â¤¥çZ)D´SìÎ>©I>­¸ôR‘œÎÿ|ž¥ä’öüí:ä®Ëû‡J ^Ân|ÚCiîˆ!oiƒñLgR0AF¡ÃK¤€)DÌS0)üæYR :á«¢w#‚…ÉgMý¢Ú -„øˆÛU~÷«Ù_­½ïÖÞOkïãÚ{¿ö~¹ôÒr—J'¡”IZ8g§5”Π§¹0§ž—¦el*Âü§®0ߎ$nŘ\‘ Ÿ}Þõ#Øz¨†\ueøvíýî•dh½úuÉÐ%ÄLé˜ çžÈ‹Š(§`ù ßȶùX‰ª2ÈZœ]‹\†<<%¢«×2I§ž6§Ê\xwpQZ‘åk^ÏÏ‹±ÔI3¨•Åò»•Šï׿‡­­³kOÞ!Ƙƞ>uY}ßeõcwì·kïŸ/j 訅²„l J1‘oÜÃÝ »X~·6o×ÏN‰äžûnÝÔq‘\ Kqœuö¼“ß·kóýºØM—šû9ŒÆ‡noå¹ ¹@„Œà¢D@Î*î*0b©µAî028>Ô ¶Ú ²×]…bjÖZ´„å¨Áôɬfœ,Ë|fV›ÔrZùy¤/âôU—ÓýPø"N/¾óÿ;§+¨Øeô<‚ó¹ŠïOĨ—ñy†£¤«Ç°Û.Ÿï«Z%¢Ñ»ÚöÕ×Þx’ˆ+.ÄZý25RÚ` uÊ8¥Ó1Á¢íœ¢e–2饶Јh^éYÆ`l4B{®X/c¢ÑéÆ^CF˜ê© Ÿì¦K=3ðd(²­'(àÝ)êX?1ë_³¼’q2å5ŒAj¬xQ¶‡¶‘)%Z›Ú>FUÕxá‘Ú*(`Šj +KLÕ $¹ºÐªS]ÜB[ª9$AA¼JLKc¹0Ò¬àbÔ šHuÉÆ¾’A7R|ýú•J6ªÖYI•ªÀÞXþ÷9eª Ãô½ÉôþŠ µ?hD(g¬šÙ{_*R.¥"nc‚MÅ'¸`¬QE;,´Mš¢ÆDbQ‰i $j½.º¢{0í =Ÿ‘€š„ðµÔE÷¦/¿gzÁWºaÓ<”Ù¥Vàš°b媯օ>± ùB#ÒoËä^Íä"ÛHÀ6èE^ícEÕwížÄ‹å…` ffSL;‹Æ˜‰Ë.z;óÇak|“%ˆXúÆAÝ®››¤eCm¢ ª¦kÚ„e|Î}.8¾g>†iË -äÀ7CëëHÂ\âÃ]ÐäX5lM%3”ñõD·ª~7¯báÖik"UQ‰"™¢ê:äO¦fÒ&ßuMŽ—û}‹²N¨˜“b<(û¶1l7Eüè*×ì"AÉÚþ®6ª@¢` rS 1/£Ýà»·DÒ¹T-Íå6’ÖºÂtÞSô¸™7¼êJ4ÜV¦5~ÖŸöte^¥˜MˆBGÕ˜MÃq›¨ˆàg5Ò˜ÔÄ÷ãPB 5n륯0·¢ïÆjÔ~ÖW£î¦å¾¼¸„h@iª,õžKK`‰¶{ú•‡Àš^Ï:Àl©}Ôµ‚3Õ+ ùÅç›IM¨µs\§.3+§_ËÓ.Ð"û*r„§ÑÒ ™½f¬¯"^D¾[Çm©pßì” b4¾ Mfr½Ác…;Ïú?Ư¦ž–ó¥7úräÕùpä6ø4•÷Ì3:¸¸ö 6Ølº³^j¨‰ÐÁÂ()µXÖù’&„Œ½åšÎµxÚš“±âÄ{¶æ{¶ÐCfïzr 1qä…™Ÿ¼ºÈgÞ‘âe:^-¶bÛVêM¢OSаd™7Ìw³°¤RøQDDP!‹öð_ÜC ¼]Õg&S –Z¤ŠØw…eSö’`„q¡ˆsHø¿š‡exŸ¹…üsöœð¿LÆì¡QvV(?¦ð«}•,MÀK gÚcË&k„*)]¥(w}6“ZÑ9±5ç¡9ŒÅ«G'ÊŠ ü1µfbŸÉ׬ƒuŸn»ßofÓ0Ö>fa’u„Î íÅbb|œâŠ'<ß1¯5åϺùÅìë²\V>.õ2n@¼+|5ï"šžÜ§GU—3]u^и2ïr&tì­MÁmh±ŽÑæóÀ©|Q¢>à«cENnu‹¥i_Ë(j"æªðK˜9ÝÁ0ãàØ˜9H´r7ÝÌCL|™™ƒƒtõ`Kˆ× ‡âŽB¡3Œ‚¾®ÑkUÐ}üÛ­âÇ#4ÆrdnL-à£=6Ž®"ªë”b÷êæ¬/&píøa©ª´¾ Š®U¶Õš;ÌEçzõŸ½ùâOç¿/AÏkdð”ÆB£•6çÛÃ~*™çí\|¡á\ÿ)­D¾ec[yÍ5AçF:G¹®×âh(ET§DSDïö$ACRzÕ»RFH™NB…ërLimÝ4:&?ºJVü–i6~µÑµ]@|].’I˜YuA”1?<|.ˆÊ2Pp³ƒ³Ë÷u»ˆzñ9Ùdïú±½£#T?µ×Çöì”9V!æ*?ELëª*à{g6a1‰æ2_oYœÝ›M4G®;½À½cªñ´¹36 ÂZuvD³¹ÝâÕ¼ñb3ë”$x©`ÊÑétçn›æË -Ù=“žöËçž’þàD Kë¸ mžm4¾ëi‡OÉ%¨ÊJX+º>ÑVbÒ|Ûÿ8?Gló&´þ`‚€gKWÅwÎ;±7¸EÒèA&ßCzKÏñjù¾++û`^d>à£ðÑœœ pM$:ÜG“ÍJÔ}Œ K a-.Ïîò,25v͑¯/'6ßàÙ¢Î#AÿãÅ¥·ô€U¿™+ÅÓt¾Sýmï&ÊáÇe1^-¹„âC¬©‰Ïöï=„D1y¡½šÊتº¬RÝú΃颉¤¦Úmk•¡ú¹Ýâ8SÒ>ßÖh‰à[C¢^©^fHDYB ð9ŽÚ2ë\:=Mf¤VªáÒ¼Q"ÄÙ¥eÂ3h>ñtƒ% Ô½¢/'tës§”ƒˆ“¡[«ÜœylÜû´v­È[Œ—YÈ) í[€MÚ”Ñ*‘Ô Ï6gfìjÜžÓÎ Y}ä9“±è¶Ž¾}…öÝ{`yôC¡ Ù|µ/((£m(DQ‘¶9¯(3¨óßÒWICôù¨­­THuX]ùË2:Êí QšÙŽ­À%¸™ÑË\·O;Ö”5š^c+Ç4Þ IJ¨—nÚü¿¹LffØ:¯Ï{!2ÓSkùqn©² TFã6ÎóàÎ{²ù‘¢„SizOöuÞ‚ÖIË–÷düQXy"X‹±÷d$ψL?§ô”MJCßÅè“)Ö3=&ãsôŸ­õßrÌ4ç´^ÅW4ù‡Œ”¢waÁ¡géxÎË0`Sd˜‚~“áé—aüŒØË°|=ö~&•_2ÝAÒyï‘=Î=bÆ0t×Ô°†.f×–þ®ŒH~ÐþŠ¥ C7Úôµ²{J—?L¦ó0kÿ MM—Vyj_×ôfN ŠÔõ½³e’é"‹¢c¥¦H×¹î¶y쵃@º5FîŸFW ›¸I!9Z}Bô=úq „9î šÝûýD ¶¡JX!#UÞF9¦äMÐú45Gó=nÏ‹,ÝÒ©®Á%Ç2Úk7*®ðYfЇÀvuš§ÛCW›ËíÏ>t}Æ¥Íî ÷ƒéðÝÝþ íuH6`V† h"*m. Ô·1ó Ùé|+Yì¥VTÍî\g ª>ñ)o±Ô±—»8Ó©’{ýDÆ‘Ýà·xç'W64õ)›Â©F<:Ötã:ò[- ÀgÜdã~Á™ˆ ÐWµ‚æBö÷\ggüyÚCâW¦KÙ ù¬^´w´Ï~û¡ìØZ;NùIþVUè”Uˆ *e…œZÃ;‡FƒKGÇÅ%1ðESò—ê½= Pµ§P±Á4ǰÓ~Ó,Ý¿ì¯cN¿„©}Ø/aÎ=/ø%LL!èW¹^òK˜èÉ®Óþ•ýºe[üóôhž[Îd°RkÚ¥¹ˆégK.ú}endstream endobj 1762 0 obj <> stream xœå\Is·ΙåÊoxÇG—ßû’c6'©,¶Ì›ƒ$Š”+"e“’må×çk`–óø6*RR:1XzýºÑà+ÑÉ• ýÿ/nÎÄêúìÇ3™zWý/nV¿½8{òT ½Š]tÊ™ÕÅÕYþF®¤Q aå¼é´U«‹›³o×ߟcRUðëÛ©ùö|ccìœWëo¦ÞßMÍPÓ +Õú¢9àOcóŸ9ûÃÅÙ×´1W×÷g¦võ3Žðå™*tFÑžlgíê=6t:Ž=¯Ï¾Ù÷ ˜¢ ¦:èõ´·»©ùljþ05_MͯÒA¥×ÅØ»‚TNÈÎ ½þn=u¿˜šoš$¾¯¦ nµss µÓ.Gjk£c'=£¬6=æÊbŠ.æ)&Ê~yei£|r˜f#;oœˆ«‹KÌ÷y1Fú.jéåCfÌtA»¼dæÕÕÔûÃÔûvê½›z¿{i½T Έ¨de^ñ~ºøütJpfÒÇpÒ°ÑgNþ}ÚÁ»©ys¾Ñt燚¿5-…o§Þç»ÐÝÛNK0ÓÝøî&šÎzÔ÷C};ez=ú†Ÿä•š¥G÷õŒ5—Ò#ãz=:!cD¯á:´ ] Ä)EgâØsc¤ìDžòî¶«'¯Ò`¨Ö[Yàlç-\[1d•zÛdÌó©÷»ó’ ¾T©€]AÞHBj®×ê•]úÛææ¯¦æõôÙ>~uvì¦_`¾ð«—M{ÀØò|j¾žó²¹2[îeóÈ Ý7{ ›ÔÚp’ -OšÆ[ß ÛE®ø0s#%`˜5£—«&‰˜”0Ù©UøÎF[Þ%`Ø¢ØuÕ›—¹+Nhd´t[äÉSèWKN–ñ›´!Œ×àû~IX"¹)Ø«ƒêçªTÜûÎK B± wsl`'W&–Ò„Ø[tg}dÑÕ±–\ dëdÜÊ´&¸ìΜÌ1>JvG'ó?'»'Ô(»—†•â’6AwÊí¥o›\z¾È¥`Õêp &af>­ùd/›»gÍÞINŒÓpFì ü8`Ñ3P\×ë÷‰_Q[ÓZ#Δî +¤†ú¡­EŒ‘¬µ]›CÓG«©0Íœ´ÉÅa#^cH3Õºs›‡›¨UÞ«ŠÅ^%ÚÒùi„ÑÁä„RBëH—ËÛ6M;µÑ„¦ŒÑTq±Ó…ý2‚éøÈwÚ§Éh#v;ö€Ó0Eá(-‰”~ô¿”—ŠP‘uO90ÒÙ3#µö&fm·Ñ„Ì|7#¡3ßµÒ‡Ìì~ ˜¥‚ë$,I”Ö Çg$ü)ÀW%T–ªþËwŒå|¥—lšû<»2!¹Ÿñ6÷‚_ÅàK6ùõ4šÙ¤SkñiRïìU1†ï‘-ÊÈÅz—6~™·ˆÞ~º ¡ýùCãt¤;y|õdÖÊ»ùSÿ›i–[6ùX2ÂËh_Œ¾=‡ðYÒxš¢©bp‰Ø{”•%Übzgx|E*amJ¨ûð0r#ô™$dÎ ãýp&%'~ -4am¹$^Q¯éœÕ1*Û£"ï ùXP&\ø‡IlärØ .m¯òwÑ—ÂÉ÷Ê&áá«óá\ǘĥ *&Z^Áy[œ±—ë•ä'êm²NĆS¨d,/Øð<ÍatX¿Ï1È6€€u7j”€SæÏÚGˆI Ë%±q8—(—4‹KV©ZÓ˜ëB£6Z8U)Щ£\ hÑ’ó¹À¤ï^Ñw`Ÿ1-C˜†”†Féšå—­%Ë¿Ôÿf˜ã–M\JßÒÆxx~#wóq{ýïu/ÀÔÊZ~Â÷™ŽdíN$Øy:_ v¦£ÝG°µéäˆZö 5Ø€-">‚عÛG¬ïCd˜|: sH÷ùTï’É5§Çg¬ÿva û6gvàÁÇ>ð±cÐ^ˆ†¶Èæj˜']2o|Æå4£èˆë0õvl°nw+;í,*…ã:° ŽCHYÁÑ_ö‡…Sx¹°ï•„Ø! Qr«ÕÀš"þ˜úlDèDeUšJùŒÆÚDƒþîp’6âb¾ëÙyJUQŽRøA¨ß÷kx=*~à(§…ˆÜVô–§s3ŧmb•^ñ¥ŸxÙÆRÃVÇR³0¶‚U;x6&åI-ûßn$ÂçŽ ÇÐ=ê§«Nt.C6jŒbv—tsë,qJEÕr·óŠéâæ% ¼fÒ|ÙOdA¤¼Š fýS’ ’öÓPå(å0z#.g¼MAM”øÉÚ\¢¶qôO“»Y²‚ïJk2˜Ÿf$IIùˆ×…UØàlð4¡°È»…C#‘ d àB_AsÚˆ4´‘D,¿¼þ]Ò0WÅpŽß~Í"P¾ñï³)A\Œ ÕoÛbHo)”+üÆwJ"º¨/_kc(m AyÓ&óe­¼åä¼Ï½”…ãQtáƒv žRAï7ÉÍï·”…k4re´Á5•FXk !cÏ!¥Ö’a ÄQ»ßnͬæ&ðϘE¡]È!033òÇ7¹f¶9¼z¾^à ø¤ÜRæáe/TÚ•v¦µ¹% TEª<×’¶ V9I2kfÈåm»B™ûåÚ˜·h‚¬LרVrÆ.ÊUiؾáÑØ® Ìi¹‹¿ž]|þ-Ä¿ Â)ø:/¤Æ8ÍWh ¹”thØ4œ#9FBéÊ‚'Û‚fïû½È²ÊPÓp¥beWS¯°[Á†èEÃIÊÓK)Áë~B÷ôÎù¸¶a/*‡¢÷ù;çä'œÌ%gÜ mB ½ä¦ïò÷Ñ*.ÓWÙ{À÷5zm*’¶Pòa–Lj1å oÄò„9´ê—.ïC{»PÉìBÎlÂvë_¨zƳ$ð+†¯nÃÃÒ´>°6=Íf·r…†`Â¥Ì1““… Šãšø"*cA¤ÕÛn ¯vˆ»¤<2HTSûYi>ä—<…•® ð}îöp[»i+‘ÄÉe4»há¥-Tâ" ´·2nèJˆǤI–‰²™"½äê–é_äцݔ^ Ž±¾jèUmwòÜ&z[Ûs¥ãjb‹ÕeœÏ­ì»R€¹ *íðY³k¡æÝ«Ç'SVˆ]º¾I“ˆàý @F[»p·æ;5]ˆ=/¢’Þx.Ýupø ¸]òS»’r†FR> ¡6g„C‰9W¶>¢ºsàVåã!­Ócl¾¾L?²Šmi¯ ·îzÓÉ¡ Ó¶%ÈÓJÑq§»”·{•GǸ|k´œ´Ür¿F’Í=ÅÀ+,Ï×)¯¡Èÿ+ã‡M‰Y<›§pë¿ÑgQ9hÂú«ìx>¢øç¬k>æÛ<º`ë›Í4›4ÊdѸÂa•â°‰ó6,E®t3dŸu=å@¬ K•€TO@¶ts„U Iv!\álÿWnC|\þÐt²º}Ún˜ûËdúÐA1v²Vi8Ñ̈/Ô Åhhfz=MÛDø!/;áµ#¹’(×”°²âcÀ–¡?;DJ^QR‰¾ ÁEõ§¯9ás´«[‹Fò–YÂó„µ#žjGôJS)™òT;â-zÆŽCJG<Ũ‘¦]탥#y˳ґtEtté|ºÊ‘#o8 JÒ%WIMïJ(‚W8j«¶‡vøÒȽ¯ÚijìãÞhLëTñÊhÂÅóÃtÒ0™ßYž“¤ŒJA$ÿ–·¯Ø 8ó¸ïzÍŒouí±¡Ê9ƒ±ÀqwG™H³KIwZé^ÎûuyÐ8‚ÝËÉþö¦$1÷K(Ñ9K©Þ+Yaôp¯¥Äƒ÷Z±\fž/×SÐüÀwù ÎDµ”u_‚NýµeT[ë]xÖ­q»ƒøKTŒ\ßîð'6Û*€Ý3}Dw¾ A‰«T\ä2]ÜØ AávÒJÓÉf¨€-ôÏd'«÷’§XRÆa/°ìŸ±3/m½ŠØ¸‰HxHØ"2®Ê‰º>–ˆœëæ}f–¨Œl‘gJŒuvñp·cDÌG 3‹*¬n¦ šìfŠöD(LKIöàϋҶsÐÌr‹¼„ƒáes‹Óš¢/_f÷ºi’6pT.êà$ådÿÌ'Õhd:w é-t›±»i°ˆ–R¨®¹ö…x¾Ü­·NÑó:‘iì9âQ‰hžðWïñ®;¬:xýÇ©É Ò™š¬6ýò¼4Ø5O©@ÊK™ŠÐcˆa ûÓßgÛÌX&žºYõ8/6ï‘<ä6Åæ!|´,¨ÀÜR0÷@íþ#¼^ˆ+º¸Rš½zŽx!®¤†—ª||OÉrüÇö°ÜS&Ò1†h@;º>‚!˜X• 9öayóÁÎx˜å‡åü Ðc=,gP~~žöóÀOÞÎϾç`~¦) ÁvŸçå³÷­ñ¼üãyÖßS_†(JmzŽ ¾„ §}]^<_mêÒ0âþ!õ8ÕÛò148!W(j(Wä€q“N©öfè9èÑ¿•Ò"§õ¶|G}Úÿm9„++Ô'ø¶¼²ç{zäÐW{{7ûÃ^Ij³7é:v"šߌ"^i¼ìU‚nN÷ò–—MùzàeopâeoË´1d¾å]ïðÉ Ÿ¤?’û+Ÿ¤óS”Üü&ý8ÁÝÇ7%¸'}í¼$¸Ÿî‹ô&“Šé§ò^ÿéüÔ»g3»Vöšnv3è4À‡û?{‘®T'£Ÿ$œòIº…iñ+D í”tŠ=fì9èI:ðÕ˜ú$?Ø“ô£’Nï€è¼’­ûÈã^²[˜Deö®ïØñ%»Y?!£^S^õö_ÿ¤«¾‡_ž×ϸZ—mDíâ³õ{ÒÂçÚ=i=¦«ÑRÝ×ÒµE¦*Úë¹å©âã ª3B,¡|UFÓªêŸxØÔ_ªùs^­NðwZ.p~Éåñ[ÉÖ«¯t–/ ùe"Ì€’UA¤Õ¦SjkÅ·¥?bÊJž½k\­¦KÑý¹ÓâÖîôú÷¸Gîé”îdo‰®fVÎ7®²ø&ÐPjš¼¢Š]q^4Çš¶Õä¾>ûËhá endstream endobj 1770 0 obj <> stream xœíÉr·1gV*ßðŽ.qŒ}É1›“TÛov’(Qªˆ‹EI¶óõénÌÒÀófIÛ•rù 1ˆ×h4zï¾Û‰Nîþ×ÿûòêDì.O¾;‘4ºëÿyyµûÃùÉçOµÐ»ØE§œÙ¿>I¿‘;©]gáOÎëNz½;¿:ùfy @mTÁïßOŸÏñÓ +Õþõ4z;}~¨ýìßç‡ÕUŒ|u#»  p~Ë=9=SVuÚí?žž‰Îz‚Úßá·÷Fû°‹ßZ[¯üþ:ÍñRx@ôL©Ø iaq6VD¡÷o˜WýM»2Z{½3Ù gc¤]õ£·égÚh‰ ”ð3ƒ`Š^¸ý›Âàõ‹D1¡µl§øzÏ~[AÂ[ã7Œk¸BGzhÙy=’Ï•Þm@÷€ÃnmPÖòþ˜èƪÐÙ`ähBŽ’ò‘Qg+t$ò—M¹ééÃ/†‘—hž˜©`ee,L 7Ý›/ épÖûiôù4úa½­Ž¾G«| „ð »3©:kœL|»g[büG¢AÜÐð"çБ.¿eã×9 Œ"|†åþYã—/Ù÷2¿¾!Ê}˜F;¶¦ž  …<¦=°âþÛS¶Î“PÉÉrÍdjØ›2)Þ±5ß±…FŠÆ%ùפã²5™ôŸÈûÏO±ryŽðþ¡Ø7ne(Ù@À*f`w`é:—{Ø’Ž—ßVùù}•÷?Tç¾Gë*Úv2D9¬÷=ÌVBĉé´òÁ.…¨àOñLKÛy“pXÛ ÇÁsÒÊÏÌx?QRå'Qaj¿™qÛ!5 Öi£2A­êËç=ÞÊq¦â‡9ü¬Îk²ÄŽŸˆQtÈ×X60 ?ÿé CJõ‡¬uôÙÑäP`yk YÈ$"*›œdÈ“cJŠDÛlW7ŒžDC‰\9JÛ« ad)eÁÇÑo¸NTÍ1° òhâŒva´ðƒå›Qq9ˆË/§é×l¡ªRmËu6àŸ$Âøa:«¶ü¢ 0ëJ ­Qjwþ“óϾٟ×O¹7üÑ„ºþkíD®˜_Èܾä"2gðCuî‹.¢ƒôÏ6Ý­"¸“6óÞ0+ÃÔ§,·2= ×p7NUn{§ïkœ-áÿ|¦çLû)Mðh(´ oІùnF’dþn˪¢BîBÈ”û傉ŒÆ^¨.fȾNˆHƒˆ!`ù¦Üý7§ašžKÀG&¿ƒuA1∿핇CU10T¶…)½W.3 Ɇ) V×^ÅeÂfŒrS'óè÷–Ž!Â=vŶ¹H¤RÀÆô*&¸ª˜ºØf¶ŸMòöÇéóËéó¼:ᯙoðçó“¯q%w—w'¦v÷=Äš_€ç­ Ðmç„sÄsWè‹›¼”aäÝɳ­éà΀SDú¯ ·ÓçÕ² Q¨çìH‹ŠËfL“•ó讦eïÒY¾Õ³”Kн„×Ë}©Ö•Ýðw˜ðNa-eéƒà°Ô‡ÂëÏÅòf²˜\B†683`BòG@B'¥æ¦6Sîã(·ô\§³øƒ$W"Þ¶0µ£IÅ6 n`qáƒmÚYšlº MKæ›'ÐÂúšíœ^m;p¶Eµ&:â¡üEÿÓP†.iØgꆫñO§ðw«D3d+XŠˆ Sx@CkÄå ~çåVW¬Œ ªóàw1ﵕXyÓ£âFSE|ÄØ‹4Ï{¬œLHw,xæŽ 88nÂæ”-“É'Mç 'QHÎc¿xN5\öÉ™Ëb¥-¤-|1 ¼é}âØ 6¢ã ¤bt«âä6WJx]¡%”€¬Áé?¦Õ]Xå™õᄵ*êôÀø7ºËº •áÍÏó°c…øm¦ ~ oì<:p!OfKƒÃàÌ”;«;b-vejþ:±“’¾O kŸqNRœàb±Ñœõ’9çBŒªàtíàðô{«Â¦$%ýÎÁé¦Ú¡˜ ®cŒ—2-ÀŸ3M“rˆ_ÌQ*=xb‚VZ®Å(`ö ‰ÁxnÜ(Ȉ¡ÅøyOh‹pa`p3Ên=¹ÝR7øÜ>eWÄ—³ ²Œ/Sªëp| rŠ/ÁàXd q€ha¢¸ñz°˜1K3¼cRÃ=¢‘w-›×¹3óùS—#ï!„’~L„ü§üjª{õhƒ¦Ë\º48±R!N+ÕÊVm Ñ(HBÝf˜Šýõeu@1óç˜Où!-ƒ©<¾µ»:H•…g7‰!bÞZe¾á &¯sŸ,­‡ì#Mç¥[“y+  ù4et‰á¨ëˆpÙý8'˜‰M[ûT„ްCïý %[Œ¤Ý#z»âП¯ˆWá5ÑϪñÅ ëè\Á¬\y5.@ä¼KøÕ°‹ kç"Ü›’„WnK Uæ,EB§º~H–ÜDo Ê Œõã¸St— 7æ¶‚‚[UúÒ¸/ËHüÔ”Mþ ÄátÛ8b(±nÒî'æ@A¬ºÌqj¤0˜¸U^èàF¿NÖkbП-{,¿ ±Þœf,çŽOcV¥Ô è¢(µ±²³œÆþ2=§RUÁGK¥9¬B$G¸\,ØtÎÿVB¼eB™Ž¥D¡µ-žÃXשnµ+…X{« „ ‚[ìiÀ)°^#_ÈéÌ»ZåeÂDˆ¸ÍJTmLséÆÙ!æAqVš#‰.6þ|Æk‹1&:€ó…ðL¬ªN”ò`Ô§¾ÍN”ªU}—§£6¼LÊ]>>›%’œ`ýè²Ð¥œzØŠeicÎò½Å”!¡²d›gf1‚\Ö„Õ†s–]ýÐà¼Ó=Ô;ÀÀO;ÃÄ*_+Žš]î0è7Þ`l&=”Oô1:–|æuë¡K¢D»&Òý~9ì>è÷¶ ~Ìc­ËдѡqUˆ;›qëUšl`?-ìežÃ„²ó 5z¶ãe —ðN– FEQÌÚlŸ³¡Á£ôá élÜØNÄHNXƒJsØ Î'÷„GÖð]_ÞÐ0QÕ’ÁѹÏÙ‡"ˆœðÕæ¬2SûýÚ9#Ï}?"!Ç·oÀ µ¾ % hÙ2É÷–‹®‰jóEÙ™… µ²þ¤¢þÖVn»1r!rb}d4û.aQ~¶O4'MÞ›4YºÂÊ&rÿOüUTÀNjÿ~+#$„@,ßü$ÍbfݲÝîs•@Í´ 1C>?.Hqt€e¥e Ú ‚Ÿ4Õpú?ôM¥”…÷‘× kêºl'ðÉùujBhé1½ÆeœÇÇŸ?Õ2ïN³1M|¦`'˜ì¦åžÒ”ŠI†°K"á*=(æ>Bvà/X¢Ìq!H:Ï`:G¡>Æ‹^!ÓàïBpQ'éñÑ*á3l" ‰ôpµ0âŒá>üæ`Kj7[èckÔǰ1á¸3ÒÀ¿»+°øÑÿÿ +ã„!¢_y…‚8ÞœŽM¹_Mõ‹ƒe¿LŸo§Ï¦ÏWÓçÅr1âK3õö5b®¥¸&aÓ¹fÄ–¯:ç#ºʃ~÷¹zÀf0í ‹¥3œ‚…éÍ×7àwZÈG½V­Ã{(­<"îb©Vn:ïA£Ù˜noõ·q]WÑ{¦±tcßc1ÅT„Y\µ:#˾B­:Tí,‡~ ›pHÈ) ,‚…Ä»/Ôì›’dž½«ôëÌ¢¬§JPõ°NQOío¿,q*]½±Ù:ó$¹^ ’ß'‚jUë™…¿E1)]¢Z¬‘ñàa^‚•ø3÷S–`¥¶Ç•`û³Ö…7šMP•|ÛЂU/iõù]YÝÇFбtU+½-^æåjáN­‡_¬2æ`^uM{­½ ±¢Ñw¸å"|‘­Bgœ¼ B½Xèlq{¡J†ëKGô¶q=AE a³,AÑbÔõ1÷ê¹xޥÅÒ=˜«ÎËC€Èg …ÏsèPædʈg!³«,gü!m֋͵">å· s0¶ë& uÿSlØàÂÆâàîÒ]²DçŽù‹a;WuÒRN1ëú‰¾ÛA¥ è'‡dGŽñÁÏ D'Üä)’{øfš°ÅSdýÞŸ¦Ïw…v.O[ɽ” çB!´(<¹õ?&-ŒIÌÕßL'yˆ{Ï_cûÚ[v‡"̉bf´ƒÂLߟ2îãšïù løœê9´Z•½y  Øå>ŒÓå.,Ÿ°w#@¸sˆf—­˜Îö€6øv? ¿œ>oªô¾ËH0y»wé@;‰†”‘ü›ì0Ž =÷mNù/Ž¢<â©ÉÆÚ¶÷£?˦Hß׃ø³—Ó™MwŒ¹ïôzew=ë7šŸŒ£Së»*ËúǦ‹p˜*ZÛ)v–ýÀÑG)B§¥_¾+ öä⦻³×¥7{€ö¥Vdx~9´À^sâ÷#÷¡>6àûÞœ=ã;9 TÓ„I’T’$7Ø›¶(S¶Üø¿Ÿ, Îþ Þ ;åCÏE8?Žs. ¶C’ný *¥!f¦ÛíÀ2 îO6å!o£ã“ÙP’…RØŽ¨Ø™×­Ôìþ)›À¬&{ÃärúÙ»».@N›bb_Ú]¼eª2»{Qìhvl/8ˆqWUÔ>¯ª4a®Ô]u4SY„0„a∤Y–^pä<9ïà R ̤/úÂ¥U¼¨ò#y)É`ïm´…$·üÈÍ.‹Qn¾‡-ö/Û,x³9R@eî«“§<ºÀü=1° øÅW]eï;¯ôØÒ´tIû¾†ˆV—wÙ7s̹:–Œ+ÁñurYédÜ»*ïÔMÐ/ŸqTXäÜñ7G².v×D5òÅ! pÔ!it§Ü&q8h¥ŠC è •9Á‡8#€ ª4öªŠ=‹#’ e»Ì*ƒVÒm,:ãzbý‰Î+j+b£d—DZD¼ÎÇ*ƒ<žç1?/*ò9,EÐgLÔÍÞŸTÔ±CP=ò ŽÑxÛí“EÑÇNƒ @ÒJì­GŽJPÅAtÞ¹Ÿ=E«‚²;6ßËQ|좛ÇÒ¤T[3ÑkÊKw º—åÕfµC±Xìp¯Ï¼â3õ.P^õ¶^¼è“÷ë«·=«ò¼x+ µÔ*!®5Ì«YTv`¥ ¬Â¡g ìÃ>ãÔ~  _Êú¢1±þÂÃÄ:õæá°‘ê˜ SðÌJz¯Þ—·FVUªyý’(àjùҊ·8ùŠ·Æ»endstream endobj 1779 0 obj <> stream xœíÉr%G‘³à#Þñ‰5µ/G0K"8¤ÑL0š‘%yìù{2kéÎÚú-’‚ðAír½ZrϬÌô·6ñ ÃÒßËÛ¶¹9ùö„‡ÑMúsy»ùÍùɯ¾Þoüä0jsþö$þ†o¸4“frc¬œ¸•›óÛ“n¿>=c“cFH½ýxz&µ˜<³ÛûÓ3>1£¬Ý^ã e˜efû¾µàÂo¿Ãomµs‚NÿH†_á‚nbÖ«|>vRBëb”¬ñ%Ä9·½8… RZåóíçO©L3:þJNÖo/ɲt‹ø-¥¶Ââ7ÎÖVmß‘# û‘ç:nÝöŠLxˆ¿ãLeh0Ïd±Æuœb,‚¯ª¤+Àu‹gæð«7§gð¥v5(péM:O¸ÿÛtb½¾±˜¬•Û;2|‘ïD ø¸œ‘®ö)­ÿ~%˜”Þæ=¤’|ûþôßç:Ö㱮ί€Š.ñšZ+ŽS`Î)à ó)]¨xS ¬½ä3AHÃôíYÀŽ’Ìz<ÎY>Ï“V†Çc=à,k•„­î"¨+`J©•bù=¡:çV0ãËŠCSf‰S´WnûC\8±Øå![˜| çc°›`‚Ò?Ei¾ —ÅîWÌÓé™b•í78*´P,“™vÈ}7ËÚ”:)—”ì'„™wû׌yr¯>/_ã5)¯Žç²Ö|»« gƒœƒÔRÎÑÙ„nã!œö[–œO.“wÉ!™LqÚ¯¾á’©BÚÂêÞøüÓ;˜Î¥€‹åó~ù|\>?.ŸoðS .%™74¥t¡n´ÍÛý,Šs xgWºÀ‚xT\åé|á¹WëRX8 >d.r”Ö‰£.†¬#%€O,G‘Ô’ ¥d2J9'Â[yT÷q%2ï9?"Š1Êe#Í€R]j î*àh݈?uZ·:§bÕ2I%í{¢u*ù‰ç³Rì%Ù%ªAód~Š$$Áf $$$¬$L&¡3$Oí…³šâg—ö€3¼ùwÓ—(Á•˜”Ez+EHgý#œ(ÖŠŽ¢´0ŠÙþÑ4Ï'x½œü«åókü4Ls±=ïNøCqËߟü7Ž¿y8QÓ›ïÁ8ûý‰`À8^mŒä 7·07ô<|8y=4àªcgV˜D\”œ‹ÜÍr²ûåóbù¼[>ß-Ÿ ×3p0·‹A À³¬ieAÐ;Dv‘ÀÝd”Û ñs áø3$ó@Öf8È5O8¬0¹¸Â“þ·.ÀÉ ;`o&Å$ï¿Ò¥Ïj¹[1‘¤³qÂÕÂg”§fØÇ<*zF†)“Lˆ0;ï­gã3̸èšuQ¶Á‚lffÔ<­]'ÁP ”Zh$݆݊1MF¨Âäê8<¥ v2Z¼(½+ç`Ö~¯QÞåk&!ø>Òè@FÊóÉ‚äáð×= JŒóÈ1²,v–p“÷òÇb €ÏËç‡u^± 6Û`Øjfªw©‰v3 -kâÂQ4.ðSM^ðŽ3“LË…´îˆœüÐlÙ’\ç¸MÐÕe G™/¸‘r%Å·…m©Ø¾$ÞÕcd ØÈž#§ ŒÊ=îà+F­¼W°©‘ÙˆÑG&P…€#î­Í7Xœßx³éâ`ät“‚Yu˜ J§ü€K08”Šcz’¾ oeâœÐÉ(lé6`vz&ìyãà7Ò2ÃÕv†Ñ¥”e” X›\!yâr yßSà\= ½4³èƒÍñà ¨K¢Oqk'ïæ‘#D,ÖtXND_”a÷ó9¢8‹£wËè»eôoݹd…ÇBžƒ}ÎÁäËq ðóÀV„b°\»BQˆÉ8Ï+¡XGø¾¨†0Pô~ T¡@©¡;Ñ ŸHŸ ›™½äâi¢_peîAAʃ…ÇÚ~^/œjy%¡p!1¨®¢¥F…~Näîj4"GWLðplܾ·ÿYødxlÒ“Bs5I# y6€´2¢ñU< îÞ̾â—4(»ÎÂëóµÔÅ{½PøW …½Œž/£_-£=¾6N£3žHN4î•彩.‹D÷ ˜„Ž‹î™²íû5ö¨¨\‰˜Ï¿¥ßô­eôªD¿ÑÚ0ðoö9}´:V•_£A´MÚ¬`<Šb(ÏÏ0»4z2©"µN¨IˆíÃlÍ” ô„·ô«¯Æ8E85za VÜèÂ÷¸ ¨r[¾uUF}þrõˆyzßþ3 Þ„,Þ¾¨uäÖý"·{~û¦ð† ¥ šÑ¾Œ‰®¼ ¹íñµ øB*]…/ʇØð[c/Àˆ‚WAüïÈøûð¾â­*À;LzÀŤÐÅbq3­}fÀ “ñzôpSú0ýüÞÓÛ~B’ÐL‡yg3 aÁ«ÈTUÂãåBbYŽÄ˜Ýþb]ì4A¾JH -ÀÁh½2|²ø¾Fe·ø„ ÜܼäHÔ°z& —ï˜f˜2Oã!žÍ¬]SýuÂ?×TÐè> ÆPC:nÉTZÐëÞ4"´ñ)²(^ŽùòrÕÓ`k­‚xõøgÆ7ÃtÔ`5GLļ ›y¸+ÊÂc0{„¨5+˜Úf£wÅ£Ué ‚i9Ƭ‹ŠÅ%Àd1™•K„*NøfÄ×Ëèm×Q­Ÿ k<èá€'|4pÞeX.öþ—H±N©HFiøÓ‚³;2œ\‰ÙEï .w¹ Ôàò ~1»¸ï—{|¤FóÈÄÉXñŒ89‡ºcâŸOÒ…Ç`íÀ˜GŽz Ö!ˆª¤~Ò‹ÌaH?3Œƒ¥ÊÑ5Ÿ‡/—ÏO]È‘XˆÞ™ç|ÿU¨L K `ŒC¢¯`¼ëY1ž„Šû|5<Ã-˜P ÒŠ);£Ío—Ñ»®}E¬®Wóht ÀÍå¼–ûÇ Óø—@'îu‚ 3 ΰĔù¿îbór„B–sŒ¯¢PÈÉs)KöÃý—Ëè»ÿ]2XZX‚Â4ðJÒ`¼Eþu9Æw=ñ•‘žØ:â¹¾â=‚Œ¾ói/æEwÕýÈ›ås ý ¥¨-˜ ÁÕzÛ½*¹Ôçîè‡ÑUç÷«?Ÿœÿò'D›h†´™žB›˜ Ô@›Ÿ»#Hø©Ðæ ÎÔ,'ˆKOAœ˜C÷š^d‡Æ/s·¢š_…éªù‡]rŸ îytÄ3â…+ ^m~¸ ùw!G`9*|\©p‰ÉðC9JúU€¿kµ’JûbVøSàn7 †8°“抬÷èègU€<À œªSÒ¼ ‘ô@¢ö…Å1f5–»E³úÿ{0Å~î"çC¥ÿû»‡ô>VO®dV5\ðå„çÔ¯°2§t±ëîéÉg´ËÉ»r›…/x^ð;KùP¿ ØòR3?HTŠï\’yï ͇¢ôAƒ¦RÑ9äý#=‹(/ûi½s™I‘ÞX¹Ý;êã`-˜øo^^àÛâ†;m'ë-Œh¾a9æÑËkÌQÅ%°êòG|ÿ(9¾Â†ðÉ ÍšzZ"¥PrRN¿D’ÌC\ݺøŒ…˜ÚÖeeóäõâô°'M8X+¤©*Á O‚/Õ+Ý(Œ,Þ¦ÉÃöwä½;^B;£Š—ë´;°&©`Û+K«Há‚c×Ê›9­d!yó£l«N6m°‘+‘µ ©D© €+êhJˆãû:÷rˆû«Ø¢Cø¶r&l¢ËÄðÕ²ÎB~k&ýCc–DµÜ¯³¦a:;W4É»áÌζ—²pWÛ£®¥ƒÜ»Lì×àˆ*Y%@´Ìt ¿‹Í2+ò›² ”œî;÷‹À”AÂ)´^,‘Š.%R‘Lì •¥(3JC*g\Ã)yÍ9+>~T9ïÆ$Sÿ¬O2Ñ„Kó  âMHSnËeW“å°`Ö…”Ê*g\€6âbµE NñBÐÒ,¥¼´¶/šÞ PŒêËFIsùÒwKÚSD.çe#zBL"z€Û€Îg­ûœaˆCèÈʧ“;•Xm™s“n«ÖŠmfÅ•jÂÂAªš°ýšÆìUmñ©©WAÚ¨±A"ÅrYÆ…k{ûlô–s­<²ØtÊ¢ºÐþ‘s&é!¾ê±ªËjþ¢Æ¥?Ò%_tU(ri’][;ç7"D¸q5Ú~ØÉêÈš™@ÍeÀ€ïG%,²?,bÝŠgUÝ fczp¨=F¹‡?G{ XC*Qi•çifF ˜Ö¬‡ÐzÅÀŽ©«Vß𿉛Zn èO^¤¨†¹CU‘\7zRǘÛ­¥­çâæ´\ÍÍ¡°‹¢ ¤þW{kƒ:°AæFn~SD3vhƒªØêLX|Œ4©³OôÐ-IK]¹Y´—j=×Ì}³CN)4±« û½0 …tÛQÑn¿Z½öL±ñ‰w⸎S¸k˜Á|¯ÖIÇÛSØèPŠá9KU‰G®j•ó]+i´fjýŒë Á!{Íõö‰¸Úù¾Žàc\?¥*`§ýâaãçþAc%RÈt‰½KšØîàr£Âs:Žñ„Aî¶¿Ãa¡Z±ÐHwÔÎ ÚdµëÔD…Î~U­A¨†QbtÔ~bÿE#?€„bbÚçS­&-ËšRz JI5cÁe°êj¿æxp cñ“›FJ‡a½Î§°c,†:²-îa¬#Fg¾ŸÇë2Ø ³íU™xHêV3z:ôPW`QR®âL È òQ*‡°|äF¤,’xþÒþ'ÈXÉ%Y(*jE,r· f8û¹t+õͰ£>‚ʹy:½&Mê,äTöîSœOÜ‹õÆ™G6ïõ[f¥ôÅÙʪao,ä¡ô¹°gqŸ—pjD¬”]©n"Ìšîl_c¤0¥”&êãs˜¡^¶@é´Bá¼T•=A‡_%ŽÄô®™š^‚õ ’øÊ©k•2j.[Ü(#DS¸ –©p¥>8{xÊWiA«ªf`Í"0ÚzâªÕæïÒï|Aû´™ÈÀ+HÑ;&¼ŠÅ¬<”Cîl3T´FHVV—»x1Læ*yGEåÒŽIÆ€«ñÖVEYu`Õ°%®3t9ùÑè\ºM’ð+ëGeÜI€b ¼¶'rxÉhBqãq¼A oÝÔûSHîªD·Ê;õ¿C”]¼X„Û ¹òùötnUÉu'*tÊUÝ@'¸›jµN:sPò^íPžîÇ»óù{7rÀ¹¹iÌ×!íMGñìü ^xOû•Óê gÛy&kú­¯oH%&Œ‡*|ÂÞÚ=­M®!›6Ùfx‡Lƒ‡y™îBn@­äP8Ÿ†RGÖÅç8Þt}¢óéqiÚK¥²mîÃn°?f–9»É¾ì×IñëV0tñú:yųK‡/{¶èØ…zm|vÔÃxui…öÞ´¯Rí¸PMè ;¨«n/û½:"80y1;c¶lL6D¢Öâ5žû]bñh@Œ¡Œ]ÅA/­©Ú> ×`ŠËИ*æÃ/­Rƒ3_GéR=• R-¬¶ ‘`[ƒ\Mj˜9™øqFEä™Rºï~óÿô`š°2弪 ®À®^AÌE@µÇG>íü9§ßüýä¿ø0ªendstream endobj 1789 0 obj <> stream xœíÉr·1g–+ßðŽ.rŒ}É-‹ã8•ıěƒÄUq1IËV¾>ÝÓÀó’*U*åG0–Þ7ôO+6ðÃÿÒßÓ붺<øé€‡ÑUúsz½úÃÉÁW¯„÷+?x#ŒZ\Äßð—fÐL®Œ•·rur}ðÃúúP¸Y§×?³A[íœXßïwø-¥¶Â®Oñ[f™Y¿9„O)­òëÇ0¬™g²˜~;M%ãƒb®X„ÌxÀak•´ÞÁ Ìú"¬§˜®uD©$/VlœÅqX²< €hÐÞ³o㦆q€ ì"˜(¡›ÒñÆü€ÿƒÇ]•+@÷7uÞvPñž,×»Û9Ö{2~N¶@€YŠ‹¸½2¼XüŠà<áÎM¯FIäìð_'=~/4ÐÚÉPü!NfÞñbü,Ž;)åxéðÄ^x<·P²e)€D.§Ù÷‡Ç|`FjE×hÀ-üðvšr3íŽw9/sÌÅ <ñNÛ‘î¸.ôÕ+ ,G¹¾µä#”Îa®½p6\/}Þã§aš‹p4úaú$£ïógܯâ~Å'ŸÝpx¬„¬ë×§ˆ÷ÕNhèÀê¡çUg¤kkÉ [«AK¡(ÝS²þ¹¢¶°‹ž/§A|˜‘ØÃl‚î[ä@¦ÚDlã6‘gñ¨œëš1ÃáS Öûñž,)Àˆ†(”x¤T/ãÒÎy¼Œ@ÞÒW–?vPÜË ñgfTpYÊ5A€p@ÊÛ´ª“ÅE ´Žp†Y×”]s®Šü­Æ2þ:Ž2Z2ëóH$1yGëÄ;[* øP|GN Ò³Á(ÝÓQ7q†>ƒÇ"t$™ "?­lœ(åæcüd5u„ý/T‚°˜ÉÔS ™TÂ>¸GÒ÷qw?£ØñL7-*¥ƒ cZ _)8Bmù —Ó†máAT/¢ÇýiY”=DbQRT ÏÁœm‰©°òyÂ(/i…rÒˆô‚9Î;h$lEù'­­áQ£¤ãG®PvQ£Ð}[ëOa¢I;h±ó9‡˜ ¤,¸¨´­(ñŽàª¤0hZÕ4-Aô2ÛŠJíC¦pT9Ó™:Ê⑨€÷m‘“RíB¡0L¿D2à`ƒ %V';8ùò‡õ , p`þU6ÞÊ+×´!‡a~ä„»¦]@lˆÇiô±9÷íB Vz^J~ŠL]›^¨‹A_¬?¢ñ(© ˜Pn$Ð쉋³´è_ ¤¸‹v¨ñ‘¤óÑX bL–òº”çô;8à”€FíXtvÏ®èÜ€^˜Þ&ƒÄ÷ì!*úÐ)ž4ÎmÃÙ=¢>B='og¶¿x ãؾ`r*Îf® NÅt*AK=ø»$ÊÁ@j2‚³¨L¬-Œ­-i°*Pª³€¥P²u¡Ü¶Á|gƒ]YIU¶þ…%Œ/é•#E4ùÔ¢»çäxÍ×Ãýqúünú,bŒë§Ç‚úði?Òx:Mé¿VÎ8°§Tƒ±jÁWÞêZ + Ìå°!ç[† õiìà„­ñ5ÒP4PŒ4Ô@q€K)3´oМa íÀÛ° sÖŽ,¤¤Ö¢iæp?˜)Fñ¶pW’øìEš(OüîðØœ¹k ©6,gæQ†¥~pmÅ’}H@æÝ[Ò—b&F¡ÏâºSà-ÒmÎ"û:QO ?Mø]í1À=o*å‘ÕŠ8gz@:)3é’´.É]s,Ô,㽬‰ƒ{åÄ^ŒB!"ŸËAøB>Æú„_H”›^Ô1ÞÖÂ\>ÝÄž±@J€ºN4¤ââ°Fk¢Ç›KãüÄ1¯[· G¦¹Žq—’¼é9è&ãl^ûå8ÚÎx¤ ã‚;¸)”3‰ð÷Äöÿ¸¥±(—`ŸDye ‚˜-#€§„W:HiÂ4B~ÁZy3Q]:‚ÅasrE“§²CÜ·¢)ÿ„VŒP0ÇX= +0¿þ;þÌ  ~±þ'~ Å8 òÛpÍÀv?Šk/ëÔLˆ<‚+·½a¥x<’gÅõsR!x£g&Im5…‹?ÄsÞË#Pdÿ;~‡`Ô$•ª#Ï÷h€+:YŒ"$w…È î¥ÞÜW¯$/ôá1æ;¹ïQÀo¼Œdõ*$nBÈ“ö)·\ËdÛg¸ÆP&nbœ ™ ”jBRÙAX¿s1¸Æ‚ƒÀl±Ù&IyÍx?EŽŒ¾)Wncô&FY¢79,¢7°¶Ëf¥3@Ý«kÑ0’öÔpLšjK`D/j.«h0‰ûÆ#“ÈñUø4¸àU8uÒÓ$r|w¸õ1˜ÍS9rÜñ(¥vlú*)"a@Æâ'Hâ‚I1´©@§Ø~²ú<þÒûŒÎ6nŠiÝ*ÊŠGqr›£Ì£*•  ¹ÂßyŸu\|24qkáMÏ (¯á‚ÉnP—J±†D ËT-×9b°Š[i›^­O#8žCéNbs›<Å']}C}Œ :BÙž@Æ$…õã&|‚“Ð õl—PŸÍ[¢¸nÒÚ¢OCu±„ƒ©¥Þ¤jgK!zŠFzØ£”@b‰´i,±‘ÉrT½E&k–¾ª3YQ`mÎdéÝž™,ÓÍ¥¼(&1‚&¶UªKAà—à ÀQZÁGÞô~à)w zÁÕñ¥F2 <Ô"ê„Ö˜D÷ƒÄœ’Ä`î]±lˈ£–à»6…õòYqðØ­ÂKh[`ÆöŒ¼XîÖcêJ|„³€-÷Ų´!Ëg7”ʆ`E1]øûT‘=FèZ_f;Iô¢ #î^î&{zumL0’m‰Î1ÄIq!ãÍÜz^B2–Òáe±Œ°—)$1SRUWLù¢£TÞП‡Í–þú0-Ò67QNJ nŒ€‹Y—8Åf8Ä>ì Û<Ü”YÁe™b<Ïh: æê @¡Yè ‚)ìc:3°¸Fw² ƒ1x5MØÏ.\ÿyú|7}þ:}’ÅÎ*ñ]£×xÀ*ç Ao8ŸMóÉÎÿÅ”S*R_¾P}G†“+$œh8‘À&A€µµ< >„“’šù7TOƒRŒÏH* Qí¬¤CjDZÏÆ Òç‘}’½L܉jŒm¦•¦?5­†‹_ÿ¸žFO§ÏÛ&> ÔÆBióó忥õ|&¨‘D™}j` ôfJÔ|³+jòAáΆXþX¢ß/‹9<aíª˜r9¡õ~’Äþº˜Fï¦ÑÇiô~=Ê£Ñ#¯˜s5+¹ÞŸÆ¿>-ó(Œ >ÓÈSðiAä€þ øü}Ÿ§³ p¯É‘(°¢Nø‰ošHk^È ŸÒÿ?ÅîL±/izSŠýŸ‘ÞûêÉ]lâ§ÉïQ6¼$7´uØ"3Œ?yy^è+Ø‘¨‚ÝZvïb1/ÉîçÔ¯°2§q1jSÖ§'FC4ç³ÛÓ(º‡GDµŒ`ÉÀÿSÀ–—šùN9TLÆIæ½7´êЦFhú„lÑ9$Û’’0ÊËnÁt,¶¯I‘2:{¾‹•À¨*¿‹}ÆÌœ7àÇ(à!å05ç±Dç‘}Rs–ÀÂóù§[JIQáÑ{*—Ù»]CXåÄ›u¸´¨ðm$øì¢û0¥W°MÏ®Žï´V ÷ëN‰Z³¨˜VëÒïêÕ^¿¯ÃiJý"Ž:Þ|¥Ø®A×ä_(Ö퉞p5Íg o`äôä¶½æôÔ¿íGOE¨#@#˜Ð w~»žåpURd„ k¾XÎBKôq ©ui¦ÀiO¡,w„‹q”eû¼’ WžHÈI*×K-hÈ,¶kÀ0õìÑç¸\”û £„¨éým~{”ˆ ´T»Ü’Ëa›ZËhÝVä4›»©Ö²¦,ɰB¥Õ$ƒÖ5몱qž]® ½õÜ3scÛ9ÅfŲ-Õ–É‘VôÑzA¢V?ŽÅs鲸ÜLö„‡lÙÃAøpG:,µ`Á,]ðŽ{Õ¸¬`â6µOj]h\î²t…-(¼éÌ!¿M/žVëV‰Åêe° Ô˜*ºåõ”Óv=–°‡>øsÓ(yD³–íaÄ&­ÒDŸ7﹡ˆ-š˜Ô…éØÞN¨­ª\sß»åŽ0…±V}ðb5“ïÜõ®G÷ãr5ÝãÙ¸ÝîÇî~r É8ã†}«Ðáò™îÉ«³žÞºéf±­YÄJëAKà£ÝÝ•Bùp:¬©Ûúužü•†d¬Ý>D> stream xœí\IoÇΙòÞ-†9î}É1Aâ$HâX"ƒƒ$R”R”EI¶òëSUÝ3SÝÓ=o£ 1|ð¸Ý¯—Z¿ZšßoÄ 7ÿÉÿ~qw&67gߟIÝ佸Ûüþòì‹'*ÆM¢SÎl._ž¥ßÈÔn°Boœ×ƒôzsywöÍöõù…¬·!¨í5~'¼pÛÎÅ „qJmoqXkë•ß~<¿0Z*„í 6ûíù…„3Þ‹<ƒE`º7qûކ­ˆBS®ò‚ÞlŸŸ+?£CÚE ÚÙíͼDÞÄÆÈ~“. –ÛWùwQñWlÆò‡ts~ºÎ¡¿KTÒ‡íý<å5[üsØÞ¼ÌäÓ:z<Ô´ÏwŒ”/ðºÖš|l=h! ¢>+vÁ‹áJ* 6Ø€tÄQ óËp~±5øÒ-„š_´¶ñãƒÖnž·Äõþ}ù×3å`È×åHS"ŒÜ>௼7è5.æãtüPŠÁK:³Ñ¦°EËmpfœma>î{‘7¾j°ÆÉ´?gØ«ŽdsÀúð5høÝùÑù7\~dً΂i½Ï¢à"5½µ6C£`Ò ÓÝ$аžAšêU)9iXÂ9øðkÒiLWÙ˜½I|ðŽ sGrVtw:ÿ·çlÒ0ë òJ‚Ý12l.ÿvvùÙ7ÛÑ)à ±8~Å;màâ.~ *k[·Bãó§‡à+¾MWyώ̨Qé†6jÚl|hoPÌtNbú=Šþ˜×ÐzÁp ‡p²!¦.¨#Åts‰¾²Ct>W ÞLT.|·4.b(…–Ïß6Ô·¸©ÉöðK²9N ^Ž6g·Øß̥⮫Ìö&8Ó¡µòÅ3ó’VN£ A?d&ŒYÏd·ÒáÉnY›íçÓ}Ûñ­ÀÑhi§lk YœûÙ1¹«,,bjfjAaÃ>Ö¯ôÅ ¨‚Ž )ýä>ÀQ¤ ´ònþ¼?ïçÏwó'’Y:*èóÆÑ´_p@L£Œ“@JŠm m½JZ™kÞÅŒHS¤r°¥«Tå™'|°…-ç&¨Y;Ñ(Ÿ^;d¹ÂžlU1ùÓ e„³Ü8"†¯¸Èb 6–:yŸ6u€Œá›òñÆ|"ÀKGˆ»š>¤MCôVpÑ»÷›·l¼Ò1-€À¢ ÅË´= ¾5óD¼XõRÉÔvãwEXø=ûf>á6[ýû•t™æXšÖ\·Փu½nZó·d¬…• ÉæÑ•5¯-ÛšKÀ?“ó@» v!ðÓŽŽsƦûÚ1¢òv¨ÈÙ ÇP®½ƒPa¦5ƒÕÊT(dšû¾’6ÚÅ.—Ðtç±c÷=y!-Í^ب2ØxT)m­˜t”Fø„Öûö-[ä~ 2–¦Rª7i馸Q.“§F5Eü™¥ZCDS:Q!£Öç8íkÚ®¥V%ý¶ƒ¶ÄôÿkW£QÄbö4Æ/ƒÉ'!1J–‡B¸‡äR±+1rËsÐì' &ŸÃN´wéwZÔÒAû)Y8¨vX³Ã=5¨0‰ í#A{4Ÿ‘D\Hìx¦×-)僙cÖªX98&m+èŸ6¬Ñ¿DSc>‰#ù³h&Sö„ÅhU94<‡‹¸€QÈQYÊ ×¤‘é…r\wØÈÔŠëO^{ΰäãïªð}³ZÛŸ¢iˆtÕ1À[ƒmкТ[Õ€¸ÈãhiSË4æf„?07³"¦˜¡Zx€I:Ê⑸€Û6É–iÑQk'* ó/Çä Èǘ¼Y Žl4¡‰!‡qÔ„7M\À0 ëˆ0}>2"ð¨m špmìd“8Á¯ò"ADJ»Ø`ÊNUÎU™]ço  (ÚAeº¬+:7à®rþ‰$±‡‡¸éËÙ'WUöO'Ž©t-Ôýû«A’!`ûBɹ9[„28]Ó¹ý 3`eÚ,™rÚÌ x2•Yµ•ó5’TŽÐT´ŽàTDRJ'%‹b¥á”F׸ÖÐe«„½”CNâ0¡¸qíÍjótÖ·?ÌŸ_ÍŸ—Í ž7¸É/ϾÆ\ÜÜ<œ™ðØgbóå™2Ê`\ºÓoî`p·ŽÓÈíÙÓn«RrKa¢Ð\bP´PëóÙÞ·¢—¦ Qhç¬l‡§óÑø<$^Ây›¼\n[øø:K’î§’’¤éòÓ=O]EêtjY×#hXêÕHfD- µdQ.×PV bP%-xöÙW¿aËq›^,@aáܶŠþB“,ª´,ø~pmðXW¿@°ivìg•½Ç¥…õ-ß6¸`-¼·ïÀÙ Õ¯;~k™ŠI‘ôUþi¨#½4ì»åÖI+!«À¦™»ÎD5±*ÃÑô£øñw^vYÐt,Ø5xxÁ–üjO:ŠsEh‘¶}ȧS95ºhü\¶˜—àË59s «Ù!¾ä¬ ¹Zš6/]Q§J=ƒ¹¢¤°b…4„ 2N…¯ª €èøzùèpµfZ4R1º}”FisqOm40DzJÙ)›t$ýcÚh¼2ãÑìzE¾¹ÒÝ´©ŽL€h~‘-Æû¨®ŒŸÑ¦àGúvÁ.ë°\(s?)ÁgX|Ûbû%3Q„œ”Ûªìk_HIRœàb#t›E?²”ü*£g ºÅ8äþXOõ¡!¦¤%ùæàŽt×ì\åd=hÉsÈÆ"Êu£óÅòH5‚'!è¥)z‚BE/p ÆsçÆª Á/ZWÒú*\9ÊÛ:kH×Ì€ìUq¤Æ3ù+ñå"¨<¶âzOª8Rˆr@§J‹×£ÇœòqcIaÒŽˆ&Ùµ\mX/Þ•‡÷ª(Ïþ §òjšwõ胧ËR»4€XY·áÚp` 8åNûS®’Šf]ÇÀL-&G¶n`5T¹º€K©Šð,%ÿUlמ3}í•ǨÀ ^º}šÍªU(W¨IðPÕ=ðV&v}í;2:8¢sÄAk¾˜ZôVd¿‚Õ ÝP¯ 5ÑÏšñÅ\Æú¹<¹‘]I:WT¦ÌYŠ„:-…L’’'§:ûh¥? œrØ{Ö¬¢ð„ºª±4ÞËÃ6?ÁçÊ:ÁùIÔátß9Vjî0a½nÒ}b‡PÐ -âÔDapq{¡ÐF¼ÎÞkÐuüHí’ÌOô;U2®L5àÃ;V Ž®ÂS÷³[5íj¸IîuÃSV¥¶ QTÙãºÔ¨ZÖÓØ_%§çDðÆ‚DK¥ùZâ ­Ûè Äé\þ1¬„xË„:»Ò½ˆ2‡±®SÃÞP Oím]MÂ%‚k6åLá2L©šo:ѼÀÕC”7é$BÄÀP¢ºèŸ´jG†Ù!v[ž’ÝÒÕÅŸ-dmc¢$_ÏÔª ¢”§nÂÑ Šx ÁÌ&ç-¢q…šÞ–߉ՓÍɽØM€È’ IOˆ~¬Û¨ÖôÔÃU,Ks‘ÏS†2„*’ð{«n1U£}kÛªëpÍq.²«ïò”w:Á¼Ã˜ã©cg¸€Ø k•Ñ®fW“WãÅ;‚Í´§“’à©‚£cɧóJ¡á[*ïË×ÎA¿·CðSk¿ -­6×4xÃ]|ñ²Ðæä’¬ç³•m?;‡dsÚ×ö`šŒ-h†Z)‚bi#ŠB¤ÑP݃Œ¿+­8FÃ%Kþ¾ÌÝ«^Ÿ¤>@Gê€=4à’ˆçaÑ 5 Q6¦Ú•á»ä¯1øÃá{ZEOGD ··ªice ^Ÿ*6Ï;ð¬Ù4Ãý»ó gÀZõßíIL;…Ãd¾Ó±$²Ç¾ŸãÙ’ |`k¬<ÀÑö½…2F7(×l/ÂÙE¯M6pGŸvPv™«„²ÛM†3úA˜ãu ·ð®V$ò4E“E>E©HgãáœIƒÉùÔ`Òœ–ƒ£I#Â#h¾ðC.ch˜¨ZI_~Ð¥ÍÍ!Nøf®rQóX˜÷¼w)ÈKŒG$ä'xHïV¤­Ÿ¾h#‡ØmÞãKô^Øåšú¢É¢2Ú´‘Q{Ö™ð²¢×Ô©¦-”Õ"ËKéTÍûð„r‚2øðUš,ë^ð´‚Üþˆ“Úþ¿•B–Wþ<ÍbáÝhe{8¶*™é7ئ¼}ÿéc–èÛJËÛô L™K@U™‡Íÿ¡o*™ŒÄhö5Á–¹®ÛFÆó”9ÕýÌ*¶žyL£qçqðO´,¼æöwc:ø¼„Ť6m÷„® T”ŽZ¾A9…ÍZ+=æ »àP«¨ËX;„%ÈÏ‘>…ôz…Bƒ¿ ÁÅÜšæ£UÂk°mˆ€&Z°ÃÝžt:3…õ*ììWIme+ý*S®ŸúU`mL,n4È es#F¦#ZS$v‰ÛˆK[cjM¹i–'žÍGf¥ŒWôéða⓹RÑîÇge¶ÂŸæÏïæÏçO¶ØÕz$b%qîèëD&Üfq»Â¦/š‡±CÖ0 <ºL3¾LÃA¹U` ±/Ó?b‚ƒVÔu7E¯öêÐ%¤=¸5sûÂÆ"à/3}¸2ØÊ^êºlQ›Ií-ø[×ÝÎ8ö¦Â-Þ›5BÐEæ±÷ªÑu2zSz`jº=½ ŸLLâ«ïó`™¼ IJ+§ò¦é1q ¤w~ÜËÇõ" ¬±zˆ¦Àð•5Vòñ®p›€»o´+¤€³ñyh'åÞCmD ;þñ'uà }t)6Yµg³­{>¶K±=°Öâ¶‹íe Ó çºs’M…!ÃOðU‹V‚²q“úRè@PÕËï™V|¾W­&/Ë:õ3ÀÿnÇgu·° C¨Z¦`x=!3¸GÃïÇtz묬9T‘{ÏžR×­ÊtyL· *(À+ûâu¼ª¯Z¨;We{¶ËÂhYWç±P±už6ými?ðˆ"Ô=£Íxí~Ò€vî‚·«©4µ>gÃÕÛ”ç¶ÅÕOà{ ‚½ÕXÏüÛþ ×“þ4VÆ8«]NºÎÏ)D‰R¦÷IïÆçåc¬õn­…m為4×ô ŠbæXV6ª–Õ%®Wf€y@få°É$“9àªéÌÀpøÎ᦭G¾È9ðˆø;hÐâŠÎ!ö™}úÏcwpØO‹¿@‘BÞä‚^ÍÚÈû/×fvÞ{‰:†âÐÌÑÑÇ$—Á˜$Iyø~fÜ6œ(Ý~ß1†î ¬è&X´Ã\jUsºÇk~¥ ðƒóêæMÏF@·Jâ£a> GŽy ,Õê¦äîÈkÁÓÇàÿ…Ã$w Ûo·óð‹ùó¾Iä‡j AÏÚïa†¶{½5"@9§Ð–ÔlKzy½ñ Xîpƒ}ðuõH(?+æHÌ·Pu>åfæÕÛY™Y—ßËyôÍ<ún};~>Î/¤Y<·?œŸ€é??ñ±4°€ñ3œÂOú‹QzýQÍ…F«à#§è³&E_Ï£Ï÷¡¾Ç‘¢`>Ô—ØÆQhS9…úëaÿ'M `– ¾Þ(¬sÅJovrî~ݳ­êÍ©œ»jþŒdnãåopõ)ÖN½k^•]êCsô¶wÕ©:Ž~6Â)£D³Ì„s9A8%„ÆQüÂù¡É1Æ…ÇΟŸQ¨oñ)ã\9…sà•S‰sOùMvøëÒí¤v9^ƹ“œôdl‘1JàsÜt`MàBÀz +§‘c£tZ(*üãjöðZÓ‡™{FëõíyÉLÇ€ÓºØ ®ËÛxñüŸM`(üåüy3ÿìÏæ®àxgýÆ?Äj °#Z‹ ÚGc„`ñØCs´0SùÀž˜äEa9×­Ê DƒŽZÊ þ©O‰’¡èÎ(ŠA쫦ì0‰ªµKmÑ.òD-ü®I³›j´f'n“ÿÜQÁúíJHëÆÿ„õ,¥š¦ÀZ*âaðV‡©úZ*½L®ôÔFºgá(Ì,!¶·ZU½qŸ’œ¡Z¥çô›# —AM­d~”ç£d^›`°b'“N@ _ãÕ=õGÃÜi—Oh]4šÛ)C/l±@šÀXÒ¿HìÁ»ç_`ý?‘XXkBK!'ãiî°ˆvhÁ/îð$]hŽshœqí>ë®iÂcúWX„Si¾Øuóô,Í™€x¿n®Ä'äÝŠÁëš³ú!ûŒÓçú|}ö?¬z®µendstream endobj 1804 0 obj <> stream xœÍ\Is·ΙåÊoxÇG—8Á¾ä˜ÄqâJâØfUVÔF¹Bж(KV~}º ¦± ç=’ŠËåÒÂÃÒèåëøiÇ&¾cø_úóùõ Û]žütÂCë.ýñüz÷‡ó“ß}+¹ßùÉaÔîüÕIü ßqn&íÌÎX9q+wç×'ßïÿtzÆ&ã¥f~ÿò”MR ¦ùþ›•׌Ëýsü–Ì{oöo÷qŽïÀOëµ`vÿcÅ®íþ~s˵ôEŸ]i)µÚ¿‰Ý•—âßç_ÁŠ…/W ßÜŠÝ™ô¬FìÎ_ÀRÏaÁ¤ôvÿÐV;'`Õ¸Tí•‹cI&뱄@0Èw0×^8»ÿãòù5~œ*ÌÒvøKþÄI¾8?ùg2~wy{¢`»p"_ÂdÂÁ~wF*9 ½»† -&·\|7>·jåó¹y=¹8ÄÄ…ˆçv¹¬ííòy±|þ¸|¾^>¿ …Ó·á´Û¾ÝqßÛoÎ˸Isãf“ð‰í}HTZ¥Ó¶S¥#$(ziJ“0ÖÅ)lI £ñœqí2š†‡`±°Q¥kC"røL,&ÝÌbÌ»>‹¡=—Àwë´øyӳÔŸÝ¡ÓjÖÔ ÒI™gd‘/?pÞc™l´‘ ` ޲CÈù=–í7Ë(ÔÑ.´ý2w²$$,]ò(KÊ$Y¢ûNó øÉ¼Leí£LÔ,2ªþ "ãÙûñަxÃwNO&ÙÎwÀ”r¥ÝvÙêN0ù®Öˆc¾S€ñ[útO6Pª-Ü"꤆õNh½ÿŒ´¿ô ”2ƒaJ‡fo$@ÿþ/GÆ«ÕFYqâˆà%¹¥u"sʦ9Œ!à‡h¦<=%ó D‚J€…Q9¡œœö敾ŽÑ ¿$Ý©$߯E¥Î*IÆÑ5Œñø/RªÊµZŸjg”*Tô`:”í%¥¥4À´¦àŒ<^`o ÀXÔ Ëy´«  ~i½9Є¹|0“†«A î tîÆÁr7¡æFþÀÂQˆŠWˆ ¶œc@ñrwOoÞr&6û+¶³v F: €|¶Õ "Ç5Ó7ÍhµX߯AÀF®‚4èÂ…\iìãb4í£‰á:K©Å%ûRDæ½ ?&µeÔ¤:–Éd?.jÔf%¤H>ÆuñSŠ:¤QòBn}wŠÜ…ÃogfºÚD@p ¡U¸e°¹œ¡ÎihùTBNœ»ýØ,Rë}Ô.ÂT&ŠÚeµ«Í$°Ó]ao@(JŒ–U¢4ºÒâµþl`(2Š,§%,Z«IK¡èïè2('Õ‚›‘–£WŽ‘f@:û‘«ë¸ cñ“›FK‡f½.§0#S2í9]Þõiö$²5©Žç°FV1…@gîFd${ºŒlh@/Ö¡‚¸H”{Ÿ§Ã zoQúó8tInøPŽ"aÀrÂHx7Ú“´þ‰ðeǨxŒ¼ÒVÅ+GMoJM~¿÷r&ÊopNp£´I€à´ÎµÉr #’M®u ØqÕ\ñ yž©Kž³êòm;ÉË/+$ø‚Üî'èÉÝùßNÎ?ÿ~ÿ¯° Xè8.ñ:1¾)[ÔÏ:CeL÷:[[ÞJ'/ÒKâ(∇+>˜[Ï^:¿hÐ.¿¤1¤lÈÁ ÿ´ltO£a}¦Žôd¢ŽÍûØŽ‘“ñäþ4±Uº¨Ç㌣}7ÛPŽ >Ì=ÜË>Xñ*ÓâKp S‰FŽkT¸Ã0z‰€‰ª,˜9D5a;@‡Z¹-Ú´+r·±Š$£ªô¹^>¯0Ï÷ü¨X‘ƒcÀCßCžN®È\ôLÍ;›Ž1h÷ÛøK«Ô`Í/ã¡ÿK:ÐY3RIJò1®È@F\zu6¶`ÍÌ=X“ò œ²Ê“&ŒL%/UrHf}*l0˜²¯0EðÖ™uºÐåT<·uPÙ‹3pµØ0žU«ðÑžR?´³ÄÕ´ýJæÃ¥}“gÇI ë:öMø†¶wúü·4„8«r58ÂI·ƒ£  b´7j7¯H{%c’™«Ã.0½2«`/œÅª•Šv$p}Üb®¦¡b®âº…’ŸØ®ÄÍÜǰ ëø´$Q«ž6'‘ãÚ‹ü_Ý¡Íëœhê¡iÄÑÁÆýÆôb¨cÓ“gê(881’›ƒƒ›qÝ e© «kqn‚’\mÂFM%š«kÁ 9aÁA€ñž¾%ƒä J« ƒAQõ2íœ?4ã~fæF¬¢RÓD^]×_Á¥=‰Éjúº«•ª(ßzbL—¸ ü{mj$²˜¯"ýüFTP{[^MªQz-ÞÌrå‹ÊÊ2µ*”Œ¿“¬æ™â{ƒ¸ûal£ÍIÎÑß«¼uœÝ7;¯©í¤´Ì³4pwåwu£oãBTbÇbÚ €Xê>³()*ƒ†ë`®›&Ï0 O”—¼RåÍB—B8Fu D¬AÌhQÒò7Y:oký) šOw˜éZÞR‡äãSÄ/blÆsUó4ÆfX] ³ÍIí²),U6`Pkä(Іdi®7P¡ª"ȵ1xs\õ€æ0lKå]SM|lõ€•Gz„1H_ЄJã šT'þqÇ«\΢*DØU3ÊèÐïà€SbìU”á²>®ì€n¸Ê7D’ø¢ª/EŸŒs[${ÄÔá`˜ml°¿˜xàã@˜¾_ê¬qe°{YÖ@5èo‰+ÃfQ•@ªJ݆|Omal¤Cn*·ê¬›c¡€š2ÊJz z®¬4¶*[*ÿIl­_²èî-ÙÕ•;;ñsåÎN®¼wv„fß;íôì®Ñ8b‰On9â~N0PqˆÉšt?çË:~î¹*]}!ø™u}Ƚ÷¬hò Ùî¹­Ö÷°0&bᤄÝfy™ØJšÃBÑ[sÞ¸lW‚‡7‰7M·c†1qÙeüŒø´m%8ñj”]MÕ‘¸GTн ÜWħړR|Ýø}ÿ‹†m0Ë6ȼÒpl'ï€Ý)&Ââ %Áa‘•_Éyà~L Qrxf•®ÆîBøJµ†VÖ æåô?t‘C5CiJñJU{°„% tÜ®î¨L# [TAüY¥](„¿÷ZP¦~ ˜&²Y“‘°„^q ¹hóADHuÄñiêÒ ­ÃÔõÃ¤Ö ST«›”4xÛÐý€´»Ž‰>M¯ž vG0ŸðÉ ×A¡MŠ` (ÔtrX=æ•FMšß÷¾RMÜ/cJäL~ÂfL-l“V$‰Y¹} ŠQ+øˆÄyª9ÀÔ™™ºöWñĸ¾ÜgLÿ™÷SýA\Mi*g\¸“¶¥\ÍɳJ¡+Ìå!¯•[ê½O®º-Ax(ÉIS¤Ôà,¥4Kά;cˆùnÂ(ÌY;‹’Z¯w›%ÑÞf3bU¢2ñûÓ3 tænXAÚвG™–úq œµkø…÷hM_ª™|Ç]‚l‘o‹ oVÙ׉<1ü4MñÝM܇â\az’²¾·ø&—w6ÉÝ òæm¬´ó¾®{Å?9®ØZ$™Ju—“ðtø©&sœKÑÊûÅÝZèK*ZAí ¬G7ˆ|TRƨâJty­6ÎP~ëuo·aÉ4¯1ÏR²7]dîÍk[ûÙMƒ¼t¼Ã·„m~E°?¹Ú» öàÈ%›ëò^ªj/ÆK‰¯—™¢zO )ÙzTûp±p]Z‚ÅxÜà*<^ 1BÞ‹¤\¢¡?`ܱ:SF`~ÿwü™ÀýbÿOüŠq8Ê¿†ýk¬MÇ0^Öi˜e”æðzF¼ÕÄÜ8ÿË„HR£¦°ñÛ¸ÁG9zØÿ‰ß!ð4Dåøn{{s9"Vz½í¦@˜ "+¤—zsÍ-gù½ëå`,_}Ö 7{ò4KXrz_%ðAzw…<Í‚§¬jBÙGX,¿s6ˆMz—…ŽÑf˜ k.nu=Üó*0¶h³ë/0T톖ÜpÌK*˜!Õ‡ÀÜÕ/©Ä%7/©„{ýö’Š!÷Í~Dç¶gï«d˜ð~®¯x¬à+ÄõÕ|õŽb5yë®FÄ¡™{äËgÓ® s/X× ŒÛÛFÖÃí¨ò‰z¿•ÒÊßÑ££ñ‚QKÈ À’ª½èíWÝh…ãê9Ô=IÕÊuTí\o z1¤úyüdã !#P‚(Ç`!œ éMO°ÕJ@ìâͥò¾ž“Œà§€ÒV~–”ðZE¤óDðß Ùçæ®Â > {„gõ¸“Gwïø1‹°Ï$Sn9÷áà aÌ›¨ƒp_{ù‚ÞþÏËçËç/Ë'÷E‘ÃlOÚøIYŽ:ÑMÞùŒÂHÿ1j,§ò³‹¡™¼ÆHoL¨¸Ù7Þå ÖX£#ñ½-ççfï16àd°.áÚØÃq hD´?pÒÚb:÷-ª›¤Ï-Ç$vÁ(;åpðDôÿ÷áÅÙæÌ0ôq,ÞNÍÍÏ—Ï›îÙoÁ,”/?\þ]âahGŽI:‡Þÿ}Ž †˜,4Çôå¶cZ¤;/4›3[¼X-xùó¢€JvWtyÈ·âÀžÎ­é‚Ÿ8oaÿáçiücœ§•ë¤ç™ZîsžVL¨ÑÖÊ)Î$êë)A/º%d~SÃä;ˆo±ð ,ϯ•øÝ£B˜RË}ˆŸêø7³ @ÉU±&vÎWbsçÉÝ,­ïº}Ÿ}±yÑý!yf”\+8©-P3\çÏ ½în•lê}·õj´ÕàÄI%"¿æ”<[K™3µÜ‡9C)ªúÌù¾{bä~-Ìù'‡^ZNO.µÜçä°ÄÍøxrßÑŒÍuEÜ{ÙèÛ»ì.™òalôŒòòåŽs¦àßð`4 ^ŸŽ9-&çÓà#Q¹V~h„à©ûw½CHÔÓÓâš0××è éF9Q®y+H,ŸKÆ&“ü›“ÿ“wMendstream endobj 1812 0 obj <> stream xœí<Ér%¹q>3þ†w3©h–°/>Ú–m9lËša„zå(L6[MNkÚ_ïÌD-‰, ^½Ç愊>tˆ$¹/øãA ú ðßøÿÛû u¸½øã…¦ÑÃøßÛûÃßß\üú;«ì!9˜à7.ÊoôA;3¸”!ºÁzs¸¹¿øïËÇ+XÔg“âåÛåó?ƒòÚ\>5'ü¸|~X>o—Ÿ}^F_/ŸŸš+°¹ï›si… £­æ>5aøÃòùssÝwW×AÙÁjwùÃ%®O_>Z>ß,Ÿw -£—Ñ7͹ÆžNŠètñåÑÙ!ªM|ο9¡pH•ÌŒPAóÓNgѼuÉÁ¡_ÒC“ºÙÜ7ÝK‚’³®\’ #ÍŸ,^V—ô‚âÅ¢|ñ|³û&VØù¿4GïzX™ùÿß.n~õ’=ƒd¿4/‡!ü[‘ì,¦ÿ¬I)Öf‰i­ôt~žB|lÊê6üE!>‹ÚÀµ`9Iz?5¯â éí¿¡Š…¥:-‹qëQ‚ÏÌ08ö4<⨛áúZG?X°>®u‚¶Àût]Ùz•ik Xå@Ù0ì²WÚëÁ·U9gÜ¿CJ€ƒÏ˜½QȾ¸J ÚãYá[GíéøäJç­õ¹§»lMÕä V€0ëdi3X­*Po`£¬Íè aEŸ’¨TŸ]jÓ¸0Á䉯¾_pþËçïwäŽÜ4'üKEv¿¹¹ø=îòáöñÂŒ‡?ŸõÏx´°ÐÁ›˜‡t¸¿Av¸»øþT_ E5WbLÅc”sŠûô¤§¦û´Z—Qï?5nÏ}ª R^2Èåü3^ P¸(Áç\(ÅÚèr‘&>Zgu!,„ªl!, fS¡¦qC„W±P-ˆí¨_5¢²1ʪø£(¾Ñ{¶Ì#.î5!j\ñ#ŽÚÁ¤PM~WLÖZº.Ø0Mñ0éòšᬊ¹0\ ÙÅPÍùÄ–y½,3b ™©Œ†>Ø ’¢YB`…fWt1V?þÄðÂÍn«q->šØ¨P7/þêêÚE„jîÇ+ z§AÕòÕ–Ún–’ñ•—µ“º™Äfr¿Ö˜+:v¥ÓË~aÁôÐU.=Ðåü(,+úÿpuíBà»ú¡8Åå\­×a" çZ$ E4«¼ev÷œm~,›ƒUmÎae‹p@øî|úOŒà•ÏjÜߤÎ>QqÄH6ÖÄ0‘MÈ[<á,¢Sƒ²p½Ñ‹Ó‘ŒDÎ)ohugÂå×+“ФDm‡à‡CjÝÂSŸšzŒ‹57nÀPö¦ÍÅüÊv¬)jàVÍÁnÑ"NIº"â;ÆÑãÒ®ôNáò¾7þ0­A€‚¾#²*é ´wéñ2 2ëf ó5S¶[F@Ø ( †-ìb&:²i¢#•“nÛ0 ì º"í1‰Sè¨âÍ‘vœÌ×¼×Ò{ÄNV¨TÒyÜ %ÁŠÏùˆB•5.b`¯ç(¡úŠ—ñ[„œ•œöˆ9©‘í(Àð4“ç"ökYÙèoEtˆ3 0It SO!: ò1ë™ ¤ŽõÉèï˜ðr@™ù‚ üµÈ‚©0Ù5Ü ìþ5ÿØ™ó®`Ä©Õã0ºß3:æ(~ËŒ³‚cøÃ² ñSKËý⥥et`“m{Ø =ÙÊ…<Ú¯–9ÄT¤‰‹Z¸¡¯ÛôBÉ{P׺ÂÐüû±L)nJ|ïQάø‚ËZXœ¶o&k=ša~%k¶¬O!{ Ciç˜Ob.×÷ɼògóñO‹“ÛÓy?–Óz½­‡éVbåð¬8šÍ ºžcu[nÌäž sI83¼ïW%aÃÍWÆ\¢¶[ÃwÙ©_tÊCtQè—/tõVø5ۺá|ö1w2¶#»-Ž~N½oq{€¦Ü›ãHåjrá ŸÜi"/§†š{˜^Á?Gò|fŸ÷xѲhrèêÖ;3:¥Þ›Ü3ù7?êíJèL>yÅ©‹,Iˆ9BÐð»˜Cå©s#¤q»~‘© Å}qœ1SzἘXCQ+³CF»þ¡/#d|¼§mгn<ͨ5 +Œí.«Õ$I<–E€·75˜¢Ý0ü0ãEí~ã¹-=8êž È¹V6ÓYMÞEht*àN¯ .D ý¼8‰7¡î}Jûê§\2Þ6åh%¡K)øë9NÄÔ·[ª ‘5¹ÂÌèŽc«ï qàKgì AŠþ‡Cl}™}뎰F‚€YŸòV3À nLÔb\ØP[ŒLz  %ÄÁ€`ÿr…ºÖÇÇÁà”$ c£Æ@Š]Lºl‡BïËY0d¡Ê§k3‡ý6ŸÂŽÊÙñä(9x÷(:4üª£X>—=b°"LExá”¶ º-dÌãl÷ð=ž 0÷e¾ž= y7„‘27Ó[(ºËG1*výÝbwðׯ†^N †º³»÷  ¤<&×jIo$;!å¯pÏ4a}S/D0wRš§kØQå!P™ÓBNew—£ÇÝÖà˜m³h+®»aáÚÉäÒg»è*?Žo„1: 87¦kÑ`9uˆ•ó`Çã¿-8‹’‘pç`ô#Ñ”ZšÜIð5ÌxÙH—Cú­P9Ì Ü©d*‚¿9hGÏÔô¬WqÅļ—îµÇ^~]LmLí®¢íèÀ¦ó5av²5v}I°·bÌÂB¥AsrxLé!„Šöß±—¬#E· beycä΃äì÷T»NÔA…‚É{8Ü1×G é;]ÚrÅ«´gDÇœ;çF5úêëxªvdÕžÊd/-¨y”û¡"m0APö>[‰Ü¾”g¬Öô[ĺͮi·ûœ'G)©MÑ5/ÈïÿsÙÝé°çö(¦XÈåmgÁܾ4z²\ 4#¨¯Ç£i°#ÔÚéVÐHd;ªnŒAÅ®,ßw’ü*`7,d>9 Ö¤Éý/‚íÇ­ ?ÔÊ­Èg föMe`¢Ê¤ø½ÍGáv_?/h¡,Æé‚öö©Žj34ø”ŸÇ5¬]]8 CýË’)Éž• ødÊzAjϲùRÆ1)-žy>Ï•ÖnJ §1>8ÙÑ‹}œì×µÓ}àºàÃ<ýlÛ^åü9‚rÞêUI´ÀmM¡¨^m3QY]°J°ˆ“—iÁ:ônmIÓf¬(¹µL³U5}î—OV¹+ÚOB/ñä“bE ®o }s :,ÙíÙÊ®#ysSÙØ®k$éþX~ëÀü¾\ú¿lߥ³#礑?6‹e,Øõ W'eË ¬‰øq†Z…¥‰R|‹P&[¦Z™s« KÀk·A° yë*&_Éò^F³cËíË‘Z®–êÆ³Äµš\ô)÷C nV‚ô \@Öà³ cÒ¦˜ÚjH°Uø†7æþ¯V„¸«KÒ8ÂMSŽ«àFDïl\oÞ±q™sÀê •dضwaÓØ£»ØÔREÕ‹°àuE&0•0pWà6ÎþÂz¥æ9Š¥ùÏÞ²¨UKš³È?‹ñ¹jEþïŽHóªƒb¦""ßwxœ_l9oIx¿/yèÜÎÈ(881–º N n–]üz90ZD=!»îÒBØi·Ç6Z•<б^2&©±Ô‘Àz?|f‹ÌA”µ($…´Y †”ò©¹kúY˜ÁJ«¸fyMMA{…3°ê®)»Ö\UøÛJùÚ. ¿KUc‘IJèJÚ©$à7F˜Úûò¨Rƒó[ñRËÂ3&ªt·’í©üÎ*IvŒïuâî ãÄr"ÚG÷HowÏ+Š`jF;ù ÏÑÖ îX¥sâ¤õ±[ë^D•´ VNDÄâêÃÕ.8™Í(¼Q]ӊțєŠ9Þw®‘±U'ˆY4Ê~ÝP¹#¹7²µÿ%L4 žn7Óµexc9ƒ­ë‘OKOy}í$MclFÅ–P<ê¤6É@µ+ ÀÊTø)\* “X‡dy®—°ðÕˆÛÉöVlTí­ˆöLŒG ÒW8áÜØ‰&ÉÄ?.’ôž²œjBØY×b28%!î©kéÙð‹|CAIîÙC\ôѧÒÎî5F8fW¶¿4Ñ1!¶ïVå®\œ^—5p ú7L€Õa³"ÊÁ@X:wx»Jam¢´¤©€À¯š¥g2)¡lÔ“XE™la÷ÁÖõêÞ>î.Þèí-l³Ñ8V>7ÇæJkj3Î8ÀÑÁdô褢Of§Ü-o:»ƒIP¾ÊW*2¶jw¨DPê.mDÑh³Ey«ìBŦwõw¹êYæˆrëj¶|çÈ$ ý6"Î’O#Öʳq£1J§Niöçò{/û¢,H‹ÔoHœ¶uû:§æQ©8q Š;=C¼Ã㑾3@í²µjïWó›Á«éàÂfÜÓ IðPÁè£cz§Ó ÑÐÎÍ6÷rÞú-¥ÒXà‡ç8Ö¾-­fOk¦iÝKÔ—¬ºÑFØj´OÎ!Ú‚RÌS@¡€°Î0 O¬Mj²¢Îè*œîw£ìÆY8d}¿ÆJÕhŸÅ>€Gªv}N''¡Ӫði"¢æ[𦄖ÐèüŒæ­¢àN'‹Nï»Ï%‚¿>glÖ=…:ŸÙ»è¿»º¤U¿ÿh'2¾Tø" dxQàÃ÷Ãbõë„hÊ P¤•…M´‚¾üwüU6@Næò?ñÛ8¥ÁÕaqåWe6>ü"›KpeFs¦c™~1m‰Û¯Z¹}E'ØV{^’ç`Ê’Idî6ÿ/}SÊdBF³ÆlÊ ¶Äµ,™à©©|ŸXÅ2³ˆa4ÎãÜn<ˆ<½2 ZÂë<¾ïýÁ˜¬Ã%{™`_5.O\—׎كÈxŸ <}réÑ/Œ‰—RÈcÚø2_£ýîr·þœ`žÛ¿í£Æ°69Y$êÃ=Œx™Î(MÁ‡§Á€%•9ú‚qyõ‚1=\øgõ‚qΘûm<`Ü«5í<Ä*K†ñUL|ŠFt¥ ¦ÆWnò‘ç¿ÛÉÞµ ¿³¦õîï7|œ3Z­¯|ú:˜7¡àøŒNüº®I›)5.6 ÁËÄh£Ž5Q¬Ì~è*üØë~ê½·7uìöŸ«yÎóÕ\I’J ©Ks„J-ÝÉ"ßcp/(×s/0ÑŠÏ5±Ö‰VRô/É6;~»MÙÂ\ L·™ gºR\ØùÝžT†§ìÙùØ“_j‚Õ·õl÷¹Ûñ‡Úde&bmPPX«z‚ºR“ŠSÀÆS_qgØDE“6*]¢®“ATÔLÇI“åÁ! IÔ7œ"ÌvTø~-Ї,CW”%ðîTFîe={L-k“ –£¯{¶ ݸl0É€öØk´ãQ£¨™î•íÙŽ.ãcuZ¦è÷?€4oú·µü@U’…£M§íaæ€vƒ×¬ª,Õ¾aÃëGÜÈ ³GX'{Þ{o?°æŒíð¿ï÷ü|œù§±2:[íœÒû±Bm=B‰ýu÷ÕvÉÖJ¶sB]‹k²ÈqO»ÊG5æòãáš^»É+j0Ëç2:½¿¿øyøÎ^endstream endobj 1820 0 obj <> stream xœí\Yo\·~ò#æqxXîKßÚ4H\4’è­éƒ-YŠk‰—$î¯ïwÈ»rxGš)K[Ä€¯ÞÃóow~\I¡V’þþ>¿>‘««“OT^] _¯þzvò§ou +¥DrN­Î.OÊ; KJø•F¨`Vg×'ÿ\ÇÓÆ)mãZгUÁ«°N§¥´qý< ©iñöÔ(¡ƒÔëŸi«Ž.¦´ÞœJ!S’Ö„õ›"zׯ¸ŸNÞj3®æØíµÚºõÃãm®¼õaý‚ž5Z¦õRÞYeÖ?”7­ªVùfä}]òvýš?¬›¤uµ~˹™Áó-l™£þ xE'lðë대3Z»1¥€ ÷<ÔÛÇ6Ý3Õwc.h¸jÍúœV QlÈÐ>̇¼ËË`vó»¿bÛ Ý´„èŒHiÜm83ƒaþ×ÙßOˆ³Æ¥ÕFYÂcuv¹âäçäü0£>``“H›e…ÝŽ Ë€|À:•„<­’H^{KB¾™ñˆ⨠"!h)=PÅtT¼'”´@pq1›Ö—Ãêˆu2É,m }p1fZio&ï<+½Ž›‚k™žoOuä„ö€6 B¹ø°á†sEÇx!Aî·Y½ £úm渣 qv«”^鉔tMç ‡x‡Õ(\„€ñÍÃñšþ"oöÓÀÛNqŽ»)G놷hµðÍHÃù¦B ÎÃ@e~}GürIǰþl~üz~<ënø2 ÌZŽÏÏN¾¡“|Z]½;±BºÕÏ0˜_œí ¤aåA{ µºÆJ$±VÞœ|·hV[̳jˆ¯0¨ -võ«µóã]÷ñõüx3]0®vÅÝZbÉ–µ#u¬ÄqsÆ`¾KÕðjÅcÝÓ‹ ±pYKÚB¼×ÖVçÜÎ;nN5[Õ‡3ƒü(Åÿ®é ,Qç(Ú× ½ “ñ5†K2×ײîRq7#‰øn®çóîF ”F®ºÇ--Ø~¿ËŠ…‰îØò¬*üKê½´~;ª)®`œ³« s«pQP5pŒ×䯄–ÕnŽÞ{sÉÎ\ÄD˜wnC4fbõ"[DíÝúc ST…ª|ÝU_–ÊÅBH¬»þ„aÚ±ÁÓíQÃZ]@„èqzõÃ)I–JØèGõbøï°ØÛåúhƒ ×c‡ÚYîóç%}¸ N–ú(J[ÿ?Né}¬çãÈôR:Ð#ÙU—ÒÈ”£Ååµ)À¸}iÑgŠZlûäL¶“(…°Çx“(¯Õ€ïßrZ”ŒËÅ_Ê®‘(ž •$ÝÈ”Æ&ñ1ª*qâÉU®¨ œIÕ–‹ )20Ý-q*<«@‰œ/œ{A•¡xÞTÔ†ºA?g“Äôy{¢’@Z™ä‘•zJܓNJŸVIÜ“®€ ®üþ³1N–->&#ˆ¦ZÚv?#×ÉØÏ0ˆ{Äk»Èœ!òJ¯\.uNÚÊ®ÕP¾H7cq?¼ùˆ%R .M]Ï‹“ê,”éÊÎgYè”ÊÊuu¥{…lªvUcƒlã,QEògL[#iHpXÿ}ˆ~Ø|h3 ‡ ÷f^¼°Å¼P¶˜{µ\Œ±¿^ÇÅ&¢Ÿúr.ré® ¯™íÉ,Êó`8øGÚšºvdƒ#\?Á°xV‹ï7ìà•LšèpoŒÞdõí>dçôâEáÊ–¯˜ºz5µt±%@D¯,_­q,€%R×mÞ:›PÜ”v•AH_Ò4Ò"‡Hý.Îå«Y<>RýÝ"Ö“ü„£Ä'CSv«%“‹üjñ x†ÎÌjÔó(;’i®Ö,¤k^ëKRQ†é覺Rµ€êË^H„e××´+J¯Ë]m¸Ÿ–º'u4˜ÙÓlÚλ$ϨSŠi[A)fœzTF<Áø8àt§wRžÛal·®ò4ì`i’a÷°ƒ%i èû2Äà÷lŽ÷½¨Ñ›ºy¼ûw³°çbãõòª„·îñçÝËŕyE ¿h¥%¿6­àBxi .5Ô$ïÍ4ŸwÝ!s’u«g¢µµj¤ÑÌ²ç ³–l 3‘Y±›GC·«• ¡n°c˜Jõ®IŠà³âÔ6­ZÑûÎ4ºA]ìØw¨Žµµ÷ï 53̵È0 EåM\œ½Y2Í¿Éwf¨ χ8þÜœŸæN¬U´#Csé!_¼™ /ÌVðØipOÔù¯ç‡øB‹öòØAûvèåSÙ54D½‚Ÿ‹~UqÀ°4êEè_|×Ó ïãKPU”ÐÊúˆ[]>x˜±%²yZO=m NC3ôޤwƒw‹£ò˜ØSÓŒ\ôtÇ$€¥ºwÍßËr²æ(õ½›œ… ëjè„»Àõ­¹$ æƒ_€ Q1xÞøºœ „DzєÒ3 ;JðtÌcq{·Xà€o˜ÌæK†ã4jÇÅy‰Ñ>Ýx$ mB»?1=NŠûÉ<îF…j"¡Tà±n팛‡P—’’ÔhÅÁö½©!­®ÆÂú³–×%ÎÕ?äòÆ¥Hx—ÝÄ–|Ô5ÂØªØz*¬º# r/<’…½üPíCúq(—ßg®¾žªmúPÁhò{¨c²R'•hhXTÓ<»7BíË\¶ŠÑ#}Êg¨srýŠj?¹žpF¢RzªZŒŽyJj.ÆŒ GTc"Å}ÆŒXµ2š¿‹j¥š Å L§‚“öý¦`§„†Œqˆ R‚]–Áî6 ؇ñ˜…H!ÕqßCÿ_/Y¤¦ÊHØIª’¶¸‰è˜‹ì6ø»üù’]œwòüâã¼§äöyŸjÛ4¯£¡óóŽR Oïá®…¶Ûó·yv[òuXVxTP»]Ä,ÅèIˆ-Îyž·;i caN‚q‹"Õ„<„J´Õ‘ o>ô¿tû·DeOÏiË p¦ò7ZÉ´shš.äõc+ÓÝ·Q˜Fxä#ÏYNÃÂÍN•á×91mpH²~Î>¶§WÿQÝX{šê­³äZó1aÊ.K”]½Q ᛿½)‹ÄÞ©çÊ×ë¾- eçZ%rš,2‡;RíÛàÙøÞ6ÚK*6â;|À<9×|Bž®Šê›&W‰UE/®eï ³dc;«4y Õ—.w3t|ÇY†šYš'á¥yˆ[KŽ8_…ÕuÞ—Ë{ùlŽY¿Š×Éù–O<Å þ*ÝE†ÚGŠH?ÔQÁ$ÆÕ†"œ©¿µßX¸ž–“±pmT!²±ðq刱pM_sZÿ´cáŸÏ¿Ìl>âýiŽíœúž>ëû§¾Ý0öýS7}=Síb˜ß9ç¸÷x„Óˆˆ»½‰µqÝŒ+‡ €+„–ÚPái' O–‡òˆG.ù`#¦>Daå ¬žÐáÊçjj1Q~ïñîIB¨ÔæÝýãݸÉÑx·¡¸ò¿- ™I8$Ч•CøŸ–2r¹§ï.ùþîñn÷„ÓÝ[óÀÈã•UÃëSW#QT{ÛSµóù'œ¦"8õJWaeZ8¤Ì‚È,Y¸¿UzŒÓÓKšxÝ•#l `¤ݨS†GûfƒûmM£À¦š»ÛáÂy„*ºrÇDwÿ×núÒCŽR- Ïá.ØÄP¾/…6–f`Ž‘2Ó!ƒhÅgW᦭ÜNR¾1–UÆæË{}úó®#x4I 3),õJ¤Ï¿ÄpÏp?wŒÙ`Ñ414Ò/KBÓáÔ)ŠTyâ§ùtƒjÛž´H‰Õv/ÍW?ŒÃÞ⮇t²”LUG™ZÓ,ͽÉü€¦Â4 ð_âôêôȲJ_:Ò4öRøÿ€èiiªs‰Ú¬ô’ôfèYY”YÏŠ.‡Tqéô¥îX›H¿ýý¡Éá"<…ƒÃÕ4ƒ7ÖËØ¤’î=N–⛓ÿÙ³ˆlendstream endobj 1829 0 obj <> stream xœåËr·1gV>boYº´ÞÜ'±åŠã²Í›)Š”«DŠ&W¶õ÷éf 0»Ë%c+.ƒØF£ßÝèÁ+ÎÄŠãÿ¯nNøêúäÇgWÃ?¯nV;;ùó7J„U`ÁJ«WgW'é7b%„`veb©ÕÙÍÉwkÊ™6J½f§Î\0’»uhO«iú?g_à>\Ñ}”a\p {]ìoaµ0Az·þ4¿Â¡åFÈõYsÁçÓ7ùÇÙÉ׸“ «ë‡͸Yý gÿìDxÅÓisfu–3㦙·'ßö T">È[ØÀ•$ºÎ¨Ýçáy>Æ]œµ^Ùõ›¼à˸  kÓì]þ3ÈÃ_òðu^6)õ.oònd‹÷y¸mÁ¸XJËÆ¦«ð,xFn‚Xo…që§Á¸õZ¯oÉô»,5wdúÇ:(ç=œ4KÓ0o¸PMq’†¦²Lz¯„T·ôt³N>¡ÔI.=Óre…‡Ó:1Ég*L31Á¼öÂÁéôN›‰ÍG"bËS\¬¿_çéWMÀ„K-…öv‰¥i¸ÀÒˆðÄR̓eN–j!-ê1,ÌÚŠ¥ŸejÝgûp^Ó0[ Q°¢Þ êÇœcÅþ“b n¤¬[Ñ×»6¼Ê³wyv›gïóì‹i·Û˜P’ÌívÚ÷Ù¢œò`OV  † lQÎÂŒšfÁÁ|Á”‰-_îR/2œ™šH¥ë}혗V&fÙÑV–ÜÒ4^¬ŠD™Î›|¹{"ni+ÒŽÑ=žA÷LÇÍ Ñ½qæ݃]#³#“¿ÝE0Bòm_÷:ì¤Ê7-y8`Ëüüþ´d¨’ 1 ™† ²cÛ¬&?·m. îã*¯óÏq@7»Ö^åCâ€Ú²zÓÜbÁi&¹-Ðe0q‘‡o3;ß7Ap'G~hΊK¦!.JOò&¹÷‹2 ‘’ƒÿ)eÄh#„Eâ.w(ÊÌÞpË`ï`ù<˜Ô„’³(ã9H­BMiÁ!?‚`ø(JbÙ¢ôdÙ¯”>Äæ>L÷’É®›”¾?Ýx ®U©ŒÚ—}¢¨É#L¤™çlHi0gƒ,HÛZYXP†‡¸‡R~šxga¬x÷Ʊõ^yÍå¶8Nà)]CR¿!#„„O&\e(«0óºN?ø„*†’+ÐÁl0‘7ÞK´ã8hßN!n€ ýÉ "@ eWÚH 0Á,.Œ3).h‹@=ó!üßf~”˜sæK4bäØ}*$@îž$H)§@Ž ´Ià40WIà”òÂù$eÃØ9#“8ƒ¹pàø D<y‚”>‰óðË÷DÔèN¯ ˜‡]˜sµ. žÇ ì#p¯@Áéx@]IgGÔãü5B„r[I «Ÿµ¥påÎ[³Ó–sÉ… DZþÆ7d!’ñެ¦þ¦çÁ®W,úZ` cºB¼v×¾@ê¨×ƒuW>$D,üù"[ÊÁÊþ#`{_9}ß‘å·d¼6²¦£˜¾#úC–$¦ –7g!xP ½4X2 6¡ÊÄ¢2T“zéåF¢eѹ‘r“+sf·· ¿‹9÷DŸ*­iõô r’ãÍÛðÔ7Y)ƒ°´§6æÅ½‡†=ÒÓw›|­$þÜIÌÞñwÞ[°+Ñ }F»u°Ýø1ât{ïH'ÒPµ ck5Zè‹1hå‹vóJEõ§ 7íZ~¼0P@ý28˜jiÛáïBÐ*3³ÜTPçF×J›SìY–ÆvŽ \™¥ÅÀwH{7COÓÿÛw3†72$~Í$y#cœ9â ‰nZ<ï/ó|oEâæíiÔ.?eæà·ð”… ¿ÚSRXÐò”Å8sÄS‚I½[Žú iQØXì_rö·õä„‚ÐD‰^Y]0ã1oàÅ´))ÿÙ£(¿ã«÷iMüêÝU¯<û›²®8>!_¤ „WKüÙ"=Dnšy [$š‹ Ðb<ÏGGøµB*±Ôïƒä%"Jùû³¿71rjÚñWobR<`V¥xÃÌ£O &†¯ÊþÚT¼æ› 1 xÙ µ |J•ÚFôŠhÛ«<ûæ‰xøŒÚ&H¯§Ú6Ì£mø,†îÓÿÑ u°›9ueóëói öH]q€Põ¼IUBëmsíEž­_ùÀû&aMzåCÉè•ò%û‚o–LAhþ‘¾Æ‘eGâ§Àͦ5ør$m— $Çn1^þ½¿Æ‘#ŽþûSzAvŸö5Žß=¥ÛíùmïôÛyƒ£&µWÍo×É%ãOÒ;ÇOÒ%7àëðª"6ÐõRDäT¨X4’9Ê¡q2Hi¯˜´KŸRî¼*yŒŠd>Õk)X§À^7±_z-¥¾ëÂÞoŒÀ4,sVÎj~2Õ4œb™¯Oþ ¢ éÒendstream endobj 1836 0 obj <> stream xœí\Io¹¾ ù}l£ ÷åšd& 2™,  ÉÁ¶dÙ€%k,Ï–_Ÿï‘µ<²Èê–ÔšÁÀÓ4‹Ëã[>¾¥¿Þ‰Aîýÿ~}s&v×g_ŸÉÔ»ÿz}³ûåÅÙ/þ¢eÜÅ!:åÌîâÍYþFî¤tƒ n缤׻‹›³îýâ\ .j+âþê…´VÂÊý=u›h…Ôû×ÔÖ"ÆèöSÛ… ÷ï¨é£UÂïïÒ,ÁIë÷Ÿ¨-½´:c>`vcµ¶f›‡›¨Õ¿/~«XîméÕî\Ç»Q»‹Klõ(¡uôû·4õ6…]ÓVm4!Ï¥…æs)lÇO3ü3HUðû_-ͯ¨éh´ÄzÀoç&­ðùÅÙŸiw×÷gÜ}‡ëø v­A`½sÚèAÙÝ zzæŽ÷gíßY¹ëù΢œ4Å •Êwv½líãÒ|¹4ï–æÛ¥ùe:'n¾7öwKóvi¾[šŸ B¬®ÍÛAy§&jƒWä °û˜ï^koâþ›|u ‰Ì¬bÀzBgVÑ:H2Œcp½ÚºÁ€ƒ~Æný}n½òS;}zŸ‡»‹Ù+†¡!:ìo°-.%T"ɸÅ;6øŽm¥·ÅkšÐCDT–ï]P¡XŸÑ‚ ‰–q W Ç­çOInÒÎ-äRÓ¾T€8=Wâ2¦j\v¨ü`¤+ qÅV¼Ìû6Å€e6ºãs©±ž†(J5Xk|¾ÚWin£Üþ‡¼SÐ5ÅŸE#ÃÄ7}~Íx×äÌO-Žoò 1àA)§õ¾[tÆ;Æ1k(c 犿htgä7Ô‹Õ´Ýâ4¢©çÞ¼ŠSÓgI%¾‡†þllwŸòŽ”+uOÝzÂ<„m‹Ód>°<%æ"¾¾",WHó~ÓÙ.'ÑDþµ¾£î Kü9¾:‚‚¢æÚÿrÙcû9üfñ>å让>.âž%Ôír“+ÔûªPgk<$±õ’‹L4ww®"p,ìÒ9½ ·ÜeBmŸš*…}uµÙOЙ*¦1R¦Ù@YFJPUΨØnÖÊëL¨zC< t5.Nûpª0Y·¹×Ë–œG"‹½3[Í´c§t(©WÒ—Z!Ÿ¿û\ÉG2xÏŒ`\ÄÐf>¨AÆxzª£Cð; þ†ÕQ£ÇÌ=0 ˜ǵ;ëñŸMÉ€þ±iÇn¶…@zLfwŸ Br;2º‰ÀW@±|–%Ö(1a9`b¯ls<°¬Pà·éµ÷-eM§È°GU+Z® ̶²VhÔ­Õ¶D…0€d£µ¬¹z­¸}Þæ©U0'‘ÄËqºèV’H»ÃƒíÕñ¬ï,1èÈaØ›þ34kàCÏÐBíÂÌZEéÝ1"“Y_øÁ UÁ­Þ‹å²K€.ËB"TŠ•L8¾Üô  x}S‰ù^«£6%ãjSzp~S iß.–¾¤¶¡a‚ZÀ4Gï2/A»ÜÖÏ€ÞÉyEˆ ws"å@TõI]ç—:$rñ4}!'PÁñZBá±Ç^9/kyOˆëõÒûvé½kb¶Û†ikiG,¦F/øïÒ `ðDÀ `—ßcçqÏ1ðežÅX"T¾—ÄúÉ ¡õwæÕuŒÙWÎÐ4¡rÄùXܧJ`Îõa·øsàC¡JóTm)Ò­Ÿf?ÛÚÓò=Í+Ö~2í0·*1²¶“zµ?C -Ó W6·ÏÑwðÐÛY 3@´`ÑcçžÇ@´`•§ ´!Ú—‡¬ùn‘šÛEj®H ^ix;38W½ÕqE¢àDî)|¸Ï}^ ¨Š F]WÎñ¿§4±§Jìàõ ýÊ]H†¨ø(WÝMÇ p§ôñÄQІ¢W^át+ß4äð·ðÆÁ±TJ¥ì0fÓÈ}ÌGó¥7óMî^wT|ri“ðÿqj!M ö,ú¬­b½“]å„ç«E¤.–Þ_-½¿{gåÛèÉÍiÉÝ­"”ƒ1x4I9÷pgÀË ›TÜóò`‚s'$.Úíÿµ_º_7¿c”¾/ˆŽ2傞ҿàÀuÆND×Î,wðÏ‚ƒn¶%Íó(šÓ¡rL$cðЄ#Kþ¼CA"í!ó|ÈÁçÊ›¥÷Jž?¼`íâ gïÁdöNx#ôtÛºh þéNTˆ0 sÏc®’ƒ£)eô#>Œ93e®‹›0¶-êþm‘çÔ–wµy|œÝÊÝ©ïê‹&Îe"üy±gÌB”ù\“i-]¨´Ùñ÷‡¶zÕdÌ›¥÷_/ æ8WüÅ><ÞŠ-ÓÖ%«?Àt‹™]/Ÿ=D;nd‡ææûå|ÚQ Ð:…v¼¬N´ ¿j®qÕÜ;ÑU“&ŒÇ…†N¦ôf¶áÄ-Š\2j‹[`g=ðuÁ.¸l0© /è&R©µ×eSzXij–扶ò}>˜ÐŒŽ\HŸÐ:Öt–°¦NÆMmà =á”ÞÊk®uÏÓ(må6žj‘ìºIi<ƒ¡ì ÍE÷]uAyìå²Q6ÃýÒûY¡bæàîÎ.~~â½¾k~ö‘íi¾5d–PJmB­oöÿ¿(F–%Äœð  ½©wÊ(Z.ÕÀg>Ì=*‚ñÀ»i ÐMÿÏ8?uËa%…n9¬žVCž!å±E0É{³™ZÀ3’V¤Çƒ9Zý™bPc ¢ÁTý¡0dÌS, r$*MzâqaH éÊP€¾NFs]ûƒcÅx ‹“ŸÔÍ«È_å7uË‚ÒX?¦â8ûo_XCÀ½È×Ñl¯‘©Ò”)‰µr…¦—‚ØL›ªÕHi³ðL”¡põi°…Œâ¢¤˜ÖšøJ§’êvÂØqDj¦%ut1ÊæÅ“®Ã«‰ñÙ:Ú­©L º³¨z«¦Fr”ûÂÅÏàTÜtˆr´"IØt¡4wu3øÕ¸¤0]7oV.9;³?Eb×”hÃÞ-½ÌW¼·Y¡Ì“p/ ÷!¶Âž•©»Éƒ•;ª8’§Õ·KÚa¸à“‹N¬Þ²ÍÊA™*:ELN$»¨ÇI‰k<'ëM¾*ÁÛJëK,SÞß0`ƒ3ur&M"„g-ë‘翯Z…ÐOQ³¦”¼¨ d”­Ì˜÷{¬/(ri{u#c¼ÉK¹ÝÐxË•ÕcœÜtÉ1×Ñ…VNäû)2úTM>W!—¸y 3Lû®ºSpˆRÅ-çê¤ì_ø[‚ Ñ+Ù³™ìØ´º…^qx/bÌk.nÙ­‘yÊ2Õ«ûÁ:Ö•i€ÆY\fqA Ù×níì+6E/ƒm¬o¦ìæ"ίo΋ÚPªÈEø4GUFž©¹*Ÿ¿eiˆí«o+Ì”_gÒ¹tMV;ÛƒÚI 9lÃÌÅ!/G„Ž9åš„ÛЪ:ˆæ®‰YnVšñ6¶¾æ iDV1ã6KC¼áÀ·ƒÒ…Þæ^ ÇrÓm~ê;œ%¿Ñ1þ:…¥ÞI§]v(*ä’sÇc¢»ÈHSYž'¢ÕòHe+×Ásfûнi€ -_!Mµ0Â1•!Tͤ) ³ªÛ÷±‘›†ø£jðÚOc†Òo•/䩲Ž|L†±žñÒÒ<÷$ý`þK˧Ì?6X¾ä›ÊÔÈcÖVúv}νš~éñ÷Q6a¾¤ƒyÁsô™Š3Tø©8ƒgxE¿ñæ—〈ã Å^¥D°g­Í8A¨û§ÚŒgy­ýT›1ÕftŠB×€¿®±œ¦2¤ÚŽ/Eƒw‹ôÿá%öÓ\?fEˆôªÃ}‘°[ÞŒ\v –¦™›³JüóÙÀõendstream endobj 1845 0 obj <> stream xœí\Ys·~ßÊØÇ¥J‹à>^£XvR>b‹N¥*΃ÄKª‘´då×§˜Ìr¹KJV’ÒQM Ðè _7šz·äL,9þ~/øòlñn!"u9ü8:_þépñÇŸ”ËÀ‚•V/Oé±B0»´N1áÔòð|ñÏ•?àL¥Œ^±ƒ5g.ÉÝ*ôÉ6“ÿuøW܇+º2Œ .a¯ÃcXûÌ&HïVÏÊðZn„\v'|“‡¸ÉW‡‹q'–g7 ͸Y~€³½^ñtÅœYžÁrf\¦¼]¼˜PÍx·°«EtVX».×åW‘j½²«×eÂwq¬2ÌMÔ«2|Ñ,–†ïËð¤ÄD«k˜vB,׳ày¥ú²Þ ãVÖ‚qëµ^]òeÑî!ßàXå¼_½!Zè† ÕU»4,€Ö×Ê2é½Jl¼)ç¸(ÃÛƒµ Y'Ð:$—ži¹´ÂÃi˜‚äÆ32eS€%˜×–pp:}§)LÔûÀ¦°¶\€ºíê—U!•áeWÞ7•è-ñv“èÓpƒèã1²èHL‰ˆ^Y])cÑÃÌ›Zò_ï$yä‚’·Æ‚—0§Á·£u>©¦ÈÀ¼àþdÆYÑÙuñï—…zZ¨W…z[¨×…ú4Sq»µÐ(,IfŒvÜE™6<†2¹1ÌHªÌ²³2.Á”I›ßÝ¥B2lI’èY¥@í˜N&Û1>©ŽˆÖ¤\RržrÞzf«Ï«Ò²¶"íø¼ç/eøm~Õ5ÍÎÉò¼ÖáæªOvs·']«>/Ô_*ù­!¶3!°âà<‚lÓF)Šßv'àxZ†gå³û„×ó»æYl¯’)/«ðzÜõÈ_ËðU¾m%Û2qM·ëÉäMÃð„ZE…Ȱ†Û™0 F:&t×ò¸¯q¾6P7X* › OüŽ».t;ïÌ'ŒÁÏ vtoQIRO}4Q«ÐJZÀ…l’í%é ¶; @{I: 9`ÖÙYWÒ×k¯áðRQç}Ó((Í=.Œ’n õi¤G›øvqøäy}ÓýìšÎ‹}Sì-  1‰²4«í Ù?G4”á!î¡ÀHA4X!Œ!`4Ʊõ^Tx›bò[ ' ØC ü€ì¸ËÄ« uöãx9ªÉMð‰UD’+0”®1q2ÂßIdÕíûPbŽ„O£™2Kí\š=Dð@‘™²K6¼ÀE¥g>„Ïáé©'ZrŽqíý(Ú딹A²”T­”ÓâaÔ”ÒJ$ËÐ`i\%ËP 0Oæ0ÌmÀ¿Ò…dƒÎY/=0ˆ üøƒëB+Å[î¸Å¹ø™ñÕ&™Ä…L=|HX½H+[S­Aw¹È{Óqo s$]í4í'¤ë±4ž—6°x×tÁ³™5º²Ý¤ÐgÅï(ÔÃB}V¨ßT!6Ú®¶¼&¶ Y9PÄ^¶ 20ð+m-Àf}'l¦•ˆ.lnƒd×µĪF &£•ˆ … £mjçFƒŒ6A *‰Î>Űú’RÁ‹`ƃÁFmœtƒ­ˆ f­é—3ek£½D²²k€ÁaY9âÁ‹¾©ÀÝ Áˆ“aËd… ɽ|}©O¸O2¢þK§@1Än/‰œrDþ9_rÙ=­–Ì)Y”Þ»gûˆŠˆ£$RÝ#bnL7y çÒ–3*YI‡!êÊJu'¯÷jO\ 'ô„Ìu‰‹.SR§3˵fÄaÜR‚èg-^)¾VDÒTWÄè¸6ðB?;X+¥™ˆ³qŠæVŽ®¡qªô™=oq ù"l­Âk6#ê>'8_ðæ§óôñ=Fu¤S‘ÊÆ‰ÊÈdƒ§€ø¯]„Ä™GVn³ˆ !j)GLøsTSpRŒœ‚5(\¨t`†²€þ„Y}(€‡rüvf<̖䨀:*Ç*0ÒÐz*näÓíy×M«,øœD/M_Ô©a$=ZIO2wÝÏÑ/Ç5.ÃäqoªÊÌ¥¶D¸ ñ;MÂÿ1ÈóJôµ1nòæh]×iÍõ,èxYn©Í„*XP¹:ˆy±ƒs);F†ôÜfaõŽpôë”»Y@Ùs#Pûû) (û ˆ°Ž‹O( îK/>¢P!07g¼ð{ 7»µ=h÷Âû ª ¦–ÖMCAbƒòI>2ªì&€=îÓ‡(ZAØß&Û¥l£@º¨Ç"°Í„]kÀ#W¶·c"vØMÄ^ßzÑNˆÔ÷…zRzšˆàѵ‰Ú×e‰ƒf=Ü™ƒ AW\¶p&ÏibÉZqÄ|zRšé‚9·!w±xåÉuÛ¹JŸxˆ–®Î1‰/θhq ¸/¹iÏØi'7³‰0[„›Dnf׸MÛàíºa\+¹»O–ç`õ·b^ÿ(ÃçÝa[ÊO–VJù«ï{^Ùµ?ãáH>Cå©f@z}ö:YfÿywóŸ›’Æ<2"Üì‰RÐrÃ\¼žâ’Ñxò§Ñ$º ¥¨Ô`u¾W3ÎGîô¦ ‚K#VØ2­XK¢Ñ¾y K7@žJÑzùŠi¬›Ññ)Ra5·±Æ¢¸…`¤Ìë1‹¥qÆ‹ßÒ‚˜4üL¡ö$MÁœàxâ ×SìzTbt\º)­µÞ¶6Z'óªXÙl=yò$CÑ›Í!]yO ô‹ÌÑãÒ`‚y·CÍ×6M>o|€š·"t’ x=ÌV[X„õ/âgˆ3ŽŠ}S/y‹ë¦¸©.4zqÑUn“ýÔdËÓ:[[ 0!„æ}gÓ‘ K´ó™ìÙóGÈJjnÈN¥,ŸKXK„¡ÒÿS´)Á®h¥Ÿ–ë£H‡2>©ôc’â±ÊÕaH̸“Xñ;ñ{PíPæ§kôú^5òŒ>|óàåz',¼ð©S@8”LØ%Aà—À&„û´^ŒÁÞãë-˜¸Ëi±žšV'e‰· ™Þ < ‘ŠKµâ8th_•™Ÿ"üÕu d£?á"ã·÷§ÈÕÜÂYÚÔHµM ’žóþé[<4`€×$‘x5H(H“ïZ_‡\r‘ã!âz¡Ží4ÒQ× à@„ )ŽAÊᫎcG“Í"ü¦•(ºÙjš«:}LÁ˃ È•A°÷\^:“\¤2 Öšú÷s7|xË4ö~â’0rª½nò‹lNÇ©Di‰±ZY§T’sUÌ»ã½vLBf&-¾ j¿_›¬ËäOÛ&;´ÄÊ íðˆ:´ÄŽ”=Zba ¦¶xDÝ«%öï]øGÌëC—7·ÄŽoÝŸ·%“¹ÏÕ+UPøŠ^ZbGÊ-±°w7Gïõœ¾…%ü¾;b‹äÇ&Ê=$?tÄRÁ?PCìLßíˆÍS>]Kl¹mï¯ÍGi‰•Ò’ðT›e–XXñÀÿjKlÖò>-±ý†nÚ;Îx䆨1Éú"bI5|Ctý/lˆí› íÒg|žvØ±ÔøÿvØGn‡ÍÁçwß_‡¾¨vXÌê¾”vX!÷j‡åÌ“·Â‡ì‡U¼ WLúØk±ôš);õÃZæÒLÈ»Kl àé©{ϰÊå¼k‡U E)ëÊ?]†Íf h3o!ÿž–¡ÆfZÜÔØÙòÙÌS]|îSzRZšÊÝ=Xâ· «^½<ÖÀHýž–õIan*‡8£ÃGûr0gñ uÜ=flTSÛ?haw=àƒA\Q™ÜˆZ=ÕÝ»U «µ/b@Ö`zþ>}¨Rƒ£æÙã7¢çýªÆÁ·3‰ÂɆ6ž[7¯œxêÆXú¾tV¨MÖ­Yµd¤‡ºÐ)Ìf÷ËÕXêE¹?ެFç>Åê±y˜ñÝŽFkÇû¯š+E_§³»à6¾–9°á &/Íí4}€$òzz ¹&OÐýŽŽMf¸F¨Ÿ†É"Sg³r6ÐRAÇÂ.|ëÄÐ2—ìÌßLº­lÌ"2imÅd§›32ÔípÜЬ y¥æm—aU}–é5ž²ü[qáê5eºÊ¤ce‹®ˆ§‰-áBcÈó ‘OÌwL`ÒæuêÍ}©býA÷˜Š¼s£Å‡•È•ÇMFN&OÅÓŽ¥Ô¢AœÿaŒúXû&3ž­n›š»4Ûfd|™4a( ›ÉžxǨÌ/>:È»Ìo¦AàìIÕ]ÉBVÞ³¯òF¢YsóÍH½t>6€ƒKÞm—™„¤¶¯ÿïP½qÎÍž{ë1Óé¶Žª³Èhÿ¿‹Ó8Nþ¦—qMrëùúÑ6¯`¬øÐ`®‚dÅ`µ ^”CÈ24y˜ÓˆÿAª³endstream endobj 1853 0 obj <> stream xœí\Is·¾³ü#ÞñÑ%ÂØ—ãxKy‰ef©Šs DŠrY¤$+¿>ÝÀ ¦æm¤"W¹|àÂÃÒë‡î~]q&Vÿþ>¿>â«Ë£_Dl] ž_¯þ|zôÙSÂ*°`¥Õ«ÓGé7b%”e†«•uŠ §V§×Gÿ^yì .„õí1gZ)§Ãúõñ‰`ÜjçÖ÷Ç'Ðl¤EóÙÔùæøÄph‡Ï7ØÙ8ã½\ßá·sZ9¿¾ˆƒXî¸10ãþ’3eäúúXzÆ7Ý1îÓ4†X˜ÇãJŽËæ«õKÒ¬ä?§Z) ¥,Ãr¤Øé9Pço°Ma‚ôný¯éóËæç7Óç·øiÆnýÅÔúýôùCþL«¨8f¯¦Ïóéóbú¼Ë:×eåYvœƒ˜/º]jL@î€ÕÆèR¦éÖÉ(tç”óç‰óV„õ;è-¹RÁ¢Y±>öV[H„ùª¤³T5.g*{<Ÿä›jÉŽ˜âÙòFº!ßt”û$? 5™òÅ´Ÿ¨;ÂÆþQwŒtgiKJ3[ú 7¹¢ò6ôq‚GG•F1…dwxt–z;i–T%³‘M탋BºNüpru"a, ¦;îøi”')Aò¢¨ ¹i! £†mZo…q¨'ÐÇz/þÊÃn`o­×&ç,þ΃…˜ï‚‘°u:™&J³à5U[ïÆ5 ÀJú´æŸ&•ú¼rXF•ëÓf‡¯ OòÅéÑ8¡ «Ë»#͸Y½ÈòÕÌ`²• B­®¡Å@Kn¸:ú©‹kêõ¸Æt8×aÍå´²×ÓçÙ´‹WSëËøi½²É&Ç}6u }ÿÑ4NÄ ½[ö¨°T¢Ñ “J¥ êâ¢Hwê€Ï E„Œ§OØAa¨ÐÓXÍt5v­„ÐÅ(ÛP›UÔQy°¯Å¹ï]úwð&ÙšÒï›´f§ SL÷MíïóÎ(ÔtÓobšŠ1¯H;5¤ïÓÚ­ÔƒÁæAg߇›¯¬aF=@,i²(‚Þ·“ì@T°Y„î&Ñ»¯d> úE%þéózYL•aÞ˜ @Ÿ µ4L{UÿÌ{ôsJ=ñk‘>½(YNM+eôNfÖI¬ëDZ°l#(óÇY41‹¡Ý<õn’öÉ—ãÖÎÄ+½‚Í /´|Þ"ýrË>¦Ï[°­8„ˆ&pÛ ÞË©ÃÓÉö]´¥cɦo›?#}ßTÂZÏÖfº €‘… çy39½÷I=½ÖI(‡æÛI^‘æÁ/‚uðI›ÁØä/%¸ ° Ö:,ƒxº»°ÒÌ:ù€$9˜R-WFX úNpóž©[ö ŽE‡ì´Q€f,ý8è4LAëÏë©ÇóæÀ„K…í„!@½]bXú\`X>D†)€Wp^& SAC‹8„a0øÊP0쫪5>¯ =œ @·˜#<õ§EØŒƆv¹œ= N¦|1µ¾šZï§Ö×Së“Üš\$`Dp“•‹|@¾P áZÔ _À‰1ksË>|1½38àX“ó]Å™@“ÏÚ’$ÒLºˆËéñ ²÷Ù¥(tÅ­ë×Ö|yõ@ÜÊ’‡ç–Fm ‚pkl9€[0(}øqëö¡ukSiÄŸ#ýlú$ŒÓ:À>Ö$G‘zÝ\>!ÀÛfëUo«yƒß~º÷Þhk-œˆ7[öõqLÀHƒßdÅu±"‰X]©$š ’ ‚â=O¢9öxÛda‘Ìû&»žm)™Ú$™À6ª*eÛÐrÛ °AêĶŸèFJ>£â}±ÎäÄ—íLÓ‰O1ÓŽñh›ŸvߟK~b˜’k«r^šWkÎ&4|ßì@P& _N?Û§’¾ 8•úÅ8¹NÍvÏrÅdNÝÙŠÎ0ö«M›#k'Žë®ÙZ¨YÖšÀ:ãW¢%r¹—œq¾9PpŽa“0äù=˜YŒRSù¹½VK ƒÔ*Ô”\`úà0Jï‚ÿþ ô£Rúö(‘öGMi…¤þ0¯imë²I‰#>W²“rÏžZe‹ì=‘‘ñ'q-œk7DôÁkI€B5Êç€ç,äÄ½Ì øJ`q¢|xo/®µW¥=Sí£:˜ÁkUá¹ZZÑ.ìµÆ?„&aóR¥Á(Ox‚$?K–zø‘~`VÛZ‰z”á¡“ÅLÉÅC–&Ki—ziž•ö!qá!\¬ƒ’ÍDHΑªÀh¦¥âáaHåÏ‹‹Lо­ÌÀ'rRå3 Á&ÍJq°Î`j!xh‘¹eŸÔBð̤!˜«Å~‘áÒR×ÜÅá“y%ùÕy!BÌö*šhF7´”ïŠd%wÀA`$—c9Cüe¯ä¡Êsâè&Är£{_ŒHŠ;^‘*úMs˜´ÒãrXº/j­nR«n½mñ”° .`òK‹t9‘€f§ßÆš*F²‘7Eb´µÉ2'¤x m –Y³’,·1Í“Y™[öJ³Hfüõ3£oœÉ·ÆÀ€Î4¢iWÊI"÷½´{£$!Š)IŒó4œn•FxÌúß¶yžêèDP]A?Çá4S¥ÐݦVi±0–â)é?\^´3æè¹ɰÑî´?‰Yy½ì 3NÉs ¦_Š²ÂŠ),èc$©[Ô¼H¶1'q"­¸ ©ÈÑ‚'¶u¡-±*™6µÇ¥&BXWUºÊ…{ü&Æá=ŽmØ>K’;PÀ:1—$ƒð`IC §2Â…â‹™|ÝWBE±`õ³¶P9æ¹ó…Ti†5§ó’Œ(yßöèÕÒtÞ@^¹•ç»L|ã¹ì&• —• (­Þ•ÒJ埔/ãBä¹±’ºò§q pbc±GCf〤=924–õ!f{¿NËý:ЋáX6Ö6×勽‚úøKÞEW…ÕJ[fìrÉüИB@hN§>ô>'ì?LéÄcŸL ’¶¹èŒ¬µ'«ËõèV&¢ÁÄðèÂâp®öa1‚ê°ê2;¥Á =Ú $L¯Æ?”¾ìR…[ø26é[Šñ+8WE¤:Ç#J<,4!F–çÜ\ºƒBið3¶Wj>Ž+] êA;5ÇTÎÓj¥RUÁ#äPÙa•z‚]¹ °¡öKxDè•ÚÓÊü¹UðÊ]Æ•òÒ·O6×ivcÅ¢€ñ¸·ýÎÚ:=öžºs29ùÕÿ—bsRÏ@þø<› Ù`YÏ]y À—úrB‰¥âV]VÂo3ƒIi9uÎïX€u=!ïÙ…€õ X}i¹¯ÜV°‹ 5½J1ºWn†Ò{—êê6x¯ÓpZÌ VªÝ j™ˆjÿO ½ªD=p&äA¤Zy-†ZùF&ÑîÛ%m8<ƒÚ”J5¶q7m^t¦@3·./¥4m–ª>ZiÉÐÊ﬎87ˆBaØZö©' ¿ c(5³û@&çƒÞÁAÔ·ãúl÷„CËàËpEÜ¢ö§ºÄVˆ¸t,ÏvÎJæÄdçÆ@Èò!‰´¬w0®Ôª‹JöañµUl"¿ÞÆÊr¶Mšî12¢ƒ3=<:^²’ºf&^m2zñ6Õ8JÓyžÜe«ð¶…$iŠÛãÖyd´Ÿm0Bš1ÝßœÃ!S30–[öÂc`ºÌ2wËqêù½‰‹D0=FÚ·bc„ wé—NëΚ/‹Ly\}ˆÃh-‚£]-î}ÜÂ=ø,%eñvhŸ4qdªy5~À°W¶‚Éí;ϽËtÚŽÑ[ÀÀ\Öö[²UbèÈò8÷}XÌ_#œÔrѲ`³@moôøoéqVímåupR\‡ôÐÛõ›ôNQ¥cŠyAŠiz½Œ¾#/½Tò#QêG»±ƒ»Š šÆ%뻡`A´úÀ~%mæÇÒ½ðhT¶®íT¹:E€æÛãü¼Ú`ÍkH©1i!eº»²!Àšö›Nu(xÉ1t%¥ÂX\P1½oðNŸÔ½Ï›JÚâ,f>œ‰—éQ°û6z!%ôVب2ظT!L­˜qñž®tpÊñ~~MÉ!›Î™x!lC{v=ðÄŸÙ±5Tk†T>ôûÙÉh¤Öìáâqn+­Júmà¸jJ\ÿ½v5 Eléæõ‚“€ßHÝ Þ-„LÑ¥Zmz>êftË¡|!zT.º×ïÓïðnzuðÅù¤è…8:c;*×j…í©ß2ÀÙÃLbÇ5Ý´¤”63FÖoTl:^“C\þšý(~,•{¢$‘ˆÂ¢•¬®ƒûÅlUä¨(e…jÒÈô:°Ôdcç^.yë y”aù;Gñµ6¢)8éÊ}€7ÞXUåíéå‡8¦ á›ãå]Ý 0¹–QÜxHmŠ),UÍ<ÉѦ‘*¤—ìež„ ïE*TAœøÌ¢§JÁð_=Øe,2:Ec0 ©‹'ÒFè»S±x’0·Ðe€g›°O\ˆ1u$'Sz\aw ªfÈZ^F–äÆ˦¡äw©‹l–—ИQü%µ ùA1” §Í'ÛL’Þ“5ô ÞvÎÓä«‚Ò`øt›’­ôy:åU>Ÿý_çÖ\d;Ã[+¡U€£úêZ´ä†=jL`ûÆ!˜³6Õ˜lL}3µ’Â’_¦Öò®É äUWƒ Í*«BÕVâód®yÏ"‹W¯µÙÿ&Ðu¤©•E!íƒëoªU‚Ïx=*EJ«`y-ÑìLM>> stream xœíÉn]·µk¡ñv•‹á/Ë1ÞÆQë•=ý¶Lx'À*îôU½iVHŸoËçËçwåóÇòI»jð—v»ëîF¶x_>zëfÚÖ”Ñû2ú¬Âܹ ¡$ÉŒÑn«)èS…ˆß|”HåBo@j 3¨¢¼‡3@X‚9‚%˜Ò!‘åoÛ$†å»‚Û2z]¯óÂÉD,;)КZZ€›jÆMYû²K—·D-mÅSQË0ÖÜjM#GP vež«ŸµîK¶L¦Ö!ŠÒªÃÉψŠ~Q>ßP“rn8ZÖ$ƒFoºà|莾u>à_O.>;øˆo ŒuàýØb ¦#l,ÁlÈlü÷Æû‚§ÂT‘Th;Ü*k§x´š7?t Fˆ@xó¡K°Ÿ†7Ÿ€pÆ(²Z—Ž!Ø¡|"Ü×Ûdù²‡Û#Œø»=6ܪh¾9«© Þ: © ÊZI²cß9K>ôCwqM_—Ïëò³}œ[2wŹ¥v±Ýxç¶Ï¾+Î-Åqqn5“\UÎíÁÊ··s'/»G~×%r‹K¦!K•Áqkl <ãŒó›gJ¹†¨p¿ój‹ä,ôN ¦ñ;÷Æ3Aら Ï“ãñ¬‚lñ,¸`‚ï5õN1=O¡¨ÞÇi<Õ“ªÿÕ;x|G¡zöÏÿ«Q­×F|Bïp”üéëº‹Ž‚ƒÉ­W=E7Ïøü¹U–º=Íaáà¨) 潸‘>2àœ/§DÛ"¿Å½ôS•X‰æmZ§´ZXi¯aÚ“z°ƒ×êg%œ4Ã>.Úã(áÇ "^*&¿ê‚OŒxr gÔ,ÓÇRô‚ÞÀ¬v9oûû(AâJIp iH ߊ‡poü¶Þ‹*eLÓÊø-œ0*TsH:'§uP2Á*C].ïú«À¸á>Š!@ôGQ„ñ^¢ƒ‡ íûÒŒøYš/ -‚r˜íÒþú€õ¤óÈ!õ`—ãÌ@ôøÿ•†®5|Ë ­'BÞ§Z‡ !q–R€·¤çSZ‰Äˆ›«ÄˆJyá|â¾<çšKË”t‰ÍA8néŠx|&¹Llžùž° ÝéYæ]ZN¸†O ü"ª/ãFº‡iq¯”ª¾3è¢@ã×èÚ¸™”T0X©u·‘$ ‘µ†Ïë‚€¼¿q€£g8¨Pó¶¬ÑAÍYð&.‚QÁu’›R€‚€ã©çƒ`ùF,ŒØyäJ€(K\‚qŒ¼÷Hn¶Rs[„âz»µft2Ÿ}ԛ΂RQ‹0=åtʺt:åÑüST¿‘Π_B¬JšÆxÊó”ä·‰äA ¹ü —3 øjXïÊ./âZy¬P"DâÚígVrGqB*h9)†÷à$iˆr‘¨žÉé›Ó‡†©9¥mL,Ä'\… K.±ÓÎʹsÈ ~MÀ6IÐÚZÊmÉ#e vñþé•›tJ×YÛ´Tìo´&šil© •¿ð:âÔU]Ç‹¹ 5¨LÇÙT¾WFe,{´ˆq:WË|5ürwæ“RÀDóé˜0o‰PàF›aÄø0§Ü¬}â”l‘À£Ë)öód²éÙ"yÕ³HQ7¶¹Œý¢ñï—CI¿[ÚðÀŒ´m@©8ªÖžOÿpf0¿ÅE'ʉ^ÖçÀ]´45©ãrÝÈÁKPC‘“"àëIÑHÇÀAyW’ ÷Õ0Hdö‚Á¯(º‹‚“”ƒ[aXÀ Õzüih2„}¥I,Gã ôÞ¹ý˜q$P­äÔ˜|î䊳ÓÛÓRRE1‡#Jñ$^ÔXØT·sD[ƒ•.Ñ`6ñœ`ÁÍ!BÉmìÖJ<,'…j|¤Y~ft&dèÆ…¤OàÌ,<Ô«”ðzéÌä|ÄÖԉݻjwÜ/IÍ OÇ.%Ì K?5Âý#þ¶'0²Ðš_QA“`ļ`‡]Ð5){À„«°<ȈàÛ¨K3+»Ò÷/ë(C†k¨¥!ÃÚ·­üê{ÕÇMœ®ëtÁ4ÀU&k4}„oönÕ?Ò8f(ªq:Ÿêj? ë:Z`$:¹˜EsÜÎŒ»^Š¥iÓÙŒÀºR?uí® º"ð;àFU½¦ƒ&ͰX}W”Ï ê5E2rá3¦ ~ë÷TR7ÛäØ7ç?” I<‘JÒ EêǤá¾t^ŽÚB‚(Ù¦½r‡È€•Y°«-tˈD*»“1&EÞ¥_:­·‡v\òn!ëf RH`:1ŒA}V‘Sºž^Ä êÖTòÚ*6'peQYä#q¨ :,yÔKFsð¸ß‘¬2¥-´NÕqµiœd1Ói‚M-+eÙ”ŽwæGü»6„¸+¶âÔV7õÁ HAÃâÑÙ¨ÝEYQ:ÁÜ7^>n¿%¢Œ´XµRÉŽD®ŸôÆæ*:›4*«7„[jõ‰íJ:LØÞϰô WðmqÔ{Ú5°Þ7÷d‘¹1dPy_iŽÃ¥½ûV¶âÏì4ˆÁ•šè“×[Øuè],ï$USFžsSûñÿ[S£ÅB“ ßÑHÀo¤¶­4f¡IµÚŒlÔ” –¡Nƒ¤„¿hR¯•=‰EÞrGÜOŠQ#ÅÀÃØ U¶BÕIb‡ÇN0Ýö¸”fŠSÊÊ4e²RG¤zî ^é'±c‘ÿ°LYšz—˜EÏÍèsÚ àà~WnRTÔ¼ÒdÀã”¶}¥KF"VƒzT²(ü½{³X›Oá¢Åë%‡8Þø X)B/šÈkæ%Má•Û¬ð´ny:¶±¸žRܤvÙ@U @Šœô‡)¤*î%gÔë(šV‘¹A$%o¾ÄÿM…‰ä–lÉ•iDÚI½àtÊÏ’Ï-tàÙ%í1f˜}mªú2hý°ð,at½c§på;)ºätü¦Hÿ˜M%¸b¨ÛZw芙P²t#¨´Ú9:ÎUÚ\ø½ºM fw¹Ê’>ÓU–ؽ¹í™ ‹•°Æ§×ôÀ:ÂÈ5–`*¹×sÖä9‡èvÿ>çŽO§©x”Û¡•?2½MÑôÑ’ÒÂbŽ­K%¯Ó°ë—'úÆÃúòº“Üõ‡âj§O@oÛÒéƒ7bƒRMî—ª$ªJFµ×-ý±ñ{T]8˜š¨Õ°Ì{äýÓ*ï‚ýªÉ?Ï N÷R Zî–¥WF‰éXbÇwv!zÆÙàÜ©ùÊ„Çq­SÆu†kPÏX»×…éh=J>Ž<¨ˆ(¼_¶uÆ =&€R8rd§;¡“ Ú* ˜ä••óJ ïð~T¬#¸F$É„‰Ð9ï›®MnÇ«à¸æSW§F‡ ;éÀw²wë´DLɉŸìŸ´€6=jÒ‚†ðj¯&5ãê|4ùð1AÏunEŒï)££²÷ˆgÍ`Ûn.‘åg÷–нô¼¹ãm<ªkÒŃ£’=»Y#iðå ypÖhÞôWµv@ñvï ißi è{´´ÖQ.›Ÿ;Ä-äB.È+€¿ÍfŒ:IIb¯´^-“ütVõ¥´:««¼væÜCi/]nô®Ò)”Q—Z×J⻯µ’j‡ôæ{‰[pƒ,Ÿ®J[Fïõ«“ÿ×Ú‰Æendstream endobj 1868 0 obj <> stream xœí[[o·~_ý û¸ ¼ ï—×¶qš"m[ 4}u³Kr,ÅIúë{Ér8£•´²ÚÂÒƒŠCžËw.$Zs&ÖóßãË_Ÿ¯~Z‰Ø»ÎŽ/×8\}ùJ‰°,Xiõúðl•¾k!³këN­/WÿÜøδQÊè ;Øræ‚‘ÜmB¿[”n>6ÿuø\’+º¤†o”†UO`•×0X˜ ½Ûü±4¿Ã¦åFÈÍawÀŸÇ&®ñÕáê{\ȆõùÍJ3nÖ¿¾^ ïó7¦˜3ëË•zÄØónõzžW5á#¯‚€]×Ì:/¤}(Í£Ò|_šoK3nÎÂ,ÕØ7¥ùmi^wç=©1‘ïÖ&¹ ë­ð,x®ƒä¬·Â¸Ío[Á¸õZo®H÷uè{Ò}ƒm”ó~sAäŸû ª+uiXàr½UÈU"‘qQöqUš·[³NîQ;$—ži¹¶ÂK¦h‚äÆ3àÌÐóM€)@»ÐwÛK ï]ÙàôI¦¼¬ ï¤ÙÑDûkœv &;:íò„x³›no¿‘` ž“ÕE:&— |©3Î׆ò=ôG¾àƒ&°tÒ5 b*­QpÇL0Q̹òÏΛ^ŠŸÃµ`^-sáËWVY BȘ«fK¤†síãnæÀP m hŒ›‹WxrS! x”öŠIKu먑ף‘Ë£w”O #˜b ©¨Ù“y‰:É 7¥÷E…OÑÉ!ú}»:übÏ´^t?û@ÇÎÁæ4¢b,‰ú˜r®ÿU+(ÃC\B)ˆ Š) ­xqÛÖ{QÑ4оŶp,‡j ‰Ës¸~V&Re¨“;h ‡A78ea¥@F B0Ú€3`ó4Rj‚ö}s€\G±ÿ¬MËYkíÄW)C œù0ö<(C `½§¨’Ï—רÕHÉ9æ$™µR:PµRN‡]òf%’fhÐ4®’f(å…óIò˜Ó” @ºß)¿KÓnhÇOoÒpSOÞèŽ\$-ÍÝG‘D+)Ù·eèQÙ›¨ÂG1-³ÓPüJ Æ-ôÂü*³â°0lUA[/©… ½I‡-wÜ”õ–®3mÁçÐBãÒãºÊ¿V š.Áw9ÝátCCRâGôK±Û "ÅF^šCä’q¤¾1TäЙ1••î{¢Qsšvžg„bdJT’v ‚M‚‡íl>ÍŒ’šRq1£¨dÈB·è Ÿ«u…݆É`—˜3èÏ 5ž: å(*á„ú€æàG'±§î4BÎâ’Ê«B_î hÅG¬Ê)šC–‹¨Úµ™”~"§3Â-b`Ä,gÖ$ŒK)$á*—¨a@¬Tø= sÆŽö‰>›@ó`}y„VIv£“vò¢P B^áŒ|°ÞØÒËÈ`'ñVJqVÃÀ`Žô3è{‰ƒ5Vûj­‡Á”*òaÞ¦—ÆP}%<í¢ &›ò3>IÌnzžë´‹)—MôÒè:Œ Ã"„=)¶‡[ID: 9¢_Œ¨€+BNÄÀí\ÇÅ3Û$l¸µÐ §`Bà'eaÇ}e5ˆ^@ d¦)Mtõ9u#Œ_‚ïp¾õ¹;o–|*±¶‚Q:b㮱Ω]Ük×ýÏõ_sÄ5ÀB\¸§_Fr œ‰1Xõ¦_‘¹j`Ù¬µÿŽúÖ0·¬Àt9Â:ž«´´÷dQà#ƒ"sÐÈ)/`”K"™º¿vwŒ; *|ž@à WéÕ~b+TEçŽ!²¢L¥ðô"Aœ  Ýd,ãn¡fë5k\SXL”;¤÷­_B.ÿ^C2æµ°€™ vcÏC ˜  ¦`F>®¤ÿ×nê@Æ>:u0 #͵4þ°‚ðÖ8¡fõƒ•H!Y&¶6ìþw¥‹`AXóàŸ*T;#ééýàMÉ”©XCAhÆ‹QP?É“DR&¥UŒ×ãb®12‡ò`ÓS;"Ú¾ÂÑ(WAÎŒñ$P=%u›OÒhéZÇ^,hÎxªD!¨uÞ];urBš½l–Fj<ÙSÁ:<,¿„ƒÎ~ìyÈq«1hD8lÊî~¸4Á )™ãc"W{ðXYÐzVmÏ £—âG”ëÊMï’€66Ž•,iç *§Y­”­‘¦GÜ\*u\›õ‘l@±&µŒºi»éô$²me„$|£ö˜H4ž ¤Dkk¢‹­Ð‚Y-›CÑó [æSô¤¨1ßàù!fèÁI1 \˜d˜ŠëÜ´Ê‹=ÒÚISž¸gZ;‹ šëµ¼§‡SÑÌÏÊx¡,ˆŸ-ævœÌEÁ2t/Ó$gˆ•p ¾6S¨,W´r>®¦QÎŽ 7áTã[°×Äc–„ø1sÀ„ Q†eÍè%„ñig°6—ãÒ {®ó|t¤|•m+Ó¡\;Fxޱ.ž¶Dr¾dp®‡hü“K ”¨¡?B7«>‰Å:€ÏÊBs˜jœã‡ŠIQA]qFÁgçß$]H«ªåx\^-¸ã—ÂÏNNA¤É’†O÷WT3*¿Ÿ‚B‡ ŠP¹)saŽ™3P›Uo‹{ËîU`%Ëž=K’~ÑoŒðÿ[bD*í€ê XcÁM:F ŸÄßÛÌù? ‘]Êÿë`<~ÆÜ·› ¸ DNtXáéÇréCdöT„Œ¾OÅsâÍ7‘õŠÀÈ1è\&D€Ï¬Sˆ™¡©˜8 àÄÔy7e%j1oF™&ÕÊE®›ôhÝ+¢C~MShæ*w ¦’—Á¢V©ãF±a–Û¯¤Wƒ I¸øNq¿§K"Lê”(AÍM±Ñ!$ˆh~zO2†/,÷Ypú…Rû ©““)±[-Ÿ—âŽïâN†Ocè‰ò`çs%€.)›$e\°“9GZçðñ¤Ï•ëlŽ•JU]úˆt€¶~ƒÉ„_²X\YéÁb£Æc,Vuß!Ø…íÚ ‡rX¢x;^Li*K7éÀ‰s?¸&§gÃ"Ún]À4ï½¼<ðbÕº$;crýTTÌ|ñ~µçŽsÃy¬š\âŽ8uÌÍq›–ñ0ÅÂ28W‹N¦wC1Ïl9 ý{ AþQš/»Íönf*Ä–»™´rðÝr\›ç,m òÂ….Â(¤ÆAv®`%ˆÐ¤Ý¼Šº"%h½I¯Q¦û¿éz%¹‰ÑÞ5*>XnObì€ßy@ï,Ø|ý’ÎÑ¿èÙ·©bz¶¶Ç[”N¥±BêŠo9„3Ð3v<ä¥3ˆò±êníÝïÜÉ““Ðx©öé/QB…Š=½D9WoÉQ©ÚbéÛaÆl86Á™7¹ÅvãAñbM'ÁƒØnv CïWßůȱå$#F9çn'Žq6Ó ÿ#üÌíhÙ†~KÛôæÃ)Œ673·B€N Ñœ°Më‘q„‡ߊ·ÐNRïdïXsƒé®ë[`%¢)}’Û[/¬¯šøäëI»Ø’,¡c?G¡ž÷~pœNEŽÜÀ&êü~¸4?éûáá­°6¤gŠÃ[á¡çáo…e:€yڋ读“}ìéÜ.o…‹—Ú>ã[a­Ÿï­°ˆ¯Ky+<ô<â­0Lá¾~vUøï~+\X?¼~ëó[áŠó{z+ÜÏIŸ #>ÙKáÑ-îý¥°Ðæ—ä¥ðÐóˆ—Â0Öª>¿n^ ÏìŒ<G<õ[a§þ‡Þ ß´’ëBßÿá[á>ÑW¨Ãˆgy)<®þù¥ðç—Âþ±/…#¥Ÿ_ ïí¥°GÍë­‘¥<ó°”SÊÒôcs ¾_ý«ošÉendstream endobj 1876 0 obj <> stream xœíÙr·ñ•ØÇ¥Ë;Æ}¼&±§œ8¶èªTÙyxII¤déïÓcÐÀË]r¥TR.=hÄ4}w£1oVlâ+†ÿÒÿ§×Gluyô戇ÑUúïôzõÇ“£¯~Þ¯üä0jurqßá+.ͤ™\+'nåêäúè—õÉ1›“ÒÛõóã ›´ÕΉõ9>+í•û×É_¤„÷HÁ&ç>9 O×^8»þSyü Ó\„U–þ2?â"_Ÿýˆ+¿º¼=RÓ«ß`›ßq/Ý$Þr²zu #Fæ«£'CZ4ˆÏ´ðfrÒ×´¸,¨½-OËãëòø¼<†Í€RÍ}VŸt½/ç! ´zR È’¨ýöxÃ'f´÷ëWð¢’Ò*¿~¹'•äë»È=æ™\¿Àg)·n}Cæ‡á=,×·8l­q‚ÂÁ«R~Âpç“0f™Á¹øšuªZåËI_A£SÚIºœÐ:P$máHŸ`¢+uœ™‰+“ép[x×åÜy—î×áÑ8iºÄ–~ÄòtÏ;Ô3|}J¨ùÁ$Ð:› %ešat5#’Ïxe~áø¤9_m¸˜4¬ñ"Œ¿8Þ/'l³6 /&! ˆp&¤OÌQi™&«ÁÂÈ(-?F,„渌j§E3É¡¶Â¦ƒ^isVÀ5bpxÏ O\·Ä¼ã}±‘ ?`MK_w¥âmW˜îš¹QËŸmWWÅÁ´Ìô%H ³5nâF¤Ýi Y ´S̈ aÄuœlÀÖ¶¢!@g*Ý¢l¥âðšÈwÇj8)%˜ÈÀÐdÑ<ü´È}ܰ1,·`T(…5qóÀ\ë¶éÊ‚iÈ<­h¼áÖilT ­yqD’;j Lò òh%˜·Z 9‡ÉŒ°´ô‚ù¡Mà~vw»Ó2<×’_Æ–R‚)åv'w×¼Cz20úëzaE¢¦z…v œ¦ãã)§Ä8'öÀªÚF-Éaž¯MÈd€8k yLœŠS—ɼá¨(î"µ E¶¢0$Q–Ú©¥s /¦= Ö!kÎ#@Í%%ö™}UQ#XA0õ¿\N|²€]=Q]I[S°ßä~brábqØH¿‹ÃS¹­‘âütd™Öà;žøGУñWF^CÊŽƒAÈé….9ð‘ÄÊg yajgDÔJ4Ÿ2«mǾdÒ#³Áš ͱo7q¶QŠzû×}cø†Àx·\>›·MÆ´¶f‡·3Tú¨­¡ÂJCJ:‡0«‰gý2ã«hï6¢Å™=\D›—Äì´¸¾Ÿ´„8`NZÀ7yøóÊ€ñ‚=C‚‚ÜŸ¸˜G¡p ú®Ge(ëf(dî2Ìó2iψ|`Èfá—Cù˜JlµAó óà¤H~àç஽s„iýÂ) šé„äm~1´‹%ñ:ŠzÉ J¹2“ݨ&» Ñ¡ArO…µ´¯hH5î­‰˜q÷L Ô ã— 7ô‡1±Â~”‘¼Ÿã,O^V7ηSÒrhî(áèœÓ謀èÔeImS[…Ñ*5ìqÐ ³5 \5#7@LÃcb£Ü'Üj/Ðæ?¬w4Ô…E§ÇA–t@¢mû|ެí…)ÿkÅVCÁ»EØŒ ‰ÑœùÑu¬ÔUžËÄ1N…ƒ.90BÚãë™Ñu[:ÞTÁ wb§HY®T“åGÒË]ªH½_\ä@Z0­š02Ñ(þú»(ë ñ9ñ½ˆ;hK7‹MFh¨@ôá‘ðˆvÞ–€&SÊA zÙÕ¢TaˆN%7ѯÕáù‚Š9š „Ìî)áÄÞˆ ¬Õ£H9É·å|(ßÓÄ£…ÞC•UAàݩÆd k"`ŠŒ7 ÙUX2r•4ÒÔ-#åü ª·=¬OÆd¨þ4ÐòŽº ÄÛXõk?B7h†²_ÍñJÉéšâT«%Hq-GšA­<ñfNØœîDåñÍehô‹¨OS1Ýä}ÕÅÂ~/—X;:Ój‡ÜqIæ Jg1¶ÇØ!ÕéÀ~Œ z.¶ºwxÏx·Ÿ Ò)ò2êqj܆§8ŽDž‹ß|ñËú›c¾ßÖ©ËÀØá§•ÔŒ‡îþ•Í7-@`KÌ:=„q—qbË2$h‡¶'Y€†)'Cÿ()Ä?Ëã7ÝÇïÊã÷%aùºŒþ½—¦uóí`Kn>1é–Ô9âäL©ô}Ó]üç&³ãÄpÞ9âç2åµy£œ{YJ¡ATx5ˆ–{[ÿ€LõÚSkõl`­ˆqi¬2‚vJo ƒëš†Ò,¢Ù›ÙPéå ¯B.œ·dbLÛ”·%hý:òlPÄ<µÅüÑ)o*Bmÿ‡+%ÛR˜‚׳…ZD?MmÇi½‰¬¸tQjek¾í,´væd‘²Y<_”Ç«òxÖ="»­ ˸“:Ÿ½Õ‘×¼Ý:hŒ©¬ªešn}!µi-pÞ@æB2žQ½ñyš-w™ùÎ$ˆj\.T Ì !.Ñ’+„ç'ÉtåÝé¡ …rår¤&ˬ*áÜù‰y¿%ìzÍ}Žyv-nQ„™I‡åÍi üàâ’PT‡…ýü¤E« ˆ@!–ü¸åZ&‡hœá:T aŽqއJƒ‡¬ËHp|`Pž†÷ØïÄZëµ`¶‚A– ²ª<øDÙתŒs¨BAPuàV€íðJ9ƒ†Û,ÏzxH[ƒÕh舿·hQ^ ñpü3´5fÍ;m T¶:uçànÈt*¹x4`ÕÄ¥^3|.ëDæ‡5¤Ì[Ó`‚5Ë’öª©4%†­Î$¨5RhZAߥÏÄ6U ¸"ãÔ’~,s¢-ã “¹A+››7Ê éKˆAêž³ 1r]ý•`B­µ;t‹D-Xt‹-¸¾Ç+j »öô°» œjü™jg9;qkžÏbÇÕ²ÑíÂà oWkè+Ààzroì*ÊŽŠØ¹ðìU¥¤Fq‹g„œŒƒÒpŽU$6 †^v„iú%™ì…/×t=Þ1!ÒÒôˆ7wè”ßCPh4SÕ(ºP,Á&)ì`ï7ÊØhÛµËí£¹Šk¢¿G]ŽGü÷B¨c€ ¼Z‘NyAÆo èˈ”5ªšMzW€¹”Nz!Fãú‚™¤^Š)ˆ®Tá‘g"§˜»€K¤-†ññ'àþÒ;ªˆ'u¨µ¸ý>N€ ÃTã [Ϊs•Û1ኣí +² SÀi?ŒE¢ ‰ ])•ýàÌê$lÙ/f×¥9 Œ! %H9kçÑš ŽÞ_Ùžf0,ù‹|®h³mNÃ+fó] È?œàT¹E4úEçùü$¬®«¬tPi¦mGÔ}ݤÐ_¨mu&BXSv/ùd™Š[Gg‚ŒÏQs;#ÖÂì¢oˆ½«ù’•†êfãÁƒzýýÜ)7(#ÍaÇU:¨·¦M³aØTµ5‘p·‡=h"!š»u”8hÈeaìB‰¥™¤ Û#:b;„\‚? ±ú…g®WSÎ1œT˸’¾©,0;Л&šM”Ò" æX©ivKëA£žyÍæð~™ûeºl„ÁtËæX„åÓ‰!åj¼ ³ûft£>¬ËKuøÆtÈ+-&eÒY,Õ†&tŽçSóȃºÐ9l à¹âýÙÚ¶J¶F^ëWzÞ×yYË1ˆ¨@W±úq8LËÍœFŒê甊²†_–½&Ã)Ó‘K~0±ò¾ ÂPŒ‚6 ó€«Ïz5ïㆆô°`¹Äy.XÈ×VR!$ò\€û3<€çäÈ!×ÄgdúÆ0© ÇNÑyø´<¾êR¶Ê›(¾3‡lžR¤L"K dÖÝkû #ž˜äe}˜,XÅ$ˆ_TsÀÀ#¨4rÙò'¤”¤“ü¢Œ¾.£weômýri5v˜qµˆdög§ñŸ‚Ü7ãï33@À„>2ó ÝÆ=|½ë0SìÏÌÛûôô@ÌœÏmÈ®0•_IflR2naDÏ#êPÄÃf… &-“û"ÇdïÊãuE^!Á®ÿôÍAÍ£' éþŠÎ D=ïµÜì‰T_°åÙŽÚ”‹T‡g€ð*¸ü€<òàe oÍ0ÐÊyʽ,xq(èO¦ ØOHÊ‚4ò8Ž7> N Ÿ²^•Ñ—‡ö)Ÿ€ÆcpHYFÃãÀ²-èÛü›2zù? ¶Æ©'È#a†ìœzO@ˆJâªó®qº—¿×€½Aúƒ°Ø}¾8=hC¬˜TÜu'XœÊ_–×ö‰öI@·%ÚÏdØNL›VÑþYa9Þ»jÉÙ¢Ö¿iKvORµÛîh¢„«2ÂA,·ŠˆÆ ÖU"‚͸`XǸ?»ºh(´"D­¾âa¾×Mà°7 üÄt–¾%3‡äÐðíÖzžB)}ï•ì§¢ô#Ê=’]v)]WCÒåÝmTøê'#MÕm†Ñ·5Y6Œ)›*Ù ïÂ…z8¤\Zº¹UbQó`NÌUĆIy¥1I*§`ÓT´ºE!b£÷v_°‚Sí=¶ßytx½øG[ydíd…œyD¬eßô¾lö¿ˆ°·EÍ: Ÿ }7¸•žù•O/òûùè,ð}qÓ¥Ñc~^üÿMà?ƒQº÷++ç‡áÑAu Cd#$Ö7©ä1æ¤ígÑÐ(ýZag£ÑFF|ÿøå¥f~ÐiÏÙð°7´¡‘‹Ð£Ú Iç“–t£¼ýf’ÜLj QšmÿªÂ}ß}‚ÈÛ7¼Ûš€ž^¨‰Ùx¼æ`dxÐéš›„Zˆ Ùð_;^køé%HÈ|÷è`'ÙëãÌŽ.Jv.?ÓÏ,ÚÏ›³q„.C{<º‰çVE_pjûÆî–Ó¹Ïåeàë ÛdëgƒSùAÏ|óI ©º`¼iü@<ï^e)4ÃÎqçvêUÌúäêÍdç^Æl¦^’ö Ú§Q:¤HûC۬ʰ¡¡i·P mñÖ[Ð8…kWõ$ÄÎKƒ—£)·és§³6Ò¥JEì4"È\Ýü@å§ßõÚ4.*†m7ëéƒÏ„5W3îv JÕÄC%ëß…÷\b ý£ž› [Dg°‹Ñåýº±9ÞMWSiX­oÿ…ÙVÄq £|1¯L%á5+ómŒç}1ÿ=´í./£dêl{‡‹‚Ëϼ¥ž?„®ÍlYRWSè÷Õ[?†·—PÔ«›„aoýzV¸Ê¦DÅ£‰%H7 ðÓBÒŽÄþ'g¨N<Ï7úìádAá,ˆ`ÈòÕµ€·^ÜŽ´än¯®á'mä|÷|ávq¾ÛG×´‚õU}-—6?5$#î$+Xü&X.îDSßÛá&Nÿ6è²µl?Wî伄µËg|–ÖU–{ÄѼ‘þ˜ZΘ;”a/„­­…°½¾Þ§íT>Þ·O‘LXˆÔ.šÂ!X·zHoÿÁ.³ @Á{_…#Ÿ¼X4ÿ-ÝyGΓ8ùõn_ò „¥ûµ´EãGù€[Âäòá /¸‹òèçÇ9 øñè?O'7Iendstream endobj 1885 0 obj <> stream xœÍ=É–7r>·ýü u¬žQ§±/¾yÛOoäµO’b³ÙäÙä°›ÔÈ_ïˆ@f"€PU½~:( ¢€@ìÀ¿ìÄ$wÿ›ÿõîLìnÎþr&it7ÿïêÝîŸ/ÏþáÏ*Æ]œ¢SÎì._¥ßÈÔn²Bïœ×“ôzwùîì‡ýýù…˜ŒQèýkü¶Þ† ö×çÚ†I»¿ÃaïöaEÓðÂí>‡O­½‰û·8¬µõÊóḈŸ¢°ûç*L6øýûü÷oØÏnÏ•ŸŒŒºéší÷2§+¦¼O›¨è÷/h £Ãþ·tƒüéò¿'Îq"Âä4 åò% á @’6ª€K¬Ÿoóç/ùóCþ¼ÇO¨ôpÒe4mW‘ÀØIG'—ýŠn Úh™t ɇ…ÏW„<#œ §ŸØìÿ!èŠ*rÎÆõS[€>F9ËqÇißÄczh—ƒ1ä\çÏŒœý» {éógútA»„Âi‘r Z-Û}“øG+ïšÐ¹I‡L]¢×uÞñc}“GmŸ º ø«IK·»j²؃~ö±Æ }ÞÒÎÂJµ¿à°âá3J/ÌH¼ó2·%(NÚ…e‘û&µ¯›Ÿ5Рˇ€.P;eų/¤R{ ˜t“ðKšu K*¡5h†J†P¶¢i³´SÔæŽNÔqôQÔhñÌr°G;'€eŽ•·7OŠö¡prúpòqÐÙÉ©'/jõ'ù9€–ªô‰ŠYdo¿èhÀ¼fçNFA¢½üĆg[$˜s´8>N¯V&€Âš·´6î?“EÕ°ùušœ‚&[Jû<[øÓ‚\TÁ¢OšÎZ¹poaª–³gù„íi†R°¨8 ‚Äu—F¥L–®Ôc]6ºH¯bú}½ÉŸßåÏËæ„ÿXm9îño—gÂ\ÜÝÜ™IØÝ¯àYÿÔžÑp²Ó v÷FÀkÎoϾïºßµz™ÝoXa^öQÉûþcÖŸ²—ñnìe€ò Þdcñ U—=o²BàÃL×TîÞ…r²ª–ÛŠÀ† ¹¬õV³”+ úÄ64 ñ~ý{P=³JƒõZ8—oÍå窔Ÿõ› †{S… ´e´jt˜u)…[}DÉŽ[B‹€Ö½ij†‘l9ª «T¡F¹«4#Ñ©Œ¿¸•\Oæ‚XÛ[ÝÓ—\/_Ÿ#g) ýê)”r k:‘H:>ÆÆO¿Í£7OêӃ㠺aŠ1ìÿ 06KÞo¡I~Z%Õìá[ß:­¶j.‡| Ñ·ÿ;6œ„BɰNp®gùÒœ[ª9iYlÃíE¥ïWÖA_ÄjÐî¦Ç·8CN1ÄÕy°3à€^g aâ’º@åBe˜–¥Û<âÜ$WþYýÿOþü¶õÙÖ·H[#+•KÒ±’Oɇ¼rä¼ß>êß´ê«;s"}ÀŽ$3·0ýÌ'©HPW™<åû)s%´[“.ëä _œ-R»‡2j°/¦²3Ó¨À¢£|R îÓ o}1£á¡r_­Š—a/Á‰Eak-uwcƒÓE=®ãWLTøN ª?×u àµòßχ-¶°F7f1Ų›²dËø_'€´Á¼Ôó0 šÐ{æÃq…R¹×H§uÅy6«ß:¼Åû–ÂßÌ–Æ¿%¶1ÇŠ?._ _œKIØÍ‚)G^<¢Á™¨\Žxˆ4>‰`ãdøÓQÍç*Eæ% œíWG’…âuØžò¯ú)ÐúgÇd*I€ÓN‘Lôa–-½ ú©³ZÚL(è¿æD'yÅÁð5Ya ¸æH,ß줆˜`2mmÍ(ÙL®Zç3QJÆß2Fáãœi8S>1x`Ú„9e&æ”Ùw8)€j’v Xq²òËëåÁÃÙä—é•j¦À‡AZˆ~òª\œ Öª[7f ±SQiqy/ û×’ã7*AI99q‚P 8¨^E1e£„Çðë~ÈP³„!TÏýÛšœÁ#hfþÚž—¸ DR±œ5-j:•ÖõX|k ù’ÿµ­…3.ö¬bSL1ñy< þLT¼‚QTH×ÑÌúpkÁO€4Ÿ±¼í[&,oG)§¹acÁ{2OÂLVÙ*¡{BÔ FO§ZªbÔÚ¶ÍG–4pIãe¿žB{®…¢:_CzXt/ªl..TBÆF›‚fÌÃiÏÞa9Bnfø«’ë±FÑ6ýRâÑÆÙŸëtE½Zke*^lÖWèw`Ƭ«³û°³&6(I{AÙã&g[Å'æNس˜;¿bîƒÿÁ²ò5ÏÏÀmŠ÷sC_' JvÝÇp‚a§˜ikØMô”ŽÐ`Ä'þŒ ¡™] 8¥ O/4بŠzŸÍ¸ˆå‚ÚÉ›)ª5|Q™ôy×4SŸ›éíØPØNf³2J9J ®<Ü+Оó/iw‰ÁúI¦Ó(©u²—iô6¾¨æÒgR ñ‹Î ¥ß#¤A€T™6xéCIíÕœH˜?ïòçuþü\ÍMx»ŽÎö|ßßÔðUÇ©À“Y”«VCðô–äÞ1ž^)‡ì¤Un” Ñhi[¼‹’_ð.L6“ˆz/ðSMA× |Ì2 U£ÊÁùÓóÌ–& Ç3I0Úsš„¬™$ëë2¡AÇa\å5ãõ“a\Ú»ãlnajÒ…À:мÙOÊTÍ:yã—iµqŒ [Ù`EQÝŽ0sGsxtOK.¨eðcþ¼ÏŸ·ùóEf“•dVt½PBŸ`éÁWsÿ@·6åùãÉŒT‰ ª6:*R}@mèŠå #gEA¿«g×Üÿ·g—¿5Ìe)Ý;i'‘M¿ t]©=è.Ä_ºÉºîÚ½ºã}‚\(ýòÐ*9ß”ÑÖk`h‰H—[j)¿+̨Å~ˆÓ‹)Ïñà¤þ]OÍü«”=ÿ.°ß°ý¨þ]L› ™Göï>a“¿1qÒÍ8gîu D‘t ß—&ŒR6X5‡ RC/ÛJ¡\ÿB;Žšíeo:wvF·o¬£êNÚGˆapÕC(´Y«å ½:_¾~™w¶ÆN3ï»ë•@5Ê:©=u8¬26‰úÿo%H¸ã3¾Ä #“¹òÔô0’PËav§` Ë‘qPØdÿq'«ä ­*Z­Q4ƒƒÌ ÌËã‘Áü©]ÂUã_þ4Î[Ju©Ñ^ÂÙê>nì†÷Ã"hê—­>wd»yk jôø¸–ElÛª“lㆬŽöó,…åg{ðÕ &\Ù !ìnÅÉb058vÒ‰¦®«‘¶y„ºÐë·»™ÏíW›)¼¶Æçtú„Ö#y;Ìib'Ð&XälS$öˆg EÊÃ/DòR^NÚ ±ˆSŒµÇ&‘Å¡J,pa[õ¡2èzé»JŸ(ìõöAJ£¾6IÚbŸM%±gb?|µEIGÚFûÖ<þI>\oÐq4u@—ðiiº¿K)MÐì>ê–(–Þ¢Aw½§#-á2;$!<»¿PL¯‚u qËÊû™‡ r ‚ (Ž­\.Ïrþœ3›NOl¼TXö­ï)8€ ›» ƒÊVQyìV¶œ.®Ó=¥¶þª•­›Éýà}[†è6¢TF½Îê…:››a§Sg­;âO5ÈÂûÌík×ÀR*ú/gW!æÉ%Ïê0²®`ã-‚pt[ƒ ‘¹‚ýûó PùFoÅ?ean¦í$ˆ•êØT*^j“9óÊR©?ž3Deg긮Mæz«§¬¸àº9õWš±*ÛêÝO7HEa}V€ë0NEᔺwšïûkš´WöG·ºŽð*§š{*Þ†ˆ7f»ñ%®ãÆ|û÷ä¾@XŒÃÚcB»­S±+öx6·]…êDçíZ*EYiÙ‹”ë}öa16+RnblÌ™ Û×L4ú6ƒÎX9Xãw°c#J¹©†t9+u¼8kÉÿ°þì«4nÈ\T«rÀx[ÍÊ¡3n@wJy\+Be°ð§`ëîSº!7ÞÒ`³kQ9èpù(A »{%Û»?.0o=<hrŒX¾ŽÇÚEôR妳kUøˆz9îßDªºVP+žùÆÿ*píf´ üR(îžî£÷Œ¥±2sœNs{f àçQ´`’Ú<Ã{)Uð°¥8Í+xÂ[ÙM±G`{z$cQÙ_›§e,ï±)éh‡ œÜ…ëh <§ãË+0ʼnâºâ w(‡ûe®ª“g„Ì›Rô…ì&Õñ,ºfŒ¶t!â¿qX!mÙ[Æs2L¦ÒÉ\4iJê4é^yÜ#CTéͳXË>é†%Ä*XF/cÙïK”¯{õŒ{¿ç/Gy Ph:z{Õ¶s4„ÆsVKlŒ3Œ*Cþvúb®·ú1뼚Uô#7ªh ]­.an«²,/Køƒô¨#–™U"ÇŸ‰!”ŠÒ‘÷Ü.EÚZ©ô삹Z(/𦠉©°§âxá)k@z ¸8'C|´ø` _ƒmCìh"cm¯$ÃÌoŒ âHnÔè!ŽÅ§¡‡8`í8Y½Óx@ùÝ;±0²<àÑ XaŠ6âàÛôêÆÁ»Ž¬ó:׿kcÀ;j…"ª5@¡(ØM%ÓðªëW%8Ï-΀'Ò§Œ›6t B8à"yýsTV¨j €ŠÃâ⣞Ü$Ž~Üz%¤vuîÒÂFÇ^ÝŠ+ÚÛ¿®\*ðp½y‘4 •Y ÂZw”lS÷äøðna¾W_ƒËÖë÷o©CÙžÛµÝàiˆ^¾}Cupìÿ¤×Œ XLëÀ§‚ÏÒèp¸{F«€ä?iº†®ÒÚ¦ÏCuXÓmàU,L=,¦ŒyûÍ8Eœk,91GD4ÝG˜3û˜Dß3¼`èñy«Ü,wð}ÅwyôéßW,ŸS\Ž>o¨Ðâ†cny$“1¸åQ' ºi(§b#G}â«p)à·•C“#©Ôˆº~Ñk¹Åþ+Õñ’‚‘?¯…5"pìn;âJ|2+½>é*ãn¤¦D|óµ†N¹„;eãWÞh ¡"e*K‡ ²›@ ¼F0RtÏßç3çóWXÔÒ¦¶Y²·|ùäÉ=~#+OŸÇ›õ³?Ô¢xÜs!ÕåurÍe÷ŠÇÜúdûoúÞ®,RU¾0ž@CØïËŸŸDؾãÖSy©ZuÑú_‚Oá-ƒ[ÕO.?B/b™vß8ÿX©ÁÎw2úXW4àýi Ê(w"PHæL*84­šå:ßR*¼.·ÿ–7ÿàÔZ‚{,ðŠ+ÌU [€¢ âÓæqæ5#^àºfk>רU«š¤oÓáIysŠ6”tÆùYXqCœµ¾‘¥¾U¼}béy˜æ/É]v€wYìɧ¼aã·yñ›´¸O’×Ù|£Oyq"ˆ:*Õ[0í¯„›Ý-¸êdLdÀwzôÒ'›®EÌ=Öo„8|V`“íp¯LŒÛ«L/ î¿U‰ÊŸÛ¾aÒ¾B%À„®OänýÍ3¡=ÕZ½· Å]:<œƒ~iðÝ{Ã?3™Å õœ÷ÀŰo·J3àE@Þ÷ÐŽTx]qMp=æ­ÈÕ¡”^šß)4&@ˆª‘p ÃËÈbTXb i j-¤•AwB°™ÜäV5½ÂvǂĄàêë<{!ˆx½Ýmبþ É£lå]ë§Ä6!Þ\óz”‚fæ¥'5-HX§hLÚfæøÛUíϽ§«hv%KF"ûo^ºu5aóÕ(TÆ)Ê}×b ¬3î1Þ+_ó;vé="ŽÐŒq;Ýs÷ªÛwHQpŽº—ÝtFjmò“Ë7¥ofHÔ¸ä5“åÔk™iùšói¯môû ‹ñr¨£žh^ZW«âˆƶú_fF1OGNk²´”NN6~9g0e–‡f4-¾WšyÂf”ùNF5gÌaFðì!\F’ÄŒ ~"®Òæ07]ä¯ë3šÃä‡~ÝœËúÛ9/Múöýd4tªrùbÍIÿ–-€;tˆßgJ`ÃsÚZãCÚoJgã&¶ Î-¥°VR¤˜~r^=!§@\Ž*p'µµp,à%l˜1ËÈ8–î ¸fÃþÿ³Ê…©Ð;ÞZÞ7éqW"k°î)½<±?Œ‘FPwþQ¤ÑøhZZ"“æ§’fV Þ¸Ö•³bŽ3¡¼rvS“•o¬_êUe ½û<Êz߬£)ÅmüR°IqŸNOŸƒžJAt9=ç‘ÇÐ\ü½öÍ¿;Ó|¹šnaºC é †&â¿‚RLyߤ÷Ë¿GWšg(ÚE"v¨¤nX=hÓFA'E¾$]ü"xÿ•¼Ã¨-eZý )jÑ"bï.k£àþ#÷1yŸÃ\ÒÙSG´ý‰„øÊ³»°È÷S ¬óg~‡a5a:û?ƒ8Šendstream endobj 1894 0 obj <> stream xœí\Is\·¾³ü#æ8LiìË5NJI*•-Þ¢(q‘Êâb’²Kÿ>_oi¼Ár†ÑŒ]>‚ñÞ·ÑÏ )ÔBÒÝŸ.äâüàç•wÝ.9:øó:¥EÉkoGgåµPÆ 'ÍÂ#T0‹£‹ƒÿ,¥ÐÒ˜–WR¸àbÔËSZ[—lüïÑ?Òà;RK!•Ô£Àx Ê%Ãòûqù†–^:¥ó%ëþ>,鎿ü@ù´8¿=°BºÅ¯xåë•tØÚF·¸ÀŽÃŽv>¼¥Åñɉ„O+Zœ¸ÝŒËãqy=.?N (Õg'ãò´ ÷û&0vöøü©"Õ‡“Na«ãÇÍáJ é]JË+|h 6-¿ökÔò®°W&i–ŸhmLT!./Ùˆî}50ÑA8¯\KF¢v®;a´ªù„LQ-o D*¾ºq$ߢ ñ2HÏñæ8ÝÒ:uìñvA‡jŸßtÊ@^²[ùU_ Ñ™îVê.Ï ê®…xE“ŦûªÃÉèà—¿I¬Ò-$"Î4k¥œ)éÅJ§Ö«§Ö0 MFÀË( )S€2¹þﻨR€*¹D„ס¨Ò›¦ÈŸŒ¯é„ƃ~ƒ*]ŽÎ7K?(¦L¤N˜VpUà¢ÀaâÒ}jœ%f‚w"*k .ºÈÅ•‹åedf…ò„ÀY€«\·¼Ï0¬‰$¨½f5eGI =²=®æY°fj˜a»kY³&Ý­Ñèþ:1¾»ÃNU§WÚÐ0,VpNÇT>û1sKë¤|Fºù(ÄPA9ÓqËG˜B‰nñƪd¢%‘ƒªy#dÐÆš¾‹ÑƒæŸ3èä´  vM–›œTmuTXCc pøfoÚ¨MzL»Çè£6°Ùî^×VP^smY®-§®ít³âfåfǹùÛ‚É·q)i¡`µC9£í$À®Û ÜIí Lؑڌ·ŸWž°íã|×ýc ™›ãî,dõ¸‰ÇiwöááþÓš+_Å÷çý'"­ê¯p?.:ý ssÙÄ”Ö-Õp€X½RF è}quΆÂa~åçuŸQägî·;VQ\£=T½÷¨ñp ±`vBÛª}BÛM‹aqÐØ§ŒaÓH`.Ú€sL"¬†¢`…gÄö™ƒ`æ¯.š·}i:©ÓÃÚ~LÙkˆü&AÊ¢H1Åž1£?øZ´)Z[ä¶Û¾ùͶ;—1ìT¨“‹û\‰†U–ð$HÂtH¦ ñi|Ò%Ý ª-|ÐO(@Z"X±zát²Â’«DÈ—† ÈŠ¡íý¾æ7*A+/µ0Ø}·lú¨«&›n+Žy ‹ý&Ž•åŽe|ŽRpØ’‘c&AÕaÊÁ1€€J5Ç^oˆ2‰®Çàc…¨ÿ½óÐ.¸×™ð?UGð€ƒ±a'Χ¼Î Ù…gãîõ¸{7îÞŒ»¯†ÝâVð2kV»•'d‹ƒÚxPPyXJ¡ ü7Õ#ú]ؘ18A°ïË¡6)ÄCr( D3×¼L-¶ÎêEuäªÉ·“©5~¾¹ÎO>íC ¥5°\ »]µ0ÃDêÚ)á[þš±…^Ç#ÚÄN®…ÑÛûXt¼;ßÖü4Ò ³R¹2ÄnlÛ×âÏ›8›ÈtùlGó°Äx͵%ñaަ‡ ù4ˆyuåhNš€ˆ÷ãòs+ðá7ßLž±†; 9n›»•šeÏhe剻9™§ z]äF#CÖk‘ƒ”@Á¡¥ˆ¶¶ñÌÆ4õ`ÍšHH]rk²5©×bϤ6iJi%•ð*=ŽÒÛØíGQz¨Xþ^)½I}™žË!Z$;oRúæp-¯ N›è3ñ)ð0ë©—Š ~’<:’ç:jý5'SÉ8™fJq¥’adJÉóŠO·xJÆ‹…ü ËàºÄy›n–™†BŸI‚JAu·æ˜¢’^R{¨$ªehDˆ¬)0+bvvì„Ù ÁKÍà8­Ö™ §› 7OÞ3½@B^yqí¾ä…¹buÎ, 5‘=_$ÉdŽòÒØNtý¹±S÷}FDð¼­Å:'¬Fר`Ò^"ä%½ó%=m™áÆ í¦¦ÝãpS±h^‹§%Àó‘†26^ÿ¼f„øH­’RMmT150ã@8í·èüô•VCíœðtŸ$Œ®…િ%nÓù1¥‹-Yv½I}ÏšºµkççUyIJ5鵿5%:ï^;iÕMŒ-ñ×H·ŸJ|¾ÞÝ×5,µøAÔç˜ÊZÁ_;þº4ˆK¬:̵reqñó™¶Í NH9¦’¯”í%Iû^’`“ü\•ÒŽåëÛ‰pð”4»®ãæ©LME±-SAD‰ÈŠ •¢VxäŠÏe‡H‚ZÍ2o]`º.·³D$\àBÂ[0·åøÉ¹î—t®Ÿkˆ†ÜPtSi$ÉÞ$ü’<|Úð¶Té´ÌóEú©4ø‘Ô”×LÜKŠê-c_Ç´'/ŒN"Z5Éc6 Öv“ûM]ôU÷sÿ>¡zC‡¢ôÚ¸ÒB+ÇÝ\£7š=aƒCtœ‹ÏRͤRIc=º¥aO •xB¶o •ÑC­mõ¶ò ?(ovY¼M{[¼&7g;\· Í„ÚWs¹Ã‰Á>+E Òdåð)W€;±›Äh…»aÛÉ&SÖröYÛ}^³Xòc­—«³Ú±!U9Ú ¢HÃr±q4ÇÎ6‹çdäSÅ2în°‰dÕ–~qÙe:Úµ´ó¶Z;‘eÇ• ¸\â¶-7NO·¨I”AH¬|%s|ÒŽkŇûeƒ‡Ê}1N-šge\Ú¦QWÁï)L#ÆÆåw3TihëÚÀà»ÃÎ/àÿJ?±¸ôåÌü@À-Ú”¹%š²|isKVïmnIGï…fsKýÆ#æ–‚"ògž[ÚW%ÂA·T£ñ¸i&°Xxghš‰–Æéé4$X(«6é¯ÕÔÚOï±âWO·=çÉöñ!¿ƒ• 0³>´âîìR¸Yü0†Ë׫b£ Ý’uç0‰ ¹%Ÿ‹øùšfŒs{3mQ,ÊR,â®á[6p}[ySÁÅÀea‰àQÖò×»Êt2ve%4>Úå?òqê†Ò=ИùïÉØ6¡´ª;â<›{þMâëŠ2 ­lÁ…MjA°›¹ä£µ¢÷Fa´í!¿*ŠÊc<Þñ„¦’öC%HÕáÌtûçeM¹ÊœKË_i¥`¨ªgü2Ìüµ+„%bëžPñjMÏ×Õ4%E1RÃçZJŸ#»œ%ã/1Vº±N,Jfx¾ó©-U 5Í‘Ãׂ“^K·D–¶®ôrØs~Nñ\lô̡΃¡‰=04Ùl•£LªÝô¾âÉfÕ`@’Óô¦0&5?}šîÝ죻±Î7o;í@Ô™îÑŽÓ‚„ñ¦*R³CÿB߬J朆å,?òÝŒ‹©æ^é-2Ô~VŒ@æBÌDÑÜS¨šaûYFT5|AùiI7¡Úmì> ª)%ATù›SËËvÇúî°7³ª!®_=ã0k éÙ†YUHŽŸ ³ö;f‘»ÕÿÿÒVæ‘BzîÁ×aÆ!s×âïqÄÈ]«()´á.@ˆ<ÏȹûzʦéÒÃ_·™¹ûv£¯îþÞ˘É,$‘?‚†Ðf!ÍBF8<€~g—YȨá3!¥ÝqöµÐãÓH¥Ëq÷¼¢’3"J½ib™¾ö'¾Ýäë&–{¶!Ns¶u;aB4k;}úwÓ<]®GyÏç¯ÚCSŒƒïBFƒ ÊúôðŸÎîJF$DôótFÆnç1d´Š~¦´™ŒÜj#’2›g¸½CrKN‘Ù†̱° µ÷[ g˜ážq(:9á¸?);»C„±‘p?pøïEŒpãqÉÅ?F¸[n‡M­NëžÆe›+/tÜ{=‘ä[»Q¿º¿i§¹{ø^˜ØíËm£Ü­yy?pØl[v5ã¿ç_8LÚ¹«üt@°)÷0ÑtÙ ˆ—ãî–þpð?·ݨendstream endobj 1903 0 obj <> stream xœí=ËrÇ‘{Fø#æ8ð½õ~èh­Ãö†#¶p³| 9 ‰ PL™þúÍÌêGÖ«§gØÚ ‡jk²²²òY…Ÿvb;ÿÿûúÅؽ½øéBÒènüÏë»ß\_üןµŒ»8D§œÙ]¿¹H¿‘;)Ý`ƒÛ9¯éõîúÃÅ_öÿ}y%µqs)­•°rÿ€Ã&Z!õþ5~kctûOôíBû[üôÑ*á÷ JpÒúý#~K/­ŽÙœ{€n¬ÖÖìïÒtµúëõÿÆ*æ÷ôjw¥ãبÝõP½Jhýþ°Þ† kDÕF,-4‡¥äàŒ‰@ò=‘6ªà÷ß.Ÿßá§Ã¥h•zÂïçO\ä·×•\ܽ}¸0€ãîg8‘ßâÆ1ìœ6zPv÷F<ŒØyäýÅ÷ýsË1ŸÏ-úÁ ƒ ©T:·· nŸ–Ï—ËçÇåó]¹Q8ýìg‡åó¦ —Qâ~ùüÐ\íoËç㲃ûÇåóvù|(~6»æ-$OXRÂÙ‹iíM,ˆC€ê2q¤:q¤ÖAúØpœ\d¬„2‰ß^8w+€á”P‰ßÇ_þñ"_é†y@è þÅÂ];Æ„ý«ôË µÞ¿OxiåqÑ+åë@€^_â—û~Ú˜' T™öŽ2u`ÀøÒlÊ­a´ð {%£¤p»+©` ã=G Y¯üD!ÚÛÛË+ è Ï©ò&Ú qg: ¸'íá½Ñ@dNžqÃ^‚:xK0 ˆ?Á— äì‡ïÒ*>ØæÚ&#|¡éi=úÝêzt¦ãzôÁ¸TÈVa@8¯qæáÓ9ؑ܌4òÁú*Àflà{ÌO˜ÁȨ»|v@p T«Ï¦ÜTò½"F‡ý—„‘ˆA¶§qƒŒ³˜U8o mä>ɲ Ú¥ŸÑhS¬ Ð[«i¹€r4ƒ’~"q6ç¬[&2wlĮ̂¶Å“´#Í,P$A…0åGI°2áp_±Œñ~4f{2AC†X!£4)¾‘K"Íb¼Ù;oÆÔ_6 Äq’QŽ®d$Ú€q'0’4fÐVN'ÛTôžz\á©âgmžòC>0¦20d…áÄåfà6¨—ª¿æŠQ3m@€‘2¢@ôO˸L@JZŠÇñ8¤/…XÁ»5 _jß1'µ­PHè$!ÆrD‹×Ì 0w‹,põy‚ЉJ Å' 69–\1¯r‚d€GĬóî›âÐvÎ>^¶¼¬câ©Ø¥A zßµNgÔWiœzv°"Ÿƒl3ã?}•qIKØj«M¢ñ.¡ëc.iÉÖ¯ç$q|]ó1®ÉÇW#iSîm‚ždÆÃFµ)¬ÊÈÊ!{@g—9—d­¦ˆ,¸%Jå‹Áh”‘|1ø”°ÊgZO‡Ø³V=Nÿû„žš”>'DOG~³Ìo3¾ôàyÎzùýöˆÈ0¾ÚÎø”¾žƒ@Îã‰~Ëi_‡’Öþ¥©Mg9Aj=*~®Ž>\¿HøÕ«E§k8ç)d8í9ó¿^<’ãiWNWj wøý˜–t6ûóœPöˆAŒîùbI x¤Äçb°BKƒæS†Ò—ÁèÛ˜c‘ÉI:gŠLfÅ…î…‡ùR¯ïNRÊM»ãsz»{H Rïr1ù¹­ÜsØfŠ|üRi¾ãܜҔæ„âÀ¯‚×—¡yW*]RÎ ˆ“é=’(ØÈ—7dSä,ÀSS±Hl † Tº²òp »9x¨”ÛÕ„WW¯(¹”yzlê»—…¾[UrÒËÙÏ®©,öUd”GÂBÐhè‚!WÜWÌ+Ì…èïpVNi‹çž”[†»t  §sþÇÈÏÚA{¹ªo­"L©½qÜÚ¡>®b4„-â?!òÇu²ÝY5 £ðrF•«/n«§L„qIÄñëÇtb1¸ç¤^aÇ`0ÌÓà:pBËOGëb7¾çÂÍ#£5—“8ÔwƒªWlÇeä3!››¯ÚH!{™¾BŠƒÓûޱƈh’IMa{¦AÂ|O=f»ÍŸûŽˆpÞ>,£LØ÷ª&γ‰Û HÁSDºˆÂIù”@âŒë¸Ðes—¿ág—œÅi¸}—Ñ—–pá¾u}ââ³IDŒjÿ«lIQÑ-~p%ó´$'Û—lÂE7€ÁެŽ!Žle²)Ìod²+aêI"F¬sûÖ#.' lvj)î¯N®Í e4!œ†`NNû"z6>]QXÈq¾ìõ(8jñ ee ÖÑd7”NJ_Ÿ¶({Ï6ÿF1°"HʈãÝ«£ðqŠzÐÁÊC!ÂTZqØ$B—åœëÔTŽv.ŒÛ¢É…µÀNÊþ•qáã•%±Ë-AÚ%–&Šm*ɉ=7ÎïqŠAOñlŽPºäZTsŸŸŸHkyá2÷áåä€pžºI€­2…¾ÅQ·®Y釺§Y¹¸t≻ ;šBøÛAiÕ57má/ùGSxZ˜ Äb˜-ûºÔXò‡ ˜žØþ0ÒU«Ž0V/ò_é<ä”/(‚wâŒ|Á숼XæRB?Ï ¯Pn†ÊI‡Ž„P¸FFÅœßæáQ6­UG€Êuž`rµ2?Q@ø©l…3—%Æ\ïµ¥ãù6¿?¤]šØK­ùB*ª^š«a.¼âûÊ÷{H‹ê` «{°Âf;kîÆÜ§¹Jž˜ˆ¼ý#5h7ÉÅJ„ðqm¹×ÜyžøçKà´ï™ø4ükšžÐ‚(ÌÆ}fpu$I³Œlò2<ºP´±Ü’ÔöT‡Ó;¡3;Ñv pohVÒg}G~—éT!o³3É )ç]ºåXè0j»úç¥<%ʺ^4Oz`ªÃȰ»þãÅõ¯ÿ²ÿ þ«‚©ÖµX¤LÓsES0 ‚£²öˆ£J˜çpˆ6æoBa6çÙ?£ë¢¤˜rAà/ðš¥ÁгŸœ—:–æ!¡QðÏý„Üj–‡( ’/à \ø38=@wªÓÏsOX9j5×?aµ%FH^-èm×HS®t0q‚|†®*SèåÖ;«RátXÊuÊûXÒðô v2øG±ƒ-8ø15Ó‰íæåZÛ' €ÏOظƒ ª.5Àè·\ލ?‡óF{¾m+r7hžÊd¡}û*37í‹ x?±û«¦µd–•EOŸ‹¹É†¾_7œ^7mËö9 ‡Ä ËD&0R “Ù~Œ^DÌš µWTD›?–ÏÇåónù¤í‚pi >6ñÖàÞF3ãýŸˆ_ Цõ9kSv>Ђ:;ÒLÇÔÃ=Þ,ŸŸ— /—Ñ÷ógZØxúÁE5û²ÿ‘ðÄf£æ¶ÂŠ9ÎÛ’ ãdI¾¨ Ì8Çñð~ðqÕÉu5D‘u˜w$¬Y]Ñ:¸x8Ët%A*YjÜ‚÷q}—xŸÂö«NÚ¸‡ùZ¥œ(þõúªUÆ¢Ý+Õ‰tîf *C«=žuqÔ\‰K°v–ŽŒÕ·Dÿ×ýÞ¨rMA¢tÛ”ÀÇåón™À÷S!µ¦€p¶Ô‹–øÁgÁe¸£!èófù¬4}¾Ÿ?Ûø9¬ØÎø¡œ« ¦ˆAîS9‚7pœÆxëG,-韛Ø~Z”íã2ZÑx™»²‡§ qI·‡¿“i\já€-Sr«.Ð[Ñ 1üÆR%þ\qñà QX©Ê›I_—kQì’²àèj=^t!G·hé8¥×qw< ÈF{ÙÆ¶s])ðÆÖJe¥…Áø!Fž©ŸV…Ÿöíµd‡ Ô º½ à,øéÞm(¤Ï•2À|G”Ê o´‚°C”I»Ý‡ eÐÇ óÈe0 „náße…4k¿«ýð©ŽðVÛQoviª†1šI;pqk×ÉÕ*.ae‰˜éVöà7X\Sƒ–y‡1Ã/É£[-õÊåxjžÓƒñ±çù¦"Faºô»"ÆA±.rxêåÄÆë8¼G«}-%W¢ÌDµ)«ñ"µyHs¤ ÐjÿªI‘&¡Ù6ö’J3¼ØKA1ÐëWdiÅ‘0ŸÛY±á(·õéªbuk¸CŸ¾§žz½">èpb¦aCd·©ýœl>}×}] Õ<÷Òá8Ì2KݨkÙžÝÖ×Þéü:$(Þt–7 몂"-ïÕq ýóÇ8„¢‰ÏÛç‚®ÇÒÔé´ŠÕk¦&R˜æE¨Êg(4QQu*·©) &²Wž‘±BÑÊŽëVu¸ÈåÎX§-ñqìÌ;šM¯z‚NèÌ+/URµ õýM¶è/L=Ü­~’J|êæÇu#ßè-™nùi9§Ði‹,ø*í'lì]ÆXZØX´”aN߃ɄŠNgý‘˜yUGêtÍlÊö3ìîh#Lž¹œ»õ³½NŸXà:ÝSXîå•ýí7hEòЬ;Ö©ÖrÚ°?+Âä烟Æ\¥ùú¢œ‹Â¢úšÁ#œº`eÍcÁ£m–þg‰Ñ˜"õŒRm%¿Ú‹ oR£¡«Ô1¶ÆõûÛ\üëØF AƸd|[þüMó³¼É™<÷ 79Z¹ÉiKH79ᨿŒ½–²ô2‘îÈ•J¢Ý¶¶¶¦¡Z¿™S^9)¿Uw% •µ»+?GšþL<®²{¥Ž?5GŒ0>AÇ^©ÃÓ°/J8ð´½ÂÚþ.Ç2ÔøD‡Ñ~ ¯]ÄŸž«›;GŸ¸Î+pÄôNy°Î[™Î郣gé"‚ËeÀ å*¦‡þÀ”ï:7îõ’@°éå3XÏ®é³|ÖàMbµº€Â‹éðg¹œHXùÌ_bNÒCZ‹·“¹ÉmÁ“ºëÏq'¢zcÈÝ( MíäR¿9Ë—ÚØ(Ì;4^ ´ö„gÿªv»#ÞÐÜZŒUØÐ«ŽFTœ$A.‹*G¼×” ÖaK'Ðâ4Ý z•„ê•¿Èlàt _²îÆÒkí.è=á…Ç¢2ß#iD*‰’«BÄ’ú„.lVU´$¼!óCr;6c'lè™`Þ5h‹À±1yô¶’yÈ_ý#Lù’&âÄKžïÁñÃ0˜`÷ºá0û¹­sl5‘nŠNï[Oßwé†> {¬¬×ÔqìŠKÄÞËòÖ "jD8Av[Ý6G£š²G qm·r±³?ߦÊÔPÜ™<³WôQÁÞ0õçD.Hð|¦– ‡Wg6‹üŽ… í‰B„~L¬Š~U–ÁeU’‘ù’¹èÌo+5Zé1~@”6'Š·"º©Ê 0¢"Ò'9¥·’V˜[)—aÙžaæá¦ƒi`¢6J+'ß°p@f§¤ÔÓ #r9놅„m!„€ü+*+¿]>ÿÞt K_°<]ô‰ñ¹°+‰U°8;ôKtð%ñ9>*qdžÙ×üIì1€Ù“ØÇ >ºÀg°Á-ð!²Êtå6ß.ÇjÆâ÷ø„œ¢@bÉ <~”",ÂI‰ï„Í#çá€E‚2Â’ïýËd•+‡Õ"¯±‡`~Ý<ö6ÝCBàÓëOXÕ|« Øè °iæk+­ž@°ùÝ©2#ªŠ7XÒÆl½ù÷×ÙP7Qy¿Ë¦¼-“ÂL–?y³Œ{k,í4š‚ ðŽ¥,e|ƒ1€  6ËÕÚÐ#yóÈ9cü’@€ÓÁ|×<˜£,»†ñë"v¸«é]ÒÆÁÍSðpÁ{Éî¾yp‡2bßvp?\æ'‡ý÷"b€è±Ýºº1QÊdõª›À4Ç›‚ég§èžmï¶VʉÏÝ3u“‚+è¼áÙÒ,EÂZ`ß7±øØÄø¦Iªv:嶉Ãb,)‹Ï´%9 ø§¢Ye)‹/dù‚¥°}H*, ˜“ôcº—Ë(K•zAxúë¹^ø¿Hj ÃN~¥O䣔.¹áM{¬² ¾·´eÂç—ÿ§I@:¿òO“xÖ¹ü„~}Ħµ³h6À¸ÒŸ!ñx´ÓÈ™†ÄƒÂ·X5ñê­qZÔ­âxÁsyw°—,lÜ ®ÒuWßüžƒs”è\lèeR0žvxÃp5Ú7ÎP+z·Œ»1˜± æv°g÷Þ¤Q|¤~ ñ;o8¼J“qr:ÞoÀýzývý}¦&ˆ“  « ãdâ‹^Ô×p2¶zÂ?  £:êM%é[ñ¦*ïq$ÚW/±µly¸öùÞ¿Ÿò0’G![×bËjrïblý§uªFÜ2K±°Ðo6é]ëãóëÜ MçSþÑ‘'ºÞ ÂRÞòžv׿cëøC\OPö 4 üÇÊ®Y‰aÚ4rV¸f!®p9Ÿ¬‘“ì}×tÁËhåÃÒè–Ñ»åó¶å´5²œ[ºÌÙ‹Ióƒ øôªÆÂÉäò³Þr½|.˜ÎDÿÓÅÿT;èendstream endobj 1912 0 obj <> stream xœí\Ks·¾³ü#ö¸t¼Þcâ¸ì¤\vÙf*‡8R¤h•DŠéW~}ºÁ Á w—»´åJé° „0ýüºÑ˜w+ÎÄŠã¿á÷ÅÍ _]Ÿ¼;±w5ü¼¸YýõìäÏßÊV+­^½ùŸ³]¼<¥ çÌj´9»J|‡”0Az·þ´4¿.ͳî€/°ižùììä\ɆÕõý‰fܬ~^}~"²HyÅœYÝÀŸÖ°àÆž7'ßͲ³ÝöÀN˜‚™4EaçuÙØûÒ$7žerÏ>¸Š9S0°¿SÙ€eaÊ©õ÷ëÒý¢4ßv§¸o¦£ãí‘/lȃ؆(ð€ ý†ÀÌsY3ä󽂫ìÁ9ôëø2`\@D P¯[fF„v^z_–Þ»ÒûPzß—ÞO*4î(0!tã—Èå¿g !ƒHQi˜òcÏ>Œ»Ò€5ebÌä[ùW…4D^¯+ÎÁ2þ‘P#1·‰,ÞvwYz¯>ÆiX„p ÿ| Ë´Ô6èÒWe?–æMEX© ¬P*?㉚ö à„iEGÜu‰LÈySzJïy齨’ôÚôÒƒ—©tfèy ÀsY-÷dÀŒôSŒCeÁ«±@ÛãI¿°’OY0ô<…‚G²ÏÀ‚…€…¬oJïëÀqô´¢,zžÂ®@nÄ3°à}W²oKïõ¡ ÑñX ƒÌ‚Üóè¿~_-ØÞ¢'|Õ5N2àûÓšh…p°'ÇŒâ!v[`œâŒ‡îß_6H$=¶K@`øšDýªx 0b3Á:Mg&K^^”æ›î.îº;¾ê’Šlè¾Û[E!°cÁ´÷4dIÀë%Â\¹q¾(P8a ÆÝšÜG„‹ˆ\«ÝÜa”ÔÀŒ‘к­X´”ÐãJé]°ôÓ(íè\>¡G²ë.¥ë @¾^=v`a•¥FÉsÕd‰»á\»!K ÖAzL§b.Ï(/söf’4á^úœ-kx”WÚ‹IJ{Ť=*êöšy­Ä÷žGO€å”GX=rŽ9¡G킱o»c—0¶aF>'Aûnp‘žù‘ã‹ün>: ü1x%ðÙEÿÑþŒÒAAús%˜™ãiÍ!öM*y§AŒqÖôŒEX‚‘€U"*í÷o‘_AâJIˆ èAI:4T<„J¡m½Õ¹ ={‰G| ˆ—ª1ä¨f8ÁÑAÉîq7ì0‡ç0¤ ÷i«^J®Tp2´ï DƒÁ†#œåÌ3¯”tœyò,DµnìÙë(ϲ`,La™÷¿Ó“šÚ>´• €x…ÍÔ>X .ðÞ®?š9n‹§`¸é׺d™QÞ0%ÝÙíåLBÏÕoÉÜ×in¬£9lÉD,¨ËÒBX¬²‘B ŸkÄb­JHUiÂÖåBôÕ.뢟Ў¡âÔö­.GÛH뙳 ¬$N¯Áâe¸Õ×GÍ/Ej ù„IAÍ]O Ÿ6H­A KéÌÏňPqk_ mÜ|©ž´xÈT‰õËôœµrIî"Å´¯J4Æz–á¹h$Ïq¬cÞ‰ÙéÈöÒ–¬1´—ÚÕ0ì¹[JCe•¶Á9°úq"0µ•RЗa§%º¶âQh„ž­búåZ€ˆZžF«jFVt ;£Ê\ëvƲšwd UI:æö4&w¬dœþ„Ð!jR°]é­Y.ÿ„Çkk†L~qmù'tÃê¾gµ°ç²µ]­– HêpF»ª[„«`+ѪmÈ‚‘:úv܉¬Õ<ׯ}ÕOO^úª„ðz+Å”¸xZ ¡U:öÉTÃëxÀ)à•~ /OÞ™à›îj?vrÁ£}¯“‚E„4ÚêJ3;‹ƒ³*cFÁì,Òê»ìüaJ´Ë‰tÇ8Äu$u õ‘Öqê—v,ÁlÑ…¨¹Û½NHÌdtT;pyXéùê$¥çQ£g<êÄ_¢Õµï¡Cȶ(E®Ò“\û£µHJ+?¹TÑ8laÎ!¦}X•rE¿ó®»»·æ_Ø&Ëz7o§øëÆÔ*–C‰íw‰¬èîÒ20[ÁìžqxÑÛ=%y=b{‰™½Ç„õ(×-JšP™æçw‡†O é'ŠÚwÚ2•}ŽÔóUWÝæ~mɈÍÚ×Jú»5CÄ·ÍÍŠ_q¸.æ7ðÜWÖç-Áü¸ž²‡N³AÆ)\hqw†Ä]êÀ'@Þüº_2ý³¨ù—¥÷Ëe—ŽÇä„YìQ•¼o-ª<Äâx[d;•¿™çñv*¯`Äq›Íe…W¤ YJ `î-Èãø›€"1ÆëÆÏMrƒ7xsÍl¦d¿Çãâä nñ½SuÐHÖ#c¸ì` ȶ—˜G±QWðúœo#^¤¥¸žî῵3ÏíÄ:¡¸®ì–…„1{ôr †²©eEKNñ¡ôÞ–æE366»²¢,³BŠmíªa^hn+KEù ^;ˆr„ˢ܆®)2Éý$]Me5¦ˆ´ÂcK5÷;€m •Ò>«G‰JÙh­~•ÑÉ`÷WÙ7ºU åT 7ÝïUc”ÌßóÃâ¤Y¥1jg5F;ôHKƒC”uI¨ùH‘¨Ú©\ZZªÈªü˜˜DâúITÁ‚Û¤;v>Ôáè(•l–.(9è‘cÏ^§x•Yà‹ïP™7Å ðÞ΋^È5ŸÕsÔ~Ë@G[=¦àÔx몟Θ̧´Ñ|FކŔ°ŽW½Å RZÕÁf4k‚Ç<æŒÔ±ÎH6v{Á¼T!7±Y˜µu1‡M ôÜyD“Æ·ÞVCˆ¢Ðã:#Í8Ü&Zû`s†6º4¶hUòƒ°Ù×dº&U¼ŒG½bÊMàBp”Tg!8ÚbÀÍÁQ‹gÈ‹hFˆ\”æKÄÞ2¶%ÐÕŽ¯ò§Ó :Èà†ë»‰¸˜gZ4gq”+D&»z«XÔóå4ì²µ4 /m,R_> œ®ôŽ;ívÓáĄ̊ˆŠ»¸Q@”<ð)w7á¿k29k…áý$MFsé%Âl^åŽhÑ׊ÆÓ\R½$ƒ›íF€^M „f(t5ÑX¬hI¶/£Û6ˆ°’Ù&E½w÷–uÑ×üØýÊál¢=²¯O×4~„ïçƃӕ¶!°Œ‡ö€N«À¼P³ÆhÎ.Χ'´L§o`¤>F†ÊIw4ÿôŠd tЬ¡ ¾x­÷Å^#ê è/Iüã·±(È¢ÎgêÃ[6WZо¹bR›6àÁ;À~9Ô‚k^§+éKL€•ƒ àÁÌîŽF…÷PSŒœÁT@.îBŽäèÕ´Dª!"yn‹”ßœ˜ ©ˆ´¹:ñÈ‘d”ª&h¿ß’AcÊÿË“³÷®ÜDçíÄQ’š…•€p’Š9ˆÃÜØ³gŽS×0гtÓ38xí&J­ uF¥v:û$À»Ì&§Í‚ Q²o£òT¼§ -£Wpô0¹,b•Á˜|®é‹Ý‰ñ¢Å–“¤ ?¾šW?1×cîXVÖäpT0`óëÀ{È{Z5I…€!U¢ŸðUÀ½MµõŽhE"ÊÒ~%`qf-~0~³ ÷ìóe”ž4–îý{Sd"ÚË&š?^ …L4Ú.¸{¤)Ç)¶[4÷ë’hXF Eãp¬„€ÀØõ¿â$*pGÇ'ëorÆÕAs¶>.F3ëÚtýQN¸‡óúíŽR7×á“ïûa7±lCæ –ºÉ³uS0uŒCß^aÎÛȧö|¾ê—N‚°u§·ªÆèGPx ÜI8`m(@fH(îÞ°ˆ5¹cŸÒPrušáå§cÁˆùjýYéý¥4»gÙs7@_fjïêGÛï*H_µW¨·<¾U˜ŸvÃÁ°ófV↊¾x(™÷n×Ï÷v®UD“+ަöW÷jÛ(Xd„n!E¬8“2ýÜMÀ|*•-Ùj¯´¨ÿ>í[¨6“˜ë¶($ ßäÚ,w¯C4ƒß±J§ð3®Ù„6OSâw‹1 a™¿ømœBÊ ,½XGoÇ¥»’éÖ¹X‡âàuÌIýt €Š»øQT|Î{†#²áV£¯oó ;ŒÔ”’±œ ˜\ò ¶\:Œ±œÁër¹cŸ ¿ ñ‰û~·ý.ñ³FW–y‚Œg´®#±ôk°DcÆC8¼(v‹—Câ´ÕŒ0ÂéÅ ŸÄ¤ÖQ`ÎmޤǾ‰ U$X2©L˜‰³š»>q:1«hÉi i™2íGy§Çé1Å?,ËÖ¹Aj£çâbÚþuð"bRsÞ=ï™s¡3îm‹³…©«s$Ë5Iú]…³mˆì™j×Ù\‰ê&ìÚÄ–øàõ+ãat¶Åä@Qõš£Ùúæä²l;qendstream endobj 1921 0 obj <> stream xœí[[s[·~çôGð‘ʘ(î—׺qÒNÚ4±:Ó™$ŠnÕŒ$;¦â4ÿ¾€s瀤H™²ìhò`Ì\,v?ìí¬~™s&æ<þ×ý{z3ãóËÙ/3‘¨óîŸÓ›ù_Žgþ^‰0,Xiõüøb–#æBfçÖ)&œšßÌ~Xø#δQÊè;Zræ‚‘Ü-D!‹ö;:þ{<’+z¤ÆF¥qêñNyÍÂéÝâeY~—–!ÇÍ _ËxƗdzïâA6Ì/W3͸™ÿ-|5Þ;æu¼˜bÎÌof"PÄ@¹ž½^¯«ZðAWAવ².‹hïÊò¤,ß–åÇ÷—êggeyÞäûMY¾ižvV©gbõ¥3LræKáYð<ô¶€­·Â¸ÅïGKÁ¸õZ/n ùM1ù[B^ŵÊy¿¸"Pèè† ÕÄ‚4,p9_*ÃŒYŠ«rÛ²¼;Zš˜uòBFré™–s œ@ÀCrãÓSö€Xr>²`Öˆ'Š¥å’)§?. ù´ù;b…UeË93Þn2H^n0HºÜ`ä:bå,(ê! 湬 òÕ^‰‚«Þ‹·Ãœ¶ýÛù¢º | \Ýr96¦õÊæ#3õ¢Pßê]¡¾+Ô5ž·20!4„’Ð’[뮆Q.0¼PË­bÜEÃh˜òeà „Ì‚ øìd˜o›†Ù ù«¢‚×ËÊrF%4 72®¬ ÷¦i¸³B=ÿ@†3¦3Ü«r…¿5Ÿõ—•Ôàá}oç)¥©/¶Ú&,¹ÁéM¡þxTae)ñJ…pÄ2ç¡ÈrNÛÅd}×Ü@áÅȦùg»¸RâÐ6àjâk¯ïíJ}t¥1ô™`¦œÉ-ËŸ›‡)Þ6%>oªŠÍU“ZùsH,˜öž:ÿ„#:ãȸŒ°q~Nw€/‚’…]œyA'…z·þ­pãM÷Vtwú§¨h²Ýü^©¢‡-TÓ»x¥‡iÚlÉÌZ*»ljúÝÑÒkˆ¯TÆA¦^‘® õ¬P ‡U¡¾¨Cnø¾™ñe½j*õ]Ó#8ͽâ¥Jº…«4ªÓí_S6”á!¡òHAh kÅCñ츶ދ*ߦ9ù]\ ‡#Bµ‡¤ð]fÄ]fYe¨«C¬…‹ù9’âX/$QcÒ€êA…è_ÁÀ8㽄ÔQT´o§úˆõZ}ø²O ƒÀ)sí‘Ë›\â!e j ìUâ!eÌ,XLžfOu1± _í„èþ.×s¨¡2Ðé/™ì§´/øã*ãE)/ÕnÉØXù„¤ÅŸˆé¯óvã¤ë×é§«¼]8SqŸ¢ÆrÇm6N0¼¿nvÍh)ÁÂ3câ!°ÆEš ùì&B|âm¡^Vnzbs#’Ð++9çtÌM²þ¡h.{,DÐÀ+Õù—lŠÅ2YQ»óR œËÇY*µé¯Ä¦k0Ò2ˆ}STl‡ç€W9·G˜Å{®€Ä\+r³ÁW[ÞD²Y#ÖGZùØÀˆñàEX°‘‹%'9þ=ËòÎïZ»i hÄNKwÞoʼnÒÇ6z& ·±Ânz=I½D©Dÿgõã4I¶Ô&(¼/#oÍ|Ï#OÒ)Vö¥0rÒ™…ÇD/vTp­Åû#£™‡î7sSGA¶üL$¦[ÒUcof,p4=ÜÒ½¶ÁÅ{ ÔA.†{I=Œ?Îi_@u“-0ABï“l,צۑ–éH…×DÓþK•F¹ëÔhÚ¹Já{M¡Ì VzÂÜJߣqÊ$Öq¿’\R ÜExN æŠ¦SjçN,üc%Öyæú-Ùµ/©C¯At­ª4ÂŒÈÍäLed³ML¼³€bLŠÓöêÊí€w“e•NV²RìÔÞkû„2ô¶&Õ¨µeqíü³]iø~3Ê#GxŠ cB”“ qåGù°ñuXÕ÷¼ŒkäuzBVä“Ê4HF/ÉC 5k »Š¿„ŒFâjxÉάåq—ñ`±á˜È+¹wr! *´^‡ÿ*ÊÿOY¾j.Çm™J[fñÏVzÒŽÚWòF¢‰#o‹Ggà þ«æáÿ.Ël–Êð$Õ¢‰Ú€æƒ4eX—?Öïzøi‚ƒdBCy4j0=BÄ!&¤,…&2'eË(c¬½n¦­ €çÕh?rÏ9#ѲaB/*xåêRšæ÷ð•O»ˆÔ˜“O‚|͹eŽëlµ€ÊÌVîúËÿe†N¸µ¹øyÞ=ù4¦d·F½ài}‰V¬yKØÔv»7hc’íUAY«‰Bú4ílµÅ9"Ô ÛŸAܽ.u&ÀL Ëט¦W¯#äÚü–·"Ü7¿‹»Õ=¡z»"#´ôi\Nž@ÚqZðM_ÉuäPË›*ó¿%kÊå.ãÇÀQ“#/Ê}r³ÈÇ®a}{Øt%k»6=4û‘Ñô›žÄÀq3­š¾ÿ—¶ëfŸp#e<†´jh¿%)·ëÃVMÌk<î9Þ¥Ï&2¦Ìñwž¼3r×§¡<Ú¡öûdŽß„Þoq2 ¯Ÿ+/£"c¿ÅPÂ>íg¢Ë „|½ý“zyÒnIÕòÇj·Ä†‘v E\£bNáˆl§xŽý‰lõ.KÉ8\6EÿEÞáô–ÂéÕˆàÝlN§é×e>B,úK˜þjÉWÏÖ«Ê„!*{5.S—x›Ù W-͸ÂÐ}³³HcŨr:9+öBûp¬ª[—^5ziiý{ö› %“’ÕˆöQ–³ž‡¿W©´¹Ê (ïyxÔ"çE®Lµ×£’d€ÕY®ïn(J)La@•·®\ÝŒaÒ"]”yÖ#I·÷À”È:0ÕGAqº$ÃQ=eÿá(p@âü1ú毛G¼oýì>³QÁ?…Ù(%?Úl”ô°¨d6ª§<`6*Ž à>Q|<íÙ¨b~6êég£*ƒv6ª9bsÐÙ(í×r®w·§ ‡°§³†YKíÙQö¶gbšC=|¤jË'¨"="="í4ˆÔü+…ÏbIXÿÉ "Åј " ù•)ƒH=áƒHFF¿ºýï¾0ˆôàÅó ÒÖºë³D&/o‰Äâ7©¨FiNOäºÍÕŽ“fM oÿù–eÚÿ1ƤÁË“ ýGÉ$Œ(¨²Ô•Ö’Ÿünöæ@„oendstream endobj 1931 0 obj <> stream xœíÙr·ñ}“ØÇ¥Ë‹à>ò–Cr’râØfªRçA©5Ëâa’Š­¿O7040˜Yî’’¥8åŽÛX Ñw£»ýÚ3±æøÏð÷å劯w«V"B×ß——ëߟ®~ó•aX°Òêõé«UúX !˜][§˜pj}z¹úׯŸp¦RFoØÉ–3Œän# XôW”þûô/x$WôH •†SOÏà”¯a±0Az·ùCùü?-7BnN» þ4~âÏNW_âA6¬ww+͸YÿTøl%¼wÌk¼˜bά/W"€ˆòzõõ<­jÄGZW­‰µ+¨Ý–Ïåó¦|~×Þv©~vV>Ï»û~Ý=â?ÝŸýµY›N»©è7‹­3LrÖ[áYðïO¶&f|B¡’\z¦åÚ /™ @’Ï€2r„Á ”·`HäT‚¶–K¦úͦ¬xY>¯»lº«8f9gÆÛ%Ž¥ÏŽE|FŽ)Tp°/…c*h€ˆÇp ¶£jŽ}6Ï1ªdÖ+›86"ª€ÿÖXÐ.æ´ÍÚõÉt Iµd×r;nNŽ|U 7z_ ·úéÅó¶¨ÊHIf´tí~Úð.øÉÆP~cù÷D£”ØùE—g…^ç]*^èUî*Úp5î°Äo¸ePÖÕü¾îò»Ó£ømÌÀïçåê.ŸŸ—Ïg•‘”yð±éfÆ‘‹KÜLX¹¦+îöáJîE¤û²@¿9©¨·UR£OÒl çô Sr÷Ýľ¾*Ÿ»ò³C,4Q› =1áwÝ#úúrPGÅd•…>ë¢ö¦|~[>_·iïyÛŇò¢{£‹.WÉ¥h^¹”(fdU‰žk RpÆ5Ä䌄)‡O¢b/ ô~^™¸c&˜F™&õD Þ1©Uh)-8$"<ŽÒ‡˜­§¡ô\HØ#Ù®KéÛ“­×py©’L¬;Ñ…³%;Üè§µiG‡Š¦ïóÕé'OŒëÅ>ÿDÐØÌiÔ/¼ÇŠ~*0å[ýÇÆexˆG(ñ« ‘;!|+BÀ£ñÛz/ª@Ÿ&÷ø-ô¡ZCr‡!¥ç,ª2Ôy+| ‡‰ä'Â&L1¦€¬E´¿ð{ãŒ÷FLMо›bÀVÚzò„T©Áú®µ àÛSòibGÈQÉ'„,i Pù±æ”XSæ‚ׯgŽÜ¦L’»$!J9ÀŠF+­D( ÊU(¥¼p>IѰ¤@BÊo¤M¢ëœõÒV˜àeàÒÁæ> c¹ãq-þ —ÒSù’J2«Ðžð너q%{ ›~Еüõ}ÚÚæTyøÝ‹xG+ó½1ÃNGJ\æ *élïâžè$€®™þKµ„Âwˆ‰([÷ øEÙ…"PÀÉ [ɼi ò‹Â©Ü’ÿê{ ŠÑ"â„ni î&_U¹ƒaY ¼ù±è?ݤá[\m—¸™÷îš o°ûÍʼnŽ4!¦5Ú:tÌøÔ`>Òcž€9pn”Û›é,é=q5Äoí–uÙpø¶>“‹ªåÑqªØT.èò7„aÃOÑkœ#wmÔDÐ(Plã§FƒŠÅUÔwTµsO´jT¯Ë!߯-´Ðø–‘î;®×!“á)óº.Ùµf!ˆ|\~¥½JZ&u£¼TK©Þ ¤ÖÎUt"ºŽ™®H.»t{'EzñÏmq¶D‰¯¹\–9|:1f<äS`˜‡h¨†ÿ[å@:u8ÄÔYÆÔ€À€¤°b¦€Á0lÐfètÉN+„ëÇcUèß’lçÇc)驹!:4çwxá1ïÁš[Y) ÑÉ™#ï‡-€²FR-§‚ržHîL—$7^šÑäÇ€rŽàx•0ð^mlñVŒø9“âT.@š0G‘„EÆXæ!ðü]ÂKò:” þ/ÑÂx›ÒÈ: nuê!‡çPAá›ç´3¤ë®ÚPú6â ¤`¢– ¢ÀÊ^b$é›Ç($Ú¾ZKoq U³ï‚!ééœúìÈž£|v–9ÊgJ¸ËÔgGAm42®¶¢Ú$ÅkÒNn™…öíð;Àõи óèíÐyå*’Ô> (µKˆ&%Z™X”š8ÈP¡'Rì^§ p…ŠŸA<„™Ú/±Oi ÛΣ¥r9¦µ¦G#T«¹ò%‘ì&⥆/4BÌÓ6-¡ ¿æòÌó|Œªö£—<<-¥Š­”f¢ (öZÿ%u„ý:‰²Õýé…~5#µÛÁ)•"2"?ÏS“RùÃTÖñLŽš18N3•×N!T ®~§$~&•®í¢á_ d {î𗀡î¼™Ýã>ã¹]:÷ãJmG aùÈÞ¿‹ùÏòù¼ûÙ–žÓóG)=oþÖ{kë?@'És7¿í£6Å–7”çÝÃÿÑ{êî»Ï|ðãC͹)¨nÏ™j ¦]]Ã%º5•ÈÔ`}!¦êÑçm­níu7äËoíÙ›$eQ@ݺ£ÓXÅA÷j_ó ¡°Û4u¬Ì OaYäZ€LØVÁµˆ?¥ p‹a,±\Vvu(7Å j_Ö—ÈŠK¥þfÙÎ -äŸÂ«"e½:0)5÷}K{Fÿ=*Õܦfû¿ ç­|5ˆ«Õ$¢u £Üï&*0ÉŽ‰–¼ÆýS|´¼Q§æ*0÷I~ ô¥G¾*÷IïH"âšw¤E_¯™³ëÄûáo3ôðËŠ02‰Äq35æ\¹•ÀB“nóU”ˆ»…¥%fZ'ŽêǤČ1¦‡ûJ|ë° ÜžÄDçÁzŒêËt~%{®@œ0޾>—ÅŸ°N i&3j­$\@:¬;pL™Ø4ó¸Rï-'”'eâXjøpËļŠë”‰©@vâóè£Èr*îWâ«XŽŸšµFúUk½qã/›yO?›:Ë%¿Ðê# hCs?¾˜íSSL‹×ùnmQx UÅWûÚdÓ,”˜ÁñÜ‚ôΗžhX@‘9=aòhB¿çb­æ­uü~›Lž—š:±ÏU—ç<×UÞpƫϔ ylÂÙ_*›¨S[*[påÓR€´×MV2 I«~J–Œv¹,¥ä\V¸ßKX9²/6×a‹îÙcFRÂ~¯#)yü`ØÑBÆO2äøñØbؽÿç´ÙaÒKz~RÛøaE+÷³ ¢H%%Ü… ¢dÈ#Q°} üÅÿ€0 ÄúC›Iq ¬„wšCàÏÝcx[@PnkÞMFRÚç=#)rÿHŠ‘?ÓHÊ"|#)‰"ÀEÙ9@ÃNÈ6ð¢Ý>­….¡Ã'R<—jïDŠ_õN¤„åQ:’2.y3)Xãó¿Ì™”½AêyOQ<|üã)øòÀÝ¢6áÐüËÿÇS õAã)§ô{OŸë>øñ”(þxŠc±#ã4"±Í¿ƒÔ4`g™X@ÜaLM±zéGÈQ©©‡+:Ø‚EÅûèÓ J¶)—EŒÝŸzJÅà¶¡íQÛ;¥b„`",Vkq‰³vî­°y¸3‚ãloõøGË3}T“­Mõu¥ lGzæñ®X¨žLi[Q„ÓLù¶]}Ú¿{GÔ¿ü€&m5hJ躎iÙÛkAïÚ k±-øè:=(<×€;4OàµGnÙ8º/ö!cF÷p —ÇÆ¨ü¿bx¯-1|o-°8vzÝ”vR-¬'´Øý‚ÅMó `Ûß>ѲÅ6¹Às¤“'û2‹ÉD±üÝl¡?ÙbÐ9ÏŒ¶Œ`{&XйKuú&X°­Ÿ2ÐôðŒçègùæ¹(1®r±"‰²¸'¾ˆEn ýcìd*”›IÏ……s‡é¾16ƒóNW;¯÷¸Ðòª;À©úÜ—¶ŒÅÎ ; gP™ë¸J½UÞ„Ù¦ð¶Ù($Ôb3j¦ÐL+ÏØ¥0mx1̺XîŽ[@¸ý¨ߘɺÀ¥{7œ-%5:· ŠÏ¬54›­f¡&Ì¢æ SçЀON=¤á·`Ô°ûÔø¶\NT¸ß%°‚Õ34lZ|p5—º’¼›ºe¶’Õýùû!Ãd¾î-*‹ÙÌ6D¸™@•¬ ¾ª»meÛÚx$ºYž@@ž Ô $å†i'šÐýÉ$í5ÜŽ›g¸BB6> stream xœÝ\[o·î³Pô7œ·> ï—Ç$MšIÛ$*P éƒuKV,9¶ûëû ¹»œÝåž#éX‰Ä€)š;CÎõ›!•ŸVR¨•¤ÿº¿O.äêâà§•gWÝ_'—«O>þN§´J"yííêèü |£VÊxá¤Yù`„ futyðŸõ«C)¬1Á¦õùáÆj+¤ ëÛà ¦LÒ¬¤± .F½>Ëó^é×74Áy¬9£Oµ0Ú®_Ò´1.è°~ÁÆWËd¬6¹1'¶¯ŽbT!®OÙ’þK¯±_@B…õÛC…ÂÙA!G97Ù–Zeíè|G•5Ÿ~]ØEg;ÖÄõ¶ŸËÌÄŽ7¹è─Ò»”zÙYƒ#‰ÃMPZ¨èÖGଥ1)L¥NœµUë?²éŽžÁ†:z>êHÇʺPŽ ±¿±F ôÌXC½þÎsUÄI“нìÿ@ä¢ôÚ¸²|’Ú‚6FÓ/W…eTqd çe:H·Õ0ïØ»sœEÿþ¼[Ü™hDÞ… ÀcÓ‚÷±äsSè)5fùª?¤‚"‡ó²ýuöH ^4…·æüzãUfÑóDÍ¿ÙþÅJ2Gà eeÙq•H!¥†¶YÌ–Ö¶ElËIÌcÈÓê’mÔIìÑuIX$Ó%·… ¬j¢'ÍÖHÖï¤X¦²â  ÛðRõ–ùOS¹¤cXÿ»¿h¿ªÃ¯iè…–Ïëìßëððé.âH1õ»Øâ‡Óíêàˆý‡_4™ÿ«¿Ù¾#¦8¸õy¶(Ø#(ždN˜ª¹^04¸Ÿ²9QÙ©ßR“Kw³ˆ]Vƒ§ì#g^Â9^ÒÑ6CI;zˆÆÆIôî ¤ö- î#È T…ÇŠoÔÂvh =B -ZKÑ&? <`¾+ð4œ<|•%^.glŽANƇè—3åyk¬·;-åÕš Ϋy¾¨Ã—uxZ‡gux3ø\Ó”MI ààù(\ÇåÁ¤‹°ˆ”#)ð£Ïò,¹œÍ{$ƒ·µJà¦9Q}^½Ê‹0½^3I5*&!!ÿ1Äß™ÄÓ¡JŸ^‚®…ÿ·6 ê|gÎjdi…T@£AK#ŒçÓ—mKkXa6[ÈSºœU:Ó¥O½rNOà7F•¡g„|4Õ,Þ M"ü<ÏßEDûÎBrªå4›lÙ6!ƒš¶ö{&p`t¾¯îõÙ$yyPÕ¹ò/ør”U>?:ø–ú´º¸9°BºÕÛ¹úëø%0[9Ÿœ«KL8Lô?¿<ø~±U2Ý}ß* ŽQ€ìBi•\Ô½®Ãçõ×uöÇ<öõÝ)s½+ö°ßOX”áÏÍÏŽ& ·³ÖÚfLSÔ°}L[ðîRoX¾c˹3P7ÁyðPkIChÂÍ`¹u”ÓÖ~ƒ#xš+Úk¶•y¹C»Zˆ®ó¼ÒU‹yÛÉ4bˆ‹("Y~/ûóÂûÄ€£Íãâ¼ákا¸¹QN —¦%!Ý83åNÛXÁª¶«¥Q£q·~2£2jæoùx ùñÉû}ïËv’V<íÍÄ,.åÑ«" ÄÏchG5« äGßTϺm:ïYÓy/w '¢s“g%›8ÔÏ[ZBTpêRøjQRB»Þ\òŸYÒ)¬J¹lUÈBHŠÂ"ñes1… gc¡`UÀÉh#ü†–”Æ¡ʃœ5¤R½6T$pR²‰ ø“1K@ö´]ôô@L¦¤'g52ÎNÓƒ*ᳬxÉè½(cX†ïVç%”˜°NéöÀŒ”·ž tÝì›J;Û…‰&iÝÌÄÁr=tÚ¬´ÐH3‹+àÅ$õêè냣HpCcJ°l«ê´Þµ¢i¡ ÍÂ?\¾…ÜÊÜÄB”\‘ß¡Óaæ!é5)‹(mbÉ®—Ë`œ§Ô<üdçK¾cÈþUžLRßd!Ó#ªÄ„¢P¤ö¬èç}‰6ÑÚâ}Ýô«ª§k6Ý$»Î;ýíNp2“â¥ÊûCë1JCÖÖQi¯IX͸aæ!z¤–O!虊"¿YVdÙsÅF¹ÛšDŒ8/dë˹? G#mV|ÅÉÌ0ÑT2CΒѨa…öL2Ú#–‚ß’ º%KæñL|㥢»½õë&Vd‹Y)Ì0臓Ü4«E¬/=hªE(œ‘þ’í ÓBP Ôò1‹ÔÍÐÑŒìz00½Ÿ;ô]n ïs¥¬=ÜÌùQÀ¯æó;%“¼oçªÞAËaì6MÚ}9¼(=,pcÄÍ-ÿ#tíufÞ÷¹æø;A£]•Iò ¨ô1µÝr–E9áa˽›Wå*,EÛ¨ž¶ÝIå H%èz¥ ± ‹þUßÓsÙ¾#i¨HOV&$ àEIC—dÑÏ<$ih%à½DBÈ v¦Ó©·[ïPÎVK— )Ðj’½¹ƒWr/n—©^mò‚ æ«´’û;ÔôìîØiÑècNo·“¿÷õП§Œv¥–úœàu)—½×[îyòPuÌÖðùÆó˜®JÊ&K^ˆ˜hÉYX—tIøý}lÞ`ÍvUNá“ ]{>«“™´õè–ï=½îðHÇ—ñíDL⥇;:øé¾%<{t@‹mHÓkÍüPE§{^ºÎ^üx@ãõR‰Ð“}ó…Ó):ŠzKHJ-Úðä¶iøò¢δÕC¶ÞIjDäÌ¢á=!´¡"àÐx ‰Ö 3ˆ†„cB!!œòÛðLm¬t7•9‚ÏZ¡yöl{ÊAèÂ%s/vMÁ&ïõMÞyLŸ?å„)êšìjÈÝ(5qµe¸jLr;POgíE=¹³:JOÃa«¿8iJ9ÀøwºŠÏljÓ™DX~$´Ôõ[¸TãP/™`£ññ‘$Ôâ[>ŽhÛ@oD¼SºzVD¡)sô ß—9·xú‚7å<Œz~÷Þñj‡’Ö%ö<”@k!Œ"Iñ´Ïª§±‹)®*³_Ž9’XâQ9ê¸ZD‹bP(êfRu_ (ÐÕ]•oSL_d\5+éÛá³v9¤PÚÕö1KŒL+ÜJ–  «¹Šx·¿7mt¹2CUÊw•~{W‰Ã;£Ù+׆FR•àë½a?±ÇÅ!HÐ ×û›Ú'ÕSö.ƒðAM­nÿk=rÓv Ž%ô¦öºFOféçØiùƆ޼Г39ÇÃÄ¥ù^¸î#Фí~õ:q§?wª×3G«FPà¼lÕ§ù*öÛÎ`½©`ÂîóP g\ŠDÊ;= / =.Àå[½<~ß_\ÙG‡1yäÓ&ÃïíxHêó¢öC¸¯[Ã¥Â\×›½¯íf [ŸèíˆGŒí•ÿàÛ§:ý«Ü>iï½÷¨·OýÌÃoŸ@Aêdß·Oúi¾©!z׳ßÈí5lú—FìH öÐûÙ„hôT4pV¯´’ƒúiÒQ¡3Ì<¤Ÿ&Œ' Zê±5ݼ„¹w‘Í¡ñHDFFzÆD„²‘”ºˆ@‚\EtÏ–ãèÏËԺ³ð€^–ÜQ ]WÙÜ6Küg£bbCÁZy=)«+bâ8êªÉü–J¿Ÿ“>d§Äú•Ä àEn” . {Ÿnâ!*´89S 'ÀE…,9½á}’¶ôÄ^-<${É×R>®R~^goe » OVö‘ÀŽ ¿›ÙGú¨†’6÷—þUS,§¿_éäš ¸ô»™}¤(>†í_U9ß%?€î§#}"=¶ýnfé;ªöô#Øþ^Òw6<5é[zàÆ…_&ö‘½¥._Ø.ûQ¶6øÎ˜­Ù¹R³uÛk^sÑ ºmƬãE½=õl‘ÓrÅu3ûh.ÿªÀ¯yDÍ19žþ~5§é7Ú×\7³æ´ë_ÏçfÝÀý5÷3•LqâsÝÌ>š“(\•z æ^'2Åõ+Ú9îôöô<.йè™Þú™=ô†ÒFÒÓø_PoLYÇÓÙ ·'‡M"€„4ö3{è E‘“»rÜ€ YˆcOSÙ¯]±küýá“óš •°‘G»~fé%R잧~SÞ"ª›5Î7JZá]m¼:JÕÿφ®¾©C? ™{ðØBendstream endobj 1950 0 obj <> stream xœí=Ë’·‘÷ }D‡^NïGlìÅZyô:lÍžl8’¢—3’fø÷ë7¨¯êêfψÞ`èÀˆ‰|g"ùóŽM|Çð¿ùÏ7gl÷úìç3Fwó/nv¿»<ûí_$“;?y#ŒÚ]¾:‹¿á;®Ä¤œÛ«&©Åîòæì¯ç÷O`Qí…³ç/òçøi˜æâü]wÂùóUþ¼É?{™Gï»?»ÊŸïóç›üù6^?¹0 €göüoçt¸¸YíªZÍp+-í§üy—?_vü¦{¢7]n»ÿýò?Ïó“àjwÁ'« ó»Ëk¸…ßsôä-€º+¦üíÉ“ νŸ´Šxn`íã™ éyø4Nšx«OÓ(î}Á™´× ˜´Ö<îþ†ž-}¾ëÂñºÛÜGT|r’›ˆm{Xøí_Œ4”Ž)Z–Ÿ`SV½_° ˆO8‚o­¥óRKX;Y®°EXåC÷„ ¯ºø¼ãSèI 9ãSÙGÀ瀬Vš~srŒ’ó¹>F•y ý²0º—FokäŒÞm¤ÑGáù/ £{iô+F»…S2'F+]·ìt”®“ÊÉI˜ÝßuÑG>‰$¹Þ’S“SzI¯ê¸¢>p=Xö_AÝõi.(mþ•‹NÅED{üxšKú*êNsI·_/éË¿$r3µ§ùÏrI¿ºëE€¿ŸãŸÆû¨ß¹¡¯ú}É¿éžä®û Q‚)¹§K_í'&àl~2Úȸÿà¼Ô̇-¤Lsp©aXy͸<ß’yðÛ8Ç6ø´^ †Á1\Å®ûðÍ-×ÒsP#)-¥VóÂéÊKA¾ ôܨ ÖÌEP/aÁ¤ô´B4Zí†Tí•ë=›p¿`ôûŒ°oóçŸA„häew Ü~wyögÜ –}}¦ÆÝÇ3¶û Ö;e´˜¸ÚÝÀ€ñ“²iäíÙ÷Çb½™|\bb|ŽÅÖû]þ|Ÿ >-i¨ºm'#uB&PŸ˜ÑÞÇÛ•Ò*é][©$Ä €¸˜ŒÄ ¥ãÖE ˜çÀJgàjÍù7ä^߯éÚ »|‡ŸÞÇéZØbõŠ$¤Ó“ä6²µäÞFrŠ@êÀÄ–™eÀ@À6ƒ…[È-N¡‹ÿ§+¡Ša "ÙˆîO7¥Óç9NÊôSdž—@¶n‚#Ëùl¡ñ,…5€ga'Å/V¦g¸Žè”²Ü<¯õ#w€J=^…ÅþOT@é2!— ¼yk+Ô™P/‰»¿ëɽ.* + ¾ì÷1KŽ7„ª*òÑÉJÔÑL& J©&ÐH”^Í£ çרQJƒÙi8ncÄò» ŸÇå“ÃåxïæÙ™¹¤÷q˜+s½!¥Oú]“í+þ1;Î{˜ G˜òx—.P 1阀‹¥p{ƒ–‘&Öë•ôëÓ„™æ²fš h¼%H"74R'BŸ"t¥ðÑ0Yצ,0*ÖHP ÂÉ{(b™«%œO+¼"5â‰÷N‚×°Ú ƒÀtÅL)€ïp†Í¹Ê78E–òŠnOÇG2z–€Ÿâr˹ƒ°¼%Bö:B ò­š‡%4^×5^ðhÿöF;™}‘ ™]Ä)"*qÚѕᔕRªµ’ Ÿ0`5)Ÿ¶UÖgÏzÃXULy‘,©8*`™OÊÍðN>=qp(8Ü'@‰8§HZôLùžNpÒò1ÿe¼ÿYèƒóŸ t%Э᫼„SÂiƒÖ²¥Ü{ó(‚ï®f›B»š˜Ö jj¼ŠË_õè!˜k{xTÃß”<Êä$A*ŒytùŽœäá—¦â$*ÐîºÐ¾°½€Ÿ`Ι¦+~!lÔa@±ØÊ˜’Š6¾Ã˜üÛ.cÑaÌÖB<–3P¶Bò—F)bM¨àk pAœKêÒ$Ž Ë¬˜]]’©;²$¥a'EÁ‡Ò7W“ÄÏ <@FÙÜäÑ«üù<Þ§Ï.J4mr|þAu Ó¤îÃç'æ¦;¾Û.¨win>?I›ì’‹àE©úé‚ó<+$ŸwŸ?æÏëî„« ÿ]§Jû ’•dÒ )Ì\C9ØûRJ|ál'ê‡ßnæ}œ:ÿ6~JcÖøV¦áq.7nÅe«°v¢ÅÚáj±fk„ª9ÿý“P}©A‡3_ª¬Úòîœ=Fqº¶ëTs]å[H¾EUÈ^BôˆêÖ»Éq­½æØÌtí‰Ú܉à]Ÿ<©xBŠÉ; R+]GLD"%ÊBg,×$u†SiyM¼û:³tºHM}%Ú.(£:¹L4L¤9Ì"×XUݰ¡V¦Ý(Kò+[%mÐ7L)Ã;Rv)n 9€ÊšÀÄÈ-þòªÄJ›#àz²MY+aޏŽB+Òø´½øŸ‰I5Mk(.)j•´ì"Ya÷¹ù¶Ë.ïºÞêÕ~v1Ìü:Ô+ÔòRËÉxÛ×h}½)RÌë¿2²ÿ;«šgïÏÒh8ö<†ÿ‰©—ˆîi¤.©yå#â(wUèi™Jm8Êù•ô]ÂM‘'1WÇlÅ“û³œœñ^t½Z0ÇÑ›G/ŒÞíñCÑ&ÉŠ`CàArùŽègHæÒ±BPÊWâP£”Ó¾x±ð“AÿÑ„¥‘c¯µ<æ˜)X·‹` 8»(H“dØŠiJµÑˆY³‹ãBøžµXù òÊ1¦SXÝ ”Ýšé4‡A°›"¥˜òÎż܀ö×uLè‹d^Ðüæ•L;ó«2/šõæÆaÀzÇ ³+=‡µ/Ã:#kzD%•tÒJÅ-Aºx³É¥K&QWž€óž±Z—'Û^l“'X\–ˆoŸ´³ó‚ûuè¶ün•vNæwu‘ «ÄÔª(ÇöÄþQ‰ ÊÊÂjÀGè9(s“ëÄ‚P³hÄ–B;¥È“í8¸ ¡¾‘óèB=Jí<ªàÇlu—ïñ \!÷èÆÓ&Sµ1®§ÃÉÔ$E“õÁË2Gþ ±´G‚ÒßÇAà±+oztpÉüV‡b„“ûˆkºe=‰ƒ` ÐöÆâƒ8[ï/>U~ý’wŸÝTVÑ m ‚&‚’›Ħl¤‘ÙDP5ƒ€‰ÀÀËî˜3ˆÅë1È%îÇÆã|2P¼ ƒ ÁÈÔ£qH‹ˆN~®pƒT 7[ ê™äï‘|—­ a‘ø àˆe;—?XÙø/áΘ?±¼¨ÇÈÜM°se×n$°ÚB9Õ~3« ê8ó›Áì€à¢ü<^p±µ‚.#8¤"USC&Kþxz «ustçsžÅleVÛ×âááæ×¸ÑÆåR‰wDáîaLÅ8¸*SnÀŽÔA¾“1!Ö‰vÂ$&ƒn%+η‹±ãA9›&u.³à-×M1rrzP‹L‚³!¾¬ñÇëI·©»ƒUîZÙÓd4BÅg/Ì”×yö¨¾ˆèí#f|xšÿb>ÖH$4Úäºà²Íz)·’Àú‚:*Vh±R@ˆÊÖa¼_PÃ.á´RW<iO:”ºqdvÜ\Gkj§®­ ç4ƒ©½¼šh5ïþ¶¾°¤ø€ ‰ÚB“pòê®ÊÔ:Îp\Wâ p4¹ÙïZß~Jùå\ÓÏuc4â#¶.<ßTò¸7Vò÷¬ö ›8|qPÖ^²ôÄ!J¿ªS.£*‚ž¼I&Õr·á±>Aù̧dÖí ÉÜfº\ëfP‘膀ÑÓ=’ÔLVHÖ{›ð@£A÷`θ1)’zd±7÷ ŽDïÂÈA½-“¹ÞÇ!¯™Á áÚC…Iõ±€¨eD«kÈôÛ†GÃ0Õ¨ƒ¼Ûº0ÒÖŠ¹…ðN®l§|Š~wâγ„µ&=>Ÿe®|¶~h7egå§d=­Ç¦«âèºr^àû7»¢5p†T¾ÒὊè%ô·¿â +—`÷qe£ø€Bˆš éïõ'6RÅ'6*ûÄÌÕxWo@Óø‡„Òõª¯A (E˜^ÉÏ\dЫto£†N8’uè-íò ¿-æ„2,RÏéºHU ªœëç•ß“£Òv£"ª§±^Õò¦XJXÞ´þþ‰ã ÎÊ”É t^”ªÔ’4ÀöÓ`¬ÆozÑÉ—$î]ãZZ&Ík2T}w²*àÅ¥½æ•øKpÐ$Ò¾šb÷c,$¯cÛÑ ¿^N¼ ³}»˱uò±Vúx6º«éãŠ=^ev“GIW…û<úC¥ýâçû<áM}›G¯Óè tq>Sé*Bm{\¶Ý–øÄ’-”™ð‰/=zU×Ppáä¶B?BùɺRn+CBPUõÀ;~-rôuÃÃg>1Ò z>÷mÄ0úGS·…mzQì/ÁîÕp@§°{7Õô–¨^yhÓÄ$m…ņ)¯º£§¬=þ¦ñ…X¯‹H° „“…uB8äº9âåwý„Ý>¼Ñ»‰Óñípå×ãf£G^-5qF¾­¼iÒ4bt7åIñ ‡ïShÄg£â §+c]z"iG0x”’,ìz2ÚD`ôʱpUÈ í{äÂm¦ÝëϤhpÞ˜RÉY¬»&,X®-ÐJ…!’Vrí…ÄDZ¢®Zl4ÄHKK‡´…ëÅ$Qwõz^ø‚Øf`½Ê%Ãu…ÅžŠRËÂ=å §T@e?J¤”ºF¥+4„v…0¶^ú7â(£ VžT¸64(l] ËÓyÿZ@`„Ž5é+< `nÏÛÐÕ¤M|W¾à~AHzÞÓýô`£ò "t€¢œÙn[¡rxÑÇÚÜs\,[z­\DlÂÁQwºzû™"Vk–öå®çØòQ)*“š¯<;»ü FDŠ\,ÍÄdeA_”::f!&Ͱ’† öÇ¿?á"@WƪTËüW?œ<êG5XþižÒ·š0b—3+ÍÅâçJs±¤XBs1ÉÁ›†=¸QhAînΤÀúžFŽè$†¯%µÅÀeùuûˆÿÁr1j-O\Ö2©’˵p Žé¥æçÒ!ÐØAÕ‰0b´R„hžõ´-ž–w3‰ðÈ0ŠjaXÕ{Þ¸x¬Áx0c‡uôˆ•(drÎëh+z;|ªúa‘` ‚£jWÕ&‘Éà®ÃÌ®fÁVÝEní$s0ä„,‹$Å€½4¦ ²,ز`¦‘cXVâ“u:2í·3m?Ä 3¶WLñ ‹nMÊÉÚÕ¥éÁ àwjÎÀ1¯L]Ù±}‡¦r׿-iÊ3€i=¯C­$à=ô”¬¬˜ËGúåÀGÍK‡¶#B©ª\^ÜðUg˜\U—Ý8¿1G^ð+®æœ©b«,ekú¶n bu¥ÆƒÀ6\ëý©<ÁÀ<ó(þ×›ÁFfl,%¯#cé6UVUV¸7ç¼²ûÆ®÷OÃŽ Œ— #FùPTz·OuD ì$¼+rnMÍõÔcý¥ë&u6C±æ®ÇÅää±x`›T0d”v\à‹Ü9Qi䘞¨–€{Ó¿vOTKªG*ŸËc5£UQ×ñ˜mËŒYcÍÃ*=4»ëF¥Þ…¬Èƒ·qÀPRU¾¥b,´R©U;‚åJM2rA•…cqþ ÅGÑ»R\ì–OYΔÛPNl›õh«TÃ;ïeL¹úáfÊìz>§xq`Aý¼á `qÕWŸ.s›Ö MoêÚL\Cÿ4¼÷„ù‘9H#*Õ8®ÎÅÒ\VæÞ;!7Wà ¬:ÿ‡IPÖkm;ŽrpÔ…xÑY|`±ã\¡«¢gØr6c zÀ£ã¸`Í$ CTó»,þ~É£$)—»ŒôCk Ë™M¹¤§±[ümm;„‹÷Úoª©ß{âÓ2°VVú”O»á™Û†uCC’·±.FŽ{‰Vœaê{_× §è²€)_‰úÕ¯áÙ^[^!ŒíL| Ó¶.YXzšeÐBˆN.Ubh€lÿ1.{ÓT ãÂÊ»R.à ØÐ‡#|/êP7[² ãBzÁn3hóÙRoW}ÉÞF*ÕK¯.ͱ[ ‚¶«t…‰¼ômæ°?åÑË<úmýCÁwA‚(ƒjÌÆÑè ¢,‡žFޱ¥¤Áž;ç9°Ô> Òtè®m©øYÛRuIäÈ–Ò"?˜®V‚ŸQײ%"™õ¶Æòæ+”ˆß (÷:¾§ÓnSº¶JÂS¼æqýá©“ÝD•~xS­ˆÔX|)_nºà_7i…yrsY ÛFUéR\AÕ®’åUÕ“Ç÷¢rD+fbØ\áÑ#§ÛÉä ÁA¼a®ÃãCÖI‚V¦DT}Œ!y¦äV•‘–éEãÁèEㅔحsr¥‡J6ÁŽIf\;Wµp…S©*U4ŠòmOw7iè±÷Þßj”«»Û6Zˆ¸3²4qG.Å]œ.¸ë÷mŸþx-ª ^#ž¥FVjy'½P®/nnFÇ}>·°ÃΘ Ù/­º¾Q•@j+}›ÚG2¥âÄМ+t‚Lÿ<ýaùÖjQüí´ ´ÂAÆæ_եвPRy]›ÐTgT×ýh•{؆ áÜš%9f$Þ¿Bm/A+‹çÀ‹3XcyB/ý`P{Žª!ÎÀ¡Šô‚ù¾fÈL¢Š2}þ¿¼2²-˜=ܵo 6áià°÷C¢~Aì°Au\[œohÅi, QeñU"-@^šƒo¥kÃ/Yˆ£Ö÷¨i/„·ô¸xxŽU˜î¿oP‡·ióÐî!‡`À}’ø¯K1Iˆ´Î“ùÓÎq°:ÿ|öVn›þendstream endobj 1956 0 obj <> stream xœÕZÛrÇ}ÇWàL ›¹_^m§â¤*IÙæ›Q¼VDH&%¹ô÷9=³»Ó³ØH, š¥baª5;;Ó§ûtO÷þ¾\ ú×þ¾»_ˆåÍâ÷…LÒeûóî~ùÝùâ¯?«—±‰N9³<¿^ägäRj×X¡—ÎëFz½<¿_üºz<[‹Æ{£}X}¢±±Jª¸z{†¡6ÑÛÕMjoâê*Íp ·zs¶VQ4Zwω(ôê¤Þ5Q†Õ;6ùmYã=‰µÆ|Ecå}ク¹¥±õ6Õ½RKëþ{þOœNãìt8Œ×Þâ„ç—8Ï/x‘´QaÅïËð?ex>:áG:hÅÓKþv¾ø‰Þäâòæqaa—@ã_(ãp6Ò Þj—÷D×ßKÞ/~™„e°ñ,„–û²µ«2|,ÃÛÑcÜöÇà½+Ãÿõì̩XXˆµ±SæÃÙZ6ÂÙkà猎6ZV¨Ýe`ƒ„)mØœ« ²š¯²ÉR!â.èiJ¶[Y„ ÊÚÕXPa ã:»²^ùÕ×üd²²Bvž«-ã„Õw[\ô–g1iuYÎ3j…RYz[e…‡ŒŽ Úe+ÌÒó"ý¾H쥽°²a&g¼„DÎ1¹ž œhœòÙäþ5mrNX©˜ÉÚŽòÒ¦ÓÀ¯´ï;;J˜r”¸9ð9è‡44u¬>nÏÖÖT†É,ð4ŽrÈ`´^’³Öæ ç3&$ۢǂ¬Ìy}uæûl´Ò{¸1Ùð{¶ëÇü¤Ða°ÕîÉÎ(kâw²ÑÒu¤¥´Ò»¬§•2vuAÖª•ÊdªˆRCz ø_Cü©ˆó m£ÉçÔQ‰8N&º1Ò„£“I¯8ncM™ßêBV›Y+(€,× k©ó¦~NK(¥KV¯µ‚­çH8šnwè‚“ÖÓ0l-iS:rŸÕ—3§áAIÏ…àÀuIÝ>Z%|µ{M:€‰VH=Î*K=Kø+žÙâ²£îq½û&rÁÚ /Ò„A.Ò[HzÁ!ÜâÁN!X¢±Îî gCnY}W¨ñs¡Æ»2á}^îgnÔ¹ðM256‡ŸÇ[€md ¡³×ä¹×$˜¿3«éBéF@¦„³nT GiÅ m%櫳ÝòC<ƒX‰*¯rú|¬¶›)ʵ‡ "·ºÀ‡ 6TÛæãã+?mß@±ÕÞÞm/‘/–¯?ðórÖlÇ'ÊA€?Ö´1adMkdvÎ ïSÈŠŒÏF”3­£¯0Mlø¼ƒÛ)†À?8^·R¯vÙ '?x;·OìJ«»ºl¦†¶}¥&3`Û~“cú©]öÖ/|ÙDµ’4RM&Ó¢X~rn¾|NSæLð·A‚¥%øÛ2Ìh„³~Ï ã[YÄj|†îÅ£Ìk0±$3GdÜàõfiƒñx˜ Çî%‡Pn”8­ÐXi¾íbØÞá4¡‰!†N%þ}ÍlKl˜øCÁé#·!R÷Ûâ·/t¦|‘Sƒ¬\l­…‘MÂðÁšH Õ›‡Æ¨¥U¸1ZOWEa²¥^rÈUQXO % «ý±u&Òk'$ÝV¿­Fg|Uçc¥Yܤ#ÜïåàœˆÜŒiV‰™£Y,Ú2µfw܈†š¥Ý!— !Z˜~ãÁjm†ù—j|=jç—Õ”]ÙQ趤D‹ôS‘>éogÕ%r­¬jð‡]y¤zª»Mâ™íüÓèfI×ex_Ûk€ã‹í0@Õx;7ÀËÁ†óðs^ RÅ-#ÿX†û6q7z¢»Ñ=lF7œLCÄFÁ¼v™Ëc«µi͵”`'Ðâs)ém1“OEoj+‘Ö‘l—r»‡/Çöq3æ× µ F¤*áÝèc£ÃÖˆ§ÃŒDd"åf nªX¥ýþ.§"N\³rž‰{rŒŽßæxháá‡_ù­Ú †¥F/!ý%ŽBœ$oõ¼¤‘Ûå\®ÃxT38G8AZ=åKʉ¼Š¢•À»B/9(ZÑQ<-Ñ8JØ^°°‰Ë¿Ô^ŽÜçÕ"¼ÆHS­[Á`2ch¦Jež¡•$^£"†dš8 DîJùi (¡º$Õ¥Ô~O<¿æ7„©kãàº6ZûšwàµjßšJ¥×ùô:˜±­aëÒ´M„ôà»–}Ie5©ÆöAwÄQ/XSµU ©«Ùêøu£¬Æ‹J]¤̨‹`‰F w´š+íÍúäµ~]s8¯Õ?œV˜ÔÒÑ[?UàÜäƪAý@Gº²Õ»§.ê—Ý"vx Nbm«·óÛ'÷äÚâRuWš|ÜatäÛþÈ´Æï×¼ÚÀ·2qúRIÓ·}¹;?ât· Ô¤-Ó_äS5eª¤5¨@whò²÷ÈÍYJXœn´ïKǬ"“Ò­ò\ö?¢ø6[¨J`Ð&n€TIC‰€»§Ô•€¾¥é@¹IF¬5J³EP“õ*úƒËæÓêU´U= Ú­ºafôm`uq“<å²]¹W.Xáà›ãáç>O¶V=Õ ú9ë¼8SíÚ©":ÛË„¥^šÐæ)E¤4W Ý'ÿB üÚ.ƒ­­!ß °¢öÕ±¾ =¦2ÂQ¶¸°+q+ÞŽ+ÝûOW® ³¸Ò æÄd[B¼x½Ý‡xüކvd—¥—„FSy"†Ó§Ed¼ÊÔUYª‹Šœþ<¿í(¨å·Xb=¨…?¡98U¾ÉŠSÃÌ™x£é®3¼¾Óyú#xËÏËáU~ÞR¯ÍVìbw]^QŒ©òÙeóN££R RöÄÓvJ½ëR§%vŸ¥pÚ6¨Ò.Ž4J“øàFéTÂr1nfo+ÓêîëY€ºHÏ{+ë’ 4&wFe|}Q£NÖE^›>¶è™ºÌ`j,ÚÏgjö)Éì}|#•>zc”zSJjŒv AV˜ZPÂ?µëI Æ'&é« 5ámã,ˆ ÔFóþm´ŽÁ!IVäÙ‚pv%©—׶ѺÔýà6šéÅ/ÒFå‚z-k£u’ÃÛhZÁL¢z~¹ê‡AÍ•WéY%vº¨Y÷ΤzñÞ"oðm<øRÎÁJÞw¼Ë¶ÚE Qc©X•>¸”PŽ´½äº¤D¼S†–@:àƒË'Zg&Ø?g묨³kÍPg×:«Ôù*[gÞˆ@êðôÛàsÑ>E[*ëTã)ÇÐR’cö’CЀq‹¼EFãße¬Ov_C€@+µÞÝ¢Š~~Á—Q.ŠZß ãNõ(²Ct´’9µÕt¡yn`sRúo N)ÍsýgÁõk$ο˜°Þóý+ !†@+™bµ‘‡zÀ0øPÔzù ¿‘CÐJæ@@Ÿ Ù#zÁáñ0ªwöMã©‹§¡qÂ@¥›Ú!:É 4°DƒñÑBÂó¢Ãb3ê³°8¡gÈ bídXÛ[÷òX°@ñáXXœ.RKÜ>¡?ŽE+™ƒîJêóYjsZ4NèÖúL‡¡ÑJæ amãÌ¡ž1 Öpb~ÿ Ð0T¶ÓV2 £ÓÇ.§O¢'±ïoŠZ¯Ž”D2lkáÑJæ@€«„5ö[†Šç`ñ§ 2È;´’9XP(~o`j~æÚ}Ûúto|•½ÕY“‚}ÑF=eeòRý=w t†~Økü§ÅÿyPÆendstream endobj 1964 0 obj <> stream xœíÉr·ñ+ñޤcޱ/Ç8v¶r%e›9Å9P¤¶IÉe‹þút3ƒÆ6oÞã£L;.„1@£÷n4ð¾ß°oþÿ¿¸>b›—Gßñлÿ»¸Þ|~vôÙ7’ɼFmÎ^Åoø†+1(ç6ƪAj±9»>ú÷ñ»˜T{áìñEj¾Á¦aš‹ã»æ€W©ù"5¯ÓgÏSï»æg—©yžšw´÷Ô0Žw|rÊ«=€N?|“šïSóYj^¥fÈp+íñÛÔ{[ ¨6úº¹×Mn2ˆ§îÿœýýH09á7§|°Ê0¿9»Ü’у·ÚºM6仓“S.”ŠØ­`]‡Ý¸ñˆ]ã¤9þtnâÚ§œÙA;ŠAkÍãê¯éÞZ4"p¼l¢ú6⃓ۢ"bAÛ>ûÆHC™—beú$À˜²ÈŒ'œü@[kéÄ8U!BÌ ²Q{\¡`^nBG ¤r@^ÓA!Ň£ÏèzÖ%SƒSr¤²OŸ—.hþfO Y;X®f ýÐÜ‘i"{Ïšø|×gxà-F„*óþi!ôæQúQ4ÈÓBh›C¯›ûVnï7„.r(aËË_B`ã^#Þ„ÒLØ3´%sÖr0!0³”Z›ýùó¶¹Ï×’ãæ>¬Ô ú©›¤ÇDhÛÚ?¡O_à¡m“ôBlãŸ>BŸ’%8l‡˜¿jtƾ?/PÔÞÆìûÿ‹AÚ¡OŸ?Ÿ€z¹m#Ä{"Þýy¡ßd…µ¹§kŸ -¦ìÞŠÉq'_ð½ÔÌ ¤Ls¾ [y͸<¾ˆã½7¶s<2•õZ0Lsá,Îpä6·\KŸAc 4p›ÂìW^Š«ð¬¡ç%ÝॊžÁ÷‚Ié1û„x¶Ú9Ìþ!¤Ú+×ÎÄÀG\ñ åß&4þ)5ÿ0’‰gÍÍxä˳£¯q%ã7/ß©éÍGló€[òÁØ l–õ›kè1У枫£owÎ¥zÀábpÂÄ\ê. º/š¬Sf…ˆÔÐlpffÚ[ÔÌhï#E¥´ÊG)ÐV*É#€²ñLFÒqë"ÕÇ1@5‰y@/¦!Ú Ü@èfÀŒt–‚Þ’™ÁB÷%馜'¸®â„ÊZ í‹8ˆõÒ2Ðo˜emÝÈ9 ‚nç«Ø\à«@™¯¤WÐÇ dz¹‡ðL10nVóPd‘WI»|žzß§Þש÷*õ^f›ªÙÉ N%‰ù ÕB¤‡ñ9”òø40ˆ:ú`+$·°K‘Okp]`©›6Q‡“S¥Ì`8?þ[®™’8 , *ËU|)ÕÀA¥ÇŽ;@ p³NOà†E®Èw=QxK¸õŠô#sK=!(_°i{T}Nh¶µÆ —µ ×߯MHPã=®'‹ÞÅÑ(gDä)é$TüÈpŠü ‡ÜgÒ ÅåÈpr^í@î8ÑjÐR¨BÚgÔ¿ïÐ}#ÿòæ$œÀœ¸t¶Ïah޲;ºçÈ J}|ùÃsEÿN!x‘û5ü¥7ü†ˆBMýøéˆP%aÊ!N/…mk®Ói—§Ü*ÍRpü,FrrFµˆÉ]­JìAÖ”ObŸá>QЍôž97ž/ e:¹ tË?Üè\&”MF äø@; ^®Ž˜#p2ñ¡ô&3¿Ã™íà˜ÎF¿ä<ãxèáh­!S“H7Uä›6-ÂêêÅ̬®„È8½nº :!íïízd8‘aI‹;¼!ˆŸ—quаOŒnY ?žñ³,8€(j{-í~„Hï£UA!Ò³}=âla÷±—;µÄâM… åõï Z+20@è È"Ó'hrNß•w)ý„“¬té0…n!&˜x Îx4“æ£^Ìá\êÜã2fðZ³¸"˜ÝZž&g‹Rl¥M)N:Æ;àAB¤à2eò¾Ã9…ï(œH ÝQ;þº×ùûSܧÌ]§B¶q„6áñ;!݃Ð' ΜØ|Õ¿ zB`M¿|M,µ33«oR2n&OðýùÄñÁÛõã„bŽ{0%íîø:XÏ1£bH”o:> B&슳Œè®‘àîm Ívð|€ä^ö½µ‰‘½5îÀ|¹½N\÷s×z@çÆGx*Ð<‚·&0Îv¾ôÖâ‚î±½5áßLlñÖL€šÉUc^™®]ʼn¬·ÎUé­o:¥‹¾—ÿÉÙÂ"EÔCH•©Ù`Z9ãAâÙ’˜ë0³Ý›ó=@ŒÉ–]©`wÖxR¸ˆWjA0p7r¥÷4jöcœï1Y+‘!õ¯fo pœ‘ŸÉsu:ߪ÷„ðƒ3û,•½õ5ˆÖ峯¢2ñ.2°ägGBêY·¸LRè|#;¿M·€©Š6ÉjYQÈIÊ1dLhŠ¡"*û0­£Œ¼ègO˸Œ„1kãBÛtÙ|oZ‰¡Ë8s3&œ]ø°4ï1<õyÚ˜o¥bÂä…À)ÃÑÝî‘cD ò(Ê. Ký7BˆÉÏ^J_=ï#^³…} ž›)%I{ÍZžîþÈo6Ñ7°4AU'6‰:ª¯Á15Eà3QtäòLÎåT3Ñ ü”ãAbä¦Þxª—˹œëiÿ›ñÇrÉT¦°7 JH:ð £­Ò¾sïuj¾MîRïíÜl*!<õBxÇõþ€{qÀ£R7÷ÂÑ\¥¤Ø^» Þ¤fpÊ”àRF§,öV» ÍÛ¹¹r7BšpòÃ?‡Úf$žU}_Än¥ú9¨‰ì¹£ý82„ ¿s>xüª²,3>·a]!þ%dÁRýT!Š8o‚ ¾×­òZzÄ“•@?0ˆ‰w@pb¾™G@ƒ‰¾Y?QCîð}o˜zš٢·&‘ÿ÷ª`Ü×[#'‰¥x¡é•‹'¼ üP  +xéà".8Y± ÎÿÚ8Ј–?d’HðMÜ«•}ǔ茻8Ú¬ ýèQÒ)·f¨’"µŸV¥ì0(”@+½èá™2Ř9YöÕB´Öñì\5!%€ïJ: ”¬¨ìiX_ökˆ‡:ߎø^2L¸¢QªŸ•ù,®˜DÔ‚í§Ì&èµÊzÜýa$™Ê,"-DÈHfL‰DxrN¯•0zL„Ú£¶ùÁ+ òÀ–k4M„æÙråгvkÓ.s›Œo@ƒÿ+ÜöËéÓÕçyÈ.·÷­ô16E|ûëi®Æî—ïÿh,–¾Û „׬Ø_ÐQê{RŒU]— 'œäúé%x:o]ÃÅYŠˆk7O¹$X4+uQµúv>ÅzPੌ¯#O ºáy lb%Ác˜G\ÝêmÇŽsQ©‚PUð•6GÛ­1‰˜í zpˆÓÝZ¤Ã™Ä€nÑ£Ç WœÆÒ"Ð")µSXœ€‘DôÀ¹ÄÌŒ'¨VV‰ZÎ;Žßö4?r^ÿXJóç¯L¬Mó€¹i~L%GöWfTòÉæùë4ãúˆ ƒ›ÄÆ-³×¾h¶Ÿ1ü-oø³å gÿu]ÞP2ÄÏxºA9¿ÅN€¡iyCö š­ìë§ŠW¬q`ÊV•–Ö‘®JЪpY)TÔL¥”ëYš¡0õrJ3 ÏMȾo OθӕeÄ5˜-œØ%LS¥/Óè^µÊNåqÂ@ j|WƒïeRÏê*Èt¨Yø†¸{ëëDrßËw]™<ŒoˆÙ7 fK1+CÓCéz¬Ps«/…|’Y}æ¶Æ¬Ë—ÀX¾|«0`Dw˜/A|›ºTd¤È W?ÄLÃj¤‰M{ׇhˆKÏ”Çä-›K‰÷¨ø o.W|D óÈh­+èdÐ_…N в›L"iðqØo†ú¦–ÑòIÝ×2{¾0°2hߦÝ`œN^Ô.·Ë÷õ¢Œ¶=/ÊáÉåk¼H+ÃÅéµ·‰AbÓ›ÕnÔ.10&ÌøjG wîVzR85·k‹oó[MZ ¬Œ±–("±P%?{!¨øG3ïòcÇÙKÈ]‡p•ÕƒjØ©¨µŒaÇ»”½ãLâHt÷óéÂîΕ6t;=/ã6m÷Ânu߀^!›®ë"€ùß2kÄ'ÒÌÉ”‡«½KÕËñÞëMÆsÁ¢8Ž“wj¢a©òä”÷©õé¥#‹ ®§HÙ}Ö?¢îò3Mã¾Y¸.„—Ç*ÝU Ÿj¹è(— ƒñ<~j´>·Fî ¤®ë~ÝÄ•­*\sÉuHÆõ*xîFˆyël-%ªSP ³!úG²ÿJͯZͦá<0-g3ZhR$)Q—HA/ޝN„ Q ãŒjù¬lú²£ jg{ºÜäÅwT’¨Ð䇤©ÿåHJ©»Cè­¦¼Ìo¶|9;|žDqFGÛ¯4|™º.mÐ]yu4óÐ`„òùˆBk—c5†ú¾ 4sÀWÇ_b¯OteM[(–d!Ÿ³Xb ðÚ`U¨qU¼ñâµ0ÂÛîó'”žóUÔP†Š·Ù{ jTϧJjµ¤~"í1RŽv”Qºý7åÎ[^ò{âÉÑ=H°S^ïÕ¡ÓþO+[ÁÈ9œÄ“í§ƒ DD3¦·Úã<Ó¼0vº|k‹ûA!ÃâìV_‚댶eNOÆp+B)Ö¤€+ko¸¬@`‚NGaîÁO}ˆ"㋦™úÕÑÙ'øZNÚ]OÏWbá_c¡ b>l±ýXa%ÎÊj.G?ü-AœkeŠ­ã wÓ-S×2A¥·œ÷lB÷ÊMû!²Ñ¬9¨*\q¸Káü}N¢¨&|×ç¼K¥:ojFÜFÍéu\Åk½pC³ª™ʳ[ÁÅ ùLÈt s*‹Ø¡¡Z'§=ê.n, áRM’+ÕU=°ŠW?°ü‰ËBì6®i«ó=×dœšù­¯dÞx‡;¾ë‡9L,üvc9àE,¿åà踡ˆVŸ(?{œåJTµoåJÄ Gùƒ+_T[ñƒ‹°­[?õð'Õx]¦£Þb.³Ä„Ë a˜HW6Ï^ŽœÀ²/‰7Ù_™IÖ¯gU¥êWJuNð˜FñAvy§ð)¤"ŒeË€¾¥ö¨y¦åòÂDúB]Ÿžï” …¿<¢‹Ø{Ñ­ì81ù%àéùWñ;gdéš#ÐB›UJé2÷6+»}çæ&Ø÷»`@ýVŽ©¢Ð aüõe†õXŽE3Íú†‚kö캧øb®Ë 8š¬ËOÔ*”š&b|D"BŸçßò8h3#A¬¸2»1~,˱ýÇð.»L”9^á8¥7å“lÔׂF>RžmƒO÷Yje·’åWØâaI;Ô/ƒD>½î_¸è½ŽRŸ;LŒ?N¹(¬NÝLÃÝ|_B°æ}‰úù½Š©iÿ˱$KëŸé½º*„·Ö¿æÞLÞ(*µ¥ÌÞgYx#2L˜‚Âò"e廇\c•ÍÁ,!ñ)¥À"?³³¥‰D+z÷¶½Çž2®­æCzsÊËY–1ד¥Zñdrˆ‹{d}9Š h QÛïrw Iéò˜9¬²>ÞÓ Q Ûª3ÃÚ’i'ù¡i‡c{NIóÕ¯1OK°4IùÖŸµÅæX4äac4E±_`èpUÉ¡T°®ÄÄJ¦- ã©Vù5a,ß/glw‹¯È]ÞSá%F‡õs3óÔŒ?98¿}··}t¯@Ä£³Â3ÝØycµ8q’\á‘-†KÆ©}cj#r›Õ#réë-$tÛjƒÉÁ)‘¶ÞªÚý××ë ¬1ój±˜Œ:ìˆ1Û¿ÁñÖ¢h-2ÃKë´)û’äG¯Dä2¾º‡ì».¸ £ír8î̉µoÈãðTR±²::ád¡ª ü<éåæŸ¿ÄÇݡɃi25ýÜœDæë£ÿ‚Åendstream endobj 1970 0 obj <> stream xœå\Is\·¾³ò#æH¹ûéL¦ÖÝøß‹›Ý/Î~ÿŠq‡è”3»‹«³üÜIí+ôÎy=H¯w7gÿ8¿x&%´ŽþüÕ³½¬·!¨óïé·ÖÖ+~ÿlo¼¢v­faÝùs b´ö&ž¿cƒ¼¥ßÆŠ(ôùë¥Ë ~ ü] Å¿ä½ùv'ïZ0®i¯•Ÿa1ý¾^ºÜ2f¯PdnÀáA?¿¢æ ÀL†šy|\SâqkGçüÇ÷1¹U&aºöÄQOÉÄÔß:ôÚè çbqØœ58Ëp~}Þ<ïYα×yàÌ£\Î=Ö#ÛXLò<‹ æýDžâ«Q?·¿oèK…^2q±ÇÉù‚Ò8ùnhrät"IGüûo4t3SÛJ†!†8±áKŒ!mT˜æõòóÝòó»åçËÏKúé îýùÝÒú¦ê¾H?]HŠ~þì~ùùýÒáõÒz;·æ}TæGÔuÚF¡7æéÎDÁ$ø ôždÀø<`Ç< ôvŽ˜°èˆ#Ñp!Ô§IóïkˆÓΟä&Ûaâƒrž¦2½cLÁYƒzÍe=–ÑmÒaҬћV>á³%‹4‘~(0qîX3›‡Í~7jvmÖ[·ƒ”±§ýøú®ÛŠ®2dQˆ‚ !¶ ß‚ÕÄ£Àdkô  Âþ@¼€ÅÀŸc&3ca+)myëÄŠ€c½´ªù'-à󋳯 \Ü]ߟXÕ»_`ãqƧ;Íjwsû„õSÃgßë`¨›@# Vúì¸ea¦XØ^+‚¶•æYcl–.g×—èÁ)ç;ÞçÝš}ÌGMX©#8¯´Z_5j@Í¢uFáZ:¿ìì¢ç)¢#ÈÔõZ’Q K-­MPDKA—‚ÁÛŠŒ±z-/˜›Äè[jZGßðºÌã)á 뎓áßTRw%¹l_åV©²–¤=*?9 NÐA0‡aìz²ÝÞ1K‰Ë_S‹´µ(ý–³h¹¨­¿/Êìbiý|iý¢ÙúÍÜÚÔvÄ~š#É´æ,L* 2W Ó¡>¸„^ô«fxú…2¡Ûûü™Rj뜧OÝSŠ i¥­-û¯xŸ:Ëè×ÞŃî¬ûm¹¡Ùø|™§4ºg^Nk2]öw¬}kOª5bk‰øzŒD Q®ê2Ì;›h<×#W¹UxB†¼ìÄÄYPépèåÄw£NuÁµPXé ŸåwLÌØ¡f–G.½ë‡Í‘µ<·!ËÜI° uT¸&ã6¼*‡#Ÿ Ÿ—êüÛÕ08ÒC¡Ñeí˜4bO£S] ¦6ƒIÃÒ:0:ÈUsÃæÉääŽEiaœ¦îÅJŽÍ;«mÂe—ýi¦AÁ128•‰à`>˜i‚é£L Z“É%f· 5L¨ÕøÊ®@*@ òCôz·W0¥âÄÂés"à£%e'—fÕîaçæ¦ÆZ…Oûvq¯>[~~•”ˆ°àà‹f‡?Ï?gëPl#˜õÒ‚›` Ê(Ñ"ç–-c°ZäŽp™#0ÀÚζàMÓ9¼_~¾Z~~¾üüµöSëÛb#ë³!sYèxIÞn˜¨r½¤M€@lÌ›_/‡sÇšØ~m•ñÐÆv+¤nÛ vˆBíö°V„‹#‹üÜô¹¿_¸q\|ÂsVÌA†…Õ=ˆˆsVÄ‘vn9áœ1Ä`laˆA ÷Azï,8Mÿ<_š7è’ÖtÉ7è¢E ƒ‘ÑEKIgúº`ˆAä!ºüípº$$ƒÕ"iÈÁ;†%>)º@NÁ’7Öãêßq:ÏDbQœ>+æÛ+òšZ[†)^XÅzÖÎLú¶Ù-äjùy³|öàúY‡_+Aª¸'÷ØÚè¼ùxQ¯zA÷ÍV¶†ÛbÅ? ›&f~pàËCmÏ fèºu\lz—%Ö¡òÔ}#j7ÿN1 ;Å”1ŒÍ$1¯XâG3/ÃÐ9¦6Z{)kÀp& 6Y{P3ƒ•sË)Öž Fapö#øK®þOÀPµ üŒ¡p*vƒÕjÌ3@í•IÒsü.Êò’‚}×a®Këù‰õçßò>Ü”/¨€ýEèÝø¨–ÈÓ"&%E]øã…Õéì•’ý.{O¨=Lt Ô’JÃÚ'… ór°sÃ)ú˜nD 1@æa}œ—\9¶ìûö ÅAA ¥åÈ i;Ó¥Ÿ¦þ½]³Ã¬Rƒ¥d!qC»ò¨ž tó§Ÿl‡=›ÌöåÕ\bÆšrG>>†+( &C8˜+>4Â|гˆ&Ýë)¡,¯ pdÚ¹ïUû>ŸºQþ1¼¡œSöéêö—±ïéç'ïst•àì®Íƒ,ƒÉZ{1û!“ ~š¢6È*Òš®6Ät턦𠘂-´4¹ºG»ñÕ‰ò“ë¤Ü763: t\ßT×R|\t-ö^J–RÖ³ÆcõŽkKeŽñÿد››“¯öZÑ…„%Æ;µœãÅð˜ãñ˜ôEAɘô|i½k}ö?îuƒ AOIˆ|çÐTŠñzõ¤AÞ;-}¤¿A LAPfj9%È+,¾ 4Äàà Ú縓Nñ/ AåñÞ:®¸"ç}AY(À¤{J½nèÂg”Õ”*…»ûÊÒ-Õ˜‡X({R˜Ø>&vþÐ0qí]çãYEÿØQ~Zxâ{2t¤žnNÛ‡ ²×šA²ŸZ²ÇtÓ*ŸE͹,úFétuXmádU)[Ek¯ûSfb_q0U„v¯¬TZ]¨’¿qø~c«m\Pƒs\8:ÏJõOÈ_-8òã ¤y0¥6ù’ äg6aŸZ~¸#ÚênÆyÎDAËÕ”†¯48ùpÊd“ÒréÕQzö2zC‹d×MJÃT†‚²švÙÜI?Ý·¶³¤Ö€YÊÿÁr±6þŸdtYºáØå‘ jÈ‚åb²Ë=U Í-'Ùåžò;ʆpB8ò1†yÝ5J jñÄñ$ãèfŠîÖ¢õ.Ás5]rt rÈ÷ÞÈq¶üN[-sTù]ûWy%à^j©¸°Ÿæ^ñùzá€^uÛ$½âù—s^"ÅV‰$±¼¶vÓSL–…\y …waÓg "jTEJAGðlUÜÒ çu/ÕJ÷ôb–¼"Éc¥Ðãä97·œêå!@ùX{q%:@Z¿J_­j7«qþ?âÞûÈ:DŠÏe¶H;6îeFÝ YQ0‰‚Jšå¨D€‡äìD†ctñC—[ÚNŠ-ÕQÏ'„0ä²¢Y”¾…A²›uP›SvcUÊtðÒ¾ëLEgŠYjÁTÖÒåüÊ×ê\ÄëS”#º+oå-Ö’ÒÏ~U"4/Ç3T˜Z,NTmÝÓV^SòµŠ—R«áCÅŠÒ?qã¶uêàB‘Ø‹²<ÌÞ%ìûü¥²Æ2Z+Y §b™¤ûáöC$(Í(ìª<ÿˆ€Ó+ÔÜrR ÂB¤)ýìIˆVÞ)?„%ð3‚…¢¼”²„`.n!1@®ä*Œš1Ña¹b3Õ”nAÙ:“pDNo…d5P1’J˜Â Mhdɦj m (–5‡ˆ'öØÜ,úÙú‚¸ª¼6؉®ÖšÖçT}R,·4÷ž†Öº* aÛMκq§, ¨¨hg˜ÝÞ*µ¢ñD<ݹeê<ΔÚÛ¢ù–+~ÜÈ©ŸKÊSË’ëwúÒ ^«2©•C2®´tHj¥k zÓº¦j4¿To¿Ò`uÖ?É@/ëß»ýx=Ö½­šçX­^Š9Se„R»‹¿ž]|ò1Hc…Ñé='¸³J´^I ýõáMþÐU4_çfáuAÑËTªôì¨kŒªË—Ò]RA%oå Sœ.÷}ÆéEéÁÝçV#bÇ« …&§ïÚCùLFïA±ƒËç'ºÒ³XªÛ»Go€¨QðÝe훤}J¡¦7$àÔù%Ri¼DVWÞvêÜpêÜÙßâ2>€•gîÇüÄm]à9¯«xÑú(V!ˆú(äàœ©à} ˶ï’ãrú%ù®—®,…–w1:1Š8Zúéç–S"Ž–b°CÀXö¿m\d †9—8<ˆ÷¡/¿Á†„ícQ­Nѽò\xi6yîóùM¥V/­Èa¿ºv_½ aƒ3µ)˜×©GÿYDS>áÅH6vޝ{ŠsÖÞÓVÕ æ¢:üµÚªîr¹|•¿ó¡´‹¹t±AÊ÷M–Ó9,3w§²zMEÙr;ûÖKY¤æ‡Ÿª°U‹\Tߪ.S0ÖÌ6wéTZTé$)µ`z×æÚžiF_ºœ—'Ro …íGKKx¤uX[*åŠxrôù Šy熿)wPH;óŽßóÁª¦â¨´ £Š˜Ayc?­¬49;áƒÕédæMvü•^ÁÉ÷G‚qݫʵ1îÑŸôr›1«"…U` Ç»Ž (zgæ#¤ˆF*¶âpÂÉc çxPnÈÅA¨ ñŸˆÇÇÇt*ì+é39L&ÌfÓ“]ŸÕ)a¹øgûiÑqq%Ú7ˆ\{=ŒÛ‰Se‚í’Û+ÈÔÑ”ÏäVŽ(¬W#ë4p”'‰}Ù*ê2÷ØxB­Ú¢¬ø@¡;`̸·^ºM»v …+tIååÚG”S¦~º‹ŽFÈa+ó¼‚~ÑKòrfË+æû§(éendstream endobj 1979 0 obj <> stream xœí\Ys·~gåGìãÒ%Âçkb—ãTŽ²Íª<Äyij"‘²HʯO70ƒi`0»ËÝ¥¤TR~ÐÆ4€>>ô5ûÓJ µ’ôßðïë·'ru}òÓ‰J£«áŸ×oW¿??ùò{PqEtÚ™ÕùÕI~G­”r·r„ò°:{òõ÷§gRx­£rëËS)´´jýHÃÊ+ qý3=»à”õë÷ô .µ¾;=ƒ`„Ó~ýË©!½vë—é½\„õ›D:Z-}Eƒ-ó@Ã&Z©àŸç¢­K¨¶ŽÏÊëÕnÝÜònù|_Ù¨ƒ_ÿazü=:$ª×çÝ ,´Ô×ç'ßÑz.®®NŒvõ+2õ›\. +g] WoqÄâHxsòÃ2ç›íœ÷VD‰„ÿvÚÙåôø0âfý&=º@P|y]&¼›oªc~ù½Ž•2X/¢†€ÛJ¼Dy*!wA²pÒK—Åo¬Œ²è¬ŠO¿ËÃ6Mb4Ê ×üZæGÝú6é Xr•‡c¨iß0"—4Å ¥ìúÏ`¼‰|Å—Óè;¶§›üžV!«“÷.èP-ÈðÓ¼Þ|â´«áU°&obµï¼-7pÁ¢žšõ«Ó3ÐØl¨ØÊŸï25PzܶƵTû{='cñ¯ê]þ|•™ÔD3ù žA{·þ0Í!½9‹^€-O kœÊêÂDð†I—?ßãѽ@e ÕžÙ›œÕœ#(àP,ŸÍõ,Í„„°þîl%/·A[K¯–ù/ˆŒ¶ÞÖã[HåÇ jQò5¹Úñ9bš3 [ Ìg-B‚Zi„7eBfr =Y • BÕ4¬û3|î‚©Á‰`FË?Š"Ü{Ì Q) ¯1´‘cedÈŒ E„GŒÞ™-ö ™Ÿ™ë¯¦ÇŸ§GöÚ›^[‘"Òk í&ˆ¥™=]2¢„‰;6|?ÉônH4éuõ¶›SルŸ¡A!` æ{;ãnzD{DdÎë#*…–€F¯,ú"*^øA gÆ‘=”I ¢"!ìg¥gN*ÓúÇu’ÎÀ2å¾Ëú‡J N"¹¸I ùqƒÒ‘ŠÀyä9x„ö‡IˆI!üew!ÐÞÐà !Z4áõY9¿¨¦(ÚBŸñv’Ùåä=L£7Óè»iô±ë=½(£é¾Sbô‹ò}7®xDI PgWÖJ÷‰ Žè2²(ÀÐ ‘Ò˜,‹VÉgÚºè,âœÕY,NÆž\ »Æ%«)×[ßOÌ~9^I0ÖHöÙXx‡n·¬aäË/LLë¯]ðy‹^‰ÄC‡Î¬»Ÿúº;úK‹ziôÍ4úãiÍ}(é:Ã-=\gŒ¹­ ò5ñØÀ õŠ¥¼¶À¯ŸªÛùT;8Z!Áw¼hŽ6#ðªq 84µ»aÛ½ì2ç¶{öÛîî†í¢À6œ]U¥Â&dEÇÀãN+dE±£}¡>¡S2»P7 ìEWŸ—Ybh€ŸŒÙ «?™Ñlwy™gf4Ä–Ï ¯{§âF¨äŒ.S8§gÚ¼6ât‰ß–ÀË®»œÆx8<¼Nápà©·_°þÏ'ç_yÛ·íkíÄd‘á° ÿÜÝGÍ#8¼ÝÑš†î«äÀGÀw!Û•cc1FÇ“jÜÅçaÏÇñ9,j‚ tBu7óSri€‘‰SC2.< X ú6C„£ ýèWrF=C,)`ñ+£ šM±¤ÃSFöŠ%)«HCzäÀg7pÌ$P_¥ï¤ê’ÔsÖ‚çvxbå–åAxf VcL­(IUäÍÉðWyšƒ§Pˆ å| ¥|Á*0ø¹X X§h}gÜ“³|ô^ðn±:ç,ŸÕÉä9”ûÁ84âc^IéœÌ¤3D{I–LÊã¤;‰An•Œ»;ŨÊ$ÿ§ì0£1ê.n«¹÷æ 0ÞwøÉ­“.ðD•DŸ‘NN…©ùŠè¬š,*ï… Ð;B:ÏeÝ0þ#Þ„UnýmZÑJtN"Án•ì›e•snž„!¯Z¦ðåIT! ?I9©á]^AkS*yÜK¿¬à/Ű|=5*@EX*´Pá<ŒÏü8°OD€!¢•‰ê•?4À›! z‹ñydÄqóç)‡]çÏ“öy s~ñ~²Â[f¿ƒ)¹Íéb´L5e¢—ƒØom>¾JÔ.yo´ƒU1xc‡¢*|Ó]uÅðØ{­+ŠE /¨HàÑ²íÆ€úÓÓ »égU ÊÏYdÞ/yTÆ Z;+³¯3W%Ìò ´¾B“*¥žØ Øœvá4®GƒhÙ•4ÙA:×XÚP§2BÑŽ.,ìn˜hõ4FŠŽ8½ÓÒÛ- t[”ÃXÕ˜C‘bç4ãÍ>’îjò™uHMÆ&$8¢ï6TN!8‹wÌT9¨œ" ÊmÍ6¶¥Ó®Û}ÔëT Á¡ ðßMUAv=×6—T"ÂFÔsH[ÚõÊ*¯¸Ñ–ÝÇ6i)S=òá)q‹mjó%•Šçº¹¤j® k!¬ó­20ˆ.³/ól$_ Ñõ{‰m€çÿ•®½©þÿýå•QŸ\×C*f¥ù‘¨U~$Šœ¾v‚®â“½ýt^x–ë‚hû溻ÊÃÐÄQ;ÞÆâÑã†û"É8Ú:Êâ‹Ô×Y¤úÑ9Á-”èü˜yš¾][¡ñfšÖ›Ü¿¡ 'a§áNÄQŒþ/ÕØBh“‚.ã*â™n\þœ§˜èíH„D¼£8ݱ‘ÒË‘w´1$ )~]2¢°t"¦n -;\A†‹†<ºûEh-[[J\Óž4‚]7(ž)ëRD¹ä怶8ßÏEKIšNÛÈH~ä…”ÈûÓ”O%ô5÷ËáËûç]57L‡éþ¢¾ ˆ<†yŸ·g½¯ü7ÖŽ“ØQhP!ŒÙÂü„Ò[x/f=ß;»;ÐU'’Pµß4ßÐ  .«aÔ×øÌS#iÐUØ1¢‡ªSK›´P¬­¾ÖïA¹·öû¤ŽKæÂÙð"79 †~’§|‘Fu‰¶½äåÜWWBaIÇ/"¨£k#)ºÃøZäß; a™´…Î¥àÉs[iš7&“ÿ§›IKø£'<úÉü(tœ½ÿX}£‡ç­)ŸªGë1%¸•8[æG'Í̃ÃkPaãåA]Ðêéþ(!Qp!Z${Œ=pv… Q¯%@Ï-L;ó©î =V‡éYb½éãШ!©á«öÛxvšy©{ô×uPøL½¦´l >éÖ‡·š"®É^Ok³Nê4EWDµÈ>-yœNSiã¦Ó‹Ÿ¤ÓT{PC†iè4Göï4Õ>±þéÅÁo§GÖŠÃªÌ Znl 1|ò–Q*Eød-£ZY%,ëh¥K4ÛoÐ}„››Ë‚©[?XS’š’H[@Z²¯Ø‚К-ÏÔÃéü¼‡óHIƱ[m\ïL§ÔÊÝjè |ânµ¾í´Ê£„AC­”ç3oˆ*;®ôA‚@ÏkG5É,vD=E;“XËë)íuD7K,õñ­·M­EtýÎ[‹Z,ën§µ(¥¶ÿ [‹FÁîÝZäe|ß!¦o‹VŠbdcgºBãȾE. aÍGðÚ¯ù Wn-yÛÜß\ Hx£Î‚P¿ŒŽf±8¼”úàóçÎ|šÎ§ü{”´ÒFF¥«:QS¯òs´u Ç-Ð'Ýù›èNjàQµî<ñîV6g…Í­eÁ Keo.ƒ;¶sPI9Új!Êd[‹7ÄY¥´è¬âåéOhÀ¸­h¢{‚«.uü+W†|Nâ*ªeê6ØH¨^üËU—ç#5î—¯òŠÙNñ¥5¡²º:eÃç Kv¹cB@úQUnr¬$ËŪ/vçÇg:Ç4KáF|C9}ÛóE\ÕuY–ç+çÉøYð|‘© 7˦Ӛn›CIá$¡Æ*0ý„ÒfÕ¯ìgÒª÷mlRn^¸Ú“)©ÏÒþwYØmè~”ž^È×dcvÝ~âÒÍh LÄôb)&Î,SñЭôSGØmøJ|Ù㣫&¼À•”T.q¯!Øòç>aú!‰Aó±€½×2Â3;–>ÕS~ý÷4¢4‹UéQ–rsý I‰{@³vÔÝ]xy9Vuíë!“ÐSqg, Óp€ê;ôÚ¦Êäëi¸-†8ú¦ªÁµÅ6E‰yÕô=5 z½ROˆ;Z#åMPÛ±ô¼a@zü@¦ûÞ íáœMß'j¿ QŠ€Ñ<š§1ed µ-"‰ BØÃqþzzümOÇY¡6r«ÅìôÁ¿êõV·UŒËa¶t›‹›„pms*¼™º iá:ç|ÓMOÏ` Ig¯[ßZ(TÁÓ®†Bá˜Üü¡ÐÂÊj [wªŽ” ­xímÿÄeV*üvÊ›ì‰RÍÏÿwee ÑFäàn˜Õüèg@ov)ôßýÂÃéÞ-ö\±Ô—»\êÃP'ðn?'“Ц%âþœLâ¢m»˜Ënøx[JŒTIÔíÏìž[HÛs ©mfðh¼’>ßõèpöºQ§Ÿ9r¡NOP†è˜²éÃAÕ´3=N£I¾;ùQãjendstream endobj 1988 0 obj <> stream xœí\Ys·~ßÊØÇ¥K £qã1Q¬8)9Žm¦*Uq$Q«DJ&i9þ÷éf f¸¼=°ü@„ÁÑç×Çú—­°•ôßð÷ÕÙFnßn~Ù@šÝ^mÿt¼ùúG qEtÊ™íñ›Mþ¶ ÜÖy-ÀëíñÙæß»p$…±Z[³G{)|´Jú”iÕ_§éÿÿŽ”šip¡6xêñ žò.Uð»§eø= ´ vÇÝßNC:ã›ãÍt‹Û·—#¤Ýþ†TøËBð"z˜ÞnÏ6g`šy¿ùi™VõÅ'ZEÀ§ÖÄ:+W{]†—eø® Ÿ—á‡ôNÜÅï^”Ù“êq3ží½Jê¸ÝC1È8RYà‚ëw¿íAHŒÙ³é…aÙô%MÔ>„Ý)cä0o%è.'•Qªí^ã_$J¾ÆiyÇy^ímŒÂyuWRaÔÖA0™»JÚ 2ãÌ-¸‹[ ÄÚB¨bïÞI)l0»Ÿw‰Ü6:oÖ“‡+„I‡L„ÑRᮎFKKjwÂàBæ- a¾;œ0t;EÑ¢ä oÜ(¹_UkP?£v~[-¹ >r±›pQfŸTçíÑD(¯<^J kí ÇÏÊú¿v™ûÍüeÁ¯¾Ìz¡ÑU+.›ËæáE÷¹L†ÎÊÃzÍýË–h@c²5ÎÜA¶p »V¨ß7§Íž¬ ƒ6¼²*'ÝA_vy]ˆÄô©/—ì¡§Ýwœvïp^ݸR&©…Rq]™DôÖ‡Z›‰(÷(èønb2N’æ‡g^º Ý d4ÌÂ!= ‡k”lÉõõîñ¶Kê‹£}0x}­¹œœv9t²ü>nÆ;O7}¾9þê~îÊÙa@­2Ǭï1ìëv\ù9ÇOÒ]¤4^£ˆB‘V…HJÓê |‰x/< Ó@å}†.ëõX¥Öÿ¬?í~vÑ6fkA¡¨*È`B¾îŸm£¶2¦#´FØð¡RãXË££»áØ…>äòŠÆàÁêX­as@¢4U¾ªŠu,‚cð„'.Sù¦ä—ÐèHúJBàmd/é¦6šÐG¦øˆrî=Æ€¨Paku£/Oñ„Ã;ÍÜ*žpÂ`D„[ µŸ! hoA€Æˆf ×E¯gîiíMÌêh1rÓ™mPx¤ÎÌÖ:€™ÃÃäF<”Þý1î}^n¢Œãôé%-7¨û¶Ú}Îs'½t]¦;„`]Ïõ›B4©³÷¨K¡"*c0çê«Bßjù°& ;ÇOIƒF€‘ FbÈ$=H à½FÉÐÊ;” ¼š«G ¿¨ ì—¬¯2hÍŒmïË´»QŽ_º«R 2ס³‘׆Ù2¬„­)î2Ä`´U ÑoŘ2=h^EòŒfMT4¸$V^ÐUÆlÎàa $î‹Ñtž÷p+™qfk…ƒ²¶ZÎbçó7dÛtÌIZÃ^t>\ßü∢~$"ºnk„ÕÊ$[7¬äpÖ¼däáKM<úžˆè‹¦tøš¾=<Ë4`;z†oGjÖÊB±H“á&IEíû~ a•Uº‡M/Êìë2ËÀÌY…`f2ŠïˆhÌÔ ÍBžÊ©gºfkÓ„Šg ™£‡¨´#òâ ‰¥Weš­H'ê¨dì>EGa)ÅÔûÑ&?¥©˜Î8ÍøÏ7duE{X«jˆ½úðs^×Ê—|#,/yÅTk yQËúA òv®Ì ¶XÑ+tˆ&aÆrGQ YXtlšDàœÞÌ(,h¡•UÄ"D˜BÛê¶ŒÌΠ•›¸&6i‰ Õô‹êiÓ47>I,·ã*b!Ÿï À ñNU=,fxD¥‹p¨ù”–;£sÓœ[ÚÃèÊ|23Þð¶+À/¸+·fÇ157݉Àœ•KÞü<“X£Äœ¥Þ£Ç²S„6þ»Wˆ½!1Žà–q¼b‡ßÈà#H®‰Ë ÷û¡ š-FIÌØa¸B2sÆõÍœ Ÿ »gGÈÅÆŽ%0~2ƒ OâÓ rû$; „P+ èàôè˜8Õš‰´¡r×r™úµsèFhÖÇUÓž>Tc\ èü@Óðu…?çFÄ%-Ï;ØJãjÚ¦¨/ìià’Y½—ôP&mÝwÃŽèT³’ë˜/ a—qZÍqÑÔ>8áaR¨‘yІ҉ÿ:®%L©Ñ`€!ƒ1’©1Ë] Ï±Ë²E­ñ8ª 2²É†Ü6‚C—イqfYÓ6Ӧ˖й‹f‚ gšw ù\"(Ÿ¿ ^øä/fja©â±®~,šÌþŠi3?ŠQ7¶ÓˆŒ&€¤wÌÛ)„Oט wõÅ"(üĦ}á/¬óP!PPÆSßEØÅ=®ò1·X9†ö“zÕj¬C ¼†““+øG¡ý¿ÊðYwØ–ÿsR¥”ÿy¡úûu‡d>)Ä6 c)o\Il<ëþÏ2ünýHŒÃ5¹pp{¸”æVaÁ”&qPo·È‡˜mä–â%3T2ÏÙ@SÚ:˜nÙ ïF5…þmx>¥9’ô‚„føVæ5r¥fù´»¦‰•Û´z/Mæ:Ûè*PÂÍÛó†üZò€–P ê3´7Z‹/ ºHÙ+Ú}ÛHeM7ž1‡4é¹Ü˜âö¬Ô2ÍŸ^;œ.Ø;Éœw;YýYšäݰZ zäkëDßÎT€£Ô6µL9*NI[p˜'®v¹Êòƒ ù¦¼'{š€4Þ Ü#¯ìâr´ÔÀ•œ‰u¥È/Ø©|õdø±=ñÇt R(3¼òÍË×¹ñ —µYå›RV_£(Øtš"XAß´ÍÛ†²7ߣ_`ïkÌteæÉï±|íUÄXm‹ÌUÔ${†3TØiâ6ÕkoɆÓBÊëû%guµç¥fqÛêõdb2Kjf›Ú妗Ф‰Â„¸“ycgì ‡oòt¼FŸÑþIwx~wT¾ÎIß½lÛF-㽂ê`lWM·ñÌw•ç¥k;¨T™[~¿Wóm’Ýâßò1³?Õ››äïdÅ~σhS8­Øg¨ƒ¶.'°"5ÊM ¬1á6gðÁø¥läjIÛ¢µÑ+õŒdò`\Ó$13¬^~ ¢«¬#hº‹®B“`ð*Ô‹¡Ü¤Ô!É\ž§#Èv’;¾Jí`h/€Zà89–’¼×zeÐËhØî™Yšoýƒ¶BNÃþoÞÑWUÐûjL2Ÿ²U>UScf0ÓÌ­“Pîóh˜ÜÍ“ØûX9úSo‡>£Æ* Íkô[ƒ/á—!üß~é €J5ì‡ÃÄ~ç€;j·æöçÐ6NÏHX%Qò.Þg?—öèà PCßÔÆu{jâ„jj>Ô#<ÜêÇ b},¬ê·ÌÚ]5ÕþÇmŒ‰êV¿ŽXnxúc'þ£éwÉ–}!mýl–!ÞV‰ÛúÛúôÚúûÐï¯]¡<ܳFh‹ÎÉy2‚{gÔ4s+¸GíLøWR=:~¸×Fòäjìý÷¡[0?ìêr"*«©~M‰_êð…RÖ”ºZOáâ÷‚šâx\XåÀÓÖÎ.FˆçÓá|Åe¾²qªÉ*Óy0o>¼bp®–Ç̤§Å&~_fËìÓ2ûme€’<ƒn52q4Æ;ÿâˆ[R×âø]¹sýÌ:¾«.7ïuÕ)']›ø¦Õ+ŒñtÊ R.C\l¤Ê…©=£ªÔ5àÔ(—[ëNònM+î‡ñŒX7 Žué¾<Èà]ß ?Óõë~dÛï·ÁÕ~›Ùý5açCò_¼¬Ñï X ¿5ëù,ÅÚ'ø0ÂÐàæµ~äb\íóoµ¹>¬]î¨êowT;iì°" ‡Žj#ôy†~Ô¡-Õ¼S¤Tû~&ÒêܼÛÚàEïÞmmݤ0ä—K³uÝÎ2o¶^¬m>X³õ˜åÏØí±bÿX±_¼ÇcÅ>4UÇÇŠýcÅþ±b£ŠýÔíòETì>ýŸJrâJÛûÀIS†jN1Ç›ÿbo³3endstream endobj 1997 0 obj <> stream xœÝ\Is·¾³ò#^åôè2ÇØ—cb»â¤»l3§(Š)U‰¢LÑ‹üëó503hàa†dœÄ*— &–FïÝèá1È ?ãßç×Gbsuôã‘LÐÍø×ùõæÏ§GŸ}¯eÜÄ!:åÌæôò(¯‘)Ý`ƒÛ8¯éõæôúèŸÛïOÄà•ŠÒm_‹Ak%¬ÜÞXziuÜþDcœ´~{KcíBÛwÇ':˜Á)¿ýùØéAxå¶gi].êíÛ´u´JøjvÌ›h…Ôÿ:ý¡.t…:ÆÒ«Í ¡Ž5›Ó àü66ªà·Ÿ—á·4tØUmO»¾š‡tÖ—§GßÑ.n®>™AØÍ/ ê_Žp^Äag]ŒÞ\b™o~X&}ƒÿDzo‡h#m1ÐOˆò׳Weø¡Üâuæ» ‰Â4ü#²wvÈtT± Š ©€K" ¸(álŒXHp —™n¬ˆBg†Y¯–|ú» ¶!(bž2q`µ aB”Û7IB´õ‹Ë<Ã…jë×lWyĉÈ!RBUH%ñÞh%ͲóÍ®ü çë×L¸ŒKµ5-Ü'˜ [¢½Ñ._48å%†zeC…6¿Ñ¦B{ ¿óÝm,þ5­5Ú‡j|™)¤¯÷|ËàãX+ï¶GšÇ°ýRBDãøíß°É™XÀl9Ip£…$e'!Þz(§¬5>˧nC­ 8mª)7‰¤Ú›Ø5PE­c˜÷C‘ø»2¼-:Ã4é¬ ¯×µCÛ!XhçxȧS ¡<›±›$?Qöb¼‹ÚJ©![ÏrÙ·L 8Ëùœ¡Ì¯^›í“HÂæD9ØH'3vP‚-Ÿf`e«{g”a—èç9?[‹§3·2 ¯²ùò ™ÖË(Í 9ĶF?ؼxï5®y¸c\ÓðM1®¿-×–QA ø¡„"„!'²—÷1+W0&ËѾ),yÏÀ£W„n‡¬‹#ïó– NFÀYj7¨tFƒ9‰›ö¢‰{fXËÁÅ'd´‚%G°±8)ò¡J‚8ÒÎ- r†¶(x>Ÿ8!ìöŶ€Ï»|×=f­Q3W¨™P›© ›Im 5µq‘ÔæÔÄP¸ššߟš„ŒsÑBîoìhÿ?©¦@'£v~Ãg¬>‰%¯K´ó¾@ï ô¶@?¡É%I…ØV‡Ñ'Yy¯{(+”ݪ5¤2X!%)å 9„l‘·¼³™ß<~Zòd¸l”Z¯1‘«Çºq#|ÖLÔë§bÀ<à”qgÀy ´”<þn2üË ˜§00;rS¨zñD0îùT€"dç8FÈc8 QNÒ³²€IþE^²¾z ^טQÉ„y_ ·]«sÞÅ­qå}9Æ•@=(×b@ØéC-à!TFP¶ó °‚‰åæLNZý>•ajý|ÃïÆÂ‰W]RßVW4ˆ•´Z¥Âgß;íª*A, ¤®~L–!s*DPˆÒ!«Ãœ½ÔŠpÞK3'n+.§Õj~ÿ—íõºE d•n|þs´ïjWé9-yrr¶þcG(GÎɃÿŸËçŠ7ع޽m¼Án¨¬†·3¸=BFãÇLí‹„~ÔVÄ…i. ict¼Ë“DžHò*.ŸÃòÎ1E¶©ºµ‘¹‹DØ2ª,ÀÐêèÛjmMèç§à¹tÏRVð ÜÆHzê\Vð‰LË Þ[ÚAù ªÐ–lÕ`|˜‹R¬®YJfU¹WÕÞ°Ò/\A†ŠØÊoÿÀøÆËU¼jø!O÷È•nÚqqB]Uå…Mã<ä:ò"ÛNaÚe-Ÿ1£ä9.3Ty <ü«•©èBXˆ yŸ«´^JŽEÿÍÁ!¤t²Ó̼ϋŠ[ §úy~U™€$¦ ŽãBy ˆv4z„˜b ì©*1ý¦ ñSAîz†våíD#V…<6qÉH¸P‘›×øß½ =,U~/h 3(m›Ê/ÀˆÕ –/ÓF¹‰gJ-0Ça9˜xHXÁBÑ»%¯´C•ÑM•ÊpS²­±³°¤Lgâ¥ÃÉ9Äñ¼åjõ¤}CpFâ Ÿë_Š/áf«±'I‚ìê;RPƒ–vH£Cõ¸s} 1–X5½×„ZHo³4=ÙW ¬Ó "ÔeÜFrxç +½ÜŒ:¢8ú9O”Žüsºþœ¦kï[ É6ï§mpœh†MUï刿¡¥×"È0ˆ3Ðýùci£'ͳ\^’™†Û6éµ1aÕ‚YìŽJb+£daí…N·õ vä9si;ú1‰QY¶ã-Mic…8¹É&÷0 ¢Û\˜.©×e7MÑûŠnóÔx›×³›ã”{Êag}¾ÌDÔB¶V™Nç^‰ß}ptˆ®RL›%A„FAèløÎõ¦˜cÚ1Ëüˆ^-óW}ï’…Nš:xHo‰vðJß÷lœDþ5M‡Sî‰ÜY~ÈÔ­;£C‚œÝØÈB¾é•¹Ö?$¾|w–:õRG§âH:Õ”¥—õ].ê•GÒǰÞVAÑ›gÑií m[@Ô˜€ü‰î£Wrâ˜HÔ¦ ¾¬‰ uZ»ªí•!®‰í´ÔÁº<à0Ș†Ú8ÖVNö¦Qz8¸Á[µø¨|7b,ýö¯ìÒRÏ$¬ìú2üº7ì è qNÛÝ4·¢Ä¬%]aÅ{6n²›t1¥ÚÚÑèåäUYɉ}³ãP(EÙ[ÜLÕdß1kÊ-+o¥às®FVB(—¦ð¶vC¶íÇAΛƲr Yû¼®®6ì²$Ô­WÔÐIÒÖßšf˜XÏXj¹X˜sÁØ«`E ÷%Ar…=Û,ÈÈ9ª|ÈU !|Aèþg^áÔŽëí%·üÖM0 )_ ;™P¦—¦þ¹4#úŠ,\8?Sh ß’é³Ô&b÷J§1v?š5óŒlt°?)¦0FR—!ïàg…M"ËÈqC˜]ã_pç²ÎÕd)0ù´ÌϱÈF-á, ëW£B$?-*J5Š.­WaX6ðÊQØGY„q®H–œ~ðëGÖ!öÜT6®Ke¹³KµcvÞñØù(߃Qb)ÛZéàâú8­MÏüŽž¹à›¿>:ýd±<ØZ¡a[ªÄf·´•vòÇñ*o(úçèXïÈ ú’¢óùDb;ì}‚ÂßÀØÖ!ZέššmeÄø-~kŒΔ.¶Q Ñ'Ñ!œd7íõTÒtJŒß, ãΩ둅¸„½Zîà\Hî& ª¾GNa4tŽHöL-:¥D³—Ô1p}d ÖÔÀ6A©8kh~”Ø1õg?¤K˜…h¬ÈÄú /æeK]Â.ø¶ä|¿^ÞWræ¾XEr ;j¬B@¦é;QIãÅÂ~·y¡6Ê¢jû¼Tã .„%gØØCi’æ3¸{þ5SÕyÉ`sø®»&ûÿ1Ÿcý‚;gSÏ’§UÎVï™4dwj+APªñ@»òÛóä)åѦOôº ™»öß²‹Pß²˜¡©,ä…•"•¶ÍÖ×ÇP0ífmýÂBtÈÕ~ÁÁM_2ȸFú BV8rÄÔ‚ëÂ:̧0$„Ô„ÝXñHo˜ÝrÊì-BDd°¿yÇt¡wÝ"’ZMÑŒSŽffœ¨8&,n&(7 ÷” XÆÓ:…gE’3¿Ç»âC;ÂMµ"ŠläáK¨^;CitŠÈÑ”Û(â!ELxWLŽé‹â˜Î ô®íyIF~ö‰Ml޼YƹôMÁEÍxs¸Û¶®÷r®›°x´c{XŽBû= )_!Ë{;ì• wrì°ŸZ4ž¢Ã¾Ìø}:ì4jð¬Á~<¢¿ž>x‹~Ö—p·\V·»¯ë^Î߆ü^]÷°²Ôe¸Ú.“[í‘6?e¯}òÿ༨$3¥„…Ž3ä^{˜ó`m1xñ03õ8¦}}²jÁ_ùˆaç¥2wßÌ–üÄ!û£Æ•úÂÿæfÌD¹DäÁW„yp[ïmMÐÛÔõ(al÷êMò >ö8-«ç¤ æXNÍZÿ-N“!9°Å FÉ>‹]OÈÑ7¼Ö\2ì5C²ìô Hþ0ØÉûÎç²ì ? °Ö¹°yêÎ'MåñØ ýúUz„ZÔ©"¿oY§ªYG˜-©Û<™ŽŒ"ôŸcõæý_G¼ñ.3®v®G´_Sñ¸’«»øž´¦RD|ª©!ªŠƒ.ž•Ø}'þ=/>‡Q†´ß1㇠J³âG¤­Ú.½Ûs¢ñr ç{çí³*c*Ó¾â/µk¯üFI]ñÊoN(ª8î# §MêŠþÉwôoðý¼—endstream endobj 2006 0 obj <> stream xœí\Ks7¾óWðH¥Lï®ÉníÖÖ>*‰nÉ´f,«Ê”ù±Ê¿ßn`fðàp†ÃÚ’³v¹·0@ãëF÷‡P¿­9kN›Ï—û_ß®~[‰ ]7/÷ëï®Wßþ¨„_{æ­´z}ýjŸk!³k Š Pëëýêç»âL¥ŒÞ°«-gàä°I,G{¨®ùïë¿Ñì\å³kË´‰\ïpÆŸ°·0^:Ø|Ÿšÿ¢¦åFÈÍuo‡¿vMšäÏ׫h&ë×·ïWšq³þ/"ò—•ðÚàêh‘ŠYïQ(ÑäÍê§ã¸•šw¸y`&‘Û'Ý~MÍ÷©ù:5³5 ÅQ`sSI»Õpë8ÊõV8æ÷-”hë¬0°ùýj+·NëÍ}&~›Ìô.¿§¶ö œÛÜeVmä† ÕkKi˜çr½U–IçTTãSZÇÛÔ¼KÝ]m÷Ìú/¹sL¸µ× hh)a:ɆÆ!˜“hh¸N}Co-L;³ùe“Ä/{!¼ï. Á™qvÎØ€3¨ÖÁ©´òaßtp*m}Ø7çÉC0/*8ÿq:œ¤ôÌ9oÐóhÑã¾)ºÐèÊÂ:ï1`´h“8‹uÊâÆè¤’ô!I_tRšn+$†åP%ÉŒÑ0צڂãv7r;ÂÐ'ÚBÚ–ä[ kó8SølñϤÇÇÔÜ—PhC¥¢lzJ Ïÿ¬‹.ŸzùM‚õm{Ÿ¤wIzŸ¤ï’4ÛXIú¢À±´‘¶âR62^qÊ>ÉF­d†pVæ¸zº6ºIÒÇ…ldÌålä¸f…‰¢`Ž…pd©Ý³PÞ>öÚm íz“U¶ôÿTŠfq¸¦ÕbÌ;Ò#Ã;›$ý”¤·Oþ4—ÃÑö˜‚Æ.Ißô®{—˃FK`Îæ¸‘ÌÙÁ•vŸ#Æfüc×gýèÏ=*.™ò¹ÉQ&UðtmtÉ<øE£ì<žk”½޳—ãIÚãñr¢ÔJfìa‚)gîáþL˜oá¶Çý ]8Êš‹eBíðà/ó(ÛJæXðˆ-ígˆ²gÚ諲Sðø#DÙ)x̲¿\•€H#þCµ%£JY]ª®ÑÅ‚å‡ÞYIðUµâc£•Ä¢à×5û*‰Ž*‰TÂ5Þ‚žoÁ¹ }¨:,ô®Wã»^î ‹ˆÂ“Å# ó`À•ƒ6DÿŨõ¤:í®‚ô úW—ü8PÁµÚ,wùÚúÌ•éqÛ õC±DÚ7Je¾o´ÊæÁ3@³0ð1-o Ý¹ùIÇVEÁÕNB%K'Ÿz³l‰Jç\_]óõ¡±«:Œ$‚à«Î‡Þƒý?\ÐéàY¬)¨L XÏ%JMà‰E©'°­Ž Ç©?ñ?Î3¢T«÷sØ¢SPùJ£ÔF£T¬¾t^yÜ’ªHžYcšˆñ§à×^îÃÌJInD~o ׉mŽ÷t‰‡ÚÖ9Q\s˯Â} ¶a”/úd7çš uÚ+u•¾¼_‰mt-Î3ªîDU©º+¹Rž*´Á8G•RÕxíúoØX^,[Rx%˜”k)ŒFuÃÍH+¢ÞJκi™ˆC0 5Ÿáfd½á!r6h=ÄKÆûh>¥@û (­D´¶Fïá*Z[)'ÀE7}ÐB¸\ÆŠŽÒ®œâíÕ–¼ÓxºÚØuÈç Nˆ‰¸m,Ûïil.Nº\[Bãp’ËVÁ]Ñ;_ÄMz²gm$}4_ÿËZGÍ”°9 ù*näVæ³gð4 8¥ºI”Û‚ä·4‰d7l®ÓëÚ=ÔÕ äªÒÒ´Â%¼N£Ç\CoHt]àΟh&–Bvêk€ÖŽÁ¦9.¹ž£IZŒW6\·• ¹qs³Ü_¡iÜ–ÅÀùêväfy,]Þ¶“Ì 4†VŽîÿ’BÜ;ÑW!i»$?e¾ëݣó¡4Ít,­»W;˼—–®=ž¨Ý‹í³8ÏíÒ…¼/¯ÝØ…±Óµ£ý}²v¤û¼ë[½Úm¥WLšºTŸªûlëfáûh6Æ,y¶1T“NJgÚÄëýü@ë2Èh;¦JgÉ .\@:e¼\¾¿Â°Å‘0å!nOã9¤Iº€¯Éƒ€A|×3»4ˆ(åÊü‘-æXì{¤1€®ÿ |)hf±4'ŸçcÚ¢ãE™m³S4-bvG¤øRÙ!8AÜ‚£ Hˆ8Ђƒq¼J¤Û0µV|HiÙ@uzBÐ!Ásv:‚×ãŒDБ×ë"¡Ö.ž_Lù*>èu>y®Þ›¨µ â$O#=`ž£˜ÔD˜rZ <’»qȈ³¡áˆ~\ë›–iÝ&%~{3‚Pçn!U¸[üjâ, "Ïäw£Xu›2𺈲¨VßÐ̵¨²Ä¶úÔ ­ÐôGE¯í-E<Í%DOô$v—oç#Vä&Ç“`åÆ$Uz\#u¢«xí`–#G˜ôäuažÇ¬wM®Døò§9(õWì;okô †L$f#èSÍo |g›…¾ÁÍá¹A¿Ç{{ëVDp}ÂpÆ3‚¾­) 8„ð1DO÷gBœ½¢yU¬ñç@°0ˆžŽzvĶpÕü(±k'·C¾ßV3wù>xyr„ÞD_ï¯9¾@™†" ¡+uË,ҩϬ€…cïÚ29Q¢àEßW×uµðiÓ*TT.ñ–õ¬ ˜U’«B»'˪ô _RXŠUq 3YqdÔgþ\VÕ¯t¹UÐܤ×à‰‹ºX¿«¢£‘§Ö¼Âìj^)‚f”ÕùlVÖVR2gz³v÷’…ô} gÊßæ©…uc4§=]ô¯HUžÒà Uv*z•%­ü5NÆ´ãÒeì)h:úMÃ>HZ[±ÂT€XŽUyÒ¼6:fyáKz_ƒ×a$ î´kM4\G¡•Â1*Ð „-ÃE}ˆÈýô§ª‹> stream xœí=Ér¹•sæ8ü u,Ù.û2>ÙžÅáðvÓ§nÄE”,‘T‹R/þz¿dH k!)wLtôAÙ xxûèë gbÃñ¿éÏËÛ3¾¹9ûúLÄÑÍôÇåíæ7çg¿ü« n# ƈÍù«³ôC‚ÙuŠ §6ç·g_ný‹gÊ©ý–á·Î ·d\½Ø ! óbû;–Þø¶oÈô2ýõ €Ò-ÔvŸ ì Ó ÓÁnï (âO…ÕÖm¯"XJ9Q­B§¼!ãwå7 Ÿt6ÝèSYücö*H9Z0í/¹Í‡ÐJ«¿Ÿÿ>’.l VZIçà/lÎÿpvþ³/·ç°ˆäJ‡GæÌ8ãý´RÆI‡+*U¡Œ[íXØàÓ`-?ŒÀj#… Õ"wdÎuZþfûž O‹à„ûÒÃê@äoÒ g›×Ó†K@~w‚ÏÄ7AÇÓ+î8:ÎMœNÙÅ)Úü™ž·ÜqF:ØHÈj9 ä@ð°}•áVú +Óé&b{I~:a‹®f½pž"—þôe~GfÓÓ}Dfû=‚‚©èÏèjW‰ €æ nBzJú±ìA|‘ÞÈeRkb:áü tÀë±E…È¥ÎiàÓ•?$ú  ü&‚šÛ ¯+D¾&gÌ»›íEöJ©”øÖ6Þꙩâð•¸k¸‘•zÚ¸{&v$â`7#a'$3QQ".(¹—ô‹¼LÙ­#3‘ÇQe(Í@43pÔ+7Äè×D€>Õt™…†ÊæeMrÀ¨L3\=I„V *ÎäJG¶ñ¸˜u–’ðU:P«GÂÌ@ðCl…¨¤" í·E…u„8JÈdiÝBˆ•e*Œ˜í᪑ØÞÕœWÉ‹2ŒK1³%à7#Ø¢}º¬P™ä ,—÷³|Q¶D¯tµåUÂÛø²Bw–)zˆñ¾E‹UHdûéï•©å…%˜”t6Ù%*»³›Ï°“Íê$6 W‹+¸`$Go!«}3¦í¸¢Ûi˜¨ôŒ°/ÐTšÒ¹ýmùüs4 õùywÂïò'îñ?çgÁlØÜ<œiЛoÁiú?0©Þ1¯7 u`is{8ƒ‘GÞ}1t­À³kW`B‹ä[ÝЮËçCù|Ý.}~ˆçmòY+|¨Î¹$8B `4:ÁÏHjX:46È^ë$Óð}¡Ý{2œ|”Êd2^M§qŽQ—¨à2.7;T邚…!Ÿã®|wƒº‘OH|ÉQçÈ €Ù¡%PyäBÃÀ<~cL`ÞÉç¦ôÎrÁ ÈüWÛ2|Y>ï»è|¨0‹‡ƒ¹†Ùô¹‚ÙeÆ,¨L°úŽ`Vi #ú1˜…%XÀ%(fÿx8f£æ…Ÿú`€õ™ÓÆ%–ûY=EÁ.2lèŒý¬W6í’È󺌾/£Ë(!å/òhô3`/&àXÉÏÐnö3Ž'¡ ÏABê‚R0 <†€Ú ç¿ ç訰h«L0ÁÞ™hi1Zô6è%±©¦<´+¶zùTÔœ½Æ'$ ÷@iÐYJƒ:ÔH^È#§âž–`ÎN’õ§ǧòy[¡7ÊŠR«$°ä]…šï»EÐz[F?v sq ´}>H©™ð”ÓÈcH %æ~$xóD$xN)àÁ7R0<†±Z+N$AߨP ˜¥Š¿(H}Wúö‡¯†tp•B€yä€%˜à§ÊÀáX™ˆÔ»‚Ô›§’€Ùª?<SC%`y <ÄðæT 8F -L~DëuAëõ$øêEM μ”¢‚`”\ÿÖÇJáÃÇîâ ¿j°~¶×¯¿o?WüzÉ4QÔ¯¿ê®F¨rQ>ßµ8Œ£ï»@\wü¦{¢7]îºGÖm*£ ŒYâ@Lû׬ÔÜ AD›ÇÄOI„Mó´’Ê;bH@UåѨ&Ð¥mžÕ*´˜ Z‡é…o¼âŽ? ¦Ge7]L×ù-˜WàA­¡á—µÊR ØÅK‡sí¦ 3ºô!Õ›ŒQ^Îù•EZƒ{™³{ •æN¢’Ò^1i—¾[K¥Û.&²\ û½V÷ü¬Dê[ìUÍ?y~õëÁrÞ< ²gñÿNŠœcNèL¢…³ÜjÞ·]ÇzÍY6àJ©õÒ£õRßNÜuõ(¶ÿ‘H§©oׯ»Ÿ?ã+s,HÑÅúš•|NA!\[ ˜B&Ä'„üÆLÈúïH¯  q¥$¸ø´œ‘jzЇlêùPÖ{QU?h…$ç„ÿTsHAeª³è d¿Ñ¾…ÃjI`p$Pý¥Üe2XËyùôÕ4¤cÊl_–i+gFd9©r£¸ÓÚ|ÞÒYC‡R̘{²Ò2,’i«RqÕÁA+x)¹œ[lâ/;:‹úïCZÝX Ÿ æî‰øËº ¿›N.sëÉÛ´r)ŠþjP('SFÍC7¦ºwbµ$þP˪ýãŽ|¿ßÖ›zxêF²jj5àAÛŠ ¤;"ù€vh®Zmwn­ë§[÷^|Oº9(‘é7E(]ž4oQä^N;U5!P¶yÙ%"ÁÕcRHÈï:€´Tþ×pLx¿+š®M¹é©ÃAq蔦­%·]ŒZ_¾OIWsp *À£ö.*z¤…"žÈÀFnÁ †‰º»åuê±tJnm¨I‰h´@¤!.¥ÈÝaؘeÖ-ÝÀA~¿èŒZLéôM]RØX£€cGª…ô‹¤|Ût”ÚE»H=E2Rûfœ°kS,¯ɲƒ/v:Ä$.xMá‡Ôäö¥Û×޳ jeª2š~È<½a<›ñ«j"¿ZoÒÉÜŽ•v£Ø‘¤Õ¢Ë0íÌþ ©X l‘E[™fn¬µèÚ¯'àî0IŒ"â, 4\ɯ§V»h;cs•W´ñJÔÄ96ÎôpµËK ôÓí{¨eaÖüý8›ÚdnÁ\ñw’Fü’{èºú]Ï&>Ù%ü€,Ø_;lóy37xZ°ËëÆPsƒaóøi{såvÆéïUQŽI°Hwñ÷¸2+ŸùÈT²Rƒù(¨5>B$H'ö0‹Ên^ üy}ž©wLÉ־²LŸoóÜùŠq4ãÂÒCê}µò3Ñ ÎMÇÿ‰íè ŒÓïj~•&ø²Ãh8y©Or\amgdµJ—£^ÎsM»û&Nh=$‹Íúr;j)¥-¹Y"k—Pà?ßârN»–oãµ9‚o%÷,œ’ákU\/•³dU *UeV·ÑG¢˜n s =(Ž6S“Ò˜¢ˆém·äóe M¤53êzñÈ0h¼Es%lÆZ‘ ¡Ãa6cf£.” :9(ªyú^èÚö]"÷sB÷˜DæaÐý³%“0fÆYŒ9ÊfŽ~Lb¥;pûXdBðšµðIPIÎBi÷þÁ1²…øÄÝÞRϳ0rÝç`dàã'`d/>##Т+}Äò¯ée4i1êòÈÞ® qò¹—6!SSW;\`Üe#ÍFÚÒ˜0ÝpÁ@ü:Mõ`ì/J(Ó¹Ö5_sª#øApM 2¸±G‚ìΕ½)UØF‰‹†í˜‚ØmèÝ›Š3zyHßóu¨N|Ñ ²"ƒù6ãw2:fXhô¾¢ =æ?kì¦é¢šN)ûSSÈi¸Tg¬æëK' ¹p¬`O/+ýyßsú®ÒÁ@(¢Ò¨n”Ì»;Üa]T<¨Çt³åˆ"´ÐàÁ¨ °(6lonaÄÁH8¡n+LK2h/[ÒŸŠ{q›G»ÊŒ‘kÒs4W0N½ßáï*vÛTžÝNáeÙÞ9lˆi ²›_‹c®Ó/m}´Ž³p¬ÑÍ>IÓFKÒ`ÁJÍúÉwO‰[wŠ sªºU\¹dad¼¹—v¬†Kñúq ­x´`ÍhU Çbÿ±¯+Õl®ŒÔ£´b>Ï"=—SžY3!uÇä5 àȹ¢Õ»»T ÜP!*Ÿc‘i8­¯öp?t¾ª¸ƒ¯x½¤¢_ã’!8)Hz3ÒA9l«O8ªøz¢6Hì*Ýþ„ O—Q…ϤÞS,·éúE=4 «m¨i ¯åȂޥV‡ìM˜ ð¦"T%²ãÛXªyé‹ìh²cJÚŠÿV>ÿÐûìke¼‘Yr^T<2ýÖo!Gú‰Qv ·Wè›òZ´3¾rùy¯ÆŠ”q¼ŽXÒz8ep ÐN—¦±d–Ü>ð­µµMùò€ºÞÀÙC¶1ØÓ[Ï@~3bÓ˜ª¢3d°ÃrIÇ‘[Ì¡L¢oȇUéújç}ˆeI0É ]Ô6,Á´_XK¹ýßô´ó£Œõ¾ü2…"î&£¡=†ϥ Ä`çEc™“‹º‘Š ŽxxT»4η2¢!»ÓËæ×“IÁ7_HΤ[_¤ÜÛ±ø1T‰(ƒÆUU±$ù2j¤Ò· ÚÙµ2„Š­'4=U)Ôu4H8ׇÎ1ÑE^ÃÙóà ¼M™®êK£?¨´hx9-;Z'¤ÏR(pÃWë¶­^œý‰ôÚƒ8É€)ðYxU4§ônù‹«\7ÝE{]{©¸°—óŒ:,$z²q yk+ùŸ„‘WJÂV;Y»˜ð¸¤|šœ¾þŒ³<ð£2Y? ;bß#ë%ûrKàƒ}:8ñµ’–;4K£¹ÉûÿR×:š#±îLÚ”þ’rþ@Ω™¬šâ’–W‘Ð-²#÷ãέãM±å1´oÜW€(÷®}ô®QjžJ‰.:~L÷TÒë`Ÿ]WÖH3RÔñ“ ®o»\è‚•¯½øøHíÜ¿Bÿ7¿ £Ñ!"B¥ˆïÒr¥„o«¤Å`¦ÈVUx+/yølÑ<½&(ªýjPãCYÜ ”Á“Y#O©NÑiÀ®´‡FȲÓXc£\â߇ ‡{š\¾+Ù0ðÁëžC=m¿l4UCê¦ ¾ u)¸šÒEú÷u5¤çNŒ,3r†ëGªs !qF9hý0¢óxVÇͱܓ—¥âSu¾‡ƒ¢ˆS¶Ávðïx¥Uã\_[÷»Äú– dSÁ+®á˜*Z=Ú”ÏäžGµ`Š×­TÅD‡Öûst­Ó )1ñÙMZM}ˆkÂÁ {¡ ޲rÊì$ª¨d6ʵ\ŸÐ ëLOF)àïj±X(©€m¯{ÅF€£)˜µm·ÙB%€É]Ï â)ÌÈo\í–iiì—°¿I ¢[8ËC»§÷ÍÆÕt*eŸÞlà³)F>‡*øw› ÔÐjÈ"£–ÿGúøò—>ÆÌÒY¤ô”ε\ç2úŠïÜÜÙ•üõNnB°q:"¶“7é°¬j|ìQ\±RùÀkNÁ¸AMzÞÓøAN'ªcÐ]ìÕÜTH®ÒºÞVQ.sšttئk.ÁßÖ8ãèz_x˜ÛËún%MUǹԶј£×£’só‚&âÞêÖõƧµ¤\-õ({4˜¥³pð¸/l~¨ô’8R³)·ãöö‘xüWÍ0µma‰1†áN²è.ø#Lúâàth\LS $n¥™ò9Á¢8Z°¡œH‡7!Í“Ë nÌ}лÃU­èšŒ¥€¸³V_m ‚“>Šëº€¢°Saf±oPª`ýôöHúŒý’Z `‡Û2zQ>_–χüÙµNÊVM2¿*téç±q´Üd!ðÝ•ÏûßÕ±ð5á#GxÅѵL³ÎéßZñ‘SCíd¼Ó‘?ïËçUwÂE9Ö‡<Ú‡Ú1K.øþ!õDY§â%Þ œ¯t«5 !ÿ ³íç¼?隃zmÜ‚}Òèmù\'Ž>äÏ!ûòœÆ>q£ÏÆ>5þl=¯)žñ÷‰p˜ˆº_Å«E+Äœ(f9¾•ÓD5JÛµ˜&.wàÛV2¼ÝÂSæ0ˆööA]’hi„ÍTιSDü®K®­ jh'@‚s­ ÎcQÉ7…ÊW –wMz~fËQaoÎk¶Á8=hU½J>¨^‘U¦Wª "]ôåµõ=˜âèVñQÀwÚ¢>µªø»à»ÌѼúÌáð îˆ7‡1}뤭ó†ÇÒîiêÿ0ÞhS*p ¢H[c#œ[ pR+åÁiM\Q8q˜ÿéâËÊ]* ª °€íaÊJŸtÓÙƒ÷å~v|e®@G&¤quDIW鸻gïŽõI§÷UÀæ¹Ö}†9ÙåŒÿÆÞÈ àpã!ñy›þIˆ¶ª‹¿Âأ·xïNàóiâGïn¿yŽªOâN=ÕWþ1 |ˆ[mëbÏ·³zx…çD5v™ç냸œSmgí<£ÿ„vÝ U¡,¥ˆRÿ}lu»/£We”¼°BÚâʃӇ]ˆHuO6•ütÁ\j·Yk4mÝþŠ4øîɳ x|kw\ãìµ.*©bîøžà¸JÀúÐþK0qÔ×5 ö¼N³ÝÁÙT> stream xœí\IsÇ•ž3b~D6»œûrœ-<3á‰K¼Q:€¸„€& Ëü÷ó½ÌZ^feV ’#:°ÊÊå­ß[ªÿ²ƒÜ úoü÷Íõ™Ø½;ûË™L£»ñŸ7×»}yö‡ïTŒ»8D§œÙ½|{–ß‘;©Ý`…Þ9¯éõîåõÙ«ýçóƒ„3Þï/ÎÅ`´ö&îoÎb°Þ† öï–á«óƒÆËVG>ù.gö·Ë([ø’­vEÏÆ /Ü4ÅÆ¸ÿ@ÃZ[¯|oó´Âµôþ>-bEzÿžÍf‡º§Ù;Éý/ç* äàÇû9¿¦–ûyó } ³Ò{Ö¹ýëó^´Á†ùâÆíß° °õ®ñ(p%Ôþ[ûgv<~lN‡Ë¼ºóoÆQ»÷Že '#+#?ÔûiiÏ7|ÍfŒ;‚#f\äûÀètsþãËÿ>S«(ñzy a/eq­™Aïß²÷ÆÃѺyk iõ²EÕºk:[›v>L[¤"¾È|‚¶réb„ê £DCCmtÉ`μ;zöÞh\Žèªõ òƒ1Êí¿ŒƒRv×Xk^º2I¼¶ƒ0šßë-š³%ÓÚD«?|§¡öÜ"à}íäĶﱸ´Q¿ÿ·åñ—Ç—Í ÿI–$1ä?^žý™vrq÷îîÌ Âî~•úã™doÌÎ9½»>ÓR`@NϾïZ²úÜ£%à ƒV´DÀgCv½ìjy¼[ß/\?Ï—H\G?µ^ˤ¬Œ«õ¸Š™IÉt¯cl8ÏJ…ZÉz’a™“å^‹!jˆ½¤ˆ!oK RBëèk90ÊÑø®¨°ó]Ó›fº0š7ZRÚ]›k 7™:Þç“ ¥÷ÿ¼ÚÈemmµ¹ÖÐò.¨°Q¯¡j’¨9xœ.fjþ®`9èç! »bÊ›E@^/—ÇŸšÂt¿HÛçm¹2rñQ¬^,¤iÞÃJÛh)œwdB}³<¾«ŽÄææÓ½>r:7/g©ïØ/æ÷›§VZï§Eî+¥\ér~tA;NÇ‹eôuaŽ“Ô˜8hÑréÉ)Ý$®¥+äþb™0ª¯VÞM÷ø3«i‰´ÏîÉÚÑ=q$tÑÖ« ˜wص(-÷`\¸žt©Ñ…Ã:P>å6ï#DÓåÎð‚€!LØ`¥§XD²§}s>=ý4î(l¡Œ|f¸qäœàÓ¹™`bÃN®U—UÆUuðð[«º g¹ä ¸WÃÖ¥ w™‰Z†M&bJ“@]šÝëñÖ„wƒ® :- Ítãí¸ª=íáGæ,æh¥4R”ê Ó=Vöh2–OŽûãn¡ÆO>‚ÃÛ°:"  j®oÜМs£'É+¬U«’:pWvz°릣D¸O5ÎÒÁ‰k÷í\Š…ˆ)y²¬û8gæ©ëÚ¤‹?ˆÕ ¼V|Ü=/dwÊ%{æsr’§éJÞVjW‚A(Š4¡ò2Ð"+‰5)þS¥m¾¥Q‰À`“Š4Å~}­…oI)¹¬dWDxpL Û`z6×üÒ|öD!ØÐÁžd4§eN_ÐÊÈZåˆz&Ú®&¾Y“dAÁ¾– ”Y {!Á;Ú”þ’§ÛtD¢1[ÞŽKG (STËîc4T±ÄDÝÅOô‰– ÄHò‘iÈÄ1=KpœFËecâ¬çÆä0]¡TŒD\œ2ºÌ .ø§‹sQ 7YT¬À©ËEo*AX·¦. !ä=Áé¥Êþ¶HhÓZ;J†Hù5¬õþUe¸+ZÐ$:4®Nª£BœOúã¶WÀlFšã‘ÛˆÒuÜÝÌñtîd]þ[~UC~Ø/bм?ŒºWÑ;¿Š¨gÉO¼ªÉŠ™ ò.CŸ™Õâ>DÊù2¿??Àäl%Âþ¸(ó¸g•Ÿ†ÚY9à¢é±S0Í=!nJŠYIåbp~8g*HÆÎ²q]ŸÌíVÏXqÀmó_3–v¥«ò 0·?Ç$¥5žQu/#+m8]šÂ$ze~ÉSÀ‹¯š‚jé©d1o\üÆú'AÆ(鈑£;Nö2ŠåÔã9õ5z¬ðeðÝ‚št( ߨd/V®Stúˆö´(;éF'ʦ¬ Á¾~žžåGî3/4°X¥i¨ê ¢ÌynH–0%[’µŠä_ͯ}{÷nKe‹µG L²`+7Á¸í”²C7½ /X´gÜLôÒ %ÍŠá s)ßJcw¯d{÷§E†2ãæô )Á4ßCý"¡TækƒO¤—MË3Á÷ÄXUèJÃð$Me Ç”¶TCA®ŠR}·ÍÉl›ì¶(WæT…žf“hJ4Iµ±ÏE+Ñ—Ô„ÚP~ªBNiÛ¡²Gà $pÐÂA¬J} |€¯öꉂ¥am6Ï+Xó”}0àÈ Q¸ŽÅ { ±]/Æ'LY¨Jç%x¸Ÿæª:y–ˆyd°!‡AßÈoÒ¡ªâñ¦ˆÎ9c£aˆŒÙÿ +#äRYJÞŠçd˜N囹hò +]Ïkò8_ðs&•Ž­[Ò>I%b%êRÂ÷ãÚsî IåaÕ˜=8š@o¯ÚÃ6—¡"wî n‹Ø˜fU†üíôÅUžì7œÙz›z¾MG‚8†ŸQ"ße]G±„$øCz2Ž€6ÖŽU‚ï’@(¥KèÒH‘·–¸•!˜ ° ‰ó˜ã(cH† Ù*Ç Ÿ²ÉÇdˆ2P¬Á¶Iâh"‚±6*YÎLUcÄZÇêþFmÔýgL“êþX;Vï¬v@´y‹‘yà„"?V"Èk©K@‡£Uþ|ä÷ÕEreUù/›+)ÑXOåõ¸[Wù¯:êÆñ6›Î%Ì¢sˆý^äǨÍÊu{µÙê‘Þ´OÈ ö#¿ùT• H‡Ú®9aJ°úXÛLr ïótac#×èFB)XgÙ«Qq£z3®¶$Vy§Á*ðßHÀÏïòçC¶Bp8Ù:#æCâs[ÕëqàÏÔ$ã|7ÿÝh0ãE§cÙõy΋ .Ch5üM©2¡´©"<«+ý?yÏÇÃŽ:M} jÿ_iº¥>¦›qív™Xc…¬]§ê]…¾´x°eˆ»ž½ÂÓ/rìÓxrO•RT¾ˆß4¯÷ð7„Èò¨Ÿ–m®šVòz}¦^ È\äªSk§4¯sÍi€O}SžÁ‡‡§ºm.NµÚ\Xj­@­0NFù¤Ï¼¢d”¦¢tPÒäHs©×J™Xå°èÿSEli`å2›3Ê­ p´˜·®²¥Óbù5âÜã¥êV×&V¾É·ÐÎæg6ÒJÇ[e_emÓ”/¹ïKšÚÑÞ"øÈö[¾öÚU瘘[}ý¿äN6ú©mU›êE Üé¾È55oçT/vqÏÄΕ¼ àY¿H¼—dáfôsùÔ&Ò¡ßØëduׇŒ3|™šZT…írW¹û5ˆP@‹zßO¸_µÊ uÇ._‚Oá=‚kÓŸ> (N¿ÂúT˜‘„¦ˆÒTF4æÉi‡"”Ȳ?“Ê„¼„‘Ô!HÞr7 „$Cÿÿ”¨¡hÆí¹–ƒòº_h®‚ÂFÞáG428= l^û¯çÀZ0¦ÔžìIDÉbÓ‚V+e‹)94@Llîû©ª:Ÿ5#J:ãFxì@mY¬Â§|`ãÉ¡9k䨏ߙb6ßèçeñÄtTª·`Þ_ 7_e;-"Ãú!¬ùÓÙËß½Úÿ -#%+C£@–\¥4Þ—Û) L‘ÆôbÝ®ËFÜHbøÜ¢»…·½HfŽù–²{Jñ]¾<îÁ/?uqˆØ .˜¦Šé“€«¼µçV¹GhÙ‚v8Š ÐÇ9‹õ|ýç05 ·ÛAO€x¨×œøfô4pJ¯9½˜WÀކ²³1 w,´Ìx$C©&lÇž’r~3ù굞$éí†ÂF‡e+µºByuä¤ÈZhµªí,Û2—ÒÓWÆ Zq•Yç޲²ôt'„_7ñ¤Ù•"Ä—VÚ*i‡aMåœÍꉡv"5ë]¸Š\Ö‘ö©íW#Ïg }Kb:Žº¨$dêì Æâ‚dË:÷.Qdeÿ~öñÚÔe¦’ÔÝÞÊnê"7/Eª,Mêòn<ˆ<šÒÿ@§úÈ'OyŒ|¼Õ¯Á\šÒo$,2¿Ó]ÊÜB£'•¥ñ±R#§‘¤x¼ª.n´.ë—)O€`„ɹ¦4qvéÅ13)—aslFÓ)LÔæ>á±¹É<,øN{ 9—r“QbDÎ#§$'£Äµh…ª7þ©v ËMò›¾oÎeÍê?—n¥Îc¦œæaOsYaL0ÉÂ`3nØðíÂÞOlxÌAC Fø>²ýXnš>PÂî„Á¸8¶Z9h0$}pˆ¤ŸO> ëdív@{Pôš6  Ì4r‚|` Ü&ÐTù ÈÁ 5h¯©k­5ã¶É…»‚!UaòÝs‚8¯)ûÈ‚¸#ú) ¡Ð$U2äÎäZ¨Å;¥zWŸÌ7ÛíŠ×ÍlÛÝ2ú~e™¹ûe”‰À‹y4§Ž»*Ap ]ü<– çá8r2i CüO‡â™¸7 qßĵ”·PͯçÛJª;‡Šá·ËŠŸ—}.›bp”á?œ—§Š±H2ùAN1AW{³1¼oN`âíòx½¼vÔJÝ>–øùJí3±Raì­õ6Ò—ò—ÍSü¼<¶?ÖºZNñ©yøö)>4)ñ¡y†:±L=íÌ®&¢éËóøoШ³U*A©ÁGY&r,wÏ2úµ5ÔâV_-þý‘ZbØÉLiëzšÁéü%~çÝ{ §E°wM:#F˜ç¹†v‰‡]*›VÍYõ<8úªÆ%¬è©°“Îûï ýEmSö¨ÕŒ#-"5Ú²žŽ9†äí|ƒœ#ÐTíTàÔêäÓ} ?G½”½Sñ+Ä$€Éx‰`""—b‡=œ“Pó›JØS9ýÅœœëÏ=ü âóÿ˜‚vÔ¯Àºò2ry†V²þ$LScŽÞþd”6ÑÝ&Ãê‡=š•Ž^no;C•ǿ䄢Çóm>¹Í.â‚<Ú³ìC‘ ÈC©ZÇè—l ˜Ú:uñüG2â_É:ަ'ta‰Á‹p_®@3©§¦z¥öõ÷g_ïãùT™“’g#™Ä–¹µ$±_¼Ì…¼ uœvy=~ÎÒŠíú¾Ws.è1(ó~lãX:ì ,b.çÇ@²´o€"|5}´ô¯aú8XJc0.iÒukŸÂ%,A=D—˜§ŸÒ+9Oßü©§ùŠ~¦òôíõ),1«¯xž&úa@+éÇž<1ÃB‰â

> stream xœí\Is·¾³ü#æH¦<öå˜8®Ø©JT¶y‹r ÄÅ,‹’LÊrä_Ÿï݇ôœJ²+¥ƒPúááíÛèç•j%éÏð÷Ë›#¹º:úùHåÝÕð×Ë›Õ_Oþü½‘f•DòÚÛÕéåQùF­”ÕÂÆ¸òÁ ãôêôæèßÇw'ê’Žáøe]¾¡¥—NéãwÝ?Öåe]ÞÔÏ.êî]÷³7uy[—çuy1;àU0›H²‹Ëòm]þR—ï8ܵ—FeŸwo~Óñ¢._U|.º7ßvŸÁp¿î’纋ÃkB¬“#üŸÓi§„tnµV"X/Óêô,ýSsƉ€êª9òüäd­´”ÂÚiì1>_°*»?ÖÝóº{VwßÕÝ/§]º{­d.‚Z8çT¹ýѤf”,×<1©MšSZI%¼J…Ò.ÜGèñ§ó›Šþm—¢‡¢³  :ï*ÑLvßUêÝviº¥­$úš?­ot¦åU—Ò·'ëhñxm ° ‘¸åg§]<{Ü&ô`ûAÔt%mtѪ!¤S§-õ ÃnrßPQ™•Õ|ø×µÂ[¬ÖåÐ3:¥×ÆG­Lsßv±É¡ìþ:¢ã\, x–xd¶J¥Uˆ¡e|©´¡YôO/•D8›§•÷øIw³Ç8o]}FéÈÙáñA‘FøIÉÇ`_–m¤(,ë¼Üç(u³p,3W)îÌ¸Š¾/*ÚÆa¯‡Ï`%ª5îlD¨ugÈÊ+‡Ï'–veëb |¡m.à/IÆuÃ)îd°‰§ØãXw™f«ºm7Nd‘±Ãf_æm u« ÝbiS4Ô-)߈ÚðȨktáåý"Áã ‡¾nÆ„™ÔÐ.äb«ñCòOãŸ2cãñ Té(i¾‰SëùÉà ð¯ÒÏì,}Ù/Xè€[´Y­‘Â;•†òÎ÷°ÖÄ*V°àU‡ln†j+X‰£|â‘&-ˆÑ#9ÈoªF¿.ÒýÇÊEö*ºèØ Žae¡b /‚Ãδ±K}!À•»D @A{o}¡ ¼Q_˜×¦>‹úìSê:Ι;ª,Áì8× H€N׺cIK'¢·]Òv ºMi Hˆ½y¥±âWžnõ® é'Ÿ9fÎü’™S!LI:1v®:pcør Ušoùú’™N|nV^1Ç7 !×ÊDqœa^ùɤyHå‡{…Ÿ¡ÚÄ—óàœbä4–ZØÐÂã! ·•ü ,¤wNhHßæãNZSÂMƒ3Ë>áºN¨@=›;â<ÓZzþ-Aq9¨áÄeP–<&–Fmf¢vö‰¢±Bþ³.즸m@Šî fÙay2&¦¦â…’ðmí£~•‰¤ƒåÁÞDœKǿҊ*ÂÍ+J0§Uì½ x•èlÀ¥ÎZÏ×54% 1x½ÛF]UÏQ\΃)BrlRÒžÑ\÷ÅŠKWç'½‘P‰L+…ÇÖm9ì%»¾¤y.¶ p–PçÏÌ „ü@³ICfµkz_q`‹j0!Éiz[“‚Z"MÉØw‹NÌ*{wC\FB­F1ï«ÉEAÂxÓTœY a|¡ï³õfÙ Â|±àXÎø§ôÚz¶¨@–ÂÉD‘ÂI¿GWkWJ°ðOÕmÛ?a¦ín hq°VñÆD´+«A„˜L 5nìÔ_RxáÃGk/}]—ÿ­KÖ?}×¼~“¡[µ4Ô¥ˆÔ›bí¸(òíÔrÌ۬ɗCl¡Mãò¾˜_#|–Ô¬ôÔŽÒ”÷Ýàöºröz…÷€Â¡aaìWƃ6ŠÚZ8ÊM;;ˆ@ˆ¨-†z±Ÿ| £®ßéϽîb™AÀÞÀ?náBYnᔂd.˜@A©g\0ˆí¨»BÄ¢ráŸçB6ô q|ê M/€1I¸£©xÌ`ÐÛºÛ¹˜QP$mæe§rÃÝEžìˆT2ÄãÎ.Ü€yO„HÇ37ærÎêÔÛäœ y0!½j8ç ˜¯·ÎÂ檖q™4º—qe¤rNGD–¹Zd×è~ÕïbŠínµ2€AEËíÊ}G9®ÿ|¢Ñµ yÞgHp¦ºàØ[j¨”á0ëÓïe8 Øk8LS—í †ÃTrÔ3^iï! :Çé;~ÚÙ)P9ƒÑ¾l?£HŒ`ƒcÑÐxÇDeÞá¥7>YpO¿(gãm÷ÄY¨’² ô…Šï¬#æàÌÕìž™ A\ÔõðùwF;)Íé˲kÏzûÝê¨xÕˆoáéWÕ <«»§u÷«ºûMc²øZ!b–‰¯…ÎÒüâ>â‹ÉáŸ4¢«îš6ÿÝ€ÚÐÜ­„tm+paæ}9B3eKÂÎ4W®ÏêYÚSm±Êh©-¹YÄËÇù‘ßÔ霈"†G ÌYŒæVøÑ™"}$K8êØäL,O;;eb†F\Z1ÞÇ oóìÌL[w_×]–=¼kôxCúC 9‰IúÕåmžáù }˜¼´®éµ°uŽÏhò<œý´`iòj(„5ëþpiù™I=ÿvÓrê2j¤#µ‚{•A.­i=o°Ð—Qµýª\]±ŒÔU—úðb©'g°ÒeʃÊ4.agÚØ¥Jã࡞é>Z‘fÈMdnk´»ÐIülþ›ûv*ú&ÓtYR~¿%6i¹Z߉ì ùÒ§ðÒÖz‘˜YKU¢°™‰Ž =¬þ3X %T´³LnGWÿm×Õ³Jê=Ñg–Ï©O­šdÙ“]Æ£#e,n¼úÍG´ÇO>FG5.J»Ú~,]/{Ý<ߌҳ–æÆ¶´…G(aS¯;Zf±OˆŽÇ Å:]ºq®(šÜb¾À‚›!VAàMdÎâ%j³ŽÓ öé«¡5Œ½ÎŒ^ }\ŠïÖ%+12¤É—jågòÀ)æ)Råçgc«Î^u¨þWÝþ$ý/!l¹œ;6ÀÆÝ;`€ ôøsèWo±lý¼z{lt¤Ÿ¶F!æÖ_B–¶WÐí{e#ƒ “†µ)Î×ÒEú!Þ¸³KD%-ýfàqþá¤bí¥"> Ó¹Á%ìN¯ííÇǦ[>€èŒ È¿è'Zûp DÌ ×÷ª5[ê{õGê{åßù®Ü ˜fз¼7vá…±´I mñ#u½Ì'n{mãÛ4qø|CBŽŽ1nØÙ‡sÐG…sÿªx°vÊMK^ªu˜í, Ì3Ä Þv‰ÍÈzSwY£‚µ/^|rÕIþ5Æ‚qg$(ŸŸ®?Dª»[Ï80îìÁªëPx7,ü—Œ㉗•|/*QY;ø§Cy±wxeég—ŒãÎ  ¹OøV¨ÿ?}°òéÕtà 2ÀœJUŒ;{°Ñ±J}lüŽ=“•µç/Á‚>ö¬Ö³Vôk) @))GÃÔÿ±X˜–Í¿;ú@½_endstream endobj 2039 0 obj <> stream xœí\Ks·¾³ò#öH:âïÇ5Ž'åØe›©âD‘¢U)Y”e;¿>_óh`0³ËÕ.c»\:p ÂF?¾n4ðýFtr#è_ÿ÷Ùí‰ØÜœ|"Së¦ÿóìvó§‹“¿ÖBobrfsñü$ÿFn¤Q aã¼é´U›‹Û“ŸÞŸaPUð§Ï¦Ï×ôé„•êô]³ÃwÓçóéóvúÙõÔzßüÙëéóíôy5}^WœôÚŸ¾˜Zï¦OÖúîìÜ ,ôôÛÓæ°lÞ¦ÏËéóÕ4#áM“Üë&s^4×þ¢IÃ]O®ðœàÿ\üýDiÝI6ç²óƉ¸¹¸Â~}Tô±]ô uStùöìì\*!:còŽpZ]Ð.S•—øÝÔz5µ>ZßM­OÆVšû\ ßÙhA ê¬µ2Ïþ`V3êò4GfµŽ5§¥“1sÚúmŒzp>Ϥ¹æèõ¡ølúÙÛŠð®É°›&Ÿß+4² Z­JÛÇ_;í¸e!®XJñKÔa¼Æ®Ÿ‹ö@…IÄ·µ:¨~¬ÊJ)Û‰¨,UfîéŒÿ4Ó^Ê MÐr\°Øv0ãrÛܶI—‹›L¬Ê{dœü}޵G/³G£½ú­í‘÷W: {ÄlååÄ#æã^N­wSëe“÷µa‚ÌþŒ“b02pÒ|°¶Iekª‡æžÕÀEŒÕçÒz€U zc'Îäþ9mVÔVÄ4…Ö AšM´BjØ!|kc¤©éÛ… A>}´Jî£Q‚ÄâA‡—h÷!œe¬ÖÖœ£î&j•IU± FéÁYðë¨2©@ ­#A_+oC p…HµÑ„¶„SÄ(aßLýdúü2±.E?ÍŸB÷éÅÉW4“‹››ûÓ »ùaÝ_A¸–ÔÈ>xí6·hqh^|óàØ/:4¤LçÐo¬Dk_Vg%ZËŸkÊñ‹–H7÷0`ã…–ß!8²ÎƘAkob6Ök£e–9:ËÖAú…¥ïƒ½Öˆ$ÄïL^åîÖ+?|§ŸÞçîV¨bôJz4éZTœ.FíU9=º8á…ã]^°éïØØ746þ61é“÷.¨PÂFá¼xÆ&âÝû>Aëñ§¤OÃ"\ÒD”t¿©& µòä›DQºXŒÌ—v•Ù¦e¹)ÓxB )+ït™70¼?gR•®©—j£`¡zùXÉ)̲oZBX¹µ™<Ûi#GpõãdLøöUb¢­ê¢°Éô¢QÉš¶šŒ?žçùw΄U©³p¼^ò•šó4n”Öd,Ÿö}£[Ž‘÷.“äodR6ÌL6ÚõÌ\Pùw-6 XÉG?´k±4­¥;;·ÐˆgSXó$4Ò òHêg7Šü„†vpÝSš¤ú“êq+tñC®0—LÁxŸ~i‹;ýžõá ÉûÜ¥ÇRä‰1"i‡†#PÊW‘?×ë¹L2T\¾È~Áú3ãs´‚›ž›,ã}!R{˜¬H9F8‹=Î?,§³ÒðA¬2ÉÅ%ÆÚÇ~×¶*–à‰ÞÁÛçÏo?"©äíuÊé¹Úaxv iL¾¾oÙõcˆNýbZà£ùv¶TfwÙÄÌÂþ0û® ›ÆâéÀ¬~ ½F‚WÑúÈu°tPSŸQcËø%‘á’—‡tÑøŒÐU°`lç<†Ö(gÁrQ=Å ÆŠOÄÜGŸú”ކê›J)hzÌÔ¶élìW´Ýý”(×»„ Ø(Od€pIs?š6¢ò’ʹp¿ wadqŽ\ç_ xÒc€³ÄJ'+÷ÈÍUíGz“ý7ø± û?î‡7õìÔ¬*ðʧäíª­*M³gà…Áö›fx»_¶´ ¦rÒ`Òïê&up†„&]•bå ™K¯lôTVç»SI[ѤQ–)W¿žš%§fyºú€äå2tmed´Ž1ðjqŽ…t7Ë\æ Å5`-’Èϵí«YŽ8iPËU]7?÷#´f#˜Ø™P*)wm:Ây+à}TØŸ©»îö¯àmt"Öç5Cú4Ÿ—ª…IƒLCø¸ŽÍ¸cçÁÞa¹_Llúç¤æŸO­Ÿ­Mæ),’mV·Uå˜èHåašB ;ªüíòï¦ò¦4Éä;{Ÿ£q€ƒõdùµã$@+œ‚ct–¹=Cdáw8ÕeÄW£ð49[Á]Îè2Tdó1ˆñ”¦Fo!Ûæš\éŠ@ˆbç‚[Ô•ÃyNÃKg>|ç­“Z˜Âx°'ލñ=í4 ˆ¾›>^5JÂ)^5;\NŸoÇϦ¬¶;9®mvÕvAá { Ó®ˆr‚ë¢\¬9•7;ä䲚ÒBˆ5ß§/í}K: ÀV†J›ÐUG F …¿úÿ£2&v*ºýU±h°¦Vp By • ˜ØÿR5–ßZ±|ž¹'NZôQ@"دE1ž<ÒšÆP} $ê$9õà6U$Z¥u`^`2‰kiÈ.²TæáŽ4¡‡Ðš-A@:¾ðhQcË^çÐAbGdç$ÇU‚¡Î@´1Öíƒl…\ËÙP#B-Û1P¥Þ½Bœڹ.ÚùˆÙ|R.þºßѸzü`DâO/RF—Áf2kR¤ì傤lP•¡V˜—"äf6 ÒF™6 ½tQeiU2¸¢ S~ÃG䇻ÌkÊj_²@—À=‰NÇ>-b_²áªñ: ºÓ~p€£þ­GYuV‚£Ýð(¥üupñëh=¬^Êå/¸ üÊÒ™û®Ç”ª¨zŒá ßJ.(÷ùw^5ór%ù-9™¥”2_ȉvÀ𒗠ɣAN¤í儾^Nlàžö “Ɔ»L«ÓË`äyj‡ä«¥d'›R4À†žàRêÂ3ž<™¶¼ÇóþÌÁ`®Ñð/%PbÀsdé«ÒŒŒ%‚±~†%rëU³ÃåÔúvülc rµãRþxvN20ʉ¹”g/¨Ú Ü¬qW˜L6õ³8õãå ¨TaAá•]ԫǂʧkó@§½ñÓáǪ̃LŠ»J(­|²ÝLxc"ã+÷F­¶¤Ð\^D\Ì«¼aZÇôµàq¥Åø¥P\/Yç*G{.¡W@Låà‡®gKõ,ÉÈÚ±k8_ë]Kû@XÕA¬Ëb«Ò,€è4¼ôû›Y˜8¢,-¨Ë–¬£j®5^”³ UôBÛór©8Û7ìvofZxì)Óª4€íC—›i¤~.'êXpp(íô¨FXì(ÿG™FPÖFotŒ¦ó(î-cà #t"@©€…ƒÌ• _¶‚¼…"ü·Å’f2f5I OóJJžF®Íµ®jEn²Jü˜°wô¦uF3€(Ê~TÇqpØR/šž%+¸’Œ `ƒQÂÔÚ±Îj֜̽…€:#òd$uÉPábŒ´6”Ù Ÿ²È‹d©¸¯™»ìv-TK‡pj¥k3†h»^bC JÈ1W|§zµÑ.RǃÀq¯+ÕNhÍF8®ÑØ­ÔÑ¾Ø ïõ \ÍW Èn–‘Sä"üp̘<Üë ÿù°š”ÐâÃj2ÓÉú,b»¢Q¨¨NkP«6«Go© ”…¡ÏQØGó€½É+2IàyàµÅ&7b6â„®R€¯û9Ý„@‚®qع¤8AتtüÕauIžð¶`zŸÈtzæN|5>¬ô¼æ^ý¶ÚÕÔÊF¸ŸZŸ”Æz ôó“‹~ê÷äXÛ#<%£q=Ìk(I‘|òކ–=oL¸h6T‘líã<8Ö›W(v?ã`°@¸,5Íå¯VÛ²¦§ƒégN®ß½ ‘ƒY*PÏÉp]½sSC“WGáO}PFóÉ•·,fÕÚ³çM¨^³”ã¼¹ŸL6€ÕÒ]L­ŸL­Ÿæ6׺“o˜(/¡é‘cÄÚVÐkht%]mEÕ3 U£ê™E½¶T ¨ØÕô£ÇZC·}øeE¶ýS–¨‹JdÀy¡gÇ@4‰T~xjK‡á©-*ÆkKdqCW ºß{”J/½ÌÈG”¡â.)f^Ü~¸¤Öƒgæ]¯ðC‹v%³…‘ŸŽGŸä„‡˜^ž²I»(¤òUN4Ò6SÕ¦’êk0HƇQQÉÑk,z«•É‹ÍͬGšZG%b{Y±³2®<æp€+½}òxŸ 5ã%°à¶O.MV·™už`Ë]xI'?$]©Ç¥G¢> stream xœí[Iw·¾3ùsúi:Ø—cg{ö˳Í[œER”žDR%;ú÷ù èn0è!gHETé0„ µ~U~Z‰A®ýÏ®ŽÄêòè§#™zWãÏÙÕê'G¿û^˸ŠCtÊ™ÕÉ‹£ü\IéÜÊy=H¯W'WGÿ\¼ƒW*J·¾8ƒÖJX¹~OÝÒK«ãúµ]pÒúõ;jk‚\_ot0ƒS~ýó±ÓƒðÊ­OÓw!¸¨×oÒÔÑ*á«9Ø2·Ôm¢RÿëäïDºÐéhK¯V"߬NÎAó˜@Ú¨‚_ÿ±4ÿAM‡YÕú¤;à¯s“Öúúäè;ZÐÅÕåí‘„]ý®þåëE,¶rÖ…ÁèÕz,zæŽ7G?,³¾¡b½·C´‘¦èˆóW…²‹Ò¼-»xÙì Ëk ÐÈϯϻ3¼+MƨÓÒü¹÷Yf¿Š•æ …± [H|‡ðå œ’àœðÂe]1VD¡³œ­×FK>ü:wÛÉ\‡8(Ö‚šaˆPWI±´õP§èŽC5÷K6ÉEž$@ån°£µ7‘¯xÎáIJ!|INàå87Lúé½ ª&…ÍÂw|¶›+iöñSmMÞDf÷´ÖIT˜ ²H¼'¤\??Þ¨i]mgl[ü+d„RÝFû0-ž¦ænÒö>’ð7R.#akj°Öø,ó³­Ål43c°®®{‘'N…j×o¯yû#hÖfÒ¬Á¶•Ð:ú‰GÆ×zÁY:¶ØÄé"h ‡f«ÑEGºn&¸Á'=¿-ò¾kW]»ºš-³kL +X;/ò,Sj‚ž4øšiÓ9Ðp€a-s3 É¥Ï9ÉU•ʘqïutØHãeV&D'3uH‚Ç…–ÌËÒmú#ÜÜÝå´Á@m&<ž#GÈñC0+°ßƒcä´8À°¹ç¯%¶E3Àðâ^;7·¼vQžÇ÷Úëo»cß6šØŠÑ–aêp¾¤ø£4JŒþ˜-0“Urì¾)B˺Ç0²ÁŽÊpWxWˆŠÑ]»AÁ³e2^•}\sCÜÀÛΫGÔ%àSZYJ…z ’0€3SÏZƒ) ‰¦±|AZ³qB ‚ûq]ºÏJó¦+šÊ]b A(s—”rs‡”fÕMRÒÁ’2)i²vk"% ¼]\JßÞOJÈ8ÀÄ¢… ÞØ1^~UÑo$TŽ„ (Qb\$¡ºÛÒ[av<¢>«J®0†p+§¾¿]ü4dÁ pìyˆMįÍlm'7·l§eã«Ò{]z/+æZ ¯†ÐµCÚˆðµ¸oÊ|ïÊ*ç]%x˜¸'Äöç²Û¿•æ7¥ùuå³˼/7Å‚¯ª1;“N­ª!·wQËvvZz¯JïÇû6áHR S²Ç”³Uäìíßw0‡ú¢…hé³;ý0³•]ºÔ:j6Ù~øª;6ùa=h`bî‡Ï»¤}(Íç¥ù¦•B»À,ãß«.{^ui¸îޤ\(ÂÚÊ àAj­\P h5<È>“Öié}¿lBª–|8÷˜{³šq2/ó‰Y­cËi)äàd|§÷qVâ´™òŒ%°×cÙe—ÓȃÁæ•Ά¾åÑ™-œ—^6Ãmé}VûóI'¾9:ùê‘i}Õeê»®?ÙIáèµà-¢)嘉·J=j¤À 5·œÝkct¼´Ç1<Çù¼*Èǰ´`Ì ¨nh=Hy¯ºøVNÕÖÅ—u®S€V·4ÚC;MÜÇÔ ¹AxYÁ( Ô ƒq¥H“Dr&o2wçR¹§%wœŽýý ¡öa^†ñ˜³ž‡·Ì†–â!ù|àî«#–þÙ×Â’ïÇ)ÀY$…‡K'™åtƶ4$[¼ ÊÎ?¡@.9Fãu¦€±\ V s6ƒS!¡M”™ÌDbµn@›¿Ït)Q# þ2/lp&9¼±—Ÿ•±9–R ´låEH7]³áümÔ¬R”£ç2à"÷ƒWd´…ùd¯¶Òw4Uëyo©©¶7ÄsPÈžôcɱҚÀ®µ±È4ÚÕç®®)·µËIi?Žß¹7,£Á"‚<øÀ4]‡Õ1Š>TÆgBA‰·‹¥f Ty²ÞæX“6 4n*~58cKIÔgÌ^PÛE´Ò~‚´¦éÒrpxÆ4»AÓ.$-Ÿ(ªµ¼¯€5ãg\7ú$t~´­ÔÝ9K‡`Ó©^Ñe?`ÜÎþ4ĺÿw­ðb\Æ…½•‡¾3@Ò§]W:‘áj2^2ºI)‰vš[ÇuþÎÕñö6÷af¦ÛåÝÚq²ë K‡ß`x ×Íý¸žÔÜ;º@ÔC/ûºäD´·ûòo&V²òt¦»DFî®<4>WK {ó­YÚ&˜1`Æß.¨kÇtøo+×]_ Rëû ¢<œ`­ot&¡^xÙÂØ´¦Ð4¶ðqœY«ƒ³4‰4M̪gýúkŸ]Ê„šs>.¦C̼.»¶_i}Vçz™•gµê·õ‚Wo¦ÚBžÅ|fíûÀÉô»eéVú ¼iU¶ «&ø3'me¾=~æbO ›ã&®VÍe"mA»E‹Ù?¬Ê@˜Ü9³ŸÛÞ…¾i÷w”•h–<_ØÐoê°ßCAµÅ&È$“»Î¼²‹Çsˆ~([@zÛ)„ÎÞŸvcCãqªËI ÓaÈRÄMáÁÁ5„Ù·€[šÉ@ ΃‘6ßH¹£¶}A-ÙTÿöüBt±r39W¿)¹ú‡^ßu3°I ˆo<µ·›kopƒjÊ]Œ×¯“ðm«ÕôùÜmEiþBHâjšæPt¼Ú“Ô»²ø|Kµ\‚ß”£¹ËJh!%¶ð[ Z'ƒ¥áZú.wl7¾uVi¥›XgŒj•©„5¡Ž~m™ÙÒ®T)ɵ-^¤â•1ÛT"˜*J)òQ¼Eþc¹zVè)Y&ÃTo™¼W–f¹Îµ™¨õuIÛ–?ßßÕ–®Šræ½È9±ÝƒA€ƒ [iÛ €’¼®"®ÄJWšîë‰H•XIõ7÷R‰•„!h ºŸì¶NkºG4}0‚äBzd4^KãîFÒíÑå!rèÚ®áHêd7MG8»SL ´íG[Ý™Æ,œp‚‹. (0OÆñ„ó z¼0'xJ9>T@VOr,¦ŽäiCðOâiƒ ê×ó´áNÜy‘_9¨¨þ^9@Yõî'4t÷žª@ÿåðh¯ªGX]FO#>ˇ™ÏOÿ={òo‚¤'Qùƒñú)¿qpžê9«Mzy®FcÏG±)IfÕÑxÌû)¾;úÚn¢øendstream endobj 2059 0 obj <> stream xœí\Y·Îó"Èo˜·Œ o›÷‘·Ä‘cNÛ €Y+­¬´²V>”_Ÿ¯È>Šl²g4»² $ðƒziv‘,ÖñÕÑóÝN r'è¿ñßÇÏÏÄîêì»3™Fwã?ŸïþtqöÁ*Æ]¢SÎì.žžåwäNj7X¡wÎëAz½»x~öÕþâ”Ð:úý·ÎÅ`½ AíŸÐ³±Ñ„_ü$5Þã$#Q"— ò%ˆHUðû—ÇÏèÑ +UZe=áãù‘yxqö9­äâîêöÌ Âî~Ä1ÿ‚Å”¬£}ëÁÛÝsŒXŒèyäúìË.3êÖ竘ñ|ÙÛ“åñvyü¶:]~|• *~Ù¤ðjyd¬z´<þÐ|í¢Iáɲړ‚ë‹zˆ6N·ôêÁ¹„³1îoð¢ÑÚ›¸ÿ>ߺ6Zî_ç[Qèý3zÖ:Hö/ØH†‚ )­À {ï‚ 8Œ ÄP‹³(â!ŽB䄎æÒkÖ«b•Jæ”¶ƒ6å¶mNpÚ‡*wÜ6ÖñÅtFåQ:¼SÓ˜¶fÿ˜6mµ± FÛ7Òìßäý7ÕÊ»‰îŸ2e–J\§K%°/%Ô¸nšqž^4ZøH7w.¢ˆ»s©kœÌÖ¸Žt.v{ØRn0r"ŸFÇ‹1ûâÏ7˜cZ#qà…7œv¦b¢·Óò ;.XyIkÚîúÇÅzpy©n8Í–vëâ'âmk96âk³Ò›ÚÚ$½™­ îSƒß;çD4 ‹òr8Á®€Â 3…Á)ŸíJm+òãA[ñlÑôËèÕ¶Ò[Äsb×ÑŽVq ÀÅ‚Oÿž]oRBŽE³‰Ç0Ø`—O.Z/’fɨ Ê É2±Ü+‰-\€‰nÿ ×ÎiסÁÂvbÃÍÂÊÌ`´Ë7ÀMi}¹Œ¾^F_â³bû¹‚ä(k³ [ÛPaFcRJÉÕld­ñ¥ñbªÍ JóØÆ QF¹\ÿ,7¯k‡•<3;7óGÏ· «ìâX†å’“5 t6âì½Ò!Oê -ÜౕlMpj¡d†˜¤®­iâÉ둆°\ôžæQëÝ–áÑgòHC³}0ü§&ÕxÉÆ¹ö¤ÍúÁá¿eÃ×¥ßJ A :[áòÃÇŸ“ÁF(J—6§B’ÚáÒëp<™ïWÌ·ƒó$V™„Ò½û{Éäl+!‰YW)fãv5®­Tå~iÔÓqÊ—Ì…70Méyü«™`’ôi?¥ÒoÜë¼Öœ£á I¡ˆm²¾ÍÃ1´EbáeugÀ6r÷2Ók%!ïlm…ÒzQöÖ˶(ì0­æ ×ü¬ øÈ‹S™—q>½Å •7ÒðÞN¯T¡ÄÞ¨Š=°ÈK½æ#f'|Þ´ŒrªqZ«^:ºª\ä$åðƒ“”7¸0k^ÚŸ}—r>Ywš2Ë<í®”ù‡4K© Þ°ZIÚ¸önÐ^Öâç-‚‰ãîz4{ÖeÜ@¯kµänäf_î<1N+ÝLqÁ5“].·ù –®;áhé€aq%RrmñHø29ÍãSŒ+U©Ã¬@mzþâ,Ëê€ÄҫݹÂ;QçÑDK)a’Z°SØ1"½´zôž.8i)kO‹¸`†­ê`¨ÀØã€Ñ½J‰VRûQ|´ 7Ëi°e’`›ª{5þ¼å„ŒºïR?hG*â\,<•õ½ÅÈU¼A˜P¬êç-¯ªúUÁç×VÕ§ÞÛ¨ês‰lï’KcÓ¹¼Oá‚Û‹»añ_w“öçt£þ–¡£Í-ߪhšSUE çübšÁ,l"H£)á]åŸÚÀaiÍIfv/êòD†ð­o$£›í=lÇ­ ~3nGIîØÖaåãzž2ϦúN[:x{úˆèJ7O.¾Ÿý… z+÷ƒ`Ÿ¤'5d«¿ 2§‚OSV~FE¿“Ö’C%?C^Á‘Ÿ¡ô£Í› é-X:2#=NF™Ç-nIR}HfcærÆ‹§‰Fg÷£¤3ÎgWc¢„ Ÿó„Q¿bÔßäd¶Ó£±ÍÔG*pG178äáËåñ:Ó nʪü„vç)W™´ÏÉžy‡7lõïÓlMµ‡q³:*5LÄÁ|%ܨ F\`Ó­KÈ õ7‡sºs`þW.ÃöÐŒvMõœ"¿G‚Gü³3”ïQ:5ÖIŒÈy䤯:‰c…A¨ì€jà£æ„?¶ò°üñfy|\ùÌQ‘IhBŸte1L¬\Ñ›l¦‚SãðÍrc/Ùðž`%GÁoò¨¢Â&Ør®†x˜ ([‡ö ·n4HjHšGN¹QÊ%”ÊWúeÿJó–-@êu±O2œÎ¬¼±£§{¯˜B͉¸ã3î±é öq’ñH¹Hùλð$ `¡àÑÏ"öçNÈÁÀj½oO6™EÎ Ð~ý rt«ÐÅ*cè2¹”?']€TˆØ‰)2Ú@£ã¡ ×®Q<êás˜Žz µSmd_Léˆa±Î)›Û¼P}JÐo¨PöÆ”]XËx3å•ñP@°Þ ƒxòmZ±L餪±G´e–-™¾óͪl Þ¤ÅQC U~ÇN°êU¼ÁVEÁ^>¬ˆV(Oª|b³‚6zÝçIm³Æ7´\nh÷RÀå$„q³©ÕÎ "ºwÑIL•_µTöˆäT ÙK7œâT¨A $pÝ@ ‡=ï†Z·cEu©Ÿ¯U˜‡1‰;xü$ãt`ì,¸E]JÐm–ЏÍoš·-7ý¾µP7ƒÀ Žýήìåà9Òž.ò:ç¹Û2¿JVËD•¾Hp”!Ð=½á_$t˜_5$Ü㑉Ùúf ©‚9ÑRÕðM&¼æIƒ^ÕÚɻۺ#€FCU˜Ÿögê>Jg6¶ðë[3Áóp%CÊÈÔÏÖk3«rþÍó\2…z$-…_ý¢i«|¤è7;y7«œ ‘"áû7°Œz`Í‚·ñèHA@˜GN0š¾ÓÈ$¨V¼•è]9cí³Îî²ø'Åö×ý>fPPÀ*õJ Æ3÷£<·Øë[cú¸êµÔðZÊJ77úö`’t<†Fq? ¥LèHUĪÿfl-‘a€„Ž(î§ã`JÙá˜Hx×­Ýô²Œ2Gˆ|J™ÊãËAÉnçåúC†f#21"å°ÞϬPaúþeê»Æâ]ÓÛÉCŽm—Î$Ôën‚§ãZ¶én[eñµ)Á­y_X’¬i.šöÙ2z±Œ~¸Œ~<ΖĸKbvÊ[3b,&ÃBž5ßÃ’KMõ­QOlÔX£ûTëÙòÚ(»\]–Üù3ßLõI36z±¾&ž8žª±B #þ_ l(•²°ûa)PNw(PÒgnÔD¢Ì%e¹ßH]Š¥qöÞjŠTñ2n*ð¸{ùz:jè‹àêKÓ›©”¿Ù–» Âcz,OmÇÅô©c¡„úO3?¬¨#€<7ê‰4A¨n #G }ä@]8S¡Œ_ME‘ŠfæCÃéµïºPæÛ† PÚ/ÍKí6»O[íŽ;¸ê¥üsç’á*¿ëð~TåýT2<±”¥æá_¤”EÕ<XVÊšFN/e ãÝjY[ýS…Ú©šÍV\*Gç¿`ËNu´zC¾Gh , ì=^¹‚9šØI¨„RnÌ‘v9%å&%Y"1È#0áï> stream xœÝ\Ks·¾³ò#ö¸tq'x?®I¬Ä)'Ž-¦’ª8™¤$WDI)ÛʯÏ×À<Ìì’KZVÊÃ0¶4¾~÷ð‡èäFÐ?ý¿/®OÄæÅÉ'2Ínú]\o~w~òÛoTŒ›ØE§œÙœ??É¿‘©]g…Þ8¯;éõæüúä_ÛÛÓèŒQèí›S µö&þûüÏ £±˜Ó‘r¤Î/ñçX,mTÁo? ¿¢¡VªíysÁŸÆ!íñùùÉ×´‘‹›7'¦vó®önjꔤ³êÎÛÍ5f¼êdg^<]d@}ðÁƒf(p3ív¾›†ÏZ 2ƒ*FkÕi!ÕÀ¡w§;Ù gcdœÝ¾'†[¯–ó¿§±ÖAú°}ÍÖ\¥5NxápÖ_Bà9‘—ù‡6Uüðý—ÆôÒògE¶}ÁtAº€‡+@px† ÚßËGÀŒ:æÑA¢óQ>Ä£o¿Ï ³ß ‹£30î âdgäŠô74ö7(´ònx•€ÿܾ ÷”óÍçO¸áxpãlA=ÿj«¶f8LÚè‚h—(].]xµÙIÕYãd¾?¿¤ñ¬ènhÖvB„íÛ6,{Æ{>{¡ÀJ%JÈóƒT¢0䌶4 º òìT…Ψ¸ýÿš†t$ÃÈYë•/(¿b¿Ì·ñÊ\à‚ývÎâ>§xÉ–ð]/îÉØòûé«òÀt'6—O•̈÷ Tø¦ýzTØv zÍ!  ;üFn€žÎÄ4Îm5]?QðÑ*á·rš¶ízœn**ƒ…Ú<¼Å’–‚ìH¹`X§(1#Ç™ûX§(q-¢ÐIpèÕSõ3yÛ)¡#d;t1Ä00œwÁIëI <Á˜ ê~úÍôNoÙtˆ‰€T¯Óú÷ëç­ºù€Ê.P1:b¯Ø£…Ýã5¿ÒH†JTøÐP¤ 6Ö;•-’6tàÌ0s‡ €'‰¤@ù¥wNHòû¶ßn§é;í¼GƒEZ¨Î"-%=ê1,‰Nd‹žÞ‹EtPhbØ>2U7Ög}V,øžB¶â.oò¶Z›ùÅÖ~{šÆ.h—ͧ‚·è4Îäa>ålÇ‹iøfBîmsÁËiø|Þ4¶Rmñª!¥:8k¤.«çáûiøÝ4|5±èªÉCvʫ敿¯î9›}ïÑ:0½‚Y4ÇI `à-wRBÛ@ÍÝ$—õ,¡ãå¬Äˆ„?l£í]¬a÷%ý×âØ‹jv€å.A–š»jáe³!áÖ™èq^(b p§óþ!‚¨á.¤=àΔ\÷g‡F‹crÐ0vað´zSÁÍIr?¤—VÇb ³>½Q‚ÍQMW'„ÉîM‹½…#­ç£o„R6šÐ¶R8@ñü ¨$ò&LðpC“›á0!‡‰{y@&òáãFC±ÏĶç9¼N…EŸyÉñåÁ ñSí,D'îóë¹[~Ù ˜Ö3·šûø|ÉÙÁ*gZ;×9D•&ˆ"DÜÚC@tר:hØ?HCˆÀ“#@ ذBÑæ¹RyíDІÃâV²6¢Ñ´¦Œ·`†;'b±QF‘ÄÁ²µg÷Y[Û›ë2|¥ìtX•Rôƒ ±Uˆ9þð?§ r } ÍŒ¤Ë hÝö$•ÙÍ–@<“q›z] ¢wùf6ØEÝô÷lN·À,£ ¥Û—bô|7î‘”;gO)îÍ, "F5 `-¾H¿´ÂèÌWmÎ!,Ï¡ÌÓv³Hø2S¥&§ËØ0Þ6.çÛ®N“âCÇtàoÚÍçsÑx7ÀA„áÁò;rtóLÑ™2KÖùO3îû󕸯®)±,ÝÈ€>Ë€ÉêsE "³üOàvØÈìïAãtýø´¥3nŸ¦ æ ^Ó*˜w˜´qJwˆ%-âù:Æ™ûD‹PNÖx"ýî¦k±ÂеŠŸRÙ&QàÏÌD’g°÷(Ûµä¤ÒX/lû´@GaØÃëÊÕ|wœ‡\¢Ö+³<á‹I(>ô8”aÈÈ%Ñz6­àféÙ€}YYÊozø^e&·²3ð;d•Tå² ï^LÓ“·šòþà1üHþ»ç4+;Âbâ™s"å©]tØ#Ìé|¯zâÖ?’G·ZšÒ€o!Ûä,E·1&†N¥LðÚE=ÎÜG¶#.#‘€‹x\&èóÉÿù^Þ¸ð&ÿ³RñÊR4Š']È_Q±!""’µ3Ú‘(+·œOpjž&=öã„áHFÎJw°×«]âÒÑ¥ˆJhåå‡Òºå× }7„S°NãT½~ô³mù*cU71¤·ÒºÅ¦Á)Èl¢ ",øÌ²­ãÞÚÕ6u7œ²e§cΊ¬¹Xâô!Bõ^­îß)(ŠwmR6°pÑôÕ×-I‘¿^<ëž yë?­yÆ‹28û¢í]惖³babRõYh:¦|¡ØŠO]øêõψéKîãz!Ú©V–}æw²'9ËMVÎÕ+Þöø‡Jvžá¿ù9Wù%Øû³Ü´ª¬=«šÍLà- ÅÖåÏЂ½`äãßÙ*púÊʽZvÐíBí_¤OÐä"ËÏ­ ñ²ÿ¬ë “ãŠZ©FR¹ ·¹ˆâb BkÕ]j³VÕFåzîÌ̃µEúŽL¯i‹ôy],Ì{ÛPòKðo²\ÀbÀ rQ6'Òpvm-Çßˬ7*øÃ7l»aó²øýä4@ù24eÞtÀÔŠô™ËA]8¥k`)[c. +%|°‹4nó6$V¶!zBWâNŒ¾ôß&ÿøŸÓðIsX'•sì0%•·­’&+éjd ±“ž{íãC°PàIsó¿Oÿ¬ŸÌ1ŒŸÊ?nT†ƒ‚kZ«8zÔh#×ûß1(›ÖÆ%•¥!ÒÁØ}ÖœÊÞ}hÖ˜PÉU‚0¡W ÊÖÑÂ;”ÄŸ¥A(T­ uí^ÁRò&½Z &ºÅÚøÏ™ —~hÀm~6‹%N¨Êm\e®ú.ÊK´œb®ªÛ„a/h-n6õ±“e^‰_Uê‡=ʆ÷ñºeãün°–œ =+y zyê÷dzÉG{Ù¯Ö B L4^ÌD ­¸˜ð]5ši;-ìbë5§r›ñCMôe@^˜ VĵnëYÃ+y­ôè WoýšÔº1úv üâàŒ1‘Ným2~zýmF©Çêoó)VõSÛ0qD›§–󸿡c­Áíè´}è4ôÀƒ7¸ (á j‡°¹òËÊg9xavUìMj©>(‘xÇtHjɵέ¤CÒùàÒ/u¯Ñ­4v¯5]ùw¿šî5OMä¾úœ•é÷…D!ç)÷«Y3ÚëéïmÜá/O¾s< œ¥§nA¸gxø£#Ë©Æo•s¤á¡ØvVSÅ£×pr:€†²`ZR`_Ÿüg’–üendstream endobj 2077 0 obj <> stream xœÕ\K·¾/ò#9ÍšNóM^å$v‚írˆrXíJ+Ò®¬•d;¿>_‘ý(²ÉžÞ‡l :ˆ¢ØÅb½«Xœw}'v=ýþ¾x{Òï®N~<qv7üuñv÷ôìäOß+v¡ VZ½;{y’¾;!DgwÖ©N8µ;{{òï½?í;m”2zßúÎ#{·󴩯˜§ÿsöwÚ²W|K…Jc׳Kìò ¤wû¯çá?ih{#äþ¬ºàÛiH{üåìä;ÚȆÝÕí‰îz³û TøæDxï:¯é`ªsf÷öD1ͼ9ù¡M«ñ‰VAà¨9±ngÔ>ÌÃ÷ó𼺠žÞŠÛ¿žgÿ7_ÌÛyø2;ý‚©g:Ù«°;ß߇‘Ôà‘õV·ÿåô ºÞz­÷×lúfæè;6}Kc”óxΜæM/T•ÕÒt¡—»ƒò Z$4ØA¯9Q&„Î:ùˆ"!{é;-w‚÷²7„Húç=ï!LßPÀÿ6œ?Ø^€æ~ÿl?Oª.f€/çá³Óik"ÔÁªNœæ âé|â;ÖE<1áCuÁ«š&`‹ÏŽÒè¶z”’F‰ˆ%d§{Ѩ%w5Š_Í€_p„B‚úJoA Hô b øŠºŽj"B'”Ö‰Žú”éCÄA)ˆŸà*ºc¬ú‚%Ü0¶Þ‹LC¹ ±p¨­aJ?بºL¨Ê» Œ…4ÚÚAVHaoT þ€qÆ{I$ ÀAûºq¾ÎÊÇw"À´Ë°3ZÚ.Ù|ȸ´ãĽL¾íT‚Ðiýi~.Dg,,=1d æûdßaR{•r:ì?&î(­D’ éêU’¥¼p>‰À°TRuÞj0ñÕö®·-¿f"qK%lpþe!5qOg“¬;g½ô#ŠÆI¢ÕŒGæ }j:c³Õ× `ïÌþù©tàŸòäÿhÇ>øœܰ½†Û›@ãÓDOú“¥!ÐDÚói¶*ìÂÚΑ {’$ËÖ+;{œ=›g¿žg¿f'a×ÖÃzèYØ5JúaWøÿedè|œÚžԳ*ìUQU²3ZO´àdX!AÇQ„´s£dEù¸X—¾¸¦!¬R5Ø%cR1Y\n€—´v×â4-çuo¥çjƶ‹ÙK‰ "W´”/±’v‘6t®SÈŽË)ÈÏËÑãëß$(N弡iÛ“Síg¦*p'ˆ¨Œ‡¬Ÿ÷ÃCº5§Ý½.Õ”tS mé#Ûæ%£Ùù)I™Ô¶ÁŒBÅ¥dÜЊBw#D¨a:š?bfTê\=tïÆ=ßDÿ*àÓ\:pçûç‡ø¯bÀ¥hw=0FÌA S8$²bIßg”ÔI«Ò4[ñUAö¡®k “®•ìFväôýÙð®nñ[‚Ï_Òî»»D·a{¦#\Ñ®ê>Œ­f+*6<ºØpX»ÿiV®~-‘Ô’k‰zèÉp<¸àBH ½4&Cê6Ñ¡7K]LÌYS#|HÂöìÙ´#Ò ˆÖÜlp›¡ýÂÀ_ÌÎçÕì’ºÚlUþ4ô®wSXòÇi3™5%áèV{ü3#ÚÆÎ÷K¶¾PRðÄvAtR/íÒÆÈÍß$o…{çdz¸0ˆ¤¤§kÄéJìP‘@{íãgpÚ'&@P¡dž·Pø&4¹~£¿GÖ*DÛ¡¿Kaµ%% dµÞgk^0èW :‚DÒU2ñKAå]1})‘ðÀ…°nn‚Œ€ÞÆg~€Ke2ˆ|ÉÇx$ÈŸ!Â É âõ|j†KJfz ¦ÖÓ *_P¢ý“³¯†Ƭ}“Z0ÓÓð±œÍÌRá)’;àbÇ"þáºÿŽât“™¯KÂC ‘¯Ôês™ e#zi»´ÛfðvÉÈZ®Û¨´ºm…ä‡X:¸¸¤R·(‹ËÙ)¸¶~&rhVy8Ÿ‡E©Ï,§ô(?¤ŽÅÆfaI‘ø¶¤rK>O\"¹Uõ¶†m4´4 Ó>ÖtØæƒöPŠU¦;ytC^ØÈ!äM7¥‘=@FC’un+ˆ¶M[Ï-GÛ¨›ZVþø]™\:YT±"^.¦´ç Eº%àF_ôU%qCy žÛÖ‹¡ÃÚ¤)‘¾Ö!ÎyE°##ñ€‰Ü"çOWÞFtÎØót ã7Üʬ!#lÛ–B`IƒS|¥:Ë¢+"¯µáÎu*‚ª‚(‚ŸÈ¬¶¼H+”u'²Ð/®¦G]ðC D§Èõa ﲈpþè?ü†áÖ÷%Íz‚¿–å• ®f€š{žõŠõ")Z±ì“·†›uÒ‚±·aˆ´YS«ð¼RFœ[’3)òÚCn/IÚµ“1Y1™˜ç­Kgì¡Gês8ãTg£²Ÿ{ôÞŸÜ-{ˆÍ~ÂwžZâ –L¼Jª*ÓgZC&Ãï3«0ÔÐÒYó$~=Xºmã9®}»„ö6ÚÉÞ…²‹¢Z hh.ß³¡S|n&ôEæÕœ1ÞŽèõΛMèq~óp§È*hC³RðkBvøËüd„­yI Pƒ&ü—c*£ÉSóÚéhð?‡¯«kÏ«8|˜vûBúú Ýg„߬¯_:×wÞ³ÖþqæÝýP8@0_”Ø ï.kx_¡w–ôæM¦½‘ã@ࣷ2àÀƒÈ !'÷J—é ¹ Oˆ¢·†J5ƒadò«l |–%[r;Ÿ/ª;³í^Té÷º Úb6Éš]I’ ;™Uá‚ Nµ\¸ ô††¢Ÿ;iÞeuvö—¥æ!Z§»Û¶æS!>{Q"ZÒ÷}z•EÝI¡¢Æf_Paý%îø "“ö±èôñI®Ž;©^uˆ;?b³£§;xM½c*ãrZâü¾i-–Q@؃Ä$F=aþ—ò> yÈCÞGQwWŸá}”TÀa'¬ ôNŠBnƒ=ÍÜ+䓈ÎIûEEO¹ø, HF¼~ôÚŠ”ž@6“y:~›–[ÕNLjҎòAÖjS[äºyb&\tó ±PÁ7ú"ó›éc%ä²ù Öf¯ô‹^ƒÐúÕK;ÞiHÙÛz&äÈŸûݲµþè+©wG”£ÞOO=äó{ŽmˆŽdåuCì|ðåŒË+ߢÍ+F¯½3eׯ¼r¶Þ\3w-,ÕeË ©rË…ž]ÑÙá—üE]¢ªñ[ ¯¶ç€òöÑD>2Īu¹FúËiUœô›J¡ÁQ©®ÇWë¢L›™[f¨!Q…Náÿžz (d7àÌܾÅDï6ö#‚šNò8– ¼Êû§¢šîÂD$ݪa!Ò¡Þ’5‚,åc[àJ!W Äo²ÙËp= ’×k¹Ê·Ñ ñE³ íÒëM/ .Ór¥4¿c˜x*Ç÷NÃO†‘]0,zWMö¬ =<Ð#É./êîgãLh¿y´ÂˆF{Õ:I&yt=¦¤‰ à-=1_˜ŠÎ,9L³f3ƒÁ<3Û'5=iÂ4_±^oô¥ç(¶ñ`ÎuÁl©v× i,ôžËTHó}èz„Þ„Õnz+Õõzš¹O%ÍÓµƒ";FÞõP·žÿ>ÃísZÆR¸7µ<¼jÓ ÝÃLt›„F­4èªXÿkwüWèªw!)':ÌsÑlØj¡JÒ®‘a@è]q>‰Nñ0þ Jãó³E%‚÷ 4.öFÁP£¦äW”8bCê­>œ&èÔß÷uöRÕœ×]ÞP'½j<`-~\LèÔê/7$üLÃf–˜u ů|ÙÅ#¬½:mé¥Û²¯?éÖ8ÄRÜ¦í¨‘ì¾BaѲ†ñ! ¬¡ñ“sºIG¶> ÈŽ˜$ÕY#L–h<¤(TUßø:P.ëÌ…ÊѨ >oÚ/f¯§„ªu·ËǼŠ+3Ó4&J[š»7<Ðà×Õ‹—À‹’ÔX硟ì1ÃCàï#AíË+R¼¬O?”›XEŠÂ*¯ã[îO§–~«DÚôPWxoÃг2”£8Œzá«UNP¦¸ÛùG¯*9jÞ _ þ*þ쎣4ÓÄ}ŠJЛ€Á ®î…> stream xœå[Ks·¾oåGìqéÒ"ϫĩT—-ÞâćhU‰‹’%å×§ÀÌ40˜Ýå’Š¬¨tЈţûë×à×µj-é_ùÿüz%×W«_W*µ®Ëç×ëoOWü T\Gvf}úr•£ÖJ)áÖ΃P֧׫m‰ÆX³'[)|´Zúšš]¿‡›ÿ}ú7šRŸÒ`G08ëéÎò;+uð›ï¦ÏèÓI«ôæ´Ûá¯ã'ÍñçÓÕ4‘‹ë«û•Үߣ¾_©¼†6ÂÛõõJE…-jly½z¾,«zᣬ¢Â­ÖºŸ–övú|3}¾èvø>íGYê{7}þÒÄëéóÝôÙ_Îew¶o»#¼êNqQ‰}†¦­·BKˆë­ "#8\pÊúÍÇ“­Òc67¬ùv‚Òk¾§oÁ‡€+š VÚ­TÐض"J½Þ‚:ÈË`[ºáòÙÚ…óú ±¨¥ÂèµSwëwZÚ P2C˸Ã!ˇð¸;ó•oë$ÝæçÍÔ¼Ccù³ÕX^DGc¬60ùk£1Bxlª4öü0¹.wHk¦…êßY„5úc}Fõ7UE}ëq?müí4ô›©•Mx·¯ï³±•¦Û*ĤV¸"¢2eÂói/·]›«P‚Š•Âºø8e+JÊ4Z¡áÃ­Ö Ø5¶lŽÐ%Ž œŽ4„³.ÿ9-ãÝ$®kôq7e`órêðzêðbj½šZëjäõ¢ìÑÙ:Ã,|ãÔïLø6‚¤H< hx„ðq~$(|æ÷S‡«.į»Âÿp˜ð­}œð/º?cNñ¬qŠyI—'[§Ð+æ†Öqù7Së}w«¯º}ë­Žüûêô›Ï¸Å³©õ¬kJÌÀöšÒÏ'µ:µt"gE—šùͼ¢vÓ9xÛíÀÂåËF*³ŸíÓWûú2ŒÿÒ]΃ãôl¶³î¯ZÁOqÚPXÅ飵_ïs¶´Ëî–_u÷ùª]C=.X ƒIe^ðJƒ±[7¤²u´Å,Ó[ÖU„Vñ@æA¡÷¢Û:eóЋX¶ñ@KInOdWMk›¡Ñ4F‰½”ƒUwÚ\*ÃOÒZ¤4Pë”ßK«C$gîÁBо›Ç{/¼†0‹Ÿ2š*¬lÚ)Oe>¥8kP&Ïñ7O#ÐO!kø|°'˜ ôé=A=+°êSGÓ”«åhúEˆãI#ïÎäâ)ÌmŒÄ„x„bZ|ÃûŽ­9ûœÙÐJQTC4Gá¬-Vø§dz¬ŒiÀœÆè ?~ƒŒ1ÒÜôíBP›Á·ô­¼²«>Œ )¼‰‰ óZu¬9=üVžØ((áÈK¥ü7‘rÞ† )Á¢£ }"E g°Úyr¶NEƒ~-`f52¬ÄÌaNñlh9Š™óè  _CR‘€Âõø&³p6Æ ,ob$Öƒ•qh×2‚ò!ƒ¯ôAì‹f˜üƒÔëÜÝzí‡ïôÓ{êŽÈÅÅGoИFÔ…âóÞþ2wÇà'õ°t2„ié wZ ˜!í¤—9”•.óØ`ºˆ" .ãmÓ~Œ!Ç8œŒ-ÿÁóŽíŽIê´-²x´~„«-Þ·¨â“á͉ö¨‹»¼ Ñ´P¡Äm™$XôÛ4†@b ÉT×âîÐ å¬Úk=wMß^4&º vDæûÉMqØ5€I»uƒð`5É ujA[‹9cÒH `fX]ODƒKSëcš«´@ɵÃ`µdIWƒ¦Â∠½ëuåˆàß­Àùœ©@Îzwm]9-¼uUy5 ,ÌÀYÊõ[Ó¡eú¶ž«Ÿ2Ý3\3ÖØÒ™Ýªr­)ϖئ¥æ[ü0¹³ :×'èTU〯i8'&*ãNVÉ c'ºÆMÊ#gô[ò±àì’õ/ñaš³QãAh*§÷iGÑ›ê·|ÏSó(bò÷¶ ä] @ò¤UA˜Õú¾ÑûŒ¼ºîbäÃ!`ЮvB :¡0tq,yRÞž0 -0jCœ…PæGx¥ÙmJq– wRÜ<¹fÞ’:,ø½ÑW‘ŽÕ¨V²Ê§O¶2u°ÊçæÁêÐBGËMŒ‹÷"kC;ÕSØ&…a=c‘¥ˆ´wƒ›Kí/ºqƒ§eü—´4µ³èÃÂY¶&"7ãÉ_!hg3ÿ›$À£ÿ\0©wãüµÄÖ [2¾úaÙ…ÆõV ¹ ¸ ‡õœ·ãÕ F œuM‘9ñ'p×Á¹–Qjó—“ DôÁ-×$‡±º‹’$/¾í{ê„6c.lÃÃ’a®F/,„4~D[/âTZ©Lèä²Q†N.ëj@-¤ø-AY§nI—65NòÐÙGÑFZÙeÁé{XÖ½D êC{µkþÓ ÛáÐìÎF~Ó'ÈÆÓ.®êû<\ôPe: YÚÒ Ic@i?ËäXß~û–b‚‡<3¦¿%y²¥<”äA/…‘¨ª‡ý¹.w,ÑNJ€97ºDí$صS±» ØP•“¨hÕŽ;rÞ-”SK|ùT¹{“ònU¤ÃfÝæKU5ÛêüÀwúP€å:½ï¼» Ã(š.Û6î <=-î&—„“« kR2C2ðX/pü<õYè²TÐÝŒ”0—/9 ‡yì>³ r¾É úQuOUƨ¥) =Âi‚-ÍHÐ<Ìxøæi<*P¹a¦Fï2×!ã†Vga42Õí™ GÎÎ9 9XZ2"$óõúºîÓÅG—íRÆ×ž_báµåÒœ %æœî¹’Açà$ÆÖ%‘šebZr:½«(»ÉqÀÏÃÓg—“>Ž®#(ÒÓðŸ uˆöË,· `±ËÃù‰¤ ,ÂÔÊjá ÌšÓªìX“yæšÆQ58£&Îá6‘`E ãaÂ,eâš?¯Ö;CæÒ<†/«®­¢q `ð'z§§Â..©™êÄ>æ× ,¨ªÈåö°À¨óš…wI“XºÛsÐqê˜)0õ¯uw¥4Ž©bd<*—,Š]ëâw³ò¥Ë|g‹]ë"Dz«@59E¯m'élßÅ¿–;]|Œþí±~27¬™¸£õ“_Íò:¢òÖ¼ÆR’®fy‹-cÃ1|WºÛi!¥Û{3+/yv3+Ñuÿw7³Ðõ˜6-dK—7X÷æ Ò %¦¥’>1ÜÇ:z™{Ð …]üÙ?–MïÞÅ hÏá {^»ø8Ú™«*ÐeÎxK(ô>6h¿þcwBȨDlªž%tnŰQæ¾/ï*1},ËѪRËZžîŸ‹2 Ê ?ƒªÇãÓ/ÍÙPÈ+´XKPèkéhЗhsô3s›ÿ§Ï̇'å*%œcOʇ–㟔ÓuÂè>ËËÞ‡Ìuí~ïÃ×þÞ[ÑÍãÙ{ï¡åï½q’Ïï ['é‰ÞL‘–ltÞ<ü )“çxõ>¿Æ†tÍžÉ]¶èÇÈ“¼`ÌCLò<ð5vÓa÷kì± =ûßy½£^cG Ó¹ ²{ŽÝÒø¢·fšÜYÚ$ì|ÚDœ ¹‹ªË^ôŸÕ°§^Íãmznì]~ÍiÔÿš³Ñ\üý?´,xkZN¨À„C©°9ô—ºç¥å¬Tø/-{í÷Ùo=omº•ï›ì]mý„v01›¢í‚2*§Ô^s{V[›Ç©@ªOðµ~ÉÅö˜—\˜g Õñ’Ë‘3ë-æÊ»Ré§Ô8gñvúœ˜ª1Šþ¸ú/ª]‹¶endstream endobj 2094 0 obj <> stream xœå\Ks·¾³ò#ö¸tia¼W;‰S©$Ž-Våç@ŠÍ*’’IÙ.þû| Ì£1ƒÙ].—¶””a Ðèw7¾õO+)ÔJÒ?Ý¿ßÜžÈÕÕÉO'*Ï®º½¹]}uvòå÷:¥UÉkoWgïNÊ7j¥ŒNš•F¨`Vg·'ÿ^ŸJ¡¥1)¬<ÝHá‚‹Q¯ßÒØºdãÎþŠ- ¾c[j|äv=»Ä¯±‡rIǰþz~KC/Òùù‚¿ C:ãOg'ßÑA>­®N¬nõ+nù͉JF ¥‰l#‚[ÝbÆk!Ó0ssòz‘Â^$k§š#mÇáý8Ðj%œ®öž(OÞOZ,E>êX-g„ŸgÂý°Ž´½þEíÜúj¼ÙcÙYk»ÏΜoò/ƒôÕònM4fø´;Ÿ.©µ‡D6: \Ìtßéaž½gïÆÙ«a¶©|ƉèÆ$F{̶„xã‹-9×ÙÒŸO£)¤A¡lœg·à$>LÉ/ê'gë-7 c”Axš^á3çÌÒ6ƒ CœÙK]ž¨ˆÚX°g/‚7Ít×Þ”Øêásø—Ì8ïzR*ææÈCÐca‰ÇÖ£îŒRÝÕ¬ qªñDTp2ˆ“…h ­ •Ò)²Náæž%Ç>®cÄ8ÕêbE\a$¨“óÎÇ ³d¼Wã’ÇÓ…ÏŠUÙCO}±Ê%f¦Ž›Ã¡\ Êü¶L†˜öå)-O*Ôa«Lêõ»L••jÆ÷»ÛC·¸ŸnëH;(J…ã¹jnÉU³_rUë ‰¼ö-4ÒR¹Ž~‬; ,DÚ!'9+½Ú•ŠnI/‹'Ý?½´ADf½"É9a£­$ǸO+¬°Z-ª%×rÞ¶s.~®ZbI–blÜ(T5VëBñ¿²Ý H¥…r†Î²2 øÂEnÜ$(I ŸFÃ,©áÑîA’öä¡Ô¦¬]´fæs9׿–xyYDk³½úßX98°# Î_U¢mVá¯H2ÜW®:kEíämÉÎXñPŽ“Ê+ß¡íLcIvï6U¯úïË•}|RÞƒ¤ÜËæ=üBBOª„[LwY«?Sõ)¶ýûÝà°ù*07E3ÓCXÒ@ÜÒ˜*ñ”|)ßfª±”»\2ÂÄHL' UóI%ŠCà“Æ7:¦Â§ï3G´NŠL‡vШ…ʉ*(ʲòõ}„:“Ç¥S|„’ƒVÁ?\þ—S×4¥0ô]Œª–Ù’Ó0~¾;&ËÃ&'•i«žfrjFÇc÷W°wÂÆ+ç“Z)Áa¢ÿûF Ì&! ÇàSØÙH™UžÌ4~ÓFŠ‚k3>ÊÛ·ÄÓ_¶|é RìZ–¡Çû¥w4mp²Ýæ¡i r´—¨;rlïŸ[wæ›…¶³ï˜À¼L¬=o7vø+ÛT ¼òT¼'ãD#ìå]ø·|Üù(#C×_'ˆ!MjÂ¥œtÉó=–¤(踘O*<ò°ÞOëá Ëâ˜1R§¹n-¾iÜŽŸÎ%×H–Ý¡¶ä(¸CÔ‡x:h`îKÓ¾½ÂÓMGf±ÐØã7ˆáj‘¢Ú•3ÒÁïæf°ÂŒfj+\‹vÈ-ƒO°¼þjþ<¯ÇÓnÆÙˉç›j<¶–†Ì ÂLeêe4F¬Çâ"’Ô;6ý~T…lº j0‚.uîTdW°Óˆ¨Ÿ6•)œD!ãz¼Ççð> NGQ—ŒP~»²ÁÁP']`L7qHŒ(6±ªÝÑðÓW¥—ZXi×?¬Çé'ÑeㆠŒ‡Z7ÊÀxË…r€ °uäj¼>HD&õ½£”L뺾ÉÕäT1&ø¶bgò>Î~صöUUl´L«I+çÍx÷MªÔbEüñéˆý“B`;䌢´R$CÃ̲Ä"À%c x]dù©gvÝžR|§‹ˆ>Ñå¼à¼Ub!•oIäf‘÷P*¤òa’C|2ÌwÔíJœùÝÌs˜oñMØ“ùš eÊÌTœU½û(~Åü¡ô=ù—ÍϘK¼‡Ì%æŠÙ+Z÷b—îÜ7µ1à‡ÓJ”ˆÈÈþò.¨fïxÓ«–ˆ÷±¹€Å„w^Ì>ÛŒökB–û±ƒow£‹&篛œÏÁÈ#SŒž,ÇBåÛ&=ìro›\½ž°r6[©`='¸¼%!³œ2|Ÿ‚}Q)²£€?VÕ(LgiöI!æ²9ûqKˆ&7±´¥ä¬Å³«Éì4“¡c¬±<Ò-ÆÖ/¿÷ÆsïÄÙÒ’‰‘ö]™ýÖ1¿æÁÔ‰CMT;:¸Ì ÍÐí~ɰ¡ìº¾i7Äìåg­Vû1tøæ8}ÉXPs´Ä;õá˜t†¼;BØxU9Š;9ûâ8Jµ‰iC~¹˜8Ì©T­“`ÖèÈFzÞZQgÖ[ßiÚ³z%ãdZè”–¾Ü>=˳†,¯5y=Ê{¹| +_»ªE«nv‡>¬I‚be!õ@¬œšÚÏÇï…$¤!Q¯ŒR ™Wî…”NF?sP/$w´…‰2Ͼ‚­ßTЊZsëÏÑðtìÓÖï ¨£åÎo}V„kFÅCšÂÛñùpÔô±¨…EXêÌë—ÿ<0-¤„ÑL_ö‡\¨{ìô |F‡ì¨#ЄC<{ŠLu­x=qh›ÎuY_&J’/ëèýlC-oBõNÆÞ qÞŒæú}SD›[hÚñ0uyGsïxÜȌ𱥌ùpÁáÏ—E3¼¯°6‡‡¼ša@™v_îuùþËbP|Ð21€‰Ê"p ÿÞúZ¤ &rYÌÞ³òƒ,éh¼²ŽOó7ŠÉÓK>×þá¾õÄÄòP®®èã¯Eƒ,=mP‹ºþÕ [Ü~Iµð¡JígY³V–ý2Y0 )mõ"(=Ä‘lËeᆟ`§ßw µ[!ÕYtZ4nÎ>®‚m\h‰"׿ü›úå-# T~6ßñî IÚq“xW&­Ôî¼i4<ȰàÓ”'’G'PwL*¨Mi²—fæ§Y6|qÚðÞKg£FøØ–'<›è£ V”‘d~ +?÷µû¡¡%‹”‰n!j¹I&c ¥MÖ&Ix¤¶rÑdéM‹c³¼%ÿ;áº6ÑklÉ~!ùº%ÖRY¹/"—aãÁ !z¯um¢Ç!j|H?&~³hRHÏÉǺ—ï:¬\PĉI7gp· :y|ÚÜÅŠ$U”9K{Ëj»‚ éífoØ.–C±¦°]l¬’θ]ÚÏÛ#f-… /ð{–ŒÖ…%µ“ŽJØYh Ë8?E:Ʋ‹ÁÕ÷¢péTnÌ%ò½Es°3 ,éjÇidØ:¨ª:.÷ë±³ðí8{6ÎÎ^ûÞP®Ž­GÀHv¥sáDø\fÔ0sHuÜý„Eªd· [bГËÜüÙ¾Ýd…V±е)¸ Ðô4E¡ÎÔæ]‘Fý^HQÈqFêÇ,®x:ø9R÷d)“ ³6³é¼…*\ Û`Í×Î ¢”x÷ʼøÐTÜýìÙåŽJD5ßÒ¤‹Í°8üª˜L‡äEƒä±Íéì¦ÊC„¨0[F|ÃÆ,†]°Ã—°ŠªüGf«&åM£`È÷©K†Á‹= ä©Òçò´êÅ@ž ™¢@°PžýÄ3`žØ‚~·ò)Â<ÛÔü·>Gƒ‡Zê%©å óÏK'ðP)!•Û à§/åKÀCm _í¶z3³Ìs[‡‡ ÀF÷dO À‡r§ÃžQž?l”ƒÛ6S·Ò@ÎÚKqk =z.”`œv1ÛÚw ~k\h ÏÅ…ºaúwÁ…b:Ô¸Ð~æp\¨"çùûàBÿ¹ÜÞ˜Á`C¿´|Þ>`Ð4£Íÿ)TI‹â_14h?ó 8(¶ô,þ™jPF±˜^ Š„BøÄXoµCýsX-P»šõ/Š…»Áð·C&SÞ¦JSÇ=ÚÆ55†÷N—½Æ2Є ɦWòìßÄÍ s:Pnþ?ƒ˜ÛÒОÁÌ-n LN'ýùÃä\97Ù¢f_B~ø)Áäž`L|öÍ”Ð)ï‰QŠPSFíc‹xB%Ž`›5.i(U—Ó\ýÓÁ'MYKÿÿ9Bý$“™Üœò–äÜC; ‡0öÝÉ­RÙeendstream endobj 2103 0 obj <> stream xœå\Is·¾³ò#ÞñÑå7Á¾\Å©T*Ž-Våå Š¥*q1)Û¥Ÿ¯YÌã<ò±$Å¥AÓhôÞÞˆNnýë¾¾:›Ë“ŸOdšÝô?^_m¾;;ùãOZÆMì¢SÎlÎÞžäoäFJ×Ùà6ÎëNz½9»:ùÏöϧ;ѹ¨­ˆÛ7§¢ÓZ +·÷4m¢Ro_ÓX‹£ÛÞ¥± AnßÓÐG«„ßÞ&(ÁIë·i,½´:knÝX­­Ù^çå&jõß³¿cKŒ1–^mv:vÀFmÎ.€ê(¡uôÛwÀz‚Ö„ª&dXZhK™NÉH4H@^ˆ´Q¿ýÓ4ü†Ž¶J»ÌümÒ&9;ù‘vrqsyb€ãæ7pä{ îeÄ6ºSvsu¢„ ï8óáäÅ2ßJ̾èD'•Ê|»Ÿpû8 ï¦á«æ‚ïÓAÁý¥µ·ÓðÝ4üWsí]s‹¦á¯Ón Î9. ÄÀ%ˆ™ì„³1f±ÑÚ›¸ý%s””YÊ ¤Vè,eZ)‹V¿’áEìœPÛ?0ù—[¯ü0NŸÞçåQéz%k ¢4YC¼wA…b9CýUBÝ©âÿ³¸:á…Û^¦´Ø~d ¥Pq€l´ c9ÎÐC&ê)´îÕ³È7âkاlâÄzÖi7;©:kÏ €B«ká9ýß3Â]Ÿ*ßõâá.NwuF”̺Á´iñy‚a”£Ó®Je¤fªàlçµÓƒx"ü·ÕÚZø›âhΦâ°ßo“åá²VI V{¿OxÒÉ1¼œˆ:“—4{ËÄø]þÎ;L'p£t1KZ±43À¸f€K6Oó—ùˆ ÃÃrs YÂÁ" q\;[H “N®ão ”ÄÆfn¼š”jÞ „Îê5fP+«·µ ŸÛï÷R n̪x,¥2²3•ºé7‘aP*†£‰dS©¢¡Ìj¥z? ¯§áå¨TMMÒ¶ ÖŽšÔÁÌ9M¡Âö¯§AvÑ·`í¯èL¡‹6.j§Ý=QL’m8ŒÐß’œyˆ¬Û«ÃDhL?ÂèÉÛ ¬åvàSÏYéŸß ²Â¿djs=}˜uB“›¬ÐÄÌJFZ.ïÜ»âLÚ#„C´x>ÊþšôŸñé;~èJâÁXMÉíã=Í ³i‚Ïmé°cy¤Èhçæ1Ä–y¤pâ–Þ"Ñ9úãKeϵ²¤@ úUžÄL¨Ìù¤u‹,&qRž¤|ôå3^ûdè{3†@ëS?éãö-#&—îëÚÐ3B+ z³(ë3#¹Ð-ÂñÒÄ_PF½±Ú/ Réáíí8ñˆŒÈn„F"%sÆp¹)e”g¡¿ ÚåÐ?M‡þyø@è\SŽ'–ÌJ ‚x`…’ÙMúÐ{oø4áÁ,¤ºF† òßIö!Kq!q¤ âzHÿ¢Mj¨=vŸü;’ö~€îÉB ¥[þȘEÇÏô7kNn¸àó/É«‘ßïÔ~–Ãc;Ñ+…îSÿUád›Ac`Œ_Ó™¬“¶Ø«e–±‚÷y;!Ý£~]ò,ɶʤœd3Ù…Ò<ñr^@´c¥-¢¬¬N'%»›fßO³×Óìå8ÛÔ¡~ï”V•‹¾"f –¥”ÐÚt.†ÊCk ÎÆžf”¢q :wY2-»ŸÝÚÉ.…ÒV÷c‹ß6­Ö¾4nKIRo¦´ð1G 䌲 ñæþ4°~쫋͸W^c+?eˤYL}ªÜ”–C#¸MäD½ÈV;"¯“yd oϹÇ×Êèµ9~ñÖÙwÁl œô„ll,(6Î<ÆèAq}$H“¾ö2ýö»iøK³ÄÖ^T–²xäÃTU Ð41º°É~ÊV#˜ñv(M³K#~ÇÔ»L(L(î˜r¥ ^Iн’C>9xÿv] ÊÖ9Ø”ã‰BŠž7F£Óý (3Ì<ê~ÈB” ôw&x;âNE·}¹¦÷p,kŽe$ÓÁ"‹ ŒcšL‡µOá@ *2%Ç^¬ãX ‰¦› B”j¬ÎR€Øy˜ñ^¬¿)Ö Ä >®Xò`2¶¼}hí·Eв“J5÷©ãinšZWˆ-X ïæâÓØ9`”Øi‚h¥7F"σ¸ÂŒÁÌ8ñnÝÛm(uDП¹ùÏ _&r]ÁÊÑu®Ñˆ*ÙO ^M³SÊÇõ„qäÃ"ían‘Zø/•ø: h&âO >@ l‘+‰Û$(f&â, ?_#øñÍ =’øÍϘY<¯ÌbF)eðteó‚}²s×”>F€—§…%Aêìº@ÖÆSmvyTŸ4»ÈÍÌ…¼­H1ûìAßµ§ÀÉ|W>Þ»jv¥ïb¹•è(¹X‹YÝJ<$À_a+±§?K+±^™±Vâaæñ­ÄÔ·Ågiéü¡¹»~ÓZ°¢ý7È/¢ý7øÏ×þkñCÃÚ‡™'´ÿZ•*?_¼¨¤"LÏÔ¯KoÛ¥g$ÖÆEzGûk Rˆ‰Ä+Ûu«´ëŽk`@ Þ­vÝYôsœvÝô¨'„ã´Œ¶;üšAmNÝÅ&ó°LªD$ÈC)ç=õÃÊáfí4,‹6–“ß´­á(Ž?žü‚‚Þ‹endstream endobj 2112 0 obj <> stream xœí\Ks·¾³ò#öH¹LïÇ1v')Ç.Û¬$Uq”(Ѫ’l:véßçk` f¸»Z:–“Ò „i4ºý¿ÛI¡v’þ ?ŸÝÉÝÍÙwg*Ïî†Ïîv]žýö+#Í.‰äµ·»ËgåµSV ãÎ+ŒÓ»Ë»³œß?P—t çÏæákzé”>ÿ¡»àÛyøbÞw?û~^ÍC¶à桵o2\Lµñëîg×óð9_pá¥:ùóoλ‹´ÏçóðvFâyƒÚ‰ç]¢½l(µ˜e8¼"„Á/8Âÿ¼üó™¶NÈvJëeÚ]^ƒTkœHÁ…¸«–|óäÉ…ÒR kNåÃFøh|9A™½šg¯»³?̳N³´÷…’A¸ä€ Î9Uvï ÏU—|W ù8¢]Î*á¤i åÎ „raN¾ã+ˆL6‚L&y;ƒÎÚ…®?D=ÚŠNW=/®ö©gNªk“Áë‰'%¤w)ù0&Ø­Ùk¬QEœ,ÄSš"NÆDb‘¡a DÀà*{þ&·eµ :Œãüå=­†šÑìF¤2<¾!ø¨cµœ!~•÷¸,âƒTFí\¾çÃÉÞÈZÛ} s:ä[ ¤¯–k¢1Ó§ÃþtH­=]Nf+ðd¤¥Ñô†tBATŸ³¯ç]Šap0h>5†ý»Z%<^‚nÉÛEkéûwÕ rŒÂ±!äå²ö·{!ºÂh­ÐÖªq¿ŸfÃ%­‘ ßËÇ´%<ùà5ãò’gß0 ë«À¾»®%~â [ò’‰ü+†Ó Á&is Ðkö¼‰ Kš¤ÕEN†úÃ,­ÉlIkF*èm‘„Âx;µ/’@"Q‰ä»x]94ND7)1_Í|Ù0Fùæ²ýáITðyÒ$#6N²;hœÖøuQåT%­š£‰á0|H¬pÆn*Và”Fã´Šè'¿—Ê>@±f¼ÅŠ#Híª/Ù¥~UP‘¾ºÈÜ^qk4!!•“è»X]á1Íš[§å°W ‰£4[Àºj9òð¨!Rµ¦ó]Í&â 3-߇ fDØwÌBô´-©Mμüf˜Å}Ä­w~ôMŸpágg_Ó •ÄDÀ7à# .® ¦UÀND¥&΄ÌL†˜öf –KhšAç˜ÂrcØ â&’Xé!«Þ«=”Û¨¾ u5š‚ D³‡C\†ñld‡Ø(D´;çŒQÃù5*`FM3G8¿A´-""åìüî—dè{± ç÷(/Ö%x±RDœÈV ­Í8±Üjµj—žKÍ/$¿4ƒT8ÈE%q­ñÐYÐmò$íC,õ·|k`ÓJ,E{Y™À6·*è“%ÉÚáÓ¾…-C@Ѓ$©ÊC©MÏÆX»z—™>çTgZ€ßþ%øe űãç8<¶c¥1¡àÞ:ºØù«ŠõÀÍ*üé&ãLQrµ×dæú>âÚõ_!Å}ÙN**WŠÀÁgÇ’Ñr¸8ù̯ˑ³õÚÛ§2ðŽ•{\Ÿê¿ mtcFîˆY2Äu©þ¡\UŸb_í¿šÂ¡læñE‘Lè¯T™-vÓ˜(ÝáLà´Ô«ÁîÒÊ-ü¢k†˜˜‘YÉ ÉoT2Œ_eŠh”çy!žÜÉÇ’>,/DîOýpøŸxؾ É=¢ïbôµLž!)ÄaôÓO}6âLJÍj}êä`'hË”4#[¦t¾›&ŽÉãàâ$8ù¦ó8‹—]Ž_@Lj$]/ó|E_qŸ›-oL ÕN—Îe‚`•Â"eªA?»Ë+ÕM_š½"Òc ‹»÷‹^6b]ÂÔù–™sfåïË6 H=S7œ¬Ï™íUÀAb+-ÆÓBÜ‚ úÈÈPœm­V²Â<‹½4œYS `_Sm¶æÅ®)Åɶ«ŽsXb9D¿ ³¦7;©x®F¯½†Ç·çÌë¸NëªR[½QP•ö< &%ΉmÁT›š§}ÅüaWÉQÂÆØÓg®¡†³£nmˆ¾5e©UvÔÇ™£²Ô Ç"PçáýIRŸ4ïÆŠ…¬ŒsÛÖ—hx-s™*Š”äd–f÷¶è‡h§"Hžfµ^JÌ îF¬J)™GR’Ê'^è5mU¦. ¬rªìt÷…<âI¸(ŠÌ'¬z Ì8s„„¤6aåÃöó}±\Ý6RUÕíƒÃô²]‡7&8ÀžñÆ@ Ðüx"3o¾>Š7„(åC½Ó½ºø”s€ƒcRu]üZø›‡Ö.ját»‡z¯õËZxUòŸ†•„‚·°Y>0írà ¨Îí©æhøèã4s?_D•½)üü¼ãL°»±Á”ö‘²àv^pÕ Ùôxr»J}¨V£TXø)¿ê{ ¨§þ0ó.Ô÷Š îIýESKKgÆF?ÝGökêwú@¡þÁ:£n…cçá ¥²`KxX_?vÍ›n ÁpGAò 8BÎèEýñ×ÝPÕ£ü~–ÊB%¾·}X³- – 0›ö†÷Õ}X þ“ûoôa¢×ˆ›Ý\èZ]æózã«Lx¯=-c#¥ CÔ±×1W$¡œ‰S|Uë¿ JíTþLs¢à";m~F‚ö»Ö6é9~rr>¦}è“óhE?móˆªÀP«¡?)©Û³sHŒûììòƒÓµR^âÄ퀔wª´:ÿ?ÓH•òúáA(ʪhuRV%(ʪŒ3GeU‚ߨ …VüZCÞZ#¶Ü§r‘žò`'ëÌe«¤÷m¤*XRnŸŠáiç•F…œªŠ@dµFÌJHk‰ßýzÇåE«GKn£Õìj‹ŠÁ÷ú³," ohô^h­¦û|Èåh[{|Ù2è‰á‡u æ³Zb:†VSWèxµáÅœžç¹n.Þ·õFfÞ긚Ôþ.꣫;šø’Â0ãÝêÕa¨Ü–óXå¥M±À^’ÎJ&{Þ"âCÓÇ)ËÛ+x‰…¨Ü ܇Úhx¥dÿl.Ÿ,éE]KôÜ9±Õé cÙÐèŽÍj˜özLÛ¹: m²¼³Â»Zpfâ5%£Œ—Öçß|Ïv´+ªÝ—£y¯*§¥\®×düºìG¼­û߯Õý"r4к 7Æ‰é æŸýØ,àôºê°`šö[–²2¯ Ü‹KVƒ›¨pÚ¯öâušwr3ÞRF¹Ïdµºw5÷í×Ð6>˜&‘Ê5bÓ—:íÀë¬,ù@ƒ\S7ÈQžÚ»º«t†ÄD1A+‡£æ›¯0¯¹&(Jµ4ü‹Å>ª}±-µºAŠžvE• ð†cÈ¢ƒ’=œp|0vG¿âˆQ×q즗r«ë8 5Gw+Q3—ô´7»Íh¯Ó#øfY–¬ý¹}3G:ÓoÔíkÍ=SóÞTç©ÇB:S7@YmòÕ=û^­¶0m£‘s‡]b‡µæq>låáák¶6 Û0òõ°µm»ólÓ>¶«þáÂÎS´gðº´ö!N³sËt~WQ¬uƒB1„ÏyÖt{9Ï.J”c&©Uà­B%ìàyj‘(”¶AaFM3Ç„ÒÆÓËÒòl v—ðÿà ¸|önÄ^˜èÞ½“x!éû­¶†€¬rFTK'±áÝ  cçéy³Z]r¸Ý&ˆ ¡QœgYÓιYLçèE•¶_'*­ðÚ}1´”±Z Ò8}ùVôwk8f¥ _¬’ßôÿ2Á:’–ÂQuô"GWj˜oÌ£I¶ä)“¾$ocëÒ^žýD&Au¿/ ­çp,Ð/•|z =½Ei :¶ŠG{C®7¤ 3­üÈÍüÿ/Á7¨må¹¥]*” ”yŒÅ*IIÝWÐT¸`¹é4Ñà ?Í•A4BBc’ú³vÙ™Á°ûjþ®»à³Yk2Ïþu~Ò¬-ÿÌÃ?ÍÃÏ·õ"¼L9§i»~AŸ;W7<ÂëŠZŒbÌéBÇwa@lò aƒû÷‡˜3xTm+s‘ÉÅÏUår Óôg<öîÍoÇ{—»†ºvEãB /Ó6y›¶òÄ"ürÙVÃa×C)C²Yj"Ù2ËÑf„Ø,°FšÆ%¦—H¦yLs_œeÕšCð¯¬S‹ïRéßܨ«{qXó4çuY”ÞN…•ñJî~]3¹qD–µ,2{1šÿ?aè˜\‡Uôð†ÆµïŒÎ/ö6“ôÇNüQIއÞVãÔ”ÓYB^$9ÖJn7ãÁÂÆÃ:c‰‡í‡õŸ¤ð@1ÅgÃ> stream xœå\[o\·~_ôGìã*°Þ/¯Io(Ú±ô¡éƒlɲIv,;ÿ}¿!ÏexÏîjµ‚åaŠæ’sŸá§üº–B­%ý×ýýæv%×W«_W*Ï®»¿ÞÜ®8[}ÿÒ¨´N"yííúìíª|£ÖJ)á×>¡‚YŸÝ®þ½‰'RXgŒ³qr*EHN˰Qã´o¯HÃôÎþF[J÷´Xh,v=»À.¯°X¹¤cØü8¢¡—NéÍYsÁ_‡!íñ§³ÕÏ´‘Oë«û•Ò­þ²R1-]̈àÖ·+•fÔ0s³zµÌ«ú௒ÂUkfÝGû4?ŽÃóæ‚ä{‚JØ\޳ŒØ» Oft/ÆáekA'‚Zê§Á -MZŸª(R”©—„è£W.l¾œœ*!}´vsǦß"ÿÀ¦ïil“ 1n®™*tóN*ÓÔíD’z}j¼Ð1šrŒëñwœk§.%áƒ>¢Îh©£°zíUÄmôCK8ÓÏ  ‹ p;ûLäÔK-L0›_6ãôΖᔳåh Î’°ŠqÖX™„‰á,Hˆd&œ}ugé ròÎà D°.íû®ZBÖ|ÅQv” }4F2Ì~gÙÚÃ,mwšŒÐ6FI çl·ã›q›÷M㨎ÉJá|⟽k²£vÞÁ!f§€ËúÞ)ÔüÐælÓºZ²“!×ãÕïÆÙ«qö—“a:³A;-ðG Â=ÛfÊböŸš ØÕßN86ûl§=Þ6­ijå~ï›twØc${$ê’–¯fä>Ã×ãðfB¹œâCó—MV]7¯tÝ<ÃX (+÷ YGL2Ù­z¿\ˆµA  ÷P^û]†ÃŒì¢9ûiÑÈ”„VEß™S3#Ûe-|öÍô MÑ"RJ5e‚éaŒ²DMØÍ¨Æ÷¢¶½€­´Rî,åÖ¯šŠ>DKg6…jÓ3\t ó\Fyƒ°BÒDv`}Ç¢?æì$'SÞÄeÅHc#SJ´7}ŒªÊ_xŽó‰Æ*(¸Èj K‰ºL ‰.gթζ1VòX\O9*ÅTdc&‘†.FSÓQ]²±:)¡”UÇÏ£UB”EÈsÒj3RÎ0c‡™ƒræ€l2“’ÔøYæDœ3á¡’ðVÅžáK‚Œœ´h›à™³5ª(Œ…JSƘ¨ààïØÙktÜüÉþ¦,wA‡~œ?½§å¡±¦>Q›LÑ]ÁGç«ÙÉÏóɽîÿ=kq§xQ;—M¹»Ú—²·tzÊœÙÐགôÕònM4fø´Û?ßÛÃþ ã^¦c²‚PzfÈ¥QJ¢ípÊ—lÇ‹q—âým$s›ø7þõ{ì ß „ðJä­öt}"£µôm{´Â=¨Ç¶œ(Û#Óí;ì ©ŽÖ â`ÿ¿N„ëÚDK´÷pan›ò€¼@Ï™ŽÄJ¤Š\öï £´­l€iÁE­ê¶äš©ú;Êцgwé 9óÁ™}(o=Xåí ¥.r6Ôf-Mf›––CŹ*bܦSEe{U$®¶U ’t®ŠÉšúGÅ“sÃ&b´Éle £ü¤ùó j¿Ò $6γ[\×Áæš;ð³õž–;T£ ÂÃDðŸÔa/§ö@-£3ËÛBR¨†“³{ø‹Uì\2ZXzÂÜùžÇ»+¬ƒÃà 㡉Ç2çá"ÔpPöË"-8åÞ•g uŒ´TÌLUœ¶´Šä¾¹¡ÙBg_ïCôôï“ãKÃûðêP2.¿êâªë¹ƒ ŽÅ¨œ±iɾ¯Æ%_N"l"ë^e2 Ù•‰Ûã–‹¨Ô …£%µ2cÚW´ihÛʤF‰L‡²ÒƒÁœ׌¥xÎO[©,AaǸG&ÛîA±Lv(Jw×Gjµ¶AÊzêî;¬¥Ÿ9¤»‚Ð) œºëAí×h§¤ÅÛ”’:’ûàB^q­h+)Ö¶A+Œ6‹amÉ ž·W®fbT…¢ÛÉâê-y¨~ßÑùW6!„´´PùÐ^Ô6„s]ÔîÆM*|2a+#¶¥;D=HÒ¤<”3Öä¨aí¢a3Ã¹ÎøµÄ#È˪:wŸÏqzlÇÊåV¶wdÍù«Jô8›Uø)’Ìp'‡š¶Úkˆm³x7»Ä¬¸/ÛIå•9dßXRúûcöû¾\ÙLJdIFx§ÜÓfI§øaSO¼ú- K†¸¬ÕŸÈTSlûú»Áys º1O‹f:§‡¥‹¸¥1UâÁw©peª±” ]°ƒ‰ñ0 ]œ¾5¢ñJ]çeæˆÖIyÞÅá­˜|ý®Eú88«‰à.ÿÛ ê4å?ô]Œª–ÙÓµp8v³¨¸ú3“S£ÖÀ±;1A'x˵•Á™âj7Ì ‡4b`8 i;uâà”w6bfÅ*3Ž¯Õˆñ"°J›yË'Å›lù$î‰úKÛ¤!ª›I(x[V€ÌÖÞ –¹WeùÐæ‹ *ÿÈšµÜlÁõß—]¤ÌX;ânìðS61¢–Rå¹xW‡GFÌdø·|Üù,(•BC<1M<éR¾ºä ¿”(踘"OêCò¸ÞO‹§a£‹â¨1R'¹ê-¾j$Çwç²k¤KËîQ[ã(¸GºË Ñ`+ä0l£5°Ÿ‡{Š6³ƒ_¯ äYÚ̘±ÃÌmfWH`?ýÌÛÌ›Æáçi¢1}Ò»8©âTC¢øGÕA:ÒŒN¿&¤#¤¯é€#&ScŽ~æŽìïÂs…t¨Wåå¬zy>^n|ÿ™@L@]¦Ãcp¹¡È‘ õKìpäb1ÆÐ€>ìùLýP,ˆ’„Òêb­Ÿ?S? rø§™ELñO­ =Ç?Ñ~áø§|[M¯™*‘dª^)xóõíØ~ä­?®ß7õFD<< ª?ëñ›Ê™!‹½rŽˆà-Û‹NARßÍöÑhöæÕ ¹Ç”œsdÉ9ŒÆWì@aÃô-mŠZx¿õÍ×ê/º»éÙ+B~ãÝ冨½Ä§¹Ø&ínC°jƒ”üc«ñ΄r_®€|³:ïÑ:°ÔN¾(4‚­Þ¡Ùêös–u¥M•™Îb3[–ý6YÀÚe FvJ¿ëÒí·€0¸(òòÁÏ% –ú­`Æ"i»häœ\ Ûθœ郋-Óà%šn7‹'Ô%ŽEZzád¸ÍKà1ô,õoäìnj°Žµ&#½øŠò`Mÿz¦”ù;±^J&a­©á»ø›ò–“6U8M™^¥^7õ–ió– %é;‘ÁãŸSìáÑ/$G·tkÔ7[”voDèE §QÆ$ÐkþÖ„‰vÑO_H—´zú„)_A›Ü1f®Å> ‰¸ëï %ý´6ËFéý0¡R˜à2¢£òko -¯Uþ¾ÌNÀCÇà)ý{’Ì‚0&ÅãK>CµË¨ôÆcfÞ·RÉNð¤tÛ#2öeãe4±ÈÇ ì×€2êåCUÇ–XøãØøiœ=gg¿NÛ·qJÓö"Pt*=¡X¨üì'é¹Û€ê>S |‰ág½ Öò{Ww˜àlQ O+“-¥j)ß÷ÇzäG—±1@ÚDM-oG›P™ÄQCÎï‚8òÁP‡8’Ó‘ùq¥^\–ÃÐo,-y¸­Iåñ¿Ì2øÀÆÌ¦3 'h#¤Ü í8w>ž{ŸÌ‰ßaÁíðTv¿,$_3>û¶+ÙíÙ=<¨i”Evê,¢höa¹îÆ3`xÞuÃÆ,|¼fq‡/¹,\ˆø}bŸ×°OY+Þä÷%æ@ÑÿÐ"âtüöqÊ÷ø€8(+ # ®Ÿx ÎÓoœ=-îbrû¯ÜÍ ÂIÛèæ=E—È?geã.l¦ ºäᆖÁç²ÐÐÆ?A>J¿XØÄÐÍÒÑåžD¹˜·ý©§?2a?]˜Â7¥é X^7«¨–ÂÔR%ypŽpnv1!Û87öÇÎ)Jjà™A¸wšj<€‡¡*%³ùyõ_«[Óendstream endobj 2130 0 obj <> stream xœÕ\K“¹q¾O8üúæY‹÷ã(KöJŽ +´…ZHÉ¥5CRœ!wé_ï/TUt7{†«ðîE$ùøòQý˜äNÐÿåÏ·b÷úâ2îÊ/nwÿ~uñÍ÷*ú”S´Vî®^]äw$†äävÎëIz½»º½øë>\>“¶R™°ŸèÙHï¤ßK6î/ŸJ©ìäþ[¶Ö™ ÷/óôàtØ¿cÓoéYY¥„©æÜ§9ÁD£÷ÒéŒóûÏ—OµÇênÿã%Î笑zÿ,md´qÿv¾^oØÒoò³³ÑñÙ¯ie7y§ª 9±Ól­½œéÓQ©yÁ´8[0G öwéQmôß®þ+ñ<îâr&ñ»0Φ¼¥˜W·ñ²–¸…9ŒÙó!…žOÙ¹¤åÅå”Õäwe6åm5¼½èP鿃g—¸$£2E˜«„äT¼-£µ¾äÃZï øó5;åú leåI»ìLeŒµbwEæe9Q­©Kd*{¶MSZLA«YBÒ¦RZ¸¬¼“ÓJ»žÌ’v-3)阻4œg€4sÌÜY˜TçëíËáÊAƒôµy*Ü"»À´ƒ®R÷ká5lÙ¦*!¢q•5)ì±`Ð, 2Žnx 0“Áyj¥©­EWú°“ÂNÁøyyãýÐññO—°ûðr+SÆ')PРecžò0`ÂС,*ýº+Îl»ÆÓI$”ñ4 L³½¶•F7>iñ9ïÙEÝ0iÈÊkta$`dî(Ù|5N_ÙË2‹Ê›IÀ©sB>²W_³­ÂÕýX6×Õ6wyTéð%:©+´„šâ¬t2i£ Ùu”ÇëãýòØÕ1å&ãÃ!HAÂÍÄvËÊFÙ¸@ÇŒ’“‚Wý]R{' ÙÄtEðf?ÑFU#Ç$²JÖÀ‚íöd½ï¬k@Á…F×øÝŠ Ërœ¥½¡°´ÚpÕdÌùÈ–.¬À”áöü|wy{¨"^)ÒWÊ^C—to*ª8SZØfÜdt<Ï2JFÏÐøxH\Ó6¸Âsdç°õ Í­ |‰WyTêƒ$öjFú!VO®©8/ü7;¯4ÌÜ[v^!:=ëÎêEQO±iÅ1vœ]²6¤ãÌx³â·¼Ëâc₟ ¢$Í´6$(²ulˆt]AƒÆekð‘ÐÝa-÷´"qŽÓÚÑp’‰WùÅhj€Ôª«€9~{°;ŒÊÙ‚€™ö ¬õ3ìÁ¿~MÔ#exèi5¬€ˆÃâ@a™Í}™ù*b%ûŸó›€ÓòX§W;4lLÀ‘ !ã9¬m'!MÇRº: à*8âë[¦_¯‹(I»µgI£¶ ˜u—+ ×:(ïòâPˆv:Iµ¬ùÙÛàLj3Á»ßg|›Ÿ¢Õ…s¶ðÊXÅÚtû«Qs¿VéîÜäpw¿Ã9A”uÜJDó›õñëãUwBBNzÐÏ\]ü‘vrq÷úî¶Ãî~º»o/” v jg£tPŽÝ-Bi'—‘›‹? Ó åsúKÀŸZhÆåà·+m/»Ðíö^óÑÍ\Ù:MT]ÃÓ¾>ñ«ë‡4ÕNÓz»EÕ¤¼nàׯ“Å‹:“¾…"ðïá–ƒ+¦?ç¬ú(ë–&ÃȪƒ@yI®ìt¤Æ}çÆ4¼ bÝXÔÄ5t´:ë¶I2Ù @ìVYôzy …!ˆ-…¬ã$>å±(ÜÉ&UÖµ‰7¢ZØ8ò¿/înΞûÁ $'DýøJ®cŠtwÖG ¡Ð:Œ,gè3V˜é³ÇŸ^ôø=û³LQÑgÅ_N¬(‘ÃóäNçˆB§9‡zŽl넟ԸÕ(ô8(2JAÕ[œN‘ŸãØÿ%M„K¾N4EûÓ2ÍtÆ} ÉjP ‘Ì0Ýý‚I>×X¾Jô!f72„3Sô8fí8Ýd¢ø¾éfÓGFg?š9FÉK³Mñ7Û­hN–"VS)½qúËȶKÀ®¥%&ï¶¶òÃúøl¥ùý:úãa¤!•{Š^ô¹ˆÛõžJDÀÌø>žûQN{ÎAàIç0âÂS,1yi‡<=OºØúŸ_Pkà–Íþ/ªÂä€SSÂ6È*¥(`’KŠ"ä\—PÎÙ$8Y¿ônGfümÞ̪Mn<Ñ CUxãoþ ob½ùÕŽš·õ…Œ£!`ÛdV¾rÅØ´zë»1z$Km(¤ÌãÖKH¿¤žæ`ÀZGøz ð§FøÀ“4úÑ\ AÀ#oüiõšlµ91¦È÷vRçsñº~‚óê˜LÎ)Né»rÉ­v3Š×ìX¼3‹˜åõì~åà=[n懳“.ïW›Tç>FâÆ/-E­ÇJõ¦‚µÛR=Kl'aÿL+ëTV\}~1FSµBtrô³‘"B¥6ÍÕŒfy¶«¶äIº#†ƒ®äm_èèSjÔªÙèmôìež‚ؽ ãûEðA®‰x—×£"ŸÍµïgš—áO*s·õÄ-š†ƒ¤.aÉÁr\Ï}²Ç:AäËà‡> îáHÌÃh·.V²ïm™«Ìõ¦6ЬêÛ½o*øhŸ2Œ"„4ÃNZƯŸÑâ±çpäª=6d_J-Müˆ¼Ò:˜Õ­j/+|–œñuɇšƒ±ëò?¹R§IJpÊ4â {§÷?|`£ŸË‹P·N­qk·EÄÙ“±p)=(ù.ÛõM™O—Õä“úúT }N_…†a¶±¶ËšÉ¯–¶×‚ Üuž¤m×I‰‘™§¢K´TÕ©ÌÏÇêMI•w ¦ÂÈQ«$ßcàn“EÖV[p˜Â (Ï` Òãdà*þVç$š±: ß³Â3øÇ¿#d.‘T &º¹Úú‰9¯‘eyùCQ3ãH›&cÅÅÔ“•ë©A!ßIÝqáY x*`¾&Q›]&ÍOv™bÝ6úÀ{nír,µ „öU¢ÐbEíÃbì6c›Dr`ÅËŽ"×쌜"„½­®bXÚd¾ A yR£‹ÚÞ5¬'¬êè¿ÿºí<üÇ„•³Á{úpÓ@&„ç¶Ý§Ic:@W"i=ÓFV4”;¡_ñâ@Õ×.ÁOÝÓ2ª;7“NÐ(±I!7ΕãxÚµ#ˆÚÃ<Õ±Ì7ù;MÐŽc:ªªì=#¹›³±~ŠV.°×k¦ýÅšÿT¥d¶II…û&{4Šhfϳ¡$4ZÓ ?JîåÅúøiÉrõÛ×=qŠ( ª|Â厷ļ‚*=43{E r+jØ]ç¨HöI«iâäPâZ€Èí@‰ Šhʃ¢#âÊO‚9i;¥ã—g“± yúB‚ï”ï¶’vµæ~Èëâ_NÈê¼ËKx\KHsU{ñ¤»‘:¾–Àe9‡ãa©nª‘kÑb±N¤–ŽY¢PŒW舌sTÃxR’\G`8]7²o²N›ÀéM3–Ópã'Àuøÿ¼çj^æCÙ”cZ^|¼–—h(-sȇÐîjIc4p¨#}MGPclˆMÒô@úâD°¡3± ÛãòÙ}¾§ïìë¼Y½Ï¼G¿I„Ê”«!ÿïÕÞþyuß­.â»e´ï`ÏY=àIi5‹R£'4Ù(Í•ŠÏ¸é?MÂ…úF‘|Á"YÙD2Z#l覒zížËœ¦L–›ajø+ŸV…ËE'Ò›@cJÐl˰?6£{—†êòæ+Ô·B€­3;C=#ÆQ}+ÂÝÂÙÎ#çÔ·"ÁP¬à¨q>—bX+ö±RLnŽÉ7«xÞt_{qYWpšëyê-y6úÒ`þ.3œwÁI› `Jn¯ ¿[ïé=ΟÚEˆL‘ðreÜ ÙÇC Q¿P;¨öŠòñë”!N:ì´ ´)Ýc±ËÈ9÷Hͬy S­©ešëž"Å`p næÿ¯ª¤¯C•ÞUS³Þ(p4ãrÔ”¥Â,TÍ›¯'äO“…ëùaßÀæÍä7ëãõúøÃeƒú[Eƒ‹\¡ 9ßÂo“èCDLG‚QÆ%siÏ^O‹£Ë_¶‚%s6¢(W äG¥—VÇjÓ·¢†Ð²A<€gé‹2Aä2©W}»‚©Q•Û;ó5:"ƒô;pƈ'ËŠðLšeä,Ëj'O‚KmÊZþ²¦µmÅvÔ°pŽ£ÌÚ¨">޾IÍŒ~{S½˜bq߈ Ü]ÞÇ9šZT¬uCàÉÇûØús¡»Î›1Y$tXƒïda¤Z&X×ËX$Àô¿ŒêMÁAH`~Ÿ„Ç £ó÷¹ôǦ_>–n“„mdHoºÓ€:;пµIP5ü\/8§±jlÏ ÎÏÑçF|¼Ó\Q¢ 2P&æz}7·¾¢,¯Øzæf‰Ð­†m¨Ê§pÑÌßF@gUlÓϳzsª ˆ_ÀÇòI,¯‘Z=Mœæ§ !åͯ-ÐdãcõåL5ì<äØ"ªÁ€N56[èQhØOLOmšT<Ê𡎔jîg›¾ÌøMã)*„t„©i\Ròu9«kœ0Zb’ªà™Û®5¼]áÊ®üÃ:Ê:Ì_6X·1—ÔÀé×ÄÈã¾4µ €w-ÛBÔ°j$íÔS¤ý\Ô“ ùôu§jÍa¯¿¥ý¸\N¹š*è·F²~_Žƒ)Mö‹–hô¿ó)ÕÁ¢Ò–Ai:ŸÒ`£úø2ýHM×2ãx~aD8É]=ɬH?ÿ"¦Í‡†wÐÌw·´­‘Po‚){K{õMI¯ÃrkJèãæêKà¢i¿Y5íëh‹«òèïªl@²$Ƙx³ƒö“°$áàD ¨Œœ¥F Xú±u40⩊4úûõñm7–¾_^ëGC’RÀ±±)ø]Õ´ÎdºÒ†2ð*”þû$‹ð‘ÒñžGáYtÎøTw7}Øû鱈ð©Iï…àbùÑ«½ó5úy‚Qô#yI=I*<~ZLQÛ(P7`7ì.µïC@ì2pV÷>dÕÆ„ä£ _.j¿^åÁ1¸G![©kÑnÔ'ñbÓßÖæKúaŸÃ8S¨Tÿh5üMlá0ír¸’•yX¸N»sb¸žv4õGȯ2©.êmÝJ"CóKUÁ¤0{vC¡fN‰/‹$`=`“oK#ã>ªuÕm7Ö62âÏ£ôΗ,w‡~/äqP ÞÔ/§ýÐkýæ%ùŸ=oJféñ»Þãðû‘µjÃɵˆt,þ°ô£‰¿Áx.5¨ë‹T Ô2üO©@É4&"«@Í#çW dê7ó_ž&ýíúøl5Ñ÷Íèÿ§²“ì„`'2Ô òå]S×!Y³G¼gX¸ä°ƒ½ ð”M“`Ž´ËÈ9Ù4Iýb†–˜œ>î‹Ï¹èTz1_xéåEwa†ï8rÄ0;Á=f8n4ýÀc§ü¤òÂØI?reÃÎ/LN悟Í?ë»õ>?EíüŽÏ8 šOÅó—ü¦ÚTÀ“*è€sÔ“Ôí¯€<â]ú=µ“’rzT`D°Oj¹Œœs’ºÎÒÀ/¥ÀÈÒÇáhÜ¡Ö+®ôSrø¯®¸²já›fñÌÖ·tKäº+OìdÏ×Ç›F@–+ –Q3.07'ôƒkˆÓªÙ_"|÷ëè³uôù:š+­ëÑD òLÉߢ MI¶«÷Ý ë‡¿dËãëõµ£±|õa]ƒÈà‘§±Ñyóð»â0è2œ” à]w´²ºœâJDJVú=*jÀBR%ý¾È´ÜÝhH«‚º‡Ýc«Å?ÕR¤xúAœ~Ã7êñôçÄ.ç~~§—H©¿ã}—e­ä?TG$[¤Õ!ß÷Í÷N»*„g\™_I´a|‰×¡Û*ÄücæÖê ú ;àEš¥Áõ€=ß™=>o×e'€¥Ý~¿&;BuŸË; 2+„¶DŒpÙÞK꺥/¬íS†~‰%h»pòñ~^Ú¸‰Mìø”>Š«)ÉcJ—KŠãr`k×ǰ<. äÿ'4yendstream endobj 2138 0 obj <> stream xœÕ\Is·¾³ü#ÞñÉe"Ø—cb;ŠS©¸l3§$IÔV©…²-ù×§˜Ûp¸HqÊŽ!<,î¯Wàí3qàøßò÷ÉÅ ?àL)É8^a³† u|‚ߊ‡ìñ]ü¶Þ‹ãKütÁHîŽoâ(Þ ãŽïñ[8aT¨ú¼†ÑµQÊèãeꮃ’ÿ>û+¬X†zÅð-œ<œªÀ`5òpvK=ƒ$W*¸ã À8㽄UãRMÐ>¥¸¢cIɤHƒ8ÈO0ˆ0Azwüº|~Ÿ§Š³ôþ’?q’oÏN~À™l8<¿:ѰÆÃ¯p"aáF0kViŤ9\@‹‡™[^ü4?·zåùÜ‚GzâLH™ÎíyYÛÓòùº|^”ÏoÊ磸Q8}<§º5ï®;#™·v¥ °€`ÜšÒ‘*åt8þœNv)hà(®(å…ó騗>pj†Ã¾´]»'ò6kk`Qði™r¸éwÞ¬ÓăE~7›ò ™òiÓõ‰›_69][¾óÒ˜$ÎY/}õMhñwÌ›z]¯S³t5…^ ¨bU5[À± ¥Ão[ñ”t^ziLXIG{VH2žS!43JN…dÆhwßBR`‚ƒ•Â1‡òâ 4¬ÿiq†pf¬KÒòp.-iÁÛ•@…Eè±SÉ â@O’v§¼¼üÁ‘ž%‰vŸ•µ€©ÁÃYÎŽ§Åž—ý¾lÐ!mý²´¾)ŸÞmÓFkæ|¦M#Ì2&½1ü Þ2h¢¤‚o*Q¢Ã%ÆAMYÿŽfá_:ÁÃuxcTp>èKÑ;8ÔÕY`ÀËòÃÜåGžõÓ½ÖãÅiwüµh5 \ty¯Ò¶¬öÕxir++`;O#‡0™Bs˜tx"©V¾bÆ·~õ¸œIGfÒÕb ¶:£p8˜W*“KIg#×q˜ArÙ@r–´‘¯‘2­`Wt Ë<¤;vª„xw r‘%ëÕ26˜-JaXpÔ·ÞQVµsôHßß½H¿ ÒIhì\KÁ)f¼üaCµª[ÔSbRÌX£ôPΉüîD>ªz»~]¶wXv­ÁâŒ`86»YÇ;'€9³&9ÛüW°0 •«~I<_«Õ5bïUâR/™ðÙÚÐä¸(Ëš;Q¾”©ëÞÀ<(EÑWûœ¾®¨ÖÑt¦·ialÑJÐ Y`£°wæ•i¡›9>¢tFÊÂdØCb rÛœ+þÊ‚u¥Jëu Ì;Ä+eobá¶¶l²p_£¸¬‚ðÍ…PÚnaC¤Œ¾/Í)f¦ä” ý 4—#ìV]¸¤Uņ_ä¤úŽlÅÍ:^kÂî´÷yZ 7CHnå*2¿PÉ™­až@t/qš[é‰ÛHa¨ÖJ…OJo瑆tÅù¼rÕ2èòž–-Ä@ÄT"’="à”säÀ‘ 0³2#¬¬‘Ä öÁt Í ¯—qk;ýV!8¹Ze‚ûxªh£hÑX.*þvÓriÏD&žþqf…-w'ÔZùè*­F›ÑešÙéÆªTmF9=º÷ËŠE+nëÈC]"ŒÆ¨Ërt/êáåóo£Ï™ûÇ ëp vâÙ–tå(¨aØDIâÆ€CèOŸ¥5èü-Y~ÙG ¨€#‹OÀZ׉,W3ÛzfÏÓ>Ï—£¦œu¹Þà9M­¸ Ý1xætƒîo®ê 2u§í ,½×µÒƒ:Œ€‰ÆˆÒwpU{<~–2’ßb«ÔÒ6^éL"_-†U·5 ®×M•[¯ +‘nmÕ^æ]+£˜õ½Ý饢݂=@éQ²PI ç™B}`§"ô‹1hzÆÝn¦ÇI4ý¼?°",àO²ãŒDö6Ÿ.#¸,°‘e 9^ãÊ`¹œ£Ng®æKþáàØcûW­2X–QïćºB$ƒÄ4=  î5°jþ'€—-9ôø€sE²ðnŠÿçÅè gûh LPUûhY¥ÜñH î´ÚOàv1%èptÍóPi%4šuóßNξĈgÙÞ è¹ÐZ06C_#E ÿÀõ€ïƒ6v¡õéÑÛ5\Ü—CBT;îÅŠÎìÂu Sýùà4ø#Ô Hsæºô--¸^ :âN,\¶g­Øxé›®ó‹úˆpDæð̾~‚¤1Z f©”ݨ>½H³¸¨f"Ö8P¯Æ“ÈV"höÆÛV+ex²`Œ´›¨³,®ó¦Zeº®¢V¦µ7‰§5ÊÌ Ýxœ-±á˜ox+²'XÄVÝ1á‚£X¶Ä*NÔX¢ŸØBbI''ªŠh‘G‘ÄÒPpŒÐãÈ#h¯ÍgùôINö«$¡ÓlÙ>†NÞ;¼(¡“g¥ugÆzeS²!𨴾µ í X0%TißÌãTfÒ1e¸œšmÈ@q͸ksZA¹x˜Zïµ7›¡ñ¯V }žQ{ÓØ!8´ vÈZOy1À€0êD7R;xá-b»énDöµK±” Ü$Ä¢ü¹V)ÌÐöyJ D¦ñ0n\`låÖÎl%JÝ„éðøÅJþ0>p³ îÖ£µhšŒIü¥‡óQ‡-äxLx’@v3IBM{Pû±õeæÔÏûs"&3r'eÚ«d¢s¯*·€ØU\*v“濾GûÚz·e¤ÂÀF›ÆóÚc=áØêfgss¿ý|º§VOeG ÞΖä+µšió£• ”'7lñÜ'ú–6*v(”Úå[q>ƒð³Âq%娻‰1Ó®©ñ€ç~ŠÆ”Ý)zÓajÞG¢y±U·pº¬8 ¶ÛAà…€¥à±ûÀÈëØã9Ú©°0Ÿd>ƒP³9ïÏÛ¦Q쬚$·ÕÀã•Õ}·¢8 ¸ç“°Â ¾!þ’t§›»J”SBµ:¦ñaè´ÜJG®“Gªa€A$Xÿ”«iuMüÎ7 ÌÂo”ó§Å;8¥§ª‡y‘uѵ^è…/ÉA"¾ÎÌܶ 10ÜÀÌ­=3Ò&UŒ(emÜÆ•œg£ž¦®>§‰·©fà>S2i‡vôh¶ˆozž‘ꃶ›^ð{ŽÔ¡Aó¶É·kTcµ$cG`%ã Lãé:á<Le£1äãŒÚSôß /«˜æýÒ)h§VcT”/¯™ìjÔGfQ[æé ƒc§îK=¦¯g¦’Û–ÃxJé©?4±¾nÚbအI•¿NÍ´ø¤€•΋§^Õ<Æ…®EŽ\ ?ãJÏœ*bÉQ!–É`)2ʘœ„}Ñ5E×e¾Æd?\“Mˆ’¹}„(Ö•²Š±zÛBF¤øR ˆ¯Mã±ïy4&—_Ÿër¶ÑÓVÖ‚×QÞÑÍÀ颒‹±iŒ 3¸&õÔ%…h{]‘Y‘ÎÚÉâ/©<=ïF(Ê~¹ÏAâ µéz­ôÿ$%l`O(Ü6²Vm¹½õ>þÕ¹WiO˜š¢^ËUâ*p!(£Ï’$8Õ—§ÄfºëΙY]«•YÔ‘xëö&0sª‚Ž©ÓY`i‰¡]USQz×ES4&4Œ¬šÀuLŸôhl4C‹ºt0Á„õFµ½‡æ0¨­üæŽ9[;FmõUˆnáNO+öÖjV_R#Cì,ê-Sö›@=Á•Êà 6%AÄÒ/J²ÿD-†ÆÃÌuÉþÐåÂõÝ|xu:‚ ö®¸m6èµÐeYGÍâû Žñ0½õPì?¥°¥°1…wéänsx”Ûˆ7m¦›Ý3Õx{ч]¥1qÆ{R#z¸Î¹Åè׃"¶4!þ;‚F¯$­¼“Šœœ Ù^Yuöf“Á°Ö€Ñzü[=˜s—iQ°o8ëŒõ›SæIêûŠÜ Þ^ ºJ*bYSí‚Ïb ”•ÒÁéÏàF+ Ú¾®€EÙ!ÜС¥Õu|žZï[”… ©òK‚5mo\¸íM£÷#3²Šx[?‚@êÆI‹†0¹þø®éÐÕJ×íjØJÖP‚.㢠w¡¶ªoz<½ZÊÀŽ=ÚJátÿK o¥áOç/¬ãøžÆÙU®1ï÷g=;ß±G¡µ ±ÐìI½N8 œ™Dq}ª³Õí3KŸŽò|…óÍ€V\‹±wr0ìÁ¶ŸfÔwàïvùаÚBDådÙ¤ë ^[ù'IÉÐ “šñúšØåŠÌ‚^“ù3ßWÁrB£ÀlÅ|¸€–-6·l]o—X.ŠÃLpƒC0ãEq[Ö¡W~™Åq“ŠkªºÚD]ˆ8^s#|oâ°«%ZX.7r~TÉW¯–ÉyÖã6µ!¥²6ê±ãœ¶3oAÁ—×â4cHœg{q 'çÊp´Žíbú¸¨yó·š±»QM<[¹Pä&ß$Í÷|d“Q)ËVd`J×¢VÍò]QIäF y«áÛòù°iMòÇ*Ú‘`iŸAÊÅ 7·¼ðåî~ë…GN’ôºá‹ Om` ~ƒ·qvºxV\1ܽ²> ÐÑ݈à˜zôMàŠ &ýôšÎ ë)¨7r¾Ìègòót]ÒèÂÊÍnäá00âãüœÀÇÔ¨ø< 4¹“é'[ññ‚‹Òƒ4sµ¿u·¢p[¸yIfr6ÀÜ,ÁÏ^`£~h‘ëÐJ^ëà¨Û±¬Ívú³ÆÁ5r½vÐÝ(éì­emí3-×;;/Má- òä¤7›Åçð~AX‹M°ªM‚Fí=o›Ì„už¨XÙwŒDjSÝ?ú3¶Î®æµ–Sˆi/ša†¶»~6Ì’QyoøƒzœÝ{_`}cu’8€AÀ´w‚Ü_M‡8Âò,—(ÍnÜCåæ¡’Á›åmœ{|Èc2O¤—@†ô–Þ0¹åVoia õ€Å#Þ¨›?¥E4䇢‰Û÷þAíëµgã †£Q?y°h¹$’º¼Ÿö11«×ù´ØLžO£¯­-µqç«×ÖÈncÓÀ0œ=¾°š–ñËpû/ËáÖƒ1îñœA%z&üAJ…ëƒs–˜'&·Üâœapz5ÑŸä O-Oåý4ý»A—ÎÜúº < ‹âXÚ- ]”x¦w¡ Áx¢Ðeãu¬–.Qæ}ÀûëÌ$…Ä;_V}â0€Û›0ég×®Ÿt Õ5#þñÈ?(¸&X§×a,ºâŠ#À`“2lr„Áгó5GÀ!‚ÉÂ1àz#î Dê^4Œ‰ì…;ЧÒéH°hvAU²ÂðÿÁc˜Áßå1Leòîèêö-œ­v ÕTTÕÆ“[n¥ªñJ¾Å!àL>ƒªnkk€øœ^} "š–õ%êb¥]cXrÿÒz†Á½›ÖlœLü%}³fº8Ý>ÄE¦Õš÷Q@Ìa5Õèxß"ßxh8Ÿ­²÷c&Xñ=\x½Æ\,‹xZçui½h°§}M”ËÛŸåžHü¯Îk•ãYRp.¬/ÞÁ´\7A÷}uTÚIئE£›‹cËãR6õ$¥M·×(àœXu9sæfe*´ÿŽ2™ß&2„•¼à6§ÇÕHÜb;ç¼Ëùž×„ǼK4—Y-Öˆ”Ñ·t´ö@É0#rËm¬=íDºNßÂ&ÃËÛ@¨Æ—¿\†Pp*ë˜Qr–>x…g"@ßÉ©'üxÂ\4Wû–ôxÑä¦éÆ*²?«é­úîEÀ«ôËö™¸RX1©Ò–‚áw£¼ÿGu…„-‚¡ž_Õ]îð¬.Xkà”/žsoá‡ÔÞΗwW°·$$÷xnIö TÔE^ÕßÛ7ªt1áfj%¾ó‚jJÕÍ»£¡ãç€OÁúO€AZàs™„o”ÖТïÂ80>°‰C0ãoaÇÝ3}µ\±vª§̰>q¥¹dÚͯá5È/v~éõæJ^Ëd÷¬í>%ŸÞßiß1H¯ò®Ä´/ÏÖ[^\Y®`bÔxÕccUC E DW*}p•c}ü8EªÍÔDßQÍ»'ã3)¾Û(œJ%»®öíyä~ð2øÎ€p°w ëÜü? {|+…[^[nöx-Ì}tÚ ûU{}†€pf°ñ٣éÁ›× ‹ÄŽ)Ÿ¡òïâÙüpò_16'endstream endobj 2148 0 obj <> stream xœå[Yo¹~äG ò4ZX ïã5ŽãM°Àbwä!΃¬ËF$ÙkÙÙã×ç+²»YÍéžKšÕ`ˆ¦ØÅbÕW'»\J¡–’~ºßw ¹¼Yü¸PyvÙýº¸[þùlñ§ï4Ë$’×Þ.Ï®åµTV ãÒ#”s˳»Å?WïO@Ô%Ãê¾?Ÿœº”„zõC}Y‡ßÒÐK§ôêlrÁ×Ãð_g_¼:[|GŒù´¼yXX!Ýò'áõBK…ÕÄ“.,ï0ã¢0i˜¹]ü°ïAABDÛô¦òvU‡êð®ÿÖÅ«`äã¥.ÚÕ›ÕÉ©Á%ì&a•áaåMa©AÕ3Áé0c#²¨‚y½»`ˆ;DŒÉ-O•ÖË´<»‘¯FkTÉø°-ÙG¹¨|ª³oNFžj%…U \áŒ.;>ÔõÍŽºŸ'¼«Ãë:¼©meÚ¨Zü(²Æ1~.')©Ã·uxÛȳȈIîÓ¤À/&z˜œýÀÏÁ9B¡uÚ'Rp!Žž* 3²v/p0!׃]úhüêÅ0ÌØP˜ˆ jáœSe÷9Ç7ÅGË]ÇÓhÁ¾1œØÕ¤æ¡ cU‰+Ø¿š° l}'­¿L|2N¦¼‡1ps ŠÃ´MN*ÕbldJÉsû˜#€%§%Áƒ¨D¯\! Ê™4ZCR·ÎgIë´Ü&£ ¯:x‡I½<5IH/;»#'T˜D¶.¸ÉlˆU—lìÎ=vRäï Yh<]ØQpEÂë%œµƒ<áIUò^¸4ÌàIABx‰¤¬ŽbÆ(i$ïöÕƒ¸®³º­ô:Â]T™ß—±±FxÀü‚ôE÷X’¦èÞ˜¨B,º7&ØD„bl¿ÂzŠ™:r‚b^^)Þ²å|ɯŒ±+6~ üºeT&±“4h¥¸xö ÃÁCŠÇ„…ŠHˆ¨ðì†×§Ûê%ÝBÖ šL¥&· `©dÛL¢1f| {ôŠã‘¥¹ÑFhÚ!F˜N_ <ò%Tú¯)îØúÎó]AÇÂgÇàó¡% †<‘#éß't\HVemƒÒÏ4áÑìˆÃ/ëàí—Óî ómÞ2ëáàí7EzÌ ϧ²¿Í9Ä´iNÈ9Ïåœ÷AšÉhÇ#iv1‚ª·î9äíÝü°Göåü¼c3¶æ¢øp“Ê*ø*zÒIkŠ\Á‘äê#ÎõŽ ŠÑæÇºeÛ_*Ì$â|×IÕ‹”ƲiB=˜¤Zýa$²œˆ+¼ñcðÉ_Øiòšé‘Ãû~sèDh4H~¨¿/ÊNÊ50îWt¸/ì•4ĆÂeþŒdã-"í¿î?A~,NŽ‚K¢â`Xc°u˜ñ¦Õ½ñ9™Úæ`ƒ–õÓûWm| [:¤ÕNcF3‡Ô…®UDBhÿdîÕÙú× ~®sf„_v½óv?,‡:$0H§VÿÈ+L’v"¯*«{ª6”q†Dù¦Baáþ÷jæŒqn Ý™àáà–¶‡í«DXLŽ­àñê¼7 ?¢ýP¦£™mcpÊAéó8ïç†3ã×ÄB9+Ó(HŽœñ5Í*x–0R&÷¤\n/h9’Oå·yædæcŠGJðúG'm^¡–¶!Áè`a–þ¨rÏ'+tf±ùe(#èù¼ªÃŸJÈ¥HZ ¢ÉgHJÕÈ|‡ÈUA”Öj*EÉ¡ü¡´65©9eE å4ß}&G¸Ÿ6>¹£ç<ÑçyGoæÓ屯!ê¹SŒN¥®<þ>“Ð:)ÏËc^ã~aµ/+Ée"÷àNà;eÐdô\Œ(¸‹Evµ1§1]…O›R_'“í[­Ÿ¼Æ :Á£/!q$žjÜ€à熉CJÜàD¢*YRÂlµ¨ÂòZ‰›;2‡–¸^›¡¨›1— ¨eg¸õÞ1›Høv+ICì‘Æµyôhþm ¡ ‚åG ¡ÙYχ =ÉçŒãFÎP^tÂLCMëʆà¾H;Ê0U‘­y‹2üY>>-ŽÕÈP‚ÂB M🋢MÐÆ¿€iãàWâ¶÷Ñ;ô@òôæHN:º)P©D¹ƒ ‚òF'”üWWª £ç|{Ž&ãì×Ìx`‹ Ì(x`ª |WÉÄÚ6Ìcª:¦W¸azÒwZºõ°Gè ÆˆBÖ.m@í&K_OTÃÌA}A…cáåmAv¼÷ÕgþºÂuãI[Á•k°”©Iñ§³_ŠÕG;4}ó4ëóÖqï`xqÔ:Þ5BŠìÛÅ1nîÄá ²¿n´*·ËØuc?óˆëF›Zú7Tzw%£ø• ’˜©ÅLÈìþ¤ÜE Ùù)ÒãRlò”g»G›¾•Ú ˜"¹,F‚ÙûƧP]èÐ…•BÙ…µ‚ߘ¶ßøôfAmoœÿ÷=Øÿ(÷=‰^00Æ#<©r߃=Ìxß“”"¼ñÙ{£Ø«£k¨õy½ ›3„¹¶Ï"®ú¼8.®×‹Ø¶ûÎc [=Ósá¡®[çΗ_ýTÍî}ŽØÁ,›»Z¨j8›ûΘz(rrg”³ÁŠèAÛ›7Ãþ3YUôêÜšº¯¥¿5漫‘HLÍNâÏêî ¾þÓnpµùêf߯s½óK¢ÆF¡/´µyñ›á¹kÒýz©Káà‡¦Ÿ¥Ç¡Îëqô3‡÷8@áï¥ÂìU·ó:dï%²ºðõd™5A3¹€mq9)•wÍÚ²ÛÅHV[&±cñ&z éÙ&Z‘¶Y¿¤›xD»„Tá?“-†½ïHyŠ?¼q³OUðÆ‘3õ<½Í‘ÂŒÿú Á›j„sßú"¸†·Yœ¿Ñã îuýXgÙ ¾Ÿêló®/JAMß8¬'\{©…ÙCó>`¯i}÷>`¯—næ1Š‘ñi{åÕB»¾–¯6jEF"§6§«*aÖM»{"m ¯úýµž½ËÌóÕúÉbØx2ê[R;ê`œ=l;ÙÕ$&›#°Ìñ1GwaÛÉûû¨ô7:øtòÉ¢KTûkúâgÚ·>+ à ÔOi“¼¨âI6äµUïë,»É¾©³mÞqU±ûEùã¶Ñ÷ ˜»µ,Ëùn'LÌ­ŠÊÐHz0÷þàe-Øõƒ-¬ k¼8ÄO³ÙÕîöÁËŽÎé²Îž×YöaÔÔ/ù-n‚¿óo‹L¥VÒJ*áÕS|Z´£7|I?Õ§EJh³P®']³›Ë:Ëv{˜sæÃ©¾Yœ}u¼smUË1Εӑr®=¢ÌØ¥5a£•Á§rAë¤i½C "\ƒø(P¬m¤OÎÂÓ­©kI#dn¯ ¬tîwý!š‡!«>Ñëì…ÓÜ–)­:_‡ò„7ÐrVÿÝâ¿•Ò#endstream endobj 2156 0 obj <> stream xœí\[o·~ü#útø°¼_^ÓÚNФmb(çÁ–,ɨu±Çÿ¾3äîrÈåî¹I…Ry0ÍðÌ’3ß\9ô‡gbÁñ¿îÏÓ«#¾¸8úp$âì¢ûãôjñíÉÑŸ–!, VZ½89?J¿ ¡,3\-¬SL8µ8¹:úeyrÌ™äJ·¼<^qfœñ^.ßâX› ý¯'’ ~GHJ΂V@õä h¼ÂéÝò/yøZn„Œ/ønâ7žý„²aq±>ÒŒ›Å8å‹#”‡/ã¶sfq3fÔ0óþèå$/ª¼–ùPñâ"ïíc¾ÎÃÛ<¼ÌÃñ @ÅÛ†Ù›<¼ÊÚ È'Κ¬º¬Ö¦¯ ˦`ª“ÒÇã•`Üšâ§µRN‡åç$t¥•X~JBç«å;+å…óËk²€¡–XTA˜ ð©9^.¹ÁiÇ,|ïM¤¡•_~MâÁ‹&rxV Óój£zŸ75ýS-¼I…Óšù,š/Ù²ReªÔHÃÄœvDîzÛËÚzé§4˜ˆ…Š:±ÌY™Ðý,~go ¹ËôqëÊ¥v^SlŠ~’§¸%dæ&®!g»î7€rhÁ¦ôò·c£™‘ö…ÌQÒÙÞÅ1Yò†(]‚&Ã*Q ›L-9‡½K.£Òi™–*)1bJ)„Ÿ÷4µsä ó+ú#D+0.p‚-/AôºBôègo›:q5y«ˆdØP©ë+e ³b„ù9Ó_Pk,…=u4ç '´Md”V! ¤ádòˆARƒÁ%uÛP*(+wÑ‹x4):ÌhnK¥$4ˆL)½OHÃ1éÍòÂ5™WØÈà´ÕË_Év¼2`¬œü%afÅûaþ”h+BÝdyÓdzQ[µNçt€ƒ‹¬D5ˆvÝíºLŸ1R:uÓ¤Ñù!Å]H:e1^èuJ»$Ÿ.‚_ pj¡Ð]8ø‹4…¦­ÓjeKÝŒèq03¨¯ “4LÓOÒèmG>OpEwrÓÔùb a×W¤í!¥Ïx 1ó¤Ç•<@°ò!@øgÖ¿óðysø}•”'å}–gÿÞÊ.›’7¯¸ ¯fÐÞ>(£ ÃöŸ7?þ¯<üq~À O2ešPPëICö©ô¿ŒÇ‡ŸF8@Ü¥ëD …L îž†Þ4Mð}ÁI{m&Ô¶ÕE*` ¢eÔòM-KFô é›!a­0¯¼‹9(9û9ÎZp&z®øC07IjÁkð·ÔÖÒ í÷´ZO¦J)=Aáï;Û´}A¼µOV}^™Ø¤sï›Õ/âž×ó° ‘¸hÄ ”7Ôòtá¡Ñ¥P>•1æT©By’2]®Ïƒ¶E"J¡~ÙI»åÚÂÇîŸèÑÅH_âŠÓ¬ T¥‘¤#°nM+4Lê]\`Ëhá¼ó×nÖ€cTà‚kdX•g¢Ð¼L¤½žSA,ÏwBV '+ ´0úŠ'ÿ9BBÊ l„p ²ætá„Q‹´Þ ƒðƯXïEÌm=ðöñÛ1à;‰aþ΃Eïê . ¡4ÈgÖ)½/©&׸g ´”w]kÚ"‹…Ñd°®î Ì û”ÕAÓ$˜4ncY=myTV!õÃ-«Ç€¬QVŸÊÞ&*tTÙ :(0ôrÉqÎOx޳ >[*D6ì\ÌÀŸy% {ÙH?‘=ËTð@+Î$s}Û,o;® k‰Ùwï™}is‰Ûïù‡DRÄ c€0lºGMÝüéø }½`ø-OEV[8þÚY3Y¤äS«;ï†¦ØØ– ²-0i3ÙrÚÉV·74Îè)Ì–•í¸Zmö v›:FJKe}ñP1ÇÊfJÄfvA*-l•ž"´¤˜W—.QMvrCâG+4¸!Ë´wBýñpPF܆ÈÓ®½"O7ˆÆá§Ý¡ãð¤x½0"Aáã…¬€1Ììu! ,Há•ÍC¼ý®¹àMþÚÍqé8jñƒsµAåÑPù^09<øšÐíµN0í¦o²üoÉtA€EòI;\lŠ,$ØI…² öúÒ}«æi|ÌBˆww’¯räBc…@aä‘ÇQ?³€€€Ò/´†ÿ©6‡A+ ‰/dËW˼bç;ïD­Áze€Ñ6Ö+0•ÌÚCX$b©ª`ý‹½Xæ­ÁÀ—9°¬>¿)Ö€½!˜ º$è&®ÙÏóìmžmwŸ³1¸€Ijï«ëñ»kF£0„VT0ÝÌ!‚QD+F‚Ùîèûó~;' ©°&¥A å7yöꎤ1„z3Õ½4|6>™wédƵ†×›ØmAW삲ƒ¯ÒÁ¨<”ƒoè=¼¯ïåT˜ø¯¢Ô¶"?èÏê°¶X‘R›è·gTÀÇÕ• lä»<{g/òì«ã’ Òq °V`ÿL'@ÎXó#9æOÍää¤.w‘¶‹ÇÜî^mTïÛè1ÛâyC)€TAó¬ùÏMï›Þžœ³Ý$AXIb§us¶gtñxO6!dãjÞÒlip¾„€Ô[XôNÖé,Ͼγ䂶²º‚êB]?ܙՄ“´ûíÞX­BÍi¡Žó ½ §7šÃƒ8=DS!z‹eµBöXy ‡—j' œ7-Ñ›³øG³ÀîÍÛ¸'D3P£Y{¼ÒÝ¢ÙaWWÕ¨~ŸÆSH(5öÆâ&þÚ  ÕñTS<„`iž¦¼4-¦õ{º†dÑ]r ¹³l×xûÚ» Œ›>SX½ò}_¼tX ¤/¾Ÿ9 /H0éì5‹¦Ìzì‹ß1íûâ3°ú¾ø€Õ÷ÅÀúï‹7 ïÃõÅCÀgõÅLçŒÝ¡/>€Eúß5Åã…¶`ºÝÝQà¨æu#òV«åA]ñI@»wÅãï¼¶wÜ”1elê.€ëŽAúž»â‹Þ†K]ÿô&ŒÜêí­+m,B5”ò®úâ±KØ}0]÷Ö˜Þ³-^c[üpaTµfkc˜w³¸¸Ä9“Ìsj#÷t"ŒbW¥”¹#ªÕU9¨YgÛ àdù-Ž¥v†WŽ^”d¦ZÊ/pƒØ_]¶Ø|ˆK¬7¥Mlo|8ä6 ;tS]÷–ÛÝÞnFv[ßh! 0¾è6ÞêÂ:ýžõ³{ö‘lÝs;~  !ƒÜî%€vž)H^èK‘W¤! ÌV¼·êý>@ÝÀ]4;ìFdðbÞAdØêâÙÐZàð*û°wq§R4;üEé&û¹Æ-ÎéV9RSåY‡ëã-»ûïÔÁÝý}PË?;†DákÇ;gŠþïpG”OñyØÓ¼{o5OŽÌéªßKYm)ò¥Üe¦ã¿UWmuü«`[|r™jœ2û=S¸'g P·‡hׯðuzLcÃŒ%Å ¢Ç)ÌÇ—FÁíÜÔŸ”;ä©Q»[œªÔT†EIÕ˜¢L€ bïwIw— `ºµ7Ø.A vKñ“…‰žŸë´ÂHWv-ã¤æ¥ßˤ·K©ïuú9'6ÄpϬ¶“].^¾ü>¦"ÊšIÁηAÅ%Ø4,•`ø·K¦à©8ϪkªîDŠLôÅ™Ûáç°zºƒŠr[v.ͶíÍæùkôbóã•í uíô Gz±Û£$Lµ®!FÓ”JýÈOÃÆ×é”E„ýSæ=l!ˆÙŽ|+ó\o“}ÌÅ»@ÅùÚîǦ†jZÅ›ö¶­,Ý~Óï2N5¬ó´m[ê®Wý¥]B—¬¤ûœˆu>¦OKïû×Ê·^[¨Ál™Ñ £žÀ”«pcCR…ºÔ¦ç°ÀÛ£xlãrŒ$&”õ.q|Ê«Plÿ'±9CÑO¾&Äw››vµMrXÞmÕ&6ôÍ;<[ÉÌ›DŽ;¿E²}ÖÓ‡^f“Ï?—Á]Yõpó\<ƒ‡_nù Rb[X~—®cžNiê” ¹\(9×Xº+JX¥¿DzÞ 2¤Ö ¶t€=‘õ«W<ÿÔË•¢ë^î®pxÓAS×™vQâ{"˜™²…t¾ê¦Ï ¥ïï B>>„œÜÇãCȺCìñ!äãCÈLJ!ÿø!…ßxß½çCÈ ðÄæ‡ýÄ!ƒcäƒ|yxÅãCÈLJ!Bnx¹ø/Oy½X9‘žíÄ_“ N›‡yv0Ð?ý“L<©endstream endobj 2166 0 obj <> stream xœí[Ks·¾oùGìqéÒ"x?®q,%)ça‹©JUœEŠ«DRæRRøïÓ Ì Ìw¹”d•ìƒ Û@wýÄà·%gbÉñÿîÏÓ«_^,~[ˆ8»ìþ8½Zþñxñ‡_”ËÀ‚•V/Ïé7b)„`vib©åñÕâ?+Ä™6J½bGkÎ\0’»•ÈÓ®½"ÿð¿ÇÅ-¹¢[jX¨4ìz|»¼„ÅÂéÝê‡<ü-7B®Ž› þ< q?ãF6,/6 ͸Y~)¼XïóSÌ™åÕB3b˜y»x9-«òàƒ¬‚VKa]ä£ÝæáI¾ËÃ7yø"ò TÜêuž½Éë<ü©¹€lq–‡Dª§ÕÏÒnw…üF°X;Ã$Wa¹žÏC¯,вõV·º?Z Æ­×zuM¦o2&Þ‘é ŽuPÎûÕ%ÁJ7o¸PM°H×˵²Lz¯Ò1.3K×yxw´6!0ëäA%¹ôLË¥¸u Ég ™~f ¥¸Ó¿W­-—LÁ쯫æïjѧa-úD­!ze@Ð6Ñ+ãaÆ>Fô@‚y0ûBô/ö=T"­|‚GÐÆ%x~_,Á$8ºâ"3ž6´^Ù´aš=ϳïj£³·yöÙ0‹Û­ƒbR{G’ÌífÝl[-Ä"â6cµpc°NÔÒÍ«ÔOÄzíGGlS3Ë936П¿O¼Óm) iMŒÜ[ÌÀAÌÕ•ÌJá2Ï^çÙ‹<ûëQ)éà¯(ÇŒ’d—‰¸Có]sáü</òÏv‰™$Ônq,‰½·;ÄÌ-¼­6‚,bæYsñû<|•‡o›ñžðyÛdŽœç²yàËæ®S×¼òBÆ1®¶{[ÈÝœq¾„€Ì° ‰ã.þé,ÏžäÙ»IÏ+8 .˜Êw5‘dÚæ‰E­B-iÁ¡4a[ŽAݯ˜ó¬3|œœû|c*Eo ¬6Çk¯u©v‚ÉyÓ_«9˳d·Í”/ÐóÓâøû§ãkV-OÁWÌG_;:{ZÇŒZ·ˆjÁ W5¬§×@}ì@´`÷ì2f+aiãZÃ9¡¶4¦;ÄŸbm”á!²«u‚–³ +BÀáØz/Šê—VÈw8N€LŠ5¤ îêl(£e:« e3ÆÂaµÅtTÌì¡–WU Œƒ|]©ñ¨&hß.¼ÁëcÙrð6 P ¬µÐLÛØ’ñŠ÷êgöjÉx¬D‘d^_IO¦Ö.· ³ÛÔ1!$ˆ(åt€H5¬´ Q Æ¥”Î'ukFaCnõÁÆÛ´Ú8éúqüå&­¦ =F•åŽÛ&¬œaÖ…Íê]–ÒnA‚"¬4ü ŠÀJèYx ª€vz Pt´cÑ»<û¦r-•B••ƒ,N¢,ê5ä•R€ aÜ”è6<Ë<ç€öê 3 X U>”×`¯ÎÀÌ0±¹ ¸R þÌÏ–ûéÈWÛíh¤]±sÖK_ •Ø 5–Ó Übù{îî§èŠ Îq'í5ã°:Ãxã©Q^sº>ÂâKUìBÉ!9 9UiÁ7isT¤¡•Ç&,žŽ/šà€}k{‘Ì:DRZßxWC~RÚÂnÚ—ˆŽ" >ç,‹´z8ø9.§ÞæÔžyÈ©?ÆxɃ¶½â”t=(@G\¢ÇCY¡Zްw¬¨Q:Mµpp*Mî@ª•ó /NA‡x=B6’×@QIåÓý®[«£²G¨áÉ1VjEÕPÃy0jä Дz#âÄ57â Ë™†G\!%ežCÝsØZò’‰†Å£ÙÞ#íÀ¤°ûé$v` f['éRâoðÌŽŒÆf†¦§§¬ÒpI–¼" Ò%!•å܃ñá´æäÞîWIéÖPRêã@J e\ ѱ¯B(Ò CEGpØ4I¥!{Ía{‡‚,‚_ Á„×UtS¹â™’Ã'æ~R›û¤‚ÜW-¦}PÔøœ‚˜ª•;ú q¯á9÷cË*Inž2¢¬•ÖPL¹]²²:tl“¬L pM™*”9AcâPÁ:1–¦Ó 4:m©|°*L©ÆJGeZú-„ûØoE›yÓ1i·x¸À…'ñJcâj;#M¶{“m‰,¦´‰µQÒ›DÏÛØ,æÁ mäF[©*Q`»7§!壱„25•ÙL;è7xPÈR¹+›W0òC+@ì\o±4ˆ (ú)*Ê; òx–è_$jðÙìÒ-üᮈ9”¶ø%-|Hn{8»ÆœAÊíµõtkïsª:éGCÒuÊ^xÊÚÀ†ŸýÝè|ÆKcŠht–¤ó…¬6iZhQhö†DÍpÙïKô4I*š˜a¥4IàGmÈ€µ”ý¥‘àzÊhH’NÉ,m"‚sKÖò ämŽâ-Fà °ÆŸ¦q—6Qfë6HÏx±w -„Ã[•N­ÿÌxøw>oë ·™ò…Ûêï­¼ .êáCxkd7qxà]§ÞÜû_yø·™š“ð\BÓŠj€Šç@<û(Æl’~­ueÕ^¸ÑWä4/#!¡êÉHp *èm…tóÿ®ˆÔB÷\ÆmhäY'I(îBgW‚yWðª+W] þhAhùPt:YÈäg DýmÆD$e†àdé<¨ù®¶ð71Ù…êFÝ’Ùê–&–gd¡óAíSiŸW~~tïHzˆ$uÜl· È-ÞÏ=®xýÎÃ>iðÙš¾°˜dKHÑè™Q/[–Õ`6ˆùÒô©ñÒ´dª4;ËBëÊyŽ)sUÑ|Ìé…Ze%˜R9Õl ƃ'W˜&Épé>¤?@ôýÉY¦!„MùD*Œ:QÅüOÚÚüá|Öma˜ØàwOó1YT~[žS”§Ió‘´˜n†OõIH:Û¾E®f$Е¾»Eú%’2Ko‘èUPTYwEDn‘®“c¶1“£àNbi„¿óÞ•NÝ]!Qí˪)ãOgÆ\Lõp¾³ –ž=7–»¿?¢¯ ¤”³×@éÀ£k è“¾Ük ü¾yÈ &ª¤F ;šY^zRcsY¯8 “0¤¾åœ'W¢€ÔéÓx:¢2.°©›J®§. ï;_.Eš«»0 έ8ùå–ûŒoV¶ZUÌxÈ%'Í)‡æ…nÄöQ¸b»œík@DzZÊ)+?I]`+`Qï(Ùg]¤Û, MìäH`µÜ¢ºþmö§ª"¾ñ ^–HÑÏbÀ骽˜„aú“>0é“@¡¦ñH~LÒÏìÿ˜‹?ß'ûpáe“î‡f~ÿCs7Òí?=*#ÖöÇ$bH$ÖŸó1‰ Ÿí1‰^2Èc’~æI€ã|>çùBÔ|L²ÏÓÞò±8ø’¬1ÞA]ý pP¡ÔØ–7(3ß•¤7(¶õ!]þÚ»™}õibzþc–êÓΙ·+ñíŠVŸîíJ¡Ãƒ¼]i½ŒòÒè½_HüùF Þ¾Yú/W(ç_ÆË•ƒÚí¼\i¾õ9üËÅ-ãÚü¾Ÿ®lštÛzVU§ßž®|{ºò¨§+ô?^é%ýu=^ÁøõíñJÓ¥Ua£–Á×öxŪ/ùñŠSÄ£:lßôòŠÍ ÔÑ#_Éa8dö?/þŒßtðendstream endobj 2175 0 obj <> stream xœíÙr·ñ}+±K—Á}¼&±”¤”ÃS•*Û)U¤Dk);üût3ƒ3{‘&s”˜ú>ÐØŸ–œ‰%ÇÿºÏn|y¹øi!âì²ûçìvù»ÓÅo¿“!, VZ½<½X¤oÄR(Ë WKëN-Oo߯NO8“\©àVW'kÎŒ3ÞËÕk´ÿñôÏRÁw¤ÔÌrìé9y @„ Ò»Õïóðo8„eBÆ]Æ þ8 q“oNßâN6,/7 ͸Yþh¾^ˆà ƒÍàÜŠ9³¼]HÎaÆ37‹·“ĨNÞ@Sã2Ÿís¾Ëû<¼ÊÃ×Q€â€nÃì§<¼Í÷M¸?çá‡&©®ªÏÒngÇŒçq'z.}>Y Æ­ !žM+åtX}I\WZ‰Õ}â:\­®q¬”ί>’5 N{XåWœvÎzéáT'•\¤à>tBd¹ã×âg΄b—Jæ"dÄ+HŽú1A¶¦Awi¯ˆ{f]M¡ViVjÓ:Q+‚6¼©kÒ£Ôr-$3ÚŠÇVád`TÖrÏH¾2Óÿ}€ÜP™,gVº$÷¯§å>x$÷Ö+Û”9PH¯½ïeŽŠ¥2‘E*€”ñtù"&ݧÊhä.°N¸4Ä’HL'ÄÆI×ɆjRzΜGòK>¥]‚q«÷÷ê!ˆ/š¢!¸cÒÊž[-ËEÓÈÜg]ÿ<¯ëÚ0ÏŰ_ãüH¥ØÑY~/aù»LI4aÈ/¹lâ«-Þ…_zpjº.òì&ÏÞçÙϵQ­!ÜÎ "艳| È×I”tqùFL ›4טNsKyYkðsÒ©9‹Õ OO”R¢`÷G@UçVTŽPTPJ •¥dàäd²çA‚ D¦qŽOIÝÖ3 â zwœ"¼$ü»#ZvÕcfÑÂ94·²Ðƒ0žÂ»G†qP…ï Ñd^a‰ ýH–0°»B³f2S²"ü0F€|HÇv’Ê&­ÖàNž“8çäxÀS0&‰táµTô˜{Sê©î;Äõ€m\ñ.¯ ždnˆ¯„um-XêÎuíFrD˜£A ”é’ sò€ÆdÕ¨‚%±†É4(¬ð—ž jõ+l’÷À‚Ê&‚¬v˜v¨ vV¾ C(B†¶ç€±âSo¶œšBxׂÐDË*fÃ`Å~3΢vRQ£"¸A€tA[JÒá€!F›Bó“ÈY‰ÜWÁ0 aÈ"æ+Óªí~ï¸e%먮lÒ~NËÕ/´ @´€@1¹©Ü†àÿ­«ÜA ¡+P}î[ùà€$„*™J¢ˆœ]çÙyx9ÏTÀ_ç n_®²<ŸŒ Ä^. ] Çr%¨¯N¼a.ŽŽõÚ¹žBÀÚbºTÃa>'*ñˆSÌ'bµÁ/áŒF‚|›¹ófÆ}ÚÆˆ™mWò`Æ 8†åƒfÿ=3ëŸyøª9üS¾ÉšýMžýk•hLsÞ@æüÀù¦ckB{†ã¿jnþ<üËü9€>äL:[Êj:§Òš«ùba† ‡0Kס12#~âoß’VÞƒ‡KªìAûÝɵ„ÈP€§(oÊP´,…0J¯àÂã¹bŽãj™WÞ1ÇÅýg- Aω+~(¤H\ ^[Ø`Oý+­–@j,nÈ’ (ÃjOhrV"Ñ+.ÝôŽ€)ù¶³Ð5µ>$#Ãë¬s7yö¼éX7óbÞTf÷^ºŽ6Ôòta£Ñ¥P:M„Sur ‘PÜÖüxÐôo…¨_uÜM7ÖËtC½$գˑ¾ÄgY¨J]­ºÒÕ6LÃHT1bPr QÄ 0 +f5+Š¡•3Tž‰ŠæUíõœj œ`y¾Yʪü!œ\®%À >óï¢HH BqJûO¸'Œê\¤õVoÜÅz/NÊk,÷¬~>ùãNb0†ßy°è*Ô##Ù& ¤à%ÕdÔÏŒ€–ò©*aFkÅà¡ÖOQ  ¸­5à™ZØ ®Ç€¬QžJÞh=Ž,§Ê†+„ШÁqÎOx³À.æt aذzŸy%¹¶½}Y[Œˆñɤ{“äSôžÙ—6—¸}š¢Gó& [ †•æÚ}jêèáÏÆ;ôu„á[:žŠ¬¨}¢ã‡ÎšIÝyŠx;D¬`ekJNWå;€>|¢€ {8wˆã~š4x\PÄDOƒÑŸNô;´ÅI¬7&Ë=J4ûrÕ Ìû9 Ù¦_aá,®#'µ9fĶ‹<í¶®àÃpªà ‰ð@ŽG´ô4C¸¥áº –/…f1õ"¨‚ó"¯ûÈÚ³ .­Žg­EÁC&#½“âÑ´øž3Ù¡?$%öZ'Ií¦?e®ß‘éÎçƒ ñIç;!Ù H°l (k¬Qã@WZoU)0ñx5'Q‚$Ç»H¹Ô˜Ó«/Œ!ë…Q?sÐ…±Á›­¥Öð?Õö`á…JÐLƒ¸}õÃjzñˆM…E`ã¼ãXÎp,žgà˜‚Ø\ᘠfÄ1ò£C¦SŽÍ]uFÝå˜îª8({®´‹90ÎXU¬,¢Kö¹ »«µ½¾ ûz˜MQDÅìZy}?mx ~* ±åg7s(?#L1bg­I­[B –÷AÌòP*°^ZMòÜF6÷9އC$8SüKÃ\ü0ó.afAlXvVJ£—tůzO›ýRßÊÐ'F¼/ÿ¨µä³:C¬ínn sF…– ä5Š) u‹%[©pg?æÙË<ûÃII¹)×Xáି3 HŽ|X î› ê$¸ÌŸíãŸw»sKømšpÛþy7ÂVÅd…>o.þ’‡ïóð¦ËÏvDÎsÝ<ðuó S@¡yPD½4ŽqÕ4µÃƒΗrRzÁ±¹—y:ϳïò,Ik³ËAêB]_ܛԄ’4€x2R«PSZ@„dżFïCé­öð(JAÊTBÐ"Y­½H¬½ä¥ÚKP.š&‹èÍyž%»m¦Ìù ?o§_=^[ÙòØx!2{8:{VûŠñÏ(ÌÛ‘kiÞÅ?¡4ô±4k«Fï«ÆÉ¶4 œúpH_5vã!þÓç  ÕóT¾S<„`i‘ž&Ø4 §õ}º†äì]*™ºl×€ûÚ¼ Œ›¾.ðÂ:¿û.oé„ùty÷3GtyìèúOMÚ)±þßåý_Ûå-Á–1ˆƒ‡»­~∻-Áúç Ùæ÷¹ýôÀV7ɱiXì`Lö¬?Hk-ÌŠJ`FCRÁ¬”S$Ýf¦š`À‰ xòvù¢éT¦S“Åc´Îkÿ¨¿w¯·Gç¼,p{H'ù¶ÊËT×fð¼å©®Úþúnl$ >À'Ke61“H&›i9m%ï­Ã a‡&ªºíiÊÛÀFÏÝnmÿT8Û7B`ø•9èÉÓ5®reŽ5Rí…j`õLí¸­{ÈøT n¢Wè«ýt·üÖ× X>çE¨§„ªuï„€¼‘¼SHHËÁמåa÷ÔÁ† ¦:Q5éš&MCÄt­¼#ZIÜxª( $óL{.íb8Om1¨ OÒöî öñõŠ€7xVT†|©˜o^Çæ,¸‰É%ôiE·UÌ&¨M7SÆÓÀÐæäª:Þxà 8ÃÜí8œÐ@4C!… ÂÔ. 9øo.O•ÆÍC³U_÷–îѸgÖŽ.êcEËÆcö‚JüXÌ=x ï4 ƒ€²Ë±b§Ý>§Kr‹îÑÙlSïÖëâJVUèq'ø¸Yaèl(»7iZ¨RÏ>"+œ;µsÓ.Òªbè3OE—Gé4—q@Ÿ¹t`¹Ø­Ï7Qfv„gülëTm¸«Êa›Ä3·™ãcóÁKíѰ+w9œþè.sË,0ý×ë2GþZ?zAÙ^Ôý»Ì±Š¡Ú ݽY‘N`ñ¦o%ºho£Žf(¡¸ ]»­`ÞùÊuN¶œ÷48¦‚&Éý‰Ù2@tÂwÍçÁI1ß|ná/1ß|Žõ³4ŸSn˵V̇VùŒèxAsttìIö´Ox¼#ZÓõêI´„tnª?r¾¿>*BU•öw’×QIŸoôw’†Ê©.Ê«ÔXèÔì»ã¾OªLÐÒ}º˜/hOù}ƒà,Ó\LÚDJŒ:.ÅçnÒÖêç³nÖ‡Åý2øÞ©ÿAåçËÔv9ÕÒÛ-Q=†Æ}g¬˜}SǤÑÞü4ý ÿT…QH4!ž&¿ÑOQ@©ÙóüþzÎB=ZÏ¿Ôø¨;ƒah˜ôe²x‘¦Å¼ÖKü¥«÷Öz­y]^¤«1PqªÐïíÖñ!{&fê~¸3„´216'qºaN¢o >£4'…ËÀÁŒú¡(ýºû p—¨:—¢¾ÔÓÙŽÖò^ "!ÀÎeÇziÜ/ ¢'yèŽãB㥩à_ -tµ|ÛS¿"õ‚ž؈ÂÑ¡™ÇëñƒB³ýÑŠqïŸd‘¶FÏ)_”‹¥˜»æŠ( ImЮ|yÓ¹ÞþaáØõ*ŽWøæ ÞPäáó¼¡Üà{ò†¢Ÿ9â €À¼-¹ÎÛ¦Lù©oÐÉÚ$Um |ÓQ¢Bç-Ðï+3½Ïöp¢vÜ(Œ=%Î2ke'ˆ"«?©”ªÂ¦E®»ø7|ŒÎ¤endstream endobj 2186 0 obj <> stream xœí\[o·~?è8èÓQàÃò~yM§)â¶I @œÙ²e¡–d[nÿûλË!—»{.’`†DS\r8—ofȡޮ9kŽÿºŸÏ¯V|}±z»±wÝýx~µþútõ—WëÀ‚•V¯O_®Ò7b-´dÚûµuš)#×§W«_6—'0© Ò»Íun¾?Ùš˜uróSîýknþ ›–!7§Íš¿žþcõÍéê$̆õÅíJ3nÖ` ß®$—ži‰4fÌú zŒg* =¯W?í»Q˜‚y]mô*Óö"7osóUn~[µÂ)·¹É½d²ïs“ 8ËÍóSè€gt†­å %î6O7¹{F©YË ÜÒÁ³ ¿AÐs »aæC(Ùýdwv#q20ï¹XosÚò°>=‡I¾*Æ”;Ðc:d$Vë•Më$&¼Ê½orïûÜû.÷>zq½­wL:4IàŒiÁ½eADWËÂJNÿ;F ø\’B­È#=½š–‚qKBèG\4ep“ùzuG2ÐÝ‚ó‚ß5-ñ›ñ¶Â¼rǔׇëÖíÒ¾È gMÎ<*4¤Ø¸¶âA7¾@ïuãƒÕ=oj/ñXYÞ#ˆrfl Ÿx'Øû®à…5Ìð=sü’‚**Vo1á2÷^çÞ‹Üûô¤ä‚/(¥R3JŽ–©’|ñûæ²õ—•é§ÏâH!¦qdóºé1Û±-”Ú!*¦„.ây“ˆÿ5§ ôÚß´t€ ü»l²ç²IÃuÓƒGÅ1â3oŒ,8 µT.P 0Ðh­;¡ÕvÕ†¤óÜ{–{ßOB­à jÁT–·7«GqÓ=³Z…šÓ‚ fE˜sc”ÑýÊç‹&ŸÛxŸ{Ÿ6ˆ·V›cZæÝÉÖkغT{©ÉË&J«9ϽdµÛ)´çûÕéWw¼¯}Är×ûÂÍìáOhïó<}{ãïP•Á±pUërtIZ-¢†q~ŒÚƒ6÷{šóÑûº'ˆBÁ¾Hº•Ú1nÑ_AÚ¨mGÄßN¶œÙ  q»JAn&€èÖÁp¡€7ÐV<„€aÛz/€"hº`$GÁY¼&:w Ä pÓÅÔm”2q‡ë d¢U†‚V 0'×[º¿D*†í’+P´0qÆ{tHª Úwû.£o ¥/%{&Ë"(ͼ\ëàb’p=VÃn‡žr˜"žÀ ñY%Æ¥úU" I>HÔ\­5!$µPÊé.+JUi%’iÐJ0¸¨EJyá|Rn H´PGoþDâunœt};~z›†ô³uÉrÇmS™,¶íº´g¢ à˜PD—4×ÐsŒ*Á `E¥&=ÙÝë4¥(1òÏÆQÂ9­€»‰¥À;.{ñ¢©w2õJu@’¸[H€Ž!ŸVÂØÊ`cªè ²rÓi`§I—D®O€j ÖZ¬I&5ß°emK²n°[A·=Ç9´´›‰V)§4²oÓógÃ%1 LÊìg$€tøØ­÷!#$µ™JÛã^½œ3‚¸oí{[/ý”¡S¦ò“€œdˆ\à0±ä…“¿Jk¥Qc»—`³t8]‰@Åþ†LÓ“8†léºãKxÃOÌg~;1w"äA—Ìk(él.±M†<#úL‡Dž&­„Ð'‹‡¨üMž„p-ŤÂ0O~¨ö-ÐHø¼ŸS;W°ü,o¸š¤ÈèÜ2ÔÍhrr›¯šúMb©vbA|ÉÕ¼ªC˜%¥êé) |k´g\¸Y•[ Â&ô {Ü JôåK‰‚sSNeÛÚ ¢m³LŒv¶Æ‹ršŠîÀ‹´/J›{‡XoŒ£Û„w›äÓ„Óþ)«ìà²4¢Ü¯qð¢ÞSôÃDžñVˆô{ÚnZ©%õ'FѱXqºì — Uv6&&òˆ‘xÈÌæ ‘G\I…½¿’ ‚sƒ\?ŸY?%À ûpM.ì¤BÒinÓpØá®P‰Ã…rï4·%<Xæ …ÛNiPõê‘@Š-§­ìgãÜ{<ëO?¢ËUª‰s@Ø“šŽNJÅM»Š!cÍ‹ >[*øB—Îå,ÓO¬…Ô=Ân=‚›Ó‡¢H…:ÚYˆ/œœÞî˜$/Ç7Áb%Ť±Õá4ÙÓ„LšÄCl € êÛGÉg±›/HŸíá àE{‚hðO#ŠÓçDX1p˜µO#©R–¡'¦eJ¨L}q^cU ¨€A{ JÚÍ‹DuD ðPÜyS,O­i*{zC¸@¹ƒsk`9tïAÈ[Eˆ óCnÒhñð IÍ2ðÜÅ,Äñ\'ÓŸuY/,Ý^€E¨PR¥ lãz&«S4b¿4ü¸šT‡·9ƒ(ä—Ï1: i픉ÚN&hÁ:;¦SÊg³én‡Peh‡šq4„ éÉœ2 ¡R*§§É]ÊÙ㑊V9g]@¤öqèÅ<à"àß~ˆ„œðÁWJF0:ª5S±ÍE®‰Ý&©ÑäZï°âêÂì’ÅOÀ\ ´¤ “†QŽ2‘‹Ð­ÄÞÞ :ÂÀ©ª†uÕ`KÝ ‰PG9 ’Uº§`ûÒ Úû2õr-*W© XU¶y® K+¥;œdÞ¥U²„µòD|\ (füxHôtÂSr—N´ÀÌú˜ 7®Ó{úÑ8Œ€ŠpfDeùoÇGçF<‡íªP­c2‡§ãƒY½è¶b§ÓªÌè¦ !‚„¬>׉D»0åjˆ‰g³J*ÞQT&c„¹á„…sjá@ƒ™rRöœŸXöŠ{° Ã]@ƒ [xú.1\«T)æ«ì7/´hyQÀ‚i€QzFüð{$~X÷öôiÍsóÏéC'Æ‚R,¨Rùˆ*W±P”™h…Žî⃔@’%Mët•e¡%5ì†n„©ª¯>x|âõ]yªNàwℨ´Wá?ò͆¶DñnñK”¥œˆO+7ƒËø*ª–Áù¸š<æ=?a¹èùùïìÍÿ“››Íºv'%`¹vgóÏÖ340¶”ÏÌ›yz›|PR<¹ç£Ê"²øÏ¹ùdž`Ä–Ò³*ŠØSÑ: nÚ`ÕA‚ÙŽŽÔA¨ÁzÖCÏKi2Žtú§öºyÓJÇcú/´¯“ëáT¿á}œž W µ÷õ’ÆínÌ[‚ž…qøPvÿœ!)ŽR¸ù=–j6PŽŠY~‡æ{(-d·AëCn@HåÓe¶9R±r¾0ÙÔY•B4Žu(o(òôiž. €òil¶.•”ǸÆtÑÚ;UõW´ç#ö¤>¦¸T vt1²—8ây6†ê ·’lD€®Ûº¸¨ #U|¬-ݯ›ðäòÝÎñ\Ì0ü®aFßß®ˆÊ °F¢ª´ããŠRâe©ˆ e ‘)]¹©ˆÀÁ€ŽßN@︓èññ;HÞ]uåtŽváÅÔY\¢¿þΫœ Q¬•÷#bUƒ3Ð3tRÔà B>N`µXÓ0ºPú6Ÿ{~r5 V¶Š¦¥'.N©aŤKC܃!)4ÁÑ©|^¦f&Áx‘†X³hXÃyžÆhCÝñyMî»$ rµÑçPêv{ÛGxÔµ§Ì\‚n‰'¦jFIÊ£ÝW‡äÏG‹#èbSqT#åŠíˆ ½pŠ×ÝPYúD1çðŒVê©|ü¼KhÄ4œVgÄCXqÞoÂìx¸G«å ×OÝÐÄïbñØY—¿5N(sly×ô('ƒËì}ŠXf;”3ÔNJ§3U}Ç`Ó|xïuÍŸ ÛbÄ7ˆÜíGÈ¡ÙtÖ³n¸+¹Ëú7Èá…[Ë %äʱþ €^è¡ç ú7‡×.8E,VüdêßßÚ/rÑN[<¤=ÒãÙ¨g±^9 ø˜ÔÙë¡@2v“ºIZfÙ A¾(³\ $øbŽ¥•6•rÍ–6ßÃÃþ=¡T“$ï ûž#ÞJØ•Ã@î3R›zO˜ùÝ=c;‚ÝýK¶‚Ý_Þ.–y²Ë ‰,ºŽcdf9þUá>²x°w…æaŸ×}2ï zãŸÌ»BŽ·ô÷^ß¶$Ñg…ýˆ{~U¨Åh™?ƫ™ Iþ_öÖíáÞöšŸû›ÂC_o>Ø«Âß¾¼*üòªpéUá4jô )j|yS¸ø¦ä¨7…¬“úÓ»> stream xœí\Io%·¾ ù}|2¬6÷å˜8^Øql+@€8‡ÉÒ  e<š±3ÿ>_‘½»Ùý=Åv û0Á&«Šµ³êýÔˆV6‚þïþ½¸=ÍõÉO'2Í6Ý?·ÍŸÎO>ùNÅØÄ6:åLs~u’¿‘Ô®µB7ÎëVzݜߞükópz&Zïöas*Z£µ7q󞦭·!¨ÍÛÓ3Ù gcÜ\д±Ñ„ͧgÊ9œ6·øN`¥Ц±Â /\±÷+Zî[aíæ’í½´ü‚ͳó_Ó´ÖÖ+¿yöy—áQèb Ãè.ƒÛ¼(fim´$¸Ò 7L§½ï1íñ‡ÔSÈþVm®Çý8>ìð% q¸;4µ5›´whƒ+Ìp»]Mk_ô÷1TNŒ›ŸO­i­V†ãÊ s“ÇA‚ÖlÉKF¾$![‡Û»JÓF8ò¿Ïÿz¢ll•±à±óKpTv¢¨Vª¸Ü >H Ǻ#Œi:˜$8¹ Û…Nþä; ~f¬neu”=(ô©tàuÍ1´.hâ³aöÕ0KÛi)[Ls&Uk“y—´ÞF< †oÓ.ÂJÕíf_ŒÃÛa˜AH¥Ž­ufuΓéÊÙõW–±õÖ»\Ç3 îk@ÍÐÊy[Ýaw´œn÷=<œå€–ö² Vlÿª® zl‹Íh¦}ìwÿ hÀ¯Ð€*jh&’WÑFÿLF,OçR“Ô!:—®&„ñ˜-ê͕ԛöªõkÊ%aXŸB]hètçe'YhïGb‹ùÞLÊøÖ™hÝæ‡M9„]4@“ ëäÚÎdT­R*‹qg'F£àH], ¸¬Ç~!@µm…”7®hÙ‡ŠV˜Ö ³"aZë6ʰ´‡N@ï y?ÎûÙ ¹YZ²b0QÐÈ–>ÜãŸOatp7®øò†­ø‘1ÈͧlÀåÚ:hÝs`¤,‚ß&g¥V7ÅzXQ€yøzÞÃëA«,Idw²?Ìà³AÁÞp3t™©ù‚VyZ91Ü£¹LLUý¾äž*Cv:7€-z>ÐÊgÖV’|'²ŽX"fØ?? 0<œÀµãhÃþ’$O—© rv'ç=ÐwPwBB°Ák‡å=ÞåC´]=†ö³a/%]2ô¸ØþZÿ>òÃ?ÇáçÕá_ÆáW£EúlœýÛ8üfÝ YruUÅ%i·KåÍ8{¹e³%?Ñ ½âþö^Ó6÷7qwD+E ?Ž Šˆ¡Š–T´’4q-[Ý)¼´¦}.|37-‹*wÁ.G¢eyŠ0 !vòd|ç—Ñà¬6‘r©ü êÂÉG_ˆcLæáòsXö€Ý÷ mk ¶¤91¦Ž*ùÊMÅ_gwxÓº¸5y1x÷ä#V½ÈÁ½ï¼È'qïéJ¤]S?UÀ™ÛÉ,Ø®:`öpÕ¾‡Î|ò]ÚB©(3ïÃÿ}Ø&‡îD.8iɤS\I…’BvɃ…0¯($¢ïBpQg¨}´ LË÷`Ç$L´Bê%¡Ï0',è1ì$÷Ó‰›£ôóê‚/ 5õÙùÉ·t ‹ÍõÉi…m~9ÍðˆSìÙX=@nn1c13LÜœ|¿˜›Âßçã¼EŒi Ä6çãV4sFƒiæ/ªª®î¾ªêC×3-ÎHyQýlÌT•`>JZy!PâÜþž‰[>õB„ú AÃq,ÕØU^á¢[•ûH¬íw–{ì'ʉráy]øvµH2%É×îwÌ[ºÌ Âç³}2Rû"Lù1´íIÛq´¦—Ô `ïpë+¹»•yb„Sm0½sFÒBwñ¬Ï®’ƒ·§ô‚ÇÇwy±P¦¸Î/Üj^,lS1¾iŸ%‡œ_ @?dpH/¾¨_7_Ý]cû’s‚jhO/§Abapˆ0ÐKFa’ÀÑîÓ(bÅ!˜ÙØWÝÅ"æ^“*lè#•2ÂηÞùÒ r¥û¢gYÉ3:%Næ¼N)JÓG·&:é–ÌF+²[ÔV†K–¥ø{«UUÔ…s‹ó€®Tù˜p:$í[få8í·®Ððj Îs^ñéql¢Œ•o¬ “ý‹0_Ò 3‡@˜N›·#ë­pš|1Y»f-˜Õû¹zÚÞpÊÞ· ``7<ô×1ú;2Ïc2ëvÓ÷ãU¿aÓKF YP;ÎØæ*)xžük¥lŸ“¯%ë š°¸pšÕ¹¶ê_5Æi–wZóŸ𠾇 ø^áwÅ/gN(Ä8ž2ê[ßUÑH[Pfέ]P®\ÐÀ´é‚t°ÁÐ_¼* E¾ òÊ<¦Š úz· êCjE!}´ÖCßvÖ Ø%Ô¿ò¾)–ìñØÙfß³oÇÙ ˜`.t ib7¹>Ÿâú¬0Püü»™Ç\¢…o`:­<•œ…ÌÊ£/ñºz‰÷ãìí±/q%ÿœ‡cþyÄLfÌz·ù£bIÔ [ _±s>lËíð¢J™ BOï“AA¼¼Ò*æ]é£þHÁeŸ1£Â¬ÃÛ‚ζÞê¸J1ȯ¦$ØV"¼gïÆÙëqö‡Ó’ *šVD Hƒù0¯k˜$ÛùwÕõÔðíøÙV3¼w•BFp«^AˆÝ¥NYzn†/«‹ß×ãðfÊ‹iöMøÏë*À¯«0ÜUý†\t#©˜j¹áÔ’»è©X*AYä½´Òåô"Ò,«™j[C”L—¼½I=óÖž˜Ô:N)-…lŒkŸº_Áé¼ <—œüÁ¦âØÔ•Þ‹M®ªjŠIͶg•‰ÒS_œtd¼ö¹–§À+ÝVÆkÓÂg/¦¦bJƒ·ÄÕ’Ê>§l¬“Ñ[ˆõa®@Lck|SUË¥xŠ“zª°¦‹¤ÿœb㨭ˆ /9ã¦E¤<{ àÑ3°ùÛ_Ãò.NG®ªiïá]BÇVÛ‘kµ‡Þ–Þ8L«™ÈQ |£@§‡Œh1c†™ƒ9–ˆD[P^ìw˜—Ü7}É@ŒâõPž&æµÒ)-»T±ÁS·T(¡Aj]¤¢»T¹¶}ª<ÌêÊ1¹Õª†´±QE¾¹¨I[;»˜y¾Ÿ<´*ª·ýãGʹ^å󔬦†{\û7ê:Ÿë@Yî‚Ïóå:êˆoÆÙóqöÓqöËÂ$&>7.@{Æç }ŸwôT ã·§7¦v‹%BññuÀ¡ Úï«/F:.¦” ¦E„”*Êâ)‰9Ì’ÈS²5y‹Ž;fv¥#­Ê“‰ðÒ#Råa’÷ALŸ)RÕ4¾^ƒ-Ê‘Ê"h/õÚÓ °Ø¸ïó)N¸È©ºJ^Zç ‘^È©úySÓ‘“wv†^þLJß9/÷Ï3ýx^>fJh¨ç/½Ãó‘“)#gýg“Ö†Y¥çüYköƺ­‚ ªG w¸ËYÀÖúÝÃ*ýUë©bäÑ\BøÐüfl„KGéµQXò§Í ÎUÛÚÌ 5ôj,ÞꞨ™AÚf¿V]âÊójZàÜR±ó*'¦‚µ… #ëäÌ•%OÜL¢[þlŸÏ2T¸nŸw9ÌÞÛIo•Êä+]Pjæ¥'ç*PtqäF†¡r7P9H\id ã­ +’– <ÈÝTD,ýo»‘A!62((l«˜S°EÖȨ1n8dÞÈP L­Ã]™¡‘!M?äKrZô3ˆÓ»ü¡º(­>¨•ÁÑ‹¾{nexneHÃçV†çV†çV†õÍž[~íV†^žž[ž[ÖZ„neøvh[^€ËíØ¶ÐO<¢m[´û“¶-üO“ýÏm ÛTàÿcÛÕ¹¯vé[@$ŠY»[ß‚1–7ó+ö-$pŒã†sî®ÍÌÒò3Q"†5nÅ2»>espÝžè×J åsÃ#]7Ey™IX?ºàmÇfùc÷ÞM<ªµßÇ ß\ØÈÓôe\IåìÜ1¡¢o'ÅtzÑ1¹¢_ðé:&è3˜ÓÙ#©Î† æ±FJe[Xìo’¶ÎšÎ„ýŽFg6¬ìyX§é׋Î4lYðª+ºI+’…·FÁÈ÷›ØèÒï,iO¿³Ôu"AøtŸýí–$çAIHYWÒ”wLÆH }±š­è> ¹œ!CíQ¯fPÁ«ˆ]!Ešfpß0Ì^ç1$ÛñÕ×ykïTê=£f \ {XuTªß0m~7¥¦.ô41˜ª{64Bäz—í½0[WÔ`°P›æøeTWL=e’#ÇžAû™ƒÊ&¨iª¡.£æŽScì5îãðf2œ9R"s—ÜSs› 5ŠüÚm*ôŒjÂñ½`8:4°y­Žéò> stream xœí[[sG~WQü†-^8¢8ËÌô\C  p%O˜G–dWY¶cÉ É¯ç뙽ôÎî#¡R~Ш5Û;Óׯ{Ûß4ªÕâÝÏóëÕ\|s¢3µé~œ_7¿?;ùÝ—¤S“Úä·ÍÙåIyF7ZûÖEßø@­Ôœ]Ÿüsó‡Ó­j}"§ÒæâTµDF9½¹a²MNiÚœóšTJÉo>äµQo^ó2$gTؼÏ\¢×.lny­ƒv”&{Þ»uDÎnÞ–í6‘ù×Ù_pb“¦'ÆZÓl)¶Nãog/qÔ300Š(…Í+fà‚‹ÑàÔ|T—l,¼H‘äeø¼à¥ “¯ÀD»dbØ|:.ŸñÒãâ&¿e¾áóaÉ/ùãÙÉü&Ÿš«›Û*×|ü 'jMãÉâஹÁ³°Ê›“¯ÖÕ6=ø ¶ä[*,Zï:µ]G{1.ßËOÆå›jé¡ü¢ŽŽz>¹ÜLN·ÊhÝKð2›€UÞÄÍG¡‡·eM–t1ëUP¾Øƒ…})*ö@uˆÅˆ‚Mü(jSôù6õMÙì‚ ýº{pkBë`„“÷ˆ'å+/Ä–~…vc©qmʲT¸Qf²[ÒÅaáˆw)m¾/çVÉÈ·‹ mFãÆ7ÆÉÕ/™jZøÂx$_Ü/K¸n'32Áo~Ç»(O*Ü@nïTñÄæ—âRT’ewc‡¿@¬5>H ²MlµVm$×lµ;]LAÊZ!oá®zrœn‹Ñ&u×¶)¸JF'ñR†‹žl]!½{z²ägžœ]`ðd£ch"¼1Ÿ5F„Äòë‹çqûÈÏÃ4bqØ¿Ýå°bùz\¾öj·—B:‚½p:øhâDKBî÷ðWéßÝ£¿¥—´§[G®Õd6Îfå”%fÂÖ`Sê-»ñMÑu²“·TÑ<›”&_.MJ¾]Üç× ï¡ÚÒd("{DgïM”GZóǯÅI#Ö’~Ëæ,â‡ïØ—æ^gP©‹³%ä­È^ønñRÂ)ÉîðR)êJ1Ʋ©Ùá ïÄLb Íw»ruáùJˆ_“ƒÜj´vñ|.özÉü8#(ë&Ùb®Å¼ûj$W6d¬n)èÉn»åö—+÷y)üé·`éÂUZµb™ eê¼*WJa§ôo]†<¿hŸ@Y–; Ï4PRRȬy"OxÄJ‚‹µˆÉ=å€p €¥™\cŽo.Æåõ ?ƒû‡‘z1R/&ÇŸ‡KÛãX(¬òUšäÒ¢ H]™‰KË0!si;îé”4Eå9×ᬠJF¾Èù2›ˆ1I{‰Ç%¨þ(À¶Àã ¢" "ìÿÛSÄ ƒ"~.F üâ!—<–aÿ¢e À¥„Ò*=4¦o5.XGa(áü`³ÈŒ`™Ø;ñs9ò ?g£: ?›ÖИšWÒBÚÍñ@l; %Öé]aÂÂÌ“¶}†‹n‚=e€-ÐõË*xþPØù Q¼+deÂ>9 k[`E{bm–Ž6Ót}Y¢©²r¹ÂxììÍ/Æ@pSv唟Ei-ËÓrÒ€“:Viy´giI,v>à ½ÈõZm¶PJå5£”•ÑØ; ¯.­ZxU¹rDº<)S È°ËQù Òíêï£'þc\þui¹èŸ¸“hê¸ÉcËËKD]áß~Ïrœ×¿!d„L`Œò–86CZ–õH^ÙaòrTàƒ7;Bgl¨ïù'w64œrPg…Rb­fÏÆ†¸“¨“~¨1@¦Š}YÙ@­%$ àÕöŠcfÓä÷%Ô02}+È¢­%»`]&…SÆIì® k¬T×ù²Ü¤ãcÔaYÂÙ÷ZÌ*8¶Ö46D ärX¹ØB2=劰1Ú©øî|¤¦·^á¤AÏ7#ùÛÅÍ‚ñËqùüt·@SHà±Àh§‹ß  ð.2¿]ÜðjÉ&;d›[ÆÍº0f0¹†i-,O cÍ –¸]- œ¯QŒˆ÷9ˆžt'Ù~ØÛ?ƒb;PüÓoRkf¡!n'Æ;pg… 7ú·ƒ}(Åm@E,VqÏvߎôî\Gü5Äp-`¤ÄÓkíh @°²VãÀ<­sŸÂÐNŒ-ðÖ Ô½êþk *ë¡Ô@¤Ï8~Ñ=~ã,ƯT)ê]mòQö¼“¬‹/ g¬ÉËP-xDâi+¢hûÓ±ªz6Rëžm¡~>Pö>"RXaØÞÌ͉c ›ø´Ô€‰5wwn‹3îèÜŠº£sëÛ œ­{.mkåÂý[· %Ip´¶ªœMxvü~Ð[Ù°]–ËUœ¬óVê†ù7"Ÿ?.Ùd€£õÒ™(®÷Ùä…w”G6B#f¥-È:MÝíßÂ…úšìÊ…oË •÷Kž?D›”ÅR5–rEnvä½Ve¯øÅ)[™ñ±$ôFU’©xêÏýãïà1~Ï>òB;rš(C«ÂP­åš ÷©òu=iŽPÞncAKÉP:Ø‘`¡ÆxRÈbG> %£Òr~ÀMÆ‚¨nµ$ÇTGÍ,vkï’;k÷ýrè_ËUIL;qRdÎ âºq-“ؽÒÚ–™„ënköAv祷­)xðBé3ü…‡%å&eüîæEiÎÈCÝ)(ŸÖt³ëCžôqóüùîd4òA c|òÊù˜mÞÔÛ‘z>R_Ôv‰ºÚQ"«üjrÐ-Î`nf½î‹½åà*Å)mF*¥ú6Á½)ÿb¥t¯>ôè‡jdÐ@~’F²îC¢‘ÑSod€CkRA Á~X¬1/7|2šV=¶1CÆuÛywK#ÅEKÃ?Â7ähЉüí ÝDÔfäÊ!š¿3 ÆGE§ÏÖuZÎ,>?‰ ¯G®‚B¤©ˆêºj²Òo&{Æ ðf²ãá¾í™Èß@“#6‚â#X´ÚVbü¯¸FîY ´ê-ôubªK]«¢ï ýô[ÀcÚ?F§‚«_ØŸ±ü¶2;Š(ÎÎÅ‚ÁÄ“…æJžZÔtÃÁGš¨ ¸Û=þDÞcåñ5Tû¦|ÜD]ˆ-ÂïžuüÆà«b†J²ã‘ìÞux’_¾ÏDݶ¨T(pNñXÏÈ-ÌÝ ìÅnÖÝ…,f¾>®:ƒÃ|°àW»ë³uùFá®á:³ ‰öðëûæTÙ‹5|ÐjÎ+–kS(‡äË<3‹ÖP¼3=ïòë}ÒóÒL¬ó鉯í·]c=nÇzö³©)&[¿óÛ|yR;oǾÖν4o'~ûèóv½ø‹³zà(ê|Õ†Åö€M–{(“ø,ºpÕçdßv]γ®U™78n"¡þÕzÏa;>_œö:n ýâùÈO Ðw¥‡Ð{ܰERÖúA‡í ]cÍ!ÃvùJzgŸ¡înMñ¼‘ó:ÜNåÀ ¼»·£8{Ê,ràÔüáxòéf6@w=‰å[Ò%ªäöÙbD½¨+¢Õ0:½¾5ÿxÓ7†Œ·Ö'¹WSÃâR8g7„ÍÏCxãümÆ!¼žpÄX´_wñÚzº Ù0ˆkµøõð¸}ÜxÓ:í̺„àýPƒy> stream xœÝ\[o·~Šþ†ƒ>Ñvy'Û4hZHÓèCÝ],¹¨.Žå8q}¿!÷2ä’{ޤ£Ú)ü 5Eɹ~3$õæïĦ§Ãϋۣ~s}ôш­›áÇÅíæ÷§G¿ý›aº`¥Õ›Ó«£4Fl„°ñvcê„S›ÓÛ£lÿp|Òw6(Ó‡íëã¾SJöFl¨YÓ µ½ oÕ‡ìö]ü¶Þ‹í¿èÓ#{·}©x+ŒÛ¾§oá„Q!ësêÚ(eôö.u×AÉžþ+–!_1¾…“›:¬FnN/±ÔS½RÁmßãŒ÷«¦¥š }¢¥zÅiI¬×Y D"߃ˆ0Az·ýjþü–>-MgYvøfú¤I¾>=úŽf²asýp¤±ÆÍOȱp¥:6Viü4›[´X|Ù©åæèû¶Üò•Or ¶S‰D'¤Lr»Ÿ×önþ¼œ?_W;Äí[HßA6SëªÃØWÙöò²ßÖ<†’ˆ®·&„$t¥œÛ“ÌÀ‘tDCçz•tD)/œOŠ1ô\•T·šLÒ¶½ëmF…SgÝ<AÙ©,t)Îél²ç¬—~\¢q’x5/€/æKj:c³Þw‰`ïÌöüXºNkå·ÓŒ}ð9'8¹az­À•‘4†&~ ð2‰¤‰µgSkÕ„µ7"3¤IíWv0Øz:·~5·~3µN& ­7]ÐLÝ5ì¶û,uWpSø••ÜtIÝ¿m«{2Ûºº3¿›?¯§aUm6²›Üà * >*¦5/êÏźvÆ>ÃPòƒ\àÝñ Üæ -GÇõ ëÒ+“¡T·©ûUl×½•ž›!3Ž[´öè*{9¨PìÑ2ÎDÄJšEk’‹5ÁaC©Ì­nâ ß/_ï“v&ƒÉrŸˆ‘Sù™™‚ôˆpJ7öû>‘VÞ×Àèt¨Ë¼3%á î¢éBËZÖÊdzÅ8vvL &­è¬5Š«È8›,ìz$@£O”€CR›!;c`őʊ©® ¬¾hZËM ÕzçÒ~­Ð…sò F¯=–‹A"Ô‘ú.8£¤ÆüS3ëW¢‚ìCݰö¥ÇÉ é‚*‚*Ô9ò]ë]Œ'é¾­G€VÀàí—ÉÁúÄarfܬ®ëõf=*=”èÑœÛþ4;7¶–€'#ä6óžÈS>l\Ó ­#Ò^“-ê!q¡·¡%›Õ°i€è¶¯^­‡")Dç½›Ýë^.æ s?·¾Ÿ[/æÖ7skWk­jŸvïÝR~“-ôD) îe23m3kùVÎN®3\(—ƒ€Þ¸ü«Ü×MC‹X0¶[q€ï]ˆöuty@b^Pi±>ŽBTƒÙF –-ÜV°öäêbûu\ˆèÒ ÖKa´¶ã·ÕÖ%“†¢]9Œ„îEN[£‘œE*Z ïSˆµP>1DæØã&-Å[5)_;ôŽ]®‰´íà‡š³ÿ8ÓŽZ¨<üŒ FâŒ`b¦ì­2™^ÃJë¹°«‡“<ýËÑékIÚ°°¼¹á#.2n©íq@ä‘ú*µöRÖ\AÐÖpϼ•LZ9ènÚnøÓ»^b=Š1Ö6ÝH¸á·üücýY –1¿Ð¾ÆµH漤Ø&Øî?&J©—’pwNaTƈïÍér™N¨§&6dzÄgù5n‘xÀ–‘ƒ¿ð™¾LÔ=ÈŸ€Éçó þÇ2‹Œx 6h7%AÔ=zÒqó9`i™AE $¤³ª:$¨¡^_ t Š\o^!PPé´Sf]ßÅL|o—‰ 1ld¯‰•Z…W\UÏ™jÝ0•{¶Ùû Fn‚„¸€Ý<„Oß\¹Çùƒh¡'fL9x¦)½Ë“…¬á|Û E†‡ý|S4,»@Z9V¥ Q gæÛA ®:ÍÌð;dúþ–é;ÿæ†Å“nˆŒLůÄî ñßÍÔ“ »Ì-èmÝR˜ã¿®zAÆD.Ã¥<©„=9’)— ™½S&0EÐSBS`]ʼnÂv¶ÑVÕpì@î !dx¤iE”ªâ亴Ìiká™6ŸËø¾ÎWž†ì‘T¯ø’ƒ‘ûfÔÛŽå×*ï“i8çÑ~~:I쌾°Ô4Á&§V“ä$ÆÏÆ^â¦rsyL[„y$E"¯òU>$p/ˆ‘Lhwé÷¾ê{÷…q“-r²8|‘·œ{äÚÒЊN;‡X¾G¹ç‚n#ÎßÐ8kÙ§Ô0. B‰8£ ÒD Ç4-.Hv¶­,ý‡8‰õ&¯›qö7F¶bTª#(J¹ñ„Ü8J6²ÀÅ•â&­¢YãHÜš´voı”N•š-î2QFòÃM¶æù¨Œ½Ö)Ê(=D ’®«@—á=šãõüYèÍÒ}sw°`Ax’p±êÝŽ‹>Ö ’Mc9q1Ü`[e×¢®cµîl˜ªïÍGj4äý×Iã ƒÏÇ™µÄæwA‰µ¢÷Ók{/tY܃õÙ±¸‡LÈ Õ=)H0©v'¨Â¶¬îÅæÔCì¬îÙÎ4õMÀÿ¤ . зÔýub›öOÄK=±ÍÒu^žÕùš†ÂOúUx×èT%‡ZÆSJ«½è¬-kÁ—uiµeR‹€1_°fûáØÀ” Up¾ïGyZà°=ƒ€ÓìÓ(½¼ŽYaCEÛ±"ƽ˜û2ÕƒQ+ëGvøj>Q]9µNŸ+§Ö±8:Ù)­òÐ ´ÑämnÑâÐb¦–'ÙDç¤"جHGvõ9öY?Âþë\ÐÝy÷~ú¬KCzNLçž,dq ¾ÌÑdõöþåNOgQŒ§§Ï…pA@V»SéìtEõÕ4¬*ˆíßwÈ$&‘S”š…̓¢Í+¯1X ÝtÇ”Zú_DËëä¹ x,e‚máɢjá§¿qúð(=ƒ8Ô=>K¦ýÈ ü¬b -*ˆEM*mS¬UÓ²ü˜Aª)9ꃶ³ªÙí°ßÍél°E=(šuÃÚ@SG`TäOO*àJu^¦0™é½]¯šç“—i)éæŠÞS˜ƒS‚f!Լ̋ÿN(¾®;¯‡ýÚ¼hr•šµ ‹²ÏÐ»š¾¤«ý2­Öt(VU „½¯Ç ëØ£8‰…~Yù"lèvžþ§+I-äûéIKÈ$<²ËÅT /zD©Ùjr¹f(qýµw‰¹NÅfÇCa%í#Ϙ†·ÔtPw'вCt¢ܨÙ=‰;†¹.ë¼ÏÝ=M¯ûøÙ}#À#lÛ¼²Ê·°€ )æ×Ï¡Ö5yªì–àÂ5ì|ëð.«~-ïÒõi“‡j/‰Mr¹­Ç  $jÙ:@ŠŽÖ´ÉúÞ$­è‹ÈzŸ&‘õ‚ÃtϺx̓ÚÎm—µjƒ™V®-·û¤º@„&€1nû»x œ™×xËt¾â»1S³ú³g]—¢š_byæå‹…;#üí5à¹n]t¸O=´0{¤ÕÊ“8pãUÎ Fàß‘@z] ¨>Û‡@é˜@öbwbßô˜ð…Ø„ÎqfÄl€PM¶ºOAív`ŸR˜£Èk|>L&7n®¸ß?³‡i9+ï,ŸŒËÎÓç“ÙC1¨ô0ã£Gƒ¢µ0ógëå–Ô6Ô8KU CÏôVó`êâ„i"§"HH@{ .R j…O;ü/&Ñ$AªÅÔ èWÁ/ ´0ÃÖ¹ÇJ&£m³@DxL·ùí }®…¾K+Qý£Nˆ‹S%S“­hânxÞ¾“_?¦%sIŒ™óyì&?)Ý!i‘ánŽUòç°ñ.W ×¥Ò"×1§¹ÓóÔHaxµ*ææ°«G•ç3æG/‡{~*÷$ \?À:ktËdq|ƒµ©Ô»–ï9턬l©Ð1h¨¯=ï<B•Ÿ¡Š€àC¨cËÓªðø]øtq¿i«ÿ9`UÄg€U…B´†¢ÍXulyVŠ4éS„RhB‚­pÊŸ¶jE`$¢VãvÖ±Ç1k8fEžI²_f­ú鑪¼Pz ÌŠ06:I×:†¿>%ÉOŽ-OýëS½ SŸÈÐÖá«OO ^¾JŸï–ø•ÞíToš¿’¢Ø%rÁ”"¿òòüJOsÒm è¶2¿DôêɳG³/‡^‡3W;ö§9¸$W^^¥¿"Ÿ ja×b™Û<ÕÒùÒË€Z¡=Ýœ²Ý!üˆy¨?Ýô9y²ïŽþ ¢5ø/endstream endobj 2227 0 obj <> stream xœÍ]I“Çq¾þ ïø À´j_|“MÚ¢B¤%r"ìчÁB€a @b@HЯwfVuwVueÏ› "y`G±^-Y¹|¹TÍÏ5éƒÂëŸ_©Ã«³ŸÏ4µêž_þíâì·ßZyÊÁw¸øá¬üF´ÖS8„h'íáâêì/ÇôDMÎ[ëÝqzr®¦˜½Qñ¨×æ<îa—æÿ½øN©,ŸÒAGë`Ö‹0ËwÐYûlR<þûúù_ø”׿x1ìðûåçøòâìÏ8QȇW×gnRþðW Âžé”â”nÌNÑ®ÎtÖТ—–7gßÉ´j¾Ð*kØjK¬—ëÒÞ?ß [ÿDû„Q¤¾¯š}nŽï<úÉ(›ç:M9©<N#¤ }<~zr®'’sÇ·¬ùÝzv?±æküvÙÆ”Ž?²3­í^i;LzªP̘²T“[ ß:VÑN.KEvÁµOðѧd`Õ¸TŸ]K, %\wjøÉøƒ÷>N0êÉ-fi¹“ž  é51ù ?¯¢ìN6á´Z(÷½SÁ¤ã/ŒþoË·uVVþŽ*>pÀW “ÄÖ&Sák£ËøSÀ¤€ž­=|4¤8±9;Tvý9'ã}aÏC2©û–E±–E½¨3šØ¬ï6›)ªt|öäÜ$Ð>á©Õøfc—ëÞ°U¿aëMé ÿålu b®YÈkFÌyz8¿yQÉ6C—íj8·† üDêw²v9kbhÚ×aÎ5èª@öÑLÀ‡Õ0±cN°ÉL.yØ|¢ˆP)þ¾ØO°Sõg.G_§¡XF“+Lƒ±È|¶÷e6#ôkµ›\Y@±lpóá½Î6`J:¼Ž)a8 äpÏ¡á`ARÁôw¼Jd‰aÃf¸R Ÿ|Ëåeð·O`lgBe‰Ëä'ÜÂæóˆ£ÖeÁü±9-ÎÄì4ø6—úã_÷´pé]éšþåd)Ð0“MiÖ$Uz ¦Y“>c|ËûÔ±=Œ~ü™õù¥–¥O¥›NœÄÚóB k»XÖ3X»‹QàbÖ ktÀn 0Š3þ­Äã °H˜ú„_¾Á_@ž¢‘La§DEn÷A³pâIìõ¶%0Žç¢N“[ûnVÄêÏ‚æëx¹ÙbÑëåä¬nÅf¬-Æ}ŸÂ|Þ—¢yße•±Yü¼¸˜6{2yJ¹S -Þ®i2ÁÎ\ý©œ± h!ˆ1ÚŒèÚeDýûnUãïË ÈõšõàôzÃFùiíSø».©UÝ7Xnú¾Ár”äòSàËà€\Àj_Qo¯œ%Ú""÷[¶„æ”hÜÿYX"ïó¢ r‹X÷!?ÐëâH¿é<¬òùlº{W¢«ÃÌi¸»M#cˆÇ@w…õ¼øË1oΔ‰Ý}Ã5;ƒÎP H”3gÉÂ8ŒÂf)§îš¡Kw[Í ˆ¸ Á öͺpn7þ%[wX#@ù".èÙ×z|²Ê2bTë'e{`ÌböL0.Öjfm9T¸»buêþG Xþ’#üã –æÒxÜ•)mʀㆼŽ•‡®ó4\;®Yp¶ ‘y÷gl˜Sì‹ ^§µË¼øxРI£'«-xI=Y{Ù–=¤¢{´q©Œàt!=Ö®`ÝÚxwÇo …B.(&GÄJp 8K ?½Ó¶P¼‚05zðPÑßX›ËÉêì<ìL7Íä==ÄyNp·+^³Éçàš™úÆ0áO_¯ká¿|»6³Õ¾asþX¾á¬ïÍV>vÁçØØÏ.~ó®ØgÀ™Î 06â& Îân2í*,NQö@!½Í0£s«w ’b£ñ’8~ÿ^àÇd÷F°X˜Þ…ƒ•;ßiÃÒ¸ ·¡¬¬ó†\Ï»pÍд€  ¥Rˆ3ƦÃßÊp*'ÝXQiÊ}y-î5” ®W0»ÑEŠ  1F:+~dlWœuÎ j±8—D'fi> ¼©ýT×Ö™ f<~`[*¿óü`,X~<ÁÆÊÔ µPkk”i/|_¿]»´òãÀ{Cãn¤]7ª÷MÐVƒ¿ŠÚ‰æÿóó6°ç‘0md†›Ü`IZ½Ú< \3P½µö ½Ëb‚5¤ìÙB£•i,]µ…ÞšÙR3³–ÅfP—ã0—›r3wKzâ’é‘'.7ú‘^uêïŠLص!&®e¸ûë(èa{‡e ¢^Ž}4€ñ`!™{çogÐÜMwÄ9crS%Òª8ï×§àNtl¢J´)ŠrUfZµT)¨;3Ѐ_N'Žå$e¿Æ¸×š ‘¥˜j!ȉ9.Ã[ûËÛÈÛmׇÈÔê£N³;}ª 't&µè¼ýÀxär£mª÷ÌÕ/-6”Nss¬u¨QŒÏØõ1T ƒ×²JA\bÏ4.pÜ?’¢<ÂUN ¼ßz´|`ðm¾ýoZƒÓ@Èqòdž+j‡4µ,»Ñ¢gblÈÒQ3ëq鸮aM:ðµ^Îèv–4A”Ti'TÞšÕNBaܯãHƒ[Î}œ§ –éÞ[çVÑ{89í·‘,—(ñŒ;K¶uc«Ï»P»Äô.$c ‡ïqŒPµI‹9î³dåóë5BŸ>$jZ¿YZ—„™3 S<8 Úû«3ða Å--wH˜ÁðK$¼&̾]×ñ»uu߬­_ ×üõ`ÍÌSv|ÍpxÀL÷Ys)q ¾¬ø?VÒ~µ~þÏ“%-ùåÚúE&*¹HÜ~t8&‰0éˆÏ––»,Óe.C¬ eùÓ/»Ï²ÐvuùNOv b íê˜- hµpË4.pŸÆ¥Ã^kŒÑ-錾é`L·¤ûbHº‹aë·CQc¬ñÍa¾ŽûÕˆXã£ÆÌßr:çs¥×ÜUF…#*§†€wæ½Õ_õ/Ǻ&73¤YqÚ4‚‰V2ïË’Ï<:Àa³;½[6ûŽ4ËIg€«à_ xt))¢1ð6Qz2ñ.ߘJB/JŽ3€Ûڲ͜¯kžT• lÄ€Q”¬lÎTÏÛc™QRçzá!†Dgé)R@’s w€¥”¨E KFðdˆ¯ H×ÇÌbÆíÉB’@P“Tw ¡v¢„ž¼ÆÞvñ³¶³@7H§ÀŠ‚Ñ‘Å@Þ-y}vˆœZ\N¯ËîLî£,8Dp}8¨ñqð‡)¶ù^&[šm"0uo-ЕHSÇ0RëTnð&Fq¼0i“:T†–²C¼ìAEùع 1Ì¢,¸ÕåîÒÉ0úÄ †rnÑ–æ! ¤‰^poç¯YtK1Þ‹äLk(˜¢¿¬‹¦ø³ü›útÍMÜñnñm¤ËCu,Û:ö>Ù.TÍwVЋÅq·…u`.è ‚¼)§ÀÁ-)ͽ€¸CÔ,íBQß 3yƒÚ‹6œ…a¶·e®8{ʵŒùhÒž§ºüR2ˆíR`D,yßOL‰ã 6SC|¤2†’—pÙLä ïà"ÈÆŸ_à¶v\i,ÀK¦¨²õäÏóÒ°¬‡‘Th6‘,è´Y¬þ'À»‰õUiZ?Ê ”ŠˆóZ'Ý{xßÕ®ŒTïÃ÷=º†UëI¥*I^ÀqìvΊšhÀ®.æá(XJ:…Ís»+WqÎÙ•FÉ×¹ ÓµŽ/L£tR5è ¥¥å þ\“L=7Ù€´¸ÎŸ{À¼.ÁbÔ>hLš{bi¹KÒÜc†0à˜*™_v݃]"».ùÅÚÊîç^­ŸZ?߯?c}Ÿ7ÛÛ¨“@UŸ06 ýžVtȬ‚2f¶ 8Æ ªÛ îÓ$º“ÌÂ{ì"6"£¨ CæóD®ƒãت½µªNPß ±yJ  –ÜוY EU†mC•‹O͆C GTñ3|üÒÓM*ÒE•8^ϽŽZÜF 澪S:ⶦѠPj1ݱö†_¶¡&¦)žZ戓éÓøÐœ§`\sãz_9Ï4DîÂÝ™.'û.‡/b»Tñ^~$î2wêOIs?Åfä¨QüºÞå\Û{žGÚêáñÂæTÎ ¼ø‘™äjÂBOc©’Ìm›/©‡n°ÎÉëFÖ¹¥V¬ ¿âØ*?B‘u½ÒY6ÜŠÃûW(Ï.¹‘— úQÉŽÓý2å Xç©Â€_@m¯RãZr‡Ãš«Ð„ ݆µ.‘¨?ŽÆ•ØUÞ¾¦h–A, O&säär¨<îõZd±Íz`~T³qX—æÅl\çëá†0‹Òl¿„\°–][¦žqóÜ[ÛÝp<ÑŒRºó1µ$ø¿SäÈ‘ÇZÚZ©‘œmd¡¬¼uÀ$[!t—:á>so<è6œ±_<,åFYyñ¿ä²µë2K¢õI…½¸VíMg]‘óð¡ŒMäjfOŸXA½•ÙO ‰Ñ6D‡ïgr#¨WCÆãKIÙ¤Ñ{pQìŠùN‡ÁE 7…®X~}J6€cÞúÓ úK?ó.¹¸&csg@(<Ã!œZÿºî£¢B¡ÓuÅc‘`*ˆ,\97ÌÕ6öV›šwlu“-¡ãÉdáè!÷7¹g‹5¾²†DPùðº³fÑ#yäò.EO–ÉO›ph&"/«0Uîòà ²j0-Ç;‚sêì9ãlcÇÁô’Š?³ÉuŽÀl£ÆEé˜ÐO͘Zª]"ý ƒ¾*½´þ~iÝÜ;0Ö(|dl½w0·ÜùÞÑyœñP‘ V©þrýÙu×Ê®Û RàCˆK–ó4ÿoye¤)%¿\Í Þ‘äˆõ‡ìîT—H™¹ÜêeéòÉu‰ø¼J§d N)á“ö·Ä€qµõ}ªMä8å'½ý,Nª‹ÝʹPÇxBõSKšeNÐÐ>œ#Âîîo}w÷±:jâ:œÚD–hyÑîdUœr”?ß3Ëú8϶•iÛ’2L*›G¹ˆ}Ò­ÉÊ’ykÊ.®N_¥TbWÎýýÉ"*¦!PsqX[à P¥–ÇïOpù"‚;ùÿøG¾¯1ÁiÀjŒÄŸ¡é™œ }©;E{”ºW¡^YõV¬5â·Þy;£ÏËzhWewY.é<¨8¨}¡ã4ýT$'ùú%j ó,ÞÝ¡Xtµ ö½_ŠÏ4Ë O~ì±,Éß(ZâúÄšŽ_^bzÆÆ–³©çuçò›L·(ªéi_Ã!®ºñæÀØðVYFæ3<P: ¾„ö`¦xS=ãþQŒ~î_ŸHÓòÚõ¯¼ ïªcyÑùñÞ—­ûîNñu-¿ô‚©ÅÁÙ ï¯(3õ)Õ4¢ºâö½mF¹ÒpxŽlá Š$á­çÅcêÞ›«^Oðú$÷B ÔŠ·,Î9®¶”êFp„ÆïjÒÐ;À‘èÚ.ÓUIÒš®}° ,Aªö9ïûTÎë‘ß»”š#ÂóÂCˆc{J¯§½ÒÃKŠpWˆJ„ÇJé8áN°0L¼ü;­|—€þT·Dq.·“¾!#K’{9VµíÅÆ9AãBÿ¦Ò‡È‚ÚÖ´mPδ'}›ò›§å‰\k7ÒVmŸPØ»dê–Ô î½õžnÿ6€Ó„åN ’±’Jzpõ ÎÅådQ®,c%ðÎü¥>µÄîñÓÇG)©ä*k/ÇÇ¥Â)oÍlžZ¹á­™ þ5muËp¸:³ ¸EÛ¥åQ}ô 1Õ¿²ÃV1þ³7ìÙjžÿÛš’¸!Rï0zº>p¶­ïXþ=“î*§XßA¨±Sl=_ïÞ™gãþÞ-ã‚Ë c÷´ˆÓz‡|O»^ÕÚBë°¢³…·Klˆ–“ ¢·’6í  ×?Óßj¡÷¬­øš$¥;ô¯Î[¢G ?Û“Šƒ+?ê9Jå@ÿí½žíÓ»ûÏí¶÷zü1UshèéëÕ‡[ŽÕ¬?Ó¸K›ÐµÝêaï'ö+ªø´AœŸØVÓà×™µY{¬¯L‡Ï ~Ž¿o7ÿ-»l<>ŠÃþ–Ýܲ§pûUvÌ.ãSíÙܘH-Ÿ;‰Ô¢rûïMß¾Ä{÷ïÚåù|>îßµëŸø3xÁbYEY»vÖÏõŽÚrd>ûÎËÐìendstream endobj 2237 0 obj <> stream xœå\Ks·¾3b¤K„ñ~ÛIœŠíXâ!Uv²(ʪˆ’-J¶å_Ÿ¯y40˜Ýå.))åä qÓhô»½óóF µ‘ôÿáß'×'róìäç•¡›áŸ'×›¿\œ|úÐH³I"yííæâꤼ£6ÊjacÜø`„rnsq}òÝé/g@ê’ŽáôÕüøœ½tJŸ^ž»”„O§æ¿6?~3/½è.øûôøŸ‹œ|qqò-‘èÓæÙ͉Òm~Åaþv¢eŒBeêŒpas}¢•ÄM'n{d QÛúȯgÚÏ/çÇË.O®óAU0áô_3ôuw퓳s/¸­N¿?Á[8X[–í:4ZJ!-ã–Ñu ·€bÀ03ë뙢·œçŠ(°æô§Ý¼èñøí|¼ëúýYuÔs¥pZoΕÖšÍÅ%Hºéâ~5ëá›î‚çÇ«†æòÚ­•¡}èç¢w"àÝTïdr¤´Á@LçR€=:&:¤áLÔ®FŒ‚5'hRFrŸz­Uâ[Ÿk¸ c7çZ £õ (Ÿgâ“q2e¶XSЀmrR’ à2¥äA&=û£}N!9-I¾„%zåH:xVA9“ª5t,ëŒqgÉËm2ºªSEªÂ³ PiLËÉðµ4&‘ž›ƒ‹Qƒj"Õ%»×t3rüîü³JÆ ë7Ê!ÀÍk@< f‚à]€"Û0P«ß£+®5§‡‡¯“!Ž<„@‹="^‘©1Á¦b.kTQ •’¦¨€1Q…Xä>¬Ø  {e ÁGiz¤¯ÐÜ”åÒÄ <о÷xÃèû°·.§¬#ÍWã~œÒFeóÙG渠iC ¡+k«×8?ãNFcLÖ p¤œ¾(ˆ-öP|µz`¶5aä$°KͱðåOÊþŒd»ä¾çÕW³€s<Ò° í(iá,¢ì.VŒç%X»‚H<™8ú";¼å„Þ(ÿÙµ„l,2L٨ĊœÑ¶f+2)&i™ºòtVxï«Íiqµþgy¹Ç³q0ɽ;‹à IEœG­„Si͵qõ€ÜàäéA­5órnGœßŒnO˜jA x:¤A- í-Ã}}¦‘h‹']lu“ÈK~¼ï_³ÿàî‚ãá/]ÔÎUkFV(µM­h‰éId¡ã—Œ¦Ø×„# â&7š§5Û&ë`X² C”©b¶çÔv;`2z3x‡FÒÙZ¡Lª³FÚ%-7G‡ °I¦U9qÕîxò¼ž‘û‚-çK~¯ù„ÅxÕTaíü|Káä]ÏóNÖ9]Y׊ª_2„ ÉõÀR{„Ö«bN?´}^èyŸæ~hã‹oÎH¹´ ””ŽŽI´.xøs. àŠó¢/ó"'Q€((>HI]l¿ªéÅy·o¥‡y$žvZͪª7JÁ@0èž¼a×É.ßršÖ†j‚nÞËдFå3 ”d6 aí:Ú=²WÃBåËø‘y¼f¾ì-swjª 6—8¶A$„àqV¶Ç=ü×?O.>ùn—/œõ=A-…ò|«÷’ÂàÆÅƒ0S^ƒkç䢽±›ã!þDîÛo““© W…¯fÝBw%eÚ‚ö䛤Ì!-“2­­²2Í9—"…^fe^b5[±++óÈÁ•nÒ²œéò¬÷¦óý$€A‡´ ¥ïƒE·¦87ÒBoCØï°² : ‡"\G•L•e@.ã&À!…ep"¹D(D@F»«²ûšM‘ä£ñwZYjLš²ûìŽQiºÕ  Ô¢m\¯FÅìC¨l…ûÓ=T=GsjÆ:Š,sŒ‘ç=ï#]òkQeéÛ(?(6Ž%Ç0°õ]ÙÃ׿¾çéMèX¯œ9ÄnJ<‡®D^o®Õ§<¥nLñž.Â5–W³ÑŒbÌZÜéHp%”¥¨økÎ Bl+UHÁ²´Ï‡G…ཟ•¬Ë¦=u‡èôÊܦ›‘¢6Ú=zYýN9ó8Ù|'£ƒ ÔÕv*R6L÷ Áz¤=ä{…€$¢ Z©»jf=ì6oºÐ7;¼ƒ÷™»±È¢­Ö Õµ³õðJ•gk9ÄÏeLp#oVXªÙbÉÚg¿D*Í.Ÿ“ý u7E‡”n ¼Ñôú:¤P7K]éPaìg³‡ÿf†^ÌÐÅm A'²>"ÄX¦C6(@Ô1:¤Œrõ°;8lµ×­•×Ó!ä°Áìüuîã<_Šm4ýÜD“6S$¡Zêe`bšú„Fm+ù©žÑ6)žʪ=«°Ü\Uêø:˜dìXÀ“NÕ×Áh-œŠžýþÀäê†ký6@Ãu©`+{â‡aunr‡k„Ñ:S.M´µÂxsúË™C X´âÓßv¨@PKe I]ÛŒ‰È}ÝjÔ~Ô¡ök4<Âz¬ØÈós‹\×Û  ,$£¦1„¼æ6ð.tŤµ¦ŠD¥¸ªl¯*Ú2Ol¸m?l- ïá<2Y?Èk¼üæËrzÓ\¬,/™‘1È †ÄÈ=÷cªfdåäy­š[Þ U³H™ýݾ]—èn1á¦`dNÞ{ÙMtZ©^–È7º²©=Ì¡íëâ I«ýúE´8RöŽ'¤ª2¬tÁ`¼†Üc È…æ›NÃoŒKoÊ©‚Šcb¬rU‰´æî«‚~Q>R{ßE¹õÖÐ@ÎT”€#Šr  ­-ÙM;®±ÈnÓ99ûmöúlKtœÜ`\yѬ-»½lÉY 7ȈmšÖc_Î+¨  æa× ÍÛØ‘”¨Œd ÃtžÁr׊®Y,4ûÔV·Uœ pC^“²aš@µÕ9hNi|" ÂÇø1”V­ð ÚˆÚ öˆ3F”[ϧ9‘wÅ1D;̓d0áS%Ã@ X«©6¨Òÿ€‰Éa’$Äa’äƒ ôÃ{&³Vlxo„1¼pÁéÃhB™ãCöÅG·¶ðxAD]šz”ï*Ì?æ‘¶×ë,Z ¡½)Óm5gÑAyÿ`[š®…îcbËRJ²1À.bÈž8Ýä O ‹–tEh?7܈%付;ܲ?Réeù<Ígtë„fžËR*®õÖd–)ºÕ 1ÞS»,˵TMÍMÐØ-¥ø62š¡('©¦D”å­¼7^Ï]Ù¤…÷j,˜³V‚‰Ÿäg¶ÑP0ÒPài? SU^Uí—R¼ jºÎmðiòÁ쨄ƒ½}!dPÿ+s»‘•©ÇŽúîÝT©„"ù«™Wœ(®Ø¼»4Íפþ6[§örOûî,‰ÛLˆJöîêãí¾«¥[ƒv€îýÝÕªJãæ~îjÅŒ"[‰¡ "× ¾°(4·!©2NÈQÝjƒ«3ƒ²ÐØ'³a¼e†¶65õK™ÉšD›ë}/‹&õ¹)oºÅ,À6°õ0/1µ7e{òv43¯þX¦s`ôÝiU—Hüvk••áÔ(m»Xu›oÍ×à¯F©¸ÅxÒ3â«ÊøE È Ô+Ü©3æn¿Óh¢%k½¼#ÌÊ…=š+mG©¶e*qí ·rÎ ,êôg·Þ·7Ø]žTsÛ´Ö‘ªµ§ÖY䡸N,¸”_|VI«Ô8æ4G¤Qj…Õ\„7Äû£¿+³ teL›ˆ Ú’‹(üpfOÏAØâbt\½R2':ß> ø-¯¡Ê9ŒÆNôK”k@ í'È 8PÐ-.¡ ýgIx¡ãñLÝËz9CY/뺢96hÓN²oIÏKA²z®“ˆìæÍŸ„<ܲbUíE"Ât«âÏÑN«œªÒtБ.M·ÓLP¹»d*0ß°s[—]äe•±ak^MKLÚÓró\è=Š žL¾Xq:|SºÙÏc«îô«z´‡§œýüÊ–e&D[5îáJ¶w)0‰®rˆkC8, ìçl´¯ªJ`£"e,DnMÍòãDQŽ«®ú Sý±_ÚÜÉ6ìM§›®®F$ƒ )¾ 7+Wî¿×,€•%Tü!ÑõÎìÊj·:^em ·Ò–’ÖgsÙVKâEßüØaJJXÌaúÙõÂÊÂ2Ã4œÒŸðùªûÈ|]5ÖÊÏb]Éê6!ÿ{ ukÓ9äg±*PRJ(Àðâ„™£üsCQyü|ýL ÉΧä$;ˆ;Šdçs׆“ü×™Œ/çÇÏ_ô¨ŸéŒÅZât& ˆ?ŠNºJô5º-ˆ#Ù2ðDän£juÔ¾Nœ!¦Í½ ÍŒ‡‡Ž`Ü8<„J†6üVûó.».æèÍ »Öõek]ù5}Ôà]¼öY¥9 áDÑJ—÷ùuä]˾~Ý¡IúÁ=Â7Å0ýÙ”¹ü1¦ñvFS [¤ ÍåüUÁ¡õÖ! Kmp·o2Ÿ‰òw”Ì网m5ixÞÃUõ/¼þ”áÑhc×ê´:²çkxÏP›^u•q/ îEª“ƒè¨uÝ3E̳fzLð°×Ôx±N®c]–WwŒNSË,¤z†åÍ©•î,Ák~ôÔ¹=Aý-Q”ûc¼?6øƒÜ«èÁÌÀîGÈá÷ÇÈ)awöÉvè§ÝÇËÆñm¿4?µða/‘í~—ÆJGrïìÒx„qi¬à«…ߣøßÓ_fn_|9‚[Ã_*fíüâKÿ¶®k \±ÏÇcÓ6ÿ_|Ù€±óGüâË}êÅŽ/¾¨ôG™PB›ï!'ÔäÉlyãÊ à HLƒË„Ê¥îì“/·ÅËO¾D7ßïÜÝä€Â%»ï'_h¹lÀ»>ù…&Þ‡Á­}ò%©i»m¥’ùgrûÎ2È„ ­yu~UØÐ½åã,öJ5ÌP]ªjC7Ȧ=x߃áÛ\—yõõýÏu¡¬ß{œòlÛÎd ½Ëq†¤s‘×l£…·µ¾­4[wÝöj E´Û«ÿýè ^Œ ÄäMÿV%”LvŠ•Ë[¬ÀL¯ûW«¼ÄîØIVw~ú Ÿlù&G´¤–rîY–F:ß¾µ¥hŠ 1–:”i05“îçÇTy®R¾=ùPÄLìendstream endobj 2245 0 obj <> stream xœÍ\[“·q~ßäGœÇ³.ž î—ÊSlˉ\‰R–¶\®’ò qÉ%Cr)‘%þût70ƒ˜³»TdW™0—F_¾¾`~:ˆIþ7ÿûôÍ…8Ü\üt!©÷ÿyúæðÇ«‹ùZÅxˆStÊ™ÃÕó‹ôyÚMVèƒóz’^®Þ\|{|y“÷FûpüÛÖÛÔñ‡ÔöRøjÌ3l'¼pÇŸÒƒ¬~ËÇÜ^*?%ÃñÃåÉh3EŽOÙ€ï/¡©µ7ñø»µ6V¨¹m½¢õ ì]Fš†[…>¾]~ù?W…ck8;v°®…“_]Ã9¿ÁÒFüñO¥ùߥyÕðØt@-k|quñ7\ÈÅÃÍû 3 {ønâß/”“zòI ÿÚÃè1Ôš{^_|3¼¯fãó}Áÿt0õ}½+{û¾4oKóº4ß–æ›åǯKï³Ò|ßíý°4‰ÎòbA…™Æ¿Àh%´Žþø2]_À2ü*_§«tNWÓpò‰ººíløË5s(yüxiÍdµ2ž¢¡yÅ µžW‰!6<Ýv"¥OrN[S1tG,üeaï`{ÛÖFK>Éy’Ñ-Íá$Õd“‰Š?Žé²l‚Óîšµ‹HOtpã<ì?ÅxÏIs{÷$oàP.ÿêãMé­å{u>êÏKÚù’}ñ僧ËS0~òB¿¤Xa4®'™\ çƒg©ÛÂz•Ò2ŽVaœÚÌdžGêÝV´^P£Ñ NÈé±ET?cæí9¢jñÔ¶AY‹³ÐÙ¥›ù^+O|H³ˆåò2_#k©¦g¹ügö÷ÛZ–¯óqEÕ*ÛHsüTC ›§%~µ6óëHH‘Ü&‚6[¢Þc˜'ðKï&»¢Ô½)XÈZWQœÓdJÁá¼ò.ÿ%W/üòop!¸ »‹îÐÍ¡gV[nk§ +¦e€y€ÝA1G|øç‹þc’¾NÝi„”Àe´ºÑéØUãFÀ™´œ—áJœíèÚÈÞ4@bÛãYv% ÅÖT‚Y ÚŽ ðïŒ:#ÃÑòªEÚú|"šZ8ía8Ìþ"³Ç¬$œ>ÃfèSþ³‘y{ô÷çeYU»É„Yßø;Y_ &üîÝŠštþ›®ŽêAô|;}ôò_dß…•*5ù´;~µ2J* $=€‰ó“BÌ"-tè¹ã>EZÐØ g˜¬ô ²0Àño¥ùUiþyãHõŽ­ “PlÇp0óv ˜Á§ÊŽÿRvñeiþ£4¿èm¾l3X5yͶ —?ù‡ìÀ¬òÍ.¿éîg¸µ•Ø+jcá«®9îò£”S4úñµv€ãŒ-dÓL­Q ̀꺦۟»Äºêö~ÝãGÎ_û² ø¦ô^5?KÍ?-ºW@!87“xd2?Ìj¦R]·’æÒ¬ƒ4Ñ®1MŸÖµ°Õ¢Ü8î±ÎïpÄ·fS]`*@™1mÉ­E-”¾/T&C³†ÊÖªø T‡çÔb7ªÓ`w•r;Ý&X{r­ñ%B5rx~¹„±J < ´`Dœ19íïÓ´3vA4~ò' gz5…P«™ qoÎâÞÒ6µ­&^›ëÄ?3R3ƒÍ‡ðŸ²59´ÍWª… ¹¦ÖB°F‹éœ›hqå.u¢–€«wp#! ˆ „.'¬‹5lb Bíð;›ØØtÎ_Kï“ê'€'] 9›œ¬7­X“L_œÈéD<›žËo~s‚¶l˜ŽWìä,[c›©€´šò4f~®ÉmÅ݃=‘èø¤…¾„Á´ˆ1’ƒ¶ AVv’ÛR‚iÒK nÃLo¶È`pU×Q…\ÉvÕŠlÞ¯.7¢£6š~œ Œ€}Œ1À_1 ƒËc¼xî¸ÂJ©˜ð„ÿm1Vs6Lƒn ¯.ž¹§Ü­êÀsr2š\€j` ;ò FNÎ]& ‡±6ôM&.®:0l³ÜÅøÆ“_aµKÛÆXYÅDz‰AðÓ Ò[ïh>ž ¬‚ÈÅá\‡hÈ›tê LNOª%°@Í\Ù&=9ï!ÅŸ•˜Dt›¢ÔF8xޝ‰J€ ̵}!.VAiî”±ù~èG³³KŠJö÷“ÁÓ×ñöÏ™¾|’VÄM“EÂî 7cfä¿ÇÑâ|«õi(РÔñ[¶¢(#þµHÊÀ5²°Ú™¦Žã]0²ŸmÓ^,ë·L¦Òž ƃÈð`µ‚ß*°6¤3Ììñã¯À ˜f0Q¸ü¥_E%¢i ¦º(ÒeÈí%˜|P99ç¨Áæ™Yep:À¹ üÔˆön¢;ÄÓ&Ö¨×à† Øå˜–º¯Kó5›îej;TƒlôMšÙ;•L¸’Î8_m•ð¿ƒË•ó^uTjž&g¦#(ð°3Vx¨oÍÁGG/ùê?/®þðíñ´>ðªuè¥S¼ÒÊað+çÌ¢šó-v®U² Ø!±i‚=u"¼N!c<Œ¡J»8'B©äCéf#R"4ÂýtÆ–„Èž(PñWš.›J=P¢x(÷ûS£pÊ’7Õu±ØŒ.K¸öAjø]b¿Ò\®‡iµe¥‰‹ÄF¿JPBªÕ=ÃÅ`üœåumÀ9J —n¼¤\¡$e}DRo;[jSÅϾ–béìÜϱWƒèVÌô>õZåªôÉzeEÒ­‚ºŒ+.åPlºëšeiq»Ú‘][T‡ÝÈ2¨â¹M³ÖipÈX—PâÃé9øV÷¦›ÛLµ™´Â=z®ÖNé0#u.k;ùÍ€T#¶êI‰‰…K³n¡ö›¼)ÓÓÒ)ñÄ*8/sðÉAi“TÑ îTud¸»ªê yÆæ5Û'Å:e“Ž\WÇR M†Jñ¼ÙJ.ÓpC4.ýišð†7èY¨‘Ï»*U4臌%¯J);X8÷´¤ìø|µêÃ*HDÿaÕeÿ÷©Þ˜}˜µäüÕŒ©Áµ0{ËéŠGÝÈÙ27ç‹Oi[˜¹Œ¦Õí•Ä¥ä¸Ö£¦!Y Q²–ig¢‹Í{…›+xB&£”èÐêP¨ÊI8ÄÄ}ÉÞwi¸’ž‘w œÎ"&aYý U Ó ¯´O©—0NУCq³Ó-VáÔO…+yãœ=§ü?Q¾¿TŒD}²ÆÀÞS?àœWiy¥2ç`ù™ ’ÂùœÛtõ©ŽT©ŠaÆõ.´A?7]d¿ã•”/æ˜ÖP@¯Rv(¡|O/r!§ZiÜR#þ«3*¶Þ{F ˆVÃßh·T,P¼æÂeìž]ûF$îm¥­ë2 Â)³pâf¾7BA|ôÓb:zQRdüøÌû«“‘ñÌœpuIŲ}ã…µ±&Œ—–@òl»`óáQ}npˆ„1± ^7QL®ãv¯+× ‹wAãuÂ¥M”=Ýhq©;ͺ€~%¯Þ? r­Ôâg{Ÿ·¢Cãêái0ÙóhŽG³ƒ`9~7š ÛëʳhŠ‹J?6  66u7meÎ QïUé]%îçd6å„À Ù)šƒ–&¿Ø2^B\zî“’rr-àçbS–™b)Ÿžksä,GÊò¯w¼Á2“]ñ ë “µ“óàôý/ãü’…Öl½Oáü(Uód „Áê ê÷3ùÜ#뙯®R=˜n«Á@G‚ Sºq©¼»øÇàæ*Dªû~=z–Žû°’U¡#N1 /ïËLm]ÇÝÌÞifXäÚÆ)y¦ÐD“[—.oE2+é”.£ŸI9 ‡°ÛærÄ›?UîIÆ1$© î #f#WwàFŒâ²£(÷:j©‹fN’‚”u‚*‡ë˜nQéŽ9Á Êl¯ª0š ÉIå$)Ýn(4±‚_ÙŠ-f‘Æ[Ý`–u}(©L+ߺ܃ØR"HÊs žFø…:ng9±ªÞ€PbÀò"ªÖT,ÛÜÔ.çTäç+K-XtK¢K*9ºŠ EœêÛŒÝ)…ø!Mí¢½6kÌ9Ò!æ—¼‘íP9‰î«üÃo06¯× àæ£[âæÕeõê #!v¤×Ë H5Kï³t”P2´$`L’Þ§J©ÃvÓámyJ¦õÞoÈ ÈÆ9K¾ðÿ6ŸX}Ÿ(5?/€‡Xn¾_µ…bçÕç¯ÚR¸ð8Z`ë¾ZL·ð¥H9ðÎx‘* ÓÄn(mf–#!ãÙ–{e=ÝΔ—Â6ÂCꮞoOµÍ –ÇsqTˆÞZ+ÔÙb¶Þm®I/3á‚òÝ%›|–õhZõL']2áY–S¸„¦5,­ à'ÕdÍFƒD͆žÇIt‚@ÚRZð,ùe3¼ŽÖ°i|͵J,`‰ì~¸¦T(;úÜÀÎgúDk2‚ÒWÏçWÖR"´Æ{ÃF®ƒméar¯1òu/±R꺴b“+*š˜)W2÷QÔ^&¾3‘K¬þ"1——3x^žéÃ$¨E8ºl¾3µL².ÑJgg¿BXùµ­B@*® ÖøR‹¶SÅIú6“Ñ¥×üÊÝ›-¾é"×=¯Ü‹TzjÂܲžl`gNaQOb¹†å¬A¢€%?j>Hj*õªæ)v–‚ÑòÁTwÅ>5Erâ4Ÿ× tBâ Gñ”V7+GOŒî[Ôe>±û}Ôt-®¯W·Á™þIÊ9`Œ}1: £ï ·f™ê©$~î~7¦7‹G–ýaÜ‹ô…Z NÌžçiƒˆU§ÀL&Wu·¹?2âï‘Y|>%‡WvžÏ3Œ ’d!ÝtóÕ hŸðCKfåÚ"¡cpƒÒ¼K8×:G@®’/K×6ü¾æóõQ¥À`x§Ö†§œ‹Ÿ”½ ç\ª”›÷ŽCt[{;Ë$¿=f¨F—Ú<ýpn’µ7zv 8n‚15’Ùø‘-ëüÏ \îè yW$ xëª Öiuò¹[g©¤C§o€t ’$š0,õ\ Åë´¶‘½J¬û‰!§ÒÒ¯*ÈÚHš©"LMH©›àNç•+·ÓmŽåôªÜ’æ]½´¤ð2Œ¬Ô:ÅTìÀÓ|¶Zf>ãã+·ŽåIrtÐ皨nX¬yiANCÉ6Ióö¤„™”k¿ãÇÝèÁ E¯^¶ì—À‡bÃÒ«Öƒ§8Ð]qçsâ‰)ÆÛz1°)c¦Z.¢_J°Šid‰º ˜"]r\qùq¹À=ÆFhzFr–±YGg6yŸ-Ý"sŠîûèb“¬L—®ú&,è§({4]—ðá¨ôohÁqÎÇÅ=ïNÔ/Ð6Rú8•äŽÚëU¸"vœÞê€SJ† Ó‘ÕÉ ;Êžð³¯ÙrÄ=/An|ß}+? ¶ÄÏöXóÀ(L"zyë%uê==%ÛÒ?xFÏoÂ=ÙjŽçi#B;r7pÁpfêl—Ð&ø‡/Ëxù:nÈÑ{Œ¶ø0þ´æ‡´Oéjø·K=á©p¾F’ˆ¸õc›ßÄ­ ý%9ɇªMͼT-ÕüÑß/µÂµsÛ±uÃo=â#†@Òw îþÆ£ì(ÝiPbö·üÈcÀª`cØGçž­ áv—ÍWñó2:å±ý ÛÎ/ru „ùWŽÙ /{“ýξýØ~Ö_©‘OX ìJû…[}i–ï¦,·÷·‹ÿ8Ѫendstream endobj 2255 0 obj <> stream xœå\Io$DZ¾7ü#úöš‚ºœûò|²Ç²,À` dãÃæ,6—1II3þõï‹\ª2³*›M²é–S“{DFÍß×làkFÿ§?ϯV¿üN¿~w·úûŠ;i©×Úp7X¿\Û5\ J®o/Ö߯¯Wbà\Y¾þyð¬¿ûz%•4³kÃ5¬Y_Í —€p?X1B¤bfP¿±¥.~ >p½>_eˆvJ Œ"ô`ED©¸Î{¦ŸÀ`½\þ÷7Wãz'ü &lùgܯG@¦èrDжñ@q·üó|õ~õ:±èöñ6>§?ίֿ9ë- lÜ3½>}»ŠBá8‹¼_¦ÍÄúôjµ9}{q¶»;9ý+P ÚJµ>ýãjóÝÙõîæêäVfJñ|wq}q{vs øW§«?áÿ…»’ÚÛ(3§ÉIІãè$%‰°À;:´òƒ‘Âedƒóƒ×=ˆt½¼#H³×%¸õýËÚ%œµÄXòöj%WÞ²vßjBZ`ÞUÄ¡¼F»ànD¸N+°˜~Z(˜#Ä#DA9¹ (2~Ö5¢Täÿ GÚ4ý†GcŽ‘OL;óÁ;fˆäjÄ8þŒ[A$ª.G@¤zD—•÷K?3wœÆ¬± ÖåÖp7ÚAÀð$¯W?¬á©<Kÿ Þá%ƒHåDÿ|·Wœ$8À çwòÚ´öÁÇ,nðÔË}ÜQÃ!paBŒ½¸?B€UFË5|§5§»ÕæÕÍõýŧûõ9þ<û€øJ ·Ö!"¤l…[aa雯oÏ>¾?Ù"FƒRŸ_=ùËé@gð/A[,RˆNÛ`î8&íöÓÅíýõ›°TA;D) ì;„ö7ÖÊû³7x܆àÇaMdz_¿úöôÕïÿ/’Bg‚çfr×K2ytƒŒÊiø9?À,cJ¹»Ï²„!Í®xŽ|VJaÛpâø›ßla Òk¾ùp²Ex–dä›w'ÐF)­ò› ËvNlni5ƒ>øÍÅÉV8ޤ6bZ,§Çÿ=ÙR‚¨¼Ûü–^Z{N¯aÊm>†AøÔ0ËÌæºØoW<÷ÖœðtÇ­«ÖßEb­4›7qW§ë÷'0-M§ùùÏÁ»êï›Ý…Cäá›3z%RVdÜL\¸&¼ÈŒ5v'gžÉ Û§xæ§5ˆ™âÅãðM J$6!3çÕ–·ñ¾z±\¼K'”¶ÒŠ´%~)°”Ì ®*o ]ÁðJ]ið-Ê1éá»,èþ\¼šöGôÅîðDª„LìáPz’.°±Æmþ:×]+Æf~ ž8”Ûì¦g:ï6x‹¯µæñÜû…¥åCÂ"3®`<ˆÎðÍ)ð &¥·›÷5ü£ƒákwŠÁpÇ/®zØF˜J±È>‘"!5)ñ]+‚U"éõX (:KŸÕ$XÎ]Ä뜣GÊ,Ý‚ S½©ƒ ƒ{ΩØ0“áEQ¹ô¨ž µXÖû×X-¹ÃyÁ<Ôöɿﰡ·øOe#8®@¬QQ ÒyTRq›ÆqÃSsÅó.…,²ž+™ôµysÜVÏ‘Q ¦–HÞF(ür%Ñ÷µè‚–9“Ù ŸàJc¹Â#ƒB –tÒ „sÉŸjøÈÒ˜“Ë'?\ 9d KéÉkáHJŸKil‚–U39em/Ä•à2´Ôºˆƒ‚~-ˆ5CrF²¿Ìø‰a|³&›£ïÒWjzÇ&K;<¯!²J.¨º¬’ƒ¬ÏVªÎµG-¸y5=~;=ž..ø=="7’–6 )Œ€Qmõ5åÓ–Š'MÕ¬¡² ùpètdÈ%RÍ^¶Óœ›8Èv,ª-M)µ‰éÎ×E·ÓãÙôøqz|?>.Û¦$$2_sQ³vUµñ~A³y7/(ZÚÛÇB¸eü,Ñ Sü\,KÝ5$ù8#®§Gœ¹ÔAìÓÃ4ûô`djÐà¨jTµŸâ¡¦†3~„^LŸFÝ-|³ˆáCÅ,ÃxH€ÿ¼™À6 ¸óã¤@áÇTÁ8)$£îé3CÁ·WGäQ¯Pôr+àë 5õQ徨ÖPKPZÔ,å’hÌÇv÷½ >Á1)D©¡­Ó–wòv÷¨ç÷‹ &çÿ^/ˆ¯=𑳭‰ÆSµ ãfªRÀÝ"œßL—₞ÂIÞ.|¾HåÝ"´bD"Ø–‡:ƒÚH!íîk Ò9KÕwµBFF;QêQÚ³›~6Aï'è—µòp†tÇ딾˜¼èÏÞ5и ²§àEPæ|X|í¶} „FÝã-¬WÁkË©I¯<è…ïU‰ÜßR¬@J€p¶@Ô€®Æ4CyÍx*s‘ {ry<çR†b½ÌƨdPºèþ¸å¨¬«5!ω…äu\®¼‹q™¶ÎB¥.RÚ/ŠRâµë DÂiq@*óÈƽáfÃ;ƒ³P+×[A ë y‚' d@ŠP ˜›MÛ›?8kF~–‰l¯ÐˇËÚ±ª9·Šîù„í&Áå› ÃúyQ–—KþÑiöÜ$ûP¢ì‘ÐBÒGÏ“¡ä¦V.Řy¦rÅ`ZåšÅùàK®[Ý ÐÂG}Zr‹ §ƒgŸyT–”Qt`:e[èÇ¢SêÎ6êšõÁÒ·’c_¤Bu[¦T‡~SI꺊šÛÁÖÅÔ]\Ìx…ù&B 7Ur^¼÷·Ø9qi;jŠš¶±–ÁeM÷ã¼6Sób›7ýr€°k¸ï~­I+xÈV–ø^’¬."Ó %îTó»Sf­?’A<‚÷a¡dOíÚò7 eŽ5Ä|¯Foj¦dä+DÃTÅײÃQà.uÛ›VtÓ˜ôuÑ¡&ÛÈNŽÇöz©ÚËm”H‡Ùü¢Pè‚w‘<ã•­übLLµr?àmg½ñžo¬™+Á¢™‚KƒtA‹ñØ64 ÝuÕ=ŽNû®Wî"j­tu†|5ÀåŒt4…%³ˆ6³êûÈbeêiŒÂ¾ò ;«Å@s.cchë»ÌÿÚ(—Õ©ÎÿªêgÄ“¶òŠÉ¦¦.ô‹B˜cýL¢¸º~n ™¹-CAòHé=~œ#ò.î˜ÊîÅCÈïãy›ËÏêúrfµqž£Æ¹E  GÀSB3£ð”ÚXþÔØ"답ɵT94uâ΂Ïn‹§¦÷Eã¸Üožô8Wϱ¼¥<Ìsíó9ŽºNîhž¶4F¾|ðŠGæ îÅ$æ`±oë¡EßÙÀ¦&aA½ÎóyMùnùœ:Õ’YŸn }ÌsX3o¡‡VSÂ=t/R:®îExÿ½H(_RÀ´œÙ8ËDó;¦7y´ËežÛðä×yº—Û÷øt¹u4“|"®@¦»BwR;íä"Åæ­È“ãZW4¬œìúˆ^Ò9KóöBJjƆÛDN##dŸ›l©œ®yørÌGéý·‰_-æø{Üd+>8rÁd¼“†?™¯S(û}€Sãµq·ÉååsŠv0BW]>?I{Xºp¦«1¢â§EN}˜¤»K£Qþ¨“QÎQÁÆ­áôÉÎ}[ˆ!O™Œ¢ÒE¨7½þ×(‹OFQ/³à›.®ÏàPàMSóíE'£òìÂ`”‰c.yžt§½¸}ü\”¦‚4'…žÿ»ÏE-óù¿`.jY_ʱ¨¼âŦ¢ÝYÑ•‹R¡*ÎØÿ”Á£Ì¹'©Q9õƒG¡SF­=R…ð|½îºGJÊw‘l§\Ù*{÷ÓåGNËå¿®*Õã÷¤'5Í=éçèiêISdïN0=£'½|kN=º©m?Ÿ`Òì-¿9)5òñu® Æ…¨Ý[1"ü©(Å; íÖPe5¥¥ ú£mnÏ*Ë—š¸ "“ã&á¢Pºò[¯eÕUôQØ |¥"aTŒ9Jî ÿøŒ ÅX†<%—„×f¾ÒÜc9Ø`ßL³ÑðCæôŒFe«Ç9½ð5b˜AŽ4v¿‚5ˆk*+gh•×Ë…ž¶Mð¹¿{æõJM)ͦ×™w‘Éøèv]›YsŒ.ÌÃm°ê~šz€eß„/•á³/©³­ö^i‡í•¨ìºw­YyWĴ°µU½ßŽ)înË®w ÜËÞ%í×óN|º„+Å#ຮq‡K!j^ô>ÑÞuNP¯‰#ôñŠî|šE¬WË·ã7A:Ká9Ýí†àËM7<*ð•“­YÇ/Lþà8¥¶”òü 3.A…Š- î÷”ŒÔVéQ²±¡CΦSÊœƒ–hïºúþØ1™‰Bò<<´cÊa±@•ÄÞÑ "J˜c{Œ§Ô  r¢Í=?ÞÕ!”N/̃ÍÂpï3CR}ePC‘JF3ÁßÙ1—éðï¹W‹6€ÃØÞώǾúçtøÑ·´±eþ%q> stream xœí[Ér]·Ý3ùˆ·$]zט‡ìbÙe+å!–èUœ…LR²*¤%“”‡ÊÏç4p‡.îøHÅV©¼ âaènœ>ÝèûóJtr%è¿þß³«#±zyôó‘L½«þŸ³«Õ'§G?Õ2®brfuúâ(ÿF®¤”[9¯;éõêôêè_ÇáDtÆjmÍqw²V ¬¦nÙ¡ÇîŸþKJa-_Ó`¤6XöôË<Ãhi£ þøñÔü†šNX©ŽO›¾›´Èg§GßÒá\\½¼92°«_!†Ïd¾ †N¦;oWWG2JôȱçòèÙ¢°êÒŠ‡-Åu6ííõÔüijÞNÍ‹©ù[:(f)|35ß4gxµmµÏ›«ÝN«}=õ¾šW…Xgæ²ö¶SBÇÕZ†.Bû.8iýñï'kÙ ŒÁv¦îד­¼aÝ7Ô6Qûp¦É†ú~+¤î7"4߈²]jµÖøÚÈÛxµ ÷µ±s^Ý£­)¡BgÔÊÉ`²])aCÉ =›ìª:Ì`V˜¶hŠN½ovµvBu:¨ãmtÞlÒHnnÐHZoÔˆvòg Ñ^Q¦èBžbRÈã{Rˆ ÚÑî àH9‡+Õyã†+õQqB@VTÞ¯Š!gÓŒ¯ÇóFêu²¶g½×Sï£bOk .ºÄ¦Tg­ÝvÁÔÙ…˜÷‘'|3-ìãUs£o§Þ«©÷û“bOãN¾<:ýh£ß¸›å؇=L–3ô`9˜Ëõ–³ ä* @S1[ƒõÌÆ!F%äŠØGî¿L½Ï§ÞËm3\O½Y1£×*ÂãF={t«Þ>ü—å¦É²7Ýïa´p±¶‚¸š&±^ù¼ØŽÅ’?²³õ3ZÌÙ4j)]¢~ܪ³ôOxðÍÔ{:õ>žz¿(à,Y5D,6̬ .2.ãAf­]gñ'’?Áξš.bÓJé¡yì_N¬é¬†FŸOz¾d’~;ƒ‰¤¤¥¨ß¥ ¿Ñ¾((j¿‘<Ÿ¤{¹ÙâAÛÈa=(¢~la´¥Ù½à «á¶w~²ÖPVvpÓ×Ô ê¯¸Ía`y¿gшdSNB2ì ŽnlÇÂ ×›å… Ð3ÝãnÁQuRšÖ%4®¥é‚ŒV¼e÷Œ!Á(d©k™DšÄ(›jQ‹Zy™Ô‰¸«œø:+˘É^O£‹¥›SÿÆŽ’ÇàBåÀ ¤$¸PQÔ}¯Œr‘0·I`³ò jTxÞ¾wÃ~—NuBÈ]îàÌèê (ݯÓ3Õ~¹¸¬mÑŸ¤ƒYat¯Sõ\ÁI6•‚INÊÒ{3SYfD\”¥×¢I\¨n“°mPÖ’°I{Þ JWfOœ$gFSDx>öËò¦P¬æ]Ó@ܦ«™~gBïê¹»NÆÏ0)QàWJ¨¶3ŒDñÂ:CkÁN gØ÷â îÀK“3d¬ìŸSótr6Oš îëfó»ég_æouçƒÙ—Õ Ë‚ìá'2p9Q˜gf䇈»*leapy{èw€§‚²9˜•m³ zMz¤HbóAc'Œ‰#Ôî“v—+¹¿mŠÁމ;Dûæ5Pˆ"£BJ$âê‚CŽ=wI$jlQÖŽ¦˜›LqÆÿ¿›š_5mõ“©ùt³‚¼ñÆñ’¯³R´ù¥0ƒ¥F½=Êîß+7@'dèÛ øßÂñ^2â¡'ôFûP„™þWú‚n‘½°§ؽðx…"YŽð½0uO¢ }YxŒôdªðë4uš‚`ÊÏTù«áš¥_Z’@}”AàáKBÅö·äÝ8×E>¤ð3*AëèÂäÞ%gÄ\Æó,P”ßó2ÈÊE ðÒ¾ÇAB·p­!"¾2ZxzÀ5†Tº8vÜåtšev ˜Çàôƈd´@µÑ“A8³‘c¤{÷–Ý»šc`€/wÿ/roôž«õbá¾–a9mD‡Qiº¬ì(ù‚ê€ÁÎ2¹3‚oÌ †³Wj‘ý% ¹‘Ûh°D­é({Õlbá(å¹W~]ÜAZø³1ÃC‘!a¶òŸœN1ýXâ*±º²4aÒB¨ÆÏ[p 0të\A•9$qÑséü0çdozùø[:ƒÕ†`'½cà¶{X€1 m'h•Ó³dŒàíCåÁÓ$/¥"Ð%hy–5çÇsö•%hÉ,„®(&wäã¡5ý.u>GŸås´óÀ ä»ÏÔRFŠž±ï9ËêU„DW@!Eå ==cÇ]8¨a„OÆ7·gYg/Š,ÿg˲‚2Ú1¾CtÁqWXaÁuhJü¡ŠV_änã7„FJ€LØ;ZM+bO|ºüK—7‡¿‡èè2§ [(Á›¥ZSf£½0˜$wÅ<sQCÆN›¢ÁÜEå|ÊìvpË:)uåvúßï[ Qr ¨hq#1=mHŽây4`i#(r Ù¡€]£¥:ŸŠ¢¥Ú/QÁŠf¢½Ü¢Nš^x«}p¤>Ÿì· _)å4lŸq²TÅ0r¬;ätFîP… o¢ !ð+‚fÙ?‘ß¹ôÒŒÝï¶ôr(³„ap¬Ê²ï8 È3€t‡?ä;Û³æj÷[dIeŽ„"ËþoE–*ÛyÉŠ,‡žŠ,1EGõÂï•]½£"ËI!C©Ü Jå …|(²œ_°wUdiÜÃY"z2•åô=‡Xâ&å¶òýwäí45 ZNů÷úCè(/!@àdöÜž óÆž;~ÆòÀú}:5?k.ÁzŸ6gxÒ\íìÙ¶­?>ÙR#Êó£"a+6€æ(zA“Š…ö¾/6Ø.8½O}‹SšŠ©¶ÔÆIÊ•‡qtï¥W²sÖæÅÜW·›vŽw8{ØpÿËÂÛOÝë|8-|Ìp O%d¦msÉÍ.a!{Xc¥…­Óâ&Ž@€‰Æj ë„n‘¯ôÛ3*.Æ>"mI¸ø÷¹~É$ðœ^| ö:×-{«ŠUt)…ú”º„ü„íK×úv"³Aj£x÷‚EógŸGØ‹ñpE¦Pßù_˜*êÏæøô™Ím>§ÔÅXþB]?K+<\ ®Ï¾2,Ò3)DZþ)Äâ›*wçyʆ-gEX~žŸQ‚J¦3"4…ï]ËßUù5ãµVwÇ÷õ‘‰“ª†dJL¦UU"‡ù¾¥RÅšŠÐwB1šPQìd^- £XëˆæeGAö`‡r3¤ÅN ´4 mFÕ—ê…j‚­ÓÓ;ýÒc.gQ¼Ÿw‰fÔƒ÷se/‘´3ª‹Åÿ)õHDS‹²²‹KkVJÁkR z“éÚbiáA“w±s^ãûfaüEtÜJ¶>;lUWÔõÂÇX]3g˜&ú¤Pm5.E( RM¢O„}PâièTe `’„Ä!v'PÑ×±(–,mFŽ †m’ÛîMž.¤ð3Ø~«š¯Iõ&ô¾äý¦Bœ`säˆÅ·K„ü® £ÃÑ÷;{KT'«%j¨¤ƒƒž€Ï&)$Dý„†ÀíX¹\B”ëéb¤  tF,âõHÜ—ʶV:Bú0u™å(‹tt@ä¨JWÆFp}¦ßýYr|\7ïi Ó– ,9Àî–ÂÒp|¡"haÅ®éôÒW‰X+»OûÑõ÷vÔ£ÝhtØ„À*oÚכݢïÚÁÖò“T ÅôÎ4rŠ.W D¡ú µˆÆÕ_6§­Æå¯2xÿŒëçµKª¿Ä¹K²¡)+§·7¡oHmýù@úJ/Cku)hqáõ Lâ]u;i#^† ”˜7\ª8iBæ'°©Ð‰Íü•õÿ´0æ¼ßŒÓå—È­¯–wø’·ý5X!XnKœÃ³on{£–X[1Âô»2 Õ—Øß*r g‰ærñXv¨I\KGCÄ[ÁE†!#$§Ãù©©Ææ˜ÂùöèÁãÿendstream endobj 2271 0 obj <> stream xœí\Y“U·~ŸäGÜÇ;)æXû’7ÇØ‰Se;†I•«â<À `*Ìb0$>_KgiéHwv» è V«Õ{÷9?nÄ 7‚þŽÿì‰Í‹½÷dšÝŒÿlþr¸÷É#-ô&Ñ)g6‡Ï÷ò3r#mŒòçõ ½Þžìýkûx@mTÁo?[†ßÐÐ +Õö°¹àoóð߇ßûüpï[Ú×ÅÍ‹‹=3»ù þuOFŸ¶Ôƒ·›Ìx̘yæÕÞãkŸ#ú!dË9.¸}¾ ›³–áWé €â·_.³_/C6û¸ ÷Ë}ˆ(Ÿ{vXÎGT=PB Òl¤¬q2ÓòSÅÓyÃö¸}ñAøüxãýö¨ <§”W·ó’‘{M«‰$üÙ#ÂL Q©íÓýlÉÀ#§jˆ·ïò¬ˆAöîïuíÀ'|E>…«ùí9ƒÍ…¯ç¸\dZ™]ÂDK„ÓÕs®M´x–oCáZºÏiV&J<(·ý#ƒñ>]°å ç%À—eÁ¶,p¯“«…§íxÒ$û‡} –èø€ì4NÃí%wZøÜ"i0˜e-jìt¸¾%0‡×P£47Lä—ªQ£ä¥‘ÃMô(PÖu½½2¢0°âVõW'Z8ø¡P.…x,.6Ge¼@Õä&™x_0©f°Q0vÍ%«Ðâ ß…>±&<" ¾×£Z6~võæsœ•òŒS¿Ëq¬ƒYÖ+¥K¤ƒc»Ãg.xxG5ù-ΡôÕôfÂâvzsž…·é£\tÉ•jØtB-¯9õ¢ÓRÞŒ•ƒTòòÜÖú³øÑU®UdG˽V<ˆ8gLUú9rˆt;“–q.]qªòK&<ÆX!?ßõÞ2· ±V­éW¢¦• 5‹%4 ¨5Û @Â?vø„¯9ÎPBÐày°â×Ýœ'£Þ¥-h‰½¹†:kk‹óÎUu¼A•´¼ÌÀCs0ß§Ô—@¦5½ñ%éSÇQ«èâ«æ‚%>™C*-4­ÛØ Á¨!•Žˆ6½žgnRÄà2 osLÅ’Ÿ¦¡ Úñéá2ûÍ2ûÕ<;ãl4$Zi†3X3·A $b‰òuÒ2!÷]w¥Ù‡kÚBÿ!.*ðôÒÝË)³l]”4«ÌòçÕ0Ç×—„„`^¥ì®l)Â’É\X„àIä4ÜÞvätµd©¤™µÜ}åJu,–~L¹R €“»6.Ìaí9eWSVó£|§kf…àáz6 Š•rщº<¥¢$g† (°_ÆJziõˆ9¤B":yvq!ÈD–`(À€‘†[%¼Jž ÁA÷'Šûh•ð ¶M:‰VHÝv•1–^¥L–¦Á]禼³AصN”šòÓï›;<Ùh¡’´„> ûÑ‚ÄÙ2<]~³Ì>[´ÓûEg½©Î™‡çË-xÙßm•ŽzVAXåÁÞ.ÓK {jç°†±~/ÏE‚-¯ˈ˜|A üG(ý˜çyš²±»B)á÷ß ¼£clÄE9‰BÿM6;üA·Âƒ”!:Í«½0…3¹Ê5Lîf‚§M«`A‹¹>ûàQò<9zZÖÞd/âàT{@ªÎ¨ù)²"~£œ Êʳ¢ýRK;»ÂàRUÏð%T¥ØýÅ…ýÙa˜êQË´l¯°ótÞN këâ6÷Á#ŽÝ˜h$eÈ)3! ržÙ¥€j,—Ô8KðæR´RL%´ó Ÿ47w;i’åUµ6ïvÚB§Í зˆI©Î &äl"{ó!sV€ëqʦÏf8gÓ£I‚”Œéº‘I.3U±¢€¥‚K¬ò“ïÒ&öØζºCfBœDn&|bØbC¶ 6  Ì4sk`Ð@ ù[à¥'Ô` ‚á1·ìa;F«/!n\‚vàBcÙ%hgŠk¹I`æK[Y\Âgwx „½!µ“­ÁCcÎ៊ðª b×-ÏÏå´Þ'Íž7g_/³phyÜ(™ ¬ü …ŸìØ|œšWÎ[ðÃ2|^-È]›Ž«¯+f^ñߥÌÌð­™y…Ybf ºÄ‚™Û{07îiµGÆ’î¼y¢gM,™‚»hθÒç9Â)}FáCªFô¹êÕãGÉ}IJ³s-N<^fŸ,³Ì~P2b*ÀF[yT=íÞ¢Ù‹j6o§'Ay‘ ŒßE-¯—Ù,'3i±‹Ô{aÎè>LVḈ,¦à¨õ¸ä¶’G‰| 3­£Å…AUí¨aŠðÈn*;ö*ô3Íc6£m‚eváƒßhƒ€æ0µ0`ÆÌ37laÄ Œû WN·Fx(§]#MU %…*jëž–4Íê—ô´XC D»zZY®ÜÓB³Ó­j·­…×Ù˜›gmj1`Ïqz_žZ¬["”%EZû¶~ÆÔy¯^óN£ãfj(Ó’Z $:Whƶg¸zSKËiHè!m«{jU}©z\´´CeEjÃ@+”¼Ï@yPé°ÿ¹”ðEÞQ¸¢3¸×YÑë€:Íwà‰rê‘~º G2š6q¸¢ã„?0ëœkl§¶ÏL2:2¡™/@7´¨S7ws2‰ü\ÉeoíŒî¤ìG‘H˜—MBÜXËoÕÒÙëuê9}ÿ»˜šá4¨&MWzS1Aô´÷æÄxkÎï0E$µÆ«+T §Xï÷ 䪩(sh— äøûH@ wê*]\‰{¿û²#u™ë±ìH}ãn]v„" ͦ²²ÇÞÿ¢áCRÔÕë0t6xxÚP \ç fÞÒg:½l|›Êý–ÔÏTåetÚM/²®#Ÿ­ýÂLd¦z£Ðe“fÏgÙÑ;?ËǼ“Ãìµ–|ËŸ·ö.æk|‰aBëé¢5Ù^[/`¸fÕ5ܲèêæé_¦èª`qèÕ¡¥è:ÍÜ¢è t¾2—÷¨¹ÛŲ[Ý Âtîî¢ëÄ ¿lÑ•Þ0Hh¼kRâåÂ+Çcý5Þiù•jUa#%³KåW âH;Ïܤü*éý8=JYüêÙŠ×_éšmtˆ¯]€e×PuÆ:ÍnA{åos ‘Z¹Š[¸«ìTb¢¬rcÖú^ýUù\›VÜoù5šAD=ú¾.üöë¯ízçEsöÍïõ×û«¿V¬ØpF"½u`s,iÕ¯¦ÂéÔ­*œ"µèßCSçs›@f1˜ä9GíúÓÌ œŽ²°1x÷qÖ7oã5âPx‡w^ßÔVÎé^`{•®N §¬¢¯ÁìLŠÒFÞvãƒúµ@ ±øÐÂó<ëL³*W(‰êKB⴦ͮ^ð£O6hs‡ï]k°± ö’4o%½×ÎòÒ.þêïêh„jÕKWirç·ph©? Ïj¼›KÞÕ55+¸VÂv¤dJÙºUí¶NÙ¦ošð5TZÔðr¡±;*±~i®Ã©ûκO÷q2¾ß§¨0¿9S¯%Žûa$Mõ]—uV>'¨XgV&ìèò‚Š;ÓÒ#W®àƒ‰áÀ™nv7'7t4åk3½<Ç›¢3·*©ŒàâÇVSÇ(•¦î™±hï R=ϳÑõK8—UC)uaíœ.¹Ëj({gkW5Z£®†¦ê%¯d>eìß~w»ª†jò¯CùzÛäi”–DÒªŠÃ,ÁÚ.'Ró¦”^¥%}xŒ^Ù½Òå¯mEl¶Ôb|‰úŸÎ˜VðÚ%ª]¼ŒÝôæÂ[ƒ‰JÇM©AÅ«|èšQ¹ŠTc¶«(QKU¡ËŒšgn’‰ì¡ɳÔ÷’®÷æ.aöøv¸„p§KèìàõÒ¢@ÁRúôUi;_gæˆã×|œlÕpÄ„‚_ìø.Sô½lüÌ¥êçÌô+b·P¥íhÍíuÛKG}®Š °jr|”›3îˆwzU׎-˜Ê ¦þVYzj··¼[„ÇÍ_¥õº‚¨¯PmÈç°>e!ßgn"HP”.† ½w›¼Š0P»Ó‚!lÝòaª^§ñ¡§Þûº»¾m8,Kr|Bï*’tÀ`ÄOË7`FöóËPÏÙ¾Ýû?Ä<ÁZendstream endobj 2279 0 obj <> stream xœå[Is·¾OåGLå4tyìË5N*K¥’Øæ-ÎAIYR”EI±ýëó= —×hts8ÆTR:°ç ýððöýÃV µ•ô¯ûûêf#·¯7?lT†n»?¯n¶¿=ßüæÒ6‰äµ·Ûó«MyGm•ñÂI³õÁÌöüfóÝßÏöRh«LÜ]Ó£1.è°»¤gë’»gx2&Ø´»#hÎKC+¬²B«Øƒ­ ±{ÑË }Y¢„Mn÷¡à“ o~OÏ.¸uYb„Qfwƒ}$`Zj¾çÛ3„µ ï#{¯,ðšˆ&2R0»w­ÿ=böÒ»Ûz•Om¥×ñŸç÷ XĹg’P†xx~~}‹7•K:†ÝWãã߯Çóæ‚?Ò£×mòûóÍ×´“OÛ×w+¤ÛþýôI-‰Èˆà¶7€8@Ô¹Þ|»(÷šòNî@ƪ©Üß´½ߎããíøx3œc÷ͽïšÐÃcáq¥¡Þ‰`\êyü%e¬ˆ!=D¦*CPïüø˜Šâ¹(mÁk„4¶“º‰ *{;®~_ÐEh,WÇé %¤7ÎrU§Síµµ Än÷J g½*‡yìê-; Ó;®Ž~Â’ApSâÈo¹Íìq6üšC½î5s6áùkŽ LãîuàÉ ˜­!î,“6ìvWж6H‚Zåï'óÝ[Ó q·qQž „É·ÜY8§Óü\œìüâCÈÜ¢’«t „#Yee'gÒ*Xþk0©¦àA(唲Ÿî^úX$uK›Œ­?qœÂn˜Û‰ÅG¶¸ã¥‘!«è­Â¹Î*–”øíTÊÍ£ˆq}ç±ÕÄ›Àðª-öÆû1–-ãÙ ›C€¤À =‚U{EÀe;%ãûY¬4ö€á¥ƒŸZ ƒ‡ÌBÅr0@Œ¥q³QI… :ÈZ0¨©²€¤p0BvÁàUÓ׳`0úoîÕƒ[Àâƒ#Kyü¶¹Ûå¸ÛÅÙ4œÔ œÐÒÎE‘’Ô½d S½ra÷SÑãhmQ¹|;jÀ;ÎÚg”/mí4£ƒ;©L3wÐpØ}w¦]Gŧæéߌú÷O |:¡*iÄ¡âÖy„ZÐv³Ñ ¼Qn€‘W…ˆÚ a(Ü}žª´÷R èw»æ{‡¥y[ƒõà "±c¬7Þ¢Ãz ¾tÂú¯NÈz"ß’¯ P_8 ¸áTô÷‹I& ³€WáK^ !>_áûdè»&ôýýr€æp·†š£Ê±N—”Òrðê0&­òi9¤–°¹,­¿Žt|䪻·Q"¼u™táÁåÈ™™ÌÐO#ôŽ¡ßMÙ¨5tÞð1 &´¡ð‘%﵇ó¡¹àûññªZP^{°:ÎÔåJ9ÕCÈŠ/šú÷aÅŠ¡vÉUIá~¶{ÔäuÓ›¿ŸÑ">™¦ÿb¹ƒ7žÛl“-™ 31%Õ…Vë˜3~$«ÎÄ!Ú"hûÌð) zžI••ÇéŠ7[Hø]¦>—‹9Ê¢5 ”ç1;e×2¥”ë <#ƒV“´‡§F9‘WA9“&kX&Õ%XÈŸt³ú)Ç“„Ô¶Ë“Èe#‰3)Ô¥_טjwkðlj>Ç/R%”%w¸pDX“% B‘ þ<ó§©9Õ²•V˜4tÏX¥Ë*Ù¬.n†¹ISÕÎ:@«SèëBõ´èçhîÊr)§½“‘€¦&!f³–ÔÑcxüTq½0êzQÖ Zºß¯ÑùàG÷Ê®u]‡Jÿ‚–CMµãåúUAb£^Û§GRò… Ep]oËõù‘헺sÒµ <6àý¯yûe µ_œG%nNÕ~i©Jîº ºÆ&'[:ýE¡Ê!KèÛØ?Ð=]qÚDÇI+‰÷I>etÊÚú„ôž•®¸ñJ‚q\ |ÌÃ4ãå¬ÓÞ¯ÖgçžY³•ަ‚jk§ÓËWEP¾ÒÇ}èƒKš6†h 1(~‰RŽŽ“uÒ­-ô‡Â¯Ñ YQI ’"“¿¥%HS À9Ú'/­ã+2-&i™šÁÆi‘ìØT¾f}_Þ~ÉÚº¬ñûbbx=ô§‘ßÙ~ õu•â£P9ÖqOUÓÆÎ6…ƒyÂs$+äŒÐ$1z•–ËÒÌìâ’­ÏqhwI”‹DG6<±Cîˆþ•]4ÍUZT&XHvÚ‘ Q©­… ŸÎcȤùòÐx¤àD“Ûš„°ltŽGÑ’õ£â¥µŠPà€Ï4}‰ªKR¾“´ Ú´v¦tù2^K¯®]… D8ïc®Â(JgýÝvzöÄWa¬F2ãã ª‰…«æFC’IØyÒ»0VüªïÂdó÷ÓùÌê3¢ÊÇ“ucJ»jªË0ƒ¶jªj–^õÅaSa¿¸œó›_˜YjJŽÉ[×>(¤N-àdåÌ@æñc\zìŘñÅf8xê{1†ü“7ì^L9ªŸ¯Å‹Dí)²+v|6æú¹‰ívu6Ïþ¦KB¦®âú<¯Üo§;å—ÜêCšœ`”rKê÷¥pLƸmÜR(êøœtbï%]«6];%¸äƒ]»Y4K^ºñaÏý74íˆ]Æ zæ÷êáxáía¬CÜŸLøa{j?! $À•'U ¡á¯;«Ò*bø?™á" òcéwÊ.Ý·‚KPgÑ9n$@ü9*n$:Ph©R|>^bµÎ@ù¤ÆñæÉæ²Þ&T š#\Jª8v¶¼JŠóí«´zcö”ÁMfÁ÷ÉlÔij&M>4Ì^êÂ]4RÙªûœÁªÂò#ã~_OÇ…^5áË8l³ÏÛ{±>ì–¾_¨G»4Û»ýe†¥völÖÃ篙ý\‡ˆš|C]Ç'O!ùè‘!}#Ôtf÷˜‘a—Èüî:X}©ZΉ>Ø©»¿¡pcßµcÁR訦 ´»S~Ò•]¸<òºÝØê…vw+Ô<3‘†»†Ï oIȃAV%¿MGñ9WªW,Ê,ÿw…AϰçЫ>ùDêÁíw_ÚÅ>´Ë'·ß—:²r4¿ÖèÆ ¿î¾VÒzÑÑrÞr¥Yº«tY¦M´äWS¿WM†À°Þ‡ ¹tHÝJI=²“ð/ó’²1 X#¦‡<â% ÈTŸ>¡>oê[ûj6›°êùOã#±On›x êžÊoÒ׉ý=äçñÓ/ÐÖáù¾ÌØ×é!hì$Cóý?«aùs#ÕS}Ø¥g²1‚x~¼l€ÎÜLeó˜›ê/ú›´¿ÿÃ&ÿÛ6Iuà'ûHÕZLü‹ï›Û\4 }Ù\[%¤’ÑÇî+¡ž¦çÛüPíVr¿Ý1~×v7SÀ»³¥ÿ\?#l@duYüËvBßËàGã3¢Üû\?#ÚGKM sZûš’Ÿ;;Õç_6ç_œ˜lÖ¿l’ò~„«$:˯÷Â¥‚±Ø‡¾·[îä:)ŒöŒW 9N|½ù·}Ë"endstream endobj 2291 0 obj <> stream xœí=Ùn$·µïúŠ~ ZÁ¨Ì}¹ADZbë>9A03Ò,°G‹3ã ÿ~Ï!Yä!YK«ÕÊÌ8~š:ÍâÙ²Nýcþaø_ú÷ååÛ¼>údz›ôÏËËÍïO>ûVx¿ñƒ7¨Íé«£ø¾áœfcŒ„æ›ÓË£ï·ßŸÀšÒ0f¶oq,¥¶Ânoql­’Ömïp¬4óLV0W8ÖV;'¶¯O„rƒç|ËZJ«üöŽO¿ýŽÀ>/—0d0'˜ØþH@.ÈcÎqi?X§·/ÃN ³°Ûk˜¶ƒ6ÎmÏÈ/´¼ÕÛWaÅŒpŸy×S^Uë‘]¥H%ùˆ<ìEmïÉ<¬Âf´÷k4aQŽ» k 7h§Ýˆ6†nï"þ ‡döUšu²bÇò¸´#Üèù4^”N·qAÉ8…¸"ž%–úšúþøo§:!4ŠØé%ÀËcÄOWísº<1äx"¹“ CiRX3%“aþ$ò\2ë§EYG¥T 1º3*@S³²Äü$¡~°U )P 骨ߓ1Ý1¡óœ^wŒË¬5b°ÒT‹S•žàå€ ò@»Ái1+f•† ^™ä:ÿn» ø ¼Ûþ ¸wÊ›ÂqØ FJö­dµISf0NŒRÀ9×Ü&3f¤Jo_|ËKÁ™@eÇ'q®0}W¦#„Ô`ÆÒ æã㋪<]ûññÄ\SõèÌeaÀóª—´ 8‰² dôŸ°¢`Rz;ˇ¨hZq„ÀßYU™Y²?´Ú*…Ød)ÚºJb5À5dNÇÆÇÈÖhg»Â=øÖeJƒwýàLÍãÞÒ¸¨zÊ$Õ{Ý¡¬¬°ìeØ.èñà¥ßþu»ƒ‹KÔ ÈÙ-ׯlí|^á, ;¯`çq_ø]ó-?åõÈ,ªÞT{27oâ&$<¢§ .;ãõè~þz÷l™£²H¥˜êöE|¤fª2yäA?DÎ;QUƒñ³†*à ÝQQÆòe*âÒn7/<™,¸µzÆÝSNœ2däm(îCñk¸»/Nþ‚†ÐøÍëÛ#¶aóOˆ¿„Щ»‘bX¿¹$3Žƒn.޾Ã91pÿ¤½D ÎÍV5MN”-ÿ‡¥ÿ… ÊËcN6RfªÄÍ…øCUÛ¿«ÖÊPíê5[¦6jðŽKA`ï¡.jA¤D 92̿⣧‘ çø[¼.›úàPœRRl?CíÜþ¹ÌžN|Ufÿ> p]f¯Ê𮜗ÙwàÄ058g‚÷J³×ågq1áéRgãÜóòÇ ªâ~û›4‰Á…”à'p#5>#ÀðëçÞ‘-È- w“øT3¸n¢"Ž˜ßâˆD@± Z˜–cÀꨣ¸*Y‹p†ª„:Aí+ÂDØÚ(ÂâÉð—à¦Ì>/à Àdx6©‚7J7€üìÕ¤d¿(ûý8'ÆÁ߯Áo*îOI³Ç8uNšÁº- 3(Bõ÷ߟ€‡éVÂÉ}=î >äÞ±~]æZ¨–¨Ò]þœ5è ÿct|q²è]4./ö¶ƒ:o7«DÚ,‘²HV[¦láèf”r„YPˤVLÎɪ˜fXã§2QÕ µ¯b2XI¥òŠ|bEæ‡B­2Û¡©½†xÌP4%Ë+4 T…x‚ÚM !H@S5hr¦õžo[5/Ú¼Äè>ýâô)«ð¦5&axÖ:Á0{_†—Iz!Rým™ýmRˆ-Y™Å xœþל;€ìÒJÂ@y©knŒ@{оÌpÀ ˆ 3ôŠÌAðÄÄ“ø‚Î,ú‚<ûõdèó¶ÀW¯±z–LϯB l ðQK†ò]¥ýã ¤¬àeq"¬s"Èz̨•Ôn-:Òà”„Ž´xhtôug|³9& ð¶Cí¢ÿ¹Xïè…µ}œ“âƒò;û¨‚æèsiî!çƒÝhªyQË*ÅË@*>Fñ¬¸”Qņ̃¦xß”áuû³”(|HÅ{–¤Ìêäa®Ä4=< Uà÷¤¥X"FNÔXf¨ ïµ/–Xâ&bé>˜&R·w!§‰‡ÚÀµ‡,`ª+»\Ù”œÞMUBfØÛ–„ö&ØÔ4¹bP²áÕ 6~ªp'˜ÓÝòÞ©JÙ4œÖKh=¬‚¤¥VãTuPM”©U'CUÊ” öU ª“,¬ÿehη­·#‹Õ•Ï,—ã ×!/ÚÕ¥&?(®gB¢Ý„lRûÆhgí‹5õ½“Vù¾ë‚˜»\>Ê1LŽô²¦ýÔš™óRÎêcDR¦êI~™õ–„3ç­Ikg§ã°<Ì¥6±€†´´Á¸iÅÞ;- ¶š–gFE®”;Cµê¾r«ÁÙ`Q7€:·'e/*ºä#çÚ¯¦ŸØ®úS›ñçµÁàë"b<Ëw–¿,®Y–Œ†³Aƒ,?Û}VÊÇùoºýtu­Pe¨\ßÕŒ©)æÓ¢‡é|9c#F{ÀBÞ’7?Á3Úm‚P”Êu ±Ö@®õ@ËÀAÙLS‘*4˹Ն»A³ä^‰à¾¡ØäY"ïUúgK „8J íýd¶J3/ëtu)Qa@Gc#UšJ†ªi·_ e4U (edgªÖÎe%<_dSõïyÜ”×fPô”.àáëSºUaë÷;¥K¸)¶Œ°nkv5n÷­´6’HÒ߯G¥n>ÿ¥á±/Äz¿˜„½™”æ·­`åµX.#æ3UobìôŸ>z^+ßÄÚS޳Éþ¡ØÝ–c¸¼Ú}Yš¿¸loáÏkðÄ¢¼ìÛ²Ût!Ê£Þw1q·½éƒS’^þ<CÑü‹xò& ë5Ði`<µÃAÛt}W *ÔËÇq³†:ïaUü7ÇÑ%ô!¢K"“Ûž¹ŒÄ”çxŽõ•hñÕƒQR,í´ƒ¡›‘øC2TˢǘDë«ug׎Jk“øiF¦­I<\l*>ÞØ”„w‡ŽM|Aã‹ñ±$ íîûbtçpm#ÓöÐÇ Í\‰Íüir…bnzm5«œT[Q3m]$*P•þÚå"Ѫù4np<-Ç~Gw>V ºÃ§¶ˆùC‚8H7ÍÃ}+î ëÞžºÔg¨"Þò‘Åš]Ã{ó¶Ï¸Û»Ëvm—ÚûÓ<e]kIKÀ¥daòpë“a1—%˜!–®+ƤÙrH÷l¼Š$' ¸iQgKpÓŸ›U*´ª¬u¤ÖÝÛ|œý|â‡y?/ºýdƒLë+PQÍ~g}£í‘ÀÖÝgî®u÷²jãóK½—¥ð•WE»ÈÙD»ªâ•|\´+€3ÆtœY¹+ò”uØ_Â-->þni=á}ÝInÌßÔaæ|: Ý÷ŒDq®±* $=¬t3CµÚúÝİ©¯;®Ü•ødŽH~ßJÞìaè—;Ê„‘Owô™CC]’×9I%µѽñ!ÆW÷jõ’ |[Tïl¬ÂkcxÓ†g‰ØÃp˜qZ¯¾¯€uc}m¹ZÍ[ÒΩœ¸““öxõ¬Z¢Ö^fø7ª½¨©º>á,P•>ëåεÅ@}]*$-½üÔ*‰ '5çiNX¤Çw²)¥*¼>ŠÊ@éø~—Ó™“X¶Q¾³s+·¥;÷àKaÒY¿Þ‘«O” TM‚G(Iç9aÙWn¹|„AyÚt]%3Ù|ìð·u|½eê´g,\8Ä‚¸Íì~7>gû„ Õ=•¸KˆIQ¸»ŸßÒ ×4ŒNæí·´ ~Õ ŒA!› T¥¶+/0®Ùo|oXŽo0>þXe:Æ)ï>UÚ/ 6¡iÿH®Š„ª%êcìœñƒ_5û^òy¸e×Fœº²€©ÓéUÑÀ<*–÷˜ã•»¡eÿ¢ ßµBüßžNÿ¡³ªÙdw÷ÿ©Í~_ªž‡4èe·Ü«Õî`ǰRŽ8z°´FÔ;ªÒ-±ßíßQ“’¾S¤•‹)ŸLòûE]P¯Oéýì[I)ÎÉ”ö„cŠGœ:”.ù¸ø`Ç8‹g®y˜¯Wp 0¹B¯à¢ê÷ƒî5)Kªt9cY †$¾‰žN§/ \¬C·“uö^¹.$¶£ Û)³ÆÖï‰5Š+Y1G'®3c+—IqÀÅT¹m®Â8Cµ4x ÆÜv|­Kì|ÌüÿÐ'õÚ÷" òn7°K°Ã½%™çX¥§¨S¶IO3T¥yöQ7w%óƒc]Õî ;ßJ†*ÈÞ(nˆ‡´¥[—Ðeð=¯Ô®+þÎŒo~…~]$4袯&JË®d$⸊¬rù„¬Ñt£Y0ìÎlÐÜi›J}½Ô,ɤL§ŽgÊkÆeìÔ”÷ïá4ÇVsÖkÁlìÚfœáÚÆ–kÜ‚úù &tŠ‹-[¯"¸òãÕ™¶5.ŒCEOÐ5¤ãmhý&Z.ÆþmÚ+WxOÖlpRW¯Éqí…³Á„¦!ÚXfGÛ|•‡Ed¼´`°6&Ò”u:Ï,ò¨Þeæ‘7@/…K@ÔåK=í㺠¯Êð® ÏËð]@Š[YüÞ”áÍä ÏË𬠿.ÃË2ü±<ízr]²^Q³g?è+`díL;Ò.´›à\WϺ1«´lðz¾O0ýå\«×™n°MËPiÁ6Mw¾ÍM  ¯ìDSÄЋðGÒo—®BûðÆŽ†]0íhø Ÿï@roÈБ7öùäu¿ËÒÙr 2Xwó\ÂÂóñÍÀDJ¬Ÿâ#UÝù*þÌj9×¢7µ$Õóý=SKRn£‚y†® xŽª)/¶©ô`~êö—WqH9»ôD'nÓv[]h£¨ÃíN=yãûmóÐÁó`½¦iSK°Ýج´1€Çz‡ø‰ÞÏÝ Q0<g»áTÖb—È|)’ÈøDŸá ©mcO%êžµE è/ßи#”!>œFòqCu·èE!Wð3×Fu¢E»àÂ/Þ„EØjÓð¶¯é #ƒ˜»Áýà®Ä¸¥tÕ—HÑ5r(¥@y§õ iòNÍÞH†I¯^P“Ù+ß­9%â~ˆß{Q|ÎͲKQ[”ÇŠaãuFë‘Ò' –ZäfT»¾½F´ÂŒK¡œDS+TZt‹3™õÆÉöA^xÕ©ùÕ¸¬=|“Ûhþ½ÅVÍ šqÚsž·ns£d7ïZ©¡§MŠ)Qæë,vî;Ö/tü]j=Ü;£wu4¡£²“ª»>âHÚϘ"½äI°ï3_ÞЫzÍJuî«;ìR-ç›b?ÌáÄÜ=-3w€‰„Hïô›£Ó__}‚.ˆ¹ùòÓaI ù4F0 öI7݇„6ãž„¡ Ø2ÔÀF]eÓß¼@ç¨BQ€ÝàYZ,”#È •¥L'ÕF¸6çÆ©ÎÏéZ‹ù@öaâ<¢`†GÇ.ìv·¯‰4eߦòã’ïÕAo~]꽂®îÍ›üLÌ Kóç2{Zf?/³_åÙœ4*ã4v;ãVi¼ÄÊûqfŸ¤Q‚ÁŸðú–µz5iŒ‰îBÒØ%l§ågoÒ(×F–SŸOÅhšï>”Àv¨tÙt[-heÆK®ÞÍ€iüj0^r3yb¾Ã áÙ®|ÿˆ‹AunÚ=„YQsšïΔH²‰O@5¸Ù%±&© ñG`¤Xˆî{Û—Böøu„ð…¡!¹œöÙ…¬/|ƒÂ´¶;}™â©ÒÒ°Õ~À÷Ë…_ÐÀÀ-~]™ªª}ßåÏRÌ»ÓÄ‚Qµ›¢"ijåBðüã4‹¹¨µû÷ˆÕ¨Ÿë¿Gd™|Œ¥òz3™òÂ7-º òIø6XÞÑ 8|–ÂsCkÇ´ö ävŒñºÃkGX2Bš¡3l/‰G@;©pLט.QÏ™òXDÆ Sqwðú¯/q,WšPÿµø"^žØÇ“[EI\çöõäÁn~Âå_ð‹S_q¢ög·Ÿ„i¿¾åuxM‚Å!J©yy§­^üzMø¥ãK!…Ç^LáqS,PŸEk@¡vd®fÞW•[ëëuxeÿHéU'œ˜L¢Q­J4Åëc)™g͇w¨» [Ù­Ò• ªñÜqB󹤜ù¼OµÁuV@W§ ?Ï`B«4XÏ—œX·î`yt¤Ñ<—å(¢4` 0C yº²¡c҉ãJ›x=—÷ŽÃl*ÿrôŠ\ã˜endstream endobj 2325 0 obj <> stream xœå\Is\·¾³ò#æ8ryìKù;.')§\¶Y•Cœƒ$JŒ.2)Ù–}º‡‡ðf†zKù Ľ~ÝÀà» gbÃñ¿éß—×g|syöÝ™ˆ½›éŸ—×›ÏÏþø•aX°ÒêÍùë³ôØ!˜ÝX§˜pjs~}öÏ­Æ™6J½eÏvœ¹`$w[YºEéæsó_çƒÕ7†.¯-ÓÖI áü–ü† ¤wÛOJó lZn„Üžwüenâ*ŸžŸ}‰µasy¦7›€%Ÿ‰  lw©˜3›kèqУ瞫³¯‡ŒkIŸ93iŽÂ»—…¸ÛÒ¼)Í·¥ùª4Œ;…YªdÓÿ.Í»î ÏKó¢4ÿZš×¥ù¦¬vÛ—Ð +/Ôhç9ƒ?ŠÍNx<Yž Ö[aÜöý³`Üz­¥û¶(ËÒ}m”ó~û-Ñ­©ßp¡&B¸¢„H×›²@®‰Œo"Ø™¨ß õNré™–+¼dZ€ŽInÍ.¨hit0ÌÚ>%|Ö wùcm™qfÐ°Æ ÂpÏ+ùQÔ5ª Ù f$ë˜v°k®iŸâ ©…ªRÍ) ʨ*Š{fÅÞ¤n=ýPÜ1“¼éx‹6 œÒïºéìE-¨Ö‰!?»02€÷Ô3Ðmëô ”Cp©W½+àèzû@žçÕŒ}°°!ó\¶g†ô÷‰Á^Wüx¾Qþ›‰1b®-R_?Rc8Q¦Z­š 1ü‘IT¦v­¢°È†?B®¹Xn¡émšÎ³ÄÑÓJs ÷*m §éFÁHœ›2nmܲ’w[ôùg5«¹¬tžïñûÄ äêp^G>V óhp ˜’ÿ»=ìLEüÄúÊSdA½Ð Óý4ÈBú°Kt`ô"~¼£¸“]äPX ~/k÷…TœEñ±ÄÛDíÐ ¾‚‡†O|v ”µwÍuŠxP$¨Ôè†;(7gáó4Ô5,²’x¨å½/ŸN!#Ñ]gÔ*HP!… eÜXq_¥!B…Á4vSûè@€²ýõl^™NY|†n°|•²Ô%˜xD‹©(¬|HDcfÿH¥¡)Qb”èä`“.E6õÊîq,b4®tt¬ÕÍ‹4·<2šôÆ«IN’õ\cµ3l·ƒN¨JŒ±c‹ª¢4¨j߀p‘«ªÓ 3ˆ%LŸ((ܦÖS(FËÀ³B‚¨Ix‡œã*áAuS=0¬CÜâÔ)TŒwØm±fõ²4ãñ L]À©°SŠ–ðëJ˜ûíˆMÓP1È.¢% |’í ‡ª@5©̤(j!oþWEEPXâÞ(Û–"ok¬Dæžžoc%¦@ñ=ÁùöÇ¥Ù¿ˆAR’Ϻ9 )ó’«:åRWo@2çêS®2#¡ª+J~0ødÙ¿âGd9Sš®ø)ñ®B‘¥‚„ï*V~åCZOÁšK¸ŒÖ5Þ¹VWuÒ28†"ÅÏ6Ã…%•Í% œ:?TØæØ 3\À m 9ˆ§qc@˜xܤ¤}éN=/©èÓ.Š…à¤ _%™Íkpãܺ| C¥ÂÒcÆYÍ«gùî©+‘q ½£/•q)ºÊp®·äñ§ ÓG"¯.TMû”1…×ÂFç½{à;^¹œ _]  ƹC0Ås1Ø­c`¹€}l€Tž0€” z掇üC*ðÕ›èwÅSüãÓfÀ ”±Ý€Öá”™Ã%8<0›íŸbÐó:Øö"ÊÛy}l%? b}Ž®dà„JˆQ1¡)¿dªL£R÷ æˆK+Z tôÇ_NÙ Ÿ`‚‡ß3œ)£Vu—¾{h›]MSX)¾¼kŽFWxët\J'™s”B¾EsT€1åÜñsT )2à,þéÿòöpu]¦…8R(&u:µC¸_~×Q¶ 0‚bo?@[AP²-âhö] E-œ~ š´ôÃI3×Ð’Ñã’äSU2…+M3­ÝÊÕœB×7ðn&0«åu‘Ñ^'RUƒ˜’ª Æs,<Óm°LÜMqD'LA¦Ìãè¬&¡ 6«Ëqö{G Òœ!/¡!!:ü½¨äX-Š“}÷ v-,ýý•E$núõùŠÔƒâMl«ðNºGüÎ{K”Öôë :Gÿw £šEú¥FmP'«BM· ¥…¤*TºU˜;q«0–(\ü6oîý‘zÓIå÷öä¦6Kí=à ¦Àf@àÒ|±[„^œž± Œ愇B:À_„­ÎþnÒ:XÔü£Iâp‘Æ”F¼Î´ÚAa(¡0=ïÛCÁ½¿…÷ÉGä$iÇ»[èÉm“«Ú•’Ïèyƒ_Þ×R¥cúPž?@ pB„†›’Ñ^4›ëžÛC©Xó«¸é¥Xàu±^£\Ï¢n´9 ¸Tã{P€ŒI†ŽIïóµA+¡ö"O¦›Ê¡¿krÈá+àîù\´¤)!?¨šS‹]&ó‰~‚VÌðjá ¤Ó\²PXaÖu‡ŒÏçŽ<&^Cƒq¡#K~kD‰•K‰°6÷qÛSE-ì’¸¼„Ò ñˆ”—°“ûµSð¼|NS^Â%=Qy)ƒ=4àØÈ© S°JÜÂ)Þ—)ÍŸù}™ü– 8ƒÞ’ÈoÉäžÇ¼%#±Æ¡žâ¤éñ€ððM36­öCÈC^©²Ô_ìÕ­¹WcD|EÄ‘WcrÏ#^)¨þ:‹$Ç)Óôìƒ~ª÷a×Ú)(«+¹<äðØ„(\Iá1ïôRÈïäܔ¹¹¶¿|F¹ôf“GÄ·l$Gì÷ó½e3¯~ªGaÀ¬ü–Í!îà”ØDZOjóOLëiÛñ¦‡ßÂ[;x¨®õf‡‡rlöÏìÜœÑÁ—gÿyxRendstream endobj 2335 0 obj <> stream xœí=Û’·qyÞJùNåÁu6Å î@üDKŠÄ#Åâ:NÊr¥HÛ¸¤DùëÝk̹-CÉNñXœ ºÑw=ßoæ‰mfüÿüâlÞ<=ûþŒùÞMüïñ‹Ío/Ï>ù†;·q“Ó\ËÍ哳ð Û0Æ&½ÑÚL\±Í勳?nïŸ_À˜BϳÞ~‡m!”áf{ƒmc¤0vûÛRÍnÌKl+£¬åÛ§ç‚™Ii½åç-„‘nû/ç0ÀØíü°@¼€æ }|æÛ×ä9yÏ5Ží&!Ùö±ŸŠž L÷ÕùÇ7Z»½"O^Ç™¾}⑳æ ó;ß „Xh²iÖʹí»0†‚U˜½$ý{Ë!ÚŸ°—âvšUiÀ:rú/Âl•⮂yFƉóJ"ž™„  )pË•Â~Áa|m"®-…GŽâAçE^úöüO—ÿvÜ6Í ™íò X‹âF^Cév&¥LõÊ{Š[!D ¸ž´40HüŒ¼‡ ô¡ýqDÁN”PÑa :KxvN4 WeêˆïEBø‚ñI))Äh, ¬IŠBAð…BNÖÚû{ ½kí‘W—k/Qi~†ÍµOçFêI±í%óYgª¡É—BOœï)lˆË¬Ùr 5‰™­H>Ègµ}t#K)ìö§ð›Ç^èDů„ …:·“ª{J”§¤EöÙÞæ¬t:I·gR"éÈ#Ÿ|#æJs3Ošg!ñàŒ)f¢þÕ‚s Dyà Îf.aðMŒI‰Ë0O°Ôºßún=4ð¸ Çg^ߘ%'ÉEz;AþUaÿwDZ¨(PÉ¡²HE$°vÒh/"‚«i–2ˆˆÔQD~Ü͆Ͻè(¿ZðNà IW%N]š`óÔ„`* ± ³M3WNz®I®×xß㜩Зž•…VÕ”¯Þ‡ñfgÂøñÀV<] †C0  9dvjûív`L-‹kËíp^5¿{zóF=!yœÞƒIŸ¨ä  Ê+Õ\é•Uô’> Yê— 0hÖi¯Vcç*qv'!†q[òy2À‡òy¼NÝ/Þêe8ȬçÉf¦‹W X;R/qÁaj¼J\ œ˜&q‘¡*i2§%.¸˜8SAvì߈ì\v}b,®[“HeáAj¼î@ýXÙZ7I¦žÑ~|Ö•ÀäÝ)Y‚,²É“.×UGÂ/¤3ÚWéçì¿Ü/âKí«¸ß*&ôªò \¢ÄÌÉË‚-‰P^”棖Q¢§äŸKª‹‹º”Ià c/j)º–É UIi„:ÚóaÝË$aëg†——~{î-®" ¯àªŸs¥NÔ]{983“JQJ±¹ñn2!Üi® ˆužFîú6ÒÍð?ÝÏñøhYáX *¬#Ô¡hÊɿ €¦³íÖ„Jëã&!ÿYEš?«K¿‡ÏL0ï•ö1Î ¿q 91&o5ñ#-î·Ñ°ÃË!¯ÃŽUI+?.ìH²iÁêéŶåÎÌ(›·êEý¶e½v0âx|±';ÿ€‡æÿ…Ï”ƒ¡³€/v)yÚÖš™“;“T³ÏÄ\ðì‘Ú[_ù3k ¨Â2Oœ®»Æ›lhÿµµöª¤o ¿LÏa[° ñFÉ’õ%Ø€Ö4?’¤µ’à ÕÊô)Ž–4à–ð¸m»¶cßÊñ,»ÂÓzZMŒØñ´š(±ïˆèYƒé¡¤B²Èz­@UÄ“Çí£%e§R–-”Ý®½îZÙîz)ÀEÓ=5«÷Ô TEvÜžZÂX¡ó¦ïÚEüù¹^ämä1¢½¯)ÀE`óQܰÛOø[Ÿ!9ÚWÛ'áŸBÓ[v´”?üØY¢ÆÒnøƒ$V^ìñ‘Å‹ÚWMAëbEƒËÙL• †òhêÍ· T ­Yß|Û©¿%iv·)/ÜPÇ|¨-)€6Žî²jÕ»,ª¦éú.Ë.-'€‚F,´Ü®C§êu~ ¤!u®Â8Cµ48c˜;$ ŒwmÞþüôúç¥ù¾eâ¿÷ú³…NÍ {±H5öOåÀ×mªó2[ ÆÕ(»ãÐc?ýÖÙ:l† ºR¾(4ª‰3T%Zê´ø— ¹eü»k£ñ—ÿ~^`âõ·¾w’øøsA·±Ífð¶I?‚ZžÞ½Í&gC·Ù¼\ðz›­@UÒÃÛfK²ÞœSz!+»v«O4³Â±y’tÃcgëMŒUÑÀ®obìÀ”¡-»¶ÿßÊþ’'Þ‚•ý('a¹ø¼vÖë ,,(*I3XI¢ò}® ,nºîÃŽ|Û'ø»=äWúw¹êSDAÎiE{MGÕ@ÂÒPAÛ! ”¡Eªé¥v6q£9•j¦·Æ ml¢T3$¤z ðen–phëpŽ^_q{Öof™wfâBÕˆ?.óxUš/Kómi^—æ{3¢ ø=+Í7Ý–æUi¾n`ÃÛ~ìM²{­«¾–µÂ‡¹x'H×ù&¥ªFåDºWGã E)É*˜Ü„·ÈÕ!˜œ8“ôÖ)­[®(²úÊdš¿‹ý~ˆx±ŸÕäè\ì'÷‚}Ñ„®¸\0àa)]Sa…ƒØ¼í2ÅÛ‡u9A‚Öã,מX^…_Ô§y†Ëé&6tr_ h¬Ü‘»K®z ìwDo‘Ñ 2b°ôºÀÉY`j¡º¨» >ÏŽÞDûŠ8ªRõÈߥ—Eú ³Ü›è…YîpùÅ«-rƒó°0åÊcȺÐÁœ“‹g† ðË´Š®ónϱb^(G¥ŸjáG:À@ô«€ n%wÈ“®Æ{ 9ª³°¬Bµ,ÊCˆ|§z¸ì Þæ¬Ûš ë—ƒažu¹¦NÅ+®µ_pDÁ#*öàâ<èjw©H÷—ñõÊ©V•eúä-•n*­•íÊ4ÊY!>œP/5”œQ"·%XÊL‚¹‡*L6²NÙ]­ÞÈRV¢|2(CÓØŽÀ>j!ª ”ï¹,68oÑ–CËbÓ©äå‹+, ûÐJ^‹ÒWÔnV¶0K* ;å)kkÇ`õ„±¤tø°®š>+>L¬ .§I•AL8>“6–ýàB»Naß}XaVÒ/¨0ˆ‚ØíàÒ½² Ð< œZ.`'ÄdÇ+Ô«{ÑcÀãê e˜¦Ã…e ^…C°"!¨ò+ð¿+øõ£ª©ûÎ ˆ^ZϾßõ¦ø]Ä['ða£àV´šš,ðgz_KJä1OÙcòŠ8Ãø;úÓ”|ßòQÆ«9Ÿ4Â6Z/Até¢á ]¦úUÁñ÷¥y¿×ìbl`µÌg]B$ Qßð€ÝQy¿î.À~&(ØG=ØþbÁ”g“…ýŽ ZY€—…”Xxï @š QÙ鋎g0a²*œó2,ñ¬h'±U¹ïÁ°?•¹…ÂS¾ÔU[¡­V߈º“¿Ÿa˱=|„ M+>¾QŒc®-3­§î¤êRM¬©Q#pE8Wrò¶b ~ß-4NQâ M‘*ÑÚÀ7r¦o—‰¢H˜Hø[ «UŸšÍ I²þ„d#ß§Q;ÀI3׊ݧ2Y°`¯z™UkžR@M<¥XQdÞmÓÔ3Dú’t@ú/Xb>jƒC+âÔ¶ðj›ñ@©ÇL·…ôœe‰ùLÍöŒBp†Zh 1Ræ'MJ9Ú;ð•Fœž€uX6OoÿóÞ¡¢‰$ÞU$šë%s¨é‰ÑC˜©¼Mnõ4•uX–óŠ~UGøœ…©Ú€u‰NϬ³8ùŠó‹ð˜#0'dxçønÛÕÔEŽ6!¾£æÝÈõ¼v/}Ác63›×zQþ £|®áÅì–š[_¤¶ˆZL’ÌRG“ìÙWÙßÕlÚäiTìIÐ8Õ>µ#t›è°èP>×1éÑ„€u*©Ž ­%¢A]Ê󘪷vîcž³‰|†I 2SRc G¬ˆª”OÒGMПÜuÉöÔrä9 Žë̱¢Å˜©@%ìg-ªÂ~‰Ù„Œåì“);êr†•§Ÿ(¹Ú²µiÊA¤Ù+±f)ø fæU 7èÊq[ɱ‚’­†¦+ TQjÒÌÁŸ GÑY5¹}|¥T‹Üï@ù+Õ€fªZCªÌ©Ñþ›0¢q-×ÐൻE°c+¢“¬Š5‹`>ï"é ŒrÃêçQ@:¶—Q {ïã:½ô IÝSÝFIxÈD7¹lX[Ùu€ÁY‘¶œðgqººE¢Ëˆ4DKi6ÑŽˆÊ5Ÿ³•°N5‘ÚŸ‰§ñU×_Û?_ŠƒhÝ —³_m$üÕ8$Ý<]ûÃ'­øáN >hT+C]Ÿs‡&ƒàÕCÜ*Óšå“Îõk¡ðƒ‹=ÙÙ#&ëjÑëžhtñ½¼ ŸeAªbYÔ:Uï£ÊPØ‘©ÉޜƢ2]¡Ô[ túTÝyþ£o^F;XvtÔĘÄàþd»D•¿_\û<£wÖz±§­‘$à÷Ìà˜ÕU(Y+{•˜uÚÁ¯†bihÌ\SŒˆ¬žÜxô༹°>ž^)W XŒ˜¼‚ßÝØqÿˆcÁÿâÍÅ…Ïmù¼,K½UQe©ú¥}¶¢Í˜Z ­# ¾[î…VÊ dµDWß5ñ¼lÐñ¥e¢Ç0mÈ»@á PLËOá8’ª‡Ó³oxÕÓïƒ-s·àDoÊtËù"‹w2Ë{Œ_“˜«\\2Hõÿqy‹¹ÿù½§ÑÇK$׿GÑ s†f…ˆEþúE›yõoÀ­>< Ú˱–ñ»Iû5LžÛUç}ìk`hˆP]»‚ƒÞĵk¾¶Ò$´p4ü6NgËÒƒÓGÓˆŒm«ÔKã„Äí]7_Î3X${»22rïÌ07Y“M‰ÁДô ¨œ}y»âú{…CÉ8ØÖ:ÐÄáM‹=â£äÁ_ e‹®ÓˆãÕ‘½õixˆçæšwÈvÕ 1>‰êòÛo×7?¸¿Ñ™÷….JJú³ÒlO´…æ¿·Mm!^ýºl@|•{óá6ÉñÏ£‰x»‘k†Õ½SχÛ$ÃÁKmÌ“Ž‡Ûþ£Ìã²ÌîËÒûMéý¼ôÞ-½ŸåÞ2}m^Õ!Ó7Lá¡Ä¦Ÿ%2ˆ-àuaúw qÿµi†-…{¥—ìX‘^r ï¿óc唡•«¼ÃÿÀxÈЂŜyê8´óŒÕxÜïέ¿Çö_;6Ö <³sÞù'ôp!h4§úøsÊÚvsž8Ç ]ÿvΊ»Ya€´YR1¿Å °È6{™JEãD„žÏ!Ÿâæ† 9£¡ ý:ÙàóL9Í×ѧ‹ï4•#‘ik¸«=·±´s>ð~ƒÆØM̚ц±„ôTSððñhå8©…—=Y?LÒ;¢¤Eú?FIíRw h)™ÿ–H½ÒˆG{‡mÀ¢¶¬Ä¥§Ø† \¿îi€¬’Ä,Å6ÌpŒŸA% ÀŠ$õ¡“ðjåÌ5§!‰iX(Ér;šßü¼4ïD>ëÌ^:‰•¾Éô—xÓó”é+ŽîP=ýÓ°¦hïµ±˜†p‹€9 "rèÞ‚Þ²ºYbŒÿPÌîý–_|ï§•1Þm²ê˜¿ƒ¤Ä#4\Ë$Ð }ájã¹y)»BTÑ…cD¢ÊüŠøtz™Ü—"|#¿âÒ&YÖ’Ï‹Óä×ሒY|—Ð\’l˜Á¥i¶—˜ô™É×®·Û|¬¿ì¿ztŒ·ŒÊ•ãÃSAH8îVRA¸òóƒJö`±ÆyJiÀØÜæ'rýˆŠÑOäbA ÎPôO¡Ö;Ä~kéùuC›@³•p!`Ö˜•·|67ÎaõÙµ‘3¥0Aõš'á5À^Ãp5œ`ƒB ÔôBQþ¯ý|åBøFŸ- K±ó¤ä'ªs®äµx{Pô÷§Ý°ð²§Õ£ù­ƒÅmI -¶bÏ)Ñîö1·ó&ÔâJ{jqFï²<ö3¹ e»§Ë19‡e$›oLÒ1ËDŽÈ‡ (‰œÇÛy.g]ãx*œP/[R£¯ ,&kA”à§pDð–ØðõîYP±íD”3^£–ÖV/òJ@ Ð1ÓÈd¥»™F[» oVxЗhÿöÛ™i]÷Ëžôez8ÄŠ¹ú^üákÇàÒ3`>?‘oüœ;¦Ã%Xëã0bíPùOvà[@e±°!ýy’ÎAYφûO á±7oØ«bãF0t ò€tjfƒã›iÎÞ,rR¡÷–®pÜœËÀšH9ßàÅ•ÜqŒÞ2Ê”Ãâ>9?Vmy­û‹¸ÀÉiõ‡ÿv2ÊíÑQê`FYãÆŒõçÆ4~ãu±ˆÝxUb- ²I\œrìÜ$Ü!wêÚ¯·_…IiÆ:.ZØB#ƒPm4J•S˜¾¾Œa@ Íí©¹Aº$_ùƒssõet®gÁ†:y£ÞÉÄö+ؾ=º<ºs’¾âÉÇçcö¹C¸Læxp ò—&ÔÍO_‰5½o¦¦Ëñs¦,|Ù9(â2Etä¯6ºŸIƒjys¡påf·¸VjzͬwöWÃÊiªendstream endobj 2362 0 obj <> stream xœå\Is·¾3âI—‚}¹Úq9•JÊe›U9Ø9H¤H'-Y¤×_Ÿ¯Yó0óV’R\:la@ïÝ@óÇ•j%é_÷óêîL®nÏ~½<ûó×F¥UÉkoW—7gåµRJ ¿òÁÌêòîìÛóx!…uÆ8{..ÖR„ä´ çz«ö 'ÿëòoX]IçøòÖ ëƒÆ.¯±ä7˜®\Ò1œ6¿¤¡—NéóËæ„¿CZåó˳¯è >­nïϬnõ HòÅ™JÖáxtJ#‚[ݱäÍÙ7³„›n} \ Â#í®ÆÍ½‡?ŒÃ‡qøzþšO ,Õ„OÇΊȮÇáãðý8|9ßÃï‡Õ s&¢±ŽR`žZ­U)ÊÔóœöÑ+λX+!}´ÛÁoGxÇÀ÷4¶É„qQ^:¸“Êt‘†oD;‘¤^­:FS¶Ñ¦ÄÃÅÚ¥$ R'”%-uV¯¼Š8m€Ühé¢0i€,ÉÍä0½Ø…ˆ6EÀéìG%6k/µ°àÜwç#xÞe8¥wÙpƒÞÆ&œaô68ŠÜÀ bJ5¹?;!¹i÷6ˆ¨`Í ÁºPõ“j -o¬›q5â+ÛðÑø² ¾J†¾kBßД–[Ãj M*¬…s6l5³mV1ÕìEÍ*Gá4cU8†UØ:ðVím׊è™wS|oÅj®è$bL…+Ô·#Qߤ¾¡·M¼¡7#ôÝ}hâ}Q·â›õê±øæ’‘ä ¾õ€#ø†EE”æÙøÆÔé‡&ÕOÊ·ï.jÆéàñ«Ã¶ØŽq÷ã!§&¾ø¢‡æ„‘ eKlBùlo«µ1áÕÄIpºMÄí¾N£lå$®'§/ßšûy3îçus÷Ís^MNT†÷MhE¿–WËBæàtœ[DD([­¢ý•ˆmì^6þº)”Lü6l©Ù¾¡/›¼Ú0ÛŒƒÝþ£²â¤–ø(V Z1—6´hzÛdÅû‹u´ Ž6Üb¾nždÞOlf[ ©¨1ûEþb}Gοäü)'S^Ã$ЧL 2ÆF¦”hmûU•añ,ìÆ*(¦ó9,iër9¤jºìU§ºh€qŽsM‚eL±l•‚-IÙúKá‚‹Qc×´U—ll'w RÕé+ÈöüÏʆû­K¶ŸAbJöSFs¬ó1emµøMYJëbφ›,GVza§FfþPÆÆU䊤/Be!¤Ò¡‚$«‹Pl¢Omt$Vý tè1fìüËÆ<ÿåˆñ ›Î§üÎ6öšïi±© )\­QmWŒ½«vÂÑýÊhñPç¼màS uOÕ´z9NèN`@öD‰øµZò}©·tå´5ø)¨ R›8vˆWk¤a>8wþÆÑQ%ç˜ØTUd êÞËÈÕ¼¬UÝ/ÞTZ»!“§3CmðHŒÅÁ¿Œ–fNd`¬$õ™×ð‚÷@L¡råŠ(,,%¬#!JeòÜÔâc&醪¥.fµ“&—sÊðŠMç²K‹*\˜ø]O–`µ#[³É/e½ØÍ´î›=&mì¿õÞD”=&gá¦È!éc—! ȩݚ>näg[,œ1ß#;Ь¨ Vƒ¥£†õv/+ᜭãsا\g_Œz]D¤ÇI›IˆÈ‘¾%IGPf]%mLÂþ[ŒIYvÀ ¥}eÉi#´¶eËäa[7m{0sn¥9-òò [ÉÒMZ]eõ§’‹M¿æÁBÞ·)Ö£CÂOös>º²û˨±mö]=£·çÜŸÍy¢Ž"Q;׎Zà.¥  ZA#ü[Yg%©Up [*¿¢Sˆ)“'t† Ʊ%™M²B&­Ÿ\©š<±Fßé7³-ÌÊhTÀ¯ºà·ŠcÛâ· hP«ÁO2½å"v}Õ=•—´añÄÆ#O …Ú ²H(Z1ðÚ fNf€rãlvŒPmÍã”à7ƒ+RR õQ×Nµ3‡8ì§B\nBö‘P’2݈Ÿ¶½-fphÒ b&`-¢‡´ˆ‘Ày£ŽysØô@ø"f¹ÇŽy‘* œ´Zæ%_fø²xXˆ¨²ÓÌ%Ëná_Bø×»³âb¥‡¡«ØÎmGq]PHèU>¾…kþ­Ç%Qž Ý\øÈs¯iZä:Žñ¦@!ëû˜—:'„î (î,‡¬J!zîb H’†õzEvÇh%uWñIJå:¦¤àŒ¶E’ ¸Ì06Ê^KÊÔ”oD”Ê™zùÎU7¢ê©.2«ËHÞ1"…0K•:ÏÙ€³JÐåÑÔñH'©¿,^¤h™Ð6íC‚;µ9/6î³Ñ}9B/GèÆ…j_ÎæÜzä¦É®?Ecxwfƒr4ê!‡”Bà}þ˦(³ýº§¸ÎÝc‹|·#ö#ŒvYŸO’8ãx,wU=W‚ΫçgÓF.XoÊlÄ´ “ÅBo: Ù…@cþß×LI¾€;-Ud£ÃÜuüšW0šèr55Š!õ)uŸ¦8×ʸ…݈â¾4‹EÌÙ"åÈÓñ}ÿi¹¨1" i°‚¤»3¤Êfýæ`tëd½iÌ'ó ¤Ì÷7¢ ]/HÜçtÉĆ¨Ü ň&NkúË.‚·Å…"¥«¹#Fæ<Ž€,puù÷³ËO¾=ÿg&HfŠ«´mÚ©·v‰éÙc{ôöÇ !¡Û/ `‚µ‹ë«*¿/çuâö¶@‰û\#ê:ä0{&WV´½#ê»S{e4 œ¶°¥¥±´"ÌΣT^Û9¬‡"ùùòÐáîÆ@ã”]á‡6’»±”g©r€»¡¬!`Œ+î†Ýê±o—òÐÚÐ 'Aâ瓃ߌO.êçR?›ì“Oª:ÆSÕ@W<ž)Ϫ"÷O£¯êë:BR¤iZ»I£/Ì©03¸\ªjÑ$ÔrôdSµŒ¡£zN\Ìf:1Qg»â4™©%qS0=½¦ ŽÈP³¹¼ü}á°2”?O¸.d•jÑ{ŽR€ÎÞ ØÑ{mÍ®n(híÕÎiT,w\õÛ±Ó(cÈuÏ™;n4I/ŒQ›:ç"`ˆiGeáa})íÃ)lÈRfÖvÏy¢[úT#F^,Zv_Uä«HoðGæ@j à„Ÿ„<Ô*wºÔ‘«?Ôý­/Ü¢Úîî×…ÖIy~AÍo™ó»ÛgvAMRA¶\Ôõ`YÐù²ßÅè“)ÓÝNsí{ðöH¿g §ŒŽ'¿d¦r­3+£”ÖÒ%s.Ù€C+ ] HlÔ[ï˜7^±·ÔsŠdÉç8÷7¼F–ÛM¯Õë0=¹ÓÑŸK1ªOˆ¨’¥OÈÐ%Ú*‘ïM%s÷JÕ;ÈA}B^¨Œê>ü\ŒSe³n«‘ÿšÇm 2Hÿ\U2*1RÈœ±`‰§«ÓáR6¾S|§}&)-l1ÇüŠMîêµH~S±{N ÓÄ Mšª•4uk›ÐÝ‘â¹Ù&?¤¸k3 ²Žèr—½ÎŽg‡.!ê­™m{¤&!„×zçs/¤Ï4 %ádÜÁ®î›"Æ ¯̇´ù¯¸D0FÚrHŠHo¹” zH±W†Ø‡Á›o6èMÏô…øÓ4Ù`à?kaÕ·Ë áîÝ4“ߥ/È PH¦~ñðPÀÒø¹»ôå¾ éeÝB_ñv@ïÖ„PDh«¦àêŠömÝÞ}Aôòáiú‚T4$u MŽb½ò>_™ä?ØB]Ìi€ô[@W„!wœPpi=rìŠå´ï‡è ’Á Öí”9_óðkǸ®£hÈðZ€¼QÑ »Xï}¯(¨!ÖÆÁ»JC>­Œ¤·{=ä+ v ê\QT>ߌ¨šø4áüJ¶:¨OÔäÀ#²Ü æ pô˜èd±­7ù ÏïöŠm½”}ο][Ð$þp"·dLŸºQG$b…  ùºëU5#ŒÃXÅSYY¾:ûç%t¤endstream endobj 2369 0 obj <> stream xœÅ\Is·¾3ùïæG—ßûrŒ;KÅqÙfU*ç Q©²DÑ¢$Ûùõù˜¥†‹bêÀˆÁÚÝ_¯óÓN r'èßøûüõ‰Ø]œüt"Sënüuþz÷ùÙɾS1îârfwöâ$¿#wR»Á ½s^ÒëÝÙë“Tlðûç§íý ­Ù¿?=ˆÁz‚Úßг÷Fû@]Ä`œðÂíŸåî ]žž*?£Üþ×±ÑûýÛÓƒ„3x|sŠ·´ö&#¿K£Y…Þ¿¤g­ƒÄ,W¹6Z3ÞÐàaÐÁñ_ä)…vÅ€—l"6ÈÎþ†Ò¢< «pFgÏp"¯¨·”Vz——å´RÆîŸ~Iµ’B™ý9e”Ò,]¢·Íï–æÜCÛhòRtT"æÙ«ë±zÆÅbz­­W¾8•§lCãÙj\Õ“å$ÆVc¾‡0Ð{½Ca/¾Ë½…+oø—Ü[Ä ÷×#™hSt9gÏÓ(V²±§óÖ|ÇÑ6†iÃt¬Ò ýþ z´.à.¿YZÏ–Ö/–Ö¿Ì­4Ç—g'ßÒD8Ç‹›ƒUì~üùÄ\® Dôzðv÷--vnyuò}—“ª…Oœ„!†¨*NúzYÛóeÅ7Këe±â(=àŽf:ø,ß½V>u?à Ôgv©kœÌ½~ƘJh}q¹/wZkÓõ£mðRò÷xßWå³Öf(ÙŠQ͉ëm’Õi~ï$f&þpj L®²Ð€à錱ˆIøk-àÌ·dCÚe 4Þ4©’JN™Gy¿fHb½ü¦ ÊÚ$±0¸… ü]~1àr‹yVƒ,‚”e˜­‰ÁS£ìÞæY°ù‚Aoò~Á5Wl‹or«u² ÿbMKï’±Ö3®˜ §§S ´´‚”KÙä š=1£’ëñyøéTXÓTŠ7±G9@' ð±Q…ƒ¸Ê“ÙH9 îDʹå^@#I\Óƒ{$ ¹XÖñvYÝ“¥õzi½œ[3ˆ ±2ˆX;‚È—Ë!ü²<¾L¯ÎUÖkRk¹@îÑÌÈÅ/‡(Ó‰Xžß1S9ù«Z \¡ÀÉAA(ñ.W³ë±0“®œªJÒ¤¡èh¤oT‰l÷Gf"Hg«”Úy&E -@‡˜È®ë쀩³Uñ3¹XIœñ¨šJ`Ú½"¿È†f}¯ÙÞ/ó K]‚ûÒáY>V!UKDO‚Æ‘ÄFÆ'91ãÓC ‡æöA6äÑ8Þ ÆˆBÀ:bÅ!GX3\vµ.4ßdüJWé¤!É,µŽ ¦+ ’º+»{HtqšôÍ(ã1êEGíã ü‰èû6V÷Iƒû’åÖv$Ó+îdGr–›îg„ Yˆ¶ð)J¯vÀš• ŒDߥ!”ŠÒ%e‡EvOZ‰ôÒêq….8i“-Œ>.`óD%Çzøpêpe^=Ò{!¸¨3ÅøuÙc°iÒL´Bê&ÆÍk&e ït .=~³Hù³f‡¿²?AƆÁ¬wPr!‰É¦’RÉÎ ÷@:Œ0D1„„i¥2Ò/Ëx³<^µ€‰Û\¿,PÈ:|^A,?>[¿®ÇM7Ëãå6"FØ…n¶p;Š})­®‘jâ[mÕ £Ý‹ü*)$û‹ÜìŒÞäZz6Ó´×-e˜Œ;?º6Œi œGpJ²{åI­×̼ºÌÛ Þb["l÷ìM¾›CÆ>f[EB2ºÉ·Æ¯!¢of¡¯zž˜›lè’‹©€…JèϦO’ù²ØŸ›oâ|5J! Ó»\2öTòJŸ¯n²H•ìjü¦B;õ_cgêλü·‚3ñ!¢É¶Ô’dÝîåvåp èNÃû¬àCE¿“`Is|(CN¹Ëwi2©„ôä—†ÄÕ^±v¥³ 2ÐÄ~C>µ4«v9771Р£6]3ïþØ`æá"­"”u„}‘ r9·Üü"/Òø5º_7!èusï—Ç·…Á·Ög<€šô[ÜCˆa:ŸEÑø5 ¬[êŠ5¿Y®áš5º¤ÇȤãõܦ£€´‰ :b®(_E T¸3hO×Èicç–û\é&yˆD\éžþÚT €‘@ȳµ©ü¸±©ù"Ó¦”QS|SÊÝâƒ6…!«MÝ›ø°kXn …öKó‡¦÷²yp?œ– )ßÂWŽA¦‰Õ:âJ1d­ ðVn+¿ÖÞìùæf¡³óͶuË•¢š™'ç9˜“³Ô4ö?x€Îh|Z©ŸN»"¤D)vÅ;‰;qÛÂŽP©Eð^©JÂ0ëÚŒ 3ÌÌþ²[ £wVóF󳵯,.Xà‹N——?%‘æ±c eG‹£ãJ\pq[÷arn¸aÕÔòg;‹„ÈçNkjöRLGPÆ#5íC>J-ƒM:;E•v±wLͬÇ-qGBH"ÁÈcQwŒ ƒO÷ÙÔê鯶¥ AsoWñ¸Uéix‚¸²0ÔJ9¼œzûc¼0íx£#¬ñÓNÛRøëæ#ëðµ@†zµÓÁ(eÇ8ƒ¢š[î!1”hGC ê,¶˜—ñåmëünyüWcÉA@Î;¾æ@>'ý 5òZªrÍgÍ%ý±‰!_VZKEªÐÓÑÓýýð–ÙiÌð»ÈTk*c¯grÃD€R=»é—¤W­[µØ?´zI)•·ðñ=-à²bOËÔðO Ù"ÜøyÉ+ÀOž–ZÛ\‹˜Ù‡ûh~<Ü„²~<¯ (å¦xIsFËmI.;*|ÕÆA)7ÿ"·¯ŠÑøn:³©´‹,4iõ®¶Àiùä,}ÃҒߌË2Š/˜h;6]K,’’8qÜ®³ÍOi |À¤ÛùH†ríkçˆÓp¤˜%·ˆ…Û3¬ÒîT,)‰£YâQf#$ɧÊœ€Ñ fö~&ÔOÍ,)£~ˆÃmYJÏqV.ʱƕˆMN Ÿèlë–j6ë0hÁy8?éu¤l¼ïì¾êù .Æ,7ßwöôøóÆoT5¢hXò¶âáµf“yí’ÁXíì ¤ÖÆ6Ãf»È’(+'äFÔ”NKלcø®_d×£ µ !/™²¦Ò•nÅÙ“iK,^ËŽ•×oÊð©¥&MîüQ©/Çd-0B ¹ €…¨ “${I¹#}Ÿµò¥:«z40LQ2e ;9"©u£È8,ª€¬l¹Ú@"Oè,ц r¨Õƒt£¬ÂT‘oá/U/:îUz¸qUXÈk­ŒøûBVÔWÓòèãŰxŸ§|[^êZVÑheöMã’,¡¿»ÒiÝsâo*r ú¸ð…/¿bnÌG‰»[4Kǎ懨(iÐT´[ɨiFßèárLøö˜KrE§´@Õ9îV l¼fRæST^1í„?O¨}/o`ú«|‚¼¤RÇ)2¦*\ÿpžS—0ˆŠ 7¤™‚ 6BéÍgÓœ¡¸¼u¿˜ÞÚý‡E…©ýMàå9˦!KøXˆ§­AÔac]? tO³°+ô·|j²Ë PÓM~²©Â1jJ>pQ“¦t±¸œ2i‰H\™Ägig6p ¯´õµ=©`×ñ8YÜÆP¯ÙQª=€˜é¼D‹œ[îcô޵ZÌF/s;_Ô¾Êdô>YZ¯›^d–Sð~y¹€_-ËlMºs°'g°<.}r¦. H‡ ’ÄmKë„Rq̼µ…õÐGX ]¸Ã[ØA7ç³’C…ŠLq ³m«`cæŽiºmV|•—ªjžPµ)°`Š%±­V§|Ä cÇéqtãB“–m",©¡6»µÚin+ˆBòl› ,h®+±ó6‘‹:øx4rMgÿI= ©º>>àX©âœª,.Žk´â6›~ìÒ–#j`*üšÏ'H[ZÚ>%à5òùêM<Ïی­Ϟΰ°’øx¯´*J'½£4Ù0žó†n¿qÚfRɬ!‘]jd›&w®!~(è7Á°+4†&,‘AäÝÇ€%EŒ¶SÑF Ö– YR!ÑÔrŸünò+*ƒ! ´¡ŒJŸ>ÕƒVYI`êGË×VKnÄÑ…zɲê‘F« ™Ã8wçª95±†‡•‹•TF†°QÑÆ—ÆxŒcȘÉe­Š…Ë©]E72¸ËºŸ!ת)¤G Æ÷ ‚ö?ŸBÉJ/ù?í K8²æ*twñ+šëÝ|t½yCTj˃‚4ÓㇹF²V~ÓÆŽÔ*Ò:¬m9‡§¬:ЈԳEB ñ»VõÅJâB*‘ëO¬g÷µû\É’U¹&‡µ „CMóÓêÊBØc*4jÁ ‰åt—[²¤Ue"nΖ2Åæ;>”еhºXº {.”óõšë²¡xõêå¸|ª Ti]&ôœôÊ4v¼@Y¯å*Ftò ¾Î¯çàOU¸Ù‹QýÚœ8€çˆçeÛàLAÜã¡ZÑ-új¸åÙ€nÎ=jpÎÊ¿8®zÿHýqâohh5‹»ë#åéHÅ3óÙöý’cJv›ßÚA!lIï—á<2Õ_«;Ö_ßO­¡¦§ŽæBþ•½I=B0•ï¢)eR¨ ÝEÌæ”ÛH’€?h3|†$P]O²¦0˜ƒ¦Ø¬È^Ñóêu2u™W)Ù¨myÓò•­9.MÃOwÆ<Ì€çëïäTL“+߀h7¥fZïæ.ŒÙÆóce5“ºÖ[ånjC>‘Ûâõ¸jeFJ Ñ9•k±h Úw=AÛPfPÎ6ˆ!½Iq*L‚üþꔌs_ÏnrO2kîèZÀ}pò ½)ÓÔVäÒfšNëR³;î;p=ˬOï èÒôf;ì¥ô V„»téy+Îtvñ ër“`]¢ï1K0i(veÁÈ#„Έ¼¬¬M™|ʶá^IL÷㾎»úÄÆí–z6 Ç]÷ÁReSÑÁl~\,Gvbke©Ë5C¬ñ"(ɺË>Š>-`ëÝm±ÿÉ'Ú‚M.ñ$“¤/´óI§‘rÞ‹ßo‡ÀKtJÙÆáñ1”h`PÐMœ"‡•± 3Å禖û”±$U) 1(ÿ ¥üRÁU+ì8G²9w´UØòÞè½Xe=r6í(KlË<y×jÇÝ­Õ~1´{7ÎnG–ftŒØIE¡N~ ÎsÑ—ˆÆ­SB… ´´*žñ}ÉRrÓ÷äÊÐ4ÃŽ³±’I Á–VÃÌeçëf;~¡PÅ-•‰2©+»³ 2“C«‡ ·#UÇ/½ýí4§jæ¦÷ºZsùÀ¹‘½œ¾p îWÕ¿4ÿ&UýRáÔudUýSËý«úeRü‘…Õ_-o«¾u¡ðþQðûoWàÂô¡ÉyKu%x¾±g§.ù/W ª(;G_Úô¹"%ÉÞ²sË}ì-Iö–ÙQí˜òñn77bò‡}:m7w)¡§}MÉZ›Eã o<ʲFœ!Ë}|×l½®:p§+åïƒ$e tÙ,tÊqIk`Ö/±0ÖÓ½~{ò?NJendstream endobj 2379 0 obj <> stream xœÕ\Ys$·‘~gìè75ê2îãÑÖÊë]¯­°Ä‡Ãò‡GšICêÿúý¨#ª›MÒ+=¨¢Q‰D_¨wb;AÿŽÿ½yw!v¯/~¼it7þçæÝî÷W¿ýR˸‹CtÊ™ÝÕÝEþÜIéÜÎy=H¯wWï.þ±ÿÏ˃\ÔVÄý7—bÐZ +÷÷4l¢RïoèY‹£ÛHÏ.¹C>Z%üþ‡´JpÒúý=K/­ŽÅœï±º±Z[³Ÿ§›¨Õ?¯þ«XRŒgéÕî ãjÔîê¤^a%´Ž~ÿ--`½ Aj"ÕFòZZh¾–½ÑÒ"_ai£ ~ÿÙòø=:zUzËzÂçGzÉçW¥7¹¸{}a@ãîœÈp­ãwN=(»{‡‡3¼½øªn%åó¹E7è¼Ä •Êçön¡í›å‘þayüPÍu8}þ³æ;ˆ âÄ7¼„³1æƒÔÚ›¸ÿ)Ÿö&ó¹È‘ÐùܵÒ‡|Øãœ•VvpÎïïÒ#œ |ñ|šNxáŠç{ú%öç/ª!-†”PÅ"|œí‚½þc^ÃCÆ’ xïüíázùáMI,è½å3ÞfFX¯üôœ˜òýåAùÁB‘ŠEØ/ù.ùné=~pRî_]âÁi2ÙfÑN›!5Ë[”8Øé ‚Öz\Ë ãAaE7Tš3¾Ñâ##\4Þ‘¤¤0C„¤¬…´'Ùe4v÷;•"Ò*“”ÖF˜žXì“ý®©¿0ÁcèlýuA»¬¿IîgýUR…AéSÒªª¤ÅÀôÿg(*BZ'볞¾nªáõòøÃòøíòø»EOß.£ìñûåñf[‘mÄá 51ðÓE"›üŽäÂ)ö2?nØË’ßZI=8ÆoH,žÀoyíJ~·íâ}ŸÉŒ³+~?‚ÉzðÁ0;b{蘙¶£‚u“1vŸäø‹…Ϋeô³eôóèÌx£ƒ¤Y“ùÎc…ÁçÖß/T<,´}XF¯—чB>ZX¸ö0š+3 êóáG•týôóQ°"AÌR=”Jp˜þ| ˆù?8Œ°Yº0z£Á†Y‰£}3Î`´ª^Â’Þ²U®W‚a|1£)$Ö„0íã®ïäëÇ6[<=?¿“Oü)¹£AOþtËO^nÚ{A¬"±jöÉJi%–L¤8­”±ûWI€h£iïYÁN‹¼»„>ØÂgUÇšvãÌ´É4%oÍ©üwåàXÍ20MwáÊ©Ót XTÚ¢ÂÓb_b;?Žû<]É ¹$§ÎA@>j„†¦Ù€ï1ôHÄÑ@ÀŸ`]J4ð9ÍRFêP@ Þ¢0˜&ë½%ÆÔ|•žŸ„¯L VاÁH"ÖÆ°ÿe1"ü„*Âé•Ê„¾ˆÑÖíJĬœ/vÈèá:ÉÁìöêÛ’Ãó2+Dnƒ²63àÓ« ÂÑhˆ“´¥åV@4Í…-hÓ{ßÛK’+å KÍÊþq|q¹._£ëoVG¾)Ò·Ë⤞¸—]ÄHPé¢Î²ôX_ÁíÈn@q3ǵ cœ8ü>+E8É,¿¦†¦?›çáÙ$_M¿%auÏ*UtˆŽå(a›$/«0œäc„7ñ´Ä@Aþi7#ô§Ê/Ï4¯¼‘Ɖ(=3溭¾Ç` àyöêˆhX9Æ^­¥°é ìňÕÉìÍèñÏ z¼^F-ðîš½PZk#æÊàl­æv¾·YK””]sñzùå!{k-|q$‚po³‘0ÈúKv•«ÛÚG%H9j!&©ÊÈãiÐUº„š•²'XÊFÉ|cËPà‚CÐUÏ.p+KfSËÁTðøzr[ÜŒfßkWqK`’‹ÜOv@á<;< CVŠ(DÅ¡­n>² i艣P Za­È‰? æ#¸šÎQGé$¬`’ãIZÂúü™_._SldT1‚0jO¢K Ь'¹œfêó( oÿtÄX"DvK.w{’Rruãð—çº:ha F%¢A_yú¯?´ƒ7¸U¬‰íÆXQ¾’ÈÕ}ØÁe¸ H) 52ì®þ÷âê7ÿÀ¡â¯1Nñ¤Qnˆ~3 «2D*äU«c ’Ïà„ò½ô 2¡v+á¿d1ý.SèMئРAǓ£yC–²ii’ó ÿâ¹W²”Þ=56 Lh>¡MœÓJhÍ·XÕ] °˜ª:3teZÑ÷’*Né#oɇ•Yç²þªcé¸á.ýÙm“åÞP1´64Æ®•=±ºHil-}Wy*‡N‹ežhû©¬B×ïmW4¥·Sd´Ä.”3E®TUÏJèÄ¥„'çƒ0FrÉ»žÊÂÚM,îØ;Y!®M={]ù§‘ÒÒ?1EèdcÁÚÊ÷|“Q¡Wš¯r—Gí¢­-éKpRÖñ¹Ñž?i%~>ÛÑ©4¦T‰ç£?)›M_˜'wà#BÃÉŽzwnþH+Œ=!jVíznº/˜`ìâù›;'z ˆIqOx r9«‘N)Ò à½91«Äb;V5þµòLõ)xª§é!F`b˜øs˜Ût>fÁ ¤ôž ³.ÞÔ3öÁ@…¢©‡õ µ‹špÇbläqQ>û1ùxjÀÿ@Ç$FìÏ–r€öù<Ûæ  ƒ]üóaññ²ŠÑê¸GBÌ¿[õLjI49d7êhÏ´nðRõJ <}ÊŸM¯2©…ÙTïÖûÿ(lF3O[2~„+2Ù£ùòR×6‹ö@öÚ4éïç½ÙÒ· ²Ö¾_Ž«A˅ߨXÒû ë›ÂKlÇðÓîDa‘›W¥kÍoì4Ýçm!ì L 6給^ìIà8¨ ÓE׎¢ç±7‘üy:@í ýrLÆ},Vg’JÄ2Úw0žº8µ”ÛìÆP:­Üë ´%%l4¦_ÞNï =˜zÛx= U¯FÐsÀ¼>WyÚ´diÊái% ›§–îƒJB´9ÛQ¹Ìµ~Å£Ó|yŸ ÛT94J>Ÿ_à¦&½ÒÅâpø’Žº´3:ÍÎŽ\ÅîA|µdîžzÛÈH¯ÙÁ‡|ÛÈK ÈiàœX690½#ƒˆ&Dz,™\߱˱ìÑ;v¿¯r˜ùg,±Ë.-okJ‹pzrv•°£×ÄMA™ ÉØvµ™„¼ö7.¼'·<øz= ò!SO÷Xk²Bç ?qÚfdÔÇ+<¶xÿ|‰Ÿ$}(ä79aWà…öeoêxv/á”)ÚÄç +áJÌšGÎévvvp ž.µÿ²^4v¯•nø¤Ì1õïÆén\YÆgźªÙ»´©–ž‡gkLi*ä*èËï>Ì Ês[Aá V™N‚ŒðÞ[YªN× ÷"ãu kUÙμ¾KkÆO*î2ö3!e¸ýh»ƒñw0Bì:Dû Ó®@‰·<áô ‡î FI÷UÊ—ÁÍ+G¤ ÞÁ(9XY|úâ>¹žÒ”èʤãÒçrü»^š½òíDðÌ}¯ïhç<ËWn]™}"Úâ"3mlÞ¬ÉCW6¥N‡ã—;…ÍëBשaXe”F­ºîØçEÎKk¯¼Â™ÕWe ¼íjø‘ 3mÇme70¾¤2Z­®´ágYr–¦ËHjK›Úö¢ÂÛ¼ˆp±aH³<æb†©2¨óÆNĉkk\1kL4Ý·Ð÷ÏÆ4Šñe­€I¤¸‘Jâú#›ÃÕ½ÌÆ¤*,U•g`ruÉÀ8Ô2?Qwrûë`“á€Årº«-ÙÒª2» L±ùN¥R-z]t­†×U åfMsÝ–Úq^ü|ø*Ü>q»Ït™PÝ gIU2:ò›}öØév-Vß z´^gÆë¹ä\7Êå«Ã’Fæd´pŒk¹ÁØS >Iý:¼úûBU¿$>XѽjÞÈϳÝÜRÔМU~q¤ºÔ†"¿HóÁñö71¤ª±±‹ž§…HÇÁÊôó’©¼Ô);wÍ¦Šˆ|®ŠבÛ\¿!$S€®4(ûÁÐyp´v5=8Š…Ó~«ˆ“f„`ªìEÓʤš¦‹˜€ÛèÆ FT?h+üX_w+—4Q™êaH±ÿ¡‘^±®”I.æÕ¥“VB¶¼ieËÖ—^ù[ß¹Ö’>¹«}GFV•Ű©kï>ŸŽÐeb®#Ç@ð£šÄN´ògs¥$I}yB¼Åä†ÉqÏlOZ—ऺU|ö/y¶À>¿c/jܾaWÛ¹¯æ žE,]Öˆ!§âõü‰¥|·µÓFÙ»DNÜRãJ?Ú·7,¤&†§—:P:Ŭpƒ²D/r›I°#}cË¥®íå×™ÝÙÖÒn¼ðu¢ÎÌÉ$¢4ÃF¿JÕ/á+\s9ä —Í‰#ÉÒTIBdàÓ¨ŽrŠï,Ú™Ú_(è}’°~á›%õô~IH-_8Ëõè‡~íDêé&KñdyBõDÒ éñSmG2LÔX"yVšâ{³Jnjc66*ôMÔV5Œ'¤’Ps…ç¤O¥=ä"³Ê)¤µmž‘Cˆ'Ý zìí :(Eìïµ*'ÉÓÎ#çÜÎpTò)ލwád;5(´éÈLÔf3œŽÖ–˜ƒÄwH˜e®Yõûó´ðÓ¿ñÕUz¹ò íÔè ¬w±¸ØÎ"‚*j¶v­ 6N ”Vfý ŒÈ±ºFýÕ«ÊHCí#º‚2=ÌÂ>2ØË¥Ï ˜A9Û†é;0麬÷.)4÷eñŒyMžGfä¯E´—ezµ¿îF¯Óz}¹ÃNŸôe—^\¶}³tséõæÈÇ3è~i-¸Ë”^®ò„âLgŸ°)÷™ëºú±³ä$ •î¼ò ¥3/+ë@&sÙ6’+I龛˷»«ÓÇ´¼«Ó’I%`SÑaû%ô9'Q}Á…;²˜Ãš.KGÝWEŸ?¶u‰î˜EdiíºQˆ>¤•âÉ&I_`ó ÑH9ïÅï·Kà¥sÒô?/ñQ1ÈÀ €LDÒyºœ‚ÉTŸ›Fιœ’€RZ Š¥úûr+«Fë`#Ç\9Úøµ<6ú]¬Z¹–v [äÛ¼¥ÖꬭՅûbÎîa|»->?°e‘Šë7ùwôy|‘KD³þ(†©'­*f|UjTḩn*ûå~ï´+ÅÓ°KaeÌÔîÚ¶9àw*n!&j§®‚ή™²Yç}‚ÆVØG~‚†{à"î&[©üî@ÐØŒ¥[ÆÆ4Q`뤳½ø?ejœendstream endobj 2388 0 obj <> stream xœÕ\[o·~ò#òtøly¿¼6-šM‹ÔúP÷!–lňm9‘ãÔýõý†ÜËKî9’%·µ hMpÉá\¿Îú§äNÐÏøûòÍ™Ø]Ÿýt&Óènüuùf÷Û‹³ßüME¿“rˆÖÊÝÅ˳üŽÄÜÎy=H¯woÎþ±ç1h+• ûžôNú½bãúü ¥²CûoÓ”(¤ÔûWlúmz÷—ç RK/ÃþEžœû×l:þžž­Q2„ý[zÕYƒÕó«J¸°¿a´ü²ÌÀžÚ;P%÷?Ó %q¾1[k/÷ïÓpÐQ©‰òDV{Ëñ¢Õ±˜Ã¬y4rذʔªXzy¼/—јDâpjÐ*ùmoÀËyä^~ÛÆZb*~^Ç]I¾ ò ç~ÎN~1‹ÑÝD”$x=†zM#HÑ:H²¸Ç9–Ña°!ò³ ð«ðÕÙô·Lü·yA¡tñf¥!4Š”õÚ{T˜H´^¯81OðªƒP½.¦¿Í+z¬øü\AdøE1ÚR ¤ðõÆý ‚×¼öÄO þ“S¡•7hÓhS±â`Æ¡Pì,í¬·.h7*v½XF¿^F¿™GgÅ6.ÀQ¦ØÖ ‹ü$ÅÖD­ÞYn…1Ný¥¯ØÉÛÎÁ˜64P…$0Ðq\p„]­"LTËsžþ2áTàŠ>ª¹/"P`*¸1 )Íè©^Ä)Ú¯Ckb“&&}Ÿ{V®Bœ>>ÿu^ƹÒnhX!”Šý/¦¬ðÞŠLR›ÆÉÞÞkàì6F»û•¡uHcºÁ¶á'c|½,m3m4'õåxtdôM‹LÖKp˜3iUJ”$LLù|Ñ[­LŽôy8ÏtüD ’ Û¾VÃ=éyûR€Ü ´rƒ2€I 6å™ÆÞ“çïÆaã}×!óñ+p]$*1³kÜžIŽ›Õu;f°ÙlFÃe&—ý„¶tH'åþ×ÅØ¹±õä?!7Òkm'UOß*Ý£¥ƒ²¶ ê6óA*¿2<­Sš¼e4˜â¬ž=› hÃAlNI7ò oÖ9;þ¡››ºiŒŠ|™ëû”3k—ûU~8fVÔjÿ_ÕÊ—®kXÄÝÁ¹^BZ] ëF¹w­`™ñYkS]áoX]`¹]+@ÙÆºKߊ$äH~t³èÒÛJþç+p¡>êÿZÀ SG f€iä*X‚jn'ÓœXº»e·tVïJø ]3Ög6UL!§=ô‘͸ Í諾3Ílî“b»ƒ!ô2ÆLã·Ï_T¸WÅ||pä,󔟛‡y½<~ÿ0‡YÀ#æ]“ìvˆ9z˜ªLqÀã  Úlmõc€>,¯ÝÙ&–¦Âò G)õHxó;©ÿ‡J y]¦]¥ÆD`Ä‹»iÌŠx6: u$^ßIÝïH<m(ˆç’ÿƒ’}Å>JöÑú›¤Z”v‹µñÿ¥Ãù” Ö%RSfˆj§‚‹x9!$¤q!Î#÷BHl´Äàå†ÓR7jŒm¥2ºÖ¦ ¿5`Ù[»—8Ué—Ä•Áo¥1ih퇔{ê{ù&¯j¬‹$‚r˜BNÙL]2{¤[=VQcîŽä}vZŽœ¹H¢…Ïõ)4TGVØæùXÒñ-9P‚OeS‹l"ªªB£p÷.¤¤J†ÑÜÚµ àíX Q:¸‡Í©þx¾³Ô«Sö¢ZêŒ29ûé2&¸ž¥r³ËèÎN²p¨ ôÃlð½Ðöñ<À¿+„عH¤rc<ñÂà ±RFmƒŠdB<°•¦\˜Ø—KŒ4eÚGéÆõH²ÛÞ‚Üž?.ª‘ƒ›C¨N…£) ±|ê-I ºŽm\ô ±IGjS*ŠÓ ¼+׫#OzæRß¾#JÓ×ðg:Ž ÈJõêÝ| 6Ü?Î+UûpbK0=EÏçÉÅïö%ÑU^B¨bòÀ·€›zåªób¤TØ{^ÕÑöÝ«ºT¡;£©ô®ìŠð'xTj7 Œ•Iö˜¸¡·Û|&©›ihO’( ƒψ}L±í0ž¢LîÀÇÎatRs|è"jÓ¹Ža¯5DáåTz92_«h®µ=U èt¡$NºÆËdc:øÞtãõ ­ÇaLv2.ärñ²5¸Öœ`ÔÜîJŸn«s»•ðc6·ºe›ucuóQõ›(p !B3]|޶ššv«é‹séÇ-Ý­KçÆ¢ýô)µ‚¼û”w‚¾¡geµR6GäÜò96ŸJéüÔ! ÜmŠÑçËt><ö°:Âé|üý¹–ˆ?paÄwïå49MxÅ^dk=¬ê/œ,>þ1ç+BH×.—L÷¹Fur$VXëOîè[Òcs GR »‘,=©¥ÓR(–b5iW­i]®Ã7m•_§½›±‹û>ÞÓù÷Éà‘Ø[›¶–À©tg&[×ÚôÞÍ9]ÀhIÕÖÃÜÿÀ‰¾ZÉk)ƒ ÷©'ï0ßýöš•8Ýó«îÎî0GwÑ'÷ œkìÄH”‡Ã.ÎÓшãlXÑå:ÑS¢{žžqg8DâBtv£»am(¬ì…Ž“Q}Gl~öê’8«¬òÔ1@¤+Bß=TR© <rã°†[È<ãV £q†žÅ2b;\°crBêÞ)µ]­rUQ\0ASZ2EÛ~í'y¤ö#–$­Ãž5ðÄFw舩»SÊv¨yÎcjEKý›qÿÇ…IƒdÜ­œ9úã4Ñ‹±ªG-º³‘Ñ #ler:êÔ”åá‘ bzÅO};>çÉârFç¡"º¾½Ü²`ïc/Cªñ0Œß(àõàëõ´Ñºyކ¡9Ü<Ò0ÎQááÛ¼¿¦·HLjÞZu)&éý˜W ±)à’seZÌÛþ*Ò›1m+ÄQó½ðÁs³ñ­£/$aÉÖÝ„·:px’Z KNRÎaéHݺ¼ÿÑ´›\*Ê­ çõOj§½\ÊK7Ë(+:].£¬ëÍ2Ên'Ùk¯– ·óh;žÁ¼ÈÕV…’^qâŽÙaªÂo“ÒÏøƒÞê±èÕǾ`;¾í̹ʫ;éÚêvò0¼/?pÐõF‡L̓eÂÜHš¶UFÍÂHb }ñöª?~Ê«,SSÚÅËL©j7Šrɤ’"¿Ñ^à][ôXû¸™Ø\4Ùv¥£¶Ý½žÌ £®°ðE¨»‡nt•Ûÿ=Í0Ôn×¾EÌ¢¥†xûsé´r7Êeä¥ÙQoÇ3jÓPn#¯¶WÝ6æOvrP=ù8iêNªFrLßÌ÷}\ò`›Ÿ5§Çñ³f£ìØÕÉ…ªªk_7Þ])ê¼2æ>­©ØIÔ¦ÄT¤¯>ÌQâTÂò1øx\}Ut¯Db¡öô<"©Ä‘<"%itÝ®t·“åmÞÚÔX0‰ÅÀ½×#sJÊYõ´`ÅAÀ‡?]{¹©l”°º;åH“eãƒÔx€°)—Q1«1ïT‡ þ««bFâZóª…Ý#¦ÉF‹Þ')N%TtÈ9Ó‡9p²*رq™",²ÐòôÉÌwgÿwùŒfendstream endobj 2399 0 obj <> stream xœí\K·¾/‚ü†AN³††&Y|ædžã qlk,$­´’±¯x%;ú÷©"ÙÍb{fç!eÈ>ˆ¨åT“õüªÈîÿ,¤P Iÿ—Ÿ_ÈÅÅÉNT¢.Ê?ϯ_œ|þ¨¸ˆ":íÌâìåIþZ(¥„[8ByXœ]ü´ §R `ÍRœ®¤ðÑjé—º’M†É?Ÿý)?ÒàD0øÔ³s|Ê?q²²Q¿üªÏhè¤UzùM¥>‡Äø«³“‹‹‹»#¤]üŽ[ÿúD„ ´Þ.®bý} \ž<žP»ÚQ@ÁŠ L+"¶âó:¼¨‹‘¨.€[~['|™& _Ôêdå¢Ð:¨ÅJƒŒYRIÄ.8eýòÝéJ é‚1ËkF¾© ¹eä;›>„åk¦¨B·RAWSÚŠ(õbNè /ã·º›:|]÷|~º²1 Õ­–¨G£NܬG=j‰z„8RöÐ#²Á q(›3[õ˜‡/ê°ÑãÊI)lpË'ËJ~Þ•ÐuÞÕá›Ê¢J`ù×:ü×DpkþÖShE`r¢ðþ¹! ´E×ÊÉâm^5ªÔ ¢ÒYxc}6¢Ïš)Ä’ìÏ`âzÔL^)œ®š¥ÒÂZSæï#t4Ñã ]Z+¬æB/”C„ŽF &î(t€,t7Dy©Sþ[9>í:Å/÷Ó‹qêaéÅF”ª^ÊzÁ‡Š áèe«2˜D™Èßò(Ú¢TÔñ"ûд¤²2á])4þ÷¯«ë-Ì—/ëðrâoYW6|\js…í¸Þ åÅ9`âC8“Ý-X‹rúrΊ»ÛQqÇÓ€ŽRáŸÈ„Q–" E”}ÀRD°«± öõ~ÒÇEyÔ*ŸÀ„Îׯ]º(xâ5Ú‹à¸x åñ\t8²…3ùŽ3˜ýî"ë'§@VXœ‚t^XЙ÷U—arž öÙÃïš•&+¯±f@qjKðŠ61ÅÆ‘²OÑæ±‚É,0Ó«,`¶ºME ¡ÉŸÏû`ÿõtò4f¼˜>#Š®ÌI6‰z£j?ÿÁãûÅ]zëC' Ii< !Q1(-eÔŽ1$=TŸ­ì¬É5§ÜŠÃ¥>ÄIDÛYŒšEÓÊÃ(àÿ(²œ¨õ ¦úädåIçàÎÚÕ K¡ÜО°‚?s#‚BîO*ØYÇ‚×]Å|ßè'ÙziJícŠƒPïöP3d÷Ov¾³ án‹EŸÒÁþ::JÇQÁqpòzc_E-¤!Ù!ʳ¶<ùË´ùVÆô 8”wç1çàdŒÑá³iìBPM3Ÿ7üßÐXye!6sØù@960t^«ŽíÁŽ“/V :Oõ’–ˆýýòUR“·!b¦¥ÚhB_ch1ÒéÄG…€õ–Y@D+‡T(àBÖòeŸB!¢-dBREsЩ@kÁ”š ƒ0^&eétÈNP$zÇ`@e壡zé²f ZŠ„¬Y€ |Èšð&ÒO øE6¥š 6e&¿æÓ#có|ÆƒÍ û–¸$-5™¤qNHEˆ) ŠÃZ¹%mm6`ï]@Þ|Ý|)ç™×éÜhdS¶f½ö ›26àÛí+¢Þ¦É;ÊZô$GS kÐÞ HÓ/Š`´*¼•Îr6Î ðªYß+¦æò‹OJÁ[‹³N7)ìE‘MÔËßN±†N&Î¬à’¥¾·ÓgD:näúz™Ÿìï·¸ëSíßB‹5®(>+üÕ³­pçežö/Ê3Pü<?­Nwgж‡ÇÖ&¥žuÅ?0úõÌöÛr EÐ0ñÆgy÷ÚQB= ‡1gQpir×—À “þ¥'ÓÄô u8o–§ÆóÖ:ü§:Ü€­ópËá>p“éÆ n@@)ûœr8”´ñÈÂaáXnް3˜ï¶-”Íý¶Éœåd&R¦`kÆ€@Èä5# òˆvÍ ãÿ»+ò/ºÒÿ¡*í›ÉNòðë:üy3ˆ¡\îäXú 2c ÔÌãÕ¢"è³~ £‰Œˆrs¤ ñ°<:Ý%K†£ž\oÙìüt(©;H¼†d‚ƒ{â[Æå–áŒU…"å$Êb)<ñó¡êñ3‰»s‹sq_ø;ÕF z8V?ý4e,®]»Y0£Ãî:˜I'ÏP 3Y3!"¸ì'-'T¨¸Qíß\‘7éµ-Éq£ÑŒ wèrôÑu:}=]GLæ£ï×…éË„;ëÛ±d! ñÁ6²Î“m0˜ÐÉnP$º¿-žª¨* ŠÛ)·öbÈ14¥dø'œÀÇüxÛÔï<Áµ¹yô¶{Â]´Fäª&ù¶@¥Ñë¹”Ùõ' ˆÎ¢ÞÕŸ™Í(Å–÷r§?£;yþFµ®jƒùB­N\4ÁwD?•öôÒ§GìÈår3@\^òBr° Ëßû¡ª­€h²ƒµÔEdé\]®f¾’ Hå1_©å“'õ§­u’ÿbx<7>SNpã°ìÛÛö~˜Ð¶¤“O•Ì3§ùNaÔ—RM:üŽWÚÎzOÿ.×!â·a'×DñôÈêšX|÷Ô0˜3Ÿ×ÛU?çY¡òãæk``¼³³8ºSs_g!5ª°æ,ÄÍ΂̵måœe'ŽèXôXoËæ.[îæ¶ôÎNÒ1ÿ”¾Z˜9rIæ Î%»®ù£ïÑÜi‹çøÁ¤Û³þ¼¢¾ÑåtæÇ$@£LÜæ!i¼~jÓæ ¬çëñþûÚgDó¡ç-¼{vΊyå&Ï&býŒ›ÆoxŠÇ]£m!©….äL›¢‰…SzÂMüºí‰Ò’ø¢¬TôA4þ’£Á~²žéΧ´>­æ‚ÃÌŸm¶§x@è”~ÉËØ!G“BåjUäžÍËÍ˼ô‰c¿,Ô@Umºi1[8?1¨î hºÕjJ2nÃÌ!À™·Í‰œÀïÖÆD’[»˜€PL¸°ÓhNà=z®Bfo³å¡V±.ûÀ¶’Å]›êÆS3é ))j¤ìÓV²”L ô7û>l×dx0^[!ÇèB8’ð¨,Lx)öá! Á´Âc¹éÊqïón–Göl h4W¬˜îs‡€uÚRÿôñzÏ+Ú7“©ÁjL$Rä pý‘æÝÔW*{AôÇJý¶R·HwEwÈÑ¿Ö^Ù„üÒ1Î%%LjÕÎÆv`@ЯÛPÍøÍôº‘Ð"äRzOðc?üoïNY¹®Râ6Kƒ<,Î]¸^ÏIœt±(†xŸŠä9Õ‘Ö¢”é,>Aê;Æå¹ËÂWë€åÞ= º5©¼ÿÀ?Þ)2™'Ý`zG·ÈÛÑkÀÄ™1KÓéVk­h‚²qzÿqöwE!=§¹˜ÑX+u^@»¡áýZV8LN^q‡"(5¢ßô; r7´,þȼ— n¿|~鎤⟅“k½½´$ðM``~7¹D³]˜…¢\cä2)ŒÖ¯ÜiLt°RB$fâÐ1ÙûÛuFÿ˜ï˜ß6¾c ¥S4ûŽÁ@9à;ô|Ôå•b¶P–ãïêB_Õ„Ä€ËMÍX_V*»ýÍîÇ\6ûûH¾yà×ß›j®Ðæx}°¦/ çÊJº`”î4Æ4({ÝiŒ"xM,ˆ÷6Eçá«.BÝMÑ+'•0è×룘±]úe ]á# 3‹QÆG{EU 4Ùö’òŽRTZÒ5~o€ÎGVô ‚ íÕâAo |ÍbÐ[¡¢7 ›/ëõÏTÜõG«¸\qÅÊ!ŠÃ8m®ÞØË·Uoo*õ×ûió}FcЦB$Ùºa¡¢MEÇZ»~TfóûåL›v¿oÄt”É®e1×<¿§k>œoÕ Ê”Ò•Õ Ê,”C”™Þ¡9öÇjÞKL}^Ç ÎU¥^UêMWõk_yxС8¬õeú(è›^Ç¡«D¾ßv5û²R/+õi¥^ì¨ï#*N¢~PÞZ¬¼ée'PŠê—‘²â º~DÅu¾±Î¤DCoäÙòŽüšbX#õ—Ù”ÐÑÅIB=¾ŽœFY[Ït4PБÓé+ƒŠØ›Ü,!þR© Á>¯Ôw•ºöþä´ÙU²wÝÍÒ‡SJ6MŸ›Ì£P‡zŽŠúþäÞ1Z‚endstream endobj 2406 0 obj <> stream xœí\Kw5ÞûWônÚœXèý˜å Ãð¬`'N8vˆ3!ÿ~¾+Õã–JUîv·“ pX ¨UÒÕwßÒ•ÙH¡6’þëþÿøúDn.O~9Q¹wÓýïñõæoç'k¤Ù$‘¼övsþô¤|£6ÊjacÜø`…qzs~}òýöú“º¤cØ>›·ÔôÒ)½}>ö¾šÿ9ÿ×ɧç'ßÐb>m._X!Ýæ ÈúìD„×´ŽÎm®Ñã’piè¹:ùno⃩Lqñ¯FâŸU[r>¿½ÉT0a{1x=6›W§g^*শ?lÇn†Ê‹zšžËq9ÖûëL¥ŒpÀìL‰`½L›ó ìï£É˜¿õÆsl€Hp!n&ßdr¤´Á`GgR BÛ9u7W…³—"Ù¨ÇIfy4!çLÉ(‚ó Ycf§Ê§{#Ãz HSd¬ÑtÀ¸°7.ý'džåÅŽ°Øðð°¼yÑNȨd˜nÐpZ T¯’×™ ùáôôLE)…ö‘—MÈ~]äA´"ZSX`ý;Ìß? Úè]ìÄ‚wb>(«ùxlÞŒÍëf“¹£]­ÊÏ×Mäžr?=õÞew—žïÞyía æÄUt*…ðKO¨Ê†BÃPX»ý­<1ëðó"'’QÅÐk÷§¿l·ÌŒ©Ùî¸q' Ú–êíf›BcTâÛ9Ó4h±¾ó¦ñIF$'Sf…1q8"rtÛä¤2Xm#SJ,¢¶®ŸS3`W’¼=ͽrÄq´UPΤÉ2šÖã,6“‡Ûdt¡U§ ­ 0!'Ùœ™„$EÆBêg€KH£S·6¦ :lÿ{ªƒ°&ýD´—AzZB#ñÐÑ‚,6( Ò bzp1j>¼)þPêžÿ+±MÉ\ŠôRºÒÜ“öȰÀ’n:b¸5&ØTÐpÁX£Àü¾&M 6Ðövo¿H8Û ê× ¶wihã~<ÕQXí$/*SÌ¢²¡9ý¾.jçŠ<…à¡PEž:6±e8ObÓðþ¬ÿ’VÕÂ$·Æa"L'?‘+6#ï'?%ñ–º’%’0°˜¯s–'±Îé4é¿1ì†àÂy|CTáP­®hŒ)ÄÂæÕñAY“?º£ ‘áxvd;ük²æcÖÿ¶SÐéd™åé8yq·Ê‹¨+oû#>MYÁê8m ˆ|V†;«¶o0\KcR˜0tsMÙwNhÙß;>næÆmÕw£rYdHO’‚áS÷U—„6!Ý AÛÖÖán¸¾ÍÅvUËÑfÄÿ@¨ŒÝ—ã>›çcóó±ùÝd“ùàË ka6N9?r™`Ð3tÜãŒËu1‰¦Z›rÆõeKÜØQ?ãbÔ³¤â“Á•tatn²(ùjÝ×x à˜j—¨³'/X›ίNYž[ öi¶™Õ©Nù¤Ì.r¥yÉäá5ks*ób„­ˆ qÒMõ5Ó3¦~We´Áþ.›î}ɦà+>­C3,Uh°ážS Êß ÖÎÒ•±šw·7â€`ú W‘ˆxõÞ{#Lü”mOËl6„1ÜrXï}ÚÙêħ&ã3ÙÏ™œ¿*Ä"VÜÑQ šè²Z‰OϳӒÉúÉ:ÌÉW C…Ø·þ..­ÐêÀ'»mh(TO:6¥[þ¼'Øx €èkŠ õV*SI"v¡fì¦y>•ö–úšæôóÑ C8Oæ2C;¿¥e¸b×÷ …³îAä~D³«ya»ƒ…¦;ä1«À³S,•¤ÌÆ#Z; àÑ7â…íý¢Žð‘ö ˜ýƾì¢Y#C*&¿£®>QæÜäžAŒPåTÅAÔ«üT$¸È2|RFƒJ`]œ²õ–؇Ô"ôÄÏŠ`ã¿WÉ"ˆÊW‘ØœfÒò>hZ§›ö¦£%ºýUß!á^HbÙ Ÿœ1^3Ø’Ž~2üi'CA¯„ y¯q"á|Ä3³ ™Ù2Qݪ¥lŸEÜ) ¿‰TD<\Ü+™¥Áó·eé4(|]¸Ø³ÁEB}²a¢1Íhô¬§ojæWŽË¹ÀÊòN¹µ"I5œC4ÜVƳ»wÑy²9579¤mÿ°Z/à]sñ e“J®YK¤YÔ7Ìળ„›$%ëž&[Û—eSt”± òeð1—D•ƒã| ·ƒG5‰Ç_¾ÙÌ£{s_$á+Jf¸VŽ»õKfÃo‚À:Ô?óû¹–“üµÏX± ;ÜUZ¹=¨Ï•Ûªä„ÅDýz/gêãõ‚Ù^âÖRš‚Y ’õ ÔûQ„×®:šB7éPZÕ+Y¶•^÷û²)¸, ³h³ýû¨#Ë@ç~8o–̵1H`âV•fDsm+¬VÛœFÿ[ÂV3Y‡9 bä`¾ÄðÄã¸9ÿâäü£ï·_Ó¯¤˜ìQà iŽg8 MÉ —6œ/ €¼…8´CYAåÚÇGÁÁn –nû®vÆ m¶öÐó{­)¦É,]û´Íœ>ù#œêKuX-è÷h•žŠ]˜áãÔg³/—L郗¤ÂÁèŸ ð¶"-ÊžLÿ3¼¤3Õq7}ÚÇ“­4Bº„•¸nÊÙÕèĘçºir—W­•[½üa“Õ†SD¦LLû—ÎÕ–l GŸ •Ô"Ű"ò:Ù§/¸ºIö>¬Î¦«щ,Éâå@¾)ÁŠÒD> —“ŸÇ\•™'K%À冇y[h‘Âåº:gâíH×Ô±Qot«¹Pÿán'4:Á38î¬&ê<ô¾dΑ‹¶ Ó1-”ÕÛÏ TtIu["D*é˜Uváæ«B%ö½«Ê T„)²µ§äò¸tâà Í_ô™†@óK~†OØEM>ØFÔ4[þŽ ÈÌî%1(iŠMºÈL±Ž¼tBî¦|!ð{ÒÞé꤆0âf˜-+?˜y¶’ eBüê9}¿‡_‰XϘñc°Š¬ŒðI³Ù0¡‹ÞÒP^åkJXÍMhÞÚÒõ?‰ãç JbH®ïÍÊ­Y2—Ë Q}:6²³œÉ!êõ Å2 ÊE´×ŒÔ!R·Iؘe(„^†!K‚ñ 3ôKTÚHjâ‚L5Q´ÝžrH´'ó8µëÜÞ¯š Æœ y[•ÞžFÀœóc‹DÖ"×+ÆÔIDOË®š}B0q«ÀU­q‡¿tE×…Y*ÂÁÚ©ÍYp»ïéeL[7­pG ®‘Y(«–¼N–¥´è+n{UetyÒ6Û’2û5¿oWÿ=Þ¹~1ö~±~çª!rÒ ÓU‡&ór,JÐ5’)Ž ÒwÇç‘h.ERy†®vJݶ= Ýí«t 4v‡›ô£®ß¤+\ðɸš^‹Äœ¹÷÷y,B™„²4ƒÐ*”‹ô¯š‘òÅHæ“‘Qlì'•½¯‘÷‰€§ëº(R’º`òÙ•°½-JN©Í ÖÍ*ØxÁ[W+©Œ“‚7VC·T`H«Ÿ¨Rˆ©¿5líùù¸gˆ0>Hð墖ÙtoŒD¾HåZ‚‹à®ã\Ôtþ‰Œˆ‚ª ¾‹‹3¿=áâ™—°}ÑO¼y»L›¥É¬ÎâvœbÜ>…éš_W°Íüs"J¥ŒDCD㈚Ñ1Á(€f@~åQkVRçHއôz5 "‘°/UÕEÖŠn\ê€ý> C@ºNŠ2C†zßsìT’E¥+ûÁnÌþ°Prýó%PQ â|ézá ] š}Õ¡çK»vŸ³¥qxéõ£IdPñªNöÁðÊ{+âD‡ºžCxå=•Z¿:Ö “4¬2îƒS2GåOœo¥ã¶9#‚¾¯ŠíÃ6†\ûeàóe” Û^íÆ¶áíàñð×I*ü¼ÑV„7)%ƒ=ôÜ'TJ3(šB ž>. ˆ­ðh“ öæ›f®C;9ŸXǘ%|À·t/$Ýëy>qtx™üîƒtu8uFôC!ÕSèÙ•Â}^ü÷¯ûµRtÏ^÷÷=¼îÇB&WfFq-ac4ëóE;Ô?ö‹}XMoÓ{{Ûç, ßÚ¬=Õ‚òÁßÿstz޶ü¼ŽVºß[èß8Ò[hW[¼?Y°7 Ž\ÿ±³l*àU536¿ë?¼ðÀ’~¬÷ƒ°FïçåûŽjÇÔzï~@ü;ÿO|o9NŒÌ“Üýî¦BP×¼5U½x<öuªõ‹¨¾¬¤.‚gWÃó2Íúò˜¿*Þ¤¢x)7½š^u/=²]©™£i‚Ö­ÒõÙ%ïÒÅê}!jmš´£zî¾R—;+¨¸ì€Ñªªâ³>v/IJjÛ?Öžù»*S˜¿ÛÉ0>+e ÞÄF yÍ­J+äøƒ*­‚©¾ËåWvé=Ç>å;M£‘è9¼È/îYEýýÿª…7i2ËAIC»ÎÇÁ‹»!¨¦÷éÁSì{¯Ú&*îww”vP%‹]|UÓÙˆºF‘WñÚÆó¤Éö"ì ļß™x£"&*%º›§Ižœ*õs¨’<=ù{<6ó&Lò)©¥j)@6Z¦‹ÇÒóI¥=½+—¡Š|—Þ¶5wÉF2•ï*y´›U¼ÛÏ,ý¡€¼¸?‹cÓ ÍÁ£~sò?d¢Þendstream endobj 2413 0 obj <> stream xœí\[s\Å~ßJå7låiEy‡¹_òEHX)0ÆÂÂ)K2HÆáßçë™sé9—Õj$H¼ðà©ÑlŸž¾wOÏü´–B­%ýßüûâb%×竟V*Ï®›^\¬?:]}øµNiDòÚÛõéËUùZ+ã…“fíƒ*˜õéÅêÛÍ_O¤ÐÒ˜6WZcSp›Ë“­.%Ãæ%±ÀJÓ,1Á¦ÍÏ'[%¤·!l.0+£O Ó¯Êj뤮 œŸlµ“"¨°¹¡i,HàVÛ RÔÕôå—.bþ‡<ïeþ»Ó¿c{FVÛ‹ ßÓ[<=Æ>'¼Tr1à—Ê;­Ýœbä…N?¯SHvóx]0ð€nF ›¤oÿ«UŠ6ùÍ—D[í¥ß|–7ì¤5›'´™$|4»6£m Öæ{6ý<ÓÕëÍ5M†à£Že-h“ôæ—g…3Ú6+3^R» ÃæíðIÄš_/Ë—Ã~È]žè ¬5±‚|q¢£PøpÇÈE9{Z™p©“ƒŒÜ%qÞ|äÁ~Y¶¥ÀZM+hÛíg€sƒ› Ï ¸hŒ©¾þ69³†ý–x¾UJ‹¨Íz‹õª°úû²{í7¿Ògµ€Ê´¬±&Ô›æÔlÆÙA–'­8.uÖŠè\j¥Ž8¨\Òç7ýð††^:EM³9Ï×^æÐò¼»Ùoûáçýð“~xÚ?ë‡O»!aüÉéê+BÛ§õùõÊ éÖï`Ž>]i—¼°jí½ŒÂ¬/V{&¶¯WOgMÖ€­ÉC ´¡˜¬ö˜}yêlíIº]@ܤH¡ÇvÆ€@RcüEÅ¿&YðÑ$7¾î™øÙ`eøi?ü®âÑÈ–¹$‚—º•*Abm„Ñböë†f•ð.TÂ{]¦“W»-4Ènr¸6ÆÊèÀ”Ê6«³Þ¿a«Ëw `­Å6&*è[~Ù!ášù–Ai b—j³ÍP¬‘!«ÝVk'Œ/zï\£÷o{fWïb\²‘Œ ö…ß©ÚrÐǵžq[ÖwÝy—ÞÁ.’£ÑP0r$ ÙògOÆeËIC¥àÙ2LLÞ¤i'æ…ŠI1ÆÃªÃü…i<ÿ-î¶tÚh²@f”~è‡?÷Ë݂ pÊëÜó‘ôdîõN"¥œ»ë ¼š4šág+™&ðcήGþþ»Vd‚X\ ÑU´.‹]´pð$7à#ÑÑŒ YÞ¡m–•äÉ)—öFS·"« דWLùwºÏ»&¬‹àJ*¾ºÓ6‘ÏŸwË‹Ç PU£y°íCº­”‡Ôë9:©OÚ ZKú®ú”§ÙŠ¢OI˽ÔéÏP'Cš¿3¨Ú¾j ¡ï!z¨„Ñø{ÔSéÌz@ü ˆ%9]®Ú÷5³ïLÏ;9pfónÚT1$nÊboF®‹¦¥÷Ñæ(ˆæ˜ ‚F£ü•Ú<{Öÿ´–NÒ_˜çV“±ñ‰È˜(3ˆ#[´ßT±îÔsô-Ɇp'Ç]%ÓÌ¡¿S°úRªÃãBË·3vâ™àº€‹wRMhH ØúQUɘ ZëçÄçÕí¬ŸÓ¬Øè÷ëkœ5-à;+‹‡!2û* ±QÅ‘² D4 •Àµ«•åŒy'Ñ1ëÁ¡\ÔÎqtßìÌ;ï¬$âŸÝWfvP²ø'ŠçœÝ¤øC÷hmèÞã¨èY–í@ûç-ÌŽ£²I^õM& U6ݦ!yÜǾÓ. ù½L­î 2â”¶ðjŠA"›“b^o¹*«I‡X}ãªÒîâ±k(‹«,$Õ³ BA™J=ÉÎKx¥wD¸Þd¹"¯èëðÓfX0ê~É£Áigý|zcón ã§Õœq˜ùâ÷»å)n&R¿¬eÍæ¾[¹Ð'Å…:•¸fótóuA} Ø/›ÙHY-I¤ ” ÊÛaß.J„äQ»Ã™rqœ1q·)‘øñÝÊš‘ä­UMƒPLuq!'%ßÀ[¶}ÎB&o³é¡V©G{Q™ æ»¶k¤:N K¼ÀLÄŒêf)*9r&•J‰†awÖÏ'=:«À|\•ÆÄvU1ïImŒG"pL>Æ{"ž1”GF¼aÓYl‚h4yGßfÞI5]OEÈŸ$” ´14~™Üþ«~ûP6è¤@:»¥Ðª§®m°Hvˆ¥Z‚¥&u3‡DÂ’òˆH ˆTwææXº…)·ͳM¿âÅ$àË~ÈNªo„Lꉑ›UÆ»§“ þ6Þr@ì£aˆ½^BÓ4|ÛëòŸ6")C­T•D}P­QA$þj £Ø“jõV©|š6 éîN÷ ‚î¾ÏBˆb~A ’¯D6NñÿôŸOªÄ¿ÿgY‹ïȹÒÌ,a e™ö1TáVn0’2šÿÚ;¥'m~÷ì¢úsª”¨™YÂ.¸4xÃÙåÂmÜjW0gù®žsÒí§Eí¡ñï‡-ÚZê&alif–°¨6ìP&#놯‡¦0kÑyïüŸt³cÎuÉÍï‡sJQ3"ç\3³„sJ!Ú÷~Ý?çvt²Pt†Ð™s×ûq®:µºèä%Y.“u¢QDKíx0DíÌ!-‚m™ÊŒ“”E,pÉ‚©9p‡3ßýBƒ pôADNß2±„¼ÑSc÷Ó÷°Óõͳ“Z–54Ó(ªuRõVØ“G­µ{Ô'ÙAgƒ¬‘¨P’\.u3‡$Ùif!¤u…ÀÌ.N'Ùï†;ɪÍz€ÏªŒŒ’^—¨ý’íðr@‚a†g!òÏa:ú|.6|øµ‡[äÕ]‘@U‘BÆEJšs(ìRG*SÁË™8s|â`~Cö´#O’Ï@ñî›ىѿ-´’²<<«Zó¡ÈÑ:_ç+ V ™¤Zç’œ(Z­sIþƒ³“þutô  ˜³‡ŒÝ΂%Ùwù“Œébµ#cî̘™N¥aš~ Ìê;çe{ç³ô<šúå¦~I–1ºƒtôbrä!G«?,X”«°Fá ˜JQHE6ŒJÞ”/œ7ŸŒ“)Ã\€c•ÓQ#SJùpc£ªN½øÉX> VAÑÉ9_ÃÒšó5›Œž<ÑWT‹ tJFGû²9¬ÛyÓˆ7Àգί®uñ‰(µÅµÖš®"P²–f\7sH²–A[Aå©û;>«µbØEǰ}ƒoÓ!½®ïêò.~L>×µR÷zZI÷Ó- ×®ôQvßßš£üHÿš@ËÜBýüdKUšà»Ž™QçÇàÔŸ_Râí 1]5 Û;0s­‡ˆ:Ë܃4™d„A»*ñÄêÉ‹ò“]ª*›¥Aès>b]l·ñf"R“³ €é«é™N‹fŒï¦Û¹ß$Ÿ®Æá-/òÅêÃïÔµŸž¾ˆÈÏûî:ÅòÕé P†ÚAönåôÔ[';³8U›k 2ZÝÃåIËntÞ!yÙ“PðQ"‚sÝksÍsçEr¬õS2ß5ÖCŒ¨ÙÜ>V4î%ƒÎ:²øõÞ-ξ4Ù0ìÞÁ¨7.w¾o7xi]³"›Û >%5מIÇi ¾Ó÷’ç¶¾ß{ ¥íkª£­Ütž¶sö¸êU‹šÊ­nØlÕÝ=ùÇêôƒã$Ç7H&‘{/ß é4ýøÉí—CÊ{# ‰Ž=8ÒÎ,xqDÑÆö‘¤ûq¤Ç¹}rdÎí›#ÎÇ7GŽoŽß™ŽPo޼ÏoŽ´šw|säøæÈñÍ‘Çzs¤;Y:¾9r|säøæÈ{ûæˆÕúøæÈñÍ‘ã›#¹-öÐ7Gì„3=¾9r¯oŽÀb!üòìÍ‘vfÁ›#1âoNÿß¿9Ò¯}sdñÚ7G*â½oŽô4mÞY@ÒöÍ‘1IïÍvhWäw|s„IÞñÍ‘ã›#÷þæH—ßyÔ7G5ÀhähÎÒ©náêAÆ~h»aç¾ZýçÌó>endstream endobj 2421 0 obj <> stream xœí\Iw·¾óåå7Ìq˜§±/GÛñS”<;¶Äøbû q“q±HŠÑ¿OÐÝ(`ÐÍÙHQ²íñJ4P_-_Ucæ÷gbÆñÿîïáÙŸîý¾'¢tÖý9<›}s°÷Õs%Â,°`¥Õ³ƒ“½ô1B0;³N1áÔìàlï—¹ßçL¥Œž³ýg.ÉÝ\f±nÏ0ƒø·ƒâ#¹¢Ô0QixêÁ<å{˜,LÞÍ¿ËÃZn„œ?ËÒÃþî`ï'\݆ÙéÕžfÜÌnáèO÷„—žq§QÌ™ÙHŒÇï%ïö^Œ+¨Üí  o˜ºTÑyo/óð}Þüu”Z¯ìüi=V)>v™‡¯óð_yxÛ|ÚÇB)K/l`Rz1[Ï‚ç!©ýâe½WXÆ­×z~NÄÝK"¾Â±Êy?CPïä† Õ„]¸œ-”eÒ{•¶ñ!Ÿã"ßdí/L̆m Er0 -gVx8¬£ŒB…A²QÀÌk°4áàpúN£HÃë<¼?£XX.¦ù¯ó’ ÖéùaSßçyxE· kpf@÷YŸóoóðß Kþ1i€AYJ'((Ç=“n` æã…ò6nòð¬0 ©X2€k0§K&ù·b .‰ÞCgœg¤ž þ“¦ £`AÉŒÑÝüG£tn 3’*½“l£tp¥ÃšJW*)Ýöñh\ëÔÿÕÃêQ–¾ÍÒ'…J\´ Çì”qé%[àež«ÀåeFà(#ð6Kϳô0K?®†–1 -Ï5+ÀJ‚m°òœIH#÷Õ‡¬ÿÛ¬ÿÓ,½þ\QÁ?ÁRX:É6¸XÌãQøÐ†–1ŠiAÑê$Û ¹L¨M½hõô›õšõ¥'Yú®™³‚Ÿ0Z:æ 'ë$ÛÀ¦á¨þ!œŒð¶› ÆÙî{| Cq‰¥®“lrå¸Ë ‰™ï›~xõ¹FGá,”•­N² Zpdíå uÑD‹àò&KÉ\¯VŒ=p;D@‰À¬™n @mìì› 4 aø+wì.4”bÆq“KÐuœ¥„ß4±úDú×AšÔºëè%[ K0å6u6A ô.›©ƒ´wkûu¿ L¼Uxx cF ›Ì›ê ë"ï;_oZ!jЩp2iÐÎ4µp&0É&íPgXˆKh LQ¥¤W5Õ ÒÓ¦fîl|ý7×k|W:\Òìi%¥9fˆ| &ó«çVYªè0R ±»ÙN5`ÓN„¾Nõ¤ØÄB@¢w¾òØ]«C æÑ^?™: 8p/}¯À¾ðÒîI“¡´µðOP$z­SÿiÉàŽòðí(¤&‡b°>w*žh’й£ "ó§wl y“sÛÔQß„w< í\> AÑü¿WFˆFc/kyÆ*w{F߉øâ<£J£wšîI¾«òÁRK¨æÎˆD<ÎKš4{W ýr³ê¸B'øöÒ©'Jê?„Y>@¼h"CtF”Z÷—Ú «OIS>EV†N64~Ž%ªw“OW¿±ù/6·=€Í¯‚R¯ƒ½¾©$•bx3h= íº+B'Êðu­”äFÐëF?Œ!`7ÇÖ{QÜN¢7˜®q,œ0*sÈ…§î”J¦½ÊP^›ƒ±px›)0n¸O[Å6—äJìY 6Îx/a׸U´oÂki kíæBœðV23¸g"v{|Ðøj­—ltù öhp†yöñÜr* ªÉsÆÁÓ{ÅžDËÐÜJŸÜ¨ƒç<•V"Y˜ºã6™‰³ã*™‰R^8ŸÌD)§~Ö Lzf¼ñÞi‘÷én ¡x>YƒÌ@ZÄaK’K´o©$—‚Ã\PøbÆË¼Æ%9Î%9Ý6=æiZÜ[žF:0_ôsE!~M–;î¦hY(0--du²nƒ^)”/nPIg{µøp÷$X‡K*OÁŒ«’áé’Fµsc:‚ÍËà zþ“$5a㤽+Ë`áƒzòñ̈×ésÞA …ΙCžsZ¹ÒÆnÊšbÛtÆQ÷øàç¯ÈÊc«4 M j"Ïî†_îÇÛ“ðˆiŸ> stream xœí\[“\µ~ßJå7ÌãnŠº_¡I…€Ùäx0^{mÊ»6xm㟯¥sŽZçhfgv&‹Ã…¬Ójõ×wiøi%…ZIúwøóÑÕ‰\]žüt¢òìjøãÑÕê“ó“iVI$¯½]?9)ߨ•²ZØW>Xaœ^_|{úæ D]Ò1œ¾¨Ãg4ôÒ)}zq¶v) ŸNÿUÿþ³:<¯K¿¨³ßLÃïÏÿqòÙùÉ×Ä—O«ËW'VH·z‹|~¢¥ŽÂjbÉ çVW˜qQ˜4Í­Ãuø¸ÕáëîÆ¯æbÏ»½áÄÖ^:iO¿;ífÈ]w ß )\ô ™ÓOëðß3@ þ>±6jRPÈŠ•2Á$DP¾Åî˹}4þôªáH‘”N«µÁz™Vçøò/͈Àø’ë*ó&â´z­°^y ’§qª¬¿‹Øa<Ç»×’Ëœþó{H%…=nL¸ ·É{\ñËÜ 2é‹:ûcý¨¡6ÃÆ÷ ›¬° 3‡ b“Ðv_3QÙÇ V.*ñëìu}Tgß톖õï›õEŠ­aæ´ŒGœô÷€Ö›ŠÀÛJü²ÎÞìhEïWÓÖk8.ÃÌ!¸h+”UïƒýÎÐ"öbâh 3‡ ¥%*÷€ÖÛŠÀe%~SgŸÔÙçݸÅ0üM%Èèµ0–7Ε ÒÜÕÌvO!XÆÖ%}4ئߨ¢÷"ò¨5Î[ô( Ý=Øîe%Î|æÏ]+|õõŽ.X%Œæh 3‡  }s`½è‚Å`yVgÙZ–&¾ÚÓ9¯"eÞÎ+'BÆÛÜhgî€Hˆ^AB˜°É^òðjÞÁ´ÆT_¦Eàq7™`¾ëqe)ùë.Z¿6I¡ G`˜9PЛТÛhâLOþã‚—ÝÐÁB,kûî¬uLÖ*=u#‚p0øL°2ÅûC£Ü?{ÖsQ“HUÐI2g”Åy R\.M3w)HˆTH8’eÊÚ[ó^Ya”õÊ.»¢¹µWösWÇî•­á3]òÁrÑ^Ïd¿àâr6ËcÓˆˆ"'ymQ© ä2‡¤h-s)m081Ø…|uLPŒ3Q¤fð9àT„•JáxnçFˆ³–ɱ… Þêß¶ £Mö—†vBFGi°&i6ía§­îkäÔ,QCn°dkKÛŠ›Äîm«§eÍÌÓ~€`o˜O9N‡Š35¨>³70ÌýîÛÞø`÷dï=0¿z }ÛÍiŽÔ ú#DáÍ9Éñ»4Lž¿[ϽYžGjžp¥üà{ïì{_t9N£äç†ïÇozÜ·Æß¿4÷Ð÷ ¦îã ®í‹ÞÀî]0 œ³kí„•„·~0®¿åó&ãdÊb6FK§`%˜¶ÉIe€<ÆF¦”hoû°¤Š?9-ɉJôÊå./ ʙԬ!s´Îg!ï¼Ü&£ ¯:5¼‚äˆU“„t2V©¦¥1‰š„Lp1jêBádc$%¤—zéÀwU*Fœ?¬Œ ZøÜJJÒ]Î8s—¾Pð< ãÆßÁªÖçèÒ£T#"O²JYéu,Ö7àz]ÆÆUT!H_ôËB_¥)úeLT!ý2&ØDŸšd®ÒL…‹.ŠRˆ@I/\JÍþŒ[Ay”KZj2 ¸ moz( _ñ°ÒxYŽ1Íx`ÛèàÇcæùK¢HþR œ(ˆ+t€7ð¦9ú‹rF FøôS&µáÀG..Ù{è™ZÜàT±°óó#½d°ñ,ÞiäG)êmš5:×¾(JocMÁ—J.g,ÊÓ;v‹L¢¤‘ºðçÈ UgúÐ+äÊÒ„ÿš•é­G">þþ‹|`‡L,L[¤áÑl jtõê¢CžæÚðxMÒp^¨ñ€ªåJÇcöëùIį'eç°s×Sè┯(4)|õíùWÇ•d—ÃÙ ë—­;¥tìq›hFÞ¤ÔÜÇ6»ÿ‰Í_oX3óÏk?õxƒ1VkCàÖ>n‹ neSJÀ¥Éó¥Í1éFk¯½hTÏÏo¼kk„X޾ʳßÖá–Š© ·WLÚ!{CÒ©“9ÑãÀ‘N3wùÕ‰‡¤m €2¼^d/'¾ºO¶ö˦l.,§D±€± €{Ë AѰÌÞSü§+ðOº²P!ûbvE=øýöÈï’¬:¤Ä†B/÷V74‹BÇ…FU_•éäÕv?AùK˜•g“É=g¥ÐdB–—?¼p*ûÀœFÿÜÔ~Õ)€Ü·Ã×ËR,Ç×uM5²™kí„ñ³¬k,"ư6+~Æš.Ä€•„r®ñ´9ò‚~²T¤ÍÙŠ6pºC¶’ýü³ŸÞŠÍi{›¥ ®mYA.7L|oyÖ²SJ q9O¢w­…²Ô}løç“þª»5E%Ívª ³Œ žÝ=.£öóéYÐâÊkÒGûë&ý÷ݸܫø—ÎÈ¡Öÿâ íøêꦻö‡Æ{.PD-k„vs{Z¢IVÔä±Í@•ÞÚJ't˜§(c¦Ù5"ÊÅ«rïjCyú ‚ä…BV|~áEu.+¬´‚NrÑSÆež^ "o¡õÖ:*“vvNÖž¨qê –Ýšl6¿´3d/¶Z×VO¢¨êII—ÝÛ~ïr§z7z;ÁÈ“C TEö&îƒøêŸ–ò^´þ6|:kà¬uˆÂû0³!þÅ/¬ýÃcQÓs+…¹±M ÊlŽ ¬@¡:6úÄâÙÀ¼‹¹­0Ë_KK…Ii©t §ñè,3bs‡Ž>‹ró&œ×E‹®½­åU—9‰G+ljð†ßsWž;!q£1̓H®óݼê-TÔ„ ŠÍ)6ôxÉ÷|~Ò3­Éïu‘JÃHFíßÔ¬ʆÛÛTê² ö½‘h Q˜,A1$@z`‡ "3$vÌ?¯³ì {Ã^f> stream xœí\[w]µ~÷êêo8v›#t¿¬>Ê¢”–B0¼Ávœ€íœ_ßiï­‘¶t®¶IJà¬-æúÍhöùyÁ™XpüwøïÉå_œü| âèbøÏÉåâÃãƒ+®+­^?=HВiïÖi¦Œ\_|{øë,j‚ôîðE~|Ž–!O–&fÃáòß?ÎÇyê§yô«éñûã|||ð%ÒeÃâüú@3n¯áŸH.=ÓI2̘Å%ŒÏT˜F.¾Úöœ°óº:ç™¶'ùñ—üø*?~RM°Â©âµ—ùñY~ü&?~–_77¾=ZZ.™rêð»Ã<|Ò”ÆU~¼¦Ãœo ·?Êÿ­„4›ðÏép“€ ϸ%QΈÚG °ói‰,Ï37ùñ²Ð©XJ-–‚9myXŸÂ›)æÇ‚r ÝtÊUÛ£8ÛzeqöRÀ|a%,)á4F¤ù»ð,âøn%§LÇÿ݇ãØÜŽ7nÃÇ¿Õf‚ü×1þ˜G§¯¢ÝÛ&4Ó…! #ûˆE&õC“,‚Ó,‚óèU=É£·›‰KÛ·Î~)x*®adq) ñÏ>€¸~Í"xEpžG_mhGoŸc“Z1­¨`†‘}#5Z<¬`®³žçÑ7yôì >HŸTFÃÈ>21ÊÈèuæûy–Æ«<ú4^4Öù»*9@è&5‘Ü8²‡äösµ«umX»É²¸¼{¹M;¾=róxMÃÕ8²Ü¼…<Ï<,Ì~™¥A0Ç/M;$ôÝ bÆiÁ”¤âFö—ö«Ö‹¦´ˆ\žçQ2— Äë-ýãJ@¹À Ò+ s% y`ÊO#»H@s`S\2ñ;6£@º²‹"^4}ZÛÿmi/÷Àv8“в}Ù‡íÚ3¿kÔ/„éㄗ͈Aê:RwT²W‚‰ k`GÇ Xy\05fð;|,ƒ=o9¦‰¥ÂÉÀ@dF ç– g3aÙ¥° i &!zDž’*U]òJ„’’×y“5kK^¤zøS~ܪäE¸uU±sÆdçϪe×§ÓάҒCFGÙÌs°ì•p®Ü›£%gÀ2éHžQ^KU1 B'H%¯’È|TаÀ 竲ÇÖÌ £4⎻@pòJ®ôS+™QFúí¹! ã^ú‘DîÑZ‡VºQ˜c€OŰSà„y­Séi¦l§ùñÇ®¼f^«Êy¾ÁÖ"XËwÂH‚åúE&*˜©Æô^0[ †¸ç×Mæî½·ûÉR#ß4¹WÁë—Æï8×êëÓüxQ‡€uE?Bèí‘&À¾+~þߺë>?WàìÙ¡W”>¨R¾w¸;;ÜMÁ–žÎªIkª<7Ün!¢íLVT,ZÍž…[(y§ŠAt|œAU|‡“JäÜ „Kˆ]J˜7è Ìj;XÔ?âyƒ2„Åq øNX V&ú¬ Ô ëL[ô0·ãÂJ˜Õ6ƒE$8fpòŸÆ®Z˜Ô€­½Zu‰—¡6@HÈÓ„©6œ ¼ ¼„ ª¦JGCõM½GÀŽƒ*ÌâÎn3⮦xEW¾Äx$à­Ö"°†+‰Kœ{D+Ìo–>gà±Çm¼iã\RÇZìþ'2~Õ™S9å¥çëåx1¦`C´–ã.È™Yp+=@¹9~³bÑ>Ý4² â¶@aZŒèþ¾ùŽðYžðMý¬ªÎâçíêøéš?-Ì"ƒ;kÖ@f"a@©عTkúõE+‰ÀDüÔ(6ÉU¼ð*}Y¼ƒ‡z%qD;@·ˆ7-á îN¦Ú?€õ`Z6Y]K½MóÊ_8û¸NâÃÊkïð ­u^ Ëàå-9I Mfæö"rÕnJ'¾ê¨ëš !{cè‰Ï£äê÷P¶‡ê#$C 1u©ƒÞO-—ÿ>8þËØJCOšÀ|Õ• 8¹Yyc„/rßïÏíÄ¡ù·3…VÏæ¸{ÁEÆå2Q¯ –b?Ú/Iæ·ÛV€ Â]cÁ‰$²…À¦ol3aÆÿÝ©g @ ø>öK?Øç>û~ãã³Þmü!ö’ï ·–AÙ½®l@Œ2€¥±kxgà5²KïW2ذqæ“¿%©gÏÀiz¶1|*ÁñçJKüMeC0kUÞˆ_†UwSOÚ³{iE ¨‘Ò-b;¦³ÃÇL"¯I`¼›§óåÁÿŸÀÖcendstream endobj 2443 0 obj <> stream xœí\Ys·~gåGì#™ÒÂçc|”ãTÅ'ódûÁºåâe’å_Ÿn`fÐÀb†Ü]Ñ¢,WŒ4±@£¿¾Ño+)ÔJÒÿ†ÿ>9=«¿¨D] ÿyrºúôøà“ïAÅUÑigVÇÏòoÔJ)%ÜÊyÊÃêøôàÇÃp$…±ÖŠ£µ>Z-ý¡.dÓŸQ~øóñhK |KƒÁà®ÇOq—ÿâde£þð‹2<¦¡“Véï õ‡iH q|ð­îâêÅÕÒ®ÞàÑ¿KpxU¨/Ëðó2¼énqRIbÕµ‹Bë VkD 2fYÿ@ ¹à”õ‡oÖJHŒ9áY™ð¨Òšü¬ YÒÂZsû޳¸¹x¸Ik…Õ·²nÒ 0qGÜÜè½æ›¦ìÜÙÝ3N=0älI!® 7Rö@wAÂÃEŽyÒ >a¢^ÞÑíƒÃ3H#*83a4ƒÚ„ÍWeûÙÓMç1sβžÎãÚØ:_— oÊ„…zýÁâi-£8že<1Ò*ØÕ>ï=¿yÝðªPÿ(TfÉ&ê‡Y£½•¡”}€5xÖð€ •MxR&œêi¡žêy×I/þó&Z@䀔}§Ì ü8Ë›~éæM×ÝÅîÓ_?íþŒ ïq–Ns:Ä’÷ÂK§ß©H{L8©âbb"}S¨/¶iˆ¨^?Ø(­Àí&ö1Ìp£~ÀfsÞŘ¡ÉÒV6—•Ww Œ#Üï7:ƒ4+µÍ]QÐä¦ÔDÙ9D ¯ Uõ=f.=å7\Cñ¸@ñk¡¾îúÀ“YÓôV€Vjˆi#w÷€@GŽÕ@Ù+EÐîýÙZýšþÖØÔ˜SÑ}š“óFxà ”= ÂÂN{õp!Ú1}øé¨ÆH+' xdÛ :³TN6´Q‡ÍåØüÕã®4ÿ½Æ¸©WÆÄ˜+4åm6N”]šÿ¨M1/ÈÌímåÁDþ´‹r§ãCÕñŸ»K鱯 oF½¬d¨Ê kÐ%Múä{Ž‹ …ãqÝZµ;Rx"ºI’V‡ˆRÃ1ÖÊAWWµÈ?Þ žuñ¨bf­@ +Ccè[Ë¥M!¹%,'“ïC,gH,ý0¾(•ñ'; ÓµåÂ삦ÓFÖ‡%æz¼ “Z‰ò–Kã¢+®ËFþ,{7"X MŸã¯¦–[ 0Ã^—› úÒ{zG þª®áOÀàuÛ®p®ï†ÁÔþùƒ}0`Iä]95iñÇa3ѲŸíž6Ãmz›A‘%‹‡ O_nmV£äÞý?ÎÝeWîLºõ§v+#bŸ:tFÞÞbô¡)»:þкÍ?Ùð¹7e¸~±Ó/¸ëÛ[º ¬W{î}=÷y™ëy]Û¢køñùs&Mæ~-C(ïÔÌû8 È?7Sß&:¼wþ ®;ê¦A·ù®Xk g@1BŸ”àótôVÆ$q-­âƒ1ÞâdŒÑáÞ4v!¨ê-1o|Mcå•…XÍaÏ“‡WË&‚μêX¿lDZ¢ë3ˆB’}'V¿LÏžAÇao\ÊkòÚ ø'¦ô’?ü1Á‘!ƒ”pø2¡ëmšOï?v÷B¯F¤ ¹gxÙЊž"¨8-G€ob‡õ`@aþ41ØeJ¥q©Û*ì-™ºÌÌmœ†„Ü/G:£¥GèĨŒ!i ÐsCМÿAÀ6hk³Byï‚Y¡œØ6ÔÇlN?côyW j bÒë´ˆ±VÇŠ~^d8Lñ1TŸ­q=›_Å%r€Ì!D+´q ÁªfüšùÊ>…Ës`Ûâÿ«ö|Âèo =GQ­…O½|î¶Ù9ž£wBk@{Åmqhê0+­jÈåË<=ê|®%@ô¢3Ðu•ßk”¦Ú!Ôu»Ñ}×ãÄPÌë+ÍU–$n¿«p(»œŒtënçù"à7*.…»Øù#<¬7XÃÎ>ئ˜ïðÅQ.]ôu‰‡•Öv¥‹?úºÄO„]îýÒÇ%¸zR3÷mIÊ]/K°n¿-Úøô€U / õóB½)Ô6SžÒã d×ÚFïÖÒŸg7%bvÃÀáÐsÃÁä¦|^i´ŽøcSÿ’ÍàfsÁ6â ðƒ©æš–üŠÝW«dãršÇ—ÛÉ“ÎÑÏÇ5¸‚&&(ÜØLIN Õø½ÑñÎàŸwnܰ~ȼ*‚¼2+Ξ„k¤Y²ZM‡´¯üÀ scÌ»Œ ê”Þoælî[âeÞÅ£HÏK°{^Vë°—~ÈA¼Ê‹D˜wÔM¼š¢­ÈË€öÕ·”hûÊ縄µ6ó‚ÆÕ×ac8¿ñSÔx¾‘w<•îÅõ‘a<Šß6¸ÑŽ Üb:DLI¸#n´V~kÜhk,ŸÌÀgÏLá lFUÀ4¿ßÃòQOÇóÞG$O Xè‚°XvŒL¥ ë©z9Çœj> ‘šçglÆÓÝÕ†$yž*²¿ É둽Zí9—¿³R€;?Î=×q2Bƒn’ PdaªZœ+*SÃgy¶Äs<&6ØZS® 5Ì fžøw…®¯ú{[-*ú ¹áˆp7!eÌéï ‡e­òlÙó‘™,…ŽlçªØåè•„¼ä$’C5ŒÚ,$ ‰)M@Ÿfœ0ÿÊ$³± ÐcµFý²ÂKŠÝ=…¯õ8U ¸Ž·Hêüï×™ÑZOŠÿ®tÍÎê"}ŒËøìFåõÈvýrpáŽ*·Ú;ª[.&6"µ1"J55œ:.e<­â ©y4!á*ÒîÓƒôBÊø®lM¢ã4Ëe;²ê‘˸xÙ 6£Ï’ô<Øèn{×<TéÁ¢£ü~xú÷YIƒ² Ö £|¼’~¨2PGê ˃²H\Œ¦Îƒø*”gcQè›KZLuuèf…s¥fegAQó3”RùRѦ–r–ª;Lö0 -p:zÔyª4Q((ò~ªMOÿ¤þ™{ &:¬×ôY§v(ý¯Ò1›IÑ]›(°¸[ÌÀ *„‹U«l*{¸z?d5Fk蹦iò¼ICoÚ="}DÜ–¸³¿sC…º°çÓc|KÛjá<Ìf¶\šŠ #Å"ÒÐ]L]à-v¯ÛÏXlÚøç.~,Ã=;2ÚFG{fYùS.&Ê-\˧%PÙ‡çòì¡ø··1Êæ~]•љ祈žñŒ)fžéÃ5´ˆšgö~ü]‘Ú•þ÷´¯š“äá—eøóròa#¦GrJ>©1 -Ü_]Ua)äÛôŸÈÑ-z2 kÛæÑdt<‰›ŒÈð†À›÷Aƒ’ºÓÊ)nAÇÁ-ñ†­ÂSô¡…q6æjH[®É‡"ø™ÀÆÍ¹ÉÈÍlí)hsÌ úaŠšïôÏÉòUDŽ=9ýŒR¿dM*š<}²ñ6yJ*jG%°ÜpûAË ÊÅ(¸æ›^-dº¡«’€ohVNC ý¨˜(.‰ŽÃKRáÑMçþŽj^Œ^ÆÅmB|Ý;§T²tÖ¶¾ôž·@£ðjò¶»_îY(€Ý:[ò·í=Ÿ•©É9“xWí™ #¶]“=ƒÅ¸ïhGéÂ;Kªi½è'VÑE^¸³#þ¼¯üP¿`m}‰²T!·¯Wæ ý¹œ`&ÝæÎL3@mæL‘OœyY>åIñ[sœ = åf±z{„ŽÃj«È¡¯{Í# µ Ð9{XL.iJ°pÛ½¿÷œ»·`ÑajBa€ ¨À|õæGk.¾¸·Ü´s¬5(AÙúsëTyx˵Dáu òM 'y(×V\¨ Ú‚ (økb$Á̦Ó/Š½Ô½œ¯”¼žœLRƒ™ÇXÚ4+ðìᦿ÷Õªb\°Ä™VKjB[á&™kEÅÝÙø0±„(mÎ[© BÃF1Lä –;,ôï)F7× ™s±Ý²tJoë¢)Ô&]Õì{¡«0m6a1+BK¥T\RìDÙ%WÈ¢5¸žß_ ¶éõÆð›µ0Šè ]1š¾ÝQã„§%PiéIZb´} ר:šzt!4ŸfsÍMq§Ì¶Eñ€ùs]rãô*# %R’‘UE;Bo8‰æ»ƒÿE&Í\endstream endobj 2450 0 obj <> stream xœÍ\I“·±¾OøGô±Ç¡)b_|“,>YJOÇ/ò»æ"s(Yô¯_U… èîé¡ì'T D"—/ üs'&¹ôïüß'¯/ÄîÅÅ?/djÝÍÿyòz÷ÙõŽoµŒ»8E§œÙ]?¿È¿‘;)åävÎëIz½»~}ñ·}¸“±Z[³Ÿ.¯Ää£UÂïUi6ýqmþûõïiJ¡ù”µÁ¬×O1ËWè,mTÁïï—ÏkútÂJµÿ²´>\?iàû× Ñ]ܽ¸¹0“°»aé_\È Â$­FOÞî^£ÅúûÒòêâá˜A5µ+ƒ‚‚45‹ Aûgåó}!þóÔê‚v¼ÃóÔ£øý£Òúcù|Õ –?ÿ·|þÐíð²|¾-ŸoÊl77Âpåâ¤T»+¦DÌ[ôöÖ'­ß¸¼’“pÁŒ[šßIø5ßз‰Ú‡âŠ„ÌíVHÝe§(ÔîJÇIxГÈxÙ,iYþ•qr^ÝU”dtarPi±ÅŽÄ&F´èµå±mÁ+b’Ÿcb“??ïvø/ŠÍ•jÒhýnßãáþ·Ýé®›y´ßmY¯ 5c½¶ÐáxÎc„)ÄXsþë.ß^W) á3J0yã%øuÕÖ2ÒŸª.OÆ|ÌŸ7Å@l¥PûfÖüÀ;¬­/K+ëû¦´Þ”Öï.×f¢óJ7)ï°7A?U¦´,x`·^¶Dךâ4Níl ~ †4ÅÛ8Ù¸¶œ£)JŸ‡˜,é<í×Í1BŸ¶CÎÔ¶kWSF¦«·¸e4Öú®?k'#fµ¾'¡÷¾uÚq>ƒ»Þú°ã?IÄa¼sÈl ¨]„xàÛZ”™g•Z\8[)u_&:@uÁ+Z ¹W’Ì%|ȸ³Jl½ž²Ž :¢°j¹hóç‰!Q[ÓF@y qÜuAáñ­EŒÑaƒèÛ… +Oǽá{ú–&-V}˜óœ}*\¦Ê´ªXÃ5|Cû²g´À8‰T²³Jhýþû´uÞ† òÖ«$˜ÚK°$B9¨Ù§BÞõ¹ûöVËæ…Ëd°AèjÈD¶ÖÞDú©ödæõ΃<*ÞeØOÝ.HxïWl–W¬ËšFÀùý¯Ø<£î7™*em5)gѳ²Î®¤Kðœ]$ýcˆZI›ý5v² â9Ï×çàüIòòènÒ(g3ošÕþ_E8ƒ¤ 3êk¨K0aÿÓ¥5ðÊŒ6éÇ>K×ðÝÐFËyD©²d¤­æ­lµD’#nɦuoÿU–s-|L®P3yea—Œ›Q%ÿu^§„|Äe[ùɘ¼m¤œ¯Vó–šÝdú‹\yi<̃æZ]Qä딬¨`;Épë&%1ÖÁu¾›L©…\°Ï3JûÛèCm(~,x©2ÚäÁ¤C„„¸à_fq6@NEM‹A”×]Á× ÓªUð¹ýa+ Ü"@§Âà?l„(u™—Ǭ;oçb\k ¶Ý:˜jÒ, ¼ܰócÆÂJ;{êûá2@Ê(h6Jk 5c„íÕ]) ZëVHh/Ì+±æï)M”l£½«@Ý^=•‰“ ¡å -G¤/ÚØ€g™$!F^v&?Àùõ›I ‘ãI˜üy8rÖÒ’‘ß?€ ßd@‹Y[Ήß$(ÌCLLŠXpùÍ1BY߯W\h¶îÀpš­G‹¼Í@’&Ô$³óå“qü³.ó¿-˜áËf!ùó‹Õ6Õ"Aô"gØ`|e^^2“ñ$Y?©‰ªPrd]ø÷ÛG`"æ9D4nVM˜?‡¤ž|küð@U’ç(rjësáŠüAëƒvç‚?§ÑÓ¹…‡ ïYPÙPjúæ|uy ü)×=»-êJËE—Úã/P¿ëÎ5TŒÍ˜—ÒJleöÝZ)c÷“óVꘓQJCQº@YˆÄ÷¥9÷Ð0™Û:*û2 «\3ëÅ–ðãÖÌn|ûÖ§qp$. Ò¡ð2I’iÐ]ù)³º}y@¸ª¥Íx^·z›Zn QQ4îL ã©a€ X ¤¹¶œa€0Ä$ݬ®dF3“ôÍ1BY߯+“iv¡»á4#œEHzš¥†³ÇŸ B;嶆žÙÇߗijùé:…ûG” öD×@l×=€B ÈZÅÓ5® ¤?·D³\¯Oùy& ²C¦ÎÔSÝ©SÂóQûÛeŒ74E„¥£õrSÍÁÌ'ø¥G¥* Ï”·ŠDEYÿeK|Á Ðl¢ðÏb¢R33bGL”äBV1yÊü%Á5O{à[£C¬Ø7Uoç¦ýj,ZÞœ!éZvwv™”o• ðæ(‘£Î- $;Jé4R/€ d×S²’Y>ç›-£þÿfÔ<˳Z û4å5a `qÛK^m»'w¢Ä#€”€'¦€•cybN+— r@+G›p‡ÄÎï¤q*ç$ "$ÈÝñÝ„9Ñ)EªÀ*²Ùi“aªçô’QJe¥CvvV1`@«HÓ©7¤n¦-j·|{ŸpÊÚ…ÿò%ëž´É«@yŒ<©ƒx^!ž‡†-ÜŸ.ƒ†½±—é0 Œ;AõÁ Lˆ^íO5„èóÃi‘Ûò¦Ÿa€]ã¢JH³æì䉦±û8+D§‡˘âØ8ê#Ã9Õaj'ÝÂPã¨Ò ‡ƒ2uýHLTûôÀë‹ò¹Œäl›¦&.Ë`†Ö/hk>™¼;OÍŒ°$—ɧ™0_篺lŸ¡]íÙú}¯4ñXë1óuò…¦ôFVÊÁüÈóÊ=Ï[»…Gs:0'ˆÍ×2:xÚ÷vœAì{0Ú2ˆ¨BÔé0xNç0ÅZ¿L+ƒîêýƒ“h'0Ëüm|Kv×y¬é·yv suÖölìù(qبæôQ~|spÁÂ)z2X ÷œ¦…ÔàöcCúüS Œ¿ÿ;k'8¢Ëê$at°4g ¥ßgʃ •NéÎ!4ÐÌ¥]ŠÜ¡ßrßX‚8î’ÚtÏG°3¥Eˆ:\ mh¢ 6ç#mDiAdcó²rþÂÌÇ—_$â5‚º8ÅègÿHÐÖ`Q¾dÖù›äkÔz¯'»‰æ™ÛíÖ'Õi’‹Ä/«yø@x=\y ›ÚnE{¼2‹4©tR¨mo’• ÅÊj ï3O¨Gkú½®ƒ®·™)t Å™2ÑjS™'DJ«ÿ¦[Á¢ËÙÖêVhÍŽZ“ÊD=9 ½Žón’[™…­? V§låS¸rðˆ¤ïxïN.%©á'¥OÖˆ™ê:£×aÑÒB‚Rä0‚èDŠmRžqñiÐݘ›‡ÅDJ*®*Öz+Ú´ý¯É!h)ÕâÂì@ÓßÉÈ<6p£ÔË ÿAIÝô›äyK§2·w ´ ÑUˬ3p©ÂÞÇó¨%iOê ¢ÕDß³] T³ †§š9Á¯6k’ÍÙÓ¾‘Ïò”‹x8ÄbJÂÆcn(ëÂLr­ gŸ·z*‰Ã˜Ai;yØÔÌzIrh•}γ0ôÅ•r+_XP -Sr±skÁ_Ï!‚ÇsâAt²Yb–Ãrm:)¥¤ £)ûÚ¼¤:´œ÷Ͱ!±$Ì¿/éÆ÷ÝOV% ~S’¬÷Jë½´gÀî\¶))a³6vñ¸ œc^ø%ågïºs°ÑòZPÁ«¨{W²Å™d` $«¸zRz°ê¬÷¥õIiýžÆ“äW’|xÝž6¯ôµõ–91ü¾Û¡ìÔH Vë¾6éÊÆ(¢à Á’qÎÆ|Zp^§©äv¶:­£û¥uÚç‹+’àxtdÆ´ƒ€ x¤=¦˜”;bM§gƒZY½4žž¤Ü‰§iÔ 58@èí[C­²&p ­U5%ì—/ë]5Fa÷·ñC&ð`ê]NÀÌ|èŽ'NÉHx´‡ j ºM¤m²¢—º¾ŠQ²›ÂÚ¸Á6 í°kÏmxu¡(Q¹8õëS›1¦AoGÓ ´±‘‘Ûä¥Ó€î Â;è`\£, ¿_0)§D9F8MÞVä1‚Étð# ej‡¹‚X$8§ðBîǧ¡‰çÞÖ¸¬·‡#i(ûár­É8­2ÔˆT:3âGr ¾1P7JÜ/Œˆm¬…F…X‹ÇTüw—fw¦ ™·F}X |d=ŸõY1²â7¹ìJêÞ9÷¢e„Ø"l-ÏârÁƒ†Sr'ìè¸j]ÆTö(™)j¸°ìu;Ó!’€Ê:lý9wÏ–U$ÉøÎh?£ìsº†‘U!ÃÕœ—%íøúiëHŠ•Õð6òc6)¯«ÁûE`£Ã¯gyJy>ô¥Ú&gJjbˆÃ6`µÅaM%–‚ ³f§œ÷T‰¥4Õá®-çTb)Mç8ŠR~~¾üã9´]?E·U6Ÿ+É[èàm/D=x&›7‹O '³P¹r­d¾a‡¦ØVÉ<å¢e-k1fX`”µ¿ÈÂfTžŸ˜hk¯•M9ɵ×}…$Ô%,bJ3¬ð\œ“gLnw Þùxl›ì‚[ìS{Q_YU,Á:K%¾fI+w+×°&ÿÁAéÚÓ‹õ‡<óÕ&MáâbSA÷v.„¼4§u§.šFDŸÛºý9KDµŽ¥vœ¥uº†Œ²k^®ç°Ц³BKv¡‘e²òˇ%n½¿µiFÆ@åPÊjlœ¤B))UkÃ9µ] –©èb£ŒÙ¦•¹Y½V6d›¨ûç^ë(ÁÇú¼ÁK]Þ¦Jy)Û ásÐÞçqwÊ-DK¨ÚíTRÀt_×úT„¶´œSŒF§ 1¥?“ÿ§Ðñmã-69‡Ÿ{°Ïd;[r0é”Gª=xVÊ$à qö«Ë”~Œu¨™†P¦=Eû•°`,=Ò/Hf×YqÞ§åóA‘¿Ûíw<ÛKJ;M¬å €@Åå!Ê^ö%mêíÚf/€€Î^R¦mM'm¦ÚžÏrhH›¥‡ÅMNàé‡QØN‚¾SÅô)eC,Q`¯ãP¡–ç‚ðî0Ì—gx@{mu“êûAŒ¯07çË»œÃÕ2;,Ùœ$1¸qä°„—a¦Ÿª£Ú¹*q3‡Ñ”„r%8!B¬Ô8ø‘ò”$¢r,±<¥Pq(Å‹F~Ì‚=Óðu9M#ÐK4Ê1?ßI#»É¼-E‰GŽ7É1² 4Á÷ÎÊ3'›º= á%W÷œÊiµË7ôZ¶G*R-µhFÒõgD¹œ/À`¢Ö‘À"A7u¾T¬¤3n±Ñ28M‡Ÿ´H£èñÏÛÉ ¹Ôꥱó=e€GQ§Kð‹—Õˆs|ÚQY\~d¹;¦DÒ68ŠÖbO4Ú{À£¼BºÙi©dðàJšHûCÉìÔE¹Fil-e…£ù»‡LÙéןé—T{0¾Ù9(}ä7o2)tèÔÈ,Ñíôðä¸ÉMe^É:Óp(wÖ• 2©EÝ*½Ú¼Éæsó¶Åv^ ÉŸ¿ëlAõa'CÊ À–‚®<­-ç lIW^ {8†o j¹.Xº4CÂ&˜qOjýü0v0ØK·²è»wÌO²€ýÅú™<&]ö±¢=fNµÑÂ;T‘÷ó-ëÄ|n”Ãàž ][õð[µ²<Ïƒà—§9nã’Ïù*ù6å°´E=…´–FNkÔµÃÍŠ`=p]ug¢Ž ¯Ö¤Ê(©›$ä:Žá´òm(7ŒÎVVp½(±lWßΪð“,®¿*Øñ?ÉK Ë ¯s,Mw]ï‚ðš½táÝêj:~͘ÝeXn¦õooéÊ=@fq­«•6 r^J­"Û-Y¶›@¡·ÂæÁÓ›AŸ̘öNz¾ }›«@(ÛúK@•.ðNlÉý1“Si‹›µ—‹ –x`îðŠ}§‡$\ºªž«–^†Œiç¡Ó{3J˜\1ጎªƒ~”pT©¾—› TkÄG“çWÆ-]Zij|HãR ]€”®^™ÖÝ Ñí*cÌè …[®lÝuJ\òúéEÑRŸåf›»õ½µA~‘ÛˆN1oǪ¦ùëÆÍ1î±ÕÕlöo©fƒ3“å›J£åu‰Òóܪ£ëßèä˜ßÎæ˜r~k®²ñê4.|á‘ÚÅöl³®X­»¦oäèÞØf?›/±©a±ð¡·X–uÕ}špì-ã=æPKoÿ¶ÉMîM1æI j1™Ø@$*w! eî°È}øo©"› C\<¥"»f´‡Íì,Þ©ÞÒÏ}(B Ÿ°ð,}ØþU÷óØ ô¨ŠÙEÊ;“`’î/-g=À@Iöh¨¨Cn’·,oÉ2ÒÔ²” œ¶`)Eu'ÚÝ´±5uGùÉnl³'!Ø…órµœI”8 fÒ¨e%&?üt—•`8}]¯ä³BÇ_ uêp죨D¨Ô·-Ò:Ðc&›ÓEö^ÿËçË’µgÅ™êHª^Sr­Ähü²ø..÷=“~RïYîh>j\/vö£®6@Ÿ´˜¯áÀ‘·êãk¸Jú¬v®˜I:ØWP3ĵå ÙÓLCßÅóU\‘Bω ÁÑÛ•w!.z2°"îD oO—î·j=||'é³e Ê Î÷sl¬†¬–ñE!⯇•EZ e­Ó.V ªMб勱.·…Ö};“‚ýþkGÿ'ÖSad¿úÑàNü»þ²)öéÞkÛ™,÷/xmp „UèÆæ+¾–ï>·#ÄVb²å<`š3ZçÁyµó‚ž&Lg´^PýóÚrÖK±TÙv.ŽÛ€öˆ™½øl©z”S!óF߉::ùÇu¿´P„ñŒe+Q&:Îùs¬NɪVò gøJ>=ª‰–e„϶¶z·¨gØ#ÇŽÓdÊ­»ÿoA%¬Ñ“šU-]“ÄZ­Z:%ðC¸æéMGÏjtÏ_–€OÓ»Žé…§–m-í&Þaš;³ƒâWnçk?Îó£“ß¶Pñ,Uά}¾’l¸7ÏO¯ÃU¯ ž”a6@BB_›¼Õ’ÛR´RGå#ÂÕƒ\O¯ý«¶º›ødǬ¼ý™j“—/EÕôD wmTAp—3„0<Ùz7'Hô$¿c¾R—ï/¸Ð¤©G7t_çµS„¿p$Ô=¶·Ÿ™Ø/¾>ñÏ 3¹´l“"y-µK?5LJÚîƒQ›‡xÚxAW—·åâ”À ãgc›\7‘âÕ/œ>lÓîDâá*Ëüx¯êPîÆ¯\Œ4¶y€+Ìë0™‡j¤4ùxÅæKJÚ’Ó®¶žÓ1¨X_—kZ‰ª¼ŽÓ¾ªMÇXA6ª˜(võMv)¨S[“±2G¼|³—W‰½æwvO*QZ€uÒ“'/=‚nɨÎz" í¡|ÆõsÅJ¸ø?xŠ‹endstream endobj 2463 0 obj <> stream xœÍ=ÙŽ·•ï ÄE€n|ËÜ—3ÀDãÄ$¶c7 ñ¿>»Wg?œÉÔº›<¿Þýáâì£/UŒ»8E§œÙ]¼<ËïÈ”rr;çõ$½Þ]\Ÿýsÿæü &ïöaÿ>[oCPûïó³—Âã³ “Qï_Ÿ‹ÉhíMÜÿx~“pÆûýíùÁ3…ö×çÐUø`«Ñ®ðYkëUê cX…ÞKÚéÙ8oMÕç2Î<',eÿ"w‰&쟖E]’ÎtðÒþ Wë&/ÛŽ1v²ê~[8oÁZj£%]ök€¥Ÿ¬5rÿ<â„nÞM~¦G2?» ÂÆ~ÖMLçïáàÝšz[a4vÆ­ 5ì‹|‚Qšý-¼5 ]É|Þ¶ðßÿu¦œšb »¸Œ"§AwBwø!¼ïÕä£ß¿;p"=‹Ÿò‚#,¸9Œ µ®¾Íƒ”Ãù–õŠØ@:¢¹»…pK}©…¦$t˜7yj²ÆÉ¼×'°fi£ ~ÿyyü >:a¥ÊM‡ÏÖGœë㋳¿â„.î^½93“°»_€ºÿt&M€õíœaÒ»ë3i%¬Ñ/ Wg_ [ýÊ,§u8Âä”Ï,à‹²°‹òøIÙÄ—¥õãòøåñ?«ý4ìRÄ~Ü ”Û=S@–Q6 ß,ÄÔß pb­Ö­õE>YåÔ.Kë‹òøs·õj.LðÆðXÈëqóÕQ¥Çï·—­Üd”>aÙw;Få%¤¼¯"jõt:_¹*¤÷k9ÚëÒú´´ŠÒÚ Aj}QZïGÝÈ¥ÂO¦ní4ö¿?:€ÉäA=m¡Eðáº÷Ó£Z$ôŠJÖ ¢X-Am“I-WT.Ï7 êÙä…®$Úª¶æI¬wÑWòþM†ŸÐ+mÐjû¦h5¡~ÿÒ<-P*(°¸Aü ú„÷rÖlµÍz‚Ù í@ýô¹¥]\û‰ž› Ïõœ>¬c'ÅzöZm˜)\ .j/k›4½Öñíh ›eIÓµvOš:ìe ޹QE-_ŠÐaX *—¹Gè¢Kzî  ÛÓ.Ѽ˶A´øyuÎ0cjéK7Cñóu³ÒÄZ©8e·s)Ù¸1˜èªßÍ Qzè%¢6f|­if¸»`õP­Áž&nÃôì2±Qé~iú*“NÃð;à4%’§³gÍkr š2ÿ.6Ȇ½$›°–á•ræ[ÔŸöŒ<_¤'6ébÌaûÂýN¢³IòåÅ&²ó6/9¦·€m›Ù4Òƒ„ÚkX‘Tv û¿¤Ö(¤Ds×  |H=sD aœ)râ&53ËÙ;Üÿ‚¯i“P¥L z;Ÿè:+~(Hì2t€_²x‚ê¸í]Õƒ¾9?)¡…Œ‹‚ÃX¡éÞm v'ÉÅŸÏ.þõŸ[¢€«£íų!ØÅl‚¶%ÁÎ@¿èÌ⥙d?Õ먤¬É» Kóª®GŽx™We€ù=Ë6³^Y¨ˆA.ªF @$-­Jù ¦Íéàyâ.ÚF“1"zø‡ Z›s‰L[>ãtì›°.¢IÓ|L5ç]5Ê‹ší0ö‰mfS]ØT¼ET¦€™¯¾ õ¢Ûá“J³L6/lOLag­°@hó ÛZ[îcõÂ"1ia³Õ[¼å™º²®{½­ë*‰´êŠ·çKÔåaÕ³ŠàuÍ©?D&ŠØ7ABѸ*Z@yÿóuèo Ízˆ“ ’©Ût¦ VWÖ*« ´ ê CWL“Es&P¾Þa#è"Fu¼PyƬ4ëhjçËF¤ §AÆ=>0‘ß (mb¥”` óùëé¦<Þ±ÝB$!´(ôrÜÒS¾±·”ü¸“· v\Mm|P•×3‘ô.…zPG×mÔˆW8Š¢n}m„<˜ÕÁ¬:ñçÖå$ñ'Öš Ð/+Xý1“‹fUµÿx@gÀhÑÕ €ó¶`ý¢cÚÌ.õŒåZß™¬©ÈS6æy>›Í†ÊË`­‚Ãý1Å [Ñü¥/¼©Äžy†-£iKf¦«Þ°…~¨þ2†ÆožÚI;\ÜML Ý€þA»P²m×±—´¦lÓ‘¨Æh àÖa/çAOhi¾ž÷g £Ê?w!Œl’Ü;Ûà/ ùMÏ=,;À”#…dl¯GÌV%>»2µþ¹Ü—nÆøP òL€OŠTü¼´^”Ö'¥õ“ŠX³óÚ X™ÛYe5†¸A’[ -zm¹$‡7S8 •äy§Kòƒ6 ŽV±°Ñc)ÀˆΨVd$k}a%JgDC\Ê–!C3p#]&QØ ¦¤æ)3ØGs¥Õ,#ØJ]¤¤RâJ¢ ŽÈŒ$ÍLBYf]ÒÞ8»‚ƒ J35ÓfÄ*Bà„ý×_¯ƒ÷åOŒ“+‘ŠL)îãR‰ ?éû®ØÒåñHÔÀY`uvÕ7CÏpž·œâ±½*°©Äx« ý?-;ù¬´^”Ö¯º}ÿQZ‰,v¥Õl“U³ÕÚ¥Ö`ŒŽÉÆNÜ>A¤ŽÜ¯xƒi>èÚp+Þ Ϥæ|í}y^t^ª Sê˜ÝT²*”›¿;°ee^l½Éý’°P‡#0› »Ë·HÆHdb36£(iŽ“Œ…ý ù@’ù·m„¨[ᾑh:úaD›fŠÝœÀ¹Nð¦ãÙ,³ÒZ¤ièTÙ¡™wtJ&Þtȇ†ßQØ”‡zŽTC]6#“úçILG1™iÓFôЫ3Ð-ºÄQ–LÝËá¢* »#¢ €¡  žä`ž€M>–µÛ ÜN5Ö &ëÍìí¿¥—aÚØaû „T!ÍsÞ#ӢЈ”ü +ýƒÖã ÞÔ1T» ZÅNM*žFÔÊXè[W8 ˜Rê­'ë¯ç%y»iCã›çH>ÀsUÁÜÍÙý&/ÕÕ¡ô—¹Sp„'­zÎz^Ó ¦øb­‘aU[ª´heЇ;æ#ø&Sã› ŽN˜b>š¨Ý²€á¦žø› ¯árÓH¤âU!ÝX*±€ï®“ÑãÓ^†JcÔܰ”o¢1hRÁphq½¾âM`ó€þVùßS„þ¸ÊÈ&s¡ÑFæ('c!¬fõ'ºÎ ’gg“ÿMœ¦Ô6$žîq¢Ø ‘/Á¡t:Øl_úÐ FYFM^KFyʺ [B/åh=í2%œW$T‘º3Áb­KXÍ)>N[QÙ˜ÓT“†¬¤çÔ£2}ßä…)uL2vˆyf†Ë ^Éýøž2˜Ì§¹[ëÓHóU^³: TÞÝððj‡%/w²¼êÔJªX^pp2f¸I0ËPå<¹ä®J t*z ÛBã£k à2ð]3ƒ„ÌNšã¦'‡¶gIœ%g$‚híãäP¾ËD8ѪРêÀ*ŠkêÕí’RV$Õ¸Ö‘H% ›ßA„Ãwp”¹Ôø–Ù]¬ý]\–(±#Oé7´2ˆ8¨:ÜqvÈT” HÙÎþì&ý˜_¶Ã>o–Šð›­}…­@å,‚…=+M gÔ±Ñ-`cj£”‡bR÷pR2#ÎyŸäÒ#¶ÄŲßGi(oÑÍJà˜õ@ô”¬n 7y«ŽÕ|¿ÎÛ¶Æt4xR˜§]ŽñFÐöÝIŽ(ÑqèPJ O3D ‹àîÛeO5¥t$.«['NÝQÉ«‰zw¦a§ìí“ÒR©nàVuì¤ü”êìÓµn|üs"úiéö“›¡¦§‚:D£›<&`4Š)2gT]2¼°ÖYÐÕ¦Z}ÉÂXis} À¿A—[d1ðœamfˆC/pmÔÀ<2y jºE Ù`ê‹Ôµ¡_\¨qµ¡Ûø²–õ<ÂÀV­)sYsèÃlšgˆ¬ßæÄi­#l׺{°PØž˜¶löÛ éÕ‘“ŽÎúûóƒÓÈí#›5çhae0qD•Sá!\Š·'i²ð‡5„ÝaŠ ôNWì¬p¹¬T7Á²Z¥¢ÍNì8£>¦È̸Œ–fqN†ˆêyJKƒi³÷¥•<& 7€dÝ.ˆ€EñQ<"ójîæ†%ƒQËdž[j¹[ï:¨}ÍãÐCvMtÊwîàËJ·ÄMD›€¾`€ªü7«¢½Y ¦™ÿ&¯^iµâl 8ÞS¾™ 0Ž÷d¤å&CM>yË#åldšD1›ŠÒ}d1^æÁÁ$8ÉP&:‡i£ÀË\suÊÑ„ ©p‰üóƒ»âaÂûÖìg}¹„Ì5–ÎJµ86[VùÑéNICp2Å)-µ“UW~¡DI”¶Õ2y—#mؽ¹…ÝÔeÛ×"²ó®ìP/¡Ñ š8ßfZ9U ›õHÝ>š$%~3‡nš#¼˜aî¥aS“\¨¶¼BBR+L,Þ"Ú .Pj&tC7î„Y|•·ƒ~é¯ÏÉ âEjÝ›c¯ Î-3(—ÇrC“–ˆ ;¬ÄË¥4ƺTþu+&?¸ÁÞŸœ’ð>lóµ µ™Šë2#?fÎþý`˜ý?b7#gu‡7rËù³É©ryʤò‰t´~/Ã!a¦„hØV®òÂæ„N’›­MÏáÞ8iG޶«ê§øbê.ë8ñÒ: < Z›dVo§H»§ykôеq¸Üy5w#ùªÑL¶’™Ê ý$B4ßK–Û‰.§”‹²U¤4v9¢UŠ$'Ü·œ¬4£J\fž ”$9oò ¨jVAËVïòka;á»ðrþâZlç œÉ(†ô:€j.ÝH”w8Ï™hµ¤lé_fŒŠ«§¥c'-89ŠÞÓü¼ ×P‚³^+%3ð—µfÊ.m€M×Âk”<HKdÙND³Ï“ž¢±hÖwU à: 79ŠéÁÒ¤ëçóxš'î> ÜkÌd¼så2yߌ6Á?FÞ»»1j=i¿Ó`ëçÒ%ñγ¶ÜçúÆŠQbòÑeK8¹˜éí6W‘ÌÚ [±6€üÖU™†è½zÊV(+sKx`·Y ÎcèEDüp¾Jx™‡ÆmÕGW*á6`!ß¹¿eT t™ŠÌxÚí .U£°¶áF¦bÁ:H€­¢¹t ‡°Ö3í+ïRɵÜ1¨JêJ#@Lc[·¡¸äR¹Í²”4ˆÙv¶¤yäñ²a·“«RHëßËãoUÈ@Le¬ýCRÎõ[–~¥›nš˜Ácp)+ðvÄ&ãóµ 6˜˜"9*óÂùOœÄÆí²¼4·dQ¤A‘×<+ €F¶çH P£¸Öi5^ rqxs÷ϽOËÇÄ ¡¯•7 2S—mŠê¸îTÿeÁVúñí`#4–Xí4O!]á!RŠçÚr¯Ë¸0ãG@o1ƒ›‹ißn汩r÷ã×áá¶—’//fmôy ù“wúÆyïRÜ “JÔƒ Á¬V¯ÄÞWõ—1Xñ»ÿ¶*ã­H–3B,ŒÕÆ9 ŽIDû&-™ÝÁ¬š˜Ã»’˜_c(ÞmÛ¬ë‹%Kø(`ãÎn‰ÜpF·„õûÈà ü"Ÿxuµ'Ú045i¼=^¼9Y­-÷ùŒ^Ø’‡˜„~€ JøÀ‰wõpK¼ ËVŠ.Ñ¢oH×GJü8‹DlJ¬ë+öÊ»”{P| ïrï.æ{.ØG7äì¡Nºajÿ0'èaE3™0EŽ7/×ùêŠj:E[MV}kɬÅ\ÉÖj|YévXÉýùs:Ö)á²c—&kå9*8M}9ñzeñ§Ù¢Øy;w X¥Ìd¢{ë•…¥íÖ˜x·Úƒh†½´Ü‡b½{/ igƒ»/Óãõ«§q;×Þùtq¯Áo­©YïÅr3bæRzM¦sQóÔÄ|[/ˆÛÓhÁ Óòm>"Ÿ2¬Ry0Þ»{äˆUlçüÙ £Ô¬î VÖlÿ‚¡ë—ú ´jûJa>›ù äø½ù¼¨ShÁd{[/OHʨ¥j·É|',ªRüe#/k¿¬k$[úËhi!±td4‡Ð½-øqg‡3'„/À´FU*÷Vuäyר½ívø¦Õ¦€¡Ð,vÒZÌ=HŸ`õÄʵå^ß`”b’j¾¼Æ—uLåQÜI›ÂøÞm¹ñˆpäYÐw)ÓÖˆ’²ºè=ݯà¥_SFÈ5êÿ2å[§ä¥G˜!!BúäGvÍ47¯÷S…Hë(%–Ukàiɸbýâ'‚S‘õéKTNW÷/i” ´ì³QñêœÑ¥šXX¦Ùm!ƒ˜êñòÑÁí}MôM¶ Ôö…”ù£u”tä—áïøÙ‘°­64ÐÔ›.«1Y¼ªOÅLÕº]'@þ/RŒ`-Î&Z]ja¿@0yY‰Ã(õiÖ‚Áû‡dï‚‹&A²Í陯pa °®üy³h<+}Ópq¬ü[¹ ùTÙ].~Õe™¯Š˜¼öòˆOS!_êz’†¥Œô ¿€Cwî½q7nÒ0˜è·Jéq>+,ó}$KB³  M›.Ž´ú£yÑÔÓÓ¸ÁnçQ\[8ƒæÄ; Û/Z§[e¯0û¨+ÁÉGÚÈ7Iß Dʯõ©x2è5G¾ è=†pãпÁXøaéP³£bŸ•7wîb¦I©™+3sL{õý?ïnï{Š9¹_sX¡?ÿÄ`Œ“ó~ë88¬h_Mí+=d°W½Ö>$g Ôs'@¾Ÿý‚^+ OÄ©üÝfN0®Le™¿5LóÄ1ÜwâgÝ eÒ÷¢­õˆÓŒÌL+':ÝæÂù ëX甚Ó*§“ËWé:’¾÷·ºÆ_: (»m™»NßUyºx•ÇNèAR,¿2ç©c±YÞÏð®¦4¸ÈpôU™ß׿Ž0  ž=¼ë8±<ŠÊ LÚ_Ïþ¨È¶ãendstream endobj 2474 0 obj <> stream xœí\[o·~ú# >*|Þ/y(ÐEÐ&AšFÈKÝÙ–%òìDŽùýÙ!w—C.¹ç"+V æi^†ÃáÌ7—=?®8+ކ¿Ÿ¼<â«ó£Dì] =y¹úâäè³)V+­^<;JsÄJ(Ë W+ëN­N^ý{ý§ã gÚs%þsòœ è\ÃŒ40ýä) >; LÞ­Ÿäæ6-7B®_o,ç ú逗¹ù:½Œ½Ö+»~3L³a톦 ë_7&f[Ÿ7;¥ë‹õãÜûSn¾ÊÍËÜd¹·°À—bÚ3\WƒÌz“Éù,xÓ?fj’±›[l¥¬wâ‘}éâd(.}3ÜÜFz¦ƒéÿŽ·­ × O&}`š{¸*”Ë·‘­”Ó!î˽—’Kä/^ŠíÁ¸ÕÀˆ32óÛÎiåüØ6–«aŒ Ú¯ŸâžŽy°9-xš÷|“+e4tG Q bõh+×W¤“.w©Œ“ný<µ½¢†ñJ+·Ö†-Ÿ“áרíYpª8Iˆ}ÜÙ”N¥„=„Õ\LxUŒžÎö4ÑgYÂ/ùp–hµ2Éî@Y˜Púšàb\º8ËxråIoS%Häuyšïsóyõ-‚*- ʸÚ\Œo‰¢WJ§EiÙ"б=Œ±tãÅ K.8½a6ØÕFH ã=ØáŠáZ•Ò {(ëjéÄ^Òçõ3@ï˜>µaŒ5M\ij$iˆ/86„8š ÅÂ;>3/l%,ÀÆyØ&,BƒŠ ®÷q_XfŠSNͦÜURp9®¼ÇEJî*0p± WýDúobÛzÐOŸgö l•6ö’9@ºÀk)ÑŸŒïãÛ;ÊP²Îp3Ã:Gö½ÌÓN[J/M½sïûÜ++éd);Ò0í‚S<ð ¢8üf)îA74Ÿ4 “–þç±t ÄÖÑgL ù û´maé› ýå ’ Ý0ÕµMGìÓ“ Ж9°eAímËÆ•›/%Bû†öùÂÙä¿Á÷0íLYw…W¡….-û+äP+±#ÜúÝ1 7kNÿ g¦Ü¤ªšjº·q¥kƒk8U¹ svSÊ®Ó4.4½Óg©W{ÝÃ2T^£Œ ®´Å'ħ-á?À`Qk4EØ$$À® cèrtÚyqmU}, ÏíÆgÇÅÊ"ôó&©líàT«G®ƒŽ©q––ËhïþvrôJ «óë#͸Y½×ìË#¡œ[R ôê%˜AcáO=—Gßw½·ŠŽì½Á^¼ ç“ï&21cÛ9šò¨FãSP /dÐ!}¸R¾ªŠ$’‚µ‚T^¥µ\ƒ3ÂqÇåƒó÷nÅצgD`BÆ+1B8/!XLˆÒz‰€ý+£Ì(§>d¼°Œ(sÁîòxèƒ§ÐæÍ°ŠŸi’ÙÄ. ¨ <þcBm÷ÇÝíª[ç˜õn¢˜åöñ˜ÔÀuè‡ `² ÷ MÞÑ aÂ7:7 `ûË­Ћ’ 4´.‰¬{Þêí à!&.¸˜¾€E#_g¦/˜ûÓ÷ }Dö&œý=<Évê&I®Tp…F¬‚0Ñ»¡”Š9)cC{/Ë5M Q*ŒØ ñnRÁ¾ E½ÁÐU­®5sÂU@.Q¡¶Aç–Ö¡=-xÞ&zܧ€gtF>‹1¶i‡P^'2@¡$åÈç[Tithâ¯NþüûV¡÷ÃçMë‚QßdÊîà¹GF]æ{¸´œ•@Xä~Ó€3î”Ú1àŒ£½¾›€³9=Su°£´woV.MÉC6"¢}$¸m-ó»-~×ö‚K¥uèG{{rY±Œ•£Æíœm^Æ(¨Ï9%G·ô4û‘”¬ëtBK¦¾J½Þúô§^:®ÂÎüK1DíðjaFÛÚ­Êø“þ­£ŽTÜÛøvAwµ«»·£×}¡Z÷L#+Ú1H 'êÛ… ¿A¹ Òð2ùÁ‹¯Óü¬”k•È4Àºyœ"9Ò⣈³ ³7´ ¡žvúéãn¨â™â¤z¾ †¶4÷%˜¢߬HL…j›Tk¥HÕéYæå¾Õ¸¹Vå±"ã½›G0–ééÕÉ<Íä¦ÍÍM<«6F–üŠ1N úñ–bŽïì¥ „Ž6T‡˜žÐ£zŒ+ øØ©2ÌHT;8R.Ž÷®ÊѼÎf¤¢|á[³~Tp†ˆ0jˆ9·OÄÈ킆>FÄæ{ó1ŠHÈ©ÛDŒÚ&íŤÒiÜ&®”…×¥BŒ›*LM=KqÓš„)nªaÄ%˜Q.N r4§6jÔm½ÑL}¨Å&¾Í¶P‹Üôµë²CàÄ‹"™-xRµ±Õ–…àõ­¬í(˜¸±E54ÇA©àÄ  rIÕ:  @Kr²í‡hîµàÂÆ è_'´]Ï;§@ޱGV¿÷îÀ§›˜q >|›¯ŒÈÊ‹e½‚‰?0LãÖ=f–.¨tvÒ=‡(™_eËʲDÏë¼N·ªù¢e‰»ßÅF…P¬pIvMf ¬dÜS 3Ë‚æT¬ëe$]Ø‚oH‰ñ¶4ÞgÃ"S4-:`ÄÒÇV ]$:T»Þ£é¢ н!„Êè—”b©$tq *»¤;Q®ƒ3Ðx@\/Á § ¢;kKLÎRª ³n†µþìRHƒÞ/ȹ梺bìõZǨö–(ï“”åÖ rÆÍµ ƒ¯ër_°cŠÊ¤£‡¥!ôã¥1ó,f]ÇÅÚViÒ݆º“÷àc”T‚;¡°ã¼Ôq”hu^åÞ:Û‘zɽ7¹÷}e¡*úµc“¯|Êžâµ*™Ré&%SÂVfÜ:– ¸²pŠôêTŠ*i"•ß›c/Œ‰X†Ñ_¨Q°´<7¥ LªL±€ü¤ý`ê‘ä‰i|J0Ó¶©[ªdE²MÌB¤¦~ĽwY|ƒaOß߈šŸ‹ñô­îâK‡EÆ» ÔBOc.ɘ!¸$°VKIpA@´û)ˆfœ{œVÂäÝÁßì6Ê’×±þm÷üuLXÕùë¸ÈìN,ò³*Wð‰^*¥cÐp Ë”UÅÒE:ßצ,–êR²ÇΞÔtTæu"ŠÛ™·LBí%²A„.ºïÕÒAOO‹6(혿"7cwà³Û¬ÞÉ1›Ö ~ ˜ãmÄ*]d O‚Û×ÍÐ ˜ÒÏrﻩ·;—–É`ªò¼ü1%9ý¼®0ÝË÷D– –îÔþÐëšÐî~è‡c‘ ]JÙNU®†ŒãzÛj 0 ˆŸRê}>ÜØ§Ò€I* ~©zgøc뇿æÂ‡…(ë4-}¸³5¹Ã¬Q»òA&£ ×ÕIªlU €ßêçgËŽ¿FW>_—˜v|XÛ´ùÃCÛtæ \=ß‹Žx’‚ëÈÃE󎯛r6Ë/Ä^RØû.mW>‹|Ô¾ŸS w¥¼UåÉ'çï“ó÷ÉùÛÓùÕãmœ?%Aáª2zv¿ö P/§””Œ»Jažpf·ßKˆ›øøýº.Â´Ž¾ø»8­âoýþ‘ p¨ŽA`±Þ¤óQÑÈÁ;ý…2x,ý"ò«Ä\%Üb12·âFª‘Æã˜üŠRÊ«4 v¶öƒ9šcEZã㣱de3TÂç-ÔuŒ¨yú ¢ÊÌeÔš Ä iFæç™8ÌlÃ<ñôñ_¬/èVìo/ph=”±ˆ_ÈÝ Ò/Õ?Õ´Åp€ƒé\QØ@°ùL “Þ·¹9ó®à±h8Ú… ßì5æ›É¹MaC}ÒÉILJ⥻ªUØÓ-¸ëOOïªtb†þ£±þ6O#ûƒ©÷c~[•kòƒ-VÚ+,ÕÅ¢ü <ù{)Ê ÒÁÂL¬ÍÀ¢ü\` ’×bóÛæ©_üš£t°2˜W¨Á}bŸÈz"äfîÿÝÑÿ/¼%endstream endobj 2480 0 obj <> stream xœí\[o·~ú#Š8*|6¼_Ч¦(ŠiÄú÷A–lÙn±ä8úú³;Cr—C.¹g$§.äÁkš—!93üæãð|¿aß0ü?ýyvuÄ6GßñPºIœ]m¾<9úâ+üÆÞ£6'¯b¾á Zù±ràVnN®Ž¾Ýþç˜ ’9kù?Oþ m…/Ú§–{89‡Ú_ïØ ”fÚlßã·††Ìnßâ·”Ú »½ŒßPIlÏwRÀß ßžÂ'wƒRn+`L%¥U~«òç.´SZ ¿½Ž}kçÄöæx',üEhìn*~»Òoÿ&¥·£P¡ÆKhèm¤ÅÊ0Ža–™bÒò&KBGOßRI^ôrF¾ï÷fžÉ¢·3êÇX…yÇ‹./É‚Ò.ïpÖ|PÖn/²ÀïŽw|`F{Ë<•ÞÑßàê{hW{Úì‚tüªœeXp-:íÎŽqŸ÷8Ú4qª÷ǨdÂÀ´ujͪ¦muRÊqD©ÕaM™Wf=Ì;î¸uI>0¬ª%ˆGÚ¥ºRØiýëoåw›0]Ãã4’¶¹°_ŠÛÁq¹}wáF¹që蔿'@µ—Ö¹FÉg®Xª#qL?X!ŠNîðÛZ%aú=ÍŽwÆÛÁ‚ždÅ|Ó%/î3TA ¨~-ÔLT*¨Àèaߊ­%¶FR…%zUé?NÈ8XÐ…Éáú{©ŠêdÐ÷í¨ˆã&2µýYŠŽ]Fß)™¤¾S(S³£ž¿„ñ¹ö4ä]þ¼ÉŸ—ùsÀON:š9ׯI›ÅÒ×¹´]÷§©´é× |s1ùõ¸6*%]SFº–+\z & u2ÒÔscÐ(4¬åiÛËâ9!%ˆTîêé1˜”Ò Ô?©d´8\ã‹!*u5ü- c¼ïìî}É:U-D(vœ?X/ð6|Zû/ò¶ßçÏ«üy›?IÝ—yÛשӬßÓÖMm±v0ÎN{È“MäEõ`jÀ.Ð#z&šý6¬‹c’·—4DèqŒÓ¦Èß…I3Ívñ§“£¯±ã7wGj`zó€ÑŸ¸eÐÙÆp/g6WPú§ìTryô¼‹žj±Fô¨IÇ.Àªz:Ë¢Ÿ;ÃP5ÔVŽŸ~ûïãèá`l±ògÍ}¾LÍà á€Ù7&nœ\ˆE^Å€ÆBdÅÕè¿ÒÊj蜫 é†`ÁQdU¨ F¨P´¼@mY¨jJf#XÅ+MµŠ¥§Å ¨æºSg„kНVmå­ž…“p(ñ9¨6âEË\Ñû],抻Р³ÈŸÇé[áÁûÄ-Fqó¢oÚn Ãw±;¦$ØG;Be rõPɲgÉ™ì£ÄŠ– q´`Gc(Z›}rB*¤ºE0ØcÂ4tö¤‹Ìünä³RÌïÄŒŒÆ,ˆ§ÂLHŒ•y­û(¯&V{Dn@W}eÓÐúeáîëÙÈrnIåq6Á—ÚŒ¥¦:PgBAÔ.øÖå† f18Ê›É{31…é¥{ÝÁ\fÅ0uèŽê™嫨Çþñ D’ÉM£%rž¯›JD{ݤCZõÈ&z¤5`y´z©'må­™“±¢1N6r0̱»+¡ ÑéÆù6¾&A ºÉ’'%‹’È8ËKÒvÉãºõðÜ Ò–FRÂ:ªV¡nšª¶,¥O™Å=4{€QÚ¾:ÕFuÙ¨ÀÝä€á2—ÀF5}¶†0Hjñ Ùô ÙôÉÉ&öÆáŶñ’¸õ»Bæ@„{œ%Ž;úˆ+¯×`$'½ïa¥[ŠW“7l˜øly¾Kö¡i²Ñy®Éz«›’¥äè%q==6§GÅœ §á9Wwè'!žTþ{ƒ[NjY¤Ì·‰¼eÓÅèÉÛRÏû’ ‘·\9)ýxì†Þ!{¬H«“Ç3UI=ýlh þ/Fg¹‡²Á›GÛ½‹nRzUº²}3îz¸ËbÝs¿ ÌßEI´P ŒiDíö@tÀ}´ ’%°cØu]ÒHuñæ¡áìØC™¶q³ªßF²LËÈïšDéá>Ç»S’$SOÝïôùª9·w9u¤=pŽºšf;åf„Øz<ÜÖEÖïˆW‡?ž‡-Z²4(ðÙ½Â/6šæÀ^¢A­8d%{@V¾ ’é]Uû‚Š×Ç8/«Ê SÖu"):üyêEÚJÔf(‰(ÐÃ߸®Q –öó,zYåï;¾…R´üYº,cè[)|üëÎ)X P0Á-mYåZc 9aÒ±ï j¬y’ÒÜ| (š'én”¼üáàä:IÇ¢¤Ó88C1©±çàD°À3RìÁ¶†Òef& IRJöR¢÷Þ¹+| Õ£pï78ˆPÞëRyˆHq‘%A¯èõü,ÂÄÞŒ„ÃܵX®*pYÁr¥„Ž¾ÃªÙÌ ‘‡fÔ7õ”s™kúJÈ}|.À†SÛø2°ɘ€Zm«X‹47W» ‰m}¥=áên-]­Y2|sŒ‚ÐN»QÚ™ùá-Àh~ðßh~¡x=n æÇ¦ Ç’&È`u©ÏÉ â§(?7”àµq+…×X\>&úÿfý%þ¦B%¦Ü.t¸ÚJ³{=i^s)<~Z Â3ÌDî4H"0e瀽mͯ)¨ÂgvÒÑ‹eA9‹·Ž©ö§BŠë öGË·OXû­òÿz´ hãR‘Ü>}¦Pyͺ…Î4{ îžàöWYVóÀ„¯sбvž‡áp†c÷Å‹e½uønN¹ÏCoëÑÖ$ü:-‡.®-(+Õ JjÉj1ð€SÀUƒÝ÷9±û´º²†àÐÓ nÑ`5ßËi:}K;½[Åäà9'Òz)6ŽXG;£¦Ý¯²H`2DŠ ³BV¨xŸîTÎyÁX¢+yìÎ+>¸|rÀƇ;Àþ£Ý*¹6z3l¤eôɹ á=Ò¼GCÓ³÷’¯P½>L’þ• X…sªw-pÞ‘£‘ø=«s{gAKIÖ2VƬmèëAÇ´~æ ´eÂ|pX·£‰¹'Î5BÓ*×ÛºþóQŽR$xÀ‹ï|áêü“\H]£jÛ»9"oMÊGR ëªóüBŒC奒dui#w¼ÈçÅ“0‚3ߺ<ìXXºêó²»DõéÐ6™êÞH) ®¶ÿ5¤gª»|×qµ…sÅ>Þ¤géÆôþ^‡YSÛ–$Ì ˜þä{°èäBüCÃ¥^xEç.*«ôÍ'6õÕïuRíŬ‰âfãEeh+އK [Ø ÿ؇2´Ã”ÿåwvÖ¢ ®Èô¿¢IÅ8cTñ{S·íŒÂ»8Y£ê+8£´êæ› agÍ T>âæb(&d}(­¿’ÃçŠ ´Âû¢ñuîpihÖÓãÞ ÙÀó W a²ÚBA»Ã E⡇“Äo˜tµýCC``˜N*%„HŸšÙD?(n­?#ÔÀ 6†ºAbnœ‚½ü+hX'ëŒSc-f«ã2)üµ°B;|?žªX³ðÃJP ǧ0Eç!]Ö„ ?Úò& >ÏRݹÓêgÇ’Ñv›”*ò‘”}Þ1öžÚ—¡[¡DŸÛx¢ëd‡·f-ßy‡?Ž"@ºâ·Æ‘ðÅÌŠ{)ŸãÂ!Y•ýÙ~v>>¯0†<¯è†Òx†® |³kÇ^‚à»SW1háuˆSeŠvœÈ"ŸŽU æ€.K陵ˆ+./^ 2>Ëï ƒp]Ñ;4m6Ô€x ‡Í>ÄyãŠÑLŒò*3dpèðš`T& qú¿²G}YÔ·îzáHj´×s¯ÎP×™³DD¥‰PÀ ]<Ù¬õ›a4Ê(¸–…jZ·F]ÅŸ,[:õû–x%åëŒÇÀ€©’诨©05Ù\§Ÿ¿:e ‰¦:>@àêTHË`xWÑ'àzyáßä<ÃŒ çQ¥J²˜õ¿`XPJS|½üà|–·DËoHŒ¾÷ôÀÓ•Ip+º¢´&ÛšÖ½ø bqÕK =Ø%Ý.‚‘ï<@5$wJëꤙ‘À‚äítRz®²z³†»^'¾ÇÖ*buZ‰òáÑLç¦ã.†ÂzzúâZ‡Y&bUɽ\¶è!TÕIç·ŒÆßç‘j¦¦ 4ò½ÕÿOsü¾÷-ÐÇÔÌ–?Ÿ™~ïÖð2ÿŽà4÷¸> stream xœÅ]YsÇ‘~gèGàq¸!´ê>VO눵÷r8l3öÅÞI…H‚"(ZØ_°?{3³ª»³®ž€Šš(ÔÔ‘•Ç—Y™5¿\ˆI^ü—ÿÿêý3qñæÙ/Ï$µ^äÿ½zñ»Ï~ø‹Šñ"NÑ)g.^¼~–¾#/¤r“5ÎëIz}ñâý³¿þå9Œ£Wòðîù¥˜´¶^yül¬™¼‡[èa´ö&^c«ž‚±‡ÏØÙX…>¼ÅÏÖÛÔá&u^î°Ù{£}1ȯ¬÷§ç—rÎÆxx•Œ&,cX“[ðÂÁ—ÊOÖ…p¸îÌK}M;0©bÆO©‡³öð‘}ñŠz¸b|[?%z ëµßÎc|`ÿÄÉÛßà:,Dç¹iu¹‡6Zâ¾ìVZ®^ß5ë|Ãhúlή&iåá=Œ- M UŒ2:ÔLù eAù»çÿóâ?ž)ƒpØ‹k`¨ö $°ãzÂ[qÙNújm͇´^–A¾KÔQÖñÞXïëõ3.íRE3I..¥Îw2-q´}ΰOó>ZÁ ¾$45[Ub4Îø‚“Ùés’óy®Ó€aå·ù@qúP±ä`µHƒþ¢….´p8ì|^w¨lTÁÃi,_­X?¾[?þ„¨x¹¶ÞuG¸]?~îvxÛ›--¾ReÁMN}]<˜ ª§bˆi“è{ƒ„Ufc1ÿæK8¼‡§MÁõü8Øàüð². Ê.ŠR#·2­÷Ïp'´&`p£&Íᯅøe%ó+cõ4€ nQ’&_÷åß±Þ™)µòyë Û‡¸ì0‘Ú! $^2êÉK—ÄËÚ,^œ¯ž kðå9H|3-Q›ÉEø+|‚ÅÊPþ¹VkšïSß(%oåßôm —Ç«âp¦c¸`Ò¹„”"×´ßãÐv2pŒ/{ö†3\-óy‹·…} V!·D>Q4TÊi*ÍÑ ØXš!F†wihl!Ë^8™®R_¯Ê-òÉÙ„\Ô^%Kâì$•œ…›¯pÆZ3”è‚n1IPîÓbƒ¶s—Z :†…FyÇì?_À´Êج»ü…”S$Éx Ö(ïÕŠ ΧmJúš• ÿLÃéAÉb»”häá´ëL jŠIIg²6¶%}$ålÔIµ¦H º_?P8m2îÚã‚’xOC[­”Í›”ÁÄ¢ƒ뮃åc§.J¸¢GW…Ë0Å(ÔÅ‹ÿzöâŸþvxƒ(¡uô K£’‚¶2DœÉ­5çúWÉrº¨‹.™'-W œ±¸}8Â|µÆŸaPe€¿f[\ÒBèI;;sü_awÆ€HÖ1jÀÃ"Ä=üg’ýLÍ©‡Dñ&ÂéŽ]’ëg«yÕ˜¡¼¢x|0²éspîó4è"‹«õãÇèo<ðR:¨ÐsMíùÄIù°è—?®Óßt!Ì‘ErâËÙ¥òv3[GÓ-l¶Ü:£ãá$I\¡ô¸»ò -‚‰Å(%>ªÂÚÏ>–ŽK³3(‘06¸4Ñè  -Ç „± òy¹æ™2À·CéNÞ§îðUW ³Ç±aÂ_« Ɇ¾éÊcºŒ¼oÓ ã¶uÆ=¸Æo]@âw¬}äIn»  T€=a+¯[Á É,Ò(Û’œE`Ý¡ãêÀp x8¡x/ îàgçcëÑ ýD(¨ð.û–€Ý,aÇôO@[mú¦Ö?.èä{eÇåãÚúvmz­]`€ÔZÍÓ¡$ÖÒn€"h”¬ÉFGLCòS­/4ÊClð$üÉÞ.ìÀº dà€àéoÆ~@»‰™Åé}êlµ©#LÐ=aÍ—€¯iÝ™ÚÜÏɤТN•ü†hjD™OÄ>…0ƒ‰j ‰‘Ÿ¢æ!š™ÈÛ ¡µ8. ѹù“wi8”b¡Þ#+UëZeðE_&0ɼ䵗æ¥TÛo?€ã@¡Í”x?†N 瑉i?Z nmdŠAÅ0±`Dí¹rQü˜¢Ηړ…G9’mÕ®–®g®©GŠ4(+)Ò ±]~ÿ´rô¡ð7½ÇÁ©‡±…«Ìƒ ÔGxEõ¨IG_äú‹uIÊ۸ޕТ½1Üëu9ÞíÜ–=üFÓ(²KÔJäZG)ÿEöŸO¥È0àZ×#×Ú=\‘i`áEýümõ˜q“ÐcDƒ°W+©«s5Æçá#~(tCæB÷@±³Õ}жØ5б:¦S¸Ð%ýºd¡3šãö®(eÔ¡#§‚wùqmï „¹u´‘º{*©TæTs篃›´Œ—:e£–ÈÆÛo*vÖÀ…}@Tv!ã^±l¬dÏP;Uܸܦ‘™‹ûÄ0_ÊcVŒ>Ÿ,PH¥¢íª¡@Í|(æ°OVl‘Qàra«¬Œ2Õ‡¹Ÿý`÷Fö¿JA…á”épb‹’e ü )9Ë€­ýX¢¨sÀ‚ÿ~"e"Àg¦áßø)Äž'úòM8Z“‹§+(〭¢Ù© Œ³xØsp"ijîúKdÇì‚oã#ç& UOHUµÙ ®¤J'…¦WqôÅˤ´µð)$/•œœU•ëÒªWæ$hc;NB‰WNr8^9§“ÀàJMÚà„KQô}…äS bsìZ؇‹¿‚õ¯2øv¼ü;Ý$óIüÉ|q󮈖“–=I#þ-íuÀù;¡ö®î†PD€D+ù ˆÀðªßENp¨S’b#+°]!·¡ˆLw“cm‚ô5U4’õài”Ìï|¥Ž ’&Nß jqWÒÝFJˆÄ@Lé~R0"Ã#ÁÈÔ_¨MËI¹_þQ‰hb<•  bEÌ‹F$¯ù´hÄcP‘<–oƒ:(aÇ~ÁC4ä ¨ãŒñâ~Fâ]º˜U“ñ-\Ù5¦j\*0.`‰ÒEŠ6iLV1²d½Ûãù»£d†2F»™-g¤ã’^æ±wp 9WÒG«ÀÈŠÔî”7ýüC\§ZÀC•(ÛAn9!®Ô?°ÄULI¡€³.}޾9­€Ä—”觤PE_Nô³Z͉~ÔÌRS¢_T¢Ÿçg5ÌnæÙ¹-Èy]^êÚ¶àŽåzY&œNÙeÖ–RÊDó–¼5Ü/©ƒˆ¡d°Ê$Qn¦Û0I-„¯¥äÐØ)Èpjt9ò’5sYçiõ­b*®MæÔ{1' ×Y|6hJˆÓ…“a‰ù–L‰ªŠ§ì`a¦åºF\ àÆÞ¥ècí4*¢¸æN¶ÌW›~2ržêÜtl­nMìÚ\é½o‘Ùi„š¼S½*Š`J;lªà–B[^ô5É6ÀÁœ|T!s#40›¯M Žöñ"¾*ÊšR“R±œ˜ŸÓŒÚtÓÎY¿KÝ“p€(ÎtLø9PÇN6ŒK‘«Ó’¤ÀTè(É5›¨6 ecvOf6‹7MŠ€uùBÿñƒZÊGvÕ†ݤ¯úXÀ!Þ{àãmfn$ž¹K(RˆXëöåÕ¡Ï›¦bwZwˆYFÏ‚ŒX3‘e‹æ‰ûЬËK¶¢ªÆ+š+´ùvsG]ßלâ%uåƒR¾À¾Kh“Û½M'OϵgÐ&µ§J’1JàíU… àC¬ö©ýáqI1òú,æ"¶>NÄxÆt£b¢qµ1ÑæîdÏ’KRþ(E[k+šOÕÊĉ¦¨ÜbÂ6°ž˜·¿x°¬2ó¾-gÎìum_Ƀ}}ŠÛÄFhh((SNú9ßÐd–/å)VžK§öÊ€Y]j¯¼Ü_{¥ÖÚ«?RsrÑ©(Š˜K0%9cÔ4+èqÁ\ÌceX–îgs–<ŸË°¨+Ãb•\¼3/üÊ“ÛèLbÅ΢xû-Ûç‡T†D¾îÏÄGÏíRºþ ceW(Wvµ¢²"”JçH•9f—Uæ— ’'iz¢˜3i±ƒ/ÁÀ¦ì ÊÕŠ´œ(óÐöOÀ¢0¥sý™ œMYÑ8‡3±ã Ï÷Š´EW«Nht›Þª¾VWvŽì§ˆ³÷FF“Ëy5O |é‰ËRʺÆaŸÿ>:µN–œ(î‹!ˆgIéÍ YÔ¾d6ÙÚóÈË(S޹y9‡=mf|—T *ÆÜìï\Y!#.+6í+F!˜-Ìöœr2*ž\ÔcÀs8γ3‹Q¤}FÆt?ÀÆUñׯdñmãá }̦°%öŠu¬G+À#mq2棸Ȩ˜; ‹š„Ñ,ðƒÅ(Êq`Î3ìŒûÎÑè‚…‡#ùJÁ`‚yžôáßêñ±|\`4ogÂÔÔæ –Ñ͇>c¢tc`Bsj;Aqî0,03íƒ_iiÞZÇݘX=Ä*#‰ÉŽø«o«DZ* ËDp%B¶å‚°Á¸YL_T§†Ï«Øâdßaã4ÿµœ»°0„.LصôÞ@œ¤ ç ó°G:f†ùUxþ÷ëÞ !Òç”Ë ƒwûE¦÷IOç$!ÊÛ-­P?*«z÷D]ÿÓzÔãbÃÓE²|¬š1z1Êò™êÊ ¬ª‹’Ö¨N³ë2¥¾©¯Mxɬ•ÛGƹÙàá“9w"ÔCwÍE/¿ÊH Æ£QÑKÐè,±fœÔ©ú:à(PÔW¡|$€Œ˜=£öZd+C*mË-Ì×äQ²Pí«K|qCU,œ` F”-‹7#”,ß¼8@%×ésšZùÞ#SM:OýÚ.D®÷ëÔÃøš³ *å –>ñÑ<ÎË `ž–R˜gR¹qãI¾¼M¾.aé}“zKs,§«^Çé¦nœžLÔ“¶¶´°ê·ì 7zD£;–©I‚lrfädBçPhö_/U†Ó›'XzWI¡W£Î¤’©vŠ–efà{’" ”FáSàþ”³ô¶­·göùQмÕÛ”5—ÍWîÍ–£:ç%êõq½‰ºZ3=>­­Ÿ×ÖÏݾ¿-­ûžû)BTX¤­ê|€:*!–¦…ÿÿ²Í£,ÑûYå×/Œs~mÎy±'rmedp3¬ƒ+ËŠo1 ù2¾4H8ù”¾’ÑÛø*gá{˜7pRöi ((ZÛü¥À>ªÉùàç±Fɯ•Â᚞ЗJ)® ãÏ ×yK„+No• û²¸ÈhzŸ¸%®)GÕk(ƒìÜŽï¸ÆŸh7¥wTiPÜT&epYÉÍ›¾i¨t‰ žÞ(ø8`H"f÷ƒ9úöÂ)½ùÎ9®Au - …öÎ ±`çý™Pb ªçÍë 8¼”Þ1VÖý£Ö7L8qðï ÌO kŠ´Û¶oésã~­ð¦U÷€Ôc ŽÉÖ#«³¿ÙÈÍ»äyÁãw1RÜ(D7zþtð¬1€JûÑñEUéfƒeÒýìºõܱêE÷€sqvgÎq8?vPÎ.{´À’ap;¶}±k{pLÌw‰RÚÔ—í¸nÀÙÇ)UÆqFO%ÓJ×k²ÆaÚc»¸ _-/&ʰ v÷8¥ÐTUѪÃ8F:È_tЀ®{d}W&/º‡Œu(®ÙbʦäçV:T™^y­Ž ;$ ÖKÏ&kž‚ïý6Ä} T†ï>óÎC“7i©JW\;s»ñ›ÞÇ]ìˆ}ñW ÆénH&gGbS>ÅŸ‰ZÁåc„¨ªüjeãE%ÿŸâ÷ƒ|³" &"wä›ßHÀKŸŠ3ÁÇ+½û»ÔÚ½KXâhH]vÖ°z.= °£wæ³çŸ¶VzþGG•’'ÅøíÁ†ú˜€wMâ#L©tì¨V÷9ãWsº·e.C{/ÝÆÏ>Ópvûº(íz*ƒÃ¡ùFcž³GU½ã:nõ Fî6×õŸÒРWÏëë€æqXgî|ñîz·‡=¹ŸltH3}M ¢šI*be+jg©yV?aê Peò¦Ü·ù¬ZdÏ‚Íis¥…Ù6xÿ1NvÇzpí·Á3v ákY5èÊbˆ DÁºô¾á-×Ñ‹Ðá èb¤<榣HöKÏrâLú)i2^žÕN¤ËÛqžù‚}Ÿ4»0{zkÝ­Šíèº4ø*ư`^îé×ÞoòY¨&ŸšmIÿ9‰J³ÆzWløˆ·Ðf¦Øãˆ··Æ(ä¶¿xÄ‹[©Á½ú’A…[,Ŧƒ¤«ê |< ª´âKìH|•)À=›ì|ØôR6 g˾L RÀMÃàjǺ4qèG=¾B 0cÿúötgjÍZ7ÃR4ôòPðþûÚx{vŸ„`+Àvƒ»ï7.Ò…¥pzÆ¥UóµC6ØÏ]¢™o n±Ma{øÿ@Í)èrjÆáœ «mQbÒˆQÞnéü‘—Â*?m‡÷YŒ%ÞÈ|?¿ï+‚®Ý[¡! 6p˜ØbËìÙÑ[õ®)­½·ã¶€$uiRBú’Ùýª?ó5ýšB{;‹;:ìó>ÖÏ<˜•“V-¨ëà³li‰$Karvyø ªOÀ…Ósc”Nýuܘå×5Ìhð”›æ‚-Hù,H-Èd(]¡Q^ìÕq½Á žÖªù' ‚ŠNA,Å øÐ­º%ª`¸à÷—}'_YSÒïªâvëÀ Mmÿç—¨|çæ .Ü¥N“ÂP;Pê÷H4idtƒ˜´• ÊU“ðÏU³¾3—Ùêà†9g\¼FJݳÅl¥>»Ê‘dŽ”klÀëò€!lz°-.åØËãúQ/ñ«ÿúâÙŸáßÿüyM:endstream endobj 2495 0 obj <> stream xœÅ=Ùr7vï,Ä­ÉËeJìÁ¾$ODZgÊ3ñHÌ$©Q$QKÊ”¨)ÙÌä³sÐh ¾}rÊjƒ}ƒƒ³/è¿mØÀ7 ÿÿ}ýáŒmÞý팇ÑÍøÏë›ß]žýö™ðvÃùàµæ›Ë·gñ7†ø`6ÆÊ[¹¹üpö×-?¿`ƒÔ\(W<ø¬¸5ÜnåùçBŽoŸâ0üX;±½:‡G£—ôñÈ?†a%½Ø¾;¿Ö V‹íK|ÔƒRz|!üîMø`Æm‰/xÍ·pTh)„ßàÎH·½  :íھϓÜÀ/aÛÆ &Qƒ•¢xù&ÂÁ˜Ü>Ï¿{’oñ… ô‡¯Ïaf«˜'ëý÷å²ýÆÃ¢Â¨€l7xÇüæòdzËüëö?Θ0ÞàÒðGma‡°+&%¬ð%¥¶Ân¯ËgéØ`,à ¶-a3~{‹/X«`žâù >kk9³€260ç„`yI«Šu>ƹ3q‹J3ygÑðãâõ[œÅ"/jœpãyfaš×q'´NSÂËUoò>>ƽ÷]È®ï"¸ÖÊîÛoâ„Μ›O`ýq!á¸+M»èÍ4!ì 瑬rk‹·o¢=ü*Î!•Ì?t¾…[xáå8…³À,ÓŸÏ‘Ȅ׃0˜øò ˜6.Áð¶ŸâNÊ2Î…D@‰ƒî¾Nfù ŽD 'FFãá—l¢Ça›üÊǼC„ó"zÁÅ ƒôAxÅ· …ad’Ò@‡Jn/3Õd ñŒuÚi·§àqj@ÁH³’‘P<0ýá¥/íIÂ2fPÞÛù5¾Í<ÊOäè¯ îuTÙ$Z¤[•fû w€]ž(•7ç𬨱"´Ñ3j“vÀÕ{€{LM—¼Y½Ä›x(Lâƒ,T‹¬p„vû6¬£˜Hs@¢kŸØàs|ÕË’a¦c"+Ôl?SÊ"N§áORØ5lÒàðKŠ:>ç™0ùEÜ¢dÖGþ‰,Ù§G(d×OpO ETÊÚ.ÂïãïœâÅ!tÞ¦ÏkEÛ_{@_& ¨Ê ?£b•’1ye”Söä%×”à’ ê±@wTê_ŽªL –$²ÌÊ P^‚ðÐ5Ö%øë´{$žU#æ€÷@6Ü#æ`ŠBY|!ã3¾«NàêPõ£Ab‰Š^¡ïã’ŽâÅ‹ i÷áÙ8-·¿)¤… Â@Ûÿ>ì\3°ï?FTº%¥§óÛg’Iê…ƒððq¤¦kôÙµñ;=¾Ê·ùñu~¼ ®>·A$µ^x?=6cÚ!Fsó“ Dé@»pÈÔ=¾ã² Qª‚‰fž;æs!ìE~yò:XG¥ž5¼ÛZÏvH˜Ð1yPÑíH€ür¬sm=ã›æq+³"Û7_ó ½ËŸÃi2Í£Ë%Zmåi†ãÆE¾»<û3®düæÝ홂cÙürÆ6ߟ X |¨ r¾ù#Fø4r}ö¼›« O±9˜bàg¡cpŽå›üH~YmŽŒÎ¨öMAªas‚mà݈5`-ø£6b Èj'¿f8îóãÐâ©&#L ¶F¡Frб$JjR Ç@‹ZC%3ô.S‰ÔNR„4xžGQLºŠ?8I L;Qœ^—d'`EÃÈ1ÐhPD„è>3ãGßÀÍ)­j9Å‚ªÎò©'Î;U½}ß%½„žkAŠ(ó”áÔ0™Â˜Z c׎¯¢/Ôðí;«qzðÒVÊH|åð_Ð4Ô0ˆöžP!j&5Ø*N7\!ü]›˜¤;=ÿ Ê^Õ¤>‚܇!"‡@•Å)AûǨ@‚)&ïCb¼Møc6‚¤¬;y×Äý^U GËSøëÁäÐâóQYL^4*¬èÅ1h„)§¨"‘…!…Ž Ÿ›£w­òNÀܼ¢;±Fø1;á4,üI+ðÀµÚIÑäÙaª¶ä©³\VaX$pøô{¼+Àz¯CnóxJ|žE FP/“ÊE€‰ó eàOjÉ})»ß+HÕHN<îj9“c®°ô3›ï^¤g®Q‚ë# î[×Q…¸¡bÉÑø‡-#Aˆ*Œ"Pу©µb©A:8ˆ)L÷‚ª_ƒ³«ÌÌ•/cª&èÅxìªW8)ɦARgbO·$Œ–côŒ!$ï &i-jb­B´Üê‘ßQ åº|FŒ9 ÜtŒ®«·RÆ*(kö³/4v¹(ý%œH–=}®¦5P¹%Àܰ¯æö§Ð`Fô4rˆ9¦‹‡!˜b0è¿>Šƒ¥ÁÆ2†îD;‘GíD£ß,Ê4,b_¡²)0jѪ?£Íz]Âñ¶h!¸#('¸û1z“G¯òã—üxÝ<´ÍCûÐ|—x;Ì$ŽñB/ˆVLr É£×ί`‰C-¢é'‹èðŒo°ÄcXDy'É":|'“Eæ7óf KpåAÒyü‰%pp-PöM#‡À¡ÅÀâ޶yãM“НšT|“vz¶Þ‰à,d] ›kipaJÕù1±yih}i«¨ª0jÒ¢÷±Só’ªðF¥þC^YörÝôåÑUöfÛ+‹ª]u0—  ##¦âæuA ;$šÔ`O~C¢œÇÌú¨mdF2@×Fư _4ðc’ÑDV\O\¦˜&£í6®b/®ÓßÛÉó5uÌÅÊdƒ 1ÞÞ²[sîjv€4‡—ðH ˜³²›|#s—™ö&HdÍÈ¢Ms¿Ç1 /oÍs(š-Nþý_Öi³Z_dm6V\¦[¨¹^Èk4y#°e‚â?[:`ûSÓ(mëå,#›"Pq'Ô>ÂcA•G=2ú:J&|öªç1ŽâÒ”Iëy5@8dêT߯©-¸Xß”Ü=6¥«ú§fp^VùsUÚî= y~Š~‰å¼–Vø;ß/«J>qÃÎ-ø³8ñ¾ògAÔ ÆŠ¶¸¡2›Jឃw•ÆÁ*Áå*hqéÆVRÍ ¾¢iAb®¨¹LÅmVLìÖ“e9F°>U_‚6ÅÊ”*`=—«uqXUÃÆB"«0ÿ+8â¸Uw¦.bËÊÁ^œ¢ëÝÆQvxN 6ï³1þṳ̂Ê—;Â\kÐÓ¤¬´MŠ“l)†’ÃÎL•¼,Ë«(Ôü(gËcúÞÅ Ì kƒ`x±%ËôÂ)é}}p=Ћs²L  9¨²Ä&“v;ll4pÔ8¸ª}¿ Þ¿äÑWyôºç[Ì3›ZÓx&*A2¿%â®™yIà ¸*„r|¤s䕉ÉÎä^&Ó-6ôKž…¿Ó––ÍA5êÂ3åÞuåˆ_ ÁKu ”¿W§ºçêRV‚ḺœEÚ2hHÅï|ý™”gÁ m§V©'èè,wq÷R¹š4px±Â,œšé>éO{§S¹ qJ[±"Bâ †c%(¤3‰/– Mò/MK UFdª¢©ÝT¸¾Ñç5åD Sí ‚\šv‡jÔ‘\¹Víú°å\ú`$ÃLÒ§'ˆ.Ué¾Þ€0n°¦ßSšVÂ`ÀgÖ€ÃÞ›¶#V…í›${ÁˆtU—àëBbk‡2Uà#´Ô´Éfýh*¦ ;p¦á`ÇI¨Ly§1%å5¢*&IhÙ`\­ð§Ûþ¸lªŠF]önWL­íO­¯–ÐërÑ6¥å„“Gè±ê©ä»Ýu^h4ƒ¡KµØHêH×2¯ªv…ë8›Ðe!8E|#Ö²ê¥9æ÷ïEÀ½ð>Õ?@Ù?BªÄá¹Éªz³Šy€ 18Qö1ô«DÂIîU%ì%. ®8øVÒ’(x98 .q Lm?nœìdŒ‚±“—Þƒ vq'ÿÛD9© ØU(Ò­ ¨û¥ð¨Œ%¬¶ÔJ?d-£-Pã]žºS©â‡åj!Ú~LÝ›ú*ê6Nͤ|¼Heè3êÍÒ)¤X,˜Ð£+ó;˜0¤TX]Ü,xL +“Ko¢ §à,L‹±#zUÙ:¾kä)ËÖ%Z·¼Ö(Ó ÿ°À™kÙ¸ Wû6ÎÀt·°¢iMk Û£Û “ {—¼ƒ “bâÔç™Û¿ÍÿÖŠ”Ð~(ª±ªÍKe  ÀÇ”„E±L8RÕæÁ• SqÊ1ùø/Žïòãï²(ý÷,`¿ŸŠI¦AK((Q9N˜a°º‚ó/¢ï3DÏòèÓ<úSý!Šú™Ô½keGŸG%ží%Ž^‘q*hCZ [¶/>·fzCÕÎŽjݵઆ"ìö‡“.lÖÃᬰ”töÔfé×øøó²4X¦çhÓqnì)¬¦Ñ‹*>E$Ss•ÚˆhúÚ ±Ð“»Š“qµ{WuÂÔŒíDDˆÛÐkC™u‚"mñÊ»Gj©û˜$殥_š­ÒÜH,÷^ˆ ô“ÉÑ„± |CÝ …¥ë<{›Mu“»ì:]‚CÕÑ·d·ìÁ{e¬F¦'k=¨0ÎAeŽEhF Ôô õ‰M)TdÏ1´®KñVK¡¢É‡ãZéómÏTbŒÜË´L™‡žÔì¶ŠÚߊmLHŽUDõì €KÑx ¥‘fDž„ô®î½¥IÏ;_ýbÐ7ð…Îò]vLì€Æ…„˜^˜|!6­ß åtzDëVIng»ùFz ;Ê#ÃìØç*þg!’Àv«[Âðõêâ ‚ÊÐ)\ÉËE&”T ýpÂ\P×î¯kF27Hc7§Šó̼F‰ÆøŠÙkL#Çx˜œ-üßvaäʼy]~–«¯œ ¡%Ð<ú¿ÜY,‚FÙ‰³€ÞÝ i}“ZõêØÎ3±ûgÂZ´¼"…CæA¤ÀË¡¼[M§éŽÒƒ”\b9f0P¶Ù“öî“° ,bûN/¯"­>ËiÃt»¹ÕàÝW9—Pm ô 7ÀM¹îßà‚@+N5Ò1M³;,Œ?5 ¯ÜÐ+ó¨@ hBTfío$GêR©~ñ„Zb²Qÿ½ì4ïgWãu ÒW—5t Ç*ïl¹AVðP5ÓI/´ÛE4¼“ ¶ÈFxg¢sŒv á4rP×2Ÿq <ÿÇj[ŸœYºðЦŽÚ Þ8Èew'§@F«P„PÝuÀÀ ^Hßí²8ð.«&ÿye¥Þ‚ÿüüDGXUêóÖò?6ß%3ÈH‰H.m{ÏËŠ 庯vèÍŽ#tèªMGØ(a¿šš=“¿ÝZ—mœìŒ'±|G›Âõ©î;v$C9ªæáÒŽž[UÝ„¿Äû)ç-ÉÅÂ70u¼¦Ö#¾+—ndTZ;œ*ÑÕɺÚs‰&áïóã³üø4?þ”IèŽT±~—GI˜ïióÝË&½W½G¨([z@‚ê×¶þ×2 —†À0p½à‰±±^5ýË·y”d_ò(i6 ¾h}qU?‰ÏÑdô“xúö<Ýî‹+¤<««š©'Ù«Pí_¬ÀðIU$gæ…{³úɪŒ\áU ÖWë(fÎ ¿3Œº ÷¸ÿjÖ¹ ×Úr+®ð#ª[u7Оap_±ó;[$`t®ë3VÁn_4FÄýRåÑ—ž’ýPUy]®kâ7¾ŽÝd¥P£â—¶Ó’þ*¹†xÀVî2u°‹ÜOýˆäïó›,‹00‚sÊ„›y+¾pûù‰DmUb·d ã÷F0äwhpOâ_Õš[×Ö5,<˜˜­}È($ÛWpÜ5!»k®–¯iíˆYŽYò„Ÿc?îáðû6‚¢ò D&Õèõ:¼œgÉ•äàÆÏà`1¾+:7u”ZLl/ä]ðìº\êJÅ9LéÉR,å+ˆ¢¯iù`ü~σã1öå0¡ã»!©P¾†u¨šé\£ûd¼þ Näˆk­q‘`ùÄå˜^y«5¬| ÜŠôœÒ±Ø ¼_ˆyª!¨Ñ¶ ½„Àj³]waú¸ÿ•}DÛ{*±Ò«óx=g¼lK‚OI̓š—U[½ê먮hî&ÁïZn䬩Æ^HW5eY?Û Åãåq7eµæR$Ê_N˜‡Æ†W7ÇêH˜eníá¨ã]ƒ¬u»Zå"LTXæ]A° Ɖ53¯àŽJáj‡Õ½¾rûÂW²Ô¢Û±}¬fˆ˜ìy}øgïOäõTú|¹N'`:kí‘\Ôº0 ™wÒÜ‘ÌGJm0¿VbÞIŽ «ýàt¹@‰íÚÈmöìâ,2ßùÄ&ÞˆæBl¸ùÎÇèaênïTÊŽíù^. Oƒù³Ù·¾Â‚j1_ašÉ×#ì{aÐWñÖqWËP— /¥`í¯SÌ|º71õE‘º(¿ÿTökG ð“…‰â©?ûdª+#ÊeWkÜEò±¢sN—>ÏÓT-”© ãOÙ²%Í?æÑ‹pâÊ@×tÏ>~:G ³xo“kv|$Û3޽· óD¬s‘Êmü;çöïç’x5•9¦Èá7n1E±è—qoÃO—¿<™_Vºnó(ñË>5Ã_Ÿ›£wÍÑWËᯋ„ R]<´·®¶Qµ<8œ» ËàÁY[Ö‹[~뿪b4ȱZJ)¼QQøÝdø2ÎÈéT'[S¿æçXt¦•¤šn† ”×ã0(A]¿¬ lV–‰¹™5c¼Š_Ò hÄŽÒø} 9(+Zö5eÒùè2s{‡]SgÓXbJ6]¤õJê]w‡.‘imªÄeèE[N\â+Ænô×£Àòø-ÛÚjÁú{íö¸šl¼ž¸1]nõÀ¤&ð›S¶õyÂp‚ÄöìÖê^{ÚÎL‡O9¬ô}ÃÏ>”K'¤ÂyY’‘´I`V–´wGáÑeIã]+¬²¸à:Ò—y™cŽ?äÑõeIÕMCn-_ú¼+%¦eãI®ËTv'O’¾ÉVÎÊñ­¡¢ñ)ÕØµØh'Á[wNgüvïî®´Æãˆùéµ· hd­ýRÜ%œ w«Í·ÿTó”U×,V6)Û»t$«ÿƒ$sÖ¶/¹ ®Õ5M*GŸeJÚ|T >­~6%Ìômó…ç-nkrÞ%nrs à¯lÁ¦%zጓҤcõÅW<$Öö‡BïÆùÂ-w+h;¶´™qÇÀm5¯¾,Ýø †g§ðH»Àæn} ü¤°’ºˆ0¥ ½¦z†ŽÓXhûä´óöÇ“§€ ¡Ún!Z/Ôùkü©±¦÷Ó±lÚ.|Óp&kT¸÷²sB%•c‡lÿÃG|°%8@ò`¦p.¿±ì«ù¥×øÍŠtûáWBÏU³u3ò•T¯pd‹mÂÁ®W˜WÅ~âÓv_=v€Š‰P­ù||¼dE‚Ø'%W©¼Ö[Q˜ö= –{ã»…’î7¼ÞF2]ާ$²'Ô8¯Ã¾ç²=`Dø^Üâ:Ù«½åëhñÎЇôµÐøÍã Xµƒs~þM_ŸÕô8•™ýùìÿäÕºîendstream endobj 2503 0 obj <> stream xœí=ÉrÇ‘wØãƒChÕ¾È'KÖ84¡™‘-ÎaBòA$HA¤R4ÿ`>{2kéÊÚú5ŠrĈŠ`³Q]•••ûRøÇ)[ø)Ã?éï'¯NØéåÉ?Nxx{šþzòêôËG'ŸÿÍ êo„Q§žÄoø)WnQðÊX¹p+O½:ùáð¿gl‘ÌYËÿþèßá[É$ý6<:ß?º€ÑßÃh®½pöð¨<þ  Ó\þ4ð]yüSóY÷ö?ÊãŸËã•Çÿ._–ÇoËãר¡[¾B‡×‹á&ï苳s)Í"9¼=;g‹ÒÌ3yxŽÏÚjçÄá)‘‹õæpƒ¯­5N¸Ã»8D*ÉoÈpxnÑÞñÃk€DIi•?ü|vÎf´÷¸N˜Ï⣰‹ÖÜ>Ä~–f°œÇµÕbüáR[a |Ë?ü´.1nøÏs|Ñòð¾LJo+äQ¨ŸÄÝ<ÇÏ ð€œmkpÓëaøÃeØ9ñ-<f™ÉXpÀÍù½†Ÿ¤Јö´¦ãÖPë\~-…ÅYVÅkª Ëœ‡ÁJ2xüœ{¿8î€}îÑFü\–Ó¡,ÒØÅ‰ž„€Ÿg aMiüÂd×þØÃë ò|E0K¿ÀÝ"´«Ÿv¬ÔtË„† ©QP®béò°7iÙ”Y†Ë(é(Égr­IMZ (Me‹ä…3õR{,“x ÿ!Üëë8‚ãnÖ¤óFú±œ4 w~¥èåìNoqŒV8BÒ7ñtŸû´àK38I#â\—~9Ó þ*ý0Ðx¾Ԫ"T2â1¡ü+2$“®NóŸäg'iB]ø¬ÌILéU"}ͳV«Dè:gƈqmGÄ5…–÷—¨lÈ"C¥ìuTÁèì ™œŒx &9˜¥vÀÀ‹ åâ¦( ÃÛõñùáÇŸGgLäÕ%ŸE¸uµ^¶'@võ¸ÔNh]ÍA7L8•"ðqD½“ª`ú0n[tãkôúýd}ºæ^ôè'wåíBH•j^θ„ö ¬›¹SãÆ¤)™ šL…ƒhÞ þ/dÐl¬¶eñü厦õO‰‡¸9üx §G©ŠòK/èP¡ÿãYœ^ŒÑp=w„FÉÄ3Šjµ'(ƒ T:|µY=js¦á3II–ÿ×'¥ájCúq~Ýé(qµX¦ö`=îôs‰ú‹Šr Μ@µ§Q$( jŒ²;s¼35-9{«“XëñÎ`ÛËÝQZCÉÌÝ"Ŷ' šsI73&oªržãwàôk;q.zK–J÷Ö †ïe‚IÖütÂ]Ïɧ`Q!ß:©)AÑgJ¨}²èC`ø(-¡tutÕt,JÚõXˆûL^9\è$àef ÐÃ¥3Ò•n¯›ÂªjJ./Ã>‘S› áw`u¢<ÅísÍÁ‚ †“ëÌ~âeÛ? Ô©IÍÙ¦¶7 s\O°ÚØW ŒPgùÃsyÜaØUPñpæl–/¡+ÄÁh¼º€g©èˆgñ­W¢â 1!•@Ïyå@ÏÊ$zîñNSÙÊHÛÃ] „› @PÕ—¯£ æ8¿­=ûŽl¢ÂãÞŒ¬atËÝ‹ŒƒíÈk%Ñø#r,7k¤´ƒ‘Úè2K¡úxΠA„¹%`ETÉáœ'înŸ ü ’úø ÔxZUy«3n-_£ *|â$ (7¬Ü&1n° ¦(»ü¢¹Ê²‹7SÞÏÈ)ßýN}÷·iF£ª¦d‚2…â!«¬Ïr/B]ëqº»wÓÓ› Øz‹ªÁJ`jÛ\Â9ÀÌ{8R‚ e-ŸÅ·Öo“R€DÕµ÷“øÒÿ@†“éLaÏM×±ëžá7q¸óØA’4À¤Û£aí«Hœ±Í·ÔA` ËPyg– óÍL2J¶„š;\¡@…%'#(I¤“qfd†pp¿Í`G[@Ûž'(~£b䦦Ê:ä‰ÎŒ[#Š(QÉìÌøÊš¨´ù¹4 6õü”Óz’kÓš¾ø©4õþ ÐÀÁ“ –„Ñ Gmp±óçßõ«eK&¡Ð3{G-×P“N)T¼hĬÓ\Äiíio¥¯¬J‹×_VÙ©ÁÜpzÀ ¶œšûT¨>'8»x¹rÂïÂX'…̲ÜxU *߯9”iv÷ÖÎsDjNK×þc[¶àÓÙœÓ[g+ç`–F(Å8´r1“€?×Ëó s¶U%Þ€ÖÛ¶0sõñ5‰]ŒÑ{|²[^ªiG‚—£á §šÅ»(ùSJ„uZäúâ‰éÊ/»‰›‘ª¶ZfÞüE<aj(L² qât”ì©ÁÜ.Á·YÔ¦…€#Óy6kÙ–ÑöW<6ô¢¥]8ë ‹e›énüÒ¥ä™c‡ñ‰ÉÝ]áÙÛ†¤_ ¯÷5š`£Td§Ñv'tB $Úøj«‰?Ù…‡>ƒò·Ú,ʪäo2¯L+º¾aSi#+V‚ð§Þå²J2ê˜5é·R ‘·m£øS5RJYÃ¥nýSÌ€»‘l}õûÊ@ÿòSÃv3ÁØ97Q< #[WÞúmÙ€CœÚWÆÆÊÎE·ö؉ÄE>®bɳ½`1¯ß$F8Bý‘BDE!uü¸uj;_â"aŒãl'ºŽ »|Êy†¥בD)Bû¶äUJÚ0½G'ôZ3 ù +k4Ì¡ùÝS=Iã»5÷[(ȃóq+Z&¶a¤1^0‡£÷¤À6’RwÅËê›À?c²@üñ™ŽÄ.K$Œ~Sxƒ0Õ J© MÝÄ)\SÊÓÚJ \QΛ‚¥-Ad8¸ÿb‡Š)âFlUm@SõùjÅxÒg7•WJÎK òx"sÂDˆjO¼×ΛfˆŸiÅTo»ŒÎ7)FQå& ;f%cXìÓ°ÒWƯpÈØ"Lö1U öd*>H)?º Se=²Æâc¾C}ËX¹·#:ñT Z.‹:jPæ`îgnWCD`™Í^S žâÌ®º:Ú[h’ÁÛaÂdiK…Xú4¤ý‘jn<–À|Z5*­ÊN4‹zOœ3ýpNÙÏsm·PØØ ¹›Ž‡(óQíÑ›êáSšÄ¦ÃÇe?±Ô\ë…yÛh˜d´ªwºÚöL¿ŒÏ!´µ%°aJ¬÷ox „½©Õ‡âžêg}5’NÇðß‘`„VM:2gA˜RÉÞR{eN›YžeÌé[œÜ'ãt°DÖÖ‘£eLƒhç >VÔT®pˆ憺´ÈM$cù@Pй¶\ õ¨µƒUy? †'oó~]—"0‘âÕ{òt] ¶Z”˜ºÓ L˜g³i3~|^¾)Ä‚ø©<¾,OËã³òø¢)mûäÜ®ÁÈ¡òÒ·0¬BíØúá«ý0ãt_?:ù+Î +_Þœ€¡Oߟ°Ó¿œpðÀ¸=•^©EðÓWðF›õÅÕÉ÷ÓÞãÄÔ{ 3,.̸Øz|9Äæõ6²š®À¥w”ÚÁ³äA¤††Rî˜Ä_#³€OPj¨;™Õª6_÷¯°kMzI¼ß,á§”s“pÆ.‡fFa1´¯7B§”&y–ò+4жëL¼ù™Z¹^…ßÛ ÔÎB$Œmzùû¹‰„#qm2x–s£¨iÒÏ@ù !dÕ9S¨Wf¢ô?‘p\¨®Øa{4EôxD¤äi«ö®›üxÏ(ÖáqÑZ3$áù¢&i–*ä³ Ÿ;ÑM)ŒŒý“ò›D!ZΜЮ+Ì„:£Î9Ô‰kRìt‚[Ñ鉄8­…oƒºCcz³sÈ,mw`daç¦)Ŷ ÎË pžk¦‡íÑXiRèXƒÅÖ±löFuvlÝD§ØŽŸà3’qw.ýÃLŽü }œ<÷êä‚Ye ´hXJà ؓU3rx)7s±›¾­ û6>¡Å $É«å“P£Ž6 ¥Wå~æ"F4s±Œ^ëª!»¥Î´¼PiÙY«–áµ ;ËuŽå‡¹Ak¡ì¿¶ÿâc¸I#æ`fäí‡Þ0ã^£Çu*àÅ¢Æ=ú`ë‹;a0ÂæLXï­°1œoÊãóN!¦Ñœ"È„ûÀ 3,NÕ`¾‚Iî3y:°ƒüɶa©`M¹ÚÿH„.öZíQ,meŸå‹U­Ö’Vb1Aç#YŠ ·¤, 1Zܾé¾³ÀG›M!´Sâme—ôõE÷@y“J$‹±+^š–üÕQ¬D3mYÞ­"•Á¦[Ln‰xÔíØ{ß„fà;ÉÍàœJÅk@O{Nhæ(yÏ&(@‰¨{èšÍ(bw¼ j£…—äæ¡ÂL+âÛb‚ˆmn´3 -wb+V£ZÄS[æx$u Mr+&¸®úsêÁðraã>àq v‚­î(¸_clhªó+2š¾|Öf%Ë0Ë‘¾Ø!Eá G^¥û.&Z7ò oOy0[xºä SÇý«8µ1r”ŽÉ—qQ‹Ä°Ši”C€ÜìÈ”6~z¤þžöÌë2ðY¤Á-Îιßw»YPH´]œÏq Ø­6z·Ò/NÔ‰úꬉ÷h˜ÒiDxLÞ£ñž9Ü;¹8ÖoP…RSiSvŸ1¹Ý̪-“Š8”¸Ê¬H<ÙL7Š9êHˆò ¸Xw #.!æyÙ[fÕPýhëøÏ°óÃ.6Ûù”‡£sºjÖiÚ˜Ÿ4NËu—{€8Øúþ³\1•z4‘H\FA4Í82æ Ò 1cÛ׃¯+Çd–h®\P=jV›=fÑÂî]•h ¡*o%^ÆÎ‚ô[­kŠ–Ýå·‰-aÙﲩÖdù ²ÐCKàW3Y_HãÂ!¼¾UhÉ“4ÜLzSVw{âù‘¢*.Œ)X§§¾ÝÛ8»hšÆRî)H‹T(Uœ!ôæ.š?ÛmV<@\0¯ p»Š“K€*iàÌý~ '˜FWWáùz¹Ðõ&шqŒ*oú»™:’ gmP¶Íœ‚I˜ü&~¨ÅéMZÄá]£6g¸êVìwq6¼jÒÎÚ´âhãõz(°Œª "àÂx]TW-¬Ã¿®æB¸ùøÆÕB¨xuôÿÖõRU(vŠ|ÕÞ×h©=G‹vÄõ°Œ^ÃÁr¶=#V§Ð·q27nÂêª?°©NÈ[Lî0*—×®±Ü@ÝÚ´¯Zƒçäìfé‘F#²éÙêqÛ^¸ñ¤¨³æü4µÔíù!€^19Ô`Xc ø¯}›+Z`Ö£'Øû^.ܳ0ë2G”ym;©q #‰Q…3»S´ÏÈ NOÏ*ݹi~±Üìbœœ=e ”Šf×]¤½+S[Q#E3S5ÑGTVá´gl3n©ßåsÜ7o;0Ð4 ÇL#À¹W½¡†“£ºl *)æÆ`c»cO;óSRÀŸËÚ7‡Ùy^fÝÃÐäÓ¾ð» \ïÅ+\7\ÝhÌÖÂ{˜Ù^k*ìŸOÔ™Ï#ÞU’ÁfjÞP5Îˬ½u’tíµÕD‰ÅCR{—xõq›N4Q12BÔx`d´Ý}##Ü‹¶/²¬¬\˜®¨4¶—»n6¦ç˜o¦¢ó„j>aËp"\\7w–qq1«Óùe½G½q8Âfû `œMlð7^))îâƒ(Ìn%GDº ¯"R&^j¶’fã_Äóò'ˆÅO†»ãˆ¨;=Z!9-œJ‚Mmû{þ˜µçþ]tu°Å¢/'ÖMßš“&R±`©O˜¨¾À  -;oçþHl¥šØSÕÑn^^¯ØWX³Úß ‰ëƒšêÛCÔ‚PŠšÅ¿ƒeH( ž•fž‘nHo^…(µ4 ©EP1jtwb&ùðasEÊdôu5w?›®ž.¼ñ˜íY}‹zɈÿ¡’ÚeÑH×ðOéÝ“RÜÑî=«Ÿ¥ŸÎÂ,“ÇÕâÃÍÃBÉñt—ûÿ`ið¬¥;¡\àÚÁ-ÌXë"ÏÒþ²†àÐÛõ†ßȵ8C˜=/‡5‰E÷–~YMŸFK eÁ¥A!AîÎòRoVsýC‰¹¶Ïßb(t«‘ 1æ£äpnÙÈá{†ëD-¿¯Ž“Öåz•-—³mVDÇÒç‰$ÆaÜ}îP^ºÿçp~ƒTjÑÍîÏ¢Xf\oîù¡ûÄ&«Ó¬Žx㶇 ¤Í,†MuäJ( %fm¸ÙJDïÅ[¨£é¢AûBÇ)3µµn7º=–Z -U~5O©@ŒÛ=’jÅ/ÊãçgkàçTe•ˆÍ éuxŒ—ã·A7X©yöÔãë§e0yû¢¼½*o¯ÊÛRŒ˜îuˆ[«mHRBZZabQ¬&}M·…àiμT¡>)ß {làäF”7峈…Uåãâ€ßÊÉñƤå¸X”®.U˜ã"…In3iü9vú+–”õW¦8w1j…î·ù. n,Fhc͈Bäâã³ÿ"À$·I§kšlr“Àü‚Ë•ßÄš)˦aüÆHˆ×–»Îˆ>rkÁ$Úó2Ý §·­^Åú*ͺhxø…@Û ¤ô '7Ì~WføËÍ&ZªÛËRVù¦J½-òaß§‡ÑXvçЊ‹e©"kÒ—ÇÒ_±:ÿõäÿq 9‰endstream endobj 2518 0 obj <> stream xœÕ]Ks·¾+¹åð¸[%Nð~Ø'Û‰¸’*Çb•“r|EYJY|Ø´±òò³Ó `fôì.w)%¥‡C €~:ƒ<ø¯ü|qõDœ½zòÓ™Þž•/®Î>½xòÛ¯½ŠgqˆN9svñÓü<“Ê ÖÄ3çõ ½>»¸zòíæ?[1h¼—ß]| ߪX} VGìáâZµU~ð6øÍsøÎhíMÜü²=‡g+¢Ð›Ÿ·çrÎÆ¸ù¾ÖÚzå7/ð;ë„Úü¸=7 ÚËÍ'Ð…ŒÑ+¹¹‚G‚RÐâeêÎ /ÜæŸ½7Ú‡q%UÜÜlU€g¹¹»ƒ!æÏnæÉ½!³(ÏABodþßoÏ¡7뜢’•0k¥½,ó¦jrƒ¯4rÕë×ølŽ!-75Å\Ö¯±yPÖŽTpA…‘ªi ¯Ò¼`Úר‡Lôt?äžµÚkð?¤Ý&:º^J²›<бl]j|Kº+ÏÚh9ÒO["o)ï™ìÈJïHÛ²(­¼«X!O6|Ax$¶‚®ÿŒ¯£rШêå:÷à×êýyz6Zøˆs:'u.Ȇ“ynWÈ^»yKVwµ=×>ZÆÍïpq°5QŽ͸-÷/±èÙÅ‹’.ú¼H¥ªÐD#_râDƒ”‘›oIs3w±Cípîw8' ‚ ,—Ôü4 ¾ËÀ‰—ùï(£X*I¡Ï×™ÀIÕëD~)€ó™>.Éb—B3µI3‰ª¢Ù5"‘‘¦•Óq…µ¨PPÙÔt#ë>CÌ”&¨ƒ‚ awQ<€½Õ ûÆ×N[Z¤Ç×y¹QÙÆÆÁÁ€q3$ñŽ: Èû.[3H§&<~Š;/•Êü—ósbxh12Ã[[ž 1a¶ ³ ÿÌ @*ÝHN »÷RxÊèHüè@B4|‰«v§ bà5ÅxºS„ÿ¯Éôîrׯ›ët´ƒ”5_ÒþÆí!ð5S¥©`–ˆAV]/1«§,tôƒèBVáÌþ¼‹4ø¸#\ P#ãbEâ54šD‰†+{8ehWC#Sv`$±"¥0®‘`†€Ü<ÏL& ° °·U“ÆMÌLÑû y&M¾'ƒÐ&e­`wøöiš™õϳåØnÇ‹šhÊ:à4sjÖîB åGÂp°$¬€†U xjhHЕBÌP^¢R§»~]C*è6P“­ˆáÂ㚀ágÖ¨ýŒ‰DFõ„QYÐyÐúdÒˆ«1ÀtŸã\¥ȯ¾£k“[‡V@âí›ù‘XTT(ö7å  |¨¸'A?÷@,`¥Z{Ô¶ôDº"¤¸æÑ¼P¬ œh×êX£Êùª+p` ª·Ì-µ9HæàK£@椦¢Qˆ"œ?Êôç̤šeÅøOýËÿJÿ.=Â.—}±·(¥}(Rßœ»<°×ZÀ…\õ_Æ%&¤ÐqK$"OÐg ŒH üq~ˆr~¦nÍù!­ïå`L00-ÀF`•…êGMfYãw©ûM#4I÷ËÁ »¢°…·jmûV£‚m;Ö^2øA¶‰™®—;—ÞªÉ%ÑôàƒÛüšÁ¨7™®0óGöÎæåPùB“H„Xò_ÐB ö"«ks@Åšdîâ¬AK*c„TÅzˆÖ¨öü½]e:µ‡ý%ýÃöù÷cu¿gÝäðÆð)ç¹äÖMœî<óI$•‰.æÏ‹Ð}6óÎ$”sQo~³5`úFá7»ýä»Y!‰>UØ|ŠV š¶2èç×=€~`n ƒÖï×)ª#+݃ ë,nÕ<Ô!0:ê2ûF›Õ˜:ÉróMêWGaXÜ¡\ÆÖ‘ ð]Ði.@Iw.ŠŽH Æà%¯eAË=Z›÷i À?¿Ë á"R°çÂF5RAû•xRÏjÕ,øËkO#½ Î©ÈSjÕãÊ®i«Pì˶i" -ûl›¶zˆà^s#ÖÀ:-ƒì…›É«qÞ¡â„B/'kÿ–0õ(¨Éˆ1!‹AÆÉµÖ± <†¦Èü8ÿdiÏ÷ÔØcP=u'”ãŠ>µÙÝPrÂGÏØó‚yow@¼C,:I ýÁ6 ůM¿»¼dém›q_Î|ðŒÈ4Vh6n©÷W$Ȳ÷ê%"÷h"Ì«1ò(Õ—vªXš‹¡{ÞZ\ÌwÃæfjÓõ{P5&P¨}µ`ÜsqfÂQ(w 8¾ÐœíGÙüfž-³´¬Dµ³ûdǨÓL)¸’lBÊz©ÚdSš•”}qgF'³¦ƒßeB¡Û]ëà¬.$pÔÈôëºx–s Æºý‘• 5@¦Åeò»ˆ!–çíïRß2ÑeH=ËFŒrŒC7¹“±¤úya󤈅ßÂæómCô1r[¸r”3÷ògR'êz*Ú…ÀF#RNŒ»j=açÎ*ÎËã‚|œP¿Êƒb¶…(hÚº™ Œò*?ïÝlð,’D° ¿GLƒ#m£Ûȶ$I±ÀW³7–6˜CÕ\Pž‰;Ð8}æ‚ $„˜ÆO$¬mµâH“n“D ûí¿Í; !0”#8üËm¦õ´ÍšqßmN­Õclsš·Öµ Ò&?ͳ¢â\Ã@O_P&¯Õ’÷È5Q—3’ôpÝqjsZNëÒuÑî—LØÀ*š—¹;‘—,àZO »¯Yz@ð)ãuÏr\ÈHk•âDçèf£­ˆ¹¿("ÈkÊf–Ý‘W: ÚËj?a‡Ë¦(…pÊ›SD!Œ@ÍÊ¢<±NèpåY²*VÔ•BA^”X”ŒDï­KG›´oÙº‹×uªPzа©u­ÑëÝYÊ4†Ò'á+Ìd­Š57‘6éxƒ­PR«•~ÚO3±Ý×9þjÀ{y©Ãžn¾&×»bgªA¹•¨ÄÂKX‰.¤Mì›.“ –6ÑaêaZÄ[Ò#‡ DÈóæC{:4€oå`RÁ ã{Üæ¢™‡C™m]ø|XаÂÎcÇ]`Bk_ÍÒ.ÁÕŲÀ—[éì@R/àÉdïH¸!¥3]Ñj0!N•†ÌöÑxa«MËdƒ6¼Ï!Ù¶Ô# Ú¢¯ï·x5ÒÓÜqYm1°_*´;¾½¾ª`$ÆF¼¥±c˜³—à=}žÖ•ˆX½9Õ8¥tð2ô##:rêz‰æÊù±ªh‘{«j»ëBàbœqæ°¸ÌÀ&k ]i¬LåÒB\=êNEŠ:Ñè£ôè—‰J¸:Hƒ5ásn9UÔb±f€…Ñw9ƒG§àp¦J=ûõ:4±ÐäP¥c‚ƒßj÷aª.\7Ó¾à2bØhù_Ä?€c¾§Ë‰³v"XòN?ƒ‰éßÎ=Hï#7WeÎÚ“†Xîò(ˆÈœ6¬sÞØÚ äÀ °+g/k®ò$ꢫÝ™ÕâÛÜÁÂúᜳË\¥m÷_‹]ÀZMÓ“¼Eú›î WCù‡ £yi•k½5ì ›¢p$R]E°wV‡a©³lóÅmX‚CD&ôE›<ëЩáÇ‘Œë&{ѹ˜`é(dl*À.k¥‰‹û²õ2µ/–¤I’‡ÝG ·¶\~h™¶¡„LòÆQàrd[Ϲ´Iä$øÔA»&ìÿ>Òæ}6s!è{rX1Ù%ìq+såùwÛb—ûœmS€¤DY“ï^ìͳ'kîâcä¾µ;Rð•þ/óàªI‘RË}›À§ôoʽäƒÖŒ±‚ÿ8ÁyJhLNEè‹r¢¾¢¤P½÷ØÐhÍ Úa‹)ÝÈ …æ9/uZª?ã|êl®¥Ò>êNÀ¤ÔÝäÕŠwmã5~"ŸÑêCtSÜ=®UU—ôµö}ž@N©©ï¥fÌ<˜[hÖ–h#Ë)··ºµiðê»®ÉHÍmFU.MÞVP5È¥ÏkÒ㢒kñ¯9 .MäÁffbwÀŸ¹}nËMj'Ч ª+9»„âŸeëÜŽ~ÎŽbÑ|M˜_5»ù¾•ùT…ç¤òŽ‹‰cŠÍ{?zr†Í‘CLTOÝ„  I´Ot€j´êq¾¸Ëƒj'!* 4\-ýg[§æi'(ªÂ©1Žc(³Sfrn j/k‡i.ª1˜ªð Gˆ-`±{˜{“Ëùmu°èVR(.¨ˆÆUs'0 è´EåGZIƒýk£°PCö|þ¼Š}•~*%)J?E'ö¨1ã/Íöc‘ÆzñújˆR `Ÿ9’øÕØhmÍ*1.ØÁñï u?Á¿Gß».ätëØñ)x¯=*š8ng‘ƒ´jÀíQx¹«h©Ç9kð>U¢×d9s>"-_jàEA^[«€©XÔÉ…m6°FS·U˜‚©p@K@/ÒÍKS©:ðËå#è{.6õ"O×ÊÇ.\µ @š\؃¥Xp ûPµë˜TﻄrurΩÁ^)䔬DýƒØëb‹]ÊòÀEEô-Q®÷Ó¶ƒQbœLUœÆùÖœ%W‡® K…×(|(®ÃI±¨QͳRkl‡M0sª0½õ:Y%šwÔ;*ù“¦¢ž7Ó¹-€›^Æ#èѦKsÞïÁ-­Û"†ÿ¯ƒ[E•­Ü:¦Ú7¾H<+~¼ìg_cíšß~¾ é¦µ\² Á6ÖÿȨƎ½¾8r?O¥s:4'ôg>ïÆîÖntÁ)*dgx” ™Í© ¤±çÆ …Abà÷.7A¿‘º'Ü1.2GIÕšX”ØqÌ=ã/ ÂÈUWyÅx1Õêõ!íÅÍ ‹´ ªJSHéßc°,–ÊSc«;ÎM +Ó]in;@GÇxyÀQZ›‹ŠÑRqôÔ½iœ)P"ÚŠí]W”b¼mÌö×IƒºbòÉV¯+òÞ×¥×¹…ÄÁ@°œf |¬œŠ†<úñë¼Få÷(Ã>[cý £Þu‘ÃÎô80‡4²WƒX¸ÙQ3ÌÕ#÷뛺ë1÷aׂ»™âãy.}¦üìQX¾Ec¬–IöïK+ÜïrPÝÚT‚òþô”#¨MZ¢•uL± R§Þ"_³?6ñuýÇm>÷è×í×t4Òÿ¯-ÜTÇ`j[{ ®´ç´0Ú»p¬§©Vî:\ÉL%1{„ŒíxÎ,Ø•*Â)u›“ÖM¶Á»ùcF&C~bîÓyžë1é¾Èî Â^¸³ÔeyÂuí“J¢>ÕaÕ„C: ®zêùˆiq<‡ÚiÒ2 Ø1òAX<´žB×":æÂFŠ5œ¤q6uÆ+k-ý&‡$ôáµôi-í)žG‹ï2bÿ”‰€ñÖBŠÁ¤8ÍD…ýË a3•l½«Õ”®.=.eü·Ù½*jÃ.D¡Ñͳ¯æ&”µ™Cr”ýjIÉœaþG?8ýf<ž!뜠§kæ\Üß$F-u¾b bŸ¡ ßg…§¶§ý¼Mð¾$Ñí.J mB]rWlÞ(ïÙðóT‰b*nã¼vÂmÙr@=¯’y©CÃûã ‹m{õVÏ–ç£c‰‹åɼñU»^šv™:±aXú¹›?gk¯§ q–G¶œªBCË’ )g`²kãTΈD°0B<ƒ1l¥Ê³ÿ:ûjN‹â£Kç@VÚHЋz<^UÞÿœŒhé¤rÕûk„C6Dú>m›ÕÊÙ¾ôÒ‰{¼9'”Šzû°œÉñÝöÜ Ø™òîx“™s¸pd"Nt/x:^ãô|áƒÜ\ÌÁ€i´êúÔ"ŸÎ²†ksr-õáWOîhŒßøbƒZ¼©®?6åŒ_+o1ž¡º)³(¡gt<öålXµqº«ÙP~Ò èÉêz°"ô¬þý¢RZ%0êßÉdÜþ¡úr¶!`!9檉—àyÝÄ[À¥÷)œv•Hâ‘1CÍ:)„ÁN¬èñ¦1›«]ŒwN§‹‰Ñý%6Ö¸<1« Cˆ>+qØ%K”j*I4RæZBkj¼ì{¹3ì]îE9Žˆñ]ÏsÊ&š©vd–¼§5{eSòÝeî/™!ß’Æ·\Ïãä˜ Iu2îé,²ÇüüøÙ¼0¿&n~ü÷üçG1?Úù1 +»ŸÅî s€ýF‘ !CñYuñù³2C¸«þ熈Ö5œšÍÙÅé;Håˆm4ss‚pä¬BÉ”'u’Î-ÈqǾ¹`Ïe>ìì|°cWÅaB®®_Ñx|ì»´åÔÑén½„½ò¼£½ß5á¤0úÛrÒÒß=¡Ì䎽¸xh}Àäô ñÿ4©PN!ý ÊËL˜cÍXô'À 2å>|tÓÄk2þcýŒŽBhò{ƒÄÊÁsʉlÃXLfxàÝ4$`lÈÎ3±1E*p¡V‡1íSP4횯m+ˆªðÄT*tßÙp/‚  ¢hApáïBtú~KÞDØJŽFªé"yKPMvÈîcª¬xöN|#°Øà[6p©Žï^‹eûΫÆ/ñä/ð￸i©áendstream endobj 2528 0 obj <> stream xœÍ][“·q~§]©TålåEg«¸CÜ/z“ˉb9 ÅT*e9U$wI)"µ”¨­?Ÿn3óávv(1vJA8@ht}Ã~}!y!øŸòï§/ç÷¾¾'SëEù×Ó—¿ytïÁCãE\¢SÎ\çoëmêô”¿&œ¾¹¼’‹p6ÆÓã}’gyîhè‡ßæÎJªxºOÓX¹HaNŸÂxiv·xN¿ãfEÿ%Üé XA!ÅN7iD'<õù*£–UŸ2«ˆD†Í‰µO¥UÈhôN‹>ýgjÕ‘¨]2)AúpºJ߯ZZÐ?§Í &ºm µ=ý{Hm|Õ"¾ƒ5¯[¡ªÃå\gJ¢“åLöiˆ>éª-ü~ˆûçó’ÔW 5›’÷J銦üó£î©¨C<öèš8ê)Œ{› êëq_åÁ‚Öë¶§.… mͺZy·˜Ñ´«0àWy'ƒ«ZŸíGÀ”])ï—(åÅ•T‹5Nfñ€‘eap{èÛh³Ä¨«KÛó"OKCªõü¼¾Z5¬íƒ;=9a“gì{)‰¯á—3ÎÇÕÁа;ð-þt@ˆ¶šéüÖ“6KâmA—c2ÂQ3üwI¹Ž ú ürr“¿€Ûy[q6±ÖBgTûô’˜Ë+É{bƒ²–Î6ñ¾‹¶zå~Ü4ŽïŒ1$0Üé_òÚ} ë­â‹Àc=xè´CÑ­%1Ý>ø'iðõ²XAb„äÈí%Kˆè%ÑL HÉÂ’š#ݰyǤö«¬T´Öå#PFHZJÞ&#¥y¹Zbà|ƒ¢$jC¾AÖ–ô)O%„ñ:¯Ç¢ŠÕäÓæôñå•¶6@’IÍÔƒ·>cd¹¼RÈÑ! þeð®éMͬ~ôºޝÏFnÙBÕJwÓ²´¢ãK×ÔYÃ̽mÕ‹<+¸}ØñöÒ—#I„¿~Í»«´?¿Å‹1EjóyžË˜mÿÓYÜV‹H]XÉÂ&ÃÑâ!fB´ªšÏ»ÿ¤iˆui/§“(y™¸ÓÒÆù|ÓK{Äâ^ÇéLp²Ï7Ò37ðD9Rή:¹þô`o}•3´ƒ8Äwûç‹ýó‹á‰ÍhháØùñþùdÿü&}º ]-”‡p‘¤$í×Ö l­Ã C¢<±tÙ¢–óµ² 2ç|;äüi“´§¾À|©Q³$<ý.úXí58p5QH™„ùdË:‡`f ™6ÚßrY‹[«ÓÕB«ŠÝv3®ë&ñNz‡¯|"Ï+3Ã* ââé4 ÉáƒÞÖ&Á>(-¾g$BÊ\U­/xJ¤^Vi‰¿|% š fß•ÚbâI¥1Dn†ø¤å&¥µ à„Plo :Ÿ2iS„êù$5"$¢ÀA²,}…R¡{1³´ð±È}˪³ ã3¹hBànå­U>Á}#i‚²¦Î¯²ˆwÁ K¦-®ÀÞµ\ç¡Í.Bgè=MYæÑ$ ÖyÒI•‰4˜Gé· ”å;%\Å´5zfZˆÖWÝ u•ý3ãÒóˆÚ©êB!Øþ|¿/xKŽ˜é@"²ÄÌrÀá;ë.o,Ë—@½_õ½y»oó0Ž$¥[¯žåìêâíj¬µÿ÷Ú¿ÎTð™°bÅgR;¯ ÆR‘dT†‡Žðs…ξáïÀBldz€]»Rëþ‘”Ê+GŠt3òõ $q•nŒ›M$źOô ; _ä…Òj³GèÏè:„•4­‡Èø–h%f»Î™àev•¹ä##d¥ù$µ\mÙ ¯¨Ú`è '°/$ 1VÇÂ,.º ¿2lÔ'·ß»ÏNÀ“ Ú/¡ý}¸N€}Åz³ í§ýS?ýþÉÚ;š¡CÔí' â†GéÄ‹Íq,pÅüÓdÆ&¡éiÂÑÅ(Vn­$LX€ÔˆÊämÌâÛx{£WQkº"™&«XþMŸðpžÑ!ÌŽ…ÛzSy4ëÏÀ˜á_ç‘,&–Þæ ¿.µêP7ÓÔ(xqÎççCgù5Í ™‚¢õJDy³ƒ‰¢Kö1·FBW”Îлîm?–=°¦"C ˾ õâÀ_æs•¦³šŒO{„Í?VZ€6vóÙ´Fð·”½rìa”Q D$`—a¯P‹¸»ËsŠÚõ<Ýv2éýTMbû@ï¦öh¸H,å*7!2*!<¨ç šöÂÙÓwVÍî++L µ‡ ÇC&‰ø:j4;@à@ÌÁV·Ë BßRâÌoí×ù&Ë&ñ!¸l<¤#(!Fã?5ŽØ1iíÄð޹wÓÏòÞ¿_‰/OOX÷zÌÝpƒ°ÇëLG84^¾…ÐZËà ßìø·øI]¨Dîgï&oq+ˆ­7—$“,ŸNR¤Ä:À+Sͼ t% L»ÕAlh«h#ÃÝ ”Z§ÙKå\!‚ÇÓ`1¿^Ÿ""^pU¸ˆd£QaOŸ}¶O’Ç0N©5@&u@çU1–œ' ኡ¶ÆÛÑ, ¯ûeV[Ðã¦Ô.–d9.`|ø(×ðt±½±yØo9 ¦!JŸàÿäQ ɨ8ó_ÝL8íÁ˜³QP Ó¬‘)—®6tV9A6¬— '6¢¾Í ιÓÌå$êGþœÁ»•¶d•£…Žæõ Zº Ö2M}°f••Áœ0¶s-&IƒS")…§|,‘:ËøR5B§÷?Ž .¾Înx|ŒßÂýh¹ÛxÀýè{dÀ5øþÈW|ŽÆº~?ìÇŸÙ5H›#C¶˜róÍþ ­à |Ñ|¢£1O ¿Ú?ŸíŸ·ûg!9’Ý8qˆŽiƒ_ïTÜ4­ÛJɺ2l©GXöÏñ!¼l—Ï;?0h½5;ó—rðšØa.ÆÃPŒŠ*W<’1éyª¨ ÇÐ>’™ÂǦ⡵…ÿÓÐ×¹s›ž ÃB'PÉåÍ8äß|¡‘†pít#‚àÞî×ÔÁ%ÌA˜Ù4_ç>"YyyR)I#µ†ï«tÆ$°‚]fÚ×y¼˜}Cˆ£ySý4  „¹±ÛÀ ›¤X• ƒÒ2K{Õé. &.QØm ”^“!ht«~Ò{åSµ6Qg2xˆ¥U‰ð;ð™N \¶¿u“­Ð¸Ü8I£8ü«­Tv‰f]£%N}“;3¸ui^e­Ü¼<”ü0SX3áëáu^„ô±Ç™R—μ½”RÒzüé¿/u “ú÷@j^®“v;R?…¸H-z ¥·¬ŒW®ûcÆûàV U!VÝž±ÐV¾Ž?C‚@:£CÈüãtõmNUâR*µf”t©8=R5û)’õååêìœ8äGéÁ!g ÝÚP»ßø|nœÙ›Ýþ©÷ÏŸöOèë‡?»ßjš —¸Å&V„36AÂîb€Ö·6Aà·Ó”>MF¨$+k¢¼ÀHFŽÈ€úšþÇ“DíΨ1M¨×nžA#‹WÌ2|s0ŒZcPS/Þul§éi±¤5Z4ƒD¶>^@ –]%dh%ÇÝA7Z¹gk…Ò³¼KZê‘FÝ|vÔÅ4N²¿ƒç–U6>讄Mà!a4êM>R’MMH/Xv=5ÎL Ô€³ âÓ<–- Ô£0Ò…­^‰‰úê¸Ú’×÷¶‰æè@fšŒg<ƒì»@!~ŸÌ·|eïâõ“œ4¿È#‹0º5Íxˆk>çß‘dáoVdú•tm>+#“zÑA/ e~ þª$þ)>×õ¢œÞ·¾ì´ÓžÐ&¬¢nŸI‹äPÒVù¯•}?!e‘ØU‡·I?¼Z×x$ÜWòäl,XAYç·L¾¨ª@]Á$tgÖȤJ‚äj‹öu ~©µZ¿ËOÄ&ÿ ©.EPlÍq’£w=† {àoã‹:b|èwoèÒO¹³^"qD×@ëC8LÍâþ4 ÷w .hƒ™4Î͆qabp¸ÿ4¤Á®3¨†RGÑV^Aô¢!‘³,ₘ}<ë™%ý±NžXZ ?gµ½T|ÙÏäþuÁÕ ÉÅ×L6¥éø„®ÜÐ(2~•¾‰’ÔÛkúþ-±jŽù¥cEjUÏÄ~gKŸËuÆÀÛÌš~s­ <ŸKáÜÄ:܉J癤 Mö(ißóœÊO]ÅN–×”X§Ž¶¼Ìgc3`ÚXn¬°fÉ%%(N+"^³ÞrŽxÕiÖ»;$É|²þÖQ>¸T†˜$Ú*Çããl±H yœÝ 9 æ–Ý\*¦;¹tÓìL¶,e1Cãs°Ç–"q½ÃÌä[èQršSÚ3ŽòCº $m¨,¼"û·ŒjÖCLvÉWX/.`Œ¥Ê±17ͱ€>rzv(õðSÔ²äXüß Ès¡«Ð®ih7H¢;æIHyDBưÄ`»$ÒHG(ÔÁy¿ØZZ·#ôqú}®±’%Ó“g#>…Ö‰¤œA'¼ÿ<3ugK¬h%Š®Xãcí V„5nÛ°Á̉E£±Ì7éô;¨˜•æÃ.ïeR¤¬Ð<ºSÔ6î9vˆ³ºƒv„Ýs9=”„Á¹ÇMöInr_ilIãM‘¢.lmaÁ i•èÌ’ÖtÁÒnäô]غÎ)ºb÷[Põµ;gO–p¡Í =ãÙo3HÙZ#!ïÝ¡‘ s —ó sGÚYOÈÛg“V—9¡ VI¤KhIÍЫ§zÐñR+R^¥±nšµú…Ý&}»îv•Ô„£AÌ6‡p¼®*' XÍ敵?hÅ.éÚý§µ u¹Æ…û»Kd>•]=ÖüðRФðÐ%RâÏ>…­¼¿oeI×ÈÖ9Ïåœl•€13u']fÎô­H'ÝìÕôq–ýÜ;zG÷ªÎI l>P ødœŸý6p ­šdíèí!- £€–¬³ ÉTKë‚ä Ø³Ρû9žJVDJ丣ެ:c¥:aŒ$x¢pLRu4É9)ëÍÿ€ÈoÇ(Âëþñ4gT&ÓÄŹ%Pj;uµÉfÒ^W*•ÉÉӛͅ:ñ>MäqÌ4jq¤x6ñ5)åø2é»þ¡x- Å…©s¯”Op¦¥Ø¼ªgò÷…â"ýºz"yœn.A¢Óe‰&ERÖêmzSïP’šzX¨6,£pd¥éÖ^˜OŸlR9¥nÓR'_%Rý¿É!T2bœdìswÌûíK8¤Íy V.Œ#ŽäÊÎædbIy;-×8x?߉›ó˜q=“^½íɨ·=?b§£KzW¢)îLáBŒ Bj|S\«½]8# Gy–›¥5ï¼T×bú8³¯óÄJ­NAkìV2›”.XÉ`ÜK%0Ô˜ªùúºŠo·5Ýä2eѳ˜½Pe»k4:«„îkm³…ŒžÒYåÄñZ[NŸ6{pgSãzâ{¸.¾É};6’Íðsu†ÕbÊÌWœÀªt8¤‹ÛwL².n‚žü.„ kZº¡4;†R¨¸ñ框Âg l]{œWáœÊô¼Q¦«O(Da ý¤y˜œ?˾A \ÔEò»õvfŸ<ÎÏÙë†S<ùÊ99/JF‰…#ŽÍ'L6 ÌÆ²'€Ê±œé[ “2°/Šr&­±'ˆÍ*Ï †K®Tb|µj¹‡õc&³gPºè±v\ß²Ò—1ð”EqËT?]K~ÿWTЋòk:©7ÊÕï—œïIËi‚ÞãÌ6  ©a˜ ¿%;ËÚj<ED°ožÏ8ðºCÿ…q£;ß9X£0ÖéN+j‚¡q”“åýM6fÇÛþËßå§šîGмjâ^]ÁƱ/¤;[ŠÞÒF™õùŽ6m‰EwoŸ¸SQØ%îà^À¬êñ±’*q‰Î‘.²šV5¦šBÿ’#Ê®# бŠ(q$Ž®as«&¡‹Ì%½ð:ëZ¡Õ¤LÏîúu\Ý7uíæÐ\•¤‚d;×(¦;àK~7FrûæFVÌÓXGâŠ~…‰obbJ ªw:9Ô¤&Eú%g¶ãuîl›™S—¿Uf’“„ƒ«w=®Ç숦ò÷Îæù:êŪʸý®ì®<—¸Æ»_ˆª'_ŸTŠ{aà[º*qÏŽ'])—_ká—Ìš «›¼HNf‡d£q®ªôÔJ¹NÀ¡ùé”<Þ¤ßâi¾«Ô˯j“œê'(Æ9¦³Ü±âÌØÔŽlRÅꌨێݺ0×,,ƒü†w÷­ÙSYÂc²JKŸx8'¯¯5<¼fR"ÓŒ&Þm²Ý¦IÉ¿VøT±óÏ;±V:÷@>ŠTµ‡‘>Æ¡b®ÂÈÿßD9Ó­øYmÙ_mNƒ÷@m+è#à›ÔâèšÕ%ªœFÇ{¼•ºìFx2¼koY|­­'Áîâg 0e+ƒ|M/"øð2=*²FàµÒ§ÙÃpäBųmZ8¡ºŒ"YY¤Ù ÊÍor:ÔÅ`0#¶­²&‹Ä&óà€¶nß ÊÚº5˜£¥=Š]™t˶åÜŠ±¡ÐX <˜VÔ.9©½úéþŸk‡$˜Ù›…©êj¼¡¡~w*¾ä´ÿæõŽ_üºÚ$_?«Xc \bÉ.¹^_ ëS}tQ°c¿\ÿ|G" S9žìE¹RÎÛíî&À9hOw‡l¡Z˜9>È«”Ò2SÑ/C”n3RHd…ÊÇw VÄMþ©ö3¼u,ìD+3úL˜|åo²p †X3tÒñÖ]’éë´FL`|SÞGtµày¶fÙĵŠ#½¦XÄmâÆ,ï´çìãý’óÌ•O©õª¦óÂóæDbçá{‡“wÊ,?Ö uw4ÇÂ;R?™Ë¡?ß<ñ•„¡·«Ü _Î^Șˆ-ÒÆ!¨¯Š˜Uã™'®»Ï¯Ã3“¸=¯Â‡~ØÚ¥Ó™¡ŒbV;Ä8‹ó3òk g^ny¼;Y~é[ÃÉ}Ð[)èlHõ¼s\6ZçÈØ&õµž>²ÛaàNt5c‚îÎ×Õ>ºáO_dÊžÁwDL*Z™Ö]š€Kª¶^±þ; "ò°:„;ì¢ç—µ£Ñq¶΄Z¶|;åϽþ»ªÑ±RXô{ÜßÜÕöϒ𚫦 q”ðšâT?~Eªõ°ÌÒU7Òå³ï²¸ñ-‹íK+Y¥µÚ‹ ÛfÊkõ˜YðÉpµbl­!£É\sª}6•g¦ùâàhOê•uÂÐUùó„¶ETCýؼ¡Ê4ÑŽþžÝž‹]2%=ïxLu?C§:Ä3 Ürª`môMuSÎQõ&mtÚ®¥ø)gõ×ÐR!=çÚ¤ëý¿ÒR9ªmå$#‘†Kv8‘ÚxØrrí¹wxNCš9c'ôÂßäAøï]üü >ôJWïTç4¹‡³Cžø `À»”¼’ìY9²SŸ uˆÉ}œóÿH±þbÅ›m㤠ý"wß×›ãyU K®‚¾ ÇõÀáEêýkP‡û£¥ù^äÍhßÿ¹:ÚàPØ6´×`3g’€*„¦è¥–”ÿèLã5LO”Šáß6ø+¾žOë[|“Ñ“+A³öi> stream xœí]YÇu~'ô–?0o¾Ìtj_ äA¶¤8Jd8íÀ°ý@q¸â&R–ÄðÏ眪ê«úÞ;34ÀàÃ4{ªk?ç;û|!&y!ø_ùùøåqñìÁ÷dz{Q~<~yñ«‡þù÷*Æ‹8E§œ¹xøôAþF^H)'w἞¤×_>øóáÏ—×bÒÚzåòRLFkoâ!®½¼¶BN^„Ã×—×rJ8w˜.¯5ö9µ•1z%—·ö𯩩VQžðÆ /ÜáõÚïÛÔÂïÏÖ·OrÁÙãõí+îÂzm´<ÜäÂÚ2^çÿ‡ŽÂð[^]>®Ó³±–šü&M9˜èðÃÿàRäá`_þ–G·!¨¹G~ÿׇ_ÓV;íª­öŠ¥h»ÞÐöþ:­:·ÖΟŠà½<¼L]Z¨û7ð> E[åu<ü¾5R ÞCšY ¹)Þ7ãÂDs|Ç UZȺï©K›Rz³*,½iZ^œ2VXW}ù*wíuýú)¿Ž“ˆú~ Þ^Zz«‚K'YæÉ'éüÄÇ}siéQ¨æ{z¦'jQÚ*šóÒC(ŸÉHmqbÐ/.)/U»z¡?âÔøÑ)£ù ¯%õmƒ¿¸–j²ÆÉ|t7y é’ÀöÆB¯i»–Ç2tAËN+­øÃkm#]»yè(Üá}ºhRÚu½üºþGTÖùù®Ð"ÔÜš¶*ß¾†ÐéðL a¾}|·šb4‡ßå *GDX(ÏÆXhÓÒ@––£üdD´e"VD¡gBH$ôZóÊ4ÓEjš}¾jºâݤ‰3ôNX¡ACx×!LÑëpq­hshûòŠ‘©õcÑeg¿­­ÞIø2ï”Ô!¿ Ô½D~†¬á[` øüŽŸ½·ŽvðŠ9 u© g22/‡ƒ¨céZº¸LC[:0zðÔßxz´ÖUì·9lx”{ ”: NÓ AM!X³ŒLÇù‰Ñ,æ×&þ –‡¤LÏÇz|™ž¤=|—‹˜×‰IÐWLõ8Ó÷é¾ig«·p9ip¯4Ž!ŒIót“÷áGy«}´A¡VÞÑYñ…ÒBOVë™trÏ’è+qÅ´_ß>-;c—Ã6Ú‡j)?¦Òq÷¨iӭݽX'”®· ´p2O²¶ð$¼bÛÓM¯oàù'j¢„ÖÑW—öfp’ÏiIQÓÑ›ÎM$F,ü¼Çé5, Nä3hÑÜVî>\9QÞ¢8?_<úJ½¿®fn"“B/¥Æ xl%¸'©qQó2ŸÃ ñæ•«à‚ GE%€›oÜç—Šäf¿(4|ÃìJ€èÃÃKOl“±à­N$Žè½Àã”;0tdߤuYZcõÊÏá}ú’nŸöDûܵŠÊ´‚AtJü#x)FR §]“ÄsY6æª! FO(]Ã5pû_¡éõuna"±Thüa}ÔÝG±~– ‹- ˯Mݹ®= ¸`®Z⦠TB j¹ÂŠX’¯‹0ƒö;I]ó $ôji¬ VW"ý mÌ#z½ƒR<ºþðÇJZÏËÕÕœp½HŽÛ¹ê‚uÁÓÅ­A ¥›¯¿…¹b“$ñÑ |½ùKW±¼„%äŠ/òÚ£n¦Ç—Šhc’v!™»òµ@äÖò5Í‚{ЙèËTßæó ÆWxø:|TµfVœé¡'‰M…T¬\hI7‚H…WߺÚS4õ¸ùözZª«Þ#È`–ŸD=¾ž¤]’€þ-MÌòM…yuÀGþb9¼ß-œ´ðyÍ2à¬ÿ<^UMFÖX ƒN¼½Üt]†ŸZàûJyãGí£šÕ§h?~ ?—ž™´I²¥}ÀY!ld…WJ¥jÀAm ç•4wO÷$ä‚’ª‚»‘n›µFgõ@?ƶ+dö1‰´¸`’è÷i]"¯ ˵y—oŸ#Irƒ‰,>¬²û(Ölj;cé8”»f|œu'Œ=üV->_[´ÈªtœHå,B§ñy±`õA>‹Tø>+ƒAÅ2Æó‘1ê]d„Çd´ÔÆÞIj‘‘º–úã #¨zBøŠŒ¤yû¸AF^®»#2zOBf@¥Mp³QFüâË`³Œja(¼/„r p¥EÒnž® I¿5+k=f]Úƒ¾~Vö ½®pÞFÔ.kˆ®†tIj>F×Òy&G¶à¢-„ÚÁÝVS„ jpWEÇÿ]\Æ@Žø™;!ÉÝ—Eºó&Ê©oÇE”ÿí£ùÈNõºO8` îÛn•"/çË’x¦7B›Pºaå)õý%#"1ƇéuVÙ è†pšvÆ]Xoö·JSÛÝF’ž¥žÙpB30R¾ÈÝ {ø"€ÖÊÜUúZb±ù·µÔÁS6¾“¦òjØ÷´ö7€XÅ{ «‹ºX!üågngºÿË%¼ý%PŸíB§ê"®í6€Ï6pé-ÛêÍQô§ ÁØ.‚Š ˆ KF“Ë£2Ìg7HBK *äø¼¥ªÁé…EO é1ª$2æ®2!:Dð/$Ó36@j:X9<úWKÇé²›`kÇËãUøÅæØy±eH¦:’1sΞ‡á]FIzDQ¥u”<ÞÜž‹(ïNÇ©“Èk$á=¸?i.®&Ø×yc¥ÔÕdÊQiçîìÖ#$iÒ·ËÌ ˜kI’/˜uðè^¡›ç˜ž˜F”¡xÒ½•àåÁ×Ù„¤H𷱡ÜÍ9$ߺ_ÞÀûÎ9´ž›röt­Ü1Ï ÑidŠ_=7QJš£=7ìx¤ö7Óõí‰Ñ¡ß_1ªÄɫ˺ƒ¥3 hí…»‘ | ßa—oóBèDÑG5ðtE=ùFÊyöBXé«Í@A ñi±ÑÛƒë«ìCƒö‚ïQäÍ‘·Z§KM¢Ãb¤éçõ¥ t£œ¤%“ k••ËGÊ¢š‡Ýfƒ¿ˆÆ‘ÒœíBt餯՟Öß÷%×ï`—6vWiIä° Ñ|uHõàèÇ­jK4ä•>¤ê~€ÔtôWÀ625ÛÐ+ÈÄõŽq Ï–+*– ßXžj°åщ[îh„Äz&okÂ-ÓÖ±mèÐgšÔ¾Ci– [«ˆý}ï£rt…æcݨk# î¾y GÔx‚Ì_ÛX•vÉy…¬‹x:ûxS YŸkå'Ã}²únÚQߺjsazÐ8ÉÒ4Ñ­ko£wÂë²Ä¤IâLQóÄ6 ²ò6åç t;”épO’*mµÏhác±t^ðjp®[ÕÞ*j@·i±UÅhke¼ŽEýÙ…¯_°ýv5c|‘ØWñ£Á$º¾Ë4’WÈOºšÂb’qÜŸGyAVó½½¢Ûî±#Ö%+PÛZx‹£VE|0mc0}ÌÖš®üq5Ÿ»?|©ÉYZ¼íPSŽIÑ!Î<¦ïHHCÏFH‰ÓØ}Ô94Žw7©xrØSC Ž3Ÿ9H§Ãßµ%Òü´t-rð‡¤‘ß#rè(™gr,‡$Æìò’¥áƒZ–G7d½Ë1¤RnlzB'qúãF¤aøM`¯Ë%w$îûù’¿Í[LªÌQSæ)B'2þ:ve¡š16¤YsäÁ³.a¹¡;WŽpCQ†øOT Vð±-ê&ô!Í»#»Ÿ‹+¤ŸÞW|ìKâηÙm º î XHµ&røÿ,3ù)v†äªXÅ#„ <)‡ïŠžvø´¸p‚‘ƒt~¶$|"äàÑÍ®Ê0AkÕ"¿¦ñî8œ“§šòÀÌ‘M+ZÔveBt·Þ™_³’á´—¤gïsˆ¼øèR)¶=©lÿ‹Ršb"]“¤ä®Ù†(€¾]\ˆb#“Ï/`+ÞñÆI–^ŠP±Bò¼Ù,?ÛRæÍ ûÂýÊ^7´€ ±e¯³Jb¤!EÍe¯Áì Å`æ„PE_WÌl›@“ezK¤ †>ëíÛÎõú0ï°ÞÛÈô™ãÂr‹‹öàÇE¯ãhè÷’S9ÊŒƒÝ /U)µk*'™-^ìï²`H­ CljO¯?äN1¬>I <ôcÁ=s<ø,A2i"†´ !?Çôs>:TR£o­ÕøNr¹!ŠS·°ÜôÁÁu¹ 4X2XÂ?àá|“ÏQ>t³>¤íˆØ%!>•qÆ(Žìß±¹…Ýðo~-µ¼GþíEœ8 4Üy‚Þ4˜ÝO´Ák0ÜŸ–eÌ–Ï!*[æ;>µy[–U¼çO9˜wöé|®aØ_uÁs ˜I±&šYswìÌFk<¶ÀþnrcÒSg‹~k±¼w‹~‰£êÖÈrª±+1Æ}cׯ»¼m8ü/˜sb )eM t™×Ñ(hˈª0é7©B\7÷•–‹©5ø< l6ð|Ur%‚ÞÅuÞ rþ™w“&]gž–Ȉäâ.A\Žúèq RcHØYuÙ«l¹pAž‡Ìܘä4;`˜ýü˜M[LàSÖ™h?ñà¿„—ç‚ϳòàlåV|”´Žë™½ÂҷИ I?šÓð£Ÿß÷‰Ö99òÓàÇÒ_й÷œÝ¾1ãç|î{BŠy ¿ç‹æ1cÜø¢Ó^épø#Ëž¤|µòïCÐhNÝîHÙäщB)áÆ¼—Ê«Ž"²KR ®4•÷]Ë•© Ó?ñ]TJ×»wSTNÏ\¹“|Ó©5Ÿ—íòq?U¦µš cŒïäSŽõÄät/gðw®<±ÚÉvٻň¸''ÌÌÇÄû*&pa¹¬¶…HÒúŸӇO/“Á–s»· 9ÒŽÕ6Ò^$Ý¡°rö²¼h/\Ê@·¼<’è\â…æòXâ±HÑ"IQmŠP$ÎV_ˆAòç+ž}“gÎV•Qy Ø ÌѬªHЮÛè<¾„Ïò Ÿ•×ñµ©‘\¥„÷¹Ì‹Ú̓Z/žõ81A/QÄ ”²)p”Ç Ë.%4Ê«Ìñoóâ ¤1¤ uÜìdjŒ· [3É®)§¤k©­sØ 8 5ì|ÆÅ£$ÓPdx©JK$….èØs¬bëÓ,X¬_Îza™……›dKJøOßUw«Ÿ‚škFtñ¿ï“Û1ÿq–qŸÊþHÞý/*:_À<íÆçÿz>Ú»=—0hç•<›;HY>BÃÝèèÛâ,ð)ÇQÃ×Kœç(ÅóY^‡4a¨£<É; ´Á‰¢2ùjYàÈàÒ¥¥!­žó‹<ézk^àf÷é|ξ‡Õ âXP+¬¡¯„Ž)¼EEVC+\:ßÁк4»v˜Q<êÍúmÁ{®ÑHŒY8ª‚EÚŠ& Ã鯥˜½øžŠí€[Øæ:Ž¯Íˆ?lð™8¿§]žO÷df ÑÓ´¿æ¶:º ªÇ¶²èÜØÛ{«u,ï&²`kC¥Sƒ&ÎÞ¯ S¥à@“^N¢ 33†¾² ¦é6hýr\Šê €¬¡ž"H4ôk0”Ò9¹šÖœñÏžzÖ„Ò‡º¤“#ÀòC<ØQå4ǹÃW|™éÙìaQ‘DQ3 ›¬Åeî£Ø¨­bÒšoGAòiRjòÑÕ%ƒòºkóä‚ä£h^Ä—yµ64ÅÜÒjƒê#Ô G±·»uäxú\EåO«ÑsÚ™¾m¿ ÞÍ`“f%·4Aò§eÐò$•\¢Yÿ :šÚÙ–]Ëâ¶Ø‚áò,›¤˜õ‹ýrK½B?3ûÇôê”ÄËV‰ƒƒæ²ez\ÞáÌ"PMq‰–iÙNþjêýS篾ËÙÏ|§ëðBžwŽKöõ.¾ÏmY;6²ÝlHäï8i® £ï9£æpy΋[ˆ¿KÝqEŽ:¡²æËë¨|¬, p·ÙÔ$ô±~îæÅÖA`ë;ûÆs}=/­¦šw™™qŒLöU+í"úªi%Ëkh‘ÍQ‰Øwf‡‰4¾Ø ”îjÝ9è±r;÷’eÚ»EUçñç%(Ê\5QrÞ&§Élâž}óýÙZNÊìzí¬Ynrv¹Ð]2·ÉèFiB# {²¸6‚Òg9’/\ݦ‹¡×\‘G‚ Ï]c*œk,âMVßÂZÄÕ£ýHÖ¢bk—kÛRY”# œœw·8ÎÖ&§Ú‹ŽåvrY5>̺6Â9Ç%jsÂãÐ~²”ú| -ÐRó6 ÷4í4(ÁƒF«Ž9)5ÿ ;,3Ñ÷¦C S¯—©ÏÞ±ˆK« ¤\~÷«KΜWn®•°SÉn°9`ÝË'çD}áæéнùÃJ 0µB"Ö XmŠ­²¾£•ŒÇà*dÅ’%[[ñ´®ã£eàqÏ·åùWj§xΦ^«ÒÔåIï ºCËpí9N§ÑìAC²øÔ±’{,u4ÄÜýÆÄæhO¨¹ƒÂÇÄr½ «›à†謫bnZ]:éBÚ¨B±x!‘¡[z$ž\3tË#HåˆCöQ€‹r1ýK’ „V¢?ÜÏÍUÛ{s}ÃÄÆß ÅÇN~‰ŽÔi½'FŽó)p?çî6V¿&ª›jFi<åHñAñºØ’£«bÛNð„½+Ã8ß¶æ{¬u¬â<°I›3)Ù4¤uLû…zJÌÛ¢;3žd{]‡Ž–ÏlÝiD4–6A»–±T%\…;ZÆa×Õ5®—š¯úhò"w¨¯ÔS~í¹6Òßú–®¤Ú7ªU–4°} -i›úguÆÑ`÷6¹(N¼Bp¸w2 “~µ ÚTðíÐhÁ‹5KÔ6D*ÞíåÓH¶­ÇÓ­_ §©Ù–Beâü`jÁz;EÛ¸C%ví)j%´…Úx"þ®%LÙDdJ§Ôì‰#»E—sv ¯²<ÒÔÏÀ¥·&¬ì™ëx9:¡©Ë]®YYòr”B‚–S¼>Jnè\ŽÔ“^ Ù‹5°wJÂ>ÄŽQLdÉ&# b¯T*µà %Çc>6™÷\úM†¦FãÈ¥2Âû+gï¹.ÂŽ«M;—ЛŠ*y?[ÇùŒSNˆ&¬šeó0ì™<7ˆ¦Ô?qÁÃÞÓ¡ŽUŠYlM¸5Mš¸Õ°jÎ^T{IðÕΤšà¿ÆŽ»Dt™ž­9»Ï¹{è ¼Õþ¸”Q2ªK'$$ü°$¼Ï›a¬mœ”¼>Þôù¤¯S™Ð;Úá2]­,æí¼Ä:ÅlP܉bI=^‘¦Ž†¬bŽVý†ÃìW¤©ÁÌ„HÜñ˜2t˜q‡&î`7ÐÂ4X–æaãݰ j›d9 ¶ªGZ`òI.a Q·dö4‡Å9}Ì6-ƒ”Üb&ÌÒñ^ §÷ÈÞMÀ,÷M4ù ¶`ä/Àî6Í›<#ýÙœDÓQ,þîá„éï<UUÀmÔ¢m“@ïTÕÔH¶[†Ñ-<­ª)'4›8òó`xìÙ¡y‚!ñ}ln\-|¤^Þ‡µÃ{Ê.ãœd·d—µœ Á(åÎüþ¨X›²Ëƒ ³U›¥ì©ƒ+•Êj\±Û6ÉY3SiµÑìŽþa—‘c©Ê”>¯B”5f•É×Î¥‚¡–ôÖáÕÂç} ÝBSþz©ÔsO@ÙŠ+ PrXa (LÅxwjª®!"üá—ü'ýû?j±üendstream endobj 2572 0 obj <> stream xœí]I“·‘¾Ó޹øôM¯#Ø%ì‹n²Çò2¦F#¶åƒípPÍæ2n6iQ”IéÌÏLUõ¼÷šÝ¢f"<*áaI$2¿ÜÀœˆIžþSþ¾xqOœ<½÷{2}=)]¼8ùåù½¿T1žÄ):åÌÉù“{ù7òDJ9¹çõ$½>9qïÏ»?Ÿž‰Ikë•ßéS1­½‰;»6ÿzzf…œ¼»ßœžÉIhån:=Ó:L2†ÝðA8¥íîÑú»oRgg¼ß½ã4…n÷*·mj÷&ÍúÉ[‰ƒ\CïÇyJC¿¢4µ‰nYuÀ…¼¾ Þ‚J¨Îµ5<ˆ±n²Æïð£rZªym´Ü]åµéÃî[n+¢ÐÕ°Ïeêã„§=wª<Íêlõõjýå_ÏO§æ¬¯N-ÄÉDK'wþ˜Nêï©»±VÅܽ9dKCÐs÷³µû*LJYGÛ§í?ò™Ð_“Vª:’L§fêØ{Û‘!}9q=8küþ4¯CÃ, &ï]PawÁ$³FÆÝ3èœÉgƒ²¶:ÕËÌZ›Ý“ÍB$Š·Ã=„róJ´òyšxJO×1 ;úí|xiGÕ4e>£3éÍde<9“Š6ãd>š§ÝKœ‰‚Û/²ŽÎ,kÌäƒßŸMiUµðBÁX1:’ ø%¬äŠÉFœåíîKîA“ªs ÅOY¢ÃË; ÷hÙq»9U¬ŸÝÚ4kó>æ&#åî«í*_<#ë#…ÅŠMÜR³v"žÑùž˜)Hû{’¿’l¨ƈɯAàJãat¼XpïÌTʆ)¤(÷üÓ• oªkµü ¥î÷Û¼G"\®»M»6§•ó+ORD«“3E³¨ó²zÅ¡WŒW$ÅõÝéC·PÚ¸G¯R‰4£Wx!|¿n¥Wf–Ê2[‹Z1[E#¨ù,ð/e´4çå©tv $Ï©å&-ʶœŠ>šÝCšOKâ]t‡v80]¸`B˜þ6h§ŸrÓÒòRÚ<1/Tïe– ŠØôEæD£ér’a2ã,såÚÿ›SËËrIüðØÔË釬°ëÏHWÉ(RgÜÔ>Ö=ž®=Òh†®–ª–”—*µóIIñ¾í L˜X´^¯Ú{-ä¼)©ý<)$‰°Ñw¤Êu"–ŠÊÌ]Òjàóºô,ûéüTdÙom‘ýLSyçHU]¯ôÍ'¯èö,$WZ¹yñ$,ÊívÂë#±;v)§ÑÑì£KŸ”·óëoÒB$Þ*]iá^AûY¦¹TJ–¥9CÆtûqƒó>@ü ‹=ßœ3?QjKüôùiÞšS>ß"a‰hë `ÙÏ`ä~´1O+¯·óͤT»_åUtm«5¿H’Âê@KBZ–C"¢Ä!MzÛ}–Å¿‹(2ðW¤¬IžÈ­:ëN'ý굕.’'^ ñ&k®h§‚ÈdCާµl&ýúŸI ::ÄåÔ©CžÚᳪ(k¯áP™?Æèð8÷Ëü:hYÓ†{®Í惑¤¦Í|i¼']FQI»W¼wå|¸©+Î×ñ2`¢FÆz‰v‘¨¢oN¢šô, Ó:iM_IU±CŒ4nYœo.ÃKXÒuÎZOØi=Ý º‹õ{ל´ çãÌg¬éÔˆË? î’¬K\‹»$¡^}׸+ér’N, =}fi@àFÒàÁÀ_ÁwDoØçÛ^Rþ:Cf²ÖzôY‡|YŸB®ÄˆmÓDÂéaý:­dÉ÷•-HMè½HÍw‘Ú/ƒØò„3èöý)­œÎ;æ¯jbiˆ¸©³OFp#øŠÖKà´ \×Aué¸çÕ)’æa„eyn÷þL·Ë9d îiº¸ŸVlÏc³ó÷õo€ÑžÂÁ±ÿuº%2épÞKrhí"î„{Ô Ý…©G¦ùEY9å«íˆ YIŒð$¸Œ[Àe?*¿É:)qê‚6a}—y>‹]NФ6u¾ÉˆÏ«;Ô5©«û‰V|g·é;\íkÛØ¿¯f¾9–d2ݘú.Þ•!߸(ïHçèE§HhCVøu]éÚÿ™¯ Oœ­ÉJä­—¬%Ò^9Ä:¨¾@ã¼Èch:ðsÖHÅ¿0ƒ§@-«?"\§Ø¹àÓu÷{þŽÄ»†*p„ÍÊJÂ4Í€ŒzŒîk4Â\fBÞÏ~ d߇ۨöˆâÕÅ  X› YÅ<ˆØûÙûÉêõ³Ó §èC}龆K÷ëÍfåíy—·)©ö­|¿6ÅØÊ' 8‘ª-º#î× ‚@w :@¹Ut>m2ù)i&3°÷‘ ÉÿEØ“(öEæ4I˜µÿ»ìõ´Ä!ßez%AYqhí8ûçiâIM2?MBà›`ˆÿïN­™,ÿ˜nä†.x†«˜}ZV¸JJÂ1ƒÀ§ÃìRÐ-n3AÎ\þŒ—m£ Lç^óÕÚ|½6?ᦓ^ûÝÇë×yEŽl׈T¾ö›SwŠGkó›î×ïÖæóu —ƒ)x9ÆOoé›Çu Ÿ¶»à¯Ù@ßX@»÷“ðc¨™¹_Æý>.Àý®Z‘n,û¼õ BH¥U~×§+žÃ+^4”'Yz§.$=L¤»Å¢ºâ]ÇûÈ»óÔn g€ÓxÔ@4òvÆ"x2±ûmoŠ_Õ«á>+-e”«C 5»' ✙ÁÆ Æ‚tS 6y±hf²j;J¸;uÀKï]Äúê—ã½.?ì_ÇJ|?OÌPlÃhšÙ $÷ã>z+Ùz‡ÁxÙ‚ b‹¹ÊÖÈ &j2Bbã¡BÓ WÞ­%Êà’WÅ(ÅH¢-áXmÆ¡ yl4aÞ}âïâ-:À(9ÿ씼¸8ö2MdÍ]’±––$ý¬|\u¼›Ø¢„ÖÝ{›@mˆ,(?†å­I=ðÕ¶æÊ–'t0ÉDš¢^˜=9ÅQb|í‹HîBç*ìuC7»å`yðeß—¡¦ón·õ5Ë´+ÜIˆY#÷¥ÀYô#‹B~§_Œ¬DÈætòfÙb@„÷Í$¬BßÐýÙ !3/(&û›Ì¡*÷z ÚÚ^/AéÁo!^º®–ûÚ}H£ªƒ;ß1a“]]Ž#¸l‘{b[ßßKò€—)R)I\­óê$3så  Á‘±M£X²é‚åËS0.¬MæGl_öó:¯VÒuÜcM{–kî`P¿ò."i$P®Ê9ªj稖¶"1ŸWvZ«‰Û|/óiqœGËá<¬®äWè_–„R$%꾋¼jgT•w½("â8_¹êÔÞØßÃ/aÀ¢1´ðÅs¼ÒªñŒ2H^ö¹—Ñ“àë¨w¿K½­0{ =^.žƒó4gT‘™ßè\/Q£+Òjâ(øÒìɡό‡cù Û˜&Œ£! ú1˜×ª]¥kàgÅ…îK¶(ÙL‘VÌÂ|š•Gã4ਉž…)ûp WyX¶×aóPth´‚¤"SpsvŽô54Ÿæ-ŠÈ@·9F³¡Ò y.!5îÂS?Dâtc5y!)È a›Q¸óç°’‹roíäÝÂAåp1Uö@¨+E“pÒ&,D$™)è:,t0æÓ7ät"qåä±Ä™z ê˜Aï¶*‘óW„•{r@'ÂD súŒ‰ÑúÙwA–)ªõ嫬T%Šê(Bbƒ¡»Éý{b>kKŠ…¡s¥±kU˜gWU¦ÏQQP£¾Ÿó+\ªÒZ‰4r0ÕÀ@´·N˜ÓšzÎ Ö,ÿ *p03 æC EÎ)&l ×.øÊ(XLƽŠ2âø±±—w®t3Qº[QMÁ.œ:òÞoƳÚ‰¨•,¹‘Î;ÂuÞ8F6*‡ <’ÀÞ5wy«A$»:‹ Iɲ¿™ÅFv‚ÔU,·În8[‚µgpŽ^v”›ˆ°õS$˜÷ùªÁÐÑŒÒl‚íø¶ýF«h'îüé©"P.h¿‡ÜÖ#=N·~îË?BZ2t|Ü •ÀìøËX üÙ9…ëY˜îx}·måíjÜpÌ; ƒj`ÿâu»*‰k„ºo¿ö]ÚAqLâ8¡®ºB½–Þ*(!ùYGC—ÑЗÝeÑ+‰?‰}4øØd¡3&»¨r)ß »:ÑS…£ü¾_€¬WŠw`© –Vi›¸²©Fnýœwùø«ÄË[Âô‰8̈àûÉJ'êÇ&ì$ŒßØ<ž‰• !>XYÐsuNhS_öFƒhþgjL\;öœüeÎβ§×o–„“È¡E«œÜÄ¿F’žæ˜âsh1$¦œ×njÏÚoWc¤Œ”Z Ûʈ 0Ý“$ª•œ=ärî}‹IÚt•Ð[&-Úº„¯¼Is´–=enu§l ôä5&ÝÐ’™ýoštc¼ä4w”Þae`·6X›fm‚ +“ 9/Ê©O×¢x#’GlԾߘŠ´ªt²CˆÏ×”¥ ÈÎå<2JÓÍH€ßšcÔœR)†ŸHÍšÔ¶•i!ĆÁþŒ®ïý.Ë4{B¬Zqì°Î7GZ•Ñjû Ô¬4U‚ÝÕ õÔ ê`ôl±_Ÿî¤pª1“Ž3žÌ þ¨Ü%Òl áÓ4¾•ݼ¬“Ø’ôܾ²Nš†ÝQƒ@ïÕv?›ŒíC p®M’ØWÍ 'xÕ9¡99ˆUŽ“#8äm/¸w—©xΆ}ó$‰¶aÐÍpÏÊúê;…ô/P%H9ªv\Æ0K’¼­"œ'GìÞ§.{ÖO€ÛŽ×ݰô7¾‘ìÿ%“ש&å5ÙyÚWŠz[é¶Õ²öÉs WsÁDScAÐìF­úJ]p˜-‚R¯³å´›>`zªuÑF7Œ±û¨†.Fj0vÄR(óF€€e^à—¸FÜŽ~G`3ËÀ±|ÅKµSˆ­·LSžÚ \«¨&Š€‹v–*ªÎàÂ2% ¼Ì¿ŸùY8_ Úœ0v¸­p-A\²:fTPÞùh2ÕÁ*í8,0ž&ýÅ)ÛµQxt]àvúÄÙ.&mnòˆßf/•ƒž»Ÿ¿r|ív’‹á÷XÊ®ºTö1)‚z?r¦}àW@üdÚ+ÉÉÑá}2í?Y›)1}ÎQg2’AJjqO~}îœóëSšûÕúõÑúõëõ+¤Ä?Çx:âÇÔèu^×–õIÙ0q?‡3ŠBùŸeyÜÉrz¶t'’y8”{;‡Lþ¼lö£ã×§k*ž¯Íëõg…`*e¥-.ÖæËîA@‡gH}ÜÇFhGK‚Ö4«×™Í”hŽÓµýG0Z]kSÕò‡ÓµF†TM³ç• I÷Ú´I#ô‘sžºI#sßq!â UÈÛÜEÄ\žÅªÁ9Õ“«í¶F邹ÚR‡áó*WûhÐñ_/Rå¬uä’NºÚó#LMØ4Ñ/šÆ ÊU•tÍ$äLrW!ý÷zR€Weàà<Œ’@pèÞÙ THµ®i±v7ù(sÚ’ÚÖ¶± öÛ³¬9 yÝFþä#¢‰{ìv«,aŸa¾Ï¡ßͪz_Ëþ#·¯xÁ*Ž’«aFбԋ<Š•òîB>¨ª¥tQ†OBpl?‘+L›\BtÀ Zßð±©|]¹[ÓÝg¸HדPN¸^´\ÞâãûàÅyquå_x±Â‹‹\Å„ÿ‹ÿŸð¢Óú^ êƒÁÅ~Ijb÷uŸø·ŸË¥¬QiœùmwišÍÁ×<ØÕúõ]³ö yàk.§M#ô‹‚§.Ù¿ß›9|,…gÎ0·NÇê¿IÒıl ¦Ó8óAì}¶´<¤ÐTñJÃm€ó^—˜4~—Øú`z³Š¿Ë3‚ÿvý ±œÉ¢Ó}g–fÙ˜ú —"òé¥9Î{âÒ¯Á;‡(SK!¦sPˆÙÇ —‰äýøàê¬ú{Vuúxíæƒr_-'|‰:ÏdðFÐ(ïbž¦w¦XÚ›3¶|™D:ͦQã‰*i9Ê¥p3×ùšØ³:Ñ)~ïFÕ0d”¨1(ÑÅ*¾í«PÒf¬¹šÌÜ*-gCò»ÍÆ!>&éÕ>?EÄÔ·y>§ÍƉ¤úì¾â‰t|¶÷択ۈêíRnrº“&ñ¹µj+’yD3•æFC¨ º)~¼F"Þ–ïÝ¿*´Ê Š»Í‰9\E&lX°ù|ƒJ>NªMX#z%GòdP>P²q’ç"gãä”P—Ú¹ðà~‘'QVoøŒžx„'èàÁ·º.­¤àˆÖq®QÐõ»7*½Ç‹5¯Ÿ¯(º’tÞ¥·­[…ä¼­cØ|®,AÁÍë}™Hi™ˆlŒqå«*}WŇgŠÍúõ°6y5ÇÕÚ}o¹0¹²¿sýÑm™ÍÐ7~Âå £9ŠkÙä-±ïŒEåËR/Ø…Üy?o #ê°Ÿ$§·sIn¸ N1„ycTwTlse°¾X&Ø¥ºOÙÝúÜ*¼tŽ ¢« 8zÉü#@)ú Ø™10¤`iãuyPVy|©WÒ/ ìgRp,¿W¢þ¾X§_^Ùí±N¿ ±_ø¾A4C ¼ÞÛ%J¹ý…#m³Á:–ßéñòäÌ)‚<"~Uœ›üË_Ÿßû/úó¿et{Iendstream endobj 2597 0 obj <> stream xœÕ\Ër·Ýs‘M6Yr•Ì­Gƒ7àœØqœ8…UY8^P¤D)IY´d)þùt˜™ pyeI.§´ …‹G£»ÏéF¿;žFq<ñ¿üÿùÕÑt|yôÝ‘ˆ½Çù¿ó«ãOOî?”!‡1Xiõñé“£ôq,„í±ujNŸ^}=|½;™F¥Œ“n0»iÔJ9†im~³;1“Ýä‡Ïw^ŒÁ…0¼Üˆq²Ú¹álzÍ“g¼—ÃovZëqšÔpνÚNn²ÃÍ:øYZY›I·»­ü8 9ü}'ÝHS¸á1üî9lÛiŒ Ú—ëÔyw&,«ÄÁy{J+Áý¼bûqÄp£—røýNúQ8‡_ï´“c˜ÊÝ]À϶k{á< ×3Á án¡´ó×>烣ÅðĘÐÊß§“ÒQô0îNœ‘£·ŽÄEÝRKKÛ€¥ov'<›£¢øqÓ·ÜvŽÎè“üÝ(¤¾âî ­°ø ØÑ‹Ý7§_I+F-4©Õé©QCÌqð%OlGç=^ý5Ukºã|ª)žÜ¤M8¡Iàt¨i zÖA=\Qs¢Yå´ì(Šü9ÈOø&ÉÜ è‡t}“6YFÆ[=œÄŸi<èDj:· Ç'BŽF[‘–nÅ SÜ €«£ÜqÌ+˜n 4™nÃÈ@·ª{Æu‘FLv±gp,Ì‹K÷¶ŠzÓ¶Þ“bÉéá4^ŽR¤Ê(<{^Ÿu»aî'IøjrÕYLR¤$£:º‹ù*—ÆÌÊj½,¯¸}ælJ÷gØtufR$A–‚»+åÇSÊá ©­C0nÖ#C72„u‘ìÄ™Ñi9Û‰š-ʬj}Vp䊼þ´¨ä,|¯”Bqæ«RÒñáÓÖŒ>Mû1“),~x² <©{ÞXTwc²º_t.äŒúËfÙËûáŸÐýªTÕ¥÷`íçoÜö¤ÁÊã{. õ•$¦ƒIa‡?ð %Ùkèö_±'Ÿœ²Ã£tïÞøZsµ•£ubM8kÓ­MRaOi…ÍÎÆë`‡×;£GÆr¶Á=„²hx0äQß¹±¸Y=²ýü|é÷—IÀ[ò…ߨ&…¤@’95+æSÞµ 2úäVóÅÚ¼]›ŸpÓ›pÃýµ÷~¼7i”µiâ4â,ް^1ž/½#\ò³µûzürí}¶öžásoRít²¤ÙÚ¥>Y·÷²Þ) r Ep¶6ÓN'#¢úê0’ &…ÈÄÚ´ëX×MSý,6ÓEUì-ð¤RÌ75®úO+Ä4ZåŽO$é ùå4ªÃë@{×%• ŽàŸf×RA`b Uh†=ïÍsX¦‡{ðKKC‡öê#šŒ êèT¿Œú-‚Vi{fôJÎdÔÛc–$ˆêŠb‘¶… çL‚´kÉ¡óz#ö‰‡Å*È™?‚n¤²™²1ÕXIÇ·Y”FSwnGÚÀŒ_už\—úx8äOc&ù^>~ég:¦%]·¾(W —I›{I ÈÑÑz·ÑH±¢k!̽Ó:N»áÏÀ4Á¦!þ#1x§[dCn ãtÜßÍÆÆ=Ñ/ÉŒl=?SL†C°?â‘•‘EÜ„!óYvòŠN:Û(l° ·´ &TïFmÝúÕè·«ôGm@ìÃcâÄíyœ%äÇ';%;Ñ’OW¨ÈÎ_Ï3•óG-Eá&Ôn¥TdÎE(:èëÔr®aú1.Ïç”ì~· È©$:Žšü¶¨b]rÔäÀ]'IZ‚—„¶‡ <© LL2,¾\Œ/ž&ΉD4bþÄÅÙ7EL‹5>н(Õœx­ôqÛt_Ä—§¯$žó|ŽàMÔXÃËÐîÁ1\ç Ô›4¹¦n8B'´qCÄñm4f!´ˆ­8sê–´dÑ´•³ˆhÂ’{sˆhÐ, 0¨…hQÕõjQª‰ ?®M ™Y$”$#©}~dë9,ývÕºœ ó„Õ¾JÀáBÝŒvP\G)ìSIF±À@X`Ÿ¥«*1"§9y\$bºíÚ‡¤]+YÅö{YÀXŠ¤î¤¤Á~÷³cS¥.—¬*"Zå ùx$¯Ú‹ÄC‹"XiÎV¥ÎãïöA¥rÄÍœ}çØ„'6Nôî³¤Øæ¿CƒrÌ9À”P#ÏbÖ]%•“£µ®…{‡G, C;‚,ôS8„7½Ì3Nø-ütcgÄ΅ו¡:­ÖÕK(·5¡ï¿+†mágøS² í9áä6½bn¼ëãVŠàkÒ?ˆÏï¯ëøf¤0ñÔÄÖʨµæ~žùh(ls±Å~Àöë³2Ó 3Ù÷e¾ͤÇß¶/`´ÞÙ‡Øî½-@Üš>fV'øqe¶vN¹MÆ’Œ²[Œ…ã>:&íßÐÕºûó%Œ¬9 6³ Èo~‘ðÙè)$²™GR|Nß:Q)~^1j;ѹ-YðïÒ*O€;èû!ÐۇLþ‰ é$ÜÀ/ß°0I÷iò×ñHÒX73ƒ¸ÎsN´sΣ¸#¦Kà™³™"4Ý ‰æðÏÓOJÖ<#]û~jÝ3ô"áÆv£Îaíb~Ó SùÉFþ¼I-ÞšÝðK+É0‘$Ò)´ÈóQü®Š‹fÓ—&¦:· &S¼÷c0›·ÈwL˜°á)Šñè’Áï½¶Q‘?­B#œÆ¸øEÄE/5C†ÍÉrÁ0 8]„ÄWqi£¼té"3$áÄc¸ hv¹®ø;`%ÅH5gFY+;¨>oôq£uSÞ½™QÓ1Ú5…6ø°¥$‰ÚïàÙO‚"€^û^Ò<£ȲBh]gYA‡²¢Ž9u&†nóPgRDŸö>¯Ñ ±h!îˆ_`tA¾“¿Óéè:%heóN}“œš$a˪c\ùÂ’7‘PH ^/‚©?…“u%µ"Ë‹tÒÛ¢ý ²èž‰ ¯…Ù¥p•Äï2^E´+Uáðu>YÐ]¢JZõ!Ÿàt`ºWAÔGAbÂüÜÿ‘âã.štµdÕw¢ ñ+ONçÿ]4£ ©“?;ºp·‹.Fè¢ì¨È ó,ècs7ºè>ºH'FïÅaèb›è‚8ßv9Ih[Îܘ–3¯ê +ƾ¼®lØá„(Š!2\.Ø´*›Ð¤Ð`ÿ÷KHÁöol´®*)ÊRØûÔµ‡Ï/\ÊPlNÜNjǡ˜žü>ÏRU+v<^†5ÝCÎ꽇”•2;œî4Ù445 l÷j£bšàkðA;c˸ÏP—gK'Úù×Ýò á5~O µÙäqˆzIùJ\9±h$œªFqW:Ñäw#¹Ú÷Oð@žjß{áÐ^gèšÎ°±…?bD¶Q„n±AÃñÄvç£fgÖª…9uÃrݤ“#AjÛ+?/u2¹'^y2 _ÊfóÞV7L»2t'•Tb•½ò_¾Å!liÞýøõ­¤gdS ¾ÕEOñS \7U­±àô>oÃúyyÀí:àv훽—kï³ÖØ•O¿ùaÙÝÍÚ¼Ú-§©’•Œ_+<ÊËêwiðÖÞÇkó¼)—Ûb ’€æLù³uÀõÚ|Ýœ÷ºš7û¦¹ÉµŠ¸CêÄh&ß­…5\f¡s+ð¼n¥ª`Rœ÷7s“ ¹—ç³ïSÁÄÅ©äF ¿„j!ƱÍkóœ*ÃÄtõIÈ]13ÆÆ?í{˜I䯫~¾ v.›DuY··^Ðm:©%lë¾ã§Hžóê³æ5qÚ%=èáöEæ„âmÑxq“Œø{j©ðƒ.(ª_×įJ.çmßUOtBw@f_g¡ñ….‡ñõ펰Ss]x;¥’¶xi+"½øˆ§µÅ 8×ñ.+ÌéEl1Dȸ•Û£ú*´Œ%²VæŒb.¥¨âMå‚ìE¤)|µF–¡ùI³z©9sÛÓU¼:N#!£út˜<󯃷A«›Îð^®Óòw<°qÅN^ñS‚+þWÔ~-æˉKƆϹW¨`R}³ £pÅGi½2ý^ÌÛ4·jdS—úµ¸ú!®M“¥}ª0éuŸšz¹nÀ–ñ¡Cú6½²én 8¦'mQ–Œn¼ã.+OËÛ”Á•öj:å¯(Ñáð7¡¡ŽÏYV¿W|žÞð˜/Ï0ÛÛœÃð9cðÃòÕn;Hý6íXT´ø;ØÖËu ^Ñ»Â:èhÓYlÐsÐjc­MåN%º.£BrÅ­W…(_p7z_O¿MÕ·ì»Úõ¬½Ï;é‹ù½Ô’Dÿ@_«Ä#HÝJ ÿR÷¢«œ<ÇP³^C n´B^ëï̪•8ñ7E±ï m¹w¹ô6È*N¶!¾[–TœBKY!yã×&”²Â€›½íŸAÚh“ rr”ÎUaSÁ줗ßp¾[Š¢(JkXùm›ò†kˆf`P]EòVþ-€˜„‘2Ëlj­—h˜9aCñQ^ î¢I£¯Åµç©Ë? 3CõÊÜk}‘G½ä öº%ƒ:ÍßÚUŸûÒæã_bÀˆ 6¸ çê%A;@ˆC–£›}¬ÀëQ_`7åK¡'£S¯Ûþ©… QfBðS'„ëÐü‘¦í¼â×誶ƒÍpu½÷;2€=ŸG2‘—D~›’øŽߪò/M8¹£ÐCnžXÖî—½ò¡ðûÒÃËf°Ô¸N!SÆVP= ÞûŤ› ùyº·)ˆÞeÝýÇ1®sèÌ<~©…|> /Contents 294 0 R >> endobj 313 0 obj <> /Annots[318 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R]/Contents 316 0 R >> endobj 365 0 obj <> /Annots[370 0 R 371 0 R 372 0 R 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R]/Contents 367 0 R >> endobj 422 0 obj <> /Annots[426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R]/Contents 424 0 R >> endobj 480 0 obj <> /Annots[484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R]/Contents 482 0 R >> endobj 537 0 obj <> /Annots[541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R]/Contents 539 0 R >> endobj 594 0 obj <> /Annots[598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R]/Contents 596 0 R >> endobj 640 0 obj <> /Annots[644 0 R 645 0 R 646 0 R 647 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 656 0 R 660 0 R 661 0 R 662 0 R]/Contents 642 0 R >> endobj 664 0 obj <> /Annots[668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R]/Contents 666 0 R >> endobj 688 0 obj <> /Annots[692 0 R 693 0 R 710 0 R 711 0 R 712 0 R]/Contents 690 0 R >> endobj 714 0 obj <> /Annots[718 0 R 719 0 R 721 0 R 722 0 R]/Contents 716 0 R >> endobj 725 0 obj <> /Annots[731 0 R 732 0 R]/Contents 727 0 R >> endobj 737 0 obj <> /Annots[741 0 R 742 0 R 746 0 R 747 0 R]/Contents 739 0 R >> endobj 750 0 obj <> /Annots[756 0 R 758 0 R 759 0 R 760 0 R]/Contents 752 0 R >> endobj 763 0 obj <> /Annots[767 0 R 769 0 R]/Contents 765 0 R >> endobj 772 0 obj <> /Annots[776 0 R 778 0 R]/Contents 774 0 R >> endobj 780 0 obj <> /Annots[784 0 R 785 0 R 786 0 R 787 0 R 788 0 R 789 0 R 790 0 R 791 0 R 792 0 R 793 0 R]/Contents 782 0 R >> endobj 795 0 obj <> /Annots[799 0 R 802 0 R 804 0 R 805 0 R 806 0 R 807 0 R 809 0 R]/Contents 797 0 R >> endobj 817 0 obj <> /Annots[821 0 R 822 0 R 823 0 R 824 0 R 825 0 R 826 0 R 827 0 R 828 0 R 829 0 R 830 0 R 831 0 R 832 0 R 833 0 R 834 0 R 835 0 R 836 0 R 837 0 R 838 0 R 840 0 R 841 0 R 842 0 R 843 0 R 844 0 R 845 0 R 846 0 R 847 0 R]/Contents 819 0 R >> endobj 850 0 obj <> /Annots[854 0 R 855 0 R 856 0 R 857 0 R 858 0 R]/Contents 852 0 R >> endobj 861 0 obj <> /Annots[865 0 R 866 0 R 867 0 R 868 0 R 869 0 R 870 0 R 871 0 R 872 0 R 875 0 R 876 0 R 877 0 R]/Contents 863 0 R >> endobj 880 0 obj <> /Annots[885 0 R 887 0 R 888 0 R 889 0 R 890 0 R 891 0 R 892 0 R 893 0 R 894 0 R 895 0 R 896 0 R 897 0 R 898 0 R 899 0 R 900 0 R 901 0 R 903 0 R]/Contents 882 0 R >> endobj 906 0 obj <> /Annots[910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 919 0 R]/Contents 908 0 R >> endobj 924 0 obj <> /Annots[928 0 R 929 0 R 930 0 R 931 0 R 932 0 R]/Contents 926 0 R >> endobj 935 0 obj <> /Annots[940 0 R 941 0 R]/Contents 938 0 R >> endobj 943 0 obj <> /Annots[947 0 R]/Contents 945 0 R >> endobj 952 0 obj <> /Annots[956 0 R 957 0 R 959 0 R]/Contents 954 0 R >> endobj 963 0 obj <> /Annots[967 0 R 969 0 R]/Contents 965 0 R >> endobj 975 0 obj <> /Annots[979 0 R 981 0 R]/Contents 977 0 R >> endobj 983 0 obj <> /Annots[988 0 R]/Contents 985 0 R >> endobj 992 0 obj <> /Annots[997 0 R 998 0 R 999 0 R 1001 0 R 1002 0 R 1003 0 R]/Contents 994 0 R >> endobj 1005 0 obj <> /Annots[1010 0 R 1011 0 R 1013 0 R 1014 0 R 1016 0 R]/Contents 1007 0 R >> endobj 1018 0 obj <> /Annots[1023 0 R 1026 0 R 1028 0 R]/Contents 1021 0 R >> endobj 1030 0 obj <> /Contents 1032 0 R >> endobj 1039 0 obj <> /Annots[1043 0 R 1046 0 R]/Contents 1041 0 R >> endobj 1049 0 obj <> /Annots[1057 0 R 1058 0 R]/Contents 1051 0 R >> endobj 1062 0 obj <> /Annots[1066 0 R]/Contents 1064 0 R >> endobj 1069 0 obj <> /Annots[1075 0 R 1076 0 R]/Contents 1071 0 R >> endobj 1079 0 obj <> /Annots[1083 0 R 1084 0 R 1085 0 R 1088 0 R 1089 0 R 1090 0 R]/Contents 1081 0 R >> endobj 1093 0 obj <> /Contents 1095 0 R >> endobj 1100 0 obj <> /Annots[1104 0 R 1105 0 R]/Contents 1102 0 R >> endobj 1108 0 obj <> /Annots[1112 0 R 1113 0 R]/Contents 1110 0 R >> endobj 1115 0 obj <> /Annots[1120 0 R]/Contents 1118 0 R >> endobj 1123 0 obj <> /Contents 1125 0 R >> endobj 1131 0 obj <> /Annots[1136 0 R 1137 0 R 1138 0 R 1139 0 R]/Contents 1133 0 R >> endobj 1142 0 obj <> /Annots[1146 0 R 1147 0 R 1148 0 R]/Contents 1144 0 R >> endobj 1151 0 obj <> /Annots[1157 0 R 1158 0 R]/Contents 1153 0 R >> endobj 1162 0 obj <> /Annots[1166 0 R 1167 0 R]/Contents 1164 0 R >> endobj 1171 0 obj <> /Annots[1175 0 R]/Contents 1173 0 R >> endobj 1178 0 obj <> /Annots[1182 0 R 1183 0 R]/Contents 1180 0 R >> endobj 1187 0 obj <> /Annots[1192 0 R]/Contents 1189 0 R >> endobj 1196 0 obj <> /Annots[1201 0 R 1202 0 R 1203 0 R 1204 0 R 1205 0 R]/Contents 1198 0 R >> endobj 1208 0 obj <> /Annots[1212 0 R 1213 0 R]/Contents 1210 0 R >> endobj 1217 0 obj <> /Annots[1222 0 R]/Contents 1219 0 R >> endobj 1227 0 obj <> /Annots[1231 0 R 1232 0 R]/Contents 1229 0 R >> endobj 1255 0 obj <> /Annots[1259 0 R 1260 0 R 1275 0 R]/Contents 1257 0 R >> endobj 1279 0 obj <> /Annots[1284 0 R]/Contents 1281 0 R >> endobj 1288 0 obj <> /Annots[1292 0 R 1296 0 R 1297 0 R]/Contents 1290 0 R >> endobj 1300 0 obj <> /Annots[1306 0 R]/Contents 1302 0 R >> endobj 1309 0 obj <> /Annots[1316 0 R]/Contents 1311 0 R >> endobj 1319 0 obj <> /Annots[1324 0 R 1325 0 R]/Contents 1321 0 R >> endobj 1328 0 obj <> /Annots[1333 0 R 1334 0 R]/Contents 1330 0 R >> endobj 1338 0 obj <> /Annots[1344 0 R]/Contents 1340 0 R >> endobj 1347 0 obj <> /Annots[1352 0 R]/Contents 1349 0 R >> endobj 1355 0 obj <> /Annots[1360 0 R 1363 0 R]/Contents 1357 0 R >> endobj 1366 0 obj <> /Contents 1369 0 R >> endobj 1376 0 obj <> /Annots[1380 0 R 1381 0 R]/Contents 1378 0 R >> endobj 1383 0 obj <> /Contents 1385 0 R >> endobj 1388 0 obj <> /Annots[1392 0 R 1393 0 R]/Contents 1390 0 R >> endobj 1396 0 obj <> /Contents 1398 0 R >> endobj 1401 0 obj <> /Annots[1405 0 R 1406 0 R]/Contents 1403 0 R >> endobj 1408 0 obj <> /Contents 1410 0 R >> endobj 1413 0 obj <> /Annots[1418 0 R 1420 0 R 1421 0 R]/Contents 1416 0 R >> endobj 1423 0 obj <> /Contents 1425 0 R >> endobj 1428 0 obj <> /Annots[1432 0 R]/Contents 1430 0 R >> endobj 1435 0 obj <> /Annots[1439 0 R 1440 0 R 1441 0 R]/Contents 1437 0 R >> endobj 1443 0 obj <> /Annots[1447 0 R]/Contents 1445 0 R >> endobj 1449 0 obj <> /Contents 1451 0 R >> endobj 1455 0 obj <> /Annots[1459 0 R]/Contents 1457 0 R >> endobj 1461 0 obj <> /Annots[1465 0 R 1466 0 R 1467 0 R]/Contents 1463 0 R >> endobj 1469 0 obj <> /Contents 1471 0 R >> endobj 1475 0 obj <> /Contents 1477 0 R >> endobj 1485 0 obj <> /Annots[1490 0 R]/Contents 1487 0 R >> endobj 1494 0 obj <> /Annots[1499 0 R]/Contents 1496 0 R >> endobj 1503 0 obj <> /Contents 1505 0 R >> endobj 1512 0 obj <> /Annots[1516 0 R 1517 0 R 1518 0 R 1519 0 R]/Contents 1514 0 R >> endobj 1523 0 obj <> /Annots[1527 0 R]/Contents 1525 0 R >> endobj 1532 0 obj <> /Contents 1534 0 R >> endobj 1540 0 obj <> /Annots[1546 0 R 1547 0 R]/Contents 1542 0 R >> endobj 1552 0 obj <> /Contents 1554 0 R >> endobj 1560 0 obj <> /Annots[1565 0 R 1566 0 R]/Contents 1562 0 R >> endobj 1569 0 obj <> /Contents 1572 0 R >> endobj 1577 0 obj <> /Annots[1583 0 R]/Contents 1580 0 R >> endobj 1586 0 obj <> /Annots[1591 0 R]/Contents 1589 0 R >> endobj 1596 0 obj <> /Contents 1599 0 R >> endobj 1604 0 obj <> /Contents 1607 0 R >> endobj 1613 0 obj <> /Contents 1615 0 R >> endobj 1621 0 obj <> /Annots[1625 0 R]/Contents 1623 0 R >> endobj 1631 0 obj <> /Contents 1633 0 R >> endobj 1639 0 obj <> /Contents 1641 0 R >> endobj 1645 0 obj <> /Contents 1647 0 R >> endobj 1653 0 obj <> /Contents 1655 0 R >> endobj 1660 0 obj <> /Contents 1662 0 R >> endobj 1667 0 obj <> /Contents 1669 0 R >> endobj 1674 0 obj <> /Contents 1676 0 R >> endobj 1681 0 obj <> /Annots[1685 0 R]/Contents 1683 0 R >> endobj 1690 0 obj <> /Annots[1695 0 R]/Contents 1693 0 R >> endobj 1700 0 obj <> /Contents 1702 0 R >> endobj 1708 0 obj <> /Contents 1710 0 R >> endobj 1716 0 obj <> /Annots[1720 0 R 1722 0 R]/Contents 1718 0 R >> endobj 1725 0 obj <> /Contents 1728 0 R >> endobj 1734 0 obj <> /Contents 1736 0 R >> endobj 1741 0 obj <> /Annots[1746 0 R 1747 0 R 1748 0 R]/Contents 1744 0 R >> endobj 1751 0 obj <> /Annots[1756 0 R]/Contents 1754 0 R >> endobj 1760 0 obj <> /Annots[1764 0 R]/Contents 1762 0 R >> endobj 1768 0 obj <> /Annots[1772 0 R 1774 0 R]/Contents 1770 0 R >> endobj 1777 0 obj <> /Annots[1781 0 R 1782 0 R 1784 0 R]/Contents 1779 0 R >> endobj 1787 0 obj <> /Annots[1792 0 R]/Contents 1789 0 R >> endobj 1795 0 obj <> /Contents 1797 0 R >> endobj 1802 0 obj <> /Annots[1806 0 R]/Contents 1804 0 R >> endobj 1810 0 obj <> /Annots[1814 0 R]/Contents 1812 0 R >> endobj 1817 0 obj <> /Contents 1820 0 R >> endobj 1826 0 obj <> /Contents 1829 0 R >> endobj 1834 0 obj <> /Annots[1839 0 R]/Contents 1836 0 R >> endobj 1842 0 obj <> /Annots[1847 0 R]/Contents 1845 0 R >> endobj 1851 0 obj <> /Contents 1853 0 R >> endobj 1858 0 obj <> /Contents 1861 0 R >> endobj 1865 0 obj <> /Annots[1870 0 R]/Contents 1868 0 R >> endobj 1874 0 obj <> /Annots[1878 0 R]/Contents 1876 0 R >> endobj 1883 0 obj <> /Annots[1887 0 R]/Contents 1885 0 R >> endobj 1892 0 obj <> /Annots[1897 0 R]/Contents 1894 0 R >> endobj 1901 0 obj <> /Annots[1905 0 R 1906 0 R]/Contents 1903 0 R >> endobj 1910 0 obj <> /Annots[1915 0 R]/Contents 1912 0 R >> endobj 1918 0 obj <> /Annots[1923 0 R 1925 0 R]/Contents 1921 0 R >> endobj 1928 0 obj <> /Annots[1933 0 R 1934 0 R]/Contents 1931 0 R >> endobj 1938 0 obj <> /Contents 1940 0 R >> endobj 1948 0 obj <> /Contents 1950 0 R >> endobj 1954 0 obj <> /Contents 1956 0 R >> endobj 1962 0 obj <> /Contents 1964 0 R >> endobj 1968 0 obj <> /Annots[1972 0 R]/Contents 1970 0 R >> endobj 1977 0 obj <> /Contents 1979 0 R >> endobj 1985 0 obj <> /Annots[1990 0 R 1992 0 R]/Contents 1988 0 R >> endobj 1995 0 obj <> /Contents 1997 0 R >> endobj 2003 0 obj <> /Contents 2006 0 R >> endobj 2010 0 obj <> /Contents 2013 0 R >> endobj 2018 0 obj <> /Annots[2022 0 R]/Contents 2020 0 R >> endobj 2028 0 obj <> /Annots[2032 0 R]/Contents 2030 0 R >> endobj 2037 0 obj <> /Annots[2041 0 R 2043 0 R]/Contents 2039 0 R >> endobj 2046 0 obj <> /Annots[2051 0 R 2052 0 R 2053 0 R]/Contents 2048 0 R >> endobj 2057 0 obj <> /Contents 2059 0 R >> endobj 2066 0 obj <> /Contents 2068 0 R >> endobj 2074 0 obj <> /Contents 2077 0 R >> endobj 2083 0 obj <> /Annots[2088 0 R]/Contents 2086 0 R >> endobj 2092 0 obj <> /Annots[2097 0 R]/Contents 2094 0 R >> endobj 2101 0 obj <> /Annots[2106 0 R]/Contents 2103 0 R >> endobj 2110 0 obj <> /Annots[2115 0 R]/Contents 2112 0 R >> endobj 2118 0 obj <> /Annots[2124 0 R]/Contents 2121 0 R >> endobj 2127 0 obj <> /Contents 2130 0 R >> endobj 2136 0 obj <> /Annots[2140 0 R 2141 0 R]/Contents 2138 0 R >> endobj 2146 0 obj <> /Contents 2148 0 R >> endobj 2154 0 obj <> /Annots[2158 0 R 2160 0 R]/Contents 2156 0 R >> endobj 2163 0 obj <> /Annots[2168 0 R 2169 0 R]/Contents 2166 0 R >> endobj 2173 0 obj <> /Annots[2177 0 R 2179 0 R 2180 0 R]/Contents 2175 0 R >> endobj 2184 0 obj <> /Annots[2188 0 R]/Contents 2186 0 R >> endobj 2192 0 obj <> /Annots[2196 0 R 2197 0 R 2199 0 R 2200 0 R]/Contents 2194 0 R >> endobj 2206 0 obj <> /Contents 2208 0 R >> endobj 2215 0 obj <> /Contents 2217 0 R >> endobj 2224 0 obj <> /Annots[2230 0 R 2231 0 R]/Contents 2227 0 R >> endobj 2235 0 obj <> /Contents 2237 0 R >> endobj 2243 0 obj <> /Annots[2249 0 R]/Contents 2245 0 R >> endobj 2253 0 obj <> /Contents 2255 0 R >> endobj 2261 0 obj <> /Contents 2264 0 R >> endobj 2269 0 obj <> /Contents 2271 0 R >> endobj 2277 0 obj <> /Annots[2281 0 R 2283 0 R]/Contents 2279 0 R >> endobj 2288 0 obj <> /Annots[2318 0 R 2319 0 R]/Contents 2291 0 R >> endobj 2322 0 obj <> /Annots[2327 0 R 2328 0 R]/Contents 2325 0 R >> endobj 2332 0 obj <> /Annots[2355 0 R 2356 0 R]/Contents 2335 0 R >> endobj 2359 0 obj <> /Contents 2362 0 R >> endobj 2367 0 obj <> /Annots[2373 0 R]/Contents 2369 0 R >> endobj 2377 0 obj <> /Annots[2382 0 R]/Contents 2379 0 R >> endobj 2385 0 obj <> /Annots[2393 0 R]/Contents 2388 0 R >> endobj 2396 0 obj <> /Contents 2399 0 R >> endobj 2404 0 obj <> /Contents 2406 0 R >> endobj 2411 0 obj <> /Contents 2413 0 R >> endobj 2418 0 obj <> /Contents 2421 0 R >> endobj 2426 0 obj <> /Contents 2428 0 R >> endobj 2433 0 obj <> /Annots[2437 0 R]/Contents 2435 0 R >> endobj 2440 0 obj <> /Contents 2443 0 R >> endobj 2447 0 obj <> /Annots[2453 0 R 2454 0 R 2456 0 R]/Contents 2450 0 R >> endobj 2461 0 obj <> /Annots[2466 0 R 2467 0 R 2468 0 R]/Contents 2463 0 R >> endobj 2472 0 obj <> /Contents 2474 0 R >> endobj 2478 0 obj <> /Contents 2480 0 R >> endobj 2485 0 obj <> /Contents 2487 0 R >> endobj 2492 0 obj <> /Contents 2495 0 R >> endobj 2501 0 obj <> /Annots[2505 0 R 2510 0 R 2511 0 R 2512 0 R]/Contents 2503 0 R >> endobj 2516 0 obj <> /Annots[2520 0 R]/Contents 2518 0 R >> endobj 2525 0 obj <> /Annots[2531 0 R 2535 0 R]/Contents 2528 0 R >> endobj 2548 0 obj <> /Contents 2551 0 R >> endobj 2569 0 obj <> /Annots[2577 0 R 2585 0 R 2586 0 R 2588 0 R 2589 0 R]/Contents 2572 0 R >> endobj 2594 0 obj <> /Annots[2599 0 R 2600 0 R 2608 0 R 2609 0 R]/Contents 2597 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 313 0 R 365 0 R 422 0 R 480 0 R 537 0 R 594 0 R 640 0 R 664 0 R 688 0 R 714 0 R 725 0 R 737 0 R 750 0 R 763 0 R 772 0 R 780 0 R 795 0 R 817 0 R 850 0 R 861 0 R 880 0 R 906 0 R 924 0 R 935 0 R 943 0 R 952 0 R 963 0 R 975 0 R 983 0 R 992 0 R 1005 0 R 1018 0 R 1030 0 R 1039 0 R 1049 0 R 1062 0 R 1069 0 R 1079 0 R 1093 0 R 1100 0 R 1108 0 R 1115 0 R 1123 0 R 1131 0 R 1142 0 R 1151 0 R 1162 0 R 1171 0 R 1178 0 R 1187 0 R 1196 0 R 1208 0 R 1217 0 R 1227 0 R 1255 0 R 1279 0 R 1288 0 R 1300 0 R 1309 0 R 1319 0 R 1328 0 R 1338 0 R 1347 0 R 1355 0 R 1366 0 R 1376 0 R 1383 0 R 1388 0 R 1396 0 R 1401 0 R 1408 0 R 1413 0 R 1423 0 R 1428 0 R 1435 0 R 1443 0 R 1449 0 R 1455 0 R 1461 0 R 1469 0 R 1475 0 R 1485 0 R 1494 0 R 1503 0 R 1512 0 R 1523 0 R 1532 0 R 1540 0 R 1552 0 R 1560 0 R 1569 0 R 1577 0 R 1586 0 R 1596 0 R 1604 0 R 1613 0 R 1621 0 R 1631 0 R 1639 0 R 1645 0 R 1653 0 R 1660 0 R 1667 0 R 1674 0 R 1681 0 R 1690 0 R 1700 0 R 1708 0 R 1716 0 R 1725 0 R 1734 0 R 1741 0 R 1751 0 R 1760 0 R 1768 0 R 1777 0 R 1787 0 R 1795 0 R 1802 0 R 1810 0 R 1817 0 R 1826 0 R 1834 0 R 1842 0 R 1851 0 R 1858 0 R 1865 0 R 1874 0 R 1883 0 R 1892 0 R 1901 0 R 1910 0 R 1918 0 R 1928 0 R 1938 0 R 1948 0 R 1954 0 R 1962 0 R 1968 0 R 1977 0 R 1985 0 R 1995 0 R 2003 0 R 2010 0 R 2018 0 R 2028 0 R 2037 0 R 2046 0 R 2057 0 R 2066 0 R 2074 0 R 2083 0 R 2092 0 R 2101 0 R 2110 0 R 2118 0 R 2127 0 R 2136 0 R 2146 0 R 2154 0 R 2163 0 R 2173 0 R 2184 0 R 2192 0 R 2206 0 R 2215 0 R 2224 0 R 2235 0 R 2243 0 R 2253 0 R 2261 0 R 2269 0 R 2277 0 R 2288 0 R 2322 0 R 2332 0 R 2359 0 R 2367 0 R 2377 0 R 2385 0 R 2396 0 R 2404 0 R 2411 0 R 2418 0 R 2426 0 R 2433 0 R 2440 0 R 2447 0 R 2461 0 R 2472 0 R 2478 0 R 2485 0 R 2492 0 R 2501 0 R 2516 0 R 2525 0 R 2548 0 R 2569 0 R 2594 0 R ] /Count 200 >> endobj 8 0 obj << /Type /Outlines /Count 11 /First 9 0 R /Last 288 0 R >> endobj 1 0 obj <> >> /OpenAction [4 0 R /Fit] /PageMode/UseOutlines /Metadata 2686 0 R >> endobj 7 0 obj <>stream xœí][·‘~÷¯èGgIÍ; l)ŽØ^ÁR”dã`1ÆŠuÃ\l+¿~«úÌ,V“çt÷ñËV»OßøÕ½XÍ®±Ã8ˆqÐvbÞBÊ«! ÆÃ=8­aïä \:šA8¸ /pÓƒ„ ­qƒÄ'Hx„‡]/)ià"©éàÂ2Àyi%Ü8H;(¥ñä t€ëü ,¦ÆAÏÕƒ€FÉAk øÔ žÔƒ‡2ƒÃCc,wƒq@„Ƈ &8 ¬À‡ÈÁj$Z 0œà€Lønsƒ6ƒ“Î#Sœ†AüßÀ󵜇ß: .½f¼€ƒFpÀ¨Ákx¸Ñƒ7ŽÛ¬‡ãؤ|€ñàTá&† ¬rA¸! . 1`ž1XoõœðfZ;„|²å ‚gˆQá"1ÊÐñ”¶HìX`&Êot £Œ ’B$v s¨ž‡t¨#ʬ¥„¢VHí4x²´hƒ'ûávTIP Y(÷ÂeBÙ®'+Šh…p ž¬5ˆÄ£¡ú€Ö7OžlF x.Œ„p½0XP Ü — ã€Ó@€p€…ðd;Â@p£°øP/5*Þˆ{N"åðlòÿÜ{pÜ)…gáñ@6ò ÕÜ"Õ€^8o¡ðÏ ï@%—ãÄIØSãà¸79‡và²W¢M!z´0¢ðx()D4<$'‚ Óa/ 44¢qD–¢ TÊQƒZùÁê†@#=‚G3úÐ8Á&áb¼ÃÀžB1 ñëPzh©^áY4Ô€““mR)Áa-Ø =ƒÍH€â…1dÀ{Á¤ c(%Qæ0ÜŠwÀÊ¢DÁ%Àc0†)0Ij‰LùKP<ch+ðŒ¡2 lJê€Ú ãË4ƒ1Œš®ƒ1€ ¤YPN¸%0Ò¡͇=â.Á2\€©JkjP+Øóø<à+è3ª\+ÝÄ?ôjnâعt“O4è©&>ƒòHP܃1¼BNˆÒÃp°cxâd2ŒˆLXzmÑ*4"0c ÒÇ;`Œ€T¼ßˆ<ΩQ¢;ôˆùrR£CT`Ì ´ŸÑN {Í Ô->ôHÁ°¸Ï“bÚƒ1ä$·É·šiÆ‚ñ^ðŸà” ª7x\!ìÁJ¡¶ÂØ <ÞNÜ¡¾€iÃI `ŸJˆþ)n”ö´AM‡1ôÄ{ôÙ iÜSPÿÀ•A½‹€=%Ñ„à:£ÑA:0,J x­Œ·hB0†E>!—”EOŒ²SÖ lÁ– ¨ ^ÿÕäçÁ† FLúf®Ü¤í µÊ¡} <Áw¡Þ‚†*?Žx†$äØgŸ=z2üSCÔü~xô÷üÚýC§Á×”â!Íb¾»}óæ_ŸþÙgãç¯oÞ\|úøøç~Çñnnps÷^ãæ7nÞÆ³âfºän.ÿðÉ£'×7Ÿ^ßþx}q~óúý»‡â¡€£OÏ®.ÞÝ@ô|Ÿ<úîâ·ŒëøãóÏ?™Aó!Žw…›kÜ\TÐÜÄK&4¿ÅKÞÇ/ã½W=¨åê§W¿`N’‘ çIx¼‹ /èÏkŠôUü9ý)"M×½ŒOb¹ŒÈž\¥H15äð ø*ÿ2NÕeGqÄp<~ £?PÃ=ŸsSí~|õúêúæŽÑãoήی~鿎x’”?ÌÂK,’¹ªÞ£ÙA3óã›_¢6Nü‰?¤Ç^G8« ä>ˆ ô<ˆçQc’…<‹ìxG=× ‘;IªÿŽ8§ªt/‰Q–bœ`·D¤:iƒ¥Év®#ò!šÈmTʪîÅ‹ÏâÏ—”àä^Q7ñ–ÞvNùYhÖ }Ôtì¬"TE4Ëæòólxá\QBÏ¢>%`Dz+Gœƒ¦‘Ûªçaÿ 7¿QUº•T2ܤÂ;·Æ£“ûèv–’ë lø·Ç‘‘·”}ÕXñNFý1þlÆx] ÞÇÉ{dªz=ˆ §KþO$OOIü,Ô5©Ám¼xç?yn+†Û-]¨ù¥'qèB¿¯èL ý¯#§Ò£¾Œ'Šd!©ZMéjÂIX.ãÅ…±Ot¼­š¸¬¸{cßé¥ËõRß2ߨRÙ剽—¢ûu•PµïËv䡿iøsdnB™‚R ™‹…z …š¡P6òÓ­‹”Š{’.êj”&éÔD]®Š 1>Ü=Y0ÕyTº‡¾£Ã΃ý–2ûu„˜’èä."ï“w¼¨Â‘ûpvÚbrlnÛwq"%¿þ2‚¾Ž›Â›Ï'¸:7] 5ÏId#'ù7£™&i%€ÿ©ØÀ ,ÍÁ"3ÌÃúê-ð ú¡áPæ~O5¢á¼ßK2-ü^•—‹¨±5 6Ÿn^/^æ uò…¶î såW"÷…;¾ó…-Ñ>Ž@Î(ɬJbÊüR¢Syã!nÆxìU¼í}dÀAµñ¡¢¢%&wµ÷œÙ±©6æE{ ^ŒU^È}^Lú£dΘÆ,ýdŒYQILCIǘ<ÉP=þí“Ѱcê£9Æ4”䯸™|ìËÈ”ìy8ÓÊöH–¤HQf§¼÷®!£ùàõ*²éMkâ‹%^…8ßFæñ-Õ‡c†–ûCïD’§ªÿIŠ“ÂïÄ G`S¶<ÁÐ(”’×s ðCü™ô¹–Q<ˆzwAá¿‹ÇÖ©5ôq'gIýu^Š×™Ùq„Ž"MÙRæñ& õåmâÔïǹϕIqt²u#d¿ È¯ Ô1ô+Žþ†V<§`S¸¹éG’`Ôê?ÔŽóº¤&“î¤îÜpKRßFØó5„~ì†ñ<ÔÆÑá  X?6Ëa˃šnLý_PDIÓ”$½œ©•л :jƒs_ÕF ÖT¼Ä(ò‚³x"a¿ŠÆÕQí½'!é°«fd É$òºQKé­â”k¥÷™½EGBA¼u#xÿ•ú¯Zaà6Š"!yþD™xå1ÿNÙ7írõÈã»iÄ÷yøµ˜ŸÉ;n ‡Ý«âޏZBCîÛL£€}¡NßÔ=»£ñÞäªg.ò,²àgÜü/nþ‹Fî3Qeò©idíµ1Sñ?ºâFÏçO¦áC’áì\?œæ†Ëªiðeá/üH†)¯ŒšFeô2²5…¼IiŽËx"{SÀò¬|.bs‘ËÃ4Ìqcæ®Ë4\WmÌ·Qä?ñ£{nôÜó؆çI£w©YàÆÌ=…mxŠ"[9ã)Ff<›ç0¶‘¦ñºhÿ´4wV¶á¬Ò ·­ñ8GesGeŽê²Ÿ>Î5ÙÜ5Ù†kzÛã+ç–lî–lÃ-½=Ì*ç¡lî¡lÃC½íWRÎõØÜõ؆ëé·AÁ¹I묨rù¤H¤Œ’dw Ï]iòzT‹O#¬÷4ئP¼—âºV±ŒT¤l ³4Ÿk%9#T@`gBµ*äãº\=]Sér÷æzV$.ÁôUõ4Ñ8ÛÓŠXî#ž¸írGézÞ*ÙíëYBjs§â⟋{yGCî|]ÃùN–õ1—4µX(P¦·¬)»IåÅâ…ðm2\žÍ’{u×ðê© QyRpøkáã‰Z éh’ GR=\#zœ|jHi° =¯N:¬:AL¼NF^¬ÏKRd×(*Ê/6­„Ÿ/Nïemž:R_py‰¬%Ég‘/SUêyü9-^˜Ò‚âFâæ_¸ù"r£X »¸˜y v·ô”S²ÜÒåó×óNþ jçßä\Ξí§GîÓ³Sè|ÚáӎÉc_½åNô“¤8’rÅõ= ø—WñÆ)‰ª÷UT?™š!ÓçÙ†ïYw™•Ó{‰T>ü9ž=h… »nÉ­‘E†cQCøOÒÃã^U:“žV]g¶ÔÔì¹Î:9‘/+\žÄ¶D8‹·„)E€¬¥‹÷Ù—TI‹‹‹qÙ€¬±÷y"ã»™ù×)§¡BîS±S«<‘ñðw²Õµ§á‰âx’ÏÒ}cJÛñ h1;~ø·¿Òûã§›‹Å%é;¡iôþpbÞjŽ·ù4Ø7&âùíÓÐe8ºòÄÊ7«ï¢Ô]Kjž†tË‘Þâ³Ð%hs)ÿ.nåÒ ¤2äóÏÇZ‚ëH=jy}Z&’å£ÉÛ©ܰ<1ª¡K_Uíœ LîÛ}œ—W[B£Úr$Êôj·…Rq(ózJhÔSŽDùM”ïn’ΣÔÊ<ÇãH”ßÅsßÂyúª¢ÌÓ†°|Ö\Cù,žø¥Òr(ó@| ʬÜÄ£tÊ<$†gºeTSæý±§o÷(Þ#;–?-.~+z§0ʨzŠQÕÀ’½fðõÀBfTõC^XÚH¬_F¢R½zâEZ¦^g¯9§5di mË«±@òå>Æ»6 ¤øM¼.Iov“Z¬bÁ v›°[‹›_yÄšE, âmBð×ñç¤?ò8 ‹“ti· ÂßDV¦ÅQÓu¬K6$ÐQÄš Þ& ×  3VæX°†€Ý&.×À*¬gÁ’¾ ã6~¼öï<ØÀ‚uì6³™g=¶•¯›)0’î,by™¾†ñùav%*Që-m.´M ›®KuâÔ1bƺÄh3¡V“›µ!ÏØ˜`C™ ¡LlÊXÈ3–&ØX&H,kuÑ9ò‹ø³?_lX£Í‡Z­r–@þ)kú 6¤u5&ÚxšqNÍW᎞fdÚ ¦€¨MÓH#ijµ‘\ŸDê&U<¨¤E>Í´SQ«UÑ:pùv.j¤)huåYòËxl÷^“Ç'+øî´‹„Ú®.2KÐöÖ9Ék%dÚ~ty”e!?Ž{)—ý™‡¬yÈD«Õò;9½ K ÍD»ÒÛ‘ØJÁ+[ÕòØz,ø#´ÈòT‘ÈÛjŒ³1Ui-³ü–RåxªH\n5,Y‡ªä!¯xÈž‡LBr«—ÉÈå>màÑ’B°Z^žG›Ú9L‘{úræÅLyà¤(¬–…ç§Þ|fàÖâæ\E[f–Àí]žáHI°„KÂh«Í¸ižºßÛ°€Ë‡PÒšF´zÓ,›–•Ç'ôßD¶Ï§ôŽ KbHpÕ×ybʦÏ3ÄðÁ–´î­N(ëÓÔ{>Š’V5¢Õe ÜÞ•?Ž|=YÂ%áQo{×\>4j[íHÃí¨"\>6’Ö.¢ÕKdM¸Q7ØâÌøØ¨IlÔÆÆ´Vsþ;€ËÇÆgç—‘Ÿf¦Ÿ}¯+E}ª_ªïÛ©ÜÍõ%™ëo)“ìCNžÌðIãÑêü²4ܤ†C©I?ë=™õkÒ:•´}­O¢—PÐ=™ðS´†ÄD³aL¬ý݆™®y2H¬lµÂY›Œé)S,búöø»7e x9[=u–€ÿ>r9ëÃC¶V¾K^îóÆ-¬úí=§Vb$ù¡kd„›LBÞׯ.ÁÉøïEÈH¦ÇŽþE>Òoêî× %лlD*Z’Þ´ºÒmÿð¨#H·ÀHÈNd¤EhuFû=ÈÂMïëHAš –¤’4i…Žg‡“Ú;¤§`IIŒÜ†‰KGïdGF‚%$ãqf<,½¹ ÍK:Hî³Bo¹ÃéèÍ‚€ÇÓA¼÷ mä–ӛ޷@@–çÉ"eZÉ­CÖóxv~¹ÐXÚZBZ;q=Qª‘µ²äŠŒ¤!›ðEª¡òTc‘×´Yû›$~y2QxЊLQüùoªf$Ihõ;îaÉYñ÷³)\è[½ÝŽ„Û»fQæ%RÊ[׎DÚtŒ%R¬»:_Ž´º>b®åá’˜¼Bw«n¸Q7²?Ç>C‚ãI á8,Ç5º9I"l”Dذ»íNÕ$‰—)ýšt…¶b5¤Ýɘ¤µ*y°Bo1jÇê2„Z‹_wPI4[¡ÁXÔ¨ìÊ2ÍÇ4ÒnL¬ÐoŒݱª ¡òñ¬ÅQ¶?óiV”‰¬}®P\¾Fu„~>æI¾¶‘,«ë‘ö·¢ÕèíȺÛ?ûDyvÖ?’+éÑL5Зù,\¡Ï\·Üâ½Ý £¦̓«· ®«òH#ÊHÓ„¢m‚ðòÂéRII¸Ã= ÛDçå5-Ò²$A¶‰ÚËË@¤¿eI‚$$lÍW¯‘^˜%EŠPtÂðÂQÔ]ü!Í3K²¢9¼øó{Ç£¬í¤câé*GšG„ü%á‚NïEÓ4oúyXñ‡4‡”#%aùTšEÙí•IgÈðNÍ»|*ÍÂíöÀ¤7d —DöÔeíÿ"|Ö endstream endobj 311 0 obj <> endobj 296 0 obj <>/Length 6107>>stream xœí]ÍË&Gïç´„h^ðˆ^ü‚5ÆC"h4b‚`4(¹¸—õ þ Æ„|xó*9¸—œDI4 Dˆdã®xÈÇFAr_ã"{z홚驩ꮩžéyÞéç­:ìÛû<óTÿº¦ª»ª?ªw·<à<ýç× ¼üÊ+]ùž{’Ï„òo~½ûú'úr©z ¿á?›øw¾äÿøÿ¥Êžg$÷eˆ–×kø ÿYÆ¿ƒ?x¼Ž– ;þÌwyX|>Y>wîµ"õ*ˆßð$þüYÞ~ß îPö (RïÂö~Ã_5þfÜ/â‡x‚û _ Ÿ»6ØŽÿcø ¥ømØðþŠñÛ:°á7üã·u`Ãoø+ÆoëÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñ[ lø Åø-6ü†¿bü~Ã_1þ.êÃ{8L¡ƒÁÏÈ_-¬w²lø ÿãßE}w^Æûù1\ËkO¼³Yü ]Ä™áBlÇÿ1ügÿ]?ú(g¥W¿òþ ⇲ÅÀ†ÿðñëm•“·ÞSÇ/Ô»Å8KÜÞ½ÙþÜz ÿÚø—0øÏ›•ÿ†bà%Rv½ Oÿié½á—ë]C¯¶#ÿÆ…¾üÈ÷>~'|JÊÇÇ |tt1õŒP†…l×nFž's éƒo]Û3~^^X¯á_ÿ<5z ø£Ïw1ðJï  O=SÖt1¯ã6`øSõ*ïoþb›øCù4càI߯{/Ñz•N‘·áÄ`úç·C~¥ ÿykøO9Öˆo2öÐ0€âømAï ÿŒz•¼}ý9uàIñ)çî'!%Ÿ\ü®ßr¹Éå-¯£B^A˜w¨¿Ò…Þ¾þœÂ:ð¤õ‚뫬WxY|f¼€(ŸP>¤uÔI€Å¼Šðk ¸ ýÙw ¬‰{sëŬEöÃð oÐì<«›W/7µÄ0eùÄ\Í•EÇ/1ÈykøSõ:(!6ãÙzx°1p3<ú‘¶õ™ÝØt1-‰Ý8f«%†Q–÷ß sp—¼£äÿëéŸÿ‚òîþg6‹?Uo×®ñü QÈzxà1°w¡£Ž §ÜØ—ƒ“‚øÏZ |òƒÍo¨Þboý„»õv÷îÛÝ¿žÞ|, xƒøSõv3ý\ ¥¶Q0ºMü¼¼ïx’fÄ¡\èâþsÓõž¤ë}ÈàIò8°”ÿÜ ¬^‡ÜZ—Þ‡¼Üný«ßso=ÛYr Þ“ZφWyó÷»þÔ£Øcš]¯ï˜ pÈmÆÁå&ñwó¦h.^ÍÑSÏ` ìԴĆ âǘ‡©rPhïU‚ZúóþÛëÏþ2 ŸWoÔ~†Ú¿õífôó5OÛ›ŽÜfØptYQôCrßc8Žº û¶‡ÉηžÅÆ R”g´ÞÎä…ŽÉ{Þ­hÛExFù?ú°é«>¦°ž»´¿פŒ)õ ”½ ÷Ab€ãã Ÿ{ñ=—CþÚ5e½kàWú ~|ðÿªU |~lKµ€ûæËM÷ÑG#±Éa¼5ÈŸ¼ׯ`òZ™n¤f|ÛȨÈI/>±4ÓZ9Þ»7éwÿ‚›ìMNùÞï~¯ (<›BÃzCì?s>Á'j˜„ßB‡ö¬®œiRþËõv'|—Å bbÃGG]»LÚ³ þ…ù“¢à5ø•» RÄLØäÏûVˆÁRõެw/(ç2\oW˜ä>k il¸³=€;ÓâÛèß]”OèìB¿ bñF .Xèaƒ¬Þùæ/œ(ÿåz»ƒ?x¼Ž– ;þÌwyXxçò¼žÜ &q.Á/» p4Ú¥q(x›rËD`¿ü>ËÊß˹s¯ñ¡¯ Èò—›€ñkô‡È‡“¯®3à0óœ^4§å£|GÑ&ò_®·;ø3û÷¡ì …Õ-³áUíÊ“zLöµ+Ûª ãÔ[ïŒß 6ì(…M¿k¶ü5È1feÆ;MÇÚ&«à[âMDûyÖ ”²aAþ)üÑòéì…Î%y¿ÞBü“lѳršæ¿NX÷šÍg’ƒ÷âr×!5¨4ûŸSò×t—óôG^¿ »åñD4|âÞ®…NÊ ùgÙÝþöBŸŠ Oâ×@tož>åÚ‰CkÚeñ§Ö!çíõ×Ë_c½'ÙK¯A•ª×éNÚE~‚ß…>¯å!¬=ç¦@xfù’fìMµEósðǢؔ¢Àñ˜r͉Sê¼®¼–#“°~#È_)p7W„õÛí"?!º§d(¬íÕ´,¿ýÄ&Ðä:¾¿ÒQÌm ¦lúw¯‘¿†›Þ†³°eÉ_I ¹4ƒ°°Ÿu˜Û|´/Öó¬~/4þœ4;µ/ZþjI ¦÷å佬“¢±«>¦Âm\ûXΪT 6ÃÏTÊ_“@֟ɰEˆsÛEöÕÏöÉ*Ÿ{nخ԰³œîØX-LJ~åð+ïe•™¤°?ªl‹&Ë–¥üžº¬9¹¿S°crXø*vcÿ“'„°G™gáÉÅ¿ÄçÔìCtéØUŸãBÀŸ»D,°7ÿYã<+÷¦Êû³Ú…å)ÌAlÁvû‹!£éu†mtãý·Ñå»\Æã?æCN„ÎÖ§T쪟ÃËÚS-°žqtˆìåŒz=.BiÀnîJOÖ:¿CòÁGbVCá˜ëˆq @òì@‡¾ÑY.¼cVïKçÔc¾K¬CFñ‡X(“G×?''í²Î£Æ] JáwÈÏ$]§æ¬¬\Vú®Yúã}é¬u¬äŽQôÞ¡]øDêÂ9×o¥<ÀÇúx˜+^”øÃyî(]/xž3j.Ö[)箢106`""2Åñkº6§˜w rèö?¥ç#]oÀn–þhäé–¢„Ç€pˆ2Øó’9‡öB` L~ëEœš¾’)üêè¹K“øñ‹$þaÐ0¥/'ÈAðŸùIT (÷L"9¤ရŒ?uØ}‰ÿå™Ê_³Ddù“`¼÷øirb#þ³;ݘó9y:ÙSBFžä·-MÚ0çÏÕ˜ÌÃ/Ç`òäœëÕ(Kþ\5‡múájŸ%[ÆOÓ†ŽÏô¹XÞ²I}ÀÊ10ç±aÐEbÀ1{ѧðûI9ÇèÊù—–àçõBÇÁg×¹V¹¶ûÈ’?¨jö‚ÂíŠâçÆÆ}„,ÿyÔmádZãQx®—S ûð„ˆ ó)‘=Õ Ya>œœX¹1@cÆÁn£þßžˆ cü]ž'„õ è ñkb°è8,à×öw@í{l~r <NšRýË46$êèBàz1p»$}3y¥‘?î4S™ñ`ø=œœX3ü‡.y‚LÌÂw÷?“ôŸ_x0þ[7˜ôþ³Œ Ì#Kþ´k@Y]8sÿñ÷<îã‚|4þs‡mÌhüÚþs÷ÞÛ÷ÎýÄúM>ꪰº}ùÏnk1p¶ “ì ^Þz&ŠÈ¥Òg<‰ŽðWîv¬ùƒ; 7~ë}Y3‡ëŠXÈ8ôêMôM¡®Á€±`™«BâC¡<êY“ëý¥ð 鳊Ûp#|.Ÿàž —‚ç®dù‡¦umAB ñ‹rÁÆÀ¤L‡MEsv|‚'ÈpYü]7Ä:š˜yèåßc&‘ŠÚüL2~IÎÈ=ÉöŸy/0†Ï}è c}÷M–?m—U?YpExf•ø‹W_]=i®PYÃàw™ÄD#„A˜ð‰0ÁÔ3„„ g™Œ„—)Küõ½iÁ¯ä#è· [PŸµR L'>2Z( àKàiWz0€a âøøÑ‡á“£Çžt%ü‡†¡Îâ‹Ù³WVÎçî›~ëÜèçýç«øÏr€”`gøÏ½¹±ôüƒLâþ3gäèɶSŸœ "גּ†B§Ð:Ü4R)ã—®]X„sß]VÿôçMÂÎ6h>¹Š4L V||k°^BãÜ¢jùŒ0QbÔá~G#*“pmBŒ®|æÇ~jÀã~-ùüBª,9MbŸµ–ü‰™1Ú}æI•úvÅ~>¢7_æó…5ÅÀÍ%ˆ¼Õ'ïE‰Fú**«„ÏÉ?~NŸÓuŒqˆÁ®2ÛHëFáó¦Q¡ X ᔾu¼]2%Ò-¨¸Ö†V'Zä€}ò5b`}ÇuÆÅä¯aèûÊRø>ÆÏ‘2¦Ô3÷ ¼ÐŸ{ñ=bÀEòâ²Ã¶“àÿ÷$áÓÀáa|ÓâàEŸÊk=?üƒ3éèë:¤”ÿÝFL¸m˜· ãrˆžÐÞ¶›½mkÀŽéOAùï}T/Ó¦3)ùÓ·™6à"ø 2/Ÿ2€66ÜÒåÿ¶T^ÜF|øeÅôîÛþe>ƒ®G©‘ ègª¬ÄßaNû X‡>˜†î, ³¤0þ0Ú®€?®åŒþø·‡4í¥¤ÔCI‘ú–z…/…ŸPô™òy¡¿øô—áÆ †Ú;AHŽßÙyqGÆÓTøÖ‘ŽSÐõžOª¯‰– þ;žÿ¿ˆÀñWNFËCJ‡¢rpnïDÆ$ôM#n7%5&ø$þ’y¡—ãÝ-ÔÅÀ¸I­a@yÉÝ0Ê©,ì‹ 8M§ònr­)ÆëØzÛr¶ÿüšãåªÅ‡02þQ,í˜#Ý’ï_8¶ÐvrÉ„#‚n‹èÆ™’È­Í#;òŸÝHΤ¯‡ÿ‚§øuÆl±ÿðôWß ûX׺©à:pw\÷ÖÅ0º|,2!Ĉ̵ sÄ wdõ7 Fqfgv1}ùºò·yorôØ“rxÍlw…Û‰N®ÃðR][  ØÅÞt^äÑ:ÕzþÕÄ0€ø“ùBÀï >Á9¶»Ül4Û@W6*s2ÉõÒí~ƒ‡…Šè^èÑÜÞJéF[ æ­cæçHéüÙ€ùvbÀrøÆxofTˆ­€ŸÆÒ}Ÿ;Âéùüà!Ž-Õvº.•&è¶r׈c<¡ÜpjêÉV¤ød݇¦_Ç^xuõäýr8Í2é°€xÚêT (äÜ—õ§Ôå\þ|²@®¥Ê»‘”ׯhêÕ\i§Ä¿P_g×ËãÆÃ(½ó¯ÉÃ$ÄY¤ñ?—_‰Ç ëÕäÇŒ¿¢“€y­Xxßx§ ¡ƒÒ\`ïDÓpÐÌ9aüJTzØYrSök3l ¼˜ÈèW³ LŸû¾” ‡%Œ@‚ügÈY~p>gfYþ“õBY¶»]4öàe¼O5õ ¡RÖ’"~ç­Pø—£šW¯K¬?-'®Ü ö.\ôÛ6œÕöRíM50U¯²ëWâ×óä˜'å¿ÜîvÑõ·,»l˜OB!/e៭RÑq`†Ü :nJþ.­@.Süþ^¥üg·7Ü-”z Z¯¦:e[fôûXI&å¿Üîzù8î¦ü„,”{Ž€?kðI™î¹-éGfÈ?…ù=·kÄ/¡ošÄOêU¾Vå|A.~¢'3ðózeœkÅÀrftüB–à—ßwP\¡iËßA›aÀ“^ýÊû5ø³ä 76Ë¢õ ¯‡ÞDV½)œ+ÆÀn/1@A>†ßðW‡õXh@Áz ¿á?›øúò#oÜûøð))_€òÑÑÅÔ3B6¸v3PÖoÖkø ÿÁßÅÀ+µ! ß¿ì ¿á? ø-6ü†¿bü~Ã_1þý­G¡/¯W.~ÃØøOgµ‘w`ø ø-6ü†¿bü~Ã_1~‹ ¿á¯ÿ*÷ëË¥ê5ü†ÿlâoú†"¹yÖ¸ßUS¯á7ügÿ®TûõwÛ@¹TN ÃoøÏ2þUrb)Ëæÿ~ÿ°^‹ ¿á¯¿ÅÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñ7Ã:¯ISê({ïÿ‚2ÄÇÇÈ箊Ôkø ÿYÆ¿+ÕˆHŽŽ.º6àmƒ`;ïÀðþñï௣eÂŽ?sãÆ]ÞÃ)—Ï{­H½Ê²á7ü‰–·ß7@ƒ;”}ŠÔ»°ý†ßðWßÖ ¿á¯¿­~Ã_1~[6ü†¿bü¶lø Åø-6ü†¿bü~Ã_1~‹ ¿á¯¿ÅÀ†ßðWŒßb`Ãoø+Æo1°á7üã·ØðþŠñÿ.¨. endstream endobj 212 0 obj <>stream xœÍ]k·•ý®_Q³¶Eòò lË/¬_Œdw!¥±,d<24£XίÏ9ì.V³T¬î™¢¤RM½ï=¼O^²YF«A FëA7å±ÇvðÊ⯢âu?he¹mwê8h븓í.5褹£ùB\2f0b¹#ƒqÜÑØ .àŒDá­Æ€¢<Ë8ˆÓÜIƒøˆQƒDÏ=XùV3X“xFët¦3Ø`xÆ 6YÐ?8íBÂàÄ“ ;8çys\$›€ä©[=xípÉšÁ‹ðž8x§ð‹¶ØßìŸÈZ(èÀ›e"¼'€86 !àÆ©!$òãôµâSaˆÆGœ‘!:¾ÌEŸx3š9’ ç4!Ï„!I~<ɱY\R`#x5¤ÄFðšÊmL÷{¼o±ñ”t  Ôšw¼"¢À‘Ö>Ÿƒ$u$Qqë(,Ѐ¬qðBòäoÒ 4L^ “! ´(6%Ž´r@C„ÌÐG ˆx‹¶b I¼ TÚf1€¶¶‚f%SÖQÔÄlàÅb6²áÀ˜v*ˆœIhUHbÜóÎ%¨@1¨®¸CãuÜ1o¨° Ïz0Éqì‰æU*‹ÀÐ>ƒh—U¹ù 䨡¤¸Ïð‰„7Ô]4%öðl – ^á[ ñ:X€¦|uðÐ1ÎC†çÀsˆÐ9ÖëÀf¨½Ž*ñhDµNGŠFƒ= 1 T_Câ ‘èÏFŒÂ'@#&(Ÿ@ýuR¶žm¢€ND#Ð^,T[ð_'çy4’‡hθB¥ŸÐ)Ñ6©Š"§À T’ç xŠ-+°£,T V=êB)**€¨y¦©ªÄVËnEY>A_¤ÙTmò}‘þIóÙDE|öQÄæé|±Q¥˜NDè eI·Á9›÷ -O/dø>èöð.ÉþŒú#Ô#xp@UÍ^Lh° P |KTh!jTŠOxz,êPÈ.+ò‰HWE0XZ[`pV”tÞ Z,Ù·E:ÇH–ئhuhõo‚R‰ÞÎGø,= ±ÄHx.ÑÛ(œC{Á7Ak„–aZL²ÃQxƒ$ºeúz¡8J$é—<ŸõtL” ­Ïeí¤Ñ»hù–D—¬–ñÁC\ØÓtEÐjKæ)GKêÁö,‹¦ wt@Ы²ò|‚n‡Ö¨t;šçÝZÜÒJ%`i¥Á&5ΖcsT¡u[`³!5Ɔ÷Ñ;há}ÙÅ  ,´ mg¾àO4õ€çÁ¢ß>–‡ì>ñêš-x8ÜÿúÉõ;Öõ¹ßJ#}RÐþV®æûnšRô;}$ÅÒ û>-â}]¿à¢<ñI¹ú¢Üül¡Y@xÐS[áõï7Ó¹Ò†à*áÃB¸‹xl›¯°Å€íû™!•×g·~¹˵a… Vúσu1ú6ÞÊmšsbCo¼ß• Ï&_²&´ÁT1Ù|7¿æ."‹M”!(Í»CùMp}gi¥6]áÿw”Vm„çÈæÜTëi¹ï¢¾9³™Óª«róÝS-?¥ZÈs­’P$g«\k·Ç\«ƒXŸ–3 _¹ù¸ˆæ²\xÚR¨)S%f{b±ÄàƒZFOVx3 ¼ô§ÊÌöüa‰ÓϸyS¤Ž†*Ó™qZkÄöl`‰Ó¯ŠŸäÔ¶9­¼Ùà—8½C—-TIÉŒç*HËö ý¼ö9SøúbÌ×å0ßü¬¼oêü­™žoêµl×›a}YÊWW`…&,©â³lÏ›aeOË…5ÉmXU¸–N~ý\XóšÍ-•0µa™ –ýð°n!­*÷˜áªÊ²½\ðkaðzÒF»ÒK¡ú© ܲ=pot)µ#¼T^¶Gøs!mU¼v*pJ.KÜäÃ)~ïõÅp”ôJ#é­ëo«¤wŸ©Io/9Nävùn¬ò]©²»={˜ñv‡d'VIïÈàAª¬ÀnÏ ^ݘõônÛ¨ÒäÙV!ßnùMžïÔØ¶Íø‰æý®Ò/5Cáí¨“S.Ìz⯋c¹)‡SOö}zœ Ý6ì¼îÚz a¯œ£wôÔ¢¨¼÷}Ù›µ=rª,ÞV®Êný·ã’›¿®°jX=¨cÝöÛ#üŒçsÏWØ•6»'Zö³õ÷©òiRùVh›EˆP©¼­ê9dòj÷” ÌÓôÇFÕ*_uëíöný:—§V/{Më«fÕƒUmï¶GçuÆvó¦YØÏÒæ¹ Ñn{ˆ^çù/åjsLìÚ&»§õá*õ¡âEmo³ší¬{Ñ`:£jïLm°ñØ`;HgêLþ=·À›rxniÎèÊj]ÕùvÛ;ßg°zn½¬šV*U `{„=ƒñüìoåpVöŸºUùê·ÜäPñë @i¬"±Ûîõ7|t€¶ °êy»í=¶3®;šivÅô–æÜ$`smlU5Þm¯ÆoÆv»x©«¢ñ [èÝö@¿ÛÙ!UWEã¬* ðÛÓ€3`ݾ/ ± ¡Ê ü{‰;ù±jg#£YF_ýV^5Í©Ð+(S¥¯ºú~{ð£4k¡XµaVÕ~¿½Ú¿棂0Ÿû=¿j ÜR¢qW¥þ½¤Óü¿É‡,Î"YƒÔNH|•ø÷’,AšOµXCÓÎ>N‰äÓÓ̽Ç.¶Ñg”ëª÷UʾO'Ç”½ƒô¦ªú”ZìËnM˜*3÷U á·§3Ž>¯Í¼ç˜* ÷ÕTf_·éö\`Æä4yòÍ ÒæïD³}S“›<÷42ÕÚ¯ÊÞóú±©[z³¬žæt¨îˆUi§¯fOwhæ«¢Žwœ-a¤RÖPÅä°=&Ocb¯Š+;ꎬ°eØÚ7q8‘}SˆdrO ÓŤSM3±7:1™´Ä4´¤v ¡.ïñZrJíg¥ý¿*‚ù{¹ð¬ÖõÜá{Ðlz[kDà ‡ºÎÌÒìÁJ3?(m}¢Bekݨ É¡êm‡½íuv¿-¬=;¿í¤ÍZÕO'úÉ·gí¯gñgÛüÕ:yŽÇmò·4óº9Ó÷¸ù½\øc…{׿¾Š`á„kíÈýÔ!ZxæëÖX¾ «êÍÆ½ÙްþrKÉ„6„ª7ÏqÞ·‚°äUnáKb“ñXøÉÏjnÊáÏ…ÉÌîe¹e½†w½‚(µÓøËÂù4ozªÖL=ȉÁŸÊÞÔ9ÈW§<ì²¾yÒ½Wo©Ø¨)¤¦FH¥Z¡l;%¼¯Ïdjäè(ÂO# ÇóêNJ¬üžÓßOTÖûòCaüºl^O±Ðšõw¬Â{<Þ?¯Å;M:XR‰Ý‰µ¥ö·äÞ,pÐî*öÇsbÿ“Âü/…•«Úï…åiÉPúWýÄ-IÐ qLcEÓ4‘'E:S¢;w su^Ø>Öf_»ðzX;Ö–v¢Ù§A£'µº\.4Ó¿ãêZ5éf¦½'R–f¬›’þY…cê8ÎâKSœº–‹UøNç„ï)HüR$öì4—óß‘7Ù2Ÿs´ŒÆ, 94~¥éDhù¸|V[ÚóÖP›àï bXjœ¡\xYç³0'[_†*M¨©ÊÒÙÁdêzNVº„|ßGß]7f¯ŸM„;JQëÇfžï+:oÛMw¤÷ ?œÅÿþßÿâ 8²ã’9Hw¯^_^>þè#Q&ñ‘‡¢äþó1hèýIéþá×î9Ü–p[ʇƒìW K¢å˜)¦\pqFï”B&F¦ïŸ@Ä´‹)X¯îÿáß.î|uõòæÞý/ïuïþ'/_=»x5üH•Ráx‡õa÷!Gà€Ë$y›vÞçåUvhŸÁ{X£±çÎMÿèõO7¤óõ‹«Ü•ªq;ÇE‰„3Ç…?¹ÞEçÁEéñ‚Ø»“fë°¸3hOñ`Å.’6IkQçEEv   ÔÑ-ƒ–N”Rv®yY«Å+(Õs)wÆë‚ߥ¼`*åÁEÜÙä›ÞRvhb®>CÒy9Lm—–„lº›Úê]äº<M®ÚÉÎ3oê^ñ¤xZÂùš.€ .Â`éÞÔü7ݱhbíÀJ܉ы¤{µ5Ü…… ;ew\æ& é Þ$xÿx±Ó*•ì@Þ& º.‹ZAÇhhÝ&ß½ èe –å@Å…ãØ+à;kœõÞËröÊŽäCÜée¡÷& ƒJ\Â)ªðÓnÉ©HN:š¶ä \ð N…KyY+;%anÚ½¨ŽxuÜ%.Ü$1›¶.Ì`ÛÛ´­ò;®ÇÇâ¡áVþÜ/Rî:©×ˤ5WàràdI¿loý™WÇRð¤yõ1N–Aw–´ø¸ yñI8—cƒ†›° Úu& +Î+*ºÏœp² Ú÷5*ßÊ+ît”FŒz˨zãeÖÍU댂3É«‚‹%£r½JTÄ_=‘Æ_•–BµëmU&!DÇ#Ô*àü2êÎVe"ܱ-”MB œ–ÌõöÚÆƒ$—suȾ¹k0;D«¹‚õRë/‚4W Õ)@cÎ’‘À¾·‚A§Šk€Âsq5DcX‰‹¤{+‡Ô™ü¢§“— 繤`¾»‚±K͵€ÑàyùWvu3`ßMɘN\óŽK~ÂY°k‰Ðt…º¢Þ;Õ^› yBùì/›@»Ð¦ß9Õy—<å:H./é ~Vðw½†…sh^q Zع[|ç(¢aY‰.EqBWñMÀRÀö½ý‹†‘ ×ESse]‹®¶]ò§û¸:úS Ûæ¢Á:À¶cäzʰõ·üi/ª#^¥vyùa„0ÅE5ºÙ‹YpèíO#r!®Gl˜™p)kdÿ&,õ8Bo@1{ˆ7Z"¤Ì2éÎFå‘yKñ&°«Ý@ÝÙŸ:ÅŠSpÀçÊåèf‡ºDWQ_8W¹}»°»RËÕéžì×£›*¶Þ_±Íh?{sóÅ£›'7`çãáç'—×›ÂÙåeÒáÜ¢„Á# "í¦èìÚ=<šçÀÈÛB$?Yz#´„Ž®}¤ËÕ¾‹*¸HצßY=®wŸ­À'ðãÁÏ þ^f¤Ï70¡Ýà„ëûƒŸü½ÂÌH_±Š©'ýcþîWð÷rû£+Hp|ùûýSì7jl¤;ÓG*#ù›;.€è}b«ÂHò©3y˜[^úÿ þæ/­cö„ª3°3ÁB«Æ˜ÉwÎlÔÞçÅõø§ï¯Ðï]`†ù+ÖGúH|]lœ1ÐÙÿ9þpÐÚâì ÷Hw‰KòÌßÁ Ñ+ tööŸW™À$?­Ðïìÿ, ŽIîHßÂX»–Štζ-’~ÃC÷߉a1xžl÷òzcÝè#¿+€¤Û5:X²XˆŒÝÇTÄïÌ>Þññ?ê†Ç‰G‡GòùUþ;‘†ß5Ø™F¸‹GˆGòœÙÃOƒóË †á6ùÎÞFRÜ—Ì8´¢ø% dâ+ßÙÛº7Š_‰pvùƒì¬Àïìl$H†mú¬gDô5]ÃÛ~ç>½°Riã¾fÈÂÖs–F­coÅ–+ù½VÍ„¥¬VšÐ»¥ k–ü&Œ‚RóË@¬Y¦†ŸýÇR……K~·&¡ÛËïz±p)+ø{[»—ðóüËÝäynÉw¶<à fäg„oÑòXÁ”ئ߹fXÁd½XGtoøšÀÁ EÍïÜò†ÅK~ -/üö‹—¦ ½ßô‰‘>‹—Œx‰’7ûÈ=¼ØGRàw²Ðf?oŵC^¿áü‘>,Ÿód¬Ê©eŽü)¬àï­ú0µÈ/o%¹˜©áKkm½ë7¤ÌÜibñº,¨‡5üo»“¼Û®øtOüѨÉÊpËÑK5u~š³¿ÿüÊ-†[¶¨ÚuD%vœŽ2Q9Øýêˆ é÷QGTFük#*¤ß{Dá0¢2êßêˆ éwv|eDe¤¿6¢BúGʈÊHmD…ô{)Œ#*à5ë*ÙýõQ8Œ¨ŒîgmD%ÓïíÇ!•ƒþ¯©dz)ì‡TFòkC*™üÛþ÷ßø¤ˆx endstream endobj 437 0 obj <>stream xœ½]M·½ï¯à1¹ô²Šß€! ± “’CÃÙ'¶Èò!ÿ>ïõigšíµK4gº›Ud}°XÕCvÞÅPhÅÿÍi*.FïBø_\òü®.ÅÿÁ•Œûctµâþ˜œxÉhd'ùDAO…·¢Ëèyos’ØyòNrÂÍIœ”ÒÐP'ý§àÔ‡„Ft*9 ‘œj4²Ó(¼TÀ‰©:Í™‚ÛÒÐ!XÒ¦ žÅ^cV¤âqô‚­]à8cN.¤Ì§² ¹¡ç\0ÚýñêB/1ã_ÑOÁTÐOÁ'`Zâ>6^/ä’–ÈËü}UL@,è½ñ[).‰Çš\ÂxðKE#ð‰†Y—˜žÀG] VÜÌÁÅš]Jâ“ '“žjäÍx¼qÍ»ì:+Y6 ‹l´àòÎ&.çÔøKr¹(ˆbÖr…ˆÀ¦Ëm¿§º"”Wk·€2¾”€ÙH^\Ù‡â•âç%èA èJ«É'WÙÄå*’w½Á¤b(¾º0I b¨|Sâ*õ)af+*‰R¡Ð×<~N]ƒ¡‘\SH&¡Óg´¸–È¡T×2T&aö[Á&Œ¿5>®Ð1ïù<†KÝç-mlE´¢²E Æ$;v(>s‚:ì+X¢Ú &—ýA‹qÃÁ°E¤QX !½&ŒêiB€h%ÊBÁ”BVü­Â¶T­Ègi05ó‰Êd•"ûÛ©AÍE=´,AÖ¢²_E0šD«SZQ¢ÙiªåÅî<ŸØm½&Zž6ØD¢éÁ pm/(åCã ¼@ƨ( s)!AìOBÁL$ „Šï (¡QMcG 4¢‚Ë1J °¥ŠðP±„ñ lÏ‚gaˆ=æ 删Ȓviãyx J Iaï…„2K0GÁcBk@«pža;ijä]æÐ6Éô# V(™Ž$Á(%GåÕBG„yBheª6Ì:•çlJn7¥(ÅS7à Jª7eY5 ó …ž2Á^¥Ëƒ•’©a¸WJåüA£¤4ò ý–ê)-HBªRZà ª±K‹¿Ñ%0ZW‚ÜÑ¢Ü`¹R©Õ ½£Ejý‘Zö|–Ô²g ÒÊ~w®à2Ãä¤)¤…ÉA n-ô×(sÚ³4Þa±_Àh´šø,h´†ñg̰Â2án0zõ@ ²ƒß†¼³ÐƒÓ+e.TWx>Ü—È«pâ¾> /î[ã}pãÂU'ÃzU¸îdH|’gŒT…n>K{¥)ô¢\&*{Q®žÔ`¿ªÔ¡ŒyPx0Œ ½«H*€ÝU†ýâ"úʰ_Õk¢/RÅT¢¸î\\¨Ó@O–aµhAoéCa‚ä c t¹f  ð¨pàQä³Z#Ÿ¥#ϰU œÙÏ>{üËÿþûúñwoÞ¼}ÿðø‡Ç?><þþí»¼~ç¾ôXýWŸ»/¥7_¾þæ=¾ÅºqåƒÉotyZý¶«pª› nûâõïóÃ_óžøöí›­ni“øÛ‡Ç?ÿøõ{RüÓ·oþóâÅ/£âù]éÇ~Ò‚dÌ€ÊF_Ám´}xÜm5þlD^ÓN«ÙÖ æˆ76*VüþÑø'u+Ò}äð¨[¤V‚4—Õ²µv4ð¼‰1ñ6†|X>·K|“6„ÇôÕ˜~‘-Ð8kÞ¸Īàg1þ`LvV°\LúŃŸÅøí1ç¦t€cþS?‹ñ›]„™q¡œã‡ÝÃÅÓ·V~˜½p)ôì¯ÔcúŘ>ìžÁɤ»G8vL¿ÚÒG ´1T~7Âü"Óo¶~/Àþ/[0¨6 ì“ÀO¸ë÷Œ§>ÀÔÓ¡c¯¶!N:z±v}¦¸ í+6àG黾S«þƒñÃôñ9¦oìúàv7eô2èÇ~ã7v}¦Vúª`öPÁcÚÆn/Àì±±º!ä Ò¶âÃbíõV†Ö ›Çv꘺±áa¹1+3¯ У7öyØÏnÜR ÃS¾‡±f1óyƒ> ­1àê>_aøñpÉ…l¼1}~(Œ¾·…ÅøÅØóa_³116€å‡Ã5ô=vv&ýJ?øY€»>l_·‚¨+4‘›IØ¿®&ÀØõIã¦^é{6zuóÝ–Àäö½}—€ÀH^Ù€±ø¿û‚Î@0´šc'(pÌCLàüqàŒ½ Àè#¯Á¼@’ÃÈ »AˆþzK `h1jìVǼúœ¸è3 V~°¿7€øA?ý!Óµàç£ ˜Ä…s+ÀÛ¶g¨·p{UëØæÏ$âÜv¶~ÊáT­c_[(?¬_Ú±¬Ö±/ŒßW_zÅù}ˆ!‡ÕøÍ·ý[ {èµç|°l² ~ëýİð»–|@åå‹—_|xÀ‡¿<¾ÔÖð¹^þÂ}+ù{éÿú·¿ý *0U°÷")îÍß}÷Õ/•q’í©…K˜™v–ãÔ‚y^-'*™ÌE6(Y=Ü_™ïos„’•<ýkNT²…û˜ dÊñckÏ y„š•ÅøS ê´C™L©ì™÷~ô®{5^Ú²GD/ˆ,´ãÔB³v¯pé[Í©›wÆf3'ó›µsMá<=Ö2“ÀÌatÝì}«l%Á'X}Åà­ X½Ú2ËqV¡Yg&ˆs¡¾„pšµ»›Î…ø¿iÖÎnÀ7=¥±Došµ§àMHºñüÀ-vó1ycoó§™g®©Ÿà7Í.—нüpI­¹p&uó¡Oð¦'Ï×à ëÁOô&c‹ï¡7WêÖÈ]GnÆw‚܈˜C‡ºé&‚Ü€¾5tØ¡›@!ÔSè X'Ð;v36'Ø °Î wðf0p¼y€u½C8“5„Œ½áLÖ°±:ˆ3Rùk ô­ñÃâí±qÀ€5€xAqf–¦p‹ã\i[ãgÙøÝĵv€Å™ô×0è[§ÑŽ3Òèk X§ÑÓ³X'@0v€É ,‘Ð7öÏDrÀ€58œžÇ[#9 o %$g`ä€k,±#9“%’úÖIôŽäLúk$‡NÈ:‹> œ‘J^C9äÀØN,§‡á'X90ö„Ìs°sÈ•+PÂ@sòøö-šs%oì†'3p”5#Áz4œ†x”'‹oœ+uk(µc8#¼â|LÞ: PÎH³ž@9`ÀXùŸ‰å€cý›`NgàÌÖ9¿Žæ NÐ0`}вÃ9CN0phNñç":)”_Ñé›@£´Š6¢ÐLÕÆ"¡;ˆÎ•º±ˆ¯hNG³ÖhŽ$k?3àœáåOà0`ÙvC{Ì«%f¡Î`àí±/—•:ƒ´Ç¾^b”êŒz´Ç¾hb =ë8{Ì«&&ØÓéŸ`=æuÏÄzÌë&®XÏ…þ Ôc^7qzõuÅŽØ—MÌšžá=Ÿ n¢—í NŸOP8ÑŸÁÁâcX9ÑÁùpò‰}Ý">WêÖ©þç=æg¦Ÿ ö˜šž`ϨÛZƒ=懦'Ø3ê¦NÀ»SÓCù؃]€ðÝB7`Ï•ø§ÂyÆÜŸà<æGJ'Ì3ª5N`óS¥Ï¬Ø»s¥e˜;rI´ß‚<“ºy©Ê€wĵ.ÖQ»“f?¯X‡–jÌÀÀxÆ ¬‹uÀ€5ÊÕž©k  {ŸkÍNØö·'Ý=W꟪^§‹ÿãQóÃ~ãé œ`äÀ8àë¥<ˆt*éßB>W⟠í“Ï;'+´GÍO–ÎZžŒ _ÏÀ5?Y:_Æ6Æ¿B{Ôî\éÓ—±ÁïïP\¼ŒM­—ùQÌ3ÞC·DzÔî,ÕÓrž‹èO€зýÓzš?_ƒ»¨çQëªèQÏ“ü¶¿ xñ¨ùY®+ÄÓa–õÛØÔü,×ÄyÆ ¬q5?Ë5qžnù'8šŸåš8Ï¥œmò¨ùI®YÓÓ‹šÖ Þ;ÈeòôàïäQ»3VO@ž±Ñ;AyÀ€5Ê1Pž‘e_Ã<`À*úD Ã7醀P‹oo¦(rjW/ÔI›×ÑÀ•W¾m·ÂßʾͬážßµK-ÒÜLè\l[•°ë¾¶{Çwí’Š#£Û˜'Ö=·ø*wDþ%ÜËéÙ¥»˜µ ¨ÊûËž·´¿¯llr:Y³Å š1£=Ö rÁ‚?H£ ²Æ"Vì¤XwíSÏŸß ¥ «Deì ü^¥E%#ˆíýǨݕ¶µvñ`Û•Ì3y¦…góï“¶ÆÉ¼‚7KeY—‚©oþ»„Þ¦|Åšö7|ƒHETœ>Hù¬îψ«´ðõýþÐjyf"Š_ ¾”Ë—òCÞÿʾA/Òoƒ ?ðO3|˜¼ÊÑÿ¼äÕçœkÙ'ø®.³¢î¯™‡ÔR¤‚óõþ[KÓº¾ùöýëퟯþý¶œ:ïŸFW2„Ǻï´K¹@ÄFZ>¢ûúÝ»W?¼j§þä'R.eO‘LÊrÿ»·”ÿõêûïÛ­iýÌëJÕ endstream endobj 648 0 obj <>stream xœ½\Ërc9rÝó+îÒ^ ‰Ä#á˜èÛ³GxÕöÂãŽ^°«X%ºU¥ =<á¿÷9àK$AÕuD©R—8xäãd"ÁËä§ë$¿“ŸBü–IsÀï0Eão²ø§ÐNi2|2§>N¿h§Øt죣aÑbÎ V¿8H5žûËêáñ>®Wî·åúÆ\|ø§ß‰ôïëo¿ÿôÓu¸&ŽÖa[ÕÑôöpoV·«ªËAÀµ¸€ÙG_]hnîø÷åïO5 Ž\ é¢Ë/á~„Ì Ät½ƒáè¿{Xß®«ƒ¢:²oŽî!¤äÈ @Å\-'[¼üúµ†A° ; «²Ç…ˆÓ†õpÿ¾üx¿úßÿ¹«©‡ý—é’?ý<}ø¯¿ý7½…ƒ+OPÏèƒK^´ôÛÓíí¯×޵¨£ Ù;pÄä6/dsÕŽ†úeu»6yå0aEhMëÅaÊvD/ S 4^Iø ´0tpmÎÃC¤ ;ºç^ß}ss6rjÔìè‚v¨à¦ŽNûªBÍÉHP vÛ|õÜ‚4û µ.ðÃá‹‚eó|wAλy¡yŸÍ õu¾øé§Åvs᪞m®Çæ¦ ìB á}Ëæ˜|m±VuY·2ز9OçÛU”׃ªªcÜ!XðÎ £D¶Gë ¹§ y hê¼xÖè„a!mÅàêÙΖ1  KÎ3JÃnÕFv°k kS¶³õµ±R¼CÝIñÔ:h59ÒB 9R¼€í%©Í>9Èé)ªÌq4s„)G-™A]]AÀƯž¡^4¢Çz¶7¢‰ ‚¸œð g/=ái±`§oò †áÓ_ª8æC@ËÐmm1ð±ã^ÝÞÖ8ˆ©Œ_á1@‰‡É¢sb±ÌÉŸ0†Õý]̓€¥Bû™Ì9ŒàíÁA Õ`‹Ó9n5aP³¨X03e¦»üZç¨ËjJSÞ¬/¨¨‚âkÆFÇzüñæûÊZç(`pL{à€u‡£íS²|ùm0) iÒ†ä Lç„{QôØ‘`„Ñ.{ææàv8S(# 0Æ¥„#àÏwßW"£DK͵|!P™ô°Ë x±ålÆ«/÷ëoëºYÞþÉ#°º¯´VbXKEЬ;ëS¼Ä±„´èZB2K¡öµ ô1"˜?&$µX}\ßÞŽr^âço½w.1Ù÷"]p¾6§Q¯%F+'NäÂóÁÈQ³Ôo]KoÊ[‹óC€Mg"¶¦èñb®îï—ËaÑHóL;à˜“Ì=à±ÑŸ8Ûœ lp3‚‰}\&â¹mƒ×Ý(LñyŸ&̨m_È‚YýÂ@¯òA¯ž)Y†’å’k\MøKz…úÔjGºXäúà`Vº$Â^å½.FÊ\{ª8vTÑöáA€ò$ÑÓðàÙ&vÍõùòÔ z æcÕ·©VY˜=ÎÁ1 Ö0hæò¹yÇÑ”—©â0ÂÕÜŠ=`r´s1Çêæ&æš!dù™AðÕë‚'T¨t?¤÷|)¹@2–0Ÿ2yNW`—;\´³¾Wr`p³X÷¸$‹ßÅ} _8Y¯_»äyÂv½R­á½¥`îÆ+@u*SÙÙÂPŒ†.ˇ–÷ÌšDÄ&p®ÃHBWOIÊçõ—§û•ëFœ×d }K%ìÃkDˆžY”ãðzo?Ý×nãlu˜æ¹s@(Oþ™4tWs/=Š!U !¿ëΉàcjÇ~_a?51ömNEx ávBÐÏðÀö…çŸ%ÂȺTFs# `$¬LТíFß$ì“O¿ñß.Wæ$÷¥á……„‡ªámþ§ ™'ËT{«<ØD ùTzFœÅà[bo«Á% ]ÜÍÁ٨،ƒ5!{`0Žû¾tpÆRzA_® N/©ÈA+²¾kê›k|©B˜Pî9îùÄÙÉ|µ‡GÆ¡šLÔ›ˆ lª´ƒmØÖVÊä„'÷ ŠQ˜.%™Ìãœ];Ú¨ïM ïº7ðL, ˆð!Rs;ÖH V̲Áa>·(»¤Ë¶äx¨ïãöͳ„7Y‘œäþ<²Þ‹”[T1ƒb¿ÎIÇeŒâúOowìþä *SA9À&“çá,ì=X—|Ó¤ã„ÜúëÒ†9ýà¸Ñ`¾YRÚÐÆÚ"Íc+¶º]—AÙ1u­º¸,dª›h *¿x‚y$ab¡zpÍ̱{,|Ç] ʸB]Õ®Bk¬vq7ÞbÔ|A XHâF“ S B ¸ò ð—õ÷»‡Ç2çtqV.ìœ.¥‡²Š«¬#Šðr,Ò—ó¯i̸U)mq3nµc܇õ×»:w—ÌßeÚvÉü^¦mh%dq,óQÂcáVg2“â1¹]~^­n;ä+ï‚ÜcöC³X¯Ï:Ì¢ÁêX€Ê`’Çd W¼Ã1őϺH+j?ÞÏ ®ð)æ‚áùhàyYŒÜŸYw:Ϧ»YÆT³*¦"yc¼²ÜYyXº›Ú_?ßÝ=¢Û 1ó ãdü:Knßä˜2œ®.hi6ƒ—0Ø\²#Áz\ÿ}™ç”ÌèŠÆ¤¼eÇb\¦d$lœ„œ”-¿~Z~zªƒl–äè*k'wÈЩÊ*×r³YƒN>Åxî–¸,ÿcýl÷výô'»TŸuI„Q}PÖb¾I¸3,ëÅ0™Œƒ{–®*†çšô³a"JðI2Ë2ZIZšvÃÌ–t^RöRzaf‚ÕDøÙ½¼ËvÏäúlÚyPÐ?Ó} %6YóÐ;ò»¹¿&†1´sè=lŠ.žV>m…ðþîqYájáipÝWç¨aºù¬&hËÊÀçTÍ:Í Ž%Êûª ‹²{¸·`ƒ6ÊÀÁcÓSgP^“¡Ç^sÄOá¤ààîó°3H&KJ»B´Áe²„z¸Ÿž>EÉZå"«¯v¸¬b‰]÷æî÷e™S»8 —‡ûüp„yI¼)ÔÉ-õV’„o¬½…ñ5Ç»<óÎrâEžå¿À"jI;\YU»°c ¨•V7¸EE¤Ã 1=Ø¡eJ;½ÝÑíìe—y!¢×I°)ÆvËH6xé˜m/Vª‡›Q!K·Iöض¡ =ì/«o_Fù…€ æ%ž=.¶˜÷¦ú¸ˆ›×Àe£½:^DÙa«$ÇËC]ì¡ÊŸõId°¼ÓC*Ø :Uí°ÜKËô€nîWý2ƒs–r(¾Aˆœ¼±"SI* T/8Ïk¡¬çíÉâ]´c:8Òm³"°}‡ D ÛÅma£ª µ2½-.k’˜™îà.È$)-*¬@EÐH‡"–ï¤u«ƒ˜ 3øZêY«S^Ýë ƒÞŒ:Ö 1W¸t¨L&uq¿<ÕAŒ!€™ñóÌLÅ.à>|vÿ+n¾È|(k`éexÙ/ƒ Ï$ü/h¼Àt˜øtˆKr ö£ ù í5‡¬W,Jj®|Ž ükg{xdl!r`¥s|VoEÙª¾Îë­Æ& Xù &…Á!7ß®ç±"XOn>ö/j]‘hÃæQîZ EdZ*:ÞñÕó¯“i‹£.iäÝ®r€Î¼£_„îjݹ@’a¬’}Æ.%ûQp7èÏò®ÉNŒ7ÞŒÉí$Yƒ:¸üv=§æþ Ýó3çpÆ{¿É<WþÙ·2eøÅG矇” ˜²¾‰So',µPX6mSŠêY‡2 ÕÞÉen̪2îæm‹=ôö.Ý­,^h_ ɶ“½Ìo­Pa×çÈÇàMM˜Á…¼òQ1ç,q½¦dàüùà UËÊfÒÑ7ILRW1“„žYÂÎ+‘51ö0{ñÒêiÿŠë ã…²ƒ3ky© dÎx1íf•a%düÑ%±^¥ø‹ÃMÃnQÂ&:~÷Kø%­"æ²BãEa‡:æø?Ú.ÞÔvØÂofP’*•Î0èº9ïWV¨õ¿Õ‡r=FàÏÉ*†´Møh#<i·ô¹ÉÕWÅ®Y·/#° ¶¼”—QA ¥¿ 1£6‚é~ ÔŸáP•? ŸßÔÁô.Kå ”íÞ+åÑ›³Ü1÷óøÙ,‹U+ÝoMÀû#+ÈQx„ߥ<ã÷çϥ˶r”ŸK>stream xœÅ[Ko¹¾Ï¯ècrXŠÅbÉ`a É ''‡$Ƽë‰WˆV2´V€üû|Góî–zÚ–‡3M²Èz~Ud·(CZÔARjÕ!YÁ÷<$Oø´!U>/ƒ*~—8h5|Ê`¢øLƒgÁ§Å+>óP[Ƨ &D 3H…Â!umœ« ’3&Kqãè$ƒ8†¶ˆGîèŒ)Ðà#,Ы£™‹±y*ÖÙ:7-CФ¥2$qÀ¯)U Wì+GÒ*hfÖÌ9¶9ŒÃ3汆GØY*‰6°û̉ PÏÎ͵ŒQͱŒ\äUnƒb«h80© ™ Á™±MÜv¢ÊyÀuÍÜÖ¤†9ša#£à 8Ûà Åb1@ _ÐÀ¾°­” ¶­ÜnÃì9rohpž‡œ”ó8Û<Ðu¬2+™Yð(c»­`T®…ugç# Èn ^0sÁ¬­&4¸ÁŠá”UÀL: L·Q·Ú¨) 2&ЯÖ"xÔ D)âQÓÁ°g4Ð'SX®eÊÌ2+ìŒy :KŒ_± ´0AÅ"ÐJƒ± Z:¸#ÍOÐü”ÙêC}pêZ Š›ùØè¹Q_¡ÔîÂé¨Ö…z¡Ø^@-ÌRçÃì%Æþ›£e}¾:;ñ[a«?mCIÚ-!¢U¹dèqQe¿”‡’óA¥‹aWha>Ê-ÌâΙ¡ç¥ÐŒhO¥®æÃÌ5s6Xh•ha,u-êj}PéÊ- ãŽÕá,ýĸ*hsM¥?µ¡* 2‚9UóAé+U-ÌA³…ù¬Ó…”ªÕÞÂ|Þ¹†I«w€9µ$Ž5º#],²¶ÊUQ›¢r>ïNˆý äp;ìG }—PXø ÎìF;'7º} ×L;ÒN—š·â)=ÍŠ§Ý;O‹Ñ¨¸ªB•Oœ¥Pi+(ÔuëO©¶…Oi³´:´´ë'ìr”¾ÖÚ…áü¿²?,ÍΪÌI+çË]kVËïÂh}]]’]{«qðªW§ÖY\ G4R£y mXd%ÎF·ݸ¡Î 4›\ºá?YuÃX¯c“ÿ)öŒ¦vÇûàÞìHÂèl…>Xº`…6!]²Bêð¿ìFÞKíÔ„$jë}9½+šìÕ-Ô¨Ô%-tûI($¡¿G“#èè%—Šfꋤâ$M½oe³—2ç®)eŽ%‰Îu!dÔ!““‘÷tBªµ³€ÁÈz“óvi#*¡Ù:ϸ~¥‘®€Ú7 ˆhö`; ÓE/¢«õÂ>0´353Ì­8IÖ«[ÿµõ¦­‚"š¥‹cµpÂGZJç=ç­Ü·ßZ¡¡ß~{ó·ÿ~YÞüþþþáëâæÃ†ïøýâæO7^ÜüááñÓòqøŸ|¿üñëðA£… #©%dg˜J5h¦Y|E¿ï–¿|ýÍ/O?ð†Ü>Üô þÛÅÍ_Ÿ~øJй½ÿ÷»wçѯ+×ô³H gy‘~ â!-žßXÅ{L°à$qxÿîÝê—¨ üñ—›÷ãë/_Êê‹F Œ;¿>4˜¾7ÿÇ?©úž™êQ’Ä–¹Þ?ÝÝ}&©!bJH1•–½Æ`ͦ !_I1‡]ÓפA`)¯Ð¯Á®C?5 Œr®9X"²À0â9…6)½yÍÒ.yˆÐäW¢pƺDä²r51hÍÓôåzÂlØÐ‡/ >ì×¢÷`?æ÷åèç Ü·XwÉoh'½éˆ,kÚ)¶íÚÇ>Bà#*ƒfÎÞ Æ/ó¹v›D'‰ô Ó6Âû€ä`d­-œºÔä%Æ#TmWúBwįsG¹Ïý]M/ô¾‚Ò^pÅæoéŠ)­¸UG‚`#*± ¯å‹’æº1±ªÂË%À0iMÿ_·ŸŸ—0”+QuÄR µ ÕEÏ—VyhÎàð"Ã?d8dsÄojÙDo¿.ÃOË»eÓ¯döðï„SŠ!1ƒñ O×KÁëávGcì¡"¦ì¡°~¿a§¥§KÏŠhMÊ+60ªé³5ý¸ÿÆLÑÕZa–z‰e¨@\ȶ›‰ý‘PA7ðXéúˆÿñYâEIí°^+JJPOK³@ú5ìù!·²Àß ÒÉú¦~lVdn-8ëUØ«BãÜ+|úž£5âlm,‡)šEXïÚW ý-í„ ht[wgbž&ü|‰y¿5ãf1»d]”ñ-‘ô¼%#çn0C?+xû ï™¿WÊsë†Ú‹MÏHyW)zˆ´^ó;{Œ¯ôèÀ² -!Ò‹“€X_åt•ðEat¬èµ’œ·È0õµjRUo¢?Ü3Ô?³(¼v¦5Æó y‹.¶ŠæokÈIÌÚ7Šc cTÑF#ëÑa½ŠéXÒ-%À½³Ä0¹Æ–á¾ö’¾!R "7p¶‰ì9Ø/Ë»»åçÇÛûÛßýôñÂRĬ…ïÈÜ€Xã9÷ÏAŽ% Ü‹<ËR÷­ÔwT`OꮾÀßêK+²Àß‘ã9€ž%VЩûšRNÈçhŠÖ„aùIMé…îÄ„ð–Ô)Žï-Ò2«Hp!SÚ”eà‹P@DüIi°c#Räb!Fà$±‡úÜŽã0„þ'|Q¢Ä‰¹"n†'vš¼ÁIó "®'8ƒ£þ¿ž„'F–à=Se9÷"g ¤Jç«â¬ f¸Ãª@@Ë)‡Ü–8¥{«¢h±ð€ 8JÄöŸYîLÆõÿ‡¼vísT^í”pÜ‹‘s¬ø· åðŸx%'W¹ kä¡UA“‰BÚ+©$QyfÈdXB7E¨}$öÑÛt!ïʵxƒ~–€íódÖŒ~²”4ZÈ}Y^,’±æ_/“WØÉ<1V <æHpkÚÏŸ±^;4¯k1©JP¿ }(„T‘l×~ø:`á¶¼Ÿ´¬h* ½ó(iŒæ1 ñ’ì/ð»Ôk¿¥%ÆÓò惮ĿX Im¯.2#çéȼc ;V$õD+ÚpíòSª%(“eNcA¤µ ‰Ç&°×|È™*},j`Á?ÁP—!·´€Jm.åR›yöÅY’Ú:È ò‘2Žd¡æõ²sªÚ™OíÈ€-—S£éyµ¹£"5¦ú1ð*Zö̵šÀuV‰½}â`xújÓÊ*eK z&ý—¦¢!£¹ QàöT{¦‚ ÿ¡+°5ÔÝE·ceÈ~[ë ]ùó!Å © ¸• €OûóÜ:>Qðg™Ìu«3оŸjf{àI$—Â2+[<ª;>®5î†w¾Ú¥'-ð²²*z#NAÁÞJ)q¢fpE3Kˆ ¶¥^$d;‹:P§´9*2­§MyÓø¹®¿­ãç:ÐÄσz†]O4xQÑ*4e=¾2Þ"16Ÿ¢¯ã?ÎñÈÅx û™>Ï|yký<ú#òÚÚR‹!¦”Ž­ub@‚ñ%{ ÖÎ9ù0èÉê^'R}¸E«D˼c œ»´üÃׇÇe›Sª›A™~8õÛ²¼V¾€¨ÆË¦âöÎE§üééóãݲÍÉgöx(ý2nã”§ŽÓ3€ÁÉñq¦uOá©vZiþpÀ6Ú·Ì[^P¶M´†=y7Óì²}JUá!s‹\êê. ½ =`™fÀ•*`¼GèÀg^À¤ô€û…³ÌëÓôGêL–}>»w8,'h\»´”b6ßp²ØƒolZ¢‰T¦sjÒòeÈç²ÃÑt¢o<°ŸÑ»—6w@fR(|ÏcsAIþ¯ïLwx¡r"/öìø"YõxÄšîgKšs/pç~Ç[æ<›Ë{áöóòî¶^éÖœ4Þ÷b¦‘"íƒÃÍ|‡0B^uêÝíÓ7uÎýÕ9à"j |VTìwÉ£T?þüéã§§kÁ©~a½Y^¢mÕFÉ~Y>>|ü¹ׄLe– _Òð>÷[VÿZ¿Ùoõ2oN’ê[¿Ö+/¹úkpŠ"[òþ: _ô#Ð4g©›/úìÑßk½T‘D󭳯³U^íÅÖyÁ·ÉôÎÉ[5¿ÐµÆ@;ÕKÙ„—ÂݯäΜÀ#ñMÞ‹Ü//ßQB2a|i«ðNé€ÔPl[ƒí6÷p{ÿŸ#ÆþƒFÛ endstream endobj 1159 0 obj <>stream xœ½[MoÉ ½Ï¯ècrH©ªÈ*²€…${H€œœ’,öà]+!ZÛðZäßç=ޤÑLOK=É€gÌžn²Øü&«TJó)O¥4Å×À§ãªò¢—©h% S­F OÕ:›dÄ3>µR´©³ô °<5uêXÖ&+qK'—¸Õ8›¼Å3cB6¼NÃy+hd¢9VÜ2âXrˉãFåeq\Ö¨@ÓBf_¡ñ·i™ôèõ¿á‘nñ(÷Xh€žeÒXÈ‚hÆs.\ˆ7<ØÈuÂïA:!°ŠËZ50ÚT¥“S0Tu.„×HªfTœîöBŒzr«ôŒ¯P èBÊqP F(î‚Þþ@J²Q$µLª„* èLRùÒàm¡F+Ñ‘Jí“h¬VAOùúU@¯Å èuã](N<“Š€ž7RpÄ){¼5-ƒü mdKÅ'ÍÊwƒf5SØUó„ÅÈ•@TOU”—€ †Ø'DUryU!e= 4Ðk¡#0¤axµÕI»§¸ÛÃhš ¬f¡Ažz!=˜ Èñ.lYGp 7h @¨2Òƒ*… H9¥=z:‚ ´­Lé(¤ƒ€ NS¡<Äy¸q kX&W{3zG…5§/ÐøÛ¨|·añV”}ê9lÍ3 ­“ÈÔ‹p·ª¸Ñ%“2к´x® ®ÜÑ?ª©khŠê[Û€Iõï 1ÁÁã.èYH&Õ-$‰‡ûÖg`p–Ãr†²­ÃZ†oYù2dáØß2~2BN¸Rù\Ü”ÑG bSò,ðk”$¬% ˜¬é5ëÏJ¼ _0ëÂjÀSà‚Äkžƒx”꜋Šç¶ ÌИ¼ƒóð7§xø¼nò-0QoÔ–À·¼,éa§£öÞâ9Ð3ÊžÜõîâΨ'XÈcÒ…W Æ]@¬ €2b-ýMàƒh€Pç@E郯>H³>(ðŠa´DW cö˜÷ðÄ>F¼H ð7hÅsîAwra,°Ì̘™ d`zY¦ªj€¤@½f  é*ßPÇYc º}nÏâ 2¨’.m3׆ì¡dZ@ò@Ü<ÂЧòMŽÈKt£m*Œ4A5â@欒¡ÃÀæ‚3Oø—!äyVab‰¦”†Ò3K‹$Æ@U‚u¥ß”`]ièH«ƒù.r`ŽÔW#EÊôÍ7ûß§Ë‹ßøðñËæâÓwÀŸò÷›‹?]üysñ‡Ÿß_~æ9~|{ùã—é;ØiâkuOFEj·”¡n³„"AðÜ·—¿|ùÍW_.Ó—›ë«O¿Ý\üõæ‡/\è/Wþóæ âpÙ`í·ÒÇûæÍö—,:4~¹x çß0ÄtÔ6üÚ^"mðÙ^@Ój{{‘q‘ývúeGåÓÅßÿñOª%™"dÂÇkI9†äñáæúúû7oæ2)·¯ÿ˜LZMt?ÄèDIk×Ä Ö‹%8ûLþuõÓÍçËTúL$ÏZµ–‘·š•„P†’¢$fÏXBW-:—M ¹.#´  Hˆ’Œ·²iˆØk‡iÃ"i®ÅÞlƒÏã:| 6+ÏVÛ Së©Á±Q-@¨LÜ2óDu")î™òÇ«¿Î$¨½ËÉéH¿ȾtörÔŽÍ_U j‰Ñ BH}Dq—m›¶TVxöóÍ99„ƒ@›:Â!òq2D=DД­î-ûéÝçw¿^]þwÑ–÷å¿PoÛj;¡¼g&¹•¢Y£ºG´õÐ–Ï OnëÕzáþ=Q­%hfÔ³ì ×Äì¢&ÉáƒH¨‰)]½¦ê{yóÓçëËQ5²À)bLêHò(}n9Eåá_;-Œ~¢Ü÷îßF«Cî…õ9r×?c#¨šìAnE[‚n{‚ÿéòúÊË˸ ÚÚ¤ÈéhãR4¬Ù’âåц¥^ö]ðúêæwÞ^Êõx¡®»uQ²c==ºî»Ÿß¿{3ÖäÎ5+—–òî…Q³§‚þØÂŸ.?|÷ó/“´ÑÊ&vž­@Ó¨¿ÑÅ'ƒ‘"ï6ôÎw+ÿróÿåêã‡ä úŸ×Q(¿~ÛyOÍÏOF+$…ª8±mÔAU¡óF^`Þ`4X衤nÅ„ÿB•UÆRE£ èè€j…’ÆDŽr[VÑÑÕHj+ì¿9Ow%ºótzºˉÉçáþmP×'tÊœ £÷êd @2ª3TeÐw4{ˆ±ÃÛ½{ªº(úfÑY¥]躷ƒß*:DN`îJ‡ÜOMXu؆3y†²:6ø<’®8Ü|E‡chÊ(À 1èíEËœUF¨%³·—ëgd$5ïÖïαb}[T~]°TC¾kÊVù@ùK]{¬påóHØZš]‹€Dµ¢‚X‹ @@ù´š#„uc5±¡Ð ÅHV"ÀO›fÎÔÖ!( üÖs¿•Œ ƒK¬E@ýÚ9YÐY82+ èÞçé+ØkŽÂI×J(ÚŠwk i“®«9‚¢­KÙõùO HéäÈw+tïK•ˆeÝpŒ~Õëøªuï—(ëëïõâdOSÔ·¼*­R¢÷Bûâ¤ö”ÑÉÞ3+ç@ði–å¾Ävý$j®Ž`6fÖº„€f¾\tf­ x.Ú9T]‰à@PisŸ^B`§iYÖ³Ôà³(¶ôtƒ}5Ÿ¹Ï‚Ò K›'“%èÕ ¡Õ/ŒÂÉFË:K>Kp(Àlõ–8²‘¡óÒpA¡eG\ÖjY‹'äÏ}©>£‡¨5qó«v4ÖèºDaÏ^Âe޶Xõh£÷¯~(E*wñP–Fkãá~\ólœXÅï#ì<¸¡ÝjËž'yaùй—™¸±"Ê*]p=`œÇD?’,J~WeVænØ-¯¨&òÉ5ù©éÅ_µï-ݪîÌngLÅ-qw§þÜdëÑ1ÐVw)þ€úš;~V±€PF:3¬D€ç)·Z™ˆ­1#ëdtê#‡ŒÙ‘sgÝ i¦ÝKî69Ž&¸gìç@øÜá»[U¹‚ÚdaUŸ­j9Ÿ9]Þë›ÓbØ@Ñ‚ßв¡é1öí! ¢(È?qœÄØäÊ^ùò ¿pÖYq#)Ü In±Ýž¼•2yi+ï@ÌiIp_·# • >wê)²á×c¦XN•{9ù› [ã.ûy³¦œx\…Í®¡ªœòp:‹èU¤Êñ…fÀµ¶X­ äѰ*–â ™rÿq^æ«"¬¶—õ˜uæ"ë 9pŽ@iƃjˆ Æ›÷è9…Ò刃i‰Ç¢E¤ž¤!d·"­ù…†ù('Oð9ßqA P66{‡z\ÎÒÂÜåP˜³ìv•x8pÕÌñ1'~LÙ9øŠL#§ZÅ‹í<ô£ðE‘2›Iì#4*»õ8å‚[93ªfî³Å©RèVTÐ6ÄÙ>ÿ+¬¾-ÅÕÕô¸hõÄ)ýÂ^7‰VOò™G^²&E'¥(Ðx¼JK§Æ&uÅJýPTóýáŽæîä³/ОÞ‘SHs„˜(Ï6—”%ó°æ¹ÍTåö»%…Ç1:»jȾÏÌrq/^–šm •ÙHe AÐ ”âõÌAºÅ¸–xpžŸâاjª¾¸ÑK›¿" ¯:‹³\eŸRÜ< û‰G výx ½§öÖ!¨q e%¯Ež:@%¥³`»€ÀºEЦî¶Âćž¹}Z޾ðÙ=͚オd7â¥ÃñHðÁ„5ŽüøïO—¹¿{¡c ¢¨mwJ{âÑߣg¡.¯¯³ýp¤²òÔÀcáÞùº¬”oCûñR•ç+¯:n¹;sÓ­2/¢ ‰}Ò·Ö‘‹ ?Ï,7P7:» ûp˜wø· ¬ŒÃ¸¾8“¥ ÒEí>stream xœÕZKoÉ ¾Ï¯ècr)±d‘ÀÂ@’=$@NNIŒ=x½2ldc^ûŸï«±æ¥i¹[š1À–8ê"‹E~|UOn¹M2å–}jÁßøÑ;ˆ"S)F"OUõ©yá_ ˆ±¦MÚÉ…FÎVúd…‹KL$j™z«$êä=“ÈSrÕBIØ1ÈF¶†Ù(²§8©êÔ‚"ÕÈÔn,î”ß ‘>hx`ã4 6”WÈëƒW±¸÷W,vá:.ñ<Öw«¦âÁVOõ©Õh`Å}­L% ÷5EQÍ &ëƒêS©18ÚTt˜Æ E‡m`²¢Î§X\¬Êö hƒ£’­C^/ƒ PC²ƒ× y! ø°>œR"Ó8{„Ñ5y±å€¼ˆ±Î¦*m< PÁsàAÅ IÁÏÅ(Å}ª5s]PæQAÑ) Žª5ÆS¬Æny|U φ.XRº¨@²QÈ3ê¢Ò¦:¼ ‚uà *ç06(È ¼Ð9èÍ–IA^trä:51Jñ0-u<¦ëÐh[ýàPønp((zZaNP¶…O°¥£Z{”{jU#C 'ò á£p#(rà8÷æ¡wıw«ÔvNà¢d \•$Ãø 8üOabm•ò༴”‡°Þ‡BF)pŠ…ŸºØ™»÷=kí½ ûaq¯ŒUîA‘ÃÔv]G2ç…aûˆF…;7y]È ´÷Δ¡+`@ý`Îî28 φ€ñî%ˆ…<¯A@v6Ä‚;ÃÚ èUCÊ€ ¥ °(›| ©E¯Ðî…^5ÄGþ3˜Î ½ ÿL^éUø”ªOÞÆÀ½3Q€‚d‚53;»Vò"\™¯Î-AA£í êz§ÅáïÉîéF÷q"ÌcœB=ÆnÀ½Ç8R}H”‚"6Œ©=3—³}¦ PŽÜ¯ƒgÃQ£l7¤¢É€ç¨Âs Ëc3ÊÃ’hÌ»Lð1R¸ÁQÁ$ƒ¿AÁ¿eR”‚%1üËBÆø5à>ºŒ§×¿<>(ê‚p uîÃÛ Àë̘`F0c"e‹» Ø8/ˆ°RÜ"ÂBi É•ì̃’‰P£R’ǖĤ3ë”P0¨ƒÔ ‚ $…ѳRÐñÂÚöÃ7?N¯ ¶¢š¿œnþñÏ¡~Jê Ñä Ž$R€ýé×_ýéÅ 0üý¿ooþðáÃÝçÍÍŸÀ Nùisó盿lnþx÷é—ÛOÓ+ùúÇ—·o>O¯j/‰áج¦@ZCfNØ™²¤Ú3ÖýxûÛçßýöågþËû»©&<üýææo_~þÌÿúþÿÇþgÎPØ‘E'ÔÜ”Å)ÏQ¸ôH•Å)*Dá’œ¿~woçvª|Ná'ìï’Xso‰ ¤ ÈLäþ¨köGåª(ñ²â7þÓl7/-bƒÿÛ(ó›rÿßçÛÕ6 Åñé{ÃŽ/^lîQ–"Í/¡ÈáÞ~UÔjOL›ÖzT” PtV4z]ç`³¨=Vx‡Z䮄.éÿ^a$d]e¬o; ¹õ©ÆBâø–±ê4ŽDb¯ù yasÐñ;îõæýçÛôîöãí§×Ÿî¤½^. 6/ÕRAÚ„¡’£^”†H@ @©Kè6ýÛ»7¡—ÙM"Òònešh[„Œ¡®ã}qä»×ÿ‰x è—ºzm(´«&ð¢‹ÀñرD@ÇTH¶ÝIG#é%NËO{†a_.àÀÂÎSwíLº\kzÕXÃŒ„rêü’Vö“†êÀ¡/§hùvoÞ}¼{g†lÕ9ç”ÓsZ¾æ9‹5ˆ‰].]S°Ý?NÀÛðº{û:äBéÄ4qPBë™8äa„N 1MG=Úö—/oßz¾LÑÏl…€ÂŸ½nA í8.€š0.ÏGÙÃ. Cæ7Qüí(³¥Q†)ëkµ2 ÄPrÁbßWÄÔ†}±ò:&Ž… Ú™$°¥/d¨ÕŠ9Ée둞’Á\~ÏP=/2è‘ ñóH^òµ6ô“‡I ‡üçÍ4äJÖiÞ’ÔÔñ:Õ"HdGˆÿ wKm¶¹šÑµdM‚écï½u‹Ûjët.F[iÝc†½u›¦‚dWŸ;Ä +rÂÝïzÀ Ý &À•ÖѵÔH–•×÷SêjëÎÕÔS«¬hwÎ0ì“‚Ìã¾gCC­5ÞŠ-d€õsw¯_€p^p¯µœ~Í9©hʼº„4EŽ*)­à3&‹¹²•-]¨nÂF‰ËÍ=ô‹c9ðÞmQ¾þ°^Uo|vû[I¼Aû^û#' hJâ¥}Çä…î¥i`øñóÛ÷Ôæ/WNð²¯kÈúóÎ>/)ƒ%PÎUÚ†?ž?Çêâ ‡':Ó‘$Û„²„<^; ·ŽIÑk[¹ªzÜšå|b@†øPέ'™d†¡pºµ(²/d®ù{›¿®È%göǯV o—­/Õ¤¹ìoEZ½X¡98a“« i‘ÙIµ'ÍbI ź̌Ҩ˗KVÈʱß#ckúÄíϘk_÷‚ðÆO=uð CÂÙeÇPµÌ9¸‹mðÿ¾èb]°ŽÛ]ò†ïfVÆA(žèã³ÉIéíâØÉOÀ¤kÃEÏÿ9gQéZ2dôֵݷ!s]ï#Ö¼žÅŒd+"î ÃÞHÒPq1IÔç5ΘûÅùÊ*•<®»,÷=¨s·] Q¨zûíC“óÔúý[iÿ÷´øâ<þÕG~á‹ì~:ÆÏ1Tsìæø²{…ñýêmï+̰àø3 h.ÐÏ£}f0ñ/†;Å‚:î&`!£[–6ƒæóïþ*ªÔs3Øå’–ÛJÇ3<ÜJÂäÁoX%¾M.¹ðÅ˘B¤÷'¼cS˜ß-XvBB3E×ÝÝZëW¸ßÒXë“Xá“Ǫaæã›øû\a²h4š»dÚŸÊdå½Ò ÷O5ÇÀ—x(~9N{¸9†’yukß(YåÚ·A¶æÛ g®5Ñó}ÜéP2ÇP*F?ÈýykĆ+OÓ² y4L»éÓª$~Û§aêõZñÙS蹫™ۋ3ºXWyuvz+>·¼TÍø­¸… Ò‘fœßººO3Yžy¾À3u…gÎ0¼—ÐTP€3`þMÖ„ß ÜÝ,^ðêõðˆ‹_©-2ø£Eyeð·•ï4N®‚G¿Ã¯ó.cà—ƒ(ºoêSrþÂæøüáumæÓ™[jLN(Ó¼FÜ¿_K½²‡²µƒŸÍ ~9’„—ýh0+?!¯Ueo~Âp€$fÆÖëz*²(’/8iX_Ûfô™6ãA"kRÝÔ]ò4¾4-ÿb£÷5 endstream endobj 1686 0 obj <>stream xœ½ZMo¹½Ï¯ècr¡HÖ‹ÀB@’=$@NNIŒ½lâÃ" ;صù÷y¯$ÍHr·<­ÑðÈ5Ó¬b±øê‹ÍæaK]šÇXZº´1Hà[tsé•cf[úH¢/Ò& [ÄÉ5}Q|@ŒÅTIèbSHˆ3o3j[Ü+ ]F$l$d‰:Hø­“KHžË¤?O%W“eBmi•³Ž¦¤ò!T§¨†?­ói{B  ŽIDS Ø49:†èàìdÓÉY;›æSü±ä¥^ž¼Òî–Œ§œ\£ÍqœÒùT08$)š7ø@ oæ`™¤8‡Bò4JÖë÷¤ÔÐ;¡½QÉ…z7Φ±t9¹-Ý*­ Cà!ÇYE%‡Až×¤ Ïk3Èãö€‚¼à&ï1¨=6¦G$äEŽs@aú¼[–ÔÆÙ`hi ⃚º“Êqc‘έ`©\/L,’ÚcSD¥`b©Áh—% 3£($>òi,2r? NMW™iVkJžµ¦Qí)˜×žà¶§ wnÏÌUÒ €sÕ¨%fiP9’-wèwKj.:rm€¼j­ÒÄ  ™ )¡I7è(ĽU‚0àVéWm´:òé5)h·æIÁÇz«¤d1IH÷&JøšÉÝ8HQI R4ÈÜ›¬ƒ™Ñ¦¯0'и7O@Ï\sôK'  ©†XpWé£N^Ìb¸·rÀ°6-©X¼ÖäE<¨–¼‘!µîAÑIàBÞ+×Å@©|ª‹ F`ã]1¸w%:^MÈq“¥`kݸ3Ü»§­€lO4Àå#uÁö8ã (HNw ñ‘Q“;•)\%0ŽÈÈq🩖˜Ô@dc< LÄ0òÂ$#}!àˆ,ù´ƒJý°Éˆ,”´Ѥ£O@èHO˜ `êü s8Csdh x¼¸€G†¾@h#w‹1ó)äÍD ÔR&E, X¥ýLàã&r΋!@ çƱÇ\Â0v–+±³à`°Æ.6Rñ2ì0j5à3vNFx†Pºa ’ ÇFÃFd`„¨˜)¸‡> ‘PóäS$ƒ&ä…ŒÈq”åS$Î]ȳk »| ´O@@AžÕ‡,ã ÿ*ÇAž3æL|L_×ÇP ò‚¾?±“¢@1 UÓû_[Í‘ždÜGûÚès“‹D$ååØŒP¹I@Ub¼¨B„O.¯2Ü÷ÝÍ_ÿûŸ7¿ûøñÓçÃÍ–÷ ù¼þp¸ùãÍŸ7¿ÿôË¿>ü²¼¯÷?¾ûðÏÏËû®£a2¬èdB˜…¡FBʬ ã¾ÿðëçßüúåGþËOŸ>–(­Øo7ùòãgÎøçŸ>þûöó9=8í»åæoÿrl+ÈGV¶!ÙUà‘¿üüó··^{?€ëð!ÛííÝ/Uøð—›wÈGæ¤üÒñ¥?|qñ>w_]¬EŽRR›YkS¡1!í—Z;ÓÆ½6ë Gõ}J±9˜lN ûíÝhì©F/g/‚ ¬³•>cËÞ½ôM{o(¬µ7‡SŸ·@DØâÏq¤ª³?O¶duFݹ ÏN»Pµ `4¸äy Ý f>® }÷ª¶€F|©_­7ö®7VÕG€,¬ÎÔXPóöqÚB”po¶ØGëk~þúö;‰˜æØRYçVAù»`¥äÞC¼´-ÿx¦ë)Q(ꊓ±^@±dæ)¨Ì¬ÜÅ Ó,š2¥©ªVo—xÚ »í„áS†—ƒßK (åKGyùµŸn0 ¡*h´ô\‘·î–yœ÷™ç)ÃIùŽMmÆfñèw­îV¿Ï/ãl'Ô¶S}]ÏÌo•ÚP200kó"ðÞ^­L¤8íZà„[©MÖSÛ+¢FB(-þàŠè¥ªtì]ኺ>¿-ò6ó÷…ukwD/4[‚ù…]4J+Ôg›¥”¯®³?õº>gãÇöâÇ®ŠŸK4ô„Ú ÿÃnÅQߣ?/f¶?/) é¬"ؼÞ+ŒÞþ,½¤¾£zûñ„B‡ ¥÷±c¡Ùc}/YÏ7JªhÑ Æ1Ú¡Ô<+}5T”þy c^Eéˆ!Šc~ —!–ñ´ JÝ%ß0æzÉÆ>«zç‘ÑE“İ?„ïd³5 ;ÑÆ,Ûúê×¥HøYåñE›7ÆUËGGÀÕÅ¢Þµ¶h±xVgÀíØ #>«-íþéFWãa~ÕZ¦õoÏï›àyj¯SwPk1eÈ¿Ä\wñµóÄ»ðtDñX¡ÚFÿ°ì:õÿb–VNý²q{üâ(\ ‰9É0,èïóõí>cÆ«{âÜÛ!Ì‚ø­6å„E’««Ï3¶k¦RãÛ+ô,Ž-ízî…$ðLÝ'}{·Áâñh¼óÚŸ‹Œ×®Z ¤B³>øJÍÑàk„A”s“©iW9g†Å\Ý;ãÈ3†o÷Ê› ²*ræønÕ«V9öÖè¸ö7Ë;»Íè;Ž|VΰÏCï^8û£z%ÎÕñ°÷p 6ÀVPßñMÏE©ò€žo{Q(À­2f ;ê=+¾Õƒ¦¯ U;Ë“v4ñD{Ÿ±t=¾U+é1¥Œõ ۇ¾To0Úú©Üæ -]¥)K÷?Zµ«Xwo£}/œ‘CxEãÁ“|ê·Ãvž?cxç–˜ù¾ï¬Šž1¼ýÉJS ×˜Q=kJÞ šçÓnô 4o¨ÚÅGßs> Ù_æG°1vDÙWp¨º× ^$ðh’/ø_x‘°m¹±àÞ»ØsTl1T6Zy‹çÔ¢ã: |Ëî!×´{h}yIÊòíwÏ®H<¶bù–sÛøO~tÕP ;½9øª-"{ÌÛY'g7­O7æñ¡ìz´™{“çÜHž@¬Q/¬4î£ôŽ‚£eÁѱh‘Šh³}Œý•€-…yªÖ=T½7ѳšÆ}Öô5'×hixÛªÃr'׳L˜Îd”Ö7ß|lÀý­JLÞâ%‚ê¼YÑys"Q¬D9]9ø[7Õ£üP‹:ÊÇ#¸ Ó¼©ß¬oÝž.u…áäŠU×YíÒ·£äµÃð­hÞ$#\ß>,[ÛjU¬w¿ýöB¿í,Åž1¼}iŽ”Àã¾0çíÕa…©SùÂÜ׋™ÍƒÑ-]Å¥ô¼zYùPKå ­Žö¡IVüƒ7¸:÷~¦®Pdÿ…“o§p4Ä;7¶_ucµF±ªÇ*•Çʯƒ÷V©¯ÈX(ço…1𔾩 U°H¬nÝ)¢`Û<ªÛ2_êFæ¬cʯ¸OtÆöÊÞí•+DVyïÎüùùÒ&CG…„< ϯm1ôPTwƒ÷Îlb3ÿ‡ó endstream endobj 1945 0 obj <>stream xœµZÏ[¹ ¾û¯xÇö¢‘DŠ”€E€¶{hžÒÚ{Ùì`4˜ÙäÐÿ¾ßGÏØÇò¼ç™2ŸŸHQüMÊe¨-y)C})ÿ¥óÿV–"N .E+YŠqikKm±¦/’cÍX¤_47X¨…‹­,Z¹ØdѯÚÒD €AÀ—ÖHÇÆb±—×ÅF! K/\ãºt#/Ë(ÜËÛ2j¬±eïËèàrt|…„:>2G7EÈ—!+l” „ðQ• ,®ƒëÈŠ†x¥a±;6~ŒmðDü°Â}XK\ÊRs='c€T¯ƒßr‡4aq‡°‘T ¨í ÈñQ3¡N¨"|,)™o±y-ÊKÀ%!¯J[­±GÁcõÀÀbé܃[ªð» ¢­ÅFÀµýæ gP2 ,öL*½–x Ðëdˆ ¨ÝøV@‚¤0!ˆDr'¨Bòˆu¶H‰ L«§Šuà’P]Dâä8´ˆóäšÑAz Êm¿ôZ áø"–)݆uÖˆÃϤ òÒƒ^Èh±NaÀ! QKHö®´@hO¥Ã¬ãäaà»Y] >rO[— G?ÐL SBñô”¢Ë0$ÝsUhSîu+­ oÁ…~ဈ‹C«Y`€Ê^ö°õàÀÑc˜¼‡SèÈÄÀ±t„f`˜:ÂþàJ­TE˱ü¿åA\˜w«4 嵇¢q¼¢ÕàÐ$ä‚Ǧ!]À¸ŒîÍ=àLÍÂJ°e3šͶY ®Ksr_`\ÍÉ}ã­çXzCb"=šJ£Bä  Õ‚Z¦4 ìÞšà。^‘ ¾(ÖùbŒc€@EŒoáj¥†)C`”ÀSÌ„¸03 гýº¾˜—x znä¾`NWphëÔ`Áaäˆ ¯D ˜™ ‰u¾xx|;PYœQª2"{øB¸xP‹+]·€!gÔÔ)wƒ/¸ÒË |Á[p±{ë}2Üb_x…3Wº›¨xp»wî!bï–ø]BÄî‚ï  À…H:BxøQôZ€pz \°3‰Ô_èú… $^Ñ[¬ƒ/ôö)!ôëXg¡_lÔ=vs&²|¡Zv :Þ"g”.|a”ý:DCFjÉñ)¥2ž˜ ßù24´q¥øÂÐ|›ñð$ÍÃÀ0ÆSd¤)r@&=n4˜]+ÃüÁ¥™òž/¦ ìX öå‡nÞŠþ¾ß¾y³‹o²ìðÇonÞÚ;üí*êñÁñàû) R¾¡òãò®P\øb¹ùÇ?ÿ…Ę“+º¯%ÁÍÆt÷õãÇŸÞ¼Ý nJuÇ3ü@u;ªoÿ ¶ÃßwÌ‘ò)§MWrz¡¡7„·AT<^¡˜{„Ú×ÉâÑáW.´R-ûʘ[ÊLß2·ÖR€ð÷ÿý÷öæwwŸ¾ìnþd`æŸv7¾ùËîæŸ>ÿrûyy—ï¿|{ûþËòuK„½6,ÁÅQ‚ŒÄ Úrźoûò»ß¾þÌ@ùðé.õTRûýîæo_þÂÿúáî?Gu>fø Î6jBZWøýOdNˆó°é¸>GýßÕ}£Q?F8µôÄŒ†baB…%XöÞ# lê/t*„Õm§zŒp<$ €qþ9¶%E›^ɪ¥Žä™«þ­mÝ–¥:5« ¯hoÈ‚ú´sZ}U”|ÆÜ¤fÛê{6ñ=Xln£—ï¤3A`7ª6P\«ß¢/”|ÛŒåaEÅ8Ah¹0”óÊi‚4z|íý°ƒÊC™™¦gNÑ·6}mp]Øñ}®ª=Bì>ôòF™Òf©VR™† ¿q­6ç´òÁêšo·ºµùX;;p´¨–S7m&Ϭ$ /Û”µg¨j8³f¦éÓñ’ˆ' Ãü“™Ž£IHË/×ÖEÌP¹IÄ'Ç@=Fâ%×³Š†ê‰—”hbR㥂¿òÆ 3s×+ä;ã¶Ô˜,6=VÓö\¶¶ÝeÒE«±–0ëÏlpÐó/Àµ§¸T.¦Ò,iñ-Xç«lCƒwáé¬3CŽšóŠëYÝÈ %ó§‰×ŒC[ìÔjÛ$bÕUƒý­"®‹¹„"ž (¬²èRV" ŤҪÖ·²nàpaư­¯*²¡¶»"£ Gó×èSÛ å®ó"¹|”y|vâpýxJ2o\ô0žÄ·iÄß´œ ìè^ðÍÂ{ÎÝO tR¾§M­^1=ï[»å2éÀtd†åö]‡2C¨ð™Ž¬/Ç«–œW 6¶leËé‰á䥎M„髊þª¡¼4‡ßÇjdºßw(ØÖ…Èóœ“?ÁÂl~lgå…æTeËàú¨øàmQñÄÛžþ½ÀõQñàè÷QñÒÖs+žF‰¼¹ççFj¥X$F#Öù?+w$^t–(w^ULVbD|ØÚ ñP.n½YL¼ûlæœNœ$åBÁîÎZ‚ƒÍÿx©Îé endstream endobj 2204 0 obj <>stream xœ½ZKo¹¾Ï¯ècr¡HV‹, $ÙCäääÄØËz•…AlùŸïãÈÍ£e¶°Æ53ýëýèžZ³-y©5ûâü¿ä¥” Q–Ò:‰ºÔâ¼·ÆOd©^HèRû¸¸-¢ã«X$ DÍ‹ª’(‹†ð«¾˜V~RAa•Åڸؖ&ƒhKë‹ Q’ïDIY‚T©KÉ2uP‚àRP@òg²jH'±”*ÔE¡]í<o‹ EEÉÒ1" yÑ:(å „Ubü̉5ðkÁÓ }ñ¡žR¼ÎÀχ‚~½Q¿(ã:ð‹Æs ¬r¡õyx.D4¼ÍÃößSx)Ãà Bì`߉m<²,Ä•L]*ÎÏoµRRÇ‹úø¬¬’/ÙëFµL\Úp :©×!?Bí öa´$ûbذ$²¥BVDcQäB´Q®*áŒgE܇KBÕèPõ‡®Þ£ íXÔòòþê=ªàŽ•ðáïX*ÇÔ•kËþMÆ›<Þ¼{·——hÖ,Wûû?Ø>‚1†È,)çÊnv÷õöö§wï. Ý`]³–²Ób ­¦lQÅs€"ä€Úèi»aŽÕÚÕž1ЄMŠm´É1à`“¨©¡ñÅ,!” cJ™`2KXïš[ßl“­Aƒ”Úf cÀ£ø-$Âud€K5gŠà¯ÿù÷õÕïîî>Ýï®þ°|(@æŸvW¼úÓîê÷Ÿ>ÿrýyù>|ýñ—¨%‰œ 9O4D+M8 —ýxýåþ7_¾þÌ@Ü|ºK=•Ô~»»úËןïyàŸoîþõÂãÑ@’»O¨~˜Bp<.µ%̆O<»–KG?g*ú¥¢é14Ð{õu¡áÇv|™ŽÙšJr9ÐÕ"5;«+l7 }Ìú#Ï7«ß¤íð7­¯ÊF}‡ÌÈšÐú8åÎ`›d¹Ë+3{HâÜWPMǶ—8¡Ï)¬~‹ÍÞüúõóuª²•+b–ì©!åAi%ÿOƒr«Çl«ÇŽ0F7‡>&(&°?äxð$B­¦Ž1­j7¦ÏͶ8Q ²îø²‹bç*ÓÖhe£5Ž•}€‘µ·ñÄ·|ÅÂöZk¬ÃSc«ÆqQ+š0s›`âLÓLü_ôÕOøØ}^ãí3=š)ö'‡z8 ³6œ[TFDØZs­9ÕÕbr,ñ!ÈT†ðb¯”C— l<‰s¾¢#v¹õ£?Ë3¯—¿‰Ùù*EŽÓ Y”FÙ\Ÿ¤¦–·J‹µˆÁ¾¿-GއaÒ±x Ô¬ÈyQ]TZäy@ Ìû™GÖˆ «õBg^ èÑJ£N‹„µ0Öûé뛥†=ªË,ÀP¯çkÆó2Ó>m$ƒß<çÖÏÆµ5Ü€¨*ó"Á Ø‹{/“¼¦Ž^<}‚¬½E/³ŽÆN9^x·m+Ŭ—‘Þ¼L26òZŠÏ:M‚+¼³xO¼¥’‹Îº€ë-ü€ Ö}6ŒDˆù¸sa&™N6)¨ø‘H/Ø@Q yÓ±¸$Þ{-¡HÌÙ'=öœÛ/÷·7_îoî~MÀ øUúýÁUÑx«m:#ûÚÌîYwøûÖLVû†Ÿ_^8Ãð^年tx~N}‰;J0s†x“\‚¥¦êñ–Þä°¥ßέÂYkó¹Ï¨ÊÈñVã]³l¿ë¶ÝòÕòâáµ™c€Ãªz9äW—˜>Á£#º£VæUfgá§•y€u]Ôò<À¬/§…s€º–$g7dV€ÕÜg‡*ƒÉ¬Ù¼Hðƒ!§ERøŠçrÚ°WÎFyWÐ2êB)ý´½¬`VŒûíl–[À¬Î<|Š’à>ŸWûä›WnpGO}e‡Œ‚«/P-ªL‰>öÉÂHí~¡¶]Ü_PS….ǃQ •Ùr0–«µ{벡`¶Ã-®õv9Q=mã]À÷ïã¬$s«Þ «¹üúEÛpWãàÉ6%P ‡ï³ÆI©åh§ÙÁ®hOÎFäžøX¿˜cnë%lµ¥¯\T1$öWËõ•Ï6ÞO-w .žìt{2ææ×ÝúfúÞ“?˜ûP ën1½Õ^Þú!ƒôUNɽpÄ¢tþ`f 0)H=[àÖµF¿øyGÍ#7þ„ŽTþ”G`š¾ ^¤=¹¥÷àË’Ï©Eê[?GŽёqùÑøº#WØø:t‘'UºÇ[®æÏOOn>stream xœ]=à …wNÁ ÈŸÒ KºdhUµ½1„ B†Þ¾’ÒçgË~°a¼ŽÖÊ~•/T«>stream xœ]‘±nÃ0 Dw…þÀ²•0 pI— -ж?àHtà!² 8Cÿ¾G:éÐá<[ôOíñôzÊÓâÚ:Ç/YÜ8åTå6ßkw–Ë”›®wiŠËƒlÆëPšöø6”ïŸ"d\ù}¸JûÙÓf}Ö­[qNr+C”:ä‹4ïù0ŽÜHNÿ^u´nœÇÇÑþ…MÞc÷lîRy ìØì{6{ÅÀ&`Pܰ ¸Qܲ ¸U$6IqÇ&àN‰‚¥ š* Q°TÁR%6`BfDjD0!3"5"˜aj#Ï_×r´çg­.Þk•¼ØeXÙZñ”åï¾Ê\tËAÍ/Éë‚2 endstream endobj 2643 0 obj <>stream xœ]Ô=nÛPà^§à Diÿ,ÀxݸH$¹E=*L ²\äö™Ù)R 1Ec?,°ë§—ç—åtÖ?®çùW¿ ÇÓr¸ö÷óÇuîþ¿ž–Õf;Nóí³é9¿M—ÕúéÛtùýçÒü ïýûôÖ×?·é¦¿mî_ÍçC¿Ls¿NËk_=Žc{<Ûª/‡ÿ^=ìî_ìŸ?Ýnš2Žx¢n›‚ºeµ¦ «7ÕY³)¨ÉZížq³c}h Þ>°îš‚ª·SSP'Ö¹)¨3ë¡)¨ÖÞÔÎzl *-3Žx¢BcEId4&‘QdИDF‘ESPƒ8Ð4àÔbÎ4 8Ð4àL@#ÐöMAݳÂjò½«Ékô¬&¯Ñk°š¼F¯Ãêò:½«Ëëô:¬.¯Óë°º¼N¯Ãêò:½«Ëëô:¬.¯Óë°º¼N¯Ãêò:½«Ëëô:¬.¯Óë°º¼N¯Ãêò:½«Ëëô:¬.¯Óë°º¼NoÀò½kÈô¬!oа†¼AoÀò½kÈô¬!oа†¼AoÀò½kÈô¬!oа†¼AoMH%ÆO’„Äø)B’?EHã§IBbü!IHŒŸ"$ ‰ñS„$!1~Š$$ÆO’„Äø)B’?EHëJ­,¹²„&%JŠëJ­,¹².L ë*­¬¸²‚µä-z Ö’·è-XKÞ¢·`-y‹Þ‚µä-z Ö’·è-XKÞ¢·`-y‹Þ‚µä-z Ö’·è-XKÞ¢·`-y‹Þ‚µä-zwø¯ Ò¬ÃúuAycy®¿®ó0\¯}¹é¦ëfóRŸ–þïì_Î~5 «¿ÄýsÔ endstream endobj 2645 0 obj <>stream xœ]=ƒ0 …÷œ"7àG%,( ]ZUm/Œƒ2¢Co_Ç@‡ÏÒçøÉ~ÉÚîÚy·Êìgxá*­óCÄeÞ" ìqt^¥¬q…É‘µ7ÞŸ€’Ðî|7fÏR]*î» æ—`£ñ#Š&Ïuc­臿'µz{LªR³òœ*a¥Y„UBÐ,BHˆšEˆ„5ùjöÖÉ[+Í"T¼ú\’®HÎû%l1¢_95§JYœÇßÇ„9$—$‰/lÏd endstream endobj 2646 0 obj <>stream xœ]‘½nÃ0 „w?…ÞÀ?u¨¸$K†EÛpd:ðÙpœ¡oßã%éÐá²t'Šåþx8æq åÇ2¥/[Ã0æ~±ët[’…“Ç\ÔMèÇ´>ˆ5]º¹(÷oÝüý3[ÀîüÞ]¬ül¤®Õ÷Siêí:wÉ–.Ÿ­ØU•î†A Ëý¿_ÍãÄixlm^•ª*TàV)àø#WU¡k¥€µc£°ql•¶Ž¥€Ǩ0:öJ{` זέ; >…(D¸ Å6B+q+Áõ…-ˆ· ¸¾°ñ$)LŽÈæŠçŠ)4`DHdPô (JÅ!‘A¨þ¸ÏWôwö‘='ÒmY,¯œ+çæÓ³ý~žf? âš“t endstream endobj 2647 0 obj <>stream xœ]“½nÜ0„{=…Þàô³Üµ»q‘ Hò:Š2TX'Èç"oŸ™9;EŠ!0wÒì7¤xzzy~ÙÖ[{úq\˯zk—u›ú~ý8Jm/õuÝš~hçµÜ>Öò6íÍééÛ´ÿþ³×Ôåî¿Ooõôsp ýÖßß*×¹¾ïS©Ç´½ÖæÜuù¼,¹©Ûüß_æ÷7.Ëç£ý˜¥®»X†}ÈììàYê:¬°%K°…vÎì ;b*ÕuXaû,Áö´C–`ZÌ5+¬e –cÊl¢Â(Œ‘#GAŽ„4 1 22 1 22 1 22¤š’ɆTS²1Ù³ûH‹®¦¾Æ¾†®¦¾Æ¾V³[i—,ÁbëÏ ;‘´‰»‘@”D•H•@”D•H•P=©~býÀ$ÈDHG9WAgAGŒ+ÊåˆqE9£1®(g”#Æ劊,Á-ººú:û:ººú:û:ººú:û:ººú:û:ººú:ûˆBTAªQˆ*H Q©D!ª UàB§<…ÀÙ†Î7x¾À$V~Ó_/?oÞ”¯‹Ñ–ã¨ÛM×I×…—dÝê¿·_w¾ÕBÍ_DÑãð endstream endobj 2649 0 obj <>stream xœ]ÑAnƒ0Ð=§ð 0„0AŠf“l²hUµ½€1CÄ"Æ"dÑÛ÷ÏtÑÅ·ôÀ–¾=åér¾¤iuåÇ2Ç/YÝ8¥a‘ûüX¢¸^®S*ªÚ S\Ÿ²5ÞB.ÊÓ[Èß?Y6ȸù=ܤü¬Û¦³oÕv*΃Üsˆ²„t•âè=Ç‘ Iÿ_µßNôãsk[±Å{¬`ͰVîØî” [ÀF¹g ¸W[@Rvl;eϰWF¶€Q9°”ÂP”#[@ÜêH¸žÆ{¬ ú’u&íLèKÖ™´3¡/YgÒÎÔ²l•¶€%ú’u&íL-`°×|=›>¬Îè5Ë"iµAÚ t>stream xœ]Ánà †ï<oðJ²J‘/Ý¥‡MÓ¶ àTJM{ûa'¦>¤c w:¿œsZu÷^—ðI«žSŽ•n˽Ò]RVtLaÝMÖpõEu§W_¾¾ év€æÍßü•ºè‘=»u…%Ò­ø@Õç ©Ñçåø¯d÷Žiþs”°€M7LXŸPhUÑgŽ®©= ÐX M¹ wŽ|³kCœ k«ûc†‰u@¡idõ(4 òÇ{ùGÎ# îµR^%AIˆsI™~C.Ká.ÝP?yåsJ endstream endobj 2652 0 obj <>stream xœ]Ô½ŽÚPàž§à °}þXiu›M³E¢(É sYQ, –-òö™BŠi›ù|Ðݼ¼~y=oëÍ÷ëyùÙoëÃñ´¿öóçuéë];žVã´Þ—Ûߤ×å}¾¬6/_ç˯ߗ¾Æúáž¿Íï}ócʸ¿7Þ¯ZÎûþq™—~Oo}õ< íùph«~Úÿ÷Ñv{¿bwx|u×4‡.B\šqdÜ7 âÄØ›ÑGü g_­i†açŒÛ¦AÜ"NS»Ï0î£i†¯ˆÙ4ˆÉXí>ÃøÄˆÛLºÕ¤[=5 ¢>›qf„†ƒ¸c„†ƒ¸0BÃAT h8ˆñÐ4ˆx|ÏgŒJ "½ ‘Ç@7ñǼiù4 V“×è5XM^£×`å #¬&¯Ñk°š¼F¯Ájò½«Ékôp& èèëêìììèëêìììèëêìììèëêìììèëêìììèëêìììèëêìììèëêìììèëêìììèëêìììèëêìììØkGÎ9ê».öãÚ‘sGŽý¸väÜQ`?¡wÀ…€A`\p!`À…€A`\p!`À…€A`ÿg¸0 à8ø‡òwëJ­,¹²„&%JŠš”()JhR¢¤(¡I‰’¢„&%JÝš”()JhR¢¤(¡I‰’¢„&%JŠš”()JhR+KŠš”()JhR+K®,±®ÔÊ’++¬«´²âÊ Ö’·è-XKÞ¢·`-y‹Þ‚µä-z Ö’·è-XKÞ¢·`-y‹Þ‚µä-z Ö’·è-XKÞ¢·`å`e¦“ôqdòPåùü8Ž×ËçõÚO7â:¤y4Oýß99_xÕ³úCqÜ endstream endobj 2654 0 obj <>stream xœ]’±nÛ@D{~ÿ@'J7+Â5vã"Fä(òh°0EÐr‘¿÷ÌÈN‘bx’n13ÚÝãóÓó2ßÚÝÏí:ü®·vš—q«ï×m¨í¥¾ÎK³ïÚqn_ä9¼õk³{üѯþ®µåêtç—þ­î~uÈG¶¿¿®c}_û¡nýòZ›sJå\Š•gs>î‹•'±+±ŠE<Å"…¹XÄ,D±ˆF±ˆ!|(ñ˜¹5{sÖæÌ5Ù«²VŽ`W+Ðì r¾ƒßBoAG°+ȸ^¯¢#Øä t»‚\áT,âIHƒ°IÈ$ØÜÔØ1Ü3Ô3Ø1Ü3Ô3j±ˆUÈÊáÚ¡Úƒÿ®”'‘i‰B‰‚i‰B‰‚i‰B‰‚i‰B‰‚i‰B‰‚öÃB‚öÃB‚g>NÝÖ÷éÌt±ßÚÛV—›ÏÚg«c—úïò×ëªW-Õ|‰JËÕ endstream endobj 2655 0 obj <>stream xœ]O»à Ûù þò걤K†VUÛ pD DÈп/\’|’ïì“͆ñ::›({D¯^¨±NGXýÐ fëHUSmU:NµÈ@Øp“áý @³ÌÎïrö¬/]‡»jw)¯a RA”nÒs.zc§ÿNÍn˜Ì¡l&à¼V‚ô]#œç™i+™¶øíô•Ç%㉪-Fp ‹`ÐÏ:øu >Í _}·Z endstream endobj 2657 0 obj <>stream xœ]”;nÛPD{®‚;%ݯq1‚$ ÈGƒ…)‚– ï>3£(EŠK`DòjΞvÏ/ß^–ùÖî~l×áW½µÓ¼Œ[ý¸~nCm/õm^šý¡çáö7é:¼÷k³{þÞ¯¿¿ÖÚâ:Ýókÿ^w?á©Ïö÷·†ëX?Ö~¨[¿¼ÕæÜuå·­.7ý#èÄóœÏKý÷§±^W¾Õbš?ÌxÎ endstream endobj 2659 0 obj <>stream xœ]’1nÃ0 EwŸB7°lGT\Ò%C‹¢í™.>stream xœ]’½NÃ@„{?…ß ç¿½ YÛ@CBÀ Øç3rc™¤àí™™ ŠYé‹÷gn³‡ûLJÇu9—‡—ý”Þò¹œ—uÚó×é²§\ŽùcY‹ª.§%I1}[q¸¶÷ï-—HÈ󕟇Ï|x­Í*ýV]«ÒiÊ_Ûò>¬¹èCð~ž½ÈëôïSc׊q¾¥f¿ª[/úÊ\ a숃K¡I1¹drƒ/Tu&Ž.‰T@6C( “ÛÊ¥Zvnk—€5±u ÈAmç®:< ظlˆ¨ëTÛ±¶Ãk:½±è 3Mss 3Mss mL­Œ­ mL­Œ­ L6Œ6 ]MM.Ä;—€wDìÉ´+D ödÚ"{2íʸ+›\ND¬Í´:ãêlv ˆÿ¸på*ÒU„£(W‘®bt ‰0e2Òd„Á(“‘&# F™DäõÜ΄‡Ä›¼`™.ûž×³W‡És\ÖüwÛÛicU ?îkÇX endstream endobj 2663 0 obj <>stream xœ]“1nÜ0D{B7X­–œo 6vã"AäZ‰2TX+Èë"·Ï̬"Åx¢¾À7 O/Ï/ërk?öëø«ÞÚyY§½¾_?ö±¶—úº¬Í±o§e¼}’×ñmØšÃÓ·aûýg«-_¨ó¿oõð³N~v¼Oש¾oÃX÷a}­Í¹ëÊyžKS×é¿­Ôß'.óç«ý©8]ǵ9ŸŽÅé:®Ä¾8Äž˜¸“¼›´›¸“¼›¼ËÏ$*éS)‡˜„¹8Ä,DqˆFqˆ!|(ñAøXâ£p,qNÅ!NÂZbÎÅ!²‘sf5J×q%òøÙ Y ™ÇÏVÈRÈ<~¶B–Bæñ³²À&à6 6À9xšçàYhœƒgáYªÃú>¨ëCú :¬éƒê°>¤Kqˆ!›€Û€Ú›€Û€Ú›€Û€Ú›€Û€Ú6n#ÔF°‰p¡6‚6a£QÐ&l2 Ú„BFA›°QÈ(h6 mÂF\u/¿. ®¨nû×ånÇ}¯ëÍ¿„¯¼.ú²ÖÍvÝ4Õ2Í_á§Öü endstream endobj 2664 0 obj <>stream xœ]”ÁnÚPD÷|€Á÷ÎM¤èmÒM­ª¶?`Ì#bƒYôï;34]t1–&±Å9cx›ç—//Ëé¶Þ|¿žçŸý¶>ž–õ¿Ÿ?®s_ïûëiYmwëÃi¾ým¾ÎoÓeµyþ:]~ý¾ô5oèÇ{ÿ6½õÍþÛöþÔ|>ô÷Ë4÷ë´¼öÕÓ0´§ã±­úrøï_x¸?±?~Þ:7縶õÐÖë®Ú=ÃöQ•7*ÃÀ++oTXª½9¬u$„2 ¼²n›ÃªwÍaÕcsXGÕhk¨fsXSÍa…*ÖR}hëƒêcsX¥0NÍaXƒDaªU(L¢ …©BTA¢0Uˆ*H¦ Q‰ÂT!ª Q˜*D$ S…¨‚DaªU(L¦Ú7‡u¯ÊÉó‡fNž=4{pòðì¡ÙãØV~ž’o ýRo!)—L &åÒ‚)Á¤\Z0%˜”K ¦“riÁ”`Ò&m”2JÚ¤RFI›´QÊÜÞÚD€1 Æ€0@Â` D€1 pcxghg¦‚¨@"˜ ¢‰`*˜ŠÃ;C;ƒÃ;C;ƒÃ;C;ƒÃ;C;ƒÃ;C;7.ï\Ú¹èZö-ù]˾%ߢkÙ·ä[t-û–|‹®eß’oѵì[ò-º–}K¾EײoÉ·èZö-ù]˾%ߢ«ÂŸóèÓáóÐA¡3çóˆYÏ×k_n>˜|ðè¸9-ýßÙu9_ôÔšYýG{-¶ endstream endobj 2666 0 obj <>stream xœ]’ÁnÂ@ DïùŠüA–”µAB¾Ð ‡VUÛH6”I¡ßñ=ô0–¬™]WÇÓëiÖ²úX¦ô•ײÆnÉ×鶤\¶ù<ŒÅ¦.»!­bM—f.ªã[3ÿ̹ÄÜßù½¹äê³þ¶¹w¥©Ë×¹IyiÆs.!Ø¡ï­Èc÷ﯗpïhûÇÑ:jqؾ*PªãÎ(àα7 ˆ"ú"{£÷Æ­QÀ­#FŽ~X6F…€ ¬ÖŽ#%>J0F8J|”D£€ÑQŒŠ#ü =‹{øz÷,{£€{ÇÖ(`똌&ÇÎ(`çˆ{Þ•ø] Ò‰'R\º+T Ò(©'R¤Q&RO¤H£L¤žHa_A=‚¯ҳºg…_¥guÏÚløÆÏÇôçöÍy.J™nË’Ç•ëÅõñ¥Æü·ó4{W ¿Ëi²W endstream endobj 2667 0 obj <>stream xœ]‘=nÃ0 FwŸB7°ìÄR\’%C‹¢í‰>stream xœ]‘Ánƒ0 †ïyм‡JÈ—öÒæiÛ Ð`* ˆÒÃÞ~¿M»ÃŸ¥ë]ϧsW_|,Sú’Õcî¹O%‰¿ÈuÌ®¬|?¦õiVÓ­›]q|ëæïŸY<Ȱù{w“â³"jì[¹ÝJS/÷¹K²tù*® Ûa`'¹ÿ÷« ÛËð>stream xœ]‘Anƒ0E÷>…o€!Á¦šMºÉ¢UÕö`#1ˆEoß?CÒEïKlé{¦:_ÏeÚlõ±Îñ‹7›§’V¾Í÷5²ù2S76Mq{˜f¼‹©NoÃòý³°Åλ¿W®>ï_ô[½ßŠsâÛ2D^‡raÓ;G}Îd¸¤¿ên¿1æÇÑf Å9¤éÛLŠsHÓûšçÐ)Ѓè‘èQÔ“õ¢híHv¢#)ÐQ4’¢‰hE#¯­¼´ xžàÚmDQ0hÉ % -¤dhI¶¢è´3RæõŒŒN¶ðº÷uå²éªt²€©ðß6—y‘[˜_=’‹ endstream endobj 2670 0 obj <>stream xœ]O1ƒ0 Üó ÿ Jí‚XèÂЪjûà8(NÂÐß—èÐáN²ïN>Ë®¿öìÈGôø¢Ö±‰4û%"Á@£cQÕ`¦}*Œ“Bv7ÞŸ@°Ènó]O$Ÿõù¢Ê®ÚRè ÍA#EÍ#‰F©¶±¶ÄæOڃݧª-Pjåì?”Í-Ž£€KŒÄ©T-UrÇôû&øS°B|i©SY endstream endobj 2671 0 obj <>stream xœ]“ÁNä0DïùŠüÁL’v7H#_àÂa‚ýà8(2Qû÷TÕ‡=”¥JÜîz-ûp÷pÿ°.—öð´ŸËK½´ó²N{ý8¯õmY›®o§¥\¾Öò>nÍáîϸýý·Õê|õã{=<÷¾uתržêÇ6–ºë[mNÇc>Ísnê:ý÷ËâZñ:oí±•:±ÂNùª¾ëik–ð·ÂØ8hóÀÍC—%ØŽ¶Ï,k‡!K°­e ÖhS–`­g Öi#K°A{“%ØÚÛ,ÁÞš˜š˜š˜š˜š˜N5l:¹d ¶Ðb0ìD;g ³>% &i8‰ÃI˜DÒ4§‘0)dbÈ„€I!C&L ™Ò1T×`ƒuÔ¹jµŽ:W­³ÖQçªuÕÎètÀ¹€Ž)º&霤ƒÕÅëäu°ºx¼V¯“×q\—Áyè.|'~=„Ä ‡ðƒøø!„ B ~!ˆˆB"ò†23ò†23ò†2cåÿ¹Ë¼í|8?ï¤-Ÿû^׋^—^ß̲Ö߸7VµPóéìæ endstream endobj 2673 0 obj <>stream xœ]=Â0 F÷œ"7è» /°t!à!uPÒ(mní¶ ÏÒKbÅŸ³cꃟuvM£½ã¬CÂi\’EýÄ—ª(õàí¼™Tû6Qedz‰ODMЭ~1oÌneÛUrV¬]vpŠÆb2á…êçpp†áïª[žn{Y ä9UÒÒ’µ´b­A ­YHÖÒ–µ´“Iö?y(ηÇÑvI Ã,KÍüí)Ž‘»4¡¾ãe¹ endstream endobj 2674 0 obj <>stream xœ]O1à Üy…@Bªv‰²¤K†VUÛ0C "dèïéÐá,ïN>ó~¸d#ðGpê…Œ%pqkP#N–X-@[ ËSÍÒ3Þߤ<Âf@³ó»œ‘?ÅùrÊ»zO)§qñRa4!k«ªké’þ“J`4ÅÙlÎQ5"û%ES‹ã(¨5¤˜«æ*©€%ü}ãO)ØÀ¾lcS^ endstream endobj 2676 0 obj <>stream xœ]”±nÛ@D{}ÿ@”noÖŒkœÆE‚ ÉPÔÑPaJå"Ÿ™Qœ"ÅI\¼7"oûüòåe=݆í÷ëyþÙoÃrZ×þ~þ¸Î}8ô×ÓºÙí‡ãi¾ýM¾ÎoÓe³}þ:]~ý¾ô?èË=›ÞúöÇ ¶»ß5Ÿýý2Íý:­¯}ó4ŽíiYÚ¦¯Çÿ¾B½ßqX>zhžåÀ›çæaÜ)›‡qϸ¯Í3޼2>4ãƒâcó0>*NÍÃ8)r†ñ¨Ø›‡±+.ÍÃHî§BÍ8Q•]ó0Šªì›‡QT¥4cQŒæa Eò314#³yS‘6ÅFEF…6ÅFEFA„0F#ˆÆaÂ!Œ B#„Dc„0‚aŒF!ŒÂ"„1BA„0Fƒÿ†qVd©ábCÅK *6Xj¸ØP±•¥V[Ul%~µB•B%~µB•B%~µB•B%~µB•B%~µB•X \T¸Þ m·Â›¡ÍàVx3´Ü o†6ƒ[áÍðf—•—•—•>qðS=u࣭a<(²6¸:¨:°6¸:¨:°6¸:¨:°6¸:¨ºdméêRÕ%åÒ‚)Á¤\Z0%˜”K ¦“riÁ”`R.-˜LÊ¥S‚I¹´`J0)—L &åÒ‚)Á¤œf?îŠ_øÏ7[ホ‘ÏSc˜?®×¾Þ|Öø,Ñ rZû¿ãèr¾è®³ù—M#Š endstream endobj 2678 0 obj <>stream xœ]O1ƒ0 Üó ÿ ¡e@,téЪjûà8(NÂÐß—èÐá,ïN>Ëþz¹²K Ñã‹XÇ&Òì—ˆŽE­À8L;+'„ìo:¼?`5Ýø]O$ŸêtnÊ®ÞRè ÍA#EÍ#‰¶ªºÖÚN›?i vw6MW *¥ŠÿPr4·8Ž.1§RµTÉÓï›àCNÁ ñw S{ endstream endobj 2680 0 obj <>stream xœ]“±nã0D{}…þÀ²ÌݵƒMÒ¤È!ÈÝȨˆ,(N‘¿¿™qrÅCàÉärf¹Þ=<=>-ó­Ý½l×ò»ÞÚi^Æ­~\?·RÛK}›—fß·ã\nߤµ¼k³{xÖ?_km±¡Nwþ5¼×ÝkïÇNßö÷Så:Öu(u–·Úœ».Ÿ§)7uÿûépºŸ¸Lß[û1K]‡X³¬À Q]‡¸ÏpOì³쉇,Ä”%`"Z–€Fô,Y0á’¤‹/J¨šT9±rÂÆ¤ÍI›OYžˆ—,/D„K ˜0MY¢AgC8S@c@Ã%¦‹Œì›"#üš<=,˜lm8üº<;=;ãj޳9Žª®ÊÎÊŽN¸ºá솳<‘ƕșȑƕșÈK–€…ˆçr=™óÉá\áBƒŽB®‚®ŽB®‚®YCyƒyC&ƒ&ÑCñƒñ~Cž±rÔ~fŠSÇþ™×¶|n[]nšrM1gw^ê¿?Âz]yª…š¿o͆ endstream endobj 2681 0 obj <>stream xœ]1!E{NÁ ƸZlh´ÙBcÔ °0 °Xx{aV±ø„ó™ùt»q?_xwÊÑ\°pçƒÍ8ÇG6È'¼ùÀ$pëMy­æ®ëv®Ï„¼ [ø¨ïØ¡ßJ:“‹ËD‹sÒ³7dƒjpN1 öïj½&÷SÙ A±aU·M V„ Hb[±ïIˆÍÔp£H-õú¼ÚÚ¶Ÿ¹y䌡PLŠÑ†÷¿?‘bj.^Å^ã` endstream endobj 2683 0 obj <>stream xœ]’Anƒ@ E÷œ‚0`§ò&ÝdѪj{†ˆE²èíûý“tÑÅ·ô`ŒüÇÓëi·¼øXçø•¶|§~M×ù¶Æ”wé¾4ã”þ6p™ïÊ‘ìܲS endstream endobj 2684 0 obj <>stream xœ]=à …wNÁ ò«Ð!bI— ­ª¶ ÄD D’¡·¯q’žÅÇÃÂÏY×_{gWž=¢×/X¹±nŒ°ø-jàLÖ±¢ä£ÕëATõ¬˺› ïOŽÀì|W3dϲ¹ÔtWì]Ú°¥!*7kó\¶ÆHnü³ÄÞ0˜ãe]HRžcemƒÇ†°!,% ±LXIb…(ÐäŠä t¹‚ÜZ’kšäü3 •òq¸Þb·Ò(dŠfüö|H]žkeÙ endstream endobj 2614 0 obj <>stream xœ}SmLSW>—–Û«üJ'lµ½fŠš…mº¡Û¢2‘ÄàÔa¢&.B{)ÍúEi‹|J¡@{ß~ÑPdÑÄÍÙD§Ë„,‹Ëç\¶èÔD—]Èd,Ù9í¹¸ÝRüú³'÷97Ï}Þ÷yÞû2H™†Q—mÞ]X‚ËÉk ÑfÅ Ð&^Ñf~r9Ô P+G´™‚ùdÑ\2kš+ˆìÈ|(‚Ч(޾FWÑ/èwô'¢ÌfQ±ÝQï4›ª]ü ÃJ¾°¨èí|þ‚‚"~£Upš 6¾¬ÂU-X+\òÅÂd7˜W=¿âÝj—˱nõ꺺ºUÖÚUv§éý•ù|ÙUÍïj§G0ò%v›‹ßVaøtë«Òb»Õáv N¾Ìnœ6G…S°Y„*YpN·SézŽ…Ïñ 'EŸ¡¤à‹ŒMfS­ÛšjX®.p9œv£ÛàJA|›±Öl3Y„g$£¹Öa©¨&& „Ô‹ 7lš¿}‡z÷<Ĉ 0A&Ä„™sˆéfz˜^&Êô¡¬TÂJ´¢ f+3Ìü”±%ã R¬P|¦Ì'þìÄ¿ò„bZöá ƒ/`…‚Ì–ïš¡nèׇ;n“[x’4÷D!!®Ït]~ºæåÑ}4‡‡ŽUIÈoñP#P/gT[»!Ü´ö’´6±¤´;§w€¸rÖÝÍKEÚVCCú]R?Í¥Ij§ßùÚ@®Ày{áØ€\3¤‹„ñBœ7÷á|ü.;KPøt {S¤ñ{¦ß 9)ºrÖ!Š5zé{UMPѲ#ÁàIý‹^gøÚD©¦ NZ&¶`'UàºW6è:Ô Å`#pMíà•{:Z¯ÇRÃMi<8UÄ5wÃ,ƒn~ÉêtŒøÆe:@l•ó c†&Oç]£N¬ -x=­>stream xœMTiTTW~†îÇ*_ÔÑyÝJDà0.,a‰‘q¸€(®Ø6-4 dIXº šeXl‚4ˆ²+DA——¸£!jƸˆFG­‡Wsæ¡æÜsî©{랪¯¾únÑ”© EÓ´™¯Ÿ¿û¨aÏO¦ù)&ü_E@tï¾I7+X™™Â˜Ã̱¨ƒ¶”ˆ¦#cÒ|Õщ±ªÐ°8™ƒÂQ6ÇËËÃYæ2{¶—Ì'R«RÈ£d~ò¸0e¤C;tF×nU”'Af²&+%Cª^ì³+¼akGryÈ ø'Ô0¹ l)N®é”B!ù<'JH² Œ8dÄŒ&¿z€f¯D˜ÏO`qš‘Ø#%~vñÇÎBƒ&›Óh22öí…ݓԆ¸†¦ŠƒuíÛŽ.uý"€Ð¡‚‡IŸd'¤/çƒÅmºŽœ6ènM›æ¤•1Z2Ф6#sã›FLšè»/ðö ÿ;ÞdoÖ=Ñ©ñ]¤ õ¨¬ºÉ —Ùà±?ö”ÓÚë0·àÚgÝ¿SÞ.˜½JÃ"}xÂjXÞÉ«bœ¾JV#¤#_b4h<÷DÄO±eë³!œûû7D Àì .„]ÿ!æ}¶8m*·!X|&ïô ëœÉ¼A2J>†!|ˆ·ôc4Çš·"þ!²rqö·ûü’ö}—áÉBӃė»oõ?þÛÅûýð†ÁñÄú:±#“æ9®7¦ëk´6Çvê¸ÚŽþú+À ÿ¼ÆÑcÍ7ó—KI6QìKׂöûI‘¼R2ÊPk/Z#×øÍ;[h”  Ñ\„¿à}öɇé+]Òˆ%ôI[ J š9¦®ˆÜ-·C‹M8=_>\øæÐêÇÆA38ý‚ É1ëçlnÙ[QW[Ù|pomh×ÞùHW ÌÍžKÖ(gO$£ÍÒÆhÓ„ÉÌžb8À}$-ü:Í;üGÄ@ÖHÆò+$ÕÚ‚˜­6%{/~¿É,ÎÝçÆ…‹»rrG ½¤9ñQa·Qü[âÊ;±äOÒõ©Ô_Ñç5¡ÅÎF<þF„Aü ¶7µJà*œ4ÖW—^m‡*¦,-7[£Ì4N™ê—² üamñºiyГ{“¤¤W²R+JrrKЏcoÕU!}£J¿û *+lyV@HÈÖ-þÙñ°Öî<צÓ×ÃA¦qWuD¼*u‹ã'N@G´y¶hæôšHW%…oã>âä-\}]ÓBßCû”+ñg6§3çnó@Ýé¾§Pšú]IY1É b"ªwו7uVž'Ödq!S‰‚|‡æöhÿ¼ëXíîRïþsp.$t¯ï >¾¥Æ ÖÀrµÜ—Á9‚èÉL@ï¶;g~{}ª1UÑ ­ß‘#‡á‰2B¡K ø(óøJ¾s¨TyÁш?ÌAnN>SK2%1@ìóuqùÚbM1#+I¼Y›8·¬d ¼¤ ÿYN0˜.–o Ù(Œçdò¬dÖÍ8Ð §J9ƒpq šœ¿Ì|ªþPù5|{QÄûàöU{S/œeþK$'„éc;}ÑŒYw·÷DsS·¯Z ^ ±ÂI8eh}-¶;µ´ž#A/ÙmU©‡¹^¬»wï~È×®D¼]«ÕB~:纀ÅYs›¿= “¼íÃ\fÛw<~ŽTg£þÿUo¯á­o°iŸŽ×YX‘õµjuøšÕÛ¼! V‚ªúPaY:Zµ'4}3ã ¨Á¹8íP™Äbˆp36†©œ_PêZÿò Ó›»ä1 nè{~eˆÇRVÊÂÐŽÈcÚV87tõ-ÇËÊëënœÍâµÍsµ»½Ôæ]é«>\ÞGܽƒÏXý!¨­‚dé‡qr¨Õ‡a¿t$¤³eu‚'R¤²Ä)±‚§ʤ6| ÑU¾ è$Ìu¿‘prtyÏäiŠ“H1q#OÉ,&Üâ¼Â,]–Ž#‹pj²€4C÷?~bþ/Ò!ÒdÔ±ø„£{BìÕh!£ ƒC'byžóu)ÌÙó7•×&"^±v£BøR™Åh`ï,F7|ÊÙÄWñ¾åURP%&ÛK%F‹G–œ…©‡Áʼ©ÄÊêQ¹•5Eý·yC endstream endobj 2616 0 obj <>stream xœYTSÙº>99 6⡨“+‚½×QPEA,Øeè¥ R¤…„¶CM l¨ˆåˆ`,èØÆîèXfÆÇñúî Söñmæ­·JŽ÷:w½õÖ¢äì½ÏÞýþïß1#,zfffý¼¤áòÏȈ¥cW‡Ê cNÜ 3npî3óäÅq&8±¬Ì•Å®Áë?õÿ0©/÷¨_Ç&¹f5f f¿ŽòY±Æqôè1 "£â£¥¡›e’‰3gΔÄK:g$®Á1ÒÐÉHü!68,2*<8B6N²28X"Û, ‘†K,ó^·ØË]2ÊÝËGâí&ñ–„I%K¥Á1ÁŽ’ÈhIXǃ$02"H*“FFÄŒ“¸ÄHü%1QÁRüRp\`p”abŒ$*8:\ƒ?K¤1’ÐhÿYpD)‘F†Éƒ ÇãñÈ™$*:χ㼕wdŒ,&0Z%“à½]Ý:d”mö—ΑâiId^(7hÓ='ó—FÄHdÁq2Ã9Á’ iLT˜<>o-5Š ‘F„šN#‰õ Ž1îk°ŠI? Okÿ¨¨°x㻑ÆUÝçKe1Áa!ã:¼*Án”,•æýÑ ÉKÿ?¿±Î%bíüÈu ¢Ö»n[íã.[$_ë±ÝI\ÀÒø@Ï„ ¯àe!Þ¡Ë7¯®Ü²j«OØêð5c6÷Åø ‰wLJšv2»&»Çö í œ3°hù ÜA7Û V>÷™Ûg¿‰Ç2fÌ\H&J"$ù’¶!s‡ä ùŸ¡C_[?,‡{Û‡{ XèÀÂfÖŒs†ÞôEä ˜GÆ+”ÉIZe%'•Ú¢²REQ<B¢uœ^€üxÓV$ro— ÂxC£MoÌ![ ƒæ³4J!!›;ÉŽ_²Q¬õw,ÜÍÚŠnÃÙÜTÚÙ´‰èF=zéKÆu<ëhkÚÔ’ÙbÝN%:T³oñÑAÇ€^U»}wli4§ MÒ˜™^”Â"ò÷ÖIb‘·'[¾„2ÊÂÉY3ø²4t‡ÉX@Ãú2Ea<ƒÌM5‘h,Ú„ÆÃM‚FÓŽ¨‡iÅNº£dä€ g žàKH8n3Ñ'o…iEB§uYŒ…êgp‹š5ÇhÞ­ä«·_Üò;=½Ži=¸ç8G=s¹æ$F:Ó¢’EÁ4 †3„÷/ú.÷ôúbƒÐn&BGáUP¯<wD^½„Rž+×¹ŠñÁ‰,gÆšÝc¹^øÈ/¹4t@}Qÿ¶QP­ßýö"‡¢L€ÅïÏf5}Öða3ž¾k{þô7ÆdÊzüöCXDCW¸KPK–ë4¥%išƒ±ºýyœDŽh;· ŽòÌÉ3x­Áœ»H:”çÌ|ÓÚ¡d‡ÄTìÅn©²¾fÛVô–‹æòéMËjƒEÀ{›ï¿M‘ 5CˆÁ¾¨/|ýêîæ3â=µ% ˜Ò¥kR”™ÙéJ±Ï’µÛÜ…z9¼‡VÌ]!´üé-4ÿñÛÕ^ùbubQz  ÊŠ´X ¡hp¥R›œ¤TÄ̆¼X8ž… ] ûàæ° ¯ápÒcx!ýcK{¥)zmRÇǤŽè•#Ö®yñÅðoû¾ùZ2¢Ðrì+ÔoÞº(·ÕbÑzèvnûÆÅiÜlgÇQs¾ùåÉÃòìÞ›…§XsNe=„X¾¤$– A·ò…ð)ç'¸ŒÞ¡É¸"EYi‘V/†½`u–=m÷x »wù…?°æ¿±´”oQ$¤Û Ê\Â!#¡¢Å(Ê´ ždÛå4'‡Ã„-àȎÛì^VSó…C&;ŽþW]cá6ö±=áüáKzãÍUus±áû™€,‘å›ñ°/#ºÿ\¬k¾I¡|G!ß`¢»&“ÝÇùÊ¡hh÷àR´¹GÑmvåðùÃ7o?ø•éJ¬U¿³Ö†ÌÁþÉnÇŽú8â¬áKÆw˜¦R m…ÝöE#p5c)Š¥eÆY¦ÝÅ$SK»œ—š¢Üj8…ì~+tKØ…xaøà@#Ú©qh ŠLHKOI.N¯`¢—£MOð6YQ¬))5&;ÜFŠ&´Á‡kšUƒªÔZY‘27§P%Zm‰V¥I(c¶U˵`-X9n:ÅWÔ¬CQ8§$OËN=ŒZ&%›´¼õ±–«ÿNK˜DV Ç qG"FWq$+­²~Ïno‚åll“­h/çÊÑôæ¾;WÊqþ°Êð}ñ̾„}ÊéT{•{’(QÝÞѲ«Mžæv¤Y\$,Mצ7C(ZÜíPTrâlÂAPðüâ£Ãqõa»˜­»Bt^E“µª\y%Ú[’ZQ>°ñâÁÎGøˆs‹”8m ï3·…"=vKrzjBØÁ¥,U{v¢‡%öÌŸ\ ¦ËH½¶K»Õ<­äD®Ü¶9} ÖᓟÃÁÌ}!hÝwý${ôHSÅEð#¸¿VP˜^Úyè+¡¨^¥I2ª“$=lð]U¹xÐb°\æë¿nC˜ p¥\„hÒ#àŒ¯nVÖ·vJ†³ÐºÊ {ÎzáP–Âî]¥‹°F jÒùê†_¾ƒäÑýÅŠâ´Œ¬œŒtqÌ5a% Üüc`Œv§ÇGåÅš…50ãÀ@‰>¼4‚ã¯ó…Mœ|7 ­x£ÜòéÙÝíòÎò]lØQbZå;#ÆÆTÜ˼³qKlò1NÊY!!ÉS¶Œ5-[å¾hÐÚÀãgxa /Bñìœ/×|+¹ÞW÷]há÷ƒØŽ÷9= žgïñ=Û.G ïù/¾™nÆb´³8+ËÓ™‡ð_“¸À¾Ä‘È ¾Üà5Ú´ˆ%áœv+AGñR±f/:PÛ‹÷Þ¶gxÒLFÈÏ=4% šKþðÍ5mïÌ‹‹g0’†ÓáDAѧ¹ái}†lÐ@h#hþ4¿,"át4-Enï<{Ó~î$œáxä(ðø4{TtçÕ;£‡Ldd&#m˜ŒˆÖš*Õª–v=. ë»GÞ¼$E§žº"½?Z½mƒýa¿1oQFÔèVn]çJA·¯è_Ïæ8k¦#j5çY[Û“§| ‚«üì’íÿÌI&yÿÑ.ç%·nâË)h°ƒ,`ܳb­EÎð°h—+!@¢ëO׿$Ôr•‚²O¾…DSÑ 4¾œç­šV”“]Ì/œŒÿ…Íõ ·…³¢|ô^80ŽƒìЀ_ÆCÛ›7«ŸcöéwV‚ªX¡MSfe§§‹×lðŒ™WšÍ}ø;ìñè!ìñâ®ÿê|&7¡PÉ+3ô𯉻-†Évl°'ðs{÷¦]îÂÓÓ‘×¼|Ä$‡ÚÐDØ&õèJ?~» Å\8¹†Ä@ò‡À´x0òD¸ÈûÑ&ösæ Q z-åz½5aÍJT'„ákÁÇAfbsg¸cñ 9•\wù!glK'C'Ñ÷íH¯~®>u‡šôFÈG EÁw˜¹Íƈ9Ìžåè078ÂLözÏÂÛXælN_ÏKXG^•h$ÑeN-òQóíâd*oÎ\ /·«;”‚óYè„ѳn As–>éPèóÙçFcñ8ŒC½‘ÍŸÃá WÐêÔaö}Ffv†’ Ü:_î fßNúb-*¾wù-x x—O :B«ˆ5;ÇrSŒMÕ}áE¶h&š ñÈÀÏ0³¶…Sá\D@47Wú‘h8úl ""ÇB!”@ÉküOÈt9ŽÄ>LÀ›ÖâX…Ëyѽü*y¶éðÍêcYY{ŧUäÈ¢¦¤XU”’Çl-t+ ÔÄ%«ç3^“Mô%zéÈ3Ò“‘['Ô­`a^W[jÞD··üñÁë×3î aòoqócÂ-`îBŸÜXéî¶`Åæß;„»:„¥ðÚ÷Öê:C~ ÆE¢^Ìþï–M¸C …î>«ÜŘO›Î#ɳàHÅá#uK–Âm¨oæDÑoîã6ÁÙyÜ8gÜN=xø‹Q!»ƒå¾e­N³ÅÁËXQqþp€3(Ü¿÷€¶Ø‹]~òõƒd´x¢‡2#S”ö)Z…./ÏPéKnéêÀnPžµ7•¦í×e•:ñÕª…6533'+“ Ûž ŒÉ =7FK‰âtá²üˆA± 1;\Eá^Òÿ‡X0&¢Ñ-» nù—$l×oêx*VVËE—#|¡†Ô•¶\߇©«ýqP­¬‰Û½½t›ñÅ—ÇmM•Óæ‘O·Žóò—y­íÈJÂâ(4žÞd Š|òhóIŸ—huÉ–aä,8$òÈÒÆ×›OƒÔ‹÷œÄHý+µ0ß&À±Â{·|–-™½Æ±; Þÿf KZƒŒ ÷}’MæmÑ ½DSxÏñ¢p )jËæ¾¥½‡µv70%†Vàg6þ$<ÆÊO˜å\íÏúVzjèœE“ýõA‡dL¼!åNÊÝ”]ªÚDÜÀìK¨Øºy ËBŸq\ÎÝÌ甫4É€2€&ƒ,:z˜Žžj?îa6²­Ñ·qýþÎÛs²Æ Z&\©™[êY­ÙV{˜èФ}Þ¼zæÙ㫾Ë:®ºjÈ{ÜÃüËÍW‰M`ak†Å© ÚG Ýׯ_,FxŠÓä«ë7^3Ürt˜çXTw©mùWÕ¯†zg³pväÖÐÐÏš/LÔ¦–”jôbH¶oD¤©C¼g·Ëÿæv†RÖ× 4ÄàO¸ˆn>aŽùé2_B?\ m§x€fcZ]݆\ƒ€³ä‘Ñë2ÓÆyCvsì¶Žª‘‰iI}ýJ/Œ3VtU’qùô9qáÂÉ“Üîü$†?=ø¨¶Ä+:WÕãUˆü~ @‹~€dg]Òw·m4šÄÓ¬g»þ?ÄŸ‘­s9øå*›K$ æô‚š±4¹¼TS¨/ðÒPæQ?öÃÀNœAJJ6úGü! W§îç·Æýt˜dCÝ-]ûHÓ‘xÁܨŸ†RqŒ)&Õí;z$|_±šô?kÆqÎô_ë>X6äb?ô¦ó5ê|O§iÓ0HRŠÑ·-ÍTæd`‘Óp#_\_Vd/\‰NcaFtåáo4œ<È™ÏCš,v¢I0s0‡æ '‰Ñ÷ohp½òëºæêúzý pÔÇUKë6Uºƒ%Ô$!Xï¾I.•Æù ÕËëÛã¿× Î鸺å2iP_³÷`ž>·¨”Q% ÍŽU~›¼ÅÈEBb¢C³sÒ•¸d%iTå9 YµÛ@(…ç¼7]؉iF™² .W¼5O¶ÔS¿Ã¦îÚR{¨V· WbcŒšÁC„á8y.OÌÈPT¬uš6W“‹‹&´;!h/EŒÐt}pÆ~:nÈ·´7XM3"“‘Áv¤å!Öš[Ȇ`èùöeé<á¥Ó×Zøöƒ½«öƒVêÕÔ§Ž^+#7„ˆãb’ÃA<¥Àª®°°,_\~嫦¯õè–—›o\äØñŒ³ËlçYó©eBÑmNü©e 5ô+ðÖæ@ ¤²¨­YqÙÊ D¥hÓw^hln,p¤vwC^¹ZSJÆžDuh^ÌÐ`°N«_óªŠô”¤¢ }¶ø`VM¬ t±‡b¶Ä¤Æ‚ª+¬¹ElœA!®|JçªsÕjpe÷Ñóàõü[kÖ%†‰c“âq¿†Yˆ&/·¤X¼¿þLÕE@}ÓºÞÃ?2È?ž‰MKÌY¨„´.@¸ýöÙâÏçÎó˜°r¥¾a#£,ÈÌU*M¡HK.M>”Àœ<•|PPøË³¶¯7^ùü`'À`á8=¬phZá ˜Ç+¼ï¤p€xKË:ZñtÅµÛ 6 a-K£$ ÂÍO-iÔ>eá#Ž,Ü… »‚»BC/ã£j2Y£Ðä–ˆOTŸÔÔ‹Ëž“†.Zà¸Ü§æäFYdT U¡HM)Ûq0–9»ålâ—XËï~‚ÖÐÂùÙˆ/B±k™Žϲнª 9ø˜á2.„tŽ>g'Ђë_í;yæá“S€Tfgh2òs ¥ÓhuúÐr?èM«—¥›§DQhÁsÔözûè;H¼›÷b‚«OàÌq¡]{RW¹³ü`Ãñ]GuçÒâ9SW,vq_Ûô"ŠÉÒµªÆàâœ*ŽeÍ~gáIíw‚FSÚ‹1Ž©@–}*öfqAAyNçÊ7Ú{Î3]å†'…Hô [K­… —ªN¨Ëä™ C­W¢'ê¸BE)°/…u…ÆÐá2ydd¼Ž)%ëj«÷í‹©ï4IÕq˜ÅZcÜ 3°Ê0ã7+–ð&}·á@#¸Jý4ëáèѳœ'zô»*½Ÿ/ Z³x Ó‹9ïß¿xòöfЗó‰EoaýèÊJW¯5Îó–¿yçÊÅGŒè=:bñüÚŠy.‹—Ížåqåáƒë—ŸN…#qý¬G…yÑÚÔJ`_ ´º¼Ýõ°Ðî¼Í§F;䔼‡ÇÂSÇÌ9)ü‹VÇ©wX’àùÅzç9ç8Ÿ—V^©ÎÀ1‘®HkHl¼qcwó—̃k‡¿¢à‚°êå4o"F<šþênËñg¬XÕBÇ|‘¿#qkh`l ®¸ùäûK7|}Îwú^&Or eFÜ\ÎBkœ!G¿2Eý$²F«+”º$`Ÿ Té9 ‰Hn7܉G‹Ôº´âTø²s|–©ª<&ÈZÀc?‰(Z.4t¥…šÊ\ñN(¼"w èœô¼‘Ø—‚"º²Êíž›D˜Mn…Ö´a· ¤Z ŒQ þ%+ ¶àñÓøþ#GÂ÷KÙxèÉ-‡=‘E•!0âYÜŒ÷Çq Âmíô´eÞ`® Ý¿}Oâþ´ë)·’Ë3j’kw”ZŠ¥ž¾ÓÄ¢‡.`Ñ‘ÌÆìÊŒ¢.†EE{+Äwac°'ø¼ßò»;´UhÓ€Ážì®*(b9ÆPÁþÁÂA¸†MÃyuÈ«:eQJ.ë„?»ßž€31#FÓ…ÀµÒ³aMÃÚ“1WõàÑÁÅØÊœœ´T&6> Ŭ›+£Ž…7%\W(8Eí®¿~õõ™u Å…#Ô.^`:åzÙçqq±:·J|Â"%+)'PËŸ½r©ñ±QI#Ñç>stream xœMQHSQÇÏqónéÔÌöéî …TD× jQéºYIZaI°Í›Ûr»ã©+ð䃤aÆrcsaÄB°(1¨ÄÀû =,}ˆ ¢²Hz:7®]'6_ç¾ïü¿ß÷‡@ž „„ÑÜÙyrûV%†ByžP!CÃBDÀùH%C*yêoòv”âîܹÈ t{oO€uôÚ9ªÚVCÓëOÔQ:­VO\4ë°YÜ”ÙÂÙi—…“DÕÁØ4 ªOÛ9Îsª¡Áï÷×[\Þz†í=[SGùœº@{iÖG÷P­Œ›£ÎY\4•E«ÏžFÆåéçh–23=4ënÖg¥û8:Àe`­À ÒN@8ðjáÜÈ«’ÅBñø-72¸=#Lx^½Ùõ\o¸j …4©;a›Æ@ xÓ™@rN\´æÖ‘šõ ÒŠ›ˆŸŸ.¼÷·kD¯S1ÈH]I&qíž.bgÞ"qm¿É°·©1\[û¥íIÞŽ e<:5Ìi¸x‰eÉ”âIhÜ©!1ä’ Sè™s ßÏÙÙ¶Žâ?<Œ œ´ŒÕ "œ”Ê $EeŽ}š¨—+ñrþtî»TÿO °\ü>stream xœµV PSÙ¾!{eŸwêöÞhßU°:ˆ‹®ÂʲT\_€ây„4$†`Ï$$„‡ä!!*+jĵbݵ:ø¬/”uµ®µ¬ínw×97öFkÇéL;Ó™vîÌ{gÎùî÷}ÿÿç OB x…E­r?Lá&¸÷=¸Ÿ ›žÓ®/ð‚g×ûÞ}cQå”6 ­Mùöü0…r§J&MU‹§%MÍÏ /•KT²¤„tqT‚:U"OPó/ÛÄkI2‰z§xZHªZ­\8gŽF£™ Ϙ­PIOŸ%ÖÈÔ©âÕ’ ‰j‡$Y®HW‹W$È%b7·Ùî[˜B®ÌTKTâ(E²D•N½4]½#!+Yš*Û&œ;o~ТiÓ bñ)MÄ¡ÄzbA|BDQÄ b 1–GÐÄ»„Á#oâ]^?áIèxíË'()Ùeî6vAÜ(-‡S>¿pñŠ{…ÑTVÉžD£¼Ð!Ñ9<ÅTb.‚E4()yÊtÑÔ N¸©«2¸·hÈ(ªÌ·Sø WE£ñøŽ¶Š|]ÞààFÚˆDYƒB®¥nù\³9VÁžŠðÔ|/)y©¢(ŽÅÕä-Dòà&¸ZvÁõ8©…^E?}Õ7pÕºvƒ³þóZ_nµ¶“á@ Èw‰»„hÇÒ(ÀÐr™È˜8m¦ŽR<ÁÍ$ö¼¯>{éÄo™~Y4ùñÖ”äp¸_ÏørOµÜx‡€KGhûùSÆZ ¤J¿]¯%¤•fþƒRò¨Ò@%mÑnì…ÁF-`,®‹sÔ1R•&‚’é¯÷ôCµÞ&Csñ÷~{òÊ ê`”Y÷TQ¾Ü€ÖŽTöÎ'-vAÿ}Þ³]Bn5j¤á7pxÓ¡Ä® µ+š!]±µ)»µ­¡¡­®°QYÁ:ZÎA9Pgϧ±ÛȵúOt¡ÊÀ4ÅZØLÍÿQuí®óø‘F¦,±Mr(ÓSfÝRµ°!%œ5LÈIzfróº ]}ý'o£‹[<ß=Ø!@DjÚ`,ª#˜®Y­ÝGºy#út½ò•(ùkQu:s>€rr²—…ø-ÖVö@™¿moy oBŠNbHá×KÞ˜pZ¡UŽÆàÉ~Fƒ¥  [¬ÍOI’¥| çÛ²ÃÔd:Ðcèн*mž©Ð{a_UMmÝÕÛ~§íÛÁ­Ø_£6”ò­`5^7w:_¯€Âru+Åw¡Öαv”èœxŒœ7…ˆs}H¿i»$2ű¡q-PØ{NÅcñ˜gSѸ¡¾cõul‰fWzñH…–>–û òâ½}㺤HXI5횎¼¸Ípó3gÏñ>k;œ„ÞL»´z¯&Ë]NœÐÂ/Ýî@¹‚[wQìÝCç…h2 §mŽÌs@ýpóÊ#;d´²Ç;ë ´´¤vQ[^ÝÞúÊææ,{RN´nËFFÞ”°7¨ÉKÂ%7HíÛÙ‚Ì4H†\óÆ#é›sbÓ – EkÑ4yŸºÛ‘wfm³òÀJ˜™ …BãVËÎh‡KEy…< ôtø¶±zZÙ½umõ þ 3wì‚$Ívvw¶r§”·$Ôó!1!›&M qžîîì½hdߌµÛÐì¹q1’LÆ€øÑžñÏÑ~aýŽ6ºÅwæs'òF¤½ÇSʽ¤Û3ì2¹2#MÚžiïlm9ÈàYøS¾Ä¬Å|‰kÞ†ìnpº_·È*-eÑßÈW¨r¾FLtEÒÿ–~†C†Ãº·(=_üv̹ýp]ø‡!Ñ[Ö+͵è¦P†˜ÍŠXêÿ{ÿ]Dhì.Ê.8ýu?r5è: È#wpÓÕm'¢z>à‹Ÿ¸5, pÊA9€®³8_¤7ÁŠ6ÍÐî/`nÀïá–­¿qðbãgpN§Õ¯ª6†ÁÎL÷ðþ´8Žñal¹'Dp¦ÛôFóëå†D÷ ´ ßN½°i;•‘HEõF4Ê|«kzE[BN…šƒnÞð5zúì‰Cpá*|*äL(’–‰t™Ú•¹ÚÂâŰ›§¾\ôÓ“nû—Î_\ù ShäÄx<4oκޒÊýíuŽú¢îXæÀµËMN ¾;½hἨð­Rã­;Ãþ\€èq4ÞÁÅñÌŸÜr­híÀ|"“`ÉÌ+…ÝZß±ÅKŠœÁ¤ ò2J©È}8:xÃ/êOéÝÌ•äB¨îb‡ÈEÜú…®#Ýæwþõ;ô‘{(@ï8PŰÍáúéÏs;€?gßolUEæ½t¥lFAŒf)( Æ٢ݣçÃ…Ê…ü],>IfC^­Õhª®dzûÏWt×жaOa}Z¹Vñi»R¯’nɈƒHˆp¨ëöµ@Õ›R‘«ßÑCÈGžÃh,òšÿ#›/‰gÜü¹þ¯«yÝIÃB®“ûž®¬´RØ&J‚|£Ô[¦·èê(™(§yu‰L¶ÊÚÊŠò{`ãé§‹¶&¬‹Ú¡Àïá%yøW°’ʇMΓp¼†é!Åô<ê=Cù> ª}Ø'¸êR ]Vôˆ¶5CËþ Èe_Îåf@†ªl¬k:VÒ5ûa‹rØ—ÓD9jPeì‡÷9MÏWó4ÉËB„\4^¶§þ%à‰G±Åa1UQ Õå:S‘…ÅþÈ'- ¨ùä7t£¬Ìl†=Tu2oáÙ. ¿ááŠò ¯Ä¬+/b„|‹'®,‰Äs11=;Û`€Šÿ/ª¬@c˜c_µ#Ð@Ç!1å«iàÂl(½ÒÚ Â U¤Ã{ðÆÛ3¨Ág„½ÂÇg°Ög$Aü)B=á endstream endobj 2619 0 obj <>stream xœµXiTgÚ­¶¥«ŒˆF­§ 5Á A\0®àT0¢¸ ²ÈŽÐì«"4[/;oÝìÍ"ˆ€+DQq%jb"ƨc45Æ8I&ou^æ›ïmÐ$“™ùóó†>ô9]UïsïóÜ{DÔÈ”H$’Ø;:[Yþš&¼-&þ"쩬w7c1<0éMj$4.<ÀÏ?Òü}/ s+[Û3Í­ç̱5_ìàå)5wôŒô÷ öŒ$‚Ì7…xøDÆ™¿¿Ø?22t‘¥eLLÌlÏàˆÙ!á~K-fšÇDú›;ûDø„Gûx›¯‘Fš;yû˜nöл}HphT¤O¸¹cˆ·O¸”¢¨Ù+¤v!ö«ÂWGDF9D{Æî^çåèíä³á#?ç€M›]‚‚gÎ2ce=×fÞü…¦QÔ;Ôê]ê#j 5ÚD½Gm¦\¨-Ôtj+eGm§ì©Y”+µ’šM­¢,©ÕÔÊŠúšK­¥l¨yÔ|Ê‘r¢ÆP&Tõ:5žš@M¤Xê êMÊŒJ hÊ’ I¤”¢1¢Ñ£.#úÄ3Ä%#—LùÐh¡Q›d.=’Ž¡/1nÌ‘QΣú_ÛøZëhÑh©ñÆ1Æø›˜š¤š ±6cg;ÎiœlÜ?__ûú±ñã5ì'ôM\:QÊn&úpÐ!°R#ÞÔ¯gåEÊœH¥"}/ö|jš°;$lŠ‘ÒÔjh8uÊãwu´gF¸–|Îuvñ1dfв%§±Uv"(Aa¼ Â9)]­¾E¾Òסzø¢µ ®ªXÄà¯ð>‰‰Ð:a’F„¨~äÕ/6"9 ¡!²YzhgNLŸ…)1ŒêG ž”d$¥¯æ¥ºò¸†vK‚µä!uê^òô¾:ÙºD8Ê#'úçkg.^,ÙæÄáÄÿúÝíªFÆDï@€¸¦A]:âÐ×ćõËX©†¾ž)óåh_…Ìž‹‘ ÆÄ>¼ÿÝm»¯ðèbþiŵËpƒùÚæ.~“ëñg,RÓ-êÜ#/ù¡mž‹ÃÖ…XÌ¿¿aÝ•¹-<Ò¡ ôw= –.rZaÁ› ²*ÁZ#j@bÁ²ˆµø3Øxæd<Oüa’ ×ž}Æs8»±¾àV&í=ª:]КŽ6>RÖ ‡ +®Þ»i¬_ðǰ!;vÅú)lk´No©õ>"êÄzsý¶²ei*¥,s]ìvfM«=˜áuØš¼<°²ÁsZø½‹FBN’L•žÊ'㹘Y5˜UxS:ŠºÐGG®ÿü­5ž®áÕ‰ (¦25¼‰~6Áñ’l¡I·‘k•X?å³Q’<'b%^ ž$†¢úý]aÐ<¾ •EIæ%Íàæ …d<3 zš¶—â)L•$ E vJ5’a.ê~㢗ôθáÞùéÒ/·Äè”À>ëxt3O ª,.E¾7 BiuR™FS\ßÚà1_j›Æ©X‚ßú­Ô > PŸ½ì×ÚNYØFªš@ªê!?ÃUm® W ƒõÿ~(IúrVxº¡{Ó6Ê¢6©ÐO  —»@8‹›‹ ^–ûºMÝ–<™”k"¼!Óó+D-GQÜQ1º-|0DYJlTr*T”³‡ 8ÆÏasø·ûóÍ!R%ŸN*VÔÆTì+Ž‚Æ#|Ç\‡í?Dqò ÈPe(³ä & Òãx<‰Žƒô‚ìŒ m9— êÒ²ö½PÌÏ'ûnõ6'çó~M¡9EÁ9v%pžiÒ{ˆD9³ƒÔ\FJ.dSÙ¤yÇ‘æ}K‡jD?ö£IUb´X˜Æ¢É:<­’¨fù͘£`bîá&‹¿ˆ¤šíÃÕ+ËÒ â““ÒRÖ-2]ò£"+-rÍ '»¢ÑY¸rÛ¿Öÿ1T*µ¡hžeªVf¥‘¶U,±íwwqOò0øP;ñ¡ÃDúÔÐ3¬à™òR(²Ü¼‚âRmKgMÓsÓò(rÇ4HIÙj¸¨NÝMd¿…\t~ø¢-§Žhf†ÐRƒ:ˆ‚ Š"!úµ,æÓ†Á§UtV^COVnµïaŸËÀ úÅ3Ä¢ ³¾ÇâÍ;Ã=xµ  .,«i;¢ë¦ñçD¼ùC™g„ä´\À¿5¾~¿²ÀÀ#ú½#…+CÚ({o?ž€í±–Fáݦ.ºÏ5ê$Rå\¢çÁ`ý²MÿÝ€F1öÐT I:Qå ±`î³õWŽgTÂËžÜC(P¦a€*ó#‰ “ž”˦âlS,Fµi%ÄÇ3ÌêZACz2Lé !C,:_ÒyéÅAÈbp„©ûdPÊSâƒC}Ü€ Š­Z³Zkb‹ãâ£eRŸƒ¾§Îtv_ª#S²FV…twz«D­Èí®ý a}awDy|Mue‰îʪ‹ð¨Ùïlî; d„L‘q~~*(’UŠDµÒ%اE§ÐL´è^gOûé}ÞռɯìKüø¡ü 1Š×ÏdS+U¤D[þ¦Çt(ìœ9äø§†"È©WŽ?Ž×óÂá ¥ý㵬¤Ì”0Ë'!&§Éõ&¦ƒ7$¯¤¼ZýÉ :øê7;°7(€Ð@¹ÎitØR*UJ,–~búÇn"EW\£S†ñRÐÂèhG«9&󞞈'<µ@#ŽôT–ð«i4ù7ÙþN¯ü‚%)¢"üwK·†©´åzQGU ¯iêhê‹ÐêV°·(ž°Ç å¸á¦ª¬jÄ(ZoÅ&«2¢ÈÓfI%‡¡êS™ÁC´ô¿£¢ã…j:/”ù‰Â[ƒL 2T¹@ ÉÊP3Â5ZÇŸuÇÒ!°†»ã)ì”òƒô0å¡•È~(Ф\ Ð>¶J •/\žà1X2w ‡Mÿ6‰Ñè£ˆÒæ¤g¥¥mTòa >ŒôÆsZZÁWÒ•l²zPÑ¿@žœ@*TGWëWrŒßc±~+ú–E^x&²Æv$wY`ì‰ÝÑ l…ìÑô>š‹vqø~ÈNŦߡ|¤DüÝ'ÏÑÛóp:.Æ“,§¿Ì*]5¨Ÿàö—[èôc1’"’à–HШ_n½x6ý~›Ç멆?xüÒpç¥5¼l %ªdQípþ{"Aóyx–à†¨‡=µÈåô×Z¤ÖŠ.\Cö×u{<¨ yxåêÍú”ö=Íü¡ŽãMÔ‚ü*eòt$1 ‰eyÙU þ[½÷ìKà‚«ý‹IÀ³úpÍRçVß‚d>q_œ”¨ïÆÖð¼ô]ûwùÁVfõg4~~êFmê¹ Mܶºí0œ â*eÉ• …òœò‚湌 /ª+ ³¼ž¯Ô5hyÓ"ã`w|(+ –ES;îûlžúP{_U’ŸsÍGËvZ<½£µÑ3tzÑ®ÇßkÅÂ"ô˜}^}óÜdža£»x ‡OþL«‡0ÕÁÝ6BC‚ƒIõ!|ˆ·®†ÅvÄ£t_Wä`¾,¾¯Íü$¤ÉT|úièØ²ã)§T¹i‡µ©=òæà¦¤Â°ú̬ͥ"–p©ª¡H›•ŸÑ`n£‰€gØì\‡ßàMP ñ7¦Mx&B"2¾v []\[ÓTQWÅa;‘¡¾œŸF†ºö÷èx‚¾úàÀËUGž}ˆF’±è ܪ^ÔÛ‡®÷‰‘·0ÝVìÖ—™OÏ\ú-¬Âó=r8’¢å/£r£ O!‡ý©\ ÓŽ‹Eî$£‹YOÝQî~ЋoõnMþ,®5åtBIÚñÈ&ØÄ,ß²r¡›cáaWnãIùuU‹Ê0ɯ"ŸÛPäËÉPårYyÚƒy¥m^—¾&n6òöS4âBäÑÐÞ÷¨[¡wac ZB¡On‹õ“õ‹ØÁg’8aT%)AÖùmÈš¸]ä)5ŠŒDˆdut$Xp~RI³úG²‰‚Ÿ y?ÚJð‚Ž†Zu~YVžZ•@nïW‚­ QWN°ykÈ Ñßë ~Ïbó™¶³6¼Ûì9aâ+¥%yͤÄmÿd„&4žŠ˜wÐÄßB“~àúÂÍ¡h¦t!2%%öû»P…s¬7ê&xùŸÜ^û;ÝCá¯þ°TšèÏüqU5dV½çŸ¶Õ…à¹a¯wÂM—ªõÿ¯›ëÿeËE5ØE‹–“î¶×ˆÑV9{1ú·46*,´2ª±´07;‡ËÌÌ€ `Ô¾.lƒû.^®P)AΤg§gç|hÎÝB{E…¨XŒjÐF¶»ÄïÒ ="äß_F¢|c4»ÖUÒ­jŽ‚=LPd8ÁÇtIˆã•Ÿ;íP´/Ó ‰Ñý[QçÊ#Ûïfô9 wÓoû ì¾k_å a¥ÔwaÈz™#` ¦çÚµ­<´ìZÄIÈ{NêúÚn¨¿‡>†ì¬_°{`mE,%‡¢Iwà‹²såW>n2äľÈÊyÅÎD4ÖÀ‡°,É)X놣èy¶²R˜ÂáÞA?#)*›Cû*evÃJ?ü_¡?ŪG/tÓha ;8ˇ«Dôä¬AüBèE=ÚKv¸‰Â§ìá„V1LdtýnI–2;lòd~SÄE8ÀNMl^j&920)¶—Ç=DýÒŠÈÂ[TÀ5t¯é1Ä×¼ørï Ws}À9Ä-ÊÏ;Ü\¼öhÜçÙÊ)´¼¾à@ClYx\X²÷ü«†Ðbôü)Ñ™Ñ<ÇÙ=<$l¨ƒë…)šoïtÖˆ:ï ù1±Û,ÊAc;zÛÚ’‚+¹DØU[W[^ª;éó± ‰»¦˜Å¡¸;ÞC¢ÇOÑÈlö7ïY. ‘ñh,¾Ê®‡à3ÉÚä:Y7|ÊÜj{þð´Î7 ”+ó…íàÛÀ-Ö'|‡_¼×PG×ëÇ’§CÇ:Åècô¶§þócðWæþ‚ó–ï/±›PÐÀîÏP}ê:Ýmû‡`ÇL~áð7$~|çç¿Ù]r‚Ó²ûó½ê ›é¿Úyåúå­öNî®÷p«·°hÌâºøcAàd¶léÖæÛ]¼ûåÙKýdLò´h*¡Ü 9ˆ±~,[VLü/›©ˆ/OHKM"ÔÆ3³Ó²ÓsÒÍ ùM'p:Tn˜÷#çY:_+þ…²ñ±1àÅØÜu|rå¼îÄÇ\mÔÅÍ÷à\<«¾ÇDI”Ë}]ÁÜ:=»÷8wòAëíÁû†í1PE^d\‘/!rH“§ð1¾¡ná»ý6ùÈÓãµSÑ»q]÷ÏáS BŒ­Ó*—wv毩]Í©S3 V© 9TÉœ½ÌF÷%_…#ÌíöÖ¶ÓY61km­¢#¸ÝËØŽ9ŸX\^é¸Ñ)UJöì‡겺êò™'Ïæå3&ÑZÁ¾…äi%سֽÖ?š{mäñ(M¾±q™ñŠú_ñ¢E endstream endobj 2620 0 obj <>stream xœ…VyTSgäå)(J|îó^Æ©K«¢ÒjÅq,Èb-:h]Á1!+›È¢Â â‚hI"° wGce\ƒõŒQÑqNig¬´µ.#3cç{Ï?&1 xÚ9='ç$_Þ=÷»÷·ÜûxßàñxÂȸ„„ys½?§q“xÜd?îWþÛ±‘³rœý!ß2yxj0:0©‚ÐêQ„?§Ò–Dª2j¹,M#ž‘ò¦x^XØ»³Ä¡s熉#”Rµ$âˆåí€à…ÄE^ÏâæWí÷ƒ1?€oð«$CÈíÂa'CíÊÙFr6p¡.W‚+ø‰%¸Ç‰î¡Eܺ jR˜¥d®ÊF0³§qWòà ½Mš¡¥U ¹l2Š&E§ŸÝ9òY§Yµ‚ÁúTá˸&oÜì¡qydߪ“‹ѽ÷!In0Pž»K]èž‹wÉìnN†4òÌÇüx4=š…üߣÇ(˜Á<ŸŽˆ»ûðÛë×oÝþýõÚ$£BΊž4—™¥¯5üÂñÿ&‡€†f»QÌ×ãD§‘-§¿¿ò`LÙuz;P6Km“eˉ…«>0~˜ÀŠîµ [K÷ÉìGæ©A©h€Z¶w-ôÚKk*õ;Õ»2*—퇣Tc[룯ÌʬŒ)§"§¨Ã`µ°na-Ø•ÙÛóKʘdk2€Â¿Õ„Éæ<Ïù.Ÿ=tQðñÄM›Ò箋¯þ«šÙvp{uPi Ó³o sAÝRUkêØÏ8ee\¡m_eE}ðoL[7ïê'î†ë_ž·ÿP·?Rs$’5vOýÙðÂ/Éz°É½)™°w|’°C ûï gÞußé9Ù{¬ié度•Œ·ÿ<ß­$š‚¬Ü eP>ÊÔaêŒYY^9˜ví…”ÝxP™cÌ’´§8ŸFã«+™W3¨Û²{ý¹MˆG;2 4wk™¾„)-0¬‹jAäÍoÏ:M²…"Ö”VŸßTƒµ®¹û7„ÃWàÉoãÀï§¢`Ķ?­dÕéFÇ=ƒ-ýH[-¦PGµkÁÀà‡dzqq:»^hm»×±L#ªâëØ©Ó—ï€œ rÔ3\iÛ ¨¡. _yIŠm ßxÉÖ§lý÷-ƒücL7Yk÷h$ òÙ$n7ùöp()r6§o¬Ý0 ófÎÂ"<ê›·~ðvN49š)´™%ŒOZ¸$jÅ­ÞÇ7¯ßüÜŸÐÔä«hŒ‹wÁ<}-Fñ´µ:ùÁS<ÌœŽƒðȾiˆFãÏ|c÷âh,Þa(aµ«‹TáçrïS¦«´¹ûÊ…›pºÔUox‰WQÄ¥ WÑú«ÁÍ— ÞEtôòG·Ç‰þSˆòQ(9ÓyéÔ©ó:±îã•ÉÉŸ°óÒèeG4N ¾ë¾ÝÛRÔœã`­û*˜vg*ÙTÝ¡ý͇ ­‰…kÊåëÙÜê´úõ@ÍŽ _°¡.½ÆÀŠ0Q˜[¤UN„4³ºjKD,ƒBjþóåh ó¼ëïÆs«š˜‚=Û< ¢Éb(€âŠ<(…-æBs¹* ²Â\¹Bø==ü䩃UmmÖ^[Ý@õ"ÌOß0ý•zž#é³MQ7‘öm‚)^«*^; p1@’ç|vpL!E}\ß¡µ©TZ­JeÓ:6›ƒHŽ\<äwÑ;?öÒ( ‡‡,’Atxž%@Ï}ŽŽ4šóEþš!‹(dÐ_kzÈ/îxÚœ#éFÇðÁô ß2äò=%<{à÷çþæB‡lϱ/ò1=äüåÿŽºN;/¢ïÇ»ÃyÜTº¬EF 6û€²Â§,îÊtýóí¯ÈX´L(rö?sü9'–ÁùBÃÀ;ÈÝׂ~1d›Ðˆ Un,HU1yíªƒé@‰z6ƒ2?[K,¬æ"«Ð{Õ$6»˜á|£*p˜+0Ð8‚ þ¹Y endstream endobj 2621 0 obj <>stream xœu”[pUÇw›´ÙB©Êl6Á(ê”V±Ø±2¥TG Å‰aÛ„¦MIÓ†¤m²Í¦ÍåË&Ùl®¥!)¹T©ñ´訣:úæmÆë‹ã8:ãÛÙpŠã¡žg÷ì¹ìwæÿûÎÿÛ¥)uEÓ´¦ãà‘£-Íw‡Û”M´²¹JÙ¢½ÝQöUC êÔW6×4¬Gï=€Š÷!ù~Š¡iÛˆ?šûf‡mÈe·ô™†FÓCKkëîÇ 77·öpv‹É8h8ht˜¹£ƒL¬†#6“…s¸ mf‡chÏÎN§³É80Üd³÷=³ã1ƒÓâ0^â†9û(wÒ°Ï6è02p† bS¥ë° 88»á í$g4Úí6ç*ƒÉb7Y¹!ëȰq˜¼· ÷]sŸ3’wzÄhµrÃ늢־Ð{ª¯ŠÚʨ´(ª…ê¦z¨Ôeê :L¡E:JÕ‘¢Ô”Lo£Ñ¿V½Vå¯úCeUÓj«ú{%X_î—Ùb.*Içr¥K×ÐzÉ…GcÛnÌMCÂL0Hœ]š»˜f?Dõ?"÷t•ù°Õ£ÚîíÏv`~eJ?æÁæry¦¿Ytñ¨ µ¢¼é}̰õJG‹JïÅR ‘õ+ZTîh¡tñ D'â‘X $&-¿½ùÕ½aŸÑÀIè72r¡‘ðt8€)˜” þ2°Ô—>å ZƒiÀýKÜ/ùÀ¤eH§H`Dß;¶àù ˜Ô«›ÂlÿÂhq0e“<¿x>eêÑ‚tûáY[R¡]åÚ<äNp¹ØžÐ¸ÀU(@>Ý\T,Å º×jÁtºÓþ ç!ùçïËßFXDÐoÀBéÍk—¯‹s‘Jj° õ|ìø"¿LW˜ú;°püºéê¾”üj‚úÏËýÙW£¾J†½Gv/ôG/O^Z}=ð"S_Î'‹ÊAB¾]qªºªÅÝè¸7ÐMNúx¿JózÔ{0i< _ǧ|)Y3'— ›ÄpbZ]FN¦Eˆãú°ˆw¡–£ NÔÙ—f²q)"’ĤWxž%êÈ]¢Rª¼¹µ³y(\àÖ¯\¯q»ÀéÌì¾þöøÝ On¯Q•¿!A/‡^<'ö ]¤¤¼g#b>Æžÿ볟QõÍL,*BSÑPäµY¼î‡Ú‚™pÔ Œào(ÙõÎsúÂÀeó»ý̱WE%¯'(OÍ£åy´4Or÷InU¹Eµ¨ ?‚vàN|7âGñÜ…Á;HZ‡P#z`ïlÌjS¨ mDkQ³Ìà% Ù¬E-Òâº~šÁË5vüµï”ñƒ¨vµ3h¹}½q·ã\‹›² !ÕñVQyˆXqú– ]RÚµ‘\8 càñD=ŒG“Ã;ñ†ß}ñèÝ„gbb,HMëÑÃû1ûܘ `\7žõä"œ›g‘ú‡qÜV=šŸ–33‰sì8!ÜДœC Ð岹܌/î•ô‡¯„ ímÄ~ÕpV–c0ÃÌx²þœ±³X½§š ÞRBMEåZ¡âÓ“è;mN’„T@K¬,¡lÃD"@ŠŒñ >Þ+O§§õʆ•§/,À”ŽOúÒw}ɲÊ5ÜSñyÆõ+‹5ã£÷|þÔnå7m:.Ç!³Z3Ó¾@(À®ÜÂ9·ôƒ ŸäÏM)·p¶!ë!J>Ûd2 HnY¿R@ájEZqþØð…rûù¥¤5¥5¥µìõÆ^o]mél]ië(ê_ˆæþ5 endstream endobj 2622 0 obj <>stream xœµyxSW¶õº—怕l Wô¡†¡„Þ{1î ÷&Üm¹È*[’»Ü- ËÙØÛSL‡P&„Ðk ˜„„„„œkŽgÞ$Û$ó^f2o¾÷ãïӇʹ÷ì½×^{­sT×.”@ Í_±vâËÿ†óýü€.üûBw¬{#oM²žBèÙuÏ€±[íx×>¨þ´±7%Ã’æG…îðö 8Ò}ÔÀ‰3fL;pÒ„ 3Î ð Ýáî8p…k¸g€k8yã?p]ûÏð¨#gù„‡Ïüàƒˆˆˆñ®aãƒB½?5v`ÄŽpŸk=Ãp¥k€ç@ëæÆ[_çKÃ=C®òð ¤(jóÜÀÍó‚¶ÌÞº äÓÐ…a‹ÂK—ì\áº,Òmy”ûŠh•ž«¼V{û¬Ý±Îw½ßÿ›ÆôÛkû8û˜ñL˜8iò”©ƒ?œ6}Fï™ wš=Âqä¨ÑÛzØRÔ`j5ƒB­¦fRC©5ÔGÔ0j-5œZG ÖS#© Ô(j#5šÚD¡6Só¨±Ôj>5ŽÚJ- ÆSÛ¨O©¨…Ôj5‘ZL-¡&SK©)Ô2j*µœúZAM£VRÓ©žTÕ‹ ¤>¦l)9D½Cõ¦úPv”˜z—b©÷¨ª/eO9Pý¨ ª?5€QqMÅSÅP;¨nTwª5KÐ]ЃÚBjIu¥4‚~‚ç]|º\nÞ캣ë)›16µ¢!¢ZD71›˜ânóº•uûµ{@÷Ë=T=Gö|ÐË`;Ê6é‡wd½û÷ïÓ¥¶o·Ì®I<øÝ^ïf±kØê÷<Þ;×÷£¾÷í·Úç:¼ãp«Ÿ¾ß£þÐÿË!Ò˜<ðóû}Þ_úþY®—*!I8iàáAËÕž9øó!=‡Ìbê;4{˜Ç°Ôa燳à ÃߌX?âõHñÈÛ£nòJÛÖ$0£-f~‰APÝ:WÈn]Φæ©2c ”òÔ8ìÞö­}Ôf÷Ø jÆŸÞ¥Ù¯­3´¨ªÕG{1Ó[BMå:MŽF+9„úÚ Çã4 ­ë ˜ó§ët_À^؇ÔM*Ë’(zÄeÊjläsXdƒoÛ`©È–o3oÓ$5Ú¡.W畾⃨ zÁâRÚI‹É…j5Ç´PNî½§ýÞ‹epP‚–Ó?_=uñ‚~ÃZÇýÓßn‚PPïfÐ:Ù¿.®È×°æ£KÐ F|ë’ÙøÓâƒ_d¥l•X³Ò*0 ÊZ× ùáü{,zm7Vï©~¢q0ÓjGU(¸Ã6pב«ûÓ j£Â!Q¥J‘ažmY´A¥KÍ‚4È5í×0fÚG9<ÁVh¼´–U%ôI(I) B˱ÙOÇ©qÛ‡ƒI™¦I[õpê”ÖÝo×DW@1dëÒ2õh0ò²G“p²V¡S€Ò¤Ñ.–ÚÔꮑD7½Mt$ zgúN3cÛº™Ôø²í3Û!ÉtæÅ¼—}Å< å»°HM×h3›9Ô[ô¢öÃ˶NÃBÉ7Iì‹’+á:óøƒûø=®­‹™è–Væ-i+£Å¿x«dsaþürxúä¯gÜÀÂ\É |‡Å}DŽªÌ *G«éšÆ/^°iÆP‰-¯”™ø FAå´û÷C¾,zwÄkÜ ÷¸fƒº¡^?~ÄÁެ 8— =ç¡öÁ‰²‡šKàì—–»”»À’JoØ u–:9næmÅÐÃGBþWþ![þlZ5¼û«ÜÕÁ$ïk´!kµ ##dòx…\‚gàR¼NÉ-¤;”šÒrfÚ›Ê\a»ÆÕZ¨búsÈ’† /ü­=ÞDwÄ/ªÓ]%{ÛW;ÊN¬ÌÙ'AhÛV/©¹uœÙîÔ+Þ¯6ÔÔWüüú–ÅîèC<­DÓ¾GÄä@f¼ ä‰j.8 €Y‰7ïAÇ$âQ Ú´ç<<™€‡8m(ó)]©%ÒE)S( !™Û2׫nóÑ1à ~ŽWá©x2v!énÁÍh¬‘wh 5Ù½¾‚ ô¿@Ÿð=ÙË4jÁùÕL¹³D|¯Í§³aöhZ´åPÇTµ¿o®Yt6Ó´á&0¨ÇÏß#‰Gÿ€»JÄ/fƒ«s„”Ñá…ÑUÇŽTæÚùÉØ÷útÚ\wOCc°$®4``ly{ø¿›WLü “?Ð:€ÍÔ“¯2™B9DpmëE2,µ1‰2‘Íî{h:¹ÙDQ›CN‘’¢Ó¡”ã]EEÈ`*JÆ’Èqx0xºÈ¶5­£ìÜ#^üRXÛ:‡õ/£;±Ú‰Ô."4 qh$ZÖâþh"ž#Áïþm k+¿·½^Š>ƒ+Òc ö¯Îž ³ #Wyo^»f8_Ö‘ÓѦƒÝž¨0Ô=¾÷y/ú×9äOKiÏ 6â•ñn>ê™Á£ñ{¸Ï‹áˆ!ø÷«ògñ ü¢‚¤añq~ÁŽÀÌ[ùѨÇ®ßmš²‘pÒ,ÒÅç̨f x‚¶šÐ“Î$Dn³q^5!=IQ(>BRäÐц§ô ½ß‡*M•ùæ&¢Q{ë³"4*Öb c!©MÛ¹Î~·åûwÒòë˯õßB¡¯XÔ…Æ ެl)>øIïÓ4k+¡š¡ÁÚ;é¹*}'tðäf¦ÔZN©ŽH€&¨4ÖXlÊ­®ö¯ráÄ·æ÷â8ÒÈI˜Íft¨=Ìõ&4„@æNë,¶íÐ[*}Û„µºÛ¤ᛎ&ô¥ÇB^­©Ñßåt<-Ñw 7etÜS„Fƒi]!æHÀ¶<'3ò–ØÕ˜B£(Søá¾â'ÈmdŠû10ŸÙìã>{š÷é¯"9ež:-˜xH‰’`{:RôéMI §Õ‚¶¸ä€ëAu)Á.}è/_Ø+ñ­öÈrÍ"óe~qÞ™~µåP—ô‰þZN“”M(‡ÉƒôÉÖ†NUAB<§T$&)”ž•nKªgë¹xOaP…T"~RR)ÿ2ŽäÇ$5'P¨™få—ŸøÔöÇòO/°yÒw=0ÙU Aóè}ié—y©×«È´ú¼­Óªš~ª“yI–ÑâfÜ‹“‚–â­µèaœ-5ç~ýf"ñ/ ǯzÉ‘à€Wâñ$ìŠ]Ñ<­•ˆc¯ÁÝò=gI¯ØËLh„™Ñtƒàç+¨Aé\~(‹†˜ñ´kTMãq ЧÿäW¿QÁÏu25÷ ¨µâ'ŒþØ ØÔ‚ þìW„jeFii·ª%’ï‡H£¡z3ýiræÒÑxÄÛvÁ é)ÛÍ›¦hnáÐWßÜå$ Mφ h,'Ž<*«>clÑß:ømÀ!’Zâ×éïpå–Èf‘¸<`VGdåô]GdJÙ,.IJç;dÇûàNÇžCèYJëžËd¥|?³ „òSÐ#6{WÑþË…® T‡Cl×F·OÊzµ>"!I¥PȆá,{ÜUËópµåû ˜€+@½NÁà® °ÎJú¤ÉóüÑPŒì3â´©yiÙi99RãÔ•ßi4¢®hÔ#!:‰F²lY·Q¾Îxs-¹»Ëë‚ AÒqÎs¯®zòÓµ/nè%š,r»= ¿šṅ äŽÎ*Oµ#™Î“ÁÓxý=Äûzôj«Ø¢bÿ =a‹šój-aIIXR'md{Xujcy/Ujüœm?U+rÕP± äêͪ0€ÀΨê¡P•Ÿ.×dFNÅ©öc‘!5—l,­sE{°Qãݾâ(ä*sýþÕ>=N—lɃ6#=ÿGTgÿ®O“Y>rÈ]{n”2c´ùËŸN|vÈh×tkÛ34íÊ5"Ž£G7Ù4÷ ×f`JÏçß“œ ]G¯ •Ë|Ó9äHÉ·Ï»Þcß–ÂmÀÌXè¸$À]^Yl(ÏM­Ù®‘TÔÑtä´Ç$‰-Þ|³òSåò€Ov„ngfæ‹Ð ¹Ée8ÔPÒ̤ éìzìüN[Ýjžlz€fdV,þ „üP~‹£¹YYÇݳ¨á¥€7¬…j8#’ &119_Æ-öèêÿACΧCÁ\š‘” D:Xd¯Å_ÔÂÞÙKo€i,#Û2ºÌ‚\^#D (ݽwrs]cA³!ªu)òFm|;,JUYñÄõÄ$ƧÊW̶Ÿýc’Ef8@AA¶ÁºB½D;ÁQÜ^ä/@£n^õfíÇáÛÖ¬Ví´È÷r­YSUФ*k×R]J€±ªæü—7GØgÉòbø’’bƒ-º}·æ”ÖHdÃ>õî΢´áUŒ•\¦‡‘WS§Œ‹%2®‹¾èÐqVBi{n¢5š¬üŠfF|$¼ iËõþbmÔXD˜y6¸8ÆD±VÈ"7J@£/ÜwêdV„º2Ïr7ÝZp/Õª@§þž¾À ¼ËÂê‰~ÓA1™96„‹Ý <×ÎÅ_Y2Ò³¡"Ù°8"ßܵë ~7½ò¿åjÌ"oårI¢¤þI¥ùb‘EV¹‹òRBG…üdÒ¶åŽi á-E£VÚ^³º0šØ¸Dµ*5a8VÛc!2*rTi¤ Ëë¡„k/PôïÙè0‰5ßnاÆÇùÊã¥ëƒ.ƒTbÖ"‹ÍiYF(dÊ# Ã#¤ñNMÞG/4ž>]ÆÙò«É«yVo²(½MÏâL»Ô ²hÚý¦ãÙÔÞµœ›RñLHqDe¹¡h÷çsö}Œû|€)Ü›ÿ‚ßýa$k¿jÔ3''”„Aå*.püÒ/`ÄüÆÉûÑT‰í›‘}5°’/»'DòÖQl’QI6ÇàÙoµŽ’Ç¡VS{„ØÂ8Ò©/‡Bs…„¯ÓÐHþ·.éñé¯zÐe¥é‘ºµ—½¦íª¨³«êuŸ[½Ê_ þ÷]Å—uv&ž- P§Dá ¶sö$`âß5 šLè3Rí~ü06[o!<&/¢8|(ö©D±güTRºÑ#áê¶^I2PAªC\&)z@û*¢F“p÷Θ!AuuNL+¨;tt,ßû$»„F#~›™GøŸqìOÖ¹”o°\cð(Ìbñ÷#‘ÙáàS5ƒJ»bWš€E%‹Øæ$u±¸£~çTò3*…(¶u›”«ÖD’}ì_%*ƒº@½K©QC$ÓVò'•(¢ÓS5ê49?¶í…}v‚F L>d–Hø#t4¿"õQoUù‚/lÕú´ƒú8KÚæÐí˜ (EóŒvÄ'']µ‚®+Jg3Ш‡¦=À¼ÊÁý=$8i'‹ªEF”þ°áé>惡¸„`®ß/£‰a°=ˆ„%9ÉÚÔ$•6Ê|q+þyžæˆUÑ~.àÎÌÿa=²EÝ>v»6îØæJncåXIøÒR4~i;Í@Úd(¾Â_xìø¡½õt’³¢G¨+Lݰ`Ë(Iûœµ-íZVˆºÜdÿÿ½MçUÑž zõû>·m —I}Q‹ÙŽ˜z¤F6s^}WÞWü…£×,Ê¥aäu9Ú*0óuUàa Ãfâ‘’—ñ싲Ûçá6ó=Ä#8ü—?Á?µéÔˆ¦Å+$jªvÇ^oð‡Å°Ü=½OÊws»è~eèãe”¢–ÈøD…ÂVH>÷<þ®}ÔÅ­5ëKˆZßmu˨×k»¯?½ÜWü}ʯdñ@K€—²å„ÈŒiªÖœÐ–:ªíLÓEú>‰øÇ4~/[Zä/  6†˜+M¥Õd"µHÍ­*íN•‡\DŸ_ÜHr ýÄÛ³ø]óŠpÆá‹ço£ŒxºS§‘ƒ\ßa/Ñv«KQ«R8ŸµUn“ˆN›“NWsܼã¢÷2ºÝýu‘ˆ¯ÁË%÷§HJÎ _ø5fÍŠû³–_–^¶ÓË’—±–¼Üʶh˜´SÒÔe©á¤ò¡‚)2EE„l:túÆg¿!sµu|ת°²ÀÀ°°ÀÀ²°ªª²²*"O½HÖg”¢¹õ‚:Êz‚²LÂÖñ­3Ø6$Š´ž+壩5h Xæ¨J ƒp†`bÄ æÜýEºŸàù{VL¸Óƒ!e:Œå§é  K€\ À7Oµ´‹KÒ$x}Yøúm£ÔÝРnPýÖ(¯è‹'o jZQ‘ÑŠHò»JÍYm)шUêªößy‹¦Pù«‰­…e ü‹ÚàK¾\™L8ºÍÍOáãÕiª b†wŸrkYÑá¢uk_sJ!×Ûø©=–´ÍÅSy™ZG”ŽîŸþþ¤¥æz!ǶV{]’.1H}2ÓòÐ >ÝÍlËhÿСýS‹:™^Š6 CoÓ äÇ¡h‹àÉ/ƒ!â$¸Õˆò¡$""ã8\ƒkè¸Hˆˆ U• òN‘”äs•Ìþûý¤Îr„‰–?³ÐÏQô€ÊÊŒw“à]ÿ¼ÆvI1jòÄÔ*ÄõÇÝ‘è‡G Ÿí®K 7pn*yÄ0¾åñ%»vî>»¾iîxÜc3pXôÊæonѤað†Ò¨eP©Ý#ÔMj´h?g {1¬ÑÝ'*8$¤(¸®07#+‡Ójm4uܲ •ÎŽ¹œìJÁ¤¤+ÒsïÜAôÛˆ‘ ³ÆëM¢}Á‹I´¶ þï´·ÜF|OjBë—ïFH’Œë†HþÝ(·™Å¾$5Ïoºž]I•\’"&B *+¶Hn™X×ðflƒõh¢É­I,~ßýÅßÇŽvGï‹lÑ#´êŒ@Š…¨ ­bÏàâ5YŒHxX€ü®äMR/enPW…ƒ?ãé=žó—¥cÓ¬oÌ®)&“}¿WéöLË¡ "Zx…W ,ÖØ¦Zò ¯^ Ñúãìÿœ$DîéJ߬3Nñ}…üÒVG6=0±–Ñ'eË≉JÿõïóRãÉ$T9Ȳ“ôùi99:ËB©±ÕÞ(Ø÷e=ò.è wSïú\ßþÝŒBWXóBÜÆû-L Á'içìŸy-✀›¥¾­¾’~î0Ø_c=`µ)ê;Ù9xgá"\Î:Q‚zÜÈ6³q9ªddÎ:˜Ë Q/’-‹»6ÀÉòhBIJ^o>` àëBÔÜú.[ÚpnŲÉàŒ?m —j)gÚ Hk&Läü,Bø1Ñ× ð¸CûÑ•úz‹Ü…[è—_~4Ûý9ÓnAÄ·Ø×¯ÐÄ;/hâ]l‹mæ~0iÝQÐÕæ6–G•û$«@­äv]:Q˜oöÏœñÑ–YëWHðzì+³xÂ0ñ/<-ªDóˆ!L HqNŒMI^BfžeÿÒÊ«Ä,Ý…ºÿø™É® uýð'ôѳ9¯úŠ1…ö£_Øûg¾ º?ùÔ˜ásVÍñ5FV™ ƪ£ŽË™\Ϋ¦ñ¤tb‚jMˆ³$`Ûe¨:Y¦JduŠq›L– EÜÑýúE£ð€…Î.Ÿõ‘Ô¦š°—© 6†ùÅ9Ox¾ í7ßüÄ‘[Ãýå·‡”¶'õ3ó®$ÃÍ·H†Ñ vŠEOÎåvZ´C ÑŒMp¼C;t¸•Ç/Í#øm$÷1IJËÉ9>×¶ƒp42‘QŠ’ïfc uù-7¢¾ìŽþ°ÍŒ"ŸkÁo@ÛYÔcÆKLms‰ññæÐ&Ú ¯I©&ë/¾ÉËP¦§¨U L•D$mX î°=Ó±4Y§"™f!9F‚ÐQœŸ©Õe¤qúÂú÷ LÛ³¢ ½´°…¿!C{U˜k˜‡WÈv2IÖ>«#í+nCöè[F-ß»îXY“|‡‘‹u'ÿ²Xcáîì}çœOÇïâþ˜Å!ñl@Ì‚çHøí_É:ñ¤ï°·-¯ÍÛÔß`—CÀ9yAT3Ü…bævõ˧…‡`…™+ö‚ÍDûoƒ-ÑÞ«¶Íjq)é–à”éÛgB>˜Íf[·K¬a[På)J˜P‘/v#jTW˜}!/73ã6ä‘zº‹d1³°@ê;÷÷ÅF ètèÌáŽÑpRw2ëDÚ®üG>kïô—Ó¨ˆÄ|4ü*?~Ôòdw¿Ý¾[±Š˜ó—š®^»¸iþZm«|8c,ûeý‘¸Ì<›tzˆ™sÇGiš9}B}¨‰(þWk§®ÙoÐO‹A6ß>øµNv㉋,ÉYÖÀŒpeÑ;³+#›`¥ÃÜO6͘:ÿ³gª/~ÕÜžþºgwñC-é_ú y<µÀVˆ®²~4޲}Môíž`î@VU‘9¬@ä±ø„ÛWˆ%uò#ÙGFL>iýÖ('ÎÍ)Ü>apŸ¯G¡®œø×óÐØ´ë ƒ{ÌÆÀvð¿UGÁ—ͥõG÷æÕ±^³£È)×/m9lg¦ï=™ët_¢ó绬ƒuÌÞö|û¬‡ul£O,+í½Ž$­ðã¯?l²DÁÏ^67%ù74y1Uªë: ]  —©Ñk³2-Šta#‘ÎøØ(8õZkB3-¯ÂÖ¹d:edkuaN‰©))rnË¢ÅÁóàSXaZßY´³€ðÿœÓp7ÜëË™7®~‚ºæCóÎÉ%¯£©upŽ™3Ò4jû¶ ›˜©–¡–“”“£MÓgq&~<±$ÍD]Ê+=~lî`Lmš¿I¯jñ‡_â.b½úñ‚ÿvO ^øL´Z€ÜÐJ!ߣµ'›™¥‡\¦8ª8*V&“+8Ü+в±œM™ùþfTh4=Ø{õ7¡s•ÂÖ娫œµÌ× 6À¦c~{oøüÐ}—KkŸXŒ—jƒZN˴ΓùC¦ÈP’µR²~´Ó"—ñÄÆ¼ïŒèç>¿IúáP̃+æ®äš1¿v7a´Óö`Øà0åþò¾:»¿¦ž»²êlÌa’¡ §µ˜6OÔÈßUž3󰡺ö Q-™9%,„sùˆ5:ì_QT·©ÞkÙÚ)AÀLqâÞžº-VƬ/½×" Î D:‹ê‡GFEô°âbKÄÈ¡oœj'lî²R·í;Q‡´-ðßâl‡Ž•´ýUÛ)z ß²ò£vBæ‘ÛHÈ– s¯¡–ƒk”¢ž×-/Ž7ñëØòè D¹œS«,’˜QA~Zuæ—>“äZOÇd¦¦¥Ê¦ÏÁÝW•9í¯-®(·pü²Ì–·ïPc?œ¢‡8…µH±è"ÜÙù¡5€Æš·ÍCï >yQèä‰añjn3î’€…Ä/ÍÖã^'±Í9üΣ¥9Àd¤é2%¿]Åk7! ·e¨×zd³ ½3õR"0r…BND^I”äû‘§ñdÀž€çxá¸7¶‹oOšËC]r‘ZUç—¥;ùùøiã9òwÝ`w‰·Á›wõÿÊçõìQïëÒ•éJ2 ˜B}Až^‘%Áƒ.#Éå’ì´LÈuÈ“Ĥ¨ 2„ÃÂèc›‚øœøYB|bæ´R÷~§Wbd±ñ²´ä¢d ´K–D&)R ÁA!5øc,þØ&6/1¯PŸ›—8•‘ûïN4xÖ± £ßŒ}Ñ€ßÿ{,‘ÛwÛýCºQ@܃×åç…üzË£{ÚLL#zr¸ùàæÖùìY·ÚÙS‘ÊÖ¯Kf,f6aêßõÈëOωï{Í"úÅý¦KG*#AééhU„åXD® ­HRÆC$0˜¦;œ¼Õ÷=«éðAÖÿùáý<”[ɰMá ~Hý»ÞoòZ÷Ø(.¼ÖÕ°˜q¸1‚ÿv¼ÿ ›µ¤Ãe½|¼ïlYmjPç¡J ƒæÆ§2¶R#?¿ê3Œ"ì–K›»_éÁuï:Íг›1»gÏ+†ž½(êÿgòÛ endstream endobj 2623 0 obj <>stream xœW{XSW¶?Î!Tj&’\œœ£Ô¶:ÖÑÚV­ˆ â£j+Q !äýáv äÅ¢Bµ¨¨‚â0V¥õUõ¶£½×v¼öz{ë\ŸÝÇo;÷»; ãÜï›ï»ó_röÚk¯ÇoýÖZ<ÂÇ‹àñx¿‰“e%kT«äÙ±sÖHÓ5«“3eÎïalâÅþÖ»ŽXøâm’•øÀßøûtLùMΤ_á7‘½àVTÇÛÏ;ƃ!‰k6„Κ5;R®ÈWÊÒ3ÔÌÜE‹1ÉùÌÈ %UÉÒ³™øG®4S®È’f«ßdÖJ¥Œ:CʤÉ2¥LäêøM+âb˜˜¸D&Fš-U&e2ñlY +K‘f«¤¡Lš\Édºÿ0)òìT™Z&ÏV½ÉD¨˜$F¥¦Èð%i^ŠTá<˜Í(¤Ê,™J…32“®LÊVKSµœ‘e§djRÏãïiòl5£PÊñy>Áªâå*µ*E)S¨üb|T´ÛFuF’Úù®J†y–L•§hœÞŒ©“dÙ*F-ÍS;ßI–2©2•"3)¿‹U)”2— •,;ÝóúlF)MOR¦fJU.½Î¨xüc8^')™ù®»r—ÔØû2µJš™ö¦;³ N­œ‰eœÉÍLR2Îçh¤¯z²õÏå ˆÙK告¨eÊhUŒZ³"7)/9?¥ Uš–ž![»#13köœ·‡Ä4b51ˆ'Þ ˆ`b±–˜I¬#BˆDb=Fl –›ˆHâ#"ŠØL,#¢‰b9±‚ø˜OÄ ˆUD1ž˜@S?b&FáChx><ï–—Úë‰w²÷s©Ï’ǨíÔϾ}wù>áë^¾VùÚ¯ãJÆ]ñûÀï€°Ïø…ãµ¶M¸=1v¢>`AÀÆ€ü€}÷_ßÌþ2ý8àL<îà±0^Øf’K¨¥ÚÂ2sU ߦìM¶Ö¦JcFÍg;Iô çÔŸB½/5d¦óSQ©ëÓ,ª³yäÂ{Ôp& ›BTJÁàq²•r?xÏ¡pLbk ®B+ûŽ0Ü£³—ŠB÷È­£Úiè1ácê44‘‚#·o÷´_ ::*í;[‹¬;A.(5zÝD2Ž}<12|Õl°LÀ&þfñ÷âRòVFJÜæ: Ûs _Þ(xÅa"Ç£sÔã‡÷œÚþ‡åÝ´àÁwGŽ ^ø—k ƒ $¨Ñ#ušªARá1(%áBê0è®°ç·6ªÁN~tøºÙÁ#”„º…‚…$ ¥Îƒº}yÝírÊŒ}×iG¡ƒå9xлŸÔïͱ‘Bôš‚&#zú·ƒá(„ôó%ÃÈ‹Ö& º?QÈ{ò›{îGHBïçpíÖdéÛnŸ½°;WÙc´u]+ÀrðaNâæÄ-Û¢Kâ ŠjŠôE üz Ž»v£çÔ×’½]f+hä[*MåÕúŠ IÌÊ59Ñ€?#üÛÇ-umõ­tëõnè}B/ _äïQY*ºÒ@MµTdÒ6Ô˜@3°Ùê;º ÈÐ`hu|ÁÛV©¼D«Í¯vú‰âð-ü³ ƒØÂ°C`¶'m§)äõ²ƒLä$2cÀÚ†™O‡Q§ ñÀŠYß1d Ž‡bZ z´ì2"–¬UD/—6„!áçÖ-ž:=Q VyçÙÓ‡¤]Ùf5êƒoH:„\¬(((ðuèÓ§5})2vÖu;ò—ÞF< Rp÷R#|ÌjH8: }šÑµ£9$2}±¾¸p©H=ñBgþ(ºîÚŸá̪`·Så×–’fµÅjí¨—ìƒ#FeØ¢3DIû1‰‚)˜ŽS¹¡¯È÷@š|Á^0®@^ÙõT/œcoõNÚb—N%ò#Ñ•±úËtLœ‚÷qàŸÊ/)/vݽé*¾YTžóƒ¥ª•†WÔÒTÑPD£ê0‡0``ßž Ý ½¼SeÒÕÕš¿¥¹¹É¢m*j¡w¶˜sÀ°^|ü?Cà 'WFB`ÑY8!XÏÅËXFrYâªûF]C$NŸ ú•vÖ·O†‹bͬ9(ˆ…^{…µ5µ: ç»T[¬FI}#)8˜Ö;˜)N||ýnWñ¾mtήŒÆÕæ,ì´æZ ì ìZßw½G´¥›Î®Õ5™¢†Š†j7ü-WÝè¯ç ¦8sPR^–[-ÜŸÔš„xóã#4ͪŽº«`¯îFÅPe·nOqGiK.(à'¼¿eÖâ„ýGë &ƒYb¨õ¸ˆ<‰t8ŒÅ¬m‡~®2'p=c/@©°…²ùÍ ¤©(lUNZÅ F~‘çuÖuítÛp7®þCè Ä}` ¬« UÛ%¯­¬I™°3 #Îtþ$ª³ƒÓHkŠIÁðá´+‚ÐT€ÄˆÌDÁ…¢*^r1«ü{áZGï哟:à$;.ê÷†û0î0¸µr€ïi¸‡úoRkÐn}ym(¯9)½}êfë®AÉgÍVÐÄ·éÌU5µUå’mê%k?AúiŸÑ`6˜é¯ Äõ<Æý®÷•NØO‚Á¸é(Ø•“oyºŠŒºÃú“È—Êõ<¼µà>½";&h[VO¿ëLôE8D¾BTX¬¦¬¶ ”‰W÷K/_¹²wè²ÄÃ2‘l§2£väÓh˜ÊãäĉZÄp> sDé±RåÁŸ k±…ɈcÅU ÉqÕæQïÁ{äåQ¬b–GÆAÝ{éOŽÆ!ÊEŽIúáSŒœ"ö÷“öhN¤pô\}Ò*>»Öñ®tN^Qº¤´ª'¯5ë,õõCƒdx·ÃÒ ø—úÉ•g.ŠZÛ–Õ°ãKÂD„ÑÃÊ©ÿzíÒ§_ cØÛ„‹bר–~\ƧWÿrú TjÑc>²~P.„Á¹¤‰ã¥—ǃA -B“§ÂÉäqŽ€·GÀLÁÉh.R¢hR˾؃ ÆÃP8…’+9"D95¢Ç®±Çq€6ÂnöîO8OE%¦êvgò~ÙÉåÜŸ©Î{¤` úÀÉŒA¸)‰ N}yýˆØQÒpÍáÝó«"_D0È÷ݸóßCßç€ínˆÉ0ŽõÇŒMì FÁ$šÄ±°Øƒ‹•ëÍvÍ®àB/ti„¿±e…èîx—<ÉðõTT›‹ ¬·#Çx×|0Èú 3Žlì\ø( ‰P ¹µìÙ7ÃöÃgéƒö]v\l­UW¥«ÖUHâ·,Í üù«¾ú~Ð~ú`?ÝúÒþk +ÝUФíÎU˜>ð(`ÆôauÓf2£“>Þ¡±¼‰'óçœMè •;k”ä]LÜ4DÂêå8ô "dÇQ»~Á=3á+M­t-‰z(Œ䫉{Œ=x1Ε·ž¼mBe²ë›†c”Òx²¡i!7#~{¥÷ú×´ /o‰éÆV!½ŽBÁð±ð‡³ñ iÁgˆ?•AüßÇŸýúþúR#œ¶Ôü§VØçÍž…›… Ýõ] …ÿ×÷¯! Á±œ€$ÈûÎÈ¿8ÜÑsZÒÓf³áxZ+ÍÚªj}•V²yÇšXÀ‹¹pß,muüÇgþO×¼«U¸¸Fƒg`6xŠó8E@5Ÿ·}qª÷2=5Ç+¿¥©±Å\eÒÖÑ;L+Ì©`X²¾hiIœèwäÞsuüPθ{Í 6Só2êï¶g8®ß±øaæ•-=‘1èu€&‡^þeølÏ•s´ ‹cV¬‹Á1æs0ìKý 8ÚŽ~~ä@ç~«ƒ/ù‘ !O{¼˜M 6¢H…ðû/ßGDHòZ¼nèγÿþë¯#Þ»Ëcõ¸}çÖc=ä®Ç­'DžFèÜ,ÍÍß\<Ð>Äý ï mE–<¼3TÕjÝ;ÃV—²RŒ\=ëël+æB¼3,ŽÛ¢Ž[9†Ü'Oyì'v9á„ã\ñDïpXý8ÃÈ| N`ïã)Ítò¬»Uvv<îäçl²ušìI¶E¸ÃñIg<ްïôß…É›³ìt·¦·ô›Ò«¥öJ{a{I³hø‹æF½‘ºµ¹#WRb“LÆã¢*K•±”€òòê|5òÕV×Vâ!G=:q%¦ÏHÁÑ-û‡r®} †÷ô}ÞÛ} ‚‡ÔíÊ…5¼9Φ´â85•íÁSð;—îê+)h—Xµ»·ã Oö›€­±¾}÷QÙYš|Á„WhUp¹pèpfg9'\£`+ÄÁF á6¸ ’t Í®&&ôHï¦Ð64óëçœPÿ»w Jüì¼JýŠ»p/§\FÀnrõù(t?oî‚eó€8|÷l†¦ú&ú:¼OÞò óðçAç¼7‚bñ›—bÿ ú<¿É®‘žß‰ñ™ˆ±‰æ¹n”:탯¹ üàîÄgœ” ·bXEüýN<¶¬´Ž.¶.z—96žUΜ8Òu(hßžœ˜1j+éåè*y“;ä| í'Îî: Ä=»•;Ü];ÝÀBœ%ù,’”*ölÃë,oÛç@µ0Xˆ&¢úšJ}%¨—ØÊ›[,¦ÎV Ü ;œL q$NÁFáXz9Ãã`ÿöb¼Ðd«3‚¾Z]u±VòRñ·ØJ­¾ ëÔâF`3[lÎвSñÜXõmiö>stream xœO[HSq>§ÍyÔµe`hÚñTŠâ¥’XF` EhEyaèAÍÝœgÎKÛÔéæÎïlÓÔéÙæm†—M¨Pˆ^"‚@ðE=Tõ õýÏ:©/ß÷ðÝpLz Ãq\¦ÖhªËŽÙ!rN $ Öÿ¹–¨K¹äÒµÄݳH›Ž•¨î &ÁqC÷°Úhê3w´µ3T^K>UªRÝ(¤®–”¨¨ =mîhÑ(–i§õZæHè¨cKÍôQy·ÚÆt³¸ØjµiõÝEFsÛíüBÊÚÁ´SènÚÜC·R•FCÝ×êiêd[Ñ ªz“…¡Í”ÆØJ› †IjjË1ì:V†>ù‚I±]<Œï cŠÄËVâÜKùvЯIâ}¢*ƒƒÙ'ËÚ¤Ãaxì°›cµ/.!–ŠÙ".JÕoö{rcŸûÝ}sîËr/ß:¢¼ X̾#æ‘’÷}<Éù9|DÐ#vÛë"Å&ð¸íÀfy8Gh‚ãfyrff5˜yWûŶ*G™H‰Röê>¨rí¾ÂÆ_ì÷é#Ö=+Düg)¿~ïÓ<6%mAŸïü8©HìÁ–ði?H|”qá0c2 ÞW@ü–!)¯ÓŒ@ïHS.;œ44á Î{§æ¼ä3Tå/ø³ÂÐOþ{(ëœ=Õâ½LÖã²KŒúÃ!η>stream xœX XTW²¾mKß+"®W!ËmŒî¸D$JŒ"¸bPÜqi6ÙdAÖfé®n}ßZ‘F1A¢‰FMLŒË$Q£ctÌD£‰Ž©‹‡™÷Î’ø&Éûæ›ïȇÐÅ9§ªþªÿ¯#cú÷cd2ëà¼h㌙ÒÇ‹¯ÊÄ×ú‰¯Ëד­/òº\LÀLfý¾öêäaâ ¡˜?7 aä2Yp„Ú!xWt¨Ÿo¸•µçD«vv¶S¬fÚØØY- ôõót²rv÷õt§?X¹{úy‡G[YÏ÷ ßõÖôéQQQÓÜæ‡ú¼=qŠU”_¸¯Õï0ïÐHo/+§à p«UîÞV½·›ÖûÍ!8pWD¸w¨•s°—whÃ0ó- vصØ1Ô)lIøÒˆe‘Qî»=VF{:ïñZåýîß5~®;×ú¯ Xh6eê4›3gÍ~sŽí\» óó.3†qaÆ2«™qÌxÆ•™À¬e¬™uÌDf=3‰ÙÀld1›f*³™YÌLcÜGf:ãÄØ0K˜ÌRf3‹YÎÌfV0o2+™9Œ3cˬb™AŒ93˜Ê c†3#žÉŒb,Kæ†cæÓ¸3ý™æ¡lµ¬±ßä~åýžÉWÊëäÿÓ¿Òd¾I¼‰¨X¥Ø§xÊpÃ8Ã~€ë€/MíM¯ œ0°Ðl¦Yñ v÷ óógƒóß’:äáйC¯s–6ìïÃÓG˜Žp±yÄžå'ðÅ#mF&Œ²UhÁZ$Y¼°œ#¦›wÝ#ÚÅå2q[—¯.Óì ƒPФª£‰®ûg u h‚ÓCÓÓ ¸h•b¿þÔC\…jÍûfcŒlxCp~F.èõ™8Ò+ˆÉT•¢Qÿš¡~‚ÚÓ),¹+ÆðÈ‘c&d¯Â¼ËŒ¢©A†r”á6”ÉÅx–ÿÞã=ÒÏÁÙ÷?A‹ýÄ>ÙDÅžÏ/%¹ì¤b«õWà]¿œï„~,27:/© [ º?2aÍ»Z¨›ï°Ú(Ãq8ÿНÉv-âUÏ»V‰Y´»yïá÷s?'ƒr•8¶îÀ-hçØÞ ³²Ž|Êc5.cŸVÚorôr ”d"ù†Ç÷ÑÅ¥„Ù¶Òï-Â*Íų)Mâ+YšašÉÅ: æñÕéÉ b;{ IF=˜Š3Ðöîc&=YÍ“‘€nµÃûåMʪ–ãeFøšv•WøÀpãæá/˜wuÆqC.¯D£ì<Žu­ò®Ä®Ù|5dDï8¸ž\Z³,I2™FÆ‘Ä'’‰¨A'dÑMKSt±‰‰ U&‘)„ß0–ì2× ¾Íþ§ø¡øjû™‹×Ÿä„뀃Ü’Åú¤\(®ô5Jš*²Þˆã â¨&Ù3š­,ê&“y'\«¨h =¾þó78…i÷È«.£ü=•§X²ð×ìuçü>5Nâ1þÈÉÎ’£À}rÖ…XqW¨TUíôȧh¾Æâpñ5š¯æßòeÇâZ´¦y܉‘d &.JâòÏQ¼ø'±wá²ß‘ õå›ð@ÄnðÝâ»uéÎÀ™wER´±ä¤´¯ÚÑ(®ÇjÞ]I&î°'‹€#6ØzVñ0Ïc²º+ÞItŸ,¸` Ú(p*–žkUa¢I÷?èuŒVu™(ÌÅí½X~öì)rrôÂÞ³p€°7A½¢9ÞÚZC鱎 Üæû9¹ï¥è–+ÈÜG÷uz¸ 5=ÐM¡»^¹žþë»ò,zeÓ.{¾û^ïéŠz=*àtÂ=x¯çˆ%ÖŸfæl_ÔëÁ¢äí“…µXc8 j‘AÔsñ݃huPÖüÆ|&‰ ørÈŽMÑ@R¬–ž NM.Ù‘å\ ™dä8$¢!UY—jHÉ„–¤–PpçÞ¶È+K )ZÝà"!=\IXv7¨‹³õPR!ì/?îû”åiZ€–'C QeJC~YëòVä¿›'¹OîA%ʳCõ‚..G]%dT+Í_pônFqX/âg¢…<îá¿2*Â4Và«`¬ÒS—U8z ‘ìèkÀºÈùª×ñ°ÍàiéåãŽn bÿÿ*ºôuqç1å!ÿÃ2€+€¼ZêËh©³F\P!û‰ÖàV9úˆãxk$cÑÕ]¡µv³¶NçvÞ$ ìè[áW®µ¹&tºo`—¼ —ªóršØãF,3ö&ö†ä_X×(þ¹QDýó¡Ë ‚zü{NÊÈ ,{nd÷‰Tl½þgh¢ëg¨ïÀh<Ž7Èñ?ú„"Ê„&žëø­ïâsqÿ 7² ¶­²'­ö´€Yâô@Ù —‚~®¹7‚î-.Ì21²Îj8ªû³æâœ¾zCýÀÔìoTøh&€;]À§7Qý»‘þ*¶IÿZézM½˜•v¸ŸZ)òF™˜,šóÙÅ™9€3²> xÀ.ÐÀšžغªTµ´©‰J2€ä™œ6*Â5ŽÔ(VCHÙwËÝ­O­ËÈÑçVÐòïì=¡ËKÄg—fd$¤‰£õ€¸¾;²¹ïA=!-Qù)$,6›|(AÎ…°‘ÞcSÕY6#y_\fRFJ^¤‚&]­M_@V[Ë%ûpÍjïnØgS»‡fGgª«À2Ÿ‚/§â9–Y<'%¹Ò–U‘•]Æ™‹ÆzÔálƒìM‘‡DŒ*<Å?XtžŒv%¦©¶îÑuë+›ËÕe{òCn ”÷Ù1o;¥'Kf’Yۉܹ¨Ï¿|¯µ­B¹T? ŠÊ¨ªL‚½Ê•:(jŽÈÎðSm£ý7{Nü ™†ö 4’/hï#PžFËüÂÜœoÀÒȺÒ,øÑ𪠸7Få•©j*4åì‰Ö8Ȥõa]ŸÍ,Ú5”õ&ÄïU«ç‚¥Š=§×Cío­p W=ìŽÜ—­]vŽò š œ¼jâ®RÔè/Ñ.x¶´^+Ç>̾bÀu´Åb¾D?^]Ëù—ùåÇV¶´¼´¼¤¢cýé„ÊGÂóÛ”ì_ŸzŸ¼î²e·¿‡rŸøä©²VúÙ ×mƒ5a;”n[ýa ì8¹·ŠBÄöWÚ¡åÈõpƒÚ)††u)pV”`,ŠÍš™°vQ¼\„âG„Ƀø‰QV%e-YÌgeæ\”Pæ§Iû¿8ÖµC\zzŠ6]Âñ>2J8£A ¦véÃñE»Ç¥Æï J·ŒÜæïäi YzÝÁhæ a•a‘~[ÚÜÏÝúàZ[Íb:íM”¨›© Y‚¦rÑð £ÕƧ êÝ»–N§<7pÊñ³:…£²ÏjRµZ­F«LO‹…PÎýОÚÊæÂö[„ÍZGœ© aÉkßOÇ 8£¹lÚ½NõÅiB»øL:ä ç‰Z<œDAI{¨Ê%Dhµ!iÑš(m4pá*Eµþ«ðuŸ6 g¥ˆ„eejuPʼn§u,Övÿ¼/!+±,K!+o_>ìêg¡“B¬¨Ó?ƒCt=ƒºÞn&>zn$~l$$AR$­thR&ÚÉÅ•â$>7ôÅ•'ÂnüK‘@Þ1iUd}_Õ†ràî+HC7›”@o ¶ŒÊ… A¨(ÅÍ&îŠäÑ®dp6Š—¡'E4Kj˜O$-Ò×·±åÛëhDß?‹X‘1ç åéörÃQå~k’"KdÝ÷y÷Uã(©’!€Ã?¥Ê¯ªYÙpælV5ƒ¶hÃv®‡z!Ø.¦´ËÑØ5‡OÌ×ê¢è…üWQ5°br÷wùñ:m!XÖ@VµR¼ÉB•N·?³L_¡+£D(•¯=E^0̇ðäU³u4v5éõi:-DpÝs(¼óRšÐµßîÕ¸IäâF ᫳ ö úúÖv¥{«kájICÍG†«§68'^Z )1Úô¸eÈòe‘nÔbœ_=£¬ï¯?¦;ZÙTÞx¸ÊH9*—˜é6Ñ"¼ßÜ5¤©‡ö—ãhyW5~Ç£/p< %aäu2ø´"£q]V8}ÒM.ñËaeƒ÷‡nWSÿNEæÇ·}ÖvùJíYª¨Î©ê·Y]àL¹È:aî&§P¿µ*{ª ñaOÓÃ0:‰˜<»'É·@‰ÊF2ð©âÙ§%†|½V“%Ä&&íHγ1zUSqÛ1ŸÖÅ6DîM8aÜBÕ5òâOä[.ݽ¸;{•,¶Sw¨ûˆÇ·8ï»;O‘™r‡Ø)»§ôvÅï _ñ8ì–,[2]I”ØIåÛY²µg>¸Þˆq‡d ·0ìyÖ-9ŽÄåüÉ3P,5ÀÓ_^îjŠÏSÖ—Ôd–êÓSéÇEíÞ¿¿¨¼²&ºÑ]å)xÔxån¤IÖ¾íçÑê§Ü³;Ú—’¢ªzGeLXŠs8¬á\>YŠ+ñ­Û\ÿvu}hàV³fÑQq;¤êTÙñÍ”„rtÅù…ÌâgÃç'NÀçwï‚ÓÖ­à4[y†¸ñW/Çmðõ]Mu¾…ϙ拠XùË(U×Ìã7/””òŠ—;ýGÿýx#ÞiÄ#l2ëÉG3Ž5‘ÕR‡J”y¡ÇãõhzúœO}nñoôôô÷÷ôlôoiillÈÒŸK¡ Š5UÇ´»­Ùmño¯Ú—©OöeT”ÀA®)¤z§_h˜ïêóWnwê© &ÓPTS”}{J†_I¬îÕeÇÿs‚"Š$R2ÈEYÎ ÜÍîoÉd•â†þ)%˜á/p£W™N¿½ÁRƒÛ\Ò¯gpêUIè&i9ÞAÃ~*ÈËÏý\’J!š(ª BÀµ¯²5éÉi)iT*‘åd¼‰¨bf)}uðù¯`~…-)(.¬*ÃAÄÆ";™vs-—{[£ÿ”šv@´öj¨ˆ‚ÝÞŒ´Œ„"Ú;ÿoÅ^#¾q‚z+vñÖëíÿ¤×eɘñ«‰)qHÃW>Ĺ8yÌ` Õ¯ýp+:ßF‡ =èuôB7ðßZ¯§_ôxúÅK5y?©²k å¾] ŸU˜™w ¸R£"@ãÉôŠ‹ cr$¤îµ îݾ$@L4ùΨð×Loª²­!´Çê>‹õÿ˜•«-‘däVRBµé¡i{ï—¼ëm2¼N‘þã·,ñbî,)^“aƒs¤÷¿<Énžºp¤*ÂþO:Î`Âö´@|qê*šUJèEc÷D\˧‘±OXªŠMóZò› ê !ÜŽº°C†Õͧ·}4ž(È?2Hÿý[€ñ:²µYZ_%¹þGŸ‹ÓXš6²¾Ò ¼6rô,çµÁ©síÕ)Tö§rI‰Y…oã+Ϭݾk§—O­O{}Yqf&›qñYvÊñ\Ì? Ó¥ý g¯±rÜ}¥§}yí ðð0íi_”»â âcƒ¬Šˆ½ÒCY^ᦒD=i2xLÀÆ>è/;x+Œª ­)Œ‡Ëp1çTÑã+ÙUÐçc‹l)}½«€$Äî ŒŠÚ•F™]@ÓM²väчËqþ‹§ŠòüªZ;Ž~BåNSzM¨wZL0ìâ|êÂ÷JÛÎy~üJìíIÑR Řˆ?|Eõ©Õ¤kd`Ô ˜ã) ŒœãW@èi9{ pr9Üyêìc˜7Áæé©ŽJZ¦RH\¥ÑÊ >äsóhƒ¦ªÁG¡2q_¼>4S“¯ÉãÜ; P£_.ÍÏÍú†÷.SЉmt\L€‹ á’fÀfniäÔfg …%Pm€S‹°ÿ…ë\·â=êè qE ´¾{9”½Ù¾ñeç§|T~p5½âŸõÕwNn[æ­Z³S ÞäQ˜oØm ƒ–óæ…:X»v~}õø‰“u=ž¶Ô éiþK ôpô•jkæ¬$6>9%‘B}Ve%4rM»ªýCvîÙîxzãSj:íÌ¿XHbˆ0q ”ßA³Ö÷‹¿hˆb=o 7xwQv±zMB¦2/Pï ;9Ç k[‰¦Pü¥ßÍ–^î.óûήے’µZŠw©áýt-?ÝyÚõ¥†—“#˜Çˆ.¹¸½"¯@A¶f³FS” LûÛV˜ 8”kf†²j³A:3s†ù_¬~Ÿõ endstream endobj 2626 0 obj <>stream xœW tSuºO „ËV¶£Þ[Få¡#¸VQÅY‹µ€,¥´¥”niö´Ù·{¿›µY›½¤I7P±,²ˆ3 òD@tÔã2ƒžQŸ3ïŸxûÞ¼¨Ž¾ó|ï8sr’“œ“{ÿßý-ß÷ûø¼1×ñø|¾pá’%Ï–¾ÍÈÝÂÏÝz]î6Ã9¾[7Œ…I˜4¦ïÖi7OC;§"ùõhÍÞ>¿©Í`^ØÜ¢××m‘”ά¾«ôÞG)›Uzßœ9”>ÑX#®¯®j*]R%ÙRÓX%Á?¶•–7W××H”¥3Û"‘´Ì=[.—ßSÕØvO³¸nþ]³Jåõ’-¥+kÚjIJšÍ¥‹š›$¥K«kJ¯UwϵυÍ-RI¸tIóæq“¤JÊãñniª\°zaËš§Ú$2y•¢zsÍ–úòUÛ*w+·Œ÷ïvÞ\Þ¼¼Gy3x«x/ð^äUòðVóžä=Å[Ä{–÷ïÞƒ¼%¼2ÞRÞdÞ>ûÃÃ;Áÿô: Zðé˜ØØRáXahÜ´q ±œøj|r‚pÂþ‰Ó'~0©qòý“¿*ZWôåõ#Sʦ´L9–³å+ô™•áçÊÎÛß ¢3"«Æ,!êÃÑpÐë"]ÞÎWÂót§ÜIwÒÕíßkïìÝ›zåè N±•Še9ºŠÒ5[  "*l=òÕDv5`ë`Ì:+)ytã¦j dÖP¢ÛŒ¾Lú÷þN_ÎT<\^YÝHšÞ\žÜA²M#‘Öv¬ ¡ #Ä:Ҳ뷱C{€èñH[†ZS ejÑo²H‰¢ïƒleù¹WsÓDW¯¢Ñ´={>u•Ù@œè6² ¶X¡;[áð¤ÛZ›‚mCy™ RhoWëõFw7¥¶fª,¦68Á ï°ž›`™ Z&¶Œ’„‘ Ú@ɪX™] „E ÒŽ „O¹ôr…J¹Þòr…ò¥õJE WÄMÞTu¯µƒÑÈ«CïïÝá„>2)ˆ0Q&IG€p…!Ò²fJÏÊ€p0˜L¢ hm1šÌé]z–¦ÌJõ›Ñnİšp"…ÿK& ›M@¶C”‰0 :|ívÉÔ+,þˆ*Ê Yt*ƒú³üüã_ ÐÊK"C=mœ„J²öD©ÜÍBô¡q~û¹ÓÓýšœüú]øˆxwþ﹛ȞP¡Á€8:J%h; z Ábm'ÒœItÙ:ûYÇ>(A³„ßt?S3wÎlîW·…ûH´a½,¸œ]Ô›(=mþ)»dÅÌr“qi÷’—Ÿ›{M‹Ç£É®½™]ö ë/°— ¢(ÿš<›§²ü·¿äÿ_$rÙ:õ&šÖÈó ò‹ÜõPÂY9×Àɸ2t#7=}ì ÿÇÿN]>›ü:‰ ,Ú¢³‘›¸Û¸Ò2n2Ó¹ 'Ñ}½t‡¦Qo^üËÁ«@ â\7¦Ùf3¥ –#æ"‹rrY4sÔä­W¸"‘©™6b7j:@¦óZ]T :Ó°v[ Ïèõ;b¡ÐJ[ àòô`Žù÷äý›_á[ðë.4~îáEK*ªš[(ÕÉò`#l†¶Vu‹¼^½ Ì?5ï©ØáïÍ«£5Œ™º ºx¸kˆ=;šžÞ$½³q%^³fm%O*/úœvëÄêˆÁPîÛ,ÿJ~ƒ ¿=_,êìt{ Hø  Gê„­À0fE9÷L±U îX§!´»}rM¿´ ‰p©ÏGÞùÊdÒëA]¢óB”Ì)„=À²îØyÔVì ”B¢¡­R¹Ž»­ò)n\¹°([çh¥†øùA¤¹ƒ¸+°„ÛÚ‰«•¤i†Ñ¶>ÇÝQ¹š+Ã×Ìþ(÷³(1^h¶êl*«Š²p•4A³ÚpˆuEœäqÔì\SªÏè4h‹ÌLÊæ5jâ×Â×áO• Ñ̓-÷µbýZ(£Ãêb½;E }&,é’‘W„r¬Å?$Ã΂Cã£5ÙôŒ…»y$^¬ß̘æ¡Ô^ó1vüë°Ð%ŠrY}æÀçèö÷²>ºç úÍAnan’¨Õ¬–œÄ Aßn÷‘ß-L.åæ4sã¶Õ&ÚBZ²Gµ¾©MXßÐÂjPéjªÄ›¥k@ Õ°Ò+t&S!RÊ€¬©I²aÙµ_¢çwàÞüùŒh­‡4ØÅN³½Ö£L@º£éd(ÙiàÞwÔ–¬Ç5-ÄCir-ˆóÿtA€˜%úF ^ëk*j–pšÉºì.p–D;Brq»ªÕDšÄÁá ÜâκU”º*\ÎéÌbChJ–®;‰gPi°0”´ ­2’ÍÏW–¯ÂC©#˜õ9vU”;7: ÑíPì° ×þ&ºôkkmniUùŒ3鈷B5±þYìØ‰sá|ä`ôÄ®?’ wDˆ£vTþËzî6õ¨ú]~¹ýýýCC@D:um£L/¡ð¨Ôm„:b楆wÑco¡ï“Eù³ßŸ{Ç;¹õß rÝè¼È“ ƒ‹ˆ«*…R«2“6£¾Ê$Æ“‘n/׬¢L“SnT´5jÔrU=›+C—ŽdÞ‰¡"œ^\Ìð¦]/ÌXÏݪú±˜Ôû÷üPŒAjÑP+¹ ‡m7á?ÚÅÁÙ—ÉîõÇ¥§á8p1¾wÿÒh*$.ltš~Ä`»<Ø „¦Šî†ig8t·š¿>Åi,¡¹xËë{Öb[ÜÈÝÄMçî¸ûw‹>:6Ü¿gˆŠ-;¥ï,¤’ÑþäžàIp£QÁÚb"µkË«€h5%ӑά§‡ò¤}{]Éø»ÅîžÀ+‘¤Ò§VI´Ífr1çýL*—* Æê†@ÔÖõ¼ýj/º®{ˆ:øÞ‘® oÅ~£³Ò&ƆÊ-ú̾7ÐâÏCþð—èêdÿ«H_¿õ…J°A#ÈB{ƒŽ,¸‰¤ªKÒÜÔV»ú„äÐÁ½½ûRäöŠãJŒwMÍŒ–jÑZ)Ù¢e/–Q-KïîÙþY ¨øÅ—SƒØÓýèh0h›AIH#íÝ݃±}'GªWWo­‘’ʽëúðeܘÅÜõr‚¬3è¢R—Îì?Ä`Z¹V®]m¨Çrôè3(õy†ÿúÈü… ÷\îQ¹½¤DKBMî Ÿ›{»›£8’£|í~4Í»üçÛà7šiÚh$çÍæÆƒˆ… ‡^ï !þÑ7©Ý‡ŽfC†éT36Ûg×XC›†¯w.?KÄÚAÜè\V¯Vþ°‘“F¦ƒÁ¹£#X“&£‰6Ór%§e¸äŸg8f÷:‚Ô‘€ÆÜ JmÝ›áŸ}íØ/@¤eà²ýXìžÐ0ôÇW .â&qÍæ~3ãÌhüÿɲê¡+!ˆŽSÑ^t'ðQvIkîææÁF¬˜9‡&7õ¼·¢ßÿbt¸é#g,Jœ’è’ö€*é¹~Òáöf]‰îOŠ]¾Ý…7°ñC‡O^â„c]Û/ÈÑ6mþß9°¯¶Wl ½  ¢ºv#æuæhñ¢?òј·ûÏ ÐÅüXQX›lnijmReéÞt&MrG\8ó[´øÀ—†jŽÿürK0Ùí‰y“”/íOû{¼Û³Ÿ9`>â•êÝ«f®û¦ç£Ù]@„½Æ‰¹]¼c¹'¡ÛøhÝyÔû¶ ¿æû4df†\³²æÕç£K±”¦sS9!7®ÝQÝWKí¨Þe8§Ž[뺬ÆÓRxœ˜ûÐ,Nxÿô~$ðÙ“Î(É⑌ÙÀ9 ÇlZi%+¹—+mK‰Ùiö¹Y6$ýžàÕ—´…üò¯8ÁÜ„&PI»©-Ùv''ꓹ¶vboU N—?yï[Ä;ºt–Æ*‰‡‰«ëÚÈ.Ê?„#ë×ûù9Uî‘§×îHÚ]ìNOC¤Œ/wØ› Ô 1½HëŠqŠôuÙ½a;™Fåcq^T’#œPŒEa’=Ï=UÌX1ÏÂj×wí®˜›<…ô¡Y@ìö±Œ)DlŠ+é6ÔÚô¿†’:Hmv]W¦Ï*}l28¸e˜4ÓG§èìÂCRÛr–UPõÚ ð€Ý"ŠÐê3ùñÃü3XÇ;NǦ¿ëØÿO1à¡}Éâ“Û†·÷u¾ÜC&v…~ûƒ¥i3]³Z±·Å”ڎãÃù~HžÈÿ ‡û ¹Ó¢]ÇRÇœìñRæ ýZ² ¶YÅ?ÆzƒÎ¦Ð„'5@{µÐ&½NÍ]QÏÉuÒ^ÜQ%éà‰ò<ÞÆðR÷¤µ ‡Ÿ¥£y¾p}¡î¬¹ÕE!þÈ_œ2Öƒ’¸<¾.¼(Ò£³)¿µ°çæ]Yä†z þÿ»çî{¼ÿóçÏî¹?õç½°jyC•ñÃ'Õð0”W6Vÿtõ%~éîÛÀÝXüϬêb›¦£œ*BŸs ôÇGuª ‹`•~ñÓ‹­V› oê4¹C¾‡&¾Þöʺ­m­Ûº[wn‡Åcþ}Αø®<ο”{\£ó…`Œ "¯NeÑj,äÈøÿ*3k°Î­%ê Áq‚…U¤[›@è,}cZ*ôL+NtÜ9a4Ð/®mj­­#¡ÅAÛÏÚ½nòÈ[§¡ˆO„3¹Ë6æ’–”¥s·'rEòxn¡Ï@-q!·Ñ7n`•‰ä„1eñI㜓&ñxÿ îЮ endstream endobj 2627 0 obj <>stream xœX tSeÚ¾!/ˆ—8:÷TpœaFD¬l°¬¥-mºAÓ4M›¤I“4{òfmö6Mš´MÛt…²”MŠU÷ÁtFg~çKçvÎù¿¶ˆŽŽ³œœ¦mîýÞåyž÷y/‹˜8`±X7,_³&}þ¼Ñ÷%ïd%ïšü9[Éìþx8gLeÃÔ‰wÝ~ç-蛑m*œNpX¬²JÙêX^&”‰Š ‹Äi³òf§Í_¸pÁÜ´‡æÍ[˜¶´”/*Îˤ­ÉñKsÅø—ÝiÊòŠùbYÚ¬ÅEb±ð‘”H$ä–VUG‹mnh¿Ë羉nKEŽ­*Èܵdé&“¤¦$j?ب}pÀ¾ñŒ©eìz?D|µ \uí&zíð$sÕÀ“ƒQ§¯%éH:mA—:™K“R’TG“÷GYèoCõ/±/?Ï5)ôb0² ¦ÞßèŽÔQV›ÿ°«%úIª+êŠ:cŽ»Ýê¨Oœøôs <%k¶2·ÉshØ¢5¹½§èðg}è>·W¦Z0) ”deɆ­@Vë¼±O³'J‡OìG`<—Ó¿|þÖUâjÊpjg" ²@š_+“×d€‘¬õ‚ÍkµF]TèÕÈ‘^ #>eI•I­ÜD§ [pIÏFÑÞ+ù—«lôðÛÜÚ|³v1>d´&h¤Ñ0=„¦ )_¼öôé9>úëð_.ÂçäÅô—˜©ó1G:þŰ- æÝhöX@ F‹É¤"CŒû"²zzlöÀC\Î妌ì_ýz.“B3˜ËÜ0ƒÞZk5YÁ v°9Ï£ÎTô4çá¥9³šÃL¡S’Òñ²î»ˆº_g'‹Q+÷ë/ÏgîÀ¯»™»g[qñЈB÷QL„©çæd'Þ>ÚŠˆÎgéco Ö·yºcÛº|ÉÝü§è¢§7g™2ü $†Y ÖpÎGlô«ïrVƒT…S¡Ñû”;[ˆÊЌߠ‰Ìz4ÓñG‹Ÿn0»L ¾–éï-Üñ,É¿r¾¸”ɤn•0¿ý 3,^ÂL’™Äùq¶8*\ÿ¡êêf oF5\›Ó^6Ò ^•Ƭכ©§˜YO2Kð îû'7xµ¦~ÉùªD:PéJi³Ábipè=n»³ÞA "å$—Á©Ã7S™¨ª%2ñƒ@ÞÏBzOÕq7e¥tV€Ù(¤AoÑaÈì:Ïê Û¨Zj@¼Gr­Ó}m 3‚Ù £™Ô‘ÖñÚñ®×.ÙÀ‰ÕZ×@¦$Ï_£ñ’oˆ¾:Åõíì)?=‹5t†z/à\Çàm1Ö˜¨š Ò•¹@VÕº¢þÃîº özïG=ÏóîÙXãQÊ-ÅZJº,›Y®Ê´ó-rSí@ß©¶wZÏÓþgÂäÀ®¾-s ˜™šqðÛœTËG{úöéi°ìªP ô º`VÕØJÎ=/zîlï@4D]Çb½äB?ûŒ,J’ÜçÊd¢ŠòJ¥SïSSM’@9’¹k3y³¸çø©øë‰KT]èú¹÷óÿáÜö?ˆµéÁ.Q­P'£³R™9$C\–B‹ÑûÇ©”áìo~Ù3ô/¡ |øNt…ëŒzû®%®’i%:ʤÛÎlЕëJÍ2aü™­qféî| ÁÅP§sïa4öu¸‚!Jú¶þ  ñ«{=ãU©ËtÕ8š)ª,à“óν: ú©ÖUçõð<Ó:Ôýv'ºŽ'…õÕ"®KïÑR>uK9lƒbÁìòÍå™EEX“¶ ;ÛêŽ flËx*ý¯²“““)\YŸ ¾x23ùsßý'Óߎs¼:D»s{JŽüªŸ’eìRhjDmnßAÚ·ßæõìéEi©um`Ry«+••&L?× ³¢:{ãNy[jNî=Ö‰¦Åщçúú|9¸ÓIo1àø^QG£ÜQVûtî }„Nr]­±+À ÍФ,3HDPAÊ}Òx´³±ÿxF°øé¢L±Š}Æ+òžõ W4ZT·Ýæ±ÑÝßœmé2Ü£yzwõ“L-_S”› zCU Åm‚62^éV”ŠÊwe“<Û{Áe§ü½ùC@~5ˆ¸-£‰kÌF™.I[Y± È|yg78ñ”äÒ±‚¢‚ý¬ÃCHýi‡—p±F(ÅË´ærJkQ[@FböÕ±éjušbCµyGµÅ(‡"ÞÜk.býž†f£{?Í<¿(k§`w)%y”늂Íã;úò@}+½ñÒU%Ì 2>]òdV!ÆSqIüb gpJ&7ºÿòþï±9Y¼™ëâNÔ¡³V®Wh(³A»Û(Ãðê…;˜'SŠœé@nVì;z±û2ݰÏáEæùÿ¬¿£û[ž”ë¤tÞ ÙzØN>t¦ôù½Ý¡¶6J¹Iµ5/³¼˜/È‚Øa¯ÞÛú½/ôdB託ȷn9XðâW_}Š&µaF?®Ž¢îËýcóCp•LKNçÊñÕ55r…¹tdE£:Üoî?º½ïqæN†ÇÜÃ̘zñ×èž÷¿ñ»ôuzƒÙ¬ÕS‹g1,P¹Zxth_äÝ/Ò‰Á“NB7ìQ…Xêøêsî(òGÝçXˆw‰ûÜéö–ÞX_<ÑÛûùÕèŒWÜb³ÎdÖ¨ÒmUò ¨U½"$UGJ€|,ë*ƒ]ïñØœ.>tÚê†&ëbÚ~…Z¡0gÁr©|þ‚Ô•O­ÇaÏfó¹¨XOG¼bàÕ´BUr¬5_žF·ÆF§˾ÎD‹ŸZ%- È\UuÅ…£ Ï9hL8êÐud²5p Vйs5†•ÞÊë°¢L’uLí8™yÿ;™›mu޽*øß–›(Œ¢EQÖ¡×P¨‹Ö!9·.ÚŽ5]èp>Aò ß ›ùåfùÌçñÍûæýN¿5QÿíŠr÷¢¹_ÿp\P|ó0ìÄÕ`˜‡/'… 4óãÆ(ëÄôÊv’¼—û!'â3ƒÕôo9Mˆãh ¾êòó<áP}8pƒÂ²lcm(Hq£*ÜÚÝs(+¶³xµlV)¥¯2ÕV0·O|ë ÂôYÎc#´lNõ¼MÀ3âñ*mÃgXki­Ø É?3ÉŠÌ]oü¾In80€n„ÓäËyû[½mwV•‚ƽ:ºýcÖ»C°5éžÄÔ4ˆ…Âr¡4XÝëˆuPKF¦rýíXŸâîÈOM÷ï©V•®ÊXKkËw0¤<§¶\YUäöî¢#8¾™žïâ“­.Y»ùZ|®`ì »áÊÄð¼6¼Ô\@Š ìaÞð*®Ý\§1X,5*jÛúòÛZžÂœ»•™ÊÜÀÜôȉ¬gô_Ëú4'°7áý³W1ì(šÞìl¶º(«Ãj%ŸÎj0˜qÛ)£q#Å®Pï4ºœVkÐO<ðô+5§±û» š~¾¸[¤Å1…ã¡X¥«Ð«± =Åíp‚|ïÝ>¿ôB3q—QzÊ¿×j9°²>ˆ¹âý(i«¢ò œa'gà2†kBâRq©$(Åã­qŠÉúû®tɶõð@T€ÌÓQ‡y!Ôa¡HPU˜×_yäÂÕ_¶PW’œ‚7˜Û³eæúk•öX­a7Õò¡Nl4æŠMjc5®Û{H2}¬ä’ä×ܺ6‡Ëo÷غ°l’0þNaÌ7–Ó£Y5šû¨£µ¹ëmT-Ãòâ3FÉLçT€Å¢“®cOµ˜ £«d×êlpQÏ¡[Ñ, ÷rÚÀ¨ÕãeÓDc%4&uð õ˜E>pÅÛl§Û ÝÚøe‰níÐaÆÛ‡wt‰ÔB¹H ¶rZ`×Ú¡¬àtÔë/úÄ?ΛçN_ý¯y¨÷ø]”Ó3€Ö¸ZºM¿—C:èÀhª5«Ì£kdFÞñŽxC_”j9è;ùª,Y&ÞŒé+UúzCŽ˜£v„°”yáåÕí¿ñ%;;cÍGN:p\8^›ÅoÆ{‡Þf‹Í¼Í¤ÉÕ˜AÂZ··Cܵ£,K»h9UÌÏÏã+Èô¬::ÌÝÏ:t†|?ÎHJª½8#«F;šÑ-#&“Ú¬9oýÁ¢Ã]-‘ÞÕ¸Çú3Dš‘d)t›­Ng÷ÿÝʦáX ÉäYîÑ·÷Ûûl~«5VÒmph©r˜„PÅö]£íÐ+AªöXêè¸9\ U PT‚…Q¤®L¶N Ň‚Ø™x´6}^Ž vR2ZG-¶ÔV ¤N5&ª §¬‘~gäïv‰Ã^8œî™ò· ãžwxÚÿºü‹teÚRºŒ!%KŒM1x£×&\-n*x Kœg¯=pME¬q\ŸËp$™´¦Â¨þu0||?bÃà˜>¶9;³€²LÝeÍ¢¦]Ṅ­«ªÅ†ÁÜŽc42Y‘2SçGêµükPóLzìJ²Q¶•{V´7¿D"*FÊ»ü‡ÇKÙmV¬G¤Õj©YZ´®¤„VãßV‡ý‰ïÝ·Ðd¬Æð ëÃoØhã n{E³@PQ!4W´·77·c¡ù’ÙÝ„VG“FXH޾æ:›ð.è³ÿ¦2K‘†bîyÓ¤Âw5ó>U¨Éßh·QOàøô@§pÀ °w ¹Í³£¯ìà²oü»ås;³NµEkªåY Ûæ=‚íKE×síumumtÊpc~S²;º”DìáI×ïªs‚ôi§Û ~ðkjçȳ(˜ª¬ÃåR­Ñ¨5N}PG'£Œu¿kt=hxjÆgÇ.=€K™¡ŠÏïdíñOñ?g£P2ËÜ\:‡¹˜›È_¾´ü34ùš¨OóŽP…x $£‘枎ˆ²¦‰Š¨"Êz [ꛢr{¡›Þä«ÁN’ü]aκgÚ7$ÖÒþJnKVÇ3°œLç3‹ظsÿ›gúPº³Ÿ¼ÖHÌ“ä²×Ø]ÌRîxÛÈïÚæôà…3ŽˆH^§ð0h2â¢hö7éƒËæÜý &¥”FÓ>w…ü]ñp›&z{£ý^?MÙ×)xb£€™(ÜJ—¬Þ¶‹XcÓUMIâ4 NNæ¢Åœ@/t7W”fº8ȇìí%…eÛ@OŽ7·ÍávQGß"—8³™‹F•¾ Œ>stream xœY XS×¶>rrJ­µ¤± mì­Ö §ÚÛ¾z¯Z§bEê€!JHHBÆ„! Ia%8TQQÑ:¶ÖÞW뵃½^½Zm­Ç¶öîø6ß{wŸ„0ëë÷>ý>,ûì½×þ׿Öú×*‹ð#X,Ö˜HIÊ–4õ …$ÑŒ® ðrˆ÷l*¹>û(† ?Ô¦/3–(¥!.°aÍC³È/á6c°~C';ƒ~¤¡”~Ž{ ®u‡ó¦“FPò å;²³€Hë³ß-¢ÞÌQc¡¡ ÷):‹¶Â`ë}J€ïV›µzÈ­f¸œä~qêx»£kü¥VÍzZÊILË’bs þ9ÈZª=­&‘—sÀÅÌNÑžäÆ-•Á ÑÅo <è 4 ¥ƒîÐ0—ŽÆö>¸Cót¤ÚC¿Y•‹É¾£›u‚„_^þéCI×¢ý®ûhG­«kܯ}‚Ø|´»w_ŽAïÛ§·šÊ ›UEÒ(”CaçÃjцõ²EÄF<8Žçt‚vS“Žâ>hÖ:RÕã¶I²–ñ±uZÖÒ¬N^¡ýá9w,½ŒØQ0 É?Aæù+ yˆü … Š&ñ¾¿µpÁÒU³g/½ðÙçWÎßàCrh÷ Zâ ráÇÍt¯v¿Ïã^i^“dY;…¡@4½"ç ip ò‡ýûÇ5íGùµÍ jÑ4(só òóùJùf•NdÜ(4ê¯т˜Ÿ~ñKÇ~ƒ®…ߦµå–ªw©KL£Åh7W‚jPe±U–YKÊAõ-4YÌVŠ;³Ê µfÏyæÜ,”@C M4ëSvãW¾ù7ÞiÑQíE†Ë¿Þ‚OCÞ‹w‘pE‚6a½à¢8à~¾`úVøè[Ý©ì6fÕ`3zà‡o’õ b›L6éKRµŠ„“Ýñ¼ÃÀehÎhK¯Ý ’©%+âæÎ‰ì¾Ú^{ ­ŽßìtY;—/n®ÇÖ6ÚÿSš'ÖdI=ìXM•Ön&¿ï7œ<Ýu¢ñ¸FçÀY(>…&òQ’/ö¼±%­Ïz—O÷pyn.ôã¼j÷$µIª7w¨ °.7I!“I“óVöÞ _¼×ÇÓ¿`Wºa,ÜÎûÎDu‰¡Ô`Õ9 PåƒÝš)Èæ+ØYdÝÞšU£: 3êsMúBPR¦W1sã8x³¾Ô`ÓUãͽ>³•X@+§ôÄp†å™>6÷pûb¤?“øb„ûÀ-…ÓHÐTh-°ê«´V¼ t&}¾ÜÔZdåxߤ§çÐA_À “ðƒ®À½8Q ñd6ÈÜaf\Üw®ÕëDîû~ÕàìçIÖÞØìÆ¡_µ³l×ÐD¥À¤ÀI$wæõ6¶·[AU.^,°ª¥¡¡µÆT‘îÈš¥I`=g¿±r è, ºsÓ¸¦$žãÐ÷n+±‚àMEef›Á÷fpCa>Py·®ãx6‡Ž7Oí‘þ1ÀGHJRÒ9äáyøá&WN"ûÉÐJ¡Ÿ¿{:üˆW‘f7`´@µÅVM`s€Ó¥sJuS¦‘ŸX³Å²ž‰õ¹ÑoÌ»(‚BàŒ¹n»ÃTg¬Ì¹”&6ã현Êf9ß°GkOÅaïæ½ìJæxIiÓVk@%°ì,·Ê<¥?MåݹøuWê‘M‚‡¨|ím«¹8§T»[oVªæ„ãT§ËÑÊ÷$.Œ{ ÍrÑðÚß}¾ÅkµØ ‰‰ÞßûÐ"סåÐKz))ÎN4ƃW%i“5ç¼ .P—9 ÛÙíríÝ{¬ú¸ºÓlI»MCî²ØŠËp\ç€Fœ»l&K3Þ˜§N¨[_^ËU±kcce Á|j1,iZvxóɸïä?ƒëàtÕ?S^àwÓpœ“IL dx“Ã}™h€¯ò½u …ß A3fÕP•ÝË CUR©9IœáÌïMoû”|õj,$Oéh8É?訨Tkzƒ2ßThÈæoÔÄçÇ1P”åUšË ­ ŽòVêTªœ,\ª“i†f Õq†ñLo5{kòS#(ƒ×f7—tí¬­mƒè7q¸wpƶ2» M@ÉpBÙ¬%֑βY^›åÚAõp=ªa0ØÂÊÇXèÉó:ÊÄB. wÒ,:ñw—ySÎðȲú€]N®]£ÊÔJEÃIÜ‹kÐ`£š4{JÊ‹ƒ«ñ— ªvó¡”vugî1p´Û»Sñ?rʯé+$Øø«;ƒwŸlåÌöÜKгÃõž/-ÜïáN–ûÕàYòh½Ãå9LÐ{ÚDÒãxw(¦äY8š‡XPÊ.r»×ÐP09´äöÝn'áè&û7üÞdW?æñ>Ä6À 30œw…³ ¿…·\% ™B¹0ŒLÚFS®Á¨e š÷±žú_FŠÐôH8›=‡\‰f'ÂéMÀ‚­ ±[}ò±ÏœXŒ¼B…WŒÊY…ß¡[ÁwzSeÀ—è Îß¡é>S—Üîà±ð L+{IYé V 7’·žEOÇ-ÌÍŽçgà4Ò)y]Z«Õ^²ËÁïª8PêÔå6D ál)“픂Ù`iêÆ8µR—dÔ¯"ï]¼ho:Áç>(†¼5’ÕÙ1€Úœì¨?xißǶ› ú@r?3x0úuì€OïËf|™d—åÖæFÆGžt”c»kB@67#ÂÀD|±‚ÑKèYIaFH ñ6þ :õ•Š Áµ>‹T™t™@‚ÏÏa¢¹bGÓ½n·ÚˆödÔHJú%œé 8hÅd??Œ)}Ê%?šìç{¸Ñ#´>½5Ð-ƒk°ä(²š‡J¦"Í@RN_<ƒÿ€ûY®vÉéù†t3?Ño‹Æ·O0 ½Y{H$8)ý.®—+;×54ãúØŠõpža»ÑÀOM/ØžiV·ˆð®'¢}о¿¹YÐÚvÀ~ û ͘™» »²JÓJ̳ÅX5P3ÅÖ‹ŒÈ™é Âÿ&Úp‚;„Ñ.ö-úÃ]lÔ9<ç÷ý±¾¢? ³¸¹œ’0ò#ÑxÔø°›X$÷XqQ(ŸÒ·ìÀŽ+¥7¹z)°}š–7è"¯vî­XI¤§PÃO™>…m}ÀCÔ@?iët4†ÜÜñNõJ0¬Nß°iÃ&õ*°„7FwmìÚt.ý3p¼[ùÞ~* Rœ‘2Š7èH´îâuƒö¼6E“Êž ¶iŽD¥R(%¹ñ H*-ªæè.{GSSk««âÄ †å˜Ž Ý|¬èá³ï¹3ÈCu5í2ú’%ûh6îCÇHTî~ž8þË6òáÙû®$o ºqã&î÷üw9üî£Éh" x ·~ÏCÖT8ãê/5ÎcüÆòr;pâ:_¯4äîÈãÏP«¶os@l«æ}jç ^Õ™‹û¯a_Hª^CùzAV ÿ¿ý=÷nŸA/ yè/ÿ„apäÂàk?ɾˆx_Û½¼å-,!îý# qßëaS&ÿÇmȆ_ÝþYà“ðÿ…£;ŸwšQ7S‡ôYc{êÒÕR}~ï‰s¿¢ÐV´PÍuõm :‡²L µF”%௞\=C°uG9|Èa¬(Äøÿ¿š€Á茧ØÐ4 ßö¨ú¬ßUÿïgò6èv=Ù¾¯æ8袠ÿ¬ëˆËG9ÃkëäÉÃy /“nn $¯t&E¯NHZ*@¤·¾å‹£=8ŽÂÜ/ñ]ñ\ и—&¡üË$8îô‘ªŽ.ÁÎÚ­ÉÑ|Ë#Œ‚z;Þ²¾þòw|Xýè8‘Šsy×?ˆZ°("jþü?½véâçß§WµިTÅ=º«¯ûžg&‡Îrúuc€§|g…‚™å¼Mž?[_q쵎Gή< ¡Ð|Fåyn0ªò©¼€a*¯ïEfAÒ‹ÿºvcÆ‘WiÁÑ4œëñ·Êãoï'²S÷òëžB}9ÔQÕ¸>–å—¨•K&üçÖ®w_;´ïøz0ëËGêÇFûã81åÑMZ Up. à\î’nŽ[±íÏ}ÑõÕƒ (‡sq¸¥"–«K±Ãž Æ‚ëHF?ºF»Ãb£?:G“Üû9n'N€d_²øú7Xü›¿ÛînåáÖÄb¶íLk’ F½*©~Sù:¼wLØü‰Ñ{cOÉíYíúò?ΫÞ^—_ŸgÏÀRhóªä…ámûõ|c ¦2ƒ5·4Ç[ž™qÓ‡s6V§ï«.ÛåtðO¦¾—{ÛúŸüv:ó°¨] kÛ_©^`/(ɰ¥•ëp÷r¤Ûõá¥J‘•_& Ì3u²÷wãÌ£/ÕwÒÿ¢! “ø¬= +Œiàõ¾~P³cz*Q §wÝ3QÔ£ßþWwù™Iì ¼ÚGG}8ésh .÷Î;¤ð5^ý×™y¹Ûõ §Wkâ:ÒØ‡J2‰^¡0ð'v«OA ª Ö¢LÁüB£/nrv*r(îwó"Øð¦w€6xDæ aîÄÚÞŽ o`>Éç1 ÛJõ2"”f]õ”Nw3FÓS1™Ëù­˜ž ö¡Cdäªõ‹¯:ùÚ7BVÊ·˜ŠžSõXÒºìCEÚË‹[WŸÛ|$ù„ö n°ŽWq?Òr\íuö<_GÅd«¥¤Ê÷T-ÈÚ2½/Lzæ “A‘úø00ã>LCæïsÜ“0ÇfXÿ˜;¤Y}ÖAfÌͧ ™Þ ‡w…0ÃýªcOmyËø&[¾B€.ßÜ;îM«3_u쯶b<›­z¹ç#¦ÉÃ'ˆPÁùlõ¹[¤:‰ŒŸâJ®N) äðâã'ˆ‡’Öˆô¹y@"wjšm;‹Kkùß7°{¦O|ŒÞ<ûhT¼]%í^ŽUË$|‡ˆæÝøüBwKÓ½›ÁG¸ ÎüŽŠÎØ&âKd©ë”JmHk©«­p”òËÛ‹KlõÍûªê£îÄu’ì´I3·dj±0PÜëop@#3LôŽEd@›µcó&(¸÷;¾rµ;ŠWç–Ô—4¤6¥‚“[˜¹‰¹H‘‡æ/&ñjqMqkZ£¼o5¿ÐT”ʬ¦šËz 3¢hT-i e'³Þÿg‚‰ÔL棹E&`ÛCRêÒÚ\ŽúÃü 8ýwf¡0³0µQÕBpf*³U”î.k(®*‡ó‚[pøÚ¼#êC Œd&iùÝ>ÂHÄÇ¿àI>stream xœµz |SUÚwBh¸(V¡pîe“EYDe©lB˾w_i›îkÚ4iövxñ{ŸxÿÉÓ#D#¾x*è©»ÞUO/fñ3h¤rÔÈQ§}¦ŽæŒ>$H3cŒyÌ_Ǫ|ÇúöEãÞ÷Éøög?ûß¿û–ÑÙ„Œ‰þ-“Ô“ŽOúl2orìä/§4<÷ÖÔ§§Ÿ¶nÚ_§‹g ±z†žÕx»ÅàB»\ìêJîY÷S<´y ‚_VGk¥:]6è(>ßA×B£±\Ьi‚c#&›Š Â!¹žQê£ äû6S¡­ì:å‹2ù¼Ø+#%/Xš™y…`¤Û¡ÓØm°_ÓêyØ\åEro×Xë´L°›¯sêŒbŠA­PJ©8ÌTã;^8‚ïÍž•:ÙYN.Š:ÖŸç¡l´B`rš«L΢ã /k,®é¹y ¨C†ÀôõAøÉÜ0F£É‡t*¨!êÈW­h†É.…´9jZž˜8c#P麒âZ{µ†©<Ù…†Âê£-Î]‹vûgJhÅј¦`ˆ‚ŒTq|f˜$´”̦"½Þi¢Ë¯UuU"©X“©3oà“Z¥N¡ÔšSYXf©°Ðýåts]Üãî+e}h!ò/´×ÔµwÝ2 z;@9eS•tÄkD‘Æ}žª(Iµ¤6‘±èµr4+Oǯù.G»A¯¶ƒ^–ÊŠv#erèË ƒ‚‰€0M8yEôà+$¤àv(>U K³2ßâfŽe«6köi…ƒ`ª r;Ý.c#´ŠÍ ïú>©ë—0—Æ—øb)Ù–*\õ­­:—Áãû:½|þ#WÊWïÿg”2èc>š„†¡a?^Ý»ÂÆà ø¶?ãÅl´ëÍÌ5Ôê…Þàe~9éù%“ñÆ›µ6Øk¨ð5#—à뀫/ág°OÂS§\\ÿ1z È‹§ÑØŒ+á‘®ëÇê¯ùÓ~þHÓ Ž6§M‰õgD[vîêÇ&@î—xîHö=Ááw:ªŽØ<ðWPz°çÑ)¨I†8ˆ5Æ?¿™)Ó+A Ù©‰Z NÀ•¾3ÑI¾À_}P_äp@E¡ Ôô#ì#Žýa»"ÕÂ|?5¨ JP AŠç«2%[tše:*×S+™Ô@·¦£5ÂçB9dÆ%B™µðˆ¥‘)î^*ÐèÍP@tV™VÒ|ú­eÁW7–î!ű8 çáWþ>Ñh;â¢}Gì2P)¤§™x)¹î Î?&]¨Esï !Ì•/¿ìý¨ï÷¿ðR’*4Œ‡v£¾¬€&ám.4³&Öÿ=Þçx´@'ׄë¨|R4…Ieaê‰<5@3´j\?nG¹;Àl7[ê J™ýhª%»6ôÉzžDÓÑŒ¿ûõß#bòÎ&ÿ ÖX ÌÙTµõÂí·ê±oŠ IÄOŠÖ1yÉÁ~;€Ú(»o5ê+i,7´²ÿåâÞqå¹W»Ÿ8ŠôV0Q6%dÓ}cùi Ó)3·â5¾:­VF˜)%d*Ô›èÆ/:ï£y„ø}Å}ÿ¥R’Êå ó-PJ³SøNЃ¹ü JòÕ Š@O‘* »Sät$3/ Oã{»Õ=è^ý1½qC !dê'¶œã£h3ŠAihòâ¿aƒ/ÿÕn±µYô„ªßðïÞÄcDØÁ4fצ•!K€šò¹¼ÙàŸ€Bœ+<6Ÿ}Yà©(›Ü ‘FE'ˆé¼Æ¤¶Ýd‰<üž‰§.èõ»ÙÕ^WßÀ„ã¹Ò`zN(!«È7k,L3´[ˆNì×4ÿ#¬ƒ‰üL-* ½°aÉ öÈÏ6s¡áåÝLíùÞc]`…j]y‚]lA&htj­’ôñb"Gç\¨¥•ë^ÛÎs¿ŽòzƒÑFÊèÈ )cj>½ÓÑkñ|²FïǶw5x}Ê¿b'*t9rZ­4áœÙa4”Ðo£ÄÍ ó@-Mº’Î\™™¶¨ÅüóHgmñÔQˆFò§6~e¢V¢Iat*]¾ç-((Ö”èjäg¬SB:û¢øÙ2È’X ò Èóu Pç0x\_˒‘dSø• ×[J(ov‘´ ]½]B˜2ã9P  >4@en´T *Jbˬ+w8±Ö±ïͨibZz2¼bßè|M–F«8ßRÛÃ.ÔKjûZ;]E¿|Ì¿lËIÌV‹ÉCÄ5Ôƒ[%Ì®0õ¬@ob‹¤ö&KEg­'qXÊ¿„ l8ÿïθ7S4™šTF'öúÅZíþµòè^'t;¡kz<e+$•bFÆ_Ö¢0”Fž)u¾s;rÌ9êÖ}Åi4ê=7Æúü€í’õÈ`+›¸dJÚFÓq1}ÜݤÃ+$Eé© ÙÎD½žï@Þ½Ÿ.-µÑ>ß'˜£¬ÇÕT]¹Sß. wбjy"È(©9»¦¬®ð`oè5xxè ÛiŸàµË¹ ž>-Ns¡\ûÜ ä®FsµÁ~¨"”[Õ¦|&b˜Áh ölE. ©J+¿ÊtEº*U¹ ­¿Ì1Xñ%üv4½ ˜›IX•m’%ËÒIH Çó½ð³µöþ Ü©S«Å+ÜÙvâ¯Ç#]è²ätÖî°76•µ¥D- Ì@š½àB­.糬ÀÚlµ^ªÊ僩)”8g„ÃtΟiÞ¬õÂõüsH9ð¨ð×?êI&ÿØsÐe<Ð¥9àyÈâIH ÈØV›§áŠ™÷P­ªç¯Á•¿áQ=Xú{µe0À¼xÍ=ÏcíìxÁLXe¤ò’Œx…H®¥—ãUhó%ÂÌQ|Pù‡Zη|^{…±V‘øWAÛç ž§+Xo(. ­®ú¯Ïåph’Rd‰¹áL’_Ò2ØN½tFtêdkSS ]¾õ ²Ú¡ª¶ÄUÞQx†° .MIçnÎ|+¨$¨/Ć 8Ò;lË"ŒÙv•cˆ4L„hB!‚¡žÝûÝÚHª«%úÀàgûºäûòå«A˜žYR‹ÖÒÏè.肃šÎþ $™Œõ`q£ì/Qð`‰æœ/>æå±2v„ -Ï%JMNM•Xf]“dŒ%cCÂ\€‡m•k9ÓüiýuÚTj.ù•Õ‰[á{¨9—DgÑ«½èÿÔ‘äâLs^þ›ëâ>ø–Ƕ’Øki°X{€*!$°)r†H®&a1ȳxOžéïûB~žkçx8¬ÎÅT_¤oæ›ü¶E×Ê» :!Õál­­Ë(J×Àk«N…]zðåÍ/œ„ 3w=÷<š}Å’m?ƒ^(téKIã^ÙæªûÀõm©0ýÚmîÄÏBOb¬1u)Í =š2»ÚŠšŽ—Dv&ž…sÐÝÕô~Ó•h6œ¤~©Æ;);4m{lè^ vŠ»ºmúÇ!¦½jvÚ;‰ØxÚV¤H$m;ÎÇWj£Hž@¯Ÿëó!úÛYcW{zÛ¯î»+¨ö1™‰UĨt´OÏÁÌØÒØñ§ÆçÃýp¨ªó(u Y{ðFyìúÅ[@øOÁ‚:T»=D«Si•¤Ê¶ž¾àîà±’wÐ[hVuÅ•wÞ5 ­z»Ê(‹Ú¤ Ó!Y“ ÑaŒy$$훘b]¡ŠˆtVvŽX‚¿Ã½¾·Ñõÿߢc¶6›Ê™641dVÂÍæÐ+ÐI<”ó°ŠÞŒíÐDæýÆ~Ÿ´”ÕÎg¢ôy–< aRgñ”t§ØÉ=y»ÇcEìó‚0D’,û(_ßX(Ú²oW¦ŒN;·Ëš Ô´­xljw¾ÔÄÔrâ@'P©a)y»ò#i¨N-Ý+^›¾Ä4ÙÅMV[-”PuéfIrrú¾ðîÔÞ#-Met妣Ò: ¾=ŽÆU¢/V1‰/ï *#±ðDã µ•qt—\°¶Ÿ¨û0¡Js©G‚€"»¹hØ;(ñ=:ížûcT%ÄÔÈt: =]ž§“ê S(%ƒÕƒB¦ÑH@GOïctY(Dv¯º†¢áèy4Í3ODÄ¤ÇÆÐš>oAò¾ª›‡lmˆÏXjÀPRÙØÙÑÚñK3ƒ·{Ø` ±gyìö¡ÀÖf¶ßÊ>à•R"ŒD 4{ ëCŒa¿®úcážYAo.»…b}A_àðÌ $håé4™ :v^0¦ðO6}<Âgá’“wzì”J©sÔŸï‹Î—œëó=r× "ð¢eA;ÚÛaÒ“¸©g\¦Âz(¥ªÄެ¼påæí]1o?üâÛ?×Òbi½Ù@ÍI>éD'\\6 q[?÷>™ š¬ ùj†  .ý f)Õ³·neâE;SW5•üshÒþ+ŸÂ êöëWñH—ýêv8çý—íp•z!¿û„xE®&?w3#ݣ΅LjÙùØ‹÷š¾·Z´f‰D§ÊÓÐÙ›ãc《×Ô7×kŒuŒ±Útªàtt÷Žr·0Þ…FŸ>üvÈGc}XtMiöó¢B01Çá¤ñ8œ€SšãƒÇ{•ä09|1Ä4`T@1ñ:Òúƒ®&ª¿v·h@J_:{ÿ$%M–›>Ž‚ÚU—Òa£ ÖäãS´âprû!gK…ƒvvŸãcÁB²#sUP‰ÚêÊjKƒÞĘª@Epůþ-[uqUU½ëÄٽLj>X¤z]ˆB òþ)ËÙPÞQ—Õ¸-8$,†Þ´F,ŽÎö Òöc=÷O79hÄ“ G‚ƾ4æaÖ7 &ΙÔö-­_8MÍ&'óvêožO_è#…4 ñˆ{« B1hH=ih"änA7÷Á¹ßX÷‘}$S©2 G¸m䑎ÊúÚ"º¬­øÒ`YUJPihEr¶_fHJlžÒT¹'’ÒD¸§ñÜiìAç{mŽv£Uïð\Í´6éàÕ©‘QôãÕœ¬:¦TW£ Á^"ÍP+pw_†ï¶Ê«é¤Þ^<0©ièHÓDüt#«¼•;fÈO60çúú ™zU)I¯êD4Ýg~ºßÞpmûù÷Q0V5;xæ*P½°#'Q!Òæ“4SôO×Îè¥g„ÿôÐn]÷6VîñÛO˯n¯ص/fïÿÂ9;ÃnôO¾ÓØľ:w’D±FÅОÇN}=ð¶WÕºJèÿ÷IÏ-ôNÿØi:Mc9¿ü«Ê?]DÞ l€ÃšÚä |<Ÿð0ç&~’1µ,OL¤³fy­ýéäùÿMì–í’îÊÛ%T$I¶Eg¤“”ÿCŽÛs(³íóCh*z®¡_ž·V¥£«F!/ÄKªó8à®AÎk;×í Ë#«5¥1*,åèiôz²%·.6,9Z[-«ª,u˜Hiî=VšY·+=¥a‡œã¹½Ýó=çº .¦søéý7ˆùѾ:>ØuµáeÉŽXc"à%9-/§~¶?üßù{¥{¥Byœ'”ª MŸWö›éÉlýCšŒ&ÕÓÐ /”ö#Ð]AáÅ’KºÊŸ(î&!ºj3“’4-(™É˜ƒÐc<‡ WsèÇCoˆ9_Ùz‰>ͨÔŸ3lúÏÏN»fñŒùèÙè¢&4‰&¿ÏC3?ûäF—«Íþô‹ €¶ôÔR<}\›aî¹ÝFt”ç·I”*•’X³^K›ó $G‰"'nÈ“™.ßDÈ»ëpâ+ø¹—N CRB¶û-”úžy„¡Ð` ñÚÚP¾¿‰ Ÿ µÙuY®´N’„†õ¢åŽGGwj&74|õjH€p«¸ Ên‹)1"­®ý·wÐx×âÓNî×®MŸ:¯]wžóôË·‚l"l2+”1 üŠ3ÚÅYùÓ·û3 1{“a'ìlÒ~pP]Ô%T©´4u‡Ö?kÕÿû$†ú¨Pßx½~Øvæ ¸EÝ_{t)~rê¤Ñ¢ööÞ¶cRWžgç½Ö¨¤õ:‹r¨˜ØQ†²¢üö¾i?’µB,ÃxÑÀǪÐü¦ª&öV%÷»œÇÎEÛýó‘ªKÑkâ•IÙjZ#‹ÀÏë”Ëëº$"{¤#›øbém‰U#ãt ô”gX)Sô><2X‰©Wñèy~jB› bJm‘XÍ%…Vm³Ú,g¡*¡MZ¤ª‘9å‘x†¯Ús¢«¦ÒËTöŠ"Gµ™nGSÍ:+˜‰^.*5) IaA-c²ÉýéD *}õ ÚäDô-îß]¨ë:u³o Œ½^O‰ìš Eµ¶’ 7ä³K,JƒF£ÖiUL`F <‚ Ü.*UÕ5y©V©‘¾ŽßñÕitrKQÂb0Z,ôñsoÛ K*£·nMJc‚¤EOÙP©ûƨ3þS­Õ•’âÔíÊ€Øå×|‚F“Ô<ͼt륽¡Ù¢H¦¹ì$ç×w:k¹hÄed¼ÞÐÂC6³ ïBãí^”‰„ÅNH)cly¶ 2©îÆÏf„'í Þ T úDPýyÍ»½g]N9NhQÛ£¨ÝªPE®5«®µ¼¡ãXd£ÿ¢¹›ž[Á,À#Òð|𣈼Îò¤wa&¡ç%~½6‡ô,¦Š­u¾ÆESØ4zžÝ,Pz€%,°zî¢ô–ú&zî˪ý$Å™e ¥¢RU”BIA±e*^¬Óî[3¯Íœ@€K+—–°5·ZiÑ|ΠgN ¡½WÚŠÀ0 ½J•4j:'#rkdX(Ó@S¢iUw¨›B!vÉ7n©>æùÔåùìT§ËUô/²Áýt-÷›cßF¯-éá±QŸàÏGμ P·Öuûá!Ó¦L‹*N°Kh³\¯ë z9©…×¶yHCy>_՜ߜQO+-á­©•ÔäÏY%2'ÔPïÞ|÷Óömœ„G®"š¦7+èrì+¨M«Î$/X2É‹ë‚^ºqö³?XJû?:Ù)µÜ‡mu×QÁeû:+Hš˜ì´9=i÷öõD b,’Æ#ÆN2ËË“b²DQÛz/üñÞÝ÷ÓA‹‘¢ê½€Çà±ØOÂÓkñP4ìÜ¡ÎÃ.û®¬„ÅMh|Ã1¦ÐyðÊû@/ݼ"Ëðï %|ïql.æ¢m˜ü>Ö篿è>çï¢ß ªÅ• 1q±q©¥ ­®f—ÇøY¦ßøÉkŠWJÇøÿÆ>Hý#V®Ù*ùÉù+Ð3èI4¼JÕüÈùËÊmv;íædW8PŠ¡ÔÉÇ!Ža®'®>stream xœ½Vipç^!#6Ô˜BFÈ®HRÆn W˜f8JJÀN5§Ï>„lË–u˺o½²V÷iaËŒlÆøHŒs!!$nI; “^“i¦“d¦í|rÖ?º¶stú£ÍNggwvì÷~ïs}/ K[‚±X,ÎÞü‚—Ÿ›[ŸZÃJ­]’z‚ tÑW5³–B:ÒÓzצ¯[¨U¨~%*ú!Æf±šZõ{Íra]M­ˆ—]•ÃÛ²}ûsx[7oÞÎÛÓÈÖUU4ñò+DµüÆ óÑÀ;&¨ªã‹ä¼ì]µ"QóŽM›¤RéÆŠÆÖaÍîœ Àû F#S—jIYÛt|K[–Y¬¯#.Ž"ýžÞEP¡ wÜñ:#NhÂáiw÷¾{u°÷ÂåŽ+€ßÔÖ>N¯P”“:!A7Þøb= ©Á ·[åfB‘_Spp•Ös!î‹{»ÉØè5Ä‚)ü7…—òvç7³ÿ€d %Y©ÉT:D‡ßzëzוpºp—Ù§#š¡Þ"€Z¨¢ê`"ý)sˆ5AEì3(A!— ôNzwf*³xííàÈW°cЉSaG—ÇäÑ‘|8e©†z8Mùf U¢¯»µ /‰§ÏÓbZš›[¦«¶fií ®óY\ĸD%à2\±ôÏÿçŠB<¨n·’míZDÁçtyü.s¹Pâg¢•4¥‘KÍJ{–Á®±ƒ·´ëBÄ SCp -çWñœgÃjh+6"ò[f'S·¸Cׯ“oºüŽ :»A£Eg˜­7,l] b½—i“i?j5Í­Úb›Õj1ƒÍb¡M´?“^…®›‚0Eì*øüaˆSV¿šàÃIˆ:à „¤-ÑQ¿AÆ‘C®)Ñž”îÎR°Û÷Ùq¥Äó-p„!¶ ÎÿçŽ@<¬yc D<¡ O‚tuÇÿà ;ÊëÅ3R_ÐEI”½(NÇ6Âé•\c“ÉtšÑ³¦Þmö’ç¡b†EX\èŠè@&o† ÛÕMEÈ”÷ÕÝ„,´­FO¡§¿<0ýóýEÇ%2R9U|¥kÁhQ’wk¸¾÷7 øHOEq©€fµž Oí*ajá/©†)G{»¡¢®¤þÆP›ÍâzƒÞša¡#â¾Úëµá$:‚¶…ß'Ô‚®Í*ÑðŠÚ 1¨ÂŠI\«|GѳM¦áåðSdìúM‡º ÛtÞЯ Ø;ìU•zÝÖ=Yi%¿úĉ“‡@‹kà€#à!"ñ¾è„€±S’hîPöþ÷÷Њþô »Uc!e…G[N1ý‰=BOUPÇ„ù|Ì|‡÷{–õßÁ².€uŒ–Š.×uU@A?J¯£×óîýÕÉÑ®N2T6*MBœÄ“=Cáw˜¾Ï4›ÐD¨Š‡™ Xz;ÅòR/×Ð n‰+k˜4ÅËEï_;‡–$n’߻̜•÷BÛtV»Åf\:@[m­ùuޱÑ$ã£R@«n–ôçÒiô³[è}OÞÞ‰0ôìG yUQ½Ùj5Ƀ/l“•¾_05Ýçîóô’ÞwmBx{ðk}¢šzT35Ò1yü! m¸×fgÙÜ®¶°T nËƒŠžs===½~.k”ÉËu]‹ªäxy’?ùo'¸º¬>¯ðVèñ÷t ‡.’¾ ô¨+âî`"-„Ôä”ÓkäßéüÂÇ|1Àƒ!kƒØ 5HÈ t[—˜}„ahéýï%g£Í`3ôÊ9Íצ}yJp½»Ï{ã ½Ô×tXBU¤ØÏÿW:2¾:´èÝYÙ{ìTÕ¹&±®Š‰Áÿãd³»èTQ%¡øb¨¶BÉ!Q‹iº°»ú7•EnGn;à¸ô`d0èOL26öŸ>#26›ZH“D]dÏ[Cš˜Å3è³ûìYvJÂ}M£³ 7Iè´ˆ=4§–>/â“ÛPêOåß"虹&®8×û×ßO#yÏ]2þÎèÃO﹯߸ã­kÚKž 9¹âŠï1cKU±:Y)÷ì*®Ãéð0Vi·Uz&Wµ¿,ÿèÏŒj›Ö2¼- ®è jhš —ÍUèkMº­¥â(Ô ¶ƒ:JŽÁ$5ãpÓ26? x™ye~D"UÈ*‡ÀifࢠŠàÒÎÔ^?juÄ:9ô)ÿ²äò? –§=×™þH›žŽaÿ.Ôö) endstream endobj 2455 0 obj <>stream xœÅ]ksÛF–ýŽ_Á35 ß­©TYvœ(~%–íXI¥¶( ¶8¡H…¤lg>ìoßs|@A²f·d’ ôÝ÷qî½ XkFb¤Œu#i ~¤¥c!Œ´³,È‘‘†…ˆBDÁ‰‘Ñž5²ŠÝÑкTåFNrçGÞpFÁsÔK!83(Y’,±½—(yvðz$¥å`è&•Hµ˜ž’©‡GIK–0žVœFP(¥¾£Å«Œb4çp5c8Jà" gÐ×FŽ1gÏ”"GÆJM¤w©„Q‚äÈ3Ž£DôˆiVh,£ã(1²„YY‘c°,¡BØT—$ ¬À J+–ÐXaâ(a’šs¶Ë×X ²’KP%61©„n^¤.K4J^—¼ŠŠ#sºÑp¤vv¤ƒNí0^Œ©äGFÍR@)röšâfÒ¢ãáШ4X²pá…î{Iu¡r¢Äu`â^&ÚC˼R©oD‰¨â Ž>é‡ÓE ã9bÖ€–…’y@ ãyŸz`¼@¹w¸”{¬uä£J#ÇQi<(NHRçÀ€¤ÎAC%uþVê ”–åF!‰Ÿ­1.fëG‰iL)j™êp*k(¸‘ áQ‹Õ©d«13"Ú4F‘R`Y•ùyy>™No3Dü*í4D€AƒÉéxo|>¨, SèöªàT}þüy=8VæÅtr^Ζå2/gùåêjúÐ^BBÈè£i†áÿÂkÛã“Þ{~‡MçØ#*Bô±qãBøÏ«®t÷VÝb‡À#× Ñó-[›sÿÁ9hiÈÜu¹˜¯b§ÿÕ1Ï%Ä<½‡¶4¶¯ƒˆ¹6ývð&wÜ% ;÷Zj›¸0ÐÀuGû¹×áv ÓÛÁÂçô‘gŸª¹ÐyD¸ë”Í…rJÆŽ6OîfOì´º™N®s„O‹ C§ZÓ7-s`*}•a ”‚B‘Ï;Ä4Fį¢ô6çž…vUr9˜‘Å/âêÿÐô-HøœÛLÖßœÄL‡Š ‘.HtÎ ì ƒD€íœ7C;hÛ%½Ês¡Fp–íP­P@åcC-cD|Õá·övpöE ;”’® f;¬=`+Àqâ}ˆ'hd¼ÅxÔ`«NæŽQË^‡àÔ×ÁM¶¿‚Œ97€cK”z:XO‡oè|¬ŠÄŽÛÑÓÁ@´ƒµÜmØn™³Îë¡S¢¶^ ½‚*ç^ºJSK0Apz`L)Xi[AK_寀¥ íÐ=”ÍÀ/R‰ûù;XýdÊi‰EìØí¢mTUÚØKhª[´÷Á«ë3îwì¿uº •?x­lv •}zµ²¯ƒTÕÖ‚žm­¼Ïf³ÏE ùv9ï78ö¼ i­Ëé÷Hho¯Ç‹ñ§Iù9Ÿ/>òIú¦Ÿ âÛ:Ù× üÐÆI*qPCÛ+ŸØØØ’ÿžpx¸§Z&¶¯C/Jôu€ÇÈ»{²/®èxZ™vVVä 6ñ¥¢ÛíA·jëvþÏu9-?.&³ÍÞýƒE—ðNEu“A„pqV)è–¦Ç-¾çäÑZY°?ãú‚¹;ÒZÐw±;ZKççÎ˹#è[®Wõßå—ëñl<ýk9Yæ×Ëü㿚2V ¢a RòC׃<ëCÌ¡ë(‚Ô-w¹¯½¥âh)‡‚…T4¯Fx¿3M.Üæ ÞÑEsGkÔìpØÝÛÉÁ‘·;TpA˜?€þ—ãéîF¾Òy _æ¡¥ÑiL‰ Ü„SÏï zÂÀ{Ìì Ѫ@›¡L XÕò·z:XnCÇ bK¨û:HúÆ›–½ééÐïY÷uèõ¬û:tyÖ÷Ä€ø^{øÝ!g¶Ãö¦7Õ¾q¾\æË“ü|~U\/æÿÂXËb2ûTÎVó¾}’ûK£ö@tUQG{ñ “;DjÆ$p5„Ê›~o£¯ƒ@@/D[4°fw†ÆËòé|¶*~üñç'ÏúÇãß½—¢à©'åò|1¹ÆúS&û¿™¿MÎç%é*ªS$ ›gÅÓÉb¹z|9^Ÿ‹çãu9„â—ÉÅêrù3âF‰q“­lÚYìýËÔ¥z&Hò3¤Í-m³”iœFÄDùn†Of«Ä$®y# \»¬è˜È°i™¨º=øe2{4[N¶ÇO&>”‹rv^.Ë@©Oå—U9»X¢nZfÒÁ£vZ~XM>V‹ÉÇKe&ìjW×µÊÕuæÌ®îlU«Û°¢üR«(¿dAË›««1o0áxEῸ9_±œuÛÊ‹Éòz:þë÷=±ùîøçã÷§›×¶-4¶-4ª_hŒØ j+5Ì籉ò;~1=mÈgÍHš¥!"5´Þ[ /%zkÒât‡œl ÷þןŸÿúã?^N®În–/æ³çß¼.?ÞìÓéR-ê~j]£¡ÝÑõhé<›uµºÃçÿ¼í;ûÿ™ù}Ä ýöpÆ<4ÎèXüy3_•Iï÷•øÑ³gožœ@‰ß¼ û˜ÒôZ"hûE0†šÊø3”åb7¿›¿ê8}gÍz”î«]/ŸþòúaÉ·aIµ×ãÂ’Ûõ˜”$íŒe¼²ùˆ½Ò®sM+1F%mFf¶X_‰e­ª‘ùu¨ê·ãUóÞªÊ}©üÝû§ï¿ûT†k!W™}?™e¬“YîÈv¤ca?¼« –ò‹OìÉ8FßG4®°•ɲŽÙÔÉñá§«VÜMdcV3<¶Ä•3¶A?Åìòªkº™Æ+Vøvû»™ç½™?Hõ!¦•2©–IÓüåùêþ.¿ñÙCðÐÏoVe¦Lq^^L¦Óñ>Žœ?~wšp¤íC¦„Þ–DÄ@âëQó”m}Dë{k:ZßWž?òòô-~rÚå<‹Öº­è_wà r›eg>¡¿­¨ ½÷-ñÚÕ´j·m¤w‚žÃõÕM€¡#pI›e)lÜëÅÕdv³ÌTqu3]M®§ 9Œãòx»—Y(Î'‹óiy=e#QLËå²üóf<->.Ê1¦ƒ ÞÖx±˜NF5£Ïz¶Ÿ—ô³«Ò¦Âgãž¶?{õòéË„ž-™Ñ]2sÀw–²®+z§+(amúðF«ÈÔZ$êBdöŸµ!^·`¿ôO!ú°n{õªËlÃÇÛ>jÝw+ÀYåTóÙ¯Ò“(•E3¥€ušÏÉj.úùh€M#d•¯ïÙr¥i[˜|ÿÍA{=Õío²¢œ·Ùþêt£:Ÿ–™î–VÓ&IY¹d[ç3,|2!‘g}Žá/?iì}GÏê‡iY|øP|˜¦(LO^ÌWàI„gÚTŽáÅÙ´’Ö†§˜Eµ­¦XgÑ$Õ¸¹ú0EôHQCè:^^¶âÂzúüh?¼yu6´ì‚Ú4uY7ý²nT·]hF0› ëωº¤‰'öQ«³nà˜c°l`tv_Kõã“7¯Nh©^·v>HÓbÄOßÖ\¶`v› w´"Á:¨”ÚS ÷ЪùžÏ¯®ZnËñ‹gß3X8zßöcUQù±}Ò©ìh²ùãÓjõ²ö¶:—¥'#|šc¸\>Fø–jPËÝcz«(ø“¬¸—žΧ“Á˜Ì»ŒALKñÝM®k |„”툠éÀ­é²º”QW-…Çp²Yæ~rjçTV‘*=9œãuMÔiÒüMŸ–>¼Ë«¤‡Cçç?½~ñ>éS+ÒäCh-Ñ9àðªÐiZåî%:[±I¡‹MTm‚#-câg80s<˜Ä&ÖßÖ!0ñ>4Úº4»ænµ5•Ð9ÇÇ’+ׂÆ[ Zoá(»¡ =¯\m0ÞÁB$6ÙêÄC³t^o¶p9Y,§6ìÙéé/+Þ¶=´¸Õ™[=NÔƒ ¦’ïÕ`œåèÕ[îÏþ§µ ¶¾VZåõ=Bà6Œßøü²Hþd§º+°šÏŠëêå|·AÏò9jÍ,y¸^éµ|òâC;f‚©ÍÙzÅ3#ϨÒÀ· `œ=iP®ä¦¸(§«q¦ dÊ‹ËùVFBq ÅŸ_t[Ž×ïxÝØÄ=šO/Zްm p‡vqm7ôø%½I«Í-;˜½’þk<¬çó•>Ï›7'oß½â¶D—ëö­-wÀûlÚ÷Z¤Ekîs›A ×(§§<+”¤Î øÔGHÚv tÒ$ÏgЩoŒ¤ø¦ÔéPíxФ;èà;ØÇ¹Ì%hgn?W”F0U/±-ÚÏ[!|¿‰Û•9§ÍqZÕú˜ÏÄàÚú½Ù¶¯Â/'‚èª-ÁÅø¤ëÐv 샣ªb§½0¨?Ðy<¿YLÊES~ZÛÉ7NN^½{—ijåBDßÞEu¼O:­LÆw:8ñµ›ÍÍ¿êóÃ=Ïf+›öx=»ÝYÐ.¬%<Ž"e’Æ2«æd“-`ŠžßöæÎÝ;Îyþêøû'Ü\iÝÑà3c-š†45Ý;Ó*íp¥ï»±XýIeG“êΟ æ Aª'„yŽGj½ÝÆß@õŽ©.ã¯H¯"â[ˆLR\ëª1ñ{_ò®¥¾2w B¶üÛCüxóâå‹t›Æµ¹Ô–|/p©Œ¢¼5™òÞ÷ÞL®Êå7¯çWãYs-/¯†H~ Òc«ýÈ}l©fТ±o¹‡–qòìÝóÇoÒÞtû½noÉûC[/5x1Û[{™1{¡˜p\fâÃäØ'ÑÑéÑã“ï«Ø½½‹ªD{ynõõí¢Rð\º‰î¨Íq½Â]ðc×9(:èôîgéC>Í+ÇžoÑA9Èdç=oöUïÌ'^ù|9WžDÜ—ùàx«´œÀ³ ý]OocjG3~¹Óieš¹óµ@,sÁ©V‘‹¯&3|=–ŸˆÈ÷üh‘~ùINŒßsó½hªí‹°æÇoŸþãäéë¼CÒÖ—:`:¤v5‰Ònç-îo^øøà ÆåÎn¦Ó²µgqôãÛ£SúÃOw(l¯1Þž`EsÏœûYz ×O[êB²S•¤&W#Ý2ébuÏ<¦ „´/µN âÞþZ¶ùÎ#)Z÷Ÿ²M$ËmŠ´ç`ýº«^߯vºÚªªÎá(«Ú0&ç[þØ/ÕlÚÜ׸œ>zÿÝÛã„Ê ±Í[ †[ÔÊBl‘ö ×q÷zžö]Ðñ`רq ˆ=¨¾#°¹;¸±9™E9-¯ÊYÿM¾}{÷Ó¿þð”žMlßÛkï…»½þ'=f¾W,$™½¥µïnáMä¤Xä¹=ëÖ¿Ts³=¯Ò6£]Ï+¬[q~Õ›÷ GÔ¥ô@NmÎñжúÜÛ]{~üní t¼½ø9®ŽirÛ·¨Ô|_½ΪþdT~óÅš| š¹³¾]ÐnýéðåøªìÈò=:šùMŒ¾‘ž¯Õ7E/žNÇ—#“–ç{œËŠÇãëJÊz:âè¬I³âx5žNÎ1…+(NVåÕ»‘!+^L–LmM$L7L ’õ¤\ý­#ѵž»ZOWmå»6Scé®WvÚe´¶ÒY÷’_©¸Oôy:™–|^4 ñ~Fì†ÀÊrÿr‘>­IÅÇâÅøKý¨NJ× %ê)GÅãâIñ]ñ´øžO'?ÏŠçÅ‹âeñªø©ø¹€U*Þo‹wÅ/Åûâ´øµã+>l5ž]l3NŠ1 D: K*þQ®¶§Q®*΋óùt>«v¦ÁØ‹ùtŠAšü-¿œOÇW 6Ü$±—Åå_×—àê¤øWñG1My.ÅU1«Davsu†¹N>Ίy%Ý’±Þ!ÿ³øó¦\R—¶)µ-´bQ,!CW“jÒ;iJ·^ŠÕFª&Ó‹J¶nŠ›Ù.>_”ŧâsñ¥ø«øw—ȹ"×Jsݨ&ígL[uÅ´;I“².iép+i¶Gμ¯‰·bvbV54–gvbkbvŽNÁ’EñioÝ~àº÷“a·ˆdb•¸C$­zѼ†F&ö¢‘9ˆF¶©BÜ5Õô9M‚x ­’¨|‚ltÈEŠØûi¬[¥w¥]ð¶IÄÉ&}L>¢O,¤ò‡é£ZC€9®ËVÆU6O RÎ UbÏ6xРïFí×DNdN Jx¯üM¢í_]Ô©ÛN ­ðÝ€J¼Ë ø^dµ@]Ó:ÕÔ:U'°ê@_‡wf~Öô.5hÏ3;KY§ý8Q“ôûBý±%Õu"ÔjC˜&Uª §TigŒ6üÞhÙi%_x'ú±Ã07Á´@§áŒýTËeldCö›¦]’d#/²–.™©m’å­ä@Zµ%×´&–äS±ujõC˜F)᫨¾ƒÐéì©íÖ8;hí7Š½Í¿k9UžßÎH{\;Oÿ&i,aÁt·{~ÀÖ¸Íî“”ûŸäàÏFº`3µðÞÀ‚ú¿RCAþpBâÚçÔkŸ“¯bÜùœuPÚw:ý0§SÈû;m‹°·c>ÉJÚ Ðy ø?4y»a5ú¯©~Óƒjz ‘[Ù…Ûè2šQd¦‰°= &šÖ”‡;ºFs·ØgK.ê^¢ÇÞ‚†síÔÀJP¬¦çÎ:o£‹.ìMì`ŽâЃҷ¸Oî ötáÎxO*ÖîÀƒÀÚÏß×âm\8\k‡F‰­ôºµž®Í$ï>wmWì¿j"¿áTž‰ün ìu2ï|ØkRiƒkã5eö24†iç¤íKIþ v®Ë]ul¡ì®[ÜU³N”ÆŸÖdiJ^ʲªPiîžW7>stream xœ­U Pgí¡n4]ÁZ·gp1x•²nˆâI¼q•ÃF˜†Pk>Žaäa`&È(‡ŠĨ›eCtc6±p³YËdÄ¿õg«¶*•T*»[©Úê©®žª~ßÿ½÷½~Ÿ€pw#GÄ–¡®‡Ü/Ü\7î—$`ñ‹+Ï#=À‡÷ž¹Þ[g!“J™‰¢| R gP¦kT)¥jQ`RhiXØÊE¢eK–„‰VË%ª”$±B´E¬–Jäb5ÿG&ŠR&¥HÔQà*©ZþÆâÅ999!byfˆRuðÍ E¢œµT´S’)QeK’Eë• µh«X.¹z qÝ"”òô,µD%Ú¢L–¨A¼¤P¦«2ÕÙbMR²ä 4E&YBÛˆíÄ"ŠØED1Äb/±–XG¬'6›ˆHb ±•%¦3 †'O¸GˆG‰à–›Ê­ &íîaîu¾*Ï·<‡©ÙÔvÚ“¾áåæ5ÓÏàƒóµ ×’‘\.ºÊüI22/0>"³€-{â‰_9ê‘JÝ=V²Wˆ›©øx›M¥ú*û¡ºàôé‡}~å Þ.€óB´‰úæC7o6íßÌbÍwg+´s6A÷8:?Nrz” ¿ùˆÀþØ>&°ö{„^BÌ·O‘‹ ð.&ÄÖ,§ê¬~†áܰ÷YçÚàô©:¤âòhH‚8Ã.¥8=)^“4Ïïv WmÜ\»‘cÈ>N¢f¼‚™j7ŒØs±ø Ñläö”?ËoÁ×xzòŽÂ˜=Â[rÿÐX*NHþ™pÎÂtœî}èo¿Ž˜Š}C×4œ&,hrhå[XÆ LôóÇ"’?~3:ÄÀGvD<©(Õƒš–YŽ´YÌÍ]Î4[BdÂÞ¨l¶ìO<ï'd?]y,p*àö¤”9ÔCÝI^Ë•…6ná s•ŒˆãB™f¨Í×ê!/5”é¡ PZ•W§¨‹‹dáû~Û«¨Ô ÏÈ;tw Š>>è䌸Š÷/糺†2cÐyP|Hˆ}©<(l¨./o=Îu Fãùăե[ÿ胊ßáiíÂ⊨ZÈL±f8Cw·Ÿû+r7†)+Øòb“Þt3˜ZùF—òCŸî@¡mä6†æÚI´•›Ç  B›ežeK…èiåcl¥°×cÍ…;gn|Ä^•ESëe$áófvw­Ð̽ìpÛÐ'ŒåjOCo9í ¤z$BÄ‚¬’—&•rj²  Z]o'£?öF–Ò¨†Š9'NB ë öëcádÃ>H›ÂÜciS Æ_ù›W—4B#˜Žëi—YmHÕéøÂjô?DбQ;É…¢‹ÌÓEÃKBW§m’›5V[k[§åpK–‘í=1<ç«W“Ä2j‡~£~b¹$w¤Ò+þ–qoôüÙ3í¬Qb•ô]ûYÕŸ…Wd»¨ÄÃyÙàB~‘ ËHŠIp~pë.ZbtqÆûm܇ùs’çý)sâZo­ã;ÞbÐÁnPLqè24æJËJ´"¬õÇ4j*iâ-S5Çb/oçiÇë÷CÖi_‚FC‹-Ã/üãäëÖ­Ê«¡©¢£ºh[vSVŽ:_–Ðw`d|ðYmߎ¬ÐŽN=nµ œãHú%ɹsŒ²H§†:½5Çf5ï¾µ¡û5,| “xžýÏ@4 8‘w}}>èK´e…z¶$[¹j!Ð[– ¢@4ÿ#£5—Aãä=òˆ7³Ð†$ý®ê=£$zø<œùî[8HIOŶÅðöÃd0fð̯_A³®Ùœáf -ªõpPŠMCBîïTøÄ4 ;œ£LŠËŒ…8H²dö¦ŸÖÁ¼[s¶Ãié=o»ƒ0˜ÙCOÑJ²¢ÐÉT2Ý%¹¥üÇÚ^ ã{¿ÅØ7x>öÅ "òlf?ë¨Ò׿5””„ƒWè5qfùùxºér+SƒDŸYzyA(W»|„Å]hãíû]èh— û:*~ÐsD«ï1²JU'œKu©æœê´ÖôW£÷îŸÊ}'Ó*l¬w˜‡Êuz­òhMCþñÆ–šŽ–üž„Ü}:q«:žÜ tàšõ¿‰µJÍ9Â,UqdBb›¬=7æHb2ÄÑÿˆBþȹ]|0’v.µ…Ýnß A@›ž1!ð¤½×hmj¶tØê;þ ¼šu@›q˜/¤L+Ñ=€ßb:ÑËðëè7ã†_17_(ünw¸&õãõ±<.*MÖ¡/=§btrx ÿÇý'sù R€¼y—ÄpL—º3U‘¡N“ve[æ.+‹ƒñVÞ;ï×”òÞiù>G¯B4À pN•ŒÔO 9‚šªú¯þ©ŠQÏ#™Ÿlß…o6Ó?lé…×÷»Táú‘ÏÛy=>‘^ÂÅq›y¬æ÷;Û"!âÖç§Ó?¹>zïvÝž]ÿSœŸóîŒcÙæç¬Cð"ž{À4žëeºB(ÃAkýydÞ$²bŽýò$rÅ‘ïB+4HЉgþÆ#UEÍ| W×T5 µÜ1´vÂTu´ª æ4CU±‘æg†w›Ñj—¶ÙH´­‰9„…¯ÕëùÂ¥tQM©±áÓûÈçJÎ¥}©Y ¹9ÃÙÞX_YɺÆÍþ@$‰®0=éíÊ”¬teJg–­§½ÓÆÎÈ6sMHY{Ìì‰Åu”Ã{lëí¾²ÍÇËfôñkö™NÿXÝøM endstream endobj 2632 0 obj <>stream xœcd`ab`ddduö 21T~H3þaú!ËÜÝý£÷§.k7s7ËÚï«…¾‡ ~áÿ(ÀÀÌȘ[Øàœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*€\¦"œós JKR‹|óSR‹ò „˜YütðýøÞ½éÇüMÛç3~_úùûïŸü¢+Û»så<½U»Ó»9RØ—vŸí>¾œãO/{VwŠ\B Û¡þ›Ý‡ðf÷¡ö½<Ê›ØUºg¬‘ç+[ðÃyÖ÷ü©“°ýNœÆ¾‰ë·‹ù|ÎÕ“xxîÍááe` Kq' endstream endobj 2633 0 obj <>stream xœcd`ab`dddsö Ž4±T~H3þaú!ËÜÝýƒíÇaÖnæn–…ß }OüËÿ=J€…‘1¯¸©Ý9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU»ML:çç”–¤)øæ§¤åeæ¦200000v1012²Øüèàûá³qÁ’ùŒ/¾¯dþþçGªhOÏ”yݳ8Ög/ÊMjÈ©i“û­÷ǵ½¾»£»K²zkcÏ”Þ Ó'Êñ/þi¿í·òtöÃ\‡¹/äáb^ʽhö endstream endobj 2634 0 obj <>stream xœ¥XXT×¶>ãÈœcCe<"–3ØÀ.¶“ØP4Ql`w, Hè½H/3³f†64¥ƒŠ ŒGì]£‰Æ}ñÆk4Æ$&ñš˜up“÷ÞД›ÜW¿óÉ gÏÞ«üë_ÿÚ¦{7F"‘° –9®Ÿâ`þÕN"‡v‡I]‰þ¥±=ÉzK¡w÷Æ¡ŠO­DE,ê‹ú1R‰$ ,eA@`T°—w¨í˜ícm§Ìš5s‚íT‡Y¶óý<ƒ}¶»ùÛ.s õöôs ¥ÿyßÖ5`»gh”í˜w¼CCßš<9""b’›_Ȥ€`¯9c'ØFø„zÛºx†x‡{zØ. ðµ]îæçiÛeݤ®~a¡žÁ¶Ë<<ƒý†™?ßß1`AàB§àE!‹Cß {/<Â-ÒÝ9jû²håž+v¬ôòvñqݹÚwÍûkýz÷™3i²Ã”©Ó¦Ïxc曳F;®ÃŒ`V0#™•Ì(f3š±c\{f53†YÃŒeÖ2ã˜uÌzÆ‘ÙÀ,`&2™…Ì$fãÄLf1Ìbf ó.ó3YÂLg–23gæ f3“YÎø1þŒ%Àôeú1ý+FÎ `xf cÍ bl˜ÁŒŒéÁôdzIz2Ž4Lw&–ùA²Sr®Û‚n¤‚4Jz¿ûìî_Y,îÈ6ÈŽÉ~a·s\Né=j{|ß3 ç‡½|zµõ~«÷'}æô©µìeéÛ×±o]¿õýößÒÿ²Õ0«Fù4¹·üÃá|¾ˆoà/ð*¦ ¼n=ßúñ Yƒ>³ °¹3X9øÉãÐ>C}†Ù ;'ª,ÛÛÁ„v&qI©¤¹}ŸTôoŸÎ'ì‡h€ôä”(¢íø~Pj¬*y.páJYƒö˜®á,Rï=ÒΧCVŸ«Õ*Žc ,“]$vèBý7ÐMðê;ŽcÉ×¢/2RcA"e–íVôÜgg¼ŒV(£Ï6”YË[é/"O./R²ûµu ôœ êýóס'‹’mWêÊÂç ¤â/—ä³?­i´¿Öe} ¿ƒ Kæ%[(YyëålðPX¶_ G¶±Èd…öh§qaÑÞZ.bØ‹Ç"\Â>+~góœMËÆ)PÍ#SòÁE¸Ã}5ý32CèX¤D¦ã‘Lþa”¢‡ ߺÿð»og\'½ Šä*Oœ±×ÊJÁuÛº+$pñ@Q‚¥øqj“(7Jjqfã©Øˆþ<žüŒÌ$o:Œ&6¤ßC{|ßùâöHqæ‰ù¢NÕ)J.kƒÃp8¦Ü»ÌVÃ&n:†ÈËö› &ñ¥Ir'Šª6i{vû¾ QIjuJ²ðÞÊeÇß-^ 6DG&’±Ä¸!ýD®@ ì‹liŠ6:. ¢5Š2˜ôYn³afåºKÊsñ·áK8«GæÊµ®}‘w’ZßÌ-'r}¤V]Ü^­n/©YkÂáFQrf{“Õ šÀL`-¿‡ø7J´Ú¦æ“YåÀ]?»œX‘áNë–ìRÂé-Š„ÐB 7»{‹÷‘ÄfàpÜ?¾DÚ8|MFÍ[û~T¨Bþ´%Næ Òüy*:´•tÖò¥˜ÄG& ÍéPÑí¥hß.ç;™³´€Å 8Ž:ºÉ8äÉFE‡£R†ªŽG¼øíØkðyd›SýúœÅ0 ˆ$~­ï–M‹§Å,β=Â¥Þ„¹§Ì[À&i»î㕲0"L%Ë€#°þŒìÛÜmó&¬SÊæ'm'¬Æ\œ ð×qéÙdïcªÅ/3x>§6µ[É,E?ºuŽ\}††Œy–fìoÅ/y´`É[¯<öPtVB½¶Uwà*; i:.`åwnT¡å‚Fþœ{mDuumYÓ©5Õëy«lßêLð¢§T˜°ü•“M8Œú0¨ý¾ã¯Í¡…ú Ž@ Žt@†`Åqö[ïN%S§6`9Úšª˜³›ô NYŠRâZ«†Ãn71žþ°¦%ç…&~Gö’<0q—Ÿ@ÉíÿÕ™‚6V›V\%dV(>cÍàLWC¤‡Tàµ8?B#o½½4°4ZÑäÝzg'dL½·rð¼É6<èVK¼V˜»€ ÔP‘°‘Tœ­ƒÝe‚ÊwëuG}OB)p58 Ю%¢Þ{¿B~Ç£Ú7kvgùrh‚É« =LbO“•¹NÆáˆmÖòØöá§øšÀ‹AÙÀBÁnnþÌÄz«¦ƒ¬¢pX£§áPâ(;Vn‚Hð÷ ŠõMõ…0£zãåmgânÂcÀî¥çµ5¿sè[øùÏ‚¾ìï«Ññü‚Üu´5d2±'ÛÉ&M&cžB{žëŽ_æ,E×Ô&üÎ-•<§ÕÔÓ$}.çÉ>Öö‹°›Ÿ¶ž»%œR®gû†¬‚«VSò&vèªd5öÇŒQq^´"ÑÄ7š0ßÔ•øOp„´=…2&™§j,l£ÏXðìò!ùä̧ïØ?¿ë,#¶Aÿ%óøº Â`#~BÿúKY!ÕèuŠÒûïÈ=R\ò1?›E§, »,òV‘RôÒßàîÊÎZ¿ÖqŽªê´€_ÿáÍ.Öö^Ø÷‚cÁ½Ë~µ_¦d›©Géó4wÙ(c-Åçéeb?“d¯xB*êÅÞ|VaFöUàLl°Ú_ Á°E®5ï–T«’5uz’‚pDOä¸×â´I¶S=E£¡]r‹Î½sÙUtôÎ.€°)‚\}n­Á›]§Tµ—IÛÃè)™9̧„ªý4!J]X×)†6M‚J•ªQ)F‘áA‹³&™¯fÚÜÀMÓ¹ê[¶Ô tóÊwÈêA#0ϼÐ]í®q‡÷a«ÎçÕBœØÑ3;:#± lª #7»èæzAòÿð7ɳ©F?®8€VµØcöÇéæ„…‹=ïðïÃæ…c²Ò|¨¬ˆƒ8År-õ®‚£°~´ð2Ö…X¦OÛZ¹¯¦¶ìðÈ"•NØŸU«Íîv½Û\…­œ…*’DFý¢>ä៩¹ü0Sø ìøÉqÁë·×A§×ÓFùœB÷¹IR.^”â÷¨á±,(ÌÊþlhmª×iÒhf6èºbVùêü”ôTP§§Ïœ8h,²M&YÆYí ¾43;;—ÝdÑ8kbé›À†²ªî¤6ªà¼º´³°Q‘™YZÐfç(ž¢»‘JÙ^í%ÝA¨…VõÁÎU » íW&3âª3¿õ»XÜ)ŽæñèoýÊCÑñÔ͵·%ç´­y4Ç>ïìo¿&£i½;Âÿ.‹œá1ƒÝW¬ú í–@ú8)au‡Âß}s‚/8ÇéÄÝG‹Ã;^¤,nÝÙ‰’E“©d1p£h7b’mU l„­`÷Ç o˜O”Fñ<-²]ˆÏ.Ôw!>„bñˆ×µB¼&=Q£Q–’•+þâWt ݶÉwñB°Ùjm²ÞQQõÜÁJŸÿHõ&÷‹wÎ_>·æ6‡Š ¾M’*‚±¿;Äñ|TŒ:’¸×z@¸¬Udñ|z,Gl¾ž€“ðÈeî‚Ä(:.MrÞ¹ž¶^ ýѳ€‘¯/R© –/?}£1§Ä_èþb âIЏ7¡*Â(ë›ÃqQaM€*D¥¦®pÁæxŽ*ŠÃpò;³Q­Òùë5´»p¢IËbUÇw†ˆü´<°)…œÝ¬É mgleFýh¦Ïׯ:4ah2 bà ‚iå@“ØÊ?ÑQ*®¡HÉÉÓéÀÀ•í‚(¡C*‹' ,L²¬ç5ÆçÀý]Fj;˜¤ZæI6aP"ˆýdŸÅB)K²‹YN7CÖ…C“(íÄ¡9¢™æšßhá7²¸ôW’ú=&É:VÞÖ¸a]ÖÎ!ÄnÄ42œ újŽ¡x¼Ç*kª8¼ÒèÙ¸(÷ÕTïKÀ>7ŽÁ齊êæÜ8M¾åþ\g‡é‚ã)1ý”O·Ïàò5Úpú¥¨ÿ[”KY1­ãóÜx­fØìC…B¼ÍB¹V»__©×Á~àªÌÍË…6g7X÷Šà«Øb(Ò««UZ „qc)Ì+iu>ˆou©íäo¤¢;Ûå¹°¯&õÖ†ãŠƵŋ¨Ó§"ýÉàÆá œÚò¢¨8Ò¢Õi1©ŠðM.¾KèŠá´9¡8Ø]ר=\vpoSS~5`Ðk­7-ÉšÛeÍÊ{>N”¶7áW<¾OFÓ±"˜DCvíhKFbF£€£ÑMèèN.ñ+Áq¿û§;/'ß„pUÿ÷#6_º^uj¼šÞkXš1ƒSúT·E[ÂÖP1Š?vò"%”™GØWŠ=Ä•ü<åmò|‘Rög•øYéóŒÅnŸª23A-Ä&$GB$·­>rïÚ²æÃ^­³ÇÆXÐ1bÝ?§Û^QL-u#%''e-îczj·1'o):f¼&Ù_´~ñ6ž Æ6"Ãq0wÁB˜CÆ+èD6q·7ÚlUûµJq!Já¡ÓkùÏ ˜ƒ.ü4¸ÞÚ ×>„w·lw§)ˆe"4䄺Š2ã¨3wo˜‚ÆîQØS¦ËÓªÓÔIÊEíÝ[TRY]¿9V©òÞ*D廕ͧɵz¶“{©{-#Ú™ïÔáƒ!6cc“oœÊ1œ¹õgæ¡î^¸q ùÊ»u‚ëþ0‚¨zHÓnÍNh€bÈÍØ•Ã]&kh’Õ ,óòXC’Þ½x SlW J^+)"<ÍÈÿg‚]¿j{¨€ßü¾r-ÛŸ'ƒMXcÄšÎùu(&á8[œøø¸µ<ø 5ؓźÙË]áM2KãÃyäœø®qÏH·ûd¥ÐÑï×äiòèDI“÷šµ°†•§žÒy Æ§Ö›j^Gx6Þð9v9Žh?|¹§œq¸&1N£HSú‡ùÁ Hº™vX—ü‘&s×Õ5ÛöP°~Ü9Û?B«»´óöDÆZþCŵ]•F§²¥cñC,¾6»4žšæ3Á»sÙW,Vÿ"ɉÊHÞ6{¨$Ï«¤ÁqùÕš[×?kyÛw­öEÛåºòˆ9ÿŠ”þKòÙçë›G9¬Û°9Hˆx2Yï ÓÁe‹¯3'¿÷Û5\Û+"³ê–òÜU”—Í ¸­GšKã¸(Ða·2 ¼äÃ¿Š¥8ž% S©Õ€ÚFþ9±ÿNvÿƯªËÒâ*„èÔÀhØÎyTUW5ŸÜz•t#ýÈ(ÒC°Õ(ÿ¼%>g_›dî®fsvÐÜŠÕ4·IšÕééBOKÕù‚(!r”þ‡¹Vñ_mˆ;þú KîP÷¾c|Z|¥|ŸJMÝP«…ÄøÔ]ñá{â2Ó©ê‹á쨌‘£ãSIž—âMt䟒óãè?FƒQâM©x ¼±ã&ö)$ÑAr¤˜x—ÿ39ÐÖ«/{éZ*¹*ºHE]ûJ>3²@Ë•Æäí OÛµ+Uèèûï“Òâ!46{ Ë2 vg™¿˜`%­´©Gš/-÷âÇüS &“T’ª!IcÇhI ¦bŠ£H1ñ^àZw+é$ügè¤þAÎÉüG7r+)?4G–l-ÚÃa¸‚Cʺ]“œwùQa#š *Õt¤T‚ñØKŠ?·KùrÈ JPCJ’0ÇePM¡,•í3Ú %\G!Q(Ù#úÐFŸ¯ï¬lÍÁ:ºžÃá &É9…‹PŠ…LÇ$UDÒÒ]) ©óhœ9b/35žli=ˆ²ûWMð ‡ìÈO¨î3qÙ”•Çb+k›ÊŸtÛ›!TW6ä{ptñ¼Ež‹*ÈfâOSa%Î7™ÐB•Z4~ŒÃ­ŽáDÒ‡Ê%‡ÑωÖrÊø?áOüGe·ÎÁîÎÜËôœ^³—¾½­&°¡µªöÐù5yéZ¡~ÿ‘œà>×/ݧ!Ö#Sîjµ&M“¨Q'R#ïHˆÊ…bሠ%0v½F Z—q`“â ¡ª š¹Vßš­nÞë§<]<.¾õÃc güÐÞØa”˜D'â[æ±h:ðOMãÄY²}êÌ€p&6^ ÿèxÏB‰Í”»›ïtw^ÞñÛ彌~‰€ ¯Xtú}‰*QÆ/±ŸÕ9üæ)ÚFP%G¾™Gö'dŒÿZ•¯RÀAìþ´ásó@G§e²M Ä>sWFx†Æ Îå”2o’M;w¼¬{PD-[½d<é¾€ 2ÆÆé,dí1e^޲pL,Ûd¸^v¡¾™ët^¼Gý~°æ6Ý^óÀ|5»I ác EPÇÝø2»éþq÷Ń|¶ú G‚ùÆš#pžû‡C+‘…Ó;ã·;ßÝ*ÈÍܱÕeþ`Šef=…Öô{±23M÷ dîb¾>Êxæý#Á‡Âa7sbŒËX—wïžj©/ít¶¥ û·ñ…9Cmim®Àafˆ Æs| ŽI+c}¢=¶mYQà¥ó+Í×*„V®.t¿‡GHçâ.tHˆSî£&à:`>I$#ƼEáûy´Ë®Svà ŽHÝù pû‡ï೟/T¬MÌPäï„UàÃ9ž)ÐÆèjÄûF0b˜ñ†Qrõ9Î6¡«ù§“D9¿ž_¾Ïo¶œq§ýÂz…·§BlÅølCF&ävòdlJRb²°uÝïi@8xû¼Õ‰!y;›9m9±%£»ÜûäÖQ ÆX“âšßù„6(ƒ£ºã¥1¿ôDÅg$pÑ…»Š 3³r³…ö7qösÎ8ýÓMfý•I–¢+Ñ•½t¡eÌ<•Š}Iï¿oÉ%7ôoñ_ÁCÀ 'p Mt÷n­2¹¼D}r´ÛŽè(8ɡę²/ét3½y°ß-.'WŸ—©ÊíïwO}*ÅǨç)îÄnÊÏßCÖá:m}ɉª„4PÅ(Њ ¨#N@¦Ù°žL¡}VKÛr—«Ê):|¨¨X@œ\Îð H¼P.®$/¯6ÑçZ©Õ'âÛ`-ÿ¼(&óh9¹ Ñ É›ÒÊ’êêðì$½‚ oÃám}Y6TÛT‡”D¤&©“(QõTŽô{hÙdÚTæFG&P«ô1B9@ú>‰7$éRÁ&"$Òß¿,Å RàðdøÆ$Ux øÛøWF–ft†|û> #T1”ÍÓlü÷%íËÛŸ™Ò’^EõôÔÖéÀ-VÓî=L¤ï3²÷3Šs24š¬žª[v™í½*ÍO)¸Õ»B˜ù…Œô$=ÿ'ŠáOSükÅpÿZÃãšòÔô>stream xœcd`ab`ddä v ò5400qä~H3ýaîîþáÿ#ˆµ›‡¹›‡eÙw¡‚où_ 0012Š©:çç”–¤)øæ§¤å)åç&æ¡ 2000v00”€t°;ýgôu`àûÏøùò’å Ê…„|¯û(ÖYš•ŸQßÏ¡òÐà;çg¿Ê /xkÿö7·œð¶ö®6i¾²…?œæ~Ïë™±”íwh7û{®½Ür\Ì-‰ñ<œ äFä endstream endobj 2636 0 obj <>stream xœW TS×Ö¾1’{À©·Â{m‚Vû´N8¢­XgœQ¬È(`C…È@’„„y4†( €-Îh[µÅéÙÚjëðúúwÀWß¹éáýë?$ÚvýCß¿îZֺ眽¿½÷÷}‡G Dñx<Æ ÿLŸß¹?ó¸×q¯ó!õ—G¨ çÃðÁͯ½2w4ê…#ÐΑŸÇKJWù'&eŠc£c$Þ“"&{Ï\°Àwª÷,ŸÞKâ£Ä±a ÞëÂ$1Qñaò'Î;01"6J’é=iaŒD’ôöŒéééÓÃâS¦'Š£Mžê+‰ñÞ•%N‹Šô^‘˜ ñ^åý"ºé/¾ýã“R%Qbïu‰‘Q⊢þ²$!Ñ?Iœ²R’º:-, #o䣭œ†Í+×@0x¸XP`V0ý£h ù Å$’.½*ɶÖm­´?œ©¡_è’ýèjÿª"™LàU…DÜXºÎô ­tš6D“Ù¬ëÉ"1Ý A>I{8FäØ8©wê!úχ|î>*bÑd< Ä“ðd<$ŸS;ŠÞ$;Ц±ç³Ëð ´mD‚î«×Ûv¼oǃ6/y8RíŽiv^ï3®¨ïðàúÙ½-ëÏM mÇ ñ¼‡"òv ¿çè54¬ ¥2PæjEr<yf6ÞxB¢°#×ÿÙ7O¯éstêr`ªÀP+B¹t5Êòóa¿\èÁ+ŠªCÙÆ!×Ñþ‡|tIÙ¿ºt§÷Ýë˜áz±àªQ.êÐá*å*‚c“®Go œ×4k8®R™:Eh­F1l‡ÑÐ*¼.@£á݈HX„G‹0OàÁýcVZQ²%[G´õNðÛֱc²Ðzn3 V}I‰±ÐÐ5ÀÜz öŽTùãWE³h¹”½QóI|Ìܘu» ±â„Ó¬ûPßMpZcû}8KÓcNZÁ¦µÇÕ¦B ì†@È<W“Ù‘ÝÌåÊOÌF(‘Ê´yù"Åúh­Ò!¯\Y*¯R6J/Ë[sO-nb<¸à+'·ðNB…§øÜ+œŽ­‚¢\¥V›š-T©r³ó•Q‡ƒËÂñY½Ò/ðàÞ²ý¢æxsþÓ´³ÒM]š1¿! v3Û#·®HÞZÐ* iUwk´Er)(2EøÏô>—˜t:K¥Ðh,©,05%Ÿ–\æ?>¹{ïRdèD{Žì3Ì3§cŠ”úíæ}íÐÌï辊ÆÔà!ïõ P–SƤ‡ž¦ÚQŽ›èl£-øŽ]?ö·’o[×¼ñâ8ðÂ;ñÛxÆÁh>öE»ï=´]l•§vD½Š¡¨’`HP ŸíôNM´6ÂaDÆq­ôw+  ±;žû}ðæÓ¨µ¡-Ý÷Ÿ÷-À3ê„¿o9î2©!v*ïåsG8#Û¿_ƒýܬ‚b4Ú\ƒøÀœ7@¨¨Ÿ¢#òe‹„ibA»á"tç"´«ªšF/Ê/íq}ÌçeÉÂcŠ…VÒZR"ñ ô¢v+màÖ³FÓU2» ÚÍšTH…@}¼Î9»× ”¡"Oƒöè¥Åoþ691p¹Ow“Ah]‡ÍBšÃJ‹5AZ%$B‚.ñ÷S¿ŸÆÌÜ÷VÆO,Co‘Ù™ vd5ë×ǶJï mvAŒz!DA$,„'Z6úžA-ꯧ£Õ²…Âä8A«áa¸v¸­ÙÙ“é…êÒ6”CVË¥dVqkXy è¡€ihj’L²vƒ&’!\—ä é˜{Ñúþµž&©^Q 7™*ÐRn–gÃ¥.}¥Ž$’¦IÒ¦A$¾\Õª.L# )SËU2<?ñtÒ(š`E7̼î(ÝçL¬²Je’AŽ‹ÎçöÏô”%e…¬Õ0bÚ¢oÒY ŽkÌ®i Ó«[€´ è[1(B` ,J/¥Wb4d‘ñlÐ]$¬Ûíšzׂ@È3J[< ±,Þ ø)Ý<_ý¥ƒÏ}Ãn9iûHÇØédõû$ühØ ±N,é#Zc*äAžJ¶/?Äg<ÑMºM_zWX?ü|,~|=}Wÿx i«”àoàÀíÀ§Ð‹4x´„F£‘áz“¼$d^ QA¤¨Õ)EmpTsÄ¥^Áѧ°=öüU€¸)7Ø•ArP¨2`jÔ] YZ»Kk@U9åxJ’Uõ¡×=[?h¯îÒ9›-N+&I†èÓ]mZ¥©“Í’ïWÈŽóœŠØ¼20BTW”p.Ñ®× ”5Rï*ë(R6F"!Þì‰i<#!joìj—˜¶ê›u68HÊUáB?]/+3T•VYìÍGv–»K:`ŸE“Æú)ªü’ÏBu쵊ž.¸À\Z~ó„¸å¿/:G#þk7®œó-áíh¹‹ü¿<©ôK‰N^ú† ·RÙ ì]é#š,ˆQ:Dh#M(Œ­ÌJÔ“QÏç’¸(6Ͳ£s1‘º)˜ÅÃðTLò&r:½zï_ÿ*tŠqs7ø³Oi@‰HŒfÔwÝ|° 9 Ò+tÊ’4ˆühQkr‰Êý’ô¢½æ5r§¿à;²ãYÖ­¿÷×¾8l¸FƱ®Âáß÷Wÿ²·°Ÿ@jgàìþO=q6wUQ£„4B£~qõW›©é$Ø5a ktÝúCpº5­®®™'DÜZ§CÅÿRgÌ+¯03. ΰ¢ÈF'‰ùXù\6WÄöoz‰8ÿâ\0Ý„‚ÜÄ‚,ìž²¿B°¢^ ºî}«,}•ÈŠvŠ«ö§/.G Îzô ÃÙbJ1!téxjsøÚ´!÷ßQ†ž²(Œ8йxÞŠgb_â1BÐl<mF[ÑL4íâ>ü ‹),ú#5šxÿ§ŸÑøyX‰+ð„Y‰ädCxĆ.„çûaÜ×xœ¨Ÿ÷+Jÿ~óˆ“èfé O E€…„Œ‰ð[_e×ââ|9‘”Eè‹åhžàÿ"þÿŸƒ @rðÇïpúÏð@ç^šÒÞ-ZÇ3?#¯Çj·i’ }oÓǺ^ÿ̨"‚7˜U©–‘ãZt§õ6°Óâ:n™ÊxŒ"ŽÐ§‘×{=¹ÌGjn>;§6í:´1×z.=@Â3oN¬ꥠz©ÿ(Øiï %Z¿gcRCp×Ҥ̬ÙãZBʳE'v4+¾L¯Ê¯VWå_Ì1«ì±&Es,le–ùû„­*:¶E¸æ”ú¦¶E[¨Ô«^š”]t(J õ†b“ððG WBŸuÿ§çŸïü;Ô0à]ÁÎáÃ<ô¡ðÇö_c8•h|Zh¶¡™p€˜´E ûAÂ6ˆ…œñˆ8A§¡Ž“çt:Û ‚-³uPf1”è›ÈZäµÉx¡³‰Güd”Ä"ñ—åß–^@÷yá•%Ò² ÈñÊHÑÈÉËfݧú ‰i\,¾Ò {Ná%Hê‰6¡ÅµºcÂÆM¶“À·Óã<³TcR‚ 2³Òöåù.ù-Z.žÜ`Äù;¹³°70k]ãËÑôÉJ¸í ?@O¸»>ú Ÿ›AîgSkãȨerÏXMº˜x„¦3ÐHlZŒzQ¿êZGß…¢üŠX¤ïï÷4åè•UD¸õFS%ÊåzÚ®|J`%§‰Ð&C—4/V…½'ŠkÖægK2FVHüðIÁýãëÞÀ¯. JœVt-\tXÕh…V¦-Éœò~Îîé?;7öéß~übÍ=LÕ p¢?Ù¹0‚çWŸñ¡÷Ø8Ô:Ç%F’pÅé.¿p—}ýO»7·“6ƒi_®V+ÍâýÑ,*ç<Üú=hgŠhÐ÷h­ý’‡ÜíHC.îè{6äåE:}i±°óüù’68IUIuáúmä*BÂÂ2‰W]×vÉ 5h …ª¶Ö×gY÷fÄËÂ}îN'Øøù{4 ñíÃôâÝ{öí¡ôñœ2 uûq…ImTh5 ÊmMÝ¡Š&ÿ«8¤&ÏH†˜\ï9cäÆ[¾zÜiå]xŒŠóÑ$ôW¶–Ff4®ñ„µKS/”†CH\}¶¥ª¹¸ý|øééøu,ž¤ ˆñû¢úòjË¿´ù‚(ÉÕî ï@x@ΆX´^vÄ]RVe·«>†NæÎ‘¾¿›»`m«°vì€÷ȵ{grDFbbr³©Sk¹+wy(ø)Ÿ+垳ť„, .„ªˆ6l+Ж¨+±`/'Úa¨.¹ZQTj¼ •$ádÁD,Äoà­€—@¼W.„?]%Ân·yôÜa>stream xœU_HSQÇÏq:/9—ƒ¢Ú.ˆ¡`sI`J%12Ô‡„ÀˆÕ˜×9ÝÝwW—é¦n¦îþæÌÍSÉt:ÿfEM|¯ ’^ëµ s×õ¡ëˆ(øçðýþø~~£ì,„1V›ë›*ŽnEÒ,͒Ω@ޤ—ÓШ@“½˜ö$'HÛqb+@9»>stream xœW{TSç–?1Â9E„*ž tz“¬j©Zk[;³”Ú:µ´â³µà !„ äAbxJ@ 9Ù /y&<y‚Q ¢HÑÒÚÚ©öêeÆGW[ûZŽcom½õ;ÌéÌš/Áöúǽ½3³NµØûûöï÷Û¿½˜=‹àñx! [’âıÿÀcŸÅþž\õôÔty„ó!|¶ÿñHá|tlÊ‹DÉ|/GmHPª 4Y2¹V´X²Dô||üÊe¢Ï=/Z›#ÕdIĹ¢-b­\š#Öâ/ Q²R’%Õˆ¿$×jU/>û¬^¯_.ÎÉ[®ÔÈÖ,Y&Ògiå¢$ižTsPš!Z§ÌÕŠÞçHE»-üHPæ¨tZ©F´E™!Õä!ÈUªÔš<­nÃA½8?½@’!͔ɳ¶e+r–=³üY‚x“ØJ¼E$ÉÄ6b;±ƒXJì$RˆW‰]D±›xxXG$ë‰ ÄF⟈ÍÄâ b.ADB 1›¨!~äéyßÍJáü×ø^>7[ò!‡¶“‘ýTUC}ÿÈΰ…aGçPsŠÂé𤹱s“çÊçšæžeMìEð±!¾×|4{ eNEGDo fú§}çÂû-»ßpEdª6ä)k‡å4œ†ós&|¡L ˜}ÚFÂgàUök{¤-»`9ì_W¢¤Ì¡QWïÜ“†y©¡b·ëü›‰6`TÁ6zØ¥.ž÷&¸ÉgóQ¢Þã"¹¨8·€›wo1ŠDQwï¢H§çRè] vi«‡Í0 Ç`Ò5Ô;~Æ6“0”Ý™Õ-¶¤€2á-Í>ejª^ ®–ÛáCË\ìï|…=óïO¡®›ÑQ{Ñô5íï\ç0P×Î?Ï\hâ /¦IÝýyÂC`…*q¶[í?ð1Phšõ(Í_ò=¶}—.]*Œ:zäê¼\W¹_ø³üïÕyüÁ%õðü7Qן]„îÓ{¯'5ÈâÂ8ÞÓ\4õÃbôÈð¸í܈{í·3²ïjÈTn’†0«4ûÅÙ;€Z»ù+‚¨ËŸ]½6ºj>5î¢ï_¾ÿU€æu¨€jBO¡P™dÌE¥G©…ÝŽn[o_NoÚ›bñ­ Àã=’{â¯ð8am±ŒÃ pš/o£'_55ÃG-1¸Øçºxþqthœî°/ÒmÐPZÅ@é!Ô—WV)ºuY¸Ø˜¯¦d·ª»uB¿b°b¼|¼¬ÍÔUØxØ•Rê…8(yRýÅÙR©Ñ\W T .r ÈB(o®³X:Ú5uM-µµÃé£&æ&räÊÅ“z®[˜uTV¿¶U]ûj LR}ÝÃß"¢~•Æ*°”Be P­Pßï¹ .ʇVuò~šBõðÑ5víãžD›•¤y¥|ÑR¥ù’ó’ÜìOµû?º,˜Tn'×*d²õðU»õ’XQW vø/ýÊÐjzÅ®M «ªFÎ Ðç$÷t¼«`Z!ä–’°Ä£r¯~¨â¼cÝÞóTT¾eU(ZÜâ#ËëÇ„=ˆ Á†‚ošçã!Ñ7|TÈÞ¥¬Í7._hº)öã'Ò«1 yÃZ*þÜEʘÒÕ"t¨úŒàç ™iÈÕLó@@ƒû˜×É2|´!ÚTÇÔA=å€ÜÏhÍû@¹ &&OAØ2Q‡bꊎ˜ ŽXëÛÐãèÓÇxs¿…ò‘9¦4`@ ‹ÒŒò2mÅ †23c4,äjc"¦ ;ýzú’îú`¨Æˆ•˜8R(É̉#æV行©4U<ËUÇÄ!OU TCu¬Ûguã;¦šÒ¡øŽÙ3}Ðin*i0´HÀL•Ìñœ.fj©´á®‰õÖ–Šk“à³r!k&·Óœ…hÚÒê2Ø ¦©¦ñt4æGîhMYÁ±6¨n¬i¤&åÒ÷#™Ëûïý®ù#×öÜB«§®ôDGí1 ÛWèZ±W6”ë‚í†ð]å6Ò»d28m û’?m(óèÛ. V¾.Þ¤pº=î‘}µf¡Ç}ºÁ Ôø¤ôá2ÊMlg^©ZŸ ×í GuQ€Ïø ϵöPåŸÐK_ÉÙ·wŸÿÌÇ“@ÏÔ 0£Áþæµ²M|ôÒÑ `ÁõÚí#G|~¿óƒÌ¹&.\ŠâÌ6¦å0†¹¨ÜPU¹é¥˜—ÿTÑÀX¡>š›š»RFmК3Ÿ€•Ýú#GÇèÔ;6è4»ÞLb…Ù®ö€ú ÏÜ7cNšjS4bÎZmíNŸ»×Õ{=.¦C‡“U‚¡ìPž [–LÏ$ ””@èz¨™Ær°"ÊÆ–…\Ø©b§¾Bc)ZšìþÑ1û Vö‰<·Ø½ßº²aoåµD—®Øi uæ+q`:¨òm´oßåÙ¿¸÷¼Åw¹ðĽrUžÛÿÅöì¶Ÿoõ‹»ìŸ³Z,Õ/øh#ú‰®l…Z°Rn?8°ˆv3z³ËìWTNBÓ¬B+~&c4[u;r7B¬ [LÖ#–ž#à§Üùv­¦ H•6œùοŒ¼wÎ)@ØÕMîö¡¬±>2Û¤€C÷Î(20‚ÁXf<Ç•ÇD°{ =hà[ophì»Åg ö÷ôA£¾r)u§Þív´ù>|}ðnÁÓ"nGß[‚°Ímh6€ÉLa¥@».YÔ¦øwÐbôÜSç[Î2š€cϸØï‚`ãô®Ël6…fŠ©ø "-5_‚FâT«G˜÷1˧ê&Ü'ºú†|0 'z¤ÍE`†|ªúºª.mâelî‘¢%ÍÍû>ÍùãÉG;Æz‰žþÕæØ{Á¦âåN´&¸˜.ÆbÝU Ž“oãùþÌBîQ.úÏO¡1v¿»¾ª®¼ÌTa4 ³ž\ÁÃH÷hýÆÌça˜²8é´ü{œƒób ·€Š@3«²ºx(äò­¯ùh"h÷sPùíØÉ‘ÆFÆØ((3âA¨¡Ô.O{‡{PztÛËñ[ŸpäKŠëÜ¿ýÙ‡¦°x¹tÚ|á†UxxÞwQñUÿ»|4%Ò®"_ñ(P·¯\º>¦ôjž8ÍPe:\”¡>¿»ÕÞèè(ñIrÓ 2¹@Õ•ÑŠ÷–e ‰/¥ôÊìÅB†QÊ!²ì2OAJ‘$öR¯ý) -@‘ž¸:”ÿv¦SÜÿ,Ã- ‡­¹uùÌ•½ÖÖÐBý`¤WÀw]«¿Í)´uzl=@}KµZXú¼p”[C÷¡Hó‹IkÒžY²öÔ9{ãÇ7…3ëaP¼™ùÆG›¦7Ò÷‹ý·—´‘üÿï’ëa·\‘ŒwÉ4 o…#bþuD¬Å½…6³oÐÜ¢ÀU>j¨Ä›‰ã—ô'­ËÛ`ÇÊ›q•ÆÚ㨻Õì Ý›çÌQh5¹¹Ý_¯ÓÙ+ÀS çæŽñŽùPÓ7¨ÑÇŸ~e:žþ/2TÏéBzB[Q|§-Ŷã…F¦Ýh)ÃúÀ36 ŠŸd(BªÑ¬àÅ¿‚ÇeO€Í/d»Hp[:k­hœ¢3·•‹§zBgÜ:´©‡y÷/óñ*–C³jò¯Âú¶Õe†!p™O>ë]ò£³w¸h»îH)”Ä–™JÁ²–ãAöΔ}ò,²ÓÜh{Ìw_Œ¿T ]Ž'm&6YµeûŒÓØÌÍx’æ*?Lžæ Z„6ÿ×£p ÚÌc¯¶Ów~›>ÑQcÁ D\;sþ\{Æë¿¥‚_ó¿úç‡$ó%ô8vÐ)iN…Ø-Vî(}_2°VÃîS©¨OÍß…þ_ÞDÐ ·Ý^Amtaû·Óx_ˆÿçcvd3UUWQßôéUö‰úX†<_¥Ru¨ú]6›En£-òš‡ÑúCγ… @ŠS}…>J9K{ó\99yšÜg^ïŒþ°aT;þ3¹“7É.ä³;§÷ÐÕ Ö¨¡l¥õåEFC©QÀýðßkL匌±ÅÍ öš¦æA„®‹MhC¹Mu]¡\z3é ›š#›½²3üW]xø”=|.Aü€‹J½ endstream endobj 2639 0 obj <>stream xœ=’{LSwÇï¥Ð{«]‡º*ÌíöÊcC‘Çž$[´>2&RK•ÒÖ¶PÊc±PzJ ב2œPž!Ð!S óí1þ±lÉb¦‹[æÛ¹ðsÉ:²,'99'9É÷{ÎçÐTxEÓ´X™¹_•öo'l§…ç„çEà\½¿šRHÃÇÖê6£~žxs#)M,ç”F“ݬ+)µò šüKii{vó/§¦¦ñûʵfFmà3ÕÖRm¹Újô|ŽQ£ÓZí|BF©ÕjJOI±ÙlÉêrK²Ñ\òæÎݼMg-å³µ­¹R[Ì2¬ü1u¹–_·–¼ž•ÆrS…Ukæ3ÅZ³¢(fŸÙbUŸÒPT •CåRïQû)%u€bCkQáT5u—.£¯…%†µ‡ý-¸dk‘ÄØ pÔG ¯¾&w Ô‚=µà0‘¶'¿E¯·ÙUÝ\å®¶2_|«¥Û3c€;®¯¤±AÆ:0^º‰QQxU¼Hb#’òÅ#Þ?`&á']ÚÅÇ‚^Ž2AΊeBmHõÑ4ŠÂ-"4¡AËÈ>ò:ÕPÞ±] ú&çò†²©ŽWpn¤ÅdoCD>³xŠäöá|fÅ۳зa~]éuF&|ä¶\£ÇVðüŠHØ!dÈ/Ã%[}MC½+ë)n= ¬ž¼$*·UŒ8?Ô}ë€lV™ª#Ý¿¸Æ^··Ø3à´(v0vpøÚ[ §èÑσ¢¯â«€/ÌöO…£e2º .¾Ó ÓìâèÃðÖ,S ç©ëN`û=ü ™PäœÂµ ¾å£ÿD nœ¡EPÈ11H1G%v'}ïb5?’~†ˆ¯½soöÖ27¯ú€9Pb7‡E?'–œã˜?Œ/ŽÓ˸ß@‰H¨Â9ùÏÊïHr6y¦9¥p¸rpxÐ?ñeu¯ËËu¶ø[¯»4Q’¡(cH:É("¢ÜTµt÷ÆÐÌ€â üÅÅŸõ@¿¿êG=!¿~–HnÊc M*õÐôÐå{˜×ÁÉVãC7•Žã»ÿ1ëÅè³Õ#rrøO~cfeAý÷©⳸}×’°÷}]]•¢-GÞ˜ |,F‘¾­†¼ÊÅéœcM6ÈÍhe€• }Î)A2Ea4Ä­"Á¬üÓÐ/ÚÀmoàl…Æ,`I `Üô¢#q[û×îFw³ËíVœs4Õ@{jÐ2<8üùôCÂC1É=Dd„&›ïÇcúõ`Û“ÜÂH× ð²²³]BVžôuv‰É‰v&¸%¹ á{|RÉx‡TŠ’+Ò§>stream GPL Ghostscript 10.05.1 2026-02-10T21:30:24+01:00 2026-02-10T21:30:24+01:00 2026-02-10T21:30:24+01:00 LaTeX with hyperref endstream endobj 2685 0 obj <>stream xœ\[sDZ~ç¯À[¨¸Äû%•r•DE—X²U¦¬XIü‘Kð dåןéî]h;-«JBÝ»3ýõômz†LÚÍÔ,i33>Í¢õ3çíÌ5 .–ïj¦UÔ3«Ë&ÚYTy¦}N3«ÒL'ëÊaftyÁ¤43ÖÙ™/cåBœé¬uœýýïÝ›Ïw}÷t³Þ?éw—ÛåÝ~³Å¯?ÎoûîŸ/zñìÉwç¯~NH|üxóÇÔì¡Q&/’d÷[÷t5¿ÙÁNºG»Ë~½êIw>¿{Þ/oåk²' tï‹á‚Éâ`]¿¾šïÝuw]þ-Ë¿}w½ê®7÷[4êÅç»E¿.¶ý{÷a°ïõrÝ#/&†>ßöëU½§Ÿ¶8h±~ÀX{Á®ÿX†Ù-ÿèv+˜pßíÛ¾ïöŸ6Ý}ñOÝÝçîÝÿúíæhÜ7®Ó‹_Î/¿ûîâéϯ´RŠ›+áǹP9ŒS‡u*ŒzðëŸ\8^#kmµ,ïïW«~„Ä«Åýó—Çï~*w~q®}BŸ™E}À¢­Öª2:ÍÀà×/Fg$›S_µ9o5³¹óbk/ºŠ¥•½Å˜ÆÕV&T˜Ïú‹Ý´LãØ(þh™CøF%¾{ôë?~y'rŸÉÕ.ë$—ůßâ²:~5þ¼ßÎ/{tü‰Ü¤nÁMn—ëû]3DÅoÄúöõó? y"O ¦è*¨VÄz”(e¬*}=<Õ~𢘙ŗdyÍ#ˇiÞü?2Œ!RâÑvÒ7jçÍËo‡ÎÕfÉåR¹(æJ•‚7UCÔcš¦ÐVÏ£A9X(ÁËx³îÍr¿êOÿkc(ÿãKx{W‡%|¬áã>f‡¯=||:Ю´9|ìáã>¶Æîð0r7‡¯ðqy í_P/ûÓ]¹_nÖgZÊùæôäfÝkH û®×I÷zÛ,5a¤oO—Ûݾ|E´³îå¾e¬.NüI÷ry»Üïfÿ99}²¹|x±Ÿo÷NNw÷ïáß0c:ËgùÁÉo',ùÑÃe@Lö'§Ï¯7›ýz³ïÏôƒRÜ*¢¾( ãr¬()©¢ØBñ*T‡”ú-”á­Ëe™j~{5¿ºÏÆÔŒ]¿\-w‹¬‘kq™q(c+òûùn™qN[ô~s·Ùö4ƒ­Ÿ¿ì/—«’]M^Üõ*Ì‘}»IÉ¡"_Ý__'”Ñ&F¾Ù®úl‘+F¿ÝÎwó¬€áTŸ^ÞÎ>ïtMÞÜõZ£8®†u3ÿ}QWƒºéýªxWJÈòŒµZ’¤^“i ÀÈe"×Ú¹YÞmvûˆÚôlâûóÃBz7eDdÔò,æ··¤ _O\äï³EÀ>Nè&ôK¤çcºÃq‚žÐqœ ŽèW[’3Æ(‘w¾Ý¨a0ÇxÛMFU‡Z‹Í‡yD‡5bT„§Q„N"Å ¡E}LO8N¬¥ùP–2¢eÅzÚÕüºïWä±Vݪ@N8Öš[-·›ýœŒ+)Ƹ˜ÐñR-Îf¹þXˆAÕ²—’wþqÙÂÑk°wýj¥"‚Mö˜žlrGôa“9¢÷7Ûåzù·Å|õPéuÙ< }tý\Y"òç¬&t’#Ó#=¯èóÛŒZÉLÍ5ùsPìùÍ®°Q?¿ÝÜÜg‹dÇÈ»K\£ <#ï¹ÖÖ®ƒè^ª@Ξ“ à|4V‚UQŒ”4±ÚíKzÝ—Tqöp˜qÞšXÌ=+X˜½©¢ƒAÚ1›úúþö}¿-œÑM¨ÖŒ™Š³ð­1-qŠæb‹e‘•Z,‡¬Übu¯Z¬€,Ý`¡¶%; a[¢£ ¶%9Š`[‚£¶%wDD-±rZRgäLÃÐ2Ùsp™ât83,Sl¾… жÁ"ÛjqPu¡%ª.LÕmHuaªnCª SuR]˜ªÛêÂT݆T'êÖƒKLà}«&Ú!ó.œÖ;èHj¢2€lÛX5Q™váLT@–m¬š¨@c-œ‰ 4ÆQcuK9A7)ÊiÀ1¨ÝPŽAåè†r *G·FCåè†r *G7”cP9º¡ŒÙ¹1˜CFc,ŒÆP 5Gd4´ŒJV %£ŽÕDÇèº%öN&7ƒN£¨ pDÍ`€Ójœ†P3à4‚šÁ§Ô è'ëoô“õ7ƒúÉú›!ý4„F™§áJÓ%žO 'æPÔ ”×5äEq§ÑÖÐRމïn~ƒÕU¨¿–• ce5P ‡Q⦑Æß„ðF% 4¬aLçÍ!-1Ó™` Âh ð4d>„Ψ8-#á€:R³0ÁÄÑ ‹†!Ô-EǤÃ\=§²È5€Ù=. ‹‘iëǘ8 ‘e&T\b,Óç KšI‚¥cÒli:¦f:q @ÓÉñ9Yâ0i ­d)p™Yâ6«eÒYD–˜•YD–™$eÅ$±€,s X‡4&dÙp Ë–ÓYvœȲç(YL>?“Ä)|ŠæYæVáYbºsˆŒ[…ƒH£Ó”ƒ £¸\@ŸB‹âpU_ E9f+6lVé@yö¦‡D ¢©âà!*¾Þ‘ñõö€LóõÆ­¹æh}DCæY±IFdÚ2ùÊp1²Y Ódš[@dšk%29 ga4DÆÑLïŠÏ‹™]3€¬l ö D+¯ÆÄô„MCÅ>аâä>b¡˜Þ±u(Y–0Ü’#V/<Û`ŸÏ†6b¢³œ†9.ð90½ñÌR;Š– ‹. 6)-÷)ìŒÚÌtœ™SLŸ 9Í4€-+Ç­,2Çã*¶ÂœeÅ>ªsl5°-ê“9CËœS™ãk­Ç­»8.2é°=丰 ä¸åQœûµ`y¥®&ÏJÔ¶äñ’º[ÌVŠt‡Z›WbÁÒ(ì9æz! ¿%²[bf ¹-3·Ì–™ƒ@^ËÌ= «eæ Ó²¯-3‡|–c=N™Ü²œg±U¿©,3c"Sн† ,f]–ÚW5VÌbŠÕm˜Ä”g$ÈaŠå&LaŠ- f0•jR™Ð17Åü¥rÓ—f¥f/Í*3L^š.È]¥ìbcmëõu؉c$®Rs±§öëØSGÇú©2ºc¦I«¥´eÑ’T©›jÙ!G•²©VMÀ.id$ì‘2‡!,ïqg‡é²S)¢êE…äTHl$€ãXxÔTª*FòHb/Çâä¥Rf±ŽcY©êËCxÈIšGî„p˜&„ÃBJB8,l'„ôé¨Taµ JV{$£â:ì)€ãYæ…T¤=“¾PB¨çƒD¤=‹‡´gû HCš‡~ÈBÚ³Ü IHÎKˆ„pØâgÜ,²Äœq¯ÈVP©Åj5CþÑa +Ãùõ_a[|èêˆècyq ¢Œ]Ê]$‹ÉsTúJGÑ|ܘ…ÁF >Q1Å'>{ØP´"jÈGcAÓØõiE̹”x`ŽžÃÜaŽ&ÁøtŒë—1,W4áô ð- ·“5ƒ:¢.5Yt{@µXXùÔÂXtŸ`: ö¾Â艌b§)Ãâ9Ö¸#g ܾO%³x\3žà0lã”áðŘ*¡ÆäæHc7–1À.ì¹Cãp­7TiÓ7âT‚L1¹Å2…d?-SD•™³p‰‘ÔZ‰ áÔ‰ïbLmrÅÏ\k˜s!”D%q!žäÐâF¹ø§Ù¸Û°MÁ[¶àÈÇ}ˆ—§Ç=V’çÇ WnBG>î¾rSéÈǽ‹j*ù¸‘ÑâüòêäÁÙ÷¢ø6¿$‚Ǹ]{gcðÎ"w”ZdãîÒˆlÜišÔb§³á’‚iKgÃa]6q6î4ÛjIgñlª% gÿ©¹¤él¸š©ãŒ2DsÅÓPŒ~sIÓP‘éÔv˜4”e…/iŽÐz9 >6ñÛ‡|lèY~lî‹KC—²•ßǦÛ£!‰¢~²“Ô?\Èm—¤p„,ix8RUm§¤0_+YFJõ’èÞDöÒÑí‰ÜvkäãEY¸F¢Ó}Šœdá%ÉènEnG¨f0y®MøŽø¢`X3_6HS>ê¿ÊE“•ÇÇÊÉIø0´™C¿¯ÁÇcžvV‚ºŒði|Oø‚$¿'|픉|Ä¥õó„OŒ`äcP  ³6’€ˆA.1ˆ ±@Ä †£EÄíCáKð¤_‹A.à¾[‹A7!æÐTmñQQ©ù EŒ„´¨ÂHAH‹:ÂíP‘QZCÜ•ÊBÆ€gjb ¸FZt’Hkäe„¸Fb‹´Fíjù¸F¢“$ºç¥$|‰®:iù}<Ó’ü‰.ii|ªàhCTÇ#OÕ¼1‚ ³`ÂÃ¥½,h2•œ•’0å+-­Q]rÂGèVXúÂGèNP]á£êàÞf¸â'™¦oúI ÈŒþŒ$áxﯽç¡p¯ä)PR `†KmRŽ0Ãݶ ™ÇpÅMªÌpÓMªÌpáMª Ý{3íò±c ¥3Ü‚‹ÒøÃ1Q¾á¦˜@ Õ 6K6`i|©L4nx_ZªQœ’ß§#où}:þ–ôC5Š“Â‡¡ʼnL5Š“êlƒ0ã¤ðoµžà¨^m¥ÇRÏ_²>KáG ^–3ZœO™¤Ìf±úu^`SKÁIÅm©dW´¥v’[ЖÚIY›¶ÔN2:ÚR;ÉæhKí¥} m©½Tô`QªYSþˆM‡Oòët%¬™§VŠ—ŠRO­/9´§Vв|Ø““4ï©•â“ <¬¹µ—ü KîÂßFá¤|à©_h…`ì©ihEÕâº:qn\WÉ=nÆ|»…•¨Ã_ª,Á©E29,äu¢Öñúð{MS6^O•LŽÚÿAªÀè ´;HÀÆCI-JŽ”RùDÇAZo*àu¶¸T¿ëk¤ò½ðåéQ±íîòñN¬¼%’7DiÉ¢TFj,F-˜E¤ßÁŠRué×±b»—†³˜ ‘~K+JÙ)Ò/lE+NÚ“üNu‚ä1‘ÌR*#™¥#™¥#™¥#™¥´1¤S§(mºè°%J©Ž:¢$9wDiGE‡QÊÙtò¥¾'D)µ g RÓm8‘rW¦¦¨¬9'rA~ß—%SOUª¥2µT¥X‘Ïè’·88Þ÷¶âÛxõ[êfTk’rCFµ¦öùý1Ð Zúoô‡º×ÛÍÕýe¿=}öúåìÙb³ÛÓßš˜iu¦ J8éηý†x2ß÷§OþV6ÑAÁ%am•qß)ý¥þR{µ¹ú“'p ÍöôåüMÿëìÓr¿˜->ßõÛm]¸ôç Ê÷ï/BÃî÷‹òBùé‡þó§ÍöjwúàûïÿÚ0º endstream endobj 2687 0 obj << /Type /XRef /Size 2688 /Root 1 0 R /Info 2 0 R /ID [<26A9DBE188432D009077456DD5497039><26A9DBE188432D009077456DD5497039>] /Index [0 2688 ] /W [1 3 2] /Filter /FlateDecode/Length 5787 >> stream xœ5ÛwX”gºÇñ¹iÃÀÀ3ØPì{oØ{ïbC±#( 6l(ETì((Å‚±€‚Åšd“ͦl6Ù$k6›ÝM²ÙlrvÏÙì9×nÎ;ß¹ùçsý®ûù½ï SžwFÐf³Ù~þYÌwïÛl^¶€4[ ˜?&Úlb&ý¤“/›Íîžüu«Ûï²Üsk⃂^èvôE?4èNt çÌ„ÁØ]‚õ°>6À†ØC±16Á0lͰ9¶À6Ø[akl‹í0‡`ìˆp0vÆ.Ø»awì=±öÆ>ØûaŒÀ8Y~h›HCqÇ8G¡§?Çâ8pNÂÉ8§â4œŽs1gbFã,ŒÁÙ8qÎÇX\€ 1áb\‚Kq.Ç+17à*\I¸×b2¦à:\p#nÂTÜŒ[p+nÃ혆;p'¦ã.Ü{p/fà>ÌÄ,ÜÇ1bÂÃxsñ(ÃB<'ñžÆ<<ƒg1 ðžÇb,ÂëX‚ð"^ÂËXŠWð*^ÃûX†7°oâ-¼w°+ñ.ÞÃ*¬Æ‡øŸã#¬ÁÇøkñ)>ór¿k<;Ò |‰¯˜ÛPÄÕ4Csz£ú¢ÚÑ€èĦŒ]‚õ°>6À†ØC±16Á0l…Ͱ9¶À–Ø[cl‹0ÛcìˆØ»`Wì†Ý±öÄ^Øû`_ì‡ýq0ÀèÙµ†áŠp8ŽÀ‘8 Gã‹ãpÅ“øsñ!æ`5Þå¶üÉ•d;ù6Ù×:óC½•Yb&kŽÁÙbs^×É^œÃ±78ÖóÚ›‹óp>Æâ\ˆq¸ã\ŠËp9®Àx\‰ ˜ˆ«p5&á\‹É˜‚ëp=nÀ¸ Sq3nÁ­¸ ·cîÀ˜Ž»p7îÁ 1S ôQÚ'¶Æ}4ßÇLÌÂýx³ñ æà!<ŒG0â1<Ž'ð$žÂÓ˜‡gð,æcžÃóXˆEXŒ%x/â%¼Œ¥x¯â5¼ŽexËñ&ÞÂÛx+°ïâ=¬Âj|€ÅLÿTÉGbkWÏ¥R÷Š|ŒO°Ÿ¢g/}Ž/ð%¾â 6qõl©gôBoôA_ôC;ú£0„ÁhÐ…!Xëclˆ0c Ã¦Ø ›c l‰­°5¶Á¶Øñ=vÀŽØ»ˆ™ÙZ®bëž yvÃîØ{b/ì}°/öÃþp ÂÁ8‡â0Ž#p$ŽÂÑ8Çâ8p"NÂÉ8§â4œŽ30gbFã,ŒÁÙ8çâ<œ±¸b.Æ%b¢ãõ‘\*¶!šOá2\Ž+0Wb&â*\I¸×b2¦à:\p#nÂTÜŒ[p+nÃ혆;p'¦ã.Ü{p/fà>ÌÄ,Ü0bÂÃxsñ(ÃãxOâiÌS¦ä±i ¹Ïb>à9<…X„ÅX‚ð"^ÂËXŠWð*^ÃëX†7°oâ-¼w°+ñ.ÞÃ*¬Æûøâ#¬ÁÇø„«m1¾dòŸ‰™³M‡çb‹úѽ²tzžþ+æÖŽ7|½v½Ð}ÐýÐŽžÏ çñ9` :1XÌÜ}z~#¶äñšÛ¢ C°ÖÇØa(6Æ&†M±6ÇØ[aklƒíÄÌ+Òû.¶ìjî†í±vä§+Àg˜‡µxkð>à¨NäƒX…ðÞáÓ‘ç‘ìŒ]°+v3™ÞŸb»ºKs?쉽°7öÁ¾Ø#ÄÄöÖ£ˆíy¨æ!ÜúMnÝóœÄA8˜Õë¬zžý¡Öy>×c‡‰íÓ75Åá8‚£®Gâ(cpŽ³àšža‚Øþ]÷øÏÀ‰8 '㜊Óp:FâL1 ·è¢DÂhžÑ8 cpΡÍy"Cûh^ˆó1`œÕÿR;‹Df÷×¼ ã\ŠËp9®Àx\‰ ˜ˆ«Å,zGÏ–$²îWš·â\‹É˜‚ëp=nÀ¸ Sq3náy)åÙò%²çV¶áv1‹ïè$M$çµæ3¸wb:îÂݸ÷bîÃLÌÂýx³ñ æà!<ŒG0â1<Ž'ð$žÂÓ˜‡gÅ,m¡÷<_¤4Es à9<…X„ÅxÁ:Ãïõ¨‹"5Ùšïà%¼Œ¥èyµ_ÅkxËð–ãM¼…·±+Å,û³ÞÊ]‘ÿÛ½÷éûîVa5ÞGÏÞòa >Æ'X‹Oñzvæø_q[Öž¹BoWÐ}Ĭh®s_‘ï4×C?´£?:0щAŒ]‚õ±˜øúzþ†â容6ÂPlŒM0 ›bsë éQ-°¥x5;¨“6Ø [c[1+wéj;ñŠè ¹#†c{쀰³˜„mv¯EÙš{cWì†Ý±öÄ^ØÇ:÷zT_ñJMÓ<ûaŒÀ¼g/¢çù„ƒÅ$–ê±CÄëðgšGàP†Ãq¤˜UQÚ%^WÒ5ÃÑ8Çâxœ fµC›Åëe'Í3qNÆ)8§átœ‘eíc=C´x}Q¥yΜsp.ÎÃù‹ Å$•èâp‘xýª“x\ŒKp).Ãå¸WŠY«G%ˆ·ß0Í«xÌ/àe&‰¸“ĬõÓæñnòš×ãZLÆ\‡p£uì[Úß$Þ}þ¦y;¦âfn·_0Ù‚[q¦á1ɇô ;Å{\†æ]˜Ž»q˜”‰ººW¼Öåý˜û0³ðf‹Y¤ýƒâ}\ó ÌÁCx`.ÅcxOâ)ëœu;ÞiñÎGóÌó˜/fýy]-ïòš ñžÇ",³a©vJÄûå3Í—ð^ÄËb6Öí<¥xE¼?~O'×ð*^Ç2«ÿK]½!Þ×| Ëñ&ÞÆ;b6mÖN…øx-Ñ|+ñ.ÞÃ*¬ÆøPLê4=ê‘ø„&k®Å|ŒOð)ZŸü77ÕæsñéžïÎ>™ºÃ{^Q/ñsë*÷L;^èmáµN|Ägô»šýÑýÐŽ ³¥D›âãùtmå tb01[êªK|’Úin€!XëcCl$f[m†ŠOÚ-ÍM±16Á0l†ÖÕaÛçÚl!>Ù/4‡cKl…­± ¶ÅvØ;ˆÙþPí(>…Í]±vÆ.Ø ­OòiéÚì!>+4÷ÅžØ {cì‡ýÅì¬ýñyõkÍSpÄA8‡àP†ÃqŽÄQì-§ñ “Ñ8Çâ8p"NÂÉ8§Y÷óg½oÓÅçË¿i^‚30gbFã,ŒÁÙ8çâ<œ±¸b.Ÿ—‰Ùù¶Þ‡åâóï5'à ŒÇ•˜ˆ«Ä¤gjsµø†ÝÓ¼“p ®ÅdLÁu¸­~W´»I|ûÇjöìêÇð“TÜ‚[Åì6ÚÜ&¾S[jÞIÿy;¦áLÇ]Ö±oi·ø.KÓ¼÷à^ÌÀL̳ç6÷‹ï曚áÌÆƒ˜ƒ‡ñˆ˜½3µŸ+¾¥]4ŸÀ£x ãI´öüŒ mžߟâ4ŸÅ<<ƒùX`õßÐÎ9ñ«¿_ó<…X„ÅX‚ñ’˜}õ¨ËX*~£ÒÉu¼‚WÑó8—á 1™ýµY.~Q[5߯›x ­}>óOºZ!~‰‘š+ñ®˜¬í:¹'~;?Òü«°çïïªGâ—û¥æ|l­>ÕÉñ+®Û™Ÿa->Åçb¬ÓÕâW]·[¾ÄWb²ýÝ_öÿÕÖçIñ{«½N|QÐ ½Ñý¬ckµi¿ß½Ðì1gë$@üþ>Rs¢ƒ­ætÕˆÝg¥æú謇Ö7…œ{Úi(ö°UšC±6sh¡Î›ˆ½Óך›b6³:ÿÐys±Ý£¹%¶ÀVbŸÕyk±GþBs8¶Á¶ØÛ‹9­b_^¬¹#vBëÄ‘ºŸ·‹Ø·gjî‰]±vÇØ {‹É-Õ~±gß×}±öÇ8PÌÑ¥Ú$öÓŸi†ƒqÅá8ḆÚ)öÒ4ÅQ8Çà8oõ†6'ˆý·š§áDœ„“q NÅé8CÌñszT¤ØßÈÕ< gbFc Îsb®6çˆý7uÏø|œ‹ó0ˆ9é­…bÿê´æ¥ì´‡ñ>“8\„‹q .ÃåÖy^é±+Äþ_—4'`<®ÄD´®/§R´³Zìÿ™¢9“p ®Å\'æt?m®Ç âo:ëdnÄTÜlõ_ëêÜ*þ¡ßë$ ·ávÜ;ÅäÑN:îÿöu’»qîÅ}˜)æÌ,mfá~ñø@'ÙxbŽÕÿYWáañ5I'Gñæâ1<.æìíœÿi_i>'ñæá1ùQÚ9+þ±©š 1 ðžÇ"´¾Ak¿DüW¿­ù^À‹xK­~•v®ˆêmÍWñ^sn‰ÎËÄ?çæ›xËñÞsÞ©;⟦¹+ð.Þ³šwuµJüËëvÏk¸ ue)\¤«ÄÿyœæÇXƒO°VLQ€®>ÿ#4?Çgø_ZÍ ]}%þ_vg¿“¥ueI=®AoôS¼Vç¾è'[C ýÑèSÒY›AâpŽÓìÂ`4‚õ¬þ‡Ú©/ëôäFØb(ZW ;´ÓDZhnŽaØ›a l)æâ(m¶ÂÖ∯“vØÛb8ZW‹ßi§ƒ8ÆœÒÜ ;bgì"æÒI]íŠÝÄ™¤“^Ø{`Oì}Ä\^ªÍ¾ØOñíu2ûcÄAbJë~öÁâØüDó0‚Cq8ZWÒO´3RYµšÇâ(cpZW+Úœ ŽüÍSq"NÂÉ8§át1Wµ?CåW5Ga$ÎÄhœ%æZ¸vbÄñôgÍsp6ÎÅyVó]]/Ž&i^ˆ±¸ãp‘˜ë´³XßlÒ¼—à2´®ecuuÆ‹ãç%:IÄ•˜€«pµuÔß´“„k$Àü “d\‹)h]5näéêz hUw‹›pnÄT´®åÑÚÙ‚[% ×¿t’†Ûp;î@ëªqÓh']†Ô¼wáÜk5«u5÷I@ä§:ÉÄ,Ü/æVÝkõfKÀò :9„1£õ}ävÝk5WÖ¡ùÅcxO¢õ}ävÝ+ö´dtМyxÏbžs§nO;/g—k.ÁB,Âb¼€ÅTL׿% (Õ|/c)^Ákh]5*ëk³Ljü5ßÄXŽ·ÐºjTþR;w°BÞ­ÛUª°ïâ=¬ÆûbîÕæ|(Ÿ¶ÖÉ|„5økñ©˜{1Ú|&ßÚ5¿Âçø_Šk7ßìyªˆ©²iö’€ŸköFôµ:Wuî'ÁšhG À@1ÕÑÚqJ`X¨æ Fcuþ£s—öø“æ‚õ°>6ÄFbîWk3TGц± 6Eë»Æƒ¥ÚiŽ-$0²§NÚ`Kl…­±-¶ó°ƒ6Ã%0®æŽØ;`'´¾_<|O;]°«&½­“nØ{ˆy´Mç=±—nŽÒIì}±Ÿ˜šp]í/«4Æ€qÁ¡Ö±_h˜ž‹Õ< ‡ã‰£qŒ˜Çgµ9V¯7×<Çáxœ€“p²˜'qÚœ"êîçLœŠÓp:ÎÀHŒÂh1µ]õ¨YøÖo4ÏÅœspηŽúH›±øi]ŽÃ¸áb1OÓµ³—Jà·#t²—árŒÇ•bžuÖN&JàÿíÔI®ÂÕ¸×ZGýQ;ÉâtÔjÞ€)¸×ãFÜ$æy¡6SÅú@ó6ÜŒ[p+nÇ41/æks‡8ÃkÞ…;1wã1/ig/fˆ³o3dá>ÌÄýxÀ:ªîužÅ9òµNcÂ#˜+æUÝkþ¨8c†k>…Çð8žÀ“xóļQ×?#ÎÄï5àYÌÇsxÞê£Bqnú»æ X„ÅX‚ñ’˜7Ë´yKÅ™Q©“ëx¯â5,ÃbÞJÑf¹8s¿Õ\‰7ñÞÆ;XwÑúñ‹azT•8 “5?Àj¼ñ‘Õÿ—vjÄyã€æ—øŸ`->Ågø_à+qåð¯‚þùîÿƒóö»šEœÂ5û¢z£ú¡]Ì;[´é/Î7]šèÀ Ä ó˶Ú4èç'#tÒC°ÖÇØC­3üYûÅùC–æ¦Øð6ón®vZH­Ÿæ¶Ø[aklƒí0\̯¦h¿½5²kî„°#vFëû¯þG;]±›uÌÓIìŽ=±—˜÷ uµ·EœÕÜû`_ìbÞŸ¤4¡‰æa8á`‚Cq8Zß>Ö£Fâ( š5_' q4ŽÁ±8Ç㜈“p2NÁ©8 §ã ŒÄ™…Ñ8 cp6ÎÁ¹8çc,.À8´>ÿð¾ÞóŸD‚Žéd.Åe¸ãÑÚÕ?<©ÍL” -Å:Ù‰«p5&á\‹É˜‚ëp=nÀ¸ Sq3nÁ­¸ ·cîÀtÜ%æ×óôþìÆ=tôdà^܇™b>òÑÕ, *ª{–sp?Àl<ˆ‡ð°uìcí‘ ŠÿÕ| sñ(Çb~³U;'ñ”½Y÷®ÌÇÓ˜‡gð, õyþãºwây,” ßÎÖI1a ^°ú¯uõ¢}]ªù2^ÂR¼"æ“ýºzU‚þ¥ù:^Ã2´vïßöÑÕr¼)Á¾uï÷Ûx ï`…Õÿ\W+%8ä/šïá]¬Âj1Ÿfêê} nÙWóC|€°FÌg£tõ1>‘à^ tR‹Oñ™ÕüNçÏñ…瓉ã”îÌ/ñ›„¼¥«ž¿CóBoôE?1ŸWkÇ.Á14¡ç¯L€èÄ`´>ÏÿnŸå’à”bÍ!Xë‹yÝSç $8ýkͰ!†bc«ù[]m"ÁÇÊ47Ã0lŠÖ®þE²®¶À–|íNÚ`+lmÑúlÿû0í„Kð‹"Í=°=v@Ï_Ÿzþš´3vÁ®Ø »cO´vòßÿ gë-ÁŸ}£9û`_ì‡ýq€˜/Ois ’àÇèd zþ:Ôó¤CqÇ8=¿_cp,ŽÃñ8'â$œŒSÅüa¼Þî4œ.& D'q8#q&Fa4Μžÿ‘4çá|ŒÅ¸­üŸëm-Æ%bÚ„èdz~S° —㠌Ǖ˜€‰èùk¢Õ˜„kp-&c ®Ãõ¸7bª˜¯Jõ>x~¼EÌÀº×dnÅm¸Ópz~œŽ»p7îÁ½˜û0÷‹ëÕL÷¿â¾}Ýí‡7Ýþð½Û8ÝþÛ½âúÀm“Ùn[vs;²£ÛcÜF-q›°Ëíæ\·º-(t[ÓÞí|Ýþå}·Mpû½õ}\êù?uëøÌmØ7n[ø¹íìÞU\§.ê#-®ÓÜ·¼ŸtrH\ùî£\_¹=?QçGÅU侟®â›:9!®’O4Ÿ×¥÷Ü«¥—urF\WÎiÎ×µj>'®²,Í…â*Ÿî>êÖ`”ˆëÎK÷¤2ÞíÝn«šº­Nr{?F›WÅõΣu:)WÍ|ÍåâzR· ÝWí3wóYÝ{¡B\Ï/»'/G»“~·ÜvÿÚíDëlÿ2aÛ endstream endobj startxref 1198450 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/scotch_user7.0.ps.gz000066400000000000000000026114451514310134000254670ustar00rootroot00000000000000‹`•‹iì[ësÛHrÿŽ¿bnSÎJ‘ H[¯ÔVY’å;ÝJZ¨ØÚs¹rC`HÂ,¹(þïùuÞ%­/IåCh‹zzzú==ÃÁ›?ÝŒ{'N0Q½a`¼ys)™ѱpÝ0ÞyØÃÁpØ·Äκ—î£bÀ®gA¸ŠÜÙ|º¸VRá±ØyzzêGÚRj¥úv°ØÍq¨‹ôK×W¹ñE/¾9¹9¿_üýü'ù¶°!cßÈH.ÆÃÀNèþ´Ovâ–qF6Hò— M”d¿?€ÁÂÖh`˜c9UÉêÜ·½ N#%b ¿rÔ”ìªf®öX%Ç"QË~d`ãÍŸ D?¸v"FШC7è$ à„ºš×`kü™§ÙÄõBY_›ãL-í9nî³±q½>5O2' q½»Í’Hú±—D³{±˜J/VâÚ|Œ¡[aYâ`(©Èœ!‡ýwäAm¡—ÆGƒŒûñØï®ŸµìË@Ôp,ѳÖYÏÖÚ*g`@¼¯vàÛ2Œ»Uqà¥)ó‘ ŸZ _ÍDLf<†Q¡ŽŠž„­!~‚õÕpz9ËÆB Öîn‰¡n¶&Zô¶„tâîö‹±Iä.…FQ?e'âDD·"N'BNb1è#6–ð’Œ0ÚzDÒó4¢AÌæ}èök¬rb0Õ{’:U¦Í–DH(dÛ÷påTzS¥œÌˆ™¤1y‹Y5.œ“°í tUœ™ÿ¢oÄ=€¯dòÅâÌÒãËWãÚüxzúeÀ°Á×kÓ÷qsm^œë«D|u¦½Dº^Fí‡ÚK¯îÙ= “²ÒÝ*Tb\z¸ÒªšúI´ÌA§Èjƒ¡cŒFfN$¬q/dÉ•ažºè…½7OS×sÎæ2Ê苟TÝ ¶J‚¸»È™â$3§A  Á)†X && 3¾1´ðé@ð Åò|2âi.YF·n5·¤$qmäљƜ°î5Îî;¸Ë²æDÕá< ƒF<16H>Ä[Éã©yö”uá)–ÌÅ;öœ™â¦y£émÑdPÛ2³†H²µöQÑNWBY5ºËfkxÀ(pœeɪïꦶ4µ•èRf¤9 ±ñgèи&ç&¶K;eœ÷F ðø±8Ñv&.†¹K-ù~\Yœ™8¿P^a'»Äõl)ÎVâlΜÒÃ~¶2 T[Úså¨G×VÔ, ƒÊÍ{˜èч»®DŸÅýš¹kwùc!ã#R1êA>d¦mƒ‡N|¥¼áû•<@%Fi:ðý¶<Ô2ìZè{ÒVøI©±6à”3h4Lá¬ôW¨úÔ¼È0¤~ü€ÇIfi¬"Îxè̓àA<øÁ“ŸÅ3¨™ã =] ÃY7‹àQ%ùItå5ðg1_'œ<9e 4€ó!±Ð?:¢$gþíÓ:3o?ù•#Žæ0Šü!r5ÀD®hQ2­šL«Šgσ§¢¤ˆt%™QvãçzÇ ÀʃÕ“ú½Y0¸v¡ˆÆä@3%”á»}Š ¥až¢ ²…†w!À•ÅhÀ¢öÅ[C›Ï~Œb|q~¡<Ïbï¿;8´úû<ŒžSî›@=éÞ¯¯ ÓqÉÙi†uV«¬z¤Ü³J4À*IŽ1,9ÆÈЀ0ÓÍê·¬w4@bªP¬MQ>®gÔc8ôœµ¸\›·sȵyú!@pC5¹Ö€…°ÅÜr»âû)_·ŸÌÇŒ ÷Ôz/>­OE5å…ê"'ÅÓÓ\EŠÒ¨ÁåÇ—nzrµ»s­îïvw.‚ÑçÈEµ&¬}¥Úî׬Œ°‚Jþè!üŒVSîÐ|W»>(=¢Ô‡FÈ~<“ª¥KµËš … =“¯ó²(wyLEY6㻻匃ÿ¸³(ع È]×`¤ÂÌ ¥U9HÌŠ$´î¤¤ûkZDµ¢dd[)åÜ"Bsš¾BL%”"QB”E­1ª[áV:Mp³YB¥+˜¡©¯ •gB£L]$ÿY•Xe¦éÇ*/‘ì\Rœä€{¢_ æU6¡ÐMqùÜ:apþ`g½·âŠHf½ߨ¬7ä›)U£W4ßͲCæ™ÅW7Óß2Ýå!Ó4ž²Úø¦—…ÄŸp»ÈBäéÖ'èoºµø.#ô]„;ÝãN÷Ip§ -3ÅãÚ +°0Ôód($'tTlãqž¬Ið\ê‘<ÍÐë¡|=±±¼ðFi?¯Ç+žj©ñÿÅÝÜQ]“}”øGî{„6S¾Šñ䒻̱” l ïP zn²ê—•xVAøÄ¼Rbê±xB çXÕHs%Q&ôd)°v#êAH‰«®è¶=fæÇ]êGÕª|çŒÖîÖQ—ç4ò¥¤5„ÿ¦ì¤èp‘`N[!¥ ÓÏ“”$Aam"=/PCN]<ÃÙ‘=H4,S—y­×Ø ,nR,[mq‰*ÃGHí\ÞÜ\îî þAä‹Fš[¬þÈ.I@Ë^ŽŽawPU® \Ú]°³´>+{÷KD°˜E)¨Ó&5² Ï<’ž ©ñ™'I›&-‰‰Î²jþûA43½0ôúɲTû;®!&P=’?”ÖhÉS?ˆbís=ÐÐ,Ðk^FlHÄV/ñY(-µQkÝ×Mü¡^w–rmé!ºÖ^õàÉÔëhp}Lp½åVƒÓ6ˆZ*»ÎÇãþÛì1Õ|eFÎÃꉯ|5»ÖLR™Ë kÉ…Þ£ïÆ~ÖxF©4(z£I@Kç ìJ î Áý Ý¡ØDŽpgÓ*®t*Ä­ÒvœAzÝl6ê^ºÕ&ôiUãUª$¯rSŠ, ¨øà4¯[SÕõ'¯jІn ¦ˆ4‡—5“éÚbýž¯Ý[•iÕ°±ûÝð‹ÆÞ7)…Év(³Þ“ÏAt¶´ö`6‹ñq:á“|æ%ìÜ®:syQ­ËR½+}gÛÆm™˜^ÄlDr7vWíÂlüoÎ<àwOƒmûÍû'wžëK¦.[T[ÏÙ ‰Õ°}Û¥¸Ài;t}‡–£i]BlOÉ(±‚FÝÁSúymŸ«Á•>ŽP\x97¢Š"Žq‘ÐôÂöÏ­”½ÞÞq{`æ¡ÉÙ{Û¸#[q/r¶>!ŧQ ¿ìqJG}-Qž÷ÅØž/\'aB—j¾þ±87ÄãÏìÐO‘³1<ðƒÇÁ~ÞDÌúr¡¸IËŸ·¨…t½¢(¢3ìñû÷I:£3Ei}6 VqÄŒNÚO6rå:J2ǘÓÉ;:ÒÄçÂæ2’6½$ü ZHÚ"r}ÛKpæW,Í,HÉGèJNÀ‰IsM¬’„v†Êcw01á>*PjzüÒI?å8¥úöÄÅøq)ALX{â3 à)'×㋜!þ1™žFˆW‹Ià‘ià`·Èð%Òw,hw-‰d}ài,Äej»ŽìkœÈ ÔÇîÌç—¯øLÒC!¦çcÝkÇÚeÜÕÆ‘ivÄ +Xas£>È„A¬ÏâíÁø¶Lé—â»@£Cà±°¥O?c*»Pe¤XS*w6ˆÙ¥£€Š ˆl í#ÓÛJЩ:>¹¯âD-â¾>ƈ’«dÚЀ•IÄu¬ô¡7…‰ùˆj. z=¥ÌSÐûR¶ ‡ÚÝCžãP‚¯kXL“ù*œ+Ÿõz0Úí‹ßÒ Q1HÑØl±«’9‚Gøã7}ÜNkÌM~Œ1‡£H–DÂPÕêr$œ<÷—»±º¯´ž»ÀÎp¹Áïóy·–Ù!èHe4¡“ÂÙÁCÖ‡C@­– ’Ÿ'Œ¤?CüÉÇÀeGìÑë‘$„5"lʲODÑO!éb  ·- nF»â×ý5÷RqªOƒæ¡×ý)*©±ûï¹›Æ<€1´­´éoà‰c;räp˜PEszæ7:!ŸæçƒŸèoC9é‚oî!±óø¬Ç=ú^±vÊ Á/%¼r°´†}nbm5Ó OÅñ7aN§ôçÒ—WHüvWh2ÄZšOžèâÉ!¬9ás¸:5N “8Ÿ]\°^s'îó´´ónW˜ç”ž´¥ñ`0kx¸G %5£zíïŠ+7Ž[öçlQ¤•*¿Cè }f¸‘ò´\Ó6JùNH“­•£÷Ÿ—žóN&œ[ý–J¯XŒŒšKk¿@uý)|ê+P÷Û¨*Y©FÖ:8l£¨3öœ¨À¶ŽÚ¨G*…ˆK¿óÁú„z8l£ž¨ð»…Ž^ÍÀá†X§%Õüý†B¬Ã·mÔ³Õmî\¾k£~¨”•(ä›R¯‡mev3Y¨™¬Smkà°¤š¿´[¢µ8¬IRÅî_0ñ©ôp˜•àSê>µ-\¾Í ¬†*I³Þhà·40æóD˜§Â<ÃÓ$ia~æŸñða^ó¯Âü—¼æ5‚‹û¾£¾7Âü›0o…9ÆÃ0ÿC˜Ÿ„ù÷Âü>BîC«¡„ô0-r¿ËJ­Ù®k»‘Â2üRDlÓⓆڧ¡XõZÛPæ"“­ ”ùðšp¸ÙI‡…r Q&q@$BP{CMxT˜Â|2èghsh¦TÉk”ê<&ô‚iLüˆóÔV娚ò›šˆÅ ¢½ Òí4Xy‰(ÊMGÎfd!}¹+dêÑFü•^ªqœGÙ,u=$çù—ó"ù•‰­ž¶˜Ý£FÊØ¼)ÌIþs×Ú·qe¿÷¯À~pE®²ˆ~àér9BèX)‰Òš–W.­j3â€âTf8ÌÌP&ƒåßsû9’³É¦²viˆ~ß¾¯¾ºBÒ3áà ð7¸VŒÝfé܇g âŸeçÞçî,gÛ9x¿ø—å ¦NX«Îb—ôÈ*v6I6¶¶;¾b÷àäò»#órÛK¬ìöݹw¡o2”pŒ'Þî–°g@DãºÛlƒ¢®·‰{¨–»Ã=; Œà"Þ,΃×ÓDëbï:góÞSÂŒ÷7ÖÚwÞœC’¬îü7ÂñæÆ:tæú2øš"B“ë– kaÃØ(ß@oÖsÒö^‘°wÖÞq}¹X_x|ö~ôÄT;‹šfQy÷Yyòª©VVÂTkdgå‹ jW{ZÉ|7­ï¦vÓ‚†wñŸûŠÏ§ŸÏ4¢±F†ø2>õšöÊ7~e“òO[¿ µFb77ëÃêšhǯ¼zãûxã x3vZoƶ¿ø ?]nw¤ÒÝŽ@=>¬q­u¤¾¯…¯º˜’³Ì[Œ}.óä¿Gæu¾›ÎwÓM»é&Ì[ùŠ+_q5­¸š1Ï}1ïʳeëoó¶ÓÖÛPk$v¹ú´²ØzÖÝønüð73ÖÝŒ-ï|…ƒcÝÝ@Ù{ûí7ožZÅzØ‹ÉC²Ùó—ñ  ½1øÓOgâæju²Y\ÿÎÞˆüéã&¼†ñÒɳß}COíý—M#¸:;WÅ  2q(®Gþ|ým,‹ìefÿ0 ±Xü#õgkÔ6FŠ5ÅR.ç¥s q3„l6;èÆØƒuä\`Ãâ3[…|=.˜­6Ÿi GÕ­?u7ÖŸ["f¾Â;øxq±Ze"Ë’“óŵ«·Øí¶¿Z‡é.ÂJй)ÙÛp{_íº ùè`uÀÒ4ÏjŸ\u¿o1– ÄdÁ#Ú2ï!ŠXÉDÊc3.\°÷YÆùòHqˆò…^N²m¬ÇüŠA±¥%Ö¹u6„â!ê³Aßv½Üîh|L`õ˜$H c’bÂI ±á˜BŒ8IP¬8&mÈ8&iåSGæH“wâµKšÏñRžê^¿ÈåÞÉXÈ|*˜©úÓœ*KýŠã.ùaŽö6qsí/†•ᬻMy`È=Z}¯ÝâæcRáêœÌº[\¸ŽŸí†^77{êts©æÿ*©Žž‰|,ü‚#t°ª“Åú0˜:¢owêØicNw9½ßu9h;Ἃ´Ù$â¶úÄEƦÑ6ó1¯×6®‚Ûm‡\ÔÄ ]¨ïnÊ6°êÃbwçû®Êp‘…`"À«Uðû­»Z¯vP½Öÿkï@mCÕ ÅÕÚ²ë¡Õr‹XxŒ½CULrˆ.¦Qo• ¾S¥’”lï65ØnhA…SºF4=¿ä!Bwƒ$i¸È#ØÁ9£àœÁ9‚ó!6÷â ñ9›Æç.ßÞý9Ö Ñ¹'Jälž3žÛ.}ˆî#t6Fèl¡³º ÐM›› Ùà ݳZ³iŒÎf1: 7cl›³›?Xo™»•üŠÎëÛK\ÑÿÅöx4ðhþn²†€üŸBWûÿ“]æï&ˇàÿçTù8ü‹aø¡»ÂxüÛ!Þ]ô««¥Å£wúÊí¡uz¿á06ÏÚP/|Qüæj…R—kû€ÜäAoæÍ»°e‘GAŸØHöt’ß`—†Ü¢Þ$Ú¨@ÓØ8ήº>~I¤Î÷ãæ®‘úá |ï 1O Ðeú`½ð],l|r[TüÍ¥¦ÓOê¦FwÛ )‡X1ã@¨3P:Ý9ÒyXÆ>pÚRˆP@%‰¾î/½GÎTÝÓ®?Æ»°cïA§S 95p˜^7RVìaåè¨Ø{:.€" f‚=[/®„ ÉP*Ùv ïulK‰}â÷ûˆlííãÛâaà ÌÖø±³rélzk|fwì£ÝßÖ}ÃqiÊ; HTEÓF–+n{̃„ìdìÇns‚ XL£n¼øÚOvÜŒVc7AÅîFÈ—MpP÷@Ÿ5B·ÑHÏS¿óÈ>;sÍw–ßÇ—{ ízÊâO{x%έ…Dúäþ\îÏ-$á'ÿwa±ÈNãúÅó×öb÷ëê¬ë®ª'–¹ËY"N‚NíïOí³~ú»Hèw¨z ˆ´pRXC‘åèäÙ¥Íê'%«ìÜâG>ût´øS(¶˜f=£é½u¤ ]i±zšì<ÿ|½ºî]Žt9—Û‹ ¨4X´enÈÎØ {#Ô[ŽØ48Ñ ‡ç†K X31-0g¨sië\ÎëÄÏÖëÛ>&°·.uG©;—ºÙÝbVsá“($„ Jm*WÐL²ÙøÙËiΛ >ßféòβÈûXOFÁM„ Þ÷¡Zpê}n³d›Å­Ïûfl(oêý%Ý¿Ãt&cjzÇ:´#Þ.ûÃíõÖî~âÑæð‰"ZŽaglqX\!L‹Þøb$X{AØuûG¸b÷÷“R6)v8b(ÎÂÚ hÙóØÑá²€´õ7æ1¸aO`O¾Mçþž~½Ûæ:Ùwç)-ìî½øãyt»¼°kmä,éø ÙZtñW\_ì1”‰ÿû¿ìõö÷…;‚LõØëÅÇþõKœ^/Îÿ|ÏV„ùë¤Ò_ßî£ë»½G„»¾ÞMÎA_owýÕö‚ÞnØ•üÌ.¸g#g×FöÔ£Ò‘FÜR½èÎþÒúÿ (x@ùŒ§˜=G|½›ÀÑ¢K)ן3¾Þù5vZî xíÐÌ m÷Ö<ÞÒ;’`ÇŽŽË\Pázv}ÞÎ{žµ˜Óe[Ý÷,pÍLÿd~„Ç7¶aågyý¯xÆ>óhγ µåqV±ÇÃ}‰UǧOý|I¨ÜŠŒéqí¼?Ü•Y?×Ï„…(†|”CZcÇ,é<ˆ9)3ëÜ#rØ_æÆ;ϯCÌ:à†F×›7Ï‚;ʬ³£½|n)cq¥@MÀÔÁÝ÷;t Ë¢¶r{¨.€@K­“õ‘C?|8pFÏð=,«EgdÂæ'œÁƒ‡A„s;ñÖ=:x/í³¿äö÷ø ,m„žÚ~ñż׈]îGˆGÆ#¬ÖÍ%NÂ!cðˆÖÓÓÔ¿`…¡,PDà¸B˴׿.÷´JÓZJ‹­Òiù¥/»¤²»ˆ–^_vo1ÍÙT§lS"ˆªyÛè¿ÐÅDJGZŽ ë‘ w¨:Uõrdß1ÏJÚ¡\’*O’xÕì õµÛ-¨Ø¦(ЧK'Õ;Ð\Ò~_Ö’&49HÓI;ò:€ÉÚ–îìUô@–c%²@+ tFS yTbá?¢Å4…gÝ@ UÖñzÕû…[Ç»u¿çý.¬¨:¾BÔGC½eS5·Y¿ Š8¥û·î@é…Ç8ùý¡ßèAVd[Ûß_˜$Nã‹Õº·À£“Òh(uïû-Ñûs»ò­ö ßíà¡ÞƷvŽ"$Ÿ’¶Ûº¶ÓLº;ѤÛa°Åî<št9}?ê9»»ˆ&"`ÌoYN+ظá qcüûP0­lïÕiY!¤âߪL®ÔúzD,cÕÇ5Y<=Üà[xƒb´«…vâÿ´}ݘþsèˆT-FŸ¶¶v ‘n<]Eýz¬w>ñÞBOûIOþp¹Ýövßá×lBqß7,ôo6ô—òãÁ=ûpà¾þBk{ο¢Øîõâ€;×{‹µ|¤àÝpc{ôE÷wçi vÝbm Û0­ñ{ïi.Œ(þ•wnȨÑÈ0KNüÃÉϘÚòÂÞCÑ {ï]ݬ=ã~8ÑQo7½£RÝøÌÐ]sïÞ‡gQ?[ˆ¦$ÐJ‡Æg67×l”¹òsõ,]CÅiWátß³€vhùëixõ2<Îñ<€ç|=98r"+Ø4ê™F¨4?…=ŒO†gžž*ꉨ£ 9GPGf°)ñT>ŒûiÊ™0Οç=;JñqéLÑçÑ_"’ìûÃÍnýlûCÒ3;F¬ßÞ+º+P5®úL—BÖdó>¯º¨·9ð ·Q¨Í(c˜DDÿ´µàÃöüáP!¨ Ï²½ÏI :Ç6¶‡GdèðÕxNu €ZŽ>`’crìÛ~tÏ޵8æÇ™iÀHÒ ”ó³Ó ÆµÑz Æ&‡D [MÅG´8yHôG䃒Æ<˜ Ôʶ×:zö:z½}ç™A‰÷Q\[,ßi¦E÷}O{C¬Çÿî»(Nv¾ùñ¹ûAß/¢ï¿ŸÙCŸ4äüôê•äMfôÈa…6ç©eó#Süœ¬Ø§¦=ÖžkÕ(—ã„Ø¢Aâ“IÈÞwÃLèÛh<ÔÇûÀ€w²ÏÅ!ñ³õ¹TÕŸz°©~úÔÓ«…6“V÷á ®ú/¶òU€lmFþ{YÔ„ž=¾"5|ú‹rŸŠîK"ÎÕ çrüz—oð³;öí¤Âü{^/¡cDÈ"p‡š}+òo9}Ø‹—ÓïŠ5‹O«eôò$ú#½‡d_ €åßN±ËÏ¿ŽDYæßØæQµév«óÅUôrAçG0"í=Ûž¯ºÃݬ‹'߬·Gõ^lötîîû¯¿qç>ût;:þCŽNé ŸÙIبeóÃÇË¢E|Š~öüEô꺻r•=Æù7ÑϪ¹º{ŒA¾8·ÇQ®îìc~Úöʼ Í]þÖwþûíìxœ¥|™êߣ&è§ç¢´ýÉ~µ¶påÔ̓O}ÍjgÏÞÅN².ôõ‰é›°ñÕ–«B‘ɘG‘jÊ9/aÙø#ûÉÊÆ ¦¡×E÷zà;ÿÄ<Å„˜¼Áš|$I8Ÿª1^½(cu+_?Õ!Ó~X©šFO¥’Qš¤QV–Ñý¼µ}ŽèÞµ-Ÿ_]l£2 æ<¡áœäo_Gó¾N·:‰ôdÔíÿä)?Çø›5Ü69¦ØÔËoéöC‚ \·-~bË/6«õ¯]¥³â°khÿÕêÿá¶ö?yÙ-W7›‡¥Ï èeoç<W{³ºí–¯W‡óËá©ÙÒîÃè^ûsuÑSzÅ2/ƒAÿùŠÎ ¤<€Õ?qxa5|†ùOÒDÃkFµvlÓÝ—=~H- Ú¯O >Šw“dA›õ‡¤à´kL&´aL´eŸ’3 ¾¬ôië: ;Ý”M–™L)]$Y¥e‘èÚš'Bè<—M›Ö­’*áMYT&áEš·I’Š2ÏÚœ¥¢‰Rµ)RªR…nŠDÔ¼IڬЦl¹­V²*ŒÑy¦ÓBdŠãoÛ˜¼.KVhU‰¬)5Fæi–eÖyÝ ¡jLÕê\%už*Ùf‰ÖF›´Ê¸R’Y.2Ö]¤².òÜ$ SÉRäè@ѦMZÖm™äª–™.ªÖäU“­á¹ÌuÖÖ²å5ã²n‹“ÎE¡èÅkNœhQÖº©ÚDj‘ˆF5‰n“R¢?#^·mS*Ѱ$kKS–eÖ˜©J[YgMUU²æ"+[XÐmÕV¼Éy¢Mš*Õ–E[ÔRe¢b‰ÎxÃ%Ÿ¶I-“”A¤¥”JpÕ Hge¢šVè4oxÖRˆ¬ÎˤȚ‚ad%›ªiL­%H–™i‹Ô %ò¬ªxi4¸š&*Ñ….•:¯EÁ«¶NS4L&•¨tÒ¤m›ª<Õe¦*)…áOR!æYax¥ÊBׇø¹®P”æœéVÔªQUÒ¸Ò‚ë”g꥓²1i]稑 EÊÔດŠëd$…Ð*ÍôªL!nž4`’Hj(eBÐæÛ´^ J°=^4àkcÀìDfÂ0 †òªE«‘˜¤Æh & y Ð~¤4YjJ¯EƒA ¥"ãmšÕ¬ ¯SI¥+%Š¢PÐòD6ÚTyYÀÆ3™Âðô1ϳ¼ËT+0µÉò¶ÊX^sS·ÊM-Z)óÆR$(µ–à(WU¥ðÛš*Åa+&3BæPi&u)x^jH®€Q$°†º®³´ÁR(1ÿVå /‹•ÔÉ;<‰|ÜÃýdáO‚tq…`"àÈKN,üâôjlóaÌI>aus+䯫¤ÖÁ2Ÿ=öK;2Xv¥ÔVÎõò·Y™]žŸ÷iïà…•;ÖÀ0º³å;ñ€ù²å{d:÷så;­z²çXxëdkæç*-<“@šJóBÃÓ µÍç<_Bäñ•3sñ{Õú¹3s8ó=âà_pOxoâ@ m²j×x–ôºÁKo éƒÃX?%–b“…7x‹ÙEÁ&Î=#òq½²J»Ú"KˆLÊ[&؆v“-kào^¯åMO“°ö²ÌÀSOâêóù½tq‡GºØY­ô—æÕn,y7¶uÜX ¤Îq©‰ûId«p—ëÒDÈì=@Í; ¹=‘¸˜¹¶ëÍ&¢õÜ7Í{ÏØˆ<ïID!&ä#U`B&À…aŽç‘òåjãµ³øö» tƽØn·Û"š)ÃAlxÁÛO `ÁõœdV2Í[ã]ñ`† Âõ±=|“xáoˋǒAªo+ó-+•TJ<bJ¼ÉXzk°¡Iø|z»^瓸ÜJh$Ú¶B@a¼l6‘~ Ä„JÊ#‚<O‰Æÿ'7±µ¹¤ j(eÞ`ÉIŽ9ëá9Áú¼Ó+›•À‹æ±z;4%ô@rcý×Árc töÕƒ ò³ì p#ÑŽÄ҇×d’Í`W»¯/’f ž aÒö<ó)Œ¡MÃûyB8Dd½.6¹ŽÍ@n`ùJf˰Õtx®À»y^/»€P2̪ZñèÄ\@>Ï6¦—à(æ$õñ&!=ŒL0ê,w^q1. qxnÐÈC¢ ï®%Wž«#Ië¼Pò-¼lþ1 O ’\Ýì<ЗxÀ‡²ðr!Ê‘&{ ¬Í6ëLd$!òšà2¢1±ˆëϼ2–|ÇhµŠ›Ca/°Ñ€ûlŽ´R¬m<›fÄ~ÝÑ£±ì¸¶U »ìá±ÝâýÜ€NBñs¨o‰Àæd±°JŒ¡•YÐì­öÞ&¥wúÉCwì­Ö"ï5Ã$_ñ­B¨h¯YˆKc²|y7Ð R ^ØF€«ðçrÏF(¹±B¾¶ èƒøÚ1¶J“îôÌþZ×l¯ûP0€.?À×÷:øµJ¬æA: Âu³SŸëf¹°zsÌ„Ó~³E!'ü‹,ʹD–‡áE¼r³ÙédÆÒ2˜¤q=üÝç&péì3rŒ`t¹îÞ:¬ì:¢/ð7BIžlkO!ÓP\AµF(Û€xôdã Ïêæj¹—ã¼yX@OaÎ#噿¯wÜu؈b¢…$ðЉ³åÊ gõ|Ì·€ù‰›—‚Ë%»ËÞI×/Hö„]{^y=Âåÿüþþûø€õý›N¬/þìSIw—ôþn ÿ ¿³††ß^Ä÷Wþ;­âŸáÿ)e|^îêøvÈþ ù×ÿ ùgø;•üd%?~ÈñþPZù︒ÏúþûKùgø}-ÿûZþ­üÎoêñ»²ßÚ‡Ï~ú£Â~PŸçw–ýã‡ÏþüG_fÅ{~ø’?óïç‹á³_þî#þÐW?úòRøçw(ðw¿ýÑ—Ea ßrܰ¿¼‚JA?|yªô×— Bÿ­Î&æ®™çl…¶Y}`ß>­”a…»å«Áº`Xó½¯:}o€ß0ù픯  ðã÷µ,ÝwpBöÓ"\Ã(ëÈo;áCç²h)1€h%aiõ$W· ÓNð\N ÜÍïÌû<î‘ Ø·ãZ8;4ÉjÈ:CJ¥×ßzß05ø°ó<³QË´¦xBZqòmx/ÿt®'8}äQÏçžÇ`þmNÏaÀü7œ–+©×sZõï½3½ù-`dÈßxß÷ä*Úyq÷„5Aƒž|÷ Šp}*LiÎ0 ¼t¦]>µç¬|r„úe>ÂÄÃú:áÎ *ÐÒ&Ðy;oçìõêñ°Øœ-§ HFØCÀš%ªÈ­A*o(KÛÙKêÙyºOn!3A®¬b¬q¯fýFß·ÐOnjW/"Û4@ï&qöX¸üÉ‚M÷Ë/Í—_áoYýbOï™ïÒË®‚yî<ž(ìêuG«‘¼í ß±{üÉG¤ølFc\i‰=%’Ç“]Ÿw{Fg•.VrOVâNKÑ=^á‚îßå†ò¾‘ÝÒoBçxq1à¾-ðÒc_lÉ®§µ‡˜ÆR¨ïÝâê„ëÊví„°Sog‚ókºÝ@6ŽÌǼgc3lòëfÎ ]%7Y]ý%„\$.í©l²&ÁÐåÆê±’eÀ¹L–þËh­6HpðżeäX–ÈÏ‚^ßRZ®æÏÓä=½Ç™W(qvbK…ȱ^PÞØØt‹M×^öU?Y’Þ)o.Á’ÙT<ÂD>.ö w>•€þÄ5Ÿ<}ˆDcž™è<¯!c¼\¨ç¸l‚eh™c¬v"ØÉ¨ç輑ÞgÔa½ØëÎ¥Nä'…¬gr,ªÚ‰é±Ò*k– =ʺ‰†,v^a¹ÊoÞ]xúm‹­UøÇ»Ýy\7‹ˆx[ Kí‰8k5܊нâjí|‰Œ…¸ÞeÙ1±­¯²Djv]ñX/v×UO—) E …ãa'×—…öxÜHbgͽßÞ—K /ƒ£ûít]§ã³5Â2¿5RÛ•šZÏ:žG»¹)ž¶ûˆØtgÞ}MoèO¹Èn‰ï=¬ÄeV&ÈÊ:a¿–l^Û‘`Ë–bÕ…‹D̳a/çg~yÎë}‡Ïñîœmßk¸B#¸<«{ÒÍšDKKÈ,Ò1ñ‹Ĉr>e±ÉÈEìÆr'fÌo$,eÀ½ž‘«YgеÇc]"À,,gÖa»ÇtѸ½’›ø&ï‰@–R¯íi¯G¤=ÇÙ †l‚›˜Â{ìýžj~C‹³Yf<ìx¸RK:mZ'J‹D z`Í´ÇEÇö‰< R ávæ9Y¡À†Ú‰ð×±€->¼~þðõ¸Alx‚üZ!y$CÔ F„nu”ê1ÄóbÔY“uyá„åxóügÙ‹ý­’ È,õ^+"øŠxjUþqM±°ÓA¤!L³°Ø'°eŽr¾-t+ß'‹m}ñøv]ʃ—ÚˆN)ÇA•pÛiÉ…YH‚±²0÷(‰ã#ßw²,³ÒHã“ùI:•|É”ûˆ±ˆYÿëÉÄòùc¨~ÁÞVòÇÕH; ¹EÈêõ޼Bóá¡$Ÿ:/¢]d°áY÷<+†§«ÜùCB/D6¶-P‰Tˆ ,lÂILÌa½¤½xÇ[ëℇëc/N>ë5컯øó)Dzviô&(¦Dš<øFM×Y¥ WªYl>Ëó°>¹y¶æå!moh'©ë|"wÝÜù9Xí~Á¸7Ó@ŠDsÞkg‘¯˜RÎÏmÝ}«ƒí}ÛéÐ'ÛÙ²Ù}‚çty Xb·¨ú“æx‚m#ÉÐÎ0ÐÐₘÒ=¬Œ÷{Ø÷Ð*ˆËÓ{Òvò¨üdmdpÁ´ø\XÙ{Ž'!Òž{Œf¨,‡M& (¢—0ý^K!™árŽ ©Äw’cx#wq˦Xa,¼#‡7ìƒY°©§æ‘¿Q !¸_ù<Ï]€I‘gÌåܾÛHÊš0¥u³.qc+pÜ €èD¨àm÷à -H30¬xÚKr½p‰½²ªóÑ UÁ3râ4ñqx P"v²µEèC¶À–NüWòƒçzàÖuá®®#²yPlµÆ•ûYo,<`bÌ‘$À#ß‹ôƒ ßn„$p ”8¤Fðžf=£=xð|Ü<åL¼·hÉ,xy4Nt¶LC7¤Dè,žP=¥>øT¼¯B¸÷lúžžrñ@‡û&ycΈ¨/Q†‡Èë f˜àø<Ê €›ü‘îÚˆ“…À%QY6F]ìðÊݲ\È>lpן†°ŸkAp&ùâdɃ® ºò³{$ˆ/lJ"Áãû×ÄZ%hÏõ±Á)•ee/h7NAžÍ<˜Í7(´€TBY.Á¨…¥C-®~¤Èr1yØø1ØW½ØŠçíÁy½’@›8ÛHÂâä}A(XžøÖyì°ÖXØvŠÔd -vxØ`ãrš-`–“g˜mÁêØ]‹0w$" ?7‹ÃÄ.B!‰‹žZµ`ƒ†ßXÀ>@“ÆþÖ€ò@e'ÂËÈÃu°¯s€X÷Dõ:‹äB’ªý¶Ùò^öO·±e`Åûa¹Eâûz=Q!¤{ôfþæS"ôæ~û¢~ïñ¤‡¸3G|<íJaÜÃSb-°” ƒÜ› ä—¼ÒPÞí㲸XÓuÓïUyÖÂâ+J¶Ä¼¬Â³òF“§4i ÉÆäš!´YfF:¼ÌƒÝnOw «!†ž[÷´µ$tÁ‡aûw°ñèyˆvCV® ìüÔƒ… i©ö)Átí ið`’øÉÞ}àEäù äY½qi‚#»7O^¸@WiÚMu“‹¸zÐw·#àŒÐvö]e_y0ˆ|×xb:ø÷¸žÂ‹¿´ª@ÃL˜Xèpd “}fŸœÀÚ7w°€’õ[pÑÃc)Ö1[Áí_®;@•îÑ¡IÞŠÝ!D,(ø À}Bä0Ñ<¤B ¿4’ö v¸c^U 9q@ŽøV÷¾¤çòÝAèÄË—tž±\v|e`vÓ¬dqð” ¤dvd¤ñ¾•`;ÊÁN ²CüI6?ðJðp¢ü&rôzÁÃÄy‚Ó“ÜqU"¶a&|~@ ‰s´kÁ«!–‡”Ã×KLóÀÌ×Xé’»¬ìCõx•Œ N ÿ¸ŸÃf#qÌ#\ç7‚ y÷åmÁŸoâ¹@‹7fe½3«€«JÁCŸ@ÆLUÜPƒ€ÄR£¸ïâ-K <Sö‚ œžeÒ‚yÙmuÞÇv Žiàv2‘Ìgš—ô„ýÀŸ7L÷ sl[Moúª/;ïà){ ?MÖâÈ*<ž.Žä°hI''ñ}‰ I¤ pI>Tðóìš¼À1a÷öP»œcU_Îç°i»—¥¨V¸›UÎÛ$¡ÃÎBž) ’‰öPl"1¶¿l && äy‰gåS`¨ð'èo¼ûÕz%F Gþzùö8½´“À’=ÌïӺȺÈÏ/<š›<°ÿûáÞã5wÃò°ïªK1_L¹ @¼U©é‰v +M(·W«½¨Or!l ¹ùiijuI~ñäw`Áî¶ÔOÃÚð‹,/{Ö8®‹Ü Ü%ì˜ù¬÷~ ®Ï%Ñánç‘aÛ(ô)ÖÛÊÙ'ò8ÚûB$ø[ƒÃ—\`ižùºx™2­D±}g°UL÷‚ŠÏt@Ø#?(S€—Ù&Ø;м¸UùIi±ÏCw°E^²rºp:ƒ0à ¯ÀLÔÛ¬¶àZ¬,jZ™–w­öFV=YÂ.K`ƒÛ¢¯“‹ˆGŽY&žbx¬9ØQ{¾ãîò•µ.â]϶ñ=¹eˆªmU„"À¶Q\HB<Éš t›}ÀT·&Ë ÁRF4¨q•¤vRp”ÅÉUC!”F %€gǬ$Vcêlä%1k7“£­þñìXô¬U\½ðã/a½ž«°Ôª-(Ž#ÜdŠÌ  S ’Û†~²!\oµ· ärL`(Å@Mæ'ˆÄÉ& é’ðß°`¡Ý¸M¨Ïb+ ž ý_¢ÛwXÚ¶}ð…/Bün¶$«ºÒQaŸ¨@’qè!ÊíC¢”ßã À@`Š»²@R¼‰¤=ºì?–!OƉ`¹ô]¢Ì$~Ç´²aA8 u®vAU=lb=çìlb !'ígûÕR‚ý%¾ =r¾a¥%Ãçó¢Î\Ç™,»ðÖØG|oÜÍÒt>@àÈ›”y!ã¸YûÑê-ý–jÄÛU_käv«ƒƒym!V—þæÝh8ùd¶ŽÛCr$% ëÆ=´à\HBtÇU+Vlm^5Ù×I{Œ F˜^ˆG3POøã¹[ø¡¬D· ‰â¥°á l>ð¾ Í¢{0ò,û!íλ¶”ªÅ’ä““[œí‘=¡`³z†5«£!‘(5Áluˆ úx/)b&¢wžŒ´¼ò 'è“W?;Ñ¥ÉOLÞŠÇv“AYþ\Aw`$í;™ ÛOYäUé†C]„„aÇfa›ò¦Á¬üé\î–Ù›ïÁ¯fb ˆA¦¸ÈñVìÙ'ÿõ¾†/“Cd® lˆ ë ð˜êhf¦d×2Ѓ°bc1ûÎQ¡¬ïm»Agˆ•ÛÎ;Ÿ„]xñ\Ö–ZãÕ ˆ¹ÝxüÄvº¦Oß¿ 7‚lZ¥B…Ö_ë)àÈ(ÿÔ„C8÷Vg/»“yÊ×\ÎCÀElˆ„b‚b•Î’ìGd‘K$O‡éîH\.ü…\ŧìŸ!ÚÚóM 5ÑBBOXTî!âBty’Ýdl»Y@§cyÔÓ³ëátˆþIL®/‚-Ê0BÕ­^Òx˜ù>IJ=zzÄ1YE àJ 4܇·'²8œS›?ò¸«÷—v„’?¹¦¶üz@­gƒ?yT•œÃXlÄla‡8"ÌQ,ûÃs¸á) ‘÷!zÂf6Ú"¯"Y„~ˆ¬²˜ÉK6þ^Ø¥„êé!Í#Ýæ—ƒ¸ àn?ðܧ³Qšg¶Õ“È[,Ctƒ‘ìg­—ÈÃsc«Ñ1®È›–ny°Ãc´•É'ï°a†ï9v]ùuüffb?`È“S[Á» óLœ÷@¿Ù뀎fæ±—Ü›v‘ÇÄó²íŸ}•ód× Ž'<< /xB_Áø°õ†åw͉¨I–ïY‹±×»ÙÑûZBd,A>g‹¹š øAË;¦Ôq¼ÿpvù¬Î)·óÐ=x@qrŒ—Æ×/»,ZÓ›dŸ¢#mO[ιxD }ö%@€—D]Xxœ| „²zú ítsóè š>øw¢~â™5Ëcpz OïÓÔƒWFL!F$vK*ŠôX㬺+ñ #.Ê8m'…¶„ ›lÁfU°O:¹?¸.ç÷à3¼ñPëIT†U‘¡"_ßktîˆgt5+ÌÄt#Ï$J8zÈŽ-ó\£¥³Ãæ÷ JñD‡—cÁ48 q³ö0ª«/»ç±ž{ù/y@·†gí ¦u°„ÉceyžÌ±ê¹ßH,v±.âDsv‡èò_‹$²8ܬbÖ#Lã<‰Õ¡´:à{Ž?€=õ„Dß‘«àÊŽA&vž™eÊ[ç÷YÃÄ> ?×Åʆ‚€ø¹ €3Z°Ùá¨àFO8<Ÿ™ž¿òXœ¼ã]‚{§Á¬?ÑKÃqgË'¬ÈÁy8‰{Î@ÊD‚“¡\HÖ\žßÊ×à¿8 Ù[ ¯özWoñ‰ä1«k‘iHÕ¼ó ˆ†ŸO‰IáϹ'àFt’"yÔ Üu†j 8¤Áƒ¹»GöŒ1ïœnVâ]Xe§µ%ç“툘P+×Àû#[Óï.ò%¬+‡4¦|² ‰ K‰ˆ¼À÷N§ßr,cÃØai¤9…û:õÖ=ä!¥AŽç¯ô2è}y‘"f»EX­Ð ¢ñÙ;ÙN®úžN¤Ÿ¤¼ <½2‡Îh:|F’™Î“=ŒfÛÇq°êÃê‰kø .G à Ýêç ‡¶æÄ½ƒ´…âI‘2ºí¤ÓX‰¯]y €ž<{g· `Pä$’æ\¹ûƒôJÔeï¼öíëk¯ƒõX$qüÎh€Ø*ìÙ Z Ž›Kùxä¿g¤‰ãð$ô:m ‹:X™a®V€pôcG"A\;‰_¼w¢‰‡ë€c¼…íjAÝÉ̛X.0ÒèðPØCY‰|9ì$м±-üñrÎ HyçûÚ;ô^{²¤uVúrX”À5;Ájòü‚'“‰èöØ8Âí×!±À·ü‡g(—»a,D…8w?ƒ à6s‡Ê°*1(±¼÷*†¦Ïµˆ~O"®Ñ4Hêf¹°)IVçÊîÕ9UÈ`Í“•OÛ& ™ãQžøpw¾I±Çí³gï‘FºË¼à¡ k5vB£PË7-,xþ»§NÛ’l0yduP\Ò Û%€ ÞoËâ°fâS2Ÿg€ŒÚÝ:*RâøOð©`áXËÈ,Ѩ/ëîK¾‘ÿA¼¶ÿyx¬ Qmç ŸŽú`ßO$ îÈìAÎï™ý3I]°px¡Ï“OÂ+Ë™nsÙ´)‘œ²rHºÖÒàªDÕk…Å#ä6à_¯gjXB ° ;6¯äé€îëq‘þ°‘"«bý€'l½y\¯Üü!Ù?'wÆ®ï _€Ïä°baÉÈμs~_®L’ôä‚]ç‹êZ@TÆM ®6’ä²È#.ÒÍk´ñ¾PBg€ó Ž$ö"P"ü š Ã…>yèC z¹Ã¬†ÉB¹{1β®upàÔ_ H×òÙWÐ’o·ÉÐ~Xà‰•œh-…ÃIÓM{#ϲ}ï—ÐÅËë$`÷ëÉé“7 Õ~Á³>¹“g !Úå# K#y‰¥ßíø4êÚz˜~yê„g’I10Ú ôEŽÁždO‡bWß™“—=!Æ¢pvÆÝ$ÄZ­+VÊ Y–›l ýy]ñ¶{ˆ-YTçO§E¦›*.‚2=,¬´<ŒgÑ ë£¶bf|î+ì)ëõx˜ÇB³o"CoÊGÂÌa¯´‘uºÅx/Wt‰q‹¯Ôz¼€yXv‹0qVëî&%Õ½„u’[rÍÆ ådµe»jù¬Vmà€Q²×ß,î÷ ŒHÿðlS¬{(«73¤ÝׯÌ@„¨ó€ a\#°¼™™n»(^)F³OÝ3öèÁ¦]Âüàfý"GúO&Ü>&Ðt –.;›½tÛ$Ò¢ïÑŠ&°1ÝvBb/›l^I 8ÂÉ„@"»¨•"!=ìån{ìª2›-ž[%¤ø4I…N«[î\;- –®‡ýn!òìˆl<ÒåÈ0”¸tÖ}pª–ìkËk4ûŸ”«çç`íÉ7›žØ6¬ó’u;ØZ¿ 5[“î ½í,“'nçFb&5ö“ÍTy ¡ÜŽË³9Xp |d'±Í-Ðb¾"º ÇBLgëUB A¨]GȼƒQ þõ Õ£<â bÉþá…f¸¢ò“&I}¾Ž6€£áGÍÑñÏ•H몪\“D¶ÔŽa?‚,Á9°¯,,…ïÞÊtÝ$Â…ÀÆPHH£nZ žñ‚;Æ ï[¹X‘]r»¶ÞóÄæ.LÛ‘w·Ç2E¶S N„ óê;ä¹ù›°¶™)±˜‹ã1žp˜ñð3Ÿ'QDëb׺Á:NŠŽmHå9°úÓüz eŸ¾A«½-é ºå€Õl1•V‘Œô•²j<‡¸vÅk™¨FëYôÇš>øð0iFA,v*ì}ÀÎé\¶ÃñÃÀvRh$`cì5vCS9ܸnK;écƒ\ ‡£Á>Š= ¤ ²úgž ‚0ìÎ_vîô!Ô# ˜µX£%@VX(ÍÓ:@ ð,ÁÞý×Nwr1[‡å™á6»ßë[­ë˜Î×p¯™$-àÙ*ï ^Ä¡Ø{„íšÈñ𜓼 ´?SµmV}${h«òÝÿ6þh3úòIÅšçÃm)rai+$rÓõT±(K <²lánÒæêí•r´ JøovpRK¶°T5QÀ¯JOa®O…˜šáœhiw §)ÄGÏ'¸ÚK*Ïo’cÆcËâ]=N¹Y›P6ûSXʤ£5§cV,gXýªvwCƒŠjmê’„W` ú!´§3š²Ð)`úÉ3à×­_Xth–ÊÀ(Áwq+ÏÎ\Ý H(;’ bRÓdF~ŠdLjcÅ¥—ò+|qÜ3!û$Š•§ó@žç¾ö\Ì¥²Ózò[¥ª<õFrvÍ…š1‰¹Î¨³ÒxfÑlD˜Íj&·èÉÞ¸¦ŽŒÀjãð€db[Tý&ƧÁY¤„Fã›Lè6¡¿Ü/½/‚£ZkЦ¾ƒã6„- áŒ¼v`%¡‹@/šç=j3ñ«Äº'Û Ú«¢¡Öäáä §+_žf&Ÿ9x¨!Bä³m3ãbEŒÝ{ì$[ 6Ú¹‘PkævÔÂK†TcØŒF*}¯XÚž§x¬K˜&VxþSOàÞ!¥Ž­ŒÖ]›¾În¼gÏÎ.Ã#¸¢4×þþá²Wl„U_¹IV×&4ЯŒØš/ØÅÆ•Áý¨vAÈ}¢£2<ÙÙØ,±rZmà²,xCùÝO÷¨†¶Ø1ì páp(¤fjP¡Îg4{qЧ t«,8»©B°!™}mŽœ=’ÁúÔÖcãf%èE# ™‰maõ`kVaÚ½h°.³9ètÛwI¬|‹Ãƒ‹æEg2!ièï€véSœ}Ðidc½Ã ‘ÂX¬ ñ¨›í¯VÏzæîIïÜ/…‹¹â€>à%p›§a{ä lýrÿ¬)p4ܶ qð Jð;ɦNBí Þ—Ç!1*Â;n¢8;œãeS54î„;^«štXö$HN¢C|ÙH…°kïm°õØkÛ°,;ßµLKúª?N›}xjG”aÎf½Á²€AŸ•Ú„mè®,›dñØ;Ãô°¬<ªíÜ }˜x1'èR1&‹(*ñùå´ºÆb›=¶²u.Àœ'ìãïpxÜâÙTuTíb….$Hý}Ncˆ2‚ôkt–dPJæõÁÀRT VˆQÁõh¿+k?¾@V˜䨬N¼Æòâ¹Ï2»…Ôì;È™K ^<êŽø•â1gV«iþ,êÅs·–T!ó„‡öÀá"h¯¹ÿؤ’æNæûGÅix–¯Ç=p4'‡%6æ ó V·ârQžËqÞÎzÉ™hy©ç‰%AÚg'–â‰VìeÃ¥Á{m±)=£®V«s¿@;OQ„5E­#ÔÛö:ÒÜÜôµx,„ªºÄ±ê›ÝGäU¥C¶JA*Þ9ëñúä$ÌË!,<þïãÆ—ÉŒÛ»‰HÝñM Ϩgßá¬Ṵ̈"h9ãËM:&º™ß¹Äwx[b=úk©ØÚÄ c‹D‡dSÏGù©gÖmpÙuµ ÀÄ-¹¯ê@]ûA‹¿Ñ¹óé [æ²Ù–“ÖyKd¹_[ŸþðþNÏB£§‹€¬­ÈÇ’Ë€t p›MAn²u§Ø[;¯Â¬IÝîÀÂkuXáx —•펡 €üà>C×ÕA2–!˜8WeÅ d»*­ÜÜž?a3YÞ…Ûü4lüA§À SãµC…xBä_¤ŽÀòxêT= ˜xjWÞm·UÀþOPe·p—²Â|–ìšÝ$Ð…HÆ(ÊOG2™Z£Ð- ¢ÑêÌ'ß0'«@G3Ú‡Ìkê 2‘ï  Øñúë,Ü‘R¼jC«8Ï9ŸÜ­á _rÅ{-€xqòƒ;ŠN6A•dbƒ=›ú n©›JÏHUÍ¡jH{,gßÓ²}Ÿt¯Ýg­æäîŠMbGp@~DR‰ÄÇlœ­ÇÔŽ™-p*™¢ó(žÚJ¿vÖ¸YÑœá‚ÃȇœwFpaÒi…e˜zù’ Öž{’t;ˆpØ”h:$ÐõBàLûÐÚ~²úsÞOµåšWôB‰l[³%§;ÔNôªw?llBû×¢áD÷r—v†Mo˜gÉGñ@‚§·¤»ììûzž¶CÈ/ã¶ZjìæÜÈ9ŸìÝ1œ]V‰LU¬G’jo•1YYl¡ƒÝ —.ÃF_Ù†ôá(»utO„ä à¹`®Àv‘'j¬Å¤@C9ýÖRè¶W•å;Ó³l ÚÁùõ¸Ÿ œÌ³ëNñ]2p ‡ð„›¯Íñ’ Û‚×Ox¤ÏP8K-dˆ×˜ÑÉla¢?Às÷¤ÛÔ•¸'¨íM{²yëLŸN@è‡ ¨Q!36ê;A,&€?Gô*Äš=P¼¿Ürwp€tèÑCå½ßwÌEÝbnθœ W¤­¯ƒJ¤qþ3Y1ͧýZQ­³âê9k…‘Ìd= µÖ­ì gÙÕÓnR=ÿ_YË;¥üám7{aýý •ßN”|Ð>â]X £F¥ÎJ‡Nõʯ=Ä0íâ·p±.Åþ,` ‘ƒÂ» lŸùsv†d§ºÙŽäÒ¨¢=6 ¨ìGÜ¥âm:X,ÄjV°ò"' $/nØž„üÉ ‰{„Ìk„FP‹½ìÁ^¬l ˜*ž“…AÄ‡ÌØT£Ümw(‚hϧÓ[ ü-Â#oþQf–ôàÛ¶|rwYL›³Ÿ—’žÕÙA»@ÑÀµ÷ˆÎµ]öðšI^J£W’›š…ÀT°EvnBÂÚÀ,£1QlçÔž‡4 —„ätÉí`øâÔ €¨ÁÉY¯óµ1ÀáKe ,$ä{¸-጗íÓnvhÂ0rr})²DÙko"qòn- uÛo=ˆþW+ÃøÚ°rZÐíYéx'ߣG Û.Õm/'‡)Ii^a:V¡ÇÃoOÙã­”¾ªÄl…ƒØ¦È»§¹Ìn~yÞbƒ²-@öü#$²WƒG$Γx¯“ÝÑ‚œî)–Ý*Ïò5CO“¯ÂÅâC²¹9xÄåsÆÂ‡/wN0ýž­,UÉ®ÀÑ—¬a£z{,Na›Ùˆ'(žYݯŒOµ2,LÊ¥¹2ÑÙe«–¼©pÖòÖ©‘Àˆ‰úÓlà$—uò[µúZ•d»È*C[èÄíѹs î#µŠxi¼øšöŒ¡{öýØ!vzÕ®\ý åŠDëUT'}-#UÞTçž9zÎzSO ùÄó‰M'¸á/W9x£ýLê€hØ—vzœJzö|mÀæÇXoÃî°¢”+0— :¸#!ŒLúFîT×ó´]‡ 7m ¶¾B zdšfo@‡ÜÊÇçn8`»_[&رŠK{^‚“Ùs^>ðdÕ]}«Ýf[*üð”88DîL„ÅEå €…œw×›ž­¾d‡à´CŒeGnRwú$¾Î/°-¸B ,¾õòiÏ-óe“¯ŒvÙÎBd°,?,&\¶I)ȧœÏa›CÿmÁDH „q[ëxáëÒ2¡T'}šq&ê)ý;ìÈ­«\@> nO{øÆ!﷙ţ$íóqœ–“öi‰`õQšø<ìxayp1 r^´ÍÆÅc˜RÉ7;KÁKƒ˜7 `ܦRÓ'i„É‹½€æ¬ÀÖ.P°¹*EæReÁ’ $Úep¥>J+ž#”Î2v|ØÙ“óŽ0a{õxìAre™œ*Å€â~ZŒðÌÚz 8ºÉ@–:g*„¼lÁSù†ë\f8]£÷P–;÷6u+áó0RƒV J„D«9s÷ k´>°}k¼”‹W 𥓻Nù°dyæÈÔ¼­Ù-3dp}=ìÅ ]·ò±¯¨ße‡ ¦î-·ýæÇòüƒïßövY©}ÕC‡–6D%‹ß¸’#ODj‡mر¬×¡öñn@Ûn„”»ó‡˜ÊŽ{N‡¡Å<™Á'Ù$5XÏjç½#Ú°¦M>.¥Å-ÿ$çø¸~€_&o5‡ÔIÉYÝ m :(Ðã#ÖÐÉC¬ì ƒºOû9ˆíì½'ÝbЛð±GŠbdu0´#ƒ×¸n€çîøõϲ½“A ^wªÔcQ«@"@ô¾”UHžÁA·é½Â"VKÑ7MTÈ¿¬±X"UÁ“8j›è‘~³¤æ Qà°1`‚ÁZ¶(Æq–Ív_{tÝà+³Ò»vJš”«8 F¥!–›)l1^õN‹1ñ^è=ðRg;0°¿. þg.Œ- >°}Iõô"+ñ -*qmUXšlë ¾?$\ͪÖ׆d›ôq$¶ùϰžÎÊ ØîU¦)ÓF>MN±‚ay£—jcKÉ÷ëà¡fb¡G,scy(„*vë4¶à¹IÒ ´˜=Ë&ŒÆú~ÏT‰‰À7!*|›xÏ#…»¤tÝiç ¢úMDåñ¿ªâ]M‡ Ž0ÏºŽªÆ“˜7ë9ûbϧJ+e°0Oýâ±ö`µ„oÛ}çXqt’ÆyR“-€)(@,Kf‚_ðçmÐðf§Óó¼»ìí0˜ädã„t¹¥Â~!€²Š ¹ÞN5¸yœŸ=oûÖCʨŠ&Éñ,õj[•®þ.5k}íȸÆï•¨ÿÿ 5îùÅ/ÿôWßþÑW_þ‹ú¯?þù¯þøOñÅo•æþ-?÷ÈG‚ûß}üÙ‡ùñ§®Kiávü?VÕþ·ÿúßý“ÿùþƒ¾ã|øÓ¿úÍ¿ð›ß~ñç_~øù/ññ_}­4ñþÅ?ùøqË^o1ØñÇÿêÿûÏÿå?ûð?ý³ùo?ü³_~üæó_|øW¿âV~úí¢ï÷²Ù?ýêËŸm)àoUÔ~¾ýðù‡ïIÿãO?~í?ýÁ‡¯?~óË/¾ÝÌ_|ûáÏ¿ùüËïxß}õá‹/ú‹_ýÌ àûª\ó!_ó?ñKå¸?ÿð¯¾7-ÿÀ_Õ…y_çw?ÿü;ÿö·_ðϾú3~òg_ýôWÞÒþ7>†ýîó/¾üöÃwÿãwþ­?ýøág_|ûõ/>ÿ+þ6öõ7_ìËøÕ·Jðá›þù7?ûÅÇo¿åcølŸÎ÷ùáGwÿù×_ÿbË„óñþÔ÷×ðÅwß~üÅŸýä8¯¿£—½ªÕºþ] Õ®™ß%Oý{Ë?ùÇ{Éÿ¯øåÿ£¼Þÿº—ûŸ¾£mâÿÚýü»µÀ?Uü¿úð/>g~ñù7Œ5ÿáWÿ>‰ð¿õ‹¿K üן÷÷)„ÿÓóúÉoS ß2ñÿ¸2á?ÈÃÿ¶ÐúÛ%àÿ èþ®’|9•’¿?À•>Ôóü›ßò§þ3Bö? ¿ùß¾úß—°ùŸ|÷ù—?c•}ÿˆ w«­7xgÀ¼wH÷RîC¹3ØxxnHDzœ5Ï:´°ñ˜`£Ýcðk¾–Ñ¡º=X±Ï2VRueõTOÛ\Íb)¬å´HÏ*`î¾€ÞA­Ý!1§µŸ-JºzÖ ¨ïNR(ñ<q Õ×ÓÊ\e=èWœëú­]ž„ƒímª‹wñâÏtÙ̯þ³}íî—­Þ­RCÛŽhŽË‚~¹Ôil«Ï{°ñJ‡½iŸßFX_HªbZ%´ùýU; úô»W[c¸¶ÛÜ»}‚®öz„³}¡í°{tÏ2 ¢­NÅC>‹“Îd‹"°usªE…¨þö¡—Ħ˜—=wŽÙ(v~òI6÷>**Âú¶>y‡_=§‚­VšäýØM’K:ž& ThñVøk÷ûÂa°ræ‘´ET€ù;Ëý<Îlô~èô¶‡8ëƒ[çªú*êÌÙ³§2‹¿t—üZÄm6½4~þÕE3Ê¡¥¶¹ÚYíâwX×ÄtþyØÓ¸ Š ² ¯ z ÂáóÍç°4C=Ú <ß2X íÙwÀ#™ñ´`åý~ƒr,´­Ã0ϳÇuÂ.fúªÌ %äT]‰ã.…K½+ɶ“DPMvJ{OÅœ5HuˆmÂl^ Qµ®%Ÿ×\A9HŠò%ý ÷%ÁÞýtP¶•ìá¹Y÷ùu5Sp07êC˜y“;†˜Y‹‡ûŸ‘ç]ÖtjóP’Xó`®Ú8Â&N:î“&‚“ÿ¤üÈí"Ž‹-Ìÿ‡ÝçôBª'O“·žß®±¡'¶‡)½Ó—VdéòD:Åk)çQghëpR»Ã¢óRÊ«Ø7r³QT³GçÊuº²o¶ðð@é½ìõ-l—E:îæ‰š•TþF9*–c¿_ ×øx¡ôDÒpÝö¼;Ê3yX|F×­§åëaËÈ®0ìËg1”휥lÓ´Õl[Û±ñšúv‚vve öKñM¦"»úÒ•¸joq oµë¶Åå®’–õñ0Ovz±C²°Ñ´Qkª]ò´¸‡sqƒ¬#ÏÙ|k9³Ã^E¼ûdÍŽ ¨i³æ£™9Ã[ÛTÞç±ý]çO'ër1˜½{‚Èb\òø N6¤–œJîÆ\Ÿƒ?¬¿—:åÄ?¶‚º#™äãa{rºõu¾ùT™ÒBO²…žüd“¥×i#¿2üÛi¾‡íP\øl0|ÕÔ˜Ù¸l-þÎÖ_Ì,×tØá“Õ´ðDÇðÓA»Ó.Bœµ-gåíW!t±D­YN«_«Ê„4kë·Ú@Õm„æz^µRbj\ÚtËú9ë0:2 […+ôx"ráaX½R*±ÝÛÇbz¯w×ȹ€áG•ÐÇØéGW_ë¢5ºC¨=kûQܶϤb/N³¥çq·ë²wÏ-𔉧šXΘä«ÚÆu欫}lÑÇzN!:ÝIÇÂV‹ OmŽWA昖²Æct¶õ8Ô‹‹|uß¡TáƒRgÑæ¡÷UÎ+hñ œ§þïö»õq3:YyD ŸN×~F»¯ì9×8‰f:hH¬¾:AY lGÍ+å¾A)a)«ç"¹g:ŽdõWw=ŽB³æ§‚·¶µësë™Dv¬v97f¿~êÁvqôÝòI]ýê¶&†!ÞoPP._Ê“-=sYoªãtëwO$"åQJð¼ê¹W#xmIÙ™œ[& öbÉqòl[9í'}]Ï ´êCYÝÎQ%­ ·Áî$a»?u+7-ѳ–ÚÙaV'T«’мPˉ[`ÙiF«ÀæëH£M2 ¨“Û° kWJ¿Õ´kM«[=v- §¹ƛ㮔í¿[6ΑÈÎiÛÙù ¶¥kXѵ ‚Næ²uÑ\áR'¤’‰…€kuìç˜vÌÌ5G¦Ú¢¯SÑdë >KUí#::ØA†¬r9˦Yo+ÖKÅb2­*ŽÅ{ïÙäwÙ…à-‘«¶S4K;§¼K´/Z¹)îûV @=ÉHØñð¨ÊDzbm„;t“â’MŒ ƒ9ÞN ÐÉ÷m$»÷Lª2dÍnL˜$„Ù±\=sìy&Ñ‹uÃýfµÉZö":[ÃÓ³ñ<¨kk‚BƒkÂڠά6R¨ò¨Îõ¼miˆ£W¶¦íì›ËNOÃm½VñŠ%RìÆxì£í&ò°[ªß¨\à~ʶªò:ÎËaGÒ3›TSψ­„Yòç¡yä™É©§Èž,³‡œƒ&<ÑÖ´=ì<ô@­d†vµ¬Ó~å§ñm°³ñÛæŠ‡Ýî€u“=WÔƒ#Õ&ÁU|K¹EµFç–ȾyËv#q’§}+Ó5-oxv5e„ì*hvù4ýRœ'›N?6ӜґDB¸ý†ŸÍ‹t˜P}ÁK|0ì¯Ü’EÞ/¥£xº×jžáÄÓp'¾|Î%@`­×ñç’ÿ¨D   dÙxu{oŠ-õn F9Ƶi‡phhˆmþ¬^90ϲÌÐ>êVeU2ÍÆ7Õßke6Xª±Çj#þò0[kgX¹¯Ý‰ö§ñ( üÖ¢¤ Ô^éƒgIšºl/õØî}ôhÓ۪܋— ߌu™ç?©s=Ê`>K ³céè1mä°rË:‘`³„-è#vmøÓ`Û¥/m@€€>åú´ÏI å î óá©E Ép¸…ÈrëС?^»Ø…dÉj#¤'ÜSéï xd³òqüb‰¾3=!È'•×Zœ¶™¶ n =ÌÛ ÄâÖ`þõXûuHx»sƒÁ¼ºtó°»—ãN|Ø"ˆDõ z¬³5:TK¼ÔÑWu:`šww ·Ï¦8[ãËjU³ùÒÐA!GµÔ%·ìV»ìeu lá¼½†(Ív<ÍXRÎÈ¿¢h¥Ýq‘äá”÷Ðö4jñ$ØÉ“ö5~J•»Ú~ \$™Ô«íZ%)q÷FPÚ©F±§ÛFVß{GûIõÀ²€Õ„¹CÑÅSǘÅ#µÙ´ôc7Ã:y®ÀnP&Õ¯WKÊ. ÇJ.粉lÉi_B}T/í³O›B•+8cKN['‡ /%ú¢Ò)=rï.Eõ—j0ž²“Ä(ÉYŸ#9ºÉÞ¬»€8…r•ˆ 3Í·ÊòÏewY< ñlW*Q_G»“$œJ×T(”v{éMXÒ¸P­À¼q›‰< ˆ¼3¢½Þ p« ê®±Æ6ÿy©Ås©ìX*® •oø4š#TzX\Sã"²òBÑ€€Bp8mF{• Õá°*…ÝééÛ‘®ïCuÆÐB‰•ÃÅ¢2½µ¬Ø J¸TÄl,Étë8É.aM¯þXÆPÁÊœ¸lfã™÷ƒgšåºÛÏÃNR6Ãb÷Jñóóê©eAÄþ:=?ÉËŠJãfÐŽ©#ÑÆöÅ¥ª2;—P”ﯰëáLçìÛÂôž.ÅšÅë3Ôñ‚V·H®a™\Û寂mÏ—†Cç&–),ÀªÄè丷 Có× E˜ÅJ$‹¶¤ìvJbçàÝ1híдú¼(`Ó&QcU5Õ¡dŽ\$kˆž€o¸ÏTX^g»T¹OVjéàv%ò¦º¡WF´“´Ç`;l×^ZeÙ±ÓÕ‡UCḾ~'K&h‰7ÔÙå ’zô½àêçÌPxþ ž¬²`ânp;ðïp Æ­þr›2-@daÁv·¼é§º¨š¬¬¹µ_e8YçOt€“—笛!U/–åT÷ÿê!”•HÔi7W6GbÓbb$w­‚/—J+Ò¹eð¸5XÿÕ.ìRù\ª,ØÛ$t²UÃä_¸<0RŒ±À‹!)U­&2­ýÎ-¶R¬<ñbÁcŽ1Æ]ˆ{2ƒdWËKz‚ƒÝcöwÜ´–L1íeÃ9‡ï«4¡W„˜ª9y™¼·˜„ýUÐóâf Qo5ìG2¬–)nèO­ÉñÂA(7©Þ3ts*뼚ä = ž¢¿Í˜Vk‹ˆ6-ëÖêªv/IY(­+«3qÊ”mÂÐ!móðª¥OÜÔcïìæ¥ÄrˆlÁ'û/$x=S|–f^l˜]ŸHà'7§ôù$P“†ËÊ #0uÏÉŸËœª^G>‹Jí€ÿéyH¦+sÎ^v€Wù˜'î¦RVŒÛÙ£“J¥Ò\¾É-ï„öN½ªÂL,ng«Áñîú»ÔÐaÕ+ÙÒ_›ô@e{­±&eî.ŸÑ«qlчøYˆã ù? 1qÌUæîÀÄ{?ÇôÉf«·N‡(ÁÅ݃cÇGSü“óK¨I®Á ~„E å/nÜ4ÀQ×é|"w—‘)ì[˲Zœ¶2@.ÜŠçkm©@øtk¦w+1°ÒÂó´L5­{÷ŽÞ¨{±ÎSoª‹m‰ã=ôp•€ùqö0Êy ¡jó8Ç®—xô5#èêk™¤Ã>ÕcO'À¶±vÑm¾¯ ß^…IØ—<Ä+%/ù¯•àìxCƒŒGcðÀä»e1àk*¥.#¨×U¡lÝxÖçÐú @Gcxu >ò'Õrµ ѱfAžw¾V(¦p˜”dý~z¶Gò!Tý{!ßmS…Rç½ Äfô¬¼ å9v²:ùv¯_ú0Á~œþ;ïâøºz&ÔðÜÖ⣈ D]¥}ÍXÎVªùm¿:t˜·[ÍTêA oÇ ºtsR¡:éSaÑŽp®Öñ£êí¨{' ©Ä!’¦º]£ò½#†Úù\»y®Î=AW‚z"MQÓN^éëÆš–Âú}RøÈ¼Ž²T]Ð+·Khøêý¨®*öÑ7%õ3ÔœÛòÏ EnPzœ¤ª¯j~:AŒü£äîæo:Bžv¾–ÛyÊå„GÝÜëPÃØ3ܺUmaÛoV㟋Šï]TÀ{Õrz´ðÑÅ„§ßBzY~‚³'÷rï ú8À½‘ÊJ°R»Uáípží¯ÞÖ™©e!\˶9IèU5çÑÏ^aMoµw”¶_w‚oŸÎÐë;Äf i‘ÕÔ$D1m:ï×CE)/Ù´B~$ÓHþKlZ ‰bR„è¢U/€•]Ë~ÓÒŠ¨,œè7²ÞÀÂ|mØoÚŠîò¦oZSÅŒLס¢,¨G倇 è¬Æ1’Ý Î„L ÐO^'v›pœÕ±U·Ö'W£±(*•Ad"»dªšØ¶æÓ©qìá(LŠSª3©†0¦:¦ð:Õ`)ß°]á à ¹¥¥²Â)Ù¾1\VR9NÍ!V¾›§v+ºíǺ¹ ]Ú½òü4&R–…°å#ɱÖ‡c÷jò –·¬›îŸN­=7p¿j£U4‡{Â'ã@ò;¹+,YLQÁ…‹IY­Ñ”¶=á=ª'þs+õàš®žŠ³ú•¨¸žÛ)Üf€5I9¼žý°¥–ù€}†³êçÇÏYÅŠ§c‰<}í–¯¢y+k ¾j1ËÆÎ‡ê6MyMϦ˲Ãg½$>àj»1Ã^6Ý©¡ytnït*õ´†Â:(˜®Û-$hn!Fò˜\õvˆmh<[ÔQü >⳺" á v¾?é¸Û^PuÄ#ë^[ÇÈP¬Öíù°]O…^؉x’Öå }P*géùÚ·B0áé•ðxÔ›ìLS­ÁR?ÏkŠã„r+Z{:±ŽvÃZÔa_( ¯Hc-ÏCðÊ«P[‚KͺE[ª¶.˜z$åJ´º5e“Ó÷ZtDx:dŽ[Ä5„-´¼ç©ûóv뼡$‡¹å½ŽŸ hkß—„E.PS°ó¿¤>e¼Ù–Y90…{ÉBŠ€(~« ,ûW‹7ÇW<óžÅÅ”ïíÉÇRæ=C4¡ø¹^íP:X™MâÎPuè.<™®ZœÆ÷£~ ÷KŽ%Û±ÈÚ'tíºr]@t_#°_ÂxmØñœÀŸ³+kʤáÔ rŠF0Q®g¯¦—¼€Ð¢€ébxfhSª"’ªUÛ´Q"·@âsTtir :x:ëuâdRÈd+Ÿ›’2¼$«²ÎP eãºJb#lã’xK Iž=xWìÎ:ÏÒÔUíQTmw“q_Zt­à8é§9zìF$½ªÅ ÆcÓ”cÚnÔÞw[[ ´­f²“ÍZɲ™@$˜•l•º· ÿ3Õjg³ €3ÓÚ’Hß: Ô+õNèÀ ‡8P¼¦*ˆé¥vŸ"Ä{†\Å猾ۤ~ ‘‰L®OwÞ ¨à`Ã)H¾‚Œ³M2dÓ‹Ÿï[õX)îZÊ>–ôµˆÕ;ÛíXúÛ8½Å3P^y"jÑœi»KÝý×Öj˜CWà'nVmåJ}µŸØ$rΤ0$ BòÜnë†!jO4†’稦`9jŠr°aT—«d%ÒHäÑݧ¡µ@H§Úà еÇ@/pUÀ”wÃóã!‹.EÉ•Üp9‹­Kà£{ Þj»Üm˽·†>|ÎvßKÛÜe<ÈÒN~•-æ·löüŒwŸÖ• %Á—â§J¾”ˆWÅ‹½ý×ÜÕÆ;nQµ» fegÚŸdXËöÝ]é6¥çx§¢—:àóÚ„¤ç *Çk¾r±­æz(|@¶"Dt/ hÄnÑpJI]Ò·Í<Ú(–“äÉ‘ä6ÓéY ¨QÄ±ÔÆÕ>W‹ÔhíùQîtýÌ€ücfXÇäuZn·A R‘K8ìÕ|U~÷ä«ÅÏ6û÷¤>=‰!-’/œ½¿ô$O)ö€yzhy¤Lǃ§Í5ÁèMÜŒ{Yu+œÜ;—è83€¤RÀ³èŸ,Ú3\s';ÕWì ÷œ&Å”µ^p2žÄÍgU•ì,U‘“ç“:#Àä»™<ü¥`§ŸVíõ‘+×á>¿‡c»@ÆCuÇle=’5ÖÙf%}<<{yí7¹·%épˆ¹S° O9ÚkxØ~¢a¢º1ñõ›HC "Ød>N³UûP¸ÈәܥŒ(H9ªÎ°o]}öÜË÷S玄Îu;™)d|(5Þâe7skå5%çc„æ:&ÿÚÆí¼Šëvýr„~‹[ÒÙÆEû—Ò"0'ÐL-E®­8nZMש¬8î=¨Ì[V|#Z]߬äPbÜv°ày>FTÔ_UÈ˪‰F9SkÛÀâ%?¨<bmžªò©üË«õئš?yB쑈‹¶ï\ð =*æ ¬ë'Æ>rë¬LzO¬)n7*&Óü0RÙû$oY0îʹT½ÆÈÐü›ƒÏ Ù¤”ÉÛxpoì>Η’éÕÜ´SgXù¶•“£êH„DÛš5„З"žd'ȧv/}¸¦ŠZÜJÑ©vüxjŠÃ­-ØÊ1G³ÏÍ ]ãGéxô,Py]ƒÑ¤W‚@¨”<{±¿m·> »R9ìgm+ËÿÉ51¸Û![ím.×9Çó$?éåŽ{È8eÙ÷p|+?¥5Ž=hzm‘Í›Ñ&骪£gÂÏ.*6› TçíKç^Ë ¤6p…ÍrkL®–rJk©ÂºÂ>¹|‹ç¸šYuHbëâ0ïC8O‰³™{H]ãRn™wZ„!]PÌØl.¼•wÒRO!~h7^oQ}5ºy°@îüÖr“œøk{[õyn“Ëþøª9á°«÷Lz!œ‡JVÄZPÕ`%î¹ Ì ‰¹CP .êÀ®(¼:Áîu™°…Ž¡™ÞÔKñKZTƒÚïZût—6G·êd ‚Ê?Ǩ'ÞTvÇúËv,Ói>³|b0Ž¡¥= c9Ͷ6ãÅywSù>'šx5‡>®MÇÊÑÖ–µXÁ18ÒÅ’”³¶»3æu‚>Ìgkþ;ìB‘s¶· ?,A[XÔš$GV8Ìð² òÔ¬6‹ °>¶ûº£ÍD~ÜÞCžÕ9£,ˆ„žì£{Þ!Þ„ÿÝÐÂæq·7â)Ç»µåùí ä¤-S²äÐU•vØaxrx‚N›Ç­lãª~ìódÙCÿ.á3UYÚŒŸT×£ÍåCß·¤Pš)ð:òn~˜qû-²ü|ì`êô' °v÷†xîtX˜ÅÜøÈ¢wM‘¹:ƒF¤çÎøòHjhQÈ'“P’²ÍƳ2‰d™¬°2FÆ#NÞ¿={w(áYïé¤ÊÕÓ“P`ÛL!Ý…±î5'Þ=~ÕtÕq/X!hΡ0Ò?Aß ÔÏn‘õÚ m`±“g)8ʯNœƒ•@R †Ï![˜ªª§Ðòélœ®¶l–N14Uc$¶\uŸ’t‹ié†î´V´¬²¦¶îË60ÅÚX6^YFUkƵå) €Ëæ‘P_%éxovµLÿÞNõ¨Ò7ðÕ‘]Ï+B+ù†• vÓã»»*GšÏaI—Uu€¨HÖ´äqjgn—)èGòÜÿ„wiŒJÕvHÁn„°j=pk¡hYwÖB“i¶®Í‘=Ùž¤"cRÃmJÙ-É<û]ÁxB(u|ÁEXeñt*»éR½bA°ÙmgÎus'Ž`Œ󑣞ÊVx/2IÐ>¬è<ÏcŸ äv\¡)·t¨ã ó¦Ü í±­¬ÞWØZ¥9æùt¶G,Z¸^š^›h¼M¤²§=iEDÅД”~rtÒHÍV›<^ òã‰175‚Џ€4k‚QßV;V4É=šÖMs¸CN£Ô áÅbñ9ží0PíìwLR©XžQvŽ\tâ(Ý©Œ·Bu‰œÇjŒÚ§“’‚BUh‰ÐÇ‚²«jYúo‹Ãk?â"¿èr&ôàávûc•Ôó«5Ø,aqsÎ^{é¬rC3W m~¥8<3vû œà™\Y-I¥K>7„Ë~‘ž (~²ì%éÜ[!pj2 BάY5$±zkt–]èdØ­PG?µÁym‰»šUO¾Ïíþ•IxU=d˜£JZ“J.ÒUrˆx©´‘Û#â%;§èw€@â»È¯ü—4¦o´ÃvÚÛÙùé\âáy¤Â-™”x?çqj @¢õBl2TûN¿2@g„”]K´…Œ‹HaöÄGj’+ÔÄ·¦¯=óÜXkå¢ýN`br3¬M}„uzd¹*T /“ËØ T4\²¬°†s°ð§£¼²5>P¿Î+¹!B¬ R`& ;quWW$ħ]Và@mVÅý bAã⦽µ&3sį³],—A#ëØæÚº¬–¤¨­Ô¹KYØ@«¥·âÖÏÖfÑ’ƒùËD×J™£*ñ·Ç™e{͈rM9þ‚~óovÊvDŸ%i":X-öh»yãì 6Í´I&ÆÕlصØÝÂ|ë‘DîŠINÀ*è ±±B ÈëÁ†z|»,át·—›!X¥) °õíÒòØ ³Ä'žCÊVã”ÿ'k>ÄĬxq`!4‰åBUÞˆ¢(ãK÷%§ ^ç¸OSD5Ûý¯czOð5âœìaãÞt.Ú^e3ÉtMùbX­°¥µÝ _T{m¥­êNUbÔñQç¦Û>â\ùeª×|Ì`'ÌŒEÂja­ÛÜßã®Ií–Å$7â’"òt^CR,u7á$r<ë–G&gµÀ½°Áã:u?³Â”*s+NPå ¼²Ý\ˆú—½À_[áWC—x¥¸ªT~%;•}Gv·±)ˆÌ5m»Ö'9j»7+¼M»[—Æê©zó•¶Ôš çù:zTŠ…<'ìÈòÔÇFmÏy,Ü2¦ö£&îçrä%6ÛQíØ~ù;·ÈNFTK˜ì- †.U¬+’æ#`S 5~D%òùèÆß«¹üz>÷õ-9wñ¥m–JôwÖÍË3Öuw¸pÍCÞM­ééb¼K»+ÛI²J Äûá'ì©—ÅI¬ ¯=ÑÙJ½–ñì…­­Û‰– Baâ°©,Å¥´”òÙ‘8½4"„’_­0¥=ë¥è´#Ó÷:÷ñ_Óõ“ü:I5ª¬ªQ»¤϶/É4xìör+ 6Îß0¯õê·t9*¡‡ýnK[cR®=<jQ$"-öãVME_øå4WÐ¥¹Å tñ–­:óÏš­U[׿89›>(ç1^¨½Ý*¢w¿ÌÏ\8kèJ;a°^«I²\Á©Ð -Þº™J>^ @¸zOt¦óÚŸ”‰"âpjžÃ¤Ùœ^·K„@¢’MÇPö(²­‘$¾bæž¶3Vƒ|ЮÈœÖîèØ‡X‘•uTžV€ (ðžfÓÜ,9Ú%åc؈Î`ÉÀuƒv’°]eÞ ]С‰øÊ=RØ\ÁƒV€1Šf4[ Á˜gý”ÀN]ç“ÓI0Ÿ{#i¿æ…¥û$tîlUâÜhûÔ¾¶–ÚëIIð†GdÁ§öÍ»X ñËPÛZZ` ó£2˜ºáÅ‘B ñCÿF]ŸSŒÐ—¶ÅÀ3/ê»%±‹:Ìùà]úñÍäàÉy‹Lì|‰gzXñÁäeƒÃöÒ/†‚u—CÖë´“Ú¥OÏûŸÌ}Þ¯ ƒïZ’æF§þ²ƒG¯-K…ýPóJÎL5ÒH7YáWƒ¸Ö«Ku†ÙOÛ‘ð•—1ÑÑÛ¸(t3TK›áðf>¶œ<ÛBK.¨úƒíC¾8`ž6ð¼çPy÷Ôf`ìÞhƒD–,tB²2)û >`[y Þ:[ïµX,¤A¶ó4èaÝžuÒ[¢=V(Uv~!#똷:O}ÃG£›C0¤Jp]»f,Ͼ5Xö‘ØS@2§AyAö÷ ðµ|Þ­¼ðk„ÿ½Âíï?à?Uùý/Pöí_ýâgÿ9U_æ÷о¿Wôý½¢ïï}ÿ[)úcþ«e|Û‡üXÃ7üÿUÁw‡Ñÿkê½)~ø§×]?”z~¨÷ïÕ{¯ÞûI½÷ÙÕág88NGaúáÁIUyÕQ„Xœz'ÿÛ§gm¶BÀåŽÚ*˜RröÒiÂC7ø¢¬Œäál°aó¹B1—Æ\õtŠ„:U?xìy™§fÈqi©òšÇl!t§óôó®Ohp!%tDâÝÏäbÓPg(Í4Y$ª=ÁûÞrì¡0Çϰ5|’B‡Å…MƒØC³’ýI£i´ÜœÐ¸<8ÑHL“ꩨTÚ¹îbëŸ&:ž°±¬´ ׺ž1B‚xKá°2ˆH-Õ.íûp5åHž7¥ÖOç^ô‡=aŠ,ôe]ôgÊ÷mËnM5ºÂYbóxsŠv=yú¹Šµ¢‹½9ËA‡ÁÚs'ªÿŒœTS¨q;ĨâèáÄ™KÙ¾ hržŽªhÊ”`QžÃ¦<ž#yÅ»^î­YGN:²xwS¥Ànç3—1ôX/òÇ–¼ôvNo©\ºô× ìË~.íUõ|`§§ c,Ðy?ßÛvrH·£Á*ìòàÉF„[³™ úé­ [£Ö£”åÀÛpÂ"[½FW‡ˆíSt÷ã¹CYʶ´çâcÕÅ[ûÒ^4ÍÃéÐ$ê¨Ýä¾4uhÒóh: /}ZÖš;ú̲K2Â!ãÙ¶7{[ê j®_3—·\<ƒô¼gF(»m–ãU#w8kæùöËï‡C±vëé²Ó^<[SÕ4-OlË^aÑJ± T±Fßn¼Ã:tö°ªµÿå@Þ¬K®È;…ýC6Y!oR÷Òó‰aÚkíšw@«-ºÛÅmn!?›°Z´Q&§W Ì—'ò*Æ8<¹VnU0]m¯aדõÞß³õ‡m.ö+Úlá›݃£™¯ .ž/Âq”ݰ¯~ðuêßëTÄUô­8§$§å %unå´¡¼ÿ{B‘Yyo¨õfÏ’^{@bWoD[ûP–óÁê‰Û<ì&å½6ä´÷ôõ9²ï„÷ë¡Ûí­¼ö£¼CL±n³¶d‰“%à$wìa+³ñw @Ä•8Ë é=Ôh+‰kÑ­õ!ì»#k‚'<ý‰×™n'$êVÏUªYIq9+aäî!øó{ ”½¬èP”ZI‘P>ôW¦•+v@÷ÊJ'ç5w'ƒ3Ò‰gðð`U+EÈzjR³|FΙp¯‚J1Ö)Lí¨¬ý L×ç=7ÍÝåw¿JÜ-ÇÖØ µõÅêû(Úº46Õ}}¤Ú9ôío›ž²*œÒk>Ã3•kâçp2Ù@Ÿ;—‘÷6òÝÇ/É"¬í¼ØÞz»kìÛwZƒô|³ñœ]C›2¢íàó¯òUÇíçý:Ú*ÙâHÊ<·z£úÐEÃô˜•x¹“MTº‹Ú {×µŒÜïúÅfâÂkzHÙ™AO_¸òÆ…*/K2I‹'¾^’‰y9œ0£}f·gÔ#ö‹°Õ¨)¹z®yMMÞ*ˆ×æC½-»“IÛYïÄ9Ì£´­à^vg—Þ5 H!lL@;C—kÇÿ|¡¯b†¥ïVËÞëu3gÓm5ìÏxyzÃ1=6åkC(Y üÝ-jªòo£jàÁOu0xKÚD§X=üQŽæ&´”ÀÞëyâeødü²ëåtþ~íéÀfÙýÕùÐè’¨RÑÄႉÜl;.¸“ïëýtvødEï«b²>¹®4–m†ìéþòáúzâiN Ã݇Uz&ýÜî'¯8Gåêl†}ú£hoQ>TçVý·‹Ü šØ^íqb(çT«ý„¼ôçžAN*öÂ>»l¯áÕîÏž›‡­wéYñ`¾o"l–À6xR »K[¸¦ï_·èLàƒs±L^å¶mÙ"õ_¶G:½r²ëN½¦Ð…‰,t{Çlå¶ù¨«´¥´wV $[9oëØ4ÕùÂ<?÷â¿÷xzü>•XãòIÕÚ_wÿpüvG3‘n]ÓòE{Uë÷å÷î1žqYÅO–ÅpˆH÷¿ |¹œ#uZÂÞ›·‹úÃþ\úð¿<¬§ ä=!o¶9ÙÔËÖè§­r«:Òq¿þ®Îž§XÔ“†° ¦:e¡u+Qïä×AV{Ïß@ôi ˃ÀåÁÝÖѲi¾mëà"˜ ‘IšHå,nƪoÞëRGM€qìV4ÊIá7XfÏjrÄá¼Q~uO´SóÂÕ®s "=çá|ƒ…esGtväµ]ÓÎÔðxœÉOn‘Q±Mò¤«¼êÚßÎäœúl;ÚŸTÔsB]#å"œh÷¤+±pޤ:ø.=#ͤÓßy4mOä»êhÛü±‡Ѭ›a>æ¿sŠø+ŒPl¸% +ZIrb7­?5)'"SÈŽCÂëNûäãÉóóƒm*$dz=,û|©Y™®ÎŠT`Nη>5_΋Ü¡,øózšóqÄfé F6`ÍD ²?±áœ‡ÑXÙ"ÛGÉÌ'Ëþ½ô¡(uÕm3´lëÀÖR=W»†}öð;0Ø¡¢e‚"ñÌå}ÙĦ–Æó–À+¯=ö“ç*T_úF“U’c#J:Íqè¡=N#6¹>(óVœœøa!A-¸ªN³€ÛQU¸•U'6õëànäqV{*†2ÆzOÛt¡³29Ts HNGƒ-´(ó¾:¼ñT €pÄó&?(½Hrº‹ØÅ"Lª‡\OÒi@Ù*m³¡BýÄ„Ý~•˜Ù¥©¦­—Ïäeo,Ožsêz4-=Ò%Ò&''‚“àáPÕ`ªŸ·Þ6÷½íàI„®ä׺Πϒ‚r+l“‘ –,<Ž_iJQŠ. µYœï‚Í]šŠÞ8‹Å3w˜—O¸à¥ƒ/’/Ïs±úÙr:+oN8Ù²€,­³_.’ܧ­ Dk[äjçímê}lô g<3UqcON6u=ŸƒWï§éx’£Zˆ$smɹîG‰¦°>ÙžHôÎk‚ ¥ÛÜEr%æë!ÞóÊnJ“ò §[í×Ðyñ0o’zÄ—š3¼ÅìÛk‹–_NG›C ìW=µ–2b½>F-JæŠð|ï|LWj»¾d¦ª¢ê æ_¼.`¢Ã—Êjî¼ËŽtÒ9ffl¸—O×ïa–-XUº¼Ýàì°4/䜰ÊcY¯C\¶²ZPVKÑ›©f&ÒÚ?ˆN‡fIÜ+é*ç'IRÝî_ŸS]M¾‹¦Æ¬~‰ÐÅ^SŒGC(È€¬×Ä­cÁPóëU‘èîΦ¥êŽUžoá5ÖžÃÚ<ÅäÐáØMd›Ä_×Ùׇ«ÿNs²–ÈÇrî p¥¹†ÊHË€M´(Ì]œÔ°ý6¯".ÈÞË:›)‡ÒcDžk±YשzͶR>c+•w³uÂZý–3[ dd¬$¯¼•2áêj›ýÓOç`¡'ÁVu¹¦äUÈõ+} ûtò®Xر‚Ö‡EYxUW´\›z’‚”l¬ö›F6{©¯ËN^%´²SiÜS{W ¹ \“vu|îö²Hå8§ÛtX ·$ckâžÊï<¼ª!w×öIa9ÓRiw4+÷M¸¿ì«qVOûúe\&‰Ub”ý}-ÆÙ0›»ùQüƒê¥€"˜£UÁ‘+MúªCeú€¯;㣿€r\—ï0jëÀQÅ3;ÄQu­ì(n÷c/QÑ÷Ï–óyÝQO˜X¹Hˆ¹º$®T¾ÞÎß™·¢§%œÞœÙ°Ïj­ÚUÞ‚´ÐC‹2‘€6àwæˆáݲór馒•nåÛC½Xm`Ð5TutH„K” dÍ"™—–KÛ u‰R»ƒ8"¬\£7uVJ3A!vü$7a€ãËNûÇɨn•Ŭú´íTÂV-Òyt2^ûœšJ °wq¿Í~œ§¸K¯ä?ÍSºs Wb9¤`š~lq#.ÞŽöÈýÆqK­ËE!R’onj Hgß#Ù(|ëpð¼sBŽ€ïDbRÙÅ-°ˆ‰5¤,Â7Û$p±¬a£ª{§ñŒÙâ4Aö#oQ~ETlã>ÔvTfdôdëó¯F¦Ä*Ÿ,OdÂßÖö†g_X^L»i]…O'¥ßjLž-.€Ð,v­Ok e\JÖ:ÿ­êJÛ†  2¸‹ m$$RWmðŽ…²’w6o‘VŸŸjÉ8LSa¢M¡ýƒx»E3åhY"Ï– !AF5?ïäø¦õìÚQ€¬[Av¥°;䡇MðgÓVAòtêý7„H:4å÷Tx(sÞ1ûä œR$ÏÚ'Ç Œ;jÎ'VÅœy?<‹²K5'vI""9å;œ[ægxØÄ©¡9SÒ2ej¿Æ¢zí‡UáÉáÅQîÝ{Å G“Üæ©O™ò‰Ý¹æd·÷yŒèùX„¤bÌ­ ã´\¥èjÞ© x¨7WR’›w],>Ž_°X Ey~½-+ÈöÆÍ= eºrç¯âf,‘Óuâï†|VýÒ›oèYTõ·s°+ä¥Ò`!k¡%Ä'ç+Ðäè³#²Ãªù4°È:(@üè/êHÚÒ°x(©A¨æ¤Xˆ*°d)ÇÆ¼“á’y²ºFÇRÆæôȆøQ¬Å7%Œ‹‚ ¾bv¸ÞƨöZŸZ _…mß3ö¦V0¯³ÊÜ6q¢$ÐUŠèn›#ñÓÒ[öm:˜ªŠ”uEH¯Å]•( M\ñ{*/¼È#3³(ópÔú›Þ¥¼J5ÍõNÒòÔ|Âs`ÂçäÛž=z"»&¿ S!œ4g«.K’vû+-­€ËrÖñ 󮉚ž¹eùÇ–¥Vá„ִŃ’"Û½®{بª0[>xüm•o|ºB:!tù*9–sG’â´¤°—¬×3›†4f #;èÈ㽯EŽ•¥Õ_´ž­†2XIº2ðtÆ ZÆÞc-D¤©&ÂVåQøjZ3ò ..ŠnÀÄ‹F °`¦!Ï ñ_Yðé!½_Ö¸îÇ–5uk/N/YÕ*¯GÞU3Då¬-×RÀ£ôºBÄÚ(ÜGj<´ê\òHùÝŽ5$‚›ÌÉgè&Õ–:¨ø®ËŸ³ñš†(ÅzÍÊ9Á(ó"ÁõVAd+“n]7ÏLã&/`qk­í*<Ž¤ë ™ò¤­/!…!ñ0õ©œJZ^S;»ª”žV¼}R~ßŽÄË2ßñê‚3¹YgšÄ.†Ë[~"ªGÛÄOKdPa“êɺn³]û¤ø°u¤ÁkòCm0TµòIÈf—¾v‡¯ƒ.Š»-5G/›àGS=¬ærÌÎfã¥h‘ÆïU"ûQ«?Ðàs&¡ÒíD4ÛHíëhwP±«DQŠ’ŒI¯>7ÇæåÚ39«}—ª œçÊÖÚt¾¥©á¤µž£½Çmê\5lVS•ü/—‡~‹Â r¢ªÜÍî›hÕéVN’Àåa· †Œ+üpÙd¡hRæÉÆæLЛÑA=Œç-®{ÝgÏ3ëjy¨ä9‰`—ªw‰R —ʹ…Ÿ„a«f¹Ô%¸UH»ÔºYÇÓO w·Â[}Z&x¯®[€«òlOÊæ“Õ´¬ÉK@ë3ÑuøÝ'ñÏZ¿Tc±ó&‡®'¬êr{þ•-X;NæÜÿP¡•Å•ÃPÓ »Ebì|v¾l {ºäl×¥¢* 5ØïŸ|Ô,™šZ2=‡F³t4D¦O'æÜÒìýéáîÌKgQOy[àĤwþÛ›cÍ­«Dý*E˜ž1íÛÒ 4Nö‡»U²ºv¨C=J2£S's¶£ð¬JVŽŒHR¹,ݬL¾—Äj¡9ЫWàljÄúÒuÓž’68QÉTe`f€CÀ.þÈÖwÓ’†èÀJ€Si´“šltͽ¢ò‡“µ„« ˜²mÖóÀP…°ÓÞ"6¼¾91Fž°ø¯è7Oº\Ù3Wr ¢Ì»ÅS0ÒÂTvï-§BƒI®bêQ÷ò7×û¸¬ŸJª=[íeBynU¤+ÙZØ>/VOêvì„·ÜuÅ ò±»…c?Eu12Ï=àš uBÖRø•÷k +›Ž7}WrÑuÇP—EVÖO(£o7Ô‹Xm#¨ß›´V’<'õÀØ•êÄ@ç>³>A`=I›=êÊo·MyÍÙŽß—]!›¶9:3Ayx³`¬%N…’?Àëîòu—œ¦ûÑåävT v+¢q“ýÈ7ìé™n#µëwæ=ukt'ó¯n{ˆyÝ>]ÃAè‘hÔÞ»Ü×pÿM”ÖÎç);0uÅÒô,Uƒ¬;JÊåó˜ô&¼‘8•ãå]³y"/‚R.J% “&ǧ)s™ÖGÝî‘*mò¤P•Éÿv–µi âØŸÉôÅvŽÓó^R«“€ ¬q´}¨–¹øs7“ƒqÎu»yÉÖÎyp’íI6¬ÇÆYu²:û}iýÉó–Zp±àUÖæVÞ¯ÙÈMVß¼M0g>m¦S;4{¢”9A¢ØíÖ_øhJ\æ<¶ý;I+:2kºæk€IŒ£z(7›šfÊÛÁn-¹«î?öåxòÀª˜,©õáäÕtJ[‘d+X±àDwï,\èëL:®ÛÅ–#ô9¹hÍ#gµšVÐçåaE€)lµ§è†Ì»RbKšL_£ŠÆ,qÉÌu'~Y©B}k7¤H}doIe3“÷Yó†T®gý”*š„è|oª•ÃGëÑÐFZÉ}eh%q%hÈ¡ûŸÉ RF(²¹nüYJÄSOgø± úÉž’9,9zÝÌ-j¦~TkÊÃÆ©-Ã>ˆÓ~êQgp9Œš&œt:˜NbeÚ‘XO¶:ÏCYú‡e'Ú{Ô{Ù‚û€»®—R{Ã'A¼£!äêq4 ‰·L8!»PÓ–ª'K×eWØÛÀ¬·Ç.p³GDv! ÕÑ;屢SÉŠOÀK@0]Íž÷ .=;¢#œ WBÙÐ#5¹Í/%¶LVÖ¸” H¶ÑEϾ øÖñ@YŠ1w¬ü<˜V&X¢Ta‰AÓ®±&‘ZÃİ›´¼¶ðu(2cePðã•nò–€œ·-ª Ðv<™Ý„„ +éõ©ºr…tìÂI¯º›è*GØ„‘šy%n£bi>nù'4 ›/ü+o“=~ºÆE&Ž{kŸ^ÏP ö–eÏ[®´+ÿfàY~úM\ÒS”u{³JOäž%k| l_EVC`½Ú~`Ï«Dݹ5²/TÍøû¸ Ïéö ê®»T$?ÅÕýñdKºÎ­‰æIßg»m™(B'‘zî×x6=a·Äˆ­AÄ#K¬º ͈T¼àʇ«"Ý=ï$”ÃìÐÜŸªNÅâñ `L¥ [¢W ÌÝ"ߦ)ÍöUæ±n-`XÓyÔ2ÂZij¾EÈÑKó-õó«Ç„z)»©²A塞ä˜ ØTj·hö5Ï{muík( «ßëÔÔ!PZ55&öÝ Õ­ ¿ƒUAýQyl6d¯‹¨þHj§îÑß*û †O¢N´žL‰-` =SØ9K½kŸ] ‹'ÁÕkŠïns0ðW RˆgÑ,ÇêÌ“÷4u+ëÝêIGA ¥òáHÖS ÿ€sèIkXàÕwÜÖ¾Ú”Î|>÷mGó{^M1«5±eÀªPØò x`·g#A•g.øÑÛŸ©ýãSuç.æƒ JÃD5ëfíÃãçTÒVšX,oÑû)\¯=‚/P2æÝ2‘­†¿†È•ÀÏB"NÃÔÔŽ XÃÑmCÊÍ3øÊ2´Gò½zöˆgåÞd>ª[EõæIÍyx«ÕqåÈÝʹ§v´ÙfÀk=¸Å_áJ•Ä^Z3ð™íè:äèßô¼]qŒÊsøÅ¾xb€Z0,ë¢ð\®ZX&µÇM$zPŒ{Úåìá/V1bЉÅüG) ë¬q½Bµ >30ŽHmGŸž÷àͲ¦å/!XcÆ·’MœÞ/¶Ào£ßÖœ«8 P $ÌU¤¹çݪ­Kñ6bíôQ_×ójµmVJlk,‚5ÛÙ®”S™çúªÛàð$]°>ƒJäKíŒS…);¸îeÔœà´# J&¢FÍ2·*¡ûp¿òþm¤ðœ”xA{<šÓvMþŒg'šÔ•Gך:!ܺ±ÞCÝQ¨':5Üz´5ãÝ>QyêÅ,åñÝ$Ĩ“dÄÂJ$~²ÚnuôNÔß·÷®n§ÅéþDùhWi¬([¥Ü Ê9På]¦ âù‚¥íª{lºöaeE’NL]s× ŒT*á•}g¢•^– žïÐÕ-ñ.‹kCÍu­®® ? r½áy@ëÀˆï6ÈL§mðÍ7ì6IŠF¼v=ùü€•€ÃµyäðQø‚‡8Wô¼Ÿ°àx@Útƒõí u|ij»û™à4™Úi¬O>«õÐ[›t›ÖÿIìX`d[·ý%°d8ÏÐBŠð.6!Ø l³¼ï¤T”® ÄjõЗø±ÝÄwO͈O•µª î9_°r½É¶gâÁCu¡}D=%âc†ØMõ£-™Àvôiœ‡FPpä Èôƒ< ySf‹?£'‡íˆšl¨ÃäXy‰r³ó6já7ÈΡnSב³:{¯Ê>»dqX^=ÁWmNP?›nèÊeÛÌ,ŸZiø-ý/«ÞÉd×[Ó ‹n <ïYnͱ¸¢®åjæu­3BSI>¼ãh#ë“”¥È]daaw© ÑÔ<‹QÃ?Ý4Ô*áõîÓ2°îÖ"¾’ÀúÀÝ>[D8™õöÜ€­h¥»¹7ÿ²R_&cø›C j:*4ô.9=ßu¼qg!}/5k--}bƒ¯0þp®HãØÇVX;N<:»šÀÝÃà (êbkx¥ªùÃ÷,â`±¤3¿ö~´ñÌÁ«=7›ÍC<²}zSOÅ/aàÙccôÍï:7h·Ãcz‹Ï g-ŽD½îÍŠ:I{4ÕH£á²áx8ÿxª¦¾Ï““âÚf©@ŸˆpStIl÷M².ȈöF½§`ê¬ à'ü–Ç’†*•’.ó¶Ûî5«CøÂQNÐîœ`]õ²,léBWF°ï­ÒèxáÀî5‡ ¼€ø'ò¾.Ó/äú¨³BÐ= ßN‚è[´NL³ý ;´LºáÍ,?&Ÿ;IÉMf¯˜+¶pˆF4|cÞîg}W¹È¬®ZÒŽ£…┇æÃÉ.a(×µ}4®»Æ¡Á=ŸzR…ŠEkoÕ6®•®g7'¡ZýWüÈΰ´ŠšºêþItæª XMÒ œÝ?ÆèVÚtÂf隊$‚!¸_wÓÊp¤ BîcW$ˆàes·•J²@ËÒÅ–‡2tP„ðKPgO¸¯a©´¼ik”;®AàtÀgÂ_%Xt!‰Á¡}Ú5ëâ·åÙ$YŽ@@¥ÿ_þù• L¤?§"`9ÊG¶ÛiÿÕáÜew¸µ9?œISÀk Áݵ'@=ýÂ^Ü„ìiàÒe[„>rßÊǧqK¶.€ŸÀªW·õ±h[5tÔÈñd;+NfEõ¶bLºà5òó[·‘Åv©&²Aé GÛˆ¬@Nû2nJM}íl.‹›…›{ët…"ưçÉóÚF;xÅ{#£^6ŠëÑ=2ag-›’ tŃÃd â ×ê-Àe½S/äe-;MÿSe´öÌ ŒÕ“ ¢¼s¢ }v®£v·ö‚¬Q' _+˜ý,»‹Õ3wõ¸e´äN „2XKÒ®t¤ŠÆ6`«“tÀÿNÛÌIÙ2b·ãy9I£Bé5W%ùÚ´š {«^»!Ä~‚ÅÜ'û:éÓ·`pôÑÇ^ØO±iâµL ºWA0i:¬r•Sá$¥ð ]Í.3*É«y¯¯³ˆ–ëO’¡¦`a‡«H~I9½¦ùlyßÃ?/'γç#žçÇ=µòklÝ> TÍþEóǤès¬ÊFgQˆPyrüñç U'GE³âYÖîv @+ž¤+ŸSöôg³•¢CƒÚw¯'1ï´3{zäo‚wªAç)ù¶—Ó"׳w°ò² =jU©óð³”ÐÏÚ­_`˜Ý©ð§ … 0ƒ\lÄU9,„ƒ¥E¸g½N¯Åá°oÑ ¾ ÊtAÈZvØ›=ÝØ;HæÐ±— æ³³†E:`]dx+ïšG^ÔûSñÚ@“Ú[—0ÅŸóèJ&X×Ñ(H˜"äŽc…G½ç´—]ò€>RZ‡â¬¡@ÿ¦…WÃï!;‹dóœZ£…ÝÉatlIÃÁ.¦Ký5-Z$¹‘:ÖÓ,Ù—¢F^¸µÑšä Eq×==Ÿvw‰¤ºôÜUÖTDÐáaJvé+ ¨W3Ïᓤ@¼úuÏ õ[QüÌ6®À}}’ 1ÍS‚¸8L‹JÝ´wq"‰Á#ÒÈ3¡É,X2^¯ãŸ âöáŽSÀWßg@§ýýÄ‘¾ºŽ¯DW >we‘Úbçx/18Þd’džT5Ù•ÁÛ@Vºlࢠ%íùþ¬Øü3 ‡­E¾¡r°u»å0ÄT±QÅÞ'X°%¶áA-? x#ÛŸc~ŸëÐñÐŽI'œ¸ €ÒÎÒ¶§ß9ɬmŸã 3‚âóåù’¶¡—ªÏAJ¶®~mÓóÏí±Ù«^¦ª ‘¼ì¶½pÙSßÚàŠ?‚²‰9`a`œ¶Æ°ÇŒm`ˆ¹ Å[•A*g)NÜ•lä:Úl×¾/5Q†®Î5/I/(a¤“¤§Ô$ËÉÆ`¢à.cfOy ɾõÛ½IN˜p# ì«1pñŸ^å2SÔÒcu_UâØSÛá‡xÄ: ª3\öÄ·j¯ý>±&‡èIé®w@Ò”§(/ÛÒ”‚| ÄÂÇôµ&K´ tç; vù\ÉÖ2mªÕi?5`'WÛÇF\b&(ì9`™Ž­ÜìèñŒ=­XÅOݼFëðȳZšqÈA<›CåÜuYÈÔÖ•tAök¬Ý¶ãh3Ø&¤¸G€‰÷¨Ûfžç‘×°·T…H^P‡SmÍ,£UìƒlЯËÒwàüØeÖfßÞê°ëÏù;o’Íir\Ζ‹BÎ:›ðùdÖ²“&ˆnÛ’u;äÝštÜú¥¸.¹…¥âºôÕ´©ˆTù}––m:¥-­½N„šc¾—ñ È¢]IÖôy*&á/nµYœç$Ö< ¦dÉC¹Ø¥o'¢78³m·Ðç«ï© Ä³Šªîçp|<³ƒ¼GÏÅ®ãeSþ«<ÿ¼œðè¿«4ÝžU.ºÝ>Чe:h_ñ|Šzþ«Î‘†5»óœøY{68ÊB ×:¼ÁCM÷]õu>¨oèÈ’á±k×üAÔ¬,³/ÅÖwEéU’éVw#+éòjïÈÒéÊY‚^nròîZã7ûë·3©’üÕ¿$þÚ7¤e9êìפ÷ÔÒ›Å_´o­¦¯çµxZýåY´-$ã>•°ž:ÏÜõ°ÕðQá\ÂMŽgéæQv;J¿U H§£ØаH³-flD[{>XÔ¤–×v@›&”ºTX„9©™´R^†}õ@Þa HÚÖ³·EªPH-×<ñ 'X‚DâÀRRw‰û_B‡O6õzœrÖ2ÕŸÉÜ>KYîÝBdf»9-ñh•`¤·0t6Æ€eš)¿rßžåÙ9^âÁé9ƒuðLpf2¹xÀ<0²­# êáR-œ„s`ÏPcRšN±H=ä¼$ð—÷ùê'ÞxÃã% &+îæ¸Ð{±™À«í ¬ÙI’yµŽXV4¬ëéÕíüù´e9³r‡5ÅÀÔjXnÚÙ /H¶'þvUª Q\ó˜ád—ÚkãÓ&Q ;ðQð­*Õ8ô[¹Çp Õ€/Àk-lZä±íYýjÁ;ùÀCâ·õùV´÷Ɇ¦Ñ­n•4qž7äh,¡`8RÒšþaŠ«àÆ«ðjæ ûO˜Gÿ4AõÔ@#uÜ 0”“fÖöÛ1‡)ؘÊs±ŽÈÙ?T4ëNq¨{ž}YÒA‹6\0N”ÁèœÏüoó!‚c= zWðkG»SÈÂ~E£¾Ãºê¢N´ºl¾%¬*eu-¥ñ•ÌwŸ•NœµÄqÚÂze#x`ß?ÔXù ÓÂñèM·ú|j”áà­¯6΀:’íheQqU#›çá힥v}WÁ8¯bó~œÂ³'ôкÏö 2HÔì Á:Ò2%›Š†ÓŸS+(·»ŸÍ,,®€‘ÒÒó±Dk‡šU&»]ºVâ/ÛíaDh…:‰ð$Ÿ‚ßG•8ô-‚ªá¬ªW¶OâW€çÑ5'|r.n®5ߺÙV-ºû8ù`ñ× OƒàíÜ`‘|ÚÇ‚Ôëº†Ñ 5‡µu†Õƒáèø se3»z•d†<ç5l~·ÒAð Ž“vlEaõ¨Óf­HGK£Ë"°K¶ñè>žSh»­D{I gÏïœ/÷ôö_" Ψû:`{‘¿¸7EI!5×Ò©œìø¬‡0Í8*;à:Öw–WŸÃ ¦ +¯žlºpöíFµQB'\ÒRÃqCr‹Ö-›Û¦‘ÂåðÝÃxy˜M;ýÿ¸J¢|žVŸ=Ó‚é\zÞöœÎ¢vð9ô,à9‹ìa\òÞû]ú>ä“é${ì&—: ,üv‚ÃNnتp_×7@ßf;¬ú«#Fµ}ní¾¶6m”‹ dŸ^~ÌÒW:×£c@¦VøÛöàS¯°êMŒÖöI“Yµ@ôlŽ«G…‚i-p<ót|k[jqŸb зjï ÈÖ¬|²8œ{&úèŒ õåg.à){Ý)Á¹×îöÑñ—«Ø@¯¨Xb³µFƒ¹íÀCЩ‚A/+Iý&OÏ®%·ã„çKP Q[ã${è.FÌ+Š:>6f^x–U«‹ƒE Ÿ­[ÿM ˆ¹-›Je/@™ÍN}à(–›¥‡ÚðÞÜÉ¥ñ ?:óA!ûÊãr"…?ÌîÊrÙª{v~Eü˜h?*:ùŽï©÷“lK> ú¡ÈôP”;ßCd3µ>\ ¾XÊs¨‚7¯ƒ·CÖ:=éá ;*6 QÕÙPEèö`ænÚ\…%‹¿ÊÛÅl⣠pÒCT¾œÝ+šÊeGÖ-n×gRw7ÊÚÖ¦ô@ÖæO]ݸóŒÝ¼:.¼ òrŠü)<¯öNhy«5•„Y³2â2èʪ®Þ¾Õ•vétí:i¤ ¥ÃK—ËkzôÉB É;õC‚)ØVžPw%äÀrÎj9¤zg=f”T@O¹4!xoúØHÞ9]Û¦§nú—ŸÕâ|°¸²ÂSQ7Õ&ÐçI+À£“hÇ#ǰ†0oéÉG,Òž¿¢¢˜'yiìTÀþÔh=è]OzÑèR†+ž½B8²½ëÄLµ=´çP((¨zn×ÔHaÝÐ_-‘£ƒnoVùl¼ë²L‹ ×â²)ÜI£ž¬O™a ‰ Ût\‚.ͦÒd%rí/ëô\Šqñö’¨úÅ’ì^îE+ígñèd~B×:«ð¾¶ãN•.c°à*Á¨Òí­Tl˜ÿòÚë ž5†ãÙµwšš³ ´÷A¶;øé Tàh°@2^8 !Ê!‚z˜=”± Â_圽8Ó6ÀîvöbnÙbGTÞ$×; Š$ðG°pÇ ¾¬ƒ3ª¦³X0¼Úº!YVîåŠçÌ{^ú…±{R…Ö_èŠfÄkhùF>°y–Wç,ƒmgwû4k¸ç±.YSk°…úªÍy ãI7ðú€z¨…¶œ–PN”ï/kdL¬Ñ‰?ê6ìæ½]»ÕV‹ÕSïÝ6Ù>UÛG€Øž%Z‡Õì©{ Àcûómuñèüe̓ÄumHu•Í O„«,º'5ÀPw„ºÞØì} çe_Ú›j 'ÖŠfê1©¡èŸo,¶ñðü§½æQ-d’¸: …d{ƒ yÀ—)%½‡ç –0Uø´Õ…{«v-Ç! j£±™Ôß²sxLôÎÎú­,ƒ>^B½6ÚÀ•QýˆK½Ï7*ÑøM/–V· ϰ(d NN΀PTˆãn]9°"Û&AVkõžQbÆâ>Q/LgÛÓHPÏþ½Ý»‡fl,-Še·»†žÙ2ìVÞØ‰sí1“ê sž­ì>§Ñœ#̇]°7(1«„¤VtŽ*ìä@1gk/ŒyNˆ>¤ ÈX•e–ÇNŒ£ ’usã§Á³,o¼ü9j:D΢¬``½Ï˯›Æ@auü Õ¨ëûâÍ[•¶LáH¿Ù–µ Ò€ûÊC,eÁxÉ‘î›ÌÓÒÍ^Çï¢h©v’e<ÀÔ&Î&ôŠ:$ƒ§ µchjñ Ä‘\ÛÆYŒO™ÏŸš›‹¤ˆu äÄsÒ|i…¨zx¾óèÊÃ&xãózz!"°Ï'ÛŸ¹Agw=“+lñ!g‘å!MûÐ64ÂìBüÖ€e¥aÝäy{–l–(mËìïì3}\ªv—(gâqÙuAŸY¬ÂêˆJD.g=mONȯus/­•¬ƒeµq3ðIêBt‚õ³"7W@1m[Ü®¸Ø«ä¨\Õ³¦"$”[ÕC‘@ S*ŸXL»ôTR’5›¢r$°;ÔæÔb<ªÏè€ý05nàðùNw!‘ù½ÁÛï?à¿ÔänüÑøpço5·ûõ¿}Þÿ$„‹_ü7_|÷‹?ú¥ÿ퓇ÙþèGþ¶õÝ}õå‡ÿåW¿øpÆgùÃóþÃ>\!´ßüàWßüá‡ùù_|ñ³ô“ÿËW_~üöø¾·ÎúÃûäýôŸè¤uÿÁþõÏ/?~óÅO?ÿòÃ}þÝÏ?þ’¿øÓÏñáO¾úé¿û«¿õÿÓÿëçß}÷õ~öÙ_þå_þäó_~û“¯¾ùóÿ÷?ùƒùÅw?ÿð¯?~ûñ›¿øø³ûÉl/ª_ß›îvÿF±ý/òÕŸ}÷—ŸóQ«³_Û…ýìï´ºÚNaòÏÿŇ?þúã—Ÿ~ø×–jðá×OçÃù“óûûÙÿõ‹/÷/þÓŸ~õ˯?ÿr[m¿¨?~ÿÅO¾ûßýÁ‡Ï¿ü™?øù/¾ýŠßÿü/>ÿâŸÿ)?°¯ýóïóÿùð9·øëüäªöíO¾ýâÞäg~̧÷>¾ú¥.cß^ßüâ›?åÁÿÕg¿y¿ÿþ˯þòË¿þþË?ûâËŸmß¶ŸýêëÏþí—_ü‡_}üçó×?ķ޾÷ç¿û®&ý]>þÝá~þƒÛ–ÿxúmîâoþú믾þd!ö7_üÙGþÏñ×ß~þ?|÷ͯ>þÍ_ÿøþöW„¸¿c¨÷Ÿñòúð½ÿïÿ]Žc¿¹ÙÿÄKìLþé•ÂðýäõáoþöüO²ÿ"‡¿_ïŽßeò÷Ã*ÿÿ…~ÊœÿÅk}ÿÊo[â~Ê~•ÿnã¹_ÿÄßç6DzúúWß±ôeûæËßå7÷Göů~ù÷:Îý·ð›ûìóoª{ßý;ýç¾7p»rùðù7ß|þWož¯2 íù³ÿq¯éŸýä˯¾ãW>p»£Sâá[NùÃg?ÿ«¯ξçûŸ¾U>|ö5o뫟ýð­úá³ÿãã7_ýðöá3Ý÷_syŸ}÷—?ü;/ÿ³ï~þÍÇýÄõá³?ûêWßüðÈ7¾ø‹ýDúðÙ·ìï¿æÒ¾ýø?º²Âwž¾ºÙßuóÿÙ_ñáÿü‡¯ø½ÿõ‡¯ø½?úá+îä¿ÿªrÿꇯø”?ùá+®ïßüðOéûá+>óß}ÿUã«ÏøŠ‡÷§?|Åßûé÷_lñÏ>þèKþÆÏô%þžäsÿý¾äƒñ×lÞϾüÑ—|òW?ú’çÿõ¾ä}ó£/}Ö?ú’›ûîG_òwõ£/ù»ñ×÷Ó[û[+óÿª™ €2ÙnÕuºé*•¯lƒ}Øev'û¬¤î¶‚e¸6ŠMí²O'"TÉ›Gâ þ1y,NotÛB®²Ù@ü~ã ERì±'½¿Ô¶™§vUìâixymÕIÖ´ªå´?¨ ™J‚]8NÔ¢Ÿ³=J)Z®,Vo´ây´+rÎW†l㔊1ýÑF{ög©0›•.ŸŸÆ,רÍ:Zµ£Fv<œn~mWz ηOQáD–å˜bË*7Vkk¨¯®zåJv"ÃéÏOUüØ…âëêV8ÛQÏG]”_ÒÙj×b·5«:›Tc+z'<-›üî‹~à«™ÊêS*acü«FØ ÷C»ËùTåpÐßv¡­Æ?y¬f㎲Wq;;)ÔuE:ÖyÝûB›º²ýMœ€KÊÎÞN| =fâûBý{õ÷CïµpÑu¤SÈi(Õ™ê1m# 6@ri$®µWW¥¯º(•F6·Isz ¨… Òz mv \‡§¥,á{LöoI’ªéÞeBº¿Êj]·g¡ÙÊÖæÅm[¬ºÃQefœ <¡íÊ õº² -cÆ5O·’CÒÊÆ;ׯf}US·©uq½‡.%ù~lSþÿ©²æ*l1sïæåñ”Ý·½š­³gëê¦W–Ä¡LOŒ¶žÄ¼Ïw¤éРª¥ž¦ <{dEŽ`ÍË)(½âyë8‡çœNUV'2Gsîø¼ÖÔcmhiÇsÚúÞC°?ºMh™(ÝS;X1zм{¬XRU]Q½KudˆMŽNÏ{èJ¾>‡¦Î[ø‡a?O¹ “CMÛ‡ðA¬;£ryVB#Ñ·6ÂE<¾ö»V ÷9Xž\6èí,»hû½34Nš÷¢Þ“NsËb¥Ûæ^}lˆÀÍ^“÷Z‡æu¹1ryiåñ¯g[HðJ®jû\ÉNx<¹ˆ0YÏ{Ò¨J,(*µNbˆªÉZOÖgéa¨*µŸãeLjsmìpñyÜvܤ ¢i{•z|‰òZiÎmŽ™|¶†Ä!p;gDÞ¹mÝ<[=Vrf‰÷ Ó§¥7¢•‡áå,=?϶xqæoèlÀ äî÷m<BÝjDåûµ¨?Öà…ÙU§·Å›tò°¥îT¨‰0¦D‡6µnŸÀ[&¿Ìã]íZç6Ì Wc¥¦ ½WzI}—jmÏVfÑ Ë’mql¥Ÿ:È8Ày²‹£ûm*³gÏ£d XIÝ#­ªÅgr×/?¿»Y'+¾œÒÊSƒÖl™ÓÙÏä™Öž1’êNÈòJ×ÔxºÔØK1}5|‡‡õó²óèe/õ$ãhô`Óíå¸ÖLC‡†°ÞhÛ"õRšzägœá÷9Ýkö¢¸Ì8;ûæT|Â)‹áŒ¯' Ñ0ª ‡6ªL+È·èEqóZB,ÎNÔξS¦õ¹x„zQ<Õ™"Õ›œEÍ3ÊlàÍr[ÊFq·u ¬=vYm /n®EòÏÁè.p³Çl,v#<šÚ-;¾Wy1tÌyÙKš{P»Þ)Ê1‹kÅ+%#án•}ë¨Ïc=^ ‡ÆÍžý_Ú ØÐÎb#îâÍß °'OŸAv*Ú4UÖœ*ÏßGQ¡l¥{m\²"S`•iœCR|¨ßÑáxõ«y)éQ)kŽ›œZrràTˆ¤Ù檪Š?Ÿ“£v¨p@ˆ Ž·M}-:fÜ«a@›»ýÑ£7àëÅÚJ¢²$ÓÃë5ùUà „clk§¹%È+q*kw}e1°u4“˜·¾;–ª5WŒJœ6ò|oÆ>HŠw8›N h*+Y/“ÛÖ誎CR²½©²{úš®<.`Éqƒ=’‰D^UPÄ_‰`儈æ{`BÍÁˆÆ I–<;lë©•×ó>„oÜ‚=ªçVéޏM§q=î.q©ÇÚ/µË¢ùðà€ËqüŸÀܶ¡RqüpKdϤF’*­ѱëuï9·rêK6=÷|m)ºr]ñ¸ÞåÓÏ<êí<ÁÞJØò­š¢=nËÒsï­3•üÎxÒHH9±ºý豄¶¡IÒ²Ua—Äå\ÅÂ2@î ¼êøÁ±Ø¸t#d«*ÅÖkŸhxºß…Ÿ_ÏjªýÎiõžÍΉ‡'§h“²&ÜåÐ ÑÙvªžgV û1l¢rÔ«N åö¼œšÖÏã{hÁÈG¥½·ìøoVÐëÚÇ#º·*î§šýÞ*>8$çÐÐòð¬ÉÏë·CFN¥ŠŠ¬²+Šº·ö§î91`l ›Áz®àzšæ°mëóÜä!wrÞŒc<!&°x<ìߊ®Ul.ÝåÁOm±fýÓôR؆ʃÛL ~1ÿ9Íúq 8²bO»Égg‰·x‡:ë¸À¾fd!2ƒ'€ ¢ùM½=]vx®-`Ùz™•È^ÏÚƒm Wõ&^Ϋ3!»uÑWBƒ?¢¶qºðn@¯ÝÖÕ°5|^=·Mï ®ª,DìÒÞÓžq’öõ®Xb«ê8Õø¬‡‡¡råž…yŽé©{™ ®JOv}ýX” ›êè©þP#€“,^íâ©\$n§ÛmE[wµK‰äë¥zTŽêaéÃù²t‰×bž-rO"ÒàGÝÆ¥ °|Jnç%®SZuéÑPº.œZšÈ]Ë&º[9Ƀìnߥýsù¯ÂXÕyû:º â~Ÿ¾Ç©È^—=§¼pÕXÞ#ÇmÜ0²ó†IMŠP¶sVe {•JpšXhíâãOžï•ÏÇg;<ò<í™PùŽä땺ó\DU6W>â…Ó_\s‹N•m«–YìÇR¢JÌäÔüd …Êkâ¶·[ØPê,÷£6"+È¢ ÑB¢2Ør—1uÆ^ŽÁOûþuU É꥜¬ÛAD,”?y`ìΦÝ[?ÔTÖåÂi¼GYsE•ä©Ú—k÷é¦"Âû‡Iž¼í‡æÆIm²¢5t$tX_eê>áôäð)ºyux’¦~’Ôj¨ÚX”Žü¦mî]=ùÞéòvl¼ˆv5å4æ’ìºÄŸÎ8%ö”s·P¡”ž#=š¥Âyxj"ä´ßxµ¿™ÚÙ8£•Ÿ[5<›ŠxKê™”¼(gR÷KK‚aVÄ ÙMvŸŽ$è²JZ±ìL¼R>{§ÒÂ/ÀX”òkÇáÜÆUú¬îï ôÍb/þx jÛÒ~”´bÓHñ~”â÷ úÎ+ùl®ŒoþLî±á)¼âÄê×R­òd¼Ô©NÇQ¹¼×¹’Š»-¨EdÄ˯…`>Ó|“õ Ü%ŠC“si¶0ëeðÙ®º0(ÏV5‰’’bÃ[£öTH‰‡æÈq€÷;Ž×SõjÀÏü£ãûj™9jw LPæ|(iªîZ- ÐûXv@Õ@P]O„++ :T—_hÈÔÖÂQ—äd4Œ.¤çQõ©ëÍ ^Yœ²ˆ÷Aa0ƒç `à¿ݵPF¨Rm¢µ qSNÑÁÒ¡ŽWìaW´¨‹ÐAüîÜ:ðl…ˆì¢oZ Û‹~<—›ûq:5‚ROƒm‡KcŒÑ]~–øH¨å!£JuõiÒ5ý’‰/ؼ |äïŸF¢‚*üÛ Æ$…[ߪAESO0h¥Y—riùU˜È…D±—Ó³£ˆÙÁ•®NX&ûwugÔÕæ%hZ–s˵ÓEÑîüÍš!=µjÝ›ê•Kmɾhƒu-‰†êÕŽ¥zØò¶î 4ÌÄ–Õ#vZD{©Û¡B^>7ë€s$çä˜íÓTǾéØ/½wª­Ëß±S XŸ¾Æ:äØÉv~TÜÔt[GlÎJÁoJqÝäwõùE%Iɺé ÕëL05U%qô\¾…æ¿-Û:S €çéç’€®'b¼»`Z—½êî–7»Ê {Ýk¨W14S ¥¼§f´Q}Ü@x¾ªŠYV?TëÍ¥‡dä|ñOÍ—W¯ÃóŠû$0tÄÆÇ±YXv%ébïÐû—¸—F«.’2ìŒâ=gg±•ÞKvö>š<:ÂüR%¾Úþt8j´—6À¾£ÇZó/ĉ ljÀªÖ!#á:@ÙÍC1ð=tëp!oN¢ƒ}SÖ뼞*ª¹“£-®“—ëV^ç‘Í[(ð«¼×K¬¨¸» `ÀoËã ì޾eÞž1轫ÛÜcÑm×Â%ÏQk“¤Ûf„5%¬ù%·37ÕÉO°D\-˜‚ Gl?…‡fiÎHÙ¨dV{¿vtÚRülóc0"Àð‰[ºÆ‘ÆÎ =²³ hUIœËÉ:ç!5ˆá§O'²Å_§Mty­“;­Ô’-àNÄ#8Ý9õv»ƒü“´ÏS$Uiø9â%íÑz!.ǹÍ~z›ñǜśë<<ùztËVÛÄ© –sQ®œ¢WP$E=º5Tbt±œ[R!Æk¬De]½:±]-#Gcv–»ëô¸ôcZ P¾ÃQ½§{F¤€¦ ë á<‡'sk‡ÚHÙ5þijé[bÆ9²²‰`§ZåР†¶%ÍïSvmë½5#Ž5n›{=t¿êbrhëÀ¼TÔ–¸”Ê¢À¹\Ù5ìpé:ÁÞ]M]}–ºæ¤ ãÇe¨SÃJ±*ªÅþO¡â$`®’ªß/Tû,¢ES°J WºHA k¨øøè^ø™à ª4€zÙpÍ Ö¥Ö߀²›•Þ…‚ЄÈóhÕ‹ 2<.Ý6Xt†Ù#L6˜ï úš#Ä¢ÄÜ]„jWP+A鯵 W÷:#‹„§’n½b»~Mpž¹¡ˆÍà½,Üäœ Í® åXع=öàðp2ÍžÍ P·§û¤¾œôt!XuĦ#…•nÏHÌÝ‚ûöÛ—Kt€ÑKÐvÀÀÆY•H…¯ÎC;p—`Qa0<ÛžÕiWÉÿ’‚ÈZô“!6mÒ‹ža·Úûíh~«ˆ‚·¬Ò÷€ìZ•‰â®§†Þpš"Xi†Ð»>—ý' ÙVt1Z*]YÒx=.[ øÝð¤DOSÄei™MvTÞGÕ,Ë de²Ç5í!é VÑ䰢㱕ós[Q;fãÌž!°™žä=ôJ+ÔÓn 'Ñíá`ML[/€+²ƒ©ºâÅ“$7’×øLÈý¡¯×KßG`6©÷Ò²Óós‹ö3@¡»@€]£(?¢µòºtTGÖª¨êŽmóIß’àd>§ìF~9¨’AQßD©»šôu‹nÑÒãÖ6»¶bÉŽµ¨‚Á«ùa‹U­o§­R†yÝúX×-Çœ€VTø±×þ²#À‘.X²Mµúîyr©/A}œn·u@«î”Nâ×çHGQ Ê‘Y¸÷UnOLÐfsPô@º™Î³–:bS{x½Aãýzfv(/Ás1Þ³=é¹* 4{j{ÿAØ|W;ûižj=åq¬l/ ¯K{MÕ·ßÍ5=†vŸ<¥¶¬£q‚ó9™®S£óêÖ*'dL¨ð“güiÄ©B§€È•\àó3¥Gô¸…(—Òý¨ü Z/ž²JÜÜÊn]çþØð䥦Ï:ײî"ð³ .åV—è Ü]yS)i±} }«~ú·³Œr÷IíR"o%χ²äõpÜ^Q 0ß¼£nÑqݾý¢YuJpî"—œHmõý#xó9YYÏÔ·‰‚~Dh·i¿ãð€÷f‡6ÞèÚcEV©tÓÙèÒÄ¢ó XëÚ*Ù[P<ÅVÈ;©®’I6 w6›NµK¯ %dk?J0m“—x¤ð,ÛF”Á$Ò7õXMtH±µÿ“½¿íÙnÉ®³àïëWl>D"vת·U…bUÕª€!²ÃKø`â,ÙqÔI,^Äç8êî´Çm°Á‘l÷ž¤÷Þ÷}]ç¹VÕœcÎ9æóA_çÔÈv ˆ5ÆÐ‰ó>+”îY’LºÆ©Ç@òhgª°‚‘)räŠ7v²Ç¥¹¥Þ™Re€XÒ2bߪÖZÁ½Š9v£«.A½KòógGd_Š]d̓|8ª ´%iJ öÉ-hü,Rr¶­æ8$Ã=qaú½îÈSmÍ•–¢ÝÌ>ùu Ûž¼¾¾QúÀÁ¹+Û,ÀS×ÙÍE“ž,«É%ïj¹Fùý9ìRiëØðFþ%ùxÛYžúÝ»î~iD0±Æl—À Iì×®ïsoŸZÖÅ"ë¤îs=‹ÿw¾’s/ÊÅc¡Ÿd>ˆ{´@7¢‡Û,ÞùâÎ-•JUP&w_‰à@ñÖôË )V+›•ý¬JH/\•¤,¨É­áò„\Þ¼ôI"é85”7ÈLŸü‚ãO³¤î½Ë-ÖG š¯–ŒÍœÊE1ÜA­ûU6î+â\–ƒ Þ„z¸.IïüÄÈiɇïœL^&Ÿý¢ä=7•i•m|5Ê’,²#O%çI÷914}_—âZº—E!lÇÓI"x†Î¤)ª–äÚ4É_‘»RŒ YÀÊÐMªÄÕ$4_ÙAC’â@s%ˆ@¨»•u¶õ(ŽdªNGJ‚=:tqŠ—û”9^áÌ´CÖsÓi@*ñz—ïgIÊÿqë’¬¨dZZ…só?xkᦫžôÙÇ ÿÈÇ$ºï¢ƒËY5ü‰n¼R QQµ¢ŠˆY ¯XéÚäÈugšo©ÜS¹µF êýëIngÚ*?D’ÑwZ ”vÁ¥Ý? Ì‘Ï.*³* C£´ 3§u¸› fúæ­úŠm>8§º œÊ-ØÿÜǰk먓$ã‚4aÌ žL7Mt »›b~ã`,ù"êÒ—f:NáŸÌ5Óε³ .8™ú—Se¬¶Â¥˜ZãZdU¦Ô‡v‚^°8Bò É[)!¥É„¨‘½îÞ=ô‹ûT³"šußàE©Ñ["}5(2‡v‘éz†³}½ê1/!uú[n½î”có!õvÔ\Ä´ý8iÆÜ²"蟄Še ×u©n³ø(MйmÄê_ÖîàÑ…BÛ¦ Ñp&CKÑ ±s^[P£Š2œ–]"¥Sû«HBi§KÖ?A|ÂHSÜ{ ÊôY‡Ùz}7ítR•=b"ÇÎñ&GuÖ 7Ǭ+¨mj[·(ÏWŽîPTMH3<.ÖÍAÇÜö­ÔÌÜ+*(àØ'³fOóæìÙ‹‚¨¨ÇXaäz¡õVny‡—Ç6Û•“®zWVÔA{òO¿Bä§neiiÚ“(à©¶ÃËÍŽ2æ6o_vKñýì‘hFe¸Ë<””Tœà£k«î ‚W¢B{½QgE½æv«rÕå ÎcÏ2åÛÔøÀ:Q±"d êý"Ò”B¶qX yÁôuðûªª‹Jù(¾ûZU ’†VÉm:‚² §2y <¨•ŽÊ\ŸÒè&=Ê[kWz¸–+·xžóY‰-\a2'No'q‡j.mPê%U¬…œS÷rŠzÀçö:­˜6 •ŠÐ€0Ï(Ÿ.±Ù²Ø:¦~Gƒœ'ö’¾/~©qpfGÑ=``©€û¬~”û~÷ÇãÝÏeK{9W!\€¸¯¡š §ƒ„3¶þodÄ`R_Üþ¨ã8½Ï4÷ÛYhÌ[þn0µsÒs(©ƒÍÖÇ$i"bƒÇ} ÍŸ]Äü ÑsBëäÛÙÕ q¨«XSµ€ï|•ãk?]R) ª~Cõikg4 {×˸»n­ß›;SêBL²Ó•®iß÷ûµ”W•$¦çpðS€º”ˆFE[õÝ• >¾<|O¾Gäˆé¸_ jJÏ Â&«ÞêW_@Ålùè=(Ïä\kK!ô9,Ívodiï¡yÉqÇ[l0çÏ`…?ù>ð&棇×éN.íζÜÞ!i”ªÁÁgSCºµqæRJ·‰¾.(a#®ÜÕÖ.ϲ¿97Qc<­]‚â{C™µ–²ž’Äã¦('Ç ¨§ÜÉHR§ÁöRÙ[w} Gz"ßS+Þ"h}9ú8‹&„ФƸErÅd÷ßø±Á>Ÿü;u ‡Àw¸vâYêUkO­OFäð,åü%­# ¯ Ïë®–=Uu™‰Ä²Tžêv¨‡kqÃqù"ó•ë~k5µ‡¼üñ¯å‚JÍr—GïçQÉt^…$Ïà¹Z(ìÛñÚ¦›¨6³åʸ§FÅ;n0ˆ-3’õ].·ÅT"piîX´:;jÃq©c­Jó8l!.µÅƒÒ·Ê×ñåYIÈUê}V’HCIçmΦ€ˆVÖÇûèØH.ØÄ‰pŒZÔ/ùÉò/S>êÇãø&ÊJ’²²È[ÇVxÙöæŒMW tl郢Páëî„kÉdö¶ê¾dý­Ÿ! ¨Ê=@~ÉŠçË­”8ÏÊ êTMüM©Î#¸Q~—ý–¢˜ÕUW…?' ðœ‚õ·Î Ä3!ßA>–n²o¢°ˆd5å]ï7Þí>«éËÑê+Å¥kvÆùé õ{ÊÉá ö¾~†#8 8ÖƒŠ¸ÆÅvD¤èæ*×ók–¬Ð+Ýœ¢íTÚÔÑM•dc­ôÐ8hZlŠ™ w#%ZAqu q]ù%'’ÿ¸.”Äx°ÙØõ½åZrÓ-´4–Š€µ2oRÊ·,qyäBÕ’«²ïÇË#ä!ŽÊ†jä¶åHPä€Ç^7ýŽß1%Nýw¢<©=Üü•àËùˆËB^V/|©„¥ *­Ó*›äϼLPbˆF)² ª¡»´‚þM“N`&ø°éþàÀ‡ª’ƒ¨öçJúÀÝÏœ“*º§ërj[ gÅ\ ~žÊpµÔî\Ò&CÏV‚VÚíÒ«P0ˆ<ïnq’œ¼éh µ ªÍiŠ@ mD2$º½J“]À5·Å‰F_«‘‡xÊ¢¹=u¶Kåx©ð’ø ÛæØ­7)+ùqÓßzF/J?©ì-ׄ3I9¦ÛŒt¯Ž_Ý“9’ËŸ–7A“1ŸÑÖ,¾;s‹6—§Þ’€2mQ´”/»ò±a"ñhk.TGRÀÿŒ%ëÿ4 ƒ‘K)"Š39©@<’$HŽ:âpÎãá¥eí©¸.RÞ•ãmn­»/c$ê>üJxÕ$Yor È©å–S ^úäâ’1’«#¼ˆb•嘙ßX€&Ü&Š‚³í~Ÿ]¡½´¯ˆ§}I<ND0É$;°\ › e¸u¢w»UªRd+ ±¾ÊþzÌdgéúY;QÝ>~Ì8%¬ºìÑeŽ‘¬Ù×3+›: г“.þœ®¡C(á³ëG¸à’7ñjeJ éѯÎ-ϱM”jú¤K+vE·ìÞ7Ù‡½ô—3Ab Ôa;÷QJy¶[@âîÍ!ȼ=àÝî×#}²w­1Ž®¶Ì ž'xÏöÄJ»¨][8!+Yvï¢74é´®¿n•„õÚ\Õð½úäiWJ”ùÞTó9|IÏèÍ)ˆ@Ñ¥u@¸ìCꫪ¿#ˆZûE¾4‘ÚÕK×ÜÛ–ã7ª'×k;D|àÛPªèS£†¦wSEŽ«¿4:E/2êpa°$r×­)Zâ5¦UëØXË«O9>9… ûqXRªZ‹ý7)½‡ôzÌõÚî“þŽFQÂQ¡-#׈ç⇮}ÿ:Aùv_pRã©ö¨å³'À=xb= ôðSÔÖÓº«ùÉG¯;CuJ'" ê{áVè¢Hs+äU<ׯއ¤iQÚí) 4i×\^P y¦kǬëÞÊJÞÇéVfq‘í‡I x–­Ÿ³LøâÔ×Üf šUIº÷)kºv·ëä”Mbvî]mjçVˆOXkÿH““;hŸçºÚÖWÜsÖB/3»lå ŸÌ üwkN‰¢VêKóÿiZ%g¶HãJÓ[5ܤ÷¤õf}-}µ¤[ rãÒÄɤò·ùÏõæY‡³Ë¢<ˆôçÌõ!,G—w¨ƒn}“¬˜r¡¼Ê{ð†?ÆËЀˆ¨\©|õCÛz]‡&éï t"xÏœuÕUøƒ?Φ ¾í~e^“ôB‚²áAÁz»SŸNy@(®NC“¯l ¢HgqÄúYFõnûHùû솻"k'n[ïõt•v‡zŽ¥òÍ«5÷,ºÊîfqÒŒþ"6îŃȊˉ۫iägk›8—O4´ES­¾y•DjI õ¢•Õ ÇABZ¹‰GÓœ¤^ˆãšQó¹yÎÙ5È䟗nu?×âX’ÖÈáŽ;È”/|ÓVI–:xH¼g`¤Å¤µåc#FÉv >kV¿-.†>² Ž•t ·ªÚS3 ò$n8`6),´ma­äR¾¾…| ðãÅ}835ͬ㑈þx®Ä*žºª:DE9n)£Š€–FrÐCÔ|m; .dƒ.¸Ù¯ª™D()<ãšÜƒ%ƒîÁ«P6ƒç¸HZ»—ïâÏ¿Šÿ(=ª_Æ TKR/°´U½" }Û€ÝîuêIn}/O“s•”µÙ¡ðâ'‚h&Òo|”)«â8(ºÎ9 ¾r•×V® Fp™ÔåYµ‘Ð –"å Õàìê¶Þä'­K¾sÇxóä–ÎÅŸ]\8÷OÇ÷)%p¹)Ý8ÓNàHJ*Æ›ñ7´÷5·¸£|Œ‹£bæ•öH$x8x¾²±Uê&ÎF^!l°Šøª²/×à_þog]îUð÷שÆ9`Ì«sȘj©G DvͬH’êƒõ%?Ë*hÔ+jBöà:¹›_Mª†J¼JPèq` Q)ìOù™½´  ž=Ç{ðzn·©T”?jZ±Xº39*n±qhñQS¼õ²ÓsAîÆ2 f¾ãÃo·Þ¯9‡âJc7é¹ùÍyÓ.ë°%õyÀ…ÊuQ’ÅM]á–Ðw\•´1Rx9–±‹ ¸¶cY‰ºK†úÏK#µ¡{à€(øðÊoò9{U$a:Ýs ‚7_©ˆù ŸÝÛ¼ÜvçvÚ1íä4‘E…+4/gd+å?õÖD÷ijغºtÐ&g\çï°ÁýŽòÍuE@Úß+˜m”òêRiÁüÜ2M[ƒ Ôuiv¾¤ º†M¡ðÞ@>°œ:Éœ)©*+ÄeƒRJu}Áå(¾¥/±¾Ÿó‡|Và¥4ç{›\Aý\ãêIw"ex€ @û»ÖÙg ª¶d¢[ç¹$%Ð)°ñÑàŒ`Ú_Š+â_QvÅŽ’KDùZö<‰.òã q„#µÝ¹ÎЀöŸëišhÈi^ò€©HŸ#;y!*BÖ¤sÞ©Û€\ÇÙ¤%ËÎêÉl]zµÝg…b}Ü.Þ\ÑHÏÎhÐ>¼Z”[FݨL^Z]ÇÞhíd9«™”@¢ŒÒ&—É= òêj§@Lõ²ÖS6Õ¯ú¾o͇DÅ‹Ÿ%šëŠÚ8]¯mÌN5\”û§Þn „ð¤*ð¡ùÊ=rw»…ê§‘0³«FBi=µ&4ç_ËåÊfå4UK–ýíÓ±ëÔñÍSîÕV͆× Éñ@¸$Héå_pëÏj L˜Ày¼Íõ‰"{º©K¿¨_qØ$íT¢ÎÇéФw¹O5TeùlC2¯ŠP6ЖÇåߥ ˆððµÔœM1›nóì«óLÐbá9,ˆ»¨¨M:?€ÛÑ Ún!-$Ä –øXK1„W¢ µ„2zv«À•ÞηÜú ]:Eg.å %&@ÿi{uïy¶èA#6°!Ñ©NbµWúRnîÛ•o+‰E+ðµIÀn7U-ÀÂ듈cÅE" ¸«y¹G”m@Q%H|]¶çU]!âkŒcìiÔ±:L%¹öÚå¹±ÇЮfþÀ¦¸SüÆñxÈî=¯˜Ÿ~zúžžYÚ‘ÈQ¾%IîÓÏ¥Ø@漢i†„ü4Írõ›ôEÌ ¬’ú;[­Þbof_Ä/+qoÈÓ$sb9Í_¡Š2š8„å(Á®K¨Ãò[ïñ’Å.µ¢†¼iQPt“už:Þ’ë½ ¹„̘Î>ËGvv~G‰+O¹Hzþ:i4b}\’éòך¡ƒCÜ'"b$^Nú­S `°ºùCéêô¾X´vjêÉT…’Ÿä«mx|A³H[ý¯–ª0MHWñ0*@ž„ =‡ wVA·7@îV}Üš'»€ô‹å}2]Ž®aª›£ÀÒ•®¥MiœPž.?^+Àùå|ò1“Þy( Ðâ·ÛGÚ©»Ò"¯¸^©>˵¢àc-„Ÿà¹d2ÜB%i˜ª¢1¥Ð\6a®x•!®O9(ÞQEé6D '¥ùP˜h-/8õ5@õq¡œ˜>øª!¸‚W/‡N ?ûiûǶ@è<±~¶Ltl·G“ù¯Ã¶ÊKnIõM'úô‹ìØ[y.ÙW:‰csã¹Òo<ʃÕe{Y–äæLŒÖèRý«éyëbA¥y,¶@nÝr3Á"å=ã DóA=3:“9Á ÄŠKìü¢Žšà9d¹¹Ícn#Av¢æ4™ªÆúäúRÒ/ë´¥˜š ¸}ë`³Ä„T7M6ÍZgÉ2»Ió6%ÝÐTËÅmc-¶¶Ú7I~½êL)]½,'‹S¿ñN`iÞ üj"’{tU¸Þ¯œ Ç,é‰$@H$ Ê$"ÞÃ>ç+/ ´â6ƒÆÒ”?”<‡8pD(x˜³ñšU‘R>®@“ÎWm ñ5 @¡ßD#äú ·CÊ›|eôr1í&½É±ýãþHôçåãéøvVí¿+êë&Z*n÷EÉ“Zsªå£éÞ}Ô)„(-0áRÎ8?`œz‰-Žú…ÊÒT…¾H‡ÀÀÐy¯=z›„çŒ%¤¯£ÁªK'>·°÷VOE ‹çþÜÚm‹ö¯§ù“r2¹H3ßacHЧ$S¿ªì“Î!]ŽŽdöL-áhÌÑ\rk“GØçïdç2NûÒÞÀÃÝwtú:'Ë$I ·5p­Itz+\¨NÇK€T±ƒüJ®9ê´wSøh¹V#É…|(3$UC8ökÙŒPY£IИrÀ·†•¼,¥ƒÊ}·(5=ZÖqªíÖ>G‰‰ôôLEˆŠ$hgŸš§«îè¤Nwöm‰r 3·¡Y&‡LJr½™ Ô.õãJgˆOâ"a„W)4þa=®ÈokçÀßIÿ[åÎxöOÜtkÙY÷sÔ`U#`Íî»Æµ¬Ÿ°R_ËüOmu¯e¢ñ¤$£žÀ ¸Ð7 H ܈3k&¯ýd³&z:¼|<Àc9A0N$² Ó·îÌ*%uamßRûQAÆüòWÁÑïÜ×÷†CÃP°ppv-œA‘DlÔ&oäû):u•]’áþ†Fº¨ù‡‡ÒA¬[.úl|YæguË…â°ÿL$’új-’މR¡€7%O8æ#Ê{oÎæí«4%²è"ôIñ#M{AÈË.{þ®Üd0È ¹Ù=‰Ì1£Ž8g”õ=ÚÅЈµü;É*.›ª#H,)W´Göª–ûè½ê”Hµ®¬nùüÞ5²´ÌJÛ*ò^\*7îË)÷ãÄ›pO†n‘÷ŽÚ¨Z¿®UòwÛ©t}k‰*Ù!šL”6.]Öt -jˆ*ËÀÔ‚Ž¤ÊÝNÔˆqé‹8´ÖÔrìVò6@áÍÅúœ@ËjŽ-£jŽ29'[úÈK9òjÀñ¹ÒK<˜ü!§ÙG?äÖišâ(éRF£ºIÜÊ|øé¼ÿÎÓÑ u4eU:Qó*¾vµ9}t²Zº±ׯ[‚Õ«È_‰?o«óÖvívazX©ç«‰ÓW£Ê9‘²ÀE7ÙILÙº­º?'ÝmþXí³RãŽ\ö•^Í<:BæqÚæ»œ>»uÿ2 ?¢ëË]¿×¡+¡s_ ;8ZyÕm4?\ðæî·ÅÿëèÝõ×ï½U;áßè½@Wª²Ëä$ûz«ªø„š|ØúÁøulÓdW.‹‹JðG ?±´ë¹Ì[IöÁŸeÑ#©4 ÕŠrW-†Ç%ð]ïr?€À}FŽÝ`eÌ>iÒ|D?©‹Lm*J&ÍUå «+¢¯RÁZYºÏÕ5tåCÛçÂQå–(ʗܲhˆƒ¢²»õæé€ˆ¿]û²` Ú§k©"óSQ p¸$kT·<~¬ 4‚y’µ×DFÔÔå±}Y³?ƒÞ]IÔK†yb˜_qÔ- úTä¦a0¶¬q9t×ÞõÓ‚N2-¹X'tò ø×Mt6‰ÌžôK~z§ÚÜæ+¨os%?(²¼$ÇQM[U¡éÌŽ·O+@¤éz¦š³ ¢a}$Jéíj3Þ…Úë1ÚHÜî²>ŽPÚ¡€_ø¦œô%Íf…ï¥,É´Õ% v7b`“ÄS¿ù(yÙðÜ]Ýr­7ßvö¡mÞð‰Ê­iy…|º´f›pH2(6boë8Ò¤ëGí©ŠHÒÑÕ\ø.êÎŒóbr³¯¤µ+zû‘àÝÇ£Òiñ²j94xY$…„uLÍ)ÿ]/UâSvÚø†ªŸÖíüw¢eQu?›8åÍ>AÚM4-g¿@ù/ñÝí[ÆÎ¤©!HDò¡>=ŸÀl_4ÿÖ™|Z¥®>µÌ,‡k]¨O?Ï  ɦ(v`{ذ°@|ú ÌÃÝ%3èª _Ò|Nù’†¸Ï tCH­6’g68ÿ圱»U.+ÜýªYÎHcS¹ö®¹¯Û£ÅD~ ØZ0põû”±\óÝå‡ðCUU^‘W²OQÒå¥Ð< Ó™2$õœìò°LMŠ2—aÍqÚÜñõ©êÆ¡àš]C=s0°<Îå„o&±¯«K£KYAY™]X±$‹Îô\,g9ðÕR]1Seëÿ'3EƒK·:Àd†¬B†ºKå> v|¦zOÂËi,˜‚ØÇ‰ö¢R Ê.”DØëgWÖ–.— ¨˜ÒG;% ¨/”q¯ó6]Mä€hØ¢²‘¥’b¢ ÚLÜZ0µ·‹âŠ/]¶‚)>9>òÊo “MàDNÏ3*ãUï^{Ö¯'ýHv>ë$é¢\ ªÏ1¥ñ7eõÚÜIŒ?± `û§5瀮õòXW?¶;†Ç rHÍÖRÓÔ5ø<æ¡ü:…È”Ÿ¤ä󼉯OëÕBž|Û5°Ï.|x³§í~9N¯Áa($õJ ¨çÔKä¿ÐãpïݵaP_¡‡þµ±D_\LõýÖTIö‹Ë°.…¼ @~»Ý:—~B&²ºhSnJ®ÚGpT©ºø ~eâo=,B~|³¼€¿A‚ïž4"ó¦¸Û&)ê¤OGlúŒGU†ÈMáõîb ð¾xkC}-‚|&Çk«µ³[_îódw„t4—pÏ}᫽“Ëñ)ïx]á–³ÞÝ{n7@æ4Dë8¢+~¯3Õ„q·µø’O °ù’Î(ô¸È†œ@,ñ,h+&¿‹*yGih+ùj:l(rˆ/îZ¯™1 „°úA¯*ÚÜ’E“Öœö²r·“I‰ÑÇw«Þz©éÇå¡^¥˜rƒ€$f׸²(D§¾õ”…dÏáD£w~8q°A ~)x (0äA¹"VáaU85{”‡ èrR,’jö^€¸*ë ßûhij P¹Ýö[¦ª±ƒ•ˆÄšÎkz,¿ôhg@F.ØôZ–Š*Qk«*ÿ÷{œ°­¢hahÎ~%çf1ù9Y‡=öš"ÔÖ“v¼sûnm„A…ýQ6P’³³¦ Ü6^qtöi’n.ךÇÞ`bÙH‰dANæ.IjS ×S‚j¡”–Ï'W´(Ž왢;]ZE¸kïnxm¸äQΓ.3!v9–« 3‡!*ÆY¶¿º¡¹ijTh²!R>Ú˺Qö“â´&ŽçpoúQx§0´Uœ E½\µJ‹pT%*Pr¸X–JüÆæó7?àß±:ý?ñóñ/ÿøZHþ¶§ÿø¿x~é)ÿåϳ<=áo¥á)ßìï†Ý©oöWf§þÃ_ÖêT͹ò7ÏêÔ¯úgŒN+>¿t:%üåœNûß,£SO÷_dsÊÿ÷brú[wþíÿ:œNÿÿw6ýò,müÿþOÿ‰ÿúOþÔ¥3üô³ÿá×8xúe~öû¿ÞÂóÏxvþÛ&œŸýѯ÷ìüÿbÒùg\9ùQÿÇ_›+§fð.´F—›õ‚ùܧ¤:ëA˜ wçÈo²›¥Uæ̶³Ó7Ž~ý¶?Sš«LU—.;(ý²É ÌÔVÏ‚XÆ/Yº½¶ttIͧØ)b*KÅK9úi½y× @ß XN->§$×S|Ú>ŒÑ®þlÔ9ˆZñ]Õåñ'>Zì¹…8²¬9j…ªÖie¬|ëèå eǽÒÊãË]=Û3ˆÑ…Ÿ{]Y^5øsÚJ•ÃDÝðªÎ©pïNB\ Q‰c«’¢\T“™*ed5HÉçÃS͘K؉QfëTÝ•qïñ£Öz¨ J=<6ʛ’‡Xæ¤6ߦ)Ùíkû±ƒ’u<.±ºGMÓïe)è7µU\Nœ¾8f-RÛÔ’’e®4Ç#…áv÷0|<=TŽœ­ eÅ´¨á·HTâJJ¼A*ê¬JÞiMçîÚU{ëåKSÄkS ä¡+'QU¥jj÷³ñ ‡¡kTÙ¨ÿ\5ë'È¡—n{h-úè`Xæ¾ÀÛÓ%pK¥ôµPµ?¬ Ùý¨âÝœ¥GöD/…uTÚj\qdÝØÅZƒ'”´-‹òI!]e e›fÇèI’££ù-Y€C¨®T§ÑnOÝ‚±)³ïžÖäSQoOÇã³§f9GùÑÝÒ}ßl—ôâ?¿M–/Q‡"F£[+JÁn~Nm;BYœ\N e$Õ(?‰·S®Ïª¸¤ÊÇæq‡ýÅOÛ"*¹`Ÿò~9IDÀ:¥ZýYï-æ‘T®ç°Gr•Ö²Z©QIÎGû…:Ÿ{ü¿Ãë¦ìˆ'¾¥êÇ5ޯϋ’«MÕ^,'Ÿ0íŸ~é(}ßñ& 8ÂæÚ*&ÀËhªj•ãÅ“5âm¡Cv¥ýÍO¾Hä–÷ð•×½CÅËçò€SPÅr+6›»JÝÞÞ(8¯·}E Uj»Ô©y)õ—’ÒT·ôÉ€eKCloÙÈSØ«QШóÚ>ݺ²é½gŨVñýs±¿uíÚwM»ã¯Šþ>ÀVK£:}.¥¡)­Ý°©9nj·9_nçkèöæù•¦^ª qÓeí‡*ôy.ªm7óøÂ‹B¹ç#6`oMÏÜRôMÔÃü ç n=å %»çœ„çzŠRgx¬ã‹\ºÕÏNêw–šGÒE9Ú.YÝÝ1o¹¥Å¹Š”ÌÇ8³?ß Ð p걤‘ýÕÌeðÓfMßjÄÔ^Jw•Õo'ZÙБ3ñ ¡Êºâúj,“ÚÑZ’ìPÝP®8Oìjßëtª;8wÔÔî(‰ƒÃÆ“žI5yÅsݨDÑ÷>Gè•®6´A¼ê$Ö3€HŽ4#ø‘m$Bðýºé ~l­­7|,S ƒWvåWÕ‰ªîR¹Àu! rd9ìûk•'0ºj_}8¹\ýxm jŽÑÑ´©Uø!úÓŒWi^ÈOZ9*£NähñYêdÖªQ¡¡ToÎä Zr†“Û `ÞX%I÷¾ecÚm/üÃÖHûŽ™sñÈ“+WVìú=î8€·øO·;MŽà÷§ºÊÁ7)†w³zTÌu*·Êï¾~ËâŸ1Y$æJqb³´aQ]µ}ò^•ÔáÉ­VI±ÊÚãlv›¸%Ž{fÌ–íš)Ý.÷cDâÏå‚þ:[:ÇV48Rè¶Ÿ©xÕ}©×Ïy‹©óQ0uÙ?•‚6Q™7ͽR–hÃ%¹dm¶sp­ÈóØ%=Ú1Î%¨mz¸õVOêôº_ ½â9óèöÁæÜñ¹t ‚9%SÆK…µ¨³ªö5[¹ƒ‘®Ü¢*'Æe jšÏ‚ŸûºSþ8—øÉÇ•VhûÓg×)¾°"GÙéëgß6¸Gúù·î&›$D6š®ô<ˆIŠå?’-¸7Dìõ õþ¡˜SÑØJq­€{X®¾R¨ê“€G7†q@¼²\4”Œ¥ú©‘+d —NÜ}¹š‹»?/’Ž'm”¬LOpÛ•ÐÊÔé¬ó.š8áQ²úÌc²›fè'KZ*`Hë“|ë: ˆDÔHTÔ§ÝáÞ¼ç– ¯I[n²Ìóå‡+‘¯öѳ Xjɶtxd² I§·àxòŠ5U ðC»æ¹¼Ë \m¿éÕŒ¥ØÈÙxýz~«^ÀÕG³mõò]Pó¢Öo­Z)È7éÚE<Žk?5·ŸKçj90H—#¨™¢‚h —‡j̓Ä.JvìüèW¢(0ÉG{Æ9@~gïô9H1kŒÓHWÔÅ¡£ÉÂï­8“7ûñ°´ƒ Ša…¥o§îFÉY 1‹0]‰&/$G Ÿš_*De4*±â›ì¨ÈÔ P.fð‰Ž>ekèâ’@½«Öu;­Ï§4-—\-ç6tþç77Q–c>£ÆzŒK‰î—·O%þlW—â‚bÿ4—ri]~´òK©”³©jRª¥ͳK3Ž¡xCÓ™›³›ƒ‘¦Û§ª¸b0Nf$r¿öÛe5rAŸDZRÛMÌÙ€XòuÈ=-šCŽÚÚ Ÿ»:ãÏXß!›ËCÓ°g} H_[{džûÝœ:µÖœ:£y‡øµ]HÒn’aÿ¸:l¡kš 2 ޻֝µMLü[w‚åô~5 #:¥Tökš"o%¾_ T%Û^FHÏš–ÛˆcááïQ;ÇÖÕÞê¾›;™‘(ÁéàëýnYfÓ™Àv—ül“ËÞºº½ •Œ›?Ü´(Au'Ò±¹Þü;þ ”D2rt8dêªá}†å¤¨Wv'гÅY½‡Â]Õ•ª¿ui?DšŒâS)°·BPð±uklÏq­Šj ð`Hùæ,ÂM »+„“Ü»®Œ]€ç˜_€î¨Á„sÊ^ŽŠìE¥ò_ÖY¯ÓPòH)Ï_Ôkõiÿ¬r4'ø!±ë«ùƒÚ¨¯5Ïlk¹À›¨BÝ%ÛñjÓ঩ÒÉ¿”uOýNX$}â‹JÌÑN„¼±ãHvk)r¼’wçx(Ó«Žé¹©Çd¥?µ´=î’‹+‹=‰Ó74®vG¢x¬.´Œú¥È¿kéKE} ¾ð(§q†qÒl-Öùýrþ/°º[Z}®E› 2ªZu\ £ÜæERþð»d^nÒ|o Gê©7\½QŒ®uW³¢«/ÚÿÙù <„P'@µ¦çíRÑoÞœì£MÊû™jÞVÊ$mîÒj2~/²Á3økñì³ç[7Î&>é>8µ§Imò—²6²º"Ì> JKZ›Þv€\¯®«òÏ{%Xj‰`€kT®ykÌÍmzäFkf+7xw1Ù^ƒ@—ŸF‘­üF‰yñáò¾*Ñçèò’o‚¶ ,­£Ú-“CMUMU.n6iƒÙïQ $iÌ~‘—U,Ww±º™á¤QY ÎÇï¬Lª@EêSS'¦ªS!Lÿœæ¿ý¢ +6‘²ÄW êoéë4š˜•‰Ôþ ¸W_'öj·Iþ¤\Nd&·ŒŒb\3°먼I´¢&wI‡ žkqÈ.*é[5 í´rç’^Ÿê×….6%䨻 †Tî C¥{ÛÈÑmÝí¸¤ªg–TG‘³.yP  øpq¸í` 6Q$¤]€¢ƒ¦±[.½÷K XP¶™ÓTÏö­7uNù}¸î“SBÜ­3¥$%.A|Šsë~ ^º$`ë46#E _A “!Ðw4¯éÞ£sQöÖ+-¡p4e!è@~9ÊŒ@ óއ«žóê2©bk¥$=<ÈQ­3ˆµr°úê²@~X—uMŒ¾²¥sêR”õséáì¯/wУb誜>È6V(u›ÌÒVe|É%¹ûÖÒË=B,âK•¡ò–F§‡Géöàq¿U€¬s\vÌ’M ­–eÇ:j¤¯ž¦ÃD#H/ºWN½ŒP*ý¦¡‘Û‹¦³`£9¸#ëÛóqãD- ²Hƒ‚Xß]Ñ!µž{Ͻºª“zÖh˜3ËAúTÎVqose5O¶-–+Êßñ õ*KzåNÖt¯ c–…åâS—¤ÝÉ‘ÈâuPÝòu«O>•DXj— Aå« Áùˆ¶©Ê3]&°ÿK.—êîüÃSä)î€f©,í4‹¹-T³®ÔL…¤ÀË wqßY]}B)ÁžX(ÿ1©*H%NÜHOÙeØüɃ;FÈÒfÉ˯ÞïEÕ Vѳ­ûìýH‘¬ Œ}ÓÚcüHeïgý4 Ÿ±K;">—k(fœÁ¤d\Õ´ n8—JñùŽ´/ùD Wž©µÀHÅþlIòK¯½Ïæme³¬|*Sj¹§ñÔ´50É!«„7=½;õôõÖ¨k™¾ÀeUî{ä‡|eï7 §¬3îÌkû9ê a¿ãR êá󀆫 ”ÝJ…pLÊS‡v­öž’ÜwBwK.è“:j½Ò"¶l6£XŸ+<Ó .Ò•ò•˜…^Õ]O§„|Þ÷*®†sŒ(Æ)ýÈ#­ØîvÝO;è6Q *©²µ{§àÒ)ow— ’ta~£²Ô܇´|ƒ‰´K›åÍ©‚©{Ÿdrkß Ž vÞW 6 I8åÀbÁV IZø: Æß¾ýÂÇ­ºep£‰7®uôK '¼Õˆl2n×c Bý¡wk8Z?\*^ÑX€;€ZžA(îùp™…ÉV;€ÛHp×$»†®Q¶Æ¤úªÊôØÉïvêeßÑîqIÐ[°‹HQ–ÁT¨¶ ¥nÕ ÀåÃ5Õ¨ØkÔÅ“ë)RH…Õw;\%함'8H9·cdh+Ç@íò ¶²YKá××íEiò<´ª>ø§wQæÈ}¯Ê–D~²ƒ^ù2αTZd¡Gª„âšy+à±U2U‡T:óþa²@ ÔcÜ/SíSs#rƒ¸©àß«Û5n _^B*l,ëlÝ멤¹–ƒWZxÔ K/It/]å¯ “[ÿ7ŠSw¹&éÒñØsD^ÐÛÚyÊû9ÎÜ6¼@!uVy°¡œX×G•ÚL‹r9»\Y€œï‡€VÜ"n"ûëêóŸ•ø¢HŽ’¡jÐçxNÈu$³A`¤X&Ô]7žÚw¨¾ü_ÝeÂdÎP ‘ÿ[ ©Q€^¦Êj×µùH"žûp9iPÔ’FA)î rÏ(áú«Ò€¾ÆDem¤¶«†äuwˆÝ†jôJ7»oÈwÌ×l$íÏí£ãæG tQS•n“TDÿ¨ùøZÆéDzlnº³ÅÁó2jcËEHú€$„ ”}¯ÐpûWmSÝÝ î¹å£UGÃÏb8^\t²ªn%¼²öïZ-‘ÙÍ›K©øÏ¢ã¹—ñžã>õXïZÛQ[“¦¢ÄÊ(Š ‹ã.€æ @)r´<¦Ô¯&Áéæs \t#Oéx;i6½x%ýp”M[ Î÷Öú¢TàИ8lqåAò×5£QH$[g+ƒ—_…ÆÚŇçEºõçÎI°p´(œäSL• n#ÎS}ùU¯“÷0á–3²K“cõ‘í\€óT@L¯²÷=î²1£‚†w&r8‹O¼¯iüºŽ’ÚËaqü¶˜ 0u®‘#òØ>0¤×ƒ»¨‡›êÀŽ HuY‚2× þöR‰>Üä¡-­3 Û6AÍ o·$'ñ (îÔK6ˆ=`Žv[a³¬½›Ž?–‹ŠëPPw4çXÅGÑœ‹á‡æ"ÚÚYþ´;œ-¯¢ 0Eu‰ˆªF•UÏ£ËlVA¡t*T—ëOTÚÚ†Um¿qã1 lnÝrBíC µ”ó]4iûô» ß½©Žr)»Ü2IÇK4^R/à±?×–4éÝÀ“Ñê(>×+Ýc)ÃV¿îÈ€¦lGÝ›e£ªV¤ÿ®g×”{”{µðœÚ«ŸDª¦ 3õe*"éCUdaƒXxß~¥uŸ¡–iž@BQdO=…l8Ï‹¤¸Œ ÓívY¯Qu!þRÏÕBìIz_¾´{Ûg­e©­–"fÕɉ•Vó s>—²r£9»±kû«7§Ÿ¥#¥ï:VÂ!hdô~| íñ¶~\͇ÌysÚsLWøŸR™·º*©¹]üù,šþ&”iúY +ÃÄŸ]¼!nâ'(Þ•;è Ö–cÈ„ãçrG5´C¨9|à°¿„Ùê.í´³¯4݈48“!±ºó²-–î+j¥…û½ŽŸÉ)ÒièžøSº9°¨á5Å¡vTYæè|ê(¯K‰oB ›´U¼©iΫÛÕkx‚xð>JE{=¬£ð~Pù}\Þ~Âõs?¶Úo®«ëúÚÖ\9øùèïX¿åýN†ÎÔûW9«÷Ùéȶð7•¹ã®}—«€OÑ1ë‘0Ë›$ëiÇô~j¶]Λü_ µ²ð _Åó]¬nU7…·²v€Ì§=Í¥Æ]Ï8ãÅ[G ~µ–?x0ÅÐ}à%—OñwóÛuÿ=8Lƒ A–Ê“–û¸T8UpÕôäáynÇRÀ͸mCóª4y²ÈxÝ_Ww5TA%ªr77Œ*3 +nr»cxð,ÖÙ|Ђ¶P”µí€Õ9Žý{^š!ð†T/îB5…·ÕœÊWåU`ÿ–OÏâAC×¾ñŒk ƒÂ={É\w·ÇJáæªÙQ))‘ú>Åç¸þÕn»Ö%›æê!X£8ÐÍé¶›)E; " ¾J+•~+aÒˆXê_/÷ü9•äN¤þ$Køº¢*í·b¸«ªêEõ«‚&¡êÍ•µŠvï@ï¢YHÆ—%{×¹ `ê8JÁÝâÝy:6õõ˜vc&ŒGj—É`:$Íx ð°ÀceÛ±òÛKÙZ*Ÿ®4÷Ì]yð pª@ÁiÑN›/_nªëN©?ª?yh÷rf¥PYTXÎ#Jž®×K{U‚sö›‰Ÿºçiô­Fú6ê®HÅOIÀõÐÒ‚ÛÅåL2Ñ ÄAáwJêKmd2ŒcAI;E|œÚ¿I&·­Ïm ¸iÎOÚÇUhKmx.{)Á£Ò««™Iepec5…O=>Èc¾š 鹪Æ/µóÝ4fvlQÜ?uxôi$//¥9 0d¨múdj(n¸‹ä['%¯v*‚ÅMåi~?×qùB?¢· Û”VzIãL.¿O H@xå¾ðíÚ ê… Â•Û@Jýr·¸¡ª¾ÖÃÀšQoŒ”…©RÝ]¸0ß‹£>¬€Z¾Œ+‡\»‡ð¥ Fá•“UÜÿç‚xWr ø©!SAƒPújZ9XÎvJõ¨æÒW—¯ùK«¦êÝ+N3„| â ¡l^šR™³êñ½Ò$kùDʾvAˆ AÜ¢‰»’ÞÊ-©xÂå¥èœjŠÝîŠôFeUj_G|7ÙSÊrj‹ñYù§ŽãwÓ"AµS¸ô]ÜÙ ªQäh… )W=+»¤Ð#‘ʽ*„¢Ä•rk"‹ïš\«æú·–SòíÞÁ÷æÜ¾ÑéBRÑtÙ Y`7JW.Â,PUék¹“œï¯Ûî±±ê­ ©k(º)`¹¥îv›[ùÚ ûü£„ìasbx=É\å&»4AØ"ZµÈmì½wT:8)¥'àš0;ù!¿õj@ÃGc'gPüî½nóU ë§ãÌ7”Ëmý‡qeéE¤)@ŸYñ²èëªjK¼ºñ*[á#—jnþ.7ÇÎ\¨D’%ã¨~ñœ9g–ÈZaó5©ÑÞ¨WLm¥a1•Éê\¬Ç.µ:÷c>NlÊ¥ˆi”¾¦Sðz]‡Ë„uím5±¢NAþüT¦Ð•d7÷¼õb»ô®É_ Âê»…ï­«)XçL=›Ýˆ®£ç˜Â±©u9ñ"Å ¼¡URZŒ'Á›Ô*lLÕ¥b¡«j€”Ü]à³Dñ­œ)«ü÷eúëÔ&’x_½Ã»\NV¢úÜ”_ÝSþ‰õÃ{Lj°éáû½•Óèör¥>¦~» í(Ÿ³"Úý`TRîT©ÑÄ šShð9å»ÈXf+…³^¥Àå_‘_´ˆæWF…y’·Nõõ¢ãàGŽû¥(°Ï=‹®Ð‚'æ«<eC¹á¼Ao*„xp«ê¬§å÷^ãhÞ×¹‡í\óU¼A#v.t§ŠP/AÛ;€A É%\B&å¶rÙ>éJË‘,zc& òÉÒÂ(è t®›Z#û‚W½öçìT[Ü,Ÿãzä­”‹Ú8sx—’®½¯† ù‡ÏM\Ü<ŽOoBœÜ Á+ÇÎfˆ…WŠº YŒR ÛB< kY"•)§æYã>»™šKáË&vêÅÒ´tŒýJ»)ü@m›?g®ÎЋšJHp¿S0•Ï ³)$é`Œ7Ht)ÒžoMÌÜÿ•íyéB¦˜ùs’±Ac“â‘Ü£]“Š%6hŸ ÏJ ݈&‘¿Ä±#…+hÛ~nm®TIN(¸ài˜G³¤ö7Ë‚æ¥ù*ü*ê?•…yl×1ÇPokhìâ‡K”— óÕŠ.®r²Õÿ! ç&rB[–êù ‡kk‚Æ£-J§}(I$¢Ä4ý³F,Òhƒ¬x¢µ¦ID‘rQØcÕ #™ß9qã°(í6Èññö˜ˆ8>úTÌ+!’—LékS„o¨àýÞ–8ä"uÿ´Ûìñ‡=c{QmZÞ¶Ž»_WVS’°ÌßþCä@)\2ºýdrµ•”QãSÁßôY©˜Á¨áíû»…Ò×]eY7ûhQUMà¯Îú 3Xa†L¼3FÞ8§‰üeešB¼:ÑL%ÎêÓeäƒñÔTýŽþy@U¯ѹrºgVT?ÉÆ¥^ȼS½ ƒ›˜ç¸¤)˜Ë‰s¥a)"Ø÷àJëå7Ý|O‚I›oÁý€._›Èd–W 2lQ/Iý -V›“¯³1âƒ#C}5Îøã’aCÑ›µ‘zd]7égÙŠËK÷ÊÒutJ²MåUdÍ˽ÀXEÝÈ8µy“¢y¦–TÞ…Ô–Ã…xaO<)¢Åÿ¼®ÓeŒq«“.ˆyPÌó÷RQó=ÝzÆoá)ùÿUÛ<D.¿¾ÈQDÕœú’e¶2€gJf¤*ªn›ÇÕBPe÷TÚs'¶"(@x ŠÔ•KËž'gPjöëàÔ\ùèýì¨ÆéÙþÒ«MjÃ2¤ñÊ•·UÆÄt’ݹY„ Z£fWüô¤dÄÔÖð¯béë]ŠÝ]¼û¤¤,W † ÜõôŸkê!vySíhÄ«ë&Ûár…(9°ø$¥ìð]Y`=5 '1ÿå.+É$]¦Kë¯6´£½  ¢gô·Žr$Ï^A6•^[\‰ìîVÐ{šbŠš8IR•¨×.Ø$K/}(|Ó­pˆªŽl“×A4S%Eñzñ³}!$ú>pu‡ƒ C—)¯¾ÚlCŒà* UCV*7ê·Y”îš.±<ºí²š<îCž¹AÔ jC5Ò‹®¨…Cô†Ù'9J7Él ¡möèY ÷R$7Sy%£ü16WW3´~Ü=æO8o‰G+s”pÝ63Ðs^N.Hl€éâfÆ~eQìTÅàtË4+Žo齎š˜œtPXYªNîkU ûˆ}ÉG«}ÜÊ[½âÜÐädˆEºž*Ó(V}Ù•¤°}¤ \”HÌ  ¦~‰»)À³ðrêxžì­ƒÝ¤|ï:2Õïì•CÚeÍ%=¡)#ìHšb«ž·ß-Ñ_Ý7Ï,éJÙ¹áA!¿ÏMŸÇe3“ÈϽ¤… §'•ºáv⨮¼2¹Q­ü¤§ 5^JñÞøW:Fß;“0EMæ2÷Žh¶IÚWë þ®5$yïR·Iy¸*…³Ñ¦G—â‰úeRãÃã³;h¾‹o›ÊU×—Â’›bºƒ}[QGéW`&kDù[²fUÇ]m ƒS¯D„æQïM=5H°–žZ›Þ埓=™¾cY›¢•½‚¬dóÉûúÍ‘RªH‘}`&U÷9FØF-Ò¹ÀðÓƒË&ià9V“ð÷ rÁô±ÕØ…¬£óï  1aª¡H0©½jÌåÖóQҢ˟3. î%iþq4á{·ìƒ6i»‡ÎñÏÑJºy$\ p¬ôôÛ;‚݇Þ,„®ûŠú”“ìC‚8 €²ïÕЙ0éêγ­˜n ØCNþ€HàIõÿ^õ›;&‰PFx¨oùŽÊ&vÛKKYuƒ¾ÛG¦ˆðœÇcê øÉ[‡Í\•Å#¾œÏ»¢>ñÀÃÔ¢¬Mp×܉ O™£},uí¥DÕ*[ç³(Sõas²àÔ,@=J…óG<ù†¸9¤)M6ÄR@I‹«ÁD\i“ 7ÌÇ@ù"4£žæ™ñ)»B„Y}Id—6œà`UM“ª¥J_‹o.'Ÿ’—ĉ—.*Ðe˜[`]ÜåuPµ=ú!ü³y ñì¹c„+ïïHÕ‚ôXÌîFØH¿LµÑÖಕ zžE%ê)ç0éVcÍ÷ñmÀhî&iI³pæªót«4µLËgÌ!ö¯¼­ÛÎÝzt«-Bš*¡FÞU×½à½n­çu W{š ÐU!ì§þ&ê,#Y¼ñ8û”Eä„;ê ÝZù0P{zµwɶ©$¥`?¥þ§öü9eé•ѤæØ]×ôJt­AQÂ|iÄùéÒ8¼ñü€î¼‰ÒM3{bqgÝ^è d¼C—gy×XQ±Ä{*Û´ñeà©ñ>UL¿Qȵei] ¬àð߆À£çÓõò_Ší’åpÑÃù¸ü\¹<J'6Q”ÓsøeòžH.n}]‰ <Ѓ‹7Zµ;{®òüîèÞëÌß!ùÓuÐäE™IIù«]Qþ”¾¸ÜDnBxj:¡Éë¦.ѳíik©”©³ˆð€ÅàŠJÑ6äŠNÿy ’èl޽“~­ïäz/ø3š»ý¤ÑÑäg¿÷v]ëâīƔ‰ÍÞ‚Û/_•ðocÚ#êŽö®Ñ.N—ÏGÑë¬_üv–÷(:Ùå½jÕ•6îEÑs×­¸\’@¿=ø<Á`nì4 OíÜvk®8Vͼ—÷÷>^¥‘Gíê‘Ge<ÝÄÍüЦo¥5•a¿sÁ¥÷¾G(z¿\·ÓŸy =I“à7ó·×Éâ†øHáyZŽ2‚¨¡¹CÓÁ¯Êܺ]¹2’ˆú­ÑÐ~»|Cú%sgU(4%\éZÀA‘§Ï=Ö´9åúÌïtçR­ÒCžà;u$h®=5\ÄÂ~O‘Q#­òõ*Q»ëàŽè†“Œ…ßÔU£Fâwl,Ÿ)oòµ'ç{+-Í×Q´Î¼ ¼qW®÷‡J˜ÿ±nîM¿q“êthPZ™mpdàîç‚#õ»c£}l=$<{Ë•Wi \;åèëLÄm$A›pH nlÒ'ŒøÓ®,ºÅ«_ f˜Å(§…Wó{~¥[$ppY5¯’,n:žïq²!ö·x®ZÓ¯rÈ—‚G‹{,ü0@ÓnyRà±IÄD rn«ü¼`!g×YÒ„ÓNêŠÅù®%à(÷ÛOáHj ¥0—Œ >8G¼k©§ 4†Aó2®Ó~TÁ­þGÅR§¼h…ƒß[­Ë¢zûSˆ°:])Í*MȱgçâÓ7¸Á>:Þ koä~=mk|@º½ ÔüšÁ“AEéQb"W_ŠôoíJÀi$F’œ³fÍÞ©P7½+‰ŽD.½¯A™ ÿ€¨/¾¤ú"‹’--“ÁªÛåôOãFÕ>­ „U6¶wÓ.{MÔ¹¢ö6¢•WÔ, 0Мˀçã¨Ú¶ØÅåhÑÛF«^å+8{Ä›úr£âã#d¡ä‘*5“?ƵÕÔrTêð˜' \ ú ^ŠÏnÀÚ ñéh÷Vª›8ðHiø*ÝÙ7¯È©áÓ‡ú ¬/wîÜÏÜõ±£p:M¦¥…çI~áäwU «B/’c•÷嚀jà2¥¾/ðÜ•ëÏ•Ÿf³Õ¾Ü8}Ër@«–½$sb¯k †ü/?„”¯¶ô§2" “º)&ß„¾ßq±@¶Ë_Þ…ßįáhq)ë³È¢­2š@¬š*%n‰æ,xÇ©¨~¡(z¾CóHUI,º)»ÉœÝe§ÿbiýf Ÿw*õ7LËÈ¥-AÌ©M|‚ Ä!¼’‰›ºÒ‡DbôÔõL§dµÂ±‹ÌŠ%^HŽs7 ´$kኖ.<~âl\Ï›]t!9™W"õèÔ-ÌVž>>9Î`“™ôq¹Ú!Ëz¡&ï´S‰¬ÄÙQ*d΋KI¹ÎÙ½Žï9çŸ[%”¾Aåî<ëìÅÅ#¶!P‹ràc Ä/Ž.5(_}^G-¯–TÇ¡V4åyÉoD³×@~#U¢­¤7Û–ÛéHÕÔ²áækÈÙXÇÖSS09‘ÛÆqˇ¸A@#¯™°¨·³¬¤û•^Ö(Sß/-f/ÍZ£ ÛTøÙãB=¥‘R! ÝœJÏ£ØÑá»ÆRm7[S맬Wr}µ¬ÔÝ€Ó¨Ÿtí„­G³™·Î •í¶sCò–]Xlœ'ëÆ[;Í['ZµŠv@V¢ÛQ«l¹Î¬¼| µ<œYegSó‘;C»Š‹µµñ¡¼lÊ`ª?Ç+ÞWB—­hò 3ÙÁH·J|í6}TïÅð£œVH÷ô»òºò:.pi;·-_‚ñEÏd»§úÎÜ Ž0äZL8šÉÑmËT|9Áx‰ƒÜ´¹5Z’›´Å/ÓK3Ñ'´[ÄËÁà%Jè6Bœf‡p®¹%ÓšXïš2ÇØ’fP?î¹N—vŸy½|‹Õ´ÄT(WUŽ›RQ7‰»D‚éÕ¬k•‹ "ºŒà)-mž#?lTØ:d›&CaLÀÀ@  »Ä»_Öl›X2²Ÿ×õÕæñºô·+A?¾î§Ô9HѵӨЊë%]•Wõ†ÑdKûõ„~@Q­Á•9žc‘Èq¥Âq‘”˜®hRŠŽƒQÏ1yvW¯’ýw¾ÃàzmJ.®–E‹‹ØÈË@ÃåÎz[ç ”SÖ=Yëg‚Iÿ:½¢¬1}Q^sé÷áÃ96Vò¼Yº?É5§©ß·âN·y®Èí¦(,„½Á(ºt9vƒÓeVÃï×Ô»MûÚh¨ÈÍ%\SçÖKz*™W¥°$Ò< n#êmІF®.©}.¬=á;Õ=¨lI³ùi¨ÞÑa@Vþ7r®¿ù5IÛßi¿FÑöwÚŸ'hëÿ[©gû;í-¯õWj¶ü˜-Ùûož˜-ßôÏjÙ¦úK-[ùßj-[Nö_$eû;íß‹’mø›!b›úwó~ïOUlëO?ûç¼–?þSÚöüô³ÿîOÅjù§?ýã½óþ_KצŸ~ö¿üÿÈ/ÿ_ÿ¶åýñ_Î-?ùÿkÓ¹]GÕÅ‹vš•CÀsÙï¾ ¡¦¿8—†ªü@*ÞÔGÅæÝaï­38Uߨ·c$p•[ÍÈÇ­}iS:%èm+WP»’#KGHª`4sñ¶òw\y&ÅÖ]GHî¢YFÇò* _ oT€:ÌM¹æqª<§sV¾Ô}ÉpMÚIƒùO1ò« ¾__Š yÒ¨"ŒÖÓ|H 1•«À‚í {åí*BªÚ¨¤Ü_CQ:[ÛÖpÇbB(ª†çÕÌ·HIžâê–eÞ¬")øKv6ó8#¬eë·? `³R™JμîQé­Ÿ“Tm”PŠ‘½”ÐÕi}Þ¯dbQû.Cé, 4ã¼ëÑ©eîªØÜ»¯øèxL•Ý•ÃpÈykè«dˆ†Ö‡í*^Í×UŸ¯v×s,)“œá}Q~kɸ»¬gößÒUïõ«ö•?¹DîÍ0ºkÍüÉ:Z»wÇåxš¯nï{ªF3ëcIÀgäOS>hƒüjÃñäoiÕ»ãgI`[£e Ê] ©°I)<‹™{Ïö×õÎÛ“B‘˜ÎykóÍÒh¨ôw›ÄW]ÒÜ1ïlJQ昺ÌÓ’â °Ýzw÷Ô´£Ì¯êÙrǺÛ5ž7iË{¨ÍÁŒâ%nGäï~¶-šH©¿ï·<ýl]åKm¤¦^œ«2(²Uä«:Åqö!aPñ–~l\Bß³‡Ü9ÍÿÒàŒŒôäK?É'–»óè¥ùàkrãSøc¡¿Ù‚>šU~TK£ê¿JuÚ{+áê &åÇq&/îxQ—R4rKü8|ÏÇmäZ‡}?¼N7tÜ ÍÎÐr¹(2›Mãá,lm¥šø«<ëå7º ·³R1¿;9sû»~¤ëж~ü|øGG–­"ä16[vêmƒbéÙR¨ü8¼\ .£íZû*×tUrçcKÉkAïñ¤$ªýìdI¯·¬^… î¨eÈÝÊ3;™Z×?ãÞTõ;'Älaw~(kõ2j{ª«R§‚vJ¬ilÍàÄkí݈6¼õîd÷‰Qq MažèëɦÊóEwäù<¯[ߪÁ~×/‹óX rJ‚Q°L›_~T@z¥ÓRÌJTÄõD~Ø®Ÿÿ¸îª=õ°¦22­‰GIµÂ9ÖbÍí°ÅcpM½*µ»»Í­Ï|§K`­¯”ꎪ'ýè/ÊcáÏ„¾õðlr'uùª:{R;Ÿ‡ˆô]ntHÎåÙ+}©'áòÀžc{+`÷îN±ªaÉvgµe$¿wÈ;1Í'Í‘usQË®Vá•-’Â’ö1×wó´§Ü|ÙÖÅ£Z7É42?ÐÄ1G½•>ä¬ûþ¥»ÔlPfþ>~ƒÊ—Jy’í¸ÎKQ® òåÚʉ#ŸkZ÷ô¡Íð"žr?]½ ’ÇÐêZŽÈ»5ä½Tæ¨îT^X²Ö™p,y‘ŸÀÇ57MïŸ>¦ï´2_Ť8Æ%¢æ­Xa@…‘$Sç[n Ë­ÏäCM§c!ÐÁJCnrå ÙC}•¼îÁ}þÛ­œC/¶ TUSBé¿ûU̯îÏôYxˆbñØ~Uë…HÖ<øTyf_&Â+†Z$yó¸ëQ?é“6Ü^mn–ê üÐDêCUb‚„È^¸ÊÛQPŒÇM\(½õ/.›þ”$ªñ}ušÆU½~ÏçˆÜÑWêVµäÖ!%_'NØ]·~¸rÄ’˜Î‚žêñ«®'ð\·ò‰’2HZŽ689\^ÅJ Õ¨UÁÙ]R¸2 BŸù˜jI‹GJg•$O]=„Uãç^ŠãùÇ™UÄ>›ý]¦®*«j#“ÝDV#eÝG£²†%©"Å!¸k{ ÷Nv&‹ºÂw“m@é]÷÷¯q¾?[Zš«É›ßj!¸ê§+€:9îr•5”¨íGè‚Ç®Že£N2”gíñ¾Cäã?É"UÕÆ!ÁIß^>brÝ«¿AÇí ®”CÚÆpHê=<ùqËíáãPùF›]Ý®}Ê BoUFÔÍÜ1Ë·•&åÀ7"tH’ÜÕH€¹¦L;ÀZM.E½ŠWNÂA‘w[ˆ7Äšê°ÿÔ±_Ñ2•Æ*Žg–YåÀá ¦ÈwÆßîèOAFb@øRž<¢Š„ê%Ie¦Jz97kã­Êaød|@£ÒÊKèCX'§ô£¬Þ›»²|zb£3ñÇ•µoL«E±C}Åžv9G{)§×Ž ;·"èÔ{ ½JÍ¢:çj©n@ìËÊrº¾ ðŒ.Ï^J™r"ÜÓß¤ØÆSš’ÙD›âüIûöE¹ûTniˆ 9ÜêFr}%õ½4À?®ëÞJî+< LP¶X! ¨˜ïÛY”øâöÙµH™1€¸.]õkɄĹh=ž^cÝ#E&ÉÍT‚ÐN´šÚen#?„ÓUÃYÕ8ÓcW®ùuÅ;ªrín›Äs-€£îF@Õí –dtM ý¥,u¢Ms:Û™‘HÏS89>ÇS:‹Î ƒÌ·,$P:—äølÈLÔ„7Ñ-ëMéÈÃsŸÒ,á|Ê¥½‘„¦ÖVF¿Íur øOk`šÞ* 2R:³C1&[sîv¾ˆße£›bEø¥ï5çì½ÇAiŠÀÍΜëxÄeé[àRhÒàŽœôS†È+*H_uUæâ¨B9|\d! À Úgs¤ÚŸ œÒ2&Úæ“‡?’ÿü©ÛÛ$\¼lÀo¹Ý„ä’o®ƒLS=œ]j#ï&· t¥—9¢<õ|šµ:ÿŽxÕ^ý¯«­Ž~¯BÀ&Pë`0)U%s ¿#ê’l”'ÈJ|‘j­òA‰F*yEbÜ›Ó5X â~ªòK©Šˆ×ü"Ns%*K200Ïþ6‘Fé{ë] ÂÁÀãy›Eú‘ØTêvwêR éV]mjè–ʸþTËZ”4£é-Ý}iÏDü» ¯›äš|ú~P¶lÖ{÷6ܾËŧcr»€:é¡YTK²M\íåðíiîç²~zUÌzfvA‡´H}æ6Š nþ%U YáµÐâA,ž¦`ØõÿOÑQ½=oú¢ÔâÓØnê„2)˜GÊ ¯½™\-žœN)N[-?‰³ YÝpFLÒëôBžæ‰å]®¦§¤Ì/5ñKMLUÇK¿.bÁu¬§ÝâëJX?æ'â|¡4éúp>Aœš¢pŽ> ÒC=7²ÂÙÒluR+ŠÕ]Ê †æÎðã šª—™"쓟-N5ÁIÞFB­ëo9ýµä­ÞG?íVìi©Î¬kQFRY–íbŽ H’UÎ’+êñKüÒ,PÁ³›ßPê¥Yç»Ã¡ÐßÇ%giaO!Jé{ë‘áZèC·²Rf\ÜZô±ãK[c’¡¨C‡.ìg«‘xÔ;·—3}%„¸pKñ+þßg}oÂ}Ø£VÝS¸88‹ºG40\Ð KCm}‰.mFM*õ³œ¶6…T\ú×=+{:­É¦tWÛ¤D· š4Qèâ-—éŽST{°qi€pêî“ÅdMª¨œØt\Q^ÝÚ¹¼1@¸æ¾Þ©ÛJÑž„²dP•Ÿ“¬)ËÃlØ %¨ÜU¯R¶p åÌÕïEÅŸc••U ]Ä Íš>Dw:øø^ÔCöñÜÜ*ÇåKRps¤0‰—”¨øhp£êØËsã‘Üæ\õ^T`!9Q³e‹k3ùñsÎå~%¨ž jB"+#˧t!ð¦bYÐɈ:8ží ÿãõ¿ÜsaÞÚ¬ñ-ܤxX‡€>T.ȤqË@Ç#ë~$¿é&w(gôó÷È£í81ñÏ=Ø’Ù[`ø§D,‘™ù2þ«‹ìÀ]P­#jt-) ~á>>ó·V;¯« $¡ü Êåôªtâ"ÎN½ "`Ÿ—¡ä¸OÕc K7F)emÍ3Ë„¬JÓ£ÜFÓ[.;uÏ®j~x¤ ¯ªö¿)UM–ç]R‡,gGÃ*jk-ÿ]¯ÔÝ9­Mù¸³=U¨9 Hïøî>7À‰Ÿ"á«;RýëR¥á’á³*SäæÈ²ó©â#?#mùìÅP>î¬I…ÍÕ‰ÐE—K‘ÔK÷ŽòzÉÐyªñèD; á¡ÜÙü«b}Nz-þ‹S‚K»;‡K]Ã¥ —'J¾fWºEF.¿BÕ¤¥ñ•)ª¾ª[ß+sÑ3)ÉkY.ñýVÞp½c ãt°AL;_D˜è‚„Fj‹sÔ‹š¸ôQ4)WqM/Àk. ‰ˆ·oSºh[<$Žo#»jÆçr´ÚáemÈàrשyA”3WRmeZfê"ØTJ Ù˜¾û-í¶½ÁÁ ˜i ¥–rÔYP÷!Þïå~ò-m¾&ÕSÝÃ$0ê’yüRþ6øMêw9G êÓó‘bn÷KÕFUÚž?]8³e³‰·ºr/ˆÛ p™ê®…>ûHð?²ç›^ñ¡èîÎéjüä¦IÛÙ ,®¿“nדöVgßõ ×´›³ª´s¯ëxT¸€IŽ–qý¹É¤Ü¦ó(~u(bÒ=úÔ ùÊ—)p’)8l'ÈAÉfk‹r^ŠÄüÙÓP6ªåù¸aEµ"¯‘{÷écåJ•îk*-âf زLDÉÊWŽÚíZó§âk7Ø nu•nN’¦À0/·‚zz®œÙŸ»]í8DÒQ›ÃÝKšBRpèÛl|ÈU¾¾hŽòºOK% »æº~‘Z È äDäTûÛÎ 'üÊùu©Ž¨ÕÕ²ÔÜjhɵLT§Å%nmb=N~xõr¾º(ýª:"sˆë«8ó‹ªñm¨]Tu7™Ã0=ü X¨-‹þ(5ªµ5ÒÆŸoJ (ŸÈjCÁ~AQXÎ ½c_õ¸ŠJüTòy:ñª–R‘€x#EV1rÄÖÌÚ>EÝ-äÅëmrkiì>=HtEÍ#uQqIŒ´û”3³Z3GÌä#H"(ôXœcªã¿j"\-útþœñ+5Î9ÖâòxÆ*¿âH:ªœº{±ÉM—àOTÊ–ò>#7Ÿ†hÊϾc¶_IÑ8¶ï”®âÌ4éå®8ÚJTïiQ‚%¸ª>N…÷U‚0këçªìºõUy¥&̓g:0ªº^ûâh¡«ˆJ‰ÖGN¤¶:°·›(íÔÕ¼Kt˜y;¸ì5‹ãÂn€0€EþLu‡U'€I2AûÁí.GÖš¤M5Q%ÅóªßGZÔ°¶jÇxK8z[ñRÔ«›àXŽª ð¾ˆkD²,Ù>éØú‘-¯^åªP¶ew!òt]6G_uzrÌW’þƒË^Eš*’m°(/çÝ.…Þ»VÞ[ÕÍ«-®^Ÿ?£ÞS4‹äM¾.­)#*œ.iBµûŠJÛÑcáqHvªZ¨ðr¸ÊÓíŽÁ¿ÿhô¤O”>Z÷“EFHãiq£¸‚€-·½$œ„ýá ¸kÑ@úã”pÕ•"”<×Uç9-‘Ëùï;šÛ[ËGßíçBh˜?ó”þ3£ cQf4ŸÔ¯W$~(SûÍãoHbÿ¨ 4öTØE!Pç_f׋”¯Þßç=N‘dWš/ïÚiðmÔòœ¡ÌÜã¸F³Îdè•À¢Ù:ïmÛ»çÎ>õ¼$×]º°mµI6GÞݧ:y]áæåßIðn>px;í^êÒ 7-γ³þ¨Š¼6NŸÊ˜[]<²F»e”ä`‘W´”(^ rS¥¼rË{^At ¤£tÒé—b´3ªšá‘D Ÿä·Fë æ^†íègºj£Ü°yöÚ¿ “«]õ©@ðä>5~U=®È#ÙÒ¬JA§ÔÕcùùåM)%QxÍêæò‰ÜÕs’ÂS«:’¯]7Nø¬®‘sÚû Dí{º·©ê3E$1ý:€]Êל5N—&›Ïãõ~õRI8PÚ~úl71‰8D¿F–)ŽF)Ó=¾vö*ø—ØLevÄ~âu$)UÃpËußêÊ)”‡ç–¶SÖé"MùÀ”vê€Ú´hÈ[8òª\5†u ‰¤ÒöR€Û\Ÿm/œž†6²¯ZÅeü÷ú’¢/TÞñU]åvﵩ“¾¬Ózy:Çö;òT·Ào!‘bp®)}µx¦Ü ©¹ù¤8Ëâ¶Õ©iò@ã,}d2ªÉáÀ—Ñ¥d5izp¼·$woܦ‚¤>J€´U”ì CG`È’”9t£ÒÅUµìÕé¿â´…ÍqŸ*p£‡Úx­œÏ áÌÜ–l7€0[¸JþÌ^l¹,öW„ÞÇñscZÉ*£ÉŸ~x»d7‰ ê|¸ÁYޏ >r¤)RŸ£î©·€Ü3ªW×l©ø“¢•Œ6Ðuš*¾6%ÿH,wV˜Cm;_릚޷»HÉ"°?ò8 R^yKR„ë‘Sæ¥F#qt˜ì²“ãÂsKõlJËâôÚž!eÏß—[ßÑT Ra•ë¸Ö¥}xo_?5k•;H°â£45Ÿù›ª'„#ò¥•ÇW8ÅŽx×Û–:^¢èÇW9²ë{»)TCÊYŸeÕJ$J‘ih¤k"¥B8R :n,vê^§>\XBJHêR^ÉÛ¨êê $¿÷ñor»²¨}vÇA˜ bñ¸™ú÷¾j±¯ÛY²Õý¹×M6àñ@£ö ù,®³¶ Ä»ÿ’Š‚@ÈÝâHêæÎ] H´€‰²T¸Gò1ˆÐ]›ë+¶Ó1¢!+pÔÞ£~òUK‹g\"gçÉ.Ú­0e@TÒÙN2„|À1à( f‰lg%ù,ÜŠ Ömɬ.?]©•¾Ä‡ñó…Þ#æÅ'waÞÎ ²,­á•%ãrš¼lŪTz¥´Åùu[в¥9ÜÒ¢~¼¾“þ¹ôÃï8½] Óâœ/)"¦auiÓá$a)ÊÅ)oº.-N¹‚S°ÑGS®xpxUö•GyغÈ]¬†%í6·ÞŽz8N’ílòQ¤à.ãâwé¯ÌÿÃâe«= Fz>kʗ㶪 õç@W9­v§ëÑÿÅÅÐÙd)ŽÏ1r¥¾©×–Ô¥hZÓ«¥€Ð{T:lþܬ¼ª|á»),šNª]²ŽVvÛ-P0!isß_ç‡Y¤òtÒ•ÉFKìB¦=ì^Šz`°öóhÍn‹Ô‹@èoY _­?bœúð´¼qèL!:Ý. TÌZŸr±©ìWy»=3‰ºá‘Þ³@~9ö1ÂÙF¥äæÞx\{×þ˜g¥Iƒ2VúÀ)4Ûùú$dKQçÞ_S£Yo[×Íf“õ«¬0,ø]4„#r?ŸöÇ\ªÕïâÃfyW®œƒ`ÜcU?¦ŸºÆÌä…äb–ƒY}©géb0GÒõaYK²à$#‘‘TŽ´m@}ÒcxÉnhÓ~DJÄÉ“ÏIf"sÌ>9 ¬¿³1‘“KÍ«ÕïêVʶÈÕx dŸ„d‡Šä5jÃ+—©z)¨×¥ñ’²ÂwÃ}~ôסB®&A,.7ÝuïL½¢[¡Ðãï«ý 5•¬íð‚×/ûHµnÞ;߯賡|îÈïÓ™.—ê':¶¨Þ>ôױʓß^r%WT¼ €PÚT%âsÔ¥«6ˆ‚Ûr'¸@‘š¤³ÅÜ0ˆªT‘{8.€k*í5·²Â"Ò;¥¯¼Nc£hÐ=V›Gà­=pÀ¼¾Qºãñ¸Ó=<S=+®Óº¶Ògù%“QÚz胙vù`”ÊôÞXAù!8“œ1SÈ)NÿÍç‡ÒØHBGÀ}–Çω{äUUÏöèû–‡ÍK%ùl¹Õ‹²\–ÒÔgGyÞ.ÚZ·jÞ¾"kJÈ&Ð#Ÿ²LêOÊŠçùZC…FfzeMÞJ«¶ÝZ—8׬Jœ>–^&ÁëtC: /~¨Áj—°ôËßÐã›êQ¹¬j«gNAtr²Gu¶ÖmÂÄû­÷3ånõëÝÓyk™N o¤ü¢W#1_!•WÍlήÑÖz˜;î¼ö‰*„«&w‘î(Ç+î[CªÙëôIM,)VÓ(ÉQ/”Û"êj9æ*B¿Þd¯#Ƚ¤îšh5{ó’\!å6ýìä÷ÍnMS()磚Ÿ¤½ëŽ]©OµÀ¶Âʯ'§PQÞq\Éðʺ›S(Þ §cÿÌá\ïºu?!>™Ûw×;ZëÒ¡%‡‹œ¥âˆ—0újÌGQd¤5@Ã}q¾ªÊ*I?Z÷Á*ùK?Ylm¿ÇRÌ_p n¢® …e+.!ú¥?3§3'Åu‰@s§Z†×B­ÒÔcJYá/« Í™Òá»Tûàš½¤` 4'í¼I}t¾ãÓ¤iL²}äÊÙ1’¤¤2À,õd2y!4·]>½x…Ž Äëzù˜%ù«n.ïtðÕLÒ ÈGØT²Ùñß/rjKÑJI2Y_*ŽØñ¡ôñ½ß0Ÿ°™¿4÷‘Õ¹Ò-@QWc£©ë”kp“®•¯…O£ØÂIäÕ”Iæ»çì¥qµRS—²«í¢9Q¼K”s•ÄÖ¾]6ªMÎ2W®J~ò¡ñâ ËÖjz~`aU°o†µXˆG”'LP¦Â(* óq?:)V1Ô|êsÒP˜LM¦êÁéûUº_ßöÕƒ«HÅݽAùÜQKHîo©G Ê1K’Q%·û¥¸;´ @•*<Óõ±¦ÄhV $MHÛ(ù& {•Äø2v>åMRÇ\ÉÚ"pº—]9_&ÅÚ5>På\+òÊOwHªm“o’ôSÓö#ùˆj:/'—æ,o"EÔ5£™˜ºl “¥Ä=TŸ.?÷âëŠ=¡` R~ÖjŒê~XÙU ÿVò*(¹ôŽ:òŠx&ºÓ.=Dä`ž@QÏË[­PÙ€ Ýù²®LñÂéå •SfÞÜb9MŸü ×lø©AÁ/“D‚½ÜÊnˆÕ¦·yÖ}ŒË@9½«[9ÿº2ùQ˜„ǧ̷ÖlC¿D?Á+!•ÞÀ?2]3TÖ¶Í«¢ÓãcÉ¡%yP”ïñKŽüI¹ÀsÇ #ÜÄâW´ÂôìN2|rCoY8XCm”ª—.EO£WÒÙå“w±)¨í¾*uØœÕíþëøä2ba’óÅ î%‘ÀÚ)o#JNŸcØKH!™žÄ^ÃÌâ4&Ê$xèéq½áRä’³*!H»¬^XQK¸¸gdêªëìUôv‘†âñ¥ áá€ZÊ¥‘þ~| `ù>îsí§Kà|Õ $O;\pN)e¡;3/b_ë,ÒcÜTõçßzÎ+19Õs|¶æß·î~rJ¸Ì¼ŽN¾A/rP/÷°úYæ!%M0Ù–SÔ8óy]m‰æÀ—Mò× G³ ‹o ØÙטS:ÖÍZ‡Ù¾’RUi¬…hÃ}:{ÔöûšDQl9ʆÀ¸«ñF=)©©•IäìXUæ4Ó³×=ïhK¿åç1€º(.ˆ˜ÍfG¿n%ìÇœN`#×™?áTÓbje;6É~Ž¢“#hþ¾§?âw~Õúå\Qn<êÌ)$֧М+ÔåZJSå7: ÔÔ[f¶š¯·cAõ=u|žzSÝ4*ócU[‰zҤȀëzSØ'ÍÈ>'æíž†­ϸBšfrà¨5%{oêÎÕZݳ`g³7Ë…ŽÜkLÎ6AŠ%íëYÀN hξÊñ†wé©}klG ”¯çüQ'¤²ÏÒx§Bé·-÷£Ã UÐæñì^·ZÚ”/yfNR˜ýLгêhÉá¶jÛK×4äK˜OF(­?5I®š,HØ®ävŽЇs¿K¥âRFÿLü—&k²ÿ3‘$À_Q‹\\K6¸]®ÜJ}ä6hÇDÙ¢±-ï4p¯.~.•±)|’€ÌOKfHéµõ¦mpäÐÜ'_ßMbŒ¢rÄ ¼Ž7ÕïTãW,KPבlþ²ÎC,#ÕN‰´Õ¦¥ÆzÄÓû"ðí¢1Ë«ñATY—rJs6k¶£Ž[ì/€îøF.Ý¢ùÉÎÙm)_’*ïU}ïSrUÇTjñËÃóihvqóªÈêØà«õZYã<ݬB ‰‚¦œ<‚/á¡ÜÖ0td=Wo}&¶©”âP®Ê`îå`Ý©P4ÌòÊDd˜Rˆž£¨Òv“ž©G¡T$-ྜ¢ÞÊ– ¼ÉªyÙâqqp¨F? ‚*ï8!ï˜TÈWÒ+Sýóè´]¤å®†<æµ4Såýµ¬·H$œ)Wy×Qê*IFcR­“ÄH…[¤6±Ü°jJ¥^*Êk˔DŽ&¯ÀXAáèn=5Þ¯ý?nÁ™;Ñ÷Ù‘öÉìѤWk­ x!E½ÑydœðÁt¦³•SF¹È@Á·­ÞöC™ùJÓÉ\¥5ƒ¢QШÀéPj‡ªF~˜—䯪%õ¢FH\ð.תœ|÷¼Z ê ²Ukä’ _’ye1Úä‚䤧ÈûÕ½y.õæäA~¦ƒÜb ?G­áÇW@»€àùÆK†E MÓ´•Ú]ªݛ&%U éÓ õ¶;)ÃÓž@ý ™I5éÑù·TÅstGK$PV…éþÛï·tj¿íóÇ^éDI·ŽÞ?BÏí€5){Ƨm¨ÀEšÓÌ€ D‰DWò¿l¹œ5¸ 3GÝæÉhÖMÄLBÇ­…˜Ì{  ØñØVryŽÅÐóiøÆ#¸µ7Òˆø(·Îª’lËSžÔ²ÕM\*‘V*ú£"æ•é~ÛWxÁ–JÅ"1 X~v¥iÀ?;ƒâ"ï«YähZ߀w©Ý3´3&\-… ª÷€|ÏKïÔãsN¶H¦sÕ3ž£§¸Þ#Ë”°Ƨ@î©«gø*þ¦À£é)î˜ñ•!œÿyw2ªœIg'bÝsinyÿNûöÍü6ìŒÉ3q󋪌»¦àÉϹ—*ë•$[óØß5øÆÑŠäÌE–|üì·×)‚¢Øñfæÿl4ŽáB´²–î‰è¹öyÔz.•Q—¹Ï·TWC5éÖsï6˜à?e¯j VÂúü¥ëû±»ýP–œ–úcSSg@g€Mµ…5)¥Ê¾\Æ2 4KÕ“mâdwé‰I²Þ³nYkI·ðq™[Žc jˤw×!»¦n£Ç¨·Fìòf•&Ù|®àn}mGÇhàÜc«–çu&‹zV¬À³Ñ}´žyÍàø[jVÑ'ÙðAѤTæ%=6r aÝiTÖÄ.ðm£­\.SÙöSkx ɲi"õºë¯gST¹9 y2²rêìwù>‹ô•ýD êŸÃ§¢*æp ÞªÒ˜+ZL"rE®â:…½‰] ¬/­d[‘‡¬¸Âíp‹âU´®ÏfÎÚvŒ|u—Dô¿Ý¬›¤¸Þ5œ%<øR¹*ËK9Ò·¤nH䟇þh²j‡W¹p¾µ¾xz‚Y¯«·õªçÞª7‚~¯VT…×Ì‘<8›SQùbÃ…z‘¸y;YDkÊ©”¿wZóÛMÔKÒ7–#­œ]C =Ã㻜M¥¶ÏþÓí–lp9Hƒá8U½—¥ãóNö@£¢ERÌ€}ÛMVÂk¥¸å夥<ôl^_<ÞA6Jœ™z}³%õÒ¼DƪBß`$âTíQ¶ÔÍQí EI¼Ob÷Q–ŽþXpPjÉjËI–jKC!ep°òø”ßTý.ÉI"þüÈęۑ颿¼§”Ó´äÖ|¢‰Ô©r^îØLYÁ…¦' Å>¨¸u”}:tª¬C ååÿUtݺæuc~óyp’ÏùQcáq9ow9t‘è¡`²+Ú‘Ï|Ü ÜûXÒ×›F ºr£M†¨¦;Hð,C«ê { J]³c¾€oUI;Gî j«òi¾¥*ÈvâºU¸×†MZM;ya©ì"ËA$•U®kÀíÛT Y÷ìæ¶Qqꬒ“ÞQ”Kûã-½‚:'Ûe² '‚-|à¶`ZoΤäÉ-süñæ3¯VdTÉêÔK›±À¿Tòg'§çGÓ';{µn?­—5•ÚRà^ûÇï¦/Dª«»ÿÌÛI+ÀL=)#Òù›ðW*­¿N¨´þ¹B¥õo«Piý;"TZÿ ¡ÒúW*mýo Piýw„Jcø¥PéÝÓßn¡Òú •Öß•þ©PiÿégÄ£ßqþâ<œ÷ñÆ>Ïö´âV[ ×C=ã?SÂÖ&KÛ¥æ^‡#Ë­*ؑ׻ä Æõ¯pN¿®¨ûÞžêì¨Z¦;ÏK…Oݯ‹•Óâób«ûã"ùiéÓ¿z+¸¶O@v/õöSåÆ~U¿1-¦Š´Ç>akG\È•”œ†´þñ®ë›i‚"] pë„^ZùdWµû4_-jJn#7Ó»|(E^xˆÚ;Hu~¨«~§YÚŸk‰–m;qkIêãñ{ƒLª°ÖjW¿CÊÀbŽ’BÔ<)M_Žÿe„[/ˆºgã0I”}l𔻬“›·p4·-Q}r9ÏR8œß¿“_çV*ÿÑö°Èß­0À»ÏQwã-L~à´»×7ÅvoTeÊŸQÕÌqµÃ3zœ%)žéaª[?¾×Gýµ©*ù;.…ºnt€‰N¬3¿š ó’TÛ<œ~¤ß­ÉŸV^ïegê¾eº¨·áúÿ¶k«ÌDHoh¼Ùá,žc V¯Ö;ù‹!ò /.ºëMN öw˜T/Í&Q¦ÌQ_”{ÊA±öQà„û¸†Ý‰³6oW¢$þ(@¨º(¾çªü^Ì|æ¶æ¤Ã&Å^jêás=€N¥Øë­ËmÕfABÛk‘FýútÛ&á£NÓ_Gmƒ&hOGµßÎI»µöžJ8µË­ûÛÆüÚRñN„¾\þ8âŸð‚–>¨S‹×z~õhO@QÍQÏ£­#5Y‰ŠÑÙzæ=Å–\90p 9ÔH» ºç‘¿ÖÐÈÍ45¡1Ó·./þ3r·<]|#‹EòF¯W#œ¨Åøº÷<ÙëøQÈ”ís~Í¥Ó!ñj«ÈWH417-ŽãäE€|[¢/ ­(‹œ—Ñ}éwÇ n?o;ôÉ}vú4Cé<•‘/B—3ñÅ'—÷6ÏMpή£§÷¨²Îl¼pÌ9?þyŒqvØýRŬfrÝÙ`u¾ÇÝ÷‘ýu:±Ÿó›È»ï=“úcÝÛù…YOóÔ¯À›ÝµfRëkÒp=¹yo[tAEwàáÁV¨MrÞâk§íønsz]'RÀL6§ cÙ¨œ.=–³P¥ÈÛuÝ‚ü»8Ì·DäWé?›Únr~?á•wËîŨâë™¶}£ªŠ G¢\U^”ö}EQ=U-êPrf›€·›Üúq¦ò[±O’GÉò¡xæa&­‚_m¦ªHàäÉjO­ÓnQ¥œÃOÔö#Íèú#iè5:Áۜѓ“ß ®ïÚÝ(EéÛ¨DKæ–óÕ6à ´æþg [õÚWéçRXÅ}úWX`[RöÂL‡²M-¶âÚlxÜÔD©6 Xkr”?£«ƒq°Y/öo­TU¿#È¡ëõyßòò1øÿdä,)† üd%ß}:$á÷G-ÄX¥¯BÜ7OÇwÏøÁþ¸9\Ø"±4IâpböÁ™`ê88ýˆ‰üèy,?UOIJ¨ÖƧѲóËöÓº¸…ÊZ˦2è‚Þ“½ødjæÄ’%FÜ@[¬Ó¬y§HMZs{¸3nšóеßäÌVµ+ë¨ëã«‹$¿+ôÝ:•Å®{2Ù9’T>¾øÜªü(«¤i®Í"5STwþé= 9N[wÀ»p6µuéRK q¤¹xûuãbBxÔ Òa×%•(ÈûÂ%lSÓù±RRDÁ6Ÿ›ºÄ™òl$YÙ]w±!÷síÁœÀ鈹z~Ôgpåjîqšë ÔܬQé)8‹žòÏ–º¾îÿ^<âGs9p8ü%¤Òã½°6ƒü Rెã©·§x^„–Ë6µ„Õ·ZéðÅïë:}SÙ}´nU øw;º¿r¬ÒÍY5í|5'V.׺Ý]É¥O;R,7In~úB*…*”6¢½IE™ýY$¢ò¸/š.͆ž±«²˜€ n~õÁÍ0)i’ö×¥J>ŠÒL7kˆq/¯¤ØBæY’‹¿ôE2ZKà<¼0³[ߪR¢œbñ%&˜Ó®G©™ðù¡½U0 s½Êø«¹yë³jØnjƒ—Fæ|#Wéy.W·Àt·Í¶¿º“ËeÖO ¶Èÿr‹ê£U׳šWÃlbR!¤eUiˆÇKÅî\‡roPºr¡VsS?K6ænPÀó5œÎ|—åv8-ýkKs0þ:£R=ôC¸ |…[“6•жÇÈÚÂuWrK„›p=JLDuÝD¦‰BïÖ´íýÞAdîn83Ê-ÎÍ[ŠÊw½Õ‚¼÷Å›„­ô„*N›Vv…c5yöºó¬e—’Ž^Éö{KG×¶ øpÝa¨ß8£€H&ÿ —È©©ò‰‚{iƒMA<§oÉT¿NO¡Ï‹—|$ ²óK>д|Ä ãwfм‡¡Ynjóòþâé5Èž{žk¨‡j‰º´kN“ Ô¾ãÖ8”ÝZ Þí¨”Ý`RÕ‰g’]³-N/…ÜÕcW('ð!Æ+|CDŰe¶5%V[—XZ3¹8/nuujRÒŒx­¡uËÒ™J\³œ\e<‡$º¢Ñv¾M‰B°ºìð|uG¢ZŠºýÊ;#î—Ô¬ÿRUû‡2°ñ ³êŠªñG^YoÚ!~wÒWرWw*\H-y[Q7À­Ëîæ*W0@w.µQX„#r ÛŸàk’zlURû{$YT¢=¢Ô÷!¤‰zºž~ØNÙ0 K—œÇ­Ì“•0ÿ·’JÒÈ=ñû¨ !½Ã•§ ãBõÎ-…g×=·]ƒ,ƒ2E%F’É«8­2qn?G9qÜeóø]üpÂ\<õT]q~¥6=A! nZu‹,i×Ì ãÝÝ­ª™ÿp=)òƒ;¥xðêƒüñ»Ä5ÅŸ(+,³Lv¼KzŽr»Õ뚉ç¢6Î)ÿ—Î)œ?À—}«®nܺUn={ß.XiÝ¢(WE6Ó} ɈÓÜ®£ÎºÍéÃ’Ìï'Ù;©Dtª$¨Ø $4jðÍÇ¡˜‚¶WîTl—ÔIàë.3Uv¢æƒÄøR¡“¬´¹ëO¥.ö¾-§ÂKMq+Rwqᚬê9Áæ-7\º¾¸òcßvä?ÙGâÒ€hBÔþJJ o¢Ìå€qIHC]><‘úµ]2Å‹ÁMàO Ùä Â'›d2 Õt¹49O>uÙÇä$.î~]ùçÄI4tÞ³EFwI)ÊZ*ƒ"½õÊ®"»ë5Ï;Ž_î™Ôc +ªÀLðVWŠ˜4‡%L¨š ܸŽÚ]+T¼m(ªl#Úåâëw¥y‹þÔÛ]kïOs´U¡ªWSë^õ¥›8¬Ÿuvñ‚è¹ôÄ~–d÷ ð-RʦQ ‡Ée¹§*ÄD¦@…Þ:9|)=‡N*Öãiáöš.ë©%«Œ{÷ \EnÖMõÍÚëo><Ù0ÄÊŠ(ËS~2õ!W„7UïÆ]¨ v4f¸‹Ûïþz¸¿î+ù¶[ÄVžÝër¤~(Þ| ÃtÝÞ7áº+–<ûÕr–§âÚ’”üº<³h€ìé•ýöC—’o ¬™ÔKšöïܲS¡®öóèbÜüKþgÝGR`úêQ9¬—| >¤"åÛÖNùìQó6‰öƒ¨¡òªé:Þ]ê/J«äd^ýÌ/rõÂ~(5”§pC‡êêÇëŠöБ”bŸÃýñ­]x’ r+ØÃ.×TyoÌC²å\ºA-Ç£¡S  ÈÕÍeûÁgZHnÙ•›3¿‹Ðê>˜ §¸yðºª×R<û—V .àŒã_?@©|­ETœEâxqEóœÉ/¨ûÉ#·Þáºh&$®ÛCt«€Ü–tðà܆ГV¨ÊY\RpùÙY­¨mP¦«f¾² oÆ%5 ÕIo¢?'uèÇñ¨ä¹¸øSiçøÂKåž³R¨.ᥩÓ>œo,m¾ CÒoÞš/ÙR„ ] äa~VSšâXu» _UØ ÉHWS£ ÷ð+—lL5Í ­¾Á–㤲ëLBöš‚/<$>)…’FÅTj©Ú n«P²¾ÐAJÌ¥ÆoÔâŸô%à.ƒß¨’¸ïöawŸ¥K–;ÕrÀ¤xr4” %™d7]íU›Ín5gqYú,W‚¼S·M˜¬J .†Ó%RRê®Õ ¨]F¡ w7߉‡KžZ6#Ã~¸áï@qÊnE0NQF† FRQîØÅ\ï‰JCê)¹³ œõQi׫lûž¼e¦Ü‡v3n¹ÄXT¨¬ ŠæÓ6Çël†Ûz¢eE;ü —¤ôå±>I÷§×T#’ñ‰Õ¡{Ì¿$ïc¿Ü‡ÓM/Õ£G¼¯¹”á*d„CIßb9î /›O¼x}êû¸ãûh@Ò0ÊíéLq©—VÞ ê¿*!ñ<ß2¡ˆ\[ÒÞüã»r;ŒÙ¶Ù¤0M[Þxð=ïJóqjëE<Õà);úØ¿6Žø¯öºjÞ!Éõ¾lõKE¼ðø£BSò‹BÝIÍÿÉ(ª’JóY'¹«uy+9à.—@«“í"ÔÇÝDŽ<¾+VDÞTq› \…”:ªö]y º”ÏþöéVß’«…DzК‰|VŠ»ÙÀ*`«ËÈèÀR"·¨¹ ¬®eyÜêæ ªVU,Ï$¼)2£ˆ½YÎz×!aZÉÎæš"÷Mœ%´ª,°•Ï&@^6DsV š€Ù´óÁï®J3üéüiê+•¬^ÃRÇtFu{én `S‹}4õ³“^:[…«¥¢ºµ…Ü*V* Ì+Êx“ñÁg`$*ÃOï’°¼K8 ÍÅYçèrË<ØOƒª C寔—º•õr9šˆó¸¦k“ê{ÖluÔ(ÅùÜÔʱ;ê&’ ºŽ˜Ùg™ó=«`Âeã êí•WIî(«3ì.I†P ÖPÈì`qÀE.jÞ¸"ÇeRS2¸2¼,W9A£.äëÁã*N¬ªûò-÷½| XG%Håè ¯Ù#ëTŒToó»9‘➬;Î’¼µëâÃÚ;Þú^à B#™V¹GÐÝVË œfA $™S‡×&r$ðM¼ö·ºº°®Hì£Zç„•„›_Åó§íôp\ƒ›ÑsªgÇÞî˜;ÎZHTU²QòDâ¡psžxÞÛÝÖù"è¥(‡}|Mažïö«)¼§ß(1‡Ã÷øÃÀòÔVå%èÝ9©_ÔÞÐPò?ªL¹:|¿ë¢¾P¿5Ê?ß×YmÔ×Ä!ÔÈœ%ÙÝó*–ôÀ·›4¨ú¨ÁÿŒÜ€/ƒP}€‰úXÑL!%Ið6´GòŒjܤ 9y6÷µõ»Z'½ö^íãÞrQ¨êʧ˜Uê~’­«Â ‘3ª*„šü‰|Ùö9ýP`zàæ»Î§vJK ¯ßß‚ÎÓuËâ¨Ç~÷ H<Ä"EL/0Ûcr¹ãVÒÎFñ¢ë·’(§F9Þöé” “¸BQ±?«XÊkE8©¨µ•ûx‡›íØZlí:ÔÔvá~RRÚÓhF§°îpHrçȰv«îÍ’>ÔOýÜ;Öjó0ôAÀñjíîë+4míÙÖ^†Sû¹Ê_梦áFmL ‹[¸âÉ!|k?”yÔuä ñ¹–“šF©hCèÁßé¨õ¹Êy¼—ú–î”ÅÖ”£º¯cãš`›|Gþ=ºƒþëÙ™ç: %DÈéì¢+"ÞêY(ZÒN~‘šègõ¤Þ•k-z·EÅïÈM®Ž{ÊÜ*•î‰fí‡ûg-ùð‘w›ä«9Â!%òwÞtü¸Ø•M³Ë-n®š¢vWÔ¯C;£ÚÈé,ÖÞŽ ©_f¢Ü¦TÕ"¥^P"[ÝmËHwÞøÖ÷ „u7ˆüýähÇ¢¯&À `&¼")œ®Ûº”Ò*ÄÔdmÆ)údýpýíHu}½¶±°•›› Óй†Àšêå(QpZ£âhU¥‡ïqÜ ‰K*”;BïÑÔ0÷s~ÆLú`P  Š®ìKQt*»WD4Í:öF(ú5ïv-`Â{9ËÖÏ‚8LÕe²}ÁHú!¸¸Â¥ 5u}±Àb\ø9ùªAÖ{\O?*ãAEÜŽF`¨\@¨sRÇQ:úQÓ‡”Âà@)Ñ*ã`ÒŠò·bI‘´þ\ÔS‘‹:tÂÉ]rw¼d“AsÒ±uQµqÖÛîX¤íº½öð.[5*•sÕÞ´%ž½KpãÛÛ‡M·ú·N¸Ÿ³Zeé(«"!OÜ Pò,©ogJ™U|35‹å”TÔá£K¿i£èZš½¿¤ËçLI=[ÓµmôhßâVA†Ô¨7R$…HÓR½ÿq퓨tõ]-”¿l×[ºå+×Â6w*Ï›ê[‚B#>¿Xm)š]§Ô#D$×[Ë:ôàprg)>ªyóoRÓÃ¥ßseŸxÅás±X>ok;ýÎQ½ÆûD¦cÁí8¹òBeRªë}nBWÚ֏Л÷˜™#l•¾?“dàÅ»µJb#·G'96û0êU êT£u+¸!€¿êwŒ±Ÿy’©kú[ÕÃj/ˆj‰û䜧ÚÕLA{»›ýòGЖ®åʧ”ìŠìEi þïè¶/ˆRé}N!‚‰E·N¯Ë„×jîÃêœm§.ð«tÏPÖ¼ÅÿPm¬¾§ïÍæ )Ú§@¶í@ª“{Zo½“¿‘/ÐäÛ¨t§Ÿ 0õ°W¾­¦‰æ=ýíKIÌÛ¹Îõ¸¶HHÔ(ü¶¡Éó<¹[éi9É <éOqª{(Éú­ÉíÔöúzõ$Åh5Ã/ÐÎMW HyÓ]JT{EÛ‡,C#AÍÀuÖ\°r ™ ¯îµ ¨/Eþ•ƒ{ÈZ}O…,ДoãËzk+%Õã¾eÆ9Ä“Kò¼í•“*Ÿk¶vÈ=ÊŒ:$äù~É%;í• €/íÞlÆyVÿ‘].ÚVM ³×õ›ðWÜmûÝR~ÍrÿåÏÛn;áoåzßìïÆ~›oöW nþÃ_và X›ëß¼ 7¿êŸYq‹÷O¿ÕsþéòþD½ý·vÃÍÃý­¸ñßÿ½ì¸ýÖ;ä¿‹ní§Ÿýó_üÁýu­º­#Ñ{Ì ì,ÎÒ%_ŽäÃõH)œáÑAtE›rU¿2Jö9€:²;z« תõU#О½ji÷€r±‚ó­¶ÂoT¹ÂF[:•ꆫ¼®žîÚÑ‚áï”y•ûv(ªÙi.C?Áò,÷‘ŠTÄ$õY¾wÞËM†lê߈|+.©†ÕÒøqÛrŽ6ä뻑Ðºš©º£S9âO,6Ž~‹ƒ£½.ÿpÕ•§2¦õd'7Êöù.þ³Q·ÕY:â¦Pá9';œÔŒÚÜÞàlMnø$Òg#µK"æSÜš{FÕÛI 89ÎÏÃx)Ÿ_»ÅùZ”;÷ç =%:äRö[Ú<J–X,mÛ¾3êš@Û¤’ÌKÝ åG½ý­´Ö2z~€gí8¨j©Š†J­›/þ}ÖÍëPå+7þ@¹T§YzÙ¥Ûñ"'§Pn5µ[oêò, %ªè¤ä8 žB‚Š-Q3|ñ¢4íhWèú9#°yú0å¬tq>Mïká8éà“Ôo«vã¿áèIin½´ÛqúÖ{–K¡1Škf¿>=¼¸ÞhÜü«ëÕ)ç•cÕÿÅñ]ì|Uø”#RQgMþ=U„"Òs¿zÖí£vÈ)y®ÐÇ“ºÆ®á‡Ò=ÅŽÄ/·Îöí!æá&yÎM½rþ@PvÐYqQbµVMwB>ÊÆTÁ°¬dwrð4h·^ j%ÁõÛå’*P÷ê{¥-ìßÜ`y|£¯¾XÕU¯w4™O ÛÜOYCYö[!O>`ÇKe;ë^Éó´ù¤¨(|—Câže±¤*?Ž.sMTD½—SY¶¬Ô.O,é׺¦k³ææ`:ÀEêR…²¤ì>Å‘º=Öjúª8rn“]=5¼ûÔ=ÏðcãûµFÕ½ýãg‹xås_." çú)Q‡¥®ÚÉñyºW/hyýdYjÛÍç ät²8UÈù#˜©?v˜Ú.À¤ñ|D}â¾ãi3‡G©«ÏâÌC9§hÃ]{?ÅuÂT>Lo 9>~¬}, \*¥HÿÔìtrµ>­’*ænS¾JÔÈé"6_aUßž»c‘ÜÆ«×ZŒGôúîïcû®›¬žQ®ÔMþ¹ÝŠú:¢_ùJÚpWÞ:N9—q8—–~(©E[Ý”î¯ñË\ÈëwÏÏ!à×$ïÓEV÷Jvçjós¦ ›DÄžŽ)‘Ãïæ¬»kælêØ:2뜔Ë%yMéáênÃÆw$–ªnãÛ•PÓÉ(GÉŠ»ƒ+;Ï­‡²¾ —Ä@:KY—êæº v#›®„랎šyº~RòË‘TEK, ÔÈKãqUþCVW2¥ðùX“bšÜ^®|Òλ.²Óå„óá,`rè C/ÝI—Óµû |2‡"-ºÁ­Õ)‚ç³Ï^ ´ÍÊ1Hü_ʲî÷B EÒvxÔôØ&ŠÄ÷º³FB ^ÖÅ©Ñt=ñšÔ/$ø»6O̹M2ß&®ìc+Rëcä+Mmî#Ó_´ê©ŠÃ(ßo«¦¯ AÓÿBÂßdB]¨^iÿ3¼î,)þ3¿JêlñrÍæžkÒM ©“o~½ê;N·ù¥.œù²?„ÐAfJá»Þ¬O˜Í_>&¾h$¢ƒ˜É\YXºŠw—‚9nSQx2ÄL<ör»Äaë šZˆ u» M·{_5¹Ó§eJGÉÉ„j; ¸õV•ô›ÁžBRH÷Jl÷ Q'ç³lÇ«ÜaßÓ3To­à?RIˆCmbáÌ<›OtDÜÖŒ²yÏ ¾Eî|Ö=q^ÜÛÐøL°Èì™X7¯·¸–üÊ=p#‚lŽýhnq#ŽÏ9­?ä†H°zw°‰ùêJ)85×q\`ª>ü¨Ç¡‚§f¹]Û—*;^ñìtÿOÀ£Dßä’‰–—WUyúzsf·º“¼:‡LEß4mhÁУæ‡FçÌ/Œëæˆ&ñæ¦ÊvýBß+Õ®§k«eP˜öwb¶¡ßÔlä2Yãâíæàísì—åŽ?¶ýo¹ñ®´Üé èôåã½Eü”|ÕäÒ6NÐEÐ~žO¢0¿§ÁŸq¬ÌÛú¢Ìài7¶æâe-ÍT×üôduû®"NÑù‘Hü¶[ù2¢÷ëJ»Íác\ëý»y‘B?UM]‹$êßä"7”îiÀ&a»¬ÍÈjÉ¡âsæuà#þ‹Ê¨D‚÷S±²/=’uíeN¡§ºN¬Te¾›ýbá ÑÍFw—BªY×1”÷&¿*©ƒTAdJoâ¯TnýëäU?nGçîÏã²S²ÃÏn¿lº-t²â%`Òŵ)”Ê«]A Ö‘·6Kª@,WOº»McÞÓVpUQz¼ØßâqlæÀ‹Ý¦_Qô켤ÙÅûØÚWÒsu}_| Gj[Ý8R¸^½þºŽ]¤…(!¾/ŸãS ;»ÍDujºUŽzz)j–°”üÌ\‰|{ 7x K7ç`o.­~ˆâÄmÄg=+J"ål9ðŠ#rû ë¹dÝP«*zœ®¤á§riÃø®³ú˯ ¶Ù«ûLA”"áfªh!£À¨ËC ^Rª¤aí%G›ƒ—í†o8Ççºg1é+8îØÕô²Ö¸tGPb½¯µ˜ÛÚLÜ·S'é¡‘ÀëK@L>·½å<±ÇQavSóMQì‚”‚ ÑíoÝÔ*!=×úCýùÕ¤½¾\çðu@E{çæ¾uwYY«ˆï—bƒR~0ס“¾ÿNÆ…ë…ÏUA¯©N¹²À‰ñ83&ìg*ÊŸãó£ òøøUý‘b/ÛZ]²XÑÞ”N‰ ¶î^–¥â¡³“j¤W”w»˜[ŽßgíÜ-VçPQ›F…®‡d\^ªá“ï»ÜüPµ–?*èq«¢¤¨â.—<¿‹HA TËÓª±E_žœÂ,c¤†ôðçrŠJ*@¾)@W‹ÝKGz ö涪†ª¼à#M©‘8ö\‰V‡ý3]ØGg¸ÄCÅ¢ý)·¢QÞãíO™{ßÈä–ÏJî“ÓIÙ¥®G©uòxƒßãé“’.ã\Ñô!£NtÝ™«¢Ï“9äžã”Np“u\òK²>vã9Ö¾æs~°²šßq&ãkìï7i¾yë¹Û-rºêõºþB€šæèÔdÝέ#«=í«8+ ;HÅ9”ë–óªrÿãÙ.à;CjïQ+‘¯ÈÛNÆ•P‚_òå­£^~'”õ:Šì|!Wí:(vè_½DRœ‰†–°¨ó-íÎÜ\b¥rÕËF§Þ÷UzžGþZE¾d ©-Ã#P`@«­#ÛPU>InÎsÚtžâtn‚ˆPŸwx?Ž|P"gÙÅÉŒ'¿O€—} ’YÖÇCÔßʼþî¥K|ž±ð·Á‹«PF]Š-ÞVv¸Ì‰!÷©ýØîyÝoTÖIÀ»§ê'¥‰9'Naò’²‹º2”²ÛÅ5³RtqйvÛí[\m–5«¼Ò3tôJZìTÊ#¥µ© bÌÿÜÀˆÚRpb5™!zú³gœÐEÑ:Ïþ†®6È ²¢tS5øÀôN @¹V£*Ä+Îê'Mí%#L^ÁæËj§ðÝÜoÉ .Ë5ôûeãŽôLvã6­Ø74êLqkšw .±Z%û¡³ók¡/{4ðååÖ¦ÆP j› ¨ÖCsõÖeÝ¡c¿\þÜÛú\£5à‰kV¡ÊvmWÏÍÍ™oµâÎl²‹¸ø³äJ™ªlOâ“0ü‘FÛXËýÔaCãª<õ;Zeŧ÷%9“æÕ5î§)žõÅ h™Áä}SÆm}!SQ „úzɾôø³ÈÚοoU‡£ÒÜd]„%;RÓ=RÈ(]2ˆçl\2{€{q¯Ëû3zhtèn‹DU6ø„³Ô¢m‘_@ `.¡í›”ta70K¿Mßhéõ”§:D~îj.§ÕVr·î(Tjûˆ+\ г€Wôtl+iñ´£ó v'ÐN’Æ¢[ÐÑТ‹¤Ð•µ¦u¿Ç-c~k#Öd ÞîÂߦ»Êñß¡ºVu¸ùÙ5.*µ‘†é¥ñxTh™¢ŒO<4ÝQ+…N8Ýq >MiææošCÀêQë%OÞ8IO}pc|” n\ÖÜÕ½5ëÚáR¾:)¿wìÔ»®¨]YMe·X÷&ž»Õ¼'“W§ÎAPRwñSöaäœw¤Þêâ%E—{À:š;ŸøÅW’n_ì< 4©¯ÖêUé¬iércÞýÙq½ãða) p—އ¼>ùVÿ˜ª·í£Ì -Ò”rådð yª·âÑ•DNe•EOIº—nnœz.¡Ž[Ê«Â&œÉ'V­°ß«ŽOW£³ÝÛÎ/¡ØÔÑÑgNyÓJù”l{t³3ÅwZW¦V.®Ï¤Þ¡Fq3üYJ+‘9‡ô¼Nª•ƒ¡ìQ FTúo­~{>ŒÓŸÙvw;KNü idìéCÁ©ýÂÒLgíy 6JáþÃ:xM¹é+Ř9ñUÒ.õ5ú4j‡D½<™"\§zzóiRö;>U£jÏÂK+ó¬½ÇÖ[‡Ð£ÂÒýRÝ~vˆ Þ°X½n®*Ìk«*÷?ZD.ý!ݧÑ^˜è0tx$¹@‘mX‘Í´É ^]¦¬O y‘|LóÖö£(E‡nÑEŠã—Ì_'iêÓey=£õ{¨_’ö)΀äuÖM¦•YFªÆ,Ã_Eî|~}]B2WÝáú/ÀËJ& ìb* ¦—ˆ°¤²êK>ÞÄÈ+ TôðÀT<_xÿXªJb 0«oFè|(Ÿ›|1 MÿNåsu„ÔɈº“õÒÒ2è“陸Gä¼gVÁ÷«Ùàø4l{†æ@@O&'"0rÝ«ìjÉŽKËŒeß}†ôF)RmTËÔèÊú‘f/ó,àÆåë@)ýÝ…!åÔ¶uüÆä­½j´–8ŽÜë]›ô^Úá5[¬ÙÂ{¼[› üHêåÙZÓQ1Ú‚à=%û,º³=Ä"úVâpÝŠ–l*u]v=µÇê¥é:S8½¶ß Y‡tÿv·–×#ÿÔ9± aÿ¼sgÝ÷Ñ0çUÉêÖ$Ëæ7ÏR)¼Jnð³ª6—Ë;ŸÕgü£ºV>Gw§³kîÀ ]}™4WO*Q’Ôi§ý¾HøöMùÉ2öCw§üÖX£9O ÜX0Å#!è«¶s4€ž Cƒá¸–’ÚSUÎܾÖg+© ÙS¿Ïðº¥öP+Të0¹„‡L#¨ö-56~G~‚4skœýa6“†uIÁ'C¢1ûà=ÚØ¨RÙç8l{VTëçá'¾»ýü¹Ã”cùA€€=ÌÓ”=L"쵨XÖmK¥UÎM<¾Ÿ¤eZш¤óö€!êÞÚ„G1*ÒhGÇH³.¹Q”Öú¼ *„ʳy•¢ ¦L§uS¡þQýÕÌQò;ï&jýMQ"‹g–¯IÐê”Ãv;d ¦ë¤ >ü§ò#XõDBq¾)¸FyÜC?ö‡`P[º­$Yý\ø/ó:[”ôAÓÅŒ×ôøuùIº¢/ˆãQ¾^*YáAG±mÞÃUtöÕº0:ž ïîÄ$Ž«;Õ`ˆµ5]sø)„Û´ m“49¨¢î傯àT4¡ÙsúºØÁæ;g“Ϣѷ>n Jt´µX6ù.2ö‘Ø2ðW=ÝK dÈÑm¤5|âªçõ=Ô‹Ø…žõ°)R™ùX«ƇüV&F¤~4„¼¬@}•—òq0 e71÷:Ù[³wøŽš«€ÁAü§¯J¿–-xmÝù²ÑW0äÓª/•Hgs¾«XÕk~•ß!Ãn½t[½’©R÷ê^2nÎé<šÚíš[2ë,±Uñ¢.Ò™#¹6Nü¨Ë iÜ8þý»fËm Û¸¡:í/Ü€O%$‡ágц/Kñ¢>œûu÷}QŸýBG:بe)ëóžjvp&^»z *\ )Î7`ØKO?.Råús€«Ê:b`²ªýei0ƒƒXš ®2•xY¬ñ3©î¤Ç»3~½†c¤“BúVeJ}Fµ½zt=ñÍÁe,žj ã4AŸ÷rkïq7÷Òm¯[ø­:˜‰¾î¬Æº»^ëÝB>›+E°ªصÊÉ&^šbçë–€M^—ÅCÁ?NDï­xõz4µ_–AȾòk ®rS­2R6q$AÍ@ô¦)’íÀLWÂó@K‹¾ÏIu¾pk¤Fú9qòYÉ;Q&ȸöJX!ÍD7kË}¬w°Ë¶(Œæµ¶:Ô”Á¦# Ç€fnnÄ$AŽãyä¤{/ñ›(9÷®î‡£Ù¬µð­X&@î±SãFC~â>7z%ê`È«ö]'øåŠä¨Åþ®Lt^ù]8d²*‡e®}Fcä¥iGKµ?®Ð§M$94èk¥%Whâ}$‰:ñ.mKªÙÏq(„£~ì§Ì§÷V{PäÚ6N"†»]f«äØàø«R<æ'Þ}¶Š+ïèÒ; Àrëõ¶ rªÒyXÜŽuQÏòöÓ{»üÀSJí°ÈÜQq¶²© HÄu¢H)]$7Y›³-€æ7ˆ¸o8jÔ*‰UrçvKoH/é*·|*On¿‚wTVkꢹìu»ÁÌ×t|¨jP¡2ÏÆ15‡µ.ÌÏðOPª¤!|©$‚3¡û!U«Ù¬ô¥M@mám\¦ùß­²M"åQsü=¬™®Æ–ÂÜFyOé5‹“xã1£m‘f¨‡J2£D¾ [®‡ZÃùçd%ý„cº¢|´›/¨µn|ܬq’ Œ€I›ì@Ññé‘Fѹ–oÌKßÅg§ 6J¦_O»n´¦ê\¨âZ†%‡F3=MÁå·þÚ#;쾊xðæ5ÇÙ>FP]ÈÎʺǡgÌ²“4BßñðlDÐëS_„W%;Eÿöù!f<Î=Yf¸î:‘ý‹jŸÅÆYz øŠùµü5Í|8ªÑÜoâ:¸˜!†[}«Ç¤ Ù+ ÍiS¨Ôî= Èê!Ù°PûìsÌXoð딪Æ9)\•;ó¬>7ä‚+*º\K™»î×ÒZÑ8Ý­jNÁ)NU}µ${AѸž¯SÝÈÚ jÊ b2_Í-wq¨‚lÓÔ­mâ´1O1›tV»ÜE²#°ì1_]’uѸåDA÷&‘´³:(©€¼5È}Ùê’b¬¸µ9ë¦B=¿ó6Öê È3HùŒ¢ô p#é }?E™f/¶¨¢-ÏkŸ©»­¬‘ó—ÅZ(Ç«:KË¥6°ÊŠ2y–òAÚ!Í!H K˜Éë0N§bBÇxξ2gz#4›Kˆ’Tî®%5â'Ü—  Ëò3g·‰l+Ø@†Àûip}«1C P ŠÜëFàçô÷¾ì¤+ª¤tÅ»Ö&¡Mnr×KÝR‹Paž&¡;]?Æ JXèäFÐã+»é'H䜽¥ubúø†öŠ?Çc*z^9kϺI„²U€²»¤{©¸TÃQÞßÓÝ›}Ü#Ôâ6Ä—”Ž–6°E¢ ¸–p÷‹/³Õí°“¨Dफ ås;÷!”¾õTnÚ´æEEî“ ŠÇQ½8nEÕ8¾XEJa – ñ Uö-ºìrFÏ—pìH޲NŸÍ/Û¡¤w¾y«³Ä¬h+[Qâ}ËwDâ$LûÕ›ZŒü¡ ^à ¥a›µŽHáå+_¢F‘cØÛ6¢ÞÇ`}°"@@Z°€J)ÿ» »?Rimù,… (D6ž´9ô=å>„Åáû~³¿õ›ðWÚaûÝý;ÿ•zˆ×ßûþõ®Ðýc‡í_ÿ—ŸÂo§gCí¿ûùïÿô»?ÿç?Ýѵ›ûú{féÌùÓû‡¿÷ûðGð‹ŸþÛ?þÃ?þ“?ø§ÿëOÿÉŸüÉŸügò/þÕoÿâ_ý§®wýîÏ~ö¹ÎêÇü¯ÿÑ?ù/þá?øé?üÿð¿ùéüüŸýü¿÷‡?ý£õ?ýáüÓ½ö÷]/ùÕ>Ø?ýãöûgÃå_üöùÿìO~þ‹ÉûŸñÇôÓõýãwÿ×ÿðÿôÍŸýãyÖÂþËÿü'÷´þÅÌŸþù?ýÅùíþ£Ÿþå¯þ×þÞ¯þ×ÿô«ÿõ«ÿú‹ÿíÇÿúí?oÇê,5Õ¿`©é·ÓßÿwÖ†þí­ Ÿ~‡·öÏþþÿ‹í¡¿¬õÕŸÝ/úó÷}þt×ëWoþßÞúÝÉCü½_üþ¯þůßñúK¬œýÿöRÙÿù[`ÔŸ~ ¨ø“øð'âñÿõÿiy¨» äÿó`*jUE–Ù?ÿÅÉ£·2aàq‘Z3‡"V­?5÷©£U- œZê® ÷OuM©`4d9vÉüÔ9®IòwkeÉ8ÝT4Q2ìóPb‘›_ebHþ q¡8¸W·b>m#©ÐúDg‚îBt´ï’•ŽW¨ à¿Ê›ßv0AÁ}ùy‡£¢píJ×1VÕÅå§v°9Qø V­ÍÕù’jÙzØÄvÄ >€ÙõmsÊ®²¸Tû Ÿ K|ÛúlŠrJ>êsH^UäÇU+B–YªãûMÍàò{âß7{´Ÿ=Ú׊­Ìü -ŠS¤¹•UZ­R1ƒmù‘{^C±õZì/~<Î.u¨î¢Š®Ó´¨ïèM/Åá>t@^Í;®ԔÆYyzœ©W·V ÆXK:ÀÀtUyb¥ <þ+<¹"I‹HÙŸ:}]G¬Ñµ oNP§žc®—Ì5ª}Ëù9êB¶)á–²““¨±‰ÄyD–[k|É–¿ñKø¬âº¸£!éÝ{Íÿ²@ÉÒR¹˜º=ŒP>nIŒ|¸ùQdoíœõF d}ßþŒ”ceønˆoÙpRµgi:ÑÏRQ’m_U ÔAžÚ1ÉIñ•@öº~³·¨:V"4(×bKˆŒxq«]“È×!©³¤Qž¯¤Ç\ç能µòºŽêF}œ6Þg0Ív¯»ñÊçzlùpË?mµ^*RÙ½Úímu¿ã<Uò½•ªå¨s2Î|LnöàÌrît’½óx©€µÍá+ygÐöEcíëV#7—>ÓΆù€qª°øöÙU]ªfÖù /gäsú]íÉç GeËãji@lâˆ!Ï%Ç)ñû#T³ èѳ.!Ä‹nÓöRÊmH\ûIÝ$ m¤  3Ï+#Öþ+ÿ”åtŽÇfôûž±…çåtŽHaU5G_œ'oÐ ‘¬M½“6!ä§B=¨ýw'Q´j&"‘–'p+Ú¿3{ÖåOú¢x®^ðÜf"¼R«fZ£ì°Krü;®Ä_çß÷åd3:ˆ|<듲o*ȨIµ=&ŽéÜú–àD(_6ïxè|`Âò­U:/(˜rá¦*uLxuÔÞ@K?{j·¹VûjÙ½G´4þ‡º•Ý}=ùƒC¹xFåR ep¦CîI×Ö’"|ÏqxnO¬’4CXuw°jE³ÞÚûmñjt:¼VÓvô>tY#€¬Çæòtµ÷h¤Ùûn=Öýsóÿ%ç­ŒÓG|Ü•ØdemÚ^K#RÄ¥mS>R©<ðV¸ùDƒ?b®ÒÙ*}‘uŠâTuêjjdÂášú\ãlO¨²TlÉgÔ爣BÝàó'Š9†£4ÛCUÒg²\UQjMÎ9[·3ò×Á£KTCÙ=Ê%¸›ÖŸýq½)ëe3ìô\Å9lèÍK9]î"äf}JÑ<<\€ß"Ò¾AGMœtmŠ4‘ÞãÇP{Ý7©´à³4:’èÎa©ªâLR›=Fÿ!+œä1¸¬†B˜zÜ®äcWæZ –ÔÐUÌ¿‰¯“ö!­Pš;(i5óñ•qEq`šnÉ&r„2^ïQl¼»û·ò~ªHƒ{¨O½\@4ÏÇõ¬y/— E®…'÷>Â;dÃ.lâ²æ€„Ï’ó¼NCÞ¬ W¾Ô¯#$7¯ã£ÒáŽéÞ£h¾DGÕÝ[›ðUÕXãÑ’£x—Û¡üN—‹ýêu¿Ÿ£† [Q!ã¡ 0'qÛg^hÚv'P±Ê¾åà ÷µöD$òÛŠ¶u áoØç²zžðD/ÅoÜH®RÔs•ÊSQ8”Dy/Pš4.Ã’03íP¯Èé¾ù‹Z¤U¿ g ˜$õ*íÒ®j¹2#³g‰­Hñ‹ÕiÇì»{O½1qÆš¦½ömÛr –$ðôió©!!ƒ(?&^°á†—£Ï¨Ý†lÏUmvRÝÒ k ¡ „oËÒÅÊõt.Øÿñ¨]ÙœlÛ¨¼¦„Ñ¢Ò°Šè¦¶>Y†g«Ž2B.upKVáf:Õï1¯‡zæXÛ¸œ[,±HUe7Õç!¦RSH-…§z£¢ë¥æ…ú´°€rV' BØ çQAÁæc«è® -o™µ´—„s+Õù„°í.Ø›¦6¬àA ³÷y8ôø¹’wB`¢¦½¤P²¹jÙ ™%s–“üçìÆß½|èy([\Rñþ,¬Ýv´Œ®à²[ipÏÙ´Sœl=’œ†E¸'TP*é/Ö©C×¥xnÛ÷Ù“­QÉ\‹ÿ#ù¦AØêKƒ>4ï,BÑjJR”,÷FÐZŠ‘ø_Ïí™ØY›kø‡F§¢ò¤àÁ[ÚØÇSülÿ¹u;V»vëó{¸O ²?i©•§îÏ#ˆqò>|¢¯Ãz—…Ð/Eªu«óÈñ&m?Z¾Eu[t*RØÐEºˆé0Æ;/ᄎ OÕ f^,ÜåVY&_zÖòX‹cT@kÇ {ÈØ‡*vª’‘›Ú«Ã;ôNc‡AŒÖ=³©9œ|ºBCG'ðn?^ˆ¢•›]+ÕbQ؈ȆòBÊÃÒ˜édÑêuÏAç¬RÓ`éáží6ÕsÓ7¯«©\‡bOYƒªÚõNÒYÂ@_ÅÒš¼Pç¾ò±úØcœ§é¼öêXj÷’MNTuºtÂ:ƒsDÕþ0ßšáh©U ˆž ½tr@zd,«zÔ }m Üe;‚‰RBªï4’ÔÙU•×q{¼(ul¿9جéo.kË¡ÏLVA€ðÞ&ø I˜Ôã'86ÄÖ¹íø!ò*ÇJ¹›b÷@Çn…#+C9Üž?‰V«ž|д¯ÓÂùU¿Ú•EÖßEhP8¤ÜøYdm@œ /²¶x€¬^UqÁHPîà8ƒ.‘Ck:^T]Öÿ“ͳÛÑ#_‡ž0¶'ÇÁf¸ûRйÚÊÖçÀœöE‘køÅÜ:³P›éx)Â}}(>*·ßIé#ÀO$.\§½$UI€ì´Œæ¤<¹&é%ÃÛ:ƒïUò™j|±•a׎ ^*/«nµÇõž^,-¯‚±¸cxëSP{¿^½Æ:LR~K1„Oò‚“€¨”SV6 @MXvÏ­€¥‡D 9Í ÏŠÉ“VxÿUù¦‘ÿ¾-„æ]Ë11;õG¯f,îbB!ZëúúýÆ­œÎ*´-ÄIÒjQ/v Ìoðݶ€ ÕÂîc(ô•¶ßÃ@ƒÄmòFp¨¡L]rõhŸ9+ÆB0ãiN'kŠ·ÚzÌ€IÞ·*6À :œ’ðþ¼6O1®Á{ȼù¤°oòÒ­¥‰–"06ve¸+K6óSH¤>ùœÐ˜ÑÊ+wj—5ïÜQAµÚ©Ô‰Ô£(LLIÇDŒŽ@/–‡îzí•ìx÷ª~§÷s;ï sáŒÿhÓH.æ©éä”ÎNZŽîó«EÇPÖÆic;ºŸÖDëà¶©F»êóZ†ÑÚa%ƒài¶¾†cÜèäÙ_Ö‘o%¯£8¡ÏË#ÍÅ-ÈT¥™Z%4½ØŠtÐ.Ìc0M¦›šÙD,¸ç5Ž Iç+¼è c¨k6õ'KÞ—]`>ÕãŽ9H¡n>|ŠGIfz¬©M»}rƒ¨ÅÓézL´3ñ÷©aۙط•ngÄ7¼~íœ\{jš»óÅAõ¥òlNWbäåÒÐá0–ùÈc²¹D£C£žŠ—n<¿Ú“'Hd©nj–ù¸1 î¥#á y¾° Þ1Ä—¯$‡m<•=õ5ÖT½5õ}Œ‰Å³©ã‘ª;¾ädnVÑøU4#Ul¦ù¼t§!{ƒ8¯m—±öL£Â¸O\š‹k`«­ëæ#·x°#A%²ZA Mi&Ç?›ç¢&@û ˜·àx-G‹w:j*S ÇÙy3va–$ø'0²–iÄÛÊ^:/ÙËa^µ×“¬x;⑦ÃʲŸœ U9·ÃÌ!nek!jèV½ì^=–í#'Q)÷¶Gw›ë¦PO5;:8¬šËL!¢$D½·Só}œŠ†8üm¡¶z5,áYT…eµyW¯àÌ?uQþÓüNÒ¨{ô_ùùŸüòû?üö›õûüùOù÷z!üŸùį¿·Ÿt|þúSJй?¿ÛOúïþøßÿ‹ÿáø½ß|Åùô'õ·ßá7¿ÿò§ß|ú¿òþùgßþBá~>â¿øÿ[¶¥¶ï?}õéû_|þú ¿öù/¿þü ¿õ{Ÿ~ñù»Ÿù~w‡~ùþÓŸ~÷Õ7¶®þðí§/ß|ý³_þÄ àëö«ò!¿øî[~âçÚ|õé¾ýþ‡ß‚OüÕ?ëã:ø³¯~ðoÿ…oúö§üäO¾ýú—ÞÒþÃwøêË7ßúáó_þàßú“ÏŸ~òåû_üì«¿âoóa¿øî˾Œ_~o篯à÷>}÷ùO¿úî'?ûüý÷| ŸíÓùÍ}~ú­»ÿê¿øÙ¶eàãý©__×¾ÿü³ŸþèˆéïïžánŸuÍüC†ÿeoùGÿí^òƒWüßäÿ7y½ÿu/÷ï¾£ßÚÄÿµûù¶_ø0š¦|ûé_}2Æüì«ïþSv ¿ó ÿÃ?ð9¿Óvý£ðŒÃoZ³ÿn0ýû[°ÿ½â¿Ýýa×ñûl½ß‡(~*ü¥;Æ¿ù{þÌÿNçöÂßþÿßüÛÿòGü½ ãÿÙýÛ7H^[íàtl/ƒ]úÓ œà«ûHä:õ)¸áfÇ>]¦XˆójÒÙÖ­œ¯°IQ†ÇQ>ǃֶPOàuEý=zOõx—ÖƒÒƒ¸-Þ¬±0ÕLýPªq”×ÜzžõiõSœz1íöoÓÓ'5÷¢::³‘¹«K€dÇ|mÍj¾MkzT[ñåúT•µŸË rý,Õfέ=OIñVuþ‚ÿj£À9Ÿ÷t»Ïî˜!|Qéy;dØlr¿ºcvÙ²E{kžm^x¬¢öï’ë7Eì{Qì¿ÚÆ¡}-tÜΓ§±ÊrUGÄ3:ë ,êxÃ0aÄãyVüÏ2çî„_ÕµýìÂ;œä†Ì©Sá€éÔâ"O—x‚ÃOÞ "b¨Ó{€Bm—Š ö+ÚRbP€¡DnAÍ´èù‡-Ÿ[Ëä'Τ”æ´ÿWG÷h38œ˜QõH1ñxàÑñ¬éVÛ¨¦¬¼®evç9ó©V!ìRùþ¤¡`ì.3ì_ýº®ãUs|Z5eWÛ÷Ç QÉÆ¹Qgµek žæ–ΧcíWÓL¡ÜJ¡¬œ^›,,üñðîË^åÓ£ýkëAòÚÞgË‹¸Õ˜çöÖ0PÌ#Íœ¼V] یИ‘aiß3oûZϘ4G&2tG%4„N‡Œciz[UûÔ5—%3—α„xJËÎwÕµu?ª= |”M ^÷ûZSR7þrJû½¯û…8wMBØ5vZÙìÞŠ=²5¾wgSÍ­ø‡¦Žæ$–}¸D|{²¡íZ$\Á®Ç´´(±²Yããéé!Î+-™s´ÌND[û¹_µž-ç7l\K>^ÏvxešNgúT*× »Õ©LÇþùÐ÷:«Ã^km¹^{WT¸=›ÍêØéà‹ÁNA¢·ûزs\«j Í›ž^ØpY©wì¨AZRUñQ¤¾õ÷qÜ&™vœùÖ*ùvºÄzæsé ý1¥ËCêÔtÅõìG!¶Å«`Ÿ­wr¦‡^šöÏu¢Ü;<Ó®xøÝGÞSÔ­·[Û®·çòNÓ8¨¥B[yîÃãîšÛT.ãÙ-Lý |‡kCã©5Ml„Þ²æ=•°Tp¦míEç{¬¤ÒÒˆÂ>[(cw¸jØr‘ůÔwIJíã¥?DÍdL2éà÷/‰…„ÞÔì moБ£J·䀃©¦8 cûâΤÈ|á íëžã,±èdê°›Z ó‡ „Šåro^Ãk2÷CTàÂ"°å$ofÍrs?T&Ôµ&8”ßœ²rHItbŸ–E&6GoÊNÏWMý,LRgh32 ÉÁOQuÓ»§%vOŒw fdõl‹ö {g²õ Éãùº¢ëS Ë.d€œ+™—½<:2FùSYÕ§£Þ÷¥ÁîMT¤¹"sÔy”¨â£oÁ†‘S'­ì¡þ¶?è8³ãb€‘Óz07þ˜,oöŸ !B]Q·`zí ‹—gN³òMJ½ØjYúZžXÖà™á}ÛÍ‚ˆ½¥òç’îìÑîäë…üÊMX´²-6ÑÖÀžP“SFå;¸7;›I³žºÕxìÈ›'°Þ’ô#õ{fðD|¾j%ÕòXÈó-¶ +ÇPHŒ§ê&ªsËœtÅ!}b ÔÏ¡,@ÙÝ—Êÿ÷ðXH/º,øâ¦ƒºB6W)õD<ìZˆØJÃï§#)T5ù«zHG¾'HÁeSm‡j™>k«Ö9sh7—^ÙZ¯Z°Ç'iتóŽÇîU»tY\ÝiǼËòÖéIænýšø4Þ?±`eê#w¥g½ï×\ÂQå[•ÑÁøäõ!èÔ-uØ€ŽØ€ôùhÃ[_ &>‰ Ú yŽOäõ<ÛoŽ¥¯É˜¹˜ÈbƒÈ%ð /ôoF⹆x<¤òš— /žTL{3d%Ét^ *ç¾ÏAj—æ4'†`-¶Öߘ³)/|Qá¨àÒ=ÄGi»|¨¤`ùÈ[PuíÇ[ø^Îãñj×pÏ~r:Dñö3<Îê½êÁ“ ÈÎ=jKò´=ºÚrZôWtå:}›µo”ìɰyï5}gSæ| šç…±ã²¹(嬒~Šsu`¹J6ü\l:V"+ ’Ñ$)F'a/Ou¯„ k~ÈFFøÅÚv4píËËí°”‚1¤§¨ã®³³ÇÜs‹^f…«ƒ³+äi¿>UìæG1d^ öPQ\?Ã$ Ôy‰tI2:iÁ3ÍLz2ò’´[ÙUQSùžºØœÇ$õ·Ùd‘$Ûzɳãýa 8ÇP@|8—S»/wrïÛ^}6Ø'Ï Îz7» ¬¯ „Výá;RyF=ôבz=z)qÉÉ€)g× ?ÀšN ?}7á×T‹Õ~ug^‰ÂúbÅ*¸°/_ôh¡Þ‰–¶ûÛd’oÁàŠ#)PTÛœ2g¼P9ïõÓ)¦u)‰xÂÙD5^«²îÁ¥eçÇá}UGŒáöžãÙ rR›ày£³©ßuk‡÷:Gz¹Sûœ,$–^{/­Üd,Á›Óa6MòÉ25EðZÐjHã Ï·¯ó£³íd!¡uÑ5O´E‚ÜÆñ]Fµ¢¹wØøôPY"½G‚Þ?½óÎpªE£ Ž}!ÐÑÛ%XyŠIYG 50éq#/°i¨a·47 iªÓMûzYŤ×:àóóÉu'ÖD$Ôqm·šgöUM]𢙉 ¡ÊðRR²í¶,v:fú-Vª¼‡€J ˆ¼Ú>sËy’Ù¶*°‹…Uà¡;xŽçE [‘%ñ½ÚTí±›l ÞáC¸-¼s¶j;,þL…“°‘¢’ª&V6-š^[[ÎG¹N}l– â½9žà¬ùåÀ¨’„lr2›“î„}b‹®s–sÙ'ïçԨͦäàL"AŸeËíµ[}jv+é-²zÔ%“ª«C ä-vãVöâp(üÒC£®Ý#mÇkçŠáUúaiˆˆ€êNqt;W_;Ÿap[¿ŽÂ;N$Ú{æÜF©Ç\ãÂf¯µµs:Ë9ªü8T`j»yØ|•–M_¬ŸèÝOðwmïÑT]2Ÿú…tϼo‹<“©.®Š×7×®êÜ©ú¦¾$Ûâ"c@ë;Bt}í9Ú€.¢ ô¤ß8mO»nE³^Q¤Oã¥ÒûGýÀÒ‡-ϼ:‡¢ëXƒxàdV R¤.Hìð¶&œÈ€¬þô¡€2½ÑmCä㪿/À]d’d 1Œ¸»ìXKúYA›‚óQ‡-y6Šv{äO¶ è”xÌû«ˆ]+"ÜËú׳K½v¦¯>€8³’³í]K[Y)‘¤‡:±oOGð€ù6hŸ§¢Sé Þ‰õ·–é ÙùЗ€Ó-.X^î*bªu 3t\÷‰ç}œ$§I³•ý©òöD{î!å¬ ›zf–É`%ÚAž¢óMEP.â£óÄô Ö$»ÖäÅ»y´Ø¹ýîèê€C¨S³º^¨ÒòrÆvV»JuP ݸ;Ps•ÏØV-oU󢕵º•]mZÌÎÍskŽ wEeÉLii: JÇ{ƒ8ª‚YÃQÝ¡Â*/~é2T··}õN:ó°5NÅháÁU«gvtƒxê%©’ùSXrË9=¥•Iß0?näµõTx&לôxÓÔ|‚ X.Áh5knt-ЫbékÛï·¡–ЧaR¸š!ÔÉ:þîáÌTˆü&oômåbÅþníßn½j²‡cßRgE¿[VÊœØ9/ ×ÊÈbn!"à°Ù”É-ðOBŒÂŒƒ'|Z_˜»]´„ȺíÅ"ùXºªÖ­Uµ¢»®^¥‡vÎæ]:Ò-uA‡óœ6¨à÷AòQi“]‰mƒ`­d=þãL?ˆS­½ª?޾ÄZ:la]Àõ(¶é âOs0¦;iÅ#¿zR È ÅËwù6t«hý`KêÑ»Aá6áé=ƒoãÖï´‡ÂC(@êQ´À:ƒV „ ×ÿî…;Gå ­¨° Ál¢›gðšÎþubÑ:°°hòuèÃÒ3ÿbñêæB–¸tq{ wèð¥và <öZgCOçÀ¾j3œ04– ˆÖ¦9;&[´+RŠ?¨ƒ»’EŠª°f~¾fÑß9$Ûi 儺¤}%Ø.8-¾GÊòžsF…5ÙèÄðÕšJ†ÎÝï5tŠmÑeax ¢0O&;ù~éÓÑlýž¶zÛÙ¦÷±¨öÔŸè`Ä;á^—0~özkaµ,VÀ³£N ì„T.n!jüºÕ\§®J‘ÿjSÛ0ìKŽ:m6ÒHÀÚKTçµ.íâ¸ÊtØf©®=CÏ#qè¤z~X{`‘h²L®^·²$à2Ãh–ìÇa­ùžJ÷Æ[IÐgjdóéÔ»ämÕaS¢™§ CóF8í²‰.MòÊónã솫k^w¢©ïàÕ‘•‚Üâ8^­pÈ)z±Á`®Uá…ôúÄb1ÑïµÆÎekåE ‘GÓõìlÛ3Äz#—RklQv§â>lxO Æ×Ý€DDVxGPZ)ë-‘›˜]xäe¡>kË­f¶ú™Z}-Ê£2éLžš°&¯_fyo¹íÊRáÈ"cgÃ#¹ã! ’¥†Ä¢Å"×[—T½9[Ü7ró8CL]8×ÛÁs‘”ë ]ͳYMªpoÿâ¼K글{€ÓVàÕ®¿$ëã}Ü»„õµ¤Tß6uÎWß‹Êm£²Gâ À$^åVaí/ºzÑXÙáäp“-âL›?Ou7¡¶me@Qzx6Ùb£fYNŠÜ:1¬Dûíw‹§g…¼z¬€Ï¾Pg †{$ÕÙn|rÒ6ÂâµR3ÊÒõhÌà¼V$n{¨:uÕNŽ´Cä$B»¢‡7—µÂKŸ¼È»QÊ ð§l¶ÊlZ@ ÜÉá wòž´e¿¢îTÙNÍdžmb0œ[cÇ•ù"wi‡jp.¯{4t*vzç4»Z›ñfÞãV@!Ç6U$õ'Uö«gš t°^gž§%åä‰`ü‹~ ÚËCê¢Uǘ ˹§×®ñ¶ Bd&¢MΧêËÄg²é9Úàß;PQu <‚ 2jhè¥þÒ\W„áâ¹<ÙXÕ3¼Ú‘'%û|ާC¼ûèÍÍOŸÛb F¹,Ãñ“`g5ùškæý)P§±Vx4g±¿ä=9_QŽ êÎf-Ú‹¯Ò·ÄþR­wmœâ ϽÁÓàKÌ|œ'[¢Rg­ZÜ ÜY¦ú€"†¥À¦IBrؘÜÌÇ‚“²Fª÷÷ã9[xXX@ùwŸcEm€h–4§“õ`µ[µ]ðyvÎpª¡Ä %DÌ£òú¥O¸zªéÒ£ÐXìÕ=‘_Q•qÉi®@ÎH:Ý:²ëé@ ïýÂ[šÒ4¬·té@åHjSÓJ¡(­‚•R6ܧrL2 øRIlÀ‹Í nvâù»[:^!eÉUƒw þgg~ç´öÍÛ3½·eá â!)‘ñÈØã«[qÒ ¨×fïrÃyW÷é£Àt,dà£ý·‹ÒV"%u`9LÃïÉ&!79ÙøhxÃ?`ÕhôTgi¶²]dÏìâ„“Q¡¹Û_C¯NMYôÏ×++iæD \ùtÜÚþ¶}æMïŸ$N*v«þìQÃE!´îÒ¥{orc•¢ºÄκ’ij›¹æzYѸp³mÒÔÝPn¸•JÐ1Òë 6É´~>·+X…Œå™øEUˆ§ík‹Þ9*-0€ßàD˜¸Ž§Æ‚I«LQaçåÀhõ|C3ÐHA !FË †.JðÄóËG_år[­ã,Û›äÇá%¦·f9’ž›n‘«™¨˜£YÊZx´ʉxCÈ ÖìÐ:ã6%z­+ó»Î ×uMé°ÖG–óã4F)c®_ÝÒ²îÚMÓz{¸:éw(1ªN÷Ôù3o;[û°È€·ngåÈŒjA¤¾ÜKÈîuQ:i åM¡Á#G§gƒ`yòªrÀì0h÷3wYìÕ4§j|¹5ijä¦ç?eéÎ]9y8ÝVš S‚­®Êt°øß­z+{b•<¾€šÄÂWâO^$ ­¤—úæÉÎ1Íñश[è—¡®`8 ]!Ž$Ðm¥Ñz;+Ñʉô¢ÍEpˆØ8Od š!.Íßl‰©r秦 1—¯`Û^ݧµ0èk‘Ÿ‡ßÊ´ªûRœˆ|nâ½¢UàÕîîYÏ5Cƒ¬€T—jРòv.í ‡{ñ]ÔÒåg­.âÔv6NömEQ™6`JŸ,‡µU€uN„ïñòiYÎ!õ{Ï;ŸZ)TÛ ÄHM#yŠ#¿ìÞå9=kŸÿ%I_Ì'GÖœŒ×ÙUØl7’g‹úœF+ìfSÂHV=¯Ñ´Ðô*\Nî dTt·n\EnÎ鲜a³ƒ¿f \dÚk\ê³N=Ø^áëEVÂ^©Hdå°‹Ye¤G7b‡,Yu\÷þÖíx®[*‡Ø¡È‘ñ8—L^Ьz«Ïq‹¤s­x£’OjQ8 =µª|ÍæLõnmžÎ=.xe²³Z )¬Kmj²(\¸'•¦FMžK±ô’×*˜²xkä»ð¤ÇêwL̈ í«z<ë8È]$µ »“E(§2ÿBˆ:ñ§ƒ ¨àÂ>2h’[:‘—…ÂlrÍd7§ÜYÑ7+¸m·BN𒝽%ÛN=U)E@@@¸(ÿã0¿àÜ´b *+.¢ÄípèÎëGh»º=—Ýèªì§‡Ð×p8Ãu«è­øŠÚõ98‹Íßfº~Ȩ–Ñ­=´ìãvèéN|ðø¤¿džûa…IfÍ䃉 z9Yýxä¢eyL9êo7¸á ñ¼«£Üú©xõ<bƒÓeÛ¹“ú.Èyx´MºÏèù¶£vn+™=Є*Åh{™ÊÕE®×²—nÐ}[wgeñT­F6«7ÀÀcUGcÈKBí­Ÿ½%صB<—•vÛž­MF}ԗ脬™ÍÉjúA·ic€Ë¨?<x” ¯6 h¸gËð«qüਛÔ~Ù´¾€Aiöghf =¤Âø?ü¿NîÈ’–cäÑLj &RËa¥‚ ÚHÍ0ý¤ <@ñ<Þëío6ݲaJ:‚·mV´!†„êùËaC ±’åéQF€û{žó,ž"òð]ÆÏ™ËË$³“Ár¸`S*È ÷õS?§|ÆÈkJveá¡&ǺãÅímãîá¡ánN‚yÀÛHñv´ˆ= "#/ñú¯l‹{²SÁý¯2îãIelÍî¢`%äPÄsÌ[¦õˆUÕ…Ó¨Q´Ëö¸xdp@ÃIt¼h(Ð ç je8o~ŽtdÖŽ* E¨üï¸Ý¡îé!(Kˆt¡V§nTð°êa›úoÙÖèñas> ŸiJI“@ë¼¹=¡tbeBW¡hŠuÂûÞ¦[=Œ­öϘcÜvõÊ;,UO΢$‘ÆDÉsX÷'†M $.Ò¶­6¦\ü&Ðùx¢#b¼2µOuÑá8ܲ’yÇÜÖ Ü埬[qóñ»„«Z¬ º [ CTî: XÌsóúºGz4ß^?Ú®Ê8[‚ TTɰ=4±öTGóT;g—7½Ãw!‚KÔçOÓ-²,‡an¢®­…äÊG¼uæƒì<³ì[ªP°µroÝ8E‚´9F;R(€]¡Q38Ö¾NYE$u<c]½š¦ófí¢ôÒ¼Æ BKT}óHi$î“:þ·pŸ•n—¹½1$>ЧÜuÖ¥>ÊŸ«£aûº–t0¶iƒÿµõ£ÊsðhÞ*¢r@¨–¾Œ$Þ­yMÑÒz>À¯ÅÒÖ:ëöÍÞ·:øAò"~íÒYê\Ô«È«ø’E7f¿„Ñ_BVýU¼œqèNB õ9ð„.FÅÑköxÈC㛌¦b)Ë6èkl“£­z«yvèýbVØÁ·ÖôõîOòè¦X½&bß2éOkÛÚòG%¡‘ÞŽaÿÞCG·îzú;7»Ö-“@7Ù¿ÔÎ',;ïíQ^ÁÁûð:œ®Òx<ÀÚÐòäOÀÛîzT‚>U9,ƺÎë:ð”ÒœíPµÒö‘$JÔ®Sé>Ry³²ks I“ød` úÂ[’޾@Û¥iåá=_áÙ¨ձ-  õö7ûF/Ð~Þ>ÏôgÇUµàË»lñ¯$Wû v9°øiÆéÜÑœÄ'V*© Ù­[±•ÄÔ4Iñ9Ë‹¼'P$žšÆ»Õ\e×¶äÕ«PÜãpñö\ úl%=› RV ÔK‹²zU©H§¨Çˆy7=¶¢ò’$+V…dŽ(­[d@ðôà¹5Xßë0lã ä¡õžj ðh±CÔH®¬ðåÐ@‘-_ÇŽ3 ŽîÊO ‰iœÄ­ëÚ˜²O½uùÖq]E×þA¥aÏN›ÝByÓkÛu±/Î yjV»uݶ£ìâ ݇"­¼viÓ‡ÐëNë›r~Š.QЫK<ÍbÝÅn^(x[‡…ºp-–»jSé®v;+(j÷ÅM¾9%EîÊ­Añv"â èÈçqƒ›5 µ›i9}ÇÛÕ‚¸ØÌdÃ í¢ž\=Êij§"kà¡õ­Ï#í3"0¸‰@Dd#„sC!Žä{¤ÉWqK^“nE”‹r„|jõìÝæN^üÍõÍá±TëÖ„mZåªu¤é мHU L…T¹‚™ÁÓîPèå$‚±7 #†©ÙD^³zŒê}9ý•#[9ÃûÅÛ_‚ç“m†»W3 1yòÚ='“MîH 1ßÉ<íükÓi¢œÏÓ, &ˆT©}.hÚLP…ö¢žÂñÿ^2lU•3à‘Œg— ç´¿¼Mp,TabÝÁ6à´ÓC<àÝ©ž(¬ùÉÎ„äˆ aÆ„‡©¬@îÀRaÝ£æz:úðÜŠˆ·Þ‹àRÏ´×íQ¶çÛÈÕn¬Ú›íEqùZ£LPüYdž˜“WT e ÔÔ¼‚ÖíbñЋ›±Ê/ òmWð¤FÒ0WPÕÇ£Ó >)Î'¯I[“Z0•ïƒO†v IýxÔÔÈï(Jgæ×øfST0®4{Ìþïë|âkóSïrßñÐp¹@ªv6O»=2ôÖ™ IÐñ¥;'^6ÿí"ù†'S±æ¡Ó¶cjMÕˆa0|4pÙçúܺ©¥a/ž%wÅçÛ¦ùpÛîŠþ¼P‰Ã±pÍp6)›rpÓ¾V)OçƒøÔVÀJ&r¥õ=T_‡'jžŒ4¹£mðûÞ^5±’O@óÔ":3ï±ì æ L«¡c:’AžL@$ ަy®”Ô8AÐwÐáó”bã!’åx9ÂNzëQý'G ôF:]ÏÈ 6xò*·*#VÄ€ ªXêZ MR€*ÖPNG=/êtÌêãŒ]õæûâ)ܺ?ÂÌ y©à]»g†äf²EžD•F.:4‡¿ŠmjS¨:rï.yà;ìðèM18 ;Yi%!Š“p|IwZö) Í®Ö(G¶„ë`qXGÍíq6d6·66¡ƒ HbvðdÔ­˜—UH’¨QÕf Þ¿'¥3¨j_¤® *ø ëž“ÔFòßL+¥]³rz(罉Š*Ù½ˆTmìúW‡åÔx6z|¶ãÑåglƒfÌvú%1:Ö¨ƒý˶·µ÷xöT¾>RUƒìKÓ­8Z³=YSÏc¼õø‡â ‚h¥ANz õ¬)$C…$‰ÇÁï±}léZ¤S er¾˜›„˜* ìUþÕS!– Y°d½DTš,ñH/Ÿ‚d¹>ÙRnh™Ù¶Zé(ò˜¡ét:m*còN„ª Õ÷fWõ‰vÄïý¶tIµ .ï2CÒPÆd{k¿ÓÙsyØ®Ú ±¡í)àO/Iû©¾àú±o3 1Èé pÚ¶2gE»UfçTúQqk÷k|¹Ò–o}+§—‰µPDå7À·Ð¡¹ýÖ¡ÒZ/cb :øñV>P1à‹éëÒªñDÿÒöá™À×Ê£Ò›†­ï´üylaQb(‰°ìâé½mö⫃jß"§©À ,+‘Â—Í ·žêðà !¶PêÙR>üp=ƒÔ@«ØKÙL€_ CÚBCÃ6~ocªÏñ<{q¨Š7M℘²(ˆîŽåU2­Yä6¶µ;Èy]ò´ë2érÊÆÏcIüTV»^eø¢§wê­f{ÛÕ6ˆÐB÷¡ðììØ"Cì%Y…þ ¦IÛ'TÃSC•بtAAo½¹µg êþô¡—Ø­¹¤e½KR¡N œÝ®À¹e ºqv¸'ÉSÔ¢J‚"s–Â.ÍzÔÕ4Šfí 'nègQ1[Û˱Øçf'§žÁfçqØWÇ3w»‹NBÎÖ”!­bR~ÌSfëþ['¬­ Á nôÊ»jvDý¶ÔkðpéäõLVÔR¼ˆdgÿÑÓfÓ=³AyZÏóŸdAê‡öSY¨¸®jÚÂñ®ç$—žù°‡ ïÐýx« }ö¤n³ñg4v£€ tÚÇÊ*òlÚŽõn¼ÿw5‘ø•lƒî©Œ1ÀN=ˆç}Uhb;ÇþX—ÒNk)ÔÌ‚í'ëàÉçñ\v0ÙžëN*“à–Æ&ÒŠ‡ä*êÆü©âô»÷qÅ,a+Üâô4 ",;Ç`{‡sís‹ÁP²{ÝéI)qJŽâÔ‡…¤ªtU²™¸s aæãÄà¡1?T ÄÓvq.¸®ñ $€”J½Šõ¸RyÇöê5"Fg;;Ʀ,Aa.[ÁxQµ~Y¿8\cT…â´Öâ·#8tèú\«5Žtƒ€Ô@ÞŠ„v‘E=n €™¾¥‡Û~Oe°½êO¥0Aª65O[–ì¥'}ÙMz«iƒ@Öì´Þ¯ý!&Aòä±)O½m;·2¦P9Êw41·¡÷Ò:÷…eöà`ß2(AÒ.Ô¡þ.Ÿsd]hóÛyCö†x.‘Å­ìJ&ô‚Ñ"n<¼‹»ªÚ!cK<ØNô+·{oTvòí¸e‡TmñÎÙžyÆËK²¥“ÌÒ)·ëà¼l%Ö¡ž@Û[×ÓÖxcL€Ìiãõ¾€ªî\P¥öb—û†õük¸/;Uú£l@<0¿Vä·ïù$è¬Ô´—?h³÷uÈõšg•ÄQ»Õ'ìöÛ³ˆ]í¼â­G7/»U™ ã®TB«ºúÖÎpƒ«%åÜ·“–ñ@WV{ <¸uäc×B“ÝK•ü q÷á0¶š¼Kß2Bé3,È7-x` +Hp/"±MQNÉÙ$õ“Ôçb)Ûä!±™·-V¿5«U¡ïö^ÞV¡‡RM—CÕ ¦©#NWS|À[᮹=½—϶©¦UdÐ9PévF \¯æË à×üñàøÑ»Ž£ëÅ®27îÃë ôä;ŽJZë$^°´•ºµÕ“‹²Ï°UÍ{O<Å®ÛxTŠw‚&ÏàY¾&§ªjy ²T)ÈçóÚ~“=5Ì©­èY<ÑÑæÀO律l>7K+Êù–3éÙí¯ŸœêÞÄÀ­žšÀÍm”g (JJå:ôO¾`ctó·³ k# ° XrHÇm•öU ‹@¿_]Imh4ÆËU1~¹C}bûº^Íü€8§ýp¯_ocÕy²\õ˜žÃãu޾‚Á!l×wt‰pÞXÚCIvãT“,1´¸®ê÷*ÆxuÅ™ÎÛ8éœY%@„}îMäæ#é:O ãu[½ ÀZðÔàjwÖ”YÌ@œM¶"ÝÛ."j›†Ì:Í ’ªJÉjÔªž#/Ýy[J«j§mÖ `›ž]N<¤é¥g`KÒQÓ9EÇ4Ö×»mÏÓú-ÿÜ¡I™ ûÀ€`á79ñ¥cMŠ´œÀ°pÛÝûÑJŒÍ àïÀãS Fâ§1é”n©–8þŸN¾NóH•2@ë $\Y³“EYO%¦%0NwÓò­huÒâyíXï6ŠBÿÏá<”µ£·ÚTmg«ìeÝ„K`¥U×ïñèß«,½"oü2Þc)œ÷xR­Ô4A¥8Ì=r,<ʤ‚"ï™à Òn¯Ö,>,úž¿žÕiôÇ[ù¡•ꩼÞ²;A‰i»;B?É‘yÏÈú€Ü÷$Ra 6(¾œö0°9¶~†Úûzu{(£¸¢·×êÛüó‚³ðù@' AUÒ[Ùð­_\"Š×–>‡‚sØëBázèÀn"NNÚžŽV8¦ºý0{?c¶:ÑÁ¯'Þ>ià´D|¼ÜQ©–cñòáp$śĶº–­,âUÏ<¹ÜŪ³Ø–d%J+peÏo>ƪüѺXii¢ÍÛRxÏp\·¶ä ×®]åÝjmµÝú¼´J×ܱß×:4|Ü͵¥ñ5¦];P0|ߺ–J9ݶ©Ò¬eõ¹â©êA‡3O àÈÐ}Ûìß5Ä-*LòcPV1_+óžmÊ9Ê«{î«¶vÖ]ö>a׎&î9ƒWhXJðä,fÑS]©_©ªì9Ék͈ӒGÜÀp)òøÖë vׯsØ\¦ìBÑ£ìì „ -°9õz›ø¼‡UƦ–ûÍľ Ô)A%xU©¬Ì$;ÈÜnΫoe“÷ˆë-Ù›Khyü G;Ý1J^|_›f"¼zÈàúò ¦ ×ð¹>!§çUz„©oc“cX·$¯‘Ô6„ÛÛ&bE}ló¾fæ)ï=bckĶèk÷oXv³ÓxÜœCìCa#RÀV! ²©Óýꄳ cµ;‘%ó¸Ï`Ÿ?Aá&›»»„زøU¯$×­ÛøÜk¨ŠîÞ=z%B®€®Õ“¹:;£<.G:ÇR #| œ V“–ÑÕßûÚù¿ªí~Ý2ÏŽ¦+>a‡\q(d:æp¶"ÁŽŠ½‹$«'v¸TÇ€ý[Œª¤´µ…­±f2|S—Åï®#³ÁdïÎ;;ëvsóïuN*·­ JžL4°×{vÇúžÃe_ÚË‹*]±:ÈÜAGØáá«jÄD~å•âØ’w!X#S;¬.Æ~ŒÃpÂðºU¾ -è»ÇÇ È —dYA/hmí %£ËqˆŸª™{ Á×*¯[ÍQ&õäˆɡX¹5`Ü]ÿÀX­t6”¨¥aÑ48 OLp³‹ýßÁd°Â¥°ñò3ÉÛ å¢ü”‰öÖJýT¶!BîCu¯3©&ú‹R ú|C÷àÆ: ÏÂz/ÓÁ´Úèª/@9œöRj;•©óµÚ)JF7eSNÍæís9;q3’Ú§Dÿé6ä{q@ƒCéÔ©à4èjxîv:cáöWÿ‘D³Sé½>ÛÕÆ3ŽãÎ$õ÷¨ò­#HgÝîëô|gÔ´a÷™²’^g°"VÕfÑûHog°œçBv)u;=ee C¶hA[óìèĜچükçIà/^ª%VäèHIÏ¢iËïæ0SKrPËSÑ<íñyú¾’£áÎvk£{«)›·÷˦º˜ìY!!z˜4“%XÞ­£àÿÑ;œZãz\™K }øºý“p6³Å2>̼õ鬔8Ú>YRoÔ†"øÆYÛr»íœ`g½A±BháÚ6@Ñ£.!VÐÈñµÛñtÁAhj@x@ÙÁVâ—Ml"‡Õj#€:»T‰ýõfÝ«<ö(†:¦´`ÂK ζ§WK™©2ýþ•ã3ÿ´ mÆ|¸ˆ”L 욌ޫĽÚk¼³ÃΙÇÇM”á†_)^܎ɉœBö u—iÜ2–VŠ) fk æ° iOPìq¨7L¡ìïûr.m:œmƒókç®ââ²Î“4U±ÜÍ€ƒ¼„+éA`8]¶0³ao{‚lÚ¢[‹Ë:³ßúžó×G)—¶]´ªç+·ŠjP ï*jöì¢Ò ™à˼"ØA°¶'¶¦Mè^•0€ éSÔv*†ôD` vƒauè‚J5uçat8— ,ņMä2P][,µ6.WÔ¯ ʆksão½¨¹NàþSL×­î<Àƒ¼n£·íã ¿Ôì…šj¦êåH¶nZž³.ÛxPÝAVY=Ž=g*Bå<ѼiðEÖªZÐß±[×ì×wÔN%{Ü]?N†’¥¡BÊWk¸¨ö}m >¦Ûx  ‚¡mVçQôÊ…–+5ÏùA špØôe£]LúÈ&·‹¯©Èœ†Š[émù]Ϫ«›Ðâ´~TºŠØ dölÇ‚|+öM‰–™ÇqÖCç(Ò!ø±…ÓFÒZV*“h­…TLpR÷-r¥¢bî4™“y¢èBñUC±maØ<ªbÇ4 ¨½MlëùÉvG²*„ÄZ”§<ò䨯&|Û1B]°dzwÞcª¼H–ÝoÀ;cy5£ÃªYn .Ø_0I–'¹Ë„ÐÚˆãX²rÖ oç®Ùšl®æ-m(.¿Ê«vÊ^½Pµ=œÿú–çzfûD¤vÜ[W† ·É쒞ͱ=õã‹-®®T’* ÜüÑ–÷_^VÒ®]7ÙŒ<¬*¥Íí€ìŸ>5SWa£³I«0™×R»GeʼÛê«™X0(Ù—gß|Rå,uåË’ÒÙ€±¡lŽ#ÂUØ‚* 6=ŠÔõöEÞd® N^ƒvu «€ì³í¾œr âñö‰HgÙ1,C&.ktZÓ@ây»ËÁÅœ”<ù gÇß:…€¹fµ7Mræþ’¶‘ƒò?ɼw©´8H3«ìR´ !x/g9RÍuÂ€Ž ¤°¹¶2£‡ :M稦cÈãÚrL 0²ƒc²<å3i»xe>§êÜ[|LA¶ª–&Ù³fÕ 4=w"gs;ܺcs¦–üÆo*[ÅQùTÛµ%ŒjJmVõÍË6Õùá]) Å[ZرfÛQ­hEýaØ9„§†ò9ÄœŸ¤·†}ºoõ‹èÀ'ÿ4;« HÏQ*³µL9ùbæŠRYÞ £¯]$Ó6Hózœ¹²›%²ú$zN‹Eß%•¦Õß9R²[í@~à,j MsBµuûx\þcååT^À ŸuØ]š:æaæˆN'hL· ÞHмGÇñAïÀNà¶¿ŒÜ§›€Í\78úuòó¸Xa¹9£3mEÝýÙ6ËŸ¯ó E n5Ôs¦¸-×BèPÌQÌR¾³ês؛¸,BNH*€<’»¡ž{>ÃJ±nG/ÈŽñ:ûoõmqÃOQuŸÖÝ~õh×å¹]ëö³fŸ§Ä# %àsÀÄ›<%1VºWõ BU¯Á¼Èœr†È:ÔF‹$Bæá³Žª‘"1°ÚíÜGRžö±Vޏ,ýͺ?â´ÇÚr_Žšv[)¼&[×õäH)²ë%IâƒH¿MÔ¢!.³k4émÚ»Iìô09Â,¬õ¦¾òðèk9„mUÈdm^šíÁNa²˜<{×ÞѶLÜzŠ ®¶˜æ qã¸\§nœ£ÔäIhÜéjʇ#¾ OkjQrس§ÈBÚ²°åˆŠàªã0]B¾ËµÕn Àê8=©%tqßÎŒz4¯Þ*¯ð®UɛӢ¿– 8m®;=„Ë{”ñd/É}¸‚W§TG‹mé¯êÿĘ”y&¯Ëwj‚)f[N©/Ÿ²x°ú£„µáäÇ/}^n¯è@¦Å‚ÞEC¥ÝëC bWóØå`ÑÌÎPØû£`^·.š­ì¯»¡êÊæ¨NØO-Ç6l™ÒÒÒ¦’ÉÉÇã¶£G.3h’’ÃE0ª¥/•^7áan;!¯n›V3ÉÑΪC£ v+Á¸mK¤C)‚ìG¢ï‰ˆöE·ÎKÑrÉŽL=0<7GŽ/ñ²o®&aÁR¦=߯«{}H“®ÊŽØ“M°¤á(å VÛzm9';Ae{IëŸáI­jÎÔ©OõlX¿G–²}ÏÏìÊ™X¯&UܪTÉ‹ ¿j}UÃþ:«•€%‘t>²,^yœÎþgJÅ÷dP)i}®«áÙ Z1­V]†ªö6öò»ŒþR£<Öź"_Îÿ{‰Ù™ež&[|«š½:HÞË>«bpæ¢r[>ôhþs/åÈ„ Ž×^ÖBLÆ˜Í Õ¼žêz`À‹æx1Qç˜KjêÑû¬Cþkšð:,ö³WË.À ./û.r-KŽÀG|:œ0«P>OnSÞ"x[‹öršìÔ÷“øÉâó¸Õ›x•î²Âì)ÿy,¡ç&Ü!HÛæ•íôQÖA™FØýmªªë¤U5\@\d¡¨“è­ìÿ«CZ'e Ò£+ÓšÙ*6;Ké8]Îۻǧ2lBh2Ac7²Ú^Í\ ?lR}R]ž +†©Ö6Ÿt7­O‚Öo¢îíŠ —³÷¯>2K§]³§÷—Æd—êV~–j¢d—©LZ5 °’=ñÈAJW­d‰˜OeÝÎi¿’µË :€Ýöðk«n<ÊÍCå’£rü4©º1ø‡WDÊ Áðk‡]" Ó ½šQ]$u¸û#•7cG;ÖÒR[x«Ç¯¤êË+íðt5—ÍgòrKMT¥nºâÐ|.fúÜU]Ô¦^¸b1ŽØˆÔ–¶l2mu“XD‰³hâÆ½¿Žþ*MÊxᔈã­Ä°¶ÃhÃv¾@Ð"4-y âÀÝAÔÍž|«\`ž¾Ú…Žäcìb¹ù0áÿ—VQ,—ªN ˆÌBŠyíÁѯ C(a£mæ¬^½ŒC°^…§±ìt›©;^=º6ƒkKÆ;ìÉ~Óqp2$îÏûÖ4˜µV}ýËõø:P=,Ñ{pÄ×.ÏÚ·Sý¶‚1š,}ØŸía|W7éj@ã»Áþö;²løùìFgP‹©}XÎQ¤YE}Ç[–ZÂj8XMr¦µ6Paåp ]­20üny„¨BºE&½ Þ`£'ÑžOmÆôóŽÎœ+…âmÃéXl׃8,Émµõ"¸qXU¿.‰ŒÀgÇߢäÝçk»=õà«*9Ôˉ­\Õî M—µ:)Ša-ãˆîÊ-uXUã`(s¶úÔN†bEÑ¢êÙµThKqLóéŠTT/}t['@ÁLÛ\ú:r¡ú¡¨Â*&õ6r:Üóbn‚Uu¨4R›IGr.*{*™U'çzxê9%;­¶=^ee?V’°œ„Œõ*Ïvˤ<0]ÔÕõ}ˆä’Ô\³Ê·82¯çÍ*\wr°ç‚ Äv<ßó`Ûx¿o㵜ÖõV8èÖwT_ÕÂSQ¼ì‰ÅK%{ntµuu=>(ÝB—ÀdNpëºvºÜA»Ž=xqÕèž?ΣÛF®àÀëY+äˆÉͯZ¬û¬çÖÙ´¥W6ÙŹŽy_Úí9½凖Ÿ_U¢ùTBDÐz[Ü*pð1þ9qÿn_ ™ZQ;È’Á¥•Á;êVx•sL[4ôÒ® {ƒ•t¿ø=ûí'S}§žÛÆ|¡`»cäήOEÕo5_÷Ñn9Z¦ò°šÜ«y¨lHÔïh×çá0NUí#ß~·Ö× ÚÔhä´Õ6*ö ÌÂx’äjm¨u=*U£¢£¶;­…xÇl¡ ¤ëZdin,F>y½ý<=|½õ±QÉ)ðbƒ ¸VYrä¿âàÞíÅsƒ‘¬£©NÊ›ƒ²mþj@½êÛEq2·VEw²|£¹¯ƒ5´g6ñ)/y‚¬mfƒónqDǦ0¹´J!½µÝ„$' j×ðªosÀÄ›¢Qê¤6íeÈ€Ö òdTï#Òk‹b-°ö(AE`xÃ8”Ï&½z¢F t®Í1(J«yÍ=7‰ËÊ)\$„îA•6Çao7‹¯mâ³4JT~ŒMôî1†ÀÈŕ˲ã– Jü@—¸®Ø.ú„?iÛðXê»%ëµ]$" ªCã<{'en÷ñô›öB<[šVKø¸¡Ö<Þ;’áô»¨,Å#÷„Òžr}…¡S[ê`·á‘VS4(7Õ‚žKk ¶€ 4Î?»¥ì^xZ—aŸj”J Ëà¯ãÑ3d-öî×–ºWS+ÚgjT© ½²\õ/ý3u%¼-s³GÕÔ鯲½4J•8 §gøÓ R­ÚÆ}òäIŠnžû$ÿ„%Û9hž9IÙ'˜ö…n²|øÿ*ð:c›%ò€Cö”Â9ˆ iVU j"ÄôXí¯ðúÁ–š;ikè(/ÑÔã9v®ŠýÕé‡s[…=Î/”6Ùˆú8=pØ¢¶Æœ8ï¢(€- m+L?š8ÝV¦MÕô-‹hð°Ý;-LJèäòìû«±¾@JÊ.ÛêÅ»çM(>{NîQ°¦…¦gVð>yŠ–•›ƒªØ —Šòô_G ]ŽbH¿Uw~]HÛ=.ŠÃ¥?eA»²úº¬“Àï)1³)¿³ìË !q¥*ác½_¥±{›ª‚í„k+) çÞ‰\3_~b¶@qtUŽîäX`P€eYTb ò¦ÈF„PÞç4ò§u« ÆV¦ä9²ÂK0e ï|6FsºFX(<¼îKÁ?Lg|ôH/ÄÅ ¯z™94ŽpÐþc\ƒôÎå*ä1pT‡ÀÍÅö$з,›x fóëå„b<)ÛPÔT#õtLÀšöüLí_‡Ï´MTü•Zø“'¡‰SãÔãq²%kd È+é°&4ô„êÒ©³ÝÈçîã÷ 0Ù xÚ½«yòîãëV¹xRž%×nƒz4Ti]>òRÆ5>Cë®/0èl!,9èÏ †Jà^Ûw^½‰£ùR¦íÌÀÊOõ‘«¤’Ý,t‹åÐ*г®×—“Ù@¬æü•µ>Ó€/‚ùö¤áõh¦¢HjÑ`m÷ÖÛÞ·ªçBí€RmcÞ­‡«*·ç,dãT†}ƒMƒZÞž·pñz»³ D.½F$›6Ñ=¬Ù»òt€+ž‚>§<ÍŽ™6sÌÙL¢f=æ±@mî8ò–lçm®I䘯Ê_€Øg¯Év«t,³¥ZÿN¾õ9·· 8àUf®;CÏ’•![2ìæ¹ý½{üø€ùô#8P6SY`†Ö’EømõˆìšÔg¬;OtwäH»â ‡¦£; jÉ“mzF_ã±îjç?a”e1í·HjWx!e#’÷ÍÎX„¼î v›Ã±¥ú—— VÄEzN\óZ×™ykOÝýðo?ÔÜö%ë[úö±-9²,@mž …©ýëù§¦'·ŠÎdXoäžþßÃÓ‚§¢clà«}¸‚³ønïPq,° •˜SÉŽXKf²:>G1èÚ ¦õxGû°rcm¦ñ^ö~' k›zØô0á«c8-ÆÖS_ê2³%òŒÏ6džÇRNx<§íÖÛí¢â¨!°Ôâ}R]§WÅ›»ƒR 3ý©^uè«J#š½ÃDíòæC«2ÙãÊš7<ª ƒQ\žt®5* õt¶õ"ò=¯Rݹ–È=ƒúN#ÒT“—Xl{®ƒ¯Ð~ãtÙ‡‡7®ð~V§Ì…›| ±0,àd4ëΡ ýeò‚r¢¤ 5 yHì-Òñe©àvNâÔãuÈNa›û$ (œ¬¿ó‰‰íѸl¯„aU\ 0Ö!Â.áÍv˜å7¡ÿ—Šû--mxö–íì‹‘†kbʳ­¼üšÑ¶êCªe!‚)Õ,^®™o·;Ø1ÂRפ‚@íÔ‘ª¦}¥‘JÏY¿º@„‡ÊéwOÜõ»›8_¥öOço§ØøéL†ö$†õ¬[UÓo-6uþà ¼Úñ’¼££¾ìDäY¥¤^næÙçMpöCׯÐG;€ˆì†ÇšÎÃBVê Šè¥YrÉÛÌLq­ª»/iÿœÚhßÅé`›^ºݬ@Ü©[–J6ð/å'›šä¡rmqX^Y˜[%Ûëô|ÙóÚ©e?ˆº,KØëz©{ô„4DàÇ:ö)Zx_Û±Þ'4=c+Ï¡Fö©„>]*7¼a·)øF”HR5À™‰0q~jäp OQ± ߟ?þ‚Õ“Ê  G±‡¡4YlYÙûyšÛ¯ø¼HV[òkÎT0­KAËÚꆚ[,.6q'æç|ns ÀÞ2Žz˜s%Ì@6ø,E€§ì÷ *ªx>iνh³FiÖÑx¦ŸÐnEKòà{$‡Wõ}¸Ïq[¯\6a‘»¶¢§"ªÃvíuß}vxÜ£Ú#?Ð hÁ™¦þ£d{ĬÍN,ñ䢟®ÉGRC‚”]2ŸB(Ч›èt8¯¥òón{N†AmU)`Áñ›'…ÓûîÙ7®õC=‹ ¶™Î±µÄÈ>ÊÒF•û‰¦¶‚B!ñž²Žèµë…—ɬlG%oKlãPã“­NвóÁŸŒ]‰xƒ.µ-‡â±Pf cr |O|¾:}€(MdØUD 6rÈ:Ë(åd)¤o•R2€²B'1ýòƒguë:Ô›WxWÍâ# Ì#üWþß?}À?ŽøúgŸ¿úî‡oþÕwÿáøgÿl~ó“õí7?|âßÏúåÿå>õ?ü7ÿ¯zü³ÿËý›ßo?ùöO>ûÕß? ¿úÎ'ÒîHàüÒ¿ýòÃÏ>ÿúþçÏß}ÿåÛoþà·~ ÷ù«øÚøê~î¿ýæÓÿøËŸ}ŠùS,ë„ð °ùüí~ûÝ|_ýù—Ÿ|úÃ}ú¿ýæó÷Ç?ëßþ⯾ûò§æuýí?~úç_ÿ‹Oñyêïí_ÿÔ~þù»/_õͧ?üê‡?ûüsþâ×_ýìÓ¿ùöë/Ÿø«ßùˆþû³~øÅüøÇññ£¯~þý¾ýîOÿïÿâ÷>ýÅ—þìÓþþówþù'Ÿö3ù×_ýüóÇýèøgŸþíŸ}ùþãëÿæÛŸþð_}÷ù_øÙ—¯?ó=¿ñËo~òù»OüñOÿæ_þ«OÿÓ/>óñÃÿêã~ïÓ¯žÍ§ø£øëûÕoûA_¾Ù¿üÕ×_ûó_|õÍ_}ùæO?ýôËÏ>úŸÖ¿úÑùÃï}úꛟøƒ_ýìûoùý¯þü«/?ûêOø}å_}Zíÿñé+nðW·÷ý×ß}ùÅßÿèû/?óìÇ|¼ïþíÏþù›¾?¼¾ñå»Ï_óØÿêÇoö?|óí_|ó׿ú—Ÿ~ùæ'?õ&~òË_üøß}óå?þòó¿¿ú¾tüækúù‡O$ºrýôù?~úü—_ÿÙýøûW¿ø¼¿ý2wð7ý‹oñé§ÜÄç¿ùòÓÏüÏñ×ßõçŸ?ýðÝ/?ÿÍ_ÿö7~÷ß <Ÿ~òåë>ý‰ËôøÍ§óåÏ?ýøw^þw_þòÓÿ;°öâ§à~ýOÿ Ëë'ß~ó³¿úÍï÷û«[ýõß÷Û¿üô׿¯O¿Vøÿ”ÿô7¿ûûôÕ—_ýýð›ßý—ßüôÛOÏÇeò|þöRÿüWoþŸÿjWü‹O¿ûYÿú[–ëçOÿü7«ûÿþšÿŠÿ?¯ñý+ßÒöSþ÷V÷ß½ õËŸýlûŸïïÿo¾ýÕÏ¿üì¯~õ¬Ö_þÀÊÿÃoYÿßüÝý÷Ÿ?vë~þÉ—_þüï~÷_þð; }ó§¬âßçÂùñõ/߯/ùù'ô凯ÿìc­||ýß¹Ç~öå›Ïôí÷_ *üVç{l¬¯ÿã{äþÖgöÍïþÝùÍ×ßþÄ –®òé«ï¾ûꯎÀ:J×õé¯#;ñ'Ÿÿr/áO?þÑ7ßþÀ¯|âÿæÓO¿ýîðµ†O?þù—o~ù½_Ý_`Ñÿøß}áyüíWøÓ?þü³Ïî³_ HñéÇòÝW_óŸþö—ó¯¾üñîýúï\î׿üî;>g¯*îåoÿ}‡ÏŸÿòóׇCö ’¬Èti~û­C7h­&Û‚‡/3¾BV-ÇT‹»ê™`éÄh 0‡EÁ>ªíùâ»áy-´9 OfʈC çXŒÕ³¹¦- ÑA|¶¾‡ìA‹ë RÚ»Ã[úÄlwärz–¦IUõß{þ`*ìé!†…¦ËŽ×W¿Zu9 ªWÖÈ<¾!-*¼ƒˆø·Ë¦‡Wa²ä4R9¢zç…ûøí²¶‰Â†˜N͈»þ3öïꑞÚSÇï|®«Ã4º6Õz÷¬?\ÌB²Z6:y?]=Ú§znïè´iÁ+`‡Nöñ¬Î5é5ú>i„­CîU€’¹Åííîúõ ]ÀW|mùSéÃÓ‚Gu¨Uy‘-:‡¤uÊq÷gËüAöAϧγãšNéhÁÃTIk;»µ›±NzA)Uðär®"ÎZN&=Îתúu¸ì³ç屑"ù×˪Ò5ž°5£N>Û¯º“kÐ'ônù%k\¬Qpmf9"èn¡±—‰6Ö‹IJƒÛÕØŽhÂ:ªS¥¬7+) œîoŽ™\ãPÌѾê¨fÝÓË­vM‘­±Ùˆ¿ÄUkM]ˆ~&+„7î9^sEºô îåìHÍįª2[t’¯xR5ðbÓÌW§™ÜÕ«Q³¨ß²šEÞÝMÎIL¬ Œ=ã ÎJ™S=l5UÙ„Ûi˜]ïBP=oîõOQãOï Õ®sÒ£EohuôOMtc&Y8díð?Épw$>ÀF›µez@¼4eFUì³”…äñ†KGgólÜ™ÑST–ÅO¤ž½šCÈzëd­.ZÓ ê™”-M¦p÷|ª—bÏê¼hø€è©PWI™ LPUß5«|5†Ã«¤å ×IÔÒ¾Ž,­~ÿ¯>êŸ>Ç£e¯®ªËÖU•»ç†YÎØ!Z:žÊˆÛM#œáÜvª™z”ÄZ´‹Öÿ"V¾µ{;.KGüV#7Ú–÷ix1pÞÓóJW[‡#1¯ê€AmW3šº‘§Ó¶,D›vâzWU‚ÁÖ{¶ˆáiѶL[2R|‰y—íÈùqÎ̵úœƒn…ìÔõËwu*‹²,z] ½JyÆÃ™P;ó†%tKK[‹$‚„Ø–MG>Â~»“Ü–â•Km G§°gQ<üë¼x%¶Ùq%ß Í.åóÖV™á¯l»ƒ”$°}íqµTN&­b½¢pŠ‚¢²s D1ï–'gKªnª”ÓÃr9ç9œ³Ná°øxŠP‡cáš°Øû`LMD‰uu¹Ù‡±;Jí,ÊžåhÐu”¨ád‹ów¬P;¼±g)‰çutñÛä øuڸ„ÇÁm£É>Uœ®Ñ:ÊöR`Sy´1ROS¹ò¨;“b­¥x—Àœöàð ¦ãkM嵨'µ“XNkÞ²mP«Q'¢K™Ae¥ç«²ç­_T:”Á’Öy eÏÕã«¶ß•?­½€ª^Ú+LA/««QMKßö¹Ù€æ‘_è½5e`I¨HNí}¬e…8Ùvµ,ߺšÜ ’ÆÄ1–$¹ì)œðlÌvŒdµÅ™çiKñš€ÇÛÑ(.×­ž7 ‡´UójÁ=å¼Ù}ÖKtüž*¾bªJïk °©5•ØÝI†5Þöåèé±Þ¢:ÑÒI@?Ñó ˆÈÓt´¤e[.Šré¶X–åÙj*î¨W4É>™U >^UePgÈl‹EQÙŠÿèf8AáÏaG*énZÈ×og+€OÁ¨v9õªŠêò¨(}ΞŽq²>ˆÚ3OÞ3+7{¶æÄè$+Fpz»¼lÆö <m#aòÚ¶]‰+ôtJ¹× CÑ;^s̲šÅ¯’çã†EÏ·«ß’Ú–C3åûNª©<ãUÂÝWúSy­Ô¸"›„¦‰ƒœpV|zLw8ÿ¶d}¿J¨½ÎTNÏ¢1"ÕžËì…ŸÕøPÙŽ@Çu¡øÖ´ÁŽd= 2Ê-¤¡{̩ݩç0èÔvi‰ŠÜ¢F«ÜêÒzŠ]¦IY‚ñ‘Î(fªÛ¤,Ö”í€<»$ƒ–ªý~ðý”µ¾pÜ…Wd?4 †tÃ<ÊÁÄÎKíõHÄ7s±lK|Æ<«1ÑñïyoÚ¯í¾õ8 ðü©­üÛû,k¬\ímòØAö;n&ÁÖwãK’' Ÿ*gF%uIŠeµg8ngû,w—”!иʧϼ2éíÄÞ‹GŒª,E­˜¹÷û…ÁŸÞR§¦W!käé2˜¥æ#ª¿óhRTtÈfèÝÙ¢ÂÆ*]Pò@,ºpìùšy„݉éÚÓ$%²"õ"£*òFêy&^ö*O1P{äÒa¹_*¸öÓðtèWË"{ÍVžw«|C½Þ‰LªIÜvG{ö Þ^ ’Ùœþá-DÛšrañ^ÚÂ-Mª# ÁÙºZæ@t­|‹”õkñ˜§tx‡„ ¹¦p¢¸”Í @¨¤$7OÁsIð•3¦bmv K*<ÕC©éÅ3%${‚Rg—©xyØüé¹È€wµçè][³¸ûºµY J’ ÕaµñFí RÙ wè„”}ï~vuYE! – Û<‹êp¦´Y.è vú`”$¡¼ªÉ-ò£Jd GrXœÓsaçÀŒO=n;ÃXn@¨NqOµmSw¦-£Sl=¨4©ø3µ‡S“‹½;Š@ó!(±ÎZÊ ·¨ºkxw]¡:r¨æ XX¯§9×ök…xº¯ßÓPMš|é5'9Ð\åz–"ÝÎè»D§Û—õG ÙàÖ®~žaø÷´s$ï,¦/£©ØDØ!d8 ëÈÇÆ¥(šÞ:*Ó~èrˆ4É=nJíqçE4Ó D-] h™‹ÇUTغMgÐF­½º…§Ã#?»9ú¥Pþ ¸·sÑî %æ¹|bdÓdÄ^Xµ½×ωôÌe4•¤»šÍO¬¯„q÷!°ƒ/acÕ ⨃Ó¥kywãJ»§Ã&Ú!€!…´-÷žŒïr©í«CÜDBûÒì®{Ú;ÌIJ A8꺴 lÕ>#µônwÛÙ½vPƒû>¨^/àëÍÚ^ÚÒ92 ‰up^Ó“x»¢g(4«1Iâ±;Ís9sÈk{ì ­ªú„zèÒ`“toñ¬÷ªÃP}Vœ¼\J‚'¨‘{°²ß´PV½ÚPÊBò¨;€²z:D½ ˆŽÆ])âYF87uFxñ~$vÆ’šë°÷J…u O—6z“ä¯mÔqëÕ•ôÕ¤ØgKbôp[›°¾ Ky/¥î¢)IJÔ³­ÎEk¤¤Æ–ás†ž Ÿpy`Ã*ÿ0%üÞS5¸c õiôãtJ„Úp 9tF‡a0‚Bÿ阠%›¹‡SîfWÇɾJ9å¿3Ñm¿Wg‘5ËOÎ÷uwL&" ý‘ÛP’ëÔS`ì¾\å6ÀKÎQˆí5¶JH‹}¯ìì/ï:Ø/§%Z…a2¸a©¥îÐŽõ £õÖÏä¦tv.ŽØ.‰í"ëB8ÊËê]HÐ÷ ; l›G蹫@Q{ƒS­öÑ™º•VГðÜWÂᔈƒ&¶«; aZ$Y„âjUw5AÊ5Q}mE7!“Þ¸ƒP€û{D”¨CôQܱÍín[À)­ä`+´Bû¡8”žé¬0=m©áµh@_DÆŸ¹¡­S8Aô€9MýMg–÷ÔxNê­°56ZµÏ=µop•=ºØé ÈË":%"NÃNX©«|¸Ù)œ™ê¬ „Am«µ6¡d-ë(S¹¶Ü+J+JùÃÐέ¤—5ˆåMªÄÓP$›‘ª³½‡ÑŸ•Æ<•›Û·›´]3ʸù›#„ä½êpA,“Ø]u¸=§£¼ñÍ-$ðT {VŽ¬ÚŽbúÛRz$.à~‹ à{ݿʪ¬ ÓÕé-Љ«ü­IÛPúP­¤ Œß j@Ýy˜ ìÝ» Ô6œÒ¸ çñ8YQ‰[K7¼JÐ:ꌧÆÃ©ôÕlJ¼ÔëÔã:*Ø\íàþÈQ« WS¾mKtdk°¢§ŽküSQ»cëñ°R–i¥k;âaÚ‘t8 ébýV­wfqò¢ò®´µñðÜ:Bɸd¥jIg =|Ž238(á`”£³‚ƒcÀ)­ôK:É:ÌCõ'`Míq©wyÂAþž0Ê>ëµôÓ™P}ÄÁ€:Èu3|ÈÄÝ!Éçnf!5”†óIi”s;xÎéì¾Å\m2ÉÛÀ †}ñV œ‹ÉœtM†ŠÚÂ/ƒý˜uíêOR*O¯7õÛ>6djqóc»|ïÊ£±Æú.6gGÔÀàµt+ky¡£h§gúe¿Þ;èd©tÃcÙìC Ës‚œ…ž·Ï nª‘)¤?f‘£§¬1E5)NåÙ¡“mÜrÙ>Mx`4"ž&D¬Ž•ñH@Óó}0xO¡ý¢‘û}¨Z¸å !ÔD¸ž!7 .‹°îȲ“ÐÓö¤Ó)cçIçÊ´ºéa}„÷>MFÞ¥Ž×DØ©–¥üºå.m~ô™k*PYŽöMM¢¢ÇDžºX’â·vÃŒ‰›:º¶cüºš#Än뱺÷ª‡®lQ39ã‚§õ§âú¹u­hNôA gpÉŠWå‹Ô¢ªˇà¾å;y¬É7So“Íp¼:X‘jxzzMlS¸ÈˆÁŽ%g5•h)ųä5·lùå@»ÎG;³òQKã8¢M•‚*ÌÅÇ/1#鯖£>t:$ʪÁ^`-· …¼ð —Mq×kŸ9‘ˆçà¨ê²â‡·bkTÄq“ÚÇâFª °Ç ¶ªØrZ¿RF¤ä9ÚKB•èG3ú'Åt€êÓ+Øž¶={à=*ÖÆÙ vüRðÚ''ªdÿèܤޜQ g«ªÝ‡u¾;$Z)ºÔ¿ƒ+J–SÌN„«rL¶¶ "*yÕJ™Vv×a­_nØÓ}ŽË,ÛrAV>5¶áºthã㧨kY¼"G*‹wX];㪿tx4‘]à°¤=§ÆQÄ5.·êX¼/yæQ”mo½vR1ëôT¦¿mú×Mƒ.HÔ5° ì`íGŸuZ¨¨žÀºv {o[t›d£ç)oë±O­!*%*Ü”-XǼí©{ú€Çö‚ÍSE5À¬?óHž­ä±*‘I¶Ð5y)æ=î­Ý³xUj6W9m•.Õ¶AÇÏ=ö«àrÍbze¸ê‰1γ_.ã¾ÖÌYÝ’åsxë$çTîñT°ŽMóÖˆæ¶ÿ º´=nFÿÐu€•½Æ ­^ˆÚ¶UK{¬&E0!‘öw…K»‡´IíY`/Ú£öjd9=+;1½œL½À7ÛT`»šV˜qR×\U{Ò“²8A÷+ˆŽgù¶µÕ{À\/pàÓç>ôíû`Ö¶#=Ò 9Ûº5îše؞˦μ%•Q9@‡\›två“É[qY8ðÖå8õ¥¶³Çü¸kkw+êèïlZ^oÁŒ¨näý(¦íHç¥Þ È3{Ÿ†¾@ÞW-h •¥Pï—5xl¡·Çä­oßµÈÈÁi[¸‡öŒ¨¡äcÛ¯ÖÀ³'tÄÄу;póÄqÄ-µºéo°Ú•=& ‡¨ƒ¬üaQ¼ƒÛ6””;Sµ-âªjŸ®:·ÊU‰ ìÒìúRVrÒ\š2Mûût±RHÂÁ¾íz{8ºÍX©œÿÏÒ"u‘"XuÙc¤¢ Ë÷áJF‚S]'È€ª­0:§Â£OŠÀN üa#þÆ{¼EcDÍl×¢~“>Ó°ÉóÙ‚ •+#« dy£m!’8¢¥ XÕLøÖl|œ&ÿÞ£¨k’ÃV¤Ø.™¶íÙöòa×É"S£p½<3¨ˆÓÝÀaÐòÅn|—-mnƒj±ñ씀 שQ*W˜´©*É]ºM‰x9lˆm¦X䯶Õö¡³¬P B D}Tñ9®ê¼K’(‘“—Fh‚ñï ¤òY_¬"=—¥6l5Q54qÄQ/ìO°‘ª¨ã®ý{°î/Š. ^ ð³nV6ÂÛÿÉóçžI„܆$÷>þ~'›ŠZµ5<`9f²@<”Þ¥¶XÌlÃhÞ™ò ¶w ÉÂ#âóóKöd©íà[J6ËŸ{z߉à0“9rSAÊP6„e·' %h8ÍÎ=C²–Ô ¼m}Þf‡<Éæ‘uEÈr`IMvÙœ…4Åà*Äêü*}dBaÚPãNÙ¾ W©›wщ áY/Beojѳò¨`¬‡›Ï¶g+N}J¡m.^é4­- æÊç½¾ >he7·À‡ÍKÅbéíLóÞÞ@‡š^ý§ø»¼ýÝçïøö;§$ÿÓ¼óÿÃ?0Îë·þ¾yÞ_ùG9Ðë­ýŸc¢w¿Ü_ôîûÏžé%–ÿþfz÷½þÝ¡Þt~ú}Ò_ø¤öÒ§ZÿñNõî%þŸëõþ™ë ÿ]ŒôÆô‰ú—?ðÁßÙ×ýëñÜòéÇ¿ 4|ãÐîûåOóú«oì—ûÛßÙãÀû+?üâ7_~û7~ëåü­_ø“ߌ—ë·á·¿ñÛÅýúë¿sM¿õ;|úñ÷¿üùÏwäæ¿ù¨;:»üíO~ùõ¿ûõû·~ã'_¾ÿÅϾú«ÿ?Í&O|†J([;U yz¬]ÖkµC¹.Å•ÚR<¢àä_ô»'¥N¶ö“zÑ¢’QïTìô wW´ ÖfÀBå㩺 9z=9‚Rz‘?ÍW¡¾° OìpŠóÜÎ|Ü®BÓʫK€Âœj±‡ àÌÇ+¨½µìØ=O%õøûº"©4;¼‹CÂç¶ßЇÃ÷€(i‹m8°¼m ïá)ä Úâ WóH´ÞGØÝÎÛ ø·åVWG§_õ@ü`áç”Û,¸€òÕvbGDSÍG·íSsÈfØÒ.µŒÞªm{¹Ö 1×Þ!˜*›FEŸ.4î>Ôך>œ|3o¯Ý¢FáÒc)ïæÐwvü¡Ô¬ͳò¿/Ù¿jñ-–­I {½2ó…Ï^CwÕ~¸ƒ¶!’³ØëSN敯Mj}kñ®´­…L5;±”öžjÚàøªÞh!JJµµOÛ¬wÌm¿¢y›žŒùÖ¡,â糆¨gö(q*JK ôyíû7IMX íRùZ¿B^V“£ÇƒÎsªâ¯GÊ®”xmAáÚåÏ9Ô‰÷„WβEæû”÷¶¯ÏËÞËak·ú¸$ «–)ü–ší ka¾†Ý<|®)C\µ¼Yåðc[hëM£ª'™|KOãø³X »o5q—Ù*”ç×ýäë8dFŽ/z [YK}_¨ýñžþé˜})æXôà{58_j²A§ï~ðxÏÅþÏ\5h}JPûhZûch•ß›½Ç0¾ùZêxl‹óÈ;CÑŠ)¾—f¿lšÜ4´ÝY«ƒ©ànï6Ò]üº6¯Ç2»§¤vêcÊÙϪ˜x ±¤, [ÛãȼVå[‘MãX"ê±:rÆ÷¸_‡†Åq&"§ÎÆ|ôI=GV°#¸N>Yf± ÖíO}OÏÜ]ÏáßÍ!)S7Ù†ƒíÌ6–Ì¿vMÆZòÙÖ퀑†ß·‡VŒ­óYlÌÍ'¯¡é;¦'?ey*ÅÆŠ©ÖqÛ%Ï«vÊðzŠñtÄþý<}ž–¶Ö9m´9ubûñΟ“µ;t¶U UÒàÒ°–ï}B´—•µlñÅÎVµ·ŽåjVö*WµLÎÉÞÜõü¤FâéÊE¶ªç@YÃ6þÃkrÙ^ £ää­:oÈû;íVÑñ<)Ɇt7=Ù©:i¤éÍdÉÃô‰Ÿêÿ³ÖËI$O~ÞÙw«ØÎaYc >"«Ïbwƿ󜖳J*<ØNßN ³Ö.]4<ºñˆª–¥ßT-¹r¯*Lö°OÒ®ªfb\:S膭ÁâÇ0P›M9ÅùG?º37¬n³>›ÃÞñç!ª:…5ºsŽK3T50«´ýŠ I( ý9,Ÿ>–v:j\Š„´TîIîR;ÿæ>_²“6ìròÜQçû–ó˜|ùÌú:*åü¤Ý輌sÀq†˜Ø!5Gçt¨K{ÆÇÑ[[ÏžtØŽ¥b†1gSò­ùp"ÄÙí¢bÜJ—1û񯃦25’Yñë`èÞæáßå¹ç«râÎn¼]ßHë†Ûk¼w¼4£i=¥ ‹òp‚ÐsE2dÑ!lñq§„Âó$ÕW³¾¯énút¨ëv‡3‘†ËÞèÁ˜CM|æ£Bé‹áŠNØÖÐï·ÛœÃï_Ñú­2JÝF–(Ûù%ËåKZéÌGb›öFj:k'n‡Ùj3¾ÉÊâ¶An[òÇ_¬§ûv’KOþà}ݤлgÿɳSµ®âYfO^‹ÕƒÚtd’ÇÁC?h×ཛÇtF‚n©Ù Ü•yñœ#Ù—µæp+t’-ŽƒåOŠ ± ‡9RR"íé<¥qÇ8Ô×èÉú2õ:’&õ‹–Í™lÂ…òsž1z–;µ/äu¢õIäsvB'Îb‘Rë„iŸ­e]ò !•~g¥*)Aÿ_e xï.«S{Q‘#?5Œs÷±™Õ‚œ¬vÀZÝöó—ö•š‡·;ÑP @$i¨ÇÙTø,„Àô-ƒˆ‚3ÀOv¼•w²ÈßÍ“—Óøc/J‹roE¿àê$ëŸ+zâñr³Î¥gíÍ.MB³mâ6·ðJ\â—3<¬^òÑußù+ãi¤–ÜËþqc‹=äü©åm%Ï¥aN^¸ˆÀî v”Í|¥o_Ûäé »±8ÛÔøñ±Í䌱ÙÎüf;Og7fƒœ–"M'ÕyTŸ¯˜ÇÐÔÀÃÏ!¦0 ȦR=hôíöþäl]^G6€îL•W_I^Ñ‘ö9`±C ²žÚbEäÞ‡­cÔçÚµòì離¦Ê7ºåï£öÝœzT’E_@ »ÃíM'D¹B¯.ÀVš0ìácëÀëÈkfM<Ô…šûô¼¯’ yæ5̨, ©°'=(š=«ùÒÊÁ™Q ¬ì;Qïá•ñ>m("I+$´{îjz‘¨zˆ²w­ö©Mù õ¸=Ë(ö…¸!ãu]d’¯7Y#ë×âIGÕ°UÍI `?îKiR¡æ~WÁ€NçÛ£±ñµÏ}w$ë¼Eì òôò"3MPŸ]Yáñlœà`o/— ‡ùPi¶—²ý=ˆE¶8½d—§¦Çco¼S|“HÇ(H#—¿ó¨?#jƒ°WXȧÀˆiï}rc˦°ž^f%Xo%/üq5 ÉW¶²žöžû'Ô¸·D¶D#‹«é>¸=œ]oÿ˜}¿ž-‰ûn[Zî 8@'7‚-û½d^÷¸+ò™îMSûH " Õ=Ú =¶uPƒÝ U'J ånà=‡H˜?·-¢ãμ~säR “eeû—„PË®ÚÅ›×6@Ó.’E¬+އÝÚxËoˆ &€6µ®¾” ÑcL¦ZÿꇺWØ6V0OP“6D‚¨ÿÔî~F]-êR,(ÚÚÅMñ̲݌ìu;ƒ£š®ÉøO¨¢ª `é6ôžÒŒy\ÛËfK’Öu*Tî,7x4–¢Z?qå«jaš\Ïdw‚Í…½=xš'ûYš2ØJ-°ÔŸ]ìtM‡@´K£.u¯­T]é,›G@ÆçÚ5çÓì¯Ý\_ ¼Mâ¿ê‘¥í.¬P:”7xŸ  ($a:+™-¹MŸÒ<¾RÞ>¾ˆ¸ZÓ­=§˜Yü„mµªÀ³}±c}1Þe<ˆ†¶õóÔÞ*œSïã2§ÉíPm(Q¸(êj3ð±Ãiìápó /e¡’5ªÑ¬+¯ÔN§GÍë[£‚TtùÖÙ& .PÁÿ¤m/–®çÔöe•÷fƒTà Þ*¾¦ˆ]îÇ5îN"²9ñÕ¦.ñz Ã:+²X¼ê~,[u)(BÂj‰'¸£wCg§°–¦0…wÃæƒÏ¡hŽB¶ùÁýn¸| cÙm2\i€ø{–¢@¬<òB£œ™‡ž ¹g¶¼TƵ“íuQ$L,£W :Öñ4ôý‘Œ/%ІŸOå5Ê£âࣱûDœØÐЧ¨åzVEоzÎçÚ”<²Íž<}<ªÌW=Õ£v‡;³Nc‰ŽqŠQ¿+š³LÈ¯î® K­4ƒÍò92ëE´ pó|Ùgj>‹Ç•}8ùsܯ&õÚ]UÁ¶FÒªjݧ¢Xñ¼ˆ´b(“á«É Áœ°ßÕ¹t¬QäèÖyvUm ð+¸|Sú[_×õkCCšŒ[k¾‡lqmó*åV…qøì,®õpjTyê»9üí´é@ǘó½a¡Mú¶ì=Ò>ÉW³Jds"X úW’ª²'ÔuzvzÎÞÈ£zk±LÂ'@/âI>ÙåLúR—<ö£5ÁXÆœÂsvô™U?ÕÐ&’°o^‘›X!9HªDïìÓ æq(?hs?a¯¶Ë„«Ì TÌ£fá*Ç‘½oG…ÀC„[Ø»¨uÌ6¼(W×݆\vî©h ?úæs,{…¦Î[ð´j1,HÞ¬w*âȪò‡•»FÐgq½îcÒ\á±÷!§’™ås’ÞWr²#² Àw„‰]*ãë¥î$Ι{÷½º¦âZÚmÍî)ÎCéá4o'éŒ{FF"üÜ¥ZÝ jmë/#ï ÇSE7{õߣiwJ@­öÈßN ?*cw…ï£ZåËAR`9&§“ò\¦éóÍ÷:4×…QI/mUVEWÚ‹¤Z5ðxlx¸µþ¦’E.F°ÖÄÔGÌ"xæ[ƒØK«ÁÖíÒÔLÛAÊS3ug1ݰ´¤ç„æ=ïÁ»ëöuuõ:4z |Ør³‰ T+~öäè,½vuYx¯Ór¶Ç f0’Cvj“ÛÛ«ñ'`Šè?T ,Eå´k|xËU‡Ç­*2VS9£p°áÖ¶’Éõ }Õ…’>êÙº‰r$9(°08ænpôCgïp,9ñÚªy1)´w±Çò­e…–æDä¦O9Á"CXn»˜ÙyÆ×Ó&u‘ ³ºô’õ–¨¨|x w4‰U¡lD“T @÷„i!ï òCÞœ³ãÝì´tÛ>&6fÑ›©8¥c!Ú<¤!ßSI pg® –¡‚}!ŒÃà²i–ïBº^Xª¿³”/`Hë”}ó£s—Ï1/gq€}XÑL“ç´üóÉq/¾È5ë)´O·ÞL’R~ ä`ÛäuñNhVüâ8u„ÝnÓ%"5)?ÚÞróä¨(—v‰1DÕç1`ªÕ:ìIˆ#j³M•\jF°æ5 $ð¬K•žK¿7Ô)+æxA±¹¬I é{¶M]@M'ï¡'‹ç 3ð§T»ôè°ñ¬«Áï@(ØœäJ||Im6;=Ž p{öµèÁ¬i‘¥ËGa¶,YÑP?—xÁ/ÒØ"JL°‘ùëÖD(‡ƒ6Yv1ª¨;(k!cØÐåà<™ÉÔt‡ »•Ú­k°µHPu¸¨é\ó„?µs´yìUñƒ%·8eôŠÃYƒ¡²úb^,ôâ ³-2ùÚJ+(qâ/MÇGØ%-¶p8pr?gS'ŒøÈC§¥ZÏJ¾ѹ7²j„üƒÍì2v|ø~h-?H®N< ¬'ž­Ÿ~IÁ²‘d% ÷®“]5‡§’®Îä@ª¹–»xœÚ#^,£ ¦‚ZŒÛû·4éN<þ"D0ß:NÚRfë¡§ìcªd¿kºH´­|2›Wi*…@Î 8QÀ…˧ƒPMÑ“ºûO«îQ9‚ñ]×NÐQÅrÔô»á»@±ÕŒR¤Á[Ä*Í©} ®NÍ8U¢{dIC~3èp嘻ê.ñ"õœ|DWÕ1T[›,Æ#–q‹Ý2njÊv›Yý]Å´ÛQ]¯è\”ÈäÑ’0/\Wô(ˆ%d)Üô,L;öAZá1›ë4¬ã;)¹f)ê€Þ èìPHp³kí r¸ Õ[G©‘¤ÅJ¼jI=]Ǩ+;ÿ‘!¿aÏNÎæ4å#wò‹ýàµ5ýÁA/ËùlUïšIÝ+`ô5ËRÕ5o9KQ‹R[§##ž²8wü’Ö«Óû(rJ¦öwjAlÆÛ1®¨£w+ì|‹tÚ$†ÇÍX¡ÏÕ¨1”zÈY×>%£Â6áSj·1˜ƒ@¹Ž»*%²nœÕs``²œA‡ò<*ñ<€/.ï•LÓwÙ\n7£ö´#ØKKóÔæºj#_è”­Ñ)ÄSƒÊ—Ê]VWlÃ=ú³ËZ¤œ}|)§'cržš‡Sì À”‰5®}¬Ôæ9ªsžä¾uoy/°Í«ÝºzµÎ ŸJžYÑxÁ´„áÚfš»ú˜œÚ8‚Õæ*Ì|4Äaѳœ{ãUp¬ øø p`Þü¦ «Æð çРµ^K•èð°èDzA80ˆͧ­turÖe¤Wõ¹½ð8æ>N§ˆ ÀüûÒúøJ§ó©†Þ­líIAýQæºæe¯,LÀ8qÔ²lÙ™]U$ŒQBå1(ˆNíÁ1Øêo±;±(Z7šZQ×±ž}®¡:۬ݠёÞ]-ê÷õøÌ´¿ Xr{Ôx…“–ÞŸqÈöJúrÏ„±,G9y,}"–&& vÈxô-Ïz((¤.YªÎ-ò¡¤Ÿ*Lvº›óƒš% Š;Æ9‡6‚£;½ªã«3ãÓƒ-³ÃW$¨ê´8`c™_G%lGU¼ˆájcö„ûl§pâµMžá¤ ǵ*O {”­€•óë/ “Gc¯ªX¢öó‚þ¿Üh‡pO–Ùwg)âÖËQ!\‹&i½¶Õ‚¦¨oÃG•2›“/‡ --¶o/!"ªÝôD5Fe+ö‡Åw:ä‘i–{úg­ÚN/e‚:¸5P)ˆBçîeÏ5x“ðAÛ*é©¡E ˜SA¨©÷’YÁ I£]ƒÆû‚NËæ%À´êQÉ-v'ͦNï>Óy¨ÅÈb:~ÙŠ¡+hNìz?$-èHœµH¯©*ê Coí¯Ñ:¹‹-ÃW=E•šSyºx6…ä›ú<8h_†ºDÝS_â¼Öæœ_¶?áò—7ê DˆÅ.eúÇøŒ­1ß!=ùrrèñôö 2°·–&ÒÑYRˆ,¯PÝTÕèñD Ô¤6”S^Ü®ýõ÷Ù¬•ô#•§äÏæÖÖžãz|ð©±NªóîÀ‚JN*’ŠíQi5ÜÀÊmVw)·üH/ˆlˆ Ð mO+ò{Mûw­ˆ¹JþB¾«*ô¾jg„: Ÿ^K&Q@ÜNÎËq ÷oyÕ¢#Îoänp·#ö (üFây:k´ý9aMYS¶à ¿T2òŒ+R'ôšèNg½KÓ<¯¬¥_¯ì¾a© Ì+Ë“?7HöÅ5cƒ3`¹ÌðʪeCŸesK0Ìû£ðdOý DYz{ëa?=ÝéHà œw,­¤éã:ˆ%×]ÔÍ<Þ¾ßòl>•,”Oû=wV dŠ8°³Ž©få­y¨Öwæ¼×&—þ¼œÞõðìÄŸª¤Óv*N—b9¼ÄÇÀ_†!Z`€\SR9 :¸3øRñ &ó ¬Ó+·Âj ¼áÐa´ÎáMk¯èYÀÚš–žÑÞŽ«%Ηbަ€ü‡vW5õ æ ±KÇ3 B«ÄâYRÚI†çA`ñ¸»ŠTn½ùÇb&&y¤Ãâ1{“T1“ƒâÎðõS0&”‚ÿH¯L­0H…-ô àæTJäµÒäµkéÜD&1i zÊù«¹’‚¹|”*eÔëÝÒ–õup‡XÈ È%V" »gmqšª©mÉ0@…+yýšïPk! ‡uƒ£úq)` éõ´±‚MÆ«Í$ˆwe½ažóQȼ(£ßçKòñÈ IÖo³Téß-<¢¨^‡ŠÑ„)§’X41;_Ò·!ª…,Ø4+5d‡àä|6ËLYÆÁlª×‘Âm§r™Úi³_ÛÚšîƒÀÆ~zà¤4÷á¤ÛÔ*¸¡†ÝF¤ :Mó\O« !šƒUƒ-@w0D>Êûa+>4¦‹ÙK°<¶6é(;±k£ dp†šMÄg’ð­Î³q^ȵ êáºíwX»°V¬£ªƒæ)Ù­ƒæc†4·4l¬|;J}­Ìi} ª$Á<&‡u-0eÍíò‰œO|Ð^´«•G»¢UpºöpUÁîÔU¢¨±¼àS´®Oà›Õ_Òõ” ¦ô›Êq â#Œ´¼õäK&]…¸nWØvìM¸%ËnßsUãÄ*Uwñ\µ8s¢LxqúÕ©J $ò,äæbv»Ô”-DB÷*ÉοÄ?HS*S[‹b¯ØkRm®º÷Á7ÙÓJb±ÏS3ÛØ’‡û͉A×qªÝÿø£{^_\8‚ƒc°ý:[´é‘Î󟕬íÁ¦½”l‹Û¡ª| –+úr‡å´ëô‚^6q19hÔ¸Ûɸ˜kl©.;<•Ô5,€Àó¿«-—¿Ô¥ÚllÖ1yÓªHh5:UxœÜ >3)±*À·ó–ýˆ'ÙÙîrvÕùÈnlF î ·à+ñ^i¾éf}“e±îqtqÿÔJ–Ö­Ñf½­´Õ€1âÊKÇ–ZßCF-Œ›¼¹žý"Y]v2èEy±˜Æ²Ðt]á}Ƽu¾í@ê8vÍ+²e’áöUMÑÉ[/š­Á-—>½D²sr'W–°gÔ‡“Ÿ*¯·îáZÎpI )œNŠÛÖL„&>_Zú‚Qê}«R-D=xÔàÈâyÒz^[eqϳ]Ù\Þç4gtN™Õ£aºœñƒ58èxäµO´ß¼}¢úX§"¿ü=`b¤ón«¡N]Mh á€ÒU2½þ`Õ~&ZÛRzªéòT~þ|4îÞ´öÐkÎRh–â$ô~¨ùe#Ì V%ôO±Œ8µÚxÌIÖ{Ñ2Œ LaP$̉s¹5PW e·ˆ×{¾™ÙCÛ’1ÓÆk#$Éaú=zÕz6Ré¬m-Ù\÷ÂB'Êu,‚KÜÖ­ím[û/êUm…Ý™ÙôؼxL¥ð8Œo“5ËöŠÂ(QUv9«MDìpÕùNàc}"êý‚pláUÄJ°©KOøÅC©Ü†òF+,yÀÉPÏ€¦BÛl¨*R_•×Y*Ãܰæîk/wyÎe QþTƒÝ6 Qʇ±Å¤QG]E9Àåð¥Æö \ l~ T·ìàˆÏ7߉fÂN_ÐÝp-XEts«1Ü·Àù¥>òEÜTù$Ý:¾á ¾ N¾¹ã6™ f ø ¹¶M“Xm#)r¶×yàtfÅûH<¾šd@@žáR>àxuÄgú¼ÇÍ%0<ÆÑô!h¤Ä¤8ŽÄ15)!˜ß2ûV´3îÎ@Aà!A÷jÁ7Ϲø<) ŠªÎíÓä¦Ò:‰Á\ ©N‡àD¨óò¯×W¨àïû¶‚¬å}b kÙ™\K ˜OçÿÁÉšI%Òµø!$ž%+J#ä ð›ŠÅöÁ: ÕkUß‹®Ú¼mè X9ºé†Å&eX®G %ˆI~ÛŒL›Þ]’+Ýí£-^¦Žu GMY5%zxj{¹Úz½î 7ÿ5V7Ë/{\ ÁfUí!|ûbÙäyë)ÅŒ¥Ø# Î¨\£ ËÞM r²ð1¼Ú†Æï̓k˜­£Å['Ú«H˜çÀºÀÇYÊmÑVDå(‘Ð¥ªDÁFW^®x¨Œy[®ÀÊk¤gë}Þn 1Â’™ÌNð7|uÛ±ºs«¤|nï8É›/p…גɆͦ—®I1 NíÊðä¶Dc?«ö¥Þ# ïzï#ë$L :ÛæTÝè¥wMZtÊÚlÕÕÇ“y'{ qú"l«vRKß±uãyÞ¾Ô [½¨¡ ¶Oƒvß*©¬¾J» ÂZ>Î`›—"ý¤{6ÆîN¬&/þ¬P4yV=ôçaß•ËV€lœáˆMù¼g 9Ò ÌNÞÊ>(‹ØeùÂ:¦aêW0­8ßÛJ>¢Z›–¹~YEÇ4N÷ƒf<äîØùøÐÎWão-ƒïkkêæÕÏùõ@!,øãîaG^OV~iróþlgšµ~;ª—: … > ß4ÙÑtÜY³Ëüq¢Ébùª=õR,˜R#Xß\e{sÇ»ŠËÓjVY„˜P”ž aÚõïîŒ][®í;­Õ1ÁO“†C;…¡¥…šº[¶ÊlIv4-x'‡aÕªûò¼Ëã7wAû’“`ùØÕjAÑ5‰µ”r\>] Ìéö¼ïò\Ðò{Ü¢ö‡Öz3ðÍ|*&ñªpOÐް^€ÅÒCº©æñXd‰3¤-—s°Zº¨œ÷BÖª¥Z „–È}âC?1̯ŸíC“´XsWÌX‰Y n%l‰‰H¤kÜo1ã²–Š#2JåÁ«&,ñΠe ٿîŽixÈ¥œm2+èC☃‡~¯§Â,Z;=1">Ÿ XdYBr ßñ>­?òº²…lB!Þ&>ï¶N«®@ÑRß…¼_ªÛ<&½f…HÈšmº.“~»åx|Õ¬*7-f!vû玽ÙÌôØRmîó@1(pù²T—r„ž.óÆT—8‰„jkÒ˪¢ U \îƒ*MýngÖ¥}É/6g}?ˆºe°Ñª,ðÅç÷ÑôÔšìåÁÇ[îQ¤s¼Ë~½Ù%ö1iAp,¦uõh›§¯ ªuEdï%ü×6dè¿å(AtJèг®;Üì5¬êÐð¯ë¦¶Ì*æ-´÷‹ÎDØË®/aO;¹é`×xÕ¦ )cÃo/8âeó9W_·hbù±;´ëTèNß ¥1ÙG¤“˦.ˬŽî”ŠsxV‡` 77ˆÓSñ í©ø0MSmüzů0.]P_‹¸øÍ–¿ËaÓâ CöhÌ.H»PÀx·E7k„(«µ}ý¤C u™ßªÕ6Ìâ0êĪªÌ[“K}¸Ób+^ŸÛøÏîŽK¨Óá*^òJ»éð³”ÍHš0Xú›cßË{¾±Jöbï‹FdäQ´~Xü$©ò³Ä–Õi—I®9ÚðØŽ=;t~&=wˆÃ"kŸD‡±O‘ Dü:åó´¯êv7®}¬ 4É^,Û©°²yEDÉö­öObÿôÿ…‚|ýr|ý}bþø?J)Ž?¾þÏ!ÄÁkýµ ÿüŸ+ÂAºïÿþD8¸Ó¿+ÁçßU~’ "åþ£Uà`eÿ§ô7þøú'õ_«oœá·ä,~#—[ÌâwÔ5þ×Ïß}û;²D³_ÿ;Wùãþâ7ßçmÿø‡?ûîóoýDúôãŸ~ûËï~ó…̾üùoýÄùéÇßù~7òãï?ÿ9‘ç×_)Ÿ~üùw.쪟~ü͗ߺÂþüÉbúµf÷Ç?ù­õ'~ë_½®ÙøG/²¡åoßÚñìÌ«çMmD zn‚¬ªkq©ï_.ÓnŠWÜ Õºz±ø].%ú·vlSÛÔQ¥Ú.ØèÝBQÒYâäXÕ»œ×3³5ˆò³nÃP‡×ÙÞ`_–ÍgmÚ§ ©*'\*Í{¿‡–}[)8r7ÈúA{8“R[É#ÊŽ¸WîT =¸êPd<<:ÅÙ2œˆdI:qÔ{OŸ,eY×Ù==vO“d²ŸN´òïËZ ô:ðxXÆ–ñ ̶3ytsÏSoñóÑv½öXuÔð0t8ÐÂ#$e'~R©¶Ø·&Q[ ày‚Ræ±eû¸…–T-èÓXÉ7ÙðStÆèU‘ÄÇ6蘥¥±FOZ˰G¾«í‘Í3ü¾ÏaˆéæèÜÜNôKÞó²Ð“ÒÃZì±£œ\XùR¥Ã²A »¸m2|[`õh¾Ü•FÌËSq6×å¡v€¼5¼n(lÓããÕÄ9Á~<‰È*¼ï8O^Ö‡)ÉÝ;ô»:*{jAt««/oRÔûÚƒåXÌz¯sD’*ë¯gA·c}‡Ç±ÎmØGÍ‚ïv8ˆ1ŠJê¥O9(4ÿ]5ZÓUçÞ‚"ÏðÊïÑë‚^ß a$%`ªOï=lYY>NµB¡üâ²èÔüÝŽÈËE]<ÏvøeM]¨Ôª¼=ìêØ^½ò¯ÌÒ“ê°}ZVÖFÿ¢+íqÛÇëÑ Ñ†x1¼´§Ûµ9¡÷NûÓY“lù]½y*TŸ·0ËRÉ“ä1èµÂ¡¬!Æ}°Jüä-{¸¨2$Ë šzݶvÖd!åìТGQl¶Øo›=sé&—Ÿi‡Õiéaµ°¸‰¦!¥Ú´5tþ‡›¿•Ù'EUÒï:nlMËÜÚT¾{ùÕ§b°/¹Ì—»kw¿5n»»½E–Ã{6»‚[J‹. ²c½åeÝúÚ¶]Ïõº+¸®sÚê•ê`¡Ã¢ïÿäžµ-[r†µžsX6°èÑ^U6Aoă ’&ëê9#~9p­ÃíÙTgs>vÓ±ãªçá̧.Ö8ˆ™÷s¤qZIÑìmwÔ÷±Ï³è ̃ócõ“mÝa¾}V¶Øeï}i GhPâÂSuO®çˆöï,e"Ò«Õ͇ÙÛuózMšL{ffëgIgÏ\ÛX‡èš_~G»aÖ}ãÚ’ý׎1äRúC’Ò1ù%.qcbÅà®ë¡îôÊCã &ò·²|ùdÕìfSÙsê>—>U`rªæÚUã•ÎËVI{÷ŽêswïÎ_ÏLÎ3µ·‚j½H9ÚÂú«¬Ä¢ê²·Ý…³Æ›ûš·àaž˜¼é­AÏ‹²Õx]!_[ÙÙÝjìhvr=ü»jê— ¶pYLËö‘"ÈAúS ø&rbÞVÁ+÷¶ ó²#åÜ^qüã μsãßï;xèX“T2>Þ`†s*ba“X»u:„fñdמ>ìm=51ÀÄ8ËáxhXO JYðÞím꼩¯ðTµ^gà KÌ›9¶3 y%„¢s>[]Bi ²Š»pƒ$€°²§Ñ@¿¸âÂú8 ÕÂòÒsÉ—‹ xÒ¡ƒ`A‚æF÷¡ƒîùaY½¼J¶¼ÚD„9¯¨H™‰§×]=µxßÃÁÜükZÇ‚µ¶6ÌØÚ<™[í’ªMe/‰eHugégl¹®g1±nË0îiqG¦Æ÷Ù’Ö‰- '„6 Èç/È^¥0ÖHãU@éîÙB^wh¬í-ç’„bÁvýÞ¡C­ÁLéw=Ž/Áδµcí³$tUdåÙ*µeŽY°Jot#Ô„ƒÍ/°|y:¶TÕàšøž®ÝÉæáS¯R-æÜ}ŸE¨ öДsÙÛܶ|Õˆ nGp8G¹ `Eƒ•Šˆ&qjm\bw{9LäB£ƒrŠ_-ýžœ}° ÝáeÏê"pÏÓ "žM‹·,ÊÔÑæTÉáöúš“ÚÓ‹{`nøªì:z…€³¼ÿœý[ºƒÖ ä²¹]—ë´_ÅG™I¬:EŸº8,²‚7ïvXÃqc7)û=F¾Ov¦•ö3ñò‚³0ü AÉVÄûÞG©„D›ôÈÐGŠÿ `Bí¶Ô5ZÐJÚŽ—÷ñ’È‹cØØª,ÿiOy?µâXß²Ë/¢'Hüh„uä ¬¦9n[3×^PkâÑÖ+9 5µÔîV[^ÖUõS'ïV‹N÷“Ë–Maʰ¯É5‡Œm!©Ú‡3›2ÍÛO/oD¶j³ekl_a%KÎ×i?ã‘Ò‰ªFêošQ²x~d¦Sä»cè,àT3y¢c„WÇÉ·/†¢AK­0áÔŸ]ñ) ô<QþvÇ-U5Õ»àWOè€ÒnYDÏ׋„s«mE\Ä–Swï®—y:Èy9zâ5ÔT<Áò üxäà9Ëž¯{¼?©)Y­øC³sÒEÎ]þtÅÕÉ^KAE†¿tÙšxÖô – |ð=a£¡”Z)†ívNXn8:Ÿ$Ȭĺ‰ë4:mÈÅM¤>vF++WÅÓ¾iÝÎÓCíî^ôËÆÌ[óÆ9ÿWýÏÑÊ9;®P•™¿õëq^"h=ɮْzªÀCx÷qyAQ Ç_‡{‚+TèGsƒ°C+±{Ú"-îÔhrƒŒÚÛ>4I2.R^4‡”õÔÛO8‹nü(‰¦¹EÔ¹àC&08+Y' úHlô¸šUå‚„ú‚I¶ –³|·R$¿â3µ£ÒÏ5&ÿSlÞ«žË«hÐlp妉žÎü>6¸ÞªiÙ§™yˆ¡Þ¯R{<È}nœTÜs~î`_¦U,Ë~Úð®_Ÿ¤±OP:„Œâ¾èÇ@œ¹õSy€‹û8~ª+¨lÄ ¼@èÖS¤Ì×ZF2eÙ랈Ü<0,Yïr’èYdšâˆŠÊ¢ GIKÅk°Îr†ÅS¹8RŒ†<ÿJØÐŒÐ‚Å#ì[FCqŒuéÈOâ¡®ësÔR¥ÚÅ®½t\J«æÉº'&²QªóCorUfÜ+ÙD—žŸO°)㵌#¯N£—ÃÄøÃùú!3Éóß½‡«“—|9Íc1h\|ñf«¨`(Ló­}òåC‰ÆÅ{±úÙÃÎz,L‹“mK@ScãA\xþÐX/9[3'ÃP€R„•pÞ6uË&´ w¹ô™Ê–¥¦j‹]QXÅø°Bt<àP„‘ &œ§JAP ²©Í§J£––l´%åõ¨vò×å4܆ýÜé!©þ©c0)4õª/èàUXѸ¢..÷¬Ôìâ÷×£ÞÇØ’Ÿ÷:ö1uðÕ6 40ðn½¨` ⹌$»*x z¨6OÈI  ûÂ^ëqJ3v^«Ï'/û•’D…í?iÄÓQƒ|òJ¦Ÿ´?ñȹi \íg)]™º“Oèó±eK7È%ØÖSqÇ"à )t¬•ÔtdÁå{ÚJqûq.`r"5X@8¹X`2ÏõñÀЯ¨MYÎ:Aœì[ æ÷fýÃð›ê0»ß몺CÎå(\å9·øq<}O)q$ǤÑ)$á²kÊĦa×°IW2ãöBw“\ä«ÀÚ*K[l•ºÕÒKc^H[¿ùhài)Ûª6à+XZ zBºHÖŽ¡‚úÕêu 1f+m~<ÝŠ) ±·<Öµu=N›U:t“/Î…žùÔÔÙñ/[²`ƒâ€®tSÝ%×y(•­qvPÝÓ!m+0€Ä–¾¬HðoÁ§`á{(Ê ðº×ý{z6ZÜ`ÿ;DÍç+½[ÔÀÝAÊ¢‘-ç{‹®þï©™ìk D•Ó¥†„£*EûèUÉäÅ. mizGÓs§^yÁ4"(ðKëw'¶ÖÇ$é´´œA•aë„©yužeU%‡Ôœ-@<„b,9«‚Š `¬'4®§¿š×©˜vÃãlþ´§µµÃ yw–ãv%³ß«*d#Xkj• 3ݨ®8Š{á…ö%»q!ÚázX‰ÄeejôF=œÆÍrý¯“,-¢;×âDmë+ïØB ×"+>8þü\uÀB NfÏp7dcõ¿,ñZ´0·$žgmíìÅåT¯ãCÉO‡!ßZ^Þ›ÄØ²œSSÌÃdçƒÇÆ­€¦žxLÓ÷šºûÒ`ر RV÷OǾ%A†ßà1àvR÷ø/íò‹Qg?§ÓsÄĬƒ¡R ­zÀ‰ÝËéÞANçÇ kvwÀn’ËÓÙÎt;'Êïž ‰„)ò™ðG~ ÆÐjªþñÌÖE ÐH/ÅVàTæ •Þºsóñ±âaØ, hʲ©:'!úB 4k>ŸƒåÄ&;—~’mûÕý×FAð­ôs‘\KY¢‡«qð¹¥ÇRØ£ ”È•H޹/.OÕõ 1ëöS²±DçBý:»^SÅãë ´î"ÐGä·’7™“!PØ2g@<œš×¢š¹?`‘C½¢ÆÍå‰<žò詤> ?¼žÿŒ-qildË+úoÖÓ±?p‹Ó"p=Ëêj´ªèž¸÷¡î­jx{¬pÊx¸Y›a[uúÕŸ|Öm9ÈÛ’mžT8pjsÏ7GÏ\WôÀ±eÏ©T}¸ ÿdyB_U`ÀDkxí ˆ!Ã1jˆ¡;ÄA„µ9Þ¦îHµÃ“ÜÛ¸õØ¡ Ýhª¨Fµ_©žNþƇrIBAã«mŸ®‘£ »ïS” Ö×ùc‚OÖ €Â=¯em³ªu‚@Œ>JÔ•qð¬Ïdm„•²Và«(8¯ú/Dì1:gW¿™À½¯Ö?—£Çž|«G¥wo³At€Zç¢"S§©B×ødÕPÜmuïù,u¯KU×[9D}MÙªš;Nvÿ˜•ßSƒ¼h Nj½é\Jähý`´qÙ®¢­&+NÅî“+Ã/(ŽØZÓÕË#r±ã[&;@ `ȇSä‹7AÀ -iOÍËOÛ¦cyê0×&'å]ŽlVU¤”ó.­êîYâæ*êð0Í&·SפE×ãÔ“¶25_Jì7 “Õ&Ä>uIÕ%ѳ~#e9: ø¼õrk; Àr(°e='Í9jIÄå[¶DHfV~Ô:¾atðÇk&ƒÕŶu 2ߦ£Š³ê}}œ¦lu1!»$F^L÷èQ]µµg;ÊVœµê§O»=Ç þ…:ÌC1ÒÅC´"0žÓÉ5«Oä¼[G0Vȶ¶ìUg­Uf‰£:ºÈÎNШfS\™Œä0œ¶³r1T€SÎØVú%ÚkÕ fU~NÃÏóð@ȴݘ¡ø.''¡»êÀ$u«›”ÏÙ¶íxbmÿýwhIm &§2¼ÖÅ·øY¾_¾Ë’PT˜ÇÜ k÷«×GŠAÝU!|WR¿of9•Ápëq>½”µMYÉpªìúl^{wz.š e X¥’™À°*:/ˆéÅ"…T {t¶‰Ý$.’þùRóoÏ7¾ÀŸk„¡[s½=¸¸PU¬|ÔË`‰S7„å!(7S2$Ã$®?D÷ ø¬÷Áþ½‡=ŠCåm’Båz¶ž*ÌüÙ{·]]–ä:゙b¿€¼óPyº¬¬¬|a@€ Ãö%Ñ-RHê`?½¿/Ý{ó(© `wST³çZsý2#ÆÈˆãq~¬†[ó’‡ðÇíY¯ööøÑ××ùJ²Ù-jÀ¡âö&ÍÜú;«j05›éð*«}¢?Ù¥ÖQ„ýâÁ4eጬvBQ#hŸìWQË‘% ¸6ö¨:ìî–W æ£Þú\yWêRÝpçv{¢Ý¹bÂö“ÕUºœÀù|ÏQ©æ…“ê‘ô Jí°6lxÙ”M{ˆ¤È*ë‡e®ŠcÚž¿¹è×í,@ú~é3¥‘>á}*•}fn…«»Pó‘¼jýËRp¼µõaJ *{G W–¬‹ˆ½Ä™}NmÆil63>NÂ=G¡¦BÙk÷åkãÉ4vé#ÂÀu!&nA‡zW5v¹MŽJ!G³$Џc-ÎäÙ”Êsi*ž ›Õ±²­wÚ^rDlbÔNˆ =ì€u ¤ê]ß–[´N&œœcKOXˆ‚e³F*l+ûÖˆÆ3Úµ¡ð_|Ò×·û¸£ƒGrõÑ1̹«¡xÉD?‘½JÔ˜LÒ½¡Ã¬+–`Qm&lPUt[SÏŸS§Ô&ÍvL¥¸ˆ Q{X*œ§_Ás+qX:'Ý8ïÍ“H¸8¬/Ov,)“z¾ò)…D¾ï!ÜPT^ÚvŒKåùÚ¡&´5T%W¶¿>Ìç¶ç“—ZOàÈ iñ7?õyÏ £-]š®írWþ!* “-‹@I šk†MZjç}}9xjz;^¸Îã*€{µ ¯„<ÿ$bJ:‚oä–­åè¸ Ï£|Ú]_šã·k|«a–ùwƒ½ûY"þ±wÏ £¨”~y+ͧ´©G‚¾ëI·ØEòue.F=’¹=!Ìötlô ![#my’Ìӹ޿Îò(/©×ÞU{!O©bßVùeÙÛØ "P@@(ˆ¿·ÓîvÝ𯮪çv§3šßpfZ)RJ3î}¦ £§^Éþ]?øÂq5Ó›¨1 É ¸[O]ã,̳b’zë:Ò;E/Tx׉Sž’_d2þ—îX·¦lIP¤¨µÇqj ßI>2-êòö<³ØJ…)“þ\lÍÉs _¢¨ü fÑ€œ–…Î{Á#{ O%à êFÀI&-&u­tc»ÀÙŸEë¨#kL_…©ác“•LVXk—5Š*a Ë,¤¦=Ä÷X[T{4¨µ4»= e%Ù±˜]„ªL ¾öp®Vö]®q”[X´€"›˜ê'mÛÿ¢k*6tF,C .K°Hœ `öû"v[P**Þ°y€;¤j²ÎÓš¼ {†&¸>ÜàšÇ ãaß¶³R®3°Ÿßãh§p`LÍß9[•T[l›'Ù¾å¿+ š•нÂV<ªÃç!8öÅN¡Qv˜ùÒvÎ]½GQ²ëþî‰Æ¾«qQú€¨ív%¹ž³ò/ïî~R[ËcØ[QST³á™pLJ$˶«ØÌµ›üoù´=6+¡XcG–´Tà¦À¶òÃSurGºl7òiãàaµ¨q¶T©æcSwàÆ}Õs_pÿeÕ§®÷­„ö}QNé¸ÛÏ—UYÙ;öu+â·Œ8Ÿ¢ó uäc“‹ò3‡"*z¯J /;“Fš"ãÉc‚¤ãÊ›-ëNÅUšŲ¶N|:k|–?Õ¹‡§ñ| ôh/Á¢kõ7F…±Lp>ËçYlÐéBhCáU»Ï8_S4XÙCYŸGb„èãYþ^êé#æô\{”vÙã3kÔ†!Xç#=ìñ³fj ²½¼°9m/ÔÎW) í•ý»=¶óÈo%kk|¶ú¦  :Øœ§ìd™ëÝp˜Û÷6•lbZ¥fs“üã\{xþX¡‰—X=xíU;Ë®îƒ*Ú/5ðÐ9œ=3ß"æî¥VÃgRñ:J!ߊ‘t‹Ž«—! Üû‚ˆÝ6Ò#¿ü ¾¥‹PÿÁ:sÖ|ÂùEB#‹ÅùɈ¤ài× y¸m“°f8¶’8žÁÎT° — Gë—͹õ_üf¾,C'Ö¹”CÝu;CUfS§Ä£Š< íU3-{²ôŽJY0Èkä·í|Gyý9n‡¼XŽ©é!ÛL’çÐÕ)0´²Öz‘wõdåíx o{õ T&”W5Þ•ßþtU2´$µloO6¾¦ðÙøtŸvᦖÝÇjæi!Üzß´Çhø@>¬¼ÆSÍ/«b¾ì=î×±:˜ÇüëÈ4ÙšU‹ÊQ~¶.Ì´5·%Ù< .Õëë°Áyçå›÷3ûé½t¢Vd¸ÂЙa,Al s: ˜‡‘‘âôï›ú·sÏqf6M…€o«é”^4Ô¶³ÒÃÕË3ŸÛ¶ÈW­XS;œ¢ø#¹•r=ú¯Šu½Mžet–nX›'yk½lvRÏ¿u|¦ã¥ªpÜèX™U}w²ùm&‰B ùè ºêØ}ªýª5^µ¥‚XåD¤Æ½ªŒ¬â%²z·ûh«¦™ÄK"‹ÞÂQÏÉív„YWKÞÞwÙöûðh,ô¿¶Ë]’Çhý`…’ ˆ«¥{-¿#:®öÃv\ÐU"CU«lîO§Ÿºýÿ[×»$®ÇåM*]NãFÃÖõ|NÎXÓX½Cï¤Þ ÉÈyXÖûÒÂÚcËçÍvüÛB¸+­Ýá…~I¸¶`ëœÝŽ>i‡\¶J—ÊG @Õd I–ç½VÛ³,¸;ÿÜMÔRgÒš+8¨6Ò=ÎQµÕf/:Jvßã´¬‘òµµw‘XÕïpÊð7iý­{YÒl+vÐl÷Ö‚dqµ4‰Ï+ÆO@ ùȸG¨Œ½--U L¨D •tZ¨*þ»/;¿¥3 8e+Á0 .€É”ª0¿÷¬C /}:GôgO\ç좧#MÖ3ùAöM}þAbéðÛÊLµ¿Ofªý2SíwUfªýžÈLµ_ÉLµßFfj„„2SíoÉL¥öW2S1¥ßm™©öËLµ?ÈLý’™ú/‹Jý-©¿­Uùç7?öÓÏô÷«GñÿêW?Þ?ýü¯õ#Ÿô'¿ú‘ûùµwóg¿üùäû«+÷ö«ù·ÿñ—¿üŸÿ Sõ{"S5¥‘óQÉÃê§\ùãÉ•Áð*º‡j6÷v@ü°þtW‰Dy„þùpÅ0†õdˉïõò¡çEC×ý¦™+ìóÕàE£ì®À÷êr–‚Æ\Z ,Ø1ù©…Ó¤YíË>Ý(c±PŠ¥òeß«­CúiªÒ}|Œ›cû«<}ô‡×¸ôr¬aÙîsÆ3¦»E«$HwªÏ!Ýùóu[­Ò°¦;†{Í¥Ãk |4•Wê(ZüqSù˜7;„÷un;v^S¶(Rɶß_ž.õ·9eØu¦Z,e­“º“^å{­xûµ žI=yYÖ:n„Ð>@qˆÕ ;ê—2óe»R& yÊ1ÆsDw7,é˜N(|%µ¨~÷Á´=(w{î{ð¾ì胹8¦ÃÚå_Ø Ÿòé¯g¤ëàìcÃÿ‹RD.]9¦­M¯5§àTͧ •ä:M…s“žW,®XÔ™]¤ xr¹Î¦'Rðpÿå!B¤”·±Ûäå=«ÃÎÎt„6–ÓbõÕGÚw.^ý+‹CÖš êå¨z”>Œ#FþÙ@èlrøË:èYkÖÔ®·}ïýB–S˜Åh W/«mÞ~p~þïµÖ±°™ëT"”DsŒÑ!» Ö­4qr:g<žÌôe'oöípþ£!ݳ=QÚ:…ÁïBOV«¯I61)hS &ïÇn€6°E‡«·7|6=>Ö{ìÀ×.+¥wk7ƒ”YÙŠjwÇëÕe›‚f%Á…Y[GèÈb‹Y“« ¡öÃåkíg½Jý'ÕŸXàQ,…ëÓ¡ ð­ÞtËŽX­àÆ›+__J\å«¥ëN_ñ®-¤vS#0 £Ê1ÇÆÑáÀZ»ã:ýŽD‘’!Ò»’Óæ¥¾Ç׿¡"€%®ÎcSéͪ?³(û1À:!à8tn¿¼'üÆ^~\òìΉyFÍÛŽ-ÅíÝÕÅ pÕ’K¼SLPm+ïãtº\Ö¯õFãP{.ÈÖ*KçΫìEʰƴvzÙ39ØìÃ"ìS½ŽgµKÇöoèdè{&+V‹´5ŠëuðIµìæ&>â ß7ž­óßW6ƒjwÅË{‹jêqé/×ì•#Eeë‘U?ZÍQ[ê·ãÎË&Š+î`% –Þ_ÙÍ?kÎ ¥¢ÝI}õÚÕÄnËü%M¦›ýY íÜl~VbRZ]•–oëõJ$ThlK•1°Ék½+Ç­²®XGdÙ8Wm SmÜZÅ V‹îÛ6Þ}D¤g¸Êت 6"}µ*D(L1ÛÓ¶îºI›ìa%ɉTj$yœ› Î:ðKÌäºq{è£à,ËóëýðÚÆÔÞES¦î÷öHÓþÜП뉤yWµ/6Õœòm6NÔyˆMÖeQšµÍ¹ÕaøÔœÍ"Ö* ã\kV6%âo= ‘d»£Ç8©q‰ ²й­„žekfZ¤'—¿ŠŠµdy4Ÿcs©còéäìÈï4ý m—.¶ËL-œ¦kû:ÔÒw|õ‚aÜŸéæÂmÐ{Ž{Ôf?‘åê»ô™°‹tñ‰§žÊ:$Á×´™µµéAE5ž¼~/AoW¾‘Ë“ãQ²®£òÚn<ëw)þèÌQ‹ìÏhúgc·ý»éØÂ‘mG™Å¢óW_,2zeñ1nÍZKûŒÅ=*ì¼ó³ÏÄô$¯WI‰=Ÿz áÎ{¾é;k}¼œUÝyßÙ­à3|Í^ =oY/ìh3Kœåõ ¾¾Å]CsB¨‘»|Z&®—à©“òImlòŸè8RשLÿøåÂ?~ö3±êƱái¶£ïlúÑ-œ´~x–G¯µÏ8Æ3vÃØŠÛH—×Mt~öÇ“ìê,c·#¤“6´]ÒÒyÀ!„9oÈøÕ °·î^ œØ6$šùv‡Ú,X8ÏÅÇkù²T¨jòÛ¹©ð@™ ï2yv¼‚m-0WÞÕ †P}­M¿å‚v¶ÀÚMpÒÛ&ðèX®ý˜Y¬]EÑ¿·ë¤[(a»›l: °üÁ<‡\»“âºZª±ÃZ3O¦W%S»(Içð$½hõ2Tøãi!Ìï.ŠþØiRÉ^"í呸=/¢½!?6‡w4³WmÑ#ÞÀÍ< § (žCºND[’üeŒLö]ƒ¤wïcøä¨d°·Ë?Ñ^é–ð£ƒ0¤Ã£ë³déPs‹ÖŸÂ’¿Ç´ã|+ã<õÖ$HËQ/2/•bÑj´f—å T}ï#œ÷45fi ì0t¼u,&x€5[Îzððu¶Z¤ØkµÄ4k_ME6¨~ÛÌ &V²ÙÔÊ0ÊÎP¹â ¼#[R~¨,èf¿ŽúPå)ß–×µNÜ… ­cò- XžàÝ^÷\Øo‘ cO½^KQ-P[ÙÈŽ8»df-ÌÃY<È5°ŽÚ•BêlûäægcÑí¯çU³°šÿP>¬ÏÍÃ3†Y')7;C É¢p¯_ÈÛ¡t¾ª]ŸVHÝ@»Nh½id ;´Ã8¾Å ÔåÔ2òæIèú¨æØÇ?"—_3;R¦eØÖl@Ì f¨aZØÓÉô‚,¯Ë®,%&uÁÚ„°L9/«Åûj<8áÙ]C¾G÷ 6*!n8Œ Ò U¥@E VÒZ¨£PÞ'q§|l9Ç­n Ëpó®¥Ñ„ܳqEÕh_û¢W½+Á+wëÑÙqZ˜’:y¤™ÛøËòaýÆÔ‘–õ]xT¼´¨¸ ¨œ°âiz¤*D¸Ÿ!9.ÜÐ?‘c*Zï†iÃ¾ŠœP÷zªè pUV*ÿ”‡¢é^ös*°Áv T½ý©–Á*/QŠÚ€ýêæ‘^ûë(iÑKBþ3(‹÷§’jR]•¢¤ŽZròßb§#W|@UÏ,8~ó¨u–*ƒ­¶ò“Q«Ï!M v’`¶ó‡BŸBOWÒeT«šg´f_•f ¾:‘ƒxÊà5^\Žû°Ø6S‚o,ËI†j3‰¼›ÎÄ2äðs„M9g©³EAH›Õ”°ÖYNéûzÚãÕ¶rš‰`6ÖdnºKì5ZZiÄÝv`kò!¦£éµ nÚHm —FF » + جPVÑOP‘U‚ße:zƒv'kpšk?*eÂã)aj•]è¡C0ø°ø𗊲5Úí@b¹›Èï ñƒ< E7[hóÝ;³A›Z‚Xrdq¨‡´úª¹š³ ½>yൠ¹Ô¤Z„V5šI¯–Âø¿ô¶H:rV©*â*u&‡éC$z_Ô0é7yÆ4@öÊEØ•ðÓÇK+>ù|$ØLôzÙyuo»æ°]׉pr ¢h'º_Ú+Y§VXDÊêŒ78"í¡º©|Ÿ Ü%èø÷è /ª+áÚ¹ÎÅbž×¼äkýg“–c*V$·\¸xùYS5‰‹ûGL6‘“Éy©¨ÍÔ–Öé\t°oNN°4%N¤¶@8t„ÛyüèìùÃ2qºš`GðïAß«©/¢4”ßSà.ó>@ªŽ^¨ÿ«¿õ¶ý¯­ÓæªÖÝê!ÙÀ²Hª9j‘å°•†­:zÔE~Î'4Î:Q~ S&ò”Ç#ͶL27A¿²´ÃΗc®lõoñÈm &_ð"H@õN·8iï#G·>qrwT"§n6þ´Ͼ®çÞdyóÅ=ï »øït’™G}Ý 8ÎѺ î\lŠ8ͱ5 ’…þ»ÜÙ}D+5Þî©LYΪ}ÓÎü2ˬ/{â²~a§¿ŸWk`æ)ªÈÆwMu@‰ïJäh' – Àhíx±×Ö×Ù¸©ñ‘°³ûN¯sO*€=¡çR‰.õ8÷9ˆ™‘Àøé( qá N €¨ ´dQP?ÁÔ³^Ž®Pdd>Fã_8€-EjÁ±Û Ç ¬ü†I¬e”º¨ouF|î±ùB[ßX>mO/Iª~zñtåØÀHj:)¨ þ'媨“¡ãPೡŽj}빫×ÝÙ—³ÆEÑyÕùÒžUñÑòÄPBµÃ’?–È$-~°©»¢ ú0. í£Aðd> êz{À¡à&´s÷õƒÈ)p[ºîèc )_‹0\¡h6¡é®U*h@"6—t7Ûí¦ñGÕb°QåE½)e6òEH¯1Õ†ÓœuS7ÞîÏ,¬WÁ³uØí¼Î«·ÛPä7KÌ=Ÿä ¬µf~ƒü+ùÉ4« ¡ÞPíäô+ :aû‚úîÏØ„$œRHéU;€<{wÉ9ÈâˆçcgK¦x|WÇ·z××$÷´RÞ€ c«“Tk§{NÃ'–„‘™ø¼¤v4|J銗…u]„õÊy¬O–íÙÝt-U@Xœ°g"f—õ¿Iù7›½J®NXÂVw0")‡|CÙXVäø‚šÆÄ2ö„Z–[ëyVíS¿ø±So.u{ Ç2¸jŽ]OÊes¦†ÀS‰éf7“ŽÍÇýn¤³SiDþ”œÓS÷Ç×X–›Öe;-±p«dšª:€°ÍÅ^<®-2„© «ÂŸ™Êά#(É%¾ö° ¶S=¥Q}WΡ¬ž¥¸[ùà¤/i”Ï™¾ú7å¶a=A¾Ñ3½°à‡W¨Ä™¦Íœ´?ÆS< g&½) »é;=[$ÁþŽSfÔ³ôD¾ïñl …J4UXç뀒ò—"jS=ž«³‚T…á/ØŽ‹&?9×?«‹ûQƒÿª-xb'ìÚͬ)ÁîÒ”ïÒôÒN;à‹ÖlVE¡O÷in,~œa…+ÜÀ"$(:(Jl‡t^ K§O›š}|ĤÕnüzŠD×N]ª!7óȈàI¯dw¹@Ñ`¬¦bOû!•Óø:Ïs;ÊÕ’E`…™€"Ÿž“ Ûb³éÐ9£\G퇕«ðšçë"¬P™þô»$ÇS”-|ÒÎSk’™i•ËräE%Tkmôˆ]=ï:íÇ!?>ÑÙ•m»=¯§–Ðèá.Æ›‰6^[ŽzÈ/Òì“]µ@L€²»òúªoÐo^™ðZ‰p›¶‰S¼„ÔèÊ.Òà åýd-›É œx¹Dv™qwm§ñš"›×¶BÇeu8!HnõN—v#m¿UFzÖ™¯xU‡èp˜3žÔLßýÒR`ÒHˆŠU[gµ=†~ïnƒ¶ŒFGàõ™Æ½bvxô±¨Ì½@ÊM=Áždtf›–žÊ†CÇjçþk¾S”ÿ~«ÜYL6Ó·<üq$ׯuݬ¤~„…©4íÀãü)T¿EáGŠ–},=dú¦¦¿{Ú ÊÄÅ0‡{80ôY©f<í•àýh ˆY²A~;ÜGêcçr@/;oo ý|U†ƒù7‹OpãaÊ$±wa´4½C :fîãéGa°³ îž“ä/<ž#kßÃÂT þN×Ñ ú&Ýà³=‘‡jª¿ëñæN˜¦.»d|>ü«:*çËáoïÒìNÉD{ÿuú…ñ^M×ÌÔ‚‚Ïç1Ò„S‡n>,-³¯á Ô1e±oÇvHDª­,®„× µ¡x¾ª§¿j¹×Eà ]°ýb;ƒ\ªH¨ÃúàƒsÊY=bÓ]¡«hq²šÄ•Õ }ûÔÏnVyš¸"uŽJ^;mÛíM`­«w®uûÀâ€þýòèZ·\‰‚å%ÏБ,8 K$žExà˜Êöª&«w {ã€,Ç0öóc¶Ýš†5X‹žÁºú$—f-—­Bß_M+}Af"Q)‘›5ô¾%åäóϓަtªòZþ#Øñ…ÚÉ8±MT"Ò%¨ÕeǾ%¶mSþ›5»y¡pcëÂGi­ÎÅCÕ` Ù>­2=—`/ÕEÐj”=SR[­ëÞñy²×|7 ÍSÈѹ¨¡>“B¦ùrÂfÎOY]òo°µ_=%r )áà1ˆœ0xîü‰ÌÞtà´ä}½êÚ+»üœacg±€Cž;Td9ëÝ ´y} rh²F•Rú.½§þl‘Ï¢Š*oöÈ®Œ¬ùà#ÑhË}/X•ÅRëç|;7ýÍÊ9TäP­5{͉-`->Ø&$”Y’_lyŸË=rIpgRòòY~žµËf#±5»–¾G™e@ GNÎÚžXú[Ϥç²Z£JZ1œ–üÀ–ú„¾Ð‰×9®¸´k‹z>JÊ‘:aT¼m¢§£÷ jB)Uµ èls io©OÄ&:Ð|ýäªLuø|ÇæVö© ü95Ù÷†Ñ)‚¦aø²AÂúñŸa@ogIõã9vdr ó½ŠÂÖ@v˜¾b„Ó­x…ç¨ Òâd–"@Pù™É,Ä"ó‰žuÁ ©æ¼§•+tNw4+7ä èûs+Î6|Eq]u‘ FµúŠÉ¹oøBT¨cY¦uÆûQ2ÛðAMÖ¬XoA_,6¸¦Ûp`©cl©Q¯ýl…êú™G½O¥¿Ê<R–ȓ͛ݘ…põ©ÎÞjçtp&Ëó"Å–Sr‘è箤³&1ŽêÄN`*C-½ ú7©{æœôÛú4nØ;T`Ϊ¶ÞH¬/\ ›ÄEоN<5ŽyâÄë³0ŸQéŠj°>ŠHó¨Àš÷7œ¶dsUwy—,åG‘úä¹Åä¦îo€·²ø´W?g œÁS# ê5O#Ò„ýñ_íÄÚ€%ÙH/@K400›”ˆ4õLª&¡)/&§EH/ºÕÜÊdul—MFÿGqKûÖVóé¹btØÐXõüÔÕ&Ô(Hu<3Ô˜Ó¸ ÒhóV'ì«5 öƒ%ªÌMnÌ6Ì ãæy›{7¨ŒSl Ü 'yÔ–£x놨dpÒ4¨…«èhÙß*^¶ªó!+ÌFº«Zå¼=Ý÷ÈQ„ØÓ‚]"Åfuëö{)ÝÛ&¨iý8~›ŠøÏÔ¸‘Òƒ(T‘å•í[røª›{$üX¤<ÄÇñ vüôôû üÃC>âúÔÇ­šXÝw¶¹‹#<à´viú¨žP#G³‡ Á’ý>žÚíÊ‹Éâ±ÀÑÖûÖ4 jÑEG>½>ÅU¨‰Âæ!v¹(;4DJúýjC8MAçìþV1’ËÅ+ ºÂLÀûO·GýdÊÓ%cq÷UÐï^„ £Ö¶—°½£@Ó›6xíUÿ"çÎÙQ£ëÚÄÛ¤JÃ펎>®.ð¨8ÑGƒe®6W^:]r¡l‘[š`Í$½ye¶ùå;s;sC¬Ä,+ßWÇ0qGÐŒ5Ö˜ywäYb‚d¤)åü´œýrÏí9÷ढÂûó¨é)äÎŽÏž­[MU[Ûï †y™P•c"DÃz:® —§á7Œ_ÙPTaÄÅ>û_/¡ô&on@êâöAļ…G/ ø]µ¢ÿžR„êdŠj-\¡c–.E‹`†\IÖûäâ ¬g½àÅ·N¶ôɱg±?øYú½ŒS\^·nþ‰ÏßÀÛÏšÚ±©ô½~‰·"›ðÕ <cïØ±Wì²ÞúÀ;ô¥n©Ò| a%»)šRÙ,ÎÃV)Œ4þªó,)ü®É'’†o}ãžê(ÁÙ^%­Î$ð¼tÌͦâ©OE#’Àc]*±}¶w*æ6uáS^¥9ïKŒ³ئŸMHÝ^O˜(ñ0+{k$ÄÜQP°%Z¸G.A c»Pµ¼3Y%ô!ª¨Í{¶•TNЍ5?•¶ÕåTñþÔ°É™·/¼e%Yl[àØ`:[qî+é‹ 0LìQµ¢-` Ä”võìK( £À¨¯]‡ÌëàÉW·½›pKzl—û¶/Ï{^Š"X¹ò/5'ôÈqwƒÒõÈØ¤º9ªÐK.DÇÂ¥ÌP;û÷"µ±Bí3S/’Œ´Tbgæ[>ùè­ä\odÂJøNIaLÅ™W}z6/7]¨¡¯ËþP 'Ͳ‘M ©{z:Ú‘D!‚þn]¶Xm÷9Pzö›Ê¬¤8‡šñ6šØåòŠA*¼îOµì¯°­^X¨!G¡×É£"±¬xÝž -RÛÖùRу Ø!–ã +¡Ö5ïÙ½­PÐhå€=¸ªç¯Ø>-aLK`Ïc±T W+ðUÈ·Á…ý|§”³`îþÀ>aOußyö÷{9÷X! ­ÛÌab‰€(?U(¾Î¸ŽªIÕåŠí!Yyáb;f/ ùeÿxÆÒ• ~ÔA‡“/{Ëš^¶ve,ñT…¡®`½:œO;ºw㤋ª¢’=Ž6  qNOæ¬ÚªpÉúbʇ±ÏKq,üÓ2®yÐ?O…ÍîíëÊQ¿™rG3œBÝ1(Uöµ!×.Fâ{½ŠfÇä&¶2¥2Ë‘ô¡‡Š¤šmB2#ëò)¸~W7Pg°_ ‹yà0`…ɃµP¶Þ‚PŸç´JðäQ9yYkÁ^¼&þ§°’j ‡]í”;*äúäKïYom_´Ôx¡1<ä¨ëb¾†òÍAÞdglÐ`t(±4šƒUؽpû¤g&¬ÜëæÙ.­@}0HÁ UµiÞS]aWF-ø”nr7'V= â7`&0ŠÒ!:„>×§\@ݼS•³Í-ªGm·¥0û~Upùäz Õ¾éUBÇöBelb¾âѯ줫(–ijÐ º,àë`?z˜1ûQÒNÓVX›è‰”$ù+BuÁÊÓxœIs†vσ-; 5­Xñ¬“M}“M°ï7/x¿q©™|~C\,¡Ça+‡EuÐ ë#ý0Nò¾„èùé½bµ\e6}ÈXèË^ùìtÉ–U³B,vg§ì%”éNè‘ÙÄÅK)ë¢QèC^µ6rßí³lz,,lf ë„›|µð)Z’˜Œ.רó/žbÙî:ŽÒnV²¦Ã(j`%vqšž[BKƒ”ä³8‚±m÷#Ûƒ§‹Ú†a²ž’Ád†Ì¥½j¿òÙeCÀy†à5ÏÀù±Gú¬ûÖ^;ÕiP¥êF^ºmL€LÒ>iÆc Í–?’k£¿ºjîhmz^iyó ŠÁÔÚðÉ<@ÀüÚCÏÞm»xç9ÍÍ‚¼0>»]ƒº•ýªù;o¤0œ˜á«}sgú{©DÚíűsÛÆùð®»§#`[‰'jC=dü Î~ß¼ˆ>ÕrÏìÚÆ‚q±z§Ý©>¬êjHÇŸº>ⶨ’±>})Åk°—†°>*ÐCÖ îVYâûa×=°â¸n­~­Oôî˜gÙü³±ä!ŽE­U+á•$”ª, ºzØwfZìéùÔ.ß~߬Àë%fÃ"xfÄÏ[¿žB²ÓíïÕÐÅNg­¤ŸÒm_…HoËãçiÙàh…I®¨ïT<È®ÙøÎcëë(°CO`òSµŸÛÉ­ vái§¸®ÚõÞvM'^*ñÞœµ–ž@â—ÌL$Rʘ}wUs„Lä9kM“*2Í&Tj´þŠìñ†ß3\öÙ“ÈE2>-þˆqBWõž‡ÑI•· VúCŒ5?- ¼»l{¬ ögmgV…Ù¸*«CÁ¯Gj-“FëåkQ*Ú‚”‰¯ÎP¸nÁ¥ê§ÚtÔ¬›‰€}réÚlGñá´ÅÝ~"ËšöLxøh Ή¢ú™Àº:D)3âàѸŸÓÛš«ŽMð¨³z,ù8¦°FêËVãåÕ­EÚm²ñ=ÉØÑ¡°æØéf%ä”­Ä|=¢7HN¢Bül;µçîöôQ‹u>tW Kcô@ ¹n3ËïzÓ0Ü5l’'rꉭooCáœtjåBXŒ‰à{œNT­2DRhö2ÝʽÇb‘Y%ÙX’¦ÖÐO[½“†Ó<ëÑ —úúì)¤5s£žsÄùà°ÏÌ·ºäÒ×Fo`¹’F`Pˆ‚¤¶?ò«U¶Ý  ùb™OÝfâ1ÿ*G2£•Vm€öl¾|ÄÞ°¸LV¤Zk­|JëÕl^—þoö9(TóinûÜâcQ`º¶4³åíymtРa½QW—d/Œª2ÍÄòmV!ºYe©k5íl“…òµ¼mðˆ[?s›“|£F9B$-EvxK©¢c|mñnslÚ­©¨žTX´Pf ò›.Þ±Ö,”EbÓBèþß[-^µd“'¥PÈ êô¨J d©ve‡ Z§+S¿ìøsô*«Ì½áÏ?OHdnp&üë¶x GÌ Ú})G«UWOÅ2ñä}ºý'ÈÿDTgMÚzúªlÿ>jv“ÓBæœaÎIdñmµv\œŸƒ,ª¾Ío¤rÆ< Ø™7ß÷Å— özm™¼<š6qå$«‡à­£„™ði‡1À¶®ýþ"œ<T`¼Ar•• üºuÉ~¸4aGUœ«±®9Uë}ĤÕVDµYÛbÐDÑy½ƒ³*ŸÔ4ÎyX¿–M¡°©A2 äÝõhᑳVÈá}<¬ªõ²ÑšME°è‘𪾛Ž Ë™³Ýþ®Ú·£?„(=z OêiÅj}ÆCG04u>”fÂÛ‰LJïSò÷³ó]!øü]ÃÊììK\Zì5|u—,Ma¤Oá|6][/< ›ÄÞiïÕcO;›r\yhZ郈hª§Š]}¡]”3Vbö6#ªsÿ1Á™1rÔI¿‚zÁhX»À}þ‹c Óf‘æ©Ím+Ý›³q¯Õ3ó©ôïÒ4îÙ½^ 濆ÚéÎ¥äÙëSÓÓjÖöµ{‡îV,ß°žæ™?–‘ë% o“º­Aª¶>SÏ‚t\Nãr¸Õÿ®F<¬²ö`H‹¬^¬1ˆÁé>%F³®!ºDªíʪ‹úÑpÇ:Ûh;{‡ÁT¶—g(I "" ©®iEʽÁ»'¸ÿx-ƒy7IKï I¡‚‰ÛÖÖѼoü¨ñf-Ï– bÖµ5Ròèg?$uÙŠªJŠã{ØØüBSOø"%Y *J .Ÿ}&Ú¾ÁM¾×ïòf-M”à6ää[kÖGgùK1Úc/QÒþ,Wñ«÷” ‰8³›-Þ+Fínuaiv¡¡DwÚØ­f0FgT4Œ‡u<â“3[1ùEð`œ¼‡¨3²­Gv¢*s]«šÐújòµáQük²Ë­\ÌB@(’ìE 'lˆ¶¶&ƒä•®e ¾åT熧-{«Š ÿw¸:/‰ïò>½'ÓuÕUçÇ FÚ‚bŒ†}êh?ㇱ“:×¶5ÕjËyq{[²‚þúØÄ˽^hÜ£$Ë®vì,O‘Ö« ûnú¾m±Éžn;¶¨*}àG–ž¦¢x´níÊü)Úƒ0Ü:ì“ÄÙ–1íÅf¬é¸¡…ŒÚy%¼©’Ï;Q»Yõݤ¾–lexãcI¬«ÉZÒ_7^Ã~á²ADô_éÿqúXeÜà〮GFv†³ëvÉš ,% ÅŸšÑ±³ºUVðeææ!åÂ[=E—╎>`lbSë@¨/ )íxÎì÷\ó¸‚7ÙæŽ†ö išõÞ'Cl >¯æ)è^òž)9+QÜK´ˆ Ö»†ÎMÙæÄ£UgB‰¬©ág£ÞwIN² ¹m9®MTz’É ’IXdz̧%S±ïŒ°òÜr$‰íUß©V‚8ÌÚa÷žŽx­Çâe õ&û¬œ„2Ü: m]Jé‘íXíÓâ…Ðû'<Ž7Þ—Å»AØN·sýŠ‘—¥5‚ìÈÔ¨À€º¿Ó¢Í xtBŒšÂг"÷zô¼‚ÍÍË ­ý¸x{ÍÎrãÉÙ-AvØÅ\ŒC¡ß{Ývz+©}t‘4p“…ÊæÕKo‹¹>ö $’^÷„•K ¼\¾}±í‰¤Ùuñu¸U÷p¸”ŒùqÆË°”ÛàWô#³fðÈš Žls}‰e*Ä¢J³#”T¬.ò¬9Ï ¾Y«ž‚èôÊŠNW©züW/ô~ŽáA˜U»q4ê 5Ö¯/B°s¦c˺Ýíá€ÂK¡P}2ø£I$X¦D{}\u>žçûûú󣉒ÄÃbWùÕs$žôC~-t •Ýž_‡Î+k8'ñÐúþ§0dm8ÓoDâ¯<É"ú«Uh%ÑSOûÛlSeÞk<®4™\¢g«î{ƒçìxåŠÖùÄj"lWWTyP}s.Šª Ÿ"@‡ýV5 o$·Îx-0Ž ìÖ;áüÁA;ùß—· {ßV®­j³Íµ[é #v—7Ü–s•£½ ²|< ͺ¯åÓÚ:–€¯~®²©‹³½]Ÿ-é­³·Kµ`¿‹ï«àxÏýQ¦phQãËìˤ¡GºkÖ V…š¼”p°8íÈ$Û2±Ávj&Æ#clåõ··9Y þIÚ³Ò(¹ƒæA×{2ðmch¿•ÉÐo¢õô{gÐZS*å{o‘ÄfMzp±†3„Q‚ôíPîjŸOÏ?âGº˜€Y‚Õ§é¨9ÕÁ%#:_/½³]¨0è×ß~£U¨‡ „EƒÆ(àË«bOj¦Èлûñ|°Ô7Ô¬yØ?% ؆íõÄ`DWÌ<®6u <ìÛqV€òW$ :—€Qj1ìÅЉ/g­œã¶³@?"_s:lôž³nƒ §‹“Î@¼ÔëÑV†Ë°zBJ|®¼?µïm:²e ¤¡í—E† óε’æ‚øÈC¾ˆ´6¾¦¤-ù¿ð,.ýÕ“5õïÒ:²C8^å…ù¯évxñÓ(“=6YRõˆ Ø a32¯\C[2Þ8öõ†`µ²IjòØùÛëÉœ YÔYzÀj¿=ôú>e‹Ø;ÓÏe£&Ëez¨›=Á&´€Žž#h[uiV³ô†N¼öwroêhå jÉ×c›ÏQ´f•çÏݵÉ|N먪é9žo÷Õÿ!}ªyXIoÃc”yU $KP7Ò‹a°SÊÔåêÖÂÈÉ ¦Ö{üù¢(´¹³Ò¼´¥óµØ³£ÍÏó”½¢SJßê;ÌÄ*(àyw°PÅ]°… }úfç-ÁpŽ$²žx"¼¶Â¸U†±™xx>k¯yËZ‹ïÒ%Û®IÂ5x€_yù®©ÜÑzóÔ“dâm©8”4Q¼I§ôD,ëRXÆšŸž%Ë= KÇ“i©‘Ú’´zà¦mÚ¯v†äruqª óZ¼TrZ¯öÈë˶ÇÕÍh…Ηw«kõ¤Ÿ¶†Rð“KKèøXG%Ù¾¤S§ÒÁ+7`Y- ‹¢Y &™€mÅ+å²E@i¯s8š;hacrüD;Á{cÅ}.‹~ÏôôÍ?|Ào)2úÏþþ™QÿêïýñO~'¥F½µß±Ñór#7z~úoöÄýã=÷ú·$GÇOÿtðST=±µò;+9zVø?$:ê/ü‘ý'ñþŸÂýB{4üôóŸýÉ¿ýñÍÄü‡?ýË?ù÷|Áÿÿgù§Ÿÿè/x0òÿ†—õ‹–gÿéçñ'Ndþ÷úëOà3ÿ”kþë¢)þôó¿28þñŸÿõ¿È~úŸÿù¿ûO]ç´ó)ÿôWº \×?ÿó?úü×4RÔèùã¿þá*üùýù'1ÐÚ_„ k­§¯ƒ%`n½:¯〦6}©–§çÉÙ M* Êð¢ž?qÕöÆyJŽ*£éæ Õr¢=aÓªeõ‚Ùnr-½cߨ)Kôè`C…šÔd4­íáâW„gþNa¤8!÷ÂŽ•öPò6öÜدfcpíL:³AR¶£²ºÙ:eÛ—GŽóÓGÇÁ…­Æ4ÛS}Wÿß*€ÅV4a)Åùß+œ>±..‡y$²GãËìÊÄ=Ð¥õöñj×PÌ;=¶5g5Ha \ÁÁž Ú{üt§e„J^E´Ç;r7{?Þ&Ð=ºÈû4¼_¶Ô½Úvf›øœôŸc)ª=•ȵh€ö%Ý|ôÈ©Ï3_lß}‡ìˆÔ_ÑG·—V±Ñv¾·Zxñ$]WÉQJÕA‰‹c`v/û?Ó¥Ã' b[ÓjJʺR6ÈAÂØëý6û^E3mJV;ÊóÍïY9¯Ùì\W¥³h<ÎÍ…¯ë» kÒ>ü¡üeô/Øn¥JKÊø… ºÓ±?øT.ä™Ú\èl¤ª’§8g¾ßT`BzAgc ï¤|P‘kÁm×årêÔÁ Öà`hkgêñÛ‹ÏŠ)Â,J„Ê9Õ×d%¦pÍÃBÃŽüâqJSÈÿ²·´±ÞËFl‹È÷¬6ñ©f[4úäùÒRp7«µ<½Oí}ævêÐcäóÏmk‚ôò»^ Š&¥]Eµm–2üˆdÙOU¼<<ßšóŠ´‘þž÷u’Mw°¢ÌgÑâj Ú|9„ö@­yJwÏþ×ÇYÂÛ×jçþ'Í‹¥²Ôã©Ù±dâéUû4…Ù×9ßnû†ÒÛuV Á„ó¼JVÝH°«iÈÖݪþ½y¿3ÇyÝCÞüË^ÒY*ñ¤<·<ÓîZœyÀ÷ÄÐ:+ý;â»V'Ò7ç¼vi6¤¶É5zÀn£ö™u»õr½GÛPÎnÛ²ÍÝû†äw» Ê«wë¥Ù&oW·ŸàâHê¡ø;µW§úpzYûÖI‡åxCä ìŽHÙo^ÙLz«±ƒt«›ŠËöÌ qïèàžsl4]=Ô} E¶qÀN¯\ôËqxáôçC«Yj6ö5ÞtïhO!âLÂiËøÖ§ð[yœ@W!pGÕL› ™w•”ol§=Ž€d¿ˆ¥«Ý1 ¹|m«Ø/1ùè÷‘rvlÏ)Dk"ÒÞþjn¢XïL{6»têeo:©¬¿eqˆª‘4‡jͺªGí=ÎCËȯ òÎEûkV¢•å\ÝFº±)¶ãµ§2ù($ÛÓö:½ýU¶û^¶Þr0LKM²‡'e¼×Áw8šJºÜ1¯êÔÇ>+Ìhó¹.ƒì}þ[ h—3Q ÃѰßíe!ŒÛ°¢I£w-hWzÓY‚|ˆî_v`µ>»ÞE¥!4c?2)„ç´Zªkï~âäcIžH­OUlÍáãýC§Çž¨9=ÈyÙƒ\`rƺWËrY•r+…–>»â,9o;·YƒŸóU´ØÙ9º(&ðí!jW³³5ë<¼ÆbÿÔâÒI§y §YcÉØ£<5Ù~Xé÷r¬é}ä9L½ø-¥Ø‚¥’ÿq¤³’ŽíðÄó8£2ƒÎËd‹éh™úË’Èõ¸\cñ‰wá#«õU–özÉóØ;°!žHBO¬HÞ Yâ 2¢'¦]'>ç]‰Ò¬Óæ ¾&66»V'GxÝ,ÕôÒºÞÂÆ˜|=ȩ̈Vxù;Û*™•³šik¢ûؔƚ]‹Lt´ækMÑ;½*ûe [*‹°²²¨#MÃÃQÏ“øÜ¢¶×—¢-Óv]HùbÉ’˜tT™J»ÇzÂ_]÷ïͺx¸G…ŸTÂ**L£ýcÇ̺?%Ä×ludå5kÝ­Û!j×JœšÖ„ @ÐGé¹Zst÷\ËŽ¾š®¦âŽ>â|å7K±‹¦}o$;ŽïcƒulÂ#eožÅz[Rš×*´çU·êèíHx®39ùºÔ"OåµÓ'&–2qÐIŽÇ§t?S]mª,p[CRï…WìÄ~ÔðºðöôiWʽIƒÀ®xïiçõÙ‰ÛÕÀœ»¯vouÚ’pÚ›5SkÖÈ‘tã lŸu%5Þ꾎µÞ¸­Ïýöæ‡~mß1wŽsDð 3© ×–ªöi„zÝǰîÓì«l%|U ŽÏ¿Tëm¬‡IÐuݦjÔÕq ƒŽÖq¿Eñ»€®u,Nëz?§œs¼.'úzPÌ;<ö:‘‡»Í†YÓÚ¥7XW¤’Om툡Ý,$´¿ªÞ ˜ÞŠfÔnhÔ§oõqÆcר×8=†êLèWUخߵKÈV14ÿ’ õ•š¤YŠšr*×Uø‡†Þžsƒ!1üx¦åKsÖ·Ê ïÓ°¼u—ÃÞl~…ï›ZÕl7²VÍáå¦JµÏGpŽâÀ•!@MÖ`»º` .lÉ|t4º‹¹â:Ùp•ÊKŽ §¨å2ëõQg¨—¤~ò媫A Þ¤´Ù´ŽuáwŒ"p´@¾MN”šÂCM1V‚]o,1‡¦”Ú)¾C¾a¼$î(v¦?¤7>×¥1óÕ\Å¡¥¥‚#T—1@ÄkÏiºåÀqÉoÕsê[³Rù€> Ê® q‚¢ƒÉ²màºÀ³_ñ›íz%'ï{æ[qBÓ•~BIƒÈrì@½ÿ÷R\zíÊc +ΜWz^y¤5!`裺I#°ôþ‚Ü=ù¾à@ºCœ^÷ Â΢ —DÇ ì¥*lr{5zV™É¡,uößdgOˆž|X3kóíP%y%ª\~ka¬Wnqë&6›<ìJ²åš°t½/܇@m«{8®¥ ¼‹ë”»È¢£ŽŽTÙd÷=S?ñ CÀ<€‚²²*æ(nÙø9*E ;ódƒì£H›0^fž*Aþ;%§ëL/P5اUÖlPãéXk<@’Í­(0¤…nû}våI›Fá-¥k°Ìm]n*û! ™Um,¶Tª•!&"H,Nô„Ñ:!é“b/§¢.Ž™Ã5 3¶§”¿Ì®‡uÛù½´:†%Š®“PW’içeWò‰x ¬Tþzµ ªA-@Y%'6¹âØEKR…aˆUѤÈ/ün]ëå‹ð­9ßü:ÓÔ¼‹8Ù®›^¿©†›ƒð°Ç :]Q©|†ŒAÅ(e•HÞGÙÚm[‡$Ýbør4®Úäa?´n[•ˆ:`eÒ•md¼ÇìY%ddåR·+ª( jÍT5¹œ¸QGRàmðŸˆÊÀ2[Ä9Ã0töö›Q”‡Ù.Ðÿv/Å£ß6WêÇ(ù\¤TÑ)a˹,ѰN '=Ú¶”Ë{õ ŒïdG‚ɺG±ª/-»!ï·ûkóšvâ|¼ÕÔ˜jÅ£Pÿ"X¥dJ«ã:"³¾.v©Vp`¼?„—Ï™Ùì ¨6žÜAP6ZÃdûjȺç(›¼Qý<å.o¥%Ê$žAÑæ%ÕÖ­–—Rܪ/Ÿ©Òª;‹G&WðÀ°np ªiá³Jö`a`µ®ñ¹Ûzl|<¸yHƒ¥(fâ!:Êâo°tèá…A¤ÌSTýŦ糸¾åà5ORH ­Ó| LÐÖø3Òìcº;Ëê{n­<¸U®LI\}eØ ÐP–±ÍméâU¡ç‰«ž7Ô-v0ÏM»‡o!‘)ƒV›ó¢ì‹j—*›œW cé~Aô¤F£¬;”O…;…ø½¹ºäÆ ÁSeYðNìV…™m'ßy]*ã8h愪³`±¡¶6™ŽeïD ªr$,Õ«$¼Ôßùªe«I›WМ+Í:>;瘩½ØÔ :ýôù.ï› ç†u§:}¶ÓѹÉ&ƒO5bRÜšïÑX’ýœìÌãò°ÚQüsvRà)åUšJ¥C5>¿ ó…Ìê»9–$sˆm‡§Ëܽ$îtûÜg~š¨­ö¥¼°³Àw¦ÙåQ5oMnâ-fÇÀ—v+¯ó6Ó+<Ù2”ÜζB¸Yå —‚J5ÿ X.8G`Ux~À*b“.g‡T9ˆ„õ ´@PÿkÂ}TÓlØ<øzä/I82!I•ìÏ®¯—ç~! w¯¨œ”“Eµ>z· Ðv÷‘™Ú§ë•Mª““Ùãz_û˜¸‚—”ËÛxIÌÙ{SÅ—·É/”Dþ^HéÑôŒ±EÀÇ÷œHä÷^º±%O};7¹îí6ò¿ê³~Âd5‰æ±ÎˆG[I¨ îVæW‚ªa“¤Óïœô•¢g‹Ñ†@"»‡ÎrÝ’ü7:8í8s5¦(å£dûRñìã “°³¶ò  |Ë£è ±ös>Éq5`š <ÙykÓ×ÅÅØGÆ=ÒœêKRÉÌ)>@ a®a%T”\*ÌhI¸‹ã€9¶rEÊÉ ç°‹Õk·-˜ŒíïÀ´IñºÇÚ>ŠÑξog'Ÿ­ øµ·ƒDú¶UIñ¼ºÔ’°µzN<ˆwðc2µbÿâµøà᪠c…K%äñœlÜ’K°…E„‡ež!Û1!oΆ³ç»^ÝmÖ, &y€ ¸¼9Iâø)`ÒÎkö¹6õ9ßä¸Ä†¾=úT´¨kÓúö/ÿΙˆÖÀtO3KÛXI ½ß/镈¦¹ó !_öü:°©îPnÙ­ßÝ™c¹RÊ´-9‡Ê-|½?›À£ÈeÜ`eƒV+Sƒ:ˆQQÅ·­'!(ª8.VcA’i•á‰jÜzVup/âöÐ]Ë:»"ÛùRÄMÔd-ØiÇkDËWÓÃù½eòÄui ^Ar¤ÆØÐ)y.Ÿ@L¤šêd[„™ªP)‘éêRÔÄrSb¼@¦¸ÆK³-\¹J0oUCj ôì6Ê©:ÂÌá@Öƒ ªžš‹ÝŽNñ£”°-éê`Ò¸Í>žß±¦‡Ô7õ°Y<õ2øi£þºúFãŽtB¿qÿq&@©^QTŒhÄ7ž£ 4»H[Ý“¢5Õ÷  hHb|Wå‰cÉó‚¿X ƒ±¦¬%°¡Y&¯"R]ÍN°#Á8»ñ\Äë1Áò›C0€šRòñ ¶=ÄC“Øf}¥#ê{ÇWˆQ?€‰¨ !§+Ž P‰À™µä|ô;NÎx7´à®7Á««´ýœ‘ ®,é·µ¹áq7^BîG±x¼;ZÒ2ön;ù¢—E«z•­¹ì€#µéI6Ï"›çº¾‘»*ÏbçÃçQURnÈš¼¶jGéž·ÐÖ«;›B§hìž–¨ð•ñèèOÜÁ+bß¤Û ØìÖúO½3Ñä+,š‡µ-‘hü¯W»éö¼§~<ÍfDµ¯Ü4?¤ëØ2Mwb^ø+¤ ÛzD&_”âp>sä3Må[rºËV7½ˆ«:€œ²S/áXø±^ÇìA/Êñ–¡$¤V‡¥v¿‹-K ôPã36C0U!•kzÔµøxs]‹!ì1IT*ÜCv`;/Ÿ,“„ثʙü­X»_Û-sü­ŽNå2Ø›c¼"/Ö¤>˜ 4ËRš‡°ççs:ÕEx´g@‰¤¸¿mQ™ þ¿CŽqE?ñ^Œ”î³ÓóÖ¹ ”FÆd/àáY~Dð<ôÞŸí3]XmÛiàÉét]nO›ÉôÞõ\¶ƒBª¢ŽŸøŸ>vS¡i!(KƒUó:âµÜšG}uÕOÚ@°Ø&DÝ¥+k´(|¼Ÿ$Ž>ZruQ@ÈáH»ÈÁê›X£QRe´»ëxçÕû§o"‰vþXÓºÛñE„…¿ZRØïK ©YÞ$Õs ^e%¢â j M›‡J]&dñÙ%Ãîä& kžÞ×®åäwÛ¸Ró’+hvÛ ¤0×ÎC‘ìDõ¬¡p¶‘Îxâç—«IÅxÛ³{Û±V›R·¶?lCO€+#X ‡Å&öŠþý^A§äX¡qv¤¸YÍyœ¥´}`JóÙy0DÈ©-1ª36U†&”"*÷(᪸R;y­yêš0W‹¨•T–¸õÂÊôv] ‰{åºùIõXâ=2Zd.•‘(% ÕΓà:õLFMÿòÑð˜Rûus9ï6WËŽÆä‚V„aNB³Ó®ÌÇyøð÷é¬êN²2bnÔ€1«­ãü]0ƒD µÕã•ÚìÏ*¾f8*,Öµžo^®%òëÖi{>‘‡jóÎ$ꥭW ¯.ëS]{ \3öóx{Gk˜½Ã—[ó<œ€\\ÿS=ejR±ÁÝ«¬GP¬Î^ò~Ób{~ ¤’¦§ÂSµd'~æªj˜ Gü-¸Gý¬Ô%o Oöâ£î qý"¾ÖíÔ8$M]SÅmd©ž Ø{žnÀÌr7ÍÉæ[å|/nc6}15ÑPk×qFà꯽/ö ³«=ƒ‘€‘¼=$¶Û/‘‡À_WU.T ;›µvšT‡V[°kiÛÉnë½÷­,.µçâ"2]¯G²ä·ô) ¨pô·:˜k8Þo ñC}Zà]úu¯ci×ð8ÏàÔ·íç¼QÒºjS[AèÖØ¾–>=ôqaVOnì0¶•–k#ª?ÜÓ5- Žs4Ë_±L¥ÇzÓÆ¶xšDÐì±Ù]vð†¨¥\F„&Bš˪ü–¦ORè§ë.ž“e¨`Ÿf; Ì’ônNvntˆß¼ÚPí¯;ëóðpðÂÜÍC›ä UóàGÁò¤5»EÂ:7¢þ¹’¾M# egÔ<µZU7µð»³çݤ{’‡öiÝá_eX/¸åIÞ-.³êŸµáGuïG7ðn3ÏG^©ç£ç+VÝבîvv îSÂë^ŠU ÿÚ%8Y¬ï3úSÊ ë"â©W‚ÍØÞ¶xø·.ÄÀ¯Óý# BÐj{’†®Ãÿ±Õ‘Å¢zÖðzÚå%oÌ€‚O‡­n"ÑAþ zIiò@þ'6µºNœ×½"/ç‘Áˆ6¥[1tiÊÇ®ðdúy­Ú@äFÙÔZˆ=`e;[yáÚ_bÆm#çá ² ©Hd(j„¬}zЂà>÷Èy•Ï!ßÞGY·’ç ,IÝÒ–Ü6(ÛÛÏÃP˜~G©"4¹|uJŠç,VxìÎ[§]»:P®wzÅã)šx1Zç9úÏÊÖ •˜Å‰*`ŒÓ³á TBÝĨ¾µTÉÈ<<>íu$·Î뱫 5NT¬ï¶€¥”•ìû–kæ V…[W¢ ø¶õÞ.ê{Ùe>‡Á<¶ qÕš8?žÃFÕ­µƒ`?)u<Ú• Ðe0aÎ7aøÎ *ì2Çé¶óMB°™øaSÃ[@–iŦ5î\X½0¨ð­:Wåbû­x·Õ8Ÿ%yè±çN„­ ToŽyZ;N|¬ÍæluHú ó±’ÆADö`ÆøÆ¶#>‚“mªèWQv3&`ækY¾¾»¢å7 ”ó"ˆñQIgE!ŠÒ‹ûøh€pÇÙÂjà-^nMÎÉùbR {Í­Ý £ Á —ÕïÚÚ9Ü—g0ì—ü”´±šÙ–;å–ŸðP‰ʉðtø iýª§>³Ý»Htî+åõE{¨ÕŽåêYËs4ÂɆ˄ÈÛ 'U§¹‚)ÌÕ!…úÆKP㭦­™%duÂOó±IµW:ƒ‰¶Íö*<¸Ù;Úð÷EBÈr’ ÇZ·òõ)íMÛ)L¯˜!Ý{x8КªéŸÒÛ°ÕõÆyóìøioM·Ë/$ SîK‡“<ï»oíÜí»¶§GQÉô£ÁúZ•ˆÝæß=ÇiCQfxÀåT€}TTµ(T”ESÙ7œþ½ý~Z6ƒg<.çšü¶Íçž²t¼ hš1é|{2ÃÝXèl€BþJ¡æ±ú™ÌÒ.¾›-êåúäöÖ]ê¹uÈÈÁ‚f^ú‚9b–œ²*¼§yRëËÓÉÏ׃®ÁûÞ<ãv¥¼ ÷uûø•5©9Ç ª- éõõë†w˜i¹ÓzÞÒd‘]ðác ÏâÔ)TÖŸ²Å\°÷lÇlï~*,oÛ(Õì×õÀ ~ϰ #]!©¿ Çëvpö¹ó^ЕÇ!Û(,d)P™}šwUt« 5¸N óùzJÐ ú™úWì2Wü‰òÒäC-v‚·õ@ûãÜœ-Wgã|6ð ÈÎ<±åM^ Ç#õaá\Õ ¶Ó«‘;Œx8Yñ^ÛÁàÏ¥yÛu¨odþìH{á”oUø¤ÎmçúbÕq{:E‘ô¹ìÅ&Ýþy’Â[îZº7àŸi¯/ˆ_oŸ•}TÖíþi¯­—«›Î¶HáÖ©8q³ÓcÙµvßËU£ÂÕ\eæíùÛP‰f S~/¸~´»=–W=wÛFthô4 Ü+¶¶×„Úi*Ò5E%÷oܰ+^¬&¢š¦­yhzSQþ³KËò´…7Å?nU/ë>¼4áÈÇKá˜ßõŒÝ› èUØm£×zNg¾b\è#o…¾'‹Àoe™Ú¢3(,µi˜÷zrçô‚Á7O%´o4ÚÚ«W=c—cé‚GàÕÙ䛾ãye2jÑéø-±ôð>-é¾2íD©ÇIKN/©¬–¤•[oÇ»¾ïë·ã«–Y.|×d­ô5‚ž…*¼먌ô[õ쮤¯qÅÎìç dý¸ó^ÛÉW£Æጞ9l»#ÿáhXòµˆàȋͤ)|QKd E³‚àl~nÍ[5ýfQ×+®=ý[š‡…õ³oõzfÓ|n²LÚþ´ŒˆÊµÀ¼y"ÆçE…Ñ:c> /ÚR¶”¤ÙîcûãQqz·-•Ÿ^W7„×CB+ÍáLG-°7Ö•ß÷ZMë½} hXÀi’{ {[øzïTª&L“ÓšS+ývCë¾ð¼nÃ+Ø‘Ï7¶£ä¯\Ê9Ø{ÕPÙ×þµ‚ŸW-.B!™L'Aî–'*ó͵8¥R«ÃRú5kj½ŸZš3 Ä_„'zÕô*ÛWµµ2wxñ1ï NP9¯ÿ)-ò¨fp‡ÐýRïhÚÛf¦ÇÀ­Å1¯O۪ДâI¬FÍ.ôÌRx”Bª‹½³ ­((€¢ðûæéµrRר>¤¥|0Æ\{|Ö6ÈZûu6˜UpsÝ€ƒÂË"ã¸_QÒ!p=_¸†úÒÛäM;iëçTßû4ÝEª¶Ã2â>ÿ–&ÖýiPðZ#šýÒ.ð}ÖÉ3Ä"ö–Cg_Ó8z륡‘³"S§QŒÄõÙeSHmc%{‘m¶u„çø> 9-ÂÖýrÑì;½Z›V¼/ÅžiŒÔó#)öûôÓ©Ó®ú| ´ºÎ˜ì"ضæ3=µ ŸG®ăhJ):d|$ùñòúq6S­¹­|7Â÷§1p¢â¶]·§Úß/^5Ixõ£Ì@°qÕAvíͳ>™ õ¸WnÛª§ƒ8¤ý¤ûr¾Â´ˆ\Úù¸Î<„³[õœ©©^(„K¾L£m ‡ãcTô:a¹äëew8ÈÇ8]ÎÞiúßgÀ̦ÙHèÒÙCêWCX«”ûN¥³";ˆ|èDöÊš,%âøAe {ŠÂQHI·-ˆ˜’ŽÑ*‹}€,\6N¥¨#™ƒm8¹£v§Ú"ô6³­QOõÐýø“Ú¶‹w€£3ì‰;ÖyÅå­ì€ÕF€°VòûŒm%o¶&?´q%]‘X©E°Í¾³_;é)jŽ\±ÑûM fKóÕý$«AXÔ¹3ÕK?ª*Ð4‰€l×ú¬x¨Îfû–ˆƒSãØäà³WÓßÓ= Pøé ¶V-ÝÕyyj6L®ã9Fö®[­¥èÿ>byåÕ‰nÛ*m)ÓÑv+—à[näQ„€ø™"'°À™E÷ßdV*¯–BÄ5Su…‹v©wýä­ç)YÏOÅ}°RL“+ö$_“î@s@ÅUlÂ`”R Sëñ…)²:XïÄ‚ž«ò8¯ÕÎX;Z£µÕ‹å)LÜQù<û_^»1 ý¬såÐñUX^dÍœ¿ òÃâû‘0Ä!ë5Ykô™u«‘5ྻG¾†çœõ«f:‹,| €á®ËÁvXPBS×É~8¢xʘn]õóá­_˜CÊV˜UÊO—Ó)@Òá°á}eŽà:mé±pœÊ a§ïÓGÑ"™=}N¦GªäÆÿrËif~T‰JŠ'fvT;Šš9WÊ"[0@Y¯îê„+E@œ+µPr˜Õ¬d¢ã4aÓ·x&NMUº³<^ªÅÛî,ÀµºåW½Rÿ¹u Þƒ(c× ´,Ûœleà=;¬hH"+ßù!röp9çõ[ÏH—ª”úuñäo·‚ög€çƒ{ÊDÍ›ø:åu¿š>}ïKx郯ÐÏ`É}%Þ3Èp˜“‡rùp–È"°9—Ýöf:À‰ŸN¯ý[ž ›Æç0nq<ƒ6Ç1÷óFñÇï‘ÁwjçÃNk43‘µ•yß·Û‰x,XaÍD0 ÀðÈÆã/‡“«ÛnQ2 ¾ FåHs6ºO²¤+?GŒ#ÇaG’øÙZ£´å{¶Y_lv}½h ÒÉÍkØ ïÒ©Z’à…ÂzØO V[Ò¹^‚žï±^‘õ¦íø­Shb‡eåUd/„c/­oÀ{Ìš$ÞÇt¶f~…ô¨MðÑú•hö­EÔ`ÙÝšßI3o£·Iu†A5ÿ&2%3¤ï2ô|õ^žÚ¤ 7u°RIJn…æÖt꽩_¹´à»tdÕ†„Õ§(–Jrq™ï­Ó=¡²²É È„wò”¾ö[å¾Aœu’mðåZ£ÚÌ{gå­ú)Η«‘ë>º!-ˆ ‡ýršÕm{|ÊÒ6"‚ÊJÆÎ|Á?³áÐ…UË&iRš®€-=<è4ím°ƒÿ >ËÎêÏÌDeE™Ø@l£-£ 쥩u¢Ÿ™ÝùÝ^`N³§“¿!RŠ÷ °äu¼—p$°oËYíͤI½}½– €C 8´9æéKfù>׊?|ÉÉŒoSgêË'•Ð[ÍÞÉÇ_X‚ìôdþŠÆ—'UöÙœ}g=];yˆHÜA™Gʇ¼ 7Tbºƒñjô’-ÀrW²^o4°%¥ÆŽŸ=x¯ÙžNzîs;ÁíY°®ìò ƒçñó¬p‚Åøû`±¥—S‚櫳N8Œî^ÍBmòçÓZ¶é|[®œ“'ÃþM¹Ñ)Nk 3©ýÙv!4¶×­{LžM˜Ü:aµïÒ•NE=¨ã@e°å2¢j6óüXRÖ#Ý9{ƒ“Ê-¤\­?Ub…"–=‚Í‚AºØ0¢e!À8e&滇SÚÓÒµ÷eeüuý•"4ký¨@Û&Ap ï¶PÃV~œÏÊö}¦H ^»@Ïà^Áñ6¢»m“§ósàäÁfu8^µ‚œP…e ³†+‡á\v†;R# Ñ_Ô†¸OZö.tiÕÅzÔ* ð=Ua‘­æŸâƒ&3>õ.4‰²Þl˜¨Ä@cT T³H%3ªá扽¾€Çy…$2„Y=¶ÄóÛŠ.è+Œ WiÅ­ÁÍ\/qS¯¬ê‚$Ž5Y<Çj?¾*ç$Ûš‰ž·â5Ÿ³%ã$[]¾ÉË!Ûˆ”§]Ìz=v¢9)Îvób9>ÃQS5sªÝbêoÛ9éä¯Î‚Nº!êÒb×"cóBæ4‰Ëg«üçÆHÎÄèô‡ÉÔØ‚€,[;ÇP‘ ­€ëºí©äé Ç;' °Â–Þ4´•,_œ†rªp¶OxÝÕÃÖ[trH™H5“×<ãñVn+Þ^ûèlTšßZµ)sMbRŒ KÒ‰LcBì×StãåÚÃ(Õ¾G¾ïÉîzú¥„dyƒƒ¯Nì@mÝ žÁšHc7!ŠÌ>Ú­h¯ Ë¦€q{\ùxê\<œˆƒ h;²«ÀIÅMHé¯ ®¬¾Ê'¶}Ä6‚aózÁEÑw«L Ù)jE³Ò¥>9Y†Óg<³ œ,üœ-o¬Ÿnå^w“Ì”mûÀ%±ÊËs5‚’l,¬X†2:Kõ…¾ˆÎ}O]µt¨šÊðñ ØæÅF€‰”½Pæ«8𘕹& yÂÌÇŽJõ4æárFР%;f<‡â’Ž€½5Þ\£åïÕHÄ|%¬aéṦçŠÕ‚]€€ïËÁÞ·Yb›iYÞÎ$R°îbû¶>CPÏ¥,D,䊣»h#0÷®*a¨nIÇPí÷ ÛQ<¹jv´¼zBú|¤Æz¯ƒíù®éÅëðL“d%÷[gE£í¢$D”ÀVþl«â¯­ä{ÖŸMýCO²r}S?í˪ƒQÕ)ªr›-y^í:‡HhQÇ:P¡AÙ¡)šÒgBç)5‰ýx®Ù }“ƒÎÜ.Z'ס5QÕøJ dÅS-E’­Y;YIñ=‚\÷‘%#°=•@®r+ÜÉmû¤çS.ÝÂu«šª‹'=ºž'ÈÔ‡š2§Q1+w\¹¸ìæéáϼ˽/2Œër”%Í70¾ýWûÔ‰v£8# å°¾ÜÙRfôc4µJ<ÄÏ~Ì{°?ž;ÑZÛgÛ•çÇ À糆ķÚ¢Y–—cÉý¾ŽZ*É’ÀìíñÀY90›ª|Bõ›¥ÙœñÍ ¼)k`÷d%©ÏÃ36]rmKoOµ¾al5'E¼“‡×¤|ŽF÷ÇQ¼ÚÛà|ë‘mð¬ÞEº!Ð>p_B¾‡h2ú±'0ñ÷E¢Tÿ’×=¶h—0}D À]ì?<‹m„ÓªO¡ýÓõEÕ"³•¦-ûº(&öæ£('«—°;3cÏèíèºCÅjjQ!îÀj)jÙWѵV¥ø š„‚Qo+óÌñrù¶Gù¼»/ ¢*J[áµ®½óÅJùØq©Y«sƪøˆ„&ì«9¢Õ_ÐÝŠóRÉIêv ¢àqW¶†˜YkÚÓ‰ø§{™Ç½‹FÒ~:ñEõLÖÖÜïÜ4·—ìá—9HÉÊ{¥ ksjòå¡°;‰ ‹§Œ5x4·ô¨*È·h2#‡K±D6‚ïÅö”ùz¦î£~¿‚†éúëÊd«»SØ/‘㪹å§j×°Ôz“²>[{«í×5HÛ§ÇüGPx• ¸‰Zé5¹JnÔÞ&ܦu ýDª"KH_Pxè{­³ë¤„Ï…¸;7¬ðP€ Èl6«[˜$ô ËCÆ(Ý0IÕ¯äv:{„º€{e?àŽÐ&VÒc¥‡ÁBßÝÌ­&Ø«ô‰'kA†ãaöf;`ÿ¡Û¦2-ì}|8{h—œ¶]çü°Eœ>Òdjàu–Ë‘ø²S•í\Ôæjý(©Cš|+׿lÙqÚ•Û¥S‚Ïßµ=ˆÅ™Ó ¿-JH…5dú—¡y½ƒÿÕ^}p¹4ño³Úg³7Ië ¶ƒÖ;­§.k'P”˜*¢še­7l/¤›˜¯ìåºt;Žæðàxö mt¢= MåÞP<Ý(¹¯iJÏ…é$G"j]ÇtŽ¡¢¬®ÍäQõD`ˆ~²âmú“Û•u°½.UtqLMKr½³9تRŸáx(©á³îh~HBÂܪ—ަ¯l½ÅUºÎÃë:Àu„wƒîCtœêK“x4U?T8ðâøÊTÓrªÝûLàHåâ¿÷W½ÎùŒÛ»$‡TkvzêÙ ¶yR`µ2Ãí¼C‘¬ª½4 ¨”sÄÌ™ŒqGV”'Š´³ ŸÐ®âéhò›Ä ž¯cݬ꿬îA±¡£¼@„ëu¶ž@‚|¶u‰k«loȺ»zêӲǟ{.+åg£ùí%õ%ÄžëÕhëxôÁ–îºDÿæØPr¿žª­¢bõ*é€/€Häî3‡É7WÇvÙi@Єîçme Õ\Õ€º¦22t/Ž’ ­WQUÝ]È"šÍ²~hÈKµÊîtÐ$µt]«^Ð ×ÎÞàù8Cíe¾›Ê‰üƒ‹/] »ª‚1Y? g'( 5§ƒbzH«&µƒ4]k€çpOÇn4—–ËŠT8*h+À¦mŽÒ4’N:„)[Ö‰)Nˆ˜Ì BÙÖÂfBKg9Ÿâ®éå$Ð ·›FËo!1wK‡‰oÕú|3x¨ìŽìߪ6Ò™n÷À\DnPªb0ÃV!–i}¯÷è.+] P±ÄÏÎW’1¯áñ¼Á}Xà·ƒ­D>¤.t¶3è)t´¥R-í¤/¸æÑ_æKž±C´ùÚx‡N:ü´èžÚ½EÈ—ÆYêÈgnÕ-ÊÛ²Kކ%Q=”bC|áÈPLb‚-l~'}+pŸezÐC׉À'¡X._­e ð€»VwY1³^+«û…áÞj%lÒûw^Z­Z²yÿ`yi“÷íX±‰TíV›ÀƬ뷘-K¿&!ÈN^ÖjŽËþѨ¢¬Ç5¼MEÔz&9›ÅT«&è½ót‘BŸk‹bˆÉ ˜Ùiø(‰Ýqð ¯ÿívÚAaÈÖn²ßÀ~3zÒ%‘ˤÒÖÝ™„8’ì«W„¢kUe?ïW-$BÁ£&êÐòM?»qY͆»‘“x¬Àm¿øcV%‹ÀÔ à=I”ƒ`‡Gàcú`ï²nÕÞ¶GÙÅÎt%{ÔÙ./ËÉ6UþÜDx¼Gb‡ñPÈ•ÈLC{Å;v2þóÜàœ¤û¨_Ûj÷!“MŠ•\^ò~¡=}‹#G¾`@°·©=›X¬F…Cx{]í3µÆLºÝ‹ÝqQÝ>>vyȦ‡pNu—Í çPäKŠhZíôVSDM¸¤ÍçÆý—¢JÐÀ¤–Uж)dMÉ2Œì÷x.p=™a-ï“ àq 0ò@}»¥’ MÝziÑgR´¬@+X0˜Šò†·ê›IÃÔIZç¦Ã˯…ã”À퉕y3ªFCzO»ƒh´«ŒŸ_õ‚:ü¢p¼‚y´Qž:é0Òäµ2¦D(;4ÜTªÇæLÝ·^bv›Ù¦ ¼/A"èÄ0L¶;VÊxÕº³]Ëžpå=Á`lBS2<Žº“/xúñ ·=@R~+¯)\,ª#v ŒJh|QÆÈǯ¢|:±ZqViyÔ<58Dµ<{Š—Xjq/Z¢Á}KH Í"ܳð×aåV³æVÆï4ÈNMÊýh.€„–Š<( !ÿv ØPT'´ÔUŠÙ'h¹á±™i2X_#í”}Ɉ³ÕÁ“ÿ ž>c¥Öìp9O” U¯‡T„bÏëìüÃè>à·‚mïlû»‡`Ûïìlû}‚m¿‚m¿ÕlúÇ8Ûþæì?‰5 Þý]‚mÿ…!Øö‡!Øx6õŸ~þË?ú¿zýÛC±5þôó_üéýÅ¿þåOêO?Ï_~j¬Ã_~âßÿÅÚóŸò¿ýò×ñ¿ÿòŸòüæ§~úùÿüå'¾ï—«^ïo~ò‰þü/õ#×þÇ¿ú‘ ø×¿ú±üôóŸüêG.áOõ#Ÿüg¿üÈÞøùßþêÇôÓÏÿþW?òQñ«¹·¿üÕ|òüÕ|òúåÇÄ'ÿç?ÌÿÞÌóˆðUQ1% ¯ºÃNúÁ:0<6³þ ßÁ9XK\1«|èa§FÌá~SÍNA&/…»,{ôigöëpëT( ˆ?Šwu­FÌA=ù•“_÷½µú˜ï¥p½2y…¥£µ¹ý𔥾h盃ÂzµZ¬mVÇT±zg×âW3„~Ýu&¨ü£yÞ¬Žœ³DÜ&‘»(®ÀR4JÒ*u›_-„JÝW~K²ÚK•4"áýè—àQôú²6†Sû`ÞÏôô-:â;œ\sMìÒ¯'ÛzžÍ£ŽOÔ›¼žY¯#ëÌ‹`=––ÅEßE½L5(}”4×­æ>Ÿ[Ï6±í±Ã 6f­÷V .Y¶Å)XþæóÐáÖëzu½?µ|Ú§Fæ×ÏÁ‚-Ý}¾ZOä¶Š<ÒsDÏ,ìVý°àí_Ïõ=Cl´‘j‚’ÆW-¶ÛC ïë±U§úã:¼eªÛžïf/k¯çrûkå­¾W‡›3xÃÁ.eÍî­U'2;©ÍG_p¶\¾ÆÑù÷ž¸«$ÿׯ¶AzQçÒ·ÎÀP­â1ýt¶”aý Öv*÷v¨w™º.´Ù_í’X·cžOÊÝçqãz¼È©-fÕÕyÇKéùÍk6¯¥-,­!kÆ6垟®ë“‘²²½ÚR(¡å]v¤•gXÔþ´þÞ jÏÝÐS{Öþ`‘©‹™¾¯½UñýÇ©ÿ¤|¹º÷v\ß’„*|¥ÃÁ=ß9½PYGÐ<ç+6†:…Qµ»Zv婤•Û~Ô@ÿZçÞy†Ý}{µç·YùƒÔ§ ßx=Ë$Z7—ðeÙ¹ô餺v©Ñ©þzï¾õi=k¼çs¾Y6ŠÝé DtqŒäKùJÖ‡÷ ?Ä=R›žÿž3Û1dûçÙnld¬uÊ’øüfãØ€Àöc‰;ð2š}q±?Ô)tñ:ÉùÄ®¡åí ¿Ç6[(íç²ÊCjý{ØÌ¶&²õ8Õ+èÓŒW¨W Rü„íÊWѲ¦Wa¦‹·ß²Jôå}êûõ¡æ»CÛê²³›_Åïõpˆ†¦v¥å½}÷üʼ´úa ËËÓñ]íñ¶DwT9×Ù×¾“³7Ïq­¨*8{e»·°z%)Ô‘ ¦uÆBàç!Ìùj©£½f4}nË…Ø·•üö©¥ÅºØ(=(Y÷´XSv ßÇÛYäwç n/øv^’7¯+Åç`mo§K›•ýÎÓÙÃ+Uq÷"OBŸ>»ÕJ9‹ô&¦òŠÃWVÖÞ‰çq׫óúÒçÐތˎPm‚lpxÙÀþ¿÷íú°î¬àþrbºÞÙIôÁîl–&Ê[<ÐÚÄ£É[ûZµç÷¶±kÕ¥GxìVÉ Í·2®Kãà`ÛÎàƒÊíiöHd^ñ«à¥Ö šÓx€v†¬oeÆu}z<ã÷ª.u ØÆê1ŸjrÊË®g??î)¨«!¹ÊnÉæKׂëm>ªr ³dKß,"gO4.â±Cx~µ4BSw®Uôx¶·+ñÓ(¿zV–óØöup|õ1çQ¯Ž}\ƒcˆJVÈ·âÑ9«l}ÇǃEvÉN©þÐ¥V…CQV"P·qˆdž‘Yr´‹×Åù0Øo7KÈ×:lÕâºnW­cîÍ;\¯E±¡Ã¬=¨¬Ùª‹ª^}BuÜ Oê§®Oý%Á/eá3‹‘½«ì͆fÁ«Z`¬åá04nÕϨ¸UJM·U¶¤Æ®·Z·ú²ftks  ¶ž:½ÙõWy"9Ÿ(È…~ÜÑ6û¥¹'Y/é7¿lVGÃO±ÐPf_êÚÆéÔܶtU²—ý&[Ozt Rø•ß¾RÃ>ãn|Ë Ô¹yyT ³2&d»\ùxu;¢M%Y ô*>²ì©¥ñ<2ÉתáDsﲤ‹zð¯žÞH¤ÕP¦žÁVò”DÃâö²CÕö€~€0©@VgEx]EÅ£`;ðç<Óç’$;Cì R4ÏvŽKÛ¼%YÐ%Õv!å?õ•ÀD·0œŒ6í³aIi'Ü칃Üt~u…x=îÝô&s~iù>y®d¯He¥òo֘ѦáÓöÅ. yòªG¸¬üîåࣲ2*Æú`¯}ÀÓ®kGwyBJc¨˜ë°®Û®ÔXHm"ÒéÔªÃOÝÆÞGû­loÁÉ"¿(ùe“B*u4‘,{YÛ¾Øæ¦Š#¦ÎÊ}ˆæ À~=‘@*=+!þ’ÜŽ!˜ÖÈКÁ‚/Øþ›ÛŠj–6ò©žÇ'™ƒÁœ°ŽÓÆùBöµ cEAâ+Ù×6{øÝµì<|›ÍÇ¿üˆ |§KŒi¯ÖVô[ca]‡læì„-b@h'p"ûŸäÿ:pm£•Véڣ鑵¤ ž! ‚^–.àe:èËh79Ô7+­’\9¬Ÿñ>ë³z\”§ohh¿øÚF¯„P¶ XkŒuÃ\­Ú' êíBþ-ÖÇî“büíà¿ÀƒUÑþ‡ŸŠrYá4m›X,¼ÄŠFþ­Üíg'¦uVàgîDêžÎl¿Žõ>G–??¨>Í4¦ï¦3wb&Wn˜NðeIQÙ¬@¬zÖä™U«ü€:*>\ZoiDJöŠlæ3rH4‹§¿!y,!kØœÔ%» üö)§‡ÜB_ã=•1jáʦ.²´#Âd(U¯ÍrãUKÛ• 体gŒ /©5ö“î•§VßÊýôÏ9Cš^=õîtúù.`ÞãùSý .†eú4Ë«²64á*ê®|’–E>ã‡nê¨`÷‚´›­mÁ¦ =“mž%+vƿغVüãæaC·§íù¼zÅç¤Ä¤wöqö’”zÛ«„ÀRØ(@ï†úôÊâ4²Ù£§g*ê·ÚcD±c²èaJM²3U:ê¬;_9yÀùè`¨¹:žWéàYÛ¦3ö‡&‚{þ©ƒ8ÄXW|”*äƒaŠUó7Í C;Ýž<­¡±¯7N'BŽ‚òŽÜñ]…3½ñ*ŸÆ¥’¸2õ˜¾„(sÀšÍÑÎéÎ.ÖMÓ–ûíDŒ(¯óYꔘ›ÌÀÕ|´I®¼Î–Ì4÷=T ¹uû7éèe3Ùˆ‘[êÓ³¸óÊÓ߂•Eó&É„Eg>ÀÒ[û¶9eÝlgG2Ÿ[!5’Ëpî:Ž/'¨»ÝÂz)ççt~‡µÚ]Ê!ŽOâ/IOšL²ZÀu=Ølãnóô“|–¢Ó›‚¤¡{pȱ·¿Ï)ß @™›àÚXÈ* tV®fgÓF¶G²çX“ýy»Îæ¾ ÚÙ[B½¾›Ž ³£[+ Ø“F¾D±n"/åð¨`o;&;8¬*¥žn3^Jˆ°–œ7T«5ÅRäuÔøþ¤‹0v½Ñâ/³ xûI·©ç“gÝ5·® „Þ4\Žp½Ë`˜ì6ÙÒ¬¸Ü€]ì÷#q¯“ýÑ´Áv׌¹‘Å ¢M–€–Õ@üïœ<°ÑùÛW9° ÜÏz'ç<¨mŠ¬è‡¦, ÷èÌ£•…–Mæ,ÎZ²|—=žtA¹S¾ýyž°= n˃LÇäÁNd Uð<"]´¦Ô!Aúk×V1@å õ‡’+åÝ®ÁÀ®f=O¤«C~º°eÈaöY+Û™Œ¾ž>0\è5ài*lõm¼Ôlc[‡<ÊŸ±7†H¿tŒü*ñù:3¾G Güd­| ÷ø-5_‹‚Gä¡}ê²7•p M+¶õîÑÒˆmªºÈÛàã¿ÀRp¤Œ ¶õ÷ž Í#ªòš­À7aÁã™KÓò-ãvåqi¦gøí–ÆKÿ˜€ÙUçYãÑ,kЩ°;^²fÏK-9»Â)ð¨¦N^ßñv÷œf §†xáÖ€Aã¨5Þàqm(œv ‘8R$**¹¨Å¹³¤^Û2ë|ôéQ¿<y`jò:µ„åÑž™ÿ†)i‚ 8&¢hYÂÎ$2© V}úŸs1äâK‘µÿ‹…€gµ$ÄÛË€½4Z5gwIØU<ƒÐVD†ª“](¤úœ–U°ú²FÇw$Þ“¤xvàÝC7M½„㪫©y¡ðÛ5È"¦¦3¤3lÀ$Ö²7ÅÊE_ fŸ]opÃìùP2-ÅKX‘áf=„€"HÆêûÍ7e¢Ì0Çgލ½‡Ñž»YGý6!fö‡7— Þ®$e9†•”Q$c@œæTì>c¶®¬÷Óʈ'í|Œ瀪Eã§ì£–òÖ~±7çìI…98u»²´J7V½Åõ6ÑmþY‡C¯¬åtˆ†me ÏG®¦ØHĵԮøl/wJ¯h¨ìIÄTy’°˜<íV÷çX¤)ã,¼‚sìn´|ñIò©<¡mÁ¬–íD )»œ Y™P#¼=à¬ð‹ŸÅbÚ(ÎwHþ’eýˆcºvUu6œÚ7ëš¼N¬×(,_7;qGf=Oßç˜ÌúªTêvTJ}’ ’ÙšÜ+Ükp¤“½qéÞ¤y=½Ìã%”á±3ä‹üŽ'K"B>²çUOXŽ~J )]͢РžuP´(u]%p%6c÷¡KG (ïüŸç$ŸãmëºdÞìóò%6µŽ`7o® 'ÎÖÐH?Ô–uuƸ”N¢e±ûÒ#îqïÃ1kcX=Qó8ZE5hÌokN×ŠŠ€¯6ð•®çJi@Sva(w¤`5 ”׎øSÚÒ7±³+2`ýªÝ“>.Å#4`ÌùThC´|Íú˜;ÍD¬Vbx‚ýhEéMù(Z±Î+¦÷]«è W³£{ê%Ø þ8Wòház–˜‚7ì»UÞÉapDÞñf7žm]èø,•GI½¨™rwlW2ljiª3ÖLtv€“РCyû¶qØÐȆjÈ9  y,û‚·5Êp·^£§N¯“*€õ»¶n»@¿ê>ŽŠðÌatŠhž9 Öå\‘ôa­‚ ’´¹‡]¼þ´f¹#—ãZ¼”i2ȓеHƪpzV—thªö—ÌtFמËIÿÇ'Ÿ¶eÓ÷¤îù´ Û$\ İm ©ÀpÈ3dTuÁvk<¨ÜCì>/ºËÑA°ß[¥¹ão¨ŸyRÁêQâÛóܵ­,ÁÑf;Y&fîy4›t¾œ ùÎQõ䱆?^›ª…<ªÄq–;w:ÒÊ•O¨28ïÇ‹ï%¨°¥‡³0[Ñ~™'ì™Ösó|Ð,”íݶòÀW%·ÅšpÉgÕ£·Ôf¡“¿j X"a}{&? ]¬¿fÕ®.7(èÐfIGZ/Ìr—„cÏäÙueH•ÏýLºc¨ØX—¦Àº4{.5 `‡«÷ÎC – OKsÞp]Ÿ d#§øÃ£ÎÉ:ƒzJCqùRôµó úÔHÛã0ÂU¯õ…XÞÏã%ø¡ešøòœÚ8‡h&ÚÐÞ2ÓPµ°³<šmªI'´³¼Ô ©º¸ný,gTòbÝ¡±äë½¾`^bÒÈ&a©3«v±@(ЧÎÊ~ù|jë…¨'ÍT…×~ óTЂä˜5œ.Û†ö5IàõÕ[½Ÿs°>•A? %¾BãñT;=ÔÍœ[A˜Ï _à-ìœæ E1ƒmˆOñðc~NŸ?Sh1´ù‹úÔ¿êÄÂÆ¬ŽzY[Öí|*Ο¢zé0œ› j1,Uɳ§–â³ú$K¼·sq|áÅnÙÏi°JŸ=ËÐ<ÒF¬bÃWg°É fîíìYL¿¼cQ_Z˦ØT#Ö;dÓ)¨›E½käiÛ}]d=êmª€óó8mm¸<î$)=6þ5…¥èQfd½w"OØf&²ÈT v£l‰-œÂ5ÀkvmÜfý-d°4¹jäŸ9B㑤OWÑånªn˜£½Ê¹¸ê¥¡]wž•÷@Ršj`;yŽôœ §ê ÑGê<6|`¶[„ØÊsÕ{€*¯ËãsºˆŽÇ¥^›è¸¯suêŒï»ù«Qø³2öÛÚÜrŒí¶)óa_ Åá–#ƒ|=Âö4%}Ï9É[Cvô±Y  xàüa% žyÊÃ;U|ËŽçÚ”Yâ»$ƒ^ʬk»¼bÒ !æ²ÓðVQ JV”TÖ0ÔVñ†&ž„\í$á#Ñ [Âo‹ÞqÝúG6qêÝÚÖmœJÌ|•©Ýþ4ó¹Mî®QåØÙšÓv⥟/0•÷ Å¿¶Zë [*ÚT° `UX4¡Ï 𢤓J¡¶ ’Úˆ‚µU¨&hñô~äÔEbQkœêyÊÑJ²íálª$„H«WðpͪkÕø:mug{ÛØü"H’ÁKkK¨WlUjÊ"L^›VÚW¾W ²e™Ž|å¬èÆÝ°·MíHÆ€_O#è3ôE ª¾S…í¥@:tŠãgµ]£bÏ×í¢ª,"E̺ÃT°ñóºÁ DØ«y ]+[% 6‹½|3 €]~Í;ì¾”-S@ ôé¥`×QxÛ¥>Ér•-:›˜Y’ö‚T~P¾væCajÀÌöz}$\Æ—Ä¢íë7½£/Mr ¤‹N²ds½N¬´wÆs:­øoiyZ÷±™ž£Là|9R®9®=ÔN7`A½‡š¢ÖåCñ+O­-}_l›xªeÉûõHó²+uðôoÊMo©EäWì˜=ê^j§§f Ru–9{âÈCYC¢«ð3‹3i«CD¹£udÅN‰¼·jYÕ†ë¡*Ä’}ÎãÎ’¯w( 8›J2ú‰«Mc‡£÷S# @>ñ‘i«wŸÙÝ\ò§ ²’¤×§{º„Oú¡X Ñ鲪’¾(D_ƒŠn6yñâ>Û3AˆêßÅæ ѨñÔ( µíX–£Oõ)G.nw§Ä¼RŽ"±æç>z¹×VÅ& ³o€¨­é-OÄ.[ØfµŸË¦=0ö×oµ¼<ÆQŽe^à}i&#ÝMßÏл$ˆÌ'š“Ù‹ãá6 YKx왲Ìó¬è™ªÇ§ÿæž?œ?¤åªµwe`Ë­ºšÊD œÊâ PÅS{ëÅ[}ßÏFRç†%"ŤˆŒ*U ŽX ÎØ¡eÊ_mˆëJôÅ ÓGÛ÷;~MÏ«¸VÔ· ”ÂJPRâ²ps@ Õr}ž.¶#ÌK{ÕŒxI|’TXpÛf§²šA@Xµ›‰É3EîïRb#ÛPôœXÖ TôáS­áŠá¡ðüýþ¾:il†«‡ý6dïº!¹meùÀÌønWÜÍI«7ï>êíÚuÞ×Öñ‚|>Aª Ú?Jä¶·«Ý‘LáÉi×Xcq‚Ù†ÏYq€¥²Š 1$oЛ.XPR^îµ5?["÷eóàìÎñnûyjÑ‚xÈÞäN ß™—Ñy'×qƒB(4(øÑÙé*(*nYè9à°Ÿ}û`ù|‹ý¡]ðy´zÿ(ËJ°·zÏQÕhVNu¾)«`n5…»½Vz¶©KÝäªÆÍ}šë Kd©¬‘&ñ§*&ÿ-5›måᬷrQ—"ŠA<‚­d=Ü{«ïLÙ2PF¢séaÙpg±b#6Èû½4¹TïIRÌ-ÚVI¸_¸7œUë"UÝ œµýLóËúTø´=^rIþ‰mŸêŸžÂ­y4y JªåBÇRõ).–”´6ý¿¶ð°,®'WÐØ¾AU,J¼QaÍÛAÉáY,Ƚ€)üHÉv…¾ºçHs~O,Ïiƒ¶Û“ˆaK™(À¶•Ù¬YÛJ>«‘èÃj-:5Æv­xdQtk`mŒôC×[k¦E±S8ÙOW‰V vÐÈËÛ¶Ý¡:ívÙkHZ쨸1Õ~Í*&*Šš–ÔyIËyšðU•i[Nе oI,-}X -jF}Jh9È@üPøFÙ|Oð¹²Å+¯X½g!/ý½îey]oÔØ@m¬žÀƒròçµwƒ÷Ñȸ¶›ÕÏ™^¤íYs@.ë¹ÊÀßj:™%tÉ Rí/³5½îd˜€¯±ŠC7òtBc¢™†üÂÂÕbÍwT§×à³JËŒ?}vsq2ÁN'‹î TK$z ööG°ŒÆZ~´XúH¿•à v&žw‡#háªòä7ª×Su„št™šŠÌjT•¥KÉŽ YÛ)(pw}:ê@ª¡H¤ ®É+%ÀßÝ6Ëâ†Bƒæóù­Ó[mÎîÎQÝ—Ò¾„·< Ûlºý¨t(´°ù©[_ñ裨دǂŸ)Ѳrý¨é®ØžÂç&xÙ<_·µ_Ù[ã×Rc_heg϶G-öÉŒö@žB5Çájà>X>¶·§uŽØ¯xœÐípÏdËåÖé¿P;–äue»¾Ä‚JäF ¨]–eúœõÓ:îᨯB€¹)g«ã'±^7¡w8§Ó¢ò¨·µìï²ZE¹µ!T°üËŽ»–G>*¡HˆêmèçT[«‡¢±ˆÃ€Ùó²Ã(½c³´vq€ÜçRññ^6mmM~r~޵»‡ç7XõmÎñ{ê¡.1˜€Ï_ÚÌ»,rœ6ÏX5+VìzÛOPŽ=[ÿÏ<ó¾4]ìÊÿ%{ àsãNæ3¨0:ÒîD¿‰6EÑÚwæåØéÀ_.[‡. œƒGFˆw9•üY‘Ô²ÈÁýÒ•ÐM›X?\1œ¼­Ì)GÖ¤ñÒ/«8‘§î«³y;:绣º”š~³Íx|Í’[i s«îVMñ@ŠxYn½l²ù¦Tulڎ"‘EH¡l¬Ž·ó†ûñ„سvÖAv£{îes©³<ÇéÃNÝ1³©@OÑ¢#„VvzÏxL∎ó0—N{š ó¦<ÖîóV:ÏÎŽîo$å g_—bžôÇóê×RÛo'„´Â²âÁïØÅg¯Ì÷}Ö‡“,IsaÍØ×š\ðÉZ‡Øì›š}{ËÑÚe?¾Èg${¬ye5&à²â õ ŽË†€äÐ/èȪ8÷ç>aÍXš²WE‡$v„ÿg5µ¿ ql{tŸj\ïëQ®Øbš hy’pÜGx×NÈÚ˜}ì×;ƒJ’2fŶ=VŠ!0ø‹ã}Ö•šx_=hàA|¥‡mð|ø_•­êH§u«…°áwŽY¢>¿`éð’j4»bõ?§öÚÀ8Ù}y²2¹kx°•R÷».§yoKzŠOÔsúÿ…Ó¨{ê+–Ó ¬CÑô|$õSìÓ“ ¾¬L,«6ç±×vŠÐ ]ÁŸŸ­j+·^:,údÕò ¼·ƒè¾^yüð|\ix¾öß‚‰l/äÍ'ð¡ÆÆWÝõæc•n]lTë\“˜ÇG'=g+4)á뼦w®`Án=^½ÛΙì£F¤×çæQ ‰Ç`¤3ÅÄ5™¾MsôSÃ]OIŸQ›mŸÿã)Ù­ëµj]l®Ïƒ­:_ýçÙAÐ 8 ôK ?ÛJ(u»)õ#cÿd¢òÖê¶7Qx¦ù"ô<°¡lS´,£Æe8YU ÷ëIAíÌ]Ë”€¹áØö5÷ ù©*Ä1¶Jþ 'r¸n´¯S™Ä”y+ ¶û½tª*±yLä`‚£ØÅ…Ã3cýéªçw@'‚8,ÙàÚ¼ 6̱ZIÒöN:ˆýXUÅø\ ÜÊÃüXÚ`—PQ—°©"KK²å_ä3]:rôJ)ëª\G†@ÝÆRÛO?wá÷Ë:¡·¬K£s»ƒ÷: ú€EIÜ å& ——&a€9ÿ8K‚ɃÛ>¼}ÙAòzØHÎq:ÿ«ÚBÛê¢aôíí9ÙÎ+w°²#{êSÊšVžS6nŸâp pN¢¶Z®õSOú=¢õð¦¾.Û^{û¼ö”î‹'òz¬Ôûg ‡H.ŠZšg<½OÅ6Œ‡Z@Yä:3XÍ ½ï¤íôd OÔX¶%„§Vëž6, -Ȫ,­|tÑÎx9$í¡Ðå™’êý–WÆc»fyuîKª»æ×òh üTs’8ɳb×äëº,,õ_u_²AÂ'–Uš„£¥½Ó¾¬+­UΑ’nÑd4Øf—”Zï8;„ËK"eû¯ö¡Wa¨›«SFàû±:XÎ(ø®€$ùr„`³6ltò ÆcQÝ8–“Ód›„méôrLbSµj:ôp´l,뿵´Ø`-§x´Àp·3ÆhÉY«‘ÚCýbðØ ^§áÞ+..åâ6ÀÊ÷Œ„ •m{iýØäüI´"þ(¼¼/l›Ì]ŸË– |u ž°,-Õa&/*‡Ô}ù§Í$Vñ²«{¿9©s¡ÍYÐöMkk-J¯ÍÇvA;­0²m«4BÖ {.-¦ëü‚V¶^°î—zk¦ßGÖãN€ «‡¯l5’ò÷J#¼À}ç—Ôwð Nýs š]Í áJÝ)8%ðu_âò;8`€³ Šìòm¿rÕ¡ÔÂxáÝÅ¥ú¬ªîÔ¦fŽ< ;èôºž·+öXé9ÅqmýH·Åô´”/¼ãB° ÷‘úàA–ã =/ rV'6-(_Ó“ðlÃzìúh…¥ qI1œ0Ð…b²xS6°ä½:½:Âuücnu=ì›±)ëLÄN]Ú³»kÊœì Oü›¦¸¬ ÐD x³f~È‘¼¨œ»æZ-e¨Î£«e‘HYY‡z¦î ²m"¤K…nYÞWáMëçwWHô×ãûzRsljRÐ[‡°âœ‘^©¼aG$j>’öd›™@¡ŽPª4d)GÓÕ…ä)Û„›Áã³ÕD¨¶]gŠÊÞ¤w`CŒY»’ç×9ó§-!Í83@IŸ*õ‰ªÊ¸ö¤;¼²U¢ïÅKŽùˆ[í~øoÐ55Ó"$µÅfòõÕ˯«: .d«jEϸ¢.¬K'b¿j‹6æ{‡#î»#cëá\‰Ö`‚ÛZ¦âÌC­[#"ªT¶\Àþ.ðÇm +MìSO}²0ãºåÁ‘IN<à J#ÛÖ¸ÆÔm)‘ÌÃÆS_Aƒ¡§}j¥œ9¢s«Ò õøUhržß™6—ë­Èºn|Ãî*¸!±³©¼<…“Û[<з$Øãv­G“Ñgç÷K·•5}àg@]ruÑqY©~}U~óØá-°ûáOÿbé[¿é øÒí4µuž7‘Á„©ZÇrüÁÎQ8ÅÑ9RSí{^C¼§îœh»:¢|ÛçÐ!ïu€Ío( ÆÞûxèl²G†p ²…µ]w@°–¸ù M+ÝÇÎòYH‰DoŸqÔd‘%n„›üo²êÜ·Ll¡Àÿ·ÿla‚’Ó¹¦*vûد?F2H,l}[­ìMz€3¬8À‚d‘£Tÿ³ظ`’1/PË.ùe_Wó/QùÓ´¹h"K°X¤Už?%È-VßZQGI–Á!€@£¼MÒŸB€,¤e+µ%ÏŠGžF°!›6:®Ä(xÑ“LU•]:M*ì–´ÅV½í5AcUh¿ã_-çõ9<ÐxíÓl ,ͦ¥—}ßZ^ÇuñK-h+™œÐá;ð/…uõ8Þ«9¦5f‡Ÿ¤#ÕM¯„vAƒÁÔÊ °@<ùp*T´qc‘tô¯t£KÉØ’$2“Ô¤+Ž• ªéÈàÛê`)@“×–u2S%N 3§ilãOžòÿÖ¡÷zÁõ×E¬ïÚ]<éX>êtû ÕT‡p+lç»h ½«4§ÏTG<öK¤7ì}­év%i›tÔ;?M ÖÄ{H×vöZ€ÇU€še3ŽÌR°c3©Ë´§ýl2‡GŠÁ^i¤ÊÎBò„‘Ä­õÿÃëp¬Ô/S;ób°± È‘ÓiÓo§¦i;oܫծB]h–lÆö ­ Ñáƒl؉ka“¬“žÅ7ñÌõMzh]AÀ¥¨<“4-ÐÆi² YÇzJ9‚4mÝYß[(Tš!ÙsËÔt–ùL\<,bîkðp>*ö‚s±êø] "?d ¨v ì§Øö: žrÊXiŒêŠ*”ñü›5Ây骗 u ­FR™ Š=ÜyݺÔÁRkzTM°ªf¢Ý¡¢ýVi£*Žl&^< ·ØAöî}Nï5×)±ÿ«°W,‚w=}gQ&ÝÔ“œvYµQîl9^MLjNª»°Á§U6p_ÐN+Åns}~ˆÿŠÍð 5Ýâ†ÇU¿ð±q“ÅoàP°csÀ¨Â™T…"4õÛ(Ç^Sk¦*7˜oë9"Rt]Ì–¢(VZتVé^î”|u°Øj³}gZù­Ì%©UÂ0…#¾UÍ6§¶Èþmö…á( ¢Û „ŽÅûXòs uç!\ôù.€Ž¼Å³ÅåÆRáa¼Ú·zT `ï.MDl>.7,$gU§ÍîJ­HÕç|u+Ó îKïìÓ«üœž"§îØ3°F½ë7ßhÖPÿ0ZÑ ¬£¢ö$lLáƒévþ´iŠöäéœéXt†(–°­#HHÔ1s º²™ N†î~9ñ)ìÚ€¤Nzü7Uêˆþ¬üå9>WëGïN—Ì£+üÒ~0²´áœ·’RI¥rБ¬«ô³Ã<Ú$*º&:*,Õ{vr4qóz§æ%9D zPŒ, qpîŒ]—ôÎ6õs(e ×2 ¼×†N¾W·ºãÙúäs=˜µ§JÏ»4íÆ¬ÃƒÝ§Uy“ËU«è.Üóò:Ý¢ "‰íý ÏhÏß÷ÑÚÆîo¾Qm‹Io|5‰@ÝqY²qÚKõa¹À°7Ús{¬äé®ÓðÏ ¯É–ûÔ‡´jµ `ËÉ3×ÏIÄ—-…#*|¶4Ô¶Dèv(Qi©Ê%ýÁãð[»Äð÷ÚÄðwûøO~GHbø}q"áåþÊŠ„Ÿ~/’òÑ‹$†¿eF’Ó_¹‘„»ÿ®»‘°Äÿa;’þàGòû‘Äû§Ÿÿåÿé_þâð‘ÒO?ÿÙ/%©þôóŸÿë÷ËÏÓÀ„Ÿÿ=¯÷ßýËÈÓ$üôóŸz[¿ù¾ä_;yú¿ù³òÓÏÏßgz·¬¿Ïô„ÿ§¿…Êß06áþùoisÂÍü_ÿÕ®'\Ãÿý«¹ˆóÛz¢pÿîW?òQÿá¿ÝåÇ|Ôÿó«¹£ÿ÷)¿7)/ G©ÄUn­>¯øYUHø³Iûž 2dÿˆ‚véŒ[ƒ)GÖ¹oÕrw¶ÁélUÃ\yÚ\ïÍå¥e3tW•Äu«}fO— ˜—ugG$ÔÉ]ßÏ :—óB¤yüŸg5»‚7ÆjØÎº8}WQü¬èÖÜ’ÚvŦÅo-¥xyÓ)wŦóÛŸ|—çHVÜŠØZ³Ž{¸-ÒÒ¾ü©öv9·ª1ù“UŽS½UiëÃuzO æb}ü‡alGöl_ÙŠ9_­ÛyÏM)Dà¤|»S /ä´$'uÖPÛ] W˜Ï˺Àð*z«žÑ\j#À{ã=¸M¿À¾}Htr=¶ê}D¥€â«Œq-jÎÞNÛÜü}WïÇêÒ±¨ôô;Òíô_©.¼é µjG\%Ûe¥SùÙ÷¨Jºrí—KÕÙQ‡ò·‰)}g^'Ô¹¶d…殣;MɶùÔ‡WÙ i•ãØ%+j:X;ÇÈå¡ÝmûÈVÑîªOÌw<íõæÐE¹³³{¿øìÛ0{yY,ž¿Aˆï÷nwLwø´ùfO6ºá¼×»Îv§Ø¥i‡á÷×ç£c@Í\3ën±²`ÎÝæ{ÛÁcù•ôÃ%e%ú5C`3Ýys%Ž‘jba¡Îžñ˜xGÌuYv^P\J°ÛÍÃ÷úÛš®¥—gÐçè••Ýø/–»Ü<ö¤–Ë®Œ¯8¯ÛAÚG~øÛ¾ .Ïo¾¤Ð;K’µDܳ#‘-ÕŸ/Ê„±ÈÓ¯ïMgÝÌ¡1%öAXÁ¸Û ù­Bå}«ö{+4äì´ÉTC{ø½úd-þ[m ÛÚBDÖ†nFw<"nyX§H JüЭ 62#azžMÄš%ÆE¬sm_–:7¡%”fm+©r¡/&½KQÍË.‹XЈ z;°Ù-øj6WðE÷' ìUã.ZþšÓ³Æ½Ï±Þ´Ê7?“¤b+žÞ·z©o›óòìè‡øg¼¸i0`ÇÖ N:ØöéNØ o=fûÉfÄÀk·Ü¯Í\¥ø=†± M}Ûs¿>ƒÙ5g6Ämuz¯ÞF<ØêB–Öl÷õT¥§É˶æÃÛžß´Ë¡´cLµ_Ç^lŽ+¯}iWŠ=Ï«$fP˶hÍžYmÖqß¡÷nè&Þ=£{bå8?çPÿ•Ùé™å¬ °:iq|éÓò$³âéîvæDýVWcÙª·ÔFOGD­ŸÙ›}ÇÓTn×ÉB.åÓ—F™jÀ-’ÍýêõÚ×þÙÛþnâm·ƒê-›}ZY?/ZG£®ˆy´]Pì•6»ë öÙ_Ãz‹þÑg',Æú>U¢ò ¬CÕ³ûVìeìqrÒšGvÈiÔOóupêŒIŸîξéùÖâæÌ«ð‚ÕJµŠ\œÌUˆ+4%¹Röwñœ²£!Ms(2Â2¾ª³]N;‡R±½¾ÀWçuçKOﺆÛ x¦Ep[WÂg1Ö#G¢NC íˆÉä6Ì­6_°^‰`\i$7Z"è–[ö= }ŠMŽ_õ€é9MÛà¬wjDÎ-X0Ï…Üèg#júجÛQD¢Q³„ñÌñíãŽÔYáÇ^¸Ü­ªö/ë¾]ŸÝñ!ÄD»×4¾9;§âÕƒ¢ÀR„Su0âÈÖ2k)RD’SHNiQ›õÙ/:̰ž{9žôŠYeÍW=É5dÓÛç܇ >$W»Üv²©’ŒÄ?Ôú]»ío;vŽ9 °‚<Ýx{¨ý¨¦„ÁÍIÄ¾çµ ®9™oÅù«»F@@+û«T{´‰Æ  wùÔØùn›WÏH]MÂ6‹1U¹¿›¢ÚÊ~>ëÞ»¾ÇQ´ÉŠÖ!n|…ü:À«(3)XiG³Rˆ»(®’|Tä¬(€Ê§%á Ù6ªOÁ]°£nî¯^Áî(nÝ6q o@ø:’­žI·ZyÝE'‹3¤³Ëé†÷™½&Wðéžö(±Ƨ¤ÿ­SôàUŽ£0iÔ!žn×ëfK“F·B³jÛ7öêðE§ÎqÍÁ!¾'s¹«ÎÆEŒ«z=ä„¢ïÆuÜÝAäêW|÷Ém„pýç  Dͤ®²™À‡P¹P¨Ê¶ ‚“ŠÅ‘ËŒŸ~êú©ËX/ŸZB‡d×L ,¸ Ê&vÚÉ¢$:]<–ø-öí/vÏ~<î¬4=Ž´-V ;<‰5ã4Ôm·æªåŠö±“ÖCä%Û+aS«ÌLRøÒú‚¸‚ø ¬Z¹^(9‰ªyMç?oöùk©W^ï‡P§V¡[ÂU6¡*B‹éêL©Þ½ÚEŽçÝ/¥Wlq(x²ÖYæäL ””¯‹ä ,Ýåáq¨çÜUò_@°2@%¸ë: \O‰Ì;×ÓS½éÛFgSjÐLí8rfy7 àY/e¸-?¿ê³{¸ù¢ëM§ómc×¾·gý†… ÈÜÕÍdóîg_Ñ Fk¹×B.»'Pòm?áH·ýmº0M[eÁ…ÐV¸zQ|zjwÞT”zjPH‡·xŒÝõ9‚eï;1&Fcdï?‹â}ËYvÀ#æC™5.•˜ãî¼cLÿ&7Xþä[aŸÂÖ5>òŒàjJð„$Éb%A]¹¾þtç,:/"€Ýƒ±<ñøYE;Úë7´øk†4¸E:¯äN>v^Ös¯¬ÙÏ‘³J¼ KkÕÙwb²:3 ĵ4q›}¶59©V T$­ÙŽÕçéÚ!*Ãâ-z)5Gm®Ó`á[×µ€W5ñ}úPP.Û›´% u½+ƒí[ýïÓ©NÄ¥f’¦I—QÂÑé1¾ëPŠlx›ùWïì1n¢¬ \Ï…‡À³ò¼î»¾¯ž¾·ÁFÖ S47XÁrö(á²g‡²µ[º”& &Y»9Aw‡ëÑ,Be=nYYa–Õ¹UO¡Ê§Z:ÙX±P¶l0%7u›-lϞǎ"RšHë%¬#³»I*PÔ£>ò>SÑ ûP‘p¼žm|^ÈE8}N‡Z<"úúöl™¼‰Ïf(–Ó2P`°a§iM÷hI–*!mÝ3õTÙàwãñ*5Ê.ÔÙúÆòV{]‚ó©5Ï‹i‚’ ¡—Œf(W]<Â^ª×m’y9JY²ÁõÖØ£¤µìÐ!ëéŒäœŽ W§×3# Ävœðcg+VáD§Ú+À…¼îÏ•îU2Rõ®Ù—Ͷz”L¢hÖš ,*n¼!²Ît¿®½ô”D @°{aºS¤uÀýOÁ˜ç)qþë7¹ú4ÄBç³Íðj(<žÁ4Û܉´º‡Öëh³p KVª:Ü«p¶£ò<9‡óKÊ[†3ëÿ™aôÕë<ä§™Óê©?G>üæÚÃzROÃà¹öõ¢ô k°5,/—lþc!KÚ@f6kÕçV85µ ÉûÕVZk©ÄÞÏt,Wë‘0[°q»H‰¥€~¥9°£œeó(;ÀÁ¼:;Kµ¶?ZÐiãÊŽÿ¢g{<¢P$jŒœ…TpÔf¿=(ùhÎG ×£°¨×-7õ5æbá§Äïé0³•!ea¼¶µó™ó ¯³ÓZ¿Ch÷äGËŽ·hþ½k=R[YùDÕ7U}O@×´ ›©jÏ Ô²žóid±álrÿŽ6åÇÖn<·}¨· άÀv~>ÁÏÆñêt$+q*õùÿ±÷oM›$Ùu&v¿"u3ÒŒ@ù!Ü#&“Yø!f@$D6G£ÓE±;.±»ªYU   ã×óø×è,p†6ÔH4GlÀ€þ2ó{ß8¸ï½Öö½×bÕ_jaŒS… 6ÔK™ zÀ¢u7ÈB_!°Qý—(Û•·•%÷㑹.ƒfNp·µ¶ƒ@¯&ˆÚúžö邯àáߣ7X†té'ˆr˜þ´ñ»çK²~BBØ$S»‹ÑÔ /khÜ÷ÞR‰Àh‚6gIU! ùTréj꺱„âÂ;ÃÙM¾^Zœ¬ÔÒŽUýž·»ƒ­rÙMÏSñ WœÂA«èˆ!^ÔY³ÛÁó>¡£Î,kê*°]XÊÃòÂÉõM·^7œíQ/Pq榘Ç}öÃéË ËnΞ“)¥bI  À-=žÞˆ¼<®­9qî™›–Oùâ!:t5Mˆ¯ÙøÑ¢p­B Ä>I?oâ]ÔÕ[“6,›ê°ug7Hº²þmÎÛœjÁZ‚é È[CýË\Ä„1žŒòçêkt­öÀUµÍ@i¬B¤-©ô°FR­wyfêÐeÛ 7º$>µ®èÉu°\’j.Ûî¨îm"ƒ£CMÈšZÝ‘š7ý’x¹Ý³ÅîÙpo¹/°² ÉDB’ÁŒ(TEä3zLí©(kHDK˜líî&9xLf3ÁkÕ¿ÎÓ@K3ÄjàÚV}f›mO²ks´Yýk"Ï–ªÍ ~³& ÿ ~¤­À]UŠg¡/Eü6!ÕiCÈG;w?œµ½£‚£Nø_ -<ʇ{°ºÈ„t6¢£l¼I’Â;·²r0N'·`Š-éÙÃkc¢G”Š ñÓ­—3`pÔ×5í ¯³¸½äuœTFDïðãPu‰×ÉóxáEúÄÍZ‡f À›ÛVø¶ ) YKZïMBß%_Þx±?-Xì–ñíHàRÆ x¥1ž˜Ä–ââ=0'üO½T­©ôtðzĨv¤gû¥¨PÕùྴqµ£Þñò‹¬éÚŠP/©ÄŽyHS·¶¾œžµ2 úÝ&cË$²œV#ÆŸgˆýÖ†2áìy½jží²ªÂ÷ðþôV_IÍ”¨¤Í¡@O{OuB,uÓuΜ­­ÄÑ£`UjZPw[ÇÎ:>×rù{ûñá9å,·=Z`Ú¥B K[€Ù1IÕmºæÙð¥C½OËÿ·ÙƒÔ¦‹&ùµ€®^³˜pû<·™z!Ó}Ùš ‰Úø.Z¾±Ü9Ý·û§žCBX)<„=À„µÀ<+Óâ‹Y7„L2¡§n·r¼˜“€b]ͺG846b-9qÀ³Úâ!f$´–<hIÎZ¸S§~¥ª/0Ö‰A{cô+z£±½-;ñkžÊM¨DÏ*êô ö #v‡a7vÏ™’C¥7™è¼Ðô °5çÅšã ¯ss“l“](ês³´|v>*ÑùoRÓC…y  ¶ìCOM,À•‘{iµ.æž¹4çnøÍ1‚ºäl{):צ÷Ý*ªµ¹c»wpEDù.Ÿ „Æö}]­ê>\ûI‰+«þÊ…,ˆ&´ß†,hH·–ç¹ëV0RºB•Pr˜=Aù:º­M])Õg§“Z·òÆ•_ηu©BBWÍ»«Lzû ¾—²èó°üÏž¸¸ ³vW7[Ïþ¾úê¾ý A§½×®§lÏ­[ýã¹NÒÛé`÷Ú‘#©¥{#™Jɦòb@ìGáE¾@ñxk/#(£@“§¿$Öžü3 ¢ìp®Z§¢mM$Œ³äªHmûÖÙ¶.<¬«Dô?w§@0Ü)…úV Oá¶ó½‹Äî´¸æŽaEÁ (úmÒQ†gz8¶FâTH „¢ð±ºŠgXëRÝg›Y/`o€|Ce†NÝ|xµN§¿è &Œ' k•h~œ/˜;ïq0ëN‹ˆ´2dÛßQ°–Úhü Á–õÛ‹Å.WÚ¹!‡Ç÷uË8ôèñ:ÀKQ0Áý¶í¥£1Ñô™ )H/¨I¥<¢.à ÎE>ó kLkxA3/u¬Vž:‡—Z]\g±.ÌUxU<¯ |Q…4`Ï`l…v¢›ûã‘ʹ³àÕÆ= gÒ•–žR ”à“15#ü±Èß:IGðøqi˜UCq®™íá”l…«X¼1%#8vÍ’µpñJ\{îvkO«Úë€0š.ñ,Šë³yµ¼ŒNmP ŽŠø\À_p8^;Ï®ï=-1%ÁSy˜µXÛw=Á¾tÌÃ?š™Ž4Rûá‚Jªq€ 5|n'ÃX,ZˆòæêêÛÑö²d“Á Ø(Ã99nžhµ$3úש¤i5Å1û¼Ïœ–KçÞFª9¯}ލ•žG¶§MŽ>QXãy/íaH\R.ÿv”Ö¶"r“œT7 jÓ]’[=Õ虞ï[/f GOÖ÷ zü&½\øß›}VÉDVrhþ(I¥û²ÒÕô–Tæäf9öÍÛî¼/«"àJ µPu$¿¨ls†ç¸§JM‹Ô×&@l¢ §Oà÷æ‡;aÉ¢{íÊwVO‘FëEu讦‡ºÖÞ‚jŽÙвÆŠ·>‘ÐN§6ñx$ìœí†T×°OõÇ÷¹å&÷Ç‹w‚ÔoûAb÷N?(6zz-uv›ÕuX™søOÛ?vúŽT¯ aO5;Þ5ÙÔ²P"ôÏdß™mªkl·PÏòÎm†Äë¥[&(;, BM/4m“—½„œ¢>d!ìúYwÓŸjo"V ˜`­âîqþ´¹œ‘-·‡_ÏŠv…رtès–X¬­±‰{Ð3Í»»eIË­ö‘¤6 ü¹Tc¡)Ê­ü8k^"z_<ÿkál6aÂÑ3ÃÇarϦÁÄíÙÆl‡ö;B6æ­?«A/¹°"KAZýš–ÍYãìW¨Yé6Äa¥õi‡BF6ጭxý(ÈÊŽ9ªÃyi]uµ®l„rßâ›pq­> àúЊT‘×qwPEáíª4O=ªž{ºê蕨FÞÒ˜ºóŠtHG°cHu¾;B£E‚5¤È T (»Éð. CÒ²Ž¤I;—Lêʺkéó:µª<#±=«Y‡–sïkYWß @©óÂçÑÂpR}û IÛìÚÖØV¯ˆš¦áK%.·ˆði–#a+âMëj—•ÚÖfÎv ,íÙ³ÏñÊ Ž<¹|[WÝ_6°Ú|Gz»½ßpÁnseq0™AÀÖD¢è|>{|{ÖÔƒ´EÔc@ 3ê‰Å¢n©ã„=[ ´·ý§\Q{Ødr“-Ü=¨ æˆ?›òÎ )ÀØY§*^’w@”–€º¢9 1µÏjAó?ؤQ1N¡°+ñ­ ¯Á(Žü[R¯vƒ’8Éc¯qï&¤i@É€ïKj‚Z²”iËöÊ<ŠæîŠÕ©žY'æyî[¥ŽÑ²×qyºÆMÙþ˜e¡,ûGl7Lº«O}éxÑ615iÈVNÅáøyh„îž}º@ ]S@[Aº2»Êw{ÔzF([÷lDw9‹ý·Gñç¡Ôõ5`}:Fï¾!›Ÿ—å¨Ý€µl‘³U—†äÀšc–O ð0u>÷|€w{*Ù¥äs9m­y6‚TìÀ¾X¯'h öØâ '?e:Qkå„Â('ûœKØÌÒi“¿ìvM¯½[`õ¡n5.>LZ^뼬i+0Âs«¶ÒNð\÷ `eá kªn/dÛß ¶g%ø€õðR¯Øé Uf†šëQô—eíñ•W¥ŒÑ]KHÄÓæD"^8Ã/zÔ°Õ1lÞ2²a¥Z|[òHOí]VÀé5q났­yáÝ0kˆ°¦ §’ÌÚlµÄhÖÜ ‚Ô{>k»s+QŸwÞĺSCYOA_,æPÕ¾yÒh?ÙèmïD6ïTr 1Qê,>Z¬ÁÚ¢žfëåƒÒVM·ï V>ÜÉQx_“þÑ$øâ©Ñmi ’m•‡°6MZlЄ]›Å ê¬ÿ¬Ê&Û,‚Žm ´-Cß+‹j€ïõ†q÷C}UÛ³þ¹—½Ç ~ËõŒp –©—í±¡ŽŒp;}}´¬xuÕX-ñ—ÒÅú†<–»ØÓ\žÎzìèLŸÇªgâ·«€,ppm¼‰yÖaØÖ’Ô—x!;†”]S¨øìCÏ[™8vžùÜr&àŽ‚a!dòRêÔÇ[eœhEaU’ê+Á# –€Žºµcûi1‰ÈüÁ™À}O]Q/§"¢ mS3€/á^êñ­)ñœ kpµEA[I 'ªî2zð:ɇ\pÕ€¨»Xüž^äÿQYu²›Î-Ús:‰WXÉîê‰ÀÜ]ö×½EèçÒ䈈;=»>ܶ·ø¦ƒUÊ;*$§ `´U$=]ÍpÈUïÛúmeŸœÙcûÐÀœð.õÏð®k{¤ƒÐ®ÖS p•vºâá1°ˆ/öŠÛïCœôâÒÒx÷óÜÏ¡©O{ìÜ(9g2º¯Ö޶TÚ©(ËÔð$í߆xw¬=Ùdø=cæáد,æZÎiuý=?oòEý7Ì]ÛmZ½Õ:IGÙšª‚¦áØõ×£­¨ß©GdÊõ˜° .kÖƒúÀך¨¨Gkvo¼Ñ¡ ÛtüiVe€»„O8…&ðùq†tHö½ÖÅâ=YÖÀ±#Í'|¬ð/,Ë,%Bø‰åIb}›lÚ"OÅß¹$)[öÖÇs°½›ÌdÈW öe´òR"PÁ¾‘S÷® ø¥4^ݧ—ÿðª™Üj[ìå¤ìøpÂk÷_‘f,Í¿»­ÀÖ-š’Ô€`ùž—eËBš†vÃ*Šæ5.nzuè JœÜRnÒŠ$˜\Ò¹´¥‹'ùÊAH{çA¦àsÄõ—c:¯&[ Nñã¤TŠ` RSg r££‹²¬·B¥©¶öæêÁnºÌ¦M€ÔPCÛzdÑ/Û& 󇌜údBîÝPÓ×!Ù¶Õ- îUOš )F Þºw:êõ«,X:³ÞT=Tñ3‰Lò6`¨ÍtÙ¸A_}9>ê°‹Ðá…xA¦ A¬ìË ®ô$,壄%cü©ñ~ªE $t9V플Zq±æÅ¤ƒMÀ%ˆ³Má0ç«f ÍÑiâq `ðÌÑi,­! Ïe“‹¹½ˆó¯"ºr9&X”Û"W5¼TÉ„lŸ–:ÿBృ÷·Á"ªÎP/)¨˜\,@<•ùTïyÞ¿«85Ø=ú~ZN¹­áÍGÃjuƒÙéü/í=X¯¦ûŽÃ¯¯>ôžèY©êvRÙ±Ö‡ÓjýU„'‡¥ìDö}¨lh_º.ç=žDäJâ{spG:õ¤\7Á«ìŽÞÞÎQm¹9ûú؃aeÁþr ªöû|uš×.]4]ØÒTÖ~’;k*£¬w`PjÍñÙ#8ž»Ÿ}Zk^Å&g­+»¼"2FHV4Nµ»dChS…6Çã0ë£"Þ»Çn>h«š^»BÑ4!p¦]ST¥é "tÅ= Ôš³´IY¿Ó6Õ^ô©…uº´ÔgcÀ]þµB¤ùdgˆ†:Ù|Æ-1oAÓI¥äÅN6Z–fÛ[ðáômh{oÛࢳEt|¶-ïð¸vk°Iâã<`€¾õ|°ÒYn|öþÒ—@‹`"«æ‹Ïm#•ÝxЖ¦¡5¤Ùr 1€Ä䔩ZÝ v¢üi&¿mͳã›gøÕ”’%*¥Þ;¬vgt¸ÏWÍd²ƒ‚] ÐbCe×uW}p0¾&jKÐ9|@Pú͹g¶AUßx£kð ËŸŸÚ¹,"×rœZßYYëžQÒátòÑŠà{Úäv 2 PigÏg» \!kQÇ!ŸføìØk¬xHÍYN ½" ²,ë‘hrÛG^µTϤã!³LŸ,¾Fõñ:]E:xµO\Jkv»wUÏÖª\)N ôÔ„gá„á°´ŽTÁõö¹œé"®Û†mƒÁ½ÞtφCèÆºEI«ö–΀8«Jâ'Ì<×á¤`Í»ÓJL[íéöì!òd`SÃá…b|,›UˆRô®Õ®XëØJ•$ö";«º*·"hU4'íRê Õ %_:¹²í8ìü晀îœÃYí’QuÞ —<8¸ÙŽÅ= =ûìò¼V|†Åvl®sj¬˜LM@‡šÍø./H%Í”éÝLžÖ¼ {ÎAöÃ= "À.›ºÕÔ°@Мȃs-Ò½¾Üz04[°«Õ©qÖ®‚§Á«=<ßZ*^\ùLM’ŽòPn“‘ëOAç,Ýum­Ö®­\ˆÓö!V²çj¦O¶*¡zLª*…½·qöèáÙ˜¸’[£û|Ûã}œ|;×ö8YÍÓ½¹!Â&)ŽÌÎ…8ÓÉÚ|‡ Kö~l8hóZvrËÇ­¸¡‡ç®aTÒ#¼~%^¾‡lsøiàÞ•.ˆ·f ÃøX&¹õ‰Yse·T¥óÊ)$¨#ÏÂ=Q(<[°Ëå8XÕ¨16ëùÐ'•7t*÷“‡»¡Æ7Uƈú‹µ3Úû”œ¿NGÔç c[Iö0ØÍ“fvŒãÖ<ü"n› ¶¿²H*户åŒ&Ï€lásËùšL«©á©Ý•«}wj€È…l•ûÑ ´Pê «p²l7&“¨D/d½YÉ NF’ˆ]ªý?oUƒ@5b2 j¥ÇŠY:’î»e_» ¬ÃƒÎв’~$ ¦'(HÀŽ?Bd¾T*±¡-NÝ×_Ï-‹ `:N=ÃŒÉ*NÅ´A:Óñ9^&xwÙ•MT4ð‡î®Ëú¢Úâô« аŒÎSðËw—¡í§Â Ëé5n¶:ù2ýëà”úïi“ÿh"MËôMò!³ÜÖR+¦)LÁÛ88)ôWê«ð œíqµ5AòDqR²×éz¼¦þèÙ `Ë[uˆ ²¾á ÃYŽË¾MOuÚn­¦=Y“5ƒÉ¬Õè‚üPÒîM¸o…†ë­—XèXVG<ô ý¿”0ÉÖ_x¯=MrtãŠüã¸íOYÉd3Ï­åØŽÈ—j¼¦‚ãÆE‚5¾Å"nŒÅd Ñ†ò4“Ÿc´4<“ßg2kÞíHú´¯Ž LP:5ExÓM~R’ÁªT±v›ß¸„æ8žÇ—ƒý¾M­ò²eŽÕ¿ö„1 vE=ÊÓ·À4â¶Ó>ÈÞt€#ï_νCc ¡]–Â3ºð¢^­-_}S¸Õs/ÐiAÛ±7&ø}­B)ü›[1›&Yê^œ¶{R§œ§~a@å»®¢¶ÔëëМùê¶)GËäsÿ¿ï¤Ô#³ÆDqªŒM75@jZ)›ËÛº›ÏTó\Çf¶ÃbM¹Ök‰RQ®\¡Ž™WÄe6ùœgáÉj2ñ@óº ìîdH.Ë^Ñ»ŒJÌZê) î–´„'ÔMÒd]îé=Ñqx„­cÃ鹡¥K¢¨ÎDvªòb+Ùå9À–}qi/oǨòFÄ>v£oüò`YÇ…9.ÈV çè„Ç"díƒikí6Æ/èˆü‚n¥‘뀨xøèoÁQºV+·%íݶUŽöÇ—Ï,ÌkØÆªuPÐL˜4?“¢ÏÇ™v@«žSfb‡9 ìnþ¬£˜ãéP4Û@ýªt²²Èk|ž]7r‚!áÑúüt¢à‚²؉/|ÑójR1sÛ`žH­ï¢žžý˜3ÚKd‰”7i½4Yõ|k0¡Ù8è¹>[§¿¹ B¢¶¥ŠúCßÒÿ‘õrJ[\ÆÞ-§OÜ~-<§'ˆÜY™'k°&íC-KØÜt…Cé~ÅèHl/ OPÔ±!ÕH0)í›_ÂDêÝ–kˆ¼f Ëe- ¤ýÚAvZÁ…FÛÞOÌr rV3ûÝ®ÜìÌBÐÊØººº×‘,eqÍM#/nkÏ$ ÙK•J[…âÏ÷ü Ÿ´€ »c.÷=0Óƒ(’ÿm5a"¬‡ŸÃ §µ—U‹æt“bêá êá Š„i/EÚjBu-->ÛÞcY¯R:¥BXÐý5IA䇣¼šŽvUqÀe€@(7a^KNÍf‚ÞM—M7ps×ñg{¾À³(åΈǦÔÓ®X‚ Âø:¯®a¬FRÓó£;>ÉéRn—PU Ñ3IoÎ@ú÷4©æº“*…×m`w¼WEé|+à%°çV“0*¢5´"‹B)¶|–nsÆ«[x“Ú^{qZÓõ„—ÜÂ~Dl ÎÄô9Õm<æiPŸ ~Åì$øegqv#˜nÏ>ڞΨۼJºç¡;é´™J=¦jÛ’½’ ïÜY›ê±¦•|¿w“4̨VÃnu0\%j¹Î¸86ï ’ÈZ7ʶ¥—wû*OÕuÕy´êô¬ä–ûÖAsö‡Ð±²™…ܲb™ìË!q¶!G{Â{ýÍÀ¯ggשå?ç¼vû³¶©Ð~—=>x,z–À1”äU ¹+ghÑð‰í`ç+ǧlœ±‡lj5ÙnÛI3Á9ÙYi{6™Uµ­G¥²wOÝ€±ÆYÕ„ÿ¨B¥™£ÿ†¬ºô6¹F%¶D‚QëÒÜŠlaeê¼@ ìÃBä²cþqSØiЪ0U«¢Ó±ÔûRHP§8\uœT—´×Þ˜,DÝŠï¸wóÉ¿"muú¶a·*îùnpL)*vDð–:¸pCø¯-,—Öʯ£2Öü­âÉ,+Û@Î@ ò½Çä‹îÛûØegŒ|bÛáy”üTTšËfZ…%’è@f×– 8Ýs`&¯‰—¤Ýð€gq:²°/ßÁöy£Æ¯)×½³¼N¢)¡w6Å-І~„qq³Ã†-Ö¡:¦ñC„ÇAËÓ¾>"k•7L¢Bëµ9É£"©}×-lë/dHÅšU¯áÚXaAUm=!ê¶lßraëæ;m.Gñ$ö–uÛ$~5-…^G¸vïâ-ÉN²ô´÷&JÕÄd€É{:–×5rw»u©é©×eAW=ß_Áú*šBÌ•b7÷Ð4Â!q°áqÞ™ÕB~ ôÜ6T³_}JŸ¤>ôT`"9¶«á®¤OÒ»ñÜùëMÎ]]~< dGKŠÇúÕ6ÀËÂýV³ø W†=©ÞÇ¥“ rsoо‡w“¥Ž¥ñM‰—µ@XNt0ÍSpÇI/ŸK®‘<8Ø"õ²{óIŠ®-íí:Yc Àýœ ½×JkêAA»o4.í’ê•&'0ò¨í ʘÛuûykËúvÛ„¡O˜@Ôîâða•¿½éÛÁ∱CÊ5ƒLE•Ë‘A’ë2;ól¸=ÕÎ3úu°Ëuãåâš *ÀÞºÚùD|ƒÅóI ¦T|Ù¤xC£…¨a¡ (* Ûq:8 L"¨œµ£EÕÔ“L‰™²$läÛ¤ûs©ÆÝ2×Òʼ:\ ®†RBT‘ú¸•vÂêæN\C¼`?,a4ŠÊytË[@ʱíî2’Eã¶ÎcOdµŒM÷¸Ðy‡U­ÞjU¯FöB·ÛˆTÎm:ݶ{ãf"}×.ñ[ +ˆ o,üÓ¬–=vkäáGpa÷‘dÿý´ÛLVÏá “Ê‘ ëÅÙe6Ë[Daè£NjËúЯ SQí›åÁpynê6(p¦q­A†rÈ=DÕ·àÏÛÆVÏày¤"G§æ½‡êøBe’óÂ@˜KÍ6ó”‘`ãȧÖY¦,U-ÀÁO˜V\õ MÆ2…vyÐh½ÂNb•|Ä~Û[ ‡z]CǾnIEû;ý*tb‰óµ†ÍÆZ•.'Ò•…@ü0Ÿ•úºuÀ[ºÆŸê’¥ ^OwÑËYDEG-€9‚MðwZÇTí÷œƒ=ͯý£•;*9l/¶Çþ í6!MF·Z){yÛ·‡á QñWVS¯*ä ’õ¬ ðl‘Ú#™f‡r®‚M˜žÔù&s±8Üê¢*Dl'ôú%T_Î&(´Ü‹v²¼‰W ›¢þÏ9ä›r4ˆAož½“æ|Lkqý"³Ÿ¥X™"‡ ¶Ó‘¢ÀO#Þ‹pùzÂ8”©í9-çX7 ®AT18äÀág8BAÔð&´×¾£àM…÷x´}Ï;-r[Ô}>šv_ +Á\ˆDÝ BqÈùV2=— ”o"Jž[€Ö>f©*P·JÈWU ×»Ï»Ç!ªË4àoUíóèAº ‰‚X‘‘BYNeHõ`Í/©.Èjí8TÒ…ÄÔדí²FÌ÷¨‡+®òÙD$Ó7ò¶!Æ]Um7¶=ìQiË9±µa\Ò~"²%=ã2Íû|#©äXÑ/ðDožÚI8;œ“W\B)å°DÆÚλ«zY»¦vi!MkNqç9/•Zˆ‡Ü#¬›ÿÏp ¯º³2¬ÈvkÎnó±u9•®ï Žqû ¸€»¬wêØ-Kµ±ëÀWvlÇ{Õ”­)Nml tX”í½ôXïGÓŸÙUëèàr¾[[i²kÛPLˆ6¹ê­N^Å(ð z0Éb.+Y»7Ä.«çà¥=ÝÏþÓöt?ûOØÓýì»öt?ûÿ{ºŸý{ºŸý¯±§s\ãþ¯Ïžîgÿ³ötå÷öt1ÿïÙÓµÿºÜé~ö¿äN÷³ÿúÝéþ¿ïF§“ÚOÌÒ2?~±CËíÓWÿî·ßñLö­ÿýŸçl7w–O_ýòw¿ùåç/figýŸØÔ÷§¯þýçï¿8¨|>áñ‹]øôÕóåïY6_ýøËï?ÿä_x½ßýö‹‡]ñŠ¿ùëŸü .î‡o¾8­ñ ¾úáó_ÿäÊxP_}þ7T®O_}ûÍO/äöõÝ·ÿy^yüúøÏrλ¸Á÷ËOÜÞ÷å'ní¿ÿò÷õg_~â¦þé—Ÿ¸–ÿã—Ÿ¸–öå'®åÏ¿üĵüó/?q-ÿâ?åâÇ·ÿËÿʬĸNf§Žk窷Ó1ÁqÇœö±¥ñ;ª8 ›ï5Z;4¿‰Jì|ŒT{ Ò¸Æ vT¼Ï²Êgy²ªO„¯T©«]®W¬ÇRÎQ±Ëëµ»[ÁËKµ‰7®2msæ‘j—ó^–¡t›KWw o…q(بÌðÎþOΉœ]+Ž­î•Š[ôÜí»Ê½9Å·ô¥ó8ëjo³ÁØfHrj4hݤÇIÓÙŒõ„yAT_kO^Í*¨h|ŽÓS±¼øâÜY›mIWè1zN¡‘‹#+v¨\Ñl>9íyݲ} bùuN¬‡‚%²Ë ü—ðŒòlóÁ·Ï-Ó¢¶?<=EåOa¾­^wùPQ}uíéjûî;ƒ½2Ðaçx­Ð´r+  ±ïûóàëîÞ¬bA–‹ú@={ lQůȯŒÑ/^”7\Û"«\ûhArŒçurц‡éèÁë0Í‚á?ÏÊËMI.!;]ñÔ³»œ9a¥•çq\ší6ëÛPY_*VXµ¸=±)]µÄ%Ç«Oÿø7‹Z*‡TÝ›ã´4<—£yÊ¢iúpÚÌ‘4[y<ƒUwðqTÈá4{~`çžó]q(°å9ÍùLÅždáHÑ®ÇãríNÞ ¤V´ mÜo-¥÷UÞ…Ç_¶Dö´˜s)˺,ÍÛÜÕ$¸’ǽgˆï8¬ÑÁÅÂG|·íðG6vRžûÚ‡œq]Zü„‹ z—†'”džPÆ•²7Íãï[ò´¦N®ž¬ûÈçzÎû ™`I0rúåVµ„µÍƒy·Ø^kÄ®(ÙM|Œ¾\åÿêzŸE³í|.®b>Ž.D;c/ÅjRm—î¬SëOç–’niÛ)–3Ûa—¢zÔè”±èì3»LbºäiÁ…teª{ôÔX5h…ºç’gã-Ø6ÔHC³–bß{Ù~H»Ë~­ÂŠ?ßj¶s[U­pÏ=k \Éæ¬£šº³jå¦LÕ:±€ÇžíeRf’@p©"J`!–º^êŽððæK©åVhÚ¬ÐSÎÛ·ôªckÑXµº¬G'rÚ9›2Ÿ¼…×VÍ¡Ìó¾SeBvfÓ—s]ï*¼9Ò¦ ŒÇº,›uj1yßöUÏ£¤ZѨ® M`•?}\4[ÄgB<¢Ýdà ¹‚ͼÊuÜ!UžWÇ—©8û¨¶º"¬;ÞR1>‰ AŒ¸l—%¨9Ù?ÝÇû§H5Ћ·y^êzºùƒ†;‘ëÙ¾_W¾Tuã%¾SP¢÷tð^Ÿª_€‘_Ý\^Ú›m¿6Û{Ò©³ŸaÃa½l­Q{ï%÷vðx=r`I_%'R_½lëp„׳L6—þ ‚iÝÂi* ŽSq—÷àBxd a£‹¹o.5½¹õÖæ‰/²áÓ~ ûV=”ÜýÌC÷=Þ©¤†±Ý°”Æä%ýHíVsŒ…=ùÓVu¶½ÛJ=︅ÀÂxnmôml ×ËÓñ¤WhzýêAJ¦#©w%ƺí\ÏöìU·ßSwçç½íœÎQ«Ây;àp _-pÚ›¢½æ°U©ƒÇ®ãT³hþd³©z†Œ1³R(NǰTr †·¸e`íüÖsÕA^xÉÍUe.Àšvcªöóäï*EQßÓ€~©mwÙ†Gj—­cïIò:ˆ]·fQ›úäsK5¤¸D•Ôt¬ö†\úCt{ ùG¼ÍcE`[ˆN»]´€êúìñŠdDäÐÚœêÚ.r:¼`ë,ÙòØ^DÎ2óÔT±˜*N$QFr¬Ù£QFƒ¯èÏ©Â~f˜l­# †ƒ*·Ú^MÅž³óE€g"¦aµƒn}ÇÞ¢d·Q°Ôû° i8,eöòMŠ‹8K*%ò;G´ {wöíIÆZ½•:¼¥`ä·=`°7@rÐuyVyŽ”7êZùU÷Êî¸Dî<‚M·zg¿Nè_<.•‡û>´È“ÜØu‰RÏ™ˆîDòö©è EÆ>Æêv°{”ÊVÝÎίç¤r¨‹~#ëñÉvðKù®u’˜‹až«–#ª^Æ_ITàóm ×jçÈ꾑9YCY¹jÔÉ ª/§7cï`eMb•³}‡=¶…ŸãL £lõÍ!aÙØçÌQì³ׯá"(OPÎI’ÁIiYkSݰ*á¬gÎ=%ȼ’^ç?n¥}H»WQ; ›Ñs$Ó×VÎ+ëѱ8ýrk¶ÜgNulŽªìàåek̹ XÏ“ç°âáM‡ás·£r¤éÒI¨ñÏÆ4 °™ˆ C[õÇÜe·ãTÊÔ¦ Ö>ÊÆÔ¥Ï´~càk›<#ñØöªAp³*E¾Ž¦z8«[øT3iùy2 š¸çbjÛ’üCyÁç"na =ÉHÜê¦lù¬HrB;ï. gwY{ ¬¤kq'¿(:9øþ ¼õ…à ©0âÎ%õ X¾u=NAËh0m'„m¨“ !Š·ƒà9ŸW±ÏóÖ˜§°|3ô½·­‹·¦(6[`ÞžóR.ÞsQêâ:”Æö>Û.¡o kfÿ;¬fƒ7®®Àv²™Ú©†Ç~6 Ú¡R| &·¤©€º¯°¸á³næJúêJDõ¦öƒ¼+óí^­«}&¨þ:Ü­‘Ê¢ŽïÛœ@9°îƒ sà ›ºÝ‘mÈZzcXTp¯º°+uÛ¶‡v~S'ž®p£Lz=ðßëŒðâܬóz-©öֶă´iºAÙkæ—ϧ=p·«ƒN°§ªÎô“L‚@}x#;3w»Mk†»Úï¬"¸nØIm•4²BÊKht¡ÜL²Gì¸m˜w’sÖ¾SvXüzÙª—]/P,p æuö4«XÀR/Ç©0¹3<ùC¹Wç›`çÂ'ÄþبÜ/»_î¢=nè[yš·˜Á^GÒã4( ÙŠÙÎŽ)˜8ÛzÞº©×é‹Q˜’—cÒæ+95™4QØ7ÌbóìUÄÐØ®ó •W¢N!Q.i©ŸHÒwˆp$§@û€ ˆ“ö¸oœ×±gnIÛê‹‚ZHêW{ÔïÓù&cóqƒMcÿ2›™m Ýûpž «N†òAÖF@D„óÊ!ilA½Ç“CCÕáédG½6éÛÉi1P„b›]c+]ìí¨µâ“÷x¡=ªœ*)va…\yˆ0‚ËÆKk‚.ª<"(7È;ÚÀÍúÔë)+ØD$goÙKkû¶3¢$ýβƒq’HÒsŠYì/‚‚@„¸B ‡*zícàêHlyõ·ã…8sQU,VmÕc›l¤³k}ípHŠÌ¾ýšÞí±Ð.ðû"VÜr« cè=Ez5I7mºwuà  u„)­Ø;{V)½¦ÕÃâiçcÛª5!Ÿ—²Z¦UÁ»€¥yX/s¢_— HÓS¡€˜„ÕtÂz؆“TÈZQÙW÷JEìý¿¸Z•ÚMµv¾f ݈¼·ÈöWME³+Ð?hž¤rs²'B™lÖgc,»Ìì%½ËÖ4ÐV6óezÏ/uƒÖ£ìWs‚‰˜š|µY[ m~ ­l­îKÕruc@'QPÀ¯¤mš¡˜ßeï<ËWb·;&gX[¾eŒé²ävL^„P¸ËI æ³NgÁJTé ‚wj· Ö-òÜím‡MŸŠN®®ù_‚:ÅâRæ_$L{V®Yµ`AÚ,é|dÉø°  ¿£ëßC"kªjSãii!íŽD-p¹:{ ¬|¾\uz²âÀŠ&”0µ¹ˆÏe÷ßžü£ö iDÁ`Õ~Jj§8nx\¬×AÕ¢J ¯Ýƒ_tª¸¨pºÇ_œé}²-Nf\ðvÄ¡{Ìåœð„ð¶fÞsÎ6  0JÐgþÚ®Ú4ìÒ´*PTÍ„×ôc±j¦¸Dq²æq´<¤º’cã£W—,ÄÒ¨ÃÚ3Ì’½ÁBZŽˆ_}œäQÖÉâ¦òê6”õ’p†˜.PÐ’9Õ”4“kvf÷CÎÖ%•*R±¦Å"Ë´v2«³ÊNHo™“¡ãõu©§<»æX5²©¸ª­%ç!¹¡ú-;6¡,ˆú, kHΤÐn*ÐEr6”•­c;,>†­‡Ë-BÏ@š¡YC¹•KŒ§’¼ÏîbvåPQš§ ŽVäû;zh1G#Õô{${ß®‘8äVù.¨73µá ‘] –ª/› åmÞ×Ðl ZéÅÎR!µ$b6ÄF‹|ÝíÌ[0 ¶Q‰R.¯ZT<¹©”ƒjs6´Y¨sÚç¬îôç4S=xÊ ²±v,RnäʇÁ.v#̬^M 9¡»žeCk*Þ¡å—Âûšý¼ “º,ãn÷Y‚_Õ{b¯%kãÕX‰ÉäPýãÏCÄÉ–f’#ÏKsݪl«ŒnhÖ‰ýº‘qŸ*Ã=8À3Û$ªe*+T­}'û[ ‹]aGåßÂ;Øø1lqäú*¾L‡½ù|X>“"7»¿ðUŒ>ë6eÒ$Éê«ÊWœÓ.` ­€ëOÍ&œêæ›b§CN'O³EõW2¥Q”Ï_FG«ZÌ<à¾C­$*i„à½õ¤äa–óÜߣÕ-QJ<Êçj¸ø¶ãô¸ê!c9 Ðl j6M¥¸)¾ÿ½J|ôË€i eP¨O)ýÓñ•ãu¨o¨K@’‹–pù'.:—GY^9·ậHh{ìÅÊßG=Tê^û@¥×¼T¥rÀjéT\•¬¿'´lµtk½€qˆz_µÆì_ªÔ› S,̶Á±>Ñ):ap¶s7TÚí­€Ë­£¿â†r8c°Òq(%uèÔ½FýV†Ë³!Ûf¥¸¯SƒSÚ3 ÏÄDV¥ò&J–·ËÐ¥c®Ú%¯EÞ´ ïÿ£5zår»°·Ö‡^€ëTò÷ýœÊªCuNutùø¦¡ç<”µ¾d¥òÝÒÊKBÅQÀôkÁ”@N›Z"A®jÔQA9†[½ çÂŶU)L}ù'Û7:WìóÑŒ}Ü?‰Y/;#èÄü˜Ö5A›BÉvÑÐãPƒ_ëÅK­x¥"RV¡ØwìùbuúN‡œ£]dçK‰9mJóßY>ÓkÄ6aƒvëM”Á¯UõÂnu2`u¯×£pG±~šÇR>-8Ãjô•±×Ž1\?;ÜŠÚzúâ àw»‹û„SÎz {’tÛNPˆ#T<®j ƒ§R2ФG ×zäL}êÇ›â4Ã1'’Æì\SŽžÁŒ}ªr),žÂ¾ €wŽç ”³<ŸuTùQÜÑÇ÷*Éy)]Q’c9dU44R˜¡© ¬UwïŠV§Ô`=”%à5 –bú3W (yGÛyÝ\²ö£¶¥àQm%ŸÁ;àü4 î«0 ÀB®l†ô‚TxɪÏ$eœ?KÚƒaÂ{ÞUösŸ÷- #ßIë7K`m+Ñm¡¦¬.zíž T…3XÝ,Ç b þHàÂ#Q™ÅÎ7+ÜoÛ*ÞðI¨É>Pg€uò:æ{¾OŒpŠÕu{B1OõÀ¢GžRZj"ËV)«^† % õ"xy—S3@(¥‹ ƒ½Ô‚{rGµ9™Â:õº5¼ò.‰BÓIqÞ©ÖÂðÿ™X°”T§ÍŽ´iWÎÿWZ¸¨cí±œn¬'ì²¹íHZØ‚L¸íêÕÝyìÁr¥/Ž&ÌÛgd#MÐîh8=ê ¤Æ%€-e‚â/›"6Ïà­–çAé'<ÀsŒeËÔɃƒT 7äâ—ž y<<`å.(®:6Óá(ð"¦ÞR8Cx¦Â°0µ×‚¸»LûðÍêº ¦ÇÛg:¼ÚEdŽÄ[·ËØ#<DÒ’š³¾vÞè+ªì*Æ’ô©ÐEà!y¸p´ÛÈprþE¶4æHVÛd¾³Òýç–¹|'7uê=-k‚£çEÛXç©Ëv*V”ù:ÉÙo½Ïn5vTS7À ΦópWLƒþŠ‘pjÁq‰Ôê±&ŸLÒK©ù–u2K`¡#_•…гì6.E×oõ¦›ÀºÂét-$þqù™¥ETÔ%}õJWâËÎPO“ ÷ѳ…BDd ¼Œ={Ûå†Ș£g,6F€PŽnõTr¥Ÿ®óhyúÙÃ#VŸ1PÑDÕ]**×úêÉå7?!QòRôÉÊd‡­²”ÜQJÏóe»âX—¿Ã¢®ÆðnM’xwd<ØhE汜æŠ$>AaKÈ ^y÷2ÇM¢÷a&š\ŽbÞ·þÔ~ ’³ü©åBï,©$ Y¿"Îê© l“öñv¯›÷d;%x“‹ãý¿ÀöçÊðð,ƒ²ØU#TM4éE›4óö°¦3nâ ïÅN9%$O}åÈQi몟ÛÏäRS€ÛthïÖ”j›ŽŸùunCȼ”–7§î—ìEÌ zaâZ{ñy”ö³$¬Ó·!|«¥³ŠøŽÞ#Z|yïÉ⑓ʬ¤[SeËÊ1(–ù8&3H¾Šô`G"Þ¤ÅÒñ@3YÖ´áH½~&0AÒxõ!ºÎ®\I­Obü.¼ŸéŸt+‰„­òá [ ƒ£E)/dz9‹[笇=DZÀ&•ËSë ܵ-è—ù¯(S•XXÊ”*s°&LCá pTU³Ø*4LÒV´µtÆ@BH¶–lyÇÜu°Ÿª<Âᬇ´•è:4òQ¾R© Ý»H$¬ÃG‹ c[Ðýjb¢Ñˆª[";Ø¢³â:\>Hð´7–W*•~V#h>v‹–pum¬ÙZ»¬I,蚀±0bžïðÎi”›8;Ô²à åcq7íÏÕo—™{,o{¸QÖiV´.¨ÅÚ µ[ƒb¿]¥EBë]Eü ?— $°xœõ±!ÌŸðé§{†m*»KVž-? *rE±r‰ÕO…Eò¸°Ž3žíЮbyúDŒ€ª4¯Xòî~»Ô4•#Ìàu³-@•›p e¶õ°j —’I?¢¨®ÒèžýÚ¦“­Ü—ÅW­VÊOÞÍ<9è&”É;àd2m ªU—mí§ãEx²ªú§ëp'±f•¬¬â¹çŠÏ>iUƪ@ Ùø‘k¾!bÑ–ÐÓb¬ÎMAûp•ï£ýà ÂChú’*<;‚mÒ˜ ŒD®zM±I¥Õzà0qõéÜ?t„8}”¢ˆÙ|q+%K:P]˜Á²÷IñVµ×Ò›…D³m—=xö°d½cOÒz|•­äB8K¤±¨—‘Sþöy~tÚ•Qq^–—Ÿ£WÛ„ìŠàFfS{—»!8gÝIbš»³qÔgØvU/7ø!ØšŸu"%&*/·¯q++${…¤w]ÌC ãûS¬íãIû×k$â¢*ùF.¿î7uTªlŸHk=:tªUSÝfy˜üZÝÈ (M½$Z•u¯“ðghíÆ&ûh’+$› 漏k1®hÃh£Âq+ÛújûBrÃDˤ…]%êT•ÿ‰€*c’Ÿt\%à4ͼô̬_‡Jç׊éCòÜ–Nö»^iözÛ?š öC§W%.u|Q >=}=,lx"¤'§¾wÙ’šo•Iy&Zqfíí–ÉY!5—íJ×]‡•hãGöPÁLO< aÎJÛIiT×’ íkbI¨äz éåîFe-ùûÛîOå z÷¹{¼ª?8WçWø‘’’ËBH‡§E”^ U‹fµÖ—=‡ÜÓ¶ªÆi¿¯Ý˜<‘e™O›Š±·"¦Ú|h,ã_¿O'ù(v‡Ö‰ù–^<‰kd0õÄ~5¤µéçyl£«‡¶£·SçzÈ-CÅέÚ/RºíH$¦ÛA Ë ¸‹z¨ª6ót&1_/Rs)êq糺ÕÞQ²Å‚¹È!¤‘€øÂ¨×ñØ)©ï«Ç”„FrŽ–ÑI™Ep[æg÷ $œäÜÏqèS¹ß£…+Ù~‚‘#ÀrkÏ•c*ü¯¬ÞTZ±)}2lžŸ×qÙþ¡ë¥ú•Õúy&O*Ú¤ºÈýf‚ôÔf ï*º*ÎוÙf“hÛ¢KŠŸ%½fyéÔd‰„H°ç£æ¹Â¾Õ3{.ƒ‚ÝÕ(Š=X‹ÕB®P1PR=tÁœÊö,w‚zYj'± 9n˜“íæ¬¨lS+y€Û«”„Õ&ÙÌꪣÁ¬šµ˜|”} Û>Uv¹äâqš)*À=QÍ·U¯§%Ùù ëÔÙX ›ôqZù¿Á\&`èú°íá“u1`»[qQÌèU[[ýÅá¼Ä"2«fyë±[,f—mØ¡ýa¸æãT”ó9MÂÄç²®ƒåsµÂJ÷üû&0mTÖάoÁ+Å®NG?Ùt„;·=0jõnQþIR@ÕÓã¨.•Ýï;LBðí‰æ«É»9„pÒõ×b©÷þ Å^7_S :j^3—8[t¶1”ÜëõËXŽòtp9Ñ3·}úa¹b‹›ša^ŠZÊ\OöÄí ¶ŠÛu¬§Œ:ô\2yrÍ#(;ìµKâƒÒ¡6#°mÄÊ& +ê—Ç<¥$PãéV[‹À´‹ÝxÆèùË<›þß㕪é¬ÀcNvºƒõµÄõh܃Öªíïk\õ8—ºž—º‹]gv£ôQœµ R²”Cv&[oƒ}<­ªD“kõ5V¥›Î‘¶=ÚWŠd¤®gmµÚj¶Âà¡òQ¬uR* ï™ãX]ÓÈtÚC û•=/å…ÃG;å5 &Äj>]ÿÅú/™)¨uiG+ôQÃ0¨êe/XØè—ä”u{«ôs?—ÝèAP r¿Ô9Ó+]?1=~2h ÖëàŠöóòÔÅnj",_!èÌÆÉKEHkí ê{ö`lÖM8?éæiVeÔalÓýj{ÚV­/ÛhßÒVŒw÷j}®‹sA‡TÏö= dŸòvJ…×ÁfR‡ÿžq7Çm+à(~lÔê@N¶f¾Öæ/°KîØ+ÚŠ m» ²µ4³…žðcÉ ]Úû¸G¦º¡ÄÏ–¹€9Gžû0™Ö¢¸ñu?žx{²ÇŽ}n»NÈBV†tòdhh¯ïÿæ[>]µÙÑ1ZIYUÔ»Æt»ëß.®ÌþÕ «= =_÷Mp7JܳAiZ3ÇJöÊ-ì"ÃôôúU'~ú«,¨Æ!ÜÉŠÌzÕʶ®¼5›×ÜN:ºá4Bݦ”î¬&xº"Ê—>‹‚Up’„¿Ò¶vâIfÀ{6B. ¯zùw*ÃÝêÙô„Sq ºWdFKJšÏj®ÙêÌ¢·ºÕ;°QH Gû£´Â $¹¹½í”õ†ßU×Ò¯°mâš¼¤âÌ¡,O®˜­Už/{“yZ¼a´HͶ›_Å×Ë*%°¡æ*†H˜M`8õ:žñ¿Ø’GÖjq&ç íÒ_Ä¿ýhqü†fž¬}Ø^mëQ¡“WG =T•&Ê—{²MœrTF4kÝ’ó¨½9f£!»f(N¼ÉNl»«×ªè}·~n²ÃçŽÙû©ÎT—ÛðIÈœX"‹Ž±°Ç~6cõ>ã ïÔ~øÕõБqñîÎáUzð[ìð{g7˜fÓ=õ˜Ó¹O9š'Aé~õÖóŒFOl¸«DåR÷»‰ˆ2·¿lh…I pT 5æ QkÍ¢‰ñ­u¢ª°7É7R½Mp'´ÓãÔ¦´ÀúX‘ôœ¾s®(Ú¯ù;«eY"Ч¦´¯-iy²@)%,´!CVmâP“R|©c˜úÐ=›n^~xôfŽÄI‡0Ô Jg §Sz@œT…„Mó^]Ž÷ákb‘†X—Užµøú¤™§ÁÏó²7¦[‡öq8b¢è½™ÑY*m{Ò(À©ýœÏÛOzmCXøó¨|é G––a®‰E¬*¼½)ÕA-˜Ö9½=o—N ·£¢*k“±­Gu—*»ŽMZ\ÁJû³K¿y–’4 °„èéÜÒÝQOÛ4Aðku6<sz °x ç|ÕæMM3È4X”Ãö¬ ²!C “æXö™¾—Ô’¿$îÔéüÙ´…ÏÈTçðFßzŸV“Šê½]–š\]9À1×{ت˜´ôˆàÒmJk_ž¢ºÚ¦Ôêê®ì ÇÚžë­MJ_Ø»r!$¤Á6· bٛͫC¸æ€1"ÜråÎ'ˆüÙã°úÛ™Ÿ#±±ï[¥SOd½¦ñtH—  ¼mV0^¸†…ê"+!šþ&¹Ñù[H´EÝmš³Ô[ñDM*>Fvll°’ý¬Zï–ôÀë ‹Ž¿\éàåEç‚¡ÈvXœÛ¨€o’¡h§^ñem•ä4Äû©I‚µÀ@åxôÜe M MXeÙi-NÍuêlC»j  ¬õx€ð8ó1öé&¯æ0^@Ϥë+Š“3ºìÅ´¯¾í²”6´¹Ò9€´pèo'âV‰ÁæŠÓÜ»!ï<='%õgÛ4 ‘—ïxó£#\ÃyóZnDRػǫ<»Dµ<*ãí½Ü"éªæèRú‚†AØ Š=´”æ&–N¯-Y×ÏøÆ³S·ˆåéÈl`eú_Áí3`øfÅÍ~J &©–%ËñšüiÕ&÷µ}JÌV+÷ΚŽÛusWšjªÀêØë` €J¶7yËÀyœLƒ ¿O±>çl³ÔÁ‚öì¹¶“õ)µW<Ó“àý¨¼Î›U!6H˜7N·x Ià]ÑaKa§ml$´× (8ˆè{díö£S+º)V‹:ú=ºi8Ûo[U;"³2N„—}mÕ?Û©æÚ“³ah¨W¢N.‘ ÊâóÓX:¶Ä©¹¦´ùxGöIð{×§}øà h¸c/Ê®¤K¾.ཚ{àìÒã r$‡èu±ªç6 m Ç*@U¤EV;–ÆMv¹:0|éfrêkߔۺÔòj0A6Á¶O/C‹¦ÈæêU–=I®ÒÖ€Á†{¿ 4`Ö=‡zmévËÆ6ß}63TÐ øçÐJµÿ´Æ„*oc]÷á™0ŒŠq[Ø,4 àïg™0Ñ4–+ÃFY¾o»wËÁ Z·y_×Ý\‹æ[&nub½g†Ú×yÀÄóã¸ÜÎCPùÇïkYJZû.ö¡âèf{@m׌¶¿çq\7!ž5¨û̲ —+±‡K·¨1Ð`~«IAe`÷uË,å]O¶³g6E ŇäuÓ\¹+Û@ˆ'÷_žîÙ‘î†àž&L}ÿºqû‹A+›½· ¬Pàsw——n¶éEÜÌ™j"VøƒÆá™>Dö¸6%j‚µò>§E§ZlÔ;U®k*8d²ÍÚF®@Ýè ²ã"«õãj&-“%à$ðg7¦>¶¼ÍÛLœ£Áß´ÉÐ_2ˆoZSõtôm4ñê\w7É®’°¥@ (tßv_CÑÂK5×ïôÜ*(âNZ¾] ðœ]/÷=Ú±¼ŠOeoX ÏSûÊ[:uD'ܵZ+9v>ÔÉvVÇÈöPZ¬ ð½Ç~žW4ܪ­]UWñzijˆ»<ðŠž† â)9³8™ë´bÇ[wÔü–6/ÅÙ²‚¬ˆ©ì}=¥¸Y±ü­mäc+ݰ ì”>µÕ³82ÁÄê©„«Ó†ŽóØ£²bl6ÑŒ¿þsϽsÝ‘¿×ñ]ºü)Gà(9á6øôõ:;|>pŒî<_5Ùò°Hnþh£(Õé‰ ˜>ˆÆÌ8î=çÚ¢îäÃ#˜×ê©.!•LyO?`ŠvŠvØÁž»wç'È>_;œÙœ€¨¬ßÃÔEbËFŽª§d ……C¡s, jÇ97Ï“J$ûí 2À¦hP×Bö4̈ÏÖròiúQÝœ™UlTg$®ÒtÎ9ÕIK¯çcF·Õ){·§ìHž@O%µô:ӛιE>”ôú¼Ú8/[¼½›ö,NPmº·ÓWE uÒ¦é¦ãP1nÃÛäÛÐ?]Û%=Ù&f}€n[3.cD.¥I¤zÒ»œÚPì$ÇA@¾ÞØ×T ¢èLtÛ @UÂÁ‰sÏ¡[³u¸02ªÿÏIÚãµ ìì‹Ðœ´xº ÞóÔÚHÐóž¼rè(l]/S‹`€´#4B‹YÅV²¡ç°#I— 6Á:éÄN´íQoåÛŠåUÔGb/L)Ó±¶Èe=[ønÞÈ’U}TÉÐjÑ5oç¢u 6¥•©Æã}kf§.¯SS +Ùô £p¤¬ò3ó~¹üe˸Í]»+H°¶ˆ…Žë»²Õ-BurÝm§íSmVžôØÂºžw:HouT<*ó³Uuè⪈=\Õk˜uw§DÚ™Ò¸àÚ–¢ynñƒW5KµœX¸-R³zŽê+óÑV¦—-}ú%.•l+[V à"·jÙÍö)·­¡fËÔã^UîÌYEO9±OºJ”eõ𜵸ÎM%ÉòÚ¤¼,°!=&fñ…cI7ÎÆBèàNÂAÅyù¬Å„<  )ÚÒÁRƒò±m³©Z`ÛÇ[Úi)quvRÄF*ë Æ†0t³­àèúQòm@‡çè¾ôÓ:òýÕtV,[l*¦( ©s¨y•õn†0®MšØ†C’Çaw¸v˜ý´ì­¸Š]ý¯^HwK23Â'ÙXZ·“:ÅÁû-UÝûP.çYmñ½¸|/vK8ëךG¾¯¬éÖdÁ¶-W1qÐÍŽDx–çî“$윅cœûéD‚דm䱄¨ 2(Êlw?¡¶ÃÔ{d{rØÌé·sw r%Ð_çÞš"Û¢ø¸9T÷S:öÙÊ 0ÛW;²ùËlo$Ow€iϧäµ…+) slö¸:ž=ÊÈ&ÛY%ý`Ã[¯ötöÎam)1à ,[ªÀÓ)Or_¯ªCáYÑ p]ÃñƒàX%ØBÿZ6k{Æé‹í éÎäKö2á)ƒ¨Ï-·œø‡|¹³Î@šAÔÑÈÌiæ§htþèQ¬Ê/¯…ûºÝtʽñjâ±î!Ç{v?¬Bß, )NgdÕm8³€y-)*Û‰ã¯:J6rfGÓ(Ûú² ,yB¥–׸ 3O›õéÄ®µ¹Ž£6–©0Ca¡2ìîÖæèåUÜHm&3±âÇS÷Â÷´#I>Fò˜|ÀæR…5uøo\ ZarÝMó`­ž=I{¶Xåiu Õ£æ^ÇT0r«Í˜×úk;$HŽ'hê"K‘ÐZ-º+Cúx)Ʊ –‰QëJGÖ;$ƾqD°ÞzÚ®¸§µn›qÏ)—æ,64°¿¦¤œy7â[zµ/7^TÅÉO›¢å‡kÞ*&¿J¡(ƒà‘2àáQ²^ó°xœêpë·7¨x À’†¯ ÕV‚]Ö 7Cñ˜•-äˆÊO à'´ÞZáìÚ`w´]•Nü“Ë÷5?ÔL"ÉÆzÃXÚp"IŠx©¯h "Y¼¬¦¢Z&ÕïœÂ-Ag§ªN»À$±´ËME>‘P/?°n¹HUs«­¨t¬]òZ‹›µC’hÇÛ–£‰šˆä˜QY„>ç¼eÈ'¦š[ï׬抣§¨s5ktà[þïaûït°yûêNO‰OWÈñ:!‡”§òB·âf‹ ¯:4·%”ÊŠäR‡1<«}õŠU¢Ð«U—ݤ«ìH ¤>ªÿâV[PûÚ“Œ´Žñ’¾à>-`–•èÝDPu =ÀS›[ƒnu`B¸±B1l%=@"=)§f;$Ì–µæyZzu޲ÚÓÐìO„„“c4*2€H{še{h«ðª¾ìCb¢Êþì|‹|¢ .\ÚVZî¿dœJ‰-Å”ßÃá2îY!h§÷|œÐ©jO†Mï}÷6yvê­JÁFV®Êïéó0f_(°™„·ç–…øúßï}_u„í¦Òk€»Ô[Ù~ lCûÖ'Üé¡Û`%¨¡d,…}ž¼$yƒW ŒížbUüG”ça ”å8'¸NÊEâ‚óá(,Ëô®“ÁY‡óNêÄ¥å\ȶåwPÒ%T%}€+Ij \Ù‡¬¯¡ÂÎ>5~E\Éþµ¾ƒOÂ:°èêO­“-9¢úœÍLÿˆ4Áð¼L81›Âãi¬z‰êi`_æ  ¨`Ý~*o¾™°¾¯'ñdj—ë$i‹|†g»à|²¤¾<\¥ö e úè²ð§ç¢vÎ1ñ$l¼õÛSÌÑYNÖÄ®æ)ÅËnõ´¨ÖÇäK\&±G[ê 2܃0½Û‡n•ìa{Ä:¢ Ò@³éI^“pÙ©mÈCLQ. j{¬†]#°5 6¡:—w+&¢ÎÁg(¼ ùd(.¶(>ñT]F¢A4ê“,Þ¼¥võ¥D4¯DÄ¥z4ª) nÛ{ƀˮôS‰Òd˜±½·q\ 1¹ì²UôkësôˆÇéUû %PøB™[[I°jÙgPlŒ„ €¬i~ ðŵ;ë{%Ë-®ßE[Þ‹†ñÀÜ•«€( Ò]Ñã¥+„„¥Åmü‡À\UtÁÜÒ·~yÔÈŸ®f …®/€·pEÊ„ókÈ“Nö*ª^cP¡S陲ԄÉp5"9ÌŽ ž`&àênO~»ÊþçÄÀŽ¿Ã“¡9„“m™; ?ª‹syÝyN~‰˜¨»x­grƒàÆòâ?Óq ö«$ `À®‘ƒ¥ ¹xYÚzWµg¸kRsÚò(u¨Wq¡ìüzz¸¯^NEËçH ²héŒ'š“ª_R¿œ 0îîJ'ßi»Äs[ãd? (^¸x¿Q£ðÂW“³AÑ-Ù¤èFÁ2¿ceš¯×ác‰@’@i l9=î΋žšXQ[r­³«ÛÌfd^r$P]JÒ­(IW訊‹¼ŽèWÝËIFf«88‘J:¯E‰…ßñ~¾ž HÌN¶3/¸º^%~í{¥Ϫ!eܳ–%\Hz`Bƒ Bh)ŽˆóVAپK°¬zÁWbt³)(ÛÁ¢ð“úå Ø,Iœ1§0–OÌQy^kW"Žd (ñl˲ƒZ‚É‘nÛ1Þ->œ.Âe³%Y÷€Á€hzðÈæ{&>uyvEei¢.ûÕÒÉÌ&Kõ€ 1ÅOÍKNIâø×»9  ¡4kk¨ï ™íXä.^q‚õÅ:€·œ/öQe¥¡] »²Zå!3w ‘­!•qÚÔVî-ä,±)·I8F?Æ)aó4gŽÉJ:Nxåj)ów÷ ê±MOÚûP$:±Fʈ¶<¾Q’·Um9·ŸWDæàr nÑgÑùd;`Ï)ýRe¿qGw³§äPÅiÛGç!áÐÒvbÝx×Öç$@Ý^uBoÙ0 NurØÖP:û^ñV‡kø•7²›òÙZÒ]oÕlR,à²jªÒE>dcÔ¯Ý:yÂ\sP\ÎáF[Ö•HeŸ[}q zÙ,Š‘ÑË3¬­›¡ºhûàíÁ²|ë¡7˜«-˶x$=Øw~ì-å!²òÌV†^gõoýx ž-òÈVülY°“FïåÔ<¯ó~¸+ñzì0‚«œÑ›¼ÏbE6AT ¿]‰Wßòa&ÁCÑ’#qo<£žz4» hÊñÝOàÖ¤œ6ßÎH„Ó­£6é".iÙÜšÎqŸ…u}¨ØÔp–7O Z¹;„쯲ié<€ɦ~mzªÜ®g¯Ñɹ÷úhú#áÂÄÎyúVº›’'1 ªNÅ‹p"á@=55ˆ'ìëÙã¸,§á4‡òT@W;¥@T·I¶±î¶Z KS 04»O6ùÖ 1$i5ëÌj„«Ùì_¢B…xaà€Öƒ¥˜ ±ù.l€¸×Ý´ÕID¨f¿y?“fvéÙ,X T5 ß®ÕäsdÕÆqjʨK@æäêó.Ʋx<¤qŽæòƇÓSË5PœUìÍÎë°Tœcs‘%Ã|¢Ý<Í~ž~¸GqJåM¾B ßØÙøÇ5‚-UUµW2õ©T¦eä›Á>nS£Ç›`'CÈú :wÙ3TÝêÂ1leßmØÄTꬨ=ÇRyJöª²ðh<¾ä-ϱÕyUÊHÃÉ: @–‘Óæ‰ <§ý46¬³@³ø«í¬ØþT‚!êêó›ÎŠ}ƒœfC*ë@KØM‰çðÊ%¿E.ðˆ«o•˜Þ1ïÛ^)…ÝÁ×:²óXQõq&¹`¬`nœO‡Yq÷<Š“u,.…´N±´šÅ%³!¼QPãb…Ùb4,RBÛYÕ‹ÇÂíN ž ´¸MÁº¯ÅÉcqàÔ]n™Œ n ^ýT4U…) ´Wñ´ûuÞQYõR@oE¯v yUkhªé¢Y¯R[FÄ7àá:°Ò‡ïÜ…î»J†Øh–5§¢Íe÷ê[ _Ö3o ðYªÔqKŠÒÚ…yÛYÊU>ž’ŒÂkñ|xj}ëQaönpáq6¸Ct:VW{óÜÒ7žuÊ2ÿ¢*}O¬T„ò N¬ó6eO˶ î„Že*0ܽ볒“½+—OK™+[Iò§ç«d] ˆÀ ££ƒU—>¬³‘¼+¡—kk¶NŽ‹¸s?Öæq€…ûjá#oëïþqM¹§xð($dŠ8”]ßµzÐ.çë-óeÍf ™¯V\´ƒµ§#ÂïÎ$+Ál6Â~šû¨À iOõàÓ)¼á(Pâ7ÉôzÑÞ2W†’&R][P™‡f¿ˆ2¡ì»æ°²ZÙzb¶ˆ[[®âqØWE<Ó1öØä«âºGJ· ¹<"Œ07òF‘th5|Re>ÕñN/F!£°²ÕV¡ôÁ3/©‹>üw·§ÙìLU™ è 4g°ºû69)1’{ú1Ï«ò¥¿*9+q®©új.Á`cš,¶ŒknÔzjæd(øhé4dcƒècè€ç y빘O% ¦Ó*š ˆ"Ü9¤™ ñÐZøœÃ5©:ÀvK<™ül¿ŸÂúa©€(]€w½xW­±ÀMïÒªuWN°-¬Öª|Á×¾‘À+@œ¶eöm+z:xoÛæ; aejV2O-ìåÔĘm ¦ø8¶þ…†žë>÷¤‡î]²nm8‹ªÑ.j-'àbíõxeX8Ò#”]íhåm# OCˆjýáÔ-™TxØÿ`*·˜;¿l…µâ8–Iêv)÷è)DNï\g4oÏ ìSUŠzt»(£E¸sä½;RV픵«Ôêz,3²ˆ —MÄ-&çHb9tUÓ¶Z“>†žjÊô’ÆHÙêRÙÎ@B°#~ -…tg€.°/{²€ô[fœQ•TŠâeÕhÕÏ§Š§U#O“[P÷vY]éжÖbÝ&]šT+Ë:÷ðßëYQ·ïYÿH‡QO5ÏdËnpv[eƒ‘M’ž7ªqØYvÎ’÷)àù@O{P±óRÂáDM³ßv,aí¬« mE½?íó·Î­v‚cìá-\±%AêúÄž6•ö›¶‚fÍIqXÕÚL€³¨²Éd8Pï0yŠ?’%rõtxóÖ>¡66 x¬X­5…=塊kaÞhç0ìMs$;èHÁN[R ]Pâ¨Të5Úr4’X°T?ÐôO øf¯¦gÄ»}²ÙwhÓèÀ_„gÔ!g¹±˜÷uÂI¹ælV§ €™jOà!@ëì°:UÐʵ²,$òô«À¨Ÿ| [`N˜¡­~ÔðäF¿f{ðI¡í_'ÏM q—×ÑÚíì “ë§î¶Ñƒ!5éøMOºr­Ž¬C_§.(a¿dચR§ä/g“§1ºp9 ï„ ×x(v7YÐqýÄÃÔÿGS­Ž‡êN™ç ¿¶íbvXÕ²ç˜/¡L=×ÄgQ…X: Ç‚“‡æ˜¨7˜öBäO‚®FêÌ$ƒœgÏ@µ[·í¹Cp–ž+ ޳¶@ÄjxØä[Ï¿j‡éæÕÞl±3^úîlõÈèÁõʆ]pþª›u¼Aˆð…dþ zJ(»…Üíá£l]pR.vݘîNdÊPP'ý›'Â:zÆy<Úª¼ðÍäTêù~Ća“­£_Ž+Q/  :t®"F(±3†ëPg/ƒKКˆÇ–"6.+‘ÅK0"»G· @Ïã÷ö\½•z˜+4Ôæà|yjª6-íÖO†?c~áT:ZC =ôsŠÀ‘#vù¨íø‡  ‚l€J`Uò‰à¹í½¢—K,[\‰A*«H@5ì.=òÔ¦¨h˜·V öVë¢W­Æ–OEì –-ŠÞläLÅ(õ¿Õü¿nÀqPJBGŸªOý‚݃l.u+‰ó0–Ó!oò H÷@ì}çC Ñæü¤sÙÍ·ÑÕé<ß] } ïKé*¥§áÐI‘ln‹œ£Ì#øö°ž5³šl·/_—úá´àIþ^Ÿ°©‘T¦ªCSѧô-º§Úÿ¡†ýù°‹4Xª¯Œ—e#í竇i`•tC&Q^v ){¶¼‚ƒw8‚­|¤vŠ=$¸Zß}ÿ“¤Ç‹Mµx`ô"ÆÍûRÒû+ÜŠ0r :ÌÂã›ÚÿÅ®±â¥¡Cé*€#BTÚ–›=§ß'·G#-…hoíÙ•šä,{ÔØ:u[‡µ=UIÂ3'góqQýˆGHªõP^P¼—”|ìŽÂZº¯¨9+ì [ËèUýëÞÖ*¤wö©Ãƒªû»Ü`ËuÊÍVGå=}œÔš ¿x̦õº|#‘¢û}ð$xjD¡›g`±z4—º¢ùVŽŠr‚#¾U÷$ˆ-Iny’ÛvOáÖøòtlo¼ Õ8NÝ‹`MEbwé65Ó¨b€®Õцþ ‹ÿ”7RÉH5˜žìÃñcuÄT{ n@ A,KZê ~¬ÀŸéÙ»õ‰ó‡°‡ï懥Pо®ûè«K (©þ ±î±½çÑ$X¬íÛfœ¤ë`›GÁulƒotV¹!rSâõ-ʬ¤áTîÓœ„e)L'"¥Âö|x±+ÖŠ—R(Ü"t5ÀÙî½%ÙMÛv)€Q³OM ‡VH€ò)ŽÕ…v.(_yœOJËŒó1)Û.}ü€Ûç_çz9j`ÑJRrݺ­c8ï¹å,=ÎhúÖ1ØVãa}öÍA8€a˳8Y ÁYx–k‰Wïµ$cŽÇ íMU­J'/‰Ö± Ǭa¶†&XžÀ±£XUd6ÝEê PÓ6õµù’EI€`+–3ÖAVRŸÂþÑ(£'ºÂ|cö,Þ0ÇJ‡j+ìÃS Lž·Ï{ªëÔuh9¢žªjº¦$¿Cxv=±¹!ZÖ>>¹‹ ÝÃá›QFOY7åœ8ßö÷ïœ(Ší¦á©–½ÜpË&´$ŸyÔ‹ÊYùŒ¸TtÛãÐfÏ[Mr x÷¸m/Û6\Yá§8ºªs©Ï­‰‡¢¤þ êÂsŸ¼úeú&¶ú Ìí#*ÕV… ™b½Ž7[J/$î!@C*¶è§¬b»Ö ío×CòT„Ïb=m¯ÏãÕŒíô©—ȼ‡ºŒ¤qäí@c˜j°pÇ 8]# k Œ ²eG”~ æ®z~B)h’d š°á¶šõ‘7”ùLáRSìÎuR›}Õ!þ½ý¢:-Ø“$”‚ øÌ{¶Aò4¬ömȻ놠 Ó>··´º\Eãg¼¦mjv“©Jª‡Ò‹P–Ûc#ågoEex36Øä †ã=jÛÒØhI{xW[´­ÍýJ¤&d¼Š×j•Á?<º~º¿œ[é…/¿´$Þ#§l1²cÜ’†CQŠÎGʺ†ŽsWvÈâiõ|$uÜnuåK²<Þsë‡=‹ÁaaÛr^ì½S¿zúϲ?”3]KIA“PÚÔrœ(<¶½¯#•í¶ÞNRSêÄ®ìiu?jí©ŠŸêÕž÷`'è:®ä¢rš<²ºš©¦ž*1(…Œy‹ì‘¼ŠðáDï5w‡¸À«S² …Ê—·òhHâñ h§zvx\7@ˆ®Ö‡ç÷:‡ƒIˆìVO·À‹Æ–hCÛÛÔW9ÇéÐ á`Û+‹›.›ìn´ YóE0¸À“Ô\ü…­éê5YŠvÜá=´Lw9yêCpË“WrÏc·=±{$qMe™êXÛÍÕµelžòØéËZÉvæÁÑ"IŽDFñTâLû ŠkÉËv³ëQ£ÉÖeý®H,¶Ÿ'S^µ¹¡˜J‚©Ð–÷l÷¦‰ÑrvÈqû«3ñÝvXm%™Øi*"[hT8šN•}(›á¼5]Ú¦ãá%B–ʆqÞI_*2Éð8Âî*Òh'«Tqk PIÂQ›ÁdsŸSGä 8ë°á @bI9»„Ô´ßóÊ î*¬W³Èãü°+OY±ºš£ÛF‡xgòè$ʇåhrwØ—ì2l´·¶£ ™ºejukRäTm÷@›H¤b›½Íùö´Fl¬»u"IÖ~œ{l·o²•Uëš°ª åqáT†Ç9(6œ…/´‡…ôü®œ dig+RL¨ÖÝ,ê.H €1{Ä,HV4}ÝÚÇà(63ÔAíØËq`Mf*’n-ý”zËoCêœ$¿Ç“ *a^IpOowBS6Rïù âqDÝ4âÛ ³õogMŸçðøM“kÛ”Kå™°¡,’+Var‹¬UµidÖÏ+ ºn[qiy×ÃZ¾Ë®kTÁ°úØO.ÕüQÅ6hB¤D}4SO¯¤åásÚžpLw‡ì®ës‰ˆÝ¶ê[9 b·íÄN﨔Ä8Ä9£ù"…¾_x’* /DÛn»¡èºÅn›­[ŠÀáeÖ9m­›Ú3(V·¨[ßCO VÏŒ}8y©þxIÎ\Œtl¡„U±O›PUYÔ•m*‚òD@Apéûý>¹£jÅ=¿—MÔ€Ö;«Hµ**“Dè=¦bò6ŽSÒÔCðM¢ÂâzMZníÛžøåh˜â€bx´KÄ ±JeU,3Õö%ò-¿jøÔ<‰?¯”“ë]#G)j`è™H†òÛŠr*'kçF‹r 3²¥ÒÝgÛÞ×Ó£4òPƒÕލr”S‘Žø®Üƒ!¿›áv8I•_>ÌÑ ®4tŠ 2ƒ4Oe‹ø“ˬðìP•l}:Ó¶eÀà<*@î侂_߀o°²ŽÜ@v¥ =úдX¾9/ºšû[Ÿûj^2o2(ÿLšV;‡˜¸;Þ³þ6¯ÁçJöVDsè…Í=«¿}º5¼â>ÞÉUWµDkž/ ØÖÀô×ÈÇP¼ØÉ ¶­%ìÑ®½£Eãн̵ÃÊËë•?öR-‚Íá,Ø|{êDÕ&2»õîàâÚt×ë`³ò»@¸GùvO×3G¶É Ú+2ìÏßôûU P8CŽÚਆ{R|wlÒ•J²)<ÙøÌ¢tþ„äší˜ x¬‘e½ã`õ«#¦™Ü«;È-Öré[ŸÛé²êEÒµ †ÙÂv/»,›A®áÎê–@5P–¶O=€œÖT)X/ª¤ KÝód=„ü —#F?пxŒVÛctq‹=*:¶µ‰\éCu9;šûÚ)ÈÍ–Ö¡£PÛúIàr%e]Axʉz¼v§iW”£]SÝ7“¦IÑ}a»`ž êÿâz¼C'€²ÙÓAê±gfë­ YWívþI½ßDÔœš™8IÓ-Užs&EáPºC@6¶(×;»š€§Q{9yäìgœ$W›d“µB];`ijn›BÍᚢ€<TÝl°á•F‡¾œ%±¦Ú«Ô›píÓ‰ÝN¦Ë3M:N‹\™/y÷0ÑÛYžKéQE0V®”%¢Æ´òš4Mmåáv\ *8—saÄž! d3º|ò% w¨Ø•;0•þ¨éÖºút*c]»«¼ß{ž\§Áñjù85ùªµL‡¨Ì­¦y¦.½×çôÀR«z ñþ|Ž­á£·¨xR}o‚¹¢îÛ©Ò6H`+%Aùkbê&&—r³Žô‚Sº³‚‡º[ŸÆÓ­ïƇ×ÒûTn_¸}ØÚo(Ÿ CÙPD,Oq€= p,ȤàA¨†*ݘàiT‚ÒÔT_{ @Äâ¼Õ÷Æn"-Gm’­·šø—:š$íJ¸×òVƒèS™×º£2vÙ逽–—l¼1^#-´ÞãS[Ö›Ç4ËAZŸ6ž‚ûT橯Ý SðuN@V5÷SW¢ºî¨lÏ"1”¦øo°K5̬¦«êQü\yºSÕK *lµ ÕÆ_± ú¦Ž/ñ ëØõ:ß*Œ´ÜâL³¨ÏrJö5¨8OäÏŠÑŸÛxd®ƒ§ï9š ¼$…AôÅr U©ÚÓÃ\{‰¦-Æœ²­öBÅU­sœïÔ©‡%î4j}ŠýmU[Gu{²Í¸¢ð¥wø€•Yà *¨³Ôœ·õ.êâ"Ä«ØbF"Íj€"IyfhsS$ÙÍ®:2t ¨xœ =lxA,ànµvz¤LÙC.žùEªïÁCúëR†•IH3F:¹±QI»7k‘ÇUYdô=&nÿ—¾l— õƒôÎcÛSû§sý7Ñ/ûT®I¥nGS֣LJ¥Ñ…Ž=ÛPí;[¯ÈG·‡å°9 ð¤…ÖÕÅ¢i`‰ÝÃöT—ˆ2g "V]ç·3AõÖÄukª³T±!`AEíþÌ6&è˜g!o –Úe¬VHíÑ‘Ni¨Mú9—P4xD"¾ÿ̧kÌXò1”]\š˜=Ähh÷~=§$x²î†¥p9«o©è7<öÝaýÙ}ð‡´SyÞYŸlµ>·<¸U°’{âbE0—“ïY¶‰[Ï|Ƥ6B¯ÛÔiñûÍf¶Ëƒõ·ì¶©¨3×þ~Öær>¦ÚbªqºÀ æ…G—®®m³E$ (Cz Úú’\¿ ŒWÆÈêOŠJeÛyc‹Îa„¯NÆÃÛ€Ð'XEJЃ3NSÃ’ó¦ÉÎx‹û7Ñ·ëQ8úžé ÚGÂÇU/YjT÷ñ†TÃúÈV§m—Êu¼Þ¦EîáX›3öŒ·¢RR- Mò4mô´Æ¶5¹ì檺ÜÝmëczÇowE ­¾4€=•’eýD»ÖUŒr&ÒæV.@ kuˆ“sVèp ËÑ/ —0Éâ1ÚquŠ ?0Ǥ}ñß)‚ÿ 8t<Ö¨:uÇ.æã" bt:! ¾:çêŠtGKñdEíÁpˆÆ~%u™ÎÃÊ[±ƒíì‘S'¨F 3Ë>2# ÉÎÉŠ¹Í¼» €K&¨:Í«¸%sKTM¹r–‘±{ÿu³mêõaG!'࣠‹5úRM™3ö×L@¸¥Zˆ¨.îðØ×– Ö©CâäwûÖÆüz~ž¤JƒÔ±9I5s°”À®ÊÔ‹”IZ«»÷pôË^{'Áì Ð\SƒÅnË—[Ê®+Ýú²´``½³¢ÚZöÿ§G!Ùú*45¡?S:£UçcÁ†ƒüC”TdñÕúÑÁÙs‚÷­%+°Ç–²ß—*GÓE¸YíÛö<¹²Ú¥€K4‡³ªkÝUŸWJŽÖw1Z;,°0¦(ƒkOmÙ¦<‘µÙLe+ )¼'ûæïwÀv bì„BP…‰_š6&Ñ1Ù¢#¸ˆ=Öaqrx­ÉY/;WHRušÉ ¤…`MÉ“*V5 X]¼~ýUY)@¦¨6‹ÖÅUs?ë–,¡ÿ]­åó´•%á{ÔFìa-HKë¡B§°OÕ.íì“ðz(ÝÅõE²©œ½ï˜lƒÀýŠ&Úzé)ˆ}²ÉóíG§E=ÐÁÊvP)äŠ+«Œ¨©#ëhŽrz`IXkÕGWIÍ[IÏáR¢[<,’–XVk¨X 7Õ„F#¥9SÅ‚wVO¶‚;R¨µ§É¢Ó‚÷Û¡dy$·Ämt8õºv1OgHC­ e(2¦5©‡¼±ÛÂÌŠyî+L§ ³½ãRÌjå±?“ä¡*aꜱ+«u^oÛ'4ú*Lq aþR6Ÿ€MhÔ]ñQ¦EiB°?ÆÞkr÷nAXí÷Î畉üjx'háðÌÆ#L6à–{Wr 5Ú㾸9–d¢fì_[€lØ÷‘õ~9T„Ö¨ì•g\Ž=¢S‡¨®Tòì¾pYpO ã·ò"X?A(U_Õ÷Ôb¶`‘Ùi"g!)_šÙê)¶´y æ"0k åµ£ØUÑÛâÿþç¿}Àÿ6>àç¿úüõ÷?~÷믿ÿ·Çß}ÿù‡¿ûþóøæ/?ú£õí/Þï¾ýñÿµþ«o¾õ‡?ý4þ¼ÿ1ô¿û‹õÇÏ/¾û7Ÿýã?Žþþ¯>A·þ$þÉýì›õù˯üŸ¿ÿá›ï¾ýÓŸü‹ñýç¯äÏæ×?òÿü»o?ýÓßþêSÌŸbýÓxýiŸÈÁíïÿáwßÿé§ùõ_ó‹Oþ'Ÿþéwß~þáø£ñÝo~÷ý7õK/íïÿë§ôóü)¶vý“ý럞_þþ›Ÿýí§?ÿúÇ_~þ5ßøó¯õé_}÷óo>ÿø»ðÿèÿËüÍŸ~õÕßüÍßüÉ׿þáO¾ûþ¯þÿøŸ|ú›o~üå§ùù‡Ïßÿõç_|ÚåŸýëÏ¿¿µ?9þèÓÏ~ùÍñ¯¾ûËÿæëï?â~õÍÏ?û¿òÛoñùûO|û§õgÿìÓ¿øÍço?þñ?ûøÿäÓïΧø'ñ÷ûßöƒ¾ùvÿò×?ÿùw¿þÍ×ßþî›oÿêÓ_~ó«ÏŸþÅûÏþäÇ¿ýñŸ|úúÛ_ø¿þÕßñû_ÿõ×ßüêëÃ?Ø—þõ§÷ù?}úš;üýýýðóï¿ùÍ?üÉßüÊ{üÊùxçã»_ÿúó·?þpx}ó›ï?ÿœçþ»¯~ÿrÿí·ßýÍ·÷÷?ýå7ßþâ/½_üö7_ýëo¿ùw¿ýügó÷ÿ†?:¾üÙ_}þñ™->}þwŸ>ÿíÏù•_ð³ßýæóþËèsÿáï~óÝo>ý%·á2üÌÿ;þÿúó§¿ÿíçÿðw?ý‹øÓã§_|óó?ýëñåÓùãÏùñ3ïÿûoþöÓÿ-°üâ§àÿüá¿ý?Xa¿øîÛ_ýîË?߯øïïõÚûwûéïþ¸äOœJüølŸ®>ý‡øñõ7¿¿€ðåwÿìÛ¿üîSû¸NÐß_ë_ÿþåÿ£ßïŒüé~Ö?ÿŽ%ûùÓ?ú²Âÿײַóâö:ß¿ò?·¼ý”ÿÅþ_ÑûÛ_ýjÿý?úøÿ“¿ÿú×ßüêw¿ÿ,ÙßþÈòÿóïØßþÇÿôÿüùcÏöï~õ‹ÿøïþìǯÙÏ·õ«?<Æo~x¿ùÛÏ¿ø‹o~üù/?ÖÉÇŸÿkwد¾ùöó_|÷Ã7Æ”OCøþŽmõóKܸŏÿê3»æ~åúöçßýÂí•Jýôõ÷ßý»#°†R)Ÿþ.²ñùo÷òýôÕŸ|ûÝüÊ'nî?|úËï¾?|£¬”¯þòÿlÿÈÚøêßýö;î~ßäßÿñy~úŠü믿üIùôÕ/÷›_þðGõÓW¿á¿ûÅ—?º?}õï?ÿÝ—?àó „ø™ÛúêÇ¿ùò÷,¯~üå÷Ÿò/¼Àï~ûý—?È^ñ_ÿä_pq?°Mþð3—öÃç¿þÉ•ñd¾úün¨\Ÿ¾úö›Ÿ\Hå—ž/?ñ ýËOüãñå'îi~ù‰ZøéâvÞ/?q3ÿÝ—Ÿ¸‘ÿþËOÜÅŸ}ù‰ïûg_~âûþüËO|ß?ÿòß÷/þðÓÍ÷ýÅ—Ÿø†ùå'¾á_}ù‰‡ô³/?q·ÿúËO|ûÿð‡Ÿßþå=7¾ýß|ù‰oÿù~r½~õ‹ŸüÈý~þɾ¹ŸüÈõüÕO~ä‚~ù“¹¢o~ò#—ôÿüÉ\Ó¿ýÉ\Ô¯~ò#Wõë/?F®êÛŸüÈU}÷“¹ªßüäG.ãûŸüèÚùÉ\Æ?ù‘ËøíO~ä2þú'?róåÇÄeüíO~ä2~÷“¹Œ¿üÛùç¿ýþ{²Ù¸ìõ¿ÿy§ÎÏŸÿöóÏ•@ª^t»­ÊÃH¥,ºÖ¾žsA†l“p†vAM=:KðžÙ®Ôá¡ïs„®f{ƒM~éCé㌭Œ[ÒV#C´n ¦ÜNÜ:p`ƒü©eM½úÛmß.oÓÁ'®"½Ùr\6»{ Ø·CÑÄ]°?X`>.—eþ¸«åÖø^……ž`«¬REÝ=ó§_Æ¥§}yžióªV¥ÄcU oN…7†çd*•¢v‘Lóô¤µ&%"âÄûä"gØ"²/÷q@“ÎWƒ“ #ú*Ÿ­ÉßßG0ùQ»âYA¹·MËüóÅ+ÛìcK>µ¢¬‹V Ee·«SEò½µ]IÅŹ;ììŸ_K‰Œúöu„ñæk¾õÉÖô’F‡Ý©Ûl5ùà{pÍkk+@”¶¬rí±®œaêܳÓ.ÓÖÀRÚóðPxòëlÏZ/w—–â©Õ£øsPAÙ‚Ðí ÷Áƒ¿ö­­­´•V²vq½*À{rêá•SêŠi縞ñLÇcÇ©ôk}ãR*:ÛßGÛ×À{|··! ²%ïóZý­a;ÀñÎô²6W1ºÌJUuàhCj^ÐÞ){̶ ¿—ç{Êsëßôp­:TvyÖ³`êk®»_Í–}m¬òðð·0“¡›m;k~+JisÇž®ŒæÁ£QU<8ý”fÛJSŠûK,Ó²ÖÑä•7’ìnT^DEõµ¶—ssC:ž¯Þš¯ Uñ¾ÛÙ(ç ¯¬SØãÒu±Óšm<·õ’Î}s\j7§Æ/ÜWQ‹ç.ÉÞ×:OÍüt¥Žðì÷zy¡g¾x åZŽs˺¼\êCl³û¥h¹Âߪ š+˃¿<¤œm)ýæ9„ú]Z¿×ÑŠ-+‰íS•OŸlùàèË;óí8®ãò:T×XKêÃù´ìsó@ÂÁ&ëfž‰)Úñz†›õYM‰IlX–{{'/»{vÛÿ–ge:=]ç8l6¿ÔÓòÒÍüTûöôû}î\yÒ¡õ0߃•ç«M!p=ŠL·¼…4'P›5¸¤îËåëYò;&{}¶Ávfq¾ën¡kÌ}/m‡ˆvºH8Ûùð^ÓS³ó`Ž6é·­Ùs:ƒ3(QÏwÛµÜkg.ßÃ{½T{ìÏ éÞÚÊ©l½xKƒvÙGÍ¿zç56þûxÄ¥K¬Í*7ûrê Ò¿QÛˆ§ÉëäÃxèÈ”è°wlÒ¶<ýîY¡5ôº|—Ýá©6q.=ì–ãDí ˆ“$‘ÜG Î6 øÎpjýÄM*9ÙGw)Z¹t\¶_O߉C=å_qódõ³ÀqÊ÷ãÆÓÂÚÞ×Dº\Ú²š¸}–ˆÅµé˜WÌ‹=·‚ÈSª=Vm8.y‚5uÑ™Údz`CvPÀõš:³‚/Õ¡ˆ;ùìGˆžS•t9Ôž§fº„!Û œœa{OÞˆeÝà9áÚÉ::e]!›C/çr#T'.XòvtvöÃv£; ¶ÇvH=™‹jJ…ª’§çäÔá© ÖAh:Ô¥u± ØöùzX˜zñ=ål圗Ó)—³M}º\æôŒêÃÉÈt¨'ìðUQºè$pUñU•}Q©S›/–@öí_¾ô:²Û­D6:靯ÇÌ\Â}:Ú3kþòØ.:\Æò'Qñ¯•Å«-7þì˜VQ«R"`‚%îî(>‚@•q¸ƒíÀC¯êGÆ“-ÔçPóŒåpÞýj Î@Ë¥e¦ ê€Ûnîã!ÆSº=÷i·Ý)É#Vûü8I©¬‹nÀ"Z²ñ¢³§æ«¤9dM¶cÕ¦këð²í§Ú•cFuØM,=€ÈªÇ 7kÝ¥mreãsÑý”Æk¹ ož8h¤ØæÁ.ëŠb‡m™c o%$'¶HÞš›ê૜Öl‹b%°LF½”JèŽÖãz÷´ÌÊ»YR9$qQðİ:xǾº_›Ï‚NšÚÉØ£0ú>æ~\N³Tÿâ¹”âUaöÊi¨†7îìÄ3¡âzK·åÿymr9çí<5ãH7ÝFI€UVœ}¢nãôè™K#ajpÑb ;½Ó£á¬òBŽó)Øú5·ãH/x°µ}áæó*EÚô¼½Z Ö(ʶiÃÝG³)i¨¶zW;-‚ÚnI»fÏ/VÅ+àá³+z£'q¿vîç°ÍE÷Œ©T;'©T’ ºK¾{4ðu¸Ê°é„Ïö?˜6Í;±[çaG}e-‰fé’ H’ÁŸÞ]ÓÕÇ üËlÌ¢e ¾|™&.7>ÖíÙŽ$Ä×aå¥8j¿Ê"»ÌXŽÌ'gõu½ì:Ç‹:…6»µc›yκ¿UýžÛa¶ÒÕxñ€æ´ÓOb ¢À=K¦xŽ«nƒ¼6‰ôŽ‹O­P5¯PÆyk¥ƒ‹_u˵ 󌞞vC»µ›¼Ô.é:}x`ªèQÆW¬€jÕZÜÔVÙÀÙ5ÅÑmïó4OÇyiŽ|Z]Þ~t=®']/¤(¯LØáˆ¶é&»ÎK¼ïk»ë/søÌžöê,¶û d‡Ldþ½ú¡åeg9çRGk“1 PØö ÉvðbÔ(b#)”tðÝ/aYŸÑÎwÕ¢a´:ií÷FÝ¡ø¼›{VÖ\÷­8È1<÷5ÆÜóžòk8r¥FnÅ9o–ƒ‘Cle0²©A>ü;…{Iñ¸_œäU+Âï@l¬ÓœGšÊØ^g ꇤÞBpªCiGWš² ™Ø}«måx{@nïì‡9!¹ ±#w–lHÙ¶­Iµ­ƒx)pqÔØ®‘ªAéåÍœÎfÓ_!j† d¾ìXêûx€;ü‰àC©@>Չɬ¾Žcú¼ Ϩ@î"׸½›,¬š~Þ¥ãaÊàÝ:“ªóÉÍ·O¥úi¶8²[Ù  öÞ=ŽÔTç­Ú’ØP>Ó,øp^>åéÚ]lª¶WGÞ¬ÍMbm[ìE)õ[»XmŽÇæ¶.f1'¨[^õ“ D:˰wÂÁß®s½ˆÙK%ÅuÚú4pÉmOÀ ­ÍnpQ›Olá¥DËéø8l._vÙîLÑþx44éÞîÊ–´éjØìgô4ZWKÞX%@l‘2V}°i;f×û£z+<'x|¸Øcsž“ëjxóA5 -Ï´UŽoU’@¶ãäÊûP®”)öÛ«… G¿ØùK5D¥;ÀeùUTŸ°Ç6@Ñß¶ÏÓ|”ýºíD›]ÕöuŒ[y«–ÂË…¯¥-Föj®±ãÄRËE)#U»³ª v2ºÈÊ8³œu„½òr,[gêëåè€×·š9¦J¶oí½ÀK·Ÿ”Ý­éüê~Ò÷ „ª@91H‘[-šekvØÓÜúÃÖ%¤CY ƒöËzRÙ"KÊHÔ¡üsÕs1T‹SÓýt¼%Z1®E‡Æ`÷ÔC–2÷x‹ƒ@U7ú‚x*«sØN6ƒjKÒ&Z•(½¯›3@ûSc=õ‚švÃêÿ9±f1l?È | ,ŠöMn€J5×ñ×{êÓüjÅ«ÎYfÛ‹•Ã, ±s®¶1âV¿Bo¾bo «“´N& & €ËâòC%¥‹[Ö3N Ô]±1“DUÈÕQé%e&l›ÕØáM¯f&Ä!»¿S°u³˜ú]†“S›”z^zùèxœnY×Ú¯¬ò4­‘Éœl¾ºµ]Rûa!;wÓaÍcPæË*/вÇ&ÿ‑fû§Ønmê>ª¥ž”Â( ‰z-ÇA {Dºíp Kêeþ7åúN’_µƒú$CÜ»ˆU•/Ò (wÝ6ÏÀxj“ó¨m«\h8vNã‰Çí=@Ø Ûþ·ê"cÓ>M÷KйRéú*º«òlªü÷¡.š>vi·yïJNu…¸:àxдÏZaNýïÁº¶ç{øÜUG}EUºS]‡G¶’Þ+Y ‰:y¡ÐH·™µßAßÇÚ-Cƒ/IŸÙšOÌ<§Ë™$+·º‰±auÆ©]°×ÿ°?hJ­×Ô¹ÙAØÛØ]I#]–ÞQ–d‚ 5¥_«\áÁz¸U­¸m$ﺔV[€”ÎÖœØâö-ÚÏ"ÓàÕjq8Šuo¥B Â3i‘«€¤Di ÷¶#ê0À$AÐÕ±=—†»Ú÷È“Ÿ$Wø)øjç͆ÓkfBXw†.+Tª|û@…eñ—ðJ{·ó0oœÑ®G’ˆö`ĶϽjƒâx–ì y‚]'e™p&¥+`/‡ÃsB‘LòR5¹h} Tè‹(#µ“Ÿ›¡Ûa•]–)8)5~•ÇéüüBO÷½§ ®°U}aĉvÒ \€°—ÍÕ¯8pìÙ6Û¾dÒÞ Çgžj;‚ÁO=èRTHw[\åñ±âYÎÐÿK½¯×²5`”ÝnÛë€Ê¾îÀ'”ÕONH¨= 6p38‰{èß§…µ‚ß‚™a œX ¬lľզp‰¬Lôò0ÁºS E«ÞÃÑç!M«ê‰QëÕZŠÎÞ½n[⬡QÃÙ§AªRÌœ÷îlÙaoaµDp9OÎþQÊòáÎ. ©JT%·±!{ãbnž@ûÚ©ö‰ÝÎ<{.»ç Pk‚hV:{4gÕìÃòÆ= ?˜I†ÞÆã‰ö>c“KiUMV—ëÞ­t¼™‘lØ#Ïê¼;ôì8¿ÃÔ¢ÞG U¨&K©jZÓ‚åÈdj4ްÆ'ÙÚš[õ—ŠÎ³€(²Mx{s?àY>%l?¶ç&Œ]©(,ðeìg²˜³N´8Ê¡î­Ðœú±Ë¼…á…ßS[ÄÛ8ÕˆŠ,aýË^‰pÀÓQhݾŽ;9‹¯»:5Pu¢›¸{ßw+n[çd-ðh; ©µ¤®;\ÂþØ"ñÔÂ{h– ±rJ¡Ø UY/:è(â§ÑÔ r§½*‡Ÿ ÒœImbà>O8ƒ4ÆÍáUÌL?A–´W}«î¢ÚhÙJ2¼=6ø R ò&¯Î£ugy5ëšô…'©àµ&V%°2 Y¸Ó'ØÉÉCÎVáÐ;+1M'ìz[-æÃÿL¢bà‚Ì\—ª9ö‡òð@²lJ‹§¼=‹åhÊÙ²oƒ'ÀøäëNòa[ªB¿#DrZ;'+6Y*«Eí¥ªÔ¡QîT Ê'Òm:²~ôM‡dáõòr­;i…d®‚>VÓÚ3š„ó”ÅU[GÚ¢‰CÞšªá*³ýâïO^HºÐí!ôŒ*8”«nçgHåõ5߯î·÷sE,ºFl,Sý‘º"P}èlÓ©««SßA‰Ž(3‰ÐÕŽTsê7Õç~„PQe²O~Ý “…\Öæ¯=:@U|\ ¡w˜¦ÔÛá8b|㵯¡°9Ïøò¨@m/ „Q©€Çå`ŠâN)8ƒ¡¥3°ù‰[Î(Ñå¹ý"×ê…Î:!kœ,¤rCyv§2/Kù­1·õœœrÛÇ^Q>>(M}‹Á†³Ô÷LëÚ³7‡ýÖqº©Íõþ³R OäAª§áÛºQ!•"öy/´VªÑá5¡Ì-;÷2‹VÉÂO£UB¹t=}°:áMi½qH 1½ÌÅâù^¾Læ©$ /$€Õ¬6ÞkC“„µ-j¨þõy;P™xT¹ª¤÷TâõÛbSI©CiTﵿ´ä|’—gIO§%n€á|AAÚ夗¦Ã±ý&}ÜŠåY¯ ц²•Š1Ë-rhVÏ#I<Ž4)åÉ/²‚óð6ByT?Y…§sp¤E&$úº‚±Ã<{&g}܇Bªi8;æÐÂËIg+¬£òù˜Äßt·Ú3WÇÎkíw„ÚXÑwD]ó”Re‹öÏírH윞¿V¸Š»Gv} ë½$=Wwê•äê`¸ø 6^›`‰TíR 7=(%OÞÇ5M…ªûÕAQÑM’ÿã$eqP*€b¬êì,Êií¸™ü¨¡ëQ÷óÕȧHÏKñ®3æ_ð$U¡­WgÄ•YUܤz¸*að"¸¼? çsÛ‚º»"ê™)QˆW±ÍmÈp¯fPynî­á¤ î T_ŽÓ¯“—•ÄŸåÑ;¶ÁB®‡O9§ÍDÑf-xú˜’ï×î¥úéÔÝ´.­jsQT0  =Ò;#ÜÔ¦ŒF±ålh?Ë N¡!›ðª@Ö¼)…CÔ+Hž~®çZ’‘€z3‹¶TùàzFUÜ×¥BfnÏ£X–oÿ6N²Ö u °öP\®E7©|ÀMfƒŒH 7«Ÿ4â¾’Hwü~IJv'šþ$©CðT¿Ô!V0NÈ„ÔC_ }ð%ç«tt~ž…TÅmëêM®ÂT¦? ²kÓ‡D€xÔJ$f˜ÂI÷§->Ó®3`)Ôñ»)Fi\­¸‰°¿9Å ÷ÄsÙ&¥|…vÒo—ׯ¤Â¬¶}S½A÷‰}–3쪚§æã¶]<Âeé0ËͲ_çÒ¿t«ç±\Žw±©´/ÕX”˜^îÝÀRUs£»[‰±fré/±x¹ ã³[ëÉOî )F ¦ =F-,eÖ„vŶ¸BÙ‹¶Èé‹èÁƒå\Ÿ«êÔÄ~lâÉÛp¯Ø@ºWNвYÚò¸.Ü•ÐhÖ?ËêÛÇï…Ý?­_ÞÇs)Ú4ogf-D¼\3Í Sˆù¾<íT ˜pS}­žC<,^Ö·-·ãÐ`»U€# 6 4EèÇRÒÇNY¢ècO!ûD5Yh¶=M4 ÂÈ¡/+×h¨Àõ¬Ek¢y–Óβaí§Y}ÐÂ~XºœD¸KädÀqÏ(»º¶Ö䜔u6Ô¾åï“âYž‰ØZ©¿rˆÖSÔê}ûöd Š«’Oé¾¥ÙyI•N…x/uÏÉTà×úضIë±°òf6r'ny­ ì6e÷†¢;´ÔÕ(°~5öQÔë°ðºÈk¼fà8và¾÷â•‘|ÙÂùC5ÐC—G±ÜF¶±¤ÖT PÅI;Q®CÉšÝ [A£UÖ—ÅG½O®g°Em̵¯XAQ¶pgåÅHžO^²¶¸„Ò¸+ÛûD›àLÜ´ÁX•Å‹€$¾u¦à[æÎžRµ}ŠqÐñsmˆ‰êšU®ÊÔ×3ª÷J U—²vøj È‚ŽvÞzn·Tj¡j©x—u¿º/îåVôö’ŸŠLóVÑL [³²¯^·Ü¨›Íñ[Âú¥ Õtlæ™{_E$®äõpЋÚ:—ä ÎR°W{ÌÁ‚-À<Ÿµ=vfwÛ¼¡Ž¯Ý8vš$íJËÔq°= o*êÄ °ßqY9§SÕ©¤¥aªˆ£Ké•áÊ™(.vû(ƒ’vM•ÒÓàÐóÑî $¤0ë6‰‡…dé°+œu9µ.K:%̺«ÒÑå ]éê»Xf3 Ï\«ššó‡öÁ/» ~å9(2J¢8°€Žö!9Ô¥Z`ª2ìO 'ž¤ù¦ž-F»RÔI Ö{fW ×Q •3ª³Ñ/ÕxëºÎz\oy‰W“4{=M@ÖGP¸Í£ö’É" ŒØ^ÃlعŸ·=ë$V%gOÛFI5Ž*{À±}É)Mû*Ú‚;ï>êÀã")Ê߸—+¯· º´2–å[ˆC{óТâÛ< ³¡ +¥©ßc—1Y[GìÅÒpSãbÀ¥†wQÿñ8Å>ÖÆ¦FF[]<#ôH*Ý/b‚‚Ìjã^¼6¨Ús õâq:“ 0ÄáÐVÝÑr"BýhCXE_ʦïFÑx^˦©T¦g¢<]RÀ•ë‡ñé¥ÕÝD e´ÄVŠÀß?Тá»Õ{¹eÒ¡"˜€2èkUÈ .y[©æÊkÑX ¦‘'™¾U˜âƒ¹¸¡Éó©üqß64ÄG€ð1Æ”·&nTî:å•)j÷ ëeÅs^®æq¢žHÁ=j¢ë–@ôOó ôYÜ·kC|M7ˆx¬|½o´Áðv“B–öبˆ§Àf:}p ¹ãQ|úvØß ÇdÃqj¬¢ýòwïÕ”GçÑ(º™§ÞüÚñzŠÌ¼U—'u±¶•MÔ«“ÑMršQ’:X8 SàðáæAÊ×ÁU䵕®Ñ ?5ø‘Æ«›-)38·w9$¶G ¤JçlÇ­šª5ß»F_ÃCµmŸzjšø½ßE`¥ë`"·O¢`x¡Âh"o©Ø»’ÉP¾Š—}x ´TáîWm«BíÛU² …UOV‘6àôDH1˱ùDñ›Ë/…ªàÚlÊ‹MÁC†[³Ÿä)ÖêÔ×>žÖHO%b]è/»òºš¢§¾0¬mÄÃôœ«õ rP~€®öÆäsXÁ w7Ópd'×{ é uS¨Ý¶#“œT°§1:D¤ÒÏz%°Û!É#}ôíI§¶Ü³k$…®R¡YS* (×·gý“ØÉV…·rŒ»íj9  ¾nÉžd+@ª¤L˜®g©êEd÷F·w³5´Ÿ ºÞÁ*Ïoßs w¯þŒ`†NŸöÒ«Ž¹Ô_A¡/VÓ¥ÿúôԶͰ·Y™N›¬Ý¢ ¬ŽùÈÝx øô|rVŬó"–Ú¼vƒ5IRãuìÔšt¾Ì®Û1NŸB‰f…P^¾C¸+ä¬))ÿØ_[^M`”¬ÔvY?Û[U–,§ÝMWÏå”_`õͧ{ vÛ¾6£ðØX£„¥çx,‚}…º#O*WÌmÛÖ÷¿ä¶QR†“R’@ S¼§ƒ¬~B !Œv¦$€J)EY1nø¬ÏË1ìü&ŒщӬ,u`u™;6iÝör²Fòp}Åáx\Ò%E/`žÇ‡@ˆð´`/X[è`›Ö®-lÕ /)FZ$Ôí>°›ÆìÍÛë°;p+µÝ]è4\7{/ôG¼Ö–Öè7X@·fæõаÃnyÙiWO€¦#cAá–/wɇO¹”ó´nmϰT‰ÝösW•L¶‰9ÜYm:ÕRšþµDÅS#î¨(X£úœ#T)–0•Ó:K«xÏw[˜7¨l_´«ÜáùÃV%A<ï<ÚU÷l0 ¤Å³ˆÝDæËa±lÌպɵD4Í lã»Ã+_.ÓNŸr©&¦KÖ¹€7Å“A^¯> ´×Ör¦ÀA{¸ B}«æ[êÀŠ<æ|›Æ¥ ä°~Á@ _KÜcð ,ë™4 À] ×Üvc†§^DÍÊvàÿC£o¨µƒ.åQõMéG0–ÛãÑ _xþ2vEï—¶\„¬ÃhQØ4r²¼²eêÕ—/Û6•»eÓ²þ<Ó ;ÏN‘¼5Åï¨ Õ™!ožÉ^T0ᾎ ȣ̣€??VîÈ2(ˆâ8Ã¥©±ÝIK>@uÑ©C°¦we]&–¡µÊ¥£1¨qDèbÉÚÖűšÙ|Ké]ðúµg)íôÌÂVÛ3f[8Iü¼Óçö µÚ(X¶ Ù™¢ê–}oŽàX6™Öð€yfÒ!Ûã&ò«%¸FjÁ‹áš|p6‰-ÁV¯¼Ï¥‚Íé™ìq;úAt‘O2}iä„UXMóDþÂάE¨ú‹ñuvîürבt`Ð0/´WùDÅÃ<‰‚ ¾6‹ŽUžƒæéðº6aÔ¤¬ØÙAx<¢ÛM¶ g–~²ãÕ(S³}ӎݨENTºŸçÊJL†Ip“qÙFœ$fÕ¹šožôk9®á($]ª!+ù£®5”¤ô˜í©§¡ ÿl„pº¦ØËÚ^ôWaQî!…M­UëúVètgkFðp*­ñ€5í¥\zŽ-ÍëcéJGWû­ßÇY9Ö;P÷yl,{w©û ÞEžþ9â¶öUcìÇDZütßÉfMð|Æ›¥hÙj» €!ò p¸enJwÞ¤ ïxœ“ E3Mhßµf•è¾  ÙšœqÄíù¢³®/êÖOÄoÒX6ê… àr²ÇéÝu€ª¤ÞùªègÇ’yjãhŪ‚nÈMEyâ ­XÛæ/C‚éxÐÖBfµéeÍ6ÖXMlà0%ÏÊ­=ÐŽ[Xyo•VÔfØá„`bè…i…?tžß}ð0CW£I×ÞÃqžÖgTaŽ*9Úó1ÙêM;j·æ¹½Z¢¹ |êd©¶*‚‰^‹ jßtœ×äÄž§X¸6ƒšgÌj?ñQØ)Z°"‚:pà!ÐñoáÓ:.ÞY¸â.{¢r…3Ÿ{b?„¨À.˜ëÔ±ƒ êR}ŽÓuà²ç®®]p`ð$^RT²¯çÁ™0xYíã ô¬°s#ï¸{²§ÉC-ê½Åœ­/ 9ñ*ÁãŽå°bð&g¥Ën.­o×Qš _ß~'OS‘µk·¸ðXmºeÆK¿J;Ño¥MCOg„‰rÊTBíßIZ„øÇ§íc±nÉá'ÕhÑœùÛjj>Wgi'IJ4ëåáy<~e{d-x·V˜y&ÍÞcê_Í*‚ãóuS³Œƒl:ƒ¦Oõü«å˜| xGefïÁŒÎ+–– ܳZh猪£ñÊÑg¢þy9À@lå2nÝ/çæ5Hê<“µ%r<áƒí&Èßm QŠc»$ñ¦û…æžu?½·óÎ3D½ò€ªêÁo’ã”NÆ£7¸R-Ñ®ÅúÒË:šLàDg?XåP‹­#‚=¢ Èçj{:²ÜϽNûÉÔœs~ð•öc<ïƒLÓ¡Uk+ñyö¼;Tr¦{®¶§Ñ–ávÁ[Ö$ïeûï{èë n=­&Õ¥~:xb)D=íÙ ¬ÛŠ b{\JÖµhOø}úÓÕ©\®…+囸·ÀO7 %vycÏ6¢™*‹Úu³›åàFyfvØ÷Ýo £ºÁ\`ž¨Ž§ªÞ{>Op°=£‡a_Ž¢@ýÊ6‡3N2ì *·Û.ðt"¿Tá½=€ÕÈCN’c6ä»[¶ÕÿÒ™x纗~f§åbûo»6lšÈ€$8ÉHø7j sÙDNLdgt[*zÒ¸òu›€Qlø“©ØìÌN>ä唃–nYêdÙ ì|À "°¿ÙåN{d Á‰.ÒÀäæuçš*³"ºž@løTÔ­Wnµ¼‡c瀃ºâõmäà¤g•­o#Ï^$v?`¦ü²™‹êË©s?°¿‚äw•+ö÷[ÑMò`HàÁ°6xx«9›iž.¶¥KK¸·¸¦¥\òñ´Á‹MΚú¼öÚ²Øï*‡âxŽ9œ`$§N®2õR²pL²vP€ˆæœ‹ÈC-ÁDön¯;Ôà0ŽlÄ£ØS<”ÊvÀrÖA¹¨$Ç.pr6–hH#Êðœ¤VÆ¡A/ñD³'WkÏd­ì4tMÕ–‡Â¨C!Oâ1Б«8mÕú|5×mVՌձÌ%ð¨Dšy~`VµQ‰ ç’qtàœ uj”v<,wÏ'®7¼ºW {-²Þ…¬ÂBè !µu/\ù ëžZ[’±Õðd]c¶Ómõ¶{¾~nCEâ›Ö•Žh—=õZX·ª˜ËÕWoxll®&§]ƒäµ4’=¨·:_Ë^<ÄS/V«,Ne:óµ;x0—í}Ö¤øâQ*œæ¬}»¥^°Z݇åJÅ‚@¸S%Zœá݇÷_íÃÞHZP¼ž³ÏËrBuR{x`éÌìøÂÐ@µ`šâíкÊsd]”ŸSÕ‰k&é—$¶ƒ-8t†¤¯”WÄ›ÑÞº•ð§BÕ$Ozxw[‚„´Á©ŽÕa:ÁM¨”\uíE‘ÔÊ_–_½)£í²Í"Stbéõ]*‘ž¯Ë‰¯Ì]VBö"œÇzvsÇöXzmÕ•ñäYnÜÚ7³ŠáŸ·”dÑ÷ÔZWëSUš¤P¼V f_‘+à\ú.]ʳ+³J|sÆÔs¦>4ÀZ¦½£8Àöý|ƒ¥=2‰64ìî­ßÐ@ê€)û²È|7a‰æJjaßH*òFö9‰ ´ õ¹mÓžè\ ,ÔÕ$kS¡“¨ ¢‚·S[Þ¶ìhˆ BÝмú­^þ|q;/åy<ÂÓL`Ül(Ö½6>M²Cìê„n߇G zÚGƒ{Û%Ä4}"ÝêQüTÕ­m_f'7VåƒuZèƒGz«z½äiÓƒöSv=ñŠm(^`p‹:,m; à*gÀxß<UµYö“/y–YÛÐ\ã4—8:Aަj i´k÷x¹-›8–¸€¯,:ž6ƒÔv)×ßC×m¢Âw‘n¨Œ‚êK# "OZ &ëÆðWéã0t@휜´@<‹\ƒÌ4$JI+4-+ìÈ7ÇUîƒûÒ´}5ýšµåQjhÏYC±1ÓÇàéðåám›¨3»;DYýŽ»Ù…»"Ðxj)Ïq±Aá Ç_aµV£ž›ÏÅË9n\¯‹R@Qõï¡ÈLèGÒ¾XE’â¼»4Í¢§Šã"¤LÒÑ+i[Aø%Ôj¼¥k§Kã„A…µe“‰#ú²˜g)ߢ'•1€“üT5¸ctš×â…Í2¡ÛÇXìúäžS®LIŽ‘fŸ·]9 èY_ø%ëN4Û¾ûŠ÷<6Í»Mò|¿[q¬P^˜O6u>šœ§ô¼ÛVònû›seÁã˜KÉ,R1à %Ê—–Œ–V4“"{Ác\¹ž·0õm–•!ÁnèÓ’9„«ÝÁ„,ísl«ŽQ] .©êÚIf÷’çÓtQ9‚êr«sFgx¼ßæ6ãåÁ¾¶R×n¥&KÒÞ1",[ežìÌVQß„5Ò’úïÏãP}³V6šÓnï(›ï²JÆBêÜsWgœ'_‹¥Úv]¶³SNV˜•øêP’[‡î ðW×â?O‚8|"àÐ-†à:–”!lýõVlv—91Ùš.7ÏdCð[ÙQ ƒ¦^¦íXû•ª»1^©[âÿ.’ˆ2oåx³ÒçËÆwfË4VÑÍÍR&—ƒ~·Õ÷hÆÝ5žsÒH£öBؽsË㜗¼/¢Ò¥Žv ÒUp »Ë.©¹5Ãxy<—íçý·jô:Ó9nù•³H†Îé˜óÍÔ=vßg¼¡ErƒXY}ñ¡ã¤½aDmz¯2ʾq½T—ÝöÓѵg·+•ìuX‘ŠGKݼZ˜bðSÂ6£Ž˜\Â>–T Q¸µ§Ë³€ökØt‰#Š/n oÐæN2w v#Ç7³¹“®7xÐV‘çrì,Ðy‚ŸYDakÁU/– °pzÊ{˜ž‹ºìQ¹®¸V ÞÇýl¯>zÙ*äžJìÚìȧF%ú¦¬[%™x±bo`W5I²õcr+¥†öÓÕL» ¥ö?Dtvª¦<µ2†…ÛÌŽ…¤¥7#L8ùxÙ”Û¿36sVkh¬{Ù÷´ÝÎVÿ<%:÷a\: B ËfÛÔ—éìÚÄ)©Å#Ü.¾vý5x+œ…ëŸÀ™pØÞ+Ú2O ßYÅa)óGë{¶5*#Óõ†%מö˜ÃìYDèq¼|'›e`¸v€ÿìÀW#˲«œì¢RR°sKC¤KŽ!檞p¨.-Æ)JõU¸–…;[WóN}¥åK7k¥»M\ù”pÉ.·q÷N8þêj ð €祅ÿ_ìý[³%Éy¦Þû¯Øº ÛŒDyü“ÉÌÃ#|†mD7Õd·d&é"Yµä°Y•8 Æÿ>Ï㻀JP=£¶Öܨ§yrí½öZîß÷~§÷ª&%0ÂõÁÏþãÁ‚3mx¥ÝJ„ŽM‚ ó ¾9Ètï…Sº[TˆæLÀ§•9. KÈžR¶TâÎ¥Ô9ú‹JŽ€ K: ¸ê9ÃK ÀÝÌJ›Ðmi)‚$‰ÌV0·AeüM *£ *5\àtdÚžöœá6,<`ñÎ~XmÈzŽ¼ê‡¸Oç˜.AXº.מ‹H‹ƒ³GlDXºVû&ÿ†j²›ä#žWe®ä¶ÜÁ¦ÚüíL’í·§5<¦Ô9ªØ~†Ò Xf§—ÌDÀíÚ.sÖƒg;ç#ç—ê=Ó± ŽP¨¶Ù³«j;nx)¿{¯*¯ ×xŒxÙŽˆ äÐ¥¬–Dî`6:9a¹—²äh®‡-#ËÚqÕ ìgä6“Õ[ñzoâwEâ8ÿYªÝlÝùX$°ÚÛg—Y÷ųá¢rÎÓŽâxf÷$@˜UÙ¾$¦ƒî.Ãs"¶kxç‚—Ïû Õ¬ÆÃ–45ºšI{=Õy»«‰T[ã˜HÐ*%Wïg0¹c£°,\·E[eøŽÃ€á¾Tfg%Ùxì@ÀVûXgz#¨á05Ë0GÎ íNu¬›£Îó''6üÄö,@Ñ´Ù+€öì'Á:¬ÁO.ö-¦UÏîÕ¢'†ù(`ì°}‰¸80U’~…Û$j³íªHh4%0”ͺžóÊT?Ìh×!ºK @¤„Ë´'¨:ºÏòix" …Í_e¯k˜p°tõz8Ñ.“B11˦“äÁ®X¯:£~2Hõöf¡áâ4‚ˆpãÀúcOUÙ'gÈò;qÜfÛÈ÷lF–ˆCBn£ŽÏe œ}¹®å››¹’yÜÃnÁI› h&\¹ežtÚ2æu ž^AbS¥BùÛ7ó×±OÞáW‚Þcæì[óR}70yÆ•Ëíìàf˾ƒHÄæúCÝ[¬´œlZ§ò1’–5AõØ 0õÿ@j'n.tL¸„‘Žg³*xÀ¡H—%k`E—ÈH)†ÍÜQÆ’_mÆÎ˜[À $I®mó \d:lbŠDm{sN:^X‘­mô‚ó(M¥KoŠº*›¹ ‰¿”ôq; Ô™wU‘ d ·¼a m"j{‡³JdáôZÏDZ›{¾jU±É2Q:ˆIz~ -![µ”Îu‡"É¡%ŠÓôHzžvÈDâlÖ툕4ìpØÙ³±JVºLL5Üž° <0Él±,67Ú¢6ÞDÐÕŸÒÁÞj‘'É ð]·-1[PêN ©]’ÎÂÉH¥›M¤'=Kâ©\5öë²!ƒ+K ÛÞFXôZèâ™`X¾Ä̜ǞöZ$Q?†,¡†¡ÞK²„GsÍǹ#e·HjG`âjÅp] §œãjÔd󛊫ŠêXËê6 Fo+¼Ø¥; œ“3fËÕMU ' ÛX†žÅ¡N%ÖîŬËiz­îb)ìÑá-®ž׊½rTà"„Tí|Å4õátZ¸v‡j¥a8V¯Ûƒ‘µ—°E&6‘ñ^¤e;xçÚ““в)—pÈ28B½ÈqZlVçl% šJ“ÚOÜ;;ßAuSŸl],ø#ùð…Y?×|¥ÌÑÎ Ü)›½ÃD_O[aD³j¹ÛÜ+É;xM8Ršóx·ÇØ%°Bz/Í\SœÍ5‹û&$”2Uº¢ðz´€žlœ#ð )³ÛìEç뺖M¢ÃM*½}ÅYÈL$3YJí6*N<Æø68÷H‹«RIæ+$Žv@\±c ¦ãl5»§ó”‡Œ¸±*à ö¡Ðµ—|½Ñ’á\A›æÝ«=ÌÅ€tÞž%[’Œ®-ÙÑ.'o#›/‡«¤÷Ù¶²%¼IâRdØ¿f戊—÷ E•êN­È5˜ïb÷•yl\Ïæ<è)‡É-ÌpÞÚ±Yѳ3ÙÊùÃÏ™¶ZÊ;øÈ[SNØTÒáÀ°¢È¦@Ÿås$÷LyÊÇnh…‘RÖ<ûÆñÝ>Æìø;›¯çØåëDn‹¿¹/B20tRø 4× ‡DSl¼ &œŽR€d[(öS6èV[ä(åžÀJ’N–;b‘°ÜÉ&­g³Opéo•ëXcvš®ÑŒ!YU§„ªSèâ#Ávƒ©Ã%_Øç¹ìOLÄ•ºò²ÀÄÅA¼áê95# [˜Ô>Æ'Œª©a>§bsìc2¢—KRÁh·”™l6rµå&šjÏ‹“è°ÝW1ÏK'Q‚ÁQ‘}óè˪€†Y\‡16SƒöòV Ümu UUË4ÛVlüãÀ€ L¤æÕ¡Ìq´v½Ù5’%ç·3€‰knéN1KwáœÃØ;)¿çòÀòèÙÀ;lÝp%Z#z$’‹¶Ã£FÑ®©²dqOÚÏîð”=HöW\rô=J¸Ï¢(G´þ¨FƒŒ&f= §äÞz2F³€Uá½*K¸Þxo2e(Î ç¸uÂn äÓ"* ݹ:šÑÙK[;œ3Ç7ªÇñ4RVl¥=ÎíHÊé¼Ë*b; º¦†Ãø-¯á´G$ŒØdÕ’  G;lrWê~¿â³ºA¬áÒ§ôÞäQðŠÛÓnתÓÉÉiï¤}1Å.6þmÇ-‹iQ–êºíAq  —T€‚…6 TG-’ƜξZ™3Þ¨™Ï¹* 2•=*ŽKÃÆê䓘V†;v5õ©™N¬TçøçÍ% ²œ},Öúœî#§™âbù€¬šýiñ×±QxŒÈíÐä[yÛïÂŽX}²Ûÿ‘s³æ+á§s·‹T6Å=õ u—Rƒl½û±I„!³8xƒcõ,š9+CÎÃ[íc‘7‹¶X&` ³% ¾4±–p+Ê`Á#kR¸­®ÜIäû(Ìt8iÕÓ¡ñǓ͟.»½+&¦bŸýÝDlìøÈ6$¨*v¦›î\ÓPÒ&=¦2.¢¶–¤n“PV²^5(Îó{Yl怵`'xì ¶x.!uL w|‡+uù'J4hcÓŸØi¨æeú±µÖ¡ṳ-¨ûãü!{IžÇª‘+±¿ÌɺA¶³˜›¾Oá0šzSÊú§óSV¤ÎO¶PL‡j^üÒv-/Μ~m ‚uñÒ~4{¯oÉÝ£¢2‹L³˜ ßBSûkH ©¸˜¹AÂV\ŽT½‡£M÷Ji³¯Nék/ަÌpÛÆí×ç J2Ò[‘9[§ŒgÑ+Ï658lÆãtŠ>J[ö»³ÂeÄí\b©ÓVªÌiïQªeyø¸é_ðJúxÌûŸç~8V2v'i8‰¼° ‡%–¹¿­ Ûn©ûØ /‰çpÈçtÜÂç³Xg®*Ž=„¬‹"õ§­j}ùoâ#I;NLøÃ¶Tòô£ÔfxBõíò%ó¾9¼ ádO¹B¬'Ûv»›pdMP[÷$B½ÃâvBIV^¥ß­_ÙN¶è<ïÇ’1±õ•Ëß$;Џ{:ô(³&[.FUÖñIàx,Fˆñœ‡“ä-{Y&Ù§Å¢"ÍÛS=³£Ts‚|ÖVMŹs‚FuóetÂnœÝ5åµ´ý¾ßTjøøs ΠHª2¾èÀ¨ÏA\ŸXêÛœžç†ÚtƒONÎØr'œ²GÙq-”„˂[Ö ¾“H·,žÁ}F8­MÛnl1°N`ÞFÔh‹ósÊ*Ô Y·mɪÓí”Ö} e fè–0½z|/ùì ȃ{DñW—v§¯ÎÚgs°-% 0Ý02í“f#.µu‡·pÚX6ƒòîË¡j§£>§´tÅȽLŒµ(ìýrÙŽn–~à šý­óm¶[a†®"úfèpšÐ>¢“ñܪì GHÂgýбIDˆk;$sv¥?jiì‹Ã鹩,ľ†!wƒµW!ñ,ÈÙógÿAt<=Édyû,ê¾dïmvÇ»Yc­N«„g÷Ymª¥Y)³aL—wDciÃ÷—S†*‡§§Õ]A¶•Ä<]Òec†‹2 -nAZ fÊÖ/ ñK6`à仂¼—7 V’¤[:l¥`àxó¨ÂÁúa§\qWxvxÚ­-q<+=–¤öj3y_ym"’cS±ˆÍHøÝDª2H+c [ê—ªJ²å³Zô RÅÚ;V4ušz8™£ŽNà ÅOW÷ÁölN³í©h»ãijþ†ÓûhÎ%×<Š—P_ÏØÕ– £ X5Ž©svaó°Úƒû10k"y°K’°N šg_º¾×ǯ”p”µØ 0i³9ÂvUÌp8¥ h¦Zþ½Rd'‚³[T€¸¥ôcõñ´NðÉÊ5¬Õ;*€#Ç­•Ó²‰±ËÀò¹J¶5é2틊Ê<]a,ÍØw²ê=RÜÆÜªÓße '…¬±“Çm§!]•jI¢ÍsÊŸ‡aa ç7‘Päí±»l”iÆÞ½«`?âµ§vG•ù`Ûþwðó¾ï ¢Šr°ª¸¹´ö‘¦š]ètÛR½³G› ÉTj^ÌݰÒSR‹ŒÏÓT6VcYþ h1o:4xH»›êKÓå`üp-eAS*rapJ8Ä8{‡£yä¬ÐÊWØkÒ¤LeÕœ_ÍMÍÕýH>ª$¥jNÄ5ND9—W¸(ˆ†Õ–w¥d©ª§’r`åt« _ñì¶õ‚Ãþ¿ø?ÿíþëø€¯¿}}÷éóÇ_½ûôOáŸ^¿ÿüñÓë?¿ÿyø‹¿x>|3?~øüÂ?¯×_¼ÿà‹Ÿ¾ŒŸ]ÿ3¦é/þ»¿ûû¿îß|üÇWü×ÛOâõrø Þ€?û‡÷Ÿ¿}ýñOþÃë§ïßüðÓ/Þ1>½¾ûÌÏîwŸyãÏ>~xù׿þöe;^¶üÓ­ü4Æ—=ÆöÇ7~üôÓ—ûÝoÞóò³Ÿ¼üë^¿1>~÷ûOïñK/íÿ|ù˯ÿÕ‹’ƒµþü¥ÿêõÓû¯ß}xùٻϿ|ýßøõ»o_þþã×ï_?ÿþÏ>â/ÿû_~þüÝO¿úê·¿ýíOÞýêûŸ|üô‹ÿá_ýÕËoßþåË¿{ýþõÓo^¿yYËòoÞýêõ‡[ûIø‹—øåûïß~ñ÷þù·ï>½¾ðƒoßýúá{þä×¾yýô·¿üýßüíË¿ýîõÃÛ›ÿöí õòÃâ¼l?Ùþôq?üµôþÃúãw_ýñWß½ûðû÷~ñòó÷ß¾¾üÛù·?ùü»ÏõòîÃ7¾ñÝ·ßäïßýæÝûoßý#oX—þîeöÿñåwøÃý}ÿõ§÷ß}þþ'ß¿ÿÖ{üÊy{æãã¯~õúáó÷Áë»ßzýšuÿýW?<Üúðñ·þðÇW?ÿᛟ{ßüú»¯þý‡÷ÿñׯsÿð~~üÙ/^?¿$Ås}yý/¯¿ûú—_ùÿðûï^×/7Ì=üó¾ûøÝËϹ ·á+ÿþðý»ß¼¾|þôë×þ׿øóWaÛ^¾yÿõç—t³†?¿þüí5ÏÿÓûß½ü/‘í·½Dÿ÷Oÿúߨaß|üðíï|ûzļ×?ýôº>þîåòË_cÔ_,ð½^þùÏ?àïÞ½ÿá¾øÛ¿ùðó/íí:Y ?^ëo~xøùÃÉøW/þYÿæ#[öõå/Üáÿ+àkþcûÏÞçëOþSÛÛOù?ÝáÿòŠæ¯¿ývýþ/ßÞðøý»_½ÿö÷?¼ƒ-ûëÏlÿŸ}ä|ø—oýŸ^ßÎìõñÛoþåïþæó;Aÿð‹oÿ´Œï¿Ÿï÷úÍß½ÿüõ/ßöÉÛÏÿ½'ìÛ÷^ÿîã÷ïµ)/½Åø/~DZúúŸ°ß³ׯ^95þ•χ¯?~ãñ"|y÷éÓ»ß2¯ÒË6Îá7¯¿[Û÷嫟|øø™?yáæþùåç?Ÿ(»ð«Ÿ¯Ÿ½½ÜyùþÇ—/¿ýÓË£¼|õÝë'Nùç?ýìŒü óñáÛןñÓ퇟¾=þ?ý˜÷=kûþûúñ‡éå«_þþ»_bcþô£¼¾èýÇo~üßýý·ï¾ÿå?©/_ýﯟ>þøƒöòVöO¯Y³¯>ÿöÇß³û¾úüËO¯_¼ÃÛýøëO?þÀ~ÿ›/ÞqòµœÁ?½æb¿ýÍ×ʲõúgw™¸Ô￸Ìõ_ñׯxóøñ÷tÿøŠzþôªp;óÇWÜÌÿãÇWÜÈÿóÇWÜÅßüøŠïûÛ_ñ}?ûñß÷o~|Å÷ýÛ?½ª|ßßýøŠoøw?¾âþþÇW,Ò?üøŠ»ý÷?¾âÛÿß^5¾ýݯøöüñßþõ[ÃðÕ7_¼ä~_¿xé“ûâ%×ó‹/^rA¿üâ%WôŦŽ\Òÿë‹—\Ó?}ñ’‹úö‹—\Õ¯~|‰eýêÃ/¹ª_¼äª¾ûâ%—ñé‹—î/^rŸ¿xÉeüú‹—\Æo¾xÉeüö‹cÊeüî‹—\Æï¿xÉeüï_¼dq0<;f?¾þõ'NéçeáyÏ_/_ýúú»×¯Ã݉Ûzº£:—AœŒW±Þšå6Nz¬¬WÂÔÛ¡û2‰2:q¥¼ÔÒò6õíƒË§êW„AÝs8ßNxï¾M¢Õëq Ž€°–«·#(¶kg»D"ORUàÚ¼R¶øõ\2ÖH8ÕH°’Îsu¨lëS—3†ÖLä»±~2ÿ¦6аÅaÀ¢xÍHý×N®›Q²ÏI̼T ºi—zË×”FÝÔlâãäŠw ¯Ýf¢sÕžÌÉ}„8 “ÒJÏÙr•±Þdi*’ìª-JV)mw‚ûv§Òï»EŽË†­´®=ŸlÁÉ̆5KyÖ[‚MBENïó0‘d?n~GTg×ø½[Hä´~H"¯Pl>Ôf™›”õØšÁXí„ëD¨UrõØŽd‰’ƒyËê•°6!|×?êT~=oq­æ"1ñé ºÄÊÝòå3skÄ a4Ë.̃¬˜È6™h:ùm˱î,㦷ò\sw–ѱ1½ßiO+­aaW¾Ý&5st»ëRa~›?Óu†©^ e°Ú Ûñån·$­â]:ñ/œ@~ÖÞœ /wn–È¢ ö°×t™ßæ'dÐnÒ>É"šï¾öìÒâÏú\–¬¬ ›‹:ÆqÓñÇØãLÍî“"û$ð}9&¤ä•„†ý:-B%3'©-õš$ÞÉQéÉ$¡#‹†„SÂx󑜲†ÉÄÁBÝÇu™ã°dõŒ5ž`iðzöTWßÏ1Ž{¥ÑƳ4=b˪¿)!Q¶”mXVUœ'½¤]îðÜm[RßÍ m´\©Œù‰Òüóz-Ï•e3—¹.Ù‘¬hjtrÇ LuÔβø>ñEéP°DBì"±ÖŒkšüT r‰?²VÇ«zת…!‡öxˆ§LÃ~„ª–ÓPÇô–dU¦ÍiÝU5“]ÐlÙÊVy^<[©Ψ(Co»C8Uaw;Î%Ýh£r$3VŠŒãÜî¼…á¤å¥BCW&Ò "É_¥¢‘jç®v»ôpNb9‘—xÚÉÉ6 ¶âK ’§„gÕqL«šòÇGiŒn‰M. fŸ÷ê:iOÃX×"ü¿ö`±-9PÇ–-¥+&£ý䶤Ϛ4íò¹Jj¶oJJªÜ ä;1êtg“ ºGŽòîx„ m*Ø øØŽ¦H)7ãJiå/+ÅÍúh)!Һ쪨ÞãÜ8Ò5)Mò8Ie+<¶§lœçȪ;gE$$cï{Çs÷&ógãoìˆ]Š›ëÒɆÄÂ¬ÒäúìöI_κ|^Hed W:úe.±`¥¬“ÆÙÖÄž'vÁVæv¶ûz¬M` ‡!pòl–I˜ÓTY»,­š”µše WR,Îr¶5i9íÝè­&ç6Î`QKÆG~ ö2Ï™ÇL Ù[Ñ–mÐ1+Ö5óÄÜÆQâU™!Π °í lkM‚ÙÁ#³ÑbeU°š sĹó4yX²(û–X©©²MâdzJzˆ³³gÄûmH‰d"•§/g+Î…•<ñ±Gb”*Šìaç\”7­_Áö–h2/½ÄáDÏ~ÚFÀG;8r7,‰¬<áÏ|¦øÓ¹É‘7—täÝmPÜN{yvkÌ}{®6$ÄØ°¢ÜJÊ/ÙÞ¤’ÒöN:b›LMÛÐætfí"’›3¨ø½*…I¶CÆ+ðxlÛÕul·¸¦'‡Øl¯ëŸå]V {ÚœèŸEÇÚŽV®ní‡%+hð" á›i_»<šÄ’Ûeþ¥íx\NÖ‘rPõÔùšØpÇH‚^¬’}lÿ¬`Z“rsOYVš&íÜËžJ^ÚO·½ª —áɉ‹Wûܶ>aºøjýºAöBõë’ZŸ‘TÐ=&ÛA¬[­dÛmq½ÙO-¿kÜ+J‡lÎÊîžãí£7Ì^á¤Kb´u +[Tí¢žAF÷T¯ö¶9ýhò¶›%÷”+…ò<}uy8ÂûÓ凱9|ÞNlql8×¹øWëØ—æ†dƒ¶j{\‘Μx™ J6¬»mçæºùP79´6tÀî”=M…51hĺ5º[âá5""õHY*–qHÊÌf\ ÑEð‹<²[}Enΰ«wÃÃjx´±KN‹C8Ô¸ðÃv…3Ù.%Þ;;õ®Ó¡OY«\ä6SRuf[ ˜©)Æ6xÂÑÖ‘1‘dì‘àRáÖ Øq››ï2i¯”Rwbˆm“HÇ”®\ ÆëLVÆî¿•U {WS´óã½+L~÷Ù¶K† v&N–+.&&\ÏíØ~±«+_ª½Øý}Dy¦¥²Oì [æçÓå…Q‡à¡œ¶¼s$·`c4ë‹£H—J{ÝiåSY¬´%Ž£ûcÉN©ÉžFY”›Ðx.åUȲÇòâÂÓÉR”ìYœ¨½Ä¸uìT5Þ¿šõ¤/£n[¨ùºdºiöÄÈÍ ¨v±² 9'›ÿ–Êþ2Z”ÊrÎD¦«dõAh5s”çÙÈÑ¥ý­~.˜,+ºú8çPuÂ@»qLŸóòŒ†(’ÌF'kó³]­/«Yv,"`ŠXºj°àwŠü3*xE{òT³ ¨CœJ†)i¶¯†$žORHHs¬ \-©#±‘@ú½Ö">¨¥áõ.›feUg—œsʲ4¨ß,ø/Ø‚ô<¢ëIÊ;)r“38!{Y!圔4Y’MX¿QeŽæüT&^‡¸D~;ÞSw=Í8L$á\—“~ŠãÜ«ÓÕÑyÚ9ÛŽ4:X»ìí"ÉŸr.x&ʳ*p@{â%iŽi6²|`\.ÏåTÅe·ï@…_¹ëœ8v%8ï… çL›B’Ô »À†ÝÁõ Ù3É­ v#¸G±©Û”N(MAÓ“¼¹8][EؽEEÐiÙÿ亻¤”<.vuº»“íùä¹B‡Mî,@Ÿí!rgè.Çí(;.lA'5xNN‹(ƒ˜2O¦ÍÀ¦'±('Ô‘~ HÃYÕ³bó݇¬¥Ïq?NP‚¸\[»TPj×°NK¢áÀÅÊÅ‚'‚,…,„ <,Ù(⬘89J1aðXáZrÖûpf"mK q¨Æ(»†ÆHzÀ ¬nòìP»ÂÈm?ˆíMöÑŸø.Ÿq;Fá›rMã~Ô´»~*b¥M®չt áÿr~NEC‡Jo) Ôü`…Ç*ÈrL9›Jc˜j¬ã¹qoü —Ž¢è…ò|¶JFãÇ ?^Ñ–ýdÏÞx EØØlQ¡Äá”zô«!?»]Ôk–„ µ ëEÈ{_"@HuÂkr¹°Ø«Í9¥!Q¯Bê‰Hã‚{œãXìp¶vµçV=^ÈGB¦Kæ§Ž‡f•¦mu3TÑÚËC”° BZª(Šž>*EiTÓƒCvy'.N£v8Ö$ªÍêYÊ[hǵ71‰IÕ?ecˆÊÛdC³“v«†4<7‡eŸà¿|‹[fÜöóä’EI–¦óѼO[Êñ 7ÓþäÍ4O¼í±‰vÖËœñ­ûèºe“µ ‡¨u“èb, Α”]v<«˜/J”V‡M'S ä¬þCë¶QÏöaó'<"my­DVQ \”¶µ¶øÔîºãÓA§•¶«„ÙržŠmeɳˆ$¤ŒL¸Ä›w©õ¬$ôzL)Ûð äté›kð8?γ R{‘ƒíþ¨‰ÙF‘ç;LÆñtíŸq’Фuua•~lœ¸®ÞÙål¾Ma“59Ek°GLÁx)‚m8 •òdX+@$l†g5g} —Ú%Ê®ºí€šgèÒÑ+¬n<­Æø“P­*;Eâ/{nKlêZœ~x¿¡\1íØq`ãmd[—ùïi6Az‘Ç€¿+ÏæÀ™Åé<ý£¢O•è;ȽB`¶€‚èr˜«c MPOÒZ>j`©jn’òrOU¹óå³.G(ø ã xÈ’arNAóKYŒâ=Üï!—Çæ~diyK6§ÎôÓŽ›+Ïj“M•ƒÐH‚þ„È /«Ú«ØÂY¬ÀÁéØ:˜{  ƒªHž4=6‹f5Š^qÍ•àF/s¬êMOCtÌÄeSÎ,'bà‹ßo–|Ú…!ó×”šð:‰u¬ìQ¶”s…ÕÝ­`»OëzunP|ÙKt¢/!±6ñ8±¶ÄK˜3,¦ ôUºñ(TÊcWŸ ‰˜ƒ¤Žó9TóÓQÕfS0Ÿç™ÃƒÀÞŠÖE”õqÅY*c¦GJ:Âl>ât$$¼pÅÜvÝ U`C+J’:§{Ìlσ_àÊï®Fq¿¥K_À5.ŠÝã²wʬåé€ÐpoÙþßjÅÉÐÀe*ÍŽ©SAí·.É¡Äê’'ÉÕé>Ù6 1<§³á'&S͘0Liàî»äêÆWèøºd‹a%ùÕ”o4»‹‰“ú®ì^6tnœç–gÓÇ·cä{SÍÙ¸O·:dÀ#”\2"’ú–}H@¸åª¼À$$9%œˆ< «³ðÄ€’úm­Ë^¾LÃcZÅÀáU£ÚLÐLGæ0çÒªæŒ7Øã\«šm§•ä«I m­æL8ú,UÂãÑ*<&Ó"y/_äÅй”>¤þ-x§KÞßfz›Ý¨I¼Œù8Iº`e²BR~ik§2-öì’5ó_¦M.µíãâê¬ °¡jÆM@ü¨ g§/¡oƆ ›õØÄŠñp;‹Ôâp2[1&j¡›²f1±{¬>K‰ÌKªÐ¡âϽ²Ø?‡ÒXžmAï}‰ËE®[“ÀƒôdIСºßš ï¸wÎÉáLn‹s;\8ç Œ. Çd±‹ûQMq;ÛêR~Q6.(ÿ¨´ùuIä+»´ˆA§4EÕzT;ä„Î=‹†¿·=»_)_dÐ%NR›&—4 Ò{‘•êé‚«ô`:Ñì\ÌÅ~‹„ÿÝóåìÐ$pS®ªœ´)tÜ%Õ·áÏ£N|)V²^ÄÕî2öV,ÒtbÛE"»:|‹ô%‚UÜ+†Û˜½ìðR$°µkVÊ/.)^wªÂÊù’iæq,Lµ)¸/\Åæä¶UÌ[½‚#¢Iƒ‹ê-1Ö´I·:×ßyÔíäˆ)WP”ÅjÖ»wÂV–;`ç“@«Yâ§ žá}‚|ô6êU€÷ œ(Ü;è#q-J­\±ÊçÙO]&8µa—üj;d SàSn¿ÞëÍT~pÐGYse„…§aO—÷‹•ì„;?ɨÏß:´f¶ÁIÏSQ`,üáÈ‹\b-ÜdÆÚ®çMÐ#‡?-IáSAc°“ó"‘J Íç9ÔïqFI3‚¹Êì|ƒj§.ÛÒm êÁý6ûœe{%Ô“_®È ñìÏ#+ݔ˾›` V?žn~µ ~IWö§¢a#Àœg™‰ˆCͱIÊÄÍì¶èK.ëÑM3Ð/s­MayfL\—ìk§s¼'–"o*u!À Ô Ñ3ž¾ù謡S9}%‚u8·ríòàdC"²ÎåŒzɸüŒ·Fæn6 –Š&{m.÷ÂU¼¹»CîQÏ `ÁÁš‡?,9r—Inþ°š†çGû‚AFÇN¤A´’Z7ÊUpØê°è­çWßš}pK! SW]¨™Æurk˜™û’ÕH.{‰'G„3!6_ÎÇ#ˆ%´ØÌ¤—’õ×1d—‘èv;d(IÉŸ²ªÛ[,—RòüË¢< I i<)ÿÁÝ7ï#¨°)Û9šL; ¨‡E !襔ʩ–Cð¿±Ë ÒDp&>hÌE’c‘°Ju—dïl@_çaïÊÁT!ÓÅO¯æarbE‚ï±KHPmî7„>?$ ”kн(w¿:#›#æ²'¶¼ °PÏQ¦zÍ·ôÖŠ/ýu™–¹=\È÷et4.ùÚpŽ‘C”Da×ë­oÇÌ›‘ƒ5n+}sã rö¾8Ö|³T¸cñ²kƒ©)žÕµ{î‡Î¥vEÔ›¹Uºud¯«3~k^TœYï%‚ÖgÇÜœCÂ&Њ¹|ÉêÁñVœ‹æþÁ§ƒ‹=—F©Õ¬v C¿ª­Ö£ï\-¢3 S9eÙäHbRè2 eéD\?RÔY,e«TÇ,Û¡àË#Ÿ>Êì¡"áί?æ•gÞˆ#ôSxI•%Œ±øÓ=K-Æ¿ Ö¹rí›ÜÕr„°¹ÞÊìN‡ì n•È×`2ֈߥ…S„xÈÉçiÅ¡›| (´©è8ï`½HñQG…z¢”ûÎV¸7ÙnqµRKƒŒ«Á+PÄiN¬j ÎÐl8 3÷¨÷_®è±‚W “ °nÏØqüÀi5iŸ–œõvÙ“Šrz­¹Èì>š¸>×5û œ€OA—ìT<€»M)Ñ|©ÑgªVYŒûSªi©ñŒj=\8"¼ {¨`S7a¦SâÄ÷µ¤®¦u¤¬$xÍV ••¨e;ŽónÙ3Îæ Ä#×vÕzeœîtõ½tò°ØÅ³g_#)¬¯¢I¶19%? »Meß3ZG£ÀY‘‚ŸÃW­ÕŠë؈QõVTZ}E\]‹Ó¶Ãæé`wsÈÆy q~«2Ÿ²8aφ<³¶ÿ²s·)4•Açqù(ÉZ@€4vâ•/NÙXœO)ÿ«£TNœmœÞV.% áAëÉa®[YÊŽW‚JÅ5~‘¯ò‘J #5‹|LÛnp,5@:<¦…Õ,”rÌú¾T¤GÚdå‘QA­ã±7Õ -ÌÂÎ s W‘´'&–"ƒxcª'ë âWš+æ§l3¦(9G+u®ül 7Û"+Om°¢'¤qf…â´¬ÌÐq‹ÛAðø ¥¹›/K/̈ʰ—æ”éSu ‰òÊzNŽcq.I-чãŠßj*‡b1åÎÞ©}V¼–è¿–M)Õqugž»R%§ÂËLÕ~ÊÅ–‚y«*cõ)à_†™×-Áa1öToܘ õÎYöØÍ¸C)vô­¨®&;ä´Âd‚uÛ¿)÷p0- ò<1Ú‹Ì@žU‹ `¯º±]hpn½Ise~'¬P10à”:·ðܜϫ¸%rSĨŒ^¶„!S©Ù†ˆQó8( êð}½eÛ@eO|¨stÇF(ÏÆaOUe’[àØ ` 2œ³„_9%oN¶ÜÕˆõu¾1+GÛø%عÁ¾ØåN§Ò¥/“µÚ G ›¦C˜0³lBÔ9ÔÆ´•eª>Ìöâèoøµpp£ûÐÚåéd[Hî{òÿÀ( ?xÔü¦õN,”ŇûMÝš7Ü;Ñü¡Å+õ)lØ7d:L­>AÜ9LèFçÝXÌ~|VX~sä7bÕ–/¶Ü$ž*‡àï.ìPneµÿaIïaÇÐ0g®Üš<»¸ùs»‡“èâ'Hœ}¥ãNÕ©”\“r Ø9\›á¡ÌX÷.eFv«;–tsë ŒžÒHÞFµœ%-³C§¹‚Ö âYxÛlÎöCš" 9óÆÞçšÆJWK ^Á¾ê8ä¡ho;ï6{V(“Þ ¢}2àt hªí<Ás »?^]¾ñÊ\7Ð3žƒB<àçÇ7Vn³Iv”¤£4ëtO¼[“fD6óÜ7Œây¨V ÿ÷!…›­2îÛ”osM,ý˜G¼­®YÔØ‚iâÀ쪖Õ†³×@ž6šðQ¤`,4¡‚*Ëb’A‹‹?uø[IŽÖÁI=bÖµÒœ6iHO™ÓŒÕnÓ¥Ü&¿­/Ƶ[E4äxß!Qawß~Qà¸)ÔŠìæ.¼«oc=Ô„_<<ß§,€Z«D*Ó–Ô'ؤ`Q–ÃgËñµ-¢´n4UÏqX ®ÊÄ7l` OˆÏ¿$ká•¶òéãk­SìR“Dioª0mûi˜0í7ã8ÈÊÆ#'¸LAx‰©¯l±¹sÒ\1)ì82ª@íò!)>B`~åféÊä„’Öœ¿«&íÕ}–oÃD+u>;͵â#0‰Öm¥ŒG1S`‹ƒÔ•V¾§Ê /©–^Ó4ðµƒ(Áß]í™&ß²æ¶Ý™Í ’bX ¶Å×ÖLL™ÙHÑ —^5õ a‚¹ ])fš¾ªGQZ¸öj?å°ÐòmÛb¢ 7PV%XâP¥x8NPíØþ¼„&Ohv0^i»MæˆÁ7YПE Ð«ô⣃:ðÞ˜‡ëZ×8wŒ:î,(2”ML,2}ÇìdÛ±œIž*8V} `XϹ´ú)kr—o Xš™ïj';ç0í÷œG– Ä9j@¸ÚU6hÊzTl‹è²·³rôî²±vÉ> ¢ï о4Ú@[Óå…U”.ì¢6Ù3GTYù‘ïßÚô‚9Û’]Û#{¬ ¨…=ZUô–ʶN¹…­”†Ò°ØÅÒí%Às¨¢ÔMódKÍòâW½Wc?TAŠMŒ¦(š³*½µjq6GRø8ãµ]6ÛqÉtxÙÇ]íu› ([#Z ‘¯b™ _·§\Wú?7ð˜ý¥Â±dy ¶Û!ci/a\JÕ8^ü#4)>e –Ôq ^R¸ßrqÛÂ&´Ìû‡Í©GhÑ”;‘ëÑF‹òn±?'¡¢<Þ~M”a#)S•׌%5×ÕŒRÔÄ –££qFÍ«Lîrª4¦›BEf»œ»¢}ìAàh’÷uö`Q“T ¸ˆç–>S HYü'üŸò §‚O _»Yš—’_Ï›6`` …®ªˆe[5ÓN(rÊ:¡Œ,ÖÏ{Ê™á‰Ó$4g#ë+`$²¹)» ºÓ÷ÅØ‘ÕüQ2j÷@ ¶ŸÝâ!(ñQÌ&\m‘²ÜY¥'–pÉ®ÉUeçÏýà•dLðãåÃD­€†³0ƒí¤”Ú¡û¸¹C5®¶79-µ,Ìôꤊ | G»­‰£Ù (‡ \&¸Š³ð,oû‰X ¹YtFS‚…ŸÁ‘Ë2h>a¤¥q{™„1²S¯™/_³±Õ «&\繯† ;žÙy?ž2ÿ>Ƈ]h8ƒÍ›Ó¿YTc‚Ðû»Åz‰è’‹dO<`JÇ*'?(öš üGºí‹¹ŸIgûE;œu‚¥XQÎpœF1êÅ>ØLrÂO»ëm¤”1J®Fk\`g³d-7¸lJîÙ‚áTÞ¾u»Øq}4•ö°;ŠìaŒä]‹J“ÍøÈJ¦ŽFT].ÝÝÝXmØ E)W‚ö¨Èg‡–Üž%¢¼¼œ%¶ó:lN“>÷`Dz·«®ªX8PÊ K*/—ý$t':5õÖò*z6™%·Qðkߥ6Ò£AÙF¨ãÎÛf³À¥DpÆ{•ÇøÏE W&$É& —æÓTçNXEåZo¥¹VB˘Üú–š„Ľñ9–llE äýâ¢í±—2‡ ÁG­aÛc{ =Ápb+³I³jA¼ ,( ˱Uâ'õª0äÚ9L†J ¨{‰mÝ“±{O™žGÐÄñ#ù•@>öí] .…ËÞtby[îo{̦ÌÏx QQÒ(ÉÃR+ScÙƒ”¤ƒ–©ßXŠ~_b»œxw¥)éß”ši«º!wæcκ«ñÔ²´D§Eëj»Ú r™Ë¬¬OWu&9œ`CfTB¿k²Ò‘ñêEÆLÏÅJUëÓÞ€ÚTV%ˆÙ’õAIyÔV‹«t·²:BS’TâÆr×t&Y&À *ÙàØÌåýÒa±@—)QNœÃà4ž>”>û;Eå&ÇbyIl?VçžAY[²ÁwØøµ´îqvªxœ †]%÷â ì+ʼë9•ˆ+y4% Ô>Véé€÷ø¶UŒ>FP#DVçe³ónL“Ûblm©BŒy)¶¶%°ø…eÂ%MN«âì^p‘ÉjCE-Í¡Î@ˆX°ê±—Õ6‰d|ÁfköAìkº ŸþÈæ)«ÔfÑVË—âžá–£¿*óÀø-vÈΕ‚²ø[`d™K¥@ÁI²!›RMÛ ³ÀMifùx‡ÞtÛâ#iüØÅþç&¶Ý¤ÎwF 3 ᦧ%˜p½%ŸbZÇUˆ•$¶Rit#zŸ˜y%0J«loø]0È}p7 ..‚#ŒcÀ½Í?†MvÇo‡~7%vzµýÊt¡cy,_ªÁb€T†x3IÞºÔiäJñ&O¾Ó˜v#Δ'ªXÑ*k®%z‡D·$Û-Õ’ê^cé‘*7uu{‹ùž€½ÓNUGLkÚ°7,Úâ$ç¼B»í.»ó\/Å.‰‘ã*ôßQÁà sx0U]×™–rar+«šM¬ÁãžúTÕMÍÙϱ5)½TV½$ÚÍaa08и (5p&›ƒ@§$‹!±xWŠÑáv÷Tì6Wz—ÎÎ “ØR¾Vi¹gžà°ö1»ÌæÏ畽k]Šôg&ɽՄ"h£bÕTIÂÏxJé§6.Ee›ak&±xê2¾dÕ e0ß#VW±g©tnqï9%öçÃÆ® Û4%”Kkz-;Íø6ù{ͧ(JÏ^Ù$ÈÉ>Ô]ú¸€y—¹Ï¹'ç`€ê憎HÐÍ‘6â>«)A…/6û§îã²VOø;Å„ÌÈL–võ±•F¹Œ¥¹{ž·IâGM@ÏmÈ9,—e6h0ªtDáVƒÄ–÷Ã1¹»hÃØðqœ§ÕÇ^ÂÛ¨qœži §¢?Ñ€TMvÙŽ^êkE­|ƒ†šªF53Ñå›Ìà™F"ÍÎh»X Ëä£ÔÍ"Ï:Æsˆ%•X€»8€+5dpb${_zL’ýÝq‘X®Á“•“È„¿p¤ŽC†aLwéʯù<'g%9U[×»V.ø%CrÜLÿÉ» ´¹í;Ø Qªæàš+«ûC³Çø,¦gqÒ¹`• í¹¥ÃSÝÕ#oÖû ™['$!òé"ì›;™]IV,ÌvŸ¶9>s?fä;¢ýضy6¢Ú©¦]”ùÔZW¿œMØì¦³âç0j·Ä £z<³G¬³8—3?wÓôÝÀû)`}ãfSm=wSrGq¢sX”r’ÞUb0ìC„ø Žs M5XìÁQÝäVĹ1b+õvq¼ÍT‘RÅÛ¶7ÌÎq;ÇÁ»*:,ÇÕíŠU ÄÉWÅ_ˆ”äeÏàÊK µ]­¾òܲ^=ŽÉ…¶‹yV3wÍx·óÙÛA;s4ˆkÎÄå/3{Ǥ~læõrHÎõ%M=ärT“5ŸÏQí¿2ç1;V28gª=Ø Ƹ,Õƒ”0ªÐÐQe˜·é¥_*"—S’xÝ¥ã·=øHÌ“5üÁ!Õ·%ƒZr0 ŽýÛøs^Ü\&R;•{=œ <-6÷áÞŒ]%—›ÊC_Y2Ë 6^·†ròûUݶdi™¬ŠÛë'¡œ `;üPª;¹vÕœÌô†.AìT.µY `ûa³3€Ú|¶(¾Õ“¸‰ŠN3»€å#µÐã³+£n6ûºæJL¸ÑÚ¤1+6S7-&ýTóqɲãéݱ¦ÿÍî³"œU%GŒf0 Lë»*zEç6—mœ0׎u>Y{îy…K ”nÞUÇÇv$Ö$bÁ4¨=#®&­2æY÷ß­v-±?ñ~D®~‡]ÍN eé!åoNÎ<Üe ¸÷MÛìסÆ*Öv»+ûi+6·+Šë|¦eö»JRºÀ oN8wûåv×´”Ë„(5áÎ5ƒØYÏÀ6&Bí’tmqunBKÍöñÅ¢vÉ›SW*ËI7·ÏWÕ=YíÔá`Gf ˆçƒÏ2^™º‚w0>YšÜ³H!¾«0YJY¾òM~µ5gK?»ÂC«Ø~Ù¸nHÂû ;Lq¦û)v`6{={ä1ƾº±AçâÁ¬8ÙÄ;¬´Y*bç&õÀ”ây6;PˆÈn62Û$Ü” wåÁWûVĪÂE äÍ8ílÝòLì¬âÆ ‘§qÈÄï¸ H;¤ìe60Î4­ñY“KŠVðx9#·jÖï &æZŽ"óMcÉUì§…s z§›[6q±¨yÊj¢¹³ÆÊ ukRi75P’ ¸¡òšçðQ#h8Ú‹U!´&L2RµÅ¦ÊŽyAÅ£{W§Ò>¢, »ÿ°llš.Ûù.ùÜ/v08“`L1±(:£:àÏ÷ а¼·g[éT{°Ã_È‚8"º- £€$8o£ÇaºK0±×FÒríì2–„ÏÞVéÅ*þØòëæ»uÑ7“Ui ÒØÍ# ÓöìÌb1ŸÈÅK3aiã´‚cgçÖªî‰Ø)€G®jõ_ŒÃ€fEàÖäõ”­À1…–b·9\-–& ¶ „£ãްxÕ‚Ê–ç]Ônf¶iRWiÙÆ!Ë€ÝÄ*V‡EVKnÃV+{Éí±ªD"Å9¼JLÀZ©Õc£åIü J4ÁwÌó,ä–P³Š¾™ÍŽUÒ8¨§I€×™ØÃ§zŠÄ–Œè¹øp›Ì 6(×β‡x)J B™P–@Hp¨p¸1Aö Eî&«¬ÔªîÃbG_´x~†ÉŽÌ›DÛx °§#øÎŲf+±€É×kkm¦Þuì-ýûsì ™ ]ù'‡1á«Ãù–0õ+»Š9xLÓßMئÖ^$JuŒyÓò»y Vý©V‘Tò¨pÞŸº¹àɤ „Y1çöúMÔÆ¾Ý ê€æÃæ¥)x*PÙåj[3is®‘6ûl±'¡çd¨t¾‘M³Fé›±Ô¼ZaÉù©´öºb{¥+˜XGÛgN¥FØÙC3'M<¶Ý¶wü3ШžÍ^e~æXÁ0šî*æ* ĉO÷Ÿ¦±”'Àáðà0MÝ&lˆs¦6Ô:{ÝÖt±Ê¼Kì”s³Ën϶3·E`n^p+g48A1ÈóˆÕ¤·BníXiÕò¨VÊiãוƒH–ø~;yÏ­ùë:©çšW°ÉP )rxÜÑeGìÌ «eÏN´çÒ°kríà¹ÃÁ\k£³©­nÓà°IOq]q÷bW×e‰R†kœ«Gã$ Fð¡8ªÕfpM5rU}¹‚ãýÛ±ÛKxšS“3Džê\÷mêA&Ø09Åq2ÒccZ^Æ©à»1‘ƒÝ¤šG0ý ?î›PrS$œ¦01aŸû°:œ.-GÌ"ÇÅjw.¾Ÿg¯Êñ±:5N^5ÿ¤ˆ?Ù2¸ËªÃ¿±(õŠj$‘X2 Â]؉JNk{öíò9>õYExåçöG€jôWm¥bQpö+UöŨüG ¦<cbàm\ìÈ¥90csï.KÜíãÅ/Y¹sð}I:Õ?$Õ(V_°»€ªæ,76%pHó¡Õ• ã\x ÜQW r!TžK‘|ÿmâßWŸ-+`îd°¹]Ãj­«ã@*X'c ¤¡Ç¦)Å>N›ƒ¸óÎöÃ÷N01u(-€ÚðgN;ö£‚%²s†à øÜ0¶Šc\ÄœÄ8öÀ¸V9Ÿ59Ô hPÚ3h0gqZ7dž1}‡³íåt2½ìW`‹Ïé¦Ûo±á¡ó¦ö›òi’Bó߉/!ô‘o1Ý6r/« bbWâA$0&ˆqè›/7ñ„5’¢HXÀsTÑë39{ÎÙùól«ëï­±`Ô +ËwÙÖÀgŽ[v 0m;œŠ•žAjû-û¼‹*„4(,L‚/Îqà’ª ÕÜŠ£ ÎÙ™`/ËU±ÖÊûÝvŒ²µ0,cÍÉeÇiÎvb­A ¡¯~Vç–cˆø×i Nr’T{fÚäY½úfEœxÎ ûÀÛÆœAþ|\MòªË%‰Q㳓ã¶Õâ3ÔfiÊÜ}_új)¿ Á}%—ÎËÕ„yX!}uz*ÆF¦‹©4QÁ>ŸeH§uL`ÛjƒÉ3ÿj¶”ØÞŽäb”CGó{Œ2§RO*ò¥ÞÒ¥NíVˆàþþΠuŽ–4¬U*ñâ„DoÅ^…ñ¾QUW_æ:íQpÌŒº-îSê.¥Ó›UÔwòz›,ò½*uqÝ+á#”êb¤n‚hJ%ßò,o®ßÐ[)Pœyn–/úxþ-e@\ ˜œÓ&Ò¹>‹Ãª&ŒŠÈ8n5Ymí³mœ§{§¥'…ÖäxÙjA¶5%‚a|Y ï*÷€?û,ÚªCõN`˜”Tn°[»¯“XwWV­ñºB‚b:G4jëú#Û~&4O„lc_p¼§uÅ,a]Ë͇^ŽSŠho‡0ÖI…ÇiQ\*Oû¶v¥ÂÈhÒúÖÓp åä|ö83"áÚ1%ÐãάÂi`8ä¨ä};@%kÓ¦¹ñ<ÍÕƒ©å‚hÊ€§+Xë˜ÖôÈÑCÊk”‡"Ü*þí’)±²ïðJ.Wû„Dæ¦9ónC}¾Ýé{~úe_0æÔÂìùv«@’6bÔ̸êzÂù¼ƒí'Ò!žÍ}0Ú%;Ãm?ßí˜,H ²ŸWIDtÈê’¤DRÈp‚<ä¶«k>ßpÏœVëDÄæ?À.ÙOK‡¾'còj^TCl–`Ñ—.„´no©é`Sê|Ö¬E“ràÔ¤œñˆŽir+§;¤‡nHê0}•#ÔdÖ¸ÙzÀµGÕ4âéÛžœ¦só§#ú ;¿‰)¬tc$$i)NµRPý€¹`Õ›209É:¹Où"dÁÅ ÆÉSéŽüžôª2PDüSÎB…*QRÆÚl+eØçNhq€_Îä°Z0æ½dö{lÞÆÿî¶4ÊihxbáÕgÒó¾?ÄsxÆË¡ÒÚâU`~œx×2÷½:}®Mî ‚•Â7*tf^qtªØ¢3®™ Õîl_.{`aëwõf9*³J%/{1•§ØÜqÁk˜ –ÆÀ·¼“ëÁ$n¡]»´V—“0ké${ž+§ÙQóÈ俍à¾;ä)¿âaâ™äÇ*м'[‰±0(ñr¢*¨ÀØ…Ó8¬ð7E&§ 1ÝBå+xxµEžü1'ÀUô¥iªœgrÄšûP‚æ6Ol­¾¹ j^±Ù)ܘ÷°Sy"—¡÷&Í  _¦ ”í5Kmç$*¼¯%JT£ž[à ­N嶺2#)D¿Ø+PŒŠYY¸—M¤?¯N(mgÃÆô¦$üÒÂËÕhŸëÎÉcÁ†’/àˆ,sF—u·ú-nŒ#–\JÂιíplÁ“0œ@¾KùWj }à ¦ÃYPLFyI¹%îDn6®ƒŽÎ}Tic•ª±\tå1·$÷)x´?­àØ[âÏîÀ´ÜG;göÍ ¨IÌêp`Ô\KÝlý&E"±‡yúÕ‘ÝzÝÁÎ ¹T°]vs:­vrå;9@+þº°éˆ…͵K"·Kw[Íàá´ä¸ï£{~Þûf_–ãpõ‘’Ä¢¿bpü,!îyÛäœàÁ³„YAsMµç£©}]jm_X*<£¬{›ÒM-À±fÛ­ëÌAj[üçc{çÆÖ$ )Å{LµÚLU4Œ+) ¿‡¬’òò.]núgû"žéXì¡Ù#›nÇcï§×yYG…d ®Î‰Ý»­È² ’=’;7~ĸ浺àZ<Þè;£âÂÕ¯lóKZNpRʪl‚%°\DqÛ¼´cÒß8ŸEó¬–YÉøÀŠJúÝäCؽí 8U"FU¶G’KÞž{1folfÚf7¡û·én+’±Ž¡P(è7›°à Ö#nÀå'«Í;ïët¼ ¿“ä÷ g£_ù¼¬Êªb¨¢œÝªÿáÞí;Os\ædž;q{‡ºÕ7aSkʨ§£È¿7XøÝ¾mÓèqúØñà5gy¤ î&ÿø3¬YÖœÇÑzhvaŸ>Š=«Z…¼­r¾±Ö¦wˆ'¯q­³%“±)8çöeþÛØ‰qµÝ€.RªŽÞ¬©àa7ÍéݵWDs‡¸wÎgI2`É[Í-h³…ciJNU剎®ŠfʨÓ©~USœ³XëÛ¥V̬ÏVÛË¡'Zóxp—§¬v‰Êö+ÉTž " è})mh-[É]žØxµ•ªW'Ø:°ó(|ÞÁ*ïòñvnù:"·^ò¶ÚúÙ'œ;nÃiö3N0$që•,%[‡¶"pù;*;þt&Ö~vÉ®÷[aà hhJ¶J‰¨—•âàžeÈ’$—•\…š‡dýØVys’*sßã`u«åŽJ+ƒOü‰K“ˆ´« iK/§ÆÞsîTa¬U{ŽâVÄïtGtÙh¹è+Ó“Lª)Gl".ØÍ¦öÞ+QIÕBh¬ W’ëƒjòPJØjÞÚ³„6ŽÌkÑîì™›=àÍžÊX0ë;°öÖnö­3ªxGbg6«¼¯©Jd¼Lé÷¶êÇQòØp[P—ÇÒ·óßÀ—‹ÓWLŠ(‚¤py–j/y~Ü·gâ$Î:†2D“öEÈNC“Pɸìì-@—ñ8âVcñ«_îfÉD〉ãnìóasvV¸·Û»øgµä&·G\ɽeé‹¥ÐĘsQÇ5·[ÒyÚ¦:¶‚Ú8[–¾Ôaᣲ¹‘³±a6n œG‡Wm©2l|67é¶ï ÷~[µÅÿ—³¹/­ VKUhììv«pÙ»6ñŽ9-T&‰”‘äaD R0[ðpdü³ë4d§7 SØHY^Ê Jc—{ ãn(ª•Òƒ£q`y‰l•T%Ç×YÉÝå%·¬*pþ.úMZP—¹+ñ8v›Î8vö;ÁôHj *¥]O.ôLmæ~ú0Bx¼a™íHk‘¶U°²Î®ö¶Qg:Y„8¦É¿²Ý¬ú’¤¾€ŽiRO~9Y%[úÂ@Œ&y‰Nq‡5c³ç2ËJxRl4ÛОGZÞ{c[ØOÌÆá<´6ì Q/¦íß˾N‘0®ž¯ºŒD ßy²ø¶ÓF0®ÚÐö©JT'¥¦bö\ ¸«#ð,A+Ò³6ŠÓ]ÍV)ÉÏïÓHÁŒ<ÆkòÜ2–ƒoQ¾^fJvöÀzŸ·-|f0 äóþìu%e½½äñåì§QùQ±pNýÑ$øÞ®zõvºÿâyžj0$i'9¦ülYoæY"«¦¯±€i?›ºÑhì4–¶2`EÝi¢Æ+®™Xvá­A½dÜš«´ÒT™_<¾1a7îCFòƉ­™²·ØD‹óŽv\>—Ô§ãZ3 ñ¾ß¾!­¡Êì”ñ!·Qú­Ü,ËÞ±ÜÙÃQÀ£_RëO[ÄZʱ5ÉÊfÖÈ\˜^ülqlÊ®Ç-Ib=ËxDv/û÷²‰Wl"y2uìì¶^¦%’mÊÜø,NTRƒ™Omvf>ÏŒŒ8*GFA¡²ÖžøóËT°8?5Ìä.mŠÛdM×Û²ìÿ:c|ÙîéM=ö]vc¦! g¡ØYt‹x—dá)ž«0v;Ïy² \~9,w³îY1Ú;>çMìL”# †µy9Ùþ,Žîf>ÿ‡8d+wSî#¹Å9žò±Ý †€ÓVwaš|Ù˜V³nÂúD Ì¥„°Ss.Ú]”Q`¥²·4œKœÑšÉNù¨-Óc¬(qÔX<k€¡êJKLoÊ:ÊkRìš-¬Éý£œ|*V¸G‚E¸ÄûlvŒß¸ò"ч;mº›³±a¼ìîN3,~fÎL9dŠ[N]b6€ì€!Á‰âù¤Ò—¢B`‡mUFhöê.cûeÒ*I·õ¬×Ûžs&¿8Êl„ޝ¤¡fŠ$R}CÂcvrº-[‘=íOVÍ4o6”Yâp¶¥6S‰‹·¹à&Ìí½[lLZ\€ÑÔðàIzM2q¾°cD7I¢ZÜ5` Rõµxö|áf뛼“ŽÙcXýëqÞçQEµ byávÇÜ.Ï6 €X{nÝÎ8ê«àQ’æä%ïÃ-6ûUåÌÇÎY´gDZõíjX8ÊgJIáÈìðÈåU!M<´ã<䘑¸1å{wÌÛ$‘kÇ 4å6ôUHìÐn”ô;+\_Ô !˜MཀhäD?¯*£ëb;—ÛêtèOè:/åWAe ŸZû"€~ŠiB©§ìD$x$3µœkAZ„Âiåé:ðÄ©L¨Äac©XËšm¹­›°ƒQžZÜåã7à 8<þì鎼b\ÓQŠ~ëÜ,ƒqv(²ÉÇ}H÷)€˜Dm¬¯xyf Iü›„ƒÄ&G]âo»NAÒœ²Ý –Ù³. #(Ú¬‚OOx|l2!“eŽ{5Œš-SË+:ð[ ! uÞ¨·}œ%\ŠêJø+äÉ6jeûUžÝÚ²-ƒì;ðªi6éƒwgác ¶kÌÅÒp¬ˆ“kÌ·MvjèCa-gç´SNÜ‚,ÓÒFX¼ã²[³=fšRlT Zà5«¥œÈ…xæxœßL°cØ‚¡8ÄyxÂ’H…àI%¡\°›“½vkÉ:¿WòÏÙ€Ây“ß-J3*UøªÇ+tì ÒqpÙ‰vÝ|ÐÀ ŸR«Ø +óõµ†ÿw@xö®ðˆ² Û«÷àØÓÍé醔™#îÝ%@ä©<~tÒ«õF¢­cs¾oóÊnP„F¬ÙcKÿ¬€>ð¸VZ'Û˜ey7ÔÈc´P? Íz§A>ÕIÕEš‘šíjzìR–Ã&z³+M“d §]mBEõ3ì÷Ågìè²øâv–c—ªKbR»¢ôCÆùr žÊm„jäì …1¶hóTfÞÄETMgé({!qûnªƒø“'ç »”BWãü>NÝ€º܇Íë|-101B=|'ÄyÛbKÄíÀû½š}+˜“XûÜÓNÔl.‹S'‡»È!‘[” OÒP¯RÒ\f]N‰}¥O¯Gu– êO=O¶Ä÷­Å•2×¶G·êÅyÞsÐ!œ²G³OF–µËY³H{ZyxéÒå´wÎ[ÔmãoæUz‹Äq2»zj.ùÚÌ|%þ·±¨ÀBÜÃNöâ “Aºáê*³‘À¹Nr­™7KÀN¼ÙV-KG&T*ç‚'‹»9\Í)¹ƒ“x`<6!•}jìǹ£Sw†‰æ<¼3œèÓ7¼þñìSõ©Œ>ÆÓQRîpºÃžb¡€Â©rÃÊœ®`™i1«~oÙvp4×qeÛL×°aU)cG̃?°,vètEtÿÚvÌÛËD{1Z;Î'È´Ãæ¼dNÎÌ™‡í˜5‘Owjà¹K¡qï9°Ýý‚J$™g%Ùw·)RtU•89S0àŒ½û¦&×®J?Sš@Aà4wKZr5²iç¥ .Q˜C &[ÑŠmƒø pjà.Ø®ÿq°Æ›c?ÛÒ‰Ù·’ŠÓC&ófK[‘» ;pŽÀÊám)@ÁCÝáµM.í¥ÉwyHh-}©.6ž–b^oN1í7A×|=§¼vì£hË*g£êíc6&‹àûpèí\¤ ·íû‡ÖVUbç:“ÓžÒd¾e·ˆr{ êwée9þw—NvËËaT‹:essí!ßù †îÖÙ¥ÖO*r6Ú)û"kVìŽýÞˆ®ÍÑNP¼u;v>˜á>XBéq¥ßÚ0Ôà€&½§à=Ž_¬ÎA‰ÏÒ†‘+ ‹¿‡S±sx‰Ë2(U†YµKèH á¹ã››1‡¼,ã6üát9öËul{²† ]•9ûU[±›õ´KœÀ:J0U£ŠXKBM^é`ÎFV>•_ºÆ‡°À)øSNGAUwàª$c7}«#ãuøh»C§UÂo§/€Švž¶ÞOÅ «dËØzŒôõÝFcb\GzÏ2÷¼Ã%Cœ±‚l/U V¥”ÈÑáFÜ>–e}f– |6©Ò‡š%Hå,÷m'Üj¬`ÝŸÖ\Åb-—ÏY¹Ü‹D ª²Ù€'MÓ“n™¯¯må»üR󲟱‰pÀ*¤q–·B‹ÕÉ.ÏÌm÷þ¦DÉªÖØ·c”Ã-=ŽËIvkJÓsFJ”¯Õh.¿“éÀ~‹ /Á³•YüÓî4ç´Q·_vw9®¡ïòÛ÷¥, ·ÑqÊÿ–¢|“á–;Œc*iëORZ‚aÍ<=¸ [âCi¥àÆ×6Õ¶|™öˆÉm¡`koNY—dÊ™¥’Ø4ãOU6cé÷ oTMr_’sX8@cqùÉ¡r0€Ëø¬£+ M'bUÀ´³ãÝ®áÝEÈפ޶lr ;{ÜÎ&kN²g¾mÙ»’m\zŒÅŠã4…Í(æ9 . ™ÃÄùVnk®Ý¹ïŽœò™(½¹Z¡Àެ¬ ]›éÀeRrGm@¾9œZ±bŠqË€ë²ÉáÒ0ÒÔD¬›L¿€f[7S­KÊâxˆï𠨸邅ÞbýÈXlJ;¬Á_s«Û€3$8×`lAªM™²TW1ö : ¤¼qHQX|–ö`‡šq­Æ¡.6hq7"ÆÞäªôsØ:c¬ #XDŽùꦚ¥e´~®˜.ªÃ.Sthüš¢&X¹±’@çp,Ûit$ùº.)´yïROxX$Z¾¶óèÕ´ü—zU#‰¤Ä“8¨-é¹¾Y—ž­Þ“˜Ij5©è6 椩èK€—ùÈ耷·Cd®v`vVúbaœ'΄¼¦ºUÈ4±Î±ûèßv˜ˆ5`Ö˜FB€h€tÅÚûÜNÉD–DƒéÄj’/Ŷ²ÌI’ ïà€& ÏÊD”VüÈvSÒ$ï7k`X"-ÑJ_‹Ø:ÇYª@#xó™¾x]Nr”\*ÄañØM‡óÝÁz0†¼êÚ_FN8I‡Ô0¡Öð/h˜’Ëâ±j§ˆF¥î',IÎäËÎéFÂn=¦‚Ù¡Ømýœ‰-Lå#Ë·œIæì6Èñƒn_<ÆÊ½8x÷äL©ôƒµËÑVþdAu•©Ñ¼¶ò¢wu<£BJT'¤"²wXY™¥ô˜‚Üšc»’{œÝ« NQD@Î8¹´#n$Û„éÄ7j±òaÊÈf’>¦Ä‹»Í¥øVYüº­óΦlæW¾/<“œF›ï:xã•dšÂ˜ÜSŸ~ÊÄGˆ6yä¸ÂÁ7_ Ÿi+?qÂ^Ô.³§—ƒ€å’êlV‹Kîˆ` înT0÷°!±ŠQü¡ÌвF˜¾m7sÇʺ‹±_ͳ‹1”šýQ:”Æé½8á‰Ûº®DÄHíX— Žã³ƒ ” ±–¹YëÝUl“á™Åɧ´Ï‹Š²À=ê=t¹‡¦-E%^yذìÑ{óÝ.Ë¡ò”ËóžÌ÷\¸ìëz€?ì¼M¾zò&‡j’õn}—3‹‰ ¢æÄMï©íý>Dç|Éã´è%á”B6¦°|&[ìB|Πs´€y±Saª›øv³îDЯ„ˆxir,þH8W>ep°®@»se›ºÆ—J pJ©’CÆ4ã‹‹Òbï»: NK…ss(L¹àò6ÚO0‘Xq–Ç9ì#›Ž J‘À8`Ö³JÄ•2Â÷©ÑL‡ƒG×9‡üŒ{_¹jǶ ž=Ærè•Eƶàà0êÃʼºý‰ü¹BÒ@”§yqÑŽêÉ ¥/äF£ýUV޼¸$ìÂf_Ø…ò8Ì$~œcëèZjIüe”HÊâ¡ æ#?">z[#‡NhɧVŠø4¤Gw¤Ì&ÄÓEzl¢@B[0ZV'ª£÷D™hýq EFá­÷Å} œf6+ü<ÍÅØqD«8ØÓ’óJ 0,åXs%>MîiÍhpü‹s"ë÷,êÀò6ÅG»ðX›[Waœ½’\¡^M1£Vyl&s¬»P’ÊÇ„M¶MÊo_l^Ùì´;”8 µEùÖ9ü÷aK(a&‡Ýêÿ¸ËøzkµÓ¼Ø¡\ÖpàQ%>Cöq‡jQ¶7Ï-ÓÍnvñ,ò|)Z¥&f¸ÝæéebôQ€Ñ˜ª^öb•'å]°Ï:sb #o’¹BuÐ&#ã¥ø±jÛ|ˆÝ6kÌc‡ Ë¥²([°]Ýfþâ6™KÖ šX-ïõ­ ʵŸKJ‰ÐÆÇ}¨†%º»¥tˆý‘f“µ$†´)º:”Ì::±«úç­²xÌQ”ò UØ]œÿ½ˆh Áó³åˆìðE‡´ùÁ&³Äã±ýì’µÐr3¹ýžN™O§ÃoÑÎ`ŽzLŠŸIê:eÁ}ê0F²hbOç>WÊ<Í€#ÂÀ&ÛäÀ6±`•œ¼•¶kÒ E{'y§©6jWVîQV,Ü’í™NvÊ‚0µÂöÛǽa Ø}Žš9u‘Üô…­}³3l[éYL]Q+Y¸Çb¥“´¢]’cy1åÄhê7pfÂ$ÉMžÇÊ÷qb=”'¾U†wž›‹{XrCMUóòÈLÊfŸrðW&“ø ;QuT눴€eÜ’‡U-›¾j®æ@ doÅî|¾ã†åÀt`Þ4©qeç‚ÕR´Le»"x’öèèñùu‘Wßö‰˜‘8fPïPî®À†,ÒWÈŽYv+¬ì.Õþyh0‘ç] àWHÈaZ⤗<á*µb•f–…²Ú¬%HÇJîÝ<0¿s:Ì\dàHW`sÌ5ˆY³ñL$*s@øQ™³¬ö,¤ÄËrÔ[“tÀîžjÖuÞ„öömŽco’K¿€©2Ü«)ÝÉ~Б,ö~.½¹ÂÁ ¸ð•gÐsíéØS{š±“ëA9žz[ =p ê  #%žk@àéŸE4sJÛð–?ÂxNY&íæùu›el4Z„=n- ãQÉuç×ñI*V"ƒt Bô&œ>Œ{í ÂȲ©´É1KuÊ'6¸¶ÐR‰ôDŒY®+â3"ÌãŽ{“ŒŠƒ—Çg¿gRˆ7@0½oÉÕWó[r$¥ëº$Ž@.s¯X»ÉO«°’ôjáò…jšy&2l5p(²Z¦P™QÎvµ‡»ò¾<ıÌ‘^@I_õ"ë¢ôºæ³"7{rVÿÉö£L<›§f¿%®'o®ãµyEìTö}·Ñ4`Æ@kغK¬Ú‡ãøæ£“ª&›QJƒPúj ňÆöØm8t^ÌA…Õ>AîQ®§¥!ÃfÖaS‰òæ*>q TåMŽý;noÚ†6¹¢ráæ‹-IQ-J­Ið IÉA6`S_2“ ý9pƒó`O<À…Í¡št*Juèa P'Z™*!;e[Íe;§ÅÙ'·Ëª,}ôÏø(ÂyÇå$bWUÙ±i0˜ã9¥lêö\I磀µéãüÆRh(ë鹟†ÜÌÐO5ȯTCž6nœ Ÿ¬ì^ì²æ©™¦r?ñäêêlÎ矩àsÆPwÎ&‹[M&ÕyrvUhgÚ•ppúÓª _°f•¡V‘Ð×&¡ä|éªUÈVľÂýqO¶ìÒü}Õ²ÕXàQ+¨xrØœ–Âîq>•\¤¾´e/‹1ðË^Á‘ßçRÛuD¾œÐkm(v‡Ë!B™ §Yž‰ÁÕ'žêF³¹=‚EÑ'ÍΪ¾«>\ý—è‘þÌmZ½YÄùºÊíðæD±‚•2VÁ^Úœ“SÜ œô Ùõ*>Ô²çªÔkÝçãô˜Ú68ý».›a[[ûÚÖÌÙBÆN>gõ`§“¶ë°™e;÷tpìÞ9l—"²Åõ%¤iÑa]Ã’šÀê_ê Ú»7ŠêB Æ«£¦ø½FŽy¤g”§IIê]k6$ Å.¢4-çí’HsÕ•èhQ€Ûº-*¬8Œ¤üß©<ñ^¶œ½‡kÉ7±Z8…‹ólÑA%ÈCëo0Žý|NðC™IÝX®GÐ|: o¯OanÎÙ­:¹“&’•)Vq[çቛ¸J§E]üì‰UÍ-o‚¹í øÌr¥Kê³5"´iµã´+n&ÚzˆMwKË´ó(ãÌnÉ-°Qêd=«Gr3ªšØ~ÈmÝ ¿¡fLêê­›^z—c(yì~XÊîM¥E¾‚píPøÐVg¸8;—,þ: åK7;.jWìç¨s9½ùö±Zd2!Kx…ëTV±¿äͤ†–06;²æmÈbµµà Ê»YÔ9³Vk1¤)ØÁ²·& ‡S«@¥hªn2çŽÊ&D^½7Ï2gk=öLÊ—ØÕäên‡õXmT/gÛœAJ»#\:7[BXvK8¬‡1²†G“É͉‹ò$¾å5²Yˆj÷*®vf%%ÒÜØ†1Ú|nœµ•ç‘ñVœ´2¸³=*ÿ¢T¢-Ú![VÌ-ʹI å^ª2çótÎóýê$; HÖF\“°¼‹Eâ×;¨7Uõ»ðÊâK§‡™ÎÌÒºÛÅŠÈŽAÀठaù[ÀÑT­|—Áw(À1¬nBûvÍ㶸LÞ=€¢ÃÉÖ»1-çÚ?–%ÅÈRl˜8–jü°\#ÏÒÁºL„Oþ¯Ot êÕøä+£<“*D ÂxŒ¹*BlídÝâ.Xl5±å*y0!˜3Ii‰¾ËÞ¥?Ánj³¶¤ ¶q.¾×¡³áç.SD™×ÌÒ×$36$h—kJD6§êصxT»Í̓癋}M$c{ç.Êã@ )0‡3.xÂÖݤ§ZE»º‰vU{þUvÀçiqM‹wž#ý–=Ô–ÄÚ¨jà*™qÆÁ:£ça³°%åÛze–ò¦Û·qã³N©@ÏË™z*v™C¹8>Wɺ·sË‹ðˆÆÔÏbÆqtÞ¤³K×vYЕ•9ápÖ 3×¥íèQÚ&YŽ;‡±ðd-0kíjĤ©nÏ™Í ÞœS«ûjÃØ”.%ü8`6~à®1I›MÁû³O™»Yƒ¾Xl‰Ú#q »V)ál9 T‡eñìóï“•‰IÆ¥àã98ŠâÄ@øÀ#ŒÂüƒ ¨o0åj¬Ã5·4.¹Ãº} DÞ;þeÉG´kéàl®^W j.ž_a.„+‘ÏL2kìSjL¬§©»«‰ôÎDm,L?ÌloE ÅùŎ˧ 4Ŭä4¦¦ l³è”—òTóÞJš£re§Å sAVX6Lõ‘ä‹ÛumÐa'ku¿Ð:éûÔe)v"˜sy›2©e*ËUŸŒ ÛaYÁ‡2rvWJª&…›b÷¦$¥z+OÀo2‘²ukgãðq•»[PmwÕÎÐp´ËȧÊÎÕ™GRšä…g¬D<Ò.tb 2@^ÌjkbÈA·¤ à÷6Ê Xá_Q®äèz,év¬²¨Py ™ÕhÛ›–ÿ”=ƒk]TMÀé©|ª¸ªiáXYA³‡Üü¿ƒO=6ç†w‰*î{±ÖoÖâø‚Ö~‹„ƒÃdªÑË|§“UÛ™yìr[ÉVôÝ ²µGÊŠ.öŽ{góš0멜¨ êÝ®°ªÝòÅf·>˜]ÝÆª–ˆ¬Ý¦>KóÒVÅìj"šE¼ój˜Ñ´IfeòøÌw¶s8[8ÛMy.{o¢«8ä±½+G«—³ò>’3K¬y˜®’íA MÙLÁ‹OT:GFŽ"Âf¿rÇ-·›S€eÆ)—¥*õ¦ ~3:`É¡¶÷ÐB»”Æ©Sy{f´mòÓ÷æÅÓÉ//ƃ᜘@Ê ;Þ»c\Û­d +ó–Ó¿ÇÚ‰2ÚÙÜž/Û&³ Nkt0V¶ÕÕ¦ Ù -ºï p_Nôż/* çmqvE–û,rH"e78—Å\¶eGµI"Leq,rÙlö¿ÖŸ‚$F÷FÜX 1Nõ¨0x§Bi<&¢,©Ê`q’-Íÿ/þÏû€ÿ:>àëo_ß}úüñWï>ýSøÃ§×ï?üôúÏïþâ/žßÌ>¿ðÏëõï?øâ§/ãgÿ®…¿øïþîïÿºóñ_ýá_o?‰o¿xÁ·ý„ÉŸüÃûÏß¾þñíÿáõÓ÷ï?~øé¿Ÿ^ß}æg÷»Ï¼íg?¼üë_û²/[þéV~ã þ¦ýñ?ýôå~÷›÷ß¼üì'/ÿúã‡×ïÃ_ŒßýþÓû_üÒ‹úã?_þòëõâDû_­?é¿zýôþëw^~öîó/_Å7~ýîÛ—¿ÿøõû×Ï¿ÿ³øËÿþ—Ÿ?÷Ó¯¾úíoû“w¿úþ'?ýâøWõòÛ÷Ÿùòï^¿ýô›×o^Ö‚ü›w¿z]7ö“ð/ÿðË÷ß¿ýøï?þüóoß}z}áß¾ÿúõÃ÷üÁ¯?|óúé…ï~ùû¿ùÛ—ûÝ뇷7ÿíÛþê凥yÙ~²ýéã~øk?èý‡õÇï¾þú㯾{÷á÷ï?üâåçï¿}}ù·óoòùwŸÿêå݇o|ã»o¿ÿÈß¿ûÍ»÷ß¾ûGÞ°.üÝËìÿãË;îûþëOï¿ûüýO¾ÿ­wø•óö¬ÇÇ_ýêõÃçïƒ×w¿ÿôú5«þû¯Öcý§ûáoÿþùûßüÜ[øæ×ß}õï?¼ÿ¿~ý›û‡wð£ðãÏ~ñúù%E“¹ûËë|yýÝ׿üÊÿ‡ß÷º~¹ùc®ÿŸÿðÝÇï^~Î-¸õ^ù¯ð‡ïßýæõåó§_¿þó¾üÅŸ¿ ÛöòÍû¯?¿ü£4üøéüøõço¯yòŸÞÿîå‰l¼í%ú¿ú×ÿÆÞúæã‡oÿãÛ×Ã}»Ó?ýìº>þîå}´—¿&xf¾þñÏþç÷îý_üÛ¿ùðó/íí*Yž?^éo~xìùÉøW/þYÿæ#[õõå/ÜÙÿ+îñkþcûÏÞßëOþSÛÚOù?ÙÙÿòz毿ývýö/ýõÿá·ï~õþÛßÿð{6ê¯?³éö‘­ÿá_¾õz};§?{ýæý¯õ/û7Ÿß±ùû‡_|û§E|ÿý|ÿ»×oþîýç¯ù¶GÞ~þï=Yß¾ÿðúw¿¯%yùë-Æñ;ŽÓ×ÿ„µøž¸~õÊiùó¯|>|ýñÕžòË»OŸÞý>ðˆy•^þ°qþ¾yýÝÚº/_ýäÃÇÏüÉ ·÷Ï/?ÿø)ø<Ïóå+Îæ¯Þùã·Ÿ¤—¯~ùûï~ÉQÿÓòËWßñ¤>~óãÊËWßûîû_þé'åxùêoþôªò¹ÿð§Wwÿø ­¾|õ?¾j\ÁŸ^¹_}óÅËíå«×/^î/_ýü‹—|ç/¾xÉ—þò‹—ÜÉû/^rÿôÅK®âÛ/^r¿úñåÆe|øâ%—ññ‹—\Æw_¼ä2þã/¹ŒO_¼ä2¾ÿâ%‹ùù‹—\Õ¯¿xÉUýæ‹—\Õo|¹sU¿ûâ%WõûõòÏöÄ׿þô S¸Î,毗Ý}}ýÝë×án·9ý㸪„@@±ËÙíxšš-»Ý¨Ïá@Fz’Š»->×-Ïä-—\Ç£9>¤ Å~ϰ³Ž¡\ÞFÈñ€”íx;#!6±A¹žëÁ‚& ]zœŠ›«¸Ýì6xÌ4Ú ·ìôŠ•S±bçèLÎê+‘ÔÛÈ•HÑ– {†‰ì’]–ªÅ]([¨âºI¥T?¦÷ŒôÏÜÔ–º\V jy8öE0PG^;NRßìÎ\õJõÁRó½oŠ®ÕU[O ï›rfsã*Ú&%I‘NZ´$k»ãiõ™’Úõ›pÜde9ÂP~ÆUë[å“™Jn‡5Uºr”þÙb|KÍRöã ¢9UŽÁ ¤F…å\ä-Ù~⤸&ψ7²•«†˜\VÇP˜gºBÄà Šâ]Ç÷ó~SÛ£ŠK„.Ïb=Ÿ>¬v8®9[pu?$M¾¬”*ík™‰Š;ì{á´?_*(Ä3dz§¥¹=÷e*Qæ(ýWöTšŸM™¾û’ù9Ͱ«˜ø}ųzËŒæô’ìôìÀŒëjœÜÖ5:‡Z§ÎϼWu—pgGe0µ×‘âšââÓ>-­|°<ÂÃ.ö»Ìù\¬¼4œYNxZ‹pGí°0½lìªnV¸ÐFÂXE™gÀJÎG Ý¶6Ò]-z*ˆã8u¶”7`ÇŽÃl:Ïj ·.Uîÿ`q%pš×ŽAÁ^†Õ\_-cÖ·¿Kš×±ŒØÙKIFšj§Rfï‡3q/l—ëÁa„ý–6ÙQHõ~dúT}QÖiçlðVNvç„K! y#³À@sžÁ ¡K8œ·&UÖ‰‡± Û´Ÿ . ö!Ç.«Ñåšwjgã¶%¨Ì ÇbgùãºNçêž–èð\ÕZ\øµ=!NJ³&c“åË¿à)íÛöÉšºmgêÔ9%ëÜV'¶Uñðà¸SàQÞ9¥„“Ú9p½cåY¾Ïýët§Ø„wÔj>Âé1pÃRPM}çÙ´%`C9G¸ÍUb¹åYÅ¢ƒÃ%ó´¨ûœÇ.Áh–ßêyôppæ÷´·™| _K8¤®*Û&î)¸â3)˜ù`Â.Y}e˜+€ÍºsQ–•g=†õHÛݲÅ6™ùué±ú€8À5LR‚ݸ±ótÞEºrëÖ'`R"… ò0ÅÞó™—îá8T?ë.¿Öû’ÔáZ$ù ²1JÇ™ìÙZ¸¤]Y@é+fôgØcજFl¥}\vÁN»Ç󇥨éÌ…É꤈éí[¹HÐiVQ#.éÒ°ÏûfGJ-‹ Ã6)àÝÇó<²g8/‹ð?‡Ä™Òë8ìP×ôH1fC-ž'I»%zÎPî›ÈîËv®SÞ|I·¾çft »Z1r†`P+Ÿ‰m`È_´97P1Ï»MšÍ^6Ëo˜à¼D±Ø¥´¡Çl7Û•?ðÍ%Ùúí|Ü¥”ÇæÀgÚ8ÛäI–`3Ñ« ÝÕÉ4[dáæÄ_[¹êUk݆o¸ì§Â~ì\Ž}8踎„³BðK¶ß+o§D|Š IÿÉ¥¶œ´(‡ç²ŸMzÄgWî“M`cw–áX+ñmŒ%Y£¾‰#ŽÀ­òà›]îW5œú±sõ§Ý&M&¿æð‚å~Œ=áq%ç'¯ŠÅÍNÜ×ÜX­¨FÕÆ­rv“) è²I€ sˆ—èX«A@7U‡ Ñhdxª”רtCóáôsÒÔ+—KÆo¤4WÅÁúyWÜ=qðí†ü$ÎM.йì•Ouqq"’–·Lòo s_ü)Q>S¶LpøÜNKÎn¡Õ§®ÖÍE M¼«SŸ–s‡5Z¨ªp’°ËÑ„µã@žî,bCGfeÌ–SÌWcëаAœ-CºäF%^.‡©™Œ@ró°.»mìTR%ر9Ûay[iˆšN‘q…B]Ë©,é¾_²ótêÉrÅòˆìR"6m6R$7mè“&Zã =sl¥/•5ÜÈD¥PØû#5¬ìÑÎ ÊJk8uÛNNЀåïá†sñÆŠOG,ö`?°ÉOµ×s³@ÅåjPëÆ&é6®Øt×SÀiù³ ‡]ÿm(I 2m*±ð¤ŽÕïÉÆ¸O›Ú·ì§Ê2…E@ ”üè#lñ´½ñÁgÊÕ,ðf¹S]ãÊ1² YwºEM0>’E ÙiÛ•Ÿ3+hw8ï´‹¥*r5î’Ês; š|¤ G%öð8+ÀNœÔêº%#2Rõ¡”±húâÓåµêuCmGЦ/¸Pön=ÍnT»äD¦– 7æÈ)øcº€BvØGÕžŒ 9UÂ8Öü€ÜI4u9W,Ûà¬æÔ˜‹ð¤äphØ$“ÃÒVì7yïð`·ìÔÖñ=Îýf—Œg„`«ª¾‚hŠƒtڹЉÒßí½ô¶š8ÎÇ2d߸<ÖñÞKÔèTo[¬ÎõP┃ã|¡‚*ØìlŠ‹ªò<ÅTàT!.i5xRuÚó*  ­ ZŠØwVxÍ£!6®m#ö'I¾ý ‚t»bËì6g—»-?NÈ.q²T ÕL–läÀRI{Ôœv~j„üH®Åa÷Èdâàw[„»ÉÎ% ÇàÅŽ"å€J£ý”o^âÓÄGeqy;NX!5Ï.'í.WëŠ1æòQ”(+ó\¹«ÐWp . ÞˆŒ]©]}?¤Ââ 8@UV1½q\%ˆ6‘Gtáœvª—ø\²ŸGÛmXG'ôëÅQ/K|SZ2-QM>ö›iWäuwÄŒH(åüEì3ðM<Ÿe­Át0A,LJ¦[ÛÌeÛHã<´Êl88W ˾³]Õk’yËÉ‘ï’ Ê2´tÂм̱m›<öŽ5ò±Ò³âSU$Wáq(¦Wºƒ€(°{ŠRçly LŽQ-l¼žî§œ­Ù’bþ¦,ãdÇÂ-™2Û].é ¿À£ÎÑ%Ç¥'8fNˆg}™&ŸÀ0C: °Á±Îî3ìP6råV5üQqd‹‹KýxdÝe/2œÝ6Óßcqr›kT:6hò€8FQuÕ”ŠÊQ›šìEê®(Þj[q€ŒeüîKXEú´‡p ¨ ª²=BÄ?‡Ü?ÑñJ©€Ëʵø¸v62FÛØÀ¦hNŸÍáväk»œ¼/Ï-¬©wLJÔ]²§½îÕ©bãûKζÎ;;¼Öo3Æ 5û¢T³:Çpþ8pÉ•mö½%>²g;táo‚ä禪òš*o-`ˆ@ì(©ŸNæùfóàœbÅæ ˽€ã½‡­a ÒC,állçàõfð툆íçÍQ)6ÇÀ›£—— ˆUq‰‰óív⨳3ÏhDåo®íq–bwúÉ1ßqI×®ähNöW¶5{ºq¹·ý:›ýÂÝi0ðfØ»¨Í´ fñY³~gwâ5ÛJÈ1b„—öiÛ¥Éä¸FçIøoW&Ž.;˜žÁQ½ø>Øwb4å» `Ñ¡Ðæ|I’”+ÇŒ#àTñ„M-ÔäƒSáZÒ7· 0 ûÊTalL8ʶ³1p¤Ø•ªF+Þ|˜·—÷Íù&¥ T׳iu—3«ÉêSá½X»4oùa‚ º~\h™ÝTÞ@~_;sHªÖ}¿"S᯲7•©8€Y‰ÃDÌ£°¥méZðÈž¾¢sGyÑ쀨ÒÖœÆê‹cäTE2ä²TþdiN óGWeqØðó¦WµŽ È!r<º òÕÝ%;‚¢„QXkÛèpÆû—œ§2èØŠx.n-vêiw¥ÂUÍI­K–Ô‚›ªN„x»Âf}Íeãø™§iö†úRLØ™¹‹e\íÀ^Ô  jÇÎŒŸYªÇrº3˜Få:lÆbó³Ì‡xw'±‘Š­p9ªñ„­É‹.vÙòsá˜>w('ž\Ó%ó–B‰¯™&ãLhÞÇ.™ú0ì¶°‘5éeíßÝÞˆ©Ôv\*„<à^ÑŠb;”ÀÀ9.Ð%ÍPcö²3y>rëJîA`ôœ]}6IN‚SªN±r-Kª´Òˆ‹ÎÞѳ؇s;ÓÄ©Ê,‡äŠ œMhàdç>±æ.áîDÜÍþ±¶†ËQtTåm'z–*»ü`¿u„}£$bæ`pçúrÙ„PŠˆ‚lÎ]ås\ê´=Ôü&®d)8vÖ¥­ 2¨ù¢Òõ-É=¬;çíw(¿oIнŠå¯Õd& z0á*¡Éª3âЯ¡jA&h1¨òv*¸¯ÚTSwˆ~W³Ç §iÃû¶Tެ¯ª,îöbªô™Uq+ÊĦ N?>ú\nš€'·ÃŽj‚Ã&楱RËmÓ Ï²¼Z€PVT«\ÀøQI°)´(q„—uˆhn°­þxf3¸  æšñ0ߤpv¨ôÍ%ž×^ԯÕž{|äj•îÎ<䶘×KYžõtæJš)K¹W–1ÏjóP÷pîKî¶g¸kf£„î¦{@ §ÓáK;¯=¬¼ñ'e3L…Æ%ȇ¯:•¥¬UËÐð;ic 5C÷GDÄ¥;ØIø6Y批¹UÌ?Ff¨sǦ•ôiÊ1ﳞ™0 #ò¢¾å&NµP”±–ÚÒG"«ŒÉì>Áàåtº|ªxÕ‚P¸¤sQ2äÆnÏb¾½ÔýºTY”ã<ÕÎÜõ»u½Ð.ÿ^X,­"̷ūǠ“%2w¡v¼§º±ì?–ÜFŠbÛÛñÔVÑ”Éé@4á|üž.EP/l¬l¨@<›Ú£ª”måZ°pðøÃTöúÜU(äá<¤Õg¡æ ˆgшǸ­I^à߮Р‘È©ˆv„çÀGq>lJ¤°]äÆÊæ©+w Ä”eÈÞ ŽI/©ùQ#†:œ.¼°tF×¢©^õîiÕ/÷zË¡zoÎ=4µv§WXö+¹~oÛ5 HœÉÆ’H›ƒ·Øv»ˆ W$üXÄH—(,y‚‰ @bÇCXÉæ È%!ºž%ó"‡š ë\L»ê>mê\]ÇÆ’)NÝJÇ™ºåâ´f‹y € ØÆûÕ°JzçX‚OÏ*†ßø¬ÀÜãűaíÍp’ø|•;åèß–²ÍžŠw†.ÅpwÏ>#N&Þ œì§Œ¹U–tw­¡sW LÚ5Œz“¶¶‹Xž‹£ÉþÞU{Ø·ªý!¸yt«n`°›Šž<¾“]ÕÕ9©„—¬bôdEá%*¿vÕðJ·‚·ÛIv…ÖU<ÎØÛ®K’ÕÀ0Ež±(åâá4áÊ”˜\ᄾMÝ\W6ÈÛn9ª²ZLÄ`-@%dEŒÙü— »l1»,ål GùÔ¤‘`Û† ®WÞâé2 n½Kò?£ Û¬® Ñ¿ê¦Û’¬u‡4]+ï´Ãu4ìšå6VŪíœrwß8КVz¬¤îRñJ&õ‡8Óž8`³”ŒÃÃX„óVø£SÙA¸ûû*:ã4ŒCi*’YÝ⦰:X |bÀ³ðæ5á[lT’%ï˜BüV‘)èq*Ùtש’áþ^0»z`Rü>Ë”²Œv¹ëžÜ/…/dâàXR7׃}Ë7šM@°õÜôâ†æs·7)áÃt8vòH¥ï@I5ϲf:Pi™)¶<á–g¬v«8wÙb(ëëS·ƒ¥[äøU~Ù%ë=I%[ àÐáLùþ»ÓT©(Ç’yFì¢x´Ãy[Ö§7bKÑÙÊÖž`kL±® W2&ýms2·9}“Ç¢¿­N´Õ%Z­¤ÌUsIÏÉ¢%‡“U¥k3<>FlB#ŠR¹<®¸£ÖA~Òpžêôî—ðVâå<–Nu"ÜeÂ>Jæ¬@QÅ-Ò6‹ô'ïãÓ$庥¥K²Çಠ(ôÆÁ ù’ÔÂS^œNߦÙy 0ëÒ(srð­õ þÓ_(Ä£ÂÝ©}0©ƒ™âÌb|€I‹QÂå4€næÃÄ eI¥Ê¯#e8Çлܡ¨#ÍûœÚnò°âØŠlÇÄ™6†ÈùXð •0b‰ EºŠQBURÄI÷~`ô.y~‰‰ä¢’-éOÈ ‚orÂt »9Ì,.gÌí°Õ *"4YØð£ ½&ç礨wr­{‰Ö,Ms q±ã®9$ÆÅ1>ìjëÍìwwý"V®#ï·å-ÌôaOo^4Ià‚†_(*n>˜ ë2rŽã”‰£ºMt0eCÈiÏÜKå6+f¾sWT†0ƒ³—-<_J~ÖÙ‹ÄG¬ŸcôÏʪÍ{²•åÛåÐ屿ÊÄW(µq‹»UI R1¾ÉŽóýµH}m»ªµñ½ŸÃÒ)>ω'î£¨Š¸ÛK-ÝX¡Ér•ö@jæÈ{¬¼†VG6'»éã ¶³^QÕ±ßÚ–Ã~j|ij³\á9åG $óKÀ;5œŽÍ6W«“Úvµyøž© 6[‰ü0¨ó¸OKwÍÑ%UÞª#¹DKÀB0bÇÒ«º³Kà`²¢We¶^VÀqfÃr›—шœzª,F %Ÿ¸[³'KjÔðR¯t›ªO7î}`KlKnkÜž#f÷ˆ0’‹3¯€[Äàñ¶¿MÑ·G¾¿ƒÅå Sèw¬4oºTG–š½vÍ“ÒÝy²Õ¢ñ̰í‰Àe [.Q.ìAÄ\ª9}Ö%Â$Ñ…”œøtŒ ;m8ãì¨?hR)êÔ퀱eKíÓ-Ù“•€qrN»6úQ 0®*pæ#Ò¹R8z–,ã]Ec 6Æ*È€dOãÀÿìö'k|/»5Ù÷H‡|wö“ÂöXðk1N÷:•GVÚ)I3Öó|#P SOsÊb+yê„?J„aÒ¥ÿ³dÚò²T“Üp"J±|\¶{OÒ‹ðpžEìaa‹î,€ú×G´˜ug î…é³£JêM,ê30¯ÜFR ”èXÎ3Uxr )-ŽSBcv]5² 7ÇÓ„ˆØöЦ\x”¼Ààq º¼¸Ä3ÓDãà¶‹gyY3A¶4 mÀÀÝgp<ŠÅ•fß_±£Hæ’¼FvÒ9|º×}…œUÚ&ná1q[Äurf(H»KMÜø¡2—r7WޝælõM‘¾_‚P†½RKï$(LË mêÖ(?,æÁÒ+Ph£ _â™®úøŒºñÔ¸/Û6Ás‘o1w±(HPFc¥¾úÒ!~œSÅcûðS»%Ì)=àŽæý8¸æbÇ8ëmöio0ÞÌxu²¡I«iù[2Gë:‡ÜBø…(¯FaWPM2æ‹!v•«}†!¹úâ=Ðó ¥Îe?/èÉ4HF» E«  Ÿœ6ió{ÉcÈÛcu”ݨX#[Ãé%¨i¼e…:O¥‡wÃPüUU h½qs$C‘%ªY2)Ù÷ÍÉÑOöÜxsUÙ#G[Ýlù8·-<‹".±xŒ}‚3åˆæd\ÅÀP(ÖÂgžÒÉYƒrµ.q`•û”Cœ‡†±2{ĪÚÅ®>;ñŸŒÝ„œZ)Wd¼R½ƒ…1?¤P¸}†¨„Ô<æ °z;i±¶±4…ø"«6ü;hoÖ‚Ú4SÑyQÍuKUºI ¹\J@Ûu²Ÿ‹vjØVRKdzػ&%€Ãþ@%¤Î “ÊÕ£,Ñ“\N¼a«ÍŽwƒö $ØŠÔašoWŽ)žr“iÚa%yT 0`xŸ+}£âŸØ%–Sj¶[ÓCÌ:-hH—@XEÌòíéNvïc3í.UÃ/NÇVå—Ç ø•éOm©¯‡¢JÙ(9;ä&™»r鸘°2ɧcBÛ}/ƒÌ•¤³ œ§G¤‘#îý°A[ÉßßCŒ°Aô¶·\‘ôqIµO•@¤Ø$ØpüÚ<Òà]’v2 &m!6!Â{ÁºÄ@&ˆOk˜!u[8‰ÅõT•îíÃi*¶‡d1ò¥AleáœÉÓ^íÝ6A¬©›M­$l,!vÐàƒcñâš+yOÖ¨*WÛ¤à*»C~líx2Rè<«nÖö'ì¸( ¢´{Q˜‰ÕÏi3ËbŸÆ'/NS% .›7ƾá)8Á¼¹V©÷i ¬^6 €-ûyÒsYs¹’kÝäõ&è‰ØºK#¾'®@v2¢=jÚûî¨hV¨RŠÂ]\ã8Õ»ÄΟö¼:bëqÆ&F[Œ«þZ¼Ô{µ"Z]C6.+϶8Ýa ‡ H’¿‰8U6xÖ3Yç¶’ Œ×ÞryXé\Õì•"©yàJ9ûâ³;¬lHtNS,«VØ€q*c N9&©£ÁQÀ°²Û·hg?ï+ÔÄŽ–|šÙ®2£EBN[Â.j™}9ÃétÔTšq³Ïš"\Øñf+À4Ϋê¿fq®Ç.Îúèó“LgKXo—á[Ö‹¼žÀ¡­—J‹r“é™›åYÊã^I]”§m[Sc|¦e—åÀae0$…ÄF©¦ðQ*˜Ø LÈÙoPç¡Tà=òz~µî£XÅJ öüΡt.7ÒØÔ Šjì]N:¹:îö“žg[ª¯7ÞÛ®qã/]zZÛÁUm¡?‡ I V®tÇ0·DôÆÍ_¨7î@ŸE¬„ëÝ¿Š‹ÇÞ‘pglp%§k5¥Ànu8X17Gä";õÎ eßóªˆØÄŠ›«éX‚Yå%LÒWð²‚ÊSÇx!¯ëžì¤‹§eÞ>‹ÊQ¡Õ\|º:OÁ>q×M"Øœ‰TžlU¬\€º—Þ û¥hM¤æw÷Îz'ÙÀd󜹹¯…Mùk½¯M‚¼Ð,ësqÓf[[0(Ù–ŸÝr¶å9{}*qäè³H¿ ø™‡ ¢»ŠnAu.6™„üV™¶lOn™/Ù@@: «†/~.›Äº»Ý—"¢–ÎYϦ¦í$ŽMKŸf ‘:gÉ΀b…­Ûî¡Ëfï>ææ9#Á,]?ePÞle*?4x²+¢‚´ôJxà°´ü ¶õè$3 “Óx÷1³}³D'añæý'ÎŒ‚™vþ;b¸Æà6â ‘•Œ™ØT} K‰ Çb:fcÕÜY(6£ü¿/¢¾t¯ ?1 ùàãঠˤN:–>³eŒsŸÓ¡­.б4—mDÇ0ehö5r9‚¯6ˆXtã«ö‡ÔåiDqã§ç’sI õ˜¸ŸN¡€î±°l@…ÔƒB<¬Q±ìë|6Š­·ïžÝ²ZX‰Ò ʦIǦçPjå6Ä{:°›IP»[¦q¯¤}ë µä [Ãý¶ëÊá‰áßîÁtv¢Y0yá½6y–t­­ï'ZÃt:ngÒ$/5¿5ŸØoBÍà À6ÎJNšìx=²}¿šÔâ×þí†çÙl0Âßs5]³$¢\É̈±3>8$&­N̨N`º=ÚÜtË3Fä9ÏÊÒMŽõ£Çg‚y†"Õ½ïŠú`‘äÑÎ3ñ,ÕS¸vR¢K%$ }ep0ri·= ˜~…KiQu_:áÁÏcc`ò²º\Äv¯«9•q;Ø×Ónfl8Ë”&ZsUìù˜r8"Æ%¸e‹y²ÂÕA¹ª„á³xé‡- ÷ã-` %ìsÿvšùt¢ï9Éf옗KüÄ<à™³£ä`Ï%Ñ2A(ö>ç‡@ru ùÍcRÔ¯ö8¾‰‡%8µ!ë)`yØ}g 6êlžR{ºzoÎÁ¨x­–ŠŠ• TÀa3¸'¯±ÛŒ‚1æ0ùIÄ\«nSí¶ó±XÞ05L4ÏQŽL\znž‘pQ»t{ ï£,¹Rµä€«Ç#‡5Y¾PRÁÕ@Š ØV ¯îŒ°)ŽÛfž&*(=j‚m`¼¶‰ ³pUÕ*PÚÜEþg Ày®ôïHÄÎÅ8“2û%ö²±ÓÙ,9¶S=ɨà!9öíèC=‰iÀw¸ßÚ¯·a”ÑDØ\¥¾µØÌ¥8Ô†ýJ7‡/‘ÆåhDÇE*.„‹ X¸ì´¸%qur7GiÇ à/öâ ‰u¹]µíš‡óMœÓÍ*þ<ž€™aÓ±õÙ©•+ç8:NÍ ÐªË† ©§ùTŠaÎÜìÕ#ÎícÏG¸M‚±Á|¶”®R—L-fnícónò3sˆ$`ÐòI=ŸÔE œ. LNÜ€Œqè©PnÇ!\¸”CãsVàeÞßžæÖv[A±ìSÛü³ÍÉÊ•8©!«³¬%}mćpä6r?øMæõMay|6xD Ûº‚ž§í>úùªÒ‘y,ˆüØF8Â)î+¬RµZž‡ãGv›¨ù—8 ìE|¶U°Ø'qÊY}{ß]/,n`”­óuå>PÙTÑ»¤ß<çÍÎEîUá…gˆ ¾0RRãà ¾-BÀ†îÀÐñ˜òrh‚[›c. »ñ_ê¾*¤ÓÓižxp •½zZRÚËì—Éràþ%¿î<;[ º-.|‘_iѼUží>5x&Üaâô°_“=ñSŠG޽¢®Ãt)­í–Ò…gÜ[±Q‡‡ˆYO»b÷<Ó=7 þ\e¤›%ß1d+ÝsW(0!ÔU`TÂ=;ÈXØ×jžÕŽ+%Ahñ¸pÑÙÅ}Nb˜#rÞžÓÂÝadË÷Øo=àÇY…<åï6ö0>#&ÄJTÅ¿VÓþ“¥f±+ÑsïKR 4–EÞ—z-m¬JS ŒÿuBó¬â«îM—ï98ä­\Ð$f²e»Ê ­  ýsr€¤5Î1Ç6Æ9U+éŠK81¬¸ú¬“ØÙT¢D6œ²#×ëŽÞ@R™CÁ[,ù…ßPýM·h˽b6´p+±-z¥¹pösi(\«ðð–[Pöÿ³êÆ7ª 664†·FxBrSÁDttu@Ê‘â¾8ˆ¤4÷¡ðEÇ’›XÆP]`žÏ,›ØÕÜhQñ!±{*¦‘?4žR2;‚¹ HÅì]ºuªžpºÑOgtŠ}€ÉyâP3rS¡?îÄ£]Y •d-°Sßl±tŠA ‹Óq,b€ËLnPfÁbª<°;ÞÌÁe£;¯có Ã6<£e%$®VkûÜÌÙù+ ‚S*‹ЧËp9¦¿Lj«ijañðÃUìËÅæz£m¨êÚÛùî|–­ÄBª_Üø%,ñ «WãÍ`îéZ•ÅÕMKÐÅbJBO‰ ðD‡…`¸J ! i÷|.\ö>ݶ`W…<¶g…(e.¶hÈŸE³^8Ä<GÖÇÖÄiº·Zò4¦“¸¡ØŠË¦)ó%w•sÇñ§ãªóMºÉ^ñ,ïÂÉ]ƒm aSyŶ6•T‰¶YðŒÃŒ¼jk@éý&ö(|OÄêY|ÐBK¹{´ñhT âOlûp†3–³ „[Äù¶Ž`Œ±EY®[EfNSµ5H ›°XA2G¬Ë-µ Çþ,ßDé‹w¬Z³û½-ŸÃ)1±j*˜HÆêpYÓq†ïqðYŸŒ;S?e7mr«ê(WîaQ‡{5΋†Uú¯nÃ36ô°Zd*Þã‚ÁSøç-Ê£Þ4S<¹¤&ó°Nd¥•|ö0ìŽö%bÙìc|Ìöñú 0½D× :'Vµ•Õ°{œÂ›AM.I+0¡Ã¤¼ï“á4†,]:× LZqÉ`MP¯]ž†£ÊæŽX¼E¨“„+·Úì_Å.‡Jyu¥”>köªz®h¯VªÍ͆cv–ç§PËyg§ì„ŽköÌ©IQzsØp³ðw9Ï!˜ê-*;ÛÙʘ^fž¼©E¡¯ºæÎøü’Gj_º6šSŸ¶ N”PÁr7=ß⤋½†f¡p¬ö˜MíkŽÉzCMoS@®ñÔ…ªÄ䊫S•Š©¾±ÇÈQ¼=³ÙËy³c˜ˆÒ Ô£b…ãÔåXoTò‹¨sìg"✃¹xÓÅÿÍXl‹R[7;Ó,¬ÅÎÌ‚Œf[§íòÑJ7›4K¸ÏYtíºUY±ÉËÄÕI$S|»®3ǘq²óÒßç2À 6Yê6@²ƒÅsgë7ÃÆ­ïöålu Þ¨Óu9Žs2q;bÑ›æ±×qz9VÇâ癋4úVb‚ãš‘Á~ê2EE»âƒx’ép’ÛÇÂò™M_Ù²Â7þ²“íÔA¤lÔâMØÕe#ú&/ÎNܹâ|Çw9•Å ª›bõÛ^@å™R–ÚÓ/^DU‰k‡³³©©jrzW¢÷oÒSìîòsŒdro6®MÎŽæ Ô<êzá8*X³©x«,ì†}ðášÕtK“äM45K ŸKþÿQcÆ/(P¥Œr°¯•Ç3ÕÍÓáyE3sÉE¾ŸÍNœµš*Y*çø·`1{LœWëKÍzk8&À„]ƒ¶ôpppb€sž"`ðÖ8:e€ù›¶×+°M,·-Ö¹´(ELã±Ê}›€2œË+Q¢n³‰*;6q9ý0bYÕ@ÛñpJ§JR×>VØ™» vV)6;3›³zo‚×ÒA)Ñ”N°òÖV}´,â‘f€þ°» i+«mƒù¸LlYUúäLåCš+[̂ӂüGa8'%Q ¾|“‰hËŠjL5ùÞ¦þ²/±¤vΚtÛíˆ|–:㵩¥eù0kï4xËÙ‚ËΠ¨‰‰·/0QüoØ•¹PãzH¼)/ X $vš2(¦÷]Q‰6%z“Þ{˜Œå2xŒ–Žˆ%íƒq¨)^¤.8¤ã„òSãÆ,‰lkB9M5ˆ$?R¹Qm»CÉ6Pð]^\°•g‰§á?Þý—‰µô"ÔájÇYSuê{N›1ÔïèY¤Ê÷¸”ê«:‰_‰Œt5ž1,; hбįâµFïÕ¾5t8f8|Â>€waoñÑ«Y÷V92"³Ã•Q¶Ä%Œ8tÇà 1O{¹Ù*´ žDWI˳ÍUNãmuƒ‡S²E'%ŽÛ¹átóÍAŽq•qõvÐ…g<–ª¢†¦¬jà§¢U"e•kA‰›ÝÒyÔ ó)­Iô†Ýh$µ•pzãV‡ÖIÌ»P*»$Õv:²€-1v eûrŒc™Ä•‡Â¼¬¢Ý"9ÙD5ˆÁñ÷—ßu»íVÎz7Ù÷¤ÚpðÄžüã¸wóv¹ÅÀ7®AbIÉÚO^I®ã¼VMP-åhO†ƒNÒë9‰ÈZç]*Rž%Ÿªœ>&'Š3w™!_xð:%žÀé›c;$">lHt¯°KªeÅm§ÄH@äSÍЗsÉxK_mÖ²BØE=×ÌIeWŒ¥õ×Y–2¶ZB>ßD¯4!1r˜F‘àáÁµ­>좻ç‘B¯æH¨›Ò „PÜÔ‡)\£³`sðM È©«K‹›+ó&'wsºrJÔä0â¸gùEJ–‘̡̻ЉoÀÜ:!û›óµÛlÕÀ)¤½HŸ$z­E¸¤7Œ¬½2ÙrÓGõ`Ï›ˆm³SW2aL©Ìpø–h“Ûäî¹ÛþAk¼žFWvÂH$«Úw Ê:Õ7¬¬¬"黹pÙ]ê¶ÔÙcE.B€8 h„ÂÙ´»º¸ SÍŽ³uÒY,‡=.)18gÀ´çÑòì–,eƸÌ´ möµ¨vŒ†±ö¼kWþUZðušÍvÖ¬4ñ¦C|ÓüZkM‚À¶ƒœ+‡Ǥá —Yð8†‡á©Û.«b´7Ä10§ ü쮫ÉëÇΞ‹=–ìÅÊ™cc c²kò¸í3±{;0Ä¥ˆDÔÆ' OoµÈ‡š§ŒÞü@±IJH½``ʸL`¼Kß¶zÕ@@µ*º‹·f\b ¢“*MV»Ëœé#»ÁLjȹã(ÃaÉ“ 4þÅzH刡M¬wqÒRÖ ʶ¢XY c" rß” Û@(Ä+ à4Þ¬£"Þùß¡þÛüªb]ÿóÿ'Y,~óŸÒÅZð_¥0wöÿÊX>Ù?Icùâ¿@+—ÿûicy«ÿR+ÕıMþ«ÇrwÿSÇâ÷ÿ?Ǻ>~ûÍÿýűrzùªÿ—ˆXýç*@ý7Ù¦ÿúe›Ì@?Ïñ$§l, ÇfÇœ™,õ]çbT–£¤^ ÛëtX÷”ó¸:Œ"2ÜÿÈÒR‰ýâ±Ù>–ž!Å¥ã=3F…>e 0ÛjB´•Õ¿vHÇ{KÃN$È"ŽïX3¥·Ì“5ë~&e!ÎëÞQ(a»©>Š;DõIÌ›…‹0|{vGAçnwÆiuäÉǰsŸè@ä*k#àÞé/nÊÜñeN—k›Í ”–“—y—$[þ}U=ÛÙ¯µiÞ¢:[Áž9ÕgH<—Ù%J3$ëûD¯¹e¸UÛ¥÷Sßr:ÈòÇæp‹“x¢ôáCß›xr_Yï[î›é$ót2!¥Û>³¹)øq×Î]*¾Èļ›:–ý¼ûe¿›’jaµÿp¯Ž…n۬ϳ±4é܆ìÜ}Ÿæo9>Ä!G<‡§@þtl½šéì·zU–p˜FWÕy˜Lãã7«Ñ[K wNŠUÉù 0Õû²¿‹€4f¶ÛõNý>ä–ˆf½OO’`.)hž]|Ž\¾Î[¢Uµ‰cR~.ižÕ¬©:ùÁ%\?fc¢œÖ÷¸G©ä¸ÛzÉÔÒe¸‰›}›­ÉD}ò$¦cWË»Û 6ëñY›Â>óâºeŽÖ0ʧ/gq~Žéx"[Fõ#Nµ‘ÒucXí,›Ô¥$[4q„K'oc0w !»C¥Ï&…¸i™vòëc º?¶;D½O¯‡5—j Uy²ôÅG²d¢±E'¤zÏÑ~¥yTIÁåü½îlÝæXY[>k›ô¢¹ì\Ãá{Zo»S"˜K%‹žÆ^¤ß¶Çâ¬R<»Í¼›4Z¹_Cêµà F·•v8Ö•#ÏUM{•Œª š[\Œ9ÖÔr¹¦½ÖÍžÊøx[ó³ÆÛa½1¸ ÎCM¦JÖd2ÆFVK¬µ3*ÇÖ¼‰ûž{XÛoàõ†³²€†]R2©£m‘»93»äÉœô±Tä¥MžrÜïÓÞ¹3°¹VÃŽz2$Æl2Û„/W•[»ûˆÉy"ÛÏ%&sßù.6…lÃ~¬ÕlŽ$°µlì´“Ñ¢Û6ÚsÙ.Á¶:H‹ ²ó8,‹ïÉYiuš¸ÑÓÜðL² 9)eYõ–ð0;|Ê–ÉX‚ÓGéÜN†¤€ì&#åråGpvÙna\·z)mô(â%ö‘åleKdGˈӢâ1Ÿ¡îÒ<$ |¶¶œÙ¸ÁfÇž€õ+¿R( Œ‹8Ç"¨T¿ÞVÿ%yN8Wk†xæçÉ¥ºS3ÍÞÌÜ?Žß±,lgÝ’TðMm¿"–ÀË©Íù )©Ê6p™‰ta –:†Ó«y8B‘T™¸ìnÎÊ;*|׳„¬»<¬ÓN€NåÝlùÿ,ê€:pÊÊ,úÛÚnÌ¥åé>lí–6É Ëñ8F)(¶Ñ2Þu—›ÍÁgYr¤b»¥Á ,Hµ©U{Óé>i$›-NãÒtã ØB·*$)¹úØx\ Þ•½v‚kÁD\%àꪋj–Ô-µÝò°}l@©i›ó‰u¶Ú#Jeka0q¸ÙJX¹¥/}%]o>ã~Ë«s/È…'»¯n ²¶â|†äæ·ØnënaÚ=;í8‘=¬ƒÒøŸçc;Ü€ÇA¬mV¶£;<-fâõ$_“«öŒ1¯L@A^5mr®&úvö®ˆ ö´Þˆ_ÖnžY©°ÚQCç²l›B–<Æé<#ÄyÛŽŠ3›å4ïl¢WI޳Kk±ÿjà Ž`J¯Æ9£s[o·Ô±IZÏÃô‘´7ÇÁá’°î»sìA&ýséU…ÝûpZ{•XìÞ5ï,åëjE#i8¶yÈÿ²o`eÕ`Æ8$Ó¸”@•H…U?øÎ•“–ÔYFËcáŽX çæ pù¥ÊôzÁŸpÝÄFÃtÉp-‘›­áD6kÊHëva<^KLÜ0»e“9zFnø › o'!V)­)‚¹³Ä÷±£;'‹Ý„)³`®ðÑ–¸·nâÇwXw¾]¾ wÍG¤*F±0l%s¶ËŽåå4ŠXë“×cá ùßÑ7{+‡¬ÐmqÝ9ºÄ8hZ>IÄYDÆ¡ªí½ó7f—uuÓ$«ézðØ}€Ùð ÏüÁ2¦pËÁiÉA‡©r—âÒ7ÅI3[š ¶'sÆvBÕ*q‡»ô@ÊKîž 6m±(‚Årɼ!/´¢›»)Û5é ¿j°Ü]-îe¨lËñX{È"©ç›9;%74žöè§”#[Ê„D®T•~ú‘³€¡‚Á±)æ ´v³œ®èJYî ä»5;7rµß³L=JžÈv†yH$†J.š,*›L袩 ‚{D+ÞM>5…Ö,ô©r¢Â1X)¬Ú¿,ô¸ÖÇ1 1þ6ª '~ÙìfÍ „ÈnNľÙa8öh p%ˆÜú‘ôÅØFIäSñä°Nq&»Ð ä rg£pøåП|ÿì„‹» 5“¼S ZéIÍ©\c)ð&ƒÝÑ•N06^d"Ó„M t³!âV:Œ€Í›® žu’!S-!&á½T„‹ö8ÞòaOjˆ«ýYû¡hÛ¶¢\n!Ù}Q8ÑÒ8P›Î*¯xï(à…CÂðÔ ¾§&dÊ­;–¢š¤óè¯HÈ„fŸs6°“J€=(yaÃ=íሪEÌŠ«Œ‘(eÂft>"óAÉ„ŒQy]Ðé¯Cã{÷b›ÂžW·¨íàK¾ S ´Q¬ <¸‘G÷žqY­." ögwr«ìÙ+бìÍò©Š—’§½|·J§#&JÖǰ06¤'fÄ¥»â—( ÆU0d½ò»ÇÞ׳¸pZ*˜aãœÀÃ?:h£x4h}ZqŒž.I­Wìé>…]„°ú·–}/û Q™oDµÉô1Š\xšÎ˪ŽÍöQwRÊ{ÑâÒÆ"—ä¸ÉÆOCµ&œì‹ÚÚ&i›”&…¸lv€E—“è¾4g©MIØsKM—ÄU8`1kذ™qÑ_§‚‚·½Ä xÌvŠN¸YÇÿõz†LÄ÷WB±Cu)'ÍðtQ—"ž\¿ÚØxTÅ亘Ù9'1/%tqïÒùôòÖ½u+l>4Ù»2³ÿoöÞum—«Îû_GÑgÐÚVI?U%)['¹œ}þah¡qclÇ9ùÜ·–áû°MlûJ Ð÷Zë}Ÿ§6ÒœcN9Fל˜šr NÙUg*)¦Š£ŒQ°6Útš‰· ,ûTÒd]Æ¡¾•ÀÐÖmÅ·J<%©Wó ŽÈb·àl¹âÛ Š mHyW\Xl Ò R-5ùû=ÒÈËÌÑTÖg‹¹Fª:¤75]ªE9•>þ}:#j¼ÄÕœŸæ@ƒõ¶Ã×ò_¿—wl;‡Êe½ãŒJ*cÉu>[æ‡*øk¨¹®Ý#Q =^˜®Ífþ[k}D«er,.õGIçô¥ÅtŒW ;^Ï3ݾÞˤ”¿uƒcÈD¢bÔ(\'O¢ŸARKy¤3¼ò–â õëPö¥¦î¬_€¦š¯ZUb} ³Óâ±cTÑ@N®duvB8šŸNtºÄ•I'A‰›€»Ï¥KØbe/Ý”t ÉÜat§3*Mà»™¿$r“},G²L#[RÛQ¨Pë8Sah+,aõêX¶`uðû£›ÑEþÚNní©ÂÖ+O€0«üŠB+¡¨cB¸ø4Ps¢Ê0cq_D…LžSÍÁ4 ™L œÄzõL±r«è«FAQ8?D' ¶V§QÏv+e¥ƒUý×¼ A¶ 킲zm,ÕCŠŽÜ’Ê)o\õHðx''Ýš}¾"™@Çgï©›P’o¨>ùÊZ½}•Š­U6!ÐÁ;Þß®§“£{ š\,Ú¥†æqô{âü ¶÷Uåus¥jÝìÐúÞ[Â÷gÄ‚ÚÊJg­)vª$@â'µ+ûB¨Ð(S—Ì—{×§A?#ûP3[ê÷0‰Éj—žT†T7º°@õ›S4äýŒ¢\ðç¨]3ÂfO!r<±„ËS³˜ÒÁ’ù¦f=fj­î­Æ|&é󲈳+øÜ]*ƒ:È<ʧ)Og)»Mär³x_«óFY5Êšm»b=“T⡘ ZƒwQ AÕ¾¸¦Ì:’i.«I ƒµt$­G™uéÉ¡ˆuQ·Hþîd-ÑèÒ1'«°Óx›,`Mñ´3œêkXŒy¾ððÐu<]dÊ*ÁøÝ• "±€sbEY†% ¶nðL V ‰B—uÅ!WÏc%ˆ²ÁË_–…¿uþyƒvÑ/¥7ßÎRÚªZàÄz˜„Ý@3©(h¨¥/ŠB5å’r€@$V‹#oÊ.UÂç4uåW3…†lš®i<©Ÿ3‘繞S©²å õ7ûb›ÀäHÚ}¨ý„ûæÈYa×ö¹”‡R¥‹µp9gZ—R©1ß-D4º&-w|ºÊ?¤ ~ž¬p­!Œúgʇ‘ 8"ש«²|ìûi"©¿÷8ÿœE©G‚G©þuQ1SÿÝI—ݳ¿äÉrW‘Õ2†3o u€dõJ¼–SßÛˆr½ õçÓB˜Ëõ{|ÁƒêÛRyª<øP!‚}voŽVOÝ#"–mJ0¿øÄ¦¹(уO¿“µ½¡¢PZž¶I$. ¸ºõÿ@Q…ØmË¶Âæç™ŠisñhHÈä3)…(¦n›wTÓ]YõÇzƒX^÷é­Rk˜‹àlðSº «¹PÊyRÇ«$R8Iʳ’#Ž“—ÚSŸ@ÌiŸ5G ¨sµqxx9)ÙþŸF?*³)ì˜l^WÄ=WÕ<\¿e›NNL܉ÜV?FÆŠ}hOxòÔ=zH'¯Êˆ\>ÛyèªÊCl¢®!…Ò¯ÅÛ¹5êVÜRcéëg‚£ ù~*%›Az¤bzÒ×2¨š€zŠÿ °4­sÚ2ä1Qˆáïúý(#Ê&aà´ É%§¨—©E€RÿS²%×🊀û¾üÂ^õ¾»LkÕ¡)z $S×£¬Ù õ°Zt`toM4¢ÖÛ,$…ÓsÎ*pMÏöÙÿz *g¢PJÓ¹!àÓi¾ZJ…“ùjK×udNÎWîÖ¶ `;R‡jzû*rÆz_ú*Dý´_UD,—|omf@ƒ¯"•ïè€ (=ž'à¾øzìtên¢QUI'®‘.~Çffõ$qy+“úôZk”¢A øÃÁÒ)æ‹bsû3¥®g®Èéož–ÇÙŽ²Ý¥:RâZZ=SÿÒ·¤¤ûÊf}7'X®#V ;lœv¤z‡µá+~Å‚ÎZµê½LIY±}¢Û§ÿ1 ‰8ÿ*zžuæ¡èÜ“c~ŠùÓNsyŽ4_g|M]§åWéˆW FgÅÈ—. õku7Ó!ôFŒ±?ƽª×Lö"êª$˜ÔH®ŸŽ=ö¸ØLÔ2k¸ºvØ4÷ÑǤb­ÛÁ¦!W‹]¿ö|V‡‡ì¬âfð!.‡$läaŸ=ðV‡ó)ºPZÍR²ˆM°º¬)84§gÓç&;cãؼ«‹¾›å)²’ΘŠ,Qzž`¨úåˆ~ëƒHŸ/•5ùâv”ÙKs0ã4&½Q.øµž(ÎŽWpÙ}ZAGOáA‚@¾¸úÇǬºhU•ò»Y4‚PdLý¥ì¨á²XF´¤î§¡*åE–¾-9ÆÑH§8Ôk±‘ÝÒ«`ôëx|V*œ]Xj”ÚG6Øé´°×¼†HÐAãL æGÿ—Û©AÕünŒ†F².ˆsvX߬ˆ³IßKa-Â%EP‘Ŷ<ˆ·Kü±ƒõzúiøno¢ Ña6ø=ì 0Ò9Ê«¤"r†n¨DÖç}ôáH ¨D2¶¸o–Vµ@‹&©ºAý—½ [ªéù*èÒÎãì½ýmc·«R7~Ô÷£…ñ*Q ÌÕ5Áî9ö5Fä—̧ÛpŠuI‡Íƒ±pqcUø(d^E¤ ágy+o¹”¢Ù®,õ®R½OM³’×Ü!>ÏwFþkjK¹xžÈrMG­ÌÐõ—”ÜíM“TžBê¡îhc¤ô¥ ¤ÈRö8A‰jq%¶¹eÈh·BN“ D rø‘m@äÝ ’(†¢Ë W«H¹˜Öã•ê•K%„Ö&Pþ*õ%å“ML¥}OÐT®öÛŒqŠ-ž]¶ƒ^a㱤÷¸w{ød «êò™çà8 yë¥à#IGŠÙ8K’å )7FÙ;¥á&a¼‹AÇ‘W§@Û×B¨|Ùsdj"/ûVÇup.°HpØt©N•¯ý§MS/: £ÍlÒÏ¥ïBIÔìÎ :¸œçRJú¥ÄK)Ñ3ì/C€Š¿eçÛâÚC=?GûI–Åò¦‚ºŒCŸª¸ú¶N3éZPyd†ÝÎIÃDâß®X¤F±*ödóç§Š}Uõx;™yJHù…rgOg_êìíêÎRþí}öf1¶ùXÚѤÒyÁ"NÉ˹"˜(ɘ)4:*d&SJ¡JWk;¾«ŠU™õJ¨Gݵ[}攥™Œïê{QA·K‘pbµÖˆò3Ç^¨)0ô ÷ˆ¬¬¥s°nD-K=PR»ïJ”¹Xd++ë±Êu²¼Ö)…GŒ°Õö|IÚwÉ Äç}K¾<2?‡‰\/e!ÿ‹lÊ‘ôi?µoµŸ_Aó”ïMúµvV‡´Ûl¹ôvUÝôµ•SÞG‰È^©·¿¤æÔ~ÁR͸ªl¼îØã£È’ÄQöɶÍé €¬cû-ª>ꊚ†&XŠ}G9®|“rÞzuýÏOÁ€ Ä³ý*‡…U¬~UæfnÇ¿Ãrõ&TòÎ%¥K•mÚ®e*ÿtÌSR’@!­t ªƒÙ„ Šæ+8ýÒÆ ÑÈËØ¿ k‘È«µšÄE‚•>¿æ¬È«ËžÕKU‹²…¸.bêçÈk¢Bv:EÇ3ˆvøT›å)q×òí‘V£FÝIjùÙžp~…%×HA¼…þxO¹séfÒ K&6y‘šŠO@}—Ó:ã$¹~~´*pè †'â¢%F­ê•UkR”´”²A–”?O©yë¡ÐôŽTóÈ£E} X2·ªq×]ež´°µÎZèL®9¢?‡øÈ—ímA B}ÙîóÕ’Ñž&2qˆ G+ü´=t˜•­jYÊôYmm{OútŸì¸,R$áê:þ>Eëš®_oß&»GÍ4öÒ?äSx#kQ ‘E˜áí*Ü$U/Ô÷Ì‘ÇxLUñh^–´ì(Õ59‹¬¢ï›ÕfIùÌÓUÆj+,*;ª:µnW“Ç­çµH.Á‘»]y€F“}>ª/ƒŠ§ª§‘’§«ôõÍa"íÇôÌHþ.õQ8¤PD õM§S#­„îͶ^ÙŒ›˜øX2áVâZW uŽXå!f­µ¼¶!O=µ:W8rÐRò/'éÉ’V¤¶²\‹*Gé"ðuØ8S(üV2:i¯¿Á¬Zœ“²Oƒ_®È)`á°Ï)Ùj±3yq¦[šÕ)%¹Ú$°Z‰Ÿ*eÄ«K¥V–mLD”–Ö‚d¤ÜÓýY½¡®™„¢‰'‰«‹kï„ÌD-!ïñœïÙÎ[J²ícì÷ûax¹²yXõ(¤å¸ÐÉLÚk%ÍÞµ¼Hïà¨Q³Èæ\Ó­A-ÁA±ñMµê­ùÚwYò½R†–-ꪰ©ºäÊGö‚ëûÆÕ'ÐJ±T%ñ¨÷¶¹mìK  M‰‰”$S±} ­î#`ÆjzIn’¸=*Ï[9¦ ¢¿³úߺ4sèIÊÞÿ~‚ûï?ào8Åþcúk¦Øù—Óûù…¿•SìÜÙß)vßì_N±û‡¿Á{/ÿéM±{«ÿê{.N±Ç_ôÖþV±»¸ÿŸ†Øù÷ÿCìÿàW¿÷‡þÇÿé±Çþ‹_þÎïrÃ9‚žÊ/~ù»ÜݯýÓ@{nüÔÿ ¯Ý-û[üI¶ÞO?Wê/~ùÿçŸü¡â/ÿŠ_ý¿úÓßüô|#að/ÿÌýòÏþÙOÿÎùåŸýÁŸþêg?‘~ñËßÿÍŸÿ44_3ñ‡ÿôg?Á•ü–}ò—¾ñË/ê/þ毎ëßüûûÓŸöÌOâúÖ_þéáêöOâ‹ÿ‹Ÿþħü×?ý‰Où?ý‰Ûþo~úŸùßþ域ùßýô'îîþô'¾á¿ÿéOÜ×ÿðÓŸ¸‡ÿño"9Àºúåïýì<á_ýì|åÿþ³?ò-ø³?òÁ¿þÙùä?þ™\ŸüöG>ù7ÿþR?þÈýüùÏþÈ÷þÓŸþ˜ø¢þ³?òEÿçßË$ü‘IPvK޵,‰EñÚºd<4ZžèÙ^íºÍ¦ïQ±5í™yŒÇ¾Ik~EZ–ÒÜ©\›g±Tk¤ì¨ŸÞ´ÎÅéxVTk·¡:5 ¢lzy ïšÄã£MÕø^ZþU>LRŠÎO½*°Pô(v0¼Æb9½^êïWÒ—ï΄Sg>žRQä/¥ ù™x¬m§G`%|GÖ¡TÛ²ÊRÚË{xg‘ÁÔ³ƒzãê÷M±ª~XâåªÇÀÇ©ºzÛKK^°¶+æH}“²5Ïš-S9_2¸úoÝ5¨Üâ7Ðê…ºý]êĽ”)xõ™ŒíñlDQj>i–+}E2xíO(ß[m‹‡¯vf×sÝwX pò=1wÒu8¹åDîU¹Ô‘åŸjKk“%&{%ÒW“–óIzÈhŽ_*ÌT­ N¡7ëþz­¥©ÜÉvëÈ7=õŠômM`'Eú˜ŠG+êÿcŠvKîÓ$Vë§k9¡1´i“háÞ{R—ßÙsW]÷[$ø´Õ,É'öWáÒYÊÕ Êevaå+<ûX ©EXÞ‡ïþxœÜ^•©3lÏ«a˜yPµG}Ê35iGúî֔•Á.ÒusåèøŒØuƒUIС„çÉ3Œb)dbWõÕuJߊƒkj¢ì^|øôÍ;Tð×ÈëgÉi°aBÙe‡]ugYÕ—¯GÎRóãû+R¨î*ßã´èx24禆¯ÆË1ÒUŸ•ú²]|49ôñJ1V•Ôyß²TûLC÷4Ö«ÍrÒvPD»–÷bK »&óð~øk R^‡b;Z½$‰Õކñ8ªÂ»¯rÛŒ¼ªæEA¦š¬„§èÌÁv®mÇW߈®…‚­øY·Ê}z:{y ª¯-ÿ%—j Îë8ÙKc'–ïSÈ#Üv¼³cvýŒ~ÜÉ€¯JûÉõò-òæÛ{ÚÚÊè)¹JT¹ìZ„f~ˆí†B†NR­‘Óö¸é’1Fø^—å…k[èäZû–§ôýÕãŠe}K™qHðà Ýçºe Œ—‡ ·½¨©Sw,2渚£“P[EÊG{Ÿ¢à« éR»4òDœpðœØ±Í={8«ô³Ã£ÑSÿµõúqEæÓSì\ËSÅû~äK*ŸøêýÈ>hú2Ôv³ŒW™D1ˆË·æ'ŽhæL`(ê³_»éW9«âö|UÑ]Y»Ê ϼ¬·ê£Îd*Ù¬3÷ï8©§·q)üÙyOgÞÈE=…ÝÙnS“^Âþâ¯?‡Á¢ö¶Óæùz²®ìÏd‡ªËyNß¼±¿WÝ y¥xF·6_ô=ŒzÂ*³jºf«¯BçîeJ¾nGšXÊÎå´â€¢G´$?€Ž"O pGH4…Ì œRó`ÕÌ­:Ssa甆#GàFO߬+oJEqÇÿÓó6¹S•3~õ†)¯0®yñ¹ …~/V‚*%~co£ÀD®¸ƒò,Òå¤᫸ÀjÀnõJò&¦´§JÌIy*ÇÂ&rØÅçòºä]³®‰ðUÛb‚ä«Bb[_¹å. ^™nU‘ÙäIdoéÑ¿SV¾ª¡@û‡é÷‡ï¶àâú쪗—Lø p¨ü5Þ÷œºjj’ú×›.¾Ùð†Ð”L›Á 0’LßäV_K)]9 CBs[‘(ÊvTóµÓ°sì3;ýÐ/z«2¬b¯:¸$s†©˜wLË ú£y²~ò @‹Ø’.PrÖ?ÄÔB=ÒBR¶e3MÐoqäÄÁ¶ ÐÑ3¸F@ÿ xI‚ˆÇ8W¡ 60Ù¨y¢ÿ’m”ꚥØIÖÖA‘$ $H«•^ï¥ù hG’]QX>ȵ$Í­O€zšÇ­â¼ÒN ØAGÙ£E¶ü5UjÍ*óë<ç.!õlýCèÅA–í HŽ*8'ÐLÝÙ ¬‚»kü¦ÙGÐëT·‡âþPWžh¡ìÞÞµ¢òøÞî0OñJ*ùî?u´·'¢@±(C–• 0Å3Õöžƒã ”QšäÑo]é"µ&t%f!óºŸ)z ÝwoÌ$¸bu¢ô)/N‰¨rHW{˜wM%W@x‘¤ †žMI}b¦ÞV.}¯cuÍz‡†ä {ÝÕÊ'5ª9:â÷ ýã@²Y Rä¹#Ò;ÿ¢yVÓûNY =÷%Móå‹~èY{ß±d§@½¤7V°a¡yŽ ^nÊÊÙª¤6 ™(¹4H¤2™GgÄo¤ÖЕvêöä[7rN3l Ú±è,y¢Ø›¥œ`*~‰kŒï>þ·wíKzž¶LÕç`Ѫf\„­7EyñD™‡÷Uºæ/ë«?0Í12wœ¨ª*¨'ðH®AQ”HfÊ/û‹8EÌpæçÙÁjï}îO¯fp–co“Ë¡V‘ó=ìW‡ƒŠ5èUÝ4^·¹“HæéÅd1u× ª®]5qÅDÓÛ#Ü™äKs/¼LÃ`QªyèȤ_7?*ЇàŸ/%^MÝdå°<·FyaëøÉë8~âÒˆÕýnµæSéŸpGánBáÅ(S©œ‹^’p|¯³èUÞ:ï„õ1ÁßrCrþFÍ Ö»€Ò¯CؾldKp=8ì>ßœb§¢Ô"܈†GÄÚ]ÄT–r{z ­c~·´O$@6¨Ê…DÀ2Ö'N"SÿM*~CÏÚ‰œTŠC9ŽG*§î;]«=0ÆC¹£Ì<|GiN+ÜÊÏDå´ØU¬xes€a”sϯ²¹ŽOŽY…)ç J®Ôd’äG&¯Sk¯»:½ªkR=X“`ìyz0µò,´Aªu=ªþ8vw¦Z ÷žÅ^ººNê–âü í©±þ–  ß_{œ,ŽnQ¹žÁwÅ opJ²ü¿U³Ó¢€g¤ƒ¥$i´O\¤CªAeð»QŸý3Nö ’æÓ¥8˜°)5”¯°’p‡Žáx'ÇbV*µ¯Í¼Ø>vëáÁñ…ʽ7Í~5åpnê]A¢˜²° ˆ ±Ls”§´Cu/pЙ'dª‚Quª9 ƒÛúèñE}MbXÚŽcFó–zü’—Ä|ß׫Wuësðº98xÌdI‹¶€¢!lÇ Ò¿m õóf–üý|eMT$ꈬ?"™hÊ¡«ûvä`ê¬Ì°IÞÛógJfct¸úéæ5¼UÑ8›!ÒÄ¿ÀúM˜ú€ÎRëbtªìL·9ßR‹@n ƒú,5¥yx6¿ ‘ËÄKz… : ;`Å3xÑT¾Õ.”`JVœ5µÔuθw’ÙÅ¢l=–Ùœ·SíB÷†Ç2€ÿ£YiÐŽ¢…Ûd­¨H@Ê×E"Pr)ø?²ÕåhÝU=EÀ°L˜â‚œúg«GùY§ÃÉZÍéšÆÌ¼'žó"´JÎ%*ùŠE×¶ã‚À‹î\¿æÌ·Ý¦Gû@¢ u{× \x³ì¤qÙÕº¼9®ã%A‡Š RÔr‹7¡î1ÑL$múSfëw«¥ôi—q)‡'_[?º´E£‹¥Í–ó³O§ØW€,èñÃOè›6éÝèÃó¥|VÀƒÒF]JvN]‰ÆN*RΊ“)€Ù ß±*2×^wã•ñ[ŽB¹úø2€~ŠK_—-SNŸ^åÛ±Á QƒV‡ô;}$WÞ”££á/%A©¾YEo±ëýÎÑý‡e„÷oÕ¬Y¶ïÅÆJÅ]~ÓDNŸmZ5BArCe%R“âëÕab:Å×4¸ãÂÝ\DdÒæé/¼=_%-Éö·ªÃù‡¤z‹J"5Ù¯óŽ-(KïËGž"aX" qvM…Ñ*›£¼[,·éó‘Œúœv+ÁƒL§ƒo—^P²}–™„·^y”'Aá^ÎÈNÓÀÖQÐ%¹5ƒÕ%Uá‰nú`€³õ&u ¹' «H¾ŽÍ#’uô®@ùUÏ!×Þe7DAÇÜH6ªô±ü_uŸÌ—Qå™w~.sI• y«~ÙÁÒÖ”:XpE»wñp?‰t¸”lÝ­¯n·èð9šxëüQW…²r9H°\uV3?Ô4¾’Tß­Éõõ]7=R+(~¼ôK<¯D1„újnqË*ÑÒYÐ<ËÀž’A­A p­¹Ùx(úÃRh.+e?x'^ö®ÌÛ¼¥êL‹¾M|$ÙKí/öê§z¨ŽZp9H¢å×!ðU@`ø..cyÈü¤M^ ˆ©ëòAŠTM„<¾TïåÑê¢0É ðTâ pYíZ¥@Ÿ™¡?4Ê/ÛV“uuÓZßéåLO‘Z—|ÊÊ’»ÛºÈ" ~¼øÎíÞ?ÉžÚSô5T‘LúÜ2%G`“½iÀ=p×'MØÑ9©rÀ§GUÑE¨=ñŒù1ŽÀ–K½žNÕ* FšúE¼mÊq¤3+CÚÙ`€¬u­* •ÅÍ âÒ²~ÈIb"öH¶ªc½w`‹Ê]|†}@G’šòV>dÊ·b¯Ói)¢€mty6ª¢8¯û+ÊÐÑ‹ßpªd–,QRÙ,°÷c²±©×÷3B楳ٓÞJÎ:¬DÅÈûúp^ßä!\SEAÝl°Z£<ðšµÀ&$6ŵխx2Ÿ¯&¨JŒÅ…«Ënø”»½†Î5p>Lóöx@Ô¥ˆQjGáLµ¯±¥~¦`ô³µüâe.6gS¸ —¥KÛx=\KeÀùr0']ÅÍÙ›ç? šçx‚®M…ò)—ROj G^祧Ӵ(æéCƒ¢²ÙÒŸÅÐ ž‚u 4kbuP®xÞ­Å€×½ /w.˸Û%S;?²#¡ÑÙÀ¦®Ð«ä÷êʽí–-ÅK­—¼•[&ùS†(µµ?sR]+°ñ°€šsÙgM~¾e ¨¬¬À+DM°ˆ›&;óË‹2Og¥UŽ0ƒÖ\ï×V¥ƒŽn¹+DçøÕ "‰É_«_VÚˆ)bùMâqüK1_`èç8$e¢Ê†d>1¾Ò‚DPüO­R—2Nv¿šÊ)¶ ÿHaƒ´F’$a[ßÎüpç£[…Ryá †ªÜÙÔš‚ñâ½\Ù(zGÅ8·¢A<ØnªâSíû ¬g¶ºÚ¡Úîçt]ö:$1‰„b~kx»KýƒOÇÏ=lš|Žÿò¼bp7G¿X}<ÀŒ"‹ú±5¥WXœ_UbÌ‘V€×V/f¨ì ª^A ƒNuÝðræŒÍI c“ƒF¹Z¾µ+!_Tqç°%µ§VÉZ¡˜Éûó âQqV_ÄÂ3&‡¼”%~¦ø8ó f¼³ µ)”RÎd*ˆGíø^”T[æ€ç'ªU(eóÉuß ëWåt›¿Î,™Åƒ'ÆR½=ã#°P;+J%²n>Mj¯£°{+J‘G=a•EQU«ÉGî³k¨Ü—cî)áYq½)xpñ+ˆ zÏŽ—{$)ÐÍ$z¯ ÜUV˜P’’‚ùuBüVR¾±7žAèá±îràêŒB‰6|ôÊ‚>í²³ª9ª#@QGWøRm_µÍ¢d{ÅO´¹SÓ³hnL„¹l²YNWÏUãÒr@Môh| `ʪ EÿÐiüŒ¥ø­žm·Ä‡‹\nUí¼å¦]§C?M¾p¨çrS îH5v'‹‚u½¤§Fö—¹ÑQU²³ AbƒÇ4jQau5,ØÞjã‚/µ÷ÁF.ªsSúRu¨N=ö'œ%µ =]SžI jÊF– aŰøh'¼ûgƒÝ¹ƒ.ÁÞ.uuB»¤bpšJÑ¢ŠÚ®ešç°ÎñÞgp²BÝ¿›ít‘´¹;Ç_—þÀÁ¦eè zQMˆùVÞÿfñú©ÄÓo­@Š‹½<ʼnΪ¶Hà½?¨>¥ßÑ[ý€ËÍ¢RÞJ]ŠÖ’NåÔÀWæÙëþZ4DÕîïœÙ)àôS®G!šä|1Ͻ·[ïs­NkK5m¥=îñ#¦¶D8¶¼6M‰iÊ)zÒÄ{'@¿Ù‚‘&uK‰xlÃK»mÅÜÒžb%)‘‹$ÕßAáI(5w[Šƒ^CGòäHº¢%*ÿÙ|UmDmDç²W#[Ŭ£û'±Uñu95JD ÜÎËA|ê|W)N=5åTm½;‰÷s¾A}OP·R;ª*²T<¸Ôr(ޝ¾\;l¥ùþã€7=–£õüÍâ.{(ÙìKñ=–/ùªZhR3-åk«³KA“ô v½Õ'e§Þï-eŠßÆr¬iè@ª’ûEi¯zœÕþ!•ÁN¯Ob1¥œT"µ¼>°¯Ä-¨«RFìsÞgûêê–idÉ*=H´“ý)¿¿=NWR=Áãs—´xõ·ât¥|ÁqÜdåæa¯IÔ™o;»;9Ú"æQ”êéƒÀ-{Ì£QÇê5¦ PÎüâ›H(”¡OòTïÎ 4)tGƒ0€¯¯x¹šxºÛ^dÁ{lkKN-Ì/µ VQO˜BCi¥ÁZÐΞŠ–¡Û™gðè T<ŽèÆ *Þv'y¥€|&†V.M.xמªŠÊ¿lEàÝþ.0JuÏH¶NÌllÏœ t´'‚zl­T÷¥?ÍkÇ0GKoEÉÓ¡*¸m@âvRæ¥Õ™l+ÔÒÔÜ[é»f–5"ᇜ=äQ. RœÅKÓ•}&á4¾Müt÷ øð J ÷õi”þ’´x@ÒàTÌìSr· ah|#Zi#C-œCv½€@<…W‘cÁÁ:úº›Ž®¡w»âŠÚJ>£˜"ÉHÖi‰òl¤ª)üž<ŽÖ-=$È! R\fM¿GœBQÍçø®Fªgªií:Ôò4„PÛM…¨léP€)[ÀJ"ŒÆO]d¶në“®Y– €zÁA¼ý“i~ÔoÄ7ž—‹ C„}Tˆáÿ…¾°š<Õ4çžÚ÷œoÒÓiÌ©7ç<ìRWðMg À¬é§¢€GHŠ…µûÒ߇%ÚÈåÁ~*ù­A]œ7FðÑŠ2‹|ÚNƒ½¢>1¯›} >UÖòp‹šö[ ¶|oNÖ:p ¢Í„U¢x!T—¤ç€¾8Þ6÷Låz³)¢'Jä¶žfÓl r¶ŽÐ¦dÍæ ´>zŠ¿ºˆ:o¿Î\%ÁÑ~óX•\·Œ¦ª¶Îú±ûvš@JåB^@¡ót¸Ñ“¥¼•XµàYH»FÙ'åÒt?ެ+=ÕΩM“^Y)ÉËÅ_m-s‰QC-.ýã.pkŒc€_«kíàð¦p…j…j‡qKï.vÑ´B<Ú?gE'+_¥‚*OÑñ÷mõç\m“òýŠè,?âÅ6á§›¬ëØL©× â¥Œ±æ•$, );›¾ªü@ê*]›î Ö½@Oj&ª œò¶qÎV‡ €!TH{¼(9Z‡®Ø´âü5_SÏë=ªº”¬ºÜÙŽ–Ñý0šÝˆl’&Ï ª0¥ WTq›ÚÍöf”='~5ÕßO=U*â‡[»‡€Fù›ÜrW}ׂÂ: ¢C¹¬r»ªO3ôžžÒ*¥;p^S3ͽƒSî@8r{<7 k"ì¾øÎhï }MJñ³¯H\û= µŸaÃÔ2FTH˜'mR ªAWƒSä*¿¯’"š;bß2p TJdY Pˆ|™ÀJ¹¯›êlÔ>O—Å ýGSÂOϨۙJ–9èô‡3ÐâS’ ÎçÊ6¢x’9±Â:<ÍJô2)¯N"ÕÖã ã‰òQõM6³Óárÿð£ Õ£R•ÕQëUŸ#^ä¼ì¤^ð½fŸT&©1‘·Ëõñ„u8Rü\lD‚ìP0i‘ÝY!ƒ ’† 0JåÛ=c¡¾`EÛǟ݉òÌ•xÌ<¦>‹XçíûqnœkÔoâþ´ISk‹~%…‚Ù£* “вj*;jC%Ãõ‡n®¶Ô~V0µ€‘âVC¿Ki¤^ àF­}<ðмý }Ë”g/VS\î>–=Êùޱ•¤xS‹q|—ºB/.< ³›ŒSŸ:E˜jƒâš´~ŸÏñV"¼<ðZV²À}§2ž[!„^)±ªh¨ÄÚ`3m9ô¤;å°Ù ”zëÀÝŸdžÁË'Ì[+=S$±ðÞ_­dþœ3äÜT ÏR£(–ºšŠÎ5+Ÿs S"±EÒÊc€­CÔd:ÍéD™©’¬¾8ïqÓé[‡“EƽœÇIoƒ‹W`#8§ïÚðÈð£H$¢’Ìó0I ¯JüŠªyòw©íT6¨Ïø-ˆô&a/€}oœ¦¥Ú¢À¤^rW߬§K9D^+…ù×TÙcãÛb¤Öï‡O#¥³ÖÕıkí'ÜuËÖ`‡íÚžä²c¦‹©ËÃes{î¼ :d-Mµº{V ¤ Æ¿+A»¼/bå>Ю9ÞUÑÊÈÆS=HÉe°Õnj@6ýØãé‚ê©—›–Q¶üa©®è>Z­“"l`¶¶õ1Ûü$˜Õì‘ר֮] ö#ëÄj; ”w–åÄÐ[é‰ ™PPÚ>ö-<\QÆU}èUµN’f šé*E‹}{ÙÔßìXR.-Á *?m;Ô$Ûp°~la¨<Û~ÿ2U5UñXýÇ.Ay'›ÞÊ]C_–§ pÙýBrýÅÂbåÙ<“ëÀGDT T°u5åêŠZ° …—Ò—4@µuƒˆ_JåbŸæt‡bïD"ÏgÿÕ:ñù"NÂõ0`†K£»¨\P<¤Eö^¼;>“ˆbRR½%§4BEžn‘’J漚8  TTÌoµ1í°¾›b%±] úeJ[ªœ~øåMåÞã¥Ú9Æ6œŒ]K<èÚ#fe°ºº,7µ‡=‰“§þõÅÓRì $s‡Oæp@…L<,—òN®êñªO"À×Öªc·º&?ÌSÍïUû±<¹©x„MÅu1<ƒÔÎÇž6`ye Èî]g®®K04󤙿,9ªü½%5“J‹B»Ov§ò2e™Ûí§Àó=¨oÒøõ XûYKU¥Tø<ÝR¾¥N[õ`ùr;ëøÍ)(¦ 5¿›Ç÷y®;¨gBꜣ"»¼ñX—JÃ#K‘cäÇÛ6§`¤hW\T†ˆ¿1ð¡ Ђ@==5®ë—üá‘*=Ÿ/7ƶÁ£ÊÇõ±Ï¢Jz“ê=(nö€‘ÖñNñ€ýøFLr€:.jÀÚõ‰¥Û”.Ç9/ð éÒØDß»ÃJ ôÕ]Ö°ýÇWZqP‹- ;iš^ä£,jŽyÌf ÔS{“Ϣ䤻{IJ „DÞê£Ò#»‘‚7Ø72AÖ¸tÐS.Ôž2(;kõ”Î{<šªºèÂÖ™UŸ¨Š]m껽õ¢`‡Á>òâ T#‚ŠoºÐÉäm6FlãÚà1|O¥P.½[«5·ÚiNï½²>À[«‡+¼ÍY`çüXÿè¾ÄÃRQ³œ§ @W4“ëõ~£ßMP·\ "qþEVÕ“”a·ùuwžo½tÖ@Œ§~„€€ cI‡¡&æû€ü&Yêa ƒ©¥+«d{ö¶áb'¯åÚµš!e5»oàñlm%–]ÖO]xRŒúIîÝNÞ/šÒ²_.õ“>U_š¼§o<¼óæ~†]T¨á˜«à¬íÆNЗ蜞2Â%½8Dö÷æ²ÑÉ ¡ÙXê-rê'Ø«±O§<ë8‡ró2BCË×6»*z&bæ‰QÔIù)yFχA{áLGܹۜzA§4W‘ôý¦;˦?Ò«¡ÇÌ „=FÈ}®c½B¼eMo’¾Åõ×˪¤äU ô\%ÙÞPHN…óîàÕfuõtƒl¢:`@h¸y‡ rQÕ[<ÉVræ– éîUàIÕòU?mbPÑùÒú“GàÙ†N€¦'RCvŠÇÝé-uÜÁÍ~/¸¯(º×£d JŸ[Æ“!3’k‘¦Ç=hÈÛgy×°Øy`a‚0¨Ikñ€”ú0i}ä “?£•ɵ¼±Aë­w²‹¨Í¹Y¶)¹D‚.•ˆö´ù·âœd>zÜT®K/VE¾T‰U¸ñÞc±Æ«Ù3-Ø¡¬"ªß.Î ±€4µ-¸¯Nâ ‹ÏʹËQɾ¾Ük™‘£¡4¨‰Ô 1»© _¤jß­i„C|1.ëŠ$èڼǢùN𳂃`?òæµ9Ðz?Û”y> ‰º¶‚÷?gH‚ô,Gù_p®ž±Ï­Õ™†ºãë´èaÍi„»ÀVC ª£Î,J·øÀ“OYéèÇ’S•7à¶jΚÜ?R¹Ê“³ÀßCëþ:“¥U‡jË·n^¤¥W± H£º"{SgiÒÔ4­^N «c­Ç;0æ!€/ß2y3NRÊm‡PqX.¥ÝA³+Ïw»Ãá örõ—tD©Ç§¿ÎË«xkvšò+4¢àTˆm8k*çRxŠÉs¦Þ×U¶VÄž§qSN(óC£^G-æ²½yóæ’ z*Ÿªižy»Øˆ+ç{?!‹‹(náƒÕ>œ½ÝjdmOøV%[H¼m>f5/m¨·#èe¦Á¥>Á:õö(ÛBXÑ×Y¬Ï{—:ßQCé˜,îGöHlÔAæù Q¦fg6Ô‡6(Î6ôªƒ{uñÔ¹Õˆ$Ù^weY&Tˆª¬²jÆ&>zº³Ï4‚œ ÞI䣚•¸jËÝ#•«ë<”¶BúÜš²ãžziî8Éwƒò´™¹ZÑ9ëg ^ª:[­êó]©œs4ê’lÙ«¡š|¾ð¾Õ*"8´¼÷xÕoÏ8Ç!Ù1E…ób‹wê¬Ú& ¼¤rEMílgj×ëKT©0i—¥%-@¨Hm—sM,¥Æóö$Œ²RvuíÈ::O5 >3¼(SÏ ®Ây™1¤Ä‹rTc¿]d˜\Öç›ì¿›ÂîÓì’Â-Mtk/P|³Ã‰uCèÖj¾%²oåo³ÓÐæfб¸ÉùßQävV ÖXQÒ¸ætn¯IÐy# bn+8øjPÞµî¶WÊõMºSe9{¦~dßϱ+z©ÚúèjÞG}ì<×GÞƒnoðò¶ƒ§â2wHÄIÍ}|ïsı?žÁÉ´²4¨H90Hp±ÿTæ©Ê9sxÄjWy­KRvP]…hxiøÝ·¾8Ž‚ÇzPüuDóGÂÓR{‚|æé3kAÖ˜=O@ÓÇ-´‘MÓi(díÕäPè>Z‹Mé R£wôèF¬I½£—ÕæÉîÐòˆx·óü¤^›Áz_³Æ ,vÐIå~Æ‘²l]ª|_–Oòâ$e{€eŽ÷Èf¿Pl%Yc&Tç@AÍ+àá«t©çRµÖ±‡[M}Ö"{;]"¯šwŽz78³‰5¹'”Ú¼Tï׳ÃK·”¬ÿ˜Òùn¤iadG%Ϻ>ÉKÔÒEà£edðdçÝõ¹ø,M F™v“m;Qç°‹YIü%‹›D;íÆÍHôÍÓœŽÀÿ™ö)¾‘êâ‰c¬}(`S¨m^:pB2# W£ÒƒãÿŠm;3óÍËInOWì—/²«™Ì*ç8¦]–çQß°ûÍVyj)zôrÑÑ‘žÒ—Ç~E¿FEšÏÅ“A`/õ²ÅzèÜR–Èjä ®ýqò!؉æ•}O»Dì5©EiáÅÙyA½òQÞ—]FÏÝZÚKÝÒL}‚‡PoŽ6Œ3ñ 9‰‘ СÑÔí\«Fm4K=Ký¯'ê¼#8÷F ÿI,–GK²§i}nO€0û^Òl=|Å å³Jb( d)fx›ÈôÌP¯oØÅÏB>íÁ<í«ÕÆ ©qÏ%Ì8ìé.Z²gÿqœ¡x[f+ÓRõQmèk}Y*|©~f@^8]à{|FÇ ØqŽî¨äŠ7ö~YÛçé½øì|xZc-{mSkUýU_çïj•pÄ:ãJ:¦Q>¶ò€3×ëñÀv$v($C¨_‡5À†ˆ:71µ TV¯?·n0ICŠûûÒVÁéBÝÄ$‚Rh°À$ÖU¯×C Õù–{@ÝOR¤N‹Và]¨O¤£Qî8uǰۖ 6H&Oœ„U–N¥|«D¥•&]"蘑Û%u’Äñ*möÉk3ò*öØ¥!éž„£l(‡w–£ƒ @¬¢ŠEøÆºÀõüá>MJ‰¬¬KŸli0×ç‰ñ>ÇDŠ LÊ¡˜Ðf^[çë×4ä%ªFÙ`õ™Ž$¿Ô=âÙìon¹PÝÊð¯2($ò]ÄöZ‰!r_¢’9÷-B$Dä?µW(­nGaHÓ=°¥=@{Få]혵q’Ƴ¾ÕÕÉ ´ŒfLÖ ç´@ä‡ð(=õGé¥M’½• z•¼µìÓÁøKÅOP¿³)<¶ä“’PJ’ÑÍFÀî« ²xìÕ>É!j=6ˆ­,85 â\äê©Ýõ›Òl\!ÎúXžy\ Ùœz{ìÇQ^¥[þØ´ny=|)æ@óßÔJî(«ERnùêÕEN©;h‹T÷éÆžRófèßúêt%©¤.îUVrtÞ‡u5Iæ á:[DÈäÒ47Ç4Õ!¬âOR´²UÛ²‹8\*Š’#<ã!{lU;u5öùEb¬#ÑyV8¸FÇtí¼„£#…ÑÎ@vÖ(?nb`‹Ò9„:#·‚ÁéìùÌWðD”ãb¸£fg;È\ŸvN)(çÙ)Èuk ¡N—4§tÖd/T–.…•+-Ú9Zõ„¤^+IÆ»ëÔBŸá„S,µžª6’¢øs©~C±ÔRFGY=,ÎŽÔ<”P:š:JN¼‘Rõü¹“fÑ3óð’õî‡{·ÿ³x,lÄÖx>FÙ~Ž6–ûUj¡J}/0Ç!´J7÷eÌÈnÛíŽ tY¼€©,ÜtØcÚÚ`o(˜îZš\Ý©9³òj牨 - ʦgЦê9ÑÓö8þ“ˆè‹ôNùŸœ—`}&ý¿m k±æc‹úÅÌÆmUëoân)ê¶!M: E—Þjd5¾™Ÿ´Ã>ö ãuF‘›Éž—ÛH¤’mävUÄ ,‹²îRý0¨¨êµl•­+ð½m`:¯±©ü;¸Äi Ûa4-U8N,$I¬mŒe^2“ìqõ0³yoœÁF‡Ú¶ûºfÃGuêI;ðnóc±ÌøUNC]¾I¾óÝÃ1õ\yàÚdR¬ó Tm¹ÈÓRoÛ÷’½_‡“ã]þ²—‹PV ˜ç©…÷éU‡T¥ lê~}Ç+,Ê*³¹œ% °XÏÌp¨ª3­ ßËs•}sô“õ¹½$za„¨róÅÅi·¦ñ¯L– õ®KŒ%ÊÿÎ꩘Zº9SN\Ç‹·Ä t4Œ/§J’êçŠ sé…°HºN}U‡§€ÉnBa/¨©”*ÏÒnT÷¸ŒíÚH~EÖG—öo©¥ýï{NUíÊZ,Ù/U-^b¾æŒFþ«í£$N¬É®åø¼Xõ‘Z\c(y;ºš°Ñ1¸\T•$r[³Í#(=ó0tªôì`ˆPF2x´Â­—ýS“YÞQŽ7q×DŸl’ T-·ù•36X›3ï=]˹³ú•9U%à•ræ #!摨͋T\,jRÿ’6x»²ÿO~Á]—N—R£”hí‹Lûê.=¨ðÎe›•Ûiº?íI©h^ˆÃ.´çY—nžòu {Ú €»•Ø4Ë{Ò¹Åýx4¥ß˜³Q<>Y?J÷—n| vqÔ¹*Ñø GËóéN#µ<•›ÍxdïðÜ¥=lWÔEIň±Ià±8®ÒÒ§€¡‚µŠ\ñâôä¦r'ö\Ö¾,zým¦‹ÚµžÙãW,wœiVUŸŠƒÿM—,¦ÒQ}²z Œ•ŧV›´’©Ñ¦“‹ÝG›È!ùh/`£þWúÅ£ÆyiÙOäîß<Ç•Íu}*9Ϫ`ìr'y«Õa<âvi—4ß©–«zÉ$îô=­œµ;­.¦ä´mÕ £M‹É(§/ðçÒ rg°œ] P­?™Áɧ LæWIdÃ|´JI;¥å„euè³>Íñv ìZ-ש³—{jEæ÷Íríß"©ê0øâ5)=ûZ%n¼¾5¨‹ŽÄçm˜”%SŠÕÓÑ™`ÿ<Ÿeé}½J¸½6[›‡Æ¥SÕõl_ŠrCa²ØeßÅÇ®^Æ£Z  ¿ë:ǃ ƒÖ[‘QÅ䶈&9ÛÉQ¤RIÜG;ÝËV$V®À˜‹kM—’@µI² °ÝZ(ƒl›úÅD^¦Go ˜zT²¦" ò•Å;ÒWžâ¬Ûå´Fó(Ï×¥æezÞ¤µÁcJêÊ!€í4&Ñ‚„ð:ï\©Õ¾e êØ`Í&· «Ë&¶Ëÿø1“ ÞÙ Ï™Ç/LkóÈu~*§gËŠŽR° [2‘!\¨%Š*¢\ÏÖ&b]v!A ZiL÷-ažUzœ3+©Ç¹ìŠ*]ħj¹@ȾpÕç¤iuسª¥öI¯6oYú ?çf¾Ïáž>Š.Ð]º½Ž”€êË#P¥–;„šS!£C¹’™f?V »£¦:³\†é}-Ýo=vîéu‘?©áYôßÑúràÂM¤;—ãxAEˆ‘^=Su¤<>¾ŸÇ÷i“½œ–Gò¨ØlÇ%„U!Îã½#]1ÄzÌóڕ‘X¨sƒ D’¦D0‘®Áñ¤O‚6·zã²o;íª&›qðÂ{—fAêð/ Tf3nú{¯ð^œÍ]4_;ùúñwaWhÛP c(xÇþ”ìî´Fäwð¤DYÉÅWbj³ŠQ:×U™±mç!Æfû¦g¢{ø¨MÄe¯ƒ™©“"ñø~¯¶k#ï‡ÓÁGUv€y€›h'=UfÏ£–ÁG¤pŸ4°9u ;þ"‘ƒA†¶« ˜~Ú™½©L V÷iüÄuº‹GE÷ñJÁ€$¥‹·uÔc$©dÌvJ¬õ|jÄ'7”’2É2Oö (0ÀƒÖn Æ ¤á¼s—»H\JP¼š<òëúˆG(‹`m×ÞÏw´¡,6‰•è‰UJm’ª¤žQ]Ã@|E>8½“i€MóÝ·ÇÐç¥K²ÆÂ½÷y‹zÞh²¢icO: §bO\ »#Åv*â~tØßûlF¢SzRVåÞÔÈúh^Ë O€¨¬“cN—Ö¤ÿÎk‹¿ŒÍýðp KÙ ©ù¸Ùî²pÛub/ÍøA>ü´ŒüZßÓæ%ÑÙÊ¥Ò¢:kbË @“T±´™Teáyà©SSrr)µdh,Õ¥…ל®ÖÉKQ¬ë“òªd·T äÜx>QÀUâ ³o6ÈwpÖ:×ëáôØ54ñêÒ| ÙÎ.:hB½ØÆãÀ× €sê¸Yd”ÃÆ›]þ¥NÚ¼¢Äªuæ[Iv¾¥xÔè”þ瑞؟üfÓIU‡ãª5AØ*‹/¶ E׈jK¯ÃgrÒDOŸ—,Eò,š[ÔHƒúX%yÌžýQ¬ÉÅìì Kö•ebªÒkÄkˆtx•!^Å[,¤’²ÎÜÛ<,ª[*–ôÜâ[Î@>ŠÏäûvž'žÈzë¥ìh·c¤NÉWqT÷&^©yæÞ{mãiˆÐ[Tã%ÅÞIˆAáçßÿýüM’Ã_k’þÍ&Éáo­Irø»b’~n’þF&Éù?E“äð¯™$— IrÐ2µÿ-wIÿ—äð÷.É?¹$Ç_üò÷ÿgö³úÿôGíˆæ‘[üáŸýóý‹_þÞoˆ—¿ýíÏþòßÍw™¿û'þ›?ûÕïý£_ÿé_ñ3ÎÏ/~ù'¿úSâÈŸý[\šsÿ—ŸñW?€•þË?!šýã_ÿê÷ö·ñ_þí¿òÃÜðïüÖøíýô—ÜöŸüúÏûïé}Ÿ ÿÃßüÌGš{ùí¯ç·ðÿ±i´öÄ¿ú§?»ÖÝFºr©ÿø~!Í{þõo~öKÝùã?ü«{ë¹üOþüw~ý7q¤æ;æ¿›?5ßòŸýô'Áþ×yWsóÿåOâZþ«ÿŸøZ7¾ýúéO|ûÿüÓŸøöÿå§?ñíÿëOž×|ûÿöÓŸxÿèOçwÿèWöWxO?í¨¿úù/ᯮýîªþÃ?ýÝ?ÿãßÿõ¯þùûmê_ïÆÍ·ÿÁ_oÎͳú?~öG®éþYwsUò³?rUÿä?б·ðŸý;ø|ÿø#Wõ/~öG®ŠXÿ‘ãï­Àÿ.X¿­vþiåf»êÝï'ñæî·;¬öt» ²cbúC{Ž\ÊQÚ`ñ0ž®בÅàj¼[ÏÙûœKÑè\¦/z†—w]¶R]?žònͦâ!ï­åjWJgþ+|Ž f¹JFpQCsð±eNzô!ë–GS^+×ãì[.‡ó²oÊö)ŸÝGø~HÃzûyÂ÷¸èž:æ_{v޶iÂ9ôÑÎ[+díDš' ó(Äy]ÏþžªVÏÙ¹NÝj¿Ñ>}ˆµÉÑØ7Ý×<¾GúZ‡ÑäÃ{Þ¶œèPu«©•¿¨Û—T3å/ÕÐïÏ—ºS¹TRô´Ñ† ú;v`·.^j¹ÊE䕱 Txè°ûÜVÙ3Ÿ±p5ß¼JT“ÂÑ–W5òü†Zïøhfû)­Så–5¢v9šnÕ'Þ­^:7c4Ñ*Ëy»¿‡ÿQ£o娆šæŽ5k÷vÖÕÍάÜY“Ž®¡oÆP[â éq¤ôK\W,6(%iϧ迩îÿ,Oä=©ÃRìï5—{¯ ºø iVPyäȪºmë¥ÕËeµÞN¨*èt4¹C]¦/‰Qo.Ï}¼Ÿ{×Ä.—æU'*ÄO›–žBŽG·áväɞݎ}%u£BÿBq‹ÞåÛoÒÎBJi(ž³Æ>ö|q?¨Šv«[có;±åô×î«úæÓ«W±àÎáYEý5ç­ïÜÊúT¦U»`Lœ4î¿ó•jÓ)+5¶µþ :q{|š†@MW0EœíqE8Èò›ÕhÜ¥ÇËù*n]yå\ú’Z ÑH¥b»î]}7¡V €KŒíÁœŠêD³Ò^6­ZÁl"ùÏ\’NŽQŠ7»Ï£ÒqH“c™<" J[ð%fzܤªY²-¾ïij|æi[s2Íc¢¶öSÇÔIrRßø.{„\zµk·u9‡¬eAþ¦›…Ý ‰è‡•¦Lº¦Çвh—æù~{•(aûÚ¯î¡ÝÊzH[Ì¡Ëjçå$çâ¶Êþ÷Zð”CÁï—Tqè¼cÙ 1TËü<@ÝE^~+‡°ÕZ3XŸQø®u±ŠË·ôVrðÅÛ&è·÷mmÐÛ®1ùÑN?—f”—*ÆŽ¾·>y<.×![^¯&ÇíQ½Þ¨.` ‚är¿Ív´ŒQµ&ßX¿gpÕŸ\Û›wÔÙû*ËSYíqo¾õE$ÙÆöDO/¥Ÿ×Úò˜¯>?"$Iã˞Ō‹„ò¼Jñ;j‘TÊÖm–'Ækÿ”¬Uöû.i/¬Çî4ÝpP÷6Rȵö0T>—$ðòclJ±ÐÚ¡]çw7¶½§¡c÷rX"w{×Å£‹§8< Ó>‡|µw;†ìrϹù¸¥¦³2<šV’ËÉ ’בxóÈóòêˆ|Z÷ðÊoä÷Ë0ÇP4œÝÄR| ¬‘Êocï¯ËõÕÛwN$ÈB·²ö<- mAB•"ƒ½¸‚NS#¿U×öK Nðól/ß zqJìyÆÍý{¼£Y®ä.¸&oŽÊßr^õÒ€âÖÃÃnV=yÜöà=ËYïZš÷ЬÝÉÛŠ—ø½×ÜêØ3× ^vqµy覴Hú”=ŽKe>¢9ánÕYœùæ·Øy ZÖ¶ï%ðWïPwY±]¾V×T^—žæt´úãËuÁŒjd×¶OCÍÌ}$0ÎÔ€ÑS*ó#®0Yk°Íe»øÉ¶ÓÃHÞ§²%Þ Œ:ÎÙ„ZýF£Òµý·stÉ Y#"©¦¹ERµg6Aäê!\žŸ¢wSVo5-_L@»}K]UòñÜI#ÆvüVªž%:v­3Xq²gï;meR:‘^óæ¡r©Ñ!u‰hÚ“j‰Ä‹µ^\í”Ûõ AG¾Wyuñî£ë¨<ñâ½ßI‚¬’ÃÞ ¬f/ð…ì¡ÎE9•<®.È!dž«Ü*èéOÏfLu* vð!Õ‘h)àONÑ y‡é@Œö’žE T†ƒúÜ¢ÈFh­µˆîÙ›Ú}.eq_e Tê¬ú ²Ä½š·k—‘äÌ•ªKh’+§ÑñŠ›Üß}*™BD•_›ôã]7åÝô×[GõMŪ"?Y³Ë©Œ40˜ØîÙÙcmnsI7ºeÆ';oÀÞJoÑÅŽgá9T“Öœ…œš2tÙý»H¹@ùü•Žâiz9GØÚ„.e>'_ˆ-S‘ÈÙ½(â~V–&^¯È,Ü#¯ï™[fAW®WÑNb†¼Ý@C¬ZÊé$5Ë.óÁò¿Ê;uÄM7Îý Ï¢¼R¯ã5a°{œg}†}u(}ÙT8VÌq{4ýÃÒŠZ!kÔù´æ´=XîÇÅÙiCL@äî íÖ\®]ÊǨžî„¨g擱'hIkÈR‚'åæ<Á§¶õT©îQýy¯KQô7¼UY¾- ’Þv"ÂñbÅÍUýØ”õýP@%$[õj¥«wkG}G$—DùŸÄB¶‹ Ãùõƒ(áÕ†Ak?âAQûYñBÂÑÜÒ…š`Å¿IŽxFþä´U½Ö›æëda ÙÀåÜý‡à²ï»ùãŠìX½Äòon°öxHxµ¸e… ‘tbèr.ôq¥%ý^y\v„XæD`=ë°‰ ÇÉÊcFYUòÔ>ˆøx9Ù ”>ù”ÃKnü+w÷*ûîÜ)›T£¤yxƒ¨‰È©(&à(’?E"¿Dv„ñ ~ÒS¢Ë¥|Û+'ŒG)¯—47T¿Ô³ ê&’ö.Åë§ÎhVÀà*uyÙªÔ<èøƒ¡¾ßãÖEújªÓV¸„铺ÔpÒgT7™ãߥš·ÓÌÄ·z´5fæºoí9= ÏijGqR>J?¹‹ïÈÊÂóV(”ÅqGyÛEµíq à‡?*;'ë §HŸƒ³Gçq^r#êAubÐÙœ×`÷¨M •Àt¨|3(­MÍúåP¿nÔ…Š…°þÉrŠ…šv‚ ôlŠü/WT‚ËxŽô)øCR5!ºëÒÚÆsy)ìqe—XÑY.éóÅ×TÂÍÉZˆ[ÂPi*Çö4ÈF‚÷ÝäÞ¼0}ªÖë Áˆpâ|eÕwšGŠN+Îx†þß׃2_%#à·u;{À;$@rƒ—>?®b„0"Ÿ´p‚X{¨/ÉF|2ËýÒí‚%y‚¹«–´@q-Ý«ŽÝœîidu½·‚Òl︃v‰‰ Gƒ#ö«€¢±¡ïqV ÜóîÖ»BsŒ¢½ÇM1+ûåjÏXE&]à­·ª »÷h Ê4™º|P¾6¹TB³ö…dU‘K^žÁ}¿6’ÍÊ0± Á+UêÿG*©•Ãݦ·OšP¤ï)ÅìXaWYÃVÀù2Â.EfÑ:xÊV®©ìs¸£~ªàSbÒ55à9.§»5$‚.7¹¾ÎXbjuïX, O]¼Wû FQùF•Á¸nU#‰©›‡«èDOêP¬ž³ZËâ¯CˆòHZ¤fˆv²Vl“f_Ãy•Á3vÊÐ,}«U€øŸ‹R’‡“¬jnÌ­k- l—3 ©v™Ê¿]Úd½K0/ó!±Æ$l‘Ì5x'+½3úA׃íÊLf 4çsRý¨.²”åt$š´”L#¼,^wßÕѳð|Î@A$å¼Ô¦Óz®“JÌúCw$k q¤ƒŽP5(x ”º\gνðZÈA£[5b$P5ýêÔÞ’á¤js^“¥U©Þ¨]Ø}mk#isM£j;e\.ÜXa,¯åÙz¨èdn©¦™ë£|ËMÙg¡áD¶RéäBÖÍcñßñ>;殾¿«SRZyóÒµ½Ð œ ãº[?pdݽ^ò³"—¢×#éìèLP3dÕ¾ [; Aù2Å÷’ŒÂï*³ªLÍEÏbWJ^¹ó¬ðÅ-w‘g»Ÿ‡è£œ‰V%願éûÒi9©Ì‡|zAJ¤ç= všÆH¼<‚±ƒ¢rÂT•ðÒQ×kƒâލ,gˆžMÄÙ§á8¡}G6@öÈ@ØÏ‘æýªúLê¶„áB!ù&Iˆ5KÿŽpí¤å—⡊±O‚¢#`ø¥ÊÃ8L­[Û¤¡.]U-A/úÍ)ÇøHéÉfEÛWœu©I¦¬g_¤©tü:Sæ´óLÜ>Õ 5üÍKl‚Õi–_OÊ5Qã.Š×¨?¢Ä6_"µ™F|™~:Ä;p]ÍÅÁª„,Ñ•9xšZ[½Ò¨[ã|¹žálvn¦4{ˆ¡É—°5!=¬óg:cé"KZ—è¾p}*§©-ª„V ÚË™÷:VÓkY®tŠ2釳’´mö³6^¾A?uþ‹9I©{-ð’ëXû´W Ñö‘a Ò0„Dz¤³«%ÚªÎ$ƒâ»hÕpÔ ›åôœUmC·Ø®~ZOg´%“QJáÝ·®e íòµHŪF-‡ª=WÙQ×Çîø# Í©oã•Óyoñ¾àá¨Ç;9îf/Pc½½¢3Â#U³ [ïr²ßcƒFÈ ­‚X²ÏKlÛªT„‡ÚA˜§(ò°b!¦O¿ävU1¼iø:L)§À Å,Ð¥³ž¨Ï>1╜$!U/§Î†&}ϧ$œ¬x0ÀP…Âzý{:FY•ÉQ–_×Ûlåƒ@ÉýQÓÑi2¡ÍÄíîcÛzÚbŸqP e´EE_¥¡l…-þGkää?UD9>…D•ì)¤Y8úÚh¨"°¼;S~š8®ûJz†$iìl.@ ñ¼jᬯ…³ÇE$Æn{ÁwdëÜmÁª¤’øÞ÷ZâªéQÐaì²´£»?¥†£^Ìš>«Àvìuå°féÊz.çrƒ•7©eªÃÎ̶ÈRŠYÒU2¾®]+¼¼£bªøÙ*_q×KãG-÷¸q$1ƒ7b%v¨!î) ™Æ àf–z¿8 ` ›¸t×ðÁ‚ÔëQ +}~Æ@ï·òNÒëå’êdÑç,ÅJ­^Æ!ày‰¬uÑOÐ@ÿ'²°G v@¨œŠ³±@=vO“ÆJ×Q]~ÕWàžiêªSÆ4Ó+ÄSe&¿7«áD}¤´ü"˜ûMù:ö\¼Nêú”ŒP0>%íÞ—BF;Ü—g_ìgÕœje)ö‹÷À * |NÄÏ»HbJ©*çþgC… ¼&ÛŒèÌÜìöÇ5òq”Ù*1I¹·‡ë°Î§’ ÔáÂÖu=%N–`ý¸-2Çßûòø.Oᨾní©ÆÙÃß D¦Á:OîLGn©JˆoJ\—ãda»é»æ&T݉ý,x±0ù›ÂçÜ‚*—kÚ¦CðÊ•JÔ×Õ‰Óý¯Ú¨$>Å*lyêÜì@n)ô[õ•¾¶ƒ€ ·;hÏOž–E¿>„B{ýhsÁbOUõ¥£®õNµŸë"ÀÑ“À´B¶û»ú|ÍUEr;}`¼Iü~ÕnRvM RäRÊ$êBâVœê0åÉBŠÀçP´Ú›êmÖªÿµº’¬==ÐìèR‹Gõj4È$\T%¬·¡'^Îóò»£J@ºIøŒáG&~•eˆšqO'å‹éÝAÐû;ƒpÂÞMÕvRxTxÿÔx¥×M ƒ©x?Zp=y‘‘]ÚíôêN})!ë"žÅ6jW¢*¢´ñ~J~$ï€7ä=“"?Ôk°¼?»ˆíÉs.ädfj^¥õƒÒ!¤{¥Iú¡´Œ„”F¶KKÙ¥Cã$*g^38M„B¼·ùü•«]‚¹Û@¾ä½õ#œF9¨[üvæÚ.[Ü\'Á«Œsôð‚×Ù–åK0KùHºÖóÔÔI™¬©óÓy ÞIõþè>Ê l­òYÔ½ETëp†‡´Éc-–oÂ6!bºeÍ?ÀÂu›€n§ç†æª…:OˆÄ2Mú¯;¯—‡ss„v¾‚À—=Ó¹›r»¦K…Y¶çzäÖ³DO‰·Ò)"øu;D ý±ï+ |,íý¨/êÌ'SP½Ë2îò˜Ò±¨yY^l؃å=³xç3¸ðV©Z­ ³—ã]Tý”Ìj©,W'Ë?y`&âõÐãë 9ê1Ëîäé0‡±ÒÈ~±¬@’,Þe’~,)§ˆN<åª éNÊ-EÇP©ýŽûô[•YÇßæ*~±r¶K=çÛw8ðŽ¢…A÷ä¨Òý@q®À¢YÙñЧ?Ûr®?º Ú` 4»ˆLÈuöI(iGv‚mü8PĺsÎÂYNª‹ýÑ0õÚÜ/æ³Ñ׮߶ê\Ts–µ-ðë¼×Lò(ºT=„õ—ëÏ*ÁST7v‹SȦpЧ=Š>G* ëØö©|+³¿€X%\<gŠ1!ꨖz6 EI”¤ãxAf~±I¦¢HSrrSO^]Þ/x äI KðS‡l{L ›çÔywõ¯à¹*,BzÖÒÉ„MP¥ÄÔöö‹©_×5*IA3œeÅ㡈FéI% Æ À¦V³'§(|?¢íCˬîxÈu¼r|iLjK9(á-f”GìYXýèv¬¤ZðŠy_M¿YMþH(ãtU•YæÞd•ÔßçÑÅI#×å9õÈZ<*>çTÔ`ýè#yb¾omD„·ïï¥ðË>SôS¾žb >ì³AO[E¾œ— Gn²Ðm#P“ijæÓEé¤= ¢’Zy~ <c\¸Œ{—MˆtÇ@ OÓ_aÞ°×!ˆ¥ØŽº& ~h«0-j Žv¿˜)‡'{ÎÑì÷»(¢èKNy$—6Y¼Nزí§–‡÷Y¶óI"*🡘1Å<ñî Vú­L¶ Ð?NT„¶¢H8¢=ºÆ°âÀJßtæø­—‚Š ~Þ+¥¤Ý %zPÄmíkžÒÉ)¨=ö)$¬v«G,¥.]£„á¦Q- §Â{\‡Ç™gEI¼¦w”þ*ØPV<ÊD‡O+ âÅ ñ&ºF,Ù¢”¯!5qËä`YôuÔm¾y,gâ”@åv‡ƒìåU¦r²·h»©‡øyWK…’&#Nj’0å¤Ì¨øl€æqü.:õ‘³27¿ølp]МV‘ú)á.’×F<ÚNF !aêûZDX 0V­(ë ²(ç8©õÇûЇVó|Ÿ`ÍÛ%j*{;@S]­ªc þ––…ܼ­1ïpü±*µ~!÷Ì×rªfEÞÔá]ý:ÖУ†ÞÞ?áÓ/ëfuS¤—>©|†ÉQËdë©vN˜¸6”dnh’ .¤.§ ¬Ûn=Kà¹F6j·ýuK:0« ‹ö# Y@ÞsÔ1‡mñP&(2Ò–¿rhª‚°>ýHe?ê¼7í6ðVö{\‹†|Ï=øï|„ŽÖl¬*ßWBaK–”A+4¤¢%tßŧ;÷»íPßS>c)Ô¥™O­ /g\¦âÝ˱”¶zÕzͪË· t”hìaOç»JØÊ®³èKQŸ­mK#>Sù)s$ØG”Ö•€=ÜmnDmí0å×Åæ¡üMÝtoôÐÛžIò F=²§tM’$5…‚ã ÐIʉ²PÂTû¢kV0ò'7m`‹K Þ$uaSF’“EÍ`LTDœ5«ª2¦Vr=yˆ7Ér;@a‡ÝsÈaüs¢7µ‘(è,Ë–ž&ê=(&óÚ{Û—6 Ï9³²E1AºR›Ú6ðh «‚»H‡<‚ A*)™CÊ¿´Ñ=x÷)¦§WÀÇþÖP²eí進fx!}ü¨ÈŸÃoióR¥'©Õý¨2ÓXô¾I_笪嚪ʧSó?Š|µÚ”ßúE€4"4é<)•fÖ3Ô>\Ò›@ªMv5¨Ö¦C3¹xêÆÿá:x5—Øp*MM²#pxÛå¿øö O‘Ç=­.ü,bÿ1c©ól\±.$ž±Ù8 ’/Ï×ð(”¡¤f]=¶euë®Å†ÖõW#—Ÿvñ ô/ °¥³èIìÆª‡¸œ¼¢´_z¼Q»Æ‡Êpë()JUÿ‹Ç¡UáGÊc…5^} ¢lYO6’Âú©ESÁâ[K\VÎó~%8‚útÝQŸk½„EIÞ6#Ð" DRרJô>ì vÇL²„x •º-FYŸÒß÷ÑØ~´%6pòЉòEµ4¶CmJ8=?J¸–Æd›NÒÆX‘Ýõw|ÐÛ´~ÓpanjJÍ`’,\¡ZZ—ê§Ä<•'©Tß!Èò“ÓîÓ³“øX>J‚syË<ÃN€2B%·øòTlއ¨—ÞîôŒ.ÉÒü†rOT¹[þÜÂmzÖÏN`ƒ?aÔm²°»¸.ƒ÷=~J.@é® òÖ'*é q|Ô–ºÒÁÓ¾%žÀ¤¶±w;:³<*Çù·1ÀÄT?Ù_ wi»ßdg}î¢ë„¸±ªJ²¯êWQ³¯¶•柅b阒¯$½M1÷V…B ¨û9XÁ^„Å^È®Àä }´Bßd€Gn{׎ø‰ªrf#ð=_?|³È8/¨g–£Ë®Û ï¥ëÃWƒm-Wç3õÑ2±I$ 6‡HmªÖT¸Ù’]ŽíÊmC Û ˆo20¹RÜÔù,*œ—÷Ø.¹r§ºæoB¢rd>}IgÓþ™§®ø¶ÒÖR\tïÝ6’¨ùÊhHÊDÙ!nI`An3 QKØ`M¹aVšê$i¢£èГ‚+œ³ÆˆÂ±«aéü‚.¡º¦ Rb£ªçbôn¬ÅžáP‚øk[W3‘ àå}Û{ìÒ çT¢zõ¥;Iê[|ƒ@6@”]oáô]:ÌEvj“ÎKVXb*„Å;³ûÐ<žýØÒ·V I)ô ú È™ÔÎáö\²lƒ©½%ÞToÖ¬?‹­Â!©ÒšØþ«‰FÑ[ø¾špQ1[ü—Çuü¬êMK߬@ÙǞ͡ÉÝáUê_mb"Eº”ôR#ÑÙÓnkÜÆD#8FJôvóD¢°pˆ¸PøòYÛ÷í¤Íe´Ù•{ñ|òªz°ªiÇ9'¨žH'cã ³¨í´å…ð‡ŽZ´.â1o¸n­^ŽÝÌ:jVDP9œJ² Õ=²tb¹n|j;“ÝRÁ¦8W·òñ™mÜœøšB4Ï&k .Üs­‹Ï3ªêß©H6l&öÍp­«×ª84ÕÃÑ,¡ZXë®æŽf¦ýVƒP÷‰slÌê4±ÿ9ŽjOݵ¨OU™D:S^â!ß“Š`]@ÉO l@¦Òo/ÑYÔlí|ÉD¶P}€[¶‡›”•Cn<,Và Ë©S}S¸v²#yW¯"·Iö04(ÍîÃÖŠ}K[%½¢¬^ŸîrãŽk  EèfÞ$/ý¶¤ì²Õ´›*i6ÅÃoÖPwÊDã¹Ãó]@o~9w+Þèo3ô’=õ o' GÖät>Œ jMJîáÔ“¤‰åvfIò~–Ä0ºVó7A×])¨z,ØŒ«ºg²Œ«…»¥cÎ]¬¢¢ö…™5u¬šëà£ë“î‹À?}ùZÕ~|kùO¼À *+äÚ(µ—zçÎFH «^N—ÿsà€[¤/Hs̺ª€î¸0UÂáÅuUÓ«n7[^f%Ûî–âG™ÌÖŸ¶AäVp·0ì ‹#žv&¡îXÿþ‹N¿Í F§dŸ[`I¼M‚#ïi¾›cxì!¢ž g·où»Ú׃«XÇ(H“t»&:]¯çÞ|Ô‘û›ºjhzÏåÝÒåœö *g¤·ðë¤.gýöœ0RpLª2P¯ckʶ.fëöçY˜»h_ùi•ÆŠŽüæðí3§ûœsµ‹"U7{ê‚2ÿÿÖ<Ä×ñ°Ùy9t ަ#Å¿ŒÓãWÔ%‡k]^xujò“£~{\ÔjI&‹oÅTÍô%öЫS§ö÷ÖÏ)ȼÐ2Cn¿EîÜ´²Kœà7'é…* 8w/ž;³ ×¶CEuF¾wÂ-ë/½k·‹DéÌB#¨N­‡Øìão RYJñ*ZO¹»¢³Ý† ¯HýØ[ǃš¶ÖDT:ZËÈn@€}f…©i/"Ùñé6u…ˆB³ÈV,z; ‡Üä`§‚ÌT#­ŽY/ñ+,ý¾Ô僿ä²Áâ*ö9Åáí”S]èÙ–|»ÖfV׺(ä}R/÷šÎ£ÉZÕÂ,ߣ;žõê¬&1B°>¤>žÓ1ÌÛÅd­|©ÉìAðÙ â!`¨Ü ™Át·^£B«0|‰B„áá FWsî0œÞ~¼Æ ™¼I^—§8‰4¹©æã3t´ÎKr{#ásÒñ£˜RžX êM-eàU;)¶·»±c{q>£·I'ÛxÀø•+•ZüÄÞbcÛO Yµ€=Å̵Ûg¼òÖµâ±ßMQvF²¢ÔØ¢D(q Lé9‚’ÐÞè”雵’z QŽÊ±/‚*×ÏØÚ0öKûÅuø΄8eÔõýZÇTÎIõÛJnØ ¯ót¶‡.w'9¾|9ºm*?/(T·çÖ uzÆNî'ýÅcÏÙÕNø ÿ’åbí6Ç^݈º7ç!à¬X",«+Kš½®H;omÚS- x_1•úPôÙÑmÍ.Kýx°%/z= ô²ò×]{7hè@u»¤oBÿ]ÓÖ*µòØÔ攄^t`÷ ÀU£pP=¡›p‹jº÷•„Ø(*Ó‹“'¬Tk…Û†0•i¢ÌÏžÒó†@åS£û êhìñu¨írȃØ[ÚÁ²½{gpÁ½øØvv‚áŸJ± û‚‰?*¶ ª‰‚~EÇn'+–Çe©ž¯ÍÃÖÕŒåÜåõº%.~bñvsvþÿ.gb×KàÊýÌð;9Á³R¿r†¶ä’VäW+›U³ÚU´“ÿ$J̦­­i%;ñv|+) ca••{Q#¿R©µ_ïÀðÀß®ø­²ý2«(=1äÛ¡[«gƒS£…pF£Ó°ÌÒrž‰‡ÍâU5éžq&Þ¶¢S6ÏâɳCG?"D£ MÊ'óæ‘J¨*È>•àÁ£0[˜Žfó›¦Ó @¯W¼84yôV'›«†"‰Zé‹}}\¼ƒ Ä9Kå ÔÅßIAvB"Q<ûÞ‚@¢‚LÑâl/IÉí¿àu數ŠÂZøhÎxºO\U7~YµÙ©ïw|ǦaSÞ\öŠ=Aâ{²RU[’à-–9ÝèÛ)-ÅòÔ—»ðÛåíx½¤qu´©/Ú†q(^ ,œ4×ÒÐØ‘q á‰"=9ˆ±%¾Pº®žH,Çq¨WªYÝr×Èr&t€¹Œí{[juóì‡+Ø—©\‹Ü¸Ô.2»F#¬Åîù P—t·ÛÏÃä,ËÕ¬» U O#Ó{^²·+ÖSµ¨˜ àû^¸·E‰X:´…ÇÓh‹9v( ‰zF»ñ‚¢/Æ‘»«öÝ y‰š|á{Kþtr”PFˆÒÑꯒ1µêö•—$YÏ%“eúm+ ØŽ•ÞÝ¡¬mŸ]• ÞãÔ=T/AAá‹·5ÝȘ¦¿@ÎÕ*±:Á%”ø%žÒ{dä0 |e=CH½@<'Dš¼b•@ýJ–‘Ž)j?m<µ™"hÄ©©†€j NwàÙ#ÕÁ'» yfÄjwF­ôÒJ#%«œ*¤õ€êTÈÆhU(–;yrÅ݇Wò?ßOFM'»‚!)ŽˆŠS8µˆÁ¦lUôˆ…ÿ°0Ú*þ4•á>ÆlSù—¬§ÏwçNE2óqºR`l^¤ÜOº÷{GÐÕ¢pd«§}œ›¨sƒžÐ1--(¼žò¶Øwä…)“‚48÷ʇZÅÚk·tbÀ-Þãœ)ñùN¯HùP0 à´êyc½í@;T·òa9»²ô”sÚAOQfð"¨i-CÚz4×-Œ’gª{H¼)Àž²3À$„ÅZ•ÛD!¶;{ôÚj^èË+™ÄÄÃQ×ß9ó¶Á*k9}hÓ*–ü xöj=¡XMÕÀU£ÃsIWþ4qŸ ,Ù¹[žPåk5ÚôXá£ZÝ®….@{ª">«–j3R¹ö3ù8]hÝ©gYb‰ûó·ª y’Hã¤^ìöHÈ *­©ã÷ðò+‹2ß‹?¨eÓ\\ V„”碧ßP©B—Dª` ú§«ùú"x(Âϳ€†Šã8Lƒ+Þ¯ƒ(K>æ‡T}”~Àøj)¢ ­ÆœWò0­†¾W:žOyP) Š`MC¬=¢fšSšLx=(úaZK_lOÃýãIÚ}*--®¶=wdî—õ´ ”•¬ßÚŽ{ÓCŠO¿<ÏÊúk¡˜·.Â_µÇÙ§SI7'iBÓƒO*=Æ ÛLݨûÀ‘­aç­mS,¦Øxö í³ÿ·‡º–†¡ÔDÔÚ‹ç&_DÈò¢Ã5Ò$§cnÓ5´¤"ê ª×KÄÚôñˆòI(.´mQlE’6áñ믩ô³†\€²·;£ø„ê7Ÿ}Y|ÔíÊ™k§*ðkDOµOûÚªJ—9ìYú™ûêºõI´–‰«$º‚bÒ@_‡‹ØIfp90¬‡Â-õãSE™Ç­ó6V_{8c­ŸÏã Ga-,½í*Iú5V]?Ô¶3Ü3—#¨Ù`Iª`(f’•!!,kl”RÜŠUZôx\/ßÃ7âÙ€¼£3ßTçrÓ_G†›NåÑþ {{‹|M1°šSödï?ÛŠVKÔ-x‹®£fº[bK¾tÛ" xÄsݤÉÑ&éU!Èet>Àý\Þbñ?lÒs’hÑDo5—£qÌñý!ºøTê{‰쪺AªÒ/÷%bY¿…ŽC™*rV<¸—Ǧ´M’`7Æ9µ4z®[©JÆÄû´¥1DvÄ·g§©#‹IxÚ"ô–ª—9ËÎÑOÜo Ç[‰£–ç ܾmøtí½ùz ½@ÒOǾHÒ£úq„;èsÐÀUÊu†ZJ„ƒH™MÄ—iœ÷­¡ìˆßpÉ51ÌzO“Û¹4æY5R$VO%ùΩT…!BŒqË÷Dïv°´—¨çwÀŽw¶ŸøÍMh;‡åt;)ðCš&6ýsøSqžÒÙθgû¡}B=tW³óéeÈöÚ‚¾VhÍnµH#ÎØp= {¼û¡¾·ó4SÖʱIê"\qaN37é0Á™ï ñm—r’2wâ–‚±L™:\Ñ®®[·ù&½ª’Že²ýRêË –héf ³H“Q3¤išÚÎ-žWºn‡ªµv†7ÔœÔUÒ“y¸eVªº‰}Kí8i"qs/qige;««øæhoåy¯zgÖ„:xnNÈ·Õ_Hpu ÕËýzõ,eÛQžWÍŽ(­ã;²[õ…RÏã!¹Q´Áº®9G®W’è~yаtÏÎjýHzÕ3ýÀlÊ®´lkÈ"÷Ͷ˜g°Lç㛬9ÕÊ(lmj«!¯8(+h—oÜŽD˜š¨ñÇëq‘_¾y=À¢‹¢àœ2 `ŽojònIªE´©$&¨8'©ßÎ )4;ú'o|À²§|k ¬ûR¾'[ÕÍšvscÖ‰‹ºxvm>)7éÖz’å <}vH?–a’Hô|kÇr”T«šcÑ!uÍØn¯D-ŠÃ¦øS/¢œYæI³Ù×´þ•æìéôÔNì¨zô>= ¶R ‡Ø^¥é_à![È)ä{+qIÈ*%Ü‹:x)}Q”-Ûjþê—HfÈòÔfð¢êcŇ?V§ÅUÓI=Õœä“8Z™Éͼã îɸ ¸6“zÒåy&Xœg¸@óÝY?ì;ÝàqhyûS¸KÙ@”Ž–-÷}׀ﺧôv*µrÝ’z@W2Bù€¥lª]gLóVZE fJä~,źӅۃ*íWcà]%ÿ;^Nì@ÛŽ³-yþ,%B·Âo‰H‘=´˜äƇP}³È‡yyê »”cüPȳYeÿ²ô«‘'*ó„–¶k¤Òkiý5§ÄŸýT— 4Ⱦ©Ç¿CÊTò,ƒ›auþ*%Y( a³SöÉ–šŠ»²’A¶&©¬‹wɧPã´<ß"¸µó]A§q€•Ç•ŽÙûlެ¤…µ–â Yú„Âkv¢ìºKã´é˜Hïú͚ܲ³ô‰Íýh…6IK•¼ÈW¹ÈDº‰:@Ý£—Ån'½åK;xÊT/µµó„ÎߪÑ=³:4hWüÈ(ÀÎ’Å8ŽPýLë Äô¼ÍòÂÕc;Ëfñ²p``›Egè¡•ÌÅ•Éjj¨Kkmëå Þ®ú¹Qß‹Ò'Ÿ‘ûW£V™³Á!e€ÙWÀ]5ÔlÖº†:C…¡w¶›Çàà‚ÙGň'Í]Û*´«ÒVeãùaÞ›¨Â®¡Õc/RÂý9‘–Ø…_S¯$L½²¶¶ÀWM^„ç4·®¶ÅD”‡#Q݃FŒÜüë2t¬–<¾Wê–z‡Ë£Jó»ž^ûjhýûD‰“šv“y“†ÅûÌÔJuÖž [ssìoœÖ£WŠ&Pd‚* ¨ôýyÔÞ¦*—P\™w£†šz‹±_ÕôååôšÈê©M_ž‹ÅFh“¹Ïjsƒ*%;ÄZ!ùE=(•ca«Ì{t Þ ’‘Sj¹†Õ5죱¾n¼$ñ:é­Ú}_'5”þ‹¼Võê\_,f%¼ÙÅ—zÍ:74dYö(ÏÛAñ¦i(fÈ#zfoi.|ÊÙ#¤ 6Áõ‡¼‘í|<¡7›r.à¨%Ú-É-ÏÛ¨ÝRåÕÃþT×øŽx%E“b×ba·“Î)ʃ“¶:µ©€ŽòE_÷¿žôü‡8¬.N×®„•ÿ{š\¨(dQj’Îwâ–Ýd³7ÖÃîÏD™O™Wq~…8=‡4–‡.ÃTqÎÔ(*hãéÁ³V5µCtÖ/n}ô¸×Z¯s&Ѩͺ%=í8,›Ä^õ¿ºžsÙÞy’áL™ÂJ8ŒwVÙÑc{Þ3-x”±¸U…ñ„~<*f’LDÇ0WéRÀyÚe\·ãв¾‘joyJ°tŸgþ‘⒛ܮñ2¥Ð‘nûü  oÕ/?Fñ…O©o Hõ0rê竃g5cÞ,hR6% 5Ïï–¼é¸:€—ÃåÚ..K ™ñ¨*Es×.úž*3 œ›‚ê Jò“ ðþuT«Zó,ÃÙ_•+JÀš÷•ê®Tcϸ1óü½ ¬÷ªU(¥o'´Ç'ÐxÄFYZ£³š¬Š€> MÕ(º_'HKv{…]ÉLZLVõ]õHuâh*ç##ùUÁùz¥Á”‰êKSé™!LžvÀH„Cç „Ç½Ú¾k/'0Ã6Éñ}ô!\>»£ñòÕ¹êÅ9ª AÍ¡÷y‚ Èh+Ïëœ¾Ž³©›G­éî¦òŒ?¥ŸvmñÊGΉ¨ÀëvV›åIJk:нÉÃ*NF¶Â°Ñ¡>Ë&Ö+<}û Vª,L튛*j™Àñm‹ñ[ðOBj‹ ¯*^Qf¶ŠÃ"&çd¬²[gï¡w²&ñC%?J£†–#µÖqö¶_…ìM€ä×Èåc‰oƒ+çòK)© ÷ ŠOŸÍóyê®0jÞWÙ$×= ²tŸeÑ­ñ=tªGFúÇ5ß_õ >©\˜'qíkHhoºåR vŹ_û仪í+PìÍ>?gUÑàŒRi^–CA‹Ý^Ïiô’ £ü¡£j¯'…¹8ïfvà aÑ °‡o3‡ëëõÌãIeKUWçÏP $‘€{µ§¥¡R¥‘åvPÎ88½À‰ëUÓÁ/¥l±O aUªT:U ë–£0ô¨Tì&À¨ñÂ&ñ¸Tïö¯öè²Ëµâ“Ê™N[Ì*ª'¯zò“§ª+Ò‹Ù-€Ï  ãUº õ˜ÕÙ$c¼’‹.šó°™µxér_lµIa#¯i®Êþ½>Ï[æç {V!BßÝê jŒªEX¨¢~y³È‰ÒäÀ;Gí2abß¶¨ÔFX‘Ô^mp)Úí¥*-«‹-Áû-¦ö+ò4Úº^%:‡hpLprǨLÓOpŸE8qf±(¤‚ŒÕåÕv *WcêGU(§0¨!nsZ§j«v×ÊT!F‚‚%Ö“è­ø ‚ƒÎ*~¶Áô+XAÃg±ðtOcE—£Û]íM¾Fà _Ó ½³yo峉DÓÓ³Û§9¨Rî£(òq+ãDFºíí*mv¤9@°T¢WwêpÛã·BVm­Øq ¹ÈŠ"E5¹k¹Ê´¡"Œ¹zư ™©³y“=J¤¨ô¢„í£G!£4ð§ÌNêy‡ Z¢t»‰‰«êrÎB^M—Ó!ãþØ*AEWéTᇣ»1ÙŠõpç^v,:][þzw•Kw¸÷ª(e©a‚¢èchFK¥J1­,á D]ÒËÕY4¶¤Ág·“¦Ê9Mk(Ø ³I4Ú6­³CõG6ë4i%ìù‡¿ ‚JÒ`œ…å*<µýØdbPUÖoV?@SêÉ>ê£ÊãÈ;4Þ¼óÊ:ÉI9Á,–ß°W%‰îcüо‹§Da+HýÕÁ”S-7vN¡f³!?5xJã41øŽŠ{'ÕðãÇòÎ@ß•«êžú%m}«Ñí1A°¶Œ˜®…Éã`[w:õU¡YêúTzÏž.BË“4{Ö)¤8˜Z]ê»~‘ð–u åád•BÕ²ü4´ù”&=›ª€zÌ÷•…Úü$W©;°r),[»µ{VLmV^ 0îSµ.¯¨©<‡"éS,‡D7¯Ï®Hz¢PŒ@ex~¬¼ûÊë»XÅmé#íYÛ÷‰Laß~jålmPòBØÖù;>É`¨ãÉù‘\U =¦3¢gÍÆþ4n*¯‡-]"Ò8²ˆ €\¨KˉvXYd&WÇtètþP­ª8ÓIÔ©7Pn_öq¯8¹«”¶ÏÔ'?/Ê?BX“`ÿª4r;U̘ï'ñœtëÀ‰ZèêùË! %éÛ8»o ÿõ" hÆ£!LˆÄ/K—©sÁdmÙïËs3àllÒúXT[/a]²­ÇmËbÖÙÜ33«PÅnê+P—ú —a,8¡­@ã7#h‚"°ÊÛ!+ÂôÙ›T1”F‘@¼ÜÑã/ÉÆ _W ý:HJˆðtÕ Ìw”{ Û`,Û`›Œ •xŸáCíQò%ÁPYIgÓq&eÙ,ªùvuŠšf„£aI‹$)”ðÄF„¾X(úg«1D:ø´H ‚ÍU¯ìÉÃÖ„CGUÔûSAüÕ¹…k«Ûk\Ý¥n~‰|dè•(¡ÑúkµÇOª·ÂŸªqÃÓ,ôz\«Ø$¤è– kåB>sŒÐÉ>Þ'èXªüx…bŒ<ÊZò5š\•zñ¼Ê×ÖŸ,X’­¢Âgž „² õdéÌti2|¼ÓíŠ}.…û¥ò¨}¤Só±x–à1iø4D:7x tÐhÄã73®²IÔ”*4•éàOSšQ†õ ê&}x”—==šÑºéHšjÂþ€j*¯ì2žAj•`Ê¡ÎU€0óÞvVÀ±ÛNFÉØê>¢,¤Q’f j¿ªÑLýÊ.”ç£Ò"5²²ÇÏš,2…DªfEGu¹i/Æ-ÈÏ ŠÅ¼ê©Îü¾¾í¶Ƕ%u`È—Z¤“D«F2塞¶WäñþçÚ_޳R¹Õª@“CŽäÀ!7RT‚íΨs7ªf]ª§²Ýˆ~Ýà1U9 ½ž¿Éü¢Å:'²G'‹—î©SmZHf'·îQ[Pœ…B’4ÿ¼ê2ФR³õV°U¦çãÑá o==*7ñ2I쵦N ´ÙÓ| Bšó¹)‡ÏC‰ñùC‘à>ëÕucS¼$ù¨¥´¤ŒW»¾žñÿjšÉR-¸ã}TuùÀOQ¼ˆä ò4H%ž!Ù:àÍÙÚüj_š”iâ[rÖÇŠ—ª9*‘dóÈ×XUNPÌîVï;¾ÉVµ!›dá{žîò÷ÞJ±¸ !Y•¥‰l‚Â3iosÂ4B±¢Œû“ç¬ ¡LÙ’2e^S *¨å2%­\‚8@Š`óJ|Ǽ¤¥£¥äÛ¹ïVQ R§M.%¿ì<^%‘ϬjA<•JöaCêÖt¹Ù“Ü€É>>²Q ‚úçù®L ŠzX#«;ˆºDz«Nu¯:{!ª*D´Ô·«ñ~ݤÍêØ5µÒŒ$T¹ÍK¼æ]zò};ž¨\)£ºJ¤ùÖ\LMR•5¬ï¾ÃU«rÞîMÝT¢mÀB$^E[áè<–O6¾'‹…á/jÙQT–ú–X UþõñHô–&Bv˜—ôò‹S‚À0ý·ÐmH½&Hr?›ç ÖpÞºM·ìpÿò¸÷{=â ¨~œÝyÖ«#3¼uûÈïXy+ ‡@øà­É™tK•y?ïõÙÁµ˜mŽˆ~_Ù-ÊT°?Ÿ¬µ¨ö_<ç5=$Eˆ6(e²ñ/Aãi ¨ôiÓž]–˜ä¦ö9%£Í;ýƒ?%Xñ]YPÀ[Š j!!ªòÛh¢¤`—÷~<âD‚ï ØyªÝdÐZ})Ý­JQîÂÜÒåÑ:m5gYf=Îý7†&ÆÔNð%HöÅ'Þ¹_ê¡8@~«xytÙ¢t²UDD›ZQ7)¡Éþ/2ì]Âb} óFOÆ2PÕ!ÝêÃp­íxÆ…Xó<\€Ô¨VÚƒªÐ½HLÜš;MJ¸ÓMÆóÇ×iÙ—k´ì\SbñÕð¹ÄµŠã×CkŸ\Q–O“0UùÉðríKάŠA¶S°Ç(Sužâ))úR—‰ê„:Ëye²k‡¾TŽÙšçÄìŸ;‰AükT~ÚCNbòŒMÖ4õK^Tö&Ÿå»:‡:feJõûd(X .] Ò;¸¼óO$k¯XÛÍþ»ÅºœÔÝó¡ríJÅèa½rŸƒdè$õÜ3®£hm¬cé*Èt±g#Ç6I`OYvÕ€ñIƒŸ» ÷ÃCP}ÏIJeè¦LÛÑÿçC‰M¼Fi+Ëyä£+ïÄÒ«Jù¼¬x¤óÂ÷ÊtˆpMáõiE=r4Åɉå8_ý`Œµ‹:Ù0¦z–J¡ú²”tmøT£¾êMxÎ*ö’eE_÷oª—~}¼òþœÑ’/ØS ~Zó{@­ílˆç ýæ;_¥©MÀ’½’XœÿT‡¥4¯Z?Gò nË:àÍ7w.Ȉ iaú³‡!÷Zɉ+ª+ÏUZ+Iœý½U]Ú¢¯ª©¸}²ã)l+Vìiw©,Íç^ 5ñ1à}ZÔ¿z¼Ià­jÔÔFé…Ûaa}èÜ÷\Tö@aõ(I—UM#A¿ ¾æµ‘` ÉÊŒµøÁG ç;ã ^ô8R ÍPSUùÖV©z˜ó‰8³^è"wµ["©Î{„)Âõgi4—ƒrŠ}άÌAr«í ²*µuÞI«Úù<á×(/ñÇ&46\ÎÃK¯úEo‡ÊYήõËŽ‹g |D²hIb§ÉÇžèäšú©Ð¿œæÉœª<šÒZ͵«ŸlÞ²cÐÍÙCbõ8(.ÀµZÕá Ñá@©ë¼¸Ùêi}¾TEðìD‰â´õ’´Kíù3KŸbó«ˆ PeAÚJ'’'Ka¾AÝúø¬}[Åññ@#Ç·nŠåJbÉŸê¦!͈+M¢1qÔUì0¹ªœ ‹ü«"Y'ê;÷cùÿy¤iyÎjÈÎ÷$ëcv )Í´²„Ô•0qÊ/SÚèQÅ,çv½ržnâp¿e ‰.ÄÃ\:ñ ’¯¯vX…87?›â½¥JQ—ØFQí5Q>ë‰Ú è<GªœWev“Ê`F¦~´ÈíÎN-èy••Â3êJã˜nܯÊD<ã»{VD}ùÚþx¨çpþ1ŒÃfð`… žÈ B3R­¼cà ITT»þ a§1aÕU"Æ>¦ç§À;¯¡¹ûîŠUP+i0DÆ¡ ;Säj~þ²bñʹ·åû¤çÞ>cEª.õØ.ÉÔäjå`§,5»ªÑcë©Õ…‡§ÛŽ”R9ŽELÓÐà)g£¥ÞŸL¤Ïak'Žª>'S޽o½çŒÌìo"f¶z ×ñYûœIªÖDMm9ÈVíq®syxPªS!Ûí¥l²¨Ö£¬º¯¹ä eâïGWîš} `âf–£„dGÁô¢P‹^*ô’ð¨ã·/¹¦;nwÍøès, nÏõu8ˆIU%ÒÔüa§uɺí*Ù­“õ‰(çdˆÑ9œãp*:p4ùî6=Ÿ™¬Þ«e"¡²z¾a“!9àÀnÎO@ɺl×àÞýÕØAZð«jõpFÜ.QŸ_áî]o0€bÚMGŸ±XsÛ…ÕÇȰ¯'{yè¼_¤âlÑËý¥Ê«Q œ <|X‰åðRðâšoì[%Ag"'urÁ3Ñ bXc=©<à–¥vó2ÕÝçñ”–šl#KÌ…•ÄÚ†v®;³dð–ïŒêÀ ÀdƒvMÀ!A®’•VU ™ä\ä–ØOò-´ov#  “¸ò£_ÐÕP‚ îÛëCuC^7[È|¶¸¢ëÎád!™â²š’‚ÖY™Ñ¤K5d‚ðÐØ£]ŠmFð†¶#‚$%!ßò Œði©öàœ³ÿKv$OÛahÖDŽŽîhkÔ^{h¦ý3ÌÓìî•íHí ù\"K+ª#Ö°%?('ž}£øà·«nVµ/V½+ÚT5F$)ý®õ Âí‡sÒ±¼%$½âpÞ•n}úÙvŽ* Xö³“ð$‚H$ºÎ ¨sJ@€îFæzy`Eæ%¤Æ·àj›úd¦*y§-'a:d’'yÜ´Îv:Iêrìæö‘úfjIÝá¹ÛJw Ó f%G€&«'­Vas`Bx,Ô–ÂS•w‰*Þª Ysn°žù·öž't ý·§Ü$M‹ŒÐ$fEÁ¯Ô”e¯­)÷¦..ŽÞs¯ã1{¿™"é¯îÿ»”{Ô6°1š |òW G(PÙHl×=˜À\¤³p;Љ´ÁRL“×{hiúZêŸì†Æû¸†½* ’b§F<Ñ“ä‹t+ñ¥IM“j[%-|²Üëq‹f7 K5´ÐÉ„çÔh{Ô¤Z¡îÑbŠT¡#Ÿº1Ní}’(/kƒö*pB‰õrœ ”bÓД⭈D!ˆÜÝZ’{`µê&¿Ý–O]wöìñQ£9{,DC Ï÷ÓÜ]áQ´>j8ûy+JK gTí¡ñ­Ì,‘½U5ƒnC²¨z·c W×%P¥>x‘…¦êTuªìQ8Sä­ Ý',Ú³…|ÃAF¹+ÊÞUÁeë‚òÐ‹ÍÆ¯+)©1­l$'UYûw*l·T¦ú£ ¶Ëlô½ÄBÙ])F»ƒº¯æÑî©(²W–ùLživqÌj¶ö*‡·ëÖ²@ˆc/8îtkï¹Z$% ¥×!R¿]hfú”{^]ô6VŒõdo\$!ÿmK‹öÎÚ¨úaD`<&Õúxú΋8ÂE„—y\ÿXÒÞ°iòÆlÏhàrbÙ2«£‰VzªËD§ÎB —C0|«âh`Áe?‘›`qb‚šÍYÖžŽÛ–.ÙÅIQÕÞ;]:¸³™g˜„TËoµ 9à[©¤†€ ±îÜí}šcƒ †Îg;Zã|PÐÌÆ.ãmÜìŸ7 Á=ýô…«¤’U&•Õó„¥Âûá"Va’zqgªžÊ’$*.8·_tYSÔ~4” hcA¾T,·¢Ëùsò0iZïù¥4ï-¹ŠÒŠWº,4ËIAzIÜÒæàWàR§¤,Ñ«è’5ÙlcY·QZÞD! ¤¯ee¸À‹ñ.žŠ\4“ðô_E|Ü–Í“–F>RÌ›¨WÌ<» ‡C‹cMc«Zu)Uuª>Ÿ3;¸Èê¶WÂç&àJ=Yäe5€ž#h¡ÛlýÒ_hxB " öGIaƒŠRçH‹Am#|h5ðè|þR{O!F¢Ë™ñ2õ–‡ØÑ/é"K*?ùn=l0ï#F¬h)…É¢à¸Y½w’ÁB9Ã&sœèx—?‡/äsZÊOQ¹¾±˜Ý³M &âd-O$oy *;°ojëRϰT—"¢Ý…âHƒ•B˜Ú·3õ"¾NAÒö¬yýºk¡2dX)STö$‡Ñx\À*ê¸<2Œ/-,)Æ´DÊ.¼TlQ ƒW­Øm× Ûû|´é˜õ›áV ŸˆÂ}_MÉ'-YÐjFÊÂ!ot¢GS깓ø¥UöA¯ºøyÔæä¢Âº,PDâ w³ø>%ä §§_íëˆ|•}Àü%Ozîõ™L^Å—¡/Íí<šJžºúF‹\ŠQ ›á¯ªŒJ‘òÕ¡hµ²€„*yªQß‚¡©¶Š5DIŸú0Ȫ"!;æ¨EdRð]2£¦FÞ¶äi†nìGÄFÍä˜üqÍ”€¬œÊodIõ¯n­ÄœSËŒœ©sàÍe=éëüÖ”ÞrÊI‚0’Š•on겦GÐ-kïXýò å–Ô¡¡‹J–JNè˜ÛÉêÉ3¸;J~“ï. ¤”¢½„µvéN­nõëÈŠÓ·•ý™;ÓVmä/œi7€h×&êU„^ö»Šv$Y’ E5¨ÝÉîÛÑá*?'‰¼È¶q?ªÁ.#´³fxÃJÏ^À³ý&í¼â ó0Ù)ò%¦WÔMì| vÐFÀ„}Î=Òå<ƒ2ÕP&)a35‹íBÄ]—¾^Gñ1º>Gñ×þ<ƹh¢þî«6ø!Σ _&öÔÅYä¡ÚèplÐv 4ýÙ÷Z’%†ë@ФX€™ê’@«(°£[ÔQÙÅ#ˆ>m)­kÜÎ’ÊA¶cwT?쯵MT÷(gÔêNÉ9±{Þe}_ÉòŽ]G‚ç¦zÔœw“íO¬,lù¼áñ´³pnMÅ\Y3àÈp «O`þ¬c®ÝïOŸ íݾw[º7¸& ]¡¹¾•ØJHÊœ‰êÝÙÚxËA¼Fö•ƒCtQ›ÊBêJÕÝi±œ·¨S áǪ']göÏþ7eݽ§ÃÓÔìli„ ÍgÙ¢ÕáõQò«÷¼NÜÏWŸ‹5¥úíÑ,6ec%…ë(³ùö›€)5U~–±zÜ-÷W1MB 4¼ .®p`ÅuûÔ>àI‘•Ë^ã=Qxwò[Ö@Ú¼˜¨|ÊüÖs܉æ•y­Üë>lÈÑ/œçOéÊÓiªµ«pÜâ„ûwI?­í8*p³ïk|¹F¢à`·*›™-«OìŽõÿ\š%–n¶º–¢  02_ËýJ”ØI"¥À)#.zRÑzr©„*HËq±WGÇñƒãvyÖækãd+>½B¥Mj‹ÐÛóæ“d'*¸ˆäÿɶ¬¯´~+Ã𘉀#•|²r‚µýÃMª#⌇’./?A*žh:ë+ÅÀÑç“%‚uyJcíUoÅ5y·SiÙ Õ”|ZÊù˜¢eŸ fVÈ8J(UIRI²nä˜.[ÚÕãA\ ³ëOk]X.­¢ÉŽÔ’*’;\˜O—Uìé)2ù¹,Éx9kÏÐÕEø$~³¾Dë³O¬*âeVèVŠaç¸'|꡽jNs)¯${©øx ̸ Ÿòê'«qŒ’5£äÞøˆ°;‹3kƒª‚ÏŠ em?çÞ¹?bÆ UªR‡­²sj5>²Z¯q8ëø˜Où&É–J8¥®¢Ym¾yX\êîÚõ’´¤áYRIö¹ÚÌ’ ‘¥åŽ4£b¨&#EÜÅÿ’JSkÒB)`'á`*!m¡Ùvñø<Ýäƒð° + Ä®5ÞjÑ~¢d +²Ï7ñÚqú¡eŠDÃΑiXëQà™Å­è¨Ê}]Aí(‚ÀJGWf÷°¤ —Æ£$ ÉB^ÁörOϲhcïñçålãíÔëvìZ×hžsš¬ÆÐ)Q+Y@ÉüjCNÿ$gdæ3/r÷ Ò靖ٱ·§ßÖë<>gðÒgsÝtqŒG±,(äœ9Ñ YHáÑåÐ0•¸Ó‚ÿ–$L8ä•€’ðO»•YP„U~Iï/¯-Fíå÷VI7+tI`Øk=éÄò\«65ºíbÖJ1©™TO}ësv½g{,n«áGþ,yd„0ôÝS;÷¢ëbx Ьp•¹ú%ÏzÉŒ'Ï;Õ­,U‰§Dzõ¤RsP%ÙD·¶»Š¶Úë–ômûý£ä·?# Ε”Ézü>û Ò)Îa[€ö;++tñ½7(­ö5‘˜$e®&êq?’&:S}öðÌÚΟ¹•—m€¹ò`)·ÏqE2+±ÕŠUipP_zŸä@Þ Ý3xöé;Èbwê«z<Öâ}É¢÷E%'9uǵÑqïÛÆZk§‡¢¯0aÛ3Ó¨.PE¼: €ö£g,Ëcè!‡˜ ›czPN ÷›ÒggSlîUÁU'NÇÖDìè¼R$õß,€í®Ûªm:Ѻ“ ™dÕ'‹ —HIŠUë@Ï@Ï$iÉ!OSïVK!BïÍ/n?5˜¨–­ã¦Dùt~¾ëµ¦)w•óæZ&÷^2˱¼¿&½äžŠ¢iÜÂnœÊVÚýR¼yÂFT¯ÑfYö5u¶~˜<ê"Fýü¬Ó±ÈŽ4æÓ¡˜ÏÆþê„á3êÇ~÷4.^Íá…¤Û Õ^+Tj´ìûT<@v$h±©'ññ"¾²¦v;{ëYW½ñ$wžLÌw,†¹eR¶AU çåx%q¿+¿ð^t,º^îǶðÔ–éH²o…ªìÕDÙÜ󈉱]*OFGûüJe×12ð]=‰øyúËc|Xª3m Ó“ ùJJ=§•$¡+Ýæ ølPöʪà±É¢Š«_[F–L“[ Û [ÈïP7µø`aŸäÈ ÄÑä»y^¬[]]ËeKÄʈÕ#ÙXajMA[tL„%I_Ó@o‹å ú¦`tËnÈ}_+{2f³# `(/«à±ºNáR‹ÔCjhìcG»:®@•òòõ,Ï>&Z¯*óŠÄë3¥Õ3ë}ðÛñ¬¦Š3…QL3ÏäA+²É¥ÒÞ<þ—RLk&eŠLtÍy»¬\ÒŽ ‘S»SadŠé•Ôõª%?õÊmJ<€dtLMHB#ÙjûkRüƒP¨¼†ÔÐ6Ü åXQš.ÏN¢Iµ‡£Rk¢'ðŠ¿j—nwFmR‡çä”Ù±û.“€ç²ÎX©W¢øê±Hžì5m‚üL1Y—k7ÔkV_õQ´ãã!‚(Õòux‹µŽ ä¤4“i\(t“x0GΊDž©ëéŒ{Å‘¬¡¯A2l­íŪ¦Êðé«L—΄'7žÖx²ÉJœMo—yé³4ç=k%ôx>,)DƒÓ¦£uÜÛ±dÊzî‚%yZ Ú£Ü$Õ,ªÌ<Õ™)_âQuÏNáÏ6o5b$h…s®£jÓðw¾âº;_dzB“F®MÍIGsš;+ƒÄÏuGzÕo$jm+ô¸œ•¤,ý®Ü£¸°,ØéLýWUh¬Ø=ÞP%~Êd±„ž¡5«½2¡Êfñú4Ž/M¥Æ_$çx­Ã³C+é96bÄvÐÖ¶UÂ6—èøê{ U-••d•†’Ï£|Aâ#€ÔìäýzosO¬½G ¹K÷ñ4ІìÚ¨l\ ܺ€ŒÇA0Í‘@l߉.§Y§[Ñ£«x–#¹\Ñ£Ôåð.I[›_§"Óh½yœBƆ;TBrö$¼5ÆÒ¢Z* ÷SÜΩ\ÕoÖ°Œ–ùA¤ÍÛÃ_Þe+%¦ì’qyð‰ó±w>G<Äi«)Ø„.ÄSî#Ýþ_û’Pnb¡<µ9Ÿâd‘rb\„ÎQÊýÙ¤/b³Ð¥|+G²ÂÆ:µ” !¼×öú’,g;È$;Z AÒs9£©ül­§ê]5ù,%'ruƒ¿84>Yű…jDKÅû‘Áƒù×9†.i7èÍZ4ìS*œLUçg×À!)Ââûio•¥Öla ìǹvèK|¾ugP øy9hC„$¾¿å„·| !LŒ¯ü}’•GùIÐ!yM;µ˜ÒŸéXŠòš®Uâij~µ$ŠçÐÛ!eI:/I§õ朿ãî lRV€]][y%£q¿Í ÑÍn~¨°äñ<^»{È yåES£QÔ°FÚÅ×ňÙ3€7_’*x¯7ÛG Iî«Ô£Ž÷‘Ýíª¨ëFcS^GŽÎ!®âÚ!»ùyóà±ãmeQH˜¼¦{ky‚6wAíäDÔ%o¹,mUÏGŽã æ^(…ª.òå©­’J ð iÁ½2A•þêöäq: A`÷ª*S¢N ûGu¢F«E5“(£–€«˜.Y¼6'2 ôÀøÞ{?jNÏtrÓCÁ)–¯B_:\Õ*G~ÉÉÒµÞ*]ÑIÐT >Þzt‘ÛDq𛬼†Še”kNLÇäLhZè+Ø‚¥- [`põriœRÔéá„øä#‘Ý…”Yž*ÿàÓ…*ºšËYr·ìG– ‹ŽõõÞäIplf]…ŠBg÷çaÑ«( UÛšk9ÇäL¯† o’zØ‹’4¯Ì<‹@ẛÉöö{œî."‚ú%š”±I‚ÃК8.õt­pï ò5œ)TCz×áð n)UÄJ -¤AÚ4bWŽˆ" û<²Ò´F™ê  σ#‰f5’²”Å]ÛáWT0RÈ8Àt"?iñyæpT»«}O^C\\Ò!Í™ÞÃ)úÉŽ«Ê>ôP„Òil!ÙÞÛÇn·]/Ô@}C˜Ž:÷Ò4hX>%rÜMU)Ú$ÜmJJh^©Ò=boô#’( à-“›@}õ’ìýi /L˜ÒñTÞ¹mÍca’¯üŠù^_ ”¹<‹ÐLyʼœ§J=h±;™¥{™&·7V­OuðMI.«(%ŽX ûrmÅ¢öE”èß©š‡® °þغ¹ž«hÊ˸I$T_»JV7O˜Ÿ#b¨†ãgüŠÏ"ÉF<]•_y¾,4=ì>õšÚÔäŠÔC}£á|Ó‡§é›\_- _ýr A^€oð[Z/ºÒØÓ3Ћ;ÞÚ–’nÍÏ>7hk¢ÍŸ5Ã5UɎÔÞÎÌuk/‘¹\Í›dr G˜5³ÙŒ‚þ¢ |eŒuÒPÿ8íðè'ušW¥ÉwQO¿MI˜ùŠÃ¤—N•Ÿ¸zGaãñÜ&Q²=ŸÇQt¥TWÔéò”üÓ)G›`‡`•Ûw*U¥–’i:ußyóö·kÁ™’‹ÝÏ÷’V$^.äQ烄Y^ñre9ʼnnpÄ8XþÞo]6öd³^$þö|6¹¥Î :ìS­ŽœoùHµL§ëªº÷-û¡V W`¸%Ôí¼Ø Y,e9DpíÊ”QHNŒëAùª^ì”3yõ¡ÍÕ]„Ìªß eªvŸÃ ²Ä£‘*U›/¯ÈË”‘-éw_÷€ *hÕ±Ô &DOOp(@^-xÞ¢ºû]=§e³ ç#-ÍðÚ'¥f>ÈÎËuçò<Úü½û;ŠãàµV%}ŽÛö©Ðµ´‚ä·*V¦Þ Ë3UÏ}ÔI³ZñT„[w^uLÈó>IÁ vë­ê¶.—®è‹ÎbÍl&5H]2üH”žDqÀO¾‡ê¥4¥ýsò^/5¥„87ûQŒ©ìø€ºãž/…ãĹ5G½°Ù_K*­ÿú݈•gÜñÙgëœp×N$#7þè¬â,”}ÅO[›_l›—:MQÕ7­H%ÛœX£  )?m;ÆkÝöêq&•Õ #-:šë˜* û“ðÈW òäÔ„dXn}-µ¯F’©„·äz•òq*ÒÑ“°Pæ¿9¼Ö=²UZâ‘ørÌåù¹Õº´¤¯Û‰—À¨7n¾6›éîïY™å’%Â$ƒR\>ú§+A7ÝN&aö'éìRµ)7KÐ#X>+¹Â9:iZR 5gº«G ¹Õü'9 JñÿÔ×>’çØ£½ |°å•þçݪŸZ¬EUâez”§p”Ì@«×žÕÞîÊg¢þ­¨ªº&ßc©hÈ+c#Bùy*Þ‘êÌòÊå° òUUˆvánU5mm¥‚îJEÏQ*nÇĆs îƒ\:PU»“M‚³¦b,3]^;HWAnvÊ|¶TÑ£2îá} *™~7Û!ØSÿJýò¦ßcAôy-ã†uOôb‰÷N­;6½+Ô¶²L9¿ž.¯\®û¡ÂûäËÊ€/µžb*š&]¶A\ÍŽžùT®Ì½Á\D$b0•ýv”ŠäÃRŠÇn aš…ÓÒ–ª¦ ©üÑÐ øIÖtº]SZƒã½6R£·™à‰n—F˜}ê ÂÃñò?ôç Ì\øGvæ«âP3…äH™f½l€ì¤ª,#•¿\_JÈ-qOë43}æµ¢’õ7Ï“ó¾ZÕ¥+Ïü†q‹ß‡ƒI*aÞm€¤(û4ÖÐ)ÌßU hª\Ï;%ŠéUÌæqRÎvôÑ«SÄ_Ï$i^ZSxˆ½žtÃÁG+”3ROÜ9Y%t_Õ·›´;^^W…ëÍšYKÊÓ?°HJ×Tí;FC³¤{:Pâ!—°…©-E¦à'ašR8*G;mTdž²óÑÔE|»æKE8ùî¨Rá-ßÇ#Ekø®µBWSf^Ô`Eµ•Wë0rÆA¹ž8t*.NK¿ûÔz,{ª~§Š‡ Ô¹û¹4ê#ðhúÈ_²FÇŠÊb⦺IrÔöd#jZKœnÇkÎG=V>Çí7K±KBUTˆ"Ô³h'Ûˆ<žRÙÔ^6Úx³ÛX*¼óÛÑÈ Ðß_=¹ßn"Õæ±ø*ÈOiò;Šl¼Î|Šyi2]7A‘ºö:†ƒÚb[†®8 XvøoÇ®<Ù÷µ ¥þ×ÐéuR%é¥PlÏ)C@ÒÐQê"òT áÃVU)zÈwxÝY@±§¼ñHá)øýÖ¯ðÿòþþþv|ÀïþúW¿ó§ö›?þ?ý£ëÿú¿Ùû÷nÇmc_ý{áSðœqs#íÛ|{íµoìnwâ{lÇÃÝñÊÚvÆœõpkJ3’f?â“ï~ë€ EREÎîœ1“v7D‚@U …ªöùá¸Ûçÿ\/Äï~÷õvþj·=:âMþ×—ëÙѹɗ뭃N" òÇÞÐKœç Ëž©ÿ&‡gówë©øÃáå:Ï_eŽçÇ?ûžã›¿<ü+¿$þ•&?ÿöÏÈ “g°nâù‹ïÞ¼Iœý>¾ýŸƒÀá?ÞÏú/ë7ý5y¬Œü'¡"é:‰ÿÌ•Ò¡Š±J«™%*cµ¶bÑHGéç RçE3v'fà­[ˆŸýÀ?!Ô…rçÁèåoÿ m!{ý_JȶŽGQ"~Ž'IpžcþÀðá0…G‰?äÖôýõ_õˆß>J‰ QqÂóù«–?ÑÏPŒ$Y…‚#‡E  •dÝÑD£ ÿ‚ù+Ä‘ÂØTøåû4^ü4C/¤89x˜ÕÇ/}ÇúþDXü¡z¥'¬Nú1æŠÿÒHG¹†?¦ÑωËEŠ(äÊ–tðü€vxV½þ/ÝA{TNh„ð¡j qÈùN1ž¾ûFµúÀ­Æ!Ç”£k MÄ´¨z4ào ÏOyǹ¥ ŠP p¢Mô|…K þ‚RqjäÒpqIÀá ó¥|÷ê#Í€\Jcõ(à /žPˆ ð9à¼$L&~Føõ÷g~¤!õ¡"ODH,7tóϪ#ì{—6ø¾ñy¾i^Ä ÍDÑÏß}£ûùH%ž)Í +Ø•!JxñOb*´%J°+}\lƒTiÎSBD(O@_„ ÿ‹½ãÂ’à³F¡Ä44–ˆÒ Y˜Áwxýć?sUu'éÈQÌø3цýÒ(ª-%ê­D½#>á¥e"!Iú”1íHŒtR*"L•6Hi¡´KÏ’ÐI"'&™8ð/N.”óIh"ù º²CÕ (z!0 Ê¥?B'JxñŠiÒ ê¨}aì(Íåð«¿Â¬C |ÏŠõ¹‡´âPOX€æDÑ;ÄÇ Kµ< Á„ßéÏ©D¾“˜Ñ{ä‘H1”¢±ãjÎò˜ 9µp™Æñ„(–©ÅK%ú½E¬‘±¥¬ˆZÅçÜѤ+ýܬL]SW]‘ÕT+;ÉXÑâº,ƒ(‚§Z± ~äAOC–‹…)>‰VâÐ,¿P|L*Î&è9Î[¥%ý¡ìƒ"s[D’£p€4à3P²@üHM‹ðü‰\â˜;EáŠIùÃ)\Ðßõ v'=œèc‡ô>6°>„$Á8><î¡%T_™E÷¤-‚”ŸÕÅ8!QëãÏHTŒ¤y0|H h¨ñsHÃÜE„ ü›V3Q' è9Åÿ9¡É• 䎪Ìs¥ˆ†’ZþÎàŠ™> CM¾d®}I{ œ˜~¨+^ÒpTÑcÒDà—ÚkÄÁ3¼ò¥2°¾¢NÀ…ÉÃfcõ'…Õ§9ÜÇ©XR6õt~Œ+(Õ¤þ&-'Ú%Ý…Va\j#ú”Öœâ !?¦LÅ j‹Z^"¤?^ÿ<ê$œbûÓ¯þª¾})<ÐDP~°Ëù_”?×<¤?Âçw1þDç÷~^XÌ©•QÄt|M=Éó*ϯZ‰3A*à 2KÆ<¥ÒÒRçáß)J*.þŒiµŒ¨¯ð,IQâ$jr@z€ÃŠf[0øV•ÆÝ†„I“b‡#õg( Õ%²£ bíBÔÒõÊ(±Zÿ°Ÿh„!ÇŠ ÿÄ7B%DÒIº?Ç58¦Obý‹”4KH£Z)€‘Á b†Ò ë¤D¤„,™¤„¤Ä8eD®Z¥ÕZÊO“^`þ¨]¨OåJj“T?±)HfŠJ1i§4®€©^µžX[øQ©? ´X¤4¡1Ÿ$N)­²È<ø+EÙ„µþ.ã߉À Dâ™’IÅC ñËÿ¢o•nJz7ŒÿYI{‰Ï·s6}ý°ßmvKH…V¯×ùñþ~¼Ê³ãý>ÿÂù?æ‡Ýæþ¸ÞmÑì5¿[—Ídúò»|ÿzýøäÛüxÌ÷âù!?ÞeË|ž¿[Ïrçý*ßçâ7çnwçüÏÿé<ÿ^a~Sà\*ÿæü¯ÿ唿ù'価âø{‡¿Wþé¬g½È7‡\µF“!Šê6a_8ÐCŸç¸Î ”êÂÿ3ñÚzóósèùý êšÌß­ïÎÿÇy¹>×›M¾Ÿ>³>nrg2}þúþæ×¾‚ä‹=ôÜn/&ßfP‹ó~}\9«@Ô>_LŸy\íö˜ïÿÊ?¾ßíçH;Ï_þùÅ7ß¿ú³s7_ }’Hgrjˆz~G4¹G~ÃþPO&m‡<ÛÏVü’ÿïòý¸8y¦_æf+z«ßõ¼iþ÷ß–‡ì]îló÷w$ÜîÞåǘmv‡œÎ6ë»ç/v÷û5tÎb½/pîÁ>̲MN?€—ô/®ÐR•€µ¯vïŲ°Àþ©ü'3±”^/ìŽðaì/S=βžÛž­ÊÓÞ²9Îê£õÐJyr²'{Yî¤K–×4GŽßœf ÆQô—h”MT¥M¯ÊØÇ‘¸Œß’1]E£ì©Î´äK–èÕ¦hü6½)ŸÞŽÄxü–ü§™ÄWcŽ˜dü–¼¬D2¢ûD£ìÂ*-ù¾@Ñ».êÁ«Sâþþÿ2§–ñÕú@£å%Z€¸²r¬F|ežÆ[]â«Wüvú{°ÅÅÆjÄ‹rÌ;+ŽÄ‰pÔFìš ^·#5'úDÍé/{¢W;ãOØÎïÊÇp#FyÅW«ÚYÌÖû‘‘ŽÕˆjhÇ(šM|½}¶½ë² ¼ü4ÖêïÚ”áøn¬Œ¶ôwt]ºVuñF[û_!]iÀhëþ7eú¾ ÷ým÷mÌ5Z~šæý0> 5/¿yëQ0ÚÒßÑ‹îZÕÅmMïåÖ£é¨ Û¶»G÷¡Ðɤwj"½Q›r(¬«ö¨&iô_— pOËÃEÆæ¢ðÎk¢Dž\sØi,ÿ¬÷=;ŸÌ|”Œg>²Â¿FѼ’ñŒF•ȵWåûZòñœ“ñ I?<ÄÑW2ž ©î‚±‡dLø û³™7#5g4­ñÇòmgY·½£èÕˆøAñЗŒßº»‡Ø£$ãÙ‹š[Ò‡Yçõ6¯öœ)m‡ØÚ™ÔG•ç3PyÒQyšp¢ŠÆæ#µî¡´¢1¯¥ã)D]”¼OÇÅàšÝËÈ#.nNø@͹ØäÓ;Ñ5çA @éxzT¥9?9Ë»…ψ^ÍI\-ü4sDúy¨¿Ÿ®Æ;Ç{S¾³ä‚iE\ÓïÚ3è¼R«·°fDcॠWŸL õÜñ´ÐZp—«´³Zko‹°Ž³íù×a®÷À̽ÎÇJ\Þ<ùiš÷À Œç·ûèÛÐÞç=xËä0ÝóÆÛ™4¶ìA¶\вøÁ[v–$®iYòÉ[Öí¼îj¦ŸECß éVåùµºQ¿ËXÿe¢½ëѯë@Œ.îл¨º®ç­ï]8]×€‡óÔ÷®‘®kÀÄWÑŽ@ûÃh?òj¡ŽöÚˆª±:?~¨”ý ³ñä¡Qɺ@ë×ОŽ@ûÃè•òz#bñb¸Gâ½±ˆ?ïµy½ !€øàÛšáÕŒK½5ÅEZ mÛÕÿ:ö;íö»l·ĵ| †µË~v,í¥õÇÒÖ£ƒQv2Ÿ—!6e³3„R\Ó¨à!õ0È`”Ñ&º«}ÊF=„7½Œ²«út†¹ÚKåÎÅ^p™Ã'C¹ØRt=ŒsãEh°»_¹±rÇw=¶rc.žÚE¿c5àa¦ñë•Û0ˆ½[;‹EƒÍbŒE…¶7‹ý±|§?p`6Êoã‹óü¢ïEãM’üTŠ^4ÞÄÙ¥QÎÂðÁ[;D ¸¼¡ÑçÖÐguüà=0¼­¥yÉçѼ‡ãò®‡~ll÷wbmS"ÜOÞ´qiƒ#Ê Ì îU~à ïªâ@˜˜ù§ÅöÂÃÌk`cGw ³BûƒzA`VhÃë@È—ù`Ö½tª/ëæ»ªAùè&uˆÇŸº¡*ÇíÆjhò©úÚX:v#šÇF„ÅücÓȬÐJtÇ‹»ëÚÒ‹YÚ·¥ÞX®fÃÐë´%ù ù`œô¨‘£‹kP«è'í—½Ë û“+r²²ÃQÃå÷ŸÛßWj|É0n!Å,ö€»„dÇ ÚÀ*{×£5ú=(‚±Z1Ò©R½¥ Y{ùÚ´/“ûIÏÂ{)i׃ÿäMñCóÛH«Ùõ ?—µ‚®Ï«)þøM¡g˫ԧÚE·wöÇš!Q襘÷¼,ù³b¿Ñ6 ³äõ ûÖn©pl6V+䨭ø±¬(æã¬ )þ¨My]8cwŒ­FmÅOLì-ˆÍ/ÊNűú‡“k*ÿe.œ’׃[ÌÎw˃ØLåõ@šò Q}òz¨ŠMù³Ù*Ôùý±|‚4ÔÝn-M>u“_?x“Ãñ›Ü®º¼(oª¶ã!#ÈëÑ,®ní%kùÕ¼?ukf¹¿ð¢CC/Þ:‹k•Žß¨7FS¨¸lÎÍšYåìÊ^BÞhÚ€ûy7\Žb¼Â†{Ÿºá¯Ë®©ïÇ»ˆ›ûºÒWe5vþ°ÈØHÿÓ4²ê8~äa⣄ðä~ÿÁ ’_º®ó‡ýûµó‡C~Ô_þîw_aA@Åým¾=~á<{öüv}˜=?ÌvÇÙê¿¡3wÿ=Ûmvûgwñ»ÿã‡×O¿œïnò§ò™ë|ýÃëW˜€RhT|áÔõ»û<;îö_8ýÉù)ß`D9þ3 Çù1÷…ã?÷Ýç©ï8Oçæ£óÿÛ­¶ÎWûl¾É?"0(çëíò«Ý‡/l)6ÛMƒ×(>xIÝŠW»íñð<øz;±»ÅGþõÈZ õ|߉ß9ûü6¿½É÷În¿†ÞÈ6Îá˜sñSÒ9dïrgž/0ûÍýz3&óÛ»Ý>ƒÎ¯iš€¤.ýb¶cîÍî=”¼ÉGg¶Ûoó½Ð8î³íaƒA¶Ãú¹³[8ë[è¡»ì.ß?qPÜžÇr½­ €Ý~£Ï÷Ògi”@z2yæz ŒÐ÷Ù†J*a`9¿'Pq¿wÖPðÑY¶¿?ª÷sÈé8ÎuÜ-÷ÙÇß;Ùvîüþ6ß/ó»ýnvø=Tx›;‹ýîÖùð~.‘™þïÝ:s>À'70Õ8ïWù>‡×@ÃÎyŸ;o·»÷Nv³»?–¨ùÿ Çù͹ÛÝ9ÿtŠÿýÎùˆŒÄÇ»ÅÂ9®  Ø“¿öï÷H1~Výßïœíî G7z·Í>}n5 ?2½’mÿøÕÓÿõ³¸ßÓ—ó|¿¼™Ãôáä £ ®9ݺ&Üa#Tžß«oô'›|»<®ßYÏ×ïtyÛ»õ‡ÍÁ*Ϊh½pÜòc$õਯÇ=ˆ¼&ãwøÛ9îœÕ{fŸî7Gõ)HþÎs`Ñr~ºw¸P¤Á<ÒDk2TÆüè€èÞÞo¸Õ?Rw×Ð|N_ø²øâû<ß6~#Í7žõÍW›ûÜ|‚ð¿( ~ÔìýÆùçYøGçÿã<ó½ñ/ùÊ|l1iÓ³ú_ŸÊ³{ùŸÎb·Vß~Šùyxs¥9®7ëãG‡A>¿&ÀwŽ%ê;›8§=S¼Y­Vîcö6?8Ç÷»âÙA‹µúæ•Ù[q4àøê ØœÁl°]‚ša>~Æ„=/Æ&H5 µjÌüþN‰¡zà;O=¦»M‘A¥JÙŠÇ¡SÊ_ýzR§ö8¨fï>œQýƵ%8Ë÷ï²S’ë»jÖ*ì9§Ü 8{àÜÅ0¯ï`Úþý"ÛrÇÿ=sm;?¨Ü¿Y³Ä?¢oÕkª JþX/r,Кƒ`¥ÆÉ›k‚i3;ÀTlMÆ8f©²Ûì¦LøV=Ê©]´RdsøXÊ<»ßïa[¬Aè;XKç«ü+Ü<ô`òwéÎ,žÅø‡4ÎlÿwfîÌõ}gÄs9‹Eæþ¹ÉÂþÉ£,vÄb1wãüÄÿ9¢èF¤ê«)؆܃¤Ò‚P¦ƒ–ÑMŽ2_ò b4káÚùû÷Î zžÜfðÉ`Æ–Ç€x^ú'¯ç7÷@Ù§³¢‹x€ gåÇ7› %ÇO‚R—"õÈO¤©…qÅ9‰~ìÑ'4þTã`]pp΢eÆîvEL©ÁØ=,‹73Ú5Ð<ïÒ WL8ê,ÒŽ’$Z‹ÖÇ߀˜ínût¿e¢¬¹Üú fs-«H"²D!—›Ýî-Š1U ’+Ëž5±SI¸T¹ÜŸ&jÓz8ª¶Y5`âÚˆêè,»ÃUgý?|üm7ÍQ½O=Åe«ªO§{žVÜu­îŒi™ã2lòx° ÕÓ0,q˜ªÞ®öô¥ÝÙÔ™E_^Ñ“ÛëÒMªƒJ=äšþ¡e?=é5yÑj“%m2ò$d—ý —vô˜ê¡›Ó0º°x1ŒâsÉ x¦â*Å§Ó x¡öY×4ž¯Xz:*>7}Î Hø{&úè%Ãl-#1Äþ¤ÛÖ¢£j&:ùâÂD7e+0ÓÒÓRýÛJJŸ *¨â$ë^BÍj©@4Öu¦‚jJ\Ú„¦æ‹NŸt N\ÓÁ×5­:Ñ¥ýüÌóhÒ ›)º’_\¥hm”Û&v)²UÒ¡[ÍðæÔÚN…V(j.ôÕâ:9-žµHìeÔ‰ëäô⦧Ntc¹Ú±Þ€vóYôÑ@:œ› ¥¯•2«-·öŒEµv°«t¦5uR\MF¸ûT«ó¨†ÙÁ48‚•¸iV)”ìt*Pôµ.]cenU{ÄÊ<„âU¨ÓÙšÓ0‘ÝøFnÚ’‡÷öÝLA稗ã47Q a&Ò6'dmtmw‹þ´¨¹)lñnëÓý¢±«´>PFKœÛáÃf׆¼bˆóº®þª¥õ*:J$œ®ïnÑ¥[Ylz¸#Û!ô(ßÖ£:ͤêä#†ÿN4,qý‘äåÇ€Œj½-sj ÐP-P³ë¢Ä~æ:˜‚%µ‚u¹k”ùzd¯C½ëÍ«–¦ÖƒšžT¾+Õ,ÑPˆTŸÞÔwmŽÅyéJ–TJÖ¥§䌪°eîõ«¿Ƈ¦v!í§ ³ŽVASµ¸N-l âúƒØîçg'J×!9¨@â±{m‡"­øñæ6Q±R…/ô Ã8§6E‰ôè/1Œs* iÕé*Ήk))GIרu}=9ÇáÚÑ4¾ b0bN[6ü;VÛ·ª“v'zþ0Ip!‰ÜNÔ‰!"iº8Ñ÷ êëSr¢'Fª]ŸH‘룎êÂrç”¶ÐQ¢Ä0<+£™•_¨h„ˆv2±5EÇFü[ª¨ " ¨¸M>Ö¸9CŸ&(¦½.31LPL5tH²hõá¤¸ŽŽ.SƒM[‰CpìLxÕhñ-MШР¬znš„*MŠª¶“Á­ÃÑ£GŽÛU7@}Ðø«Wƶ4‡îô PX=#Õ¢êCç—ª9bzlÕ¸Z‹Vsš°b•º€ýƒSTM§ÙJ^Y?),ZÒHñœÑ)/ÓÅ0ƒà²À³‡:ݽI"Úîö«Gxg§Üî¤Ý»cM3=“—!tví·~'’Þ³dïhã{y¤°êJy‰>Éý2€>9ŽJt­æ-’HiÙzÁåy'!a£»ñUô¤/S'Îö¯)Vscñ¯g†F¶×;Ö_ô¤€OY'eñDÑ×óHï(j}mÈÕQÔ]€0:S(úêÁ´,ðXÈ`4dÿJÐ&x8ô£O ³_¨Ý–ªáKÃ6QÂÿ9ÁŒ¸o˜µ©‡õ©D­zýMiÅ*½°dD¤Â%ü_âk¥íÒ{¯V™+*QÊJb?³|Ä• \«.JS*hÙM€ìÄ2½¹—óRÔw#Õå“;Jbô›sÆYë¡O«ÎúYa%Q…ß6Ò²gXïÜËúL|ê]ƒŠ¹hÔ‰ÜE€ütÏ¥N˜RGf%+«¦—Q% ]—æÜ”æÛ$2åšôòÞrT3Qx|üF'žRý{ӭߊÓ,½g`ñʈ¢„hb…ò‚ Qd*Ü„àZ'¾jœÛ²;ÎðØ?ÑêÑÃÛF÷ò±.ºªô] ¡¬º~ßË%l<©R]…gZލ¢³7Xpëõö8#(ï8_YHt PëÍB™Ux‚T»È’"«çi-e|W ùFJô\›&©>Ñ–éÙ^ €ú>JpM"å…?v=ú/Q*rñ÷…^B(‰bjD2A„œ„<9:ÝÚÑ,¢zkÇu7ÕIV9#w1Œ@éš8x0j /0ŒöC€§Eu×¢ñä•dÃ7:‚ÞËߨù “¢¨™?÷¢~ó>(²Öh©¦$mØ0·¨pE”‰?ÉTÝiEh¸ÜíÂi`àËÝ"-‚\§T­È\øD”…ÆÚ£o“âíSÃIÊc“®a®¬xÐÖ]öy¬–Ê2êÈ!aÞ¨XUå²kÍ™b3ðx,+{ÕÛµ¬øŸž×á‰Qï5#&¶ÊEgòôëHkÙ5êe …Nae¥uŒm¼ß+Q²P ݳ=¦†é#¬È\ÙÆâ¡F¨:Tæo©çÏ?a³E¡¸üÒ¯qîUí…–®vÐIÍî:ý¬¡åª¯¬4Y¬i¡Î„QÓÙ–¤¨iþÒB•]DœuYhë=ýUj{õv½Hœt¸¢-+WÆ^aÂ>G¾êP<¨IGG"Ûžm}NœŠ9£iW¤ºMÖìéÍ’ßh$1kOËVKXtÜ´ì«MÑgw©îQëÙ˜ÖÛ¯ê*Ô~‚”}Ó²‡î ¾82 ¹jWh6Wó3£3ÈØzP5U”ZŠ„åNâ“«he½ ª¬IÃRã')LTx2åDÕùˆ‹,'§²cTaHvÚèC#¹z]f˜ÕÒUŽž2c[vÛ•Ý-#µJŸñÚ–¨Ãã³§¬ß̵kíLI®ìfΟ²x²Xñ4´(Å·÷Qk2"nkœÚC¼~¿P²U=ë³ü^:zvœjþ”â„ÔºÞÚÑ%ªÖÒ j\qᆚs3U§”k»‰¾úA¿Ý>åÍÜ@³ÛpK,±³àP'®œÕ™NE,¤ÉñÄï®öΙ’Î-Õ‡äjNbŸ”¢.üº«btÝå|V°Ñ*¹fx©/Œ"gY×4RO7fÆmu ­Z»Å‚3WÅxŸ­æÛdecaõ•k…Ùv%êEó†Ÿst?oc÷ŽØÈ—,m}’öVÓ¥ýLRf|¢–ZÏëÜÛ•aCÕf©ðuúC%ªØŠ^J¨W|¥(Ë®¡¢ó#kÌój²D~NµQÅD]P*7’\püÙ˜-Û5._I1{‘à¿0¢Tļ6*†‡ôœ¨F[«Å•÷ùî‰Ú±%[Žyµ,'¥% ^K§Øk2Õ£§]dC”úÔæÂãB¯yÑÞÆ?0Vî EÚ˜?x…Í}£<ÄmÛQi«š°Gã(áŸôÒ;Þ#$Ê7R ¹0Ò^OK‚Μœåô鈘q®©1ìQâr§´ºÚÒpÒ‘±úU[¥K®‘Ii4©–.̂҄Y_®¼×¯ìºžš%"îfEctV0h ¥¦y-øAW^Ã÷é¯ÌÖ’›Q„¹+9KR;õ*!¬©[Zÿqg²šñŠÈ?šrìÙé4ø£>€Û(ú{QÑ;4ñµô%l0öM$–ùgÓø¬ Xm““È|Zd±*ðŸ»nÑÒÐáˆ×ÍTwܼ¿¶blü‚ iŸ³†]N!9Z£Vzå%ôyyP«¨è?²˜’ŒúFŽZ­­P%=IÖ@ÛFjz­5‰.IP\x­¨q4ðßÖ:è›Nç٦ݼZ¥ h>Ïl¼?O¸}î ÑÙ€XÒÕ|j*Å%‰ÚŽ¡î¥6Sñ=4Dq¶V5%Óph—V«Í h!ɉ×K¿¿ibô©û,6ÉÒ˜»½sª°èÞ½…Š^ŠŠâ/ÖX8çE™XHD¿F‹TDõeÖé8>`òfL”xÓ\E?U7°f¯ôÒQ>ü]V#®‹S*MÆœèr±T @jx6É’B«OìØIñkñ™j6=ïœÆªõ #.ºNš Ëœ={Í_7õ*¡ŽŽ4{T%‹÷y%A…j®Ùý„IÂÒ ôxI1\kгî4,JN0OšècLJ«­ 5ìï°¬ƒ¾®Xæñ+© Øó(<ükÅtû®’ Õ†½‚PKôÜHÝÐ ¾êœ†>õÔPÍ¢¤Æ½5 –h©tV9$Yª)Ÿ?飺èb_ME”G”äLv ë&—RH\ª[BÇK)½ÂÉáò"ßPÕŽ—ba‰­¯FŠó,o¦î” ”ȨaéâŒsðîLÏ|F®xùâm(NAXšð;J ˜^!¨,SBí¨¼Óe؆1æ„Bü|%’RßpWÔ˜ÆÕ,ßjQ¯‡—)p-Rئºû›h*Ï"öî–•£XmI•>TÌZ,µõì€>²¦Bó)kŽU:¢6qNr†0†F*P0Q{qjcO»/uB)BZs—nÕ›%ÓªͲÃE±´›8çò+íXh{©-&2,(5êY·Fh3YfírR½ 7Ñä™MKZ2>Ôø‹RÄ>íöK{,{ÑŠ·(lJ”›~}í‚m]ªŠ¹Ä¯¨ÇeJ<埉ëí©C˜SY®c6g…_l?3nhô¤:³Pa{´4µA±ã‰l#PsyG¢÷B¬ïž#½3µ•iqÌJªhlv?é8im®ºaíÒ½À¤°]|À^š™FÝ<'Å0U•RX0Á:×z!gù$©Œi²\ö2ϲX(cµ[±~rÁ™ñÞ6gtêLÏ=çªiÃûÕ ¼U¤²ìx4οՔà—Ñ¡ºè¢âk5n„¸Èÿ¥þ–5¸D ‘bÖ…çÖ#Ž•ÂÍD؇âFÛv%)ÈœÁ±á¦O™Yƈµû©PCkèIJWDM¢—è+í+.×§¼ ¤qT‹Y}Â~µ7±¢´‹˜9×jðÉžM|AdÂÆ?[˜ÉO›ƒ¤„-«=?VØ^¸ºK4‚éð’ßRMY/æ[±%Á‘F-˜Š<'êbïÓp._iàF†Îés6¦aÓa¹ k‘§:*6ÙÖ}‚ê­ÏŸÅ- GB£ê¼ƒi¼—>ŠUÿ~E ÏÂTP&ëÄkv±Ú\E`£ÍqqjÊ´ccƒ .zé®ua¡ƒ4ÝÍrzUàòà”5¤g|š,@ßBÒá²áóyô™sä%b¥å{a¡èÌ:„ߨ”wb1:‰Ýöê8O——Yu-µæ[D"Ÿu!}¡Ÿ.½À\O‹øÿ‘&5/;P`[#¼°PÇÎRU̲v~MQõ®s]õÎá&'cšmüôÖ.È_z€Á¹Êw°÷»;^ðº_Þ(ž¦Â†·ÐÞBƒ1Šó…(æ~cÝâ¤^µk÷R(çÑl¥!ó¦âDé¡.„'ÙÚÚ+ø€^Å‘°’yÁór‰š3 j_»M/Ú{¿Ä>_ò˜W'bªÀàÃùUJ3ºK£R¥‘êäTΛésæ–›ÕТ"N¸PB1÷» Í•¬âPDwïÎÝ&”ÆÍбÔÁ^Ôuå¤p­0Í…b[_º¨»O\ôËÄ’ˆùª‚sp·µ¾þ勿fìpÑ'´ëé›Nëª]tFÊL¥hч_C¬kºÿÈÅ$ï®$4W$NÖDí*£Ë–‚¦å¨©Ë«M2Õ‰À°_3mç-ݰ ZÛÉÛÌeí}!+ۓƉ~ëêuËjl/*¢g!-Ëê…´/«PP·¬ö¢ J€èKA•Ñ—‚NC1})P·ÐK±¸VKa}(8YŒ¯Á²'a ªˆkE°~¸^@Á¹áÚ[ D_ ʪS`¦I;¥§Óú·•”ÆC ”ëŸÛáÃÚ ÄùººQ'J¯ NtiÿuM»:q)w®kZêÄ5²s]Ó¨WÈŽ{N / PörÐ2Î:V ®¾F1ìO¸Nø:5í2êÄuÂwqÓÎS'®›V¯jZ=uWIö£ý¨C?êÐ:ô£=Šù1ºÂfxÆ[ÿ"J4!âZJê̽(i²…}M[âZJªNèa#›}[ð”èÂÄÃÙP#qÍYW™m4|öµ+·RÔ‹Ž^ÂßÞ—â::N­ºCZ¾ûÐa ?ÚlõÍG}óQß|Ô7õÍG}óÿ¡úæ'«®©Dt¸Îº…âztºŽ·w¥PœÇªïF¡èÉ©ž·uEî²Ôï>îs_/ Åç…lÝÉ“¸Gœã€ðÏ]ÐÎQ(ÎubW EGûfdÞKØÜD¡¸&"µþ¯'…âZA¬vö§¿¦…¸Þ£DS(.½ª¥‰Bqí(i¿´…âÚQbwöEln¢ðêP×*ŒyoAÔŠkñ$ø“^uS[‰F³×ó+¯ÄÃè`m°ÌR(†ÑÁº],ã wÝdºÄ0:XÛ¶àB ÅgsÁÎãžåqÏò¸gyܳ<îY÷,{–Ç=ËãžåqÏò¸gyܳ<îY÷,{–Áö,Ý1ï¡ÙE0}·‚+ð8×PR\Ts%%-¬?%šq-%uWçô¢D"®¥Dç×RÒ±³û^®T{‰èw—N£„ô§D?×RÒåyÉÅFâZJÌH×R¢ ×Î/®¥¤ó…—_¹Ôpɸî¦ê52WRSõ¢íMMY¿‚L‰!¨±nJºŽ¤€šªÖÖ›òVêAMï šj(µ÷]x_Og£ÆðèZj:ñ¨ 5…GÙ•ÔØÀrWQóÏÔ4\bu95HŒèÏÓ£þÑNÿh§´Ó?ÚéíôvúG;ý£þÑNÿh§´Ó?ú=îY÷,{–Ç=ËãžåqÏò¸gyܳ<îY÷,{–Ç=ËãžåqÏò¸gyܳ<îY÷,{–Ç=Ëãžå_dÏ"~'~ç¼ØÝÞíóÃa½Û:·Ù[Ãç 8^†Næ¼úãäõlwœM7“Õ4ôœ›I¶OlÖ7Åóù$~æN×bò—C¾ÿýaº˜üñ~=ϧ^_H'ÎGçÕ«É/“wÓí$ßc×LeeÁgÏ<ï—éÔ üXÈP†˜óëÉ«éÓ^ï³í/À™éÓÀ‡_³Ýú0õ%¤~˜ÞNòÍ&_î×Ûõ4†™OFAì|œüe»~‡ï Š#üû‹+}økʧ~ÿQùä«Ý~žg÷¦ËÉÿþû6ûêÇožL@þw?NW“ßÿø‡‰ëN“8td¥Pö¦)›ùåwS :æÙíÈùÍ÷?~óåt)ì‚_ßÏŸþùº}ù®#“Ôƒ"üЃ¾™íî÷¨hYN6R°¾±¨@í>C?áz|?pC [Qðå·_ÿâkxÀW?~ ?¦iê ˜ê}ì¾—“töÖ³;ÓKØd7ûõ³Åº:Ä—ž[t5Öx³¿‰â =ºc"]M½(ò@n¹ä“/oÇ}6ƒV…Pag¿š¼‡/æ»é~B|>Åóü0ÛCãö“üBR²2Ëî²›õf}\Ã÷‚j>ÙÝa.n7öÎn1õcçÆyõ% àjê{øó+Êú‰ðã Àê¿4¸šÞa†'S‰¼Æž=ìG å=ü—ís(ö.›Aú-ˆ- 1ä9–¶€¼«Ó¼P,8jJîî˜Ï¡Ìã3øZÏà×mv÷t*€ÇOèÓÉŒÖ'#Ÿ/ó§ð/WÀ’Ì?<½É`¼Ã“å>»[á ¹ËöÇ56›>\ªðøO×PÁq¿þDÜl¨{‰üåd·ʽúÔ:ÏËËé[ì·—}0eÝæ‡U~x¾‚O?r7s†gÓ Þsœ‚ŒÞL–k¢{d%_À÷ÌÀ;‹) â"Ö ª†„š³Í&šãêöýÐ;ÂsP9óÉz{w|¾»?Â?ðp±ÛC“ 3°~½qºŸqñ9¾‚Jî9v¾Ë6¬Ï <‰cünOÝÏïaV{2ýU³Ÿo'ï`ÞAJ‘ù(…÷·ð à*úä²Û»M­G!¤ôYŠ”­P„ÖØyó5P·¾¹g¶gøh±Ïóç(È™B`JŒæ]>YQ^ª†õâz¹¥R÷ÈÀw ïáÄr\eÇél²Íß“|€¾‡–ᬲçß·ùq…ÍŸcwͲít%¸¬{>'ÁZoUûq¨®—Èõ#ô,Ëõœ»2ðBñDk»Í÷ È}èß.Y·Ïá«\7þ½gÁÍtÿaz»™ x9g¾BŸ0Ëóìðшþßï×ZhgD;6…Úz8+òøÇÂðÅ™´6ý4§~Y[ /†Èm†=ð{sØA&&4Ÿìs‹u8‰|¢‡ôSœeŸp_DnLb¼ƒÚe =𤙤w½Ÿ?E†P5yu‚ù%Öå@È[8ÔGÜ„Õd}DRó5v%³„úx ±Ëë4 F“G» †˜‰æ®{¦óŒ%G H«—¸©¦(3¸šzÓ;‘ƒz€:Àï~÷Lg_8Ò‘âMþ×— !879ÔO`Ö„\.ü?¯­7ÏaÀÌaì9ï‘Õ¿ÝA&õdòzo +Ç~zȳýlÅ/ù?ñŽðÉ3ý2ÿ0[Ñ[˜ÀJäMó¿ÿ¶(Τ*|}süx—;Ï¿]oß–›¨ZøüOÎóož“·w~FqÿÆ¿¾Üï³?d°@€´nv{ñ³Go¡þ¯œç_~ÿ}¹[ b$ ç=61ž RG [×wˆÐ¯3Þ@R‚ÊØkÖ4$ª~ l z1õ¼4­)é¤S„ɘ9E²K·Üߘž©ïÑÜ7N{ßX4…vÍ+Ín-žÁ¬ù ¦Jþw©ÓÂzxòò‚w¢î¥çcÇ2oâ$nVýZñFo`yÍJ­›JO[˵€œ–y*º&c&¬ä…\’sÉ“á’$.ëx±º’cÀèÝ„˜’¤²)øZ1Å烳Жf¡-ÎB2†¢hAÆ8jcå]йIM%5\Ò3J J^Ê%`.4Áv°Kµ Wp'pÏÓ¶ žÞÓ /y† "mâÙ|p :ÞŠt÷ÊüúiêÉPÖ•[Ó3³ÓLûrØiß!`âw¡ù4ñ§$Çž—m‚LïI’¥žú_»¯©çF®¨)£¦W §.ÍJ_&©rðYߢ*²¦}qsá,^ûN\5Ñ(É$me¾W ’Ì /ßMŸ’©a½a“í ©¡¨)­–U¦\+})«äà¬2TEÞçÆ*šU‚8juð=Í:>Ï:J‰¢‰G+Q Ët1^ùuåÖ0ÍäÌìô³Ž?ð¬cÅRЬã¹,Õ!¬ãmRïIª}=í¼Øެo.î·¬„ë-÷m÷÷dÃÙÎp« ÔÔl*ÝHÖÕvÚEΌ҂ӗI½?ôeSuVã¹HªÓ˜lªÌŽ( [Ùï…b‡šdpÅ$n¼¼Ï6Pøùì¶àd«Cköºl3…XO¥„ù¶¦Êž˜œ™¾”'ÏD†è’(©ðä’É#E%Ðó¦Q]Ã~µæ½fHÙ|òY|Žkè~:¶˜áY£CxQX[nš¬tÇ~.uuÍ­ÓÈY]² Ô˜÷âìÆl˜!™+I¶rÞ›r6Ÿ|ýõ?í¿d0ÌoéØ)­+¯n*SA93§øª7äÀÜ(Èq`è0‰Vg'>s$MÓVŽà{Ã8òbs8òÞ—XrCêÐÒ¬¸ ¼7Ûщ«N°vÜlò§x:çá•퉕°®ÌŽhäŸÊÖþrj¦1È© ³Ò½êËP›´È-*nJ£! eBznëfÞ«¾÷+v"Q¨8KûÀÀ a‹XSpݰÐ9³"-.^ †ÞëZTA‹á¨MðEÿQ¡8#ݤ•3ø^q&`Îü‘Núh ¿)/Ö0fmÅ !5å×0ÈäÌìô¥ fP"U~Ó”Õ©ßE'¦àp‰h? ý´i? Ì{Új?À†;µ¨îJ;˜ƒ#QSA W §®ÊJ_°1ÞØù~ÊæìjB†nëÆ€Þ“ zcðbåŸu!­ÿÃþ,®+´¦Ÿ §.ÞJ_&½Áà ‹*k×ËósssO‰f«§ŒÜ°íœ€Þ+î¨}Âwëíú–¼éóe¾Üç  ÉØ§ìâ¼9Må$sšI_Ê—¡­UAtfV¹ÚòÜj-1(öÜÖáƒï3A R+ô÷ÐW¨ãàB0_T!ƒd]qµ âœ"+Ò—3ÈœAš'ˆ/˜öÅ5‡9µjo‰A‰×®Bá{5‚ÔBý§7ûõ|ýö9ñ¼ 5¥Ôðrêò¬ô¥|z9¶¨²ޏsŒœ×£ØÚ*É‘¡…=ø^±'döüY¯Ï´ðØŠ“ïú¢¦Àº¥ÇõuÑVúRN…C/=UIÁu°r~ùaîø® D wð½æNt¢å¢o{ò¡sŒÅ§È }zÞLb«*±Ò—ò)ú´­ J&5¢ˆ/Ò%E×—ž×fø¦÷°ê|œ„¬èþå])²#ì¢WÖ}Úù&cf%/ÐbÃAµXa‘#ÞW|œHåÔ÷¢¶Y„Þ“œ†¤Ä§^¬²í Ø=ä+gy%çäɼš,ö»[`„õf1‰ 鯑¨©´ÎÈGºz+}™‡Ã¹ ª,«ÒéÑÎÅÓºfH [wô^1Dé­í ÔïMq§Ü¢ÓZ›89EV¤/爃#Ü+6GÎZ]ÅÙ¹\Jf ¹Õ·°Þ Å¿ K¨ßk9"h˜q“Nkmb æÌìô¥,ñÇ` SrK߉*K0( %ø^±$¨²DÔ±$l$¡$¢¦Ò&ŽpõVúRŽcp„©xÚòy]M¼¸u]Å÷d@Šx]}µÞ3ÈmOF׸Æf¸Íg‡v2[{¡[[rÁÕ5uXé ÖÜhè#eך ØÕ¢ë³ô¦²Õ%‹Þ“ôFÚr¤•Cèñ_\/À¾ó\ØžÔUç%¡sfvú2™Œ†whQ”ÀܙȞæhûX u€£ø¸²ÕŸ‘Þ+>iR~P:|Á&75%Õ± ~©2­ô¥lÜ™¥ *ŒÏèì½&öëX2«<¿Um¢÷ŠUjþc¾ƒ­Õþ#/Ò†]^슚Òꌱ«ËµÒ—²khc’EU4Ó—£/c®ÙÙËé·n5è½b‘Z³ßLŸÆtž¹Ì6¹¡[Wbݨ ]]¶•¾”MCÛ–,ªâÏÆ›GTL§×´zyÐ{Í.òòx™c<ît?Ùè€îéÕž\w>m‘Æz|–ñˆQ,‚V—zoX€._êc·õ,Ûl>>Åx11™78(ª-è°åð1òŒk.¾êÇ94 9Nœvá€hœ³æ@¶|o8€.?Á”%ºxeØï‚ÖƒE‰ó» •“v&Ý«ó‡vϰH ÏùÛˆ‹ßãE$ [%è½bˆ²z§|9ÊZ™çûu…Õ-󾯋µÒ—®C[¼-ªÎjew6Á\r‚8l=› ÷ŠKQÝÙ„Å&àùiiµl2åZéKÙ Î&CU~>lb+JD~+›ð½bSÌlú‰52ŠÄçíèf}8ZK¹ç%i]ÁuÓ93;})ÇâA9&lª¢¨¯íJ ±7Ây’ç>¶±„nØzvAï3Ž”$ËûÝrŸÝ¦I˜ˆš¯kN.ÂDS$/°¢ÄÃZQ,r¤ÇlDñis.B/lÝNÐ{ÞXQ¾AßI¢À6uH ;Ûº²ê6°Q¥ZéËä5ÞŠRPeG°}&Ûsf–ʨÕ^Kï³”%å/³h“SÎæ¸~z\íóŒà„‡j^M±uÁ¡©ÀJ_Ê·ÁÃC ªÐ3_\´[ä¨ÚgÓIèGaÛQ5¾×¼ñOxS@0MóbBTøÝyæ€ö¢j°Ò—2gh#ŠEU=ô *1'ˆÛŽ ÷Š9A}Ðc] A˜SdEúrF#=ª6¶®ÆŸÀÍh‹†qжE¤÷ädzÄyõa’Íî6 *y^Ýçuª’Ιiqù¶/Þêa“vvÏ}°@oQÍ ïe"§wNìÅwü Ø‹ïÈG°—Ï ìÅ?ö‚c¬ìżVs$¬ãi nhÞ¾©€)&¢6<Î;G*!þ¸ù”ô¦ÃÞS2ŽŒc¾é78‡Ž2Ô8aÒulŽŠbÏœA{ÀZ†×üé\”Y†¯-–M–ûÅÔ“[Sl#0g$?`õM?Ž lE+¨ižM³´.œÌ)6ƒ†íl¡Žc‹É —W¸ãáH+œÓ´ã—¦f}ët×ú°¼aí«›b«;Ä®A)ñ%vÛTë·˜\n‰/ËÙ;Ô ½šok•BΘ™dO­#˜-aQØ×u`¤!ìAÝ£eÈàkÚH±æ6»£“2|þ|º¤gŸGû‘Ó¶S\v‘ìŰh`†áŽ £KÏÆ®Õ‰/‹|©ç·ñ_¾Äš/fÑÁ×fѶžpZn½ž j(’½¸ '0aa"úéðÃÛŽFízIk5¾7‚ð}Á"X$‹ŠQtZFÓ(âÒ¬t?yc # GtF©i×MrìšãÍÎlæ}Á"i¢{µ/ª)¢iqaVº‡ä£ˆi³GÑ'>ÜÖ ¯•Cø¾à_pÈì\kŠhâf¥ûqȃCLÛgÄ¡ÐeEíîmô¾àP`8t«ö°¢¦„†M¬*ËJ÷cP0Â>VÑ…Ÿ•h¨Á¾Â3`_¡e\õ‚IF”§Þ¼ZS|þIUdÒ}?¶Nжî6ÖñÏ?4û’ð *Xh±¨`ŸÖöDMM³ f¥û±(cdÚ>§YPᶥᔰÐ2yqÁ¡bJÃŽ&VU˜•îÇ¡x 1mŸ‡ØïJzAkl½'¿«„ý®¾U—dÄQD/ÏîfuF ÐÉ Ü®’aÝ®,rd)Ô£PÃw…R´Âw…jo’8Ôl³1vx¿Éj²-x½ÍñŽD¯Þ[wy©q9geÚäÌìôeN Éà.Y@‰PT…é5ÆÎVÿƒ÷óÒ[w"ôžüºŠ`^懊x}6f¿®°Z#3çY‘î1“$µW#\kfÖä”0Ïvýp±ƒš-AÔºý ÷zœPìF[^q4ÁnÜg[¼K,©+¸þCçÌìt/ ½kÔä€ôøéÁáÝNÌB6­È0jÓ‡½7l!LÎÝíݺ` +ãÍfÛ·tCE,=*ó¼ÁR礀`“îÅ‘¡w‰i¡;6@öQܺ¹ ÷†Ƙ}Üf·ú6—â~¹õápŸ#9a9F]üÝLÎÌN÷âÇЛB‹4„k½ÍúÝ×Å8nÝ-Ð{³–„Àï2jÚªK\ðn/Ü9,'ù„v1g¼ôÔšâë@ AäŠìt/Æ ½×³H“á˜0SÌ6dÉ$nÝ Ð{3H"`Švϵ®Ó^Œ­Hº\brfEZôcÅÐ{:‹´Èíyô%.:@c…»–´"{á{ÍåÊþ¡-hÆ:š$~CMi ø ª\+}©š+GÀoPTÅoÖÂqžWì·ä»IÓѱ0ï5¯´oîë~óâOh»’^ÄY¬#ÿÉ—{Ø¢HºYõÕILçÂâðTº WÑ!¬31ÄXémpP{›´88£®]8 “¼Ô-ó¾/˜$k™„Y˜I‚Žø\Šâß[â—ÂüAŸßcÂÊ¥h(¾êÇ›¡Ué‚' úÆ;wä“ða¬·­CôÞðɯåf‘¡0® —¢Ø„·ìâ­¨—¼ø´Þ:­¯òe Нúqihõº ljd—;8z¬"6úúÛz~Lï §‚N Êb;Í ZJ1 4tJeLÁTWSwݘ‚ùDQa¥{qkhåÛ"-ŸÈ0“Øîë‡nÜÊ$|o˜Ö2 ³ØL*Qã§ö•×+Ÿ/‘žÊ TÅœ]¢ §¦ÉJ÷bÙÀjy‰´>X*4ËEB–ƒé¾YÎ3vsqÄ>;æK$„÷&o— ÞI)ëJ«ó0S9ÉÃ̤/UïG¥.¨òý¡þ뮺‰ØˆãÇ^«Éß Í#2yZ‹ó|‘ÁŽH]ïM|Ë ¦¥I,jНÂb&$³Ó=ƃ?¸Ô"-ðG™ÂÙjã¤÷†’Ì ‹Cîÿ¥éá%Ò¯+·nÅ×93;Ý‹Cëeiµ.úÞºÕŠ)À#‚ 7~*[ 7ôÞpÍšZC'wª,ë#1R¹¦–º‹Ð"¼T›!IÍWýø24DMAŽ ?]Li=f$öö\¿'Þ3R p‚, H–˜O~™¼_WÓ_';Zï7ÙÝ/Ó©˜×2(öÓ:2jdrfEZôcÐÀÊ—MšåS?p¨ÿcòGÀ¾öX2|oú —e¼™š…A\[níLdj°Ò½:tp‹eAZŽu' s‚ׄ@ú­ÖJzo8ÖÊï Ü>g{e ù¾NÌ]ØíÖÔQgSQ9 ­ZÕ+ÑÐ6CÎe3ç!«c¾»#ðƒv˜,x¯ç£F¬ÅSãÖ*ÛÎé(l]œà I¡§Ö±DçÌìô¥ŠîàØÈUQ˵ýÇF"5ž_rÏÏXP‚ª9R…²Ø[> *ÿr³Ùͦ^”ºuUÔ«œx€o¾ê34†‡(ȱoòé.Rf5sÂÐ?õçÌ©3C ÊReÎ×ÖGà †õžÖPÇ3£4Ú7ƒŸÜ¤Eñ¥'÷âZþDaûàÁ÷†?~-0K•?ßl Nkhâ×Åü¡t/þøcð‡Iûü‰£V£#½7ü©5:R–*¾ÝesÅŸÓšøÃu1(Ý‹?ÁüaÒ’?F$Q«½‘ÞþÔÚ)K•?ßgxc05í´†&þp]ÌJ÷âO8˜´OÀŸ4öÚá0b¯àOTËÌRåÏëìæÏi Müẘ?”îÅŸh þ0iÉvè ñ 6 |oø×ñ‡²œðýd¨i554ðGÕEüát/þÄ#ðG‘ö øã%­ã‡Þþ$µüÁ,uüÙ-¦^Œ;­£ÎkFçÌ(ÍÅöãÐÐãi¾w©×L¯Ãã$d´N™„í‰1Є7¤b2Ûçl-°|ʽXSa­ßÓU›´¸xC:4¶³EU}O·æ ‰St«ò˜a$+æJ½LX΢1óÕýz3w§2ÒX&«Ò‡ÒC1Ī|Ÿx»€naNE î1ÌÂÁ}f,ÒNnBîÄ— mÇ„÷Ú|Ö»ÄPµ|‘Sž•NëhšË0gf§{u²c.cÒü®|ÝaK¢ÏÀa<¬„îV#ä² w0K•;/nï6G6ãà{ÑÉŒ£*³Ò½˜ã`ÆQ¤5ã ãRžÄ%ÀG¿ð1p‚ àcàø€Ÿàc0,àcBWéiÀÇŠ3ZÍÂECð=+{ð^tšò£Iö€Á³#v^Ñ¿K@±ÍõF† ®#²åO³û½‡ »naCµCbœÇ^LÅÀ@„]¾?êsµ¯Zì¾ÙÃÛÕjjɶqî¸É3½9ê‚ó¨3fV²k¢áÇ‹`Â.ßõ Hc¶t†pÄ6ר€êxA·ZIš„è󈫵‚y4É^\‰GP#˜°v-B åÙ”\†Þˆm®5%`Ž:®ø¬ßuÂrÔ™+¢–#S8tð½áNPþ蕈;/Vùì­âÎiMÜáÚLZôãÎ(>·LÚø‡5°ÊßL<×cöø^«y“Þö„Ó4¨;¬Á\âdü¼ØeûC¾eËsME –gU%¦™¼~< G°<+ÒÎZžW}Ý mÞ8~ [­œø¾àMÔÄÌeû®Ù¼Q±S.Îݘ¯6Ž«ëÅ´àt/ cH‹Ò¡‚HC4ò¦l²Å÷*ê-=µ!˜«i°|‡írמÖÖĪ×N÷bH<C˜4›!âæŠ…? òƒšýÈoõë¤÷f€$'ü`óåªá´P-/§Õ4-/SdEº'#ÆÞU}á£8(ÀM¿}Äà{á´‰Ct¯E•CŽÏjçi-Mº3äÔØE\w/¥cèÎÜÉC1H#qíˆÏø¾ØwºµÚ3æ9eÏ:»ýá'¶¤ÕÔÒ`Iãú„îµótG°rª¾¸Ì”&.æ-8löÓ ê9 b‹;õ÷`žíùåýí<§u4 ®Í¤{*Ï£¸Ý*Ú’‡ÒžcFtÃvè|_ð§6ÞšòœðG!¦ÙiMÀl\›I÷åÏ–EÛCóÇk¿âŽÞü©u <'üyµÏ•ᦦŽ&þpm&Ý—?c„\+Úš?²ý®;z_ð§Ö:@yNøóÍv~?Ë¿¥³œÛ'»\~grf”fúzriðë Úl3u7lÑ+lí üö«îè}Á•ZGÊs¢0W~@¯'Á :­ª‰-\©•îÇ–p ¶0mÈ–a1@Ël Úï¼£÷[¢zÐØ­c‹Yl‚.7àéœ hÜ×Î9ŠW­ê‰S¥”wØ~½/ø×Æ5ÃF!b˸£×³ª‚û8Ý?cæ*Ú’Ñ Ñjü°%:ˆÚ¯Ã£÷j(ÏÉb£ò°eQÜ1>WÕfÒ}•1Btm¥ x.ó'N‚vÐÄ2wzµž”ç”?Œ”‡-;­£‰?\›I÷åϦEÛƒñ‡ ‚$iÇÑMË–#ÝZþ$IRÏBÊöÖÒ`*Põ™tOÉ1Lжq¢lî8AÚ~¾·¸Sk* <¶Ksç˜ií M;ƹ«Ú¬t?ÞŒ`*жdt¿ÃÂ)tÓ¤-èßkþ$ìxó§õrõt“ÓŽºá —¥+?ž ï­ºgI÷L/'³ÍýáÈ÷T, _™Ê€k:{®9…¢©øêb_d`Äý‚ûNÉ‚¬y|\ÊöÛìè½îòg^ƒñ™r¨dßew {Uº±¥1§ÈŠt¯1‘ ›oȹ [H\w„ãù H²ý2;zox$›xäWî³Ó5]!‡o¢ÊgKGå8SAùÄqñˆòù¡|†C£|&ä7Õ哆ßù-*~ò™ŒZø`(ŸJá»æ3iò :Aú,X£­´#à§Î˜ +Ù‡?ñÇ iØç°§ë„ȧ íèžÂB÷Lj<¨ÊŸ~pt;†ºvCøL „Ï´?Âg2¼û”!¬Ýž3Ð8I;À{:¼gRã7Å㤊ðiñ…Št×éô©3Ò•ˆA Ïdhש‚PÃ/Çëv"*]2Þ´ zâªgʦ›oñîÕ÷–ñ&2Æ›UÕxcl7âœñ6é]ð?MÆŒ’áN¥C[n M¾l˜ÐT—Ë !;ÓÓÚ)N¬/v·w÷ǜ׉NØiÝ©’½4ètø» a—;tó}–² X§FÌT‘ )cuZ,a'tùïØI80 °³H÷b‰¢†I³75ÃÞœ[æÍ)rf#@gZc«6>gƒM)·´î>ïÀÀaZé^<ü>ï‚´àÜ}Þõ)é(ÎVP[ Š3m4Ë($Î"Zó‚]5’ÎXœ‰…ÅY¤{ñ ~œèÞè½ù?c[æÍ)6æ §0¼i2Ì(ÎÓqÂnÔ¬N œ‰ÂY¤{ñf ÃŒ"mô9,0à›NGðÍ´&ØIØØ›§¼a¤3úfb7‹tOÞDcð†{ã¢q#.? dÐ5h˜¨›icÜ¡cÖñí=Š7`7 v“F¥{ñ&ƒ7LÚØA‚Ì›‹à6ÓÆ¼BÛ¬›É¤b~·+êf‘S rºƒ’bÒiC JtªA½,3„ñ-CÒ&†`®—æŠ>Š\¤Í"gf§{±eè]¼EZ/ÚŽ4%ó‰Œ/†ÓLâšNð4‰o²³Ð×UÓŠ§)®ÃÓL‡lºP³÷]j€ð}B— j¦ AM RSœ°ÆZç»!j¶Ò¤ûníGÁ:eÚÆ>“ èò²dè²q5AiÞlñR¢VWá‚’ÔÝ 5!§Ö,Ò—²†1Y¶Òpð€Š%é9+ôb·+¸f‘3³Óý#Gد(Úp¿"zÝüX;}ùžAÒt:"iBûjá³,(Í~P ¦”]A51§P5_õdÉà¶ãU3’]f²öm£æC3l¦SÀf ͇àb1À–uì@vÍtlØLÜü¹SÏ­óa>ÎD6)ˆ¹ +d¦Î©gzCf2¥#ð‰{ã!!g4Ÿ.ÀÑÄÖ{M|ªbiŸj.è ¥XPšÁPšLé|âÞxP>ùãibëeŸª˜ššO9tÕÔ9µ÷SoPM¦ux÷'Õåþ¤¹tª&¶Üoâ#kV¸ÄÐsAg`Í@ƒiéÞ<òÇMÜ:š²m·¡kš÷šO~½k'‡\±}Ôò’ZÒ`Óä$5“¾ÔÖíI±ƒ”GñQ ‹15=¿Þ®}‚©‰û!ÑÂ6h×€X–1¶,8M/Àsº¢<Õ%§äÛ‰(f]Ð2`Œ«´Ò}FO0¼ogAÛ˜îRš1€nBce»Ô äfÁŒÖzs UiñUOÖÈÀKmÝÐK. Ô,ñÝÖËÒmŒMhdí-(¦(³D!7\‚°éT6EO~øŸb³§ÙcÔº@lŠ‚/µ‡>TFíPQHˆ¾Ô d3±@6‹t?¾cð…i‹ÇœÂ_.@Ö„ÆÖz|RžZ¾¨µ´+¬&qPÁjš¯zò%ƒ/LÛ˜´ŸÀÕÀ]6âjBckwª¦¨ç {¯uEÖ,rfj™¡t?ÖDc,-LÛeÀXÝür‚´§Bÿæ»;aÃiFNTÓ„î„Óüœà4£¡á4Aãi(»ài–û)’ßhÚÕm4-¼F{Âjµ#8¦îYxƒTíHÃö ia ¹æ×Ç}vÌ—96×x)ZÈr^äù¢^&dTUÉ‹wŸC¯BQ2m›éÄà5Ú”ÀL Ý šŽ¢é…õ!ºUÍ2M9'¢q·‚f a3­daŽžË½pñýöbÕKg`Έî0šÐêÚ`C ¢)lÎ×svAÏ43+Ù1#¸$ ¦ìºûPºC ¨!Ó©‰|³ 5¡Õµ[RÌr2dÌUv¢ R&qƒ«*’ý3†/"SÖÎ1Ø1vÈžÝ7¡Õu{RÁ°›Æw¤uÜŒ ÀMd&%û1&1LY¿sùÊÏŒÝ8 kjþ¦¨ðƺ«ü¦É™iÑ“AápÍŠ¶‡¸+”t¾V‰YRÌl N/ªÓÌfû<Ã^)if°¿5ðž5,œº+}±r6´·¡EVè1Ý\¬œ‰sœé€È©!1gêÏØÊxœzÜÛáWkÂ9'@'LNÚš+àK+ÝgðDC+j6ma0 »Ô#;ãpc¥V-'(œG^0|6‡Ž0´X(šW"Åh]‚¢™ÔÛ•Šf‰EÚÚÒE“KíÉ#ù9¡hö´¶D—£h&õ±'(šÜE¼Q7M“3+Ò¢'ƒü1 ±˜6ÿ@c4ƒ:ÀiZ Zà4+ ²õ»!jšœY‘îË¡`G}EÛC8êw(Bòæ²Ai#i¦LÏ×ûýnÏ@>µ'Í¡+E Bg—¾+ |f‘¾xñÚÃ"+Žþ–‡(i67iV=3GÞý°_o4³‰nø™qQi¥ûŒ›t”`JE›ÿ@×›“fЙÐðÚí¨‚È¬2èÇüÕšÓ $ÓäD„…"Ý‹C£¬9Ü—iÓ=ç´”÷:-™Ä ]¿Å<ö^‡¹ó:ÏçjøtÂÆ49³"-z2g”Í(Óö`›QfÐ%@™Ððz9ʬ2è'¼o—Ón™&gV¤ûògŒ ~EÛC!ÌÆ.)mx™¨Øx™Òãýb·n'ÇüñåæÁ0E'„LÌ©«±ÒëÞà‘ㆬ |ØÈñØ5À™ÎYàL¡xS¿µ€3yìÌv[仯î× 63¶`3‹tŸÑã ¯´uÖƒ«@—D#w:Àg#§~3zŸ©¸Ãþµ±‚ì¶Õà™ñ5à™DèÜaÚb3{ƒhB£k7£' šŠ;¾ÃÞúc~üþþ–Cl:AibN ¥Y|Õ“Kþ6жn6Ý"cö±9)lèLh\ÐiE–ØñÚfG'øL“3+Ò¢';‚1ØÁ´]ðÔ¨vذ™Ãf:6lfìÄØÌ؉a3?'ØÌxhØLà°#l¦slz±Ùmù~ïn¸™t…6ãfšd¿ñŽq¹7Qæ Œ›ûj£Ún-p3¡uQý65,–8Á¦jF M“‘9!.Ò¬p" â³~ƒ8É À2¡uq­ÖVË,q‚Ìä¾Ù3“\)¹Ê"Ùcø¥3eCCÉÆÁ…ؘк¤ 6¦b„>¦Nºâc&>fr>&‘9ì…¶e½/èpþÉ 9ƒ‰‰¯EÁ´ &¦bÈ›Õ>ÏæßÜÞíöGo*ö  >¦É˜YÉ~ŒIG@n`Êlà†^[Nµo .„¿Ät“/z³†’14: a “Q±¡/&S<<˜´nht»´†C£º‚¼làÅë»ìývª ®º@_93;Ý“ÞhX —35¾ÎÞ¿]?<WN±(Ë\±`.±M—2R¾®|Û¾m›¡»@_2ô"W\|Õ—%c¸ŸkÌÜœãÄ€\г —_ü¦ÑÂ@—¢Ž/ˆm¢@™ºà\95(S_œK&xT&&n,T¦8adØ´K<°Ñ.¥d¾ËowÛä6Û¦ó6'›ÿÔ |ŸŠÁÖÜÞßÚñ7ÝP5# US§ûÐŒs'°¢í¡<64ÚQ6e.[P6 þ¨µuÁÕ,rfvºwäÀf3‹¶Ë–¢ëÓ€K¨U·áo¦ …¿)ùæfçÕ{P¼§O½Êyů_OeЇ2¯`t{—×7ëÍúzøÇi>Ù¬oö(é^EQ8uN :Ô_]>÷ îýdHqïáâ y<9—rÊ@Ïwß}ýæ›×8œ€zÆô´u†¯çËüû—°,u…ß,rf”½á7åð78[´IÿÒµI ⌛°AR§y_ðJÖñ ³Ø¼B³Â›ÝË{íMزSçT!AvVø5Fl¨¢í¡B ˜?âÌNi®z¶ù£!;‹¥éûݼK§å7%…×\ƒ×)‡¿â™Æ6ÓvùXÖ.ñ/Æï”æúçòXªÂw"¯þ™vFï -ôÎðôN9ü½ÏmŸd³\Œâ)Í}ÐeFUA<ñ–²sÿ_ï3P!’ÎHž:'ª櫞ìü:h ɳjÙz¯Ä÷\‚Þ)Í•ÐåùŽÁ;Å)k~Ìg÷ •¿Ëò`Ï"§Fì ã)ƒqŒçÀȃ̎PBó#®ãG©Óðã'5VR…»ÙÉ­@£ué~¼ˆG¸THÑ6æ¥B‰ºà„NhlRâ‹`¾0@g™/¨»±æwÅæ49EV¤ûr%ÁWZõÅEAT=/©Møbûnx†;iͨQpÅ,ö:?¾ÌÙýF¹çnT7¸ÎÀ‚ë ÈgO¥cÀF1mcà¬%éÔ÷²9®M¿Gtã)Ý7ÛÃ1ÛløÇ´¾„Óž63“ìf`S=|Ú¹NkçŠöεȑ2$è¡Ô%„”%›#ÉÌ{’R„8Ô"Ë•!8ô¼ºúŒæ¦í`ðÞ0È8dW»é~2?pÈ52i9Á›Ÿ×¤ñ-)Ô‹ÂXÐ÷ç Ø _©š¬ôÅìÜv]º‡Æ¢Yã5ÛÌ{ÍŸéRS³ŠÇ™gãG1 *‚©g‰‡{4ûÀÔ“$¨©©Î‚ºN+}1“¿‘¸ +ñÆ3¤3Åo6˜÷š)|”:ùv=Ë·â :ŠìP62fY0F ~ ݰ~ÊMŽº k9oa°ùQ"j¨»€5J4)Vúb^ Ij‘eïzܽš†´"Aк"ÓûÌJ6uÜ—]¿i †4½Ö©éÅ…Òs>8¯þ1ñpQ£ót39îwÓã#Vq¥ú£F@aÞ+R£P¾†æµ~ÓØfÇõlê'äÉ{w‡C‚¾HÑ“ ¥áÍ*ŸÎ'ù/®ÍÖùv*ÐÍw9É?ä³{ê•%%Ím°àd›M¾©¸Ûï–ûì‡Ïô-D©6o—ê2û†ÕdŸÿý~jØbr\eG" tÑ[ ~çð6~·ý~»ž¹@bŽåO÷b2ƒí éo4H1÷ÊTOn` ã“ öŒËmŽƒ&Ûµ*Õ*b·?@v(ãWzG€Ê”= ’˜Ôœ=¹]o×·¸Í­øxyi–À–Ng“ýýv‹ôB±ëÛF jPÿ¹‚n$# tæb²Êô÷H4ü·Yß>ej$úÜ@-Ј5ä>Së:¯ô@ôz Øf·„>Ú@cæù¶~;Ï·À7$.#|ðl6ÛÝ3@ ~¹ØíŸP¬¡ÄdwwÄ&eFÞC?ò¡b ôf“ß2Èè;|Ÿ/òý^÷)ö1tëûÉa¸ òåŽ'ß´›tÈR»sMìo¡nõœ¼]ó¬­Ÿe¨$SŪB¯À´á£Q,Õ ×Cºâ‡»o!Áo^"`á¥.™í`Æ9Ü¡ì¶fæ)õ›Z׌¥E“L ûõÍý‘*ujNîÖ9–)‘ šëpÛ÷Di²0+ΗTØ—ó”Tlqc¸äåBëÅ3^¡põ'6ê 07KÁŠzŠxBK…àEÕs «Ðó9ÚkIgf~¯ÕZl-âŠõ@Ö&»!6\0wFdíîZsøŠû÷ 2{GÏ2l®¼Dç•ûq]¨j ?ìnKÃì@ø¥¸"­q5Íæ´J²ÑVsÖgV°dÀ"±¤2Ïááë¾{Iüܲ\p!¡=ÖÒK M>AçÝô)v1L«;åãÎä¸Ó+.¦†Ë´§9{f³ýîp`ó^iðpçüªæf¬(ÂfŽ÷ÂŒsK#3ƒáßѲ¾¥BˆZzOp˜b·.µ€- éâ•›ûtiõé²Ü§¼Ê“ŠÌQGJ”QQS Ü”mÊ_à ¥3VY +Ä’é+3îP¤ÌäË©t-¹åÊØ`¬©°î+CîÖõ‚¿XÉlÍÓãÝ=×y·_“ˆÒÐ$á– œó°Ñ|ŸqoSDˆQ³ñÔ©BÑ÷?àÄy·É¹ž)¸ÆÓݨérþ<•2Rá" ,Ì`…±x!Lا{²õPgÈ(]Ž¢ö’P8ì%;è©­¬°·²3Ð_Ÿ-³_w1Ÿ 6nJ‘$ÓŠ¿ÁPóy.õ ”‹'¼HÜf[åë|8ÞÏ×,ß‚ÃãC"†í `f `´‹n°ž’>ÌëÉnsÏ'Õ þjŸgXknh™Eõþ ×O± e¶¹gËr5$s^>ww:^RMgÒÕgk¬|†²•m–»ýú¸ºÅÉ‚[\^i…>î0÷U}Ї{^W–¤­ê Œ ˜ Æñ‘ŠßÏîynþD)†ÝM[¨€yÏ‚„gq1éFMrïzŸ©d»ÿ€RZzvÈR·MŽ :° O¦I¿›¬«ú=ç—þ4]§­Íæ}¦’ã¶y•ÝÞ¦²­Å@…(ZÇÌÆ+Qbší—9Êžµ¹¥Ùhe6a ÁS5Œ`g½ÖRòÔ&‘à @­Ãàe›z)Lvf>1]e$†Ú¢–©–f¾¥^ËõNMÎd*¸SZ¨Ö<@Æï÷[ZKié9™Hawz˜Þï`ª à¤*z<Ï«Rž°–d´2¼9‹ô¶ )¬‰Ðœa”_Ô{j²Áu &äÐõ[#LÆ‚€ù8 xPsŧžM†L§£Q¥ê&;¬Ó u>Öd5dX¸`5»ˆ À¡€:~õmí† B·›3Ûî(쩟µ6¼ C5<ÆK<ÛDñ…ïøse{ÃM†L§ÇmøÛìí}¶7襆'AÒÞp“’žÂˆki¸(2@Ã9ý Ÿµ6¼ C5<£¶†‹"p [ŸÈmåx‘!Óéq~·;¬7ëÖÅRX„èµ—?¡Ió=8ôeÂJ̧ôøXÑ$YÌÒ;5'[ß•µÒŒ®ÎúP^B¬W[;ç5ob0DBÀ‚³ƒ]“¤ÝìØïhÉÄg¹eådUU(½k,ô§dò,L(õ ãýášñ·!y6WæÔ°8‚AQ{ k‹²÷.I!z~eÝs–ÝÐŒ~Xãz‡ÊjŸB[µ1—7Ôëíü~FÙ/ólÉUÆ®š¼ña_´]>ÅMb¶…/Èdr²@¯`‚-4©>&ƒÑ}¼€‰j® ýQ»Äè ™N£ßÿ§T zôz!EÞ5{<è‹ÈÅ3r˜úÚÚ L»9]ãÉ0`»ßÆ?÷ë. [Û^¢Ç/ÊI,[†è}f%;WµÓé¸J¶W Uçzú¸Jêã*˜R` ¡%Æèq¿þ€sv¤6Ê4ñùàê;µ=¤ý×a¦Œwj‹¥M:ùhÎùscÚ:àÐ䱨OØÜG&¾…1‘˜ŒµE‹&>ùx8Â÷¼ô]¼´£˜½x¦Úç¼™T‡É0¼×tŸëJ‹ÇxŽì ˆÓÔ5_ïÙ^WPöإPà§x¦²SåóÄ•›¯ÍÉÝ I~•YĺعUì2±ÐüƒóZ‹…uÔ¥¦JìÆÍæéº˜°æÆx Óm6;Âþ•'6Ä”¼m×ÊhU|K”À ŠæÃtF ÓÒl¶ó¿ßç8µ±…E¨ÊyÞŸØUµyøí–V­mÅ\¨ØÂ|B)Øó¶H'("÷Ølâû>Ÿ?á£+–¹:ãÃõÂZ¡˜3تӱۊ>ÜW¼7Y¢]üÖ˜Ën6IÚ ÛdÍD„¸Õ$ ýᙺÃ'_ny³RœÂ¢í`…+˜dÊBÖ e²‚:¸“ÉNaNôH1‡‡·Àø=t Xhq^ðÈš){¡ŸH—ÙSØ'ïɵWH¼;°vÔñäú †:Y­¼&%.¦a6ØØN½6²~Å“0dp(C¦ÒôùˆV«|³N¼Ö ¸ CMÀA̧„>úYçFK}À‰¼bu!+Nò¸ýÍQ?xuœ¼f&¤RÇ“‘["'ðÀæ :Aå³ ë¸a« ɤL ÐO”;g'_NWdIF9Äß_M¼`®ŠÙ4çêµy”fŽ™I«õr}CCpnDÆP*>2‰¿ê™.©hG`ƒ÷zƒV3µgmÆÍçúêjK¸hÛMšL}ÜtåÁGJïÛ0µë=Y•ÿ¡iôü@RÌÐNMnˇیŽWéœ'2ac¿îóÃj·™Ó)„2×ßç0£%¥ÍtÚ|²¼®°Å@éºÙõÀ õÊ`æ0g, \#ÁÙÞÌ+l‚.ͳ¥½viuMëÒÔH4 ¥•¸OºOë¦Q%) ¶]«‚W¸7êü‘tøÖ6–51,Jƒ°$­0w²é?¤µGe”]2£˜ô0DÒ‹AC6a5(ØŸƒñ­:œÍÕ0Á I¥Q Z²dïVòìX«ÝÍ–dŽì©´Y8Ö$²¿NxÕz"~T+)Þ4ÿZ뤽BfŹÞz;CË1͘°Â”ïim^Ú¶²f¾²ZÄIÚêd…ï3+ÙÅ ©õ›Njߪ֩ sy}à ,/ïÖˆ jU‘Uûj†H/‰Ûn1ïÙb<•¶aÐè$€ïÑc™¢Ö1™¦#3$j=á248RÌsÚ_åÚ£•Äb·µçPöm¢=ÚI³ÛåýL>°w±å;mMÐÛ=Oú‰Ór£‹yOCþÄQØ,åðÞÁ÷'ëîd¶SãV)74 ‰êÔ“ÝÇJ>§–6cÑþÛöúÓ*ágª»4‚_mW²¨×j!Œ@)ŠÃÆ#Ix-b‚+ÅŒu© Û›I[oLHf!¡¿*ñÔ^ǰSέIût§ŒØÇ›õÝÍ!óiLÑN4ëI€ô¢–Þ5ï9žÔ&ì_Ѧ5qSrüNÏêLª‹}·¸6&ÿp·ÉֈƂžŠ+Úœè}àîæ˜cZ+QDõï’ᥨȰrCzµÞÒ9*­‚OxÆ&;šÿ²[Ð-Gâ\‡®{‰:8}#¯¥|ê`Ï/~ˆ¶;Y0ƒ¾{mÌîÔ ÂØIk`Xõ£ßgœä]Få™×êÎf¨Ð§›k}.±e_zÚS/4ïV|_h'h>YWƒP•g0;L¯-_±eeØkØ,ˆ%+kÃ=׬³”ªÛEDãZZ\?Bš¸šúh"J[–S•!Si,d¾xgVTßj„rü•QëÁ+½Ï¬äy hÿæ\¤l ƒÔô ?( Rª0H4u¨06Âf²R,Õv›[znkkñ}Æ d{dñSóM{¤<©*UˆÌ‘’ƒ"¡©/ié¾3çrDÙ†3åJHöL9«£©;ÍÚÑx©³£>:Åp²oÑ7ñþÚí1uÜ­ñß|ú«˜|Eæ9ÌÃhŽž£ýéGz¹™Ìð ˜þ¡£knßèPƒ„¬[¬´­ÿ~ŸSH'ÒøËäÛì«¿ùeÊ+î/ÛµÖ‚81üâJú”Tòœ5樘ÓHÉî?(Ë$Ÿ![~êoxÍæYvËŸóL…-zèõ±dž±‚S¾ùþÇo¾„‹ÄäõýüéŸï•Êÿèг‚õ‡ç´ùa~4Kؾm´ÇËBpùlddÕÄãhR<€}«l°Ÿ€Uq"÷ŒAº½·xßà!‚­Ëb)æßSdJi_Uۘˋä*SQ…‡ûÍQÏúXäÔáp›5Skô’~”ŸFiênqb #ÚáZ'yåŒÞœ5.¬àcû‹ëÏŠÂUFŽ®¬ÃÑ'ÊuËåp:ÌGGbù‡#4ÚŽ2ÕŽ’ó">МüætÈ:gWÒ õ ®LfJZªhG XcOç'“”bæaœ«é Be`óUà‹~c‘Û(f&C¦ÒIÍ…’C‹YÜ.fšíïyqÚÞp“žNAÃ’í ‡ B7œ2?@óÛ4m·lBôKõ Xh{>ä•£UŠºE;[o X'±æD?º62K!‚2U;@ø\A4Ò¢½5žqK>"]ZŽ"œmßÒªKù­ð'}¾ZYÁ ëî3å¶GÛ —¨ø÷h!|z“ñÌÑ0€J˜1ºm‚H¤h’E1ïcH,Íö?C› g¹²¦X•A(#ƒL0˜$mÙ™ §©ø%h¶ºËÝè\(oµC r«­Ý&C âö†C¡Ž™Çn8ªn|s&” ¶šñ7åÑçQLðO¬4+cµ¯| Œ½ºfèh7,\û…VEÙgSù˜PæšV ’Åœ¹Ûþ²¾ôQ3ÖWe!¸Å|£’n¾Í ¤<:˜çkg m˜™¬ì{F°!4Ö ™xóTå_ Ú—üò Ú‰ï©7A›éq‚•ÑÑŽO!ÂoV{µóÉæ*2 e©f²3ÿŸ¿LÕ™Êèò ?ÌBE¤"©S‡ÃJÁŽ é´ P§ËÂ]OÍØø OP>ÀØÎýRñÐj&ùëí³í: éjuÝï6jzÒ »¹ÒV„bMÍÅePÄ¢lŠ!Þ…¤GÛdÖ:C•kœ›rÞ©XÑnæ¼ã íFÈ+ØZmp³:†èˆ V¤˜vd4'm¦Y‹ò ¡ £Áp½%Ç_ô>ù=Òc|)T°ý9ÈÁþÀ÷ÚÌú»O 蓱»aÚCZx¸ÝñJ# Ï>HÉ^íîÉᙥxY‘ þ®'1ŽWŒ5ü S¼œüñ~ ’êK?CÊõ-M†d'»MÏðc·q?„Êét8ú~ÈMZã¦,:ŠÉNø … ÿÄ&ßÊdµLv‘(ì+°8›]1Co€æ£Ÿn¥Yä„BuÓŒ¢¼i9\5»ÅCYšêôʾÏKk;,¬ù ê°}P{SÊl¶ðØ® K˜ë'ðÄs›NLB5§tŒÉÕÅî.÷¼öµ» ÃŽ'þ’Ï ß¯vû޾Êj¢R¾ûäûvzÀž³”ձȈÀØ_Îêmƒ/º´@¬Ã÷…ÚÞTCtוÍô3Æ3û²=áBY TxUïQ([Å›ì@;(kf*ô6tÚtƆO¶Ðë´7¢ê²b¿Y/+ðK ‰Á>1~Aß@¿(Ñùü~“ïùì ½Ö³zÏÖtNvñî5ß85ßt²¦ËvŒA®Àx÷JÚBÔwÓ§‘öû§ o'ª£cØ$“óúˆ=‹sæ\ìw·& âÀîâ0ÈX1ŒgÁIà~1V‹Õ‘×(1±½y© ØÚèñzöåæË;…¯•$„£´Y¨˜õy&©ŽuuPmàÐX©"ðC¡#Ђ³Ãú ¦Ô?+dÏŸ£âÈi¶eñ Ÿùj“æšÏ µªÅÞשÔÓw®<¶ß¯7üºc-¿=2Š¡ûëðíe»ÂèÄhVúkÂä3@Z žo˜™õ@P<8§³ç5Å•W’Ä U[~\vèAœb¯§eGqxKÕï+¶ªø kÏN|KíBŸâǘã SÔÑXÔL¯%€”`¶å‡'ú¼V÷ëÒtªz‘›à´¹î¤£öV³WP™šOÈ“pþ„åö…ù‘9Pæù³˜aZã9 ª ¨/eßIx–>:O^î<)²]ï<©}Ú¼'ç]yOâv?Ä(kBXž5h¹Õð{ö l{~­hS´0s£S·Òáûì:‰£.Mò"ñÍ·ß>}QŒÖ²¥ôZ=#õ{ã3IÑæ‰¦LåIÉqO‘fù CßÎÙVë ‰Î.L·Rß(ƒ>,3ÒOôyç!#Œ5³£Õ¸´4“ýñû¿X¾’ßþñ‡oÙ(RØ\ð!ñp’ú#±f=ùáþfCfþo×xÚOÌogÿÏ_¦_L#ÜHgÅMÉ …yê­ñ§UæÔ³¬'“á=ˆ@ ´lêàÒ¢DKD®~DëôEÞ0UJKç°íõâ£Õ3„YAYÚ •ïB^UT×*?èp4R°•è¨üF1Gyw«Í@¨«¬ÔîÏ¡lCCT1åÙcdi†—>fdGb"Zmùf¡€îØ_ç‡ …“.Å£,ò½9 7¾Q~¢Ð›v °_*XRô¦J[pŠ ¥¹øOèÐÆqÁ‡ü9²ZyC)©0žlJ$JBW‚\\écq†r¬Æƒ)W?lw~Á÷™•ìâüb¾5ßœsõñÛ]}¸l/ŒÙÕÇW®> ¤ßê÷ßD Ý@£× D®Eý&Ó/ëK¼›×:ËŽ•É Ç4 +ÕÐ.IfA/§¦¨¾› ‘«œMb¼¶krO–K²êÜoËÆ#eåQÍÊAFABJ2AÝôrO>6dx~ ŸàÌ_½E†ÃŒ¤óÝá‹Îy8ØyÕ&…ç꼌_*TœœA… 7×§Ù§€Òª|+Û8c‹¥mŸ·Ð¬ÙÃCÁ`+ÀתS‚À#¶“{ïãÒ³Žy«]ï·ˆÈZO|áCcüŒ§%3EóOYå.iŸ+Ù:¿¹W®» åæI •;PëìÈVvEבºûʱ<2÷ùƒB’dõÜö§Â‹€S‚(áˆ{¼O5ôKK<´)>ֱЯ G0–±%ÅCC*8¶ˆ½‡¦GI©dÐd¹dñ‘µPv°¾›¤åœžo7€||´c8(B4;a>~'eª¿ ð3õ¾¨T>Pöí|!LV¾)Ù-™f}›¶„:{²½'× pLøÆÊOƒŠ¥n‡#}ZÑð«™u£ü¸OòÒ,#ø¬åv}40±óÚÈñ: Ò1@V`»€‡x¯µŒTL;+<=-˘PEܪ}¤BÀ1Ådg æOÆ©[dK¦5Å1¸“ïϹšë4ø@§Ùí9/¬ÌnG:kÃYÓJqevËØÏæbü÷x¿¯N‡Ø¥½Þ BF~È ¢ãï fI{z­/ô{‰¤Cª¹Š¥39·¿ñ`…´>Byp¨¡,Ε!Ð<[£rQ%>ðçïñ¯T‘ ¼À)**¤ ’H”r†8²Šœz@.UÉ ]ðÄBçOÒ¤¦dtµD *«dß•ž°KÆèæÒ‚!ñНŤ±j&u]°SÏÚ{©¦3WFæ &7¶èWa²Ôh$"Â6†Qgn½8 ¿`èX¸ô«Âzô´²ûlYíxtÔx2 R†sNY4Í5% › _ü’¦ä€…§~ø†ŒFZ€GuKi+sÛ‰ôÀ‹Á/®ë%¹xÈ=Ô±›ü;òW ¢‹þ‚!4~"ÜS›Á¯§j(‚„°êÿw(Öu§O=ÜJýêaݧ ÷²øV/›t„¥ÐˆB CÌG¿¨D`èy&ÒÇÁÇÉ׆  ª±HáRÏùI }t˜òÃ4.ôõ4o"–>"Ëæû;~_n[ë÷lPœçÛݱˆžâƒ&Áhþ GnðôèÌz‡Ñ" µHÃ1WÆß±V2á5¹¹_op~g£smÙÄTª~$Ùðâ:`г»ÞKâP0 åYÄKa˜ë줗¤iäX9¡é.PûL L;^*­@ìdl°Æ(2k5ÍYÿ‘¨v=ðUj}¦'Ð×´‡UÖš™µv±—#JìŒ)± éΦ £ø2­©:ü¥ªé×2ƒŸX ‘`/RèbŠ~ aA*Ê*æL/L}U«à~Œèâ[“s Ôþ–ÿ÷ÉÂ|”ʇ ý^ÝáMOü ‰ í©UßqòïS9r)¡/q2¿Ãà~P|)²Áþr #®øçÈ»@0øÕ–¨b° øÞ”ñ÷ÉRM`ÄäU \æÂRl”ÛL”pýˆOüö#ÞÔ¨Þ³U"ÒSf иC? >l_Ar¹jÀêÄù[-¤¸Ä®ô}ZİoÕƒÔ5ë†É<Ác úÒG2_Jz ðKÓ·>мõ%^@Fœá»È–>TÚ;z£èò¨“ùùÒCa±Ÿ:¥Ž˜—‡ø32q!~eÁáÖÅkHUù„Y½Zȧö»ûIV­œSœY° ö&Š•Z¯§ù& ¥)–޾ÊðàÖù܃jŽ@ÕŒ¼H ¥¥[\T-Š%•à—Šûö7ke"ÏÝ!'=.«·j‹/â²bÝùèŸ\\÷ï|è¸Ï—Ù~Î6œÒå–+Ë‘Jß]ÉÁK†Œ²#iW–å_X>¿N¢ÌÖL)Xö— yø<…®{ ­|ËQ­Ý“Óèýñ©Ú£]kÅmÚb_øš÷)åZGå§Æø©/tÂ2“­:œŸW®¼ÐAöw¥µFÐ%ßê“<(l‰R‰Ð*^Œ~ìµå¹un[ü©ºmyèõè·õ9ùmy=ü¶´Žû›î ©x­ç†5›÷7ú°¬º8wÕaQ쮥{ëk¦5ô½u »rW!Ò%tùɉcîJßd²_›Iæžböf£`Tœ?exå —ŒÐ½ÙL¿zY–qÒ ”gÞg*9®;Øù5¹ ‚V&ûæ¡ß=•¾Â^]ÈÚ„™Î‚Bö´C}{ ~³#À· äèôóTxxdÕmgÞs& ÑKÏiÁ¶3ï3JŠ0ÿÊ® =R›(2x¥Õ`²}ñ—¯¾†_’zÑß•Ozge\`–)…FC~r+nš æŠ#mÛY¨ˆ¬jVJR¹xñ¦•¶ýÖ¾UyqÛú;’mÏ]õ¾»tÉEÙ\D;ô…¾2¶¼‡îÆ¢¸@ž=Qz«r/‘u–on{.ˆº{‡ÔÞ:Ý^™»^ÍܲÔûú×$ßµöõ íʲ*—·7ä”G“Ÿéa¾IûIk„‚[¾\yeÛ„Gó·hÃ9»±ÉJ…Bæ6ˆßÜø ÷ÉŠœòÅã[u_©»Xöì÷B½¯o'ôxô쟳S¹0¨vúDF¸šGPX  ºEä¥RßÚ˪ú[í aÍ÷èÖŸsuë ϱ'GÁÖÕ»•#aŠæÆ!³~±ÊRÜŽðV­_wDÛ긢‘õ#‚áæy”%9ߘÉÈ•D‰øhÛÛVÚœ´&Ë´’mj¢`[‚õ# ïÃÔó’DxÆTÀ}‡’žÙ Sßù°ùðÊvÀõÌ—d׈\à_ÄŽ5ÛÉxó~ªSšwð¶ Xбk 9[ç0vŸÈðÒ`ÚˆÓXxQÓFF|ñ‰1m¸P«ÊQ>2Œ#aç”® íœhwðÐ"æ!À>¢Î;Èà",™¨U³0KXÍ‚ßKCu¬v¡$¤¢Ü¬¥Ý¦7ÓT5’[=•Z…XT…ßFê&&G¹U°ØÙ9¥ëûÂÊ9eK sŠ„ŠÀ )5ËAº’sü@Žãqªô¹oÃ]ë;b¸¤;9CúŠzÆsÑG* MÏx pÒw}Ó3ˆùÊ9DÃKãÃ*$]©ä ‡:=ÒEñݼªª9$,®åÕ¾Uù+ ”|œ¸ôK¨¿Rï(pòàxŒîg|~„§vw_‡7 ¢¯Š I=‘|ó¹J¤ ,º'„§uoîÈÈÊ9£Äµs’Ñ/ n˜áG(q¥¬àÆk”²‚_·t‹½Î #ÐEà©H«ï}’¿lMèidµF’¤!e7„ìD‘s sóàÑæ–.tk‘û zjW<Á.B,U…ž”x ߉³”…‹!æ:§ÓGÉ]ÈpÓ±=õ€ùþ‚~ ÅwŒßEŸ,õ¹r÷ÐçÁ4—JT£˜4¡§mŒî®È³zVÈ"?ð iUª9¤¬>(ç¶<ß9LŸœ£âxåÇœS˜˜¬œ´ÒJÕsl¥`_d½²àâPt"ò“ é˽H+¡Ý0S&ÂG)¥&Hýx‚(Ò]"ÑÏX—²§ó9˜Ctêyä1•ðšø+»þñIa” W[>w•1>U”N Q ÖÙiöGÝÞÊiN ïnðÞ‰¤Kê]-KšéãÊ?œÂcS仞+ iý¾º‘4e¼ƒÉOxÉ¢ºèºw:žðøjÿ„}yˆé—F@„_˜bîÊ–¸ «ƒZ†-ˆÐ- ÈcF>â3=AïTS™¾HO_ÄÇ8nðG.öÓh¡\ïp÷3¼3ð Q aÑ:ò)Æ*g•ºY WD—)NNN1¤[:— ƒ 2H›Hu}}:¡ªK[‰Ì#OÛe6ölÔÔ¾ùx½ *ÈàQªôßMÜáG‚þÀ6çW÷I-LL>»j±‡ƒ0¦"Š -_Â¥ %¼Èk…”À÷ R‚’] %Ì7NÍ7¬Î@JpRÂ7䃳üKîƒ{KD'ظ…{ »±èÛ4ÙÈ­x{BÐ!Ʋ¶P×îöë[ŒBO t›U½Æ8k4<ѹžrÏ"á}ªn/dÆ£ñ ‡ÑÝ£Äa´Ç ½“ækÔÒ¶Ší·ä¯´ýû=lö¥š÷;%“’OT®ÎÌùÌ‘!½Œ@¹yfU–xêvŠ< ã;4æëüʦdAd$‰¾ôQ“³ú¸`ƒù냄Is¬¶ÉQšËÿ¤˜¿Š&Ó ôHR§µá&7?’Qá™bãì,`/?ÖÊÏ:À>ìRL7¢ª¥ ƒ]+z§/»QÌ'NŠxÊËÀf–“œ…Û#Ü®9_Ñ€.‡Œ.æ:™Ã\}Ê!Oo'¿HÏ5ñ¾™Bh0Šä¯-žÚÕ­Þs;ŠßFá`ü9Öõõû,TT£_4”ÉÓ)‰³°+\“g˜É‘á'Ë2Á¤)žêWK+h¥Ú”cƒgø. gKЈú£º¼Ô%¡õ%¢Ù§‰ÓÖÉ–]‰çíPÖ÷=ã‚›¦¼%llËÐ*‹“,lã°j9µ® ëÑãÕ­ß,Ê· ô©#¬àvŽÎ§IXU›kãwÃÄRˆEE#VÍTW½¦Ã‚^(†Äm¦ïñ  ¶f jHmø@þ{¦(&h+úDßµF‡†P.WL>ZqÊ:Ø®@UjNˆbvH^st Æê Û5 vfùž ˆ”„|AV»ÛÝ2ßæjÎÊ^Î(2‡ûÊÆJcŒkžâŽÔg0·gdòàåô !ãWj‚‚Z1œß£¸)ž©È€€þÉÏëõ&ó^ï¢1HN&IÜj ßãí^˜¤o?éº C™\¼P¤¥Í˜A_ z¯‡n تƋSt†L¥Go÷åè½@—Õ,D”Žu Xl–‚áRCÁ:Ÿ#…œ‚dk‡xÞý3úÉBOp<óú.CT¨YsV¹ÊyW Øä…ÏÞi,š¡`ÍÞe:®Žn¸¥YAPmáàcHÇä®þ…“ýTÜ’] ‚©CP9Ú—ÇÖÞ\ßòCH{‹®Ž-_†qV¬eÊOo "µœn5-ÙÉ¢7Ý_šV™ý´u"+ÏLvH«†èQõû÷Ž[}ê³á–‰ô_I±Èµó¾8…&Z¬@ðý=‚½*b7£Ù²i}…%õ)W¤;®¯%G¾kéÿí–#>-DžÂ D—Æd°F“[2oa(8ä?¾ QT.¯a7ýeá¥Éô„oN¦M Þ´ñÑhÅÁ{Ö´rØGó4kÄg ƹ³,›K£ë W´ùF€@ç¿UQ‰+‚¶µádJEF|<ó[Ç©6¸—•ÐÀ SáDXÔ"¥­I‹Ø¦¤•¥•á½9w:ÌßRÊjá~57\Ð-¨óûÌ ¿âÄ (3ãI€ífÊÖDӌը:,'5oÍá%ÊГů­Å—À™™i¸áÇþ©' Ÿ‹º†ÿZmø²Fµ[·)Fó²·´®ø ë¶7°ýühé5¤bØš HÛ:Ÿå-׸€ÿX8} +‡Ë;ݨ9´pð]jL>ë`<±çÕ‹ùDT„æü¥¶¨¬áû¢08êFÝð ÁaôÁºbm¥yYlr Z^^ôìZù#èÍ'!®hXœåwÄ¿U{»fØ…­’žâ²y™v ‚w‹Óuûªb¿üÞ+XÊÚ餎26}ÓvRW:¬+á!ˆ\IU (kœW'üAŠ%?Loõž™Ör¼±V…nîÛxC5¿×^âÜÙeàƒU±‰µ –ôY1 .HT•,ZEe¹ÎOß™$§'Q8››rß«i½Ãþ36ú¾A(Lã°42ÌO%hLsW|,f7†žÇsÿ8À(Ì0eGwо‘˜»€õaD§·ÖU63Þ7ó¹‰ Xž†í—<ÁžVÂ÷Eô¾ C‘ îëÐHÊÔº­ACß3ž3­èÐ+Fáų /žÔG{ahï›4Áß‘«ËLakÒ} *üÝõÕð{Ïõ ³[†ÙòðüBœ†ßˤî„…±ª˜NÉ> N»©¾•é?Ð9[Â/4á÷0SŠ}é•Ë#[ÐÑ%gׯYÙÑÅÃãµ0ŒÉæWô FÇx]Â"Ÿ$J¼ÚóuÍš‘Ë8Úb#f ’˹þ`I®¸@Á¢âj#*¾¸‘gqýÆ¥k:ŠhM@ÒªÙ` œÞMŠ ‰–C›Ÿq3õ‡ˆ¡t×þ=\eŽôyÂÿJŨ4HtÕ*UFŇvÅP€Óó ÝsrÞâßêy‹G.ç-ŸÓy‹þ¼…a}TÐfqÆŒÛ-P,Ìj©®µPZémàÂFfÊ'Ó–üJÈQ²X%(­ŒBÏñ-ÉD _/¤2ѲEz™®YA`Ó©.Ž]g#ñßÚY®¬€7¯>û8ÛäŽzJ»túS SØ"iXÀTeؼÊ/URgÖëÉ«õU)™¸²5øS¿g4 ßô1¶³ñ²-õžîÉÄdsìç•èå j€Öœš®ÈÔ$°Ó.) oxÓ™½%×4<¡YAõ:ÔÈo2•„Zts£ñ®aÅõáp_€}Õ»õîþT9%ôíŒÎÈúÆ@Ž1V ŒpsXã 4ÊOÙ¨Më9E¤‘ßÑFÃ"í[iOè®­ð‚zÿ«T¨åfwCÛpTSææÀ>ÿp·F‘¯bðá)s¯xý ðÑ›õqZÀá8_oáç ¼|n·ÿÖÔ¥œçxÙv`åP7lòwùÆñg:3¼|™¡ˆÿÌçÎw9^øEè#&c2¾Âïr6áþ¯%}¶Énöëg‹½3y…šþn}p~øúÛo¿þãß|ÿÍ[# ‚¿Ú}ø‚Ö`ìèxõ]¶Ü®J± æìC±-_oç/@í‡ÖÄóÿ×+yw ŽÎ íŠâ1õ¹õûùíqÿÁ¡{Ó?8w÷Gñ|¶Û<õœß\T%`~ü§sšƒï\x…U;ö߇ýò¦’Ï+çóšòIÏk/Ï/çk,/p~óºÐ–ó5–é|gè‹ËùËKªý„º|i5ú5Ôõó CPׯËHA¿XÈâµPèÉ¢D$®™Å~‘©kΑºæŒaµê†ÞáV©º©{âjÕMÝCŒ)ÚÛL#q¦hocFIœ)ÚۜѫVÝÐj)«U7´ZúÕªZ-‰3!eñÚX(‰3I Û2gbÊ‚ñæŒq1Ców]ƤÈÈàßuÓ"#€×Í%n‘1Iôßu=+cÐÐr¨ÇÍ›(6o¸lñæ‹fñ èTÄɼô³©Ÿå]žÞЧaò C‘ f‡î_€}K.<¦hÚô  óÎùÍ|m7 _8¿å»lNí§Ë½ó›Ù ÚÏïA퇇Ìù­úlk¾ß8¿qS쇷ÎoÜ ¥àéþôñÖùMµºDkçÛ2Y+x [ÚÒ³Í æG$b–Ý•_ýj^¡‘¾üî½y÷~=¯Tœ¦·ðï U§R3vGhÇî )}ƒd kJçTÌ<;”Ê_‡ô>¾”}AÙOϪì“7ï©›@s8iÃøm$§ôb ôÏïïüov¿ßƒ ¡Û)'pžJ”– ½÷Ø`{aÇG᣷÷tûñ2óPƒOlÖÏ©¶JÆJ¿JõâÛÊ(vž¿Ügï¿ÞÀà;äÎoâߞðÎðNv¦óüÛsòÅ?yúqŸÍíß*¿?–^–ʃ±¥”/RÄTƒÔ#ÊóTeà!•I€áœ€EŒ¦5ÛÏÄ¿™Ù@ü›U§Ä¿ý“'.VIƒv~«èˆ¿üz‹ÑÂs¼»*wÈB_òç:Ã\}[ʪ&$LUVÔUXáOx¤hޢự£ÀI6Rë%ý{­[üÎyµ^:»òIsÈyü==þa·ùˆcWļ~lÞ çg1lÿÿ9‡¹Ø:„Ÿày°†Ý 'Œõs«»¦Eçç¿A¿ÂV© eÅvYñUeÉÔ*‹~ô/Ë­²èGÿ²»¿‚ëúKúvýëè²û>¸®ïC›®ð:º´|÷*KzVYô㊲b»¬ëÚèûVYô㊲R»¬ôª²»ïƒëú>´û>¼®ïø:ç\!_(åaeܪ4Ò¶q(6¼”Æ<°ÔJÕ æªwñ(ƒP]ßʃ¤¨œ:YUXJ'cU.‹ÊIZT…všòŒQ¹Y•ûVåv:«r·¨œÆ¯ªÐNSž1*—–ÀIKÈJé±γㄬ”KàF)>F)>F)>F)>F)ö‰RtÉÁC*Ý3 u;iE?ú—%«,úÑ¿,ߵʢW”ew—e%v%W•Ø}\×÷MWp]ª»Šr{†(EQúŠ¢b«¨ëH&9U¥¯(*µŠJ¯**°º=¸®ÛC«ÛÃëº=Œ+SÍr…„hG[Jã_6Ç–Ò˜gèh-ªÐ·*w­ í´?RådØV•ûAQa)U¹WT.“¢B;Myƨœì­ºriUn§Ã‘*÷,ó,!+¥Ç8Ï8ϲRz,³äÍ1+9‚°KÕç´êæ´šNǪܷ*w­ í´?RåjŒs:(*,¥Çêv5Æ)­ÇuZI1ƹÂЪ\Z•Ûép¤Ê=KàêKZé Nï‹i,õ›ú«#á½ ÷™c²6\Í[¼oÊÚt=oùÞÕšûy­¢¡õ_Ó · s£ª˜óùtE7ãÒU´êntërÕ“»ÌW5™OÞ¯r¾ß^†Þª[¹õïìVWþšk|óIv8ÐÅ©ëìÈ™ãíÓ_'ó]ä¾À;u_N×|ç~’ºÒêÊ¡úÙZEO÷B}Î7¤JTµ>rA~šÂïH]îNƒ(6ï_Ñïx[1ç%k“×›ÆQbåÅ+ì9ß^]e‰›ÉËÝÛác[sÝÑ{uApé®ãäûݾmu½Ç>/!&(ÆúÞ×5]<Œ÷Ûâ/¾ûfÀî-æ[UgúÎÖì6¯öÙâ}±[y}¿2’µ²/1^ò+’w!ñöø©& ð}f%KY=ù =ñøæË®ß4‰7´ÿä$gÏügò™´$]”o¢Ö”gN8pÜó)^Oûõ‡|vOÝOü9̦·“U~K7AãÅÙ sö_G¼ßÝòUò+Û,w{ÍÛõ ‡†(ó¶Ð‡( “w@ü»û½ºù…¬%6®ôuÁ,º w9Yîó|Žwÿš ¨Ãz;ãª}ø°š/¬jôEÇ ®6£[‰‰ùî櫉ù²lx¬Ml«É6ç¹(ÜçxýïzŽ!t+õ¯ÎpTçß}…ó;¦ÖF¹|j.ÇÆÛ}s¼\˜/3¶Z¤Ì²- 14^k|w·Yã| ³ $4È…Ä|wCÒÝïk}/ò,Ûløfø|³Ó­~? $^ylSº`BñÎãù=_¼œÁ/U$p<Èï-ó{eOs‡UFœâÀ±Gñrèm¶G®=Ø9¦a-DLÄÜ-¿Ý‚Ãj¿Ï$&8”çÈ–5³¥2-.'¿înðÖgº(:6ñüäŽjxI“uè6 qè ŠÓCÌ„VYÖì)vifßgSAøI#}ò ŒŠÐ\¬=Ë9×·šÌó»ãêé/®ìiÎ?ä¿Ï·3 H]V }û˜~Ì·ö£üÙW]è‚í#uÒè0Õ¾§<Ó[Q4úGÉþ¾Rì&_਻Á€xâèA÷ ¾ b|RŒ8øhËb£ñ ¼œÐ_,óõ‰\¼¸}rÌpø­N—ýsÇwþr¯ ×7t5<¥mÎw~S7ì =ƒ¾ZòH½Q¢WŒa\±¹tíxàÅ®ýÐú ñÜnü³iˆ|ûó–ïàVüÛñʾG1¦éì ¿.˜ÇtC¯Q?³>°Ÿs×kiÅ«³ÅäãÓ O7ÐÅqñùˆÈ³y!¿L‘E{Óë½êõ‚Ù‚3)Þd>yOunéjîUí à™uÁÓ$O [,dzÔWÄ~Œ— [ §KÐmv¯&;kÈÃÌ(öFIP“¦¾Dc¡œAA³*Ñs…ãà°^nÕIÀST®oª×7Ïç†þgtA9L„¨ZÁ¨'šI‰v®îOß–i«Lëx©º˜ÜÝiÚ_=E÷Ìó5íA˜àÜm1 5ítvU;§í•QIÜP7\)q9Qç¤ °ž}ç4I!csš‚ˆ„(Åe¬2$òRï>Á–@@=ª:ZI}â±5§ƒ%ëkê™d¨%ßàäÃLÀ`?âÔÄ‹(¾…7Ø*"$NqÂÕb ¢‘ó=)@™[Lã4, ‚*p bœ¤°Ë‘¤ô&/¦I©"PUг‡Ñê@`…œÒÀãJ+XkdVŠ!×ý;é AA]‰}ŸcX$Ýe¤§..| Ðnh=z«4:€>èG_LýDàžZ­V\º Nš QÐiº!y¥©øîÈs ë ™®LzF9]–äï 4Xš;a÷ˆ= s)OŸÔ³53èšššÓiψ W¬a܉µš– ÒÂev(šùz‡²8Jš=CÏÃ%…ö*ÔSf»ÂãFUÚõz»¾]ÿ¡%MÞ‹ EŒâì÷žçJš%WL¢õánëäfMݹù¨§uú Q K)“ƒˆ4Km¦%—¢oyZ[ÍÇA±ÄBÅ÷˜^¹/hVP»Q)S]x½Â^d  œJß÷DèáÞ¦~7ŠÊ©4}]QØ_P õφÿíùŸœçß<ÿ Öž¹ôŒ}¹ßg çùëû›ãÇ»\<ÿv½}[Þ¿*­þOϾržùý÷å-¬Eï¶"©uÈPàÚXJ(އh¶†eî#+uÔùhCûx¢ÌÐJ-ªKN³ÅB¹*TGC´C]OÔØ†qǬÃŽW—ãþ~vDÆ•£±—q’Ãlf(8X=,Ù~ ƒ˜LŠÍVKf÷¤(†ÿ<õR˜€¸¸z^› ‚z*ˆ¦Ò Rh~ÜÌl“!Si,¿ÙG~³g°axv{ß4ºie¸¦ƒ›ñ·gS/†E,L=\é=zçä»;Êk‚Ãø#Þäµ7¢ð vMi,7é9¬=°\Xrö9Zùõdòæ0o° òl?[ñKþO¼c¬'Bõ’Âóñ­NL|×ó¦ùßÃ)P>\…ñ!Êàз÷û5ô¤†vp0È]Ã68 ØÁÁ.k_íÞ ̱^ü“ •ëE¾9ä¥ôzÁ}J]€í8O“3”ÞÛë· Ù~,g«/­i+|zæ†*SjäÇÀ·É-~‰ è—+Ð/ ýr<%A¿¶Ÿô+ô :úàôëôëôëôëôë_ô ¤¤ô ¤±ô³ýB·Ç“GЯGЯGЯGЯGЯž _ ’­¡§Âë º<ªË»^Ë·áµüëÊJí²Òë ±ìþ ®ì¯Øî¯øª²B»ïÃëú>´é ¯£KËWQpÜ/]ý¸¢¬Ø.ëº62hA]QVj—•^UV`÷}p]߇v߇×õ}Wçœ+ä‹\Š“”ˆb%6Öm :ŒˆDaY·Y oLU.Ç‹¬Êý*Þ˜ ‚6Få®…=WñÆl´1°Ç«r¯Š7fƒ =f œ «xc6Ú•[ç¥U¼1m ì1Kà<¿Š7fƒ €K¤Æ9§Ãލ”Nƪ\Z¨HisLU.Ç‹¬Êý*æ˜ „6Få®…?W1Çl ´1ðÇ«r¯Š9f¡?f œ «˜c6Ú•[ç¥UÌ1m ü1Kà<¿Š9f¡€M¤Æ9§Ã’¨”Nƪ\ZÈHiwLU.Ç ‹¬Êý*î˜ †6Få®…AWqÇl0´10È«r¯Š;fƒ¡Af œ «¸c6Ú•[ç¥UÜ1 m 2Kà<¿Š;fƒ¡€O¤Æ9§Ã–¨”Nƪ\ZèHi{LU.ÇÂ!‹¬Êý*ö˜ ˆ6Få®…CW±Çl@´1pÈ«r¯Š=f¢Cf œ «Øc6 Ú•[ç¥Uì1m 2Kà<¿Š=f¢€Q¤Ç¹µ?üj:«ri!$¥Uü1U¹ ‹,²*÷«øc6(Ú•»Y\ųAÑÆÀ" ¬Ê½*þ˜ Š6™%p2¬âÙ hcTn œ—VñÇlP´1°È,óü*þ˜ Š6N‘硵?Òj:«ri¡$¥U 2U¹ ,²*÷«d60Ú•»Y\Å ³ÑÆÀ# ¬Ê½*™ Œ6™%p2¬bÙÀhcTn œ—V1Èl`´1ðÈ,óü*™ Œ6V‘çI1¶ùâc;ŒU¹´’Ò*™ª\Ž…IY•ûU2mŒÊ] “,®âÙàhc`’Vå^‡ÌG“Ì8VqÈlp´1*·ÎK«8d68Ú˜d–Ày~‡ÌG¯HÛÛ­q.Ãj:«ri¡%¥U,2};÷X¸d‘U¹_Å"³ÒƨܵpÉâ*™ 6.Y`UîU±Èl€´1pÉ,“a‹ÌH£rK༴ŠEf¤Kf œçW±Èl€´«*o…Dbl4‰&—A"Ç¡¦ú,$Rhã(…çp”Ê“¡X_(ç‡Ü¿§?ù¾xURžÅc²>R5žýHúV3D­¶™…‹Ö pY GÚŠ-“è$(œÑÁ»øD2±øÞùî8Å ¶XHhrp¸ˆÕ ‡‹Eœ ¶’.8\—…Naz£Ê7\˜òã3U”)Ò8\œêÃ%­®QÜMºFSI·Z£þ¨,¹d¾¿d®*FÙVõ®$¶U3Q;[9SjàÕÒ.ðjæ/bÖ¹ìLŒ!±'[%´õW{(ÙSÊ-¦=}=(¤}+aÚ£´'1-)-é[W!/ñéã^ôALé ò¸ „Ò>Ãë£YñãÔà‡ä³äˆÒ¥S,H&¸æ¹>Öìû”ޱf?Á¥çáI’^ˆ™‚˜Ò)"«…ô\H]Q:Áš#Z<¡<ÌamPÖQm==J'#>àÊ맘&²e˜b{bª- LÓDZšç1µ?¦šé«‚ÂêQ&"/ °Ô?ð](’”¦#²Aã TÓ(J0R n•’>ö MÎCRù—YëP<¢#$Ï‹¨Ô(†š=ê0>éñ¸ ÄƒNò\N'ÐynBmöSèèÀ¥”£À BJ‡P¨+‘=ð]‚/%¥Ã>J¨·I>ü4Lñ… =Hû1¥S|îQAШ2¥‚@ä!\€ŒIú8€ÎðŒ H¡ ”QH‡ãÓL]œÐ$ÀmŽS‰Ã˜K¥©Å >OvÍãþ<€$©ja*W ¢éjgÿ˜ùÅ·ò’bØ^ÖsLt¤õ°j)^?PÌæ6õLÂÄÌ LÌ—%\ ‰82Ƴ©rxC0ªrD¾SŠÈ~x‘C¥sDþÇÿçDä‡ùùùùùÿúùa\þÑ!"?ÄX|Pb#ò#ò#ò#ò#ò{Dä'Å&Ê¡2k/Sè²Ge%vYÉUeù®Uý¸¢¬È.+ºª¬Àî¯àºþ’U– ®£Ëîû຾mºÂëèÒòUÜ/Š>°Ê⣘Þeù®U–]ù8[—]UI“.‹~\Q–Ý÷Áu}Ú}^×÷‘[s®/ãñ{kÅZÁò;Ràå´¸ÑÐ Šµ‚å7v¤þ•ûVå®U¡öGª\ÝhhÅZÁò;RŒÊ½¢ru'–UÒcÜhXDäÞÚA±V°üÆŽÔ¡rÏ8ϲRz,ó,ó,!+¥Ç¸Ñ0,ƹåŒgËoìHý*×7—Ú·•Êj:«rߪܵ*´Ócu»¾¹Ô¾­TVÓñX•{Eåú¶RYIrsihÝ\jßV*«é±γㄬ”Kà*jŒC= ;×SÐ ]±0\ |qëÉpeòMÖ˜kL ØG`ªÄuR ¨&f¤XGÂ×OÍ™`JUrRª%{„ï9;çl§¦LD‹¦¯g4uëPÕbÈw‰tüšäY¨vž-‡OoÔÝ9ìvÑýԚ‚ø.’^íb ²¢‡U×^ôðY{hµ«óÝ;[  ­Æt™ÝtOJ…ÂÝz/"²>RÝö#î#õ‘ê°³q_ªTÇžýˆ'MÏž4½n3­î=ú¨Cï1¿)ÁÌ;)Ys:/]A·¥K¯ôQ‡ÕÃÃ8Oê°[ÇCÂ(M©0<ƒëA™°R‰9Ãè ®‘GÙ¹ugp=(cHìëѧ?i°èþ¤ÁÒ©?-v«áy†Ý6Gàì *)­*?ƒÇ‘jvPdõ9v°®AÖ†ìa‚ {›pè6ŒaûÐ q7‚Bñ 9‚Bôá=G‘ÔFŒñàŠ`&‚£aO §1PÜ“ôAˆµyÓIŠ,§˜va½Çm‹= ?÷‰l ×VÀ°èc/e¥=U ðqêùH†4ñúnÌøîR|»ï"¤ˆKû^„}”ŒÇá#Û ƒV3Å6ßÇØõ„@ +$%>¶0â<æ8þYÙ~c 8ÇëGø< |ÇîcÓüYåEH0~œ¤P4–øˆ5â>Õ†Ø ¾Ÿòs„£ðü@ê¡{„‚,¾d”_üœ´1® Å0vOÄ»(zãq ð‡ïy #Ĉ\’˜Ób—ÃòÝò¸’Cñ],•#@bîr‚q…ÓÐaÀ†‘B¦Ÿ/ ý.g ñõj€2,cB‡< OaùH½Œ¥Â ñ#Dsà æJÇpR…èC ÂBŠVd#† ¸†DOŒ~D˜vŠJbˆÁø< ~ÛÆ(/?E(Ÿ±F M½ŠÈ¸cð‰ŠÄÜ™ˆîá´‡GLk˜&¶iœÂ®—†gè‚ ÁXR:Á4ã5„ˆÑà¥!Ëu€¨>Y¡apy  CŒ‘=0blHDmA¸ñ’‚Øaš ±Â¨6i˜¦çPï!º ~Œµ…ôz¨ˆ©ÃxSè#!€N^­—÷û| rw3‘_L#\éxmŽþéÙk û„ísâ zŸ9&kVÉú£Éê´gýùùOëü=üó×ÿúßðÝO{þ2?É‚hz†ýònë<ùõë7ÎÝ|q›íßž Íýf ±qùt5Ù-¦b1™—0kV“l;ŸþÿÙûÓ&GŽ+müÜñ+0²iä}3S±/Ôôµ¦¸´x[”4"[½ˆ²k‘@ˆ*,),¬JiÞÿ>~žsŽ/2‹Å¢hc%£ÈH„»‡¯ÇÏúœÅôa01KoVæýn{ÓO«îfMúÇvì ™Å¼å)#€©'ú‚!+ÓÖÔ˜›Åî·7ËÉ—GsN^E¦;7ûi·Þm—Tm>=îÌçÑætÝ-Ž›¾û@X17Û銾ºÐg_]Lû®»¿1´ãaúŸýqÅý æâél4i,ó­ù µºš¢Év}ÓM7íã#µÛOçí‘ú¿ï–ížÐiÌËïo¶Ñ´3EgÝÁÔ Æ±¢qàÛ„}õ„†SêÔ¾_®Ì8ަ¾Œ)š®Pß K;0U‡QѪìiZ6;óŸÅ´ÍNûöh~¦ßM?»ÿí=­ÏѬÜÁ<,v{óïï¾ûìtD? 㑘~ü¶3½6ÝüÅw7ØÖQJ8…#›õè}ë=E“ôžŽhnê|úÒ:c»øpz º û>»Oï3oCGÁ†¶=o'fk¿¥óÌÌ­ô0ýl}:»=¶!Ó‡›Íôéæ•]ÍŽ6î;-2«xWÐæÜ÷íú»;ôëæ7†‡¤Ÿf¦Ôª?š.™óuày4l@ôDÇèžÊ½Ù(ýt¶ÛŽ{³µMååt¹oWº‘ÜÞ|ÜïÌ'6´Ø³v‹íK{Æü¹Ù™‡y·Fí–Ž–ö•·¾LdOÚˆ9)ü•ED£Ùò¹i©|»_vtf¨ÿ[×·¿©øicþ…ÏÓ>1{oAS±µûy`N÷îÑÚ­wË'š·w¥2ÜÓôͪç39#úAm™*fJçOÛvÓÏÚõú‰‰„~ØLÑ }áSl>=`,ÚéXïÐ¨Ž¦|×ò·ð}JŸLsÝãýá ã–ÖÑÓôO7wÕÙZ¦…¬åÖ_K=L‡Ó#¸?š¢tˆÍy|²=ûü¿¦™X/w{CL6æ¹W’·˜"ß´úæ')#áiJ‹öjúÆüÞšÿ?}r“Ó±7CÀVäfižxÒí°ÎiÙã»5Å{šª–Ví)œ8Ú»‘¯!hæ f2i/Îò–Í’ŒHP0=ï6Giç;ÓˆéVo^ÜÒê›å2¿ú{`yi‘h>˜ µ˜9LÛn‹¥6‹™J[¹W®ê÷„ Ÿ´sßÝÜÞž“²µDSÑ67›^ÐV<˜]HKÆDÆ·3¤}Žõ“„dF‚¾›ÄKå !9ä 1ápè—[ŒÃ ãí÷|z»-Óê(øÔ¯h"ל(^|§#†‡¬ufÕbRi²xšÐùš¾H»·ÁÔööpwÓþx{ÓëˆhšVþ,u2KLúi6ûÃ`Šnõbd®Ý7ÑRaŸtnN–<'ýÍpˆFŠ~š~K4‰vÛf·‘9ZrÐmµ<õE¶/é2XÑH–²¥Ý¡Îzº–gÜcÞh¨d/DGŒÀQŸˆØÒ' Æ„Î7“xÚÔ+C‡¨9?D ‡‡*""dnÍ%ö+CŒévôï×Ù´½]Ïu?ïùȤ‰9k»…4<Û^(Ì)9žpÌ©–=Õ¿ßÑÔ|gXNö´YÛ-ÝÜ3úð7|v¡Ñv/^Ï‘+¶®¾OJæ$âdµ‘öž.ó™®@«Ïe ïèÏ&óç„pVþòËßL~ùÕ/½ÛÏ;ó[Œßø¯O÷ûö ð€¿üæôp|zì¢_þ¶ß¾¾x§Kq©ÿæþד_~ú»ß…Œªí‰(D-;§3qζ^ŒQF¨°On߀¦ø'^Îõ%ºä‘JÿaBÔ…Êt3³½iK,ZsÜYÈI r…a¢÷Qk_Ä0qÁ±:×&Ë-e˜ÿhøú·a–¾ŸRù$IÍ~&¨s‹g5fá9 ?ÒW»›ÃtÎä2g´J³"ßâ@Ïvz…›ù<í‰è¸¥Ç¸v :8¸ Mùnz:tté52üÜ>š‚u‘|Xã½æï“ÔöÄ„ßüø¶;‹ÿ1·õ¼IÀBëB«ˆ_ºý¶¥{­ß´ËÎß9æØhH ¼ô†6œåkˆß7cƒ16ÌütÒ-—åh¨¡jývnÑ^¸¶–Qð¯U33šL•T"nïC„6 ¿—å!-4dŒ}· ¥IieÁÖ2N·ÑRØÃÇGÜÓǺ.<G–W¡ƒ*⮺ÃIgEè&Sw§Ð“ª6ܱkÈ”5Gèñtì¼eé!\,îNå'º¾N{ Ç=Ss\CLáuÚ,ïÅœµëù-HBNzišâtô Óe.f.~:èGå¾èH"=é&^EÞ¤˜ëâf=%9k=]öftîoJpRãn/™ 6»©ß<&!y‚æ¦ij0­øøƒ³ €NK4]÷‡#X‘,i¸LƒŠ¤.è<>M¿>­ýÚ,çÆ”¸)²:‚Î]Î*íºŽûvÓÑ9Üí_ÓJz›’Y|·÷áxš÷æ«ÑJf<Ø-†18™Žîéÿù&­IŒï]¦‡¶@r^˜„þ?:r9Ù­>›æG.'{Ëif.ðû‡öÐ7ùÕ;I»Áƒ0<+Yø®Û@ÔŒ»Þø•q›‘Ž› Øq¯Œ°ÙdWîúÁÏb]±ûψ\,3‚´¹Y® ÜhõùÃüuûúÔíµS?¼aüE‹"x{sˆW»ÓÚ°žXO¢[¬èçÿþ™ÙDÝ\NÍà ⶡŸkAýÓO°'6pÉLnLÓÈÑR]?ùô7š2œ¦9çæÊ;§¿g‘Ü||ND?2?ÌO,Ö1‡Kâ1Ëôz#*ß vɧ% ,d-{¹>³á‡AÂŽ,Y“Fpi9jCž ¿Ö±–Ì]g‘HhÝ|Ù¡“öv`!Ê] ¶WIU›o7 :É õívX&‹ GÞ5Ñ·Ýùl–ù-Ÿ<˜’´=ÂÝôK#ˆ˜‰8NÞÐ}Inùeú¹¡¸½*ö7‡®ÝÏVü’ÿ}π؆ôËK`Ò[}˜fq’Üte щƒB5 NͶ>í{³‰ÿrBH€Šm9ôËI•Ò?Ü}}µ{YôÒ~ñ¿á)Ò/H" žûogL9tMîê3峞\};Rìa±Ë­1ªfî“bT=m[¥ žé±›íÚ½Ùþ¢§U•Úîá-› Ъ‘ÖUy´WfŸÌ­Hêka!¢UâM¾Û÷¦³æ2 Ú-ÎUŽsmŽÑŒ7]µÂC®T埤y¡Øå)¤÷h†iŸ)OùaHáqy.íûV›âIabÈ®Ñ<í÷Þ°•°7¦HY¨œ©}šÅ EvÑЫ9+Éèho_¶,Ëš¤Œ/Sš!ò} ßO #ÏùžÒàùÞt.~!òýÆôó…Ð÷ZÚÌÏ; àçø_›R¿7Ë–Ô“8þ$K?1”2“ø ÿÁìÕÉô"Ê= ÚŒ7zȽŒü´õ—!ï?BÞ„¼ÿyÿòþ'‡¼ÿˆ<ÿyþ#òüGäùŸ=òü/I[u-‰fê 6ûDpåë­›Ïbj­%jq}ÔÍu3w'W µj‘gË~·ñ½¾“²„Ë#u{ÏÎÌb¶êÅ˜Š¾G^ƒ ¿½vaöÏó¥§²Ú˜¾³ïå±çŽ>ÝDp ¾‡I,…××ô°ÛtÀ±ÆÜ¶pÀ{<¡ío­Xw¹õÉ-nHe4ðÉ-Í?CŸÜ’Ür?úäþœ|rËwòÉÅ>Â}Rçmõ•!wt„ˆ–t%tcÝ'Ï~ï"ƒËXΉüžÒaGG~Î{zÝÿõÔC³`¥ 8Ð3á%þæÕ‰Ü„¡æžfÇlÙÒœÕ9VĬ• ¾¨$% ÿ/Þnñ·¯*?šæµ¹»nþ…/ÝÕ äÈß5—šÅ8HŸDRfgDwª°¹‰ ‰j×Ì(ÕÐ|€³—‘€á²´|„Æ W\R4‚$ÒtÊçŽC¡na#l'"ú>¾I]hèîžnŒd¤\È­ o!,³„AXbBAŽ0PðH$0Mòp4¬ë»ï™©Æ‡WvÜQ#–Mba³N‘¶=3.ŒIÀMuœwÚ+»~@o¯´xÑök‘ø]„Ë§Ðæ¢`á’†mn²†Ã ±£TÔ ×'L^‹ g/v;ˆ6J^ÕYfâöûny2À'ÌC¯v&Î×x’Bù!ýŸÑH;+–ˆ¦ ¾ïÍýÑQ¹ïŸÂh‹[êÌSß­ç<˜é…]a 3;ö ·K|ݲº+É ö°êÐWChÄÍ+«ŠiAŽ _sê]̧@•,4Q#âÖž¤›= 6dÚÝPÌ Õ·<áUŽÐ{†c áÏç~ð½ÜRæ3K=ÕrÏ*¼/€NÀ(&G?ïçÀŠáž.ù+,Ü¡„;ÿ$}ƒ–ՈÆó–`ÝaÀ´×ü 1á`bÚƒ Bè+ …ìgƒ‹Éo :íCì ˜ÙUËÀ;A µË·ç8X5n¥Èsï¾ìCì/(ö`Ç6?A¼±G´9ºaëaKXVçÔëUk¹ú„«e" À IYRqD–µZâv²ûÔp¼UB ƒÅ¨4k ´òÌõ?ª‚ƒIº*ÏjO" ëAÔ<¢–éAD<-B'´N÷´Äót½ÆFiUÐÍÄ2­Ù]PÌxF¡ºN¾VÕª=ƒ0ÙP|ՙ̭27—Gûññºu¼áÄD¬^Œ‰Õg ª^â4âzÁ?1›¢>ãñCÌÑ—¦$eî¼;þäAp¼Pí[ºU™ãÖÑÔZÇ•Ù÷­÷øP *Öy¨D~TB:E™*‘¨„™K¾Õ3dº£!¶D–ÖHsÆBx‰ÓÿþˆÀ /’ ¨÷©‹>BtE Àd¿á%Tøºåƒ’t‹K±R8ŠHð(jf(Ã{€dJT‡=+2 1=m}T§#íʧG9w‚³• ÉkŸOgÀßGØiæaÄ1gÒvŠVÓZx @Å‘ÉÒý¯ÏQü²èy¯v‡›„aB,Ø+5@_¡øØÆÒÛXžƒmëF* #i#Ü÷k¬¬x1D)ª*ôìú¦sÌIJµ)âèið82Ãbl4İ F&…öcÎËgäÔÖ0dѢתðs ¸þ£Ap¨È,tŽÄ± ‘8ÔÅ s RM]2¸ÄóˆsäIß,š1`W…5ÑýîÄXŽr™ŠáÔ­ÅÊÎ}ŠÐ)1–û.¬)ØwvŠ ‰•YLæ°%SZgm( «ïàìCàÀ9VÑ—'s ‡ã‘ÌkfÿÐspÎq:"dü Ì^D`樎!RGï`õ®\×ctDyFà——tŠ9!«;Im ´c°4ÂÆýÙÈ2U,-Ž€Q˜ €Èsse›+<Ï“zŒÂhõ™ª8Íüc·^ÇÕu0 Óo¹e‰¬2ÛyšŸåôuO ˜=»>°'H»dýBN^ˤ%Æ.„Ï´KÔža‰Ö¦«×íïì å©‹Ž÷EñYp9N³,}(¡YÙVdéjUÓÃç Qª[Ñou0VA _¹ëlËDcìx–2‘>¶j¶¨GÆ×©õÏFOÒeŸ*¨˜DèÂ6Ÿ‹’áŽe]†sµÀ˜–é·´gÜqŸÜm}+p<2m³ϴݨ_ °H ǃ\®-”ûBöì `4‰ñ¶Fxg¡%oHý/–—~Ó‘åâ°ÃÕ io»ƒòlóÂòá‘ÐdaŸíw@).ëJÁ=Víz[okÜ‹±X¿îHWÐ1ÇÁD—%¹€!*Tô`% 3#fDïJc0µJGÌgîÄXÂâ´fY“/!ÊgŠÃ³>Ö>a(ùünƈ]°vb"¶ÊÞ ‡#z‘ŵÀ0‚ûàíéW Åvp„äÕC¢Â2bÆ¡ƒ‹aSº@ßË7ôíЉ È“LŠÙT†Á„sí°Àåo8:’gÜ*ﻵmÏ/j®< 0º`d/IÅW³·Ø~¡ý•€P ¢±’ï”ýùvmMèrdUð `¡Äc—.*{rœ«gök`ò)/Á°T柡ɧ"«ÏG“ÏÏÉäS=oòa†2fœô¡E„M.ÎÔÁ Fß'qØDDiîɾ¿êjÄ6²Pë€jP…vjB›úš+]5àÙš tbÝ£xÿ€>O‹¾Ô²Û í­Àq@¹,öæ pH …8™ó‡ÆÑE¿ CȸEô\If‡)ÒŸÙvÛ­ãïô†Ùðtßôýš\áÈ´?P‰+Fιú~92mÙIDnM¸¾ €k-,®õç[î-u¢ýœïñë®0Sbqðõß÷7%)wÿ“Ì lqrPè @fq¥£Ô£vCŸwã‹È‡:ä8Q¥ü‰™}³ÚÁGôÅÐ#d LbǶYʨ[ëŽ×zåÖxÅŽ‡z‰& ˆåÚshAÒ*Ú ¦ œÔV °ëö#Ù'Ç;§¡`Q;Q•ïL{ [ŠÒ nC-¤kÜá;ܬ>aÚÈ@“oþó%Küæ*À ø[W‰ú¦©¿[ôà"kn¦™ó?ŠÄ­p’d€¾F'`\qÖ1a-§ÌãXØK^G‘ù1Ðþ°£xáù¥k¿·Ëï®ïV…ÉÈaTZ8Ïšß S GÆ)"ʘ•èö®Mk@Lup)™‰í‰›NzdOèíÍBí~'{“"gÇFlÀwÁ©-Üì­³9‘M_hù}«H–‹óµãŒ ÌÑOј+EgNŸ¶êRÑe仑$™ÔM%µGÔâ¶D°$»A¾¨¤*“hL+®HOˆgTÿp’ä¢ß´õu•¸ë†‚û±CÔqk¢ wàÑîÇó.HD¡©ü÷n¿5´ÝÞ™ÞQ#þ­hæ™2ôpÍ‘y¶I¬ºI CCé²Ê±y¶HbÇ3ª@ÅnÝWñUÝuC\éòD4¤tšÒT̲5’ùI qS†¹%”í\±ØÑBlq°2*n)¿¬™X©Å½Œ©k}&f{À÷ßêD&iã_8ž.S”ÄäY¦œº„tèÃêZ¡fãùÃZ¿°µõÐÝ«ñÀÞRwjµƒÏ¦½³V¸³„Ùøõ›6ÔÎÃvß^‰$í| (ò®«ÈH$êK!Ù~tJd¾^ûâ;ïªú^Qm½¾3,6–iEwâÜ\…üµu1[1õæ½ç, Ÿ8Ç8ÿ¤yNƒïÞÉk›“ÑxœŠ³D]tŒ|­ƒpÔgÇu»ÛŽvâK˱@y%Ú›…¦…q-·<¸ÅÀ/®wËo8¢•‰÷mkNmXSÓ.¼Î!kCÙÎY¤¬XMÉêkˆË|òCÁåÍJ¡5{qu/[^BÅ2'W’ºxö›@sÏ‘@…¡<Þ*ø/eS¢cT̾gµcy“P„kZÅÙèe¡`TÂsQ~Xµã~הׂm?„Šil’™OÁ±ûŠ|EG^NÿzÚyŠa1ü™ìÈEÄ¡M#ÄŸré¢c›y#£gJáîcóf ´xæö?8vðìê¼qŸt·7Èyuà¶ßz¹©Ò$ÑÕ›vàüüaÎØÁ×7Œë‡ÕS‹æòEf/àl© Å!PÓ9ϳãþÉB¨ÛˆNRT,9Np…Õ4ä‹ÞN*ݳL3ÉV 2[œp<ˆe†ö@ª¿öI.(ÆNÕˆ°¥óÙä@Ô•õ Œ\—á†Cåâ )X¨Ç-fUã«é¿õ‡»?@GH&¶uw÷ ¢þ`šÝtO|gΈË~e±EG¡˽÷èÔ"ŸUb¾Ñm¦dµÖo¦” ßÚLE3’åµoØQP>{Í¡¢½IQû‚XVý(OÃ$±¤ˆ9·n”<’è3:J/C}ÕȬÅôÒ-ØR'òG§‰aH¥¾V}Øï¶g6‚} &Y í=n­”,ýáÖj€7í[\ü§ âpGNËPß’±§—ŠšÎ*ñM#<Ù ƒü‰…'Ï*¸‡>ÿÌ6„ Ÿ!ÆiÜD\~ Ò7n¸A&Ʊ©B™‹«k¨¾Z Å3·ÿiÒ²4wyU^÷E§tÄ‹«2 Ú]^¨›ë~æm°U$b.\^H øØn·Å„|ÕOœ¯®ŸB±“ÀælÈÓËlÈÝVpV¸`T°zßÙ,¾Ÿå(®ÿH‘×^bˆ•je(Ÿt.ZXÂÙž´s›t‰R–Š"sÄlˆ‹aO[v¢cå…œ•–uZì^¢Ä(:O§&z¯²Dš%ÐØ‰N‚Œ@yHÆÎKøc9ísöA¦;‚¥?cÑꢎÏz;H0`†D7($ aÂü*xЛWïˆÅY6)6Éõ`ã‡/".G¸íøL*8l?åTÊTxn)Ó ÌaìèSXÇzp‚;qCæìa3Íð Äîõ$|9GÎ+,-5ðd›+e}RVvG7#¿LZéÂù£˜%9mØÿDœ£¼(cŠeLý·>¸‚']Üj+¬\d÷Úܲ ½Íh™¼,šl‘.‘BÉ\¾mÿn ÆÖÅåÝäÌÙÓlÝþ.oôêð·½e/Ô™^n0³„"£¯Z¦"ªò$6idÒÒíuâ餀ù·nGQ´j¤ÿmR‘}ÇsJØöH.…0ðC™c¶Á“l7½ 9:yR;øpàã”·œ¼âgÖÜ¿§éÎÈ)§r•]çìr™47 á2!õòØa ´ú\}P>vÙ­û:¹zch7"ec—šVá›~³Ûª;üŸoÒ˜²<_™*Àó˹`jsâ²ô꼸­>Øy9˜15Wç…ºáBD‹8Ï„YdvïuÀen˜Ë„í*É+ßzVø,¢G1<§Ž~h~.2‚Ëé¿·û§Çþ`ÏÅ¿ŸL¿±8†NäÓcvGdÏ+—¸%­‘ò<MÜb ´xæöÿÁ‰[Ð';Œ¿0—Z¤ÐؘÏ'7°¾Fžøã§ßüx”ï¦ß}G žNf!oÖÓNþ?§x›?’{q.Ä)¯!S}JÿmÐõ}ÿr8¥Ý¬£éŒ\ˆþ@MìÌÿgÚ̉•´Ó¿øîFrÊÓtf˜³#(ŒëÏ7UQÈï—̾çõjnê¬1?ÄÙØrÙ÷mÄÅ]¬u»èºõõÄJ®z”*ñÇ®Uiy0\âÊÑ-#u:Õ蟓k†„êÖ…0{~0ºÓÑQP'‡žÂ?€ÛôEEÑnÀA@XO!‡ýÄ~Æ´¿F`È ¿ùÛ47‚‘üoXðÉ ÎζïßÂfí^¸ù©'™‘W°kÙ)9Äwëïù²c¼¢Å™4µ´Ò”y»· ‘üŸ¾½yE­þ Gh=pÞLÁZðÉ¢cÇvÜ—¦µG wžw.cúR_3†Æ¡°e3+̪ˆ3î=mÌ1ØÃÞ&aOHy6ñq£Ü+Ö|¡rq;µäWæ?Ü“¨4Z±› 4Ý#Ç%íp.IÄ–V¥Ú.wlŽÄn]»¶Öã›ùÄRbK²®‰Ã2μu3’uÅDÿá1WŸšÿ&U%e ,ƒÃô[ó°Ü M>3ì}“ç7gVQ´=ëõÄö*ªÖnÿšã.·6¢ÍyÕ`ê*(1xer 7ŸR7¿´R ¦Ifi1œ¥ÈM“O°œ.façí; ¬rÝ]Ø™¿ÙÂÉ»nÆ¡ëö;ø1!}xßi 3wsE#XL/û3À¶w¨ÙùÜ>²¼ßÝpàGÇɵX>¼o½ÇБëu^Ë—ß'×bù"ù@§ËGå9–ï°oй7£†&CÕ´LœÃÑ*ÄÔä>µèuа>oÑ9‡ßìXF xJýôýMG.½Ÿ…8ÍJŽñèÄëùw¿ûŸ[åc}zŠ´ÈÓ¤ykm>³±bƒ5·š&Vmó'…o¹5gøTV>"r=z5ýý>»ÙM¥GÞÉOTüLOÔúJ!šúè"°»ß"[¦`EöÝ_O=õfL2M”ŸQéà>~¹êü¿/Š%¼("ëÏã2,ÕN:TV¬ç|Ù2ÒÒúøØCçŸd7A±zE{Hü÷Â1I>ÐZ”Êyÿ}OLÖÁ0“ø~¸;!½³z|¶Ú’øšáC¼ëæV°iسۋ„µò‡_1‚&{yšõWŽ\¥±ÕærK«·íÖœ«´1bgZ3rÙÓ¦NÑ£è‰(EÙdð>@Hýã4•ŽŒªdqÙÈ "\¯+AGÁàêm£©š€æãD+æFئ÷Nn¯ªË³%²z0¬?æÌðØò^5ÍϘÄ{Šê3êxë_p×§9ÔüDBÀ|Ê×­º÷´Qä¨ C¾‡S…%-âµ'Lòª}d‹´ô–;ÑQÕVÕèd“ú•áÊÍöb{Êì‰E³ù$œYH_#h-(5ÌÉcò„"F!*zþ=e>¯É42…}”ä…û-»wî¸ iœ‚‰o„sßz¶ªÃuo9Â3 .ý¯õ8SX5 UøÉMf/m #ûgFÍÒDv—éºi´.¥’뺘hé¢N#¯tûö&­â:(-:b©@òT!B¸U¶G{uæÝvw”Ö 6ðà]É^͸MgN¶–—©uÕÚ·@Õ\Y×w³zÞnÄR¤yQDü‘ɆlA(ÐNîL‡ÞR·SŒ§çõ¼›ú·Ú€–l#ÿ9¼«Er™ø’ËoæfB®é3(º BÓ˜ ãº1úpõ[!S Ž—¼‚™™S9ixÉçk¾^³<‘ÕëZAJذongÄ)ãr1òþ¾Pe¶õHtF·Ÿ‰kæ²ð•lœ8MÌGRÙi²qÒÄìE÷iõ¯ÔAœT2ûV˜P zîí!/r•à²=3ú€vYø‡çù–qþV7Ie(pV¤uÐ9ÃjVh›;g½e€¸@œšàe(ŽgÑÁ¥þ8d™8â>M8qæ†Ieü+Hô¾õ_‚qµÎ‹¸Ëô*w)°HTž¹Ë¯qÈ7tã€û¼#kPÇIåó•ŽÀaåBô?ß$D¤¸âˆuΘ [¡FƒÉšrTsî ´xæö? îüØ¿iËêªuŽºäFñúíyÖ.œƒ¿ Îäkì<FbÉ$V›OÔíæ@E¬Òû]\ª=½¼Ÿ»@}†¸S[ž‚l±ð—²d-É‚Òí¤©ßùÅ–ºâ¡G.××[xu¿Ùj¬Ed²€hO`Þ¡*盃КÙeóñ´[š„ígIŒXFÑdÏÆ6W˜•¡ á¡0Äto/(›\\KŽ+ ÍÚyÇ í¡SP}ô$Ï x7·„PÀrÿŸoJÃêñ›‘ìúžÕs7UZš1NÅåÝmÞOð¾åGTýp{»ÝÌÛù©¹ê­äúÁW%F£¿Ç”sú^†\ßPĵ1Û÷-?~à1ÃÚÞ\µ„•eä¸I³«‹lß³oµ!¦j~mÈT ’1sá<èuº«‹ë®Õ±¿Î!ýIq˜l:óØž˜ˆçP晑Ø5ÂA¢â® &ð›9ðØûãq-qŸ>Ë "fEcï|Èò9yqF†gL€RÃÜê嬇\á…låeuMá=_¾üø‚ ûz]ØÙUh'ù@b6\Ø™\Ø¿cg¨<7Tj²ÒCr"öL\k–~Ñe€^Hw¶¹Ç¸îØT XJC˜×W¶»-ÐÊ3ªÿC=jL7¼QüÅ"=Z˜[Îûv—8÷¦-òp°Åÿ$"4€ÆÈôÔ¦çJО8Øon^OTÍi¹Ëîf aMçVp|,C'PÜ‘èuWÔ’•ø~}sdêÕ;k:—äk!¾!mÁ—¬è³œДjêí·Pl‡{¬ð [Ï#´›8°kIT¡°áÐOˆ ÚŠ6¿æŽáˆ÷«ucì3|!®pêé.š`6ÑïUÞ3†k‡ËÜðüë¹'­OókªŠÔ¦0.Êòd&žÍ¢ +²BÃÛnÙ›J?çR`ŽÒ#©º¶´[œ$¨*PUr”‚–- Ç(Tɨͤ áÐÎ<­‹ž4›™pX†Áß@’¬;`”bØÈmŠû›GЕ‚’h"K`>ùž˜=óK +\ox•¼¨Ìßu=vÑë{SÞ=^&Ï£’CQü‰´5_MÿóæŽ®-¯›ïl”„‡¯Ì¾Ã]ëíÄM> ¡8ûKI`–ì!>öY„ÍöcÀ!ÆAÁ\—•x•’‰ÝëLгþ‘ñ`)D•Ï~d^a5úC¬ nùgè¶ÑçÆG·Ÿ“ÛFó¼Û´`ê¶ñµÂSÝc‰, ,rPø@ %hÖîÍÄ"<¹¡¢æ2KÊx'l q{@äÉ›ŠAGF¨BS¡ú[ßYCØecœ¾nùéÃÆfÌVûÝuÎßt"²¿½!üØ+CÕ×Ìö'7eU_«¼¦DŽUý¡Çºî÷»c[]­í†xg¾ÂÝ17ÙfæÎ­ÛEÃÆÃ—{Û÷yå’Ñ-Ù£ž° …P­½¹Þ¶Rd‘³Ä1` °L2ÎÌr8u Ƥ©.ì‡ãïÊè¢Û„3=0ð„¸žKp÷Êê!ûk4ÃÅxÊIh÷Åw@}í:ë à!öKPo$*TÉĸëg‰`Cùšüá]¼[_bîó3Ä`±=R`wá#5¬SùHQw—Côˆ”Ž>0¢\×÷ì°ߤ¥‘ÈuÌmˆ¨è}˨û!cZ÷»¦¾ê3d{!¦‘²Îèï1nEßËi5#®ÊrrmÄú¾åÇÌüš5±ÉM哺ŒÇ=˜ùuKOú¡á»EÛÄ×½—s×{%eKkØÄ¹àHÆÃ_NN'©W¥fÄZÍY¨!ìÀëo{Cøˆ²O›¤¸6‡ô>²ÝHÌ&£â+³hß·üøçq~Z,®ËÅÚ‹H&2£@’+#¶ï™¤7E†\±¾',lzüÀ#^í^·ÕUçC× 9V „J‹OÙ 5if¸–Îᜳ (†ßq†,@¹ Áq}-b«ÔÊãÔ$¾êÏä_ ›}-À§–¦ß¬]SŽÇ‰˜÷“B¹ò‡<¹†%诟]¯#kÈ.ÁyEO”œ&«§C,:„®Ñô!|›gp¤´ØøÖ:‹]b/|–kŸ¦Uô:镞ÒÀGz¥XDè+‹y w%öðøÔâ1ê^ÄéYÚ½¸ñ1”×B7Ìnoª'ŽŽ40}Pb„¤ë{Ž—Nnª¦ˆ’´…¦˜d¼oùu? šî„(¢ëæÛ&HuÎc»çõ½ jÒ|rmÌö}ËxÌ/ˆ›2݈ü!7Õõe¶ï™µ©o’¸¸>f*É ¹ð5°]ªg’=Ú~°Fö• ^2H²ŸI=RÌs/œv`Žž ¾wwm"wçÍdÊqw×fÒ¸»=“Ï[r¸Kn"ÅŸžÁø¾Þí;ÇäÔ›BÏÝ,؃ˆßÜòº¨2ˆ$ÄSŸïé…_ìEôyFäcYÒQQY‹C˜lR%‰r&×¾Uÿ>ϲ+àÎËÀyŒ]F"ññÒ1²óv.™w;çRÖ9§Â¡>ÖÐl¸/$RsÔ}A 0±¹IH(IŠæŠ%D P¨žQûZx¹«ækˆíŠà•Uv}èZ@âªË›„`™®ŽÝhåù}Ùm—×õ=¶Êî&u\]·-À㮨1¾>nS Òq£ð÷ª£ì u}ÊvE1¡òg¶»)¹†Ÿ൱»­<豿€¥ ŽDþÈӸʯŽÜÐ+6MŠêÚÈ#W€¢å‹êƒüW¬×x××¹,`”¦J“\_r[ •ç<ðÃjß5×@F#¯j囯ªV¾zà^"hªêškÞ·ÞãKЮÖy‘§ÀÕ$P‘|ÀSêÚ§I ~óô°ïçz¿qèJ&}ŸŸ:VÑjN¼~ÏÎ.K §-ÖüÞrv%ÏÛ¹ à.çnsŽm3ÁP Æ™¥ xRàJ'%°e˜€ óÉH“d„I—ä£.T`‚ªèLrs”Í®çmÏÜþ?T×É]²£0¤šÒu^·-Àã6×s™4ÑÕq›vÜxþÀã¡®¯Ë®Ê—Ôñõ§d.® CU™]_p[ Åó_ð—Cè“Æ_(¾ê²/–„ -Yli½/פ¾ÕŒîû¡ŠW¥!Ëy •ÓãZTΪž×h5Àø„] Ùm8Ê9½$ˆ?˜çáªÐ„+ R¤¸ßØ&TC$F1‘aŽU›0Kí­F¡µÛÃAÓˆYGKŽ­ œ)+Š«G£æ.K˜±šDvàh6ªå’Wlè­yžW0øƒà1”7çœÛ˜r;¸Vl>qígD, ÁZXp,v~ÛΉJw—rœÈÚy#ùlݵsõ JqŠ32cTlîb¿Ó6Y nkk8öhŽSFpú=Ò:ó0sLO6’Ö¥!eLº£Â“­ì& “÷ÈŽ‹[Ž6 †ÓÄî¯ 4fçËs¸e‘‘Ý:,Vrç%…Q<Ä¢ZKÄÒkä¤ Hš0UlO ýwÑTsi«ó» ´¢©Kg …ó½¢Åïä¤Zݨüí¹b>Z¥)\!±¯Ð…¤®%“OBŠÌÞƒ‰Ÿƒ»ƒn¬‹é† ÊîgSðÔ7ÞJpdUCº]éuüî‡<Ödñ$ìŸUk–…¨QBIiæ­:{Ú,9i3' mÕ»†õñý¡è5°cåvgÌ“.Ä©\9óÜ7OëhcL½øQ¥·jD~ ] ÷:ʃ}­4÷¢ˆ¡%1ˆ˜?Cº9êžéD 0†¹z.4EcËiý¼þù Üöæ€xÎ;y8±Z÷ñ¾G®p{‰iFÚés»‘XKذ¡Æ²±ZŽs^RâÝÃÚbðÙ­ÒÂêo<ý±å4Œ¼Û~ýÛO¿Éh¿­!Ë9=9&q¾”­äh…O R#T ·iùTlŽh©dæV‘ßûah—–AÑ» ’ ª&gäjŽ-‹™¡ÜjÇŽòrè§&r‹†¸^&§Û”v–‚ÚíeaùüÜOåy–æ1âmñÚHåçwÐo{^5θõçáyYxTú – ºõ×O[ÜÙáo_{`2).³iá…eç Y/4 Á'’÷çès¤ž˜ÅN]Î,]¦Ëséa$j’aô†!ìs0jö;X?A\ÞåùnVCŒú€ƒèÚýºžçz%pJE¿|3ý†rû­Ô%¾r@4šWfV §‚¼ ¬ÝD‚WqoÑÜ&´éexÓZÆf`›^™´î‚;ŒÙ0dOéWâœÃžèo \ú)¸s¯ŠUÄ~Þ]Špê¶k“Rs4[±hêQHz-4_zFõ®Mºýå:"2 áºÑѨP*D©’™*uÉŤÔ­ü¸³gÖ]²£ ˆ ï–'ºÃîÊ·ê‚§·Zä;Ú‡pG“)+”±±Èç««¸ ÄÑwg æÓ€ßxʼnx3´gqõTM³$7?Œc6º­>›æÿ¡þª¶žO˜2|‹€á›ã&è]X{Šxª½HéÀ4œ`%ü1”öVÀðo]âZF÷EZÀ¥K7îeLƒÄ8„H”¬¦®¯†`5µ¦=äÇ—„`]­ó"Åjq=‹?à…`¢Xý½®©mf¹ñkÔR¤.‹òïZìæÜêâ²S+øÃƒÃªóKy,á«h IçaÝò)‰Í<¿¥õ’@–ÊÏ* P?-âk"Œ@÷Óý‰§Äæ ¡éQà+اåR„¹3Ü äm…„QüΧ¾[«ÊA!?? CÚ,§'S À O×ÃLÜF|{]¨#^jÂ;+mó””»K1SË'eøà!üöô'=÷i®†ï½÷síiGâ¹hªz’8›¢èÞðb´7"zô³¡/†ÙÐÏ3?„iÐûHfHò ¯Â<èAÒØæBØHJFA؈ùtÃF~>a#iüŽIc Îýã#°ßöÚ—êÿ ć¹ª)¦ÓK[X#ÉÕšÎ0·°ÕBô§èðs.šÛ8«ëkA#ôÞ ¥hnÒܬӕX û¾•Ǧˆ>°Æ¾Ý4×ïb釲G ›Èpq9o¡Í`ÇGEõzá SŠÈ4çÊc¾ iŽh _‘—㎠ò¾•Ǧ‰þÁàÚÇszPôHŒ`§4…rÕ Ó,Â=œ3çœµŠ£q9 *HBÄa¯®×‹øÍPµâ°9×kÐá=ƒ~˜µ»óò;%èäᆆ@òõ>_1¯Š}1|xY:lÔ¥qièäÌMj¦;©Ö+ä¯$â™â`'_ÒD-5²–›‹ìgw–ÜïnË×5ÜÛluä×K?V%ùÚ³äH¾ÈëeÕD¿ ÒÐSöþ&¯¬É& rú.Ù¥ÚË Ú–R»¾c·Eg´¢EĽ YçÕ@ú %'½çaæ f瘅¬óÆ«· 9N œö(ùä9JÎó(¹pcrÁt|q•Ê(Œ§cí¢©Å_n±¶fC3uë†ÂG:ï#’¢¹Œ 6œÚ%·Í WËRô,"©C‡Ó&b¦…b$—?ß#ße-2T½€«Š,sš)2ÈŸ&I7çÓ5÷­tN˜û¿µ2fVTK>PÏŠ ž•K™mñÓl=’W°Zèûàv)ˆ6›³-¶ƒKµŠ.£Á=œGøE[¸Íw¨X)G^})yŠѸW`¯¾TjHÆÕ¬)žñêK½Aü¤|¿¬‚a僭ç„ëÖ¤¥ þ•˳*XIØŸ&€F<ì4Ö 3êæw§G/á©UzxB.Ë*° © eZ Úœa¶©˜ 3¯"ÿ茰;ý/ÝjCè¨ÂW(YòŽ@tßÁŠÑ"÷fó²|6 _¦á#S? ß«€P÷,£õ=y²‰Z‘”׋ã`™TcИZ´˜ä‡-«RÑÛj£.PÉk8Ù!~Ó3ÐSìKõ’R‘*þÄÐ2º&bß©¼ŽE&Ønvòáý&1Ò»ƒíÆZ_ll)àTî=0†§wsÓ?P…ì¥2Qˆ ÆÊv»¸ÅüŠoS9îNÚÙ€ð`Ú‘‚¢`=Õ“³S5güõ§³àRðRÞwu~`ø1òÚîö[Íì˜JfGÁ²yù\>“g¢DùÊ9žà°\v3×GL–çq)W Å3àƒ' ÈŸI€^ñHÌz£Ø'i–T“kS` D2¹Ù²†¹:¶@+Ï?Ñä×ENé D ÏÉ4ó‘úÜ3ym·¸—£;aQFq­ŽF‡$ªÐÈOÈt«‡æBcÍo¶U­Ý#..MÕxí¡n*Ei7’ð.¦„ž1½tÆô'&M½uÉéüû4€k‰˜ý!¡ië˜}Îë­ºÔ{6ÿ'òqsHC°ž0ÀfÒÛZ›^·Ü9·a¾$f÷”a+å–1¨;H ’}¯ä[LÓfìNÇL€s¼  ö®øU$yˆQ`«­Ühyv!×ócÆûÖ{¼®nž¯ó"u{y]ÝÎHâRý˜KQ· WLÎpB<}¢oïyÉ€µÌ!CT„î]6©Þ)y©»Oú‘ËÄ÷ØN~åòÇx`cÖÑ#þÀÜåtq5ô÷<âýPÒs@ µò‚½OZùÕE­ü*bOwɰkï磞Š‹#ü`8ç*iijæ.§Àêì[Ao9#¤M28Ëý†<ÆŽ-`º:¾Xºk<ÌW ‘û†BoHFË];?„D@õìs‹‰¶r)dq""—>#wþåM‘Åœ‚nÝí)MrŸ}ãæyà^íH7ƒŽq¿ØD²°ú -Ð券fè12b£gÅóç¹ ì4€dâZ{tÞZKõú…÷«ê • ê#ƒÎ‹þF3.BÓ 0œˆÏ&¥eº·ƒÏp§–Ö¡ >DzcµÙéã3sÏf[L¨õuXÐÈ3Tñ±ðà Ã4S}häé…s%§‚ºv™ßæKïRù \†îUñˆ‹¥è%¶„—™ Ù"T+%™0 y°b¿ëR´¼àªµp9—X§Å?-††‘ttjÊ5wß¶}Xû§@ ä{—”vÐÃÈs -?i|ÉòCQCËi>Z~~V–Ÿäà"·»àô/Ç ‹ÞzÓ"[6æ:¿ìÍF˜õíÝ×í‘Xº5‰Ï)ËÒc2‘ËbnZr6žˆm$6ÖDt&)ÖÁ¯GÞí¶øt£«×œî4)ÈÏ&26§`‹ã‚ Œ‹ ½×ˆP¨žª ¨ç6(RÞ·òXÅÑO‚íº(!ñS°Q<è‹Òè&q^âC¯©./kç/+{ØÛ¤ƒ¥Kƒ¯/‚¯o½¯'E€λÏúKvÂø>œúõÑî’núù‰DÒ:<ÿ/À™YÇ`«Jº0†("Ìâ’Òá•£P®@+Ïu’ÿc±m7"kwµš ¶›Aý ŽÒl¿[ykðÑù÷vÿF΃§4#äŠcßZ@“*§D~帟“ <£ú?„Ðë†"â_ОL/âÂö‘oÀRl&%a­˜æQTÜÍqôàe±5’|ìž_¼š~VS[+²øTƒAãÐÈ6BJÎ5äè"Mã+zV°:\td™m^fµÈj#éÆÕ¸k‚à ™Bêÿ£¹r×MÓÇ|mI©¹®MA‰^­È¥$ãŽît-Ðâ9úyÌze"F«´ºj¦ÀûÖ>F/ʤÖyÇ|ßÅÕ|ßÒv’Çœï»|ßÿñxsœÎ‘Ĺօîʰè}ë=¾dXWë¼ÀúR<“~X>Ð4l|)löáÏV†³¡‘‰äBØJä«û˜ØcR°D@ä½*MÏK€Ì{î»v.¾{íÖu­ƒB×…C.%»!¼q8ˆvþ´m7ýÌpü±õL'"/Ft¥°pûÝZ,¥âá¹18¤¹ á>‹>²±Ôó³°„ÓáŒyײœ—Øsó\†&‘ŒRÍšYy3]÷ZpÄ»ùeÏþŸ-0L#ö(ÑLçP’¹Ìp’ÅxâM!¥z9MíšÕûÛk‡Á‘ÄÀ ™“Ȫ#ƒèõ(•)~åÔLâ©äMiÈ·´yàùVê£/ßN¿ùì÷ß~ö››GÃ+ /-~ă7ÓÏv[`öÍ‘ÀöÁ†½JºÅÙH€¢ù È·_ØmžeœÇ[wº^qGìÁåíåHøˆ ·ìøî1†>­\Àd¿!Ø6º'’ãæ&'?´q™•Gš´Zzxîo*xCJX–gszFÉ0®âÙà+ X*Ûó ‚Ÿ#R+2›¶ ¡Ñ¯»»c¿é<šÒÁ¶ŠDôê³ßýõïgèUB ÙhMéUcèÕ?ýÝç¿ÿšÈYÚdxý‰)Ù—_ý×ŸÓ rD½?q•o¾0¿¯¼XŽ(RK-Ìf{’¦Ÿñíüú«ß}õÍ·_}fÚÓ4' W?¸¡I °-–Ž .%Dné†,§æ¦í¥R®3Ú§vÆ °Ø ÌËËÞ!KüQûeA­“ÚÒR3CÃk´7ª€×Žš‘V‚ ©Æ±ômÏ7ñÁÎrxœŸ1¯$:‡ÖS‹Nj‘wã›’„íöG ˆòÙ×eˆÀl¢¥1ÑΑª dDÛ¦ŸBGúæ U‡#ãï>ºÓ|w·7Û ·ËVÒX‡Ù•ä]=âÔ¬àp꾚ñ¹¨( ¹Ù[à §h?'ØàÇÃrßÃxÓí#äI½Ü;xDúêØE¨î¤ó°Ü¼¦“S›ÉÁéÄEßAÆŸ¹Øâz"òÿƒ2,¤\J±2˜«a‹$Åcdˆ6pƒ£|K ¨=Ì:vÿ’ˆ\qËþƒàÉ_PÿîžøK4ŒÈV]ë‘,¥L‘¦À Ÿ\2ç柡>%KüG3üÏÉ Ÿ¾Sæ—t.´MZá6Ã1F৤= Ùø”RÚèEdݻƵ.¾9™¿„^/T]?§¬HY*]¯ÎPÌ/Ë¢×j¼H½šªœ<7ÀÂf*F%qÓ“D7‘ÿ*fëvã¥G…úúœƒ°C¥Š·wšµs9b Ù•‰½á¬Åz†úå;§±5œ˜Ÿ¼ÄÔëö‘~Crb/í»7F’ÿ¼LツˆDË]8ä;kfahyðXíÌe±€ÿÝdE*~†'á ü4¨Ü%ÃÎE…½™3Âj´K„îóxdß.Ä}9"§3çΉ—V‹cWÊ”§þ’ævئ8æÒ w^VÇÅ=€Uè„8¾ç•Ùl]‡‹–0ÄÐp'àóPÃÂê€pñ ¨æ§½¤õ Q ŸÍûþ­Y°8h‹Pâ"Ë­Kv?›Œ¡‚mý@±.“®ì¿}  ðlvvà!Ï\‡èô •5Êó±ä–˜+š;1BzlP˪4Â^UDI9®Ù¤hå¹ú šMŸÙËîŸÉ¿`»ãñzQÒ –ä[çZÈØjà(–ÈÉHÅyí‘#ë0â ÿôí¿ÛL26+¾®3ÅûÖ{|A—‚#u^DÒ¯'³–Ny4={M@¹}¢îhz!ÚÅ4Ë<¯oÐQù°æÉt‘ÕJí?8d´Ý/;Öà±Y‘‚"NûÎÏ|!|HÙª¼iýpŽÝJtC„sÉárptæøµ¡,{ãÞºÏ/Î>o˜eÁ&‡âÌÔæT dæA-„X[ ~ÑqªF…÷s/¶ÊM×jîZ/,–4 ˆT‚âC/dt,[-î ƒø‹¥Œ>ˆº°¨pèD™˜U`…Ù¥¶»_ /¤M)vGõ@ÖLÐ"qUŽV·H®Ib¦é—»ÁÜÇû_‘š P¤eqSHÆj5ÅDô4; ì©)›ñ¬Z¶NN%Mü$Ô=¼ªK²ý‘”n´5+ø~ƒ<æv¢¿ÇÄq}Ïõ›ø¦Dƒp'4Ñ©¾où±‡.û‰çÂt'’¡hÈØKji]P8ÿ§ëÃNÂ@8TS‚S-À'±5+tËw§˜9G§Ö†FAX’â’Ý” ÈÐ5Î~)lg·Gì‹=NâF³Ù[ú¾yP¾E½²©—7Ý:BIÁßusŠSIY÷t+pÆÀ!\§pm+Ž© f09‚ƒÓ»îŒÞ­äÚÓ³™‘}ØùS Ú‘ë·µ ž·â^ø9g븢yûõ©_ÏS¬š§güEä!É @uÆRa¸–4a¤ŒSÊ_wÅ3T ´ú\}HÏÐð4¤×ÝC¥;E{R—Õµ™˜¸<åMÒd»¾2 ¦€~®’ÉÏc\w&f—X¢0w! IBI{Y<½LA-+¦aΙmë0VõÎ9+±‹}»F’2À€øluàü¤:[‰Á1W0) ùb‡'¥©×:Ma"AյŻø³!ayÄ¿Œ¤ì.r®Áh1ûmdi9žµ[Þ·òXÇ}É£¥‘úOŒÐz¶?IŠòz"ïÚ’d”Ìr‚Ö`2Þ*ä Å“µÉÀ¡ÙFˆ»3ó¹àŒfC¦pÏQ—ÎDèÔ­u õ˜vilû¼0EÝÀ±W¼ Œ‡ºuK0BTC °ÅÅÔi)U]WÒÐØùÔ}yŸ›ÆâÙËñ¨#„£@«Ïuó“QîàÕàÛ¦T™a¨tm&¨€W1%”OóÇÕi°ZeÁèít}Äö†$4&ÈqibBŽúœSŒC( 5d1PE :Q±ÑN…c\Ã4o‡tÙÝ›-KýúŽÍýq Å©7VÙhÞ‘„k†)D\+n•EF"—‘XNøùpîÆÆÎ °®5­ÑíM™ˆ·bì?^;ŒÆ^2­oá5ÏQŒË΂îôIŒ†CWÍTh„°¶ Wõ…¡Vl¦kÙ’NÛù¾#t²šØÂOEHÌs{W!&VOʼh G{©»D<-Ô:Ô!I|¿ô!«€Ž ÉÒ„åYD†v§ýŒF%Þ¶óØ›}´\q”Ù~ß-Oë–.S§è2Lh €û÷˜Ø±™çò—þà˜ËC^rÄ!03TÒpöyZŽ£8Ø­<£þ?8̃zℌÛâð`¯kSà h  Ézѵ€0(3ÀÏ?‡ðzâs#‰Û@ïßôë5+‘¡ö….º{´þEVM¹žÏwÔ øÊ‡É_ÄÒðCYÂÞXÅýÛ›¹]ne& l®g1ëЭ£Rˆ¯»°‰Êżÿ+¨’¡ów¶wr®AÃc¶w- RNvŸÜ¤In¶UQ»Q8; ´òŒ~"mìuw"×@Ê1—i]› *àU,‹À_][ Åsô3štGcö‘åº+zÈðËÄ03äFÎy±§(¸ìéÔÝéu¿ˆ¬”".’ö¶_ n{ºàŦŸC'w 0¶tßnJó–»¼Zö½lÛÚ°Rš×ͨ¸¾7uðˆê?ÉbÕ×=×ø‰«A#CÓÓ5gSP‘b]Æ8&˜'nø™¾ðSÍÂõĉ›ÎVЬ“$ ­«üêìØrYRXhÓ4×'Çhåù§œœg´Ò½2ÙxldûÀ…9[ŸÈˆ/ÇYûØ"ÿU¯ð‡QQ‘RÌZ3A=Ö› =IÆmQáù'“oSWi™q¢¦ P¸ˆG_÷pÃå°Gõcfå"±‹¿‚ðkÜýdúÄMÝOZ€M…@J)– Hãf<¯ û ÏåOãV9¨£±ûÉvÇvž0Ë —q]›*àÍI}Ÿ”$ð×i|mR&®@ÉsùSùË¡‡×fÅõÇÛÞ„°Mn20`±†›¹8#—¤ièãÊçÉË43ÀÒ,woï,¤$Q((àË¿3ϧãÖæ…Š<ê ¯Hµ,èuøæ¡÷¸ðÚ(LãxŽ¥—<Ç2óÏÐs,£«þ£çØÏÉs,{GÏ1ì*øŽNû=a³SîF›ã‘’‚¹M<ž‡ˆßG–µ7w`e¤,WÜëûV›ø'chŸ "ãÞD!úcÒ$×ç@ß[&© ¼Œ1ÇkÑ9àÇŸlêëž&®7‘Wœ²ÂùúVPûúŒÆ¢¬¼„,sà.FSßÀ†‚/= ë„™BZ/mõN.(ù˜íg]R üIêŽórüÞɨ´ˆi2¡˜¢ÑE”÷-?Ró? w!íÍ@û“¦fm1±cù«ä=óAf²²Ž®M€y¯@¨û³˜Û‡¥ƒ,зê$‹ óG%Ï4'؆œbáó¯Lùßýî‹Ï¾ýâsØÝ< JÏ׿ÝgE,µÆ¦¼÷t!IYÅQUŒË ”߇޷üˆê? €ëMvÜ$EtmÖV+ ’šêɵ Ð÷-?šºÑÏc¤7>µ¤ìfÏü{Gü\àôÊÑÖÓý\STóG º¥Ï§)c[ÛØÈl@Ôx$'CÙôënCý€‹Ö9‘û^ƒu7F&<í½´6ŽÈØH§quáǯ„k~uS%ž()„ÌžØÒÐJþiD ¤ï5r(»©J¶ªGow}oªà±ø)€kË ^Þ«®'žêƒÏkœdѵ) ^ݤ¦àmü`Œ£Z -Ðâ9úyÌwËEŽlU¨¯{š°þâëîæ.¡hoé~g#(2ßÖfývZˆÎíÉ Yz$>âÞè9P-¦E¿Ã}xb?Œ[¢¶ÿô_ÉÊ…Úz9«sV&QÖ”:¯R,²×’Ó+¼´œ ‚ÑJ‹@wóñ>©¬û¼t:“„}"zš>Iš‘‚.K2©0ÂííÕ¦qÏ ßŠ« ;¯³­uwèF¦Çùj]˜Ñ0afÃðt„!Žö .Îe.ù¿{rÑ©1[饾 x„„üRPËg¾þâÛ¯¾¡·„P„·ŠðâO_üñ›¯~ÿ»)x’´)N´´¾cÏÂ-Ù‰²@Ö¯àÞ&e£¿LÌi¾—õÙnÓ9 ™ë[$¸ 8$bÎgxû*ðwKs³ºø‚ô]•Vq)/&Á 26óË<1LÁ/ÐþK+õÙ ÃáÜò.†éÙå%7Y^M2Ž{…î䌲E_ä ~µÎ‹Ôóëêü›ê“Ê¿(è¨y®ë…¥Èþˆ9$¥é–Ød$“½Äå'M·¡Ú¬hDÅ[Íz¤ÍFì;Á¥^´‹ü )%""Dø!ŽÀbS ÍÏàNÅ`Mî!ppµIÀàm¿‘PÒ…,Î’œKz?Ð#ûÙKàNÑ6ìÀ‰W*€àÛɠĘ`×6NÁï¶ÓNçµY•WË9]•Ü6{/S°èÒ:ç`mÏü~6Ï Ar¯*ß*ÄÞ?¢š?3ßeHôdvÚkì´޹øšXmèÔæÜwoŬM;ÎÏëÒ|ð G<Œ (bû†“%µf!%̜ԡrc¯Ú€…÷d o„¯r‚&|Bþ½R\Ï™®„è0-=âL(ƒ¶Îc Ñ’}4‘GéQ#ÖÏb8ºäB‘uÒ Á:6¯ÙJ–’{ŒÆˆâèa@ÀóŒ?ü'¶Çf™!+-1àŽtéÓõz7c¦]éîr®Ðû<t»Y÷×F «¢¬uäXk8]÷.ƒÏgŽÚ€$ œÎ¼ ÂRÀnÈ{9@{€ûÞœë£hø©À¯1&gÃ#µŠ¹ôA2wí_Oô5܆޵ˆ'—*è–ˆ‚G@ˆ¯[pꜙzÅÚïΆ¸EY™(n{ÆîO…i·èépìè|ðp:¤ì¶b%Þµv{/˜ú¥`µƒþ/ÔÊ zQ%SjÇÄ÷,œ÷59Ë8ënßsü•<¾ '#užÃ¹*¯ã\qÛIQ1ÎUI8Wf}ÙS,^ØtHóöزŒ&~‚/a‡yJ¾d| ·Ð 0¯ÅÇ 8"‰¶ŽcWx:‚Y$Ñõ«Êv^m¾ï´nÑŽw&ГÛH7&úÌNuðËUˆP¥ÃJ’zøÑ0ÁÂ߈b/-˜à†æíœ)Kñ`¤Xax ;Œê5q✥»ò7Ÿ}eŠ|ÅH@G"‡G²í†)ÅD!ñéú¸Ú–+ž˜72½6÷Œäª3ó¾b"þÝwd¦=ü‚S-n­é›UƒAZ¼2ó†c¸2 >IÔ©;¾|$I•ŸØà€D­|¦{`ïFtá«ÈgCµ}8±ÒÄj $'#Y“[¨Až@31n247Ö”*ô¤¼õÒù-½Ød&1§®öRêÓþºg.~¦ŒÙËéܼu+¹Ü(Ù_ଠjs4Ã6·Þ`ÃrèµùþÉ0y{€q™Ù’eûOÓ'ÉxÁtû‚—(wè%ó†õ._PX2M5 Ã^NÿÖ™Éà ™¤zÛm;ñäkòüj"ó>jíã‹H«ó) ¼Ž§°aª%ƒàE.‘™PK/25µÓü›DXË[b¼í¥6'<º“hº­Í4ðÝw4}o§÷Ëý‚'òHHÞ|ß‘to^ö3yu Ý"j|8‡™Wé­E²„NŒã"R‹ã¦÷ã° «KFëPuð¦²#ù{1¬§ …]¨kùy…¦ŽÁ”åоJ»Âå»|‡ÆLd{þÊPp•[øwŒEæ<•<ç°5¢¢@ àã@ÏÊgÚÿ”Gç¡ÐÜjËá‡)ùÅá“›²‘ ,Ïàœ‡X½°ùg0õeæúIK‹«?ƒŠjÛ{°Òʬѷl­¹³"yîá#>@D§”þ¾~ÚÂ÷ydœ‚ÿü0Ù%·‚Üü3t+Èɳà£[ÁÏÉ­ G·‚o5“°V’mÌÂÐê΀/Dý)HÙ`žÄÄ{„…ל@«Ö]¸ºßRýMOÎ2)!Ôù QbŸÈk¼§Þ†ªÊ0^2÷¥‹yUˆ¶xºp«‘q{2 jÑêjª1cÃfì.ëu÷ ¾—}þ­yÐà$X~mf“)ÚŠáŸnAÔwëùmðvÀN™æî9¦4X›hË4Ûy€¸ÖBóéîmÖë7ö;ä;Ä­ù°KJâHW¹éá¼#’Ž G¦…üf µÒž.)Ð¥Ù á¡æ\¸F‚\ÅFX¾C~½¯~ù{,š;«“ÄÚ_VÆWsLøÚÀ’h¥0Ð\³Éމ%¨Üg’ŒÌ2êVÔ€& äVyt±!pZøoÔ—bŒUܹ]H°&ù}¬œ œ*Á æ…Å«gÕŠpgT#@“Fž=/' Æ(W‚oŽcM<`ºÉ áï/âÊq®.cu°.%¥åBzp1ësZ36Ûq0^>u9Û12ͺKÖ†XQq'¤—¹!ë† ÐämžYtɃîv˜}Ï‘=§ÁdvÆA(±xnÆ‚EòÑ~¶„ƒ÷5 ¤GQo7m¶2© &ù 4Wa>,|]¨Šeä<ÇKD«é–f‰'vb80[ÕeR\µeºÖÕµ åe]5å™Ö”‡çkÊ ]]‹g4˜Ú~AÜüðE6qå¬\š#'‘(OÊ’‹à0À‹;³ö.G‰ú$ƒK R·Êvì§+³èÑ2`æÃó²Þr·ns ,M¼(8P° N]6@ÿÄl»ÄU…Ò6Ù‰ßôÖõJó‚o×Nr£ù>£ ßåÔÃÝ…K{â¸Ã H2¼Øqû°ÔííPË)þŒF¸&,Øí.òˆòÕ,¡øJ¬™qăɰ‰ÓR2]7ñxpnJÆo*ÐN¤pñ¡4ó ã>¹£àu"ðªI)$ý>ŠØ¬į&6tÌœWo ´ú\|(ך— ^;áÏZß–L·=ÕwoÛ͵æFO„XðÝÍ-óW‹§l§Arf.²‘,U“tÚùs¿3÷L+Ú »„ØMÚË7ÎO“¢rÒdÏp» X¨ù´û+Ç3>(rÍyݦ ½îÎlj[ Ø/=Ñ€<®úýÜQ Kf,Ëñ%C3o„LtK̵+fKÄhj)T?Yà@9¾›²*Ê}o:úÈ(d·ªb^}ïöˆÚbñýM°›¬Ò ¨Âl¢óÏ:ô³„ëë3Ë ëñp{=kµ8Ÿ,a)Ì.Pr¤¥EæGŸ~寤ժ, AUßr@ü†˜ŠÂU.-ôógžyá–ãZÒøÐ¡Ñ(»ËC{+ŒŽËäöW„IO•O{ç4Ñ[ÈŸÀ®¶i·ýãÉzŽñ6·*IgÌ6䆦FU NÐg¤0[/Küß÷ûÝV´ +à$˽Óaòbœ9̈š‡[Œ¶˜·…dÀf©€‚O›åõ¥=,Á~Ó“•—’" u`^4È™à?ž÷lÇœ¢òo–Éþó ¡Ídòù1PA-ÀØ%á–æ—<޶ÚHžÇÑà”Ä@ݺk²ÙÕØh×@™ øWl÷ r©mÚy秦¯’Rf‘á²Gj<¢AŸ²Ä¶Ýmï ² øPùõîÜœ¶½ˆuHEÝÙ\>n% _1çC\ͥȖØó=ãjOØ %bY6ñzaþÍûvöd©É7 è¼oGê–nv@,VÒ.ìd°O™,õ" {áðFz`y:ØÕÛ³Ñ9)Dx‘®üJl´D{N¤®_Œ¼pëÚ¦ÎWÚöêUѱèm3Ãk€¥PWs°tG,jxKá¹­ ÓdÐrEÀÊ“­æ`Î3ÁÛDŽdÂÓêâ­¤p;)]ö€ÿz5]‘Óì>P­8‡ßjŒÛÚF"=O0»o‰|tÙZæ“´FoNg“Z5óyÚúÞçyçœq‰JºÕ¾PEnîÝ`‡N®q{Ê TÚÎŒ‡xÑÙí Øi%pß±ì[èb¬KÄ­äa4ÑE$Cbx "^¬ÅeL`]Ý¥@Õ¼>˜ëкÉz2—°‹¥1ÆøwÂ+acøt«f²™¦¶ôÐî‚t4=Á…c^‰¶âå©À•/.QVëž›ô&É7-,ãÈXl,½› ÃäêrÂSFŒ¤ˆJ­âs²ùÐÍàjÑ…Np¤ö¬XÍ+ö^b{¤Í˜æÎáJ9Ú@s…íäjI”ñ«7à/ž£$KÙë¹å] ÄJ³ó8OÊ<v¿ŒE@0:éè*òʘ`HN‘¤ ‹^d»*å—Ëw¯yá=î¬ü¦*SS>½xíûV‹òÃJuùuçkîÙ$VSV«ÄT³©lõ®³x§¡¾Hlâ_kj¾åtvR£›¸²ÒM+¤;¼Yó´L„ýœñU·\³Èî÷þ¦)ë(Ï$^vØüM9aè.¬o(ÞÃ4ÍåךèᘧqsEdiŸfæ§Ü4—šï%\¶"½(ÄTš®3Z¤%Øï•yÆ‹¸àô¢2/ó"•ðt¢„è[š>^ÄÀ­£äJY™ÜÑ"At9½Hܼ͋¨øEšòñL|Ë›„ÒJ9É1ð<…Ñ”ü“›ÄÌÞŽ†—iäw³Ï#ú¶³Ý„›ñ‚ñ†Œ¤qkXÖ›õ¡µ”TZ½î.6ïEjÞË/™÷ _ Í{Yø>š÷~Næ½â…潸í$¿ŽÆ Ž8–Q¹‘/ò±¸žÝ›7$H<,Rñ°øº;\r°Èå<óëܽü#=,–ÎÃbsXY7Še aXzû@ä@Ê>¬ø´bá_w¬Ó"äJõ-7ãyrÌ  o¯c>êAk{rêU1‹væV±¸àU@\à0|„ë?ïžÿâ¾Ãý©™…ê2ž0Õ¦îLD9—cye½K–¾ÄhhÑ¡cqòÅê„5y"¥š=[JA\±MÅ#cIpËK3K•c_±ÂÇÚ•ÔT´˜ŠëÔ“—BL´ô>³pŸY V³ëÍMd­xL0¸qpÕÒ×ÂDþà{_TÆ&Ý\½•Ê2àñî%|°¢‹ú÷[R½ISôšÃ~–²{é–b#‰+Øëºl6¡¥ú…pœÖ«Úò™œl#­Ð!)ûŸ°·áŒcGE~é;(NI–×uèuf½Ì8ëÎëá-{ro(³.ÙWf½ø- ¬<ïCÕx= †ZPÐŽÑaùõ‚µŸä„@palh. oÏß0j².§HÜ%<ºd…]Î^ÕÎYÀ@©‚gÈDªºõ5–ZЊ;Ã}ŒÜ±L€ùÍÝ+&&CÃê*Ìóì ,e^YOÑ[hÛfGÌ$¶€@Ù]VFI™—WòÀ•hõ¹ù Â7ÊçpèlO‡ŽÝ!Ô˜ƒ·ë§—Ü€Õo¬:¹"œTì4ˆ¯Ÿó¬ž˜îjÛ â2 »³ÓjWDñÃb4©ºÇ ¬ØuKg? Í«¼'£‹æÕîܼ:n]Ò~!κª%‰Z…a`eÚË;/§Âç[ž;ß.9TrGX:x«çºr5N'/ˆù+…Û‰D2¬|Çqsÿ¼"wÀîñÈw2¥Úðx}U~»õiçí£ä(ê÷ªôÒ`Fð.ÜÏÅ‹RÌ*¼L˜œ1f¬:Ù²=„tt÷lÖ¤ö«å3î^¼‰"¡´ÞŽÄ´K–ºCÔjõ}·ÞX‹Y­æžÊ* ôƒ½úB^þ¶w‰Qãä"ðýv7Wp2ѽÄÿM¬BpCòhnû~fmT¦×”5$òÞÆŒ›l?ô]i–Þ5xƶDê8›‡rÕ¼6[aÖÝÉ‘j5ëdZAff϶J²j•‚ÁìªÂà$±pÐ]uƒ3ßy!ÆJ > ñµãKgv­á£±a|ÄøûÀ|Ã-•úÅò‡#kˆôà³ h›Í7Ý–|llŠàKl[)r;‹­5Døµ°S޲C$µ*‡þQCò'6¬N‚}9æ\Øå¹×|~‚íµˆX ^¹ööp'±vˆ“–ü8ÂO‹’ª_ž(¥¹ï9|IÂT$ÐSÝžG(»]/ Ôá×Ýœz· ºÜaOý;ç^R£ݽ“ÙׄÖØz—ŠöK×É+Î5j¸¨G3ȜɳU|ýŸ~Mªs'!›d†²Â/ˆ|Ø^G£»àCfª.Hâ}'Wö*Híºöñ°Ô¯œŸ‹P8ßDÆPýl‘9fÅ| éɪDJ¸q€D7;öJ¾õ²ƒ”tªå ÷5B[…usEƒ[ø#—ÀÈTHj(ª±ÆÞ0,/Ì@¯ˆ`v ˜åPúòbýdE£vc>9„›æe,bß1 ¿"3)Ü[Ö½¥sfx¬zµø\QÀÌy—Ñâ²ÿ#âú’Â\î–ã”ìG)ð脉Œ„Ë“$$üÛ?Ð&ocUËž Ãñ€îXˆ}áE1î)#·Æ!;,a;QÈè)Š¡¯¤åítzÅy© ÉJ!ZýHçÎÅNuo¡â`{NY@Ao€)Ðo½µBˇÖKƒ3ïµ.¡ü*ôùBt¤ËËóÜ¡ +4DŽeÆŠ„ÎÃþMin#|ÀÛw˜É[æ&…öl#ê·CvG$èW7‰„3 Ùa¢ˆ4Sý½80/ÏvÕ­ Ø4ò{Z\²è–柡E?ZtNÝò6×=eÀ‹ý=IUÿJsr \~Bx’þãÇFÜ!¢$3.<â¡ï9-àM’æù$ÏGfíûª~H'žëÁFè zoŽrèij¸ìÄãë'£ÐZB;ðâaÆÓP¿ž”Û):•…¹eæSœ­‹Ox/ ]"¦nÉù-Gy{f© ]ëœnÅ·5«»G³TŒ, Uþm×ÙC{1FÑ,ññ*ØŸ6;ÏUÏEDêÜø}¼xV yiWêQš(ÙÏ\  ˜ÎeNm§ÞFçM±‡lºIBì/#+f ²ªËêÇ´ ’è=/Ú*A=<ð/¶ïÂÊd¹îìe{ÎG£½÷Â[ÑêL[]MkdåÀU ¹éÎxnƹ˜Zu¹y‹ÌÊ¿`õZw>•à*Nl>VmØ99h5Øó+´»Kvl66kø©~:š: ³¨Ñìç‰ëE¶jÊ^ø¯ "‡G#êµë(žüëzýv‚ÿ<™5œüëiÿv’f=<Ñ%9ù×ý›~ò¯”\êüó?ÿššø|73àöøÉäð/þïÍaqß=¢þüá›»O织î.½'_üá›/éÁTú¶?®ÍÝz8Îû­ùó3 “Þí?17Õ2wßOþÄ—á$»O' ZëÎÜý“l®…ÍËÏìôÉä›ö8ùÝîûɤ™$õ'EóIžNÒ8NMÁ/©ÅÇŽ3þëÃ~·žL¿$ÈÉ]˜üá‹ßþö‹ûãW¿ûê†AyÌáüõîí'¸ÐÌXÍÀÍ›¯Ûå¶_VÖ'“ä>6ÿ3¿±¶ÛИÑ/ÿŸ_¦eóéÉœæÝ"r?cž½¿¹9𩯯ÛÉãéýr¶[ß%“¿Çt-’ñô¿'æÖF3ô.6¯èÓÿ߇ýòaP. Ë%cåR-—\o/ ˶—Oþž¼¤EXn´½RË=Ó¿*,7Ú^=œ¿¢¼X®–+›Ëó|¶ ”_åRA¬9S$¹ÒÃ$u-RçÆ—8s©wãsWz7^°~zdv’røé±é©†Ÿ›,Œïx±2n¼£S¬ŒïxÁdøé‘Q§éðÓ#£N³á§GFbe I®-aŠ•)±{ÒâZA¬L…"”¥y¼`åN`aÿ}©`í rèß— 6® w€þ}‰–Ä®`]ë¿/L¼‚ùÈ`àôH‚Pä!º«X'Û<6IðL…ä¯P^R‰*ºKÒ⾘¤u}ŸO(ñ°6wM”L …†ü™n>Nþn«ûýï“¿w»…ákü_—ûÉß­Påÿ~˜°8çÿxh'þ¶7/Ô_OþÎcñÜLþγ4`~ÝŸÿ¼ü]†ôÀtà¸ß½»µ2¿é0øm=3?vGêĬ} _½²¯^íúmøî}÷¦Ÿ>noÍg$ÞÃØÍ8v„¯Ô¡nÐÒ?ÎÑ̼=í/Ì ©H_ øÙϳ…´}öæ ¦Éð gc8šõ¶;'xa$î¿ÏOúÿì´ßBÇM&ùä.Ne÷ Ëþ‡ÓÃ$£Í‡›ÓzÒÎç®0Ÿ4SÅ_úùh¯½–©à¯à»ôvpˆ¸¾oß|±6§ïÐMþýÓ/Í©n·ËuÇý£2ÿôKˆNg¿>íÛ¹ÿ÷ÛÁßOÁË =s¶„÷&’ŸPæ­áŽÍ¢M|Èl0")†xѾ¶ûYôO–Dÿä}Àl(~Šþé3ÝbnlóäïqÂ/¿ØÉoøÚå({LM®®æR7(*‚:&sߊð–›Þ”_±ä]-åŠÄ³èŸ£ž|Ù/'» N @}ƒŸÿ°[?ÑyÒ‰9ÚÁ–Å@`î¨ åvH|2YS¼»¡²q“â¹ ˆusÍÓsž“×?Ñ1MŠl²¦|5æ.N“²À‹„ÀªÏô¤F£iƒgT&'Ù4i TN+ÓiVèEIÚ|™ÅðÃ3ùŠe\&¯é_üe~aþ…Bý‹+”•û½B…œ¿LÏYÅ•*”òxßô‰‡@=Jb~n¨wüLzCºï1fs ™qr…8ôÜP‰‰)ñLÕIŽnçqM© Tγ†f]Ê+jˆ¿PÄ å°BC “Æ?—ô{É•‹†D¤ã,i¶cþZI8t1ŸòÚ¦qŽÞ•¦æ¹Då’&,æÉ(iÂâœ+”´þ9zQVô;¯sIpÓqÆKU%øã©häŒJÏØ0<‘5†¢Gu!Œ*×Mb_4ic+4ebjêJ?`öNe¿œÅi¦]Êâ,×®f1-ųò"阳¸´“‘Å„~Γ”Å<³kkÔ,¡TÔ2ÛYR4º f/$º¶ó’ržÁcòAgÞSxR! àU™`DÌÅ %wË$†¹^!=à†…$KfR1û¬; gIJ¥JôàÊ/ÄÐ<×B$©2È-ÏvNãY5Ïf¯¹5Ϲ’aó\ y¦ÊE­tÛj%èôœ*¡OÉ—@.ó\ÉÅ@•+{c¤”?š¯zÎõŠáÆWüÞ$R9Õ»ŠªXdÀørã/ó¥Ç=ÂeIWù–ä!ÔÞØjùZ‘ëuËsk8’Iâû™'¯nb;«|¡ólóEÏ« ’åix ³ÇÉò@š)««Ÿt‹Ér?ñe$‘Ž@!E:å”ýŠ*û¤VöH°HG Í*fËN-— "/;Ä_¤#\ *á¶3€[Dή93¸vD:Âu¤ÒQ–»Ó‡ûKN¥ý½ªùÂé¡JG¸!åÜãæzåŽNàªéW°JG¸›…âàÎJ„Ë\(.y‘Žpù«t®@v"¸¡`#„6‚½él‡JGYꤣ,uÒQ–:éŒHG`xT:ÊR'CºÖIîƒ,uÒX-•޲ÔIGàÍäÆÉR'™éL¥#}AwšV »N¢;P>€»Q¿Œ[3Kt$]Å-+CÀ훥N:Ò1ã¾–ÉÀ=.“„û]&÷¾L*ømp ² à dy0,Y6œYNœ]gÙ88²1ppdÃàÜÈF¹Ñ†ƒ#[G¶$ŽlUœÙÂ87º·qpdÓãàÈaÀÁ‘C‚ŸìïEjO•¼pÒ‘C4.Ç•c‹ÎèyF/å £÷B0,! ® LƒRÌÌ›L¨$L´*,€î0¬ ÖHør¬ðëXTáã±Ø"a¨t„Ý!vH Yì$ˆ,vÒ¶ŸJGØ—"‹`¿ŠŒ‚,² 6¸HGØø*áDˆ„“¢òwí¤#-‘ŽpäT:ÂYÔ/TN:Âá•áP‹t„îÒ¨€Œ--t²!sr"ÒÈŒJG ?2« K2Û X² d"À©tʧÒnî¤#J•Ž3'´ªtš«rvæ¤#i•Ë3'¨«tjo%|'¥©“ŽÒÔIGiêIG¸g†ºèœtd‡ŽÂ“ŽpÃY­†“Žp%Z-ˆ“Žp…ªt„»Uõ)™“Žp«þ%sÒ.o•Žp««&'sÒQš;é(ÍtöB¥#ðªCÊt”æN:ÿ"Ò•ŽÀñ¨ö*wÒ8$ÕvåN:K¥Òx-Õ›åN:o¦z¶ÜIG`æT:’Æ»ÜIGZ¾ÜIGü‘ŽôËÐæN:’®²n1wÒM¤#3k)s'É$±V3wÒOªHG2Û¬Ít$ËÃúÔÜIG¼œ"É:³f6sÒ‘l ÖäfN:â$Ò‘ì0Ö gN:’-):d'ñŽTë줣4uÒQ¨½vÒÿ©¾ÛIGiê¤#9†¢7wÒ[‘Žä<³>sÒ‘ÖØgN:b‚!Ò‘PÖýgN:Òö‚ÜIGLªD:Ò†³]8éHˆVRˆ!–˜‰¤HGB=±'˜¬ò^r‹=$d›‹É³HGB·±™ ó.BÝ+¶5_ "ÉsÀW Ÿ¹bx‡ÕN:â+I¤#¹«¸¡ÆIGr¹áËré¡G|Št$·$†À×'M®UŒY®[Ì_Ã"ÉýŒÉËb'É…ŽÙ–‹«À €HG̼›t”çN:Ês'幓ŽL/­t”N:Ê O:2C´Ò‘k­td¦ÁJGæÙJGyáIGH}&gÀtÂJGfr­t”—N:ÊKO:ÊKwú̳•Žìï*XéÈ4ä¤#Dóȹ7_¶ÒQ^::azg¥#Óm'™qZéÈŒßJGfb¬td–ÛJGæruÒ‘™U+ÈNh ÙV:Ês'™ÕqÒQž;é(Ït”çN:2{ÈJGæÙIGyî¤#óhé¾y¶ÒQž;é(Ï=é(Ïtdž­t”çN:2ÏV:ÂSéH_ÐùÒ t¾´!:_òœ/ý2Xž;éHºŠó%CÀùÊs'é˜qÀd2p¾d’p¾dòp¾dRq¾t¶qÀdp¾dyÀYȲãå'¢ë E6xÙàidÀבHw¸#ÙzàšdK‚›’­ .K¶0¸/ÝÛàËdÓƒ_“Ã>N ø;û{‘ÚS%/œt$ǤOp–rlÁqêy/*<ªð®BÀÓ Á¯«”\°pÇBzÀ5 I7-¤ \¶î0ðßædYéÈl+™9°Ò‘ÙlV:ÊSO:ÊS'å©“ŽòÔIyꤣ<õ¤£¯Ö<ü»Q··ìáçåþÑè/¿¥d£wÜmÚíd± «Åg‹ÉaÁ¿0I c¿‰L= ‘˜L m¬¨‘gÚ¨©ê¬ô]ÚH¡šÛþ4œnCúCmŸ7WûŸ+ϻӌ³Súïóóú•ö& çþÄ}æÙIåy…=™¿–’؃MÀšJŽŽŒ·Džá¯ÄPƲ1ô—"/ðËÒÖ,‘)$ÁW¸ ¸½ï2ú?ÁU :LO‹On Râåe` û¾õ/cR„E£ EŸÉÍ1žyÁkZsx0ŸÃÌ ¬1"…ç ƒT0Ë»T@™ '‚ñ>Ó32Aíù‹ýv °#¢ à I}4b9‚™¸…’ß,ã êíþHXO À€&˜ˆu·8"Sêþ(H=‘—r{a1Dëx¥€þÌ22ƒŠG@ ÿD.+Ì,+g»í¡›kQ üÏȵ©@¡²)1÷Šç°ðÇ H›—Æ€ÎêëIÐÔmð}$h„áZÐyNÓ°HÌÍ¥®Ç#hHΕ¢yÈ ¹BÏ »¨ßpÀÕí´7g³´ôRx莂‹D;±b¥â‘í€WÀ¸!^~U]*pV”uB²S´)žE¤Ðlv+ ßOE¸°„‡³²@¬ ”³ *äŠèVÝ–î?³¥-ö}ë=^Ï”=_çE¹R²ë¹RøI\j¶”Œ²¥¢y·ÛtG3_„OdL1\™¤Lqeâ‘´)K—A5BÚLöÂ¥Myûô7/m ÁbZz0Û!—™Ybj2ê ‡J‘0Å™[Tºöp@¾†YW á1¤›D²ÚK £8*„O²’4².‹gRM'Yã)ÇœàIHÚvÅ»nËŸF²–øë'>5C¼"õvH3O '¤üyÂ^=ñ ì»e»Ÿ¯©«sÎÞ`•/e- ïIéê“ Úï-ȨKì÷}O ÛÿM2ËFvžA#K€ðð}Eûs‚«(onné¾;œÖš«"/‘5ô>›øÉ8þX`~¢)’ÜL»VRä™)£Å×½ê]§3‡ùÃàW ÔytéLny»J܆{«Ilq!xa…¤)_ÍA À¹ƒ—HòüBà'ƒ¬™œ­3€L]ÓÞ—´‹öÜzG'Õ†Wœ-=š>œÕ@ÊùÏ‚V˜ÜR[ØBÛIž3¡~[ÃÃHh•ÈD,`Í ñ]I9‚JÔÓùU‚P B2\ibÁåyÁ[ËžR‰2b޼]Ë ñAòíñE ýØ á ý{t@X˜#. ¢+·„ÃÏSì@y³º±yÂ/5?hVùùA©3I“ŸÍpU®ßR_¸¼•Ñ…TÝ[$“_Ÿ |+ Ri>•+ѪöMYtž¶ÝJ‘¶Å®À<ÈéóÝô¿ó”°–ÿëö¿ñ!/%ÿpû? ¨|‘Ä)`ç!iïçŸ`¸Gˆ”fY» Þåé‰- Hœ"ÆGV€åaB΋ip19@ìÍϯä/Fq~mª¹¬·BE‰Ú*êln’WøfçCf¡ƒ%àÃ6ÄLæÉf»¿¤¤eسœµ+ˆøò}È ³ S üÊaB’„U^„$lˆ Y,äGLÈŸ&dõŽ˜àQ 4N§žm‡'DÑãö6íQ°æíñȤdjé© §wée#F´|ÐÊòA+2§Ž)Bô¦ûhѵÈP,Vä‰zsœ=qÇŒléòó.\~Þ¥…Iw½\Iž›¨É;¬èœyÈ„‚äzÆaÜJN_Mé« ì"›ÞúrBÞ•ÀC&ÆtR†ù½Àèp81àsÎ$6}EÙNómq¬¨IÉN>éï[~DÕ ÃY^…á”.\Ê¥+™®ÁpN³ÏiÍízE.RH#%“®C™¤ê]>pÐvÂË"B¡± / 4"É‹’¹ª¢Ÿpyßò£©ýã’k¸÷÷7IZW“†–)pÆ#.•²Ó_Q’@ÿß;ÂÃ4¾o’¦‘§%ÿZ)ð÷*—K\¹†µŒÃö’ ½(!$Ò?_.çÚcé(—ï&£ýcMd!í%#ý‹†¥/ÏÊ%ƒöª„æ¥:û®ëŒ®/;O4\~rÓ4YÄ//o´†Â®é}ë=^ÞcÏ}F9Ž7l{ÙŠOør#8i}ñíLœ^ІBȯÌ+ §\™"D»Ž%­@œ|KŸ/MÆOwà¼>Hš¹ ÈEtEÅDïå:çÇ$ã½^çE*¦üªŠ TL¹¨˜¾½¹CZ{$Ÿ…"ÆW3‘gU„ð-_v\.ñµ4« Y…–gYl! ß°ôÓ± 8sY.-ÚýF4tåæù=»–‘tSrã‚¢ XîN~W}< š$“óãªÖÊ&ÚU&CµDHÀÔi‡†éÞIë=ßA†’$%:;gĨ:™ô ×uZeiG‰zIóîšUä´šX—V‹Í}žæ¼Ý²Bó,ò¢aíº­ÀÝg §KËcÛï%+Žl(D§IÉ8yqGëÎv{@C‡ýï]Zá^x}eÃA¿eøÑ>õpéßj0vÚûE¥¬]??@ ÅÚ)¨›"Îâ%ý•Ä[­Ë‘|¶»8c$«Ç8[Èô?y¿JJ;ÕÆšD÷MhI È;;§½y¬fngíé†| ÙÄÀ>š cÕÀ­ìöž†p2’ä分3µòÞîÉbhèÄÌ"j«~º8AY‹„8濚aXl.ˆK} ݆¿Óe'w.™«nÈ­N°&[`ÃSE“³Ã¹Û(ôŒój,Z#S)}–BÑæ¡ÐS¦¤nVÏk¶”|(ûÃáÄ–¨ÃHгµ¹}T÷ºÚmvËnÛq6»3âA]O?ÃO­I_ió /5ÃŒ‘ û[És#9zg'œìwÚlëîhO8TqÝqvOyNHäò´TGU>íziÚ>®6’õ3ËYm&ɈE•‰ì/r'\©ÙÞÒ›A®(F»=X£Ùé_ïРPÎÞs¥„Е³o’M= (á+ÙoV»µ¿ æ8p²Èœ¯””·¢Ùï÷~:rwlaXªþœÀ.º7¼sJˆˆ¾H.’«=°AÍiGR^¹<¸b†²Ã]Ã…u„€È¯™tR›ÉÞç8Dºw΄›òu<»Ùxôíµ+Gy\‰yýóÁJzí %îNzËÉ=ˤÂf¾åÜfÃ;²qJŠÎ£_QžT5çJ +Ž\2³vKö?½3:æ6âÝáÎŽÓ;Lgí3`~žÖÈSÌjSbpZβꊖ·{kîÐOn²RRb{ªŸNÄMBµðÛ`UCïJ¥A)ù’Øl‚6‘æb“ªk6¡oçjí KÂ|| eè‘û/nÇ“ ©`-¹åÎ-Æb(¡"1á4çÀšK‚Zš[ñÛ í%E‚yÉ“US򯃼 UV‰fbÆÎ*ºyçø{q1ÕœH0.Û\cl#$*æs6Cé^™I_se(Ó^ZUlZ‰ÌÈØ¼LO’tjÜæ¥v§Ú»%n€¡2ýš>XIXHؘ—Ìÿ²錟†³%¼ÖtZ9±¦¡¼›ž­Rçf!ÔÞ•5Ü—¸,ß!V­r´8]¬AÆK{JìXk¤1N¬í©L¹ÂwqÆD-$bЂ#yf)ÅUq›­Þž_\—ÈŒ…OybìÒù6y)¥iN±t¡ƒ’úlxP Ókj›ð@7–òXä4;B8´‡PÕXɾç\Ÿ^jzv ¤b°ú/懈Ã#Ï«;ÏG'¡!$~ÃÓH¤ÈxË-Üzö¡¬¬£k9 ª¶¹ê&ÉãæªANß·ük؇TWWWíCÒÊ‹—]4ÈåÅ[ú)=‡²Æг‰œ…]ÉþJÿñëïô’Ò”˜_N3bG²Üfg3”»ƒ€D¦¿ÞŸúW[ÏÑ„¬y‘sá¤kÂæYºÐ­Iò¼qâÚvóÚsRËP¤'aL¾Ÿ6âùÂB’©nrfÖY”Yc˜‚l¦ K“BrRJ9È¢ÄÜ`/LB6¿Ÿ dgyÆþ³›Oþ¯ÓzBÀ¶Õ'qù aë6Mq–glÑ¥{y¦1¤ŸÜ€óã˲‹MÞ)½ØËóÄ\Lýr9KÌÅä5c™nf뱌9;Û­X‚‘Az‘ËIc$¹ÚÿÒ©aöÇ+$\$¹R„òBQ÷+E2.r­JöL_ .r­J˜öL_*.2Ö çbùæ‘öÉ7¬mCF–§,H¤üõ”ï‚¿ž’à]øW;1?˜òæß”ƒ&¾/é•MA#M´ÓŠùÈÓÕbo&¦[ÔZvµµ‡‰ µv­˜é‘ùó—éé«©‰o˜šfs‚ûÓt.ÿD—ÀO™ÓÔá{r¡ò»`é%ÓÄþA™—¢»²º'£Yfþm³™ñ7†žÜñ8¯UÊ™¶¼ÄLa\xü¼†¢Â~Ò¨nЦ£º xƒ´¦4 «—–®_Ðt­yQÓiªm“ëæ³k! ~·Öëw§Ö{iã/™r·BÍ w¥_6É;Í‹¶9^\²ÏùûGœÔ:Aôtý+¦P“ÓÌ¿³B°&ôÓõUÈ dªÑG€Ÿ5¡XÀ$ËŸÝy”…dƒ€´BS͉Iž™ ®‡¯òÁÔL­Ij"©™Ö/©™Úš®³ió¢š:=4—2=isyzÂÀ[+þ–÷ñ ˜\Q&%­®†kÊhœ5ým„âwo—&$¿Ônõ~í&4ñ¥†³÷l¸ëqùž 3¼ý¥)Nß³å²kù='ƒ<á.·Ü¼gÃéh—ßsÃ¥õX—ë÷l¸írü¾]ÛrÅû.ßXÃù{6\Œ¾÷ÜÊãsüž=®FßÙÿSâólN&ÒKÇñ_ìÓDXŽ^Ä4ñîºúó_&¶òÄç ß㫩Ϲüd_uÌXóÓ}ÕãŒÊŸð«à˜ráÇ~ª¯Z†ô'œ_Ë¿×?áNª}~ô¿úÏ“ÏHy1Ÿíb%`_Óšÿ»1=üdH"$*³¦œŸ¼àÿ¦ ÿ=“¸©‰°H"ÿMsi¢,ù9âRƒ"‰|=ͤÉJß—£M Š$•ôBzg›,Ç2(’È͵)ë\÷bPÄÎM­sN÷¹ÃÙh†Ìîp5¥‰´°‹9ø¥ ×AFa(áØ JHŸ £ƒÿ62ÁÉè2J$±´Ëàc}?>ƒ"‰T5ܽ4nŒ‹M„Ešp4:G£}”¨ÃÝ=˜ã÷Y@Ýg†”á¿f‡?ev0¹ü®é…î‹dIL€}?~†El/t.špW_hbX䬪¥3ãM Šè>LËp[éÀ.51(’ê@òAãgbXÄöBÿ›†M]jbPDÓöf°èï³§’ìlO rÄU)ã³{jX$©óqmž'®aÛ K\ŸÝSÃ"–¸ÊžJ’g÷Ô°Hn©êÙ5(Q…û©zv; JÔáfjžÝKͤ†[i¸ÖïEžÒœyü¤Ÿq‡A~OGïˆa{8ô|ÏîÆaKS %WÏÒøa‘l@(²øY†cX$Ü;öT§ãq„AæÊ}—ÕLB‹VsðS:¸9ì*ã«9(b7‚]¢¼Jæ—ŒÞͳ\×°HÚ /ç/›A÷·Rˆg÷Ô°ˆ[U=$ÏðÁ£«i1þ®ü¥@MáJþåš}R3öTæW„ëüˆ?#×ÓO‘¡¢>—@s“Ÿ *°DçŠÎå碀”þœI#ež „S~N¤tÁ\NågJ“Išüs#m ØoZʯµ”mª Á—Ò„ $ F›CUäÎÖ^ñû4Mi.‹ÿšÅ¹?(8Êq Y]aK‹tǸu\€›·n!ß‘ù’úE‘ʤÀÄÓú éÎlÅ4Œ%ߘŠîRy9†t'ï[ïq éÎ/](úL„huéÎ6=Œñƒgû™ÿ‡;JNÑB½>&C¯ŽZµŽWçÎ@ð„ "Q9V øeC×Ò.t-uèwÀ%!Oæmÿ×øAY/‰ÉRÈ; tJŠ3·ðIàîÂç(ÏÞìì±BžpX9쬳òn§˜%ãÑ7 †IqF¾Úλn.>Sâûh0#uÙ ¢íŸ‹t°ïábü×S;ß·Ç~&|#p=?ÊJŠ?²±!¦Å3&€#C ¹s™y™µëöa­‘cKòåíÄ•V<”à¨O¡Œnw~Ѥd»~! ¥Ó)^0\Ë+ÀQQølw:°kð÷ðÎæ>›=PŠã]j½—ÎgÑn„ï >¬@|%ü˜­G›¢ßY‡&ŠFЈJ g+ܱ_ót¬tŽøƒ`Kœ×íMäïU¹OèGm Ž«ÝôðÛ\½v Å•Ó@>ˆ´ÿÓÁ›.SÐŽ‘qtï †`uħ5’¹¨1tT—þСLDžóY÷ÂHÁÏí(¾ñÀ„ýäy!ÿÙ´MÀÿæ[c‘Ú¶S¾ÂÜA””"«ÒQ0W ÕgÓþˆ»Üq~¸»ßÌì ûÇnÍ®\ý'«v}'e•$ÅULÛ/Ö_†ðœa 0mzœš‘T„@z8 ް!Ë s&gàQã9 „beÕÙ“6ÐÁ!gîì¡]ßR°€Rq5Ç€wÉZáû²¡RíÌpZä9â?ìÆ<‹ç¸_ŽHKãkÑ‚xßz/ˆ¼^çåÑ‚éµhÁH¾âG ¦-øéydÜÎì–äø¡‚¯BœÈ¬¬˜?ùt½¡eIÙ‘yÍÞÇ#!wÝ9]I¼ºœÆÎ÷‘õ]0Š­F±óªK¤Pà@‚ÙYaÛ‘BÒn¢©6¿äX˜öáÁÜ ½R½-¡ýôלWoÇÑð¼°’š%ˆbƆìiŒ3ƲÀ]áŒÜ¤Yg²µñ¯=_iÀ‡³­ýY0f§“ÉÑÄQ^"qg²µ×†¬)°¯¹4n A`pL6·Ñló¸>R¨ÈizèÿÖÝPœGޥƈòŠ˜´rñ Zo;‰¤xeÛ0ÙbIRÖ‘+—Ü$„w¬å¶“#°miþÏSãU.’ÒV^r,¾á®?r“¾á“ÎV¥ˆxUüS%·Ëä°*˜öV):_¥¢º¼J‹ÞŠÉt)*rÈyg«ÞòlVv‘–Ñ…Ejd‘n98Ý'öÒ‘èÍC¿Ür¨|fˆ0qE^ ß°ò¡ÿ4n2š®8xë €ûuBéÕð?ùgðÓPÌÏÇ€ŸŸSÀOóN?o§+Â~Pê0ï7J‡ÇðΠ„'\`‰1ò@-™PQ›W@Ø#یà FÊßûKGƒ^s °Åiã5–¤·hËw ë“0sžü*ݾ€èëÁ»y†ÀMPЊwÔ «9ì<ˆÂ÷FÈOȱ’p™ t7Íš‰T?Q¸ík”¢,j(%Ô™N9JE>Ñ]xD×~ 1¼‚T]Ú>”ÑÙMÓ¼:ÿrš×ÍyuCÓÂʔޮ!EÕ}4ä¾Ûo0VºIåoô&­Ó¨ib;J0'‡·GÂñkWU¡µ)vj£Ÿ).ß"I\ɽÄÚN;!k‚ˆÑï$@ŒåÕÿš°ÞÍ¿ 7帧?éÿwøÍÔKj¾J~ñÝ"N±# ¡qhòÛ#Ò@ÛwÔ}ÙT¹»‰ÐĦv607Ýbñ™{ Á™T‡ÎÆÇ1ƒcº`ØJÒ’9SÀ]Z‰‡à B ÐÁ½²¹7) cH】é5¨ït˪æÀú\/÷¸Êu'* b÷$œt-µºŒyÅaÏf ~}ñÕ âѺ8{ Ÿj!áKndg È›„üŒ Í‹`;Ñ®¡È:*«q´‚Úm—Ç•ïËaz¦]ý–Z Ì—u4‘b®C· ÆèQÑ0`ôP/9” —q"–ÐûËÊ£ÕÅNHúB‰Ø·Û¥¤£¸È°‹>U1GÒóž÷fäUtÆFBAI›Á†V…´0("ˆÖµ9ÓIEæÍr<:P ´òLÍÐøÀúz| ôÁŒÀœƒ7 §·…p|r¼eª˜±‡“E¦Øª$¢Í~«ã[ÜGçkºò14vÔtôü!ºÁR.=F±lq =Urfœ¶óÖ0>†å>ûéúŽ»Ò0Nh·7w\M!¹ÚË›_KH›£C@‘‹ÄØ ù¿(%$Mé}šÆÖìÀKädl¼³ïùŠî»§ÆÈjí¡S8‰ÎˆÎ‘ÑÕº@º¿‹ç]IRª°®$IÒ„ó½yã6žYökø “d 3¦©Ù¤ª¿›AŸHì8ÉWû;MÏ’r¾œ öÞ¶Ÿ €ôv¸°’øÖÂ<›zÁ…­^€=kÆ/A>Sfv©aø+ö ˆöCE7¼ò±³t^“Âlº¡MhéPl‚¢ÿäê,•N¤–Ó~1´ÄÞ“P麋,—àH Ü\ÝIbº cº¬Ò[9 ¿R ÏoNãýkÐn$¡`Ì¢&•Œ€—@£p親,â¼÷¶Á,¼ÛZ(AY„›DìJy%IÎL/ýœ`JD²¡¼Ì†Y¦ðêÃô¿nHU¬¥¹DS–mâ§Qä¿Al7\¼§èÈ1ù«AŽŒ…3 þ[nbJFÜäùvÇ’ „d¶[Ÿ6ÛƒÇiHÅ´@ d­øßf_Ö~Å=Å›{K•ãÐÁ8M FP‚õÃ1Ķ9Ë“@ŒF$ŒÆî`8¤pojfãÿ‹X mÆ·Žº EÚD®Â›šÒV0Lü x»¡e¿–^DÓ#ÿ›©¹p¼&þ—0<®BÖÔèd$ß4‚Pf+€IJÝâ§Zóš¯Ê"rÍ+Bç"âÍ“}.aöÞþ©É8èí©àïSDW+Iâ\ÊØ­@â£+ó?¼BM‘¥ø®öaæ”h¸Åì·k$….íKJ7†£ [Ì üi‘Æ^EÚb4U %¹ò¶˜ƒÒŠYLéÆmÅÿ¹Éʹn+Ú;‚¹ª¥Ì@ù`OvRP&qäУZ¼iòñÇÄ,"f+Omαm·w‰§ŠF†Æ]#¾j鑇å†Õl÷DØåÀ½üåBöÜAQ·Ýù‡É0ÃcþÊ©êlÁÑMc³È…³ ¤iN€ƒªë¿½)rG¿Ò¼ðK'æäRÄ¥£ÑéM«º°µì´:]N„¦²Ø÷aÓT¬6%ŒºÌ*—Éœú²öêÂÁ?;÷”Ä2:uô% ,fC&ÒäåÛ¨6”š+жMˆ4‘_a9ýÄûÿ€¤è°Öæ¡6n‰ÙKcÛ ‡*¹pÅy×j–T‰×r,'Ù6!'¹l@¶Ó?Ü”ûR¥ñÈÜ‹f…ê’ï¥9ÿü/ÉM“PcL7¶¦Fß4æŽÈ«2 (E×Idø Œ»5çäÔ ®ùÿ13i¼~ÌÏ×_JðmJ% 24¢Ê+¨M«Ò–0ý‹ÁTD®7|–Í t¥(覇h¦¨É¼èÊ|¼DÒ´2 ¨R“ÉU~ð´æG_ë‰?N2™•¤Gw:OÊ5K 0±´åŠ œ~X>tfZó¾h*›Ë$³•—¶#¬kin8mõdY¦‘ú¯¡0Ðw²Rs:8Rôƒ„•ÓÃݹÇj¶;™ä]¹ùG&H$Œ¢ôp©Iô#{›Ÿ{îUäMv™œ`ç Àþy_ Ò”½>ðÙ±óW’ý3ÀÓºÒ°˜üi¦ue< fœØ‘ÈÕ0DŠR¶û5–á’a,i‘†«^W©ùµÌŸ]·$Í“ˆêsó$âÖ©$d«9å4€ýN„Ýp"· ¥cŠÆ²÷ÀÓºÐS³9–øšεVCÅYF{äA .'³[úK•7–*OÅJ0‰hÍ!w †ÉWä0‹«Á¾'‚;ÒC Ì÷¹Þ7dl± çYD!¬úã¹×%KºQ‰­%‰>óPrc)Yq^~Wƺס<‹³2*ìNÇÇkó8©$'O#Kuäöá3ýVÖ¦„ƒ®b¸Áâå¡ÓªŠrÉg%‘e÷9«ÑmªBZÑèÚPê4†ÓM*JúVEc.`Z€\Àø¹úÀÝæª»—냵¥(æ`yŒTŸÊ–qg}'Õ~`o.`aBç20ÃA÷£iüçdÏâçMã,7Ë~qÔ!%j’…>Ñ—..N0Ùó9[´³£ïÊ;QԹ͋°M¥Á·Î Oy^iŽ·s/®Î³ˆ/ÙÞ3¨»¹·H±¼ÕœLu6IrˆAW±ýš˜±ý’¼|'l¿Mžþßmrß…è~™¢ûe>ºŸ”5gúÄßäO¼ï'Ù}:AXwßwëI1¿þ÷u»Ÿ$dbý¤¨?‰ab8ÿ{ØïÖïý×PtHýó×írÛ/DëúÉ$AûP&B€¿F@ß PPñåN|¸8ÂÈC¤ÿïÃ~ùp(Ï+‘Œ•Kµ\r½½,,7Úáæ½¤EXn´½RË=Ó¿*,7Ú^=œ¿¢¼X®–+›Ëó|¶ uz¹ V¤ÈP$¹ÒÃ$u-RçÆ—8s©wãsWz7^°~zdv’røé±é©†Ÿ›,Œïx±2n¼£S¬ŒïxÁdøé‘Q§éðÓ#£N³á§GFbe I®-aŠ•)±{ÈP9^+S¡HV_+X¹XØ_*X»‚Üú÷¥‚+È _¢%±+X×úïK¯`>28.šâc@¦Ýbò÷n·0ŒÖKQ/¢§ÚÉ߇¿íMÁ õ_éº7¿îϾ êzÿõ°2¿ö,øm=3?Z€”ðÕ+ûŠ(Ãwoì; þ/Í„ãí%ÓýîhƱ#TÌ uƒxËàÇ9š!ÿç…Y!åIƒâ ?ûy¶¶ÏÞ¼Á4™Ûül G³Þd3xaXÞ1ŒÛhâáÚÒ{K%œÒŒ0¤,Äm;Ÿ¸Â¼ãMéç? ™w2x;8L 7ûÅÚˆ ‡@³ætµÛåºób”pöëÓ¾p²ƒ¿Ÿ‚—A{æl ~H$?1¬á\Í¢M|Èl0Aö:£}5¬sôO–Dÿä}Àl(~²X±?%LlôK’N8gŽ™^j*r‚qÝL06&$`Hƒ?¨˜üJx*FwI\Ýgä†t_9lÙÈážùµ xÍ3öëÞü‡0k © Ï"¢¹¥\ŸøïaùLJ†³ØíŽŽá–qû%}€\7Ñ?Gÿ<ù²_Nv¯Œ”s˜Àqî ~6ÿÈÌ |˜°`B*Óà£ùwa¸ñ‰ìÕ¨âûký†prb‰¯ ú‡‚þ8]w¶!óñ}l™ì‰¹$ÌF¤{o©»Iôÿúq{ùã6™×¦Éw.±5?@“?ÆÀ-ÖÎUÄçÊßQ›È[8?‹Qb¥¹™3uÜÊ\­ãÃÆ›¦µ7¾µ·Í a8©+Í%ôÕ’[+åqÍðEZs ~ö«¤±¶q1IËò¾4/Í¥~XDif8Ý$.h€¨q2e„MÓ¡Õ9ôã°¬¸ÜFúm ie–=l#y×~\h#{‡6ŠæryІJÊ2ù«ÈæˆxDú“T0û¶_Ùýâ÷_>´Ñd)mÀ¸ NVpz¢X¼ ‚ܰª›HJ‘—ŒuŸ2eÈ%’ljI™„ȸÕ|rSå”°<…ˆ0ï¹rë=^Ö>_ôÏÇñ¨ÛK¨ ¿¹b £Q¿MÉÐîÜÈÈ"fþÛO—ûþB\éýMme…Ëi’TIuȯŽXl‘9ˆOj`v9ÏzØQ2<€,ਊ˜Î<€$ ×ǽ¤¶ƒ{¼küj„e¬SNuÇal1<ýnÙ/o‰~8<ÏÅÞY¢st€¥—Ç÷,…^䞔󚰮úˆŒ„ÜÑ:%ß)ë,R751 º12fP.oʉ–cƒl4ŒV±©«ÒVöân|÷Ӥ©'ç_Oó<¾ÐÀ"ºçbš¨†¦Z˜=i«­ún¯:#òkñÄ=¬ÚG1žÇÜ"™Ç-ûYf2a½¯¸ F¤ä~æy¤iÑ<x„‚Y*Æý^< â›&˵F ø^ÀTaHp’iq2ŒÚrÔ3³þð #r«HS¦Ág܆ÄÉ•”¥i.µ^âR¥b9Jb¢Oä_ކ¿¸ˆÈ¬¸ýj,MâkÖRî».¤uªa+È6âoCUÂä†.OäÒùæ/8‹;Û©, N×¶ê—+†<¡í8À9mì1F޼ymig©ÊÊò9KVn®¶d%5[²Ò$Í^˜¥Ê¹¡)k$Q•~G[V{fËúrßOþ¯Ó–’t%õ'qö ]K1P½-‹f¼¢?Ú²>Ú²>Ú²>Ú²>Ú²>Ú²>Ú²>Ú²>Ú²>Ú²>´-ËÜ‚ç¶,bHƒ?¨Ø3¶¬<¿Ï¥ÿÿ¹)뢡ÀÙµ&.)öyB©icü»B^”y´Ðí”Vl¨Jýc`˜üYÊ{Ÿz®Q#'ºFñÇÐhšø=M®4z];^U—µãÕ;hØÑF–µ‘¾kirÞFü¬šþ{#IžßÛ ¥ …ÉÌ+,½rµ©©æ}z•^¯òú}zåj›¦Šä½æÊ`žÇwí•­ýÞ,*o®Êø}šrµ©©ì}æªôÏ`õ^g°òÏ`õ^g0`ù>+èj¿÷C"S¿O¯\í÷&2ASدøåïvÔþqŽ6õVÐù4Ø ú£yI¸ûáÇkÒn«Mš7/wµI~ô^º+èÇuúqÏÇèÇßDî’ùÑžÿøû²øñ7‘»¼ƒÔduñã5Yüø[½üñ÷¥»ç~´—?þV¯~ü}Yýøô’/™uñÕú£6éîÅ÷lòÃxOeY³û”8¬àÇ\åà@E@hFHä¤:ÙCSë*•Ò܉#G„$þ䦲oG|¥ä}ÔÚÇQ_)û~¬è3¾RÉxœ¥×6Aî#‡#t´_0ð]ˆç==®öÀ@õгþγÌpæ8'óÜOÖpËxM.V[A¼:ܼæ‚Ë}÷t©Q ¤p†*f J—äáÔ aÊc$¨>òÛl5£DÇAÞÓ/X³?oò>.=(7(óqù éÕ/D?QÝZ—,vû8®úýÅÖÛõaG°h¼ó)dð9MdО'²¾f6³¤ŸÈßýíô¸ÛŸéç T`ƒr¾"¤)rââä*.k¯È ôM} g9R‹<$µEs•ÆØ0ÈÔ³7¸éK0W+§jr¯â›BX#¦bsu{SVêWÅh,9Íá³ÉÛ=èorz#„r“D@ƪÕjn³‚Û¤ešGyYT2ª$H(|õ"¸MZœ…ÑŸjÜ&©š¼9‡©ÂXÌõaDUŒæDß®²…FךŒpb´øÓèK[~¸†´\:b´®´©½Ö¥%M¼]Fˆk¥C,2€P²`£I £Ù"„PE¸3¦LäÁJÑŒÚ2ÿ#Ø)énúüâZ´¼Š¸VÄŒÞc׸áç×\EA\£Š/A\sqÍUô¨ã²d±âþ[ÃÛÅná}ãùÜïà2ŽŠ$O虹ëøÛ#;˜À*L·ƒMe¿‚Ç”ÅM6qÍÓ˜ó:ÒÒØïè9íwpÉÈ Ênü¹×V]¤”Ý¢´ˆgY!å/îw3¹ý’—þ¬©mÙ1ë·™–,•Qt¶ee•ø¥ÿÇüPžµXÇYÐKÞgAÃ:¥^;„lW6‘ŠdÉãÂ;\ÿå#Iõr„ê"*PÙ:Ûš[_ëÚ#deË2M¥”Gf£é’ZcˆlÓ’ÄñØrÁcÖ(¼Ž¾Ô+Ž|Œ!²Å!"[áÙ øK¾‘ ŸPˆ‹plIÓ˜æÒÊÁ±eU¤íŽ­àØb¯4àØ*éÍU8¶ÌֺǖN܇iü©8§û)Y|!{H–˜†) ¡¤|„Hù9A¤$?"¥LFÁ÷ºsð½ŠÐ'S…¬K*‚imâQè½²qÅ yÏPC^¼—×ÒÇq¼‚¿÷ ¥ṉ1DBz„ë Ìž…á+ý!…Ï6  |‰ç%åuú,_¡Ün€ÀQˆBÀW¤ùþžYªÒ‡ß‹l}O{0?ÿ: ˜ÏG>öž`1Zè=éžEÞsÝPà½ÈïáîIãÃîMü¡øi$ònœ’€ŠÇSÖÑëÖ=½ a]P#ú¡éê²kéêäeé²Õeœ­îO7wõ†Y–\ÈT×™êx“ò'ÍB4Ÿg×T³@¥gëöpЄ˜£™íæÑy+½$Ƥ ®”Rþÿ_ÄÈ‹iK#? èLñÇ}o¾ÉYMîoJš„Ïwû!8ÛdgÝ´w'IµFBYâjœóO“&x)m¯]šï‰ÀýõÝôÄ0ók‰;ˆ$Ý–™-+Óšñœ¾ƒ~ÝO)÷⡞VÓ9‘YHЦp”F£§+òÐ!ûץḚQ3FÔå6›­O‡#ЛHာ0Ë©äÐ&T4òñ‘³B …(Ê]™-Yšc)éèX”‚hñÌŸø0Q áã^W ®ñ€ðHÉãZeàrÃ6á—‘éÐ÷’®ä¾¾7·¢)ÙçH}ßò#>øL÷îÊThox0Ԃз“dìt§Ÿº‘=I¥mo: h2Ùd‘ RZQs}#RŠw[L<„¢(©d1빑§ŸtšK+ÁO£é*ô½L{RÞ§7µw’ìBŽ ž÷Ⱦo'xDýŸdÞѽ+ïºÃÏ™±“úO '¹¦ÌÄ¿íæ Øtê_ž\ô–Rw)ÿçêBòÏ…&ÿ¼“pZR†LYÒyÍ™@Y¼ˆ.§aº’ tå'í¦šÉVÒö.$my¸Š¾THÇÍèìš4r@´åe½ŒïY^H¶µ²WLÏäoùl>PʈÆÁ¢ß›Ö”3Ðdg Ä×P ^ì î›x²·ùÐƒë ±‘@’ôRiõ.IF¤Y2lœ„ðÉ­*p¹SV|¯9¹’[$†îU‚ðl U‡Èì½T·¢%òOÓQÖf‰uîU²í<¶¶Ó˜NÒ~jêúž8c*§ß¸v"P²ÿËË$bÚÛ„Ó‹K‰©¤?Ñ"ˆ »¾ä/¯<ôãôÕÍ눓wÍlÞCyFåRIÉú/Tƒ bY.ê já5âÒIðºç¨å´HD›a6R!¢R™ží‰,“ä°º‡ ‰Ò"×nŒ,º¾1ü}±´ÛA"I%«7;Û’މóª ÷Ä‚'6r3lŠ¥6+~ySônÝ%0°q;w%©ÂMQÙMy›bu¾)®?þžp}îJÄVÓß´›@åj“&EÝYÛÑa®)A…”òþxÐÌZç§H>Kᡆñ‚5d½ sçáu¶‡Ýú„ ´ó~ÁÀ¼YL ÛÓE·§|ðffÎã"u.œzá·ê/œí†$r§„¯ì%ÿã[[IJ–Ž÷ÔeŒ|Ïב°×SÄož¶¯·;µ–Ѥhæ7 <œÒ†×[ß½¼”òSÏ2g)༙M&=Yc6ñ¿Ð‰c#öÅF˜Ì$jü0ý5iI“ Õ‰DÉõš×É3Ne!6:Ð#îº[‘Æ›(:Èë+Á9@<êaÕ/øz ’ÈÞ°éÄ0aÎ2²ä`C§·`É]9E†N›³–Ä u»(3SI“•üšT±•´ÂÝÆ¦7=’³Ì¿÷L{$b²='-ÄB -˜ÕŸÖž£›9’ž`,$jfù#¹$ÓhDëþz,¢ÛÓO Í£{ª?2PD/i“‚Ðñþ`éÏ0!áR؈žlOô›K™"œÛèrëÓFZÃ&ÊŠ*skmh0WâÜœ‚ÅÜ#JÛÌù<˜óº©Ãê ’iu¨×Ó½¤I–.´û9Ýøk~óJïPìÁŒ@Öý†í–-R–†‹`’0“x&”éDøÒ’‰ÈNU7rp\ö*³Å%PEùˆÆ5 ô^Óúâñ:ëu®iA¬ ¤¸ +Œ‚q$‰¡ù~JåÊT3ýZ$ Éû*Ž<.%kˆ-»"·>t{gd›“H1ÝÖ†ëS>WRçß)†5 ¿¸E¹&°´Ë°Õ'J ï/“Ãg DÆbì®`ìh8àÁð`£MÂA±WÏMÐË|K¬;xºöp€î oqg´}+UÚTÁŒ{“R^[/å“$6vͬüf,ܹð©‰'yV‘çƒN²Ó3É¥¼ì5£œ½‡¤ ’ K§Œïm7  Y–Þì]2¢Æø ë¬/wÀåAyç›/(çê$Óµ kÃÈŒ·Áó»±C¢"tgïÖóƒÌ´«ÿØöû[´8ï¸/EMü·g„õ.à ûúYŽïô#‹VggÌi‰…×r«áT:þâC'¥2š­u§8ܧ+»c°‹XƒµócED_.šÀܳÛ;lf:ij¨Ÿ“úBM€ÎT@%5𬕗_áU$ȼ©~EÑ.1wóÖã­€2œ›hÜeœÐN™ãï]=²©jd glá¾½ t€%3‘Í„6…ÔÉ„` LP€Ñ=Vvçõ•ä¶¶@;áœ4¨þAÑ=®ªˆ¤Cƒ‘eÞð]iªhôÎ+4CoV̸£Ø„cä¶å•KKͽ.ÓÛ$MÄ%.Ï.™ ñ“›ß4e"9m.O­}ß⑪Ftbókóª] ”%O«Þ –Ÿ×Ó:Ôb(CeS¾RV˜+3å ° ×Ì$¿:WT ’ÉBa®ý!g«ºš‘ÃõA <¬3è%½ònÛÝwwæ?äL”–²ŒÎY¹U$1ÉVs¦ñØd¿ùnš^N³¤Ò¬ÿǯ¿SYUm‰_¢¶&³Öó~­©SPÖ½uGÜO{\î´p+"¤¡DO@Aóe~4‰î¥„OåÚgnܨÈ[ø"ç³’knvÖÉÌ&†ÙAðäs÷À™Lá͸`ÊKâ ç~€Ÿj¸‰Š†›v­YP™”û@NNÜF[$|Û)ô5»$…=Ãë1;Ý ½)`·¡Úð¬Ä”rçW[þòîRyT@gŸQûÈyØ>8×rŒø&ÂY»¬ñ‚Úß¿v¡%[„Žæ~^~j™»E3¼ÓUÞ‰ãÅJԔ掞wµ Yéôª&_( -örŸÂEM¤É%%¿ÅañTdªA´ºÞ¡©z9æýÆ–l”á×E|͵ïÛÈ{|^±Ä'#u^¤X*¯*–äžb©$Å’‘]/|Çmøš¥4IÄ äÊ\T-E` T·ÔA·Ô;ÝŠîÍŽ¼¬[b~«.(—–Éá_Ñ©lG(øÂ6³‡!¾;¬ÀŠMhÀÚÛ=².î`§¹U6ap”MÃýnd)Q÷¼«J‰»»BoE½”"²K,y8îObµåãd§¢³‹ÔãD‘>¶]ï–»ÓAZá@·FÙ‰¡R÷W7¯YÓD§'-2æÀE£#@«N±Ô¡ÃíÖ.ÆÖïmâEçþý¥Þ¾DOFW˜ÒYoȬ({å«/*ʰìS•ãè`—`„Lù <ëbxïECåʂ׌oÜacB©,\'gŒÎ¥þê¬<Ùg>6Î@÷/yÇÞèl,U•E”ªò\ÊN^ èòzÑåÁjiºcߣ+ …¾‰^oÅz½¥Xö´8þjŽ^ŸTšröLîz“ ÌtÑæ$_XÒ•S;„°ü(ž®Kß­YZWúŒØb½¬^œoGr!"XcRə꺹à©DÝKT¶Á¢C¡g—]×ÍD ¨ÿ»è¹éHÓK ŠÙz°„ù¥Vw[FAk“ µín¸mÛÚJZ+ŽÍ(S´høüšÑÒ ¾®¡G]AºtélE‘º UUÛ¬?]øwö5õi4· f{½M²¼ÊÝm2 f5¢=ž9Š5¦Dø²Ò§7Í|½éÊéMÍ^àÂczÓ,ãÖXoj„§Œ\· D3èMµ@‹gnÿÃêMÓëzStcÈò‹zÓþªÞtßYR5GñW>ÍJr7¨N­fºIÓˆKŒ¨Nl‹÷Vuš›¿³+ªSyßÊcýCU§¹×û{–гš:UBŸd å(eÝÂ’Ícòé÷eô<®ë@HŸä†—)½iŸœØYLQ?ÏpÉN’Ïs`Œ;AÝ0ä×A=HV„qØt@’Ôêi#o/.XdßéÛ>ŽêÏ}NP׉hƒì/ú{wÕŠ¤ÞŸoäKûø²°nùÂ… nü•‰™Ø‘leXßó²N¯â§£@+Ï—fè§ÛͶ‘lg˜ZÊŒÀ¼0¹ˆµs½J™Õ[j‚òf þq‡hžOuZÇííJºZÕ'”ÙÿzcãŒzÀ}Çž-d#7ý…Þx¤8»¼Þé3æ.ØÈ+ʽb™ÅÍæöDä2¼bõµp¸ëµ3IÞXr'œæa·¶$’  y'ïÕ¥'AV™YÀ•ÏSÛ/k&“H™ÛV‡ˆ~¾Èäâ&*¬­ÂqN˜Wn»N ×ì§u»ï¸³!€(öoÎ.è4$û¦ÛìöR\²´³=7ò‘erô-+H?¨÷ú+1Dˆ¨î­V ÊnŒ\]LZmââüöüòV' Yû0˜/½¤'§§¡N<#µøGøÏI'ž=¯gI¥í$¿ŽÆ ŽøQ¹‘/RU×=‹bPõO%êŸ?ÝÜ‘üÃÒ,Iä î¾ì…QEZ:ÕÒÎ;ÜÒ* ̆5DkcÉ_?=tkÊÐBXä;*ðq¡ƒodG·¼Œòþ»©„$úݨ Ð=n¶™èµŽ$¨×ËlPòUEíyÁ„ò›M¸c_csSŒ¼ï¹ð³Ð¥å¤ûi£!X%’І:Tê²d·gOl«žøyÞª¥/­X„Bà¹ÁaEÞóõ®²®ËI7£¢Š¾oå±L?° ’]Tl&i…rÊBñýˆ$ýbpP^'½Sß7ˆ#níÓ”æ4/¬8=­„s7§è kâÈì–¢$’~åÙ^šÐ¾…c—dŸÜÔUñÛËkcÞsíÖ{¼¼*Ï}Žm'›¶›Ø"_ð,™åBæYÀ..MpÔ]œÙf¶ŸJ­W¢úÈdPº¸ò,:oDMµÎ(•ÖØ¼ñ›ÅµäIdHôßHøR´&¦¡ŽSJŒ¨–˜8øýœæF•—_¾™~3Û™£Á ÙA¨1Ôæ $‘>ìš´zÏLû¨÷[S4Zrl'49Mîàõô»4‰%‘Û—Óc•YG‘í\œêµg·ê¡·@`•%ež/ˆ§†I@ÍKÒ¶ÁfÐó Ò™ÙÜs7¡ë–DjDð($jÎs"D¶Å½ºaèH$ì|0’¯‰Ë³o²ôb5ºÞ@h8gÿØØXIÀ¤c¥=÷*4coÂQtjâQ”Uyaßj´3yPe"hgëÂJõÁB- 幺²2.²l­u#¨j†à"màŒº¹ÏÙÉžOHŒv¾¬¿gϦ4;gs·T¯"axº—6 R%-qfd=zú;úHŒák`©E;3Œ¼‚ÁØÞºU[ÙȾ[lS$TpáUn2¾ïÉRhš’ÐFòC»sm—‘Ï2BcÒPÈ%ãÑœ‡zò1ðÄQ¾Et‘òõìÉvx\3””oâÌêÛÄ©||IJo LP€ùžÜT©IœW£¦}[ Å3·ÿaYŸ«ªîƒFMdÙäjÔD–Ùˆl¨‹šê¼»lSÝ'ÏDMàI\°tCå9jâ«íÍÆp›éîæ© ãjP çIIëw{ïB]œ]¨ˆc]YG%“žšw‡~)4kÍöIˆ'‡J`ƒSt9%w°Ù1é`±FØ¡Ýéèsð¦r„TŽ­fxåKjóhní%övAX䓨TÖAáÓ¦S!ë¦k½¡“ÀÓ› (µRû$Y‚6FZoÃÓáØm.é;²‹mp)€‚qÒOS’f› ?îÍ!/,Êî¤,u@B÷2x|Q ‰›Q3s VñسW>næ!Ñ+6Æn%w0­!œ¨Ì¹^K #$šìû›‚äY³MÀ¼¨G>ü4 Åë×=¥lánäHæIþ•·ÛG*^Q^)\Àqßµa4,¬=¼Vã.i§z3Ø®G?É|É›AVÑuyN±)©EùªÜ0¹âÈ hÛ©V– l£ŒÔñNwr#+ƒ%53í~n?.)YùãfVHüz·ï”Ç­Ø0u+tS3V‰n(fËÞKÛ¢UŒ.T%)»ˆõ‘2[+Ël°àkW±÷¹TÝ€öÕQ, œæRx Â4e×® ‡Û/¸«ü ý$¯ZÑ=„ÛEWò;/fJdo»ŽG*æØ(¯EûÌÀï{ÒIˆ‹™ÃxkúªZÊÙyÎGLl.[³èÂé&þT¸ö}ß!LnË´b55Ûú‘• þt$ß¶‚”´ÇÉÞó¾>qÇ–ZbpVê@LíÞòæ“Ú¢§»Ún±•°µ´A\ûi»8²k5fK¾h&‹VY¬¾àÂ`K9¸hi€ÂUGö,À¨HënfÝPQácÆs^$?tœa^X¢ØWväÎËbo#mÎÞˆU÷—u\{a "r„–_çs`†¥H ûŸÔlÂÇö p"(„ç¥ãsoûܬ4ÐY©ºd½AUòÀ* gåWÜ‹ ¡®<¡vpLêÓGïB~ùfxU„§í–½¹g:¤œîX‘è¼¢hÓ°ÞA­Ö¹b9œ¿àjq鑯޶i%@Ëଉ²í ©›’°Ë+,\Ypmòá8'ð®xÖÇhñÌí Lá}žÉ>Ì=*-G$£((òô‹ý^kí^-K~JÁ„¸…‡Ç ÊâòÓ­²8­áÖ½5 ó–òò>±øžÙ¦s;VžÀuž¦Ά¼â)/;êé+žˆZíNOħƒ¸£••r0¼ÏzîíÜ}·nYñiµk  gæ–+QÊÝšìÜbnþZhr2Ò|´Ðüœ,4ù󚻚nΚŽEÜ: “[“×’[7)ž +a¤——%·>¬ß'ët{ù´’‚)8² #§ $(XB7Æ¥äZWS’•É­ž$Õ{}žëÿðï§ï÷ùôý¾ŽšwIöžõhõ¬z¿ÏKýZÓž½_õüw>/ªbRcý~põ¦ù¡Õ“øý>Ïõø÷kÊp™ ­È{ÔÏÊ\ß°ÒIZš1¤éxF¿ëµ³äåµÏ²ºçœy‘³º'©i#É’t˜Ö]\›n´-IîþLŠvÓøW\>už›¶ã&¯&› ÿdÄõ¤.âá(6ü#§Î%qÉäîÍì1êvô!l: fUÌ¿7ö/—¶SêzÃH{‰æö2ó<·ûýîͪkç4Óaïýžø}ÔF‚¹ñ/™Zé䆟 Šö^söIÿeL' ;Oëpžs˜[:s óÒ0øãÛμ¦3¯å4<¿c»¥¥šyÎÑVQ Ÿß­]Bi—Ÿ¹-PØàùÝÚE_ÐàFžc´…Ÿ‚çìÝÚM”‚mä™óžgÍð™Ê¼ÃžH¼†ån­i†ÏïÖ2È5½þ1s®×Áå»ídšHC€ˆé%N/èkð\ðA~QË#T©ª(µ€œkþCQUgÃ?äþ ®-ðZ ©ßÑ–‚ŸA„øÈ`Ñå¹Ì…˜ŸÊšË” Z²©ø{JÃäë/£aáXƒ~û#ºDÃBN¹V^qym}5£;¨šVòHÜõäô™Öò©×õj €¶š£×«e~­ì…•R¿‡é ;X:†“fÃÂ뵄J-4^­%äPj9âøÌ\$~-\>ßCÖ2-|¾ƒZÉ# ×¿”(ÛH_²„î™A5^%¤^­Ôø•šVbr«µÙ½¾ Q+ã>úÔõêȘ$K­€@ª½„ÕLK´ã³š_öën”ÏÌ}:„ŒêEnûsÚvíH%WÂj$Á®F©SYzM•þ˜Þ¥)Ü«Ìq҆ῊØ®Û.lÁ¶u} Êš\ò³ø†]­ƒ5x¦% M.ª³–àcÓ3ž'Þax@>þà8¢ó¶9Ûa£D0§óœ§çDðíÓßÞegåyŠ@—aWþ­ÛmºãþéÚ" •ë¹ãœ;ö¡ôy†føüC) 6Ñ¥;ñŒ†O—æXž3¨@¦ƒg*óC:†Ù/Ê3å/íÏw¼ÍÐT“ÏOþ•MEû©©ÏºsÿŽ7Ež$”^ö¬/è]®øå{¦!R²_è•¢ ¿”•ŒÇf‰RÄ\á°bùßûë‘Xy>ü«øÔETðÉ9k³¼À3_´ŠÎ]’¥ñûÎ>N_’ž„G÷³Ã•™«koâäž©*;ÿã‡ÎZE ¾‹“FfWÖ5N™?˜6ÔÕðù‡Ò‰º¹L'ZC'®‰i[®¤s'ðtåÉù?tî@|.ÏÝ3bGž{“Çð„ñ^ ÿø¡ÓÇêñKó7{\_ëk5cÏÆ“•rDëáùeX¤¼po¶Ïp)IB³£2ÿÁ×%¨Sðüƒ%6P»Kwç5jçTÿ[ÓÔNlâ?²:V¥@ðœ&cSèµÌÜyVBùK,‰VÏþûð¯Ä3/úm,8 P‚Y qìšP+¶ø23ÁÙ(‚Þ¤ÏX;ƒ )MñIŽvðX&l訃Ç8 ü˜ê¯þØK6´“NLý&žXÐï ö»Ïާnq¥Œ™¸–…ü±Ö?(/²¡®(uþlîüJ´ú‚k#ƒò¶`…«W³â‚zõ‚‰:èÜÙ§¸Ïw䓉ok<››÷ŒB—ñK¼ ÎOñçí±,Ö»7/8ʃƒGa¶yÕðŽÅ4F¶¨‡P±ó?H‚iù#µoÎOSàÈÖ)^v¨Â_sýxvš¹k L¸þ#ãÁ¥¤Î ÿHxpƒ?@ùÛ®µáHkŸ¶à¹^P¿løòÓÖ^6a߃~x=|~â4wíð2ì8‹‡ȰÃ?pÈ·]ká€+S~fÛ,×¶3 m½l=÷{áõï3PûíÔþ 4ñðtðGí»ÎGv)+d äËdsP¿Ë„}÷ûѼÃÔ±gÍæ?Ô…(Ɇ¨ Qø‡g÷Zì"rrðÌòVW³¼4öBg¢ ëA7’g ñá¤î<ñ3¯{ƒgžÓðÙ?×Î`ìtèØñÌF1®+Ô¿Î^N‚ûÈÞéøÓUVÌžðU"·p<ü£`ž*ü>‡e)äöMèHæl‘ï§ø’-öÐÿš×gGš‘ŽU¦‹ŸyM3Êõ<óÔ…ÏÐW%üœÆ—Ö7mÜÞægxÔH]‘ 2O öÜÀÃûp{~}“Ê6ÂÏz§eƒg½ÑüçØ~Ôµ3uîv5?"ÖÅnÔ‰güxþn÷:ìwÀëØ³£®bÇð3ó,U\ž™SŸ;áÚð•´ªÞÆsÁö=ª›Öâ\¿œ£ ;ìwàØ™*óɼQgõàYF<{Í®ŒZ3,ÕyÚñL“†^6ê Ã~®zòç2þ Å4Ìà (è*H´‡ç,Á ‹$ ŸQføLR‚ï»v €¦L?ó nRðý- ]ž€ÉŸ¥ßáD÷;âuð&‚®mžuðt5øÏ:øà™Ìò}ÛÎ…‰ýÏϼÿQW÷¿4ônáwÜïˆ×Áw™ˆ¼r‹g|^gá³´>»…pí \c·#ø™wêꎆÞi"‚Žû©ØŽÈéÕöèYOW¨ÿ¬ƒ÷Ÿiú}ÛÎ…‰PSdìvêꎆÞm"‚Ž{ñ:ø,eLkGhø™©aZ׃g&:á³#L®pô™wdÞ}€º:zièE”1ì°ßw¸ROJN=1>õ¤øÔ“—Ãgï£Å•QËæÏ¼ûuõ>HßA®;ìwàFUV1…GÖeU<²Ž*x´J,ÛÂ`¸•ªÉðô25YÐï /W“ÁŸB"~f®­¨²Á33Gá³c \;ƒ[ÞÑ,–ò³D TWT/çà‚û¨ÞƒËËÆ2ýüÌ‚ˆa1ÏÌþ‡Ï©•\;ƒ¬r¾9üÌ[”ëf,ñ/S‚ûð:öü¨cS® ÝNCIÁÏk}NñÌeΟ“²bï5û;ê[Nž…x§úÇ FçwìüCèÀó ìÜ5R–ntòŒF¤Ìùsá>êÚ¹°¦::zÙ肎èe£Ë3odÞŽÍ‹Á³ìÒàÙÛ0Ùå›y¾ü,;6÷wlþ;Öï°ßüvlá›7 ßFSø&šÂ·t„ø‘bÌ<þ`™çO$Š£"°ÍïbštÝïÆ;ÙeÌ×= ”ü¥¦©Ø|‘¿Ô45üËS]ùm5)µ>T)ï´2ìjøÉúÔeP»¥iã4†i^:%aøGÚTç°Ÿ}â4†òÆ®(ôäP{¦/U jƒ¯ùýxþ`Þ>á?d=Áƒ†Èô…ÞÞòZpÐ(¥ë*u^¶¬ƒú_+ße'ãÐ Å"+Ï ƒRæü¹ttÓµ3PÖ®«—è cçzæiVxÕ¤úGÊÚøÆ5þI•O{­ hêR"F‹jóƒ^øÚ G𕦉¢Ikx|ãªD;Y™ÿ bç¯ZÇòGmß#M‰‚–i–CWçEÜI w.ê?n­z‘áuØ÷ ®‡/P|Ö¾°ö­˜u=üC —á¾]qDò“flÕÁ¹º ÔöȶöBhØ÷ E!àttÛ¹¢tüê%ðÙ;'1q îöÀ_öj#®að—½Ú¥ž„׿€XdÎhŠç¦’£€úÖCš{é!ìŠßÍ«“«ð,ÑþX4îá¾í×Ý>úç/~ÿeÄøŠMþ•Z``Å g·+%Õ©¢ïœz’rSe5¿Ë ©ïÛ‰{É ùlÑçÜŒ£Njƒœéß$MÁò,MÁâ…i î9eǧëµÍM¬(Æ‹®¥¦€–+@ºs®˜ùA`T=¤ê»vÍ9=änÚnׇÀŽ·6r¿nÖ'ƒrxÀÔÙuÿà#òš?÷­C‚ °UóKÙï(÷Á[µ xÕØª?'lÕâ…Ù,àü#Àùßßßÿv×ÎÆ¨¿ûÝéȹÊÍýÕ–ŒqÂܾel÷GÚ’Q‡tf¾-:»ÂújÊxÅ–\0=#\~½)ü¬g¯~^á ).JŒ¥æ×SyCØÑyžŒ'.(ò\ïƒb@—×ó®ëš_lî…¢i¿åÐ¸ŽŠ IRÙŸüd4»›WS­ŽþýZÈ$øö`N^·=1ÂsÓ(´·æ&’KÒ‡Þf*¢å©®fã" ˜l­ê…¹¸®ÕxQN‘ôjNÓhD)EJM)’JJ‘ÿž;’Íon6ÓÓúØßQ®²vŽß)\Srj‘oˆá __iކÈ>瞨jyŸÜÇœ§á–r=¡›eÏÙšó¸±0ó” a2@EçD6OÛvÓÏîoçù[:XHFl@SØÔK‚ŸmV•¾°ß­)-ƒ4†t«kyêWÒU›Ùq©ØâAÈ•MÏ'©ÅÙ×ËÝÞi\Haæ2w×,ý»°ý„EO[±ûë‰'g-—Ð-'šÒÔ“Ã[@&äø:.ÆÎÛþ‘¦©œÙ¤ ÂT甇Žïc¯çša¶ÛÒ½9G.0Ó­èìËy"é„{>'‚×KùÞKR`hZÑ.%‡ۻϿùì÷ß~ö³Eņv «–O¾Ÿ6éÍôßþæ_|ú¹¦ú0g±ã|ôQR"8R-$šðM’%ïöÁœ‡÷;’s‚šMØÕ½íf§# “3¸cžöÝúIÓ­ô´O¿3;u¶>á, ¹LR!“R_{“²¬BÀž¸ŒXÑ)”_ÙkV’‰0‰þ¾íì PzÆ•çžÔÈ3E‰:‘Qt‹©Øï¶zÊ–SM3½ï1N³¥jäy±éÝŽík›n§›uóŽSh¹,)š/H–˜u‘¬¬½Æ8—’¨#5 NçãiÏéÎ8½X”&q}–ìíÔîˆ:Ï&(ó§Á^ˆ’Ô,¹¾jÌ«ßýÇ׿þâ¼K>Á²÷”à|:Ë òðæ'(t{õš‘fûþóîp¾¢Û·ý†©EJ'rH9–)ÇjÈ K.M=bsÀ±:íÝ$ìÑ'3ÏH#¥d\ANLº¹v pÑÌyèÊ®O¤úYH¾6sÈü„Ó)9rš4‡û€Ì²É~á9Àƒ4Jú0/yšÊÞG-IL5:*ëö´•ü‡†îô”‰±¿éޏ4„bs”3"ŒdR¦ó ¥7=²ávHi7W"Aa¸XËÈŸ¢¥ŸðÞÜã‡î4ßÝíÍ¥‚½‡NèS–Ö%e‰?ðÑ‹²’Tñ]«9H÷§-Oî0§½yÕÑ7SnÐþ²‚Éš‚8!‰ÑBOQ°Z’L±IÀ‹ æz);Ò¾·ÜHí¶|ed>5²*ÓKÔ\cÞÐðå¼áÌnÇ^y9¸Ú¹¤[_éiWra—Þ*›Vn ¹…<¨¦j‰¶¡ÂæÜ‚ÐJã¦ÒŸò9_-›£sÛ+¤”ªìXTÐK’ XÉræ_ÐP*»lªYØ<‘K¦XÑn¥†ñá•Èâïâ¼P¹é‘¦|kÓÝÃ×RQ’bRÉçlg‡g J½î%ƒs»F5CÒ‰Ô[IF$6ô‘ÓšÂĉÐ@| ½쬹e`¾òíGÛpI»"6M õe×CÎ%¾bù©Ñ]¥5ƒ™_4É:úʼníÖJ‘Úµ£b+›œoTçô¸.ôštŸ‹†z0Ëš#Á\ؾ[XùȈR¬ýÍRJˆÎŒiÖ) €µ¡ÞWæ‡8Íh €Ý©¸ù«n®¦äé‚T€ÈGYÖr(–ç—ŠÙ ÑÊãh ):ÞÞT5–‹×ØH‚¥%|ÝA2 {)%ýä£^ À=¶ÊC0á¾½©i7ШâèÁf&6B±¿vNü'ŠÍ𔤥øR.ÛýMÙÀdE*¥™¡\Aª¸d*Í?CƒTI6©©Ÿ“Aª|Gƒ2Ø',H Så7f-±;”p‰Ó‘¿Þ>ýþZNÿ¿”~˜ P–Ó;üñWÓ»¯%a7¬Lw´ï©¦¡ÆÊ¿$P^lI{´…Iwýq÷H§¡Ë'{é-{ÊR9èÆH†W;Š\¦¤š·ö½5^÷:’‹‚*ÈíË@‘ã•,׳º˜zá±lµ‰¡¶~˳"Ô·ë ªO=š¿|À`9#°dÑvY§qÉgÛö`%dSQmÎá¹”^·îéRéµ/’Ió«2©i44å"’~Eé£M:o¤­âÚÈè}ÔÚÇ ŽÕ¹6º`€÷‰7Ähx±èWꂆøôÿcïß»9Ž|QôïÉOí{}œ!©z?ä=w¹ÕR{ÉÒ²d=n¯Y PŠ €ÝMûÌw?¯ÌÈB”­=§½d©ˆÊÊGdfdDdÄ/†ôAÔ”fRËlâ$Ç5ú0üþaµ¾ÛZÑÌ/q–´Š°$䚆…ô'X3÷¼öîuYSI+ÂÀõ†ÝPï­h½¹X`bj0jÛ>`‰¶Kï%÷k«*£üå`Z*¬ … V5 âª(ûjÂõýç?ƒ¨tï²'ãÀЏ¤é)űUp¯ßÁEËħ»62Ü9ßúÈV!íüx{}ÅWÙ¸#º.#3#}›Ë¥Ñ†Íĝɸר²zÍíhÀïTåNî–=J@í½ãSW.œ w”×7Άf‡›ûvAYÉð5'6†Iô[ë¥ÌÑò­ýØÊTuO.¬êÁ{¨ò_ÈrÅœ.Ó_' `bì1$=EÉW©™Ô3t r=#žëîÒpÈF¹qk„†<¬àÈß§¤‘ÁÍÒ1 ,©´eÁ]®¿Ö›Ön(+¹¼ù•åÀ Ç6ÎÁÀ4æ:ú78`r2À-”DUb)Qä‡ÄL_`„ÏÔÄO$fL¡ðL¡_म¹žGöE’ÂåJ¸ä0•”ö“º"n4¬ª, ¾çaA?HŸiï«%û8µžÝŠM} ¿âÛä,¢ó¬#ù#Ò¡µ“K8í`9ä)8pÐÅJ3F×­1sÎ5Š=hAk[èê]]Â…‰AMd²õBÑTìòì^ÏÇx¤,åÒ ;E%ID[›òye¿äÓ ®ß5û9wÀÒQ¨iVè(Á÷ùäxv…¾7¼gBméªå)Éc{,Iwãj°§›mÝ Ñ•ÙÃÉ.$UŒS¿ø„uG¶Ÿä4¶’ 4)ì°s‘wÐQ–À.†_·4É8‰®»nÊ›½.^^Üvâizº) ¢ Öˆ¶è³ÃÚ¢ìÚaK0Å~²Ãþœì°åãvX””Ä+«Ö š “¹`Á«nê×kœÙµ_i^ëÖ,_^µè²©~3æÒͽ=”&-Š1“ö]Ë~_ÀŒ¨I¤<Rs<~¬¯g@DzH Žw*–øQ):­æ bÝvBÙaK6»ÃmSj*÷¸£íŽyC…Îܯí#tûPÃf´Ú‚±à"óÜ¢¥ê<³˜u˜E]˜¯ÈJæƒC¼K õꇋ¿8ư 2¿'ÀÄid šÍ³R± ^¨­û¡®“%Þ dÖûYÈ=j« ÅU«eU%w€¸Gû¤ÑÜîÙÇTÜs6Ç<èÕþ'“=ºûïçîã†?6ø1í’$XásCTÙ1pxlz[Í’¾·ÞÙïc;LnF¾ÕÌ)æÔøžBc(, ÏÈ{ÑÁϦF¶=S9Iò4èa’”U§CpžZS126¬àyé|,»¼ )§È|<‡ ™V  Ù’É­²Ò}=Ÿ,‹L¼òû»® ·¬Ý"X‚·ìüá©G¹ºzrV˹»3ÚŒïÅóƒö!v (`ßÙ®¥rEm÷ ¸€[ âjâ‚Ý09Ö9ðû§õf+Qo#íÿΑ¼@ýÅ¢YPÛ%ºü-yK¬ànà·¼%6ˆŒÐY•UÕ©e48Á™Oa³¢éï~…êï¼§x•mv>£1]S$ÿ4«e×GèÒHö¦”¦¤ˆÉÁÕœŽØ¾N 6­2<4—V‚J2+áSÃÕX „KXÎ ‘Ak@`3Þb—¦äi þ ñ&m1(‚¼¬n×7(`Po©;q&­³\º×ö¢œ\GBWª“¹Qö<޶ º°åUÝŒ¡5°°YÛJgwA#Ë]3ÞP $u;Üú 9/*±"v Ô§øÒt‘W3˃Sþ¼®“àó4²¢Ï.0Žcdpq†‹‘Þ²P÷–žC&`PD¿pÍÊz±=Ìâ<óëÅ*üÔ^ßzÙÚ£k1q—•Èê°‡öp³BŽÝÀ[—ƒ×Ù5ˆuЭ&s ‰O‘©C·‰ŠØ@Ý#ll„ iqn)k…¹,I»G¸#|¦ú÷ÁÃÉ:EP‡d "÷YFú}xC›ilžxC^К¬,j¾ ]Òõ‹=æë‹…Õ<x¶*Sü²‚åx缕:"È1ø!©,oèÂå‰å1X™Ù¿Åz…N0Th1Ç LøÒ²†ˆßçIàÅ YrÕJÄiB¬ý_Š}EâË•—ªS`Ö«æÊßS4A¥E:¸Q'0©%z2 Ý'. dKÉôÀèàRÃõu¦êÜHü¸‹B3¤m1äcˆ)º·E9Ãâ cc)ºEø€÷-ÒÀäxÎ÷ìy~â={çšÝìß³Þàeß-„= ªî-DŸn!~N·Õ ·˜Š¯†0ˆ_c•Œ5f¢Á¯‹üÏÀ~}¿ù )W~½yß~ xüÕ/ùT"ðeŸ¶ÿ5ý¯É:¾¾Ûš_þ¯ï¾¿z1Yß4WÉu4øê»ï_Á µ»…]V×ןá!üÙhó_ËêCu½ÝŒ÷üðð×Á•ýè%¸=®7Ÿ¬^0¾º|רu4³Ë¿½|=úâw¯/È¢G÷.¤¼]M_ÚSîóÁ4“Áo×ïƒd§ŸÇùçx_ÖŒ`}¡l_¬?|Ž3 c†Ã–ÿÖþH m/×KäÖ|öbð·] x{1Àÿý÷À*ГÁ¤™šÏÆö­¥Ñfv3Æ3%|;£·vƒýo¿¶oho·lw›õÛ&x»ðo{¾]Ú·´†ûÞ®ì[Ù/{oq;™:õGw²Ç•€Qépߘí6DN†§?Ñ¿ÿnE»ÂfB )Œ2JuG9G-kÍ_w^ѯø‡{E¿ñgVè{GÿíÔIeåêê{GŸtj¥²üaZÆ}ïøÃ°V*Ëf9¤Gß{Gvj¥²üaž}ï˜6a­T–?,âªï}Ø©•ÊÊKÿ¥š}²/‰hn®tÙ}º†oé÷n½9q¤ ßÒ»5‡Ó⩾åo;5‡3ã ¾¥o»5‡“ãi¾eRujç§;ò–¾íÖ,ÓGoý·jRöɾD*¸éÓe÷‰Üy‹ŸvëíL#rç-þÞ­9œ OäÎ[ú¶Ss8AžÈ·øU·æp‚<‘;o‰TšÃ êN{‹ßvkvÓ‡oÕ·~RzȬ_ÒHüô©²=DÞÒ§Ýz;䉼¥o»5‡¤ˆ¼åo;5‡¤ˆ¼¥ÿvk'H9xˤêÔNPw ä-}Û­Y¦ÞúoÕ¤ì“9xI½qÓ§Ëî9|KŸvëíL#rø–¾íÖN'rø–¿íÔN'rø–~ïÖN'rø–IÕ©9œ î¸c¿êÖ,ÓGoÕ©é'eŸÌÁKªÑË)ªì>‘÷ôi·ÞÎy±"xKßvk'HIÁ[þ¶Ss8AJ¸Þҷݚà RòEð–IÕ©9œ îÈ[úo·f™>úÝ«&eŸÌÁKúÆMŸ.»Oäð-}Ú­·3AŽÈá[ú¶[s8AžÈá[þ¶Ss8AžÈá[ú¶[s8AžÈá[&U§æp‚ºS oé÷nÍ2}ô_ÿ­š”}2ë¿÷ ©ÿÞ'•þ{Ÿúïýáê¿÷¤ÿî(¶TŽÿ´’cÿ• ³)¼è+äd죥œ(w¼”H GK¹ƒéh)ÇÿŽ–rÛìh)7Õ‡J)EãÑRLë{ŒdZ+x|MËú{”lJÀ´Ô£dÓrûãÅ#›–ÆÁcdÓ2ö£Å'›¬-õ8Ù”¼üx±Gɦ¤àÇGð(Ù”lûh±GɦÚGK=J6-§>^ì1²ié;xt^²;VLIÇŠ©cLŠáEq?ßTÐûn‰ru‹ôj¯È£ì_IyG¦ºG‹=J&-Ä “ªãÀµPv´ÈQ2ië™´4ud`Zpz´Ø£dÒÂÒ2©—¨Å¦£EŽ’I PG‹ÝõüïzŽßç1çõálÀªî.‘9\\…5bòùàBX0·\¥ãÆœea6´ñWdR2Ç"s{²FöÑ“(;Š-ŽïGêñ°Åãßœ¶˜[4ÜJ•z°Åô¢F£º[Lâ¤öPJ† ” ô*±<º›bà:(}ûÑ#1Üâ`wG5}Ï 7v±BÜ! 0æUf'ÔÁÚõ#–yê ïa"ÖU¼ 0; ˆ8Ú‚ Ç÷ò’аþº€Ý’*¶[ÊíaR!„Š]ƒ+É™ÂqšS‡\äð¦¬l€Tez (`ŠàÓ°\3ŠvK£²`pß·,Åû†(q ½e>×Aж,0 ²tá ׈Qo1¬Å1'œÕ*Æt>%#¾J–8Îm߱؈l[€êQÙ1 §qR ~ôFøLMü,°¡¹k2 ‘ç”ñ0%¤€ƒÈŽ‹<;NW`$Ï?2HwìhìŠxÏù‡ Ør½¡¯"ͱ¾þ<•¬¢.X1 Ëbëñ!Á#À;Æí˜wÀÔyâ \¾dºµûjÑÙW Šl,9· oŽA¡aÐ8Å#‡ñÖ’cB|‚ \šdÜ3aÁ}Û|€œ±-$‚rÌ …Øñ×;ú¤eP—M3%ªê0dI‹à™Ì»‚Ýu$G‘RN߉CÏW™€]sëãžç­`¼tuÓÎfˆ1°/ý–Âo×;—Ñó²pbCÁ(1pGf½i¯0WàbÙSJ·Q·_¶?{‘ô4btþæŠ ºÛvùòb ‰UÑOÖ§¿]ǃÄçÉ.УU?®7S2½xbNz`!°Ôw×6°lÙñW ?¨±ZPuùv!Nw káú ¹ABkíÆÆÄ™cÙb44‚cè%Š!ÕÏ‚1橤o‰Q€âûJ>vë[õ2œIÖyļçn„xxrÕ!®N;²8¡­W3NX35ìDí( X–A3¾°"òn1Ñ+Á6º ƒƒ&@<ìdãsF lê!lÆŽ­ !0¿SL€µ°b©‘ö7œÔåê˜yÐsèýíºõ #ܹ‘=Íyþ]Îöžm…´Ë À&øaNøùĭȇCbµ9S¬OÜv¿m¦÷ ‚SüK;` –éì|!™yÐXׄږ奕­†ϰeØ”oW„}¿CtÍ©pÀyxO )…jc¡#H—Hˆ ¶ƒ· ÉÁhPÉ”*ÊÚ£=Þv»¾Ù^:þ«•‘8„`ê ä¼í£ùä\ŸsŸéšx’Ï…8»b‚ & Â?^ád»Ux)  e‰©ŠaóØ’ÑtaH1ý£ÅÄ]º%އ;›(^U•al£õʇ@é/ˆÉB’(doÕ2Vü¬+Ü6”Gœ°B4 ‰GgÑp.ÜiÚïçëï^@üxð«c¢¦ó3~@ãQ-íÉf¦t´Íqå.iÑ ×/˜`[”¥»@å9Â\º½S<ï›á†g±7w`3ëeZÏÎàØÈ“HŽ äK° ™(£˜áaçf\øÑÄ'8–µ¼%H?A‚Ï ³ë._žFÀ1G÷»5Q„¼,PÚ˜ó¹™6˜j¢}¼¶ó*(ÌIò,ËXÊ8îÕ Ã\ܱžO§ÇÖ±qçeK«ƒ­ÑB–/;#3æ:ÊÂ*”EêåY­‘6÷“ÿ8ƒÒ”vU&0´P=»¦|Î@¬ÂÒ†œlŸVrÜ Ç6Cܶ„š§x.fUÛl%ÿ8ƒüóÕÍ›áìÿž¿¹˜~øgJÁ‚›%†ƒšÁ3có6„Í®ú+4¹ XQfÅ'ÀŠŸ`EýDØl®!9Ho‰®’í†+^.ÂAá_RÚa^Ÿà§#{vSîMZtÂÌ=ï2Î"üðÒ‰Cˆ› y7í9…8hˆˆš=¦Ú\½Â£)Ì=Š…¨åÎXšÞ¯Ø2;åû—ßþðò7€¥“•”OQD°Æ¾v 8WfÉ•Ž÷Á¹¤÷HÆ*§ ®YKàjà=åo¥oÿÚru×–}oÈfàAÄAg¦Ôœ•aÊœêLKeQíC,Õ)g/±<3VØuv:+×.†v5QeŒ$ûû-g+:ÎÂÌ\ñ°Á~¥ø žä›ìåÁC“Øõ F…‡œ‘ AëfD¯½TÌÓéÑ›9™-KW{àNÜß–Ô“-‚Å *:ÞVp+JÏÌgwË3LoxÄ`“%T­¿ëô:½@Èä8®Ûl\?c —U˜ŠÁù€ÍÆvG ÓuZ!¤x‹òê(9|²äÕ€a›c´€B zþÙÐBuG!f§Uq&jYœ'’VjÚÖ+¸â€·:ÇÍ;’•Ü"àu˜/÷P!XÅ_¯G2ðz9{Fb6d‹3AØóK¸†Ï¹Vio`'%Á7¦'_¦JÄð’‰ËÚb%P؃lDv8«Ñaì®DœÃ¾—fK4-$ ¨YtªRÊŸB¶¡qðÜTEq,_—9G¬7]—‰ëº<šÃµÆìOÉázô›Óo²£7HÜŠNוù¤]tO”eû÷D×Ñé°¤ ä÷äpÅ’´lM7‡+C‰Çs¸Ì᪠c¦dHß iªø÷ø„ô­IEnƒÊ*H—äp^ l˜Áµ/u!äþ[[ÉöX„;f.BI®9ñ¹=§­°=†ºÜ}T˜£¦ëôh†KI)mÈ~ã±iš½´º4Zo– ãŽKØn³îgD$$ør†¼N¦3,µ‚=GzØ¿¶ˆ¶[°(]ö"‹]ïÍ…XL®ø®ˆ”äÀºG<ãnÔZUÞð(øœå/){0$Ó̪Cçqã4/³§'ù{|Så•ÑÑ{g|?Rs sü›Ó¹F~<ɵb·‰ã¹ã³ñ;˜“ÖyÒs¹œÅÎû ö_#›²ªCAMß"ÇyN:·È¦?9\&…Ù°å+*kê’ +êMÚ–$qéZÅPË9ÛïL’—‘{½Ï‚zn¤³4ªûS¶eY]x„»=àA@;„ o=jÇ27c³™ôÆ|¶¬(… ¾Øä§äˆ!ùÞGîæšpX£˜Ô=JZ‰¯ Éë,YOƒnhÃáè@”Óqû´À‚ÅN$¦­F¥ |¥}×:dI…œÚCuëà²Ì"@{Ð|KͳEÖÚL…˜¥pKà[Íß"oiG¬:7ë%[r+LK‰Sí좚/m€ð /†KsIKµr) ÚÅuf’pxn@”yZLÂV9qHâ£ñ¸¹ÛñL ã)Wuëfî~n‹pmxßþÍh·i?ؾ±øá»§’Ø~ý§‹ü1¨ÊC‰™¥Iíö ðÆªŠCJ´ñ /3<×ñA5ÚJ7çíc{æ]߬ïÖ›¦.ŽgdvÁí(×Íð7£ ž7‹ÅÕk&ü…3nAS¡ÉmѸ[Ñ'ÿtÇqĹ/Ä‘ÁÜŒéLRÛ“¢8¨º#z¦Ï:úMîg›ES'GU?Û5G?»«Þ_Îa‰×Äê>ƒÿ¼~Ó\\Å”•Ánîï/RLJõÊݹ**&yV¥¢/@®v>ô1*B¡">ÿÔTœ7–†éøè"ôýpDTwÆRíûñÚ¶Âi;F!'RY¦äœo>ødš{>Œ™9Œã8Çq>';÷NÒ™ô1®æ’¯(S]’ ˆö©“\éIn¤cŒÑOÃøa"OÞ»g¡ÉqSºÎ@×d«’ i‚©Oó(ÙÿL^”ÑàãÅ¿ÀÜ^÷˜ÛíAoå†ÐÜnƒì.ŸÌí?s{=ÉÜŽ¢ šCyí"T|3R< ÓΖC9Z\.12Ò±lõ/¹dÊœKMä{Û“\Wè«VsI jÐ@Ój=Y}ÙÏt%BŠ/ŘËÜ8 ñê~yceT»°8%3¸R“Kï¹—€âåÇ…z3¿ß ¼½_™’~N¦¤ø©ž›árI °1åEWëLóP Bda´N=º·iˆ+ã5oÜ;·$y´|hçŒÓim®[ë ÏëB[öˆñ¬MSç¤ÐÈösR¹1› K›µØ00KºâB$…´Þ³6|ÕÚ>nG³ú-¤Y‡A XQFÀuç]‰àIAÁ“fÛÎVÞ¡|n»¹è \&²”R˜â ï1Ãâ͈ø»ÚæP¸HÁhí"n&AŠÈÖŸ9?…jÿÞÞÜ {ÆwŽŽ‹Æ§‰ÿ~‡| P–ÍSÝøœ¯ãT7.Rî éùžæÐÑã’Ãì¥8xZa&ñvú`‹þ“nw™¦k”Ì/Q\¡G ÓtÂNú$MºÐ!v'[CWJANkÓeŠÆ`GÖ±f7fOœZ‘ºeiB1[´»`6b—ÛLGc etZÀ¸':އèl•5¦ëp©—ß~óÍ·¿K:øÍa•:”íw/~ûå·ßÀk0ÂkÃN©¯^ÿá«/ñŽ"Kè;~ñýWöwË`y¡7B”–4q.n.Ž ¸ù᯾üꇯ~÷Íëß¾þþ‡×/eÖa”Y,ÍsøŒÙ”%l”™këí–¤ÞŽ(k}¼±2<œ¬|ÚØ2°Íý ™2åQ¾¸œÏŒÈw¨»9ijƒ;;ÈËåm—ÛÞ¾tXÒ±ïÂí·N*àì*¿,[wUž¥€ «ý¤§]¥Ø‘Óüyo¶EäÄÓP ä|„®¨z¼%lƒ]‡±މç"´´e¯†× Áƒ…KÚ¦ÛË)MÎ?Ó½lVD|—4•{r ½CAyDû&û€>®»Öè³Ô ß¬Úïïíû¡AÐÇÏžÜîÈÚ›À`m,R ×/CG!쪞ìe•ò]âÆ¯!ì%†  ñ[ËntÂr§Ø_ž$;m#áÈvé0¾½“¨¾ÐF#@?ÁjÑï¡+tSþB´ÄÇ è£ûU¸¦çûê Ï!MwM_‹?-¹Že ‡R-оj)úv8p ‡“>o™ØóžE8 èû8&Ždr®yÅÀ¹`:\x‰Å®bò¡\ÝÚAnW»³ÐaŹ*;Öß ûɆ4}u¢ÝóDv¾²Tü€×êt= †Pe£ôi;Ïœ„Ìåìàu›Øý²goLí?]{c &ÇOöÆŸ“½1}ÜÞˆ¨DQy°“ôÚ*Øê‡å|qz _yJ ÛÐ|Jç'|À”ª®‘¡è¿ò(a _™Š¥$ïÀO|/<àðÞ{Ë-–cÍ€I‰ná 4¨ƒÍ²΋NÈG˜O;ñqƒ:ËU‡ t~Ò×âË„>³]úCûfø£ûÁtP ªç@'!ƾïídO/ãXL¶¾›ø[ÐÏôh?MðÃ’»GUÅRsŒeIwz»ÞÁ‘bƒdÖsüM÷ýþÆùIÓ8çïÀnYVúg~ß*ÎÓ¸cü.Œ=9Ò¡÷U ö·¸ Wü+»âgÞ¹r‚9%Ì í»!‚ˆ pðß,c‡ˆ%K±#(ç,?دÛΊñ¡FJ§ .bÐKE¢-]¸„ȶ¨Â‰S.ËûðÏâ-¸²Jò3ö(­1í Úºó01½„pK³O¹Gå0®V«û® PŠÒ[ìÃò À¢eéW{)‚81„dn˜SÔ0[`Bsí(´è®A#BM{¤ý'”7…¬sñqa8G Nj0‚&ÙaÄ]W€À§¢‹4*R°‹[mùÀ9-àäÃgüü§1‘ò)GG¡¯}/öÜøp%¤2ÂÛmü˜Ù•h²ˆH„c'N–³Í1önCÞö¯/6÷ííÊ]†ˆ7»I2‚Š–Ml˧bßCWÍïXlmý¦‰£,2øZsh{6cȃÇÄëd,pà è]œûÔW›ñ½­ê™ XŽÔ!¯/*å*t W0\…’h­Þ#¤ñV#ÔÇíÝYµe¦>0O•H£È< D”ZÆ™¦ì:ÇQ‘Q‰ÑC;¡­i‡á¦“vÒ2ƒM;ÞHÄHráóN)ƒÁ‹ûåJ ,;Á€ ›SŽ8 ½ž’æã/hvû‘¼¨búˆõ¦u¬VõN™f Á`ÈH öqèö–­uphàAôñÕ#ô÷‡©C$ðŠgû1€XnÿpñëþÕÅØÿöG’ß\XU-•¸ -…™.·qÉ:7Ž^oÿ•~6xÁ‘5¯ŽÔü‚©?Ü TâGJYi%¯`~çáÞØŸ_KÈM0¿çå'xæ¤4ò…„'o©ØlÞeëf8/ƒ¾Héú íwnä9CÝñJ±òHFËÀy^É2˜©ä$ Ø`L(X{Xð.ˆÛÐV?•5P%¼2ðþÓ—tÈ ` ¨%Ðì/ƒK ÎHCè®tÇN*–@YÉ0/¬î?q%º…1 åù…ß„\PÌ÷ÊÿÁ•?°22eÈBJãÎBJ¨Ÿÿ Ÿ´’Z᲎gÁ펕†Ó`!˜±:ÈŠ˜QT 0`ñÜÓ</í‘õò5_¶ÏzñÖë8ë5ž÷¶Žõ6ë%Ã#­§ÎŒÒnüÁ†yµöx/Ó2}ù•\=±Ó>à›€!Ïj©ö,Ã÷Zuxçüè³²NŒ3sÊ­Á y&è^{oGÍir?¦ u{–Õ‰„4Îl„iB8-$¾ê$Zk˜ ´½ÙL³½âRšîÓP£u•ü=v¡£Çc·ò·ÄØäQ±›ý¬£ VeНC6Ž“ËìÃúçqÁ‘ßRh>¦µ7ñx s^,FCâ`Öt¨¨Ó8++÷:îàÊQ¦E”‚JK1B—¡µþ/|y taC!l•[²*OÉ#ÕÖ’ÈDZsIös8£÷¼ë«„C>1ÀÌçø¤=û#¹ó˜§ºó ò\<ò-Oï¬ÅŠ×¢eè÷[ŸF×…NDò°k“(ªÅ§?÷~ýŽ˜S½È4Öå³â”6Ô´Ïg3³ÿtm¨€ óɆú³²¡fOÁ|pÎ ¯ЏKÚh—Ò*ÍJ¢/ÎA‰“Y·gGÓžU0½ÞÆi­tÅI÷œãbBÄÙSWJĺ}š“/y³mÅ,B}Åhüíî{´Q) ܹa8¼ bÑúžå7ÞS—èQ@hL Ìb_K3qSü¡s¯ïfA€ÅŒ'MR é•ÐYô5](ëzê5:ÊŸlNˆˆ1¢ˆä™‘Ê/)ƒóˆTí …©ÌU”9y’ þÌ•ÎGB¼‡RäÄF:(޵m³¯BbQyÁçÞQÏ„‰¡p‚öô†aUß²9Ðø —àÏG!t$`ã:ù>\o{‹/h eW|ŠQ°SUûõEQKPFÍHÝäeèûgzö¸XIîR§BT 9OH­3­äæ1'.1d@â>}”‡Jñ¬›£‡AE/-$ ÝYÙÅûߺʃ^t®$÷–È{I Ys4¦Üp.øpø|¯”Åp\ ßoÚÝ®a,ó½SЃ訂ªÁyÚMIŠ( ¨fdF32ó1××nJ°,Am,“w7%˜aÔ§¹v0 ¨y‰é ‚ê&á~wa\Ø0â¿Çb@“µ›¥5ˆÿ€©Ä0 ºJ)„ŽØ³2Ä”§aù…pù«‹>` ‰È2Cç•ÊY™Pà†Nßh4ñÌè½Ð“+­;Käg@`ÕØ ÎÇènŽ[ ÍWõ¡bË(šÝ@ ‡2æ$&ÁØpPM•ÙßM–ÁÚæçÞR‡}+1ö·Û7ôôÄFöº÷hïBp|µ×]’9‡·[šJ·yÎÞ”²¤Š€SvEŽfLø˜ÓçnNåZ˃а³´CpÁí>ZáÔsš§@Ê\ŽØaÐd5†¾é¡‚£%®žØoÛXÞ)-Àc•Õ#œ&\–»;¢âÖOSK6ã`FùÖÙ”­Ã&õ-—¢‹ËèxãÇõoõÚ'E Ýí¼ï»áD73¼ÇW1gD¦ó€µð0¦Ü{ãº?í¬ÓÀ¸œ‹6㱌 b§8SÅä‰ `ÆV"’Žq`ÄGèjÊÁeÏIŠ˜>0ض»ÍÛÎÍx8¾˜eõæÑí1Ìypøá¦àçœÏËa˜°Bç;Úë(ð¨) {od¦ØùÀ‡#m‚  ? Θ•e°Š~÷Áêíîˆaz—í¯InÅ8£{}Œ!8ÍÊG!:ˆo6ÉÂå­]½ãqÓL¶šg¤ûÝNà úañ@ïÆfRLŠ¡†VÄà!xø 2Z“1ïg±£(–¢?Г¬lɺ„ç0©_δ×,âêùv…)êˆS>Ä8!vþònwnCÄÙ¬Ïn›Ûºv[@4ùd·ýYÙmó'"Ϊƒ £ÌÙ b´ìÆYhÄJëncä×AÚe<‘-IÛ HªöÑY<µ/gÏpÉq—ªmXO’>nIjȬ]¡‡ÞÂslQöҹ¾¿…PBÛ®Àv´¥áH×9öÚ¥JbÛûltÃ|nQÅd8;ì3 Ã칡'"Å9Z}¤ô/8œ•tø¾å$ދɗØA OŽ®’ Ð6,ØKä»…v$T7Ä@£L†˜½ˆË ™XŽBá³ã°J@ˆi'¹‰cÁ>ºDƒû#v'#:ý£PÃ…pÚf1ñh¡ÈâíÎ?âºuMÆR ÖïšÖì¹È7™ÖÄUõ§ÈލÿG²ƒÃû‘z<%;øÑoN·¬ÅÑñôàÔŒ6­Ù/ê”mkk+桟oG}ùÁ#9À’ÇòƒCI 9£!{#x¥T H°Ðœäa%Ó°m÷â£Y6y+itÚ7ífB.C€—?Ê¢nòò\o›c!›x¯ ·û¦ÇÊãŒI³á—ß¾Ú: \‘A(1À£¦’`n¿½Vȱæëå\‡×÷Û7>c%õXd°ßbô„„_ ü’q=áˆv|Éœ"6‹«vå,K.Áƒ€0JÊ rŒVƒÐI)³1¥ö€#ô~sÇ…,X±ƒ—F“›StÝ|˜·7xŠÍaÀéV„5~`@OÔh§T'nÜzµ´Ãéh ~m廯[‡®¹E74cl)TÖžÜ[—Ð#¬CÎØ4‰âµÚËZ/@Îϵý¤ÊÀ8;„á Œø?ÿérÆÎšE[Cñ2ªœ2–Lù©?_ÃT@t!–ú’[ 1×9¦:q"§$þ™ï'þ¤9:Ù)$ qDo…ËÎ4—Uy, ¡?z]º*´=nÏÀц+—^%f¨RÅÒJù‚|S†BÅ<8ãu^¬y0f'aEˆnÕÊJ"A¬ZÖ_'Õ(„ÀLÐ ní5 x°£7IRi7• œËâ­Hq iU¥lÅDµN®,åV™÷d¶"+¥º` 0»XñP6‘ PŽÉPÁąàÊÉjq;'EŸ$qÌ#åÏé`?ÑØìPq±Té®XC•¥>Ñ)jAYŠÍ £éÆèâ)ȯCœìý]a7ÿÄ,Ì?1%€f*Ûxø»/·Â2Ô‰âYš†ñ%ù¼ÏÃpø™O@AéåJ øÌU%¯ÛJgIÒÏZ›˜¹ ô]ÁR3-™j‡ Þ…²[ߨƒº¡¼rx‰)™çpôˆ‹jF»9‘l¦4X”×]êùï~¸ÒiÙÃ˵¹†™³æ!þpl ß´í@¦wi?uœ‘'Zá“Tù !ƒºª¼gC"Ö)G­þõwÓ Ò°à*D¢¼îÓÌtýÛ-ëD×÷´‹’D7h¯phinntRº©ò$×!"s¹.‡p}•ÅÐ’ÐAoF!1±ŽPž…¦%ïÚá¢9ÿQç¸À‘p¡ ׬÷®{ch‰¿ôpQáxäl[¸Ø›H–UPÖ­¾¼C¾Š£àKBý\5f"Šy|²7Ýo¸ñqÅìbA­ù†Q%ɬ¢¬;íp.a ¥º—\ö]€^â÷¥ô•L+tzÎì&!ðX8óö|¢ÉsÄíg¥‘öž ·NA3Í4¤†#¸5 -vÞs{!”ñžGGBQ¼Tx JhÇ —|Kqæ¼ä}[ï½áò½#8œÁ“Æ;µ´<9F ¹­Y€¢¨*Þ1ìÒw¿%àÔE lÇö á|:. ûªºì”nš†![ 4~ü@ÈȻͽ æJ³wésÖ(0_ÆŒet¢<É UzàêÁ V9Éfn9hŠ`¾éÁ»W`„ÏÔÀOwh»üšG/£¸W2¦'ÇÐ$èrDª8ØÆ›#‹kµQØG¸”ÂíVåjšù`¾åˆ2ZLÕ±žrªHïGfqa?αÀH0ëœa±‚ Ù™óÍ?`M–wkÅÎ{2¿]1þ/z‚õi£¥ÕÚF$¹t<°sÁ&çx0¬Ñ~¯Öûy3L–¤¹Î›Â²7õ*i(ø”ÁDBN@ÁÓ´oÒnñàh1‹­ÏQÊ}š’â['ÇÖ¿;$ÇÖ™ÁNŽÍ/b£Ê ¸ìë Œøkø;ɱÇ/imwÔ€x 3I@xµëÁÃÀ×IaœT“ÔàÿÁJ’r‘08ŽÁ‹ksP°˜u‹?|¡°•¬pou+{²E‡Mλ"äIG‹‰:~Ï0j€àŽùÎONæ]ð19 L_j Û²—¡£Ì!Ôýôê~ îOzQ÷û< à…¼ÿŸŠº·ø,£B×k¹fèCØßë8¸qGõQl|?R§x ýæ èñqtj&ð@•:£;X.ëAw0q.ú=àƒnÝz€eÁžeÞ öÐóœ „ßmThƒR¶×½r¯50Ãô2¨‹Ðg~?Ù=.£CXÜU¥°¸ñ¦Ä醞rsFd˜÷8ÐC‘‘“9áÐùøT¼Á›…ˆ”,„M\£øÇnÇ—(Î÷ruA†²~ÇîÕzuõ×f³Þz—8–µ“t㜤u)áY×pgFžÉr—I~ôýîgqx¤ˆÆHˆm`­¡s9viÁÛè–Ñ´“²éœVâñøJkÙÎyò럈—½íê[C.dÛßÞ2¸ñHy͆ {QÃiD©‚–rñ·âˬíý²a+ú&ÁóRˆ')›åëãL1ö;éÃÆá±x Js¸Æ*…1S³öbÂ^¸ÌƒM¼èûD¨ü>¿€ Œ7ä`MŽÎ¨ zò§‡¢Ff®[x[ḠÌV»t® îŒçSÅ:¸knïðä¡j)Ù‘¦ ÈÀÖ³;0;ÐÒ Ä€Z'´«0†Ã忢ŽʇQJ‚Âu˜÷÷O£”ì-ý© %t]ÍM·¤ˆ±oÅD.—©©ÒH0Ò´ÿñå|½h¶oA° 89¦ŠbÏ90ͪâÌ;­´pi¾Þù*ÖÄWëßš;vGþ3ŠIz+ÎÌtbuy÷x½Ýmô44g`xiåË`2™ªÎŽÉyø~¤OI‚~c>ZÎKŽçÁ¡f4X ýÂËy÷$æeqÖi˜¥‰‹4¼¯ŽR^ÆÙ¤:,å8AÊ+Á‚Èe÷€s­X‘çîµ’ò¦=p`IàɪYË™T õÈœ‚â•F®M²´¦© ßµ[¸{æÅx7¨¡5ûê@z™~4/ÂéCóÊúÙ‹™¹qó0;Àˆ‚Á%Þ[„ìÈYþŒíwóžnÏg>'e^ˆ‰-W5&‹#Y‡53RGʨ³Ãõæ6[>·4 )R@„ï¼xà<°þökÓ0ÆE~Ã-y H s>îøé–«p°âÛûv‡×! r—¹¾mÁ´2ìö‚8BᮎPXcE‘Pz¥  7æÎv—ÛäíÐVß®\Ìf5ÝÙŽóýéwèIíÐOgî‚oÎ^^Œ2î{IèÃÑäv4v€y\r}Tî0Ú€<‡dÞd¥T³‹Ñj´!ˆ~vš‡èŠÝ|}?ƒƒ¿åƒLc<—n.@¢¸µœ†Óžjç–Ùi>-µÅՀΒ0y0·x“$Þçj¯ïØ7Rcò _¾£Ú˜íLžpÊØI@_?Æ~ëi4OüoïàΰÆLîïšœª”õö|RÖÑ€Z:p¯*(•t^Ú @ãi‘¼VuFü õÿ„!]ëvõîèªtÂHØ£åÁï‡?Ü/Ú; h€Ð,9J_€bÛ0Ô£F[2èù'¦Ãt,ûï…ÿ4yŽ9ª`ÁP6·÷Ãø¿•½g÷ºë‘L8¨²('Ã\­g•6#Pâò"mùõŠÕ––À9´ÆßK,m€™²2ssLØÖ<–°\§ÊâçRÄ“À¸õ—}¦f8º¦f8«>™šV¦æê‰ð6t°#²Í' ©aÐJ6èfÝ4 GýÔ;7´cñÍ™»ms‡è(,D0Æá ¿"[{éù q'‘ƒPáÜ"Áe™=7éQA­Àžj=¯ki݇8²’9ì ‘TÞ*ÇœéJ¹1Ó>ù1eY»Ñ¢±NÙÉA<D$ÄÀЬܓ~}¿ù`øáB ÊÁ¯7ïÛÁ¯­HÁ_Yñé ¨äËõøÞn‚ÝçƒíMÿË2Ñøúnk~ù¿¾ûþêÅd}Ó\%×Ñà«ï¾ö£ÚÝ¢q…“ëíf,\xøëàÊ–y î°ëÍçûã`øêzð]c…ªÙ¦]µ—ƒ¯G_üîõå'rtÿáBÊÛ]ø¥ÕR?üpß ¾µkbâüó¬ü<Ô){ÛÛó î_¾XøÅ£ý?Ë‚[û£}üj5y¹^ ¶æ³ƒ¿ ÀaÓò:ÛÓ©=6ÿ=¸±òÖ`ÒLÍgcûÚe3»ãÒ³ÿÓ¯gôÚÎÀÀÿ§_m_á³[ìì®ß6áë…Ý÷õÒ¾&©®÷õʾrÿ5Š˜&†ÞAVË7Ñu•’áP–4+’@˜üìÓ‚Ÿèß°~ä)OM4˜Ù«$·:fYæPG’•»/ñ@ wº¬|éßÒïò–þëߪªö? ^âTÂ7~éßêf¤QÿVUµÿiðÿ¨ÂÊ;ª½Û£°Z÷©.¼ß¡ð-ýU… ?­UI_“êϽ:ÕŸ*Eá0´Á„m˜Á¯-7N¹R’…é°½¶‡s ±='sQyx0Oã¢ÉS¸h¼ÇE]-v4ÏÍPÓÏóâCý?Ÿ¡ÒïþËãìV—^Ìwÿ-ýõwfÕÝF3r]z¿KáÛ.Cþt|ì!€2ø`.Ó ò ¾PïôBä—V ¿ÎñÿãÎzÚûZ­~®…#5:5Ê€ƒƒÃ5ÕÝWšÚýÍT»¨(îêS”î´¡;éèM’¢Tgï ]ŸÁyù «&xAÁ³7Q3©:K!¤ËßNOïûêû[EòÊða”UÆß;¬]ªR¸íJ!Ž+ÿ‰ßô)Çoúw=~«ÏAÿtü~ÒgN<êŽWÇŸêdùŸvD„Çý×ÇÏÊÓÑY¦,jbéã닸êðô²èðô+tO+ˆ»fDÄ'CKâhµæ|ØNÛÒcGå79€êÖäñÜžngÊZ1{Óeö”`0‹1¦œÍ‰h¹‹Ï/J«Â+sÀ¬(ïàIû͉=tÕ1ö\G¹n¢a0Ì ×>\– ÌsFæ ì€n\âÑ:HÿÞ*½Õ¿H¾Äž’dZ¼•¡©;B‹ž4ò„þã\#1úÛ5ù•äOÓÐj‰gí͕擕µàJpFô;pÁB?,ÂÝã(’ˆ"þ]\ufFóqñHÐîV>âKFÑ&‡>Ä'T‘ךå2`´ìÐ(!Y ÈhïVRÊcŽØA5êZ/ …¯€8$úÆ1 Còt‘ð¦ Ã@½‘¾À6“<6ì*y7›àÊC9ç4>„N˜™Ð£:\T—ÔVŠ0@”×ÝiUW)ÀÍp|'Pe›‰§¬ƒ“{5½ž:¯Ü­ ƒ3œæ§Ùq»Y!îÀs3﨣\i€š×Yû—,‰Ö<§¬k§èüÔAIʸƆŒÎéÙu—K㺤î„þrΓçG:­h_"”ŒÏ)©a\!å ݨ€,®b“{L‚òpaf;`QBú¢"ï÷,L£4Æ×Ð4å<&¶ ¤`A)´ÿcQüyÏÏ0΢d ¯Ô Ά ÃÛRêCtßîvß+Ëpê·ëVcî½íZ™ÝKæÝÀ£êsã°L·îºqÔàÉñÉãçäÆQ?îÆKÒ¹q8Ìý€[y¼Þ04;ï¿^ÎÃÿ¸¤Ø8w]þæ ˆ–Ï’çê/8ïEå :© ƒ @“Ñ·†¡4EìK‚˜”ësæ·¤òwR@b¶¬fɬºH±RàS5n.å ˜¿Ûpäawg«‹[š…É®ä!à`ë…¯ÈoXãl•ñ>ŠŸr(¯ZßeÛ½§†„>+ìš…ž†›5ç[ ¡Ëß[çûPG„öL`ƒº ªúö’¨(³Úl®Æ>,á}»¥¸cSçùqïýÇ`›8ìÂ+jÄqÍ·_®1€E•,¸Å\ú<Á½m˜`Ä5ùKTƒ¨x B쇆±æìÔCgûS-ÈS§Q¤Tp˜A=‡Àh¶SOLЖ“†¶ˆŠ‚^:l.³ªÅ¹•ý±”eø©bøµgøCis¤ÍöŽ4º¼v{ –GEx Õq2À_÷!½+KÁ+ö©uŠA¤•HÅü‡H2Úƒ¡5Ì.„ÖúRaHÒ"ÁJäAÏ’rfIe—%!Ú¿$(ÝgI3Å’ÐèÖ±¤Æ³¤¹c0#ÂhŽËƒ³4CÒ¨?T|æøúoTYed°¹s¡!øÍ>qÿÉ—à¥`mL=´¶¢Â–·X YIÇ÷L¾xc9(ဘ$Bð-tl%ì0òÏâªÛù댤þ¦ˆ;ì­ƒY´°Ö øì)†ó‹%õ{ëyè·TO¢›,Vÿ÷ÿþúŸ·„—Ž^Ú·ÞEdqFj´p)~^|ÿòµmùµG ×$ ¦2vÑx:E,SÅŸB¸¸9¬®öFF4apÅŸìôØíCµÜ’Î1¼°Ì!I²ø0Þ`üA‘<ïÅ ý}Ã}'p©2Æ:.¸ÿ TIŠjÒÂP<-X¨×Y‹OšñEÍg“UE^ì­Ý‹Ž:o†ŒÆ‡É8…Ȱ%Å>’cÿÙ{×´6Š”Ýf®õß4W : ‡zQ‘³X'} |%›¦¡VwƪVC’#{ãúñ»fél *4Æó’SÌ"dÎW˜+ÍÜ,¹àwN¯’ m ¦cdˆ£¸$U^c¼n0 $]˜©«2¬„vÜåú†­È›ê]0ìºäÉç† â/‹9AF]ØAXÈJåü `sß~orshh1là·=%k ^z”dfS™D/Ïœ`ª}J½`æã1É `œ@¬ð Šé9ëAÌÈ—\¼2A¸?óÏAæÌÿìÆ”Tä$-SÄtÜœ¶ˆ1\~c67&ö-K2:æ75_éx&„@»4w%ƒ“ÂqÜ1GH|mçµÌlÕ„F}ž)Uc[‚¿lWbiR̬0üʲš(å×Ã?‰HȈë6Í9µ¹ÛN¾\ñ˜êE˜r OÝHYÀ¿_,®@ñ¢ ºÆH»‘š•²ï „M>á–m\S´AÆèïcØtoc ‘Ç1“ua£#ìk !MkÑâÚbV$7Y¸žè¦BdÂ…yÞxÍÆU®€Êˆy‚ šóEY/éö6èvš¥^þ1}òÏà©ò9 õÉ?yùöås@þy‚ø®ß@üÉó¢˜sYß/!Ù .~²òZMJ¸r­D\¸ùÀ“5h6¸é¢Q"M+ÞÁŒíq™°ï é{`N®{ÌÉp{uÌÉpÿ[2'ÿœÌÉyô$s2I鿏”>8UJ7ZLœ(¦#?™~ø7²²¼³Â ®ï"f_¨o<Võ´÷A "’ëvF;”véNò ‰ÞŠ®£_Å×ÑŸáZˆPZ ›ýC·ÙJü¥¿ñ>S<ô‚6}“¦·Ív¿M@÷ðoŒü'mÆQQíu:ücw qšÇ!쌬²iÏPÿxx¨½#5¡’•5Î÷ÀöÄF”õÚˆŒXî%^}æóHNu¨÷ŒW¨Û7´9AMÍw¡iDÑÞT1åé#¡ÐÀ &Ð)ãjÉýìŸ.’4J¹¶"W€#æ“ÔjqqVDŸ† ŒT8ÿGÌ«^ˆ…(v¢@ÕÎDhꪳ= ÂÄe–Ö ª= b¦T‡í&÷4Ú€¯ŸÇ· ¾íc;´Ö«ÜåÿRgv\‹vãzôÅS"¼½­&WV耪rg* Õ¾GE8“DuržE ”sºEì&hÝéNÔ”ÁM…ÄSÎÆ!4~T§écf°}1Ð|”¬#2ƒeé“Ì`ûb 9Á ¶'BnsªìÈkÛÁް¦kKŠ*«Ü+.œL'VŒ°ÃE3´1¾uŒxÚeÄAGqú)“ƒ¤gÞIž\àhŠpŽÌ7Ëg‡òCDSYqƈ´²ŸÔ€Ê—¦‡ŽK>Sý?eÚmÞÑ„ãØ)ÇŸu**½\ du·iîà^Rmãz£|# r°ŒéÒîhÃÀyœúw 9m'tKn·Ï”îQ+í¿_ùm•x$bòÃÉ¥L°B‘ñ޶ÛvF vÑ…zŽz'¢öACÙó¦xwæóv6'œ*Ê8oK3&ƒ&‡ñ=‚z<àÐ3èùæ ‡éQ€Cn¦ÊÀazQ§†Ç:K³làpå)Ÿ}3‚±6}‡à‡%ÅŸqß0Ê ½üæ}h‚VNR82z:®¢rÐS ãî!O›¬ŒÒÐ]À t BžÆ4¼³>àéÐKlJŒ>çŒ>F*Äz§t_~ó¦Ù«ñƒ8ÍèÐx?C ’ï—CV}ãÐzˆçÞfŒèÀýPª!ÆeMb¬>8pO_’ÓìÆ×„À‹¾5æ1$m…@õØŒÒK%ýî#˜^rÂqñ¡Ý¬ÑN' zx]3¾]æ²Ü·½Yî˜4(;MIîʼnAÆŸ”ä>ÏsŸä>‘›%Îs å§ËsŸ#Ëþˆ<÷:%FõY$cûO×"ƒQò“Eòçd‘Œ·H÷f‹dî;Àßu{,\¼Do¾–“Îh³HñT¥ñ±^üÓ Ç©-g}ñ„Ã4;z˜R·‚¤™ ^Žßá¹GeÕs”"È/¹SØ‚I/T°©!…Ô‘ˆeÀÀgàeè€?ïKàC~W)¬+)Kª¤ãÅ?í;Š0}êJ‚ˆƒ¾=rÉ æ{É 2²ïÉqá|æÓCKJÖ:Ž÷Ðíp`-c6ʲ÷Ø]Û8¬ÞfÈ™µ¨—+pŽšØ™2´;•ù€}{\>U$ …ß´”Qƒ†í†‰¨[_ æ’¦p!:x’9]ˆ¼+ž›o»Í»üb>7òZ§FÆÃs/LÄÙ†Áó;¹L½óµ Q§æiVì LŠ\¼µlâI@@›…)$K!É3Á¨ÂùTaH$Áâ]mhœvFôŒõÿ„&“Éýl³hêä¨}Z:â][vûÜþåžïM {(رIb¼ÐƒkŒ†÷߇#BeRFÉÌ£uy, Ih“ÑÎyœ»{ –‡Ð¬àäk}—$y¢Ðf÷#ÀœÏð;O`Ãê@÷'ùcé¨÷O1ÓÍG]Šd7·vqFë`•ò-›òXF §×ðËõ(N×0NÛ@¬‰¸¿}8mËJU\ÖæâdŒ©3p"ïz[Æ]Öb¡¿S\~u¿¼¼“2+ý™Œ1&†ìÝ6ŠÕZqoÌ÷=Îëx×·°pãm–ŒkÝYVäè‡ÙݲB\UN1}¿a‹b oïï¶Ò<(™ Λʼ¢œ%íÖ­ ާĨIöÛJ1Ûæ±@ªêœ}8¸³ª¿™röJ¡|é|• J'f4!M)£Ù›0vÃêNLÓ€£`¿„ˆÜµ'–“îL߬¡YÜAê…¤ã& 2Z½ ÏÐÇáÖïØ}’vÉ»MHèû¯öV™`´¬TN¦\ww‚Iëb'$ÞQ”9ôs%É–#´ð%j ø$Äœúœ>Ÿ»=0 í1£f„{{ K¢êäq‹æ­ž¥Yñ¤.ĨäüãNµV½¾‰h«]}» MTEV5QÁû‘z<ÅDe šƒßì#üÆ£¤ÊSúðñ^Úþ³_’«XjÆn­$Q’ÓËS’º)ÛFsÄ}æ…ÄþÓ5/$`aød^ø9™’'šº)üòReð£Ý$Û­*ì‚+;ûõ•ݯÎ@FY¾Þ¢…T-ÿ±åoP!oüŽ™jV«¬žmU\(à74¸:M«c¸u§'CeX]' U‹.ˆºm'1Eâæ£› ÌPœ`±Û…Ç«{QgKr)o†nƒþ/´èþ QbÀ]vµR*…¡Úài%×e´ ÅQxáœià¸8¬û.0tµ•®I…beQœš@»f«º±yëí.þ¢A¤åç?R,$àga¢OÌ‘Çhñ ?ê’qm<‘:Œë_uÑ?èû LÙ®f:XKöȦnªÓ¾©ž;óùDæúV’”O»ù%öæÚÄ)¥'–iŠÕdÇþ¤ø#º¨7nü'Þäv—E »M¸ YPygL÷—A>pÅÍcÅÿ“{ÔŽcÌJJ+'k‡Rtfé~Ò³¸™ ÐRŒ>M I ¾Ög`ˆ[å ËtìL¨©D1{ê Gž…¹z£7riÃT”r5ýI°R8Ÿíë>#×Ê>àWWRe9UF¼Ê7!CŠUiðS#BL#[‚zhv“N€Œ\^UB¯Ã†ß$@×¥îÀ½Ì!V4\Ò®Û8*Êà™Ugæ¤KÒ²þ „Z¸MrX<‡¥Q|?R'H£Ç¿y‚4ZÍüËÍÒhá¥QȉŒæQìd„³Z¸HtPò@Þ_¸0Å’"ÅÚÌ['ôòp28Ù&.âH ã²íæüMKW×ã9ó†Me5¨^„Û¥–⛓³þ¦1Å´í‹ i"IºÅèáˆ5=˜¶Mg›„KÒ»ÑfÛ¸¤’’.aNÉñN6á;YP?íÎr®=’ù7¥à\¦îb—0{Fœ‡¢öšwˆ·œÆåVú3ц²ŽŸD?’ GÄÕœ¥0¼Ÿ¯·äDG9ÊuúÇi7ý£ñ<¢=Þˆa™¾üöÕ–³4{›Óµƒœí À;Ìd`?S#E ™e¾^®!ÉÛú~ ÷ÅŒ6„d‘ûXÌ@ÛþÕ ,®Zá؃˜©’9ƒ`ÄÜ€æG²øÜ¢é𳑂íýæŽóº‹YqÍIÔVÃwí¤ÁÙ–©b\ vØ|˜·7-˜!ÀyêÂàíÿä4-'£É}}<% uJ†4Vý:6p_€VC}rš96räxäüüÓŽü®Ù¬G˺>zQã;Bëa®zÏÙ5¯È3Ë‚vó¥CqCÅ`£E4'QB,å%q#çæ‹¦ÇEÄ£LÚc@æÈl¥Ù*åMÇS³mØa o¹ÏrzyÛ,$³%×÷wxïàl,IÚ#MRÊÑ€>û”U=–@jhØ­.ZƒaäwuK¹Á¦îû¬6<ˆ‰ñG?ßl¥!@ò›ml̾¯^Értmõ­¦r·Ùª†çhÅ…c©™‚¯'gz[ùdíxÄÎÑêÝÚ#g¢¯]ßEl»Àœ§î®å¼û`ÐHo™UùšâÊl_ÏË*1âÐ9›&=~(‹MtçZ“<ƒTm>Ð<µþ‚¼Äî'-È4pdCú"\zK¶šù4·ì‡WNÞ›÷Ò.VÆ<ðíò9Ü­ÜAvˆæC3¾ç³ôæÔc’’c6Þ«“5]0Å&ÎÜŽÙëØ` b{½ÙNàÌlw.·‹]Øv °˜$A%ÞUòRA¹Ú.·|4#x¡<ÍK‰ §xl»ãÚgwåÞ¨­5õ3>ÅËð5ùÚqÒsFçF-0’¹ m‚Ê3d߃ Ÿøäâ…Ò–bØM¹M¡Ôt£Ùz…Ž~—˜ç ¼ÍMKî–Ô¼æjeÁsîš@ݾoHÓ‡ˆ^+ì~Ï‚OÅGù:Ð¥²¾ê:½¶çW\ð¤Õæžé\Ït|.ŠŸ(W¨NRží®;Vc$(™ ÑrAÝ\CéД;Ëñ·ÅU§kC‚SHóIÙ‡çÊkäÝV»„!ÍyÒgᇼ½] ?\1|²ðÿ¬,üéã~¼–æõó¬K¹j_¬G¸ŒF‹±Œ–A™„Ž þ…T²m‹Ž?—¤Ä'ÿÅGO}·ißYž"0 Rt”womÏÂ-é6ÈXJšÌ6èi‡{Î:g)±¿"í^yïµO^U(ê¨ÖÝ/Ã’B`  ˆ ÍýýV˜+¹ÁlGÓF+z[F04r)Ñ‘8ð²C?Ú¢G‚ÿsµìXŠÐf ¯ƒ{K…ô>´!, 'v|5üêîA^"ÊbÇIc&H³³X€Iê ›HÙFFqÆ*Ã.#J±mGÌÓÀ£µþñzqÅ@™²x¿\1©WÚ-Š„ÃSŽ”™±cãýAÔMCâh;\4ž2ÅæXŽ…’I€Ž'Z>v¡;´º„òÿœekå½1§½áV“hUC`uØòaìS÷ Üå 䉂†Jî7}kXz,‰½ô«×è-ƒW †¡ˆE+’vÉ'ü—ï-çˆOGC¾rŠiº–$‰šv=üvØŒÄ ^Š¤Æ–¹R¾@K ©ÛI×–Å5£ŽEgÆñ(.¨)͈}çy*‚ùJ26ÏØ,eå/@¨%Í]p8ŒëÖ»tέòÕ.áî<<|¼×¥X¨Àáã:BŽšÁ"œ [éÂ4¨ '¢BYkguÃë‹·^†Ð$8ò.ìVœL|ä9‹¹²‚“Ò“V‡å6_å¶â:·Ì0©ÐíàÔæ €hDÏ?©ÔÆ"ôí˜òí{â#€ã5Œ?I… O»w©*qÂ!n%n{˜ë(trº$žD5+èßÅ¿{`td¼—%pů£±4p¢ž­ñ@[Êœ½‚>Âì— ÝvÕ¥á}…{?È<ãA4ði›†þÙìÎ977EuÚsì&ÞÉ!<6ÌþØ+é FÃ¥­/åRá¥(Û=Ë+Äܳ§+ŽÏøÌàlˆ,B&fÓ¢÷B¶f8Z޳Éê[ þÆM;wÛTHƒ8‚|‡0!W¯$ϲÐ}ÎR¢äØ•´ÈXqPܨ z€2SÌ‚o%îXÜqñ;q¿¥EÙcìheã·Î6ÂŽ¤eNÙÅ W”·:3ôîòVgô±SÞò ¼µOÊè`úo_`DNTÃßIy;n˜¥®É€øÒ´ªÅr×#bák-bá$5øpdH¹KGJÊ¢€ð=)K2Û‡RV 0Û·ëǾV²‚ÞvZ‘¨(h-Åïó ¹ÛöÀ¡ã$¯ÄÃ>CçkÔ(ˆE¼ƒyo{½Cð¸ýÂc—¿È12qÑ¥zÄ÷I›-í/pBáääý ޾^K9ÀøK-l>ÞŠ„3]³9qÓITÁóF3ê6bNUˆ¸êBâïFí†oö\hŸ{ÈòIŠs#Þ“W\ŒG#qèl›ÅÊ‘Ã3ÈÛ0ÜÞJ»±hLèrÜ׊ ¯øæÇe&A_Ga {hÅ…ov$ÃQµ7|9Ý i%ÖéËø9SçVó'Úy†‚8RãͨRŒ¿i1ËQýÜZžA¡èlΊ*Þ3ƒ|/òªK2s¼ç:€—±¼ƒ†7§;Iž”UŽ¡ÜÎD¼œh½´ÎõCÁíduÄÈrʼòè: ÌÚKSÀVL¹¾|OŽCôx‚³ÑñožàlTu}çfªÊxg£Ò; :CžTEOHiž•ââNè  d€Î@ÎFðåãÎFt6Â6Yêd†ÜÖ¹’ǺîãiŸq9³ÿtËØ—?—NÆåì9ÝÇQÒuÞ_nQ ǬW¯Q’a8PÚ—/ô#Ú‡áh{a8 ‚{ѱ”¹@»YW} Då†Cò‡7âX‘lJÚ˜};Å÷[/«ÒÁ_¸œDJ}{ÙÉ„2” ‹ùZ.ùH› ÆÇÌ|HH²Ã÷€ž ñ™p>PTP­‚ú˜hÿò[®Hä"À1>f„ 2íþ.]ÕMa<.àÓÕëá@Ð_9.ÊýìŽqšVç¦yÊÊâ§<°Ì³<æ‹ïGêññCÊÿæà!%úïáÝëû[AÀMV1îЯۛÍhó€^¾q±ÊŠ6õ4´©O›l˜mà”§ï"Yüwá ˜¢£ƒ÷ÐR¼é[ [Ðo7ÊéêË! ïÿÇló­v_¤SÂÊ;Û» *dN9Í&;Ou°ò¢½Ñ=Z0!®À x‰sœÄ9áxsxÇÉÌKR¾ZgoE87ûý«»ê¥lkƒ7Ífsí!SÖÁ·Œ'º±ç2ëN„ ”(u$˜Âd‹™7ÜÍBK.vÍöó‹,Ïà 3¯Þß$qä ÌüH4$›È:lqn^°'tè2„CÛ‚A’ᑉ®±]Ø *Šõ—lC ¸fyëÌižW(ž®’[*–nØÍ(jó^ë«ÙU“δq-+J0˜¼À»køô›æâ J‡?Àÿ“SîØ¥UóÚ›V\BfJÀ|¦È53湃ܞ&VƉŧa¬œ&,Þ<¸ÆL6¿qZeÃv`Ðà>j½§Lëähú<$x jݼw\œ·Yòj¶Äùôv±z¯Ñ çòÙŽ&ÒUöt†)õµrê”U`¬¼SŒÛ†š"Ï£<Ÿ|…lI*i´e)”•À’ „ûvƒŒ 5í©‹¨#¸¬öVârÖ¨jÝh]gA&Qîf'šqâ1q`4qYƪêÀ%˜+À—`I¨Ìàæz b™ ˜‘¨ŠAš²ÆÇtÓ0Tn}RøÞ!•oªŠB½¯AÑàZü?ío$¡îu …Bb“ÐÃ’@Œ¿]I3g2ÁëL”6M…þ? ±!Îqá„GIÔ«†]6 úqb`ÆŒiÈ×ĦÑ[_à¯Í±j¥0=ðm_át×y;nš à> 6©p«õêŠkqД÷œ´ å xˆ]!:ŽÐ €s ‚jA÷t]0Æüì.Ò@X;ä€ÏèCÅÚi;àÚATe4ÜŸ%V#¥Ï~T_àôáZ™L4S’â¤Ä:\‘ÚÅ.EíÔPÉCîMQMU±dW.€ý;¹¢>ìß$FüŒUü]ü›J‡uÐ+àÕKX:Yävn’ã´p<-Ê‹¸ˆ3s”¶€£>ÿ]iQv}HIC&²ãD^ gìÅ#_c‡ÏEï› ²ßKgô™»ÌDÂrm+„¢.ïß*A€«£2&¾'1›—1©ààÀ7‡ÂÅv·@óñìú긔-õÃÚH#«vÃ-ñ;úb¿í_xÿLE3û"Šøù)© ý\ÅÖ1Ðu¤µU­Uê #P4ÝóÉ…ïÕcP´¾®K0„Ô:úÉjd³±Ä:®”pŸWqÃÖ[ã‹ uòÉðÿÃéFQ-¼Z ÿ÷v7i×V”šÛýÿQ48eË ŠÀ?RŸ³=À¾"™àšž¢ýqŸôÕ~E’ã ˆðI,EL?E~A– ‰ýÿüà4 $É!ë®%‰’ÀLHqŒ$øþPÑ~’Øræà''‘$=Nê“'Ij¹sJ$¸¾¾¦Q›¸È¢p!À?ÊE^~tÔøÞ=šSF~ò1£ÎŽšð£Î@_°ð_ÿŽB3f¶Çÿtb¥õðW²ã4 ü ´¨+s”N §ÇShqì““h‘?B è³¢EîWÀ«×_u‘H{‰áÿrQØÃûa—vÑÜí6DâU”‡¤˜4e]&øžøÅ~Ñ~Ò¸Oúj?‰4ÅqÒPž4…hUuZU2P@&<6P|OÝ/Ú?P÷I_í' ´<>PjÀ´iz²¾ðÃ7²9¼ çÿÏN¿ß#o.¬,þ¿þ €‡íãtø7¡dq è?0½êìøÑŠïìpÚÑê>é«ý$zUÇéE xzUb×$¢‡Ÿ]ôl\£kê¿\”IMŸ> ¿BEkæïGâÔêõ®$žÝ\ô3fù(2—ùµ&sÚ‰FïD@›F ?ð¨‹è¸ `ß˶Ú/Ú?j,wè“ÓF}\ÄæhÔF]*æ”O[¤H¼&¥¿½­Çàß¡­',‚dòu ³]YÁe¸¥**u·Àn“s¦‹Ÿ­Ž”š·Û]³„ÃYî·T“Š*#0öÉ™ÐuöºÂ˜o×&Ø_®õMxÜ£ÝÝ{f˜‚·ä aÒl¿˜Hxðt½iæä؈†h@êYßota,c"K{R£›ö‹¸KÌæ’^ð i&ìû(÷w»ýâ•z+^µ³!†~­ß:O)D4i—-&B†)h£L#ô呞·Lr`¹.]”¥E»÷B “¦é‚-xŸŸc#’Í0îJéŠúP™C²µòÐ<Á‡§eÌ‘Ê26 ò®0^,"¹8ùæ/÷ä¨Þ"Æ™òCrQÿ°l0pý!¼ÿ–\o»™yÓ,=ª`Ü{¾cÄÇ̼ǿ9Ý• 9¹U“Lt%xuq…à8›ÝfDû+-ª4Ìð®„C†~T>‹gh‰Ÿâµ”‘¶ùúU]U•âÌ‹œ\R Ëp×gès ~ Lñ—X‰åîX:ðO¸îã¾yaÿEUàî{ 8â*gAt•›`¬å½Çkœ3† yÒQÐñýhq‰Þ'Š¥¨æƒÝcäÔ9óý{Eá[?üñ»¯ ùÚË^û[Æõç®$œZÀQg½Ëˆ·Ù€“å¥8Øiçß 'o‘'܃†Ýº›FÅãØrcÂRijfÓÜ-Fc…XÑF³lýW.ÁÍtøZ×°{.“ét? –§@ž  &–d£1¥˜âJ05lT‚µÝUêKuŠîžÊSCÓéÎ/iGâó¶;Äl°Iı%¯ûÃWÿþÕï,àºm3“YÿPô‘pWÚ|½Û7²)Äd>´Íb? "¸õ…Ä}þÞi¥qd¤Jr‚ó÷þsïÚ3ÆëáŸwÙûnݺMô¡Ì“Èá4O_¼i0DP…ù2›Ÿœ ¬ðp{ãÞ ÿ õÝÈrÜËC™Á?’íÑç?‚’CºÌx¯²QgaÆö’¦Ôåî Ø; Ð'p̽ºâ'æ€$6hQ´Í1QÁq™±$¬ŒÄÊ«IÎÐp§÷‡W°Ùû-¹ïx|3c›Í’sp¤yŸ?eaÿéúSàRùÉŸòçäOY<ÑŸò»o¿M©’º|Ö‹ï^_º¸—ž]9Cú0‘ŽU™¤o“z8ó¨c¿ÿþ+J£õú7É¡2“öJyInœ/ Wr6ÎöÏÆÄ„+Îëº@DŠ6[‘²[Þ—¡Ð†êÌD„úÖ°E‚ý ‘‘£èÆ»¸‡…óqÔeá>ža¢'áûÛߣ$:C9ô º}øÝcþ|ƒ®?~u²;߀|(•7tÈü”7Ÿ=ò±à!g>~úòÁÈÁ¦yȕϾƒ÷#z¬z,nÿG>ÕAšk?¾¼2Ǩ`ßw¨^|e<8Fy?ÂGów¥Â#.|¶gn8—(õxð‘»-8ik¾YÇn°/Hš¬H ìFKG¼\ú¦¡K_]ÖæˆGÀ´ŒüÓ †žc_œâÍwüæ‰kï"²Ý:G¼ºÌµ/üšwí/F[w»ÄQÞÒáìÉ8QÇÜ ð½z<ÁÝàè''XÉ“Ç<ù¨íÉ—RdÛĪ/¿þý—_uýÖ¦âË÷ qÁˆ‹ŽoN\8ß°¾£ ¾§®ìí§‰û¤¯ö“hòˆ/5 }ùR ¥œì©·”âr1ü÷ß½xõå‹ÀQŹzýîÅw¿ùòõ7K0X1© õ]@*øI•$ǽ{ðý€½pOóîqŸôÕ~©ññ£´Ÿ#•h¤²|~÷Õ?¾øZ\ÝÒ´ë›Æ† †è£±‘woNôˆ >1AˆGÜþ¨íöÇûHß7Å}¸xÂ2êê¸×+¾?TôÀ¨+¹–ëùä¤Q?âàG}Ò~x×ýòÅ×_»yg“.n‡×¿}ýÜ[¿qR‹Æ I·²@Ð×KèUþ ^Âåq—X|¨è/áÒ¹Äîr½ñú£>i¯?Ïm_¡þnÐK‡IÑ a娗¿ý þk—’%ú¿Á?üæ«ßŠm^†>8øƒøçÙqßaxïOò¢ ?ùB=â5H h¯A$” ·]½jßá"qþ²iyÜw8-e®÷‹ð—M=fQZ~̨ñý£hÔ}ÿp;¡ Æ»pÅÑ%9v¡­q ?þÛ?ƒã̳ÍôŸy щSfÃ~ÇÙäÇÙÄ;Î&':Î&Þq6ù¨Ã¹~Äq6‰:®}îÄ9Èv¾þöÅ—¸êSƒtµT[£ôƒbÁÝQSœõ€)Áâ¡=â¡ywÛèDÝ(5?9MŒqÑÒ®ã`šp<Ç˯¿ýþ+¼µ‘Åç QÇ]×ÛØ¹ÞVÕ¡3Üø÷‡Š ıON#Ä#Q@¶ZÓqüs„`þ<8ÈŸÍaþl)Sw<ûáVêâøÁïÕã)^ÊÇ>9TÉq½Zœû˜TƒM”hƒ+ ÿî8ØEÐÙîoí`géÉΗMj}Îx‡dÐûbŒv…[W@üI¦ÚG,q­‡i‡’¹éñ(a¸2·›Nï ÓãPÒíQ2g1%ˆ6ëòeˆ ÌÁœáVÝ–&tC!Ö¹JìM7 Þ›„ðË=* ºõ¦)9“ÌCgÃÞ$Ó.ä„ï ¹?qP®$I^gÇSnי󫳓sº+IzÔ•„[©*ïJ’²+‰£0¢L@kÊ­zRe±‚­ðB ¾!÷)¾/}I7cK-òLP¤ß³‡)‚FÌvÂÁ Ê´Ä&oûË}K7Þ’{˜“fµ¨›Ð‹ gûÉR%cÕ[wG{ ø‡Ì\t;Ÿ0"Ü;®K. ÜA€CAìÀŒ,ÎHa 5Æ;f±% -ù±$ËÒx‡li.ÀDþ%c;¡ß†ÜØ)Ê3íî†3ˆ„·"ÇÌî3™»»¹$0"‡0ÄAÔ7üÏ>SC”½}qóÒ"#RnÐï’. €‚·.Ù{I¹ñmuú€·xeï¼ÝÜÅqÛÙæ4ìÕ–˜Þ‰7áâš³%¹ËÎ d¦½ø¶m³iñ¢pM7©’“±¡Äk$´\2\óçÔ|8ÓnY^-8ö2ƒe.ÙöÁ»z±t^;Íðõ”|§ˆ£3 ,!GIÆìn#ºu·r l›Å"q%Ø¡¢Ä›tºÑA(>pNq°»œ1ÁC;ÉÒ4¦÷Ú½DÛÍ÷è4L$>"@/wmn~Ø ¾í`·1«˜Ò@5v‡NVSãï18‹Ýw‹€°ß˜¶SRº„Kq9ªƒøP€Û#Ó}\_$IVÞòÁð{_`„ÏÔÂßf*>žï˜º…c|r&X’#TLÛ°Bÿ¼ïèMæ>Q¤l6cÙʳašPŒÄtXdBž½OYœ`4ÙeÞr?ÑåË׿ýáû×ÿù•­ÅYɉ®D‘ùZv¾É)Í0Ðp;J;KÄ#¸v`×Î23sѾ‡®ý“¦§êÒ²ÚùÆ CPü{g㨠iO]¶qXòc´qÔ×éE’XåŒ2¬2qH>S?¹‰£ ÷! ö G’ÞÂáÄi¥R‹ í°s ^³g펌z²«¶ 'éÊôB®Gpã“¿\¯¼D{@ºíÚ•zh_dx!ìø^Ê©ø8:V`â×Á6p7~›l!‡",)ä¸dÏŒË8FuuAªôÈr2ÔìZJP±!£ ¦ï™R°o°EKKO¬H΀ƒJ4±Ð=Ò•´g|Ó-Ÿ‘÷.}qç>ñö[¶TRЉª†dU]Y`ž‡uc,ü%Y–ÔÕAdnº>Μ/Eßb5Bƒ–;fâ:‰È¦¬FËááQ]þ¢!¹>ICÍZÎ(HlíÒ$™¤mižlAˆ †ž]bT=òò ˜ÍÚc;†éýBÔU‚ÁP8bÈô©?ÛÚ'©¥eˆGHV&9Î`>bLà”ààÙÆE(†©(ø´À¿ÝšÆÝ`H ‡SÛOòéL1µÞ6 0x²øÜ§œÂ—Z ¬ +¾tæhKývi£„Ñ6e{'˜µLYÛnQ âʻ٧LGqê!£,ÑFö“ËÏ,1w!t,P¡컣§:rçDI(úbKV2ÙJôhÈP.]ÂÝM3»‡;ßýp»à,m]œ(]f…RR¬-og²Ì‚ývIöŸ\¯t ïaÌ]„³üÕš‘âB^n½‘=>ÝSGMRà=õÔ…:Š–2”‚ö”„î› üüM™KÍ}L…Ð%)Êà3ï()sÛ‡¸î•åt“ánÅR]-óÒÙ 2ŽvDÿvðMoQú ˆŽKR˨[RçÇeiB ðò´ÃLh·G-b·vÚp\VöF!Am{ÇòêkÛc÷›F%¸#ïDòöP—e¸/ÿÐO] €8@]¼Èý‘Ø{…OØnÃSdÆÇÜýV®ÀH&΢@ ²ýÃ_•r€i8­\Íǘ„V£E˹=òY7 ïCý9ÈãxˆæIpN9'ªÈ—„jÆÕ ž‹˜†Ì¨|t߇X™K˜fÍ ä‹ ?ž†¢VT–T’mmZÊ*2—%0§@,¡´»5•È¡ì8l¿$ªMšcØl?+1rת`£“ sÌÌ{ L5#6Šc×´ž¹hü©ï³û»æÛÖgÒúx!€¦LÐu¢9ÜØÆ¬^º"CÖÅm#ÇÜà¾sÌ•¾]‘-Ìö¨ÜÅXàsÞÌ2)ÝÄrpLµ›@“3„³ƒ;ï=_éÌ=W×µx[¦è©¦ô¢ÀˆÅMãu8‘>) Î H53"&$‡†ºpÌSÊ•Ö9ΗýÀàq†sLTt(*¤gF] ÑL³;|û£Øä¬n…L/M»ç Ì»,€P²eýV“…{˜ Gvß/ä&bvwEÚ‚Ò]Ô¶o˜}€µÁžvuáeö…÷ ™?Ђ bÝK›M³ÂÅý¬Á{¾e³\×#>ÕÍ4É3êù¥AûÖT…Âg1伓qÏ;‹qr³ ~„7WÅA„€Ô»^Íð*eä¯M À!›µJɇK—•‰ô6'ò¢MRtt:'È쥧+Ð= ‚KùE7ŒŒCê÷–'Ïèv•-¯äŸ3rÙË=H¬;Þñ›ÃcäiÎÞWæ´Ÿ‰œ­_ ߥ Q¦™3J1ÓnLr†ï'éXcT¤Í½˜ dÄ›Ú,ò³<ë2•ë‹TÖ?ÒñÛì¬޽‰¸à4ìö¾]p‚P”R\°µËã6›ìÈ@(µLð{—òÍ爥ËÜ,C BQNXçÁøg•q›¬·¬+Ï” Ôô%¿«;fø‰»ŠttÑÒÛ¾T‹$î“U[OR-‡‡Úì—7lß\9mœ\¬ÐR¸‚U3»ßˆ!GÖt$è1”òíÕ,\Øs?OLáÕZ.(É.îOÜ=‚Kƒ·aœt–µÖÑlß.·+'×¶Ùç¯:ÎPª¹#ï´7ã`eü:ïäN$œDWm]DíƒÖ€+¼–¯ðŒN–HãmÙÑI?{qñ×tñ‰g寫#—‹®ŽNÌ_wì›Óï?ŠãÉÛ¨}R³ÊïI“%d9¼_ìÚ+Pæ)]÷R:ÙWÃïw; ÷¹G+ñtru‰±­Yƒ­À;ƒœrrJ¬H¼[䟹¸¯²jŽJ¶‚Å»úÒÉÁqa5æÆw?üæw_½øÒ_ÄØI&M“D~¿Z€k7Vó|ÎÚÝâÇÒEŸ’­!éÖ—]+ä,DbÔ_-ÚÄ' *˜0Eº× ‘ðãõ†gº qÙGlå¶¿sSd”×VìyØøLd·-&òpG1¨.Ÿó±…©«ÑvëæÐ.Ñü²£µ¢+ȇwäE.H¶Š9¹ y'(tþí<7‚š.ɽˆ”<”Änn·­6OˆÀ>¾·ž7-ì;±\_$™ƒ\%g:çÑEoz‚Ét™ªs]Ð]Èô~Ãq ^à”n”®Ñ_ÞÓvN6QÒ"Þµ›õjé®geæà’aÁþ{‰=“8ƒ4n~Ñ&9daàWx¥óûo¾øêwÿÇÑnøÁ!ðâ¦ÚàV…Ÿéª7á<Ï-9s¢Q=¹à:ø¡]Ò*œí-GçëΑµ#.«É5a‡|Ïr¨ÕÜ'=UrˆI·äxJÇ,<+E‚e¦à$åëþÂ¥ cÇdåtÜ´]XÚ€ ½ÑqHÞ9ÑÄi Ç®(•”::V#¶1Êœ¤[Fry©¢A'êOåÔ¢LÊêûÚP#‚àÂHo¯þb^Ñ,Ç"Á¶71 ‰47t‰7fh£ßg Y-7œ^ÜùWnÚ ç˜kßÛ0ß!Œ‚ù¶í Ó… ‚®‹ó 1†™A´|¿ƒiããb†/V䜀Bׂ¦Œ 'É»{„ûíø1ùK~uT®Bè¤¢Š±=Ãå¥=É›ìì€^Ó+†Ñ5|Z⦛øÊª3ô¶ÿàvï%¥u|¨ŒqÑswχ¸}oðýh€Eñë¿C>ëøØ5¼ï YäãDÇ)4Xû|¦[ ÕÃmþÍ•ÒÕ`yLW3¾g÷ žI;vµÀ)]$#N¾Ï\w¯‚ùBÇ$˜€wϸ5NxïܰÝñÀð ¹Æ ³Šß 3õc¡DçÕ?W¢÷<`—„(¬`FÈÝ"J¸7›2;V\R j!nãoû~ãöoKÎ3"¦ÈöÝ!Óš‘¹ ­Röÿ V ©I¨“ë&~ë¸ ‰tW] HZÒ¸½ÓRâðÅØÝnüûèêpŠ'Ý …SÁôÎ)}qNèì ;›”¹¿NJ™‚C¤ » Û:\ 4h r‘»†Vëݶ¹Ÿ¬¯6V‚e`@%÷m¼Òl‡Ø‹"ŽÏ¸ëm^ɬ1&):ŸÉæZ矬Ѧ°Ó·¼ [„0ì¦ñõ«a'-I†«oέÜA˜$ùçç3i@ðx)ÙsG¼r ûù2_ðzš“ fOícˆ`ìzÖˆ…i¶æ52açfJnŒw›¬ƒÈ™úNÞ+I~Z{t}‘§|­ŸÂ”{?²ï² J\ÝAè7²!pìU»E zm·PŒb ë-w¡ÄhŸE‹Þ+æÆû ͆_ãœÜZyñÝëkû#šº•o6Ú<@*£„^IÉNÚG£´—ß~ó bÛŽ”Ø£‚à’:‚+^/ÏUN?ò)õâÕ+°ù#¨/qœ¹w ~ýú·¿ÿƒËî fH8xÛj±QG³¦oq–90v…Üzçù øIM›‘rM#ËØ€à½¨Šøx êþÑoŽÙ€üéuW;=‚ô¹`ÿyçð$«º~ !(ùï.–`¢ÞÙÛ5MðˆÆ(ÿ…sE’…‚¡"3ñ6öè±=Š^Ç;Œ!º§Gî¸;Žp?½éuÖ’dQb ;6]ü’¨"Œ®ñcÏ;°„Ñý»À¡=¯Ò}vÞOvш—ôµ„€G_áýH=žpŽt¾1w—"Vö¾R+r>¨ñš}ê¹v”ƒ,/2£Í‹/6ÀgQâ}À»Ã¥ò0™«#ˆ&º“ ³õÑffI¾áÅc°¡=;‘dÑìÈÞA[ßËÐìiG•׳Ùl3U†üp8€•,AŒì¶>¡k`¹" Ë×\<µlGÈÇE¹ã:׬Ž^îØÈ9°äqß.ÓxÝë‘A èšr>ûÏ’‹·ú®òZ’ÔGï±ì{F¼Â¢'ÝcE.ÁwÏ7§¯½ã™ƒ¸ u‹/ÁHž½Å—Çyض9ósL«f¤í®¹<æûõ=XÖp?ca·®üÚª|sžv<5 ¸RÜZL1àË»EE$öf¨–ãmÉV‹÷%,Lq”eŽKMXI"ÌÊ2${ò6îôW¢SÇù*·4VôcGjbmÝ[à4]‰÷ªá²û6ËèÛC1®ÚDâÒn( {Z$C,\‘¡ç¬'øów¦8G`ŸU'`­8ô뤲ÒñÑÁÛF ¾²ŸÔùñÁ»#~þé_¼í„ƒæŒ¹óËã8Úˆ£šÅD åvÁfж‹»Á>}ÞV}7¤µý§{CZÃ%é§ÒŸÓ iýÄ W‘󴢸RXe_8ôšÀl^¹(’¼8Ö ±ò€Ž“Å¿(8–ÎÝêfÕÊ2¢ê« Œ- ð$¤ïг34ÙÅŠ‹›#%3ök&³F*Œ£¬8T#úRbªm\zÉS+T° ¶­Ów;‘¡>ïJ8ƒU7bîD„ŒKê Üw‘™³9ä»A*«¦íÊMÐ.f;ôúkÇM' Q§:3wò ‚c!S’ƈð;«D`粄éôÂ;L“¹oå>ú¾wˆ4PÁEšéÅ[™¢æÃ…>8­šc¥ƒ+wrGòº”ެ&®#e”t:2Æ[[«âL­µmÉèx¨7îÍ­îQÝ™í÷&L˜út€°æã ý5}m3¸nl½yîꡲUŒë‚{¬$ƒ-(>þoñ$†O}añ¯ÿWÀ¦ºqûaI7¬  ­°ñ?A!ì ¨q¾ˆQ$çë³Ù€+ë)ýÙ*q8¼m -‡,³m¤™!–B°ó€ª=IâÙ8`#š’™60­šv6ç…¹ÞàœÁZ¦>Õ›–š`$QŒëÑOk’‘Y oõÛ]Ïx¯ øÈùÏìV¶ñûP L`Ã5 ‚×OÓØ ¾”ä(ãÅý–bi¯‘¶ B߰Ί®X‰+öo“É—N<šB§ p’ þ¡;¿”eØ’²Àuu””]ìK‚®u[íiÉÃÞ+Š‚Û<úˆ¿ -'¢-æyRÎÆSÒf<é–,†ädTañ%ïDœá´mÛžò÷Våí<¤ ‰®v1W©¡RR—ØT®”„:Ÿù#|¦úÿ‚+wHÆpîÚ û1p>6 Ò<¢Îq;Œ½b1Ó“ú¦2…@mvEœƒ¬(i—I‹q®jd¨:ô*Á>&ÛK‹‡&Bm¼—ÐÈ'Å{ó]˜Ç;>z`I1»üXZ·èãmÀ®ˆ}ÉËD̬½Dx;Ü®7;ÉΆ»mèjÃÐæ¸޲Ç^+›Æõo-¦ßÎEoÀ!À`_…F3ïDFŒÁÏ 7ukÛ™#û>+Ï—½¬xþµ›¦‹µIóùíç‹»õb»Ò¢»±ËéÉâÚ~¾Jzfüä_ñíYA;¢+g<ëZñ?ÆÐEƒ’ì{)B‰@&ÝOíÿ:绸ÿÆr51’µÎˆ ñÇ‚›« Ÿ½/ž‹¸Îj[)¡¯n-›Žë²0¾•çæªsÂä™àä”™â)¹ø tX¸N8à¬)zÖ*NNîÈ¡ åI6Ý£T9Jù‰¦H¢`¢ÑÙ[Í5a5ð•NÛ &ÄP³ÈJD66ˆÙ’¸ªMZ&ŽlIb—¤oò²‘¸XîwN‘ íŠÈUŪÌù¡®¾c‹Ï0)­M1ªßXNL#\/I÷°#–£”àñ°eO <俨¾YÈ"ÄsTÀ©X“rÐhƒcòÉE3y¿=10ØFQyB‘ÞìPǨG(C aŒ±evNÔK;HOÙj.±½ä7‘£·”£v>bŒ»Ã4ÔXÀ?™Q¼Õë e4ÌÝ™,%q]Éi̽Á‹]oÙ@¶ó/øp¬rw³q.‰#Ìyݹ«4AŽoÃu`z½‹ø:û“¡¬Ž‡á±òí¦µ‡»ì!­JÎ]¿Ü}JËZY@èÊI/î•$³; ],¹‚›D:}Œe‹Þ‡‡hƒ÷nlê¢G,7ŒPMÅ7VÌRFšíQ)#sÆÝ¡y6j¢]Íô1½€Yà^sÑ;èw9bLPä P´‡Žf9— ÅåTÿ쥚yO7 ŒÌUk¹+9z#-Ùº¡…Æ-@aî­Í& Y¥à¯á€m³DW?UsÝÛ\©Hð*aÓJ,h‘AÜŒÛóœ™ê!½ˆ+jñ{Ëv‘'ˆB&Æ ˆŽ•pkô*?‹võ•œàzu‰·ÄºÙ÷‚õÁw‘˜ÀmøÆ;­ÓI™fôö@&…׈–Üè†n÷só1Û‹ó©ƒ3/ó< Oö©™5‹îkP^¬gþ^¾žòŸ3µØE="À¾w âá"1„?,ÒÚî&²$h¾ø¡8ºûT_‚þüc/Qbœš&x >Dâó‚ ©Ž>ÎG~ú[ƒŽn.R¦F$Ga%YvîðgݽW–ãaïfÔ5Ö-¦ÞÏ\ú$7Þ†ì5isNŒ³Ç¿#tΠkŒÂô\0¹À€¢ ¡šÊýœ/ñ~…dz‹ÅÎþi¤£ÖA Øî‚PZCi£11¹+ß²¯š(²NC¶ÇÄ[扳†ã0rÔÆ€»6 L&¿Ç›2\:4µ9" ‘º…x&‹^+OÀvž'2Ø0ÕäT¦JùŸ)ÅæPß›âþÇQ¼HE z‰¹ lrùfîO{#BspQ÷\E‘ý§sQ@úÜOW?§«ˆ"zü*<Ï“¯‹UnïGÃDƒ_/øŸË›ÒÁ¯ï7p1g d¶ýõæ};øµ¥š|õË_~•|¹ßÛ³j÷ù`û_Óÿšmâëænk~ù¿¾ûþêÅd}Ó\%×Ñà«ï¾ö£ÚÝ®«íÎöÏ—à€»Þ|ngi–Lšwƒi! Òëd€&¡Ec•öA&eí»/-³ú|ðÃ}3øíúÝÀž~qôyZ}nÕ$ŠR[ðTx:æ]ýò][™tÓ^O7ƒá«Íh5^·ÛÁw_}ýõWÿþ»×¿}}ƒàh»Ý¾Xø'è`I`_}3š­Ú)ã‰>ˆ¯íÞ…¡|µš¼\/að[óÙÿ÷Ur·Åé²LàaÒLÿI®þþl¹³D^Žv›öÃàî~g>¯Wñào¬MËZþ{.§X ¼‹ì+hz ÿ½ÝÌn:åâ°\|¨\"åâãõ¥a¹ƒõeƒ¿Å§ô/ˬ¯rô¯ ˬ¯êÒ//zËÕÝrEÝOç½ ©’þ‚8#yŠEâ#=Œ_#tîð§¾ ôîpÁÌ„Þ.˜w›>@«Ìtš>Dž²Ûô!òàÄøñî#ÎŒïÁ‚ ÎŒïá‚q·é£N’nÓF¤Ý¦Œ:Á™É±H|l œ™WO’+ˆ3Sb‘´:V°ô;0wÿî+Xù‚Ôøw_ÁÚ¤À¿ûxIä V•ü»¯`¬ fƒþÜ / À©E§9rñ…U6ì#0óà(Ɔbƒæ*-®á.à…¹T7,‹F)ÂØ~Þ þæ¾Öh¦ƒ¿5ë©•vô¯³ÍàoN´Ð¿o$Ôè·£Áߺ¿mlÁžïƒ¿ÑPôËÁ߈ Aö×ÍþÏ«ÁßxÔAlv›õÛ°[sû«•‘‚ßcûc³ƒNŒGwá«[÷êvÝ®ÂwïÝ»÷í¤Ó¸i|kÿ;†[¤`ëÇzg'$øºSü8Áj&£mPÿÔΆAñ)ßûy<åº÷Þ¼G2YÉao ;;ßnå/¬Üù·ÉýÝþOCnœš«dÅø>& ØJõƒ¾XÞ/VÍùé ÓV³Ÿè©Ÿ쵪*þ Ú…·]l…ÖÍèýW »ù¶ÍàoæŸ>³Ûz´š-ê”ù§ÏPÚûõa3šè¿?tþ~^õٽŠb< þ Ë|°ªšC¬² xŠeª3ÒW«µ˜rÜÀü“jÀ.(z2ÿôßĸH\Dzð·ŽŒ8 —_­¬îÞL¾‡U>@•Ç~IŸK eãÆ|[&FárÙÚò‹ÖþÇÊþ°EáßcL¶àóÿ»›_š_^µ³Áúã8èÓö¶ÿ€ŽGÄØè–v:¬möÎþ;±Bòà»õâv¸)é”Y¼7«AÛS-í±T…Wµ{6T(Žð…e—( o–¡ê¬fšË7ËA™Ùçr¯Z_d¡º” š3º¢#Mûî.M0¦ð¯•NÁ·ù©<l§ÆR|–Ë¥±_ð13p†r®cn+Ñíþd·,ÿ³ýÿ`;±Ýˆ« h# æ5Ãç?—øLeðÙ ìôpð§?Ãr˜mÅ×l«ªûˆªT‡MÐ˧WUÚÍsœý:•ç?Wô¹ç»¯ÙvXUw^‡MÐËG«²PZAVSÇ TSä0nKOz^ðsfuxÎá÷”ž÷ûøÎ4k¨Év'ƒŸå¸vè¹Â™ÀoéÙHEûÝ´ Óöp´Ù¬ßCr!žkgÙi_÷Ë÷…çƒ6©À+I ¨™ƒ¨O*ñ gª½J|¨ü>ÒÒS€ž«2—oéÙHE§PÀ·³ì´¯ûõ(SO2õ gª½L}¨|2E|fV™ºg#BßβӾî×sP È<ŠÌS€ž©ö"ó= ò=ˆpÕ¼|‹ÏF*:…¾e§}ݯç z¥3òÜS€ž©vì3÷€ÊïS ©<ð9‘з1ñ®è øv–öu¿žƒYá)žôLµg…ï•ï¡@®(@£.s÷mL|€+:…¾e§}ݯç @Ry $•§=Sí4§Ô*ßCDQ9W‚¥oâ\Ñ)ðí,;íë~=…Ç%©8Û¥ä"F‹RÇ+Á a%â_ö„JŠýž,npMtz%YÿpžVI^–}ÃyZ%(?w+!_«Ó+ADøîpž\IÕS Ý¿…Ò2j)>À:ʯNQ^âüò‚ká%ì ص—¯ëŽx]¢ÙwJ4­ã#ºV€ÿâ&âJ ñ±âã§µòÙí²Ù^ýn½­ö‰A“(‹:TM²Cê‡t5Q]M|WãÜw•ž?’ X[Æ­dò¼àçÜ·˜åÏI$Á­·G#ôð½[’"#=-UO³çï)ð‡žžÆÑ‘®–¾«iä»JÏy·ÛÏÖÕò@WÓÃ]õÝ[BD•ïj껪ºý\]M£]-Žt5U]-TW ÕÕôù»šèj}¤«…êj­ºZ«®ÏßÕ¢¿«Iò›É›É’î¦ç2ç°O„%ý‡[¡ç¼Kœg#H}€ ù‘Í{[òÃ虬T¦këxßÍT+¥j¥T­dg·RúVÒÈ·’*ãŠjñc'WY‡ReJ•Ý%În%U­ª•Bµ’žÝJ¡Z©U+µj¥8»•Ú·‚[€[¡çªÛâG¶âk^Ò¾’Vrߊjñc[ÉU+•j¥R­äg·RùVòØ·’Ǫ•êÜVrµ÷sµ÷sµ÷ó³÷~®ö~®ö~®ö~~öÞÏÕÞ/ÔÞ/ÔÞÏÏÞû…Úû…Úû…ÚûÅÙ{¿P{¿P{¿P{¿8{ïjïjïjïgïýBíýRíýRíýâì½_ª½_ª½_ª½_ž½÷Kµ÷Kµ÷Kµ÷˳÷~©ö~¥ö~¥ö~yöÞ¯ÔÞ¯ÔÞ¯ÔÞ¯ÎÞû•Úû•Úû•ÚûÕÙ{¿R{¿V{__ªTgïýXÍK¢æEIG\æìVps‹U õjQx•žÏу¥•Lµ’ùVT‹çH}ÒJ©Z)U+Ù¹­ Ä­ ¬Â­Ðsá¥óÆRªV"ÕJ¤ÆRž=–Hµ’ªVR5–èìV ÕJ­Z©U+ÅÙ­Ô¾”»¸z.º-ž#õI+¹j%÷­¨Ï‘ú¤•JµR©Vò³[Q{?W{?W{?;{ïçjïçjïçjïçgïý\í—Bí—Bí—üìý’+“+£jÖã:Gꓱ¨]Y¨]Yœ½+ ÅÇ ÅÇ ÅÇŠ³ùX¡ö~¡ö~¡ö~qöÞ/ÔÞ/ÕÞ/ÕÞ/ÎÞû¥Úû¥Úû¥ÚûåÙ{¿T{¿T{¿T{¿<{ï—jïWjïWjï—gïýJíýJíýJíýêì½_©]Y©]Y©]Y½++ÅajÅajÅaª³9 ÊZxä²<†Ï,¥©—ÇèùyLZÉT+™oEµxŽ<&­”ª•Rµ’ÝJé[Áÿp+ôœv[þ *õŽÇgVÊ—T_¬“‡ ¨¸Ç&¼ ?Z’´:§t"«òœN€‘ùñGWQ&¶èùñUÀ6Hâ½Ä}U¸5,aÊ÷É™<¥ pEëñ”zJèÖ{ÔxR®Ü³ÈuôøZ=©˜‘$ÛëGúšÂòL£óêÈÑ þ¬:PMKò½yyÒ~ճߞRGQö¯±'ÍK†¾NåIëôÀŽ‹zwKö,®bÑc4€%ÕãXõ¤¹(úëxÒ~·Òhpg,« vig'1¿cu¤É^ùS†õ×Q<¡Ž¶HuÖ¬`ñ¾ëFùÔ:ú\wžPzªåe}ÎêHòþ:žBÒ¤ê¯ã)K,ûëxÊK³þ:žBÓ´ì¯ã)s›EçÓ4KûëxÊvÉŠóé‘Õ篱<9nóüúQ?·E|þZ/²gèGy>=ÊgX§eú ýx†uZÖçï—*y†:žaVÕùû%®Ï_§XG‘ŸF[G~~x6œÛª¿Žä©çܹu”ç×gTOéSϨsë(Ο—¬>Ÿyò uTç%ÏÏïGñ k¬x†ýR”ç¯òÖiù ë´|†uZÖç÷£z~Z=ëža­ãùÒ£ÎeO=_zêxòùrn?ªóëÀ³áÜ:²g¨£<¥Ž´›T.¬~“Gùhã‚b6[hE€‘h±Oð Íà×ð R²å,-(yçÍH/<.?¿(åmþ Sú¯ýc?ÆããEásuXæ´ê|Õ#Õå¾:UõcÕ¡g8W‡Þà‚áYøê°ÌiÕÕªºZUW«êêÓ«—CW_U¾BúCf#ÊŸP¥šÞ8VóK¸*OŸaò€­•#|­3…œ‘D§.®¿àê4\†Â9iÁHu¹ª.ï¢oœT.® WW( –"=¹ºZUW«êjU]}zu´¸>šC®þÙˆò'T©¦—ÖˆTë Ž™á²ßÂ÷ ¡9Ø/® šÿðyÁÏA`‚›Z\4&–¯ú¡9kÌ'„Ì™»g#õœ„ÌéšYvš×Ýò]ùxWöºô¨KOz¦ÚëÒ÷€ÊWýÈœµæŒSbX¥{6RÏIଥ'@ؼîÖs ,<Ê€ž©vòD¥Pùª˜³ö¸œèT(Ÿf„ËÉõœ„LZx„Íën=2E€L S-eªÙ nbía9^>eD¢ìtdŠaóº[ÏA€\ñ€\ñ€\m¶\mÂü@wÖÚ£r¢Ë°|šÈOç¹âaóº[ÏA€$ñHOz¦Úñ8çPùª•³f¬ìääúê–ftóÏÂìÔ6IRdvj‹Ï ~N«ŸÁS;)è¹r¿ïqû4õìžC«ð[z6RÑIÜε³ì´¯ûåûòñˆ£Â“ÀþáiÀPöß þ¦‡ ™"v»NrÿuMLOê:)„Ë7µÜëDнç ž¦L S·xŽ$#­¨•\¨•\œ½’ u‹\ª[äRÝ"õ¹­”êr¹T—Ë¥º\.“³[Qû¥Tû¥Tû¥<{¿”jïWjïWjï—gïýJíÊJíÊJíÊêì]Y©]Y©]Y©]Y½++µ+kµ+kµ+«³we­ve­v¥r Ð-ž#•I+jWÖjWÖgïʺÖî ‰vOPû²>{_ªº—Ú)"t}Z= •û™SuD«T¤|$—K¡@½½„Uw:ü¬™­ªGÂþz@Á&¸ ëNŸ5©Uõ¤DQ®k‚öíÅȺÓágÍgU=)ót+o/,*éôY{‰I—z&<}$“U¡ðÙ;]£ÏÛË´¿—å#©Á …¼ÞéššügM ÖÓËè‘-ž*àþ¶U±¥´xömžî‡æVdÚJU"ƒÆV%2xÞž"ÛìééQ¢fª«e¥¶èøYÙROWe…óÝ[€ºô\t»ý¬¼©¯«é#Ì)UYR•e ULày»Š ªo<–k/U)$Ð]Å ž¹«iWÓè6•ª  qÑ] Ïʪú¨zp„w÷Êw±P¾‹…r,”ó`qÀwn,ïÕ‚)Ÿdv+N÷],”ïbؼîÖóø.ú«ûRùò”ÊW¦TN4åGO?>'œ‚¨pÏF*:ÍyÑ_݇íë~=Íyá§Á>Ä#(‰ÏBBT†ž:žŒÊÐSGüTT†ž:ʧ¢2ôÔQ<•¡§Ž'#ÂõÔ‘<mçLzäϰ>òüü¹Í«óéQÄç¯SD¹9³ˆrsæ+Êóç¥,Î_e}>=ªä|zTùù{®z†5V?ëËóûGÑù›.ŽÒó©Šœ=‹ÏǦë©ãÉø©gÖ‘ÆÏPGÖ_GúÔæÌ:ðt8s^²â|zäÏ0·y~þXòêü~ϰ>Šòü±à)uné3ÔQ¿õ3ð:aÎì0öäÙ@IJ:‰#‡ ðOqb ½êGØ÷†>¸¢Ääý¡¢!ˆUGÄ\ݯ^ _LnGãf5~l«íns?ÞÝ#ÞâPªÕ|¸%”±)£ŒMáÝÜ¿ŠÌ±aCÕ`\^X56dUQí}ÂÃ÷Følz ðaþ0ÑŸ?ûÍà³×Ÿ}±ÞLû[„¿Ñ_/6VFܨϾ¿¿Ù=Ü5泯ÛÕÛ~ȵß\1øìÅoÒŒ:Dc°óý 2 ¬µÛ[ÜR`&€%#¤1üuŠÐaˆ'Æxk×) •}±¶ÙÒ7¨ Á¼àë[ ñ5&¼¶†pÂæŒfNØJØŠáë‡y»ÅЇ£Åbm›|¿Ep²Èa|­)ÞúÒÆÿaÞ¬./Â#°¼³žqÕpál¸jÚÙœqùìv°—+3¼ßîì’-¶kÄ6Ü aiÞúÝd´k&‚á7×÷´9§¸àaofun_»ãmòzz‘À§›ºµ½³½ºh쎘ذê í 5ìÉ€w†7ϰ$>Ú Íˆ¶ÂTóÏp%¯"W$ ­›Û!^Dã*DHp˜¡IXJ>úcY !þÆöj´ÃÎ^²ÈD„ñK}Ër-NçÍ› êQY•ü Õb§Œ¦Î3ã!á ¾Í¢¼„£A){8šîšÍÕb´ †döÇ4 1½UcjTæÝþVV¾"ylMË.‹ ÄŠúg¾Úæí0àz~×õZ ¸%9­ÑÌËî ËŸ¢$³Ç²³áÿ†Ï^!ÓÒ%“4Ü4z¿½¹ E™%EÕ/R³e£7Ônu„ì¾âyEœUÖ礙€kw‹fv¸Ó`¸EÎ}^²Î1w3…Û Øy––‰ßF¡JGë¾¥J§b¤±LtzDä·“mÔd£ygºY/‰Dò3ê®G›¸BNäÇj‹¸ók"gVòYãª2ºª€Äݪ¬Œ2PT†ã?Ë1µ/î·-Rîšš*bPŸÿÔ+ܳÀ«5–¿¥¶_µ3’óŒ>SdFœeKNäáªó|P¶ º5Ä{”äÓËÃ.ãÚ< ·^"†µ\oPu‡MëL X÷ÙŽ5ÍòÝœ?ƒá¦oÉT0פ»*§0p4cà!>¶Ëžu•€6Ü.,ÉvÔxZ¨ÈIU*u@~´¨'?²³³”]>SýÿHù;äÆÐÉt0îÉt0SrñŠØ³al94Y1»&{p£Ö‰˜Q@ñî$ðGú-T}M"ÙJÁ8Ó GàOÝi³õ:%ËÁHXK;|óFòc4rx oþÅÅĨU‘G)0åí=™†&|Jõ§Ø®7x¾³X3ÚÚm4¡‹tÙËö‹;ßnjؾÿÆÌØ¿ÅÅ)K'@Ò·=Ü&¨ÐO1 ?MÌ?ZÛέ›C÷Yî-Œ ¾YiÙ5OÁVòëZÎÓ<#yS§bu(D|Å…3ß3}_¢­c$“-ŽffYMCFx˜É-²ƒvÄ⩽Ï1´ŽÍ:&›õ °Y'öŸ®Í:³õ'›õÏÉf·#{Μ(@K‚O9Q>åDù”åSN”O9QþÏȉ§Ö~N`æÁP씜(Yʉò)'ʧœ(?]N+´nFï¿ZØÍ·m3ÿô™ÝÖ£ÕlÑPÿ Ì?}†¦Ó½_6£‰þûCçï‡àePŸÝ[,|¡ Æ⟰Ì«©Ù9Ä:±!»À€§ÄÝé«ÕZÌ?9n`þI5©WðÉü§fùE˜"Ȱ@K; B;—V%©àRÑj“ û\Æö¹Nð®:+È[eŸ³Ì>§ôœ&ö9O19²Çw\Q>†䪪ÄÄ(VTZÖ5>Wø\Aùš ök«õÙs7ÅEjŸãŸsÐ’~Æà<*“ÁÕ^–ÒÇ>ØÏ>—ðL¥ÿ½Ä2jžÓ’>®¡PBã‰rh¹¦!@∞ëA̸"àog»M(ÑQšÃ8éƒ ˆTPE¡Ÿ£ ž¡«@슮=áã8­]v@³ÅHhûœDp-ŠDª’ f¡¤ç~/èãÄÎŒý§'j—ÔZj%ûL¿CïÊ {Wûxi C†û¶œÁÊŒ>(`þ3ìEZÂï4Ïi §”l&öOC€T±ðŒ †™ãÉ aµëؽ(ðú—>(ŠØUTT¥k ŒJßr™¤®KMTºZÒØp¥ZIC£1—…'FYŽHeí‰WÁô0Q-U=µm¿Ý4T8šM—i«a<5ÌÏs ž.¼ì ¯daÔ‘Ý8¼`ê¨p ©ŽÊÌ­°:‚]"`3¸ncz®ÝRµ¿¤²„ë—-­í|YxÑ×qš:ü½8Ke“Ô±ß<ö9q»Š_à4Ø2Ù†¶¢R¶§ýw%ÛÖ¶\»ýlÿp]À™Øn;Æ`ÇY ðã¯'±„)„ÅÔt•XOá‚A–d‰š «"0CYa¸¹‹ynú"¯izÀû!¥ßa{M!4–ó~šÄy‰‹¡¶k%ΉŸÕàm‘Ûå„Ï<ÓœgPžfÿÛe~©ažA²ÅçRjÐÇ0 YÅÏk†%³„º ,&å!À K¹5ü=â2¤ªáÑÍ'­] Iì[†{cé‘]ÃÔmpt* î¶C¬ÆËØlk1ñ-¤ELpûH£Ø²"XÙU#:1ÚQQ»Yˆ2ÌNñÆ02—é¬ÓZf¹ŽÜäƒWÇ‚ÖD;ÓÐb±ìFÖPEY!`iUÈYpÅU¼7bxLxQÖp–ɵg‚¬ç’Wª>ír\ýeÁÛÈŽ¸ÌK÷³ßDeVÉÞ’_([p{ö¹He‹–e";·äÝPA/xoǃŠSQ¨x›ÛõW%±° ËÞ…‹T´­¹TyI“ai_•±0£ŠRÀ â³ Xí\äh¸¡ ±ºšvpÀš9¬íXÍŒÔîˆ:£_m‡êœ–ФÎ3a»51QàÆuî˜t]¶{¡¦ùC¦Î‰›€×Ã1ÍG@]Fr2ÔH-<0ê2s9jÎÔÕô3;\Ž#®N©šæ/nNµºp‡w.ÅÐQ'1tfòøà(ÅaÓ ËÄ€ƒ—Iç1ÎÐAÍô„ó›ø&ëL|8írÍv'ÊtÀóBCE{d šl1h  ä ÃHRyI…Ï#`hq¡\SŠVÒB4$ÑúDñˆA”šJ/LÑG«dh=íú¹(ET£Íƒ\ÉRXôkµpç"VDŒÈmVi £4Yñ¹b&íw”>«Â ¥ÄPV%–",2C¢-¯<#bx*2?‚áSpYEü ¾ENHDAØDŽgŸí"Nh9¿ã12BNç•c©öœa^ ωãÁqáys ‚*òlø¸ôÌ<±8¡%ƒXÀÜÅE>è÷:æwŒ`EIóØŸ;Ø2ŸGØ#<§ w•0B®ÆÆ'Ž™OB¤ž†‰ÄG'/¯#GU>k‘Ú|ã,àÙlxz ƒ KT]t‰xAÌZÊKR{Å%©½â’F^qI#¯¸¤‘R\ÒÈ+.iä—4òŠKyÅ%”â’Æ^qIc¯¸¤±W\ÒØ+.i¬—4ö{-½ââ~/ñ§¸¤±R\ÒØ+.iì—4öìÀYqI#¥¸¤‘W\ÒÈ+.iä—4òŠK)Å%¼âÂù”Ã%µW\’Ú+.I­—¤öŠKR{Å%©½â’Ô^qIj¥¸$µW\’Ú+.Ií—¤öŠKR+Å%©½â’Ô^qIj¯¸$µW\$-žCòŽ'ùN-©3iÎ8×2~Ò%8¥«%Í).2´’†æ!ÄB$àíB<8¶…¨pš;jÃ1/ÓPá¼â"ÓûF¦öÌ3ʼPäà…’/Px!¡Ü"+ ^z(çð’Dñ‡—*JE¼„QX’µR/z®x3 ÌÅ›E1÷{ž¸]Å/¼âÂÛ=Þž(ÿñ¶E±Pö3Ê‹¼ÑQŒd€Ò%3:™a ,*œ…Tf1(»2ëA‘–YJºÌªa½VŠKRyÅ%©¼â’T^qI*¯¸$¥R\’Ò+.Ié—¤ôÂ}RzÅ%)•â’”^qIJ¯¸$¥W\’Â+.I¡—¤ðŠK’{Å%ɽâ’ä^qI2¥¸$™W\’Ì+.Iê—$õŠK’*Å%IÕØR¯¸$©W\’Ô+.Iª—$õŠK’xÅ%I¼â’$^qI¥¸`"™ÏØ«.Iìu—$òÊK)í%‰¼ú’D^I"¯À$‘×`’H©0Iäu˜¸öJL\{-&®½×J‰k¯È„æ¯Ê¸ßÑ| ”™¸öÚL\{u&®½>×^¡I"¥Ñ$‘Wi’Èë4I䕚$òZM)µ&‰¼^“D^±Ib¯Ù$±Wm’Xé6Iì•›$öÚM{õ&‰½~“ÄJÁIb¯á$±Wq’Øë8I앜$VZN{5'‰½ž“Ä^ÑIb¯é$±Rux…Ñ™{eG>À3,öê5ÀúŽ´Œ§aì5éjJCs: •3žÃ±W{„HxnÇ^ñ!¢²æ#ÔF öºLŒJ¦ ö M'«?2ϰqhL e^0(ÃÐBbˆWJ=Iäµ ^’lÞõz-a#a¯ Ñ¢ïѰì•!ú݈)Ú«C´ÝÄtí"ÞžlêV*ïg”1i£“ìÉ eRf («Ã`½ˆ9 J·ÄbHêeÖCÒpìu#bU¬É ƒ™!æFr¹0=˜Ia†0ÅÄ$Y;î k‚Ø*iÂna Ž‘Û*íHø6¬Fb褋£‡Õ+,k:X;’ö%¤Éƒ+,÷ÚI¬ÉY…^;’à [.½vD‡!kGrJâJ5¶ÒkGrÜ"-J¥ÉùŒÄ+½v$:R»òÚ ¬‘dð4툲ÊѼg±×޲ØkGYâµ£,ñÚQ–(í(K¼v”%^;ʯÙg§YÔkGYêµ£,õÚQ–zí(K½v”¥J;ÊR¿ûì³ÓŽÜï%~à´#[‘׎l N;²-;í(K=ŸÈR¯Ùn{íÈŽÓiGDÀœÈÆiGYâµ£,QÚ‘¥ªÓŽöW{í(‹½vdgÇkGYìµ£,öÚQ{í(‹½vdŸ½v”Å^;²ÏŽï#j ŸYìµ£,VÚQ{íÈ>;í(‹½vdŸv„ L´#yûK>€ý%Áþ’`¹–aƒI—`IWK›ÓŽdh% ÍkGB Ø_B$Ø_B<Ø_BTØ_ŽÚ°Ád*‚׎dÚ@âéIDæe^(»ðÂ@™† Ê:¼P’†Ò/=”šxI¢4ÅK¥,^Â(}ÉÚF¹Œ=Êk¼PŽãM‚òû=OÜ®â^;âmˆ$oO”,yÛ¢Ä)ûeQÞè„ì“xíˆÊ´Ì0PÖN‚R0³”Ž™õ ÔÌ, ¥ifU”é VÚQyíC¡X^Ï"¯e‘׎ÒZiGiíµ£´öÚQZ{ "­½v”ÖJ;Jk¯¥µ×ŽÒÚkGiåµ£´RÚQZyí(-½v”–^;JK¯¥…ÒŽÒÂkGiáµ£4÷Ú‘ÝëN;Js¥¥êÊ*ͽv”æ^;Js¯ٵ㵣4÷ÚQšyí(ͼvd¡ÓŽÒLiGv©:íÈ.6§¥©×ŽìÒvÚQš(íÈ2;§¥‰×ŽìJuÚQšxíÈ>{í(M¼vd7Ré5¯¥±×ŽÒXiGiìµ£Ðæàµ#÷;Ú(”v”Æ^;Jc¯Ù–coñÚQš(íÈŽÁiGvœN;²ãwÚ‘¥‹ÓŽÒDiGiâµ#KU§1.4ò¶4õÚQš*íÈNÓŽì³ÓŽÒÔkGöÙiGöøñÚ‘ýÃiGöÙiGöÙñó4õÚ‘}öÚ‘ýÃiGiêµ#»xœv”¦^;²Ï^;â†g½ ³J>€3L*‚³`íHZ†ÓºD§¤t5¥¡9툆ÆÚ‘ŒÎa"ÏB$`åB<8ω¨¬ µA i É@¦í©©×Žh:Y;’yFËlâµ#^dÉM¼vD ‰µ#^adN¼vÄK’mÈ^;¢%lÄêìµ#Zô+5Z¯½v”ÆJ;â]Å/¼vÄÛíæ^;¢mËÚïg²À'^;b@ûÄkGÄ0X;bNB¶ÿÄkGÌzPf–„R2±*ÖŽd…áÞμv$Läua†1Æ?+íH¸'ЄØ*iÂnASHÕýJš+íHø6¨ÄÐIF:Š@O:X;’¦ŽÒ‚äˆÁVz툎$ÖŽä¬ÂŠ*¯Éá†-×^;¢Ãµ#9%qµ[íµ#9n‘µÒŽä|FâÕ^;’¨-= @‘ÒŽH28®}$yJínD—ìâä4Ÿ4Wàìꮇøݦ†zα„Jqo{Ú§ÛÓGXØž »í}’4ü)¶ÂlþgûÿÁvâÒ¨JA²•D)í¦XáþôgpŽœèööZñ5/®î#ªR6A/?²*Ô)–:«&?ç~ìô|ÎØ©£«;¯Ã&èåÓ«B‰°Œ|¶Y|æ¼feê³Í–iþñc÷5/®î¼› —VÕIø@5%|¨ø™“)5ꔘp¡ŒÒL.ðï:áC=Á¤Kz.H@ÀoéÙHE§%|v–öu¿|_ÎHy) DŠ‘j)R=ˆú)€Ì‹)€ÏÍeäžTt"E }ݯç @‘y ™§>síEæ{€åû() À3~ÄßÒ³‘ŠNJ{’y „íë~=òÊS ¯<ð™kÏ+ß,ßGXQž‹<Éå[z6RÑ)ðí,;íë~= rE\Q W-åªy?’ÊSŸ :?ñÛ‚sýpE'Q WÚ×ýz d©§@–z à3׎" ÷Ë÷Q W Q—¹|KÏF*:…¾e§}ݯ砀Uאַã(€Ï\;®jî–ï£@¢(ωò´#ØC+:…¾e§}ݯg9 juÔê,¨Ï­/®œ†©: qÞ“$—oéÙHE'µ: ‚öu¿žƒUâ)P%žøÌµW‰ï–ï£@¡(€2Ëù‰{6RÑ)ðí,;íë~= '¬'¬Ç©'ªp¬VÀyØäžTt' Û×ýz ÔŠÔŠÔj¿ÕjÖø@®ø>táßâwq:¨Û×ýz <âÇ^Ò4ßÀÝd€¢/À- ÿñJª½JÞ-nïrz%y±_ ƒÔœ^I–õTB@3OèIÔS !^IÒ3F<½’ªo4yzqÖÛ‘§U’D½=yÚhʤì[k]º~lÖºü‰ˆÌ‘²wDÊÞ‘*{GúüéO“ý¼Ù#™ZóÌwŸ¹«Èf¸«ôüsJ¡½ß›°^æ~ôLJ<•éšžÒН™3ðJ+™oEµølXá2´Lö³dÅ䵕®–ª«¥êjv6AJßJùVRe†Q-~d+©²#¥ÊŽ”* M=;Ù1ïiÙ£G²ÉJW ÕÕBu5=› …j¥V­Ôª•âù R<}úî-ɪÈ]¥ç´Ûí$H¦¶®¶®¶vööÏÕöÏÕöÏÕöÏã³Ç’(ŠåŠb¹Krv+¹j¥R­Tª•ülŠ).”+.”+.”ŸÍ…rÅ… Å… Å…ò³¹P¡¸P¡¸P¡¸PÝŠÚÚ…ÚÚ…ÚÚEqv+ŠMŠM©šõ¸>¶µ÷Kµ÷Kµ÷‹³÷~©öK©öK©öKyö~)Õ~)Õ~)Õ~)ÏÞ/¥âc•âc•âcåÙ|¬R|¬R|¬R|¬:›UjïWjïWjïWgïýJíýZí}}T•Ï"ø‰˜œ)19ób²™ŸMðKPOÍŽg6Ý—û¤§¥êi©zš=OóþžÖ‡{š+šæŠ¦¹¢iþü4ÍA˜îéirŒ¨¥ï* šÜUz.»~6¢–ý]Ó#òV¤ºšª®¦¾«ªÛÏ*+÷u5{DV–®ª«…êjúü]Mtµ8ÒÕBuµV]­UW‹çïjq «Õ#7wÅDî*=—Ýn?[WëÛꈲä»Ç’®t5÷]UÝ~®®fÉ®Qc|÷X\–®Vª«ùów5?ÐÕäHW•I'W&ÅKu·Ÿ­«Õ®dV}<‰Jèiœ£'åç?'EæNØ´Âg,O¿kû8¹¯ÔÞ”q¼–¶n=b÷u/Ã6u_TûOºà.ÆÊ%(V.A±r Šós-bø/i¥ò­p^\¹çsZI”ý0QöÃDÙ“·ë$V·‰±ºMŒÕ­]¬nóâ·‰±¿I2òÁ)÷%±º5 ÛÑí?íÆèãÌω-ÂpýŠ1ÿ]ÙÝñ„0ªv儸ŒuzoÆg¬Ô»a>÷蟻Rï´ùÜÃOãŸ`øÏ]©÷M}îágéO0üç©ôã6zôؽOݯ{=)Å9ÔQUEÙ_EöÔìõqvVæyìF=¢3ŸÐä<Šr´Ò^ÅSû‘Vä?af{ŒöO¡j÷=u”O©£ê¯ã)ôH³óÇ’Eýu7¯ÞíÍ÷ãõn<§D£>Éüxx¿…oo1=¸dâƒtÓI\CFLɇ PÃÄõ×V5¸ ²òn/ÒÒÜ`8HÓ¤n8m¥N3Ë™AmM)š3öJâÐ)µ<óÍbþJœPÌ ,…üšæF§Þk8 `«ÜMƒô…”‘Ø„™+ÎŒ8Õ™›½Ìˆ-e0Ô‰Ãlˆ-gC̤RݽØbö@L†9sYá§”“&›i•s-̆sÛü 2‹a&ÚÝò€NV£e;Æ,›œ†žfzf8O<%QE2¦e—JŠXêìLR¶AH£—ÆõEÊåeË@6àùºÃ4Ò\^^L O.äXœLZXz˜t¼^AêN¢d~?o)#àÌÍcYTæ²8N$?2'Õõù…uÎa;dH”¼ÝqVbH\H雉]Ðf3¾ßQ–Õ…[©2š…ízqÏ;èl†ÓûÅ›(Î ÎÑ]R–gè%$ÓF"9½)!¢}…?ì\j\Þ•Ø)ØXSZ‰¶¥éð-t«¹ƒE ;1Q6%^Þí(ɪ Æ‹ý©!#­ädNýDè‚&/ä•7.ëjí© -«Œ²#»ð#Ÿ˜ÓŽki7CKäÝ]žkÛPãT ñù:#rÉæQ¹àÕR²RÞ@çXNkL‰kÏT»é/-÷ÖŒ&¬¾?·!0X™a]$ `VDIu(¯«/0’gøü§Ì늗AóºB'd –pïa :-¹wäE–„ÙU]0ç4®`Q`®Í™UÇÙ·@L˜ˆ±Ë“:ÿØû÷.GŽcOüûú§@Ϭ¦3»ëîñfÏE±®¸C=V”ØQ§*¢ˆR’U)Îýîk/w7D 3+“{Oé¤XÀÃÝüeö3ss3^9+@]K=gk“$È>lvGLÕºŽ9€e“u[Êàzèöô5î4Jë{±íÞ35®µÉzÀ•ëóÌÊ^]–²°Œ0ç67é3³‡M0ÜóÌ6Ã_›û²WC7ÿv;ßðþÉó¶$È6§ï¼à%Üȋ»+á"À™|:ø °—¥Á\Í·8ÖôÒ$m$þ}Oyœ1[òêbÓÍž¡K6ñYÙpZwCwó+„á³Û4™µ¤LF’WY ,óÏ$³‰›Iîä ËÈíÅîöx)©è•ü}!³µRüÕtH“º_Íq¶™¹ƒÃ˜ÄDÄ€ô"þíÓÔ×6“dÞ4ÉrMæ9žÎ»+”Yêîò{#ütt ^ôl‹ ¦ÁSSÔCÏiX1QÉÀ¢CO£§ý‚´U޽@³³ï^¾ß÷G¿DÌûõNã,·WGØÝ˜Õ}~ÀdÛ*=õŠòÐsf{Jo+ ­Ä@#ôÍ8? ¿3;³—UƒŠIC&¸^a¦ßçüHïþ¤¼Ìžãe‘^¤%.‚/ý4æ˜Ý;ÝÌœÏò”ÝÀ³Ÿa/|F$hg.ö0iýçð]ä8ØEæPXc¦dÊ©ŒUôÈšPhíößc¶g׸ .Âe‚Ja¹l0áϲT,\P~®É4·È!sµVâª&vñŽÐ´çÖ-·‰Ï×sŠ ì®[Ïf߉W›9£æ’{3;óÅïÿôÅo€aQÔQ A‡qÜf?F˜½§æ~uÛoß]€'à*ㆃ*¸É`šuA: CàŒªæŠÂ×߯:¿üЩÊwÈ7oö=ñ~‰> dúˆ¼@Œàþ¾E¶C¬’vœÊ7L¤a(¸ù Ky͈}¾š“~1_»½ PŸè4J†­Ãà2¹†&nñ‚R„CQÎ!΃gÝõþw¦R`¶ø‡p·}Õ¼r¯ ¥šš4ÛslÅBëfoî.ø Pßš7Ë8ž- ZA±eÍ6°¾þ­Û]—ÀѼ»XÁ‡î¸G y¼¼¾¸»¹<\à4æÏ <æÿæËÆáó)æçÚ©¼–ƒ¼ä+ãgaî50b1ôïTTC¡Ê¯Ž¬ƒö,8@×Fùr=_%-1”2–0Ú ÅÿjÓ©%ïõ¯ÅîÔ¹—ì®zL2MÌ'¢®Aávm¿ƒÅ„¢m¿è·ÐK0|( ø&L-¦vÇ®Q_Qÿ"^VbÙ$o/ý«¼F_pÚw­¸ k†e‹]!µ  U¨n³8D\b4¹;ñ8µqÏô$ :#˜rý ¶øŒ+À°ŒÄ ýõ•vJjŸ·”êþMb|ð„CÉn‹£ºÂÝå9ïxÎ »2¡—j"-½‚yaQUwasÚ¯¦Ä°UDö aÑV¢C õs¿?¦ó–I^Â[½Š:–$¼Šà‡¸ŽRÊìö«ù¶ÿ;a5.”À­d(R9Ø~涇-û‹_üa¾ê>NæOÝS¿ƒ½%)Í|Â-^ßìw ˜¸Ù{4`jú™|sñk`v€…`Ý|µæùÿæN°Ž¹îùGJЉ¿ú‡‹<³ö²û'¥Åܺ™dÖ5iÊÜxRªbNö,u&éTg˜—ÇI Øúz÷Þ„t¸ýòß‘Jø·Ûºä¹_2k£!éì'³ÿu¢ØÓbãµMña4n¾ªòI³`¨µAå\‰¿¤*Åúi²Ù/7›3úçŽòÿòvÿaVÀÒ€‡»™+à¥_îß÷³_¨ù·~ñ JÞé ªŸÍÿsù?¯;÷ª»9˜_ü‡?|óòóÅîm÷Ò½Êf_þá›7ø/ý©?n`]ްÄáã¨9ìöŸ¡íÖ-ºfßòB˜å¯ÜŒ@ç¦û¡ÛÌ _~û5lÏf¿…B¿ßÍfùÌ–Ÿåùg˜d|ƒÞ = á/ßîw›W›ùÛ}ÿj¹Ÿ]¼Lyµë³?|ùõ×_þÛ¿úÝW—Ø™ÝíHZýj÷á3šTÊÇÜ4ðÓoç«m¿ì¯¨ñÏ8QzÆæä/vרùƒ$?¥éƒ™>`šÓAUõù5%x•\¬7·GJ0ýS{ǨAòé“ÄîS ÉÓr“yÝCZ÷{2Ùçi¹ÉúŠ˜ûl}eZn²¾Ê—»‡¾:-7Y_3¿‰¬êí°ÜT*ù“ ™J%ÏùÜ)U9æ'›¤Ðºaºû©‚ù0ÝýTÁb˜î~ª`9lzbtl5lzjxêaÓSÃÓ ÓÝOÑØÓÝO­ìl˜î~ª 6=Ñkç†MOôÚåæ'zíhf8ѽ=7…Žf†Ý»ò\AšNtŸ7ç Öq–á¿c›X ÀÿŽlcA&ÿ;ÆK²X°iüÇ ZU°˜èŒA‡hÀD4€R‹¥9qqNAOÌ<ù€Åäc <°0/óêJ÷ªž…|éFN!E óföcx[w [Î~ìvK@;úÛÕ~öc€úûÃŒAM’Á}>ûqøÝ ޼¿™ýÈ]Ñ_^Ï~äaH*€o÷§_og?J¯ (…üîû”¬5| )ùnsEé鑈«ùMúÓ»ðÓ»]¿M{~;ÉR3M¿ú\îI7vGèÇî8H`@2pj’/TÍb~Hê_ y`˜_Rñ“¯¯–R÷É/ïi˜9œôáóVNòàΩœõI^züÝ2],¾°~¾Xüt…y«Á+zê“T«š±‚äSÒ.þ:ØÅZ•ëèæ_^‡ìõDe½­“ÛÇoïöó…þüaðù.ù1©ö–€/bÒ!ùŠÊ| æê¤†`!O±3MŒ§´ó/˜Q `r{z2ÿòï̸.€žý8Àˆ³×â¿pÄóÊop•ÏHå7ùu_`!ï&E…A aÒXlËX—×=”ßôðA/ùw¾sseÉV"/éßÕù…ùÅìM¿šíÞ¾ë®Ð¯µï÷ôõ½/U×aKt?ÙçxÇ[Ð%¥o§¸eÎ…$êµÃ|çUKñµmSÁ3—±˜»â8â5åÝä\5%þ*):7mI¡Ðkk)O'ÅÔ¶˜÷¨,$Hf‹É<9Ý zaH–êš—œž…2—?cNx‰l]g˜#D☺ àÔu†yà9 e9L5ÊÝÉ0W|‘ÙUÛÂË9¯0²·åØéåÎmMϘŒÚ5|#PŠEwz9Þ©HÎùQ5”ƒ5£ŠšHå¼Uƒ¹â3s_áa‡”®(Á1Å2¯0m[ð›p6|›åühŽøšÞk(²<<¶’›— ù¶ž5®–÷|çªn1Å3EÓ¬a´9An…ÿÔ \—מÂ÷q8¿ sÞÓ×ðˆ)¥¥0Tê«€>SÅð^Õ–¾=L¢JdÀcÓxâ0¾LÙKPÜuzäDîTB£Âlº…<:8|³(óxV¸0iœá¹Œã_QŠqž— óÈÑ|Ž,à'²lh†©keE3_Ñ3f°Ë?c–;ÉP•–rÝ™¸>mAAà+\Ÿ¶à¾MáÓÞV&ó*ꊃ£Rn\&»ÀÌ^¼ÂásàÒvªŠ2äm‡gÔ°9š|Uø¸¯0µ€-yáB·%/j$ÆVR)î¹JÖCŽû¬¢¨ù¦$°:& °5‡¯ð6*pç#.XÉuàЦ^9Ü ·æ,f3ã@­¤-'­ˆUPbkx™²òrdõÊ"Ÿiy9s6¿–"Ñ"G€ ¡J%kX†i±2Ë?P¦>Ë/PÖ6Ç.(ï/8J…˜åòrVøädeK-ÐÂ(%›_ÎÏä¹Uûˆþ Z•Q:;ŠW_e”Áû™•ôÌ/Pf3J!Se”„Îòh[_°”`·¦ r–² T˜Î@.¿U˜…Àe²•Ы˓ä(ñšŒ¶Ã± Þ ³@é©eGÙ9ÛKE¹ð²²äùÄ‘d&… #'R­0S³ã¡°x(ýa.Ëk¢ðûÍ–BŸá3&-ó;ÌÖ>-í6x®…P¾¸Š™D¦ª.è{f”Ž×y]gòŒl§Éâ*Dca…Yf깉/76¾Ðäª ·ÜðB"Š®”Ië|P ¾o5®@é3]Ç“±áåÇÅ eØäX–òRâƒÚEËV¢‚ó†aò 'YjGÓÀÒ “jË’¬)ÍaÆ.§Œ”œ—e•_$uޤ2s«sœ6Kêû&   Ê‘H3R¼ Yz˜ Ž×m]TôL¤”Ö<‘åYSúGÉ‘X—¸¶³Z~hüjƒg‹‚[nqñP¦®TÄ`]Ôµ_$u÷v]ÐJÊøû¢ôÌ .(¨ô™˜[K÷_aQQ.P"¯ÄZNO\#›¶œ ¯BVÅ£#¬iŠæì.ÉR‚K®È\rEà’+³ÂÃ%ÇÙ5.¹’…Á%WÒ–&¸ä89Á%W¹ÊÃ%Wñø!‹pUá’«8g Â%WÕµ‡KŽÙ8Á%ÆÃ%àØM€K®v.Iú@‚K’2à’«ë—\ÍX‹à’kx¯SšÈ†™ çnr—\ë\ržï·1Ú Á¥»&à(IàÃÏ4RH ¡”¼Šò÷äuS~´MIVâï~zMùiC4ÅÓ)hÊÏ3¢INhÊ 8@4å]ˆ¦\Ãz¡)×ë"4åjÁ1(Æjî3¢)X¶­GS®æa„¦\mš’ @hJriš’ ChÊUUDS°ÅœGS®âV;®`:ÌâZJ¥¸%KY$ˆ¦\ɨÑ”c­…Д+ë š†Ñx4Å×ÑMIòQBSŽ“íšr?M9W4å¼BY<‹ÈÂñ:—ü©MYž*bV¡)Û´MÙ&¢)ÛD4eyåqb骈hÊ–y@S¼0MYW4e™¢S4ŹóMqeFSsBSœ3–Ñ}ïÑ”¼@}ÎÚˆ¦²vMYÙU–bД•ÑF¦Çù"MYJZÅhJ2Ô2š²EDSœ‰˜Ñ§”b4Å©MI67^«–²1šâT·Œ¦ü³4#6 )+}&4e›" )™*BS–Ç‚sCó:'4EÏMùUˆÆÂk“™znâË/šòÏ4HÜrà )¢)¢Ô£)+’ gó"4%¹¶²˜XšÑ”ådƒŒ¦lU4ÅYMÙ2¢)ÉòEhŠV¡GS–…¡)^’Œ¦¬‹hJÀ¡)Y$Œ¦˜¹1šÊÚ< )_Cñ" )ZªMñºe4•5Mñš?ES¤x4ÅéIMñjc4ÅɱMYÆ: Ñê&¢)+$ŽÍhŠ6½ )f„¦€ITM÷¨<šrŽñ¢)çJëÑl”Ú£)(bšr”çóÁhŠöÝÝ¿f^Ÿ3ê„}Ң÷¤I”±ÐDy™ d/p PöjÜXÁ Öepy·¬vcر̕qFÛŒ¹/Þóh8(°è*`LµF— èñ(¿¸f– ¹Åò"ÌÓæš-à ø2ë;å5©p¸\ÍÝqÈ•HŒ!3¡Ì9ërØZ‰í<¾«0©«rac[áû1¯VE¨±`þŽ>]®(Es®PÊ0{‡^¹\Œ,YEy°™¿SêkaÑ80N¸2²4Nî'ßsÎÔ sc:_ô²cì‚jŒsYž9jE©¿m]ËË!5}•‘ÖÁB“%Ã2ô Úµ¥Ìì^â„MBØÿ€¹Î¿P"Ú”ŠÊ–¶tA/—-­ûŠ_¦<ð5‹(âD*<×¾ òÌj â<±ò,r Õ,÷p?ðàÁ³“AÅ—Q²ðh—-®[N 3¦§l½ó´• åoÛ#þ‡eK-×Å\Å/S¾o&»FŽË ¬)õwÅ•Òú¯å9ÇÄ9oª_ ¤TV¸ZZa%:»–Ö| 2 Á!UŠº ]›¡—1É$+%æ|ÊÙ6Q"òÊÙàQ–¨A0ë¦<1>»#%‡E­”ˆ”[+(‹)Ù,K¼È˜SÞcŒåD@™_Î[Ҩ弦Ԙ´ï̦ 9È0$Çf™S²RNÄY¢½˜"ÿ…Œž%2IûY:Ê\Ê+‰ Ä/»’Ô þ[…€´ƒœŸsÔ¸LÐ,ðeÌVY°1 Ó‰SAÏÜGÏ wÁÉ÷Hv¥^¨)™.‘Š—0ò‚¤lIÙJ ‰‰ë(É.ï*üד„ïÁ36j…ãѦŠ,O!ŽvÁB£,‰ŒŒóQÚKâaeÅ*/JJÚÈBÂAe@Dk5Ïk^Ï”¡´æÔK¨‹ÈCX³ÐúÝæ®–”–8'd£ SE=s6lgœ–£ËäÙPžÅrU¨(âs©Ê”z¹R/4ªP[…–­ ‰h+Ë• v­}PJ¾o¦ù–>“j!cAêÊ*J2˲ÀD¤9ÿ‚(bÔÌSÅæâ’ 'P… ?°pÃ’²$+<ÚÉùd”=Ò‚ÇÒÊ+ä,I™TÑê»?-±-š}­,U¾_·|ó‚¦Î+¿æS5›¨‹oMkÛÉ_mðŒcÁò ÐŽ… •z) xÒ/’ªŽ{”ôÊ']ºFËÓ÷™ë äq´ÅDŠÙ‡¨Í–ò$ó@’..jFI©kÛÇØ¦š,¢)MÕmDSœ—ÑTÝF4U· MÕmDSuÑTÝD4U7MÕBSuÑTÝD4U7MÕMDSu£ÐTÝD4U×MÕuDSuÑT]+4U×MÕuDSuÑH¿€¦êJ¡)Ê8è³¢VMÕUDSuÑT]*4U—MÕeDSðÐ<4%ß3š‚MñËŒ¦ê2¢)~fˆR— Mq­Œiê2¢)XÝMÕeDS \D4•¨ EDSuÑT]D4U M‰Á-MÕEDSuÑ”<{£oDSòLhJ Õbè hª.šèÐT]D4UMÕyDSu®ÐZöóœG4UçMâÐp€ˆ¦jÑ[MÕ.¢©ÚE4ø)¢©ÚE4Åú«lÑTí"š‚爦jÑTm#šªmDSµhª¶ MÕ6¢©ÚF4Eª¶ ©:‹hŠÔñ+;‹hªj#šªÚˆ¦ª6¢©ªUhªj"šªšˆ¦ª&¢)²"xÚ(4EfÏq›ˆ¦ØîÊhªª#šªj…¦ª:¢)àïMUuDSUÑ” $4ò(Y"š*šªšˆ¦ªF¡©ª©Ô MÁX4UµMGŠh F2 ©ªhªj#šªÚˆ¦€ÃE4UgMÕYDSµhª¶MÕV¡)Z«‚¦è”CDG4UçMÑnóhª."š"ƒ‡LU]D4pO]*4U—MÁ³*ÑT]–ªŒBSÀzÕ *ÑT]E4UW MÕUDS %š0ÐTÝD4U7 MÁ* hªn#šâ ôŒ¦ê6¢)Î/hªÉ"šj²ˆ¦š,¢©&‹hª± M56¢©ÆF4ÅYÊMqêóB²´+4ÕØˆ¦` 4Õ¸ˆ¦š¨ZàsDSÀÊšj\DS‹h d{@S\©HÉÆE4Õ¸¸·ÑPÐTcšjlDShª±MQÒuASM¦ÐT“=M=s6öà:sͶŠy8¼e¿§ìh›…3c´®w6¥EhäZ w“´r_zçÚh îM=Áïð³ôæ¾÷9LžL¼ó) ü§,ð?QøŠçrªKöb~æå2O™÷X³Ï_µO'Ø$T>. +>«ý–«}˜OpB«8¡Àù]±'ð‡‡ñ\ñ¤}M×s¬Z@­F V-ÕŠ‚zbJÅø¹KSxÔÃF V#¶¯ézŽh”4l”4l”Ôi”4j&¤a©d?×uéßågÉÿ°h”4LÛ×t=Ç”eät„(| ,ã~£9•}X–ã|€0€ðz®KÆex6¾¢á2ò´}M×ó "5Š–Šã”Š•œö¾ÉÍ‘ùwkÑ!ʇsÂRq´}M×ópÂ8ÌYxèYjgNÄPù1TÜ(TŒÏuÁˆ(Ïž¶ã„qÒö5]Ï2™L@¦ZÊÙÄ”jhåKÖÖ¬ŒÙ¥¢‡aB5Iûš®çZ­Z­Zu­æ žX¥ÒŒxå×|] Ï^´“qÒö5]Ï1ââÚoÚ‡Í(Õ`îÇ'xôn-7‰š‡óFñ´}M×sŒ@«´ãViÇ­ÒB[¥¶Úq©ø=Óª¼ËÏÆWôh•vœ¶¯ézŽ`œÍ#À8›G€ž¥vÆåL•B¡bz®ÅZ„g¯´Ó â¤íkºžE–Ê>P*û@©ôðRéçå8"¢^ "¢çŠmªü®KùÃÃ쥲$íkºƒˆbl¦“T{XUócœb`¯$züùJš“J~ؼÝ`®‡WR§•t›Ýã*!+ø ’ínñ¸î4c„\¿Q‡-F y\%tí”’Çõ¦«„#õ>¼’ª]&«¤™‰ÿû 9l9uPÃÆôLYÿ3eýÏ•õ?ά”Çl$·ƒ;“—–ÈPçê˜BR´ÏNfs_‹S* •ß±PùK•ß±|J~ÇX³$¾ö­±ÕâǶR¨VjÕJ­Z)žÜJ[¡Õ'­p:d;lñ#[¡õë[©T+Ul…³ÛçÏj<’ ÅÝ“+Ú“š+RsEjöÔ)ÔB-ÕB-ÕB-šgÎG›=*yv©V{©V{©V{iŸTNIž=*#u©¶L©¶L©¶LY~JZ•JZ•JZÏ/­ŠæñÛªTÒªTÒªTÒª|~iUÚÇj©¤U©¤U©¤Uù1ÒêI+•4•4eýÔV*%#*%#*%#ªìÉ­(ö^)ö^)ö^åOnEqæJqæJqæªzr+Š©ÖŠ©ÖŠ©VíS[©?¬?¬?¬Ý“[Q¬¬V¬¬V¬¬.ŸÜŠâBâBâBuóÔVÅ@Å@Å@ûäVÔÞoÔÞoÔÞož¼÷µ÷[µ÷µCyóä½Í‚d¼ÝµUv×êDíÊ^5åà|ñ\#ml„¸4BϾ‘ö‰ÄŠ=øFJeÛuOm¤T4ª‘F5R>u¸*eaj•…©U¦êDkÿˆ9ñGõ.6ÂÏõ°Á'̉o¤T”ÊåžÚH©iT#j¤|b#¤Ï[ukƪ[3VÝš±åv#× Ò¬:Hsê ÍÙ§¶â”Ü)#¸SFp÷ñ&ÝŶѹ¶ѹ‚ŸÙqœ¨Å¹ËŸ:WØè\aä…9QÄú®íèöŸÇ½<öÔ)ÇZ§XrluŽµÎ©žº‡;Ð:å@›¶£Û\O?îôÝAÉ+0¼%‰q-Ƹ¦Ý2£‹m3‡à‹Í¨êõUÈç¬Â8ŒhøŒ•Ò½èç®4Ü<}ÞÞg»=cÒx]ö¹‡ô¹+^Ÿ\éÇmÊì>3°‘#Õԫ缕Ò×áSG9^Gù˜:šñ:šGÔ‘Ûñ:ÚGÔAc:vòØ1©£|옎ÔÑ^Gñ˜:ª§GÝ>}<÷ôñh&Öiõ˜:šgZOÜ.-EÜmŸ´ÄŠñ:3¤%NK^>i‰ÑpŒÔQ>jy`Ä›òIS›×ã¢!{DEö uäÏPGõô:hP6÷mÖŠ2KdÍùC {+‘¬ï;K¾1`H- (öï>9QÉýƒé³Æ™ýÁ`GÌm8±Ïâlf¿ÄW8Å3žtCëE9›cªò7TÍ%ŒÁÛ —}vYcºüõn4ëµ ¿Ïgñq<óõýE§²_sß^¹l2ÿµ¯ÐP'¾™_ßl0];æs¿\]Ì·˜ ½?b^õEw¸Ú÷7˜å™òºcvõµyóþbÓ¿ýæjw¼‚°Ÿzý@ùàa%Â?[ÌÛPBz¼~hî.¶PH¥ž§œëße¶ØŽ˜}Z^_t›ÆÊ«±7ÌÅf~8¾º„^¼½øjËÿÛ/ºýewqÜ]öóÍf¯¼‡:—”z~q·_÷WPû¾{IYè)Ëõ¹ß®^ÀwPIw}s¤>®*€Æ‹~ /¯öÝÝw—ÐÊ{ûÃåÖ\tP–HƒÂ=”:tû#u‹¾<[úêü€ùÞ·«882܆†C¦Þ©†/¯° èô±¿¢Ä÷E3+0çÝÙlåhÉI³•çå#²•çÿÿ’­ÇáS¶òOÙÊ?e+ÿ”­üS¶òÿų•#3O>|ÊVþ)[ù§l埲•ÊVþÎVþ)aÔ§„QŸF}Jõ)aÔ§„QŸF}Jõ)aÔ§„QŸF}Jõ)aÔ§„QŸF}Jõ)aÔ§„QÿЄQÉ=S;%Û¦ð¡ (¦âõÇð †ÎIÔ eCUÉs.ÏÆ ù&Ïlðà缌ϾR¬(wò2¶P¨–,EI7B)Çe‡çF¤¾ÜÄáB(߯þ¬Ž3&®`ƒÐàïQÈ´ ³1O€™9Â,{H Ì@‘emð±u¹gxÙÊ KYMÑŠ!H^vlä!Ôíêl“C­­Å‰ýÇÅz£- J²©¨gC-ÂL+Ö_•É.CÅ'ó-£Ú5b iñ™-»}Ï­áfØš±LËûÿբ†|k–Ès–Hïg±Vad@vFÛòRÅ}ŸsžR?B€xË>bq¤œT(&5¯é{žóš¾¯Ãq˜S­þ‡*¾@‰ÅÆY`ÿii¹ Z™$º&¤–¨ÈX¤Zæ*%Q”óË%µÀµÂ5̸¼ªh %ÄAG»B•;#”¼ÑqÁdU°SÀséÙ<3ÊižmL,R¶azêª †úºÂ%)/W^Ù#ÔŒ›A:.ÇÆºèJçyµ~V#‡qðmÔüriFn+Ïb].ìG;#pR‡SÄÜ·d[„~ŠÁ‡]Q÷DE^˜$ÎN‰ ˜‡ŒwâA“G@ÐäQv7y ê¯ìü?óÀòs^Æg_i·P¨–k©(¢TACZ§‚µe€÷€ ¡û‹eáµ®Ú6‚V‚ÖF@ÐÔ | €!¨µ¨¦x@€À9¬ŸB‚J”oŽ'€€@€ÌŽÏuÑô,€ h&A©A¥’êAí" 5Í‚ÆÅÖš&<ÚB‚¶€ Q€ É" Àió€s¸< hA hË hê&‚V‚Ö¶ÐI—üÊ:o@ТUÌ‚¶m< Óx@`²ò€6«ó€ ¦“>€rj4Q ½V<×*Í 4e= å7‚Y›àÔ×¼‚šD‚µ 5²sˆE0¥jÇ?Öœ›Â‚W¦Тj´{x@P£$€ &ñÀ ÎIð·¢j@PX,ר4  d0ÖÊ‚šÐXòÔÈ ž.€žk/¢S !ŠñÌ·Ü@µZj´o `Ë( Ô@ý)‚­‘ûéûA“­‘ [d§@£Úz@À£Í€f!HÙÚ¹ }yÚD,ƒ òš,!"Ç¢ù^#"÷k‚hàC«~(â Y@uÖÄYÈ ¨31 Þ÷€ % *V¡"‚–(@ÐR ÐÎîACSÈB³©ÂhÃ>/" #¼‚Œä$4 TÕ  @+@@˜Æ£ §.É á5 vó€Ÿd ÷€UbjÓx@€£í‚¦  ~ A'€€ 1g&Žk«,ˆe[Ê€Ã8Ù2[ð³ êøs_~®Êøì+ÅŠätLZP-»ÚØ&¹–sV °¹àz°Èr¬ 2Ž“uMÖ•ÖÙ<kEê´V„#Ì„íµ™ó€Àfâ‚€Àfò웉ì†.Âzk½”m›Êã¶*h ëÑ@+êjÚÜcÆcÌvÖ 4.ÿº ˜]&Ô•ó( V  öØ~Už¸º  –óIè^ÝäAþûF`Q‹cJœ'¨†%0Ê~"YDÓ4^ò‹Ë.c6ôÓì´eíÅ~+&ošñŒS”ú6ce¥¾µŒCPê[Ë  QnDêÃ,^ê[ÑjQê[±à£Ô·96jɦ,Rß"o3|æC”úú¬—úVÄ*J}[´QêÛ2s^êÛ’¥J}X̹—ú ·‚Ô·xÖå¥>l…ÜK}[ ö€`?:/õmÅ ¥>ìÙ*H}[‰-Ø‘P‚<ÛòB ñ!AzHê[Y/õmí¡² “HêÛ¶Rß¶Uú¶­« õmË¢¥>ú(õ3>¶$©/§6$õ31ó“Ô—s[’ú™‹R?!ŽR_²ˆ‘ÔÇ R?+Û õ3 (õ3¦èDê[ß2Ú:H}k› õ-ÕòùŸ‘Ô÷§$õ ø~òÈ“ÔÏøà¤>Ë!–ú8¿Aêgr`†\?ãsN’ú£>’úY¥~æ”Ô—A"©ŸÙ*HýÌAêgr¨†R?“ÓF’úá‡"¾@qE$õ¥’ú¾e’úLKýÌí`ÿ‹(õ³2J}’É^êgl#©Ÿ SJ}m–ú$Ÿ½Ô·¢@LÌ£4´y”úbt!©om;.õ3ÑŸr"µ ’Þ3mzΚ õ­gÛ9m€ÊK}Øg˶õæÛ 7O”ú¶Rߊ†Š|Õ6Âcq·5QêÛÆµAêÃ^ èÆŠÏ%I³ZN‘%ÕÂ$2lÀ<î\ÀK}4¼z©Öy/ Q?ñRÍù^꣙?H}ùPÇÄ¡„ž«2>ûJ‹(õ¥Õ²«ý¹€—úD©H}<RϼÔÇs/õÑ\â¥>ž x©çQêg6JýLIý¬RÊ©ì"J}q/õ’ú®RäAX>U”úE”ú°’¼Ô ½ÔGQï¤R˜†—úÐe/ñQ¤~éF¥~¥~¥>祾k‚Ô‡ ¤>°D߈R¸—úÐM/õa­©ÐJ¤~¥>Z³dŸàìˆÔGë¿—ú4ã"õÑøï¥>ÿ½ÔGã¿—ú•–ú(-½ÔGã¿—ú¨{©Æ/õÑø¤>Êl‘údü©OÆ‘údü©OÆ/õÉø/RŸŒÿ"õÉø/RŸŒÿ"õÉøï¥>ÿEê“ñ_¤>ÿEê“ñ_¤>ÿ½Ô'ã¿H}2þ‹Ô'ã¿H}²"Û&ÿ½Ô'ã¿H}2G‹Ô'ã¿H}2þ‹Ô'ã¿—údü©OÆ‘úlüg©ÏÆ–úlü©ÏÆñ}Ï¢@cã&¶|ºøÊYÉø/RŸÿ,õÙø/ö:2þ³Ô?5þ[ß² RŸÿ,õÙøÏRŸÿ"‡Èø<¶ÉjÐVÁø/BŒ,."VÈø/Ú'ÿEê³ñŸ¥>ÿYê³ñ_D)ÿEÄæJê³ñ_‰Œÿ,¬ÙøÏBœÿ,ÜÙø/RŸÿá‡*¾ÐøÀÆi PRŸÿBÿ…T2þ‹Ô'ã¿H}2þ{©OÆ‘údü—;1þËh“ñßK}2þ‹Ô'ã¿H}2Š{©o•Ô'£Ñ˜Ô§©_)©OÀÅC†FIýªŠR¿rQê—u”ú¥R¿(”ÔGå¶Æÿ õ©»­‰Æÿ(õ‘ ‰ÔÇ~z©OÒ¬öŽ™EúhüÔÿ¨ˆe6••0n°k¹É i ï‹ÝÌïðs°Ò*‡×ûÞçLˆFE§;ûNt,¿NÈL|lK2`¥·‰¤ Ê$oœ ¼]*£JǨzúzÓuÚz/‡I|çZ«:&iä¾èª•&V÷QKËM,­Ù_`å_áÿ³Ã"ä¿TæŠÂ\Q˜OP8ûË_ñ"ØB·wÒJ¬ƒµÆê>¢*E°I¨üȪ Ç·Pq| Ç·(ŸÚwnÅèêžF°I¨üˆªœ [ð-®Mù SïÚ3«óa-ÅÊqT…O$Û¤¤Þ[Yœ7Wy¾s•ç;Wù´s•g;ŸÈóíT®wz®y Ñ»µ`çüáy¾s•ç;m_Óõ,Y®UxâR…'.UxàR… .'•,×ôL· ý»þ¢ÕÃ×*lqÚ¾¦ë94ó¼óðzààg®ç€)àò#šË8ô\åq T¹^ÕÃÖ@´}M×sŒ@[«l÷µÊv_«¬òµÊ6_ï«r½ó3Ë\z·™)=(Û}­²Ý'íkºžcp¯y ðhðàg_¦€ç€Ëì«v=W®ôïò³êa#×@Ú¾¦ë9Ö@Ǩó8ü̵ÓU¡€ËŸŽ@©v?·®ôïò³Ü©xØÄv®íkºžcÅ Å Åqʼnš NH×oýÐsãý¢ý³‘Š4â„iûš®ç²Œ|€îÄ  gÙc4§²©ü þï³UàsÍ6Ez—Ÿ¯èA² Œ| m_Óõ|ÀfmøÇ€?Hð!RÁïŒ ƒUÃ@ϤîËÛèþ¾®e-ˆM]Ÿ‘÷ƒQäq,Š<=KíEi òcà¨QàŸk>€§wùÙøŠ2 ±ëAûš®gL@¦F S-eŠ‚lbJ5´ \]úwùÙøŠ4™¤}M×sŒ@­Ö@­Ö@­ÆºVsPO¬Rdz®ë(øÙ‹…öab!Ž@Ú¾¦ë9F€Ù,³Yz–Ú™-3T~lÔ`FÈÖbz—Ÿ½Xh&â¤íkºž)%©UJR«”‘V))í„’T*>@Ït=XÞågã+z8RJRÚ¾¦ë9F *âTEz–ÚÉ +Pù‘(@¦çšwz·ó‚Tôˆí\Ú×t=ÏDpÄ£QIPB˜‚RüÜ'À‘SàˆVmG ÊôTŽÒö5]ÏŽ”¢\*E¹T i©Õr|Š˜±ˆŸ«¬àˆŸ=8z˜¢\*E9i_Óõ,j¢R”[¥(·J!m•¢ÚÚ{s6É3yéÝRL³íÃåV)Êiûš®çÆ<Œ xø™kgyÌpùSRè¹r.à~öx zˆ#¶¯ézްN ø ²Sl>(lê&B^+€L¦û¶ÌÂÛüÁ„º’ C"òžI[PYÌ2Æ,ÓyÄ2`,›ÈdFàMô,i×èíRò®I]Õµ•äl@DBÞ³ðG…“J…“J…GJ…SÊ œDˆÞËHB‡%óGž½!ñaÊ£ÂIiûš®gYN1HÙ(²œbE²,e&Ü“,*%&虯çðÛü!ìê{C-‡ yÏÂ(r¥;ÁÅ(r¥¥ÀµGó ý‰À¯ |®ùÌß®åôÐ×õ ÁÈ• 5$"!ï1+ãõ»Û}ßíG2Ð…`ìiš€n±ê¶o÷iÂó•4'•ü°y»9Îß>¢’¢8­¤ÛìW‰«N+ÙîëN3FÈõÛùáuØb”ÇUB®§”<®7åX%ûããÆµjF—Éã*iF&§Û.†•|lÖ¸rÊe#%]i³áÒ³dÃ¥2åSÒ•Æš¯9#©o¥V­On¥V‰3•9S­ÔOm%ÏU+•j¥R™óhåžä<èÚ1–×ÏMg¸é¯™!µ´*Õqóì¤Í©ù4©¥Z‡¥Z‡¥Z‡¥}vRK;Aju†Tµ˜Kµ˜Kµ˜ËâùI-&Hm§I¥ëí˜EÌ«ÌÏuÜÝMýÔÝí[©U+µj¥xr+µJ©©”Ú™j¥~j+´s}+•j¥R9µóhå»{$]Õ¹-eËîRK«’f7ÏN*íî1R«{v·'U­ÃR­ÃÒ>;©´»ÇHmïÙÝžTµ˜Kµ˜ËâùI-ÆIugØ{©vD¥vD¥vDY??©õ©å=¤ Ϭ”h®”h.ëçç™õ8Ï<7ªÿˆÔêÿÐ4ñÿ˜”÷Ú[2¶¡<Û§ò~ñz#~/4?·‘÷Wís.‡Ëg,Ïí®L‚“Ú*R•—yVRój‚Ôâ®,¤KRù¹\ùyI%®üXR Ej­H­©ÅGzÊ¥¤•J-³J-³²~j+±ækv3ó­ä±ÕâǶ’«V*ÕJ¥ZÉŸÜŠZí•Zí•ZíUõÔVêèŠÊ§nÒ ?·Y¸ú´VJÕJ£ZiT+å“[Q¾åò-o”oyÝ<µ•FmíFmíFmíÆ>¹µ+µ+µ+›'ïÊFíÊVíÊVíÊæÉ»²U»²U»²U»²Íž¶Ù3´Ó̰U[»U[»U[»}òÖ¶Êxà”ñ@Yƒ¸ÌóB6;a<8‡.­Ò„œÒ„”j+eêg'u ×gàòß/”û~¡\âóöùáAûx$Óê«™¾j)bÛç'¶mZ%ˆZ%ˆyz<©ÕG Ä6n,švÙXôì ˆíÉÆÊ^5åà㜣[‚*–-ÁÏul$Ýk„/õdêR¦n!åêRþìû.w'ƒžŸ±@D{ðµ²à&–Zm'~¶}—Mp³úR½ *W&¨\M]öü&¨lœ›åöeÇj«FµU£Z=ÿ¨Vã£z/©~T[5ª­ÕêùGµšÕsâ,sšó–šó*Ä«Ùð³m­ÌM0´s“LaZk¨•žÞæ' ·y<~R$"½…¦WácMüÇb([è–jÝR­[*ždè”õ±3iÖF[Q¤×ešÞú' wÊØ’1;%JK%JKuÀåžzâW¨íX¨ÝX¨ÍXÿ¨–"¬9ÃH\¦I®I®ï)?ÙÎ¥*Ç–*ÝR¥[zºBì*ÝR«[juKO¶wUJóª•â¥l\ÚÂö±Fu%‚NÉ@÷üæ_g/±£NIQeó×d?©!Bsµðsµîsµìó'¯ú\-ú\­yu² [|ÖcêGÊh`¯5TLamŸ–¥7ñ‰tꆩS7LºÉéÔ O7qÃÔÅKF^x¨S7IÓvtûÏâ(¯nê6q¡níê6o1q›˜Êøž¿5\¨[Ãi;ºýÇõôã<å‘ôäilÊqµÉ”þOñLf:ù–¬QÕo9ÿ¨kŸ·RJÃõÜ•†H=ÏÛû,E?cÒ0鹇ô¹+ ž“Ò²éY+Ågeñ¼Ë4D~zîJŸ§ûÇ“²ûp ©¸#VÆÔù|åxåcêhÆëhS©…ÕÓè(ÇëhÛ—‘:ÚGÔQÕ”¨ÉuÔ«ƒ½!‚yDeKáÔÚ§,º¯# 8µyyÒ—â±Ã1RÇc–GCÉ/Oë¨QÅ2t§Ë£~tÙÓé°Å“Ö‡mG—ØcVzIàý‰Ë´¯ã1Ë”‚«ŽÔñ¨WŒ×Q>v™>±/u>^Çc¶K]=½/uûô¾4n¼ŽÇ°fb=f»4ÍÓÇ£XÙ/E6.)³ÇÖ1"¡S‡µî:“wæÑu<‘íÓYQ=XgŸ£’âé½±®~†ýŸ=½7¹}È2ûH|ÜÜ+X0g[vÃlþ(ní¨ë½¡}Ú?˜7-õ”mGyªs“=>á©D~YØtƒÙ’wà`«þ4¶U×øMàOŽ¿ÿW :gØj1Ãà„™SªTø}®“¢Ö½Â#ûÞùü¡ïLaÐlðÄ(HÖWÍ+÷ªTøÅ¤øÅS>ŸÀÿ0{swÁ/´öpyñÍ¿ÿÓ¿ñha,,%¶*gÅìòüýÅïQE%Ëbñ»‹·0Ÿ‡‹«Ëë‹ï‘ÙøŸ—(ù¯az©½–Þ›‹_ñìãùžX~xá€êJÂÍ„9ô,¯áw#êò—Wc@ÞWûž ù‚t„_È…æÛë¥k"Ò7krJ¥F—í Áyö·Ç9!.LrT!®ç‹NÔ\Ÿa„lC >¡ªog ØÞ_üÔâdnsì `¨çý–u·`†0®¦¬gHÆøŠØáPq¢°vÒ Ì =óë?©µCD"|¢˜ùj«æ^TD\&ÓaÜ#ž“¬ ³ïRûKĪf0ÊÇ=èD·ˆ{sÑïAã Y…áË5 ÞÛ³©â.¬¡«}Gkލp¤ .÷»kiáK¼ôˆá‘^î üÏiŽ$O× 8ÑÄŠjBfâÙN,âQ¥¶Ü|ެ—É[ž»djw¸&£pe%Ö‹ØU"Ê©«ûÚãŠGcùÍœvɆö QµÄ:5?%†}QMÛ¤@F ü…+ÊkB"Sù—VÈòÿ/þ.ÁM¯.«†”íôuÆþ›ha@8»§Ý²ÃœLɾÛ@=Fu¤²@eÅ¿³à­uÝ]ïöh03Y*v¨<@8K´´½ }ýÙe™Åæsâ}(jV¢¬§°•2n)­AVf½[îfšSTÈ(ðkWà¥Ì-þz?¬_D»Ë0Áa} å´®®v×7·ÇÁ$òB%p¨%b0ýê]X*ÎA¯U¸×µ—Ž+‘ºÂä#VÃÅŽ6j°«$vˆé°}#ìñ·dŽéoOo/ci’1ûï8a¾Ðõw¡.ïÊW¼8ù‚h,‘/{äÄÌWÑšµ®ÜÉŸ “&òäâRú1­5I³Ï½¶_ ­h½ÛæÝËÒ bŹ¢,phÃ"â 7 ê¸ï?¼ºl[RnQ›)sÄ“KD\GèP•y Bd`þn9ž8¯Ð™7·0§¤Ò ¤ùs¯F ²ìeöÓ +l·ïAT *#„AŸ­nå=_ÁŠ û^*Xø b׈RL-z'U½ Rd™ìI¸zZx7õ²ÿ–Qåøþ’rFÄÚw¿À70RX¯¡‰¸!.¿;²¡5/Ú6L[¦­ÊdÚ¾Úz1²?t,ÿͼÓö챉ʓ‰bÍ|éÕW°(óÓ§ºç-t *0‰òÐúù!j1gçœE:Î,üVzœ;?Sk¿aÂÈ®gSË/L2«Ð+½¦.xô®Þn¾GìË–®ºåÑû6®å¸åj·¹½Æ•¥Ö¸‰šk4Áó¦@Ã:YËúùÛMw@>‚;¨ßÊæY%ˆ-òÞ…EîîçÛ•ŸßÂí`[.Yèc)’‹4z?vBrÒ¤YbÑodÁÒ”¤»ò3¶b.›yœE­õÝŒŠ//þO¶°å¥¬@f²oÃÿ¹ïQ×´ñæÀ%jä(:ç= Ú…§üàrKêªÀoAoà Eu8a4vE)c–…áÔ{¢0€ VbÁ݇«Íía× ìÂh—cëõÕeÙ$ä>Da®  ±ÃôÕDáœÌþ8J Àv` ¬§h?ÑÙ—ÓÌ7àG€*óàŽ‘ç%,ZU‰'48pœÛØßFH°Þ†[%¡ö¤&ƒÐHì©úÈ Å«[+Y]{%‡ŽÜBM¨Øf£J1B„XC^Ø• ÷R!w¨±¿ð |×Ó´2[#GÝïömiÀÐwàÎï<šë„_x J§5 ñ­£õO q7.$€ûýßE†¯4 µIlüp$Œþ…¯ é‚yÒ682»-VôvÄçÛD†G=À/ˆuJä˜nIŒ-™?©ÿÊXPdÌ[9ózlX?eÖTÑæ50SÀ»`øÝ0 tÒY:fÇ}×yöWæe=D%(•çÌW Í弋.Q{ MŽrDܶa ïnæûù'vAí¿âÖ1½¦é/ý_q¿¼ßÉë¬Z$§ÅË9id+=À© a¶ëíóÛp†§h!ÊŠ4' @Θq茇¯Ä£,ÎÊ„ñvR µ„Ý1…oªõ+ Ú#Útëðl ¾d«:Ãý(oõt6²é‚V+SÓŒµ¡&p·Ñb=Ülz9Þâ.äƒv=o(žæ±þ'ƒýLŽ)‹±cÊþ†Ç”%žT~:¦ü9S–÷S"Ç`Ï”_Râd²Ù/7›3úçn†~y»ÿ0³0Çðpp¹p³_îß÷³_ ù·~ñ‹_a%Þ­è³Ùá.ÿçnÿöUws0¿øøæåç‹ÝÛî¥{•;üÃ7oð^úSÜt±ð²_Á—_ Ñe·ÿ ý˜Ü¢ûaö-¯†YþÊÍÈð´é~è6³Â—…ß~ Êøg³?­og¿î®fе,ÿ,³Ÿheʰà¬ð¦Ût+À‹¿Üì`æ×;°7 $®výaö‡/¿þúËûãW¿û껳»Ý¢Öö«Ý‡ÏhVkºž‚Uýv¾ÚöËþŠþŒ.£d»U}±»ÆîÌkò½¢ùBßÏ>,º¥‰_Ó «Ï¯¯0Ì ~f Ìš×ÀŠ^ÚÙáîÝ¿ÏÞÂÚ¥j^“ç×è&–ÍôûÕÛA9›–³Såœ/gÏ×—§å&ë+f?Ú‡ÐW¦å&ë«|¹{è«Ór“õ5Ãñ+«Ñrí°\ÕŽóÉ„4n¼ ÍH™S{†BëbHÜôç± R7]°ˆ‘ºé‚å°é‰Ñ±Õ°é©á©‡MO MLìï443±¿“ÍLìïtA;lz¢×Î ›žèµË‡MOôÚÑÌ”TÄž›BG3SÑêÁ “Óifj*‚|§ Öq–á¿c›X ÀÿŽlcA&ÿ;ÆK²X°iüÇ ZU°˜èŒA ‡pÀD8€r‹Å9qq¼” ÈÌ“XL>¦¸Á# ó2¯@vÙ¶yUÏŽ 3h†6â 0Â7³ÃÛºÝröc·[ÜÑß®ö³¶ÐßfŒjô—‡ùìÇáw{(8òþfö#wEy=û‘‡!©¾ÝŸ~½ý(½N(ŽûÝ÷)Ykø@RòÝæ ¾ìŽHÄÕü&ýé]øéݮߦ¿½¿½ïƒÆa¦éWø÷ Ï©’nìŽÐÝ&$yÉÀ©I¾\P5‹ù!© 3ä‘aR|IÅO¾¾ZJÝ'¿¼§aäpÒ‡#ÌwX9É<\ÜÞÌðÿW·û=@ßO3›³—n¶ßm6ô»e °~–ã⣮o7³ùbñÓæ­¯è©_LR­jÆ ’OI»øëp»ƒ>³½"ÄÐ#§Ùë?v_P[t³g±£¨×°bð§hÐè“yàžÐkðÎ~­¾E›ÆÉ×&|Íuë2AmЕΒò×ó›n»Âî%¿ÿ( Áp½~óÕ¯³ÀWô‰:KfÖýͨRR9ßÍ®v7w3ßn>“é 8ûwÿÎø¯3VQàáG¯_é/—»ý|³1þÝ×oà¿¿ÃëÊNÆx¾Ùͤ®Y o„C¡¢Ð©Uwdú^¿ÚîŽ8~L´lN*•>»Y¿è˜¬nÐÃ}wj€Ñû÷ 9à'ôxÃÊ,”§¹îÀø®f1Íÿž寯ûííaÖüïˆ×7£V‰ììõüêöÈÜìõU¿g¹é>Ð7ùì5¨±‹Îà‡j™_íAUÁOPçÛ}'ÕT³× àPWW°K苾}´;ô|pàkäøÄ×WÝÄÅœ>B«ëÛíj¾¿½ÞÌoéu@|¯w«Ý¶ûž>AÃWshk|MmºÃ¡ÇAƾÞ D_ÿþK,ô5¹hã×|ÆÙùõb÷žH/°ŸBh-ŽÝØòŠ^Ŷh·_ÝÑïÐÍ»Ž_«°Ç !¶oç{ú:)Þ'ø±ÌÒ>—ØOXÖû~µ¦¶Jhw·_,;˜ ˜5ú š_Ý¢¡àû´är@Ãf·l+Šª*Öw7k&¤BöÀînAßÔzj*$4ÁŽš¨€Œ›ÍíVVÇ÷»Ã-Ðì¨'Îó^H¾,ÔÚ¨p ÝÒ´Ž²ëQ}Ð8½µÀAõ$ÕY2Ë5Pó©ë¯y8®ç‡«[Š&ƒßéñWôòßnç{¨Ÿ¾)é›õ|³¤×*¡_ŠÐB¯®¿Ý€€ù‘©Ç ‚¯?÷«?ÇÕÿ9uÑà' çódýãÑÛëÏiÐ' ãs?ÃôPñùžWNŽ{àó/ékhø‹Ø÷ÿ—¡Q\þ_†Fqõ™6Š‹ÿKÝ ®ÿ¯âûÐèWñ}hõ«ÁûÐüWú}Ü2_â7x„Æ:8ÿõï©b¬ Àüëßû ϱ¿þ}Z1`ó׿/CË¿OšÁEx»9ö7›;¬wæï ¨eÜÈ¡å?‡¶rhùϱ-zšÿ³®=‡Æÿ{|ÿÓz·§IÍ¡áU·¿.ûvC…‘ÌCÇÌë¸ûçiÇ ÌCÇÌuÓÈæ~š‘ ̹4{¥¦÷zˆ»¿ Ó„[¿KÅ­ßéfpÛ÷ñ}h´ïC«ýà}h¾×ïã¶ïxšqÏoC‡pÃïÂhà^ß…ÑÀM¾K+Æ­¾‹/CË»¤bí?ô$rÜæ»0ɸËoCpƒß†–pkߦ“ŒûúV×Ûú.¾A»Z&wó/ûW–qÞèé^‚Л‰àóxÊ_?üÕn³˜©çseùª¢þ0ZzöZGoùÑüËk:mXmæú—×äuòíÝÀ…úüaðù.ù1©FWìhdSl*_Q™³;PâfT'5ºª‡v¦‰ñ´Î÷Wæ_‚bgþE5º?™aX!–?²†Î~˜ûf¯åJ& oPa™‘ùÞTâïlÊ»IQÑõ0i,¶e,Ù ¯{ÕðÁ˜Zïføß+ƒúr%¦ú÷pe~a~1{Ó¯f»·xÏâ0#o—÷ôõ½—Ël*Õ¥Í07,…™Åñ¨Zã3=èÉ0((ÚÅŒ,è½Í¤Åw2äÉò8YÞf:PJá£mòìþˆ Eçô !@ÞHx@‡ÃËqŽÉé„ÅeÆpSŽó[´*À‡š?4ôKÃÚ Mñçß…–ÒõZ„iü ?Pu †èCÕª_š:~@ÉËÕa 8v¡%”†\S‡ŒŽè¦5¶j…†¼Æ–2©¡Á²Š?´ØRæ$ 2¼dÛF>Ôø!ç ɹmø¥ ²µ”ÃØY¶’ØY[J±)| ¾ä¤\ÕY+`À³Vh9€B~cÑJ P/€–B~j1^›Tüß¡?,ÈáCî)àƒ-¥`õ®i¥ràô®©„Vàò-Qñƒ‚ k®n|/ c<ÈE~w2gÐ쪦QJ!µÆ«ç~6 NRRÇÃy5êƒo÷NÁÙ°áZ`—Løäç ä„Ë}/`Nâþ¤Â¨¨ ¹X»ýÊè§Æb¢Z>­¶ò€TëG’>Xß è,(éEƒÌ ôÕuY.„Ãx€Î%ÃÕ´hp+¤˜Û–ÒÞks)4Û6“êZx©i¸X øaÍ5`È>ÛòŒ›m¤K%lë'â°Õ-TB°r¥%`#[WòS‰JžMtC±µt½ôl>@—lme=T¾”ñKlKØ LÆ€äá§8h§·èNßÈÞÄ%… ޶Ki /¿CÜ‹vŒÅ{rôH¶¥I<å‚ù§6t…G²f]fÈi¼´RŒÞÉ„L NS?µ]7}€µK»ÕǦýNÐHP Á íL$¬”šÊ€5œh'&/ZþÀf,¨°˜-$Ç;®ÇËС’ ¼‚Ë9XLÖñw¨ ZWÊ/5~}빤¹fÈ 7„-ÑRÇøN­­¹¡–.N×PàðCß駇˜/Ö€lž?”øK&Å`9Ú¬•^àv´ð‚~‚­`³ZjÀ%žUþC‹rŠ?”ÀíA”ñŠr´ª3Þ ÐO€ÎÀ¬ÿ@B/“õ¬md*pñ·µüàðT¸g;kó:>KoJGA–hdÜé¹ÊCE 6Ðä±åÆO!ÒÔ’òYÍÜzQ×ò2tOvœÃí\—~ä`Hê¢ cUçò ‹ªvµ<ÛYí'ø¨ß†;ÆãÙÁg+ÓVa$B~† «6s‹G<ü2Ô"Œ[âÇÈ‚­d*÷W¼A*.•°‡ÊXU·²æÚøŒ±ˆt¸ý÷hz gZ±H^“É*- È·ìE°m™RÚ0uÅ} ­ûf‘<é3zPú±´ÀcD/Èֲ”pYûQµ8m2Ú§JfÖÏmv¨½–U…Á]ý|fmœç ÈôóŸ5².èeè­z¶a%!~ó+,ƒó+/ƒ iEÒËÀ‰Ct—~ ã&ókQ©_ópEÚ ôr%»„žÕöÉ*µ±PÇ-Gl6#39¿QñC¡¶0~6w–«mŸ9Ϩ뙱ÓÈFlÛF\7²‘ž)«Î=Ã"¾Y¬Èä,ŽžgÃÖ0cÄç™&~È";A-¬®È‚AzæLÇzÆíå—°tm‘ÙƒP‹b¥$xk/ä^€:U¢ ·mzhâ0Ͻ $Pl½EøÝ*ñŠö· xÑD2 k‚öÖ òÇ "ÃWáp*À[zÀ`D×°²±©3p#b3M)3hÁpi1 Áµ‚:Y¥@®ÍhUp¢JªðC¡àVV( FKÜC´¬ðàjÈ=°£ òáV`0ËLÌr ¹.Ãéz–+@šå ªÒ±\C&7|è›A‘ŠùC¥~! mÂ'ß, ›¿éÌùCѨ¡ø©rY¤Á«ü¡i"á^màeî{áDÙðã&>Y<¯ºÐ°’Rcüˆ·¶Œsц‘l£’„Ô§ µ1R¬ŒÌ:+]²ráeÄí‚¢–¡6æU8dš¬ÜQ •WüèCUB\ AYDŽÔHô‘e“j€ÏÊ'}h£ZŠü2(¬ÖQ•…í(J.í,×øœÞ¿@{íš ãð\Œ,~P0@Ü(uá!nã2€‘†/Ô2LÁ^Iªk~°n‘ì%²ÔZ, -Ü…V"ÿF`-:°ÀÖ€†u7•kqS{dAªH+’¿¢ýÉŠ3°wÜÇ¥dÝÀZ¡®Bèõ3WÃØOã®×Nî¨Ò‡w¸ Jºr&²º&u¯˜€‘(8ð84´M7°-§°¼nPiµ‚|Z Óæ'ѵ ª1á×±äsdZr¼¡(3„yDëØ¡ k€uŒ1³ZÇ.çUëµh¶ªÀ:ÆíÎ+*‚ž£´¡,^m-gåÈ×=' UèJæˆdºq"hr‡[­¬y=䨲ÀôXþ‰Œ<(9vÀ‰lÉñ Ä‰4Éñˆf‡ç"GÛ9LOÅ?a µ• Ú#˜Áæ à%Lv f‡G2/ˆÍ0cÉ ô£¬™æhpq²Ör²ª4Ìšr6äNjÀf›B*GD#´’5A–aNf‚†¹LN†œ_®{ÛÈœáˆ:rðÁ!Ó*äÙoü/PC+à'G˰0é}h„†¶ö‰ù—<³­ú×¾`@Y[ʳ:Òg ‰ºÜúê¼ (ªõ‰®òOð’õÃ_c¹Bj¨ÑÂUÊ/þ"">áKµô‚بïZÂl#C3Y­ENZ©YüdÑÈÊ(ºÄö2YM°æxÖÀ¶BZQ• fÄ|¼1ωq:©–º·JæŽl…b×Ì)´˜2i‰Çr|kц}ªÃCtnˆvVÓFl ö\4e æ±K¶("“§‘§Jé'G’Áʆ&ë¥ÔͦL+û?—ËYì0GÎ3š³J>TdÊf2ѲPÈ32r œ†u†ëA¸\KËP”²׃˜2{5AªÂê&K¦(ìˆâýÚAŽy(K9Ô{œgÏ ™2x8Ô”€= Ÿlðn›ÉOm³Z82š2E?«iC‹ð¨ BRÂ` ¹‚ZX‰(çE`U´÷ãr„k$pr•¨@h1±#*?ray ÚjDLy0Àϵ· ×ôÌRz•ñN!ƒ‚Òس$¨BÎá-£ÏÜà÷:¨éð»|@X”{£EXzE=ò‚DŠËEØ¢GÀHQÜ‘i:ÑnqÝ;'J&nD–RlÇB™eEm® °Š%¬¬£ Ã…ìq-¬tD¼? sq²ØÁ@uÖ‰vNÕJuج•IGŒDÿ‘¶,Cl¤i{Ýݔĵ׳و«´tRdù'ŠîõtR]Y×&ä_«•§ E™©ŸÄîǼºÇ6M²M£h°MUòlã«C³É›Ð%Rj½9¸©2T€Š[†WŽÈ¶ÀëZ²8PÀÖF; |ʃÅÖe4­xŒl.€ë`Œ±µ·ç¡™&àIKÆc!œ4Fo`qÅ쇶 øà¢•>eÁ~dkY¨ž‡9UÇ,´Äùo¤ŠåˆV©íZÜ’¼ E ÎŒ"èŠ:ìÎ4âp´œ‰?Èê9ÝãK"‘<¢ 锩”¯É®ÙK±´Cwž8>Å˲û^¢ñ/чû_ªré¼CÏ÷W…ffm!dnøQÚ£Šô³ï?º¿…3B=ßߦˆý çÑW?Œ”l“HÉþ¸! ”ì¯Ù'!—ï­Èe'ù›»¬¨:©ÈßK}\E¹;©È_ô|\EÍØ]ëùØ<:åäŽE“®+b"sWÄô‡®Ž‰Ì]ýÔ„‹¾•BµRÄVT‹ÛJ¡Z©U+µj¥xj+”\PZ¡¤ƒÒ ?×1á“Z¡±Nå‘u*¬SydŸ6bµêK¦ú’©«ŸtžÎ8*Kç“Z¨b ml¡-TOm¡ -pê¸#ÚAcOÊ}­R_Çý×{Êî«â櫃Ϟ¼–èPC=Ëj²e\Nüü¾ë[©U+µj¥xj+´>¥Z>Ò ?—q ?­/µj%S­dª/õ“ûÒ*îîwwŠ#¶ÁO¼?Oó‘´n<ýE~Oúm§Òo;•~ÛÕCÁôÖJã,¼UÐ&?ç‘»òóS¶„o¥P­±ÕâS¶„o¥V­Ôª•â©­P¥ÒJ®T~ÎãÂ}Z+¹j¥R­Tª•üÉ#V«V2ÕJ¦F¬~j+EßeßeßÅSÅwÅwÅwÅwùTñ](È^*È^*È^<²— ²— ²— ²—O†ì¥‚쥂쥂ìeñ,ŠÎ¡>® ]='«¥$êKðØuÄP-)”ö¬B!§ÔÞ#ª(ªÁöQHé9)-ÊqJÝ=”ŠH'úD¤ós‰}’H5Ë®”VJ«Ziž8ø¾8Õ§@PûäV*‚Z‚ZÕJõÔV¬1§FLR)S>•ùyQ¸T¸ü|ÿZ-ɨxÈÔÐçjès5ôÙOBnžM{Ž 8µKµKµêÝOBná&È=à ¢½æZaðkk;γŽnå’vî”\‰Z…‰Z…¼ªÀD$7w'ä¾<³"‰Âœ„\~·¤?E/÷­”ª•2¶¢ZüØVJÕJ£ZiT+å³ÀQi¥T*O©TžâÉ*O©TžR©<¥RyÊSy>ÎíT’ùÄ[ž1‡=žô z>>w­®mŸ·ÖxÊõìµþÃúü•æO©Ÿ{T^nö@´þ4µ6?Åü‹õù‡5œ>wtBúŒ•†óÔç®ó¹ ÇÏXi8¤~î:Ÿ»÷á û¹ëüIÖÓsOS<µîyzžJ??d°– }õˆ´êF7^{l=åx=Å#ëÉ‹ñzšÇÒÓŒ×S>–;^OõÈzx¾²GäZ?SOóôér£Õä3:ÍÓ'½­æ±s^d£Õu{ñÍÓz» ñ†ÝÉŸ:BŽ,xµïiÜ™)©¨þ¨ŠÚ“žUÕ³‘!*?bîG‡è±<±Ê)lÑS×"U3‚5Û¯štÕ'/iªf„œêcº5²U»¢Ûbt‡SÍH·»/šbtÒó©æfQËåücøüH=ÕÇ€º‘zêÁ˜#õ4ƒ7Fê]…!¦Ýéê!Ø‚2ã{ýžjlV>hÞS ])zÀ¤OWÃÑwÈÌþ€½u® âæ²q°3õXòsåƒá™z22†Ô'ãS?‡÷zó Yeë1¦58^{¾ÀÛB#²ÊÚªiD|ÚG ׎2öGw®¡K¢#=¶o-…³©ÈÝ;á>˜¢Ù F©Çä8†3µøL5föK|…ÓØà}xL}ýÆgc¦ä¢Î}vYcˆ›×SI™áwC¿Ïg¡èD^ŸøûTÑ©Ü>ƒÔÊ#Ù}TÝ*á×Sì0ô,å!•Æ'¹d9GvOéT7Ý‘R C˘WÕ\,úƒÄrö9¹0ÇjA©Ç0 Âì.äØÎ)«YéX)ŸOË µXɆõu·<^ïGÎ¥H…;Ì­3¾JÊ%ýHi³·D=¦7¥e|HÁ´wIFA_gE4i®²‡›ó÷…LcëAªIŸK(x¿ïÇ.dîÆTpÀ®8á…¹ã<\8ÚØ.F³¾æÄqë‹ï2[l68#œ9:þÖ_pLjJ–w\Sb^Læ¸Ø½Üw«“l^TÏX[rpì>¥¿Æ„Î9¶¡Üå”í¹ß~ß`_)…ò™¼—œÙl}±†1§|Óœ§mÍéï6;ŸT2Ôcˆ pwASq†1%ds¤c{E‘L_1…>Ç£ÃÔŸœã1¦°ë|jÇ5/¥”,.¦Ã~.cúfNnÆT ¼¹£¾c&Þ™b°;„E½j^å#\Ò ‰Âè0Àð¸Àòy¦þë´[Ý]æ &é;r–hzã#P*Å?Ár¢L‚´8ý|Oû9lFØöó›⫆8KÊPV:Gü~w ¼Â§ù“÷Í›÷°Wß~sµƒIå}÷óý¤`osLu¤a®SÜ]À5öý߉å1'†™ºîæÛPïÁw­óý´¥*ü¢;\í{· »Þg`ÎHù:׫^²ÓFæ›?ö8ðØ!ÊÙKë&öÑhžÖ#×½Ý ïömÁXmzÏ“–>'æ’Zî Î,…™c)="&¤¥4æò[΃)BbÅUfLCa έPü}®²BϾsn…&‹ô•UËÔ¤©ú<ås Q Ëôî‚ßhqéýù@ ÑqòÝrÂ]ÏðJ¯\“ãu~Z¹ÿuÝSêÔPp Ÿ{yFüö¶§:y-Á*^ÃàRžÛ«+˜Xl}Á™^…ßq6â8~(nM„`´ƒ;@ˆZÊIy{è$)ìŽdeÇÔšë“ò[RNî«ÅèÜvÝ“rhþ½œ/0—4Œ '7àCåÓžúñ¢´Ö®Åä›2=,"LÔ âvßÍ8Ž=r:€ŠX ¦CÕiOgÉéŸãŽzßcÎÚ‹»¾£åÎù?ïp?¬p3І TâˆÎ˜Íäy‹‚«—<Ó„u–ÐÁ§Û…NüꎅÓb‡“£B(º£ÜÓÔâá†"÷ׇn#yD9¹jsy8ÐB $Gé·s‚‡Ôµ~Ϥ =‡ƒH“NòàŽ…ÿŠYïßny˜°yY 0Á˜èš†ƒÒm–a$G¯™`YvÛ'öc€uœ¥]r s’ð~3ÛcºS\žÌs0Gê¶{Il5C–¡8®0#Ã܈²¢h>¶*=ê]ÀLûnÓqbé¢,ä`G!œŒÖÁшBÁš†¯Gv'l¦¸ëú³³U’1yIk—úòާ…VòÝåKÄ'@nü_ÝIjvK²` =žoú¿c@1g>àwúîí%ŽÆ{Á0\ö¶ˆ‰eÌ2»DöÍ¿ÿÓ¿uíòÚjÀA1ûaæÚÙ{®ù+h”sf‹ó™°‰°Ö6Æë´šo¼dYDЉó+ñ¤(å÷æµ]²&ë·±|ÆãýöpD-ŠÔâ¯ÿ¸”ƒU‹I±ð•èSýY8ÌÅ[Dò¹¨ÊÌ0cëRÑF|¾9àB¼Ùïï.¨®u·á„á”[p,ˆ·0·kT]IŠ”ųûp“%B‰%Ž)ê…ü°ì0ÇT–#*ßùôÞ=êl ¿¢ÔˆÒ¤ö· \2ð.ôçÐñÌGjWÚDb MÙR>nù ÓÃð_ãØ(ÞˆÑwgøŠùV±ÅK é_45J­ÿti16¶Ôû+ÀU Ñïa—¾à †î‘æ'ÔLŒíCHÍl^ÙꨚO²ÀмSªf(07òŒUü$ªæâ…ç´ÎHÏ ¤8isšaÚQß]¢@9Þnµ(¥Yj«"b/ÈʼT]+º ›™2í\Æñ"@\/•p‘¾ LÃkbÅ{L’¾{~DD”­:[p¶ÌöÌViÙàÆÄ—¿óL&‰u/XÉ‚Œqu 툉 ñPuÕ ®:Ùè~ ã(‘¶\bœÀ;8©‡Y3@žùoiZ]`ê>[Dó|ƒ¼ !ÎìmmLæ¡CV }YªMÉⲜ¯‘V™y+jàê§e‡(«va!y ë&`…˜Æ <‡*¾ˆ=§ýèu ˜%Ɇ~“Y'oi4ˆ!JòåÜ|±`~îÕR ý;xiÔPÿ·D0íö1K1× —<ÕÌ9—_ƒ©`þ'd>ô \Áü¿a8Tblú»`f%—Óˆc¯6€&^]JÏPb ò»‹ªÓqÞBó‹_üÔ˜ÏfUæOÝS›¿ %)}²±_Ãb_ÜÂÇ÷h!ÿ‘r@ò7¿ÆA4±¿ó%7ˆò­ááÞ1,b@‹êêZÛé–)³utàôÐè2û‹+IŠ,óö;ë9ªþ ÁÄò  VÉ!õ+€™^¼Æ¢ñÄiݱb‰ƒ Š0˽°âUw#Æ"¥8 :$–DìÃ:È Þ±!Z®Pµë½°ðç%ÆV5Z8<}~·<XE ïgµMÆØÐã×ÉÿáË/Í]l‹l8§«0sqFQ褓MúŒ7¬—çÍ–øû<<š‡Ö“wËò³ìA*þð[±} î@Û5 Ûp˜¦ótÓ×'Œã_~ñç?~óÕ·¼}Æ6¦‘þ3‚ü–t²Kí;X˜6D¢¥¹O(èÕBqùŽmÜ Ù ÀLWøðýËhÔÑÇr|ØçJWÂBþ¯¨Ëä#›ƒG9|2¹3&°(¶ŒH]Ĉ2lØö¢vßöÜÊñ× äsÑ¢hª×ðœ¶DÏû M³¤-Ñ󬯮ˆï¡1Ÿ‹6ÂÒæ Ú—¬Äº-Ææ¾6ß&SóÛÏÿÀCÓ´mœ¬•º¶$sǾó§$†À °‹ˆIÈà拉 Íg¶ýNKÛðãCdexg6òνۡ8/-¹rØ¿÷Šø;½ì E=VúúT^~…~÷»/¿øówð˜7=­]íÌëH¿_tÄpà_o-Á¥}¸Úm·ÐÔ ™qÉð),Zƺ,F)ï¿5‘¨¯¿üö˯ûù£9Ï«Bæü‹}óŒK y·X°y  ÊÏgLæ‚ô@}ð˜_\ÖÚã`©íYîå˜h„BüZ/I¦ð«ßñ¬V²•wxA°E*Oˆ”wï1Me‰œœx6-VHÒÉvKÖ6˜Šw·[~[쎉åÕØà ½{Ú)v9rèd³wæÄ¶†ú(sT`Ò;O=*Õµêè21Ì#g M ̈n·˜d\_‹LÎÈRÀÆmâSxÔAÃÀÆÇÃ5ÜWbñkÇ }öùó7ß|õÛ?|ý%Ÿïe&°‰v«]Ò¯>˜[ Ì;×x"a.ÖÝœÏ0è+ÚÍU5"– }Èý/ÿð¹F”ÕµÕ”-ÇÉJQÈ`Øó9 %V‡!QèÌiϱAú}®ÀÏ¿óðÃLwö0SZõ6œe:>ËLàBëä ³´EÍ£ú¹`BÞªÇþºóÀnVáä}™ŠSÂfIz÷7«ûcåhä!ÃDÜ+Ö°nHn2˜¦žOœå€.´Æë|“¸¨ ÕQ 3g>œ\‰åµÄlÕ6•M‡h²ÅŽ-ÈNC|Rã—ª¡ `%! ‚Êó>‹À5Öm_r0ªxè,.«Ê{2xäÛÑñÀ'Úo÷ó+4“Öhâ@!C/Èâ%èíg L®çT’\U(Š–S±Í˜²äu+½Ø\,.pœÝ¿ SûÛÅÿ¹…忾ã|' ü¸bÆ÷Wæ¤0„-lx±>"oyrfˆ†ªLÍÛ:u·Â‘öü4˜xdØXY {Ob¦©ÆÌ4˜çoh¦©ÑRóÉLós2ÓÔ0Ó (x{‰º-Õ_Ñ9'­%¿‚`-Ö´½cNø· Zþù\¨»x‹/›(6iO+¿‰÷ýâˆ'cóýîv»%Iâ¥E¥#.òK‡$Ë=Ÿâõtã§ð¨U˜…:Þê ƒå¬Ð#êID²;N4£‚|ãA¦¥9&À» é{í~BÌuOÇù|†I̺ûÛmï÷âÆ“¼+U´"•ëxú²â!“öI35yÀÎß¾öŠÛi•NäèªP%~§þŒ^'ÂÞνÃõˆßVƒT4ä d‰ñ*$ÇÇ8ÿêÀQν7hF¨Ù±œ\·z<ü L*4OOÉïtÔ¢»a;£Ã³IoÃÖàïälØò«ã@ÙÌ>åèª?v¯®Ö7]VÍïq7lcþÊRÓ« èîÂ3ë4UÝY÷nÉåyþ»ôh'¸0ÈzYß×¢Sø=@Ä^”ñlE¦ÏKÌbÒAo·‹e©ëEÒñ²v˜…³¥â›îܪý¶Vú­:’&­Ø#áÛt¡/õBÇÌLÅn¿¥3v*RÑ™_Á°Êýv}ã4-ýiÕÎÏÈJydûz¨Ù’Îë{ë^Ö§äk_³•ëY™äýÕe•{)^QUè ½bÇ'móƒf­è\ãú}4v s险zJP™Ñ£:4~Óïè%ƒ»¹÷Ü”z\È£C³â+}¥…tÍ*Pw}sŒî;â}ºÔÁŒ|ÏêIǾ$ýµþÌ|¨ß˜Ñ掔öÛ#.ýù [¬âo:Ð,}“=¬_²¸ñá^ðGzb#Jç‹ÄO u¸- tâ!wÀ+ìN§™2¹`Ã?ýß»`—â¡ØvII§óÄ pë÷H«cZ×a¨1ù'´¬ÏÉÒù•lK>Mlóµ–½&²ïÁú$Õqc<£<ãèóñ:u¼{åœ4FruáÑ2Ùã¶4“dÔbKý‘œÚ—rBq³ ½ÍÀ¤ÞëHµóÌò.'é/ûü1œ|‡ pÃ'©Ïõ0TˆG¦'$/`Ñ}Ú<½$B/¡sͦ~¯hð#[7ÈÓ„ (-î:Òúsn^ÜVP·@#¶xÑxªWäBŽž|qØL"”½Kä‘®0/¦pC» êQÙRI[²N6¢¦/›±ñkôZÊo´hð˜JA42{°ˆN Ú %Ž£4^¡4¶mm¸)ÿÊHš 5&¾ÂìH“Ù˜Ó3×ÿÊä›n³Éê·çer“©nü•ï¸x@BY–YºÙ^°!³ÊÞñ1îù,ÍÞaJq½`•è½s6B{Ø;çÊéÿå€ –%Þɺ᷿ÇW –\ɽ µvÃÝ ´±"SGGPÚT-ùÓêU·`ƒ—Ûô×}ðç’=mH^%[¤ÓþjÊg®ƒM‚k­ó°—Nú»9Ò%ÞâKâîâWÝÕœÏÛØïƒ$„-p?—þ€Èsºç{›éér”>Œ{‹äˆ§²Ÿ&hcy»a‹e>¼ó¾Æ/˜—’œLX%ùâuÁ}óö‹—Wì.KH…N ¢¿nsœ¤^MÒU2tÞåÌŸºÁ®%ÈD £à…¡Ë_1Š£kGd;–ÛW/Èá–aäÍ@1Ð`ïgÂ3™4Q yjŠQˆ¼+"oQ¥Xí»kv"âÛT‹?¥ts/à™É‹rKe Z2ïš¼Ä3kñWm*:Ó$î†Kvˆ{+Ž~ẙ¸Ä%’l#ŒO¶gÎ+Ò=@«Û£Õ‚ɨÈ@ÍUÁZEþþ9ZÊ‚71í’ãNñr99ZD‘ nî°ö‰›G{›>Dî>añG" &Óô¸Åå½_«€jJ ±s ¾ð^#€º×bÇ®®¤.œ,i<Ñ?Ð2$ã¬*™SñÂì¼»ˆŠ† Ôþ> ïÚdóýŠÍ€{>h;v|e,î_tmâ}©eÓÜw•ñÊj-´;Û¼°Ô—µ°a£FÍQíÅ$êˬÀŒ,û¥ ¥6˜5•‘šîçWÊ[jI‘} ,ÂLŸwžE;7-{òT`!ž~O¬ÈÚ ·Î T™úä@“M{Äv¹ÒUG°Äȱ )6.ûzÂ5~ Ž¿I”F¿Íúˆ{M™½ï×t¼zí 2ã½\܉ŸVˆ?Þy{ãq˜I&‘- û  ¾ÈD»g΂_rïK‡î|0Œ,ŸfA®`®¤ŸéUã¾'oWÄ9_m=6£]€2ûE@QÃ!Q–p"`‚¨×ê‘'QÈ3Z^/3Hn-%ãöºÛËæŒ®+ $®ß¡Q-\y-HFÏÐhÔy… ÿ[”™¨ESç¼À±°Â ¬pLÓGocNÝ™E¯ìFNÈd ôlt9°1ü%»“ðé׉Ëè|³忏¾šZ#à (ñNþ©ƒ(ù͇ãÙkÚ«Λ¨¢ íU˃šzœËÒ’¿aä|ð¨ |¯.ë’î’J ŸƒyîVDÆMLWˆ+€Ùú"ϼ1¬Ì²SwjØ¡KŸfíP„2äý¸òûqå÷ã¿A€¡Ý] Fã —˜ÌúN Ÿ²°²Ì‹qV{]QXXr3 ]z¾9Dz0ô¤pªj&WƒéJ 19¿¼ùDÀøzìD ¿á‰@ƒ‡ŸN~N'Í#O–þDáì¢2f—%“`Ö®úùËßÎxA™m¯5RëÄ}˜þ”lZà ~'QB=ê @UI ~ˆ:úSÛ¦ø]~@WÇÓ…™‹#ïlïTžäKQ–"¤J]ÊÙ£\ë)êþ0r”¹?£‡^š>X~šŠ¼äÖ/ 4m(Ð8.\ º¾¦[;ÂÃfž‡ÑˬÈYÊò"ÃÎ/>Ciñæ"³/¼dM—ÌVd¼BB0™úðþ+Ö¼Y¸S ®wžÝžœ>÷rs¢CesÜÝV0m^è]¡wÙFK:†YŠ?Í+>ÿœu*€.€rŒ^àiaC‡Ó‚×ä"²×Ž©ã•Eiœ29:Ú>]ñƒžp=;Âੀנ☯F,v¢Eà…—«=Þ< (W­liDL­Iú\ñ Šeô,R´/í«Ó€ršSä Š["7ûÖ¢ÎÅFÙÏ)ü{·§}»ßú,l¢&=rl¹(œD:=î&š]F6 ¹æò•Fƒ´vÚ6÷}j/§ñcû4é¼-(ˆˆÜÈ£õ‚Ÿ¬ÿâ*ç‘ê‚0i2¼‚¡n7ßpá›™7ë9™jv©qšEÚÜÆ>ÎÊ;u¹X¬º¶¬„ªY…s•‹\¶“ͦ/ë˜S¾á¯Sq+øÛ”âWãHuidÅ ërbn‚[é:)iØnBba ‹0xœµ»9øMþöt¸à´ö<­Il½F¯(Z×t0JWâ‰q…½Ð_ËÝBÉë`y‰'z†—ö2,ítäâïS®Bä0zl¶F7Ë©Q”a[¡kµ9öÂÉÓ—Õ·lYá½—# ýÛÅwY–±3Š¥ó¥9£y¾;çA´æú#ë_‰ñ¯ÐÓ“ó½\²Rl7È#9W¹Ž6túŒwõ•jÍ>&F.vëh4ÿm²’Óók2_ä)FYj¦y²!R»,Ìôy«˜k‘°ùáj䤓£ñžì}Él”ôÍ âî7ÉM嬧|“—? îI«Á©BÓ©¹SÞ‘kíL°‹E`„…Ý ä2G$gXš 9Ø[p£y†Ç_¸–Õp#{z†’<øPu¼I±Dy[Ö2qa ÊG_Û n’m¢Ø¤CUJ©˜âUOoãìlvïÙ¢Fž,Ô|˜Ë–M¿Æ ðØ¡u^¹‚˜þYϦ‰û ?eUó!è*F}¦ºIÆ„¼.oã” Õóc(+·”·lsV 8Vh.RÉì9bݧxO¤ªÎ'ˆÚäm­!uú‹‡Ý .‰D]ÔLZc0Ý›ô>2¥Ä°9dõÞŠ9¢¿\`¸.xá*t›çú$ï=Zçðnž-+§$EúŽóUøupþÀÞºÈá^"ÚÆ®—Pâ;>Kò°.Ž® µøÞÅõüÈÆ¿í ¯¶F/¤äî=¢D—{Y&ÈnmÒV&JûH·˜×Rq'\F1žv7o ^{\¸LVP2r¦¯ æ¢?K~]ZæÀ.\Gmàû¶ÉæÂX-»÷<ÑÌìû+MÆ0rÁ%[I€ñ^ Ž<Âõ|D®¼q‹Ê‰ÏËPn€XŠÚø»¬Õ Ut­‚„co»£ G+²KdidºÐY•ÚkоsAÓUÏüt­¼È—éÛŸ =_ýÀ`#N#ïF§‹M-²/?_yœ¯%Û¶µÛ{͘m󢘘Á5ÏàêtÉ‚–cvÃoÍU=À¢0rï€Ö˜0>½X O/ü%¥9QÇ–¿}N²<øìuMÞ ‰Œ”Vð"Ý" ™³öÛ)ÙEtNæc”áWé'l?$kv4ȼ£ÁʯÂõà¼U—Yè³ñv éswÒç•ï3b‚Õíf¾!`>t‹—L;dc¿_°×ÄI¿—)kðpXΔ<ÒU·8{‹Ý5GXY(¤–Qo©möΦ>óé(w{9è6F@VÛH|ÇM/üF œ•6"ÇIèN'M©t3S‘uÅdyvãIÁ` Ò…±¨®·ôKmÞžÐùN¼g’’Ò.ÄîìOÖº!s‘Å~×)ÛRQ §&z`“mÆl²-ü m²-še?ÙdN6Ùö‘6Ù}ôÒþ5žß‘RûÇôFè¯NÜBƒ[dP¡^ekÜŠåìÏ_äÝÀRÃS—rüïs´5â—säå#Ñ„ÿ.Ëðïsy¹Çÿ|ÁZäþN~>LK$ÇT`áBõˆFèýY~ýÇ_=¿6gÜogá Ö»Ý["Çž¥D]g1çÊÿâýIä.Ê“¹#{ËÊù›„z#b¦máÝôð'‹.ö€ !›pÖ"éx‰©µ?õ¢ã;+ýiŸÀž€_ˆ#L»™cËôŸâ§{çÀP“·­p°$C÷c_^6=#ghïOßrÝ#ŽýÜ>ø '…>&•Z¶º  Ì1‡p)f42!:è†.ïŽ2í_u‚sÑxÃþü&]q3à)•ZrfbÉ5SKΟb/GÛa„©“kYŒÃ`¾š³#¢8§ÚªÅ]T®¿ ãçOÖ©mœ¨ß´PM\¨V.|í0 ¶¾À†ÀÖXºbÿèOßmþþúº[ô@¹öø;V³xÇ †×Ø6§hD¶C¶Úiüfœ¯µê€Daæ¥[O,Ý“!dëËÊbz¡±EkÐ]Ñ9Bý†ìØä1Ú9v¾ÝñRóñueù%{™³÷Ë‚Z„b;ðj—s­0»›Ý¦ÿ×x>]±±ÛYpó§xQï<ñÞˆ‘Ao®ÓŠn˜…“Å÷ÿCO[üwÛØÊö¤¨,¢Ù\–2‘Rfª/]ÃNörä©>ûŠ.(öJ'Ð÷ô¼Aëþx„¬´–l¿ªÍ¼ÏuÍ5f†Ê‘áGöë¸,~âϋߒ¸-‘¥;: î•-ˆ7–k*áf›XÛoÄY‘(”ÇdwK|ù?瀄¹@n­c‘ò »Gœ!)£ Ô`þÇï—Üår|ˆ¤ýª_­¨+¤nSýdÜÊkáŒCÅÑ&5çÏà ;bŸtq$†=ý6jªøî‘\H®Nïîd£h[ŸK n.Áúj^’M=FùH­“k¾B+ñ°ñ×,ÙøràÛ“ÓÒô…¡4b6`Õ”A£Uz‡,¢ŒÜئ‚q§*Óðcöêßøà;‹ôÔ°!ïé+ÂWlX1:†÷ÂOºT ‘+YŒ¢áÿK Àq>÷¼…“ƒ·9ú! ð*D-´mã¨Z3€Cù«ÚhÐå1›ÄÀ±ÀÜ?C?itüü¬g¼§ÁàÁ%ÌÜ@ñ¢õÙ^€¡È*Z0ñ!_w²vá6úŽüŒA½ì|Ð><%ÃC$ïb!± †Á©Jláòœ&àn)láqô–₱á új·=ôìæˆ÷»É¸¸õ÷qÖþ@^âî²÷ÀJnbI˜w¼8…ÄD tßs1çÏÅEWnàïOÞÒyßm#6XêGò4\Jèw14¤ÑhØóOS†âŠ\f|Ôæ%Èw>¦_ ¼OñZÖ v¡ÁøãópÓ,:;C‘½˜“¢‰®û ´KØ’‚®Ðœ‰Þ€¿ÏÕãC¢7œ}çáÑòóѸ½!çè ÿ}t¦ùýÚ$¹@R4>šCr)éä×àPËœpp±Æ*î­[ý8#)Q^ÉÇ(D€ÒÆjŽwö fnÜœƒIªX’¹Î)A›MŒb8ôF…ê“èÂ+zÛØ6ldt á.ÝÀRïè ýÊÇe 嫽´–0ÿŸôÎñ5nW¶T²U#¥xH¦$š”ºGH™u6!èJ¶íƒJ͇>5&"rºv/չʇjöžõêŒÖŸ­Š!±(ÈEAÝäûéHägÙ…kغ‡#£‘ëþÒ}YTMÊ´“¥:°4¶#–Æ:ƒ¿¥¾FüÉÒø3²4ÖÙ£,É“„1qgÍŠVñi¸7vMÖ»‹mäõéÂäeë9I”pÛ@ﯕÊùEK˜‚5ˆ·ø©½Ò‰qiÚ»BAôVvFŸl“¢ ð=_8’‹IH nÀ:ÈóaÒžNÝ5ç,ÆŸøÓÅÁ¥¢€D§|ErG–cdŸt[æ` —ÚvõýïÄ_EeªáÛz|š&Ìo•Ün> zÕ-©hò‚\ Ø™’ú‰àÐ*¾¥Dò ¾»øJ4̼¿»d U8ðo_˜O“Í`=ù›fÌ­•²‚‚Ãþ ôñÝ ç¹Ä»s‡ÀÃéŒÏ:Ê:“£ó}¼Õ¦;fAÂh•xö¼æþ]¡E¦¥5Ô½ÿwÚkË )Ð>Ðׂ5·©ôE’-Ž‚uC÷}>´œ£ñ¶ÛÓ¥\qA_løÄd#N5!O_ê¬ì“ ÑÖ쯵sº8º"Ã\öÝf.±«:œ73„Raj¡;R¢©õ©Ë»‘KÞSN!(Ž×Ú4œv @)2ÈYFa>O€”|ï¼/'Þö†ùúZúÇxoŸ¢Â`œg'æŒKΨ)óAôö·ÕqÉŒ9”×qýäæí)Qy%H‡æ{ªG\NVÞ,½-³j¢·ÿÇXoÉö¦{ËÑI K‘càEª»C¯*ßÝNŒWØ]‰Ù¶â°ÞbÍ=[š”Öïªá¨-2|”Òý rñ6lüˆÿò$¶Ûù¾‡¹¤O,6áœÅ;Q"ãdÆî¡·yè_¯[WÒžÌ=é*Ë9à%q­sì‰qöŒgÀR¿A•”#F P‘«Qì«@ý‹¨rûÚN †Š•‘úˆ¼c-ß ž9±2˜$½EkâÀ^³<^èK«o²‹›‘$•a×ᑊ|Oê¿iEÑ€Ä#FÊ%èEž‰:‰ÍýG–,ÿ'Ëÿã &½$Ñ-¿ýkøm)ÜK~ø¿ä}ã}ë½gWJñÁû—(ƵJ5?<ÞqØd ò×Ë!àR%Ù‘CŸ¼*ÅH»èVtü×eebÚBžQï?ˆ‰Ñ>ñèZŸÚ*FâˆêÏ›Ín~”ÖšZ\ۻŪãæÐØš£#¼“Ë–rËÔ“9*Fæu„Å®ºó÷V1%´zñ§tI¤¡ÈÈïPÇH«½AdãWãcÕ±!|V¸,øªÎ\KnUOÈ®/ñ¶HwbåÁ¯Éå$ÍZEVrQÆçU¿(áñIØ6eÄîéòGÎÓoPçÉXk°K^ªÈž#vü•?” .g"{Vé‘@ å!ÊärÑöÄ>T¦é¹< jB‡FczV*¦çZ…ÓÂŨЋb0¢Ùîõ±è:¶ô±ÂlYÔæLäNü]Gî„¥v6rgø}ÎðªùçFîôdH°:´é•X‹ÖþΕ^ªËºÞ[&B—ޤÊKeó¡ýÄ_‡ØZá|U\‰äúÈȵ3‰ÑÕ}8ª¨-Çá=ɨÌ8EdRYY8r¹¢H„EŽE„_va:ÉNËe k/w‚}Î Q¥NÚ†zÙÈGÑg”O¥£Ó»ÁrŸ†ˆÀ½sÑMÏOF7±ù¥E×Ã,™»AD¿U²Õ8šè¹(§÷s@Dùœûç°5„ªô!?ýµ1†Lý ȬŠ$<ítì´˜vª"}~NŒËÇ;]>,Þ©9 x:ŒkΩëÊï”pS¿ ?… ¯â.´–£Â²]£žr‚V«ž.cÀSv: x*®|â6·Ò–/VûC4×O­IžòMï‘à˜ë4˜NŒû$ñ?Ùbùî£ãšÕã㺪ù'Ä;Í)eäd¼Óè(ãçu£áý’ §‰‡§ÑANÉb"ÈéŒÃ{Æ §æANg>È©yJS¤âŸä´Á xIÓp-z"Èiž¥AN‹j£¾ô6)pYSÈñ²0ÜÎTÌq`T 9Å[ ®-ܤW(0§g®ÿŸä”iòÝøë ŸzŽƒ“uÊa-¡Ò'¢æü^Çì†Í™ýKùÅà±d8«ŒM†øŸ«ôÕJ9U¡49¨'g½OâMc1NIß> 2ªn|«§KÕŸ•ô‡—ìnÛTLÏøþ;ýþIï/Pâ£k¹„ÊØC,ÔõH,TÅoÚK(TñPiBøú:QÇhäç⢮c4ÔNGöIàÈ5 b b¡ÆP¨ÂU’Pž^¬‡Yí|OÆÃCGã6ÅSÚt8Æ èìñEÍ ¢èŠR¶«é€¢1žh[O‚SŸBj:žèD LóÈx¢Ãp¢’žêáDÇ¢‰š†+²„5NT¢‰šG… õD0çÇ•Ëìæ©ñD9œ¨aŸX÷‘ñDé£yb!@ožV_kSéAÒÊ”MLù` ´$ÛäiÞABà0 »ˆ02ó×ù ‰µ¢×²Ù©ÊcðÚwÒž²ÎK¸š`§œˆÐ»Žzg¥ó '9BïIH2ÏÊQ[×Ùy5ãzGïþ®’^š² ˆ.?Mˆ^´4òkJCkJŽˆOÖ”Ÿ“5%¿ßšÂ9Õ|8@ŠÆl§mù¨`Ìf4óã‚1‹c¥ÅüÑ¡˜M‹ùþPÌìP™á LFb~p fs&ó™@Ì& Ä,q%jÔìq˜Í™@Ì÷Ça6­DË;†ù|fóÐ0ÌÃ(ÌF< …yfmY%Q˜Mb%ª²S€—îR#‹ï Áì}ˆfm»NÖ+Eh^ùuÊÖ Š|’ã‚-óYÕÆ’'±ŸÄÑä£ñ¦“È! S#y=N'Ô/™ÁuœÁ~$ÚíJN×O‚ïª Ílª‡™Aß%ÑšÜÓ°nì"Ë`‚éÆ7ÙWFC1-ï‚…-½EmlkeUü=¾ô?ÐvBJ¥*]ÅìµIQðu×MU½>J­l1k€ Šü©=ålÿêÈfd—9²\¡Ç‡·›x`À‡™°8"Ê;9Ö™rçó°#ïÚÁmXr•Ö[E\Iû0J;1­÷í^r0k:Š>É幆xè8/¯ø”0Þ\ù„W0T@¢[9ŒoU55ŒG=í Ìå™jøÉ¢¼&^ï uä¨}w)h”©f:tý>W]„Íä;]Tœ ]ä)kŠº¨àÐEß^¾¤›ªt2@'ƒ%ù_¸„Õty ëèŠnæ7t«O!`ÙoQË[ V(•K^7í+"¯{:ÜF=W8[%„q¥É¶Åip*¼>‘QeroŒßów´‘”cèhqãŠì:$ãb©—àGË$=]‚ nÂæïÈü‰œš=³Ö&ºF7Fox;m?ˆ0W£ç U1q§¢F—>,@K¶¡hƣǹªÊ&oV„szæ&þ{°¹/Ü2“: :Ïâ ÚŠâ u{R­0Kuø´äqË5=è¼Nà¯øÌkBõ~Ü\ÜméОéRWyi‘ì¬WûÝá2cË) '>Þ÷‡A޽WÉ4T=FZHS®Mx#ŠAÂ{¬•Nýg¨çVT½¨šs ”Kžyhi#ë’rj'Í6õæ¶ÍÅZâOurézcßR–ù$>§dûb·=t» wÉÐû‚Ç• ¢H±ìŸ¶ä@#>qv$Mß2î%Á6ºGÜF^¾X’D@;ö×hö-ïùÅà Î¨á“pÏDŒËÕ¸Pf…²J'Rb¯fJŠrvÂ,U8JïcMÁÚ$mº¢i(šñÖ+:xØñ%¶^½dbŠÄ”n.µ«ác¿µ\]ɵÑäÒ¸ Ë²þºjä^þºê÷82WÞ[Ÿø.Ø[f'Wˆgƒ+Äæþ+Ä´“¢w#_PHî¯.Çî¯òÀeN.¬vfx•CƬ‹d|¯?7…˜»èPð«ü¤C…XñúâLøžê!&Æ ÷“·Eš‡ø!þ¦°Vì°´®Æ®Ή'–î’¾Ï5vñ'^JJóJþê‚¥‹cür~u” ß«VðPí†Ê"çÌõƒ«’âmJHXÛÈ’Ð]$‡U¶øUL4ïSt° @Øxï`i¾ âùÖ<†jOÅûrüäoÍÕä§Glt¸c÷íÞºl….²K#ó Á@ïÄs2Zl »ß™Œë ¤²PxQ ãÝ”,÷æòŒMüLd¹Õz%0}¼‰eTãÆ=}Ì”§Ïìqž>}¶±î#öbÛœË\bpÜxû˜í3xû˜ØOv†¤d?wŸÒµõ¸¿OYä夿OYÙ?1YpbÏÇlâü mâšÅ?ÙÄN6ñâ~›8ßú.s>8¤†ž=>5´å6:54'ŠáÃöþMœ¼:ZÁ&:¬¥®R'—–ÖÚ¥K`£¡Ç ³CÓöjÛû<ºÌ˜G×G8t™S§¨hz„?—ÍýP.3•Z,îuç2'é¡äÎeΦ‡–ëý÷:s™{ÒC?Ü™‹-îÿhg.¼¾ÿ g.oÇuæB›û?Ç™KLïÿ g.1¸ÿœ¹lU·?Kg.Ëù?Í™‹= ê|38¤(ï|Ã7ÜyΗˆ¡¾¿<`MJ‹ò\ô¼Þy¡¢B ðºä#†2¬ËÌÐû­>Çê‚l º¥ÛàîÃA±B IsTN[m¨•p¯Æ‡ •0Þ]Äj;NF³[ ­>4ú’]¯,žì¹ “Ö>]Û;ÀÔl9lK eA£ Qà(&¹\âbÍ|¿{;Ûû°%ëxx}švm»1"j—z¬”cîSFûO%B u¤š¹Ò{ ù©VEsê-4ÊÍ´•y¨#Ú;[åHeäH5»×ÊaæI5íHeb6 qGªYžiÇ„)G*sÖ“êŽT&ñ¤â€¢ô¤2ã®T³‡»R‰¥v¥š=Ì•ÊÜçJ5éIå#>Ì“*ä:7g=©rŒêt&×¹ñ9çI5p¤2÷¤¢¸ŸÚ“Ê<Ú“jÄ‘Ê$ÉÎÛb:Ù9(:rå‘ûˆdç‰{y@²s›å“6æcs'þ5f<×9½'×yð°1OÈu®ÝïTfνñp—²ò¬K·¡“á•ìQö{´’'¦¿K²ßIt‘7ªt;]9s¶‹§¾­JßÜ‹9)¢a €Ä*Í5€J @éR·ìŒ° mbNŠeé$ ‹£`Í!¸$ç3ÚO¥†ºRïeŒ] ¢ÊÐ4ƒlzD‰¥,¼I¨Ž¥IUYRs/€mz«&I#:Õ»AJ? ÕÓ…øt@8¼‰š Ρ³3¬Gòò™ab¾e’M†óùë}§ žL’à©lŠ“O³éOæa žîÉïd8ƒ%–KðÇiyâ“Üx#ö0³Óì|f'3šÙiv’Ù©­ÊÓÌNæ$³Óì'Ëì䲪ý_)³“³µD£•#êÝHr§N[g’ ^èS<wÍ.ŽòSðrŠ/S½Îœ#Ûz’ú ¯J.ÕiʧaòLrÓŸh­6x²5ÙMç~’ùc$}ær˜ó ETq’ÉLç|ª|îÌ{s>™ó9ŸÎ¦|2“)Ÿf#)Ÿê*ŸHùdÒœO3×òÀ‡å|2y–UioóÉŒæ|zlÊ'“[›Íž!åSî|.ø‘”Oy^æ?”OæžJR>•l¾'åSe')Ÿ¾¿/åSQ„ÆÉ)fÎfÙÿäOy“>yú¦°Bv/ßF°lò†•N¤}Z¤}JÌÎ:íSð:ŸLûtÃIŸz¶¤ÍÒŒOæ$ãÓj:ãj5-g|2IÆ'o¥;Íø”øiO¡œ¬°=gÌ튎õÈÛyåo Ä”Ofó©ÈŠa¦Â–*wQ?:ÈL'ÛIEw®šÌäï¬oº6’;©®U¦"ô &æ4œ¶÷ÛZƨÑk-e®Dʼ31‹æÊÇ[&'j¯h(CÚ.š¶|zÐx‰b~Œ¹pèªÑî˜Úϱ¥ñ”F¦¨²|˜J\øTJ£{óC™{D=nÜç¸|²¯¢Í‹AΪÄÄ.™¾¦¦º»¯É2+Ë4³¦›nM>2³Ó ÷†&a,¹þç¹’;‘cžd0' yЛHἸ?æJ4«N;l÷“'‚­yÔ%×ûØüFcôyñÕýÊ1g¿ þ†F¹ írŸŒr?'£\õ„ŒF›>׎mFÁ{Ÿ L¥M“B·ñaXt&JÕCÜÝf‰Gx=§S›ìT\²ªI* §8¾Œ—@CôOL &Ñq·|¨ûÖ÷Á\|-w×sZnKºåƒŸ'Âö÷»‹ ºØ«ƒ¬8Án Ñù qÐ:=9øým`”õõŸ¿»øä/&m•©äf&¬°ò»á;¾øtÑΚ黅á÷9?bÝ?aÚƒuw˜c¿Ëг™›")’ù g³e!4\e@³ÎŠqæW[ ‘îá %wæ‹„•(ijðúÕuw½Ûã«ÃÍœÂÔK‚@˜ùñò:¦<0“2­»Í{^Í÷² x="PëçÛÕ-|Äå¬V¤Ž†T¦s ýmʵc§E¢û¸¸ûÔz?ÕæÞ¡çêºßÊòûÕZRm1fd¥2W8<[m  QD¥Rîݾ}©»ùÂߪž]‡‹¸W»Íí5Gi¶ÌØ4Òô!ìÿ+ç1?‚>’]qØ “pkR]W·=¹E/¤iI]T“ †ò*&^¢ëÁ¨çèìÐûQƒÕ#¤ó î?óUG¾Ôþ!ä½ ×g¶!· `›[ô‡¤Ž»¨?Ä\¤# RE+¦ô$,Jw.uGº@›æ$aŽhëÂõ*¾¼ž‰ÑD'nù L/‡d¬ðF/!H”‚}‚§«Âû˜pty/9—¹c|ç{~…Š/N€DÊür>2ÀÞ¡ØÏð*\ð\Å”¬3¿øCˆ|NªD›Ú12§ßoøˆnFªa¶ƒ¥’Œ°Y¸±Frð‡ksOeË@¯¸|GžKÜ9 ßæp•÷Óì/V»ùæ•ÔÌ}îÑwþVÛuäŽ>ÙuñÎÅ Æ__z=—Jhs_È¡F6jâô’µçkârÔx‘WÑ„…Ÿ÷Dšs¯q¿Ò½ák¾Ž­¯5½`wŽSÐ0™™9YUn³±%aþ; šO Öß+–ë kYöÙSò€B»w›.¸ЊýÕן%s4ïné!ÑFüDKN+³¡+jH’[[ì »#î…¬EsPOÌ@»íîvµV±a-|7YaŸp(Ê»+XÂ'‹¯Ûó7Rk}n€p´gk}>µJïÓn â™ÖçäŸlÛ˜À&ª•ÃÓ󨓳M’}& /ÉÌÁç h•ŒÉÀqK/ ÍÚ»xÝ%:’tY.ŽÜ¶…Äí_Qx™ù‰¿Zï7Ü+\Œð§ {#ŒM|h4]‘/Ä(+…;Îïh,Né’—-ŸÜ áÞ™m‚÷©Ü™.üiÖUô~ÿ™*%Þ©UgÔùË¥ÍëÚð‹·ZÑ Fz¹K[Àç3wâFk(0§g®þ'ÄóÃúª-ÏÞde’|'þ 2ÀmT‰ !£wši†ýgÉ^Œ$Ä\NœžòÚÇw8mråa[ذtë€r}Ø)åYºÒ‘&Gé|ˆŽw úÍF®^…0êl#– áÜ ÒÅ„ S~Å %8ÆH ìÔ‡´Œ4ÞÖˆcV‰Eîêf?zIð˜IYR¯0q¤&•3ö&fÔ”üCbëIñâkxœ QŽ. GøÕô±ÇXZ1s?®"ˆˆ(,×òM¸ bÔ½ø=­¥ƒe…Ç{»PZú˜¼a Þ0fI©=‡I9±£†UÌà†!¹VTûÔp¾óõ¨HÆšŽ®aúÚöãg’‘cŸUR݈–˜¬d­³KÑÈ(Ò½ôÆ;)¨<ƒÊdÄ þ7ó ‚–ÏoøRÖ‡þ£¡ÀÜüVûµ76§¼Òaˆ[ngBÙ†† pžÁ–žŠ·ÿ'*0÷ÏMöÓæÜïæ×m{Ÿ·“êÇ_1™’?ÍG”SNÅÑ”"Ä<Ì0=ƒq^Ý;ÌÒ^±†ês4€½ˆ½·ó—âŒ9YÈᘜ:Êá%×*û7¶æ«A”-ÒÛ{½¹÷‡~·Á5 ¾ß<äó¬éÑÙí~ÞK؃䤡;i¨áoxÒPãa瓆ŸÓICýÈP»¸"†6°iWE¸ KXjçЈl™ÆßšÐ?°X¿Ù3{Ü9@9.‡Øøaor¦²#.hdQÐ ojZë,¼²iİÉgÂué/µR%s{ߌy¹¹S×ý¡~µW¸h›Úg|ù0×M¸BŸÃðvÚLJ4gfub÷ûQ—Î=£B½F’¬/þ qLÝ'Q‡pÜoWò¦ ëËŠí®£¦ù£ñ¶8¤ËQ4n3ß EÄËyŽ¿P¢‘·ÑЛÂ}NLõЧz%ÌHMõÂÐ\÷~8p®«Ì4±Ç>e>® O5‡ê"‡öp²£Qb¿w>]ŠÍ³RéŰ€z›yŸPÌË8¤2)²$ŠWça€aQ¼ÉqO‚Pª¬ÞœýhÐL—¢¡À¬±XÃŒXÈë쌈¶uæ>}¿„6÷Kèû´×=г‡ hs„>' ÄÏ}€€•ÏæQš½D1åâÚÁ>#éèó‡²m3äÛaÛf”oÏ\^5aÜf‚sÏȹ ènŠu?”s›{X÷(ç6®Dw©‡³îç6âÜW£O²nuþ>ÖÍSmžÄº#çfsoK‰ïɺç6ÏŹó̵ç97^˜7—¬‡Üát˜*ê.ñÈX"Öðý).—¬¥ï.ö¤£ç«ôè´àƒާçek,@aTF<Ð0åônyц–˜›0<$þÿÛNz–ªepdaˆ+!\™K<œ7 ì…Qãd^dÃG'F…GÐIß“°¹›n¾Ô±˜’øÒW ñä‚:+á勮л뮦nľpËÉ…ùÀ|9ï71W¹7Ë!u×ËÛ=˜!‡§ÒGQurt40| gGŽ€Lb±¼@ba]g•Üã`«!]{b>Êv¨<;wÁØ”Y>î×0:ˆ‹Hvïó‘r ÿH÷:ÒÝO¤Ø1lމSaì§ÂôÙ¾iü%ú\%ñ—7éœmlŠuèâÄŠÅñ‹Â î•\1˜ó›Åâõ,7} ä ÌM¸ÎiK@•¥m§•‡syæ~7:9F]é, +¼rùÔ¯u@#ÚtÊ÷{ÑeÍ:Ñ`š‰'9Ù‚5-c‘ždÍ)îÇÓ5iøwuKÖüRÖ|\ò|³³ªÄÈsˆù›']ë¸ou ƒç½ü•7­{ëöèËÝ@ø[u—=`Bø8{ †q„(µ8ÈÝÃñE³ÃS‚ WHƒ£ª‘ËG¡GwknÒçiˆ±qN.žà׫}jà«ñð••²ÿBvÅ)ô4ö¬8¬R$»"Ùu‚dù¶7»ý òCv‡õËãŽcó]ÚÖœzt_X`À/‹'¾ÍFIÅW ÅO §€N$UeþÁ*dÌ£UϰSÕ Jš\V]úpáû^‚£®|ÀO [½v—ÿÍ㉴º`ÃÁ49ú½¿½| Ð“W½ø=óE*£áQrÉÕspìFäødÄØô£Ë‰=§¸P®Ô'±iÑq†ÝBÉø§/½Ð•eîÔþŽ9"²$½zÁa~ÍJ°…ùê²âh¶*!QXWÜ]•€}€84P—Þ³51Ÿ”ÞÈ_q– µ/üµ%…ÕÑàHèã%ܹ· ¨VTÏ•‡ŸJYHæÚŽiÇt“ÑKñ.ªûsyÛØŠ.CßÜîù’Í„_þ¥ŸÔÒ9nf9WŠ †·çXéœ.xCû‡Î2׃³L \Dí×µ8fõáÈßHS BB=gÖ¢Ûâ‡3 ˆbøý“ <*|ØÄd“ÈKNgÛTg3>áïsõøŒOgßyxxŽê\x#­€RâsTŸT€©-ªýX¬Cd¹˜A?çУ‘mº“]¥"Û˜Úf•¦iñuõi”}Ûƒ“Jå {AŽÅµY'qm–ÁˆÀ±4|’‡‰âèüMˆRÏWìuR©Â)'­&uÒz¡šVWìWÃ@Æ5þ_ –àoÿ?Ãh|K=/Œèš7§FĈ§Í,½r¾ö1eáuÅžoˆ«°ÎeÕ UgÎ7žûŒ„ß«Ää!r£@hSÛs€m.`o¯Ž>ZÃÕ\qL¤°r耎t¿QŠÿõ¸cã”- Ÿ)1½@¨ûñŠtžÛòdøFjÐóÂ[¿ð«Kbd´ÃÈdc+¨»(]¸$^`X/iF4>ôl³s¨xGV¹ÿ<ŠÕPÊ|ÇÅn’~–qÜ´ƒàÄpÑ”W”Ü%š•£ÌA<—*/¢VQƒšˆN} OÄx!W”ûÔTBc‡Çœ¢ó\í%F¤#Æ5Ñkk‰¾å©ÓѾ÷ߪ@ñ²;’«Ø°Mèw·9‚!â;sºÅJ—õÁ/|ä ÏÔû–Ч¦ Ùµ+¶†Ñ$ÄË ÁŽ"¶ó÷øÓËo®vÇ«5{ƒ ‰ ¦6tçáí~¾%íõÜe“†ÁŒœ÷ɶßeÎå*nV.µ¾O£‘%êbŒWÂi}®yYé¾ð <´³&“šËÉã’üý”]˜uÊñ¨H>"?šüL®Ô4®ã4ªõI£PP_5Ÿ¬AÐŒV!µF^ŸÎ(arN0’«¶ŠG ãI­S¼â8£ Ó ]MN(¥Ó!´¶¤ÌN=qZÊIÆäEw…^z4²æïƒMýÑùáÄnwâ:§=¯Ôü$Û’›«%ï.ð>GÌ˘P¨'Ý`ŽÎµ|'N«'«²©³Aˆ-×Öå?2ÄVnézü}ñ¨ŒŽG•dÝL´éÕX4,ÊøðTìWçƒÉ½UÑ(y†Ž¥ ÄEÒRkÅèo Eúd‹Ý×>‚a d–S ;R>jêˆ, î «JWú¾_X YDÇ¢»¥öÅpY6žÞäÕ•Üv–„5ï‡Ù„}Ö+Ú{ti\M®x:¤ â`“húÇH}8QÂiÿéôä:¬ à Y[¥hòÛÄT¶™—ÃjÞÅö«yÕ[î’ÇtÚ48T¢Uá•´AѤ£-4Ñ×2YN/$]r糪³ý­­xWÓ6øËe ’¿WÂïä Ó^b0NÀ*ÎL8öøß1†>=¶ÕOyiñj}ÓeÕÙA‘ ‰Ä t)©´?öäÃ$‰¯Ð…’X’í¯abaÂ}Ö>•Gã ™)ˆªƒ\û$ÃV¯¼¦)nÐí‘…Ä€!{h§’#õ %Dyàa H2ö¡3$û8fþæÒ/êqû 04s&ã׬°•à¿·ÛÅèÍdÊäæ}éV'ñé :¹Iĕګ°!‘˜ÜƒÑÝ~5ê^R´íh2gPî6~£éЖksž½0y!£•¢.ÜGŽ6e¯/$#*5¬;‘Á¸y2%™Þ=@šÎ3ô\Q2&ïó˜%‡j”½AbWCùí¡‹8ª? †!™‹vÑôƒ¸‹´Þô{tY!QÙ/%‚'S>OÒ{yªÞÚŽ²Œp^w}Ã+ÛGX-#ÄÒð–ìás8ô()Ù|@q’$c¸;ó>pM´~Ó¡‰@ÚA{^L›EyŒÃs" »°NÄL(3ŠÄÖwœ Qëóku¡~cù¡~Û™swÚý®u¿_ˆòÜ« ù¦dl£ÏŒœóÙ‚kÎ[ŽüfÓ˜„w鎋3…!ÕÄBâ𪗊©†—CŽ·‘HDæòˆh&I8j\·öñ n6ó+²«Û%â|ÔõhÂ$²ã½&^&c6;˜Ó) ‚”â™Ó…+§, ÞÑ—7?ŠæB¨¦ƒ¯DS65¶qr®/ê5²"6²övÒDG÷ëÏ$@"N™›ä|#Á³’‰"ø^´ô+±®¶#ÖÕ/Z¬«ð]Ý~²®þœ¬«MöÈ©] ‘úåbÕ½Ôy}²AŒÔjÌ£ŽÎL´G×&5˜Ï2ÆCÕlE´ŽeGZßòçà÷;ñê1¼L’8NÁäÛ9e‹®ô⳯.è9†-å¸Y|ÿæ”Þ ¶UÖÌΤ. ¿–,-¼¨þLÞ¢ðûÜðãtÞ¢g‰á±[ÎÛì¬w{ BÐp’fü–™çêÆ¥d-©JŸþ†ŒÚWûÝò(#JFò -Íÿ÷|#®²!¬ÝúbqÛù[%¿¾ÅXohªr–_›sþ)¶ð3ø@¹G'ÆÜÿ>çGz÷§óÅírÙØ³c޽ =À )ùL'”Ö„pC÷]ñ}ž=qÜÄ#>ãÀ‹nä¼KWÑ(òOÃH*Áž (|("r‹â‚I^µÿ^Âô1 óý.zªê¬Ë*”fŒd·3™J§2k_ñ±  ±“´‹ÌXv•ù „Èuìx’<½p¼…æwF|ÇÈoëý#ÞÎ7¢áÄ0ÖµùèE! ˆД¬Xó AÔh08à–õJt]—ª$©Ã;½{ŸO¶G¹›£ÿ¥òK a’ˆŒ-î¸X$“ó‘@É÷@kèê˜ú$õ‹Žp7‘J`(D ŒyŒeèòüÙà€ ÚÓÄÎ^Jœ¤Q½èµ4£™½ºB‚€óÇÓý6U)éಠçŽiþÁëì–ÚëÆ{D’êÑÓ§³ãküdqõyí`åYùn‚Sù&d¶Ë/a!Á—cÏ®B¹ƒ•wÂÙw×;4—³åmåÇ4y-%6æ»d¢v‡FîßÒûq—69œOÙªq³axoˆ‰©È²0& ôýß4-Í”•/œ´¾&{°ª¿? rF@×z-4 ˆ$å}åFmN:½ðÅ{<)Pq'ɱ½ÿ^k‹ü½Â$ÐKè2G/% 4‰iáÄKny1—0þN«—ç8¿b×ùbw}JByç1æl–s€a Ç̾ˆjrO ÝG¿È] ‚]!®ºµCÒ×SÚÐц7ÑK;´ÃŽœÉeô5†xíP\|É}4y8D×fr87£ký=˜%Þƒ "*v³$1yÀµˆ;ûÕeè×·ûàò™ÜJ[KØ|ãÿ.OQ]ê|ŸR¨DMf‰=ßÒD«µÜÔàž‘Ul5Ø«ræ<ð`ãU6¸ö0ˆ.à€”¢Æ£%ò;frÕ…"|s8i?¤Ö,½ÿ]èqµäp;z˜äàySüÛ­ùìõûÈ^vdêåR‡e_‡¸42F¾çëØW ŸY—lâÚ_ð koõ£8ó›°HÈŠ›å8‹]ôDÂÛ½äµaJ ð¹<ï’èiñ¼„N•Ó`ÉlY¯‹$(C’½ÝÕíxä}ÍT¦îþínŽ8[^mçE™DOôe–\r©ç Ýù ÙÂC6<;8'eÝ*ðáÀÝM%tY‡½aù8žMöù™VIù¬’²C”†*&Êiè‰5P:aë)ˆ„‹i5¡c;70íÅ€µI ë9_ˆAbôp»±¹»h²1»±…¿¡ÝØ¢éø“Ýøçd7¶ôÊ“<Þ+—UšÑpIjíïo·²ìÍéº_ù/ûª¾rÍÖɪg_–áAú:;eƃM(Ë‘úÌÀ_¦®jhZ#hs 2?ŒEëž®š{¨{] æoTˆ,þÁeu^e^Å‹zx¤vÔΪsŠîï”BÐ2'wRU ¡3ªé…O}ÀûÚCTR³x[ˆ+0 ¨ÎEµœZ;×&n ‰ì‚×;ú±°¡ þ亂•aŸ«åm)ÒXg¼Ý.Ò0£!aG§Y¢·Iì:»Õ’{‘¬åN¯erQ3LñÏÎðäs ¾˜Îô»Ó™Û²xÂJ·I¦·KòÒJà9?»l@#G"?Íä"<9ÓƒÜsÓl¦g˜Ý„}®ˆc„Þ „¶[T_œyÀ™yðÖ]'êËrT}š»w]GŠ÷ßniq|ǰ°dµdóÈ-F8N¬#i‘Mb˜A¾I‰É K6º/¬„ŽE¨µ$:Ý8b]SV™%3Ý­#ií}f3oøè[E> ˜žz‰Ï¢ yl9l%LÀ!5ExbvÁÑŠ<º¨Cwq+ÅxQhŠžV''³È…ù!íkN79´ªò$“lÆy¨W>ÇZòèÖ?¸)ÕÀÔl™v"pÓ˜‹(û·£õWEnbí¥.uÀá,äm\/âP&1è¹ÈMËèrþ‚îWÇj¼ó—ön/²&KÃÉÉ¥ä ( ó;ñÀ¤‘›tÄ ä <É'‘›‚3¹ÛØ&\KÓœ@3—HwÇhà&C'!~Q0æÇÈMj[ÇF¸‰hqÄ/>g.9bÂYR¿õàM„éç ɤ„PZ’{Ux;+E§=z2 ]ìóÙ nÓ:õ™Æmòé„&ÃËÍrx”è  \Í´N‚8±ë‚ ß´ô±›èFûS<þYMÅÒ þ€1xÓ’ƒ7Q´Hq@NÃ8ygpA1x!k§.Þd’èM³¢ö;~2zS7£’èMãs.§ý¾iu¾ÉŒÅoš•Y!F‚÷ÊøsÝÇ©1Ø#œ@/ î7v·ÄœŠê/ý¦åì>i[¸¿èxLö†f3 ŽÍÞ8êî¦ì_hèÅàë$~Ë-©컳Û÷èx¦äŠ%Ô•d½Å«Y­QaÒQ '®¦ÄÒFúî;æñ?0à”P¿?¼‡o]^äTÀÞY1ûîìýÅîö )þ\U-·öí ø{‚Âò?®ó4Í!7þ·ÊoWÜ‚iF¸ùôE(.Á#Þ騦£»p×ЯwC|Ç飛¸Ü¬˜÷1çŒ'û²{ð…Š™qäàÆçðG§áƒÕ©€: ~”j¼×a¸9µ×Òˆö&üÀ'ª †nnƒó:é_aVÈ%$p1˜¨k>À{§Rº#Àè7‚(‡Tg'ãˆcðœù§Ä'PÂäè6„WŸ¸ÒÅ—¥ß<úL ÇC܎ăÈ+º{{»ZÉä£bR°¼éb´OrcÇlËþ†¶e‡æåO¶åŸ“mÙ=ʶüýY(b#G{›o»á .ýóuK|·÷*D/±¡mÌ:gÐI3è#ñ^2kæçÝè¥^+¶ÇuDl⡬£óhlì;:K$9]ÛPgП94 ”qÍžRõŠw²€ÔžêPy‘Ü9Zâ5ÍêRÌŒ‚ïà…þ| •–ñÚs>À(ZyêÄDƒœI“Jt?ñQÁ˜1²Ò á^Å2#˜¯À¡È—zÖ©/^>z•—yõí!àZŽ=¤Ø‰#´=2Òi+-[AÔ¢Ëb D€‡A%ÆÒÑátDHú}®òü;ç"BǼbd[™ RÀ äfo~¸ÀòÖRB„Ë—-¹è¬ÐEÞí Ì__¬{ŒF~Kž;€þt—ݼ‹—׉Xº¨|f,ð÷¹z|ÈX@A3ùÎC£c¯ì¹è˜ž²¦ôÑ1ñ…¶àQß|ñû?}ñ€"- n›Ãîñˆ¦DƒLÿóÍfwÃåf¶´äÕuwñÍÝvwsÀ‹ Mmlã]a}e³¦u3úšñÏÅçPLBU¢Ã$BŒÿti]UÊ«ñ=[ÖYòb$€$êw?ìúÅw—Hޱ-[ï.~M±ûoBt3—[0ÄÙAWm–Õ\æ¤:ÐXÞn¯äB)™Á`/‘5‰%÷uw0sEnsoœ™G—ŠÃíI–KWX1‚©Žä[ ’aƒ5k¹¬·•²ÜÒ R­GÌ~€Aìÿ#²$qoÞmýÛÞ߇5bÉ×" ‚sp¥ã )Ô+Î÷ÄQâ¥s},Љ§f™:nìº2P…Î8t¦Ú¥3ÐÄl}hMö–d(ªÈ“*¸­«Q§«¸7ó«`ô9ÃS³ô!aàC4ð%§½=túRŒ ŽºŠgXXØ'“ñíŒs&n›ÓÂøj‹t¦iÆÕ*¼åÕ÷Çæe;’~ˆd;Ý|L–_º}ýíÉ&“p•{ª1^ƒTNî|‚± ÁQüÄu¼%Y Þñ†ã†º4ïÃí ‡åíÆdÑâã!Ñ¿ûó×_óì(Ô™¶\Yœã„ôû\=>€žçáœÐ,­ºœÐpÂrÂGMáÔäTqÃ,…•“•1YÙ¨p¤¯Ç™r5;‘ë†kéøŠé3geå*±X–äãÀbe&BÍì„ØwÃ!À‚7áæÑºb•|E®Î w^®Òïsõø]5¼cFÞy¸\-ÏÚ÷¥•˜ý _“«4Áöľÿ;ôQ"ËN9&WA.Å‚I¡ÎÙ ðj=ß_ƒº:]Bƒ>}" …DÑÑOˆØ" ^®p­mÆUEÅM"€Û¼íäYÓøv¥Tqr,RÒt‹-—¦%Ȫ(M±Ši¥Ö’ÇЕO9œ¡"Û6¤ê7,í³Üù²(IÛF ®É”Žb*¹,E¶o½ð-óÚž _•–tç|Lw.ào¨;¨>ÒNºsñHï‚Z…9ZÔl¨"Ó&[%ÇYëÀ¡)\ðJ¼D+H¸>„3ÝŽ½ƒ4‹>C9C jŠÄ$A·XQB_b*-)‹XÁèÔ)•㤓{çÚßç0+éƒr^ ŽIÈ/: Ê!O0Wê@ieíþà/Z(ø¥È cýžÝH1RÕ¾$þM2Ô)[Ce¾LÛÐ=Òï©Nvøát|/\ët<Œ0€ÓzÒÝ;W'¦ÂpýTœÕê¢ê¢l_‚ËÆkrKíÇ"Zú‰)à›'Ó¾2øæŒ¹ùÕ8HæŽ#YŸZ¦G ¹Ý¶|£rpyÎ÷79E|©¯Ÿpß•Ýç¢)ÆŒ>%ü >%Ú}>}~NFŸò‘geaéÆD!~˜®Q»×Õ©$\NìZ1@Ä[®FÆVlÔñ*”÷ÓR ~¡†"Ó¨ÜÄ—hÍY‰Æmhí®hu8I#ÞƒY="Ьó!Ë&´;,`¾=©±‹îîTM^¶§R‡&æ» + ›I»Q`%jÚ©(°MQG-(·§¢ ¦2C¹JÊ~r–›:-¯ÄîCn+(ÇŽŒrÔµù˜¶4Ä”1F½Èå’×­r^‘¬á>Ž]¿eU$¤f&P `Í_–á ñ»ý1@ßÞßà]ίº$·'jB›þ-sa—•tC5£«àš^YÏ^ê›ùvu {œ/\‚DØÑÅ9áFV”‡¯vš`•|µŽW;ûíÕævÁ Þ‘.1rŽáiêÉTþwÙ-üø€ vþ]È)Ï]Èa¢“ 9å#.äø;ÀÈ…’ 9®¨ÎZ“è÷¹z|ÈXpÁ‰wÊnÊ{.äe€Ú„ß”SrªOC†ó+L’Iö໋×é½ cÝeb¸ wØ Ô¬ä”#ÊœaRTàÛ*:å?ƒ‰W›PPy®£¯zæþÖ 8Hüšh|¢LN¾²#‡‚9éý6ð ¹ÓީܿÎÄj¹Pè–¡Z”«6T»RÄRµø£Ò*ñO c8ÚWÀÖ)ú©Õ®×uà™g \D2±^>¤zÙ°5$L*űRàßà}JéoQTªZ®ï[ÆSPÀí[Ãô òÂO'sHòãôþÜ?(ñhªA­¦2‰ ±‚Y¬êv´W®ÚðÇtËH·…‰Õr q1øa^7ùè,Rµøã™Y¤  š;:‹Tþ®ë(Z:XËU¡H2‹To‹!ì¦ú‹?¦³ˆý-²¬VÕr é,6¯Ò³ì·qÃk™yz¥-Å^‹K+Õ2ñCኌB7§u5Ÿisu®”û&T¿á«Ã ÕP\K­´6 zy•±ÒÚbƒyQ”VŠ#¦‰¨*Šö¤š¢*T5PÂÄjÄ÷ )F?½P–Ö«Ô»§ï4¥ÆM£6c±#nFiw„>øÅ®L8vOMçË3>°+ñ_ >úþäl(±ßûX7‹îjÇnMÖ+%dZû.æ$òIU0üjÏ> ¨|ÅË ßHm>®'Ô†¬08nàÏ’£”¼Œi†,nl±4¬Gz‚æÆè»-IN³]߀òÉ޳໳%ékÏ­‰Y܇C”¯õȹÆJÂ;¥5*Žë­êŽ¡Ààƒ>„õèŠFYò‚B^‡¥:ÉÛ#±~ÃU]v;ñ·w… óù Y/QPû‹¿wûÝ‹Ëʸa :<ò³cF¦‡æôÄ[™›À¾ï¯ÂªsOOO§R­R ¾ÎAšöû5°¯Õ/|4JRÉ^l.(š ]RÆ\VzETÄóON2S?)ŽpË_²¿òeuTÝU™¿ø~Py‰G; ±ÿªòÈá߇u¼û“”ìùã’+F^•+/üT,$I¦< é±Â˜‰âd¥½ÐéÆ^xï[àûd?ß®dmÒÍÃFŒ!“`e³7o)ð+ ƽ6oþ\,ËpàÞ3I3óƸjoç>¬Éú"‹Që¨Þ3§ÕóÚWéã1lDrIÓ¥UªV¤}Å‘@éBàôo¾å4ÿÙZ‡­á[xzµ' Ïn(NËi$„ÓçYYsS¢LPµ<« "àWÔzz ‚¡ ÅÉ'aÁ}V$‡úX_Ä¿?úŸRÎY:ÄÀèsRå“þþ¡Àœž¹Lz5[½:›’i ýÑI­ê$Ÿ„qÌ'O9CÝÀãß…ÌvŸyØNy0€ægøõ T ©@ÈgžÁB´ä©<1à¡Àœž¹‰T>;wv¼‰´Ð¡aá‘Ô™‘8^U¯´svB¹<ÿ|†Á“Òú!ãý|Á1’扩¥ Îl&&5A®ÇSd_3dHRÁ­% f¼–f4yÊ^Ov ¼æŠ4Â0¿&·ŒÉ1±¦ŽS弜oX$tº—ÚÅÒ•«Ûc¼°$¼>¤>ƒÁ|&7&J"-¹BE±À…©PüXJS¬â‘«TX„袰˜¦˜ë˜Ø{ˆ©ÍQÞ\ZÌœç0#ãd®a_`NÏ\ÿ?bÅÕ1ØÀTÖa$-ôFBâ r‰!bÑ–Žräô­¿™¼€‘½¸ü>9F±TCïŽ*Ü:®1ßz®ÆŠË.7µ„” ?5ªVÙ”yª‹m¢Æê.¾’#ùp+zßm0%%Jë>—ïÍf¾•„ì©:¸²]c褺±Y²ƒ7Œa$iaI>CFHA-N¨•*e°Õù­»¶¾¦L³5^ agÌdd]Ì–¹èÄwŇ7"·Iº´ÕQµÿ{'È1x5ðžg­1 e+;\s€:|“P;•-(þ¡?ÆÄ±·,]M!º7›þª?†ŒƒAKÛ儦ʎ[®ålާ®Ï&„Ô¶cŽ[øõéøÛÁ­ëµ÷ÚŠ1'WwzÏŒ£!ñÅÐ,ÄF¿-:/ÕÎ]Q¹|A‰bNï`ã ɳ¾[ôû\=Þôdοó𣧳ª`ÓW»}ˆW¸ w”³Ä‰]ãBɵ·¤dÜ‚Fw›ø~]õÑÄ·Ïc>LsK,NzäÿFÓ&Í:˜5b D·ÛMÏÑc¶‚<«¸qvz!—¿¹‚9‚) lw§IÛU¢,³”L›b½{N]½À$.I\éŠMr$QÃßðH¢ÆS‰OG?§#‰ú‘Gÿp2Ÿ<ü£-È|ªðs0 óIÃ?Ï~̧ Ú|Lö×¹Jð­nx¦5à°F÷~5m9öiu•åxyj9æ ¢b™²Ï‚ÕØ<Éj̵›óFc¾*:m4&“-J(óÏ»Äö³Œ§ì=á /|–lçà³Y0øä6Ïù¦~Ìà£Î&(•OIÇÕã7÷xúÆžiOtA[ôÝÐðs;g=1nŽä0æ[©l^DXjaʼè xc+ꈲvÚ¼X—3*0÷ÏÕÏÄØ£ÈñVmtÏÍ+£5èïGnW>÷¹VŸ }=ª¦Ñš~ =ÆŸOÚ­‚ mkÊ(2µ›3 ô¨þ èÛžscÅßý¥^z|ÈEà³ï<\ÎÏ_FÊSýy".(hj§±V¾¸¾Ù9|´-Gƒ˜UvN}6TàÛa¾¹ðù¢hÀ‰.|´IëAõ’ÛK]ø€êª˜ôµ£•–JúpY%¸Æ»«Z!½"*E_œtt‚]=“¤š‘[Á è¹Æ–C—"×äYt)ÂæôŽ”ê«iÉ÷gJ¯3yÖäׇ‹LE;ÎË“óÎr™ÓÉš%÷‡1ÐҨƻÕ×ÒŽGru3ÈK·*Çò|4ïL…X¦­¼éŽZ;e T J…2ÕÄaf¹RìùˆzJ2HH¦ÚÎHÒa]j†m2Ëmɰi¿ßð®¦ÈöQo|3”%õ?—\ÊëÝþxu{”:PD4¥ŽÞåÆƒ_jS%wVÉùùxâ{e†öÓ¼åä¨çCGvæ< ËeÓHÁ¼Æ†W}Â¥×µ WÔebcþçIu=°~S8rk¬Èùj# K®¼š"?ŸBƒ~Ÿ«Ç‡\y=ûÎÃÙþùЕÒJ¼òZN…®,Šê4p<ÍÉ{6Un,t|Ñ:w6x%NóûÄl:C³©ñS³iÑæâBJþÇÔÚÀlZ²‡þ¸Ù”~œàúþ}«ÜÙéiP…ÍíH›]°dšÒÑaÒˆà¸ÇC¶t­›)‡NªfÜCV±Sær7—}QsŽÆqVp”ES›¡KkîèJ‰Ù”K« e%bwSãcßÇÝ~P0ízìnhC³Nƒ–OfŸ“Y§yj0mHƃ²b‘áɰ°’ä:_´6/ÇR»`x‰Z°G%ËST2kè,¤(¹w2.Yk\ÒØŸ5.YÆð”½3&®}åY´gŒXglý¤&\eôÆ*!û´èÚûn’®)ÐÓ.É&½L« ç²áÂ;Ý$Õ:#Œ†X6þ |˜„ã"b~OmDÒÓÈ•Ð^)Y-ép)î §£Ø† â‚éŸ{q¡/ö'ÌØ¢(ù… "Ï(èµTÃÅ&àŽŒ‘BìšêGÊ–Ò*„ñ¶Íˆ¬äØygôá…]\S!1»9uJö¼y"»ñX¦C d鵚„p€Aà©y0õ®©ì˜vH_·“8¯y´[© 1'’f¦«É°r¸ùœ†ˆQœê³Ž5ø;TæÇ‡¤ ïÌFÞy8ß;!PZÑ|¯!‘·yuÂ÷¾>nº9‘@W’±°HûÎq>, 9ŸTy¢!rMC ÑE&¶7ÌÀ­¥"&n/G4Dñ€Áï³ìÓý°Q0å=0å˜Lå=`ˆ°’<`Ðñ-Þ¤.ø¼mü&5ý(fÐXim[U)¿¿é·ß«J›¬™ö÷i²æ´·7ÝþZõ–¼¦{‹¿Ÿô¶u"¬¥àÔXoô÷)³2OEÈ&Nõ´¿O™UMtБJÆý}J2N'ž5 Þ×.zÖ”b¾H8ÝT«œ8èˆnî«q•›M9è˜P– ×\6êÈq P[yuJ2«ú¾-*1å Êb[Fj mÅ•Amµ:_™ØVQÛ‘á‰ëƒªáZ)É>ÅWSrPÙ ’C:."9¤ãb’eÍø¶NòqÍ‚Ž)ÞŒ™ZøšZ´"|2!üœLí³æã7!ŒäãYóh‚€“ǘ|R®¼¼Ï„ЇcÎÆëá¤LÔˆß]÷]÷ò°žìY ›úVÇpW’sŠSr1ÂëǵlAJÍ(ó÷ìÍöâ°aï6|’4÷LòrgÞ\³·`½@BT¬-IÌ.zþú_3ŒÄËé¼îÐ_BøÞå5âá¿`¡#—ýpñWŠFN_sêï Ç ÍB&ñu’Ù‹^Üù$DEêÃÁyÅ÷‚£‡:êæ|³Ænq «@;‰H„ó }aнþÈêâÿÄ90áòšßሄ÷tÕû/©NpB°“ „Ü™*ö„ ¿ˆ@1ŸJí.ã““ÿŒà¹) nªÀwu©rÁχzÖƒžÓÙ7» ‘üva)]`¿Ž¼ ‘˯v„9èîjw}¤ßnaŠB=Ã@…d² ¦ÔâÄß©”ôX æ2‚¾o¯ˆ¯ÿGô÷ÏÉsJNåØÛÀÌn‡”ŽÂVÜ]Ü8â­ôM'Nß„»s ˜¸Î©»s¾€þ‹wç@¿6ÖµÙ¤WÆÃ¢sy¦þìý[“$¹u%Œ¾ãW„ÍËdi²JÀ¯úÎy (öˆöñ¢#R%™ ç!*Ã#«òRÌÈì®Ö¯?Øp¸Gd‘ìNš•KÊŽp‡{øØ{íµ×ú Xmt^`uÄÓI{çêªVkW6;šÁí‚’q+—!l°Å¿Õ+º xjÉesDxäàýù²8-v-Ó“Hb?——f °¥°d…£tG±hŽÂÇKyV;‡1öÜj\pm€`i nÅʈÔôÓ é0÷÷_T'UYLÎökü˜¡\—¡¾3ÔjqŸËÓàî ?f¨³þ’nAÚ ôçóÛóÛñt¤öƒZC³ö—#Ùuü¯I-iĢĕß4•¸2MÓ ~ /“¸2mÝ-J>á—9ø% k¸ט¥J)Ñ5f6ÄF÷ù>Íïð‡ž­”JJ=Ŧ_²;r)­*›WJmÅ&G˜ôг4'þZFW³J©ÕFTJ±»0 ƒLÓå ônÖº/¬íڣ®Ò" Ë[‚þ>l# HzdÆr,ËYÖ‚i8ŠZñ–]hȰ}ÕF§Â.…"÷ç£Y$ê\™A;wêEAb*¾9.Ø t[C—j Çð¨¡äD©&† U¯/±’3ºÔó‡Ï^Ò–„Iy…Úñ7îé'®pUöª€FÖÖÔs4r³‚F¢d]7ëíðýVüy a%ÝG}í<¼®hËG‘pd¿@XiêF•æaK7º«lÉÀœÍ3çá†M-Ò‹óp“û_ÜS™*ÎøM>7葱0ã—ëópC½u‹ó0~¿0û!¬V‡°z˜ ñßa*Ï¡—¡½¸@o¨2èÅ} Ï7èåõ@/CuASÈs¢YcjIv‡/ÇYz¬;ÖöËäØºoæª}‚‹ß«õe»ª|Œ–{d ð¤rÄÒš½i‡:Ÿâ÷Çï“ýÿ;Ù¿†5ݽ¡]àåjÓKkb­ +>n“cX4C-ô\2m²°îãX«žò%A&ʺ»¹xáWK+¿ýìB\]øÕÊ¿Ñ5rãÂß„=ÿÛÇÍb<à&Ãþ‚x@÷U©J‰Ï‹³ñ€ýêx;^˜ª^%°â÷[ñç%’Óé>_ ë’Ót™— åxÀhÈ ñÀq^6”ø«¦ŒZÏË“ßâÿZÊËSÈËÚJº—597ó²a-/K¹—b÷dß`…¼òµÄ¬¯t®ìvÒ­81Æ;3ÔÝ<[ût¢ÕvÖ¹ RžñmÕä¬V÷YÛÉ\­1ÎG¼”«e…?ÌÕ:£D®Öä¹ÿV?„iõÚÄmkÓ,ÐFº¦’³™:*`›ùcôÒŽ åE=9Y=fíi­òP  ïêQ\wŠß"'äDî8¡Mó.<;´ÞÆ}ÇÜdb{š½ï¯þoÀ†Ø$ÀqºÚ½Ñ•»Š´Lï|£è˜ÿÀö§+î1ÿ¿ð›ói]1õ^„»í—鎀õ¹ÅÍ‘üA¯8Qy*ì%’†Û§¨úôŒ8¥DÁ§u– uÌóIøxöTä|¿ŒærX» ;¾  ,âûÕ5öÀý•ø~u«×ÍÇáûmøó"¾_¶Ï×{Të™&F®,nÁæÌ—ä8†yØõ&ü¹˜´+þÝ «€l˜§Ìø~};Ð0)߯6Ài¨EŽ©É`åùC\V Ù­1øKƒ…>Ìvà ¤É€À.è‹ë”†l¾äã:õ½›m™9Ô]Z§pŒ:¾¸NY`SÔ½6y—Ö©¬‘`¨ úƒvÿËSQ Ùè·Tô5¥¢úëSÑQÙÖþa›ì‰*sQ3ËEù¢àĆttQ‘Ý@Wu2¨p/¥ˆøõ‰Ãe™iç2Ë–¹kÈuM2ÓØ¾Þ KÙ§JÇØ„ì´+f§ü¦Ðþj–n.ÊNUš÷ÊÙ)Lkµæd©©ÕœšªÅ0çP¢ÇúÌ4BÒdœßìVÛ4Bû(ÁZò$]Èñ<ã”è;¤Ë9%¤ÑæÜ»”{Q=kGÄÖý,-…ƒ‹.Ó-ÒI@wgÿØ‹[KÇn+–kÊ»/ãí->•;²¾—í¬>âLÎ<ÍYÅãcÇp1Óãä^e4M-é#é¶$ñùðèEj§ù™’Þ…pëôæ ÄñI¨ŸÆgÀ ô1@ ˜räog¥YÊ¡Qâ‹–ê*(T†dqtUá*<®Â.¿ ×o\:üU™n·OOìÓh*”óþ¹,Žôºˆ'w¬·ÛÛ[ümhV»ƒ<‹#v¤LlY3|ÛLöÝux ©ñø«/Ó‰@ i¼7Ð#¨]ù ~=)-ê¦PÕö¢%^¿“[žYHÑš!‘ø8GPLÝŠÝ ?΢ [1¾ Œîâ-Ûg¸IiÙ­A>(Å·;ÞzÎ j°ÄøÖ Áv8ï·âÏK€·¡ZÜçñí³.:µ$¾Õ.¾ÍKÚ ÃÑ sÝÕ?b·K»‚b¢iÖKÚ¸¸·d*Bɵ‰7Í\›Œgþ¢…/wm²M¿ìb_Π“ÈõÅêvµ¦ßçЉ­;éð‘׋öJMÛ-û>5m7÷lj<“¥ý™€ÅÕs²š–aÏYµ‹QÜ=ìþNc,”Îɱ'-÷VÖ¼q‹533+ûNn†ûÆËMÆa[ä Ó¶%5Ö ¨ý;9庪Å)ÓK=a[¤nóh5‹ZÅ[‹j3,`DîY©ç+D÷q›÷ù¸ìÓ\¨f¸¾åâz>öÕ¤b’FO—õ5Šz‹rBêaFH>#iüT“J\{‰”Z¹x¢îÚ.°RA³´î( ]£¥âve¼ÔÛ$l5#¦~—°5^:;k+zqSVê1Q¥7'3QIcÎB /“{ÁG]deéjÀbHSRy«ýÕÿ‡dÉ2Jjˆ‚éGþ0¸)Q=avÁR—îPPQv²BÊçâãÈž•\Tí¹¨{ä¢b,ä¦ 52êAZ“ŸÍ¸Ó&!£ªu J™§'ÏÕ»y¸cSj]ÃEÇØ+ðQõT7II²ðò†¹­’ª<'õ)©ÈÕý꽤¡î½±Qc1ˆ ÂOá³CÄœŽ Æ¹°Ë’äTØ@ÒQucšEEù°Á–ÿ†C¼ f8ŒŽê"Ûš>_ºa¢£önæo:µz·ó—ÿÆÝ_Åeˆ§ãßý@G=:êA >ê¡LCmꌆúqŽM7M‘†Šçõ4 Ï5¤ˆ§ó¶Ò£Ê°gR’¥XêN©;èŸÿåèŸðú÷šÐ?sAt¬VÝâIÒ×jiÃ…FÛª[úéØ{¯• ùhÖw¢0Ó©×߇\({¶FظF¨µE¢°F¸LÜÎÖµ¼H$Y˜)ea.L´yf!û–…½¦,Ìþ}gaõK³°ú…YØý•³°ÿzq;aF²?‘Cû5iÒ±tÕ õ%ØDå$bΩòEýËÙŸŸ"1‹à«³H"þ™³ÿú‰³ÑÔÅ⨚PWUÎ ¦•ê8£o(óFžB T…VRˆ¡&kO!ÞÄ.PˆÕeâÍ9 ±:Ï!^„-pˆUDlê¡>§@iÛ<„ç³J΢˜|Š<œ³lnÞ2=¤5÷«4€¸9Ã"ž“ˆ•d ¦®%—ðýVüyIröQ…}^° ¬Ë†òa–ESL.• î_á÷7ÞYD!›Í¢®×Ü@ܲ`LÉfÉeÍ ›¦F.C-Ÿ–5}ÖòýM°ïXÉÉZ/Ž9YÓwË9Y›§1YóEß´ …u¦1ª”Æè4á+´ß¬Ì›ª”Çð8/˜8UŠÀ(ü4l¾Z;Z¡òÓŸþäç„Ç ,‰ÞBQw÷?hº š¿£ƒŠrˆ)A ý©û¯`f±Gv˜7³@ŠeÖEX÷&Ñdœ™Y$BÊÔ|0dþÚ7·Ï§§ñ‘eº:¶ø(Þi¡î6 ¥wæ…TÉëeOm¿ Qùïá§±Y¢\+ýÅÓ!ÒsZ +ɯÈ9îG÷rïî¶È©dΪ›P Sþ²|Ï›—lo§go…÷_˜5zîæ½§ØÖRs|Áü;UáWB1Ï ÖO8ê/ÝZ8þù™ü¹o™ŽzME÷ލýÄÚtïûT¡zOoÏ—'Ù+êf—g—Öyó8³à·|o•šça›…·ª¬<¡, ”†l †ÂÆ%MWÚA¯š®À÷[ñç%QzØGöY‹ÓCÞ •@W-Äèß_Áö.ê„zÛ·ŒÂÅC“°ÆÝï¿°e“ÅÛÎtÕºíLi§øóÛ™® ¶3Ý×Êo´ïôÛïßr+ΪtÜL+Ѽ‚Á3æö°ªb-<ô\à»f2ÄAyß õë'š,&­»Á…^ÿó„a®´.X›>L~Öó;œcöÞÍ¡±ÙŸÚÓj­¨#´±¿y|Ä…bÜAÚ'wDxvi%”†ÂÃñ¯q£Ó)ìÿ hõ̹©½)îªrƒ3_©Ã"±û‹uÃÇ ¥;š‡e^÷}žÇxÃGºáÜ- f‰Ê[ ûÖ ?Ùbà–Í·²ùÜ÷DãµúÝüæ7”gØ>u kÜÿr4¬@ìöšÐ°æï kß½¬å¶_XbªÒ óÏÇýõè>qÈ”ñÊGÌø‰ªLu]Æ­l?cü€M‹düÈó|Wš&Ÿ lCWÅAig܇Aó€ÒóóäŸ^lä@‚ñü¾nÀ*ž%b ³áÀJë^œ ïëÔ$¾ÀÝ÷øÒ–°À#bÐ\hA¦é+?Ð l{ËdŸeù®¶•ŠÃÑ¾Ä —U GÔ ùpJ ×x¤‡k"RIÃUa8¥[sþìÚºù=T2œg×™5a ¥‘ ]Še<džb™ºšu¶» ŽÛ¤±Œ’`ÜŒ& ¸(å3¡4Èá0Ä {wfž™D$tVJ ìüX“"¾‘Ž;rCN§¼¢æÐƒ<B¨À~M¯BõÖI91¼ÐóK|£kªu œóãü  ËJXkšfΕ䈪3ç ÁÇÅi ,„Ôš»ßÀÉžow³;¤Ý5Ü2Md#¼*=rJ²´ØiÆ9¢ Ní3¢Ãëð'úæfûŒê?Ù¹Ž2>ÞÏŸÞø¸¯À€V°A3(å=>>¨ˆÙÛ1*ZáìÛKü4˜$qM)‰sQd›'qY~Kâ^U×þ]'qõ “¸úEIÜ𺠅K0BÑi3„ÐGl!”ø;tj–ص.ÿ ‰ˆe‰që«*·r€|HìdâäÒ˜;M;Ÿ6Qkaº" ¸B Àæ ­Å’ÅÃÌ“&X¹Oc1-¡^£U.íìHVÀYgH'‰ÎŽ~±³~õ•"m£îê%ÚFkÄBÙÎÛ.\îÓF ¸äf'¹Ë&kn¼ ¬udþîZ £QÜ S˜¸VäZÉiÄѯO°vy¦F.Ùäm ýjµÍ:§P÷ž¢iÞоl ìgQŸÕ0Ç,Y9–Ú4}Òb½*;ÔªƒøÕÓãöã“À€!>zB£!òqÝ›w(ô¸½ݯ»æâfzÃ:xÐÝîJ¼¿\>…RjiE¡&T¿:a`PÝF_RUÇp‰ z‡ù{8âýålÌ4朼W ȳ1øøý|ʪ9øqAvëHÚ? þ°,)>ªâR¬~§{ìòˆûúÃùKCDx¨(EówO ª‹|É™<ÖI‘[*³âsqöTñ ¼ÊŸ§D±*Z³f]¦ð{îÁ?/éYÝçò•êL+¥TXªš«’N7KkÕjn*Ów%û2 {+‰™Â Þ—F…ÔŒ‹S¤Y`Ûâb›ÂràçÜÁK.RO¿oÈhÈú°à\Ø[gÔOÙtj‡ n0ŸNñ¸‚ ÷1›Ox×oÚŠ ”&L•Oã >&»ã¦—-UÂQEröÆáÇù:ÐÛ&JWÅ0wá±qcº8Âûãœñ|÷Ï· ]_¶pSZ8áéž=HbÒ½ûíÍHÓ îm¾ûáêvúð¼ tp"õU·„‡ïÖ½“Ï.Ú;y%@w™àÂú öν 3•ª5Y®ü‰4òè&¿;Ò\ü?ˆ•5ÝßÜ>ï¼×ò-ë|Ôf]ç¿ßŠ?/1tXÝçò×o•úªø(î‹¡b»`hÛ.È|ˆ7ånÆ¢Œ®1máí«{$.Ã"¸Áûù˜Y/¨tò– ,â>­mD1èp),¢ê;AR?,Á"n> º~ß÷ÎÒT¶++‡€  ûRåš°¿ ¶x"itog Ìýë¾p68›ù@*Ç• êϯǕ YãJÞ£W66é7ø²©«.Æ•´Å¼c˜~»¦¤ElÐä¾m)Ávz—'ØäØßì×”`w$ذ(¢·yaMì´=‡ÆÁ&9?LD®§êbù•ê$ß¶wóðx;Z\‚›_ëD6ƒë™{Æ/1m¹÷ÑåD×` 2ÍÒFòæb,Ç É;ʘ TÈ%ûÅçÏ·?/ŠWÓ/þÂÁl•^·Éó%°`ÎìÃÕ”¦ýD„ÿ DÉÅ¥­g[´u¹ ?.¬ .¸¨—á| ð8ô›Ú¢¸à¢ë¶e(üîÖãv@ïO¡âR¸Ñ©×4ü´iç&D Åû> yÒC¢Dª2ÆÿF7-’•Ýq°ôc ÊŠ2XÙ\ó‡RåVüy‰üê>—GgüãáÌ!ú„¶®}࢞ˆÿ<©(£±j5·*4u›;C'`Õ&«ä&ò`{•ÃUaÓ¯2äGØ’¢I+·w£!+øR•0+d$ŒÇHË6œ“¦ñÅpúãjÙÆ4싃ÑR.ÛP1u½lc°¿' G{”Ë6d‘ò 1¸ -’à&øU´2ý’U¬­.0¬¢U ¼çyÁ=$Y¢Â<ŸØÕO’>~”àå5V7À(à ßêJŠ=¢>3|U/Á’z/ÏàPÀ’ø¤ Ù °„Ý>¡<2Ûx‹k&€I“š¡I¹Q®{Oq@‰&© M²ß;ªFŸþìï–E75†•@¡À+¹ã|yL®¸ûqmøqÁÉ»4Í¢’ ÏŸP¡ä!êɽO´;¦è5MÅĘ'yúZèSÄgœ\ ›H¤­˜™ÞfˆÿÛuZ’q÷q¶2âcZ³zÉþR/À¿’Éñ/¼2þe{$3yük(Éë)`èõ×ýP¼î¾}î®n¸Ðê(˜& k‡¾ ÚÀù9ÖWòsø~+þ¼$?_Ýçò²_ÏÏé(É Ù/äçP¦,äçãxU·dŘ3¾áãõ6Qél‰›ÕsÂ`É©ê¶3q£óÈȺkuQž Hü²´@Ö]'H#Ðë°VTS5inƒ×…Ý^½Ó)Í®©tµ°ò®×‹šÊ4"¯§aòzÒ•ZÏë5ØKE˜@×EVÁúìJÞ+VrÞcΊƒ•¼±f¶’7Ö&0¥•|瞸’7u¿°’7]ÅÌÐÎMßÚæýüEXZÉG¯äà^ÓénKð!œ˜Uø BÎh©pÙ¥º˜¢wÿËa (8~ƒ)^LÑ_`Ÿ‰ëKEݽØÊˆVu9†Eé˜Ó³°Ù a—€$=ž ö¢F% pˆO2æ;b¾ÖÇ|ÕgõÃ…0\3žŸŽÔNèüÉGAÍPªÇ5¼ôøÒ *vŒ”Jˆ Ìl¨µå„âª!ctˆü&ø-|G¨¯ø› æÛ§éìà|¨«î è°ŠûÂ;<†×þ1,9-RÃ>¾ÜÁ)Òw±[Sé néÙ¤ï•ïb‡X£Û XáÂcê¿ßÒŸ0øß®=v¯¯õ®‹ @©ýóöÆS¢ý´!ÛÇ!j>2´"€÷WßO;¸wÐùmÛ77Ïn¥V¥ç[ŒçPC&Dà'â@~˜Úq î¢ˤÛS:û ™?FôŠõê±6MS–L¹93ÌKÈGYB“Ú–BèL¢G=ÏTKôBè£>¼ „‘ÒÿBVmQ:þÿüŒi¾ÿÿ=>>ÀSÔ5f©kÌotˆO©Êx¸¢îcºfÓ-¾D „‘œGøÉ&kÐb¢5‘±»$¼Ô ’¡àçäO#v¡sªì"°ûñ†ŒZgåÀ{úú$10w‘?!§Á=r§Uyi\wÕj¿+~¿^‚޹ Õâ>—ÇþÃ::Fg%øa‡<ôWŽ•i\ð 16ÖDiª ?^Šücc3œóÂ4ð¯;ÞP˜›wo¹ýZè4dà_#2(I«›µéX(éè\ˆ“ø\î`ó6˜{Ľ×tÝ~ººŒËç>¢ÒodhÍ)‚^3%Ú#Ck\ ܯ™Í‚ÍwøKŸO„hjZ¢j½ìѾߊ?/§Â>ª°ÏE’ ݪ$@»ëÎ’ K2üoToÁ7cA‚AÕ(+¿¾ßŠ?/ùÅ«û\º(wë Š%:”`(áqÐÖF‹²Š:[B€¡é‹t™A›BÁ ?æœ.°6Ú NOö? ï+ÖjXlýžÙ) ÈÀŸ¤òBSà¢J€K]‰nE;—iÓÂm¤¦mIwá£l–Gå£(KpTBwáu¡w1cË–¤8=^ÙR]“]paõ`i·äòa.˜kH"vá³IEÎh.Àda- -6…¬oœ_÷þ§í½vÖD-4™à‚‹<ÊŠ éqASKãGÅTY‰…¤A¥/Sƒû_L €M}¦^05¼˜òRÞ‰ ¼EŸ‰?‰yßé ãÌR%&$¼Ð’{ì¯#zåµíý)ÑÅJM73¶p"Š“’ki6[š ~펓‡StѶíp}UêƒOç“Zîÿv,j€Hé*ÑÙûÉ4@)£@Ä6&þ> 8³€»Xÿ“ºª^OGáû­øóüʧÖ÷¹|å[†à£DÑþ•!Jé¨6)ˆwèŸäa9ÐBJéÆF-ðDqƒ÷ùˆ™RªB¥T¿iœîQµ_·UUûé€0Ôžˆ-è8´HyH…WñCiâ‚F0Üᣠ›îkQ÷Áóƒ Θ°¹G^£×zZ¥a|&''„V‡ºI2AhìZöZéóLO•‡1US©t`Ä6qÃ\ aÙòp»‹?ÉöF/‰4Vº²43q­i.àÍÌT]Ý„ëôx5}1ÿödŒ¼N [ PaLJÇW(5míUZ‚.A\$çP7†TIÆqM+¼Ã;Á0£]Ý5ð{d"ôîM[Þ»„Õ÷ijÞtH+>Ž·„RÓdM$°íçÏ·l°,…4äæ"IÅ£ŸˆDÐïÛ €G:h¥ðë{Bñ EU˜¢n}ÃËöå¿-Áú¦SÈ"½ºhhÏ¢lV” ¼t}‚?’EàÑX™3L}‘Å›u;–ˆ&Z¼Å§(wx;ŠÛz4mˆc°¸AmVÓ0ü~+þ\ŸšÕù}.ŸšÏˆÐQ§f[žš-¨£Ì§æçÉ]Jø»Rh‡þŒÊM>Ä;•!ºŠðÌ ~; §‹'ffpÊtùE³hÖ‰_άºâ´‡è¡Z³ÚÄïgc¸(ö)Ø}©Úàò°<†ÉVŠ:¬'ÕÁã!`\²Àsm‘7%ÂAí0Ì<ÄêÚSëpPÚÿ{÷H„AUÝTu‘〃6U=´ÑLÀAiÿïÇÛq¦mÕ/Ÿi[õóA[cÅ™Òþßß~¸gÚQVW>Ó.ænñ¾€†ª¸/½pr-Ý—^÷óû‚MWáÄhWüÚA8¼Î~í‚Nôk±* Jû;¼„Üà DƒÃPHÐtÑV•¥hð)Äßr´—åhjq³¿²0W¦-äRâHa[<¦Z<–Ö³ßä6ñ£h‹;+N¸hûhôÌ…Y+\˜a µx¶tÊ4Z¸ q&§JcfDz¶“N• u¾x,¿-‹FÇ·ˆíª—¨í•E-Õƒì¼_iP¸lX±Òª±Úäuáw*Ã/›Wƒð?ÙvŠóî"ÇT‰w õAx7¥ß{KÆÇ¤-~xNOœ^h¯ÒÊó€–ßA¾àã:Ý‘Âî£L\¨§  =÷AÁÁ™ú°s÷Š>ÌB™PX 7WñdzN€Ú?I_SƲeÝ«_zIäc²•ì|à}Ž´Ã!­á“ƒå8šç9tÖæŸè‹¼RDÊ(Oé3š ÿÛŽüà¯éµÄÅÛÝÇíÍxó#Ö–àÚLáÚP Ç~t–³@±{à?ƒogº›ºÍÈaÙx„ì3yf\3vÐáe{|ó‰’Húiò ÜMˆšÓý9ù<{üâ…Ü_‘Ì=·Ü)y=‘ß„#"œxPB|⮩æÛ﵂)7N5éá“·ø3±«âÄ“[ÞˆÞ ß‰ÃÕíÃýO³o˜tD¨æ÷xÆ“<Ñ}z–ã²ÍnF«¾,Ù³Ï`¼ºÝ…§ðø™ìñ“'äa`ZÁ´'XQU"-Ÿ¯+Ñœy¯<úóxÃÓ<•vjîsä‚ÄÆ!\³a€mà?úóÀ Ò­¾Œ³«Ðe/!¾#·ãùûð~ü‰J@Ò¶GQSjÈŸC­—)’ðÍÁHO ö"*ÿ‚âLůh¼¥¿äñnêÂce“ŸÂÔFßýϘÊvÈXä Âòw#ßJÖ;Èߦģ¸÷ª “ü¤–ê‡+/Ä­ð&ßïÌfëš,pvñMœi ½`¶AËÛH,Åíãáù.PÔ x7ÒKAKäøŽ ÎA_7+fÇ?Lè B|Ž†Ä˜HÒ/Y^Ü%‡Yø$ 0ÈO.®ÊHE!Ÿ‘ž$Y_`L ŠùÄ ÇLliѨƒ œç·rPXI‰%ˆ!ÃAÎXž|Œ¥Hópös¸¿{Xè€ËÀ¼É»í'¸d¾‘ ¹n¤;¯8˹POÝѸên¢ŸOx¼BÂÑ‹du| ä½?ÿÈà©`É•´UˆÏøôæ†.1ßë}v-ÂäQ‰)É>µA«§'8=[¥KO4ÏÂY¹ŒÌAA é›ÑÝÖOWÛ=—Ì®wè«æ ~(vù‰==°ñéI¶°ÁK¸EÏÓx·%ÿ£›“§«l‰8^uÑjŽ“Vœæ÷ÙRÈö©F£Ì›tÝo§;œÂCÍ îÞó¾‰×©iº2*—DÖ‚uwó®jˆ4>óôN†Ìx15€”¾¨á2ÝŸžFœÆÂDEx¦«)øÑ¤\!ÓVKèAŽ›œ @OùÎ0ÇýÄ$G7Áã«|³ÅÞ{fB¯¢“Ë'*0@]ÿ=ØÜsÖOÓþGá\DÓѽè4ŒµŸðnÂä4;YVZÉÐpüxÂ"ù _-&ânO¡×ÑWPd.ËÅÄV_ïÈ*x˜á/†Étün¶ÙÕéÖ¡Ê"Îß_¡O*žæÂƒ¨0ûxÃ’¡ybÓ tù,!÷ב}Fè;Û¨Àa~ºÒñf¹Óé:èr\r{<³°«F^òX„‚NÂmÑx 7Yù)êcnW)Øx¦¼dÞóóÉ.\Ë×½Xšvµ‹Bw­Ôã¼³„Wè¤gx5BQßë×X뱊r?´a±zèÓ¦Eü`#*ŸâÔÊlJ©5žEô#R™w¾-  %ñ*ïuJAÂÈé@´¡†)ª¥—íHý×T§Å¿.à›®íqyaw]Ç—ŽÅ;Ôñ-M;ÝÎo ÍHÀÕ`âŒjªµoæ[ÐEÄ ÞÏF„ªn¹ ;¨´º šlÚxĽë>¬G"=}ÆÖmFŸ¹ [¬€tŽÅdNž!d·©RdW¥È.{—]ÉgiêY¿1üÄ!ã³Ð¥Ê@]$†¨˜ÄCŽWquý1U¢TÂrë’E!~Ì÷ˆ.¹W²Œ-‘[Qð!ñ Väç:R¦çæÃõ&”n­Ø½ƒ<ÐÜ-ˆÐΘӞeB¼*ÃÇé+—?÷ór…3x{p9ö£ï»†Â‡†G&ÌÛ€X»DÍÍ9²تDFPÉÒŒ¡C¸ôð£1Å~œýϯ«ŠVBxQN+Û¥!kªP‰¸ûÏÇícbNi3\à„fÚ¶$ɉÏßÎ9û…UðU4Vå LFv &—‡éS¬“-“cðû­øó…ÙÕ}.ŸCWfEò—fû¾›3öù°}<÷D©Š"SÖÖ‰À¬šÑc`ƒäVñ ¥©T™ZwÉ.<•v k[.õ-øÊE.c$ËôÚ*K¶ŒsB]Ç÷ƒèŒºÊlc-iš.%UÐDü¦î:Þá§W·ñÆ’QžßX^:(ë§ÝßnT|Æ1ºLs…ç•Fè¨ÍC5º•°\…ýˆ§”\§Ñ›Ùð!w%â¹ ‰ˆrþÊÒ~0àKfˆ¼ U]!‘,T|3}ƒßÃ’ÊG‚.¾îÙ rŒ¯{b¤n$[LY—ÓktqŽb=|æë™o!˵\Io§JÕÆ”ÚÍÞL<ªµ©‚|o¡ó¥GÅ-fG÷‡©ÑyY§¤S£Å©m.ˆún¨¸ M]mò Òx m¿·ˆ§‹Á²ÅmQ;¶ñt[*‹ûí×&œÛ¯–´“é«¡\n´­ÏvÍÀ6IØà'†,pÀEÁŠÉæ]æºÛÈá¸Í%D>ëµÀðÂðû“Nø S´R(%e¤xÇ<úrLÖ}~0ªÀu#l”,Ӊ׽løerÚ©%*åßâå Ë“žé4ÓÛÓ¢¯¿Q7NšÁ=žoÄðÂ"2?ÄÞ€}°8yÕîÏ?Èw;–xƒ±vÈåIQ FµÇ4Sâ‚Èc¼z„ŒÂ•£ºŠ`Ô#‚ àè¶ H5 )ï)Ô@1Jë_¦?$¶DA]:Î!>°X‹m“îg⽄hÂäéêŸèX ÎmBŸþ†Øµ$ÞE­hK®ð ?ðDÍ‘÷÷þp˜¥“+\Ýåì©rW·–€ÿfÀƒAðáððª€óÂv¦û‡7Ö¨´Lq“AíáÕ…ò'&°¿¼…™»ˆÔMôttW êDÌ< O6r'’'{O6L)»F"}ð{šLZ¤JCj^C=¬ÙЕÍø&,ÅŽÙÕŒïŒo?7%þ'²L—-fhèèRòí—¿ÿÅ¿ÿáW¿Ã3#¡œßýþ·¿ú÷ÿý«ÀÊAÓŽkœOnqv=“{åç#Î ŽW¢ây7>‚žaÄSNK­w@D·äŸÆÇï© Š0QãÔ}ûpHÞ#s›®©ŠîÑôTZÌ+7…Žxvb¶Œ28›yÕcèa§é¾Š±¯ò\tö§ƒ/V¨ø=øÄ–ÛQ?Lä’<<Ž‚§æÓ=õØÝºE‹=\Üw!çÀ%,ª`íqƧù’ÀrÊ2åÊÉ(=–¢þ• Àˆ³®BtÉÉ .ov³F?¼št&]ùÿ~!³÷×ý†rrO¦P ›jJØûvîDú`\“ÝBlÊQÚ^R;äðø¤D!¦ä¦îý¨æë\ 9ÄP[.5îD‘éÛ‘ª“x覲¾9ÁvúÁÍü(âñyÕ|ÞN\H=*LmÆ‘áÏËÂ.¶8¾ „.öqÚ¹&yÌÇß *Õr¯’n«Ž$p± =M %ÇöWÄ8ˆtÉ@ѧª*оò`ªõÈG,º»Ž[¯Á2_ºÓž¶ó÷uŸ¾ð­ösFQÛ„º´GØç¨$î޼÷ÄÃéé4Þîq6z:‘ˆÿ<<‡“£ü•—F)x||ÿ¦_U÷D)E Ãf2Òõ̸øªP*¿^*é‘åp_lÎî(l(üV?ˆÆ×]BÈ0U3BFï™XÈIzmÞz1?pñG©x‚=y¶:§)klÛ—pDø¸QØ Ø®Š^'Ã?*d"pÏà?Á+¿œŒ"ÄnlÓ™ù€ð!cTò‡6}'~(í™À^tŽ->åÙðáìÛÁˆs¤ýf°ìØ2ìÅ],m±‹…<ä;èQìmïk@•Î÷±¤¸WßC¥ÑÈ–7±ÁgÞèÇôVѳVç Ætˆ 79”ª+ï|lÂ¥öìè Û÷ŸG ÝÉí¤ã<·(§Û¡zNcâÕà=|Ý*½zÀÞL­ó«Q›¦?·(5ˆàOÛÂ-çÑÂOHA¯>b}ËÊ®<”{R5ç.ˆaz¹©¤·MiQ+”iòu¤®T|¢j:3(q«™‚—¤)P ¦€z%XRõ¢<$”µ)¦ñÛ2½¦ö­žÿôøG†d¾$v,¦Ó4à u-Ê…¬9ù@G’„oï‹m*ÇÍ<¿êù$,c$ŽC«¬ÊŒ.%!¸;Ok „bW‚QÉxOÆXË÷>£#dk`(çŽ{”á{`á êp¶…Xš€@l:¾C-"‘¦úìà Å(I‹‘±äå ÃIÂF);RU€Á™Dƈ-Þ1²ÈCÓV èâ‘b‘Ô!qtJ;ó+ß™/•>îë’¦ï}k c >WÂ]s¥y3EäÍ¿òf}û†¼½*ä;Xázb•<ñüa®ˆŸ;b!Ž‚…(2g°ÈÁ×âíÓÃÛ=ò[øOTÿñ/qâEÆçž ¯öüB¤Ï«Êì¤Rô+Ä i‘r遼#9ò@¤( j‹Š1ùùx}‚C²`1,ˆ‡WǼ¸{škf)xÕ:øß‰X ÎñÑE7î5¹ö^|°À…b œO:0žÆ±À ;¨ô,Óùæáövûù”@}CÀ÷‡[ðtØ |LZ!Ù0Iðì,øDÅ`1ãsªX Ù—Ÿ­y‡…ÝoІñÃE3'6­2~Ø…C(ÆY~åR5Üp7»I‹ð‡b&°\Ø/™_ððÔ.ìÂëm!‰S^ç®Ë§ô{·¶àŽË\(%«ÍŧÑcˆ@sicšå5B#B•ê1•¶4Æù’½¹ª1bUƒOAcÁ,ÌC$J?/r¨l™Lô½’îX[é üALmK–´ø1]LU¸î!—ÐË4&ù$s•@Êg2¦©½¾ÒsJaLІ=ñÄB™®L`ª°Ïåˆi†ÁØçv$}1U¦o‡ƒñÖÅÔÔkJ~$ÖÚu?ÜàýlHÑÒ«2y¿G&`mÝDyØHeâ÷[ÛÄ–„´ôk›J¸ƒl²­ëA Fû¹é^H¸[ôçHSVrøÁË ¼ eùm[ά­“3k°k’Wn¤µÝPͰN¸€ëŽ)½û‰}%±iœ²èƒíçzÔ.‡‚Ô´Å’tpØ–®mŸjRÇËŠÇ0õ³³±­âPìö!*(׺ªK›R¤4›k“¦s:üŸ2úU×E‰7¸Íü9Þ§r ‘ ×óý޳9l¸˜¼}ÊíöÆ[›ÜK(pfýŒ¼˜iK……¼³‘-·ÒšÊM´ø%<8" "BŒòr¿ {$€…—‚Ãóö‘ôþFé~J5}låÁ’g'‚Ûq¦¼#PT0··w§#ÀS7ÏìÐ| ä’ 5–É"Ÿô¤L[Ñ.ê.E´;¡Lëožñ£y^¬rÜ)üË37ßzþS½1[Ùõ~Æ&Š$ý`×Až˜Ç5æÒ­æ6¶Û ÅøðgàMðU]-‰!]φ@ݽ0D£ëU¿#¼­žŸIkå™´zPóË ÃˆËÚ;¦³}|Nh‹Ùs~ JuE«öš]Y¿ ‰dN5ªn3_ž6syD¶¢æ¢Øk‘ OU|عÐ;ž ¸'ø:*ä¹ÐZßÀ´õþÔ·O“Ë5ÉÉÕ..Úyb„Æ+ˆÏ·èä3×ta+ˆˆ( <ü[¯áŽsä=¹ð@,Ù´U´/‚ŒÜv3 ™Ô:‚ólXÏo©Z³å´Ž™ìX`ãªí^VŸ‹î­Lkk®Rž\ÇPQÏܰVœ\ uð=MÑIRfgÛãUè°ÊD;îäL— ‚êÕKÅ©¦¿TþJyeqºRîGॊ€vÝc3÷B³Lª:ÓfNJUfyr({CÒ O µXgwOœÒÐ(àÍ"v±L:I5s² ÙÔ(æÈɶ–MpM5;˜³YRŸZÁız;\§p ²wBå2òy€6ʶÍa’6#4ÕÀ]ùnÒi£x$ûèYÞÖ©Í…mfž2á«ø~x3z——zô°t÷å•>(iM"A¸E§¹)VÍ“k¼ÂøÆ¤†œØS þŠOîŠã"Ä-â³n8¾Ên&Ñ*qu²:»HQê={?ùÉäPœLø9¦“I¼F£¬ˆ Û&U°øÁ‡ød•÷k€‹DðMã>~*úzðÛù‡Â3þ¸¥ÛÛ¾m¬ü@¤ÏÃ!}ã’ÎOûx¹Z {âo%’]|éâÏÝ —ª¹«— €$±l¤M•hòk5NlÍ™5  b P±¦Ø Û¿*Ö"2ö {U¨XûÒÙ·L«³gzõ­-—&¹™ž?öë`»d‰] ‚Äï<ÄŸW¨ùEºÏOØî ñ¯÷±±%q(¡(‚ªùórþôŸ°ºyzTÚU³¥ ÖÏÏw£§Å¶^ž½>ÝÛ§ôÜuTTó ‹Q1iûØFÁ€‘ìëwWòôNIÒ„9“úDÏdSa î{šF¶AÈ:‚ÁÅÔ…bjžž°~\xEíÌEÍ·™?œ&/ú”ÞB¤›Ms2txAAð¦q·Z Á›v“ Þ’V’YÃŽ2г£„Ùû?~ûÛ_ü—… ÏÛqý” Ÿ2•{ ë•L7v÷ÆÍô÷è€f?÷h*Í\QŒ½´_˜¹·$¥¶E€¼ƒ3€¼Cü@þªòî<@ ,wÛåÌ}­–6,`¸ÝÂ/¿ôjøEqqUŒ¾ôBô%ìoc<ô|÷™f!hÃRyäÕ7zµ‹¾/Ù‡0Üžläæö}¦¥YRŒÉ‚À ì½À¸âAU°u ËÐ4Âðæ¸É­ÕÐUqGÚÈÍÌbG÷>VÅ=ÝsÑÄ]y³Óó^“ö»_ÿæWoôà"­ûJÅ}èk·`Û;ïÃjI×{r鶆jfrAu­mêt>Çë™ö²¸?ÜÜz8åi¡c2 Ý©™N¦?Bª4­»¦Ï•¦ii<“ZÆU/j³ Vðt-û⿜›„6dHwž“Ù/G{€`»ä~nH/èfŒT”¸w RêWJÈ>Á‰v jQ±é Ý1`òÖqx†¡5™$÷H2Ÿ“ÜÞÅ3ôQy²ßsŠkÞËÃgÚ­óåùÍïö¡?Ûþ'ÊoáìVòÛx6¨×ò0®íÉGDX¨2 .ûÓŸ`EýB±¨p…ýnÀ–\lˆX1Æ@~ˆð&uµ¾¿ñ]Áh 7pã¯xî^s@,¾pa{ÉQ€>QÁô/jò¼À4wãSJo|"w§Á˜ºÑHÏŒH5!·Y›oÝ_ÔæÛ·Å6ß¾-P¸qNŒpAG)¼3ÿªP¯YVÃÒáÇØp˜ØÈԆح`x¢ŠÍÂ{_Œâ~$ùš<=rÛ¼ÆÈ>ø—ä®uê:u½°S×ï£ û¼`5gZuñ0 ¾á^è¼Ñ­°îj=_bõez¢geh‡R«®š„‘¿Éù¸Åû|È}"gˆ …ØŽWô†µšÉµ±äžaµÍ±‹Ñc™ÎlÉ‹’éÌ`Ûî~d*Ä1_Í/çÜÏÏ üHTúOd>ÅôvóÝW·Ó‡?àDKQûÏÇícÌD¨'µ=ÓòÚÆöÕ‹äÃÕú>/X.ëÕå’“„Øõ,ÄV°\jðˆŸ½á¿¾w³ôø7Isëë` ¶n| ½€fá~ãîBÅPIë=õ»‰%´‡VЖÃn[¡{+†Ý‡lÁ«Û¬m@2üQ²¨@óýýóõtáŽØ“ïòô„ýŒ°zë^áDü~0uâ`HVçƒ ±CU`uz`±kú]«»ìÒèÀTMLx5oáj®JƒwKþ9JhûÊæ£¾ˆTí ¦¬›D \ƒ˜¤î¸ËW÷VѳƴxIqÓÖ¥òjÝÇÞJðû2¦ãnäûb[ÖÕ±HÙˆW¶ƒ£aiÁOoó!þXëñǺ=TÌ£øÊŠ[wvEOG¹!»²’·Á Î¯ íÜ“¦1´ÍÂ;0nÊ¢:PT!ªlº È.Ú•¯ÝÇòÆKÉ1‘’Á£‡ÇÉM+ØæÒ—/âf¢LÍp ²I ÂáÑuX2’¬>ÃK5@ãÙª°ú_+ FütÐïN%Næ†îø·sYr¢‹m ªó±ÂOƒ•„G±¢®#ºsÈ‚?I™«§Ç¡¾ä}ÐÖ L@%ÎO„k‡ß!E‹Ž¶iL‚[RÙgܼæ ~¼ð„XVRžÙíú°ü3Õ‡ §·TFµ¶ùKŸ]¡,jyX¾‹Ò.™_]ñû­øó’JÎê>/X›Uí>L’66E¨iSƒ%¬ƒj¾þÛö‘ÖÁZw%ºvÙòÚ:î0Ž×ÁIeë ß-[ëzˆë |¾ÖM_Í–3ü0UbSù:X·˜Af;‡òTàÜ;;¨º«äùÐî p—úëg‹²Â câTûS'<îß'ŠΩêÂrZ{‘6:/ù–.§ª©êª¸œÂÝrºY]NÝîMW̯0³å´Ñu“-§ªÑm–SÞâÌrÚ¸èÊ8ÇíãöæIªÄI±x:ZBÿ¬-x?+@v¼78ªE¢MiTß oîP7çV`ÕÔXyŸiZ»ä¥1C'ú"}*ŽÃ ¡ø†N¼*tb¸€>ÐNÌnlX º6tÁ&3!%1éŽj-ð*Æ]½îÔ%aW!êR碮ÍzÔ¥¨ÑÁ]û«ÔÌ6[ÿ·^vR—Å\8å•ä½'®´“œðŒýŒPRµ§€š«)%WqþHp„?²¸_æ’Vi$K*É¥u@¤Ls/u;xù®ØˆI¿½€ïïìk˜Ç¹Õ *ú>½šm0`|¾?QÏC–QÀuøìë¶6øízœ÷ïUšZ¸g¥á<2ÍJx|wˆmÇUp†~x¤Â¿ ÃpAT7äø•ÅšøñB$¢Hä/ 6E›dˆµ•›n¶ïVAø~+þ¼DgluŸ›íºÐ&]Úr°©û¦lúºf¥Ka¦±6[TfâéÍå’㛑•ûÀo*b'‰¸m|ehøxÀ¬²é³~8MO焚êÁ ¡&cA¨©I„šfÆZH*¦ã.5Ö¢òYÍí–¶™_£ ÌŽè2BÚÛ¼Ù uiÃ<Ñt`‰×´ÝD)ï¨K‰½!C›¨`72Æ4¡%GåS!–ˆ¦iÔ!ë`;Ä„`¯â$:Ì—Dí&gH¨E²EÇ1ÿ¹Jƒˆ4î™üÜÔÚ+±û´AyT„š}³0S£GŸQ#uìaO?ìù„´FÑïHÑjÝ@‰Üv…BþÈô©#%‚B%¹G#‰ßSoûs²¶íL1ƒïÌü¡²vqrÈ‹$%ÂÈ’¸¼²]GÆs¡²¬ÛAÔZò®ð{ŸˆW—&ïkû¼`>íÖ‰˜t˜~Pq>íÊó©…–™ˆýhįFïäBÚî=NËi»Â ämųù”Ø\~SAÄù´®Û.ΧtÀŒˆY»äGINdÝtZìÓ - ‘‚ü.m+•÷hFÇ¥òÞ€æ±APwìÚf¾#|(v<¤Êì6è“>JÔú°Z˜®=®s>“¦yÎgÿ½‚ÝO·;‘h ñw*•Ö‘(K¥‘›Þº¤žjŒÉU]zl… m± ¿ŽC;Ý¢üzS÷¶\dW2Ji¬ËûÜ¿<…O]*û-}MilÒÅwq‘½›Ç$¶\d§¹f“´†yŸÏ²kK]iª¦//Òsrt2s fMàÁQÌó‘Ôß웞(9ª@õ݉‡Bˆû°zN·ÜààÜ$ÄÇ #x†[m¢¿#”k}­6øŠ1éy‹Ò÷D-†¦.ŠÜ„Ã:1åÇ#|7¦}§¡Uppon»Ä'ößCW*þ ;ÿÍøÄ¼H‰­P‰ã‰PJJÏNf¤tö*ñ#i)PÐqtq­ðxõ·2Rð))¯ƒGAaUÅ}{w„UæŸÿ’ºÛö)%®kšiÝw¹VŠƒHÒ§\ á-ïIÍ9?’~‡”¸9D£2,ÕTPkÂäy/’çkѲí¶ò.~ÜóX¡âÕ‚BÈ(q 6>‹‰NyQãyGì_Ð%O~;…áÞjzб¾µ%Љt¢¢%++Ü0¥xàu~©¿ƒ,Ýi‹’ÛÀ¿™PÙ w9 Å0AÏÉ›*ÈOˆû½ð’{Èœ üŽñŽÁ[æ"ðûÌj0øÙ‘ÊçÍ™¶M÷¡¡;2²‹Åë¦G×Â…m‰wÑæ˜um8ÛAI›] TÕøà‚ô{³8oÝâ³û'FNZž‘ª7Ú#|ÿï8~NÚ ImYòØÒJQIO㘈¡Šý)X½EOŋЗ R%ï©Vq±WÇsù÷ñî!H~­ÒsJ΂©°xc´èËà×Èk[¡Â 7¢ò¶&ì͔ֆéoìLâßhçèÞA¼ÂØÓòpÜãxØ>în¡!vGÚW?°‰÷ÿDÉ-›Ô’Š£ë7Ë—d¨bÍÂ%ÁB.Þ”ÙÕÀŽvÖ¯´gq©‡}¨ ã¸{5¿À©¨ùBì.º *^†—^å‚T줒+5Ú’t”Ôqy>Rª÷ßþë;H6~÷{šäp€ã|÷»ÿømŠƒœ¼SÍÃôÛ jŒÊ ÖܱÙ|]Dÿq?Á3Cë j ÐdóðH::à³éOâÈN?~ƽ}8 ³òxõ|ˆ ‹Ýò³¢ÏOit8î&iIRú\7IW—ÀRüxÖMBiåbn¿œÚ«³¹½K5±jP‹Î] t¤&™_nׂçø:Ñ÷ÀªK«uAŒ¾ â}u¡ ÆÚ>/V½Ý&Vû  l3VÿàÒ–Ã(y»±ø °ŠH G\hˤâ´ß%+N[rä†GVOÅ:â°mðpƒ}èëÐ$‰? Ã6J™¢CʶŽÉ¤Q±Û¤ë«ELÖBfœc²I~îVZÉ;$†d™Éf [=«åidW¤-tñSÑŒS˜´OÁ¸Ô°r\êã”G<䦷9yÌS¨Iöq&yÓþÒ>Î}$¦Î3’GådNyn|Æ£BÊ£ i«¥ °AHz´…ŽÏÓ‚NÛ@áÛ oÜw?{Þ#ÎD&>u–Dõ‚%q“.‰ê+—ÄzxKbSYsÑ’ØØâ’ˆÏ–Dš`ÿ6KbC=q>í4L—Aó¼U’¾DwBW¥¶­áß qÓˆº}CÜ^â¦ÿ¾u'†—êN /Ðø(ã] ;±ÔÞæ6HºÛp¼’ªy×zՉĢJEÕ‰~®::\$(‘ZÁg¹cPT¡è½ Eâ'¥X^"3§‚g~RQ–œ®h?–XæðI—OÂ'\ŸÆOÚëÊݨ™‡Ž®­ðС-’ê;×0™]7ÝBõ\U#b±aFf7 m3L$J}(µ_ª¢ =¨b˜U€y›'뵺éâÁ|ÓjT\AI=U‘Œ#°£t&ÁX“")ë?µ‹ôQÕÌ‹•±¥Ì 玅X°Ý)èšj¶Q³]ÍEÛ^¬]b_ûØ<ЋÃN^I„U÷Kš êƒÉ´ú±¼¸·;üÙÆMåͳã*JŒoþ‰q%aR¾l J_&1®""HŒ›®²^ƒÊøª Àê‚Qîxûê@hvÔ; º.‡± Ò1,z'\ÒÇ¥Åtï7„2Tn­h†wà»ÆöGê Ùy­üI¢k=™n'è™Ke^àŠ9¤(@£yGº_ï¹qAC8Uì…üáøp;JN†TÝ9*)@6%·àÙ2LIY+¦oø@3s+" y#*Õ1²5Ùaªr3 5¶/‡`ŠÚ’âFgV™Ü PhLXa!"ñª=¶å 1>þ ËðÍÀ8†¶º²Uya«mÓ ¡¨y—.`›÷óÙ ùÜF¾Ÿ×„å+vô~Hdï%ŠSÞ¾ˆ|(r k+µõ+˜KF÷0o Q¢|ëpî`åâñ ΪOBÛ˜¦íýÝC ã›`ßzã3 Ì{8þ”ßÛ½ ¤:z»½?<»hœDïÝâé.M°g{£FY'óÚEt;ß½rTrnnŸwÞì¬ì*¤¨ öÐõ«GøýVüy‰Pm¸°Ï ^¶uõ8>5ðºŽo›.¿mu_ 䟶Ämª:W·ÉI$ZI$ «ff)­Á´ö[JûªRZs‰^DÀW<†aƒò£´ì3lû’Ͱ„˰íç&Ãu?Ëá6u?Ïáš*æp¼8¢Ý¹€0äƒ$•Ž%܃mb}L;áXÛ/q¬‚÷±*YKçcÞ Æ:=ßÅßHÆ”û¹˜¾5›ÄâØ;ß>l¿?ĽȪXîÅ^ÆœÇVÞ-xw›¤²3c]23Ö•'ÔQ*‹ûíÆÃcrMuÉÎX{;c%ÇÓFœï‡ãÉëª 2ïäÏÒì\Ì;’q1ì(/$¸&ßQšã¼£¼" 4ÞªÙ/(ø»k-Æ£ýÀ*½"§búpædÍNÅÞc;§W¤µmÒH6Û¶p~m#Ïöƒñ’§MwØ>˜\¨®‘fß´옲ÉÍäöTÐuÅf¬ÞÒ^éasò;–NÝÕtãhÜKVX~GxÑwÒ µ€‚‹¼—¤ÌøC±±UZô˜¡3{yÇR›(!ûû{Êjé¾5côÚF7äQ=ÉnÉx;ã½Sø#OìY²Èsb¶½ý¨4apn‰©1mÐA7X¼{wˆœÓãÝQ%XR^à,1 ÷¦öbPØ’•wiº$ÂûŽcþÂç˜j)E_\HîjŠþÓ›fˆ»’°ljBùÈ$-y¤Eй ð™÷qžÄ[TãT“_O-„©4{½#ô:ÞQÖGêáp§O#=‡ˆÔ¹û8ÝyL…ËÄítƒ‘»†§ÑÀ»øÞýnûèn´wdGz$Üýöß~ÍLhUŒ·OšV‚“ç'8)t«žŽÕ;V?A”xA±—­hÝuɽ[ößžP‘¯À|ù “‹gTxå†}˜£ È;Ó!º¶ÃÜÁP¿³Pæ¨Ü‰-{ÃÜ`ëÿ†~‚YšNp­;žÍÒ²ÚRï.s¨X¼µí8ÜÄ¥»ŒÉí>iò¥ËzŒҵʮÈjÁ4º·naõœ™¼sV¿°ÁVñßm÷SyH·g–¿x>~ù;Än¡˜Ðñ¥)æDc¡m¥ï;°y¡È†Û-.n“DzÀM˜r÷<×'¢\žXòÎ]Ï”B‚o·8Ý"<¿½qsr4¬:¢14Z“*Þ ý8ÞÿD³ŽW÷#5À‘5üqÂ;0KùBUÔ½^iòtóÎ:ä’ˆÀ%41)]`ínÞ6¸îÑâ)~ÒteýÖ^³ò ž˜×%ްŸˆ×žµMðt‡¨pÑêàïÛDùDͼÜàÿ[ð!Ç+uï‰JMjƒô„p{ E¹ô[üô¼÷bLuŒ?a—ÿ„#Ç7÷,¶èÁƒúîéj"Ùn‚÷Ö²5Ñ9‚µ,Rç>ߢ‰ó›ÙäI©+€¹p°½‡¡ñ3Í•—ÿÝ¥Ütåò9÷0þòv{:a? %FTrò3Ö„y4£¡]á$Þƒ+ì©N߃pÇâEລû|©$®öx÷Ùߪ?ù×gÂjJ„âáu¡øÃþi¼‡  œBѧ„®8\üÛ¤ží‰Pöm¬i6ç\©ë6s¥VØtWgš…°:ù2袟aÌÜ%Qû¬ /î }wìyÓ`#ëvÂóu;})ÚËZ®¢UúÑÍ*§§°j NºOûÆL76X™ƒm ]Ajjl±H(3|’!Üä-Ù)â[ˆAòˆV8±gþç'^óö`š¤!qpøt¸GE†š|ór€-–ÿ«gå4YùVx]å€úïº`^X0/+|7ç+× ny¸X«÷¥!ÇP{íf6¾…ì!ô …CÁƺ'kõ㢱 hií; ݈Š: ca Ÿû[§C—*- Í.ôÂú:À}™½­ãpºíÉðZÀ <±ã)ò~ya@çô=7ÛïÃ%žù(DÅP@ö]‡¬ x yy í-öª<‡ó݇4õ'zÇXÀáSmÎ ×X–¤Àáhyy‡kÈÞT.ÍÕmÍgS…-Jå‹ÔL¿­»èŠG£ò@b‘€Çḛ̂æ¤ûÁ.8Ý/—š±â6Yy€_—”ÖµP#€>­ôHLÑ";pÁ™8tjµû"Á¸R$ØÏ"IuÈF¦º€a̵֩Ä`¨x5 Š_Ç ÞÇsŸŸyrâJÔ0‡ùëѹ‰ÎÛØ <à±S ж[ѨH |_wË…‚°Áÿ¦C¼ŽB5XQ(ðô 6é™?¤/•’G'A÷…nU l'²pÞõâÐ’”(ÁY7§ú\ Ã5Ǻ‰å-¤/¨Ú¿ ’ô4õ„õ³:œ±á¥üø¢rDZP_]Žàj„2=ZŸq¿PHA+]C{É•»X©-ûXŒB•D¯Öh«¾§¾\LâÑí!EñÅ}’²"Û[r‘ܧÈž¬Ü·Ð¹§üŸf|¼Oõ”RJÁÔ»®Ì Ü!%;("‰×&w$ÓôÍà¤I *rzôK8uU×òóè³mDüRĨ4³ùîÏî·T•^5{§ l*Èš“‰:í%9– YOî™[°¯iqï!KoS3ú/ˆÇ¯àºï1',ÌBHe…º2TÜù”Lê%äÏ’þŽ ¨.iœ©´Ì”O ìÕadH°ÖhDpáp!®Å&Šß3 ë qS,ÄíÝÆ£ìà/TâØØå£ð‰ÙBrœÞ5î)?ÐŒ@€Ú“èJ¥2nÿVùú,ko8M‹©t¹Ÿç‚)aåNlcףС¨áµÆ×ðU+Ôð|…1ž”¬Û¡ÁŠqÝŽ}H|ÝΊº]î•s&9vÀæá9½Ëêwžš_ÀÑ¿„¥gpŸÁ ÁOjv6¯ÙBŽ%o,Þ‘:ÿ %廣¨ÚiÉÎ-nX³cAHqÛ %»—ìÇw¬Ý¡›µÃ9wƒºö¼åDó ?.¦sP8P% j𽑯ÂñèßÏ)¼ŸŠõÖ0±‘"P‚Füé0÷9€Uà× n¯àO›3ø“b*CÝ"wy†D] ®/IØ1(…úa„Ú  ËÝCí¸(’ÁP\÷ À†Pg¬'Ì)l7F‰ý•Ni÷=¸éEÒ¸áÒ>—cv½QšŽEa‡"HÑT.G¡Á“±Ñí æmÒÒ2N×E´®3´®AÄîZ÷ªÐºæ…mÒK:ž}µð$­kyÎ¥QÊ34JÛy£4yRÏsaŠÞ•Íܬ&{‚ݩ͙vO»pÑ&í)ªC%¥­o”ÕvÖ%  ³.i=È.i뻤 Jõ6×ÌâÂñZißÅ,¡Ü?: 8“´hûÄïgÍ‘ñ¢èVU¯âWÈ@­|»,¶´VµÄ¯µGhÖ²©u+Z6a Ѳ)<95v[{–³F”GCÀiHù¨0’iêU>j]õe>*AUAìÄÎø¨Õ p 8Ñ+°fFM¥Í·0=¢å(ÚSX/èÞçGxi~7„JÓX5»–AòAeI'á< QM%kè8TsÁ«‘Á#R3Cû¹'–2 u/êWJ{kÖÐ¥ÛØ{té)…—fÔª¦¶\ # µSôÕ µ£]sªFqÝ*n@,T:Â+b¡†Tb¡ú¼0ÜŸú¤w÷2õcÆ@VîUËy¨›ÈC58My¨êEÀO ÷Q/~Àƒ¤ñ4Tu uC4TØË믾˜†Zd¡ª2&oi‰µ"Ÿ§¡ª³<Ô‹h¨jÆC…öîÅŸ¥&ÛÏZ‘Ïê>C°üÝ*Q©²4V}B†7õ!Ôβâ•ËTq½£LÕä™*2B†z¼BÚËÒSÊNI¾Z0J ¦CY‘§">”¦ªñ÷AšÊ&êÇ9AÂZúaA?~?Ëê3 ‰àMgŸóþ{[טùŒ”8in ͬ˜’6žÁWeÂÛíÓ¢4”“r†|'b*s"lƒ±Š˜ž"wž¡$/âkiʧ¡¶íVÓPü~+þ¼¤Pžî£¾6 ­×Kåt™†Ö. Ýjå]«U1yˆÕr;˜ª WÝ­ÖËqƒ÷ÅaGLLTA†º­üŽ"5é]¸S}ž¡ïùð"9A—AÒÞ™g'8,ô­¤'8@“r!?Q4|Ÿ&(xjuOÍS7²ªs¹8ÿ:—ë!sD/׃¿“öKKå5:vÎòª•ïVjå.R`Ñý@K{?Ò<_þtÝuÒžëÏu7ðOÕ¼ÅjÊ<íºÇ¾ýå9œU?ȳr{[è𬆾ÝdgÕT•g¥h‹b|Ðb[ÐYâÑ -tp¬¦ôª-¢©ZèˆmdO̼…®W¸ÍÂ²š·¨„›»z•¡t‡âík|ˆ èj±9LJãÉî<âB]‡X£C(= ²„¿’îõIj6³!z„;%l›²!Œ`CÔj ±1ò|ç0ÒXdC¨%:Ä¥lµÆ†Ø¸\£º„ ¡ÎâM—±!T¤C¸ôÆR:„©«¶@‡P‰+$zõÍ]!áãr*b*• NS·ðUˆÀI¥­8¦Eû+‚ŸnÖûp,O¨ƒN{:tâwqyFDˆr'ÎÆt¨¥sê¤Ö»q.FÔùÁe¡Íª¥%|¿žGÔú>—£NÍ*êÄG‰– °CŽ:)@ ÅQ§ßK˜˜à,j_ƒ[²d€ Þ=îYí .öñ]Pü®½Aešá ”ôi€Å}ô£RW _°^œ¡ŒˆŒà-gá&£o¥ïÌ@·ÌFž ":344€×©þ¶ÖH¶Kõ·¡eÀ’Œ æ÷Ká&Ûc©<‡›øº¾y˜a;Šªã5H ¾è½<”XWUÚœýÃT£œ*/RNJ±Ã ¡ŽDvÉ"]Õk€“;-Uk-N‹÷§%º2`¬ ê#^G$l°Å¿é?pQ¯êˆà©…$‘‹T퉗gò|iŒ!ôSÝ/¯¹'”ˆB©½±¨Žï×îçEššT“×ôžÔ¬ÐŽ{½PïI©´ËB{Ó´],´§ÍÅm îàß îþ†¿*,¸{ü¤ÒØÊâSéCL¥÷òeÁ¬úÓ(Æ»J_&å­%Ø ÙŒ2ëÕB"Ë结dL`öùïãáùvû×/Oa8”¤´BÆòñ’Âp—¥ü×(…É —^0Á.9ÕÔšJ+¸Ñê4§TˆøVËY«Cç‚ÿDXÇÌ QÝ[¨¢ZPLIw‚À v*óíèJaj’QÌ[ÌÔÌúåõˆ™Qàÿt=këÇ•Š¬ià2ÞN¬à±¶žôAùÙájóÂý dçàê¨"‹xTUf] ~2\%ܤÛ42 ½‘ãÇǰìúàP³ … K…ÌQLz¼Yáøççé‘b-Äýé.ËýLØ'»ƒÔÑ‚-$‰¯>¹Y–›Çƒ/ß'X‰Ï6:Îa«]Fâ@’'M¡:Þ ÁÚ—Ûw$j¥ÆYûÎA VGZ-õî j¥ˆŒÏeøJ.Z¯ð{„¢ýyi*î³)ìs9|Õ®ÂW|Išj˽;zúùã÷ïãKŽÝt}7Í­‹ŽÃ‰Â 9.ú•ãˆì&ÌîLÝ [7:lfYnš¶.JŒà°îËTc¤AI•.ZÌ)ÜFªŒà¨m[–ÇQÝ— ý ÄÇ QÄS¥ýÝsûÀ´C}r?(Û‚ òáj¼{Ü~¿½õ[ö$oÉF:ƒ¾ë6³3èáú›¸ƒ}w+Ï`èÍòÏ‚/ù0D‡÷`„'!:ÖV}73„ƒg†kgþ`_HûeA+ Ñ=†§g¡u¥×ÊššõÚkÉð s2XSär·¨«­&Ö²! G{ÌuÕÝpÊÖ™yM±ÖÄ-dã‰ò'ƒŽÛÒ¢Ñ$¦Æ7EŒº²ÕY|†ðW’·<-PˆmÅiµÞ”ûaà´ü¶è¼Ç£…ÓŠÏ«kÚ³W´ë´¸¢´Çœ‡¿’LòÒ+Ú³†:n±xEý¶tEi´J‰ÇÚUiùM (¥ªÖ‰­<Õ¼•X–MŠâÓDˆÝ âò@-‰²*±Îž#ˆä ì=.U——"žÅרËgâò±1·µEuydP…‰SêÙ§ôîË:IŒj=Të:H+Fùçš$yýÅÄÆ ej¤”ý>HÙ—™Xf\‡ýJp±Üt8¸¡,° ‡ ¶þïŸLÅ÷ +œŽÊPMBð‘ŒëWExKzötËÔ¥}DÇû¦Ò¡}HúîCÖÈŠ©F€SºQí“p™ÓŠû²"6> >¥–ÇáqfƒFk*€žNì þ+aÅ—µà¥&eF-€“ŽÕn§[ÓB8¯_Ž—ÅnyMÜ…Äé=”£˜½A)W97» žvš÷½}À©)*+¼€2uy|wxwI.8(AÏ®Ôýøï>ÉùG™ôù‹[>?m}Á%Àc{Ôzæ“ìàv{C¼¬‰Þ?`è d»ý“.–¹:ŽÓ#óN'¬'æã3‰w]í£»:<Š·°d|B€ó?I9)€£Ÿ£Ñ$,/GBWòC¢Ì,0„¾Ÿv é|6t­$™çDÃÏ»öÏñ.)  å"­Îä‘ÊÓ×úñÄ,,|dCr²ÔÏqRÄç"éõs/ÀÛŒÝq@[ú ŽÌ7@üuâý qdUÞ#ÑÖ¾Z}ð/œ7›óë)ú BñçÀ%ØóöirÉûIºç•|²É•(Ît¬Vq¤ë'|¢ÿ0¡ya¹Í(Æ‹ §rü[RV"4ÄÜLB9 ðýÝùq¡Ž¸Âô£ýËtƒÅfš¡«å °Ü2šx`¦æ‰&­û·â½?,_¨«D8îÆ§G7Fº°{/ÓÛrà“9ÆYbËÚx"¯+rwÌyÆ»—J¯©¿† TÕSžñKŒ`$ÏøoàÃ@·$ë~øy}`´^‰Œ¶¨cöÚ|`܃ñ|`t[ýÍ}`PîaÍu)s—&7…N]üxž¯êáB1ó½ZÅ¡Kbæ¦2 ÛOPôô—)™« ¥¤–¥Ì6ÍÏ-eŽDGÓt«äIø~+þ¼}^ßçrô¹[CŸE¢Ï]¹eר:Š%¤O\ìÙ5MUo t_µj‚vÌŸäïB_)a “¤PBPïw“»ˆ¦¯l…2ppÙ±Ûºb½ Ô± ׌­ Ͷf0•ˆ@4ŒêâÖ¦h­ £â—b%P•%ŸqPÞ?¢ˆnPeµ‘§ºDãá©—€h<ø~vÆâ Ü& ãZ3,^,ü2¢‘jëZ K#ˆÖäI³6¢QÊ}˜¶&ƒ:TÍp1 Fûe@4• f@ôJo2 û~m3ÏÔÊUèMî:Û×k:H8\; b¸¶¯‹:Þ8ÜÑT ÍͶ¯¼¶oQÖA‚¦í¸-^'Mê ùzŒ„ÂÚgáh·)bûü´êJ[qZ¸E ÓÅ^ò°-žV€£áX5UV¯h­u¯(ìQnÓî‘ÛÍNÝN]ÑKW4n §Î£”¥ðXV›U8ºîڴ뾪"ÝÌÙ1€Ã6’À!'EÉ›ý˜ðfSLZEco¦Ê"5‰¢Hè†Yjµ– ´ZF¥¥œ¹×-¡Òœ}è‡GÁhqÖÝÍ ˜©båpÖ~¹£ô£òYŒ~îÍ9:‰›Ò†áü'$Øçy“UÆüR“UÝàç‹&«ü}Ò,\õ-H86‹ÝÂaƒ-ÿ GxýÂþt^ ¾+ÞÝrÃpÐNÏo&>–r"žøiQ8}’~Ò Š½ÂjI8} Pi&œŽ^Dê«1ðW/ÅÀU¯'ØôU`à)vÚ»ãϱSpfØé€øé7ìôUa§Ã ±Sª{XxäCéã++*-}¬T>@õ…µVøX©{¨YçËKUuiÙ#+®ï÷ҢǼ ýkгš‡Šàh ´Ž/¿Õ¨»~µŸT3ð{süV—ßç°oµ ~{<ô<ú­Vàï ßj3 õeø·Êp‰3œ:Àj JFSQhC]ê=B{ITåë¼Gäó¯ÊJ ^®´¡¾Ò{$SÚP Þ#Œ®^(µ¡^`>²(µ¡ æ#¬¾p‰Ö†z‰ùHAlCóYÛPÁ{„u^©Ø‰7ü\b¬Ò°"¶aH5úçÛ0¦í_ƒØ†±Ìò.y|ÚF»y÷ȲÚ¶_ì=ò·VÛhCûó¨mfb¦¶½=çÔ6†¡)©mÀÇ 0;8ÓʪÑG¼ÊûAs<ÎíGbó‚…–ö¬yaúI½G¬A°kV:Âìök¼GÒænˆCÓé}6YÿÏö óìëD:Hyµ  Þ„T±õA1®°Ðñ@Ôã™Xø~þTÉĦû|uÍ©_—‰¥£ÈšS5'5“‰„BÇÃgïWbÛ¾d©j‡aÝS6ÈZ‚áB¡ç¡å!³ž‡~ØÔÀ& ÈÀãÊž‡pó¡l« ×kÞ]‹xõ¢yŽa"NLýC:µM<1BÔàÄlU K*)À–u5¬žû^egr´µ8B@ÿ0n£ëåKã¾Ì4oñŠ7fÃ*Ü(ép€a[ŠTmO&î¨)GöçHûeš·][Ï Kô°¨Å Í» É'Z÷Úã«@¢Ç¡¯7uߦú#>ëÙ cà-Ôšà-3tõl˜ /~Ü¢Tú0¤IËgŒ×†F+õ6€äC…ÝX…bRòô঺·ùi5zè㯃-Ôâi…mQÔ„G ÑÛ#™¾[•`q7ÆM*F…Ã{z`8;˜ìÔUSW8uÜbñÔý¶xEy´RoŒTÝR1IH ÓP"qºuÍýËHø(!߀ÈWDšêËtAG rÞÏÒéöŒ3Í6YZo]é¡ ¢o’ƈ޺‘ »ÿ~¥Äc@i)c\Ò }¿ÐZ!ýÔñªruCéçŠ °e7 ÙÚô^¸ÝøïUù„â–pB4R¡IÅF •]íQq—}Ð}¼´ýÜûNYWUŸŸ³®¼T»á-ÔÒeÛÂióh…<–ÎdÝsïsÓµ Þçm"ë>Lª[…Û¬® +}*%?AâdaI5AœëJ¸ ŽjiF ÷ÝîE“7¦WéØÂRö™1z¢0»W‹_Š5¯º /@ÍÜúëIMc 9i†¤Öe¤‚>Ò²ê»û-k¶àK@‡^˜BÃR Ét»„‹²ï*n“*ü=ü„²ïëIñt<Úìû½d2¼]i/ʊ֔ܕK3ü@^N0›ÙÕ‰.g™îlëFnSö9ÃaÆ•£ú(ÈšÞͽµÝVQ+ ƒÛêòV¬÷ p[]ÜŠ"°mõ´¢HCÀÛ65F“el{³Œm«ËÁí5l[ÍÀmÓ9ŽÁíÍ ¸­.D·ÏÛ*A·ÝZ§‹èöp[A·Ý‚M6Ëè¶:o_ˆn«1üS¿™&®â¿ ÞV— ö¬ÀÛÊê€î¿BxÛûsÃÛÖÖæ¯ oÛº¯^¼m›¾~yÏîõSô,Ø˯¥gÁv˜•üÜ= ¶Gôÿï§g¡®*ûj{j ­Ÿ«g¡6Ø€²Ò³P[¬üÜ= uÝ4¯¡gAÎ×Ö³P·Hï|%= ¸þ,= uUŒ´ÔTu}®ÔèÞÊAøñŽݱEÐåšÐ„¯æ>{Aé0 q$)íÒŽ…Æ"üõu,4õÐþ% I½ÑEtÐ(3C· "ÜßÐíW…n› Ø«€FWÝâYÒ×jiÃ…•ª[z­€P Rÿ¿Ê†ï-”¿¿‚­µ†©ö7oî®~x{ë^Ç;÷æ¿i¥nŽå®ß´úÕ·$ƒ(‹7·.teŽB߸Y ·½‘E/`nø…[y V05öÞ»I:°„uÔ®ƒz¹ö-‘K¥k£K¤ö·¾› Ž¡Ñšá ®kÓëP¥ÿq܃÷,JžßáQ, ``Ø.zùÑ|wzsû°L_wÁ´x÷üH¿Ž‚Ñoöˆ*{=fMQÛHƾìƒXøŠ |Ï.0øç%.0aŸMaŸK«ÖÃ;½îCG‰&ưCÙ*‰%Ó´_2¸†¢’¦i :|ºiìZÑZáïËãîŠ%k‘ñ{e2|ºi…j;•áSºmÒN€Ãy8ÿ˜bë»Ñ€~_x¢¦œ[gÌ¢T|©ÒB/žg×uâ|Ü™ê“)rZ†R?¬ûØ·†'­¢ø_Ήk_0Õò3H¡Õn¦\3Œª5LÙ*¸ÌPºÁäu­>´‘ž½Â?ÁÖå…ÐÜSÊ G‘æŒ?iß0ŠBÐ$Û-âÛîÜp@ÿö¸a~}?=Ñ& µüÖæ|’¨Îe‰—$‰j-KtQªQ—³Duq–Ua§‹³ÄÍB–¨,ñdçY"ÆÔÁÎó «³k¨’D1‘(#èTò‘‹×h«ÖïÀ̽›¿ ?^XL7—F>Þ![ÀGµ¤),Xxg{^B§˜n5=Xx‰†fÞ!I¸µUÉË /ðzÔ¦IxêÃ×( ÏùwêEŠÂ;ôKü;¾÷\º¾¹,x^ÝçòHÆœáßõ’ü;Ø¡¨(\W-F2¿ú2=‘é¼±ºÆP 0Öd¦]ÆsÁ®V¸E¶˜à¨ûÄÈà n[T¥AL‡íƬcKœ0j>ŽALýÙ­­“ Fc»± ô¿°´`[t[a@¿// ¡å¸kçÑÆèÏÿÍÃlIWÜv â¨ÝÀÎ]Ð<ÏCŬª’x£µ˜sÕj·,Œ×{~ŽçöPb<8˜MÒT¶)G%oBÖ;Õs½Ó·É'¼iXq µ¯n¢GoÙ|œC8o©èž8Ïú#xéÅÍ6ÜÛÌV}%ë+€úNðîOÿ-VÉÌtºÙqÜìÉÃ¥’‹i-¬‹á g|¿þüÌ…Lýn¶À2 2_Ö`mŰ_vˆÕ4=ßýʶ<~b™ë&.¬^Àò5´$³•»>³Á¥&còk®QÌÒ7EN'ýäêP{îÜùx³2ƒ^?Nã-\Çç{w‘wnœ ãéùX)bdŠˆ‘…3ÄÈ"jô 1zUˆ‘ý;CŒÒ%Ï®/y6¢Ï–sw;TÅÁl™¿7u_X÷úfUÕDõ諽<òMXü> t¯› ï×>«A>‘=%­ñŒs—*ªkBrl7ðYž¼ÃÒ9tUŒw ©; æ~B[–䇄/ÓÔÏPW쉧È#d©»© ‹)rkoÄuÉ×À À¾Üì&`wxn–¿»ùÔü>¸˜¿»áØ: G{ÌòwN¹H¦Y[žq¸š h8·G)§³kLµ–¿kª/æïˆ2,© (TÀm²5)yú–’ø#®Õ¢b’xê½DŽnÈæwÙ‘›š6ÉB­Ã)|BÁô)ü!¦ðyC49ÝË!0® ­äiòÎtË™(VÒC’è *côŬéÃótû„ÔVO²#òÒ!ט$«d†ô¹ˆ(a×EZ­ ¢Õ×¾p¸Íõ’!¡ Yö]È($ÔKs‚„rê¥¢Ž’¡^Θ7:_ÎØx~XP¼^MGÓÕ?«¦c_ŸÓtzÖtD’¸ÇÁ>E É–M½öJVcÏBaCø]_{ÜÐCa„Éõ=Í“ø»­‰•R"[àÍQe²Å‘ȇµÆ[¦´*+v ²ÔlK°Ü@¿ DSXV.àhóÆ[Û„I« ŸígôIεŸí=|FÝÀ‹A4Ù­k¬ÄÔrÏíyäÌ£±!X gDÌC+’ð@ï#„Ö¥ZÁ¤ËvZ— 4øx-*3™]×”áhJ`ÈD]ˆ€Ôéù†Y’=¶ DPí °´øš+iÎÕ0ŒûYKHÚ:•ˆ39KǸâ%¤•Ci—’²wg´àîfH j´°ª²¨\<µêì…ßoÅŸ¤$ëû\ž”Ô«Î^|YQ¬p8\Uò˜â¼F>6E[¯;ubB¢f=°]fëå-é,ºèAwÉ.†à­óA8TìèÀ†Ófa(-ËÞÀFÒz–Ž@ÛTÝû0Ü è÷µD7দ֛\çé¾ôKy„¡8á`åiÒÑ# FmÈA/=Mø0éµ€ò šæãýRqB—p’›É_âRx ×+@öÝ ¤‡*#…›ÆtZA ™>åÇs{„ñ”,Mâx¶kÎ!ÅfC?íÎ/úháxD©ŽB}ÐÜX{ä² [ÄöF!Ôª‚a[wåVêÃc5I#e;tËB}Æ«þÍ€«Á«oÀÕ«®ê¿ªPß0¾]Š/…úf¸q¦ÔçÐòÕù˜ ¯!=2ÄÀ•šâZÍç’d¾Ü—æfÉèõiÊÇó!»'ÑÛ5=…(ƒ§k’£‘R„û ߎ~˜4c[%ïž-•š+P_ƒ °P¢,H÷MÔã%Rú(ÛÇ—½æSìzOA:û×§€cÖ¾£n ÛI®…ä”Ö-×Zý—Ÿ°y·ԥ:ˆ¢++õv·ç#§oÖÈêmc6x0±² ƒàä;U¤øÐ¸“7fOAˆH7ž±¢EßokûÊ“ÌÝô?NîŠ~$x‡ÉäȬӘ†§þQc4¹;ÝçŠú’ÄãP2Í vsBö†ýD< îɉ½GÜh7ý‰¿i“V첃GSÀgJÁøJ+HHÒ:gñcÔR¿Üq„t¤À6 ؾ­÷p{ ù0rÍŸÑ…wÂ3sŸÅO#, áÁò¢Òr‘|î#f¾p¨ÐAó$[þî··Ô´L'vbÿã~H•‚92Ë®Áœ[ ãÇ¥ÓÖ›5fø^äµÊƒb†e4Ù… S QŒò”ÂÝ{ÛaݸÔ6üy¡90l¸´Ïå)D³Z×à£È¢)6Œmúbeã7[ï ¬[UrÖýfÝX÷ê}aвT;„æ8æ{•§¦Zßè¬û<…€FP;‹ÍáÃb aÛÇ7ËSnçüî׿ù•‹BÑ!¸'_+\zÆí7²Õ]jxëòzHoµWð†™‡Zé­éús!½%w%?žéúåÞÚÞÎÂâýt»t…¶¨A­?lqB¶mt¹ø`‡NPl;‹  %QHø¤OI9zmbò,¤’›=¦µB0uJ×D¹rá„(ºþ=ʃé[êN·X§¾ZцüÃÕðÁ Á ñ–»Øz°#*ì³x¼Û]ä4R‹,Í픣`ó¥) 6P¸ !´î•×M P…5‹¾¢aƒ­ÿ»ÿ[ê:ð ÖúùkÁRÔ‰ø%îA;R¸ç7.+áo^ò‘Lôë½›¹Õ‡T³z ŒX#¨yoÈ$ïïîöùcåÂ; B"m”ê4 ô8J¦¼x¸w•Naºwñ,Åøp®cì;#õ‰?ßùê,_ŠbILÎ þbu··æÔ šjÿÇ zw?bdÆÖ·yÙ& æÐÝNÝ`Ð à•!e7·Ó>n±*t æIÐ\©[ ³½šÔ‡êŸ·î 9ýÅö-îá^W5kf˜Uýˆh‡oè÷“àÖºÈ'ô{ÏXB8<±„ê¬JèÆÿqû§¨å¤³ÊäV¡q»ã Iœªï¨_öáñéqË¥‰g¼¶‡Pès×JœüÌû¯ï`©øÝïiº\>þîwÿñ[*6ùíÄ?Ä% ´ ”°kdÎÀïPâÙç?î§/¾ýb„ÊÍŽ§]’¸øÂ37]ÒT^á ç1hl?L7Ú)h¢" R†*\ŒH„#F¦tHî 4î=ƒ«7vè ¸:~\ þê‘_CÖyYä+²(>ä3Éu肉Ѡ‡®X(!C ü›!C ¢Cß¡W… 5×”¦ö…”¦öe”¦?¸'†^ñºäÐt†ÊßçQ?ޏõ{ò“J‚~Oa2Cßç&ŒÐ‰‰4†„!™Ê”Px{AeÂA3*–"˜ˆÃþÀSÂ]"O)†ýÀ+R³°ÿäóRØQº`(A”J¥¨ÿE ¢þHQÂñE)¡ü2…˜9J+QF;:| 娮g”#[)Gô”l’õù¢Ïþ8#å )EÑ0$à#yB’ŠÄaÝåÄáã*2&¹F{ÆK¦×ÍW‘½Œ>T áä"q@OgCÿ‡þ‡ú»GÑN ¡?d@¸A ýÛaB{³ú‡ ¶ø7àgýñ¬Â/ S<(Èò 7>&Ø•±GÄ ªdzGÏ&Që<¬ÄƒóTIÒb }JŸ¢‰bW%ƒ×c ^‹ ,‚nT%ß ¶â;q#ß RkéÍÁ«2†:—¯y ýâØuº*Ó£”åËB×4rU_¹¦«Ëþƒ(ËRàj«ÞžÕ7Çiy®o—Ö6[« ×µ¸U RÍã2pšØãôô4zxZÎ8j!n%ÓÆ¦_·›lBÀãþ¼Ðn2Ùç«C™îŒÝd“·VwKv“u¹µN„n{W5…h¦®ªn] ÜmÇ38èr<ƒcÎQÌà®Iг¦Ñ‚EÞ‚û²ÔÔÚ¥5q`¯@Fˆ0Ègˆa õgñ>Š¿Nšڢ¬dÖ|ïz)¬Q±õȲ´8µÑPK­LuÛmeª{#Æs{¨¥¸fS7Yk”Û½]ˆk6u_WŸFÍ" ™sY]w q›,®¡§%ÅNÏwîQŸþéq'ztéÞ ËRÀY>¶ÁÀÛskÁ=^mp>Ì"–?aîúŠ=ã/òl±UÎã*P)¥Çpø~œGžç Ww§µ{¸Õ ,úùÑ¥\PóÜM·[î£ZËøåóöþÄ —(µ·G¿#ÊÞÁl¶sWåqúðü–®A®œŒLaŒ÷òCŸ@ûÕKý|~œB׿Ê;C’tâéó0Ó¦ÆÍ°ó„¿…³„¿Å¤ÿ[ÂÿªþöMw,XTv~Gœð‹Ã¨ T_F•ég¢š!¢nÊúŒÑEËPªëªs‘ÔP@ütqµß·<˜Jì̹è’FO‡´3ôê8Z"¦êi¸«¾»îC™]¯ú¨à÷[ñç%Š4«û\6­ºt+>Š ›ú2T[Ïù£h-/zÚ6šrsMp\‹4 ƒ”Gª4JR_@îEìèTzÔ—§)uáᥓ ªÈà³›úQã‡y¸ë¥½ HûÆÞ6ü’~XdÈ{1 íë|*Cªÿç,UÜ¡Y¦lêâ®~ÏW‰,U :îUað XFXªÀ¸FwEv, _2ç-Uz@,¬ÃÒI»\«r»í‹´v:÷К1v f"ÆÜ Ôlê¶_ÂÀÅÁEV G{̵vzÐÚiºU­®éåÙaOîAœ]ÛueŒMâ€Gîz©¢„éï; ƒu}æQ­˜úŠ4†°-Èðh% 8Vßõ_9TZüÊ+ÓsE!ü•P;­nô,³ylæð ¦m–'ŽM!Áî;FCaVLnd;"Û³#· m•½Ù‡u”p9æÎZí…<Ú[©’,U† 3qÝá¸Ð™ùKQ®œËd{l²‹ªá^‡[¨"ûnêÜ!‡ ÑÊ ÝˆÜã7Æm§Ä6à‚ ò‘ól?Q$i‹š3óôŽI/¥­3^6ﻇ(R9mïb©d’”BÊ"XÒ8åî§Ÿšœ‡û¸‚‹ŸTkl¸»ÌäUý2øR_¡n_‰Ë+‹ÿ¤.¯ püz]^ëkF?§ >kÿÕdðÝôl¨ssÚ6ñ‰ß‹žÍ}hQu¡ý¾ä[*EÌ>ÊW,íÜÄc:7ë<¯f¦‡@ÿÉ©äyÊU¸|¦×0SAÄl?ï¿ÜÇw:S…%·‰E6‹¨Õf¥S-é˜U›´Óö‰ŽÙÇÐ9,J]7a¾yæXìÃT ˜/P0S ¨;œQ0kØq4#ãÇ‹A€1«\Ô£I»/s3ÏÁ6Ú+l7L0w27¬YŽ_û™d_î¿T’Ô-žöU%3Õ¬ÔEV¢s%3õUV¢Y¥šË>·EÆ $Ý ëû€½*¬û»f¼ /d¼ /`¼à¬ò7’ñ™]òŠB>`Ÿ„|lAÈÇ„|Ú² ä![ò±QÈ' ?, §¢„>ìÀ‘P;¤$m‰½eÿX¸<ð½ÝP°˜¾g@CD°ǵ]],©á îËÔ?/ºzˆ 7ÊÁ¦ÆÌÀŽTH-Ê Ôp—°…>6ÑOFy" gëÖ¬6Ýâpm]©8í1—'Âá:³ªVŒÃu,ŸHÃÑ3ȆSº·õyȃŽLò¨{·ûЄV¿EÉA“6¿-øóhsÈe¨ccõWšªéã¯ä=æ"Lð+®×D”7ø¸+‡$³^9Ämdåp>w¨„ò)>RÜCÀ@,‚&QúȈÙL¡`Ûì%ßpµ˜ço–¡Ûò–é"˜¯ÒTbùJGìcúP—Ckȇ›pÍÚ%äãð¡Ö‘Mù©ÆæÈG øP_|l¬Æößù A|º§ÔM †½¤—È¢\pý¨| %µh#V£:0A$ë†P ÉR^$« >b‡D$kÏî:±cÐÆÚ«ee¬cz2 r<–<Ä”—ÈÚ‰¬C"‘…ùÿ!JdE¼ QÆR©4Ö>JcȈé/fÝ™îrªØÏ=¤¢ÔqIjGmÏ à¢Â°(i…"I«ÃLÒ ¿,JZ)–âiÙµuw&‹/IZ… è¡,iUÒæJÓC|I{$æ&7l¤ûµ¢he‡&a~<‡–@õ ¡š­}- nûŸ4yÅ õÃÿ¬ ñ§þz u°ÿ´ 7²Ï@leÒmˆÍ¥ÛæsÁ…gÅú¥2Á…†\iè1dNéx*`a£ƒ…¶ úõ4q+4™çá¤Ö¾2Ѷ¦Âð}.ÚæR¡á|sYÑ÷?^ÏÁsÙ¶OÁd¦ËzScô˜ðML“À†QOàèaÆaÃv&Û–:ΩcéÙIÙ¶¦!·ƒ?ÜÉPD-8ÍýÍ4Ûš€¯ÕlK[ìº"àˆÿ pDñ“o€ãëû¿kÀQW/D݃Í!Ç®N GÙØÔ5–šìª3MvUBJ÷#®5ÙUÅ&;¡S‡5ÙIƒ …²ðY®x7´CˆvŠÒkÔX‡¡qÒXWÇ]øë¼±®ÎE`6pNOƒëô4ÖÕkuUŸ+Ði’ff:ÚbI.n t<Ú‚®õºÔ†ÒMâÕ•ÓuÛ Ò«f.VæÖÜæ}á9ÜKrú1*£^ª´j £ñf¨F{Ú§×ɲ\®Kø§q‘]ÖѰFŠXI½ìŸ;úæ9¼/2uÑaçŒo¤z½¡oËsNø>¶ÑU}çûfXl£«€ûlùoÜÿçn£‹g’*hÒû¨f¤wj´«/‡d™ù¹Ø“O½‹8Nì»~by:ÿÄÀ£r»Eí‹t‚\ï&ßxÇ=w¤@Þx?Ч®}fâO'µ?Ñ %#”Ôøhj„߸ØdÈ,1AõW¼‘Qw"X¾¦fg¶IÁlÎëXÇ@'”eyIÆ‚SCÑ!/œd^xÈEU„žâ` µ:.hª¸ïqð Ðmêv) ßoùÏaP?w"èO$•SéP“<¬Åä?&y#‡qGÅÍÒ2û¡D/퉉^®è⿘鹘Ƽ$ÑKuÃ!уJy^|Þ“.…¡¶S/È:JI‡šg¦Bô'Î1;®”=$ËÒªÐYÑÆ ßoß Ýdû¼ ñYGRKð“³Ê «’Žï¯pV?\ýët8¾½¿sç~%aCžã Ñpz¿MÝ„îJhBi/R·ä‡‡œ›ùÑßÞNOL(¢2&Ù6K®”o¾óñ‡gwB÷\5ÇŸÕ<ß–„º&"‹úì B'\µÜÞ†®ý E?Ä–þ%Â'‰÷^ðå)J¦Q¿iûU(ü~+þ¼ä‰XÝçÒTTWïVSQ҉©(îQLE 8…Ãz¨äzø{xBˆ˜:Ø’”5vÝ 73 YNC­îˆ½­A|¼ mÅV¤¡KC­­u±%‡µ‘›Ê-é8¬mZ‡¥˜¥MÃnl<Ó8\¥{üP2ÉK¡Ý‡­ÓÇ@<õ Î…øÕŪ«‰‘b?"j+ *TÝp Œ¶p•v±§`Ê fGÈ› <‰ÞǸ"àâb5êýg]’C ’CÞ*‡ä”0|ƒä^$g«BrøØáâ.Éöq½{åègS4G™„êè Ù» `(Xšâõ"8q)úlŸ·“¨y%‰>婎Þ€Zã6>ŽsØÈã¨ø™ïÇŸäø ¯ü”WÎU±a£Ã@Tн÷\^DG¶¢*ú!¯¢Øì"TΜՔé]ž Ç”øQ±zŽHÂdÛõ"_ŠƒÊìžg:v[Œäó-6#PsÍ$dU€õɹ¼¶Òlþ÷ô9àå6¾á#AžOxŒDZØÂÒû`b6!Üdá`¿ûßü†x?S\Lf2»D’0­¤7'¸$Ää¼ÇúL·žcϦæ¨~@4×d³â/åD´vèBG*;ÊíÝ—8Èm iÅWöð[ñaRr‰ØómœXóñ/›u§–(žœŽ-Tû+à¡[—¤±œAÉ ßßSî Ê•xc¼ ±Éý•ÜM.}âF·%ü¾§ é¹ Ï÷aɾÆÞ¢0ùÔétÎÝ{ýt5&ú„š'7»!D”’ ܬ -&âÿ?ð>ßáÃÿK3ÅtúZG\éÜä…§Q£DPx–Ù¨^NCûøë}? _ãIŸ~œ]„k'ჰ}Â>¢ë”€@?òÈgFV~A’p/N1+&÷{w³ß;ÑïÝÈß;ÊiÙµ{ç‚?xónqá¿&}mzª°s*òYXJaÆ”—•QÀ¹ÈÀÇûª²Æ(áÛ™N$ÿD'A2Ûó‡J!ø˜žÑa…»×Nzdða¢yáÕ !ž\´ÿFkz¬ÿ¼^¶ch£8Â^úšDVÝÞr'Á„à0;6q›@:| "õ‘:2hÏØsAwv¤‹Å]RUÔw¥Ñb€ùð„(jnºâE‰J%ŠH‹ÈÅ2ÑxQ„ÿºþX;VL±PË­kEûpEÿá ò@~©÷}ªrŽË²>ûŽVQk »Lú1îÄpãq¼ÝŠP™!8‘/ì¥å¤î;pèªp–`xǃú³ÜÏ'±¥–˜›‡Ûç;>3‹œqhæwy‚”¬«b ÜYP!»r nõ%ŒºÃíü+ijDF*UPà -Þ|ù¼9³R|¾×¾dá–®ÇqË žè5f.¾qðà8&—Z±"?bè0ÑèÞûJ`%ª)éÌÄ¿7Ÿ‰Ç³]¹“(aô»±KÐeµŸåÕz€G(Ìn¦—õÏWúÿ¾yo~ªIÙý<ˆPéši‡ÁTä›>þ€49ºOndÝPÿŒBoÑüQ”ÁePXS& Ñð^ß̉ÝuLæqËÓtôÕ¥« mêj¿å7?,Þœ1]JŽóÓ¥Û×£Z$œË5×qç-cÜ#”>F| ÝÊŸ¶_˜ñéxJ+„âè;<&Oî­þ·Û¦%¬©c°Cï7q!Ⱦú—®{C-Ѭü÷”¥ôï ¸‚¯"ÁåÄ)|¿å?Ýð»âµÄÂÍzÛŸ TÕ»ÍX£s·çÓÕÝ’5EˆÊT;ݤÖde_Zkz[Âgl FÓmJ¸;¦c‡¥ñÓ˜_vÒ^²hT¦¬E}ÑXÛ‹f²O8+܈f²f f2Û(ÑL†Ð¹T :ÌÒŠkf:ûtO…ÒÖ ñKõžMÞÉœŽûÐ>&íg ûÏÆr+¼Ô¬WÛϨ¼AUSh+ÃÀý’‰t®.î'C+lÔéÌjI¿ßŠ?/é0J÷Q_SÔ«%A>}IPCIÐ]Œß<¼¹ãâØJQP¥UÁ® bXË å>@Ìù …6ì ë=-¢.ØðrªÛŒŠntoi|I†ü}@Ër îÁw7ó-±E+Ì0 ÖNÌä€eBær"% 'ŒèQ®äÜOØ=?JñÕÙµ"Þ'¦QUʇµ5«åCü~+þ¼„ɺºÏÅåC}¦|ȇåC½T>¬k½T>üåq¼ùDdÖ¦+Õëï×ìSÜs䛯]oÚ6ì&*‰Ä í;V¡§<¸¨$@9º²¸5ë͆å#ŠÒXõ012 ÏH”|j4Ô}浬›ðcÊêÖ­»öU¡x«ZÅzV¤TcVU‹Z ºï_ÃÑ~88©0œ›QͪjÑelS[¡mè}Ó3h[#¼ý Ú~Uжþ ¶©±3¶i5”[ZÅkYÝ,ä†4 Ãëén7–šöRh!ðÜÍtFLª‡ Þá¹}pÀáÕBM‰ß퀶º›Ü¶í9®T_Õ…3‚Oæ8S/šYˆP‘*JŒ#…kqŽ—8Ð 5éIW¦^µ©€ï·âÏók”Zßçk”Yí¶àÃp˜Ã‹”™-R ) Õ²…§N:U¹Y¹L)Ý ëýÔ¸ÁüzÁyWªÜ©Bì(*Zè >xøÜ©¢ê¹SxZðºn4ùš{_ÄŠ%Ø¿¢ìëà=0úMâë*wÀȤ,±Î×=yuÜîmMx°™Ê!™ Tœ­{Tm£¢Gí1_úp8ÝÔg}"t;ËÚ£hy Œi†Uý¿ÚØ…æì®î#E@Ï›³Ý€Û¼_z¶ó9Õ3Ž3¦ÀAVªF¢{¾ÿ‰Y’u=/‘K²>Âý¡ï=s¨ïçm1™…º{^Ø'¨eh:ªÛŒkxžõH–èäùÇÞÀ‹Jn±ú!kþ—ü"Ê3á-ü±°8€°¿gðÀ—~æyþ.Énb?¤Èµ¯™¼ªâaT¬‡Î‡ê®Ùœ‡”mµ-9€ÂÇep(,C&]ñ?æöUâUIyчD–\Ùûn ‚IC@BS%úB– !–¿—úB)(”œ€Ì s]r•“olÍvR˜Ü® “cËD@yމÈ`;{v¤É تøL)ˆfÕ ¿ßŠ?/{Ö÷yAØc×Åcè0nñQ-G=5èÑ®F=¿q‘"%è¼{Ô,Ao|ĺ” » ÔR䃣—$«ÝönÆÁSÍjÌžíå“­?ü˜ÈxUÚvŠÙ9|˜?”·¬°#úcðãFÜÔ¶ó;m%mµÁNÌ[÷«ÑH;öºp*ð¡ä»ÃÕeÊVü.Ú#Éal0¦¬b­àŠÑ÷©à4á ¶#Ó I¦š {y—¢°[§ä¦ÍàFð–X |ÌãÍ0SõfÓèn]98Ú[báp´Ç,ƒáÀ½´KDŸ-H¼1àÐÚ"ážBÐïž•Mí²pë-°jÞ¢L—…vè¸-Ÿy´@—7U÷«¦´xšÊ¨xh¹v4×ävY*ÄŽ‚CHX‹.b-`ÃgfX‹A¼åÖòª°sö„"„µÌóÔÀ -¿Ý,]p“a§[¹0¨¥¹{E1ü0). :qZô8ÿZÊ”^ÁV4SWeæ2Roj’†H¶„`eZN,ެ²’OøN¦4Ÿ(¤xÞ2×Tò9 O3¦¢óòA •ç“÷ÿÁ†W÷¥i;Sj#÷þ~BæÏt¡ˆg=!ËÊß‘oª´Oöa}¤ç“ k⎡ö1 1 ?VñÑp„£sžµñîdªÆØKÝ¢½¦\ë‰>—;®¥…TN­çré%à'¨A E_þ¥„nŠèÆhÜf±=l ùàÆ =¨f1£³ˆh¹ ¶þïBçâÏR˧ƒó–Oè@¢×Åú2£KšÅ=’ ] “ÓÙ«™·<*ÕJF®éHGEîQdIF¬D\òÉJ'4hh|aP¬š^èD<ÏeÇð+`ëåxKÌÜX í(²'>*³Çè;p¤Ä?Î$¹qöðV®­ µì?=¥„¤ýŽ©ƒ{hCGLGMK¾ÇííC>9IÏKqË[ÍG^\}ë n€tý®†·Úè~YU!n°Å¿és]8·•'™ÎŠ~ Ñ =ðÏóDä”}Ÿ>Ò-Æ+™šxY£‘äýÏãÍÚÖ±‡‡tò"¦·½Îgíhs¶R|¾X¾'25ÏÇ9Fì,H.±îÂúò)­· "è¾>Ÿ„îQŸ>]¡L»—Ÿ¿'f¾û@r´ >ïož38ý…m|7ûÇõ^ÅM½™é©Ãg†¤—˜•Û£ýMdV~’0º :ý^Á°1L­´‹:ýs _•€t¢S`«ùL©?q0Š5Sê?,Q%?"ˆ>–@t•£èØ"X‘a]M¯ucÖ%äáÏ‹$×öyš^Ÿ‘lt§žÝê¢tÉÏ$ñ¹ûÕ—‰at; %ž[W±óã÷ÓîM=$bå+=ŸYqܱÀPŒOWºDs#¤`ðÒÜTÝW©²…i’®Ú€NJdgD#úSz[=4¦0ðŠì6…HhÓ»›q"ñÑà–ÐHz(VM·&×Р®cgâp°‡  0´ìékÆT }ù(ÔP´~Feró n³pÓ¤”{ÛH'˜ÙÌjVIâТÞoÈ"£qùB¼7Ç™Ã^샅˜k‚©`úoì$fyõŒ} ©4Ž:ûèÃØSâ­aM_•{;×-bÌßðåW…/Ûrù€ô58µú„ë··§Ð?'ߎ¸HôS…¼ï{ëܽ×$MDèðŽ–dÑ\äñ ‘†á΋0–¬00„ùüÜÞÑH—‰Þø[Ûa˜ŸY; óÁ:]‹ŸIûEå(<3$´æƒõU=ÿ™½7T!Ú îõzp°!+êãϪ~~fƒwLÁÁh¿D9JrI…#°(®í]øàvõŠY-›f1!cåBwƒ¤@¯™…ÃѲ½Š`+ TÜÝìÈVSÚBŠL+®P»TAl Â:<â – 928–mûÙ±¬/ñã±p‹Åc…mñX¶í³cMâXuggǪ}ý…[Ì øQ<Š47ºù)7ƒ8õóCs,mE¨ªþIv€Yðv_ÔN(Ûà‚2©(s Â1’(Û[NÜW%»·“ÊüoʬhùÉÀêyæH@õ® P´çã5ªR!’InççqTYõøšÂB$Qã‰ì 'rTBÕiŸµ§VÚÃÔü¢}B=£,%mhƒÜÕ‡_,~¶Ü25N^ˆ› †ÅZ~.k]j‘çra­ë6•2,c0üÛKE_<£)%¨rküäæÈÌ8Ô®=<Œ×O)ÊòŸ7‡w__Ó¼$#R™Üù£ôË„Sóïó˜e ’-ºñɬÃ’Þ„8Ïäþß“˜VÖÂãHÛ²m<"»B-´¨È¹r8&¤3Uç&)<úl¦J¤¾jªˆP†<~*̃›®0 h•2 ¬û°jW˜¼ÁÖÿÝV¯†Y`Å€ ±Pž‘è/nB¾LÁÀi¤{ó4Ýœá`«k$&êÁ6‰£a‡bCð²äU_`VC5ðK†Œ.nÄ Âªo*Ý€*˜^¶dôlño:ÀϽêÓY…_âéÿM D³5]±µ[XÒÕËlí …WVtõ_;¹¢«¯õµk°(¶¾ 7µ÷´ º*,èMÓȧô1-èª4¯ÿ rq’ úÓÓÓÈXÞ^]°ž§Lí¦›9$ÓÀ¿$Ó ,ó ’yULó÷ Éô/…dú—B2ð.þvûy •iªuT¦©Ê¡ »[Rõ’» Q¯ž]ݬñGN%½Ô€0JY ¾ËÑv¹ÔÀP ŽJ#$²^¿ ±ЙŽ5»`þ:EgLUDgà5¼ƒ_~F²Ëh!ŠÅƒ•%»´EîΪd—¶ÆFÉ.Þ£,Ù¥kmg: !jÃ-ÝošnXPàª*{V ¶y¿ô îTÑFûJøb¦2\ÁYXWã©hüýéʈm3¸8~,zÚ-W´_þ3ñ²èU1¾#{¼è¼ú|šz“lÁÝ^m}`·Ÿv.}6ŠRžÆ`:‹hµ «q­»°Áÿ¦üìnÛxVá—`2$¿ ÀáiûxŸ<~C“5*Î#jÞñ¤á“«šQÉéHž­÷Þ»;èP…/„oë$Á+ÓŒûÆ/|Õ0ê3—‹G dt |XIÜŬ&ÆÈ‡‡g¦L¹øÆ½áwáYÅf>‰­¥ñÁíÜGÿ]~nÃ÷x³»wõ;mÞ È«—Ye™U«,>‚®Ú`•eÀ*Ëݸߎ§#ùcÝï½¥{žØbé¶Ó«?¾ß*ñç?7Ü,ìsqZaÖýüaúhaÐß©Vè®I´B¯îÜ…ùÅííà =ùƒnÔ<›0¦®ò‡}0ô1‡YxµnÅ^¢ÿðF—šÐ®¾tÁ‰Ü1ž@ÝcuD5‚‹‚Öåʻ鬨¼=÷¦éh›ÙQ’9‹ú×¼»8J:§ín¼{xäÞ§­¯¹o} Ò>7'ØÀ÷ò0Ëý‚¦œm"ޏ-“6ðº’Д¥ ýDªC¢…&ëÿy¢î±Ï B ÚB¦ÛéÉÃ[HIkb"M|ü£p9þáˆSÂôD$|„ž„?²÷5úYs'Oi—J ÝC-®òÝw˜bÉnó(JžJOwj ‚9± €—ê^øEoÿ€H#6 @;•BáæŠ4ªÆ‹ X Êëø`ÌÚ'^±æž˜­Ûºd sB+^2NýÞ%;mÛ³†-+MÒéidÕ#¼uÇmÐj¹‡E˜ÒE`vÁÃ]ìáÃPðÄPefÍ)±ÒÁõ°Ò:%®íó‚¹Ð¬óÄè0‚'f 6B±€ò·ä‰ÁmúçgfÐíꮄ¬˜´Ì8S<À ħ÷ÄyªË‹ü¦a5 JT®-º÷«âãáHÄÜj[«j»P]DåÛ$-û„ïÇÛ»Û“ n†²6=ßÏǸ؉1š¶^£i΃ºÀqŒ±Þå1àûâyˆ1:lH_¾OT†Êíä;Öñ"ÓÐÎGÜn\°,ïË+±{ #¥ý¿wÏfÔå!½Y¾sðålÐaèT”öwWñ!žiSõËgŠ_æƒ6ºgÊû/Uôâ™â—³AMÕÆ3åý¿¿ýp+Δô;ξœÝìqwÃÍÞ4$×áo¶Êo6~?;±Z‹7 6q§ ã’ÄÄLt¿- "ÒÍ`Š¡Šo0Å«‚)º ` `³öS|ñ00L²pºf¦iØH‚?Q –ãDèF!¬¶îë ix V÷¶v¯uôèÞ¯¤V*Ë…ÙÆ åd ï)‡c°£«zœ©a’û+ï ‡û³¶€Ü?ÌÒ°?9Á%û÷,'ƒûw¤“—?î?$6¸ÿ û¸ÿPI½áÔbz~KãæE#‘OÇæƒ˜°á0.êïóë ñBÑKGB3…p(MËÏãx,­íìXÚôâXZ¯ü*ØV‹FÇò31Ëènv,c8–ÑÝʱŒ5âX4Z<Ö}r,kÌìX`´…[,ËÚN‹F‹Ç ‹«Æz¬ºÖâX5¬³·#. 8Lcuþxiü Ãà‹§ì·¥S¦ÑÂ)ó2áÕÚù)·<åÖ–NY2“ºa‰™¤©;x­u ·É3xŠ1²ör˜)ÀœÜ€e{Ø#AÈÌùŽ‘„•&ʱ _8ŽEE{ÉÀ„‘¸"’ÓÞ³NH6˜d`XÃT`ˆýÒv¬§I³v‘#Ìjúb:ób´#ÿ¦ÉËå'If¸{´–§>ÞŽwAæŽà.ÎîSÒIµVÎ?pš}Ù‡WáVqžFS Ïø(&@ºFÄŒ¡3^0Úðç¨ÂIR;†þl‘–¨û/œ#)§À%‰Þ|#Æ …øX¾‚®·fKÿ ~ÑQá>þÿ’^µÿI¦Và ¶H·ÿ.äo:?ÔG¹±ì`¨Oq„”±T%ê:G,ã3 ¸¨r{7ÝGm:Ý;õÝÓÕÿã^H39pׄšN„Å㊬ðHÀ öízàÞœ'ßg·¿ú%›MîÑMÜ(äö*ß!a©ó=¸0q#£Y>…ÔÁñIØî>noÐõxäZ± :£õ›+y-ð†ë}”×µÜí5qð2LiÈ×òýeË…gy¥áíÍÓmM,ð2áÌwú‰¸Ò;9þùy S }åÎ?º«i¨Œ-@‡Ït¿Pþ%ˆÔ «1Jšý^³‘êþ÷†{•p2B(E§ãyüBŠ(ÞwQ°èC÷áPPÿ©"¶­KgX©Òΰ¡›qç@óân:}äÙ7ôô)ñy× :L:Ù/*Lu¤ÿa^¬!ƒû²óŸ8$G|ô£HÌ(Oã—¾œˆ™G³‘åß.ÎhF4dçKì^<Ô# ?} z;_Ò)ÈŸÎ!œŽm æ0£tËãIìc5ð0WâÛM˜F ŒýÎow:wòÞf·{Ÿ^8*…H†ÝÕÅ™îg …7yz¼9áiˆ—’Â0xÅ‚ª[¸f¸hì&ÔA…3ÁkÖ­¼&ãüBuÉ{á6†r;nOìÐ^ÜýOÅ9ÿOWX™²æÞKÜ›”h£f*99½(ÏQ¾cÊ'B§òÅ÷ªfòÕñ 3ùðŽiÈÁÏP¢ï¥Ô'uõ€aÛöÖÛSÙ™[!"«)º{ÄŸ 9…*4퉇±}<<ß…*2 õQ(%Ù&!ɆMÔèÝ;V!ªP¡m ø%Âús²P±Q;öB‡Ÿ”B+™Ùã f§*¥ÌxpÝ ‰ò/Pw0HáÁàžþ™´¯@dç(×J¼ÒÓ½ì’Ûµ™ß®½ vþnáI˜žùýAU¹/wÛO‚£XÂêP°8º›ü/÷ž&à«?ŒOO¤¥®>ÌÖA lñײ€¢ŒTÇ ü†ºöˆóËI§XT'Žo2¤÷Ly¾öŒê)ÔÜQ>~¥:°"0É îp~UO}âèªÄ( 8fýΜ R·Ó™ë{¼jÏwŸIÃíS.µØÒïó,¥æ s Ã^g7Úgâ^‰I†šl‘féÄ5ÝÈH˜šîOO#.dáébºÔ¼Ÿ±K!2 )q÷}V€ƒ…&’G¬5±ØZ_S—ϸwÕJCr®«'zÊöÄ©”{žpœö?XI5ÞÏ{q¾Ù)?=¢V]Óó”*€ ~÷¾˜âSÕ=z‚üQ0<$j Ë\!  rùæ¬=öÒZ(ãnË(4g§ï/šÂ8 ê‹‚–¿e-.AŽÐ0·Þ Ù;Tv%5*ø˜KG“é¼x³'r1K2îЉëµ[6"Jþùóít³%^/E8nu1ÉüjÐl±PïúÖ“:ì³°c˜GB·øÈo.¹}d‡)Kèó²SeW`ÝâÇóÉÉ w„Šä¹*^pø­×ØÓæ× gS6Wå™–'Úcä‹â©tÔˆäO¯4õºÿ|Ü>†´ æ_3Ôfs©¬ê«© >ž=f¾-E6ê1MŒC|®Å@Êâ³]y 3§[7õ*¾÷Z°éE0ÜpiŸÌœë6p|ÑfgЮÔfçªÙÊþ/pµV7Ck»65€Ûäp°…zŸx(OœÄ[Á1%''NÛumœ8é¸) P/iþFÄ2üP²`€‹cû^‹Áh¿ïÇÛÈ+³>ÔñÇà`C§çƒ }<3¿ß÷÷b0@¢šÙ`øa6˜ª«¡ŠgÆûÀ*Ó}•¦ðÃüÌjí©8í°¬ Ï™¾žŸ|8Ì õáøwòŽOÌöÃ|4øpö;k¬üƒ?7Ú1!ˆdSÏ(|8;·¦äh´c SîîççÎF£U9üRÚ1¡„†¹ÖUvþK;bmøs£S.XÝWýü—öUáÜzOÌÀÁh?À†Å-%­ñìÔ„Pxl0ü¡´c,ó¡9éhøaþC›Ês+àÔx?°i§ÐfF-ë)ÓTi¦9À¿Y¦9`¶ù-Ó|U™æðõÔ2\…W™e¦—Ì2»Â,³3fY×Kf™1Ë"éb{¿%ºÌÓHÁïÉÝÇ/Ly±µÊÈgp˜–]ΈÍ&Ég’ÀöÀ47FF@ƒ1"Í h÷rÿŒ€ûGš-Ð" Øf) ö4›ÐrЉ2fY×ב-Æ<3Ï,›v_ÞÀÚýÁƒûî¾c9i ‡ñD0¦i«Â0¡Î.†È¸`8Dä‚YÉCÜ>ˆ!2Š—BÚ¾<Å+qŸ ‘1·pˆºÖbˆÀÜŠC¸Ù_ ‘±¶pˆÈÚ²3ÖVüe‰n¥òëÑ6òL!+Ü?L8—HÖ³§Ü¥“â1§-f¦f0Õßm¿xj×P™…$ÒH©P(xçÔ.MÛƒÑ,‘”µŸTÓŽ‚y•I„ƒ¤´1í<=òÈ“@,KÝP÷ ÷õĤÙS†‡µÁ§éó-²W´qyÓ¢¤ïcÈ?öW0ýo‘]%jD¹O¸{%Ê7Ì«ÛÞóÁ0žÄóÉØUôU7f ¶ÇŽW¾éÅç±Â;iÄ#ζ'°LºB$ –aÎ,Ò±H<¢Èµ81úÞKDw8]#¶?£fí°p’.ÓýtGµùÈ›#èõ“°)š(VÔF\IÃR¶T…•‹ÇrC´ YK)û¯~ÉIß;Œg´(¿ý¤hfR™\•ùMd¡F‚-0á[p;&{ôž³é½:¨å›E¤*Ì?rvšÝ †2#ýíEGöyò¥P“º<¾²fìå’ü›±ƒn›þ8ÿN…Ÿ¶—¥rŲ$ ãàYJ3ÊŒkEÙ ãde ³‡ˆ+Ø]n#…îŒngO¥ð­ÛÌs•g´°ÍV‰¢RÙµoÇŸ1¨"ÇËXÏìÓ¦xfžUÄ#/ê:ã}õ3BKzÇøñÛ¢®únƒYºM$c„Þ/`4òˆ·Œ1zœQŽ3zÙa‘æ‡å7¤žÐt+9o4?æ®Æ£{o‰D…QÔ´§yiÎj‹.m*¹!îÁnR2™°ç–i1jõ½e†T\.ñLê]µÃÚ%KèkÇì¥EÊ‚ŠÜ-àá±[ äBÉùš*‰äÒvz£AZĶÖzD rB¼“Ìöþ‡»E4ÙakE[Cdé·ægî³÷[¢Þ¾{Óùgi)vȘzL‚h0}‘ð‰@$ȼÈYãXš®çäíÂ$Í£Lw#®]+&ŽÞºÛǵYC2}“——¯ÓmP=d7\"ξ‘*y%×ÞÈÓo¼†…F ¤7^a‘;wðܹ#Ze.ÄT Š‘3'BÑ¢Ë%±0¤NÆüÛÒEáªîì숿i?»¿{© X|Õ™™gm¤0Ö%8ðžŽWøÛ©L¾—Ì<–/ò©"£8á¯Þ®}”_¤òŸ”ü"bh)Ž›+=û@hŸ*œÀ  LÇ ¹³î0ì||8¡| ²EV&Œc˜0¦ZÖäsü‹{Vœ¶~‡|vR’ y+Áû4ë›ÆŠ‘“Ô¿yxäâáÝ'wŠl/ß27 ¹a,q[ý‰JA-øîf çZÝͦxɧ OÓîùîב:Åwø¦XìíÆû«ï'dK!ö«"„L=¼KÏ÷¬É³ÒXìõƒ÷QEÚ ‹‹xûC3xâ!Ír#ÛÇâMM0ÓIrf"…LîzÓä "’õ Ö2°€¶½ŸNwDZT*`ù‹Œ8w6@€5‰ôm>ñ˜³ÄbU ¾¨£ƒÚnxîΛ]êÖ€ë´÷5†k¥¨ŽoûÍRʈ–ö|¾þ ^ÈhïŸeE3>š?'ïfŒÇÃ_˺\X,Û¢XÏv·{„¶§pÝÍþaÇ=ÞU&l!‹Y”Šù³ÂÀ„%½ð~©ðʽ#™ Á…£¤0ïð<)ócU•Î]³Žš®½’å(Šq1[ŒW çãpîGÈ ?ƒš¥ÔéôrÊh ã*â4oýÅ ¤j×ÀSþ讯O¢h<|¡"Wm$²Á'±®ËÙÖ=lx¹#ñ L ô˜ "?žiI ;&À7¶é¨€8nr®ÿ5Ñ 'ïÁ¼íæI"…üÅúáÕ‰we‹”Ý#Eè§Òé¥óŽ^J”c•%G8ȨV‹ÊºïDU™ÇÈÊÊiõ"²5,3Ýãmò+0&š{±UÃë¨TÞ sýJi) ä”üðý\:ï­/iït‹“–»ßOϧ[Js¢šR !ÎøÞC3Ð(âW BÏŒ@Í¿pñ)Fàø„þù9TˆŒ½ú 3Ï1¢m6mR‘{£+4!c‚–Öøtúh8ð±iÏÓ¾qnÏ.˜8ú±Ós÷ŠúÏ¡_üDUJMØ¿ÈR¶é_£6´'cƒ¢ÿ [OŽÜúq¢9Äô•]›Cà{žCpÓKæÚpiŸÌ!ëîá|˜„u½`núaÎdI| Vu‘̬J 0þêN Æ_Ý…ïÚ"ÏBÌM(»LâVDri½ÄŠ)µ^ã§Àâ¶]Õ­y€ãp4múẪ+êòãp½63cPA wëë¡Î¬?8¥Zú¹T~­p›÷ù³‘Õò±ûëÄðéï5Á8ð‘⦭v`7übSûÏŠ¨XÁ‰ý¹™(!l•ÜÓKÜ¢ThzC˺×\-‚: +išØÑu£Qµ9ÔF§Â%„a0Hœ¸L•Ú7A\—¤÷´}SB¹jnmJÍ­šÕ›½– #¢pdT”T8}o$5µQ[:Ǻ^Áxî‡ÈÂæn[åà6ß:î^.øî1­ó-ðˆ’fõã…‚»ét$΋évº§òõÀLñM©€6ᥦŽR3'Î[~éæ›°¼EiÌζÓÉ«w‰«@5°|AyšBB5BëÁŸ=õ½ ‘½‚÷At|â7„4eÙ!õ×÷\ê`”Óè;MHذ| 2³øìáM<›ÿ›ÏP¹˜îFHŸÃi¸ ž…¶[¤NwŸÃϦ)ÅÊLÛP±KHáô†&VLÑ÷)4M-´¨8àröí#‰à"bD}¥Áu&ül+;™› ½­1e§®g$pc< Ó-"zýlÿðz0 ßSj-Er"« —©÷\’@Ök|P îÎİr(ý)špŰ.±qw‘¤20â|tüCú¾ˆ¾ºB#î ä{r\Z(ü<|Ó³Õb8CDhø÷$°]]a; ÿf°Fèîl÷ª`;}=+Æ Û3"6¥&&ø48¨$š´ ý=þá.½.Ø¥–Œà4Z,'JÜ­…ÔãP,ZI,éе«1>|½]á»íÔÒ/ˆï»ÕøžN+ºYS¥‚ð¾oL9ºÿàæ LPéjÞW©´Õë>nGø8êl·ÜEAOݶa§ãwØ `8Æï¡³Òm£dŒß·h£*„ IìéÃÔÕT‘umµŽö .^4\ctQÁO¾LÕwÁËòáæáûí­0°y–$ µn‹äxòÜjÐêÀ÷05`KCÍéñ-˜ÃRƒÞbª€Ãu=+ãp´‡ÏÏ^—ZNác™ƒ˜!k¼•?MÅß¶—¿(Ë>|»/‚¾§ÊçÌ€…r5! r£HHŽ*\4yabÅ9¤dHšAÄ”òâk2@ÃS§¶Ù¯IF Âà9Ò†H:îDUuÏØ>)ƒAò{ºFêÒåY»ÉG…z­!û‡5E[WºhQéò:`šëÍlÅŸ +Êð+þ[æh"N@Ëÿ13àPüàÅE_Ê`Цàð镦`÷½o †M/j Æ —öyÁÂƃž“¬üK&ô]¡aTŒñú¾V%_ˆjX]õa‰ë‘눛•úæÒ'™X°ŸÒ/t€XL ì !ÖU@»ÏjË–óñ ýfä±–Õ­Ñ `ÙP·g–8U'>2Ò”E˜õDüž›RÒ§k#Æ)˜ëàB‹aè®áæå›³¨äéyzb]%*£íŸÙ8’+½Dt†[Q· \¬²îßWO…å¯áÕ $´û ‚0‚5ò3͈´§̺97— o.bV*òŸ@ȱUàªs΂^øÏE›Áü‡)£Á»&;{/N>3Ý„v(Ü¡XùA:󞨜“_aƒ6×^¶ªóŽwÞ\™SU3«¬P•UVð1ʧÓCp2VR§F–CÆ¥Ù”&P,%½•v›¾®ä§Nj­¡©3´»b3±)º30À ð xU`€¹ €§êÏ’¾VK.¬”U·8ô ÖÉ3Õx—ÍÄerÉ¢º ŠõhË Wxù"Ù×ýê ß»)­—£Í—HÜ*_!ûÖÆ#k]ºÞ XÿBhLd‡–mu`ú’¬y{]5™€ðC¿ˆÇø•"Á¥®&±c³ÊÙÆom´¬ÑsoTq)ÖÔˆ”.ÅÁš:t]´‘7´Ö¦–ºÕPh¯åßâûb©³gqÍ×m·Öêzº¿ ¦oùš óHVÒýNÕ2ƒLÌÓ=C4ˆXÏd˜ÑÛ àQ:v³dlÀŽœ‰wÂÌI©o ¤m¿BM·5`‹&çÐl¹)-î©'¸², K\Pb ! \x½Òº:ÔŒ@ ±Â*h),‡ ðHÄrjß÷¾½ ÄóáÙ1n°Å¿é;–ÏN­÷v+œè¬Â/ñ²Ïîm饔%†aã6¸ØN*z~²øu~7Éüõ$IÝBêR¬;$…³ƒêG®¿ýÒð}É“S×TM~³›55Ôl^¼÷dlÙTœë§òMG^ò#ÐìÇØÊA’Ñi/JÏMCÖ‘ý‹ÒøøGñÆÓ{ ÞŠÛ¸áGÐ….µB]ýÂ;S~á­fyà båÚ#*6ô¶Ÿ@õ<¾N¡J%ê Œ¼=EŸD2‚M.^ˆ4Q»Ýåð[×P ÍV1&Æ«ÎuøÄá=°#Ò?²†è <•UꩼùJOe3 ík0Uf›îi§çVz)[43\÷R¶èé6 åñc饖ӫr<XV6NU']àŸÅóÛÛ€“4¢—•Zp$ BËâd ž™ë¤±>NêàDá÷©/NVöy‰»pu9©9QÂ^¸š+QêÊE¿ØÔšG…`}M`Yßë’§¦î«µ¸0}õrÀ}(–ì%ê¬y¼„…FŠQ ŒI,kÓƒ­Z këurÈ‹!Wš <ìRS»lŒöNxrg`—º¶v¡1`—ÆÚõX¯nÑŸ«Xw¨»¡)³9­;4ß5/®»­p ÑuOm¦"Õ"J"”ó›=ºä ¿õ"!®­ŒäPÜ! æ& ©d w`äáà§îCÉü<®"ðÚ‡À‹h¨uØ¡òÑi¤U˜©æ¦ÑÚnjî7P!ÓÀdmLg™æaƒ-ÿ ø¹ƒ°p&* ¸ìgZ úùC•Ã2%Áñеv†Yľa@¯ ²]BH_$„ô3BNÀÞLm¡:t(‘­¼ ¯*ÒA¨•û-ÓBÐGÈ÷€ÁüZš9½flJ iÖ)!M x4RBšÍÒ/ pôNH“S¾Ý3Ì ã›¾)„7ÐXÅ„S걺>Ó7â¶ÔÀ?—Ò åÇœéÅjk!´ÇÍ(ßîpÃL/?Ì…21¶ˆƒÑ~‰*«Ò™ ‚⇳Á%Àý~‰*«W σsÑMÝÖVꉡêA8R—a¶¿i“ézQ ã1 ¸¾›iê~›ÛB•ï„~ÝÐÏ%‡¡z~C¿*N¸1UŸ‹*£+!NH[$C°æ‡g§`‹¼*õü å:Ï·ÉŸÞ„æ>ÏOQOGªRË|«ItõeHŸÕM·‘Çg ( E±i`h‚Њˆ ½tŸÄ”';x  ƒ”ªÉ‘ÀÃ\F¥žD§ñÆ“‰Ðrqg~xD¾Pœ6¢DMð\ü˜KÔìÎâÀìn–¨ñŠQ- ±Š (O~X~•ø7k$•qÕ„Çpb¯,t‰ÌJTYQ‘ÌŠWYA‘Õ¸ž•YÙD™õ—Ȭ¥¤ÌŠ58÷½LfåÁ¾DfÅZ¤EaWî.¼`\Êu¡µ[ÐýÙƧ¨]Áö|Á Œ!ºRÕ}ñô¤vr-3 Û[ƒÌmf¤FÊ5Öë‘ Ä|µ"-­`?û—évüC¢Ä¾tD5/_kßSh„´LË8>Ü’kr‚þÏûˆx.¯=@¥¡¶Õ ñÇ#ðjD9ñÇ2œ9 83!Û¢ÿ{$u?a(ÂQÆ/8>>…WÆOÔû-®>ñeb» æ@ì[fü䆡—¸·{Èäãv{xv ý¸uõ½üX;B²æð§?Á’ã…˜Þq«Ìÿ@ÕŸ›Ûçk´Ø8Ïå4ÛÓlt™Ÿ¥Ù5¦ÚßÒìW•f×ßT m_ʵÐv!ñ,±-þð´}Zc[4glJÜIÖù´}ZÏ:aÄYÒIF"œŒá1³”shšYÆ Ÿå9"¹çò@´ˆÞ¹ /fœU[Í“Døp–qV]#2NÚÇÛ~I§nç&%ø!ÿÎ8 |ÒIûÁxèÆ3í”ߘJ£ý–Ì£ .aÇí÷±£íê|GÛ'Ùd"UÝgšmc^^‘ŠÈ$«Z6ÿýb¯½ñòWF’”T:V3V­d8€ÃáÀÞ {¯¥t•Dþ{]ËñˆT`'Œn¬“ ¥] ÐñˆÔM5†8èÇш°ø‡­ï;FD¥I2VÅÁÃúL'U¹ï8㜗ñƒ™ŸÒ ¹^ ‡#’¦Zo¯¼»‘ ݈ÂÌ‘UDßúd^¾rhHšU©GC¤Ž‰¼|BòRÃÒ¼ Øü™˜cŒ†ð.áFÌy1¨Æ±b  ûHE˜ñµU”•UQÖaOPbT…ùŒmVŽáȤ8y“×>wEabå;µåšz¤€‘6M A%Ô”Ú&£T“%õtÊt’{´ˆK  Ì?[…F5ñpÄ Í3ÎM›zêáì'Õåcu,å5¸ÄH;á?[1ÖØÈŠPcƒJ¨øÙŽñ³•:}¶cül+õŒžM¾ñ ²ºN¦}‚€F‚øJºaRè»®òô ŽWÈXÕТœ?ÈòÅèJÌT®q»~¹€…0ü À‚¹)²©ðƒŒð‘™ZÍEëS{¦p;R4~îªU(“· A‹<Ÿ-ò|´(Â>ò}wÝùÖ«ê2 “âÇ~PÚ¬#TÆ÷™Êz¯Àª«bN©Š‰ Ú¬ücò}ëׇ·!²QŒuIñãè1k뻣g|ß¹=î‚ÇlÊtü˜ôã&©ª 2¾ïÞ, ¦29wIu2ƒåc¿eýöT[aW¢ê“:¦™ÿÒlÄc:å™ÿÒ4 ˆå[MWJ³XG.x&Z®º¦3«£§µbŸ•š"èÔ•e܇kƒ‚&µåçÚÊcÁE†Cœà" +¸8Ù–-Ëmqma[}ÐÈ…myø\B?4pÆi¢IL “X‘q§Î(%TÔåUØe[–»Ìµq—ÍûòómUY9j«rŽRb¡-[–ÛâÚ\[2Mm[u¤ó8&|L’|:‡=£•Úûûztôi¬ ”y5\š‘0¢¬á$<ø8ÜìboKb÷õmè„<ß±3mÆ–VœÊAâûÛÛîþܯ!ýwמ/ì'›ŸÞ¹Ý5”j‘ÇZ#»X{CH³"k' ιâ˜ùϦö˜Eþ("¬Êäù½\å +ÌÁ†¨£ ‚Sø”±_¤­‡,¡\ã9 Ïо†vƒµÀÌ€÷Óá/.mJÚ{T«‚ÈGÖïÂrot¡é˜eæØ‡H¢Š©6ƒFߌ Yõƒ $¬­,«¡+žPT"vxYx¥²FDOòrê˜ |’Ï%¤Ï˜Ù…¦ý[5nc7ÕÀ*hùNVÎ6Ð…Zò!‘onŽKØšÂì.£3xEC*99ç y¹<|ŸèrÝ[\AκEuq±Ž*hÀ8mì4œí$_Ó*ÖX0Pˆ“»iNÓ••>о€PÚ¼¹¹;X NQp¡NÈj䀳p„ƒ—•g3è+PÂ0tJ.¬˜¦–‡û;œ¾Ó¯ÓF­ÛcÀ€è² ÷. ú ½_™&¸{"+&* b8òŠ”RmèõªQÏ9x”›ÃüIѾ²<‹@É( N‘&í!TH{.ºLÂG+BWˆ„©ä«F'ïµwjnX¶6"+˜™‰E¢ÚÞºAÖAXü²Ø’¾9¢õÁ'øv0‹h:·JÝlú3¯–ôLæÞ ß f°<÷š¶(ˆ„ó§IÓèýM/¹¢>€îtî;ƒt T-.2£A¿ÿƒ¦ÕÀŒÿŒ ÑdXy©Vƶ°‡Á¢ëtèø³ËÅv8 B Ë}¾Ð7q‡õp4ž[mÉ-Úc·Û÷C?ç+¾9ßÓ „Ü·D§ò½>ôfPÕ`üÌ (-C|á%øŠÄæ†\:®²td,tvn׿ó²À¿Œ™È ¶bÓ4Y¿dÈãÙ‘¤XÔ!Å=ÚYŸÿ¶?².$«Ašþ<;Òý‹1²hÃa HúùV±>« ÇÝÚ‹¤7èÄ]…KW­‚ªogªéW6Å @™ðò¤Ÿ[Æ÷eØTÞ›Ä-h¾­Ôð†ªÕ(ê ]0ôvDÇuu™xº,iEKfØ O›­Ø6IC9Q1š ZXöl˜Ùä«ÖNÚ稱– µ>.œÍ‚VÑgË ^ïîV- p@н•¨Ù7”È…­³³!Ôtƒ§2þ:õBÐP ûnø§·˜nj<²ìPD‡­¼Ý»vMdÔ}” ®äÓ1ßbó-éßó-û~Ä|?(Ì·|¢`ÙDqc¾ûçe·‰w0fér³Ïéât!q;g†K ?D*ðáÉ–’(✈½ÄTDZ“‘àH™*ªfZJ¢ ¼G6.JÄ×c‰(ª~F2ª%(d¶ôÀ¬#¸'ÏWôÏj —M®¸ëiX§)4+»èÐÉyVÐÐ3ͳŽ\Rx=X<ÏÝ¡ \*ÙºoWmÃXU]WÙŠä—mÇB¶µdc¨)©ÞõéðpËýªqÊ4,þ§=nż üÆF«›ùârÜ"WÆ÷Àn NŒrjaɦßÀWµº”ðV–ƒ˜7|éö6ê®p¬’iB¬«¶ÐÏçð"—İËhå@}Ȏѵ6]‡ r>ò¸“Ö§©˜¦Œ0Ñàä}Û´Ê]æ­þÏ7ú?éŠì¶øUÓ&³ã¨ÞKÏ~Ÿ…j]£J onVÈà=™oBâ ìµ'ØñL¡Ôxò'èÎRÑjxêÕ±­ÓBXº¥ÞiÛ÷âÌ@†ð3W7ÛV>Jü8ùrºÀ(±ß]¤±èŒupŽÊ€dïØjשiDN?5´“n;åð"¢Ž‡­oÐ&صæëÀº€3å5àuŽÐ-«¾F"âôÓÜqŒ½nµ× ÔÕ Í0ˈw×[ùÓTÿ·‘^K—¥×loˆ.©òÊkoYy­ ï_ mV–¨÷Q^ðj"/ؘ2ùo,~£0Ö˜VãÔàmà¯(X7bÚHRbY¥kœOpÆ0»k>—“ÂM@[¤¬ÀšeØ£`(ZP`ŒaãA¶#cà)`7ÝTìê3í¡¤•«2Ïs²ÜÃ?R€O10%÷=þ-㢪 ãšîÐÝw ËõĸÆ;&Ý&«jvézQTñ^X„¢ýîȆ-Ç“ˆXVš,rêâzüyXV|ú)GÖù⑵´@ªöÐ:§Ck3_žžÝÊî±µŠÏ­Ó¼=%8βSnì)’£ ê¸; Ųd¬Õ@ Çé:ãú…¥~¼ùÆíCº8qÍ»|Á]+XeÅ:^½ÄulÝŒ]ëmqš¢V&…Âl-Ÿåž¨Úææ¹ÁB/ÊZ´ˆiE7%§•¥ ]”Zk¼lZs­ÔÚÂ=W{çËÇÞJš ™ó¹sï´n˜ A ¾?Ýwë·rtS”«I½5Hx-é­£Óo®¶ À÷¡"C¡Kwc È5ÉbÈ4N¨õà œÎ3&RŸ£Ö\htÃ9š65úTyP3WBs$`£d¨á)ìO³™WV¨‰JÛÐzp>%éäQle~‘T›=Š%-/†ê69%qÕ©¬ÖzY„Í& 9&ó”ƒ%//sL–+”™y½1Ó$ŒôιŽÉÈ̤{šEbW.—Éš|‚Á#LYtïróˆXÙøJÞ± Ø¥$Ê¢¨£UËË&êý<= 棜šÙ‡fƒè;3LèÆ‡v<‡ƒ)cpx)2*(䯺ù£=¯ò÷N·=ù$èÕÎî}%í}–°B&}2¹óÕfçcɹÙL´ÂR]\~¼íQ]E“,)™R]eô«hB>hÍDu•Í"Ks]ÔÓì.Z3·Œµ”ã 4U(3émº%gi¹—4MA(!öÿ³w@ªNkËÙMǪ¨èìÂýq  dEŽoÛÞÝ @çâ>vƒ †X‰,Ù,€Ø v|O'i °kp^¿DœÈr"æd¨“ê¼èi°óà /³‚–á‚ÛÓåÞæN4¹w˜å•/$0o¶>ÙHW9MYf?„¿k p'å³[»».hÙ9É[l2ó8u9Ë€h ¬P •¿QÅßñA—x}ðUXÌî§ŠX†w!ÐŒ¶Åç‰Cá»Ö«ÇA¡4± y,)N?/~¦œÑå­»Þ[wcl(V¿˜PL5ǧ:‡ôit+a³N¡Õ¡@÷¬¨É8ÐxdTà4o§Á`9Ì¡Nk[ê@$Ýv¼¿×ÙÖÙ š3V¥ßXÎ~€å8('£5}ÁçS*ÿç5Îøâ=O°n—©Ðõ3žÍ8ãÆª 7Ó ù>1èD,[Øq!#2 Ä0‚ÕFáèû@wœæð6§ËÜx슫,‰ãÆAŒG¦-DÔx‰’ac©çÕ9" Ué$ž{h}wó¾ï?ùp4c½1+T/èøYòoS Hd]Ä÷Ï('|Á÷§ëmðç«#T³÷ŸÇ,´÷Œ~UVX*<&ßç³t‚¸(HªI€„Üz€Qæ#@òa$õÏH ¹ˆŽY€ŽÀŒ¨ç’GвI:BuÍ¡#T£#Ñ€ˆ‘CC¾&1ùŒ ,×Ê•ÄgaÍ(ÂÔ,j&N ¦TY«)±×gšY¹’´.”Ö¼rÍô¾™ªiͬj»f®¸_|JÕÑD,+èj£kßÕ&æX‰»êJRW¹&×Õ +D¬“ˆ†}ÕIš)×—˜k‰Êú¦¤6×–ÏÆB[Zg ¸•Ò錺ØJÍ£ì+(3éó–¹ZÐ¥ =&&¦+ÌlqÞ¨»ÙÂÄ5² O‘„ñUdžùH…’8 ¸PoœKÒ€4O 1Û¨ªn`}r”FbUD/k| ]ëm˜MíU¦)ê#VRMÌС¦¹c§X™,ü–4A,2çE…#84*÷œ^a~;ÉdŒC0¬æT¹}ªÊD¶t‘˵>HIjŒGš&©‹/lÈEaÉßÛÕ0;Ê kEÉQÏEB”Þä{'˜Mð@¯¦2g‚$Ö^ Ÿ Å)RO!E㸂ÞA$Luñ<ÐCÚSà~;‘©µ•æ|(k𼆠}˜Ò6‘˜¢ÂŽ¬Ð‘ÊF9^„|Ô‘½ rܶƒ€´ˆZÞàu›Ñ|;Òü5ËMÁ‚¤eÖ~á0™[f;êzI}²_øˆÊ›ÇÏ32mpÀ9Ú“Ac^‹½ngK*‘•ýÅQ¹áéløñ íg2XoK9œGÌz:öÜ@c\YÉOÆý_8Ê’ÖQÍNãÔ¾.zó{ßà ºf?çn‹y €Â >IØ«Ì'¾ :%@ „ NòkºÎs8›.Ð8!þœGRè;X;’¤/RUVpÓ#oÚ­N"óœVH`·Š}=‡†;ùÚոȌ|+Ð*­¨és1T> _»­ý»ªVDÀ¢ë«ø<k ²càC{ 2Ï\VQÇï¼d­9€>8¢x·«´¬v vyàGéh£N¥ÀÕõPP]/±½2þDí%¶)ÜÁ©l÷#ÜIg¥Ü1Äñ…p^°bÓ_9²yXƒ;Uc¹FtÌÜÙ;aî­ÕåæÑV¬Ç„N‡òÆ«G½Ã-›‘8"qÌJ¦«Ë„eÛ&~ò‰@–DíÉ9•âð”y9·éX®–Õ¼‰è¯Ǫ(ü< xdÉÌaÆøìME#k…p‚ƒ þ+9ÙÀr¤´±Ø¡ÏòŠUo2Dé.ð ™ë–pˆŠ^Å8„‚s÷<×*– ˆ¹™õ/fÔž§”oð>œº_žèIu¿L/dz Àð-£ÖÖ¢Zæ5Fµ²4ˆrĪ•ër’€µš‹cäŸòœè.\͹.GèV^Ìx`J¡°y‘ùÞ(¹‹–`úåûì ‡yY‡®4W4ã—W'ñÌaA^Y’bTW¤xpXàÜü*Ÿ$D‰Ô“‚„/N³ìƒCvQj†uæ¦§ŠŠX6BUB›«=¯J8¡r!-q #…öû ‘g1SÅ~Dé`ÝÁ­#Ç·ªÐcu-PuCFØn¬,h¦‡ê®(îÇò„ä‘q “«”òDž°äóˆ1¡3Ñ®@kÿ®õ7',5¢mO¼FtœZO‚ž”¾ÑŒ@ÏÀçGÐóƒ=›¿ð^°Ó]oyÄQ?³–+î…†‡é¤•ßÿ¿@/Y>M€n˜´B¯Ú;áÁÓÓf³gI½é(ØP’Ïí<0$œ.×Ì•Äñµ¢¯Ç¦ˆ©ò{Êß×#SD—Øò§L‘[z|µAIQZ¹U”ºÆÂy«(ªz‹¤Ã§|uß(Œr ÃW‚ëÛY#(KìEÖHªój:· Í«ô‘ÐÈʼš™‰EE†‰Íó‰Ò39R‰Úø£åx+Òv )¿±âÅa׌¹â4ù¢sÚn˜ê´ˆ¸SF‹UÜs“‡ÁÒxeêÊ"5TU–X̽µV¶#k%­Í§ÁL/dT€{!ÖJaLtó¤Ðœ±V\ske†‘^Ù'!k§qŸpèß}{& 7+'þ–ÒíÁQ=D/{æEЧÉÖž‘Ô ¨nßsKž™Î u®‡‡K· ¦¹ÿ‚v$F…ijL¹Ý™ls™½›"sL»³q~¶¿ÓêeNRiRH›ª˜› ¾@‹¿ùÙþ`¡ôpaš¢oþ‘hÃðŠxç2§u¬gô‡±:¼ê0¹qÓƒ*ëìhÞ£dsðÄEX»ù&§C˜%Ü«òÚŠ¬IiÉ`ÙgÊú@àq±G\,ùœ…É™F^R-9ñY–?ÁÀNþ „W\^(O$TÚÚº“Ç‘ ÚdÂ{èÞïnß"Б”-¨¨X2f‹3ûÇeϽNæÞ¿2ê2UÜÆÌÊh pÍnîÕÄŒJñ‚u3»6º-þæ&þVS¯^\ Ñ5÷@)½Ê E‘ÒoÆÙoYiÕ¯"Û?ObÍ΂ÌÔb˜tóF!ö‘y剩آÐé Û~µdÛ«h¤øÄE ÉÚQ ãÏ«$$í=jâž'XøÕ2ÐÈÍD@c5^¬2"žµñ¿#Ü1t:+¦bèò¬ZŽ¡£SF>j†™;aæô7²™Ï¸`‘Š1îZÍü’`@¬ f>Õj.ª¡†ß¼(*W³­$0ó‰5ˆYvÙÌ'°3/KÜ×cıj25mæƒe>IØXâ*¯mX^”°É¦S¥€6‹I§T¦Au|Ç„™_g]˜ÎƒŽÔ`Á¢YSf¾*ÒjBÆg×LCf™Cpˆ~%˜î#8ôCEòD²0ríŒ30¢r.&å‡KÅ#þ]Ï4C$´ÐÍë„‘Í‘rª/‘Òˆ¯“ÓÖó}ä呆^ö±Ñá䲓#Ó¡“@¬‘Áâ /Þ˜vá&¥\ K…åî;h#‰C%Éß 5YÈ4{è˜\úÒÁy98€~/„·’Ð}|¼JƒVc9äú~Íf_ø rƒè^î>Ü9ÍkÎ%:J2ÑAPâ¾u̲6†'P±ñížži²O™Î4Xg?km<•Í£Ãa¸´äÃ>$‹éÄ5 0ueàÑ‘å[…dö„{g™ýLsäSg¡‹J@@Ëoáв‡ÓÈN°¦‚»Ñò™)áºÃ«'ÊÚÃÐ@±lQfo#ùtz^ÄiX?T„Ù(…& ]èï%ÌyÞÝô ”jLD‚çyæ+v>C ¦/%ïR8•R‚Š¥…z ó_¹¼´É ˜E4Äì7ü H†äà"ÊvTi¬þðïŸÓŽüõ7|&ez‹Ÿ?ÿúO_±…oá/ °zA©cW`·ºøV)ÌüŸŽ=½tùªö.ëÐ4 bNÞ…)ZXvÑÂrs8íú5lèp½þ:¥KðvD«™ý*wNsŒVUõ(!…nt9a’ãçY‹,Õ±9þ&6Ç·Än}D¯±·1@IšXÔ¢£þEvùvÁ(W €{ †º…”?ºÞº?ÕU)ñ=?Ip¨XfoâBö¦B$‡¾µ)Òtkï¸9ðÓ5‘ÜÆb¦c¦Uëþ¼2Ó‘ ÎÝsµ+R<¢¶#ÍÔ¥sE Щ©LG»"Èÿäp8­=.ªBM¥9&ÉpžÏ?G¼Ú¼•6š£Õufþà{c¤4³ÖÞYÇ]ÈkØÒ”Kéä+*=“Ç—…Ó™Ù<”÷He^ž4Nâ{òíC²½ÜíéüžwÐ6Hä“`Táà—@›"¡P GÈo¡Ã=§ÔCfq@‘J™ù¸-¾ÝPîÉÆ’„×{˜Vìÿ~qBqê†8k^÷¹B.aD41r€jɇ“'3룈X{$1OP¬B|V'|ö$3È!Ñ› ®×´,J…úÝ©ÁíçÔî˜å5«´U]`þå@åTw–¶!®¶Qº£ÛÓYÏç!òÉ@Uh±M%^êde/Ítmyj kõš]ëb:‡=¦&‚îϘšˆ~Ïs"Õi‰¦"…wlØZ5yk2É8Pôî§éBœf•³lP´ì²²ú+͹ðeå2¯]oƒ?_Õò=OXá5âf‚Ó×Bh&Róz¼º¬ïÖÂ’i²tY‡%^ «$ðݧySfXN˜2ÜžKJ^Þ$\(d¢>û¾ÀLbÛ˜—§*’ºðzRRÇ@Oʆ5¥ù´P°*D±z1¬‰ÊŒ ŠÙì%{z»<½ÅÇgIQEÕó¸…1E¡·˜ææ; ’§w£äé ™3J •…OåMÓÂLyÓÐ#ŒsV¶’ªð7Ý#?…ÄÐ9¶!1hÌG$æƒBbô‘³v€˜&+G8ÌÅïüA*“å>GVü>ÎH‘s?79=]Жw|q^°-Ø > ìƒܥ€žd&!^Ù&Þ(Êt‘ì•.·þ¯+¬fw‡ßñ„=b™„ ÐûbޤÒ{0x_.ñ‘£ãÀÝ4‹T ² Øú`FˆA QŠ[DJ †©M·ÌI§R7Íh‹Ð£åÁÑÛÔúù-Bx¹e‹:&%I\"Eª±(ºÔùL¶£ð¦XžK5Ás©…e0F«x ñ«9ÎC‡)iÑ䮦9C›9çÙ¥J{a 3b‡x+º]0µ.=œ^²5=±Šsw¬*ƒ$“‹å ºçB2<¼ƒþ óTªsÉ›Ha ¯[G~\Wù1FÖf][Ñ4ïq^‡¡jÌ{œ×ÑkE3ª¿ ú¼ö–>o–…*¸Üp¬Ï«²¼p‰ÂˆÝ®ärtR™´+Dëñl^„[ó®såÖã ç3ëqV%Ù|ä JÔQ.ü.f%žÉMWyÊô}Ÿ;ä~ µ Ì«áëÜ>9‡!JËÙýa+Þî7;`:´ûG,Äý(A^èDÃ+íoœÍ‘~{bª')9ŸÆIÊ^”U1z¿q°«3ºâ‡,3 Un:Þ^Ž‘žÏG/ïï\6`^"?ˆ$ËS—Šêꓼj¹Ä)z4ãJÀÜìx“ã¨;ZÓú0‚“²œ-VŽÌÝsHÏäÈZß6ÈùÓ¥ðèíy”.k¼Ž¢mSý¡§éº »¸U6î B{—ˆVkþ¯8ØP '««N6Ôèhƒ,êúÉG*>ÛXý¤³ n¾ÌÜá†QƇEšÅ™‹o&R²j"ÎHáçÑêš ä9Hnf¸Ù¬ìtÞ=ÎÅXäàX¶'H\´ÜqdQ'v~ÒcŒÛv§Æ~7ÊG~w ßû£ßýAùÝéé15‰#ÉH3d¦àL™ßñ£é‘tU4RgÍ4—­:|klIZìéËÎ뉃›º¬cÇÌu}Ó\açaàÎ&Ék¼pÁ-E—Yk¢¡ó5µN .gpDc‘$%$ Ì«ñ#oc¥¿üÈžgJ=·'ïØòï;ˆfÚcœqz¤´Ä\<ÆTj­A¨¹‘„þ©×£-B£ŽÑÂÊ^šmÆ,fö ¦{[ä|ïÂHœ{³m×Åž2"ýk>XÒDÑùÞæìœân7#GÕÚãîÁ|0Ø9i·8!<¥Åº‹­~ÿ=«šñë|¹ç•ôŸij>ñÉ0IщÄMx2lÜñZÔv]y„¸ò;_V‚düAÝ Š%7¯ë‡~qÞ@ªÝmˆla–Ü=Ê Ô€öSð}9þjö½ïÚ??DÖ"]<£ü i.§äÁjÕ8×/.û¶â&²¼öÖÒ:“ÿqñ†¸D¬à‰6–˜à3ŸMÁ ‹eã#Jp=øÀŽÊ:•L]cÏõèAqÌun†ž ³ÈJ·¤-»îhŒÌ5Í)0,´—(6UÑ-ØA¶ªŠ”!2Ø^lô؆ ñ[^Lœ}jJa¼ÖLŒLÖß°’1‚ÓeÛâ ùsÌQå¬gE:™Nu¶Nè‰æ6ÇáË8ñ@•òÎ/ŸåEa¼m8r¿éÖ-™´Œ2yÇÁÍÍ}87ÒÐëîÏ›ô$Lk^D÷%MÄöðþ¿Ø'ÁK{cñ`OñIÈM]ÜÔfa"&êÛÎç_õSÝOÇ环œ[{RBac\½²Î}ŠB7ë™db2ÁÝGÐ1ÉéîXÙŠBÞcn\wN­Úó¸ØÁxù¬¤ÍðS3ªîàæà=¤*ÍÍä—Û~·ÇÓXþDž' C‘·Ëq‡=ÜÃ}{ììQ”8£7r¥¿;ðçhÚÛÎRÃP.Žù¾»we9\57ß1Œ”A\°†èzüy=´xÏÕQùˆ†–4 ó圆2eF0DfÏÕ’µL¢I%…/©h•M|tV¼‰Nr‰@Õ¤2‡N”‹/o¸P€$!i6cI!£¿Þ·ä<–”bàƒÉͽ\Œ· Aø³R°¡a†µãµïå¢FHˆ„pUc` *! ü›®µkZ³%P‡1©<)ìiu¦mY²þØ ¼ç%—*R9²Sçu=ò”Ãu'0¨R'z|èLÁÃ¥Ï0½²FÌŽì£ÝB¨1:‚,ZƤˆ&òOÂÞkã:xA§DÅ~lßΘoÄ4T^Û¹CΤ{ PŒ«P‘a'ê{¢úõ-|à5HÚzæ+$Á°µÀ?‡z#gnð\Y. ²²g5•·¨°¹Óƒ•yQ+4$ï–üèß<ôfat‘Œ|Ó_’ñ·BÛ£D…F7N=l@“µÆ?¥Ù†ÝEþÜÁ•œÙHÞ°¤š|!2ôïªW#)yGÌÍP óü$E+?/Ø!äG@¤Ç/‚6.&cHü q“‹˜e\å…õ£#!DN;˜óAùè‹€õaM¤‘SS¡Q„Ф“‘ý!4PšÍ…ÐdÿÈMùH0Ù¡)Kv-BƒïíÓƒùØ»3/YÈÞÊë “¤.–YÅèúè[Žê^f “n˜{&”çêRh¼t]s³MBiw D>Ù$yTI‘½ %jR˜ ÛC»û¡=ðÝJ'ÈHàÛãè8Ô€ëÃ*î~ÜÝß¶ïlô_AlÈ-DÿÑ/f”Þê´l‚ÂjPøõëö`:gÁ¬\S6Óšò52/Ô…x›§©ˆG)QTÊ"—:GRf©Î€4‡Q©Ù¿i%³äRBÙ²ý ¢š2-FՔЯ²Õ „­†¹qÝ ¢Š ìçJqNè‡EëlŠÓdg“‹)ÍVã¬=—ê$c#IëàL±’ÄqZí¹hÆ«uÈ¥ùÖ™u»ááWg£ ˜€•E]^Ê( M»ò¦] Ø`Û’H𱛏WìïžøýÇíz}2^771¡*û&R[v2Ì|lS´;ØLŸÝ;Vk™>Þ‹O|Ì‹f“'¥?QîÇæÚÇZϵ¦Ê¨Òþè+í6;€Ñ\‘XsX¾2wâd*Ç ãmC!Û@Hj5“ ž:èB;#ÙY<Ë|¸¥™ ¡u›Xë¶­[Én:Tƒ¨‰AŸëv°¨¦ Ö@Ø£F…Ú 1h|† nÆ–Ÿ<¼Ý¶Ž›DõÆáéè‹„§'f©mÙÚ¦Dþ@4/Óð$ÿØ­ŒõÂX r–ø>ÆÜì«PãlUè Ð‹s¬*Ûè½Qð¸ä:¤H#óâå!ÚâTƒ½Wb 0fWËSš†Ôøíû }’¡÷ÚØBw69ªëqH§ÏY¤DæøF¸™ù!×§[ ]—Û&ŸQ¢åÁ$ßò!¶­gÏ|Îï¨R´] ƒlo>¯[4õl=¸b«vÜ·äI0æŒ#j߆?ùè'·D }>ã÷ß·,Gœ rCà¯;´ ûfm8ûŽi´•°Ucc¶L‡šÌæ@ù¢x˜½ÔfMR3 ÅB¡NJ ª<á­{˜>.ø€ÛcΦ䓼µ¡k#On{rh[ga!ØA&!ü¸ÝdÄZž–‹é‚¸Þ^£µxÏLûÅ`%Íkå\pn¾ú¨Q8ú(ö§™â ®µVËXz¬§Z»d„VUPVÌy$ˆÔV'‰ ÇœÕç}¸‰.åÈTuQp 2æ™*:¸·Ñåd,ˆòcÂ`¾•.Îë옕²ò¼RÏa„:ކK20 ß\­¥“)¥­pÙ1ÂX­F ½ïY‹´È-ËÊ8#ÔÚ6>í(‘Ó¿(‘˜øJ|P Dþˆ3Òb‡®üz|¤‘T´8 WâÊVtG˜3ž‚)O©>Ôj™qŒ!JÄqj`mëzÑÚÞN?£Ú…Xò.Æ’·KÞ‡´C#|I> ÛÛÙ¨óÒ¬¿T¸±ýœ>MÅÂÃÁ ¹S“  âëbõT¼€3ýÆP<…+­uõNL:Å„Ö2~žÜ„˜Ÿ.LUAb5a[즘ɞ¨–¬$Ô‚‹ Û)ら º. !Š^q‚‚s÷<Á¸XØ”f¢sÌ|8Ô$ž9»ÂxÔPWÙ”…‘&ù2nˆS/—«ÞD !Ì *63¨é4)ÄÌ )Ln6À ‰m!ÕyœeÊ6¤iLÇrˆûÓb9Dt}X¹©P•ã*²b9ÄGÔÎÈqÅÐ 9<“¶¬%øì4Ç!V5,ØÌ2•i#uN˜9”Å›–¥—1gˆÖJff®Ä<ÈÕT:4Õ.OTƒdû ´ÃDU(cHÓX $ÛX“.fyeIÍP4äIpf[Œ³¼(’ʼš÷›™íu´õì‚­‡9ª/ºY£^‡ën´Åv¡¬]„íÙ-*hN ‘={Èg<ÊZv¬LBðûØë°·U1²¼fÞî9°Ù‘Ç,qéÏØ=Ã`sÊ:³ªFôŽ…-²²„òÞŸ½ñu0Þ”ð"Ñ«wÀMáxk¬)°›:VÞ©ò&¨Q i¼õ Ú!õnÂ0à¡ÜòkDè›ç ,‚ þê‹l4¿C€“á£3àmn‚«ß:% ã{£š9¥-ÎùÍÒ7°u]Íã&®@‹¿¹‰7aQn<Š7ÙE°É.L°h‰òh y 0“qhAÚUH|¹TŠu3½§¦N<÷c½ÑY>3ÐϲjïÂ)ʆŒî£EcX/ûg£1êÍÏActVU?ŽqQ> pLYOÂ1ôóìîf3’F’ãØÎn1çò…Íô‰ãöz‰ÛS“âºI—1ºÞ^A ¶|ÏÌ—eU&i&2_Êib°”ßÅeËá2$RÐL‘&æÕ² CÔÜ[ž è²7 "ºRB \H7Çt‘€Ž·c†A]¸¸Õeì%½Յ루.‡Í Šª^ŠêбL©YãÉj­µTÚä¥ÔâJÇà bž²$+V*K¬W¸je:À ÔÊtÄ{Q‰9paUYš?ÎpcÙ2–3uDÁS©‰,”yµø¬ÕÓ㯌=‘§Ç_eÓñW»©ø«ÎÅ_½¡¶Çh¢]mûèÎ\X ˆ=Èy9¹Ø‡àÍÖ7;Þ`k݇àÍÎ-»0¸Ë‚7|äŽÔ‹9¹v€8Û»qUîݨx3…Ýäì&WÓØÍÞS¤E8 ÃahmìÕtàšw±Q#ƒz|VÌø„‰ƒŸJjO|œSŠ Ø\ˆ„)ÃH˜¦¬¤3‘0®@€èdÆHPy–Ì":T`…­ý»ü@ ;f÷ˆÏa¶æ / ¡~ ÚY „Éˬ¾&¦ª&Aúy:&ÞŽV L]ÿŒ@˜óv®·ÁŸWÀ:Ë÷<Á.ZÔ²QÒLdMkÙ&‰ž „˹°ŒSUEQ.‡ÂP±ÙËõÆwÄÝdK¸› 6s„‡ …Â`˜¦LUQ–cD§ D§´q&¸—‹9Dg“ðGIÿFðG ä#üñAÁåA"”+Zþx7aŒb9¶§„3¹–r-%ȪNPÝÔa‘¡b&Ñ’`¼$ñÌŒ\r âQ-æ;P 1PU1cê¤j¼`9íÀãp*3ãñ—úSàœÝD¢¥ÖµÈñ!Úú A1Ÿ{¿W“Kþ„÷ß ZÀœ ©²ÈžªfÂbvÓÔGQŠå.N±ìG6”¦"ÐÆOlÅça×ȤÄÔŒ:C{‰ßâbŒŒ1_“¿?,SfÅOeê¤|–iòIøŠ~žÙŸ²l'aížʤ 8@Ãc%õz.Ÿ’0êeý ºÞº?¯”íˆîùéæG½¬_ÁÍDq¸õŒ~ez-,>>XÆæ A:WY –¡Óïx ’¡ÐÉņùÍi•‚<$ƒ†H&%<¤ÎŠIH†‚3pq’Áý Ñ†dPE@|ëª8t?j *2f¼½ ’É4!…s»à€Lm¶—,Md/lL¿¸Ê @&!p#ÝŒCR2d²¤±d¶Ä ƒj2ðn†Õ¬²ÜÑ'K‰ ãG)!@¦HòÇ4V&õ" SͰl®ò$bÙÌÆ±¨ —yµ0õ7KpÌÂYJžâ„p.¦ì¦S˜£?Àb<§Jü•X_”;°ØgH©ñø‹M¯z3NŒóÌÖ"0,º¬®F`¶7G³PÙ¶sDËoú‹D&Ç4ŠÙ Ȳ A1 ’Á9N:s޳Ÿ YŽ#–r##ëà [ûé Ùc ×&ÕÄG5bl‡·?Ÿ :½à蘜ÓÚ £€â¤aô±]`ÜtPa¦’‡˜Š™»9.Îч¹!¦¢‰x+¯’Y‰i_ µ›&>LÅuÇt-¯’±St"J†} ¥SÎv”ôDýokåÍÌ h@ÓaJ- Ùàz¸~ûÝ?ùîËÏ^}öåW_|íäÝúF£ùNêoúäß™ŠÏá¢7LþÕŸbcyeYå–.ßÖ[ë£D›Yð_lÀÚ†ÁFÂl1‡iZ•~^ÚÜÓlµ¤Í6iÅM%Ó磇A2*;5‚bÆÒrU¨èßU¨€,|D>(T¡úÇæÃhžÊ‡Ñ<ã++‡ø ò`ø:»X@ø š«{¥"˜0O¢Ààs)0ö6a®LÌ£%þƦ(†1_Z'é€å݉R/0ru" ¨›N«Á0…e”°‘ÌåË‘jGêCʵ-;#Sgz1_NçU>CßZ'}+>C{Õ8ÒuÓ·úw5`pýé0QÃâv'–Ý[ ì~#F½H÷^…†é5D\Ûi”(M’AòÔ,UA˜¦¤·"Õ1ÁÁÕó¦ž!8P3>ÞÏÌ B ¯¢ÑËøPšÿ°4+~J•éú£YTiYN…íàçé•ihXôWÄì ‹]œF•V•O£z³”F•6ɲ¤«¹nµM©èUØ ÎÝó:Èdâv"pÈÜÒŒÝã”RU÷1Aæ˜2dëAÉ7ìs©¢ (/KwS°Ð1·,L re4LºÔD­0“Ne&.ÎãC¸¿1-€;ÀEÕôÆu ¶“6*«í¾SWÔ8• ELí;”´¤²Ææ±g®ÄR&”)”'ºT§1QI½œÆ”§õŒX•ÙõƒH™<Ï<)ój~Ò=1LÆã2–ï‰,Þíã9L;‡É¨Ý$³›ˆ}aI - T$͵cA°Cî¢0åbVœŽiï@˜Î‚0{Á^^ˆ§˜f ¦1») †£]ÊLýÔ€Ú1EsHBC•jõxëœÂb‚ø"‹Å¤Ms^šÊØÙèB°ó ‘%¸«b@¦œHX¢Xˆqx‹®Š\ê˜b\ŠiÒ‚èšY(†¢¡Q •¿õ‡’°t' oq°å#XLÖR¬â°UdIöxX˪Ès=…GÐÏ£°³tlÂý*™1öj’cÀ›q²RQ°`œ¬¤^ϵĨD5‰J@+a„JÔ@&>¢*Qÿƒ¡ÞF¬õB@ê©;˜iý»îtÛÝŸEÝao¦÷?PÝa%Äç7ßö Œ·ûÝŽ„8Dxq¤âàåV;0ëxËë9ùö°;Íî{{ DÎü8Ví:a/:œàØBfq$=@Q@•ÝÙî#MŠnè4ãx"êü»Ck¹æ„yŸ5F,·¾2Ïy­‘½¤Cÿ:|*óŸçöìr.ȸ!+ç=?a{ýŠa}ôN¶y¤Î®qVòÞ¦‡˜qÚÛ[xØýÝw–u¼ž‡LxôÀnY!w$]ÒÉSU"2ñ{PÎ>ÌQ¤,¿P—@[ðòÖ$qÊwˆˆØ²·^Oº(ýÝ(¦x¾}¸äæÌÊúúµÀ¶¡½²’f,6‘cË8v¬ì"µvñèƒðDH»; Ý;Ó¤©À̓ÝäF ýMÏsǘ  w´ÌsÄ yìES$fÔP½1å#y[új‚¡HN¬´F`Ý'ÌMeK†–5a]Ü{‡ldxÌ{O"(7´EñÖËÂ4ñTZ% 7ó*èÌ>îŒï¦±ÿäp8­9s¯LôTæ^Ãp¸ 7)ÿ.ÑDRN fœ[¯Ó²[õ½J¢}äÄFtö˜I§©ç˜t˜Íås§(;T?©¸Ì¨•¡^ºù„¡,jvfL7tw{‚avÆÖ‹ä±ŒÀ<˜yZ®{ŽéÜÔÒÜð‘ÒéÌ© ƒ¢P–:¦&Í ³~iÑsVµWOûïlÂèß’Öëþà¨y½n¸lóÌÀ€D ÔÑ?îYÊ©ÛB`J´Ì ‰ê6¤É G*Ö WÅæI™k®Ýa2·ŸSã!I‘Ð3W 5ùNâ0ÂQ‡øÚ] 4Ë Ó:I´@#Ü}ÿÛÓY>Þç¡fT×BðÐïÜ1€ªê†Pݯ]‹‰µómÔg f©UC¹.’ (?ÛÔnÿ‘é¡<¬" –;Eã·./®ãÙ(ÑxuûÖ.²Ž€%Å)혀%p nøµ0à°Íˆc‘…®·ÁŸ×0²,Þó„Å0]æ°åf‚Ô úS¶¤©¦îÐkú-Ù1’Ÿ•OÑ×6™ÒÐ:Å–†ÿºu®¹Ä«A»%Ñõð¬8Ï›iKëÜ.*ôšëSÎùö)¬¨v;{ ’ê†2% ¼oïÛô·GW™e~±"”Uh$ ý{— >Ü·¯-¥KÚ”.t ¦à¬†»bÊZŽp”y©ÃŒH%$ÑnÞA‘5S'÷²çû-Úê pæˆaúãæé¯­Žéè챇®júMë ò@%&Ô'h´˜.Õ”I1ª¦LY}‚«A ª¦ß¼{FoÕÐÙ$}JðD…ô©zRlèßRl+~„?(H±ù%Ùcòq‰ÙLBö˜:\aá#½ ‹ˆ¤f0æüÚ‡[·„„ÅIEW¬tÚNÀ(3J>¥_egãåJt³Bçœî†¼ýtè4Ú$ýÅg’Ç»ž²4ýdŠðfňøÕ0çÍ®w:x1Qʸ¸\¦IÒ, pйJÚÐÞ ²ŒÁ^d/¨pÊ{²ŠÎ7²5|‘ÎŒ€Å ‚$.t€Æù'Ò=àU0QÔ6Ô0¶1­xÝŸH©ž-5M;q*r¬7™5óΕ,fÉræƒî‡?gë€Ñ‹‡l«œÏϺ³‹?€i3¦zÖødÃç™X‹¦lØ5ô€RZéFˆjfÆM¨¥/sc6›¯B§zžÐhñ77ñ·9QK-¹í  wÍ>$ÈåÄ8zóÉÑÂ|¡îª{‹P­¾ˆƒ»_òowœ®›˜:ÏϧÌK:‹àÅéˆcë Ëp ¥MSsÑäön9Ä;1÷E ã³™ÕÂkÉb²^ƒÇ}Ÿ›À/ïJnI–$E88ÖDš2˜–ÀV"jÇH’|ìÊcO„1˜Jƶ/ƒQ”J ,“Ý™á ò/gâ§3‰âжm $”6&³›c­Žýå–åv•;¬Æ×k`t +‰`Ì‹&/íÂo¯ÇaçÓ·¤ÜÇxY’'xÄŠÙ14¬¢À ÎÍCØLOÁÙ>öà蛎}º !å“",P—Ÿa—vN¬Øz½Ôƒ-åÁ%˜ÀWÞ㼇žccóô€·oH›]aÿ‚ŠøÝŸ ^CµØžÑÌÞôk ªüI­å‘h´Ò¸ðÒúœu–élŸª½Ý¯RMl â]úã·»÷³ø¹ç:³£¸ ܱÖ#4pTÚõ|;P­á— æc…r61}@ÆÊ<ŠÙ-úHŽÒðÝwʆcŽEkøVeþòé›ᬌbtnS¨ò)8„5“»j£ ž[ZO€Ê×» ß Å÷ôßï¿¿ÑÆLݹ ("x ’X¾¬nl¤ÌmŠ!¬¿GG9á§Ûºã™°Å‡K= ÝÓnì€{àÁÎê$›ðMõä¦t)•>ó4('÷}`l[¨³™1÷$1ÒˆØT68fÛµ[ëS†‚sá½@¶£6Þ‡#€#-7²'Ù˜‡«ö©ØÁyá<œí¡ß!ÀÄêFh©«[ÙãÊ _‰yNÚ‚øp2 ¿|ž5ÄÙIÜÄfík+¸ÞËç„C¶Ë{óeÝ^hº¼~¸·ó…v)Š wïVg£wRT jbpöÄŠA+%wn1µë¤ì²ù¢,:uïH†E íoŽüN-t¾÷]îc«¬-AÒÒ‘P±µí–æñ¦¹v[M«¡Û¹‰ÞéN¶=|ÙÝyÝyKe¼NKXO"Ÿ,†nG^È•„[æ½4zÈ[1ÈåQ?9\N‚õŸh ³”‰?‹HêT·Ì±¼¬éö}Oé|RÈ‚e©¤âØu]]NÄ÷Irfİu(Ñ ³Á5Œ &JöÁîÁ¥‘ywóÅ×ß}ö»ÏþhCÀ{žŒâŽü¸wB–!²ñ^X\vQl˜’…™·4̼Ðꌑ¿ KñVwŒ­Ñm(P1¨Œ”dV§$¬F?M›±$;ëbÅj¢þmólU5gĺë-ýÉÕÿmLXm©Œ§MXtŒ& Òó°ƒß’3Ó±=)&äžã;°dné+½“ “We7œŽñ„2fËf4HŽtg6opÂaO[w!zAV™µ'†±µùêlíõ8°CÂmëÊñáôà Æýéá~·ð0b怯ÆðTIø 8_¤J°’8—óÓæ†c7¡ hB8ú·ª§Ø¿èçWHÙÊ3=[ób]*.nÏâ´\"©›ÆÕöyñEa+l‰‡ÊAÂX¡msƒçQ"êèSY8ÓÕf‘0a X aˆs|´ØÏ! J±äF¾ï»êÃÑ ¹Ù î%ØÀì[‡û /.Eª‹…ÅEáºðƒáÏk8ÅïyÂⲬ#ÍÔòkK>Ã)–™>× :ç–é`m d&âj¦ä’â>’!’\"å#’üA!Éer%#É6=G ä”Ó:œHÛ=NÓÌ¡¢¨KÇF¹¥&ÉrÖ}n&süû½„–È彄N[TpVSΞü”¹^JP©“b†µKgA"fÚŒ‰C .3\Ó†±~½·¡ñâX˜†MæÃubÈ”ù»3IÎ|kÆl°Êå¡ç5o'd“ÛáÇ·–Aët‚ÿÅ=#Ùâ‰y«}éRË¢©§³ÜÑ:B|Æ|Åd`?0zÈ{g`Ç|ËùÏeK\HȤ+Ô0´Ð;8ˆ‡ s+$¬¼’pOH’ñº˜N_P–0Æ öeüüjð©e:¦àÜÞ$v Q,Š8PSÙ¸QÈ|È¿¯8qb™½I–©Ê±žø?¯‘[¼ç Ûç¢ÒŠ’f‚´ÇjFi… Èzt®ÿ­:ý¡ §4«¦˜° ÞWgSÞ®TÙù˜%Z³-‰.GK®]Ë8íœiø¼ )c¢ê™p'Ý'ƒ|*Z‰®¸Ì«Ñ‡q-ÀAÃÀöæŸc©#G&­jáц+GÑpKìÇ'Zµ6jaõz°$À½û/ô ;ÆÍWn&0‚]Nr•¨}ó4÷4»>þ  Ó>"±äkùöýÝfâH£C{Ü=˜=–Úûûý‰U†ŸT‚Ý|ÿ=Y킹gþŸà ¯'¬F§þ¹(>pIèÆ‚L×ÛàÏk|`.8sϾ³eIéZL8£ UÙÀ¦Uš _žÚͧûvm%¿§á&]”@P#ªyBÒÈÞàÌ9t&µ±&$KÄÍR…[/i”§ˆT—6ƒ°œ2§#íEŽì.,‡kËbòù_~šó’rí=|™zÀ1Ñö¶ÖVp[!ñ$|_ÆŠÝVêdJŽI?¡zÊÅ"j޼*B󆌪?˜1^»1ž—cÊ«J{9&©ÌFÝÐãy9¦œÏÈfƒxP]]É(¡:¾cl¢º¦,F¦!µ¸íú¶Yº)©Â gÞiêÐU¾ ¥ëÆ©D­¤,³†¨×~$Áðœeõ´Švè—³þNý2MÿF~™†oöÑ/û ü2ýT´³qt²®Fl@S+\(õ9TúŒ=‘Zj´QÅXýFàH—ŽÉ§E&\=¢PxŒ’èÅj0/Û±Íi “†'µ qB†£` CH?áeÌ% ù‘SåãL±Oq·>ñSÙÐI`Øßü‡y$²V÷LÔINMÃ/&-Í f<<pb¯·ò§Y×f°zcûþ¬~Ýßw/÷Ý¡k²õbœ‰tƒá?åTÜ&jz%Ò`tØ_¹süìwè¬Pòe³´Rð꼜—Pø9ŽÆ–]½,ê¥äB,dœ…ož¨™ÌÂR$`]A?JN ˜ÓÏ(_ÉE·çwêŒê*Yd„Æõ6øóï×Ý£&îy‚U^- uq3QTû´ …‚zÙìÆòûöõ‰'G3E5'zãK]àø¸æ £ÜÞ00ÊÓ´ôÆ©•9r.TG?ŽŒrãÑ'ÞÔ•c£\u¡uƒÕ[×ryd”§?o+HÀÝÆ—GFyZ–ͤQn>zÊÅ"£\„ȧŒò½ãy£ÜÔ›x£\*›6ÊEÈ|Ñ(O›¬ðF¹Ü1m”gÄžÿ¨Qžiè2.åYšeóFy–æµ7Ê¥ì´QžeM5ƒ§TaúØŒV¥±@<Ó—uØ'¬³ :1ÏTlž…šàùX,eí³¡ìÃÈ>ìÎhO³l7[iœ³ÖØÀ:ÛŠuf­Áß·gÙÊ_üÆÇŸ^þü@»?‰¹_:ì—Œ33älvHœ³Úu`ÅQVÿ:ta¯Ã2® Qd™wŸ©¹ˆ ¹NæO¾÷¯gÅmvgcÇ¥‹±®bÆUÞŒË+Jæ_ž ÏΙn»ØtÛ‡1a’ù­<×°¶T;ÖˆKeëv™÷gɋَۻxÚ{—-‹©ÉE”pœ` ›¾ŠüŽv`v§voÏ+ºãš£ì‘¥ \OóÚ3vÜ\ÚÛÎÙ9Ï=‘‡³·ÕÈ© /DÜŽ•ɦ»p̘£ãì0¸Ób”Rdƒi•‹!Ú€{Ý&ãsÁú6à£Î±51ã–59J>½<îò§¥œ‡¥‘΂RîÇ Gõý÷É?YÎ Dö¡“൛¨‘—Ðվưf»Zý ÃÚÙÕÁ­Áìú4Ã: ªúù†uÎ!Š×ÖERÕêQÂm=eXãçYÚ­³_Ȱ.2ìÕeÃ:"Å*õdÜ«¥#| ‡mñ­ ßJÿ‘©º«GtuFTÝÕœ¬Î"8G‡L¿ [÷¸ÚÍÈ غ÷ɱu“ÁlݱóÄlÝqUÍ„ëä黩&¾+vœt2pœtRç ryè8)₈oÓuÐ’\:NJ§ÓŽéŽ“ 'eìœ9ÇébÇvÖo2w‡~“ÔåÈoÒŌߤ¼ß¤‹¬ª+æý&¥ùœ&fùMºzÌoBÖñ¬ß¤ë<8̲Ó~“næh7Ò,ô›ò Îá†Ë¼šûnºÐoê‡~Ó øôGmuµû:Ë…‰¬Õ ?‡áL%¨_Ü#ËλRCS9ö¹zgÆ@ËúýÈùRj2¯¤3ÙíÝ¿&¼’³t$£$«(½ ,{5°ìW‘×6¤ó³FÅ w¦÷–dŠ.*ŸVˆÍ’Å÷bÜ6ûÛœÛÆ×\ž’èiŠœÒgÓ=Ýõ–ÿ¤Êÿz‘ò²‰”ËÌ©AGl< —Ö4ãžÞÇÏžé4oð|s~«+@§ñøûo4Ù"w¬ï §w탔µR‡÷ß?²ÝïÙëfÅîYÞÃÞ%rɈ,{莀gqÆñGcod缑}ìÈy—x#;ŸO®Œ"ÙR övG.dÇþˆc÷ qþ‹œš ý‘p™wT8q ÷XaºÇÒÁO¹„É…,€…®ÂÃeNŠxÖwQ7¬©øyÖwÁê®+µ$´ \^Ow7Z™O .ax‡S$ëàôC!ê)§F-{5;ñj:>ÐÈWgàYŠá1×ÛàÏ«bx–îy‚»(I£¤™è´ ™Ž•*ÅÊÙwú­qÂ=E†£ëL-‡ðÔÙÈØu5“A&†ž Y¥(­!¸QÌÞ¦&,«að7Ó@¶¨ùQ(>œ!ÓŽTK©Z˼AȜծV®`Ò“!jÈY³*Ï%¨ˆïÉ\PQ›“3°âo+tÜÆ—'Bz0ùí3„!=:l•‹ Bz`rv¯ é)³0¤•Í…ô@Ó䑞² CzŠt!¤)ý†ôPærHOY.†ôè0¤§,—Bz’+BzÒÉžŒþ °ÇGÈヂ<²ŸÒSŽ5/òzœm1^ñâž‹ÛÝB†ˆ©l6›TŒž‰|°"^,Y|êó(˜<¢ÃØøL[—õož‹žõžCtþ#©_>§?†4Ñ.RgïýŠ=Äèoþã™óz)R‡®G‘:Æ÷ÕK‘:îz+þÝ#ul7Üx="¾’àˆg;>âÙ«øŒ‡›£xœ™´ŽÂtv‘wj}ÖÝj œ<ÞÙKlŽyüHó„‚s@Å¡<— {~æÄ… øëãt·ß¯=MpŸÈOŠÒ‰ƒtÔO=K@ûOÑ™0ÇÕã1:«ù·Ü¨Çή;JPÓ1:f<…”G|©éeÂKpí~z0ŽzZ0Îêçã<"Á53+Á5C¯ÉaÉÓñ8«ÇâqÔd<Ž«9°°cK8º/0°]X Ì©°%Ñ5Ó¶ Ïñi„ r*dçZ¯Ïq=QO Ï n»&<'0° pɃž^žC¦£ÌÃs~áðœc«J³…‰¿š2´Ôõ––DãŒh}ñslkås¤M–i¦ì sZ#$ºã°w£8 |s°NÖ!ùW'°h±« ŒÓ àuú•Θ3Û`¬ùÁ›ŽË9n‡êyBMC¨˜ˆ€,D š´¥Ð_ÀÄštD½3mù)_€d¶(ig!¾ço†=1Ÿ€ŠSâG_* Aö,M+½4+_ Åßêo5‹@1zåŸd(ÆêÁ‚¹êu¬XêB—x݃Æyú€Æyöwóü¯KóQÐ8¯&Acüû à³üJ¦’ú¦’:ÆÎF*ŒŒ1>ˆæ*Ű"qYcÿO+klØEÁÝ+,‰£¡S•׃¤SS>šBME’¸šä®ÀeA.™÷XŒó°*“ isQļãaî)›<º§J_ŒÓãªGÄPg­soÕŒâašYqEÖ« šÄ«0ƽNŠÅX˜’¢_’²ðµÉNJ–x’ba¨Eï‚P£8ÄœuR¨ž¬œqR2Š~É*ë¤@—¬œwR´S?±ÌÔE(ASsr.ójnF¯&ó;Õn*¦*tTf|ÌÀÂP £Ä.˜Y†ñ-òYŒ² Õ„–ŽyÐ÷3ÙaœŠS¿cà2õ1)½mÌg„¹ƒg5LؤÄ-å JúÀÎe7’ÕL‰ã jzÍÿñ¬¢í ‡;Ó £»n³H™;ÕzÖÈ6×®·+.Z–ï,ߘÁijn|2(Þ¡ ã¡p£Ÿ“ÊdÇ•˜åpj*/l1‰23™óVEq ד,‚zE`û{É– ]YFý4ƒþb@>6Ê!˜N!P.‡€½Ýn5yê$lã¬&αόóÒÊÚþC>î8ƒ@Ý0•?Sö» Òú‚“ºìí 6S`“’§Ý.'çxšÉ¤ð0_8`$ˆn$öAÞ€JÓü½€þ”ó¥~.Ðïw—'ý)§K~y;!Οé,ö›1Ο¥CMl»IšØ£$-ÕŒ ¶8P²Œûb;¤–"çHòd² Û½w•º'e ¨©”}\³ÊòjQm×…ì†ÿ¼"¸W3÷<ÅQJ—£È¹ØQJgÐÿ¬(Ëý_žÿÍ¿I­©ÄB3à? L˜S¡äZê“Xro1ç‰èõÁŽä6c›™xdµÍæÇ±Õœ³F”­oŒíæ<çŸ7‚óÔ*]á¾<4Užå:¾-+¦øòÈzÎó¼˜4ŸóÜÛ¸DÊÃÖrh@çÆQ¶ ‰'' ÚÔ^z£Wªš¶¡ó²)³¡óJë º²)gmh³%ÛÐy XMØÐEÂÄBÓ6t‘Xv!ÄÕpÙ™H]eÓ6t‘7#p™Œþ’˼šùzælèýXÐÔ`ì7[[lC ¨®Ì¼˜âõÃÏá©‹yÍÁøj&¢<²¸Çå*Ž(3«òIœ¤ #œ¤Vò'ù p’â‰aF⃥•ˆÕ8`HT  &Ó¼ˆO%  Odó õz‘ñe:Ÿ€f²ØÜË ?Ùíƒl¡ ’ –ƒ(—À…Ö”¤îXäKÑAö2'àοþáÈ’ë¦\?V£4‚¥°({=J"PKqQ­/qQøóoóìg¸§xîÄlÉ›ýûÕ0I~òIÐÈ3¹þ$ˆ#°®?šùZU|NùGq•N‹|*`‰~žsdØNbGfoÕŽLxÔ‰ƒ.„âÉè ¹ò0›ð\ȫ澉υÎŽ²þ‹óvv¡C¸½cÝÅ0äÀƒ˜'Ħ,Ä<Ñõ6øóš˜'¢£™½ç)^ϲ6†ô-ÖÆÐcq ÅAOeMº=aÌ¥$ê)"Zç9ˆ¨ÀÀíñ‘j:æ‰t3å>ïÿ3iª É)HÈ©Gãÿ'å –‰'ªÕ\T‘T3¿QæjµÄ~Pš”¾àãøÔÁ=Y‘MøA«4/ªø¶¼JƒÛò¢šðƒÀ^¬†!Oä¥EU·å0§€(ë±ä#žý ÁˆÄq‘ª¦ý ´Öéc~€>¶:¾cÚ2ö~õ¸”%©^öƒ2–ó~P†ëIÙ™€§Ô᎞J{?H믆2¯f>§éx' áõå|¼Ó~Äñ¬¤5ŽÆ"ÍMþbúh eíS”Sóñ—xéT¤“õÆQJÎoe”¬Æ´²6ì^M2LñÛ¸ó{¿g«A&l°n£øcœ§µ£+º€ù›LØ}åDÚ\nÆŠsœý ¥ÐŒDc梜\–eEùþ¿¯öÄ,VKgŸ‹CÀµ~Œ%K_ç¬|«¿Õ,³è•{’…tØB¢œÒ,ŠrÚÆ' Κ "›VyRRŒçSÍÙ9ú©æ¬µfU®«äïdÎæ)¸—®=«ºA\““ªZ´gó¢N§B›èç){Ö9¿¬=›—uéíÙ·7‘*eå{{vÇè«íà4ö±xP´[5„âÚþA$?S'Í[µ¸Þ.[µêñ{–¬ZoÒÖ€‹öŠâ˜Œ=ûà nКh´¾VFÛ·)ñÁÉqs O·T´(8K'é¢4]—8.üyMì×â=W÷õK½,MÅÍÔ…“¦¢;¦¥©t+MÞ¶wŸ‡iÍ„88:ce5’‘7f<~¶ÇíÝ ªÎta.Ô -›&—»[ƒäÅùÞAÄ.1ŽQ¦f1™©YÒ¿„ZFý¡~Pjy9U•Zu¬?ˆ#°SŽÍ×_i==½·*–† Pˆì"háö„à (¢oYÅÊâ$ô²#õ³û”ë^äþ€éÒÊAáupU±CmœG”³ž«|*»)ù%¢LìI>oád$üwH›8øKÿº?ô÷"ŸŠTOˆ$c)$ˆìOEê­–íïÙNéh‡Ú[Ù¦ND䟛aAÀÕ¹(Ñ€scn?§vCR —œéÀÇvf³l2 5HÒÀÏ p TçÂÙñ }’3Ç=ì•Øîáå•öôJû{I’ÛÅDÖYJ»ä8I.”\ä0õùë?}ù%¿Æ@¢)Ï—1"ºÞ^ƒ-Þó„m$]–hâf‚´8ºcrÑL—äi'Ì[ š`VO$Ã-ï¢Bðïý[/¼ôìi4±Jª4Ú»‹—rzD¢)Óé 5V™…”Âå,†2¯†OSbÍ(4‘ §[œñ®Ž—ìëEª§öõ¢@Fäü „/~ZzQ¶çÏÒÔjÀд0Ó™7SÉË–*ìßÓ ÒY[ÏÊ.ÜN8!y±R½)ÈûŸ+…i ¯·ù$ωŒŒÏ“Oƒ¼Ü›N·ç -Ã|ç.Ò_ºÜ›ñ:ó©-O[hΠÉóÉmé²2ÈJ%­W8=įĦï'áBFƒá—Ñ ÖÉ“y?kNkŸ‰koßJ]»±/g½íD‡Ò.·@J],ŠÍ*k7îRÝÈÁЋƒ|$/:k‚çÐ#h‰Þ½ …h‘Ú™bGôìüÜMS›•´!gž¾‹ ¥Ù2&”f"õÇ^%kaïYMÜsµÖ Îr°Lš/»ßAbâ™Oûîá+ÌÖEÑÇ[ƒRÈÄ 7*$Ÿ0/æ¬)z9a9å[Îϳt1×ÛàÏÇçZ¾ç ón9Nš °fñ‡V|žëjfÞýÇbU1¥ß$ÉòÄC‰WãJƒ™§ìÔ£¬±FKÞR¡¾yzêI¥ÕtÖ’—-¸‡ e&z5D"'æÞÎÎ=ZÁeò­&'_Q@I>ž|fž6`<÷<·nºCrEIFÕ$îQÓ¿îQûøˆ{|P¸Gý,ßÔÎfhï½M×Ì+;Zþ5͹K…®ö6à ø»(-² ©›~#” Û÷.`ðîÀ†X$h¡¢Ù`¹„w¶–Õ™@ŒÞž=ßûòY™ØÓKx’rÛòÃ#-H;™«<³‘ê(Ž÷ãŒåt<¼—ÃãáÙ€: ,Økö%»ÌtD“Y*:ñh±~ÏÄjìN¬-!³¬øÝ $Å{Þ;qä]bô«ºQÛ¸€ßÑ[»ûÕ€qÓÓJÿú{ `¢I—9vézüy &¶xÏU˜Xš,abJZÐÆ9LÌÜÀ‘y4ãCþÇú;ãËyh¨¹?ÕuÁ_ñ3×âgv¢?/ç,=ÚÍ{+Ì„[wO…n'óY¯Îçιs ,‘¦ýyóâ®=Û@šËikq‚DЙ$Q¦¿"4޼Séýû7S(K£,ã¸sw` æ¼t›Ó‹³Œ5NjH7x.2™Â}êhX74Sß(žª.JßLömûp¸w“'a“‘}<ëû#Éóßèü1/>±ã!CrýmKƾß÷1 ½Ávwaú–O¿ùê«o¾&~°Æxûh1ÜþøÉ׿ýæ+‡üp&8;æfš·7ŸñïŸýÖÜM<*øI–ûo?3?[J}Cä>Š+Y’ûÙwŸýñ«/¾þâÛï¾øT’ º{~ÉXnä%u£wÓ«áøg>g¦?öÄhÓÿ2'„r«ï{Oç¬7fßÑ¥ö•XqòåD˜h\X²a`r4=|8"‰>ïk;í™Xªíñ@Ö ²L…ç¿à”7†Ÿ©ï}ß6>¼…} i:O¼H%íË+­«g¸þüž}%ü £?œæ3®dLJÝÙ†Ç7OH=? „Då(Ë[Â01¡v0˜;³lpKÇè¸Ù_::ÀæÍN8[h3«Õë‰f÷hv˰ϥCèö!ìÜ,V‚]ß*Ç‹ô‚Kàsàû.ÛßúÐæÁßÇo"mVñ› nyéç‡ÙãÛtQÑz|±é2$Ã} ¥¥Ýélfß-G'£—åŽøžé¨œÖÚŽwU3´ÝñÒK2D„O Ö¬ŸRæ;xÍGD‡ËÉ\Þ_î(™·ß¶ë€fMg‘€}ËÛ̳Òl"""¦÷?w‰Ƙ|Y>«b¬®Ó¹ ƒÇõv…¢¸ý¯–ÙÆ/Ë¥4ߤ“<ã7ãhŒ/h½5ú;Kjœè¡§ä½[{ºá·E>À3=1_•Ü^+š½r° ˜%»ã¿Œ‚í[÷0¹¯?Ýñ7€s¥¬ó›,á¬gp‹ï¹«éÞÝ(²†–¶øÚtvW¾Ü£¨©´¥†ÐV‘¨8˜‰ÎŒèçhsàYh,é5HäVÑ .‚=ŽêæÇ‹;H-ÓÙ,ï¼’Òà‘»öûèiŒå¿µÙáYõ°ç!>¥”V½h‰Ûò¼CÚ˜-åPüB 1NЫýs™qj—6<÷r7jqIe0ìya¶=z¤*AGU;ÿ¤»á>ö’#~’EºçÁ¢ÜG›¹ÝcÂ-¨5 vÒ³¦ÌA¦ÉsìD–6òŸØDhåõ[S`;.òûçî­ ·0 9YàáÐÓz¬}¿æPžIº¾«ox·£›I¼5¦™-ÈÅj¸5φAvбÆg!»é>xƒ·|~ÆÙuò‚ÕÙœÎØUùØÒNÅÝáôZ³<¯A©[ØZÆòs{œ,ûv8©ã=ô6J=e™^€7#ó´Qn\àžéóïìôæz~x¦‚: ÐŽ®ŸÝh…eã+ó¥ìCŸif•ùqÞ8óBx§dpÜú1ZÖv»å˜w³"Ý›]‘‡1*Þà ^ãe‰Õ#ñ9æÙABz &¶Š†É̤7ö¤•b“jçæ‡³v¼åùp¼£cÛõ=¡w~Î#¦ü÷44ÏÅ¿çW%–¸pf±é¼“ôË­pxÀÙ};µÔÆ.C]Õ\™xŸžŽ÷Ý»{vù¶8[¤•–ÚÛöbO²Ø6íy¯`Jp¤àGˆçªÂ7ÇÓ`¼£Ïd¶Tš›OŸ«ŸÑ*pÄ„Jµ™xiN BsŒ4ÊhWø›+øk§ñ¢sKj¾+Ö‚âĸ|.µQ¹ë6?/¯®Ìé[ºçZ°4MÍéË Äõh)îࣙí l3ÍSHE¦ !ZÚ‚ˆÆ=Ê­«'sëú7:9hpzðñäàƒ:9h®¤qo„Æ]Pr5:nfÍêmÄàNV –ðk³}€ÃüîõñáVÔ–À¾m#z¹.*`9AlL¯®kâøbÝdùJh»nŽT±PHùº)½œ“Ò qç{Õ(•Gg\æÕøc¿AŒDžûöEa1Jž9‚s7°©9æRi&Á\1–]¤v€—Ï(Y qÚæ­t"؆½7!|NðcÅ °.(1Ÿ›m3åR¶á½ßy˜H˜(Øk¶3K„ÅHlûØ~ÏJM=Jp¸áTެftä>¶ëõéÁú™6’á%§ ¼Áã"uV ›Nbêtƒ§ so¿ Ψ×EU© †, R1˜TiÆþ‚§yðækduwž#^üÞ²ÇöNRÊvekçès{ÆA#Ðq{‚¯ËŽ›‡Å÷O$ÁÓ%H'M-Ñ'Á.ˆÑÁžú6:ãIɈ¦:/R騻‘Jå<¤x7o•õnÞ3ÉF%=\:{%`çp¾ð¸bì—BÖ€Rß”ùÇVˆÖ~)±ŒÅbŠ®·ÁŸWØNþ5qÏl§å°i†(»½ñ4ɪÀÒ5Þðxz’õ”z’䬶)NsçÍ(1ñ9m}Ò‹BVlSeÃ=òìJÚ8*Oç­ª,/ƒ`&¶Y¬ËÊLue˜ç€ýÎ¥9tX‚ÙÍî´Š;PT:ÀÊèjpRºwõè¸.SB^«Ç¶Kô€X¾c<'cdéxÁqŸ•‘ W©ýŒ¡À-t$7–±R ®•„õTžœOR¸Ût&fcò£:{LH,¨gÐâ¬o¥òÊÌ»q¼ˆ& )åè,~Ü~£é¹ƒUú9‡Ïñ"‚‹ºI¸Hy߉“P#~C‚Ø‘Ì,q³ì½üevH<\ØÈŠòˆ_xøGKgÊu½œû™•äñü9ñ£|é$ºG~»©ó>% [j·%¤œ¶ƒS?šDÁÁŸ;=l¨ä”-8dÛò ú8‹î§+#Øö¾¿µÔDlš±ÿO3š_Ò~úpµ2S‹á†eæBËëÂ\—ïyºœ=nhº†âŽÉTÄ—6yR^ì`»Ï—)§¹k>«wLfhå_ê+r)Ü6mÒ L—dÿŽxNðs°sG¾™2ŽTñMÅF€ñË|9tÃmûNŒ³'åC#€¶P‘y÷6@–+3ë…g…,¾shHíÏŸéœÊÔ”ÎÕ²Â;–ºl|-;[…7#Ò$›£<¿úœë¨à:¢Ìh¤f)ZKìC†Ô.NsK^¸Ð² ¨«qˆHƒÈé\@ð$ïÃ)v´ÐþGò/fU8ªÏŽÔñÿ„cA«Á]oƒ?¯ Z¾çºðZ½˜r.-å£ ¯Õ^û©y¯·Œ AÎ…Õ¾‰óÎÓºƒŸß¼ç@±Êží0³LÙ÷:ôþ¯²8¯Y0]ím$£±Aºì(1¥BN'¿õV¶¤}p$Ürž¶M©¥àéµ÷[%DÏ’ÅpäŸøòéž··[à Ë+U«÷ðÏØ{5; Q]ˆ•! UÇ£rœJÏY¢öùöˆ˜ëLt[DF޾^ Ã.•‰ÞHFˆmAŠ¥Þ½|VM‡èä ¬¢KÇ#gC|Ï}ó±Ÿù6Á;Ö4$â ‰ DÉÀ‘íÌ뺼½Ø€Èh‹erÅ»¥¥ó½îÄô,„‹¼¶!3`N^ð€p‰Ø,Ÿlm<ÁÐïVÖÝ ƒL(dÕ½Ù̲6ÙÈÓ!n€žÈFÅbrÀ´íù¿¥2:½~FSúMGQŽXËZú>âT¶xÄùqÈ'H½I“Š”¯Šéc›ña°‰„…'¹µJ”³nï.Ër‰¬õ#&íùt¼u&J÷Næ?1s¿¿±ò½;Á‰ˆæº­#t^þìr 5=å(P]ï¹í!ÑÙ)9»‹È6ÄÎb—<ãnh³É©ú­°ñ4¶“êöîÅ=ÁÀÇá×½]î)l$Ç©ÛÐŒã8¶dlô¯—?ŸúßJœ¡Ì>gG ]ô‰·åm,+‰€oï ÛHŠH»ÉÚÅ+‚™K*ו6~g›Iú-·PžçN(á/ôaÛ0Çè“-Wޤf—‚ïú£…®i—j¾¶mlÝ Æ0¸:ø`LÏžˆšj0ÒÖ.)Ïå$K4:Íâ#°Ù3ìÌ ì÷Ïž#À”÷ Ix͘cíÍÍÚL¤á@˜ùǻǖÞb€Áqlãû;1Þ[Ïìõ¼ò=ïÑó-¦˜ôÜ­ƒØ0L_H|ZŠMÇv¿·å祕\Ê5¸y¸½µç„¾3ÏO”-èμ|Ü+)õƒ}g•–Óg¶ôL–cÅŽ‰zác £Ù†J8ž ù‹dääÜÎnð-gymi¥^Û@5H@ùÞš1ë û#rʰ“à§ÝÍçýŽÖ?]“˜k˜0°€+¤¤_PP s«Yý)ýú·ÿUŸ¶xŒ—é#Ò®>hœŸ–@êoÁ»¸ˆµ´w‹%ýïéáèò–ƒ­pŇNîS]>Õçl=Ú©BÄá®Û«1ÏTÈ»qâ(Jó~ßš›‡±$%f¿—ϘX¾†0Ö[KŸc ‰h%ë™·¨=™Oû(¼°‹¾øËó€ºÇE;gMZê#Þ]è(ßnéÓ¨Ïvß«l;„ìôí0€ÊN_ Ë׳E«¥D$oãåÉëE˜ÏÆuÒ§†ËF¢ ¡°êC ÖI¦³¯–èîW¸Þ^·tÏÕ¸‚^SÒLÀ Š[fbãª2¢4”Cï/Hô™“‰³b>8ŽÌÂ)'Òê+MÿF@³Øühþ €fý8Ðܘ/Qg$”´úWÔy¹ëŒ¥tPÉê_‡w+üÏ{ è^ýëÃù™S5ýñžX§ªÕ¿žìWÿJÞ…ÜõÏÿüªä·§51;ÜÿzuùßÛÿ½>Þ¿ìî.êŸÿ?øöÅ'›ÓëîEö2Y}ö‡o?§?ÌMßõ÷‡Î6ùñS2TNç_›—µK7Ý«W<VÙËt…]äÐýÐVÅÆ6kl›_¯¾2¥¾í(¾Ç|²¿Îò_k¢ñÒ)ø9Õx׺ݹ?þëëóé°ºùÜØ´ëSYýá³/¿üìwüâë/žÑ£Ða÷ßœÞýï”FÁ €úç¯ÚÝ±ß ‘ù(^šEžã³ãæÓÓ-=ùÅÅΤ¢~õÿý<½»àեƪ§ î•ñÆ•ÿ£ü÷¯nïÍxâÜ¿[ë]ýj}:¼Ð«¿$4O©ôþÿ¬ÈòD5t-1—¨#«ðÿ^λ׃r:.§çÊ¥¶œ^®/‹ËÍÖ—¯þ¢¯é_—›­¯´åé_—›­¯Ž©ÌM”k†åÊfzœG/„80§ âŠè…êÔ×H›Å™/H½›/˜û‚Ô»ù‚Űé™Ñ1ŸÜ é¹á©†MÏ ^ŒÞù>âÍøç-˜âÍøç/¨‡MÏ2M¹´úY°{"0/GQUÊ÷dƒò׫Œ?*gÑP1ùÏØ °~‚z¡³ü%åÎç/«•›JÓ(c)ÿÌJÃîºíM¿½ùc!ÓgCÿw­hý)e+Áÿ^Ö*;zœíétDZC¡ä¹Ã’°!Åfôc þYýóêó~·:½¶¾B´ûô³¹@^Õêrßžé0”aš¦¾;ó c˜®þp:¼§±àN+îtÅëúáGu\U„ñf…ÙLnWáÎøå%›ËÆ£¡]Áå1/íΘÜfÖp¡Ê7¾cÁ-o2WœþÊÊ,y´8wÆuq¾¸YêÍ2 cø²ÚÕ¯¾£Ã<ݶǕYLÒ²|YV+Z'.[U'¦²Œ¨ôn•¹MÞûêæ;Û¥¢ý•5åiU j柧VTŒºäúþyõÉyMå0¯1§ë¼¢Àç¤4/².(ºÈ›ÕÁü]g4zü7 gu9ú;§63Ýüíê9˜QU݉Z0¥Ôeþ²1ÏÚä/I5!)_šU©)^愼Еٱ˚^ŠÞý3ýmÏçÓ4©MUqWƒ¦Ã.Ý·K[½uVf 7ûµ´35™.rªŒ&v¦5Q‚f©©,Ó5˜SÅYªIT¦i†ãÞ"ñS=ñxU•¾ÌW¹6AjJuù’\ëòe•gf=ÕeeF&Éh@ŽŽHÜÙ ñQ§¸#׌ˆûôR”Ø<ÍRùšðWÞ,ä(Tà{©«„ÿZ(ž5•-N=ö‘s!tÆuñú^3»ûõË',½%m:O‡k¸œ>¯Be$úú:s/fTçï&ð„¾Ñ䙨ǞŒÇ› cLYsà_®0ÒDyttr„'6ʺóýñõ`@–kÉÓñ{Ú˜Ý퉵“}¹o__[ M·" (£èÿ{âýÌVUQ_°ÖMV5õŠæ+C=is}¿¦Þ¶·69ôŸ²žÛþ@¶ägß|®ØÐ´8­Zý+UÀ .1´4Ñ¡•."#&Í~ý¬Jk¾:C0à®·+ÿç 1Õ£EçîÁQáÂm+Txˆßú°†uß¹›ÖBQÁÛq†!þCùãqY`™ŒS×ùðžÏþ¢ÃðL޶XçCl­¡¤z±zŸ{ Nã‘ ‰`\å£q/Ó]F»É€G§âh¯‚}¼é ÄÒíER÷3gvr°Î‘1.©qq:[M¥* lå‰Ëý à"Oˆ+xpÁ–27SMen"öL-éD^|9¬4¦¥Ñ$”t›^‘“µLÔñØô̳p“ƒM//é- 6½îÝ£›^ÎÚ@²éI-ƒMO6µ¼N§‰kóUÙM­¨F¹üf¢£ÌÄ0t*ÞÔè«eá¸Qî<ËCÕýhÕÇš# å,-Ò0º9hÒWaã‡þôpA°VÈql3üûA6WA™­E:µ1‡L#ÂJkÔ]{æÝµÈ „öë‡C{~ŽX&fÈ¿Mæ{ÿ´C¾¼ U…<ܤ¦º„ýp1·_1†!/‰wÓ_8µÅ†@[ØE’sÇ·¼Í %¦@¨S2å¢]÷–0`¼Iv%âÑ¢‰@ÖoðÀ`xùZ?Ŷ}/±t/³¼}n¼«î/ý¦‹·Ô˜yÑÊMìI’XlÓýžôÅíÝé|¯ù-Rìí[îÓ<©v‡ÎØ›—q"o¥'ã«Rú7НJcõ1¾êƒŠ¯JÿeKÌVö4ÙÜÀ²%ÛeÙù.¾Áÿ»îž2‘ØŸ×;`K2ã´Ó§èzlàDoh+:… ­ùLÍ=j¸’Q_#ñêëˆf±)Ê6h¼[ã««¦HÙ/3Ö*Ùx”žÀÌkt™ðÚ*”ˆGcô£ ò.±ÉjæH¦ä>ªí‡öàw]À«Ã]—S"vÝ=%6"¶y¼÷Ø€ë´1UX]¨ÚxjRáØëlj³‚d^§<¡-’'MP$Í2ú-å¼Ë4“Êå]R6ky4[MtŒ ¥Uèß*]V3¹™ºiòÀ¿­Ç¹™9—y5?×6‘Ÿû6 ÕOéhµK&ˆ»¸ræ²¢”C~§›ÓVüèì"†âíë[Æ_ØLË\ã’BÚ® s4rµàè¦I˜>ˆ®¤ÌìµCÏ;~.y³ÎºÕÖ‹ÍZÒoöö¾XÓÕr—çÁP7H›:tL†.KH“ô›?|÷Å7_ý§¯ž5µé8g¡üg:±EÞóô­ÙVìÛHCKHåòsö‹Í”¿‹*M ªTÌ×Þ׿ù#[†/Ì6¬iSÞ²ó…J^Jæ­NÁœF)%IÑa6¶3ØöàfzŸfK ¼ð|n=iÀˆo1Í ¢ñØ×öeHk–9ñDÉ‹$£!Ê妫ö9—^É;EN˜Æv F”'ϳ¼3¡Ýzƒ¼/;¥)Èõ§1ûQoÑ£šz¤F„kôó²M•©À?íéM“AgMÒˆŽ"‡štÌá`º/隇÷‚·¤ äò_»ñI1<<¹4ÓVn¨d/²»·kÑøaií¿mú†:.Í7bE7 ½Ä°‹ëv‹.ô•»úÒ=OØ×óGöõB«ˆž@;z‚áÆ®³&b#ŠÞä·ng7æN3µµgES-ºT`r–|nîj°áÚ»FÛ{Vj¿é*lð«¬J–vx•ÕI9Úáñc°ÃgM-w:R$•5y3³•_®ÜÊI/ÀoåRáôVž'EþÈVž“,ô`+ѾÛʩģ[yÎÚγ[yž§3lMy•gWŸŽ¶r[fi 뀨ϣ}̯ï’”1UwÉŠwI»ÛmUð…ïXpà~ï2†{½F¢¡IÚŸØâýø6Ά۸쵻ÛC¹6P$pD¦ýq÷ëg¥Y(-<òþæ/Ïr=Fü‹q{`LƒÿšœRc…ȉHo ~ę˲Þ=¬qXFà.é˜o&aã}¬1Á§Zr»c?Üô/ÍŽ‹ú‹h?¢:P7íú|ºPq«ntwèDGC:“—´Ѷç…‰ÒŠ‰„Åœò @ ¨|l‘%+™à|b7¢ V\ÁWø‚7BQkél71Á‘ž@ó¡Êž, LÙÖHƳÏ6hŒ¶fר6j ¹—Õ½J1ßûÜBHÞ³°^ÊÐpvRt0±Ü§ÔvÖ¸ÅÎÊA™¡¶¹òR*DhÌÅ8K:‰³dôo„³dÀZ>â,Î’=Ž³Ð¤s$ï¡»XŒà‰㥬Œûõ>G<sÔñ¶Áë°-ó¡3=mf÷Œ¬ŠŸÖqx¶„çä}Ù—×Ñãòb¨“,2žðnÄÛš¦Û¼T/’±E“†!__µ´¢¢›6-­|x9¹ºî¢ኖW·ºîcÚÚÒLET/vœ%ÁSYbš²WBÚZZø:—DEËdxÊ}ŒQP$H~Œ»ÑÇ| U໾;®šR¹ÞǼ3à²ŘÄîŽ0ä.8®ê*ÏÕ;®ºd*µî^¤Æ¬¿ºå è -^Õ‹´xt½uª«hñâ{~ºßY,Óâq3Ñaj1 (ƒàmQ)Û™â-ŸàÇ[¥YY,BÊ(0Ï¿‰øðŒÏ„Õ€Œ(­É9Πôlª¦®¥áa8Q¡Ç//…`¹g3ù4ò ÷𠫪15¤âMÉ×3oF Î‹ª*ŸöÖ86įÙXÀ»á2¯f_É&dÇ{£˜Äÿø;‘2áŽ1›$™zom;ˆBdú>Gy'x->R¸7VöÚã{](‡Èq&I¥À¼…mÐ!-Ç6T?Ýy>}À 5Áûáå+ûÖ‚ÚÚ¬R‘딎YˆóØ1pÚí Ñ‚f·[{3IØÏK‚r¶ú6 í³“Dü(ó£ˆÐ wª@0[ Û¸t9â‡:DaÍñG!ÃŒR^Ç!~žÿ*‡ ïŠhQ>¤e·püÍtº8Æ Å‹¬‹p±.Ó²•a}î(ªhöá,ôXâ!§ëmðç5<ä‹÷Â@rà 1 ÉŸHÿÄAÀ:@6öÂ*ûÀv±ÎîB¯>ˆ¢7 û¼œ^g«Fìµµ1éŽ9ÝÍš²:m÷HÆ mÌR”MÐÕÉx¹ë­üÙ$êo£[ft7¥;ü,Ï…0´»¹=qÌÚŠiòC @Ø'¯‘E»ÇrCC!º(Œ‹ý=£V‘Çrä“-Ê~"r:æÊÎhí_W™((7sÇ ”jÑEäF()Ò(Õ´‹H¶â¬‡håRTSMKê´N­…¯æjîFþ!•ŸôuÚÞ?ä†ÃIcùkJå}?¬~ ÂøÄ1’aQºÈæ,Vc)'ÏÅž¡ä¤"{¦ª)ã+›NX©ël¥I{>8LLÍ·Ž$NÜžº£ÃÄHÚ…0Mäµè4ˆûI³Qpbü`*3å à­ÄÞg ð² ^:«ðòf¤ó…n¤¯‹¿À·¡‘´•½vËFR´‰ì­'©îúBKŸI¾ÖZÅy7?ÁVRSLÛ‘GÊQ0@g¿éŽÙüccI'Œ¥Ý0ë+åšÆ"C‘­Ä4¶±­”f#[)-ò4°•Þ\i(‘õ’(ºùzC‰Óªj2Íì¦Y­ÂMslšÛpÓ,(†%ŒGJˆÝ½ôkG8¼SÚ€Ý/ÓT¡ð솙¦\[°c楜—ó[¦-Ðâonào¶ifË›&úVv͵ß5%‘,Ü6×~ÏTý`ÓÜp$Ó”ó¿˜øñ¥¿Q–Õ^â–.f!Ö“,ÎBŽüçUa=öžÕÄ=OØ;ëGÂz’ñæYËæùn×£'wÏoûÿêè ÜìœYZÎDôd‹Ð* Äk´ÔÚyýGÔdv Ñîu‘¢*Pa2’èÅFm…!›d:ìDåiˆ„½l#Q—¤å`u°]TÑb‘&—?kJ=V&ØQäÖ}»§s÷R"÷ àŒlf™žHÙÂÏc!kÔëA†!¹`â_7h1¤“¶JÆÛ«k{Ó½ƒW{:ß»÷¬Ð³ÊAöJyqÛv¨ûNÙ´:«ïlì>™;´Ç݃Y·ÀL£&‚Èœjá]¼ƒxÌ÷ßsÀ&¿ä—{^ÿ‰±L„cnhœéôé`áµ²¨á5ºÞ^¯-Þó„/°Y†×¸™˜Ÿ·™Á×<šÀטyÈf”0’¤› „­HS½ô!®P þãÊ×*2c ïµ÷DøZc¦_‘f¥àku-mf¬±c™K! ¬»ßŸ7Ç×~+òŠ`Ÿøsç˜^:´W5”? öjcºH5NÙ«Ðý) @uñ9ˆôÈáÌ5[dgI‚Øl»ÆóžÒÛ+èß:)Ÿ|„N>(褸2M§XNÓ)\šÎ•ëNæ–ìêUçp¹?pv÷Ëe=$®œÓs>¿ùR2Â?®-¢åàV°Éçëݹ˜pŽggaßÉ,s¤ð±’‘‹I`Î ÷‚Ë1õºùFsè°z#8dã†Diзõ’ñ#Ò¸$ñ£Õ"eþûÞF‚ ±ÎŠ;ìÃ$F%:Pf„JÄϲ OZŠ*ÙåÞôÕ†´ñ}çnG™•ViÃ,P„NÃŒ8{çFÅ%l"$bV•ùšrZEXÑ–51º8éúÏŒ(ùþE¹E1¼¿2;HNoÚ^†…EƒM+ÕÂŒÅeÿWT°yÙT…©<ynX˜°ÆáÝ_êGf,áÑíê…6›Å«ÏO7ú™æðšÃ*ع,èføÿ…ÄÖ7¿z¦‰®’wM'BÔÏ÷ž¤£uc܈ Ù+(cˆ‹ý ºÒéª6{C8 ôßÐUM¡ñóZ»ýzŸ?9 K7\3 éâ€rí4  šŽ”YWø(âÜn‰étóéþ ~Ñ<-•ÍŠÓER¢RŠcóßÅΊZÉy¨38U¾J3? ìÊDª²£ÞM4êô߯,AÂÀ £ŽË«é‚“£¾tÃ5£ž-ºâÚý4Îü¨¿|ùRÖ:|Z…^‰>¤^Ühøú\ÑÉ'ö·¨‰[®yæ|q¦Iýþ¡s‚6tøNÎ =û÷l^Q$ýÍÿüŸÄ7Äç/Ï”Œwáû׌æqõ#ÉÀÁˆXuA5QtfDœ áÄ-׌HñȈ ~?"Y•*üøð]ˆàvŸÿ|ƒÉšá9™¥í|ˆUi& ÕÆ —fE¤ie¹6ÂßäÖîk5¡Õö¶´®µ½Í~v:MªxÜéþð´®ÓÅqÇõÕLÑéqoQO÷ryܹ~?î%ûj4î_žÚ «AÇp'ó¡ÊðÛuRo´n$ÿ&És…–Þßü‰Åï-G}b‡‘,@~vœ³k«pœÂKhP”Äaãù#Ì÷”i£(£'…i.Eì˜{mYÅ»<Õdÿ6Ÿå‹[>]··ã¢Óo åæn¹æUËoŒëç7¦Ì«ü ̼ˆ7eü MD#Km®Û'ÀŸW<ôâ-×Wtú}-ÞrÕûZöŨVÅïKœ1òÆä}ýû¼Äô ùAÉC×y±¸Pàú\Ñ野où …^ö—¤à¡S^•)øó,øß¯Û3AcÖvXiä€êº¨¼ŠJ™pÛ¾…•pWÎ_ÏÅë/ïëýùtìÿ‹a|eâ‰\…ÑEAd)Ñ(¸Ü<Ÿ1ˆzuV˜e©‘ØG5™Â~Êš•°°SÖý -¬déíÑu1#&ŠN¾=.7wËUo/[çøí‘¡3?eç—˜”eC‡Kýs:Õ·K¼Æ@ê8IS¡5+SnúýÍg?tç÷.o“ãØ‰:S†lÁׂø=¦I“™÷È$…fÃxû¬1{IªiŠœ‹/δé^œý;!Æ‹rÉ¢ëö-àÏ+^Üâ-W½¸eç‘û~v¹qd² Ic_Ô)^óò^–òÿsæñ¤§wYVŠÆ?´?t:2“†õ7¯§õ[¦ú<Þ÷ÊG³ö¾E;Æu¼5àyciѨVHÇÞ›ªðŽÒŠ-∡á ËÊR^˜r›‡ÏòE‹¯Ï~aî5qËU/lÙ·•‚Vضèò+çóËäy ùàÊÐZ0røú\ÑéqY¼åªqYö=¥ÀÈ)GF΢ӯӯœÓOA3¥wúS&[™ö–ZÜþ&¥!ÊìqX™ØÝt$•‹hìé6òÓb™Œ¯¯fŠN}|ËOÙ»—½Hi ˜“Õœù›þ¸àSŒüpÙ3‚v£wô/3†½#[ †š@Í\:òþ†±C]êB†ZñPÓlaš5"` „… —ÌZ˜t]o­D‚•Ô"ƒÐ9[|a¸Îß͸èô s·LÕ~Õ [ö€¥à…ÕôÂÔÀïO«:v„ðƒù’Bΰ„FbsK't”ÕòÂŽ7!ôÑxÓ2Y)bÕºCtbG0•JÆg˜ŠË¶ÉK7aíß ¨˜Í¢jjƒ?¯xs‹·\u˜²ìÂrŸƒ ›.¬Ÿ°æ_¼©Ñâeôž™“܇‚]µ© nù kúÈ927<¶OXa1ÌWîhÆ6Uê`GCÓ"K*Ú΀U¹ÒX¥´_™Öñ6†^ ÇVý¯fíi2ëêºÑŽnù)£>2Úu¼™ò3Û˜Œù L寛.ñpŽ7m>XPÄd]I2™1Ú*ƒ~[4ÚÝÉ2 Î[ËeûŒãëTñÒ s.¼:‚·eip›0†ÈZÂ×çŠN¿µÅ[®zkË®'Õ/ ÙäÒ•1^B?Ø¥4ö “×çŠN?v|ËO™¬ËŽ›4WtzÐã[~Ê /;_Ò@0èÅ™Ë(öBD…ˆdüßAŒ þ;2 Š('©ƒJPDmU!2{‚È-!ˆUYj€d”›a–”™)ŽÑÞŠ™Y™Íä¾óÉ«UóÜq ž$¨¼¶œ³ïr-bâr¡ònA™a%2âÈ&o½|VX"¯²B6[ug¥3:V̰)èSéÚìÈfØzÉ„s±J³ˆúgCDc”.`‘í;ϵ ”p žmF¤_ý ,‹{A×kIä<8aDBk9c‚ä$CRÊóçì†úĦ‚V |ßv’NhƒÍcáóµéOÌ]çüÞ%òœY§£ü`o¢@»â¸û¯’½0´›ÎZúaßÒ7´ñÏð»šyzW@¿*¡}d\Vþ¦þÎ`ûèKZ“>—lG ºpŒ¡`Œcwˆà$¥ìÿQò|ŒoD;æ--6 o¼)% FÛa<¤¬+Á’ØNˆˆ¢ØÀ-É2ì3XÅŒ{j0 ‰|9à˜W})Ke¥àç¥àîT«1YFÈ•ÉÖ8@ÛG(°, º=xgé2" ˜ýHFÅ\|ÅdzIÿFÁÔ%ª?SPÁÔå?¶æAtŽ}•è¹c”¬éxhFö`pø4¯{P$˺E²ð‰§ÏÖ£ô s‡šÊÞ¨ËÂ%op³qî†j,™p˜ºNd¤K³{9Ÿº‘>Ë µ˜º±ÒZç>uCjP§H^†N“±v€ôÈ1O¢&R7bœWÉŒ´@ÕäÊ3\é±[¡Ìâæ±Ž,XØ Ï=Gæ?mÆêšõ©}z¬K¶w–ìvÂ’U.H?°dË,P˳–ìv,}g¥p€Æ" g‹\Þ¸Ü,ŽógŽÊiøÜÌXÚ¨¶ôãZö”C{Ïv0í[Ù{¼§y'µïgôóâ~†â‰ô;;®1²—ÓmÇYCt²Nævp¸Nt>ÝËÝKÛSIï&®9ã§SÃÕ;ß:»ÛÎÊ8섹7” µVµ'ÙÚºd›Úº•cJo/˜y 8×<þ`ù2v¾º4׿ÌqXaeˆtcøP³¸ºîî%ȶ݂4||´#sþç5:íÕ¤ wz\–e2!Là ›S‹ i7TC ÚŸ©!EtÂô&ž–™¿ê.{Kð\Æ„ IÈÍjÌèäþH‘²Cì”Çz½"¿(â•1{¯LÓiñJp Î‰Vb oñÜôÝ µÈÌ3Yz‚IDŸ¥ºe/dJóàc‡HS®% Ó‚¨bµ;Ñr)JÉšB=áLÝ9L{ž;Ê®Çájœ± ‹)Пy »À25àŸ"_Úmï@jX4Š1ƒ­ Êf{Ý áTI©f)ÀÍß0pý`À`oƒ¼QKOOÂÇ`@(;=ß,`` ´ø[}À}ÂsÐŽnÍ1d _™OL ¾q„ËÉço©%'åWReÕ¤³ŒŸ­¡^ÏêCYÛÌúV>#c„m"2BCÒ2ó@V—dÝYº^ú4?;Ð"ÂZ„,zJD>³Á^¯üÊo÷­îàI@kQ³Ý®è ϼ:}:®½Æ„Ïþ¬ 1Uñ^]»Òu~¿¦Lx½L£ëmðç5Iü‹÷<ÅÔËYüÜNDSlneñÃÌ)c$-Ô´øí]ûãQh2‹išÌb‘Mc…Sv1W½Q#&ªðŽˆ‰*/møIqqË1¡`µóËU˜0Ëu™±×õ̘¯ÚüwåkÄUÔh¦xûÚfý',£&}Ç AHªù ŒI¼›\ç ÿq¡u:Ÿ÷ÏER‘Ðòòjè²½œ¥“´ŠÞ£ñä³±s9b ('A.ò.«ÈUèúr}P WõÉþÆúBÒ_3aÊ€1`'Œç‡ã‘qˆ ”_Å)ÿ^˜…u6ýö:uƒ|Qz4C;+°Õ‰›Û"~ÿìa¡Ûm¨L­… "ºyß‚Ö|f pgv$“P lrÒð¸øˆZŽÒ^‹ÙÃìãèÙ$ß9Z§@ðCUˆ=NÊGnÔv1cBÅbË]üT©µ_<'9³$ôCó¨k.ÜÞü;]27<ãôò:~Q[NcðÎ;·C)&ÔþF¨Ò)dÞ!f EÙˆ Z3¦ƒº ˆúÏÁ!6ý2%ØûÕ’uÄÑBøcÈ×\J2¯lõ¸àt’¹½a¢æÇÃÒG¸¸öW‚º†+!HUiêÆeª(ö¶§¸l1p%p1 ¯P:©‹ÁÖ…KÛ.“å´í2q9Øå»u&m;ºå'Œë#)@\¿Øt4°Wq&@ßW9ÒTûSXˆ4AZÁebërIgºdkÒ6;Ï–ó·óÌ%cçÙuùÛÑ-êé/ {$;Ï® OH Ž V.™ºpé‘Dß¶ôи>Wtú¡M95{Ë5ý}wi@Ÿ0™3 ' Hh826½uUÜý(g sÓÐ&©#¬ÚÝf imoóçYH…lÚy²LÐ`®»´óä:‚”›»åš1„ ë÷içň%$ X-¸tÝPR0;ÿƒ—N4#é»E–ÎFÍõ0Í]—6Ù/ktÄÐ-@žd.å%‚7–7ËGµSîy•/§ËW.!^“.¿tË5/ëVt9bu˜ZŠz°½›l>j±l‹óõ¹¢3IÓÑ-?a)|„ë÷]=ÊÆS¥_Ê’†£”í¾Ê ®~°*x’ÚÚmqÐåJqŸ ^ö}úA¶RÛXk\_Íëø–Ÿ0Öð1pý!Ãp5˜‚n&ó‡|f:ÙÍ_ÿéË/%&{' ¤D]¬ËB0 Jì׬OÂÔ’£ìÐ&–çu¼ÝѲ*Tiä¨× Ì$oT¸®âu–¸5ÁþM©ÏÉò¦‰ëL/0.:“®¸}v|Ë5¯ì^®?äu ƒd¸&4z°kÑö¡ëz‘H×çŠÎ<ôÒ-WÙý)p‘Âþ§ç’­Ð$I`+ÔÈ®­ ±YšÖ¥VîÆ”¸våF7Ïšf°‘Ѳ>4•^œl¸¾š):=îñ-?a}xŒ˜&DxJ~á[$kŒS ãY†4¾MY4Uºg&UgÒ6½¼Èƒ,CZ#Ò¤,ÝA×Ã,C]¦.iËþMyÚÙrZ(®sæÝ¸èLnyæÒBÇ·\õÚÒGr˳jHé`^Û(Ë0͇™Þ¹%KÓ4YÌ2Äõ¹¢Ó½xËUý7¬ÙÏÏ2Ô å§Yê±´ÃY†SÞ«…ÇY†Y“Žá™¬T Ì2$37Í$> ™õóÓ5×nKsS–z],æ’„FüyMfýÒ-W½·G¨Ðç*ûÄÊOúAÙÄùeÒO¾>Wt&q>ºå§,® p¡ÀÏÉ1LhDê`WC>‘¨‹r ©ëJÃÔ•Ò>U~ÀŠlª|¡—SåÃçDÑ™Tùè–Ÿ2ÚÐÅ`++ç¶²(Ç0v.¾EZX’Pò-Ðñ©C&O±eÓœ,ŠT¥å€?Ø<÷e&P¾îþTWå¹G·ü”Oúb‚2ˇÄm5Èsχyî¹Ïs׋Æ9]·l<ã¢3yîÚç¹ëŸbœ?–ÞÏ l<õµŸtˆivjZ¥¦…úÃ/zh•ÆDu÷¤•1¡ä÷]WUÀ£œñ§²Ç øïø|AŠøW‡âÄ”,ÁJfcˆóQøÉÐSŽ7QsA›P‚Æø”8e¹3èsáM¡NtrI¡‘r„è6ª”‚ISá†"î|²™FÖÞŸo¾7ÏË )Ú¼ï̆á%NÙ³¯îؾ&ÍõUл-«2Q²”eu¾ï×ý±ìIÌ T`¶áQ£„±©Ó¸Ó½>ҵت8œPÎÄv~jÇEÎN»~ 1@ãjô^†Üè OËáC.вE£óRè“pu>ÞH‚9bRB'OÇÍËg”ÓsóŠCšŒ ºaM$j(êŹ=îÀWÏÜO â^OVWVgd3ó$1§%´ŒûÎÓ›G¥?`öq!ÅÝp{Oú*V~‹á| ùpBøÝø)uwÙšw„grߎðÛ³ cÖ(޾ºìO‡ Ç™·È.»<¹8ÞF8ð-θ}ë6¢N¥pþ ×€Abæw’—æ>ê;Ž™¤ùt1ö¸èn#Y5Éí±òÚjÓ¬•÷ÃÇúö ¹°7ê,+¥®I=:_˘"¶>`ã%3›mÐßlH1ZÂç1·lØ{®)ææ¶»=ßË3}Œý½h¡õÛhñ!<÷´=üHÚ¢kÝ»nýpoO¶øm{ÛIL¥¯"›á;«Jé]ùÈùl‘FKÀ4{|xÒýpz]Ü44{õ¥·öÍŒJÓñ¸(fC&\Þ‹ðR—7nî‘;Õµ„ü_ 4~0ò-Ç6ßÞõ›¼7C‹•ÓvNfçÅo?ý櫯¾ùšbÁ(Í­¼2{˜ÙƒþðÝïÿøÙ'¿¥c$\ò%Î!&‚É›O>ÿü‹¯¿øîÿ!Ê¨Ï ŽìË/¾þÓ¿s÷?±Ž]ðú{¥Ë¦EoWÀÁ@^$LžDƒTOªA'Iw9®œ•zÉŸ|{³oϤF`®Å“a,…9ñܺÉJ®Kúîž{“.Y¡Æà‰1–ºÛhËþý¿}ùͧ"WôÒô;Þ\ `æ(×­ù.Ê£›¾ö#F6¿|da¯i‘w=znºoð¼fäº-ÍwŒ_5ÑxÃ& ªFÜœáá¸\œ -v`»¤æŽ„1@Ÿø9òÊWc>´¼º„lZEþüÀëpßx?çPª½ ·žHƦÚÃdìFgª mÕlp25‚$}ÚgáCŠ·eÚWÈYŸ{¬’›ñ*ˇ#œ­kõÞG†! S×M ¾Å‚Sg5‘hV05PKÛ± ‚ÀûkÒ¦÷ôi¦Û¦PjÏÊð”Ìi%©Óqæt5TJiõ(¨´F`éÇ Ò*¨´þÏœNŸœ9>-s:8XYÈšÖdMUï|­›(Zž20¥t£‚`ù Ó¥ÔhDÆÆ‡Ê'šÄlBÍf…Êè71~'EN‘|‰¯Šo;w†¸Ú”„|Å}ÃãútR®B{çúx/5Úœí”r†q÷d¨A«Ó÷¤ÏªS q!™h[×([[“ »Î =2¬+gÐGªËhd«ã;lü¾ FPcNÚå5ª ÆXò/"¼í(a#w€óæÃ$N‡Cðcz0ÈW {ôŽ“Ùälï{ .\ÊXà?æo–(¬óxÊíT(JúÜ&QKëÞ2;(cköÊ4bgðt¿—­S…pI%ІO2«±’d{Hò#}–ÒH•sÍÄÙl$1b,Ò‚÷o¹œP‡Îß“4Æ0E¦SãèeÚ”FøéP&çxô™¤S u­(šçÀ&‘}™åŽiÇúá>~ÝÁR¡¦µG¬[ÉîŽñœž_ohJÀWò5aÈ¡ìäý·•Ñ´RÔ,DU6]ÔJÞ_{cí*~ÄHc“¶¸KmïB¿uws2OÖ%kžQðLNÃÎ*çŒ;Ä×Â"n)'ï rª_ÉÖbpD@Àù»Û w§lN«AMÞÄxÂhU&>¯’*M¦Pì^ì\Êžíx¾ ™Ü#@7Œ¡J¡*FVRp+ál‹D˜žHÈÉð¶66ÚŠ&ͬÑ&»e+KMšYYIÚyud;°²[Yx~ŒOÁÎ×çUàè$¶¯Œ©­Plh_­–í+·[fIl_¶ Ú…Ó‚ðåð‘zièßi€‘|ÄG>(|¤yá³µ„1\6…2mfLjk í“^–9HUI½›Ô[æÒ‰ Å:WCä‚©mVZ„'£ë‘Q ›Z Œj8Œ<ýSp46ªNð½mé2ˬ)½µ£Õµ†ôØŽV#;ºÌ²‘½ª`è/XÑjÑŒ^]mF«I;ÚØ®éµf´šµ£f4x’ÆftÄÝiC=AG‚Ÿg6²t@B²§co?/й|d3 ÞŠ¦¼¹båˆMŸdB+gC‡&´ÎÈZÊóòÙ(@~Ò„VË÷,™ÐÞ~~$í“[ÐÆ)6Öó7¸¨"^›/gÑA[·íÑ|Žtp}{Ãòº(«ÅÇ¥ëmðç5»xÏÕCœB?J"  ò‰E?Ë""ƒ¸ ²ÿ¼…ßÚ[9r·@“DaµРžÎÒ°Þ‹áÞ»kQiÃ>ÚÃù̇ŠfÙ€Áfv>¤¿VÓ7Á_ Â4|ÐRÅÍf%bF¢Îq/Òñxדˆ"f.*4bvî°5]õɳb‰Û·‡-[v÷#Ç—œµ3EüÁÈᵾЫ™Ê§ý¨ ù-éÇk솞¥³aaû ÔÁÜQKß'ã¿ãAq/ŃÊeytuãºþÀÚ“¼\ß¶ ÊøÁ¸s¯qLÑEj@ h±ÇÛ®=:à1°šÌÆûŸ0´?ŽˆÑF3È'ßðÁÂoúÃæ (¯ÍÐ~Ù(!óÀ.½µ¼{ë°¢ËÀH9ƒrÂt°‚¹$æ–ãÂB/ ¤ÄõQÕû Jœÿ~!`ÖØ8>š‘é}Èpl˜#;±™Ôtç‚íœ%铨vCPVl$¦EÉyeþ® ¶)H6åð ä4@˜Bv¼]Á¡uˆŸü–˜M R£²óæÅBZ årÚZÎQ‚ñkÅ öãÚ»×ÙáuÚÁ˜ fjíQ6r¤ièâb9k„UJtÞ]0%iƒ€5˜Èœ s–à„ù£0‚З@núÊA×c¡z¸'.Õý †ÛÁÚ¤‰O5&ÈÎ†ÈØá"¾XÇÞMÏNPwÞ¶`ÈÛŸnO$å- „eÞ£ÿá¤{aU1[÷œðp+Ÿó=§³ù¾Žf°kaf.‚…él\øsg1!ŠIÆRµ¸RÝ:OòbNò2ç“&³PH°}·;Ôr¾w,Ô{uÁÛ`Æ¢¥¢MÔŒ¢vîoíyGa‹Ýñô°ƒ t²ë¸ DLÈ Áœ~iR ]ëoÄŠ}DÖ\P³| |ýýú¥~Y«h*ʦ™ÚrZù›ZøëDm rmI)f‚·lw̘8(½Úrä/¨ë²VKLеKÝâ?¯aR\¼ç þÇr@ºN>W耤#dEHNR1ÎQ°i?§‚ý2= RäEÅ–1¹ÆÓPáA…6ö,JxOãsÞãÙÕx¦‰¯°È…ÅA\#¸;àû5Sc\õ!ÆH¿kù#Æø!aŒurE V•ZŒq‚ #wPQŽÙ³Í8érèKóÌS‘FÐÅÓ×Ù½÷rǻФGµ÷§¹Œl!®ÅZw`7ûâ äAW…¢‚!.÷‰©}m·Ø¡†Ž™µ(¯¤û—¸øž¼­¼¾ÿ™Û¬Ó ãlºTÁ‚N$ÌŸÀ³ÿ7íyÃöÛã±G{ra˜å®yL-½üNqq,„* >wg쉡Ã׺8 oÐå± †¿ó&£À¹QC€/ýøì–Mló5c=Þ‹çІQh:ë—T­ñò¢°ømÀ埇ÕfµÄíÅÍìÆ¡=T\ùâ_µï¼þÝb¬Èn'˜a8›¿ÁBm‚ع=¤w“Ó8­wœÞ€„1¯‹B"*%’#T;‚DÀT\ùô÷Ÿ}úóq‘”Ç`å5‚Æ%IÅÇ#KB°n]âè›#ÛY"©ÆÐ¥¿ç„‰~ë"Và3wð¹žöÖ§§Øó„}  0Ñ5™½ôz66JW©Äip&Ó…X5¢½ÏV]l™¶æñN¤Q¥‘Ô¸º‚*¯Ù£²\+iì[Ó†ùḂ´;26–7lgÚl$]§C=iUòh ÇðÀÜw Rˆ#ÌÕ#!n¸¨›Ï¡>د—€mF¸zÌ­úóé(ÓŒÍ4É›%¸×[üù¸¹ÃW3÷<ÁÜYŽÏfbs'“ع“jRRŽ÷ú"iëI3:%WCk‡Ã¥Æxk™U1ÞYAÀ[ƒ"ÒÎo­Ìâ­·¦Ìv·VMÀ­ˆÓR p+ëAO†Ufi¥àÖÕ#p«Á­¨pnuWÔ5p«y“¬¶}¢Ÿ=ÜJc8ÀoFˆ+yjïú[Îk X:¿ÊNDíVøCÅ ŸNúiàñˆUµªkݰÖÝÖÊùxŒ°r.lÍÁË„·þÂPk7µV©µ¶¨µNëj­]gÖ ˆóï µæ Îs? ¨¨5Oȱ¨5×8õ]€Zó‡Ôšg8ÏøûC­y^7g¨µh²j-Uø3¡Ö:+?¨•ú"PkCœˆ? j¥þPk‘äҵ:o~i¨uþ‚Pk‘"t µÒ…%¨7¡Ö"Mô"ÔŠ­ý»È? ¨Uèq¨5Š$¬“I”(õåÓ@ú>¢|ʧÿÁ2-½—¹LûæX"ˆ)£ &³Ÿ|eö¬îphÝéáÂ(D(p±BàËÂ)B.Y ]s†`ïXï¸Ú¥Î‰`âF´iÛzÔ"˜&,§ ØÒ>iMkìÀ$€ öSN„Ž2 E^º»õîÜ1pg>€ÝƒYÌãtÊñ¼!ÇÐ8¼V$“Ûµä!üÖ^Š ÿO„AüÖ˜‚l¥:‹M%õ26•8Eüy6…‚3÷<áCJÁ¦Ðµ w(›8‰C(`š4ññÅ–$‡Ô&ű€…=‰›ùP@>$[ŸàK´õf¦QÀД#Âõ¡$gîeN²­¢ì…[Õ®”¿…¯¿± n©Ê2º¥ªµkEÉU³G®}ÞtŠû)‡}5Ÿ¼ý–‘M×~hÏIh%7+ó@TŒz\Öi(K¶ShÖ\—eÀø¯Åô2•Zû'ݨá2@b“TæUüºg'?žûYîJ†á’Ïýù„6¨säÅØC:8b#IÍ«om)ŽlJhp8³·ú†–…NÅA„;ÏC…c#Y0ëИÞC¬³ÚF¡¯¿¦ÿƉ˜ÌëØ4M¡Â’fG)lQ™1’UÍÞ%y™^ýX<úêxTÄa5V^ ¿óZØ…”©LYÅÃdMìÄ"mïî$õ$ÒYtÆ$¬t'´KÞ¹ì>õ·¼nº¥6ĶwØ™¡/6I‰ŽŒßÆv×’D3Ã9™›ÈÝd¨cóþØÞƒ^éÐ[j¼ÛH\‚.õ²Âc©Zc©¯Tx´÷¨‰{®³Ÿ–éw¥…0 ññ”6ƒÂÜsÏìNÛžï))dG–φófY¿.þ IÙ –çÜ•!šÔ(<|xƒ3¿#ºBœ(Õ<ô Ì€UK²¿pG°`<´÷,bO‚¹ÏݬsÜm‡ð% ÇÜÚ ÏîAÎ%HÞ]Nø{›óE2‚ ´ò ¸³y–Rïq1{‚V¤þ•Ô:v IåwLÞÌòóü¢¾ž¹Þzc‘+b„‘ÔÍiõ*4Òf/'ùÖ„~Óó<È/_gæŒ0܆t½8W舴*¡ìÆ#5L²æ4]i¥%DÀš_à ª<*@ %äÂnñýÍ3ݤiP¶!P’k³D2½L;J3åvÜN-,&ÜJ¬‚vTØŽ+‹vêˆñÄM:´Ôdõ¨¥¦È‚–P"nÊO3˜”©¯£jÒDXMXØ‚˜p£‡ãËR‡¥6Ç©â&õ8Õù¨Ç©.ƒs‰¹±ñeÑ×f›’©‰GJ)abÐNŠ0VÛx®gIù² CziÐŽ¸@ûr=¿í MKð—[ Fdu‹hÅŒ¨ð˜¶;ˆ!çËÆƒ¹0áõ¦¿ØsË-û—KçÛÊÅj™õ dâ7៲jÝ{Æ@˜BŸÈÂ74Î4)ÖY"¨Ç<ã,L´ Ô€€tÛöáp?ö‡]Ћ˹‹ð°˜ád ”?=ªQsúÞû)Û¼!ØŸüá‹çÂÒol[Fç¦.~`ºE ºêƎغ=º@å}ÀFÍA¤ÅÿÞõîAûÂSû?Ü.HÜØ¸A`ÜoþðÝ̸]79®¸ûO_ýæ³?~ñõïþÓžlèL¾÷‘B;ëûs+8_¿h1mœèø™&Ъq›¥å«,;DÅ "M_>@w/¹~s3bzÈÜ«7.¬8^aÀíѾå,‡$U{a)ŠQèϯ9ÔÍ‚“/V¾Ct§ »C½96ˆdp€Z©T|ÿ}PÖ“'ÈüâûV†®H%iFTXÚ)Xd£ÈÏ pðààÓä.ì‚ìmÈôi7Í­í­Ò€E«‡ï‰S[±ösÌzÕÃy`çðœF=¹£ «Þ åí–ˆÚ4Ϋ‹%Z·w-`µžN~˜D%H` ¸àm$5´òŽßP.v ¿mÃ5MæõQ%*^ÔìÒ–M)§ Ú/â´q  ›–®tSŒKÿ›)ÎxqÑð! ÈW ?a#kn;öÐÕI¼òç!®»c”i«üš" v•Ûùe­ãÕì…ˆG`[¢¥í­…)in,>mZ[Êuï²úÌz{º0ë½YÀ.:nŠeè¸)tÜWBÇö5qÏGRÚ¸c:zÄŸ£ˆÊÉX}wú-IÄÐÞšçy:ŽGéñIš÷CH¢€®¿ÕØñùÓ{5äË n‚ÙJ†j^•V ÿ•{†M"cLß~î õˆÎµ+\Õ^—yP{X×~äÚUÞໜ«}…ëƒÚÍMN¸˜j«@íRï ¶ßlýjX?®{oÒÌ×OEâ±éúãÆÖÏFÛìèàú¨~]ÕAýa<:ëÓííÉQ‘–õÒáúpˆŠ´!¬‚›pV2ž"Ãñ«O0jÊ|‚êÕÆ6+ŒGÎF±7rÅY^+ç-”œ]YENªÍ}²­Vy“†ÕòÖ9d3m"³NMgÇxUFÿFxUÌê#^õAáUÙœo5íÈÇ|g½hE^4ý'Ñ\ö÷楙©C]k… Ž µ‰îuR–Kt ½Ü\ΑêÞ® «¢\ÛëövDÙbE£[‹&ÞJ¬îV\w¾Yí|³”BlÉT>j¢iÇ‘UÚ(›|ÐÆªJ׆Âõ¹6lIjCjâ6”[Ù¨ªi†mԢъçÀõ`pKÕÑ$Ù°ŽF×¾s] †Ñ­Kt¿FÈM\N w.5p‰¹G¥²²¬˜ÿ§¤:òukk !­G=Õ:õ]U\b¶!)Ë ÙêÐzíׯŒ1˹ˆ¯DÎh~g9ýÈô4æ4¼sƒñ¢fOˆÎNkÃâ*ðælâžOôyqzaíêŽ:×®;rƒ÷VsEW üoÀÙ[ÒÓÆ<Œ™3:£pewÌ·rfB$âÛ*€S|Û‘o“î\ž‡ŒZbùxkÉ7Œ-ŸmÄüʱašåH#NL­_fzºCô#ŸÓ¨=Üô/é „]³ÏQ ‡Föàƒö™ÎI%NÎ¥I^ö/Ÿ•™W#zz4vÖî!—6*ðÕ÷ÜKaØÅÂ|î¨;IæaôÉLê¾'aÅAe÷Žc=Ò„Å.à'‡û§Éçg(— Ñsr bsä\úä6·Ñ#ˆ '_À}ï<»7Î1ù4“Ï|»öÂÉßæëƒVVcž0¾qÙ·Ìgiß½=‹3Hø Ð÷.ˆWP>5¬7¬U)9xx?¬ZÉzKoœ?ò&ÍÖÂçÔa<ÄÅæŒp‰Cbþ³ ñm ddú÷kÈM:cÚ:ŠCħÏ]ÊŽ–dõqZÝ—ÃÒúæÈ{uRÎŽx„ë•…¸ü¡<Ä5X"XjìM”÷&•1Ö‚Ýq Pœl« TðG©@§õ÷´Ô‘© }Ð72C=M¥Ãü¢CA0—û¨ÕÌó +ib¾äh‚/î9K§¿ÈH³†ú$ïl{ãçE˜Í±G9Ígëcü!x„ 㩺ȭî‘ãnS«˜9°.9ªåÒ!nÁ­Â cÜG„ª„qR(ª =yÉ_l1|–øÕ®g;u³mûîõv.;ÖØ‚òl++7ja1’­ÇN»®J×ÛàÏkÂUïy‚›½˜J­¤™ÈÍΦÜlRï­"©]ZXé œV]SeDõ¡À¹™=ì‹ Û“*ã¥þHˆ´ç}*+—ixð…‹£êðÕñýÁ™_V"z²F…‹£ËFäûÃ3?•q¨ìL/éâ¨Îª)ƒ^òýñ™_V×S•‘¤‹£J›$ì(ßù©¬i’ÑI~žùåIâO:í}Á™_ž4Ũ&ü8<ó˵öç›ö¾ðÌ/Oé€$:ó£Ÿ,xx4ÓjêÌ/§”VwŒÃ•ÌžùåY^Ï›ò¬ÔA(1wæçËÒ9Ô6qæ—çE2j'/‹ ”˜;×òeÑ×6yæ—E1j©¨‚cP.ñÈ™_N‚òÃjÊ*8 ¥óg~¾,:̵MŸùåU9:Í«*8å³cãÊ¢)®mâÌÏXÀÍðÌ/¯ëð‘ê²™?óóeÑÊNžù’3>ó+²¢^>óC‰ Èû—<ó+rÄùÿÏü °BÎüâ,Âl2–*§#l*>õ›ú °©ü‰zÑ9¯züœwµxΫ®8ç½æ˜W±$Áè”w5wÊKåS³´¬6>é̓íðñƒ^5{Ò»*€/Môª¥ƒÞÕ#½êʃީs^U%ùcǼ«©c^õ¤cÞÉS^uÕ1ïŠ% í)¯zÊ)ïjú”W=õ˜wE‚À3§¼:A8ÄÄ)ïjâ”W]Ì»pÊë·­‹2:æ]=~Ì«†Ç¼¨äÑc^…cÞ°¬ÝóV³Ç¼TZMóš=^²4?æUó>rÊ«¦yW:ƒ•öè1¯Z:ç yuÞ,+'˜ëdŠ¢×øŸ\pîž'øŸù²r7ùŸùd ©.ê8[Ò¾U ½ª3y%y¹lJ†³dÊ¥@ƒš«“ ö›­ÒDl{(™q‹ì–`ÓÓnU¨“Øê¨¡2¨Žï·h™+Î ë`ÊQ¬qi•(_#ßï=Pêe6É*½ÌX7®3³‘¬¨“ïÿáÇݽí%;"3½Ìˉ^æuØË|ÇJÝ,&ãX¥›tqTiaãXQi1Œc¥ž²x¢¦~ +CfmiãXIOî³>-R`™ä(®©ªšaM*­š°[|_èÓ¦Í(Ž•~ |ÚÇN-E#66•€®E…œuj3s9K¬%ýfƒSMŠKL::úز)t¦Èê¦Ñ޲R;Ú§V®„škÇ–åvôt kFýM¬ÔRjYÑRšÍ……"5XÊrK\›mIf7ž(yÜNf£W+)1pžã#7t7ÏÇÝÍ˰»y¾Ô][–»›GQ¬~–£©¢HGM68MÃ@Ö¨)[–›*¢@Vù02eQF¦´ ç•”˜SÊ•åvPvÒyÎêtšÌØÈ‚LÑlˆd–$X™—ðí‚÷̲†â=÷¡÷Üù~hå)Vnñž«ï¹sÞ³e‰] ¬…CspèN{$ßÚA„g äŽõ:ô§•ÄЮr¯ÿPch󢩟C‹&chéÊ/C›WˆUýàbhÍfZ}à1´,Qú÷¡-»Ÿò® ]ä·Ú"-šŸCK•\C‹¯Ž¡–¶ÎU‘•Ùß9†¶È÷ËÄÐÆ›ù$ÊHy8ÅeD®ÎG”ñÃB‹ìŒÍâ©›ÅU›hÏ÷–ÿ¿lßÛÄM5>ͽ"qÓ®6q•ÛI‡:7;4ò7ƒ$Iò°\þ&IûüM’i&]_…ª†ù›T•Ëߤª¢üMS›šÍߤê8sPåo*Wá0“z(ù—Ó]åo¢N—¿‰:ù~ñ5Ð˹äMÔ˜–͸ƴ΃^òý¦—®NNÓœíå0‡uºNÔÉ÷› Å›AG9s¦£ÃtNTjìÍ £|¿w‘ÐÓ¢Îæ{ZÔÙ¸Ò"Ô¦—û S±-ë…Ž–õDG«$ì(ßï,t´j°n:èG5Ä$4›f¶2¾ì„õƒ{?uS©QeæÇÀ¡Ùˆ²•ñ}ô°Hà,ÊH Ÿä ©$<”·ô†pÅ¥ç>%35v¸T¶šÂJºLq­ï‡ ´sQ¥Ä¤ï—¦•V¾l–êaR¦ u§ZÒØ—m€Š9ÿÔ•˜iÇ'pR;j”é¾f´”ÕjøD™—1²%f[ʬ7‹–²È›•oíä€ãvòªtO¤¸Äl;®,FŽk³HŒûòÑRQ–£– ¡jã'*˜ qð’ý·ŽjÊjÜá².ƒ)+½š‹7F5¼E+{ÀU D\…ýŽQC]'£ê¦j¨ëdaÔ\Y¼®m Ÿ ©¦ÎGÏÛ4Mð¼(16ÿ]S5YR7Ãg:É}¹Ä\}Yê±ÔæPþê3‡cMRÜU­Š»8R(±šÜÆ»"é' ’ÛöîŽOø9 ñä5hODrßIæ"e†FÞ†Áº66ŒÒ ¤|öK¨É›‰ˆ‡™ì†š “ȵaDå žTàüÙçÜM¥"[â¹õˆ:AlîÎ¨Í jE¡ª~‘ê ×!ŒR;e?qB]BõL x¾cíŇäÃÿìF²¨ûl÷íkAî,s™«l½†|¬×`õ=‘Cõ‰qy×a|2»ï»I¢¨ÈwßE¾{]q•ÓÖ´ÌÚ.rÊëBz!Ö´»Å* Ð>ôG³ò‡Î‡éôá)«ÎsÍeåu»Z^ñàû½Îó¨ ´œWϨ {,8> ¶±ƒ?ñ™mc—~ËrJ !Ž|ú­=CÏ9Î= Xvª)[R}tÎÿy•êãÒ=OðøÊÅØ]i&”A¢[¦‚wsæz]åjèôùIÁ1iÕP>ˆ´âDÀb)éß)…|„A>(¤|b"à\ðv=ƒ#ø)Õ9Ï¿|7Rm¤›Cg¦É(’˜í1py k|‹”HCózš‰ª¢ÁaU6ƒªRœaÈjãl¿éÚ Žf®UP›MDÇøfë' >Îì;©T]öΦ¢>¾™½ªMq6àtïèÚ°6›*ˆgå›­ÍÞqfàt}tÍlQ}6m½ã›õ %·oúyqqØE›ÈuÊýÎÀSKßt7qqT©†Ôž­”ï·w4ÕÕ|Géâ¨Î4KƒŽòýÎàŽfiìéç¦~ +#F)e•3rŸó¸‡ µVF?*ãÍÙ÷Œï <}]TCOŸ~RCOÿ}œÖIS °E¼ý”`T8éí£(«Ð7æ ÊF|ãÔ•˜òe cÅRY‰¨ÌÓqmoŸ•:µS5UÐQ”˜mÇ•¥èv©-ðìŽSâ–\RD*%Ô|K®,ZâÚÞ>ð§¦ÑÃvÒ$)ƒvPbâ,íø²h‡k ð ßæ‡-i<—ùGÈÞ*M“dTMª‹ Sb6»UdI1ª"K?[¸Ä´·ò¤Ô Ò<̓N ÄÜÛñei¾ImcoM:u¶H› ³(±àí£–I{\faK½ÔcW=æÚ&¼ýTæÿ„·¯“ÀÛÏÒa(—yû~ÿÞD.ÿÛ‰œo£Ç.?LéTÒƒáûƒÖºø.ÉÑSÏxý*rûW ÁöÄØ»ýö“õ&µd£Åþ§$ñ›¿Æ>ëvÚíÏ‹ØíÏŠòin?Ý0íö£ª_ÄíÏJ$á|nV•C·ÿ ÜþfÒí/ð9w˜K7í}@ºÍIñ6 :È) î;½¦î°8ߟú³Ó[À†Þ½3s͘f&Dz¢Ïc=þ¸>“®tÖŽò´¢_€¯²…Êâ-˜Z­0‹`S ãÍ/`˜*Ÿ `P/¦ <ÿë *ûK)’üÿ¾FÆñ “ ÃEÁ)íõ£ôµ’S ÷<À¨– n&0ªi£ÈËiã•;¶Î‘Q2/À¡¼('Á‹ŠþÀ‹ ÆGðâƒ/ª¿2xñÊ…,x–·Às,À:ȉ %ñ²œƒÁ¥‘€F3Ä€&XíHäžzrß1ªiÚìnùÕyØÎfq€)¯ßí9a@ùÑ[oõƺ֪»ÉÍfy4=¹¿yø—g 0øáÙàÏ3fµ;w/B´aÝ1-å…s(¨OÃÖ»?3³! U|ûúôŽš­ôÙÕÛVyˆ|”h.ÿ4„ã[Ná-®ƒ"îe–‡‹iÓéˆ*«çGH=ä%„*<\BO׊ üºß8%1Ï3O„oŒ'ÉÍO Ìž˜‘¤:½ôØÍT†‰Ñ޵2¡ˆùÂ8ì¡Në‡{RNþýÉ’r½t')Pý udöùI¹Ùh™ÉN¯åëÅôꇊ¤–*2/2 Ên×4tX,œ†‰z•AP/>6–DÒ©J›Æ:jLݼç~‘è6ÐPµŠü¨¦w÷¬‘š—Y#ÆxÐæYI*zº@k¶àœ,ØYê Î’éýmÿ_øH-Sf÷®EK£‘Ü#‰6+$Ï^öxÊ \œžd-÷²›™…†”7nl±È’êéáÖm²èŠÚÓƒ ¥HL”X¿¾7Û…´Z#œØ ÓÕ)…䳬}æ:ß¶™úeJ¤xƂɫ B}5Üõ–þäêÿJ²tC Í’üMëÓ¡cîaèƒÆˆ4°ó óÝüR˜¯©Rͧ–Ì¿tßpõ愲ˆÅUÀ/Êþ‚Àoñ„¿/ð[dpaFÀoLUM‚š”2P@M(º5?,P³þÇNL«Ÿš˜V_˜FüÓNÉ㑼´iAZš«p3›FL&•S´È"¡¦.+ )j©‹Wð¨8CMÍèGPÍÃ$5ªÙ%©™šU˜áæÕ;¨æ([-ªZ¡êQÂZ‰AKÓÂékA€‘„ç¾f®MtÝ%¯…£â“×8•­ô^8î«aÛTýÃT¶‚ä !'¶•m§ªaNÛ@}õÓÚÐ—ÖÆIn& ëP „ùmãP£74à 9á­ªçäG0Fa¶ÛÔ Þ0F.áÓßê¡Â‰E£ðaîFiszx} Ø ­‘ç&':‰Ë¦lÖ;3àÛ[N]›ï-]õÖe¿qb]PÅѪ$.KI“ ÎÕ›F‰pœc×xôíÝÛ3hYX³¹zkfl×n˜Õz›äY²‹Ï™Ÿcc®%çÚê #ìýs³W¸õ^!ÖÑãáÔnͲ=ŸnÑz–ˆ–H' a|°þÅñÜS“¿ëï¿l_#ÄÌŠÊœ0žfÔU]J=±Uþ›?½üru³¿¿¿»üúW¿Úõ÷‡öõËžj|¹=ÿê‚fäž­ŒaÁ[¡º6ü;ªzõ«×çÿ¾Æ4Zc¶ý…f›þ?¨'¼JÌÿÇ5ÛBÙ &±éû·ßFÅKšó/4ÌÁwî©Ì'SC¡1<=Uð™¡RDµöïÑýÄÁ ª›­úç Ö°Å#17XR<,ycçe „^+SD¡H»’â¿ØXùêf«þ™cekU¾…ja¬|3VX;û Ý]°UAJÆÐ †Ø_!-k8'GŒEX°¢fO·ÆÖ^ÃÝ& † ö·À,äPÝ!ÜióȰgqð»‡×qL.2Và rH;ÎÈ·ê™>'ŸF‰ŒDò›LÎ iðbÉ#¥C1ªÌ"5„p{ÿ¥Ölسßt²îôs{¶cñb>æ2îå ~ŠÊÆ?0 ÁåFÂÖÒsD;ž ¸Å‚ºàxìg3o»ÈÝÙ°àXÔžãË/>ýìëo?£è†&áÆûõËûw÷â¶œ¹oMS3ª„û>¥ûʺàßå¶ÏÿˆÛlJ bÝ/6ÔL0]¹;|`ðÅ×ß~÷ ô·uÝ4QmÒ '"¾9={2–2AÁ±_Ó‹@cN÷È~ì3 ½8»–­æAFKd|ÎÖ½ê7à{8—nôìÒ±Ò½8¸yš-:¸¸Þ^“¹ߣ®G%­ûROx¹jØE­˜Eë‡*OLV䛜ÉiþÓ_.€©äßHvŠ§Ë P§;¶xd³ÞØOôß|ûÅ¿ãUxáhXe–œRb,DòÜ;ÇïB¾°J6MÌðÝïÿøÙ'¿åùifSÑîø—8&ø›^`¥— þÀ =’Û›¯þð½Ð ½•C•Þ&Íl¥ó/.í–ä-(éì­ˆ·\ÎMGÙÙÎà^ô¨â cʼ ŽÑväã0Åéö®çaëo;–ÿËkRýZ¢°ÌGG™'×Ì#µ|ÏUó(]žGÜ@0R™GŸÓóaèéaÏDw‚¥ÖÏ):ŸÊ‡sªòsв„Ž/ÌÜxA£ûžû\MÇ›ÁëǧEëÎýéá‰/´´÷nºíjE78Hdpp…d/~­89—¹åSWÜ[5N=á¸f[¹tÃÛëÐÌþô›¯¾ÐÒìâhÒJÆbýâËÏkÞHd-4·ýáŸ}K¨a–è×ìÁéoþWÊ›üV–ê"Órðú¿ú»Ô¡‘ßS_ŸÃôœ²Û‚>é¢ÈøîWQw®þÒTkwö¿ßý/F]IÂS3OuÜšǺ¸<×¢ÀÅAw’´VáïÁèèœmäuçËÿõÕ'A‡èyÿuÛÚÿ 3Æ8 Ýùë%‰&«×•ƒCÞó î-ÇËÄçúX&7œ‹t8Ýù³_†Óyç¶sÇ% ¸}û Îìºd ­÷—ûîÖN4B‰lJ+zQ¦4fX=° Ñù!PÒuût¬¢ÄÛ®ÙÊL˜]ÆÁ¡µ,gÆ:´ëð¤®rO.afSœ±ÐL¹6àО¹Ò¯Æ`úxæú!¹6É•g®V°Ûᘕڬy˜Ù‡ûþï“¢?¶ë%]‰è®^>+3ÚŒ¼Ð{+õŒm›Òbž»òfݪëÏf°¯5/tnÉ(=Ã:ÜAæ˜ ™$9c¡,|:è¶wÀ*Íì•Ú.AÈÂö‹;â>àFÚ“/ÿ=µ›èäX>}¾°ç³ÿ2õÚûíU»ßªhG°·õ>ÈÆÜK t´/ªÙ\¯vÔ…•]˃˜¡Ë$;;£„Ðc{ÛEÑhƒ%™gýy¬qÕ  î—eôNœÁÈÙ¬Ð:N°kÙÅq#~‚=?¥”Su”à "÷¢ê?¹¼å#4»Ìïì2oÜî£ùP;¸5˜PôÈI®yÍgD׊@´.-D\oƒ?¯ˆæ‚3÷\e!f‹¢t*°3±¿j×Ïnoö”f ;ñGó_fìq°ò_4»SQç6üÇJÚÛœV>( Žg/|›]Ú; øÄy7,u±ó5ä-–Æ#Íêц¿w)®‘}éfiUùçd¤¯›„Ï/té¼{´ðàS‰t´÷ãpÂMàå¯àM÷Ùï>û#‹{|.ÆôùþlVï ªÃp–°e¬âáž=6â£Øø-r!q‰s¢æx&Û‚Þ”d–Ç"¤'nQZ-ٌ僙è÷÷Æ.tùT¦Iï:¤Z ³U*QÑ+÷Ï$!7YÊjíæÏ2ÇÙÙûopÊßIh#;¨¼z~ÿ= ïn^ü֌߷_ü¯ÏLàõø'€8›;G%Êœq‰âžÕ³yG0C[‡™å{ÎKS-°îSg,}*5¥lSÿÓ¶ÒY7£çc9l›í=®c² Áw¯^ŽìáèˆB«ŸW¼Ú¤æ^-M%[£ƒ/ÿSN]··ñβZð¿í»£Ð0Ëæ$€ßéyÐÇÎa'°×v ‘LÍð q‰à»!nQ‹#{>¢kÜç…OÁ88‰ Å*z·Óá]x?ujÆSóÍXˆ†âLéŒW”Y©kŸJ\Ë~¸Ú4ÃéÆÚ4´èá1¸¹0ÁÐà¶ô؃‰ô'ø‚=ú¤Ì6t±¡¹ÛIª­¦Ã™:·»‰ÁHŒg—»jN_ܳÛ'ÐMZ ÿñáòìÈ-á?g™zèÚ£ÅZMÿŽà²{ûÆŒN/E'ÖbùpÏ{¿›³°êna±1]à 4A,Žqèî92Šv ¯6¬‚õoJF^÷´2nݸ£…1IhτڸG6|xqr§ä†Š‰iÖ!3c0±*DZƒø­·ôïâEš§èÅòOØñRæËFD^½÷âsªîÇcˆ…5öV¹—˜m”PÛOî½êÖÌ‚¯§5Ó`7cÇ&ƯŸä•\À£ƒEšÓ$‚2ð$eb¶oèÂ3†ÛðK0W•§\®•§åØ’ï-€G÷þÛ³aæ’æp-dô@qðÈ|ÞV×öÓbï!`8éKV¸È(ó_ÇÍõã€rD¦åÕìl‚Ï6Œmüþ¦{i¼:BÔÑ£Q1 ÍçDQTÜ©«Õ†ŽêeCOR©,Éò¹À!*°BÖþ]ÿ­H:*>6@t‡/ø€°™ ›²×í+=V˜ÍÑ Ílä”»ÞÊŸÍlÜÔ/üøèÞÂóÛîЛ©øœ’…ª§œwÝŽBõ2}Ö”™ZsÝŽÿÙ¤£I€î-Qµ¸îXª–’L®ÏÅB>³ÁLÖ&Qtj.:X¥Û3›Ü÷¦]ÚIÉ”µ U]øÝ†áYÆÎnÏôeox1c1Ê^$YQ,|HÒãHøîâØ¶¡+!3;…Þs6Î{.Ì´íÃ6娎øà9<a?ñbyÂâíѹêoãå§§{Ö‘5ôŒ"_ i{¨S Œ/6ïìcäeDô®Uè¡t3JÏ Ï¦{'gÍ ñY[Ú†7pó";·»îÅíØnÇ~ävˆÁýÛ·nÇjÆíàÞíØÞ a‰,¾Ç}ŽŽ}Ž…žüOßDìs¼%k¼sÇ~ÆáÈàXV!ë>ò4ÜcýÏ‚1Ó>Hý“s¬R5\ q<\ ¶7cM;vûv<øxÓûœ”a§ ¦qìxìã±p<:ö;ŒU.ö%ûùÓ~¥Á¡âwм„ú[·‰‹ð¤Kâq"s¥%[½‘÷×ü›÷ìÚ Â@sðÇ}gc?ÍC³;9HÍÜÉ‘øNLgËxào×|f·6Áý=€’Ñyy¸µüH~]n´LøÿoïÛŸÛ¶’5Ç_¡º»µ¡¶$†xƒžÚ­UüNìÄe93;5žÝ‚H„D‘‚Œ­èÞýÛ÷ô×}H+·2U©[¹‹ÀyôéÇ×_×VŽàÍxœ›C§¶Ü å˜l0Ñ%fê§ý1Sú=w.‰½›{¼÷—û£^t¹tîG>£ËUs†—?ÿœS$Z¢ÇÑØT|!«ÄQª _k „?«Ó\èNHâÖ¤?NÉ0ÁJ¯ÈP:ˆH=e­•ëžÌÕÌžÕ]œ„dyG¯|MbàÒË_i¡á^+£T J9­6Å)øZ÷Q#¨Îñ±Içf7ª¯˜l×k1x%žš BÚT'¯ÿ`}*¹ãG\` m#w´ð™[ïÔ¼C æIÔ‰B“òtžˆˆ’d¼„ç‘EÅ®Ÿ(ÊŽäfOú151 ‘QÃz{·åã©ùG¢ÓÍàc –HäóÈ¿4_2;0z"Ž4‰-öõÕzµ–ë™ëÛ qšJbHmñVµ¥Õî}:KŒ{RCˆ$q6“Ê;ßnnï¾Åcnó;'·Ö‹Ã`Ì©U‚HxR‹ÉYÑjqRÇ©zßÿ©¾ÝܤÃM¹á»£0rîæ 2=¡t¾©qWÙzô’¤#'‰KøÖhÂZt²›™µ‡ÔuJÁ¡vWqZÕTr\ÔX=±Ù¦ùvF>A`Ó‰|‚šûÈçï+òéQ€‚)vI‰7ëÙÛ·žÿ*`µÖj98ß¹BíÏ&P’&}p}Ayp¹Zx6XÏrA1Ó3¨×ù”,€fµí¼¶PEÚJí“®é{ÒòySŸ‰Çf®ÉD5ˆËVÈrûä _é5Šu\£.¤óOÉtùY#¼£GmXþªþx®F 1pë_ƒS¼Bþ(òÉÆÀ?$KW6–yƒÒÅy»þZŸ ¬e{VÍ–Pˆæó­Oã$’:'/S¦®ï©—¤8pøß)eõ©í™ÄJ8ÀÙ¬-å,;=¤ê<É‚=(ˆ/õÍ„›´7ŸIV&ð¼µKõܔ멹^ö‰s"Vª¾½âœ µ*døÐcåzðÉvæO;N°Ëm»öŸ†¿…dç\Õ$;ù¢/õ¾dË?Xl÷|â]5!:Øó¥Ýóbn›=/q«f Ýé ¥)qÝ‘â}T(aÄ^ïÍ Œ¾ðKéC½}Û]FÈ:kîWõ;i2"ÝúVu†ù˵ýÌnŠ]ÕWÕTÙ˜K:âò“½TS'[Í’Û˜LãĉÃäðO¶Œ¼bJØE‘}Ý­²g§x};%kŠ¤Æ¨–·7ØÁ7p]<·öˇASžÓü•›oçv‚ôÍÇÊîG»Äï¶ÕbÊNX£ÂþùÃ’ílytöËæ†ƒyP´«†aaÔA¥õ*ãXܽÖEá«>Úœ$0V‹U)¹Ã Ö,‹QÀ›úBdkƒ;›Q*@pL%»¡Ñ&)üùóý¯*Fª0îwˆâ^pòí2©¯'Ö¼¨~©(Týªy°;i²–5^—…Ç´þù/JûhõÇ hVÈ ïù[cç?ýB&“ùÜÂ~bÙ:i`è³`¹Xlæ«­:‰¦X®€ráƒ|ÎF4 ©Oh¸É9çX>NLX½–Ø13IØ'/ä’ ’¬öÝd|ؾ™®ÏD™nÓ-Åï!“IÓ˜;:†^–˜p×K$±ø³æê`—DQL!öÔDr1ÂNÇáì^k%žÖmæ­yœšl~®ÒufáhŒ®Ý-fˆÎ‚Ø ØÜÕn ß]k}÷bž730°Äs¤Ý`£ c 6vÜsE’8(ZõWá#ÈIhf¦†I¥®‹–T­˜*M5]`k¿FêèÉÂ'‹tœëQ€jïg=Y#–A܈g·ôÜ¥Åi9çÓÕ-ñ&±*0_Õì!ã’£’T:õË%8:¨µ¼ÐŒ"aCÍI•î”»-åƒD½Í>g¢]ü;I#Ú{3W1“Àdó))ËßœÿQÿÁŒæälv¶à¿”ü—oÔ­èÐ|´ˆâQþ®Qì#9]ÑÜaŠ˜·ì 0® ª‹çÀDý%7 ¥xpÂØs²!\½ŽteN)( _ e½¶˜=Ù#fãh5[l%3xáKeíßI•` ìüÕŒâŒ&ÿ—oØ­ÀÐM#‰¯GItüYâ 7)IJã) Y [s—³  ÿ:΂ƒ?œ¿+gApØY¥Œf¯{®NÌ騑£¢>Ež_qþtµ\*]¥˜ž?½Ÿ°V$ÛPí@Šçmºñ@x÷åX˜ „ˆ x´ÙÚ­÷\ÇTí©eD˜²DN’YÓa©!ôQéJRð¡ß§ùzjLpt)ƒ¶vâS èsm/‹jyc(퀲£Õzw§é»{ª§`Æ åœåBC„»Á*'Þ— ‘cVþ‚ÔÔв¸øb½VöÄÔ ¿¨úá¨ãU†6n4]œ£v©gjÎø›™KÕ5µZÜJMÆQè,B¡®¶É”ïKL&"0)$÷N¥ÂWó¦ëÕÑÛ)ÇÃÙ¢,¼gß‹˜«5ò¶íd¡›,–¢aœî’¢ï Ç/Zi¶ÂL¯ò-|‹^ zsI$³—onݤ)")™†ÌÉ4 Î_ÿW:ÇùBÈiµÖÔƾ̳E²kTæf«î¢­ÍÈg6“@“+vðþ‡‰#¶ –êm¤ûz6Crª§y™ÆP>‰®u`ž }s6”¿Õ´ó¹ °–Õ,öˆžëjq{Xj%‚p±‹ á*ÌüUÃ[ ÷|çJH5#äVbød( ž„pì¬È-é¥:{ÒÓƒZúlîxR!\Dy½¢‹«œï+ô÷Áñ=5^w„5fI¦îº…†[ÝV›M1‚í8ÕŒ”SÛ­Ï“ýëSæÐy‚IÓD¥»+¥™³¿ È¥HX55X+o@Æ“ÉÔË&Âyµ®”‚òH¼›ðÃ9Ü^h‘b‚9[±ËkKÏ߬\¸7¸_WEi±$êÌjæ5fU07ãQÖ‹¹tÞ(_ƒ¹Q ½½÷ÄÜøý˜~!J/bÌ/˜› ¦!û›eæ&:8‰u¬ÇÓçt‰ß‚†„k®ž¿4«Ã«X´\gŒÁüß©Èj–InÓd±äS:è[/(¿‘³y¥\÷å­’J¦<ÝúLàÿmR ª¶™&Ë©Ö)ãñ¦!ŸÑF 1Ö÷TxF y…FIÍ’­dHz1~É¥ZØ›ù-«H9˜ƒÝ‚:ßæ¯ò“JÎ È‘Ñç1Ï¢R³¡Ùo™jÈáÑ}É[0뽓ë5rc1…\+†Þ‘l®šU†Y¨õ‘t‚7¿²Q?·r=^¥¡ÚjD!HG„70ø©*XéR€^Byh]Uf;£^£?á îB o\ò˜7_oÖ]›%ÆœÏ|¦Œ´U¥ ¼ìÏygÐ3?ñº+çÏOè,g »þ?!±«991ëÆŽú´1êU󳚫›‘R€ÈuÞ*HL­•)Þ<¡Ñ¯„F¦ù_\?cáÖ1Љގ^x²Ü‚ô„sM>‹ºÃ22³4•VZ¢gª»Aè5Ö!ô·r Ç¢Ð'ñüzÉΨJN,Ëí9à%DJfRÏóΪÀzøAỸgAc`HÒ@Mµ%u"yÈu²‚øl,dà*©yè5yN˜ê”Õe2|2Ú´â++Þ‡²ÎQÇ~|øÖéÌ£Nf[²)MnÖ˜¼jéΛîÐJ…Bû*’ªãó³>°™ë–‚y¼#És:)ýtaI…Ëi­­­Ý;ïV¹MÁ•­\>(ÁOÚ(Ÿ9ÃÂéxˆê©O¡O^×U¹” ÐáiJzW“ÂÏm.F3‰f†Úõ… ð#«x«âOœf¢Z0R ó%"7ë‘ê)÷0ç{Q¤c~Xט»©+ ž ÇÉÏÃLjE^oeÌNª 4 É.ÔDM—õBCr r!¤hcpÄg¡Å[\Í6ð–:Kè E0yv<.$oëÖõB "ÖLˆÑ·X‡‚µ€"Sz¦gš7›fÎ=#6‡’VL°¬Ó•’Ý>ÓàÞócøXÓ…!m)3æ ƒõx^˧8Ã8s Ü:Ö`©(ÔÍiÈ. 1è9³Xkbx<ŸñˆxõJÞ{Ë9¨ìqÓyíl¦h€æ¸\hW³{”½ûˆ 9ÝÄoo]"Šs–^CF¹PMÈ«3Î?'Ø÷ÆDÌqK'‡~öLÅ&é¯ vÖÏŒËÀžCNVUù«Œó;g‚|ggiDNc=äóÚ=ì‰/'ò®¬§½lìŽs0¯Ê9èh‹ådµ]ç¥N)Ÿ{–ž¨vËêr«@ô쟲JB¡¥×Xg¬DéS‡ô6™Z»¡©2Àsç¹hBSµËª±:hq€#B½ù‹jºLªüü­²Ô’«¡@¯–Ý0@¸8Ñ0@„PÀa€ßU ú«ijÍ~RO·œ)ŒPŒ ©Â‘—·ö¸24:œÃª·B•)ÕL_ þ"…ô&\š–òÌaC`o v½.½72E[ÛB^ÿÜ çŽÓï‘Ä¡ki ù3>ØäKk²…»E^iˆ!½„`Ác¯’(Ø¢½ Å‚ì× ó{§(®ÆðÌÉrÇ…û'íî9ãkÎï_keÙ ޼eå>6R ‰”æ# ¤ ÿ×~hé~(›ëYgû—.ýÌ\¸:béš;Nºwì[º¯7Åí°ÀÝ*K†ø{#ºùÄâ ­,»5yóQO_ÓvNd»´”*°©‹ÅLi·d¡¿¨ÖµÖ'™“ƒ‰,Ôž "ÀÍ3>_É”¨na¡p„É"ËoÞàŒ™k6"rê~üøùþßHÝf[Ä|L)˵2)|nÌÎÓ(=?C¬äy8‘»ÚuÎ¥F‡Z»”² jd>w'xÌÏ÷øuMÛ’ÅäÄò•¼-Øþ$eÕ€‚ÃTå!°» ‡i¾”‰Ïàͽ€±-¤×®Ž'ó¾ôÚó÷ ÒjñÞâµÒB&,¥A>ñ0{Ïž÷óK.ÄšhþüòýÅ»WOÅXóGL‹«mÉ‘Rª8% Ñj…¹Xݧóbrù :8Óù.Úe¾ª¦6 sçñ iÇqSeé!p·Å!¡^Âkß•NmRh9'íŒþ‹£ÞúÝ@ªéqPlJOvïéU$ƒ^ER:Ž@Û™R•HõQð)óÇèûî¡l*!–"iÌᩞf{͸€…-Ù‡¡µÑ§–”Þ:ÊÅÓ[hÝ‹ÒDíçü«žñWÑ›êÚ>±S¥­ù#Ó¾µ!â[mü¶± b7p1¨#thŽm4ˆzÆ)*µ8Ö8±ßõqñoš/Šhµçe1%†Á–ö¥hºKÁ ˆþ-k¼«zDÄ*2<•šáÞk£—Äá8p&ÐÍ?Üß.ØÕZh›ëZº9Y_‹j)Á&‡éºãóâ‘ç~ùüÝÅ凷Ï?¼âí–8½ÿªß:8glV<M9ªf&建Oª³þM†bbUgž3ᮤí땦HÚ­”«T¿ «3g@ö¡GdG°–Ž ÅÖ˜¢QéF5–‹†.¦}óGýyâ½µ æil„Å7ÌÞô|>/¢Qu÷ýÕ3J§³&D2- Lj¾»•aö:ÚµÖÑÈÔ«ì¤èÇJf“Ò7©hWàl ðßn—X>…¶` aVh„êæœ?"u¾$%—ëPjæîÒÀÏt"U3Âix©^Žx‡hÔ¯Š«Ã|Nœ fšÒëö£?R)éª%ÔHézátˆâ¤&¾¥iiG2ëqv‹vŸ.™‹’(jze*›=ëÓËNQt…B)®á] k6¼=I§ÓfwiÌníA’²¯N‰«M)S¼*)]ïÔ㌉h,êbp oaKWÿEÔ 9C¦»%ý¿gq5Ö–©ž’ל\e±Ô!E]˜Î´òiJðº,ñƒ®U`’ ì1ê$É)KÛPú´49TKœïjòüÅ[í¾g‰ìÿÈO»öœã­Ø¿®ð¿j]1åØg«éI›Ü¦Þ)‘㘠±¼„çŠ1ΤÇßäâ8ÙÜöHÜÆº–”=P2ci­ ¨cfÕšL2:âWî0Î1n¤U§éo)8ÛR—EåÌ<2Ûç„ÐmŽHÒÒ™aω9^¼K¶ýÒnr­.Ìàð³83Ôï–®Í÷ä4Q‚ŒG„Ùå‡÷Þ]¼¿xûô‚Š 3.ÐönåÖ#ûÒsL¹ªˆ‚®r!ŸdˆbänO > jKnÇ,݈Υ‰"I™ÓBx¶ Él:QÐг±ùÚ†–óÖ´»D6Τ- Z«' û¨›™î€cäMðp!ŽýS³¤â8Úò‰é¿NÈ'FØçÏï*äù¨Ý³“+ÄÝ<Ï~úù»7vûhš kwûÌšŽ TK¢Ai§Ýÿ'Ú¯'1³ŽîÝ®äu̧!»nïVó8áË—¦j€v°4¤É>gN¡9çØªIHj>9v¸öª[0F{–ænbÇâÞÄ¥¯Ô*Ã<ÉM¬Ù­îtöY»rÕ^ž ;õ°‰OR”Ëš¸q©-â¥8V«…n.~‘ŽÏ~ª]@—ª Ru&©ž÷UÑ¿›ÃX½œR³“lo%ó{ΗÔýR ŒaÜWC¿  /À,{ ºzýãK³¡¹’zPߪY‚+9™AÍ z÷ü‘êþâƒÙP¤3mGœL ØQ“蘚{Ä{´||ßOÁÁƒB)4Äš3ª¦U­C—3m=ÕRa§ÁÑÊñ2¯*œ¼¤ÐZ¼Zxjìa5¾¬ HãYÆo·Òʾ2$CqR b»ÞÌMž'„3ø»§xæf‘NO eãs‘d•9%º›¶Š.Ï5],ÜŸä΃¢lÑ^¥}€ ?±gñT§]^{U­Ÿ1s•ݹͤnœÆX'­='­F*D3ìÄ¡(i[kºÉe ¤È„2­·K)ÞgFc¥5d=Û(G,`¥ÙÏœëϬOÅÔŠRrÕ”¦ré Àµ«‡B ÚšJp˜æ¬;SC²ÔÎ#ÿ_Gìä ÎÙ½ Õ,ÙrPرÉ-w=UО&Vµ <‰geŒ"+ÇbRdõy3wUUpþˆ°®QðQÓcWÍ3k—ú6„+ UàP¬iKq %ð™øV&;0…Î;§6<®¦¬yóˆ-Æ ô|ÇR« §¥øæÖ¼IgX—f¹i@2d€¢ØÆEûL',´ÔòCoBÉÔ¸Ö…Ì¥ui niɾä<•]}Ö~Ø\¤I÷‘!ó‰®\b˜.v?ºÑZu’© ·ª¤*Ív­OJĬ×ßsçòtÿ=½.è°ÏíIÇä‚Fœ±¡¸ Ÿ“gÐ ó!£“”á»Ã9¿ þ6¦¢6’ÊÕƒ<ŽÌ :€¼zZŠÄ$dÊÇÎÚ¦ðïà™«aA[-¹Ô£}¯9ý1•Ïà*¨jäó0*ß©Q¤@ŒWŠ)*Ä%æ:N:s‹q002ȲTe7iÌ]¸LÍJq5†(ª’ÝÛ³Tè÷ܹh§'Op3Ù"axSMˆ=šðã‰%¸€ËšÙPà&>EN3¿es˜ ¼ßÔ’Y– —Î…I»q꾑µk‰‹øyZ<}ýæÍ9UH_àe¨áß”‹Sépm­xh€m—ª;Æ 2ËöZÖ¦A®¯Ó½å%•ñõ5¶õ¤ÚÃI1¡DŸM­^Ãùˆ¿£TɱdÇ£iª%[Ê/§ÂŒÖ¢Už(Eˆn¼õJ‰L-ŽWSïŠÒM®YŸžê­Z³˜é|‰I¾^WØ+Эw“É4eFH†ßeêDCNöJ“ÜVz&(!«`ªËlU-rżˆ†L–þ±]À$8GN⢗“_BóšŠë7`F½58J8ÁŽ’>A‹ªäˆý7  BEý$™§"ÖÈÄtwHJŠG Ê)ñ¹!ácbMA¥¼Uw•9ª¡ó9R<å5‹)çr{:çzj]×x¥p39˜‘èS©!f‡Êã±*×¹~°Î:qßÇareDôÚ”Ïá7õš¨½b"°Ä¬ · ›¤K«e¥ÆëÒ!ÚÀ’”)Õë¥lHÁ®h13”yIF‘ÅHÃø&ªäH˜žm‹{à¹Yj"S! fL€˜sŽXJ±ì|ÉRÓ–™aÓlïá(Ô¬CG šc@þ*ZÄ–õcɺ«Ösâ':ú:YÝÙ$+-~¨-Œ¨Õ‹µô4èqÇ‹žÄ£ è¾èŸ¤âõŒSôÏ@¨(˜ó+Π­uðZ®Ë+]Õ •a)#ŸÐ w|÷óðÍÉ`¾ÙÜ=ùöÛOŸ>‰<Á·òõ°Xç›[%e•B%BUuȯœ»×ÎO¾½Ú®ÿë ²ÅNHäûÿ~Ü_éõøÁÛû„0nyiÕÛ_^6š+;8?9÷‘añY—Z{Y f»Sô’î®ÝÈÒÄËùzÇýó£e;ÜÛùWŽVë 4Ùí„}w´¤yˆÑâÁ¢ïQÖ¤:`8(½w¤t)º~Ô‘²îíü+Gªõ„C#%ÍÝ‘’oQÛ¹«Iº°LâÅT‘ì‘ÆÊö·¯ë¯©Nÿa´ÿé4L)Þÿ4NÇjü::¦3F¦EN—ÞcºæO°—8DÝþ³ýKI>.sV’yõSe&¦ÆÉ6Éqý¨#Åó§8×8V»ží_P¦‰3\굕M•¦À³ô ”i’ãúq ËgØëǨOè(ÝÄ(¼³*óE­—¨g¤L“×»FJ5o´æ3µ¤ãhÔˈßssÙú?Ž•¹7ÍõÖ=_Ækûßx”¤ó¿ž’V¼Ñ Ôã„R¯%ªÒá|yã¢<µÞ<[-†ÃÀ1e¬”zÖ®zï§$ô_œ’ ò8åwNI¾¦ *¬‚‘@>^ÜÒŽ€×xŽç¾Ï¬JåèDFÁ€ÃªÌ±Ãžë65]8ŒL`ˆ:x%¡^êÅÔRAPvÑÉR©óæ‹O·•”ìªe ?"äîõ&àØLÞþê[w$€?kÐq»Ü>ºÞ掠2"ð#ødjÒæÔ`IEÑƙ¡>³ŸÅ»ª,Ôm•ýqzŽ•…eå†oŽP&¶a²d~Kד¨“lÔdþEÉmö´¢’³A}_oŠ[C$¡#NmóÙՆ•ô°F7›¹ÍƒÒÜãŞŋ`ç®rÂÜ…ÃØ Ó(âyQóóØÇÂ4:ºáÃ×6xª–Çj½©ÔìMÕK¯9MÉœ˜\"iµ%f&nZíã²l(«m-8&wühè=ò¸ÉŒÅÉ®b²—­ù¸ÊÕÑL!î®}Mt V½gÆxÞ*%nÂ…´?k¹âYªRM„æ`n’ŸQjã™xŸ}9Õ›jSð¬B¦b»ÌÓ+y³8ŠØÌ§îVðA)bO˜ÜŠ–}ÒZöãp¼³ÐñzÂgå v;Ë›9Äd®¬(!+Î7«óé6_œk¬™þøáÙi^XHÔl»SÀDO®ðÉks²ÒpÊfè¿]í!éR ·J=ªÜ26rè]¹…ÆçvÂá|JÑu'9ê—j-¥Ç¼À'’Þôºüªf+EiÓÎà}¿]ž¿¢8Ý+Žã¯¨@ýrK;ÔBˉÕVBXäwê‘fTžöZs-QÁp±S>.×¼ï©â fÏÒ>yƒíELë9×'þ4ˆÕá„X…g"ÜI1·Fá=®|ª.QŒ §Œ†ÅÓcðº9"„öíIg¡yA2Þµ[/nó­š"H—ïóÉ?¶Ø -±YšªÎ¦ð‚ž‘™3e6ȯEgWÊ`RÓ±†ÙϘ"JIÜå‘P¾BUd÷´Tëa]€ÇTÝ(ÉlõôÈ’';‹VµN‘)é£po˜fÖ…èžÙ¸"Å–¯¶õfi1„ž‰³4ëtŒßUS¥)„±®¸U2öîE ꎥ»Õhß±°Ìß¾#%õß»Á8þì0“µº–K@Ré YŸs/æJ¼HeUA'Ën¬ÌõtêVaî‚KÝ€‡Ù#ÔïØ!éù;N»™>íü†L ãQÖáQ~1øßLTVÄöíöÞ¼=kÂÝ£ÉXœ£ÝˆDµ”ç$é.ñ!¨ŠbSoï‘£MéwJ'¬çJSê>ÏM‘r‚YG!ðD#¸Ù§4…)’Z{”&G5oG» }Ñdó¡„jÈ›9ó «M5·P‹Þ³I ,Ö‘ßÙÝÂÑÓ=Ö‹EQ/°FÎ¥ž6ñŒÖîÄ—±ZÁo$v†'†ÆÜíòÂpÚÕŸ†w9ír2Ú5O#¯;>/”&»ÇÒ»õö.ÍYñRRÓÀÖ˜ýoº%åÈd#”k½ËwÉA°%¼^®+á—Õæ\2Cí7ù•¼d´S6¿ÙNr^—“|£6û„בÕe»„qkîì^œD-KÎo TïRDþ*)Sà'½,&ëbxrÏ&@M¨jùò/aÀp9É‘çPNq÷9Ïxs ­úå¼Xßâ9 –"Tˆ.ÜeàÍ…ç{®¡Û·ˆ$+MHxýQ/Û~ÏËc\t½÷tÑ%½ð;éüůƒ÷ÅLéˉf]$"¡Þ/‰3óVñAlwøž}_D~;ͧÛî!¯óNipcáÐú›ÿw¶lÞéÌKÌ»ãÒp3¤TRz¢¬ÚVáx=¤Sø°ÄCΘ¸XŠšÙ4n‹¦q+¦ðÌ¢°¼xäŸÄ!×±´ÒdŸŸ¼Ø.__¼eSåû! Bòg}¦CyIk̘Ôww꟦4Ÿ>ɲäa<Š…Èí5Ž’ž‰ôð»öÓå ¯þ{ú'²žOv¦ yÞÓÀCš$OcðwNÜ}:d{ûBu´Îg›!'€ŠJaèÐ×eêMì­ëm™º§ŠÌWc—YÀDq¶ä÷CÖ[/'¥w?*ÏŒÿÔøÉGªIûÄFуùþgð¨yˆÛ¤™ ;©½¦“:¥ÿ:NêŽê?œÔ¿+'uú/Dš)›®¨ÈûGf’ø4e¿þŠô|*.D½íHéº*Ñó¼ª Êë½Ï÷ô—¿ Ï_‘}Smµ/t:¸€•ÓVíYÚMœR{~]ÕÜEûŽÝê¤Ö2Ïöb{»4%µ¼Ò…þ‘…¤â®Ì)' úÕxØØÊ»¥¸oBŸA„*)KÚwëÓ…²ÀƒÉ¾WÊÖ‡‹{^Y63Úôèð]®î"íéf°PPåt£þ#«L¢©ÄE±ÜÇF&ÎSSÆ â”|ðYN'Qop~ÎíÕ«…Ûí¾£wµl¶jK÷öäeh?§z¡D"ŸŸ ù\¼Ø2¿7HÙa©/­Žz éEÛz£ƒº¸?V¥‘K®Ÿ|û-Þt¨î]WÃÙú[7v¬î÷øåLW96ÊeÖƒl±-0åÀT ÄTNÒÎ×…é¹\v¾åèaÑ÷{{»úJÈéT.û†Å¶°82~uev‡c™2{Eµ8¡¹\~Å ˜û÷uõ•ƒ‚qû÷{Å´°Ð¼³FJrõ‰gZÞŠ.¿bLÌýûºúZlwê™þÓ>d˜naOô¶á(KûwŽnAç,.;_a!¶E\dAoÎý,ÜÁÁqw掓î½2™˜—ƽyºo%”Ç‘dïü-–ÓûR¸î? ñ]¾^ækòìrý<ÖÏè侬n ± r™ æcšåpTì0ýÝ"9¹K@¹.&[ŠIŒ|ÏE1ÜL’® ß0CãU¥ÓT¤ŠXËñGžl“Ç;eg’:'0‹½¤NgªA@gïrrÿ„Ÿê£NfâÃÉ,ŒN0çž¾£?)•uÉ¿iCÊSJü =~ä?ø~j­©ˆW„Œz—~ç5Á—G, {ÏÉŽ{ú—ÅêNéÎÌbÝ¿Z~襑ÈÒx/¦Í Zß­ªZBU¤Î½§•·Þ¯«3Y/óÁôW¥Ï©éy_PA® Ê…Œ59]ˆÝ:£ðr¡ |¶‰c˜§ Ä\­~ÂLk•.­46Á'¥»Ñ?~|}ùáõûS¸ÕãqÓþ˜K(i¦T;eól¶ºJN1¸$&?µÐµˆGÆHþÇÿ|Iõ€šùfÏŠIá'™[KšêHöªhø=w.™ûÞ{zçÞÍÇÙ“*¥{§™OGzæSmIÃþ„á ?>}~qþôÇ÷—ç¯|ÿúBÙª•T©½îÍ”.µ.þMØÊ¤pxÙNÖ)5ÊrÈE4.¸"ZΈ$tÐÒõ(aˆyÜ êÏCù‰éú1Ï.Û©\ú=PTÛ¢©û‘ê翯ŸÆalÐ4Éåºû5ÿ<ÀRu¨Gj_ç_©&Û^ÍuÒ£(ë&^ ,ïSäÓO“qÏH™&¹\?æH©ÍHíéü+GÊöj®ûFJ7ñº`y ‚Z3=9¶I.×7XžÓáÞοr°ºOðƒžÁRM˜.¤ ™;Ô?T¶I.×ê¹Þc%aèÝÎWÑÞñ„žuEMÆ^?j.T÷ I_.”4iAçƒÄOÈ+Û$Çõã:—ϰ×jÔvŸÐ7PºI:dÊ^í?m“×»FÊÚqÜš_Ìr~÷Rbà÷Ü\zG©nÍ{¾Hu›¯WÙ¸_i—ÞI} ähVݲv, VÝÓ9R›×†ë{ÒÐ߯ØÓ cN‡8ªl 6ì Î ]L¶ ƈ†aQ|¬ÊÖ1 ÁÕ-ÞØ.¡Lœ#]¯°¶LsDˆj—ÒÈ’ VV®W§ç¤ÈÿõŒ¦Á¨ýXT¥oíÄc]ÕJûH"ßÌ *â|£·jÇO¢$|ˆÒä êf §Òà³±0£~oP¿çÎå1Ì(½÷XwÅ(É{UxݽZAëu0þ;E¡†lÓ>[ú*`VP á…6àŠÅ¢(×ʶ2‹ûë6Úø„±wå’–oMB.쉩o¨ñ:¥ÆbÐ0GÉÈ,†&N§j±9;u~#‚›…ÁÕm€pL9ÙßÚÑpn< Tš(¿-$­_½ÊÄèx4ŠÍx-o>Fåùy—¯ ®ù ‚zª™r(;üÍO/Õ³#?ÈÎèEÑZ¢A>q@ïeq·qÍÁ›¼g™¢DZäõ-¦Ä7ìJ¸¦ éõàÐï:&KM Ê¢á¾{zD±^çu>õe¹gÓ¢¼ò¹ü|­FW¢¯åà}.˜¤ëüVÕgŽÂ@|™O5,3¿»ƒ–à[’§¼¾VË…K‹ ŒÙRgQ«pnNùµ,–hÛ GþN'¦Ü<ÂÚ „Ìd»!¤¸S]„ÉP@ZÛÁ÷JÑ ·dŽ$D^màu®Y|žYz“Å`Êï‘€uÜ ·êJ<þèI?D®Çã‘æA꽆6ø}í¿§wY̪Û< p E­E:ðúß·´t!Wƒ“†CWý¤ÆÍÖv•#õ‚o$¦ð|}ÚÏr0WZaI&¦øl0S˜ û”!]ß0úÅV‘—¥JåÇc¯~‡Œçÿ ~Ì™)Må‘–ñL²ó¼ÁÅv³ºÕ~ ÎâýwÏ ¼×W>Ö #?øt4¨£þõóçÏI|ª³BDCDäa=k¿çÎåk€z{ïé_«»Â÷{UCýJÎ"Ð1øKÁH‰dtr`|‰Tìïo«†¹Óün£kŽ’&¹Eî‹Ý¨…EäOMy-5ÄÀm1­…é7Û%妩Ûo[J½ ¹%‹núÍêN-µªÎ% T.VW¹Ö™¾ˆÎºm£%Ý/ð»ub(AñM0>E©(DEa Æbuf²]@Ö5¤±v_ÜúL)|>«^t ÿ:²¹ÔQ7—zÏé½§w‰”ùõ*í5"=éÝY!±¬·²!ßCKÈ׎ >=CmµïWóe½’ã£m £[×¢28r¹‘H›Ò÷))a8CˆªÕKèÌÛKK$ 5m,uŠ©I“'r¾|w>! ŒÑMDÅHSóA˜¼‚ˆâãBƒË3Ï«Q³«ìÆ•hʘËŽOúUéw½{“#U¹á¾{ú§³X–|Ò»3:ˆ÷Rô÷ Lg¡$¶9ùŸÓ>9<ÿ+n~, eÕ3õÐè(5Ý.8‰€m8c¸Zå›+ksµ(ê›{ÞVcµÙ]ØÕP(À¶´0ˆ_"tX1ú\—PqN5·;ºÄšº½uÎo%óƒHYÁØýržÎ †™¢~ì2ýž;—Ç@^UCoï=fv^аfY?ì•ßÊWk\fWê.dv_«u jpœîpŽ¿*”ÑDgÙ÷d ìÄÞ=gS€–@ÉKJ Ï(¦ÅTÂNÚ“ªô%«¥ò4¢"Uù¶¸¥;3v».Ï\׫µ] ŒjvÊ"Ð…È 4:ž^ˆ‡K:‹jâcáì@ÑŸ„AúF#Öë²Ì@Ÿ£~ÂŒ(²0æãì¿Ö=_¶Õ.½;;ÊųħYuu…†J,HýñؘAi½…©CX:Žº÷è¶.¯¶ÜÜ÷pSª“*óvÒ ž7§®0ÉE“Wê Ÿª)q¡úâqG©.a§&·É#¶k¬uxšF h„úª®9R ë6ûC络¡´LØîÔá°?TÀj©x¨Çýðű#ª«£¿Æ_4óÛ›üæPú÷î̼oÏ>„&^n•azÆnÍrðC¾¾¿³IZóÁŸñ×­êTÐh—:fO£Ì–®G[«º¢ß¥äS°P!ì‘”­'¡2@£®z£Væo£$åí7ã„^õru7¯òó ÊêTzvú¢ª­JËî‰É`œ>øþˆV3ðWìÂð•9íݾß.îµù¢óºüp÷†4C„@íåáùõúï9f†Óþ f(H _OqÐ3Å3;ÅÚõgÚ zŠaVåœÆÂvgÄ©3××8Dä’'}¢ýØT¤iʄڔyþü¹ê×F-Ê®CR<‘p0]ªãäç)³%VfK< bòMàJ¤§M_˜ô{§ñ{î\¤î½§wFçÊøêVxÒ»5Y‚Ðz àßùËA…ÛÛÕr:Dš8ëÞÒ‹ïÕ@¾¯\WSµ¡HéÇšsü< Jƒ½ÍëZ–œ`ŽsÔ Œ.[¦¦òYÀ^PâÉêóg¦h]á(y_,ëºXä8¼©Éjq¿1 ZbJ™õÖôQ„U,>ÿuµ¾‘øóÁqDWë-q” facÁ(éÝÇøÅ|yLÊÜs²ãžþY/Å8ìw±¡÷äØp}Ï=GÌÛäP¼>iÄëƒDÄëw‚ü9fŸÅD‰‡@Ät=OA·>YQý”T dý ) K]âÑ[v›‰‘¨=‘9É a¨¬~,™¤ª³Åšsô£E Ø¾ž3O¢áÁ~`£ñÁÉ‘|÷ïK'-º:ÀšÂ1µ“†³mçfãØœçHGäRH1…‰ž²¹3e3Áh±“xƒ`8âãvדÀ>1Ø eÏ9Meô@ Nîf;°×LzŒúIEú=w.1ü{ï9b¾úVÒ½#3g“ÅÝùÒ>€÷Œ­àéò»r!ˆ™âö®Zc¨©0ævz¯ýÝ”'X*¶™=Ø ÕŠ\w[=§ ¢mc£\¾z÷ôé7ãˆü¼?,WŸ©Xÿ9õ ^†m‹bdÁC’Åä æÈg¥ã[swò¢(ì<ú=w.™¼Þ{NÞtÝoQxÒ¿³ÛÆÎnK:³g²šxâ´eá•,3ÿ,ˆ¥$Ñ —Ј,†Kd3}b¶2°Mí‚´ ‡?ÁÎx¥ z{õ¾±ŒÇå ;¥OõÀœ}µú³ú‹ZܧqÁÚ¸gBànªú‘™ê;üðaJtÖm)`¼„ fdÎ%6b¸(Ù¤ÉÐæ@†Ç¦M¶îù2‘½^û/Ò»•áÈYC=ÇìsÎ[”¯R»\”°R*rËîº[‡õÛ\3Š˜B^ˆ–ŽËèTôº6>ú–;ž™õ†Ì;@ÿÓ¦)#ÎnŒ’ì!ÊÆ‚‚Ét¿?·¿çÎå1Ñæ=_6swÅ:_¯FÑ?Â"æBí7j2þ¼jó-I0€ŒÄi AƒÕ¼û=Uã<ãˆËŒ±Õà:峑µË<ŸŠ[–Ü|ã£âHTk˜Ò0 §ÎDâÛÆUY-͟ʦº©ø”å%•:%Á%NŒÒø‡KÁ]Í•¢ #9JLޏLR-…p„â^Kúû‘§~fnÌf^_-tÄ‘x;p¾¯#FFZĨ++´Ø!­¨*R×›‚wŽØ%¶P½xÇFaå@h³6‘U ŸÀ‡Ó~¾¼0°ÄÖQ6¶:ý#P«Z qÖ ù¥ßõj… ôÞÓ¿CV7yöoŽ8kB~Cíqû^,ºW`_¬iÊ5f'äùún(@Ž¥›ÁòTéKéI”pÁ¶»8ëÁÿ ÿ¹§~¦Ä]”Ž„ãßš……˜…T˜þÁüÂ8~U f'ó¿Eçª$Œj#r]VY`Ï-Ïxá±2V|q—·~ –†øÉ’~H¿çÎå1ÓÝ{OïtÃÁ÷k³Ò½# µGî¥2ñ©Ê!V5½æ1‚ @×Hâ?/ˆ9ɳ¹{RÍvù ÝÉ%ã`MP¡u—u¡Ü´139õ1%Ág:W)Ô¸p'(4Ûy…'¸äŠl¬zñkއµžyë /„6Jõlgâ±æ1ååN2¶ìôÎëâÆô_0&á<Âï 0þWÃ#ðþž| !Œíî†pÖ¼Ø%ÄS¦,v$3Å?éð¾9­©¿s(v²s›zîˆpMÉb¥´…&¸ÇðQ^\’ÖId¥µçìÞŠcìΦ .¶% ©ºb:êÕ½þ)ÃÉ?…cÀ fùq0O¦0±çpÑÐÍе²ï¯¼šUžPtÏ J˜ÜPuÜ ³Vx¤PÛyµ …ŸwÜèh} õXMêÙéMëæ™z•z^Ô6›Ä*W”cýü½îo;ääg˜ŸR$VKüå-í!íÎÌùaȵ¢yæéMYuCÞÎöJR¯ÑΣWâ̶}ù½®/ú]äšzEÃ}÷ô/°bQ¥ýiAÒ»£¤NL'֡׊õRén¹uZ\"6P-~Á6×Sø¤ÝÄéœnQ°Ö`ƒmâsë0ö¿­¢÷üÍ¥o]òñ_h¤ ­• «0û`i¾ãÀÞw”’üèXh /£ß áÜã})*‚p€G~*"Ôè*Ç õ\mMa§ÿDZ]…bFað(hG½ZpÄ* _s¸Z— Eݽž½~L&îÂq“GÚ(jÒ¬=ËTŠPѾ2|¶IŽkoÇ}ÁqwüúÎõcò,ìxBÚó ›tÊÍã´O¼®=<“ºIŽë¯t'on¯•m²ó„pÜ36º‰»xÌÛ+%)Jiiø}LÒ„h qýu#d»ØÛÝWŽPë ^ÿö’æÍÂK‡£(9°µL°-Òu÷k\ºEÓ¡鈲Q¯ô¦ß™ÓV.Þhx²çž^é½ÈgE±8@»(ý;~Kñ¶7y¹]æ¤:}€¸×°a«³ÓH“œÎô”þßó÷!T1£R3¸¾ŠbJŽ—µj¿º­~…mžK¶çÖù”ŽO™ã…ÏLšøÜIø®&góÜèÄg.D‹CpòÑ)þ3&ÞtÈ*~]høÕd®2J9·…òIš>$™æSžñÚ =úYœàgI,×ÊqàŒþ{ú'¾XYàQz·ŽÕhädàÒ¬¾)*J¶w"üß;Ùøå?­µV ·•tåðZ×÷··”äÊFÎ5 K µ(Œ [ž²ój ÿ¦+4Îwät—Þ—Ä Ë¦Ç]{ZÏ98ð³%ªJ[»Ñg©`pP;¨%L4Ö —Gñ¯„ƒÓ½§š«µ2ús(uÿÎDû–9s 8oª» E“oì äÈ yàC‰Ø«o!oyIs¾`ßN%X›-unjz¸7r3yp TT†Ü­`Ó0ÃÎÐÈâ¤IŠ‚TX/ž öŸì×]L(¾/<µ‘ÿàǡ佉§$HÇA•‹šê½§ß*‹(~寤é¸Å ‰SµSÕ38á4u]±0SA »äå{¼à2â?.º&žm¥¤øäðAª¾.q>ú´™›Ž¤¬À¸¤sÓé˜ÜE>*qÂGYòöMÃt –àu€8±tÄ¿-ÞÊûR¼Íô(í]tðVQdgÖkk¦1»M—³±ªè¿‹.ŠòrDzêÚHÖµ©ª9º0Î ¾Bt™ÖC³˜uÚÐX´Nj7Ö(¼JØ®m¼ÚÙp…hy ÑòpKˆ©<ÃLŤTôÑ¥®ˆP„ UÈQùÖ!Ryj øÁhD_)¸©ä  ãþ hü.s™mï9ÙqÏáu‘pys÷Î9;<7Qw]ÄÈz÷á\*µ},êãçÓ +Yvà­í(SÔŒ23ÿîýkrFÿ¼¬Î]L”ëwlÒä‘,@Uí|KE›^“`\Ùjz2\m¯ ¼_ðÚ¡z~Î*HCÛÿÿÔðbP¾elGÓ×Ýåîõ£áÒ«gžõqùÛ&M8‰ÒeÃ4hŸ^ ÚLiÞI\w>èŸ+ÛÝÞ®¿–43 ¼Öâ¾Z¦IË™“á‡0ë'Ý–ÿãŽSæŒSö›ŒSæŒSvxœ²î8IÑŒÐÏhÛúãý#ešpãëÇ)§»½]ÝHQ¯^ó YOu§I³”$pïÆ3MÔ­Âú4~œQ²½íëøëÆHwêéþÇ=kɶ ±ù„#uÐŒø¥îæ+NÇã±·êê ˜j¡¡¥|ùXãe{Û×ñךÓÖCm[˜¥ßØ£”F Ù¿¨L„²pŽ÷ú ÖgŽƒ}ªŽg~µ—Ǩ:½÷PuÖ«qr@V}6@yQâ;UÇÀx,ôT²z¨Ž Å4+]†Eô˜\[ü3—ÎöЬiÍ< ·;‰ü82p;±Ž¢Àåÿ¸¹Mc£kxêe¡¸µ×·¾· 8æD¥š•Ê‹*Û§Rô¨TœeÞ.•êÄU©ø9_¾ýîr5£µìÂÿ[|¾Óc;¼«‡å¯§^SÕÂcXâO{tUËy‚ºNƒª7Ù­j©7%'ýªšäú:þ§DØŒ¡}Œ½ö[k=!PÁ¸IWSãôò–ãÞ ÔZÌÂøeÎ×e¿ÉøuŸÐ;~YwüÕŒV`_H‰Ô•HÊñõo=‚Îcìµ÷Ø*[ë Ir@eã&•íÀ†Ê&˜’è·=û”}üjUÎkôŸúU9nÑPåp[•‹ÂѸ_•C‹\.ëq´OÙ÷À¯Wñý÷•ß³-ܰ9>…u¼(ôý:5Ñ:Þo?|Îcö>ò+q+ªW¯ù„ŽeçâVl5†#WOþ¿§~2N< Ðþ1TMÌòõo>†ö1öúQáŽ'ô-C§‰]‡îœÁ8:°“©‰ÞÊrý[¤ó{ý¸gr÷ ½å4mgC£¼Oªñ újÑR¾-šäúú7?û{ý¸ã×}BïøÙ&vüÔ+ñáá‹á‹wŸSÊÆ¶°önùaoZd`§|y qß=GØ»24# g{7uìÝQÇÞ-v”±!’4òö‹«±’'¨n¼f%B «!]WÙ„l/ IjÚi¾jZb2D9xxÝ z(f³+zh²um°혡2´-ÊþðÞ$%ƾÁ«wO‰X1øn½%f"'‚/µKüQ’Ú b9ˆÆáC4΀ G4¿rêWFé¸äŒßsçò˜•Ó{Ïá•“Hgãî•“õzJv­œ8rÈn䤹MNšqPïÚÉ®¨8’¹ŠvÏU£›ítàß0ø)ãý¸›Éª’ê»äO[4 î@û79—ŸÞþ;{jãwËJ¨ ݨý”KâQΕ¤3q\ãt¯™ýO3Î’¢#J´| =³š O³¨×GNœBïÏÇ>e5ïϺÊéì_I-õöƒ.t¹žÿ´UCàa3u+Ôi’$»\ã™qGJÊ¢ã> »šÈaE¯C*|sV-]zÊq‰·}\½ÑÿIÒWðÕ¶Ø•%’…+{¼Çq«ôj‘ËåxÜò?j€LOû:ýZÇ,}–íŸj õ¸eu [“*µ…£Ð?éjáñØpãÇÛÓ¾N¿ÒåÚìßë4nŽ ¿?GÉ»tÚm+g“"år}ýà˜ŽNvwùõÁq§wßïõ§zhÐðC'ÊœIâß•nãêQ†D:òöuùuCbúä+¿Ç9o¨¥˜}t~º˜·öƒ8ðzˆZÈá²û=NÜ4°n=æFœk1›«#ÿ¾;úÿÕìP9;©9Ä’ûWÖöÅÐé«Í¼Xæ‘§Ãóïœtt®ÛdÜÈî«…avW'§ÒÍó%g®#p}«Íuu¿9˜•ù!1 íCe—FvÏAeÀÕÃŒ!a ®¾u4ƒŒÜŸSêkõ§‡‘I#£#Sõ=ÞŽ{La]-ªñ¡äã°É2;<Þ͉$Uæáž1˜½º]-m"ùÃóf)ã7Õj+5‹]=ÊØy¦ fkS¶»fKWYT%L5` (W¦6hþk›8B“&{М3Ò?“mÞʘyOEH£pôQ•Ø ÐMx.4f‹ úa¿×¿çÎåQÉ}÷ôÎïZÍJF›'½ÛÔòXcñŸ‹»®My%ž¨ã–é ¹)Œ­Ï—¦`cÙØ£36ÄY//€®VZw¥g¹hÖ%Âôf]"è²(MâDoP½»|úm–Œ”iL¼FÂtIYm,>ÑŒàÃÓTªF#o'zÿ\RêPžVCùáEÚ…æ×út vÿƒRhá3”¾‹qÓO³~Æwú=w.Y½÷Xåvö¯ îÝzyâÈYQgmÚ®¢BìþºÖ;ÕZΕ† ?'†Yü½ *g­0|åÙd9Í·n‰ˆ‚Fa«y‡Ù?â¼@ ·\nM†£!Wbç5 ×}Å*ÅQ¨S6f.åôÑÔî'ÇP»{_Ií¾^Õ“ɬf÷8v¦—„èžé}Ï´“47ë¢â_ÕDwJOÕæQ½€þÎ:®ÝÊ5Rª%êaÈŒÎÜ#ZÞÍt‚¬¯=£ÉIÏŒzΔF§7½SʺU!S:uvì1ìï'ÿyìïµí5:äï±¾²îLœ/\<¥Ò|oZœ;ÞÏiµVÇ+ÅSV Áï !Hw2eâÏDâ ©ŽµC ÿþµ®ù\ ~¼¸¼ ÇË-Žy×q¢N kG´–ž[WÙ3¾wïKùÞWÕò—ý¾<Û·³õtìõrBòåRÍÅûä%é0ÕDvBªðOÊQøÚh>ìÃRÓ™ìÌ8›Œ“8 %;±'Œ»ªëa]VCuv’3øZÍ|ý­ú¦b©žÑÈ0Ýåîõcz:t¯žyBÜc¶:MvÀ ÇÊØ’¬£lšÐáºûAÿìXÙîövý•c¥zõZOè#€°MŒóƒ¾æ4ôñè/A@7®íQÇÉéno×_ ʳã$Oˆ{ó(L»¦èSØG¤VKx “‚šˆÓeeœloû:þzguêéþãð;naüEô§éé¾=D4º…z .m|loû:þºñéô'ûéht‹ G¿ý©ïG™„¬Lbš qš®m œîövý•à¯Ö¼þÅ$ͫɾ¸ÓCƒ¥šxh’Ÿpóî9n6ÛÂúÙ‚¬ßZ£ßuåŸìHkî»§_÷«nWcÿ@-±Öb­SdWfí«!ˆ¼¥Ò7ydtD¬ír‰´ ß`„kzXì†çW«í c+! ‰ÝÖǤÎ5%:ñóó¥úh¨âëFÕçà‰ÆjˆCM)yþï²ÞȦú”'é—•‰5Lâ/’þþ‚L©Dax/æU©Ëüªþ"ô!‹)\ wÛ3VÅ¡d뚣µ)^©öeaØ~Ö7¤-ÿØ ›“Ï(žú»Mu«¦… h#ä´sýª‚y±ÐZ|/D¤®C¥ä2z†ú ŽŸ¡ÛƒúãFÞ»?NL"{ØWÈÃï:)= ŽLdï»§w‚?å“uñËõjÈeÇ|¥¢ò$'.9&[ÜÙ‹•}>‰S u½Ÿ*C5ߥ֥7xÎV±Ù ¨$ýðýj¾DEmƒÿ@Þ¦·“·\·Œl±±g÷t#ƒ]opXuÿÍA•;¶ûŒÊ|(‘¡¬šeáos¡o'ŸìTòê$(Aƒ3RÙ#&©ó¾íaãRm $(@) install : $(HDSONS) -$(CP) $(HDSON).ps.gz ../../ -$(CP) $(HDSON).pdf ../../ clean : -$(RM) *~ h.aux h.blg h.log h.out h.toc realclean : clean -$(RM) *~ h.bbl *dvi h.ps $(HDSON)* scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/handson/h.tex000066400000000000000000000113621514310134000251160ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : h.tex % % Sujet : Hands-on guide % % Document body % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Formatting and pagination. \documentclass{article} \usepackage{a4} \usepackage{courier} \usepackage{fancyvrb} \usepackage{url} \usepackage{hyperref} \usepackage{breakurl} \hypersetup{pdfborder={0 0 0},colorlinks=false} \usepackage[dvips]{graphicx} \usepackage{xspace} \usepackage{listings} % http://mirrors.fe.up.pt/pub/CTAN/macros/latex/contrib/listings/listings.pdf \lstset{ basicstyle=\footnotesize\ttfamily, frame=single, numbers=left, numberstyle=\tiny, stepnumber=1, columns=fullflexible, showstringspaces=false, % tabsize=1, breaklines=true, breakatwhitespace=false, } \lstdefinestyle{language-b} { language=bash, } \lstdefinestyle{language-c} { language=C, } \lstdefinestyle{language-f} { language=Fortran, } \sloppy % Get rid of overfull hbox'es \renewcommand{\baselinestretch}{1.05} % Height of linex x 1.05 \setcounter{secnumdepth}{3} % Numbered sub-subsections \setcounter{tocdepth}{3} % Sub-subsections in table of contents %% Macros and useful commands. \makeatletter \@definecounter{enumv} % 8 levels of itemization \@definecounter{enumvi} \@definecounter{enumvii} \@definecounter{enumviii} \def\itemize{\ifnum \@itemdepth >8 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi} \let\enditemize =\endlist \def\@iteme[#1]{\if@noparitem \@donoparitem % Item long pour options \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}\fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \setbox\@tempboxa\hbox{#1}\relax \hskip \itemindent \hskip -\parindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa > \labelwidth \box\@tempboxa\hfil\break \else \hbox to\labelwidth{\box\@tempboxa\hfil}\relax \hskip \labelsep \fi \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi \ignorespaces} \def\iteme{\@ifnextchar [{\@iteme}{\@noitemargtrue \@iteme[\@itemlabel]}} \let\@Hxfloat\@xfloat \def\@xfloat#1[{\@ifnextchar{H}{\@HHfloat{#1}[}{\@Hxfloat{#1}[}} \def\@HHfloat#1[H]{% \expandafter\let\csname end#1\endcsname\end@Hfloat \vskip\intextsep\def\@captype{#1}\parindent\z@ \ignorespaces} \def\end@Hfloat{\vskip \intextsep} \makeatother \newcommand{\lbo}{\linebreak[0]} \newcommand{\lbt}{\linebreak[2]} \newcommand{\noi}{{\noindent}} % No indentation \newcommand{\spa}{{\protect \vspace{\bigskipamount}}} % Vertical spacing \newcommand{\eg}{{e\@.g\@.}\xspace} % e.g. \newcommand{\ie}{\textit{i\@.e\@.}\xspace} % i.e. \newcommand{\scotch}{\textsc{Scotch}\xspace} % "scotch" \newcommand{\libscotch}{\textsc{libScotch}\xspace} % "libscotch" \newcommand{\ptscotch}{\textsc{PT-Scotch}\xspace} % "PT-Scotch" \newcommand{\libptscotch}{\textsc{libPTScotch}\xspace} % "libPTScotch" \newcommand{\esmumps}{\textsc{esMUMPS}\xspace} % "esMUMPS" %% Document version. \input{../version.tex} %% Title page. \begin{document} \date{\today} \title{\includegraphics[scale=0.8]{../misc/scotch_logo_color.ps}\\[0.3em] \includegraphics[scale=0.8]{../misc/ptscotch_logo_color.ps}\\[1em] {\LARGE\bf \scotch\ and \ptscotch\ \textsc{\scotchver}\\ Hands-On Guide}\\[1em]% {\normalsize (version \scotchversub)}\\[1em]} \author{Fran\c cois Pellegrini\\ Universit\'e de Bordeaux \& LaBRI, UMR CNRS 5800\\ TadAAM team, INRIA Bordeaux Sud-Ouest\\ 351 cours de la Lib\'eration, 33405 TALENCE, FRANCE\\ {\tt francois.pellegrini@u-bordeaux.fr}} \maketitle \clearpage \tableofcontents \input{h_i.tex} % Introduction \input{h_c.tex} % Compilation and execution \input{h_p.tex} % Programming examples \input{h_r.tex} % Running Scotch \input{h_t.tex} % Troubleshooting Scotch \end{document} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/handson/h_c.tex000066400000000000000000000303731514310134000254230ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : h_c.tex % % Sujet : Hands-on guide % % Compilation/Execution % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Compiling and executing \scotch} \subsection{Required tools} In order to compile \scotch, one needs: \begin{itemize} \item GNU make; \item possibly CMake, version at least~3.10; \item a C compiler that can handle the C99 standard (and is parametrized to do so); \item Flex and Bison, version at least~3.4; \item a MPI implementation, for \ptscotch. \end{itemize} \subsection{32 or 64 bits?} \label{sec-c-integer} \scotch\ libraries can typically be found in 32~bit or 64~bit implementations. It is possible to use both, but this requires a bit of tweaking (using the \texttt{SCOTCH\_\lbt NAME\_\lbt SUFFIX} flag), because two coexisting versions cannot expose simultaneously routines with same names, all the more when they expect integer types of different sizes. In most of the cases, however, only one version will be linked against the user's program, which requires no specific action. One should not mistake the size of machine integers, that is, \texttt{int}s, and the size of integer values used within \scotch, that is, \texttt{SCOTCH\_Num}s and \texttt{SCOTCH\_Idx}s. \begin{itemize} \item \texttt{SCOTCH\_Num} is the generic \scotch\ integer type for values. It is used, e.g., as the cell type for vertex and edge arrays that describe graphs. Its width can be defined at compile time by way of the \texttt{INTSIZE32} or \texttt{INTSIZE64} flags. By default, its width is that of the \texttt{int} type. \item \texttt{SCOTCH\_Idx} is the generic \scotch\ memory index type. Its width should be that of the address space. It is used, e.g., to represent the global amount of memory consumed by \scotch\ routines (see, e.g., \texttt{SCOTCH\_\lbt memMax()}), or the indices in memory of the cells of vertex and edge arrays, with respect to a given reference (see, e.g., \texttt{scotchf\lbt graph\lbt data()}). Its witdh can be defined at compile time by way of the \texttt{IDXSIZE32} or \texttt{IDXSIZE64} flags. By default, its width is that of the \texttt{int} type. \end{itemize} \subsubsection{Integer size issues in \scotch} Since \scotch\ does not depend on third-party libraries, there is no risk induced by using \scotch\ integer datatypes of a size that differs from that of the \texttt{int} type. One may use 32-bit \texttt{SCOTCH\_\lbt Num}s in a 64-bit environment, in order to save memory, or use 64-bit \texttt{SCOTCH\_\lbt Num}s in a 32-bit environment, to handle big graphs (provided the address space is large enough). In all cases, the width of \texttt{SCOTCH\_\lbt Idx} should be that of an address, that is, nowadays, 64~bits. \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{RULE}: \Verb+sizeof (SCOTCH\_Num) <= sizeof (SCOTCH\_Idx)+~. \noi \textbf{RULE}: \Verb+sizeof (SCOTCH\_Idx) >= sizeof (void *)+~. \end{minipage}} \end{center} \subsubsection{Integer size issues in \ptscotch} The fact that \texttt{SCOTCH\_\lbt Num}s are bigger than \texttt{int}s may cause integer overflow issues in \ptscotch. Indeed, in the prototypes of most communication routines of the MPI interface, counts and array indices are declared as \texttt{int}s. Consequently, for big graphs comprising more that $2$~billion vertices and/or edges, that can only be represented with 64-bit \texttt{SCOTCH\_\lbt Num}s, it may happen that message counts and displacement values go beyond the $2$~billion boundary, inevitably resulting in a communication subsystem crash. The ability to use 64-bit \texttt{SCOTCH\_\lbt Num}s with 32-bit MPI implementations was a temporary hack to break the ``2-billion barrier'', in a time when there were no 64-bit implementations of MPI, while knowing that there would be a breaking point beyond which this solution would not work (\ie, when the amount of data to be exchanged also breaks this boundary). To be on the safe side when using \ptscotch\ on big graphs, the width of the \texttt{SCOTCH\_\lbt Num} datatype should always be that of the \texttt{int} datatype, whatever it is. \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{ADVICE}: \Verb+sizeof (SCOTCH\_Num) == sizeof (int)+~. This is the behavior by default. \noi \textbf{ADVICE}: To use \ptscotch\ on big graphs, use 64-bit \texttt{int}s and link against a 64-bit implementation of MPI. \end{minipage}} \end{center} \begin{lstlisting}[style=language-c] if (sizeof (SCOTCH_Num) > sizeof (int)) { SCOTCH_errorPrintW ("PT-Scotch users, beware: here be dragons"); proceedWithCaution (); } \end{lstlisting} \subsection{Linking with the proper \scotch\ library} Users should make sure that they link their programs with the proper \scotch\ library, that is, the library whose type width matches the one which was defined in the \texttt{scotch.h} and \texttt{ptscotch.h} header files. This can be verified dynamically at run time, by comparing the value returned by the \texttt{SCOTCH\_\lbt num\lbt Sizeof()} routine with that defined in the \scotch\ header files that were used at compile time. \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{RULE}: \Verb+SCOTCH\_numSizeof () == sizeof (SCOTCH\_Num)+~. \noi \textbf{ADVICE}: Insert a sanity check at the beginning of your code, to rule out this issue. \end{minipage}} \end{center} \begin{lstlisting}[style=language-c] if (SCOTCH_numSizeof () != sizeof (SCOTCH_Num)) { SCOTCH_errorPrint ("Don't even try to call any Scotch routine"); betterQuitNow (); } \end{lstlisting} \subsection{Linking with the proper \scotch\ error handling library} \label{sec-c-scotcherr} When a \scotch\ routine encounters an error, it generates an error message, by calling the \texttt{SCOTCH\_\lbt error\lbt Print()} routine, and tries to returns an error value. By design, this routine is not part of the standard \scotch\ libraries, to allow editors of third-party software to funnel \scotch\ error messages to their own error logging system, by providing their own implementation of \texttt{SCOTCH\_\lbt error\lbt Print()}. \scotch\ users who do not want to undertake this task have just to link their software with one of the defaut error handling libraries that are part of the \scotch\ distribution. \begin{itemize} \item \texttt{libscotcherr}, which sends the error message to the standard error stream, and tries to return an error value to the caller routine. Several error messages may be produced, as control returns to upper layers of \scotch\ routines and errors are detected in turn; \item \texttt{libscotcherrexit}, which sends the error message to the standard error stream, and exits immediately after. No subsequent messages are produced, which may have helped to locate the error; \item \texttt{libptscotcherr}, which sends the error message, comprising the MPI process number, to the standard error stream, and tries to return an error value to the caller routine; \item \texttt{libptscotcherrexit}, which sends the error message, comprising the MPI process number, to the standard error stream, and exits immediately after. \end{itemize} \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{RULE}: Do not link with a \Verb+libptscotcherr*+ library if you do not use MPI within your program. \noi \textbf{ADVICE}: Link with a \Verb+libptscotcherr*+ library when using \ptscotch\ routines within a MPI program. \end{minipage}} \end{center} \subsection{Multi-threading} \label{sec-execution-multithreading} Since version \textsc{v7.0}, \scotch\ benefits from dynamic multi-threading: most compute-intensive algorithms will use several threads, whenever available. The use of threaded algorithms has to be activated by setting some compilation flags, notably: \begin{itemize} \item \texttt{COMMON\_PTHREAD}: activate threads at the service routine level (\eg: I/O compression-decompression). \item \texttt{COMMON\_\lbt PTHREAD\_\lbt AFFINITY\_\lbt LINUX}: use the Linux API for thread affinity management. Indeed, to enhance memory locality and efficiency, it is better for each thread to be assigned to a given processing element. While the API for this feature is not normalized, the Linux API is quite standard. No other thread affinity API is used in \scotch\ at the time being. \item \texttt{SCOTCH\_PTHREAD}: activate threads for the shared-memory algorithms of \scotch\ and \ptscotch\ (which do not require to have a thread-safe implementation of MPI); \item \texttt{SCOTCH\_PTHREAD\_MPI}: activate threads for the distributed-memory algorithms of \ptscotch. Starting from \textsc{v7.0.4}, \ptscotch\ dynamically adapts its behavior to the thread-safety level of the MPI library against which it is linked. In particular, it will take advantage of the capabilities of the \texttt{MPI\_\lbt THREAD\_\lbt MULTIPLE} level, if it is enabled, to run some threaded algorithms in parallel across compute nodes. \item \texttt{SCOTCH\_PTHREAD\_NUMBER}: default maximum number of threads to be used. A value of \texttt{1} means that no multi-threading will take place in absence of specific user action, and a value of \texttt{-1} that \scotch\ will use all the threads provided by the system at run time. Set to \texttt{-1} by default if no value provided. \end{itemize} These flags are usually activated in compilation configuration files, but this may depend on the packager for your distribution and of the thread-safety level of your local MPI package. For each of these classes, there exist sub-flags to activate or deactivate specific features and algorithms (e.g., \texttt{COMMON\_\lbt PTHREAD\_\lbt FILE}). For CMake, these flags may have different names. Please refer to the \href{https://gitlab.inria.fr/scotch/scotch/-/blob/master/INSTALL.txt}{\texttt{INSTALL.txt}} file of your version of \scotch. \\ Additionnally, environment variables may be set to dynamically change the behavior of the \libscotch\ and all the executables that rely on it (including the \scotch\ standalone programs themselves). These variables take precedence over the compilation flags with same purpose. \begin{itemize} \item \texttt{SCOTCH\_PTHREAD\_NUMBER}: this environment variable sets the prescribed maximum number of threads that \scotch\ may use in the course of its computations. A value of \texttt{-1} indicates to use as many threads as provided by the system at launch time. Setting this number to \texttt{1} will coerce \scotch\ into using only purely sequential algorithms (which may differ in nature from their multi-threaded counterparts). \item \texttt{SCOTCH\_DETERMINISTIC}: when set to \texttt{0}, faster, non-deterministic, multi-threaded algorithms may be used; when set to \texttt{1}, fully deterministic, albeit sometimes slower, multi-threaded algorithms are always used. \item \texttt{SCOTCH\_RANDOM\_FIXED\_SEED}: when set to \texttt{1}, the same pseudo-random seed is used for each run, allowing for reproducibility in case only deterministic algorithms are used; when set to \texttt{0}, a new pseudo-random seed is used for each run. \end{itemize} \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{RULE}: Only activate multi-threaded, distributed memory algorithms at compile-time if your local MPI implementation supports it. \noi \textbf{ADVICE}: Activate threads whenever possible, since they are likely to speed-up computations. \noi \textbf{ADVICE}: Activate the extension for thread affinity whenever possible. \end{minipage}} \end{center} \subsection{Execution issues} \label{sec-execution-issues} \subsubsection{Intel MPI} Some hanging issues have been reported when running \ptscotch\ in multi-threaded mode on Intel MPI. Until Intel fixes this issue, a workaround, available since Intel MPI version 2021.17, is to run Intel's \texttt{mpiexec} command with some configuration variables set as follows: \begin{lstlisting}[style=language-b] I_MPI_THREAD_SPLIT=1 I_MPI_THREAD_SPLIT_MODE=implicit I_MPI_THREAD_MAX=x \end{lstlisting} \noi where the \texttt{x} integer value is the maximum number of threads that Scotch will use, which must be set explicitly at compile time (see Section~\ref{sec-execution-multithreading}), or at execution time as an environment variable: \begin{lstlisting}[style=language-b] export SCOTCH_PTHREAD_NUMBER=x \end{lstlisting} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/handson/h_i.tex000066400000000000000000000036041514310134000254260ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : h_i.tex % % Sujet : Mands-on manual % % of the Scotch project % % Introduction % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} This document is a quick reference guide for people willing to use \scotch\ in their projects. By ``\scotch'', we designate collectively both the centralized-memory software \scotch and the distributed-memory \ptscotch\ software, which are components of the \scotch\ project. This guide provides information about the proper way to install and use \scotch, by providing snippets of code and simple examples. It is therefore incomplete by nature. Users willing to obtain more information may refer to the following documents: \begin{itemize} \item The \href{https://gitlab.inria.fr/scotch/scotch/-/blob/master/doc/scotch_user7.0.pdf}{\scotch\ User's Manual}; \item The \href{https://gitlab.inria.fr/scotch/scotch/-/blob/master/doc/ptscotch_user7.0.pdf}{\ptscotch\ User's Manual}; \item The source code of the various test programs in the \href{https://gitlab.inria.fr/scotch/scotch/-/tree/master/src/check}{\texttt{src/check} directory}. \end{itemize} Users willing to install their own local version of \scotch\ should also refer to the following documents: \begin{itemize} \item The \href{https://gitlab.inria.fr/scotch/scotch/-/blob/master/INSTALL.txt}{\texttt{README.md}} file; \item The \href{https://gitlab.inria.fr/scotch/scotch/-/blob/master/INSTALL.txt}{\texttt{INSTALL.txt}} file. \end{itemize} People willing to do research on graph partitioning with \scotch\ and implement their own algorithms in \scotch\ may refer to the \href{https://gitlab.inria.fr/scotch/scotch/-/blob/master/doc/scotch_maint7.0.pdf}{\scotch\ Maintenance Manual}. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/handson/h_p.tex000066400000000000000000000235521514310134000254410ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : h_p.tex % % Sujet : Hands-on guide % % Programming % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Programming with \scotch} \subsection{Integer type} All integer values used by \scotch\ to describe its objects are of type \texttt{SCOTCH\_\lbt Num}, which may not be the standard integer type, depending on compilation options (see Section~\ref{sec-c-integer}). Make sure to declare and use \texttt{SCOTCH\_\lbt Num}s in your program whenever necessary, even for integer constants. \begin{lstlisting}[style=language-c] #include ... SCOTCH_Num vertnum; \end{lstlisting} \begin{lstlisting}[style=language-f] INCLUDE "scotchf.h" ... INTEGER*SCOTCH_NUMSIZE VERTNUM \end{lstlisting} \begin{lstlisting}[style=language-f] include 'scotchf.h' ... integer(SCOTCH_NUMSIZE) :: vertnum \end{lstlisting} \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{RULE}: In \textsc{FORTRAN}, in the absence of function prototypes, always pass integer constants through variables of type \texttt{SCOTCH\_\lbt Num}, to make sure the integer type width will always be the proper one. \end{minipage}} \end{center} \subsection{Data structures} All data structures in the \scotch\ API are ``opaque objects'', that is, mock data structures meant to hide their contents from the user. Hence, interactions with \scotch\ can only take place through its API, which preserves ascending compatibility with future versions (and backwards compatibility as well, to some extent). \subsubsection{Allocation of data structures} \scotch\ data structures can be allocated at compile time by specifying memory areas of the adequate size. For data alignment concerns, these structures are exposed as arrays of \texttt{double}s, of a size defined in the API. \begin{lstlisting}[style=language-c] #include ... SCOTCH_Graph grafdat; \end{lstlisting} \begin{lstlisting}[style=language-f] INCLUDE "scotchf.h" ... DOUBLEPRECISION GRAFDAT (SCOTCH_GRAPHDIM) \end{lstlisting} \begin{lstlisting}[style=language-f] include 'scotchf.h' ... doubleprecision, dimension (SCOTCH_GRAPHDIM) :: grafdat \end{lstlisting} Alternately, users can allocate memory for \scotch\ objects from the heap at run time. The size of these objects can be based on the size values provided at compile time (\eg, \texttt{SCOTCH\_\lbt GRAPHDIM}), or returned by the API routines \texttt{SCOTCH\_\lbt *Sizeof()}. In the latter case, users will be able to link with any version of the \scotch\ library without having to recompile their code. Users may also directly obtain a memory pointer to dynamically allocated \scotch\ objects, using the \textsc{C} API \texttt{SCOTCH\_\lbt *Alloc()} routines. In this case, this memory must be freed using the \texttt{SCOTCH\_\lbt mem\lbt Free()} routine. \subsubsection{Initialization and deconstruction of data structures} Whether they are statically or dynamically allocated, all \scotch\ opaque objects should be initialized before use. To do so, one must use the \texttt{*Init()} routine defined for each object category. Similarly, after their last use, these structures must be deconstructed, using the \texttt{*Exit()} routine associated with each object category. The deconstructor routine is needed to free the internal memory associated with the object. When objects depend on other objects, by way of references, the referenced object must not be deconstructed before the referring object (\eg, a \texttt{SCOTCH\_\lbt Graph} refrenced by a \texttt{SCOTCH\_\lbt Mapping}). \subsection{Error handling} For the \textsc{C}-language API of \scotch, errors are usually reported by returning a non-zero \textit{int} value~; please check the user's manuals for more information. For the \textsc{FORTRAN}-language API, errors are reported through a specific variable, of \texttt{integer} type, which is passed as the last argument of \scotch\ routines. This variable should be initialized to $0$, and checked afterwards to see whether its value has changed. For both APIs, the type of these error values is a standard \texttt{int}, not a \texttt{SCOTCH\_\lbt Num}. \begin{lstlisting}[style=language-c] SCOTCH_Graph grafdat; FILE * fileptr; if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { fprintf (stderr, "Could not read graph\n"); fclose (fileptr); exit (EXIT_FAILURE); } \end{lstlisting} \begin{lstlisting}[style=language-f] DOUBLEPRECISION GRAFDAT (SCOTCH_GRAPHDIM) INTEGER FILENUM INTEGER IERR IERR = 0 ... CALL SCOTCHFGRAPHLOAD (GRAFDAT (1), 42, -1, 0, IERR) IF IERR .NEQ. 0 THEN PRINT *, "Could not read graph" CALL CLOSE (42) CALL EXIT_C (EXIT_FAILURE) END IF \end{lstlisting} \subsection{File input/output} \textsc{C}-language API routines handle files as streams, of type \texttt{FILE~*}. This allows users to read and/or write from any kind of I/O structure (\eg, regular files, but also pipes, network sockets, etc.). \textsc{FORTRAN}-language API routines handle files as I/O units, which are turned internally into file descriptors and then into \textsc{C} streams, by adding buffering capabilities. This added buffering improves performance but may bring input over-consumption, if the same unit is used for different read operations. \begin{lstlisting}[style=language-c] SCOTCH_Graph grafdat; FILE * fileptr; SCOTCH_graphInit (&grafdat); fileptr = fopen ("path/to/the/graph/file.grf"); SCOTCH_graphLoad (&grafdat, fileptr, -1, 0); fclose (fileptr); \end{lstlisting} \begin{lstlisting}[style=language-f] DOUBLEPRECISION GRAFDAT (SCOTCH_GRAPHDIM) INTEGER FILENUM INTEGER IERR IERR = 0 CALL SCOTCHFGRAPHINIT (GRAFDAT (1), IERR) OPEN (UNIT = 42, FILE = "path/to/the/graph/file.grf") CALL SCOTCHFGRAPHLOAD (GRAFDAT (1), 42, -1, 0, IERR) CLOSE (UNIT = 42) \end{lstlisting} \subsection{Checking user input} \scotch\ provides graph consistency checking routines, both for centralized and distributed graphs. These routines will perform a set of sanity checks on the graph data (\eg, assert that when vertex $v'$ is in the list of neighbors of $v$, then $v$ is in the list of neighbors of $v'$, etc.). Before considering reporting an issue to the \scotch\ team, please run the graph checking routine on your graph structure (similarly, the \texttt{gtst} and \texttt{dgtst} command-line programs check the consistency of graph files). If the graph consistency checking routine reports an error, then all subsequent \scotch\ errors are likely to derive from this non-consistent input. If no error is reported and \scotch\ crashes afterwards, then the issue is most likely on \scotch's side. \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{ADVICE}: In the early stages of development of your program and/or in debug mode, always call the relevant \scotch\ graph checking routine (\texttt{SCOTCH\_\lbt graph\lbt Check()} or \texttt{SCOTCH\_\lbt dgraph\lbt Check()} before launching partitioning tasks. \end{minipage}} \end{center} \subsection{Basic use of \scotch} The behavior of \scotch\ can be parametrized in many ways (threading, strategy strings, etc.). However, routines have been designed for a simplified use, for graph partitioning, static mapping, and sparse mapping ordering. \subsubsection{Graph partitioning} \begin{lstlisting}[style=language-c] SCOTCH_Strat stradat; SCOTCH_Graph grafdat; SCOTCH_Num vertnbr; SCOTCH_Num partnbr; SCOTCH_Num * parttab; SCOTCH_StratInit (&stradat); /* Default strategy will be used */ SCOTCH_graphInit (&grafdat); ... /* Fill-in graph structure */ SCOTCH_graphSize (&grafdat, &vertnbr, NULL); parttab = (SCOTCH_Num *) malloc (vertnbr * sizeof (SCOTCH_Num)); partnbr = ... /* Set number of parts */ SCOTCH_graphPart (&grafdat, partnbr, &stradat, parttab); SCOTCH_graphExit (&grafdat); SCOTCH_StratExit (&stradat); \end{lstlisting} \begin{lstlisting}[style=language-f] doubleprecision :: stradat (SCOTCH_STRATDIM) doubleprecision :: grafdat (SCOTCH_GRAPHDIM) integer(SCOTCH_NUMSIZE) :: vertnbr integer(SCOTCH_NUMSIZE), allocatable :: parttab (:) integer :: ierr ierr = 0 call scotchfstratinit (stradat (1), ierr) call scotchfgraphinit (grafdat (1), ierr) ... ! Fill-in graph structure call scotchfgraphsize (grafdat (1), vertnbr, grafdat (1), ierr) allocate (parttab (vertnbr)) partnbr = ... ! Set number of parts call scotchfgraphpart (grafdat (1), partnbr, stradat (1), parttab (1), ierr) call scotchfgraphexit (grafdat (1)) call scotchfstratexit (stradat (1)) \end{lstlisting} \subsubsection{Static mapping} Static mapping is carried out in the same way as graph partitioning. The sole difference is that, instead of providing a number of parts, one has to provide a target architecture, on a prescribed topology. See the \scotch\ user's manual for all the available sorts of target architectures, including how to turn a graph into a target architecture. \subsubsection{Sparse matrix ordering} \subsection{Multi-threading} Since version \texttt{v7.0}, \scotch\ implements a dynamic thread management system. \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{RULE}: Only activate multi-threaded, distributed memory algorithms at compile-time if your local MPI implementation supports it. \noi \textbf{ADVICE}: 4 to~8 threads per MPI process is a good compromise in terms of performance. \end{minipage}} \end{center} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/handson/h_r.tex000066400000000000000000000054241514310134000254410ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : h_r.tex % % Sujet : Hands-on guide % % Running Scotch % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Running \scotch} In addition to the functions it provides through the \scotch\ and \ptscotch\ libraries, the \scotch\ project provides a set of standalone programs to perform basic functions: graph and target architecture management, partitioning and mapping, and sparse matrix reordering. Centralized-memory programs can be launched directly from the command line, while distributed-memory program, based on MPI, have to be launched through a specific program like \texttt{mpiexec} or \texttt{mpirun}, depending on the MPI implementations. \subsection{Multi-threading} Since version \texttt{v7.0}, \scotch\ implements a dynamic thread management system. Without specific user instruction, \scotch\ programs and routines will try to use all the threads available on the node. The user can coerce the behavior of \scotch\ at run time by using the \texttt{SCOTCH\_\lbt PTHREAD\_\lbt NUMBER} environment variable, which can override the \texttt{-DSCOTCH\_\lbt PTHREAD\_\lbt NUMBER=x} definition provided at compile time. Setting its value to \texttt{-1} lets the software use all the threads available, while a positive value defines the maimum number of threads that can be used at run time, among all the available threads. \begin{lstlisting}[style=language-b] % export SCOTCH_PTHREAD_NUMBER=2 % gpart 5 /tmp/brol.grf /tmp/brol.map -vmt % export SCOTCH_PTHREAD_NUMBER=4 % gpart 5 /tmp/brol.grf /tmp/brol.map -vmt % export SCOTCH_PTHREAD_NUMBER=-1 % gpart 5 /tmp/brol.grf /tmp/brol.map -vmt \end{lstlisting} When running \ptscotch\ in a multi-threaded way, and in case several MPI processes are mapped onto the same compute nodes, it is important to ensure that each of these processes will not try to create as many threads as it can on its node. Else, a plethora of competing threads would lead to huge performance loss on each node. Options can be passed to the \texttt{mpiexec} command to make sure each MPI process spawned on some node is assigned a non-overlapping set of thread slots, within which it can safely create a smaller set of threads. \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{ADVICE}: Make sure MPI processes have dedicated, non-overlapping, thread slots attached to them, so that the threads they may create will not overlap and compete for the same thread slots on the same compute nodes. \noi \textbf{ADVICE}: In case non-overlapping thread slots cannot be created for MPI processes, coerce \scotch\ to using only one thread per MPI process. \end{minipage}} \end{center} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/handson/h_t.tex000066400000000000000000000074651514310134000254520ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : h_t.tex % % Sujet : Hands-on guide % % Troubleshooting % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Troubleshooting} Although \scotch\ is a mature and extensively tested software, it is still possible that remaining bugs may show off in specific cases, or that specific configurations and graph topologies may induce an exceptional behavior (poor partition quality, etc.). Most systematic errors, which occur when using \scotch\ for the first time, are due to configuration issues, such as integer type mismatch (see Section~\ref{sec-c-integer}). These errors can be ruled out quite quickly, \eg\ by comparing the sizes of integer types used by the application and by \scotch, etc. \\ In case of execution errors (\eg, memory shortage, or other run-time errors), \scotch\ routines will output an error message on the standard error stream, and either return an error value or terminate the program, depending on the \scotch\ error handling library against which the program is linked (see Section~\ref{sec-c-scotcherr}). Debug compilation flags can make \scotch\ perform more internal checks and provide finer insights into execution issues. Of course, the level of extra sanity checking impacts compute time. The most relevant debugging level for assessing issues is obtained by compiling \scotch\ with the flag \texttt{-DSCOTCH\_\lbt DEBUG\_\lbt ALL}. \\ \subsection{Troubleshooting check-list} \begin{enumerate} \item Check whether the \scotch\ test programs run without errors. \item Check that your execution environment does not fall into the categories listed in Section~\ref{sec-execution-issues}; if yes, apply the provided workarounds, if they exist. \item Check integer size match between your code and the \libscotch, using the library function \texttt{SCOTCH\_\lbt numSizeof()}. This general sanity check may be beneficially included in all software linked against the \libscotch\ library. \item In case \scotch\ works for small cases, yet produces ``out of memory'' errors for bigger cases when the number of vertices and/or edges nears the billion, \scotch\ must be recompiled in 64-bit integer mode, by setting the \texttt{INTSIZE64} flag (see Section~\ref{sec-c-integer}); the \texttt{IDXSIZE64} flag should always be set on current architectures. \item Apply the \scotch\ input data consistency checking routines (\eg, \texttt{SCOTCH\_\lbt graph\lbt Check()}, \texttt{SCOTCH\_\lbt dgraph\lbt Check()}, etc.) before calling partitioning or ordering routines. \item Compile \scotch\ with symbolic debugging options, so that system error messages (\eg, stack traces) are as informative as possible. \item Whenever possible, run a memory checker (\eg, \textsc{Valgrind}) on the executables. Alternately, use a memory library that allows for consistency checking (\eg, by setting the \texttt{MALLOC\_\lbt CHECK\_} environment variable when using the \textsc{glibc}). Alternately, compile \scotch\ with the \texttt{-DCOMMON\_\lbt MEMORY\_\lbt CHECK} flag, to activate a (minimal) memory consistency checking in \scotch. \item Whenever possible, try to find the smallest possible reproducer, in terms of graph size and/or number of nodes and threads. \end{enumerate} \begin{center} \framebox{\begin{minipage}[t]{0.9\textwidth}% \noi \textbf{ADVICE}: Configure your execution environment so that error messages are collected and displayed to the end user. For \ptscotch, this may require to tweak your MPI execution environment so as to funnel error messages from remote nodes. \noi \textbf{RULE}: Before reporting a bug to the \scotch\ team, always run \scotch\ in debug mode and collect its error messages from the standard error stream. \end{minipage}} \end{center} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/000077500000000000000000000000001514310134000236205ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/Makefile000066400000000000000000000045701514310134000252660ustar00rootroot00000000000000## Copyright 2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## VERSION = 7.0 MMAN = scotch_maint$(VERSION) FLAGS = -sPAPERSIZE=a4 DEPS = $(wildcard *.tex) $(wildcard *.eps) ../version.tex MANS = $(MMAN).ps.gz $(MMAN).pdf CP = cp -f RM = rm -f .PHONY : clean default install realclean default : $(MANS) %.eps : %.fig fig2dev -L eps $(<) $(@) %.dvi : %.tex $(DEPS) latex $(<) -bibtex $(*) latex $(<) latex $(<) %.ps : %.dvi dvips $(FLAGS) $(<) $(MMAN).pdf : m.dvi dvipdf $(FLAGS) $(<) $(@) $(MMAN).ps.gz : m.ps gzip -9 -c < $(<) > $(@) install : $(MANS) -$(CP) $(MMAN).ps.gz ../../ -$(CP) $(MMAN).pdf ../../ clean : -$(RM) *~ m.aux m.blg m.log m.out m.toc realclean : clean -$(RM) *~ m.bbl *dvi m.ps $(MMAN)* scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m.tex000066400000000000000000000122321514310134000245760ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : m.tex % % Sujet : Maintenance manual % % Document body % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Formatage et pagination. \documentclass{article} \usepackage{a4} \usepackage{courier} \usepackage{fancyvrb} \usepackage{url} \usepackage{hyperref} \usepackage{breakurl} \hypersetup{pdfborder={0 0 0},colorlinks=false} \usepackage[dvips]{graphicx} \usepackage{xspace} \usepackage{listings} % http://mirrors.fe.up.pt/pub/CTAN/macros/latex/contrib/listings/listings.pdf \lstset{ basicstyle=\footnotesize\ttfamily, frame=single, numbers=left, numberstyle=\tiny, stepnumber=1, columns=fullflexible, showstringspaces=false, % tabsize=1, breaklines=true, breakatwhitespace=false, } \lstdefinestyle{language-b} { language=bash, } \lstdefinestyle{language-c} { language=C, } \lstdefinestyle{language-f} { language=Fortran, } \sloppy % Get rid of overfull hbox'es \renewcommand{\baselinestretch}{1.05} % Height of linex x 1.05 \setcounter{secnumdepth}{3} % Numbered sub-subsections \setcounter{tocdepth}{3} % Sub-subsections in table of contents %% Macros and useful commands. \makeatletter \@definecounter{enumv} % 8 levels of itemization \@definecounter{enumvi} \@definecounter{enumvii} \@definecounter{enumviii} \def\itemize{\ifnum \@itemdepth >8 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi} \let\enditemize =\endlist \def\@iteme[#1]{\if@noparitem \@donoparitem % Item long pour options \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}\fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \setbox\@tempboxa\hbox{#1}\relax \hskip \itemindent \hskip -\parindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa > \labelwidth \box\@tempboxa\hfil\break \else \hbox to\labelwidth{\box\@tempboxa\hfil}\relax \hskip \labelsep \fi \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi \ignorespaces} \def\iteme{\@ifnextchar [{\@iteme}{\@noitemargtrue \@iteme[\@itemlabel]}} \let\@Hxfloat\@xfloat \def\@xfloat#1[{\@ifnextchar{H}{\@HHfloat{#1}[}{\@Hxfloat{#1}[}} \def\@HHfloat#1[H]{% \expandafter\let\csname end#1\endcsname\end@Hfloat \vskip\intextsep\def\@captype{#1}\parindent\z@ \ignorespaces} \def\end@Hfloat{\vskip \intextsep} \makeatother \newcommand{\bn}{\begin{displaymath}} % Equations non-numerotees \newcommand{\en}{\end{displaymath}} \newcommand{\bq}{\begin{equation}} % Equations numerotees \newcommand{\eq}{\end{equation}} \newcommand{\lbo}{\linebreak[0]} \newcommand{\lbt}{\linebreak[2]} \newcommand{\noi}{{\noindent}} % No indentation \newcommand{\spa}{{\protect \vspace{\bigskipamount}}} % Vertical spacing \newcommand{\eg}{{e\@.g\@.}\xspace} % e.g. \newcommand{\ie}{\textit{i\@.e\@.}\xspace} % i.e. \newcommand{\scotch}{\textsc{Scotch}\xspace} % "scotch" \newcommand{\libscotch}{\textsc{libScotch}\xspace} % "libscotch" \newcommand{\ptscotch}{\textsc{PT-Scotch}\xspace} % "PT-Scotch" \newcommand{\libptscotch}{\textsc{libPTScotch}\xspace} % "libPTScotch" \newcommand{\esmumps}{\textsc{esMUMPS}\xspace} % "esMUMPS" \newcommand{\UB}{{\rm UB}} % UB %% Version du document. \input{../version.tex} %% Page de garde. \begin{document} \date{\today} \title{\includegraphics{../misc/scotch_logo_color.ps}\\[1em] {\LARGE\bf \scotch\ \textsc{\scotchver} Maintainer's Guide}\\[1em]% {\normalsize (version \scotchversub)} } \author{Fran\c cois Pellegrini\\ Universit\'e de Bordeaux \& LaBRI, UMR CNRS 5800\\ TadAAM team, INRIA Bordeaux Sud-Ouest\\ 351 cours de la Lib\'eration, 33405 TALENCE, FRANCE\\ {\tt francois.pellegrini@u-bordeaux.fr}} \maketitle \begin{abstract} This document describes some internals of the \libscotch\ library. \end{abstract} \clearpage \tableofcontents \input{m_i.tex} % Introduction \input{m_n.tex} % Naming conventions \input{m_s.tex} % Structure of the libScotch \input{m_f.tex} % File formats \input{m_d.tex} % Data stuctures explanation \input{m_c.tex} % Code explanation \input{m_m.tex} % Procedures for update and release \end{document} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_c.tex000066400000000000000000001130121514310134000250760ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Title : m_c.tex % % Subject : Maintenance manual of % % Scotch % % Code explanations % % Author : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Code explanations} \label{sec-code} This section explains some of the most complex algorithms implemented in \scotch\ and \ptscotch. \subsection{\texttt{dgraphCoarsenBuild()}} The \texttt{dgraphCoarsenBuild()} routine creates a coarse distributed graph from a fine distributed graph, using the result of a distributed matching. The result of the matching is available on all MPI processes as follows: \begin{itemize} \iteme[\texttt{coardat.\lbt multlocnbr}] The number of local coarse vertices to be created. \iteme[\texttt{coardat.\lbt multloctab}] The local multinode array. For each local coarse vertex to be created, it contains two values. The first one is always positive, and represents the global number of the first local fine vertex to be mated. The second number can be either positive or negative. If it is positive, it represents the global number of the second local fine vertex to be mated. If it is negative, its opposite, minus two, represents the local edge number pointing to the remote vertex to be mated. \iteme[\texttt{coardat.\lbt procgsttax}] Array (restricted to ghost vertices only) that records on which process is located each ghost fine vertex. \end{itemize} \subsubsection{Creating the fine-to-coarse vertex array} In order to build the coarse graph, one should create the array that provides the coarse global vertex number for all fine vertex ends (local and ghost). This information will be stored in the \texttt{coardat.\lbt coargsttax} array. Hence, a loop on local multinode data fills \texttt{coardat.\lbt coargsttax}. The first local multinode vertex index is always local, by nature of the matching algorithm. If the second vertex is local too, \texttt{coardat.\lbt coargsttax} is filled instantly. Else, a request for the global coarse vertex number of the remote vertex is forged, in the \texttt{vsnddattab} array, indexed by the current index \texttt{coarsndidx} extracted from the neighbor process send index table \texttt{nsndidxtab}. Each request comprises two numbers: the global fine number of the remote vertex for which the coarse number is seeked, and the global number of the coarse multinode vertex into which it will be merged. Then, an all-to-all-v data exchange by communication takes place, using either the \texttt{dgraph\lbt Coarsen\lbt Build\lbt Ptop()} or \texttt{dgraph\texttt Coarsen\lbt Build\lbt Coll()} routines. Apart from the type of communication they implement (either point-to-point or collective), these routines do the same task: they process the pairs of values sent from the \texttt{vsnddattab} array. For each pair (the order of processing is irrelevant), the \texttt{coargsttax} array of the receiving process is filled-in with the global multinode value of the remotely mated vertex. Hence, at the end of this phase, all processes have a fully valid local part of the \texttt{coargsttax} array; no value should remain negative (as set by default). Also, the \texttt{nrcvidxtab} array is filled, for each neighbor process, of the number of data it has sent. This number is preserved, as it will serve to determine the number of adjacency data to be sent back to each neighbor process. Then, data arrays for sending edge adjacency are filled-in. The \texttt{ercvdsptab} and \texttt{ercvcnttab} arrays, of size \texttt{procglbnbr}, are computed according to the data stored in \texttt{coardat.\lbt dcntglbtab}, regarding the number of vertex- and edge-related data to exchange. By way of a call to \texttt{dgraphHaloSync()}, the ghost data of the \texttt{coargsttax} array are exchanged. Then, \texttt{edgelocnbr}, an upper bound on the number of local edges, as well as \texttt{ercvdatsiz} and \texttt{esnddatsiz}, the edge receive and send array sizes, respectively. Then, all data arrays for the coarse graph are allocated, plus the main adjacency send array \texttt{esnddsptab}, its receive counterpart \texttt{ercvdattab}, and the index send arrays \texttt{esnddsptab} and \texttt{esndcnttab}, among others. Then, adjacency send arrays are filled-in. This is done by performing a loop on all processes, within which only neighbor processes are actually considered, while index data in \texttt{esnddsptab} and \texttt{esndcnttab} is set to $0$ for non-neighbor processes. For each neighbor process, and for each vertex local which was remotely mated by this neighbor process, the vertex degree is written in the \texttt{esnddsptab} array, plus optionally its load, plus the edge data for each of its neighbor vertices: the coarse number of its end, obtained through the \texttt{coargsttax} array, plus optionally the edge load. At this stage, two edges linking to the same coarse multinode will not be merged together, because this would have required a hash table on the send side. The actual merging will be performed once, on the receive side, in the next stage of the algorithm. \subsection{\texttt{dgraphFold()} and \texttt{dgraphFoldDup()}} The \texttt{dgraph\lbt Fold()} routine creates a ``folded'' distributed graph from the input distributed graph. The folded graph is such that it spans across only one half of the processing elements of the initial graph (either the first half, or the second half). The purpose of this folding operation is to preserve a minimum average number of vertices per processing element, so that communication cost is not dominated by message start-up time. In case of an odd number of input processing elements, the first half of them is always bigger that the second. The \texttt{dgraph\lbt Fold\lbt Dup()} routine creates two folded graphs: one for each half. Hence, each processing element hosting the initial graph will always participate in hosting a new graph, which will depend on the rank of the processing element. When the MPI implementation supports multi-threading, and multi-threading is activated in \scotch, both folded graphs are created concurrently. The folding routines are based on the computation of a set of (supposedly efficient) point-to-point communications between the \textit{sender processes}, which will not retain any graph data, and the \textit{receiver processes}, which will host the folded graph. However, in case of unbalanced vertex distributions, overloaded receiver processes (called \textit{sender receiver processes}) may also have to send their extra vertices to underloaded receiver processes. A receiver process may receive several chunks of vertex data (including their adjacency) from several sender processes. Hence, folding amounts to a redistribution of vertex indices across all receiver processes. In particular, end vertex indices have to be renumbered according to the global order in which the chunks of data are exchanged. This is why the computation of these exchanges, by way of the \texttt{dgraph\lbt Fold\lbt Comm()} routine, has to be fully deterministic and reproducible across all processing elements, to yield consistent communication data. The result of this computation is a list of point-to-point communications (either all sends or receives) to be performed by the calling process, and an array of sorted global vertex indices, associated with vertex index adjustment values, to convert global vertex indices in the adjacency of the initial graph into global vertex indices in the adjacency of the folded graph. This array can be used, by way of dichotomy search, to find the proper adjustment value for any end vertex number. To date, the \texttt{dgraph\lbt Redist()} routine is not based on a set of point-to-point communications, but collectives. It could well be redesigned to re-use the mechanisms implemented here, with relevant code factorization. \subsubsection{\texttt{dgraphFoldComm()}} The \texttt{dgraphFoldComm()} routine is at the heart of the folding operation. It computes the sets of point-to-point communications required to move vertices from the sending half of processing elements to the receiving half, trying to balance the folded graph as much as possible in terms of number of vertices. For receiver processes, it also computes the data needed for the renumbering of the adjacency arrays of the graph chunks received from sender (or sender receiver) processes. It is to be noted that the end user and the \scotch\ algorithms may have divergent objectives regarding balancing: in the case of a weighted graph representing a computation, where some vertices bear a higher load than others, the user may want to balance the load of its computations, even if it results in some processing elements having less vertices than others, provided the sums of the loads of these vertices are balanced across processing elements. On the opposite, the algorithms implemented in \scotch\ operate on the vertices themselves, irrespective of the load values that is attached to them (save for taking them into account for computing balanced partitions). Hence, what matters to \scotch\ is that the number of vertices is balanced across processing elements. Whenever \scotch\ is provided with an unbalanced graph, it will try to rebalance it in subsequent computations (\eg, folding). However, the bulk of the work, on the initial graph, will be unbalanced according to the user's distribution. During a folding onto one half of the processing elements, the processing elements of the other half will be pure senders, that need to dispose of all of their vertices and adjacency. Processing elements of the first half will likely be receivers, that will take care of the vertices sent to them by processing elements of the other half. However, when a processing element in the first half is overloaded, it may behave as a sender rather than a receiver, to dispose of its extra vertices and send it to an underloaded peer. The essential data that is produced by the \texttt{dgraph\lbt Fold\lbt Comm()} routine for the calling processing element is the following: \begin{itemize} \iteme[\texttt{commmax}] The maximum number of point-to-point communications that can be performed by any processing element. The higher this value, the higher the probability to spread the load of a highly overloaded processing element to (underloaded) receivers. In the extreme case where all the vertices are located on a single processing element, $(\mbox{\texttt{procglbnbr}} - 1)$ communications would be necessary. To prevent such a situation, the number of communications is bounded by a small number, and receiver processing elements can be overloaded by an incoming communication. The algorithm strives to provide a \textit{feasible} communication scheme, where the current maximum number of communications per processing element suffices to send the load of all sender processing elements. When the number of receivers is smaller than the number of senders (in practice, only by one, in case of folding from an odd number of processing elements), at least two communications have to take place on some receiver, to absorb the vertices sent. The initial maximum number of communications is defined by \texttt{DGRAPH\lbt FOLD\lbt COMM\lbt NBR}; \iteme[\texttt{commtypval}] The type of communication and processing that the processing element will have to perform: either as a sender, a receiver, or a sender receiver. Sender receivers will keep some of their vertex data, but have to send the rest to other receivers. Sender receivers do send operations only, and never receive data from a sender; \iteme[\texttt{commdattab}] A set of slots, of type \texttt{Dgraph\lbt Fold\lbt Comm\lbt Data}, that describe the point-to-point communications that the processing element will initiate on its side. Each slot contains the number of vertices to send or receive, and the target or source process index, respectively; \iteme[\texttt{commvrttab}] A set of values associated to each slot in \texttt{comm\lbt dat\lbt tab}, each of which contains the global index number of the first vertex of the graph chunk that will be transmitted; \iteme[\texttt{proccnttab}] For receiver processes only, the count array of same name of the folded distributed graph structure; \iteme[\texttt{vertadjnbr}] For receiver processes only, the number of elements in the dichotomy array \texttt{vert\lbt adj\lbt tab}; \iteme[\texttt{vertadjtab}] A sorted array of global vertex indices. Each value represent the global start index of a graph chunk that will been exchanged (or which will remain in place on a receiver processing element); \iteme[\texttt{vertdlttab}] The value which has to be added to the indices of the vertices in the corresponding chunk represented in \texttt{vert\lbt adj\lbt tab}. This array and the latter serve to find, by dichotomy, to which chunk an end vertex belongs, and modify its global vertex index in the edge array in the receiver processing element. Although \texttt{vert\lbt adj\lbt tab} and \texttt{vert\lbt dlt\lbt tab} contain strongly related information, they are separate arrays, for the sake of memory locality. Indeed, \texttt{vert\lbt adj\lbt tab} will be subject to a dichotomy search, involving many memory reads, before the proper index is found and a single value is retrieved from the \texttt{vert\lbt dlt\lbt tab} array. \end{itemize} The first stage of the algorithm consists in sorting a global process load array in ascending order, in two parts: the sending half, and the receiving half. These two sorted arrays will contain the source information which the redistribution algorithm will use. Because the receiver part of the sort array can be modified by the algorithm, it is recomputed whenever \texttt{commmax} is incremented. It is the same for \texttt{sort\lbt snd\lbt bas}, the index of the first non-empty sender in the sort array. \\ In a second stage, the algorithm will try to compute a valid communication scheme for vertex redistribution, using as many as \texttt{commmax} communications (either sends or receives) per processing element. During this outermost loop, if a valid communication scheme cannot be created, then \texttt{commmax} is incremented and the communication scheme creation algorithm is restarted. The initial value for \texttt{commmax} is \texttt{DGRAPH\lbt FOLD\lbt COMM\lbt NBR}. The construction of a valid communication scheme is performed within an intermediate loop. At each step, a candidate sender process is searched for: either a sender process which has to dispose of all of its vertices, or an overloaded receiver process, depending on which has the biggest number of vertices to send. If candidate senders can no longer be found, the stage has succeeded with the current value of \texttt{commmax}; if a candidate sender has been found but a candidate receiver has not, the outermost loop is restarted with an incremented \texttt{commmax} value, so as to balance loads better. Every time a sender has been found and one or more candidate receivers exist, an inner loop creates as many point-to-point communications as to spread the vertices in chunks, across one or more available receivers, depending on their capacity (\ie, the number of vertices they can accept). If the selected sender is a sender receiver, the inner loop will try to interleave small communications from pure senders with communications of vertex chunks from the selected sender receiver. The purpose of this interleaving is to reduce the number of messages per process: a big message from a sender receiver is likely to span across several receivers, which will then perform only a single receive communication. By interleaving a small communication on each of the receivers involved, the latter will only have to perform one more communication (\ie, two communications only), and the interleaved small senders will be removed off the list, reducing the probability that afterwards many small messages will sent to the same (possibly eventually underloaded) receiver. \\ In a third stage, all the data related to chunk exchange, which was recorded in a temporary form in the \texttt{vertadjtab}, \texttt{vertdlttab} and \texttt{slotsndtab} arrays, is compacted to remove empty slots and to form the final \texttt{vertadjtab} and \texttt{vertdlttab} arrays to be used for dichotomy search. \\ The data structures that are used during the computation of vertex global index update arrays are the following: \begin{itemize} \iteme[\texttt{vertadjtab} and \texttt{vertdlttab}] These two arrays have been presented above. They are created only for receiver processes, and will be filled concurrently. They are of size $((\mbox{\texttt{commmax}} + 1) * \mbox{\texttt{orgprocnbr}})$, because in case a process is a sender receiver, it has to use a first slot to record the vertices it will keep locally, plus \texttt{commmax} for outbound communications. During the second stage of the algorithm, for some slot \texttt{i}, \texttt{vertadjtab[i]} holds the start global index of the chunk of vertices that will be kept, sent or received, and \texttt{vertdlttab[i]} holds the number of vertices that will be sent or received. During the third stage of the algorithm, all this data will be compacted, to remove empty slots. After this, \texttt{vertadjtab} will be an array of global indices used for dichotomy search in \texttt{dgraph\lbt Fold()}, and \texttt{vertdlttab[i]} will hold the adjustment value to apply to vertices whose global indices are comprised between \texttt{vertadjtab[i]} and \texttt{vertadjtab[i+1]}. \iteme[\texttt{slotsndtab}] This array only has cells for receiver-slide slots, hence a size of $((\mbox{\texttt{commmax}} + 1) * \mbox{\texttt{procfldnbr}})$ items. During the second stage of the algorithm, it is filled so that, for any non-empty communication slot \texttt{i} in \texttt{vertadjtab} and \texttt{vertdlttab}, representing a receive operation, \texttt{slotsndtab[i]} is the slot index of the corresponding send operation. During the third stage of the algorithm, it is used to compute the accumulated vertex indices across processes. \end{itemize} Here are some examples of redistributions that are computed by the \texttt{dgraph\lbt Fold\lbt Comm()} routine. \begin{lstlisting} orgvertcnttab = { 20, 20, 20, 20, 20, 20, 20, 1908 } partval = 1 vertglbmax = 1908 Proc [0] (SND) 20 -> 0 : { [4] <- 20 } Proc [1] (SND) 20 -> 0 : { [5] <- 20 } Proc [2] (SND) 20 -> 0 : { [6] <- 20 } Proc [3] (SND) 20 -> 0 : { [6] <- 20 } Proc [4] (RCV) 20 -> 512 : { [0] -> 20 }, { [7] -> 472 } Proc [5] (RCV) 20 -> 512 : { [1] -> 20 }, { [7] -> 472 } Proc [6] (RCV) 20 -> 512 : { [2] -> 20 }, { [7] -> 452 }, { [3] -> 20 } Proc [7] (RSD) 1908 -> 512 : { [4] <- 472 }, { [5] <- 472 }, { [6] <- 452 } commmax = 4 commsum = 14 \end{lstlisting} We can see in the listing above that some interleaving took place on the first receiver (proc.~4) before the sender receiver (proc.~7) did its first communication towards it. \begin{lstlisting} orgvertcnttab = { 0, 0, 0, 20, 40, 40, 40, 100 } partval = 1 vertglbmax = 100 Proc [0] (SND) 0 -> 0 : Proc [1] (SND) 0 -> 0 : Proc [2] (SND) 0 -> 0 : Proc [3] (SND) 20 -> 0 : { [4] <- 20 } Proc [4] (RCV) 40 -> 60 : { [3] -> 20 } Proc [5] (RCV) 40 -> 60 : { [7] -> 20 } Proc [6] (RCV) 40 -> 60 : { [7] -> 20 } Proc [7] (RSD) 100 -> 60 : { [5] <- 20 }, { [6] <- 20 } commmax = 4 commsum = 6 \end{lstlisting} In the latter case, one can see that the pure sender that has been interleaved (proc.~3) sufficed to fill-in the first receiver (proc.~4), so the first communication of the sender receiver (proc.~7) was towards the next receiver (proc.~5). \subsection{\texttt{dmeshDgraphDual()}} The \texttt{dmeshDgraphDual()} routine creates a dual distributed graph of type \texttt{Dgraph} from a distributed mesh of type \texttt{Dmesh}. It can be seen as the distributed-memory version of the \texttt{meshGraphDual()} routine. An edge will be created between two elements only if these elements have at least \texttt{noconbr} nodes in common. At the time being, the \texttt{Dmesh} data structure only stores the adjacency from local element vertices to node vertices, using their global, based, numbering. Consequently, building the element-to-element connectivity operates in three phases: firstly, to redistribute element-to-node edge information so as to build the node-to-element adjacency of each node; secondly, to provide relevant node adjacencies to processes requiring them (possibly duplicating the same adjacency on multiple processes); this will allow, in a third phase, to build the element-to-element adjacency of each local element. \subsubsection{Determining the node vertex range} In a preliminary sweep over every local element-to-node edge array, the local maximum global node index \texttt{vnodlocmax} is computed. Then, by way of an all-reduce-max operation, the global maximum global node index \texttt{vnodglbmax} is obtained. If the node global indices are all used, then the global number of vertex nodes, \texttt{vnodglbnbr}, is equal to $\mbox{\texttt{vnodglbmax}} - \mbox{\texttt{baseval}} + 1$, as valid node vertex global indices range from \texttt{baseval} to \texttt{vnodglbmax}, included. In debug mode, the local minimum global node index \texttt{vnodlocmin} is also computed, and all-reduced-min into \texttt{vnodglbmin}, which should be equal to \texttt{baseval}. Knowing the global node vertex index range is necessary to evenly distribute node vertex data across all processes, assuming node vertices will have an equivalent number of neighbors overall. The absence of some node vertex indices in this range will not break the algorithm (isolated node vertices will be created in the first phase, which will not be propagated anywhere in the second phase), but may cause load imbalance when handling the node vertices on each process. \subsubsection{Creating node adjacencies} In order to build node vertex adjacencies across all processes, some all-to-all communication must take place, in order to send element-to-node edge data to the processes that will host the given node vertices, turning the gathered data into node-to-element data. All-to-all communication of edges will be controlled by four arrays of \texttt{int}'s, of size \texttt{procglbnbr} each: \texttt{esnd\lbt cnt\lbt tab}, the edge send count array; \texttt{esnd\lbt dsp\lbt tab}, the edge send displacement array; \texttt{ercv\lbt cnt\lbt tab}, the edge receive count array; and \texttt{ercv\lbt dsp\lbt tab}, the edge receive displacement array. The edge data to be sent will be placed into \texttt{esnddattab}, the edge send data array, while the received edge data will be available in \texttt{ercvdattab}, the edge receive data array. In order to determine how many edges have to be sent to each process, per-process singly linked lists are built, by way of two arrays: \texttt{prfr\lbt loc\lbt tab} (``\mbox{(per-)}process first (index), local array''), of size \texttt{proc\lbt glb\lbt nbr} since there must be as many lists as there are destination processes, and \texttt{eene\lbt loc\lbt tax} (``element edge next (index), local based array''), of size $(2 * \texttt{eelm\lbt loc\lbt nbr})$ since each of the local element-to-node edges has to be chained to (only) one list, to be sent to the relevant process, and each chaining will require two data: the global element number (which could not be retrieved in $O(1)$ time else), and the edge index of the next edge in the chaining (which will be the sentinel value \texttt{-1} at the end of the list). All the cells of \texttt{prfr\lbt loc\lbt tab} are initialized with \texttt{-1}, the end-of-list sentinel, and all cells of \texttt{esnd\lbt cnt\lbt tab} are initialized to $0$, as this array will be used to count the number of edges to send to each process. Then, the adjacencies of all local element vertices are traversed. For each element-to-node edge of index $e$, the index $p$ of the process which will holds the node vertex is computed in $O(1)$ time, using the \texttt{dmesh\lbo Dgraph\lbt Dual\lbt Proc\lbo Num\,()} routine. The edge data is then chained at the head of the linked list for this process: $\texttt{prfr\lbt loc\lbt tab[}p\texttt{]}$ stores the index of the edge, while $\texttt{eene\lbt loc\lbt tax[}2 * e\texttt{]}$ stores the element global index, and $\texttt{eene\lbt loc\lbt tax[}2 * e + 1 \texttt{]}$ receives the old value of $\texttt{prfr\lbt loc\lbt tab[}p\texttt{]}$, to maintain the forward chaining. Also, $\texttt{esnd\lbt loc\lbt tab[}p\texttt{]}$ is increased by $2$, since two more data will be sent to $p$ in the upcoming all-to-all exchange. Then, the contents of \texttt{esnd\lbt cnt\lbt tab} are all-to-all exchanged to fill-in \texttt{ercv\lbt cnt\lbt tab}, which indicates the amount of edge data to be received from each process; the sum of its cells gives \texttt{ercv\lbt dat\lbt siz}, which amounts to twice the number of local node-to-element edges to be created. The \texttt{vnod\lbt loc\lbt tax} and \texttt{enod\lbt loc\lbt tax} arrays can then be allocated, to hold the node vertex indices and edge adjacency, respectively. Then, from \texttt{esnd\lbt cnt\lbt tab} and \texttt{ercv\lbt cnt\lbt tab} are derived the displacement arrays \texttt{esnd\lbt dsp\lbt tab} and \texttt{ercv\lbt dsp\lbt tab}, respectively. Then, the \texttt{esnd\lbt dat\lbt tab} and \texttt{ercv\lbt dat\lbt tab} temporary arrays can be allocated, after those that will remain in memory longer. Then, the per-process linked lists are traversed, and the element-to-node edge data, now turned into node-to-element edge data, is copied into the \texttt{esnd\lbt dat\lbt tab} array, after which an all-to-allv data exchange makes it available in the \texttt{ercv\lbt dat\lbt tab} array of each process. Then, the received edge array is traversed, to count in \texttt{vnod\lbt loc\lbt tax} the number of edges per node vertex. Once this counting is done, the \texttt{vnod\lbt loc\lbt tax} is turned into a displacement array, which will be used to place node-to-element edges at their proper place in \texttt{enod\lbt loc\lbt tax}. After this, the the received edge array is traversed again to record the node-to-element edges in \texttt{enod\lbt loc\lbt tax}, and the contents of \texttt{vnod\lbt loc\lbt tax} are restored. \subsubsection{Making node adjacencies available to concerned elements} To create element-to-element adjacencies from element-to-node adjacencies, the node-to-element adjacencies of all nodes used as neighbors of some element vertex have to be copied to the process owning this element vertex. Hence, the same node adjacency may have to be sent to several processes at the same time. In order to determine to which process the adjacency of some node vertex has to be sent, one can take advantage of the order in which edge data have been received in the \texttt{ercv\lbt dat\lbt tab} array: the adjacency of a node has to be sent to some process $p$ if the global node index of this node vertex appears in the sub-array of \texttt{ercv\lbt dat\lbt tab} starting from index $\texttt{ercv\lbt dsp\lbt tab[}p\texttt{]}$ and ending before index $\texttt{ercv\lbt dsp\lbt tab[}p+1\texttt{]}$ (or \texttt{ercv\lbt dat\lbt siz} for the last sub-array). However, a node vertex adjacency needs only be sent once to any process, even if more than one of its local elements need it. To do so, a local node vertex flag array, \texttt{vnfl\lbt loc\lbt tax}, of size \texttt{vnod\lbt loc\lbt nbr}, will contain the most recent process number requesting the node vertex. Hence, a node vertex adjacency will only be copied once to the node adjacency send data array for this process. All cells of the flag array are initially set to \texttt{-1}, an invalid process number. In a first pass across the \texttt{ercv\lbt dat\lbt tab} array, the number of node data to be sent to each process is computed, and stored in the relevant cell of the \texttt{nsnd\lbt cnt\lbt tab} (``node (data) send count'') array. For each concerned node vertex, the number of data items to be sent is equal to two (the global number of the node, and its degree), plus the number of element neighbors of the node vertex. A node vertex $v$ will be accounted for, for a given process $p$, only if $\texttt{vnfl\lbt loc\lbt tax[}v\texttt{]} < p$, and once the node vertex is accounted for, it is flagged by setting $\texttt{vnfl\lbt loc\lbt tax[}v\texttt{]}$ to $p$. Then, the contents of the \texttt{nsnd\lbt cnt\lbt tab} array are all-to-all exchanged, to produce the \texttt{nrcv\lbt cnt\lbt tab} array. From these two can be derived the \texttt{nsnd\lbt dsp\lbt tab} and \texttt{nrcv\lbt dsp\lbt tab} send and receive displacement arrays, respectively, and \texttt{nsnd\lbt dat\lbt siz} and \texttt{nrcv\lbt dat\lbt siz}, the overall number of data to be sent and received, respectively. The two node data send and receive arrays, \texttt{nsnd\lbt dat\lbt tab} and \texttt{nrcv\lbt dat\lbt tab}, can be allocated with these prescribed sizes. The send array will be allocated last, since it will be freed first, as soon as the data exchange completes. In a second pass across the \texttt{ercv\lbt dat\lbt tab} array, the adjacencies of the nodes that are encountered for the first time in this pass are copied to the \texttt{nsnd\lbt dat\lbt tab} array, one process after the other, using the start indices contained in the \texttt{nsnd\lbt dsp\lbt tab} array. In order not to have to reset the flag array between the two passes, a node vertex $v$ will be accounted for, for a given process $p$, only if $\texttt{vnfl\lbt loc\lbt tax[}v\texttt{]} < (\texttt{proc\lbt glb\lbt nbr} + p)$, and once the node vertex is accounted for, it is flagged by setting $\texttt{vnfl\lbt loc\lbt tax[}v\texttt{]}$ to $(\texttt{proc\lbt glb\lbt nbr} + p)$. Then, an all-to-allv data exchange makes the node adjacency data available in the \texttt{nrcv\lbt dat\lbt tab} array of each process. It is now necessary to make node adjacency available in $O(1)$ time. This is made possible through a hash table \texttt{hnodtab} of type \texttt{Dmesh\lbo Dgraph\lbt Dual\lbt Hash\lbo Node}, which, for each concerned node vertex, will point to the start of this node data (that is, the node degree and node-to-element adjacency) in the \texttt{nrcv\lbt dat\lbt tab} array. Since this hash table will be static (that is, read-only and of immutable size) and must contain all the local nodes, its maximum load capacity is set to $50\,\%$ (and not $25\,\%$ as usually done in \scotch\ degree-related hash tables). Once this hash table array is allocated, the \texttt{nrcv\lbt dat\lbt tab} is traversed to populate it. \subsubsection{Creating the element-to-element adjacencies} The last phase of the algorithm is the building of element-to-element adjacencies. This is performed through a second hash table, \texttt{helmtab}, of type \texttt{Dmesh\lbo Dgraph\lbt Dual\lbt Hash\lbo Edge}. Since the maximum degree of element-to-element adjacencies cannot be known in advance, this hash table may be resized dynamically, and will be loaded at $25\,\%$ capacity to minimize collisions. Its functioning, including resizing, is described in Section~\ref{sec-type-hash-table} of this manual. The local distributed adjacency data for the dual graph will be placed into the \texttt{vert\lbt loc\lbt tax} and \texttt{edge\lbt loc\lbt tax} arrays. Hence, prior to building the element-to-element adjacency, these arrays are allocated. Since the distributed graph will be compact, \texttt{vert\lbt loc\lbt tax} is of size $(\texttt{velm\lbt loc\lbt nbr} + 1)$. Since the number of edges cannot be estimated in advance, the size of the \texttt{edge\lbt loc\lbt tax} array, starting from a plausible size, may have to be dynamically increased during its filling-in, each time by $25\,\%$ more. For each local element, the preexisting element-to-node adjacency is traversed and, for each of the neighbor nodes, the node-to-element adjacency is traversed in turn, being read from \texttt{nrcv\lbt dat\lbt tab} from the index provided by \texttt{hnodtab}. If the neighbor element is not yet present in \texttt{helmtab} for the current local element, it is added to the element hash table, with a neighbor count in the hash table equal to $(\texttt{noconbr} - 1)$, since one common node has already been found. If the neighbor element is already present in \texttt{helmtab} for the current local element, and its neighbor count in the hash table is strictly greater than zero, the neighbor count is decremented. If, in any of the two above cases, the neighbor count reaches zero, the neighbor element is added to the adjacency list of the current element in \texttt{edge\lbt loc\lbt tax}; this latter array is enlarged whenever full. It will be downsized to its exact final size once all the edges have been created. Once the \texttt{vert\lbt loc\lbt tax} and \texttt{edge\lbt loc\lbt tax} arrays are complete, the \texttt{dgraphBuild2\,()} routine is called, to finalize the construction of the distributed dual graph. \subsection{\texttt{dorderCheck()}} The \texttt{dorderCheck()} routine checks the consistency of a distributed ordering of type \texttt{Dorder}. Since distributed orderings are complex structures (see Section~\ref{sec-data-dorder}), checking their global consistency in a scalable way is not trivial. After a distributed ordering is computed, every processing element contains a piece of the inverse permutation array, split into local fragments. Each fragment belongs to a \texttt{Dorder\lbt Cblk} node of type \texttt{DORDER\lbt CBLK\lbt LEAF}, in the form of a \texttt{peri\lbt loc\lbt tab} array and an \texttt{orde\lbt loc\lbt val} index. The index is the start global node vertex index associated with the first value in the array, and array values represent inverse permutation values associated with consecutive indices starting from the provided one. This core inverse permutation data is supplemented with management data, such as the local and global number of node vertices in the ordering. \subsubsection{Checking management data} In order to perform checks on the inverse permutation, management data must be consistent, especially regarding the number of local and global vertex nodes in the permutation. On each process, the list of column blocks is traversed, and the number of local node vertices of leaf column blocks is accumulated locally. It is compared with the preexisting local sum, and summed across all processes to recompute \texttt{vnod\lbt glb\lbt nbr}, the global number of node vertices in the ordering. A maximum reduction is also performed on these values to compute \texttt{vnod\lbt glb\lbt max}, the size of the biggest chunk of data that might be sent from a process to another in the following phase, and to check the consistency of \texttt{baseval} across processes. \subsubsection{Checking permutations} To be scalable, the permutation checking algorithm does not perform any centralization of data. Therefore, the search for duplicate or missing indices has to be performed twice: a first time for the inverse permutation indices, and a second time for the inverse permutation values. In a first phase, all permutation fragments present on a process are gathered into a single local array, \texttt{sort\lbt snd\lbt tab}, of size double of \texttt{vnod\lbt loc\lbt nbr}. This array contains pairs of integer values, made of the global index in the inverse permutation, and the index of the permuted node vertex. All these index values are verified to range from $\mathtt{baseval}$ to $\mathtt{vnodglbnbr} + \mathtt{baseval} - 1$, inclusive. Then, \texttt{sort\lbt snd\lbt tab} arrays are locally sorted by ascending first index, to prepare for the communication rounds that will follow. Indeed, while there are \texttt{vnod\lbt glb\lbt nbr} such pairs with valid indices spread across all processes, they may not collectively represent a valid permutation, \eg, in case of missing or duplicate indices. In a second phase, to start checking the consistency of the permutation, a \texttt{flag\lbt loc\lbt tab} array is created on each process, of a size equal to $\mathtt{vnod\lbt glb\lbt nbr} / \mathtt{proc\lbt glb\lbt nbr}$, within one. Then, $\mathtt{proc\lbt glb\lbt nbr}$ rounds of communication take place. During each round $r$, each process, of rank $\mathtt{proc\lbt loc\lbt num}$, sends a single message to the process of rank $(\mathtt{proc\lbt loc\lbt num} + r) \% \mathtt{proc\lbt glb\lbt nbr}$. This message contains all the permutation pairs that the sender process holds and which are in the range managed by the receiver process in its \texttt{flag\lbt loc\lbt tab} array. Message contents are in fact sub-arrays of the senders local \texttt{sort\lbt snd\lbt tab} arrays, the lower and upper bounds of which are computed by dichotomy, thanks to the arrays being sorted. Transmitting the permutation values along with the permutation indices is not necessary in itself for the algorithm, yet may help for subsequent debugging. Receiving processes read the contents of their message, and flag the received permutation indices in their \texttt{flag\lbt loc\lbt tab} array. Duplicate indices are detected when trying to flag an already flagged index. Missing indices are detected after the last communication round is complete, by checking all \texttt{flag\lbt loc\lbt tab} arrays for un-flagged cells. Transmitting the permutation values along with the permutation indices is not necessary in itself for the algorithm, yet may help in subsequent debugging. The above algorithm guarantees that the inverse permutation fragments collected on every process cover all the node vertices in the distributed ordering. To check the consistency of the inverse permutation data, the values of the pairs in the \texttt{sort\lbt snd\lbt tab} arrays are swapped, and the array is sorted again. Then, the whole flagging algorithm described above is performed anew. This guarantees that all inverse permutation indices are unique, and cover all the node vertices. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_d.tex000066400000000000000000001600311514310134000251020ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Title : m_d.tex % % Subject : Maintenance manual of Scotch % % Data structure explanations % % Author : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Data structure explanations} \label{sec-data} This section explains some of the data structures implemented in \scotch\ and \ptscotch. \subsection{\texttt{Dgraph}} \label{sec-data-dgraph} \subsubsection{Compactness} Like centralized \texttt{Graph}s, distributed graphs can be compact, that is, have their \texttt{vend\lbt loc\lbt tab} array merged with their \texttt{vert\lbt loc\lbt tab} array. In this case, on all processing elements, $\mathtt{vendloctax} = \mathtt{vertloctax} + 1$. However, there may be situations when this expression holds on at least one processing element, while the distributed graph is not compact. It is for instance the case when a processing element holds only one local vertex, and the \texttt{vend\lbt loc\lbt tab} array is allocated just after the \texttt{vert\lbt loc\lbt tab} array, in the same memory group. In order to eliminate such an ambiguity, the \texttt{flagval} field of the \texttt{Dgraph} structure possesses a \texttt{DGRAPH\lbt HAS\lbt VEND\lbo LOC} flag which, when set, indicates that the distributed flag is not compact. Only in the case when this flag is not set can it be considered that the distributed graph is compact. \subsection{\texttt{Dorder}} \label{sec-data-dorder} Distributed orderings are data structures used in \ptscotch\ to represent orderings distributed on a set of processing elements. Like for the centralized ordering of type \texttt{Order} (see Section~\ref{sec-data-order}), a distributed ordering consists of an inverse permutation, which provides the old indices of the reordered vertices, and a column block decomposition of the reordered matrix, to help perform more efficient block computations at the solve stage. The column block decomposition is defined as a tree structure, the nodes of which, of type \texttt{Dorder\lbt Cblk}, represent column blocks tree nodes containing consecutive, reordered vertices. A tree node may have children nodes, which represent the decomposition of a column block into sub-column blocks, \eg, when a subdomain is decomposed into two separated subdomains and a separator. Because its column blocks are distributed across multiple processing elements, the \texttt{Dorder} data type is much more complex than the \texttt{Order} data type. Hence, it is important to fully understand the \texttt{Order} data type before delving into the meanders of the \texttt{Dorder} data type and its ancillary data types. The main difference between the two is that, since graphs are distributed across multiple processing elements, column block information has to be duplicated on all the processing elements which contain a piece of a given graph. In order to reconciliate this information, to provide a centralized block column ordering, all distributed column block tree node structures are identified by a \texttt{Dorder\lbt Index} data structure. The distributed column block tree data structure, created by way of parallel graph separation algorithms, always ends up in leaves, when nested dissection no longer succeeds or when the distributed subgraphs are folded onto single processing elements. As soon as the latter happens, a purely sequential graph ordering process can take place on each of them. This leads to the creation of a leaf \texttt{Dorder\lbt Cblk} node, into which the resulting locally-computed, centralized column block sub-tree is compacted as an array of \texttt{Dorder\lbt Node} data structures. From the above, at the time being, the distributed column block tree structure contains either nested dissection nodes, of type \texttt{DORDER\lbt CBLK\lbt NEDI}, leaf nodes, of type \texttt{DORDER\lbt CBLK\lbt LEAF}, or disconnected components nodes of type \texttt{DORDER\lbt CBLK\lbt DICO}. In order to facilitate the integration of centralized column block sub-trees into a global distributed column block tree, the values of the type flags are the same for the \texttt{Dorder} and \texttt{Order} data types. The fields of the \texttt{Dorder} data structure are the following: \begin{itemize} \iteme[\texttt{baseval}] Base value for the inverse permutation. \iteme[\texttt{vnodglbnbr}] Overall number of node vertices to order across all processing elements. For graph orderings, this number is equal to the number of non-halo vertices in the initial graph. \iteme[\texttt{cblklocnbr}] Local number of locally-rooted column blocks. This number is the sum of the number of centralized column blocks, of type \texttt{Dorder\lbt Node}, held by the current processing element, plus the number of distributed column block tree nodes, of type \texttt{Dorder\lbt Cblk}, the \texttt{proc\lbt loc\lbt num} index of which is equal to the rank of the processing element. This allows one to count only once each distributed column block tree node, when summing the \texttt{cblk\lbt loc\lbt nbr} fields over all processing elements. \iteme[\texttt{linkdat}] Start of the doubly-linked list of distributed column block tree nodes, of type \texttt{Dorder\lbt Cblk}, on the given processing element. This list is circular, to allow for the insertion of new nodes at the end of the list in constant time. \iteme[\texttt{proccomm}] MPI communicator for managing the distributed ordering. It should be the same as that of the initial distributed graph to be ordered. \iteme[\texttt{proclocnum}] Rank of the given processing element within the communicator. \iteme[\texttt{mutelocdat}] When multi-threading is activated, allows one to create critical sections to update the ordering data in a thread-safe manner. \end{itemize} \subsubsection{\texttt{DorderIndex}} \label{sec-data-dorder-index} Since the ordering data structure is distributed, pointers cannot be used to refer to parent or children column block tree node data structures across processing elements. The \texttt{Dorder\lbt Index} data type defines an identifier for column block tree nodes. These identifiers are unique, in the sense that, on each processing element, no two \texttt{Dorder\lbt Cblk} structures will have the same identifier. However, several \texttt{Dorder\lbt Cblk} structures may bear the same \texttt{Dorder\lbt Index} values on different processing elements, in the case when they are siblings which maintain the local information about the same distributed column block tree node. The fields of the \texttt{DorderIndex} data type are the following: \begin{itemize} \iteme[\texttt{proclocnum}] Smallest rank among the processing elements on which a copy of the column block tree node resides. \iteme[\texttt{cblklocnum}] Local number of the column block tree node data structure on the processing element of aforementioned rank. \end{itemize} \subsubsection{\texttt{DorderLink}} \label{sec-data-dorder-link} Since distributed column block tree nodes, of type \texttt{Dorder\lbt Cblk}, are created on the fly on each processing element, are in small numbers, and are heavy structures, they are not stored in a single resizable array, but as individual cells which are allocated when needed. Consequently, these structures have to be linked together, for proper management. The \texttt{DorderLink} data type aims at chaining all \texttt{Dorder\lbt Cblk} structures in a circular, doubly-linked list. New nodes are inserted at the end of the list, such that a simple traversal yields nodes in ascending creation order, which is essential for locally-rooted nodes when gathering them to create a centralized ordering. The \texttt{Dorder\lbt Link} structure is the first field of the \texttt{Dorder\lbt Cblk} structure, so that a simple pointer cast allows one to retrieve the tree node structure from the current link. The fields of the \texttt{DorderLink} data structure are the following: \begin{itemize} \iteme[\texttt{nextptr}] Pointer to the next distributed column block tree node created on the given processing element. \iteme[\texttt{prevptr}] Pointer to the previous distributed column block tree node created on the given processing element. \end{itemize} \subsubsection{\texttt{DorderNode}} \label{sec-data-dorder-node} The distributed column block tree data structure ends up in leaves, when either the parallel nested dissection stops, or when distributed subgraphs are located on single processing elements. In the first case, the distributed subgraph is centralized, after which, in both cases, a centralized ordering strategy is applied to the centralized subgraph, and a centralized block ordering is computed. This centralized block ordering is represented as an \texttt{Order} data structure, containing an inverse permutation and a tree of \texttt{Order\lbt Cblk} nodes. Since the distributed ordering will eventually have to be centralized, the local, centralized orderings will have to be compacted and sent to the root processing element. In order to anticipate this and to save space, once a centralized ordering is computed on some processing element, the resulting column block tree is compacted into a single array of \texttt{Dorder\lbt Node} cells. The fields of the \texttt{DorderNode} data type are the following: \begin{itemize} \iteme[\texttt{fathnum}] Un-based index of the father node of the given node in the node array, or $-1$ if the given node is a local root and has to be connected to the father of the local leaf of the distributed column block tree. \iteme[\texttt{typeval}] Type of centralized column block tree node. The admissible values are constants of the kind \texttt{ORDERCBLK*}. \iteme[\texttt{vnodnbr}] Number of node vertices in the column block. \iteme[\texttt{cblknum}] Rank of the tree node among the children of its father, starting from zero. \end{itemize} Like for the \texttt{Dorder\lbt Cblk} data type, there are no references from a node to its children, but a reference from each node to its father, with all information needed to rebuild a global centralized column block tree when all node information is centralized on a single processing element. \subsubsection{\texttt{DorderCblk}} \label{sec-data-dorder-cblk} The \texttt{DorderCblk} data type represents distributed column block tree nodes within distributed orderings. A tree node may be a leaf node, or have children nodes which describe the decomposition of a column block into sub-column blocks, \eg, when a graph is decomposed into two separated subgraphs and a separator. Since, by nature, every distributed column block tree node concerns a set of vertices distributed across a set of processing elements, each of the latter holds a copy of the tree node, the identifier of which, of type \texttt{Dorder\lbt Index}, contains identical information: the smallest rank among the involved processing elements within the communicator used to manage the distributed ordering, and an index incrementally generated on this processing element. Unlike for the \texttt{Order} data type, there are no pointers from a tree node to its child nodes; on the opposite, the \texttt{Dorder\lbt Cblk} node contains a \texttt{Dorder\lbt Index} referring to its father node. The only information a tree node will hold about its children is their number. The fields of the \texttt{DorderCblk} data type are the following: \begin{itemize} \iteme[\texttt{linkdat}] Doubly-linked list structure to chain together all the \texttt{Dorder\lbt Cblk} structures on a given processing element. \iteme[\texttt{ordelocptr}] Pointer to the distributed ordering to which the given distributed column block tree node belongs. \iteme[\texttt{typeval}] Type of tree node; at the time being, it is either \texttt{DORDER\lbt CBLK\lbt NEDI} for a nested dissection node, \texttt{DORDER\lbt CBLK\lbt LEAF} for a leaf node, or \texttt{DORDER\lbt CBLK\lbt DICO} for disconnected components. \iteme[\texttt{fathnum}] Identifier of the father of the given column block tree node. If the given tree node is a root, the value of the father index is \texttt{\{~0, -1~\}}. \iteme[\texttt{cblknum}] Identifier of the given column block tree node. The process number is the smallest rank among all the processing elements sharing node vertices, and the local number is provided incrementally on this processing element. \iteme[\texttt{ordeglbval}] Un-based global start index of the node vertices in the distributed column block tree node. \iteme[\texttt{vnodglbnbr}] Number of node vertices contained in the distributed column block tree node, over all the involved processing elements. If the column block has sub-column blocks, the sum of all the \texttt{vnodglbnbr} values of the sub-column blocks must be equal to the \texttt{vnodglbnbr} of the column block. \iteme[\texttt{cblkfthnum}] Index of the given column block tree node among its siblings, starting from zero. \iteme[\texttt{data}] Union field holding the information concerning either the leaf node or the nested dissection node. This field has two sub-fields: \begin{itemize} \iteme[\texttt{leaf}] Leaf field, which has the following sub-fields: \begin{itemize} \iteme[\texttt{ordelocval}] Un-based start index in the global inverse permutation array for the local vertices. \iteme[\texttt{vnodlocnbr}] Number of node vertices in the given permutation fragment. \iteme[\texttt{periloctab}] Pointer to the local, un-based, inverse permutation fragment array, of size \texttt{vnod\lbt loc\lbt nbr}. The values of the \texttt{peri\lbt loc\lbt tab} array are based according to the \texttt{baseval} field of the \texttt{Dorder} data type. \iteme[\texttt{nodelocnbr}] Number of local column block tree nodes associated with the permutation fragment. \iteme[\texttt{nodeloctab}] Pointer to the local, un-based, array of local column block tree nodes, of size \texttt{node\lbt loc\lbt nbr}. \iteme[\texttt{cblklocnum}] Un-based index, in \texttt{node\lbt loc\lbt tab}, of the root local column block tree node. \end{itemize} \iteme[\texttt{nedi}] Nested dissection field. This field has a single sub-field: \begin{itemize} \iteme[\texttt{cblkglbnbr}] Number of sub-column blocks within this column block. For nested dissection, this number is either $2$ (two separated parts and no separator) or $3$ (two separated parts and a separator). \end{itemize} \end{itemize} \end{itemize} \subsection{\texttt{Graph}} \label{sec-data-graph} Graphs are the fundamental underlying data structures of all the algorithms implemented in \scotch. The \texttt{Graph} structure is the foundational data structure, from which subclasses will be derived, according to the specific needs of the \scotch\ modules. It is sometimes referred to as the \textit{source graph} structure, with respect to the \textit{target architecture} \texttt{Arch} onto which source graphs are to be mapped. The \texttt{Graph} structure, being a foundational data structure, does not possess any variable fields related to actual computations, \eg, partition state variables or an execution context. Such fields will be found in \textit{active} graphs, \eg, \texttt{Bgraph}, \texttt{Kgraph}, \texttt{Vgraph}. A \texttt{Graph} is described by means of adjacency lists. These data are stored in arrays and scalars of type \texttt{SCOTCH\_Num}, as shown in Figures~\ref{fig-lib-graf-one} and~\ref{fig-lib-graf-two}. The \texttt{Graph} fields have the following meaning: \begin{itemize} \iteme[\texttt{baseval}] Base value for all array indexing. \iteme[\texttt{vertnbr}] Number of vertices in graph. \iteme[\texttt{edgenbr}] Number of arcs in graph. Since edges are represented by both of their ends, the number of edge data in the graph is twice the number of graph edges. \iteme[\texttt{verttax}] Based array of start indices in $\mathtt{edgetax}$ of vertex adjacency sub-arrays. \iteme[\texttt{vendtax}] Based array of after-last indices in $\mathtt{edgetax}$ of vertex adjacency sub-arrays. For any vertex $i$, with $\mathtt{baseval} \leq i < (\mathtt{vertnbr} + \mathtt{baseval})$, $(\mathtt{vendtax[}i\mathtt{]} -\mathtt{verttax[}i\mathtt{]})$ is the degree of vertex $i$, and the indices of the neighbors of $i$ are stored in $\mathtt{edgetax}$ from $\mathtt{edgetax[\lbt verttax[}i\mathtt{]]}$ to $\mathtt{edgetax[\lbt vendtax[}i\mathtt{]} - 1\mathtt{]}$, inclusive. When all vertex adjacency lists are stored in order in $\mathtt{edgetax}$, it is possible to save memory by not allocating the physical memory for $\mathtt{vendtax}$. In this case, illustrated in Figure~\ref{fig-lib-graf-one}, $\mathtt{verttax}$ is of size $\mathtt{vertnbr} + 1$ and $\mathtt{vendtax}$ points to $\mathtt{verttax} + 1$. This case is referred to as the ``compact edge array'' case, such that $\mathtt{verttax}$ is sorted in ascending order, $\mathtt{verttax[\lbt baseval]} = \mathtt{baseval}$ and $\mathtt{verttax[\lbt baseval} + \mathtt{vertnbr]} = (\mathtt{baseval} + \mathtt{edgenbr})$. \iteme[\texttt{velotax}] Optional based array, of size $\mathtt{vertnbr}$, holding the integer load associated with every vertex. \iteme[\texttt{vnumtax}] When the current graph is a subgraph of some initial graph, this based array, of size $\mathtt{vertnbr}$, holds the initial vertex indices of the subgraph vertices. This array is not defined (\ie, $\mathtt{vnumtax} = \mathtt{NULL}$) when the graph is the initial graph. \iteme[\texttt{edgetax}] Based array, of a size equal at least to $\left(\max_{i}(\mathtt{vendtax[}i\mathtt{]}) - \mathtt{baseval}\right)$, holding the adjacency array of every vertex. \iteme[\texttt{edlotax}] Optional based array, of a size equal at least to $\left(\max_{i}(\mathtt{vendtax[} i \mathtt{]}) - \mathtt{baseval}\right)$, holding the integer load associated with every arc. Matching arcs should always have identical loads. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{s_f_gr1.eps} \caption{Sample graph and its description using a compact edge array. Numbers within vertices are vertex indices, bold numbers close to vertices are vertex loads, and numbers close to edges are edge loads. Since the edge array is compact, $\mathtt{verttax}$ is of size $\mathtt{vertnbr} + 1$ and $\mathtt{vendtax}$ points to $\mathtt{verttax} + 1$.} \label{fig-lib-graf-one} \end{figure} \begin{figure} \centering\includegraphics[scale=0.47]{s_f_gr2.eps} \caption{Adjacency structure of the sample graph of Figure~\protect\ref{fig-lib-graf-one} with disjoint edge and edge load arrays. Both $\mathtt{verttax}$ and $\mathtt{vendtax}$ are of size $\mathtt{vertnbr}$. This allows for the handling of dynamic graphs, the structure of which can evolve with time.} \label{fig-lib-graf-two} \end{figure} Dynamic graphs can be handled elegantly by using the $\mathtt{vendtax}$ array. In order to dynamically manage graphs, one just has to allocate $\mathtt{verttax}$, $\mathtt{vendtax}$ and $\mathtt{edgetax}$ arrays that are large enough to contain all of the expected new vertex and edge data. Original vertices are labeled starting from $\mathtt{baseval}$, leaving free space at the end of the arrays. To remove some vertex $i$, one just has to replace $\mathtt{verttax[}i\mathtt{]}$ and $\mathtt{vendtax[}i\mathtt{]}$ with the values of $\mathtt{verttax[\lbt vertnbr}\lbt -1\mathtt{]}$ and $\mathtt{vendtax[\lbt vertnbr}\lbt -1\mathtt{]}$, respectively, and browse the adjacencies of all neighbors of former vertex $\mathtt{vertnbr}-1$ such that all $(\mathtt{vertnbr}-1)$ indices are turned into $i$s. Then, $\mathtt{vertnbr}$ must be decremented. To add a new vertex, one has to fill $\mathtt{verttax[\lbt vertnbr} -1\mathtt{]}$ and $\mathtt{vendtax[\lbt vertnbr}\lbt -1\mathtt{]}$ with the starting and end indices of the adjacency sub-array of the new vertex. Then, the adjacencies of its neighbor vertices must also be updated to account for it. If free space had been reserved at the end of each of the neighbors, one just has to increment the $\mathtt{vendtax[}i\mathtt{]}$ values of every neighbor $i$, and add the index of the new vertex at the end of the adjacency sub-array. If the sub-array cannot be extended, then it has to be copied elsewhere in the edge array, and both $\mathtt{verttax[}i\mathtt{]}$ and $\mathtt{vendtax[}i\mathtt{]}$ must be updated accordingly. With simple housekeeping of free areas of the edge array, dynamic arrays can be updated with as little data movement as possible. \subsection{\texttt{Hgraph}} \label{sec-data-hgraph} The \texttt{Hgraph} structure holds all the information necessary to represent and perform computations on a \textit{halo} graph. This term refers to graphs some vertices of which are kept to preserve accurate topological information, but are usually not subject to actual computations. These \textit{halo vertices} are collectively referred to as the \textit{halo} of the graph. Halo graphs are notably used in sparse matrix reordering, where, in the process of nested dissection, a graph is cut into three pieces: a vertex separator, and two separated parts. Each of these parts must preserve the real degree information attached to all their vertices, including those next to the separator. If halo graphs were not used, the degrees of these vertices would appear smaller than what they really are in the whole graph. Preserving accurate degree information is essential for algorithms such as the \textit{minimum degree} vertex ordering method. Some vertex separation algorithms also aim at balancing halo vertices; in this case, separators will be computed on halos, but this information will not be preserved once a separator has been computed on the regular vertices. Halo graphs exhibit specific structural and topological properties, illustrated in Figure~\ref{fig-lib-hgraf-one}. In order to distinguish easily halo vertices from regular vertices and write efficient algorithms, halo vertices have the highest vertex indices in the graph. Because the degrees of halo vertices need not be preserved, no edges connect two halo vertices; the adjacency of halo vertices is only made of regular vertices. Also, in the adjacency arrays of regular vertices, all non-halo vertices are placed before halo vertices. All these properties allow one to easily induce the non-halo graph from some halo graph, without having to create new adjacency arrays. An additional vertex index array is present just for this purpose. \begin{figure} \centering\includegraphics[scale=0.47]{m_f_gr3.eps} \caption{Sample halo graph and its description using a compact edge array. Numbers within vertices are vertex indices. Greyed values are indices of halo vertices. Halo vertices have the highest indices in the graph, and are placed last in the adjacency sub-arrays of each non-halo vertex.} \label{fig-lib-hgraf-one} \end{figure} Halo graph fields have the following meaning: \begin{itemize} \iteme[\texttt{s}] Underlying source graph that contains all regular and halo vertices. This is where to search for fields such as $\mathtt{baseval}$, $\mathtt{vertnbr}$, $\mathtt{vertnnd}$, $\mathtt{verttax}$, $\mathtt{vendtax}$, etc. \iteme[\texttt{vnohnbr}] Number of non-halo vertices in graph. Hence, $0 \leq \mathtt{vnohnbr} \leq \mathtt{s.vertnbr}$. \iteme[\texttt{vnhdtax}] Array of after-last indices in $\mathtt{s.edgetax}$ of non-halo vertex adjacency sub-arrays. Since this information only concerns non-halo vertices, $\mathtt{vnhdtax}$ is of size $\mathtt{vnohnbr}$, not $\mathtt{vertnbr}$. For any non-halo vertex $i$, with $\mathtt{baseval} \leq i < (\mathtt{vnohnbr} + \mathtt{baseval})$, the indices of the non-halo neighbors of $i$ are stored in $\mathtt{s.edgetax}$ from $\mathtt{s.edgetax}\lbt \mbox{\texttt{[}}\mathtt{s.verttax}\mbox{\texttt{[}}i\mbox{\texttt{]]}}$ to $\mathtt{s.edgetax}\lbt \mbox{\texttt{[}}\mathtt{vnhdtax}\mbox{\texttt{[}}i\mbox{\texttt{]}} - 1\mbox{\texttt{]}}$, inclusive, and its halo neighbors are stored from $\mathtt{s.edgetax}\lbt \mbox{\texttt{[}}\mathtt{vnhdtax}\mbox{\texttt{[}}i\mbox{\texttt{]]}}$ to $\mathtt{s.edgetax}\lbt \mbox{\texttt{[}}\mathtt{s.vendtax}\mbox{\texttt{[}}i\mbox{\texttt{]}} - 1\mbox{\texttt{]}}$, inclusive. \iteme[\texttt{vnlosum}] Sum of non-halo vertex loads. Hence, $0 \leq \mathtt{vnlosum} \leq \mathtt{s.velosum}$. \iteme[\texttt{enohnbr}] Number of non-halo arcs in graph. Hence, $0 \leq \mathtt{enohnbr} \leq \mathtt{s.edgenbr}$. \end{itemize} \subsection{\texttt{Kgraph}} \label{sec-data-kgraph} The \texttt{Kgraph} structure holds all the information necessary to compute a k-way (re)mapping of some graph onto a target architecture. Consequently, it contains a \texttt{Graph}, defined as field \texttt{s}, and a reference to an \texttt{Arch}, through the field \texttt{m.archptr}, as well as two \texttt{Mapping} structures: one for the current mapping to compute, and one to store the old mapping from which to remap. Additional information comprise data to model the cost of remapping, and data associated with the state and cost of the current mapping: list of frontier vertices, load of each partition domain, plus the execution context for multi-threading execution. The \texttt{Graph} structure is internal to the \texttt{Kgraph} because every new \texttt{Kgraph} contains a different graph topology (\eg, a band graph or a coarsened graph). The \texttt{Arch} is accessed by reference because it is constant data which can be shared by many \texttt{Kgraph}s. For the sake of consistency, the \texttt{grafptr} fields of each mapping \texttt{m} and \texttt{r.m} must point to \texttt{\&s}, while their two \texttt{archptr} fields must point to the same target architecture. This redundency is the price to pay for lighter memory management. \subsubsection{Mappings} The \texttt{domnorg} field, which must contain a valid domain in the architecture \texttt{m.archptr}, is the starting point for the k-way mapping. This domain may be smaller than the full architecture when parallel partitioning is performed: in this case, each process may receive a separate subgraph and sub-architecture to work on. Each of the two mappings has its own specificities. The current mapping, defined as field \texttt{m}, is never incomplete: all the cells of its \texttt{m.parttax} array are non-negative values that index a valid domain in the domain array \texttt{m.domntab}. These domains are all subdomains of the architecture referenced through field \texttt{m.archptr}. More restrictively, the domains attached to non-fixed vertices must be included in \texttt{domnorg}, which may be smaller. The current mapping evolves with time, according to the various algorithms that the user can activate in the strategy string. These algorithms will create derived \texttt{Kgraph}s (\eg, band graphs or coarsened graphs), to which mapping methods will be applied, before the result is ported back to their parent \texttt{Kgraph}. Depending on the kind of the derived graph, the \texttt{m.parttax} array may be specific, but the \texttt{m.domntab} array will always be ported back as is. Consequently, in order to save memory copying, the policy which is implemented is that the derived \texttt{Kgraph} gets the pointer to the \texttt{m.domntab} of its parent, while the latter is set to \texttt{NULL}. The derived graph can therefore reallocate the array whenever needed, without the risk of an old, invalid, pointer being kept elsewhere. Then, when the processing of the derived \texttt{Kgraph} ends, the most recent pointer is copied back to the \texttt{m.domntab} field of the parent graph, and the \texttt{m.parttax} array is updated accordingly, after which the derived \texttt{Kgraph} can be destroyed without freeing the pointer. The old mapping, defined as field \texttt{r.m}, may contain incomplete mapping information: some of the cells of its \texttt{r.m.parttax} array may be equal to \texttt{-1}, to indicate that no prior mapping information is available (\eg, when the vertex did not exist in the previous mapping). Since old mappings do not change, the \texttt{r.m.domntab} field can be shared among all derived \texttt{Kgraph}s. It is protected from double memory freeing by not setting the \texttt{MAPPING\lbt FREE\lbt DOMN} flag in field \texttt{r.m.flagval}. \subsection{\texttt{Mapping}} \label{sec-data-mapping} The \texttt{Mapping} structure defines how individual vertices of a \texttt{Graph} are mapped individually onto (parts of) an \texttt{Arch}. A mapping is said \textit{complete} if all source graph vertices are assigned to terminal target domains, \ie, individual vertices of the target architecture, or \textit{partial} if at least one of the source graph vertices is assigned to a target domain that comprises more than one vertex. In the course of the graph mapping process, the destination of source vertices are progressively refined, from an initial target domain that usually describes the whole of the target architecture, to terminal domains. Since \texttt{ArchDom}, the data structure that describes target architecture domains, is big and costly to handle (\eg, to compare if two \texttt{ArchDom}s are identical), the handling of domains in mapping is indirect: in the part array \texttt{parttax}, each vertex is assigned an integer domain index that refers to a domain located in the domain array \texttt{domntab}. Hence, when two graph vertices have the same index in \texttt{parttax}, they belong to the same domain and induce no communication cost. However, the opposite is false: two vertices may have a different index in \texttt{parttax} and yet belong to the same target domain. This is for instance the case when one of the vertices is a fixed vertex that has been set to a specific terminal domain at initialization time, and one of its neighbors is successively mapped to smaller and smaller subdomains that eventually amount to the same terminal domain. In the case of a remapping, the mapping information regarding the former placement of the vertices may be incomplete, \eg, because the vertex did not exist before. Such a mapping is said to be \textit{incomplete}. It is characterized by the fact that some cells of the \texttt{parttax} array are equal to \texttt{-1}, to indicate an unknown terminal domain number. To allow for this, the mapping must have the \texttt{MAPPING\lbt INCOMPLETE} flag set. Incomplete mappings are only valid when holding remapping information; new mappings being computed must have all their \texttt{parttax} cells set with non-negative values that point to valid domains in the \texttt{domntab} array. New mappings can therefore only be partial or complete. When a mapping is initialized, all \texttt{parttax} values for non-fixed vertices are set to index~$0$, and \texttt{domntab[0]} is set to the root domain for the mapping. In the general case for centralized mapping, the initial domain is equal to \texttt{archDomFrst(archptr)}. However, when a centralized mapping process is launched as a part of a distributed mapping process, the initial domain may be a subset of the whole target architecture. There is no obligation for the \texttt{domntab} array to contain only one instance of some target domain. On the contrary, as described above, the same domain may appear at least twice: once for fixed vertices, and once for non-fixed vertices on which mapping algorithms are applied. However, for efficiency reasons (\eg, avoiding to compute vertex distances that are equal to zero), it is preferable that duplicate domains are avoided in the \texttt{domntab} array. This is the case by nature with recursive bipartitioning, as the domains associated with branches of the biparitioning tree are all distinct. Making the distinction between fixed and non-fixed vertices, which is relevant to mapping algorithms, is not in the scope of the \texttt{Mapping} data structure, which only represents a global state. This is why no data related to fixed vertices is explicitly present in the mapping itself (it may be found, \eg, in the \texttt{Kgraph} data structure). However, for handling fixed vertices in an efficient way, the semantics of the \texttt{Mapping} data structure is that all domains that are associated with fixed vertices must be placed first in the \texttt{domntab} array. The purpose of this separation is because, when the imbalance of a mapping is computed, the loads of non-fixed vertices that belong to some (partial) domain and of fixed vertices that belong to domains that are subdomains of this domain have to be aggregated. This aggregation procedure is made easier if both types of domains are kept separate. For efficiency reasons, fixed domains should appear only once in the fixed part of \texttt{domntab}. \\ The \texttt{Mapping} structure is mainly used within the \texttt{Kgraph} structure, which contains two instances of it: one for the current mapping to be computed, and one for the old mapping, in the case of remapping. The building of a \texttt{Kgraph} from another one (\eg, when creating a band graph or a coarsened graph) may lead to situations in which some \texttt{Mapping} arrays may be re-used, and thus should not be freed when the derived \texttt{Mapping} is freed. This is why the \texttt{Mapping} structure contains flags to record whether its arrays should be freed or not. These flags are the following: \begin{itemize} \iteme[\texttt{MAPPINGFREEDOMN}] Set if the domain array has to be freed when the mapping is freed. A common case for sharing the domain array is when a coarser \texttt{Kgraph} is computed: the domain array of the coarse old mapping can re-use that of the fine old mapping. \iteme[\texttt{MAPPINGFREEPART}] Set if the part array has to be freed when the mapping is freed. A common case for sharing the part array is when the user part array is kept as the part array for the initial \texttt{Kgraph} current mapping structure. \end{itemize} The main fields of the \texttt{Mapping} data structure are the following: \begin{itemize} \iteme[\texttt{flagval}] Set of flags indicating whether the \texttt{parttax} and \texttt{domntab} have to be freed on exit. \iteme[\texttt{grafptr}] Pointer to the \texttt{Graph} associated with the mapping, that gives access to the base value \texttt{grafptr->\lbt baseval} and the number of source vertices \texttt{grafptr->\lbt vertnbr}. \iteme[\texttt{archptr}] Pointer to the \texttt{Arch} associated with the mapping, that is necessary to perform all distance computations on the mapping. \iteme[\texttt{parttax}] Based array of \texttt{Anum}s, of size \texttt{grafptr->\lbt vertnbr}, that provides the index of the target domains onto which all graph vertices are currently mapped. Indices are un-based. \iteme[\texttt{domntab}] Un-based array of \texttt{ArchDom}s, of size \texttt{domnmax}, that stores the target domains to which source graph vertices are indirectly associated through the \texttt{parttax} array. \iteme[\texttt{domnnbr}] Number of target domain slots currently used in \texttt{domntab}. After a mapping is initialized, $1 \leq \mbox{\texttt{domnnbr}} < \mbox{\texttt{domnmax}}$, because source graph vertices must be associated to some domain, hence \texttt{domntab} should at least contain one domain. \iteme[\texttt{domnnbr}] Number of target domain slots currently used in \texttt{domntab}. \iteme[\texttt{domnmax}] Size of the \texttt{domntab} array. \iteme[\texttt{mutedat}] When multi-threading is activated, allows to create critical sections to update the mapping data in a thread-safe manner. \end{itemize} \subsection{\texttt{Order}} \label{sec-data-order} Orderings are data structures used in \scotch\ to represent fill-minimizing block orderings of adjacency matrices represented as graphs. A block ordering, contained in the \texttt{Order} data structure, is defined by an inverse permutation, which provides the old indices of the reordered vertices, and a column block decomposition of the reordered matrix, to help performing more efficient block computations at the solving stage. Inverse permutations are used, instead of direct permutations, because their processing is more local: when ordering some subgraph, the only ordering information to provide is the un-based start index, usually called \texttt{ordenum}, in the inverse permutation vector, usually called \texttt{peritab}, while the \texttt{vnumtax} array of the \texttt{Graph} structure holds the values of the vertex indices to write in the sub-array of \texttt{peritab} starting at index \texttt{ordenum}, of a size equal to the number of concerned vertices in the \texttt{Graph}. Once an ordering is computed, it is straightforward to compute the direct permutation \texttt{permtab} from the inverse permutation \texttt{peritab}, in case it is needed. The column block decomposition is defined as a tree structure, whose nodes, of type \texttt{Order\lbt Cblk}, represent column blocks containing consecutive, reordered vertices. A tree node may have ordered children nodes, which represent the decomposition of a column block into sub-column blocks, \eg, when a subdomain is decomposed into two separated subdomains and a separator. The main fields of the \texttt{Order} data structure are the following: \begin{itemize} \iteme[\texttt{flagval}] Flag that indicates whether the \texttt{peritab} inverse permutation array has to be freed on exit. \iteme[\texttt{baseval}] Base value for inverse permutation values. \iteme[\texttt{vnodnbr}] Number of vertex nodes in the ordering. When the associated graph structure is a \texttt{Graph}, this number is equal to its \texttt{vertnbr} field; when it is a \texttt{Mesh}, it is equal to its \texttt{vnodnbr} field. \iteme[\texttt{treenbr}] Number of tree nodes in the ordering. This number is equal to $1$ when only the root tree node is present, and is incremented each time a new tree node is added to the tree structure. \iteme[\texttt{cblknbr}] Number of column blocks in the ordering. This number is equal to $1$ when only the root tree node is present. When some column block is decomposed into $c$ sub-column blocks, it is increased by $(c-1)$, since this represents the number of additional column blocks in the structure. \iteme[\texttt{rootdat}] Root column block of the ordering. This structure, of type \texttt{Order\lbt Cblk}, is initialized to contain all \texttt{Graph} vertices, or \texttt{Mesh} vertex nodes, in a single column block, after which reordering algorithms are applied and lead to the creation of sub-column blocks, \eg, in the case of nested dissection. \iteme[\texttt{peritab}] Pointer to the inverse permutation array. \iteme[\texttt{mutedat}] Mutual exclusion lock. When multi-threading is activated, it allows to create critical sections to update the ordering data in a thread-safe manner. \end{itemize} \subsubsection{\texttt{OrderCblk}} \label{sec-data-order-cblk} Column blocks are sets of reordered unknowns which are likely to be processed efficiently together when solving the linear system, \eg, using BLAS block computation routines. The column block decomposition of the reordered matrix is represented as a tree whose nodes are instances of the \texttt{OrderCblk} data structure. The column block decomposition tree will be used to create the block elimination tree of the unknowns of the linear system, which amounts to linking each column block to a father block. This building is performed by the \texttt{order\lbt Tree()} routine. A column block tree node \texttt{OrderCblk} is defined by its type (\ie, whether it is a leaf, a nested dissection node, etc.), its width (\ie, the number of node vertices it contains), and, if it is not a leaf, the description of the sub-column blocks it contains. The main fields of the \texttt{OrderCblk} data structure are the following: \begin{itemize} \iteme[\texttt{typeval}] Set of flags that define the nature of the column block tree node. They must be the same as the distributed column block tree node flags of the \texttt{Dorder\lbt Cblk} distributed column block data structure. Consequently, these flags must be separate bits, so that values can be or-ed (especially, concerning \texttt{ORDER\lbt CBLK\lbt LEAF} in \texttt{hdgraph\lbt Order\lbt Nd()}). These flags are the following: \begin{itemize} \iteme[\texttt{ORDERCBLKLEAF}] Leaf column block (before it is subdivided into sub-column blocks, or definitely). In this case, the other fields of the column block tree node are such that $\texttt{cblknbr} = 0$ and $\texttt{cblktab} = \texttt{NULL}$. \iteme[\texttt{ORDERCBLKNEDI}] Nested-dissection separator tree node. The separator is always the last sub-column block. Hence, if the separator is not empty, the node has three sub-column blocks (hence $\texttt{cblknbr} = 3$), while, if the separator is empty, the column block tree node has only two sub-column blocks (hence $\texttt{cblknbr} = 2$). None of the separated parts can be empty (else, the tree node would be of type \texttt{ORDER\lbt CBLK\lbt SEQU}). \iteme[\texttt{ORDERCBLKDICO}] Disconnected components tree node. It contains an arbitrary number (always strictly greater than~$1$) of sub-column blocks, which represent disconnected components to be ordered independently. Since the sub-column blocks are not connected, their father in the elimination tree will not be the column block tree node itself, but its father (or none if the column block is the root column block, \ie, the \texttt{rootdat} field of the \texttt{Order} data structure). \iteme[\texttt{ORDERCBLKSEQU}] Sequential tree node. It contains an arbitrary number (always strictly greater than~$1$) of sub-column blocks, which represent mutually dependent blocks. Consequently, the father of each sub-column block in the elimination tree will be the next sub-column block, except for the last sub-column block, whose father will be the column block itself. \end{itemize} \iteme[\texttt{vnodnbr}] Number of nodes (\ie, vertices) contained in the column block. If the column block has sub-column blocks, the sum of all the \texttt{vnodnbr} values of the sub-column blocks must be equal to the \texttt{vnodnbr} of the column block. \iteme[\texttt{cblknbr}] Number of sub-column blocks. If the column block is a leaf, $\texttt{cblknbr} = 0$ and $\texttt{cblktab} = \texttt{NULL}$. \iteme[\texttt{cblktab}] Array of \texttt{cblknbr} structures of type \texttt{DorderCblk}, which hold the data about the sub-column blocks if the column block is not a leaf. \texttt{cblktab} has to be freed on exit. \end{itemize} \subsection{Hash tables} \label{sec-type-hash-table} Hash tables are used quite often in \scotch. However, since their use is problem-dependent, and the code that implements them is small, no generic data structure has been created to handle them. Each instance is created \textit{ad hoc}, at the expense of a slight duplication of code. This provides better readability, as macros would hide their meaning. These hash tables use \textit{open addressing} and \textit{linear lookup}. Because of open addressing, removal of individual items is not possible, which is not a concern for our use cases. Since linear lookup can prove very expensive when tables get full, implementations in \scotch\ make sure that tables are not filled-in at more than $25$\% capacity. Our experiments showed that this maximum load factor guarantees that simple collisions happen in only about $1$\% of the cases, and that more-than-double collisions are almost nonexistent. When the maximum number of items cannot be known, resizing is implemented, to enforce this maximum load factor. A typical use of these hash tables is to process the (common) neighbors of several vertices. For instance, when coarsening a graph, the adjacencies of two mated vertices have to be merged into a single adjacency, taking care of duplicate edges. In this case, edge merging must be performed when one of the vertices is connected to two neighbors that will be merged together, or when the two vertices are connected to the same neighbor vertex or to two vertex neighbors to be merged together. The edge connecting the two mated vertices must also be removed, if it exists. \subsubsection{Data structure} The underlying data structure of a \scotch\ hash table is an array of a size which is always a power of two. This constraint aims at providing cheap ways for array index bounding, by turning expensive integer modulus operations into cheap bitwise `and' operations using a dedicated bit mask variable. In each use case, the semantics of cell data must allow one to indicate unambiguously whether a cell is empty or full. Since hash indices are most often vertex or edge indices, and these indices are always positive or null (\ie, \texttt{baseval} is always positive or null), `$-1$' is commonly used as a marker value in cell fields to indicate an empty cell. To fill-in the hash table array at initialization time with `$-1$' values in one sweep, one can use a \texttt{memset()} routine with the '\texttt{\~{}0}' byte value (all 1's), assuming negative integer numbers are coded in two's complement. When a hash table is used repeatedly (\eg, for all vertices of a graph), re-initializing the whole hash table memory area when only a few of its cells have been touched may prove expensive. The solution is to embed in each cell a pass number (\eg, the vertex number), so that a cell is considered empty when its pass number is not equal to the number of the current pass. This is consistent with initializing the table array with `$-1$'s, since pass numbers will always be greater than this value. Adding this extra field increases the size of each cell, hence of the whole array, but reduces the overall number of memory writes while preserving cache locality. For instance, in the case of graph coarsening discussed above, a hash table cell may have the structure described below: \texttt{vertnum} is the pass number (\ie,the index of the current coarse vertex the adjacency of which is being built), \texttt{vertend} is the hash index (the number of the coarse vertex neighbor for which an edge must be maintained), and \texttt{edgenum} is the index of the edge to be created in the coarse graph edge array. \begin{lstlisting}[style=language-c] typedef struct HashCell_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum vertend; /*+ Other end vertex number +*/ Gnum edgenum; /*+ Number of corresponding edge +*/ } HashCell; \end{lstlisting} \subsubsection{Operation} As said, the size of the hash table array must be a power-of-two size at least greater than four times the expected maximum number of items, and its contents must be initialized with `$-1$' values. All of this can be performed with the following code. \begin{lstlisting}[style=language-c] itemmax = ...; /* Plausible maximum number of items */ for (hashmax = 2; hashmax > itemmax; hashmax *= 2) ; /* Find upper power of two */ hashsiz = hashmax * 4; /* Array size guarantees 25% load factor */ hashmsk = hashsiz - 1; /* Bit mask is range of 1's */ hashtab = (Hash *) memAlloc (hashsiz * sizeof (HashCell)); /* Allocate hash table array */ memSet (hashtab, ~0, hashsiz * sizeof (HashCell)); /* Fill-in array with `-1' values */ \end{lstlisting} In the above, \texttt{hashtab} is the pointer to the hash table array, \texttt{itemmax} is the maximum number of items, \texttt{hashmax} is the maximum number of elements to be inserted in the hash table, \texttt{hashsiz} is the size of the array (in number of cells), and \texttt{hashmsk} is the bit mask for index bounding. In a real code, not all of these variables are explicitly named and computed, because there exist simple relationships between them. For instance, with respect to \texttt{hashmsk}, which is always present because it must be easily available in hash loops, we have $\mbox{\texttt{hashsiz}} = \mbox{\texttt{hashmsk}} + 1$ and $\mbox{\texttt{hashmax}} = (\mbox{\texttt{hashmsk}} - 3)/4$. Multiplications and divisions by powers of two can be cheaply performed by way of bit shift operators (\ie, `\texttt{<<}' and `\texttt{>>}'). Hence, $\mbox{\texttt{hashmax}} = \mbox{\texttt{hashmsk}} > > 2$, which also discards the unwanted low-order bits. Once the hash table is set-up, it can be used efficiently with only a few lines of code. To prevent data clustering in the array, the initial index is computed by way of a multiplication by a number which is prime with the size (hence, an odd number). For instance, from a vertex number \texttt{vertnum}: $\mbox{\texttt{hashnum}} = \mbox{\texttt{vertnum}} \times \mbox{HASHPRIME}$. Typically, the prime number is $17$ or $31$, that is, a number such that multiplying by it amounts to a one-bit shift and an addition/subtraction only (\eg, $v\times 17 = v < < 4 + v$ and $v\times 31 = v < < 5 - v$). As said, lookup is linear: once a hash index \texttt{hashnum} is computed, if the corresponding cell is already full, the next index will be computed by incrementing \texttt{hashnum} and performing a modulus operation using the bit mask, as $(\mbox{\texttt{hashnum}} + 1) \% \mbox{\texttt{hashsiz}} = (\mbox{\texttt{hashnum}} + 1) \& \mbox{\texttt{hashmsk}}$. In the case of graph coarsening taken as an example, the hash table can be used in the following way. \begin{lstlisting}[style=language-c] for (coarvertnum = ...) { /* For each coarse vertex to consider */ for (finevertnum = ...) { /* Enumerate fine vertices to merge in it */ for (fineedgenum = fineverttax[finevertnum]; /* For all fine edges of current fine vertex */ fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { coarvertend = finecoartax[fineedgetax[fineedgenum]]; /* Get coarse number of end fine vertex */ if (coarvertend != coarvertnum) { /* If not end of collapsed edge */ for (hashnum = (coarvertend * HASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & coarhashmsk) { /* For all possible hash slots */ if (coarhashtab[hashnum].vertnum != coarvertnum) { /* If slot is empty */ hashtab[hashnum].vertnum = coarvertnum; /* Create hash slot in table */ hashtab[hashnum].vertend = coarvertend; hashtab[hashnum].edgenum = ...; /* Set edge number in coarse graph */ break; /* Give up hashing as it succeeded */ } if (hashtab[hashnum].vertend == coarvertend) { /* If coarse edge already exists */ ... /* Manage merging of fine edge in coarse one */ break; /* Give up hashing as it succeeded */ } } } } /* Go on searching for an empty cell */ } } \end{lstlisting} \subsubsection{Resizing} When the number of items inserted in the table becomes greater than \texttt{hashmax} (\ie, above the $25$\% load factor), resizing takes place. This may be a complex procedure, depending on the semantics of the data types (\eg, when hash slot indices are referenced in other data structures which must then also be updated). However, the process is quite straightforward. First, the size of the array is doubled, by way of a \mbox{\texttt{realloc()}} call, and the second half of the enlarged array is initialized, by way of a \mbox{\texttt{memset(,\~{}0,)}} call. Then, cell locations must be updated, according to their new hash indices and the linear lookup policy. This process is performed in two phases. The first phase concerns the block of all the non-empty cells contiguous to the end of the old hash table (\ie, the end of the first half of the resized hash table). If the last cell of the old table is empty, this last block does not exist. If it does, then all its cells are processed in ascending order: their new hash index is computed and, if it differs from the current one, the cell is moved to its new slot, possibly in the new half of the array. Then, in the second phase, all the cells from the beginning of the array to the last cell before those possibly processed in the first phase are processed similarly, also in ascending order. Together, these two segments cover all the cells of the old hash table. This two-phase approach is necessary to allow for moving all the cells of the hash array without causing bugs. Assume the old hash table contains only two cells: a first cell at the very end of the array, placed here because its hash index is indeed the last index of the array, and a second cell at the very beginning of the array, which was placed here because its hash index was also the index of the last cell but has been subsequently set to zero in the lookup phase since the last cell was already full. If only the second phase would take place, the first cell of the array would have its index recomputed first, and may still be the end of the first half of the new array, but, since this slot is still busy, the cell would be moved just after it, that is, now that the table is resized, at the very beginning of the second half of the resized array, which is empty. Then, the last cell would have its index recomputed and, if its new index would differ from its former one, because of the different modulus, it would be moved elsewhere. Hence, the first cell would no longer be accessible. These two phases can be combined into the same factored code, by way of the outer loop exemplified below. \begin{lstlisting}[style=language-c] hashtab = memRealloc (hashtab, 2 * hashold * sizeof (HashCell)); /* Resize hash table */ memSet (hashtab + hashold, ~0, hashold * sizeof (HashCell)); /* Initialize second half */ for (hashbas = hashold - 1; hashtab[hashbas].vertnum == vertnum; hashbas --) ; /* Find start index of last block */ hashnnd = hashold; /* First segment to reconsider ends at the end of the old array */ while (hashnnd != hashbas) { /* For each of the two segments to consider */ for (hashnum = hashbas; hashnum < hashnnd; hashnum ++) { /* Re-compute position in new table */ if (hashtab[hashnum].vertnum == vertnum) { /* If hash slot used in this pass */ vertend = hashtab[hashnum].vertend; /* Get hash key value */ for (hashnew = (vertend * HASHPRIME) & hashmsk; ; hashnew = (hashnew + 1) & hashmsk) { if (hashnew == hashnum) /* If hash slot is the same */ break; /* There is nothing to do */ if (hashtab[hashnew].vertnum != vertnum) { /* If new slot is empty */ hashtab[hashnew] = hashtab[hashnum]; /* Copy data to new slot */ hashtab[hashnum].vertnum = ~0; /* Mark old slot as empty */ break; } } /* Go on searching */ } } hashnnd = hashbas; /* End of second segment to consider is start of first one */ hashbas = 0; /* Start of second segment is beginning of array */ } /* After second segment, hashbas = hashnnd = 0 and loop stops */ \end{lstlisting} In the above, \texttt{hashold} is the size of the old hash table, \texttt{hashbas} is the start index of the current segment, and \texttt{hashnnd} is the end index of the current segment. For the first segment, the loop always starts on an empty cell; this allows one to handle smoothly the case when there is no last block. Since there always exists at least one empty cell in the array, because of the load factor, the loop on the first segment will never start off the bounds of the array. Like before, the \texttt{vertnum} field of hash cells is the current pass number, acting as an occupation flag, and \texttt{vertend}, the hash key value of the cell, is used to compute the new hash index. The emptiness test ``\texttt{if (hashtab[hashnew].vertnum != vertnum)}'' can also be written: ``\texttt{if (hashtab[hashnew].vertnum == \~{}0)}'', since the two cases in which an empty cell is found consist in the new hash value indexing either the new part of the hash table, or a cell that has been cleared after moving. In both cases, the value of the pass number has been explicitly set to `\texttt{\~{}0}'. Depending on the use case, in each concerned \scotch\ routine, relevant variables and fields may have different names and semantics. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_f.tex000066400000000000000000000127651514310134000251160ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : m_f.tex % % Sujet : Maintenance manual of % % Scotch % % File formats v6.0 % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Files and data structures} \label{sec-file} User-manageable file formats are described in the \scotch user's guide. This section contains information that are relevant only to developers and maintainers. For the sake of portability, readability, and reduction of storage space, all the data files shared by the different programs of the \scotch\ project are coded in plain ASCII text exclusively. Although one may speak of ``lines'' when describing file formats, text-formatting characters such as newlines or tabulations are not mandatory, and are not taken into account when files are read. They are only used to provide better readability and understanding. Whenever numbers are used to label objects, and unless explicitely stated, \textbf{numberings always start from zero}, not one. \subsection{Decomposition-defined architecture files} \label{sec-file-target-deco-one} Decomposition-defined architecture files are the way to describe irregular target architectures that cannot be represented as algorithmically-coded architectures. Two main file formats coexist: the ``\texttt{deco 0}'' and ``\texttt{deco 2}'' formats. ``\texttt{deco}'' stands for ``decomposition-defined architecture'', followed by the format number. The ``\texttt{deco 1}'' format is a compiled form of the ``\texttt{deco 0}'' format. We will describe it here. The ``\texttt{deco 1}'' file format results from an $O(p^2)$ preprocessing of the ``\texttt{deco 0}'' target architecture format. While the ``\texttt{deco 0}'' format contains a distance matrix between all pairs of terminal domains, which is consequently in in $\Theta(p^2/2)$, the ``\texttt{deco 1}'' format contains the distance matrix between any pair of domains, whether they are terminal or not. Since there are roughly $2p$ non-terminal domains in a target architecture with $p$ terminal domains, because all domains form a binary tree whose leaves are the terminal domains, the distance matrix of a ``\texttt{deco 1}'' format is in $\Theta(2p^2)$, that is, four times that of the corresponding ``\texttt{deco 0}'' file. Also, while the ``\texttt{deco 0}'' format lists only the characteristics of terminal domains (in terms of weights and labels), the ``\texttt{deco 1}'' format provides these for all domains, so as to speed-up the retrieval of the size, weight and label of any domain, whether it is terminal or not. The ``\texttt{deco 1}'' header is followed by two integer numbers, which are the number of processors and the largest terminal number used in the decomposition, respectively (just as for ``\texttt{deco 0}'' files). Two arrays follow. The first array has as many lines as there are domains (and not only terminal domains as in the case of ``\texttt{deco 0}'' files). Each of these lines holds three numbers: the label of the terminal domain that is associated with this domain (which is the label of the terminal domain of smallest number contained in this domain), the size of the domain, and the weight of the domain. The first domain in the array is the initial domain holding all the processors, that is, domain $1$. The other domains in the array are the resulting subdomains, in ascending domain number order, such that the two subdomains of a given domain of number $i$ are numbered $2i$ and $2i+1$. The second array is a lower triangular diagonal-less matrix that gives the distance between all pairs of domains. For instance, Figure~\ref{fig-file-targetdeco-zero} and Figure~\ref{fig-file-targetdeco-one} show the contents of the ``\texttt{deco 0}'' and ``\texttt{deco 1}'' architecture decomposition files for $\UB(2,3)$, the binary de~Bruijn graph of dimension~$3$, as computed by the \texttt{amk\_grf} program. \begin{figure}[hbt] \begin{tabular}{p{0.69\linewidth}@{}p{0.29\linewidth}} \begin{center} \parbox[t]{0.9\linewidth}{\vspace{0pt}\includegraphics[width=0.7\linewidth]{s_f_d.ps}} \end{center} & \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} deco 0 8 15 0 1 15 1 1 14 2 1 13 3 1 11 4 1 12 5 1 9 6 1 8 7 1 10 1 2 1 2 1 2 1 1 1 2 3 2 1 1 2 2 2 2 1 1 1 3 2 3 1 2 2 1 \end{verbatim} } \end{center} \end{tabular} \caption{``\texttt{deco 0}'' target decomposition file for $\UB(2,3)$. The terminal numbers associated with every processor define a unique recursive bipartitioning of the target graph.} \label{fig-file-targetdeco-zero} \end{figure} \begin{figure}[hbt] \begin{tabular}{p{0.49\linewidth}@{}p{0.49\linewidth}} \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} deco 1 8 15 0 8 8 3 4 4 0 4 4 5 2 2 3 2 2 2 2 2 0 2 2 6 1 1 5 1 1 7 1 1 3 1 1 4 1 1 2 1 1 1 1 1 0 1 1 \end{verbatim} } \end{center} & \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} 2 2 2 2 1 2 2 1 3 1 2 2 1 2 2 2 3 1 2 2 1 2 1 2 1 1 2 2 3 2 3 1 2 2 3 1 3 2 3 2 1 3 3 1 2 2 1 2 1 1 2 2 1 1 1 2 2 1 2 2 1 1 1 2 2 2 3 3 2 2 3 1 2 2 1 3 2 1 2 2 1 2 2 1 1 2 2 2 1 1 1 3 3 2 3 3 2 1 2 3 3 2 1 2 1 \end{verbatim} } \end{center} \end{tabular} \caption{``\texttt{deco 1}'' target decomposition file for $\UB(2,3)$, compiled with the \texttt{acpl} tool from the ``\texttt{deco 0}'' file displayed in Figure~\ref{fig-file-targetdeco-zero}.} \label{fig-file-targetdeco-one} \end{figure} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_f_gr3.eps000066400000000000000000000337521514310134000256570ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Title: m_f_gr3.fig %%Creator: fig2dev Version 3.2.8b %%CreationDate: 2024-10-17 00:52:10 %%BoundingBox: 0 0 510 362 %%Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /rl {rlineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /xfig_image {image Data flushfile} def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { sa n 0 362 m 0 0 l 510 0 l 510 362 l cp clip -35.1 396.7 tr 1 -1 sc $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 20 /Courier ff 266.67 scf sf 600 825 m gs 1 -1 sc (baseval) col0 sh gr % Polyline 0 slj 0 slc 7.500 slw n 6525 1950 m 7425 750 l 7725 1950 l 6525 1950 l 7125 3150 l 7725 1950 l 8625 1050 l 7425 750 l gs col0 s gr % Polyline n 7125 3150 m 8625 3150 l 7725 1950 l 8925 1950 l 8625 1050 l gs col0 s gr % Polyline gs clippath 8557 4957 m 8543 4957 l 8520 4814 l 8580 4814 l cp eoclip n 4050 3900 m 4050 4200 l 8550 4200 l 8550 4950 l gs col0 s gr gr % arrowhead n 8520 4814 m 8550 4934 l 8580 4814 l 8520 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7957 4957 m 7943 4957 l 7920 4814 l 7980 4814 l cp eoclip n 3750 3900 m 3750 4275 l 7950 4275 l 7950 4950 l gs col0 s gr gr % arrowhead n 7920 4814 m 7950 4934 l 7980 4814 l 7920 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7357 4957 m 7343 4957 l 7320 4814 l 7380 4814 l cp eoclip n 3450 3900 m 3450 4350 l 7350 4350 l 7350 4950 l gs col0 s gr gr % arrowhead n 7320 4814 m 7350 4934 l 7380 4814 l 7320 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6457 4957 m 6443 4957 l 6420 4814 l 6480 4814 l cp eoclip n 3150 3900 m 3150 4425 l 6450 4425 l 6450 4950 l gs col0 s gr gr % arrowhead n 6420 4814 m 6450 4934 l 6480 4814 l 6420 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5557 4957 m 5543 4957 l 5520 4814 l 5580 4814 l cp eoclip n 2850 3900 m 2850 4500 l 5550 4500 l 5550 4950 l gs col0 s gr gr % arrowhead n 5520 4814 m 5550 4934 l 5580 4814 l 5520 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4657 4957 m 4643 4957 l 4620 4814 l 4680 4814 l cp eoclip n 2550 3900 m 2550 4575 l 4650 4575 l 4650 4950 l gs col0 s gr gr % arrowhead n 4620 4814 m 4650 4934 l 4680 4814 l 4620 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2857 4957 m 2843 4957 l 2820 4814 l 2880 4814 l cp eoclip n 2250 3900 m 2250 4650 l 2850 4650 l 2850 4950 l gs col0 s gr gr % arrowhead n 2820 4814 m 2850 4934 l 2880 4814 l 2820 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline [15 45] 45 sd n 8400 4950 m 8700 5250 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 4950 m 8700 4950 l 8700 5250 l 8400 5250 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8700 4950 m 8400 5250 l gs col0 s gr [] 0 sd % Polyline gs clippath 2843 5243 m 2857 5243 l 2880 5386 l 2820 5386 l cp eoclip n 1950 6300 m 1950 5550 l 2850 5550 l 2850 5250 l gs col0 s gr gr % arrowhead n 2880 5386 m 2850 5266 l 2820 5386 l 2880 5386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4043 5243 m 4057 5243 l 4080 5386 l 4020 5386 l cp eoclip n 2250 6300 m 2250 5625 l 4050 5625 l 4050 5250 l gs col0 s gr gr % arrowhead n 4080 5386 m 4050 5266 l 4020 5386 l 4080 5386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5543 5243 m 5557 5243 l 5580 5386 l 5520 5386 l cp eoclip n 2550 6300 m 2550 5700 l 5550 5700 l 5550 5250 l gs col0 s gr gr % arrowhead n 5580 5386 m 5550 5266 l 5520 5386 l 5580 5386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6143 5243 m 6157 5243 l 6180 5386 l 6120 5386 l cp eoclip n 2850 6300 m 2850 5775 l 6150 5775 l 6150 5250 l gs col0 s gr gr % arrowhead n 6180 5386 m 6150 5266 l 6120 5386 l 6180 5386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7043 5243 m 7057 5243 l 7080 5386 l 7020 5386 l cp eoclip n 3150 6300 m 3150 5850 l 7050 5850 l 7050 5250 l gs col0 s gr gr % arrowhead n 7080 5386 m 7050 5266 l 7020 5386 l 7080 5386 l cp gs 0.00 setgray ef gr col0 s /Courier ff 266.67 scf sf 600 1425 m gs 1 -1 sc (vertnbr) col0 sh gr /Courier ff 266.67 scf sf 600 3825 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 266.67 scf sf 600 5175 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 266.67 scf sf 600 3225 m gs 1 -1 sc (vendtab) col0 sh gr /Courier ff 266.67 scf sf 600 6525 m gs 1 -1 sc (vnhdtab) col0 sh gr /Courier ff 266.67 scf sf 600 2625 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 266.67 scf sf 600 2025 m gs 1 -1 sc (vnohnbr) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 0 slj 0 slc 7.500 slw n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3600 m 2700 3600 l 2700 3900 l 2400 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2425 3840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3000 3600 m 3300 3600 l 3300 3900 l 3000 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3025 3840 m gs 1 -1 sc (16) col0 sh gr % Polyline n 3600 3600 m 3900 3600 l 3900 3900 l 3600 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3625 3840 m gs 1 -1 sc (21) col0 sh gr % Polyline n 5100 4950 m 5400 4950 l 5400 5250 l 5100 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 4950 m 2700 4950 l 2700 5250 l 2400 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 4950 m 3600 4950 l 3600 5250 l 3300 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 4950 m 3900 4950 l 3900 5250 l 3600 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 4950 m 5100 4950 l 5100 5250 l 4800 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 4950 m 5700 4950 l 5700 5250 l 5400 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 4950 m 2100 4950 l 2100 5250 l 1800 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3600 m 2400 3600 l 2400 3900 l 2100 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2200 3840 m gs 1 -1 sc (4) col0 sh gr % Polyline n 2700 3600 m 3000 3600 l 3000 3900 l 2700 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2725 3840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 1800 3600 m 2100 3600 l 2100 3900 l 1800 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 3600 m 4200 3600 l 4200 3900 l 3900 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3925 3840 m gs 1 -1 sc (23) col0 sh gr % Polyline n 2100 4950 m 2400 4950 l 2400 5250 l 2100 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 4950 m 3000 4950 l 3000 5250 l 2700 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 4950 m 3300 4950 l 3300 5250 l 3000 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 4950 m 4800 4950 l 4800 5250 l 4500 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 4950 m 6000 4950 l 6000 5250 l 5700 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 6300 m 2100 6300 l 2100 6600 l 1800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 6300 m 2400 6300 l 2400 6600 l 2100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 6300 m 2700 6300 l 2700 6600 l 2400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2425 6540 m gs 1 -1 sc (13) col0 sh gr % Polyline n 2700 6300 m 3000 6300 l 3000 6600 l 2700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2725 6540 m gs 1 -1 sc (15) col0 sh gr % Polyline n 3000 6300 m 3300 6300 l 3300 6600 l 3000 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3025 6540 m gs 1 -1 sc (18) col0 sh gr % Polyline n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 1825 2640 m gs 1 -1 sc (22) col0 sh gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3600 m 3600 3600 l 3600 3900 l 3300 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 4950 m 8100 4950 l 8100 5250 l 7800 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline gs clippath 1957 4957 m 1943 4957 l 1920 4814 l 1980 4814 l cp eoclip n 1950 3900 m 1950 4950 l gs col0 s gr gr % arrowhead n 1920 4814 m 1950 4934 l 1980 4814 l 1920 4814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2107 3607 m 2093 3607 l 2070 3464 l 2130 3464 l cp eoclip n 1800 3150 m 2100 3150 l 2100 3600 l gs col0 s gr gr % arrowhead n 2070 3464 m 2100 3584 l 2130 3464 l 2070 3464 l cp gs 0.00 setgray ef gr col0 s % Polyline n 8100 4950 m 8400 4950 l 8400 5250 l 8100 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 4950 m 7800 4950 l 7800 5250 l 7500 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 4950 m 7200 4950 l 7200 5250 l 6900 5250 l cp gs 0.90 setgray ef gr gs col0 s gr % Polyline n 6600 4950 m 6900 4950 l 6900 5250 l 6600 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 4950 m 4200 4950 l 4200 5250 l 3900 5250 l cp gs 0.90 setgray ef gr gs col0 s gr % Polyline n 6000 4950 m 6300 4950 l 6300 5250 l 6000 5250 l cp gs 0.90 setgray ef gr gs col0 s gr % Polyline n 6300 4950 m 6600 4950 l 6600 5250 l 6300 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 4950 m 4500 4950 l 4500 5250 l 4200 5250 l cp gs 0.90 setgray ef gr gs col0 s gr % Polyline n 7200 4950 m 7500 4950 l 7500 5250 l 7200 5250 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3325 3840 m gs 1 -1 sc (19) col0 sh gr % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw 0 slc n 6525 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7725 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8625 1050 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7125 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8925 1950 150 150 0 360 DrawEllipse gs 0.90 setgray ef gr gs col0 s gr % Ellipse n 8625 3150 150 150 0 360 DrawEllipse gs 0.90 setgray ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 266.67 scf sf 1900 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 1900 1440 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 6475 2040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 7675 2040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 7375 840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 8575 1140 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 7075 3240 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 5200 5190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 5190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 3400 5190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3700 5190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 4900 5190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 5500 5190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 1900 5190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 1900 3840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 2200 5190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 2800 5190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 5190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 4600 5190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 5800 5190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 1900 6540 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 2200 6540 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 266.67 scf sf 1900 2040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 8575 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 7900 5190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 8200 5190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 7600 5190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 7300 5190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 7000 5190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 6400 5190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 6700 5190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 6100 5190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 4000 5190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 4300 5190 m gs 1 -1 sc (6) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 266.67 scf sf 8875 2040 m gs 1 -1 sc (7) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_f_gr3.fig000066400000000000000000000224431514310134000256300ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.8b Landscape Center Inches Letter 100.00 Single 0 1200 2 6 600 600 2100 900 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 195 135 1900 840 1\001 -6 4 0 0 20 0 12 16 0.0000 4 180 1155 600 825 baseval\001 -6 6 1800 1200 2100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 4 0 0 10 0 0 16 0.0000 4 195 135 1900 1440 7\001 -6 6 6375 1800 6675 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6525 1950 150 150 6525 1950 6675 1950 4 0 0 10 0 0 16 0.0000 4 195 135 6475 2040 1\001 -6 6 7575 1800 7875 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7725 1950 150 150 7725 1950 7875 1950 4 0 0 10 0 0 16 0.0000 4 195 135 7675 2040 2\001 -6 6 7275 600 7575 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 750 150 150 7425 750 7575 750 4 0 0 10 0 0 16 0.0000 4 195 135 7375 840 3\001 -6 6 8475 900 8775 1200 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8625 1050 150 150 8625 1050 8775 1050 4 0 0 10 0 0 16 0.0000 4 195 135 8575 1140 4\001 -6 6 6975 3000 7275 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7125 3150 150 150 7125 3150 7275 3150 4 0 0 10 0 0 16 0.0000 4 195 135 7075 3240 5\001 -6 6 2400 3600 2700 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3600 2700 3600 2700 3900 2400 3900 2400 3600 4 0 0 15 0 0 16 0.0000 4 195 270 2425 3840 10\001 -6 6 3000 3600 3300 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3600 3300 3600 3300 3900 3000 3900 3000 3600 4 0 0 15 0 0 16 0.0000 4 195 270 3025 3840 16\001 -6 6 3600 3600 3900 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3600 3900 3600 3900 3900 3600 3900 3600 3600 4 0 0 15 0 0 16 0.0000 4 195 270 3625 3840 21\001 -6 6 5100 4950 5400 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 4950 5400 4950 5400 5250 5100 5250 5100 4950 4 0 0 10 0 0 16 0.0000 4 195 135 5200 5190 4\001 -6 6 2400 4950 2700 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 4950 2700 4950 2700 5250 2400 5250 2400 4950 4 0 0 10 0 0 16 0.0000 4 195 135 2500 5190 5\001 -6 6 3300 4950 3600 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 4950 3600 4950 3600 5250 3300 5250 3300 4950 4 0 0 10 0 0 16 0.0000 4 195 135 3400 5190 1\001 -6 6 3600 4950 3900 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 4950 3900 4950 3900 5250 3600 5250 3600 4950 4 0 0 10 0 0 16 0.0000 4 195 135 3700 5190 3\001 -6 6 4800 4950 5100 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 4950 5100 4950 5100 5250 4800 5250 4800 4950 4 0 0 10 0 0 16 0.0000 4 195 135 4900 5190 2\001 -6 6 5400 4950 5700 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 4950 5700 4950 5700 5250 5400 5250 5400 4950 4 0 0 10 0 0 16 0.0000 4 195 135 5500 5190 3\001 -6 6 1800 4950 2100 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 4950 2100 4950 2100 5250 1800 5250 1800 4950 4 0 0 10 0 0 16 0.0000 4 195 135 1900 5190 3\001 -6 6 2100 3600 2400 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3600 2400 3600 2400 3900 2100 3900 2100 3600 4 0 0 15 0 0 16 0.0000 4 195 135 2200 3840 4\001 -6 6 2700 3600 3000 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3600 3000 3600 3000 3900 2700 3900 2700 3600 4 0 0 15 0 0 16 0.0000 4 195 270 2725 3840 13\001 -6 6 1800 3600 2100 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3600 2100 3600 2100 3900 1800 3900 1800 3600 4 0 0 10 0 0 16 0.0000 4 195 135 1900 3840 1\001 -6 6 3900 3600 4200 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 3600 4200 3600 4200 3900 3900 3900 3900 3600 4 0 0 15 0 0 16 0.0000 4 195 270 3925 3840 23\001 -6 6 2100 4950 2400 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 4950 2400 4950 2400 5250 2100 5250 2100 4950 4 0 0 10 0 0 16 0.0000 4 195 135 2200 5190 2\001 -6 6 2700 4950 3000 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 4950 3000 4950 3000 5250 2700 5250 2700 4950 4 0 0 10 0 0 16 0.0000 4 195 135 2800 5190 5\001 -6 6 3000 4950 3300 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 4950 3300 4950 3300 5250 3000 5250 3000 4950 4 0 0 10 0 0 16 0.0000 4 195 135 3100 5190 4\001 -6 6 4500 4950 4800 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 4950 4800 4950 4800 5250 4500 5250 4500 4950 4 0 0 10 0 0 16 0.0000 4 195 135 4600 5190 1\001 -6 6 5700 4950 6000 5250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 4950 6000 4950 6000 5250 5700 5250 5700 4950 4 0 0 10 0 0 16 0.0000 4 195 135 5800 5190 2\001 -6 6 1800 6300 2100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 6300 2100 6300 2100 6600 1800 6600 1800 6300 4 0 0 10 0 0 16 0.0000 4 195 135 1900 6540 4\001 -6 6 2100 6300 2400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 6300 2400 6300 2400 6600 2100 6600 2100 6300 4 0 0 10 0 0 16 0.0000 4 195 135 2200 6540 8\001 -6 6 2400 6300 2700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 6300 2700 6300 2700 6600 2400 6600 2400 6300 4 0 0 15 0 0 16 0.0000 4 195 270 2425 6540 13\001 -6 6 2700 6300 3000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 6300 3000 6300 3000 6600 2700 6600 2700 6300 4 0 0 15 0 0 16 0.0000 4 195 270 2725 6540 15\001 -6 6 3000 6300 3300 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 6300 3300 6300 3300 6600 3000 6600 3000 6300 4 0 0 15 0 0 16 0.0000 4 195 270 3025 6540 18\001 -6 6 1800 2400 2100 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 4 0 0 15 0 0 16 0.0000 4 195 270 1825 2640 22\001 -6 6 1800 1800 2100 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 4 0 0 10 0 0 16 0.0000 4 195 135 1900 2040 5\001 -6 1 3 0 1 0 -1 12 0 2 0.000 1 0.0000 8925 1950 150 150 8925 1950 9075 1950 1 3 0 1 0 -1 12 0 2 0.000 1 0.0000 8625 3150 150 150 8625 3150 8775 3150 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 8 6525 1950 7425 750 7725 1950 6525 1950 7125 3150 7725 1950 8625 1050 7425 750 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 5 7125 3150 8625 3150 7725 1950 8925 1950 8625 1050 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3600 3600 3600 3600 3900 3300 3900 3300 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 4950 8100 4950 8100 5250 7800 5250 7800 4950 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 1950 3900 1950 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4050 3900 4050 4200 8550 4200 8550 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 3900 3750 4275 7950 4275 7950 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 3900 3450 4350 7350 4350 7350 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 3900 3150 4425 6450 4425 6450 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 3900 2850 4500 5550 4500 5550 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 3900 2550 4575 4650 4575 4650 4950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 3900 2250 4650 2850 4650 2850 4950 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 1800 3150 2100 3150 2100 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 4950 8400 4950 8400 5250 8100 5250 8100 4950 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 4950 7800 4950 7800 5250 7500 5250 7500 4950 2 2 0 1 0 -1 15 0 2 0.000 0 0 7 0 0 5 6900 4950 7200 4950 7200 5250 6900 5250 6900 4950 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 4950 6900 4950 6900 5250 6600 5250 6600 4950 2 2 0 1 0 -1 15 0 2 0.000 0 0 7 0 0 5 3900 4950 4200 4950 4200 5250 3900 5250 3900 4950 2 2 0 1 0 -1 15 0 2 0.000 0 0 7 0 0 5 6000 4950 6300 4950 6300 5250 6000 5250 6000 4950 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 4950 6600 4950 6600 5250 6300 5250 6300 4950 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8400 4950 8700 5250 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 8400 4950 8700 4950 8700 5250 8400 5250 8400 4950 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8700 4950 8400 5250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 1950 6300 1950 5550 2850 5550 2850 5250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 6300 2250 5625 4050 5625 4050 5250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 6300 2550 5700 5550 5700 5550 5250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 6300 2850 5775 6150 5775 6150 5250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 6300 3150 5850 7050 5850 7050 5250 2 2 0 1 0 -1 15 0 2 0.000 0 0 7 0 0 5 4200 4950 4500 4950 4500 5250 4200 5250 4200 4950 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 4950 7500 4950 7500 5250 7200 5250 7200 4950 4 0 0 20 0 12 16 0.0000 4 180 1155 600 1425 vertnbr\001 4 0 0 8 0 0 16 0.0000 4 195 135 8875 2040 7\001 4 0 0 10 0 0 16 0.0000 4 195 135 8575 3240 6\001 4 0 0 15 0 0 16 0.0000 4 195 270 3325 3840 19\001 4 0 0 10 0 0 16 0.0000 4 195 135 7900 5190 4\001 4 0 0 20 0 12 16 0.0000 4 180 1155 600 3825 verttab\001 4 0 0 20 0 12 16 0.0000 4 240 1155 600 5175 edgetab\001 4 0 0 20 0 12 16 0.0000 4 180 1155 600 3225 vendtab\001 4 0 0 10 0 0 16 0.0000 4 195 135 8200 5190 2\001 4 0 0 10 0 0 16 0.0000 4 195 135 7600 5190 5\001 4 0 0 10 0 0 16 0.0000 4 195 135 7300 5190 2\001 4 0 0 10 0 0 16 0.0000 4 195 135 7000 5190 6\001 4 0 0 10 0 0 16 0.0000 4 195 135 6400 5190 1\001 4 0 0 10 0 0 16 0.0000 4 195 135 6700 5190 2\001 4 0 0 10 0 0 16 0.0000 4 195 135 6100 5190 7\001 4 0 0 10 0 0 16 0.0000 4 195 135 4000 5190 7\001 4 0 0 10 0 0 16 0.0000 4 195 135 4300 5190 6\001 4 0 0 20 0 12 16 0.0000 4 180 1155 600 6525 vnhdtab\001 4 0 0 20 0 12 16 0.0000 4 240 1155 600 2625 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 180 1155 600 2025 vnohnbr\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_i.tex000066400000000000000000000013621514310134000251100ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_i.tex % % Sujet : Manuel de maintenance % % du projet 'Scotch' % % Introduction % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} This document is a starting point for the persons interested in using \scotch\ as a testbed for their new partitioning methods, and/or willing to contribute to it by making these methods available to the rest of the scientific community. Much information is missing. If you need specific information, please send an e-mail, so that relevant additional information can be added to this document. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_m.tex000066400000000000000000000353641514310134000251250ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Title : m_m.tex % % Subject : Maintenance manual of % % Scotch % % Procedures % % Author : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Procedures for new developments and release} \subsection{Adding methods to the \libscotch\ library} \label{sec-method} The \libscotch\ has been carefully designed to allow external contributors to add their new partitioning or ordering methods, and to use \scotch\ as a testbed for them. \subsubsection{What to add} There are currently seven types of methods which can be added: \begin{itemize} \item k-way graph mapping methods, in module \texttt{kgraph}; \item graph bipartitioning methods by means of edge separators, in module \texttt{bgraph}, used by the mapping method by dual recursive bipartitioning, implemented in \texttt{kgraph\_\lbt map\_\lbt rb.[ch]}; \item graph ordering methods, in module \texttt{hgraph}; \item graph separation methods by means of vertex separators, in module \texttt{vgraph}, used by the nested dissection ordering method implemented in \texttt{hgraph\_\lbt order\_\lbt nd.[ch]}; \item mesh ordering methods, in module \texttt{hmesh}; \item mesh separation methods with vertex separators, in module \texttt{vmesh}, used by the nested dissection ordering method implemented in \texttt{hmesh\_\lbt order\_\lbt nd.[ch]}; \item graph partitioning methods with separator overlap, in module \texttt{wgraph}. \end{itemize} Every method of these seven types operates on instances of augmented graph structures that contain, in addition to the graph topology, data related to the current state of the partition or of the ordering. For instance, all of the graph bipartitioning methods operate on an instance of a \texttt{Bgraph}, defined in \texttt{bgraph.h}, and which contains fields such as \texttt{compload0}, the current load sum of the vertices assigned to the first part, \texttt{commload}, the load sum of the cut edges, etc. In order to understand better the meaning of each of the fields used by some augmented graph or mesh structure, contributors can read the code of the consistency checking routines, located in files ending in \texttt{\_check.c}\enspace, such as \texttt{bgraph\_check.c} for a \texttt{Bgraph} structure. These routines are regularly called during the execution of the debug version of \scotch\ to ease bug tracking. They are time-consuming but proved very helpful in the development and testing of new methods. \subsubsection{Where to add} Let us assume that you want to code a new graph separation routine. Your routine will operate on a \texttt{Vgraph} structure, and thus will be stored in files called \texttt{vgraph\_\lbt separate\_ xy\lbt .[ch]}, where \texttt{xy} is a two-letter reminder of the name of your algorithm. Look into the \libscotch\ source directory for already used codenames, and pick a free one. In case you have more that one single source file, use extended names, such as \texttt{vgraph\_\lbt separate\_\lbt xy\_\lbt subname\lbt .[ch]}\enspace . In order to ease your coding, copy the files of a simple and already existing method and use them as a pattern for the interface of your new method. Some methods have an optional parameter data structure, others do not. Browse through all existing methods to find the one that looks closest to what you want. Some methods can be passed parameters at run time from the strategy string parser. These parameters can be of fixed types only. These types are: \begin{itemize} \item an integer (\texttt{int}) type, \item a floating-point (\texttt{double}) type, \item an enumerated (\texttt{char}) type: this type is used to make a choice among a list of single character values, such as ``\texttt{yn}''. It is more readable than giving integer numerical values to method option flags, \item a strategy (\scotch\ \texttt{Strat} type): a method can be passed a sub-strategy of a given type, which can be run on an augmented graph of the proper type. For instance, the nested dissection method in \texttt{hgraph\_\lbt order\_\lbt nd\lbt .c} uses a graph separation strategy to compute its vertex separators. \end{itemize} \subsubsection{Declaring the new method to the parser} Once the new method has been coded, its interface must be known to the parser, so that it can be used in strategy strings. All of this is done in the module strategy method files, the name of which always end in \texttt{\_st.[ch]}, that is, \texttt{vgraph\_\lbt separate\_\lbt st.[ch]} for the \texttt{vgraph} module. Both files are to be updated. In the header file {*\_st.h}, a new identifier must be created for the new method in the \texttt{St\lbt Method\lbt Type} enumeration type, preferrably placed in alphabetical order. In file {*\_st.c}, there are several places to update. First, in the beginning of the module file, the header file of the new method, \texttt{vgraph\_\lbt separate\_\lbt xy.h} in this example, must be added in alphabetical order to the list of included method header files. Then, if the new method has parameters, an instance of the method parameter structure must be created, which will hold the default values for the method. This is in fact a \texttt{union} structure, of the following form: {\tt\begin{verbatim} static union { VgraphSeparateXyParam param; StratNodeMethodData padding; } vgraphseparatedefaultxy = { { ... } }; \end{verbatim}} where the dots should be replaced by the list of default values of the fields of the \texttt{Vgraph\lbt Separate\lbt Xy\lbt Param} structure. Note that the size of the \texttt{Strat\lbt Node\lbt Method\lbt Data} structure, which is used as a generic padding structure, must always be greater than or equal to the size of each of the parameter structures. If your new parameter structure is larger, you will have to update the size of the \texttt{Strat\lbt Node\lbt Method\lbt Data} type in file \texttt{parser.h}\enspace. The size of the \texttt{Strat\lbt Node\lbt Method\lbt Data} type does not depend directly on the size of the parameter structures (as could have been done by making it an union of all of them) so as to to reduce the dependencies between the files of the library. In most cases, the default size is sufficient, and a test is added in the beginning of all method routines to ensure it is the case in practice. Finally, the first two method tables must be filled accordingly. In the first one, of type \texttt{Strat\lbt Method\lbt Tab}, one must add a new line linking the method identifier to the character code used to name the method in strategy strings (which must be chosen among all of the yet unused letters), the pointer to the routine, and the pointer to the above default parameter structure if it exists (else, a \texttt{NULL} pointer must be provided). In the second one, of type \texttt{Strat\lbt Param\lbt Tab}, one must add one line per method parameter, giving the identifier of the method, the type of the parameter, the name of the parameter in the strategy string, the base address of the default parameter structure, the actual address of the field in the parameter structure (both fields are required because the relative offset of the field with respect to the starting address of the structure cannot be computed at compile-time), and an optional pointer that references either the strategy table to be used to parse the strategy parameter (for strategy parameters) or a string holding all of the values of the character flags (for an enumerated type), this pointer being set to \texttt{NULL} for all of the other parameter types (integer and floating point). \subsubsection{Adding the new method to the \textsc{Make} compilation environment} In order to be compiled with the \textsc{Make} environment, the new method must files be added to the \texttt{Makefile} of the \texttt{src/\lbt libscotch} source directory. There are several places to update. First, you have to create the entry for the new method source files themselves. The best way to proceed is to search for the one of an already existing method, such as \texttt{vgraph\_\lbt separate\_\lbt fm}, and copy it to the right neighboring place, preferrably following the alphabetical order. Then, you have to add the new header file to the dependency list of the module strategy method, that is, \texttt{vgraph\_\lbt separate\_\lbt st} for graph separation methods. Here again, search for the occurences of string \texttt{vgraph\_\lbt separate\_\lbt fm} to see where it is done. Finally, add the new object file to the component list of the \texttt{libscotch} library file. \subsubsection{Adding the new method to the \textsc{CMake} compilation environment} In order to be compiled with the \textsc{Make} environment, the new method files must be added to the \texttt{CMakeLists.txt} of the \texttt{src/\lbt libscotch} source directory. \\ Once all of the above is done, you can recompile \scotch\ and be able to use your new method in strategy strings. \subsection{Adding routines to the public API} \label{sec-routine} The public API of \scotch\ exposes a set of routines which can be called by user programs. These public symbols are subject to specific procedures, in particular to rename them according to the users' needs. \begin{itemize} \item Implement the C interface of the routine in a \texttt{src/\lbt libscotch/\lbt library\_*.c} source file. This source file must include \texttt{src/\lbt libscotch/\lbt module.h}\enspace, so that function renaming can take place whenever necessary; \item Whether appropriate, implement the Fortran interface of the routine within a \texttt{src/\lbt libscotch/\lbt library\_*\_f.c} source file. The routines in this file will call the former ones. This source file must include \texttt{src/\lbt libscotch/\lbt module.h} as well, so that function renaming can take place whenever necessary; \item Create a \texttt{SCOTCH\_\lbt NAME\_\lbt PUBLIC} macro in \texttt{src/\lbt libscotch/\lbt module.h}\enspace, so that function renaming can take place, for instance when symbols have to be suffixed; \item Create the relevant manual pages in the \scotch\ or \ptscotch\ user's manual. \end{itemize} \subsection{Release procedure} \label{sec-data} This section describes the procedure for releasing a new version of \scotch\ on the Inria GitLab repository: \url{https://gitlab.inria.fr/scotch/scotch}~. All commands are relative to the ``\texttt{./src}'' directory of the \scotch\ distribution. \subsubsection{Removal of debugging flags} Verification of the absence of level-3 debugging flags (such definitions should contain the keyword ``\texttt{BROL}'' in the associated comment, as an alternate search keyword): \begin{lstlisting} grep 'DEBUG_.\+3' *c | grep define \end{lstlisting} \subsubsection{Symbol renaming} After compiling with ``\texttt{SCOTCH\_\lbt RENAME}'', verification of the absence of unprotected names: \begin{lstlisting} make scotch ptscotch esmumps ptesmumps nm ../lib/libscotch.a | grep -v -e SCOTCH -e ESMUMPS -e " b " -e " d " -e " t " -e " U " -e "scotchf" -e "fprintf" -e "fscanf" -e "malloc" -e "realloc" -e "free" -e "memset" -e "random" -e "get_pc_thunk." -e " r .LC" | (sed -z 's/\n/#/g' ; echo -n '#') | sed 's/[a-zA-Z0-9_]\+[.]o[:]##//g' | sed 's/#/\n/g' > /tmp/brol.txt nm ../lib/libptscotch.a | grep -v -e SCOTCH -e ESMUMPS -e " b " -e " d " -e " t " -e " U " -e "scotchf" -e "fprintf" -e "fscanf" -e "malloc" -e "realloc" -e "free" -e "memset" -e "random" -e "get_pc_thunk." -e " r .LC" | (sed -z 's/\n/#/g' ; echo -n '#') | sed 's/[a-zA-Z0-9_]\+[.]o[:]##//g' | sed 's/#/\n/g' >> /tmp/brol.txt nm ../lib/libesmumps.a | grep -v -e SCOTCH -e ESMUMPS -e " b " -e " d " -e " t " -e " U " -e "scotchf" -e "fprintf" -e "fscanf" -e "malloc" -e "realloc" -e "free" -e "memset" -e "random" -e "get_pc_thunk." -e " r .LC" | (sed -z 's/\n/#/g' ; echo -n '#') | sed 's/[a-zA-Z0-9_]\+[.]o[:]##//g' | sed 's/#/\n/g' >> /tmp/brol.txt nm ../lib/libptesmumps.a | grep -v -e SCOTCH -e ESMUMPS -e " b " -e " d " -e " t " -e " U " -e "scotchf" -e "fprintf" -e "fscanf" -e "malloc" -e "realloc" -e "free" -e "memset" -e "random" -e "get_pc_thunk." -e " r .LC" | (sed -z 's/\n/#/g' ; echo -n '#') | sed 's/[a-zA-Z0-9_]\+[.]o[:]##//g' | sed 's/#/\n/g' >> /tmp/brol.txt more /tmp/brol.txt \end{lstlisting} \subsubsection{Update of copyright year} Verification and possible modification of the copyright year, defined in the ``\texttt{SCOTCH\_\lbt COPYRIGHT\_\lbt STRING}'' macro: \begin{lstlisting} emacs libscotch/module.h \end{lstlisting} \noi In case the year is updated, create a commit with the message: \begin{quote} Set year to 20XX in copyright string \end{quote} \subsubsection{Update of version number} For minor revisions: \begin{lstlisting} emacs Makefile ../doc/src/version.tex ../CMakeLists.txt \end{lstlisting} \noi Then, for major releases: \begin{lstlisting} emacs ../doc/src/scotch/Makefile ../doc/src/ptscotch/Makefile ../doc/src/maint/Makefile ../INSTALL.txt ../README.txt \end{lstlisting} \noi Create a commit with the message: \begin{quote} Set revision marks to vX.Y.Z \end{quote} \subsubsection{Generation of documentation} Once the version number is changed in relevant files, generate the documentation: \begin{lstlisting} cd ../doc/src/maint make make install cd ../ptscotch make make install cd ../scotch make make install cd ../../../src \end{lstlisting} \noi In case of change of major or minor version, remove the old documentation files and add the new ones: \begin{lstlisting} cd ../doc/ git rm -f *X.Y* git add *X'.Y'* git commit *X.Y* *X'.Y'* cd ../src \end{lstlisting} Create a commit with the message: \begin{quote} Generate documentation for vX.Y.Z \end{quote} \subsubsection{Creation of the local tag} On the local master branch: \begin{lstlisting} git tag vX.Y.Z git push --tags origin \end{lstlisting} \subsubsection{Merging} Check that the continuous integration went well. \noi In \texttt{fpellegr/scotch}, on the left, in tab ``Merge request'', clich on ``New merge request'', to \texttt{scotch/scotch}. Put version number as title (e.g.: ``v7.0.7''), and, in the message, a summary and itemized list of the improvements brought by the release. Then, click to generate the merge request. \noi In \texttt{scotch/scotch}, on the left, in tab ``Merge request'', click on the new merge request. Click on ``Approve'', then on ``Merge''. A new (short) pipe-line is launched, this time in \texttt{scotch/scotch}. \noi If the pipe-line succeeds, click to finalize the merging. \subsubsection{Creation of the public tag} In the \texttt{scotch/scotch} home page, click on the icon with a label (``Tag''), then on ``New tag''. Put the version number as the tag name (\eg, ``v7.0.7''). \subsubsection{Generation of the asset} In the \texttt{scotch/scotch} home page, click on the icon with a rocket (``Releases''), then on ``New release''. Select the newly created tag. Put as comment the text of the merge request. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_n.tex000066400000000000000000000455341514310134000251260ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Title : m_d.tex % % Subject : Maintenance manual of Scotch % % Style and naming conventions % % Author : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Coding style} The \scotch\ coding style is now well established. Hence, potential contributors are requested to abide by it, to provide a global ease of reading while browsing the code, and to ease the work of their followers. In this section, the numbering of the characters of each line is assumed to start from zero. \subsection{Typing} \subsubsection{Spacing} Expressions are like sentences, where words are separated by spaces. Hence, an expression like ``\texttt{if~(n == NULL)~\{}'' reads: ``if $n$ is-equal-to NULL then'', with words separated by single spaces. As in standard typesetting, there is no space after an opening parenthesis, nor before a closing one, because they are not words. When it follows a keyword, an opening brace is always on the same line as the keyword (save for special cases, \eg, preprocessing macros between the keyword and the opening brace). This is meant to maximize the number of ``useful readable lines'' on the screen. However, closing braces are on a separate line, aligned with the indent of the line that contains the matching opening brace. This is meant to find in a glance the line that contains this opening brace. Brackets are not considered as words: they are stuck both to the word on their left and the word on their right. Reference and dereference operators ``\texttt{\&}'' and ``\texttt{*}'' are stuck to the word on their right. However, the multiplication operator ``\texttt{*}'' counts as a word in arithmetic expressions. Semicolons are always stuck to the word on their left, except when they follow an empty instruction, e.g., an empty loop body or an empty \texttt{for} field. Empty instructions are materialized by a single space character, which makes the semicolon separated from the preceding word. For instance: \begin{lstlisting} for (hashbas = hashold - 1; hashtab[hashbas].vertnum != ~0; hashbas --) ; \end{lstlisting} Ternary operator elements ``\texttt{?}'' and ``\texttt{:}'' are considered as words and are surrounded by spaces. When the ternary construct spans across multiple lines, they are placed at the beginning of each line, before the expression they condition, and not at the end of the previous line. \subsubsection{Aligning} When several consecutive lines contain similar expressions that are strongly connected, e.g. arguments of a \texttt{mem\lbt Alloc\lbt Group()} routine, or assignments of multiple fields of the same structure(s), extra spaces can be added to align parts of the expressions. This is a matter of style and opportunity. For instance, when consecutive lines contain function calls where opening parentheses are close to each other and their arguments overlap, open parentheses have to be aligned. However, when arguments do not overlap, alignment is not required (e.g., for \texttt{return} statements with small parameters). \subsubsection{The \texttt{goto} keyword} The use of the \texttt{goto} keyword should be restricted to the very specific cases when doing without it would significantly weigh down the coding style (\eg, through duplication of a long or complex piece of code), and/or would complicate the understanding of the code, and/or would impede performance (\eg, by adding a dedicated flag that would require extra tests within nested loops). In the following code snippet, the use of a \texttt{goto} statement allows one to jump directly to a long block that would else have to be duplicated, or the execution of which would require to add a dedicated flag to pass in sequence the two tests that guard the block. \begin{lstlisting} if (hashtab[helmend].vertnum != velmnum) { /* If edge not yet created */ ... /* Record edge in hash table */ nghbnbr = ...; /* Set number of remaining neighbors */ goto test; /* Is it enough to create the edge ? */ } if (hashtab[helmend].vertend == velmend) { /* If hash slot found */ if (... > 0) { /* If edge not already created */ hashtab[helmend].nghbnbr = -- nghbnbr; /* One more instance */ test: if (nghbnbr <= 0) { /* If threshold reached */ ... \end{lstlisting} Label names for \texttt{goto} statements should be in lowercase only, as their visibility is limited to the inside of a routine, like local variables. They should be short and telling, \eg~: ``\texttt{abort}'', ``\texttt{fail}'', ``\texttt{loop}'', ``\texttt{nomatch}'', etc. Their indentation rules are explained below. \subsubsection{The \texttt{return} keyword} While, in C, \texttt{return} is a keyword which does not need parentheses around its argument, the \scotch\ coding style treats it as if it were a function call, thus requiring parentheses around its argument when it has one. \subsection{Indenting} Indenting is subject to the following rules: \begin{itemize} \item All indents are of two characters. Hence, starting from column zero, all lines start at even column numbers. \item Tabs are never used in the source code. If your text editor replaces chunks of spaces by tabs, it is your duty to disable this feature or to make sure to replace all tabs by spaces before the files are committed. Unwanted tabs are shown in red when performing a ``\texttt{git diff}'' prior to committing. \end{itemize} Condition bodies are always indented on the line below the condition statement. ``\texttt{if}'' statements are always placed at the beginning of a new line, except when used as an ``\texttt{else~if}'' construct, in which the two keywords appear on the same line, separated by a single space. Loop bodies are always indented on the line below the loop statement, except when the loop body is an empty instruction. In this case, the terminating semicolon is placed on the same line as the loop statement, after a single space. \subsubsection{Indenting and labels} Label names for \texttt{goto} statements always start at column zero, and the colon should immediately follow the label. If at least one blank character can be placed between the colon and the indented text, the label should be placed on the same line as the text; else, the label should be placed on a separate line, immediately followed by the next line, without any blank line in-between. If a blank line is deemed necessary for the sake of readability, it should be placed before the label. \begin{lstlisting} goto fail; ... } fail: ... \end{lstlisting} \subsection{Comments} All comments are C-style, that is, of the form ``\texttt{/*}$\ldots$\texttt{*/}''. C++-style comments should never be used. There are three categories of comments: file comments, function/data structure comments, and line comments. Commenting is subject to the following rules: \begin{itemize} \item File comments are standard header blocks that must be copied as is. Hence, there is little to say about them. On top of each file should be placed a license header, which depends on the origin of the file. \item Block comments start with ``\texttt{/*}'' and end with ``\texttt{*/}'' on a separate subsequent line. Intermediate lines start with ``\texttt{**}''. All these comment markers are placed at colums zero. Comment text is separated from the comment markers by a single space character. Text in block comments is made of titles or of full sentences, that are terminated with a punctuation sign (most often a final dot). \item Line comments are of two types: structure definition line comments in header files, and code line comments. Structure definition line comments in header files start with ``\texttt{/*+}'' and end with ``\texttt{+*/}''. This is an old Doxygen syntax, which has been preserved over time. Code line comments start classically with ``\texttt{/*}'' and end with ``\texttt{*/}''. All these comments start at least at character~$50$. If the C code line is longer, comment lines start one character after the end of the line, after a single space. End comment markers are placed at least one character after the end of the comment text. When several line comments are present on consecutive lines, comment terminators are aligned to the farthest comment terminator. Comment text always starts with an uppercase letter, and have no terminating punctuation sign. They are written in the imperative mode, and a positive form (no question asked). Line comments for C pre-processing conditional macros (e.g. ``\texttt{\#else}'' or ``\texttt{\#endif}'') are not subject to indentation rules. They start one character after the keyword, and are not subject to end marker alignment, except when consecutive lines bear the same keyword (\textit{i.e.}, a ``\texttt{\#endif}'' statement). \end{itemize} \section{Naming conventions} \label{sec-naming} Data types, variables, structure fields and function names follow strict naming conventions. These conventions strongly facilitate the understanding of the meaning of the expressions, and prevent from coding mistakes. For instance, ``\texttt{verttax[edgenum]}'' would clearly be an invalid expression, as a vertex array cannot be indexed by an edge number. Hence, potential contributors are required to follow them strictly. \subsection{File inclusion markers} \label{sec-naming-file-inclusion-markers} File inclusion markers are \texttt{\#define}'s which indicate that a given source file (either a ``\texttt{.c}'' source code file or a ``\texttt{.h}'' header file) has been already encountered. To minimize risks of collisions with symbols of external libraries, file inclusion markers start with a prefix that represents the name of the project, followed by the name of the file in question (without its type suffix). While filenames can be long, this is not an issue since the length of the significant part of C~preprocessor symbols is at least 63~characters\footnote{See e.g. \url{https://gcc.gnu.org/onlinedocs/cpp/Implementation-limits.html}}, thus longer than that of C identifiers, which is 32~characters. Header file marker identifiers are suffixed with ``\texttt{\_H}'', while C source file markers have no suffix. In order to further minimize risks of collisions, file inclusion markers should be placed in a file only when needed, that is, when effectively used as the parameter of a conditional inclusion statement within another source file. The current project prefixes are: \begin{itemize} \item \texttt{SCOTCH\_}: the \scotch\ project itself; \item \texttt{ESMUMPS\_}: the \esmumps\ library, which is treated as a separate project to avoid conflicts with data structures and files that exist in both libraries, such as \texttt{Graph}'s. \end{itemize} \subsection{Variables and fields} \label{sec-naming-variables} Variables and fields of the sequential \scotch\ software are commonly built from a radical and a suffix. When contextualization is required, e.g., the same kind of variable appear in two different objects, a prefix is added. In \ptscotch, a second radical is commonly used, to inform on variable locality or duplication across processes. Common radicals are: \begin{itemize} \item \texttt{vert}: vertex. \item \texttt{velo}: vertex load. \item \texttt{vnoh}: non-halo vertex, as used in the \texttt{Hgraph} structure. \item \texttt{vnum}: vertex number, used as an index to access another vertex structure. This radical typically relates to an array that contains the vertex indices, in some original graph, corresponding to the vertices of a derived graph (e.g., an induced graph). \item \texttt{vlbl}: user-defined vertex label (at the user API level). \item \texttt{edge}: edge (\ie., arcs, in fact). \item \texttt{edlo}: edge (arc) load. \item \texttt{enoh}: non-halo edge (\ie., arcs, in fact). \item \texttt{arch}: target architecture. \item \texttt{graf}: graph. \item \texttt{mesh}: mesh. \end{itemize} Common suffices are: \begin{itemize} \item \texttt{bas}: start ``based'' value for a number range; see the ``\texttt{nnd}'' suffix below. For number basing and array indexing, see Section~\ref{sec-basing}. \item \texttt{end}: vertex end index of an edge (\eg, \texttt{vertend}, wrt. \texttt{vertnum}). The \texttt{end} suffix is a sub-category of the \texttt{num} suffix. \item \texttt{nbr}: number of instances of objects of a given radical type (e.g., \texttt{vertnbr}, \texttt{edgenbr}). They are commonly used within ``un-based'' loop constructs, such as: ``\texttt{for (vertnum = 0; vertnum < vertnbr; vertnum ++)} \ldots''. \item \texttt{nnd}: end based value for a number range, commonly used for loop boundaries. Usually, $\mathtt{*nnd} = \mathtt{*nbr} + \mathtt{baseval}$. For instance, $\mathtt{vertnnd} = \mathtt{vertnbr} + \mathtt{baseval}$. They are commonly used in based loop constructs, such as: ``\texttt{for (vertnum = baseval; vertnum < vertnnd; vertnum ++)} \ldots''. For local vertex ranges, e.g., within a thread that manages only a partial vertex range, the loop construct would be: ``\texttt{for (vertnum = vertbas; vertnum < vertnnd; vertnum ++)} \ldots''. \item \texttt{num}: based or un-based number (index) of some instance of an object of a given radical type. For instance, \texttt{vertnum} is the index of some (graph) vertex, that can be used to access adjacency (\texttt{verttab}) or vertex load (\texttt{velotab}) arrays. $0 \leq \mathtt{vertnum} < \mathtt{vertnbr}$ if the vertex index is un-based, and $\mathtt{baseval} \leq \mathtt{vertnum} < \mathtt{vertnnd}$ if the index is based, that it, counted starting from $\mathtt{baseval}$. \item \texttt{ptr}: pointer to an instance of an item of some radical type (e.g., \texttt{grafptr}). \item \texttt{sum}: sum of several values of the same radical type (e.g., \texttt{velosum}, \texttt{edlosum}). \item \texttt{tab}: reference to the first memory element of an array. Such a reference is returned by a memory allocation routine (e.g., \texttt{mem\lbt Alloc}) or allocated from the stack. \item \texttt{tax} (for ``\textit{table access}''): reference to an array that will be accessed using based indices. See Section~\ref{sec-basing}. \item \texttt{tnd}: pointer to the based after-end of an array of items of radix type (e.g. \texttt{velotnd}). Variables of this suffix are mostly used as bounds in loops. \item \texttt{val}: value of an item. For instance, \texttt{baseval} is the indexing base value, and \texttt{veloval} is the load of some vertex, that may have been read from a file. \end{itemize} Common prefixes are: \begin{itemize} \item \texttt{src}: source, wrt. active. For instance, a source graph is a plain \texttt{Graph} structure that contains only graph topology, compared to enriched graph data structures that are used for specific computations such as bipartitioning. \item \texttt{act}: active, wrt. source. An active graph is a data structure enriched with information required for specific computations, e.g. a \texttt{Bgraph}, a \texttt{Kgraph} or a \texttt{Vgraph} compared to a \texttt{Graph}. \item \texttt{ind}: induced, wrt. original. \item \texttt{src}: source, wrt. active or target. \item \texttt{org}: original, wrt. induced. An original graph is a graph from which a derived graph will be computed, e.g. an induced subgraph. \item \texttt{tgt}: target. \item \texttt{coar}: coarse, wrt. fine (e.g. \texttt{coarvertnum}, as a variable that holds the number of a coarse vertex, within some coarsening algorithm). \item \texttt{fine}: fine, wrt. coarse. \item \texttt{mult}: multinode, for coarsening. \end{itemize} \subsection{Functions} \label{sec-naming-functions} Like variables, routines of the \scotch\ software package follow a strict naming scheme, in an object-oriented fashion. Routines are always prefixed by the name of the data structure on which they operate, then by the name of the method that is applied to the said data structure. Some method names are standard for each class. Standard method names are: \begin{itemize} \item \texttt{Alloc}: dynamically allocate an object of the given class. Not always available, as many objects are allocated on the stack as local variables. \item \texttt{Init}: initialization of the object passed as parameter. \item \texttt{Free}: freeing of the external structures of the object, to save space. The object may still be used, but it is considered as ``empty'' (e.g., an empty graph). The object may be re-used after it is initialized again. \item \texttt{Exit}: freeing of the internal structures of the object. The object must not be passed to other routines after the \texttt{Exit} method has been called. \item \texttt{Copy}: make a fully operational, independent, copy of the object, like a ``clone'' function in object-oriented languages. \item \texttt{Load}: load object data from stream. \item \texttt{Save}: save object data to stream. \item \texttt{View}: display internal structures and statistics, for debugging purposes. \item \texttt{Check}: check internal consistency of the object data, for debugging purposes. A \texttt{Check} method must be created for any new class, and any function that creates or updates an instance of some class must call the appropriate \texttt{Check} method, when compiled in debug mode. \end{itemize} \subsection{Array index basing} \label{sec-basing} The \libscotch\ library can accept data structures that come both from FORTRAN, where array indices start at $1$, and C, where they start at $0$. The start index for arrays is called the ``base value'', commonly stored in a variable (or field) called \texttt{baseval}. In order to manage based indices elegantly, most references to arrays are based as well. The ``table access'' reference, suffixed as ``\texttt{tax}'' (see Section~\ref{sec-naming-variables}), is defined as the reference to the beginning of an array in memory, minus the base value (with respect to pointer arithmetic, that is, in terms of bytes, times the size of the array cell data type). Consequently, for any array whose beginning is pointed to by $\mathtt{*tab}$, we have $\mathtt{*tax} = \mathtt{*tab} - \mathtt{baseval}$. Consequently $\mathtt{*tax[baseval}$ always represents the first cell in the array, whatever the base value is. Of course, memory allocation and freeing operations must always operate on $\mathtt{*tab}$ pointers only. In terms of indices, if the size of the array is \texttt{xxxxnbr}, then $\mbox{\texttt{xxxxnnd}} = \mbox{\texttt{xxxxnbr}} + \mbox{\texttt{baseval}}$, so that valid indices \texttt{xxxxnum} always belong to the range $[\mbox{\texttt{baseval}};\mbox{\texttt{vertnnd}}[$. Consequently, loops often take the form: \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} for (xxxxnum = baseval; xxxxnum < xxxxnnd; xxxxnum ++) { xxxxtax[xxxxnum] = ...; } \end{verbatim} } \end{center} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/m_s.tex000066400000000000000000000050501514310134000251200ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Title : m_s.tex % % Subject : Maintenance manual of % % Scotch % % Global structure % % Author : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Structure of the \libscotch\ library} \label{sec-structure} As seen in Section~\ref{sec-naming-functions}, all of the routines that comprise the \libscotch\ project are named with a prefix that defines the type of data structure onto which they apply and a prefix that describes their purpose. This naming scheme allows one to categorize functions as methods of classes, in an object-oriented manner. This organization is reflected in the naming and contents of the various source files. The main modules of the \libscotch\ library are the following: \begin{itemize} \item \texttt{arch}: target architectures used by the static mapping methods. \item \texttt{bgraph}: graph edge bipartitioning methods, hence the initial. \item \texttt{graph}: basic (source) graph handling methods. \item \texttt{hgraph}: graph ordering methods. These are based on an extended ``halo'' graph structure, thus for the initial. \item \texttt{hmesh}: mesh ordering methods. \item \texttt{kgraph}: k-way graph partitioning methods. \item \texttt{library}: API routines for the \libscotch\ library. \item \texttt{mapping}: definition of the mapping structure. \item \texttt{mesh}: basic mesh handling methods. \item \texttt{order}: definition of the ordering structure. \item \texttt{parser}: strategy parsing routines, based on the \textsc{Flex} and \textsc{Bison} parsers. \item \texttt{vgraph}: graph vertex bipartitioning methods, hence the initial. \item \texttt{vmesh}: mesh node bipartitioning methods. \end{itemize} Every source file name is made of the name of the module to which it belongs, followed by one or two words, separated by an underscore, that describe the type of action performed by the routines of the file. For instance, for module \texttt{bgraph}: \begin{itemize} \item \texttt{bgraph.h} is the header file that defines the \texttt{Bgraph} data structure, \item \texttt{bgraph\_bipart\_fm.[ch]} are the files that contain the Fiduccia-Mattheyses-like graph bipartitioning method, \item \texttt{bgraph\_check.c} is the file that contains the consistency checking routine \texttt{bgraph\lbt Check} for \texttt{Bgraph} structures, \end{itemize} and so on. Every source file has a comments header briefly describing the purpose of the code it contains. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_d.eps000066400000000000000000000160741514310134000254130ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Title: s_f_d.fig %%Creator: fig2dev Version 3.2.8b %%CreationDate: 2021-12-21 12:06:51 %%BoundingBox: 0 0 217 213 %%Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /rl {rlineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /xfig_image {image Data flushfile} def /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { sa n 0 213 m 0 0 l 217 0 l 217 213 l cp clip -65.7 263.7 tr 1 -1 sc $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.90000 0.90000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 16 /Times-Roman ff 11.00 scf sf 189 69 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 11.00 scf sf 89 149 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 11.00 scf sf 124 109 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 11.00 scf sf 159 149 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 11.00 scf sf 144 189 m gs 1 -1 sc (12) col0 sh gr /Times-Roman ff 11.00 scf sf 169 189 m gs 1 -1 sc (13) col0 sh gr /Times-Roman ff 11.00 scf sf 214 189 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 11.00 scf sf 229 189 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 11.00 scf sf 284 189 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 11.00 scf sf 299 189 m gs 1 -1 sc (10) col0 sh gr /Times-Roman ff 11.00 scf sf 289 149 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 11.00 scf sf 219 149 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 11.00 scf sf 254 109 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 11.00 scf sf 99 189 m gs 1 -1 sc (14) col0 sh gr /Times-Roman ff 11.00 scf sf 74 189 m gs 1 -1 sc (15) col0 sh gr % here ends figure; % % here starts figure with depth 0 % Polyline 0 slj 0 slc 2.000 slw n 169 249 m 219 249 l gs col-1 s gr % Polyline n 99 219 m 159 279 l gs col-1 s gr % Polyline n 99 219 m 89 249 l gs col-1 s gr % Polyline n 89 249 m 159 279 l gs col-1 s gr % Polyline n 229 219 m 299 249 l gs col-1 s gr % Polyline n 299 249 m 289 279 l gs col-1 s gr % Polyline n 229 219 m 289 279 l gs col-1 s gr % Polyline n 99 219 m 229 219 l gs col-1 s gr % Polyline n 229 219 m 219 249 l gs col-1 s gr % Polyline n 169 249 m 99 219 l gs col-1 s gr % Polyline n 169 249 m 159 279 l gs col-1 s gr % Polyline n 219 249 m 289 279 l gs col-1 s gr % Polyline n 159 279 m 289 279 l gs col-1 s gr % Polyline 0.500 slw n 229 189 m 229 189 l gs col-1 s gr % Polyline n 129 94 m 194 74 l 259 94 l gs col-1 s gr % Polyline n 94 134 m 129 114 l 164 134 l gs col-1 s gr % Polyline n 89 174 m 94 154 l 99 174 l gs col-1 s gr % Polyline n 159 174 m 164 154 l 169 174 l gs col-1 s gr % Polyline n 219 174 m 224 154 l 289 174 l gs col-1 s gr % Polyline n 229 174 m 294 154 l 299 174 l gs col-1 s gr % Polyline n 224 134 m 259 114 l 294 134 l gs col-1 s gr % Polyline [1 3] 3 sd n 219 249 m 219 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 229 219 m 229 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 299 249 m 299 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 169 249 m 169 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 159 274 m 159 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 99 219 m 99 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 89 249 m 89 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 289 279 m 289 194 l gs col-1 s gr [] 0 sd % Closed spline n 151.5 281.5 m 151.5 281.5 149.0 274.0 154.0 259.0 DrawSplineSection 154.0 259.0 159.0 244.0 166.5 241.5 DrawSplineSection 166.5 241.5 174.0 239.0 176.5 246.5 DrawSplineSection 176.5 246.5 179.0 254.0 174.0 269.0 DrawSplineSection 174.0 269.0 169.0 284.0 161.5 286.5 DrawSplineSection 161.5 286.5 154.0 289.0 151.5 281.5 DrawSplineSection closepath gs col-1 s gr % Closed spline n 81.5 251.5 m 81.5 251.5 79.0 244.0 84.0 229.0 DrawSplineSection 84.0 229.0 89.0 214.0 96.5 211.5 DrawSplineSection 96.5 211.5 104.0 209.0 106.5 216.5 DrawSplineSection 106.5 216.5 109.0 224.0 104.0 239.0 DrawSplineSection 104.0 239.0 99.0 254.0 91.5 256.5 DrawSplineSection 91.5 256.5 84.0 259.0 81.5 251.5 DrawSplineSection closepath gs col-1 s gr % Closed spline n 269.0 219.0 m 269.0 219.0 304.0 234.0 309.0 244.0 DrawSplineSection 309.0 244.0 314.0 254.0 309.0 269.0 DrawSplineSection 309.0 269.0 304.0 284.0 294.0 289.0 DrawSplineSection 294.0 289.0 284.0 294.0 249.0 279.0 DrawSplineSection 249.0 279.0 214.0 264.0 209.0 254.0 DrawSplineSection 209.0 254.0 204.0 244.0 209.0 229.0 DrawSplineSection 209.0 229.0 214.0 214.0 224.0 209.0 DrawSplineSection 224.0 209.0 234.0 204.0 269.0 219.0 DrawSplineSection closepath gs col-1 s gr % Closed spline n 139.0 219.0 m 139.0 219.0 174.0 234.0 179.0 244.0 DrawSplineSection 179.0 244.0 184.0 254.0 179.0 269.0 DrawSplineSection 179.0 269.0 174.0 284.0 164.0 289.0 DrawSplineSection 164.0 289.0 154.0 294.0 119.0 279.0 DrawSplineSection 119.0 279.0 84.0 264.0 79.0 254.0 DrawSplineSection 79.0 254.0 74.0 244.0 79.0 229.0 DrawSplineSection 79.0 229.0 84.0 214.0 94.0 209.0 DrawSplineSection 94.0 209.0 104.0 204.0 139.0 219.0 DrawSplineSection closepath gs col-1 s gr % Closed spline n 226.5 211.5 m 226.5 211.5 219.0 214.0 221.5 221.5 DrawSplineSection 221.5 221.5 224.0 229.0 259.0 244.0 DrawSplineSection 259.0 244.0 294.0 259.0 301.5 256.5 DrawSplineSection 301.5 256.5 309.0 254.0 306.5 246.5 DrawSplineSection 306.5 246.5 304.0 239.0 269.0 224.0 DrawSplineSection 269.0 224.0 234.0 209.0 226.5 211.5 DrawSplineSection closepath gs col-1 s gr % Closed spline n 216.5 241.5 m 216.5 241.5 209.0 244.0 211.5 251.5 DrawSplineSection 211.5 251.5 214.0 259.0 249.0 274.0 DrawSplineSection 249.0 274.0 284.0 289.0 291.5 286.5 DrawSplineSection 291.5 286.5 299.0 284.0 299.0 279.0 DrawSplineSection 299.0 279.0 299.0 274.0 261.5 256.5 DrawSplineSection 261.5 256.5 224.0 239.0 216.5 241.5 DrawSplineSection closepath gs col-1 s gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_d.fig000066400000000000000000000056651514310134000253750ustar00rootroot00000000000000#FIG 2.1 80 2 6 84 214 304 284 2 1 0 3 -1 0 0 0 0.000 7 0 0 169 249 219 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 99 219 159 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 99 219 89 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 89 249 159 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 229 219 299 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 299 249 289 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 229 219 289 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 99 219 229 219 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 229 219 219 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 169 249 99 219 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 169 249 159 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 219 249 289 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 159 279 289 279 9999 9999 -6 6 74 54 314 189 2 1 2 1 -1 0 0 0 3.000 -1 0 0 229 189 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 129 94 194 74 259 94 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 94 134 129 114 164 134 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 89 174 94 154 99 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 159 174 164 154 169 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 219 174 224 154 289 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 229 174 294 154 299 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 224 134 259 114 294 134 9999 9999 4 0 0 16 0 -1 0 0.00000 4 11 8 189 69 1 4 0 0 16 0 -1 0 0.00000 4 19 7 89 149 7 4 0 0 16 0 -1 0 0.00000 4 19 7 124 109 3 4 0 0 16 0 -1 0 0.00000 4 19 7 159 149 6 4 0 0 16 0 -1 0 0.00000 4 19 14 144 189 12 4 0 0 16 0 -1 0 0.00000 4 19 14 169 189 13 4 0 0 16 0 -1 0 0.00000 4 19 7 214 189 9 4 0 0 16 0 -1 0 0.00000 4 19 14 229 189 11 4 0 0 16 0 -1 0 0.00000 4 19 7 284 189 8 4 0 0 16 0 -1 0 0.00000 4 19 14 299 189 10 4 0 0 16 0 -1 0 0.00000 4 19 7 289 149 5 4 0 0 16 0 -1 0 0.00000 4 19 7 219 149 4 4 0 0 16 0 -1 0 0.00000 4 19 7 254 109 2 4 0 0 16 0 -1 0 0.00000 4 19 14 99 189 14 4 0 0 16 0 -1 0 0.00000 4 19 14 74 189 15 -6 2 1 2 1 -1 0 0 0 3.000 -1 0 0 219 249 219 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 229 219 229 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 299 249 299 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 169 249 169 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 159 274 159 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 99 219 99 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 89 249 89 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 289 279 289 194 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 154 289 149 274 159 244 174 239 179 254 169 284 154 289 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 84 259 79 244 89 214 104 209 109 224 99 254 84 259 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 234 204 304 234 314 254 304 284 284 294 214 264 204 244 214 214 234 204 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 104 204 174 234 184 254 174 284 154 294 84 264 74 244 84 214 104 204 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 234 209 219 214 224 229 294 259 309 254 304 239 234 209 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 224 239 209 244 214 259 284 289 299 284 299 274 224 239 9999 9999 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_d.ps000066400000000000000000000170361514310134000252450ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev %%CreationDate: Wed Jul 19 17:06:41 1995 %%For: pelegrin@firmin (Francois PELLEGRINI) %%BoundingBox: 0 0 215 210 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -67.0 263.0 translate 0.900 -0.900 scale 2.000 setlinewidth % Polyline n 169 249 m 219 249 l gs col-1 s gr % Polyline n 99 219 m 159 279 l gs col-1 s gr % Polyline n 99 219 m 89 249 l gs col-1 s gr % Polyline n 89 249 m 159 279 l gs col-1 s gr % Polyline n 229 219 m 299 249 l gs col-1 s gr % Polyline n 299 249 m 289 279 l gs col-1 s gr % Polyline n 229 219 m 289 279 l gs col-1 s gr % Polyline n 99 219 m 229 219 l gs col-1 s gr % Polyline n 229 219 m 219 249 l gs col-1 s gr % Polyline n 169 249 m 99 219 l gs col-1 s gr % Polyline n 169 249 m 159 279 l gs col-1 s gr % Polyline n 219 249 m 289 279 l gs col-1 s gr % Polyline n 159 279 m 289 279 l gs col-1 s gr 0.500 setlinewidth n 229 189 m 229 189 l gs col-1 s gr % Polyline n 129 94 m 194 74 l 259 94 l gs col-1 s gr % Polyline n 94 134 m 129 114 l 164 134 l gs col-1 s gr % Polyline n 89 174 m 94 154 l 99 174 l gs col-1 s gr % Polyline n 159 174 m 164 154 l 169 174 l gs col-1 s gr % Polyline n 219 174 m 224 154 l 289 174 l gs col-1 s gr % Polyline n 229 174 m 294 154 l 299 174 l gs col-1 s gr % Polyline n 224 134 m 259 114 l 294 134 l gs col-1 s gr /Times-Roman findfont 16.00 scalefont setfont 189 69 m gs 1 -1 scale (1) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 89 149 m gs 1 -1 scale (7) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 124 109 m gs 1 -1 scale (3) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 159 149 m gs 1 -1 scale (6) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 144 189 m gs 1 -1 scale (12) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 169 189 m gs 1 -1 scale (13) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 214 189 m gs 1 -1 scale (9) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 229 189 m gs 1 -1 scale (11) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 284 189 m gs 1 -1 scale (8) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 299 189 m gs 1 -1 scale (10) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 289 149 m gs 1 -1 scale (5) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 219 149 m gs 1 -1 scale (4) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 254 109 m gs 1 -1 scale (2) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 99 189 m gs 1 -1 scale (14) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 74 189 m gs 1 -1 scale (15) col-1 show gr 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 219 249 m 219 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 229 219 m 229 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 299 249 m 299 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 169 249 m 169 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 159 274 m 159 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 99 219 m 99 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 89 249 m 89 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 289 279 m 289 194 l gs col-1 s gr [] 0 setdash 0 setlinecap % Closed spline n 151.500 281.500 m 151.500 281.500 149.000 274.000 154.000 259.000 DrawSplineSection 154.000 259.000 159.000 244.000 166.500 241.500 DrawSplineSection 166.500 241.500 174.000 239.000 176.500 246.500 DrawSplineSection 176.500 246.500 179.000 254.000 174.000 269.000 DrawSplineSection 174.000 269.000 169.000 284.000 161.500 286.500 DrawSplineSection 161.500 286.500 154.000 289.000 151.500 281.500 DrawSplineSection closepath gs col-1 s gr % Closed spline n 81.500 251.500 m 81.500 251.500 79.000 244.000 84.000 229.000 DrawSplineSection 84.000 229.000 89.000 214.000 96.500 211.500 DrawSplineSection 96.500 211.500 104.000 209.000 106.500 216.500 DrawSplineSection 106.500 216.500 109.000 224.000 104.000 239.000 DrawSplineSection 104.000 239.000 99.000 254.000 91.500 256.500 DrawSplineSection 91.500 256.500 84.000 259.000 81.500 251.500 DrawSplineSection closepath gs col-1 s gr % Closed spline n 269.000 219.000 m 269.000 219.000 304.000 234.000 309.000 244.000 DrawSplineSection 309.000 244.000 314.000 254.000 309.000 269.000 DrawSplineSection 309.000 269.000 304.000 284.000 294.000 289.000 DrawSplineSection 294.000 289.000 284.000 294.000 249.000 279.000 DrawSplineSection 249.000 279.000 214.000 264.000 209.000 254.000 DrawSplineSection 209.000 254.000 204.000 244.000 209.000 229.000 DrawSplineSection 209.000 229.000 214.000 214.000 224.000 209.000 DrawSplineSection 224.000 209.000 234.000 204.000 269.000 219.000 DrawSplineSection closepath gs col-1 s gr % Closed spline n 139.000 219.000 m 139.000 219.000 174.000 234.000 179.000 244.000 DrawSplineSection 179.000 244.000 184.000 254.000 179.000 269.000 DrawSplineSection 179.000 269.000 174.000 284.000 164.000 289.000 DrawSplineSection 164.000 289.000 154.000 294.000 119.000 279.000 DrawSplineSection 119.000 279.000 84.000 264.000 79.000 254.000 DrawSplineSection 79.000 254.000 74.000 244.000 79.000 229.000 DrawSplineSection 79.000 229.000 84.000 214.000 94.000 209.000 DrawSplineSection 94.000 209.000 104.000 204.000 139.000 219.000 DrawSplineSection closepath gs col-1 s gr % Closed spline n 226.500 211.500 m 226.500 211.500 219.000 214.000 221.500 221.500 DrawSplineSection 221.500 221.500 224.000 229.000 259.000 244.000 DrawSplineSection 259.000 244.000 294.000 259.000 301.500 256.500 DrawSplineSection 301.500 256.500 309.000 254.000 306.500 246.500 DrawSplineSection 306.500 246.500 304.000 239.000 269.000 224.000 DrawSplineSection 269.000 224.000 234.000 209.000 226.500 211.500 DrawSplineSection closepath gs col-1 s gr % Closed spline n 216.500 241.500 m 216.500 241.500 209.000 244.000 211.500 251.500 DrawSplineSection 211.500 251.500 214.000 259.000 249.000 274.000 DrawSplineSection 249.000 274.000 284.000 289.000 291.500 286.500 DrawSplineSection 291.500 286.500 299.000 284.000 299.000 279.000 DrawSplineSection 299.000 279.000 299.000 274.000 261.500 256.500 DrawSplineSection 261.500 256.500 224.000 239.000 216.500 241.500 DrawSplineSection closepath gs col-1 s gr $F2psEnd scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_gr1.eps000066400000000000000000000502241514310134000256540ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Tue Nov 4 10:38:33 2003 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 523 362 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 362 moveto 0 0 lineto 523 0 lineto 523 362 lineto closepath clip newpath -36.0 396.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 20 % Polyline 7.500 slw n 7125 3150 m 8625 3150 l 7725 1950 l 8925 1950 l 8625 1050 l gs col0 s gr % Polyline n 6525 1950 m 7425 750 l 7725 1950 l 6525 1950 l 7125 3150 l 7725 1950 l 8625 1050 l 7425 750 l gs col0 s gr % Polyline n 8925 1950 m 8625 3150 l gs col0 s gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (baseval) col0 sh gr % Polyline [15 45] 45 sd n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 2400 m 1800 2700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 2400 m 2100 2700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 5550 m 9300 5550 l 9300 5850 l 9000 5850 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9300 5550 m 9000 5850 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 5550 m 9300 5850 l gs col0 s gr [] 0 sd % Polyline gs clippath 9120 5565 m 9180 5565 l 9180 5414 l 9150 5534 l 9120 5414 l cp eoclip n 4050 4500 m 4050 4800 l 9150 4800 l 9150 5550 l gs col0 s gr gr % arrowhead n 9120 5414 m 9150 5534 l 9180 5414 l 9120 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8220 5565 m 8280 5565 l 8280 5414 l 8250 5534 l 8220 5414 l cp eoclip n 3750 4500 m 3750 4875 l 8250 4875 l 8250 5550 l gs col0 s gr gr % arrowhead n 8220 5414 m 8250 5534 l 8280 5414 l 8220 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7320 5565 m 7380 5565 l 7380 5414 l 7350 5534 l 7320 5414 l cp eoclip n 3450 4500 m 3450 4950 l 7350 4950 l 7350 5550 l gs col0 s gr gr % arrowhead n 7320 5414 m 7350 5534 l 7380 5414 l 7320 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6420 5565 m 6480 5565 l 6480 5414 l 6450 5534 l 6420 5414 l cp eoclip n 3150 4500 m 3150 5025 l 6450 5025 l 6450 5550 l gs col0 s gr gr % arrowhead n 6420 5414 m 6450 5534 l 6480 5414 l 6420 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 5565 m 5580 5565 l 5580 5414 l 5550 5534 l 5520 5414 l cp eoclip n 2850 4500 m 2850 5100 l 5550 5100 l 5550 5550 l gs col0 s gr gr % arrowhead n 5520 5414 m 5550 5534 l 5580 5414 l 5520 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4620 5565 m 4680 5565 l 4680 5414 l 4650 5534 l 4620 5414 l cp eoclip n 2550 4500 m 2550 5175 l 4650 5175 l 4650 5550 l gs col0 s gr gr % arrowhead n 4620 5414 m 4650 5534 l 4680 5414 l 4620 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2820 5565 m 2880 5565 l 2880 5414 l 2850 5534 l 2820 5414 l cp eoclip n 2250 4500 m 2250 5250 l 2850 5250 l 2850 5550 l gs col0 s gr gr % arrowhead n 2820 5414 m 2850 5534 l 2880 5414 l 2820 5414 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 1425 m gs 1 -1 sc (vertnbr) col0 sh gr /Courier ff 240.00 scf sf 600 2025 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 240.00 scf sf 600 2625 m gs 1 -1 sc (vlbltab) col0 sh gr /Courier ff 240.00 scf sf 600 4425 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 5775 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 240.00 scf sf 600 6525 m gs 1 -1 sc (edlotab) col0 sh gr /Courier ff 240.00 scf sf 600 3225 m gs 1 -1 sc (velotab) col0 sh gr /Courier ff 240.00 scf sf 600 3825 m gs 1 -1 sc (vendtab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 2040 m gs 1 -1 sc (24) col0 sh gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 4200 m 2400 4200 l 2400 4500 l 2100 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 4440 m gs 1 -1 sc (4) col0 sh gr % Polyline n 2400 4200 m 2700 4200 l 2700 4500 l 2400 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 4440 m gs 1 -1 sc (10) col0 sh gr % Polyline n 2700 4200 m 3000 4200 l 3000 4500 l 2700 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 4440 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3000 4200 m 3300 4200 l 3300 4500 l 3000 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 4440 m gs 1 -1 sc (16) col0 sh gr % Polyline n 3300 4200 m 3600 4200 l 3600 4500 l 3300 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 4440 m gs 1 -1 sc (19) col0 sh gr % Polyline n 3600 4200 m 3900 4200 l 3900 4500 l 3600 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 4440 m gs 1 -1 sc (22) col0 sh gr % Polyline n 1800 4200 m 2100 4200 l 2100 4500 l 1800 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 4200 m 4200 4200 l 4200 4500 l 3900 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3925 4440 m gs 1 -1 sc (25) col0 sh gr % Polyline n 2100 5550 m 2400 5550 l 2400 5850 l 2100 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 5550 m 2700 5550 l 2700 5850 l 2400 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 5550 m 3000 5550 l 3000 5850 l 2700 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 5550 m 3300 5550 l 3300 5850 l 3000 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 5550 m 3600 5550 l 3600 5850 l 3300 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 5550 m 3900 5550 l 3900 5850 l 3600 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 5550 m 4200 5550 l 4200 5850 l 3900 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 5550 m 4500 5550 l 4500 5850 l 4200 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 5550 m 4800 5550 l 4800 5850 l 4500 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 5550 m 5100 5550 l 5100 5850 l 4800 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 5550 m 5400 5550 l 5400 5850 l 5100 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 5550 m 5700 5550 l 5700 5850 l 5400 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 5550 m 6000 5550 l 6000 5850 l 5700 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 5550 m 6300 5550 l 6300 5850 l 6000 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 5550 m 6600 5550 l 6600 5850 l 6300 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 5550 m 6900 5550 l 6900 5850 l 6600 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 5550 m 7200 5550 l 7200 5850 l 6900 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 5550 m 7500 5550 l 7500 5850 l 7200 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 5550 m 7800 5550 l 7800 5850 l 7500 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 5550 m 8100 5550 l 8100 5850 l 7800 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 5550 m 8400 5550 l 8400 5850 l 8100 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 5550 m 8700 5550 l 8700 5850 l 8400 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 5550 m 9000 5550 l 9000 5850 l 8700 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 5550 m 2100 5550 l 2100 5850 l 1800 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 6300 m 2100 6300 l 2100 6600 l 1800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 6300 m 2400 6300 l 2400 6600 l 2100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 6300 m 2700 6300 l 2700 6600 l 2400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 6300 m 3600 6300 l 3600 6600 l 3300 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 6300 m 3000 6300 l 3000 6600 l 2700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 6300 m 3300 6300 l 3300 6600 l 3000 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 6300 m 3900 6300 l 3900 6600 l 3600 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 6300 m 4200 6300 l 4200 6600 l 3900 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 6300 m 4500 6300 l 4500 6600 l 4200 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 6300 m 4800 6300 l 4800 6600 l 4500 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 6300 m 5100 6300 l 5100 6600 l 4800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 6300 m 5400 6300 l 5400 6600 l 5100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 6300 m 6000 6300 l 6000 6600 l 5700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 6300 m 5700 6300 l 5700 6600 l 5400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 6300 m 6300 6300 l 6300 6600 l 6000 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 6300 m 6600 6300 l 6600 6600 l 6300 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 6300 m 6900 6300 l 6900 6600 l 6600 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 6300 m 7200 6300 l 7200 6600 l 6900 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 6300 m 7500 6300 l 7500 6600 l 7200 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 6300 m 7800 6300 l 7800 6600 l 7500 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 6300 m 8100 6300 l 8100 6600 l 7800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 6300 m 8400 6300 l 8400 6600 l 8100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 6300 m 8700 6300 l 8700 6600 l 8400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 6300 m 9000 6300 l 9000 6600 l 8700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3000 m 2400 3000 l 2400 3300 l 2100 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3000 m 3000 3000 l 3000 3300 l 2700 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3000 m 3300 3000 l 3300 3300 l 3000 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3000 m 3600 3000 l 3600 3300 l 3300 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 3000 m 3900 3000 l 3900 3300 l 3600 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline gs clippath 1920 5565 m 1980 5565 l 1980 5414 l 1950 5534 l 1920 5414 l cp eoclip n 1950 4500 m 1950 5550 l gs col0 s gr gr % arrowhead n 1920 5414 m 1950 5534 l 1980 5414 l 1920 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2070 4215 m 2130 4215 l 2130 4064 l 2100 4184 l 2070 4064 l cp eoclip n 1800 3750 m 2100 3750 l 2100 4200 l gs col0 s gr gr % arrowhead n 2070 4064 m 2100 4184 l 2130 4064 l 2070 4064 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 6525 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7725 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8625 1050 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8625 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7125 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8925 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr /Times-Bold ff 240.00 scf sf 6150 2025 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 8625 825 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 9150 1875 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 8850 3300 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 7275 3450 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 7425 2175 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7950 825 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7650 1425 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8250 1650 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8850 1575 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8850 2625 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8175 2475 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7875 3075 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7500 2775 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6900 2550 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7125 1875 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6750 1425 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8400 2175 m gs 1 -1 sc (2) col0 sh gr /Times-Bold ff 240.00 scf sf 7050 825 m gs 1 -1 sc (4) col0 sh gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 6475 2040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7675 2040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7375 840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8575 1140 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 8575 3240 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7075 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 4440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 5790 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 5790 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 5790 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 5790 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 5790 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 5790 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 5790 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 5790 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 5790 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 5790 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 5790 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 5790 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 5790 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 5790 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 5790 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 5790 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 5790 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 5790 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 3240 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 3240 m gs 1 -1 sc (4) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 8875 2040 m gs 1 -1 sc (7) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_gr1.fig000066400000000000000000000352611514310134000256360ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 6150 600 9300 3450 6 6375 1800 6675 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6525 1950 150 150 6525 1950 6675 1950 4 0 0 10 0 0 16 0.0000 4 180 120 6475 2040 1\001 -6 6 7575 1800 7875 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7725 1950 150 150 7725 1950 7875 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7675 2040 2\001 -6 6 7275 600 7575 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 750 150 150 7425 750 7575 750 4 0 0 10 0 0 16 0.0000 4 180 120 7375 840 3\001 -6 6 8475 900 8775 1200 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8625 1050 150 150 8625 1050 8775 1050 4 0 0 10 0 0 16 0.0000 4 165 120 8575 1140 4\001 -6 6 8475 3000 8775 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8625 3150 150 150 8625 3150 8775 3150 4 0 0 10 0 0 16 0.0000 4 180 120 8575 3240 5\001 -6 6 6975 3000 7275 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7125 3150 150 150 7125 3150 7275 3150 4 0 0 10 0 0 16 0.0000 4 180 120 7075 3240 6\001 -6 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8925 1950 150 150 8925 1950 9075 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 5 7125 3150 8625 3150 7725 1950 8925 1950 8625 1050 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 8 6525 1950 7425 750 7725 1950 6525 1950 7125 3150 7725 1950 8625 1050 7425 750 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 8925 1950 8625 3150 4 0 0 12 0 2 16 0.0000 4 165 120 6150 2025 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 8625 825 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 9150 1875 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 8850 3300 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 7275 3450 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 7425 2175 1\001 4 0 0 12 0 -1 16 0.0000 4 165 120 7950 825 2\001 4 0 0 12 0 -1 16 0.0000 4 165 120 7650 1425 2\001 4 0 0 12 0 -1 16 0.0000 4 165 120 8250 1650 2\001 4 0 0 12 0 -1 16 0.0000 4 180 120 8850 1575 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 8850 2625 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 8175 2475 3\001 4 0 0 12 0 -1 16 0.0000 4 180 120 7875 3075 3\001 4 0 0 12 0 -1 16 0.0000 4 180 120 7500 2775 3\001 4 0 0 12 0 -1 16 0.0000 4 180 120 6900 2550 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 7125 1875 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 6750 1425 1\001 4 0 0 12 0 -1 16 0.0000 4 165 120 8400 2175 2\001 4 0 0 12 0 2 16 0.0000 4 165 120 7050 825 4\001 4 0 0 8 0 0 16 0.0000 4 165 120 8875 2040 7\001 -6 6 600 600 2100 900 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 180 120 1900 840 1\001 -6 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 baseval\001 -6 6 1800 1800 2100 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 4 0 0 15 0 0 16 0.0000 4 165 240 1825 2040 24\001 -6 6 1800 1200 2100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 4 0 0 10 0 0 16 0.0000 4 165 120 1900 1440 7\001 -6 6 1800 2400 2100 2700 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 2400 1800 2700 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 2400 2100 2700 -6 6 2100 4200 2400 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 4200 2400 4200 2400 4500 2100 4500 2100 4200 4 0 0 15 0 0 16 0.0000 4 165 120 2200 4440 4\001 -6 6 2400 4200 2700 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 4200 2700 4200 2700 4500 2400 4500 2400 4200 4 0 0 15 0 0 16 0.0000 4 180 240 2425 4440 10\001 -6 6 2700 4200 3000 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 4200 3000 4200 3000 4500 2700 4500 2700 4200 4 0 0 15 0 0 16 0.0000 4 195 240 2725 4440 13\001 -6 6 3000 4200 3300 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 4200 3300 4200 3300 4500 3000 4500 3000 4200 4 0 0 15 0 0 16 0.0000 4 180 240 3025 4440 16\001 -6 6 3300 4200 3600 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 4200 3600 4200 3600 4500 3300 4500 3300 4200 4 0 0 15 0 0 16 0.0000 4 195 240 3325 4440 19\001 -6 6 3600 4200 3900 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 4200 3900 4200 3900 4500 3600 4500 3600 4200 4 0 0 15 0 0 16 0.0000 4 165 240 3625 4440 22\001 -6 6 1800 4200 2100 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 4200 2100 4200 2100 4500 1800 4500 1800 4200 4 0 0 10 0 0 16 0.0000 4 180 120 1900 4440 1\001 -6 6 9000 5550 9300 5850 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 9000 5550 9300 5550 9300 5850 9000 5850 9000 5550 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9300 5550 9000 5850 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9000 5550 9300 5850 -6 6 3900 4200 4200 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 4200 4200 4200 4200 4500 3900 4500 3900 4200 4 0 0 15 0 0 16 0.0000 4 180 240 3925 4440 25\001 -6 6 2100 5550 2400 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 5550 2400 5550 2400 5850 2100 5850 2100 5550 4 0 0 10 0 0 16 0.0000 4 165 120 2200 5790 2\001 -6 6 2400 5550 2700 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 5550 2700 5550 2700 5850 2400 5850 2400 5550 4 0 0 10 0 0 16 0.0000 4 180 120 2500 5790 6\001 -6 6 2700 5550 3000 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 5550 3000 5550 3000 5850 2700 5850 2700 5550 4 0 0 10 0 0 16 0.0000 4 180 120 2800 5790 3\001 -6 6 3000 5550 3300 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 5550 3300 5550 3300 5850 3000 5850 3000 5550 4 0 0 10 0 0 16 0.0000 4 165 120 3100 5790 4\001 -6 6 3300 5550 3600 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 5550 3600 5550 3600 5850 3300 5850 3300 5550 4 0 0 10 0 0 16 0.0000 4 180 120 3400 5790 1\001 -6 6 3600 5550 3900 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 5550 3900 5550 3900 5850 3600 5850 3600 5550 4 0 0 10 0 0 16 0.0000 4 165 120 3700 5790 7\001 -6 6 3900 5550 4200 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 5550 4200 5550 4200 5850 3900 5850 3900 5550 4 0 0 10 0 0 16 0.0000 4 180 120 4000 5790 6\001 -6 6 4200 5550 4500 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 5550 4500 5550 4500 5850 4200 5850 4200 5550 4 0 0 10 0 0 16 0.0000 4 180 120 4300 5790 5\001 -6 6 4500 5550 4800 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 5550 4800 5550 4800 5850 4500 5850 4500 5550 4 0 0 10 0 0 16 0.0000 4 180 120 4600 5790 1\001 -6 6 4800 5550 5100 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 5550 5100 5550 5100 5850 4800 5850 4800 5550 4 0 0 10 0 0 16 0.0000 4 165 120 4900 5790 2\001 -6 6 5100 5550 5400 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 5550 5400 5550 5400 5850 5100 5850 5100 5550 4 0 0 10 0 0 16 0.0000 4 165 120 5200 5790 4\001 -6 6 5400 5550 5700 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 5550 5700 5550 5700 5850 5400 5850 5400 5550 4 0 0 10 0 0 16 0.0000 4 165 120 5500 5790 2\001 -6 6 5700 5550 6000 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 5550 6000 5550 6000 5850 5700 5850 5700 5550 4 0 0 10 0 0 16 0.0000 4 165 120 5800 5790 7\001 -6 6 6000 5550 6300 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 5550 6300 5550 6300 5850 6000 5850 6000 5550 4 0 0 10 0 0 16 0.0000 4 180 120 6100 5790 3\001 -6 6 6300 5550 6600 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 5550 6600 5550 6600 5850 6300 5850 6300 5550 4 0 0 10 0 0 16 0.0000 4 165 120 6400 5790 7\001 -6 6 6600 5550 6900 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 5550 6900 5550 6900 5850 6600 5850 6600 5550 4 0 0 10 0 0 16 0.0000 4 165 120 6700 5790 2\001 -6 6 6900 5550 7200 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 5550 7200 5550 7200 5850 6900 5850 6900 5550 4 0 0 10 0 0 16 0.0000 4 180 120 7000 5790 6\001 -6 6 7200 5550 7500 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 5550 7500 5550 7500 5850 7200 5850 7200 5550 4 0 0 10 0 0 16 0.0000 4 165 120 7300 5790 2\001 -6 6 7500 5550 7800 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 5550 7800 5550 7800 5850 7500 5850 7500 5550 4 0 0 10 0 0 16 0.0000 4 180 120 7600 5790 1\001 -6 6 7800 5550 8100 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 5550 8100 5550 8100 5850 7800 5850 7800 5550 4 0 0 10 0 0 16 0.0000 4 180 120 7900 5790 5\001 -6 6 8100 5550 8400 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 5550 8400 5550 8400 5850 8100 5850 8100 5550 4 0 0 10 0 0 16 0.0000 4 180 120 8200 5790 5\001 -6 6 8400 5550 8700 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 5550 8700 5550 8700 5850 8400 5850 8400 5550 4 0 0 10 0 0 16 0.0000 4 165 120 8500 5790 2\001 -6 6 8700 5550 9000 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 5550 9000 5550 9000 5850 8700 5850 8700 5550 4 0 0 10 0 0 16 0.0000 4 165 120 8800 5790 4\001 -6 6 1800 5550 2100 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 5550 2100 5550 2100 5850 1800 5850 1800 5550 4 0 0 10 0 0 16 0.0000 4 180 120 1900 5790 3\001 -6 6 1800 6300 2100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 6300 2100 6300 2100 6600 1800 6600 1800 6300 4 0 0 10 0 0 16 0.0000 4 180 120 1900 6540 1\001 -6 6 2100 6300 2400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 6300 2400 6300 2400 6600 2100 6600 2100 6300 4 0 0 10 0 0 16 0.0000 4 180 120 2200 6540 1\001 -6 6 2400 6300 2700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 6300 2700 6300 2700 6600 2400 6600 2400 6300 4 0 0 10 0 0 16 0.0000 4 180 120 2500 6540 1\001 -6 6 3300 6300 3600 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 6300 3600 6300 3600 6600 3300 6600 3300 6300 4 0 0 10 0 0 16 0.0000 4 180 120 3400 6540 1\001 -6 6 2700 6300 3000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 6300 3000 6300 3000 6600 2700 6600 2700 6300 4 0 0 10 0 0 16 0.0000 4 165 120 2800 6540 2\001 -6 6 3000 6300 3300 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 6300 3300 6300 3300 6600 3000 6600 3000 6300 4 0 0 10 0 0 16 0.0000 4 165 120 3100 6540 2\001 -6 6 3600 6300 3900 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 6300 3900 6300 3900 6600 3600 6600 3600 6300 4 0 0 10 0 0 16 0.0000 4 165 120 3700 6540 2\001 -6 6 3900 6300 4200 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 6300 4200 6300 4200 6600 3900 6600 3900 6300 4 0 0 10 0 0 16 0.0000 4 180 120 4000 6540 3\001 -6 6 4200 6300 4500 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 6300 4500 6300 4500 6600 4200 6600 4200 6300 4 0 0 10 0 0 16 0.0000 4 180 120 4300 6540 3\001 -6 6 4500 6300 4800 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 6300 4800 6300 4800 6600 4500 6600 4500 6300 4 0 0 10 0 0 16 0.0000 4 180 120 4600 6540 1\001 -6 6 4800 6300 5100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 6300 5100 6300 5100 6600 4800 6600 4800 6300 4 0 0 10 0 0 16 0.0000 4 165 120 4900 6540 2\001 -6 6 5100 6300 5400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 6300 5400 6300 5400 6600 5100 6600 5100 6300 4 0 0 10 0 0 16 0.0000 4 165 120 5200 6540 2\001 -6 6 5700 6300 6000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 6300 6000 6300 6000 6600 5700 6600 5700 6300 4 0 0 10 0 0 16 0.0000 4 180 120 5800 6540 1\001 -6 6 5400 6300 5700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 6300 5700 6300 5700 6600 5400 6600 5400 6300 4 0 0 10 0 0 16 0.0000 4 165 120 5500 6540 2\001 -6 6 6000 6300 6300 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 6300 6300 6300 6300 6600 6000 6600 6000 6300 4 0 0 10 0 0 16 0.0000 4 165 120 6100 6540 2\001 -6 6 6300 6300 6600 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 6300 6600 6300 6600 6600 6300 6600 6300 6300 4 0 0 10 0 0 16 0.0000 4 180 120 6400 6540 1\001 -6 6 6600 6300 6900 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 6300 6900 6300 6900 6600 6600 6600 6600 6300 4 0 0 10 0 0 16 0.0000 4 180 120 6700 6540 3\001 -6 6 6900 6300 7200 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 6300 7200 6300 7200 6600 6900 6600 6900 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7000 6540 3\001 -6 6 7200 6300 7500 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 6300 7500 6300 7500 6600 7200 6600 7200 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7300 6540 3\001 -6 6 7500 6300 7800 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 6300 7800 6300 7800 6600 7500 6600 7500 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7600 6540 1\001 -6 6 7800 6300 8100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 6300 8100 6300 8100 6600 7800 6600 7800 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7900 6540 3\001 -6 6 8100 6300 8400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 6300 8400 6300 8400 6600 8100 6600 8100 6300 4 0 0 10 0 0 16 0.0000 4 180 120 8200 6540 1\001 -6 6 8400 6300 8700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 6300 8700 6300 8700 6600 8400 6600 8400 6300 4 0 0 10 0 0 16 0.0000 4 165 120 8500 6540 2\001 -6 6 8700 6300 9000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 6300 9000 6300 9000 6600 8700 6600 8700 6300 4 0 0 10 0 0 16 0.0000 4 180 120 8800 6540 1\001 -6 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 10 0 0 16 0.0000 4 165 120 1900 3240 4\001 -6 6 2100 3000 2400 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3000 2400 3000 2400 3300 2100 3300 2100 3000 4 0 0 10 0 0 16 0.0000 4 180 120 2200 3240 1\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 10 0 0 16 0.0000 4 165 120 2500 3240 4\001 -6 6 2700 3000 3000 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3000 3000 3000 3000 3300 2700 3300 2700 3000 4 0 0 10 0 0 16 0.0000 4 165 120 2800 3240 4\001 -6 6 3000 3000 3300 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3000 3300 3000 3300 3300 3000 3300 3000 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3100 3240 4\001 -6 6 3300 3000 3600 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3000 3600 3000 3600 3300 3300 3300 3300 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3400 3240 4\001 -6 6 3600 3000 3900 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3000 3900 3000 3900 3300 3600 3300 3600 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3700 3240 4\001 -6 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 1950 4500 1950 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4050 4500 4050 4800 9150 4800 9150 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 4500 3750 4875 8250 4875 8250 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 4500 3450 4950 7350 4950 7350 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 4500 3150 5025 6450 5025 6450 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 4500 2850 5100 5550 5100 5550 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 4500 2550 5175 4650 5175 4650 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 4500 2250 5250 2850 5250 2850 5550 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 1800 3750 2100 3750 2100 4200 4 0 0 20 0 12 16 0.0000 4 165 1050 600 1425 vertnbr\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 2025 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2625 vlbltab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4425 verttab\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 5775 edgetab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 6525 edlotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3225 velotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3825 vendtab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_gr2.eps000066400000000000000000000442531514310134000256620ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Tue Nov 4 11:45:49 2003 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 631 218 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 218 moveto 0 0 lineto 631 0 lineto 631 218 lineto closepath clip newpath -36.0 252.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Polyline 7.500 slw n 1800 1950 m 2100 1950 l 2100 2250 l 1800 2250 l cp gs col0 s gr % Polyline n 3900 1950 m 4200 1950 l 4200 2250 l 3900 2250 l cp gs col0 s gr % Polyline n 4200 1950 m 4500 1950 l 4500 2250 l 4200 2250 l cp gs col0 s gr % Polyline n 6300 1950 m 6600 1950 l 6600 2250 l 6300 2250 l cp gs col0 s gr % Polyline n 9300 1950 m 9600 1950 l 9600 2250 l 9300 2250 l cp gs col0 s gr % Polyline n 10500 1950 m 10800 1950 l 10800 2250 l 10500 2250 l cp gs col0 s gr % Polyline n 10800 1950 m 11100 1950 l 11100 2250 l 10800 2250 l cp gs col0 s gr % Polyline n 1800 3900 m 2100 3900 l 2100 4200 l 1800 4200 l cp gs col0 s gr % Polyline n 3900 3900 m 4200 3900 l 4200 4200 l 3900 4200 l cp gs col0 s gr % Polyline n 4200 3900 m 4500 3900 l 4500 4200 l 4200 4200 l cp gs col0 s gr % Polyline n 6300 3900 m 6600 3900 l 6600 4200 l 6300 4200 l cp gs col0 s gr % Polyline n 9300 3900 m 9600 3900 l 9600 4200 l 9300 4200 l cp gs col0 s gr % Polyline n 10500 3900 m 10800 3900 l 10800 4200 l 10500 4200 l cp gs col0 s gr % Polyline n 10800 3900 m 11100 3900 l 11100 4200 l 10800 4200 l cp gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw gs clippath 8520 1965 m 8580 1965 l 8580 1814 l 8550 1934 l 8520 1814 l cp eoclip n 3750 900 m 3750 1275 l 8550 1275 l 8550 1950 l gs col0 s gr gr % arrowhead n 8520 1814 m 8550 1934 l 8580 1814 l 8520 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9720 1965 m 9780 1965 l 9780 1814 l 9750 1934 l 9720 1814 l cp eoclip n 3450 900 m 3450 1350 l 9750 1350 l 9750 1950 l gs col0 s gr gr % arrowhead n 9720 1814 m 9750 1934 l 9780 1814 l 9720 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7620 1965 m 7680 1965 l 7680 1814 l 7650 1934 l 7620 1814 l cp eoclip n 3150 900 m 3150 1425 l 7650 1425 l 7650 1950 l gs col0 s gr gr % arrowhead n 7620 1814 m 7650 1934 l 7680 1814 l 7620 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4620 1965 m 4680 1965 l 4680 1814 l 4650 1934 l 4620 1814 l cp eoclip n 2850 900 m 2850 1500 l 4650 1500 l 4650 1950 l gs col0 s gr gr % arrowhead n 4620 1814 m 4650 1934 l 4680 1814 l 4620 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 1965 m 5580 1965 l 5580 1814 l 5550 1934 l 5520 1814 l cp eoclip n 2550 900 m 2550 1575 l 5550 1575 l 5550 1950 l gs col0 s gr gr % arrowhead n 5520 1814 m 5550 1934 l 5580 1814 l 5520 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2220 1965 m 2280 1965 l 2280 1814 l 2250 1934 l 2220 1814 l cp eoclip n 2250 900 m 2250 1950 l gs col0 s gr gr % arrowhead n 2220 1814 m 2250 1934 l 2280 1814 l 2220 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9480 2235 m 9420 2235 l 9420 2386 l 9450 2266 l 9480 2386 l cp eoclip n 3750 3300 m 3750 3000 l 9450 3000 l 9450 2250 l gs col0 s gr gr % arrowhead n 9480 2386 m 9450 2266 l 9420 2386 l 9480 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10680 2235 m 10620 2235 l 10620 2386 l 10650 2266 l 10680 2386 l cp eoclip n 3450 3300 m 3450 2925 l 10650 2925 l 10650 2250 l gs col0 s gr gr % arrowhead n 10680 2386 m 10650 2266 l 10620 2386 l 10680 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8580 2235 m 8520 2235 l 8520 2386 l 8550 2266 l 8580 2386 l cp eoclip n 3150 3300 m 3150 2850 l 8550 2850 l 8550 2250 l gs col0 s gr gr % arrowhead n 8580 2386 m 8550 2266 l 8520 2386 l 8580 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5580 2235 m 5520 2235 l 5520 2386 l 5550 2266 l 5580 2386 l cp eoclip n 2850 3300 m 2850 2775 l 5550 2775 l 5550 2250 l gs col0 s gr gr % arrowhead n 5580 2386 m 5550 2266 l 5520 2386 l 5580 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6480 2235 m 6420 2235 l 6420 2386 l 6450 2266 l 6480 2386 l cp eoclip n 2550 3300 m 2550 2700 l 6450 2700 l 6450 2250 l gs col0 s gr gr % arrowhead n 6480 2386 m 6450 2266 l 6420 2386 l 6480 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4080 2235 m 4020 2235 l 4020 2386 l 4050 2266 l 4080 2386 l cp eoclip n 2250 3300 m 2250 2625 l 4050 2625 l 4050 2250 l gs col0 s gr gr % arrowhead n 4080 2386 m 4050 2266 l 4020 2386 l 4080 2386 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 2175 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 3525 m gs 1 -1 sc (vendtab) col0 sh gr /Courier ff 240.00 scf sf 600 4125 m gs 1 -1 sc (edlotab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 2100 1950 m 2400 1950 l 2400 2250 l 2100 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1950 m 2700 1950 l 2700 2250 l 2400 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 1950 m 3000 1950 l 3000 2250 l 2700 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 1950 m 3300 1950 l 3300 2250 l 3000 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 1950 m 3600 1950 l 3600 2250 l 3300 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 1950 m 3900 1950 l 3900 2250 l 3600 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 1950 m 4800 1950 l 4800 2250 l 4500 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 1950 m 5100 1950 l 5100 2250 l 4800 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 1950 m 5400 1950 l 5400 2250 l 5100 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 1950 m 5700 1950 l 5700 2250 l 5400 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 1950 m 6000 1950 l 6000 2250 l 5700 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 1950 m 6300 1950 l 6300 2250 l 6000 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 1950 m 7200 1950 l 7200 2250 l 6900 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 1950 m 7500 1950 l 7500 2250 l 7200 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 1950 m 6900 1950 l 6900 2250 l 6600 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 1950 m 7800 1950 l 7800 2250 l 7500 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 1950 m 8100 1950 l 8100 2250 l 7800 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 1950 m 8400 1950 l 8400 2250 l 8100 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 1950 m 8700 1950 l 8700 2250 l 8400 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 1950 m 9000 1950 l 9000 2250 l 8700 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9000 1950 m 9300 1950 l 9300 2250 l 9000 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 1950 m 9900 1950 l 9900 2250 l 9600 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 1950 m 10200 1950 l 10200 2250 l 9900 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 1950 m 10500 1950 l 10500 2250 l 10200 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3900 m 3000 3900 l 3000 4200 l 2700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3900 m 2400 3900 l 2400 4200 l 2100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3900 m 2700 3900 l 2700 4200 l 2400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3900 m 3300 3900 l 3300 4200 l 3000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3900 m 3600 3900 l 3600 4200 l 3300 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 3900 m 3900 3900 l 3900 4200 l 3600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 3900 m 5100 3900 l 5100 4200 l 4800 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 3900 m 4800 3900 l 4800 4200 l 4500 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 3900 m 5400 3900 l 5400 4200 l 5100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 3900 m 5700 3900 l 5700 4200 l 5400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 3900 m 6000 3900 l 6000 4200 l 5700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 3900 m 6300 3900 l 6300 4200 l 6000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 3900 m 6900 3900 l 6900 4200 l 6600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 3900 m 7200 3900 l 7200 4200 l 6900 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 3900 m 7500 3900 l 7500 4200 l 7200 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 3900 m 7800 3900 l 7800 4200 l 7500 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 3900 m 8100 3900 l 8100 4200 l 7800 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 3900 m 8400 3900 l 8400 4200 l 8100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 3900 m 8700 3900 l 8700 4200 l 8400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 3900 m 9000 3900 l 9000 4200 l 8700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9000 3900 m 9300 3900 l 9300 4200 l 9000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 3900 m 9900 3900 l 9900 4200 l 9600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 3900 m 10200 3900 l 10200 4200 l 9900 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 3900 m 10500 3900 l 10500 4200 l 10200 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 840 m gs 1 -1 sc (17) col0 sh gr % Polyline n 2100 600 m 2400 600 l 2400 900 l 2100 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 840 m gs 1 -1 sc (2) col0 sh gr % Polyline n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 2700 600 m 3000 600 l 3000 900 l 2700 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3600 600 m 3900 600 l 3900 900 l 3600 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 840 m gs 1 -1 sc (23) col0 sh gr % Polyline n 3300 600 m 3600 600 l 3600 900 l 3300 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 840 m gs 1 -1 sc (27) col0 sh gr % Polyline n 3000 600 m 3300 600 l 3300 900 l 3000 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 840 m gs 1 -1 sc (20) col0 sh gr % Polyline n 2100 3300 m 2400 3300 l 2400 3600 l 2100 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 3540 m gs 1 -1 sc (8) col0 sh gr % Polyline n 1800 3300 m 2100 3300 l 2100 3600 l 1800 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 3540 m gs 1 -1 sc (20) col0 sh gr % Polyline n 2400 3300 m 2700 3300 l 2700 3600 l 2400 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 3540 m gs 1 -1 sc (16) col0 sh gr % Polyline n 2700 3300 m 3000 3300 l 3000 3600 l 2700 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 3540 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3600 3300 m 3900 3300 l 3900 3600 l 3600 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 3540 m gs 1 -1 sc (26) col0 sh gr % Polyline n 3300 3300 m 3600 3300 l 3600 3600 l 3300 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 3540 m gs 1 -1 sc (30) col0 sh gr % Polyline n 3000 3300 m 3300 3300 l 3300 3600 l 3000 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 3540 m gs 1 -1 sc (23) col0 sh gr % Polyline gs clippath 6720 1965 m 6780 1965 l 6780 1814 l 6750 1934 l 6720 1814 l cp eoclip n 1950 900 m 1950 1650 l 6750 1650 l 6750 1950 l gs col0 s gr gr % arrowhead n 6720 1814 m 6750 1934 l 6780 1814 l 6720 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7680 2235 m 7620 2235 l 7620 2386 l 7650 2266 l 7680 2386 l cp eoclip n 1950 3300 m 1950 2550 l 7650 2550 l 7650 2250 l gs col0 s gr gr % arrowhead n 7680 2386 m 7650 2266 l 7620 2386 l 7680 2386 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 2200 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 2190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 2190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 2190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 2190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 2190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9100 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 2190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9100 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 4140 m gs 1 -1 sc (3) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/maint/s_f_gr2.fig000066400000000000000000000324111514310134000256310ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 1950 11100 2250 6 2100 1950 3900 2250 6 2100 1950 2400 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 1950 2400 1950 2400 2250 2100 2250 2100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 2200 2190 3\001 -6 6 2400 1950 2700 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1950 2700 1950 2700 2250 2400 2250 2400 1950 4 0 0 10 0 0 16 0.0000 4 165 120 2500 2190 4\001 -6 6 2700 1950 3000 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 1950 3000 1950 3000 2250 2700 2250 2700 1950 4 0 0 10 0 0 16 0.0000 4 180 120 2800 2190 1\001 -6 6 3000 1950 3300 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 1950 3300 1950 3300 2250 3000 2250 3000 1950 4 0 0 10 0 0 16 0.0000 4 165 120 3100 2190 7\001 -6 6 3300 1950 3600 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 1950 3600 1950 3600 2250 3300 2250 3300 1950 4 0 0 10 0 0 16 0.0000 4 180 120 3400 2190 6\001 -6 6 3600 1950 3900 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 1950 3900 1950 3900 2250 3600 2250 3600 1950 4 0 0 10 0 0 16 0.0000 4 180 120 3700 2190 5\001 -6 -6 6 4500 1950 5400 2250 6 4500 1950 4800 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 1950 4800 1950 4800 2250 4500 2250 4500 1950 4 0 0 10 0 0 16 0.0000 4 165 120 4600 2190 2\001 -6 6 4800 1950 5100 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 1950 5100 1950 5100 2250 4800 2250 4800 1950 4 0 0 10 0 0 16 0.0000 4 165 120 4900 2190 7\001 -6 6 5100 1950 5400 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 1950 5400 1950 5400 2250 5100 2250 5100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 5200 2190 3\001 -6 -6 6 5400 1950 6300 2250 6 5400 1950 5700 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 1950 5700 1950 5700 2250 5400 2250 5400 1950 4 0 0 10 0 0 16 0.0000 4 180 120 5500 2190 1\001 -6 6 5700 1950 6000 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 1950 6000 1950 6000 2250 5700 2250 5700 1950 4 0 0 10 0 0 16 0.0000 4 165 120 5800 2190 2\001 -6 6 6000 1950 6300 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 1950 6300 1950 6300 2250 6000 2250 6000 1950 4 0 0 10 0 0 16 0.0000 4 165 120 6100 2190 4\001 -6 -6 6 6600 1950 7500 2250 6 6900 1950 7200 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 1950 7200 1950 7200 2250 6900 2250 6900 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7000 2190 2\001 -6 6 7200 1950 7500 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 1950 7500 1950 7500 2250 7200 2250 7200 1950 4 0 0 10 0 0 16 0.0000 4 180 120 7300 2190 6\001 -6 6 6600 1950 6900 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 1950 6900 1950 6900 2250 6600 2250 6600 1950 4 0 0 10 0 0 16 0.0000 4 180 120 6700 2190 3\001 -6 -6 6 7500 1950 8400 2250 6 7500 1950 7800 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 1950 7800 1950 7800 2250 7500 2250 7500 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7600 2190 7\001 -6 6 7800 1950 8100 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 1950 8100 1950 8100 2250 7800 2250 7800 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7900 2190 2\001 -6 6 8100 1950 8400 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 1950 8400 1950 8400 2250 8100 2250 8100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 8200 2190 6\001 -6 -6 6 8400 1950 9300 2250 6 8400 1950 8700 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 1950 8700 1950 8700 2250 8400 2250 8400 1950 4 0 0 10 0 0 16 0.0000 4 180 120 8500 2190 5\001 -6 6 8700 1950 9000 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 1950 9000 1950 9000 2250 8700 2250 8700 1950 4 0 0 10 0 0 16 0.0000 4 165 120 8800 2190 2\001 -6 6 9000 1950 9300 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9000 1950 9300 1950 9300 2250 9000 2250 9000 1950 4 0 0 10 0 0 16 0.0000 4 165 120 9100 2190 4\001 -6 -6 6 9600 1950 10500 2250 6 9600 1950 9900 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 1950 9900 1950 9900 2250 9600 2250 9600 1950 4 0 0 10 0 0 16 0.0000 4 165 120 9700 2190 2\001 -6 6 9900 1950 10200 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 1950 10200 1950 10200 2250 9900 2250 9900 1950 4 0 0 10 0 0 16 0.0000 4 180 120 10000 2190 1\001 -6 6 10200 1950 10500 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 1950 10500 1950 10500 2250 10200 2250 10200 1950 4 0 0 10 0 0 16 0.0000 4 180 120 10300 2190 5\001 -6 -6 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 1800 1950 2100 1950 2100 2250 1800 2250 1800 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 3900 1950 4200 1950 4200 2250 3900 2250 3900 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 4200 1950 4500 1950 4500 2250 4200 2250 4200 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 6300 1950 6600 1950 6600 2250 6300 2250 6300 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 9300 1950 9600 1950 9600 2250 9300 2250 9300 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10500 1950 10800 1950 10800 2250 10500 2250 10500 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10800 1950 11100 1950 11100 2250 10800 2250 10800 1950 -6 6 1800 3900 11100 4200 6 2100 3900 3900 4200 6 2700 3900 3000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3900 3000 3900 3000 4200 2700 4200 2700 3900 4 0 0 10 0 0 16 0.0000 4 180 120 2800 4140 1\001 -6 6 2100 3900 2400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3900 2400 3900 2400 4200 2100 4200 2100 3900 4 0 0 10 0 0 16 0.0000 4 165 120 2200 4140 2\001 -6 6 2400 3900 2700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3900 2700 3900 2700 4200 2400 4200 2400 3900 4 0 0 10 0 0 16 0.0000 4 165 120 2500 4140 2\001 -6 6 3000 3900 3300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3900 3300 3900 3300 4200 3000 4200 3000 3900 4 0 0 10 0 0 16 0.0000 4 165 120 3100 4140 2\001 -6 6 3300 3900 3600 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3900 3600 3900 3600 4200 3300 4200 3300 3900 4 0 0 10 0 0 16 0.0000 4 180 120 3400 4140 3\001 -6 6 3600 3900 3900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3900 3900 3900 3900 4200 3600 4200 3600 3900 4 0 0 10 0 0 16 0.0000 4 180 120 3700 4140 3\001 -6 -6 6 4500 3900 5400 4200 6 4800 3900 5100 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 3900 5100 3900 5100 4200 4800 4200 4800 3900 4 0 0 10 0 0 16 0.0000 4 180 120 4900 4140 1\001 -6 6 4500 3900 4800 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 3900 4800 3900 4800 4200 4500 4200 4500 3900 4 0 0 10 0 0 16 0.0000 4 165 120 4600 4140 2\001 -6 6 5100 3900 5400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 3900 5400 3900 5400 4200 5100 4200 5100 3900 4 0 0 10 0 0 16 0.0000 4 165 120 5200 4140 2\001 -6 -6 6 5400 3900 6300 4200 6 5400 3900 5700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 3900 5700 3900 5700 4200 5400 4200 5400 3900 4 0 0 10 0 0 16 0.0000 4 180 120 5500 4140 1\001 -6 6 5700 3900 6000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 3900 6000 3900 6000 4200 5700 4200 5700 3900 4 0 0 10 0 0 16 0.0000 4 165 120 5800 4140 2\001 -6 6 6000 3900 6300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 3900 6300 3900 6300 4200 6000 4200 6000 3900 4 0 0 10 0 0 16 0.0000 4 165 120 6100 4140 2\001 -6 -6 6 6600 3900 7500 4200 6 6600 3900 6900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 3900 6900 3900 6900 4200 6600 4200 6600 3900 4 0 0 10 0 0 16 0.0000 4 180 120 6700 4140 1\001 -6 6 6900 3900 7200 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 3900 7200 3900 7200 4200 6900 4200 6900 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7000 4140 1\001 -6 6 7200 3900 7500 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 3900 7500 3900 7500 4200 7200 4200 7200 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7300 4140 1\001 -6 -6 6 7500 3900 8400 4200 6 7500 3900 7800 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 3900 7800 3900 7800 4200 7500 4200 7500 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7600 4140 1\001 -6 6 7800 3900 8100 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 3900 8100 3900 8100 4200 7800 4200 7800 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7900 4140 3\001 -6 6 8100 3900 8400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 3900 8400 3900 8400 4200 8100 4200 8100 3900 4 0 0 10 0 0 16 0.0000 4 180 120 8200 4140 3\001 -6 -6 6 8400 3900 9300 4200 6 8400 3900 8700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 3900 8700 3900 8700 4200 8400 4200 8400 3900 4 0 0 10 0 0 16 0.0000 4 180 120 8500 4140 1\001 -6 6 8700 3900 9000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 3900 9000 3900 9000 4200 8700 4200 8700 3900 4 0 0 10 0 0 16 0.0000 4 165 120 8800 4140 2\001 -6 6 9000 3900 9300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9000 3900 9300 3900 9300 4200 9000 4200 9000 3900 4 0 0 10 0 0 16 0.0000 4 180 120 9100 4140 1\001 -6 -6 6 9600 3900 10500 4200 6 9600 3900 9900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 3900 9900 3900 9900 4200 9600 4200 9600 3900 4 0 0 10 0 0 16 0.0000 4 180 120 9700 4140 3\001 -6 6 9900 3900 10200 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 3900 10200 3900 10200 4200 9900 4200 9900 3900 4 0 0 10 0 0 16 0.0000 4 180 120 10000 4140 1\001 -6 6 10200 3900 10500 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 3900 10500 3900 10500 4200 10200 4200 10200 3900 4 0 0 10 0 0 16 0.0000 4 180 120 10300 4140 3\001 -6 -6 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 1800 3900 2100 3900 2100 4200 1800 4200 1800 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 3900 3900 4200 3900 4200 4200 3900 4200 3900 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 4200 3900 4500 3900 4500 4200 4200 4200 4200 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 6300 3900 6600 3900 6600 4200 6300 4200 6300 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 9300 3900 9600 3900 9600 4200 9300 4200 9300 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10500 3900 10800 3900 10800 4200 10500 4200 10500 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10800 3900 11100 3900 11100 4200 10800 4200 10800 3900 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 15 0 0 16 0.0000 4 180 240 1825 840 17\001 -6 6 2100 600 2400 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 600 2400 600 2400 900 2100 900 2100 600 4 0 0 15 0 0 16 0.0000 4 165 120 2200 840 2\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 15 0 0 16 0.0000 4 195 240 2425 840 13\001 -6 6 2700 600 3000 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 600 3000 600 3000 900 2700 900 2700 600 4 0 0 15 0 0 16 0.0000 4 180 240 2725 840 10\001 -6 6 3600 600 3900 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 600 3900 600 3900 900 3600 900 3600 600 4 0 0 15 0 0 16 0.0000 4 180 240 3625 840 23\001 -6 6 3300 600 3600 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 600 3600 600 3600 900 3300 900 3300 600 4 0 0 15 0 0 16 0.0000 4 165 240 3325 840 27\001 -6 6 3000 600 3300 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 600 3300 600 3300 900 3000 900 3000 600 4 0 0 15 0 0 16 0.0000 4 165 240 3025 840 20\001 -6 6 2100 3300 2400 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3300 2400 3300 2400 3600 2100 3600 2100 3300 4 0 0 15 0 0 16 0.0000 4 165 120 2200 3540 8\001 -6 6 1800 3300 2100 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3300 2100 3300 2100 3600 1800 3600 1800 3300 4 0 0 15 0 0 16 0.0000 4 165 240 1825 3540 20\001 -6 6 2400 3300 2700 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3300 2700 3300 2700 3600 2400 3600 2400 3300 4 0 0 15 0 0 16 0.0000 4 180 240 2425 3540 16\001 -6 6 2700 3300 3000 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3300 3000 3300 3000 3600 2700 3600 2700 3300 4 0 0 15 0 0 16 0.0000 4 195 240 2725 3540 13\001 -6 6 3600 3300 3900 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3300 3900 3300 3900 3600 3600 3600 3600 3300 4 0 0 15 0 0 16 0.0000 4 180 240 3625 3540 26\001 -6 6 3300 3300 3600 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3300 3600 3300 3600 3600 3300 3600 3300 3300 4 0 0 15 0 0 16 0.0000 4 180 240 3325 3540 30\001 -6 6 3000 3300 3300 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3300 3300 3300 3300 3600 3000 3600 3000 3300 4 0 0 15 0 0 16 0.0000 4 180 240 3025 3540 23\001 -6 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 900 3750 1275 8550 1275 8550 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 900 3450 1350 9750 1350 9750 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 900 3150 1425 7650 1425 7650 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 900 2850 1500 4650 1500 4650 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 900 2550 1575 5550 1575 5550 1950 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 4 1 1 1.00 60.00 120.00 1950 900 1950 1650 6750 1650 6750 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 2250 900 2250 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 3300 3750 3000 9450 3000 9450 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 3300 3450 2925 10650 2925 10650 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 3300 3150 2850 8550 2850 8550 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 3300 2850 2775 5550 2775 5550 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 3300 2550 2700 6450 2700 6450 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 3300 2250 2625 4050 2625 4050 2250 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 4 1 1 1.00 60.00 120.00 1950 3300 1950 2550 7650 2550 7650 2250 4 0 0 20 0 12 16 0.0000 4 210 1050 600 2175 edgetab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 verttab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3525 vendtab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4125 edlotab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/000077500000000000000000000000001514310134000234435ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/ptscotch_logo_color.gif000066400000000000000000000235441514310134000302070ustar00rootroot00000000000000GIF89aÀ€÷P¿¿2ÀÇÇÏÏÏô|%ÿ Aÿ¹SÿÐ{ÿ榿Õæ.>çíæ·ø[0% Û· .0(L0`<0x:©ë¿·œ0~)l~w©¿x x©¿<ÿ:më$·À¬È(‘È$·lUw‘©$¿ìª))‘$ÜÿH‘÷$ ¶¶m$|UVw¶©$˜ ªx(¶©$Ñæÿoç¶ëæ$ Ú$K0UvÚÀ©$¿`8ªÓ<ÿÎvÚì©$·¿`ÿÀ$ Uÿ$èxx©©¿¿) |©¿ Ø ÿÿÿ`Àø,x©Í¿·ŽÜ Hx ÷©·¿ó½5 ,Ø&wÍ©ÿÜÿHÿ÷ÿ·% U HHvèª(wH©H˜ÿŒx°"Äj´èp Æ )N@bG9‚<™2¤Ë’"a’\‰P¡Ê›m¾lh²gLš-Oâô¨S(IŸ3U¥©´èJ¤2£u:%Õ—P¡NÍx“ €¯Á~E86¬W¨-Y @ɵjÏÊ5›Q¬Ý¹eÇÖÅ‹ömÚ¶~ßò•»×¬á¼w #N °Zƃé"Ž|8ñä΃-ŸÅÌV3Ü”¿Š zõWÒŸNMö.ëÊŸ_ŽmòmÕ¹ƒ×¦|b[ضõ ÿ=üvñÇw'>¶k±Ï£oFz¹ðë^³þ@Þ½:sðÅ“oí½:z´¤µÃuß¾<ñøã¥Û¿m”(×1eUÕRUD VþÔÔýmÅÔQ ˜ƒ²tUG&µÓ x!OJµ`…•¡ˆ~8 Š¶Ø ‡ ½ÈbT'–(¡Œrt¢I6v˜bŽºÈãˆþXáŽ+é£G†8¤‘EZ¨$ˆB&I"‘7"ycMSô]p°ÉæÛ—æ‘ÉW˜½qf&sìM‡æn¨W_›gî&¦šô•™gÛÝ—œzî·˜iþ¹æœÊ¹I(œÖ 'hrêéG'›¸•év{Rꙥø­W)m“ævé|‚šè}É—V¦ˆR‡êfþª–Äj ’qšj~˜–zŽMV¹%ŒVšèd°[bÙŸ–¼FiU—¾¢(å•Pf9ì¯3öøÔ´Éí±ØZËQ¶Ü6ë­¶L +®±Ð–+í¹Û¦Ëe¯4*Ø®²À6ûä³ÊzÈl¼.޻仿òëì²L5ªhŸ…Æy(­§vöæv Ïjª«/ ±Á¦Å³šq­|6–0Æšj|°ÈŒz\2È#œòÂr ·F ¹š‘Z<&Àq9ãÌÝÌzÑ|*Ð6 m3|=°óxIç|´jF˹åœNwç¨3þî㣷^ùä¥c.tê±Ïºë”ç»ç»Ón{㢿.üå«›þ{ñµ§|î¤#Ï»ó¾+ûò½«¾yò¦¯ÎüôJgÏxõØ÷¾ýð{o½ùáC?þøèOûó¨¯|ûïG>Bò»Nÿýö‹¿üü髟ñê—?áí¯w† \¢öö¶¶4-.móÛÚ×¶×<ÐZCMW7™I°. ̯–À ÚƒÔ !o¨A®¡p‚`S` /X–°ƒ”amT8½ÝðoþE{!ihÚPb‡ÕªtUŸ÷(QVL ”;%©O­¬a¢¢b®BÅ0ŠeñVžÚÔǰ)-’Š‹›"«(Fþø‹J»Áò5!xÕ]ôš²ÞH¬pűîª×5„/rÍq]ƒW õØ-<¾D‘:jä¼ )È=:ò_•”d!ÿ¥/;†ˆÔÚ—%'‰IF²k“‹¥&)’ ÊeSY«šóJ”Åf%»ÎÃ:†Ë&n –¼D¢/O–™— SŠ¿´e0£èÊËplLÇŒfz̸D4æÒ;OäŽ5‡ùªµÄJ›Vœ¥a…«3†³‹´,ã·xÎ4b“šPÜ&2mEÎ0šŒ2þ R"A™O ­²“tT—ïHJeò”¬L¥'ûuIƒšrŸ d$ ÐõŽEeUIÑ:`ˆÌhB7ºPñ“Ÿ£Ô(%*ÒŠrÒ£!ýdD›9šg≙²t&0¡‰Ó^öe§7•'MòKž 5§5ª¡¤éÓ¢µ×$fiŒÉÌžf“©L½jO³ Op¶Qœï\§9¿ŠÎqz³œÕ„*7ÓU¬Zµ­=½(¶äèR…¬¥0}©@¯Õѽ’ô®2-¨Dõ‰W¿®”£l(Kª•ˆ:éu zŒd"ٵIJöŠfãUYËvV"YÙ,²ZÙÎR¶²Bí\U;‘Ïžv²—•þÜ\5+[¹Ö/° mmÙÖÂä¶À ow4\ÜnƸžîn}›â$ NŸ=Žk!†™çRº~±nq:+]Ó^7ƒÍ ov¿ûYÞ”»àEïsÒK]îŽgºë›zë]̸÷¼äeà|¡[_ä>¦»¨Íoó;ÞøF÷½Þ5ð€Làò8ÀÎm°‚%|_üFØÀó]°}%ûàÉRWæpe;Ì` —X¼Fp‚«KaþŠ˜Ã*†0‹M I²}Š8ÿîˆöÉùOýAG¿Ð:ðƒ. E—¿úíß°gÿ<ýCcùÑöç}.~rö~¹5~¿Ei‹§G÷asçzëW|zWzF|tº·{ÎFxƒ7†—jƒçzú{ (^E—æezh_–·€Q7lh7`£G’Õ€­wzÏ7_4èahb=¸€¶×‚³m„Ž'aäF{…§xm'X„¼w{ëu2ñYQ—~ƒÔ7ƒ¹eZ/8-É~Ëwdò×,>§|¸eÙ—e}â×Ã’vÿdž×çdp($A‡†]h‡kx"ruG—PHG â6ftþ€|†tˆá†X'tûÒá–ˆ·ÆXò¢R¥äˆ…‰ 1nu5Q‰Å‰Qt–HH#C¥œgtç„téTˆJ…¨)â¦K6A÷bsÉTL·äVòäTKÅD2GVI¥LF¥V_AŠRÅT%ToQGF^áŠx‘|õ$h*âÖMÆV²tèĈ…øEÙÈNÆUÞøpöÄ2ˆq†Ô˜DpuT˘‡æxVíyñ‡ñr…†E޹a˜H“H‰3-ÝX-Rȇk‘hÈzBS ¥Xü˜R#U†ÿˆQ›xŠt¥80ŸøH(•…¬8’ƒ¸È'z†È`ŠÈþI+iš!.iÕRŸ‡4’t•WvE‘&…%¤8’þÔW %EW“C)X©øSp±÷dGg/y|·(‹‰˜ˆy|^91Wù’¶‹W)z]y•销 pkc‰ŒO•ŽkUK¾¸Lm~Ê(ŒEKÙ‹Sõ‹UEÏn z¸Æ“¹¦õ8n…‰˜ky z‘ÙV wl©¡Ç–¡‡™À0‘i‘¹Ž±‚k–©œÉ–¢7Ž@‰©ÉVb•Vr9O¢ Ž^5•@˜…™Šó¨ŒÕ(n ‰k³™^”i~;ù’Ÿw˜¹‘Ì™œ z¡œ/‰,–z–¹•ØþY™/E©ýh–¤9“ùáæ“ƒ•‰è¹X£ËY‰FÉ‘)Š– É”e‘Çù/‰š\¹Øé‘ýÙ–¥©Û¹ž™–öI‰‹” ˜ÙykÙˆå鸞üX’H™j \i‘Ÿ‡Èš^éøy‰éFT7*”™  /š `™2j™44.ê¢0 £3 £,JD´šˆø’0äABdAZÓC9C?wD^c¢?š¤5¤+ DFªCC$¥EäB Q™£îCÁ³•j*¬Âz=C¬ÿY™k*=äƒ;P•Ðs@Åó?®S•ü#­‹C­0‰Ê™2:©×Z:âö¢…™œ™të#®ã¶¦ã9¡>Ǭ’s˜€ú¢¥ùªä=—:¨3*zç“8 ¯ÿù’Ã㫾ƒ<¿š8Û㘠ɕW‰ðc:Ž©°$ʓ꣭”ó¬F®Ë9¯Ö >«=ËSt¦9nѪ®jú¥’)n‰þ®ú“9>§°ãùª¼?œÔiš5š j«ïz/Ê£<˧æs©2ʳ˜ù¥•i@ä=O ̉˜ «¶ Ϲ–X»œÛŒ~"‹' V\[(h7FÅyŒiÑy ƒw4 ˜!s›µÁésƒ¶e{ˆ™Y®×I±´$¯™ú¯ ùžÉ›\%FçŽwt®yŽó±ê˜¸øH¸®Ø¸÷ˆƒ¼ø›?(Ìh¹2‡Ž±~Äñs›’Õ«Çg˜ :¹›U‹û þ˜”1‹B ÓøW³K|hg»áR†’CA€ùs"YG˜¢õé‰Í*±œÂJ¡ rw?¹‘Ѻ”+Ž(þ ­à‰W”• è§ž&‚Ó)L—!ÑË%¾KJ苜Mª$Ì;µ©Ê¡è—¾Àò´»!•†›¨¤ø–u ³¶!ó¿‚~séLè»—ö˜E9( L™‹F@—0 ¹¢KºÉ¿Â;ŒÐ(˜¤1u«Á¢ë¸ßˆŒ{ÀxqU˜çSáуñ4Ö‹º,Ç ‹y‚—r9Á´)Â&Ë}¹˜TÛ¶X›û»+꺅ë 5ü®*¡ö¨»|µO1·—ëXy(GÖkžy(-[¼À›‘eH»Mº¬r¼ ›ž1rÄÕ[Å@9ˆ,! œ Ù Ò{e"ì®ãÉ‹¥‘÷B¾þ:Y”Y²Å2òÄí"¾ ù¾I¾ ‘v‹¼Ájì%ǵŠ:•c›–D••«É®íŠ|d‹Éª—KÕÉ$º¦3)œÛDFUÅïCj¹ÀûA]ËÃç™– |ž~ì›Ñº…KFhgV%,+YÊe™ªîDO‹Ž Ь^Éɨ¼›Wã/^ßX¤âø½•#“S-ÕŠ úÌ‘¡§Ím®Ç¢¼—¡’ßÊŠÕ$ŽÉɜح}׸=¸›áß Ú˜YnâŒM™™·*¾µ¬Ñ˜c>¨iŽ•Nhþæ3N¨Ÿæy›á¬+žàSdÊþ†)äƒäÚ¹¦f’߉mߊ{ÛñØåc>¡àÑÏõkœûå^ÁÞ‘¬=ž "Êž·KJ{·t.Lçžþæ×™Ü="êe^˜K´1>¨ó9R–Žß*H„¾ÿiß4ñé0îà àÉÜÿ”²n™ýY™óû!Â:æÊéáê=½lLçuޘƫéÝÛ"ŽêÒ٠ؾíü½-ÛþæAÁê¨Þ‘u5êi.Ò .9ž¬z:¨Þâ+"ã7¾•!šWk^˜C ê"ãЪÌ.½ žï.î¾ æPIÀqï2ú¥ù^˜”¡ð¢¾ðhŽ&G‹å;ñ¨N1y´G[˜µ,KH>îCþí çþäcAòõçu~(®2e>´<+¦û‹ï¢þŒ¾Œ¦‚B4¯ð<ÛóŒê¦¼J©MC8¨!ñ=¿ðG¿µmsô=Ïð@‹ôNo¨/7ušL¯´¯êaÓñXßñzó@Aò¨žï1TAæPÏæOsöXߘNš;ßðl>ô£JõhúôMßô¡Wö‰òô ¯÷»ZõÊA°æ<<ÏñLo¬«ø¥c±¤ƒøÏñ ËøÓ:=0z ;'k;‘ù Ç8¯³2Ú¬‘Cøö?´²“:ˆ/´O<›sölÿùךú;?÷kú)þ÷/ù«ÿ9½ù,?°›_°”o³­ü1ºü2²þt:ÞÓ±åÃñ¢Ïü2ºøý*²ÕºüåÓ´CýŸ‹ãúAëúÜs9Þ/ûÊ/þÐÏ9¦¹£G»£<Ú=¥cýýÅôžÏ³ŽOÿ»8‘@ @ & P! ,xP€€) HØ0ãB‡76’¡È…!AŠ YqÀJŠT“ IŽ4m¢Ä©ÑaΑ*Y(P€âÏ"<*3âI¦#›–ä™r¨ÊDÚ”&T¦c"}¹A²`ºÒ§V’b DàòªA£•9·lÁ•l½þ5èTðÖ·€áN¥qßÁm펽úõ¨^Ç!¾LK”mÝÆLþ0 :§èÏ¡¬  6`É_¯’vJZ¶é°i—®}z@jÔAw«.ک믹ãFû6hÔª«Z=›ú¸íé&#+m€¶pÉsøæý»úhë_Rf:»6ÌÈ×ÛKG&÷˜ño3,ë~àïÞø‹·<¼„»Nêì£,ÿƒO½ô–+- ?›Ð! A»ÂÔ.Üm.[ËР3$qÄ 3*C w[‘C%ÎÃù^Ó°Æu²ÑÄ [ à€0àÆQÔq¬¤b,ˆÈÕ°+° wT1J PrÀ¼Ž<‘!!½Â®5¥”°I¥æÊQÊ„lïK5ŸÔ0È,5“¾!µþQLá ü²L…ä4Áä1µ#]kOÿÔóFDS\3PÍ;Ï "ûÜsRG€n?J 3ÒÀˆlÏÓF¡ÌÑS•“½æÔ3.—ˆT 5ï+K 84AÉð|2OLMeu5Uã44Ø »LjÕ@ÝÔÏ*I 09Ocp€P!=è¾i£=P½ÿR ªÚ¢ òÑ ¹âv[åŒû(\*·/» ÍÜón2’Ü(7´Ä ÐTSÓ›/ÆŽ[÷3Wãb-:yM#ë¼ú·ˆõ’¸p+ 4q•2Œ!2aˆó2lcÔž_£Mx¶æPƒë܃èæm™û<à þ‹ë€…‡Ö.]“sæ™Á|„È¢tÎyhWŠk]sù ÚÕïüÙ¾»8l—o;@h©mnn:öú…©º¯AòÔ ž¹Nû³·Ü7níp[ƒ|àkc6­ÙJ›]³æ ({_c WôYG5SË>[ëD‹ä4ÊF}ôÑ€²-u–N)3_øÏÆ/Úì¸zòã*17[ Ì_/½LÑË6Ûu­e­ó ¦Ë5ÐÆO¤ší© œÍãß”phЙvéÐ*õVJ–õì\CûïÕ%¹Þ}wá²­7}s3%÷vyßÝUß {ö5TSt~Ëfù{öå7ßë*Å;þwÍÓÑ×þå:Òîqjàý±)C ÛWë°F¿ ìPTËZyu©_ } óü„Æ9T D|â‹N‹žg¿ôA«eÂM»¤G»Þ@[HS×´Ú¥2þLIt£ üÎwC¨¨]’™˜0S%Ñ€@:ÿŽ(0ø€ˆ¼AÎÇ@ö –ч!ï?ŽÅG‰”àtî&2P~+€¸Ä8¸)pAZ°<Æ í_XÇ‚˜3ABhf»)#ëö7º±ñhézäÖÚeD.Æ…u»³$[–I1б‘Æ)ß'ù‡ÃRF1Š^¤€<¦ÀålqwP¬diJ©FSm9pR0þHÁÝ„wXCæþ”ËV¬[¬;¦/)3–Q“b|è¿NÎEJ„b0±½úE®›í#¡öÄHÁ]BŽ…çÄŸ‹vù¼õ“|óÌ]†æYÊbh‡£Ð'%¬|ŽhŸ¯4À¨jÄEW ÓMÝÞœ‚¹Cø¥‘ý;a3U9ÎŒJÈŒå`jèICõõ³"ižZT*Î}ö’CA Ia ;•ª&<*ÕhK-Ú«™^ª¦+i)AñÔÓ õ¥(½PPYöSíqEDÝM+éyRŠ$U©Abê²”jÕç©i"S¡{iS•b“§(ݪ£zÊË7&T£d=kU}*®ÿL…®?EhK9æþ“ver¯vÝëO}ÃÔ«ºt¯t `)X¥ö•¯"Õë#[Ø„Öt—’ÝkP몖Âö§ ¢l)ýÊ’ËÙ’‹‰D PE;Z•4Ö±S g÷‰ÓêE±ÿymm[Ö¼âÓ¶ºulb{S•zÖ²…e-]o{×â>G¯Â}¤f¡û­Ð>÷·£Õìc/ªYãÖ4<Õ]*fU ÞÕ*—³®ÝìÌ:[ïþu¸¿‰+É{U“Æ×}Y…ì|}k_âw»û|*RsÊO¯ xGú]êQåŠ'¥ÎôªdýlþÀK9#Ø­F«QÕjà Ó–¿ý”©×da×wà ^“IÌÏ£ØEþýZ`þ˜²±ŒqJ\Ô0øÆ­ð|{Œa4öáýl‹SŠØëöUÆ¢e2k—ËÔ•øæÉ‰Œ²vwÛܲ>9ËË%ï—KbÁú'«À¡ì{‰ãÓVÊè5ïÊ®jæK¸¹M.›Wœgñ—ÊV¾reãìg¦vw¼B¶sžÓœhBG¼<®2ëü׊™”È=³xéëÞK·ÔÐÀrs¾s¡ïzûÞWx»^p‰üá Ï÷ÂÝ}ñŠ3|ऎ8º>êF‡ºÐ’v3ž=hær9Ó*Ï2Ë[ÓO—\Í0Ÿ¹Ë'-s>§×±e¦²¥WÎéŸÓå77¹Ð[®–š+=°ÚÛ®ýðGÚîfϾ–]¯ö¹CúówÿûÕ_~öCŸþTç?ðó?ô뾤ÀF«»ñë¿ø3À“‹;òc@ºû?Fû¾ý‹ºüS@ù«Ók”ÝC¾ÏS¾Ðc¾Ëó<ß Áþª=Åc½ä+ÁòÀáãÀÊ ¾ÁkAœ¼ÞC¼„¼AÃs<ì¼ô;nR$)J1§"ìA"DÂwRÂÕ;ÂrrÂ>1Â$lþÂzzBÉ‹BwÂB*\Â-TŸŽBœ/´ÂI1ša—jù¢‡É %7¢HdDSÔÅ_ „ÔÃ@\HQ‚ÄE|ÈF¤E8¤È"‚HWdÈ”ÈH0ÚHG”È4,Ä„¬DެņüH6LçXE…DI¾ÅX”IœIÔ ¡ÄÅYŒH£ŒÉ¤ìÈ7¬Ã¦¼I¥œ{|GŒÇ}´ÇfÔGeÜÊp¬F¯ Hz´J­KÙÛ”³dÇ~\ÇsHxÈ´„K¹Ì¶$H±œK´¬GµtK¶ô»µÄ˺ü˾ L/Ìǰ ï<Ìo|KÁL'À,Ψ‰»à«ÄÈŒµL®L|™L¶¨L´XŒ¢ÈL·àLÎÔÌ›øLþŸ®ÍèÌÍä‰ÓĉԼ̬ÍÇpͧ ÍØ\ ÕԌڼMß,ÍÓØÍÙd ÓÌMÖ$ ÛDÍá MÖ„MÏΨX3zóŸ ÎNç1·]þ ¿ð ¿ð ÿ´ñÏô¯n .àÒkkƒt«e¿§Ï¯wáë[Ep:wþ„_ø…_ø…:ùÅ.üÂ/üÂ/ü¸ð ¿ð ¿ðK P|àÂ/üÂ/üÂ/1@ñ ¿ð ¿ð ¿ÄÅ.üÂ/üÂ/ücÍ_¨@`«5ÜŠÒ4=lׯ­lA¯%ïÞ^…âÌýA«{{æç¯÷†¤ÇWÙóÅ™ûpº—½lùóI ¿ð ¿ð ÿäðÏà¶ZÕÑ4=l×·Z= …ÓÎeèt.kÏwo¯Bîü ¿ð ¿ð ÿtòÏÔѻеî®éqíý¿ð ¿ð sùgð‰µµê…4Í=Äö{ Rœ¹_IÏÏ_/‡ÁÜùâÌ}È?á~á~áŸN~™#üÂ/üÂ/ü2°wÈ<á~á~áŸt~™(üÂ/üÂ/üSË/ó`„_ø…_ø…_Ö¸ð ¿ð ¿ðK P|àÂ/üÂ/üÂ/1@ñ ¿ð ¿ð ¿ÄÅ.üÂ/üÂ/ü¸ð ¿ð ¿ðK P|àÂ/üÂ/üÂ?üE¿%tÊ^¨´8sß ûré¡®w½&Gþ|ÒÂ/üÂ/üÂ?9üÅ]ß $]¬Ôv½î˜ÛîÝãÕñUãu¹ó'üÂ/üÂ/üÓÇ?SGï"ö×Þð ¿ð ¿ð7—Ÿ8¿ÞSšî×d»Þ&„ÓŸ‡ÓŸ·¶þ9ó'üÂ/üÂ/üÓÉ?ã:Ĥû5ù IcÜù~á~áþéã— Ä„_ø…_øÒ'®ÊßÒN[b€â~á~á_þWÉ«‡áÙÊrù™¦Cò×ø j‰•T—V>V×ëqZ}ÆiÜàÎûÜ?6Â/üÂ/ü“ÎojäBŽ¥öX뿜¸õÑv% É¥;Ëez~þºõúÓŸlÇÒNÛš_þ&ó¦:þñî~gý›Ò8ò{“~ÞúîuT¹HUþGÅŸ"Â?yü©í“²¡ãªÿì1@ݰ¹iǽÝ$üãÂÛ61’Cö÷6v%$üÁ_Wý`bpvÄòû1{òXïïÐAö|Ób Ê“«\ÐûK LøÇ‘ÿÞÆnù—òy€†ô8ÊØ…ð}ãwè ìýð#Àó—°÷䩵g6Êy@¦À|ÎNRSøe˜ð‡æoi§]þ…6ˆK;m™ãhòñle¹ô—ûòó¡=Sãׄy@>± UÉi¥WŸCB™&ü“ÄŸ3Mæé<À˜Þ»)f×½½õg@%88Fô•¯KŒ"4F¢Ê ÄÀ„ÜùC^Ž™„ò_ô÷\Ê^¨R7€u7J®FŸ{–ÎÅàZRtB+½Ž'…þ]ùC)Ÿ›rß?ÿ¸ýqæWeëwÒùClÌ$”ÿ±Žºæ/EÐ÷­ï^'úúÀCeä£/žºc >•TÅ'|y]]¢®÷OÉ/1°¼ü¶ï¤óû@&¿œ8ŠMcF6û6ÚÞùûéjܘ¾×¶òs®5Z }ÍÇ=¡ÞÜT1hÕ—º´zˆjem×Ï­œ‡AðooŸâÉßÒN;j9 VËÎoóg+~åÿþxùœ_ïœÁ͉]r&¹ê×—'Vÿ.ü?i\‘:vý¸¦—vÚÐyÿlùœÙ“Ç*ó#ëàŸƒ¼õ`tõ¿n~ßȤñûÖo›ûsøg¨‘Ô¥ñвղ_Ó9æ‰Ää/Ö jº?6Ðêsìx.q?î¹®ú1¥¹û¦Ö ?eÉŸ)]iüúé¾×®•?wýuýÏÍÿÓÕeïNï$ñ›~2˜$þ©ŠªtÈägWøÞ“§¥QVŸSøÀÕ=Ëû-. ŨèsgŒŽ™xêˆPö½'Oì©c`eã·r¡·BŽÄÇŠ?ÄÀãÇ&=˜ÚþI 0"X®AÙÿ£çRÅ]oÊËÛ¯/jï?ûá'£ÜÿëŸ=yl`ô~÷'€• ‹ ½iq¡÷¬þ5øsl ˆã©+¢Þ.]Š“cG×¥ŒÍ:Øs{~öqÙøOZ hÒc€®õzZb .1@Ý:À“Æ?ƒO`¿.—nµª²]?·ÎóNJ“Z‡²ßÛ®|OÂØüéW]^lÏŸ[ØûìãÁÈ}æøé<nžÊÜ:<9hüž¿øÛ_vn¾þ²šÞ¹Év\ôåë¥"..ÀÞ?ÂÞg÷òÑgUßá2ÃKÓó_mj—‡ËÍ_ê?cýeý¯ƒßÇÆp1Àqç·ýÞÖøÑ†O›þ‘ÏT½xX¹Ð3ìêP#lüQº¸´ý&~vÙÃwÌKqîFm½ Î‡{Ïî7tNNÓ—Dbç޲|êóß–>Çʪ‚¦Q7Ú(æAÊ(0,´žÛêõüg7¦jXʇØú9¶~5•¿€.~sNµ¤4Í ƒM׫ôCËÔ¨ô©o/”†8pàÅ£Á€‡wçQº8w#*o¿¾X}ö‹ÇnyùÝŸ^<‚âÍkÑüj) Nç2{à4t¡ûùYëÛž´§ pqi\ô; ýÛøUɇ7P1¼8ßÄ .ýçÔO“õËßýöâ s±1Pœ»11ü¶ü©rmrwâŽÂÞ?N\ù/z#À\Ùê¿âÊ á­ï^÷„ÿ»? \xäÕû/Ýý4gä|ò÷ÓÕåʳˑ•%/ê»»ûoDóÏÏ_ïõFޝj ÉièF­`£&tÊÆð‡.hî[Imi®¬‹Ÿ ìýðcù_éxào¾YÖæ _е5]ËLþJï`clõ%gùWñîÙ?éy£]ësÈ €z”pçYÙ]u²»¾ü'®®L!ÂÚÙ“Çàûs7³èß%E«ݵµáá£)Í=HwýÏ?Ÿ€âÌý¡ »·WáôÿÎWÜuºÞçÚ£ŠðÍ_÷ó³Úû³ 9î.oFó»¤ùË{eEm |õ[—þmé˜=L壩ü”·òæ­2à+†üwzå÷æ—,w~®,Î^ø}oD…bÏ¥»5ž•ýsº¦£.¬ßŠ›öwz¡"ÃÐNOé"V®aü<€òYØëæZ^J«Ð•ºŸêÀ©sè\#hÒŠúY@×wb,Nš®ß‚ÂiëεÃVêªÍ~±a¨’0y¡ßãd(¿òŸþô¸v"h hЉÐ9ôoãO±U“ùsï©êH(oìâñ. ’:t[뜆npþ\êuHŒÙf8ýǬ>å›Wû§Ü’C/5zGß«N¿éþX¸Ó£dŽ”Þ ÜYÂú [­™ôŸ¢~–1À”7Åé-´ÌMŠMÕ±´ÓŽÊ_lå¦ÏáW“@__ÕÉT1À:~*þTF#E#˜šßµñ£úó- ¡ú)s\£às®T1 ['¶Îç<©X¿/Ÿk£¬ô[6€ØË…]“$†kºªÎݿԤÿõ³˜[‡î¨^Žmcò—bTËïšNÑQ×WàS9Z^FÅïÃÃMa©c뚘ÕSbïÇm¢Ÿúmš2:Å D~1öÑuŠNù(zɇ|lá„Øòbkk›ïÚZNÒZ ±½•&­…érŒûZ)¼õͨø}  àû…,ãçÃÚø™îï“çg+ËIÖ‚LíÒôÕH£OËKè’.ùÓº…tü9FᲨG#“¿X_{ÝkáÅvÆq-ÈØ=9; ~ßÝì9ýçÞ¿-ttéªß#t-ÈЗÆRéßGŽ»|a,ÿ¾‡¯ýSîMn¿Kš¦üç¾6,í´aßF;ºîÊ~€–^mHþRøª›¼ž®bó* ©º\n~ß‘ŸÍèkX\øbb~.ú†ê'…=©Ã¾¨ÆÏTþC—U°BF•6³®<„4|S·hh¡õÍ_ì1ʵ­+6X*ö¸®i3!rQÆ Wäü¾ozú¬…[_T:4^æ«ßNJìZ©äãª_9úÖÿÔöÉ·£c’¯®<Äì¼SÇZ SŒõW«@ð(b`.FžÛÏU¿MßN×ÆÈ®œü¾®O—ˆ¯aOóãêŸþC&ý„È=¥þ]Gú¹ìcêýP)?mèmò iø$à³7å/•ësûÑÕÙ9c®[Á}’öƒ£ 'õÝÐþ‰`Þ8Xmšš’ß·qñÝͧ÷®ËoLGÐWÿ!®0ßò³hDLù±/©ßØ·ÑÎú'_[ùŠtH ÐÃgoÊ_Š7•L¯×£AjjèÕ5ºFpRvP3Û&2Óó¦¡ ÆòûDî5xÓý]\K¶]hÜ/Vÿ! SÎ`lù÷µ/ô5[ùw‰ºÚ§+~ú[×°¯l$èèâ2åO½è;ò›=tPë¯+†w<ǯb¡k&q?¸}í²á • ¾––1Uf’í7i±ûò»6¨¦ü…v côï[ßO\=ì]>]=#.öÄWÿ¾Gª } uËû–¯ÐçMå~€\[›3fÜ:z\÷]îHývþ«Í‘‚ðž]º‘žnô‡ó?iûÁ•;z8Ê…–-[Y ]l¡²ÌžnMY”7nò·O/øÙÊ2»6¥ë›€>ËÅìG_ª,ö­é øìgY.ðÌØÝþv¾÷§òõíHà).!åÿÙʲvq ýÛò«ÛOÿÎg?ÌTòÉeŸÔõÌè÷\œ‡sê܂ܽ¹ß¨}ôŠK›‰éF4´¢«Ê¯¾Ÿ¤ ½? âÑ ×ëçÊnˆeÊÏÝ×6ñåWie4|æ©™ò¦sûƘ|c€\÷)Ÿ*>Åyt²-ÿ.nuªã˜òoй¹èŸÚ;›ÍÄq<Ê—c^iHù±O#] ´óþÙáUÐcä²E’ÏaÚùX5~MX ¯ÊLü˜Å5¿÷ÏzÉÎåºï/ý=šß%ÿjÓàÐ2¡cTòsÕ?ÞfKç–Ååm÷ƒ/’ðû”Oº*ÝNç5ñYk’+ÿœ!µÕo×ò«F¦zÁu†]×Jåä«k¨Lq|+WùwÕ¿ó&¸}†}íÒþ¨´«þCb£u”œnL ÐåíFî{®Ps=I{ »:—vڥ˰I10ß‘¾ÆG¿0¼2¼GL–».G Kß]ÞÔîW6tx0â-$Æ¢Ê5•¨s©ø]óg2€:‹r{Å”Sc1¤“Å…Rf¾å—kÀu¡ßúÁ̓óñ^å,ÿ.ú§3›Í¤¿Qe D6OL]å¿ÑómKñ¸ŽFt®.Îß<ÿÕ&̵9vka²OcØ}çýù6¶ëRÌtÕި؋ÃpÎUÿ¦´©ã’ßV>m^]c[þ­Ïf¶HÂTÈ<@SƒŽã[!òÝ,. •!]¾’-Pœ»Î設ž¨ÎFj|¸‘)èepù×¹-/%¹ò—£o×Î É×5ÎK¾u ÐjSé•_T.p½qÖ?–ÏïXm=žü>² :êÒxˆér=éÞ^Õ¦¹Æ­üîw†Ï8’4£æ·ÊOe`_)ø»ß^4w45:-Î݈*ÿ§üYÛ`Ë7s_ÛÉ0Ü3¶þ³ò:p„u¹~éïQõ?…þ]ljiSH\ÓWÿZÙhô\¿.ý ¸Âäí¨³ûßKÿ6[NŽ­_wj)ÿºô >A}¨4m‹‰pi Rœ¹o6ì•XÊ£áŠCš"£äŸŸ¿óó×µç‹3÷{÷£ì´÷Le„®o:¿é(ù3åÏ&;ç˜`9²ÓèI•er8ë?¿uôÇä1VÿÚzMÓŒ ]øËÑ7'cK£UþËFð¨³7+¸þ§Ò?×ÑÕƒÀúå{ÔÉÏ¥gÔü&—Æ7p¹§‹3÷+¯·–iÚ#1pÈ5)ó72~ÇôL¸‚k}4ïæ—•FžO¿âÍkn²#Cwÿ!ݘÕþgý§àgy騀kÈ#ôß}pEßY3Õs"ÛóØ‘$—îÿÅ”m½£ÏE2Ž­ÿ±ú7ÉY×Îr-Lÿšºcj|ë(ÿºôèçÚ*„¡MÕ<@,*“†W?ÝtþÙCaöÂï?zx§Ü6'÷< ›ìègíýuº1H;ì7ß,›ùu†ÈbSì‡ÈÊ×0ZSîO~먉NBÊ¿µƒc°e©æ†îWÉÉÀ$?ïµF\qö!¹Õ½n³æê‚áºBŒ>Oå<@l¬¹Â¬Î“sMæZ"éw`öÂï³Ïr’Æ`Ðû[õDÿ’ÎSQí†ÀÎc_:9Ê»qþcô¯^ yñXo|¹yñSw*§?tjÔmòtšh3ðýÏ)çÁª56ñZ›&ýt>¾2••¡a ª_šx7«`þ?ÿ¨å§|“9ÇùtFÃ`ü§f -PèÍ©j!~ó¬éü•|®Üó€l²«ÄoÞ¼fŸg¥ÓӋǬÎRÌ£‹2{åÏT#å;4í7‚†:_~±ñ—ÆÝÅCâYT#HùvŠëì gÇΤºöÙ¯PÛð:&Þó qGŠ“)c6þg+ËæÉ\ ”6t;7­Æˆºö¦f-Püªu¥w­ù~ øg¼ñÆ;½†¹AsåÏUv*mºÿ°ayÌÏD÷O¹$ü7®Í¨ñèŽ ùrí±|q='ÏâW£]çÜÊ«MãÏì<7C#KÔkáúêG'gÝ(¼Xú£wý*ÝŸ¶¾ƒ|¸†>—}úª/ui:ÂvýÜ:Ày o¤Ó.ÑJiÏ_ cßE¦Î¥ÈŸO:5¿ò üùóë]˜ë‹cïæ—ƒÃõxñ|ô; þrÂç/T>¿Þ†¹Œùs*ÄõÉÝ—MVOšµ[]õ¯Ë?6ÖýýÚÞÓð«<.>æWùÛ_úç†:™¾ò­0ÕÒåÏ9Ïv`ÝŸ5¬ÊV(;¡ìG¤kªTžK;íÊõ•Fß[WnÈ›¶¡õŸ髼YõÃuÄ 6¿å«—Î@©ëO®À5–ÿáÔå'…}m QŽZèºÜlq¡w^­\ñðÀó—Ó|x§²±jŰPCÃ|×Tþ²R#¨bÜ{ò´<Ÿ-è ;e˜M÷·éIív€ÿbc€Ô âÝÚ9~¼öe¥1긇¸¿¯|ÙÒÕbËJ&¸žù;ǹÑúÃ;;A¾W1'_y×UϤyA£ØúÏ5Ì>å¨|klª)Fj]kT×ÔxCt¼Ü.ò“½(Ô졃ë•kÖ,œ– ݨT¥‡: }Ya£Òdþ’凵;RçÈß³•e'ÙaCírž†ƒ'OáÄÕÃÁ1@ÎH8Åhp}Ò­Š fˆ|uy£®ç{OžÂ÷çnzÅ@»ŸŸèìæ—#NwÑñcÂþŠA×ÉŒz•—#¤þ›äiÓϳ•åªL¸Ïï õÏ…°,˜‘òSÖ{»¾ éã0Ë^³*HDiÓÄÆtöÐÁÊ*ë¦ '›ÎobP/#¤Ì8ÉnïÉSطѶ޿¸´©Ýýï‚­{–O ˆŽÔhÅ…çAÛ©bm_ùÒ{™ä»÷ä)ÜÛØõŽÒƔʗîdŽó@ïÇþtå«8wÃÜ .Þþu!õÇÁqÞ|Êÿì 65´~uÞ?[µáª3¢Fጧ¼ëTÅiÅß)75&Ód嵸P¡pF¸É1@×ã§«ËlÌ#4ÔÝ®“•Ÿs DÓ¨Sctø¯€¥¶s küpŒÄ–¿¥v_¡u‰îß¶÷ä©·|¹üÙê8u}ºÆ@‡:ƒä¾*¿çÊ[³ÅÀ Mö²£»]0ʳ•eX‚¶sýçF~4&iÓ®ÜélêÒW›^÷wÙK”îù‡Ó”Hëõ€¹u€bnº®½¼B7­¯û½ÉØúü·lÃærp½Æüù¤Só»4tNŒï·i¿©×gb‰ÉŸ,éóL÷ÕÑÒNÛ©Œè b*~®aj¿íMA_}ê~oª/Šÿ­ï^³žÚðQyÞÛØuªÿ\½°’9ýÔU¿ž­,³»Èë><êçô€å¤Ó*ûTlAÑõ ÊÒÅJ½7t% `ÈA…“¿QñÏm÷îñêøªñ:ß‚ÌUœ¦òþë’óèòç#Çò«'_Ý«ßøêÇW¶û‡rï~ð…Sù·M”NuèäÉñ«FiÚ:ê9´þ»èÚ§~úêŇߤö%(ÏÁMÿ©ìS±E7‡Ñs1‚'®6ŸžcÓ=þºÀ¦ó§hë6úuå”ùSéŽ@êFÿÞÆ®sùÕgˆ=ÉÕèçl”có:¨py–«×usÙ§bnº¹†—1®‘Ô{î?÷¦º¦® *Ÿ&òcw•É=“B®ü¹Ë{lþBåýw÷Ý?„UçÞ²5|±ùwéPø–ÿܺƦº?S–y®ñ åwµO3®­%ݯ)¶÷_ç‘b48Îü)ä“›_×ó3j©¤WÃ[ß½.ÿN\=<´Œ’ˆádž$Gã—J?÷6v½òÊÉ7•›7¤|†Þ‹Êsi§\þsêÚÇåÉåÏ÷ˆ©ÿ)ä`ÒgNû”=8ª‘É]ÔÄà¨ä"ŸÜ1кeasÚš#9݉®ÆÍժ˪˜klùO=íÀãeypå+´¼ï~ðE°þS”ÿ™Ü.À&£tŽÃÑ4þ{»å_nÃ|oc7 ÿÒN;:ÿ9ó‡Ó¾£Aש‡¸ IDATF;•uù¹·ÊSÊúŸB~&YùæÏ·ñÃîèÐò¯^‚¥}š9¿Þ-{bj?&]º{{º·W¯oB#à׃_¥Õgœ¦=á¦Ë''?wþüz–vÚ°ûÁ¥»*…ËKݯý«çùä±Îüá4–O¬|Sé?…|qùÉYÿ}Ëèî_”¡ü\þ\Ë—I_¹øñóSè?¶ü—ó·>Ú®lNÈ¥;Ëez~þºõz[Z§?=ôûÜù~á~áþÉåé<ÀØ@ªü ¿ð ¿ð ÿôñE 0wþ„_ø…_ø…úøgð å#Õ¥©Ùv½M§?=^–Ú‚³9ò'üÂ/üÂ/üÓÉ?ósçOø…_ø…_ø§_b€~á~á— øÀ…_ø…_ø…_b€â~á~áþ æ/ç6}WôÜù~á~áþéãïöÁòÏ–nµÜ¯ß‚¢;·Þû¯þTz{{»»½½­=ßߪ)kþ„_ø…_ø…jùó •ƒRi%“ÆQéÂ/üÂ/üÂß|þbnº2ü~á~áþiãŸè%^Ý\À¥×ÖéVË~=NǾv›;Â/üÂ/üÂ?üâ~á~á~‰Š\ø…_ø…_ø%(>pá~á~á— øÀ…_ø…_ø…rø‹þðqè4MÛõ*½ÅÐÚl*­Ö‚ët.³çNCræÏ5-üÂ/üÂ/ü“Å?£.¦CHš¦‡ízœ.ÎÜZ«Í';Â/üÂ/üÂ?}ü3øD«U½¦¹‡Ø~AèZmÎåÊ6öô|÷ö*äΟð ¿ð ¿ðO'ÿLî!0Ò†¤ÇÙ üÂ/üÂ/üÍå—y0Â/üÂ/üÂ/óAæÁ¿ð ¿ð ¿Ì¤eŒð ¿ð ¿ðË<@™#üÂ/üÂ/ü kŠ\ø…_ø…_ø%(>pá~á~á— øÀ…_ø…_ø…_b€â~á~á~‰Š\ø…_ø…_ø%(>pá~á~á— øÀ…_ø…_ø…¿†üý?I»ÞOr·ºIEND®B`‚scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/ptscotch_logo_color.ps000066400000000000000000012557431514310134000300750ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: /home/pelegrin/tex/paral/scotch/puser_5.0/p_f_logo.ps %%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley %%BoundingBox: 74 357 522 485 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 1344 string def % define space for color conversions /grays 448 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 74 357 translate % size of image (on paper, in 1/72inch coords) 447.98400 128.01600 scale % define 'colorimage' if it isn't defined % ('colortogray' and 'mergeprocs' come from xwd2ps % via xgrab) /colorimage where % do we know about 'colorimage'? { pop } % yes: pop off the 'dict' returned { % no: define one /colortogray { % define an RGB->I function /rgbdata exch store % call input 'rgbdata' rgbdata length 3 idiv /npixls exch store /rgbindx 0 store 0 1 npixls 1 sub { grays exch rgbdata rgbindx get 20 mul % Red rgbdata rgbindx 1 add get 32 mul % Green rgbdata rgbindx 2 add get 12 mul % Blue add add 64 idiv % I = .5G + .31R + .18B put /rgbindx rgbindx 3 add store } for grays 0 npixls getinterval } bind def % Utility procedure for colorimage operator. % This procedure takes two procedures off the % stack and merges them into a single procedure. /mergeprocs { % def dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /colorimage { % def pop pop % remove 'false 3' operands {colortogray} mergeprocs image } bind def } ifelse % end of 'false' case 448 128 8 % dimensions of data [448 0 0 -128 0 128] % mapping matrix {currentfile pix readhexstring pop} false 3 colorimage 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c250e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcf cfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcf cfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcf cfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25ffb953ffb953ffa041f47c25f47c25f47c25f47c25f47c25c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 ffa041f47c25ffa041f47c25f47c25f47c25f47c25f47c25f47c25c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e50000e5000c000010e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001 c000010e5000c00001c00001c00001bfbf32f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 f47c25f47c25f47c25f47c25f47c25c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001f47c25f47c25c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c00001f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 f47c25f47c25f47c25f47c25f47c25c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000f47c25f47c25f47c25f47c25f47c25c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000f47c25 f47c25f47c25f47c250e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e5000000000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25f47c25 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000f47c25f47c25f47c25f47c25f47c25c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000f47c25f47c25f47c25f47c25ffa041ffa041 f47c25f47c250000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25000000c7c7000000000000000000000e5000000000000000 f47c25f47c25f47c25f47c25f47c250e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000f47c25f47c25f47c25f47c25f47c25c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000f47c25f47c25f47c25f47c25f47c25 f47c25f47c250000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000f47c25f47c25f47c25f47c25f47c250000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e5000000000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c7c7000000000e50000e50000e50000000000e50000e5000 f47c25f47c25f47c25f47c25f47c25c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000f47c25f47c25f47c25 f47c25ffa041ffa041ffa041f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000f47c25f47c25f47c25f47c25f47c250000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 f47c25f47c25f47c25f47c25ffa041ffa041ffa041f47c25f47c25f47c25f47c25f47c25 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e5000ffa041f47c25f47c25ffb953 ffa041f47c250e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c7c7000000000e50000e50000e50000000000e5000 ffa041f47c25f47c25ffa041f47c250e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000f47c25f47c25f47c25 f47c25ffa041ffa041ffa041f47c25ffa041ffa041f47c25f47c25ffa041f47c25f47c25 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000ffa041f47c25f47c25ffa041f47c25c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25ffa041ffa041ffa041f47c25ffa041ffa041f47c25f47c25 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e5000f47c25f47c25ffb953ffb953 f47c25c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c7c7000000000000000000000e5000000000000000 f47c25ffa041ffa041f47c25ffa0410e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000f47c25ffa041ffa041 ffa041ffa041ffb953ffa041f47c25ffa041f47c25ffa041ffa041f47c25ffa041ffa041 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000f47c25ffa041ffa041f47c25ffa041c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 f47c25ffa041ffa041ffa041f47c25ffb953ffa041f47c25ffa041f47c25ffa041ffa041 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000f47c25ffb953ffe6a6f47c25 f47c25c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25ffb953 ffb953ffb953ffb953f47c25f47c25f47c25ffb953f47c25f47c25f47c250e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 000000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffb953ffb953 ffb953ffb953f47c25f47c25f47c25ffb9530e50000000000000000000000e5000000000 ffe6a6ffa041f47c25ffe6a6ffa041c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000ffb953ffb953ffa041 ffb953ffe6a6ffe6a6ffb953ffa041ffb953ffe6a6ffb953ffa041ffe6a6ffb953ffa041 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000ffe6a6ffa041f47c25ffe6a6ffa0410000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000f47c25 f47c25f47c25ffa041ffb953ffe6a6ffe6a6ffb953ffa041ffb953ffe6a6ffa041f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000ffa041ffa041f47c25ffa041 f47c250000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 f47c25f47c25f47c25f47c25ffb953ffb953ffb953ffb953f47c25f47c25f47c25f47c25 f47c250000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c25f47c25f47c25 f47c250000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25ffb953ffb953 f47c25ffa041f47c25f47c25ffb953f47c25f47c25f47c25ffb953f47c250e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e5000000000f47c25f47c25f47c25ffb953f47c25f47c25f47c25ffb953ffb953f47c25 ffa041f47c25f47c25f47c25ffb953ffb9530e50000e50000e50000000000e50000e5000 f47c25ffa041f47c25f47c25ffa041c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000ffa041ffb953ffb953 ffa041ffa041ffb953ffa041ffa041ffa041ffb953ffa041ffa041ffb953ffb953ffa041 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000f47c25ffa041f47c25f47c25ffa0410000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000f47c25 ffa041f47c25ffb953f47c25f47c25f47c25ffa041ffa041f47c25f47c25ffa041f47c25 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000f47c25f47c25f47c25 f47c250000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 f47c25f47c25f47c25ffb953ffb953f47c25ffa041f47c25f47c25ffb953f47c25f47c25 f47c250000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25ffa041f47c25f47c25f47c25 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001f47c25ffa041ffb953ffe6a6ffa041 ffa041ffa041ffb953ffb953ffa041ffa041ffb953ffb953ffa041ffa0410000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e5000f47c25ffa041ffb953ffe6a6f47c25ffa041ffb953ffe6a6ffa041ffa041 ffa041ffb953ffb953ffa041ffa041ffb9530000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000ffb953ffa041ffb953 f47c25ffa041ffa041f47c25f47c25ffa041ffa041f47c25ffa041ffa041ffa041f47c25 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001ffa041 ffb953ffa041f47c25f47c25ffa041ffa041f47c25f47c25f47c25f47c25f47c25f47c25 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e5000f47c25f47c25f47c25 f47c25c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 f47c25ffa041ffb953ffe6a6ffa041ffa041ffa041ffb953ffb953ffa041ffa041ffb953 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 f47c25ffa041ffa041f47c25ffa041ffa041f47c25ffa041ffa041f47c25f47c25f47c25 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001ffb953ffa041ffb953ffd07bffe6a6 ffd07bffe6a6ffd07bffd07bffa041ffb953ffd07bffd07bffa041ffb953000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700ffb953ffa041ffb953ffd07bffb953ffa041ffb953ffd07bffe6a6ffd07b ffe6a6ffd07bffd07bffa041ffe6a6ffd07b000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000ffa041f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041f47c25ffa041 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001f47c25 ffa041f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000f47c25f47c25f47c25 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000ffb953 ffb953ffa041ffb953ffd07bffe6a6ffd07bffe6a6ffd07bffd07bffa041ffb953ffb953 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000f47c25 f47c25ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffb953ffb953f47c25 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32f47c25ffa041ffe6a6ffb953ffa041 ffb953ffb953ffb953ffb953ffa041f47c25ffb953ffb953ffa041f47c25c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000f47c25ffa041ffe6a6ffb953f47c25ffa041ffe6a6ffb953ffa041ffb953 ffb953ffb953ffb953ffa041ffb953ffb953c7c700000000000000000000c7c700000000 000000000000c7c700000000c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001c00001c00001bfbf32f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000f47c25f47c25f47c25 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32f47c25ffb953ffb953f47c25f47c25ffb953f47c25ffb953f47c25 f47c25000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700f47c25ffb953ffb953f47c25f47c25 ffb953f47c25f47c25ffb953ffb953f47c25f47c25c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700f47c25 f47c25ffa041ffe6a6ffb953ffa041ffb953ffb953ffb953ffb953ffa041f47c25f47c25 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001f47c25f47c25ffe6a6f47c25ffb953f47c25 f47c25f47c25f47c25f47c25000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700ffb953 f47c25ffa041ffa041f47c25ffa041f47c25ffa041f47c25ffb953f47c25ffa041f47c25 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001f47c25ffb953ffa041f47c25ffa041f47c25f47c25ffb953c00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32ffa041ffa041ffa041f47c25f47c25 ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c25c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffb953ffb953ffb953 ffb953ffa041ffa041ffa041ffa041ffa041c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32f47c25 f47c25f47c25f47c25ffa041f47c25ffa041ffe6a6ffb953ffe6a6ffb953ffa041ffd07b ffd07bf47c25f47c25f47c25c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700f47c25f47c25f47c25f47c25f47c25ffd07bffe6a6ffb953 ffb953ffb953ffe6a6ffa041ffe6a6ffb953ffa041f47c25f47c25f47c25bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700 c7c700000000c7c700c7c700f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041 ffa041ffa041ffa041f47c25f47c25f47c25ffa041ffa041ffa041ffa041f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001f47c25f47c25f47c25ffb953ffb953f47c25ffa041ffd07bffe6a6ffa041 ffb953ffe6a6ffb953f47c25f47c25f47c25f47c25c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700f47c25 ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffd07bffa041ffa041f47c25c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700ffd07b f47c25ffb953ffb953ffb953ffa041ffa041ffb953ffb953f47c25ffa041bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001ffb953f47c25f47c25f47c25ffa041 f47c25f47c25f47c25ffa041ffa041ffb953f47c25ffa041ffa041ffb953000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700ffb953f47c25f47c25f47c25ffb953f47c25f47c25f47c25ffa041ffa041 ffa041f47c25ffa041ffa041ffb953f47c25000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffe6a6ffe6a6 f47c25f47c25f47c25f47c25f47c25f47c25000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700f47c25f47c25f47c25f47c25ffa041ffa041ffb953ffd07bffa041f47c25ffe6a6 f47c25f47c25f47c25f47c25f47c25ffb953ffb953ffb953ffb953f47c25f47c25f47c25 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700 c7c700c7c700000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 ffb953f47c25f47c25f47c25ffa041f47c25f47c25f47c25ffa041ffa041ffb953f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 f47c25f47c25f47c25f47c25f47c25ffa041f47c25ffa041f47c25f47c25ffe6a6ffe6a6 ffd07bffd07bffa041ffd07bffb953ffb953f47c25f47c25f47c25c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000ffb953 ffb953ffd07bffe6a6ffe6a6ffd07bffd07bffd07bffb953ffb953ffa041f47c25c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700f47c25ffb953ffb953 ffd07bffd07bffd07bffb953ffe6a6ffb953ffb953ffd07bffb953ffb953ffa041bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25f47c25f47c25ffb953f47c25 ffb953f47c25f47c25ffa041f47c25f47c25f47c25ffa041f47c25f47c25000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000f47c25f47c25f47c25ffb953f47c25f47c25f47c25ffb953f47c25ffb953 f47c25f47c25f47c25ffb953f47c25ffb9530000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffb953f47c25f47c25f47c25 f47c25f47c25c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffb953 f47c25f47c25f47c25ffb953f47c25ffb953f47c25f47c25ffa041f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000f47c25ffb953 ffa041ffb953ffb953ffb953ffb953ffe6a6ffa041ffb953ffb953ffb953f47c25000000 000000c7c7000000000000000000000e5000000000f47c25f47c25f47c25ffb953ffb953 ffb953f47c25ffb953ffd07bf47c25f47c25ffe6a6f47c25f47c25ffb953f47c25f47c25 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 000000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c250e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250000000000000e5000000000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000 0000000000000e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c000010e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000 0000000000000e50000000000000000000000e5000000000000000000000f47c25ffb953 ffa041ffa041f47c25ffa041ffb953ffb953f47c25ffb953ffb953f47c25f47c25000000 0000000000000e5000000000000000000000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000000000e50000e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e50000000000e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c700000000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e5000c000010e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c7c7000000000e50000e50000e50000000000e50000e50000e5000000000f47c25f47c25 ffb953f47c25ffa041ffa041ffa041f47c25f47c25f47c25f47c25f47c25c7c700c7c700 c7c7000000000e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c000010e50000e50000e50000000000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000000000e5000 0e50000e50000000000e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c700f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e5000f47c25f47c25 ffb953f47c25ffa041ffa041f47c25f47c25f47c25ffa041f47c25f47c25000000c7c700 c7c700c7c7000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c00001c000010000000e5000000000000000000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000000000 0000000e50000000000000000000000e5000000000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000000000000000 0000000e5000000000000000c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e5000000000000000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25cfcfcf0e5000c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 000000c7c7000000000000000000000e50000000000000000000000e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 000000c7c700000000f47c25f47c25f47c25f47c25f47c250000000e5000000000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c000010e5000c000010000000000000e5000000000000000000000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000000000 0000000000000e5000000000000000000000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c250e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c700000000000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0000000000000e50000000000000000000000e5000000000000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c7c700000000 000000000000f47c25f47c25f47c25f47c25f47c250000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000f47c25f47c25ffa041 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e5000c000010e50000e50000e50000000000e50000e50000e5000000000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e50000e5000 0e50000000000e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c700f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c7c7000000000e50000e50000e50000000000e50000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000c7c700c7c700 c7c700000000f47c25f47c25f47c25f47c250e50000e50000e50000000000e50000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e5000000000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000f47c25ffa041ffa041 f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25f47c25f47c25 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000000000f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25f47c25 f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25f47c25f47c25f47c25f47c25 f47c25f47c250000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000000000e5000 0e50000e50000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c250000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c7c700c7c7000000000e50000e50000e50000000000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000c7c700 c7c700f47c25f47c25f47c25f47c250e50000000000e50000e50000e50000000000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000ffa041ffa041ffa041 ffa041ffa041f47c25f47c25f47c25f47c25ffa041ffa041ffa041ffa041f47c25f47c25 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e5000000000000000f47c25f47c25f47c25ffa041ffa041ffa041ffa041ffa041 ffa041f47c25ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25f47c25ffa041 f47c25f47c25f47c25f47c250000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000000000000000 0000000e5000000000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000 000000c7c7000000000000000000000e5000000000000000000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000000000 f47c25f47c25f47c25f47c250000000e50000000000000000000000e5000000000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000 000000000000c7c7000000000000000000000e5000000000000000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000ffa041f47c25f47c25 ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e5000000000000000f47c25ffa041ffa041f47c25f47c25ffa041ffa041 ffa041f47c25ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041ffa041 f47c25f47c25f47c25f47c25f47c250000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000000000000000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000000000000000e5000000000 0000000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c700000000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 000000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c7c700000000 0000000000000e50000000000000000000000e5000000000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000c7c700f47c25 f47c25f47c25f47c250000000000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c25f47c25f47c250e50000e5000 0e5000000000c7c700c7c700c7c700000000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 ffa041000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000f47c25ffa041ffa041 ffa041f47c25ffa041ffa041f47c25ffa041f47c25f47c25ffa041ffa041ffa041f47c25 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e5000000000f47c25f47c25ffa041ffa041ffa041f47c25 ffa041ffa041f47c25ffa041f47c25f47c25ffa041ffa041ffa041ffa041f47c25ffa041 ffa041ffa041f47c25f47c25f47c25f47c250e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e5000000000f47c25f47c25 f47c25ffa041f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c250e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e50000000000e50000e5000 0e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c250e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700f47c25f47c25f47c25f47c25 ffa041f47c25f47c25ffa041f47c25f47c25f47c25f47c25f47c250000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000000000f47c25f47c25f47c25f47c25f47c25f47c25f47c25000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000c7c700f47c25 f47c25f47c250e50000e50000e50000000000e50000e50000e50000000000e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001f47c25ffa041f47c25f47c25f47c25 f47c25ffa041f47c25f47c25ffa041ffa041ffa041f47c25f47c25f47c25f47c25f47c25 ffa041f47c25ffa041f47c25f47c25f47c25f47c25ffa041ffa041ffa041f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041ffa041 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000f47c25ffa041ffa041 ffa041f47c25f47c25f47c25ffa041ffa041f47c25f47c25f47c25ffa041ffa041ffa041 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e5000000000f47c25ffa041ffa041ffa041f47c25 f47c25f47c25ffa041ffa041f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c25 f47c25f47c25f47c25ffa041f47c25ffa041f47c250e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e5000f47c25f47c25f47c25 ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c25f47c250e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e5000f47c25000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e5000f47c25f47c25f47c25ffa041f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c00001f47c25f47c25f47c25f47c25ffa041 f47c25ffa041ffa041ffa041ffa041ffa041f47c25f47c250e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700f47c25ffa041f47c25f47c25 ffa041ffa041f47c25ffa041ffa041f47c25f47c25f47c250e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e5000f47c250e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25ffa041ffa041ffa041f47c250e50000e5000f47c25f47c25 f47c25c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001f47c25ffa041ffa041f47c25f47c25 f47c25ffa041f47c25ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25ffa041f47c25f47c25 f47c25f47c25ffa041f47c25ffa041ffa041ffa041ffa041f47c25ffa041000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000f47c25f47c25ffa041 f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25ffa041f47c25f47c25ffa041 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e5000000000000000f47c25f47c25f47c25ffa041 ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041f47c25f47c25 ffa041ffa041f47c25ffa041f47c25f47c25f47c250000000000000e5000000000000000 000000c7c7000000000000000000000e5000000000000000000000f47c25ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25f47c250e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 000000f47c25ffa041f47c25f47c25ffa041ffa041f47c25f47c25ffa041ffa041f47c25 f47c25f47c25f47c25000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001f47c25f47c25f47c25f47c25ffa041 f47c25ffa041ffa041f47c25ffa041f47c25f47c25f47c250000000e5000000000000000 0000000e50000000000000000000000e5000000000f47c25f47c25f47c25ffa041ffa041 ffa041f47c25ffa041ffa041ffa041f47c25f47c25f47c250000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 f47c25f47c25ffa041ffa041f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000000000000000ffa041ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041f47c25ffa041f47c25000000f47c25f47c25ffa041 f47c25c7c7000000000000000000000e50000000000000000000000e5000000000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000ffa041f47c25ffa041f47c25f47c25 ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041f47c25ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 ffa041f47c25ffa041ffa041f47c25ffa041ffa041f47c25ffa0410000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000f47c25ffa041ffa041 ffa041f47c25f47c25ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25ffa041 0000000000000e50000000000000000000000e50000000000000000000000e5000ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041f47c25ffa041c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000ffa041f47c25 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000ffa041ffa041ffa041ffa041 f47c25f47c25ffa041f47c25f47c25ffa041ffa041f47c25cfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 000000f47c25f47c25ffa041ffa041f47c25ffa041f47c25ffa041ffa041ffa041f47c25 f47c25f47c25f47c250000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000f47c25f47c25ffa041ffa041ffa041 f47c25ffa041ffa041ffa041ffa041ffa041f47c25ffa0410000000000000e5000000000 0000000000000e5000000000000000000000c7c700f47c25f47c25ffa041ffa041ffa041 ffa041ffa041ffa041f47c25f47c25f47c25f47c25f47c250000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000f47c25 f47c25ffa041ffa041ffa041ffa041ffa041f47c25ffa041f47c25f47c25f47c25c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000f47c25f47c25ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25000000f47c25ffa041f47c25 0000000000000e50000000000000000000000e50000000000000000000000e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000ffa041f47c25ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 f47c25ffa041ffa041ffa041ffa041f47c25ffa041f47c25ffa041ffa041f47c25ffa041 ffa041ffa041ffa041f47c25ffa041ffa0410e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000ffa041ffa041ffa041 ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000ffa041 ffb953ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa0410e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffb953ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e5000ffa041ffa041ffa041ffa041 ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa0410e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 f47c25f47c25ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041ffa041 ffa041f47c25c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c00001f47c25f47c25ffa041ffa041ffa041ffa041 f47c25ffa041ffb953ffa041ffa041ffb953ffa041f47c250e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700f47c25ffa041ffa041ffa041f47c25 ffa041f47c25ffa041f47c25f47c25f47c25ffa041f47c250e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000f47c25 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25f47c25ffa0410e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e5000ffa041f47c25f47c25ffa041ffa041 ffa041ffa041f47c25ffa041f47c25ffa041ffa041f47c25ffa041f47c25ffa041c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000f47c25 ffa041f47c25ffa041f47c25ffa041ffa041f47c25ffa041f47c25f47c25f47c250e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001ffa041f47c25ffa041ffa041f47c25 ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffa0410e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffb953ffa041ffa041ffa041ffa041 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000ffa041 ffb953ffa041ffa041ffa041ffa041ffb953ffa041ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffa041ffb953ffa041ffa041ffa041ffa0410e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700ffa041ffa041ffa041ffa041ffa041ffa041ffb953ffa041ffb953ffa041ffa041 ffa041ffa041ffb953ffa041ffa041ffa041ffa041ffa041ffa0410e5000000000c7c700 c7c700c7c7000000000e50000e50000e5000000000ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa0410e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 ffa041f47c25ffa041ffa041ffa041f47c25ffa041f47c25f47c25ffa041ffa041ffa041 ffa041ffa041000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000f47c25ffa041ffa041ffa041ffa041ffa041 f47c25ffa041f47c25ffa041ffa041ffb953ffa041ffa0410e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000f47c25ffa041ffa041ffa041ffa041 ffa041f47c25ffa041ffa041ffa041f47c25f47c250e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c700f47c25f47c25 ffa041ffa041ffb953ffb953ffa041ffa041ffa041f47c25f47c25f47c25f47c250e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e5000000000f47c25f47c25ffa041ffa041ffa041 ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c25ffa041f47c25c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e5000f47c25f47c25 ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041f47c25f47c25f47c250e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001ffa041ffa041ffa041ffa041f47c25 ffa041ffa041ffa041ffa041ffb953ffa041ffa041ffb953ffb953ffa041000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000ffb953ffb953ffb953 ffa041ffb953ffa041ffb953ffa041ffb953ffa041ffb953ffb953ffa041ffb953ffa041 0000000e50000000000000000000000e50000000000000000000000e5000000000ffa041 ffb953ffb953ffa041ffb953ffa041ffb953ffb953ffa041ffb953ffa041ffa041ffb953 ffa041ffb953ffa041ffb953ffb953ffa041ffb953ffa041c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c700000000ffa041ffb953ffa041ffb953ffb953ffa041ffb953ffb953ffa041 ffb953ffa041ffb953ffb953ffa041ffb953ffa041ffa041ffa041ffa041000000000000 000000c7c7000000000000000000000e5000000000ffb953ffb953ffb953ffa041ffb953 ffa041ffb953ffa041ffa041ffa041ffa041ffa041ffa041cfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 ffa041ffa041ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041 ffa041ffa041000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000ffa041ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffb953f47c25ffa041ffa041ffa041f47c250000000e5000000000000000 0000000e50000000000000000000000e5000ffb953ffb953ffb953ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa0410000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700ffa041ffa041 ffa041ffa041ffb953ffa041ffa041ffa041f47c25f47c25f47c25f47c25f47c25c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000000000ffa041ffa041ffb953ffa041ffa041 ffb953ffb953ffa041ffa041f47c25f47c25ffa041f47c25f47c25ffa041000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000f47c25ffa041 ffa041ffa041f47c25ffa041ffa041f47c25ffa041ffa041f47c25f47c25c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000ffa041ffa041ffa041ffa041ffa041 ffa041ffb953ffb953ffa041ffb953f47c25ffb953ffb953ffb953ffb9530e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000ffb953ffb953ffb953 ffb953ffb953ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffb953 0000000000000e50000000000000000000000e50000000000000000000000e5000ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffa041ffb953 ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffb953c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e5000000000ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffa041ffb953ffb953c7c700000000 0000000000000e50000000000000000000000e5000ffb953ffb953ffb953ffb953ffb953 ffa041ffb953ffb953ffb953ffa041ffb953ffa041cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041 ffa041000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c00001ffa041ffa041ffa041ffa041ffa041ffb953 ffb953f47c25ffa041ffa041ffa041ffa041ffa041ffa0410000000000000e5000000000 0000000000000e5000000000000000000000ffb953ffb953ffb953ffa041ffa041ffa041 ffa041ffa041ffb953ffa041ffa041ffa041ffa0410000000000000000000e5000000000 0000000000000e5000000000000000000000c7c700000000000000000000ffa041ffa041 ffb953ffa041ffa041ffa041ffa041f47c25ffa041ffa041f47c25ffa0410e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000ffb953ffa041ffb953f47c25ffb953 ffb953ffb953ffb953ffb953ffa041ffa041ffa041f47c25f47c25f47c25c7c700000000 0000000000000e50000000000000000000000e5000000000000000000000f47c25ffa041 ffa041ffa041ffa041ffb953ffa041ffa041ffa041ffa041f47c25f47c250e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000ffa041ffa041ffb953ffb953ffb953 ffa041ffb953ffa041ffa041ffa041ffa041ffb953ffa041ffb953f47c250e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000ffb953ffd07bffb953 ffb953ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffb953 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffb9530e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e5000ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffb953ffb953ffb953c7c700c7c700 c7c7000000000e50000e50000e5000000000ffb953ffb953ffd07bffb953ffb953ffa041 ffb953ffa041ffb953ffb953ffa041ffb953ffb9530e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000ffa041 ffa041ffb953ffb953ffb953ffa041ffa041ffb953ffa041ffa041ffa041ffb953ffa041 ffa041000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000ffa041ffa041ffb953ffa041ffa041ffa041ffb953 ffa041ffa041ffb953ffa041ffa041ffb953ffb953ffa0410e50000000000e50000e5000 0e50000000000e50000e50000e5000000000ffb953ffb953ffb953ffb953ffb953ffa041 ffb953ffa041ffb953ffa041ffb953ffa041ffa0410e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c700ffa041ffa041ffa041 ffa041ffb953ffa041ffb953ffa041f47c25ffb953ffa041ffa041ffa0410e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e5000000000ffa041ffb953ffa041ffa041ffa041ffb953 ffa041ffb953f47c25ffa041ffb953ffb953ffb953ffa041f47c25000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e5000000000ffa041ffa041 ffa041f47c25ffb953ffb953ffb953ffb953ffa041f47c25ffa041f47c250e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001ffb953ffb953ffb953ffb953ffb953 ffa041ffa041ffb953ffb953ffb953ffa041ffb953ffb953ffb953ffb9530000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000ffb953ffd07bffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb9530e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e5000ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953c7c700 c7c700c7c7000000000e50000e50000e5000ffb953ffb953ffd07bffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb9530e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e5000000000ffb953 ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffa041ffb953ffa041 ffa0410e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e5000ffa041ffb953ffb953ffa041ffb953ffa041ffa041 ffb953ffb953ffb953ffb953ffb953ffb953ffa0410e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffa041ffb953ffa0410000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700ffa041ffa041ffb953 ffa041ffb953ffa041ffb953ffa041ffb953ffb953ffa041ffa041ffa041c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e5000ffb953ffb953ffb953ffb953ffa041ffb953 ffb953ffb953ffb953ffb953ffd07bffb953ffb953ffb953ffb9530e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e5000ffa041ffa041ffb953 ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffa041ffa041f47c25c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffd07bffb953ffb953000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000ffb953ffb953ffb953 ffd07bffd07bffd07bffb953ffd07bffd07bffb953ffb953ffb953ffb953ffb953ffb953 0000000e50000000000000000000000e50000000000000000000000e5000000000ffb953 ffb953ffb953ffd07bffd07bffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffd07bffd07bffb953ffb953ffb953ffb953ffb953ffb953c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcfffd07bffd07bffd07bc000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000000000ffb953ffb953ffb953ffb953ffd07b ffd07bffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953000000 000000c7c7000000000000000000000e5000ffb953ffb953ffb953ffb953ffd07bffd07b ffd07bffd07bffd07bffd07bffb953ffb953ffb953cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000ffb953 ffb953ffb953ffa041ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffb9530e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c00001ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953c000010000000e5000000000000000 0000000e5000000000000000000000ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb9530000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000ffb953ffb953ffb953 ffb953ffb953ffb953ffb953ffa041ffb953ffb953ffb953ffa041ffa041c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000ffb953ffb953ffb953ffa041ffb953ffb953 ffd07bffb953ffb953ffd07bffb953ffa041ffb953ffb9530000000e5000000000000000 000000c7c7000000000000000000000e5000000000000000000000ffb953ffb953ffb953 ffd07bffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb9530e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32ffb953ffb953ffb953ffd07bffb953 ffb953ffb953ffb953ffd07bffd07bffd07bffb953ffd07bffb953ffd07bc7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000ffd07bffd07bffb953 ffb953ffd07bffb953ffd07bffd07bffd07bffb953ffd07bffb953ffd07bffd07bffb953 000000000000c7c700000000000000000000c7c700000000000000000000c7c700ffd07b ffb953ffd07bffd07bffd07bffb953ffd07bffb953ffd07bffd07bffb953ffb953ffd07b ffd07bffd07bffb953ffd07bffb953ffd07bffd07bffb953c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfffd07bffd07bffd07bc00001c00001bfbf32c00001 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000ffd07bffb953ffd07bffd07b ffd07bffb953ffd07bffb953ffd07bffd07bffb953ffb953ffb953ffb953ffb953c7c700 c7c700c7c700c7c700000000000000000000ffd07bffd07bffd07bffb953ffb953ffd07b ffb953ffd07bffd07bffd07bffd07bffb953bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffd07bffb953ffb953ffb953 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000ffd07bffd07bffd07bffd07bffb953ffb953ffb953ffb953 ffb953ffd07bffd07bffb953ffd07bffb953ffb953c00001000000000000c7c700000000 000000000000c7c700000000000000ffd07bffd07bffd07bffd07bffb953ffb953ffd07b ffb953ffd07bffb953ffb953ffb953ffb953c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700ffb953ffb953ffb953 ffd07bffb953ffb953ffd07bffb953ffb953ffb953ffb953ffb953c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000ffb953ffb953ffd07bffd07bffd07bffb953 ffd07bffb953ffd07bffb953ffd07bffb953ffb953ffa041000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000ffb953ffb953ffd07b ffd07bffb953ffd07bffd07bffd07bffb953ffd07bffb953ffb953c00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32ffb953ffb953ffb953ffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffb953ffd07bffd07bffd07bc7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700ffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07b c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32ffe6a6ffd07bffa041ffd07bc00001bfbf32bfbf32 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700ffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffb953ffb953c7c700 c7c700c7c700c7c700c7c700c7c700ffd07bffd07bffd07bffd07bffd07bffd07bffd07b ffd07bffe6a6ffe6a6ffd07bffd07bffd07bbfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000ffb953ffb953 ffb953ffb953ffb953ffd07bffb953ffb953ffb953ffb953ffd07bffd07bffb953ffb953 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700ffd07bffd07bffd07bffd07bffd07bffe6a6ffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bbfbf32c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700ffd07bffd07bffd07bffd07bffb953ffd07bffd07b ffd07bffd07bffb953ffb953ffb953ffb953c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700ffb953ffb953ffb953ffb953 ffd07bffd07bffb953ffb953ffb953ffd07bffb953ffb953ffb953c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000ffb953ffb953ffd07bffd07bffd07bffb953 ffd07bffd07bffd07bffd07bffd07bffd07bffd07bc7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700ffb953ffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffa041c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001ffb953ffd07bffd07bffd07bffd07b ffd07bffd07bffe6a6ffd07bffd07bffe6a6ffd07bffd07bffd07bffd07b000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700ffd07bffd07bffd07b ffd07bffe6a6ffe6a6ffd07bffd07bffd07bffe6a6ffd07bffd07bffd07bffd07bffd07b c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32f47c25ffd07bffe6a6ffd07bffd07bbfbf32c00001bfbf32 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700ffd07bffd07bffd07b ffd07bffe6a6ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bc7c700 c7c700c7c700000000c7c700c7c700ffe6a6ffd07bffd07bffd07bffd07bffd07bffe6a6 ffe6a6ffe6a6ffd07bffd07bffd07bffd07bc00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700ffd07bffd07b ffd07bffd07bffb953ffd07bffb953ffd07bffd07bffd07bffd07bffd07bffd07bffd07b c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffd07bffd07bffd07b ffe6a6ffd07bffe6a6ffe6a6ffd07bffd07bc00001bfbf32c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700ffd07bffe6a6ffd07bffd07bffd07bffd07bffd07b ffd07bffd07bffb953ffd07bffd07bc7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700ffd07bffd07bffb953ffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffb953ffd07bffb953bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700ffd07bffd07bffd07bffd07bffd07bffe6a6ffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bc7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700ffd07bffd07bffd07bffd07b ffd07bffe6a6ffd07bffd07bffd07bffd07bffd07bffd07bbfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001ffb953ffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffe6a6ffe6a6ffe6a6ffe6a6ffd07bffd07bffe6a6000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000ffe6a6ffd07bffd07b ffe6a6ffd07bffe6a6ffd07bffd07bffe6a6ffe6a6ffe6a6ffd07bffe6a6ffd07bffd07b 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcff47c25ffd07bffe6a6ffd07bffd07bbfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000ffd07bffd07bffd07b ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffd07bffd07bffd07bffd07bffd07bffd07bc7c700 c7c700c7c700000000000000000000ffd07bffd07bffe6a6ffd07bffd07bffe6a6ffd07b ffe6a6ffd07bffe6a6ffd07bffd07bffd07bc00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700ffd07bffd07b ffd07bffd07bffd07bffb953ffb953ffd07bffd07bffe6a6ffd07bffd07bffd07bffd07b 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000ffe6a6ffe6a6ffe6a6ffd07bffd07bffe6a6ffd07bffd07b ffd07bffe6a6ffd07bffe6a6ffe6a6ffd07bc00001c00001000000c7c700000000000000 000000c7c700000000000000ffd07bffd07bffd07bffe6a6ffd07bffd07bffd07bffe6a6 ffd07bffd07bffd07bffd07bffd07bc7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700ffd07bffd07bffd07bffd07b ffe6a6ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffb953bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000ffd07bffd07bffe6a6ffe6a6ffe6a6ffe6a6ffe6a6 ffd07bffd07bffe6a6ffd07bffe6a6ffd07bffd07b000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000ffd07bffd07bffd07bffd07b ffd07bffe6a6ffd07bffd07bffd07bffd07bffd07bffd07bcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000ffd07bffd07bffd07bffe6a6ffd07b ffd07bffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffe6a60e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffe6a6 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcff47c25f47c25ffd07bffd07bffd07bc000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000000000000000ffd07bffe6a6 ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffd07b000000 0000000000000e5000000000000000ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffd07b0e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e5000000000000000000000ffd07bffe6a6 ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffe6a6ffd07bffd07b 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000ffd07bffd07bffe6a6ffe6a6ffd07bffe6a6ffe6a6ffd07bffe6a6 ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffd07b0e5000c000010000000000000e5000000000 0000000000000e5000000000ffd07bffd07bffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a60000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c700000000ffd07bffd07bffe6a6ffd07b ffe6a6ffd07bffe6a6ffe6a6ffe6a6ffd07bffd07bffd07bffd07bc000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e5000000000000000ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffd07bffe6a6ffe6a6ffe6a6ffe6a60e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000ffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffd07bcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000ffd07bffe6a6ffd07bffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffe6a6ffe6a6ffe6a60e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000ffe6a6ffd07bffe6a6 ffe6a6ffd07bffe6a6ffd07bffe6a6ffd07bffd07bffe6a6ffe6a6ffe6a6ffd07bffe6a6 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000ffa041ffd07bffd07bffd07bffa041f47c250e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e5000000000ffd07bffe6a6 ffd07bffd07bffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffd07bffe6a6ffd07bc7c700 c7c7000000000e50000e50000e5000ffd07bffe6a6ffe6a6ffd07bffe6a6ffe6a6ffd07b ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffd07b0e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000f47c25c7c700c7c7000000000e50000e50000e5000000000ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffd07bffd07bffe6a6ffd07bffd07bffe6a6ffe6a6ffe6a60e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e5000ffd07bffd07bffd07bffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000ffd07bffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6 ffd07bffe6a6ffd07bffe6a6ffd07b0000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700ffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffd07bc000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e5000f47c250e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e5000ffe6a6ffe6a6ffd07bffe6a6ffd07bffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a60e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e5000ffd07bffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a60e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001ffe6a6ffd07bffd07bffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffd07bffe6a6ffe6a6ffd07bffe6a60000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000ffe6a6ffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07b 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e5000f47c25ffd07bffd07bffd07bffd07bffd07bc000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e5000ffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bc7c700 c7c700c7c7000000000e50000e5000ffd07bffe6a6ffe6a6ffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bc000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e5000f47c25f47c25f47c25c7c700c7c7000000000e50000e50000e5000ffd07bffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffd07bffe6a6ffe6a6ffd07bffd07b0e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e5000000000ffb953ffb953ffb953ffd07bffe6a6ffd07bffd07bffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffd07bffd07b0e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e5000ffe6a6ffe6a6ffe6a6ffd07bffd07bffe6a6ffd07bffd07b ffd07bffe6a6ffe6a6ffe6a60e50000e50000000000e50000e50000e50000000000e5000 0e5000f47c250000000e50000e50000e5000000000c7c700ffe6a6ffe6a6ffe6a6ffe6a6 ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a6ffe6a60e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e5000f47c25f47c25f47c250e50000e50000e5000000000c7c700 c7c700c7c7000000000e5000ffd07bffd07bffd07bffe6a6ffe6a6ffd07bffd07bffe6a6 ffe6a6ffd07bffe6a6ffd07bffe6a6ffe6a60000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e5000000000ffe6a6ffe6a6ffd07bffe6a6ffe6a6 ffe6a6ffe6a6ffd07bffd07bffe6a6ffe6a6ffd07b0e50000e50000e5000c000010e5000 0e50000e5000f47c250e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001ffd07bffe6a6ffe6a6ffd07bffd07b ffe6a6ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07b000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000ffd07bffd07bffd07b ffd07bffa041ffd07bffd07bffd07bffd07bffd07bffb953ffd07bffd07bffd07bffd07b 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcff47c25ffb953ffd07bffa041ffd07bffd07bc00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000ffd07bffd07b ffd07bffd07bffb953ffd07bffd07bffd07bffd07bffd07bffd07bffd07b000000000000 000000c7c700000000000000000000ffd07bffe6a6ffd07bffd07bffd07bffd07bffa041 ffd07bffb953ffa041ffd07bffd07bffd07bc00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 f47c25f47c25f47c25f47c25000000c7c7000000000000000000000e5000ffd07bffd07b ffe6a6ffe6a6ffe6a6ffe6a6ffd07bffe6a6ffe6a6ffd07bffd07bffd07bffd07b000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000ffb953ffb953ffb953ffb953ffb953ffd07bffd07bffd07bffe6a6ffd07b ffd07bffe6a6ffd07bffd07bc000010e5000c00001c000010000000e5000000000000000 0000000e5000000000ffd07bffd07bffe6a6ffd07bffd07bffd07bffd07bffd07bffd07b ffd07bffd07bffe6a6ffe6a60000000e50000000000000000000000e5000000000000000 000000f47c25f47c250000000000000e5000000000000000ffd07bffd07bffe6a6ffd07b ffd07bffd07bffe6a6ffd07bffd07bffd07bffd07bffd07bffd07b0e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e5000000000f47c25f47c25f47c25f47c250000000000000e5000000000000000 000000c7c700000000000000ffd07bffd07bffd07bffe6a6ffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffe6a6ffe6a60000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000000000ffd07bffe6a6ffe6a6ffd07bffd07b ffd07bffd07bffd07bffe6a6ffd07bffd07bffd07bcfcfcfcfcfcf0e5000c00001c00001 c000010e5000f47c25f47c25f47c250e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000ffd07bffd07bffd07bffd07bffd07b ffb953ffb953ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07b0e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000ffd07bffd07bffb953 ffb953ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffd07b 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfffa041ffd07bffb953ffd07bffa041ffa041f47c25c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000000000000000ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffd07bffd07bffb953ffb953c7c700000000 0000000000000e5000000000000000ffd07bffd07bffd07bffd07bffb953ffb953ffa041 ffb953ffb953ffa041ffb953ffb953ffb9530e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c250000000000000e5000000000000000000000ffd07bffd07b ffe6a6ffd07bffd07bffd07bffd07bffd07bffe6a6ffd07bffd07bffd07bffd07b000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 000000000000ffa041ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 ffd07bffd07bffd07bffd07bc00001c000010e5000c000010000000000000e5000000000 0000000000000e5000ffd07bffd07bffe6a6ffe6a6ffd07bffa041ffd07bffd07bffd07b ffd07bffd07bffe6a6ffe6a60000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25000000000000c7c700000000ffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bffd07bc000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e5000f47c25f47c25f47c25f47c25000000000000000000c7c700000000 0000000000000e5000000000ffd07bffb953ffd07bffd07bffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07b0000000e5000000000000000000000c7c700000000 0000000000000e5000000000000000000000ffd07bffd07bffd07bffe6a6ffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07bffd07bcfcfcfcfcfcfc000010e5000c00001 c00001f47c25f47c25f47c25f47c250000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000ffd07bffd07bffd07bffd07bffd07b ffb953ffb953ffb953ffb953ffa041ffd07bffa041ffa041ffd07bffb9530e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000ffd07bf47c25f47c25 ffa041ffa041ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000ffa041ffd07bffa041ffd07bf47c25ffa041ffa0410e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e5000000000ffb953ffb953 ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953ffb953c7c700c7c700 c7c7000000000e50000e50000e5000ffa041ffa041ffd07bf47c25f47c25ffa041ffa041 ffb953ffa041ffb953ffb953ffb953ffb9530e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000f47c25 f47c25f47c25f47c25c7c700c7c7000000000e50000e50000e5000000000ffa041ffa041 ffb953ffa041ffb953ffb953ffd07bffd07bffa041ffa041ffb953ffb953ffb9530e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e5000f47c25ffa041ffa041ffa041ffa041ffb953ffb953ffa041ffb953ffb953ffb953 ffb953ffb953ffb9530e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e5000ffd07bffd07bffd07bffd07bffd07bffd07bffa041ffd07bffb953 ffa041ffd07bffd07bffe6a60e50000000000e50000e50000e50000000000e5000f47c25 f47c25f47c25f47c250e50000e5000000000c7c700c7c700ffd07bffd07bffb953ffa041 ffd07bffd07bffd07bffd07bffb953ffb953ffb953ffd07bffb953c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000000000f47c25f47c25f47c25f47c250e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e5000ffb953ffb953ffb953ffb953ffb953ffa041ffd07bffa041 ffa041ffd07bffb953ffb953ffd07b0000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e5000000000ffd07bffd07bffd07bffd07bffd07bffd07b ffd07bffd07bffd07bffd07bffd07bffd07b0e50000e50000e5000c000010e50000e5000 0e5000f47c25f47c25f47c250e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c00001ffb953ffd07bffb953ffd07bffd07b f47c25ffb953f47c25ffb953ffb953ffb953ffb953ffb953ffa041ffa0410000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e5000ffa041ffa041ffa041 f47c25ffa041ffa041ffb953ffb953ffb953ffa041ffb953ffb953ffb953ffb953ffa041 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c00001f47c25ffa041ffb953ffa041ffa041ffa041f47c25f47c25f47c25 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e5000ffb953ffb953 ffb953ffa041ffb953ffb953ffb953ffb953ffa041ffb953ffb9530e5000000000c7c700 c7c700c7c7000000000e50000e5000ffa041ffa041ffa041ffa041ffa041f47c25ffa041 ffa041f47c25ffa041ffa041ffa041ffa041c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e5000f47c25f47c25 f47c25f47c25000000c7c700c7c700c7c7000000000e50000e50000e5000000000ffa041 ffb953ffb953ffb953ffa041ffa041ffa041ffa041ffa041ffa041ffb953ffa0410e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e5000ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c25ffb953 f47c25ffa041ffb9530e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e5000000000ffb953ffb953ffd07bffd07bffb953ffa041ffb953ffa041ffb953 ffa041ffb953ffa0410e50000e50000e50000000000e50000e50000e5000f47c25f47c25 f47c25f47c250000000e50000e50000e5000000000c7c700ffd07bffd07bffb953ffb953 ffb953ffa041ffb953ffb953ffb953ffb953ffb953ffa041ffb9530e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e5000f47c25f47c25f47c25f47c250e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e5000ffb953ffa041ffb953ffb953ffb953ffb953ffb953ffb953 ffb953ffa041ffa041ffb9530e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e5000ffd07bffd07bffd07bffd07bffb953ffd07b ffb953ffb953ffd07bffb953ffd07bffd07bc000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c250e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001ffb953ffb953ffb953ffb953ffb953 ffa041ffa041ffa041ffb953ffa041ffa041ffb953ffb953ffa041ffa041000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c00001000000f47c25f47c25ffa041 f47c25f47c25f47c25f47c25ffb953f47c25ffa041ffa041ffa041f47c25ffa041ffa041 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c25f47c25 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000000000000000000000f47c25f47c25ffb953 f47c25ffa041ffa041ffa041f47c25ffa041ffa041ffa041f47c250e5000000000000000 000000c7c700000000000000000000ffa041ffa041f47c25f47c25ffa041f47c25f47c25 f47c25f47c25ffa041ffa041ffa041f47c25f47c25cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e5000000000000000000000f47c25f47c25f47c25 f47c25f47c25000000000000000000c7c7000000000000000000000e5000000000ffa041 ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041ffa041000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 f47c25ffa041ffa041ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041 ffa041f47c25c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e5000ffa041ffa041ffa041f47c25ffa041ffa041ffa041ffa041ffa041f47c25 ffa041ffa041ffa0410000000000000e50000000000000000000000e5000f47c25f47c25 f47c25f47c250000000000000000000e5000000000000000ffb953ffb953ffb953ffa041 ffb953ffa041ffb953ffb953ffb953ffa041ffb953ffb953ffb953ffa041c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c250e50000000000000000000000e5000000000000000 000000c7c700000000f47c25ffa041ffa041ffa041ffa041ffb953ffa041ffa041ffb953 ffb953ffa041ffa041ffb9530000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e5000ffb953ffb953ffb953ffd07bffb953ffd07b ffa041ffb953ffb953ffb953ffb953ffb953c00001cfcfcfcfcfcf0e5000c00001f47c25 f47c25f47c25f47c25c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000ffa041ffa041ffa041ffa041ffa041 ffa041f47c25f47c25ffa041ffa041ffb953ffa041ffa041ffa041ffa0410e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c00001000000f47c25f47c25f47c25 f47c25f47c25ffa041ffb953ffb953f47c25f47c25ffa041ffa041f47c25ffa041ffa041 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e5000000000000000f47c25ffb953ffb953 f47c25f47c25ffa041ffa041f47c25ffa041ffa041f47c25000000000000c7c700000000 0000000000000e5000000000000000000000f47c25f47c25f47c25f47c25f47c25f47c25 ffa041f47c25f47c25ffa041f47c25f47c25f47c25cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e5000000000f47c25f47c25f47c25f47c25 f47c25000000c7c7000000000000000000000e50000000000000000000000e5000f47c25 ffa041f47c25f47c25f47c25ffa041ffa041f47c25f47c25f47c25f47c25ffa041000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041ffa041ffa041ffa041f47c25 f47c25c000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 000000000000ffa041ffa041ffa041ffa041f47c25ffa041f47c25ffa041f47c25ffa041 f47c25ffa041f47c250000000000000000000e5000000000000000f47c25f47c25f47c25 f47c250000000e5000000000000000000000c7c700000000000000ffa041ffa041ffa041 ffb953ffa041ffb953ffb953ffa041ffb953ffb953ffb953ffa041ffa0410e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000f47c25 f47c25f47c25f47c25f47c250000000000000e5000000000000000000000c7c700000000 0000000000000e5000f47c25f47c25ffa041ffa041ffa041ffa041ffa041ffb953ffa041 ffa041ffa041ffa041ffb9530000000000000e5000000000000000000000c7c700000000 0000000000000e5000000000000000ffa041ffa041ffa041ffa041ffa041ffa041ffa041 ffa041ffa041ffa041ffa041ffa041ffa0410e5000cfcfcfcfcfcfc00001f47c25f47c25 f47c25f47c25f47c25c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e5000ffa041ffa041ffa041f47c25ffa041 f47c25f47c25f47c25f47c25ffa041ffa041f47c25ffa041ffa041f47c250e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25ffb953f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e5000f47c25ffb953f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000000000c7c700c7c700 c7c7000000000e50000e50000e5000000000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e5000f47c25f47c25f47c25f47c25f47c25 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 f47c25f47c25ffa041ffa041f47c25f47c25ffa041ffa041ffa041f47c25f47c250e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c25 f47c25c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e5000000000f47c25f47c25f47c25ffa041ffa041f47c25f47c25ffa041ffa041f47c25 ffa041f47c25f47c250e50000e50000000000e50000e5000f47c25f47c25f47c25f47c25 0e50000000000e50000e50000e5000000000c7c700c7c700c7c700ffa041f47c25ffa041 ffb953ffb953ffb953ffb953ffb953ffa041ffa041ffa041ffa041ffa041f47c250e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001f47c25f47c25 f47c25f47c25f47c250e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e5000f47c25f47c25f47c25f47c25f47c25f47c25ffa041ffa041f47c25 ffa041ffa041f47c250e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e5000ffa041ffa041ffa041ffa041ffa041ffa041ffa041 f47c25ffa041ffa041ffa041f47c25ffa0410e50000e50000e5000c00001f47c25f47c25 f47c25f47c250e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c00001ffa041f47c25ffa041ffa041f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000f47c25f47c25f47c25f47c25f47c250e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25ffa041f47c25f47c25f47c25f47c250e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32f47c25f47c25f47c25 ffb953ffb953ffb953ffa041ffa041ffa041ffa041f47c25f47c25f47c25f47c25c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001f47c25f47c25f47c25 f47c25f47c25c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e5000f47c25ffa041ffa041ffa041ffa041f47c25ffa041 ffa041ffa041f47c25ffa041ffa041f47c25c000010e5000f47c25f47c25f47c25f47c25 f47c25c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001ffa041f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcff47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001 c00001c00001c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c000010e5000c00001c00001c00001bfbf32c00001c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32f47c25f47c25 ffa041f47c25ffa041f47c25f47c25f47c25f47c25f47c25f47c25ffa041f47c25f47c25 f47c25c00001c00001cfcfcfcfcfcfc00001c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c00001f47c25f47c25f47c25f47c25ffa041ffa041ffa041 ffa041ffa041f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001f47c25ffa041f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcff47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c00001bfbf32c00001c00001c000010e5000c00001f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c00001f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25ffa041f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c250e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e5000f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25bfbf32bfbf32bfbf32c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c250e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c250e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c250e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25cfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c250e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcf cfcfcfcfcfcff47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c250e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcff47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcff47c25f47c25 f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000cfcfcf cfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcff47c25f47c25f47c25f47c25f47c25f47c25 f47c25cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000f47c25f47c25f47c25f47c25f47c25f47c25f47c25 f47c25f47c25f47c25cfcfcfcfcfcfcfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32f47c25f47c25f47c25f47c25f47c25f47c25f47c250e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32 bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000f47c25f47c25f47c25 f47c25f47c25f47c25f47c250e5000cfcfcf0e5000cfcfcfcfcfcfcfcfcf0e50000e5000 0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e5000 0e5000cfcfcf0e50000e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcf cfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcf cfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcfbfbf32 bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcfcfcfcfcfcfcf0e5000cfcfcf0e5000 0e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcfbfbf32bfbf32bfbf32cfcfcf0e50000e50000e5000cfcfcf0e5000 0e50000e5000cfcfcf0e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32 bfbf32bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e5000 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001c00001 c000010e5000c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001c00001c00001c00001c00001c00001cfcfcf cfcfcfc00001c00001c00001c00001c00001c00001c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c00001bfbf32c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001c00001c00001 c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001c00001c00001c00001c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c00001bfbf32c00001 c00001c000010e5000c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001c00001c00001c00001c00001c00001cfcfcfcfcfcfc00001c00001c00001 c00001c00001c00001c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c00001bfbf32c00001c00001c000010e5000c00001c00001c000010e5000c00001 c00001c000010e5000c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000c00001c00001c00001c00001c00001c00001c000010e5000 0e5000c00001c00001c00001c00001c00001c00001c000010e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c00001bfbf32bfbf32bfbf32c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e5000c00001c00001c00001c00001 c00001c00001c000010e50000e5000c00001c00001c00001c00001c00001c00001c00001 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c00001bfbf32bfbf32 bfbf32c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 c00001c00001c00001c00001c00001c00001c000010e50000e5000c00001c00001c00001 c00001c00001c00001c000010e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c00001bfbf32bfbf32bfbf32c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcf cfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000000000 000000c7c700000000000000000000c7c700000000000000c00001bfbf32c00001c00001 c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001c00001bfbf32c00001c00001 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700c7c700 c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000000000 c00001bfbf32c00001c00001c00001bfbf32c00001cfcfcfcfcfcfbfbf32c00001c00001 c00001bfbf32c00001c00001000000c7c700000000000000000000c7c700000000000000 000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000000000 000000c7c700000000000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcf cfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700c7c700c7c700c7c700c7c700000000 000000000000c7c700000000000000000000c7c700000000c00001c00001bfbf32c00001 c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001c00001c00001bfbf32c00001 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 000000000000c7c700000000000000000000c7c700000000000000000000c7c700c7c700 c7c700c7c700c7c700000000000000000000c7c700000000000000000000c7c700000000 c00001c00001bfbf32c00001c00001c00001bfbf32cfcfcfcfcfcfc00001bfbf32c00001 c00001c00001bfbf32c00001000000000000c7c700000000000000000000c7c700000000 000000000000c7c700c7c700c7c700c7c700c7c700000000000000000000c7c700000000 000000000000c7c700000000 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700 bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32 bfbf32c00001bfbf32bfbf32c7c700000000c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700 c7c700000000c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700c7c700c7c700 c7c700c7c700000000c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32bfbf32bfbf32c00001bfbf32 bfbf32bfbf32c00001bfbf32c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700c7c700c7c700c7c700c7c700000000c7c700c7c700c7c700000000c7c700 c7c700c7c700000000c7c700 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700 c7c700c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e5000 0e50000e5000c000010e50000e50000e50000000000e50000e50000e50000000000e5000 0e50000e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e5000 0e50000e50000000000e5000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000c000010e5000c00001c00001c000010e5000c00001cfcfcf cfcfcf0e5000c00001c00001c000010e5000c00001c000010000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e5000000000000000000000c7c700000000000000 0000000e50000000000000000000000e5000000000000000c000010e5000c00001c00001 c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001c000010e5000c00001c00001 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 0000000e50000000000000000000000e50000000000000000000000e5000000000000000 000000c7c7000000000000000000000e50000000000000000000000e5000000000000000 c000010e5000c00001c00001c000010e5000c00001cfcfcfcfcfcf0e5000c00001c00001 c000010e5000c00001c000010000000e50000000000000000000000e5000000000000000 0000000e5000000000000000000000c7c7000000000000000000000e5000000000000000 0000000e5000000000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000c00001c000010e5000c00001c00001c000010e5000cfcfcf cfcfcfc000010e5000c00001c00001c000010e5000c000010000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000000000000000c7c7000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000c00001c000010e5000c00001 c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001c00001c000010e5000c00001 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 0000000000000e50000000000000000000000e5000000000000000000000c7c700000000 0000000000000e50000000000000000000000e50000000000000000000000e5000000000 c00001c000010e5000c00001c00001c000010e5000cfcfcfcfcfcfc000010e5000c00001 c00001c000010e5000c000010000000000000e50000000000000000000000e5000000000 000000000000c7c7000000000000000000000e50000000000000000000000e5000000000 0000000000000e5000000000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e5000000000c7c700c7c700c7c7000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e50000e50000000000e50000e50000e5000000000c7c700c7c700 c7c7000000000e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000c000010e50000e50000e5000c000010e50000e50000e5000c000010e50000e5000 0e5000c000010e50000e50000e50000000000e50000e50000e50000000000e50000e5000 0e5000000000c7c700c7c700c7c7000000000e50000e50000e50000000000e50000e5000 0e50000000000e50000e5000 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer ptscotch_logo_color_background.png000066400000000000000000000010721514310134000323360ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc‰PNG  IHDRÀ€n$¤˜$PLTEô}&ÀÀ3ÇÇQÿæ§ÿÐ|ÁÿºTÿÿÿÏÏÏÿ¡BÞ”½ pHYs  šœtIMEÖ )«»©IDATxÚí›AŠÃ0 E éI¼ tðº0rä8%è)GVRêÙ̦0Tåõƒ¤ìêÇOU)ä‹jH».§úœóz84X\dY7Y¤Ïy¯‡pSMoRdÞ‹”>翞Uij1—S}Î{=À  Âà[ Nª”Zœd”ë>ÊØçü×SS²8ÆC}Î{=¤A•,±êsÞëÁ”’]«Ôõ.Uúœ÷:>ˆ⃼‹Â  zf°ÙíìŠÈR4ô9ïõvnUÕ¢~Ö½=Õå¼×ƒžÛ¢¿£Šé|àWÎy=Ø©£ÝçWÜç¼×a?Á9«â5χæÇóî•s]ySÝã–=¶çÝ+纃ø >ˆ þÉ =z2ôdè‹Â Âà÷2øýÿÑ3'ÜÌgÏÉàƒø >È»(        ûƒôEÙdÄñAÞEaaÙdf›™mf¶Ù›€AöÙdñA|aýAz2ôdè‹Â  ²?Èþ s2ìâƒø >È»(   þWýaÝh[¢¼ÉöIEND®B`‚scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/ptscotch_logo_color_text.png000066400000000000000000000052651514310134000312720ustar00rootroot00000000000000‰PNG  IHDRÀ€n$¤˜!PLTEÀÀ3ô}&ÇÇQÿæ§ÿÐ|ÁÿºTÿÿÿÏÏÏÿ¡BQìÇtRNS@æØfbKGDˆH pHYs  šœtIMEÖ ¼\Õz IDATxÚí›áФ8€ ÌÐп¸¥!Os ÊÀþšE˜§a$àÓtà!OyUÑÄ$FcwÏÇ‘ºÛ¡Õ2ÖWU‰I¥»(²dÉ’%K–,Y²dÉ’%K–,Y²dÉ’%K–,ÿ¶0Fÿ·l„i¡ÿ×ȹSÝ Ý½S[Ý@ÿÓ€Îw’;þDz>hß‚» 1@’ ð÷†ð @–”2B@¤ðw"ÒgÙ)jÏ’ßœ¥Å$S`þ=€ùW’ô!À%Ï‚—) ò~®??4’ÐßXxº¸—És)JØÀâ1@²¨¶}§ºª¼ èƒ,˜×%F0èvä‰öß,¾0ÞO’ @®ö!'¥ûLy‘ÏÌT¨Ðg±É]@.¹}òret»ô >öƒh$ûl\^’RçR¥åÊ|¬.r¹Z—Ÿ1þ~À‹èXç Á.ðñ×ã4|½oFi¹2·1–ד•Š? NÊû¾ÎÞa—N2qaã,Ô †Ñ.W¦6d/yüU¶i<<ú’ä0¾#íÇ_JÀÖö/þ¥Æaô”N#ô@©¶FŽóÀ”×uŒA‚Ên6— œ}&ÏŠ)åd|†‡(õ ÛºÊùÛÛí/æ÷¤oâ×›ôêÞ¦J£ú¥»ýúê–W²c¯¦£× t.žJ ƹMQQ²{î\,ý©?þ`zwÕ: UçϬ8ges¦ñS_6í@'Ö¦}ëÅ55Šv 2wÅÿdûU”ÕÌO#9Ó|ýh¹µæž_±£øÅ´²]Ï~^ØC/zö Ýx/k«ìÜ-yé£;;»(.¦¾{°:³3“9 ¸ó,ÅgYO=×cÕtÙÁ±nžö’ƒõŸ¹è€lkòLV¥[GúMØ«>àÔ¡Øs€Å]€›Þ JQ4œQǺfdiÞ1Eõؼtg=ø ÿ4CYgë`èOg•øÏòDwÆ—X„0+².‘Ð( ÙÔl׆;5G ß¾{3@ÂØ¬ây!ìxÎà· H#á_’0ñ©ª¹Ó0_íU’`ÓøÇWˆº¯‹ ­ÈªÜrHKZDÚº¿.êN¶q6§vêc­‚žˆŽŠ$ZøÞ\]ruˆÛ¼ePÙ¾®Ì‡5 Û,ؤ¢°x³„›ö Q‘A[ÚôÁøoº¯3›?(×%#XEòy¢«Öñ9"\ÞkG« «8·ù‡Aµ/Ð. ç6õÁ§ŸûÆ»;^àhwPég(ü§Ðãð7²Óëè݉ûÜ ÁHÛÁ°IL$.Ýr]ŸOþXUÌxݤ$œ® ž§¼šÑİ 4‡G;ÁŒ8Æž¦TÊ´aŒœ“¡«$RÐeùÊM»¸”]ŠxÄ#›XúD¯ žg2x<š+©¢‹Æ‰h.Pu]ywtÎO~XwUµtftî0JãE¦,œð¯ƒ3Þ>ºÎé cN§ÁOFm^µípœ¯¡Ö'‡ùüyjÐo &j •Arº,S‰´W°à¦h§—êI@Ds fñU±A†a.±áG}| ‹ONŠÙxÓ pv¥ôn¨\££Öéw›™Á«ÑÉmtûÐ ‘£0…8€ú8 ·Ð2NŠú¦ñºN'òX?2¼8,€ŽëÙE;qÌ¢$àˆöËT§v þó¹v„озÍÏðiXa½.mú@ƒƒMŠ3d»Vãè\ ÔÔ„©]°I¡½ À)6…–UE˽ ÚµÊiDÇ,€à\8qµ÷ƒEÇ> ÖíCíÜ(èÀ±N•JѦm@ü¨ÿàƒ^O±·X Ò4! P.õÉñÓÉñát4Š5à ÚÞÔ4OÚ…ŸIÀVôMßï*½¶=ê´Óþ¨ÿ¬‹¶iÑx¡Á›ÚH„[ëMpxD7퀾Øö± æÛv06|ZüÜôÍ>`3IìÚËÇ»s4éáSñžºjBÀc¿hרþ>"¯Ul@5hô‹¢×Ϻ¦A§ª› ˜ZÅ•~Tï¾ælò X_†·€+{ÇQeÍ–Óák…Ž6m5¨Ö®]-€“{Š€uYÕ»J/MUÕe}F^k¸©Z¶}íÖM]Oû `mmm/&’`]–Ðê]€¯¿²,€eYNd7.`Q£fù®ï»üMœB‡×:êµ® Qˆú埰ªÊÊoy²›7î‰< ˆöÔe¹XW:„±k·Fú`BËÁ€å Õ6AÌ,†ÛBi7×ï®ñå8-¶^*ÔŸm}Õ)S€/è¹&ÁAæ‡zRÔ€þ-zZ#¡Íé“Úr>ÔéZ˜Ò‹g1/a(WÏL/þî,ã,u¶§™ǯصËG8"0h|´·Æ)@MyX/™c*psº¢ Åmª¥GšÕfQš™ü‘ÏùÈ>ðÞöY¤¿º)ÜŒp.¯Ã0ããwûu†“­­>#ƒ¦*ÛÏ’­¯kGHnj²­Mâíß9PÏa×ôͽì(m\l†ìüœfc·sÃ=t;Yü@²õ‹’þE]µB#zñíŠ#_²øÀ€0ÆB7´éN/ ÛÑ/"ƒÔïôThä<ÝðÇö`µ‡¼1~ÿVÀÍ_Ö%{­–îÍ!VßuæËýY²dÉ’%K–,Y²dÉ’%K–,Y²dÉ’%K–,Y²dÉ’%Ëï—Ò¾[ÄÊÒS¾IEND®B`‚scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_line_fat.gif000066400000000000000000000035751514310134000272700ustar00rootroot00000000000000GIF87a, ¦ÿÿÜîîòÿÿ3,, þ¡*û`Ä)apÌ6-û´˜ö„ŒçbF.槦#G¹qf_r‹Þ¯ÝV=Øjv òp>âm¸ƒü–°MRg ŸÍãU™µæf]è\;¹å06]UO4©ð ÖæãºYK#ñgzan‚~Leƒlw%o‡Qކvr|yG–,•’^˜žˆœ”{ ‹¤§3«›­Š™€“ª³—±h¬…d¼‰»°½E¿¬kŰÇÂÀTÈŸJ¢‘[ÍËÆÁÏ÷¨µÄÕÉ×£ßÔØÌ¾ÞÏÊäÖã៽¯êâ¶Ñšè­ïÚº¦„åðíÓæáó§/=Z¥ö[§‘¼ÒúÄU b½€º*Hþpâ¶ûÌųÇ.â˜n#¢øe¥ÉT./¶äÈ0¦Æt,OÒ”g“bž¡ ¬¹“¤Èœ0‹ªTj‡P(0•ÕN/D}š*WS«^íºµ«Ö¯a XJök[©W×býZÖ­W¸bÙÒµë´nZ¹oùÞ}úwì^³OýÆ5ÜWðY¼j'v<øBa½?&¼ódÍ•Ávž›Y°â¼¤?›F;:0âÓ‘=o~͵k»°^Ý·4Ž«iì¦8ðá¸Ý‹üv€åT›7‡.ÜwòâÁ£[wN]úöîÛ§g¯®š8Wð察ï=ýsöá¿Ãw/~yûÙÐãç>þýà÷…€AC=ÄT(•‘OyÒ‚AÉâ 8aG bt`*>¸aE&Ô!…)"!•â‰8½Ä ‹à¸øŒ%ɤӅDáÈGÉ(T…F©˜ŽAò(d9G’B¢3Ùd†A‰ OR¥•S–X¥–Wr™%“]‚ùå9[ŠÉ!#bˆe.CJ™”“3Áy£›/Êù&3ÚY'ž?zyçš{š'Ÿ-Úø§Ÿ":¨ }š©À’d†é˜)IZ)¥H¨§ˆhvºiƒ„Þè„¡ò£(¨£Šz*©©šê(H&PEÁ´v@+²>Ö¬µFpk¬ºF«¯½KÁ°? þ[«­É»+³¿þz¬³Ê+mÈâj²Äj+Ô³ÄFÛì·ÕŠë­®å2{.4év ,¹ÛZ;.ºñšû.½¼Ú;-¼ùª{/»õú»/¾Ð Œ-µÛœ/ÜÌo½  î¼ 7,,ÂDÔñµÙþ íÆ¯û±Å‹.È S<²Ä§|2É-; 1ÌÏÌrÍßüpÎã¼rÏ;ÿòÐÓôË:<È _{qÐM«Ì´¼&{uÕ)_=tÖTo-s¸?­ô²a—lu×.Ÿ­ï×*k6×k‹ p¿î¾Í¶ÛlO·Ùp—³Üd×·ÕiôÜ6=6ÒŠ#γ׀3¹Ù†þ7.õ²(^8­™GN4çF/ŽyèŽ m·ç•OÞqê§Súá—³®ùà²{¾ùó·-pXÕ;ïªðûðjOüð¼ o¼*Å#ß{óÆ+ï<ôÓ;¼õ¾/ÿ<öÒO½÷ÜcÿýñÚwO¾øák?>ïë ¾ö̧_=üÙ;o>ûØÇ_þûüGßÿüöûøö§¾üÕϤ_ûî·=ïs¸#]ì^g¹ªÕNw¨£ ê~pÁ¿¹.‚°³ [·ºÎ.ƒ ¬ sçÁ¦pƒ3¡íh'C ~…>“ 9XÃòð…;œÞüæ3¼ÍpF´a»$vĉ%чtc¢&¸&.ÑþiSŒ"¡X°*f±‹Rä"ؼ(ÆÀ…±ˆh;¡ÓhE*žjlü¢¯n‡Ã£.„+” ¨FÖQtÌáUHG=æ…D$ ùØÆ2RަëãÿX:JÒ‘”œà#ˈ¢6µªG†JÔ«5©C²P7‰Q(µ*U¦²F¯e,“´£O¡’A·Œ+q¹Ë@êRg²¥ªN9ÌRjªT !¦«ŒÉ)a.˜Çüdš2M !³š&rf2™‰ªS­H›´,8DÎqš™á\Ê9?™Î8¡³œï\§¢~™©f^ÓS÷Ô&6ËÄMVµò™õì¦2· M{JŸÕ'B½éÉÊ’—þ°„èCuQŠNô›ñÌ(;á¹Qy´sê¨F牜ˤÆ?Ö1©sJÚšåF2(MJ]Z›ØœT@,µ M!£›øÈ´¥>ÅÏLƒš¡Ò'¥@=êOuJԗʧHeªR…šÔ˜RUªV ÍŽÓTåôªîÑX÷#ÖºðÇ>]ÅZ§* ²RƬn \¿jÖ­2'­ëYkVçª×±¶•®oõj_ë*ŸÁV­Âëo+W·ÐÓGþè>-ÐÈö³˜èe YÌVÖ³åì*5›YË–´£5ígEËÉÚ£"­CAjÊÍ^´¡åèlu›[Ú–¶¢ü-o™ùØÔ¢¶µ Q•lrmëÚ`æó¹ …®C›Íé.÷´¬elwë[ìÞIÃõ.pYÙÛ‘–W¶çå®y…ÛÝz¹ ¯t•+ßèÚ׺õÅï|™{ÝÕÔ¿Ô]@;scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_line_thin.gif000066400000000000000000000012741514310134000274520ustar00rootroot00000000000000GIF87a, ¦ÿÿÜîîòÿÿ3,, þ¡*û`Ä)apÌ6-û´˜ö„ŒçbF.槦#G¹qf_r‹Þ¯ÝV=Øjv òp>âm¸ƒü–°MRg ŸÍãU™µæf]è\;¹å06]UO4©ð ÖæãºYK#ñgzan‚~Leƒlw%o‡Qކvr|yG–,•’^˜žˆœ”{ ‹¤§3«›­Š™€“ª³—±h¬…d¼‰»°½E¿¬kŰÇÂÀTÈŸJ¢‘[ÍËÆÁÏ÷¨µÄÕÉ×£ßÔØÌ¾ÞÏÊäÖã៽¯êâ¶Ñšè­ïÚº¦„åðíÓæáó§/=Z¥ö[§‘¼ÒúÄU b½€º*Hþpâ¶ûÌųÇ.â˜n#¢øe¥ÉT./¶äÈ0¦Æt,OÒ”g“bž¡ ¬¹“¤Èœ0‹ªTj‡P(0•ÕN/D}š*WS«^íºµ«Ö¯a XJök[©W×býZÖ­W¸bÙÒµë´nZ¹oùÞ}úwì^³OýÆ5ÜWðY¼j'v<øBa½?&¼ódÍ•Ávž›Y°â¼¤?›F;:0âÓ‘=o~͵k»°^Ý·4Ž«iì¦8ðá¸Ý‹üv€åT›7‡.ÜwòâÁ£[wN]úöîÛ§g¯®š8Wð察ï=ýsöá¿Ãw/~yûÙÐãç>‹ýà÷…€AC=ÄT(•‘OyÒ‚AÉâ 8aG bt`*>¸aE&Ô!…)"!•â‰8½Ä ‹à¸øŒ%ɤӅDáÈGÉ(T…F©˜ŽAò(d9G’B¢3Ùd†A‰ OR¥•S–X¥–Wr™%“]‚ùå9[ŠÉ!#bˆ% ;scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_logo_color.gif000066400000000000000000000146221514310134000276400ustar00rootroot00000000000000GIF87a@€óQÇÇÁÏÏÏÀÀ3ô}&ÿ¡BÿºTÿæ§ÿÐ|ÿÿÿ,@€þ€ g "S¹­ø…WÉeB§šÞ„®9΀ت/ ßyì×2 m‡ÑèŽ'ã¯ck‰½Ò¥”ÒœC]tE x'_/F î@ƒt@¨©Óæx9®ËÉbúýìF³ûn{qze…xv„‡hoi‹‚s‡’‰u‹~mކˆ’œ‚•f—k™o“^¡e žx¦ l£§¬vŸŸª®£±€³·­µ”¿]¯»š½ÁÀʃÂÄÆo˸ˑÔgº²ÒÍ]ZU;XBâPßS8å?ááä)æÞíKAêæ[îIðVâóñ÷Dôè-ö{çï>pòž´Ç “„Y–Ôã×ð 6ØÌWÄb:ˆþ%:4¸#É#¨Æ(“ÕÈTÊi/±,õÈVnÛVòjYSL›©dÉ'NZ{fò:T¥ ¤6Ÿeã•3¥/kRµA=ZmRVª[­uŠMëU«É¼–{Ö&ljAf\HQã“uánìXRîɺtóá};2oa} íR$ì1î…"ïÕë7bŽ>¶|Nò_Á•cŽÜwsÈË(›NSzŒ©Q±aE ]v[E³[×F;6in—ª¹¦åÄøë§z’£H~3MGb=w>‹yªå7ƒjwºÜúêÎ¥C¯ž½£†íÞ•¿@mú€èÙÜ?g}=÷òêÏßÿ^±â³ÎL93ÖdýÙ@›-5×ak}:é]«Þnb¥}êÐNqïŒ 9¢ûº«qû…¡5ûc½û^¼ê µðÀ_<ï½3«ü`4æþ|»ÿþ\ð!LOÂñÐgŸ|óˆÉòŠ{K ø­]‚~ûé÷ñþ+ůÿ<üŠš¯¿üøoj6ì#Fþâ׿C¥¯~¼ŸùCÀ°}ô_H¿ôÍO½³ŸÝWÀ ^ð€ºÓ`ôÚ÷Á°€Làùç@šP}*áù^8 ØÐ†-ôŸwGBjoàÃÞ1äὤUo3AdÉG½" !‰÷[âöŒØ=&ÊŠ#”¢þ:nÈÅ.ÚpŠÒÂ"µ’Z/zB4©ø'^B|×›hňQfdc ܘFäÅQ‹^ d ùxG5^.t`x Ar'¤_ %XÀæœ$#-HCN*R“+ì¡#GiLJ2„1¤¡%¸Ê>þÏ$¥#{xÉEn2’œa-AJSæ’ƒ»D%,=9YÎ2˜ŽØa%}Ø 4³z¦4+0M6LÓ™0¦1©Mjz›Ø´æ7‹1NtœäD§4Ï™ÎvVóê,';¯éNnZˆžø,<ë©Nvj“‹÷,§@ÅÏ~´ 5çAùéÎ?ÐóŸÿtæ<þêL‡RÔM¨=£sQiZT£]h> ÊQê³ #ŨH³)K…–”¡EiG7šÏ_®Ò–½#%·‰KW¾ò–ºü%1A(L S¨´Ä /yÈÊö³§°T¦MQ8TUw², ,[©ÃT.³–Uýd2½ÚT°&u‚KeêQ—bL®Âp˜gÅ_ÃÇœŽ’¤äcÃ7ÄCÖqyz-$Ö(- ‚« ÚúW?¢Q‰~cû½º:‚”{l,™YÉÚѲâ;lð Z<Ê1\<íáøXÑn³G,_i ©D~U©W-æ(×êÔà†…jW)YV¤•¨c%®þæþçÅÛ"7 RMä"xêKŸF×¹ +n¡›À¬RPt+NeÈ[³V7“ÉU. céEí>WªËÅßSÅ›Vì ²3À"f;‹‘ðjv¯{U­c‹ØÙ6²"˜¥kŸh`üÎ÷¿‰ð¸Dç}pñ·ÀåbÔö’a—]CsW잆4´½³iÓc¹d)´‹¸u1€Û§[bØ¿µaå€aC À ó C¸µÉfÈsãÄ6 »EÌfÆ òÆþ'8dÕì+8α‡qœå•QÃH€Ž9w‡–}Nc–㆙¥å+{îem¾ãr62Íݹ‚oÜ€ Ì1`rüþá£5íÅ©Ó××hG-.úØÇ]Ä3÷Hl/fXƾ¢k·˜‹Ë?¶q†-hxi¸Ôš†Œ—–éÙ±î7„t‡oHéT›æ[]$4­[|hU'Zm›òþ<êKßpÇ{࢔qƒä»ÙfdnrÛžÌã?ûù·>Æöß„ü°*ß&ËàÎñ˜Ñ<ãnë&Ø’p³á¸LʘYãØî.ó›éö¸ÂÍùpvÈ6~+@F“s9ÙYÔÆ0¤½,ï‚×Ù†4³´‰j$ìºÕ£³0¤ÁÌqüz/`µÈC=iŽØ8~ô–=.qqØPÌ¡¾xf~¬kàÒœå3p;lâþUw å¨¥8ÆY½h–ÚÇ(Gùþ½ëŠ×¥‹ü~´Ÿ•Nko2á¾½1Š«kšóÛÚ1r`B®ï}ç˜ÓPÙ±MóžÜø±”vJå'ˆÊP¢RÕܧcÌ>{±PxÀ…ÿ pˆÙѾaŸÌ©( 82æ—Æ6)Ïœ\³»Ïÿ^úÆœŸäø˜ßýþw¶œ':„üß óç³ý¿?-*î£ÒCªt X@ÔwwT€”†Û’òåñ}¬»ØŸø(HðŒùCmlGî^;Âï"w ¤s•û9ñùéúòÕnøÛÐ? ZPîÇp&;])Kò½›âd¦ݵB²l‡Œù ¼þ®)Ñ%œ@ôþçÄÿK s;i7"¾wob~u'kâ·‡$K¢€È7K3B@B.b2R&QV~xW(bIâ}ZwCp}l‚&m2èVnSc··9äF°e ²m8JdFJ|#,v+b Sƒ‚Ô$y†…ù׃-êvo5}›3 <( 7èƒW˜l£Dg(£„7ˆn:%9S‘…•ð…A¨l_`L\è8ÏÆ3ž¶ùÇrD‡ûtŽÔ"HB8-¯Õn'±_…5J-ei1ÀSÙ‚v;tqu5‡Áb›1y±dp‘U‰Ø‡‚h:˜ø€¸/þ’¸\T‰u˜‰¼ÆM(mÍ–kÍ'jm‰ S í‹Koš(HçvfH,5ø‚DèEcÑ‹ÊV†<èmm8paÐ2Y‡u §uÆfd,699(ŒµgÂÀb—†W(1˜…Áˆi1Óh(jˆoË ŒØ/à–e;GhÏiÊÒ‰ä"H[°MN7’x4øƒÿ  Q„–‹‚¤&X’ˆ/>Wëè4n÷ŽÆÖ3¾uaUíu4wŠ…(H—–ˆÉn2— ÙˆíuûHk™¶ ùv2vdæî˜u!i‘ÀõÍ8“¥4„DæqiQ‘ΗŽýxtñXJI&xÅÖþޤ§27èdbgyv¸l-Å„ÊXdk6”Ï(‘Iù‘ˆãŽ[‰C°°†g¶2ì&nâ–„¸x†D¹sŠ÷pxc%x+®H¹Žp©1[)—@vtñ¦†dYd ‰h\¹—aù[΂ugh›6¯Usi)‡C‡|r錜‘‘‰s怙"Yrv™X·Y¶’€Ø’Šh.oH;†Il«y¤q˜ Çhýð{铎é‰cFlrØ,¢YsÉ`©˜gn×Å™ `chÇeï(’É‘1–Šq3m}c[™r ·›  ­‰a1y” ‘‹‰a$3œÎÉšDFƒñ¨uG!jÙ™ÕþÙlÔ  ùŽËy“FˆžiIe»88O(†èXÄVvªdV [‰—]H1µ¹•B †Is9¶ ºš0³%˜„YyØÆvhÉœä6“ðˆCú4  q©ùj8 r0º e-0pÚ)›ìòæyšðŒ²öŒ–‘¡ ›ë¢•‰cÆì’rdŸ—ÖœªuJ:™ Ù¢ÇI-1Z£0Ú«§e6Èi£FÊš­3¦»y¦ZÊ ÅéºeÜYaSš¬Y º9zÜrc*ç–W*À¦ŒNvŸ¥„êc’Ð¥„JŸ‚J )—¥¬Çš1zÿ…JlÊ º£þ| ¨)±§0šzF !:©æŸëù8OˆzÔˆ*'z…Z ¯Šz°Š÷  Ÿ… q–Z¨*—9¾:ª*ã¨: óv2ºo«pˆóh¢£š9¼ëˆz·¶©‡zÊZ«>5Úº­Ú ¦Qã«ÏÚ:´ªÙÚ­q®Ûªr£á¬ˆÚ­Iêkñy¢—®¢êšÚb¯ûv¯Ý:§‡Áˆý¶t×J´z°ìŠûo˜÷oËó¡:«ê6z ‹/çÊ®òj‹¨°öš­«ýº°™ç¢·‰Š€…þ¦V™´j±#[2 z2k)‘±%K«½Ògýf±?z‚Ó²Ûþ¯hq¯«¬0 Œâik²Fñ´žÎ6­â{ía-k|ÿ1{€z>K´¨§ [¶?‹z›~óñ)EÛ¯2 {z¶D´ P*©¶x˳‡1»°÷i˵áW) 볡w¶ À( µ´ jK˜¢wä—€`ZûoGB¹‹k¸6¶b¸ {¶è—¹g"¶R»€P¸ g³«‹~R¸¡ë³(f˺c[sò#^»AÛg”Ë»gÛ€5¢¹\ øK—y°*(!-¶˜×o²ºÑ˹¹[!ü÷! [¶6k¼!¶Õ º)øµ±ëoý¶‚/¼«&×û¸þg¼ÑÛ¹†Û¼ò»cÂ¼Þ $^k(þw°®·¿_k²zÛ«+À’Âx”bzc¶õ«º ·ž÷y‡Ë¹.û¿) ·@ë»xò¾A¼†K*ü'ð6}ૺA«¸¾\·‹g”ž‚—‚• f÷o*ên;²‘ ¶š—¼u{«ŽSŽt»tk­šƒ®Ïûo­Ê½«Áw –ÀÄ5ûÀÆz«â8yÛÄ €œÅ8ó–lhµÀ¶# yGj¾‰v„ «çÀ®‘úhórjlº7K5l£´zkªëÃ…rœvlÄÁsj< ²ÌYŒ°2 aiœ²¨9b5°tK—e¦é˜Áj«þ8ð[ÜWªö°F'vIÀÉ™g£Ÿ¹ªr°=̰, l z| ¯»È*©5zÆ¢ª†ÈëM×È~š,~3Ãu ÆõyÉ:£œÐž\‰³W<bê£Å™Ìlsº‰ª5Á¯š:ÍqðÌœÌú¶´<éÊ­pÊ{úg°¡³àÊ ©Õ´3¸ õv 5éÂaL•W™ú #š“ç QHÎÛ¡£mÁŸñ8–Ú€Ïðèš¼xl… £bº U …ÒçƒQª«¯¯£ìÕÏy¹¢nÉáx‘$r®˜c‘aiGgXØ"&’‘©¯¨quZ‡5Îèœ\f˜fCZv»9¯`ˆz8þœÜùg†¡£”Ú‘¿,;?Ðr°õ‡agˆ ±‘ŸFÈÐR—îybyjphÕn Ê©ÒR0€ç|c>M|S`iÏ9JhBÀȦ˜Â\7Ù\‹Ú í¶ ÚžÍ (=Ÿ×LmVK¹ÐkסóÉ‘vÌd…@–&zª]ô²VÏjUUá‡?™×):×ߦƒvM]Mù÷Ø6mybÙTÏeðƒÛ0xHY3ëè'½‰‡9Í-û…œ4RxÖº­ÒÀ<×'IŽÔŠ»VÉÁÌævµ‡Vš€¤ÛȳFùÉœ•XÂÜÖÝZ3Ý·ã{ŽZ–;Òõ\Ãþ­‹µÄwù§JǰÞbùVàQÒ€ÝKø]uµdß?¥ßëu@î…^Ð%ß©m_§ß%4ܧÄ]°ôOÆ• Â_l%„_•ßÿ­à>ôÜWTWº=ZVáYtÞzFÞþXQT’FT€ÍWo@ËÒ}ZÞeZQDâÆáŸ…âXõÛžÌ_0þІãmMÐÝ`CÞEÿeF»ÅZæ @ÞãÕ󊉅_@0Ub•^.\V¾]nT~ßç5\^®åéMà]žåa¾åÏ•áj5àöÅåWæõ]ïEVñ5ç_~ålÞædþæuWÇætnæqè÷…OS'5S!õR)µN+¥Q¥èþþèòéŠ>éžè›Žéù¤éÅé¡îéµOîèãS¢®NEéÐDê µê %S&åR–NR·¾è¹n댮R¨žP­~ê»NS½.N».êjnæ{ÞÞ‚žçoT_É>ç7íe.íV•[|nè>íØߊäæÏŽåŽç}NßF%^àîJ…^^ÛNCÐ~çîì®^}NååMã#^[I.ä÷n<5®ïžXÖ`ü.E𠆯ãcdãá`ïAþGâîý~Ý¿âš5å/=oäñŸðU^\k~]&/èÜ.îÙÎî$ïQEVÕÞîz¾ìÑNó\nó3=é.þæçÞìå>^-îrçvÞó)¯çëóÌŽLg>îñŸïÌSñ?ð ßWO=UdõSßð[_rvâL®õUÏõm„õeÿâ/ƒI¯Ž¬hg°âb¥to4q/§pßܵæj} ×j3Ì8KÛ&l”ς梅ÿ’ªHµŒ-Æ+«øW £½ „dÄe¹–…9•ßÑœÏøçÏ›ƒß9š/˜v¿÷€ß÷³\°oçúzû< ‰¯Cûyo:·O.üö¸Ï÷¾ÏûdüÌÝúÄÿÖT*û>-ü.Iø*ú§/ÎØ\µ—ýØ_ýÐÿü‹ïüƒ?ù–}¬Éý­–þÿΘ¯©Ooãooæú¦Oþîÿù¸ŠþÔºú¿oüøÏüµ¯û!ÆúÄ ÀÖkÞZR/´K±»&sS—}³³Ìöd½ßxš*gÃáf?PðK 9E”m tú>-”h¥.aÝ”v8ž6½JpP,.c•¿@¼%gÍ%ñ{`Pôù>¿¾¼Â:;D¼D:9Ÿ½¾H@ÁÈCźGGNCÍÎ9ËÉ@IALF ÐMÏÆSÑ?ÒÁËÅ«ÔÓÛÃÕÐJX^BÚ\UÝÌÖDÙ=À×KÜO\Ýfã×d_áZàaÔëã‚éÒe`hlVÛhÞîÁê`gÐpÇíóÈôö»ûÃzŠ ¾‚þþ=ÿ~ü ä#hMßÁ‚÷rÝØðŸÀ„5)¼R_D‡þ‹Hp"B‹)îÛ¨ÑäÀG‚Tø1_F€1;ìXse½˜0ù±Ä—ÒçÅŸ9Kä¹°hJ—…žÜióèͤö–.-õiÏ‘S3V½ygCœ¯V…ýJBÒ @7ú¨ OX;dßÎuÛI®µfÓž%t·m!¿ÇÒ5»vÀ^×Û¥û×o\ÂyÑÜ·1ÜË™ëŽÌqaÇ!oÍxó†Ä$’U>=¸õkέSXÍöèÒ¹qË]Ûðm͹1ÃF]X5ã7€¾{noä¬uïÐæÌ˜5\ÌXÙ±]MþìÚÝTy³Â»ìR¾œ¿^1 x6ëÇ·ï>? |ðÖ}GbÿûõÐ`O¼ëÒ#C>úô=üt" þ˜Xð‰T0Á0¼òúóB8×ÚJî0ÊøR¬9êP|mÄÏØZ,67s/ÏJL,F_®4míÅqœ±ÇÊN\.·é˜ƒnÄ#u-Å%¥{,Å&3‹Ò¶$qœRÉä|3«Jæd„²Ëè°ÜÄ!¤pC#äîÂ÷Ø$ðÍ '¬0>8;Ô¯CÛÌ3B7ù¼sÎÓÔCD÷ôÏ#ú$tÑ: TO5mtRCí¤ôPG7µSH͈4Ô0³¼KÔ¤ÒÔÎ `kÑ20µ ±¬Ê^5’ÕRw<µV]TÉ3»ò7\e5-´a¿,ÖÉcy#“ÉeW ²8ɼT.ÚR§ÕãY)Ÿd.SIåôC ÃEÔÏHé,7Îs-U·Rq-LWÏ@ùëÜ";scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_logo_color.png000066400000000000000000000062521514310134000276570ustar00rootroot00000000000000‰PNG  IHDR@€ˆ!­™$PLTEô}&ÀÀ3ÇÇQÿæ§ÿÐ|ÁÿºTÿÿÿÏÏÏÿ¡BÞ”½tIME± ;;DsQ .IDATxœí\ÍkI—° ¹¨’ÎJ¤OñÅ0'1"0 DdâKvgZ,ä2ɦÛb}’12—MAŸæO˜!˜“§¡þ¹}_Õ]Ý–»e%F°¨›H¥zõºêׯê½*§1؆{«»Mßçr»uk¦7øÞ¢Ïóéù»OÓó©[·nz£q÷>}N‡ÓŸ‡Ó¡[·~úîî>~†r»uë¦7Ö± 7\7Æþ0¸w·‹ŸûÓ½éŸ÷¦{nÝúé]¼»ô¹·Ë·[·nz£»w—>·vÏøvëÖMoÐÝíÒ÷ÙôìÝ_Ó³©[·núÆnüàºé n0¸núƒßŽAó³]ûétz>„·nÝtw¸Ïè®wŸ‘Ë©[7½ã>„uØna(ÔÝ=½¯ÔÍôúî½íb·îŽéН›å׉Á‰²×Ã0h¥ïc¹íÛcPåÂw†Áb7aðÅîÝ/ø~ñ7}+÷Z@/ȬLïgC|³|cð î¿v? øþû~ªâu^”¹.¿4]L¬_ˆAÖ±¼wg~N`xK?8qp!^à®üà¤Vÿ"?ÈR\×wÊ+ùAUI—!®_äyX¥Î-¯àÁOUÑûªNÿ NÄÿ‰?ô“Õ1ˆøª¡×`|·¶á¸*ÆPQ%Å ÞƒüPÆPÁФÆ+1(Vb°À˜00«{ boµ˜‚Ÿ´2æ?{«˜ ô“V34;³Õb ÁWUÌÑdžÛÅ$}“ľ‘Åýj¥˜â€¯Œ9ÄËÜ.&QþÇ }åe1Ãq’¬S¨Žž)Us€>x»¸Øï€cñs nWcäF 6•öÕLUƽ0ÄÆwð¾ÓÄO”Ê1بÆÈl¦¯Œ6ï+ãÞ& Ýäm-‡A¿ˆ‹Æ¡j­„A†a”¾¯Ä 2péý×0ÈWŽ1åèY§£J„:¥UCêK¬uâõ÷wàÅÎêfÆ÷;¾èï$Ig ŠÞbŒ)•|ùGnI¡þø%VžÅºcÀ_%]}€e˜þ0#:;:Ö§ —_ë8]^Ç൱¨æ™ôøŸJ=Êè`Ë<­!¶à32Á»¦ü”ø…ÌN’Ç£ÓñL‰NŽ"P¹3>êq¼ G]Þ§°>Z°¡œËîcä50zmÞçÀ_35› ž[ÄÛt„[¤³ x¥gXŸÔyýXÍžÔ”ö1žbõý§¶[°NüqwŸ ¼Ï¡ŠË ÝòCÝAœ¤3­r-¨½vŸd’uayƒ» ã`ZÎË Ø}i2—gòÙ®¨;èà´²Ýüa®í“,˜‹³q(ù9ªô²UÕ5ó2­ã_^&Ï¿3ýäûšp¹‰—iqå+òƒ9sÑϱ–ÏÙ*Ž(ò(E:yO&dòô³s½Hì[‰jiÙyy‰ü`n *̵Ü%Ã,’À:ÑÊòlƒø11ÐÊ3c®Ÿ|ŸåécK¢ªÞRœX ·Ýy[°*[ωŸãâÇ„båsÚ¹èÛF_=Ê׆µsñ4àl¬Œr1$8¡¹’‹ùzÎs0ªCü#ÓÏ|¤Ÿ»m›<(ó0†ù×29ê>N‘>üƒŽlåó&]4W6EåõœŒaÈRƒü$íã9.ð:º–ÊQÃrËà3•¥³|›çJá}A]6Wˆ¤9‹a±}`ÜÊq©Y—D K`0†‹~02 mLчîôíl+¸“켌eŸPŠˆõÈþÁ¤Ó¢š1ì`¼~Ÿü§ŸÐb7I„Ž‘ŠQv½æ‰oK2<èô6a¨™ÈJo;÷–-Ñ?‘6±Ö7­¦r0þd¹}A!4’(¡#&*®×|x‘Œà‰0˜Àú¸Mt~ž–àè€ÞºVi½wŒ*ý–JŒ?YrŸä˜ì!—D?k•ñŠë5X¯ã\eå•Á¼rÙ»ò£_ð¨å˜£Ox²Ì¼Ü^Ý”ÉD¢Ãohý²34éE2žÈC{IjbÆ `µå ‘-ñË1¢<1ø,ïû8^KÄ$‚´/6)|»ók!fxV@ß\Š|»ÉÄ_‰î#D”hoúi ýYŽ9°—ÁÀ„ñŒ‰ºÅ^]šÆþÅæé:†’ùz C öBä±ÓSßw4= è<(z¬MœÆ–o‚­~Ò¾Å^Ý3ùéXŠã"†¥VìÕ`/að „Þ—¹ü8ÅÞ¹(c0žVÃ>qÐGD%í¥1ub þågsìM]Ä(̰òÐüÖˆÓí# ü©‘¨ÑÒ1—%ý?ÿ,Õ ËP|oy n7v´\XžS©ˆ¡«Rcå)<ÑI6½í`_¬«eý ô²¼AmÆ«Ã`ô_ZGd”wô<ŠÆºˆ!ý"/Ct.¾ÑHÄ% îèt®Ç9ƒ¼¦.¨‹£·žÏ£ù|¬5”{‘GÑï HçúƒÈ?‡ÐÑ\=þ±~/. •s/ÏPý\³Ÿ€(ׯţ+÷#º4”ñ;ˆÞ0Žõ|üAä{„lD ¹1¢oèþ1°–1Ž?·µCMÖåf&aäb@š„2|£èmC÷£1ôjô«Èß Â( Go‰a‰öûÈ6—1E¡hy~¼“ºóƒOÃÈK£0@PŽFaF'…ó}=è\Ðú«ÈÿÀQp‚ô¡mŽl{dɸ|>0 Ðq[=6°îüàÓDn\Ú ‚´@9À+<)œïëQ÷Žþ#òQŽ0é½$ªîÁÃðœ¥ó¤2xÉmýH¿ÞÔü-:}èÄ¥½táhehÚ|“ï;Ø"б•Çî†Fˆ~ £ÑH¢ê{Ôø(?Hw7‘ÿg–ç'úWÝùÁI½qr#ò–@9¤Þz“ïS­-ìßÞ+¯ç`mýwðõ>l< „Ù\¯hÙ&–ÇE@ÿSUùÁãñiâø¡#ttcœ‹á}€™.óƒ}ŒCz!½‡Â{ŒN{.~4 NöË!s>çÈü ÇÛ½¹Ô’Ÿ¥!¢¨¹ÊþvúÚ8~èˆæœ‹Ík?MõëÇ0÷õSšÎOS-¼¾Iq²bzDþ Å)à!ÇWàÇyÜí±wÔWf<ç¶zd,úY‰inðƒ>,.Ú¹‚Éæ(^ÂbÈ\ŠkR¼¼•âš*^äHf)û1ÁìS†ÆC?ztjý DË;Øå6‡>u>:qÛ¿>cJ¡c@ͰU,cˆ PÁ åSö&[óí7ú´â6¼ž{`h½Jùà<‚• ˜(sq_¢eèrL²Ûyy|ªõïˆÏʹX¢W[×™Ah†qæï0Œd õç¨} ýòÜ D!Œ2`ð¢ ê2¸T‹/,=§À2ñ·% vÊÒTaCÓ ŽT¡|`#`F '1 D*Ͻøyäkpÿc]ŠJMèám‰ŠÏm[°Š•¸™ÿÉ%â³r.f3,8RmäÙ>À`h"uH÷ÐmîFa-Eƪ£I0C³gr¤}JoR—›‘ü†Ôq´í”Äù=7燱¯Íù F|$émú”P²ûáµ\Ù™„\Ê¡/ynÆšhg^÷Œ‹WÆHßáÍϽ`mñ\k€dª½Ý›.wnfs†õVôÎ~Ÿó߃¾øüàw;øíô ¿ƒUg¯†®\}s–ƒÁuÓ7Óô­ô›÷I6Ó´ù»º 7ü>\÷ß°×ÿûÚÿ…:úæÿYøÆÿgaÝ~nã7~pÝÛ`pƒÁuclƒÁ»¦ÿ‚mï(†eIEND®B`‚scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_logo_color.ps000066400000000000000000002654361514310134000275300ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: scotch_logo_color.ps %%Creator: XV Version 3.00 Rev: 3/30/93 - by John Bradley %%BoundingBox: 138 361 458 489 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % lower left corner 138 361 translate % size of image (on paper, in 1/72inch coords) 319.96800 128.01600 scale % define 'colorimage' if it isn't defined % ('colortogray' and 'mergeprocs' come from xwd2ps % via xgrab) /colorimage where % do we know about 'colorimage'? { pop } % yes: pop off the 'dict' returned { % no: define one /colortogray { % define an RGB->I function /rgbdata exch store % call input 'rgbdata' rgbdata length 3 idiv /npixls exch store /rgbindx 0 store /grays npixls string store % str to hold the result 0 1 npixls 1 sub { grays exch rgbdata rgbindx get 20 mul % Red rgbdata rgbindx 1 add get 32 mul % Green rgbdata rgbindx 2 add get 12 mul % Blue add add 64 idiv % I = .5G + .31R + .18B put /rgbindx rgbindx 3 add store } for grays } bind def % Utility procedure for colorimage operator. % This procedure takes two procedures off the % stack and merges them into a single procedure. /mergeprocs { % def dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /colorimage { % def pop pop % remove 'false 3' operands {colortogray} mergeprocs image } bind def } ifelse % end of 'false' case % define the colormap /cmap 36 string def % load up the colormap currentfile cmap readhexstring 0e5100 000000 c7c700 c10001 cfcfcf c0c033 f47d26 ffa142 ffba54 ffe6a7 ffd07c ffffff pop pop % lose return values from readhexstring % rlecmapimage expects to have 'w h bits matrix' on stack /rlecmapimage { /buffer 1 string def /rgbval 3 string def /block 384 string def % proc to read a block from file, and return RGB data { currentfile buffer readhexstring pop /bcount exch 0 get store bcount 128 ge { % it's a non-run block 0 1 bcount 128 sub { currentfile buffer readhexstring pop pop % look up value in color map /rgbval cmap buffer 0 get 3 mul 3 getinterval store % and put it in position i*3 in block block exch 3 mul rgbval putinterval } for block 0 bcount 127 sub 3 mul getinterval } { % else it's a run block currentfile buffer readhexstring pop pop % look up value in colormap /rgbval cmap buffer 0 get 3 mul 3 getinterval store 0 1 bcount { block exch 3 mul rgbval putinterval } for block 0 bcount 1 add 3 mul getinterval } ifelse } % end of proc false 3 colorimage } bind def 320 128 8 % dimensions of data [320 0 0 -128 0 128] % mapping matrix rlecmapimage 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181020101018102010101040202018102010101820201038203050301038105048304 030503010382050301820102010101810201010104020201810201010181020101018102 010101810201010104020201810201010182020103820305030103810504830403050301 038205030182010201010181020101010402020181020101018102010101810201010181 020101010402020181020101018202010382030503010381050483040305030103820503 018201020101018102010101040202018102010101810201010181020101018102010101 040202018102010101820201038203050301038105048304030503010382050301820102 010101810201010104020201810201010181020101018102010101810201010104020201 810201010182020103820305030103810504830403050301038205030182010201010181 02010101040202018102010101810201 820201020102810102010281010205028101020102810102830205030501058103050105 810305010581030583050201020102810102010281010205028101020102810102010281 010201028101020102810102050281010201028101028302050305010581030501058103 050105810305830502010201028101020102810102050281010201028101020102810102 010281010201028101020502810102010281010283020503050105810305010581030501 058103058305020102010281010201028101020502810102010281010201028101020102 810102010281010205028101020102810102830205030501058103050105810305010581 030583050201020102810102010281010205028101020102810102010281010201028101 020102810102050281010201028101028302050305010581030501058103050105810305 830502010201028101020102810102050281010201028101020002 010281010201028101020502810102010281010201028201020582050305010581030501 058103050105820305028202010201028101020502810102010281010201028101020102 810102010281010205028101020102810102010282010205820503050105810305010581 030501058203050282020102010281010205028101020102810102010281010201028101 020102810102050281010201028101020102820102058205030501058103050105810305 010582030502820201020102810102050281010201028101020102810102010281010201 028101020502810102010281010201028201020582050305010581030501058103050105 820305028202010201028101020502810102010281010201028101020102810102010281 010205028101020102810102010282010205820503050105810305010581030501058203 0502820201020102810102050281010201028101020102810102 820102010101810201010104020201810201010181020183010305030103820503048204 050301038105038303010201010181020101010402020181020101018102010101810201 010181020101010402020181020101018102018301030503010382050304820405030103 810503830301020101018102010101040202018102010101810201010181020101018102 010101040202018102010101810201830103050301038205030482040503010381050383 030102010101810201010104020201810201010181020101018102010101810201010104 020201810201010181020183010305030103820503048204050301038105038303010201 010181020101010402020181020101018102010101810201010181020101010402020181 020101018102018301030503010382050304820405030103810503830301020101018102 0101010402020181020101018102010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081030001008103000100810305010581030001008103000100820300030503010006 030100810300010081030001008103050105810300010081030001008103000100810300 010081030001008103050105810300010081030001008203000305030100060301008103 000100810300010081030501058103000100810300010081030001008103000100810300 010081030501058103000100810300010082030003050301000603010081030001008103 000100810305010581030001008103000100810300010081030001008103000100810305 010581030001008103000100820300030503010006030100810300010081030001008103 050105810300010081030001008103000100810300010081030001008103050105810300 010081030001008203000305030100060301008103000100810300010081030501058103 0001008103000100810300 820300030103810003010381000301038105030103810003010381000307030104070381 000301038100030103810003010381050301038100030103810003010381000301038100 030103810003010381050301038100030103810003070301040703810003010381000301 038100030103810503010381000301038100030103810003010381000301038100030103 810503010381000301038100030703010407038100030103810003010381000301038105 030103810003010381000301038100030103810003010381000301038105030103810003 010381000307030104070381000301038100030103810003010381050301038100030103 810003010381000301038100030103810003010381050301038100030103810003070301 040703810003010381000301038100030103810503010381000301038100030003 010381000301038100030103810503010381000301038100030103810003060301040803 810003010381000301038105030103810003010381000301038100030103810003010381 000301038105030103810003010381000301038100030603010408038100030103810003 010381050301038100030103810003010381000301038100030103810003010381050301 038100030103810003010381000306030104080381000301038100030103810503010381 000301038100030103810003010381000301038100030103810503010381000301038100 030103810003060301040803810003010381000301038105030103810003010381000301 038100030103810003010381000603060103810003010381000301038100030603010408 0381000301038100030103810503010381000301038100030103810003 820003000100810300010081030501058103000100810300010081030081000305030100 060382000300010081030001008103050105810300010081030001008103000100810300 010081030001008103050105810300010081030001008103008100030503010006038200 030001008103000100810305010581030001008103000100810300010081030001008103 000100810305010581030001008103000100810300810003050301000603820003000100 810300010081030501058103000100810300010081030001008103000100810300010081 030501058103000100810300010081030081000305030100060382000300010081030001 008103050105810300010081030001008103060c06820503000100810300010081030081 000305030100060382000300010081030001008103050105810300010081030001008103 000000 010081030001008103000100810305010581030001008103000100820300030503010006 030100810300010081030001008103050105810300010081030001008103000100810300 010081030001008103050105810300010081030001008203000305030100060301008103 000100810300010081030501058103000100810300010081030001008103000100810300 010081030501058103000100810300010082030003050301000603010081030001008103 000100810305010581030001008103000100810300010081030001008103000100810305 010581030001008103000100820300030503010006030100810300010081030001008103 050105810306120602058103000100810300010082030003050301000603010081030001 008103000100810305010581030001008103000100810300 820300030103810003010381000301038105030103810003010381000307030104070381 0003010381000301030e0682030003010381000301038100030103810503010381000301 038100030703010407038100030103810003010381000301038105030103810003010381 000301038100030103810003010381000301038105030103810003010381000307030104 070381000301038100030103810003010381050301038100030103810003010381000301 038100030103810003010381050301038100030103810003070301040703810003010381 000301038100030103820503061206010381050301038100030103810003070301040703 810003010381000301038100030103810503010381000301038100030003 010381000301038100030103810503010381000301038100030103810003060301040803 810003010314060203810003010381050301038100030103810003010381000306030104 080381000301038100030103810503010381000301038100030103810003010381000301 038100030103810503010381000301038100030103810003060301040803810003010381 000301038105030103810003010381000301038100030103810003010381000301038105 030103810003010381000301038100030603010408038100030103810003010381050301 031406020381000301038100030103810003060301040803810003010381000301038105 03010381000301038100030103810003 820004000100810400010081040501058104000100810400010081040001008104000100 820400040104020081040001008104008100061806020081040501058104000100810400 010081040001008104000100820400040104020081040001008104000100810400010081 040501058104000100810400010081040001008104000100810400010081040501058104 000100810400010081040001008104000100820400040104020081040001008104000100 810400010081040501058104000100810400010081040001008104000100810400010081 040501058104000100810400010081040001008104000100820400040104020081040001 008104000100810400010081040501058104000100110601058104000100810400010081 040001008104000100820400040104020081040001008104000100810400010081040501 05810400010081040001008104000000 010081040001008104000100810405010581040001008104000100810400010081040001 00020482000400010081040001001d060100810405010581040001008104000100810400 010081040001000204820004000100810400010081040001008104000100810405010581 040001008104000100810400010081040001008104000100810405010581040001008104 000100810400010081040001000204820004000100810400010081040001008104000100 810405010581040001008104000100810400010081040001008104000100810405010581 040001008104000100810400010081040001000204820004000100810400010081040001 008104000100810405010581040001008104008100060b06810405010581040001008104 000100810400010081040001000204820004000100810400010081040001008104000100 810405010581040001008104000100810400 82030003010381000301038100030103810503010381000301038100030703010407030a 068203050301038100038103060b06810003010381050301038100030103810003070301 040703810003010381000301038100030103810503010381000301038100030103810003 010381000301038100030103810503010381000301038100030703010407038100030103 810003010381000301038105030103810003010381000301038100030103810003010381 000301038105030103810003010381000307030104070381000301038100030103810003 0103810503010381000301030c0602038105030103810003010381000307030104070381 0003010381000301038100030103810503010381000301038100030003 010381000301038100030103810503010381000301038100030103810003060301040503 0b060203810003010381000301030b068105030103810003010381000301038100030603 010408038100030103810003010381050301038100030103810003010381000301038100 030103810003010381050301038100030103810003010381000306030104080381000301 038100030103810503010381000301038100030103810003010381000301038100030103 810503010381000301038100030103810003060301040803810003010381000301038105 03010381000301038100038103060b068105030103810003010381000301038100030603 0104080381000301038100030103810503010381000301038100030103810003 820003000100810300010081030501058103000100810300010081030081000305030100 05030a060205810300010081030001008203000609060205810300010081030001008103 008100030503010006038200030001008103000100810305010581030001008103000100 810300010081030001008103000100810305010581030001008103000100810300810003 050301000603820003000100810300010081030501058103000100810300010081030081 000681060001008103000100810305010581030001008103000100810300810003050301 00060382000300010081030001008103050105810300010081030001000c060205810300 010081030001008103008100030503010006038200030001008103000100810305010581 0300010081030001008103000000 010081030001008103000100810305010581030001008103000100820300030503010004 030a06820003050105810300010081030001008203000607068200030501058103000100 810300010082030003050301000603010081030001008103000100810305010581030001 008103000100810300010081030001008103000100810305010581030001008103000100 820300030503010006030100810300010081030001008103050105810300010081030001 000306810300010081030001008103050105810300010081030001008203000305030100 0603010081030001008103000100810305010581030001008103008100060a0682000305 010581030001008103000100820300030503010006030100810300010081030001008103 05010581030001008103000100810300 82030003010381000301038100030103810503010381000301038100030703010403030a 068203000301038105030103810003010381000301030306010701068100030103810503 010381000301038100030703010407038100030103810003010381000301038105030103 810003010381000301038100030103810003010381000301038105030103810003010381 000307030104070381000301038100030103810003010381050301038100038103060406 020381000301038100030103810503010381000301038100030703010407038100030103 8100030103810003010381050301038100038103060b0681000301038105030103810003 010381000307030104070381000301038100030103810003010381050301038100030103 8100030003 010381000301038100030103810503010381000301038100030103810003060301040203 0b0601038105030103810003010381000301038100030103060682030503010381000301 038100030103810003060301040803810003010381000301038105030103810003010381 000301038100030103810003010381000301038105030103810003010381000301038100 030603010408038100030103810003010381050301038100030103070681000301038100 030103810503010381000301038100030103810003060301040803810003010381000301 0381050301038100030103820003060b0682030503010381000301038100030103810003 06030104080381000301038100030103810503010381000301038100030103810003 820003000100810300010081030501058103000100810300010081030081000305030100 02030a060100810305010581030001008103000100810300010081030605068103050105 810300010081030001008103008100030503010006038200030001008103000100810305 010581030001008103000100810300010081030001008103000100810305010581030001 008103000100810300810003050301000603820003000100810300010081030501058103 008100060706810300010081030001008103050105810300010081030001008103008100 030503010006038200030001008103000100810305010581030001008103008100060b06 810305010581030001008103000100810300810003050301000603820003000100810300 01008103050105810300010081030001008103000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810306020602070406020081010201028101000100810100010081010001 008201070686060807060001020102810100010081010001008101000100810300010081 030001008103000100810300010081010001008101000100810102010281010001008101 000100810100010081010001008101000100810102010281010001008101000100810100 010081030001008103000100810300010081030001008101000100810100010081010201 020a06820001000100810100010081010201028101000100810100010081010001008103 000100810300010081030001008103000100810100010081010001008101020102810100 0100820100060a0601008101020102810100010081010001008101000100810300010081 030001008103000100810300010081010001008101000100810102010281010001008101 000100810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048304000306020602078106078107068106018201000101018102010101810001 010181000101018200010681060884080601000101018102010101810001010181000183 010300030103820003048204000301038100038303010001010181000101018100010101 810201010181000101018100010101810001010181000101018100010101810201010181 000101018100018301030003010382000304820400030103810003830301000101018100 0101018100018101060b0681000101018100010101810001010181020101018100010101 810001830103000301038200030482040003010381000383030100010101810001010181 000101018102010101820001060b06820100010101810201010181000101018100018301 030003010382000304820400030103810003830301000101018100010101810001010181 0201010181000101018100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048404030006070107860608070607060781070101018102010101810001010181 000101018100010101840006080906810601820102010101810001010181000101018200 010382030003010381000483040300030103820003018201000101018100010101810201 010181000101018100010101810001010181000101018100010101810201010181000101 018100010101820001038203000301038100048304030003010382000301820100010101 81000101018102060b060101810001010181000101018102010101810001010181000101 018200010382030003010381000483040300030103820003018201000101018100010101 810201010181000101018100060b06010181020101018100010101810001010182000103 820300030103810004830403000301038200030182010001010181000101018102010101 81000101018100010101810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030601068207080901098507080907060082000102010281010001008101 000100810100010082010007860706070600010201028101000100810100010081010001 008103000100810300010081030001008103000100810100010081010001008101020102 810100010081010001008101000100810100010081010001008101020102810100010081 010001008101000100810300010081030001008103000100810300010081010001008101 000100820102060206030804068200010001008101000100810102010281010001008101 000100810100010081030001008103000100810300010081030001008101000100810100 010081010201028101000100820100060406810706040682000102010281010001008101 000100810100010081030001008103000100810300010081030001008101000100810100 01008101020102810100010081010001008101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100840607060806010601070106820706000100810102010281010001008101 000100810100010082010006020601008101020102810100010081010001008101000100 810300010081030001008103000100810300010081010001008101000100810102010281 010001008101000100810100010081010001008101000100810102010281010001008101 000100810100010081030001008103000100810300010081030001008101000100810100 010081010601060108820607068206080601060100810100010081010001008101020102 810100010081010001008101000100810300010081030001008103000100810300010081 010001008101000100810102010281010001008101060306010782060706010602008101 020102810100010081010001008101000100810300010081030001008103000100810300 010081010001008101000100810102010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048504000708070681060781070604060101810001010181020101018100010101 810001010181000181010602068201000101018102010101810001010181000183010300 030103820003048204000301038100038303010001010181000101018100010101810201 010181000101018100010101810001010181000101018100010101810201010181000101 018100018301030003010382000304820400030103810003830301000101018100010101 860001060708090701070108010781080182010001010181000101018100010101810201 010181000101018100018301030003010382000304820400030103810003830301000101 018100010101810001010181020101018300010607820706078207060781070601060101 810001010181020101018100010101810001830103000301038200030482040003010381 00038303010001010181000101018100010101810201010181000101018100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048404030607060a06010181020101018100010101810001010181000101018200 010601060201810201010181000101018100010101820001038203000301038100048304 030003010382000301820100010101810001010181020101018100010101810001010181 000101018100010101810001010181020101018100010101810001010182000103820300 0301038100048304030003010382000301820100010101810001010101088607080a090a 090a820a0708810801010181000101018100010101810201010181000101018100010101 820001038203000301038100048304030003010382000301820100010101810001010181 020101018100010101010607070108810601010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 01010181000101018100010101810001 820001000100810100010081010201028101000100810100010081010001008103000100 81030001008103060c068200010201028101000100810100010081010001008101008100 060106010081010201028101000100810100010081010001008103000100810300010082 030608810806840608060806830600010001008101020102810100010081010001008101 000100810100010081010001008201060881080682060806810608810806810600010081 030001008103000100810300010081030001008101000100810100010081010685060709 080708020881070681060082000100010081010001008101020102810100010081010001 008101000100810300010001068309060806030601008101000100810100010081010201 02810100010083010806078a070607060706080607060082000102010281010001008101 008600060807060706840608000300010081030001008103000100810100010081010001 008101020102810100010081010001008101000000 010081010001008101000100810102010281010001008101000100810100010081030001 0081030001000e0682000102010281010001008101000100810100010081010001008101 000100810102010281010001008101000100810100010081030001000306880706070908 0908070a810a060106020081010201028101000100810100010081010001008101000100 8101060306820a0908010885090709080706010682000300010081030001008103000100 810300010081010605060307020603070b06820001020102810100010081010001008101 00810006010601088806070a090708090806020681010001008101000100810102010281 01000100810608020881070882080a078307060100010081010201028101000100820a06 080108010701088406070003000100810300010081030001008101000100810100010081 0102010281010001008101000100810100 820102010101810201010104020201810201010181020183010305030103820503048204 05060e060302020181020101018102010101810201010181020101010402020181020101 0181020183010305038103060b0601090506040202018102010101810201010181020181 01060206010785080a070609060306030802060103820503048204050301038105038303 010206070681080601068107060106010781080609060402020181020101018202010603 06830706070681060981090a830a070a0881080601068201020101010402020181020882 080a0981090a010a01088207060101010402010181060881080a010a8208090882080a08 830807030482040503010381050383030102010101810201010104020201810201010181 02010001 010181020101018102010101040202018102010101820201038203050301038105048204 03060f060302020181020101018102010101810201010181020101010402020181020101 018202010381030616060402020181020101018102010101140681080603068203050483 04030503010382050301810106060681080601068308060806820607060b068101020302 020181020181010616068201020101010402010183060807080208820907080108820602 0101010302020602088306080a0682060906820608068106048304030503010382050301 8201020101018102010101040202018102010101810201 820201020102810102010281010205028101020102810102830205030501058103050105 810306100604028101020102810102010281010201028101020102810102050281010201 028101028202050608060105820305060a060502810102010281010201020c0602028201 020609060205810305010581030583050201061c06820201020502810102810206080602 058103060a06020281010205028206080783070607088208060881080681060201028101 020102110601058103050105810305830502010201028101020102810102050281010201 028101020002 010281010201028101020502810102010281010201028201020582050305010581030501 058103061006820201020102810102010281010201028101020102810102050281010201 028101020102810106090681030501058103060b06010281010201028101020102820102 060b06820201020102820102060906020581030501058203050282020102010281010281 02060b0681010201028101020102810102050281010201020a068205030501050c060602 810102810206830608060701070406820201020302130601058103050105820305028202 01020102810102050281010201028101020102810102 820100010101810001010181000101018102010101810001010181000183010300030103 820003048304000306120601018100010101810001010181000101018100010101810001 010181020101018100010101810006090681000301038100038103060a06820102010101 8100010101820001060b0682010201010181000101010a06820400030103810003830301 0001010181000101010b0681000101018100010101810001010181000101018102010101 0a06830300030483040003060a0601018100010101810201010101068208060781070601 068107068206000101018200010613068204000301038100038303010001010181000101 018100010101810201010181000101018100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048404030003061206010181000101018100010101810001010181000101018102 0101018100010101810001810106090683040300030103820003060a0601018100010101 81000101010c060201810001010181000181010609068304030003010382000301820100 010101820001060b06820100010101810001010181000101018102010101820001060906 020381000483040300060a06020181020101018100018101060a06820100010101040602 018100060b06830403000301038200030182010001010181000101018102010101810001 01018100010101810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030081000614060200810100010081010001008101000100810102010281 0100010081010081000609060100810300010081030001000a0682020100010081010001 000c06020281010001008101000100810106090681030001008103000100810100010081 01008100060b068101000100810100010081010001008101020102820100060906020081 030001008103008100060906010081010201028101008100060b06810100010004060200 820100060b06820003000100810300010081010001008101000100810102010281010001 0081010001008101000000 010081010001008101000100810102010281010001008101000100810100010081030001 00810300010081030081000605068107060d060100810100010081010001008101000100 810102010281010001008101060a06020081030001008103008100060906010281010001 00820100060b06820001020102810100010081010001000b068103000100810300010081 01000100820100060b068200010001008101000100810100010081010201020b06810300 0100810300010082030006090602008101020102820100060a0601008101008100060206 820201000100820100060a06010081030001008103000100810100010081010001008101 02010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100060306010706060107060681000101018100010101810001 010181000101018102010101820001060906810304820400030103810003820301060906 820102010101820001060c068100010101810201010181000101018100060a0602038100 03830301000101018100018101060a068201000101018100010101810001010181000101 018102060906810003010382000304820400038103060906010181000101018102018101 060a068201000181010602068201020101018100018101060a0682040003010381000383 03010001010181000101018100010101810201010181000101018100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010381000601060507810607050701068107060206020181000101 018100010101810201010181000101010b06810004830403000301038300030106080602 0181000101018100060b0601018102010101810001010181000101010b06810003010382 0003018201000101018100060b0601018100010101810001010181000101018102018101 060a06820300030103810004840403000306080681000101018102010101820001060a06 01018100060206020181000101018100060b068304030003010382000301820100010101 8100010101810201010181000101018100010101810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103008200060781070681060701078106070107810607040704 068200010001008101000100810102010281010001000b06810300010081030001008103 0001008101060606020281010001008101060b0601008101020102810100010081010001 008101060a06020081030001008101000100820100060b06820001000100810100010081 010001008101028102060a06820003000100810300010081030001000706810100010081 01020102820100060b0682000106020602028101000100820100060a0601008103000100 8103000100810100010081010001008101020102810100010081010001008101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030081000681060701078106078307060706810607020781 060701070306820001000100810100010081010201028101008100060106810706020681 070601068200030001008103000100810300010006068200010201028101008100060c06 020081010201028101000100810100010008068107060106020081030001008101000100 81010602068107068206070603060100810100010081010001008101000100820102060a 060100810300010081030001008103008100060506010081010001008101020102810106 0a060200020682000102010281010001008101060a060200810300010081030001008101 0001008101000100810102010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038403010006070107020601070306810706040684070607 060101018100010101810001010181020181010601060207810607010701068303000304 820400030103810003830301000183010600010101810001010181020101010206810706 080601018100010101810201010181000101018100060206820706070307010601038100 038303010001010184000106070681060782070607810706010601018100010101810001 01018100010101820001060a068301030003010382000304820400030103850003060100 010101810001010181000101018202010606060207810601810106010682010001010181 02010101820001060a060104810003010381000383030100010101810001010181000101 01810201010181000101018100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100060106050781060702070106010782060706 010681000101018100010101810201010183000106070707010601038100048304030003 010382000301820100010101810001010181020101018400010607068106078107068106 078107060206810001010181020101018100010101810001010103068207060783070607 060106020382000301820100010101020602078106070107020602018100010101810001 010181000101018102068106078107060606810103820300030103810004830403000301 038200030182010001010181000101018102010101810007070784060706010683060706 0182010201010181000101010c0601048203000301038200030182010001010181000101 01810201010181000101018100010101810001 820001000100810100010081010201028101000100810100010081010001008103000100 8103000100810300010081030001008101000100820706070f0781060781070082000100 010081010201028201000702070106810706810607820706008200030001008103000100 810300010081010001008101000100810102010281010081000681060784070607060701 070306020081010201028101000100810100010081010681060701078106070307820607 008200030001008101000100810106810607040704060100810100010081010001008101 000100810106810607030782060706010602008103000100810300010081030001008103 000100810100010081010001008101020102820100068106070707850600060706008200 0102010281010001008101060a0602008103000100810300010081010001008101000100 8101020102810100010081010001008101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810107070781080709070100810100 010081010201028101070407810607030702008103000100810300010081030001008101 000100810100010081010201028101068106070107810607050783060001000100810102 010281010001008101008100068106070207830607080784070807060001008103000100 810100010081060701078406070607060106820706000100810100010081010001008101 000100810607060701068207010001008103000100810300010081030001008103000100 8101000100810100010081010201028107068106070207830607060782070b0683060701 000100810102010281010001008506070607060783070607060106810300010081030001 00810300010081010001008101000100810102010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000181010704078308070807020781 0807040782010001010181000101018102070b0701038200030482040003010381000383 030100010101810001010181000101018402010706070107820607068106070307810001 010181000101018102010101810001010181060703078306070607820708078107038203 000383030100010101820006070307810607010701060201810001010181000101018100 010101010601070108020703060101820300030103820003048204000301038100038303 010001010181000101018100010101810206810607050781060785070b06070601010181 000101018102010101010604078106078107060106810304820400030103810003830301 0001010181000101018100010101810201010181000101018100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010183070807088208070884 080708070883080708070207820100010101810201010102088407080708070407020381 000483040300030103820003018201000101018100010101810201010181000705078106 070407820100010101810201010181000101018100018101070607820806070107810603 010382000301820100018101080108090781000101018100010101810001010181000181 010702078108070107040682000103820300030103810004830403000301038200030182 010001010181000101018102010101010781080781070881080781070682060706840607 010001010181020101018100018201060701078106078207060781070683060300048304 030003010382000301820100010101810001010181020101018100010101810001010181 0001 820001000100810100010081010201028101000100810100010081010001008103000100 81030001008103000100810300010081010001008101000100820102080a088107088208 070882080100010081010201028101080308810708010883070807000100810300010081 0300010081030001008101000100810100010081010201028101070c0782000100010081 010201028101000100810100010004070108810607040701008103000100810100010002 080407810807020702008101000100810100010081010001000107810807020781060784 070607010001008103000100810300010081030001008103000100810100010081010001 008101020102850108070806080308020702068101000100810102010281010001008106 070207810807020701068103000100810300010081030001008101000100810100010081 01020102810100010081010001008101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010082010208090881070803 0882000100010081010281020882080a0884080708070882080708820803000100810300 010081030001008103000100810100010081010001008101020102010702080107810807 010781080781070082000100010081010201028101000100820100078207080701078108 078207080781070882080700010081030001008101008100080308860708070807080782 070100010081010001008101000100820100070207860807080706080701078200010001 008103000100810300010081030001008103000100810100010081010001008101028302 070807010785080708060708010882070600820001000100810102010281010081000701 078106080208860706070600030001008103000100810300010081010001008101000100 810102010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101100802018100 0101010108810a0808080203820003048204000301038100038303010001010181000101 018100010101830208070806088207080783070100010101810001010181020101018100 018201070883080708078107080408810703010381000383030100010101080884070807 000101018100010101810001010181000181010787070807080708070881080701078100 018301030003010382000304820400030103810003830301000101018100010101810001 010103088107080308810a08020882010001010181000101018102018101078307080708 040801078306000304820400030103810003830301000101018100010101810001010181 0201010181000101018100010001 01018100010101810001010181020101018100010101810001010182000103830300030a 010a010482030003010382000301820100010101810001010181020101010308010a0908 81000101018102018101080208050a020881000301038100048304030003010382000301 820100010101810001010181020101010208010708080101810001010181020101018100 010101820001080c0881000301038200030183010001080b088201000101018100010101 810001010182000108050881070801080107830100010382030003010381000483040300 030103820003018201000101018100010101810201810108010881070882080a0884080a 080708810801010181000101018102010101820001080108810a08060801038100048304 030003010382000301820100010101810001010181020101018100010101810001010181 0001 820001000100810100010081010201028101000100810100010081010001008103008100 0a010a0100810300010081030001008101000100810100010081010201028401000a080a 010a83080a080a810a08030802008101020102020a0108820a080a020a82080300010081 03000100810300010081030001008101000100810100010081010201020908810a080108 01008101000100810102010281010001008201000a020a0408010a82080a088108000100 810300010081010081000a020a0108830a080a0802088101000100810100010081010001 008101008100080108810a0882080a080308820001000100810300010081030001008103 00010081030001008101000100810100010081010201020108020a86080a080a080a0882 080700820001000100810102010281010081000881080a820a080a010a82080a08830800 030001008103000100810300010081010001008101000100810102010281010001008101 0001008101000000 010081010001008101000100810102010281010001008101000100810100010086030009 0a070a00820003000100810300010081010001008101000100810102010281010a0b0a01 0881010001008201020a060a0109020a8200030001008103000100810300010081030001 00810100010081010001008101028102080308810a080208010a01080200810100010081 01020102810100010081010a030a81090a070a810300010081030001008201000a020a81 080a020a0308820001000100810100010081010001008101080208010a0208810a080108 010081010001008103000100810300010081030001008103000100810100010081010001 0081010281020881080a010a81080a050a8101000100810100010081010201028201080a 090a81070082000300010081030001008103000100810100010081010001008101020102 81010001008101000100810100 82010001010181000101018100010101810201010181000101018100018701030003060a 090a830a0400030103810003830301000101018100010101810001010181020181010a02 0a81090a070a02018100018201090a030a0209030a810003010382000304820400030103 8100038303010001010181000101018100010101030a83080a080a050a01018100010101 81000101018102010101820001090109820a090a010a82090a0981090a820a0003010381 0003830301000183010a090a050a81080a830a0100010101810001010181000101018200 010a820a080a050a85080a08010001830103000301038200030482040003010381000383 030100010101810001010181000181010a030a81090a060a020181000101018100010101 8202010a030a81090a040a01038200030482040003010381000383030100010101810001 01018100010101810201010181000101018100010001 01018102010101810201010104020201810201010182020103850305060a090a840a0403 05030103820503018201020101018102010101040281010a010a0209820a090a040a8102 0101010102010a81090a860a090a090a090a010a82030503010381050483040305030103 8205030182010201010181020101010202040a0108010a81090a020a0201810201010104 0202018102090109010a81090a010a82090a0984090a0305030103820503018201020a01 0a81090a010a81090a030a010181020101018102010101810201010181020a020a81090a 050a81080183010201038203050301038105048304030503010382050301820102010101 81020101010102010a0409010a83090a090a820a0201010181020101010402040a81090a 040a02038105048304030503010382050301820102010101810201010104020201810201 0101810201 82020102010281010201028101020502810102010281010284020503050681060a010a82 05030501058103058305020102010281010201028101020502810a090209810a09040981 0a0201028101028102090809840a090a0305010581030501058103050105810305830502 0102010281010201028101020102820a090a070a81090a810a0282020102010281010205 0281010a810a0982090a0982090a090109810a0983090a0305010581030584050201020a 810a090909820201020102810102010281010201028201020a850a090a090a090109030a 820201028302050305010581030501058103050105810305830502010201028101020102 8101028102090609810a0902098101020102810102010281010203020809830a090a0582 050305010581030501058103058305020102010281010201028101020502810102010281 01020002 0102810102010281010205028101020102810102010282010205830503070a010a840706 050305010582030502820201020102810102050281010283020a090a810a090109810a09 85090a090a01020302810a0982090a0982090a090309830a050305010581030501058103 0501058203050282020102830206010204020409010a81090a810a090109810102010281 010205028101020102020a0209810a09050901058103050105820305028302010a090509 850a090a090a02820201020102810102010281010201028101090709810a0982090a0283 020102058205030501058103050105810305010585030506020102010281010203020109 830a090a0906098202010201028101020502810a090a0902058103050105810305010582 030502820201020102810102050281010201028101020102810102 82010201010181020101010402020181020101018102018501030503060a030a81050301 03810503830301020101018102010101040202010c0a02010202810a0981090a080a8105 030103820503048204050301038105038303010201810106010601010302810a09040901 0a0109010a02018102010101040202018102080108820a090a810a090309010a82040503 01038105038403010201090109010a81090a010a02090101810201010181020183010602 010101820201090b09820102018301030503010382050304820405030103820503060106 020181020101010102020a0109010a0109830a090a098209020101018102010101040201 09810a090209010a0109810a030103820503048204060301038105038303010201010181 020101010402020181020101018102010001 010181000101018100010101810201010181000101018100010101820001038603000608 0a070a830a0300030103820003018201000101018100010101810201010181000181010a 020a81080a050a8201000101018402010a090a020a84070a08070a010a82030003010381 00048304030003010382000301820100060206020181020181010a810a090209810a0981 090a020a8100010101810001010181020101018100018101080308020a81090a820a090a 810a04830403000301038200030181010a820a090a060a01090201810001010182000106 82060001010181000a820a090a010a81090a040a01018200010382030003010381000483 04030003010303068100010101810001010181020a010a81090a060a0109820100010101 81000101018102010101810a0981090a030a81090a010a81000301038100048104060106 0103820003018201000101018100010101810201010181000101018100010101810001 82000100010081010001008101020102810100010081010001008101000100860300070a 080a07820706000100810300010081010001008101000100810102010281010001000708 010a0108810100010081010281020a020a01088107088208070801088103000100810300 01008103000100810300010082010006020601008101020102010a81090a030a81090a02 0a020081010001008101020102810100010001070708030a010081030001008103000100 81010a810a0983090a070a030a01090100810100010082010006020601008201000a0b0a 820001000100810300010081030001008103000100810306020602008101000100840102 0a080a090a82000100010081010001008101020102020a81090a070a0200810300810006 020682000300010081010001008101000100810102010281010001008101000100810100 0000 01008101000100810100010081010201028101000100810100010081010001008603070a 070a06078207030001008103000100810100010081010001008101020102810100810008 0a088200010001008201020782070a068106078307080708020882000300010081030001 008103000100810300010003068101000100810102810207830708070881080a810a0781 070801088101000100810100010081010201028301000607020701088107080408810300 010081030001008103000100050a84070a08070a820a0900010081010001000306810100 010081010a830a08070a020a0208820a0800820001000100810300010081030001008103 0081000602068200010001008101000100810108030882070a0782070a0882080a008200 01000100810100010081010281020a0a0a82000300010082030006010602008103000100 81010001008101000100810102010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000186010300060708 070107020601038100038303010001010181000101018100010101810201010102088107 080208810708830801000101018100018101070307810607820706070207810003010382 000304820400030103810003820301060206810001010181000101018202070801080507 820807010101810001010181000101018102018101070307810607010786060806070803 04820400030103810003830301000881080a890a08070807080708070101018100010101 030681000101018200010a810a0801088107080308840708010001830103000301038200 030482040003810306020682010001010181000101018400010807080508010781080182 010001010181000101018100010101030a82080a0883080a080a820a0003010382000306 020601038100038303010001010181000101018100010101810201010181000101018100 010001 010181000101018100010101810201010181000101018100010101820001038103060206 810706020602038200030182010001010181000101018102010101820001068306080607 010781060701078106018201000101018202010781070682060706020602070106810003 01038100048304030003010382000306030682010001010181020101010b078100010101 810001010181020101018200060703078106070407830603000483040300030103830003 010701078106070307810607010781000101018100018101060206820100010101810008 010883070807080108810708010884070100010382030003010381000483040300060306 010181000101018100010101810607020781080781070881080782070801010181000101 0181000101018102018101080108840a080a070803088203000301030306810003010382 0003018201000101018100010101810201010181000101018100010101810001 820001000100810100010081010201028101000100810100010081010001008103060806 820003000100810100010081010001008101020102810100820006088108068106078207 060782070600820001000100810102010205068107068206070601060200810300010081 030001008203000603068200010001008101020102830106070601060107030681070001 008101000100810102010282010006050603070106820003000100810300010081030001 000307890607060706070607060001008101008100060206820001000100810100810007 010782080708820807080108010781010001008103000100810300010081030603060100 810100010081010001008101068106070307810807020781080082000100010081010001 008101028102070b07810300010004060200810300010081010001008101000100810102 0102810100010081010001008101000000 01008101000100810100010081010201028101000100810100010081010001000a068200 030001008101000100810100010081010201028401000608060706020081010001008101 028102060c06020081030001008103000100040602008101000100810102010281010681 060781070681060701070106810100010081010001008101020102080681070602060100 810300010081030001008103008100060106010701060107820607068206010001008101 060206020081010001008501000706070803080407820601000100810300010081030081 000603068103000100810100010081010001000506010781060783070601000100810100 010081010001008201020705078106070107840607000300810006020682000300010081 0300010081010001008101000100810102010281010001008101000100810100 820100010101810001010181000101018102010101810001010181000183010300060a06 010382010001010181000101018100010101820201060906020181000101018100010101 0d0601038200030482040003010304060201810001010181000101018202010604068107 0602060201810001010181000101010d0601038200030482040003010381000382030106 0b0602010506010181000101018100018101060106020803070306010182030003010383 0003040603068100038303010001010181000101018100060a0602018100010101810001 010181000182010607020781060701078106078407060003060306820400030103810003 8303010001010181000101018100010101810201010181000101018100010001 01018100010101810001010181020101018100010101810001010182000103820300060a 06810301820100010101810001010181020101010a068201000101018100010101810201 01010e068203000483040300060506810001010181000101018102010101820001060906 02018100010101820201060c068100030103810004830403000301038300030106130681 000101018100010101810001810106840607060706040681070601060103810003010306 06830300030182010001010181000101010b068100010101810001010181000101018202 0106020604070a0683040300030103820003018201000101018100010101810201010181 000101018100010101810001 820001000100810100010081010201028101000100810100010081010001008103008100 060a06820001000100810100010081010201020a06820001000100810100010081010201 028101061806820001000100810100010081010201028101008100060906010081010001 00820102060c068103000100810300010081030001008103000100130681010001008101 0001008101000100190601008103000100810100010081010001000c0602008101000100 810100010081010281020607068107060706010081030001008103000100810100010081 010001008101020102810100010081010001008101000000 0100810300010081030001008103050105810300010081030001008203000303030c0681 0300010081030001008103060a0602008103000100810300010081030501058103061606 810300820003000100810300010081030501058103008100060a068200030001000c0681 000305030100060381000611060100810300010081030001008103000100170605030100 81030001008103008100060a068200030001008103000100810300010082030506100681 030081000305030100810300010081030001008103050105810300010081030001008103 00 820300030103810003010381000301038105030103810003010381000306031f06020381 000301038100030103810003010381050381030614060203810003010381000301038100 03010381050301038200030619060803010407038100060e060203810003010381000301 0381000301038200030614060703810003010381000301030b0681000301038100030103 810003010381000301030f06010301040703810003010381000301038100030103810503 010381000301038100030003 01038100030103810003010381050301038100030103810003010381000306038104061a 060103810003010381000301038100030103810503010381000381030611060503810003 010381000301038105030103810003010382000306160601038100030603010408030e06 820300030103810003010381000301038100030103820503061106010408038100030103 8100038103060a06820300030103810003010381000301038105038103060c0603030104 080381000301038100030103810503010381000301038100030103810003 820003000100810300010081030501058103000100810300010081030081000305030100 01031606020081030001008103000100810300010081030501058103000100820300060d 060503820003000100810300010081030501058103000100810300010081030611068103 00010081030081000305030100060383000300060a060100810300010081030001008103 000100810300010081030501058103060d06010301000603820003000100810300810006 0b0681030001008103000100810300010081030501058103060a06040301000603820003 00010081030001008103050105810300010081030001008103000000 010081030001008103000100810305010581030001008103000100820300030503010005 030e06810300010081030001008103000100810300010081030001008103050105810300 010081030081000608060100060301008103000100810300010081030501058103000100 81030001008103008100060b068103000100810300010082030003050301000603010081 030081000605060105810300010081030001008103000100810300010081030001008103 050105820300060806040301000603010081030001008203000605060200810300010081 030001008103000100810300010081030501058203000605068100030503010006030100 81030001008103000100810305010581030001008103000100810300 820300030103810003010381000301038105030103810003010381000307030104070381 000301038100030103810003010381050301038100030103810003010381000301038100 030103810003010381050301038100030103810003070301040703810003010381000301 038100030103810503010381000301038100030103810003010381000301038100030103 810503010381000301038100030703010407038100030103810003010381000301038105 030103810003010381000301038100030103810003010381000301038105030103810003 010381000307030104070381000301038100030103810003010381050301038100030103 810003010381000301038100030103810003010381050301038100030103810003070301 040703810003010381000301038100030103810503010381000301038100030003 010381000301038100030103810503010381000301038100030103810003060301040803 810003010381000301038105030103810003010381000301038100030103810003010381 000301038105030103810003010381000301038100030603010408038100030103810003 010381050301038100030103810003010381000301038100030103810003010381050301 038100030103810003010381000306030104080381000301038100030103810503010381 000301038100030103810003010381000301038100030103810503010381000301038100 030103810003060301040803810003010381000301038105030103810003010381000301 038100030103810003010381000301038105030103810003010381000301038100030603 0104080381000301038100030103810503010381000301038100030103810003 820004000100810400010081040501058104000100810400010081040001008104000100 820400040104020081040001008104000100810400010081040501058104000100810400 010081040001008104000100810400010081040501058104000100810400010081040001 008104000100820400040104020081040001008104000100810400010081040501058104 000100810400010081040001008104000100810400010081040501058104000100810400 010081040001008104000100820400040104020081040001008104000100810400010081 040501058104000100810400010081040001008104000100810400010081040501058104 000100810400010081040001008104000100820400040104020081040001008104000100 810400010081040501058104000100810400010081040001008104000100810400010081 040501058104000100810400010081040001008104000100820400040104020081040001 00810400010081040001008104050105810400010081040001008104000000 010081040001008104000100810405010581040001008104000100810400010081040001 000204820004000100810400010081040001008104000100810405010581040001008104 000100810400010081040001008104000100810405010581040001008104000100810400 010081040001000204820004000100810400010081040001008104000100810405010581 040001008104000100810400010081040001008104000100810405010581040001008104 000100810400010081040001000204820004000100810400010081040001008104000100 810405010581040001008104000100810400010081040001008104000100810405010581 040001008104000100810400010081040001000204820004000100810400010081040001 008104000100810405010581040001008104000100810400010081040001008104000100 810405010581040001008104000100810400010081040001000204820004000100810400 010081040001008104000100810405010581040001008104000100810400 820300030103810003010381000301038105030103810003010381000307030104070381 000301038100030103810003010381050301038100030103810003010381000301038100 030103810003010381050301038100030103810003070301040703810003010381000301 038100030103810503010381000301038100030103810003010381000301038100030103 810503010381000301038100030703010407038100030103810003010381000301038105 030103810003010381000301038100030103810003010381000301038105030103810003 010381000307030104070381000301038100030103810003010381050301038100030103 810003010381000301038100030103810003010381050301038100030103810003070301 040703810003010381000301038100030103810503010381000301038100030003 010381000301038100030103810503010381000301038100030103810003060301040803 810003010381000301038105030103810003010381000301038100030103810003010381 000301038105030103810003010381000301038100030603010408038100030103810003 010381050301038100030103810003010381000301038100030103810003010381050301 038100030103810003010381000306030104080381000301038100030103810503010381 000301038100030103810003010381000301038100030103810503010381000301038100 030103810003060301040803810003010381000301038105030103810003010381000301 038100030103810003010381000301038105030103810003010381000301038100030603 0104080381000301038100030103810503010381000301038100030103810003 820003000100810300010081030501058103000100810300010081030081000305030100 060382000300010081030001008103050105810300010081030001008103000100810300 010081030001008103050105810300010081030001008103008100030503010006038200 030001008103000100810305010581030001008103000100810300010081030001008103 000100810305010581030001008103000100810300810003050301000603820003000100 810300010081030501058103000100810300010081030001008103000100810300010081 030501058103000100810300010081030081000305030100060382000300010081030001 008103050105810300010081030001008103000100810300010081030001008103050105 810300010081030001008103008100030503010006038200030001008103000100810305 0105810300010081030001008103000000 010081030001008103000100810305010581030001008103000100820300030503010006 030100810300010081030001008103050105810300010081030001008103000100810300 010081030001008103050105810300010081030001008203000305030100060301008103 000100810300010081030501058103000100810300010081030001008103000100810300 010081030501058103000100810300010082030003050301000603010081030001008103 000100810305010581030001008103000100810300010081030001008103000100810305 010581030001008103000100820300030503010006030100810300010081030001008103 050105810300010081030001008103000100810300010081030001008103050105810300 010081030001008203000305030100060301008103000100810300010081030501058103 0001008103000100810300 820300030103810003010381000301038105030103810003010381000307030104070381 000301038100030103810003010381050301038100030103810003010381000301038100 030103810003010381050301038100030103810003070301040703810003010381000301 038100030103810503010381000301038100030103810003010381000301038100030103 810503010381000301038100030703010407038100030103810003010381000301038105 030103810003010381000301038100030103810003010381000301038105030103810003 010381000307030104070381000301038100030103810003010381050301038100030103 810003010381000301038100030103810003010381050301038100030103810003070301 040703810003010381000301038100030103810503010381000301038100030003 010381000301038100030103810503010381000301038100030103810003060301040803 810003010381000301038105030103810003010381000301038100030103810003010381 000301038105030103810003010381000301038100030603010408038100030103810003 010381050301038100030103810003010381000301038100030103810003010381050301 038100030103810003010381000306030104080381000301038100030103810503010381 000301038100030103810003010381000301038100030103810503010381000301038100 030103810003060301040803810003010381000301038105030103810003010381000301 038100030103810003010381000301038105030103810003010381000301038100030603 0104080381000301038100030103810503010381000301038100030103810003 820003000100810300010081030501058103000100810300010081030081000305030100 060382000300010081030001008103050105810300010081030001008103000100810300 010081030001008103050105810300010081030001008103008100030503010006038200 030001008103000100810305010581030001008103000100810300010081030001008103 000100810305010581030001008103000100810300810003050301000603820003000100 810300010081030501058103000100810300010081030001008103000100810300010081 030501058103000100810300010081030081000305030100060382000300010081030001 008103050105810300010081030001008103000100810300010081030001008103050105 810300010081030001008103008100030503010006038200030001008103000100810305 0105810300010081030001008103000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820102010101810201010104020201810201010181020183010305030103820503048204 050301038105038303010201010181020101010402020181020101018102010101810201 010181020101010402020181020101018102018301030503010382050304820405030103 810503830301020101018102010101040202018102010101810201010181020101018102 010101040202018102010101810201830103050301038205030482040503010381050383 030102010101810201010104020201810201010181020101018102010101810201010104 020201810201010181020183010305030103820503048204050301038105038303010201 010181020101010402020181020101018102010101810201010181020101010402020181 020101018102018301030503010382050304820405030103810503830301020101018102 0101010402020181020101018102010001 010181020101018102010101040202018102010101820201038203050301038105048304 030503010382050301820102010101810201010104020201810201010181020101018102 010101810201010104020201810201010182020103820305030103810504830403050301 038205030182010201010181020101010402020181020101018102010101810201010181 020101010402020181020101018202010382030503010381050483040305030103820503 018201020101018102010101040202018102010101810201010181020101018102010101 040202018102010101820201038203050301038105048304030503010382050301820102 010101810201010104020201810201010181020101018102010101810201010104020201 810201010182020103820305030103810504830403050301038205030182010201010181 02010101040202018102010101810201 820201020102810102010281010205028101020102810102830205030501058103050105 810305010581030583050201020102810102010281010205028101020102810102010281 010201028101020102810102050281010201028101028302050305010581030501058103 050105810305830502010201028101020102810102050281010201028101020102810102 010281010201028101020502810102010281010283020503050105810305010581030501 058103058305020102010281010201028101020502810102010281010201028101020102 810102010281010205028101020102810102830205030501058103050105810305010581 030583050201020102810102010281010205028101020102810102010281010201028101 020102810102050281010201028101028302050305010581030501058103050105810305 830502010201028101020102810102050281010201028101020002 010281010201028101020502810102010281010201028201020582050305010581030501 058103050105820305028202010201028101020502810102010281010201028101020102 810102010281010205028101020102810102010282010205820503050105810305010581 030501058203050282020102010281010205028101020102810102010281010201028101 020102810102050281010201028101020102820102058205030501058103050105810305 010582030502820201020102810102050281010201028101020102810102010281010201 028101020502810102010281010201028201020582050305010581030501058103050105 820305028202010201028101020502810102010281010201028101020102810102010281 010205028101020102810102010282010205820503050105810305010581030501058203 0502820201020102810102050281010201028101020102810102 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 010081010001008101000100810102010281010001008101000100810100010081030001 008103000100810300010081030001008101000100810100010081010201028101000100 810100010081010001008101000100810100010081010201028101000100810100010081 010001008103000100810300010081030001008103000100810100010081010001008101 020102810100010081010001008101000100810100010081010001008101020102810100 010081010001008101000100810300010081030001008103000100810300010081010001 008101000100810102010281010001008101000100810100010081010001008101000100 810102010281010001008101000100810100010081030001008103000100810300010081 030001008101000100810100010081010201028101000100810100010081010001008101 000100810100010081010201028101000100810100010081010001008103000100810300 010081030001008103000100810100010081010001008101020102810100010081010001 00810100 820100010101810001010181000101018102010101810001010181000183010300030103 820003048204000301038100038303010001010181000101018100010101810201010181 000101018100010101810001010181000101018100010101810201010181000101018100 018301030003010382000304820400030103810003830301000101018100010101810001 010181020101018100010101810001010181000101018100010101810001010181020101 018100010101810001830103000301038200030482040003010381000383030100010101 810001010181000101018102010101810001010181000101018100010101810001010181 000101018102010101810001010181000183010300030103820003048204000301038100 038303010001010181000101018100010101810201010181000101018100010101810001 010181000101018100010101810201010181000101018100018301030003010382000304 820400030103810003830301000101018100010101810001010181020101018100010101 8100010001 010181000101018100010101810201010181000101018100010101820001038203000301 038100048304030003010382000301820100010101810001010181020101018100010101 810001010181000101018100010101810001010181020101018100010101810001010182 000103820300030103810004830403000301038200030182010001010181000101018102 010101810001010181000101018100010101810001010181000101018102010101810001 010181000101018200010382030003010381000483040300030103820003018201000101 018100010101810201010181000101018100010101810001010181000101018100010101 810201010181000101018100010101820001038203000301038100048304030003010382 000301820100010101810001010181020101018100010101810001010181000101018100 010101810001010181020101018100010101810001010182000103820300030103810004 830403000301038200030182010001010181000101018102010101810001010181000101 01810001 820001000100810100010081010201028101000100810100010081010001008103000100 810300010081030001008103000100810100010081010001008101020102810100010081 010001008101000100810100010081010001008101020102810100010081010001008101 000100810300010081030001008103000100810300010081010001008101000100810102 010281010001008101000100810100010081010001008101000100810102010281010001 008101000100810100010081030001008103000100810300010081030001008101000100 810100010081010201028101000100810100010081010001008101000100810100010081 010201028101000100810100010081010001008103000100810300010081030001008103 000100810100010081010001008101020102810100010081010001008101000100810100 010081010001008101020102810100010081010001008101000100810300010081030001 008103000100810300010081010001008101000100810102010281010001008101000100 8101000000 % % Compression made this file 35.94% of the uncompressed size. % showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_logo_grey.gif000066400000000000000000000146221514310134000274700ustar00rootroot00000000000000GIF87a@€ó---§§§BBBÏÏÏ©©©˜˜˜²²²ÁÁÁäääÓÓÓÿÿÿ,@€þ€ g "S¹­ø…WÉeB§šÞ„®9΀ت/ ßyì×2 m‡ÑèŽ'ã¯ck‰½Ò¥”ÒœC]tE x'_/F î@ƒt@¨©Óæx9®ËÉbúýìF³ûn{qze…xv„‡hoi‹‚s‡’‰u‹~mކˆ’œ‚•f—k™o“^¡e žx¦ l£§¬vŸŸª®£±€³·­µ”¿]¯»š½ÁÀʃÂÄÆo˸ˑÔgº²ÒÍ]ZU;XBâPßS8å?ááä)æÞíKAêæ[îIðVâóñ÷Dôè-ö{çï>pòž´Ç “„Y–Ôã×ð 6ØÌWÄb:ˆþ%:4¸#É#¨Æ(“ÕÈTÊi/±,õÈVnÛVòjYSL›©dÉ'NZ{fò:T¥ ¤6Ÿeã•3¥/kRµA=ZmRVª[­uŠMëU«É¼–{Ö&ljAf\HQã“uánìXRîɺtóá};2oa} íR$ì1î…"ïÕë7bŽ>¶|Nò_Á•cŽÜwsÈË(›NSzŒ©Q±aE ]v[E³[×F;6in—ª¹¦åÄøë§z’£H~3MGb=w>‹yªå7ƒjwºÜúêÎ¥C¯ž½£†íÞ•¿@mú€èÙÜ?g}=÷òêÏßÿ^±â³ÎL93ÖdýÙ@›-5×ak}:é]«Þnb¥}êÐNqïŒ 9¢ûº«qû…¡5ûc½û^¼ê µðÀ_<ï½3«ü`4æþ|»ÿþ\ð!LOÂñÐgŸ|óˆÉòŠ{K ø­]‚~ûé÷ñþ+ůÿ<üŠš¯¿üøoj6ì#Fþâ׿C¥¯~¼ŸùCÀ°}ô_H¿ôÍO½³ŸÝWÀ ^ð€ºÓ`ôÚ÷Á°€Làùç@šP}*áù^8 ØÐ†-ôŸwGBjoàÃÞ1äὤUo3AdÉG½" !‰÷[âöŒØ=&ÊŠ#”¢þ:nÈÅ.ÚpŠÒÂ"µ’Z/zB4©ø'^B|×›hňQfdc ܘFäÅQ‹^ d ùxG5^.t`x Ar'¤_ %XÀæœ$#-HCN*R“+ì¡#GiLJ2„1¤¡%¸Ê>þÏ$¥#{xÉEn2’œa-AJSæ’ƒ»D%,=9YÎ2˜ŽØa%}Ø 4³z¦4+0M6LÓ™0¦1©Mjz›Ø´æ7‹1NtœäD§4Ï™ÎvVóê,';¯éNnZˆžø,<ë©Nvj“‹÷,§@ÅÏ~´ 5çAùéÎ?ÐóŸÿtæ<þêL‡RÔM¨=£sQiZT£]h> ÊQê³ #ŨH³)K…–”¡EiG7šÏ_®Ò–½#%·‰KW¾ò–ºü%1A(L S¨´Ä /yÈÊö³§°T¦MQ8TUw², ,[©ÃT.³–Uýd2½ÚT°&u‚KeêQ—bL®Âp˜gÅ_ÃÇœŽ’¤äcÃ7ÄCÖqyz-$Ö(- ‚« ÚúW?¢Q‰~cû½º:‚”{l,™YÉÚѲâ;lð Z<Ê1\<íáøXÑn³G,_i ©D~U©W-æ(×êÔà†…jW)YV¤•¨c%®þæþçÅÛ"7 RMä"xêKŸF×¹ +n¡›À¬RPt+NeÈ[³V7“ÉU. céEí>WªËÅßSÅ›Vì ²3À"f;‹‘ðjv¯{U­c‹ØÙ6²"˜¥kŸh`üÎ÷¿‰ð¸Dç}pñ·ÀåbÔö’a—]CsW잆4´½³iÓc¹d)´‹¸u1€Û§[bØ¿µaå€aC À ó C¸µÉfÈsãÄ6 »EÌfÆ òÆþ'8dÕì+8α‡qœå•QÃH€Ž9w‡–}Nc–㆙¥å+{îem¾ãr62Íݹ‚oÜ€ Ì1`rüþá£5íÅ©Ó××hG-.úØÇ]Ä3÷Hl/fXƾ¢k·˜‹Ë?¶q†-hxi¸Ôš†Œ—–éÙ±î7„t‡oHéT›æ[]$4­[|hU'Zm›òþ<êKßpÇ{࢔qƒä»ÙfdnrÛžÌã?ûù·>Æöß„ü°*ß&ËàÎñ˜Ñ<ãnë&Ø’p³á¸LʘYãØî.ó›éö¸ÂÍùpvÈ6~+@F“s9ÙYÔÆ0¤½,ï‚×Ù†4³´‰j$ìºÕ£³0¤ÁÌqüz/`µÈC=iŽØ8~ô–=.qqØPÌ¡¾xf~¬kàÒœå3p;lâþUw å¨¥8ÆY½h–ÚÇ(Gùþ½ëŠ×¥‹ü~´Ÿ•Nko2á¾½1Š«kšóÛÚ1r`B®ï}ç˜ÓPÙ±MóžÜø±”vJå'ˆÊP¢RÕܧcÌ>{±PxÀ…ÿ pˆÙѾaŸÌ©( 82æ—Æ6)Ïœ\³»Ïÿ^úÆœŸäø˜ßýþw¶œ':„üß óç³ý¿?-*î£ÒCªt X@ÔwwT€”†Û’òåñ}¬»ØŸø(HðŒùCmlGî^;Âï"w ¤s•û9ñùéúòÕnøÛÐ? ZPîÇp&;])Kò½›âd¦ݵB²l‡Œù ¼þ®)Ñ%œ@ôþçÄÿK s;i7"¾wob~u'kâ·‡$K¢€È7K3B@B.b2R&QV~xW(bIâ}ZwCp}l‚&m2èVnSc··9äF°e ²m8JdFJ|#,v+b Sƒ‚Ô$y†…ù׃-êvo5}›3 <( 7èƒW˜l£Dg(£„7ˆn:%9S‘…•ð…A¨l_`L\è8ÏÆ3ž¶ùÇrD‡ûtŽÔ"HB8-¯Õn'±_…5J-ei1ÀSÙ‚v;tqu5‡Áb›1y±dp‘U‰Ø‡‚h:˜ø€¸/þ’¸\T‰u˜‰¼ÆM(mÍ–kÍ'jm‰ S í‹Koš(HçvfH,5ø‚DèEcÑ‹ÊV†<èmm8paÐ2Y‡u §uÆfd,699(ŒµgÂÀb—†W(1˜…Áˆi1Óh(jˆoË ŒØ/à–e;GhÏiÊÒ‰ä"H[°MN7’x4øƒÿ  Q„–‹‚¤&X’ˆ/>Wëè4n÷ŽÆÖ3¾uaUíu4wŠ…(H—–ˆÉn2— ÙˆíuûHk™¶ ùv2vdæî˜u!i‘ÀõÍ8“¥4„DæqiQ‘ΗŽýxtñXJI&xÅÖþޤ§27èdbgyv¸l-Å„ÊXdk6”Ï(‘Iù‘ˆãŽ[‰C°°†g¶2ì&nâ–„¸x†D¹sŠ÷pxc%x+®H¹Žp©1[)—@vtñ¦†dYd ‰h\¹—aù[΂ugh›6¯Usi)‡C‡|r錜‘‘‰s怙"Yrv™X·Y¶’€Ø’Šh.oH;†Il«y¤q˜ Çhýð{铎é‰cFlrØ,¢YsÉ`©˜gn×Å™ `chÇeï(’É‘1–Šq3m}c[™r ·›  ­‰a1y” ‘‹‰a$3œÎÉšDFƒñ¨uG!jÙ™ÕþÙlÔ  ùŽËy“FˆžiIe»88O(†èXÄVvªdV [‰—]H1µ¹•B †Is9¶ ºš0³%˜„YyØÆvhÉœä6“ðˆCú4  q©ùj8 r0º e-0pÚ)›ìòæyšðŒ²öŒ–‘¡ ›ë¢•‰cÆì’rdŸ—ÖœªuJ:™ Ù¢ÇI-1Z£0Ú«§e6Èi£FÊš­3¦»y¦ZÊ ÅéºeÜYaSš¬Y º9zÜrc*ç–W*À¦ŒNvŸ¥„êc’Ð¥„JŸ‚J )—¥¬Çš1zÿ…JlÊ º£þ| ¨)±§0šzF !:©æŸëù8OˆzÔˆ*'z…Z ¯Šz°Š÷  Ÿ… q–Z¨*—9¾:ª*ã¨: óv2ºo«pˆóh¢£š9¼ëˆz·¶©‡zÊZ«>5Úº­Ú ¦Qã«ÏÚ:´ªÙÚ­q®Ûªr£á¬ˆÚ­Iêkñy¢—®¢êšÚb¯ûv¯Ý:§‡Áˆý¶t×J´z°ìŠûo˜÷oËó¡:«ê6z ‹/çÊ®òj‹¨°öš­«ýº°™ç¢·‰Š€…þ¦V™´j±#[2 z2k)‘±%K«½Ògýf±?z‚Ó²Ûþ¯hq¯«¬0 Œâik²Fñ´žÎ6­â{ía-k|ÿ1{€z>K´¨§ [¶?‹z›~óñ)EÛ¯2 {z¶D´ P*©¶x˳‡1»°÷i˵áW) 볡w¶ À( µ´ jK˜¢wä—€`ZûoGB¹‹k¸6¶b¸ {¶è—¹g"¶R»€P¸ g³«‹~R¸¡ë³(f˺c[sò#^»AÛg”Ë»gÛ€5¢¹\ øK—y°*(!-¶˜×o²ºÑ˹¹[!ü÷! [¶6k¼!¶Õ º)øµ±ëoý¶‚/¼«&×û¸þg¼ÑÛ¹†Û¼ò»cÂ¼Þ $^k(þw°®·¿_k²zÛ«+À’Âx”bzc¶õ«º ·ž÷y‡Ë¹.û¿) ·@ë»xò¾A¼†K*ü'ð6}ૺA«¸¾\·‹g”ž‚—‚• f÷o*ên;²‘ ¶š—¼u{«ŽSŽt»tk­šƒ®Ïûo­Ê½«Áw –ÀÄ5ûÀÆz«â8yÛÄ €œÅ8ó–lhµÀ¶# yGj¾‰v„ «çÀ®‘úhórjlº7K5l£´zkªëÃ…rœvlÄÁsj< ²ÌYŒ°2 aiœ²¨9b5°tK—e¦é˜Áj«þ8ð[ÜWªö°F'vIÀÉ™g£Ÿ¹ªr°=̰, l z| ¯»È*©5zÆ¢ª†ÈëM×È~š,~3Ãu ÆõyÉ:£œÐž\‰³W<bê£Å™Ìlsº‰ª5Á¯š:ÍqðÌœÌú¶´<éÊ­pÊ{úg°¡³àÊ ©Õ´3¸ õv 5éÂaL•W™ú #š“ç QHÎÛ¡£mÁŸñ8–Ú€Ïðèš¼xl… £bº U …ÒçƒQª«¯¯£ìÕÏy¹¢nÉáx‘$r®˜c‘aiGgXØ"&’‘©¯¨quZ‡5Îèœ\f˜fCZv»9¯`ˆz8þœÜùg†¡£”Ú‘¿,;?Ðr°õ‡agˆ ±‘ŸFÈÐR—îybyjphÕn Ê©ÒR0€ç|c>M|S`iÏ9JhBÀȦ˜Â\7Ù\‹Ú í¶ ÚžÍ (=Ÿ×LmVK¹ÐkסóÉ‘vÌd…@–&zª]ô²VÏjUUá‡?™×):×ߦƒvM]Mù÷Ø6mybÙTÏeðƒÛ0xHY3ëè'½‰‡9Í-û…œ4RxÖº­ÒÀ<×'IŽÔŠ»VÉÁÌævµ‡Vš€¤ÛȳFùÉœ•XÂÜÖÝZ3Ý·ã{ŽZ–;Òõ\Ãþ­‹µÄwù§JǰÞbùVàQÒ€ÝKø]uµdß?¥ßëu@î…^Ð%ß©m_§ß%4ܧÄ]°ôOÆ• Â_l%„_•ßÿ­à>ôÜWTWº=ZVáYtÞzFÞþXQT’FT€ÍWo@ËÒ}ZÞeZQDâÆáŸ…âXõÛžÌ_0þІãmMÐÝ`CÞEÿeF»ÅZæ @ÞãÕ󊉅_@0Ub•^.\V¾]nT~ßç5\^®åéMà]žåa¾åÏ•áj5àöÅåWæõ]ïEVñ5ç_~ålÞædþæuWÇætnæqè÷…OS'5S!õR)µN+¥Q¥èþþèòéŠ>éžè›Žéù¤éÅé¡îéµOîèãS¢®NEéÐDê µê %S&åR–NR·¾è¹n댮R¨žP­~ê»NS½.N».êjnæ{ÞÞ‚žçoT_É>ç7íe.íV•[|nè>íØߊäæÏŽåŽç}NßF%^àîJ…^^ÛNCÐ~çîì®^}NååMã#^[I.ä÷n<5®ïžXÖ`ü.E𠆯ãcdãá`ïAþGâîý~Ý¿âš5å/=oäñŸðU^\k~]&/èÜ.îÙÎî$ïQEVÕÞîz¾ìÑNó\nó3=é.þæçÞìå>^-îrçvÞó)¯çëóÌŽLg>îñŸïÌSñ?ð ßWO=UdõSßð[_rvâL®õUÏõm„õeÿâ/ƒI¯Ž¬hg°âb¥to4q/§pßܵæj} ×j3Ì8KÛ&l”ς梅ÿ’ªHµŒ-Æ+«øW £½ „dÄe¹–…9•ßÑœÏøçÏ›ƒß9š/˜v¿÷€ß÷³\°oçúzû< ‰¯Cûyo:·O.üö¸Ï÷¾ÏûdüÌÝúÄÿÖT*û>-ü.Iø*ú§/ÎØ\µ—ýØ_ýÐÿü‹ïüƒ?ù–}¬Éý­–þÿΘ¯©Ooãooæú¦Oþîÿù¸ŠþÔºú¿oüøÏüµ¯û!ÆúÄ ÀÖkÞZR/´K±»&sS—}³³Ìöd½ßxš*gÃáf?PðK 9E”m tú>-”h¥.aÝ”v8ž6½JpP,.c•¿@¼%gÍ%ñ{`Pôù>¿¾¼Â:;D¼D:9Ÿ½¾H@ÁÈCźGGNCÍÎ9ËÉ@IALF ÐMÏÆSÑ?ÒÁËÅ«ÔÓÛÃÕÐJX^BÚ\UÝÌÖDÙ=À×KÜO\Ýfã×d_áZàaÔëã‚éÒe`hlVÛhÞîÁê`gÐpÇíóÈôö»ûÃzŠ ¾‚þþ=ÿ~ü ä#hMßÁ‚÷rÝØðŸÀ„5)¼R_D‡þ‹Hp"B‹)îÛ¨ÑäÀG‚Tø1_F€1;ìXse½˜0ù±Ä—ÒçÅŸ9Kä¹°hJ—…žÜióèͤö–.-õiÏ‘S3V½ygCœ¯V…ýJBÒ @7ú¨ OX;dßÎuÛI®µfÓž%t·m!¿ÇÒ5»vÀ^×Û¥û×o\ÂyÑÜ·1ÜË™ëŽÌqaÇ!oÍxó†Ä$’U>=¸õkέSXÍöèÒ¹qË]Ûðm͹1ÃF]X5ã7€¾{noä¬uïÐæÌ˜5\ÌXÙ±]MþìÚÝTy³Â»ìR¾œ¿^1 x6ëÇ·ï>? |ðÖ}GbÿûõÐ`O¼ëÒ#C>úô=üt" þ˜Xð‰T0Á0¼òúóB8×ÚJî0ÊøR¬9êP|mÄÏØZ,67s/ÏJL,F_®4míÅqœ±ÇÊN\.·é˜ƒnÄ#u-Å%¥{,Å&3‹Ò¶$qœRÉä|3«Jæd„²Ëè°ÜÄ!¤pC#äîÂ÷Ø$ðÍ '¬0>8;Ô¯CÛÌ3B7ù¼sÎÓÔCD÷ôÏ#ú$tÑ: TO5mtRCí¤ôPG7µSH͈4Ô0³¼KÔ¤ÒÔÎ `kÑ20µ ±¬Ê^5’ÕRw<µV]TÉ3»ò7\e5-´a¿,ÖÉcy#“ÉeW ²8ɼT.ÚR§ÕãY)Ÿd.SIåôC ÃEÔÏHé,7Îs-U·Rq-LWÏ@ùëÜ";scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_logo_text.gif000066400000000000000000000041721514310134000275050ustar00rootroot00000000000000GIF89a@€Âÿÿÿô}&ÿ¡BÿºTÿæ§ÿÐ|!ù ,@€þxºÜþ0ÊI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰ŠL‹3Ž“”‘—'•ššn›œ˜7ž¢k£¢ ’¦›iªª¨2­“g±±¯©£³§®¶0¼c¦Á½.¿b¸È|–AÆ`ÊɫˎCÃǺ“Ìx•BÎ^ÖÙßÞŸ@á]Ðä”wžÕãâŽÛܲõÜuë>ñòôl놡р¤æ¤Û±p‹Àù>ä`‚üõh˜þežEXÔwÉ8“lŽR={ϸ!X落p­ÄG­å<“=Ȭù2èM£oŽÜv)‘‡PbTWTÚÑ„qš(@€k"À£G6,Ög% õPq&™&Ú4w@ùTF<+¢ÑÅ™k+ t0_VtR‹†6xñ ø8%®*CJ®¬¶ÙŸR±UÐ9˜«H¼8“é Ö&„mó™Є,S ËYþ¹•ÛÅ”*9;ðø%S~ˆ×ùuòÊ©ríúµéam¿°(½)#ÛÅh-^'Kaš¿˜ö@yÝë h÷^Õ!ïùÚ•?¸ß›oñ¢Çÿ £» “NzX‚u:âûÀv´C:õq¯, “G¼ía }ÚàÁê…~þÛÞ±·•êHðx÷“€tèÁ ¡+“`úV˜@°ð+Ìù U¢Áò=0}Ôy¡ XAŽn„4TÉå:H æ…é a5¼Rà‰Ml@aCŽ€þ‡DL@Ò•v‘:`â ;x²t(XáµH5² `¢©ØÅ7"‰uÌ! ÆØÁ)n1†^œN_Cí¬±Œ†|áúJ@G@ʱO4â@rñ‹—ä.ÉÉ:îq‘D$sFIJMºp:ä¢(½ÂE6š •˜$€`éÉ#L¦9½k#uZ9JS@¤l%EÀÉB¢ò†¨Då%ØJVú2´ä0%ÐKXV@™Öœ¤$=EW.@PTF°¹K0bp+ålå3 N/‚ä[R¤¥*¯C–“•²¤@0﹋fôÆŠÜ$ ]8EçÜrÕ:e&«ˆÐó¡þ%$(©¨¡;r›ºª§1YøN]®QWúsZ“K‚Ά§,Õ„¸›qŠq£ mSNZI‰¢PùܺYÓ>«ˆH¼&L1z&‘‚6×Ûü|¸ü¤î‚³ºÎS;8ÓErNuÞóᓸ[æ4KwÌG·ÓRy®5Ç‹©xúÌuÁ¢unýáóø÷€’+ª°Ý&‡¯‰„@œ]>(uÊü¯"|^û,€Eê´˲›€Ü–4 *\R#g§DÄ”ì3µÛÔ¦ÛÙ¶³Ýºjê¨ö×þP±QúÒDzñ¾U«F›»-ç”U3`a6³$ÙµlTÕ­ršþõ׆fUËrV`²íhs¬(ù‰W KVï<‘(ii ¸Eµ¬ƒ¾§2Ý’+*àcÀÁžÖèJ÷¶Õµ.›øªîz*X©ÒM|§D^ûž*¹å*PÔ ²§8 ÌXôÍïlß›¦ý*¸bÝ’PróŒ0ØcŽÒµðkƒQøFŽ0„s®0Ý—I0†kta4„U&qTùt)[)Æ¢º1Ž3 Y«øT⹚%+_ÛøR0–ð$‡××È¢ˆŒgûùÏ€G´ MèBúЈN´¢ÍèF;úÑŽ´¤'MéJ[úҘδ¦7ÍéN{úÓ µ¨GMêR›úÔ¨NµªWÍêV»úհ޵¬K;scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_pattern.gif000066400000000000000000000014561514310134000271600ustar00rootroot00000000000000GIF89a@@ãô}&ÀÀ3ÇÇQÿæ§ÿÐ|ÁÿºTÿÿÿÏÏÏÿ¡B!ù ,@@þ g#S¹­<ø…WÉeC§Z@;¹-¿T 8q(Šžã5˜P6¤©â ðËñn?e+y¤±LÔŠCyuX•6\ñ˜1òWþn³i.·ºœÖƒÐÏ¥©V1~DƒM O|:R„0gcrfl•]'q˜“bšo–kjp)d…1€uy:{8}ŽHwFT³(³§L­Oº8ºvÁhZÂ)ÆZµÉȺϹÐÏÎÇÖ̵̯ÚÊÌ×ÍÔáÑÎÞØËß„´Äé6¾¹; î¾ìSÙÅ‚¯¨J‡‰­‹ƒôÑÙ¤M¨6ßäTF¡¤M:ôT”0Gªà)òІ@#þùb-áç/J@‘&’bª%Á‡o^Rœñ’J…,}´±‘U‹îœddHUÉ:QÖ¹â%‰a`bAXiZÍVX?`ÍA5„Õ§`þ‰ý56ÏVxgù•u·±,¶nÓ¢•ÛöÚ]?|m™VëÖ¼:ö<îêY¿Y ¶”ñÜCgŸôKö®åÇ#+›óÆ~zHˆ÷L4èÑ¡Só0Í:õèi­Q»>ÝöìØýöàÞm[6èÌo)§•|X¸ç¬k…óÙJ¼¸cå7ž.îÒw¹XéÐÀjœ=TõïØu¾K¸fºÆÍ×=kó¿É-‡ _Ó:×Éô·3Åé*'©stÝt‹ùäŠR;!¨TQŠPHD-õßL”lÇÆM¢ìg…¢, P ØÃX *5”)$m¶QRjÈa6EEa.:Õ_‡²`K=ëìh×;<ÈÄŽæ H=EÞSY.½”wÜó7Ù,#ŽUXVà •çlsN•å€SX–äL©Ì–Æ”H`O#þ$àEBAˆ¢Q*ŠÅ¢)5~Âá‹Æ„á‹õ%$cS+¨é‡ˆmúʉ¦˜Ñæ‰E ÊŸ9v@)Ž3æÄh*l&úfPC|ºš:П6ˆi§D;scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_pattern_light.gif000066400000000000000000000014101514310134000303350ustar00rootroot00000000000000GIF87a@@¦ÿÿÜîîòÿÿ3,@@þº"25 ßü:B%:A¹˜%”žL‰ 00„Ã-ª«;›ÿ¡Þ*p‹Ñ^7a)øc‘< ЈÂÙXeP‘4Û°x!îUƒ½N£a*µ9\¶sÈ͆dï˜Î”·_1Gt2J|y(_[j^dUˆi‹Z’gŽcbh!\})xmq2s0u†@o>L« «ŸD¥G²0²n¹`Rº!¾R­ÁÀ²DZÈÇÆ¿Î»­»ÐÒÂÄÏÅÌÙÉÆÖÐÃ×|¬¼á.¶±3æ¶äKѽz§ B¥ƒ{òl“Òš˜eÏô£ÔE ¢Iÿþ´ÔÁ“.C¢Ð ÂqŠ…>ñR ¡gþ/I>‡r"˜©$¿ƒgN2\”ð‘H$]t1‘T‡…Þ|$äGTÇ2A¶P9á#…YPBØhYËRP/@Á4ƒÓ£Xîi½µ5ÎTt_éu57±+²fÂU[öœØU/\-VêÔ¸2æâÅ»íéW»QùêuñÚ?_ÔMËõ­ãÃ…PòÄz j(HwL3æÍ™CÓðL:ôæe¥A›þ\õêÔõæÀžíZ5æÈg‡UüW·å¨cuәʻ·aá/Ž®Rw¸VåȰJÏ=SóëÐeaÅ=K·d¶¾½·ýjñ»ÁgÍÞÒ9ÕÅì§…i)%¥k*¾RѦ×)¡3(TO‚ü„OF< ußJŒLGÆKšÌ烚 „NöWÃV µ“'M6QP JH_.%Å`&U_…ø‘àJ;ãÌèÖ94¨ƒÃŒÞìÇ;=¾ÓX,µt÷¼s5Ñ £SP6C “ßLóM“Ý`ÓW”Ü,)Ì”¾tÈ_MÞ¤ßC:!¢O"jE¢'-^Bቦá‰í¤bQ#ˆi‡†eùyʇú…Ñ›úÅ EžîI1VÀ(Œ+ÆDh(dzfN;\:›‡zºÏ.¢i¥$;scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/misc/scotch_pattern_light_small.gif000066400000000000000000000004021514310134000315250ustar00rootroot00000000000000GIF87a ò¦ÿÿÜîîòÿÿ3, Ï¡*û`Ä)ap,X ¥$ÓfY3zTyYb‰‚UÆ1ê¼ hû¬ŽàóƒB ,ð.¿^¹tƒÐfr¥c¼B²Q픊=lÕÛ¶-•;ݳ"œ"³»BÊ`î™Ãq¸8~N çq$rtv‚uzƒ}„Š ““’—™˜˜•˜‡‹†‰{†¢x¦]t¡Ÿ‘l€^&²cX_Z·€a¼—´+f¿9Y¶RMP•EG>R ††­¬®¸T¸¯±¯­»­˜šœ“)Æ Œ¨¤ÎŽÅǑՠ|f~7$ƒD‘x‰„Þn4ÏÛ‚-„wyæJ߯5FónbK`SUcLYþ5ùÇÅV•0·ÔáqƼrA +bc¸vâ-4÷í:‰,6¾C¤ˆ@;scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/000077500000000000000000000000001514310134000243375ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/Makefile000066400000000000000000000045561514310134000260110ustar00rootroot00000000000000## Copyright 2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## VERSION = 7.0 UMAN = ptscotch_user$(VERSION) FLAGS = -sPAPERSIZE=a4 DEPS = $(wildcard *.tex) $(wildcard *.eps) ../version.tex MANS = $(UMAN).ps.gz $(UMAN).pdf CP = cp -f RM = rm -f .PHONY : clean default install realclean default : $(MANS) %.eps : %.fig fig2dev -L eps $(<) $(@) %.dvi : %.tex $(DEPS) latex $(<) -bibtex $(*) latex $(<) latex $(<) %.ps : %.dvi dvips $(FLAGS) $(<) $(UMAN).pdf : p.dvi dvipdf $(FLAGS) $(<) $(@) $(UMAN).ps.gz : p.ps gzip -9 -c < $(<) > $(@) install : $(MANS) -$(CP) $(UMAN).ps.gz ../../ -$(CP) $(UMAN).pdf ../../ clean : -$(RM) *~ p.aux p.blg p.log p.out p.toc realclean : clean -$(RM) *~ p.bbl *dvi $(UMAN)* scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/epsf.sty000066400000000000000000000321211514310134000260340ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \typeout{Document Style Option `epsf' (October 17 90)}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Inclusion of EPSF documents into [Oz]TeX documents. %% Michel Mauny - April 25 90. %% Emmanuel Chailloux - October 17 90 %% History: % --------- %% April 11 91 %% Fixed several bugs [mauny] %% * Now accepts lines as %%BoundingBox:100 200 102 23 %% without space here ^ %% * Added a \leavevmode for \epfs{} to be accepted as single %% element of a \begin{center} ... \end{center} %% * Extracted calls to \newdimen for them to be global %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% TeX does itself the recognition of the Bounding Box of the drawing. %% The macro is: %% %% \epsf{filename} %% [xscale=/,yscale=/] <- optional %% or (hsize=,vsize=)in pt %% [ps=] <- optional %% %% Order of parameters is important, and the 3rd cannot be used without the %% 2nd. %% %% A null hsize indicates the hsize scaled by the vsize scaling. %% A null vsize indicates the vsize scaled by the hsize scaling. %% A double null is the unit. %% %% This is not the first package to do that sort of things, but that one %% reads by itself the size of drawings, and is thus really trivial to use. %% %% This package may be extended in two ways: %% * usage of different versions of TeX (dvi2ps) (simple, but not trivial) %% * usage of different EPSF files types (tested only with FreeHand 2.0) %% should be trivial... %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% How to use this package? %% Two things to do: %% %% 1. Create an EPSF file %% Use FreeHand or any program capable of creating such files from %% drawings or whatever. %% Use the `Export' menu item (or anything equivalent), creating %% the file (say) draw.eps %% %% 2. In your [La]TeX document, place the following command where you %% want your drawing to appear: %% \epsf{draw.eps} %% And your drawing will be at that place, in a TeX box. %% You don't have to leave extra place for your drawing: %% it will be in a TeX box. %% %% Z If you want to specify a scaling (say 33.33333 %) then use the %% optional argument: %% \epsf{draw.eps}[xscale=2/3,yscale=2/3] %% Scalings may be negative, but must be specified with the form: %% /. %% IMPORTANT: try to use small numbers, otherwise you risk to get %% a TeX internal registers overflow. %% %% Z if you prefer to specify the vsize of you picture then use the %% optional argument : %% \epsf{draw.ps}(hsize=200,vsize=300) %% Dimensions are given in points with the TeX convension : %% 1in or 72pt. %% %% ZZ For real hackers only: if you want to add some PostScript to your %% drawing (indeed at its beginning), then use the second optional %% argument: %% \epsf{draw.eps}[xscale=1/1,yscale=1/1][ps=] %% The second argument must be specified in order to use the %% second one (if you are tired to do that, make a new macro with %% your default scaling. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% \DVITOPS indicates the default TeX. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\oztex{OzTeX}% \def\dvips{dvips}% \def\dvitops{dvitops}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Provide the appropriate value to \DVITOPS before installation. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%\let\DVITOPS=\dvitops% \let\DVITOPS=\dvips% %%\let\DVITOPS=\oztex% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Debugging options. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\yes={yes}% \def\no={no}% \let\DEBUGepsf=\yes% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% \@doTeXspecial has to be extended in order to work %% with other VI2PS programs %% OzTeX produces \special{ } %% and we produce - - translate %% scale %% %%%% Added by ... (PostScript comment) %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {% % #1 = filename % #2 = xmin, #3 = ymin % #4 = xmax, #5 = ymax % #6 = hscale, #7 = vscale % #8 = user postcript % \ifx\DEBUGepsf\yes % \typeout{doTexSpecial #1 #2 #3 #4 #5 #6 #7 #8} % \fi %%%% Added by \DVITOPS\space PostScript inclusion (epsf.sty) % %\advance\@pshoffset by -3pt %\catcode`\%=11 \newdimen\@pshscale\newdimen\@psvscale\newdimen\@pshoffset\newdimen\@psvoffset \gdef\@doTeXspecial#1#2#3#4#5#6#7#8{% \ifx\DVITOPS\oztex% \special{#1\space#6\space#7\space scale\space-#2\space-#3\space translate\space#8\space}% \else% \ifx\DVITOPS\dvips% \@pshscale=#6pt\@psvscale=#7pt %%% Some dvips require a percentage. In this case, comment out the next line \multiply\@pshscale by 100\multiply\@psvscale by 100% \@pshoffset=-#6pt\multiply\@pshoffset by #2 %\advance\@pshoffset by -1pt% \@psvoffset=-#7pt\multiply\@psvoffset by #3% \special{psfile="#1"\space% vscale=\expandafter\@numbof\the\@psvscale\space% hoffset=\expandafter\@numbof\the\@pshoffset\space% voffset=\expandafter\@numbof\the\@psvoffset\space% hscale=\expandafter\@numbof\the\@pshscale\space}% \else% \ifx\DVITOPS\dvitops% \@pshscale=#6pt% \@psvscale=#7pt% \@pshoffset=-#6pt\multiply\@pshoffset by #2% \@psvoffset=-#7pt\multiply\@psvoffset by #3% \special{psfile="#1"\space% hoffset=\expandafter\@numbof\the\@pshoffset\space% voffset=\expandafter\@numbof\the\@psvoffset\space% hscale=\expandafter\@numbof\the\@pshscale\space% vscale=\expandafter\@numbof\the\@psvscale}% \else% \let\DVITOPS=\dvitops% \@doTeXspecial{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% \fi% \fi% \fi% }% }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% Following definitions should not be changed (except bug fixes) %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Will change the catcodes of % when `parsing' header of EPS file % The ``:'' character will be parsed as a space (catcode = 10) \def\@setdrawingsyntax{\catcode`\%=11\catcode`\:=10\catcode`\!=11}% % % Need some counters and an input channel \newread\@drawingchannel% \newcount\@drawhsize% \newcount\@drawvsize% \newdimen\@xscale% \newdimen\@yscale% \newdimen\@vsize% \newdimen\@hsize% \newcount\@newvsize% \newcount\@newhsize% \newcount\@ovsize% \newcount\@ohsize% % % % \@scale at will multiply by % must be / (big numbers may produce overflows) \def\@scale#1at#2/#3{\divide#1 by #3\multiply#1 by #2}% % % {\catcode`\.=12\catcode`\p=12\catcode`\t=12\gdef\@dimentocount#1.#2pt{#1}}% % {\catcode`\p=12\catcode`\t=12\gdef\@numbof#1pt{#1}}% % \@drawingscale{p1}{q1}{p1}{q2} => xscale:=p1/q1, yscale:=p2/q2 \def\@scale#1at#2/#3{\divide#1 by #3\multiply#1 by #2}% \def\@drawingscale#1#2#3#4{% \@xscale=#1pt% \divide\@xscale by #2% \@yscale=#3pt\divide\@yscale by #4% }% % % \firstitem to => arg1:=car(arg2); arg2:=cdr(arg2) \def\firstitem#1to#2{\expandafter\makeseq#1\makeseq#1#2}% \long\def\makeseq#1 #2\makeseq#3#4{\gdef#4{#1}\gdef#3{#2}}% %% %% The user function %% \epsf{}[xscale=p1/q1,yscale=p2/q2][ps=] %% or \epsf{}(hsize=w,vsize=h)[ps=] %% Two optional arguments. If second is needed, then the first one must be %% present. %% \def\epsf#1{\leavevmode% Must leave vertical mode in order to execute \everypar \@ifnextchar[{\s@epsf{#1}}% {\@ifnextchar({\h@epsf{#1}}% {\s@epsf{#1}[xscale=1/1,yscale=1/1]}}}% %% \def\s@epsf#1[xscale=#2/#3,yscale=#4/#5]{% \@ifnextchar[{\scale@epsf{#1}[xscale={#2}/{#3},yscale={#4}/{#5}]}% {\scale@epsf{#1}[xscale={#2}/{#3},yscale={#4}/{#5}][ps=\space]}}% % % More arguments to come? \def\h@epsf#1(hsize=#2,vsize=#3){% \@ifnextchar[{\dimen@epsf{#1}(hsize={#2},vsize={#3})}% {\dimen@epsf{#1}(hsize={#2},vsize={#3})[ps=\space]}}% % % The main function (not user acessible) % %% Used to check wether we found the box or not \newif\ifnosize \begingroup %%% Warning: comment character is & (and no more %) \@setdrawingsyntax\catcode`\&=14 && && What we will be looking for (`pt' is the supposed unit) \gdef\BoundingBox{%%BoundingBox}& && && \gdef\read@epsf#1{& && We accept PostScript and scales as optional parameters \bgroup\@setdrawingsyntax && Change the code of % \typeout{Opening #1}& && Verbose! \openin\@drawingchannel=#1 \ifeof\@drawingchannel\closein\@drawingchannel&& \typeout{LaTeX warning: can't open #1.}& && If no file, then ask the user \typeout{Size of the drawing? }& && the size of its drawing. \gdef\@minX{0}\gdef\@minY{0}& && \gdef\@maxX{596}\gdef\@maxY{846}& & \message{X (in pts): }& & \read-1 to\mX\global\edef\@maxX{\mX}& & \message{Y (in pts): }& & \read-1 to\mY\global\edef\@maxY{\mY}& \else && Otherwise: \read\@drawingchannel to\@drsize& Skipping first line (%!PS-Adobe...) \loop && repeat "get one line" \read\@drawingchannel to\@drsize& \typeout{\space\space\space\space \@drsize}&& echo it to the terminal \firstitem\@drsize to\BBox& \ifx\BBox\BoundingBox& && First word =? Bounding Box \nosizefalse& \firstitem\@drsize to\@minX&& If yes, then get the informations \firstitem\@drsize to\@minY&& i.e. minX, minY, maxX and maxY \firstitem\@drsize to\@maxX&& in that order \firstitem\@drsize to\@maxY&& \else\nosizetrue&& \fi \ifnosize\relax\repeat&& && If no, then get one more line, etc. \typeout{Closing}& && Verbose! \closein\@drawingchannel&& \fi \egroup } && \gdef\scale@epsf#1[xscale=#2/#3,yscale=#4/#5][ps=#6]{& \read@epsf{#1}& \common@epsf{#1}[xscale=#2/#3,yscale=#4/#5][ps=#6]& } & & \gdef\dimen@epsf#1(hsize=#2,vsize=#3)[ps=#4]{& \read@epsf{#1}& \@newvsize=#3& \@newhsize=#2& && && Computing vsize& \@drawvsize=\@maxY& \advance\@drawvsize by-\@minY& \ifnum\@newvsize=0& if newvsize=0 \ifnum\@newhsize=0& if newhsize=0 \common@epsf{#1}[xscale=1/1,yscale=1/1][ps=#4]& \else& else && Computing hsize \@drawhsize=\@maxX& \advance\@drawhsize by-\@minX& &&\ifnum\@newhsize=0& \@ohsize=\@drawhsize& \divide\@drawhsize by\@ohsize& \multiply\@drawhsize by\@newhsize& \multiply\@drawvsize by\@newhsize& \divide\@drawvsize by\@ohsize& \@drawingscale{\the\@newhsize}{\@ohsize} {\the\@newhsize}{\@ohsize}& \fi& fi \else& else \@ovsize=\@drawvsize& \divide\@drawvsize by\@ovsize& \multiply\@drawvsize by\@newvsize& && && Computing hsize \@newhsize=#2& \@drawhsize=\@maxX& \advance\@drawhsize by-\@minX& \ifnum\@newhsize=0& if newhsize=0 \multiply\@drawhsize by\@newvsize& \divide\@drawhsize by\@ovsize& \@drawingscale{\the\@newvsize}{\@ovsize} {\the\@newvsize}{\@ovsize}& \else& else \@ohsize=\@drawhsize& \divide\@drawhsize by\@ohsize& \multiply\@drawhsize by\@newhsize& \@drawingscale{\the\@newhsize}{\@ohsize} {\the\@newvsize}{\@ovsize}& \fi& fi \fi& fi && Infos to the terminal. \typeout{Drawing #1:}& \typeout{\space\space\space Width=\the\@drawhsize pt Heigth=\the\@drawvsize pt}& && && &\@newhsize=\@drawhsize\multiply\@newhsize by \@xscale &\@newvsize=\@drawvsize\multiply\@newvsize by \@yscale \typeout{\space\space\space Scalings: X=\the\@xscale\space Y=\the\@yscale}& &\fbox{& \vbox to\@drawvsize pt{\vfill\hbox to\@drawhsize pt{& {{\@doTeXspecial{#1}\@minX\@minY\@maxX\@maxY& {\expandafter\@numbof\the\@xscale}& {\expandafter\@numbof\the\@yscale}& {#4}}& &\hfill& }}}}& &}& & & \gdef\common@epsf#1[xscale=#2/#3,yscale=#4/#5][ps=#6]{& && Computing hsize \@drawhsize=\@maxX& \advance\@drawhsize by-\@minX& \@scale\@drawhsize at #2/#3& && Computing vsize \@drawvsize=\@maxY& \advance\@drawvsize by-\@minY& \@scale\@drawvsize at #4/#5& && Infos to the terminal. \typeout{Drawing #1:}& \typeout{\space\space\space Width \the\@drawhsize pt=(\@maxX -\@minX)*(#2/#3)Heigth \the\@drawvsize pt=(\@maxY -\@minY)*(#4/#5)}& && &\typeout{*********** #2 #3 #4 #5}& \@drawingscale{#2}{#3}{#4}{#5}& \typeout{\space\space\space Scalings: X=\the\@xscale\space Y=\the\@yscale}& && &\fbox{& \vbox to\@drawvsize pt{\vfill\hbox to\@drawhsize pt{& {{\@doTeXspecial{#1}\@minX\@minY\@maxX\@maxY& {\expandafter\@numbof\the\@xscale}& {\expandafter\@numbof\the\@yscale}& {#6}}& &\hfill& }}}& &}& } \endgroup scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/fullpage.sty000066400000000000000000000015161514310134000267020ustar00rootroot00000000000000% This is FULLPAGE.STY by H.Partl, Version 2 as of 15 Dec 1988. % Document Style Option to fill the paper just like Plain TeX. \typeout{Style Option FULLPAGE Version 2 as of 15 Dec 1988} \topmargin 0pt \advance \topmargin by -\headheight \advance \topmargin by -\headsep \textheight 8.9in \oddsidemargin 0pt \evensidemargin \oddsidemargin \marginparwidth 0.5in \textwidth 6.5in % For users of A4 paper: The above values are suited for american 8.5x11in % paper. If your output driver performs a conversion for A4 paper, keep % those values. If your output driver conforms to the TeX standard (1in/1in), % then you should add the following commands to center the text on A4 paper: % \advance\hoffset by -3mm % A4 is narrower. % \advance\voffset by 8mm % A4 is taller. \endinput scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p.bib000066400000000000000000001122301514310134000252530ustar00rootroot00000000000000@article{amdadu96, author = "Amestoy, P. and Davis, T. and Duff, I.", title = "An approximate minimum degree ordering algorithm", journal = "{SIAM} {J}. {M}atrix {A}nal. and {A}ppl.", volume = "17", pages = "886--905", year = "1996" } @inproceedings{aseilish91, author = "Ashcraft, C. and Eisenstat, S. and Liu, J. W.-H. and Sherman, A.", title = "A comparison of three column based distributed sparse factorization schemes", booktitle = "Proc. Fifth {SIAM} Conf. on Parallel Processing for Scientific Computing", year = "1991", } @article{ashc95, author = "Ashcraft, C.", title = "Compressed Graphs and the Minimum Degree Algorithm", journal = "{SIAM} {J}. {S}ci. {C}omput.", volume = "16", number = "6", pages = "1404--1411", year = "1995", abstract = "Compressing graphs for ordering speed-up", owner = "Francois PELLEGRINI" } @article{basi94, author = "Barnard, S. T. and Simon, H. D.", title = "A fast multilevel implementation of recursive spectral bisection for partitioning unstructured problems", journal = "{C}oncurrency: {P}ractice and {E}xperience", volume = "6", number = "2", pages = "101-117", year = "1994", abstract = "Fast RSB mapping program, with results on standard test graphs", owner = "Francois PELLEGRINI" } @misc{cecill, key = "cecill", title = "{CeCILL}: ``{CEA}-{CNRS}-{INRIA} {L}ogiciel {L}ibre'' free/libre software license", note = "Available from \url{http://www.cecill.info/licenses.en.html}" } @phdthesis{chev07, author = "Chevalier, C.", title = "Conception et mise en o$\!$euvre d'outils efficaces pour le partitionnement et la distribution parall\`eles de probl\`emes num\'eriques de tr\`es grande taille", type = "{T}h\`ese de {D}octorat", school = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", number = "3434", month = sep, year = "2007" } @inproceedings{chpe06a, author = "Chevalier, C. and Pellegrini, F.", title = "Improvement of the Efficiency of Genetic Algorithms for Scalable Parallel Graph Partitioning in a Multi-Level Framework", booktitle = "Proc\@. EuroPar, Dresden", series = "LNCS 4128", pages = "243--252", month = sep, year = "2006", OPTpublisher = "Springer", OPTnote = "{\tt http://\lbt www.\lbo labri.\lbo fr/\lbt \~{}pelegrin/\lbt papers/\lbt scotch\_\lbt efficient\lbo ga.\lbt pdf}" } @Article{chpe08, author = "Chevalier, C. and Pellegrini, F.", title = "\ptscotch: A tool for efficient parallel graph ordering", journal = "{P}arallel {C}omputing", year = "2008", month = "jan", note = "{\tt http://\lbt www.\lbo labri.\lbo fr/\lbt \~{}pelegrin/\lbt papers/\lbt scotch\_\lbt parallel\lbt ordering\_\lbo parcomp.\lbt pdf}" } @article{chro89, author = "Charrier, P. and Roman, J.", title = "Algorithmique et calculs de complexit\'e pour un solveur de type dissections embo\^\i t\'ees", journal = "{N}umerische {M}athematik", volume = "55", pages = "463--476", year = "1989", owner = "Francois PELLEGRINI" } @techreport {chro92a, author = "Charrier, P. and Roman, J.", title = "Partitioning and Mapping for parallel nested dissection on distributed memory architectures", type = "Rapport de recherche", number = "92-12", month = mar, year = "1992", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", } @inproceedings {chro92b, author = "Charrier, P. and Roman, J.", title = "Partitioning and Mapping for parallel nested dissection on distributed memory architectures", booktitle = "Proc\@. CONPAR'92", series = "LNCS 634", pages = "295--306", month = sep, year = "1992", OPTpublisher = "Springer" } @inproceedings {cuma69, author = "Cuthill, E. and Macc~Kee, J.", title = "Reducing the bandwidth of sparse symmetric matrices", booktitle = "Proc. 24th national conference {ACM}", year = "1969", pages = "157--172", publisher = "{ACM}", abstract = "Bisection of the 2D mesh" } @article {doho72, author = "Donath, W. and Hoffman, A.", title = "Algorithms for partitioning of graphs and computer logic based on eigenvectors of connection matrices", journal = "{IBM} {T}echnical {D}isclosure {B}ulletin", volume = "15", year = "1972", pages = "938--944", field = "Sepa, ALGO", abstract = "First historical results on the RSB techniques", owner = "Francois PELLEGRINI" } @article {doho73, author = "Donath, W. and Hoffman, A.", title = "Lower bounds for the partitioning of graphs", journal = "{IBM} {J}ournal of {R}esearch and {D}evelopment", volume = "17", year = "1973", pages = "420--425", field = "Sepa, ALGO", abstract = "First historical results on the RSB techniques", owner = "Francois PELLEGRINI" } @inproceedings{drro94a, author = "van Driessche, R. and Roose, D.", title = "Dynamic load balancing with an improved spectral bisection algorithm", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "494--500", year = "1994", month = may, organization = "IEEE", owner = "Francois PELLEGRINI" } @techreport{drro94b, author = "van Driessche, R. and Roose, D.", title = "A graph contraction algorithm for the calculation of eigenvectors of the laplacian matrix of a graph with a multilevel method", institution = "Katholieke Universiteit Leuven", number = "TW 209", month = may, year = "1994", owner = "Francois PELLEGRINI" } @article{duff81, author = "Duff, I.", title = "On Algorithms for Obtaining a Maximum Transversal", journal = "{ACM} {T}rans. {M}ath. {S}oftware", volume = "7", number = "3", pages = "315--330", month = sep, year = "1981", abstract = "Finding vertex separators from edge separators", owner = "Francois PELLEGRINI" } @techreport{dugrle92, author = "Duff, I. S. and Grimes, R. G. and Lewis, J. G.", title = "Users' guide for the {H}arwell-{B}oeing Sparse Matrix Collection", institution = "CERFACS", number = "TR/PA/92/86", month = oct, year = "1992", address = "Toulouse, France", owner = "Francois PELLEGRINI" } @article {errasa90, author = "Ercal, F. and Ramanujam, J. and Sadayappan, P.", title = "Task allocation onto a hypercube by recursive mincut bipartitionning", journal = "{J}ournal of {P}arallel and {D}istributed {C}omputing", volume = "10", year = "1990", pages = "35--44", field = "Mapp, ALGO", abstract = "Description of mapping on hypercubes using their topology: easy bipartition into sub-hypercubes and strong connection between them", owner = "Francois PELLEGRINI" } @article {fied73, author = "Fiedler, M.", title = "Algebraic connectivity of graphs", journal = "{C}zechoslovak {M}ath. {J}.", volume = "23", year = "1973", pages = "298--305", field = "Sepa, THEO", abstract = "Properties leading to spectral bisection", owner = "Francois PELLEGRINI" } @article {fied75, author = "Fiedler, M.", title = "A property of eigenvectors of non-negative symmetric matrices and its application to graph theory", journal = "{C}zechoslovak {M}ath. {J}.", volume = "25", year = "1975", pages = "619--633", field = "Sepa, THEO", abstract = "Properties leading to spectral bisection", owner = "Francois PELLEGRINI" } @inproceedings {fima82, author = "Fiduccia, C. M. and Mattheyses, R. M.", title = "A linear-time heuristic for improving network partitions", booktitle = "Proceedings of the 19th {D}esign {A}utomation {C}onference", year = "1982", pages = "175--181", publisher = "{IEEE}", field = "Sepa, ALGO", abstract = "Description of an heuristic algorithm, using foxy data structures, achieving separation in almost-linear time by iteratively moving nodes in given sets to minimize a cost function", owner = "Francois PELLEGRINI" } @article {gajost76, author = "Garey, M. R. and Johnson, D. S. and Stockmeyer, L.", title = "Some simplified {NP}-complete graph problems", journal = "{T}heoretical {C}omputer {S}cience", volume = "1", year = "1976", pages = "237--267", field = "Sepa, ALGO", abstract = "Graph bipartitioning is NP-complete", owner = "Francois PELLEGRINI" } @book {gajo79, author = "Garey, M. R. and Johnson, D. S.", title = "{C}omputers and {I}ntractablility: {A} {G}uide to the {T}heory of {NP}-completeness", publisher = "W. H. Freeman", year = "1979", address = "San Francisco" } @article{geheling88, author = "George, A. and Heath, M. T. and Liu, J. W.-H. and Ng, E. G.-Y.", title = "Sparse {C}holesky factorization on a local memory multiprocessor", journal = "{SIAM} {J}ournal on {S}cientific and {S}tatistical {C}omputing", volume = "9", pages = "327--340", year = "1988" } @book {geli81, author = "George, J. A. and Liu, J. W.-H.", title = "Computer solution of large sparse positive definite systems", year = "1981", publisher = "Prentice Hall" } @article {geli89, author = "George, A. and Liu, J. W.-H.", title = "The evolution of the Minimum Degree ordering algorithm", journal = "{SIAM} {R}eview", volume = "31", pages = "1--19", year = "1989" } @article{geng89, author = "Geist, G. A. and Ng, E. G.-Y.", title = "Task scheduling for parallel sparse {C}holesky factorization", journal = "{I}nternational {J}ournal of {P}arallel {P}rogramming", volume = "18", number = "4", pages = "291--314", year = "1989" } @article {gipost76, author = "Gibbs, N. E. and Poole, W. G. and Stockmeyer, P. K.", title = "A comparison of several bandwidth and profile reduction algorithms", journal = "{ACM} Trans. Math. Software", volume = "2", year = "1976", pages = "322--330", field = "bdth about sparse matrices", owner = "Jean ROMAN" } @misc{lgpl, key = "lgpl", title = "{GNU} {L}esser {G}eneral {P}ublic {L}icense", note = "Available from \url{http://www.gnu.org/copyleft/lesser.html}" } @techreport{gukaku94, author = "Gupta, A. and Karypis, G. and Kumar, V.", title = "Highly scalable parallel algorithms for sparse matrix factorization", institution = "{U}niversity of {M}innesota", type = "TR", number = "94-063", year = "1994", OPTnote = "To appear in {\em {IEEE} {T}rans. on {P}arallel and {D}istributed {S}ystems}, 1997" } @inproceedings{gukaku96, author = "Gupta, A. and Karypis, G. and Kumar, V.", title = "Scalable parallel algorithms for sparse linear systems", booktitle = "Proc. {Stratagem'96}, Sophia-Antipolis", pages = "97--110", year = "1996", month = jul, organization = "INRIA", } @article{gukaku97, author = "Gupta, A. and Karypis, G. and Kumar, V.", title = "Highly scalable parallel algorithms for sparse matrix factorization", journal = "{IEEE} {T}rans. {P}arallel {D}istrib. {S}yst.", volume = "8", number = "5", pages = "502--520", year = "1997" } @article {gusu84, author = "Gurari, E. M. and Sudborough, I. H.", title = "Improved Dynamic Algorithms for Bandwidth Minimization and the Mincut Linear Arrangement Problem", journal = "Journal of Algorithms", volume = "5", year = "1984", pages = "531--546", field = "Heuristiques pour bdth and cdth", abstract = "cf. titre", owner = "D.B." } @phdthesis {hamm92, author = "Hammond, S. W.", title = "Mapping unstructured grid computations to massively parallel computers", month = feb, year = "1992", school = "{R}ensselaer {P}olytechnic {I}nstitute", address = "{T}roy, {N}ew-{Y}ork" } @techreport{hele93a, author = "Hendrickson, B. and Leland, R.", title = "Multidimensional spectral load balancing", institution = "{S}andia {N}ational {L}aboratories", number = "SAND93--0074", month = jan, year = "1993", owner = "Francois PELLEGRINI" } @techreport{hele93b, author = "Hendrickson, B. and Leland, R.", title = "A multilevel algorithm for partitioning graphs", institution = "{S}andia {N}ational {L}aboratories", number = "SAND93--1301", month = jun, year = "1993", owner = "Francois PELLEGRINI" } @techreport{hele93c, author = "Hendrickson, B. and Leland, R.", title = "The \sc {C}haco \rm user's guide", institution = "{S}andia {N}ational {L}aboratories", number = "SAND93--2339", month = nov, year = "1993", owner = "Francois PELLEGRINI" } @inproceedings{hele94a, author = "Hendrickson, B. and Leland, R.", title = "An empirical study of static load balancing algorithms", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "682--685", year = "1994", month = may, organization = "IEEE" } @techreport{hele94b, author = "Hendrickson, B. and Leland, R.", title = "The {\sc {C}haco} user's guide -- Version 2.0", institution = "{S}andia {N}ational {L}aboratories", number = "SAND94--2692", year = "1994", owner = "Francois PELLEGRINI" } @inproceedings {hele95, author = "Hendrickson, B. and Leland, R.", title = "A Multilevel Algorithm for Partitioning Graphs", booktitle = "Proc\@. ACM/IEEE conference on Supercomputing (CDROM)", month = "dec", year = "1995", location = "San Diego" } @inproceedings{heledr96, author = "Hendrickson, B. and Leland, R. and Van Driessche, R.", title = "{E}nhancing {D}ata {L}ocality by {U}sing {T}erminal {P}ropagation", booktitle = "Proceedings of the 29$\,^{th}$ Hawaii International Conference on System Sciences", year = "1996", month = jan, organization = "IEEE" } @inproceedings {heledr97, author = "Hendrickson, B. and Leland, R. and Van Driessche, R.", title = "Skewed Graph Partitioning", booktitle = "Proceedings of the 8$^{th}$ {SIAM} {C}onference on {P}arallel {P}rocessing for {S}cientific {C}omputing", month = mar, year = 1997, organization = "IEEE" } @inproceedings{heperaro04a, author = "H\'enon, P. and Pellegrini, F. and Ramet, P. and Roman, J. and Saad, Y.", title = "High Performance Complete and Incomplete Factorizations for Very Large Sparse Systems by using {\sc {S}cotch} and {\sc {P}a{S}ti{X}} softwares", booktitle = "Proc\@. 11$^{th}$ {SIAM} {C}onference on {P}arallel {P}rocessing for {S}cientific {C}omputing, San Francisco, {USA}", month = feb, year = 2004 } @article{hero98, author = "Hendrickson, B. and Rothberg, E.", title = "Improving the Runtime and Quality of Nested Dissection Ordering", journal = "{SIAM} {J}. {S}ci. {C}omput.", volume = "20", number = "2", year = "1998", pages = "468--489", owner = "Francois PELLEGRINI" } @article {hoka73, author = "Hopcroft, J. and Karp, R.", title = "An $n^{5/2}$ Algorithm for Maximum Matchings in Bipartite Graphs", journal = "{SIAM} {J}ournal of {C}omputing", volume = "2", number = "4", month = dec, year = "1973", pages = "225--231", field = "Sepa, ALGO", abstract = "Finding vertex separators from edge separators", owner = "Francois PELLEGRINI" } @techreport{kaku95a, author = "Karypis, G. and Kumar, V.", title = "A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs", institution = "{U}niversity of {M}innesota", type = "Technical Report", number = "95-035", month = jun, year = "1995", owner = "Francois PELLEGRINI" } @techreport{kaku95b, author = "Karypis, G. and Kumar, V.", title = "{\sc Me$\!$T$\!$iS} -- Unstructured Graph Partitioning and Sparse Matrix Ordering System -- Version~2.0", institution = "{U}niversity of {M}innesota", month = jun, year = "1995", owner = "Francois PELLEGRINI" } @techreport{kaku95c, author = "Karypis, G. and Kumar, V.", title = "Multilevel $k$-way Partitioning Scheme for Irregular Graphs", institution = "{U}niversity of {M}innesota", type = "Technical Report", number = "95-064", month = aug, year = "1995", owner = "Francois PELLEGRINI" } @manual{kaku98a, author = "Karypis, G. and Kumar, V.", title = "{\sc Me$\!$T$\!$iS} -- A Software Package for Partitioning Unstructured Graphs, Partitioning Meshes, and Computing Fill-Reducing Orderings of Sparse Matrices -- Version~4.0", organization = "{U}niversity of {M}innesota", month = sep, year = "1998", owner = "Francois PELLEGRINI" } @article {keli70, author = "Kernighan, B. W. and Lin, S.", title = "An efficient heuristic procedure for partitionning graphs", journal = "{BELL} System Technical Journal", month = feb, year = "1970", pages = "291--307", publisher = "{BELL} {C}orporation", field = "Sepa, ALGO", abstract = "Description of an heuristic algorithm achieving separation by iteratively exchanging nodes in given sets to minimize a cost function", owner = "Francois PELLEGRINI" } @article {lafeel94, author = "Laguna, M. and Feo, T. A. and Elrod, H. C.", title = "A greedy randomized adaptative search procedure for the two-partition problem", journal = "{O}perations {R}esearch", month = jul, year = "1994", pages = "677--687", field = "Bipa, ALGO", abstract = "Iterative Adaptative algorithms for graph bipartitioning", owner = "Francois PELLEGRINI" } @techreport{leabdofe92, author = "Leiserson, C. and Abuhamdeh, Z. and Douglas, D. and Feynman, C. and Ganmukhi, M. and Hill, J. and Hillis, W. and Kuszmaul, B. and Pierre, M. and Wells, D. and Wong, M. and Yang, S. and Zak, R.", title = "The Network Architecture of the {C}onnection {M}achine {CM-5}", institution = "{T}hinking {M}achines", month = "juillet", year = "1992", owner = "Francois PELLEGRINI" } @inproceedings {lele87, author = "Leiserson, C. and Lewis, J.", title = "Orderings for parallel sparse symmetric factorization", booktitle = "Third {SIAM} Conference on Parallel Processing for Scientific Computing", year = "1987", location = "Troms\o", organization = "SIAM", abstract = "Finding vertex separators from edge separators", owner = "Francois PELLEGRINI" } @article {lirota79, author = "Lipton, R. J. and Rose, D. J. and Tarjan, R. E.", title = "Generalized nested dissection", journal = "{SIAM} Journal of Numerical Analysis", volume = "16", number = "2", month = apr, year = "1979", pages = "346--358", publisher = "{S}ociety for {I}ndustrial and {A}pplied {M}athematics", field = "Sepa, DESC", abstract = "Use of separation theorems to solve linear systems. Results achieved: bounds for planar graph reordering, only sparse graphs have good separators, not all sparse graphs have good separators.", owner = "Francois PELLEGRINI" } @inproceedings {litsdukl93, author = "Lin, M. and Tsang, R. and Du, D. H. C. and Klietz, A. E. and Saroff, S.", title = "Performance Evaluation of the {CM-5} Interconnection Network", booktitle = "Proceedings of CompCon Spring'93", year = "1993", abstract = "The bandwidth of the CM-5 is constant over the levels" } @phdthesis {liu-75, author = "Liu, J. W.", title = "On reducing the profile of sparse symmetric matrices", school = "{U}niversity of {W}aterloo", year = "1975", address = "{W}aterloo, {O}ntario", } @article {liu-85, author = "Liu, J. W.-H.", title = "Modification of the minimum-degree algorithm by multiple elimination", journal = "{ACM} {T}rans. {M}ath. {S}oftware", volume = "11", number = "2", year = 1985, pages = "141--153", field = "Orde, ALGO", abstract = "Description of the Multiple Minimum Degree algorithm", owner = "Francois PELLEGRINI" } @misc{mpi11, key = "mpi11", title = "{MPI}: {A} {M}essage {P}assing {I}nterface {S}tandard, version 1.1", month = "jun", year = 1995, note = "Available from \url{http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html}" } @misc{oinv, key = "oinv", title = "{SGI} {O}pen {I}nventor", note = "Available from \url{http://oss.sgi.com/projects/inventor/}" } @manual{ParMetis, title = "{\sc ParMetis}: Parallel Graph Partitioning and Sparse Matrix Ordering Library", author = "Karypis, G. and Kumar, V.", organization = "University of Minnesota", month = "aug", year = "2003" } @manual{pci-93, title = "{CS-2} {P}roduct {D}escription", organization = "{P}erformance {C}omputing {I}ndustries", year = "1993" } @Article{pell93d, author = "Pellegrini, F.", title = "Bounds for the Bandwidth of the $d$-ary de~{B}ruijn graph", journal = "Parallel Processing Letters", year = "1993", volume = "3", number = "4", pages = "431--443" } @inproceedings{pell94a, author = "Pellegrini, F.", title = "Static Mapping by Dual Recursive Bipartitioning of Process and Architecture Graphs", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "486--493", year = "1994", month = may, organization = "IEEE" } @inproceedings{pell94b, author = "Pellegrini, F.", title = "Placement statique par bipartitionnement r\'ecursif conjoint des graphes de processus et d'architecture", booktitle = "Actes des 6\/${}^{\grave{e}mes}$ Rencontres Francophones du Parall\'elisme, RenPar'6, Lyon", pages = "41--44", year = "1994", month = jun, organization = "ENS Lyon" } @phdthesis{pell95a, author = "Pellegrini, F.", title = "Application de m\'ethodes de partition \`a la r\'esolution de probl\`emes de graphes issus du parall\'elisme", type = "{T}h\`ese de {D}octorat", school = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", number = "1244", month = jan, year = "1995", address = "351 cours de la Lib\'eration, 33405 Talence, France", owner = "Francois PELLEGRINI" } @inproceedings{pell07b, author = "Pellegrini, F.", title = "A parallelisable multi-level banded diffusion scheme for computing balanced partitions with smooth boundaries", booktitle = "Proc\@. EuroPar, Rennes", series = "LNCS 4641", pages = "191--200", month = aug, year = "2007", OPTeditor = "A.-M. Kermarrec, L. Boug\'e, T. Priol", OPTpublisher = "Springer", OPTnote = "{\tt http://\lbt www.\lbo labri.\lbo fr/\lbt \~{}pelegrin/\lbt papers/\lbt scotch\_\lbt bipart\_\lbt diffusion\_\lbt europar2007.\lbt pdf}" } @techreport{pell07c, author = "Pellegrini, F.", title = "{\sc {S}cotch 5.0} {U}ser's {G}uide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2007", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @TechReport{pell07d, author = "Pellegrini, F.", title = "{\sc {PT}-{S}cotch 5.0} \mbox{U}ser's guide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2007", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @techreport{pell08b, author = "Pellegrini, F.", title = "{\sc {S}cotch 5.1} {U}ser's {G}uide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2008", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @TechReport{pell08c, author = "Pellegrini, F.", title = "{\sc {PT}-{S}cotch 5.1} \mbox{U}ser's guide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2008", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @inproceedings{pero96a, author = "Pellegrini, F. and Roman, J.", title = "{\sc Scotch}: A Software Package for Static Mapping by Dual Recursive Bipartitioning of Process and Architecture Graphs", booktitle = "Proc\@. {HPCN'96}, Brussels", series = "LNCS 1067", pages = "493--498", month = apr, year = "1996" } @techreport{pero96b, author = "Pellegrini, F. and Roman, J.", title = "Experimental Analysis of the Dual Recursive Bipartitioning Algorithm for Static Mapping", type = "{R}esearch {R}eport", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "1996", note = "Available from \url{http://www.labri.fr/~pelegrin/papers/scotch_expanalysis.ps.gz}" } @inproceedings{pero97a, author = "Pellegrini, F. and Roman, J.", title = "{S}parse matrix ordering with {\sc {S}cotch}", booktitle = "Proc\@. {HPCN'97}, Vienna", series = "LNCS 1225", pages = "370--378", month = apr, year = "1997" } @inproceedings{peroam99, author = "Pellegrini, F. and Roman, J. and Amestoy, P.", title = "Hybridizing Nested Dissection and Halo Approximate Minimum Degree for Efficient Sparse Matrix Ordering", booktitle = "Proc\@. {Irregular'99}, San Juan", series = "LNCS 1586", pages = "986--995", month = apr, year = "1999" } @article{peroam00a, author = "Pellegrini, F. and Roman, J. and Amestoy, P.", title = "Hybridizing Nested Dissection and Halo Approximate Minimum Degree for Efficient Sparse Matrix Ordering", journal = "{C}oncurrency: {P}ractice and {E}xperience", year = "2000", volume = "12", pages = "69--84" } @article {pofa90, author = "Pothen, A. and Fan, C.-J.", title = "Computing the Block Triangular Form of a Sparse Matrix", journal = "{ACM} {T}rans. {M}ath. {S}oftware", volume = "16", number = "4", month = dec, year = "1990", pages = "303--324", field = "Sepa, ALGO", abstract = "Finding vertex separators from edge separators", owner = "Francois PELLEGRINI" } @article {posili90, author = "Pothen, A. and Simon, H. D. and Liou, K.-P.", title = "Partitioning sparse matrices with eigenvectors of graphs", journal = "{SIAM} {J}ournal of {M}atrix {A}nalysis", volume = "11", number = "3", month = jul, year = "1990", pages = "430--452", field = "Sepa, THEO ALGO", abstract = "Global method for bipartitioning a graph based on sparse matrix considerations", owner = "Francois PELLEGRINI" } @article {roha89, author = "Roucairol, C. and Hansen, P.", title = "Cut cost minimization in graph partitioning", journal = "{N}umerical and {A}pplied {M}athematics", year = "1989", pages = "585--587", publisher = "{S}cientific {P}ublishing", field = "Sepa, THEO ALGO", abstract = "Description of a mincut algorithm with constrained vertex sets sizes based on quadratic assignment with Lagrangean relaxation", owner = "Francois PELLEGRINI" } @inproceedings{rogu93, author = "Rothberg, E. and Gupta, A.", title = "An efficient block-oriented approach to parallel sparse {C}holesky factorization", booktitle = "{S}upercomputing'93 {P}roceedings", year = "1993", organization = "IEEE" } @inproceedings{rosc94, author = "Rothberg, E. and Schreiber, R.", title = "Improved load distribution in parallel sparse {C}holesky factorization", booktitle = "{S}upercomputing'94 {P}roceedings", year = "1994", organization = "IEEE" } @inproceedings{roth94, author = "Rothberg, E.", title = "Performance of panel and block approaches to sparse {C}holesky factorization on the {iPSC/860} and {P}aragon multicomputers", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "324--333", year = "1994", month = may, organization = "IEEE" } @article {roma85, author = "Roman, J.", title = "Calculs de complexit\'e relatifs \`a une m\'ethode de dissection embo\^\i t\'ee", journal = "{N}umerische {M}athematik", volume = "47", year = "1985", pages = "175--190" } @book {rume94, author = "de Rumeur, J.", title = "Communication dans les r\'eseaux de processeurs", month = oct, year = "1994", publisher = "Masson", abstract = "Plein de resultats sur les graphes", owner = "Andre RASPAUD", } @mastersthesis{scar96, author = "Scarano, L.", title = "Metodologie di allocazione statica con algoritmi di bipartizionamento multilevelo", school = "{F}acolt\'a di {I}ngegneria, {U}niversit\`a degli {S}tudi di {B}ologna", type = "{T}esi di {L}aurea", month = mar, year = "1996", owner = "Francois PELLEGRINI" } @inbook {sero85, author = "Seymour, P. D. and Robertson, N.", chapter = "Graph minors -- {A} survey", title = "Surveys in combinatorics", year = "1985", pages = "153--171", editor = "Ian Anderson", publisher = "Cambridge University Press", abstract = "blublu", owner = "Dominique BARTH", } @techreport{shre92, author = "Schreiber, R.", title = "Scalability of sparse direct solvers", institution = "{RIACS}, {NASA} {A}mes {R}esearch {C}enter", type = "Technical Report", number = "TR 92.13", month = may, year = "1992", owner = "Francois PELLEGRINI" } @article{simo91, author = "Simon, H. D.", title = "Partitioning of unstructured problems for parallel processing", journal = "{C}omputing {S}ystems in {E}ngineering", volume = "2", pages = "135-148", year = "1991", abstract = "blublu", owner = "Francois PELLEGRINI" } @techreport{site93, author = "Simon, H. D. and Teng, S.-H.", title = "How good is recursive bipartition", type = "Research report", institution = "{NASA} {A}mes {R}esearch {C}enter", month = jun, year = "1993", abstract = "Theoretical proof of goodness of bipartition for some families of graphs, based on Lipton and Tarjan separators", owner = "Francois PELLEGRINI" } @techreport{shsz91, author = "Shahrokhi, F. and Szekely, L. A.", title = "An algebraic approach to the uniform concurrent multicommodity flow -- {T}heory and Applications", institution = "University of North Texas", number = "CRPDC-91-4", year = "1991", owner = "Dominique BARTH" } @article {shts85, author = "Shen, C.-C. and Tsai, W.-H.", title = "A graph matching approach to optimal task assignment in distributed computing systems using a minimax criterion", journal = "{IEEE} {T}ransactions on {C}omputers", volume = "C-34", number = "3", month = mar, year = "1985", pages = "197--203", field = "Mapp, ALGO", abstract = "A B&B A* mapping algorithm", owner = "Francois PELLEGRINI" } @article {sinc87, author = "Sinclair, J. B.", title = "Efficient computation of optimal assignments for distributed tasks", journal = "{J}ournal of {P}arallel and {D}istributed {C}omputing", volume = "4", year = "1987", pages = "342--362", field = "Mapp, ALGO", abstract = "A B&B A* mapping algorithm", owner = "Francois PELLEGRINI" } @inproceedings {smar76, author = "Smith, W. F. and Arany, I.", title = "Another algorithm for reducing bandwidth and profile of a sparse matrix", booktitle = "Proc. AFIPS 1976 NCC", year = "1976", pages = "341--352", publisher = "AFIP Press", address = "Montvale, New Jersey" } @article{ston77, author = "Stone, H. S.", title = "Multiprocessor scheduling with the aid of network flow algorithms", journal = "{IEEE} {T}ransactions on {S}oftware {E}ngineering", volume = "SE 3", number = "2", month = jan, year = "1977", pages = "85--93", field = "Mapp, ALGO", abstract = "Self-explanatory", owner = "Francois PELLEGRINI" } @techreport {tamu92, author = "Talbi, E.-G. and Muntean, T.", title = "\'Evaluation et \'etude comparative d'algorithmes d'optimisation combinatoire: application au probl\`eme de placement de processus", institution = "LGI-IMAG", address = "46 av. {F}. {V}iallet, 38031 {G}renoble {CEDEX}", type = "Rapport de Recherche", number = "RR~886-I", month = apr, year = "1992", field = "Mapp, SURV ALGO", abstract = "Good survey of mapping algorithms & techniques, with comparisons; Presentation of a parallel genetic algorithm", owner = "Francois PELLEGRINI" } @article {tiwa67, author = "Tinney, W. F. and Walker, J. W.", title = "Direct solutions of sparse network equations by optimally ordered triangular factorization", journal = "{J}. {P}roc. {IEEE}", volume = "55", year = "1967", pages = "1801--1809" } @inproceedings {wacrevjo95, author = "Walshaw, C. and Cross, M. and Everett, M. G. and Johnson, S. and McManus, K.", title = "Partitioning \& Mapping of Unstructured Meshes to Parallel Machine Topologies", booktitle = "Proc\@. {Irregular'95}", series = "LNCS 980", pages = "121--126", year = "1995" } @article {waro84, author = "Ward, M. O. and Romero, D. J.", title = "Assigning parallel-executable, intercommunicating subtasks to processors", journal = "{IEEE}", year = "1984", pages = "392--394", field = "Mapp, ALGO", abstract = "Description of cost functions for greedy mapping algorithms using criteria of `loss of parallelism', `synchronization', and `data sources' to place subtasks issued from sequential program automatic paralllization", owner = "Francois PELLEGRINI" } @misc{webmetis-parmetis, key = "karypis-metis-parmetis", title = "{\metis}: {F}amily of Multilevel Partitioning Algorithms", note = "\url{http://glaros.dtc.umn.edu/gkhome/views/metis}" } @inproceedings {yokaka75, author = "Yoshizawa, H. and Kawanishi, H. and Kani, K.", title = "A Heuristic procedure for ordering {MOS} arrays", booktitle = "Proc\@. of Design Automation Conference", year = "1975", pages = "384--393" } @inproceedings{zovake94, author = "Zone, O. and Vanderstraeten, D. and Keunings, R.", title = "Un solveur direct parall\`ele bas\'e sur une d\'ecomposition de domaine appliqu\'e aux probl\`emes d'\'el\'ements finis", booktitle = "Actes des 6\/${}^{\grave{e}mes}$ Rencontres Francophones du Parall\'elisme, RenPar'6, Lyon", pages = "113--118", year = "1994", month = jun, organization = "ENS Lyon" } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p.tex000066400000000000000000000223331514310134000253230ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p.tex % % Sujet : PT-Scotch user's guide % % Document body % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pdflatex -sPAPERSIZE=a4 p.tex % dvips -sPAPERSIZE=a4 p.dvi -o ptscotch_userX.X.ps % ps2pdf -sPAPERSIZE=a4 ptscotch_userX.X.ps ptscotch_userX.X.pdf %% Formatage et pagination. \documentclass{article} \usepackage{a4} \usepackage{url} \usepackage{hyperref} \usepackage{breakurl} \hypersetup{pdfborder={0 0 0},colorlinks=false} \usepackage{xspace} \usepackage[dvips]{graphicx} %\documentstyle[11pt,a4,fullpage,epsf]{article} %\textwidth 16.0cm %\oddsidemargin -0.5cm %\evensidemargin -0.5cm %\marginparwidth 0.0cm %\marginparsep 0.0cm %\marginparpush 0.0cm %\topmargin 0.5cm %\headheight 0.0cm %\headsep 0.0cm %\textheight 25.0cm %\footheight 0.0cm %\footskip 0.0cm \sloppy % Gestion des overfull hbox \renewcommand{\baselinestretch}{1.05} % Hauteur lignes x 1.05 \setcounter{secnumdepth}{3} % Sous-sous-sections numerotees \setcounter{tocdepth}{3} % Sous-sous-sections dans la table %% Macros et commandes utiles. \makeatletter \@definecounter{enumv} % 8 niveaux d'itemizations \@definecounter{enumvi} \@definecounter{enumvii} \@definecounter{enumviii} \def\itemize{\ifnum \@itemdepth >8 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi} \let\enditemize =\endlist \def\@iteme[#1]{\if@noparitem \@donoparitem % Item long pour options \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}\fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \setbox\@tempboxa\hbox{#1}\relax \hskip \itemindent \hskip -\parindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa > \labelwidth \box\@tempboxa\hfil\break \else \hbox to\labelwidth{\box\@tempboxa\hfil}\relax \hskip \labelsep \fi \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi \ignorespaces} \def\iteme{\@ifnextchar [{\@iteme}{\@noitemargtrue \@iteme[\@itemlabel]}} \let\@Hxfloat\@xfloat \def\@xfloat#1[{\@ifnextchar{H}{\@HHfloat{#1}[}{\@Hxfloat{#1}[}} \def\@HHfloat#1[H]{% \expandafter\let\csname end#1\endcsname\end@Hfloat \vskip\intextsep\def\@captype{#1}\parindent\z@ \ignorespaces} \def\end@Hfloat{\vskip \intextsep} \makeatother \def\progsyn{\item[{\makebox[1.5em][l]{\bf Synopsis}}]\ ~\linebreak[0]\\*[1em]} \def\progdes{\item[{\makebox[1.5em][l]{\bf Description}}]\ ~\linebreak[0]\\*[1em]} \def\progopt{\item[{\makebox[1.5em][l]{\bf Options}}]~\linebreak[0]} \def\progret{\item[{\makebox[1.5em][l]{\bf Return values}}]~\linebreak[0]} \newcommand{\bn}{\begin{displaymath}} % Equations non-numerotees \newcommand{\en}{\end{displaymath}} \newcommand{\bq}{\begin{equation}} % Equations numerotees \newcommand{\eq}{\end{equation}} \newcommand{\lbo}{\linebreak[0]} \newcommand{\lbt}{\linebreak[2]} \newcommand{\noi}{{\noindent}} % Pas d'indentation \newcommand{\spa}{{\protect \vspace{\bigskipamount}}} % Espace vertical \newcommand{\eg}{\textit{e\@.g\@.}\xspace} % e.g. \newcommand{\ie}{\textit{i\@.e\@.}\xspace} % i.e. \newcommand{\chaco}{{\sc Chaco}} % "Chaco" \newcommand{\metis}{\mbox{\sc Me$\!$T$\!$iS}} % "MeTiS" \newcommand{\parmetis}{\mbox{\sc ParMe$\!$T$\!$iS}} \newcommand{\scotch}{{\sc Scotch}} % "Scotch" \newcommand{\libscotch}{{\sc libScotch}} % "libScotch" \newcommand{\libscotchmetis}{{\sc libScotchMeTiS}} % "libScotchMeTiS" \newcommand{\ptscotch}{{\sc PT-Scotch}} % "PT-Scotch" \newcommand{\libptscotch}{{\sc libPTScotch}} % "libPTScotch" \newcommand{\eqdef}{\stackrel{\scriptscriptstyle \rm def}{=}} % = as definition \newcommand{\isapprox}{\mathop{\approx}\limits} \newcommand{\lefta}{\longleftarrow} \newcommand{\rghta}{\longrightarrow} \newcommand{\botha}{\longleftrightarrow} \newcommand{\Lefta}{\Longleftarrow} \newcommand{\Rghta}{\Longrightarrow} \newcommand{\Botha}{\Longleftrightarrow} \newcommand{\HY}{{\rm H}} % H \newcommand{\KP}{{\rm K}} % K \newcommand{\MK}[1]{{\rm M}_{#1}} % Mk \newcommand{\MD}{\MK{2}} % M2 \newcommand{\PA}{{\rm P}} % P \newcommand{\UB}{{\rm UB}} % UB \newcommand{\SE}{{\rm SE}} % SE \newcommand{\FFT}{{\rm FFT}} % FFT \newcommand{\BF}{{\rm BF}} % BF \newcommand{\BFB}{{\overline{\rm BF}}} % BF bar \newcommand{\CCC}{{\rm CCC}} % CCC \newcommand{\CCCB}{{\overline{\rm CCC}}} % CCC bar \newcommand{\roo}[1]{{\rho_{\scriptscriptstyle {#1}}}} % Rho avec petit argument \newcommand{\too}[1]{{\tau_{\scriptscriptstyle {#1}}}} % Tau avec petit argument \newcommand{\xio}[1]{{\xi_{\scriptscriptstyle {#1}}}} % Xi avec petit argument \newcommand{\SB}[1]{{\cal C}'_S\left({#1}\right)} % Comportement en espace \newcommand{\TB}[1]{{\cal C}'_T\left({#1}\right)} % Comportement en temps \newcommand{\SC}[1]{{\cal C}_S\left({#1}\right)} % Complexite en espace \newcommand{\TC}[1]{{\cal C}_T\left({#1}\right)} % Complexite en temps \newcommand{\dmap}{\mbox{$\delta_{map}$}} \newcommand{\dexp}{\mbox{$\delta_{exp}$}} \newcommand{\mmap}{\mbox{$\mu_{map}$}} \newcommand{\mdil}{\mbox{$\mu_{dil}$}} \newcommand{\mcom}{\mbox{$\mu_{com}$}} \newcommand{\mexp}{\mbox{$\mu_{exp}$}} \newcommand{\NNZ}{\mbox{NNZ}} \newcommand{\OPC}{\mbox{OPC}} \newcommand{\hnbr}{\mbox{$h_{\rm nbr}$}} \newcommand{\hmin}{\mbox{$h_{\rm min}$}} \newcommand{\hmax}{\mbox{$h_{\rm max}$}} \newcommand{\havg}{\mbox{$h_{\rm avg}$}} \newcommand{\hdlt}{\mbox{$h_{\rm dlt}$}} %% Version du document. \input{../version.tex} \newcommand{\scotchcitepuser}{\protect\cite{pell08c}} \newcommand{\scotchcitesuser}{\protect\cite{pell08b}} %% Page de garde. \begin{document} \date{\today} \title{\includegraphics[scale=0.8]{../misc/ptscotch_logo_color.ps}\\[1em] {\LARGE\bf \ptscotch\ and \libptscotch\ {\sc \scotchver} \mbox{User's Guide}}\\[1em]% {\normalsize (version \scotchversub)} } \author{Fran\c cois Pellegrini\\ Universit\'e de Bordeaux \& LaBRI, UMR CNRS 5800\\ TadAAM team, INRIA Bordeaux Sud-Ouest\\ 351 cours de la Lib\'eration, 33405 TALENCE, FRANCE\\ {\tt pelegrin@labri.fr}} \maketitle \begin{abstract} This document describes the capabilities and operations of \ptscotch\ and \libscotch, a software package and a software library which compute parallel static mappings and parallel sparse matrix block orderings of distributed graphs. It gives brief descriptions of the algorithms, details the input/output formats, instructions for use, installation procedures, and provides a number of examples. \ptscotch\ is distributed as free/libre software, and has been designed such that new partitioning or ordering methods can be added in a straightforward manner. It can therefore be used as a testbed for the easy and quick coding and testing of such new methods, and may also be redistributed, as a library, along with third-party software that makes use of it, either in its original or in updated forms. \end{abstract} \clearpage %% Table des matieres. \tableofcontents %% Corps du document. \input{p_i.tex} % Introductions \input{p_c.tex} % Changes since previous versions \input{p_f.tex} % Formats de fichiers \input{p_p.tex} % Programmes \input{p_l.tex} % Bibliotheque \input{p_d.tex} % Distribution \input{p_e.tex} % Relevant examples %\input{p_n.tex} % Addition of a new method %% Remerciements. \section*{Credits} I wish to thank all of the following people: \begin{itemize} \item C\'edric Chevalier, during his PhD at LaBRI, did research on efficient parallel matching algorithms and coded the parallel multilevel algorithm of \ptscotch. He also studied parallel genetic refinement algorithms. Many thanks to him for the great job! \item Amaury Jacques improved the development environment and contributed to the consistency checking and non-regression testing routines; \item Selmane Lebdaoui coded the prototype of the threaded version of the distributed coarse graph building algorithm; \item Yves Secretan contributed to the MinGW32 port. \end{itemize} %% Bibliographie. \bibliographystyle{plain} \bibliography{p} \end{document} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_c.tex000066400000000000000000000074611514310134000256320ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p_c.tex % % Sujet : Manuel de l'utilisateur % % du projet 'PT-Scotch' % % Changes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Updates} \label{sec-changes} \subsection{Changes from version 6.0} Thread management in \scotch\ is now dynamic. This allows the user to control dynamically the number of threads that are used by the threaded algorithms of the \libptscotch\ and \libscotch\ libraries and, consequently, by the \ptscotch\ standalone programs that call them. Users can control concurrency in the \libptscotch\ by using \texttt{SCOTCH\_\lbt Context} objects. These objects define user-configurable execution contexts, in which \libptscotch\ library routines can be executed independently from others. Execution contexts also comprise option values, which dynamically determine the behavior of the \scotch\ routines. In previous versions, such behavior was controlled at compile-time by flags \texttt{COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} and \texttt{SCOTCH\_\lbt DETERMINISTIC}. It is now possible to define these flags dynamically, using the relevant option setting routine. Please refer to the \scotch\ user's manual for a comprehensive description of \texttt{SCOTCH\_\lbt Context} features. Thanks to this new model, \ptscotch\ can use multi-threaded algorithms when several threads are available per MPI node. Two levels of multi-threading are available: multi-threading with a single thread handling MPI communications, and multi-threading with several threads being able to perform MPI communication simultaneously. This behavior is controlled at compile-time by flags \texttt{SCOTCH\_\lbt PTHREAD} and \texttt{SCOTCH\_\lbt PTHREAD\_\lbt MPI}. Please refer to section \ref{sec-lib-thread} for more information. \\ Support for CMake has been added. \subsection{Changes from version 5.0} \ptscotch\ now provides routines to compute in parallel partitions of distributed graphs. A new integer index type has been created in the Fortran interface, to address array indices larger than the maximum value which can be stored in a regular integer. Please refer to Section~\ref{sec-install-inttypesize} for more information. A new set of routines has been designed, to ease the use of the \libscotch\ as a dynamic library. The {\tt SCOTCH\_\lbt version} routine returns the version, release and patchlevel numbers of the library being used. The {\tt SCOTCH\_\lbt *Alloc} routines, which are only available in the C interface at the time being, dynamically allocate storage space for the opaque API \scotch\ structures, which frees application programs from the need to be systematically recompiled because of possible changes of \scotch\ structure sizes. \subsection{Changes from version 5.1} Unlike its sequential counterpart, version {\sc 6.0} of \ptscotch\ does not bring major algorithmic improvements with respect to the latest {\sc 5.1.12} release of the {\sc 5.1} branch. In order to ease the work of people writing numerical solvers, it exposes in its interface a new distributed graph handling routine, {\tt SCOTCH\_\lbt dgraph\lbt Redist}, that builds a redistributed graph from an existing distributed graph and partition data. See Section~\ref{sec-lib-func-dgraphredist}. \subsection{Changes from version 6.1} The prototype \texttt{Dmesh} distributed mesh data type has been created, to allow one to compute dual distributed graphs, using the \texttt{dmeshDgraphDual\,()} routine (see Section~\ref{sec-lib-func-dmeshdgraphdual}). This routine, and others, allowed for the addition of the \texttt{ParMETIS\_\lbt V3\_\lbt Mesh2Dual\,()} routine to the \parmetis\ compatibility module (see Section~\ref{sec-lib-func-parmetis-meshtodual}). scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_d.tex000066400000000000000000000122321514310134000256230ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p_d.tex % % Sujet : Manuel de l'utilisateur % % du projet 'PT-Scotch' % % Distribution programmes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Installation} \label{sec-install} Version {\sc \scotchver} of the \scotch\ software package, which contains the \ptscotch\ routines, is distributed as free/libre software under the CeCILL-C free/libre software license~\cite{cecill}, which is very similar to the GNU LGPL license. Therefore, it is not distributed as a set of binaries, but instead in the form of a source distribution, which can be downloaded from the \scotch\ Inria GitLab repository at \url{https://gitlab.inria.fr/scotch/scotch}~. \\ All \scotch\ users are welcome to send an e-mail to the author so that they can be added to the \scotch\ mailing list, and be automatically informed of new releases and publications. \\ The extraction process will create a {\tt scotch\_\scotchversub} directory, containing several subdirectories and files. Please refer to the files called {\tt LICENSE\_\lbt EN.txt} or {\tt LICENCE\_\lbt FR.txt}, as well as file {\tt INSTALL\_\lbt EN.txt}, to see under which conditions your distribution of \scotch\ is licensed and how to install it. \subsection{Thread issues} To enable the use of POSIX threads in some routines, the {\tt SCOTCH\_\lbt PTHREAD} flag must be set. If this flag is defined, make sure to use the \texttt{MPI\_\lbt Init\_\lbt thread()} routine to initialize the communication subsystem. The {\tt SCOTCH\_\lbt PTHREAD\_\lbt MPI} flag can also be set if the application software is likely to use the \texttt{MPI\_\lbt THREAD\_\lbt MULTIPLE} level (see Section~\ref{sec-lib-thread}). \subsection{File compression issues} To enable on-the-fly compression and decompression of various formats, the relevant flags must be defined. These flags are {\tt COMMON\_\lbt FILE\_\lbt COMPRESS\_\lbt BZ2} for {\tt bzip2} (de)compression, {\tt COMMON\_\lbt FILE\_\lbt COMPRESS\_\lbt GZ} for {\tt gzip} (de)compression, and {\tt COMMON\_\lbt FILE\_\lbt COMPRESS\_\lbt LZMA} for {\tt lzma} decompression. Note that the corresponding development libraries must be installed on your system before compile time, and that compressed file handling can take place only on systems which support multi-threading or multi-processing. In the first case, you must set the {\tt COMMON\_\lbt PTHREAD} and {\tt COMMON\_\lbt PTHREAD\_\lbt FILE} flags in order to take advantage of these features. On Linux systems, the development libraries to install are {\tt libbzip2\_1-\lbt devel} for the {\tt bzip2} format, {\tt zlib1-\lbt devel} for the {\tt gzip} format, and {\tt liblzma0-\lbt devel} for the {\tt lzma} format. The names of the libraries may vary according to operating systems and library versions. Ask your system engineer in case of trouble. \subsection{Machine word size issues} \label{sec-install-inttypesize} The integer values handled by \scotch\ are based on the {\tt SCOTCH\_\lbt Num} type, which equates by default to the {\tt int} C type, corresponding to the {\tt INTEGER} Fortran type, both of which being of machine word size. To coerce the length of the {\tt SCOTCH\_\lbt Num} integer type to 32 or 64 bits, one can use the ``{\tt -DINTSIZE32}'' or ``{\tt -DINTSIZE64}'' flags, respectively, or else use the ``{\tt -DINT=}'' definition, at compile time. For instance, adding ``{\tt -DINT=long}'' to the {\tt CFLAGS} variable in the {\tt Makefile.inc} file to be placed at the root of the source tree will make all {\tt SCOTCH\_\lbt Num} integers become {\tt long} C integers. Whenever doing so, make sure to use integer types of equivalent length to declare variables passed to \scotch\ routines from caller C and Fortran procedures. Also, because of API conflicts, the \metis\ compatibility library will not be usable. It is usually safer and cleaner to tune your C and Fortran compilers to make them interpret {\tt int} and {\tt INTEGER} types as 32 or 64 bit values, than to use the aforementioned flags and coerce type lengths in your own code. Fortran users also have to take care of another size issue: since there are no pointers in Fortran~77, the Fortran interface of some routines converts pointers to be returned into integer indices with respect to a given array (\eg, see Section~\ref{sec-lib-func-dgraphdata}). For 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type, {\tt SCOTCH\_Idx}. To coerce the length of this index type to 32 or 64 bits, one can use the ``{\tt -DIDXSIZE32}'' or ``{\tt -DIDXSIZE64}'' flags, respectively, or else use the ``{\tt -DIDX=}'' definition, at compile time. For instance, adding ``{\tt -DIDX="long~long"}'' to the {\tt CFLAGS} variable in the {\tt Makefile.inc} file to be placed at the root of the source tree will equate all {\tt SCOTCH\_\lbt Idx} integers to C {\tt long long} integers. By default, when the size of {\tt SCOTCH\_\lbt Idx} is not explicitly defined, it is assumed to be the same as the size of {\tt SCOTCH\_\lbt Num}. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_e.tex000066400000000000000000000057571514310134000256420ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p_e.tex % % Sujet : Manuel de l'utilisateur % % du projet 'PT-Scotch' % % Exemples d'utilisation % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Examples} \label{sec-examples} This section contains chosen examples destined to show how the programs of the \ptscotch\ project interoperate and can be combined. It is assumed that parallel programs are launched by means of the {\tt mpirun} command, which comprises a {\tt -np} option to set the number of processes on which to run them. Character ``{\tt\bf \%}'' in bold represents the shell prompt. \begin{itemize} \item Create a distributed source graph file of $7$ fragments from the centralized source graph file {\tt brol.grf} stored in the current directory of process $0$ of the MPI environment, and stores the resulting fragments in files labeled with the proper number of processors and processor ranks. \\ \noi {\tt {\bf\%} mpirun -np 7 dgscat brol.grf brol-\%p-\%r.dgr } \item Compute on $3$ processors the ordering of graph {\tt brol.grf}, to be saved in a file called {\tt brol.ord} written by process $0$ of the MPI environment. \\ \noi {\tt {\bf\%} mpirun -np 7 dgord brol.grf brol.ord } \item Compute on $4$ processors the first three levels of nested dissection of graph {\tt brol.grf}, and create an {\sc Open Inventor} file called {\tt brol.iv} to show the resulting separators and leaves. \\ \noi {\tt {\bf\%} mpirun -np 4 dgord brol.grf /dev/null '-On\{sep=\lbt /(levl\lbt <\lbt 3)\lbt ?\lbt m\{\lbt asc=\lbt b\{strat=\lbt q\{\lbt strat=\lbt f\}\},\lbt low=\lbt q\{\lbt strat=\lbt h\},\lbt seq=\lbt q\{\lbt strat=\lbt m\{low=\lbt h,asc=\lbt b\{\lbt strat=\lbt f\}\}\}\};,\lbt ole=\lbt s,\lbt ose=\lbt s,\lbt osq=\lbt n\{\lbt sep=\lbt /(levl\lbt <\lbt 3)\lbt ?\lbt m\{asc=\lbt b\{\lbt strat=\lbt f\},\lbt low=\lbt h\};\}\}' -mbrol.map \\ {\bf\%} gout brol.grf brol.xyz brol.map brol.iv } \item Compute on $4$ processors an ordering of the compressed graph {\tt brol.\lbt grf.\lbt gz}, and output the resulting ordering on compressed form. \\ \noi {\tt {\bf\%} mpirun -np 4 dgord brol.grf.gz brol.ord.gz } \item Recompile a program that used \parmetis\ so that it uses \ptscotch\ instead. \\ \noi {\tt {\bf\%} mpicc brol.c -o brol -I\$\{parmetisdir\} -lptscotchparmetis -lptscotch -lptscotcherr -lparmetis -lmetis -lm} \spa \noi Note that the ``{\tt -lptscotch\lbt parmetis}'' option must be placed before the ``{\tt -lparmetis}'' one, so that routines that are redefined by \ptscotch\ are selected instead of their \parmetis\ counterpart. When no other \parmetis\ routines than the ones redefined by \ptscotch\ are used, the ``{\tt -lparmetis -lmetis}'' options can be omitted. The ``{\tt -I\$\{parmetisdir\}} option may be necessary to provide the path to the original {\tt parmetis.h} include file, which contains the prototypes of all of the \parmetis\ routines. \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f.tex000066400000000000000000000227331514310134000256340ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_f.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Formats de fichiers 5.0 % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Files and data structures} \label{sec-file} For the sake of portability and readability, all the data files shared by the different programs of the \scotch\ project are coded in plain ASCII text exclusively. Although we may speak of ``lines'' when describing file formats, text-formatting characters such as newlines or tabulations are not mandatory, and are not taken into account when files are read. They are only used to provide better readability and understanding. Whenever numbers are used to label objects, and unless explicitely stated, {\bf numberings always start from zero}, not one. \subsection{Distributed graph files} \label{sec-file-dsgraph} Because even very large graphs are most often stored in the form of centralized files, the distributed graph loading routine of the \ptscotch\ package, as well as all parallel programs which handle distributed graphs, are able to read centralized graph files in the \scotch\ format and to scatter them on the fly across the available processors (the format of centralized \scotch\ graph files is described in the {\it\scotch\ User's Guide}~\scotchcitesuser). However, in order to reduce loading time, a distributed graph format has been designed, so that the different file fragments which comprise distributed graph files can be read in parallel and be stored on local disks on the nodes of a parallel or grid cluster. \\ Distributed graph files, which usually end in ``{\tt \@.dgr}'', describe fragments of valuated graphs, which can be valuated process graphs to be mapped onto target architectures, or graphs representing the adjacency structures of matrices to order. In \scotch, graphs are represented by means of adjacency lists: the definition of each vertex is accompanied by the list of all of its neighbors, i.e. all of its adjacent arcs. Therefore, the overall number of edge data is twice the number of edges. Distributed graphs are stored as a set of files which contain each a subset of graph vertices and their adjacencies. The purpose of this format is to speed-up the loading and saving of large graphs when working for some time with the same number of processors: the distributed graph loading routine will allow each of the processors to read in parallel from a different file. Consequently, the number of files must be equal to the number of processors involved in the parallel loading phase. \\ The first line of a distributed graph file holds the distributed graph file version number, which is currently {\tt 2}. The second line holds the number of files across which the graph data is distributed (referred to as {\tt proc\lbo glb\lbo nbr} in \libscotch; see for instance Figure~\ref{fig-lib-dgraf-one}, page~\pageref{fig-lib-dgraf-one}, for a detailed example), followed by the number of this file in the sequence (ranging from $0$ to $({\tt proc\lbo glb\lbo nbr} - 1)$, and analogous to {\tt proc\lbo loc\lbo num} in Figure~\ref{fig-lib-dgraf-one}). The third line holds the global number of graph vertices (referred to as {\tt vert\lbo glb\lbo nbr}), followed by the global number of arcs (inappropriately called {\tt edge\lbo glb\lbo nbr}, as it is in fact equal to twice the actual number of edges). The fourth line holds the number of vertices contained in this graph fragment (analogous to {\tt vert\lbo loc\lbo nbr}), followed by its local number of arcs (analogous to {\tt edge\lbo loc\lbo nbr}). The fifth line holds two figures: the graph base index value ({\tt baseval}) and a numeric flag. The graph base index value records the value of the starting index used to describe the graph; it is usually $0$ when the graph has been output by C programs, and $1$ for Fortran programs. Its purpose is to ease the manipulation of graphs within each of these two environments, while providing compatibility between them. The numeric flag, similar to the one used by the \chaco\ graph format~\cite{hele93c}, is made of three decimal digits. A non-zero value in the units indicates that vertex weights are provided. A non-zero value in the tenths indicates that edge weights are provided. A non-zero value in the hundredths indicates that vertex labels are provided; if it is the case, vertices can be stored in any order in the file; else, natural order is assumed, starting from the starting global index of each fragment. This header data is then followed by as many lines as there are vertices in the graph fragment, that is, {\tt vert\lbo loc\lbo nbr} lines. Each of these lines begins with the vertex label, if necessary, the vertex load, if necessary, and the vertex degree, followed by the description of the arcs. An arc is defined by the load of the edge, if necessary, and by the label of its other end vertex. The arcs of a given vertex can be provided in any order in its neighbor list. If vertex labels are provided, vertices can also be stored in any order in the file. Figure~\ref{fig-file-dsgraph} shows the contents of two complementary distributed graph files modeling a cube with unity vertex and edge weights and base $0$, distributed across two processors. \begin{figure}[hbt] \begin{center} \begin{minipage}{4.0cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 2 2 0 8 24 4 12 0 000 3 4 2 1 3 5 3 0 3 6 0 3 3 7 1 2 \end{verbatim}} \end{minipage} \hfil~\hfil \begin{minipage}{4.0cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 2 2 1 8 24 4 12 0 000 3 0 6 5 3 1 7 4 3 2 4 7 3 3 5 6 \end{verbatim}} \end{minipage} \end{center} \caption{Two complementary distributed graph files representing a cube distributed across two processors.} \label{fig-file-dsgraph} \end{figure} \subsection{Auxiliary distributed mesh files} \label{sec-file-admesh} The auxiliary distributed mesh file format has been created to support the implementation of the prototype \texttt{Dmesh} class representing distributed meshes. The main use of these files, which usually end in``{\tt \@.adm}'', is as input of the \texttt{dmesh\lbt Load\,()} routine. Unlike the \scotch\ mesh data structures and file formats, which are symmetric, this mesh format only provides adjacency lists for elements: the list of nodes connected to a given element is provided, while the opposite is not, hence the name ``auxiliary''. The first line of an auxiliary distributed mesh file holds the distributed mesh file version number, which is currently \texttt{3}. The second line holds the number of files across which the mesh data is distributed (referred to as \texttt{proc\lbo glb\lbo nbr} in \libscotch; see for instance Figure~\ref{fig-lib-dgraf-one}, page~\pageref{fig-lib-dgraf-one}, for a detailed example in the case of distributed graphs), followed by the number of this file in the sequence (ranging from $0$ to $(\texttt{proc\lbo glb\lbo nbr} - 1)$, and analogous to \texttt{proc\lbo loc\lbo num} in Figure~\ref{fig-lib-dgraf-one}). The third line holds the global number of mesh element vertices (referred to as \texttt{velm\lbo glb\lbo nbr}), followed by the global number of node vertices (referred to as \texttt{vnod\lbo glb\lbo nbr}). The fourth line holds the number of elements contained in this mesh fragment (\texttt{velm\lbo loc\lbo nbr}), followed by the sum of all neighboring node indices for these local elements (\texttt{eelm\lbo loc\lbo nbr}). The fifth line holds two figures: the mesh base index value (\texttt{baseval}) and a numeric flag. The mesh base index value records the value of the starting index used to describe the mesh; it is usually $0$ when the mesh has been output by C programs, and $1$ for Fortran programs. Its purpose is to ease the manipulation of meshes within each of these two environments, while providing compatibility between them. The numeric flag, similar to the one used by the \chaco\ graph format~\cite{hele93c}, is made of three decimal digits; it is currently not used. This header data is then followed by as many lines as there are elements in the mesh fragment, that is, \texttt{velm\lbo loc\lbo nbr} lines. Each of these lines begins with the number of vertices contained in the element described by that line. In the case of the mesh distributed on three processes represented in Figure~\ref{fig-lib-dmesh-one}, the contents of the three corresponding auxiliary distributed mesh files are shown in Figure~\ref{fig-file-admesh}. \begin{figure}[hbt] \begin{center} \begin{minipage}{4.0cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 3 3 0 6 12 3 12 1 000 4 5 1 7 11 4 8 11 6 7 4 4 1 2 7 \end{verbatim}} \end{minipage} \hfil~\hfil \begin{minipage}{4.0cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 3 3 1 6 12 1 4 1 000 4 10 6 3 8 \end{verbatim}} \end{minipage} \hfil~\hfil \begin{minipage}{4.0cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 3 3 2 6 12 2 8 1 000 4 12 7 2 6 4 3 9 12 6 \end{verbatim}} \end{minipage} \caption{The three auxiliary distributed mesh files corresponding to the mesh distributed across three processors of Figure~\ref{fig-lib-dmesh-one}, page~\pageref{fig-lib-dmesh-one}.} \label{fig-file-admesh} \end{center} \end{figure} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_adm.eps000066400000000000000000002010701514310134000264350ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Title: p_f_adm.fig %%Creator: fig2dev Version 3.2.9a %%CreationDate: 2025-08-18 21:56:22 %%BoundingBox: 0 0 1025 723 %%Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /rl {rlineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /xfig_image {image Data flushfile} def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { sa n 0 723 m 0 0 l 1025 0 l 1025 723 l cp clip 0.7 720.7 tr 1 -1 sc $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 60 % Polyline 2 slj 0 slc 0.000 slw n 4500 6525 m 4486 6561 l 4471 6592 l 4457 6618 l 4444 6638 l 4432 6653 l 4421 6665 l 4410 6674 l 4400 6681 l 4390 6688 l 4381 6695 l 4372 6703 l 4363 6712 l 4356 6722 l 4350 6733 l 4348 6743 l 4350 6750 l 4357 6752 l 4367 6750 l 4378 6744 l 4388 6737 l 4397 6728 l 4405 6719 l 4412 6710 l 4419 6700 l 4426 6690 l 4435 6679 l 4447 6668 l 4462 6656 l 4482 6643 l 4508 6629 l 4539 6614 l 4575 6600 l 4609 6588 l 4641 6578 l 4669 6569 l 4692 6562 l 4710 6556 l 4724 6552 l 4735 6549 l 4743 6546 l 4750 6544 l 4757 6542 l 4766 6540 l 4777 6538 l 4793 6535 l 4813 6533 l 4839 6530 l 4871 6528 l 4909 6526 l 4950 6525 l 4991 6526 l 5029 6528 l 5061 6530 l 5087 6533 l 5107 6535 l 5123 6538 l 5134 6540 l 5143 6542 l 5150 6544 l 5157 6546 l 5165 6549 l 5176 6552 l 5190 6556 l 5208 6562 l 5231 6569 l 5259 6578 l 5291 6588 l 5325 6600 l 5361 6614 l 5392 6629 l 5418 6643 l 5438 6656 l 5453 6668 l 5465 6679 l 5474 6690 l 5481 6700 l 5488 6710 l 5495 6719 l 5503 6728 l 5512 6737 l 5522 6744 l 5533 6750 l 5543 6752 l 5550 6750 l 5552 6743 l 5550 6733 l 5544 6722 l 5537 6712 l 5528 6703 l 5519 6695 l 5510 6688 l 5500 6681 l 5490 6674 l 5479 6665 l 5468 6653 l 5456 6638 l 5443 6618 l 5429 6592 l 5414 6561 l 5400 6525 l 5388 6491 l 5378 6459 l 5369 6431 l 5362 6408 l 5356 6390 l 5352 6376 l 5349 6365 l 5346 6357 l 5344 6350 l 5342 6343 l 5340 6334 l 5338 6323 l 5335 6307 l 5333 6287 l 5330 6261 l 5328 6229 l 5326 6191 l 5325 6150 l 5326 6109 l 5328 6071 l 5330 6039 l 5333 6013 l 5335 5993 l 5338 5977 l 5340 5966 l 5342 5957 l 5344 5950 l 5346 5943 l 5349 5935 l 5352 5924 l 5356 5910 l 5362 5892 l 5369 5869 l 5378 5841 l 5388 5809 l 5400 5775 l 5414 5739 l 5429 5708 l 5443 5682 l 5456 5662 l 5468 5647 l 5479 5635 l 5490 5626 l 5500 5619 l 5510 5612 l 5519 5605 l 5528 5597 l 5537 5588 l 5544 5578 l 5550 5567 l 5552 5557 l 5550 5550 l 5543 5548 l 5533 5550 l 5522 5556 l 5512 5563 l 5503 5572 l 5495 5581 l 5488 5590 l 5481 5600 l 5474 5610 l 5465 5621 l 5453 5632 l 5438 5644 l 5418 5657 l 5392 5671 l 5361 5686 l 5325 5700 l 5291 5712 l 5259 5722 l 5231 5731 l 5208 5738 l 5190 5744 l 5176 5748 l 5165 5751 l 5157 5754 l 5150 5756 l 5143 5758 l 5134 5760 l 5123 5762 l 5107 5765 l 5087 5767 l 5061 5770 l 5029 5772 l 4991 5774 l 4950 5775 l 4909 5774 l 4871 5772 l 4839 5770 l 4813 5767 l 4793 5765 l 4777 5762 l 4766 5760 l 4757 5758 l 4750 5756 l 4743 5754 l 4735 5751 l 4724 5748 l 4710 5744 l 4692 5738 l 4669 5731 l 4641 5722 l 4609 5712 l 4575 5700 l 4539 5686 l 4508 5671 l 4482 5657 l 4462 5644 l 4447 5632 l 4435 5621 l 4426 5610 l 4419 5600 l 4412 5590 l 4405 5581 l 4397 5572 l 4388 5563 l 4378 5556 l 4367 5550 l 4357 5548 l 4350 5550 l 4348 5557 l 4350 5567 l 4356 5578 l 4363 5588 l 4372 5597 l 4381 5605 l 4390 5612 l 4400 5619 l 4410 5626 l 4421 5635 l 4432 5647 l 4444 5662 l 4457 5682 l 4471 5708 l 4486 5739 l 4500 5775 l 4512 5809 l 4522 5841 l 4531 5869 l 4538 5892 l 4544 5910 l 4548 5924 l 4551 5935 l 4554 5943 l 4556 5950 l 4558 5957 l 4560 5966 l 4562 5977 l 4565 5993 l 4567 6013 l 4570 6039 l 4572 6071 l 4574 6109 l 4575 6150 l 4574 6191 l 4572 6229 l 4570 6261 l 4567 6287 l 4565 6307 l 4562 6323 l 4560 6334 l 4558 6343 l 4556 6350 l 4554 6357 l 4551 6365 l 4548 6376 l 4544 6390 l 4538 6408 l 4531 6431 l 4522 6459 l 4512 6491 l cp gs 0.80 setgray ef gr % Polyline n 3300 6525 m 3286 6561 l 3271 6592 l 3257 6618 l 3244 6638 l 3232 6653 l 3221 6665 l 3210 6674 l 3200 6681 l 3190 6688 l 3181 6695 l 3172 6703 l 3163 6712 l 3156 6722 l 3150 6733 l 3148 6743 l 3150 6750 l 3157 6752 l 3167 6750 l 3178 6744 l 3188 6737 l 3197 6728 l 3205 6719 l 3212 6710 l 3219 6700 l 3226 6690 l 3235 6679 l 3247 6668 l 3262 6656 l 3282 6643 l 3308 6629 l 3339 6614 l 3375 6600 l 3409 6588 l 3441 6578 l 3469 6569 l 3492 6562 l 3510 6556 l 3524 6552 l 3535 6549 l 3543 6546 l 3550 6544 l 3557 6542 l 3566 6540 l 3577 6538 l 3593 6535 l 3613 6533 l 3639 6530 l 3671 6528 l 3709 6526 l 3750 6525 l 3791 6526 l 3829 6528 l 3861 6530 l 3887 6533 l 3907 6535 l 3923 6538 l 3934 6540 l 3943 6542 l 3950 6544 l 3957 6546 l 3965 6549 l 3976 6552 l 3990 6556 l 4008 6562 l 4031 6569 l 4059 6578 l 4091 6588 l 4125 6600 l 4161 6614 l 4192 6629 l 4218 6643 l 4238 6656 l 4253 6668 l 4265 6679 l 4274 6690 l 4281 6700 l 4288 6710 l 4295 6719 l 4303 6728 l 4312 6737 l 4322 6744 l 4333 6750 l 4343 6752 l 4350 6750 l 4352 6743 l 4350 6733 l 4344 6722 l 4337 6712 l 4328 6703 l 4319 6695 l 4310 6688 l 4300 6681 l 4290 6674 l 4279 6665 l 4268 6653 l 4256 6638 l 4243 6618 l 4229 6592 l 4214 6561 l 4200 6525 l 4188 6491 l 4178 6459 l 4169 6431 l 4162 6408 l 4156 6390 l 4152 6376 l 4149 6365 l 4146 6357 l 4144 6350 l 4142 6343 l 4140 6334 l 4138 6323 l 4135 6307 l 4133 6287 l 4130 6261 l 4128 6229 l 4126 6191 l 4125 6150 l 4126 6109 l 4128 6071 l 4130 6039 l 4133 6013 l 4135 5993 l 4138 5977 l 4140 5966 l 4142 5957 l 4144 5950 l 4146 5943 l 4149 5935 l 4152 5924 l 4156 5910 l 4162 5892 l 4169 5869 l 4178 5841 l 4188 5809 l 4200 5775 l 4214 5739 l 4229 5708 l 4243 5682 l 4256 5662 l 4268 5647 l 4279 5635 l 4290 5626 l 4300 5619 l 4310 5612 l 4319 5605 l 4328 5597 l 4337 5588 l 4344 5578 l 4350 5567 l 4352 5557 l 4350 5550 l 4343 5548 l 4333 5550 l 4322 5556 l 4312 5563 l 4303 5572 l 4295 5581 l 4288 5590 l 4281 5600 l 4274 5610 l 4265 5621 l 4253 5632 l 4238 5644 l 4218 5657 l 4192 5671 l 4161 5686 l 4125 5700 l 4091 5712 l 4059 5722 l 4031 5731 l 4008 5738 l 3990 5744 l 3976 5748 l 3965 5751 l 3957 5754 l 3950 5756 l 3943 5758 l 3934 5760 l 3923 5762 l 3907 5765 l 3887 5767 l 3861 5770 l 3829 5772 l 3791 5774 l 3750 5775 l 3709 5774 l 3671 5772 l 3639 5770 l 3613 5767 l 3593 5765 l 3577 5762 l 3566 5760 l 3557 5758 l 3550 5756 l 3543 5754 l 3535 5751 l 3524 5748 l 3510 5744 l 3492 5738 l 3469 5731 l 3441 5722 l 3409 5712 l 3375 5700 l 3339 5686 l 3308 5671 l 3282 5657 l 3262 5644 l 3247 5632 l 3235 5621 l 3226 5610 l 3219 5600 l 3212 5590 l 3205 5581 l 3197 5572 l 3188 5563 l 3178 5556 l 3167 5550 l 3157 5548 l 3150 5550 l 3148 5557 l 3150 5567 l 3156 5578 l 3163 5588 l 3172 5597 l 3181 5605 l 3190 5612 l 3200 5619 l 3210 5626 l 3221 5635 l 3232 5647 l 3244 5662 l 3257 5682 l 3271 5708 l 3286 5739 l 3300 5775 l 3312 5809 l 3322 5841 l 3331 5869 l 3338 5892 l 3344 5910 l 3348 5924 l 3351 5935 l 3354 5943 l 3356 5950 l 3358 5957 l 3360 5966 l 3362 5977 l 3365 5993 l 3367 6013 l 3370 6039 l 3372 6071 l 3374 6109 l 3375 6150 l 3374 6191 l 3372 6229 l 3370 6261 l 3367 6287 l 3365 6307 l 3362 6323 l 3360 6334 l 3358 6343 l 3356 6350 l 3354 6357 l 3351 6365 l 3348 6376 l 3344 6390 l 3338 6408 l 3331 6431 l 3322 6459 l 3312 6491 l cp gs 0.80 setgray ef gr % Polyline n 3300 7725 m 3286 7761 l 3271 7792 l 3257 7818 l 3244 7838 l 3232 7853 l 3221 7865 l 3210 7874 l 3200 7881 l 3190 7888 l 3181 7895 l 3172 7903 l 3163 7912 l 3156 7922 l 3150 7933 l 3148 7943 l 3150 7950 l 3157 7952 l 3167 7950 l 3178 7944 l 3188 7937 l 3197 7928 l 3205 7919 l 3212 7910 l 3219 7900 l 3226 7890 l 3235 7879 l 3247 7868 l 3262 7856 l 3282 7843 l 3308 7829 l 3339 7814 l 3375 7800 l 3409 7788 l 3441 7778 l 3469 7769 l 3492 7762 l 3510 7756 l 3524 7752 l 3535 7749 l 3543 7746 l 3550 7744 l 3557 7742 l 3566 7740 l 3577 7738 l 3593 7735 l 3613 7733 l 3639 7730 l 3671 7728 l 3709 7726 l 3750 7725 l 3791 7726 l 3829 7728 l 3861 7730 l 3887 7733 l 3907 7735 l 3923 7738 l 3934 7740 l 3943 7742 l 3950 7744 l 3957 7746 l 3965 7749 l 3976 7752 l 3990 7756 l 4008 7762 l 4031 7769 l 4059 7778 l 4091 7788 l 4125 7800 l 4161 7814 l 4192 7829 l 4218 7843 l 4238 7856 l 4253 7868 l 4265 7879 l 4274 7890 l 4281 7900 l 4288 7910 l 4295 7919 l 4303 7928 l 4312 7937 l 4322 7944 l 4333 7950 l 4343 7952 l 4350 7950 l 4352 7943 l 4350 7933 l 4344 7922 l 4337 7912 l 4328 7903 l 4319 7895 l 4310 7888 l 4300 7881 l 4290 7874 l 4279 7865 l 4268 7853 l 4256 7838 l 4243 7818 l 4229 7792 l 4214 7761 l 4200 7725 l 4188 7691 l 4178 7659 l 4169 7631 l 4162 7608 l 4156 7590 l 4152 7576 l 4149 7565 l 4146 7557 l 4144 7550 l 4142 7543 l 4140 7534 l 4138 7523 l 4135 7507 l 4133 7487 l 4130 7461 l 4128 7429 l 4126 7391 l 4125 7350 l 4126 7309 l 4128 7271 l 4130 7239 l 4133 7213 l 4135 7193 l 4138 7177 l 4140 7166 l 4142 7157 l 4144 7150 l 4146 7143 l 4149 7135 l 4152 7124 l 4156 7110 l 4162 7092 l 4169 7069 l 4178 7041 l 4188 7009 l 4200 6975 l 4214 6939 l 4229 6908 l 4243 6882 l 4256 6862 l 4268 6847 l 4279 6835 l 4290 6826 l 4300 6819 l 4310 6812 l 4319 6805 l 4328 6797 l 4337 6788 l 4344 6778 l 4350 6767 l 4352 6757 l 4350 6750 l 4343 6748 l 4333 6750 l 4322 6756 l 4312 6763 l 4303 6772 l 4295 6781 l 4288 6790 l 4281 6800 l 4274 6810 l 4265 6821 l 4253 6832 l 4238 6844 l 4218 6857 l 4192 6871 l 4161 6886 l 4125 6900 l 4091 6912 l 4059 6922 l 4031 6931 l 4008 6938 l 3990 6944 l 3976 6948 l 3965 6951 l 3957 6954 l 3950 6956 l 3943 6958 l 3934 6960 l 3923 6962 l 3907 6965 l 3887 6967 l 3861 6970 l 3829 6972 l 3791 6974 l 3750 6975 l 3709 6974 l 3671 6972 l 3639 6970 l 3613 6967 l 3593 6965 l 3577 6962 l 3566 6960 l 3557 6958 l 3550 6956 l 3543 6954 l 3535 6951 l 3524 6948 l 3510 6944 l 3492 6938 l 3469 6931 l 3441 6922 l 3409 6912 l 3375 6900 l 3339 6886 l 3308 6871 l 3282 6857 l 3262 6844 l 3247 6832 l 3235 6821 l 3226 6810 l 3219 6800 l 3212 6790 l 3205 6781 l 3197 6772 l 3188 6763 l 3178 6756 l 3167 6750 l 3157 6748 l 3150 6750 l 3148 6757 l 3150 6767 l 3156 6778 l 3163 6788 l 3172 6797 l 3181 6805 l 3190 6812 l 3200 6819 l 3210 6826 l 3221 6835 l 3232 6847 l 3244 6862 l 3257 6882 l 3271 6908 l 3286 6939 l 3300 6975 l 3312 7009 l 3322 7041 l 3331 7069 l 3338 7092 l 3344 7110 l 3348 7124 l 3351 7135 l 3354 7143 l 3356 7150 l 3358 7157 l 3360 7166 l 3362 7177 l 3365 7193 l 3367 7213 l 3370 7239 l 3372 7271 l 3374 7309 l 3375 7350 l 3374 7391 l 3372 7429 l 3370 7461 l 3367 7487 l 3365 7507 l 3362 7523 l 3360 7534 l 3358 7543 l 3356 7550 l 3354 7557 l 3351 7565 l 3348 7576 l 3344 7590 l 3338 7608 l 3331 7631 l 3322 7659 l 3312 7691 l cp gs 0.80 setgray ef gr % Polyline n 7050 2175 m 7036 2211 l 7021 2242 l 7007 2268 l 6994 2288 l 6982 2303 l 6971 2315 l 6960 2324 l 6950 2331 l 6940 2338 l 6931 2345 l 6922 2353 l 6913 2362 l 6906 2372 l 6900 2383 l 6898 2393 l 6900 2400 l 6907 2402 l 6917 2400 l 6928 2394 l 6938 2387 l 6947 2378 l 6955 2369 l 6962 2360 l 6969 2350 l 6976 2340 l 6985 2329 l 6997 2318 l 7012 2306 l 7032 2293 l 7058 2279 l 7089 2264 l 7125 2250 l 7159 2238 l 7191 2228 l 7219 2219 l 7242 2212 l 7260 2206 l 7274 2202 l 7285 2199 l 7293 2196 l 7300 2194 l 7307 2192 l 7316 2190 l 7327 2188 l 7343 2185 l 7363 2183 l 7389 2180 l 7421 2178 l 7459 2176 l 7500 2175 l 7541 2176 l 7579 2178 l 7611 2180 l 7637 2183 l 7657 2185 l 7673 2188 l 7684 2190 l 7693 2192 l 7700 2194 l 7707 2196 l 7715 2199 l 7726 2202 l 7740 2206 l 7758 2212 l 7781 2219 l 7809 2228 l 7841 2238 l 7875 2250 l 7911 2264 l 7942 2279 l 7968 2293 l 7988 2306 l 8003 2318 l 8015 2329 l 8024 2340 l 8031 2350 l 8038 2360 l 8045 2369 l 8053 2378 l 8062 2387 l 8072 2394 l 8083 2400 l 8093 2402 l 8100 2400 l 8102 2393 l 8100 2383 l 8094 2372 l 8087 2362 l 8078 2353 l 8069 2345 l 8060 2338 l 8050 2331 l 8040 2324 l 8029 2315 l 8018 2303 l 8006 2288 l 7993 2268 l 7979 2242 l 7964 2211 l 7950 2175 l 7938 2141 l 7928 2109 l 7919 2081 l 7912 2058 l 7906 2040 l 7902 2026 l 7899 2015 l 7896 2007 l 7894 2000 l 7892 1993 l 7890 1984 l 7888 1973 l 7885 1957 l 7883 1937 l 7880 1911 l 7878 1879 l 7876 1841 l 7875 1800 l 7876 1759 l 7878 1721 l 7880 1689 l 7883 1663 l 7885 1643 l 7888 1627 l 7890 1616 l 7892 1607 l 7894 1600 l 7896 1593 l 7899 1585 l 7902 1574 l 7906 1560 l 7912 1542 l 7919 1519 l 7928 1491 l 7938 1459 l 7950 1425 l 7964 1389 l 7979 1358 l 7993 1332 l 8006 1312 l 8018 1297 l 8029 1285 l 8040 1276 l 8050 1269 l 8060 1262 l 8069 1255 l 8078 1247 l 8087 1238 l 8094 1228 l 8100 1217 l 8102 1207 l 8100 1200 l 8093 1198 l 8083 1200 l 8072 1206 l 8062 1213 l 8053 1222 l 8045 1231 l 8038 1240 l 8031 1250 l 8024 1260 l 8015 1271 l 8003 1282 l 7988 1294 l 7968 1307 l 7942 1321 l 7911 1336 l 7875 1350 l 7841 1362 l 7809 1372 l 7781 1381 l 7758 1388 l 7740 1394 l 7726 1398 l 7715 1401 l 7707 1404 l 7700 1406 l 7693 1408 l 7684 1410 l 7673 1412 l 7657 1415 l 7637 1417 l 7611 1420 l 7579 1422 l 7541 1424 l 7500 1425 l 7459 1424 l 7421 1422 l 7389 1420 l 7363 1417 l 7343 1415 l 7327 1412 l 7316 1410 l 7307 1408 l 7300 1406 l 7293 1404 l 7285 1401 l 7274 1398 l 7260 1394 l 7242 1388 l 7219 1381 l 7191 1372 l 7159 1362 l 7125 1350 l 7089 1336 l 7058 1321 l 7032 1307 l 7012 1294 l 6997 1282 l 6985 1271 l 6976 1260 l 6969 1250 l 6962 1240 l 6955 1231 l 6947 1222 l 6938 1213 l 6928 1206 l 6917 1200 l 6907 1198 l 6900 1200 l 6898 1207 l 6900 1217 l 6906 1228 l 6913 1238 l 6922 1247 l 6931 1255 l 6940 1262 l 6950 1269 l 6960 1276 l 6971 1285 l 6982 1297 l 6994 1312 l 7007 1332 l 7021 1358 l 7036 1389 l 7050 1425 l 7062 1459 l 7072 1491 l 7081 1519 l 7088 1542 l 7094 1560 l 7098 1574 l 7101 1585 l 7104 1593 l 7106 1600 l 7108 1607 l 7110 1616 l 7112 1627 l 7115 1643 l 7117 1663 l 7120 1689 l 7122 1721 l 7124 1759 l 7125 1800 l 7124 1841 l 7122 1879 l 7120 1911 l 7117 1937 l 7115 1957 l 7112 1973 l 7110 1984 l 7108 1993 l 7106 2000 l 7104 2007 l 7101 2015 l 7098 2026 l 7094 2040 l 7088 2058 l 7081 2081 l 7072 2109 l 7062 2141 l cp gs 0.80 setgray ef gr % Polyline n 5850 2175 m 5836 2211 l 5821 2242 l 5807 2268 l 5794 2288 l 5782 2303 l 5771 2315 l 5760 2324 l 5750 2331 l 5740 2338 l 5731 2345 l 5722 2353 l 5713 2362 l 5706 2372 l 5700 2383 l 5698 2393 l 5700 2400 l 5707 2402 l 5717 2400 l 5728 2394 l 5738 2387 l 5747 2378 l 5755 2369 l 5762 2360 l 5769 2350 l 5776 2340 l 5785 2329 l 5797 2318 l 5812 2306 l 5832 2293 l 5858 2279 l 5889 2264 l 5925 2250 l 5959 2238 l 5991 2228 l 6019 2219 l 6042 2212 l 6060 2206 l 6074 2202 l 6085 2199 l 6093 2196 l 6100 2194 l 6107 2192 l 6116 2190 l 6127 2188 l 6143 2185 l 6163 2183 l 6189 2180 l 6221 2178 l 6259 2176 l 6300 2175 l 6341 2176 l 6379 2178 l 6411 2180 l 6437 2183 l 6457 2185 l 6473 2188 l 6484 2190 l 6493 2192 l 6500 2194 l 6507 2196 l 6515 2199 l 6526 2202 l 6540 2206 l 6558 2212 l 6581 2219 l 6609 2228 l 6641 2238 l 6675 2250 l 6711 2264 l 6742 2279 l 6768 2293 l 6788 2306 l 6803 2318 l 6815 2329 l 6824 2340 l 6831 2350 l 6838 2360 l 6845 2369 l 6853 2378 l 6862 2387 l 6872 2394 l 6883 2400 l 6893 2402 l 6900 2400 l 6902 2393 l 6900 2383 l 6894 2372 l 6887 2362 l 6878 2353 l 6869 2345 l 6860 2338 l 6850 2331 l 6840 2324 l 6829 2315 l 6818 2303 l 6806 2288 l 6793 2268 l 6779 2242 l 6764 2211 l 6750 2175 l 6738 2141 l 6728 2109 l 6719 2081 l 6712 2058 l 6706 2040 l 6702 2026 l 6699 2015 l 6696 2007 l 6694 2000 l 6692 1993 l 6690 1984 l 6688 1973 l 6685 1957 l 6683 1937 l 6680 1911 l 6678 1879 l 6676 1841 l 6675 1800 l 6676 1759 l 6678 1721 l 6680 1689 l 6683 1663 l 6685 1643 l 6688 1627 l 6690 1616 l 6692 1607 l 6694 1600 l 6696 1593 l 6699 1585 l 6702 1574 l 6706 1560 l 6712 1542 l 6719 1519 l 6728 1491 l 6738 1459 l 6750 1425 l 6764 1389 l 6779 1358 l 6793 1332 l 6806 1312 l 6818 1297 l 6829 1285 l 6840 1276 l 6850 1269 l 6860 1262 l 6869 1255 l 6878 1247 l 6887 1238 l 6894 1228 l 6900 1217 l 6902 1207 l 6900 1200 l 6893 1198 l 6883 1200 l 6872 1206 l 6862 1213 l 6853 1222 l 6845 1231 l 6838 1240 l 6831 1250 l 6824 1260 l 6815 1271 l 6803 1282 l 6788 1294 l 6768 1307 l 6742 1321 l 6711 1336 l 6675 1350 l 6641 1362 l 6609 1372 l 6581 1381 l 6558 1388 l 6540 1394 l 6526 1398 l 6515 1401 l 6507 1404 l 6500 1406 l 6493 1408 l 6484 1410 l 6473 1412 l 6457 1415 l 6437 1417 l 6411 1420 l 6379 1422 l 6341 1424 l 6300 1425 l 6259 1424 l 6221 1422 l 6189 1420 l 6163 1417 l 6143 1415 l 6127 1412 l 6116 1410 l 6107 1408 l 6100 1406 l 6093 1404 l 6085 1401 l 6074 1398 l 6060 1394 l 6042 1388 l 6019 1381 l 5991 1372 l 5959 1362 l 5925 1350 l 5889 1336 l 5858 1321 l 5832 1307 l 5812 1294 l 5797 1282 l 5785 1271 l 5776 1260 l 5769 1250 l 5762 1240 l 5755 1231 l 5747 1222 l 5738 1213 l 5728 1206 l 5717 1200 l 5707 1198 l 5700 1200 l 5698 1207 l 5700 1217 l 5706 1228 l 5713 1238 l 5722 1247 l 5731 1255 l 5740 1262 l 5750 1269 l 5760 1276 l 5771 1285 l 5782 1297 l 5794 1312 l 5807 1332 l 5821 1358 l 5836 1389 l 5850 1425 l 5862 1459 l 5872 1491 l 5881 1519 l 5888 1542 l 5894 1560 l 5898 1574 l 5901 1585 l 5904 1593 l 5906 1600 l 5908 1607 l 5910 1616 l 5912 1627 l 5915 1643 l 5917 1663 l 5920 1689 l 5922 1721 l 5924 1759 l 5925 1800 l 5924 1841 l 5922 1879 l 5920 1911 l 5917 1937 l 5915 1957 l 5912 1973 l 5910 1984 l 5908 1993 l 5906 2000 l 5904 2007 l 5901 2015 l 5898 2026 l 5894 2040 l 5888 2058 l 5881 2081 l 5872 2109 l 5862 2141 l cp gs 0.80 setgray ef gr % Polyline n 5850 3375 m 5836 3411 l 5821 3442 l 5807 3468 l 5794 3488 l 5782 3503 l 5771 3515 l 5760 3524 l 5750 3531 l 5740 3538 l 5731 3545 l 5722 3553 l 5713 3562 l 5706 3572 l 5700 3583 l 5698 3593 l 5700 3600 l 5707 3602 l 5717 3600 l 5728 3594 l 5738 3587 l 5747 3578 l 5755 3569 l 5762 3560 l 5769 3550 l 5776 3540 l 5785 3529 l 5797 3518 l 5812 3506 l 5832 3493 l 5858 3479 l 5889 3464 l 5925 3450 l 5959 3438 l 5991 3428 l 6019 3419 l 6042 3412 l 6060 3406 l 6074 3402 l 6085 3399 l 6093 3396 l 6100 3394 l 6107 3392 l 6116 3390 l 6127 3388 l 6143 3385 l 6163 3383 l 6189 3380 l 6221 3378 l 6259 3376 l 6300 3375 l 6341 3376 l 6379 3378 l 6411 3380 l 6437 3383 l 6457 3385 l 6473 3388 l 6484 3390 l 6493 3392 l 6500 3394 l 6507 3396 l 6515 3399 l 6526 3402 l 6540 3406 l 6558 3412 l 6581 3419 l 6609 3428 l 6641 3438 l 6675 3450 l 6711 3464 l 6742 3479 l 6768 3493 l 6788 3506 l 6803 3518 l 6815 3529 l 6824 3540 l 6831 3550 l 6838 3560 l 6845 3569 l 6853 3578 l 6862 3587 l 6872 3594 l 6883 3600 l 6893 3602 l 6900 3600 l 6902 3593 l 6900 3583 l 6894 3572 l 6887 3562 l 6878 3553 l 6869 3545 l 6860 3538 l 6850 3531 l 6840 3524 l 6829 3515 l 6818 3503 l 6806 3488 l 6793 3468 l 6779 3442 l 6764 3411 l 6750 3375 l 6738 3341 l 6728 3309 l 6719 3281 l 6712 3258 l 6706 3240 l 6702 3226 l 6699 3215 l 6696 3207 l 6694 3200 l 6692 3193 l 6690 3184 l 6688 3173 l 6685 3157 l 6683 3137 l 6680 3111 l 6678 3079 l 6676 3041 l 6675 3000 l 6676 2959 l 6678 2921 l 6680 2889 l 6683 2863 l 6685 2843 l 6688 2827 l 6690 2816 l 6692 2807 l 6694 2800 l 6696 2793 l 6699 2785 l 6702 2774 l 6706 2760 l 6712 2742 l 6719 2719 l 6728 2691 l 6738 2659 l 6750 2625 l 6764 2589 l 6779 2558 l 6793 2532 l 6806 2512 l 6818 2497 l 6829 2485 l 6840 2476 l 6850 2469 l 6860 2462 l 6869 2455 l 6878 2447 l 6887 2438 l 6894 2428 l 6900 2417 l 6902 2407 l 6900 2400 l 6893 2398 l 6883 2400 l 6872 2406 l 6862 2413 l 6853 2422 l 6845 2431 l 6838 2440 l 6831 2450 l 6824 2460 l 6815 2471 l 6803 2482 l 6788 2494 l 6768 2507 l 6742 2521 l 6711 2536 l 6675 2550 l 6641 2562 l 6609 2572 l 6581 2581 l 6558 2588 l 6540 2594 l 6526 2598 l 6515 2601 l 6507 2604 l 6500 2606 l 6493 2608 l 6484 2610 l 6473 2612 l 6457 2615 l 6437 2617 l 6411 2620 l 6379 2622 l 6341 2624 l 6300 2625 l 6259 2624 l 6221 2622 l 6189 2620 l 6163 2617 l 6143 2615 l 6127 2612 l 6116 2610 l 6107 2608 l 6100 2606 l 6093 2604 l 6085 2601 l 6074 2598 l 6060 2594 l 6042 2588 l 6019 2581 l 5991 2572 l 5959 2562 l 5925 2550 l 5889 2536 l 5858 2521 l 5832 2507 l 5812 2494 l 5797 2482 l 5785 2471 l 5776 2460 l 5769 2450 l 5762 2440 l 5755 2431 l 5747 2422 l 5738 2413 l 5728 2406 l 5717 2400 l 5707 2398 l 5700 2400 l 5698 2407 l 5700 2417 l 5706 2428 l 5713 2438 l 5722 2447 l 5731 2455 l 5740 2462 l 5750 2469 l 5760 2476 l 5771 2485 l 5782 2497 l 5794 2512 l 5807 2532 l 5821 2558 l 5836 2589 l 5850 2625 l 5862 2659 l 5872 2691 l 5881 2719 l 5888 2742 l 5894 2760 l 5898 2774 l 5901 2785 l 5904 2793 l 5906 2800 l 5908 2807 l 5910 2816 l 5912 2827 l 5915 2843 l 5917 2863 l 5920 2889 l 5922 2921 l 5924 2959 l 5925 3000 l 5924 3041 l 5922 3079 l 5920 3111 l 5917 3137 l 5915 3157 l 5912 3173 l 5910 3184 l 5908 3193 l 5906 3200 l 5904 3207 l 5901 3215 l 5898 3226 l 5894 3240 l 5888 3258 l 5881 3281 l 5872 3309 l 5862 3341 l cp gs 0.80 setgray ef gr % Polyline n 8250 2175 m 8236 2211 l 8221 2242 l 8207 2268 l 8194 2288 l 8182 2303 l 8171 2315 l 8160 2324 l 8150 2331 l 8140 2338 l 8131 2345 l 8122 2353 l 8113 2362 l 8106 2372 l 8100 2383 l 8098 2393 l 8100 2400 l 8107 2402 l 8117 2400 l 8128 2394 l 8138 2387 l 8147 2378 l 8155 2369 l 8162 2360 l 8169 2350 l 8176 2340 l 8185 2329 l 8197 2318 l 8212 2306 l 8232 2293 l 8258 2279 l 8289 2264 l 8325 2250 l 8359 2238 l 8391 2228 l 8419 2219 l 8442 2212 l 8460 2206 l 8474 2202 l 8485 2199 l 8493 2196 l 8500 2194 l 8507 2192 l 8516 2190 l 8527 2188 l 8543 2185 l 8563 2183 l 8589 2180 l 8621 2178 l 8659 2176 l 8700 2175 l 8741 2176 l 8779 2178 l 8811 2180 l 8837 2183 l 8857 2185 l 8873 2188 l 8884 2190 l 8893 2192 l 8900 2194 l 8907 2196 l 8915 2199 l 8926 2202 l 8940 2206 l 8958 2212 l 8981 2219 l 9009 2228 l 9041 2238 l 9075 2250 l 9111 2264 l 9142 2279 l 9168 2293 l 9188 2306 l 9203 2318 l 9215 2329 l 9224 2340 l 9231 2350 l 9238 2360 l 9245 2369 l 9253 2378 l 9262 2387 l 9272 2394 l 9283 2400 l 9293 2402 l 9300 2400 l 9302 2393 l 9300 2383 l 9294 2372 l 9287 2362 l 9278 2353 l 9269 2345 l 9260 2338 l 9250 2331 l 9240 2324 l 9229 2315 l 9218 2303 l 9206 2288 l 9193 2268 l 9179 2242 l 9164 2211 l 9150 2175 l 9138 2141 l 9128 2109 l 9119 2081 l 9112 2058 l 9106 2040 l 9102 2026 l 9099 2015 l 9096 2007 l 9094 2000 l 9092 1993 l 9090 1984 l 9088 1973 l 9085 1957 l 9083 1937 l 9080 1911 l 9078 1879 l 9076 1841 l 9075 1800 l 9076 1759 l 9078 1721 l 9080 1689 l 9083 1663 l 9085 1643 l 9088 1627 l 9090 1616 l 9092 1607 l 9094 1600 l 9096 1593 l 9099 1585 l 9102 1574 l 9106 1560 l 9112 1542 l 9119 1519 l 9128 1491 l 9138 1459 l 9150 1425 l 9164 1389 l 9179 1358 l 9193 1332 l 9206 1312 l 9218 1297 l 9229 1285 l 9240 1276 l 9250 1269 l 9260 1262 l 9269 1255 l 9278 1247 l 9287 1238 l 9294 1228 l 9300 1217 l 9302 1207 l 9300 1200 l 9293 1198 l 9283 1200 l 9272 1206 l 9262 1213 l 9253 1222 l 9245 1231 l 9238 1240 l 9231 1250 l 9224 1260 l 9215 1271 l 9203 1282 l 9188 1294 l 9168 1307 l 9142 1321 l 9111 1336 l 9075 1350 l 9041 1362 l 9009 1372 l 8981 1381 l 8958 1388 l 8940 1394 l 8926 1398 l 8915 1401 l 8907 1404 l 8900 1406 l 8893 1408 l 8884 1410 l 8873 1412 l 8857 1415 l 8837 1417 l 8811 1420 l 8779 1422 l 8741 1424 l 8700 1425 l 8659 1424 l 8621 1422 l 8589 1420 l 8563 1417 l 8543 1415 l 8527 1412 l 8516 1410 l 8507 1408 l 8500 1406 l 8493 1404 l 8485 1401 l 8474 1398 l 8460 1394 l 8442 1388 l 8419 1381 l 8391 1372 l 8359 1362 l 8325 1350 l 8289 1336 l 8258 1321 l 8232 1307 l 8212 1294 l 8197 1282 l 8185 1271 l 8176 1260 l 8169 1250 l 8162 1240 l 8155 1231 l 8147 1222 l 8138 1213 l 8128 1206 l 8117 1200 l 8107 1198 l 8100 1200 l 8098 1207 l 8100 1217 l 8106 1228 l 8113 1238 l 8122 1247 l 8131 1255 l 8140 1262 l 8150 1269 l 8160 1276 l 8171 1285 l 8182 1297 l 8194 1312 l 8207 1332 l 8221 1358 l 8236 1389 l 8250 1425 l 8262 1459 l 8272 1491 l 8281 1519 l 8288 1542 l 8294 1560 l 8298 1574 l 8301 1585 l 8304 1593 l 8306 1600 l 8308 1607 l 8310 1616 l 8312 1627 l 8315 1643 l 8317 1663 l 8320 1689 l 8322 1721 l 8324 1759 l 8325 1800 l 8324 1841 l 8322 1879 l 8320 1911 l 8317 1937 l 8315 1957 l 8312 1973 l 8310 1984 l 8308 1993 l 8306 2000 l 8304 2007 l 8301 2015 l 8298 2026 l 8294 2040 l 8288 2058 l 8281 2081 l 8272 2109 l 8262 2141 l cp gs 0.80 setgray ef gr % Polyline n 7050 3375 m 7036 3411 l 7021 3442 l 7007 3468 l 6994 3488 l 6982 3503 l 6971 3515 l 6960 3524 l 6950 3531 l 6940 3538 l 6931 3545 l 6922 3553 l 6913 3562 l 6906 3572 l 6900 3583 l 6898 3593 l 6900 3600 l 6907 3602 l 6917 3600 l 6928 3594 l 6938 3587 l 6947 3578 l 6955 3569 l 6962 3560 l 6969 3550 l 6976 3540 l 6985 3529 l 6997 3518 l 7012 3506 l 7032 3493 l 7058 3479 l 7089 3464 l 7125 3450 l 7159 3438 l 7191 3428 l 7219 3419 l 7242 3412 l 7260 3406 l 7274 3402 l 7285 3399 l 7293 3396 l 7300 3394 l 7307 3392 l 7316 3390 l 7327 3388 l 7343 3385 l 7363 3383 l 7389 3380 l 7421 3378 l 7459 3376 l 7500 3375 l 7541 3376 l 7579 3378 l 7611 3380 l 7637 3383 l 7657 3385 l 7673 3388 l 7684 3390 l 7693 3392 l 7700 3394 l 7707 3396 l 7715 3399 l 7726 3402 l 7740 3406 l 7758 3412 l 7781 3419 l 7809 3428 l 7841 3438 l 7875 3450 l 7911 3464 l 7942 3479 l 7968 3493 l 7988 3506 l 8003 3518 l 8015 3529 l 8024 3540 l 8031 3550 l 8038 3560 l 8045 3569 l 8053 3578 l 8062 3587 l 8072 3594 l 8083 3600 l 8093 3602 l 8100 3600 l 8102 3593 l 8100 3583 l 8094 3572 l 8087 3562 l 8078 3553 l 8069 3545 l 8060 3538 l 8050 3531 l 8040 3524 l 8029 3515 l 8018 3503 l 8006 3488 l 7993 3468 l 7979 3442 l 7964 3411 l 7950 3375 l 7938 3341 l 7928 3309 l 7919 3281 l 7912 3258 l 7906 3240 l 7902 3226 l 7899 3215 l 7896 3207 l 7894 3200 l 7892 3193 l 7890 3184 l 7888 3173 l 7885 3157 l 7883 3137 l 7880 3111 l 7878 3079 l 7876 3041 l 7875 3000 l 7876 2959 l 7878 2921 l 7880 2889 l 7883 2863 l 7885 2843 l 7888 2827 l 7890 2816 l 7892 2807 l 7894 2800 l 7896 2793 l 7899 2785 l 7902 2774 l 7906 2760 l 7912 2742 l 7919 2719 l 7928 2691 l 7938 2659 l 7950 2625 l 7964 2589 l 7979 2558 l 7993 2532 l 8006 2512 l 8018 2497 l 8029 2485 l 8040 2476 l 8050 2469 l 8060 2462 l 8069 2455 l 8078 2447 l 8087 2438 l 8094 2428 l 8100 2417 l 8102 2407 l 8100 2400 l 8093 2398 l 8083 2400 l 8072 2406 l 8062 2413 l 8053 2422 l 8045 2431 l 8038 2440 l 8031 2450 l 8024 2460 l 8015 2471 l 8003 2482 l 7988 2494 l 7968 2507 l 7942 2521 l 7911 2536 l 7875 2550 l 7841 2562 l 7809 2572 l 7781 2581 l 7758 2588 l 7740 2594 l 7726 2598 l 7715 2601 l 7707 2604 l 7700 2606 l 7693 2608 l 7684 2610 l 7673 2612 l 7657 2615 l 7637 2617 l 7611 2620 l 7579 2622 l 7541 2624 l 7500 2625 l 7459 2624 l 7421 2622 l 7389 2620 l 7363 2617 l 7343 2615 l 7327 2612 l 7316 2610 l 7307 2608 l 7300 2606 l 7293 2604 l 7285 2601 l 7274 2598 l 7260 2594 l 7242 2588 l 7219 2581 l 7191 2572 l 7159 2562 l 7125 2550 l 7089 2536 l 7058 2521 l 7032 2507 l 7012 2494 l 6997 2482 l 6985 2471 l 6976 2460 l 6969 2450 l 6962 2440 l 6955 2431 l 6947 2422 l 6938 2413 l 6928 2406 l 6917 2400 l 6907 2398 l 6900 2400 l 6898 2407 l 6900 2417 l 6906 2428 l 6913 2438 l 6922 2447 l 6931 2455 l 6940 2462 l 6950 2469 l 6960 2476 l 6971 2485 l 6982 2497 l 6994 2512 l 7007 2532 l 7021 2558 l 7036 2589 l 7050 2625 l 7062 2659 l 7072 2691 l 7081 2719 l 7088 2742 l 7094 2760 l 7098 2774 l 7101 2785 l 7104 2793 l 7106 2800 l 7108 2807 l 7110 2816 l 7112 2827 l 7115 2843 l 7117 2863 l 7120 2889 l 7122 2921 l 7124 2959 l 7125 3000 l 7124 3041 l 7122 3079 l 7120 3111 l 7117 3137 l 7115 3157 l 7112 3173 l 7110 3184 l 7108 3193 l 7106 3200 l 7104 3207 l 7101 3215 l 7098 3226 l 7094 3240 l 7088 3258 l 7081 3281 l 7072 3309 l 7062 3341 l cp gs 0.80 setgray ef gr % Polyline n 8250 3375 m 8236 3411 l 8221 3442 l 8207 3468 l 8194 3488 l 8182 3503 l 8171 3515 l 8160 3524 l 8150 3531 l 8140 3538 l 8131 3545 l 8122 3553 l 8113 3562 l 8106 3572 l 8100 3583 l 8098 3593 l 8100 3600 l 8107 3602 l 8117 3600 l 8128 3594 l 8138 3587 l 8147 3578 l 8155 3569 l 8162 3560 l 8169 3550 l 8176 3540 l 8185 3529 l 8197 3518 l 8212 3506 l 8232 3493 l 8258 3479 l 8289 3464 l 8325 3450 l 8359 3438 l 8391 3428 l 8419 3419 l 8442 3412 l 8460 3406 l 8474 3402 l 8485 3399 l 8493 3396 l 8500 3394 l 8507 3392 l 8516 3390 l 8527 3388 l 8543 3385 l 8563 3383 l 8589 3380 l 8621 3378 l 8659 3376 l 8700 3375 l 8741 3376 l 8779 3378 l 8811 3380 l 8837 3383 l 8857 3385 l 8873 3388 l 8884 3390 l 8893 3392 l 8900 3394 l 8907 3396 l 8915 3399 l 8926 3402 l 8940 3406 l 8958 3412 l 8981 3419 l 9009 3428 l 9041 3438 l 9075 3450 l 9111 3464 l 9142 3479 l 9168 3493 l 9188 3506 l 9203 3518 l 9215 3529 l 9224 3540 l 9231 3550 l 9238 3560 l 9245 3569 l 9253 3578 l 9262 3587 l 9272 3594 l 9283 3600 l 9293 3602 l 9300 3600 l 9302 3593 l 9300 3583 l 9294 3572 l 9287 3562 l 9278 3553 l 9269 3545 l 9260 3538 l 9250 3531 l 9240 3524 l 9229 3515 l 9218 3503 l 9206 3488 l 9193 3468 l 9179 3442 l 9164 3411 l 9150 3375 l 9138 3341 l 9128 3309 l 9119 3281 l 9112 3258 l 9106 3240 l 9102 3226 l 9099 3215 l 9096 3207 l 9094 3200 l 9092 3193 l 9090 3184 l 9088 3173 l 9085 3157 l 9083 3137 l 9080 3111 l 9078 3079 l 9076 3041 l 9075 3000 l 9076 2959 l 9078 2921 l 9080 2889 l 9083 2863 l 9085 2843 l 9088 2827 l 9090 2816 l 9092 2807 l 9094 2800 l 9096 2793 l 9099 2785 l 9102 2774 l 9106 2760 l 9112 2742 l 9119 2719 l 9128 2691 l 9138 2659 l 9150 2625 l 9164 2589 l 9179 2558 l 9193 2532 l 9206 2512 l 9218 2497 l 9229 2485 l 9240 2476 l 9250 2469 l 9260 2462 l 9269 2455 l 9278 2447 l 9287 2438 l 9294 2428 l 9300 2417 l 9302 2407 l 9300 2400 l 9293 2398 l 9283 2400 l 9272 2406 l 9262 2413 l 9253 2422 l 9245 2431 l 9238 2440 l 9231 2450 l 9224 2460 l 9215 2471 l 9203 2482 l 9188 2494 l 9168 2507 l 9142 2521 l 9111 2536 l 9075 2550 l 9041 2562 l 9009 2572 l 8981 2581 l 8958 2588 l 8940 2594 l 8926 2598 l 8915 2601 l 8907 2604 l 8900 2606 l 8893 2608 l 8884 2610 l 8873 2612 l 8857 2615 l 8837 2617 l 8811 2620 l 8779 2622 l 8741 2624 l 8700 2625 l 8659 2624 l 8621 2622 l 8589 2620 l 8563 2617 l 8543 2615 l 8527 2612 l 8516 2610 l 8507 2608 l 8500 2606 l 8493 2604 l 8485 2601 l 8474 2598 l 8460 2594 l 8442 2588 l 8419 2581 l 8391 2572 l 8359 2562 l 8325 2550 l 8289 2536 l 8258 2521 l 8232 2507 l 8212 2494 l 8197 2482 l 8185 2471 l 8176 2460 l 8169 2450 l 8162 2440 l 8155 2431 l 8147 2422 l 8138 2413 l 8128 2406 l 8117 2400 l 8107 2398 l 8100 2400 l 8098 2407 l 8100 2417 l 8106 2428 l 8113 2438 l 8122 2447 l 8131 2455 l 8140 2462 l 8150 2469 l 8160 2476 l 8171 2485 l 8182 2497 l 8194 2512 l 8207 2532 l 8221 2558 l 8236 2589 l 8250 2625 l 8262 2659 l 8272 2691 l 8281 2719 l 8288 2742 l 8294 2760 l 8298 2774 l 8301 2785 l 8304 2793 l 8306 2800 l 8308 2807 l 8310 2816 l 8312 2827 l 8315 2843 l 8317 2863 l 8320 2889 l 8322 2921 l 8324 2959 l 8325 3000 l 8324 3041 l 8322 3079 l 8320 3111 l 8317 3137 l 8315 3157 l 8312 3173 l 8310 3184 l 8308 3193 l 8306 3200 l 8304 3207 l 8301 3215 l 8298 3226 l 8294 3240 l 8288 3258 l 8281 3281 l 8272 3309 l 8262 3341 l cp gs 0.80 setgray ef gr % Polyline n 7650 6525 m 7636 6561 l 7621 6592 l 7607 6618 l 7594 6638 l 7582 6653 l 7571 6665 l 7560 6674 l 7550 6681 l 7540 6688 l 7531 6695 l 7522 6703 l 7513 6712 l 7506 6722 l 7500 6733 l 7498 6743 l 7500 6750 l 7507 6752 l 7517 6750 l 7528 6744 l 7538 6737 l 7547 6728 l 7555 6719 l 7562 6710 l 7569 6700 l 7576 6690 l 7585 6679 l 7597 6668 l 7612 6656 l 7632 6643 l 7658 6629 l 7689 6614 l 7725 6600 l 7759 6588 l 7791 6578 l 7819 6569 l 7842 6562 l 7860 6556 l 7874 6552 l 7885 6549 l 7893 6546 l 7900 6544 l 7907 6542 l 7916 6540 l 7927 6538 l 7943 6535 l 7963 6533 l 7989 6530 l 8021 6528 l 8059 6526 l 8100 6525 l 8141 6526 l 8179 6528 l 8211 6530 l 8237 6533 l 8257 6535 l 8273 6538 l 8284 6540 l 8293 6542 l 8300 6544 l 8307 6546 l 8315 6549 l 8326 6552 l 8340 6556 l 8358 6562 l 8381 6569 l 8409 6578 l 8441 6588 l 8475 6600 l 8511 6614 l 8542 6629 l 8568 6643 l 8588 6656 l 8603 6668 l 8615 6679 l 8624 6690 l 8631 6700 l 8638 6710 l 8645 6719 l 8653 6728 l 8662 6737 l 8672 6744 l 8683 6750 l 8693 6752 l 8700 6750 l 8702 6743 l 8700 6733 l 8694 6722 l 8687 6712 l 8678 6703 l 8669 6695 l 8660 6688 l 8650 6681 l 8640 6674 l 8629 6665 l 8618 6653 l 8606 6638 l 8593 6618 l 8579 6592 l 8564 6561 l 8550 6525 l 8538 6491 l 8528 6459 l 8519 6431 l 8512 6408 l 8506 6390 l 8502 6376 l 8499 6365 l 8496 6357 l 8494 6350 l 8492 6343 l 8490 6334 l 8488 6323 l 8485 6307 l 8483 6287 l 8480 6261 l 8478 6229 l 8476 6191 l 8475 6150 l 8476 6109 l 8478 6071 l 8480 6039 l 8483 6013 l 8485 5993 l 8488 5977 l 8490 5966 l 8492 5957 l 8494 5950 l 8496 5943 l 8499 5935 l 8502 5924 l 8506 5910 l 8512 5892 l 8519 5869 l 8528 5841 l 8538 5809 l 8550 5775 l 8564 5739 l 8579 5708 l 8593 5682 l 8606 5662 l 8618 5647 l 8629 5635 l 8640 5626 l 8650 5619 l 8660 5612 l 8669 5605 l 8678 5597 l 8687 5588 l 8694 5578 l 8700 5567 l 8702 5557 l 8700 5550 l 8693 5548 l 8683 5550 l 8672 5556 l 8662 5563 l 8653 5572 l 8645 5581 l 8638 5590 l 8631 5600 l 8624 5610 l 8615 5621 l 8603 5632 l 8588 5644 l 8568 5657 l 8542 5671 l 8511 5686 l 8475 5700 l 8441 5712 l 8409 5722 l 8381 5731 l 8358 5738 l 8340 5744 l 8326 5748 l 8315 5751 l 8307 5754 l 8300 5756 l 8293 5758 l 8284 5760 l 8273 5762 l 8257 5765 l 8237 5767 l 8211 5770 l 8179 5772 l 8141 5774 l 8100 5775 l 8059 5774 l 8021 5772 l 7989 5770 l 7963 5767 l 7943 5765 l 7927 5762 l 7916 5760 l 7907 5758 l 7900 5756 l 7893 5754 l 7885 5751 l 7874 5748 l 7860 5744 l 7842 5738 l 7819 5731 l 7791 5722 l 7759 5712 l 7725 5700 l 7689 5686 l 7658 5671 l 7632 5657 l 7612 5644 l 7597 5632 l 7585 5621 l 7576 5610 l 7569 5600 l 7562 5590 l 7555 5581 l 7547 5572 l 7538 5563 l 7528 5556 l 7517 5550 l 7507 5548 l 7500 5550 l 7498 5557 l 7500 5567 l 7506 5578 l 7513 5588 l 7522 5597 l 7531 5605 l 7540 5612 l 7550 5619 l 7560 5626 l 7571 5635 l 7582 5647 l 7594 5662 l 7607 5682 l 7621 5708 l 7636 5739 l 7650 5775 l 7662 5809 l 7672 5841 l 7681 5869 l 7688 5892 l 7694 5910 l 7698 5924 l 7701 5935 l 7704 5943 l 7706 5950 l 7708 5957 l 7710 5966 l 7712 5977 l 7715 5993 l 7717 6013 l 7720 6039 l 7722 6071 l 7724 6109 l 7725 6150 l 7724 6191 l 7722 6229 l 7720 6261 l 7717 6287 l 7715 6307 l 7712 6323 l 7710 6334 l 7708 6343 l 7706 6350 l 7704 6357 l 7701 6365 l 7698 6376 l 7694 6390 l 7688 6408 l 7681 6431 l 7672 6459 l 7662 6491 l cp gs 0.80 setgray ef gr % Polyline n 10050 7725 m 10036 7761 l 10021 7792 l 10007 7818 l 9994 7838 l 9982 7853 l 9971 7865 l 9960 7874 l 9950 7881 l 9940 7888 l 9931 7895 l 9922 7903 l 9913 7912 l 9906 7922 l 9900 7933 l 9898 7943 l 9900 7950 l 9907 7952 l 9917 7950 l 9928 7944 l 9938 7937 l 9947 7928 l 9955 7919 l 9962 7910 l 9969 7900 l 9976 7890 l 9985 7879 l 9997 7868 l 10012 7856 l 10032 7843 l 10058 7829 l 10089 7814 l 10125 7800 l 10159 7788 l 10191 7778 l 10219 7769 l 10242 7762 l 10260 7756 l 10274 7752 l 10285 7749 l 10293 7746 l 10300 7744 l 10307 7742 l 10316 7740 l 10327 7738 l 10343 7735 l 10363 7733 l 10389 7730 l 10421 7728 l 10459 7726 l 10500 7725 l 10541 7726 l 10579 7728 l 10611 7730 l 10637 7733 l 10657 7735 l 10673 7738 l 10684 7740 l 10693 7742 l 10700 7744 l 10707 7746 l 10715 7749 l 10726 7752 l 10740 7756 l 10758 7762 l 10781 7769 l 10809 7778 l 10841 7788 l 10875 7800 l 10911 7814 l 10942 7829 l 10968 7843 l 10988 7856 l 11003 7868 l 11015 7879 l 11024 7890 l 11031 7900 l 11038 7910 l 11045 7919 l 11053 7928 l 11062 7937 l 11072 7944 l 11083 7950 l 11093 7952 l 11100 7950 l 11102 7943 l 11100 7933 l 11094 7922 l 11087 7912 l 11078 7903 l 11069 7895 l 11060 7888 l 11050 7881 l 11040 7874 l 11029 7865 l 11018 7853 l 11006 7838 l 10993 7818 l 10979 7792 l 10964 7761 l 10950 7725 l 10938 7691 l 10928 7659 l 10919 7631 l 10912 7608 l 10906 7590 l 10902 7576 l 10899 7565 l 10896 7557 l 10894 7550 l 10892 7543 l 10890 7534 l 10888 7523 l 10885 7507 l 10883 7487 l 10880 7461 l 10878 7429 l 10876 7391 l 10875 7350 l 10876 7309 l 10878 7271 l 10880 7239 l 10883 7213 l 10885 7193 l 10888 7177 l 10890 7166 l 10892 7157 l 10894 7150 l 10896 7143 l 10899 7135 l 10902 7124 l 10906 7110 l 10912 7092 l 10919 7069 l 10928 7041 l 10938 7009 l 10950 6975 l 10964 6939 l 10979 6908 l 10993 6882 l 11006 6862 l 11018 6847 l 11029 6835 l 11040 6826 l 11050 6819 l 11060 6812 l 11069 6805 l 11078 6797 l 11087 6788 l 11094 6778 l 11100 6767 l 11102 6757 l 11100 6750 l 11093 6748 l 11083 6750 l 11072 6756 l 11062 6763 l 11053 6772 l 11045 6781 l 11038 6790 l 11031 6800 l 11024 6810 l 11015 6821 l 11003 6832 l 10988 6844 l 10968 6857 l 10942 6871 l 10911 6886 l 10875 6900 l 10841 6912 l 10809 6922 l 10781 6931 l 10758 6938 l 10740 6944 l 10726 6948 l 10715 6951 l 10707 6954 l 10700 6956 l 10693 6958 l 10684 6960 l 10673 6962 l 10657 6965 l 10637 6967 l 10611 6970 l 10579 6972 l 10541 6974 l 10500 6975 l 10459 6974 l 10421 6972 l 10389 6970 l 10363 6967 l 10343 6965 l 10327 6962 l 10316 6960 l 10307 6958 l 10300 6956 l 10293 6954 l 10285 6951 l 10274 6948 l 10260 6944 l 10242 6938 l 10219 6931 l 10191 6922 l 10159 6912 l 10125 6900 l 10089 6886 l 10058 6871 l 10032 6857 l 10012 6844 l 9997 6832 l 9985 6821 l 9976 6810 l 9969 6800 l 9962 6790 l 9955 6781 l 9947 6772 l 9938 6763 l 9928 6756 l 9917 6750 l 9907 6748 l 9900 6750 l 9898 6757 l 9900 6767 l 9906 6778 l 9913 6788 l 9922 6797 l 9931 6805 l 9940 6812 l 9950 6819 l 9960 6826 l 9971 6835 l 9982 6847 l 9994 6862 l 10007 6882 l 10021 6908 l 10036 6939 l 10050 6975 l 10062 7009 l 10072 7041 l 10081 7069 l 10088 7092 l 10094 7110 l 10098 7124 l 10101 7135 l 10104 7143 l 10106 7150 l 10108 7157 l 10110 7166 l 10112 7177 l 10115 7193 l 10117 7213 l 10120 7239 l 10122 7271 l 10124 7309 l 10125 7350 l 10124 7391 l 10122 7429 l 10120 7461 l 10117 7487 l 10115 7507 l 10112 7523 l 10110 7534 l 10108 7543 l 10106 7550 l 10104 7557 l 10101 7565 l 10098 7576 l 10094 7590 l 10088 7608 l 10081 7631 l 10072 7659 l 10062 7691 l cp gs 0.80 setgray ef gr % Polyline n 11250 7725 m 11236 7761 l 11221 7792 l 11207 7818 l 11194 7838 l 11182 7853 l 11171 7865 l 11160 7874 l 11150 7881 l 11140 7888 l 11131 7895 l 11122 7903 l 11113 7912 l 11106 7922 l 11100 7933 l 11098 7943 l 11100 7950 l 11107 7952 l 11117 7950 l 11128 7944 l 11138 7937 l 11147 7928 l 11155 7919 l 11162 7910 l 11169 7900 l 11176 7890 l 11185 7879 l 11197 7868 l 11212 7856 l 11232 7843 l 11258 7829 l 11289 7814 l 11325 7800 l 11359 7788 l 11391 7778 l 11419 7769 l 11442 7762 l 11460 7756 l 11474 7752 l 11485 7749 l 11493 7746 l 11500 7744 l 11507 7742 l 11516 7740 l 11527 7738 l 11543 7735 l 11563 7733 l 11589 7730 l 11621 7728 l 11659 7726 l 11700 7725 l 11741 7726 l 11779 7728 l 11811 7730 l 11837 7733 l 11857 7735 l 11873 7738 l 11884 7740 l 11893 7742 l 11900 7744 l 11907 7746 l 11915 7749 l 11926 7752 l 11940 7756 l 11958 7762 l 11981 7769 l 12009 7778 l 12041 7788 l 12075 7800 l 12111 7814 l 12142 7829 l 12168 7843 l 12188 7856 l 12203 7868 l 12215 7879 l 12224 7890 l 12231 7900 l 12238 7910 l 12245 7919 l 12253 7928 l 12262 7937 l 12272 7944 l 12283 7950 l 12293 7952 l 12300 7950 l 12302 7943 l 12300 7933 l 12294 7922 l 12287 7912 l 12278 7903 l 12269 7895 l 12260 7888 l 12250 7881 l 12240 7874 l 12229 7865 l 12218 7853 l 12206 7838 l 12193 7818 l 12179 7792 l 12164 7761 l 12150 7725 l 12138 7691 l 12128 7659 l 12119 7631 l 12112 7608 l 12106 7590 l 12102 7576 l 12099 7565 l 12096 7557 l 12094 7550 l 12092 7543 l 12090 7534 l 12088 7523 l 12085 7507 l 12083 7487 l 12080 7461 l 12078 7429 l 12076 7391 l 12075 7350 l 12076 7309 l 12078 7271 l 12080 7239 l 12083 7213 l 12085 7193 l 12088 7177 l 12090 7166 l 12092 7157 l 12094 7150 l 12096 7143 l 12099 7135 l 12102 7124 l 12106 7110 l 12112 7092 l 12119 7069 l 12128 7041 l 12138 7009 l 12150 6975 l 12164 6939 l 12179 6908 l 12193 6882 l 12206 6862 l 12218 6847 l 12229 6835 l 12240 6826 l 12250 6819 l 12260 6812 l 12269 6805 l 12278 6797 l 12287 6788 l 12294 6778 l 12300 6767 l 12302 6757 l 12300 6750 l 12293 6748 l 12283 6750 l 12272 6756 l 12262 6763 l 12253 6772 l 12245 6781 l 12238 6790 l 12231 6800 l 12224 6810 l 12215 6821 l 12203 6832 l 12188 6844 l 12168 6857 l 12142 6871 l 12111 6886 l 12075 6900 l 12041 6912 l 12009 6922 l 11981 6931 l 11958 6938 l 11940 6944 l 11926 6948 l 11915 6951 l 11907 6954 l 11900 6956 l 11893 6958 l 11884 6960 l 11873 6962 l 11857 6965 l 11837 6967 l 11811 6970 l 11779 6972 l 11741 6974 l 11700 6975 l 11659 6974 l 11621 6972 l 11589 6970 l 11563 6967 l 11543 6965 l 11527 6962 l 11516 6960 l 11507 6958 l 11500 6956 l 11493 6954 l 11485 6951 l 11474 6948 l 11460 6944 l 11442 6938 l 11419 6931 l 11391 6922 l 11359 6912 l 11325 6900 l 11289 6886 l 11258 6871 l 11232 6857 l 11212 6844 l 11197 6832 l 11185 6821 l 11176 6810 l 11169 6800 l 11162 6790 l 11155 6781 l 11147 6772 l 11138 6763 l 11128 6756 l 11117 6750 l 11107 6748 l 11100 6750 l 11098 6757 l 11100 6767 l 11106 6778 l 11113 6788 l 11122 6797 l 11131 6805 l 11140 6812 l 11150 6819 l 11160 6826 l 11171 6835 l 11182 6847 l 11194 6862 l 11207 6882 l 11221 6908 l 11236 6939 l 11250 6975 l 11262 7009 l 11272 7041 l 11281 7069 l 11288 7092 l 11294 7110 l 11298 7124 l 11301 7135 l 11304 7143 l 11306 7150 l 11308 7157 l 11310 7166 l 11312 7177 l 11315 7193 l 11317 7213 l 11320 7239 l 11322 7271 l 11324 7309 l 11325 7350 l 11324 7391 l 11322 7429 l 11320 7461 l 11317 7487 l 11315 7507 l 11312 7523 l 11310 7534 l 11308 7543 l 11306 7550 l 11304 7557 l 11301 7565 l 11298 7576 l 11294 7590 l 11288 7608 l 11281 7631 l 11272 7659 l 11262 7691 l cp gs 0.80 setgray ef gr % here ends figure; % % here starts figure with depth 55 % Polyline 0 slj 0 slc 0.000 slw n 11250 4800 m 10950 4800 l 10950 4500 l 11250 4500 l cp gs 0.50 setgray ef gr % Polyline n 4500 4800 m 4200 4800 l 4200 4500 l 4500 4500 l cp gs 0.50 setgray ef gr % Polyline n 8250 4800 m 7950 4800 l 7950 4500 l 8250 4500 l cp gs 0.50 setgray ef gr % here ends figure; % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 12900 300 m 0 300 l 0 0 l 12900 0 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 3150 5550 m 3750 6150 l 3150 6750 l 3750 7350 l 3150 7950 l gs col0 s gr % Polyline n 4350 5550 m 3750 6150 l 4350 6750 l 3750 7350 l 4350 7950 l gs col0 s gr % Polyline n 5550 5550 m 4950 6150 l 5550 6750 l gs col0 s gr % Polyline n 4350 5550 m 4950 6150 l 4350 6750 l gs col0 s gr % Polyline n 6900 1200 m 7500 1800 l 6900 2400 l 7500 3000 l 6900 3600 l gs col0 s gr % Polyline n 8100 1200 m 8700 1800 l 8100 2400 l 8700 3000 l 8100 3600 l gs col0 s gr % Polyline n 8100 1200 m 7500 1800 l 8100 2400 l 7500 3000 l 8100 3600 l gs col0 s gr % Polyline n 5700 1200 m 6300 1800 l 5700 2400 l 6300 3000 l 5700 3600 l gs col0 s gr % Polyline n 6900 1200 m 6300 1800 l 6900 2400 l 6300 3000 l 6900 3600 l gs col0 s gr % Polyline n 9300 1200 m 8700 1800 l 9300 2400 l 8700 3000 l 9300 3600 l gs col0 s gr % Polyline n 7500 5550 m 8100 6150 l 7500 6750 l gs col0 s gr % Polyline n 8700 5550 m 8100 6150 l 8700 6750 l gs col0 s gr % Polyline n 9900 6750 m 10500 7350 l 9900 7950 l gs col0 s gr % Polyline n 11100 6750 m 10500 7350 l 11100 7950 l gs col0 s gr % Polyline n 11100 6750 m 11700 7350 l 11100 7950 l gs col0 s gr % Polyline n 12300 6750 m 11700 7350 l 12300 7950 l gs col0 s gr % Polyline n 2100 12000 m 2100 4800 l gs col0 s gr % Polyline n 9300 12000 m 9300 4800 l gs col0 s gr % Polyline n 6900 12000 m 6900 4800 l gs col0 s gr % Polyline n 12900 4800 m 0 4800 l 0 4500 l 12900 4500 l cp gs 0.50 setgray ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 40 /Times-Roman ff 316.67 scf sf 174 231 m gs 1 -1 sc (Duplicated data) col7 sh gr % Polyline 2 slj 0 slc 7.500 slw [15 45] 45 sd n 15675 1875 m 15675 1878 l 15676 1884 l 15677 1894 l 15679 1911 l 15681 1933 l 15684 1960 l 15687 1992 l 15690 2027 l 15693 2064 l 15696 2103 l 15699 2141 l 15702 2178 l 15704 2214 l 15706 2249 l 15707 2281 l 15708 2312 l 15708 2342 l 15708 2370 l 15708 2397 l 15706 2423 l 15705 2449 l 15703 2474 l 15700 2500 l 15697 2524 l 15694 2548 l 15690 2573 l 15686 2598 l 15682 2624 l 15677 2650 l 15673 2677 l 15667 2705 l 15662 2732 l 15656 2761 l 15651 2789 l 15645 2818 l 15639 2847 l 15634 2875 l 15628 2903 l 15623 2931 l 15617 2959 l 15613 2986 l 15608 3012 l 15604 3037 l 15600 3062 l 15597 3086 l 15594 3109 l 15591 3132 l 15589 3154 l 15588 3175 l 15586 3200 l 15586 3224 l 15586 3248 l 15587 3273 l 15589 3298 l 15592 3323 l 15596 3350 l 15601 3378 l 15607 3408 l 15613 3438 l 15620 3470 l 15628 3503 l 15636 3535 l 15645 3566 l 15652 3595 l 15659 3620 l 15665 3641 l 15669 3656 l 15673 3667 l 15674 3672 l 15675 3675 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 17025 900 m 17025 903 l 17026 909 l 17027 919 l 17029 936 l 17031 958 l 17034 985 l 17037 1017 l 17040 1052 l 17043 1089 l 17046 1128 l 17049 1166 l 17052 1203 l 17054 1239 l 17056 1274 l 17057 1306 l 17058 1337 l 17058 1367 l 17058 1395 l 17058 1422 l 17056 1448 l 17055 1474 l 17053 1499 l 17050 1525 l 17047 1549 l 17044 1573 l 17040 1598 l 17036 1623 l 17032 1649 l 17027 1675 l 17023 1702 l 17017 1730 l 17012 1757 l 17006 1786 l 17001 1814 l 16995 1843 l 16989 1872 l 16984 1900 l 16978 1928 l 16973 1956 l 16967 1984 l 16963 2011 l 16958 2037 l 16954 2062 l 16950 2087 l 16947 2111 l 16944 2134 l 16941 2157 l 16939 2179 l 16938 2200 l 16936 2225 l 16936 2249 l 16936 2273 l 16937 2298 l 16939 2323 l 16942 2348 l 16946 2375 l 16951 2403 l 16957 2433 l 16963 2463 l 16970 2495 l 16978 2528 l 16986 2560 l 16995 2591 l 17002 2620 l 17009 2645 l 17015 2666 l 17019 2681 l 17023 2692 l 17024 2697 l 17025 2700 l gs col0 s gr [] 0 sd /Times-Roman ff 266.67 scf sf 150 4731 m gs 1 -1 sc (Local data) col7 sh gr % here ends figure; % % here starts figure with depth 35 /Times-Roman ff 266.67 scf sf 11025 4731 m gs 1 -1 sc (2) col7 sh gr /Times-Roman ff 266.67 scf sf 4275 4731 m gs 1 -1 sc (0) col7 sh gr /Times-Roman ff 266.67 scf sf 8025 4731 m gs 1 -1 sc (1) col7 sh gr % here ends figure; % % here starts figure with depth 20 % Polyline 0 slj 0 slc 7.500 slw [15 45] 45 sd n 6000 11400 m 6300 11400 l 6300 11700 l 6000 11700 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6300 11400 m 6000 11700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6000 11400 m 6300 11700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12000 11400 m 12300 11400 l 12300 11700 l 12000 11700 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12300 11400 m 12000 11700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12000 11400 m 12300 11700 l gs col0 s gr [] 0 sd % Polyline gs clippath 10957 11407 m 10943 11407 l 10920 11264 l 10980 11264 l cp eoclip n 10050 10500 m 10050 11025 l 10950 11025 l 10950 11400 l gs col0 s gr gr % arrowhead n 10920 11264 m 10950 11384 l 10980 11264 l 10920 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 12157 11407 m 12143 11407 l 12120 11264 l 12180 11264 l cp eoclip n 10350 10500 m 10350 10950 l 12150 10950 l 12150 11400 l gs col0 s gr gr % arrowhead n 12120 11264 m 12150 11384 l 12180 11264 l 12120 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline [15 45] 45 sd n 8400 11400 m 8700 11400 l 8700 11700 l 8400 11700 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8700 11400 m 8400 11700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 11400 m 8700 11700 l gs col0 s gr [] 0 sd % Polyline gs clippath 8557 11407 m 8543 11407 l 8520 11264 l 8580 11264 l cp eoclip n 7650 10500 m 7650 10950 l 8550 10950 l 8550 11400 l gs col0 s gr gr % arrowhead n 8520 11264 m 8550 11384 l 8580 11264 l 8520 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4957 11407 m 4943 11407 l 4920 11264 l 4980 11264 l cp eoclip n 3150 10500 m 3150 10950 l 4950 10950 l 4950 11400 l gs col0 s gr gr % arrowhead n 4920 11264 m 4950 11384 l 4980 11264 l 4920 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3757 11407 m 3743 11407 l 3720 11264 l 3780 11264 l cp eoclip n 2850 10500 m 2850 11025 l 3750 11025 l 3750 11400 l gs col0 s gr gr % arrowhead n 3720 11264 m 3750 11384 l 3780 11264 l 3720 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6157 11407 m 6143 11407 l 6120 11264 l 6180 11264 l cp eoclip n 3450 10500 m 3450 10875 l 6150 10875 l 6150 11400 l gs col0 s gr gr % arrowhead n 6120 11264 m 6150 11384 l 6180 11264 l 6120 11264 l cp gs 0.00 setgray ef gr col0 s /Courier ff 266.67 scf sf 300 825 m gs 1 -1 sc (baseval) col0 sh gr /Courier ff 266.67 scf sf 300 2025 m gs 1 -1 sc (eelmglbnbr) col0 sh gr /Courier ff 266.67 scf sf 300 3825 m gs 1 -1 sc (prelvrttab) col0 sh gr /Courier ff 266.67 scf sf 300 2625 m gs 1 -1 sc (vnodglbnbr) col0 sh gr /Courier ff 266.67 scf sf 300 3225 m gs 1 -1 sc (procglbnbr) col0 sh gr /Courier ff 266.67 scf sf 300 9825 m gs 1 -1 sc (eelmlocnbr) col0 sh gr /Courier ff 266.67 scf sf 300 9225 m gs 1 -1 sc (velmlocnbr) col0 sh gr /Courier ff 266.67 scf sf 300 1425 m gs 1 -1 sc (velmglbnbr) col0 sh gr /Courier ff 266.67 scf sf 300 10425 m gs 1 -1 sc (velmloctab) col0 sh gr /Courier ff 266.67 scf sf 300 11625 m gs 1 -1 sc (eelmloctab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 0 slj 0 slc 7.500 slw n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1800 m 2700 1800 l 2700 2100 l 2400 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2425 2040 m gs 1 -1 sc (24) col0 sh gr % Polyline n 3000 3600 m 3300 3600 l 3300 3900 l 3000 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3600 m 3000 3600 l 3000 3900 l 2700 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3600 m 2700 3600 l 2700 3900 l 2400 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3600 m 3600 3600 l 3600 3900 l 3300 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 2325 m 2700 2325 l 2700 2625 l 2400 2625 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2425 2565 m gs 1 -1 sc (12) col0 sh gr % Polyline n 2400 9600 m 2700 9600 l 2700 9900 l 2400 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 2425 9840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 2400 9000 m 2700 9000 l 2700 9300 l 2400 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1200 m 2700 1200 l 2700 1500 l 2400 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 10200 m 2700 10200 l 2700 10500 l 2400 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 10200 m 3300 10200 l 3300 10500 l 3000 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 11400 m 2700 11400 l 2700 11700 l 2400 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 11400 m 3000 11400 l 3000 11700 l 2700 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 11400 m 4500 11400 l 4500 11700 l 4200 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 11400 m 4800 11400 l 4800 11700 l 4500 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 11400 m 5100 11400 l 5100 11700 l 4800 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 10200 m 3600 10200 l 3600 10500 l 3300 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3325 10440 m gs 1 -1 sc (13) col0 sh gr % Polyline n 2700 10200 m 3000 10200 l 3000 10500 l 2700 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 11400 m 5700 11400 l 5700 11700 l 5400 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 11400 m 5400 11400 l 5400 11700 l 5100 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 11400 m 3900 11400 l 3900 11700 l 3600 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 11400 m 3300 11400 l 3300 11700 l 3000 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 11400 m 4200 11400 l 4200 11700 l 3900 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3925 11640 m gs 1 -1 sc (11) col0 sh gr % Polyline n 3300 11400 m 3600 11400 l 3600 11700 l 3300 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 3325 11640 m gs 1 -1 sc (11) col0 sh gr % Polyline n 5700 11400 m 6000 11400 l 6000 11700 l 5700 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 9000 m 9900 9000 l 9900 9300 l 9600 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 9600 m 9900 9600 l 9900 9900 l 9600 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 10200 m 9900 10200 l 9900 10500 l 9600 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 10200 m 10200 10200 l 10200 10500 l 9900 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 10000 10440 m gs 1 -1 sc (5) col0 sh gr % Polyline n 9900 11400 m 10200 11400 l 10200 11700 l 9900 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 11400 m 10500 11400 l 10500 11700 l 10200 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10500 11400 m 10800 11400 l 10800 11700 l 10500 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10800 11400 m 11100 11400 l 11100 11700 l 10800 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11100 11400 m 11400 11400 l 11400 11700 l 11100 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 11200 11640 m gs 1 -1 sc (9) col0 sh gr % Polyline n 11700 11400 m 12000 11400 l 12000 11700 l 11700 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 10200 m 10500 10200 l 10500 10500 l 10200 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 11400 m 9900 11400 l 9900 11700 l 9600 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 9625 11640 m gs 1 -1 sc (12) col0 sh gr % Polyline n 11400 11400 m 11700 11400 l 11700 11700 l 11400 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 11425 11640 m gs 1 -1 sc (12) col0 sh gr % Polyline gs clippath 9757 11407 m 9743 11407 l 9720 11264 l 9780 11264 l cp eoclip n 9750 10500 m 9750 11400 l gs col0 s gr gr % arrowhead n 9720 11264 m 9750 11384 l 9780 11264 l 9720 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline n 7200 9000 m 7500 9000 l 7500 9300 l 7200 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 9600 m 7500 9600 l 7500 9900 l 7200 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 10200 m 7500 10200 l 7500 10500 l 7200 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 11400 m 7800 11400 l 7800 11700 l 7500 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 11400 m 8100 11400 l 8100 11700 l 7800 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 10200 m 7800 10200 l 7800 10500 l 7500 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 11400 m 8400 11400 l 8400 11700 l 8100 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 11400 m 7500 11400 l 7500 11700 l 7200 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 266.67 scf sf 7225 11640 m gs 1 -1 sc (10) col0 sh gr % Polyline gs clippath 7357 11407 m 7343 11407 l 7320 11264 l 7380 11264 l cp eoclip n 7350 10500 m 7350 11400 l gs col0 s gr gr % arrowhead n 7320 11264 m 7350 11384 l 7380 11264 l 7320 11264 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2557 11407 m 2543 11407 l 2520 11264 l 2580 11264 l cp eoclip n 2550 10500 m 2550 11400 l gs col0 s gr gr % arrowhead n 2520 11264 m 2550 11384 l 2580 11264 l 2520 11264 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw 0 slc n 4950 6150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3750 6150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3750 7350 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4350 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5550 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3150 5550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3150 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4350 7950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5550 5550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4350 5550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3150 7950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 1800 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6300 1800 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8700 1800 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6300 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9300 2400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6900 2400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8700 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8100 2400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5700 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5700 2400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6900 3600 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8100 3600 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9300 3600 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8100 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9300 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6900 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5700 3600 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8100 6150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8700 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 5550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8700 5550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10500 7350 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12300 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9900 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11700 7350 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11100 6750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9900 7950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11100 7950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12300 7950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 266.67 scf sf 4900 6240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 3700 6240 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3700 7440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 5640 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 6840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 4300 8040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 8040 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 7450 1890 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 6250 1890 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 8650 1890 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 7450 3090 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 6250 3090 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 5650 1290 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 5650 2490 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 6850 3690 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 9250 3690 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 266.67 scf sf 5650 3690 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 8050 6240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 10450 7440 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 9850 8040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 12250 8040 m gs 1 -1 sc (9) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 266.67 scf sf 4300 6840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 5500 6840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 5500 5640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 266.67 scf sf 4220 5640 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 266.67 scf sf 9250 2490 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 6850 2490 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 8650 3090 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 8050 2490 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 7970 3690 m gs 1 -1 sc (12) col0 sh gr /Times-Roman ff 266.67 scf sf 8050 1290 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 266.67 scf sf 9170 1290 m gs 1 -1 sc (10) col0 sh gr /Times-Roman ff 266.67 scf sf 6770 1290 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 266.67 scf sf 8650 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 7450 6840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 7450 5640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 266.67 scf sf 8570 5640 m gs 1 -1 sc (10) col0 sh gr /Times-Roman ff 266.67 scf sf 12250 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 9850 6840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 11650 7440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 11050 6840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 10970 8040 m gs 1 -1 sc (12) col0 sh gr % here ends figure; % % here starts figure with depth 5 /Times-Roman ff 266.67 scf sf 2500 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 3840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 2800 3840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 3840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3400 3840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 9240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 1440 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 10440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 10440 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 266.67 scf sf 2500 11640 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 2800 11640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 4300 11640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 4600 11640 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 4900 11640 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 2800 10440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 5500 11640 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 5200 11640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3700 11640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 266.67 scf sf 3100 11640 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 5800 11640 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 9700 9240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 9700 9840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 266.67 scf sf 9700 10440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 10000 11640 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 10300 11640 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 10600 11640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 10900 11640 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 11800 11640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 10300 10440 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 266.67 scf sf 7300 9240 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 7300 9840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 266.67 scf sf 7300 10440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 7600 11640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 266.67 scf sf 7900 11640 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 7600 10440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 266.67 scf sf 8200 11640 m gs 1 -1 sc (8) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_adm.fig000066400000000000000000000553331514310134000264240ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.8b Landscape Center Inches Letter 100.00 Single 0 1200 2 6 0 0 12900 300 2 2 0 1 0 0 50 -1 10 0.000 0 0 -1 0 0 5 12900 300 0 300 0 0 12900 0 12900 300 4 0 7 40 -1 0 19 0.0000 4 300 1995 174 231 Duplicated data\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 840 1\001 -6 6 2400 1800 2700 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1800 2700 1800 2700 2100 2400 2100 2400 1800 4 0 0 15 0 0 16 0.0000 4 195 270 2425 2040 24\001 -6 6 3000 3600 3300 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3600 3300 3600 3300 3900 3000 3900 3000 3600 4 0 0 5 0 0 16 0.0000 4 195 135 3100 3840 5\001 -6 6 2700 3600 3000 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3600 3000 3600 3000 3900 2700 3900 2700 3600 4 0 0 5 0 0 16 0.0000 4 195 135 2800 3840 4\001 -6 6 2400 3600 2700 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3600 2700 3600 2700 3900 2400 3900 2400 3600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 3840 1\001 -6 6 3300 3600 3600 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3600 3600 3600 3600 3900 3300 3900 3300 3600 4 0 0 5 0 0 16 0.0000 4 195 135 3400 3840 7\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 3240 3\001 -6 6 2400 2325 2700 2625 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 2325 2700 2325 2700 2625 2400 2625 2400 2325 4 0 0 15 0 0 16 0.0000 4 195 270 2425 2565 12\001 -6 6 2400 9600 2700 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 9600 2700 9600 2700 9900 2400 9900 2400 9600 4 0 0 15 0 0 16 0.0000 4 195 270 2425 9840 12\001 -6 6 2400 9000 2700 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 9000 2700 9000 2700 9300 2400 9300 2400 9000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 9240 3\001 -6 6 3000 5400 5700 8100 6 4800 6000 5100 6300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 4950 6150 150 150 4950 6150 5100 6150 4 0 0 10 0 0 16 0.0000 4 195 135 4900 6240 2\001 -6 6 3600 6000 3900 6300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3750 6150 150 150 3750 6150 3900 6150 4 0 0 10 0 0 16 0.0000 4 195 135 3700 6240 1\001 -6 6 3600 7200 3900 7500 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3750 7350 150 150 3750 7350 3900 7350 4 0 0 10 0 0 16 0.0000 4 195 135 3700 7440 3\001 -6 6 4200 6600 4500 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 4350 6750 150 150 4350 6750 4500 6750 4 0 0 8 0 0 16 0.0000 4 195 135 4300 6840 7\001 -6 6 5400 6600 5700 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5550 6750 150 150 5550 6750 5700 6750 4 0 0 8 0 0 16 0.0000 4 195 135 5500 6840 6\001 -6 6 3000 5400 3300 5700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3150 5550 150 150 3150 5550 3300 5550 4 0 0 10 0 0 16 0.0000 4 195 135 3100 5640 5\001 -6 6 3000 6600 3300 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3150 6750 150 150 3150 6750 3300 6750 4 0 0 10 0 0 16 0.0000 4 195 135 3100 6840 1\001 -6 6 4200 7800 4500 8100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 4350 7950 150 150 4350 7950 4500 7950 4 0 0 10 0 0 16 0.0000 4 195 135 4300 8040 2\001 -6 6 5400 5400 5700 5700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5550 5550 150 150 5550 5550 5700 5550 4 0 0 8 0 0 16 0.0000 4 195 135 5500 5640 8\001 -6 6 4200 5400 4500 5700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 4350 5550 150 150 4350 5550 4500 5550 4 0 0 8 0 0 16 0.0000 4 195 270 4220 5640 11\001 -6 6 3000 7800 3300 8100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3150 7950 150 150 3150 7950 3300 7950 4 0 0 10 0 0 16 0.0000 4 195 135 3100 8040 4\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3150 5550 3750 6150 3150 6750 3750 7350 3150 7950 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 4350 5550 3750 6150 4350 6750 3750 7350 4350 7950 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 5550 5550 4950 6150 5550 6750 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 4350 5550 4950 6150 4350 6750 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 4575 6150 4500 6525 4350 6750 4575 6600 4950 6525 5325 6600 5550 6750 5400 6525 5325 6150 5400 5775 5550 5550 5325 5700 4950 5775 4575 5700 4350 5550 4500 5775 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 3375 6150 3300 6525 3150 6750 3375 6600 3750 6525 4125 6600 4350 6750 4200 6525 4125 6150 4200 5775 4350 5550 4125 5700 3750 5775 3375 5700 3150 5550 3300 5775 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 3375 7350 3300 7725 3150 7950 3375 7800 3750 7725 4125 7800 4350 7950 4200 7725 4125 7350 4200 6975 4350 6750 4125 6900 3750 6975 3375 6900 3150 6750 3300 6975 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -6 6 10950 4500 11250 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 11250 4800 10950 4800 10950 4500 11250 4500 11250 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 11025 4731 2\001 -6 6 5550 1050 9450 3750 6 7350 1650 7650 1950 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 1800 150 150 7500 1800 7650 1800 4 0 0 10 0 0 16 0.0000 4 195 135 7450 1890 2\001 -6 6 6150 1650 6450 1950 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6300 1800 150 150 6300 1800 6450 1800 4 0 0 10 0 0 16 0.0000 4 195 135 6250 1890 1\001 -6 6 8550 1650 8850 1950 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8700 1800 150 150 8700 1800 8850 1800 4 0 0 10 0 0 16 0.0000 4 195 135 8650 1890 4\001 -6 6 7350 2850 7650 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 3000 150 150 7500 3000 7650 3000 4 0 0 10 0 0 16 0.0000 4 195 135 7450 3090 6\001 -6 6 6150 2850 6450 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6300 3000 150 150 6300 3000 6450 3000 4 0 0 10 0 0 16 0.0000 4 195 135 6250 3090 3\001 -6 6 9150 2250 9450 2550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9300 2400 150 150 9300 2400 9450 2400 4 0 0 8 0 0 16 0.0000 4 195 135 9250 2490 3\001 -6 6 6750 2250 7050 2550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6900 2400 150 150 6900 2400 7050 2400 4 0 0 8 0 0 16 0.0000 4 195 135 6850 2490 7\001 -6 6 8550 2850 8850 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8700 3000 150 150 8700 3000 8850 3000 4 0 0 8 0 0 16 0.0000 4 195 135 8650 3090 5\001 -6 6 7950 2250 8250 2550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8100 2400 150 150 8100 2400 8250 2400 4 0 0 8 0 0 16 0.0000 4 195 135 8050 2490 6\001 -6 6 5550 1050 5850 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5700 1200 150 150 5700 1200 5850 1200 4 0 0 10 0 0 16 0.0000 4 195 135 5650 1290 5\001 -6 6 5550 2250 5850 2550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5700 2400 150 150 5700 2400 5850 2400 4 0 0 10 0 0 16 0.0000 4 195 135 5650 2490 1\001 -6 6 6750 3450 7050 3750 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6900 3600 150 150 6900 3600 7050 3600 4 0 0 10 0 0 16 0.0000 4 195 135 6850 3690 2\001 -6 6 7950 3450 8250 3750 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8100 3600 150 150 8100 3600 8250 3600 4 0 0 8 0 0 16 0.0000 4 195 270 7970 3690 12\001 -6 6 9150 3450 9450 3750 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9300 3600 150 150 9300 3600 9450 3600 4 0 0 10 0 0 16 0.0000 4 195 135 9250 3690 9\001 -6 6 7950 1050 8250 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8100 1200 150 150 8100 1200 8250 1200 4 0 0 8 0 0 16 0.0000 4 195 135 8050 1290 8\001 -6 6 9150 1050 9450 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9300 1200 150 150 9300 1200 9450 1200 4 0 0 8 0 0 16 0.0000 4 195 270 9170 1290 10\001 -6 6 6750 1050 7050 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6900 1200 150 150 6900 1200 7050 1200 4 0 0 8 0 0 16 0.0000 4 195 270 6770 1290 11\001 -6 6 5550 3450 5850 3750 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5700 3600 150 150 5700 3600 5850 3600 4 0 0 10 0 0 16 0.0000 4 195 135 5650 3690 4\001 -6 6 5625 1125 9375 3675 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 7125 1800 7050 2175 6900 2400 7125 2250 7500 2175 7875 2250 8100 2400 7950 2175 7875 1800 7950 1425 8100 1200 7875 1350 7500 1425 7125 1350 6900 1200 7050 1425 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 5925 1800 5850 2175 5700 2400 5925 2250 6300 2175 6675 2250 6900 2400 6750 2175 6675 1800 6750 1425 6900 1200 6675 1350 6300 1425 5925 1350 5700 1200 5850 1425 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 5925 3000 5850 3375 5700 3600 5925 3450 6300 3375 6675 3450 6900 3600 6750 3375 6675 3000 6750 2625 6900 2400 6675 2550 6300 2625 5925 2550 5700 2400 5850 2625 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 8325 1800 8250 2175 8100 2400 8325 2250 8700 2175 9075 2250 9300 2400 9150 2175 9075 1800 9150 1425 9300 1200 9075 1350 8700 1425 8325 1350 8100 1200 8250 1425 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 7125 3000 7050 3375 6900 3600 7125 3450 7500 3375 7875 3450 8100 3600 7950 3375 7875 3000 7950 2625 8100 2400 7875 2550 7500 2625 7125 2550 6900 2400 7050 2625 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 8325 3000 8250 3375 8100 3600 8325 3450 8700 3375 9075 3450 9300 3600 9150 3375 9075 3000 9150 2625 9300 2400 9075 2550 8700 2625 8325 2550 8100 2400 8250 2625 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 6900 1200 7500 1800 6900 2400 7500 3000 6900 3600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 8100 1200 8700 1800 8100 2400 8700 3000 8100 3600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 8100 1200 7500 1800 8100 2400 7500 3000 8100 3600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 5700 1200 6300 1800 5700 2400 6300 3000 5700 3600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 6900 1200 6300 1800 6900 2400 6300 3000 6900 3600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 9300 1200 8700 1800 9300 2400 8700 3000 9300 3600 -6 6 2400 1200 2700 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1200 2700 1200 2700 1500 2400 1500 2400 1200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 1440 6\001 -6 6 2400 10200 2700 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 10200 2700 10200 2700 10500 2400 10500 2400 10200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 10440 1\001 -6 6 3000 10200 3300 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 10200 3300 10200 3300 10500 3000 10500 3000 10200 4 0 0 5 0 0 16 0.0000 4 195 135 3100 10440 9\001 -6 6 2400 11400 2700 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 11400 2700 11400 2700 11700 2400 11700 2400 11400 4 0 0 5 0 0 16 0.0000 4 195 135 2500 11640 5\001 -6 6 2700 11400 3000 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 11400 3000 11400 3000 11700 2700 11700 2700 11400 4 0 0 5 0 0 16 0.0000 4 195 135 2800 11640 1\001 -6 6 4200 11400 4500 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 11400 4500 11400 4500 11700 4200 11700 4200 11400 4 0 0 5 0 0 16 0.0000 4 195 135 4300 11640 6\001 -6 6 4500 11400 4800 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 11400 4800 11400 4800 11700 4500 11700 4500 11400 4 0 0 5 0 0 16 0.0000 4 195 135 4600 11640 7\001 -6 6 4800 11400 5100 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 11400 5100 11400 5100 11700 4800 11700 4800 11400 4 0 0 5 0 0 16 0.0000 4 195 135 4900 11640 4\001 -6 6 3300 10200 3600 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 10200 3600 10200 3600 10500 3300 10500 3300 10200 4 0 0 15 0 0 16 0.0000 4 195 270 3325 10440 13\001 -6 6 2700 10200 3000 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 10200 3000 10200 3000 10500 2700 10500 2700 10200 4 0 0 5 0 0 16 0.0000 4 195 135 2800 10440 5\001 -6 6 5400 11400 5700 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 11400 5700 11400 5700 11700 5400 11700 5400 11400 4 0 0 5 0 0 16 0.0000 4 195 135 5500 11640 2\001 -6 6 5100 11400 5400 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 11400 5400 11400 5400 11700 5100 11700 5100 11400 4 0 0 5 0 0 16 0.0000 4 195 135 5200 11640 1\001 -6 6 3600 11400 3900 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 11400 3900 11400 3900 11700 3600 11700 3600 11400 4 0 0 5 0 0 16 0.0000 4 195 135 3700 11640 8\001 -6 6 3000 11400 3300 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 11400 3300 11400 3300 11700 3000 11700 3000 11400 4 0 0 5 0 0 16 0.0000 4 195 135 3100 11640 7\001 -6 6 3900 11400 4200 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 11400 4200 11400 4200 11700 3900 11700 3900 11400 4 0 0 15 0 0 16 0.0000 4 195 270 3925 11640 11\001 -6 6 3300 11400 3600 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 11400 3600 11400 3600 11700 3300 11700 3300 11400 4 0 0 15 0 0 16 0.0000 4 195 270 3325 11640 11\001 -6 6 5700 11400 6000 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 11400 6000 11400 6000 11700 5700 11700 5700 11400 4 0 0 5 0 0 16 0.0000 4 195 135 5800 11640 7\001 -6 6 6000 11400 6300 11700 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 6000 11400 6300 11400 6300 11700 6000 11700 6000 11400 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 6300 11400 6000 11700 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 6000 11400 6300 11700 -6 6 9600 9000 12300 11700 6 9600 9000 9900 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 9000 9900 9000 9900 9300 9600 9300 9600 9000 4 0 0 5 0 0 16 0.0000 4 195 135 9700 9240 2\001 -6 6 9600 9600 9900 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 9600 9900 9600 9900 9900 9600 9900 9600 9600 4 0 0 5 0 0 16 0.0000 4 195 135 9700 9840 8\001 -6 6 9600 10200 9900 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 10200 9900 10200 9900 10500 9600 10500 9600 10200 4 0 0 5 0 0 16 0.0000 4 195 135 9700 10440 1\001 -6 6 9900 10200 10200 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 10200 10200 10200 10200 10500 9900 10500 9900 10200 4 0 0 15 0 0 16 0.0000 4 195 135 10000 10440 5\001 -6 6 9900 11400 10200 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 11400 10200 11400 10200 11700 9900 11700 9900 11400 4 0 0 5 0 0 16 0.0000 4 195 135 10000 11640 7\001 -6 6 10200 11400 10500 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 11400 10500 11400 10500 11700 10200 11700 10200 11400 4 0 0 5 0 0 16 0.0000 4 195 135 10300 11640 2\001 -6 6 10500 11400 10800 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 11400 10800 11400 10800 11700 10500 11700 10500 11400 4 0 0 5 0 0 16 0.0000 4 195 135 10600 11640 6\001 -6 6 10800 11400 11100 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10800 11400 11100 11400 11100 11700 10800 11700 10800 11400 4 0 0 5 0 0 16 0.0000 4 195 135 10900 11640 3\001 -6 6 11100 11400 11400 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11100 11400 11400 11400 11400 11700 11100 11700 11100 11400 4 0 0 15 0 0 16 0.0000 4 195 135 11200 11640 9\001 -6 6 11700 11400 12000 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11700 11400 12000 11400 12000 11700 11700 11700 11700 11400 4 0 0 5 0 0 16 0.0000 4 195 135 11800 11640 6\001 -6 6 10200 10200 10500 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 10200 10500 10200 10500 10500 10200 10500 10200 10200 4 0 0 5 0 0 16 0.0000 4 195 135 10300 10440 9\001 -6 6 9600 11400 9900 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 11400 9900 11400 9900 11700 9600 11700 9600 11400 4 0 0 15 0 0 16 0.0000 4 195 270 9625 11640 12\001 -6 6 11400 11400 11700 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11400 11400 11700 11400 11700 11700 11400 11700 11400 11400 4 0 0 15 0 0 16 0.0000 4 195 270 11425 11640 12\001 -6 6 12000 11400 12300 11700 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 12000 11400 12300 11400 12300 11700 12000 11700 12000 11400 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12300 11400 12000 11700 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12000 11400 12300 11700 -6 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 9750 10500 9750 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10050 10500 10050 11025 10950 11025 10950 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10350 10500 10350 10950 12150 10950 12150 11400 -6 6 7200 9000 8700 11700 6 7200 9000 7500 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 9000 7500 9000 7500 9300 7200 9300 7200 9000 4 0 0 5 0 0 16 0.0000 4 195 135 7300 9240 1\001 -6 6 7200 9600 7500 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 9600 7500 9600 7500 9900 7200 9900 7200 9600 4 0 0 5 0 0 16 0.0000 4 195 135 7300 9840 4\001 -6 6 7200 10200 7500 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 10200 7500 10200 7500 10500 7200 10500 7200 10200 4 0 0 5 0 0 16 0.0000 4 195 135 7300 10440 1\001 -6 6 7500 11400 7800 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 11400 7800 11400 7800 11700 7500 11700 7500 11400 4 0 0 5 0 0 16 0.0000 4 195 135 7600 11640 6\001 -6 6 7800 11400 8100 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 11400 8100 11400 8100 11700 7800 11700 7800 11400 4 0 0 5 0 0 16 0.0000 4 195 135 7900 11640 3\001 -6 6 7500 10200 7800 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 10200 7800 10200 7800 10500 7500 10500 7500 10200 4 0 0 5 0 0 16 0.0000 4 195 135 7600 10440 5\001 -6 6 8100 11400 8400 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 11400 8400 11400 8400 11700 8100 11700 8100 11400 4 0 0 5 0 0 16 0.0000 4 195 135 8200 11640 8\001 -6 6 7200 11400 7500 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 11400 7500 11400 7500 11700 7200 11700 7200 11400 4 0 0 15 0 0 16 0.0000 4 195 270 7225 11640 10\001 -6 6 8400 11400 8700 11700 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 8400 11400 8700 11400 8700 11700 8400 11700 8400 11400 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8700 11400 8400 11700 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8400 11400 8700 11700 -6 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 7350 10500 7350 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 7650 10500 7650 10950 8550 10950 8550 11400 -6 6 4200 4500 4500 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 4500 4800 4200 4800 4200 4500 4500 4500 4500 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 4275 4731 0\001 -6 6 7350 5400 8850 6900 6 7950 6000 8250 6300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8100 6150 150 150 8100 6150 8250 6150 4 0 0 10 0 0 16 0.0000 4 195 135 8050 6240 4\001 -6 6 8550 6600 8850 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8700 6750 150 150 8700 6750 8850 6750 4 0 0 8 0 0 16 0.0000 4 195 135 8650 6840 3\001 -6 6 7350 6600 7650 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 6750 150 150 7500 6750 7650 6750 4 0 0 8 0 0 16 0.0000 4 195 135 7450 6840 6\001 -6 6 7350 5400 7650 5700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 5550 150 150 7500 5550 7650 5550 4 0 0 8 0 0 16 0.0000 4 195 135 7450 5640 8\001 -6 6 8550 5400 8850 5700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8700 5550 150 150 8700 5550 8850 5550 4 0 0 8 0 0 16 0.0000 4 195 270 8570 5640 10\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 7500 5550 8100 6150 7500 6750 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 8700 5550 8100 6150 8700 6750 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 7725 6150 7650 6525 7500 6750 7725 6600 8100 6525 8475 6600 8700 6750 8550 6525 8475 6150 8550 5775 8700 5550 8475 5700 8100 5775 7725 5700 7500 5550 7650 5775 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -6 6 7950 4500 8250 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 8250 4800 7950 4800 7950 4500 8250 4500 8250 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 8025 4731 1\001 -6 6 9750 6600 12450 8100 6 10350 7200 10650 7500 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10500 7350 150 150 10500 7350 10650 7350 4 0 0 10 0 0 16 0.0000 4 195 135 10450 7440 6\001 -6 6 12150 6600 12450 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12300 6750 150 150 12300 6750 12450 6750 4 0 0 8 0 0 16 0.0000 4 195 135 12250 6840 3\001 -6 6 9750 6600 10050 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9900 6750 150 150 9900 6750 10050 6750 4 0 0 8 0 0 16 0.0000 4 195 135 9850 6840 7\001 -6 6 11550 7200 11850 7500 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11700 7350 150 150 11700 7350 11850 7350 4 0 0 8 0 0 16 0.0000 4 195 135 11650 7440 5\001 -6 6 10950 6600 11250 6900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11100 6750 150 150 11100 6750 11250 6750 4 0 0 8 0 0 16 0.0000 4 195 135 11050 6840 6\001 -6 6 9750 7800 10050 8100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9900 7950 150 150 9900 7950 10050 7950 4 0 0 10 0 0 16 0.0000 4 195 135 9850 8040 2\001 -6 6 10950 7800 11250 8100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11100 7950 150 150 11100 7950 11250 7950 4 0 0 8 0 0 16 0.0000 4 195 270 10970 8040 12\001 -6 6 12150 7800 12450 8100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12300 7950 150 150 12300 7950 12450 7950 4 0 0 10 0 0 16 0.0000 4 195 135 12250 8040 9\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 9900 6750 10500 7350 9900 7950 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 11100 6750 10500 7350 11100 7950 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 11100 6750 11700 7350 11100 7950 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 12300 6750 11700 7350 12300 7950 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 10125 7350 10050 7725 9900 7950 10125 7800 10500 7725 10875 7800 11100 7950 10950 7725 10875 7350 10950 6975 11100 6750 10875 6900 10500 6975 10125 6900 9900 6750 10050 6975 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 11325 7350 11250 7725 11100 7950 11325 7800 11700 7725 12075 7800 12300 7950 12150 7725 12075 7350 12150 6975 12300 6750 12075 6900 11700 6975 11325 6900 11100 6750 11250 6975 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 2100 12000 2100 4800 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 2550 10500 2550 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 10500 3150 10950 4950 10950 4950 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 10500 2850 11025 3750 11025 3750 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 10500 3450 10875 6150 10875 6150 11400 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 9300 12000 9300 4800 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 6900 12000 6900 4800 2 2 0 1 0 0 50 -1 10 0.000 0 0 -1 0 0 5 12900 4800 0 4800 0 4500 12900 4500 12900 4800 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 4 15675 1875 15750 2475 15525 3225 15675 3675 0.000 1.000 1.000 0.000 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 4 17025 900 17100 1500 16875 2250 17025 2700 0.000 1.000 1.000 0.000 4 0 0 20 0 12 16 0.0000 4 180 1155 300 825 baseval\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 2025 eelmglbnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 3825 prelvrttab\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 2625 vnodglbnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 3225 procglbnbr\001 4 0 7 40 -1 0 16 0.0000 4 195 1140 150 4731 Local data\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 9825 eelmlocnbr\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 9225 velmlocnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 1425 velmglbnbr\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 10425 velmloctab\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 11625 eelmloctab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_band.eps000066400000000000000000000511531514310134000266050ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Thu Dec 28 22:07:04 2006 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 916 113 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 113 moveto 0 0 lineto 916 0 lineto 916 113 lineto closepath clip newpath -250.3 454.6 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Ellipse 7.500 slw n 17214 6600 2158 848 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj 0 slc [15 45] 45 sd n 17969 5807 m 17969 5808 l 17968 5811 l 17967 5815 l 17964 5823 l 17961 5833 l 17957 5845 l 17952 5861 l 17945 5879 l 17937 5900 l 17928 5923 l 17918 5947 l 17906 5972 l 17893 5999 l 17879 6027 l 17862 6055 l 17844 6084 l 17824 6114 l 17801 6144 l 17775 6176 l 17745 6209 l 17712 6243 l 17675 6278 l 17633 6315 l 17586 6352 l 17536 6389 l 17490 6420 l 17444 6449 l 17399 6476 l 17357 6499 l 17318 6519 l 17282 6536 l 17250 6550 l 17222 6560 l 17197 6568 l 17175 6573 l 17156 6577 l 17139 6579 l 17123 6579 l 17109 6579 l 17095 6578 l 17081 6578 l 17066 6577 l 17051 6578 l 17033 6580 l 17013 6583 l 16990 6588 l 16964 6596 l 16934 6606 l 16899 6619 l 16861 6635 l 16818 6654 l 16772 6676 l 16722 6702 l 16670 6730 l 16618 6759 l 16563 6791 l 16511 6824 l 16461 6855 l 16416 6886 l 16374 6916 l 16335 6944 l 16299 6972 l 16265 6998 l 16235 7024 l 16206 7049 l 16179 7073 l 16153 7096 l 16129 7119 l 16107 7142 l 16086 7163 l 16066 7183 l 16048 7202 l 16032 7220 l 16017 7235 l 16005 7249 l 15994 7261 l 15986 7270 l 15980 7278 l 15975 7283 l 15972 7286 l 15971 7288 l 15970 7289 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 16132 5859 m 16132 5861 l 16131 5864 l 16130 5871 l 16128 5881 l 16125 5894 l 16122 5911 l 16119 5931 l 16116 5954 l 16113 5980 l 16110 6007 l 16109 6035 l 16108 6064 l 16108 6095 l 16109 6127 l 16113 6159 l 16118 6194 l 16126 6230 l 16136 6267 l 16150 6307 l 16167 6348 l 16187 6389 l 16210 6429 l 16236 6466 l 16262 6500 l 16288 6531 l 16315 6559 l 16342 6584 l 16369 6607 l 16396 6628 l 16422 6647 l 16449 6665 l 16475 6682 l 16500 6697 l 16524 6710 l 16546 6722 l 16566 6733 l 16583 6742 l 16596 6748 l 16606 6753 l 16613 6756 l 16616 6758 l 16618 6759 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 17645 6282 m 17646 6283 l 17648 6284 l 17653 6287 l 17660 6292 l 17669 6298 l 17681 6306 l 17695 6316 l 17712 6328 l 17731 6342 l 17752 6357 l 17774 6374 l 17797 6391 l 17821 6410 l 17845 6430 l 17870 6451 l 17895 6474 l 17920 6497 l 17946 6523 l 17972 6550 l 17998 6579 l 18025 6610 l 18052 6644 l 18079 6680 l 18105 6719 l 18131 6759 l 18157 6803 l 18180 6847 l 18200 6888 l 18217 6928 l 18231 6966 l 18243 7001 l 18254 7035 l 18262 7068 l 18269 7099 l 18275 7129 l 18279 7158 l 18283 7186 l 18286 7212 l 18288 7237 l 18290 7259 l 18291 7280 l 18292 7297 l 18292 7312 l 18293 7323 l 18293 7331 l 18293 7337 l 18293 7340 l 18293 7341 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 17214 5753 m 17213 5754 l 17211 5755 l 17208 5757 l 17204 5760 l 17198 5765 l 17190 5771 l 17181 5779 l 17171 5788 l 17161 5799 l 17151 5811 l 17141 5825 l 17131 5841 l 17122 5859 l 17114 5879 l 17107 5902 l 17101 5928 l 17097 5958 l 17095 5993 l 17095 6032 l 17098 6076 l 17104 6125 l 17111 6165 l 17119 6206 l 17128 6245 l 17138 6281 l 17148 6314 l 17159 6343 l 17170 6369 l 17181 6392 l 17191 6411 l 17202 6428 l 17212 6442 l 17223 6455 l 17233 6467 l 17243 6478 l 17253 6489 l 17264 6501 l 17274 6514 l 17284 6530 l 17294 6547 l 17305 6568 l 17315 6592 l 17326 6620 l 17336 6652 l 17345 6688 l 17354 6729 l 17362 6772 l 17369 6819 l 17374 6866 l 17377 6920 l 17378 6972 l 17376 7020 l 17372 7064 l 17366 7105 l 17358 7142 l 17350 7177 l 17340 7209 l 17330 7238 l 17318 7266 l 17306 7293 l 17294 7317 l 17282 7340 l 17270 7362 l 17259 7381 l 17248 7398 l 17239 7412 l 17231 7424 l 17224 7434 l 17220 7440 l 17216 7445 l 17215 7447 l 17214 7448 l gs col0 s gr % Polyline n 11813 5795 m 11814 5796 l 11817 5797 l 11821 5800 l 11826 5804 l 11833 5810 l 11839 5816 l 11846 5825 l 11851 5834 l 11855 5846 l 11858 5860 l 11858 5878 l 11856 5900 l 11850 5925 l 11842 5949 l 11832 5972 l 11822 5991 l 11811 6007 l 11800 6020 l 11789 6029 l 11779 6037 l 11769 6043 l 11758 6050 l 11748 6057 l 11738 6067 l 11729 6080 l 11720 6098 l 11712 6119 l 11707 6145 l 11705 6173 l 11708 6204 l 11715 6229 l 11725 6248 l 11737 6260 l 11750 6266 l 11764 6269 l 11778 6270 l 11792 6270 l 11805 6273 l 11819 6280 l 11831 6293 l 11841 6313 l 11848 6341 l 11850 6375 l 11848 6403 l 11843 6430 l 11835 6454 l 11825 6474 l 11814 6491 l 11802 6505 l 11789 6517 l 11775 6527 l 11762 6536 l 11749 6544 l 11736 6554 l 11724 6565 l 11713 6577 l 11704 6593 l 11697 6611 l 11694 6631 l 11694 6653 l 11700 6675 l 11712 6696 l 11729 6713 l 11748 6724 l 11767 6730 l 11786 6732 l 11804 6730 l 11822 6727 l 11840 6723 l 11857 6718 l 11876 6714 l 11895 6712 l 11915 6713 l 11937 6716 l 11959 6724 l 11981 6735 l 12000 6750 l 12015 6766 l 12024 6782 l 12030 6796 l 12032 6807 l 12032 6816 l 12030 6824 l 12026 6830 l 12022 6835 l 12018 6840 l 12013 6847 l 12008 6854 l 12002 6864 l 11997 6876 l 11990 6892 l 11983 6909 l 11974 6928 l 11960 6951 l 11946 6969 l 11931 6980 l 11917 6985 l 11904 6986 l 11891 6985 l 11879 6984 l 11867 6985 l 11857 6991 l 11849 7003 l 11846 7023 l 11850 7050 l 11859 7072 l 11871 7093 l 11887 7110 l 11903 7124 l 11921 7134 l 11939 7142 l 11956 7148 l 11974 7152 l 11992 7157 l 12009 7163 l 12026 7171 l 12041 7183 l 12055 7200 l 12067 7221 l 12074 7246 l 12075 7275 l 12070 7301 l 12060 7326 l 12047 7349 l 12031 7370 l 12012 7390 l 11992 7409 l 11970 7426 l 11947 7442 l 11924 7458 l 11901 7472 l 11879 7485 l 11859 7496 l 11843 7505 l 11830 7512 l 11821 7517 l 11815 7520 l 11813 7521 l gs col0 s gr % Ellipse 7.500 slw n 6338 6658 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 7093 5849 m 7093 5850 l 7092 5853 l 7091 5858 l 7088 5865 l 7085 5875 l 7081 5888 l 7076 5904 l 7069 5923 l 7061 5944 l 7052 5967 l 7042 5991 l 7030 6017 l 7017 6045 l 7003 6073 l 6987 6101 l 6969 6131 l 6948 6161 l 6925 6193 l 6899 6225 l 6870 6258 l 6837 6293 l 6799 6329 l 6758 6366 l 6711 6404 l 6661 6442 l 6615 6474 l 6569 6503 l 6525 6531 l 6482 6554 l 6443 6575 l 6407 6592 l 6375 6606 l 6347 6617 l 6322 6625 l 6300 6630 l 6281 6634 l 6264 6636 l 6249 6636 l 6234 6636 l 6220 6635 l 6207 6635 l 6192 6635 l 6176 6635 l 6159 6637 l 6139 6640 l 6116 6646 l 6089 6653 l 6059 6664 l 6025 6677 l 5987 6693 l 5944 6713 l 5898 6736 l 5848 6762 l 5796 6790 l 5744 6820 l 5689 6853 l 5637 6886 l 5587 6918 l 5542 6949 l 5500 6980 l 5461 7009 l 5425 7036 l 5392 7063 l 5361 7089 l 5332 7115 l 5305 7139 l 5279 7163 l 5255 7187 l 5233 7209 l 5212 7231 l 5192 7251 l 5174 7271 l 5158 7288 l 5143 7305 l 5131 7319 l 5120 7330 l 5112 7340 l 5106 7348 l 5101 7353 l 5098 7356 l 5097 7358 l 5096 7359 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5258 5903 m 5258 5905 l 5257 5908 l 5256 5915 l 5254 5925 l 5251 5939 l 5248 5956 l 5245 5977 l 5242 6000 l 5239 6025 l 5236 6053 l 5234 6082 l 5233 6112 l 5233 6143 l 5235 6175 l 5238 6208 l 5243 6243 l 5251 6280 l 5261 6318 l 5275 6358 l 5292 6400 l 5312 6442 l 5335 6483 l 5361 6521 l 5387 6556 l 5414 6587 l 5440 6616 l 5467 6641 l 5494 6665 l 5521 6686 l 5548 6706 l 5574 6724 l 5601 6741 l 5626 6756 l 5650 6770 l 5672 6783 l 5692 6793 l 5709 6802 l 5722 6809 l 5732 6814 l 5739 6817 l 5742 6819 l 5744 6820 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6769 6334 m 6770 6335 l 6772 6336 l 6777 6339 l 6784 6344 l 6793 6350 l 6805 6359 l 6819 6369 l 6836 6381 l 6855 6395 l 6876 6411 l 6898 6427 l 6921 6445 l 6945 6465 l 6969 6485 l 6994 6507 l 7019 6529 l 7044 6553 l 7070 6579 l 7096 6607 l 7122 6636 l 7149 6668 l 7176 6703 l 7203 6740 l 7229 6779 l 7255 6820 l 7281 6865 l 7304 6909 l 7324 6952 l 7341 6992 l 7355 7031 l 7367 7067 l 7378 7102 l 7386 7135 l 7393 7167 l 7399 7197 l 7403 7227 l 7407 7255 l 7410 7282 l 7412 7307 l 7414 7330 l 7415 7350 l 7416 7368 l 7416 7383 l 7417 7395 l 7417 7403 l 7417 7409 l 7417 7412 l 7417 7413 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 6338 5795 m 6339 5796 l 6342 5797 l 6346 5800 l 6351 5804 l 6358 5810 l 6364 5816 l 6371 5825 l 6376 5834 l 6380 5846 l 6383 5860 l 6383 5878 l 6381 5900 l 6375 5925 l 6367 5949 l 6357 5972 l 6347 5991 l 6336 6007 l 6325 6020 l 6314 6029 l 6304 6037 l 6294 6043 l 6283 6050 l 6273 6057 l 6263 6067 l 6254 6080 l 6245 6098 l 6237 6119 l 6232 6145 l 6230 6173 l 6233 6204 l 6240 6229 l 6250 6248 l 6262 6260 l 6275 6266 l 6289 6269 l 6303 6270 l 6317 6270 l 6330 6273 l 6344 6280 l 6356 6293 l 6366 6313 l 6373 6341 l 6375 6375 l 6373 6403 l 6368 6430 l 6360 6454 l 6350 6474 l 6339 6491 l 6327 6505 l 6314 6517 l 6300 6527 l 6287 6536 l 6274 6544 l 6261 6554 l 6249 6565 l 6238 6577 l 6229 6593 l 6222 6611 l 6219 6631 l 6219 6653 l 6225 6675 l 6237 6696 l 6254 6713 l 6273 6724 l 6292 6730 l 6311 6732 l 6329 6730 l 6347 6727 l 6365 6723 l 6382 6718 l 6401 6714 l 6420 6712 l 6440 6713 l 6462 6716 l 6484 6724 l 6506 6735 l 6525 6750 l 6540 6766 l 6549 6782 l 6555 6796 l 6557 6807 l 6557 6816 l 6555 6824 l 6551 6830 l 6547 6835 l 6543 6840 l 6538 6847 l 6533 6854 l 6527 6864 l 6522 6876 l 6515 6892 l 6508 6909 l 6499 6928 l 6485 6951 l 6471 6969 l 6456 6980 l 6442 6985 l 6429 6986 l 6416 6985 l 6404 6984 l 6392 6985 l 6382 6991 l 6374 7003 l 6371 7023 l 6375 7050 l 6384 7072 l 6396 7093 l 6412 7110 l 6428 7124 l 6446 7134 l 6464 7142 l 6481 7148 l 6499 7152 l 6517 7157 l 6534 7163 l 6551 7171 l 6566 7183 l 6580 7200 l 6592 7221 l 6599 7246 l 6600 7275 l 6595 7301 l 6585 7326 l 6572 7349 l 6556 7370 l 6537 7390 l 6517 7409 l 6495 7426 l 6472 7442 l 6449 7458 l 6426 7472 l 6404 7485 l 6384 7496 l 6368 7505 l 6355 7512 l 6346 7517 l 6340 7520 l 6338 7521 l gs col0 s gr % Ellipse 7.500 slw n 11813 6658 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 12568 5849 m 12568 5850 l 12567 5853 l 12566 5858 l 12563 5865 l 12560 5875 l 12556 5888 l 12551 5904 l 12544 5923 l 12536 5944 l 12527 5967 l 12517 5991 l 12505 6017 l 12492 6045 l 12478 6073 l 12462 6101 l 12444 6131 l 12423 6161 l 12400 6193 l 12374 6225 l 12345 6258 l 12312 6293 l 12274 6329 l 12233 6366 l 12186 6404 l 12136 6442 l 12090 6474 l 12044 6503 l 12000 6531 l 11957 6554 l 11918 6575 l 11882 6592 l 11850 6606 l 11822 6617 l 11797 6625 l 11775 6630 l 11756 6634 l 11739 6636 l 11724 6636 l 11709 6636 l 11695 6635 l 11682 6635 l 11667 6635 l 11651 6635 l 11634 6637 l 11614 6640 l 11591 6646 l 11564 6653 l 11534 6664 l 11500 6677 l 11462 6693 l 11419 6713 l 11373 6736 l 11323 6762 l 11271 6790 l 11219 6820 l 11164 6853 l 11112 6886 l 11062 6918 l 11017 6949 l 10975 6980 l 10936 7009 l 10900 7036 l 10867 7063 l 10836 7089 l 10807 7115 l 10780 7139 l 10754 7163 l 10730 7187 l 10708 7209 l 10687 7231 l 10667 7251 l 10649 7271 l 10633 7288 l 10618 7305 l 10606 7319 l 10595 7330 l 10587 7340 l 10581 7348 l 10576 7353 l 10573 7356 l 10572 7358 l 10571 7359 l gs col0 s gr [] 0 sd % here ends figure; % % here starts figure with depth 40 % Polyline 0 slj 0 slc 0.000 slw n 15108 5807 m 15000 5807 l 15000 5700 l 15108 5700 l cp gs col7 1.00 shd ef gr % Polyline n 19425 7500 m 19317 7500 l 19317 7394 l 19425 7394 l cp gs col7 1.00 shd ef gr % Polyline n 9600 7575 m 11400 7575 l 11400 5700 l 9600 5700 l cp gs col7 1.00 shd ef gr % Polyline n 12300 7575 m 14025 7575 l 14025 5700 l 12300 5700 l cp gs col7 1.00 shd ef gr % here ends figure; % % here starts figure with depth 20 % Polyline 2 slj 0 slc 7.500 slw n 11400 7500 m 11400 7499 l 11401 7495 l 11404 7486 l 11409 7470 l 11414 7449 l 11420 7425 l 11426 7400 l 11431 7376 l 11435 7354 l 11438 7333 l 11440 7314 l 11440 7297 l 11439 7280 l 11438 7263 l 11435 7247 l 11432 7232 l 11428 7215 l 11423 7198 l 11418 7180 l 11412 7162 l 11406 7143 l 11400 7123 l 11394 7104 l 11388 7084 l 11382 7065 l 11377 7046 l 11372 7028 l 11368 7010 l 11365 6992 l 11363 6975 l 11361 6958 l 11360 6940 l 11359 6922 l 11360 6904 l 11360 6885 l 11362 6866 l 11364 6846 l 11366 6827 l 11369 6807 l 11371 6788 l 11374 6770 l 11377 6752 l 11380 6735 l 11383 6718 l 11385 6703 l 11388 6688 l 11390 6673 l 11391 6658 l 11393 6642 l 11394 6627 l 11395 6611 l 11395 6594 l 11395 6578 l 11395 6561 l 11394 6544 l 11393 6526 l 11391 6509 l 11388 6492 l 11386 6475 l 11383 6459 l 11379 6442 l 11375 6425 l 11371 6409 l 11367 6393 l 11362 6377 l 11357 6359 l 11351 6341 l 11345 6322 l 11340 6302 l 11334 6282 l 11328 6262 l 11323 6241 l 11318 6221 l 11313 6201 l 11309 6182 l 11305 6163 l 11302 6145 l 11300 6127 l 11299 6110 l 11298 6094 l 11298 6076 l 11300 6058 l 11302 6040 l 11306 6021 l 11312 6000 l 11319 5979 l 11327 5955 l 11337 5930 l 11347 5905 l 11358 5880 l 11368 5857 l 11377 5838 l 11383 5825 l 11387 5817 l 11389 5814 l 11389 5813 l gs col0 s gr % Polyline n 12300 7500 m 12300 7499 l 12301 7496 l 12305 7488 l 12310 7474 l 12317 7453 l 12327 7428 l 12337 7399 l 12348 7368 l 12359 7337 l 12369 7306 l 12378 7278 l 12386 7252 l 12393 7227 l 12399 7205 l 12403 7184 l 12407 7164 l 12410 7144 l 12413 7125 l 12414 7106 l 12415 7086 l 12416 7067 l 12415 7046 l 12415 7025 l 12414 7003 l 12412 6981 l 12410 6959 l 12407 6936 l 12404 6913 l 12401 6890 l 12398 6867 l 12394 6844 l 12390 6822 l 12386 6801 l 12383 6779 l 12379 6758 l 12375 6738 l 12372 6718 l 12368 6699 l 12365 6679 l 12361 6659 l 12357 6638 l 12353 6617 l 12349 6595 l 12346 6573 l 12342 6551 l 12337 6528 l 12333 6506 l 12329 6485 l 12326 6464 l 12322 6443 l 12318 6424 l 12314 6405 l 12310 6387 l 12307 6370 l 12303 6353 l 12300 6338 l 12296 6318 l 12291 6300 l 12287 6282 l 12283 6263 l 12278 6245 l 12274 6227 l 12270 6210 l 12266 6192 l 12263 6175 l 12260 6159 l 12257 6143 l 12255 6127 l 12253 6113 l 12252 6098 l 12252 6085 l 12252 6071 l 12253 6056 l 12254 6039 l 12257 6022 l 12260 6004 l 12265 5983 l 12271 5960 l 12278 5934 l 12286 5908 l 12294 5882 l 12301 5860 l 12306 5843 l 12309 5832 l 12311 5828 l 12311 5827 l gs col0 s gr % here ends figure; % % here starts figure with depth 10 % Polyline 0 slj 0 slc 7.500 slw n 10275 6525 m 10575 6825 l gs col0 s gr % Polyline n 10575 6525 m 10275 6825 l gs col0 s gr /Times-Roman ff 600.00 scf sf 10125 6300 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 10425 6375 m gs 1 -1 sc (0) col0 sh gr % Polyline n 13200 6450 m 13500 6750 l gs col0 s gr % Polyline n 13500 6450 m 13200 6750 l gs col0 s gr /Times-Roman ff 600.00 scf sf 13050 6300 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 13350 6375 m gs 1 -1 sc (3) col0 sh gr % Polyline 30.000 slw gs clippath 14470 6660 m 14790 6660 l 14790 6540 l 14470 6540 l 14470 6540 l 14710 6600 l 14470 6660 l cp eoclip n 14025 6600 m 14775 6600 l gs col0 s gr gr % arrowhead 15.000 slw n 14470 6660 m 14710 6600 l 14470 6540 l 14470 6660 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 9295 6660 m 9615 6660 l 9615 6540 l 9295 6540 l 9295 6540 l 9535 6600 l 9295 6660 l cp eoclip n 8850 6600 m 9600 6600 l gs col0 s gr gr % arrowhead 15.000 slw n 9295 6660 m 9535 6600 l 9295 6540 l 9295 6660 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 2 % Polyline 0 slj 0 slc 7.500 slw n 11443 5900 m 10989 6267 l 11363 6040 l gs col0 s gr % Polyline n 11356 6200 m 10983 6267 l 11443 6340 l gs col0 s gr % Polyline n 11443 6500 m 10989 6260 l 11443 6640 l gs col0 s gr % Polyline n 11436 6793 m 10983 7093 l 11436 6940 l gs col0 s gr % Polyline n 11436 7100 m 10989 7093 l 11509 7240 l gs col0 s gr % Polyline n 11509 7400 m 10983 7093 l gs col0 s gr % Polyline n 12184 5900 m 12717 6040 l 12111 6040 l gs col0 s gr % Polyline n 12184 6193 m 12717 6040 l 12184 6340 l gs col0 s gr % Polyline n 12257 6500 m 12717 6940 l 12264 6640 l gs col0 s gr % Polyline n 12331 6800 m 12717 6940 l 12337 6940 l gs col0 s gr % Polyline n 12331 7100 m 12711 6940 l 12337 7240 l gs col0 s gr % Polyline n 12257 7393 m 12717 6940 l gs col0 s gr % here ends figure; % % here starts figure with depth 0 % Ellipse 7.500 slw n 10988 6263 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 10988 7088 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12713 6938 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12713 6038 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 5888 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11363 6038 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11363 6188 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 6338 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 6488 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 6638 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 6788 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 6938 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11438 7088 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11513 7238 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11513 7388 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12188 5888 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12113 6038 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12188 6188 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12188 6338 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12263 6488 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12263 6638 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12338 6788 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12338 6938 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12338 7088 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12338 7238 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 12263 7388 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_gr1.eps000066400000000000000000001154761514310134000264030ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 %%CreationDate: Tue Feb 5 15:59:38 2008 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 776 830 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 830 moveto 0 0 lineto 776 0 lineto 776 830 lineto closepath clip newpath 0.7 828.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 55 % Polyline 0 slj 0 slc 0.000 slw n 4050 4800 m 3750 4800 l 3750 4500 l 4050 4500 l cp gs 0.50 setgray ef gr % Polyline n 7650 4800 m 7350 4800 l 7350 4500 l 7650 4500 l cp gs 0.50 setgray ef gr % Polyline n 11250 4800 m 10950 4800 l 10950 4500 l 11250 4500 l cp gs 0.50 setgray ef gr % here ends figure; % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 12900 300 m 0 300 l 0 0 l 12900 0 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 8400 1200 m 7500 2100 l gs col0 s gr % Polyline n 6600 1200 m 7500 2100 l 6600 3000 l 5700 2100 l 6600 1200 l 6600 3000 l 7500 3900 l 7500 2100 l 8400 3000 l 9300 2100 l 8400 1200 l 8400 3000 l 7500 3900 l gs col0 s gr % Polyline n 4800 8100 m 3900 7200 l 4800 6300 l 3900 5400 l 3900 7200 l 3000 6300 l 3900 5400 l gs col0 s gr % Polyline n 6600 5400 m 7500 6300 l 6600 7200 l 7500 8100 l 7500 6300 l 8400 7200 l 7500 8100 l gs col0 s gr % Polyline n 7500 6300 m 8400 5400 l gs col0 s gr % Polyline n 10200 8100 m 11100 7200 l 10200 6300 l 11100 5400 l 11100 7200 l 12000 6300 l 11100 5400 l gs col0 s gr % Polyline n 2100 13800 m 2100 4800 l gs col0 s gr % Polyline n 5700 13800 m 5700 4800 l gs col0 s gr % Polyline n 9300 13800 m 9300 4800 l gs col0 s gr % Polyline n 12900 4800 m 0 4800 l 0 4500 l 12900 4500 l cp gs 0.50 setgray ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 40 /Times-Roman ff 285.00 scf sf 174 231 m gs 1 -1 sc (Duplicated data) col7 sh gr % Polyline 2 slj 0 slc 7.500 slw [15 45] 45 sd n 7875 975 m 7874 978 l 7872 986 l 7868 999 l 7863 1018 l 7856 1043 l 7848 1073 l 7839 1106 l 7831 1141 l 7823 1175 l 7815 1209 l 7809 1242 l 7804 1272 l 7800 1301 l 7797 1328 l 7795 1354 l 7795 1378 l 7795 1402 l 7797 1426 l 7800 1450 l 7803 1470 l 7807 1491 l 7812 1512 l 7817 1534 l 7822 1556 l 7829 1579 l 7835 1603 l 7843 1628 l 7850 1654 l 7858 1680 l 7865 1707 l 7873 1734 l 7881 1761 l 7889 1789 l 7896 1817 l 7903 1845 l 7909 1872 l 7915 1900 l 7921 1927 l 7926 1955 l 7930 1982 l 7933 2008 l 7936 2035 l 7938 2063 l 7938 2086 l 7939 2110 l 7939 2134 l 7938 2159 l 7937 2185 l 7935 2211 l 7933 2238 l 7931 2266 l 7928 2294 l 7925 2323 l 7922 2352 l 7918 2382 l 7915 2412 l 7911 2443 l 7907 2473 l 7903 2504 l 7899 2535 l 7896 2565 l 7892 2595 l 7889 2625 l 7886 2655 l 7883 2684 l 7881 2712 l 7879 2741 l 7877 2768 l 7876 2796 l 7875 2823 l 7875 2850 l 7875 2879 l 7876 2908 l 7878 2938 l 7879 2968 l 7882 2998 l 7885 3029 l 7888 3061 l 7892 3092 l 7896 3124 l 7900 3157 l 7905 3189 l 7909 3222 l 7914 3254 l 7919 3286 l 7924 3317 l 7929 3348 l 7934 3379 l 7938 3408 l 7943 3437 l 7947 3465 l 7950 3491 l 7954 3517 l 7956 3542 l 7959 3566 l 7961 3590 l 7963 3613 l 7964 3639 l 7964 3664 l 7964 3690 l 7963 3715 l 7961 3741 l 7958 3768 l 7954 3795 l 7949 3824 l 7943 3854 l 7937 3886 l 7930 3918 l 7922 3951 l 7914 3984 l 7905 4015 l 7898 4044 l 7891 4070 l 7885 4090 l 7881 4106 l 7877 4117 l 7876 4122 l 7875 4125 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7125 975 m 7124 978 l 7120 985 l 7115 997 l 7108 1014 l 7098 1036 l 7088 1060 l 7077 1087 l 7066 1114 l 7056 1141 l 7047 1167 l 7039 1191 l 7032 1215 l 7026 1237 l 7022 1259 l 7018 1281 l 7015 1302 l 7013 1325 l 7011 1344 l 7010 1364 l 7009 1384 l 7009 1406 l 7009 1428 l 7009 1451 l 7010 1476 l 7010 1500 l 7011 1526 l 7012 1552 l 7013 1578 l 7013 1605 l 7014 1632 l 7015 1658 l 7015 1684 l 7016 1709 l 7016 1734 l 7016 1759 l 7016 1782 l 7015 1805 l 7014 1828 l 7013 1850 l 7011 1872 l 7009 1894 l 7006 1915 l 7003 1937 l 7000 1960 l 6997 1983 l 6994 2006 l 6990 2029 l 6987 2053 l 6983 2077 l 6980 2102 l 6977 2126 l 6975 2151 l 6972 2175 l 6971 2199 l 6969 2223 l 6969 2246 l 6969 2270 l 6969 2293 l 6970 2316 l 6972 2339 l 6975 2363 l 6978 2384 l 6982 2406 l 6987 2429 l 6992 2453 l 6997 2477 l 7004 2502 l 7010 2528 l 7018 2555 l 7025 2582 l 7033 2610 l 7040 2639 l 7048 2668 l 7056 2697 l 7064 2726 l 7071 2755 l 7078 2784 l 7084 2812 l 7090 2840 l 7096 2868 l 7101 2895 l 7105 2922 l 7108 2948 l 7111 2974 l 7113 3000 l 7114 3026 l 7114 3052 l 7113 3078 l 7112 3105 l 7110 3132 l 7108 3160 l 7104 3188 l 7101 3216 l 7096 3245 l 7091 3274 l 7086 3303 l 7081 3332 l 7075 3361 l 7069 3390 l 7062 3418 l 7056 3445 l 7050 3472 l 7044 3498 l 7038 3523 l 7032 3547 l 7027 3571 l 7022 3594 l 7017 3616 l 7013 3638 l 7008 3661 l 7004 3684 l 7000 3707 l 6997 3730 l 6994 3754 l 6991 3779 l 6989 3805 l 6987 3832 l 6985 3861 l 6983 3891 l 6981 3922 l 6980 3954 l 6979 3986 l 6978 4017 l 6977 4046 l 6976 4070 l 6976 4091 l 6975 4106 l 6975 4117 l 6975 4122 l 6975 4125 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 4425 5175 m 4424 5178 l 4420 5185 l 4415 5197 l 4408 5214 l 4398 5236 l 4388 5260 l 4377 5287 l 4366 5314 l 4356 5341 l 4347 5367 l 4339 5391 l 4332 5415 l 4326 5437 l 4322 5459 l 4318 5481 l 4315 5502 l 4313 5525 l 4311 5544 l 4310 5564 l 4309 5584 l 4309 5606 l 4309 5628 l 4309 5651 l 4310 5676 l 4310 5700 l 4311 5726 l 4312 5752 l 4313 5778 l 4313 5805 l 4314 5832 l 4315 5858 l 4315 5884 l 4316 5909 l 4316 5934 l 4316 5959 l 4316 5982 l 4315 6005 l 4314 6028 l 4313 6050 l 4311 6072 l 4309 6094 l 4306 6115 l 4303 6137 l 4300 6160 l 4297 6183 l 4294 6206 l 4290 6229 l 4287 6253 l 4283 6277 l 4280 6302 l 4277 6326 l 4275 6351 l 4272 6375 l 4271 6399 l 4269 6423 l 4269 6446 l 4269 6470 l 4269 6493 l 4270 6516 l 4272 6539 l 4275 6563 l 4278 6584 l 4282 6606 l 4287 6629 l 4292 6653 l 4297 6677 l 4304 6702 l 4310 6728 l 4318 6755 l 4325 6782 l 4333 6810 l 4340 6839 l 4348 6868 l 4356 6897 l 4364 6926 l 4371 6955 l 4378 6984 l 4384 7012 l 4390 7040 l 4396 7068 l 4401 7095 l 4405 7122 l 4408 7148 l 4411 7174 l 4413 7200 l 4414 7226 l 4414 7252 l 4413 7278 l 4412 7305 l 4410 7332 l 4408 7360 l 4404 7388 l 4401 7416 l 4396 7445 l 4391 7474 l 4386 7503 l 4381 7532 l 4375 7561 l 4369 7590 l 4362 7618 l 4356 7645 l 4350 7672 l 4344 7698 l 4338 7723 l 4332 7747 l 4327 7771 l 4322 7794 l 4317 7816 l 4313 7838 l 4308 7861 l 4304 7884 l 4300 7907 l 4297 7930 l 4294 7954 l 4291 7979 l 4289 8005 l 4287 8032 l 4285 8061 l 4283 8091 l 4281 8122 l 4280 8154 l 4279 8186 l 4278 8217 l 4277 8246 l 4276 8270 l 4276 8291 l 4275 8306 l 4275 8317 l 4275 8322 l 4275 8325 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7875 5175 m 7874 5178 l 7872 5186 l 7868 5199 l 7863 5218 l 7856 5243 l 7848 5273 l 7839 5306 l 7831 5341 l 7823 5375 l 7815 5409 l 7809 5442 l 7804 5472 l 7800 5501 l 7797 5528 l 7795 5554 l 7795 5578 l 7795 5602 l 7797 5626 l 7800 5650 l 7803 5670 l 7807 5691 l 7812 5712 l 7817 5734 l 7822 5756 l 7829 5779 l 7835 5803 l 7843 5828 l 7850 5854 l 7858 5880 l 7865 5907 l 7873 5934 l 7881 5961 l 7889 5989 l 7896 6017 l 7903 6045 l 7909 6072 l 7915 6100 l 7921 6127 l 7926 6155 l 7930 6182 l 7933 6208 l 7936 6235 l 7938 6263 l 7938 6286 l 7939 6310 l 7939 6334 l 7938 6359 l 7937 6385 l 7935 6411 l 7933 6438 l 7931 6466 l 7928 6494 l 7925 6523 l 7922 6552 l 7918 6582 l 7915 6612 l 7911 6643 l 7907 6673 l 7903 6704 l 7899 6735 l 7896 6765 l 7892 6795 l 7889 6825 l 7886 6855 l 7883 6884 l 7881 6912 l 7879 6941 l 7877 6968 l 7876 6996 l 7875 7023 l 7875 7050 l 7875 7079 l 7876 7108 l 7878 7138 l 7879 7168 l 7882 7198 l 7885 7229 l 7888 7261 l 7892 7292 l 7896 7324 l 7900 7357 l 7905 7389 l 7909 7422 l 7914 7454 l 7919 7486 l 7924 7517 l 7929 7548 l 7934 7579 l 7938 7608 l 7943 7637 l 7947 7665 l 7950 7691 l 7954 7717 l 7956 7742 l 7959 7766 l 7961 7790 l 7963 7813 l 7964 7839 l 7964 7864 l 7964 7890 l 7963 7915 l 7961 7941 l 7958 7968 l 7954 7995 l 7949 8024 l 7943 8054 l 7937 8086 l 7930 8118 l 7922 8151 l 7914 8184 l 7905 8215 l 7898 8244 l 7891 8270 l 7885 8290 l 7881 8306 l 7877 8317 l 7876 8322 l 7875 8325 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7125 5175 m 7124 5178 l 7120 5185 l 7115 5197 l 7108 5214 l 7098 5236 l 7088 5260 l 7077 5287 l 7066 5314 l 7056 5341 l 7047 5367 l 7039 5391 l 7032 5415 l 7026 5437 l 7022 5459 l 7018 5481 l 7015 5502 l 7013 5525 l 7011 5544 l 7010 5564 l 7009 5584 l 7009 5606 l 7009 5628 l 7009 5651 l 7010 5676 l 7010 5700 l 7011 5726 l 7012 5752 l 7013 5778 l 7013 5805 l 7014 5832 l 7015 5858 l 7015 5884 l 7016 5909 l 7016 5934 l 7016 5959 l 7016 5982 l 7015 6005 l 7014 6028 l 7013 6050 l 7011 6072 l 7009 6094 l 7006 6115 l 7003 6137 l 7000 6160 l 6997 6183 l 6994 6206 l 6990 6229 l 6987 6253 l 6983 6277 l 6980 6302 l 6977 6326 l 6975 6351 l 6972 6375 l 6971 6399 l 6969 6423 l 6969 6446 l 6969 6470 l 6969 6493 l 6970 6516 l 6972 6539 l 6975 6563 l 6978 6584 l 6982 6606 l 6987 6629 l 6992 6653 l 6997 6677 l 7004 6702 l 7010 6728 l 7018 6755 l 7025 6782 l 7033 6810 l 7040 6839 l 7048 6868 l 7056 6897 l 7064 6926 l 7071 6955 l 7078 6984 l 7084 7012 l 7090 7040 l 7096 7068 l 7101 7095 l 7105 7122 l 7108 7148 l 7111 7174 l 7113 7200 l 7114 7226 l 7114 7252 l 7113 7278 l 7112 7305 l 7110 7332 l 7108 7360 l 7104 7388 l 7101 7416 l 7096 7445 l 7091 7474 l 7086 7503 l 7081 7532 l 7075 7561 l 7069 7590 l 7062 7618 l 7056 7645 l 7050 7672 l 7044 7698 l 7038 7723 l 7032 7747 l 7027 7771 l 7022 7794 l 7017 7816 l 7013 7838 l 7008 7861 l 7004 7884 l 7000 7907 l 6997 7930 l 6994 7954 l 6991 7979 l 6989 8005 l 6987 8032 l 6985 8061 l 6983 8091 l 6981 8122 l 6980 8154 l 6979 8186 l 6978 8217 l 6977 8246 l 6976 8270 l 6976 8291 l 6975 8306 l 6975 8317 l 6975 8322 l 6975 8325 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 10575 5175 m 10574 5178 l 10572 5186 l 10568 5199 l 10563 5218 l 10556 5243 l 10548 5273 l 10539 5306 l 10531 5341 l 10523 5375 l 10515 5409 l 10509 5442 l 10504 5472 l 10500 5501 l 10497 5528 l 10495 5554 l 10495 5578 l 10495 5602 l 10497 5626 l 10500 5650 l 10503 5670 l 10507 5691 l 10512 5712 l 10517 5734 l 10522 5756 l 10529 5779 l 10535 5803 l 10543 5828 l 10550 5854 l 10558 5880 l 10565 5907 l 10573 5934 l 10581 5961 l 10589 5989 l 10596 6017 l 10603 6045 l 10609 6072 l 10615 6100 l 10621 6127 l 10626 6155 l 10630 6182 l 10633 6208 l 10636 6235 l 10638 6263 l 10638 6286 l 10639 6310 l 10639 6334 l 10638 6359 l 10637 6385 l 10635 6411 l 10633 6438 l 10631 6466 l 10628 6494 l 10625 6523 l 10622 6552 l 10618 6582 l 10615 6612 l 10611 6643 l 10607 6673 l 10603 6704 l 10599 6735 l 10596 6765 l 10592 6795 l 10589 6825 l 10586 6855 l 10583 6884 l 10581 6912 l 10579 6941 l 10577 6968 l 10576 6996 l 10575 7023 l 10575 7050 l 10575 7079 l 10576 7108 l 10578 7138 l 10579 7168 l 10582 7198 l 10585 7229 l 10588 7261 l 10592 7292 l 10596 7324 l 10600 7357 l 10605 7389 l 10609 7422 l 10614 7454 l 10619 7486 l 10624 7517 l 10629 7548 l 10634 7579 l 10638 7608 l 10643 7637 l 10647 7665 l 10650 7691 l 10654 7717 l 10656 7742 l 10659 7766 l 10661 7790 l 10663 7813 l 10664 7839 l 10664 7864 l 10664 7890 l 10663 7915 l 10661 7941 l 10658 7968 l 10654 7995 l 10649 8024 l 10643 8054 l 10637 8086 l 10630 8118 l 10622 8151 l 10614 8184 l 10605 8215 l 10598 8244 l 10591 8270 l 10585 8290 l 10581 8306 l 10577 8317 l 10576 8322 l 10575 8325 l gs col0 s gr [] 0 sd /Times-Roman ff 240.00 scf sf 150 4731 m gs 1 -1 sc (Local data) col7 sh gr % here ends figure; % % here starts figure with depth 35 /Times-Roman ff 240.00 scf sf 3825 4731 m gs 1 -1 sc (0) col7 sh gr /Times-Roman ff 240.00 scf sf 7425 4731 m gs 1 -1 sc (1) col7 sh gr /Times-Roman ff 240.00 scf sf 11025 4731 m gs 1 -1 sc (2) col7 sh gr % here ends figure; % % here starts figure with depth 20 /Courier ff 240.00 scf sf 300 1425 m gs 1 -1 sc (vertglbnbr) col0 sh gr % Polyline 0 slj 0 slc 7.500 slw [15 45] 45 sd n 5100 13200 m 5400 13200 l 5400 13500 l 5100 13500 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5400 13200 m 5100 13500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 13200 m 5400 13500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 13200 m 8700 13200 l 8700 13500 l 8400 13500 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8700 13200 m 8400 13500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 13200 m 8700 13500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 12600 m 5400 12600 l 5400 12900 l 5100 12900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5400 12600 m 5100 12900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 12600 m 5400 12900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 12600 m 8700 12600 l 8700 12900 l 8400 12900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8700 12600 m 8400 12900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 12600 m 8700 12900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12300 12600 m 12600 12600 l 12600 12900 l 12300 12900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12600 12600 m 12300 12900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12300 12600 m 12600 12900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12300 13200 m 12600 13200 l 12600 13500 l 12300 13500 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12600 13200 m 12300 13500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12300 13200 m 12600 13500 l gs col0 s gr [] 0 sd /Courier ff 240.00 scf sf 300 9225 m gs 1 -1 sc (vertlocnbr) col0 sh gr % Polyline gs clippath 3120 12448 m 3120 12615 l 3180 12615 l 3180 12448 l 3180 12448 l 3150 12568 l 3120 12448 l cp eoclip n 2850 11700 m 2850 12225 l 3150 12225 l 3150 12600 l gs col0 s gr gr % arrowhead n 3120 12448 m 3150 12568 l 3180 12448 l 3120 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7620 12448 m 7620 12615 l 7680 12615 l 7680 12448 l 7680 12448 l 7650 12568 l 7620 12448 l cp eoclip n 6450 11700 m 6450 12150 l 7650 12150 l 7650 12600 l gs col0 s gr gr % arrowhead n 7620 12448 m 7650 12568 l 7680 12448 l 7620 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8520 12448 m 8520 12615 l 8580 12615 l 8580 12448 l 8580 12448 l 8550 12568 l 8520 12448 l cp eoclip n 6750 11700 m 6750 12075 l 8550 12075 l 8550 12600 l gs col0 s gr gr % arrowhead n 8520 12448 m 8550 12568 l 8580 12448 l 8520 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4320 12448 m 4320 12615 l 4380 12615 l 4380 12448 l 4380 12448 l 4350 12568 l 4320 12448 l cp eoclip n 3150 11700 m 3150 12150 l 4350 12150 l 4350 12600 l gs col0 s gr gr % arrowhead n 4320 12448 m 4350 12568 l 4380 12448 l 4320 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5220 12448 m 5220 12615 l 5280 12615 l 5280 12448 l 5280 12448 l 5250 12568 l 5220 12448 l cp eoclip n 3450 11625 m 3450 12075 l 5250 12075 l 5250 12600 l gs col0 s gr gr % arrowhead n 5220 12448 m 5250 12568 l 5280 12448 l 5220 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10620 12448 m 10620 12615 l 10680 12615 l 10680 12448 l 10680 12448 l 10650 12568 l 10620 12448 l cp eoclip n 10050 11700 m 10050 12225 l 10650 12225 l 10650 12600 l gs col0 s gr gr % arrowhead n 10620 12448 m 10650 12568 l 10680 12448 l 10620 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 11220 12448 m 11220 12615 l 11280 12615 l 11280 12448 l 11280 12448 l 11250 12568 l 11220 12448 l cp eoclip n 10350 11700 m 10350 12150 l 11250 12150 l 11250 12600 l gs col0 s gr gr % arrowhead n 11220 12448 m 11250 12568 l 11280 12448 l 11220 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 12420 12448 m 12420 12615 l 12480 12615 l 12480 12448 l 12480 12448 l 12450 12568 l 12420 12448 l cp eoclip n 10650 11700 m 10650 12075 l 12450 12075 l 12450 12600 l gs col0 s gr gr % arrowhead n 12420 12448 m 12450 12568 l 12480 12448 l 12420 12448 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 300 11025 m gs 1 -1 sc (vendloctab) col0 sh gr /Courier ff 240.00 scf sf 300 11625 m gs 1 -1 sc (vertloctab) col0 sh gr /Courier ff 240.00 scf sf 300 9825 m gs 1 -1 sc (vertgstnbr) col0 sh gr /Courier ff 240.00 scf sf 300 10425 m gs 1 -1 sc (edgelocnbr) col0 sh gr /Courier ff 240.00 scf sf 300 13425 m gs 1 -1 sc (edgegsttab) col0 sh gr /Courier ff 240.00 scf sf 300 12825 m gs 1 -1 sc (edgeloctab) col0 sh gr /Courier ff 240.00 scf sf 300 825 m gs 1 -1 sc (baseval) col0 sh gr /Courier ff 240.00 scf sf 300 2025 m gs 1 -1 sc (edgeglbnbr) col0 sh gr /Courier ff 240.00 scf sf 300 3225 m gs 1 -1 sc (proccnttab) col0 sh gr /Courier ff 240.00 scf sf 300 2625 m gs 1 -1 sc (procglbnbr) col0 sh gr /Courier ff 240.00 scf sf 300 3825 m gs 1 -1 sc (procvrttab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 0 slj 0 slc 7.500 slw n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1800 m 2700 1800 l 2700 2100 l 2400 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 2040 m gs 1 -1 sc (26) col0 sh gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3000 m 3300 3000 l 3300 3300 l 3000 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3000 m 3000 3000 l 3000 3300 l 2700 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 2400 m 2700 2400 l 2700 2700 l 2400 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1200 m 2700 1200 l 2700 1500 l 2400 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3600 m 3300 3600 l 3300 3900 l 3000 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3600 m 3000 3600 l 3000 3900 l 2700 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3600 m 3600 3600 l 3600 3900 l 3300 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3600 m 2700 3600 l 2700 3900 l 2400 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 11400 m 2700 11400 l 2700 11700 l 2400 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 11400 m 3000 11400 l 3000 11700 l 2700 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 11400 m 3300 11400 l 3300 11700 l 3000 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 11400 m 3600 11400 l 3600 11700 l 3300 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 11640 m gs 1 -1 sc (10) col0 sh gr % Polyline n 2400 9600 m 2700 9600 l 2700 9900 l 2400 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 10200 m 2700 10200 l 2700 10500 l 2400 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 11400 m 6300 11400 l 6300 11700 l 6000 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 9600 m 6300 9600 l 6300 9900 l 6000 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 11400 m 6900 11400 l 6900 11700 l 6600 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 10200 m 6300 10200 l 6300 10500 l 6000 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 10200 m 9900 10200 l 9900 10500 l 9600 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 11400 m 9900 11400 l 9900 11700 l 9600 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 11400 m 10200 11400 l 10200 11700 l 9900 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10000 11640 m gs 1 -1 sc (4) col0 sh gr % Polyline n 9600 9600 m 9900 9600 l 9900 9900 l 9600 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 11400 m 10500 11400 l 10500 11700 l 10200 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10500 11400 m 10800 11400 l 10800 11700 l 10500 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10525 11640 m gs 1 -1 sc (10) col0 sh gr % Polyline n 6300 11400 m 6600 11400 l 6600 11700 l 6300 11700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 13200 m 2700 13200 l 2700 13500 l 2400 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 13200 m 3000 13200 l 3000 13500 l 2700 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 13200 m 3300 13200 l 3300 13500 l 3000 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 13200 m 3600 13200 l 3600 13500 l 3300 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 13200 m 3900 13200 l 3900 13500 l 3600 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 13200 m 4200 13200 l 4200 13500 l 3900 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 13200 m 6300 13200 l 6300 13500 l 6000 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 13200 m 6600 13200 l 6600 13500 l 6300 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 13200 m 6900 13200 l 6900 13500 l 6600 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 13200 m 7200 13200 l 7200 13500 l 6900 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 13200 m 4500 13200 l 4500 13500 l 4200 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 13200 m 4800 13200 l 4800 13500 l 4500 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 13200 m 5100 13200 l 5100 13500 l 4800 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 13200 m 9900 13200 l 9900 13500 l 9600 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 13200 m 10200 13200 l 10200 13500 l 9900 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 13200 m 10500 13200 l 10500 13500 l 10200 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10500 13200 m 10800 13200 l 10800 13500 l 10500 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10800 13200 m 11100 13200 l 11100 13500 l 10800 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11100 13200 m 11400 13200 l 11400 13500 l 11100 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11200 13440 m gs 1 -1 sc (4) col0 sh gr % Polyline n 11400 13200 m 11700 13200 l 11700 13500 l 11400 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11700 13200 m 12000 13200 l 12000 13500 l 11700 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 12000 13200 m 12300 13200 l 12300 13500 l 12000 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 13200 m 8100 13200 l 8100 13500 l 7800 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 13200 m 7800 13200 l 7800 13500 l 7500 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 13200 m 7500 13200 l 7500 13500 l 7200 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 13200 m 8400 13200 l 8400 13500 l 8100 13500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 12600 m 2700 12600 l 2700 12900 l 2400 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 12600 m 3000 12600 l 3000 12900 l 2700 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 12600 m 3300 12600 l 3300 12900 l 3000 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 12600 m 3600 12600 l 3600 12900 l 3300 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 12600 m 3900 12600 l 3900 12900 l 3600 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 12600 m 4200 12600 l 4200 12900 l 3900 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 12600 m 6300 12600 l 6300 12900 l 6000 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 12600 m 6600 12600 l 6600 12900 l 6300 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 12600 m 6900 12600 l 6900 12900 l 6600 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 12600 m 7200 12600 l 7200 12900 l 6900 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 12600 m 4500 12600 l 4500 12900 l 4200 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 12600 m 4800 12600 l 4800 12900 l 4500 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 12600 m 5100 12600 l 5100 12900 l 4800 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 12600 m 9900 12600 l 9900 12900 l 9600 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 12600 m 10200 12600 l 10200 12900 l 9900 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 12600 m 10500 12600 l 10500 12900 l 10200 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10500 12600 m 10800 12600 l 10800 12900 l 10500 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10800 12600 m 11100 12600 l 11100 12900 l 10800 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11100 12600 m 11400 12600 l 11400 12900 l 11100 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11200 12840 m gs 1 -1 sc (4) col0 sh gr % Polyline n 11400 12600 m 11700 12600 l 11700 12900 l 11400 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11700 12600 m 12000 12600 l 12000 12900 l 11700 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 12000 12600 m 12300 12600 l 12300 12900 l 12000 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 12600 m 8100 12600 l 8100 12900 l 7800 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 12600 m 7800 12600 l 7800 12900 l 7500 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 12600 m 7500 12600 l 7500 12900 l 7200 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 12600 m 8400 12600 l 8400 12900 l 8100 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 9000 m 2700 9000 l 2700 9300 l 2400 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 9000 m 6300 9000 l 6300 9300 l 6000 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 9000 m 9900 9000 l 9900 9300 l 9600 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline gs clippath 2520 12448 m 2520 12615 l 2580 12615 l 2580 12448 l 2580 12448 l 2550 12568 l 2520 12448 l cp eoclip n 2550 11700 m 2550 12600 l gs col0 s gr gr % arrowhead n 2520 12448 m 2550 12568 l 2580 12448 l 2520 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6120 12448 m 6120 12615 l 6180 12615 l 6180 12448 l 6180 12448 l 6150 12568 l 6120 12448 l cp eoclip n 6150 11700 m 6150 12600 l gs col0 s gr gr % arrowhead n 6120 12448 m 6150 12568 l 6180 12448 l 6120 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9720 12448 m 9720 12615 l 9780 12615 l 9780 12448 l 9780 12448 l 9750 12568 l 9720 12448 l cp eoclip n 9750 11700 m 9750 12600 l gs col0 s gr gr % arrowhead n 9720 12448 m 9750 12568 l 9780 12448 l 9720 12448 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2670 11248 m 2670 11415 l 2730 11415 l 2730 11248 l 2730 11248 l 2700 11368 l 2670 11248 l cp eoclip n 2400 10950 m 2700 10950 l 2700 11400 l gs col0 s gr gr % arrowhead n 2670 11248 m 2700 11368 l 2730 11248 l 2670 11248 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6270 11248 m 6270 11415 l 6330 11415 l 6330 11248 l 6330 11248 l 6300 11368 l 6270 11248 l cp eoclip n 6000 10950 m 6300 10950 l 6300 11400 l gs col0 s gr gr % arrowhead n 6270 11248 m 6300 11368 l 6330 11248 l 6270 11248 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9870 11248 m 9870 11415 l 9930 11415 l 9930 11248 l 9930 11248 l 9900 11368 l 9870 11248 l cp eoclip n 9600 10950 m 9900 10950 l 9900 11400 l gs col0 s gr gr % arrowhead n 9870 11248 m 9900 11368 l 9930 11248 l 9870 11248 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 7500 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 3900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8400 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8400 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6600 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6600 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5700 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9300 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3900 7200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3900 5400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3000 6300 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4800 6300 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 4800 8100 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 7500 6300 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 8100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6600 5400 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 6600 7200 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 8400 5400 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 8400 7200 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11100 7200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11100 5400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12000 6300 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10200 6300 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 10200 8100 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 7450 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7450 3990 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8350 1290 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6550 3090 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6550 1290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5650 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3850 7290 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3850 5490 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2950 6390 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4750 6390 m gs 1 -1 sc (4) col7 sh gr /Times-Roman ff 240.00 scf sf 4750 8190 m gs 1 -1 sc (5) col7 sh gr /Times-Roman ff 240.00 scf sf 7450 6390 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7450 8190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6550 5490 m gs 1 -1 sc (4) col7 sh gr /Times-Roman ff 240.00 scf sf 6550 7290 m gs 1 -1 sc (3) col7 sh gr /Times-Roman ff 240.00 scf sf 8350 5490 m gs 1 -1 sc (5) col7 sh gr /Times-Roman ff 240.00 scf sf 11050 5490 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10150 6390 m gs 1 -1 sc (4) col7 sh gr /Times-Roman ff 240.00 scf sf 10150 8190 m gs 1 -1 sc (5) col7 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 8350 3090 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 9250 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 8350 7290 m gs 1 -1 sc (6) col7 sh gr /Times-Roman ff 240.00 scf sf 11050 7290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 11950 6390 m gs 1 -1 sc (2) col0 sh gr % here ends figure; % % here starts figure with depth 5 /Times-Roman ff 240.00 scf sf 2500 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 3240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 2640 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 1440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 3840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 3840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 3840 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 3840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 11640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 11640 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 11640 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 9840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 10440 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 11640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 9840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 11640 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 10440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 10440 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 11640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 9840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 11640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 11640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 13440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 13440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 13440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 13440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 13440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 13440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 13440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 13440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 13440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 13440 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 13440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 13440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 13440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 13440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 13440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 13440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 10600 13440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10900 13440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 11500 13440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 11800 13440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 12100 13440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 13440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 13440 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 13440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 13440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 12840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 12840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 12840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 12840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 12840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 10600 12840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 10900 12840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 11500 12840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 11800 12840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 12100 12840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 12840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 12840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 9240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 9240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 9240 m gs 1 -1 sc (3) col0 sh gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_gr1.fig000066400000000000000000000572501514310134000263540ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5-alpha5 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 0 0 12900 300 2 2 0 1 0 0 50 -1 10 0.000 0 0 -1 0 0 5 12900 300 0 300 0 0 12900 0 12900 300 4 0 7 40 -1 0 19 0.0000 4 270 1995 174 231 Duplicated data\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 840 1\001 -6 6 2400 1800 2700 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1800 2700 1800 2700 2100 2400 2100 2400 1800 4 0 0 15 0 0 16 0.0000 4 195 270 2425 2040 26\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 3240 3\001 -6 6 3000 3000 3300 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3000 3300 3000 3300 3300 3000 3300 3000 3000 4 0 0 5 0 0 16 0.0000 4 195 135 3100 3240 3\001 -6 6 2700 3000 3000 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3000 3000 3000 3000 3300 2700 3300 2700 3000 4 0 0 5 0 0 16 0.0000 4 195 135 2800 3240 2\001 -6 6 2400 2400 2700 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 2400 2700 2400 2700 2700 2400 2700 2400 2400 4 0 0 5 0 0 16 0.0000 4 195 135 2500 2640 3\001 -6 6 300 1200 2700 1500 6 2400 1200 2700 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1200 2700 1200 2700 1500 2400 1500 2400 1200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 1440 8\001 -6 4 0 0 20 0 12 16 0.0000 4 240 1650 300 1425 vertglbnbr\001 -6 6 5550 975 9450 4125 6 5550 1050 9450 4050 6 7350 1950 7650 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 2100 150 150 7500 2100 7650 2100 4 0 0 10 0 0 16 0.0000 4 195 135 7450 2190 4\001 -6 6 7350 3750 7650 4050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 3900 150 150 7500 3900 7650 3900 4 0 0 10 0 0 16 0.0000 4 195 135 7450 3990 5\001 -6 6 8250 2850 8550 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8400 3000 150 150 8400 3000 8550 3000 4 0 0 8 0 0 16 0.0000 4 195 135 8350 3090 8\001 -6 6 8250 1050 8550 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8400 1200 150 150 8400 1200 8550 1200 4 0 0 10 0 0 16 0.0000 4 195 135 8350 1290 6\001 -6 6 6450 2850 6750 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6600 3000 150 150 6600 3000 6750 3000 4 0 0 10 0 0 16 0.0000 4 195 135 6550 3090 2\001 -6 6 6450 1050 6750 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6600 1200 150 150 6600 1200 6750 1200 4 0 0 10 0 0 16 0.0000 4 195 135 6550 1290 3\001 -6 6 5550 1950 5850 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5700 2100 150 150 5700 2100 5850 2100 4 0 0 10 0 0 16 0.0000 4 195 135 5650 2190 1\001 -6 6 9150 1950 9450 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9300 2100 150 150 9300 2100 9450 2100 4 0 0 8 0 0 16 0.0000 4 195 135 9250 2190 7\001 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 8400 1200 7500 2100 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 13 6600 1200 7500 2100 6600 3000 5700 2100 6600 1200 6600 3000 7500 3900 7500 2100 8400 3000 9300 2100 8400 1200 8400 3000 7500 3900 -6 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 6 7875 975 7725 1425 8025 2025 7800 2850 8025 3675 7875 4125 0.000 1.000 1.000 1.000 1.000 0.000 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 7 7125 975 6975 1275 7050 1875 6900 2325 7200 3000 6975 3675 6975 4125 0.000 1.000 1.000 1.000 1.000 1.000 0.000 -6 6 2400 3600 3600 3900 6 3000 3600 3300 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3600 3300 3600 3300 3900 3000 3900 3000 3600 4 0 0 5 0 0 16 0.0000 4 195 135 3100 3840 6\001 -6 6 2700 3600 3000 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3600 3000 3600 3000 3900 2700 3900 2700 3600 4 0 0 5 0 0 16 0.0000 4 195 135 2800 3840 4\001 -6 6 3300 3600 3600 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3600 3600 3600 3600 3900 3300 3900 3300 3600 4 0 0 5 0 0 16 0.0000 4 195 135 3400 3840 9\001 -6 6 2400 3600 2700 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3600 2700 3600 2700 3900 2400 3900 2400 3600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 3840 1\001 -6 -6 6 0 4500 12900 13800 6 2850 5175 4950 8325 6 3750 7050 4050 7350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3900 7200 150 150 3900 7200 4050 7200 4 0 0 10 0 0 16 0.0000 4 195 135 3850 7290 2\001 -6 6 3750 5250 4050 5550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3900 5400 150 150 3900 5400 4050 5400 4 0 0 10 0 0 16 0.0000 4 195 135 3850 5490 3\001 -6 6 2850 6150 3150 6450 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3000 6300 150 150 3000 6300 3150 6300 4 0 0 10 0 0 16 0.0000 4 195 135 2950 6390 1\001 -6 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 4800 6300 150 150 4800 6300 4950 6300 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 4800 8100 150 150 4800 8100 4950 8100 2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 7 4800 8100 3900 7200 4800 6300 3900 5400 3900 7200 3000 6300 3900 5400 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 7 4425 5175 4275 5475 4350 6075 4200 6525 4500 7200 4275 7875 4275 8325 0.000 1.000 1.000 1.000 1.000 1.000 0.000 4 0 7 10 0 0 16 0.0000 4 195 135 4750 6390 4\001 4 0 7 10 0 0 16 0.0000 4 195 135 4750 8190 5\001 -6 6 6450 5175 8550 8325 6 7350 6150 7650 6450 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 6300 150 150 7500 6300 7650 6300 4 0 0 10 0 0 16 0.0000 4 195 135 7450 6390 1\001 -6 6 7350 7950 7650 8250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 8100 150 150 7500 8100 7650 8100 4 0 0 10 0 0 16 0.0000 4 195 135 7450 8190 2\001 -6 6 6450 5250 6750 5550 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 6600 5400 150 150 6600 5400 6750 5400 4 0 7 10 0 0 16 0.0000 4 195 135 6550 5490 4\001 -6 6 6450 7050 6750 7350 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 6600 7200 150 150 6600 7200 6750 7200 4 0 7 10 0 0 16 0.0000 4 195 135 6550 7290 3\001 -6 6 8250 5250 8550 5550 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 8400 5400 150 150 8400 5400 8550 5400 4 0 7 10 0 0 16 0.0000 4 195 135 8350 5490 5\001 -6 6 8250 7050 8550 7350 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 8400 7200 150 150 8400 7200 8550 7200 4 0 7 8 0 0 16 0.0000 4 195 135 8350 7290 6\001 -6 2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 7 6600 5400 7500 6300 6600 7200 7500 8100 7500 6300 8400 7200 7500 8100 2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 7500 6300 8400 5400 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 6 7875 5175 7725 5625 8025 6225 7800 7050 8025 7875 7875 8325 0.000 1.000 1.000 1.000 1.000 0.000 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 7 7125 5175 6975 5475 7050 6075 6900 6525 7200 7200 6975 7875 6975 8325 0.000 1.000 1.000 1.000 1.000 1.000 0.000 -6 6 10050 5175 12150 8325 6 10950 7050 11250 7350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11100 7200 150 150 11100 7200 11250 7200 4 0 0 8 0 0 16 0.0000 4 195 135 11050 7290 3\001 -6 6 10950 5250 11250 5550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11100 5400 150 150 11100 5400 11250 5400 4 0 0 10 0 0 16 0.0000 4 195 135 11050 5490 1\001 -6 6 11850 6150 12150 6450 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12000 6300 150 150 12000 6300 12150 6300 4 0 0 8 0 0 16 0.0000 4 195 135 11950 6390 2\001 -6 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 10200 6300 150 150 10200 6300 10350 6300 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 10200 8100 150 150 10200 8100 10350 8100 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 10200 8100 11100 7200 10200 6300 11100 5400 11100 7200 12000 6300 11100 5400 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 6 10575 5175 10425 5625 10725 6225 10500 7050 10725 7875 10575 8325 0.000 1.000 1.000 1.000 1.000 0.000 4 0 7 10 0 0 16 0.0000 4 195 135 10150 6390 4\001 4 0 7 10 0 0 16 0.0000 4 195 135 10150 8190 5\001 -6 6 3750 4500 4050 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 4050 4800 3750 4800 3750 4500 4050 4500 4050 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 3825 4731 0\001 -6 6 7350 4500 7650 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 7650 4800 7350 4800 7350 4500 7650 4500 7650 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 7425 4731 1\001 -6 6 10950 4500 11250 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 11250 4800 10950 4800 10950 4500 11250 4500 11250 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 11025 4731 2\001 -6 6 300 9000 12600 13500 6 2400 11400 2700 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 11400 2700 11400 2700 11700 2400 11700 2400 11400 4 0 0 5 0 0 16 0.0000 4 195 135 2500 11640 1\001 -6 6 2700 11400 3000 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 11400 3000 11400 3000 11700 2700 11700 2700 11400 4 0 0 5 0 0 16 0.0000 4 195 135 2800 11640 3\001 -6 6 3000 11400 3300 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 11400 3300 11400 3300 11700 3000 11700 3000 11400 4 0 0 5 0 0 16 0.0000 4 195 135 3100 11640 7\001 -6 6 3300 11400 3600 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 11400 3600 11400 3600 11700 3300 11700 3300 11400 4 0 0 15 0 0 16 0.0000 4 195 270 3325 11640 10\001 -6 6 2400 9600 2700 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 9600 2700 9600 2700 9900 2400 9900 2400 9600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 9840 5\001 -6 6 2400 10200 2700 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 10200 2700 10200 2700 10500 2400 10500 2400 10200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 10440 9\001 -6 6 6000 11400 6300 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 11400 6300 11400 6300 11700 6000 11700 6000 11400 4 0 0 5 0 0 16 0.0000 4 195 135 6100 11640 1\001 -6 6 6000 9600 6300 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 9600 6300 9600 6300 9900 6000 9900 6000 9600 4 0 0 5 0 0 16 0.0000 4 195 135 6100 9840 6\001 -6 6 6600 11400 6900 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 11400 6900 11400 6900 11700 6600 11700 6600 11400 4 0 0 5 0 0 16 0.0000 4 195 135 6700 11640 9\001 -6 6 6000 10200 6300 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 10200 6300 10200 6300 10500 6000 10500 6000 10200 4 0 0 5 0 0 16 0.0000 4 195 135 6100 10440 8\001 -6 6 9600 10200 9900 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 10200 9900 10200 9900 10500 9600 10500 9600 10200 4 0 0 5 0 0 16 0.0000 4 195 135 9700 10440 9\001 -6 6 9600 11400 9900 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 11400 9900 11400 9900 11700 9600 11700 9600 11400 4 0 0 5 0 0 16 0.0000 4 195 135 9700 11640 1\001 -6 6 9900 11400 10200 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 11400 10200 11400 10200 11700 9900 11700 9900 11400 4 0 0 15 0 0 16 0.0000 4 195 135 10000 11640 4\001 -6 6 9600 9600 9900 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 9600 9900 9600 9900 9900 9600 9900 9600 9600 4 0 0 5 0 0 16 0.0000 4 195 135 9700 9840 5\001 -6 6 10200 11400 10500 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 11400 10500 11400 10500 11700 10200 11700 10200 11400 4 0 0 5 0 0 16 0.0000 4 195 135 10300 11640 6\001 -6 6 10500 11400 10800 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 11400 10800 11400 10800 11700 10500 11700 10500 11400 4 0 0 15 0 0 16 0.0000 4 195 270 10525 11640 10\001 -6 6 6300 11400 6600 11700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 11400 6600 11400 6600 11700 6300 11700 6300 11400 4 0 0 5 0 0 16 0.0000 4 195 135 6400 11640 6\001 -6 6 2400 13200 2700 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 13200 2700 13200 2700 13500 2400 13500 2400 13200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 13440 3\001 -6 6 2700 13200 3000 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 13200 3000 13200 3000 13500 2700 13500 2700 13200 4 0 0 5 0 0 16 0.0000 4 195 135 2800 13440 2\001 -6 6 3000 13200 3300 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 13200 3300 13200 3300 13500 3000 13500 3000 13200 4 0 0 5 0 0 16 0.0000 4 195 135 3100 13440 3\001 -6 6 3300 13200 3600 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 13200 3600 13200 3600 13500 3300 13500 3300 13200 4 0 0 5 0 0 16 0.0000 4 195 135 3400 13440 5\001 -6 6 3600 13200 3900 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 13200 3900 13200 3900 13500 3600 13500 3600 13200 4 0 0 5 0 0 16 0.0000 4 195 135 3700 13440 4\001 -6 6 3900 13200 4200 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 13200 4200 13200 4200 13500 3900 13500 3900 13200 4 0 0 5 0 0 16 0.0000 4 195 135 4000 13440 1\001 -6 6 6000 13200 6300 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 13200 6300 13200 6300 13500 6000 13500 6000 13200 4 0 0 5 0 0 16 0.0000 4 195 135 6100 13440 4\001 -6 6 6300 13200 6600 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 13200 6600 13200 6600 13500 6300 13500 6300 13200 4 0 0 5 0 0 16 0.0000 4 195 135 6400 13440 5\001 -6 6 6600 13200 6900 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 13200 6900 13200 6900 13500 6600 13500 6600 13200 4 0 0 5 0 0 16 0.0000 4 195 135 6700 13440 3\001 -6 6 6900 13200 7200 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 13200 7200 13200 7200 13500 6900 13500 6900 13200 4 0 0 5 0 0 16 0.0000 4 195 135 7000 13440 6\001 -6 6 4200 13200 4500 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 13200 4500 13200 4500 13500 4200 13500 4200 13200 4 0 0 5 0 0 16 0.0000 4 195 135 4300 13440 4\001 -6 6 4500 13200 4800 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 13200 4800 13200 4800 13500 4500 13500 4500 13200 4 0 0 5 0 0 16 0.0000 4 195 135 4600 13440 2\001 -6 6 4800 13200 5100 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 13200 5100 13200 5100 13500 4800 13500 4800 13200 4 0 0 5 0 0 16 0.0000 4 195 135 4900 13440 1\001 -6 6 5100 13200 5400 13500 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 5100 13200 5400 13200 5400 13500 5100 13500 5100 13200 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 5400 13200 5100 13500 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 5100 13200 5400 13500 -6 6 9600 13200 9900 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 13200 9900 13200 9900 13500 9600 13500 9600 13200 4 0 0 5 0 0 16 0.0000 4 195 135 9700 13440 4\001 -6 6 9900 13200 10200 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 13200 10200 13200 10200 13500 9900 13500 9900 13200 4 0 0 5 0 0 16 0.0000 4 195 135 10000 13440 2\001 -6 6 10200 13200 10500 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 13200 10500 13200 10500 13500 10200 13500 10200 13200 4 0 0 5 0 0 16 0.0000 4 195 135 10300 13440 3\001 -6 6 10500 13200 10800 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 13200 10800 13200 10800 13500 10500 13500 10500 13200 4 0 0 5 0 0 16 0.0000 4 195 135 10600 13440 1\001 -6 6 10800 13200 11100 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10800 13200 11100 13200 11100 13500 10800 13500 10800 13200 4 0 0 5 0 0 16 0.0000 4 195 135 10900 13440 3\001 -6 6 11100 13200 11400 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11100 13200 11400 13200 11400 13500 11100 13500 11100 13200 4 0 0 15 0 0 16 0.0000 4 195 135 11200 13440 4\001 -6 6 11400 13200 11700 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11400 13200 11700 13200 11700 13500 11400 13500 11400 13200 4 0 0 5 0 0 16 0.0000 4 195 135 11500 13440 1\001 -6 6 11700 13200 12000 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11700 13200 12000 13200 12000 13500 11700 13500 11700 13200 4 0 0 5 0 0 16 0.0000 4 195 135 11800 13440 2\001 -6 6 12000 13200 12300 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12000 13200 12300 13200 12300 13500 12000 13500 12000 13200 4 0 0 5 0 0 16 0.0000 4 195 135 12100 13440 5\001 -6 6 7800 13200 8100 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 13200 8100 13200 8100 13500 7800 13500 7800 13200 4 0 0 5 0 0 16 0.0000 4 195 135 7900 13440 3\001 -6 6 7500 13200 7800 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 13200 7800 13200 7800 13500 7500 13500 7500 13200 4 0 0 5 0 0 16 0.0000 4 195 135 7600 13440 6\001 -6 6 8400 13200 8700 13500 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 8400 13200 8700 13200 8700 13500 8400 13500 8400 13200 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8700 13200 8400 13500 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8400 13200 8700 13500 -6 6 7200 13200 7500 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 13200 7500 13200 7500 13500 7200 13500 7200 13200 4 0 0 5 0 0 16 0.0000 4 195 135 7300 13440 2\001 -6 6 8100 13200 8400 13500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 13200 8400 13200 8400 13500 8100 13500 8100 13200 4 0 0 5 0 0 16 0.0000 4 195 135 8200 13440 1\001 -6 6 2400 12600 2700 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 12600 2700 12600 2700 12900 2400 12900 2400 12600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 12840 3\001 -6 6 2700 12600 3000 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 12600 3000 12600 3000 12900 2700 12900 2700 12600 4 0 0 5 0 0 16 0.0000 4 195 135 2800 12840 2\001 -6 6 3000 12600 3300 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 12600 3300 12600 3300 12900 3000 12900 3000 12600 4 0 0 5 0 0 16 0.0000 4 195 135 3100 12840 3\001 -6 6 3300 12600 3600 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 12600 3600 12600 3600 12900 3300 12900 3300 12600 4 0 0 5 0 0 16 0.0000 4 195 135 3400 12840 5\001 -6 6 3600 12600 3900 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 12600 3900 12600 3900 12900 3600 12900 3600 12600 4 0 0 5 0 0 16 0.0000 4 195 135 3700 12840 4\001 -6 6 3900 12600 4200 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 12600 4200 12600 4200 12900 3900 12900 3900 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4000 12840 1\001 -6 6 6000 12600 6300 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 12600 6300 12600 6300 12900 6000 12900 6000 12600 4 0 0 5 0 0 16 0.0000 4 195 135 6100 12840 3\001 -6 6 6300 12600 6600 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 12600 6600 12600 6600 12900 6300 12900 6300 12600 4 0 0 5 0 0 16 0.0000 4 195 135 6400 12840 6\001 -6 6 6600 12600 6900 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 12600 6900 12600 6900 12900 6600 12900 6600 12600 4 0 0 5 0 0 16 0.0000 4 195 135 6700 12840 2\001 -6 6 6900 12600 7200 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 12600 7200 12600 7200 12900 6900 12900 6900 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7000 12840 8\001 -6 6 4200 12600 4500 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 12600 4500 12600 4500 12900 4200 12900 4200 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4300 12840 4\001 -6 6 4500 12600 4800 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 12600 4800 12600 4800 12900 4500 12900 4500 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4600 12840 2\001 -6 6 4800 12600 5100 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 12600 5100 12600 5100 12900 4800 12900 4800 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4900 12840 1\001 -6 6 5100 12600 5400 12900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 5100 12600 5400 12600 5400 12900 5100 12900 5100 12600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 5400 12600 5100 12900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 5100 12600 5400 12900 -6 6 9600 12600 9900 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 12600 9900 12600 9900 12900 9600 12900 9600 12600 4 0 0 5 0 0 16 0.0000 4 195 135 9700 12840 4\001 -6 6 9900 12600 10200 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 12600 10200 12600 10200 12900 9900 12900 9900 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10000 12840 7\001 -6 6 10200 12600 10500 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 12600 10500 12600 10500 12900 10200 12900 10200 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10300 12840 8\001 -6 6 10500 12600 10800 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 12600 10800 12600 10800 12900 10500 12900 10500 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10600 12840 6\001 -6 6 10800 12600 11100 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10800 12600 11100 12600 11100 12900 10800 12900 10800 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10900 12840 8\001 -6 6 11100 12600 11400 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11100 12600 11400 12600 11400 12900 11100 12900 11100 12600 4 0 0 15 0 0 16 0.0000 4 195 135 11200 12840 4\001 -6 6 11400 12600 11700 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11400 12600 11700 12600 11700 12900 11400 12900 11400 12600 4 0 0 5 0 0 16 0.0000 4 195 135 11500 12840 6\001 -6 6 11700 12600 12000 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11700 12600 12000 12600 12000 12900 11700 12900 11700 12600 4 0 0 5 0 0 16 0.0000 4 195 135 11800 12840 7\001 -6 6 12000 12600 12300 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12000 12600 12300 12600 12300 12900 12000 12900 12000 12600 4 0 0 5 0 0 16 0.0000 4 195 135 12100 12840 5\001 -6 6 7800 12600 8100 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 12600 8100 12600 8100 12900 7800 12900 7800 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7900 12840 2\001 -6 6 7500 12600 7800 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 12600 7800 12600 7800 12900 7500 12900 7500 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7600 12840 8\001 -6 6 8400 12600 8700 12900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 8400 12600 8700 12600 8700 12900 8400 12900 8400 12600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8700 12600 8400 12900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 8400 12600 8700 12900 -6 6 7200 12600 7500 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 12600 7500 12600 7500 12900 7200 12900 7200 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7300 12840 5\001 -6 6 8100 12600 8400 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 12600 8400 12600 8400 12900 8100 12900 8100 12600 4 0 0 5 0 0 16 0.0000 4 195 135 8200 12840 4\001 -6 6 12300 12600 12600 12900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 12300 12600 12600 12600 12600 12900 12300 12900 12300 12600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12600 12600 12300 12900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12300 12600 12600 12900 -6 6 12300 13200 12600 13500 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 12300 13200 12600 13200 12600 13500 12300 13500 12300 13200 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12600 13200 12300 13500 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12300 13200 12600 13500 -6 6 300 9000 9900 9300 6 2400 9000 2700 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 9000 2700 9000 2700 9300 2400 9300 2400 9000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 9240 3\001 -6 6 6000 9000 6300 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 9000 6300 9000 6300 9300 6000 9300 6000 9000 4 0 0 5 0 0 16 0.0000 4 195 135 6100 9240 2\001 -6 6 9600 9000 9900 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 9000 9900 9000 9900 9300 9600 9300 9600 9000 4 0 0 5 0 0 16 0.0000 4 195 135 9700 9240 3\001 -6 4 0 0 20 0 12 16 0.0000 4 180 1650 300 9225 vertlocnbr\001 -6 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 2550 11700 2550 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 11700 2850 12225 3150 12225 3150 12600 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 6150 11700 6150 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 6450 11700 6450 12150 7650 12150 7650 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 6750 11700 6750 12075 8550 12075 8550 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 11700 3150 12150 4350 12150 4350 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 11625 3450 12075 5250 12075 5250 12600 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 9750 11700 9750 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10050 11700 10050 12225 10650 12225 10650 12600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10350 11700 10350 12150 11250 12150 11250 12600 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 2400 10950 2700 10950 2700 11400 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 6000 10950 6300 10950 6300 11400 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 9600 10950 9900 10950 9900 11400 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10650 11700 10650 12075 12450 12075 12450 12600 4 0 0 20 0 12 16 0.0000 4 180 1650 300 11025 vendloctab\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 11625 vertloctab\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 9825 vertgstnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 10425 edgelocnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 13425 edgegsttab\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 12825 edgeloctab\001 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 2100 13800 2100 4800 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 5700 13800 5700 4800 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 9300 13800 9300 4800 2 2 0 1 0 0 50 -1 10 0.000 0 0 -1 0 0 5 12900 4800 0 4800 0 4500 12900 4500 12900 4800 4 0 7 40 -1 0 16 0.0000 4 195 1140 150 4731 Local data\001 -6 4 0 0 20 0 12 16 0.0000 4 180 1155 300 825 baseval\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 2025 edgeglbnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 3225 proccnttab\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 2625 procglbnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 3825 procvrttab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_gr2.eps000066400000000000000000001172441514310134000263770ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 %%CreationDate: Tue Feb 5 15:59:38 2008 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 776 866 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 866 moveto 0 0 lineto 776 0 lineto 776 866 lineto closepath clip newpath 0.7 864.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 55 % Polyline 0 slj 0 slc 0.000 slw n 4050 4800 m 3750 4800 l 3750 4500 l 4050 4500 l cp gs 0.50 setgray ef gr % Polyline n 7650 4800 m 7350 4800 l 7350 4500 l 7650 4500 l cp gs 0.50 setgray ef gr % Polyline n 11250 4800 m 10950 4800 l 10950 4500 l 11250 4500 l cp gs 0.50 setgray ef gr % here ends figure; % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 12900 300 m 0 300 l 0 0 l 12900 0 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 4800 8100 m 3900 7200 l 4800 6300 l 3900 5400 l 3900 7200 l 3000 6300 l 3900 5400 l gs col0 s gr % Polyline n 6600 5400 m 7500 6300 l 6600 7200 l 7500 8100 l 7500 6300 l 8400 7200 l 7500 8100 l gs col0 s gr % Polyline n 7500 6300 m 8400 5400 l gs col0 s gr % Polyline n 10200 8100 m 11100 7200 l 10200 6300 l 11100 5400 l 11100 7200 l 12000 6300 l 11100 5400 l gs col0 s gr % Polyline n 2100 14400 m 2100 4800 l gs col0 s gr % Polyline n 5700 14400 m 5700 4800 l gs col0 s gr % Polyline n 9300 14400 m 9300 4800 l gs col0 s gr % Polyline n 12900 4800 m 0 4800 l 0 4500 l 12900 4500 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 8400 1200 m 7500 2100 l gs col0 s gr % Polyline n 6600 1200 m 7500 2100 l 6600 3000 l 5700 2100 l 6600 1200 l 6600 3000 l 7500 3900 l 7500 2100 l 8400 3000 l 9300 2100 l 8400 1200 l 8400 3000 l 7500 3900 l gs col0 s gr % here ends figure; % % here starts figure with depth 40 /Times-Roman ff 285.00 scf sf 174 231 m gs 1 -1 sc (Duplicated data) col7 sh gr % Polyline 2 slj 0 slc 7.500 slw [15 45] 45 sd n 4425 5175 m 4424 5178 l 4420 5185 l 4415 5197 l 4408 5214 l 4398 5236 l 4388 5260 l 4377 5287 l 4366 5314 l 4356 5341 l 4347 5367 l 4339 5391 l 4332 5415 l 4326 5437 l 4322 5459 l 4318 5481 l 4315 5502 l 4313 5525 l 4311 5544 l 4310 5564 l 4309 5584 l 4309 5606 l 4309 5628 l 4309 5651 l 4310 5676 l 4310 5700 l 4311 5726 l 4312 5752 l 4313 5778 l 4313 5805 l 4314 5832 l 4315 5858 l 4315 5884 l 4316 5909 l 4316 5934 l 4316 5959 l 4316 5982 l 4315 6005 l 4314 6028 l 4313 6050 l 4311 6072 l 4309 6094 l 4306 6115 l 4303 6137 l 4300 6160 l 4297 6183 l 4294 6206 l 4290 6229 l 4287 6253 l 4283 6277 l 4280 6302 l 4277 6326 l 4275 6351 l 4272 6375 l 4271 6399 l 4269 6423 l 4269 6446 l 4269 6470 l 4269 6493 l 4270 6516 l 4272 6539 l 4275 6563 l 4278 6584 l 4282 6606 l 4287 6629 l 4292 6653 l 4297 6677 l 4304 6702 l 4310 6728 l 4318 6755 l 4325 6782 l 4333 6810 l 4340 6839 l 4348 6868 l 4356 6897 l 4364 6926 l 4371 6955 l 4378 6984 l 4384 7012 l 4390 7040 l 4396 7068 l 4401 7095 l 4405 7122 l 4408 7148 l 4411 7174 l 4413 7200 l 4414 7226 l 4414 7252 l 4413 7278 l 4412 7305 l 4410 7332 l 4408 7360 l 4404 7388 l 4401 7416 l 4396 7445 l 4391 7474 l 4386 7503 l 4381 7532 l 4375 7561 l 4369 7590 l 4362 7618 l 4356 7645 l 4350 7672 l 4344 7698 l 4338 7723 l 4332 7747 l 4327 7771 l 4322 7794 l 4317 7816 l 4313 7838 l 4308 7861 l 4304 7884 l 4300 7907 l 4297 7930 l 4294 7954 l 4291 7979 l 4289 8005 l 4287 8032 l 4285 8061 l 4283 8091 l 4281 8122 l 4280 8154 l 4279 8186 l 4278 8217 l 4277 8246 l 4276 8270 l 4276 8291 l 4275 8306 l 4275 8317 l 4275 8322 l 4275 8325 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7875 5175 m 7874 5178 l 7872 5186 l 7868 5199 l 7863 5218 l 7856 5243 l 7848 5273 l 7839 5306 l 7831 5341 l 7823 5375 l 7815 5409 l 7809 5442 l 7804 5472 l 7800 5501 l 7797 5528 l 7795 5554 l 7795 5578 l 7795 5602 l 7797 5626 l 7800 5650 l 7803 5670 l 7807 5691 l 7812 5712 l 7817 5734 l 7822 5756 l 7829 5779 l 7835 5803 l 7843 5828 l 7850 5854 l 7858 5880 l 7865 5907 l 7873 5934 l 7881 5961 l 7889 5989 l 7896 6017 l 7903 6045 l 7909 6072 l 7915 6100 l 7921 6127 l 7926 6155 l 7930 6182 l 7933 6208 l 7936 6235 l 7938 6263 l 7938 6286 l 7939 6310 l 7939 6334 l 7938 6359 l 7937 6385 l 7935 6411 l 7933 6438 l 7931 6466 l 7928 6494 l 7925 6523 l 7922 6552 l 7918 6582 l 7915 6612 l 7911 6643 l 7907 6673 l 7903 6704 l 7899 6735 l 7896 6765 l 7892 6795 l 7889 6825 l 7886 6855 l 7883 6884 l 7881 6912 l 7879 6941 l 7877 6968 l 7876 6996 l 7875 7023 l 7875 7050 l 7875 7079 l 7876 7108 l 7878 7138 l 7879 7168 l 7882 7198 l 7885 7229 l 7888 7261 l 7892 7292 l 7896 7324 l 7900 7357 l 7905 7389 l 7909 7422 l 7914 7454 l 7919 7486 l 7924 7517 l 7929 7548 l 7934 7579 l 7938 7608 l 7943 7637 l 7947 7665 l 7950 7691 l 7954 7717 l 7956 7742 l 7959 7766 l 7961 7790 l 7963 7813 l 7964 7839 l 7964 7864 l 7964 7890 l 7963 7915 l 7961 7941 l 7958 7968 l 7954 7995 l 7949 8024 l 7943 8054 l 7937 8086 l 7930 8118 l 7922 8151 l 7914 8184 l 7905 8215 l 7898 8244 l 7891 8270 l 7885 8290 l 7881 8306 l 7877 8317 l 7876 8322 l 7875 8325 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7125 5175 m 7124 5178 l 7120 5185 l 7115 5197 l 7108 5214 l 7098 5236 l 7088 5260 l 7077 5287 l 7066 5314 l 7056 5341 l 7047 5367 l 7039 5391 l 7032 5415 l 7026 5437 l 7022 5459 l 7018 5481 l 7015 5502 l 7013 5525 l 7011 5544 l 7010 5564 l 7009 5584 l 7009 5606 l 7009 5628 l 7009 5651 l 7010 5676 l 7010 5700 l 7011 5726 l 7012 5752 l 7013 5778 l 7013 5805 l 7014 5832 l 7015 5858 l 7015 5884 l 7016 5909 l 7016 5934 l 7016 5959 l 7016 5982 l 7015 6005 l 7014 6028 l 7013 6050 l 7011 6072 l 7009 6094 l 7006 6115 l 7003 6137 l 7000 6160 l 6997 6183 l 6994 6206 l 6990 6229 l 6987 6253 l 6983 6277 l 6980 6302 l 6977 6326 l 6975 6351 l 6972 6375 l 6971 6399 l 6969 6423 l 6969 6446 l 6969 6470 l 6969 6493 l 6970 6516 l 6972 6539 l 6975 6563 l 6978 6584 l 6982 6606 l 6987 6629 l 6992 6653 l 6997 6677 l 7004 6702 l 7010 6728 l 7018 6755 l 7025 6782 l 7033 6810 l 7040 6839 l 7048 6868 l 7056 6897 l 7064 6926 l 7071 6955 l 7078 6984 l 7084 7012 l 7090 7040 l 7096 7068 l 7101 7095 l 7105 7122 l 7108 7148 l 7111 7174 l 7113 7200 l 7114 7226 l 7114 7252 l 7113 7278 l 7112 7305 l 7110 7332 l 7108 7360 l 7104 7388 l 7101 7416 l 7096 7445 l 7091 7474 l 7086 7503 l 7081 7532 l 7075 7561 l 7069 7590 l 7062 7618 l 7056 7645 l 7050 7672 l 7044 7698 l 7038 7723 l 7032 7747 l 7027 7771 l 7022 7794 l 7017 7816 l 7013 7838 l 7008 7861 l 7004 7884 l 7000 7907 l 6997 7930 l 6994 7954 l 6991 7979 l 6989 8005 l 6987 8032 l 6985 8061 l 6983 8091 l 6981 8122 l 6980 8154 l 6979 8186 l 6978 8217 l 6977 8246 l 6976 8270 l 6976 8291 l 6975 8306 l 6975 8317 l 6975 8322 l 6975 8325 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 10575 5175 m 10574 5178 l 10572 5186 l 10568 5199 l 10563 5218 l 10556 5243 l 10548 5273 l 10539 5306 l 10531 5341 l 10523 5375 l 10515 5409 l 10509 5442 l 10504 5472 l 10500 5501 l 10497 5528 l 10495 5554 l 10495 5578 l 10495 5602 l 10497 5626 l 10500 5650 l 10503 5670 l 10507 5691 l 10512 5712 l 10517 5734 l 10522 5756 l 10529 5779 l 10535 5803 l 10543 5828 l 10550 5854 l 10558 5880 l 10565 5907 l 10573 5934 l 10581 5961 l 10589 5989 l 10596 6017 l 10603 6045 l 10609 6072 l 10615 6100 l 10621 6127 l 10626 6155 l 10630 6182 l 10633 6208 l 10636 6235 l 10638 6263 l 10638 6286 l 10639 6310 l 10639 6334 l 10638 6359 l 10637 6385 l 10635 6411 l 10633 6438 l 10631 6466 l 10628 6494 l 10625 6523 l 10622 6552 l 10618 6582 l 10615 6612 l 10611 6643 l 10607 6673 l 10603 6704 l 10599 6735 l 10596 6765 l 10592 6795 l 10589 6825 l 10586 6855 l 10583 6884 l 10581 6912 l 10579 6941 l 10577 6968 l 10576 6996 l 10575 7023 l 10575 7050 l 10575 7079 l 10576 7108 l 10578 7138 l 10579 7168 l 10582 7198 l 10585 7229 l 10588 7261 l 10592 7292 l 10596 7324 l 10600 7357 l 10605 7389 l 10609 7422 l 10614 7454 l 10619 7486 l 10624 7517 l 10629 7548 l 10634 7579 l 10638 7608 l 10643 7637 l 10647 7665 l 10650 7691 l 10654 7717 l 10656 7742 l 10659 7766 l 10661 7790 l 10663 7813 l 10664 7839 l 10664 7864 l 10664 7890 l 10663 7915 l 10661 7941 l 10658 7968 l 10654 7995 l 10649 8024 l 10643 8054 l 10637 8086 l 10630 8118 l 10622 8151 l 10614 8184 l 10605 8215 l 10598 8244 l 10591 8270 l 10585 8290 l 10581 8306 l 10577 8317 l 10576 8322 l 10575 8325 l gs col0 s gr [] 0 sd /Times-Roman ff 240.00 scf sf 150 4731 m gs 1 -1 sc (Local data) col7 sh gr % Polyline [15 45] 45 sd n 7875 975 m 7874 978 l 7872 986 l 7868 999 l 7863 1018 l 7856 1043 l 7848 1073 l 7839 1106 l 7831 1141 l 7823 1175 l 7815 1209 l 7809 1242 l 7804 1272 l 7800 1301 l 7797 1328 l 7795 1354 l 7795 1378 l 7795 1402 l 7797 1426 l 7800 1450 l 7803 1470 l 7807 1491 l 7812 1512 l 7817 1534 l 7822 1556 l 7829 1579 l 7835 1603 l 7843 1628 l 7850 1654 l 7858 1680 l 7865 1707 l 7873 1734 l 7881 1761 l 7889 1789 l 7896 1817 l 7903 1845 l 7909 1872 l 7915 1900 l 7921 1927 l 7926 1955 l 7930 1982 l 7933 2008 l 7936 2035 l 7938 2063 l 7938 2086 l 7939 2110 l 7939 2134 l 7938 2159 l 7937 2185 l 7935 2211 l 7933 2238 l 7931 2266 l 7928 2294 l 7925 2323 l 7922 2352 l 7918 2382 l 7915 2412 l 7911 2443 l 7907 2473 l 7903 2504 l 7899 2535 l 7896 2565 l 7892 2595 l 7889 2625 l 7886 2655 l 7883 2684 l 7881 2712 l 7879 2741 l 7877 2768 l 7876 2796 l 7875 2823 l 7875 2850 l 7875 2879 l 7876 2908 l 7878 2938 l 7879 2968 l 7882 2998 l 7885 3029 l 7888 3061 l 7892 3092 l 7896 3124 l 7900 3157 l 7905 3189 l 7909 3222 l 7914 3254 l 7919 3286 l 7924 3317 l 7929 3348 l 7934 3379 l 7938 3408 l 7943 3437 l 7947 3465 l 7950 3491 l 7954 3517 l 7956 3542 l 7959 3566 l 7961 3590 l 7963 3613 l 7964 3639 l 7964 3664 l 7964 3690 l 7963 3715 l 7961 3741 l 7958 3768 l 7954 3795 l 7949 3824 l 7943 3854 l 7937 3886 l 7930 3918 l 7922 3951 l 7914 3984 l 7905 4015 l 7898 4044 l 7891 4070 l 7885 4090 l 7881 4106 l 7877 4117 l 7876 4122 l 7875 4125 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7125 975 m 7124 978 l 7120 985 l 7115 997 l 7108 1014 l 7098 1036 l 7088 1060 l 7077 1087 l 7066 1114 l 7056 1141 l 7047 1167 l 7039 1191 l 7032 1215 l 7026 1237 l 7022 1259 l 7018 1281 l 7015 1302 l 7013 1325 l 7011 1344 l 7010 1364 l 7009 1384 l 7009 1406 l 7009 1428 l 7009 1451 l 7010 1476 l 7010 1500 l 7011 1526 l 7012 1552 l 7013 1578 l 7013 1605 l 7014 1632 l 7015 1658 l 7015 1684 l 7016 1709 l 7016 1734 l 7016 1759 l 7016 1782 l 7015 1805 l 7014 1828 l 7013 1850 l 7011 1872 l 7009 1894 l 7006 1915 l 7003 1937 l 7000 1960 l 6997 1983 l 6994 2006 l 6990 2029 l 6987 2053 l 6983 2077 l 6980 2102 l 6977 2126 l 6975 2151 l 6972 2175 l 6971 2199 l 6969 2223 l 6969 2246 l 6969 2270 l 6969 2293 l 6970 2316 l 6972 2339 l 6975 2363 l 6978 2384 l 6982 2406 l 6987 2429 l 6992 2453 l 6997 2477 l 7004 2502 l 7010 2528 l 7018 2555 l 7025 2582 l 7033 2610 l 7040 2639 l 7048 2668 l 7056 2697 l 7064 2726 l 7071 2755 l 7078 2784 l 7084 2812 l 7090 2840 l 7096 2868 l 7101 2895 l 7105 2922 l 7108 2948 l 7111 2974 l 7113 3000 l 7114 3026 l 7114 3052 l 7113 3078 l 7112 3105 l 7110 3132 l 7108 3160 l 7104 3188 l 7101 3216 l 7096 3245 l 7091 3274 l 7086 3303 l 7081 3332 l 7075 3361 l 7069 3390 l 7062 3418 l 7056 3445 l 7050 3472 l 7044 3498 l 7038 3523 l 7032 3547 l 7027 3571 l 7022 3594 l 7017 3616 l 7013 3638 l 7008 3661 l 7004 3684 l 7000 3707 l 6997 3730 l 6994 3754 l 6991 3779 l 6989 3805 l 6987 3832 l 6985 3861 l 6983 3891 l 6981 3922 l 6980 3954 l 6979 3986 l 6978 4017 l 6977 4046 l 6976 4070 l 6976 4091 l 6975 4106 l 6975 4117 l 6975 4122 l 6975 4125 l gs col0 s gr [] 0 sd % here ends figure; % % here starts figure with depth 35 /Times-Roman ff 240.00 scf sf 3825 4731 m gs 1 -1 sc (0) col7 sh gr /Times-Roman ff 240.00 scf sf 7425 4731 m gs 1 -1 sc (1) col7 sh gr /Times-Roman ff 240.00 scf sf 11025 4731 m gs 1 -1 sc (2) col7 sh gr % here ends figure; % % here starts figure with depth 20 /Courier ff 240.00 scf sf 300 1425 m gs 1 -1 sc (vertglbnbr) col0 sh gr /Courier ff 240.00 scf sf 300 3825 m gs 1 -1 sc (procvrttab) col0 sh gr /Courier ff 240.00 scf sf 300 9225 m gs 1 -1 sc (vertlocnbr) col0 sh gr % Polyline 0 slj 0 slc 7.500 slw gs clippath 2520 11848 m 2520 12015 l 2580 12015 l 2580 11848 l 2580 11848 l 2550 11968 l 2520 11848 l cp eoclip n 2850 11100 m 2850 11550 l 2550 11550 l 2550 12000 l gs col0 s gr gr % arrowhead n 2520 11848 m 2550 11968 l 2580 11848 l 2520 11848 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4920 11848 m 4920 12015 l 4980 12015 l 4980 11848 l 4980 11848 l 4950 11968 l 4920 11848 l cp eoclip n 2550 11100 m 2550 11475 l 4950 11475 l 4950 12000 l gs col0 s gr gr % arrowhead n 4920 11848 m 4950 11968 l 4980 11848 l 4920 11848 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10620 11848 m 10620 12015 l 10680 12015 l 10680 11848 l 10680 11848 l 10650 11968 l 10620 11848 l cp eoclip n 10050 11100 m 10050 11625 l 10650 11625 l 10650 12000 l gs col0 s gr gr % arrowhead n 10620 11848 m 10650 11968 l 10680 11848 l 10620 11848 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 11520 11848 m 11520 12015 l 11580 12015 l 11580 11848 l 11580 11848 l 11550 11968 l 11520 11848 l cp eoclip n 10350 11100 m 10350 11550 l 11550 11550 l 11550 12000 l gs col0 s gr gr % arrowhead n 11520 11848 m 11550 11968 l 11580 11848 l 11520 11848 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10680 13052 m 10680 12885 l 10620 12885 l 10620 13052 l 10620 13052 l 10650 12932 l 10680 13052 l cp eoclip n 9750 13800 m 9750 13275 l 10650 13275 l 10650 12900 l gs col0 s gr gr % arrowhead n 10680 13052 m 10650 12932 l 10620 13052 l 10680 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 11280 13052 m 11280 12885 l 11220 12885 l 11220 13052 l 11220 13052 l 11250 12932 l 11280 13052 l cp eoclip n 10050 13800 m 10050 13350 l 11250 13350 l 11250 12900 l gs col0 s gr gr % arrowhead n 11280 13052 m 11250 12932 l 11220 13052 l 11280 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 12780 13052 m 12780 12885 l 12720 12885 l 12720 13052 l 12720 13052 l 12750 12932 l 12780 13052 l cp eoclip n 10350 13800 m 10350 13425 l 12750 13425 l 12750 12900 l gs col0 s gr gr % arrowhead n 12780 13052 m 12750 12932 l 12720 13052 l 12780 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7620 11848 m 7620 12015 l 7680 12015 l 7680 11848 l 7680 11848 l 7650 11968 l 7620 11848 l cp eoclip n 6150 11100 m 6150 11550 l 7650 11550 l 7650 12000 l gs col0 s gr gr % arrowhead n 7620 11848 m 7650 11968 l 7680 11848 l 7620 11848 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9180 13052 m 9180 12885 l 9120 12885 l 9120 13052 l 9120 13052 l 9150 12932 l 9180 13052 l cp eoclip n 6150 13800 m 6150 13275 l 9150 13275 l 9150 12900 l gs col0 s gr gr % arrowhead n 9180 13052 m 9150 12932 l 9120 13052 l 9180 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7380 13052 m 7380 12885 l 7320 12885 l 7320 13052 l 7320 13052 l 7350 12932 l 7380 13052 l cp eoclip n 6450 13800 m 6450 13350 l 7350 13350 l 7350 12900 l gs col0 s gr gr % arrowhead n 7380 13052 m 7350 12932 l 7320 13052 l 7380 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5580 13052 m 5580 12885 l 5520 12885 l 5520 13052 l 5520 13052 l 5550 12932 l 5580 13052 l cp eoclip n 2550 13800 m 2550 13425 l 5550 13425 l 5550 12900 l gs col0 s gr gr % arrowhead n 5580 13052 m 5550 12932 l 5520 13052 l 5580 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3780 13052 m 3780 12885 l 3720 12885 l 3720 13052 l 3720 13052 l 3750 12932 l 3780 13052 l cp eoclip n 2850 13800 m 2850 13350 l 3750 13350 l 3750 12900 l gs col0 s gr gr % arrowhead n 3780 13052 m 3750 12932 l 3720 13052 l 3780 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4980 13052 m 4980 12885 l 4920 12885 l 4920 13052 l 4920 13052 l 4950 12932 l 4980 13052 l cp eoclip n 3150 13800 m 3150 13275 l 4950 13275 l 4950 12900 l gs col0 s gr gr % arrowhead n 4980 13052 m 4950 12932 l 4920 13052 l 4980 13052 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4020 11848 m 4020 12015 l 4080 12015 l 4080 11848 l 4080 11848 l 4050 11968 l 4020 11848 l cp eoclip n 3150 11100 m 3150 11625 l 4050 11625 l 4050 12000 l gs col0 s gr gr % arrowhead n 4020 11848 m 4050 11968 l 4080 11848 l 4020 11848 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 300 9825 m gs 1 -1 sc (vertgstnbr) col0 sh gr /Courier ff 240.00 scf sf 300 10425 m gs 1 -1 sc (edgelocnbr) col0 sh gr /Courier ff 240.00 scf sf 300 12825 m gs 1 -1 sc (edgegsttab) col0 sh gr /Courier ff 240.00 scf sf 300 12225 m gs 1 -1 sc (edgeloctab) col0 sh gr /Courier ff 240.00 scf sf 300 11025 m gs 1 -1 sc (vertloctab) col0 sh gr /Courier ff 240.00 scf sf 300 14025 m gs 1 -1 sc (vendloctab) col0 sh gr /Courier ff 240.00 scf sf 300 825 m gs 1 -1 sc (baseval) col0 sh gr /Courier ff 240.00 scf sf 300 2025 m gs 1 -1 sc (edgeglbnbr) col0 sh gr /Courier ff 240.00 scf sf 300 3225 m gs 1 -1 sc (proccnttab) col0 sh gr /Courier ff 240.00 scf sf 300 2625 m gs 1 -1 sc (procglbnbr) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 0 slj 0 slc 7.500 slw n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1800 m 2700 1800 l 2700 2100 l 2400 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 2040 m gs 1 -1 sc (26) col0 sh gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3000 m 3300 3000 l 3300 3300 l 3000 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3000 m 3000 3000 l 3000 3300 l 2700 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 2400 m 2700 2400 l 2700 2700 l 2400 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1200 m 2700 1200 l 2700 1500 l 2400 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3600 m 2700 3600 l 2700 3900 l 2400 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3600 m 3000 3600 l 3000 3900 l 2700 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 3840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 3000 3600 m 3300 3600 l 3300 3900 l 3000 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 3840 m gs 1 -1 sc (17) col0 sh gr % Polyline n 3300 3600 m 3600 3600 l 3600 3900 l 3300 3900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 3840 m gs 1 -1 sc (99) col0 sh gr % Polyline n 2400 9600 m 2700 9600 l 2700 9900 l 2400 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 10200 m 2700 10200 l 2700 10500 l 2400 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 9600 m 6300 9600 l 6300 9900 l 6000 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 10200 m 6300 10200 l 6300 10500 l 6000 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 10200 m 9900 10200 l 9900 10500 l 9600 10500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 9600 m 9900 9600 l 9900 9900 l 9600 9900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 9000 m 2700 9000 l 2700 9300 l 2400 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 9000 m 6300 9000 l 6300 9300 l 6000 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 9000 m 9900 9000 l 9900 9300 l 9600 9300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 12000 m 3900 12000 l 3900 12300 l 3600 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 12600 m 3900 12600 l 3900 12900 l 3600 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 12000 m 6300 12000 l 6300 12300 l 6000 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 12600 m 6300 12600 l 6300 12900 l 6000 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 12000 m 7500 12000 l 7500 12300 l 7200 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 12600 m 7500 12600 l 7500 12900 l 7200 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11100 12000 m 11400 12000 l 11400 12300 l 11100 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11100 12600 m 11400 12600 l 11400 12900 l 11100 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 10800 m 2700 10800 l 2700 11100 l 2400 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 10800 m 3000 10800 l 3000 11100 l 2700 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 10800 m 6300 10800 l 6300 11100 l 6000 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 10800 m 9900 10800 l 9900 11100 l 9600 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 10800 m 10200 10800 l 10200 11100 l 9900 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10000 11040 m gs 1 -1 sc (4) col0 sh gr % Polyline n 10200 10800 m 10500 10800 l 10500 11100 l 10200 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 10800 m 6600 10800 l 6600 11100 l 6300 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 13800 m 6600 13800 l 6600 14100 l 6300 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 13800 m 9900 13800 l 9900 14100 l 9600 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 9700 14040 m gs 1 -1 sc (4) col0 sh gr % Polyline n 9900 13800 m 10200 13800 l 10200 14100 l 9900 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 13800 m 10500 13800 l 10500 14100 l 10200 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10225 14040 m gs 1 -1 sc (11) col0 sh gr % Polyline n 6000 13800 m 6300 13800 l 6300 14100 l 6000 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 6025 14040 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2400 12600 m 2700 12600 l 2700 12900 l 2400 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 12600 m 3000 12600 l 3000 12900 l 2700 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 12600 m 3300 12600 l 3300 12900 l 3000 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 12600 m 3600 12600 l 3600 12900 l 3300 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 12000 m 2700 12000 l 2700 12300 l 2400 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 12000 m 3600 12000 l 3600 12300 l 3300 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 12600 m 5100 12600 l 5100 12900 l 4800 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 12600 m 5400 12600 l 5400 12900 l 5100 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 12000 m 5100 12000 l 5100 12300 l 4800 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 12000 m 5400 12000 l 5400 12300 l 5100 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 12000 m 3300 12000 l 3300 12300 l 3000 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 12240 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2700 12000 m 3000 12000 l 3000 12300 l 2700 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 12240 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3900 12600 m 4200 12600 l 4200 12900 l 3900 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 12600 m 4500 12600 l 4500 12900 l 4200 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 12600 m 4800 12600 l 4800 12900 l 4500 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 12000 m 4500 12000 l 4500 12300 l 4200 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 12000 m 4800 12000 l 4800 12300 l 4500 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 12000 m 4200 12000 l 4200 12300 l 3900 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3925 12240 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2400 13800 m 2700 13800 l 2700 14100 l 2400 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 14040 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2700 13800 m 3000 13800 l 3000 14100 l 2700 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 13800 m 3300 13800 l 3300 14100 l 3000 14100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 10800 m 3300 10800 l 3300 11100 l 3000 11100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 12600 m 7800 12600 l 7800 12900 l 7500 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 12600 m 8100 12600 l 8100 12900 l 7800 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 12600 m 8400 12600 l 8400 12900 l 8100 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 12600 m 8700 12600 l 8700 12900 l 8400 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 12600 m 9000 12600 l 9000 12900 l 8700 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 12000 m 7800 12000 l 7800 12300 l 7500 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 12000 m 8400 12000 l 8400 12300 l 8100 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 12000 m 8100 12000 l 8100 12300 l 7800 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 7825 12240 m gs 1 -1 sc (17) col0 sh gr % Polyline n 8400 12000 m 8700 12000 l 8700 12300 l 8400 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 8425 12240 m gs 1 -1 sc (19) col0 sh gr % Polyline n 8700 12000 m 9000 12000 l 9000 12300 l 8700 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 8725 12240 m gs 1 -1 sc (12) col0 sh gr % Polyline n 6600 12600 m 6900 12600 l 6900 12900 l 6600 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 12600 m 6600 12600 l 6600 12900 l 6300 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 12600 m 7200 12600 l 7200 12900 l 6900 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 12000 m 6900 12000 l 6900 12300 l 6600 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 12000 m 6600 12000 l 6600 12300 l 6300 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 6325 12240 m gs 1 -1 sc (19) col0 sh gr % Polyline n 6900 12000 m 7200 12000 l 7200 12300 l 6900 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 6925 12240 m gs 1 -1 sc (11) col0 sh gr % Polyline n 9600 12600 m 9900 12600 l 9900 12900 l 9600 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 12600 m 10200 12600 l 10200 12900 l 9900 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 12600 m 10500 12600 l 10500 12900 l 10200 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 12000 m 9900 12000 l 9900 12300 l 9600 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 9625 12240 m gs 1 -1 sc (11) col0 sh gr % Polyline n 10200 12000 m 10500 12000 l 10500 12300 l 10200 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10225 12240 m gs 1 -1 sc (19) col0 sh gr % Polyline n 9900 12000 m 10200 12000 l 10200 12300 l 9900 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 9925 12240 m gs 1 -1 sc (18) col0 sh gr % Polyline n 10500 12600 m 10800 12600 l 10800 12900 l 10500 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10800 12600 m 11100 12600 l 11100 12900 l 10800 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10500 12000 m 10800 12000 l 10800 12300 l 10500 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10525 12240 m gs 1 -1 sc (17) col0 sh gr % Polyline n 10800 12000 m 11100 12000 l 11100 12300 l 10800 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10825 12240 m gs 1 -1 sc (19) col0 sh gr % Polyline n 11400 12600 m 11700 12600 l 11700 12900 l 11400 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11500 12840 m gs 1 -1 sc (4) col0 sh gr % Polyline n 11700 12600 m 12000 12600 l 12000 12900 l 11700 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 12000 12600 m 12300 12600 l 12300 12900 l 12000 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 12300 12600 m 12600 12600 l 12600 12900 l 12300 12900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11400 12000 m 11700 12000 l 11700 12300 l 11400 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11425 12240 m gs 1 -1 sc (11) col0 sh gr % Polyline n 11700 12000 m 12000 12000 l 12000 12300 l 11700 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11725 12240 m gs 1 -1 sc (17) col0 sh gr % Polyline n 12000 12000 m 12300 12000 l 12300 12300 l 12000 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 12025 12240 m gs 1 -1 sc (18) col0 sh gr % Polyline n 12300 12000 m 12600 12000 l 12600 12300 l 12300 12300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 12325 12240 m gs 1 -1 sc (12) col0 sh gr % Polyline gs clippath 9720 11848 m 9720 12015 l 9780 12015 l 9780 11848 l 9780 11848 l 9750 11968 l 9720 11848 l cp eoclip n 9750 11100 m 9750 12000 l gs col0 s gr gr % arrowhead n 9720 11848 m 9750 11968 l 9780 11848 l 9720 11848 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6420 11848 m 6420 12015 l 6480 12015 l 6480 11848 l 6480 11848 l 6450 11968 l 6420 11848 l cp eoclip n 6450 11100 m 6450 12000 l gs col0 s gr gr % arrowhead n 6420 11848 m 6450 11968 l 6480 11848 l 6420 11848 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 6600 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6600 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5700 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 3900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8400 1200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8400 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9300 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3900 7200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3900 5400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3000 6300 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4800 6300 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 4800 8100 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 7500 6300 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 8100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6600 5400 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 6600 7200 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 8400 5400 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 8400 7200 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 11100 7200 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11100 5400 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12000 6300 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10200 6300 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 10200 8100 150 150 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 6550 3090 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6550 1290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5650 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7368 4008 m gs 1 -1 sc (12) col0 sh gr /Times-Roman ff 240.00 scf sf 8268 1308 m gs 1 -1 sc (17) col0 sh gr /Times-Roman ff 240.00 scf sf 8268 3108 m gs 1 -1 sc (19) col0 sh gr /Times-Roman ff 240.00 scf sf 7368 2208 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 240.00 scf sf 9168 2208 m gs 1 -1 sc (18) col0 sh gr /Times-Roman ff 240.00 scf sf 3850 7290 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3850 5490 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2950 6390 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4750 6390 m gs 1 -1 sc (4) col7 sh gr /Times-Roman ff 240.00 scf sf 4750 8190 m gs 1 -1 sc (5) col7 sh gr /Times-Roman ff 240.00 scf sf 7450 6390 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7450 8190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6550 5490 m gs 1 -1 sc (4) col7 sh gr /Times-Roman ff 240.00 scf sf 6550 7290 m gs 1 -1 sc (3) col7 sh gr /Times-Roman ff 240.00 scf sf 8350 5490 m gs 1 -1 sc (5) col7 sh gr /Times-Roman ff 240.00 scf sf 11050 5490 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10150 6390 m gs 1 -1 sc (4) col7 sh gr /Times-Roman ff 240.00 scf sf 10150 8190 m gs 1 -1 sc (5) col7 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 8350 7290 m gs 1 -1 sc (6) col7 sh gr /Times-Roman ff 240.00 scf sf 11050 7290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 11950 6390 m gs 1 -1 sc (2) col0 sh gr % here ends figure; % % here starts figure with depth 5 /Times-Roman ff 240.00 scf sf 2500 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 3240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 2640 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 1440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 3840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 9840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 10440 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 9840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 10440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 10440 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 9840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 9240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 9240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 9240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 11040 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 11040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 11040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 11040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 11040 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 11040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 14040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 14040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 12840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 12240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 12240 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 12240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 12240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 12240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 12240 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 14040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 14040 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 11040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 12840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 12840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 12240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 12240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 12840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 12240 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 12840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 10600 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10900 12840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 11800 12840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 12100 12840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 12400 12840 m gs 1 -1 sc (5) col0 sh gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_gr2.fig000066400000000000000000000602041514310134000263460ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5-alpha5 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 0 0 12900 300 2 2 0 1 0 0 50 -1 10 0.000 0 0 -1 0 0 5 12900 300 0 300 0 0 12900 0 12900 300 4 0 7 40 -1 0 19 0.0000 4 270 1995 174 231 Duplicated data\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 840 1\001 -6 6 2400 1800 2700 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1800 2700 1800 2700 2100 2400 2100 2400 1800 4 0 0 15 0 0 16 0.0000 4 195 270 2425 2040 26\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 3240 3\001 -6 6 3000 3000 3300 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3000 3300 3000 3300 3300 3000 3300 3000 3000 4 0 0 5 0 0 16 0.0000 4 195 135 3100 3240 3\001 -6 6 2700 3000 3000 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3000 3000 3000 3000 3300 2700 3300 2700 3000 4 0 0 5 0 0 16 0.0000 4 195 135 2800 3240 2\001 -6 6 2400 2400 2700 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 2400 2700 2400 2700 2700 2400 2700 2400 2400 4 0 0 5 0 0 16 0.0000 4 195 135 2500 2640 3\001 -6 6 300 1200 2700 1500 6 2400 1200 2700 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1200 2700 1200 2700 1500 2400 1500 2400 1200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 1440 8\001 -6 4 0 0 20 0 12 16 0.0000 4 240 1650 300 1425 vertglbnbr\001 -6 6 6450 2850 6750 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6600 3000 150 150 6600 3000 6750 3000 4 0 0 10 0 0 16 0.0000 4 195 135 6550 3090 2\001 -6 6 6450 1050 6750 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6600 1200 150 150 6600 1200 6750 1200 4 0 0 10 0 0 16 0.0000 4 195 135 6550 1290 3\001 -6 6 5550 1950 5850 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5700 2100 150 150 5700 2100 5850 2100 4 0 0 10 0 0 16 0.0000 4 195 135 5650 2190 1\001 -6 6 7350 3750 7650 4050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 3900 150 150 7500 3900 7650 3900 4 0 0 10 0 0 16 0.0000 4 195 270 7368 4008 12\001 -6 6 8250 1050 8550 1350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8400 1200 150 150 8400 1200 8550 1200 4 0 0 10 0 0 16 0.0000 4 195 270 8268 1308 17\001 -6 6 8250 2850 8550 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8400 3000 150 150 8400 3000 8550 3000 4 0 0 10 0 0 16 0.0000 4 195 270 8268 3108 19\001 -6 6 7350 1950 7650 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 2100 150 150 7500 2100 7650 2100 4 0 0 10 0 0 16 0.0000 4 195 270 7368 2208 11\001 -6 6 9150 1950 9450 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9300 2100 150 150 9300 2100 9450 2100 4 0 0 10 0 0 16 0.0000 4 195 270 9168 2208 18\001 -6 6 300 3600 3600 3900 6 2400 3600 2700 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3600 2700 3600 2700 3900 2400 3900 2400 3600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 3840 1\001 -6 6 2700 3600 3000 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3600 3000 3600 3000 3900 2700 3900 2700 3600 4 0 0 15 0 0 16 0.0000 4 195 270 2725 3840 11\001 -6 6 3000 3600 3300 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3600 3300 3600 3300 3900 3000 3900 3000 3600 4 0 0 15 0 0 16 0.0000 4 195 270 3025 3840 17\001 -6 6 3300 3600 3600 3900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3600 3600 3600 3600 3900 3300 3900 3300 3600 4 0 0 15 0 0 16 0.0000 4 195 270 3325 3840 99\001 -6 4 0 0 20 0 12 16 0.0000 4 240 1650 300 3825 procvrttab\001 -6 6 0 4500 12900 14400 6 2850 5175 4950 8325 6 3750 7050 4050 7350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3900 7200 150 150 3900 7200 4050 7200 4 0 0 10 0 0 16 0.0000 4 195 135 3850 7290 2\001 -6 6 3750 5250 4050 5550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3900 5400 150 150 3900 5400 4050 5400 4 0 0 10 0 0 16 0.0000 4 195 135 3850 5490 3\001 -6 6 2850 6150 3150 6450 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3000 6300 150 150 3000 6300 3150 6300 4 0 0 10 0 0 16 0.0000 4 195 135 2950 6390 1\001 -6 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 4800 6300 150 150 4800 6300 4950 6300 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 4800 8100 150 150 4800 8100 4950 8100 2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 7 4800 8100 3900 7200 4800 6300 3900 5400 3900 7200 3000 6300 3900 5400 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 7 4425 5175 4275 5475 4350 6075 4200 6525 4500 7200 4275 7875 4275 8325 0.000 1.000 1.000 1.000 1.000 1.000 0.000 4 0 7 10 0 0 16 0.0000 4 195 135 4750 6390 4\001 4 0 7 10 0 0 16 0.0000 4 195 135 4750 8190 5\001 -6 6 6450 5175 8550 8325 6 7350 6150 7650 6450 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 6300 150 150 7500 6300 7650 6300 4 0 0 10 0 0 16 0.0000 4 195 135 7450 6390 1\001 -6 6 7350 7950 7650 8250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 8100 150 150 7500 8100 7650 8100 4 0 0 10 0 0 16 0.0000 4 195 135 7450 8190 2\001 -6 6 6450 5250 6750 5550 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 6600 5400 150 150 6600 5400 6750 5400 4 0 7 10 0 0 16 0.0000 4 195 135 6550 5490 4\001 -6 6 6450 7050 6750 7350 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 6600 7200 150 150 6600 7200 6750 7200 4 0 7 10 0 0 16 0.0000 4 195 135 6550 7290 3\001 -6 6 8250 5250 8550 5550 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 8400 5400 150 150 8400 5400 8550 5400 4 0 7 10 0 0 16 0.0000 4 195 135 8350 5490 5\001 -6 6 8250 7050 8550 7350 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 8400 7200 150 150 8400 7200 8550 7200 4 0 7 8 0 0 16 0.0000 4 195 135 8350 7290 6\001 -6 2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 7 6600 5400 7500 6300 6600 7200 7500 8100 7500 6300 8400 7200 7500 8100 2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 7500 6300 8400 5400 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 6 7875 5175 7725 5625 8025 6225 7800 7050 8025 7875 7875 8325 0.000 1.000 1.000 1.000 1.000 0.000 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 7 7125 5175 6975 5475 7050 6075 6900 6525 7200 7200 6975 7875 6975 8325 0.000 1.000 1.000 1.000 1.000 1.000 0.000 -6 6 10050 5175 12150 8325 6 10950 7050 11250 7350 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11100 7200 150 150 11100 7200 11250 7200 4 0 0 8 0 0 16 0.0000 4 195 135 11050 7290 3\001 -6 6 10950 5250 11250 5550 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11100 5400 150 150 11100 5400 11250 5400 4 0 0 10 0 0 16 0.0000 4 195 135 11050 5490 1\001 -6 6 11850 6150 12150 6450 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12000 6300 150 150 12000 6300 12150 6300 4 0 0 8 0 0 16 0.0000 4 195 135 11950 6390 2\001 -6 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 10200 6300 150 150 10200 6300 10350 6300 1 3 0 1 0 0 12 0 20 0.000 1 0.0000 10200 8100 150 150 10200 8100 10350 8100 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 10200 8100 11100 7200 10200 6300 11100 5400 11100 7200 12000 6300 11100 5400 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 6 10575 5175 10425 5625 10725 6225 10500 7050 10725 7875 10575 8325 0.000 1.000 1.000 1.000 1.000 0.000 4 0 7 10 0 0 16 0.0000 4 195 135 10150 6390 4\001 4 0 7 10 0 0 16 0.0000 4 195 135 10150 8190 5\001 -6 6 3750 4500 4050 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 4050 4800 3750 4800 3750 4500 4050 4500 4050 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 3825 4731 0\001 -6 6 7350 4500 7650 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 7650 4800 7350 4800 7350 4500 7650 4500 7650 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 7425 4731 1\001 -6 6 10950 4500 11250 4800 2 2 0 0 -1 0 55 -1 10 0.000 0 0 -1 0 0 5 11250 4800 10950 4800 10950 4500 11250 4500 11250 4800 4 0 7 35 -1 0 16 0.0000 4 195 135 11025 4731 2\001 -6 6 2400 9600 2700 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 9600 2700 9600 2700 9900 2400 9900 2400 9600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 9840 5\001 -6 6 2400 10200 2700 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 10200 2700 10200 2700 10500 2400 10500 2400 10200 4 0 0 5 0 0 16 0.0000 4 195 135 2500 10440 9\001 -6 6 6000 9600 6300 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 9600 6300 9600 6300 9900 6000 9900 6000 9600 4 0 0 5 0 0 16 0.0000 4 195 135 6100 9840 6\001 -6 6 6000 10200 6300 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 10200 6300 10200 6300 10500 6000 10500 6000 10200 4 0 0 5 0 0 16 0.0000 4 195 135 6100 10440 8\001 -6 6 9600 10200 9900 10500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 10200 9900 10200 9900 10500 9600 10500 9600 10200 4 0 0 5 0 0 16 0.0000 4 195 135 9700 10440 9\001 -6 6 9600 9600 9900 9900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 9600 9900 9600 9900 9900 9600 9900 9600 9600 4 0 0 5 0 0 16 0.0000 4 195 135 9700 9840 5\001 -6 6 300 9000 9900 9300 6 2400 9000 2700 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 9000 2700 9000 2700 9300 2400 9300 2400 9000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 9240 3\001 -6 6 6000 9000 6300 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 9000 6300 9000 6300 9300 6000 9300 6000 9000 4 0 0 5 0 0 16 0.0000 4 195 135 6100 9240 2\001 -6 6 9600 9000 9900 9300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 9000 9900 9000 9900 9300 9600 9300 9600 9000 4 0 0 5 0 0 16 0.0000 4 195 135 9700 9240 3\001 -6 4 0 0 20 0 12 16 0.0000 4 180 1650 300 9225 vertlocnbr\001 -6 6 3600 12000 3900 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 12000 3900 12000 3900 12300 3600 12300 3600 12000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 12600 3900 12600 3900 12900 3600 12900 3600 12600 -6 6 6000 12000 6300 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 12000 6300 12000 6300 12300 6000 12300 6000 12000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 12600 6300 12600 6300 12900 6000 12900 6000 12600 -6 6 7200 12000 7500 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 12000 7500 12000 7500 12300 7200 12300 7200 12000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 12600 7500 12600 7500 12900 7200 12900 7200 12600 -6 6 11100 12000 11400 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11100 12000 11400 12000 11400 12300 11100 12300 11100 12000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11100 12600 11400 12600 11400 12900 11100 12900 11100 12600 -6 6 2400 10800 2700 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 10800 2700 10800 2700 11100 2400 11100 2400 10800 4 0 0 5 0 0 16 0.0000 4 195 135 2500 11040 9\001 -6 6 2700 10800 3000 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 10800 3000 10800 3000 11100 2700 11100 2700 10800 4 0 0 5 0 0 16 0.0000 4 195 135 2800 11040 1\001 -6 6 6000 10800 6300 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 10800 6300 10800 6300 11100 6000 11100 6000 10800 4 0 0 5 0 0 16 0.0000 4 195 135 6100 11040 6\001 -6 6 9600 10800 9900 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 10800 9900 10800 9900 11100 9600 11100 9600 10800 4 0 0 5 0 0 16 0.0000 4 195 135 9700 11040 1\001 -6 6 9900 10800 10200 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 10800 10200 10800 10200 11100 9900 11100 9900 10800 4 0 0 15 0 0 16 0.0000 4 195 135 10000 11040 4\001 -6 6 10200 10800 10500 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 10800 10500 10800 10500 11100 10200 11100 10200 10800 4 0 0 5 0 0 16 0.0000 4 195 135 10300 11040 7\001 -6 6 6300 10800 6600 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 10800 6600 10800 6600 11100 6300 11100 6300 10800 4 0 0 5 0 0 16 0.0000 4 195 135 6400 11040 2\001 -6 6 6300 13800 6600 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 13800 6600 13800 6600 14100 6300 14100 6300 13800 4 0 0 5 0 0 16 0.0000 4 195 135 6400 14040 5\001 -6 6 9600 13800 9900 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 13800 9900 13800 9900 14100 9600 14100 9600 13800 4 0 0 15 0 0 16 0.0000 4 195 135 9700 14040 4\001 -6 6 9900 13800 10200 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 13800 10200 13800 10200 14100 9900 14100 9900 13800 4 0 0 5 0 0 16 0.0000 4 195 135 10000 14040 6\001 -6 6 10200 13800 10500 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 13800 10500 13800 10500 14100 10200 14100 10200 13800 4 0 0 15 0 0 16 0.0000 4 195 270 10225 14040 11\001 -6 6 6000 13800 6300 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 13800 6300 13800 6300 14100 6000 14100 6000 13800 4 0 0 15 0 0 16 0.0000 4 195 270 6025 14040 11\001 -6 6 2400 12600 2700 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 12600 2700 12600 2700 12900 2400 12900 2400 12600 4 0 0 5 0 0 16 0.0000 4 195 135 2500 12840 3\001 -6 6 2700 12600 3000 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 12600 3000 12600 3000 12900 2700 12900 2700 12600 4 0 0 5 0 0 16 0.0000 4 195 135 2800 12840 5\001 -6 6 3000 12600 3300 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 12600 3300 12600 3300 12900 3000 12900 3000 12600 4 0 0 5 0 0 16 0.0000 4 195 135 3100 12840 4\001 -6 6 3300 12600 3600 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 12600 3600 12600 3600 12900 3300 12900 3300 12600 4 0 0 5 0 0 16 0.0000 4 195 135 3400 12840 1\001 -6 6 2400 12000 2700 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 12000 2700 12000 2700 12300 2400 12300 2400 12000 4 0 0 5 0 0 16 0.0000 4 195 135 2500 12240 3\001 -6 6 3300 12000 3600 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 12000 3600 12000 3600 12300 3300 12300 3300 12000 4 0 0 5 0 0 16 0.0000 4 195 135 3400 12240 1\001 -6 6 4800 12600 5100 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 12600 5100 12600 5100 12900 4800 12900 4800 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4900 12840 3\001 -6 6 5100 12600 5400 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 12600 5400 12600 5400 12900 5100 12900 5100 12600 4 0 0 5 0 0 16 0.0000 4 195 135 5200 12840 2\001 -6 6 4800 12000 5100 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 12000 5100 12000 5100 12300 4800 12300 4800 12000 4 0 0 5 0 0 16 0.0000 4 195 135 4900 12240 3\001 -6 6 5100 12000 5400 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 12000 5400 12000 5400 12300 5100 12300 5100 12000 4 0 0 5 0 0 16 0.0000 4 195 135 5200 12240 2\001 -6 6 3000 12000 3300 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 12000 3300 12000 3300 12300 3000 12300 3000 12000 4 0 0 15 0 0 16 0.0000 4 195 270 3025 12240 11\001 -6 6 2700 12000 3000 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 12000 3000 12000 3000 12300 2700 12300 2700 12000 4 0 0 15 0 0 16 0.0000 4 195 270 2725 12240 12\001 -6 6 3900 12600 4200 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 12600 4200 12600 4200 12900 3900 12900 3900 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4000 12840 4\001 -6 6 4200 12600 4500 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 12600 4500 12600 4500 12900 4200 12900 4200 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4300 12840 2\001 -6 6 4500 12600 4800 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 12600 4800 12600 4800 12900 4500 12900 4500 12600 4 0 0 5 0 0 16 0.0000 4 195 135 4600 12840 1\001 -6 6 4200 12000 4500 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 12000 4500 12000 4500 12300 4200 12300 4200 12000 4 0 0 5 0 0 16 0.0000 4 195 135 4300 12240 2\001 -6 6 4500 12000 4800 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 12000 4800 12000 4800 12300 4500 12300 4500 12000 4 0 0 5 0 0 16 0.0000 4 195 135 4600 12240 1\001 -6 6 3900 12000 4200 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 12000 4200 12000 4200 12300 3900 12300 3900 12000 4 0 0 15 0 0 16 0.0000 4 195 270 3925 12240 11\001 -6 6 2400 13800 2700 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 13800 2700 13800 2700 14100 2400 14100 2400 13800 4 0 0 15 0 0 16 0.0000 4 195 270 2425 14040 11\001 -6 6 2700 13800 3000 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 13800 3000 13800 3000 14100 2700 14100 2700 13800 4 0 0 5 0 0 16 0.0000 4 195 135 2800 14040 5\001 -6 6 3000 13800 3300 14100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 13800 3300 13800 3300 14100 3000 14100 3000 13800 4 0 0 5 0 0 16 0.0000 4 195 135 3100 14040 9\001 -6 6 3000 10800 3300 11100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 10800 3300 10800 3300 11100 3000 11100 3000 10800 4 0 0 5 0 0 16 0.0000 4 195 135 3100 11040 6\001 -6 6 7500 12600 7800 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 12600 7800 12600 7800 12900 7500 12900 7500 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7600 12840 4\001 -6 6 7800 12600 8100 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 12600 8100 12600 8100 12900 7800 12900 7800 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7900 12840 5\001 -6 6 8100 12600 8400 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 12600 8400 12600 8400 12900 8100 12900 8100 12600 4 0 0 5 0 0 16 0.0000 4 195 135 8200 12840 3\001 -6 6 8400 12600 8700 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 12600 8700 12600 8700 12900 8400 12900 8400 12600 4 0 0 5 0 0 16 0.0000 4 195 135 8500 12840 6\001 -6 6 8700 12600 9000 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 12600 9000 12600 9000 12900 8700 12900 8700 12600 4 0 0 5 0 0 16 0.0000 4 195 135 8800 12840 2\001 -6 6 7500 12000 7800 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 12000 7800 12000 7800 12300 7500 12300 7500 12000 4 0 0 5 0 0 16 0.0000 4 195 135 7600 12240 3\001 -6 6 8100 12000 8400 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 12000 8400 12000 8400 12300 8100 12300 8100 12000 4 0 0 5 0 0 16 0.0000 4 195 135 8200 12240 2\001 -6 6 7800 12000 8100 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 12000 8100 12000 8100 12300 7800 12300 7800 12000 4 0 0 15 0 0 16 0.0000 4 195 270 7825 12240 17\001 -6 6 8400 12000 8700 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 12000 8700 12000 8700 12300 8400 12300 8400 12000 4 0 0 15 0 0 16 0.0000 4 195 270 8425 12240 19\001 -6 6 8700 12000 9000 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 12000 9000 12000 9000 12300 8700 12300 8700 12000 4 0 0 15 0 0 16 0.0000 4 195 270 8725 12240 12\001 -6 6 6600 12600 6900 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 12600 6900 12600 6900 12900 6600 12900 6600 12600 4 0 0 5 0 0 16 0.0000 4 195 135 6700 12840 3\001 -6 6 6300 12600 6600 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 12600 6600 12600 6600 12900 6300 12900 6300 12600 4 0 0 5 0 0 16 0.0000 4 195 135 6400 12840 6\001 -6 6 6900 12600 7200 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 12600 7200 12600 7200 12900 6900 12900 6900 12600 4 0 0 5 0 0 16 0.0000 4 195 135 7000 12840 1\001 -6 6 6600 12000 6900 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 12000 6900 12000 6900 12300 6600 12300 6600 12000 4 0 0 5 0 0 16 0.0000 4 195 135 6700 12240 2\001 -6 6 6300 12000 6600 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 12000 6600 12000 6600 12300 6300 12300 6300 12000 4 0 0 15 0 0 16 0.0000 4 195 270 6325 12240 19\001 -6 6 6900 12000 7200 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 12000 7200 12000 7200 12300 6900 12300 6900 12000 4 0 0 15 0 0 16 0.0000 4 195 270 6925 12240 11\001 -6 6 9600 12600 9900 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 12600 9900 12600 9900 12900 9600 12900 9600 12600 4 0 0 5 0 0 16 0.0000 4 195 135 9700 12840 4\001 -6 6 9900 12600 10200 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 12600 10200 12600 10200 12900 9900 12900 9900 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10000 12840 2\001 -6 6 10200 12600 10500 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 12600 10500 12600 10500 12900 10200 12900 10200 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10300 12840 3\001 -6 6 9600 12000 9900 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 12000 9900 12000 9900 12300 9600 12300 9600 12000 4 0 0 15 0 0 16 0.0000 4 195 270 9625 12240 11\001 -6 6 10200 12000 10500 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 12000 10500 12000 10500 12300 10200 12300 10200 12000 4 0 0 15 0 0 16 0.0000 4 195 270 10225 12240 19\001 -6 6 9900 12000 10200 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 12000 10200 12000 10200 12300 9900 12300 9900 12000 4 0 0 15 0 0 16 0.0000 4 195 270 9925 12240 18\001 -6 6 10500 12600 10800 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 12600 10800 12600 10800 12900 10500 12900 10500 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10600 12840 1\001 -6 6 10800 12600 11100 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10800 12600 11100 12600 11100 12900 10800 12900 10800 12600 4 0 0 5 0 0 16 0.0000 4 195 135 10900 12840 3\001 -6 6 10500 12000 10800 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 12000 10800 12000 10800 12300 10500 12300 10500 12000 4 0 0 15 0 0 16 0.0000 4 195 270 10525 12240 17\001 -6 6 10800 12000 11100 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10800 12000 11100 12000 11100 12300 10800 12300 10800 12000 4 0 0 15 0 0 16 0.0000 4 195 270 10825 12240 19\001 -6 6 11400 12600 11700 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11400 12600 11700 12600 11700 12900 11400 12900 11400 12600 4 0 0 15 0 0 16 0.0000 4 195 135 11500 12840 4\001 -6 6 11700 12600 12000 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11700 12600 12000 12600 12000 12900 11700 12900 11700 12600 4 0 0 5 0 0 16 0.0000 4 195 135 11800 12840 1\001 -6 6 12000 12600 12300 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12000 12600 12300 12600 12300 12900 12000 12900 12000 12600 4 0 0 5 0 0 16 0.0000 4 195 135 12100 12840 2\001 -6 6 12300 12600 12600 12900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12300 12600 12600 12600 12600 12900 12300 12900 12300 12600 4 0 0 5 0 0 16 0.0000 4 195 135 12400 12840 5\001 -6 6 11400 12000 11700 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11400 12000 11700 12000 11700 12300 11400 12300 11400 12000 4 0 0 15 0 0 16 0.0000 4 195 270 11425 12240 11\001 -6 6 11700 12000 12000 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11700 12000 12000 12000 12000 12300 11700 12300 11700 12000 4 0 0 15 0 0 16 0.0000 4 195 270 11725 12240 17\001 -6 6 12000 12000 12300 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12000 12000 12300 12000 12300 12300 12000 12300 12000 12000 4 0 0 15 0 0 16 0.0000 4 195 270 12025 12240 18\001 -6 6 12300 12000 12600 12300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12300 12000 12600 12000 12600 12300 12300 12300 12300 12000 4 0 0 15 0 0 16 0.0000 4 195 270 12325 12240 12\001 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 2100 14400 2100 4800 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 5700 14400 5700 4800 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 9300 14400 9300 4800 2 2 0 1 0 0 50 -1 10 0.000 0 0 -1 0 0 5 12900 4800 0 4800 0 4500 12900 4500 12900 4800 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 11100 2850 11550 2550 11550 2550 12000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 11100 2550 11475 4950 11475 4950 12000 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 9750 11100 9750 12000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10050 11100 10050 11625 10650 11625 10650 12000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10350 11100 10350 11550 11550 11550 11550 12000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 9750 13800 9750 13275 10650 13275 10650 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10050 13800 10050 13350 11250 13350 11250 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 10350 13800 10350 13425 12750 13425 12750 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 6150 11100 6150 11550 7650 11550 7650 12000 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 6450 11100 6450 12000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 6150 13800 6150 13275 9150 13275 9150 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 6450 13800 6450 13350 7350 13350 7350 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 13800 2550 13425 5550 13425 5550 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 13800 2850 13350 3750 13350 3750 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 13800 3150 13275 4950 13275 4950 12900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 11100 3150 11625 4050 11625 4050 12000 4 0 7 40 -1 0 16 0.0000 4 195 1140 150 4731 Local data\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 9825 vertgstnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 10425 edgelocnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 12825 edgegsttab\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 12225 edgeloctab\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 11025 vertloctab\001 4 0 0 20 0 12 16 0.0000 4 180 1650 300 14025 vendloctab\001 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 8400 1200 7500 2100 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 13 6600 1200 7500 2100 6600 3000 5700 2100 6600 1200 6600 3000 7500 3900 7500 2100 8400 3000 9300 2100 8400 1200 8400 3000 7500 3900 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 6 7875 975 7725 1425 8025 2025 7800 2850 8025 3675 7875 4125 0.000 1.000 1.000 1.000 1.000 0.000 3 0 2 1 0 7 40 -1 -1 3.000 0 0 0 7 7125 975 6975 1275 7050 1875 6900 2325 7200 3000 6975 3675 6975 4125 0.000 1.000 1.000 1.000 1.000 1.000 0.000 4 0 0 20 0 12 16 0.0000 4 180 1155 300 825 baseval\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 2025 edgeglbnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 3225 proccnttab\001 4 0 0 20 0 12 16 0.0000 4 240 1650 300 2625 procglbnbr\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_multi.eps000066400000000000000000001632071514310134000270370ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Sun Apr 30 19:15:23 2006 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 1199 478 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 478 moveto 0 0 lineto 1199 0 lineto 1199 478 lineto closepath clip newpath -268.3 634.6 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Ellipse 7.500 slw n 6638 6658 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj 0 slc [15 45] 45 sd n 7393 5849 m 7393 5850 l 7392 5853 l 7391 5858 l 7388 5865 l 7385 5875 l 7381 5888 l 7376 5904 l 7369 5923 l 7361 5944 l 7352 5967 l 7342 5991 l 7330 6017 l 7317 6045 l 7303 6073 l 7287 6101 l 7269 6131 l 7248 6161 l 7225 6193 l 7199 6225 l 7170 6258 l 7137 6293 l 7099 6329 l 7058 6366 l 7011 6404 l 6961 6442 l 6915 6474 l 6869 6503 l 6825 6531 l 6782 6554 l 6743 6575 l 6707 6592 l 6675 6606 l 6647 6617 l 6622 6625 l 6600 6630 l 6581 6634 l 6564 6636 l 6549 6636 l 6534 6636 l 6520 6635 l 6507 6635 l 6492 6635 l 6476 6635 l 6459 6637 l 6439 6640 l 6416 6646 l 6389 6653 l 6359 6664 l 6325 6677 l 6287 6693 l 6244 6713 l 6198 6736 l 6148 6762 l 6096 6790 l 6044 6820 l 5989 6853 l 5937 6886 l 5887 6918 l 5842 6949 l 5800 6980 l 5761 7009 l 5725 7036 l 5692 7063 l 5661 7089 l 5632 7115 l 5605 7139 l 5579 7163 l 5555 7187 l 5533 7209 l 5512 7231 l 5492 7251 l 5474 7271 l 5458 7288 l 5443 7305 l 5431 7319 l 5420 7330 l 5412 7340 l 5406 7348 l 5401 7353 l 5398 7356 l 5397 7358 l 5396 7359 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5558 5903 m 5558 5905 l 5557 5908 l 5556 5915 l 5554 5925 l 5551 5939 l 5548 5956 l 5545 5977 l 5542 6000 l 5539 6025 l 5536 6053 l 5534 6082 l 5533 6112 l 5533 6143 l 5535 6175 l 5538 6208 l 5543 6243 l 5551 6280 l 5561 6318 l 5575 6358 l 5592 6400 l 5612 6442 l 5635 6483 l 5661 6521 l 5687 6556 l 5714 6587 l 5740 6616 l 5767 6641 l 5794 6665 l 5821 6686 l 5848 6706 l 5874 6724 l 5901 6741 l 5926 6756 l 5950 6770 l 5972 6783 l 5992 6793 l 6009 6802 l 6022 6809 l 6032 6814 l 6039 6817 l 6042 6819 l 6044 6820 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7069 6334 m 7070 6335 l 7072 6336 l 7077 6339 l 7084 6344 l 7093 6350 l 7105 6359 l 7119 6369 l 7136 6381 l 7155 6395 l 7176 6411 l 7198 6427 l 7221 6445 l 7245 6465 l 7269 6485 l 7294 6507 l 7319 6529 l 7344 6553 l 7370 6579 l 7396 6607 l 7422 6636 l 7449 6668 l 7476 6703 l 7503 6740 l 7529 6779 l 7555 6820 l 7581 6865 l 7604 6909 l 7624 6952 l 7641 6992 l 7655 7031 l 7667 7067 l 7678 7102 l 7686 7135 l 7693 7167 l 7699 7197 l 7703 7227 l 7707 7255 l 7710 7282 l 7712 7307 l 7714 7330 l 7715 7350 l 7716 7368 l 7716 7383 l 7717 7395 l 7717 7403 l 7717 7409 l 7717 7412 l 7717 7413 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 6638 5795 m 6639 5796 l 6642 5797 l 6646 5800 l 6651 5804 l 6658 5810 l 6664 5816 l 6671 5825 l 6676 5834 l 6680 5846 l 6683 5860 l 6683 5878 l 6681 5900 l 6675 5925 l 6667 5949 l 6657 5972 l 6647 5991 l 6636 6007 l 6625 6020 l 6614 6029 l 6604 6037 l 6594 6043 l 6583 6050 l 6573 6057 l 6563 6067 l 6554 6080 l 6545 6098 l 6537 6119 l 6532 6145 l 6530 6173 l 6533 6204 l 6540 6229 l 6550 6248 l 6562 6260 l 6575 6266 l 6589 6269 l 6603 6270 l 6617 6270 l 6630 6273 l 6644 6280 l 6656 6293 l 6666 6313 l 6673 6341 l 6675 6375 l 6673 6403 l 6668 6430 l 6660 6454 l 6650 6474 l 6639 6491 l 6627 6505 l 6614 6517 l 6600 6527 l 6587 6536 l 6574 6544 l 6561 6554 l 6549 6565 l 6538 6577 l 6529 6593 l 6522 6611 l 6519 6631 l 6519 6653 l 6525 6675 l 6537 6696 l 6554 6713 l 6573 6724 l 6592 6730 l 6611 6732 l 6629 6730 l 6647 6727 l 6665 6723 l 6682 6718 l 6701 6714 l 6720 6712 l 6740 6713 l 6762 6716 l 6784 6724 l 6806 6735 l 6825 6750 l 6840 6766 l 6849 6782 l 6855 6796 l 6857 6807 l 6857 6816 l 6855 6824 l 6851 6830 l 6847 6835 l 6843 6840 l 6838 6847 l 6833 6854 l 6827 6864 l 6822 6876 l 6815 6892 l 6808 6909 l 6799 6928 l 6785 6951 l 6771 6969 l 6756 6980 l 6742 6985 l 6729 6986 l 6716 6985 l 6704 6984 l 6692 6985 l 6682 6991 l 6674 7003 l 6671 7023 l 6675 7050 l 6684 7072 l 6696 7093 l 6712 7110 l 6728 7124 l 6746 7134 l 6764 7142 l 6781 7148 l 6799 7152 l 6817 7157 l 6834 7163 l 6851 7171 l 6866 7183 l 6880 7200 l 6892 7221 l 6899 7246 l 6900 7275 l 6895 7301 l 6885 7326 l 6872 7349 l 6856 7370 l 6837 7390 l 6817 7409 l 6795 7426 l 6772 7442 l 6749 7458 l 6726 7472 l 6704 7485 l 6684 7496 l 6668 7505 l 6655 7512 l 6646 7517 l 6640 7520 l 6638 7521 l gs col0 s gr % Ellipse 7.500 slw n 11813 6658 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 12568 5849 m 12568 5850 l 12567 5853 l 12566 5858 l 12563 5865 l 12560 5875 l 12556 5888 l 12551 5904 l 12544 5923 l 12536 5944 l 12527 5967 l 12517 5991 l 12505 6017 l 12492 6045 l 12478 6073 l 12462 6101 l 12444 6131 l 12423 6161 l 12400 6193 l 12374 6225 l 12345 6258 l 12312 6293 l 12274 6329 l 12233 6366 l 12186 6404 l 12136 6442 l 12090 6474 l 12044 6503 l 12000 6531 l 11957 6554 l 11918 6575 l 11882 6592 l 11850 6606 l 11822 6617 l 11797 6625 l 11775 6630 l 11756 6634 l 11739 6636 l 11724 6636 l 11709 6636 l 11695 6635 l 11682 6635 l 11667 6635 l 11651 6635 l 11634 6637 l 11614 6640 l 11591 6646 l 11564 6653 l 11534 6664 l 11500 6677 l 11462 6693 l 11419 6713 l 11373 6736 l 11323 6762 l 11271 6790 l 11219 6820 l 11164 6853 l 11112 6886 l 11062 6918 l 11017 6949 l 10975 6980 l 10936 7009 l 10900 7036 l 10867 7063 l 10836 7089 l 10807 7115 l 10780 7139 l 10754 7163 l 10730 7187 l 10708 7209 l 10687 7231 l 10667 7251 l 10649 7271 l 10633 7288 l 10618 7305 l 10606 7319 l 10595 7330 l 10587 7340 l 10581 7348 l 10576 7353 l 10573 7356 l 10572 7358 l 10571 7359 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 11813 5795 m 11814 5796 l 11817 5797 l 11821 5800 l 11826 5804 l 11833 5810 l 11839 5816 l 11846 5825 l 11851 5834 l 11855 5846 l 11858 5860 l 11858 5878 l 11856 5900 l 11850 5925 l 11842 5949 l 11832 5972 l 11822 5991 l 11811 6007 l 11800 6020 l 11789 6029 l 11779 6037 l 11769 6043 l 11758 6050 l 11748 6057 l 11738 6067 l 11729 6080 l 11720 6098 l 11712 6119 l 11707 6145 l 11705 6173 l 11708 6204 l 11715 6229 l 11725 6248 l 11737 6260 l 11750 6266 l 11764 6269 l 11778 6270 l 11792 6270 l 11805 6273 l 11819 6280 l 11831 6293 l 11841 6313 l 11848 6341 l 11850 6375 l 11848 6403 l 11843 6430 l 11835 6454 l 11825 6474 l 11814 6491 l 11802 6505 l 11789 6517 l 11775 6527 l 11762 6536 l 11749 6544 l 11736 6554 l 11724 6565 l 11713 6577 l 11704 6593 l 11697 6611 l 11694 6631 l 11694 6653 l 11700 6675 l 11712 6696 l 11729 6713 l 11748 6724 l 11767 6730 l 11786 6732 l 11804 6730 l 11822 6727 l 11840 6723 l 11857 6718 l 11876 6714 l 11895 6712 l 11915 6713 l 11937 6716 l 11959 6724 l 11981 6735 l 12000 6750 l 12015 6766 l 12024 6782 l 12030 6796 l 12032 6807 l 12032 6816 l 12030 6824 l 12026 6830 l 12022 6835 l 12018 6840 l 12013 6847 l 12008 6854 l 12002 6864 l 11997 6876 l 11990 6892 l 11983 6909 l 11974 6928 l 11960 6951 l 11946 6969 l 11931 6980 l 11917 6985 l 11904 6986 l 11891 6985 l 11879 6984 l 11867 6985 l 11857 6991 l 11849 7003 l 11846 7023 l 11850 7050 l 11859 7072 l 11871 7093 l 11887 7110 l 11903 7124 l 11921 7134 l 11939 7142 l 11956 7148 l 11974 7152 l 11992 7157 l 12009 7163 l 12026 7171 l 12041 7183 l 12055 7200 l 12067 7221 l 12074 7246 l 12075 7275 l 12070 7301 l 12060 7326 l 12047 7349 l 12031 7370 l 12012 7390 l 11992 7409 l 11970 7426 l 11947 7442 l 11924 7458 l 11901 7472 l 11879 7485 l 11859 7496 l 11843 7505 l 11830 7512 l 11821 7517 l 11815 7520 l 11813 7521 l gs col0 s gr % Ellipse 7.500 slw n 6728 9000 1412 565 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 7222 8471 m 7222 8473 l 7221 8476 l 7219 8483 l 7216 8492 l 7211 8505 l 7206 8521 l 7199 8539 l 7191 8559 l 7181 8581 l 7170 8604 l 7157 8629 l 7142 8654 l 7124 8679 l 7104 8706 l 7080 8735 l 7052 8764 l 7019 8795 l 6981 8827 l 6939 8859 l 6902 8885 l 6864 8908 l 6829 8929 l 6796 8946 l 6768 8960 l 6743 8970 l 6721 8977 l 6703 8982 l 6688 8985 l 6674 8986 l 6662 8986 l 6651 8985 l 6639 8985 l 6627 8985 l 6613 8986 l 6597 8988 l 6578 8993 l 6556 9000 l 6529 9010 l 6498 9023 l 6463 9040 l 6424 9059 l 6382 9082 l 6339 9106 l 6293 9133 l 6251 9161 l 6212 9187 l 6177 9212 l 6145 9236 l 6116 9259 l 6090 9281 l 6066 9302 l 6044 9322 l 6023 9342 l 6004 9361 l 5987 9379 l 5971 9396 l 5957 9411 l 5945 9424 l 5935 9436 l 5927 9445 l 5922 9451 l 5918 9455 l 5916 9458 l 5915 9459 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6021 8506 m 6021 8508 l 6020 8512 l 6018 8520 l 6016 8531 l 6014 8545 l 6012 8563 l 6009 8582 l 6007 8604 l 6005 8627 l 6005 8652 l 6006 8677 l 6008 8704 l 6012 8731 l 6019 8761 l 6028 8792 l 6041 8825 l 6057 8859 l 6076 8891 l 6096 8921 l 6118 8947 l 6139 8971 l 6160 8991 l 6182 9009 l 6203 9026 l 6225 9041 l 6245 9054 l 6266 9066 l 6284 9077 l 6301 9086 l 6315 9094 l 6326 9099 l 6333 9103 l 6337 9105 l 6339 9106 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 7010 8788 m 7012 8789 l 7015 8791 l 7021 8795 l 7029 8801 l 7041 8810 l 7055 8820 l 7072 8832 l 7090 8846 l 7109 8861 l 7130 8877 l 7151 8895 l 7172 8914 l 7193 8935 l 7215 8957 l 7237 8982 l 7260 9009 l 7283 9039 l 7306 9071 l 7328 9106 l 7348 9141 l 7365 9176 l 7380 9208 l 7392 9239 l 7402 9268 l 7409 9295 l 7416 9320 l 7421 9345 l 7424 9368 l 7427 9390 l 7430 9411 l 7431 9431 l 7432 9448 l 7433 9463 l 7434 9474 l 7434 9483 l 7434 9489 l 7434 9492 l 7434 9494 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 6728 8435 m 6727 8435 l 6726 8436 l 6723 8438 l 6719 8441 l 6714 8445 l 6708 8451 l 6702 8457 l 6694 8465 l 6687 8474 l 6680 8484 l 6673 8496 l 6667 8509 l 6661 8525 l 6657 8543 l 6653 8563 l 6651 8587 l 6651 8615 l 6653 8647 l 6657 8683 l 6663 8717 l 6670 8751 l 6678 8783 l 6687 8811 l 6696 8835 l 6705 8856 l 6713 8873 l 6722 8887 l 6731 8899 l 6739 8909 l 6748 8918 l 6756 8928 l 6765 8938 l 6773 8951 l 6782 8966 l 6790 8984 l 6799 9006 l 6807 9032 l 6815 9063 l 6823 9098 l 6829 9137 l 6833 9177 l 6835 9220 l 6835 9261 l 6832 9298 l 6828 9331 l 6823 9361 l 6816 9388 l 6808 9414 l 6799 9437 l 6790 9458 l 6781 9478 l 6771 9496 l 6762 9513 l 6753 9527 l 6745 9539 l 6739 9549 l 6734 9556 l 6731 9561 l 6729 9564 l 6728 9565 l gs col0 s gr % Ellipse 7.500 slw n 15563 7633 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15563 6770 m 15564 6771 l 15567 6772 l 15571 6775 l 15576 6779 l 15583 6785 l 15589 6791 l 15596 6800 l 15601 6809 l 15605 6821 l 15608 6835 l 15608 6853 l 15606 6875 l 15600 6900 l 15592 6924 l 15582 6947 l 15572 6966 l 15561 6982 l 15550 6995 l 15539 7004 l 15529 7012 l 15519 7018 l 15508 7025 l 15498 7032 l 15488 7042 l 15479 7055 l 15470 7073 l 15462 7094 l 15457 7120 l 15455 7148 l 15458 7179 l 15465 7204 l 15475 7223 l 15487 7235 l 15500 7241 l 15514 7244 l 15528 7245 l 15542 7245 l 15555 7248 l 15569 7255 l 15581 7268 l 15591 7288 l 15598 7316 l 15600 7350 l 15598 7378 l 15593 7405 l 15585 7429 l 15575 7449 l 15564 7466 l 15552 7480 l 15539 7492 l 15525 7502 l 15512 7511 l 15499 7519 l 15486 7529 l 15474 7540 l 15463 7552 l 15454 7568 l 15447 7586 l 15444 7606 l 15444 7628 l 15450 7650 l 15462 7671 l 15479 7688 l 15498 7699 l 15517 7705 l 15536 7707 l 15554 7705 l 15572 7702 l 15590 7698 l 15607 7693 l 15626 7689 l 15645 7687 l 15665 7688 l 15687 7691 l 15709 7699 l 15731 7710 l 15750 7725 l 15765 7741 l 15774 7757 l 15780 7771 l 15782 7782 l 15782 7791 l 15780 7799 l 15776 7805 l 15772 7810 l 15768 7815 l 15763 7822 l 15758 7829 l 15752 7839 l 15747 7851 l 15740 7867 l 15733 7884 l 15724 7903 l 15710 7926 l 15696 7944 l 15681 7955 l 15667 7960 l 15654 7961 l 15641 7960 l 15629 7959 l 15617 7960 l 15607 7966 l 15599 7978 l 15596 7998 l 15600 8025 l 15609 8047 l 15621 8068 l 15637 8085 l 15653 8099 l 15671 8109 l 15689 8117 l 15706 8123 l 15724 8127 l 15742 8132 l 15759 8138 l 15776 8146 l 15791 8158 l 15805 8175 l 15817 8196 l 15824 8221 l 15825 8250 l 15820 8276 l 15810 8301 l 15797 8324 l 15781 8345 l 15762 8365 l 15742 8384 l 15720 8401 l 15697 8417 l 15674 8433 l 15651 8447 l 15629 8460 l 15609 8471 l 15593 8480 l 15580 8487 l 15571 8492 l 15565 8495 l 15563 8496 l gs col0 s gr % Ellipse 7.500 slw n 15563 5608 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15563 4745 m 15564 4746 l 15567 4747 l 15571 4750 l 15576 4754 l 15583 4760 l 15589 4766 l 15596 4775 l 15601 4784 l 15605 4796 l 15608 4810 l 15608 4828 l 15606 4850 l 15600 4875 l 15592 4899 l 15582 4922 l 15572 4941 l 15561 4957 l 15550 4970 l 15539 4979 l 15529 4987 l 15519 4993 l 15508 5000 l 15498 5007 l 15488 5017 l 15479 5030 l 15470 5048 l 15462 5069 l 15457 5095 l 15455 5123 l 15458 5154 l 15465 5179 l 15475 5198 l 15487 5210 l 15500 5216 l 15514 5219 l 15528 5220 l 15542 5220 l 15555 5223 l 15569 5230 l 15581 5243 l 15591 5263 l 15598 5291 l 15600 5325 l 15598 5353 l 15593 5380 l 15585 5404 l 15575 5424 l 15564 5441 l 15552 5455 l 15539 5467 l 15525 5477 l 15512 5486 l 15499 5494 l 15486 5504 l 15474 5515 l 15463 5527 l 15454 5543 l 15447 5561 l 15444 5581 l 15444 5603 l 15450 5625 l 15462 5646 l 15479 5663 l 15498 5674 l 15517 5680 l 15536 5682 l 15554 5680 l 15572 5677 l 15590 5673 l 15607 5668 l 15626 5664 l 15645 5662 l 15665 5663 l 15687 5666 l 15709 5674 l 15731 5685 l 15750 5700 l 15765 5716 l 15774 5732 l 15780 5746 l 15782 5757 l 15782 5766 l 15780 5774 l 15776 5780 l 15772 5785 l 15768 5790 l 15763 5797 l 15758 5804 l 15752 5814 l 15747 5826 l 15740 5842 l 15733 5859 l 15724 5878 l 15710 5901 l 15696 5919 l 15681 5930 l 15667 5935 l 15654 5936 l 15641 5935 l 15629 5934 l 15617 5935 l 15607 5941 l 15599 5953 l 15596 5973 l 15600 6000 l 15609 6022 l 15621 6043 l 15637 6060 l 15653 6074 l 15671 6084 l 15689 6092 l 15706 6098 l 15724 6102 l 15742 6107 l 15759 6113 l 15776 6121 l 15791 6133 l 15805 6150 l 15817 6171 l 15824 6196 l 15825 6225 l 15820 6251 l 15810 6276 l 15797 6299 l 15781 6320 l 15762 6340 l 15742 6359 l 15720 6376 l 15697 6392 l 15674 6408 l 15651 6422 l 15629 6435 l 15609 6446 l 15593 6455 l 15580 6462 l 15571 6467 l 15565 6470 l 15563 6471 l gs col0 s gr % Ellipse 7.500 slw n 15563 3583 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15563 2720 m 15564 2721 l 15567 2722 l 15571 2725 l 15576 2729 l 15583 2735 l 15589 2741 l 15596 2750 l 15601 2759 l 15605 2771 l 15608 2785 l 15608 2803 l 15606 2825 l 15600 2850 l 15592 2874 l 15582 2897 l 15572 2916 l 15561 2932 l 15550 2945 l 15539 2954 l 15529 2962 l 15519 2968 l 15508 2975 l 15498 2982 l 15488 2992 l 15479 3005 l 15470 3023 l 15462 3044 l 15457 3070 l 15455 3098 l 15458 3129 l 15465 3154 l 15475 3173 l 15487 3185 l 15500 3191 l 15514 3194 l 15528 3195 l 15542 3195 l 15555 3198 l 15569 3205 l 15581 3218 l 15591 3238 l 15598 3266 l 15600 3300 l 15598 3328 l 15593 3355 l 15585 3379 l 15575 3399 l 15564 3416 l 15552 3430 l 15539 3442 l 15525 3452 l 15512 3461 l 15499 3469 l 15486 3479 l 15474 3490 l 15463 3502 l 15454 3518 l 15447 3536 l 15444 3556 l 15444 3578 l 15450 3600 l 15462 3621 l 15479 3638 l 15498 3649 l 15517 3655 l 15536 3657 l 15554 3655 l 15572 3652 l 15590 3648 l 15607 3643 l 15626 3639 l 15645 3637 l 15665 3638 l 15687 3641 l 15709 3649 l 15731 3660 l 15750 3675 l 15765 3691 l 15774 3707 l 15780 3721 l 15782 3732 l 15782 3741 l 15780 3749 l 15776 3755 l 15772 3760 l 15768 3765 l 15763 3772 l 15758 3779 l 15752 3789 l 15747 3801 l 15740 3817 l 15733 3834 l 15724 3853 l 15710 3876 l 15696 3894 l 15681 3905 l 15667 3910 l 15654 3911 l 15641 3910 l 15629 3909 l 15617 3910 l 15607 3916 l 15599 3928 l 15596 3948 l 15600 3975 l 15609 3997 l 15621 4018 l 15637 4035 l 15653 4049 l 15671 4059 l 15689 4067 l 15706 4073 l 15724 4077 l 15742 4082 l 15759 4088 l 15776 4096 l 15791 4108 l 15805 4125 l 15817 4146 l 15824 4171 l 15825 4200 l 15820 4226 l 15810 4251 l 15797 4274 l 15781 4295 l 15762 4315 l 15742 4334 l 15720 4351 l 15697 4367 l 15674 4383 l 15651 4397 l 15629 4410 l 15609 4421 l 15593 4430 l 15580 4437 l 15571 4442 l 15565 4445 l 15563 4446 l gs col0 s gr % Ellipse 7.500 slw n 15563 9658 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15563 8795 m 15564 8796 l 15567 8797 l 15571 8800 l 15576 8804 l 15583 8810 l 15589 8816 l 15596 8825 l 15601 8834 l 15605 8846 l 15608 8860 l 15608 8878 l 15606 8900 l 15600 8925 l 15592 8949 l 15582 8972 l 15572 8991 l 15561 9007 l 15550 9020 l 15539 9029 l 15529 9037 l 15519 9043 l 15508 9050 l 15498 9057 l 15488 9067 l 15479 9080 l 15470 9098 l 15462 9119 l 15457 9145 l 15455 9173 l 15458 9204 l 15465 9229 l 15475 9248 l 15487 9260 l 15500 9266 l 15514 9269 l 15528 9270 l 15542 9270 l 15555 9273 l 15569 9280 l 15581 9293 l 15591 9313 l 15598 9341 l 15600 9375 l 15598 9403 l 15593 9430 l 15585 9454 l 15575 9474 l 15564 9491 l 15552 9505 l 15539 9517 l 15525 9527 l 15512 9536 l 15499 9544 l 15486 9554 l 15474 9565 l 15463 9577 l 15454 9593 l 15447 9611 l 15444 9631 l 15444 9653 l 15450 9675 l 15462 9696 l 15479 9713 l 15498 9724 l 15517 9730 l 15536 9732 l 15554 9730 l 15572 9727 l 15590 9723 l 15607 9718 l 15626 9714 l 15645 9712 l 15665 9713 l 15687 9716 l 15709 9724 l 15731 9735 l 15750 9750 l 15765 9766 l 15774 9782 l 15780 9796 l 15782 9807 l 15782 9816 l 15780 9824 l 15776 9830 l 15772 9835 l 15768 9840 l 15763 9847 l 15758 9854 l 15752 9864 l 15747 9876 l 15740 9892 l 15733 9909 l 15724 9928 l 15710 9951 l 15696 9969 l 15681 9980 l 15667 9985 l 15654 9986 l 15641 9985 l 15629 9984 l 15617 9985 l 15607 9991 l 15599 10003 l 15596 10023 l 15600 10050 l 15609 10072 l 15621 10093 l 15637 10110 l 15653 10124 l 15671 10134 l 15689 10142 l 15706 10148 l 15724 10152 l 15742 10157 l 15759 10163 l 15776 10171 l 15791 10183 l 15805 10200 l 15817 10221 l 15824 10246 l 15825 10275 l 15820 10301 l 15810 10326 l 15797 10349 l 15781 10370 l 15762 10390 l 15742 10409 l 15720 10426 l 15697 10442 l 15674 10458 l 15651 10472 l 15629 10485 l 15609 10496 l 15593 10505 l 15580 10512 l 15571 10517 l 15565 10520 l 15563 10521 l gs col0 s gr % Ellipse 7.500 slw n 18263 5608 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 18300 4725 m 18299 4726 l 18297 4727 l 18294 4729 l 18290 4732 l 18284 4737 l 18276 4744 l 18267 4751 l 18258 4761 l 18248 4772 l 18238 4784 l 18228 4798 l 18218 4814 l 18209 4832 l 18201 4853 l 18194 4876 l 18189 4903 l 18185 4933 l 18183 4968 l 18183 5008 l 18186 5053 l 18192 5103 l 18199 5144 l 18207 5185 l 18216 5225 l 18226 5262 l 18236 5295 l 18247 5325 l 18258 5352 l 18269 5375 l 18279 5394 l 18290 5411 l 18300 5426 l 18311 5439 l 18321 5451 l 18331 5463 l 18341 5474 l 18351 5486 l 18361 5500 l 18372 5515 l 18382 5533 l 18392 5554 l 18403 5579 l 18413 5607 l 18423 5640 l 18433 5677 l 18442 5718 l 18449 5763 l 18456 5810 l 18461 5858 l 18464 5913 l 18464 5966 l 18462 6015 l 18458 6060 l 18452 6101 l 18445 6139 l 18436 6174 l 18427 6207 l 18416 6237 l 18405 6266 l 18393 6293 l 18381 6318 l 18368 6341 l 18356 6363 l 18345 6383 l 18334 6400 l 18325 6415 l 18317 6427 l 18310 6436 l 18306 6443 l 18302 6448 l 18301 6450 l 18300 6451 l gs col0 s gr % Ellipse 7.500 slw n 18263 9658 2159 863 0 360 DrawEllipse gs col0 s gr % Ellipse n 18263 7633 2159 863 0 360 DrawEllipse gs col0 s gr % Ellipse n 18263 3583 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 6735 8030 m 6735 7710 l 6615 7710 l 6615 8030 l 6615 8030 l 6675 7790 l 6735 8030 l cp eoclip n 6675 8250 m 6675 7725 l gs col0 s gr gr % arrowhead 15.000 slw n 6735 8030 m 6675 7790 l 6615 8030 l 6735 8030 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj n 18300 2700 m 18299 2702 l 18296 2707 l 18292 2715 l 18285 2728 l 18277 2744 l 18267 2763 l 18257 2785 l 18246 2809 l 18235 2835 l 18224 2861 l 18215 2889 l 18206 2917 l 18199 2947 l 18194 2978 l 18190 3010 l 18190 3044 l 18192 3078 l 18199 3114 l 18208 3143 l 18218 3164 l 18229 3177 l 18239 3183 l 18249 3184 l 18258 3181 l 18267 3176 l 18277 3171 l 18287 3169 l 18298 3171 l 18311 3179 l 18325 3195 l 18341 3221 l 18358 3256 l 18375 3300 l 18387 3335 l 18397 3370 l 18407 3404 l 18415 3434 l 18422 3461 l 18428 3484 l 18433 3503 l 18437 3520 l 18441 3535 l 18444 3548 l 18447 3561 l 18449 3573 l 18452 3587 l 18454 3601 l 18457 3619 l 18459 3639 l 18461 3663 l 18463 3691 l 18464 3722 l 18464 3757 l 18463 3795 l 18461 3833 l 18455 3877 l 18448 3914 l 18439 3945 l 18431 3967 l 18422 3982 l 18413 3992 l 18404 3997 l 18396 3998 l 18388 3998 l 18379 3998 l 18371 3999 l 18362 4003 l 18352 4010 l 18342 4022 l 18331 4040 l 18320 4064 l 18310 4093 l 18300 4125 l 18291 4162 l 18285 4196 l 18281 4228 l 18279 4256 l 18279 4282 l 18280 4306 l 18282 4329 l 18285 4350 l 18288 4369 l 18291 4386 l 18294 4401 l 18297 4412 l 18298 4420 l 18299 4424 l 18300 4426 l gs col0 s gr % Polyline n 18075 6750 m 18076 6752 l 18077 6757 l 18079 6766 l 18082 6780 l 18087 6797 l 18092 6817 l 18098 6841 l 18105 6866 l 18112 6893 l 18120 6920 l 18128 6948 l 18137 6977 l 18146 7006 l 18157 7036 l 18168 7067 l 18180 7098 l 18192 7128 l 18210 7167 l 18224 7196 l 18234 7212 l 18240 7218 l 18242 7218 l 18243 7214 l 18244 7210 l 18247 7209 l 18253 7213 l 18264 7225 l 18280 7246 l 18300 7275 l 18316 7298 l 18332 7319 l 18345 7336 l 18357 7348 l 18367 7356 l 18376 7360 l 18383 7362 l 18390 7362 l 18397 7363 l 18404 7366 l 18411 7372 l 18419 7384 l 18427 7402 l 18436 7427 l 18444 7460 l 18450 7500 l 18453 7534 l 18453 7568 l 18452 7599 l 18450 7626 l 18446 7649 l 18441 7668 l 18436 7684 l 18431 7697 l 18425 7708 l 18419 7719 l 18413 7729 l 18407 7741 l 18401 7754 l 18395 7770 l 18390 7790 l 18385 7814 l 18381 7843 l 18378 7876 l 18376 7912 l 18375 7950 l 18376 7995 l 18379 8033 l 18382 8064 l 18386 8086 l 18389 8101 l 18393 8110 l 18396 8115 l 18400 8119 l 18404 8122 l 18408 8126 l 18413 8134 l 18418 8146 l 18425 8164 l 18432 8188 l 18441 8217 l 18450 8250 l 18461 8286 l 18470 8318 l 18479 8346 l 18487 8370 l 18494 8391 l 18500 8409 l 18506 8426 l 18512 8440 l 18516 8453 l 18520 8462 l 18523 8469 l 18524 8473 l 18525 8475 l gs col0 s gr % Polyline n 18075 8775 m 18073 8778 l 18069 8783 l 18062 8792 l 18053 8805 l 18042 8820 l 18031 8838 l 18020 8857 l 18010 8878 l 18002 8899 l 17996 8922 l 17993 8946 l 17994 8973 l 18000 9000 l 18010 9025 l 18023 9045 l 18035 9059 l 18045 9065 l 18054 9066 l 18061 9063 l 18068 9058 l 18076 9054 l 18085 9052 l 18097 9055 l 18113 9065 l 18134 9084 l 18161 9114 l 18192 9153 l 18213 9181 l 18232 9209 l 18251 9236 l 18267 9261 l 18282 9283 l 18294 9301 l 18305 9317 l 18314 9331 l 18322 9343 l 18329 9354 l 18336 9364 l 18343 9374 l 18349 9385 l 18357 9397 l 18365 9412 l 18374 9429 l 18385 9449 l 18397 9473 l 18409 9501 l 18423 9532 l 18437 9566 l 18450 9600 l 18465 9645 l 18475 9684 l 18481 9714 l 18482 9735 l 18481 9749 l 18477 9756 l 18472 9759 l 18465 9761 l 18459 9762 l 18453 9765 l 18449 9772 l 18446 9784 l 18445 9804 l 18447 9832 l 18453 9867 l 18461 9908 l 18470 9945 l 18480 9980 l 18491 10010 l 18502 10035 l 18513 10055 l 18524 10070 l 18535 10081 l 18546 10090 l 18556 10098 l 18567 10106 l 18577 10115 l 18586 10126 l 18594 10141 l 18601 10159 l 18606 10182 l 18608 10210 l 18606 10242 l 18600 10275 l 18589 10307 l 18573 10335 l 18555 10361 l 18535 10382 l 18513 10401 l 18490 10418 l 18466 10433 l 18441 10446 l 18416 10458 l 18392 10468 l 18369 10477 l 18348 10485 l 18331 10491 l 18317 10496 l 18308 10499 l 18302 10500 l 18300 10501 l gs col0 s gr % here ends figure; % % here starts figure with depth 40 % Polyline 0 slj 0 slc 0.000 slw n 9600 7575 m 11400 7575 l 11400 5700 l 9600 5700 l cp gs col7 1.00 shd ef gr % Polyline n 12300 7575 m 14025 7575 l 14025 5700 l 12300 5700 l cp gs col7 1.00 shd ef gr % Polyline n 5351 8471 m 5280 8471 l 5280 8400 l 5351 8400 l cp gs col7 1.00 shd ef gr % Polyline n 8175 9600 m 8104 9600 l 8104 9529 l 8175 9529 l cp gs col7 1.00 shd ef gr % Polyline n 13350 8550 m 15150 8550 l 15150 6675 l 13350 6675 l cp gs col7 1.00 shd ef gr % Polyline n 16050 8550 m 17775 8550 l 17775 6675 l 16050 6675 l cp gs col7 1.00 shd ef gr % Polyline n 13350 6525 m 15150 6525 l 15150 4650 l 13350 4650 l cp gs col7 1.00 shd ef gr % Polyline n 16050 6525 m 17775 6525 l 17775 4650 l 16050 4650 l cp gs col7 1.00 shd ef gr % Polyline n 13350 4500 m 15150 4500 l 15150 2625 l 13350 2625 l cp gs col7 1.00 shd ef gr % Polyline n 16050 4500 m 17775 4500 l 17775 2625 l 16050 2625 l cp gs col7 1.00 shd ef gr % Polyline n 13350 10575 m 15150 10575 l 15150 8700 l 13350 8700 l cp gs col7 1.00 shd ef gr % Polyline n 16050 10575 m 17775 10575 l 17775 8700 l 16050 8700 l cp gs col7 1.00 shd ef gr % Polyline n 16050 6525 m 17850 6525 l 17850 4650 l 16050 4650 l cp gs col7 1.00 shd ef gr % Polyline n 18750 6525 m 20475 6525 l 20475 4650 l 18750 4650 l cp gs col7 1.00 shd ef gr % Polyline n 16050 10575 m 17850 10575 l 17850 8700 l 16050 8700 l cp gs col7 1.00 shd ef gr % Polyline n 18750 10575 m 20475 10575 l 20475 8700 l 18750 8700 l cp gs col7 1.00 shd ef gr % Polyline n 16050 8550 m 17850 8550 l 17850 6675 l 16050 6675 l cp gs col7 1.00 shd ef gr % Polyline n 18750 8550 m 20475 8550 l 20475 6675 l 18750 6675 l cp gs col7 1.00 shd ef gr % Polyline n 16050 4500 m 17850 4500 l 17850 2625 l 16050 2625 l cp gs col7 1.00 shd ef gr % Polyline n 18750 4500 m 20475 4500 l 20475 2625 l 18750 2625 l cp gs col7 1.00 shd ef gr % here ends figure; % % here starts figure with depth 20 % Polyline 2 slj 0 slc 7.500 slw n 11400 7500 m 11400 7499 l 11401 7495 l 11404 7486 l 11409 7470 l 11414 7449 l 11420 7425 l 11426 7400 l 11431 7376 l 11435 7354 l 11438 7333 l 11440 7314 l 11440 7297 l 11439 7280 l 11438 7263 l 11435 7247 l 11432 7232 l 11428 7215 l 11423 7198 l 11418 7180 l 11412 7162 l 11406 7143 l 11400 7123 l 11394 7104 l 11388 7084 l 11382 7065 l 11377 7046 l 11372 7028 l 11368 7010 l 11365 6992 l 11363 6975 l 11361 6958 l 11360 6940 l 11359 6922 l 11360 6904 l 11360 6885 l 11362 6866 l 11364 6846 l 11366 6827 l 11369 6807 l 11371 6788 l 11374 6770 l 11377 6752 l 11380 6735 l 11383 6718 l 11385 6703 l 11388 6688 l 11390 6673 l 11391 6658 l 11393 6642 l 11394 6627 l 11395 6611 l 11395 6594 l 11395 6578 l 11395 6561 l 11394 6544 l 11393 6526 l 11391 6509 l 11388 6492 l 11386 6475 l 11383 6459 l 11379 6442 l 11375 6425 l 11371 6409 l 11367 6393 l 11362 6377 l 11357 6359 l 11351 6341 l 11346 6321 l 11340 6302 l 11334 6281 l 11328 6261 l 11323 6240 l 11318 6219 l 11314 6199 l 11310 6179 l 11306 6160 l 11304 6141 l 11302 6123 l 11300 6105 l 11300 6088 l 11300 6070 l 11302 6053 l 11304 6036 l 11308 6018 l 11312 5999 l 11318 5978 l 11325 5956 l 11334 5933 l 11343 5908 l 11353 5882 l 11364 5857 l 11374 5833 l 11383 5813 l 11390 5796 l 11396 5785 l 11399 5778 l 11400 5775 l gs col0 s gr % Polyline n 12300 7500 m 12300 7499 l 12301 7496 l 12305 7488 l 12310 7474 l 12317 7453 l 12327 7428 l 12337 7399 l 12348 7368 l 12359 7337 l 12369 7306 l 12378 7278 l 12386 7252 l 12393 7227 l 12399 7205 l 12403 7184 l 12407 7164 l 12410 7144 l 12413 7125 l 12414 7106 l 12415 7086 l 12416 7067 l 12415 7046 l 12415 7025 l 12414 7003 l 12412 6981 l 12410 6959 l 12407 6936 l 12404 6913 l 12401 6890 l 12398 6867 l 12394 6844 l 12390 6822 l 12386 6801 l 12383 6779 l 12379 6758 l 12375 6738 l 12372 6718 l 12368 6699 l 12365 6679 l 12361 6659 l 12357 6638 l 12353 6617 l 12349 6595 l 12346 6573 l 12342 6551 l 12337 6528 l 12333 6506 l 12329 6485 l 12326 6464 l 12322 6443 l 12318 6424 l 12314 6405 l 12310 6387 l 12307 6370 l 12303 6353 l 12300 6338 l 12296 6318 l 12291 6300 l 12287 6282 l 12283 6264 l 12278 6245 l 12274 6228 l 12270 6210 l 12266 6193 l 12262 6176 l 12259 6160 l 12256 6144 l 12254 6129 l 12252 6115 l 12251 6101 l 12250 6088 l 12250 6075 l 12250 6060 l 12252 6045 l 12254 6029 l 12257 6012 l 12261 5992 l 12266 5971 l 12272 5948 l 12278 5924 l 12285 5901 l 12291 5880 l 12296 5864 l 12299 5855 l 12300 5851 l 12300 5850 l gs col0 s gr % Polyline n 15150 8475 m 15150 8474 l 15151 8470 l 15154 8461 l 15159 8445 l 15164 8424 l 15170 8400 l 15176 8375 l 15181 8351 l 15185 8329 l 15188 8308 l 15190 8289 l 15190 8272 l 15189 8255 l 15188 8238 l 15185 8222 l 15182 8207 l 15178 8190 l 15173 8173 l 15168 8155 l 15162 8137 l 15156 8118 l 15150 8098 l 15144 8079 l 15138 8059 l 15132 8040 l 15127 8021 l 15122 8003 l 15118 7985 l 15115 7967 l 15113 7950 l 15111 7933 l 15110 7915 l 15109 7897 l 15110 7879 l 15110 7860 l 15112 7841 l 15114 7821 l 15116 7802 l 15119 7782 l 15121 7763 l 15124 7745 l 15127 7727 l 15130 7710 l 15133 7693 l 15135 7678 l 15138 7663 l 15140 7648 l 15141 7633 l 15143 7617 l 15144 7602 l 15145 7586 l 15145 7569 l 15145 7553 l 15145 7536 l 15144 7519 l 15143 7501 l 15141 7484 l 15138 7467 l 15136 7450 l 15133 7434 l 15129 7417 l 15125 7400 l 15121 7384 l 15117 7368 l 15112 7352 l 15107 7334 l 15101 7316 l 15096 7296 l 15090 7277 l 15084 7256 l 15078 7236 l 15073 7215 l 15068 7194 l 15064 7174 l 15060 7154 l 15056 7135 l 15054 7116 l 15052 7098 l 15050 7080 l 15050 7063 l 15050 7045 l 15052 7028 l 15054 7011 l 15058 6993 l 15062 6974 l 15068 6953 l 15075 6931 l 15084 6908 l 15093 6883 l 15103 6857 l 15114 6832 l 15124 6808 l 15133 6788 l 15140 6771 l 15146 6760 l 15149 6753 l 15150 6750 l gs col0 s gr % Polyline n 16050 8475 m 16050 8474 l 16051 8471 l 16055 8463 l 16060 8449 l 16067 8428 l 16077 8403 l 16087 8374 l 16098 8343 l 16109 8312 l 16119 8281 l 16128 8253 l 16136 8227 l 16143 8202 l 16149 8180 l 16153 8159 l 16157 8139 l 16160 8119 l 16163 8100 l 16164 8081 l 16165 8061 l 16166 8042 l 16165 8021 l 16165 8000 l 16164 7978 l 16162 7956 l 16160 7934 l 16157 7911 l 16154 7888 l 16151 7865 l 16148 7842 l 16144 7819 l 16140 7797 l 16136 7776 l 16133 7754 l 16129 7733 l 16125 7713 l 16122 7693 l 16118 7674 l 16115 7654 l 16111 7634 l 16107 7613 l 16103 7592 l 16099 7570 l 16096 7548 l 16092 7526 l 16087 7503 l 16083 7481 l 16079 7460 l 16076 7439 l 16072 7418 l 16068 7399 l 16064 7380 l 16060 7362 l 16057 7345 l 16053 7328 l 16050 7313 l 16046 7293 l 16041 7275 l 16037 7257 l 16033 7239 l 16028 7220 l 16024 7203 l 16020 7185 l 16016 7168 l 16012 7151 l 16009 7135 l 16006 7119 l 16004 7104 l 16002 7090 l 16001 7076 l 16000 7063 l 16000 7050 l 16000 7035 l 16002 7020 l 16004 7004 l 16007 6987 l 16011 6967 l 16016 6946 l 16022 6923 l 16028 6899 l 16035 6876 l 16041 6855 l 16046 6839 l 16049 6830 l 16050 6826 l 16050 6825 l gs col0 s gr % Polyline n 15150 6450 m 15150 6449 l 15151 6445 l 15154 6436 l 15159 6420 l 15164 6399 l 15170 6375 l 15176 6350 l 15181 6326 l 15185 6304 l 15188 6283 l 15190 6264 l 15190 6247 l 15189 6230 l 15188 6213 l 15185 6197 l 15182 6182 l 15178 6165 l 15173 6148 l 15168 6130 l 15162 6112 l 15156 6093 l 15150 6073 l 15144 6054 l 15138 6034 l 15132 6015 l 15127 5996 l 15122 5978 l 15118 5960 l 15115 5942 l 15113 5925 l 15111 5908 l 15110 5890 l 15109 5872 l 15110 5854 l 15110 5835 l 15112 5816 l 15114 5796 l 15116 5777 l 15119 5757 l 15121 5738 l 15124 5720 l 15127 5702 l 15130 5685 l 15133 5668 l 15135 5653 l 15138 5638 l 15140 5623 l 15141 5608 l 15143 5592 l 15144 5577 l 15145 5561 l 15145 5544 l 15145 5528 l 15145 5511 l 15144 5494 l 15143 5476 l 15141 5459 l 15138 5442 l 15136 5425 l 15133 5409 l 15129 5392 l 15125 5375 l 15121 5359 l 15117 5343 l 15112 5327 l 15107 5309 l 15101 5291 l 15096 5271 l 15090 5252 l 15084 5231 l 15078 5211 l 15073 5190 l 15068 5169 l 15064 5149 l 15060 5129 l 15056 5110 l 15054 5091 l 15052 5073 l 15050 5055 l 15050 5038 l 15050 5020 l 15052 5003 l 15054 4986 l 15058 4968 l 15062 4949 l 15068 4928 l 15075 4906 l 15084 4883 l 15093 4858 l 15103 4832 l 15114 4807 l 15124 4783 l 15133 4763 l 15140 4746 l 15146 4735 l 15149 4728 l 15150 4725 l gs col0 s gr % Polyline n 16050 6450 m 16050 6449 l 16051 6446 l 16055 6438 l 16060 6424 l 16067 6403 l 16077 6378 l 16087 6349 l 16098 6318 l 16109 6287 l 16119 6256 l 16128 6228 l 16136 6202 l 16143 6177 l 16149 6155 l 16153 6134 l 16157 6114 l 16160 6094 l 16163 6075 l 16164 6056 l 16165 6036 l 16166 6017 l 16165 5996 l 16165 5975 l 16164 5953 l 16162 5931 l 16160 5909 l 16157 5886 l 16154 5863 l 16151 5840 l 16148 5817 l 16144 5794 l 16140 5772 l 16136 5751 l 16133 5729 l 16129 5708 l 16125 5688 l 16122 5668 l 16118 5649 l 16115 5629 l 16111 5609 l 16107 5588 l 16103 5567 l 16099 5545 l 16096 5523 l 16092 5501 l 16087 5478 l 16083 5456 l 16079 5435 l 16076 5414 l 16072 5393 l 16068 5374 l 16064 5355 l 16060 5337 l 16057 5320 l 16053 5303 l 16050 5288 l 16046 5268 l 16041 5250 l 16037 5232 l 16033 5214 l 16028 5195 l 16024 5178 l 16020 5160 l 16016 5143 l 16012 5126 l 16009 5110 l 16006 5094 l 16004 5079 l 16002 5065 l 16001 5051 l 16000 5038 l 16000 5025 l 16000 5010 l 16002 4995 l 16004 4979 l 16007 4962 l 16011 4942 l 16016 4921 l 16022 4898 l 16028 4874 l 16035 4851 l 16041 4830 l 16046 4814 l 16049 4805 l 16050 4801 l 16050 4800 l gs col0 s gr % Polyline n 15150 4425 m 15150 4424 l 15151 4420 l 15154 4411 l 15159 4395 l 15164 4374 l 15170 4350 l 15176 4325 l 15181 4301 l 15185 4279 l 15188 4258 l 15190 4239 l 15190 4222 l 15189 4205 l 15188 4188 l 15185 4172 l 15182 4157 l 15178 4140 l 15173 4123 l 15168 4105 l 15162 4087 l 15156 4068 l 15150 4048 l 15144 4029 l 15138 4009 l 15132 3990 l 15127 3971 l 15122 3953 l 15118 3935 l 15115 3917 l 15113 3900 l 15111 3883 l 15110 3865 l 15109 3847 l 15110 3829 l 15110 3810 l 15112 3791 l 15114 3771 l 15116 3752 l 15119 3732 l 15121 3713 l 15124 3695 l 15127 3677 l 15130 3660 l 15133 3643 l 15135 3628 l 15138 3613 l 15140 3598 l 15141 3583 l 15143 3567 l 15144 3552 l 15145 3536 l 15145 3519 l 15145 3503 l 15145 3486 l 15144 3469 l 15143 3451 l 15141 3434 l 15138 3417 l 15136 3400 l 15133 3384 l 15129 3367 l 15125 3350 l 15121 3334 l 15117 3318 l 15112 3302 l 15107 3284 l 15101 3266 l 15096 3246 l 15090 3227 l 15084 3206 l 15078 3186 l 15073 3165 l 15068 3144 l 15064 3124 l 15060 3104 l 15056 3085 l 15054 3066 l 15052 3048 l 15050 3030 l 15050 3013 l 15050 2995 l 15052 2978 l 15054 2961 l 15058 2943 l 15062 2924 l 15068 2903 l 15075 2881 l 15084 2858 l 15093 2833 l 15103 2807 l 15114 2782 l 15124 2758 l 15133 2738 l 15140 2721 l 15146 2710 l 15149 2703 l 15150 2700 l gs col0 s gr % Polyline n 16050 4425 m 16050 4424 l 16051 4421 l 16055 4413 l 16060 4399 l 16067 4378 l 16077 4353 l 16087 4324 l 16098 4293 l 16109 4262 l 16119 4231 l 16128 4203 l 16136 4177 l 16143 4152 l 16149 4130 l 16153 4109 l 16157 4089 l 16160 4069 l 16163 4050 l 16164 4031 l 16165 4011 l 16166 3992 l 16165 3971 l 16165 3950 l 16164 3928 l 16162 3906 l 16160 3884 l 16157 3861 l 16154 3838 l 16151 3815 l 16148 3792 l 16144 3769 l 16140 3747 l 16136 3726 l 16133 3704 l 16129 3683 l 16125 3663 l 16122 3643 l 16118 3624 l 16115 3604 l 16111 3584 l 16107 3563 l 16103 3542 l 16099 3520 l 16096 3498 l 16092 3476 l 16087 3453 l 16083 3431 l 16079 3410 l 16076 3389 l 16072 3368 l 16068 3349 l 16064 3330 l 16060 3312 l 16057 3295 l 16053 3278 l 16050 3263 l 16046 3243 l 16041 3225 l 16037 3207 l 16033 3189 l 16028 3170 l 16024 3153 l 16020 3135 l 16016 3118 l 16012 3101 l 16009 3085 l 16006 3069 l 16004 3054 l 16002 3040 l 16001 3026 l 16000 3013 l 16000 3000 l 16000 2985 l 16002 2970 l 16004 2954 l 16007 2937 l 16011 2917 l 16016 2896 l 16022 2873 l 16028 2849 l 16035 2826 l 16041 2805 l 16046 2789 l 16049 2780 l 16050 2776 l 16050 2775 l gs col0 s gr % Polyline n 15150 10500 m 15150 10499 l 15151 10495 l 15154 10486 l 15159 10470 l 15164 10449 l 15170 10425 l 15176 10400 l 15181 10376 l 15185 10354 l 15188 10333 l 15190 10314 l 15190 10297 l 15189 10280 l 15188 10263 l 15185 10247 l 15182 10232 l 15178 10215 l 15173 10198 l 15168 10180 l 15162 10162 l 15156 10143 l 15150 10123 l 15144 10104 l 15138 10084 l 15132 10065 l 15127 10046 l 15122 10028 l 15118 10010 l 15115 9992 l 15113 9975 l 15111 9958 l 15110 9940 l 15109 9922 l 15110 9904 l 15110 9885 l 15112 9866 l 15114 9846 l 15116 9827 l 15119 9807 l 15121 9788 l 15124 9770 l 15127 9752 l 15130 9735 l 15133 9718 l 15135 9703 l 15138 9688 l 15140 9673 l 15141 9658 l 15143 9642 l 15144 9627 l 15145 9611 l 15145 9594 l 15145 9578 l 15145 9561 l 15144 9544 l 15143 9526 l 15141 9509 l 15138 9492 l 15136 9475 l 15133 9459 l 15129 9442 l 15125 9425 l 15121 9409 l 15117 9393 l 15112 9377 l 15107 9359 l 15101 9341 l 15096 9321 l 15090 9302 l 15084 9281 l 15078 9261 l 15073 9240 l 15068 9219 l 15064 9199 l 15060 9179 l 15056 9160 l 15054 9141 l 15052 9123 l 15050 9105 l 15050 9088 l 15050 9070 l 15052 9053 l 15054 9036 l 15058 9018 l 15062 8999 l 15068 8978 l 15075 8956 l 15084 8933 l 15093 8908 l 15103 8882 l 15114 8857 l 15124 8833 l 15133 8813 l 15140 8796 l 15146 8785 l 15149 8778 l 15150 8775 l gs col0 s gr % Polyline n 16050 10500 m 16050 10499 l 16051 10496 l 16055 10488 l 16060 10474 l 16067 10453 l 16077 10428 l 16087 10399 l 16098 10368 l 16109 10337 l 16119 10306 l 16128 10278 l 16136 10252 l 16143 10227 l 16149 10205 l 16153 10184 l 16157 10164 l 16160 10144 l 16163 10125 l 16164 10106 l 16165 10086 l 16166 10067 l 16165 10046 l 16165 10025 l 16164 10003 l 16162 9981 l 16160 9959 l 16157 9936 l 16154 9913 l 16151 9890 l 16148 9867 l 16144 9844 l 16140 9822 l 16136 9801 l 16133 9779 l 16129 9758 l 16125 9738 l 16122 9718 l 16118 9699 l 16115 9679 l 16111 9659 l 16107 9638 l 16103 9617 l 16099 9595 l 16096 9573 l 16092 9551 l 16087 9528 l 16083 9506 l 16079 9485 l 16076 9464 l 16072 9443 l 16068 9424 l 16064 9405 l 16060 9387 l 16057 9370 l 16053 9353 l 16050 9338 l 16046 9318 l 16041 9300 l 16037 9282 l 16033 9264 l 16028 9245 l 16024 9228 l 16020 9210 l 16016 9193 l 16012 9176 l 16009 9160 l 16006 9144 l 16004 9129 l 16002 9115 l 16001 9101 l 16000 9088 l 16000 9075 l 16000 9060 l 16002 9045 l 16004 9029 l 16007 9012 l 16011 8992 l 16016 8971 l 16022 8948 l 16028 8924 l 16035 8901 l 16041 8880 l 16046 8864 l 16049 8855 l 16050 8851 l 16050 8850 l gs col0 s gr % Polyline n 17850 6450 m 17850 6449 l 17851 6445 l 17854 6436 l 17859 6420 l 17864 6399 l 17870 6375 l 17876 6350 l 17881 6326 l 17885 6304 l 17888 6283 l 17890 6264 l 17890 6247 l 17889 6230 l 17888 6213 l 17885 6197 l 17882 6182 l 17878 6165 l 17873 6148 l 17868 6130 l 17862 6112 l 17856 6093 l 17850 6073 l 17844 6054 l 17838 6034 l 17832 6015 l 17827 5996 l 17822 5978 l 17818 5960 l 17815 5942 l 17813 5925 l 17811 5908 l 17810 5890 l 17809 5872 l 17810 5854 l 17810 5835 l 17812 5816 l 17814 5796 l 17816 5777 l 17819 5757 l 17821 5738 l 17824 5720 l 17827 5702 l 17830 5685 l 17833 5668 l 17835 5653 l 17838 5638 l 17840 5623 l 17841 5608 l 17843 5592 l 17844 5577 l 17845 5561 l 17845 5544 l 17845 5528 l 17845 5511 l 17844 5494 l 17843 5476 l 17841 5459 l 17838 5442 l 17836 5425 l 17833 5409 l 17829 5392 l 17825 5375 l 17821 5359 l 17817 5343 l 17812 5327 l 17807 5309 l 17801 5291 l 17796 5271 l 17790 5252 l 17784 5231 l 17778 5211 l 17773 5190 l 17768 5169 l 17764 5149 l 17760 5129 l 17756 5110 l 17754 5091 l 17752 5073 l 17750 5055 l 17750 5038 l 17750 5020 l 17752 5003 l 17754 4986 l 17758 4968 l 17762 4949 l 17768 4928 l 17775 4906 l 17784 4883 l 17793 4858 l 17803 4832 l 17814 4807 l 17824 4783 l 17833 4763 l 17840 4746 l 17846 4735 l 17849 4728 l 17850 4725 l gs col0 s gr % Polyline n 18750 6450 m 18750 6449 l 18751 6446 l 18755 6438 l 18760 6424 l 18767 6403 l 18777 6378 l 18787 6349 l 18798 6318 l 18809 6287 l 18819 6256 l 18828 6228 l 18836 6202 l 18843 6177 l 18849 6155 l 18853 6134 l 18857 6114 l 18860 6094 l 18863 6075 l 18864 6056 l 18865 6036 l 18866 6017 l 18865 5996 l 18865 5975 l 18864 5953 l 18862 5931 l 18860 5909 l 18857 5886 l 18854 5863 l 18851 5840 l 18848 5817 l 18844 5794 l 18840 5772 l 18836 5751 l 18833 5729 l 18829 5708 l 18825 5688 l 18822 5668 l 18818 5649 l 18815 5629 l 18811 5609 l 18807 5588 l 18803 5567 l 18799 5545 l 18796 5523 l 18792 5501 l 18787 5478 l 18783 5456 l 18779 5435 l 18776 5414 l 18772 5393 l 18768 5374 l 18764 5355 l 18760 5337 l 18757 5320 l 18753 5303 l 18750 5288 l 18746 5268 l 18741 5250 l 18737 5232 l 18733 5214 l 18728 5195 l 18724 5178 l 18720 5160 l 18716 5143 l 18712 5126 l 18709 5110 l 18706 5094 l 18704 5079 l 18702 5065 l 18701 5051 l 18700 5038 l 18700 5025 l 18700 5010 l 18702 4995 l 18704 4979 l 18707 4962 l 18711 4942 l 18716 4921 l 18722 4898 l 18728 4874 l 18735 4851 l 18741 4830 l 18746 4814 l 18749 4805 l 18750 4801 l 18750 4800 l gs col0 s gr % Ellipse n 22238 6733 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 22993 5924 m 22993 5925 l 22992 5928 l 22991 5933 l 22988 5940 l 22985 5950 l 22981 5963 l 22976 5979 l 22969 5998 l 22961 6019 l 22952 6042 l 22942 6066 l 22930 6092 l 22917 6120 l 22903 6148 l 22887 6176 l 22869 6206 l 22848 6236 l 22825 6268 l 22799 6300 l 22770 6333 l 22737 6368 l 22699 6404 l 22658 6441 l 22611 6479 l 22561 6517 l 22515 6549 l 22469 6578 l 22425 6606 l 22382 6629 l 22343 6650 l 22307 6667 l 22275 6681 l 22247 6692 l 22222 6700 l 22200 6705 l 22181 6709 l 22164 6711 l 22149 6711 l 22134 6711 l 22120 6710 l 22107 6710 l 22092 6710 l 22076 6710 l 22059 6712 l 22039 6715 l 22016 6721 l 21989 6728 l 21959 6739 l 21925 6752 l 21887 6768 l 21844 6788 l 21798 6811 l 21748 6837 l 21696 6865 l 21644 6895 l 21589 6928 l 21537 6961 l 21487 6993 l 21442 7024 l 21400 7055 l 21361 7084 l 21325 7111 l 21292 7138 l 21261 7164 l 21232 7190 l 21205 7214 l 21179 7238 l 21155 7262 l 21133 7284 l 21112 7306 l 21092 7326 l 21074 7346 l 21058 7363 l 21043 7380 l 21031 7394 l 21020 7405 l 21012 7415 l 21006 7423 l 21001 7428 l 20998 7431 l 20997 7433 l 20996 7434 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 21158 5978 m 21158 5980 l 21157 5983 l 21156 5990 l 21154 6000 l 21151 6014 l 21148 6031 l 21145 6052 l 21142 6075 l 21139 6100 l 21136 6128 l 21134 6157 l 21133 6187 l 21133 6218 l 21135 6250 l 21138 6283 l 21143 6318 l 21151 6355 l 21161 6393 l 21175 6433 l 21192 6475 l 21212 6517 l 21235 6558 l 21261 6596 l 21287 6631 l 21314 6662 l 21340 6691 l 21367 6716 l 21394 6740 l 21421 6761 l 21448 6781 l 21474 6799 l 21501 6816 l 21526 6831 l 21550 6845 l 21572 6858 l 21592 6868 l 21609 6877 l 21622 6884 l 21632 6889 l 21639 6892 l 21642 6894 l 21644 6895 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 22669 6409 m 22670 6410 l 22672 6411 l 22677 6414 l 22684 6419 l 22693 6425 l 22705 6434 l 22719 6444 l 22736 6456 l 22755 6470 l 22776 6486 l 22798 6502 l 22821 6520 l 22845 6540 l 22869 6560 l 22894 6582 l 22919 6604 l 22944 6628 l 22970 6654 l 22996 6682 l 23022 6711 l 23049 6743 l 23076 6778 l 23103 6815 l 23129 6854 l 23155 6895 l 23181 6940 l 23204 6984 l 23224 7027 l 23241 7067 l 23255 7106 l 23267 7142 l 23278 7177 l 23286 7210 l 23293 7242 l 23299 7272 l 23303 7302 l 23307 7330 l 23310 7357 l 23312 7382 l 23314 7405 l 23315 7425 l 23316 7443 l 23316 7458 l 23317 7470 l 23317 7478 l 23317 7484 l 23317 7487 l 23317 7488 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 22238 5870 m 22237 5871 l 22235 5872 l 22232 5874 l 22228 5877 l 22222 5882 l 22214 5889 l 22205 5896 l 22196 5906 l 22186 5917 l 22176 5929 l 22166 5943 l 22156 5959 l 22147 5977 l 22139 5998 l 22132 6021 l 22127 6048 l 22123 6078 l 22121 6113 l 22121 6153 l 22124 6198 l 22130 6248 l 22137 6289 l 22145 6330 l 22154 6370 l 22164 6407 l 22174 6440 l 22185 6470 l 22196 6497 l 22207 6520 l 22217 6539 l 22228 6556 l 22238 6571 l 22249 6584 l 22259 6596 l 22269 6608 l 22279 6619 l 22289 6631 l 22299 6645 l 22310 6660 l 22320 6678 l 22330 6699 l 22341 6724 l 22351 6752 l 22361 6785 l 22371 6822 l 22380 6863 l 22387 6908 l 22394 6955 l 22399 7003 l 22402 7058 l 22402 7111 l 22400 7160 l 22396 7205 l 22390 7246 l 22383 7284 l 22374 7319 l 22365 7352 l 22354 7382 l 22343 7411 l 22331 7438 l 22319 7463 l 22306 7486 l 22294 7508 l 22283 7528 l 22272 7545 l 22263 7560 l 22255 7572 l 22248 7581 l 22244 7588 l 22240 7593 l 22239 7595 l 22238 7596 l gs col0 s gr % Polyline 7.500 slw n 17850 10500 m 17850 10499 l 17851 10495 l 17854 10486 l 17859 10470 l 17864 10449 l 17870 10425 l 17876 10400 l 17881 10376 l 17885 10354 l 17888 10333 l 17890 10314 l 17890 10297 l 17889 10280 l 17888 10263 l 17885 10247 l 17882 10232 l 17878 10215 l 17873 10198 l 17868 10180 l 17862 10162 l 17856 10143 l 17850 10123 l 17844 10104 l 17838 10084 l 17832 10065 l 17827 10046 l 17822 10028 l 17818 10010 l 17815 9992 l 17813 9975 l 17811 9958 l 17810 9940 l 17809 9922 l 17810 9904 l 17810 9885 l 17812 9866 l 17814 9846 l 17816 9827 l 17819 9807 l 17821 9788 l 17824 9770 l 17827 9752 l 17830 9735 l 17833 9718 l 17835 9703 l 17838 9688 l 17840 9673 l 17841 9658 l 17843 9642 l 17844 9627 l 17845 9611 l 17845 9594 l 17845 9578 l 17845 9561 l 17844 9544 l 17843 9526 l 17841 9509 l 17838 9492 l 17836 9475 l 17833 9459 l 17829 9442 l 17825 9425 l 17821 9409 l 17817 9393 l 17812 9377 l 17807 9359 l 17801 9341 l 17796 9321 l 17790 9302 l 17784 9281 l 17778 9261 l 17773 9240 l 17768 9219 l 17764 9199 l 17760 9179 l 17756 9160 l 17754 9141 l 17752 9123 l 17750 9105 l 17750 9088 l 17750 9070 l 17752 9053 l 17754 9036 l 17758 9018 l 17762 8999 l 17768 8978 l 17775 8956 l 17784 8933 l 17793 8908 l 17803 8882 l 17814 8857 l 17824 8833 l 17833 8813 l 17840 8796 l 17846 8785 l 17849 8778 l 17850 8775 l gs col0 s gr % Polyline n 18750 10500 m 18750 10499 l 18751 10496 l 18755 10488 l 18760 10474 l 18767 10453 l 18777 10428 l 18787 10399 l 18798 10368 l 18809 10337 l 18819 10306 l 18828 10278 l 18836 10252 l 18843 10227 l 18849 10205 l 18853 10184 l 18857 10164 l 18860 10144 l 18863 10125 l 18864 10106 l 18865 10086 l 18866 10067 l 18865 10046 l 18865 10025 l 18864 10003 l 18862 9981 l 18860 9959 l 18857 9936 l 18854 9913 l 18851 9890 l 18848 9867 l 18844 9844 l 18840 9822 l 18836 9801 l 18833 9779 l 18829 9758 l 18825 9738 l 18822 9718 l 18818 9699 l 18815 9679 l 18811 9659 l 18807 9638 l 18803 9617 l 18799 9595 l 18796 9573 l 18792 9551 l 18787 9528 l 18783 9506 l 18779 9485 l 18776 9464 l 18772 9443 l 18768 9424 l 18764 9405 l 18760 9387 l 18757 9370 l 18753 9353 l 18750 9338 l 18746 9318 l 18741 9300 l 18737 9282 l 18733 9264 l 18728 9245 l 18724 9228 l 18720 9210 l 18716 9193 l 18712 9176 l 18709 9160 l 18706 9144 l 18704 9129 l 18702 9115 l 18701 9101 l 18700 9088 l 18700 9075 l 18700 9060 l 18702 9045 l 18704 9029 l 18707 9012 l 18711 8992 l 18716 8971 l 18722 8948 l 18728 8924 l 18735 8901 l 18741 8880 l 18746 8864 l 18749 8855 l 18750 8851 l 18750 8850 l gs col0 s gr % Polyline n 17850 8475 m 17850 8474 l 17851 8470 l 17854 8461 l 17859 8445 l 17864 8424 l 17870 8400 l 17876 8375 l 17881 8351 l 17885 8329 l 17888 8308 l 17890 8289 l 17890 8272 l 17889 8255 l 17888 8238 l 17885 8222 l 17882 8207 l 17878 8190 l 17873 8173 l 17868 8155 l 17862 8137 l 17856 8118 l 17850 8098 l 17844 8079 l 17838 8059 l 17832 8040 l 17827 8021 l 17822 8003 l 17818 7985 l 17815 7967 l 17813 7950 l 17811 7933 l 17810 7915 l 17809 7897 l 17810 7879 l 17810 7860 l 17812 7841 l 17814 7821 l 17816 7802 l 17819 7782 l 17821 7763 l 17824 7745 l 17827 7727 l 17830 7710 l 17833 7693 l 17835 7678 l 17838 7663 l 17840 7648 l 17841 7633 l 17843 7617 l 17844 7602 l 17845 7586 l 17845 7569 l 17845 7553 l 17845 7536 l 17844 7519 l 17843 7501 l 17841 7484 l 17838 7467 l 17836 7450 l 17833 7434 l 17829 7417 l 17825 7400 l 17821 7384 l 17817 7368 l 17812 7352 l 17807 7334 l 17801 7316 l 17796 7296 l 17790 7277 l 17784 7256 l 17778 7236 l 17773 7215 l 17768 7194 l 17764 7174 l 17760 7154 l 17756 7135 l 17754 7116 l 17752 7098 l 17750 7080 l 17750 7063 l 17750 7045 l 17752 7028 l 17754 7011 l 17758 6993 l 17762 6974 l 17768 6953 l 17775 6931 l 17784 6908 l 17793 6883 l 17803 6857 l 17814 6832 l 17824 6808 l 17833 6788 l 17840 6771 l 17846 6760 l 17849 6753 l 17850 6750 l gs col0 s gr % Polyline n 18750 8475 m 18750 8474 l 18751 8471 l 18755 8463 l 18760 8449 l 18767 8428 l 18777 8403 l 18787 8374 l 18798 8343 l 18809 8312 l 18819 8281 l 18828 8253 l 18836 8227 l 18843 8202 l 18849 8180 l 18853 8159 l 18857 8139 l 18860 8119 l 18863 8100 l 18864 8081 l 18865 8061 l 18866 8042 l 18865 8021 l 18865 8000 l 18864 7978 l 18862 7956 l 18860 7934 l 18857 7911 l 18854 7888 l 18851 7865 l 18848 7842 l 18844 7819 l 18840 7797 l 18836 7776 l 18833 7754 l 18829 7733 l 18825 7713 l 18822 7693 l 18818 7674 l 18815 7654 l 18811 7634 l 18807 7613 l 18803 7592 l 18799 7570 l 18796 7548 l 18792 7526 l 18787 7503 l 18783 7481 l 18779 7460 l 18776 7439 l 18772 7418 l 18768 7399 l 18764 7380 l 18760 7362 l 18757 7345 l 18753 7328 l 18750 7313 l 18746 7293 l 18741 7275 l 18737 7257 l 18733 7239 l 18728 7220 l 18724 7203 l 18720 7185 l 18716 7168 l 18712 7151 l 18709 7135 l 18706 7119 l 18704 7104 l 18702 7090 l 18701 7076 l 18700 7063 l 18700 7050 l 18700 7035 l 18702 7020 l 18704 7004 l 18707 6987 l 18711 6967 l 18716 6946 l 18722 6923 l 18728 6899 l 18735 6876 l 18741 6855 l 18746 6839 l 18749 6830 l 18750 6826 l 18750 6825 l gs col0 s gr % Polyline n 17850 4425 m 17850 4424 l 17851 4420 l 17854 4411 l 17859 4395 l 17864 4374 l 17870 4350 l 17876 4325 l 17881 4301 l 17885 4279 l 17888 4258 l 17890 4239 l 17890 4222 l 17889 4205 l 17888 4188 l 17885 4172 l 17882 4157 l 17878 4140 l 17873 4123 l 17868 4105 l 17862 4087 l 17856 4068 l 17850 4048 l 17844 4029 l 17838 4009 l 17832 3990 l 17827 3971 l 17822 3953 l 17818 3935 l 17815 3917 l 17813 3900 l 17811 3883 l 17810 3865 l 17809 3847 l 17810 3829 l 17810 3810 l 17812 3791 l 17814 3771 l 17816 3752 l 17819 3732 l 17821 3713 l 17824 3695 l 17827 3677 l 17830 3660 l 17833 3643 l 17835 3628 l 17838 3613 l 17840 3598 l 17841 3583 l 17843 3567 l 17844 3552 l 17845 3536 l 17845 3519 l 17845 3503 l 17845 3486 l 17844 3469 l 17843 3451 l 17841 3434 l 17838 3417 l 17836 3400 l 17833 3384 l 17829 3367 l 17825 3350 l 17821 3334 l 17817 3318 l 17812 3302 l 17807 3284 l 17801 3266 l 17796 3246 l 17790 3227 l 17784 3206 l 17778 3186 l 17773 3165 l 17768 3144 l 17764 3124 l 17760 3104 l 17756 3085 l 17754 3066 l 17752 3048 l 17750 3030 l 17750 3013 l 17750 2995 l 17752 2978 l 17754 2961 l 17758 2943 l 17762 2924 l 17768 2903 l 17775 2881 l 17784 2858 l 17793 2833 l 17803 2807 l 17814 2782 l 17824 2758 l 17833 2738 l 17840 2721 l 17846 2710 l 17849 2703 l 17850 2700 l gs col0 s gr % Polyline n 18750 4425 m 18750 4424 l 18751 4421 l 18755 4413 l 18760 4399 l 18767 4378 l 18777 4353 l 18787 4324 l 18798 4293 l 18809 4262 l 18819 4231 l 18828 4203 l 18836 4177 l 18843 4152 l 18849 4130 l 18853 4109 l 18857 4089 l 18860 4069 l 18863 4050 l 18864 4031 l 18865 4011 l 18866 3992 l 18865 3971 l 18865 3950 l 18864 3928 l 18862 3906 l 18860 3884 l 18857 3861 l 18854 3838 l 18851 3815 l 18848 3792 l 18844 3769 l 18840 3747 l 18836 3726 l 18833 3704 l 18829 3683 l 18825 3663 l 18822 3643 l 18818 3624 l 18815 3604 l 18811 3584 l 18807 3563 l 18803 3542 l 18799 3520 l 18796 3498 l 18792 3476 l 18787 3453 l 18783 3431 l 18779 3410 l 18776 3389 l 18772 3368 l 18768 3349 l 18764 3330 l 18760 3312 l 18757 3295 l 18753 3278 l 18750 3263 l 18746 3243 l 18741 3225 l 18737 3207 l 18733 3189 l 18728 3170 l 18724 3153 l 18720 3135 l 18716 3118 l 18712 3101 l 18709 3085 l 18706 3069 l 18704 3054 l 18702 3040 l 18701 3026 l 18700 3013 l 18700 3000 l 18700 2985 l 18702 2970 l 18704 2954 l 18707 2937 l 18711 2917 l 18716 2896 l 18722 2873 l 18728 2849 l 18735 2826 l 18741 2805 l 18746 2789 l 18749 2780 l 18750 2776 l 18750 2775 l gs col0 s gr % here ends figure; % % here starts figure with depth 10 % Polyline 0 slj 0 slc 7.500 slw n 10575 6525 m 10875 6825 l gs col0 s gr % Polyline n 10875 6525 m 10575 6825 l gs col0 s gr % Polyline n 12900 6450 m 13200 6750 l gs col0 s gr % Polyline n 13200 6450 m 12900 6750 l gs col0 s gr /Times-Roman ff 600.00 scf sf 10425 6300 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 10725 6375 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 600.00 scf sf 12750 6300 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 13050 6375 m gs 1 -1 sc (3) col0 sh gr % Polyline 0.000 slw n 20133 5924 m 20025 5924 l 20025 5816 l 20133 5816 l cp gs col7 1.00 shd ef gr % Polyline n 24450 7650 m 24342 7650 l 24342 7542 l 24450 7542 l cp gs col7 1.00 shd ef gr % Polyline 30.000 slw gs clippath 9595 6660 m 9915 6660 l 9915 6540 l 9595 6540 l 9595 6540 l 9835 6600 l 9595 6660 l cp eoclip n 9150 6600 m 9900 6600 l gs col0 s gr gr % arrowhead 15.000 slw n 9595 6660 m 9835 6600 l 9595 6540 l 9595 6660 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14547 4095 m 14755 3852 l 14664 3774 l 14456 4017 l 14456 4017 l 14658 3874 l 14547 4095 l cp eoclip n 13350 5400 m 14700 3825 l gs col0 s gr gr % arrowhead 15.000 slw n 14547 4095 m 14658 3874 l 14456 4017 l 14547 4095 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14460 5747 m 14741 5595 l 14684 5490 l 14403 5641 l 14403 5641 l 14643 5581 l 14460 5747 l cp eoclip n 13725 6075 m 14700 5550 l gs col0 s gr gr % arrowhead 15.000 slw n 14460 5747 m 14643 5581 l 14403 5641 l 14460 5747 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14403 7558 m 14684 7709 l 14741 7604 l 14460 7452 l 14460 7452 l 14643 7619 l 14403 7558 l cp eoclip n 13725 7125 m 14700 7650 l gs col0 s gr gr % arrowhead 15.000 slw n 14403 7558 m 14643 7619 l 14460 7452 l 14403 7558 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14456 9182 m 14664 9425 l 14755 9347 l 14547 9104 l 14547 9104 l 14658 9326 l 14456 9182 l cp eoclip n 13350 7800 m 14700 9375 l gs col0 s gr gr % arrowhead 15.000 slw n 14456 9182 m 14658 9326 l 14547 9104 l 14456 9182 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 17095 3660 m 17415 3660 l 17415 3540 l 17095 3540 l 17095 3540 l 17335 3600 l 17095 3660 l cp eoclip n 16650 3600 m 17400 3600 l gs col0 s gr gr % arrowhead 15.000 slw n 17095 3660 m 17335 3600 l 17095 3540 l 17095 3660 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 17095 5610 m 17415 5610 l 17415 5490 l 17095 5490 l 17095 5490 l 17335 5550 l 17095 5610 l cp eoclip n 16650 5550 m 17400 5550 l gs col0 s gr gr % arrowhead 15.000 slw n 17095 5610 m 17335 5550 l 17095 5490 l 17095 5610 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 17095 7710 m 17415 7710 l 17415 7590 l 17095 7590 l 17095 7590 l 17335 7650 l 17095 7710 l cp eoclip n 16650 7650 m 17400 7650 l gs col0 s gr gr % arrowhead 15.000 slw n 17095 7710 m 17335 7650 l 17095 7590 l 17095 7710 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 17095 9660 m 17415 9660 l 17415 9540 l 17095 9540 l 17095 9540 l 17335 9600 l 17095 9660 l cp eoclip n 16650 9600 m 17400 9600 l gs col0 s gr gr % arrowhead 15.000 slw n 17095 9660 m 17335 9600 l 17095 9540 l 17095 9660 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 20135 5454 m 20278 5740 l 20385 5686 l 20242 5400 l 20242 5400 l 20296 5642 l 20135 5454 l cp eoclip n 19275 3600 m 20325 5700 l gs col0 s gr gr % arrowhead 15.000 slw n 20135 5454 m 20296 5642 l 20242 5400 l 20135 5454 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 19749 6006 m 19999 6206 l 20074 6112 l 19824 5913 l 19824 5913 l 19974 6110 l 19749 6006 l cp eoclip n 19275 5550 m 20025 6150 l gs col0 s gr gr % arrowhead 15.000 slw n 19749 6006 m 19974 6110 l 19824 5913 l 19749 6006 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 19794 7407 m 20068 7243 l 20006 7140 l 19732 7305 l 19732 7305 l 19969 7233 l 19794 7407 l cp eoclip n 19275 7650 m 20025 7200 l gs col0 s gr gr % arrowhead 15.000 slw n 19794 7407 m 19969 7233 l 19732 7305 l 19794 7407 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 20222 8093 m 20384 7817 l 20280 7756 l 20119 8033 l 20119 8033 l 20292 7856 l 20222 8093 l cp eoclip n 19275 9600 m 20325 7800 l gs col0 s gr gr % arrowhead 15.000 slw n 20222 8093 m 20292 7856 l 20119 8033 l 20222 8093 l cp gs 0.00 setgray ef gr col0 s % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_nedi.eps000066400000000000000000000542061514310134000266220ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Thu Aug 17 01:43:45 2006 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 1024 226 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 226 moveto 0 0 lineto 1024 0 lineto 1024 226 lineto closepath clip newpath -13.4 274.6 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 70 % Ellipse 7.500 slw n 14197 1500 1588 635 0 360 DrawEllipse gs col0 s gr % here ends figure; % % here starts figure with depth 60 % Polyline 0 slj 0 slc 0.000 slw n 12570 1262 m 14197 1262 l 14197 825 l 12570 825 l cp gs col7 1.00 shd ef gr % Polyline n 12570 2175 m 14197 2175 l 14197 1738 l 12570 1738 l cp gs col7 1.00 shd ef gr % Polyline n 12848 1818 m 12570 1818 l 12570 1182 l 12848 1182 l cp gs col7 1.00 shd ef gr % here ends figure; % % here starts figure with depth 50 /Times-Roman ff 315.00 scf sf 1535 2462 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 1694 2501 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 315.00 scf sf 1852 3097 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 2011 3137 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 315.00 scf sf 582 2819 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 741 2859 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 315.00 scf sf 2845 2819 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 3004 2859 m gs 1 -1 sc (3) col0 sh gr % Ellipse 7.500 slw n 1852 2700 1588 635 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj 0 slc [15 45] 45 sd n 2408 2104 m 2408 2105 l 2407 2108 l 2405 2114 l 2403 2122 l 2399 2134 l 2394 2148 l 2388 2165 l 2381 2184 l 2372 2206 l 2362 2228 l 2351 2252 l 2338 2276 l 2323 2302 l 2306 2328 l 2287 2355 l 2264 2383 l 2238 2413 l 2208 2443 l 2174 2475 l 2134 2508 l 2091 2541 l 2052 2568 l 2013 2593 l 1976 2615 l 1941 2633 l 1910 2649 l 1883 2661 l 1859 2670 l 1838 2677 l 1820 2681 l 1805 2683 l 1791 2684 l 1779 2684 l 1767 2683 l 1755 2683 l 1742 2683 l 1728 2684 l 1712 2686 l 1694 2690 l 1672 2696 l 1646 2705 l 1617 2716 l 1583 2731 l 1545 2749 l 1504 2770 l 1460 2794 l 1416 2819 l 1369 2847 l 1325 2876 l 1284 2903 l 1246 2929 l 1212 2954 l 1181 2978 l 1153 3001 l 1127 3024 l 1103 3045 l 1081 3066 l 1060 3086 l 1040 3106 l 1022 3124 l 1006 3142 l 991 3158 l 978 3172 l 967 3185 l 958 3195 l 951 3203 l 946 3209 l 943 3213 l 941 3215 l 940 3216 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1059 2144 m 1059 2146 l 1058 2151 l 1056 2159 l 1054 2172 l 1051 2188 l 1048 2208 l 1045 2230 l 1043 2254 l 1041 2280 l 1040 2308 l 1041 2336 l 1043 2366 l 1048 2398 l 1055 2431 l 1066 2466 l 1080 2503 l 1098 2541 l 1117 2574 l 1138 2604 l 1159 2632 l 1181 2656 l 1202 2678 l 1224 2698 l 1246 2716 l 1268 2732 l 1289 2747 l 1310 2761 l 1331 2773 l 1350 2784 l 1368 2794 l 1383 2802 l 1395 2809 l 1405 2813 l 1411 2816 l 1414 2818 l 1416 2819 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2170 2462 m 2171 2463 l 2174 2465 l 2179 2468 l 2187 2474 l 2197 2481 l 2210 2490 l 2226 2501 l 2243 2514 l 2262 2528 l 2282 2544 l 2302 2561 l 2323 2578 l 2345 2598 l 2367 2618 l 2389 2640 l 2412 2664 l 2435 2690 l 2458 2719 l 2481 2750 l 2505 2783 l 2527 2819 l 2549 2859 l 2569 2897 l 2585 2934 l 2599 2969 l 2610 3001 l 2618 3031 l 2625 3060 l 2631 3088 l 2635 3114 l 2639 3139 l 2641 3163 l 2643 3185 l 2644 3204 l 2645 3221 l 2646 3234 l 2646 3244 l 2646 3251 l 2646 3254 l 2646 3256 l gs col0 s gr [] 0 sd % Ellipse n 6652 2700 1588 635 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 7208 2104 m 7208 2105 l 7207 2108 l 7205 2114 l 7203 2122 l 7199 2134 l 7194 2148 l 7188 2165 l 7181 2184 l 7172 2206 l 7162 2228 l 7151 2252 l 7138 2276 l 7123 2302 l 7106 2328 l 7087 2355 l 7064 2383 l 7038 2413 l 7008 2443 l 6974 2475 l 6934 2508 l 6891 2541 l 6852 2568 l 6813 2593 l 6776 2615 l 6741 2633 l 6710 2649 l 6683 2661 l 6659 2670 l 6638 2677 l 6620 2681 l 6605 2683 l 6591 2684 l 6579 2684 l 6567 2683 l 6555 2683 l 6542 2683 l 6528 2684 l 6512 2686 l 6494 2690 l 6472 2696 l 6446 2705 l 6417 2716 l 6383 2731 l 6345 2749 l 6304 2770 l 6260 2794 l 6216 2819 l 6169 2847 l 6125 2876 l 6084 2903 l 6046 2929 l 6012 2954 l 5981 2978 l 5953 3001 l 5927 3024 l 5903 3045 l 5881 3066 l 5860 3086 l 5840 3106 l 5822 3124 l 5806 3142 l 5791 3158 l 5778 3172 l 5767 3185 l 5758 3195 l 5751 3203 l 5746 3209 l 5743 3213 l 5741 3215 l 5740 3216 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5859 2144 m 5859 2146 l 5858 2151 l 5856 2159 l 5854 2172 l 5851 2188 l 5848 2208 l 5845 2230 l 5843 2254 l 5841 2280 l 5840 2308 l 5841 2336 l 5843 2366 l 5848 2398 l 5855 2431 l 5866 2466 l 5880 2503 l 5898 2541 l 5917 2574 l 5938 2604 l 5959 2632 l 5981 2656 l 6002 2678 l 6024 2698 l 6046 2716 l 6068 2732 l 6089 2747 l 6110 2761 l 6131 2773 l 6150 2784 l 6168 2794 l 6183 2802 l 6195 2809 l 6205 2813 l 6211 2816 l 6214 2818 l 6216 2819 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6970 2462 m 6971 2463 l 6974 2465 l 6979 2468 l 6987 2474 l 6997 2481 l 7010 2490 l 7026 2501 l 7043 2514 l 7062 2528 l 7082 2544 l 7102 2561 l 7123 2578 l 7145 2598 l 7167 2618 l 7189 2640 l 7212 2664 l 7235 2690 l 7258 2719 l 7281 2750 l 7305 2783 l 7327 2819 l 7349 2859 l 7369 2897 l 7385 2934 l 7399 2969 l 7410 3001 l 7418 3031 l 7425 3060 l 7431 3088 l 7435 3114 l 7439 3139 l 7441 3163 l 7443 3185 l 7444 3204 l 7445 3221 l 7446 3234 l 7446 3244 l 7446 3251 l 7446 3254 l 7446 3256 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 6652 2065 m 6651 2066 l 6650 2067 l 6647 2069 l 6642 2072 l 6637 2077 l 6630 2082 l 6623 2090 l 6614 2098 l 6606 2108 l 6598 2120 l 6590 2133 l 6583 2148 l 6577 2165 l 6572 2185 l 6569 2209 l 6567 2236 l 6566 2267 l 6568 2303 l 6573 2343 l 6579 2378 l 6586 2413 l 6594 2446 l 6603 2477 l 6613 2503 l 6622 2526 l 6631 2546 l 6640 2562 l 6649 2576 l 6658 2588 l 6667 2598 l 6676 2608 l 6685 2618 l 6693 2628 l 6702 2641 l 6711 2655 l 6720 2673 l 6729 2693 l 6738 2718 l 6746 2747 l 6754 2781 l 6762 2818 l 6768 2858 l 6772 2899 l 6774 2948 l 6774 2993 l 6771 3035 l 6766 3072 l 6760 3106 l 6752 3137 l 6743 3165 l 6733 3191 l 6723 3215 l 6712 3237 l 6701 3258 l 6690 3276 l 6680 3293 l 6672 3306 l 6664 3317 l 6659 3325 l 6655 3331 l 6653 3334 l 6652 3335 l gs col0 s gr /Times-Roman ff 315.00 scf sf 9579 4019 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 9736 4059 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 315.00 scf sf 11821 4019 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 11978 4059 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 315.00 scf sf 10287 3701 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 10445 3741 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 315.00 scf sf 10445 4337 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 10601 4376 m gs 1 -1 sc (2) col0 sh gr % Ellipse 7.500 slw n 10837 3900 1573 635 0 360 DrawEllipse gs col0 s gr % Polyline 0 slj n 11781 3900 m 11624 4059 l gs col0 s gr % Polyline n 11624 3900 m 11781 4059 l gs col0 s gr % Polyline 2 slj [15 45] 45 sd n 10051 3344 m 10051 3346 l 10050 3351 l 10048 3359 l 10046 3372 l 10043 3388 l 10040 3408 l 10037 3430 l 10035 3454 l 10033 3480 l 10032 3508 l 10033 3536 l 10036 3566 l 10040 3598 l 10048 3631 l 10058 3666 l 10072 3703 l 10090 3741 l 10109 3774 l 10129 3804 l 10150 3832 l 10172 3856 l 10193 3878 l 10215 3898 l 10236 3916 l 10258 3932 l 10279 3947 l 10300 3961 l 10321 3973 l 10340 3984 l 10357 3994 l 10372 4002 l 10384 4009 l 10394 4013 l 10400 4016 l 10403 4018 l 10405 4019 l gs col0 s gr [] 0 sd % Polyline 0 slj n 10051 1494 m 9894 1651 l gs col0 s gr % Polyline n 9894 1494 m 10051 1651 l gs col0 s gr /Times-Roman ff 315.00 scf sf 9579 1611 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 9736 1651 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 315.00 scf sf 11821 1611 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 11978 1651 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 315.00 scf sf 10877 1179 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 11034 1218 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 315.00 scf sf 11113 1887 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 11270 1926 m gs 1 -1 sc (2) col0 sh gr % Ellipse n 10837 1494 1573 629 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj [15 45] 45 sd n 11152 1258 m 11153 1259 l 11156 1261 l 11161 1264 l 11169 1269 l 11179 1277 l 11192 1286 l 11207 1297 l 11224 1309 l 11243 1323 l 11263 1339 l 11283 1355 l 11304 1373 l 11326 1392 l 11347 1412 l 11369 1434 l 11392 1458 l 11414 1484 l 11437 1512 l 11461 1543 l 11484 1576 l 11506 1611 l 11528 1650 l 11548 1689 l 11564 1725 l 11577 1759 l 11588 1791 l 11597 1821 l 11604 1850 l 11609 1877 l 11613 1903 l 11617 1928 l 11619 1952 l 11621 1973 l 11622 1992 l 11623 2009 l 11624 2022 l 11624 2032 l 11624 2039 l 11624 2042 l 11624 2044 l gs col0 s gr [] 0 sd /Times-Roman ff 315.00 scf sf 14475 1897 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 14634 1937 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 315.00 scf sf 15097 3701 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 15256 3741 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 315.00 scf sf 14400 4010 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 14558 4050 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 315.00 scf sf 15300 1610 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 195.00 scf sf 15458 1650 m gs 1 -1 sc (3) col0 sh gr % Ellipse n 15652 3900 1588 635 0 360 DrawEllipse gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 4420 2760 m 4740 2760 l 4740 2640 l 4420 2640 l 4420 2640 l 4660 2700 l 4420 2760 l cp eoclip n 3825 2700 m 4725 2700 l gs col0 s gr gr % arrowhead 15.000 slw n 4420 2760 m 4660 2700 l 4420 2640 l 4420 2760 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 13420 1560 m 13740 1560 l 13740 1440 l 13420 1440 l 13420 1440 l 13660 1500 l 13420 1560 l cp eoclip n 12825 1500 m 13725 1500 l gs col0 s gr gr % arrowhead 15.000 slw n 13420 1560 m 13660 1500 l 13420 1440 l 13420 1560 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 13420 3960 m 13740 3960 l 13740 3840 l 13420 3840 l 13420 3840 l 13660 3900 l 13420 3960 l cp eoclip n 12825 3900 m 13725 3900 l gs col0 s gr gr % arrowhead 15.000 slw n 13420 3960 m 13660 3900 l 13420 3840 l 13420 3960 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj 7.500 slw [15 45] 45 sd n 14859 3344 m 14859 3346 l 14858 3351 l 14856 3359 l 14854 3372 l 14851 3388 l 14848 3408 l 14845 3430 l 14843 3454 l 14841 3480 l 14840 3508 l 14841 3536 l 14843 3566 l 14848 3598 l 14855 3631 l 14866 3666 l 14880 3703 l 14898 3741 l 14917 3774 l 14938 3804 l 14959 3832 l 14981 3856 l 15002 3878 l 15024 3898 l 15046 3916 l 15068 3932 l 15089 3947 l 15110 3961 l 15131 3973 l 15150 3984 l 15168 3994 l 15183 4002 l 15195 4009 l 15205 4013 l 15211 4016 l 15214 4018 l 15216 4019 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 15300 1050 m 15298 1050 l 15294 1050 l 15288 1051 l 15277 1051 l 15262 1052 l 15244 1053 l 15222 1054 l 15197 1056 l 15169 1057 l 15139 1059 l 15108 1062 l 15075 1064 l 15042 1067 l 15009 1070 l 14975 1074 l 14941 1078 l 14906 1082 l 14872 1088 l 14837 1093 l 14802 1100 l 14767 1108 l 14733 1116 l 14700 1125 l 14670 1135 l 14645 1144 l 14622 1154 l 14604 1163 l 14589 1172 l 14577 1181 l 14567 1190 l 14560 1199 l 14554 1207 l 14550 1215 l 14547 1223 l 14545 1230 l 14545 1238 l 14544 1245 l 14545 1251 l 14546 1257 l 14546 1262 l 14547 1266 l 14548 1270 l 14549 1272 l 14550 1274 l 14550 1275 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 14550 1275 m 14552 1276 l 14556 1278 l 14563 1281 l 14573 1287 l 14586 1294 l 14602 1303 l 14620 1313 l 14639 1324 l 14660 1337 l 14681 1351 l 14703 1366 l 14726 1383 l 14749 1401 l 14773 1422 l 14799 1445 l 14824 1472 l 14850 1500 l 14874 1529 l 14894 1556 l 14911 1580 l 14924 1600 l 14934 1616 l 14940 1628 l 14945 1637 l 14948 1644 l 14950 1650 l 14952 1656 l 14954 1663 l 14957 1672 l 14961 1684 l 14966 1700 l 14973 1720 l 14982 1744 l 14991 1771 l 15000 1800 l 15009 1836 l 15015 1868 l 15018 1896 l 15019 1920 l 15019 1941 l 15017 1959 l 15014 1976 l 15011 1990 l 15007 2003 l 15004 2012 l 15002 2019 l 15001 2023 l 15000 2025 l gs col0 s gr [] 0 sd % here ends figure; % % here starts figure with depth 47 % Polyline 2 slj 0 slc 7.500 slw [15 90] 90 sd n 11365 923 m 11365 925 l 11364 928 l 11363 935 l 11362 944 l 11360 955 l 11356 969 l 11352 985 l 11346 1003 l 11339 1021 l 11330 1042 l 11318 1064 l 11303 1089 l 11283 1116 l 11259 1146 l 11231 1179 l 11206 1205 l 11180 1231 l 11154 1255 l 11128 1277 l 11103 1297 l 11079 1317 l 11055 1335 l 11032 1352 l 11009 1368 l 10986 1383 l 10965 1398 l 10945 1411 l 10927 1423 l 10911 1433 l 10898 1441 l 10889 1447 l 10882 1451 l 10879 1453 l 10877 1454 l gs col0 s gr [] 0 sd % here ends figure; % % here starts figure with depth 40 % Polyline 0 slj 0 slc 0.000 slw n 304 2104 m 225 2104 l 225 2025 l 304 2025 l cp gs col7 1.00 shd ef gr % Polyline n 3480 3375 m 3401 3375 l 3401 3296 l 3480 3296 l cp gs col7 1.00 shd ef gr % Polyline n 5104 2104 m 5025 2104 l 5025 2025 l 5104 2025 l cp gs col7 1.00 shd ef gr % Polyline n 8280 3375 m 8201 3375 l 8201 3296 l 8280 3296 l cp gs col7 1.00 shd ef gr % Polyline n 10837 4575 m 12450 4575 l 12450 4138 l 10837 4138 l cp gs col7 1.00 shd ef gr % Polyline n 10837 3662 m 12450 3662 l 12450 3225 l 10837 3225 l cp gs col7 1.00 shd ef gr % Polyline n 12450 4218 m 12175 4218 l 12175 3582 l 12450 3582 l cp gs col7 1.00 shd ef gr % Polyline n 9303 3304 m 9225 3304 l 9225 3225 l 9303 3225 l cp gs col7 1.00 shd ef gr % Polyline 2 slj 7.500 slw [15 90] 90 sd n 10877 3860 m 10875 3860 l 10870 3860 l 10861 3860 l 10850 3861 l 10835 3861 l 10818 3863 l 10799 3864 l 10779 3867 l 10757 3870 l 10732 3875 l 10705 3881 l 10674 3890 l 10641 3900 l 10612 3910 l 10587 3919 l 10568 3926 l 10554 3931 l 10546 3933 l 10543 3933 l 10542 3932 l 10543 3930 l 10543 3928 l 10541 3928 l 10536 3931 l 10525 3937 l 10507 3948 l 10481 3966 l 10447 3989 l 10405 4019 l 10375 4041 l 10344 4065 l 10314 4088 l 10284 4112 l 10256 4135 l 10228 4158 l 10200 4181 l 10174 4203 l 10148 4226 l 10122 4248 l 10097 4269 l 10073 4291 l 10050 4311 l 10028 4331 l 10008 4349 l 9989 4365 l 9973 4380 l 9960 4392 l 9950 4401 l 9942 4408 l 9937 4412 l 9934 4415 l 9933 4416 l gs col0 s gr [] 0 sd % Polyline 0 slj 0.000 slw n 12450 2162 m 12371 2162 l 12371 2083 l 12450 2083 l cp gs col7 1.00 shd ef gr % Polyline n 9225 1258 m 10837 1258 l 10837 825 l 9225 825 l cp gs col7 1.00 shd ef gr % Polyline n 9225 2162 m 10837 2162 l 10837 1729 l 9225 1729 l cp gs col7 1.00 shd ef gr % Polyline n 9500 1808 m 9225 1808 l 9225 1179 l 9500 1179 l cp gs col7 1.00 shd ef gr % Polyline n 15825 2175 m 15746 2175 l 15746 2096 l 15825 2096 l cp gs col7 1.00 shd ef gr % Polyline n 15652 4575 m 17280 4575 l 17280 4138 l 15652 4138 l cp gs col7 1.00 shd ef gr % Polyline n 15652 3662 m 17280 3662 l 17280 3225 l 15652 3225 l cp gs col7 1.00 shd ef gr % Polyline n 17280 4218 m 17002 4218 l 17002 3582 l 17280 3582 l cp gs col7 1.00 shd ef gr % Polyline n 14104 3304 m 14025 3304 l 14025 3225 l 14104 3225 l cp gs col7 1.00 shd ef gr % here ends figure; % % here starts figure with depth 37 % Polyline 2 slj 0 slc 7.500 slw [15 90] 90 sd n 14850 4425 m 14852 4425 l 14856 4423 l 14864 4422 l 14875 4419 l 14889 4415 l 14907 4410 l 14926 4404 l 14947 4397 l 14969 4390 l 14991 4381 l 15014 4372 l 15036 4361 l 15059 4348 l 15083 4333 l 15106 4316 l 15129 4297 l 15150 4275 l 15171 4249 l 15187 4224 l 15200 4199 l 15209 4176 l 15215 4154 l 15219 4133 l 15221 4112 l 15221 4093 l 15221 4075 l 15220 4058 l 15219 4044 l 15218 4033 l 15217 4026 l 15216 4021 l 15216 4019 l gs col0 s gr [] 0 sd % here ends figure; % % here starts figure with depth 30 % Polyline 2 slj 0 slc 15.000 slw n 10837 3265 m 10836 3266 l 10835 3267 l 10832 3269 l 10828 3272 l 10822 3277 l 10815 3282 l 10808 3290 l 10800 3298 l 10792 3308 l 10784 3320 l 10776 3333 l 10769 3348 l 10763 3365 l 10758 3385 l 10755 3409 l 10753 3436 l 10752 3467 l 10754 3503 l 10759 3543 l 10765 3578 l 10772 3613 l 10780 3646 l 10789 3677 l 10798 3703 l 10807 3726 l 10817 3746 l 10826 3762 l 10835 3776 l 10843 3788 l 10852 3798 l 10861 3808 l 10870 3818 l 10878 3828 l 10887 3841 l 10896 3855 l 10905 3873 l 10913 3893 l 10922 3918 l 10931 3947 l 10939 3981 l 10946 4018 l 10952 4058 l 10956 4099 l 10958 4148 l 10958 4193 l 10955 4235 l 10950 4272 l 10944 4306 l 10936 4337 l 10927 4365 l 10918 4391 l 10907 4415 l 10896 4437 l 10886 4458 l 10875 4476 l 10865 4493 l 10856 4506 l 10849 4517 l 10844 4525 l 10840 4531 l 10838 4534 l 10837 4535 l gs col0 s gr % Polyline n 10837 864 m 10836 865 l 10835 866 l 10832 868 l 10828 871 l 10822 876 l 10815 881 l 10808 889 l 10800 897 l 10792 907 l 10784 919 l 10776 932 l 10769 947 l 10763 964 l 10758 984 l 10755 1007 l 10753 1034 l 10752 1065 l 10754 1100 l 10759 1140 l 10765 1175 l 10772 1210 l 10780 1242 l 10789 1272 l 10798 1299 l 10807 1321 l 10816 1341 l 10825 1357 l 10834 1370 l 10843 1382 l 10852 1392 l 10860 1402 l 10869 1412 l 10878 1422 l 10886 1434 l 10895 1449 l 10904 1466 l 10913 1486 l 10921 1511 l 10930 1540 l 10938 1573 l 10945 1609 l 10951 1649 l 10955 1690 l 10957 1738 l 10957 1783 l 10954 1824 l 10949 1862 l 10943 1895 l 10935 1926 l 10927 1954 l 10917 1980 l 10907 2004 l 10896 2026 l 10885 2046 l 10875 2065 l 10865 2081 l 10856 2094 l 10849 2105 l 10844 2113 l 10840 2119 l 10838 2122 l 10837 2123 l gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 8559 3564 m 8830 3733 l 8894 3632 l 8623 3462 l 8623 3462 l 8795 3641 l 8559 3564 l cp eoclip n 8250 3300 m 8850 3675 l gs col0 s gr gr % arrowhead 15.000 slw n 8559 3564 m 8795 3641 l 8623 3462 l 8559 3564 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 8623 1937 m 8894 1767 l 8830 1666 l 8559 1835 l 8559 1835 l 8795 1759 l 8623 1937 l cp eoclip n 8250 2100 m 8850 1725 l gs col0 s gr gr % arrowhead 15.000 slw n 8623 1937 m 8795 1759 l 8559 1835 l 8623 1937 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj n 14197 865 m 14196 866 l 14195 867 l 14192 869 l 14187 872 l 14182 877 l 14175 882 l 14168 890 l 14159 898 l 14151 908 l 14143 920 l 14135 933 l 14128 948 l 14122 965 l 14117 985 l 14114 1009 l 14112 1036 l 14111 1067 l 14113 1103 l 14118 1143 l 14124 1178 l 14131 1213 l 14139 1246 l 14148 1277 l 14158 1303 l 14167 1326 l 14176 1346 l 14185 1362 l 14194 1376 l 14203 1388 l 14212 1398 l 14221 1408 l 14230 1418 l 14238 1428 l 14247 1441 l 14256 1455 l 14265 1473 l 14274 1493 l 14283 1518 l 14291 1547 l 14299 1581 l 14307 1618 l 14313 1658 l 14317 1699 l 14319 1748 l 14319 1793 l 14316 1835 l 14311 1872 l 14305 1906 l 14297 1937 l 14288 1965 l 14278 1991 l 14268 2015 l 14257 2037 l 14246 2058 l 14235 2076 l 14225 2093 l 14217 2106 l 14209 2117 l 14204 2125 l 14200 2131 l 14198 2134 l 14197 2135 l gs col0 s gr % Polyline n 15652 3265 m 15651 3266 l 15650 3267 l 15647 3269 l 15642 3272 l 15637 3277 l 15630 3282 l 15623 3290 l 15614 3298 l 15606 3308 l 15598 3320 l 15590 3333 l 15583 3348 l 15577 3365 l 15572 3385 l 15569 3409 l 15567 3436 l 15566 3467 l 15568 3503 l 15573 3543 l 15579 3578 l 15586 3613 l 15594 3646 l 15603 3677 l 15613 3703 l 15622 3726 l 15631 3746 l 15640 3762 l 15649 3776 l 15658 3788 l 15667 3798 l 15676 3808 l 15685 3818 l 15693 3828 l 15702 3841 l 15711 3855 l 15720 3873 l 15729 3893 l 15738 3918 l 15746 3947 l 15754 3981 l 15762 4018 l 15768 4058 l 15772 4099 l 15774 4148 l 15774 4193 l 15771 4235 l 15766 4272 l 15760 4306 l 15752 4337 l 15743 4365 l 15733 4391 l 15723 4415 l 15712 4437 l 15701 4458 l 15690 4476 l 15680 4493 l 15672 4506 l 15664 4517 l 15659 4525 l 15655 4531 l 15653 4534 l 15652 4535 l gs col0 s gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_orb.eps000066400000000000000000000632161514310134000264660ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_orb.fig %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Thu Dec 30 03:01:42 2004 %%For: pelegrin@localhost (Francois PELLEGRINI) %%BoundingBox: 0 0 775 164 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 164 moveto 0 0 lineto 775 0 lineto 775 164 lineto closepath clip newpath -36.0 198.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Courier /Courier-iso isovec ReEncode /Times-Bold /Times-Bold-iso isovec ReEncode /Times-Roman /Times-Roman-iso isovec ReEncode /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Polyline 7.500 slw n 10080 1725 m 9975 1725 9975 2070 105 arcto 4 {pop} repeat 9975 2175 10320 2175 105 arcto 4 {pop} repeat 10425 2175 10425 1830 105 arcto 4 {pop} repeat 10425 1725 10080 1725 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline 2 slj n 11138 3213 m 11150 3215 l 11164 3217 l 11180 3218 l 11196 3220 l 11213 3221 l 11231 3221 l 11250 3222 l 11269 3221 l 11287 3221 l 11304 3220 l 11320 3218 l 11336 3217 l 11350 3215 l 11363 3213 l 11371 3211 l 11379 3208 l 11386 3206 l 11394 3202 l 11401 3198 l 11407 3193 l 11414 3186 l 11420 3178 l 11425 3168 l 11431 3156 l 11435 3143 l 11440 3128 l 11444 3111 l 11448 3092 l 11451 3071 l 11454 3049 l 11456 3024 l 11459 2998 l 11461 2969 l 11463 2938 l 11464 2915 l 11465 2891 l 11466 2866 l 11467 2840 l 11467 2812 l 11468 2783 l 11469 2753 l 11470 2721 l 11471 2688 l 11471 2654 l 11472 2620 l 11473 2584 l 11474 2548 l 11474 2512 l 11475 2475 l 11476 2438 l 11476 2402 l 11477 2366 l 11478 2330 l 11479 2296 l 11479 2262 l 11480 2229 l 11481 2197 l 11482 2167 l 11483 2138 l 11483 2110 l 11484 2084 l 11485 2059 l 11486 2035 l 11488 2013 l 11489 1984 l 11491 1957 l 11493 1933 l 11496 1909 l 11499 1887 l 11503 1867 l 11507 1847 l 11512 1829 l 11518 1812 l 11525 1795 l 11533 1780 l 11542 1765 l 11552 1751 l 11563 1738 l 11575 1725 l 11588 1713 l 11602 1701 l 11617 1689 l 11633 1676 l 11650 1664 l 11668 1651 l 11688 1638 l 11705 1625 l 11724 1612 l 11744 1599 l 11765 1584 l 11788 1569 l 11811 1553 l 11836 1536 l 11862 1519 l 11888 1501 l 11916 1482 l 11943 1463 l 11972 1444 l 12000 1425 l 12028 1406 l 12057 1387 l 12084 1368 l 12112 1349 l 12138 1331 l 12164 1314 l 12189 1297 l 12212 1281 l 12235 1266 l 12256 1251 l 12276 1238 l 12295 1225 l 12313 1213 l 12339 1194 l 12363 1177 l 12385 1161 l 12405 1146 l 12424 1132 l 12440 1119 l 12454 1106 l 12467 1094 l 12477 1083 l 12486 1072 l 12493 1062 l 12499 1052 l 12504 1043 l 12507 1033 l 12510 1023 l 12513 1013 l 12515 1000 l 12517 986 l 12518 970 l 12520 954 l 12521 937 l 12521 919 l 12522 900 l 12521 881 l 12521 863 l 12520 846 l 12518 830 l 12517 814 l 12515 800 l 12513 788 l 12510 776 l 12507 765 l 12503 754 l 12499 745 l 12493 735 l 12487 727 l 12481 719 l 12473 713 l 12465 707 l 12455 701 l 12446 697 l 12435 693 l 12424 690 l 12413 688 l 12400 685 l 12386 683 l 12370 682 l 12354 680 l 12337 679 l 12319 679 l 12300 678 l 12281 679 l 12263 679 l 12246 680 l 12230 682 l 12214 683 l 12200 685 l 12188 688 l 12176 690 l 12165 693 l 12154 697 l 12145 701 l 12135 707 l 12127 713 l 12119 719 l 12113 727 l 12107 735 l 12101 745 l 12097 754 l 12093 765 l 12090 776 l 12088 788 l 12085 800 l 12083 814 l 12081 830 l 12080 846 l 12078 863 l 12076 881 l 12075 900 l 12074 919 l 12072 937 l 12070 954 l 12069 970 l 12067 986 l 12065 1000 l 12063 1013 l 12060 1023 l 12057 1033 l 12054 1043 l 12049 1052 l 12043 1062 l 12036 1072 l 12027 1083 l 12017 1094 l 12004 1106 l 11990 1119 l 11974 1132 l 11955 1146 l 11935 1161 l 11913 1177 l 11889 1194 l 11863 1213 l 11845 1225 l 11826 1238 l 11806 1251 l 11785 1266 l 11762 1281 l 11739 1297 l 11714 1314 l 11688 1331 l 11662 1349 l 11634 1368 l 11607 1387 l 11578 1406 l 11550 1425 l 11522 1444 l 11493 1463 l 11466 1482 l 11438 1501 l 11412 1519 l 11386 1536 l 11361 1553 l 11338 1569 l 11315 1584 l 11294 1599 l 11274 1612 l 11255 1625 l 11238 1638 l 11218 1651 l 11200 1664 l 11183 1676 l 11167 1689 l 11152 1701 l 11138 1713 l 11125 1725 l 11113 1738 l 11102 1751 l 11092 1765 l 11083 1780 l 11075 1795 l 11068 1812 l 11062 1829 l 11057 1847 l 11053 1867 l 11049 1887 l 11046 1909 l 11043 1933 l 11041 1957 l 11039 1984 l 11038 2013 l 11036 2035 l 11035 2059 l 11034 2084 l 11033 2110 l 11033 2138 l 11032 2167 l 11031 2197 l 11031 2229 l 11030 2262 l 11030 2296 l 11029 2330 l 11029 2366 l 11029 2402 l 11029 2438 l 11028 2475 l 11029 2512 l 11029 2548 l 11029 2584 l 11029 2620 l 11030 2654 l 11030 2688 l 11031 2721 l 11031 2753 l 11032 2783 l 11033 2812 l 11033 2840 l 11034 2866 l 11035 2891 l 11036 2915 l 11038 2938 l 11039 2969 l 11041 2998 l 11044 3024 l 11046 3049 l 11049 3072 l 11052 3092 l 11056 3111 l 11060 3128 l 11065 3143 l 11069 3156 l 11075 3168 l 11080 3178 l 11086 3186 l 11093 3193 l 11099 3198 l 11106 3202 l 11114 3206 l 11121 3208 l 11129 3211 l cp gs col0 s gr % Polyline n 12413 1738 m 12422 1740 l 12431 1742 l 12440 1745 l 12449 1749 l 12458 1753 l 12468 1759 l 12478 1766 l 12489 1775 l 12501 1785 l 12514 1797 l 12529 1810 l 12544 1825 l 12560 1841 l 12578 1860 l 12597 1879 l 12617 1901 l 12639 1924 l 12663 1950 l 12678 1966 l 12694 1984 l 12711 2002 l 12729 2022 l 12748 2042 l 12767 2063 l 12788 2085 l 12809 2109 l 12832 2132 l 12854 2157 l 12878 2182 l 12902 2208 l 12926 2234 l 12950 2261 l 12975 2288 l 13000 2314 l 13024 2341 l 13048 2367 l 13072 2393 l 13096 2418 l 13118 2443 l 13141 2466 l 13162 2490 l 13183 2512 l 13202 2533 l 13221 2553 l 13239 2573 l 13256 2591 l 13272 2609 l 13288 2625 l 13311 2651 l 13333 2674 l 13353 2696 l 13372 2716 l 13389 2735 l 13404 2752 l 13418 2768 l 13431 2783 l 13442 2797 l 13451 2810 l 13459 2821 l 13466 2832 l 13472 2842 l 13476 2851 l 13480 2860 l 13483 2869 l 13485 2878 l 13488 2888 l 13490 2900 l 13492 2914 l 13493 2930 l 13495 2946 l 13496 2963 l 13496 2981 l 13497 3000 l 13496 3019 l 13496 3037 l 13495 3054 l 13493 3070 l 13492 3086 l 13490 3100 l 13488 3113 l 13485 3124 l 13482 3135 l 13478 3146 l 13474 3155 l 13468 3165 l 13462 3173 l 13456 3181 l 13448 3187 l 13440 3193 l 13430 3199 l 13421 3203 l 13410 3207 l 13399 3210 l 13388 3213 l 13375 3215 l 13361 3217 l 13345 3218 l 13329 3220 l 13312 3221 l 13294 3221 l 13275 3222 l 13256 3221 l 13238 3221 l 13221 3220 l 13205 3218 l 13189 3217 l 13175 3215 l 13163 3213 l 13153 3210 l 13144 3208 l 13135 3205 l 13126 3201 l 13117 3197 l 13107 3191 l 13097 3184 l 13086 3175 l 13074 3165 l 13061 3153 l 13046 3140 l 13031 3125 l 13015 3109 l 12997 3090 l 12978 3071 l 12958 3049 l 12936 3026 l 12913 3000 l 12897 2984 l 12881 2966 l 12864 2948 l 12846 2928 l 12827 2908 l 12808 2887 l 12787 2865 l 12766 2841 l 12743 2818 l 12721 2793 l 12697 2768 l 12673 2742 l 12649 2716 l 12625 2689 l 12600 2662 l 12575 2636 l 12551 2609 l 12527 2583 l 12503 2557 l 12479 2532 l 12457 2507 l 12434 2484 l 12413 2460 l 12392 2438 l 12373 2417 l 12354 2397 l 12336 2377 l 12319 2359 l 12303 2341 l 12288 2325 l 12264 2299 l 12242 2276 l 12222 2254 l 12203 2234 l 12186 2215 l 12171 2198 l 12157 2182 l 12144 2167 l 12133 2153 l 12124 2140 l 12116 2129 l 12109 2118 l 12103 2108 l 12099 2099 l 12095 2090 l 12092 2081 l 12090 2072 l 12088 2063 l 12085 2050 l 12083 2036 l 12082 2020 l 12080 2004 l 12079 1987 l 12079 1969 l 12078 1950 l 12079 1931 l 12079 1913 l 12080 1896 l 12082 1880 l 12083 1864 l 12085 1850 l 12088 1838 l 12090 1826 l 12093 1815 l 12097 1804 l 12101 1795 l 12107 1785 l 12113 1777 l 12119 1769 l 12127 1763 l 12135 1757 l 12145 1751 l 12154 1747 l 12165 1743 l 12176 1740 l 12188 1738 l 12200 1735 l 12214 1733 l 12230 1732 l 12246 1730 l 12263 1729 l 12281 1729 l 12300 1728 l 12319 1729 l 12337 1729 l 12354 1730 l 12370 1732 l 12386 1733 l 12400 1735 l cp gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw n 10200 900 m 10200 1950 l gs col0 s gr % Polyline n 10200 900 m 13275 900 l 13275 3000 l 10200 3000 l 10200 1950 l 13275 1950 l gs col0 s gr % Polyline n 11250 900 m 11250 3000 l gs col0 s gr % Polyline n 12300 900 m 12300 3000 l gs col0 s gr % Polyline n 6375 900 m 6375 1950 l gs col0 s gr % Polyline n 6300 900 m 9450 900 l 9450 3000 l 6375 3000 l 6375 1950 l 9450 1950 l gs col0 s gr % Polyline n 7425 900 m 7425 3000 l gs col0 s gr % Polyline n 8475 900 m 8475 3000 l gs col0 s gr /Courier-iso ff 210.00 scf sf 600 1425 m gs 1 -1 sc (peritab) col0 sh gr /Courier-iso ff 210.00 scf sf 600 2025 m gs 1 -1 sc (cblknbr) col0 sh gr /Courier-iso ff 210.00 scf sf 600 2625 m gs 1 -1 sc (rangtab) col0 sh gr /Courier-iso ff 210.00 scf sf 600 3225 m gs 1 -1 sc (treetab) col0 sh gr /Courier-iso ff 210.00 scf sf 600 825 m gs 1 -1 sc (permtab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 2400 m 2400 2400 l 2400 2700 l 2100 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 2400 m 2700 2400 l 2700 2700 l 2400 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 2400 m 3600 2400 l 3600 2700 l 3300 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 2400 m 4500 2400 l 4500 2700 l 4200 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 2400 m 3000 2400 l 3000 2700 l 2700 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 2400 m 3300 2400 l 3300 2700 l 3000 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 600 m 2400 600 l 2400 900 l 2100 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 600 m 3300 600 l 3300 900 l 3000 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 600 m 3900 600 l 3900 900 l 3600 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 600 m 4200 600 l 4200 900 l 3900 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 600 m 4500 600 l 4500 900 l 4200 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 600 m 3000 600 l 3000 900 l 2700 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 1200 m 2400 1200 l 2400 1500 l 2100 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1200 m 2700 1200 l 2700 1500 l 2400 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 1200 m 3600 1200 l 3600 1500 l 3300 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 1200 m 3000 1200 l 3000 1500 l 2700 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 2400 m 4200 2400 l 4200 2700 l 3900 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3925 2640 m gs 1 -1 sc (13) col0 sh gr % Polyline n 4500 2400 m 4800 2400 l 4800 2700 l 4500 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3000 m 2400 3000 l 2400 3300 l 2100 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3000 m 3300 3000 l 3300 3300 l 3000 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3000 m 3600 3000 l 3600 3300 l 3300 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3000 m 3000 3000 l 3000 3300 l 2700 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 600 m 5100 600 l 5100 900 l 4800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 600 m 5400 600 l 5400 900 l 5100 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 2400 m 5100 2400 l 5100 2700 l 4800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 2400 m 5400 2400 l 5400 2700 l 5100 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 2400 m 5700 2400 l 5700 2700 l 5400 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 2425 840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3300 600 m 3600 600 l 3600 900 l 3300 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3325 840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 4500 600 m 4800 600 l 4800 900 l 4500 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 4525 840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 4500 1200 m 4800 1200 l 4800 1500 l 4500 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 1200 m 5100 1200 l 5100 1500 l 4800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 1200 m 4200 1200 l 4200 1500 l 3900 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 1200 m 3900 1200 l 3900 1500 l 3600 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 1200 m 5400 1200 l 5400 1500 l 5100 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 5125 1440 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3000 1200 m 3300 1200 l 3300 1500 l 3000 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3025 1440 m gs 1 -1 sc (11) col0 sh gr % Polyline n 4200 1200 m 4500 1200 l 4500 1500 l 4200 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 4225 1440 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3600 2400 m 3900 2400 l 3900 2700 l 3600 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3625 2640 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3600 3000 m 3900 3000 l 3900 3300 l 3600 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3625 3240 m gs 1 -1 sc (-1) col0 sh gr % Polyline n 3900 3000 m 4200 3000 l 4200 3300 l 3900 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 3000 m 4500 3000 l 4500 3300 l 4200 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 3000 m 4800 3000 l 4800 3300 l 4500 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 3000 m 5100 3000 l 5100 3300 l 4800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 3000 m 5400 3000 l 5400 3300 l 5100 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 12300 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11257 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11257 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10200 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10200 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11250 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 13282 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12307 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 13282 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 13282 893 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12307 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10207 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6375 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6375 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6375 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9450 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9450 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8475 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8475 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8475 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9450 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman-iso ff 240.00 scf sf 1900 2640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 2640 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2500 2640 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3400 2640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 2640 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3100 2640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 2040 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3100 840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3700 840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4000 840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4300 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 1440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2500 1440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3400 1440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 1440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2500 3240 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3400 3240 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4900 840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 5200 840 m gs 1 -1 sc (9) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 10150 3090 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 10150 990 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 11200 990 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 13232 3083 m gs 1 -1 sc (9) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 12257 2033 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 13232 2033 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 13232 983 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 12257 3083 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 10157 2033 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 6325 990 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 6325 2040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 7375 990 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 7375 2040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 6325 3090 m gs 1 -1 sc (9) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 9400 990 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 9400 2040 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 8425 990 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 8425 2040 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4600 1440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4900 1440 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4000 1440 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3700 1440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (9) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 9900 3150 m gs 1 -1 sc (1) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 9900 1050 m gs 1 -1 sc (2) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 9900 2325 m gs 1 -1 sc (3) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 12000 3300 m gs 1 -1 sc (4) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 12975 1200 m gs 1 -1 sc (5) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 11925 2250 m gs 1 -1 sc (6) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 10950 1725 m gs 1 -1 sc (7) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman-iso ff 240.00 scf sf 12170 990 m gs 1 -1 sc (10) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 11127 2033 m gs 1 -1 sc (11) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 11127 3083 m gs 1 -1 sc (12) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 7295 3090 m gs 1 -1 sc (10) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 8345 3090 m gs 1 -1 sc (11) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 9320 3090 m gs 1 -1 sc (12) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_orb.fig000066400000000000000000000314451514310134000264430ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 2400 2100 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 4 0 0 10 0 0 16 0.0000 4 165 120 1900 2640 1\001 -6 6 2100 2400 2400 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 2400 2400 2400 2400 2700 2100 2700 2100 2400 4 0 0 10 0 0 16 0.0000 4 150 120 2200 2640 2\001 -6 6 2400 2400 2700 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 2400 2700 2400 2700 2700 2400 2700 2400 2400 4 0 0 10 0 0 16 0.0000 4 150 120 2500 2640 4\001 -6 6 3300 2400 3600 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 2400 3600 2400 3600 2700 3300 2700 3300 2400 4 0 0 10 0 0 16 0.0000 4 150 120 3400 2640 8\001 -6 6 4200 2400 4500 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 2400 4500 2400 4500 2700 4200 2700 4200 2400 -6 6 2700 2400 3000 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 2400 3000 2400 3000 2700 2700 2700 2700 2400 4 0 0 10 0 0 16 0.0000 4 150 120 2800 2640 5\001 -6 6 3000 2400 3300 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 2400 3300 2400 3300 2700 3000 2700 3000 2400 4 0 0 10 0 0 16 0.0000 4 165 120 3100 2640 6\001 -6 6 1800 1800 2100 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 4 0 0 10 0 0 16 0.0000 4 150 120 1900 2040 7\001 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 150 120 1900 840 2\001 -6 6 2100 600 2400 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 600 2400 600 2400 900 2100 900 2100 600 4 0 0 10 0 0 16 0.0000 4 150 120 2200 840 3\001 -6 6 3000 600 3300 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 600 3300 600 3300 900 3000 900 3000 600 4 0 0 10 0 0 16 0.0000 4 150 120 3100 840 4\001 -6 6 3600 600 3900 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 600 3900 600 3900 900 3600 900 3600 600 4 0 0 10 0 0 16 0.0000 4 150 120 3700 840 8\001 -6 6 3900 600 4200 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 600 4200 600 4200 900 3900 900 3900 600 4 0 0 10 0 0 16 0.0000 4 150 120 4000 840 7\001 -6 6 4200 600 4500 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 600 4500 600 4500 900 4200 900 4200 600 4 0 0 10 0 0 16 0.0000 4 165 120 4300 840 1\001 -6 6 2700 600 3000 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 600 3000 600 3000 900 2700 900 2700 600 4 0 0 10 0 0 16 0.0000 4 165 120 2800 840 6\001 -6 6 2100 1200 2400 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 1200 2400 1200 2400 1500 2100 1500 2100 1200 4 0 0 10 0 0 16 0.0000 4 165 120 2200 1440 1\001 -6 6 2400 1200 2700 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1200 2700 1200 2700 1500 2400 1500 2400 1200 4 0 0 10 0 0 16 0.0000 4 150 120 2500 1440 2\001 -6 6 3300 1200 3600 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 1200 3600 1200 3600 1500 3300 1500 3300 1200 4 0 0 10 0 0 16 0.0000 4 150 120 3400 1440 4\001 -6 6 2700 1200 3000 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 1200 3000 1200 3000 1500 2700 1500 2700 1200 4 0 0 10 0 0 16 0.0000 4 150 120 2800 1440 5\001 -6 6 3900 2400 4200 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 2400 4200 2400 4200 2700 3900 2700 3900 2400 4 0 0 15 0 0 16 0.0000 4 165 240 3925 2640 13\001 -6 6 4500 2400 4800 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 2400 4800 2400 4800 2700 4500 2700 4500 2400 -6 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 10 0 0 16 0.0000 4 150 120 1900 3240 3\001 -6 6 2100 3000 2400 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3000 2400 3000 2400 3300 2100 3300 2100 3000 4 0 0 10 0 0 16 0.0000 4 150 120 2200 3240 3\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 10 0 0 16 0.0000 4 150 120 2500 3240 7\001 -6 6 3000 3000 3300 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3000 3300 3000 3300 3300 3000 3300 3000 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3100 3240 6\001 -6 6 3300 3000 3600 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3000 3600 3000 3600 3300 3300 3300 3300 3000 4 0 0 10 0 0 16 0.0000 4 150 120 3400 3240 7\001 -6 6 2700 3000 3000 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3000 3000 3000 3000 3300 2700 3300 2700 3000 4 0 0 10 0 0 16 0.0000 4 165 120 2800 3240 6\001 -6 6 4800 600 5100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 600 5100 600 5100 900 4800 900 4800 600 4 0 0 10 0 0 16 0.0000 4 150 120 4900 840 5\001 -6 6 5100 600 5400 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 600 5400 600 5400 900 5100 900 5100 600 4 0 0 10 0 0 16 0.0000 4 150 120 5200 840 9\001 -6 6 4800 2400 5100 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 2400 5100 2400 5100 2700 4800 2700 4800 2400 -6 6 5100 2400 5400 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 2400 5400 2400 5400 2700 5100 2700 5100 2400 -6 6 5400 2400 5700 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 2400 5700 2400 5700 2700 5400 2700 5400 2400 -6 6 12150 750 12450 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12300 900 150 150 12300 900 12450 900 4 0 0 8 0 0 16 0.0000 4 165 240 12170 990 10\001 -6 6 11100 1786 11414 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11257 1943 150 150 11257 1943 11407 1943 4 0 0 8 0 0 16 0.0000 4 165 240 11127 2033 11\001 -6 6 11100 2836 11414 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11257 2993 150 150 11257 2993 11407 2993 4 0 0 8 0 0 16 0.0000 4 165 240 11127 3083 12\001 -6 6 10050 2850 10350 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10200 3000 150 150 10200 3000 10350 3000 4 0 0 10 0 0 16 0.0000 4 165 120 10150 3090 1\001 -6 6 10050 750 10350 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10200 900 150 150 10200 900 10350 900 4 0 0 10 0 0 16 0.0000 4 150 120 10150 990 2\001 -6 6 11100 750 11400 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11250 900 150 150 11250 900 11400 900 4 0 0 10 0 0 16 0.0000 4 150 120 11200 990 3\001 -6 6 13125 2836 13439 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 13282 2993 150 150 13282 2993 13432 2993 4 0 0 10 0 0 16 0.0000 4 150 120 13232 3083 9\001 -6 6 12150 1786 12464 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12307 1943 150 150 12307 1943 12457 1943 4 0 0 10 0 0 16 0.0000 4 150 120 12257 2033 8\001 -6 6 13125 1786 13439 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 13282 1943 150 150 13282 1943 13432 1943 4 0 0 10 0 0 16 0.0000 4 150 120 13232 2033 7\001 -6 6 13125 736 13439 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 13282 893 150 150 13282 893 13432 893 4 0 0 10 0 0 16 0.0000 4 165 120 13232 983 6\001 -6 6 12150 2836 12464 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12307 2993 150 150 12307 2993 12457 2993 4 0 0 10 0 0 16 0.0000 4 150 120 12257 3083 5\001 -6 6 10050 1786 10364 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10207 1943 150 150 10207 1943 10357 1943 4 0 0 10 0 0 16 0.0000 4 150 120 10157 2033 4\001 -6 6 6225 750 6525 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6375 900 150 150 6375 900 6525 900 4 0 0 10 0 0 16 0.0000 4 165 120 6325 990 1\001 -6 6 6218 1793 6532 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6375 1950 150 150 6375 1950 6525 1950 4 0 0 10 0 0 16 0.0000 4 150 120 6325 2040 5\001 -6 6 7275 750 7575 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 900 150 150 7425 900 7575 900 4 0 0 10 0 0 16 0.0000 4 150 120 7375 990 2\001 -6 6 7268 1793 7582 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 1950 150 150 7425 1950 7575 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7375 2040 6\001 -6 6 6218 2843 6532 3157 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6375 3000 150 150 6375 3000 6525 3000 4 0 0 10 0 0 16 0.0000 4 150 120 6325 3090 9\001 -6 6 9293 743 9607 1057 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9450 900 150 150 9450 900 9600 900 4 0 0 10 0 0 16 0.0000 4 150 120 9400 990 4\001 -6 6 9293 1793 9607 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9450 1950 150 150 9450 1950 9600 1950 4 0 0 10 0 0 16 0.0000 4 150 120 9400 2040 8\001 -6 6 8325 750 8625 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8475 900 150 150 8475 900 8625 900 4 0 0 10 0 0 16 0.0000 4 150 120 8425 990 3\001 -6 6 8318 1793 8632 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8475 1950 150 150 8475 1950 8625 1950 4 0 0 10 0 0 16 0.0000 4 150 120 8425 2040 7\001 -6 6 7275 2850 7575 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 3000 150 150 7425 3000 7575 3000 4 0 0 8 0 0 16 0.0000 4 165 240 7295 3090 10\001 -6 6 8318 2843 8632 3157 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8475 3000 150 150 8475 3000 8625 3000 4 0 0 8 0 0 16 0.0000 4 165 240 8345 3090 11\001 -6 6 9293 2843 9607 3157 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9450 3000 150 150 9450 3000 9600 3000 4 0 0 8 0 0 16 0.0000 4 165 240 9320 3090 12\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 15 0 0 16 0.0000 4 165 240 2425 840 10\001 -6 6 3300 600 3600 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 600 3600 600 3600 900 3300 900 3300 600 4 0 0 15 0 0 16 0.0000 4 165 240 3325 840 11\001 -6 6 4500 600 4800 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 600 4800 600 4800 900 4500 900 4500 600 4 0 0 15 0 0 16 0.0000 4 165 240 4525 840 12\001 -6 6 4500 1200 4800 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 1200 4800 1200 4800 1500 4500 1500 4500 1200 4 0 0 10 0 0 16 0.0000 4 150 120 4600 1440 3\001 -6 6 4800 1200 5100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 1200 5100 1200 5100 1500 4800 1500 4800 1200 4 0 0 10 0 0 16 0.0000 4 165 120 4900 1440 6\001 -6 6 3900 1200 4200 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 1200 4200 1200 4200 1500 3900 1500 3900 1200 4 0 0 10 0 0 16 0.0000 4 150 120 4000 1440 7\001 -6 6 3600 1200 3900 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 1200 3900 1200 3900 1500 3600 1500 3600 1200 4 0 0 10 0 0 16 0.0000 4 150 120 3700 1440 8\001 -6 6 1800 1200 2100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 4 0 0 10 0 0 16 0.0000 4 150 120 1900 1440 9\001 -6 6 5100 1200 5400 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 1200 5400 1200 5400 1500 5100 1500 5100 1200 4 0 0 15 0 0 16 0.0000 4 165 240 5125 1440 10\001 -6 6 3000 1200 3300 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 1200 3300 1200 3300 1500 3000 1500 3000 1200 4 0 0 15 0 0 16 0.0000 4 165 240 3025 1440 11\001 -6 6 4200 1200 4500 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 1200 4500 1200 4500 1500 4200 1500 4200 1200 4 0 0 15 0 0 16 0.0000 4 165 240 4225 1440 12\001 -6 6 3600 2400 3900 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 2400 3900 2400 3900 2700 3600 2700 3600 2400 4 0 0 15 0 0 16 0.0000 4 165 240 3625 2640 10\001 -6 6 3600 3000 3900 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3000 3900 3000 3900 3300 3600 3300 3600 3000 4 0 0 15 0 0 16 0.0000 4 165 195 3625 3240 -1\001 -6 6 3900 3000 4200 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 3000 4200 3000 4200 3300 3900 3300 3900 3000 -6 6 4200 3000 4500 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 3000 4500 3000 4500 3300 4200 3300 4200 3000 -6 6 4500 3000 4800 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 3000 4800 3000 4800 3300 4500 3300 4500 3000 -6 6 4800 3000 5100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 3000 5100 3000 5100 3300 4800 3300 4800 3000 -6 6 5100 3000 5400 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 3000 5400 3000 5400 3300 5100 3300 5100 3000 -6 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 10425 2175 10425 1725 9975 1725 9975 2175 10425 2175 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 10200 900 10200 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 6 10200 900 13275 900 13275 3000 10200 3000 10200 1950 13275 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 11250 900 11250 3000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 12300 900 12300 3000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 6375 900 6375 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 6 6300 900 9450 900 9450 3000 6375 3000 6375 1950 9450 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 7425 900 7425 3000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 8475 900 8475 3000 3 1 0 1 0 7 50 -1 -1 0.000 0 0 0 16 11025 3150 11100 3225 11400 3225 11475 3150 11475 1800 11550 1725 12450 1125 12525 1050 12525 750 12450 675 12150 675 12075 750 12075 1050 12000 1125 11100 1725 11025 1800 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 3 1 0 1 0 7 50 -1 -1 0.000 0 0 0 12 12150 1725 12450 1725 12525 1800 13425 2775 13500 2850 13500 3150 13425 3225 13125 3225 13050 3150 12150 2175 12075 2100 12075 1800 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 4 0 0 20 0 12 14 0.0000 4 195 945 600 1425 peritab\001 4 0 0 20 0 12 14 0.0000 4 150 945 600 2025 cblknbr\001 4 0 0 20 0 12 14 0.0000 4 195 945 600 2625 rangtab\001 4 0 0 20 0 12 14 0.0000 4 150 945 600 3225 treetab\001 4 0 0 20 0 12 14 0.0000 4 195 945 600 825 permtab\001 4 0 0 10 0 2 16 0.0000 4 150 120 9900 3150 1\001 4 0 0 10 0 2 16 0.0000 4 150 120 9900 1050 2\001 4 0 0 10 0 2 16 0.0000 4 150 120 9900 2325 3\001 4 0 0 10 0 2 16 0.0000 4 150 120 12000 3300 4\001 4 0 0 10 0 2 16 0.0000 4 150 120 12975 1200 5\001 4 0 0 10 0 2 16 0.0000 4 165 120 11925 2250 6\001 4 0 0 10 0 2 16 0.0000 4 150 120 10950 1725 7\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_f_sepa.eps000066400000000000000000001414611514310134000266330ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Tue May 2 09:11:11 2006 %%For: pelegrin@portablepelegrin (Francois PELLEGRINI) %%BoundingBox: 0 0 1198 483 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 483 moveto 0 0 lineto 1198 0 lineto 1198 483 lineto closepath clip newpath -233.9 545.4 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 /Times-Roman ff 285.00 scf sf 7996 8289 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 8141 8325 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 300.00 scf sf 6900 8213 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 7045 8250 m gs 1 -1 sc (2) col0 sh gr % Ellipse 7.500 slw n 7575 8179 1025 409 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj 0 slc [15 45] 45 sd n 7933 7797 m 7933 7799 l 7932 7802 l 7930 7808 l 7927 7817 l 7923 7829 l 7918 7843 l 7911 7859 l 7904 7877 l 7895 7895 l 7884 7915 l 7872 7935 l 7857 7956 l 7839 7978 l 7818 8001 l 7793 8026 l 7763 8051 l 7729 8077 l 7696 8099 l 7664 8119 l 7634 8135 l 7608 8148 l 7586 8157 l 7568 8163 l 7553 8167 l 7540 8168 l 7529 8168 l 7519 8168 l 7509 8168 l 7498 8168 l 7485 8169 l 7469 8173 l 7449 8178 l 7426 8187 l 7398 8200 l 7365 8215 l 7329 8234 l 7292 8255 l 7252 8279 l 7215 8303 l 7183 8326 l 7154 8347 l 7128 8368 l 7106 8387 l 7085 8405 l 7067 8423 l 7050 8440 l 7035 8455 l 7022 8470 l 7010 8483 l 7001 8493 l 6994 8501 l 6990 8507 l 6987 8510 l 6986 8511 l gs col0 s gr [] 0 sd /Times-Roman ff 285.00 scf sf 8371 7164 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 8516 7200 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 300.00 scf sf 7275 7088 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 7420 7125 m gs 1 -1 sc (0) col0 sh gr % Ellipse n 7950 7054 1025 409 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 8308 6672 m 8308 6674 l 8307 6677 l 8305 6683 l 8302 6692 l 8298 6704 l 8293 6718 l 8286 6734 l 8279 6752 l 8270 6770 l 8259 6790 l 8247 6810 l 8232 6831 l 8214 6853 l 8193 6876 l 8168 6901 l 8138 6926 l 8104 6952 l 8071 6974 l 8039 6994 l 8009 7010 l 7983 7023 l 7961 7032 l 7943 7038 l 7928 7042 l 7915 7043 l 7904 7043 l 7894 7043 l 7884 7043 l 7873 7043 l 7860 7044 l 7844 7048 l 7824 7053 l 7801 7062 l 7773 7075 l 7740 7090 l 7704 7109 l 7667 7130 l 7627 7154 l 7590 7178 l 7558 7201 l 7529 7222 l 7503 7243 l 7481 7262 l 7460 7280 l 7442 7298 l 7425 7315 l 7410 7330 l 7397 7345 l 7385 7358 l 7376 7368 l 7369 7376 l 7365 7382 l 7362 7385 l 7361 7386 l gs col0 s gr [] 0 sd /Times-Roman ff 285.00 scf sf 5196 6027 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 5336 6062 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 285.00 scf sf 5475 6582 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 5614 6617 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 285.00 scf sf 4363 6339 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 4502 6374 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 285.00 scf sf 6344 6339 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 6483 6374 m gs 1 -1 sc (3) col0 sh gr % Ellipse n 5475 6235 1391 556 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 5961 5715 m 5961 5717 l 5960 5720 l 5958 5726 l 5955 5736 l 5951 5748 l 5945 5764 l 5939 5782 l 5931 5802 l 5921 5823 l 5910 5846 l 5898 5870 l 5883 5894 l 5866 5920 l 5846 5946 l 5822 5974 l 5795 6003 l 5763 6033 l 5726 6064 l 5684 6096 l 5647 6121 l 5610 6144 l 5575 6165 l 5543 6181 l 5515 6195 l 5490 6205 l 5469 6212 l 5451 6217 l 5436 6220 l 5423 6221 l 5411 6221 l 5400 6220 l 5388 6220 l 5376 6220 l 5362 6221 l 5347 6223 l 5328 6228 l 5305 6235 l 5279 6245 l 5249 6257 l 5214 6274 l 5175 6293 l 5134 6315 l 5092 6339 l 5047 6366 l 5005 6393 l 4967 6419 l 4932 6443 l 4901 6467 l 4873 6489 l 4847 6511 l 4824 6532 l 4802 6552 l 4782 6571 l 4763 6590 l 4746 6607 l 4731 6624 l 4717 6639 l 4706 6652 l 4696 6663 l 4688 6672 l 4683 6678 l 4679 6683 l 4677 6685 l 4676 6686 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 4780 5749 m 4780 5751 l 4779 5755 l 4777 5762 l 4775 5773 l 4773 5787 l 4771 5805 l 4768 5824 l 4766 5846 l 4765 5868 l 4764 5892 l 4765 5917 l 4767 5943 l 4771 5971 l 4778 6000 l 4787 6031 l 4799 6063 l 4815 6096 l 4834 6128 l 4854 6157 l 4874 6183 l 4895 6206 l 4916 6226 l 4938 6244 l 4959 6260 l 4980 6275 l 5000 6288 l 5020 6300 l 5038 6311 l 5055 6320 l 5068 6327 l 5079 6332 l 5086 6336 l 5090 6338 l 5092 6339 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5754 6027 m 5755 6028 l 5759 6030 l 5764 6034 l 5773 6040 l 5784 6048 l 5798 6058 l 5814 6070 l 5832 6084 l 5851 6098 l 5871 6115 l 5891 6132 l 5912 6151 l 5933 6171 l 5955 6193 l 5976 6217 l 5998 6244 l 6021 6273 l 6043 6305 l 6065 6339 l 6087 6378 l 6105 6415 l 6120 6450 l 6132 6483 l 6142 6513 l 6149 6542 l 6155 6569 l 6160 6595 l 6163 6619 l 6166 6642 l 6167 6663 l 6168 6681 l 6169 6696 l 6170 6707 l 6170 6715 l 6170 6719 l 6170 6721 l gs col0 s gr [] 0 sd % Ellipse n 13842 6644 260 104 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 13968 6553 m 13966 6554 l 13963 6557 l 13957 6561 l 13950 6567 l 13941 6573 l 13930 6580 l 13918 6588 l 13903 6598 l 13884 6609 l 13865 6620 l 13850 6628 l 13840 6633 l 13834 6636 l 13830 6638 l 13827 6639 l 13821 6642 l 13810 6647 l 13793 6655 l 13772 6666 l 13750 6677 l 13731 6687 l 13715 6695 l 13700 6702 l 13687 6708 l 13676 6714 l 13668 6718 l 13662 6721 l 13659 6722 l gs col0 s gr % Ellipse 7.500 slw n 13851 7390 270 108 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 13851 7282 m 13850 7283 l 13848 7284 l 13846 7286 l 13843 7289 l 13841 7294 l 13839 7299 l 13837 7306 l 13837 7316 l 13838 7329 l 13842 7346 l 13846 7360 l 13851 7368 l 13856 7374 l 13860 7379 l 13865 7388 l 13869 7403 l 13872 7423 l 13872 7443 l 13870 7458 l 13866 7470 l 13861 7480 l 13857 7488 l 13853 7494 l 13851 7497 l gs col0 s gr % Ellipse 7.500 slw n 13842 8069 260 104 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 13744 7978 m 13745 7978 l 13751 7978 l 13763 7979 l 13779 7981 l 13795 7985 l 13810 7990 l 13822 7998 l 13829 8010 l 13828 8024 l 13822 8035 l 13812 8042 l 13802 8046 l 13791 8051 l 13781 8059 l 13774 8072 l 13772 8091 l 13776 8107 l 13782 8120 l 13791 8132 l 13802 8143 l 13813 8152 l 13823 8160 l 13833 8166 l 13839 8170 l 13842 8172 l gs col0 s gr % Ellipse 7.500 slw n 13842 8744 260 104 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 13912 8653 m 13911 8653 l 13908 8654 l 13900 8656 l 13889 8659 l 13876 8663 l 13862 8668 l 13846 8675 l 13829 8685 l 13818 8692 l 13809 8698 l 13801 8702 l 13796 8704 l 13791 8705 l 13788 8705 l 13784 8705 l 13781 8707 l 13778 8710 l 13775 8716 l 13772 8726 l 13772 8738 l 13776 8755 l 13782 8771 l 13791 8786 l 13802 8801 l 13813 8815 l 13823 8827 l 13833 8837 l 13839 8844 l 13842 8847 l gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 14545 6735 m 14865 6735 l 14865 6615 l 14545 6615 l 14545 6615 l 14785 6675 l 14545 6735 l cp eoclip n 14325 6675 m 14850 6675 l gs col0 s gr gr % arrowhead 15.000 slw n 14545 6735 m 14785 6675 l 14545 6615 l 14545 6735 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14545 7410 m 14865 7410 l 14865 7290 l 14545 7290 l 14545 7290 l 14785 7350 l 14545 7410 l cp eoclip n 14325 7350 m 14850 7350 l gs col0 s gr gr % arrowhead 15.000 slw n 14545 7410 m 14785 7350 l 14545 7290 l 14545 7410 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14545 8760 m 14865 8760 l 14865 8640 l 14545 8640 l 14545 8640 l 14785 8700 l 14545 8760 l cp eoclip n 14325 8700 m 14850 8700 l gs col0 s gr gr % arrowhead 15.000 slw n 14545 8760 m 14785 8700 l 14545 8640 l 14545 8760 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 14545 8085 m 14865 8085 l 14865 7965 l 14545 7965 l 14545 7965 l 14785 8025 l 14545 8085 l cp eoclip n 14325 8025 m 14850 8025 l gs col0 s gr gr % arrowhead 15.000 slw n 14545 8085 m 14785 8025 l 14545 7965 l 14545 8085 l cp gs 0.00 setgray ef gr col0 s % Ellipse 7.500 slw n 15450 6721 439 175 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj 15.000 slw n 15663 6569 m 15661 6570 l 15657 6573 l 15651 6578 l 15642 6585 l 15632 6593 l 15620 6602 l 15606 6612 l 15589 6622 l 15570 6635 l 15547 6649 l 15521 6664 l 15498 6677 l 15477 6688 l 15460 6697 l 15448 6703 l 15440 6707 l 15435 6709 l 15430 6711 l 15426 6713 l 15421 6715 l 15412 6719 l 15399 6725 l 15381 6734 l 15358 6745 l 15332 6758 l 15305 6771 l 15281 6784 l 15259 6795 l 15239 6804 l 15221 6813 l 15205 6822 l 15190 6829 l 15176 6836 l 15164 6842 l 15155 6847 l 15148 6850 l 15144 6852 l 15142 6853 l gs col0 s gr % Ellipse 7.500 slw n 15461 7391 450 179 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15461 7211 m 15460 7212 l 15458 7213 l 15456 7215 l 15452 7219 l 15448 7223 l 15444 7229 l 15441 7236 l 15439 7245 l 15437 7257 l 15437 7272 l 15439 7290 l 15443 7310 l 15448 7328 l 15453 7342 l 15458 7352 l 15463 7359 l 15468 7365 l 15473 7371 l 15478 7378 l 15483 7389 l 15488 7404 l 15492 7424 l 15495 7447 l 15496 7474 l 15493 7496 l 15489 7514 l 15484 7529 l 15478 7542 l 15472 7553 l 15467 7562 l 15463 7567 l 15461 7570 l gs col0 s gr % Ellipse 7.500 slw n 15450 8071 439 175 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15284 7919 m 15285 7919 l 15288 7919 l 15296 7920 l 15308 7921 l 15324 7923 l 15343 7925 l 15361 7928 l 15379 7933 l 15395 7939 l 15410 7947 l 15421 7959 l 15428 7973 l 15429 7989 l 15424 8004 l 15416 8015 l 15406 8023 l 15394 8029 l 15382 8034 l 15370 8038 l 15358 8044 l 15347 8054 l 15339 8068 l 15333 8086 l 15332 8108 l 15336 8130 l 15345 8151 l 15357 8168 l 15370 8184 l 15385 8198 l 15400 8211 l 15416 8223 l 15429 8232 l 15440 8240 l 15447 8244 l 15450 8246 l gs col0 s gr % Ellipse 7.500 slw n 15450 8746 439 175 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 15568 8594 m 15566 8595 l 15561 8596 l 15552 8598 l 15542 8601 l 15529 8604 l 15515 8609 l 15500 8614 l 15484 8620 l 15467 8628 l 15448 8637 l 15428 8648 l 15412 8658 l 15398 8667 l 15386 8674 l 15377 8678 l 15370 8680 l 15364 8681 l 15358 8681 l 15354 8681 l 15349 8683 l 15344 8687 l 15340 8693 l 15335 8703 l 15332 8718 l 15332 8736 l 15336 8756 l 15342 8776 l 15351 8796 l 15362 8814 l 15374 8832 l 15387 8849 l 15400 8866 l 15414 8881 l 15426 8895 l 15436 8906 l 15443 8914 l 15448 8919 l 15450 8921 l gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 16270 6735 m 16590 6735 l 16590 6615 l 16270 6615 l 16270 6615 l 16510 6675 l 16270 6735 l cp eoclip n 16050 6675 m 16575 6675 l gs col0 s gr gr % arrowhead 15.000 slw n 16270 6735 m 16510 6675 l 16270 6615 l 16270 6735 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 16270 7410 m 16590 7410 l 16590 7290 l 16270 7290 l 16270 7290 l 16510 7350 l 16270 7410 l cp eoclip n 16050 7350 m 16575 7350 l gs col0 s gr gr % arrowhead 15.000 slw n 16270 7410 m 16510 7350 l 16270 7290 l 16270 7410 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 16270 8760 m 16590 8760 l 16590 8640 l 16270 8640 l 16270 8640 l 16510 8700 l 16270 8760 l cp eoclip n 16050 8700 m 16575 8700 l gs col0 s gr gr % arrowhead 15.000 slw n 16270 8760 m 16510 8700 l 16270 8640 l 16270 8760 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 16270 8085 m 16590 8085 l 16590 7965 l 16270 7965 l 16270 7965 l 16510 8025 l 16270 8085 l cp eoclip n 16050 8025 m 16575 8025 l gs col0 s gr gr % arrowhead 15.000 slw n 16270 8085 m 16510 8025 l 16270 7965 l 16270 8085 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 13120 6735 m 13440 6735 l 13440 6615 l 13120 6615 l 13120 6615 l 13360 6675 l 13120 6735 l cp eoclip n 12900 6675 m 13425 6675 l gs col0 s gr gr % arrowhead 15.000 slw n 13120 6735 m 13360 6675 l 13120 6615 l 13120 6735 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 13120 7410 m 13440 7410 l 13440 7290 l 13120 7290 l 13120 7290 l 13360 7350 l 13120 7410 l cp eoclip n 12900 7350 m 13425 7350 l gs col0 s gr gr % arrowhead 15.000 slw n 13120 7410 m 13360 7350 l 13120 7290 l 13120 7410 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 13120 8760 m 13440 8760 l 13440 8640 l 13120 8640 l 13120 8640 l 13360 8700 l 13120 8760 l cp eoclip n 12900 8700 m 13425 8700 l gs col0 s gr gr % arrowhead 15.000 slw n 13120 8760 m 13360 8700 l 13120 8640 l 13120 8760 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 13120 8085 m 13440 8085 l 13440 7965 l 13120 7965 l 13120 7965 l 13360 8025 l 13120 8085 l cp eoclip n 12900 8025 m 13425 8025 l gs col0 s gr gr % arrowhead 15.000 slw n 13120 8085 m 13360 8025 l 13120 7965 l 13120 8085 l cp gs 0.00 setgray ef gr col0 s % Ellipse 7.500 slw n 17437 8116 695 277 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj 15.000 slw n 17175 7875 m 17176 7875 l 17179 7875 l 17187 7876 l 17201 7877 l 17220 7878 l 17243 7881 l 17268 7884 l 17293 7888 l 17317 7894 l 17340 7902 l 17361 7911 l 17380 7924 l 17394 7940 l 17403 7960 l 17405 7979 l 17402 7998 l 17394 8014 l 17384 8027 l 17372 8037 l 17359 8045 l 17344 8051 l 17330 8056 l 17315 8062 l 17301 8068 l 17287 8077 l 17275 8089 l 17264 8105 l 17255 8125 l 17250 8148 l 17250 8175 l 17255 8202 l 17263 8227 l 17275 8250 l 17289 8270 l 17305 8289 l 17322 8307 l 17340 8323 l 17358 8338 l 17377 8352 l 17394 8364 l 17409 8375 l 17421 8383 l 17430 8388 l 17435 8392 l 17437 8393 l gs col0 s gr % Ellipse 7.500 slw n 17437 8791 695 277 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 17625 8550 m 17622 8551 l 17617 8552 l 17608 8554 l 17596 8557 l 17580 8561 l 17563 8566 l 17544 8572 l 17524 8578 l 17503 8586 l 17480 8595 l 17456 8606 l 17430 8620 l 17403 8635 l 17383 8648 l 17364 8659 l 17348 8669 l 17335 8677 l 17323 8682 l 17314 8685 l 17306 8687 l 17299 8687 l 17292 8688 l 17286 8688 l 17281 8689 l 17275 8692 l 17269 8697 l 17263 8705 l 17258 8717 l 17253 8733 l 17250 8752 l 17250 8775 l 17254 8800 l 17261 8825 l 17271 8849 l 17282 8873 l 17296 8896 l 17310 8918 l 17326 8939 l 17342 8960 l 17358 8980 l 17375 9000 l 17390 9017 l 17404 9033 l 17416 9046 l 17425 9056 l 17432 9062 l 17435 9066 l 17437 9068 l gs col0 s gr % Ellipse 7.500 slw n 17437 7441 695 277 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 17437 7163 m 17436 7164 l 17434 7165 l 17431 7167 l 17427 7171 l 17422 7176 l 17417 7182 l 17412 7190 l 17408 7199 l 17404 7210 l 17401 7223 l 17400 7240 l 17400 7261 l 17403 7285 l 17407 7308 l 17412 7330 l 17418 7349 l 17424 7365 l 17431 7377 l 17436 7387 l 17442 7394 l 17448 7401 l 17454 7407 l 17460 7415 l 17465 7425 l 17471 7438 l 17477 7455 l 17482 7476 l 17487 7501 l 17490 7528 l 17491 7558 l 17490 7585 l 17487 7608 l 17482 7628 l 17477 7646 l 17470 7661 l 17463 7675 l 17457 7688 l 17450 7699 l 17445 7707 l 17441 7713 l 17438 7716 l 17437 7718 l gs col0 s gr % Ellipse 7.500 slw n 17437 6766 695 277 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 17775 6525 m 17774 6526 l 17771 6528 l 17766 6532 l 17759 6537 l 17750 6545 l 17739 6553 l 17726 6563 l 17711 6573 l 17696 6584 l 17678 6596 l 17658 6609 l 17636 6623 l 17611 6639 l 17582 6656 l 17550 6675 l 17521 6691 l 17494 6706 l 17470 6719 l 17451 6729 l 17436 6736 l 17425 6742 l 17417 6746 l 17411 6748 l 17406 6750 l 17401 6752 l 17395 6754 l 17387 6758 l 17375 6764 l 17359 6771 l 17338 6781 l 17313 6794 l 17283 6809 l 17250 6825 l 17217 6841 l 17186 6857 l 17157 6872 l 17130 6885 l 17106 6897 l 17084 6908 l 17063 6919 l 17043 6928 l 17025 6938 l 17008 6946 l 16993 6954 l 16979 6960 l 16968 6966 l 16960 6970 l 16955 6973 l 16951 6974 l 16950 6975 l gs col0 s gr % Ellipse 7.500 slw n 10375 6678 683 273 0 360 DrawEllipse gs col0 s gr /Times-Roman ff 300.00 scf sf 10200 6749 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 10345 6786 m gs 1 -1 sc (0) col0 sh gr % Ellipse n 10375 7353 683 273 0 360 DrawEllipse gs col0 s gr /Times-Roman ff 300.00 scf sf 10200 7424 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 10345 7461 m gs 1 -1 sc (1) col0 sh gr % Ellipse n 10375 8028 683 273 0 360 DrawEllipse gs col0 s gr /Times-Roman ff 300.00 scf sf 10200 8099 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 10345 8136 m gs 1 -1 sc (2) col0 sh gr % Ellipse n 10375 8703 683 273 0 360 DrawEllipse gs col0 s gr /Times-Roman ff 300.00 scf sf 10200 8774 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 165.00 scf sf 10345 8811 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 435.00 scf sf 5681 3860 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 270.00 scf sf 5896 3914 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 435.00 scf sf 6113 4723 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 270.00 scf sf 6329 4777 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 435.00 scf sf 4386 4345 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 270.00 scf sf 4601 4399 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 435.00 scf sf 7462 4345 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 270.00 scf sf 7677 4399 m gs 1 -1 sc (3) col0 sh gr % Ellipse n 6113 4183 2158 863 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 6868 3375 m 6868 3376 l 6867 3379 l 6866 3384 l 6863 3391 l 6860 3401 l 6856 3414 l 6851 3430 l 6844 3449 l 6836 3470 l 6827 3493 l 6817 3517 l 6805 3544 l 6792 3571 l 6778 3599 l 6762 3628 l 6744 3657 l 6723 3687 l 6700 3719 l 6674 3751 l 6645 3785 l 6612 3819 l 6574 3855 l 6533 3892 l 6486 3930 l 6436 3968 l 6390 4000 l 6344 4029 l 6300 4056 l 6257 4080 l 6218 4101 l 6182 4118 l 6150 4132 l 6122 4142 l 6097 4150 l 6075 4156 l 6056 4159 l 6039 4161 l 6024 4162 l 6009 4162 l 5995 4161 l 5982 4160 l 5967 4160 l 5951 4161 l 5933 4162 l 5914 4166 l 5891 4171 l 5864 4178 l 5834 4189 l 5800 4202 l 5762 4218 l 5719 4238 l 5673 4261 l 5623 4287 l 5571 4315 l 5519 4345 l 5464 4378 l 5412 4411 l 5363 4443 l 5317 4475 l 5275 4505 l 5236 4534 l 5200 4562 l 5167 4589 l 5136 4615 l 5107 4640 l 5080 4665 l 5055 4689 l 5031 4712 l 5008 4735 l 4987 4756 l 4968 4777 l 4950 4796 l 4934 4814 l 4919 4830 l 4907 4844 l 4896 4856 l 4888 4866 l 4882 4874 l 4877 4879 l 4874 4882 l 4873 4884 l 4872 4885 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5033 3429 m 5033 3431 l 5032 3434 l 5031 3441 l 5029 3451 l 5026 3465 l 5023 3482 l 5020 3503 l 5017 3526 l 5014 3552 l 5011 3579 l 5009 3608 l 5008 3638 l 5008 3669 l 5010 3701 l 5013 3734 l 5018 3769 l 5026 3806 l 5036 3844 l 5050 3884 l 5067 3926 l 5087 3968 l 5110 4009 l 5136 4047 l 5162 4081 l 5189 4113 l 5215 4141 l 5242 4167 l 5269 4190 l 5296 4211 l 5323 4231 l 5349 4249 l 5376 4266 l 5401 4281 l 5425 4295 l 5447 4308 l 5467 4318 l 5484 4327 l 5497 4334 l 5507 4339 l 5514 4342 l 5517 4344 l 5519 4345 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6544 3860 m 6545 3861 l 6547 3862 l 6552 3865 l 6559 3870 l 6568 3876 l 6580 3885 l 6594 3895 l 6611 3907 l 6630 3921 l 6651 3936 l 6673 3953 l 6696 3971 l 6720 3990 l 6744 4011 l 6769 4032 l 6794 4055 l 6819 4079 l 6845 4105 l 6871 4132 l 6897 4162 l 6924 4193 l 6951 4228 l 6978 4265 l 7004 4304 l 7030 4345 l 7056 4390 l 7079 4434 l 7099 4477 l 7116 4517 l 7130 4556 l 7142 4592 l 7153 4627 l 7161 4660 l 7168 4691 l 7174 4722 l 7178 4751 l 7182 4780 l 7185 4806 l 7187 4832 l 7189 4855 l 7190 4875 l 7191 4893 l 7191 4908 l 7192 4920 l 7192 4928 l 7192 4934 l 7192 4937 l 7192 4938 l gs col0 s gr [] 0 sd % Ellipse n 19875 7011 1024 407 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 20233 6597 m 20233 6599 l 20232 6602 l 20230 6608 l 20227 6617 l 20223 6629 l 20218 6643 l 20211 6659 l 20204 6677 l 20195 6695 l 20184 6715 l 20172 6735 l 20157 6756 l 20139 6778 l 20118 6801 l 20093 6826 l 20063 6851 l 20029 6877 l 19996 6899 l 19964 6919 l 19934 6935 l 19908 6948 l 19886 6957 l 19868 6963 l 19853 6967 l 19840 6968 l 19829 6968 l 19819 6968 l 19809 6968 l 19798 6968 l 19785 6969 l 19769 6973 l 19749 6978 l 19726 6987 l 19698 7000 l 19665 7015 l 19629 7034 l 19592 7055 l 19552 7079 l 19515 7103 l 19483 7126 l 19454 7147 l 19428 7168 l 19406 7187 l 19385 7205 l 19367 7223 l 19350 7240 l 19335 7255 l 19322 7270 l 19310 7283 l 19301 7293 l 19294 7301 l 19290 7307 l 19287 7310 l 19286 7311 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 19875 6602 m 19874 6603 l 19872 6604 l 19869 6607 l 19864 6610 l 19858 6616 l 19852 6622 l 19845 6630 l 19839 6640 l 19833 6651 l 19828 6664 l 19823 6680 l 19821 6699 l 19820 6722 l 19821 6750 l 19824 6782 l 19829 6812 l 19836 6842 l 19844 6868 l 19852 6890 l 19860 6909 l 19868 6923 l 19875 6935 l 19883 6944 l 19891 6953 l 19898 6961 l 19906 6971 l 19914 6983 l 19921 6999 l 19929 7018 l 19936 7043 l 19943 7072 l 19949 7105 l 19953 7140 l 19955 7179 l 19954 7214 l 19950 7245 l 19945 7272 l 19939 7297 l 19931 7318 l 19923 7338 l 19914 7356 l 19905 7372 l 19897 7386 l 19889 7398 l 19883 7407 l 19879 7413 l 19876 7416 l 19875 7418 l gs col0 s gr % Ellipse 7.500 slw n 20118 8199 1042 416 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 20458 7797 m 20458 7799 l 20457 7802 l 20455 7808 l 20452 7817 l 20448 7829 l 20443 7843 l 20436 7859 l 20429 7877 l 20420 7895 l 20409 7915 l 20397 7935 l 20382 7956 l 20364 7978 l 20343 8001 l 20318 8026 l 20288 8051 l 20254 8077 l 20221 8099 l 20189 8119 l 20159 8135 l 20133 8148 l 20111 8157 l 20093 8163 l 20078 8167 l 20065 8168 l 20054 8168 l 20044 8168 l 20034 8168 l 20023 8168 l 20010 8169 l 19994 8173 l 19974 8178 l 19951 8187 l 19923 8200 l 19890 8215 l 19854 8234 l 19817 8255 l 19777 8279 l 19740 8303 l 19708 8326 l 19679 8347 l 19653 8368 l 19631 8387 l 19610 8405 l 19592 8423 l 19575 8440 l 19560 8455 l 19547 8470 l 19535 8483 l 19526 8493 l 19519 8501 l 19515 8507 l 19512 8510 l 19511 8511 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 20400 7838 m 20398 7838 l 20394 7839 l 20387 7841 l 20377 7844 l 20363 7847 l 20347 7851 l 20328 7856 l 20307 7862 l 20285 7869 l 20262 7876 l 20238 7884 l 20213 7893 l 20187 7904 l 20159 7916 l 20130 7931 l 20099 7947 l 20067 7965 l 20040 7982 l 20014 7998 l 19992 8012 l 19972 8023 l 19956 8032 l 19941 8037 l 19929 8041 l 19919 8043 l 19909 8044 l 19901 8044 l 19893 8044 l 19885 8046 l 19877 8049 l 19869 8055 l 19861 8064 l 19853 8077 l 19846 8094 l 19840 8117 l 19837 8144 l 19837 8175 l 19841 8205 l 19849 8236 l 19860 8266 l 19873 8296 l 19887 8325 l 19904 8353 l 19921 8380 l 19940 8407 l 19959 8433 l 19980 8459 l 20000 8483 l 20020 8507 l 20039 8529 l 20058 8550 l 20074 8568 l 20088 8583 l 20099 8595 l 20108 8604 l 20113 8610 l 20117 8614 l 20118 8615 l gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 9248 6816 m 9555 6728 l 9522 6613 l 9215 6701 l 9215 6701 l 9463 6693 l 9248 6816 l cp eoclip n 9000 6825 m 9525 6675 l gs col0 s gr gr % arrowhead 15.000 slw n 9248 6816 m 9463 6693 l 9215 6701 l 9248 6816 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 9214 7366 m 9531 7411 l 9548 7292 l 9231 7247 l 9231 7247 l 9461 7341 l 9214 7366 l cp eoclip n 9000 7275 m 9525 7350 l gs col0 s gr gr % arrowhead 15.000 slw n 9214 7366 m 9461 7341 l 9231 7247 l 9214 7366 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 9153 8114 m 9470 8083 l 9458 7963 l 9141 7995 l 9141 7995 l 9386 8031 l 9153 8114 l cp eoclip n 8700 8100 m 9450 8025 l gs col0 s gr gr % arrowhead 15.000 slw n 9153 8114 m 9386 8031 l 9141 7995 l 9153 8114 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 9139 8629 m 9454 8686 l 9475 8568 l 9160 8511 l 9160 8511 l 9386 8613 l 9139 8629 l cp eoclip n 8625 8475 m 9450 8625 l gs col0 s gr gr % arrowhead 15.000 slw n 9139 8629 m 9386 8613 l 9160 8511 l 9139 8629 l cp gs 0.00 setgray ef gr col0 s /Times-Roman ff 600.00 scf sf 9600 1875 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 9900 1950 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 600.00 scf sf 10200 3075 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 10500 3150 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 600.00 scf sf 7800 2550 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 8100 2625 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 600.00 scf sf 12075 2550 m gs 1 -1 sc (P) col0 sh gr /Times-Roman ff 360.00 scf sf 12375 2625 m gs 1 -1 sc (3) col0 sh gr % Ellipse 7.500 slw n 10200 2325 3000 1200 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj [15 45] 45 sd n 11250 1200 m 11250 1201 l 11249 1203 l 11248 1208 l 11246 1215 l 11243 1225 l 11239 1237 l 11234 1253 l 11227 1272 l 11220 1294 l 11211 1318 l 11201 1344 l 11190 1373 l 11177 1403 l 11163 1434 l 11148 1467 l 11131 1501 l 11112 1535 l 11091 1570 l 11068 1606 l 11043 1643 l 11015 1681 l 10984 1720 l 10949 1760 l 10910 1802 l 10867 1845 l 10820 1889 l 10768 1934 l 10711 1980 l 10650 2025 l 10597 2062 l 10544 2097 l 10491 2130 l 10440 2160 l 10392 2186 l 10347 2210 l 10305 2230 l 10267 2247 l 10233 2261 l 10202 2272 l 10174 2280 l 10149 2287 l 10126 2291 l 10106 2293 l 10087 2295 l 10070 2295 l 10054 2294 l 10037 2294 l 10021 2293 l 10005 2293 l 9987 2293 l 9968 2294 l 9947 2296 l 9924 2300 l 9897 2306 l 9868 2314 l 9835 2325 l 9798 2338 l 9757 2355 l 9712 2374 l 9664 2396 l 9611 2422 l 9555 2450 l 9496 2482 l 9436 2515 l 9375 2550 l 9312 2588 l 9251 2626 l 9193 2663 l 9138 2699 l 9087 2735 l 9039 2770 l 8994 2803 l 8952 2835 l 8912 2867 l 8875 2897 l 8840 2927 l 8807 2956 l 8776 2984 l 8746 3012 l 8717 3039 l 8690 3066 l 8665 3091 l 8641 3116 l 8618 3140 l 8596 3163 l 8576 3185 l 8558 3205 l 8542 3223 l 8527 3239 l 8515 3254 l 8504 3266 l 8495 3276 l 8488 3285 l 8483 3291 l 8479 3295 l 8477 3298 l 8476 3299 l 8475 3300 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8700 1275 m 8700 1276 l 8699 1280 l 8698 1285 l 8696 1295 l 8694 1307 l 8691 1323 l 8687 1343 l 8684 1366 l 8680 1392 l 8676 1421 l 8673 1451 l 8670 1484 l 8667 1517 l 8666 1552 l 8665 1589 l 8666 1626 l 8668 1664 l 8672 1704 l 8679 1745 l 8687 1787 l 8698 1832 l 8712 1878 l 8730 1926 l 8751 1976 l 8775 2025 l 8800 2070 l 8827 2112 l 8856 2152 l 8884 2190 l 8913 2224 l 8943 2255 l 8972 2284 l 9001 2311 l 9031 2336 l 9060 2360 l 9089 2382 l 9118 2402 l 9147 2422 l 9176 2440 l 9204 2457 l 9230 2473 l 9256 2487 l 9279 2500 l 9301 2512 l 9320 2522 l 9336 2530 l 9349 2537 l 9359 2542 l 9367 2546 l 9371 2548 l 9374 2549 l 9375 2550 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 10800 1875 m 10801 1876 l 10803 1877 l 10807 1880 l 10814 1884 l 10823 1890 l 10834 1898 l 10849 1909 l 10866 1921 l 10885 1935 l 10907 1951 l 10931 1968 l 10956 1987 l 10983 2008 l 11011 2030 l 11040 2053 l 11069 2077 l 11098 2102 l 11128 2129 l 11159 2157 l 11189 2187 l 11220 2218 l 11251 2251 l 11283 2286 l 11315 2324 l 11347 2364 l 11380 2407 l 11412 2453 l 11444 2501 l 11475 2550 l 11506 2604 l 11534 2657 l 11559 2708 l 11581 2758 l 11600 2805 l 11617 2850 l 11631 2894 l 11643 2935 l 11654 2975 l 11663 3013 l 11670 3050 l 11676 3086 l 11682 3121 l 11686 3155 l 11689 3187 l 11692 3217 l 11695 3246 l 11696 3272 l 11698 3295 l 11698 3316 l 11699 3333 l 11700 3348 l 11700 3358 l 11700 3366 l 11700 3371 l 11700 3374 l 11700 3375 l gs col0 s gr [] 0 sd % Ellipse n 21638 4258 2159 863 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 22393 3449 m 22393 3450 l 22392 3453 l 22391 3458 l 22388 3465 l 22385 3475 l 22381 3488 l 22376 3504 l 22369 3523 l 22361 3544 l 22352 3567 l 22342 3591 l 22330 3617 l 22317 3645 l 22303 3673 l 22287 3701 l 22269 3731 l 22248 3761 l 22225 3793 l 22199 3825 l 22170 3858 l 22137 3893 l 22099 3929 l 22058 3966 l 22011 4004 l 21961 4042 l 21915 4074 l 21869 4103 l 21825 4131 l 21782 4154 l 21743 4175 l 21707 4192 l 21675 4206 l 21647 4217 l 21622 4225 l 21600 4230 l 21581 4234 l 21564 4236 l 21549 4236 l 21534 4236 l 21520 4235 l 21507 4235 l 21492 4235 l 21476 4235 l 21459 4237 l 21439 4240 l 21416 4246 l 21389 4253 l 21359 4264 l 21325 4277 l 21287 4293 l 21244 4313 l 21198 4336 l 21148 4362 l 21096 4390 l 21044 4420 l 20989 4453 l 20937 4486 l 20887 4518 l 20842 4549 l 20800 4580 l 20761 4609 l 20725 4636 l 20692 4663 l 20661 4689 l 20632 4715 l 20605 4739 l 20579 4763 l 20555 4787 l 20533 4809 l 20512 4831 l 20492 4851 l 20474 4871 l 20458 4888 l 20443 4905 l 20431 4919 l 20420 4930 l 20412 4940 l 20406 4948 l 20401 4953 l 20398 4956 l 20397 4958 l 20396 4959 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 20558 3503 m 20558 3505 l 20557 3508 l 20556 3515 l 20554 3525 l 20551 3539 l 20548 3556 l 20545 3577 l 20542 3600 l 20539 3625 l 20536 3653 l 20534 3682 l 20533 3712 l 20533 3743 l 20535 3775 l 20538 3808 l 20543 3843 l 20551 3880 l 20561 3918 l 20575 3958 l 20592 4000 l 20612 4042 l 20635 4083 l 20661 4121 l 20687 4156 l 20714 4187 l 20740 4216 l 20767 4241 l 20794 4265 l 20821 4286 l 20848 4306 l 20874 4324 l 20901 4341 l 20926 4356 l 20950 4370 l 20972 4383 l 20992 4393 l 21009 4402 l 21022 4409 l 21032 4414 l 21039 4417 l 21042 4419 l 21044 4420 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 22069 3934 m 22070 3935 l 22072 3936 l 22077 3939 l 22084 3944 l 22093 3950 l 22105 3959 l 22119 3969 l 22136 3981 l 22155 3995 l 22176 4011 l 22198 4027 l 22221 4045 l 22245 4065 l 22269 4085 l 22294 4107 l 22319 4129 l 22344 4153 l 22370 4179 l 22396 4207 l 22422 4236 l 22449 4268 l 22476 4303 l 22503 4340 l 22529 4379 l 22555 4420 l 22581 4465 l 22604 4509 l 22624 4552 l 22641 4592 l 22655 4631 l 22667 4667 l 22678 4702 l 22686 4735 l 22693 4767 l 22699 4797 l 22703 4827 l 22707 4855 l 22710 4882 l 22712 4907 l 22714 4930 l 22715 4950 l 22716 4968 l 22716 4983 l 22717 4995 l 22717 5003 l 22717 5009 l 22717 5012 l 22717 5013 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 21638 3395 m 21637 3396 l 21635 3397 l 21632 3399 l 21628 3402 l 21622 3407 l 21614 3414 l 21605 3421 l 21596 3431 l 21586 3442 l 21576 3454 l 21566 3468 l 21556 3484 l 21547 3502 l 21539 3523 l 21532 3546 l 21527 3573 l 21523 3603 l 21521 3638 l 21521 3678 l 21524 3723 l 21530 3773 l 21537 3814 l 21545 3855 l 21554 3895 l 21564 3932 l 21574 3965 l 21585 3995 l 21596 4022 l 21607 4045 l 21617 4064 l 21628 4081 l 21638 4096 l 21649 4109 l 21659 4121 l 21669 4133 l 21679 4144 l 21689 4156 l 21699 4170 l 21710 4185 l 21720 4203 l 21730 4224 l 21741 4249 l 21751 4277 l 21761 4310 l 21771 4347 l 21780 4388 l 21787 4433 l 21794 4480 l 21799 4528 l 21802 4583 l 21802 4636 l 21800 4685 l 21796 4730 l 21790 4771 l 21783 4809 l 21774 4844 l 21765 4877 l 21754 4907 l 21743 4936 l 21731 4963 l 21719 4988 l 21706 5011 l 21694 5033 l 21683 5053 l 21672 5070 l 21663 5085 l 21655 5097 l 21648 5106 l 21644 5113 l 21640 5118 l 21639 5120 l 21638 5121 l gs col0 s gr % Ellipse 7.500 slw n 22373 6375 1412 565 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 22867 5846 m 22867 5848 l 22866 5851 l 22864 5858 l 22861 5867 l 22856 5880 l 22851 5896 l 22844 5914 l 22836 5934 l 22826 5956 l 22815 5979 l 22802 6004 l 22787 6029 l 22769 6054 l 22749 6081 l 22725 6110 l 22697 6139 l 22664 6170 l 22626 6202 l 22584 6234 l 22547 6260 l 22509 6283 l 22474 6304 l 22441 6321 l 22413 6335 l 22388 6345 l 22366 6352 l 22348 6357 l 22333 6360 l 22319 6361 l 22307 6361 l 22296 6360 l 22284 6360 l 22272 6360 l 22258 6361 l 22242 6363 l 22223 6368 l 22201 6375 l 22174 6385 l 22143 6398 l 22108 6415 l 22069 6434 l 22027 6457 l 21984 6481 l 21938 6508 l 21896 6536 l 21857 6562 l 21822 6587 l 21790 6611 l 21761 6634 l 21735 6656 l 21711 6677 l 21689 6697 l 21668 6717 l 21649 6736 l 21632 6754 l 21616 6771 l 21602 6786 l 21590 6799 l 21580 6811 l 21572 6820 l 21567 6826 l 21563 6830 l 21561 6833 l 21560 6834 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 21666 5881 m 21666 5883 l 21665 5887 l 21663 5895 l 21661 5906 l 21659 5920 l 21657 5938 l 21654 5957 l 21652 5979 l 21650 6002 l 21650 6027 l 21651 6052 l 21653 6079 l 21657 6106 l 21664 6136 l 21673 6167 l 21686 6200 l 21702 6234 l 21721 6266 l 21741 6296 l 21763 6322 l 21784 6346 l 21805 6366 l 21827 6384 l 21848 6401 l 21870 6416 l 21890 6429 l 21911 6441 l 21929 6452 l 21946 6461 l 21960 6469 l 21971 6474 l 21978 6478 l 21982 6480 l 21984 6481 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 22655 6163 m 22657 6164 l 22660 6166 l 22666 6170 l 22674 6176 l 22686 6185 l 22700 6195 l 22717 6207 l 22735 6221 l 22754 6236 l 22775 6252 l 22796 6270 l 22817 6289 l 22838 6310 l 22860 6332 l 22882 6357 l 22905 6384 l 22928 6414 l 22951 6446 l 22973 6481 l 22993 6516 l 23010 6551 l 23025 6583 l 23037 6614 l 23047 6643 l 23054 6670 l 23061 6695 l 23066 6720 l 23069 6743 l 23072 6765 l 23075 6786 l 23076 6806 l 23077 6823 l 23078 6838 l 23079 6849 l 23079 6858 l 23079 6864 l 23079 6867 l 23079 6869 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 22373 5810 m 22372 5810 l 22371 5811 l 22368 5813 l 22364 5816 l 22359 5820 l 22353 5826 l 22347 5832 l 22339 5840 l 22332 5849 l 22325 5859 l 22318 5871 l 22312 5884 l 22306 5900 l 22302 5918 l 22298 5938 l 22296 5962 l 22296 5990 l 22298 6022 l 22302 6058 l 22308 6092 l 22315 6126 l 22323 6158 l 22332 6186 l 22341 6210 l 22350 6231 l 22358 6248 l 22367 6262 l 22376 6274 l 22384 6284 l 22393 6293 l 22401 6303 l 22410 6313 l 22418 6326 l 22427 6341 l 22435 6359 l 22444 6381 l 22452 6407 l 22460 6438 l 22468 6473 l 22474 6512 l 22478 6552 l 22480 6595 l 22480 6636 l 22477 6673 l 22473 6706 l 22468 6736 l 22461 6763 l 22453 6789 l 22444 6812 l 22435 6833 l 22426 6853 l 22416 6871 l 22407 6888 l 22398 6902 l 22390 6914 l 22384 6924 l 22379 6931 l 22376 6936 l 22374 6939 l 22373 6940 l gs col0 s gr % Ellipse 7.500 slw n 17550 2325 3000 1200 0 360 DrawEllipse gs col0 s gr % Polyline [15 45] 45 sd n 18600 1200 m 18600 1201 l 18599 1203 l 18598 1208 l 18596 1215 l 18593 1225 l 18589 1237 l 18584 1253 l 18577 1272 l 18570 1294 l 18561 1318 l 18551 1344 l 18540 1373 l 18527 1403 l 18513 1434 l 18498 1467 l 18481 1501 l 18462 1535 l 18441 1570 l 18418 1606 l 18393 1643 l 18365 1681 l 18334 1720 l 18299 1760 l 18260 1802 l 18217 1845 l 18170 1889 l 18118 1934 l 18061 1980 l 18000 2025 l 17947 2062 l 17894 2097 l 17841 2130 l 17790 2160 l 17742 2186 l 17697 2210 l 17655 2230 l 17617 2247 l 17583 2261 l 17552 2272 l 17524 2280 l 17499 2287 l 17476 2291 l 17456 2293 l 17437 2295 l 17420 2295 l 17404 2294 l 17387 2294 l 17371 2293 l 17355 2293 l 17337 2293 l 17318 2294 l 17297 2296 l 17274 2300 l 17247 2306 l 17218 2314 l 17185 2325 l 17148 2338 l 17107 2355 l 17062 2374 l 17014 2396 l 16961 2422 l 16905 2450 l 16846 2482 l 16786 2515 l 16725 2550 l 16662 2588 l 16601 2626 l 16543 2663 l 16488 2699 l 16437 2735 l 16389 2770 l 16344 2803 l 16302 2835 l 16262 2867 l 16225 2897 l 16190 2927 l 16157 2956 l 16126 2984 l 16096 3012 l 16067 3039 l 16040 3066 l 16015 3091 l 15991 3116 l 15968 3140 l 15946 3163 l 15926 3185 l 15908 3205 l 15892 3223 l 15877 3239 l 15865 3254 l 15854 3266 l 15845 3276 l 15838 3285 l 15833 3291 l 15829 3295 l 15827 3298 l 15826 3299 l 15825 3300 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 16050 1275 m 16050 1276 l 16049 1280 l 16048 1285 l 16046 1295 l 16044 1307 l 16041 1323 l 16037 1343 l 16034 1366 l 16030 1392 l 16026 1421 l 16023 1451 l 16020 1484 l 16017 1517 l 16016 1552 l 16015 1589 l 16016 1626 l 16018 1664 l 16022 1704 l 16029 1745 l 16037 1787 l 16048 1832 l 16062 1878 l 16080 1926 l 16101 1976 l 16125 2025 l 16150 2070 l 16177 2112 l 16206 2152 l 16234 2190 l 16263 2224 l 16293 2255 l 16322 2284 l 16351 2311 l 16381 2336 l 16410 2360 l 16439 2382 l 16468 2402 l 16497 2422 l 16526 2440 l 16554 2457 l 16580 2473 l 16606 2487 l 16629 2500 l 16651 2512 l 16670 2522 l 16686 2530 l 16699 2537 l 16709 2542 l 16717 2546 l 16721 2548 l 16724 2549 l 16725 2550 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 18150 1875 m 18151 1876 l 18153 1877 l 18157 1880 l 18164 1884 l 18173 1890 l 18184 1898 l 18199 1909 l 18216 1921 l 18235 1935 l 18257 1951 l 18281 1968 l 18306 1987 l 18333 2008 l 18361 2030 l 18390 2053 l 18419 2077 l 18448 2102 l 18478 2129 l 18509 2157 l 18539 2187 l 18570 2218 l 18601 2251 l 18633 2286 l 18665 2324 l 18697 2364 l 18730 2407 l 18762 2453 l 18794 2501 l 18825 2550 l 18856 2604 l 18884 2657 l 18909 2708 l 18931 2758 l 18950 2805 l 18967 2850 l 18981 2894 l 18993 2935 l 19004 2975 l 19013 3013 l 19020 3050 l 19026 3086 l 19032 3121 l 19036 3155 l 19039 3187 l 19042 3217 l 19045 3246 l 19046 3272 l 19048 3295 l 19048 3316 l 19049 3333 l 19050 3348 l 19050 3358 l 19050 3366 l 19050 3371 l 19050 3374 l 19050 3375 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 17550 1125 m 17549 1125 l 17548 1126 l 17545 1128 l 17541 1131 l 17535 1136 l 17528 1141 l 17519 1148 l 17510 1157 l 17499 1167 l 17487 1179 l 17475 1192 l 17463 1207 l 17451 1223 l 17440 1242 l 17429 1262 l 17419 1284 l 17410 1309 l 17402 1337 l 17396 1368 l 17391 1404 l 17388 1443 l 17387 1487 l 17389 1537 l 17393 1591 l 17400 1650 l 17408 1700 l 17418 1750 l 17429 1799 l 17440 1845 l 17453 1889 l 17466 1928 l 17479 1964 l 17492 1996 l 17505 2024 l 17518 2049 l 17531 2070 l 17544 2089 l 17556 2106 l 17569 2122 l 17581 2136 l 17594 2150 l 17606 2164 l 17618 2179 l 17631 2194 l 17643 2212 l 17656 2232 l 17669 2255 l 17681 2281 l 17694 2311 l 17706 2346 l 17719 2385 l 17730 2428 l 17742 2476 l 17752 2528 l 17761 2584 l 17769 2641 l 17775 2700 l 17779 2766 l 17780 2830 l 17778 2890 l 17775 2946 l 17769 2998 l 17761 3046 l 17752 3091 l 17742 3133 l 17731 3173 l 17719 3210 l 17705 3245 l 17692 3278 l 17677 3310 l 17662 3340 l 17648 3368 l 17633 3394 l 17619 3418 l 17606 3440 l 17594 3460 l 17583 3477 l 17573 3491 l 17565 3503 l 17559 3512 l 17555 3518 l 17552 3522 l 17551 3524 l 17550 3525 l gs col0 s gr % Ellipse 7.500 slw n 12300 6721 439 175 0 360 DrawEllipse gs col0 s gr % Ellipse n 12300 8071 439 175 0 360 DrawEllipse gs col0 s gr % Ellipse n 12300 8746 439 175 0 360 DrawEllipse gs col0 s gr % Ellipse n 12311 7391 450 179 0 360 DrawEllipse gs col0 s gr % Polyline 0 slj 30.000 slw gs clippath 11395 6735 m 11715 6735 l 11715 6615 l 11395 6615 l 11395 6615 l 11635 6675 l 11395 6735 l cp eoclip n 11175 6675 m 11700 6675 l gs col0 s gr gr % arrowhead 15.000 slw n 11395 6735 m 11635 6675 l 11395 6615 l 11395 6735 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 11395 7410 m 11715 7410 l 11715 7290 l 11395 7290 l 11395 7290 l 11635 7350 l 11395 7410 l cp eoclip n 11175 7350 m 11700 7350 l gs col0 s gr gr % arrowhead 15.000 slw n 11395 7410 m 11635 7350 l 11395 7290 l 11395 7410 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 11395 8085 m 11715 8085 l 11715 7965 l 11395 7965 l 11395 7965 l 11635 8025 l 11395 8085 l cp eoclip n 11175 8025 m 11700 8025 l gs col0 s gr gr % arrowhead 15.000 slw n 11395 8085 m 11635 8025 l 11395 7965 l 11395 8085 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 11395 8760 m 11715 8760 l 11715 8640 l 11395 8640 l 11395 8640 l 11635 8700 l 11395 8760 l cp eoclip n 11175 8700 m 11700 8700 l gs col0 s gr gr % arrowhead 15.000 slw n 11395 8760 m 11635 8700 l 11395 8640 l 11395 8760 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 7245 3059 m 7000 3263 l 7076 3355 l 7322 3151 l 7322 3151 l 7100 3259 l 7245 3059 l cp eoclip n 7500 2925 m 7050 3300 l gs col0 s gr gr % arrowhead 15.000 slw n 7245 3059 m 7100 3259 l 7322 3151 l 7245 3059 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 5633 5257 m 5533 5560 l 5647 5598 l 5747 5295 l 5747 5295 l 5615 5504 l 5633 5257 l cp eoclip n 5745 5115 m 5595 5565 l gs col0 s gr gr % arrowhead 15.000 slw n 5633 5257 m 5615 5504 l 5747 5295 l 5633 5257 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 20619 3023 m 20341 2865 l 20282 2969 l 20559 3128 l 20559 3128 l 20381 2957 l 20619 3023 l cp eoclip n 20850 3225 m 20325 2925 l gs col0 s gr gr % arrowhead 15.000 slw n 20619 3023 m 20381 2957 l 20559 3128 l 20619 3023 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 22191 5451 m 22103 5144 l 21988 5177 l 22076 5484 l 22076 5484 l 22068 5237 l 22191 5451 l cp eoclip n 22200 5700 m 22050 5175 l gs col0 s gr gr % arrowhead 15.000 slw n 22191 5451 m 22068 5237 l 22076 5484 l 22191 5451 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 18514 6841 m 18831 6886 l 18848 6767 l 18531 6722 l 18531 6722 l 18761 6816 l 18514 6841 l cp eoclip n 18300 6750 m 18825 6825 l gs col0 s gr gr % arrowhead 15.000 slw n 18514 6841 m 18761 6816 l 18531 6722 l 18514 6841 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 18568 7375 m 18862 7249 l 18815 7138 l 18520 7265 l 18520 7265 l 18765 7226 l 18568 7375 l cp eoclip n 18300 7425 m 18825 7200 l gs col0 s gr gr % arrowhead 15.000 slw n 18568 7375 m 18765 7226 l 18520 7265 l 18568 7375 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 18670 8160 m 18990 8160 l 18990 8040 l 18670 8040 l 18670 8040 l 18910 8100 l 18670 8160 l cp eoclip n 18300 8100 m 18975 8100 l gs col0 s gr gr % arrowhead 15.000 slw n 18670 8160 m 18910 8100 l 18670 8040 l 18670 8160 l cp gs 0.00 setgray ef gr col0 s % Polyline 30.000 slw gs clippath 18789 8643 m 19086 8525 l 19041 8413 l 18744 8532 l 18744 8532 l 18990 8499 l 18789 8643 l cp eoclip n 18300 8775 m 19050 8475 l gs col0 s gr gr % arrowhead 15.000 slw n 18789 8643 m 18990 8499 l 18744 8532 l 18789 8643 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj 30.000 slw gs clippath 6078 7933 m 6359 8084 l 6416 7979 l 6134 7827 l 6134 7827 l 6318 7994 l 6078 7933 l cp eoclip n 5400 6900 m 5401 6903 l 5403 6908 l 5406 6919 l 5412 6935 l 5419 6957 l 5429 6984 l 5440 7017 l 5453 7053 l 5467 7092 l 5482 7133 l 5497 7175 l 5513 7216 l 5529 7256 l 5545 7294 l 5560 7330 l 5575 7364 l 5590 7396 l 5605 7425 l 5619 7453 l 5634 7478 l 5649 7502 l 5664 7525 l 5679 7547 l 5696 7567 l 5713 7588 l 5729 7606 l 5746 7624 l 5764 7641 l 5783 7659 l 5803 7676 l 5824 7693 l 5848 7711 l 5873 7729 l 5900 7748 l 5928 7767 l 5959 7787 l 5992 7808 l 6027 7829 l 6063 7851 l 6101 7873 l 6138 7895 l 6176 7916 l 6213 7936 l 6247 7956 l 6278 7973 l 6306 7988 l 6329 8000 l 6347 8010 l 6375 8025 l gs col0 s gr gr % arrowhead 0 slj 15.000 slw n 6078 7933 m 6318 7994 l 6134 7827 l 6078 7933 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj 30.000 slw gs clippath 6443 7024 m 6762 7035 l 6767 6915 l 6447 6904 l 6447 6904 l 6685 6973 l 6443 7024 l cp eoclip n 6150 6825 m 6153 6826 l 6160 6830 l 6171 6835 l 6187 6843 l 6208 6852 l 6231 6863 l 6256 6875 l 6281 6886 l 6305 6897 l 6328 6907 l 6349 6916 l 6368 6923 l 6386 6930 l 6403 6936 l 6419 6941 l 6435 6946 l 6450 6950 l 6467 6954 l 6485 6958 l 6503 6961 l 6523 6963 l 6544 6965 l 6567 6967 l 6592 6969 l 6619 6971 l 6647 6972 l 6675 6973 l 6700 6974 l 6721 6974 l 6750 6975 l gs col0 s gr gr % arrowhead 0 slj 15.000 slw n 6443 7024 m 6685 6973 l 6447 6904 l 6443 7024 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj 30.000 slw gs clippath 21551 7122 m 21857 7027 l 21821 6913 l 21515 7007 l 21515 7007 l 21763 6994 l 21551 7122 l cp eoclip n 21000 7050 m 21001 7050 l 21004 7051 l 21012 7052 l 21026 7055 l 21047 7058 l 21073 7062 l 21102 7067 l 21134 7072 l 21166 7076 l 21196 7080 l 21226 7084 l 21253 7086 l 21278 7088 l 21302 7090 l 21324 7090 l 21346 7090 l 21367 7089 l 21388 7088 l 21407 7086 l 21426 7083 l 21446 7080 l 21467 7076 l 21490 7071 l 21514 7065 l 21540 7059 l 21569 7051 l 21599 7043 l 21631 7034 l 21664 7024 l 21697 7014 l 21729 7005 l 21758 6996 l 21783 6988 l 21825 6975 l gs col0 s gr gr % arrowhead 0 slj 15.000 slw n 21551 7122 m 21763 6994 l 21515 7007 l 21551 7122 l cp gs 0.00 setgray ef gr col0 s % Polyline 2 slj 30.000 slw gs clippath 22271 7425 m 22410 7137 l 22302 7085 l 22163 7372 l 22163 7372 l 22322 7183 l 22271 7425 l cp eoclip n 21375 8175 m 21377 8174 l 21383 8171 l 21392 8165 l 21406 8157 l 21426 8145 l 21451 8130 l 21480 8113 l 21512 8093 l 21548 8072 l 21584 8049 l 21622 8026 l 21658 8003 l 21694 7980 l 21728 7958 l 21760 7936 l 21791 7916 l 21819 7896 l 21845 7877 l 21869 7858 l 21892 7840 l 21913 7822 l 21933 7804 l 21952 7786 l 21970 7768 l 21988 7750 l 22004 7731 l 22021 7712 l 22037 7692 l 22053 7671 l 22069 7649 l 22085 7625 l 22101 7600 l 22118 7574 l 22135 7545 l 22153 7514 l 22171 7481 l 22189 7447 l 22208 7411 l 22228 7373 l 22247 7336 l 22266 7299 l 22283 7263 l 22299 7230 l 22314 7201 l 22326 7176 l 22335 7156 l 22350 7125 l gs col0 s gr gr % arrowhead 0 slj 15.000 slw n 22271 7425 m 22322 7183 l 22163 7372 l 22271 7425 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 40 % Polyline 0 slj 0 slc 0.000 slw n 6577 7797 m 6525 7797 l 6525 7745 l 6577 7745 l cp gs col7 1.00 shd ef gr % Polyline n 8625 8613 m 8573 8613 l 8573 8561 l 8625 8561 l cp gs col7 1.00 shd ef gr % Polyline n 6952 6672 m 6900 6672 l 6900 6620 l 6952 6620 l cp gs col7 1.00 shd ef gr % Polyline n 9000 7488 m 8948 7488 l 8948 7436 l 9000 7436 l cp gs col7 1.00 shd ef gr % Polyline n 4120 5715 m 4050 5715 l 4050 5645 l 4120 5645 l cp gs col7 1.00 shd ef gr % Polyline n 6900 6825 m 6830 6825 l 6830 6755 l 6900 6755 l cp gs col7 1.00 shd ef gr % Polyline n 9710 6423 m 9675 6423 l 9675 6388 l 9710 6388 l cp gs col7 1.00 shd ef gr % Polyline n 11074 6967 m 11039 6967 l 11039 6932 l 11074 6932 l cp gs col7 1.00 shd ef gr % Polyline n 9710 7098 m 9675 7098 l 9675 7063 l 9710 7063 l cp gs col7 1.00 shd ef gr % Polyline n 11074 7642 m 11039 7642 l 11039 7607 l 11074 7607 l cp gs col7 1.00 shd ef gr % Polyline n 9710 7773 m 9675 7773 l 9675 7738 l 9710 7738 l cp gs col7 1.00 shd ef gr % Polyline n 11074 8317 m 11039 8317 l 11039 8282 l 11074 8282 l cp gs col7 1.00 shd ef gr % Polyline n 9710 8448 m 9675 8448 l 9675 8413 l 9710 8413 l cp gs col7 1.00 shd ef gr % Polyline n 11074 8992 m 11039 8992 l 11039 8957 l 11074 8957 l cp gs col7 1.00 shd ef gr % Polyline n 4008 3375 m 3900 3375 l 3900 3267 l 4008 3267 l cp gs col7 1.00 shd ef gr % Polyline n 8325 5100 m 8217 5100 l 8217 4992 l 8325 4992 l cp gs col7 1.00 shd ef gr % Polyline n 18877 6597 m 18825 6597 l 18825 6545 l 18877 6545 l cp gs col7 1.00 shd ef gr % Polyline n 20925 7413 m 20873 7413 l 20873 7361 l 20925 7361 l cp gs col7 1.00 shd ef gr % Polyline n 19102 7797 m 19050 7797 l 19050 7745 l 19102 7745 l cp gs col7 1.00 shd ef gr % Polyline n 21150 8613 m 21098 8613 l 21098 8561 l 21150 8561 l cp gs col7 1.00 shd ef gr % Polyline n 7275 1200 m 7125 1200 l 7125 1050 l 7275 1050 l cp gs col7 1.00 shd ef gr % Polyline n 13275 3600 m 13125 3600 l 13125 3450 l 13275 3450 l cp gs col7 1.00 shd ef gr % Polyline n 19533 3449 m 19425 3449 l 19425 3341 l 19533 3341 l cp gs col7 1.00 shd ef gr % Polyline n 23850 5175 m 23742 5175 l 23742 5067 l 23850 5067 l cp gs col7 1.00 shd ef gr % Polyline n 20996 5846 m 20925 5846 l 20925 5775 l 20996 5775 l cp gs col7 1.00 shd ef gr % Polyline n 23820 6975 m 23749 6975 l 23749 6904 l 23820 6904 l cp gs col7 1.00 shd ef gr % Polyline n 14625 1200 m 14475 1200 l 14475 1050 l 14625 1050 l cp gs col7 1.00 shd ef gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_i.tex000066400000000000000000001224121514310134000256320ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p_i.tex % % Sujet : Manuel de l'utilisateur % % du projet 'PT-Scotch' % % Introductions % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} \subsection{Static mapping} The efficient execution of a parallel program on a parallel machine requires that the communicating processes of the program be assigned to the processors of the machine so as to minimize its overall running time. When processes have a limited duration and their logical dependencies are accounted for, this optimization problem is referred to as scheduling. When processes are assumed to coexist simultaneously for the entire duration of the program, it is referred to as mapping. It amounts to balancing the computational weight of the processes among the processors of the machine, while reducing the cost of communication by keeping intensively inter-communicating processes on nearby processors. In most cases, the underlying computational structure of the parallel programs to map can be conveniently modeled as a graph in which vertices correspond to processes that handle distributed pieces of data, and edges reflect data dependencies. The mapping problem can then be addressed by assigning processor labels to the vertices of the graph, so that all processes assigned to some processor are loaded and run on it. In a SPMD context, this is equivalent to the distribution across processors of the data structures of parallel programs; in this case, all pieces of data assigned to some processor are handled by a single process located on this processor. A mapping is called static if it is computed prior to the execution of the program. Static mapping is NP-complete in the general case~\cite{gajo79}. Therefore, many studies have been carried out in order to find sub-optimal solutions in reasonable time, including the development of specific algorithms for common topologies such as the hypercube~\cite{errasa90,hamm92}. When the target machine is assumed to have a communication network in the shape of a complete graph, the static mapping problem turns into the partitioning problem, which has also been intensely studied~\cite{basi94,hele93a,kaku95a,kaku95c,posili90}. However, when mapping onto parallel machines the communication network of which is not a bus, not accounting for the topology of the target machine usually leads to worse running times, because simple cut minimization can induce more expensive long-distance communication~\cite{hamm92,wacrevjo95}; the static mapping problem is gaining popularity as most of the newer massively parallel machines have a strongly NUMA architecture \subsection{Sparse matrix ordering} Many scientific and engineering problems can be modeled by sparse linear systems, which are solved either by iterative or direct methods. To achieve efficiency with direct methods, one must minimize the fill-in induced by factorization. This fill-in is a direct consequence of the order in which the unknowns of the linear system are numbered, and its effects are critical both in terms of memory and of computation costs. \\ Because there always exist large problem graphs which cannot fit in the memory of sequential computers and cost too much to partition, it is necessary to resort to parallel graph ordering tools. \ptscotch\ provides such features. \subsection{Contents of this document} This document describes the capabilities and operations of \ptscotch, a software package devoted to parallel static mapping and sparse matrix block ordering. It is the parallel extension of \scotch, a sequential software package devoted to static mapping, graph and mesh partitioning, and sparse matrix block ordering. While both packages share a significant amount of code, because \ptscotch\ transfers control to the sequential routines of the \libscotch\ library when the subgraphs on which it operates are located on a single processor, the two sets of routines have a distinct user's manual. Readers interested in the sequential features of \scotch\ should refer to the {\it\scotch\ User's Guide}~\scotchcitesuser. The rest of this manual is organized as follows. Section~\ref{sec-project} presents the goals of the \scotch\ project, and section~\ref{sec-algo} outlines the most important aspects of the parallel partitioning and ordering algorithms that it implements. Section~\ref{sec-file} defines the formats of the files used in \ptscotch, section~\ref{sec-prog} describes the programs of the \ptscotch\ distribution, and section~\ref{sec-lib} defines the interface and operations of the parallel routines of the \libscotch\ library. Section~\ref{sec-install} explains how to obtain and install the \scotch\ distribution. Finally, some practical examples are given in section~\ref{sec-examples}. %, and instructions on how to implement new methods in the %\libscotch\ library are provided in section~\ref{sec-coding}. \section{The \scotch\ project} \label{sec-project} \subsection{Description} \scotch\ is a project carried out at the {\it Laboratoire Bordelais de Recherche en Informatique\/} (LaBRI) of the Universit\'e Bordeaux I, and now within the Bacchus project of INRIA Bordeaux Sud-Ouest. Its goal is to study the applications of graph theory to scientific computing, using a ``divide and conquer'' approach. It focused first on static mapping, and has resulted in the development of the Dual Recursive Bipartitioning (or DRB) mapping algorithm and in the study of several graph bipartitioning heuristics~\cite{pell94a}, all of which have been implemented in the \scotch\ software package~\cite{pero96a}. Then, it focused on the computation of high-quality vertex separators for the ordering of sparse matrices by nested dissection, by extending the work that has been done on graph partitioning in the context of static mapping~\cite{pero97a,peroam00a}. More recently, the ordering capabilities of \scotch\ have been extended to native mesh structures, thanks to hypergraph partitioning algorithms. New graph partitioning methods have also been recently added~\cite{chpe06a,pell07b}. Version {\sc 5.0} of \scotch\ was the first one to comprise parallel graph ordering routines~\cite{chpe08}, and version {\sc 5.1} started offering parallel graph partitioning features, while parallel static mapping will be available in the next release. \subsection{Availability} Starting from version {\sc 4.0}, which has been developed at INRIA within the ScAlApplix project, \scotch\ is available under a dual licensing basis. On the one hand, it is downloadable from the \scotch\ web page as free/libre software, to all interested parties willing to use it as a library or to contribute to it as a testbed for new partitioning and ordering methods. On the other hand, it can also be distributed, under other types of licenses and conditions, to parties willing to embed it tightly into closed, proprietary software. \\ The free/libre software license under which \scotch\ {\sc\scotchver} is distributed is the CeCILL-C license~\cite{cecill}, which has basically the same features as the GNU LGPL (``{\it Lesser General Public License}'')~\cite{lgpl}: ability to link the code as a library to any free/libre or even proprietary software, ability to modify the code and to redistribute these modifications. Version {\sc 4.0} of \scotch\ was distributed under the LGPL itself. This version did not comprise any parallel features. \\ Please refer to section~\ref{sec-install} to see how to obtain the free/libre distribution of \scotch. \section{Algorithms} \label{sec-algo} \subsection{Parallel static mapping by Dual Recursive Bipartitioning} \label{sec-drb} For a detailed description of the sequential implementation of this mapping algorithm and an extensive analysis of its performance, please refer to~\cite{pell94a,pero96b}. In the next sections, we will only outline the most important aspects of the algorithm. \subsubsection{Static mapping} The parallel program to be mapped onto the target architecture is modeled by a valuated unoriented graph $S$ called source graph or process graph, the vertices of which represent the processes of the parallel program, and the edges of which the communication channels between communicating processes. Vertex- and edge- valuations associate with every vertex $v_S$ and every edge $e_S$ of $S$ integer numbers $w_S(v_S)$ and $w_S(e_S)$ which estimate the computation weight of the corresponding process and the amount of communication to be transmitted on the channel, respectively. The target machine onto which is mapped the parallel program is also modeled by a valuated unoriented graph $T$ called target graph or architecture graph. Vertices $v_T$ and edges $e_T$ of $T$ are assigned integer weights $w_T(v_T)$ and $w_T(e_T)$, which estimate the computational power of the corresponding processor and the cost of traversal of the inter-processor link, respectively. A mapping from $S$ to $T$ consists of two applications $\too{S,T} : V(S) \rghta V(T)$ and $\roo{S,T} : E(S) \rghta {\cal P}(E(T))$, where ${\cal P}(E(T))$ denotes the set of all simple loopless paths which can be built from $E(T)$. $\too{S,T}(v_S) = v_T$ if process $v_S$ of $S$ is mapped onto processor $v_T$ of $T$, and $\roo{S,T}(e_S) = \{ e^1_T, e^2_T, \ldots, e^n_T \}$ if communication channel $e_S$ of $S$ is routed through communication links $e^1_T$, $e^2_T$, \ldots, $e^n_T$ of $T$. $|\roo{S,T}(e_S)|$ denotes the dilation of edge $e_S$, that is, the number of edges of $E(T)$ used to route $e_S$. \subsubsection{Cost function and performance criteria} \label{sec-algo-cost} The computation of efficient static mappings requires an {\it a priori\/} knowledge of the dynamic behavior of the target machine with respect to the programs which are run on it. This knowledge is synthesized in a cost function, the nature of which determines the characteristics of the desired optimal mappings. The goal of our mapping algorithm is to minimize some communication cost function, while keeping the load balance within a specified tolerance. The communication cost function $f_C$ that we have chosen is the sum, for all edges, of their dilation multiplied by their weight: \bn f_C(\too{S,T},\roo{S,T}) \eqdef \hspace*{-0.25cm}\sum\limits_{e_S\in E(S)}\hspace*{-0.25cm} w_S(e_S)\,|\roo{S,T}(e_S)|\enspace. \en This function, which has already been considered by several authors for hypercube target topologies~\cite{errasa90,hamm92,hele94b}, has several interesting properties: it is easy to compute, allows incremental updates performed by iterative algorithms, and its minimization favors the mapping of intensively intercommunicating processes onto nearby processors; regardless of the type of routage implemented on the target machine (store-and-forward or cut-through), it models the traffic on the interconnection network and thus the risk of congestion. The strong positive correlation between values of this function and effective execution times has been experimentally verified by Hammond~\cite{hamm92} on the CM-2, and by Hendrickson and Leland~\cite{hele94a} on the nCUBE~2. \\ The quality of mappings is evaluated with respect to the criteria for quality that we have chosen: the balance of the computation load across processors, and the minimization of the interprocessor communication cost modeled by function~$f_C$. These criteria lead to the definition of several parameters, which are described below. For load balance, one can define $\mmap$, the average load per computational power unit (which does not depend on the mapping), and $\dmap$, the load imbalance ratio, as\\[-0.5em] \bn \mmap \eqdef {\sum\limits_{v_S \in V(S)} w_S(v_S) \over \sum\limits_{v_T \in V(T)} w_T(v_T)} \hspace*{2.5em}\mbox{~and~} \en \bn \dmap \eqdef {\sum\limits_{v_T \in V(T)} \left|\left(\!\!{1 \over w_T(v_T)}\hspace*{-0.3em} \sum\limits_{\scriptsize \shortstack{$v_S \in V(S)$\\[-0.2em] $\too{S,T}(v_S) = v_T$}} \hspace*{-0.2em} w_S(v_S)\!\!\right)\:-\:\mmap\right| \over \sum\limits_{v_S \in V(S)} w_S(v_S)}\enspace. \en However, since the maximum load imbalance ratio is provided by the user in input of the mapping, the information given by these parameters is of little interest, since what matters is the minimization of the communication cost function under this load balance constraint. For communication, the straightforward parameter to consider is $f_C$. It can be normalized as $\mexp$, the average edge expansion, which can be compared to $\mdil$, the average edge dilation; these are defined as\\[-1.3em] \bn \mexp \eqdef {f_C \over \sum\limits_{e_S \in E(S)} w_S(e_S)} \hspace*{2.5em}\mbox{~and~}\hspace*{2.5em} \mdil \eqdef {\sum\limits_{e_S \in E(S)}|\roo{S,T}(e_S)| \over |E(S)|} \enspace. \en $\dexp \eqdef {\mexp \over \mdil}$ is smaller than $1$ when the mapper succeeds in putting heavily intercommunicating processes closer to each other than it does for lightly communicating processes; they are equal if all edges have same weight. \subsubsection{The Dual Recursive Bipartitioning algorithm} \label{sec-algo-drb} Our mapping algorithm uses a divide and conquer approach to recursively allocate subsets of processes to subsets of processors~\cite{pell94a}. It starts by considering a set of processors, also called domain, containing all the processors of the target machine, and with which is associated the set of all the processes to map. At each step, the algorithm bipartitions a yet unprocessed domain into two disjoint subdomains, and calls a graph bipartitioning algorithm to split the subset of processes associated with the domain across the two subdomains, as sketched in the following. \noi {\renewcommand{\baselinestretch}{0.95}\footnotesize\tt {% \begin{verbatim} mapping (D, P) Set_Of_Processors D; Set_Of_Processes P; { Set_Of_Processors D0, D1; Set_Of_Processes P0, P1; if (|P| == 0) return; /* If nothing to do. */ if (|D| == 1) { /* If one processor in D */ result (D, P); /* P is mapped onto it. */ return; } (D0, D1) = processor_bipartition (D); (P0, P1) = process_bipartition (P, D0, D1); mapping (D0, P0); /* Perform recursion. */ mapping (D1, P1); } \end{verbatim}}} \noi The association of a subdomain with every process defines a partial mapping of the process graph. As bipartitionings are performed, the subdomain sizes decrease, up to give a complete mapping when all subdomains are of size~one. \\ The above algorithm lies on the ability to define five main objects: \begin{itemize} \item a domain structure, which represents a set of processors in the target architecture; \item a domain bipartitioning function, which, given a domain, bipartitions it in two disjoint subdomains; \item a domain distance function, which gives, in the target graph, a measure of the distance between two disjoint domains. Since domains may not be convex nor connected, this distance may be estimated. However, it must respect certain homogeneity properties, such as giving more accurate results as domain sizes decrease. The domain distance function is used by the graph bipartitioning algorithms to compute the communication function to minimize, since it allows the mapper to estimate the dilation of the edges that link vertices which belong to different domains. Using such a distance function amounts to considering that all routings will use shortest paths on the target architecture, which is how most parallel machines actually do. We have thus chosen that our program would not provide routings for the communication channels, leaving their handling to the communication system of the target machine; \item a process subgraph structure, which represents the subgraph induced by a subset of the vertex set of the original source graph; \item a process subgraph bipartitioning function, which bipartitions subgraphs in two disjoint pieces to be mapped onto the two subdomains computed by the domain bipartitioning function. \end{itemize} All these routines are seen as black boxes by the mapping program, which can thus accept any kind of target architecture and process bipartitioning functions. \subsubsection{Partial cost function} The production of efficient complete mappings requires that all graph bipartitionings favor the criteria that we have chosen. Therefore, the bipartitioning of a subgraph~$S'$ of $S$ should maintain load balance within the user-specified tolerance, and minimize the partial communication cost function $f'_C$, defined as \bn f'_C(\too{S,T},\roo{S,T}) \eqdef \hspace*{-0.45cm}\sum\limits_{\mbox{\scriptsize \shortstack{$v\in V(S')$\\ $\{v,v'\}\in E(S)$}}}\hspace*{-0.45cm} w_S(\{v,v'\})\,|\roo{S,T}(\{v,v'\})|\enspace, \en which accounts for the dilation of edges internal to subgraph~$S'$ as well as for the one of edges which belong to the cocycle of $S'$, as shown in Figure~\ref{fig-bipcost}. Taking into account the partial mapping results issued by previous bipartitionings makes it possible to avoid local choices that might prove globally bad, as explained below. This amounts to incorporating additional constraints to the standard graph bipartitioning problem, turning it into a more general optimization problem termed as skewed graph partitioning by some authors~\cite{heledr97}. \begin{figure}[hbt] \hfill \parbox[b]{4.9cm}{ \hfill \includegraphics[scale=0.40]{s_f_rua.eps} \hfill\\ {\bf a.} Initial position. }\ \hfill\ \parbox[b]{4.9cm}{ \hfill \includegraphics[scale=0.40]{s_f_rub.eps} \hfill\\ {\bf b.} After one vertex is moved. }\hfill\ \caption% {Edges accounted for in the partial communication cost function when bipartitioning the subgraph associated with domain~$D$ between the two subdomains $D_0$ and $D_1$ of~$D$. Dotted edges are of dilation zero, their two ends being mapped onto the same subdomain. Thin edges are cocycle edges.} \label{fig-bipcost} \end{figure} %% \subsubsection{Execution scheme} %% From an algorithmic point of view, our mapper behaves as a greedy algorithm, %% since the mapping of a process to a subdomain is never reconsidered, and %% at each step of which iterative algorithms can be applied. %% The double recursive call performed at each step induces a recursion scheme %% in the shape of a binary tree, each vertex of which corresponds to a %% bipartitioning job, that is, the bipartitioning of both a domain and %% its associated subgraph. %% In the case of depth-first sequencing, as written in the above sketch, %% bipartitioning jobs run in the left branches of the tree have no information %% on the distance between the vertices they handle and neighbor vertices to be %% processed in the right branches. %% On the contrary, sequencing the jobs according to a by-level (breadth-first) %% travel of the tree allows any bipartitioning job of a given level to %% have information on the subdomains to which all the processes have been %% assigned at the previous level. %% Thus, when deciding in which subdomain to put a given process, a %% bipartitioning job can account for the communication costs induced by %% its neighbor processes, whether they are handled by the job itself or not, %% since it can estimate in $f'_C$ the dilation of the corresponding edges. %% This results in an interesting feedback effect: once an edge has been kept %% in a cut between two subdomains, the distance between its end vertices will %% be accounted for in the partial communication cost function to be minimized, %% and following jobs will be more likely to keep these vertices close to %% each other, as illustrated in Figure~\ref{fig-biprub}. %% \begin{figure}[hbt] %% \hfill %% \parbox[b]{5.2cm}{ %% \hfill %% \includegraphics[scale=0.40]{s_f_run.eps} %% \hfill\\ %% {\bf a.} Depth-first sequencing. %% }\ \hfill\ %% \parbox[b]{5.2cm}{ %% \hfill %% \includegraphics[scale=0.40]{s_f_ruy.eps} %% \hfill\\ %% {\bf b.} Breadth-first sequencing. %% }\hfill\ % %% \caption% %% {Influence of depth-first and breadth-first sequencings on the %% bipartitioning of a domain~$D$ belonging to the leftmost branch of %% the bipartitioning tree. %% With breadth-first sequencing, the partial mapping data regarding vertices %% belonging to the right branches of the bipartitioning tree are more %% accurate (C.L. stands for ``Cut Level'').} %% \label{fig-biprub} %% \end{figure} %% The relative efficiency of depth-first and breadth-first sequencing schemes %% with respect to the structure of the source and target graphs is discussed %% in~\cite{pero96b}. \subsubsection{Parallel graph bipartitioning methods} \label{sec-algo-bipart} The core of our parallel recursive mapping algorithm uses process graph parallel bipartitioning methods as black boxes. It allows the mapper to run any type of graph bipartitioning method compatible with our criteria for quality. Bipartitioning jobs maintain an internal image of the current bipartition, indicating for every vertex of the job whether it is currently assigned to the first or to the second subdomain. It is therefore possible to apply several different methods in sequence, each one starting from the result of the previous one, and to select the methods with respect to the job characteristics, thus enabling us to define mapping strategies. The currently implemented graph bipartitioning methods are listed below. \begin{itemize} \iteme[{\bf Band}] Like the multi-level method which will be described below, the band method is a meta-algorithm, in the sense that it does not itself compute partitions, but rather helps other partitioning algorithms perform better. It is a refinement algorithm which, from a given initial partition, extracts a band graph of given width (which only contains graph vertices that are at most at this distance from the separator), calls a partitioning strategy on this band graph, and prolongs\footnote{While a \emph{projection} is an application to a space of lower dimension, a \emph{prolongation} refers to an application to a space of higher dimension. Yet, the term projection is also commonly used to refer to such a propagation, most often in the context of a multilevel framework.} back the refined partition on the original graph. This method was designed to be able to use expensive partitioning heuristics, such as genetic algorithms, on large graphs, as it dramatically reduces the problem space by several orders of magnitude. However, it was found that, in a multi-level context, it also improves partition quality, by coercing partitions in a problem space that derives from the one which was globally defined at the coarsest level, thus preventing local optimization refinement algorithms to be trapped in local optima of the finer graphs~\cite{chpe06a}. \iteme[{\bf Diffusion}] This global optimization method, the sequential formulation of which is presented in~\cite{pell07b}, flows two kinds of antagonistic liquids, scotch and anti-scotch, from two source vertices, and sets the new frontier as the limit between vertices which contain scotch and the ones which contain anti-scotch. In order to add load-balancing constraints to the algorithm, a constant amount of liquid disappears from every vertex per unit of time, so that no domain can spread across more than half of the vertices. Because selecting the source vertices is essential to the obtainment of useful results, this method has been hard-coded so that the two source vertices are the two vertices of highest indices, since in the band method these are the anchor vertices which represent all of the removed vertices of each part. Therefore, this method must be used on band graphs only, or on specifically crafted graphs. \iteme[{\bf Multi-level}]\label{sec-algo-mle} This algorithm, which has been studied by several authors~\cite{basi94,hele93b,kaku95a} and should be considered as a strategy rather than as a method since it uses other methods as parameters, repeatedly reduces the size of the graph to bipartition by finding matchings that collapse vertices and edges, computes a partition for the coarsest graph obtained, and prolongs the result back to the original graph, as shown in Figure~\ref{fig-multiproc}. \begin{figure}[hbt] ~\hfill\includegraphics[scale=0.50]{s_f_mult.eps}\hfill\ ~ \caption% {The multi-level partitioning process. In the uncoarsening phase, the light and bold lines represent for each level the prolonged partition obtained from the coarser graph, and the partition obtained after refinement, respectively.} \label{fig-multiproc} \end{figure} The multi-level method, when used in conjunction with the banded diffusion method to refine the prolonged partitions at every level, usually stabilizes quality irrespective of the number of processors which run the parallel static mapper. \end{itemize} \subsubsection{Mapping onto variable-sized architectures} \label{sec-algo-variable} Several constrained graph partitioning problems can be modeled as mapping the problem graph onto a target architecture, the number of vertices and topology of which depend dynamically on the structure of the subgraphs to bipartition at each step. Variable-sized architectures are supported by the DRB algorithm in the following way: at the end of each bipartitioning step, if any of the variable subdomains is empty (that is, all vertices of the subgraph are mapped only to one of the subdomains), then the DRB process stops for both subdomains, and all of the vertices are assigned to their parent subdomain; else, if a variable subdomain has only one vertex mapped onto it, the DRB process stops for this subdomain, and the vertex is assigned to it. The moment when to stop the DRB process for a specific subgraph can be controlled by defining a bipartitioning strategy that tests for the validity of a criterion at each bipartitioning step, and maps all of the subgraph vertices to one of the subdomains when it becomes false. \subsection{Parallel sparse matrix ordering by hybrid incomplete nested dissection} When solving large sparse linear systems of the form $Ax=b$, it is common to precede the numerical factorization by a symmetric reordering. This reordering is chosen in such a way that pivoting down the diagonal in order on the resulting permuted matrix $PAP^T$ produces much less fill-in and work than computing the factors of $A$ by pivoting down the diagonal in the original order (the fill-in is the set of zero entries in $A$ that become non-zero in the factored matrix). \subsubsection{Hybrid incomplete nested dissection} \label{sec-algo-nested} The minimum degree and nested dissection algorithms are the two most popular reordering schemes used to reduce fill-in and operation count when factoring and solving sparse matrices. \\ The minimum degree algorithm~\cite{tiwa67} is a local heuristic that performs its pivot selection by iteratively selecting from the graph a node of minimum degree. It is known to be a very fast and general purpose algorithm, and has received much attention over the last three decades (see for example~\cite{amdadu96,geli89,liu-85}). However, the algorithm is intrinsically sequential, and very little can be theoretically proved about its efficiency. \\ The nested dissection algorithm~\cite{geli81} is a global, recursive heuristic algorithm which computes a vertex set~$S$ that separates the graph into two parts~$A$ and~$B$, ordering $S$ with the highest remaining indices. It then proceeds recursively on parts~$A$ and~$B$ until their sizes become smaller than some threshold value. This ordering guarantees that, at each step, no non zero term can appear in the factorization process between unknowns of~$A$ and unknowns of~$B$. Many theoretical results have been obtained on nested dissection ordering~\cite{chro89,lirota79}, and its divide and conquer nature makes it easily parallelizable. The main issue of the nested dissection ordering algorithm is thus to find small vertex separators that balance the remaining subgraphs as evenly as possible. Provided that good vertex separators are found, the nested dissection algorithm produces orderings which, both in terms of fill-in and operation count, compare favorably~\cite{gukaku96,kaku95a,pero97a} to the ones obtained with the minimum degree algorithm~\cite{liu-85}. Moreover, the elimination trees induced by nested dissection are broader, shorter, and better balanced, and therefore exhibit much more concurrency in the context of parallel Cholesky factorization~\cite[and included references]{aseilish91,geng89,geheling88,gukaku96,pero97a,shre92}. \\ Due to their complementary nature, several schemes have been proposed to hybridize the two methods~\cite{hero98,kaku98a,pero97a}. Our implementation is based on a tight coupling of the nested dissection and minimum degree algorithms, that allows each of them to take advantage of the information computed by the other~\cite{peroam00a}. However, because we do not provide a parallel implementation of the minimum degree algorithm, this hybridization scheme can only take place after enough steps of parallel nested dissection have been performed, such that the subgraphs to be ordered by minimum degree are centralized on individual processors. \subsubsection{Parallel ordering} \label{sec-algo-parallel} The parallel computation of orderings in \ptscotch\ involves three different levels of concurrency, corresponding to three key steps of the nested dissection process: the nested dissection algorithm itself, the multi-level coarsening algorithm used to compute separators at each step of the nested dissection process, and the refinement of the obtained separators. Each of these steps is described below. \paragraph{Nested dissection} As said above, the first level of concurrency relates to the parallelization of the nested dissection method itself, which is straightforward thanks to the intrinsically concurrent nature of the algorithm. Starting from the initial graph, arbitrarily distributed across $p$ processors but preferably balanced in terms of vertices, the algorithm proceeds as illustrated in Figure~\ref{fig-nedi}: once a separator has been computed in parallel, by means of a method described below, each of the $p$ processors participates in the building of the distributed induced subgraph corresponding to the first separated part (even if some processors do not have any vertex of it). This induced subgraph is then folded onto the first $\lceil\frac{p}{2}\rceil$ processors, such that the average number of vertices per processor, which guarantees efficiency as it allows the shadowing of communications by a subsequent amount of computation, remains constant. During the folding process, vertices and adjacency lists owned by the $\lfloor\frac{p}{2}\rfloor$ sender processors are redistributed to the $\lceil\frac{p}{2}\rceil$ receiver processors so as to evenly balance their loads. The same procedure is used to build, on the $\lfloor\frac{p}{2}\rfloor$ remaining processors, the folded induced subgraph corresponding to the second part. These two constructions being completely independent, the computations of the two induced subgraphs and their folding can be performed in parallel, thanks to the temporary creation of an extra thread per processor. When the vertices of the separated graph are evenly distributed across the processors, this feature favors load balancing in the subgraph building phase, because processors which do not have many vertices of one part will have the rest of their vertices in the other part, thus yielding the same overall workload to create both graphs in the same time. This feature can be disabled when the communication system of the target machine is not thread-safe. At the end of the folding process, every processor has a folded subgraph fragment of one of the two folded subgraphs, and the nested dissection process car recursively proceed independently on each subgroup of $\frac{p}{2}$ (then $\frac{p}{4}$, $\frac{p}{8}$, etc\@.) processors, until each subgroup is reduced to a single processor. From then on, the nested dissection process will go on sequentially on every processor, using the nested dissection routines of the \scotch\ library, eventually ending in a coupling with minimum degree methods~\cite{peroam00a}, as described in the previous section. \begin{figure} ~\hfill% \includegraphics[scale=0.38]{p_f_nedi.eps} \hfill~\\*[-1em] \caption{Diagram of a nested dissection step for a (sub-)graph distributed across four processors. Once the separator is known, the two induced subgraphs are built and folded (this can be done in parallel for both subgraphs), yielding two subgraphs, each of them distributed across two processors.} \label{fig-nedi} \end{figure} \paragraph{Graph coarsening} \label{secalgocoarsen} The second level of concurrency concerns the computation of separators. The approach we have chosen is the now classical multi-level one~\cite{basi94,hele95,kaku98a}. It consists in repeatedly computing a set of increasingly coarser albeit topologically similar versions of the graph to separate, by finding matchings which collapse vertices and edges, until the coarsest graph obtained is no larger than a few hundreds of vertices, then computing a separator on this coarsest graph, and prolonging back this separator, from coarser to finer graphs, up to the original graph. Most often, a local optimization algorithm, such as Kernighan-Lin~\cite{keli70} or Fiduccia-Mattheyses~\cite{fima82} (FM), is used in the uncoarsening phase to refine the partition that is prolonged back at every level, such that the granularity of the solution is the one of the original graph and not the one of the coarsest graph. The main features of our implementation are outlined in Figure~\ref{fig-sepa}. Once the matching phase is complete, the coarsened subgraph building phase takes place. It can be parametrized so as to allow one to choose between two options. Either all coarsened vertices are kept on their local processors (that is, processors that hold at least one of the ends of the coarsened edges), as shown in the first steps of Figure~\ref{fig-sepa}, which decreases the number of vertices owned by every processor and speeds-up future computations, or else coarsened graphs are folded and duplicated, as shown in the next steps of Figure~\ref{fig-sepa}, which increases the number of working copies of the graph and can thus reduce communication and increase the final quality of the separators. As a matter of fact, separator computation algorithms, which are local heuristics, heavily depend on the quality of the coarsened graphs, and we have observed with the sequential version of \scotch\ that taking every time the best partition among two ones, obtained from two fully independent multi-level runs, usually improved overall ordering quality. By enabling the folding-with-duplication routine (which will be referred to as ``fold-dup'' in the following) in the first coarsening levels, one can implement this approach in parallel, every subgroup of processors that hold a working copy of the graph being able to perform an almost-complete independent multi-level computation, save for the very first level which is shared by all subgroups, for the second one which is shared by half of the subgroups, and so on. The problem with the fold-dup approach is that it consumes a lot of memory. Consequently, a good strategy can be to resort to folding only when the number of vertices of the graph to be considered reaches some minimum threshold. This threshold allows one to set a trade off between the level of completeness of the independent multi-level runs which result from the early stages of the fold-dup process, which impact partitioning quality, and the amount of memory to be used in the process. Once all working copies of the coarsened graphs are folded on individual processors, the algorithm enters a multi-sequential phase, illustrated at the bottom of Figure~\ref{fig-sepa}: the routines of the sequential \scotch\ library are used on every processor to complete the coarsening process, compute an initial partition, and prolong it back up to the largest centralized coarsened graph stored on the processor. Then, the partitions are prolonged back in parallel to the finer distributed graphs, selecting the best partition between the two available when prolonging to a level where fold-dup had been performed. This distributed prolongation process is repeated until we obtain a partition of the original graph. \begin{figure} ~\hfill% \includegraphics[scale=0.30]{p_f_sepa.eps} \hfill~\\*[-1em] \caption{Diagram of the parallel computation of the separator of a graph distributed across four processors, by parallel coarsening with folding-with-duplication in the last stages, multi-sequential computation of initial partitions that are locally prolonged back and refined on every processor, and then parallel uncoarsening of the best partition encountered.} \label{fig-sepa} \end{figure} \paragraph{Band refinement} The third level of concurrency concerns the refinement heuristics which are used to improve the prolonged separators. At the coarsest levels of the multi-level algorithm, when computations are restricted to individual processors, the sequential FM algorithm of \scotch\ is used, but this class of algorithms does not parallelize well. This problem can be solved in two ways: either by developing scalable and efficient local optimization algorithms, or by being able to use the existing sequential FM algorithm on very large graphs. In~\cite{chpe06a} has been proposed a solution which enables both approaches, and is based on the following reasoning. Since every refinement is performed by means of a local algorithm, which perturbs only in a limited way the position of the prolonged separator, local refinement algorithms need only to be passed a subgraph that contains the vertices that are very close to the prolonged separator. The computation and use of distributed band graphs is outlined in Figure~\ref{fig-band}. Given a distributed graph and an initial separator, which can be spread across several processors, vertices that are closer to separator vertices than some small user-defined distance are selected by spreading distance information from all of the separator vertices, using our halo exchange routine. Then, the distributed band graph is created, by adding on every processor two anchor vertices, which are connected to the last layers of vertices of each of the parts. The vertex weight of the anchor vertices is equal to the sum of the vertex weights of all of the vertices they replace, to preserve the balance of the two band parts. Once the separator of the band graph has been refined using some local optimization algorithm, the new separator is prolonged back to the original distributed graph. \begin{figure} ~\hfill% \includegraphics[scale=0.37]{p_f_band.eps} \hfill~\\*[-1em] \caption{Creation of a distributed band graph. Only vertices closest to the separator are kept. Other vertices are replaced by anchor vertices of equivalent total weight, linked to band vertices of the last layer. There are two anchor vertices per processor, to reduce communication. Once the separator has been refined on the band graph using some local optimization algorithm, the new separator is prolonged back to the original distributed graph.} \label{fig-band} \end{figure} Basing on these band graphs, we have implemented a multi-sequential refinement algorithm, outlined in Figure~\ref{fig-multi}. At every distributed uncoarsening step, a distributed band graph is created. Centralized copies of this band graph are then gathered on every participating processor, which serve to run fully independent instances of our sequential FM algorithm. The perturbation of the initial state of the sequential FM algorithm on every processor allows us to explore slightly different solution spaces, and thus to improve refinement quality. Finally, the best refined band separator is prolonged back to the distributed graph, and the uncoarsening process goes on. \begin{figure} ~\hfill% \includegraphics[scale=0.28]{p_f_multi.eps} \hfill~\\*[-1em] \caption{Diagram of the multi-sequential refinement of a separator prolonged back from a coarser graph distributed across four processors to its finer distributed graph. Once the distributed band graph is built from the finer graph, a centralized version of it is gathered on every participating processor. A sequential FM optimization can then be run independently on every copy, and the best improved separator is then distributed back to the finer graph.} \label{fig-multi} \end{figure} \subsubsection{Performance criteria} \label{sec-order-perf} The quality of orderings is evaluated with respect to several criteria. The first one, \NNZ, is the number of non-zero terms in the factored reordered matrix. The second one, \OPC, is the operation count, that is the number of arithmetic operations required to factor the matrix. The operation count that we have considered takes into consideration all operations (additions, subtractions, multiplications, divisions) required by Cholesky factorization, except square roots; it is equal to $\sum_c n_c^2$, where $n_c$ is the number of non-zeros of column $c$ of the factored matrix, diagonal included. A third criterion for quality is the shape of the elimination tree; concurrency in parallel solving is all the higher as the elimination tree is broad and short. To measure its quality, several parameters can be defined: \hmin, \hmax, and \havg\ denote the minimum, maximum, and average heights of the tree\footnote% {We do not consider as leaves the disconnected vertices that are present in some meshes, since they do not participate in the solving process.}, respectively, and \hdlt\ is the variance, expressed as a percentage of \havg. Since small separators result in small chains in the elimination tree, \havg\ should also indirectly reflect the quality of separators. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_l.tex000066400000000000000000006727261514310134000256570ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p_l.tex % % Sujet : Manuel de l'utilisateur % % du projet 'PT-Scotch' % % Bibliotheque % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Library} \label{sec-lib} All of the features provided by the programs of the \ptscotch\ distribution may be directly accessed by calling the appropriate functions of the \libscotch\ library, archived in files {\tt libptscotch.a} and {\tt libptscotcherr.a}. All of the existing parallel routines belong to five distinct classes: \begin{itemize} \item distributed source graph handling routines, which serve to declare, build, load, save, and check the consistency of distributed source graphs; %, along with their geometry data; \item distributed source mesh handling routines, which serve to declare, build, and load%, and check the consistency of distributed source meshes; \item strategy handling routines, which allow the user to declare and build parallel mapping and ordering strategies; \item parallel graph partitioning and static mapping routines, which allow the user to declare, compute, and save distributed static mappings of distributed source graphs; \item parallel ordering routines, which allow the user to declare, compute, and save distributed orderings of distributed source graphs. \end{itemize} Error handling is performed using the existing sequential routines of the \scotch\ distribution, which are described in the {\it\scotch\ User's Guide}~\scotchcitesuser. Their use is recalled in Section~\ref{sec-lib-func-error}. A \parmetis\ compatibility library, called {\tt lib\lbo ptscotch\lbo parmetis.a}, is also available. It allows users who were previously using \parmetis\ in their software to take advantage of the efficieny of \ptscotch\ without having to modify their code. The services provided by this library are described in Section~\ref{sec-lib-func-parmetis}. \subsection{Using multi-threading} \label{sec-lib-thread} \scotch\ and \ptscotch\ comprise several multi-threaded algorithms, which can significally reduce overall computation time. Also, thread management in \scotch\ is now dynamic, and is controlled by \texttt{SCOTCH\_\lbt Context} objects. These objects define user-configurable execution contexts, in which \libptscotch\ library routines can be executed independently from others. \subsubsection{Compiling at proper thread level} Two levels of multi-threading are available: multi-threading with a single thread handling MPI communications, and multi-threading with several threads being able to perform MPI communication simultaneously. This behavior is controlled at compile-time by flags ``\texttt{-DSCOTCH\_\lbt PTHREAD}'' and ``\texttt{-DSCOTCH\_\lbt PTHREAD\_\lbt MPI}''. The selection of the proper compilation flags depends on the capabilities of the platform MPI implementation. Alternately, the compilation flag ``\texttt{-DSCOTCH\_\lbt MPI\_\lbt ASYNC\_\lbt COLL}'' can be used to replace threaded synchronous communication primitives by non-threaded asynchronous communication primitives. \subsubsection{Running at proper thread level} Since \ptscotch\ is based on the MPI API, all processes must call some flavor of \texttt{MPI\_\lbt Init} before using any routine of the library that performs communication. If \ptscotch\ has been compiled without the ``\texttt{-DSCOTCH\_\lbt PTHREAD}'' flag, a call to the simple \texttt{MPI\_\lbt Init} routine will suffice. Else, the extended \texttt{MPI\_\lbt Init\_\lbt thread} initialization routine has to be used. If \ptscotch\ has been compiled with the ``\texttt{-DSCOTCH\_\lbt PTHREAD\_\lbt MPI}'' flag as well, and the MPI library is launched at the \texttt{MPI\_\lbt THREAD\_\lbt MULTIPLE} level, \ptscotch\ will take advantage of this to run threaded versions of some of its algorithms across the MPI nodes. Thread binding is essential to achieve good performance of multi-threaded programs. In \scotch, the only thread binding mechanism implemented to date relies on the Linux binding API. Please make sure to compile with flag ``\texttt{-DCOMMON\_\lbt PTHREAD\_\lbt AFFINITY\_\lbt LINUX}'' set whenever possible, to benefit from these features. \subsubsection{Launching with threads} Running a multi-threaded version of PT-Scotch on top of MPI requires great care, not to degrade performance. The key issue is to make sure that, at run time, MPI processes that run on the same computer are bound to disjoint subsets of cores. Indeed, when several MPI processes run on the same computer without implementing exclusive binding, every \texttt{SCOTCH\_\lbt Context} object associated with an MPI process will consider it can use all of the computer cores. Consequently, as many threads will be created and bound to each of the cores as there are MPI processes on the computer, resulting in extremely poor performance. On many-core platforms, it is up to the user to decide how many MPI processes, and how many threads per MPI process, are to be used. This is usually controlled by options of the \texttt{mpirun} command. For instance, in the \textsc{OpenMPI} environment, one may use options such as ``\texttt{--map-by socket}'', ``\texttt{--bind-to socket}'', ``\texttt{--bind-to core}'', etc. The result of the bindings can be displayed using the ``\texttt{--report-bindings}'' option. For instance, in this environment, one can use commands such as: \noi {\tt {\bf\%} \verb+mpirun -np 2 --map-by socket --bind-to socket +\\ {\bf\%} \verb+mpirun -np 4 --map-by socket:PE=7 --bind-to core +\\ {\bf\%} \verb+mpirun -np 8 --map-by socket:PE=3 --bind-to core +\\ } \noi to achieve the desired MPI process and thread layout. When \scotch\ is compiled with flag ``\texttt{-DCOMMON\_\lbt PTHREAD\_\lbt AFFINITY\_\lbt LINUX}'' set, each of the \texttt{SCOTCH\_\lbt Context} objects that are attached to an MPI process running a \libptscotch\ function will create its servant threads only on the cores that are bound to the main thread of this MPI process. Hence, strict core binding exclusion will be enforced across MPI processes and threads, so that each core will host at most only one thread. \subsection{Calling the routines of {\sc libScotch}} \subsubsection{Calling from C} All of the C routines of the \libscotch\ library are prefixed with ``{\tt SCOTCH\_}''. The remainder of the function names is made of the name of the type of object to which the functions apply (e\@.g\@. ``{\tt dgraph}'', ``{\tt dorder}'', etc.), followed by the type of action performed on this object: ``{\tt Init}'' for the initialization of the object, ``{\tt Exit}'' for the freeing of its internal structures, ``{\tt Load}'' for loading the object from one or several streams, and so on. Typically, functions that return an error code return zero if the function succeeds, and a non-zero value in case of error. For instance, the {\tt SCOTCH\_\lbt dgraph\lbt Init} and {\tt SCOTCH\_\lbt dgraph\lbt Load} routines, described in section~\ref{sec-lib-func-dgraph}, can be called from C by using the following code. {\tt \begin{verbatim} #include #include #include "ptscotch.h" ... SCOTCH_Dgraph grafdat; FILE * fileptr; if (SCOTCH_dgraphInit (&grafdat) != 0) { ... /* Error handling */ } if ((fileptr = fopen ("brol.grf", "r")) == NULL) { ... /* Error handling */ } if (SCOTCH_dgraphLoad (&grafdat, fileptr, -1, 0) != 0) { ... /* Error handling */ } ... \end{verbatim} } Since ``{\tt ptscotch.h}'' uses several system and communication objects which are declared in ``{\tt stdio.h}'' and ``{\tt mpi.h}'', respectively, these latter files must be included beforehand in your application code. Although the ``{\tt scotch.h}'' and ``{\tt ptscotch.h}'' files may look very similar on your system, never mistake them, and always use the ``{\tt ptscotch.h}'' file as the right include file for compiling a program which uses the parallel routines of the \libscotch\ library, whether it also calls sequential routines or not. \subsubsection{Calling from Fortran} The routines of the \libscotch\ library can also be called from Fortran. For any C function named {\tt SCOTCH\_\lbt {\it type\lbt Action}()} which is documented in this manual, there exists a {\tt SCOTCHF\lbt {\it TYPE\lbt ACTION\/}()} Fortran counterpart, in which the separating underscore character is replaced by an ``{\tt F}''. In most cases, the Fortran routines have exactly the same parameters as the C functions, save for an added trailing {\tt INTEGER} argument to store the return value yielded by the function when the return type of the C function is not {\tt void}. \\ Since all the data structures used in \libscotch\ are opaque, equivalent declarations for these structures must be provided in Fortran. These structures must therefore be defined as arrays of {\tt DOUBLEPRECISION}s, of sizes given in file {\tt ptscotchf.h}, which must be included whenever necessary. For routines that read or write data using a {\tt FILE~*} stream in C, the Fortran counterpart uses an {\tt INTEGER} parameter which is the numer of the Unix file descriptor corresponding to the logical unit from which to read or write. In most Unix implementations of Fortran, standard descriptors 0 for standard input (logical unit 5), 1 for standard output (logical unit 6) and 2 for standard error are opened by default. However, for files that are opened using {\tt OPEN} statements, an additional function must be used to obtain the number of the Unix file descriptor from the number of the logical unit. This function is called \texttt{PXFFILENO} in the normalized POSIX Fortran API, and files which use it should include the \texttt{USE IFPOSIX} directive whenever necessary. An alternate, non normalized, function also exists in most Unix implementations of Fortran, and is called {\tt FNUM}. For instance, the {\tt SCOTCH\_\lbt dgraph\lbt Init} and {\tt SCOTCH\_\lbt dgraph\lbt Load} routines, described in sections~\ref{sec-lib-func-dgraphinit} and~\ref{sec-lib-func-dgraphload}, respectively, can be called from Fortran by using the following code. {\tt \begin{verbatim} INCLUDE "ptscotchf.h" DOUBLEPRECISION GRAFDAT(SCOTCH_DGRAPHDIM) INTEGER RETVAL ... CALL SCOTCHFDGRAPHINIT (GRAFDAT (1), RETVAL) IF (RETVAL .NE. 0) THEN ... OPEN (10, FILE='brol.grf') CALL SCOTCHFDGRAPHLOAD (GRAFDAT (1), PXFFILENO (10), 1, 0, RETVAL) CLOSE (10) IF (RETVAL .NE. 0) THEN ... \end{verbatim} } Although the ``{\tt scotchf.h}'' and ``{\tt ptscotchf.h}'' files may look very similar on your system, never mistake them, and always use the ``{\tt ptscotchf.h}'' file as the include file for compiling a Fortran program that uses the parallel routines of the \libscotch\ library, whether it also calls sequential routines or not. All of the Fortran routines of the \libscotch\ library are stubs which call their C counterpart. While this poses no problem for the usual integer and double precision data types, some conflicts may occur at compile or run time if your MPI implementation does not represent the {\tt MPI\_Comm} type in the same way in C and in Fortran. Please check on your platform to see in the {\tt mpi.h} include file if the {\tt MPI\_Comm} data type is represented as an {\tt int}. If it is the case, there should be no problem in using the Fortran routines of the \ptscotch\ library. \subsubsection{Compiling and linking} The compilation of C or Fortran routines which use parallel routines of the \libscotch\ library requires that either {\tt ptscotch.h} or {\tt ptscotchf.h} be included, respectively. Since some of the parallel routines of the \libscotch\ library must be passed MPI communicators, it is necessary to include MPI files {\tt mpi.h} or {\tt mpif.h}, respectively, before the relevant \ptscotch\ include files, such that prototypes of the parallel \libscotch\ routines are properly defined. The parallel routines of the \libscotch\ library, along with taylored versions of the sequential routines, are grouped in a library file called {\tt libptscotch.a}. Default error routines that print an error message and exit are provided in the classical \scotch\ library file {\tt libptscotcherr.a}. Therefore, the linking of applications that make use of the \libscotch\ library with standard error handling is carried out by using the following options: ``{\tt -lptscotch -lptscotcherr -lmpi -lm}''. The ``{\tt -lmpi}'' option is most often not necessary, as the MPI library is automatically considered when compiling with commands such as {\tt mpicc}. If you want to handle errors by yourself, you should not link with library file {\tt libptscotcherr.a}, but rather provide a {\tt SCOTCH\_\lbt error\lbt Print()} routine. Please refer to Section~\ref{sec-lib-func-error} for more information on error handling. Programs that use both sequential and parallel routines of \scotch\ need only be linked against the parallel version of the library, as it also contains an adapted version of the sequential routines. The reason why the sequential routines are duplicated in the parallel \ptscotch\ library is because they are slightly modified so as to keep track of the parallel environment. This allows one to create ``multi-sequential'' routines that can exchange data with other processes, for instance. Because the \libscotch\ data structures contain extra parameters, never mix the \texttt{scotch.h} sequential include file and the \texttt{libptscotch.a} parallel library, as the latter expects \scotch\ data structures to be larger than the ones defined in the sequential include file. Consequently, when using only sequential routines in a sequential program, include the \texttt{scotch.h} file only and link the program against the sequential \texttt{libscotch.a} library only. When using only parallel routines, or when using a mix of sequential and parallel routines, include the \texttt{ptscotch.h} file only and link the program against the parallel \texttt{libptscotch.a} library only. When using only sequential routines in a parallel program, both options can be used. \subsubsection{Machine word size issues} \label{sec-lib-inttypesize} Graph indices are represented in \scotch\ as integer values of type {\tt SCOTCH\_\lbt Num}. By default, this type equates to the {\tt int} C type, that is, an integer type of size equal to that of the machine word. However, it can represent any other integer type. Indeed, the size of the {\tt SCOTCH\_\lbt Num} integer type can be coerced to 32 or 64 bits by using the ``{\tt -DINTSIZE32}'' or ``{\tt -DINTSIZE64}'' compilation flags, respectively, or else by using the ``{\tt -DINT=}'' definition (see Section~\ref{sec-install-inttypesize} for more information on the setting of these compilation flags). This may, however, pose a problem with MPI, the interface of which is based on the regular {\tt int} type. \ptscotch\ has been coded so as to avoid typecast bugs, but overflow errors may result from the conversion of values of a larger integer type into {\tt int}s when handling communication buffer indices. Consequently, the C interface of \scotch\ uses two types of integers. Graph-related quantities are passed as {\tt SCOTCH\_\lbt Num}s, while system-related values such as file handles, as well as return values of \libscotch\ routines, are always passed as {\tt int}s. Because of the variability of library integer type sizes, one must be careful when using the Fortran interface of \scotch, as it does not provide any prototyping information, and consequently cannot produce any warning at link time. In the manual pages of the \libscotch\ routines, Fortran prototypes are written using three types of {\tt INTEGER}s. As for the C interface, the regular {\tt INTEGER} type is used for system-based values, such as file handles and MPI communicators, as well as for return values of the \libscotch\ routines, while the {\tt INTEGER*}{\it num} type should be used for all graph-related values, in accordance to the size of the {\tt SCOTCH\_\lbt Num} type, as set by the ``{\tt -DINTSIZE}{\it x}'' compilation flags. Also, the {\tt INTEGER*}{\it idx} type represents an integer type of a size equivalent to that of a {\tt SCOTCH\_\lbt Idx}, as set by the ``{\tt -DIDXSIZE}{\it x}'' compilation flags. Values of this type are used in the Fortran interface to represent arbitrary array indices which can span across the whole address space, and consequently deserve special treatment. In practice, when \scotch\ is compiled on a 32-bit architecture so as to use 64-bit {\tt SCOTCH\_\lbt Num}s, graph indices should be declared as {\tt INTEGER*8}, while error return values should still be declared as plain {\tt INTEGER} (that is, {\tt INTEGER*4}) values. On a 32\_64-bit architecture, irrespective of whether {\tt SCOTCH\_\lbt Num}s are defined as {\tt INTEGER*4} or {\tt INTEGER*8} quantities, the {\tt SCOTCH\_\lbt Idx} type should always be defined as a 64-bit quantity, that is, an {\tt INTEGER*8}, because it stores differences between memory addresses, which are represented by 64-bit values. The above is no longer a problem if \scotch\ is compiled such that {\tt int}s equate 64-bit integers. In this case, there is no need to use any type coercing definition. \\ The \metis\ v3 compatibility library provided by \scotch\ can also run on a 64-bit architecture. Yet, if you are willing to use it this way, you will have to replace all {\tt int}'s that are passed to the \metis\ routines by 64-bit integer {\tt SCOTCH\_\lbt Num} values (even the option configuration values). However, in this case, you will no longer be able to link against the service routines of the genuine \metis/\parmetis\ v3 library, as they are only available as a 32-bit implementation. \subsection{Data types} All of the data used in the \libscotch\ interface are of integer type {\tt SCOTCH\_Num}. To hide the internals of \ptscotch\ to callers, all of the data structures are opaque, that is, declared within {\tt ptscotch.h} as dummy arrays of double precision values, for the sake of data alignment. Accessor routines, the names of which end in ``{\tt Size}'' and ``{\tt Data}'', allow callers to retrieve information from opaque structures. \\ In all of the following, whenever arrays are defined, passed, and accessed, it is assumed that the first element of these arrays is always labeled as {\tt baseval}, whether {\tt baseval} is set to $0$ (for C-style arrays) or $1$ (for Fortran-style arrays). \ptscotch\ internally manages with base values and array pointers so as to process these arrays accordingly. \subsubsection{\texttt{SCOTCH\_Dgraph} distributed graph type} \label{sec-lib-type-dgraph} In \ptscotch, distributed source graphs are represented so as to distribute graph data without any information duplication which could hinder scalability. The only data which are replicated on every process are of a size linear in the number of processes and small. Apart from these, the sum across all processes of all of the vertex data is in $O(v+p)$, where $v$ is the overall number of vertices in the distributed graph and $p$ the number of processes, and the sum of all of the edge data is in $O(e)$, where $e$ is the overall number of arcs (that is, twice the number of edges) in the distributed graph. When graphs are ill-distributed, the overall halo vertex information may also be in $o(e)$ at worst, which makes the distributed graph structure fully scalable. Distributed source graphs are described by means of adjacency lists. The description of a distributed graph requires several {\tt SCOTCH\_Num} scalars and arrays, as shown for instance in Figures~\ref{fig-lib-dgraf-one} and~\ref{fig-lib-dgraf-two}. Some of these data are said to be global, and are duplicated on every process that holds part of the distributed graph; their names contain the ``{\tt glb}'' infix. Others are local, that is, their value may differ for each process; their names contain the ``{\tt loc}'' or ``{\tt gst}'' infix. Global data have the following meaning: \begin{itemize} \iteme[{\tt baseval}] Base value for all array indexings. \iteme[{\tt vertglbnbr}] Overall number of vertices in the distributed graph. \iteme[{\tt edgeglbnbr}] Overall number of arcs in the distributed graph. Since edges are represented by both of their ends, the number of edge data in the graph is twice the number of edges. \iteme[{\tt procglbnbr}] Overall number of processes that share distributed graph data. \iteme[{\tt proccnttab}] Array holding the current number of local vertices borne by every process. \iteme[{\tt procvrttab}] Array holding the global indices from which the vertices of every process are numbered. For optimization purposes, this array has an extra slot which stores a number which must be greater than all of the assigned global indices. For each process $p$, it must be ensured that $\mbox{\tt proc\lbt vrt\lbt tab[}p + 1\mbox{\tt]} \geq (\mbox{\tt proc\lbt vrt\lbt tab[}p\mbox{\tt]} + \mbox{\tt proc\lbt cnt\lbt tab[}p\mbox{\tt]})$, that is, that no process can have more local vertices than allowed by its range of global indices. When the global numbering of vertices is continuous, for each process $p$, $\mbox{\tt proc\lbt vrt\lbt tab[}p + 1\mbox{\tt]} = (\mbox{\tt proc\lbt vrt\lbt tab[}p\mbox{\tt]} + \mbox{\tt proc\lbt cnt\lbt tab[}p\mbox{\tt]})$. \end{itemize} Local data have the following meaning: \begin{itemize} \iteme[{\tt vertlocnbr}] Number of local vertices borne by the given process. In fact, on every process $p$, {\tt vert\lbt loc\lbt nbr} is equal to ${\tt proc\lbt cnt\lbt tab}\mbox{\tt [}p\mbox{\tt]}$. \iteme[{\tt vertgstnbr}] Number of both local and ghost vertices borne by the given process. Ghost vertices are local images of neighboring vertices located on distant processes. \iteme[{\tt vertloctab}] Array of start indices in {\tt edgeloctab} and {\tt edgegsttab} of vertex adjacency sub-arrays. \iteme[{\tt vendloctab}] Array of after-last indices in {\tt edgeloctab} and {\tt edgegsttab} of vertex adjacency sub-arrays. For any local vertex $i$, with $\mbox{\tt baseval} \leq i < (\mbox{\tt baseval} + \mbox{\tt vertlocnbr})$, $\mbox{\tt vend\lbt loc\lbt tab[}i\mbox{\tt ]} - \mbox{\tt vert\lbt loc\lbt tab[}i\mbox{\tt ]}$ is the degree of vertex $i$. When all vertex adjacency lists are stored in order in {\tt edge\lbt loc\lbt tab} without any empty space between them, it is possible to save memory by not allocating the physical memory for {\tt vend\lbt loc\lbt tab}. In this case, illustrated in Figure~\ref{fig-lib-dgraf-one}, {\tt vert\lbt loc\lbt tab} is of size $\mbox{\tt vert\lbt loc\lbt nbr} + 1$ and {\tt vend\lbt loc\lbt tab} points to $\mbox{\tt vert\lbt loc\lbt tab} + 1$. For these graphs , called ``compact edge array graphs'', or ``compact graphs'' for short, {\tt vert\lbt loc\lbt tab} is sorted in ascending order, $\mbox{\tt vert\lbt loc\lbt tab[}\lbt\mbox{\tt baseval]} = \mbox{\tt baseval}$ and $\mbox{\tt vert\lbt loc\lbt tab[}\lbt\mbox{\tt baseval} + \mbox{\tt vert\lbt loc\lbt nbr]} = (\mbox{\tt baseval} + \mbox{\tt edge\lbt loc\lbt nbr})$. Since {\tt vertloctab} and {\tt vendloctab} only account for local vertices and not for ghost vertices, the sum across all processes of the sizes of these arrays does not depend on the number of ghost vertices; it is equal to $(v+p)$ for compact graphs and to $2v$ else. \iteme[{\tt veloloctab}] Optional array, of size {\tt vert\lbt loc\lbt nbr}, holding the integer load associated with every vertex. \iteme[{\tt edgeloctab}] Array, of a size equal at least to $\left(\max_{i}(\mbox{\tt vend\lbt loc\lbt tab[} i \mbox{\tt ]}) - \mbox{\tt baseval}\right)$, holding the adjacency array of every local vertex. For any local vertex $i$, with $\mbox{\tt baseval} \leq i < (\mbox{\tt baseval} + \mbox{\tt vertlocnbr})$, the global indices of the neighbors of $i$ are stored in {\tt edge\lbt loc\lbt tab} from {\tt edge\lbt loc\lbt tab\lbt [vert\lbt loc\lbt tab[$i$]]} to $\mbox{\tt edge\lbt loc\lbt tab[vend\lbt loc\lbt tab[}i\mbox{\tt ]} - 1\mbox{\tt ]}$, inclusive. Since ghost vertices do not have adjacency arrays, because only arcs from local vertices to ghost vertices are recorded and not the opposite, the overall sum of the sizes of all {\tt edge\lbt loc\lbt tab} arrays is $e$. \iteme[{\tt edgegsttab}] Optional array holding the local and ghost indices of neighbors of local vertices. For any local vertex $i$, with $\mbox{\tt baseval} \leq i < (\mbox{\tt baseval} + \mbox{\tt vertlocnbr})$, the local and ghost indices of the neighbors of $i$ are stored in {\tt edge\lbt gst\lbt tab} from {\tt edge\lbt gst\lbt tab\lbt [vert\lbt loc\lbt tab[$i$]]} to {\tt edge\lbt gst\lbt tab[vend\lbt loc\lbt tab[$i$]\lbt $- 1$]}, inclusive. Local vertices are numbered in global vertex order, starting from {\tt baseval} to $(\mbox{\tt baseval} + \mbox{\tt vertlocnbr} - 1)$, inclusive. Ghost vertices are also numbered in global vertex order, from $(\mbox{\tt baseval} + \mbox{\tt vertlocnbr})$ to $(\mbox{\tt baseval} + \mbox{\tt vertgstnbr} - 1)$, inclusive. Only {\tt edgeloctab} has to be provided by the user. {\tt edge\lbt gst\lbt tab} is internally computed by \ptscotch\ whenever needed, or can be explicitey asked for by the user by calling function {\tt SCOTCH\_\lbt dgraph\lbt Ghst}. This array can serve to index user-defined arrays of quantities borne by graph vertices, which can be exchanged between neighboring processes thanks to the {\tt SCOTCH\_\lbt dgraph\lbt Halo} routine documented in Section~\ref{sec-lib-func-dgraphhalo}. \iteme[{\tt edloloctab}] Optional array, of a size equal at least to $\left(\max_{i}(\mbox{\tt vend\lbt loc\lbt tab[} i \mbox{\tt ]}) - \mbox{\tt baseval}\right)$, holding the integer load associated with every arc. Matching arcs should always have identical loads. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{p_f_gr1.eps} \caption{Sample distributed graph and its description by \libscotch\ arrays using a continuous numbering and compact edge arrays. Numbers within vertices are vertex indices. Top graph is a global view of the distributed graph, labeled with global, continuous, indices. Bottom graphs are local views labeled with local and ghost indices, where ghost vertices are drawn in black. Since the edge array is compact, all {\tt vertloctab} arrays are of size $\mbox{\tt vertlocnbr} + 1$, and {\tt vendloctab} points to $\mbox{\tt vertloctab} + 1$. {\tt edgeloctab} edge arrays hold global indices of end vertices, while optional {\tt edgegsttab} edge arrays hold local and ghost indices. {\tt edgelocnbr} is the local number of arcs (that is, twice the number of edges), including arcs to local vertices as well as to ghost vertices {\tt veloloctab} and {\tt edloloctab} are not represented.} \label{fig-lib-dgraf-one} \end{figure} \begin{figure} \centering\includegraphics[scale=0.47]{p_f_gr2.eps} \caption{Adjacency structure of the sample graph of Figure~\protect\ref{fig-lib-dgraf-one} with a disjoint edge array and a discontinuous ordering. Both {\tt vertloctab} and {\tt vendloctab} are of size {\tt vertlocnbr}. This allows for the handling of dynamic graphs, the structure of which can evolve with time.} \label{fig-lib-dgraf-two} \end{figure} Dynamic graphs can be handled elegantly by using the {\tt vend\lbt loc\lbt tab} and {\tt proc\lbt vrt\lbt tab} arrays. In order to dynamically manage distributed graphs, one just has to reserve index ranges large enough to create new vertices on each process, and to allocate {\tt vert\lbt loc\lbt tab}, {\tt vend\lbt loc\lbt tab} and {\tt edge\lbt loc\lbt tab} arrays that are large enough to contain all of the expected new vertex and edge data. This can be done by passing {\tt SCOTCH\_\lbt graph\lbo Build} a maximum number of local vertices, {\tt vert\lbt loc\lbt max}, greater than the current number of local vertices, {\tt vert\lbt loc\lbt nbr}. On every process $p$, vertices are globally labeled starting from ${\tt proc\lbt vrt\lbt tab}\mbox{\tt [}p\mbox{\tt ]}$, and locally labeled from {\tt baseval}, leaving free space at the end of the local arrays. To remove some vertex of local index $i$, one just has to replace $\mbox{\tt vert\lbt loc\lbt tab}\mbox{\tt [}i\mbox{\tt ]}$ and ${\tt vend\lbt loc\lbt tab}\mbox{\tt [}i\mbox{\tt ]}$ with the values of ${\tt vert\lbt loc\lbt tab}\lbt \mbox{\tt [vert\lbt loc\lbt nbr}-1\mbox{\tt ]}$ and ${\tt vend\lbt loc\lbt tab}\lbt \mbox{\tt [vert\lbt loc\lbt nbr}-1\mbox{\tt ]}$, respectively, and browse the adjacencies of all neighbors of former vertex $(\mbox{\tt vert}\lbt\mbox{\tt loc}\lbt\mbox{\tt nbr}-1)$ such that all $(\mbox{\tt vert}\lbt\mbox{\tt loc}\lbt\mbox{\tt nbr}-1)$ indices are turned into $i$s. Then, {\tt vert\lbt loc\lbt nbr} must be decremented, and {\tt SCOTCH\_\lbt dgraph\lbt Build()} must be called to account for the change of topology. If a graph building routine such as {\tt SCOTCH\_\lbt dgraph\lbt Load()} or {\tt SCOTCH\_\lbt dgraph\lbt Build()} had already been called on the {\tt SCOTCH\_\lbt Dgraph} structure, {\tt SCOTCH\_\lbt dgraph\lbt Free()} has to be called first in order to free the internal structures associated with the older version of the graph, else these data would be lost, which would result in memory leakage. To add a new vertex, one has to fill {\tt vert\lbt loc\lbt tab\lbt [vertnbr\lbt -1]} and {\tt vend\lbt loc\lbt tab\lbt [vertnbr\lbt -1]} with the starting and end indices of the adjacency sub-array of the new vertex. Then, the adjacencies of its neighbor vertices must also be updated to account for it. If free space had been reserved at the end of each of the neighbors, one just has to increment the ${\tt vend\lbt loc\lbt tab}\mbox{\tt [}i\mbox{\tt ]}$ values of every neighbor $i$, and add the index of the new vertex at the end of the adjacency sub-array. If the sub-array cannot be extended, then it has to be copied elsewhere in the edge array, and both ${\tt vert\lbt loc\lbt tab}\mbox{\tt [}i\mbox{\tt ]}$ and ${\tt vend\lbt loc\lbt tab}\mbox{\tt [}i\mbox{\tt ]}$ must be updated accordingly. With simple housekeeping of free areas of the edge array, dynamic arrays can be updated with as little data movement as possible. \subsubsection{\texttt{SCOTCH\_Dmesh} distributed mesh type} \label{sec-lib-type-dmesh} The distributed mesh data type is currently a prototype, which has no official support. Its main use is to host data that will eventually serve to compute a \texttt{SCOTCH\_\lbt Dgraph} distributed dual graph. Unlike other \scotch\ and \ptscotch\ data structures, such as the \texttt{SCOTCH\_\lbt Mesh} centralized data structure, which are symmetric, this mesh data type only provides adjacency lists for elements: the list of nodes connected to a given element is available, while the node-to-element adjacency is currently not. Hence, at the time being, there is no possibility to provide node weights, since node vertices have no existence. Element weights are not handled to date either, but that may change in the future if the need arises. Due to the prototype nature of this data type, its internal structure may be subject to changes at any time. As said, the \texttt{SCOTCH\_\lbt Dmesh} structure only holds the minimum set of information needed to perform dual graph computation. The only data which are replicated on every process are of a size linear in the number of processes and small. Apart from these, the sum across all processes of all of the element vertex data is in $O(v_e+p)$, where $v_e$ is the overall number of vertices in the distributed mesh and $p$ the number of processes, and the sum of all of the edge data is in $O(e_e)$, where $e_e$ is the overall number of element-to-node arcs in the distributed mesh. No halo information is present. Distributed source meshes are described by means of adjacency lists. The description of a distributed mesh requires several \texttt{SCOTCH\_\lbt Num} scalars and arrays, as illustrated in Figure~\ref{fig-lib-dmesh-one}. Some of these data are said to be global, and are duplicated on every process that holds part of the distributed mesh; their names contain the ``{\tt glb}'' infix. Others are local, that is, their value may differ for each process; their names contain the ``{\tt loc}'' infix. Global data have the following meaning: \begin{itemize} \iteme[{\tt baseval}] Base value for all array indexings. \iteme[{\tt velmglbnbr}] Overall number of element vertices in the distributed mesh. \iteme[{\tt eelmglbnbr}] Overall number of element-to-node arcs in the distributed mesh, which is also the overall number of node-to-element arcs. \iteme[{\tt vnodglbnbr}] Overall number of node vertices in the distributed mesh. \iteme[{\tt procglbnbr}] Overall number of processes that share distributed mesh data. \iteme[{\tt prelvrttab}] Array holding the global indices from which the element vertices of every process are numbered. For optimization purposes, this array has an extra slot, to record the after-last based number of elements. Since, to date, distributed meshes are compact data structures, $\mbox{\tt prel\lbt vrt\lbt tab[0]} = \mbox{\tt baseval}$, $\mbox{\tt prel\lbt vrt\lbt tab[proc\lbt glb\lbt nbr]} = (\mbox{\tt velm\lbt glb\lbt nbr} + \mbox{\tt baseval})$, and, for each process index $p$, and with respect to its local variable \texttt{velm\lbt loc\lbt nbr}, $\mbox{\tt prel\lbt vrt\lbt tab[}p + 1\mbox{\tt]} = (\mbox{\tt prel\lbt vrt\lbt tab[}p\mbox{\tt]} + \mbox{\tt velm\lbt loc\lbt nbr})$ holds. \end{itemize} Local data have the following meaning: \begin{itemize} \iteme[{\tt velmlocnbr}] Number of local element vertices borne by the given process. \iteme[{\tt eelmlocnbr}] Number of local element-to-node arcs borne by the given process. \iteme[{\tt velmloctab}] Array of start indices in {\tt eelmloctab} of vertex adjacency sub-arrays. Since distributed mesh numbering is compact, this array possesses and extra slot, to record the after-last based number of local element-to-node arcs, that is, $\mbox{\tt velm\lbt loc\lbt tab[velm\lbt loc\lbt nbr]} = (\mbox{\tt eelm\lbt loc\lbt nbr[} + \mbox{\tt base\lbt val})$ holds. \iteme[{\tt eelmloctab}] Array, of a size equal to \texttt{eelm\lbt loc\lbt nbr}, holding the adjacency array of every local element vertex, in the form of a set of based, global node vertex indices. For any local element vertex $i$, with $\mbox{\tt baseval} \leq i < (\mbox{\tt baseval} + \mbox{\tt velm\lbt loc\lbt nbr})$, the global indices of the node neighbors of $i$ are stored in \texttt{eelm\lbt loc\lbt tab} from \texttt{eelm\lbt loc\lbt tab\lbt [velm\lbt loc\lbt tab[$i$]]} to $\mbox{\tt eelm\lbt loc\lbt tab[velm\lbt loc\lbt tab[}i + 1\mbox{\tt ]} - 1\mbox{\tt ]}$, inclusive. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{p_f_adm.eps} \caption{Sample distributed mesh and its description by \libscotch\ arrays. Numbers within vertices are element and node vertex indices. Top mesh is a global view of the distributed mesh, labeled with global, continuous, indices. Bottom graphs are local views. Since the element edge array is compact, all \texttt{velmloctab} arrays are of size $\mbox{\texttt{velmlocnbr}} + 1$. \texttt{eelmloctab} edge arrays hold global indices of end node vertices. \texttt{eelmlocnbr} is the local number of element-to-node arcs.} \label{fig-lib-dmesh-one} \end{figure} \subsubsection{\texttt{SCOTCH\_Dordering} distributed block ordering type} \label{sec-lib-type-dordering} Block orderings associated with distributed graphs are described by means of block and permutation arrays, made of \texttt{SCOTCH\_Num}s. In order for all orderings to have the same structure, irrespective of whether they are centralized or distributed, or whether they are created from graphs or meshes, all ordering data indices start from \texttt{baseval}. Consequently, row indices are related to vertex indices in memory in the following way: row $i$ is associated with vertex $i$ of the \texttt{SCOTCH\_\lbt Dgraph} structure as if the vertex numbering used for the graph was continuous. Block orderings are made of the following data: \begin{itemize} \iteme[{\tt permtab}] Array holding the permutation of the reordered matrix. Thus, if $k = \mbox{\tt permtab}\mbox{\tt [}i\mbox{\tt ]}$, then row $i$ of the original matrix is now row $k$ of the reordered matrix, that is, row $i$ is the $k^{\mbox{th}}$ pivot. \iteme[{\tt peritab}] Inverse permutation of the reordered matrix. Thus, if $i = \mbox{\tt peritab[$k$]}$, then row $k$ of the reordered matrix was row $i$ of the original matrix. \iteme[{\tt cblknbr}] Number of column blocks (that is, supervariables) in the block ordering. \iteme[{\tt rangtab}] Array of ranges for the column blocks. Column block $c$, with $\mbox{\tt baseval} \leq c < (\mbox{\tt cblknbr} + \mbox{\tt baseval})$, contains columns with indices ranging from {\tt rangtab[$i$]} to {\tt rangtab[$i + 1$]}, exclusive, in the reordered matrix. Therefore, {\tt rangtab[baseval]} is always equal to {\tt baseval}, and {\tt rangtab[cblknbr + baseval]} is always equal to $\mbox{\tt vert\lbt glb\lbt nbr} + \mbox{\tt baseval}$. % for graphs % and to $\mbox{\tt vnod\lbt glb\lbt nbr} + \mbox{\tt baseval}$ for meshes. In order to avoid memory errors when column blocks are all single columns, the size of {\tt rangtab} must always be one more than the number of columns, that is, $\mbox{\tt vert\lbt glb\lbt nbr} + 1$. % for graphs and $\mbox{\tt vnod\lbt glb\lbt nbr} + 1$ for meshes. \iteme[{\tt treetab}] Array of ascendants of permuted column blocks in the separators tree. {\tt treetab[i]} is the index of the father of column block $i$ in the separators tree, or $-1$ if column block $i$ is the root of the separators tree. Whenever separators or leaves of the separators tree are split into subblocks, as the block splitting, minimum fill or minimum degree methods do, all subblocks of the same level are linked to the column block of higher index belonging to the closest separator ancestor. Indices in {\tt treetab} are based, in the same way as for the other blocking structures. See Figure~\ref{fig-lib-ord-block} for a complete example. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{p_f_orb.eps} \caption{Arrays resulting from the ordering by complete nested dissection of a 4 by 3 grid based from $1$. Leftmost grid is the original grid, and righmost grid is the reordered grid, with separators shown and column block indices written in bold.} % using strategy n{sep=hf{bal=0},ole=s,ose=s} \label{fig-lib-ord-block} \end{figure} \subsection{Strategy strings} The behavior of the static mapping and block ordering routines of the \libscotch\ library is parametrized by means of strategy strings, which describe how and when given partitioning or ordering methods should be applied to graphs and subgraphs % , or to meshes and submeshes. \subsubsection{Using default strategy strings} \label{sec-lib-format-strat-default} While strategy strings can be built by hand, according to the syntax given in the next sections, users who do not have specific needs can take advantage of default strategies already implemented in the \libscotch, which will yield very good results in most cases. By doing so, they will spare themselves the hassle of updating their strategies to comply to subsequent syntactic changes, and they will benefit from the availability of new partitioning or ordering methods as soon as they are made available. The simplest way to use default strategy strings is to avoid specifying any. By initializing a strategy object, by means of the {\tt SCOTCH\_\lbt stratInit} routine, and by using the initialized strategy object as is, without further parametrization, this object will be filled with a default strategy when passing it as a parameter to the next partitioning or ordering routine to be called. On return, the strategy object will contain a fully specified strategy, tailored for the type of operation which has been requested. Consequently, a fresh strategy object that was used to partition a graph cannot be used afterward as a default strategy for calling an ordering routine, for instance, as partitioning and ordering strategies are incompatible. The \libscotch\ also provides helper routines which allow users to express their preferences on the kind of strategy that they need. These helper routines, which are of the form {\tt SCOTCH\_\lbt strat\lbt *\lbt Build}, tune default strategy strings according to parameters provided by the user, such as the requested number of parts (used as a hint to select the most efficient partitioning routines), the desired maximum load imbalance ratio, and a set of preference flags. While some of these flags are antagonistic, most of them can be combined, by means of addition or ``binary or'' operators. These flags are the following. They are grouped by application class. \paragraph{Global flags} \begin{itemize} \iteme[{\tt SCOTCH\_STRATDEFAULT}] Default behavior. No flags are set. \iteme[{\tt SCOTCH\_STRATBALANCE}] Enforce load balance as much as possible. \iteme[{\tt SCOTCH\_STRATQUALITY}] Privilege quality over speed. \iteme[{\tt SCOTCH\_STRATSAFETY}] Do not use methods that can lead to the occurrence of problematic events, such as floating point exceptions, which could not be properly handled by the calling software. \iteme[{\tt SCOTCH\_STRATSPEED}] Privilege speed over quality. \end{itemize} %% \paragraph{Mapping and partitioning flags} %% \begin{itemize} %% \iteme[{\tt SCOTCH\_STRATRECURSIVE}] %% Use only recursive bipartitioning methods, and not direct k-way %% methods. When this flag is not set, any combination of methods can be %% used, so as to achieve the best result according to other user %% preferences. %% \iteme[{\tt SCOTCH\_STRATREMAP}] %% Use the strategy for remapping an existing partition. %% \end{itemize} \paragraph{Ordering flags} \begin{itemize} \iteme[{\tt SCOTCH\_STRATLEVELMAX}] Create at most the prescribed levels of nested dissection separators. If the number of levels is less than the logarithm of the number of processing elements used, distributed pieces of the separated subgraph may have to be centralized so that the leaves can be ordered, which may result in memory shortage. \iteme[{\tt SCOTCH\_STRATLEVELMIN}] Create at least the prescribed levels of nested dissection separators. When used in conjunction with {\tt SCOTCH\_\lbt STRAT\lbt LEVEL\lbt MAX}, the exact number of nested dissection levels will be performed, unless the graph to order is too small. \iteme[{\tt SCOTCH\_STRATLEAFSIMPLE}] Order nested dissection leaves as cheaply as possible. \iteme[{\tt SCOTCH\_STRATSEPASIMPLE}] Order nested dissection separators as cheaply as possible. \end{itemize} \subsubsection{Parallel mapping strategy strings} \label{sec-lib-format-strat-pmap} A parallel mapping strategy is made of one or several parallel mapping methods, which can be combined by means of strategy operators. The strategy operators that can be used in mapping strategies are listed below, by increasing precedence. \begin{itemize} \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single mapping method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current mapping task, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a node variable, {\it val\/} is either a node variable or a constant of the type of variable {\it var}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The node variables are listed below, along with their types. \begin{itemize} \iteme[{\tt edge}] The global number of arcs of the current subgraph. Integer. \iteme[{\tt levl}] The level of the subgraph in the recursion tree, starting from zero for the initial graph at the root of the tree. Integer. \iteme[{\tt load}] The overall sum of the vertex loads of the subgraph. It is equal to {\tt vert} if the graph has no vertex loads. Integer. \iteme[{\tt mdeg}] The maximum degree of the subgraph. Integer. \iteme[{\tt proc}] The number of processes on which the current subgraph is distributed at this level of the separators tree. Integer. \iteme[{\tt rank}] The rank of the current process among the group of processes on which the current subgraph is distributed at this level of the separators tree. Integer. \iteme[{\tt vert}] The global number of vertices of the current subgraph. Integer. \end{itemize} \end{itemize} \iteme[{\it method\/}{[{\tt \{}{\it parameters\/}{\tt \}}]}] Parallel graph mapping method. Available parallel mapping methods are listed below. \end{itemize} The currently available parallel mapping methods are the following. \begin{itemize} \iteme[{\tt r}] Dual recursive bipartitioning method. The parameters of the dual recursive bipartitioning method are given below. \begin{itemize} \iteme[{\tt seq=}{\it strat}] Set the sequential mapping strategy that is used on every centralized subgraph of the recursion tree, once the dual recursive bipartitioning process has gone far enough such that the number of processes handling some subgraph is restricted to one. \iteme[{\tt sep=}{\it strat}] Set the parallel graph bipartitioning strategy that is used on every current job of the recursion tree. Parallel graph bipartitioning strategies are described below, in section~\ref{sec-lib-format-strat-pbipart}. \end{itemize} \end{itemize} \subsubsection{Parallel graph bipartitioning strategy strings} \label{sec-lib-format-strat-pbipart} A parallel graph bipartitioning strategy is made of one or several parallel graph bipartitioning methods, which can be combined by means of strategy operators. Strategy operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it strat1\/}{\tt |}{\it strat2}] Selection operator. The result of the selection is the best bipartition of the two that are obtained by the distinct application of {\it strat1\/} and {\it strat2\/} to the current bipartition. \iteme[{\it strat1$\:$}{\it strat2}] Combination operator. Strategy {\it strat2\/} is applied to the bipartition resulting from the application of strategy {\it strat1\/} to the current bipartition. Typically, the first method used should compute an initial bipartition from scratch, and every following method should use the result of the previous one at its starting point. \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single bipartitioning method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current active graph, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a graph or node variable, {\it val\/} is either a graph or node variable or a constant of the type of variable {\it var\/}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The graph and node variables are listed below, along with their types. \begin{itemize} \iteme[{\tt edge}] The global number of edges of the current subgraph. Integer. \iteme[{\tt levl}] The level of the subgraph in the bipartition or multi-level tree, starting from zero for the initial graph at the root of the tree. Integer. \iteme[{\tt load}] The overall sum of the vertex loads of the subgraph. It is equal to {\tt vert} if the graph has no vertex loads. Integer. \iteme[{\tt load0}] The vertex load of the first subset of the current bipartition of the current graph. Integer. \iteme[{\tt proc}] The number of processes on which the current subgraph is distributed at this level of the nested dissection process. Integer. \iteme[{\tt rank}] The rank of the current process among the group of processes on which the current subgraph is distributed at this level of the nested dissection process. Integer. \iteme[{\tt vert}] The number of vertices of the current subgraph. Integer. \end{itemize} \end{itemize} The currently available parallel vertex separation methods are the following. \begin{itemize} \iteme[{\tt b}] Band method. Basing on the current distributed graph and on its partition, this method creates a new distributed graph reduced to the vertices which are at most at a given distance from the current frontier, runs a parallel graph bipartitioning strategy on this graph, and prolongs back the new bipartition to the current graph. This method is primarily used to run bipartition refinement methods during the uncoarsening phase of the multi-level parallel graph bipartitioning method. The parameters of the band method are listed below. \begin{itemize} \iteme[{\tt bnd=}{\it strat}] Set the parallel graph bipartitioning strategy to be applied to the band graph. \iteme[{\tt org=}{\it strat}] Set the parallel graph bipartitioning strategy to be applied to the full distributed graph if the band graph could not be extracted. \iteme[{\tt width=}{\it val}] Set the maximum distance from the current frontier of vertices to be kept in the band graph. $0$ means that only frontier vertices themselves are kept, $1$ that immediate neighboring vertices are kept too, and so on. \end{itemize} \iteme[{\tt d}] Parallel diffusion method. This method, presented in its sequential formulation in~\cite{pell07b}, flows two kinds of antagonistic liquids, scotch and anti-scotch, from two source vertices, and sets the new frontier as the limit between vertices which contain scotch and the ones which contain anti-scotch. Because selecting the source vertices is essential to the obtainment of useful results, this method has been hard-coded so that the two source vertices are the two vertices of highest indices, since in the band method these are the anchor vertices which represent all of the removed vertices of each part. Therefore, this method must be used on band graphs only, or on specifically crafted graphs. Applying it to any other graphs is very likely to lead to extremely poor results. The parameters of the diffusion bipartitioning method are listed below. \begin{itemize} \iteme[{\tt dif=}{\it rat}] Fraction of liquid which is diffused to neighbor vertices at each pass. To achieve convergence, the sum of the {\tt dif} and {\tt rem} parameters must be equal to $1$, but in order to speed-up the diffusion process, other combinations of higher sum can be tried. In this case, the number of passes must be kept low, to avoid numerical overflows which would make the results useless. \iteme[{\tt pass=}{\it nbr}] Set the number of diffusion sweeps performed by the algorithm. This number depends on the width of the band graph to which the diffusion method is applied. Useful values range from $30$ to $500$ according to chosen {\tt dif} and {\tt rem} coefficients. \iteme[{\tt rem=}{\it rat}] Fraction of liquid which remains on vertices at each pass. See above. \end{itemize} \iteme[{\tt m}] Parallel multi-level method. The parameters of the multi-level method are listed below. \begin{itemize} \iteme[{\tt asc=}{\it strat}] Set the strategy that is used to refine the distributed bipartition obtained at ascending levels of the uncoarsening phase by prolongation of the bipartition computed for coarser graphs. % or meshes. This strategy is not applied to the coarsest graph, % or mesh for which only the {\tt low} strategy is used. \iteme[{\tt dlevl=}{\it nbr}] Set the minimum level after which duplication is allowed in the folding process. A value of $-1$ results in duplication being always performed when folding. \iteme[{\tt dvert=}{\it nbr}] Set the average number of vertices per process under which the folding process is performed during the coarsening phase. \iteme[{\tt low=}{\it strat}] Set the strategy that is used to compute the bipartition of the coarsest distributed graph, % or mesh at the lowest level of the coarsening process. \iteme[{\tt rat=}{\it rat}] Set the threshold maximum coarsening ratio over which graphs % or meshes are no longer coarsened. The ratio of any given coarsening cannot be less that $0.5$ (case of a perfect matching), and cannot be greater than $1.0$. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph % or mesh has fewer node vertices than the minimum number of vertices allowed. \iteme[{\tt vert=}{\it nbr}] Set the threshold minimum size under which graphs % or meshes are no longer coarsened. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph % or mesh has fewer node vertices than the minimum number of vertices allowed. \end{itemize} \iteme[{\tt q}] Multi-sequential method. The current distributed graph and its separator are centralized on every process that holds a part of it, and a sequential graph bipartitioning method is applied independently to each of them. Then, the best bipartition found is prolonged back to the distributed graph. This method is primarily designed to operate on band graphs, which are orders of magnitude smaller than their parent graph. Else, memory bottlenecks are very likely to occur. The parameters of the multi-sequential method are listed below. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Set the sequential edge separation strategy that is used to refine the bipartition of the centralized graph. For a description of all of the available sequential bipartitioning methods, please refer to the {\it\scotch\ User's Guide}~\scotchcitesuser. \end{itemize} \iteme[{\tt x}] Load balance enforcement method. This method moves as many vertices from the heaviest part to the lightest one so as to reduce load imbalance as much as possible, without impacting communication load too negatively. The only parameter of this method is listed below. \begin{itemize} \iteme[{\tt sbbt=}{\it nbr}] Number of sub-buckets to sort communication gains. $5$ is a common value. \end{itemize} \iteme[{\tt z}] Zero method. This method moves all of the vertices to the first part, resulting in an empty frontier. Its main use is to stop the bipartitioning process whenever some condition is true. \end{itemize} \end{itemize} \subsubsection{Parallel ordering strategy strings} \label{sec-lib-format-strat-pord} A parallel ordering strategy is made of one or several parallel ordering methods, which can be combined by means of strategy operators. The strategy operators that can be used in ordering strategies are listed below, by increasing precedence. \begin{itemize} \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single ordering method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current node of the separators tree, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a node variable, {\it val\/} is either a node variable or a constant of the type of variable {\it var}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The node variables are listed below, along with their types. \begin{itemize} \iteme[{\tt edge}] The global number of arcs of the current subgraph. Integer. \iteme[{\tt levl}] The level of the subgraph in the separators tree, starting from zero for the initial graph at the root of the tree. Integer. \iteme[{\tt load}] The overall sum of the vertex loads of the subgraph. It is equal to {\tt vert} if the graph has no vertex loads. Integer. \iteme[{\tt mdeg}] The maximum degree of the subgraph. Integer. \iteme[{\tt proc}] The number of processes on which the current subgraph is distributed at this level of the separators tree. Integer. \iteme[{\tt rank}] The rank of the current process among the group of processes on which the current subgraph is distributed at this level of the separators tree. Integer. \iteme[{\tt vert}] The global number of vertices of the current subgraph. Integer. \end{itemize} \end{itemize} \iteme[{\it method\/}{[{\tt \{}{\it parameters\/}{\tt \}}]}] Parallel graph ordering method. Available parallel ordering methods are listed below. \end{itemize} The currently available parallel ordering methods are the following. \begin{itemize} \iteme[{\tt n}] Nested dissection method. The parameters of the nested dissection method are given below. \begin{itemize} \iteme[{\tt ole=}{\it strat}] Set the parallel ordering strategy that is used on every distributed leaf of the parallel separators tree if the node separation strategy {\tt sep} has failed to separate it further. \iteme[{\tt ose=}{\it strat}] Set the parallel ordering strategy that is used on every distributed separator of the separators tree. \iteme[{\tt osq=}{\it strat}] Set the sequential ordering strategy that is used on every centralized subgraph of the separators tree, once the nested dissection process has gone far enough such that the number of processes handling some subgraph is restricted to one. \iteme[{\tt sep=}{\it strat}] Set the parallel node separation strategy that is used on every current leaf of the separators tree to make it grow. Parallel node separation strategies are described below, in section~\ref{sec-lib-format-strat-pnsep}. \end{itemize} \iteme[{\tt q}] Sequential ordering method. The distributed graph is gathered onto a single process which runs a sequential ordering strategy. The only parameter of the sequential method is given below. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Set the sequential ordering strategy that is applied to the centralized graph. For a description of all of the available sequential ordering methods, please refer to the {\it\scotch\ User's Guide}~\scotchcitesuser. \end{itemize} \iteme[{\tt s}] Simple method. Vertices are ordered in their natural order. This method is fast, and should be used to order separators if the number of extra-diagonal blocks is not relevant \end{itemize} \subsubsection{Parallel node separation strategy strings} \label{sec-lib-format-strat-pnsep} A parallel node separation strategy is made of one or several parallel node separation methods, which can be combined by means of strategy operators. Strategy operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it strat1\/}{\tt |}{\it strat2}] Selection operator. The result of the selection is the best vertex separator of the two that are obtained by the distinct application of {\it strat1\/} and {\it strat2\/} to the current separator. \iteme[{\it strat1$\:$}{\it strat2}] Combination operator. Strategy {\it strat2\/} is applied to the vertex separator resulting from the application of strategy {\it strat1\/} to the current separator. Typically, the first method used should compute an initial separation from scratch, and every following method should use the result of the previous one as a starting point. \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single separation method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current subgraph, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a graph or node variable, {\it val\/} is either a graph or node variable or a constant of the type of variable {\it var\/}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The graph and node variables are listed below, along with their types. \begin{itemize} \iteme[{\tt edge}] The global number of edges of the current subgraph. Integer. \iteme[{\tt levl}] The level of the subgraph in the separators tree, starting from zero for the initial graph at the root of the tree. Integer. \iteme[{\tt load}] The overall sum of the vertex loads of the subgraph. It is equal to {\tt vert} if the graph has no vertex loads. Integer. \iteme[{\tt proc}] The number of processes on which the current subgraph is distributed at this level of the nested dissection process. Integer. \iteme[{\tt rank}] The rank of the current process among the group of processes on which the current subgraph is distributed at this level of the nested dissection process. Integer. \iteme[{\tt vert}] The number of vertices of the current subgraph. Integer. \end{itemize} \end{itemize} The currently available parallel vertex separation methods are the following. \begin{itemize} \iteme[{\tt b}] Band method. Basing on the current distributed graph and on its partition, this method creates a new distributed graph reduced to the vertices which are at most at a given distance from the current separator, runs a parallel vertex separation strategy on this graph, and prolongs back the new separator to the current graph. This method is primarily used to run separator refinement methods during the uncoarsening phase of the multi-level parallel graph separation method. The parameters of the band method are listed below. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Set the parallel vertex separation strategy to be applied to the band graph. \iteme[{\tt width=}{\it val}] Set the maximum distance from the current separator of vertices to be kept in the band graph. $0$ means that only separator vertices themselves are kept, $1$ that immediate neighboring vertices are kept too, and so on. \end{itemize} \iteme[{\tt m}] Parallel vertex multi-level method. The parameters of the vertex multi-level method are listed below. \begin{itemize} \iteme[{\tt asc=}{\it strat}] Set the strategy that is used to refine the distributed vertex separators obtained at ascending levels of the uncoarsening phase by prolongation of the separators computed for coarser graphs. % or meshes. This strategy is not applied to the coarsest graph, % or mesh for which only the {\tt low} strategy is used. \iteme[{\tt dlevl=}{\it nbr}] Set the minimum level after which duplication is allowed in the folding process. A value of $-1$ results in duplication being always performed when folding. \iteme[{\tt dvert=}{\it nbr}] Set the average number of vertices per process under which the folding process is performed during the coarsening phase. \iteme[{\tt low=}{\it strat}] Set the strategy that is used to compute the vertex separator of the coarsest distributed graph, % or mesh at the lowest level of the coarsening process. \iteme[{\tt rat=}{\it rat}] Set the threshold maximum coarsening ratio over which graphs % or meshes are no longer coarsened. The ratio of any given coarsening cannot be less that $0.5$ (case of a perfect matching), and cannot be greater than $1.0$. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph % or mesh has fewer node vertices than the minimum number of vertices allowed. \iteme[{\tt vert=}{\it nbr}] Set the threshold minimum size under which graphs % or meshes are no longer coarsened. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph % or mesh has fewer node vertices than the minimum number of vertices allowed. \end{itemize} \iteme[{\tt q}] Multi-sequential method. The current distributed graph and its separator are centralized on every process that holds a part of it, and a sequential vertex separation method is applied independently to each of them. Then, the best separator found is prolonged back to the distributed graph. This method is primarily designed to operate on band graphs, which are orders of magnitude smaller than their parent graph. Else, memory bottlenecks are very likely to occur. The parameters of the multi-sequential method are listed below. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Set the sequential vertex separation strategy that is used to refine the separator of the centralized graph. For a description of all of the available sequential methods, please refer to the {\it\scotch\ User's Guide}~\scotchcitesuser. \end{itemize} \iteme[{\tt z}] Zero method. This method moves all of the node vertices to the first part, resulting in an empty separator. Its main use is to stop the separation process whenever some condition is true. \end{itemize} \end{itemize} \subsection{Distributed graph handling routines} \label{sec-lib-func-dgraph} \subsubsection{{\tt SCOTCH\_dgraphAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Dgraph * SCOTCH\_dgraphAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Dgraph} structure. It is the user's responsibility to free this memory when it is no longer needed. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt dgraph\lbt Init} routine. \progret {\tt SCOTCH\_dgraphAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphBand}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphBand ( & SCOTCH\_Dgraph * const & orggrafptr, \\ & const SCOTCH\_Num & fronlocnbr, \\ & const SCOTCH\_Num * const & fronloctab, \\ & const SCOTCH\_Num & distval, \\ & SCOTCH\_Dgraph * const & bndgrafptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphband ( & doubleprecision (*) & orggrafdat, \\ & integer*{\it num} & seedlocnbr, \\ & integer*{\it num} (*) & seedloctab, \\ & integer*{\it num} & distval, \\ & doubleprecision (*) & bndgrafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphBand} routine creates in the {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt bndgrafptr} a distributed band graph induced from the {\tt SCOTCH\_\lbt Dgraph} pointed to by {\tt orggrafptr}. The distributed band graph will contain all the vertices of the original graph located at a distance smaller than or equal to {\tt distval} from any vertex provided in the {\tt seedloctab} lists of seed vertices. On each process, the {\tt seedloctab} array should contain the local indices of the local vertices that will serve as seeds. The number of such local vertices is passed to {\tt SCOTCH\_\lbt dgraph\lbt Band} in the {\tt seedlocnbr} value. The size of the {\tt seedloctab} array should be at least equal to the number of local vertices of the original graph, as it is internally used as a queue array. Hence, no user data should be placed immediately after the {\tt seedlocnbr} values in the array, as they are most likely to be overwritten by {\tt SCOTCH\_\lbt dgraph\lbt Band}. {\tt bndgrafptr} must have been initialized with the {\tt SCOTCH\_\lbt dgraph\lbt Init} routine before {\tt SCOTCH\_dgraph\lbt Band} is called. The communicator that is passed to it can either be the communicator used by the original graph {\tt org\lbt graf\lbt ptr}, or any congruent communicator created by using {\tt MPI\_\lbt Comm\_\lbt dup} on this communicator. Using a distinct communicator for the induced band graph allows subsequent library routines to be called in parallel on the two graphs after the band graph is created. Induced band graphs have vertex labels attached to each of their vertices, in the {\tt vlbl\lbt loc\lbt tab} array. If the original graph had vertex labels attached to it, band graph vertex labels are the labels of the corresponding vertices in the original graph. Else, band graph vertex labels are the global indices of corresponding vertices in the original graph. Depending on original graph vertex and seed distributions, the distribution of induced band graph vertices may be highly imbalanced. In order for further computations on this distributed graph to scale well, a redistribution of its data may be necessary, using the {\tt SCOTCH\_dgraph\lbt Redist} routine. \progret {\tt SCOTCH\_dgraphBand} returns $0$ if the band graph structure has been successfully created, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphBuild ( & SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Num & baseval, \\ & const SCOTCH\_Num & vertlocnbr, \\ & const SCOTCH\_Num & vertlocmax, \\ & const SCOTCH\_Num * & vertloctab, \\ & const SCOTCH\_Num * & vendloctab, \\ & const SCOTCH\_Num * & veloloctab, \\ & const SCOTCH\_Num * & vlblocltab, \\ & const SCOTCH\_Num & edgelocnbr, \\ & const SCOTCH\_Num & edgelocsiz, \\ & const SCOTCH\_Num * & edgeloctab, \\ & const SCOTCH\_Num * & edgegsttab, \\ & const SCOTCH\_Num * & edloloctab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphbuild ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & vertlocnbr, \\ & integer*{\it num} & vertlocmax, \\ & integer*{\it num} (*) & vertloctab, \\ & integer*{\it num} (*) & vendloctab, \\ & integer*{\it num} (*) & veloloctab, \\ & integer*{\it num} (*) & vlblloctab, \\ & integer*{\it num} & edgelocnbr, \\ & integer*{\it num} & edgelocsiz, \\ & integer*{\it num} (*) & edgeloctab, \\ & integer*{\it num} (*) & edgegsttab, \\ & integer*{\it num} (*) & edloloctab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphBuild} routine fills the distributed source graph structure pointed to by {\tt grafptr} with all of the data that are passed to it. {\tt baseval} is the graph base value for index arrays (typically $0$ for structures built from C and $1$ for structures built from Fortran). {\tt vertlocnbr} is the number of local vertices on the calling process, used to create the {\tt proccnttab} array. {\tt vertlocmax} is the maximum number of local vertices to be created on the calling process, used to create the {\tt proc\lbt vrt\lbt tab} array of global indices, and which must be set to {\tt vert\lbt loc\lbt nbr} for graphs wihout holes in their global numbering. {\tt vertloctab} is the local adjacency index array, of size $({\tt vertlocnbr} + 1)$ if the edge array is compact (that is, if {\tt vendloctab} equals $\mbox{\tt vertloctab}+1$ or {\tt NULL}), or of size {\tt vertlocnbr} else. {\tt vendloctab} is the adjacency end index array, of size {\tt vertlocnbr} if it is disjoint from {\tt vertloctab}. {\tt veloloctab} is the local vertex load array, of size {\tt vertlocnbr} if it exists. {\tt vlblloctab} is the local vertex label array, of size {\tt vertlocnbr} if it exists. {\tt edgelocnbr} is the local number of arcs (that is, twice the number of edges), including arcs to local vertices as well as to ghost vertices. {\tt edgelocsiz} is lower-bounded by the minimum size of the edge array required to encompass all used adjacency values; it is therefore at least equal to the maximum of the {\tt vendloctab} entries, over all local vertices, minus {\tt baseval}; it can be set to {\tt edgelocnbr} if the edge array is compact. {\tt edgeloctab} is the local adjacency array, of size at least {\tt edgelocsiz}, which stores the global indices of end vertices. {\tt edgegsttab} is the adjacency array, of size at least {\tt edgelocsiz}, if it exists; if {\tt edgegsttab} is given, it is assumed to be a pointer to an empty array to be filled with ghost vertex data computed by {\tt SCOTCH\_dgraph\lbt Ghst} whenever needed by communication routines such as {\tt SCOTCH\_dgraph\lbt Halo}. {\tt edloloctab} is the arc load array, of size {\tt edgelocsiz} if it exists. The {\tt vendloctab}, {\tt veloloctab}, {\tt vlblloctab}, {\tt edloloctab} and {\tt edgegsttab} arrays are optional, and a null pointer can be passed as argument whenever they are not defined. Note that, for \ptscotch\ to operate properly, either all the arrays of a kind must be set to null on all processes, or else all of them must be non null. This is mandatory because some algorithms require that collective communication operations be performed when some kind of data is present. If some processes considered that the arrays are present, and start such communications, while others did not, a deadlock would occur. In most cases, this situation will be anticipated and an error message will be issued, stating that graph data are inconsistent. The situation above may accidentally arise when some processes don't own any edge or vertex. In that case, depending on the implementation, a user \texttt{malloc} of size zero may return a null pointer rather than a non null pointer to an area of size zero, leading to the aforementioned inconsistencies. In order to avoid this problem, it is necessary to ensure that no null pointer will be returned, even in the case when zero bytes are requested. A workaround can be to call \texttt{malloc (\textit{x} | 4)} instead of \texttt{malloc (\textit{x})}. The ``\texttt{| 4}'' will consume only $4$ extra bytes at most, depending on the value of \texttt{\textit{x}}. Since, in Fortran, there is no null reference, passing the {\tt scotchf\lbt dgraph\lbt build} routine a reference equal to {\tt vertloctab} in the {\tt veloloctab} or {\tt vlblloctab} fields makes them be considered as missing arrays. The same holds for {\tt edloloctab} and {\tt edgegsttab} when they are passed a reference equal to {\tt edgeloctab}. Setting {\tt vendloctab} to refer to one cell after {\tt vertloctab} yields the same result, as it is the exact semantics of a compact vertex array. To limit memory consumption, {\tt SCOTCH\_\lbt dgraph\lbo Build} does not copy array data, but instead references them in the {\tt SCOTCH\_\lbt Dgraph} structure. Therefore, great care should be taken not to modify the contents of the arrays passed to {\tt SCOTCH\_\lbt dgraph\lbo Build} as long as the graph structure is in use. Every update of the arrays should be preceded by a call to {\tt SCOTCH\_\lbt dgraph\lbo Free}, to free internal graph structures, and eventually followed by a new call to {\tt SCOTCH\_\lbt dgraph\lbo Build} to re-build these internal structures so as to be able to use the new distributed graph. To ensure that inconsistencies in user data do not result in an erroneous behavior of the \libscotch\ routines, it is recommended, at least in the development stage of your application code, to call the {\tt SCOTCH\_\lbt dgraph\lbt Check} routine on the newly created {\tt SCOTCH\_\lbt Dgraph} structure before calling any other \libscotch\ routine. \progret {\tt SCOTCH\_dgraphBuild} returns $0$ if the graph structure has been successfully set with all of the input data, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphBuildGrid3D}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphBuildGrid3D ( & SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Num & baseval, \\ & const SCOTCH\_Num & dimxval, \\ & const SCOTCH\_Num & dimyval, \\ & const SCOTCH\_Num & dimzval, \\ & const SCOTCH\_Num & incrval, \\ & const SCOTCH\_Num & flagval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphbuildgrid3d ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & dimxval, \\ & integer*{\it num} & dimyval, \\ & integer*{\it num} & dimzval, \\ & integer*{\it num} & incrval, \\ & integer*{\it num} & flagval, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dgraphBuildGrid3D} routine fills the graph structure pointed to by \texttt{grafptr} with the description of a 3D grid of dimensions \texttt{dimxval}, \texttt{dimyval}, and \texttt{dimzval}, using \texttt{baseval} as the base value for vertex and edge indices. It is mostly used to build graphs of arbitrary size for testing other \ptscotch\ routines. The \texttt{incrval} value is the increment value for vertex indices. It should be a co-prime with \texttt{dimxval}, \texttt{dimyval}, and \texttt{dimzval}, so that all vertex indices are enumerated before looping back to the initial vertex index. When equal to~$1$, all vertex indices are enumerated consecutively, and vertex labels are not used. When greater than~$1$, vertex indices are enumerated using this stride value, and vertex labels are used. The \texttt{flagval} value allows the user to combine several flags to indicate the type of grid that should be produced: \begin{itemize} \iteme[{\tt SCOTCH\_DGRAPHBUILDGRID3DGRID}] Create a plain grid graph (\ie, not a torus). \iteme[{\tt SCOTCH\_DGRAPHBUILDGRID3DTORUS}] Create a torus graph, in which vertices on the boundaries of the grid are connected to the vertices of the opposite side. \iteme[{\tt SCOTCH\_DGRAPHBUILDGRID3DNGB6}] Create a $6$-neighbor mesh, without diagonal edges. \iteme[{\tt SCOTCH\_DGRAPHBUILDGRID3DNGB26}] Create a $26$-neighbor mesh, with diagonal edges in all directions. \iteme[{\tt SCOTCH\_DGRAPHBUILDGRID3DVERTLOAD}] Place arbitrary loads on graph vertices. \iteme[{\tt SCOTCH\_DGRAPHBUILDGRID3DEDGELOAD}] Place arbitrary loads on graph edges. \end{itemize} \progret {\tt SCOTCH\_dgraphBuildGrid3D} returns $0$ if the graph structure has been successfully created, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphCheck}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphCheck ( & const SCOTCH\_Dgraph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphcheck ( & doubleprecision (*) & grafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphCheck} routine checks the consistency of the given {\tt SCOTCH\_\lbt Dgraph} structure. It can be used in client applications to determine if a graph which has been created from user-generated data by means of the {\tt SCOTCH\_\lbt dgraph\lbt Build} routine is consistent, prior to calling any other routines of the \libscotch\ library which would otherwise return internal error messages or crash the program. \progret {\tt SCOTCH\_dgraphCheck} returns $0$ if graph data are consistent, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphCoarsen}} \label{sec-lib-func-dgraphcoarsen} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphCoarsen ( & SCOTCH\_Dgraph * const & finegrafptr, \\ & const SCOTCH\_Num & coarnbr, \\ & const double & coarrat, \\ & const SCOTCH\_Num & flagval, \\ & SCOTCH\_Dgraph * const & coargrafptr, \\ & SCOTCH\_Num * const & multloctab) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphcoarsen ( & doubleprecision (*) & finegrafdat, \\ & integer*{\it num} & coarnbr, \\ & doubleprecision & coarrat, \\ & integer*{\it num} & flagval, \\ & doubleprecision (*) & coargrafdat, \\ & integer*{\it num} (*) & multloctab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphCoarsen} routine creates in the {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt coargrafptr} a distributed coarsened graph from the {\tt SCOTCH\_\lbt Dgraph} pointed to by {\tt finegrafptr}. The coarsened graph is created only if it is comprises more than {\tt coarnbr} vertices, or if the coarsening ratio is lower than {\tt coarrat}. Valid coarsening ratio values range from $0.5$ (in the case of a perfect matching) to $1.0$ (if no vertex could be coarsened). Classical threshold values range from $0.7$ to $0.8$. The {\tt flagval} flag specifies the type of coarsening. Several groups of flags can be combined, by means of addition or ``binary or'' operators. When {\tt SCOTCH\_\lbt COARSEN\lbt NO\lbt MERGE} is set, isolated vertices are never merged with other vertices. This preserves the topology of the graph, at the expense of a higher coarsening ratio. When {\tt SCOTCH\_\lbt COARSEN\lbt FOLD} or {\tt SCOTCH\_\lbt COARSEN\lbt FOLD\lbt DUP} are set, if a coarsened graph is created, it is folded onto half of the processes of the initial communicator. In the case of {\tt SCOTCH\_\lbt COARSEN\lbt FOLD\lbt DUP}, a second copy is created (duplicated) onto the other half. The two copies may not be identical, if the number of processors of the finer graph is odd. The \texttt{multloctab} multinode array will contain pairs of consecutive \texttt{SCOTCH\_\lbt Num} values, representing the global indices of the two fine vertices that have been coarsened into each of the local coarse vertices. When a fine vertex has not been matched, the two indices in the multinode array for the corresponding coarse vertex are equal to the index of the single fine vertex. The \texttt{multloctab} array must be large enough to store node matching local data for the resulting coarsened (and possibly folded) graph. The \texttt{SCOTCH\_\lbt dgraph\lbt Coarsen\lbt Vert\lbt Loc\lbt Max} routine (see Section~\ref{sec-lib-func-dgraphcoarsenvertlocmax}) provides an upper bound on the number of coarse (and possibly folded) vertices located on the local process, which has to be doubled to obtain an upper bound on the number of \texttt{SCOTCH\_\lbt Num}s contained in \texttt{multloctab}. Note that, in case of folding, a redistribution of vertices is performed, so that the number of local coarse vertices may be greater that the number of local fine vertices. {\tt coargrafptr} must have been initialized with the {\tt SCOTCH\_\lbt dgraph\lbt Init} routine before {\tt SCOTCH\_dgraph\lbt Coarsen} is called. The communicator that is passed to it can either be the communicator used by the fine graph {\tt fine\lbt graf\lbt ptr}, or any congruent communicator created by using {\tt MPI\_\lbt Comm\_\lbt dup} on this communicator. Using a distinct communicator for the coarsened subgraph allows subsequent library routines to be called in parallel on the two graphs after the coarse graph is created. Depending on the way vertex mating is performed, the distribution of coarsened graph vertices may be imbalanced. In order for further computations on this distributed graph to scale well, a redistribution of its data might be necessary, using the {\tt SCOTCH\_dgraph\lbt Redist} routine. \progret {\tt SCOTCH\_dgraphCoarsen} returns $0$ if the coarse graph structure has been successfully created, $1$ if the coarse graph was not created because it did not enforce the threshold parameters, and $2$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphCoarsenVertLocMax}} \label{sec-lib-func-dgraphcoarsenvertlocmax} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_dgraphCoarsenVertLocMax ( & SCOTCH\_Dgraph * const & finegrafptr, \\ & const SCOTCH\_Num & flagval) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphcoarsenvertlocmax ( & doubleprecision (*) & finegrafdat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & coarvertlocmax) \end{tabular}} \progdes The \texttt{SCOTCH\_dgraphCoarsen\lbt Vert\lbt Loc\lbt Max} routine computes an upper bound on the number of coarse vertices that will be created locally when the given fine graph is coarsened (and possibly folded) by way of the \texttt{SCOTCH\_dgraph\lbt Coarsen} routine (see Section~\ref{sec-lib-func-dgraphcoarsen}). Its main use is to provide an upper bound on the size of the \texttt{mult\lbt loc\lbt tab} multinode array that has to be pre-allocated before calling \texttt{SCOTCH\_dgraph\lbt Coarsen}. Because the number of local vertices of the coarse graph depends on the type of coarsening (\eg, in case of folding, the number of local vertices of the coarse graph may be higher than that of the fine graph), the type of coarsening foreseen must be provided, using the \texttt{flagval} value. It must be the same value as the one that will be passed to the \texttt{SCOTCH\_dgraph\lbt Coarsen} routine. \progret \texttt{SCOTCH\_dgraphCoarsen\lbt Vert\lbt Loc\lbt Max} returns an upper bound on the local number of coarse vertices, which is henceforth always a non-negative number. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphData}} \label{sec-lib-func-dgraphdata} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphData ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Num * & baseptr, \\ & SCOTCH\_Num * & vertglbptr, \\ & SCOTCH\_Num * & vertlocptr, \\ & SCOTCH\_Num * & vertlocptz, \\ & SCOTCH\_Num * & vertgstptr, \\ & SCOTCH\_Num ** & vertloctab, \\ & SCOTCH\_Num ** & vendloctab, \\ & SCOTCH\_Num ** & veloloctab, \\ & SCOTCH\_Num ** & vlblloctab, \\ & SCOTCH\_Num * & edgeglbptr, \\ & SCOTCH\_Num * & edgelocptr, \\ & SCOTCH\_Num * & edgelocptz, \\ & SCOTCH\_Num ** & edgeloctab, \\ & SCOTCH\_Num ** & edgegsttab, \\ & SCOTCH\_Num ** & edloloctab, \\ & MPI\_Comm * & commptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphdata ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} (*) & indxtab, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & vertglbnbr, \\ & integer*{\it num} & vertlocnbr, \\ & integer*{\it num} & vertlocmax, \\ & integer*{\it num} & vertgstnbr, \\ & integer*{\it idx} & vertlocidx, \\ & integer*{\it idx} & vendlocidx, \\ & integer*{\it idx} & velolocidx, \\ & integer*{\it idx} & vlbllocidx, \\ & integer*{\it num} & edgeglbnbr, \\ & integer*{\it num} & edgelocnbr, \\ & integer*{\it num} & edgelocsiz, \\ & integer*{\it idx} & edgelocidx, \\ & integer*{\it idx} & edgegstidx, \\ & integer*{\it idx} & edlolocidx, \\ & integer & comm) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphData} routine is the dual of the {\tt SCOTCH\_\lbt dgraph\lbo Build} routine. It is a multiple accessor that returns scalar values and array references. {\tt baseptr} is the pointer to a location that will hold the graph base value for index arrays (typically $0$ for structures built from C and $1$ for structures built from Fortran). {\tt vertglbptr} is the pointer to a location that will hold the global number of vertices. {\tt vertlocptr} is the pointer to a location that will hold the number of local vertices. {\tt vertlocptz} is the pointer to a location that will hold the maximum allowed number of local vertices, that is, $(\mbox{\tt proc\lbt vrt\lbt tab[}p + 1\mbox{\tt]} - \mbox{\tt proc\lbt vrt\lbt tab[}p\mbox{\tt]})$, where $p$ is the rank of the local process. {\tt vertgstptr} is the pointer to a location that will hold the number of local and ghost vertices if it has already been computed by a prior call to {\tt SCOTCH\_\lbt dgraph\lbo Ghst}, and $-1$ else. {\tt vertloctab} is the pointer to a location that will hold the reference to the adjacency index array, of size $\mbox{\tt *vertlocptr} + 1$ if the adjacency array is compact, or of size {\tt *vertlocptr} else. {\tt vendloctab} is the pointer to a location that will hold the reference to the adjacency end index array, and is equal to $\mbox{\tt vertloctab} + 1$ if the adjacency array is compact. {\tt veloloctab} is the pointer to a location that will hold the reference to the vertex load array, of size {\tt *vertlocptr}. {\tt vlblloctab} is the pointer to a location that will hold the reference to the vertex label array, of size {\tt vertlocnbr}. {\tt edgeglbptr} is the pointer to a location that will hold the global number of arcs (that is, twice the number of global edges). {\tt edgelocptr} is the pointer to a location that will hold the number of local arcs (that is, twice the number of local edges). {\tt edgelocptz} is the pointer to a location that will hold the declared size of the local edge array, which must encompass all used adjacency values; it is at least equal to {\tt *edgelocptr}. {\tt edgeloctab} is the pointer to a location that will hold the reference to the local adjacency array of global indices, of size at least {\tt *edgelocptz}. {\tt edgegsttab} is the pointer to a location that will hold the reference to the ghost adjacency array, of size at least {\tt *edgelocptz}; if it is non null, its data are valid if {\tt vertgstnbr} is non-negative. {\tt edloloctab} is the pointer to a location that will hold the reference to the arc load array, of size {\tt *edgelocptz}. {\tt commptr} is the pointer to a location that will hold the MPI communicator of the distributed graph. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. Since there are no pointers in Fortran, a specific mechanism is used to allow users to access graph arrays. The {\tt scotchf\lbt dgraph\lbt data} routine is passed an integer array, the first element of which is used as a base address from which all other array indices are computed. Therefore, instead of returning references, the routine returns integers, which represent the starting index of each of the relevant arrays with respect to the base input array, or {\tt vert\lbt loc\lbt idx}, the index of {\tt vert\lbt loc\lbt tab}, if they do not exist. For instance, if some base array {\tt myarray\lbt (1)} is passed as parameter {\tt indxtab}, then the first cell of array {\tt vert\lbt loc\lbt tab} will be accessible as {\tt myarray\lbt (vert\lbt loc\lbt idx)}. In order for this feature to behave properly, the {\tt indxtab} array must be word-aligned with the graph arrays. This is automatically enforced on most systems, but some care should be taken on systems that allow to access data that is not word-aligned. On such systems, declaring the array after a dummy {\tt double\lbt precision} array can coerce the compiler into enforcing the proper alignment. The integer value returned in {\tt comm} is the communicator itself, not its index with respect to {\tt indxtab}. Also, on 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type. See Section~\ref{sec-lib-inttypesize} for more information on this issue. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphExit ( & SCOTCH\_Dgraph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphexit ( & doubleprecision (*) & grafdat) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphExit} function frees the contents of a {\tt SCOTCH\_\lbt Dgraph} structure previously initialized by {\tt SCOTCH\_\lbt dgraphInit}. All subsequent calls to {\tt SCOTCH\_\lbt dgraph} routines other than {\tt SCOTCH\_\lbt dgraphInit}, using this structure as parameter, may yield unpredictable results. If {\tt SCOTCH\_\lbt dgraph\lbt Init} was called with a communicator that is not a predefined MPI communicator, it is the user's responsibility to free this communicator after all graphs that use it have been freed by means of the {\tt SCOTCH\_\lbt dgraph\lbt Exit} routine. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphFree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphFree ( & SCOTCH\_Dgraph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphfree ( & doubleprecision (*) & grafdat) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphFree} function frees the graph data of a {\tt SCOTCH\_\lbt Dgraph} structure previously initialized by {\tt SCOTCH\_\lbt dgraph\lbt Init}, but preserves its internal communication data structures. This call is equivalent to a call to {\tt SCOTCH\_\lbt dgraph\lbt Exit} immediately followed by a call to {\tt SCOTCH\_\lbt dgraph\lbt Init} with the same communicator as in the previous {\tt SCOTCH\_\lbt dgraph\lbt Init} call. Consequently, the given {\tt SCOTCH\_\lbt Dgraph} structure remains ready for subsequent calls to any distributed graph handling routine of the \libscotch\ library. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphGather}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphGather ( & SCOTCH\_Dgraph * const & dgrfptr, \\ & const SCOTCH\_Graph * const & cgrfptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphgather ( & doubleprecision (*) & dgrfdat, \\ & doubleprecision (*) & cgrfdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphGather} routine gathers the contents of the distributed {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt dgrfptr} to the centralized {\tt SCOTCH\_\lbt Graph} structure(s) pointed to by {\tt cgrfptr}. If only one of the processes has a non-null {\tt cgrfptr} pointer, it is considered as the root process to which distributed graph data is sent. Else, all of the processes must provide a valid {\tt cgrfptr} pointer, and each of them will receive a copy of the centralized graph. \progret {\tt SCOTCH\_dgraphGather} returns $0$ if the graph structure has been successfully gathered, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphGrow}} \label{sec-lib-func-dgraphgrow} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphGrow ( & SCOTCH\_Dgraph * const & grafptr, \\ & const SCOTCH\_Num & seedlocnbr, \\ & SCOTCH\_Num * const & seedloctab, \\ & const SCOTCH\_Num & distmax, \\ & SCOTCH\_Num * const & partgsttab) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphgrow ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & seedlocnbr, \\ & integer*{\it num} (*) & seedloctab, \\ & integer*{\it num} & distmax, \\ & integer*{\it num} (*) & partgsttab, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dgraphGrow} routine grows areas in the \texttt{SCOTCH\_\lbt Dgraph} structure pointed to by \texttt{grafptr}, from a set of colored seeds provided on each process. Several seeds can have the same color. Starting from the seeds declared in the initial local queues \texttt{seedloctab} on each process, at most \texttt{distmax} rounds of expansion will be performed, in a breadth-first search manner. During each round, all the neighbors of the vertices currently in queue are visited, and, if they have not already been colored, they receive the color of the current vertex and are in turn inserted into the queue. The \texttt{seedloctab} array, which must be of a size at least equal to \texttt{vertlocnbr} as it will serve as the local vertex queue, holds the \texttt{seedlocnbr} local vertex indices of the local seeds. This represent the initial state of the vertex queue. Colors are represented as positive or zero integer values. The \texttt{partgsttab} array, which must be of a size at least equal to \texttt{vertgstnbr} as it will also contain the colors of the ghost vertices received from neighboring processes, holds vertex colors. Its local part must be initialized with the colors of the seed vertices whose indices are contained in \texttt{seedloctab}. All its other local cells must be set to $-1$, in order for them to be traversed. Vertices not identified as seed vertices, and whose color is already set in \texttt{partgsttab}, will not be considered by the region growing process. The values of \texttt{vertlocnbr} and \texttt{vertgstnbr} needed to dimension the arrays passed by the user can be queried by calling \texttt{SCOTCH\_\lbt dgraph\lbt Data()}, described in Section~\ref{sec-lib-func-dgraphdata}. The value of \texttt{vertgstnbr} will only be valid after \texttt{SCOTCH\_\lbt dgraph\lbt Ghst()} has been called on the given distributed graph (else, it will be equal to~$-1$); see Section~\ref{sec-lib-func-dgraphghst}. \progret {\tt SCOTCH\_dgraphGrow} returns $0$ if the region-growing process has succeeded, and $1$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphInducePart}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphInducePart ( & SCOTCH\_Dgraph * const & orggrafptr, \\ & const SCOTCH\_Num * const & orgpartloctab, \\ & const SCOTCH\_Num & indpartval, \\ & const SCOTCH\_Num & indvertlocnbr, \\ & SCOTCH\_Dgraph * const & indgrafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphinducepart ( & doubleprecision (*) & orggrafdat, \\ & integer*{\it num} (*) & orgpartloctab, \\ & integer*{\it num} & indpartval, \\ & integer*{\it num} & indvertlocnbr, \\ & doubleprecision (*) & indgrafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphInducePart} routine creates in the {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt indgrafptr} a distributed induced subgraph of the {\tt SCOTCH\_\lbt Dgraph} pointed to by {\tt orggrafptr}. The local vertices of every processor that are kept in the induced subgraph are the ones for which the values contained in the {\tt orgpart\lbt loctab} array cells are equal to {\tt indpartval}. The {\tt orgpartloctab} array must be of a size at least equal to the number of local vertices of the original graph. It may be larger, e.g. equal to the number of local plus ghost vertices, if needed by the user, but only the area corresponding to the local vertices will be used by {\tt SCOTCH\_\lbt dgraph\lbt Induce\lbt Part}. {\tt indvertlocnbr} is the number of local vertices in the induced subgraph. It must therefore be equal to the number of local vertices that have their associated {\tt org\lbt part\lbt loc\lbt tab} cell value equal to {\tt indpartval}. This value is necessary to internal array allocations. While it could have been easily computed by \scotch, by traversing the {\tt orgpart\lbt gsttab} array, making it used-provided spares such a traversal if the user already knows the value. If it is not the case, setting this value to {\tt -1} will make \scotch\ compute it automatically. {\tt indgrafptr} must have been initialized with the {\tt SCOTCH\_\lbt dgraph\lbt Init} routine before {\tt SCOTCH\_dgraph\lbt Induce\lbt Part} is called. The communicator that is passed to it can either be the communicator used by the original graph {\tt org\lbt graf\lbt ptr}, or any congruent communicator created by using {\tt MPI\_\lbt Comm\_\lbt dup} on this communicator. Using a distinct communicator for the induced subgraph allows subsequent library routines to be called in parallel on the two graphs after the induced graph is created. Induced band graphs have vertex labels attached to each of their vertices, in the {\tt vlbl\lbt loc\lbt tab} array. If the original graph had vertex labels attached to it, induced graph vertex labels are the labels of the corresponding vertices in the original graph. Else, induced graph vertex labels are the global indices of corresponding vertices in the original graph. Depending on the partition array, the distribution of induced graph vertices may be highly imbalanced. In order for further computations on this distributed graph to scale well, a redistribution of its data may be necessary, using the {\tt SCOTCH\_dgraph\lbt Redist} routine. \progret {\tt SCOTCH\_dgraphInducePart} returns $0$ if the induced graph structure has been successfully created, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphInit}} \label{sec-lib-func-dgraphinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphInit ( & SCOTCH\_Dgraph * & grafptr, \\ & MPI\_Comm & comm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphinit ( & doubleprecision (*) & grafdat, \\ & integer & comm, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphInit} function initializes a {\tt SCOTCH\_\lbt Dgraph} structure so as to make it suitable for future parallel operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Dgraph} structure. By accessing the communicator handle which is passed to it, {\tt SCOTCH\_dgraphInit} can know how many processes will be used to manage the distributed graph and can allocate its private structures accordingly. {\tt SCOTCH\_dgraphInit} does not make a duplicate of the communicator which is passed to it, but instead keeps a reference to it, so that all future communications needed by \libscotch\ to process this graph will be performed using this communicator. Therefore, it is the user's responsibility, whenever several \libscotch\ routines might be called in parallel, to create appropriate duplicates of communicators so as to avoid any potential interferences between concurrent communications. When the distributed graph is no longer of use, the {\tt SCOTCH\_\lbt dgraph\lbt Exit} function must be called, to free its internal data arrays. If {\tt SCOTCH\_\lbt dgraph\lbt Init} was called with a communicator that is not a predefined MPI communicator (such as {\tt MPI\_\tt COMM\_\lbt WORLD} or {\tt MPI\_\tt COMM\_\lbt SELF}), it is the user's responsibility to free this communicator after all graphs that use it have been freed by means of the {\tt SCOTCH\_\lbt dgraph\lbt Exit} routine. \progret {\tt SCOTCH\_dgraphInit} returns $0$ if the graph structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphRedist}} \label{sec-lib-func-dgraphredist} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphRedist ( & SCOTCH\_Dgraph * const & orggrafptr, \\ & const SCOTCH\_Num * const & partloctab, \\ & const SCOTCH\_Num * const & permgsttab, \\ & const SCOTCH\_Num & vertlocdlt, \\ & const SCOTCH\_Num & edgelocdlt, \\ & SCOTCH\_Dgraph * const & redgrafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphredist ( & doubleprecision (*) & orggrafdat, \\ & integer*{\it num} (*) & partloctab, \\ & integer*{\it num} (*) & permgsttab, \\ & integer*{\it num} & vertlocdlt, \\ & integer*{\it num} & edgelocdlt, \\ & doubleprecision (*) & redgrafptr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphRedist} routine initializes and fills the redistributed graph structure pointed to by {\tt red\lbt graf\lbt ptr} with a new distributed graph made from data redistributed from the original graph pointed to by {\tt org\lbt graf\lbt ptr}. The partition array, {\tt part\lbt loc\lbt tab}, must always be provided. It holds the part number associated with each local vertex. Part indices are {\em not\/} based: target vertices are numbered from $0$ to the number of parts minus $1$. Whenever provided, the permutation array {\tt perm\lbt gst\lbt tab} must be of a size equal to the number of local and ghost vertices of the source graph (that is, {\tt vert\lbt gst\lbt nbr}, see Section~\ref{sec-lib-type-dgraph}). Its contents must be based, that is, permutation global indices start at {\tt baseval}. Both its local and ghost contents must be valid. Consequently, it is the user's responsibility to call {\tt SCOTCH\_dgraph\lbt Halo} whenever necessary so as to propagate part values of the local vertices to their ghost counterparts on other processes. {\tt SCOTCH\_\lbt dgraph\lbt Redist} does not perform this halo exchange itself because users may already have computed these values by themselves when computing the new partition. If {\tt perm\lbt gst\lbt tab} is not provided by the user, vertices in each part are reordered according to their global indices in the source graph. {\tt redgrafptr} must have been initialized with the {\tt SCOTCH\_\lbt dgraph\lbt Init} routine before {\tt SCOTCH\_dgraph\lbt Redist} is called. The communicator that is passed to it can either be the communicator used by the original graph {\tt org\lbt graf\lbt ptr}, or any congruent communicator created by using {\tt MPI\_\lbt Comm\_\lbt dup} on this communicator. Using a distinct communicator for the redistributed graph allows subsequent library routines to be called in parallel on the two graphs after the redistributed graph is created. Redistributed graphs have vertex labels attached to each of their vertices, in the {\tt vlbl\lbt loc\lbt tab} array. If the original graph had vertex labels attached to it, redistributed graph vertex labels are the labels of the corresponding vertices in the original graph. Else, redistributed graph vertex labels are the global indices of corresponding vertices in the original graph. \progret {\tt SCOTCH\_dgraphRedist} returns $0$ if the redistributed graph has been successfully created, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphScatter}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphScatter ( & SCOTCH\_Dgraph * const & dgrfptr, \\ & const SCOTCH\_Graph * const & cgrfptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphscatter ( & doubleprecision (*) & dgrfdat, \\ & doubleprecision (*) & cgrfdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphScatter} routine scatters the contents of the centralized {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt cgrfptr} across the processes of the distributed {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt dgrfptr}. Only one of the processes should provide a non-null {\tt cgrfptr} parameter. This process is considered the root process for the scattering operation. Since, in Fortran, there is no null reference, processes which are not the root must indicate it by passing a pointer to the distributed graph structure equal to the pointer to their centralized graph structure. The scattering is performed such that graph vertices are evenly spread across the processes of the communicator associated with the distributed graph, in ascending order. Every process receives either $\left\lceil\frac{\mbox{vertglbnbr}}{\mbox{procglbnbr}}\right\rceil$ or $\left\lfloor\frac{\mbox{vertglbnbr}}{\mbox{procglbnbr}}\right\rfloor$ vertices, according to its rank: processes of lower ranks are filled first, eventually with one more vertex than processes of higher ranks. \progret {\tt SCOTCH\_dgraphScatter} returns $0$ if the graph structure has been successfully scattered, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphSize}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphSize ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Num * & vertglbptr, \\ & SCOTCH\_Num * & vertlocptr, \\ & SCOTCH\_Num * & edgeglbptr, \\ & SCOTCH\_Num * & edgelocptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphsize ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & vertglbnbr, \\ & integer*{\it num} & vertlocnbr, \\ & integer*{\it num} & edgeglbnbr, \\ & integer*{\it num} & edgelocnbr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphSize} routine fills the four areas of type {\tt SCOTCH\_\lbt Num} pointed to by {\tt vertglbptr}, {\tt vertlocptr}, {\tt edgeglbptr} and {\tt edgelocptr} with the number of global vertices and arcs (that is, twice the number of edges) of the given graph pointed to by {\tt grafptr}, as well as with the number of local vertices and arcs borne by each of the calling processes. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. This routine is useful to get the size of a graph read by means of the {\tt SCOTCH\_\lbt dgraph\lbo Load} routine, in order to allocate auxiliary arrays of proper sizes. If the whole structure of the graph is wanted, function {\tt SCOTCH\_dgraph\lbo Data} should be preferred. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_dgraphSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Dgraph} structure. This information is useful to export the interface of the {\sc libPTScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphStat}} \label{sec-lib-func-dgraphstat} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphStat ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & velominptr, \\ & SCOTCH\_Num * & velomaxptr, \\ & SCOTCH\_Num * & velosumptr, \\ & double * & veloavgptr, \\ & double * & velodltptr, \\ & SCOTCH\_Num * & degrminptr, \\ & SCOTCH\_Num * & degrmaxptr, \\ & double * & degravgptr, \\ & double * & degrdltptr, \\ & SCOTCH\_Num * & edlominptr, \\ & SCOTCH\_Num * & edlomaxptr, \\ & SCOTCH\_Num * & edlosumptr, \\ & double * & edloavgptr, \\ & double * & edlodltptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphstat ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & velomin, \\ & integer*{\it num} & velomax, \\ & integer*{\it num} & velosum, \\ & doubleprecision & veloavg, \\ & doubleprecision & velodlt, \\ & integer*{\it num} & degrmin, \\ & integer*{\it num} & degrmax, \\ & doubleprecision & degravg, \\ & doubleprecision & degrdlt, \\ & integer*{\it num} & edlomin, \\ & integer*{\it num} & edlomax, \\ & integer*{\it num} & edlosum, \\ & doubleprecision & edloavg, \\ & doubleprecision & edlodlt, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphStat} routine produces some statistics regarding the distributed graph structure pointed to by {\tt grafptr}. {\tt velomin}, {\tt velomax}, {\tt velosum}, {\tt veloavg} and {\tt velodlt} are the minimum vertex load, the maximum vertex load, the sum of all vertex loads, the average vertex load, and the variance of the vertex loads, respectively. {\tt degrmin}, {\tt degrmax}, {\tt degravg} and {\tt degrdlt} are the minimum vertex degree, the maximum vertex degree, the average vertex degree, and the variance of the vertex degrees, respectively. {\tt edlomin}, {\tt edlomax}, {\tt edlosum}, {\tt edloavg} and {\tt edlodlt} are the minimum edge load, the maximum edge load, the sum of all edge loads, the average edge load, and the variance of the edge loads, respectively. \progret {\tt SCOTCH\_dgraphStat} returns $0$ if the statistics have been successfully produced, and $1$ else. \end{itemize} \subsection{Distributed graph I/O routines} \subsubsection{{\tt SCOTCH\_dgraphLoad}} \label{sec-lib-func-dgraphload} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphLoad ( & SCOTCH\_Dgraph * & grafptr, \\ & FILE * & stream, \\ & SCOTCH\_Num & baseval, \\ & SCOTCH\_Num & flagval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphload ( & doubleprecision (*) & grafdat, \\ & integer & fildes, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & flagval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphLoad} routine fills the {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt grafptr} with the centralized or distributed source graph description available from one or several streams {\tt stream} in the \scotch\ graph formats (please refer to section~\ref{sec-file-dsgraph} for a description of the distributed graph format, and to the {\it\scotch\ User's Guide}~\scotchcitesuser\ for the centralized graph format). When only one stream pointer is not null, the associated source graph file must be a centralized one, the contents of which are spread across all of the processes. When all stream pointers are non null, they can either refer to multiple instances of the same centralized graph, or to the distinct fragments of a distributed graph. In the first case, all processes read all of the contents of the centralized graph files but keep only the relevant part. In the second case, every process reads its fragment in parallel. To ease the handling of source graph files by programs written in C as well as in Fortran, the base value of the graph to read can be set to {\tt 0} or {\tt 1}, by setting the {\tt baseval} parameter to the proper value. A value of {\tt -1} indicates that the graph base should be the same as the one provided in the graph description that is read from {\tt stream}. The {\tt flagval} value is a combination of the following integer values, that may be added or bitwise-ored: \begin{itemize} \iteme[{\tt 0}] Keep vertex and edge weights if they are present in the {\tt stream} data. \iteme[{\tt 1}] Remove vertex weights. The graph read will have all of its vertex weights set to one, regardless of what is specified in the {\tt stream} data. \iteme[{\tt 2}] Remove edge weights. The graph read will have all of its edge weights set to one, regardless of what is specified in the {\tt stream} data. \end{itemize} Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the graph file. Processes which would pass a {\tt NULL} stream pointer in C must pass descriptor number {\tt -1} in Fortran. \progret {\tt SCOTCH\_dgraphLoad} returns $0$ if the distributed graph structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphSave ( & const SCOTCH\_Dgraph * & grafptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphsave ( & doubleprecision (*) & grafdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphSave} routine saves the contents of the {\tt SCOTCH\_\lbt Dgraph} structure pointed to by {\tt grafptr} to streams {\tt stream}, in the \scotch\ distributed graph format (see Section~\ref{sec-file-dsgraph}). Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the graph file. \progret {\tt SCOTCH\_dgraphSave} returns $0$ if the graph structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsection{Data handling and exchange routines} \subsubsection{{\tt SCOTCH\_dgraphGhst}} \label{sec-lib-func-dgraphghst} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphGhst ( & SCOTCH\_Dgraph * const & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphghst ( & doubleprecision (*) & grafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphGhst} routine fills the {\tt edge\lbt gst\lbt tab} arrays of the distributed graph structure pointed to by {\tt grafptr} with the local and ghost vertex indices corresponding to the global vertex indices contained in its {\tt edge\lbt loc\lbt tab} arrays, according to the semantics described in Section~\ref{sec-lib-type-dgraph}. If memory areas had not been previously reserved by the user for the {\tt edge\lbt gst\lbt tab} arrays and linked to the distributed graph structure through a call to {\tt SCOTCH\_\lbt dgraph\lbt Build}, they are allocated. Their references can be retrieved on every process by means of a call to {\tt SCOTCH\_\lbt dgraph\lbt Data}, which will also return the number of local and ghost vertices, suitable for allocating vertex data arrays for {\tt SCOTCH\_\lbt dgraph\lbt Halo}. \progret {\tt SCOTCH\_dgraphGhst} returns $0$ if ghost vertex data has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphHalo}} \label{sec-lib-func-dgraphhalo} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphHalo ( & SCOTCH\_Dgraph * const & grafptr, \\ & void * & datatab, \\ & MPI\_Datatype & typeval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphhalo ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & datatab, \\ & integer & typeval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphHalo} routine propagates the data borne by local vertices to all of the corresponding halo vertices located on neighboring processes, in a synchronous way. On every process, {\tt datatab} should point to a data array of a size sufficient to hold {\tt vert\lbt gst\lbt nbr} elements of the data type to be exchanged, the first {\tt vertlocnbr} slots of which must already be filled with the information associated with the local vertices. On completion, the $({\tt vert\lbt gst\lbt nbr} - {\tt vert\lbt loc\lbt nbr})$ remaining slots are filled with copies of the corresponding remote data obtained from the local parts of the data arrays of neighboring processes. When the MPI data type to be used is not a collection of contiguous entries, great care should be taken in the definition of the upper bound of the type (by using the {\tt MPI\_\lbo UB} pseudo-datatype), such that when asking MPI to send a certain number of elements of the said type located at some address, contiguous areas in memory will be considered. Please refer to the MPI documentation regarding the creation of derived datatypes~\cite[Section 3.12.3]{mpi11} for more information. To perform its data exchanges, the {\tt SCOTCH\_dgraph\lbt Halo} routine requires ghost vertex management data provided by the {\tt SCOTCH\_\lbt dgraph\lbt Ghst} routine. Therefore, the {\tt edge\lbt gst\lbt tab} array returned by the {\tt SCOTCH\_dgraph\lbt Data} routine will always be valid after a call to {\tt SCOTCH\_dgraph\lbt Halo}, if it was not already. In case useful computation can be carried out during the halo exchange, an asynchronous version of this routine is available, called {\tt SCOTCH\_\lbt dgraph\lbt Halo\lbt Async}. \progret {\tt SCOTCH\_dgraphHalo} returns $0$ if halo data has been successfully exchanged, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphHaloAsync}} \label{sec-lib-func-dgraphhaloasync} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphHaloAsync ( & SCOTCH\_Dgraph * const & grafptr, \\ & void * & datatab, \\ & MPI\_Datatype & typeval, \\ & SCOTCH\_DgraphHaloReq * const & requptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphhaloasync ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & datatab, \\ & integer & typeval, \\ & doubleprecision (*) & requptr, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphHaloAsync} routine propagates the data borne by local vertices to all of the corresponding halo vertices located on neighboring processes, in an asynchronous way. On every process, {\tt datatab} should point to a data array of a size sufficient to hold {\tt vert\lbt gst\lbt nbr} elements of the data type to be exchanged, the first {\tt vertlocnbr} slots of which must already be filled with the information associated with the local vertices. On completion, the $({\tt vert\lbt gst\lbt nbr} - {\tt vert\lbt loc\lbt nbr})$ remaining slots are filled with copies of the corresponding remote data obtained from the local parts of the data arrays of neighboring processes. The semantics of {\tt SCOTCH\_dgraphHaloAsync} is similar to that of {\tt SCOTCH\_dgraph\lbt Halo}, except that it returns as soon as possible, while effective communication may not have started nor completed. Also, it possesses an additional parameter, {\tt requptr}, which must point to a {\tt SCOTCH\_\lbt Dgraph\lbt Halo\lbt Req} data structure. Similarly to asynchronous MPI calls, users can wait for the completion of a {\tt SCOTCH\_dgraph\lbt Halo\lbt Async} routine by calling the {\tt SCOTCH\_dgraph\lbt Halo\lbt Wait} routine, passing it a pointer to this request structure. In Fortran, the request structure must be defined as an array of {\tt DOUBLEPRECISION}s, of size {\tt SCOTCH\_\lbt DGRAPH\lbt HALO\lbt REQDIM}. This constant is defined in file {\tt ptscotchf.h}, which must be included whenever necessary. The effective means for {\tt SCOTCH\_dgraph\lbt Halo\lbt Async} to perform its task may vary at compile time, depending on the presence of a thread-safe MPI library or on the existence of asynchronous collective communication routines such as {\tt MPE\_\lbt Ialltoallv}. In case no method for performing asynchronous collective communication is available, {\tt SCOTCH\_dgraph\lbt Halo\lbt Async} will internally call {\tt SCOTCH\_dgraph\lbt Halo} to perform synchronous communication. Because of possible limitations in the implementation of third-party communication routines, it is not recommended to perform simultaneous {\tt SCOTCH\_dgraph\lbt Halo\lbt Async} calls on the same communicator. \progret {\tt SCOTCH\_dgraphHaloAsync} returns $0$ if the halo data exchange has been successfully started, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphHaloWait}} \label{sec-lib-func-dgraphhalowait} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphHaloWait ( & SCOTCH\_DgraphHaloReq * const & requptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphhalowait ( & doubleprecision (*) & requptr, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphHaloWait} routine waits for the termination of an asynchronous halo exchange process, started by a call to {\tt SCOTCH\_dgraph\lbt Halo\lbt Async}, and represented by its request, pointed to by {\tt requptr}. In Fortran, the request structure must be defined as an array of {\tt DOUBLEPRECISION}s, of size {\tt SCOTCH\_\lbt DGRAPH\lbt HALO\lbt REQDIM}. This constant is defined in file {\tt ptscotchf.h}, which must be included whenever necessary. \progret {\tt SCOTCH\_dgraphHaloWait} returns $0$ if halo data has been successfully exchanged, and $1$ else. \end{itemize} \subsection{Distributed graph mapping and partitioning routines} {\tt SCOTCH\_dgraphMap} and {\tt SCOTCH\_dgraphPart} provide high-level functionalities and free the user from the burden of calling in sequence several of the low-level routines also described in this section. \subsubsection{{\tt SCOTCH\_dgraphMap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphMap ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & partloctab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmap ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & archdat, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & partloctab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphMap} routine computes a mapping of the distributed source graph structure pointed to by {\tt grafptr} onto the target architecture pointed to by {\tt archptr}, using the mapping strategy pointed to by {\tt straptr}, and returns distributed fragments of the partition data in the array pointed to by {\tt partloctab}. The {\tt partloctab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are local vertices of the source graph on each of the processes. On return, every cell of the mapping array holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. {\bf Attention}: version {\sc 6.0} of \scotch\ does not allow yet to map distributed graphs onto target architectures which are not complete graphs. This restriction will be removed in the next release. \progret {\tt SCOTCH\_dgraphMap} returns $0$ if the partition of the graph has been successfully computed, and $1$ else. In this last case, the {\tt partloctab} arrays may however have been partially or completely filled, but their contents is not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphMapCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphMapCompute ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dmapping * & mappptr, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmapcompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphMapCompute} routine computes a mapping on the given {\tt SCOTCH\_\lbt Dmapping} structure pointed to by {\tt mappptr} using the parallel mapping strategy pointed to by {\tt straptr}. On return, every cell of the distributed mapping array (see Section~\ref{sec-lib-func-dgraphmapinit}) holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices, minus $1$. {\bf Attention}: version {\sc 6.0} of \scotch\ does not allow yet to map distributed graphs onto target architectures which are not complete graphs. This restriction will be removed in the next release. \progret {\tt SCOTCH\_dgraphMapCompute} returns $0$ if the mapping has been successfully computed, and $1$ else. In this latter case, the local mapping arrays may however have been partially or completely filled, but their contents is not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphMapExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphMapExit ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dmapping * & mappptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmapexit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphMapExit} function frees the contents of a {\tt SCOTCH\_\lbt Dmapping} structure previously initialized by {\tt SCOTCH\_\lbt dgraph\lbt Map\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt dgraph\lbt Map*} routines other than {\tt SCOTCH\_\lbt dgraph\lbt Map\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphMapInit}} \label{sec-lib-func-dgraphmapinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphMapInit ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dmapping * & mappptr, \\ & const SCOTCH\_Arch * & archptr, \\ & SCOTCH\_Num * & partloctab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmapinit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & archdat, \\ & integer*{\it num} (*) & partloctab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphMapInit} routine fills the distributed mapping structure pointed to by {\tt mappptr} with all of the data that is passed to it. Thus, all subsequent calls to ordering routines such as {\tt SCOTCH\_\lbt dgraph\lbt Map\lbt Compute}, using this mapping structure as parameter, will place mapping results in field {\tt part\lbt loc\lbt tab}. {\tt partloctab} is the pointer to an array of as many {\tt SCOTCH\_\lbt Num}s as there are local vertices in each local fragment of the distributed graph pointed to by {\tt grafptr}, and which will receive the indices of the vertices of the target architecture pointed to by {\tt archptr}. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Dmapping} structure. When the distributed mapping structure is no longer of use, call function {\tt SCOTCH\_dgraph\lbt \lbt Map\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_dgraphMapInit} returns $0$ if the distributed mapping structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphMapSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphMapSave ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Dmapping * & mappptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmapsave ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphMapSave} routine saves the contents of the {\tt SCOTCH\_\lbt Dmapping} structure pointed to by {\tt mappptr} to stream {\tt stream}, in the \scotch\ mapping format. Please refer to the {\it\scotch\ User's Guide}~\scotchcitesuser\ for more information about this format. Since the mapping format is centralized, only one process should provide a valid output stream; other processes must pass a null pointer. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mapping file. \progret {\tt SCOTCH\_dgraphMapSave} returns $0$ if the mapping structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphMapStat}} \label{sec-lib-func-dgraphmapstat} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphMapStat ( & SCOTCH\_Dgraph * const & grafptr, \\ & const SCOTCH\_Dmapping * const & mappptr, \\ & SCOTCH\_Num * const & tgtnbrptr, \\ & SCOTCH\_Num * const & mapnbrptr, \\ & SCOTCH\_Num * const & mapminptr, \\ & SCOTCH\_Num * const & mapmaxptr, \\ & double * const & mapavgptr, \\ & double * const & mapdltptr, \\ & SCOTCH\_Num * const & ngbsumptr, \\ & SCOTCH\_Num * const & ngbminptr, \\ & SCOTCH\_Num * const & ngbmaxptr, \\ & SCOTCH\_Num * const & cdstmaxptr, \\ & SCOTCH\_Num & cdsttab[256], \\ & SCOTCH\_Num * const & cmlosumptr, \\ & SCOTCH\_Num * const & cmdisumptr, \\ & SCOTCH\_Num * const & cmexsumptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmapstat ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & integer*{\it num} & tgtnbr, \\ & integer*{\it num} & mapnbr, \\ & integer*{\it num} & mapmax, \\ & integer*{\it num} & mapmin, \\ & doubleprecision & mapavg, \\ & doubleprecision & mapdlt, \\ & integer*{\it num} & ngbsum, \\ & integer*{\it num} & ngbmin, \\ & integer*{\it num} & ngbmax, \\ & integer*{\it num} & cdstmax, \\ & integer*{\it num} (*) & cdsttab, \\ & integer*{\it num} & cmlosum, \\ & integer*{\it num} & cmdisum, \\ & integer*{\it num} & cmexsum, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dgraphMapStat} routine computes a set of statistics on the distributed mapping structure pointed to by \texttt{mappptr}, resuting from the mapping of the distributed graph pointed to by \texttt{grafdat}. A subdomain of a mapping is the set of all the source graph vertices mapped onto the same target vertex. Source graph vertices that are not associated with any target vertex are said to be unmapped. Upon successful return, all variables passed as references will contain the relevant statistics values. When a value is not needed, the user may pass a \texttt{NULL} pointer instead. \texttt{tgtnbrptr} will hold the number of vertices in the target architecture used for mapping, and \texttt{mapnbrptr} will hold the number of target vertices actually used by the mapping, which may be smaller. \texttt{mapminptr} and \texttt{mapmaxptr} will hold the minimum and maximum loads mapped onto the target vertices used, with respect to their weights, and \texttt{mapavgptr} and \texttt{mapdltptr} will hold the average and standard deviation of the loads assigned to the target vertices used, also with respect to their weights. \texttt{ngbsumptr} will hold the sum of the number of neighboring subdomains, computed over all subdomains of the mapping, while \texttt{ngbminptr} and \texttt{ngbmaxptr} will hold the minimum and maximum numbers of neighboring subdomains, respectively. \texttt{cmlosumptr} will hold the overall communication load in the considered mapping, \ie, the sum of the weights of all edges in the source graph whose two ends are mapped. Consequently, this number may be smaller than the sum of all the weights of the source graph edges. \texttt{cmdisumptr} will hold the total communication dilation, \ie, the sum of the distances, in the target architecture, between the two ends of all the mapped edges. \texttt{cmexsumptr} will hold the total communication expansion, \ie, the sum of the distances, in the target architecture, between the two ends of all the mapped edges, multiplied by their edge weight. See Section~\ref{sec-algo-cost} for an explanation on these values. Finally, the \texttt{cdsttab} array will hold the breakdown, by communication distance (capped to 255), of the communication loads of mapped edges. Hence, \texttt{cdsttab[0]} will contain the sum of uncut edge loads, \ie, local communication. \texttt{cdstmaxptr} will hold the maximum edge dilation in the target graph (capped to 255), \ie, the highest index of non-zero cells in \texttt{cdsttab}. \progret \texttt{SCOTCH\_dgraphMapStat} returns $0$ if the statistics have been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphMapView}} \label{sec-lib-func-dgraphmapview} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphMapView ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Dmapping * & mappptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphmapview ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphMapView} routine summarizes statistical information on the mapping pointed to by {\tt mappptr} (load of target processors, number of neighboring domains, average dilation and expansion, edge cut size, distribution of edge dilations), and prints these results to stream {\tt stream}. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the output data file. \progret {\tt SCOTCH\_dgraphMapView} returns $0$ if the data has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphPart}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphPart ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Num & partnbr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & partloctab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphpart ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & partnbr, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & partloctab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphPart} routine computes a partition into {\tt partnbr} parts of the distributed source graph structure pointed to by {\tt grafptr}, using the graph partitioning strategy pointed to by {\tt straptr}, and returns distributed fragments of the partition data in the array pointed to by {\tt partloctab}. The {\tt partloctab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are local vertices of the source graph on each of the processes. On return, every array cell holds the number of the part to which the corresponding vertex is mapped. Parts are numbered from $0$ to $\mbox{\tt partnbr} - 1$. \progret {\tt SCOTCH\_dgraphPart} returns $0$ if the partition of the graph has been successfully computed, and $1$ else. In this latter case, the {\tt partloctab} array may however have been partially or completely filled, but its content is not significant. \end{itemize} \subsection{Distributed graph ordering routines} \subsubsection{{\tt SCOTCH\_dgraphOrderCblkDist}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_dgraphOrderCblkDist ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordercblkdist ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} & cblkglbnbr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderCblkDist} routine returns on all processes the global number of distributed elimination tree (super-)nodes possessed by the given distributed ordering. Distributed elimination tree nodes are produced for instance by parallel nested dissection, before the ordering process goes sequential. Subsequent sequential nodes generated locally afterwards on individual processes are not accounted for in this figure. This routine is used to allocate space for the tree structure arrays to be filled by the {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Tree\lbt Dist} routine. \progret {\tt SCOTCH\_dgraphOrderCblkDist} returns a positive number if the number of distributed elimination tree nodes has been successfully computed, and a negative value else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderCompute ( & SCOTCH\_Dgraph * const & grafptr, \\ & SCOTCH\_Dordering * const & ordeptr, \\ & SCOTCH\_Strat * const & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordercompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderCompute} routine computes in parallel a distributed block ordering of the distributed graph structure pointed to by {\tt grafptr}, using the distributed ordering strategy pointed to by {\tt straptr}, and stores its result in the distributed ordering structure pointed to by {\tt ordeptr}. \progret {\tt SCOTCH\_dgraphOrderCompute} returns $0$ if the ordering has been successfully computed, and $1$ else. In this latter case, the ordering arrays may however have been partially or completely filled, but their contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderComputeList}} \label{sec-lib-func-dgraphordercomputelist} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderComputeList ( & SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & ordeptr, \\ & SCOTCH\_Num & listnbr, \\ & const SCOTCH\_Num * & listtab, \\ & SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordercomputelist ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} & listnbr, \\ & integer*{\it num} (*) & listtab, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dgraphOrderComputeList} routine computes in parallel a distributed block ordering of a subgraph of the graph structure pointed to by \texttt{grafptr}, using the distributed ordering strategy pointed to by \texttt{straptr}, and stores its result in the distributed ordering structure pointed to by \texttt{ordeptr}. The induced subgraph is described by means of local vertex lists, one for each process: \texttt{listnbr} holds the number of local vertices to keep in the induced subgraph, the local indices of which are given, in any order, in the \texttt{listtab} array. Note that \texttt{listtab} must contain local vertex numbers, i.e ranging from \texttt{baseval} to $\mathtt{vertlocnbr} + \mathtt{baseval}$. Because an ordering always refers to the full graph, the ordering computed by \texttt{SCOTCH\_\lbt dgraph\lbt Order\lbt Compute\lbt List} is divided into two disconnected components: the induced graph vertices are ordered by applying the strategy provided by the \texttt{straptr} parameter, while vertices excluded from the list are ordered consecutively with the highest available indices. Consequently, the permuted indices of induced vertices range from \texttt{baseval} to $(\mathtt{listnbr} + \mathtt{baseval} - 1)$, while the permuted indices of the remaining vertices range from $(\mathtt{listnbr} + \mathtt{baseval})$ to $(\mathtt{vertnbr} + \mathtt{baseval} - 1)$, inclusive. Accordingly, the separation tree yielded by \texttt{SCOTCH\_\lbt dgraph\lbt Order\lbt Compute\lbt List} starts from a root with two children, the first one corresponding to the induced subgraph, and the second one to the vertices excluded from the list. \progret \texttt{SCOTCH\_dgraphOrderComputeList} returns $0$ if the ordering has been successfully computed, and $1$ else. In this latter case, the ordering arrays may have been partially or completely filled, but their contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphOrderExit ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphdorderexit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderExit} function frees the contents of a {\tt SCOTCH\_\lbt Dordering} structure previously initialized by {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt dgraph\lbt Order*} routines other than {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderInit}} \label{sec-lib-func-dgraphorderinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderInit ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphorderinit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraph\lbt Order\lbt Init} routine initializes the distributed ordering structure pointed to by {\tt ordeptr} so that it can be used to store the results of the parallel ordering of the associated distributed graph, to be computed by means of the {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Compute} routine. The {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Init} routine should be the first function to be called upon a {\tt SCOTCH\_\lbt Dordering} structure for ordering distributed graphs. When the ordering structure is no longer of use, the {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Exit} function must be called, in order to to free its internal structures. \progret {\tt SCOTCH\_dgraphOrderInit} returns $0$ if the distributed ordering structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderSave ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Dordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordersave ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderSave} routine saves the contents of the {\tt SCOTCH\_\lbt Dordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}, in the \scotch\ ordering format. Please refer to the {\it\scotch\ User's Guide}~\scotchcitesuser\ for more information about this format. Since the ordering format is centralized, only one process should provide a valid output stream; other processes must pass a null pointer. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the ordering file. Processes which would pass a {\tt NULL} stream pointer in C must pass descriptor number {\tt -1} in Fortran. \progret {\tt SCOTCH\_dgraphOrderSave} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderSaveMap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderSaveMap ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Dordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphdordersavemap ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderSaveMap} routine saves the block partitioning data associated with the {\tt SCOTCH\_\lbt Dordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}, in the \scotch\ mapping format. A target domain number is associated with every block, such that all node vertices belonging to the same block are shown as belonging to the same target vertex. The resulting mapping file can be used by the {\tt gout} program to produce pictures showing the different separators and blocks. Please refer to the {\it\scotch\ User's Guide} for more information on the \scotch\ mapping format and on {\tt gout}. Since the block partitioning format is centralized, only one process should provide a valid output stream; other processes must pass a null pointer. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the ordering file. Processes which would pass a {\tt NULL} stream pointer in C must pass descriptor number {\tt -1} in Fortran. \progret {\tt SCOTCH\_dgraphOrderSaveMap} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderSaveTree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderSaveTree ( & const SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Dordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordersavetree ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderSaveTree} routine saves the tree hierarchy information associated with the {\tt SCOTCH\_\lbt Dordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}. The format of the tree output file resembles that of a mapping or ordering file: it is made up of as many lines as there are vertices in the ordering. Each of these lines holds two integer numbers. The first one is the index or the label of the vertex, and the second one is the index of its parent node in the separators tree, or $-1$ if the vertex belongs to a root node. Since the tree hierarchy format is centralized, only one process should provide a valid output stream; other processes must pass a null pointer. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the ordering file. Processes which would pass a {\tt NULL} stream pointer in C must pass descriptor number {\tt -1} in Fortran. \progret {\tt SCOTCH\_dgraphOrderSaveTree} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderPerm}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderPerm ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & ordeptr, \\ & SCOTCH\_Num * & permloctab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphorderperm ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} (*) & permloctab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderPerm} routine fills the distributed direct permutation array {\tt permloctab} according to the ordering provided by the given distributed ordering pointed to by {\tt ordeptr}. Each {\tt permloctab} local array must be of size {\tt vertlocnbr}. \progret {\tt SCOTCH\_dgraphOrderPerm} returns $0$ if the distributed permutation has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderTreeDist}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderTreeDist ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & ordeptr, \\ & SCOTCH\_Num * & treeglbtab \\ & SCOTCH\_Num * & sizeglbtab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordertreedist ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} (*) & treeglbtab, \\ & integer*{\it num} (*) & sizeglbtab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphOrderTreeDist} routine fills on all processes the arrays representing the distributed part of the elimination tree structure associated with the given distributed ordering. This structure describes the sizes and relations between all distributed elimination tree (super-)nodes. These nodes are mainly the result of parallel nested dissection, before the ordering process goes sequential. Sequential nodes generated locally on individual processes are not represented in this structure. A node can either be a leaf column block, which has no descendants, a disconnected components node with two sons as computed by \texttt{SCOTCH\_\lbt dgraph\lbt Order\lbt Compute\lbt List} (see Section~\ref{sec-lib-func-dgraphordercomputelist}), or a nested dissection node, which has most often three sons: its two separated sub-parts and the separator. A nested dissection node may have two sons only if the separator is empty; it cannot have only one son. Sons are indexed such that the separator of a block, if any, is always the son of highest index. Hence, the order of the indices of the two sub-parts matches that of the direct permutation of the unknowns. For any column block $i$, {\tt treeglbtab[}$i${\tt ]} holds the index of the father of node $i$ in the elimination tree, or $-1$ if $i$ is the root of the tree. All node indices start from {\tt baseval}. {\tt size\lbt glb\lbt tab[}$i${\tt ]} holds the number of graph vertices possessed by node $i$, plus the ones of all of its descendants if it is not a leaf of the tree. Therefore, the {\tt size\lbt glb\lbt tab} value of the root vertex is always equal to the number of vertices in the distributed graph. Each of the {\tt treeglbtab} and {\tt size\lbt glb\lbt tab} arrays must be large enough to hold a number of {\tt SCOTCH\_\lbt Num}s equal to the number of distributed elimination tree nodes and column blocks, as returned by the {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Cblk\lbt Dist} routine. \progret {\tt SCOTCH\_dgraphOrderTreeDist} returns $0$ if the arrays describing the distributed part of the distributed tree structure have been successfully filled, and $1$ else. \end{itemize} \subsection{Centralized ordering handling routines} \label{sec-lib-func-corder} Since distributed ordering structures maintain scattered information which cannot be easily collated, the only practical way to access this information is to centralize it in a sequential {\tt SCOTCH\_\lbt Ordering} structure. Several routines are provided to create and destroy sequential orderings attached to a distributed graph, and to gather the information contained in a distributed ordering on such a sequential ordering structure. Since the arrays which represent centralized ordering must be of a size equal to the global number of vertices, these routines are not scalable and may require much memory for very large graphs. \subsubsection{{\tt SCOTCH\_dgraphCorderExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dgraphCorderExit ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Ordering * & cordptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphcorderexit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & corddat) \end{tabular}} \progdes The {\tt SCOTCH\_dgraphCorderExit} function frees the contents of a centralized {\tt SCOTCH\_\lbt Ordering} structure previously initialized by {\tt SCOTCH\_\lbt dgraph\lbt Corder\lbt Init}. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphCorderInit}} \label{sec-lib-func-dgraphcorderinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphCorderInit ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Ordering * & cordptr, \\ & SCOTCH\_Num * & permtab, \\ & SCOTCH\_Num * & peritab, \\ & SCOTCH\_Num * & cblkptr, \\ & SCOTCH\_Num * & rangtab, \\ & SCOTCH\_Num * & treetab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphcorderinit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & corddat, \\ & integer*{\it num} (*) & permtab, \\ & integer*{\it num} (*) & peritab, \\ & integer*{\it num} & cblknbr, \\ & integer*{\it num} (*) & rangtab, \\ & integer*{\it num} (*) & treetab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraph\lbt Corder\lbt Init} routine fills the centralized ordering structure pointed to by {\tt cordptr} with all of the data that are passed to it. This routine is the equivalent of the {\tt SCOTCH\_\lbt graph\lbt Order\lbt Init} routine of the \scotch\ sequential library, except that it takes a distributed graph as input. It is used to initialize a centralized ordering structure on which a distributed ordering will be centralized by means of the {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Gather} routine. Only the process onto which distributed ordering data is to be centralized has to handle a centralized ordering structure. {\tt permtab} is the ordering permutation array, of size ${\tt vert\lbt glb\lbt nbr}$, {\tt peritab} is the inverse ordering permutation array, of size ${\tt vert\lbt glb\lbt nbr}$, {\tt cblkptr} is the pointer to a {\tt SCOTCH\_\lbt Num} that will receive the number of produced column blocks, {\tt rangtab} is the array that holds the column block span information, of size $\mbox{\tt vert\lbt glb\lbt nbr} + 1$, and {\tt treetab} is the array holding the structure of the separators tree, of size ${\tt vert\lbt glb\lbt nbr}$. Please refer to Section~\ref{sec-lib-type-dordering} for an explanation of their semantics. Any of these five output fields can be set to {\tt NULL} if the corresponding information is not needed. Since, in Fortran, there is no null reference, passing a reference to {\tt grafptr} will have the same effect. The {\tt SCOTCH\_\lbt dgraph\lbt Corder\lbt Init} routine should be the first function to be called upon a {\tt SCOTCH\_\lbt Ordering} structure to be used for gathering distributed ordering data. When the centralized ordering structure is no longer of use, the {\tt SCOTCH\_\lbt dgraph\lbt Corder\lbt Exit} function must be called, in order to to free its internal structures. \progret {\tt SCOTCH\_dgraphCorderInit} returns $0$ if the ordering structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dgraphOrderGather}} \label{sec-lib-func-dgraphordergather} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dgraphOrderGather ( & const SCOTCH\_Dgraph * & grafptr, \\ & SCOTCH\_Dordering * & dordptr, \\ & SCOTCH\_Ordering * & cordptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdgraphordergather ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & dorddat, \\ & doubleprecision (*) & corddat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dgraph\lbt Order\lbt Gather} routine gathers the distributed ordering data borne by {\tt dordptr} to the centralized ordering structure pointed to by {\tt cordptr}. Only the process onto which distributed ordering data is to be centralized has to provide a centralized ordering structure, initialized by way of the {\tt SCOTCH\_dgraph\lbt Corder\lbt Init} routine. Other processes have to pass a \texttt{NULL} pointer for the \texttt{cordptr} parameter, or provide the \texttt{dorddat} structure as the \texttt{corddat} parameter in Fortran. \progret {\tt SCOTCH\_dgraphOrderGather} returns $0$ if the centralized ordering structure has been successfully updated, and $1$ else. \end{itemize} \subsection{Distributed mesh handling routines} \label{sec-lib-dmesh} \subsubsection{\texttt{SCOTCH\_dmeshAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Dmesh * SCOTCH\_dmeshAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_dmeshAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Dmesh} structure. It is the user's responsibility to free this memory when it is no longer needed. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt dmesh\lbt Init} routine. \progret {\tt SCOTCH\_dmeshAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_dmeshBuildAdm}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dmeshBuildAdm ( & SCOTCH\_Dmesh * & meshptr, \\ & const SCOTCH\_Num & baseval, \\ & const SCOTCH\_Num & vertlocnbr, \\ & const SCOTCH\_Num & vertlocmax, \\ & const SCOTCH\_Num * & vertloctab, \\ & const SCOTCH\_Num * & vendloctab, \\ & const SCOTCH\_Num * & veloloctab, \\ & const SCOTCH\_Num * & vlblocltab, \\ & const SCOTCH\_Num & edgelocnbr, \\ & const SCOTCH\_Num & edgelocsiz, \\ & const SCOTCH\_Num * & edgeloctab, \\ & const SCOTCH\_Num * & edgegsttab, \\ & const SCOTCH\_Num * & edloloctab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshbuildadm ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & vertlocnbr, \\ & integer*{\it num} & vertlocmax, \\ & integer*{\it num} (*) & vertloctab, \\ & integer*{\it num} (*) & vendloctab, \\ & integer*{\it num} (*) & veloloctab, \\ & integer*{\it num} (*) & vlblloctab, \\ & integer*{\it num} & edgelocnbr, \\ & integer*{\it num} & edgelocsiz, \\ & integer*{\it num} (*) & edgeloctab, \\ & integer*{\it num} (*) & edgegsttab, \\ & integer*{\it num} (*) & edloloctab, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshBuildAdm} routine fills the distributed source mesh structure pointed to by \texttt{meshptr} with all of the data that are passed to it in the auxiliary distributed mesh format (see Section~\ref{sec-file-admesh} for more information on this format). \texttt{baseval} is the mesh base value for index arrays (typically $0$ for structures built from C and $1$ for structures built from Fortran). \texttt{velmlocnbr} is the number of local element vertices on the calling process. \texttt{velmloctab} is the local element-to-node adjacency index array, of size $(\texttt{velm\lbt loc\lbt nbr} + 1)$. \texttt{eelmlocnbr} is the local number of element-to-node arcs. \texttt{eelmloctab} is the local adjacency array, of size \texttt{eelmlocnbr}, which stores the global indices of end node vertices. \texttt{vnodglbnbr} is the global number of node vertices. All these data must be provided on all processes. To limit memory consumption, \texttt{SCOTCH\_\lbt dmesh\lbo Build\lbo Adm} does not copy array data, but instead references them in the \texttt{SCOTCH\_\lbt Dmesh} structure. Therefore, great care should be taken not to modify the contents of the arrays passed to \texttt{SCOTCH\_\lbt dmesh\lbt Build\lbo Adm} as long as the mesh structure is in use. Every update of the arrays should be preceded by a call to \texttt{SCOTCH\_\lbt dmesh\lbo Free}, to free internal mesh structures, and eventually followed by a new call to \texttt{SCOTCH\_\lbt dmesh\lbo Build\lbo Adm} to re-build these internal structures so as to be able to use the new distributed mesh. %% To ensure that inconsistencies in user data do not result in an %% erroneous behavior of the \libscotch\ routines, it is recommended, at %% least in the development stage of your application code, to call the %% {\tt SCOTCH\_\lbt dmesh\lbt Check} routine on the newly created %% {\tt SCOTCH\_\lbt Dmesh} structure before calling any other %% \libscotch\ routine. \progret {\tt SCOTCH\_dmeshBuildAdm} returns $0$ if the mesh structure has been successfully set with all of the input data, and $1$ else. \end{itemize} \subsubsection{\texttt{SCOTCH\_dmeshData}} \label{sec-lib-func-dmeshdata} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dmeshData ( & const SCOTCH\_Dmesh * & meshptr, \\ & SCOTCH\_Num * & baseptr, \\ & SCOTCH\_Num * & velmglbptr, \\ & SCOTCH\_Num * & velmlocptr, \\ & SCOTCH\_Num ** & velmloctab, \\ & SCOTCH\_Num * & eelmglbnbr, \\ & SCOTCH\_Num * & eelmlocptr, \\ & SCOTCH\_Num ** & eelmloctab, \\ & SCOTCH\_Num * & vnodglbptr, \\ & MPI\_Comm * & commptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshdata ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} (*) & indxtab, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & velmglbnbr, \\ & integer*{\it num} & velmlocnbr, \\ & integer*{\it idx} & velmlocidx, \\ & integer*{\it num} & eelmglbnbr, \\ & integer*{\it num} & eelmlocnbr, \\ & integer*{\it idx} & eelmlocidx, \\ & integer*{\it num} & vnodglbnbr, \\ & integer & comm) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshData} routine is the dual of the \texttt{SCOTCH\_\lbt dmesh\lbo Build\lbo Adm} routine. It is a multiple accessor that returns scalar values and array references. \texttt{baseptr} is the pointer to a location that will hold the mesh base value for index arrays (typically $0$ for structures built from C and $1$ for structures built from Fortran). \texttt{velmglbptr} is the pointer to a location that will hold the global number of element vertices. \texttt{velmlocptr} is the pointer to a location that will hold the number of local element vertices. \texttt{vertloctab} is the pointer to a location that will hold the reference to the adjacency index array, of size $\mbox{\tt *velmlocptr} + 1$. \texttt{eelmglbptr} is the pointer to a location that will hold the global number of element-to-node arcs, which is also the global number of node-to-element arcs. \texttt{eelmlocptr} is the pointer to a location that will hold the number of local element-to-node arcs. \texttt{eelmloctab} is the pointer to a location that will hold the reference to the local element-to-node adjacency array of global indices, of size \texttt{*eelmlocptr}. \texttt{vnodglbptr} is the pointer to a location that will hold the global number of node vertices. {\tt commptr} is the pointer to a location that will hold the MPI communicator of the distributed mesh. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. Since there are no pointers in Fortran, a specific mechanism is used to allow users to access mesh arrays. The \texttt{scotchf\lbt dmesh\lbt data} routine is passed an integer array, the first element of which is used as a base address from which all other array indices are computed. Therefore, instead of returning references, the routine returns integers, which represent the starting index of each of the relevant arrays with respect to the base input array, or \texttt{velm\lbt loc\lbt idx}, the index of \texttt{velm\lbt loc\lbt tab}, if they do not exist. For instance, if some base array \texttt{myarray\lbt (1)} is passed as parameter \texttt{indxtab}, then the first cell of array \texttt{velm\lbt loc\lbt tab} will be accessible as {\tt myarray\lbt (velm\lbt loc\lbt idx)}. In order for this feature to behave properly, the {\tt indxtab} array must be word-aligned with the mesh arrays. This is automatically enforced on most systems, but some care should be taken on systems that allow to access data that is not word-aligned. On such systems, declaring the array after a dummy {\tt double\lbt precision} array can coerce the compiler into enforcing the proper alignment. The integer value returned in {\tt comm} is the communicator itself, not its index with respect to {\tt indxtab}. Also, on 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type. See Section~\ref{sec-lib-inttypesize} for more information on this issue. \end{itemize} \subsubsection{\texttt{SCOTCH\_dmeshDgraphDual}} \label{sec-lib-func-dmeshdgraphdual} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dmeshDgraphDual ( & const SCOTCH\_Dmesh * & meshptr, \\ & SCOTCH\_Dgraph * & grafptr, \\ & const SCOTCH\_Num & nocoval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshdgraphdual ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & grafdat, \\ & integer & nocoval, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshDgraphDual} routine builds a distributed dual graph (\ie, an element graph) from a distributed mesh. It creates, in the \texttt{SCOTCH\_\lbt Dgraph} structure pointed to by \texttt{grafptr}, a distributed graph having as many vertices as there are elements in the \texttt{SCOTCH\_\lbt Dmesh} structure pointed to by \texttt{meshptr}, and such that there exists an edge between any two graph vertices if there are at least \texttt{nocoval} shared nodes between the two corresponding elements in the source mesh. \progret \texttt{SCOTCH\_dmeshDgraphDual} returns $0$ if the distributed graph structure has been successfully allocated and filled, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_dmeshExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dmeshExit ( & SCOTCH\_Dmesh * & meshptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshexit ( & doubleprecision (*) & meshdat) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshExit} function frees the contents of a \texttt{SCOTCH\_\lbt Dmesh} structure previously initialized by \texttt{SCOTCH\_\lbt dmeshInit}. All subsequent calls to \texttt{SCOTCH\_\lbt mesh} routines other than \texttt{SCOTCH\_\lbt dmesh\lbo Init}, using this structure as parameter, may yield unpredictable results. If \texttt{SCOTCH\_\lbt dmesh\lbt Init} was called with a communicator that is not a predefined MPI communicator, it is the user's responsibility to free this communicator after all meshes that use it have been freed by means of the \texttt{SCOTCH\_\lbt dmesh\lbt Exit} routine. \end{itemize} \subsubsection{{\tt SCOTCH\_dmeshFree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dmeshFree ( & SCOTCH\_Dmesh * & meshptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshfree ( & doubleprecision (*) & meshdat) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshFree} function frees the mesh data of a \texttt{SCOTCH\_\lbt Dmesh} structure previously initialized by \texttt{SCOTCH\_\lbt dmesh\lbt Init}, but preserves its internal communication data structures. This call is equivalent to a call to \texttt{SCOTCH\_\lbt dmesh\lbo Exit} immediately followed by a call to \texttt{SCOTCH\_\lbt dmesh\lbt Init} with the same communicator as in the previous \texttt{SCOTCH\_\lbt dmesh\lbt Init} call. Consequently, the given \texttt{SCOTCH\_\lbt Dmesh} structure remains ready for subsequent calls to any distributed mesh handling routine of the \libscotch\ library. \end{itemize} \subsubsection{\texttt{SCOTCH\_dmeshInit}} \label{sec-lib-func-dmeshinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dmeshInit ( & SCOTCH\_Dmesh * & meshptr, \\ & MPI\_Comm & comm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshinit ( & doubleprecision (*) & meshdat, \\ & integer & comm, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshInit} function initializes a \texttt{SCOTCH\_\lbt Dmesh} structure so as to make it suitable for future parallel operations. It should be the first function to be called upon a \texttt{SCOTCH\_\lbt Dmesh} structure. By accessing the communicator handle which is passed to it, \texttt{SCOTCH\_dmeshInit} can know how many processes will be used to manage the distributed mesh and can allocate its private structures accordingly. \texttt{SCOTCH\_dmeshInit} does not make a duplicate of the communicator which is passed to it, but instead keeps a reference to it, so that all future communications needed by \libscotch\ to process this mesh will be performed using this communicator. Therefore, it is the user's responsibility, whenever several \libscotch\ routines might be called in parallel, to create appropriate duplicates of communicators so as to avoid any potential interferences between concurrent communications. When the distributed mesh is no longer of use, the \texttt{SCOTCH\_\lbt dmesh\lbt Exit} function must be called, to free its internal data arrays. If \texttt{SCOTCH\_\lbt dmesh\lbt Init} was called with a communicator that is not a predefined MPI communicator (such as {\tt MPI\_\tt COMM\_\lbt WORLD} or {\tt MPI\_\tt COMM\_\lbt SELF}), it is the user's responsibility to free this communicator after all meshes that use it have been freed by means of the \texttt{SCOTCH\_\lbt dmesh\lbt Exit} routine. \progret {\tt SCOTCH\_dmeshInit} returns $0$ if the gmesh structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{\texttt{SCOTCH\_dmeshSize}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_dmeshSize ( & const SCOTCH\_Dmesh * & meshptr, \\ & SCOTCH\_Num * & velmglbptr, \\ & SCOTCH\_Num * & velmlocptr, \\ & SCOTCH\_Num * & eelmglbnbr, \\ & SCOTCH\_Num * & eelmlocptr, \\ & SCOTCH\_Num * & vnodglbptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshsize ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} & velmglbnbr, \\ & integer*{\it num} & velmlocnbr, \\ & integer*{\it num} & eelmglbnbr, \\ & integer*{\it num} & eelmlocnbr, \\ & integer*{\it num} & vnodglbnbr) \end{tabular}} \progdes The \texttt{SCOTCH\_dmeshSize} routine fills the five areas of type \texttt{SCOTCH\_\lbt Num} pointed to by \texttt{velmglbptr}, \texttt{velmlocptr}, \texttt{eelmglbptr}, \texttt{eelmlocptr} and \texttt{vnodglbptr} with the number of global element vertices and element-to-node arcs of the given mesh pointed to by {\tt meshptr}, as well as with the number of local element vertices and element-to-node arcs borne by each of the calling processes, and the global number of node vertices. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. This routine is useful to get the size of a mesh read by means of the {\tt SCOTCH\_\lbt dmesh\lbo Load} routine, in order to allocate auxiliary arrays of proper sizes. If the whole structure of the mesh is wanted, function \texttt{SCOTCH\_dmesh\lbo Data} should be preferred. \end{itemize} \subsubsection{\texttt{SCOTCH\_dmeshSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_dmeshSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_dmeshSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Dmesh} structure. This information is useful to export the interface of the {\sc libPTScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsection{Distributed mesh I/O routines} \subsubsection{{\tt SCOTCH\_dmeshLoad}} \label{sec-lib-func-dmeshload} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_dmeshLoad ( & SCOTCH\_Dmesh * & meshptr, \\ & FILE * & stream, \\ & SCOTCH\_Num & baseval, \\ & SCOTCH\_Num & flagval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmeshload ( & doubleprecision (*) & meshdat, \\ & integer & fildes, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & flagval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_dmeshLoad} routine fills the \texttt{SCOTCH\_\lbt Dmesh} structure pointed to by \texttt{meshptr} with the distributed source mesh description available from multiple streams \texttt{stream} in the \scotch\ distributed mesh format (please refer to Section~\ref{sec-file-admesh} for a description of the auxiliary distributed mesh format). To ease the handling of source mesh files by programs written in C as well as in Fortran, the base value of the mesh to read can be set to \texttt{0} or \texttt{1}, by setting the \texttt{baseval} parameter to the proper value. A value of \texttt{-1} indicates that the mesh base should be the same as the one provided in the mesh description that is read from \texttt{stream}. The \texttt{flagval} value is currently not used. This value should be set to \texttt{0}. Fortran users must use the \texttt{PXFFILENO} or \texttt{FNUM} functions to obtain the number of the Unix file descriptor \texttt{fildes} associated with the logical unit of the mesh file. \progret \texttt{SCOTCH\_dmeshLoad} returns $0$ if the distributed mesh structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsection{Strategy handling routines} \label{sec-lib-func-strat} This section presents basic strategy handling routines which are also described in the {\it\scotch\ User's Guide} but which are duplicated here for the sake of readability, as well as a strategy declaration routine which is specific to the \ptscotch\ library. \subsubsection{{\tt SCOTCH\_stratExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_stratExit ( & SCOTCH\_Strat * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratexit ( & doubleprecision (*) & stradat) \end{tabular}} \progdes The {\tt SCOTCH\_stratExit} function frees the contents of a {\tt SCOTCH\_\lbt Strat} structure previously initialized by {\tt SCOTCH\_\lbt strat\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt strat} routines other than {\tt SCOTCH\_\lbt strat\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_stratInit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratInit ( & SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratinit ( & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratInit} function initializes a {\tt SCOTCH\_\lbt Strat} structure so as to make it suitable for future operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Strat} structure. When the strategy data is no longer of use, call function {\tt SCOTCH\_\lbt strat\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_stratInit} returns $0$ if the strategy structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratSave ( & const SCOTCH\_Strat * & straptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratsave ( & doubleprecision (*) & stradat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratSave} routine saves the contents of the {\tt SCOTCH\_\lbt Strat} structure pointed to by {\tt straptr} to stream {\tt stream}, in the form of a text string. The methods and parameters of the strategy string depend on the type of the strategy, that is, whether it is a bipartitioning, mapping, or ordering strategy, and to which structure it applies, that is, graphs or meshes. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the output file. \progret {\tt SCOTCH\_stratSave} returns $0$ if the strategy string has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsection{Strategy creation routines} \label{sec-lib-func-strat-creation} Strategy creation routines parse the user-provided strategy string and populate the given opaque strategy object with a tree-shaped structure that represents the parsed expression. It is this structure that will be later traversed by the generic routines for partitioning, mapping or ordering, so as to determine which specific partitioning, mapping or ordering method to be called on a subgraph being considered. Because strategy creation routines call third-party lexical analyzers that may have been implemented in a non-reentrant way, no guarantee is given on the reentrance of these routines. Consequently, strategy creation routines that might be called simultaneously by multiple threads should be protected by a mutex. \subsubsection{{\tt SCOTCH\_stratDgraphClusterBuild}} \label{sec-lib-func-stratdgraphclusterbuild} \index{Clustering} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratDgraphClusterBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & procnbr, \\ & const SCOTCH\_Num & pwgtmax, \\ & const double & densmin, \\ & const double & bbalval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratdgraphclusterbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & procnbr, \\ & integer*{\it num} & pwgtmax, \\ & doubleprecision & densmin, \\ & doubleprecision & bbalval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratDgraphClusterBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default clustering strategy tuned according to the preference flags passed as {\tt flagval}, the maximum cluster vertex weight {\tt pwgtmax}, the minimum edge density {\tt densmin}, and the bipartition imbalance ratio {\tt bbalval}, to be used on {\tt procnbr} processes. From this point, the strategy structure can only be used as a mapping strategy, to be used by a mapping function such as {\tt SCOTCH\_\lbt graph\lbt Map}. Recursive bipartitioning will be applied to the graph, every bipartition allowing for an imbalance tolerance of {\tt bbalval}. Recursion will stop if either cluster size becomes smaller than {\tt pwgtmax}, or cluster edge density becomes higher than {\tt densmin}, which represents the fraction of edges internal to the cluster with respect to a complete graph. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. \progret {\tt SCOTCH\_stratDgraphClusterBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratDgraphMap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratDgraphMap ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratdgraphmap ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratDgraphMap} routine fills the strategy structure pointed to by {\tt straptr} with the distributed graph mapping strategy string pointed to by {\tt string}. The format of this strategy string is described in Section~\ref{sec-lib-format-strat-pmap}. From this point, strategy {\tt strat} can only be used as a distributed graph mapping strategy, to be used by functions {\tt SCOTCH\_\lbt dgraph\lbt Part}, {\tt SCOTCH\_\lbt dgraph\lbt Map} or {\tt SCOTCH\_\lbt dgraph\lbt Map\lbt Compute}. This routine must be called on every process with the same strategy string. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratDgraphMap} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratDgraphMapBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratDgraphMapBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & procnbr, \\ & const SCOTCH\_Num & partnbr, \\ & const double & balrat) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratdgraphmapbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & procnbr, \\ & integer*{\it num} & partnbr, \\ & doubleprecision & balrat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratDgraphMapBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default mapping strategy tuned according to the preference flags passed as {\tt flagval} and to the desired number of parts {\tt partnbr} and imbalance ratio {\tt balrat}, to be used on {\tt procnbr} processes. From this point, the strategy structure can only be used as a parallel mapping strategy, to be used by function {\tt SCOTCH\_\lbt dgraph\lbt Map}, for instance. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. \progret {\tt SCOTCH\_stratDgraphMapBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratDgraphOrder}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratDgraphOrder ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratdgraphorder ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratDgraphOrder} routine fills the strategy structure pointed to by {\tt straptr} with the distributed graph ordering strategy string pointed to by {\tt string}. The format of this strategy string is described in Section~\ref{sec-lib-format-strat-pord}. From this point, strategy {\tt strat} can only be used as a distributed graph ordering strategy, to be used by function {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Compute}. This routine must be called on every process with the same strategy string. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratDgraphOrder} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratDgraphOrderBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratDgraphOrderBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & procnbr, \\ & const SCOTCH\_Num & levlnbr, \\ & const double & balrat) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratdgraphorderbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & procnbr, \\ & integer*{\it num} & levlnbr, \\ & doubleprecision & balrat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratDgraphOrderBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default parallel ordering strategy tuned according to the preference flags passed as {\tt flagval} and to the desired nested dissection imbalance ratio {\tt balrat}, to be used on {\tt procnbr} processes. From this point, the strategy structure can only be used as a parallel ordering strategy, to be used by function {\tt SCOTCH\_\lbt dgraph\lbt Order}, for instance. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. When any of the {\tt SCOTCH\_\lbt STRAT\lbt LEVEL\lbt MIN} or {\tt SCOTCH\_\lbt STRAT\lbt LEVEL\lbt MAX} flags is set, the {\tt levlnbr} parameter is taken into account. \progret {\tt SCOTCH\_stratDgraphOrderBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsection{Other data structure routines} \label{sec-lib-func-other} \subsubsection{{\tt SCOTCH\_dmapAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Dmapping * SCOTCH\_dmapAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_dmapAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Dmapping} structure. It is the user's responsibility to free this memory when it is no longer needed. \progret {\tt SCOTCH\_dmapAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_dmapSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_dmapSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdmapsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_dmapSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Dmapping} structure. This information is useful to export the interface of the {\sc libPTScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_dorderAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Dordering * SCOTCH\_dorderAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_dorderAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Dordering} structure. It is the user's responsibility to free this memory when it is no longer needed. \progret {\tt SCOTCH\_dorderAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_dorderSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_dorderSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfdordersizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_dorderSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Dordering} structure. This information is useful to export the interface of the {\sc libPTScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsection{Error handling routines} \label{sec-lib-func-error} The handling of errors that occur within library routines is often difficult, because library routines should be able to issue error messages that help the application programmer to find the error, while being compatible with the way the application handles its own errors. To match these two requirements, all the error and warning messages produced by the routines of the \libscotch\ library are issued using the user-definable variable-length argument routines {\tt SCOTCH\_\lbt error\lbt Print} and {\tt SCOTCH\_\lbt error\lbt PrintW}. Thus, one can redirect these error messages to his own error handling routines, and can choose if he wants his program to terminate on error or to resume execution after the erroneous function has returned. In order to free the user from the burden of writing a basic error handler from scratch, the {\tt libptscotcherr.a} library provides error routines that print error messages on the standard error stream {\tt stderr} and return control to the application. Application programmers who want to take advantage of them have to add {\tt -lptscotcherr} to the list of arguments of the linker, after the {\tt -lptscotch} argument. \subsubsection{{\tt SCOTCH\_errorPrint}} \label{sec-lib-func-errorprint} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_errorPrint ( & const char * const & errstr, ... ) \end{tabular}} \progdes The {\tt SCOTCH\_errorPrint} function is designed to output a variable-length argument error string to some stream. \end{itemize} \subsubsection{{\tt SCOTCH\_errorPrintW}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_errorPrintW ( & const char * const & errstr, ...) \end{tabular}} \progdes The {\tt SCOTCH\_errorPrintW} function is designed to output a variable-length argument warning string to some stream. \end{itemize} \subsubsection{{\tt SCOTCH\_errorProg}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_errorProg ( & const char * & progstr) \end{tabular}} \progdes The {\tt SCOTCH\_errorProg} function is designed to be called at the beginning of a program or of a portion of code to identify the place where subsequent errors take place. This routine is not reentrant, as it is only a minor help function. It is defined in {\tt lib\lbt scotch\lbt err.a} and is used by the standalone programs of the \scotch\ distribution. \end{itemize} \subsection{Random generator handling} \label{sec-lib-func-random} In order not to be influenced by the concurrent execution of third-party software and/or library routines, the \libscotch\ library embeds its own pseudo-random number generator. This generator is used by default by all \libscotch\ routines. When \scotch\ has been compiled with any of the flags {\tt COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} or {\tt SCOTCH\_\lbt DETERMINISTIC} set, this random number generator is initialized with a prescribed, default seed. In this case, any two runs of the same sequence of \libscotch\ routines will yield the same result. The first flag will be sufficient when \scotch\ is run on a single thread, while he second one is necessary when \scotch\ is run on several threads, because multi-threaded versions of the \libscotch\ routines may rely by default on non-deterministic algorithms that are not only sensitive to the pseudo-random sequence but also to system artifacts (see Section~\ref{sec-lib-thread}). In certain cases, it may be interesting, when running the same sequential \scotch\ routine on different processors, to explore different solution spaces. The \texttt{SCOTCH\_\lbt random\lbt Proc} routine allows the user to set an instance (processor) number that will be used to parametrize the random seed, hence providing different pseudo-random sequences for each instance number. However, when any of the two aforementioned compilation flags have been set, these sequence will still be deterministic: two runs of a sequence of \libscotch\ routines taking place after a call to \texttt{SCOTCH\_\lbt random\lbt Reset} will always yield the same results. In the case where the user wants to run concurrently \libscotch\ routines on different threads or sets of threads, determinism cannot be ensured using the global pseudo-random generator, because of the non-determinism in the way concurrent routines retrieve the values of the pseudo-random sequence. Moreover, because the global pseudo-number generator is not protected against race conditions, calling it concurrently from several threads may yield unpredictable results. Hence, in this case, users should use a different \texttt{SCOTCH\_\lbt Context} for each master thread, that will contain its own pseudo-random generator (see Section~\ref{sec-lib-func-context}). \subsubsection{\texttt{SCOTCH\_randomProc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_randomProc ( & SCOTCH\_Num & procnum) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfrandomproc ( & integer*{\it num} & procnum) \end{tabular}} \progdes The \texttt{SCOTCH\_randomProc} routine sets to \texttt{procnum} the internal instance of the \libscotch\ library. This instance number influences the random seed that is used to initialize pseudo-random number generators. In order for this instance number to be taken into account as a seed for the global pseudo-random generator of the \libscotch\ library, \texttt{SCOTCH\_randomProc} must be either called before any other library routine, or followed by a call to \texttt{SCOTCH\_\lbt random\lbt Reset}. Subsequent calls to \texttt{SCOTCH\_\lbt random\lbt Reset} will make use of this number as well. The current value of \texttt{procnum} is copied along with the random seed, when the global pseudo-random number generator is cloned into a context by routine \texttt{SCOTCH\_\lbt context\lbt Random\lbt Clone}. \end{itemize} \subsubsection{{\tt SCOTCH\_randomReset}} \label{sec-lib-func-randomreset} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} void SCOTCH\_randomReset ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}l} scotchfrandomreset ( & ) \end{tabular}} \progdes The {\tt SCOTCH\_randomReset} routine resets the seed of the global pseudo-random generator used by default by the routines of the \libscotch\ library. Two consecutive calls to the same \libscotch\ partitioning or ordering routines within the same program, separated by a call to {\tt SCOTCH\_\lbt random\lbt Reset}, will always yield the same results. Moreover, when \scotch\ has been compiled with any of the flags {\tt COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} or {\tt SCOTCH\_\lbt DETERMINISTIC} set, any two runs of the same program at different times will yield the same result. \end{itemize} \subsubsection{{\tt SCOTCH\_randomSeed}} \label{sec-lib-func-randomseed} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_randomSeed ( & SCOTCH\_Num & seedval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfrandomseed ( & integer*{\it num} & seedval) \end{tabular}} \progdes The {\tt SCOTCH\_randomSeed} routine sets to {\tt seedval} the seed of the global pseudo-random generator used by default by some \scotch\ algorithms. All subsequent calls to {\tt SCOTCH\_\lbt random\lbt Reset} will use this value to reset the pseudo-random generator. In he case when no random seed is defined by the user, then depending whether \scotch\ has been compiled with any of the flags {\tt COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} or {\tt SCOTCH\_\lbt DETERMINISTIC} set or not, either the same pseudo-random seed will be always used, or a situation-dependent seed will be used, respectively. \end{itemize} \subsubsection{{\tt SCOTCH\_randomVal}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_randomVal ( & SCOTCH\_Num & randmax) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfrandomval ( & integer*{\it num} & randmax, \\ & integer*{\it num} & randval) \end{tabular}} \progdes The {\tt SCOTCH\_randomVal} routine returns a positive integer random value from the global pseudo-random generator, in the range $[0;\mbox{textsc{randmax}}[$. \end{itemize} \subsection{Context handling routines} \label{sec-lib-func-context} By default, \scotch\ uses a global pseudo-random number generator and takes advantage of as many threads as it can discover on the system. This behavior makes sense when only one call to the \libscotch\ is made at a time. However, cases may arise where the user wants to perform different tasks on the same graph or mesh at the same time, by calling concurrently \libscotch\ routines from different sets of threads. This is when \texttt{SCOTCH\_\lbt Context} objects are necessary. A \texttt{SCOTCH\_\lbt Context} is a data structure that encapsulates an environment execution for the routines of the \libscotch\ library. Essentially, it contains the set of threads that will be used for performing computations, and a private, independent pseudo-random number generator. For a detailed description of the use of \texttt{SCOTCH\_\lbt Context}'s, please refer to the {\it\scotch\ User's Guide}~\scotchcitesuser. \subsubsection{\texttt{SCOTCH\_contextBindDgraph}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextBindDgraph ( & SCOTCH\_Context * & contptr, \\ & SCOTCH\_Graph * & orggrafptr, \\ & SCOTCH\_Graph * & cntgrafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextbinddgraph ( & doubleprecision (*) & contdat, \\ & doubleprecision (*) & orggrafdat, \\ & doubleprecision (*) & cntgrafdat, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextBindDgraph} function initializes a context container object \texttt{cnt\lbt graf}, with a type compatible with a \texttt{SCOTCH\_\lbt Dgraph} structure, to make it reference both the given genuine \texttt{SCOTCH\_\lbt Dgraph} structure \texttt{org\lbt graf} and the \texttt{SCOTCH\_\lbt Context} structure \texttt{cont}. The context container can then be used by routines of the \libptscotch\ library that expect a \texttt{SCOTCH\_\lbt Dgraph}, which will take advantage of all the features offered by the given context. When the context container is no longer of use, call function \texttt{SCOTCH\_\lbt dgraph\lbt Exit} to free its internal structures. The original distributed graph and the context can then also be freed by using the adequate routines. \progret \texttt{SCOTCH\_contextBindDgraph} returns $0$ if the context container graph structure has been successfully initialized, and $1$ else. \end{itemize} \subsection{Memory management} \label{sec-lib-func-mem} \subsubsection{{\tt SCOTCH\_memCur}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Idx SCOTCH\_memCur ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmemcur ( & integer*{\it idx} & memcur) \\ \end{tabular}} \progdes When \scotch\ is compiled with the {\tt COMMON\_\lbt MEMORY\_\lbt TRACE} flag set, the {\tt SCOTCH\_memCur} routine returns the amount of memory, in bytes, that is currently allocated by \scotch\ on the current processing element, either by itself or on the behalf of the user. Else, the routine returns {\tt -1}. The returned figure does not account for the memory that has been allocated by the user and made visible to \scotch\ by means of routines such as {\tt SCOTCH\_\lbt dgraph\lbt Build} calls. This memory is not under the control of \scotch, and it is the user's responsibility to free it after calling the relevant {\tt SCOTCH\_\lbt *\lbt Exit} routines. Some third-party software used by \scotch, such as the strategy string parser, may allocate some memory for internal use and never free it. Consequently, there may be small discrepancies between memory occupation figures returned by \scotch\ and those returned by third-party tools. However, these discrepancies should not exceed a few kilobytes. While memory occupation is internally recorded in a variable of type {\tt intptr\_\lbt t}, it is output as a {\tt SCOTCH\_\lbt Idx} for the sake of interface homogeneity, especially for Fortran. It is therefore the installer's responsibility to make sure that the support integer type of {\tt SCOTCH\_\lbt Idx} is large enough to not overflow. See Section~\ref{sec-lib-inttypesize} for more information. \end{itemize} \subsubsection{{\tt SCOTCH\_memMax}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Idx SCOTCH\_memMax ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmemmax ( & integer*{\it idx} & memcur) \\ \end{tabular}} \progdes When \scotch\ is compiled with the {\tt COMMON\_\lbt MEMORY\_\lbt TRACE} flag set, the {\tt SCOTCH\_memMax} routine returns the maximum amount of memory, in bytes, ever allocated by \scotch\ on the current processing element, either by itself or on the behalf of the user. Else, the routine returns {\tt -1}. The returned figure does not account for the memory that has been allocated by the user and made visible to \scotch\ by means of routines such as {\tt SCOTCH\_\lbt dgraph\lbt Build} calls. This memory is not under the control of \scotch, and it is the user's responsibility to free it after calling the relevant {\tt SCOTCH\_\lbt *\lbt Exit} routines. Some third-party software used by \scotch, such as the strategy string parser, may allocate some memory for internal use and never free it. Consequently, there may be small discrepancies between memory occupation figures returned by \scotch\ and those returned by third-party tools. However, these discrepancies should not exceed a few kilobytes. While memory occupation is internally recorded in a variable of type {\tt intptr\_\lbt t}, it is output as a {\tt SCOTCH\_\lbt Idx} for the sake of interface homogeneity, especially for Fortran. It is therefore the installer's responsibility to make sure that the support integer type of {\tt SCOTCH\_\lbt Idx} is large enough to not overflow. See Section~\ref{sec-lib-inttypesize} for more information. \end{itemize} \subsection{\parmetis\ compatibility library} \label{sec-lib-func-parmetis} The \parmetis\ compatibility library provides stubs which redirect some calls to \parmetis\ routines to the corresponding \ptscotch\ counterparts. In order to use this feature, the only thing to do is to re-link the existing software with the {\tt lib\lbo ptscotch\lbo parmetis} library, and eventually with the original \parmetis\ library if the software uses \parmetis\ routines which do not need to have \ptscotch\ equivalents, such as graph transformation routines. In that latter case, the ``{\tt -lptscotch\lbt parmetis}'' argument must be placed before the ``{\tt -lparmetis}'' one (and of course before the ``{\tt -lptscotch}'' one too), so that routines that are redefined by \ptscotch\ are chosen instead of their \parmetis\ counterpart. Routines of \parmetis\ which are not redefined by \ptscotch\ may also require that the sequential \metis\ library be linked too. When no other \parmetis\ routines than the ones redefined by \ptscotch\ are used, the ``{\tt -lparmetis}'' argument can be omitted. See Section~\ref{sec-examples} for an example. \subsubsection{\texttt{ParMETIS\_V3\_Mesh2Dual}} \label{sec-lib-func-parmetis-meshtodual} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void ParMETIS\_V3\_Mesh2Dual ( & const SCOTCH\_Num * const & elmdist, \\ & const SCOTCH\_Num * const & eptr, \\ & const SCOTCH\_Num * const & eind, \\ & const SCOTCH\_Num * const & numflag, \\ & const SCOTCH\_Num * const & ncommonnodes, \\ & SCOTCH\_Num ** const & xadj, \\ & SCOTCH\_Num ** const & adjncy \\ & MPI\_Comm * & comm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} parmetis\_v3\_mesh2dual ( & integer*{\it num} (*) & elmdist, \\ & integer*{\it num} (*) & eptr, \\ & integer*{\it num} (*) & eind, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} & ncommonnodes, \\ & integer*{\it num} (**) & xadj, \\ & integer*{\it num} (**) & adjncy, \\ & integer & comm) \end{tabular}} \progdes The \texttt{ParMETIS\_V3\_Mesh2Dual} function computes in parallel the distributed element graph, also called dual mesh graph, from the given element mesh adjacency data. The input mesh is given through the three arrays \texttt{elmdist}, \texttt{eptr} and \texttt{eind}. The arrays which describe the adjacency of the dual graph are returned in the pointers pointed to by \texttt{xadj} and \texttt{adjncy}. It is the user's responsibility to free these two arrays after use, by way of plain \texttt{free} calls. \end{itemize} \subsubsection{{\tt ParMETIS\_V3\_NodeND}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void ParMETIS\_V3\_NodeND ( & const SCOTCH\_Num * const & vtxdist, \\ & const SCOTCH\_Num * const & xadj, \\ & const SCOTCH\_Num * const & adjncy, \\ & const SCOTCH\_Num * const & numflag, \\ & const SCOTCH\_Num * const & options, \\ & SCOTCH\_Num * const & order, \\ & SCOTCH\_Num * const & sizes, \\ & MPI\_Comm * & comm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} parmetis\_v3\_nodend ( & integer*{\it num} (*) & vtxdist, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} (*) & order, \\ & integer*{\it num} (*) & sizes, \\ & integer & comm) \end{tabular}} \progdes The {\tt ParMETIS\_V3\_NodeND} function performs a nested dissection ordering of the distributed graph passed as arrays {\tt vtxdist}, {\tt xadj} and {\tt adjncy}, using the default \ptscotch\ ordering strategy. Unlike for \parmetis, this routine will compute an ordering even when the number of processors on which it is run is not a power of two. The {\tt options} array is not used. When the number of processors is a power of two, the contents of the {\tt sizes} array is equivalent to the one returned by the original {\tt ParMETIS\_V3\_NodeND} routine, else it is filled with $-1$ values. Users willing to get the tree structure of orderings computed on numbers of processors which are not power of two should use the native \ptscotch\ ordering routine, and extract the relevant information from the distributed ordering with the {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Cblk\lbt Dist} and {\tt SCOTCH\_\lbt dgraph\lbt Order\lbt Tree\lbt Dist} routines. Similarly, as there is no {\tt ParMETIS\_V3\_NodeWND} routine in \parmetis, users willing to order distributed graphs with node weights should directly call the \ptscotch\ routines. \end{itemize} \subsubsection{{\tt ParMETIS\_V3\_PartGeomKway}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void ParMETIS\_V3\_PartGeomKway ( & const SCOTCH\_Num * const & vtxdist, \\ & const SCOTCH\_Num * const & xadj, \\ & const SCOTCH\_Num * const & adjncy, \\ & const SCOTCH\_Num * const & vwgt, \\ & const SCOTCH\_Num * const & adjwgt, \\ & const SCOTCH\_Num * const & wgtflag, \\ & const SCOTCH\_Num * const & numflag, \\ & const SCOTCH\_Num * const & ndims, \\ & const float * const & xyz, \\ & const SCOTCH\_Num * const & ncon, \\ & const SCOTCH\_Num * const & nparts, \\ & const float * const & tpwgts, \\ & const float * const & ubvec, \\ & const SCOTCH\_Num * const & options, \\ & SCOTCH\_Num * const & edgecut, \\ & SCOTCH\_Num * const & part, \\ & MPI\_Comm * & comm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} parmetis\_v3\_partgeomkway ( & integer*{\it num} (*) & vtxdist, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} (*) & adjwgt, \\ & integer*{\it num} & wgtflag, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} & ndims, \\ & float (*) & xyz, \\ & integer*{\it num} & ncon, \\ & integer*{\it num} & nparts, \\ & float (*) & tpwgts, \\ & float (*) & ubvec, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} & edgecut, \\ & integer*{\it num} (*) & part, \\ & integer & comm) \end{tabular}} \progdes The {\tt ParMETIS\_V3\_PartGeomKway} function computes a partition into {\tt nparts} parts of the distributed graph passed as arrays {\tt vtxdist}, {\tt xadj} and {\tt adjncy}, using the default \ptscotch\ mapping strategy. The partition is returned in the form of the distributed vector {\tt part}, which holds the indices of the parts to which every vertex belongs, from $0$ to $(\mbox{\tt nparts} - 1)$. Since \scotch\ does not handle geometry, the {\tt ndims} and {\tt xyz} arrays are not used, and this routine directly calls the {\tt ParMETIS\_\lbt V3\_\lbt Part\lbt Kway} stub. \end{itemize} \subsubsection{{\tt ParMETIS\_V3\_PartKway}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void ParMETIS\_V3\_PartKway ( & const SCOTCH\_Num * const & vtxdist, \\ & const SCOTCH\_Num * const & xadj, \\ & const SCOTCH\_Num * const & adjncy, \\ & const SCOTCH\_Num * const & vwgt, \\ & const SCOTCH\_Num * const & adjwgt, \\ & const SCOTCH\_Num * const & wgtflag, \\ & const SCOTCH\_Num * const & numflag, \\ & const SCOTCH\_Num * const & ncon, \\ & const SCOTCH\_Num * const & nparts, \\ & const float * const & tpwgts, \\ & const float * const & ubvec, \\ & const SCOTCH\_Num * const & options, \\ & SCOTCH\_Num * const & edgecut, \\ & SCOTCH\_Num * const & part, \\ & MPI\_Comm * & comm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} parmetis\_v3\_partkway ( & integer*{\it num} (*) & vtxdist, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} (*) & adjwgt, \\ & integer*{\it num} & wgtflag, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} & ncon, \\ & integer*{\it num} & nparts, \\ & float (*) & tpwgts, \\ & float (*) & ubvec, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} & edgecut, \\ & integer*{\it num} (*) & part, \\ & integer & comm) \end{tabular}} \progdes The {\tt ParMETIS\_V3\_PartKway} function computes a partition into {\tt nparts} parts of the distributed graph passed as arrays {\tt vtxdist}, {\tt xadj} and {\tt adjncy}, using the default \ptscotch\ mapping strategy. The partition is returned in the form of the distributed vector {\tt part}, which holds the indices of the parts to which every vertex belongs, from $0$ to $(\mbox{\tt nparts} - 1)$. Since \scotch\ does not handle multiple constraints, only the first constraint is taken into account to define the respective weights of the parts. Consequently, only the first {\tt nparts} cells of the {\tt tpwgts} array are considered. The {\tt ncon}, {\tt ubvec} and {\tt options} parameters are not used. \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_n.tex000066400000000000000000000211421514310134000256350ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_n.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Codage de nouvelles % % methodes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Adding new features to \scotch} \label{sec-coding} Since \scotch\ is libre/free software, users have the ability to add new features to it. Moreover, as \scotch\ is intended to be a testbed for new partitioning and ordering algorithms, it has been developed in a very modular way, to ease the development and inclusion of new partitioning and ordering methods to be called within \scotch\ strategies. All of the source code for partitioning and ordering methods for graphs and meshes is located in the {\tt src/\lbt libscotch/} source subdirectory. Source file names have a very regular pattern, based on the internal data structures they handle. \subsection{Graphs and meshes} The basic structures in \scotch\ are the {\tt Graph} and {\tt Mesh} structures, which model a simple symmetric graph the definition of which is given in file {\tt graph.h}, and a simple mesh, in the form of a bipartite graph, the definition of which is given in file {\tt mesh.h}, respectively. From this structure are derived enriched graph and mesh structures: \begin{itemize} \item {\tt Bgraph}, in file {\tt bgraph.h}: graph with bipartition, that is, edge separation, information attached to it; \item {\tt Kgraph}, in file {\tt kgraph.h}: graph with mapping information attached to it; \item {\tt Hgraph}, in file {\tt hgraph.h}: graph with halo information attached to it, for computing graph orderings; \item {\tt Vgraph}, in file {\tt vgraph.h}: graph with vertex bipartition information attached to it; \item {\tt Hmesh}, in file {\tt hmesh.h}: mesh with halo information attached to it, for computing graph orderings; \item {\tt Vmesh}, in file {\tt vmesh.h}: graph with vertex bipartition information attached to it. \end{itemize} As version {\sc 4.0} of the \libscotch\ does not provide mesh mapping capabilities, neither {\tt Bmesh} nor {\tt Kmesh} structures have been defined to date, but they well may be in the future. All of the structures are in fact defined as {\tt typedef}ed types. \subsection{Methods} \subsection{Adding a new method to \scotch} We will assume in this section that the new method to add is a graph separation method. The procedure explained below is exactly the same for graph bipartitioning, graph mapping, graph ordering, mesh separation, or mesh ordering methods. Please proceed as explained below. \begin{enumerate} \item Write the code of the method itself. First, choose a free two-letter code to describe your method, say ``xy''. In the {\tt libscotch} source directory, create files {\tt vgraph\_\lbt separate\_\lbt xy.c} and {\tt vgraph\_\lbt separate\_\lbt xy.h}, basing on existing files such as {\tt vgraph\_\lbt separate\_\lbt gg.c} and {\tt vgraph\_\lbt separate\_\lbt gg.h}, for instance. If the method is complex, it can be split across several other files, which will be named {\tt vgraph\_\lbt separate\_\lbt xy\_\lbt first\lbt module\lbt name.c}, {\tt vgraph\_\lbt separate\_\lbt xy\_\lbt second\lbt module\lbt name.c}, eventually with matching header files. If the method has parameters, create a structure called {\tt Vgraph\lbt Separate\lbt Xy\lbt Param}, which contains types that are handled by the strategy parser, such as {\tt INT} and {\tt double}. The execution of your method should result in the setting or in the updating of the {\tt Vgraph} structure that is passed to it. See its definition in {\tt vgraph.h} and read several simple graph separation methods, such as {\tt vgraph\_\lbt separate\_\lbt zr.c}, to figure out what all of its parameters mean. At the end of your method, always call, when the {\tt SCOTCH\_\lbt DEBUG\_\lbt VGRAPH2} debug flag is set, the {\tt vgraph\lbt Check} routine, to avoid the spreading of eventual bugs to other parts of the \libscotch\ library. \item Add the method to the parser tables. The files to update are {\tt vgraph\_\lbt separate\_\lbt st.c} and {\tt vgraph\_\lbt separate\_\lbt st.h}, where ``{\tt st}'' stands for ``strategy''. First, edit {\tt vgraph\_\lbt separate\_\lbt st.h}. In the {\tt Vgraph\lbt Separate\lbt St\lbt Method\lbt Type} enumeration, add a line for your new method {\tt VGRAPH\lbt SEPA\lbt ST\lbt METH\lbt XY}. Then, edit {\tt vgraph\_\lbt separate\_\lbt st.c}, where all of the remaining actions take place. In the top of the file, add a {\tt \#include} directive to include {\tt vgraph\_\lbt separate\_\lbt xy.h}. If the method has parameters, create a {\tt vgraph\lbt separate\lbt default\lbt xy} C union, basing on an existing one, and fill it with the default values of your method parameters. In the {\tt vgraph\lbt separate\lbt st\lbt meth\lbt tab} method array, add a line for the new method. To do so, choose a free single-letter code that will be used to designate the new method in strategy strings. If the method has parameters, the last field should be a pointer to the default structure, else it should be set to {\tt NULL}. If the method has parameters, update the {\tt vgraph\lbt separate\lbt st\lbt para\lbt tab} parameter array. Add one data block per parameter. The first field is the name of the method to which the parameter applies, that is, {\tt VGRAPH\lbt SEPA\lbt ST\lbt METH\lbt XY}. The second field is the type of the parameter, which can be: \begin{itemize} \item {\tt STRATPARAMCASE}: the support type is an {\tt int}. It receives the index in the case string, given as last field of the parameter line, of the selected case character code; \item {\tt STRATPARAMDOUBLE}: the support type is a {\tt double} value; \item {\tt STRATPARAMINT}: the support type is an {\tt INT}, which is the generic integer type handled internally by \scotch. This type has variable extent, depending on compilation flags, as described in Section~\ref{sec-lib-inttypesize}; \item {\tt STRATPARAMSTRING}: a (small) character string. \item {\tt STRATPARAMSTRAT}: strategy. For instance, the graph ordering method by nested dissection takes a vertex partitioning strategy as one of its parameters, to compute the vertex separators. \end{itemize} The fourth and fifth fields are the address of the location of the default structure and the address of the parameter within this default structure, respectively. From these two values can be computed at run time the offset of the parameter within any instance of the parameter structure, which is used to fill the actual structures in the parsed strategy evaluation tree. The value of the sixth parameter depends on the type of the parameter. It should be {\tt NULL} for {\tt STRAT\lbt PARAM\lbt DOUBLE} and {\tt STRAT\lbt PARAM\lbt INT} parameters, points to the string of available case letters for {\tt STRAT\lbt PARAM\lbt CASE} parameters, points to the target string buffer for {\tt STRAT\lbt PARAM\lbt STRING} parameters, and points to the relevant method parsing table for for {\tt STRAT\lbt PARAM\lbt STRAT} parameters. \item Edit the makefile of the \libscotch\ source directory to enable the compilation and linking of the method. Depending on \libscotch\ versions, this makefile is either called {\tt Makefile} or {\tt make\_\lbt gen}. \item Compile in debug mode and experiment with your routine, by creating strategies that contain its single-letter code. \item To change the default strategy string used by the \libscotch\ library, update file {\tt library\_\lbt graph\_\lbt order.c}, since it is the graph ordering routine which makes use of graph vertex separation methods to compute separators for the nested dissection ordering method. \end{enumerate} \subsection{Licensing of new methods and of derived works} According to the terms of the GNU Lesser General Public License (LGPL)~\cite{lgpl}, under which the \scotch\ software package is distributed, the works that are carried out to improve and extend the \libscotch\ library must be licensed under the same terms. Basically, it means that you will have to distribute the sources of your new methods, along with the sources of \scotch, to any recipient of your modified version of the \libscotch, and that you grant these recipients the same rights of update and redistribution as the ones that are given to you under the terms of the LGPL. Please read it carefully to know what you can do and cannot do with the \scotch\ distribution. \\ You should have received a copy of the GNU Lesser General Public License along with the \scotch\ distribution; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/p_p.tex000066400000000000000000000544651514310134000256550ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : p_p.tex % % Sujet : Manuel de l'utilisateur % % du projet 'PT-Scotch' % % Programmes 6.0 % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Programs} \label{sec-prog} \subsection{Invocation} All of the programs comprised in the \scotch\ and \ptscotch\ distributions have been designed to run in command-line mode without any interactive prompting, so that they can be called easily from other programs by means of ``\mbox{\tt system$\,$()}'' or ``\mbox{\tt popen$\,$()}'' system calls, or be piped together on a single shell command line. In order to facilitate this, whenever a stream name is asked for (either on input or output), the user may put a single ``{\tt -}'' to indicate standard input or output. Moreover, programs read their input in the same order as stream names are given in the command line. It allows them to read all their data from a single stream (usually the standard input), provided that these data are ordered properly. A brief on-line help is provided with all the programs. To get this help, use the ``{\tt -h}'' option after the program name. The case of option letters is not significant, except when both the lower and upper cases of a letter have different meanings. When passing parameters to the programs, only the order of file names is significant; options can be put anywhere in the command line, in any order. Examples of use of the different programs of the \ptscotch\ project are provided in section~\ref{sec-examples}. Error messages are standardized, but may not be fully explanatory. However, most of the errors you may run into should be related to file formats, and located in ``\mbox{\tt \ldots Load}'' routines. In this case, compare your data formats with the definitions given in section~\ref{sec-file}, and use the {\tt dgtst} % and {\tt dmtst} program of the \ptscotch\ distribution to check the consistency of your distributed source graphs. % and meshes. \\ According to your MPI environment, you may either run the programs directly, or else have to invoke them by means of a command such as {\tt mpirun}. Check your local MPI documentation to see how to specify the number of processors on which to run them. \subsection{File names} \label{sec-prog-filename} \subsubsection{Sequential and parallel file opening} The programs of the \ptscotch\ distribution can handle either the classical centralized \scotch\ graph files, or the distributed \ptscotch\ graph files described in section~\ref{sec-file-dsgraph}. In order to tell whether programs should read from, or write to, a single file located on only one processor, or to multiple instances of the same file on all of the processors, or else to distinct files on each of the processors, a special grammar has been designed, which is based on the ``{\tt \%}'' escape character. Four such escape sequences are defined, which are interpreted independently on every processor, prior to file opening. By default, when a filename is provided, it is assumed that the file is to be opened on only one of the processors, called the root processor, which is usually process $0$ of the communicator within which the program is run. Using any of the first three escape sequences below will instruct programs to open in parallel a file of name equal to the interpreted filename, on every processor on which they are run. \begin{itemize} \iteme[{\tt \%p}] Replaced by the number of processes in the global communicator in which the program is run. Leads to parallel opening. \iteme[{\tt \%r}] Replaced on each process running the program by the rank of this process in the global communicator. Leads to parallel opening. \iteme[{\tt \%-}] Discarded, but leads to parallel opening. This sequence is mainly used to instruct programs to open on every processor a file of identical name. The opened files can be, according whether the given path leads to a shared directory or to directories that are local to each processor, either to the opening of multiple instances of the same file, or to the opening of distinct files which may each have a different content, respectively (but in this latter case it is much recommended to identify files by means of the ``{\tt \%r}'' sequence). \iteme[{\tt \%\%}] Replaced by a single ``{\tt \%}'' character. File names using this escape sequence are not considered for parallel opening, unless one or several of the three other escape sequences are also present. \end{itemize} For instance, filename ``{\tt brol}'' will lead to the opening of file ``{\tt brol}'' on the root processor only, filename ``{\tt \%-brol}'' (or even ``{\tt br\%-ol}'') will lead to the parallel opening of files called ``{\tt brol}'' on every processor, and filename ``{\tt brol\%p-\%r}'' will lead to the opening of files ``{\tt brol2-0}'' and ``{\tt brol2-1}'', respectively, on each of the two processors on which which would run a program of the \ptscotch\ distribution. \subsection{Using multi-threading} \label{sec-prog-multithread} Starting from version \textsc{6.1.0}, thread management in \scotch\ is dynamic. This allows the user to control dynamically the number of threads that are used by the threaded algorithms of the \libscotch\ library and, consequently, by the \scotch\ standalone programs that call them. These algorithms are enabled when \scotch\ is compiled with the flag ``\texttt{-DSCOTCH\_\lbt PTHREAD}'' set. \\ The behavior of the \libscotch\ and all the executables that rely on it (including the \scotch\ standalone programs themselves) can be modified dynamically by way of environment variables, which take precedence over the compilation flags with same purpose. \begin{itemize} \item \texttt{SCOTCH\_PTHREAD\_NUMBER}: this environment variable sets the prescribed maximum number of threads that \scotch\ may use in the course of its computations. A value of \texttt{-1} indicates to use as many threads as provided by the system at launch time. Setting this number to \texttt{1} will coerce \scotch\ into using only purely sequential algorithms (which may differ in nature from their multi-threaded counterparts). \item \texttt{SCOTCH\_DETERMINISTIC}: when set to \texttt{0}, faster, non-deterministic, multi-threaded algorithms may be used; when set to \texttt{1}, fully deterministic, albeit sometimes slower, multi-threaded algorithms are always used. \item \texttt{SCOTCH\_RANDOM\_FIXED\_SEED}: when set to \texttt{1}, the same pseudo-random seed is used for each run, allowing for reproducibility in case only deterministic algorithms are used; when set to \texttt{0}, a new pseudo-random seed is used for each run. \end{itemize} \subsubsection{Using compressed files} \label{sec-prog-compressed} Starting from version 5.0.6, \scotch\ allows users to provide and retrieve data in compressed form. Since this feature requires that the compression and decompression tasks run in the same time as data is read or written, it can only be done on systems which support multi-threading (Posix threads) or multi-processing (by means of {\tt fork} system calls). To determine if a stream has to be handled in compressed form, \scotch\ checks its extension. If it is ``{\tt .gz}'' ({\tt gzip} format), ``{\tt .bz2}'' ({\tt bzip2} format) or ``{\tt .lzma}'' ({\tt lzma} format), the stream is assumed to be compressed according to the corresponding format. A filter task will then be used to process it accordingly if the format is implemented in \scotch\ and enabled on your system. To date, data can be read and written in {\tt bzip2} and {\tt gzip} formats, and can also be read in the {\tt lzma} format. Since the compression ratio of {\tt lzma} on \scotch\ graphs is $30\%$ better than the one of {\tt gzip} and {\tt bzip2} (which are almost equivalent in this case), the {\tt lzma} format is a very good choice for handling very large graphs. To see how to enable compressed data handling in \scotch, please refer to Section~\ref{sec-install}. \\ When the compressed format allows it, several files can be provided on the same stream, and be uncompressed on the fly. For instance, the command ``{\tt cat brol.grf.gz brol.xyz.gz | gout -.gz -.gz -Mn - brol.iv}'' concatenates the topology and geometry data of some graph {\tt brol} and feed them as a single compressed stream to the standard input of program {\tt gout}, hence the ''{\tt -.gz}'' to indicate a compressed standard stream. \subsection{Description} \subsubsection{\texttt{adm2dgr}} \label{sec-prog-admtodgr} \begin{itemize} \progsyn {\tt adm2dgr} [{\it input\_\lbt mesh\_\lbt file} [{\it output\_\lbt graph\_\lbt file}]] {\it options} \progdes The \texttt{adm2dgr} program is not a standard \scotch\ program. It is part of the \libscotchmetis\ module, and is only available when the latter is installed. Its main use is to test the \texttt{ParMETIS\_\lbt V3\_\lbt Mesh2dual$\,$()} routine of the \libscotchmetis\ library (see Section~\ref{sec-lib-func-parmetis-meshtodual}). The \texttt{adm2dgr} program computes in parallel the dual graph (that is, the element graph) of a distributed mesh provided as an auxiliary distributed mesh file. The output distributed graph is stored in the form of a \scotch\ distributed graph file. The adjacency relationship between two elements in the dual graph is defined by the number of nodes they have in common. This number can be provided on the command line. The \textit{input\_mesh\_file} filename refers to an auxiliary distributed mesh, according to the semantics defined in Section~\ref{sec-prog-filename}. The {\it output\_graph\_file} filename refers to a distributed graph, following the same semantics. \progopt\\* \begin{itemize} \iteme[\texttt{-c}\textit{num}] Set the minimum number of common neighbors that defines the adjacency relationship between the elements in the element graph. Two elements in the element graph will be connected if the number of nodes they have in common in the input auxiliary mesh graph is greater than or equal to \texttt{num}. This value is set to $1$ by default. \iteme[{\tt -h}] Display the program synopsis. \iteme[{\tt -V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{{\tt dgmap} / {\tt dgpart}} \label{sec-prog-dgmap} \begin{itemize} \progsyn {\tt dgmap} [{\it input\_graph\_file} [{\it input\_\lbt target\_\lbt file} [{\it output\_\lbt mapping\_\lbt file} [{\it output\_\lbt log\_\lbt file}]]]] {\it options}\\ ~\\ {\tt dgpart} {\it number\_\lbt of\_\lbt parts} [{\it input\_graph\_file} [{\it output\_\lbt mapping\_\lbt file} [{\it output\_\lbt log\_\lbt file}]]] {\it options} \progdes The {\tt dgmap} program is the parallel static mapper. It uses a static mapping strategy to compute a mapping of the given source graph to the given target architecture. The implemented algorithms aim at assigning source graph vertices to target vertices such that every target vertex receives a set of source vertices of summed weight proportional to the relative weight of the target vertex in the target architecture, and such that the communication cost function $f_C$ is minimized (see Section~\ref{sec-algo-cost} for the definition and rationale of this cost function). Since its main purpose is to provide mappings that exhibit high concurrency for communication minimization in the mapped application, it comprises a parallel implementation of the dual recursive bipartitioning algorithm~\cite{pell94a}, as well as all of the sequential static mapping methods used by its sequential counterpart {\tt gmap}, to be used on subgraphs located on single processors. {\tt dgpart} is a simplified interface to {\tt dgmap}, which performs graph partitioning instead of static mapping. Consequently, the desired number of parts has to be provided, in lieu of the target architecture. The {\tt -b} and {\tt -c} options allow the user to set preferences on the behavior of the mapping strategy which is used by default. The {\tt -m} option allows the user to define a custom mapping strategy. The {\it input\_graph\_file} filename can refer either to a centralized or to a distributed graph, according to the semantics defined in Section~\ref{sec-prog-filename}. The mapping file must be a centralized file. \progopt\\* Since the program is devoted to experimental studies, it has many optional parameters, used to test various execution modes. Values set by default will give best results in most cases. \begin{itemize} \iteme[{\tt -b}{\it rat}] Set the maximum load imbalance ratio to \textit{rat}, which should be a value comprised between $0$ and $1$. This option can be used in conjunction with option \texttt{-c}, but is incompatible with option \texttt{-m}. \iteme[{\tt -c}{\it flags}] Tune the default mapping strategy according to the given preference flags. Some of these flags are antagonistic, while others can be combined. See Section~\ref{sec-lib-format-strat-default} for more information. The currently available flags are the following. \begin{itemize} \iteme[{\tt b}] Enforce load balance as much as possible. \iteme[{\tt q}] Privilege quality over speed. This is the default behavior. \iteme[{\tt s}] Privilege speed over quality. \iteme[{\tt t}] Use only safe methods in the strategy. \iteme[{\tt x}] Favor scalability. \end{itemize} This option can be used in conjunction with option \texttt{-b}, but is incompatible with option \texttt{-m}. The resulting strategy string can be displayed by means of the {\tt -vs} option. \iteme[{\tt -h}] Display the program synopsis. \iteme[{{\tt -m}{\it strat}}] Apply parallel static mapping strategy {\it strat}. The format of parallel mapping strategies is defined in section~\ref{sec-lib-format-strat-pmap}. This option is incompatible with options \texttt{-b} and \texttt{-c}. \iteme[{\tt -r}{\it num}] Set the number of the root process which will be used for centralized file accesses. Set to $0$ by default. \iteme[{\tt -s}{\it obj}] Mask source edge and vertex weights. This option allows the user to ``unweight'' weighted source graphs by removing weights from edges and vertices at loading time. {\it obj\/} may contain several of the following switches. \begin{itemize} \iteme[{\tt e}] Remove edge weights, if any. \iteme[{\tt v}] Remove vertex weights, if any. \end{itemize} \iteme[{\tt -V}] Print the program version and copyright. \iteme[{\tt -v}{\it verb}] Set verbose mode to {\it verb}, which may contain several of the following switches. %For a detailed description of the data displayed, please %refer to the manual page of {\tt dgmtst} below. \begin{itemize} \iteme[{\tt a}] Memory allocation information. \iteme[{\tt m}] Mapping information, similar to the one displayed by the {\tt gmtst} program of the sequential \scotch\ distribution. \iteme[{\tt s}] Strategy information. This parameter displays the default mapping strategy used by {\tt gmap}. \iteme[{\tt t}] Timing information. \end{itemize} \end{itemize} \end{itemize} \subsubsection{{\tt dgord}} \begin{itemize} \progsyn {\tt dgord} [{\it input\_graph\_file} [{\it output\_ordering\_file} [{\it output\_log\_file}]]] {\it options} \progdes The {\tt dgord} program is the parallel sparse matrix block orderer. It uses an ordering strategy to compute block orderings of sparse matrices represented as source graphs, whose vertex weights indicate the number of DOFs per node (if this number is non homogeneous) and whose edges are unweighted, in order to minimize fill-in and operation count. Since its main purpose is to provide orderings that exhibit high concurrency for parallel block factorization, it comprises a parallel nested dissection method~\cite{geli81}, but sequential classical~\cite{liu-85} and state-of-the-art~\cite{peroam00a} minimum degree algorithms are implemented as well, to be used on subgraphs located on single processors. Ordering methods can be combined by means of selection, grouping, and condition operators, so as to define ordering strategies, which can be passed to the program by means of the {\tt -o} option. The {\tt -c} option allows the user to set preferences on the behavior of the ordering strategy which is used by default. The {\it input\_graph\_file} filename can refer either to a centralized or to a distributed graph, according to the semantics defined in Section~\ref{sec-prog-filename}. The ordering file must be a centralized file. \progopt\\* Since the program is devoted to experimental studies, it has many optional parameters, used to test various execution modes. Values set by default will give best results in most cases. \begin{itemize} \iteme[{\tt -c}{\it flags}] Tune the default ordering strategy according to the given preference flags. Some of these flags are antagonistic, while others can be combined. See Section~\ref{sec-lib-format-strat-default} for more information. The resulting strategy string can be displayed by means of the {\tt -vs} option. \begin{itemize} \iteme[{\tt b}] Enforce load balance as much as possible. \iteme[{\tt q}] Privilege quality over speed. This is the default behavior. \iteme[{\tt s}] Privilege speed over quality. \iteme[{\tt t}] Use only safe methods in the strategy. \iteme[{\tt x}] Favor scalability. \end{itemize} \iteme[{\tt -h}] Display the program synopsis. \iteme[{\tt -m}{\it output\_mapping\_file}] Write to {\it output\_mapping\_file\/} the mapping of graph vertices to column blocks. All of the separators and leaves produced by the nested dissection method are considered as distinct column blocks, which may be in turn split by the ordering methods that are applied to them. Distinct integer numbers are associated with each of the column blocks, such that the number of a block is always greater than the ones of its predecessors in the elimination process, that is, its descendants in the elimination tree. The structure of mapping files is described in detail in the relevant section of the {\it\scotch\ User's Guide}~\scotchcitesuser. When the geometry of the graph is available, this mapping file may be processed by program {\tt gout} to display the vertex separators and supervariable amalgamations that have been computed. \iteme[{{\tt -o}{\it strat}}] Apply parallel ordering strategy {\it strat}. The format of parallel ordering strategies is defined in section~\ref{sec-lib-format-strat-pord}. \iteme[{\tt -r}{\it num}] Set the number of the root process which will be used for centralized file accesses. Set to $0$ by default. \iteme[{\tt -t}{\it output\_tree\_file}] Write to {\it output\_tree\_file\/} the structure of the separator tree. The data that is written resembles much the one of a mapping file: after a first line that contains the number of lines to follow, there are that many lines of mapping pairs, which associate an integer number with every graph vertex index. This integer number is the number of the column block which is the parent of the column block to which the vertex belongs, or $-1$ if the column block to which the vertex belongs is a root of the separator tree (there can be several roots, if the graph is disconnected). Combined to the column block mapping data produced by option {\tt -m}, the tree structure allows one to rebuild the separator tree. \iteme[{\tt -V}] Print the program version and copyright. \iteme[{\tt -v}{\it verb}] Set verbose mode to {\it verb}, which may contain several of the following switches. %For a detailed description of the data displayed, please %refer to the manual page of {\tt gotst}. \begin{itemize} \iteme[{\tt a}] Memory allocation information. \iteme[{\tt s}] Strategy information. This parameter displays the default parallel ordering strategy used by {\tt dgord}. \iteme[{\tt t}] Timing information. \end{itemize} \end{itemize} \end{itemize} \subsubsection{{\tt dgpart}} \begin{itemize} \progsyn {\tt dgpart} [{\it number\_of\_parts} [{\it input\_\lbt graph\_\lbt file} [{\it output\_\lbt mapping\_\lbt file} [{\it output\_\lbt log\_\lbt file}]]]] {\it options} \progdes The {\tt dgpart} program is the parallel graph partitioner. It is in fact a shortcut for the {\tt dgmap} program, where the number of parts is turned into a complete graph with same number of vertices which is passed to the static mapping routine. Save for the {\it number\_of\_parts} parameter which replaces the {\it input\_target\_file}, the parameters of {\tt dgpart} are identical to the ones of {\tt dgmap}. Please refer to its manual page, in Section~\ref{sec-prog-dgmap}, for a description of all of the available options. \end{itemize} \subsubsection{{\tt dgscat} / {\tt gscat}} \begin{itemize} \progsyn {\tt dgscat} [{\it input\_graph\_file} [{\it output\_graph\_file}]] {\it options} \progdes The {\tt dgscat} program creates a distributed source graph, in the \scotch\ distributed graph format, from the given centralized source graph file. The {\it input\_graph\_file} filename should therefore refer to a centralized graph, while {\it output\_graph\_file} must refer to a distributed graph, according to the semantics defined in Section~\ref{sec-prog-filename}. {\tt dgscat} has a sequential counterpart, called {\tt gscat}. The latter operates by processing the source graph file on the fly, and does not perform any consistency checking on the output it produces. \progopt\\[-1em] \begin{itemize} \iteme[{\tt -c}] Check the consistency of the distributed graph at the end of the graph loading phase. \iteme[{\tt -h}] Display the program synopsis. \iteme[{\tt -i}{\it nbr}] For gscat only. Create an imbalanced distributed graph, in which the distributed graph files for all processes will receive \textit{nbr} vertices of the graph, save for the file for the last process, which will receive all the remaining vertices. \iteme[{\tt -r}{\it num}] Set the number of the root process which will be used for centralized file accesses. Set to $0$ by default. \iteme[{\tt -V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{{\tt dgtst}} \begin{itemize} \progsyn {\tt dgtst} [{\it input\_graph\_file} [{\it output\_data\_file}]] {\it options} \progdes The program {\tt dgtst} is the source graph tester. It checks the consistency of the input source graph structure (matching of arcs, number of vertices and edges, etc\@.), and gives some statistics regarding edge weights, vertex weights, and vertex degrees. It produces the same results as the {\tt gtst} program of the \scotch\ sequential distribution. \progopt \begin{itemize} \iteme[{\tt -h}] Display the program synopsis. \iteme[{\tt -r}{\it num}] Set the number of the root process which will be used for centralized file accesses. Set to $0$ by default. \iteme[{\tt -V}] Print the program version and copyright. \end{itemize} \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/s_f_mult.eps000066400000000000000000000132161514310134000266630ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Mon Jan 29 23:59:02 2007 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 574 285 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 285 moveto 0 0 lineto 574 0 lineto 574 285 lineto closepath clip newpath -35.0 347.5 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 0 /Times-Roman ff 240.00 scf sf 600 4725 m gs 1 -1 sc (Coarsening) col-1 sh gr /Times-Roman ff 240.00 scf sf 825 4950 m gs 1 -1 sc (phase) col-1 sh gr /Times-Roman ff 240.00 scf sf 8550 4725 m gs 1 -1 sc (Uncoarsening) col-1 sh gr /Times-Roman ff 240.00 scf sf 8925 4950 m gs 1 -1 sc (phase) col-1 sh gr % Arc 7.500 slw 0 slc gs clippath 4050 5293 m 4217 5278 l 4212 5218 l 4044 5233 l 4044 5233 l 4167 5253 l 4050 5293 l cp eoclip n 3839.2 2023.3 3246.9 -176.0571 83.6195 arcn gs col-1 s gr gr % arrowhead 0 slj n 4050 5293 m 4167 5253 l 4044 5233 l col-1 s % Arc gs clippath 9636 1951 m 9629 1783 l 9569 1786 l 9576 1954 l 9576 1954 l 9601 1833 l 9636 1951 l cp eoclip n 6360.8 2023.3 3246.9 -3.9429 96.3805 arc gs col-1 s gr gr % arrowhead n 9636 1951 m 9601 1833 l 9576 1954 l col-1 s % Ellipse n 2100 1800 1200 600 0 360 DrawEllipse gs col-1 s gr % Ellipse n 2550 3300 1020 510 0 360 DrawEllipse gs col-1 s gr % Ellipse n 8100 1800 1200 600 0 360 DrawEllipse gs col-1 s gr % Ellipse n 7650 3300 1020 510 0 360 DrawEllipse gs col-1 s gr % Ellipse n 5100 5100 555 270 0 360 DrawEllipse gs col-1 s gr % Ellipse n 6750 4500 765 390 0 360 DrawEllipse gs col-1 s gr % Ellipse n 3450 4500 765 390 0 360 DrawEllipse gs col-1 s gr % Polyline 30.000 slw n 4935 5355 m 5085 5250 l 5040 5040 l 5220 4965 l 5190 4830 l gs col-1 s gr % Polyline 7.500 slw n 6600 4875 m 6750 4725 l 6675 4350 l 6900 4200 l 6840 4110 l gs col-1 s gr % Polyline 30.000 slw n 6690 4890 m 6675 4725 l 6675 4650 l 6750 4350 l 6825 4200 l 6735 4110 l gs col-1 s gr % Polyline 7.500 slw n 7575 3810 m 7575 3600 l 7650 3150 l 7800 2925 l 7710 2790 l gs col-1 s gr % Polyline n 8100 2400 m 8025 2100 l 8325 1575 l 8175 1350 l 8250 1200 l gs col-1 s gr % Polyline 30.000 slw n 8025 2400 m 8250 1875 l 8175 1500 l 8250 1350 l 8175 1200 l gs col-1 s gr % Polyline n 7695 3810 m 7500 3450 l 7800 3075 l 7725 2925 l 7830 2790 l gs col-1 s gr % Polyline 7.500 slw gs clippath 7869 2022 m 8033 2057 l 8045 1998 l 7881 1963 l 7881 1963 l 7993 2018 l 7869 2022 l cp eoclip n 6600 1725 m 8025 2025 l gs col-1 s gr gr % arrowhead n 7869 2022 m 7993 2018 l 7881 1963 l col-1 s % Polyline gs clippath 7944 1570 m 8107 1607 l 8121 1549 l 7957 1512 l 7957 1512 l 8068 1568 l 7944 1570 l cp eoclip n 6450 1200 m 8100 1575 l gs col-1 s gr gr % arrowhead n 7944 1570 m 8068 1568 l 7957 1512 l col-1 s /Times-Roman ff 240.00 scf sf 4350 5700 m gs 1 -1 sc (Initial partitioning) col-1 sh gr /Times-Roman ff 240.00 scf sf 4800 1800 m gs 1 -1 sc (Projected partition) col-1 sh gr /Times-Roman ff 240.00 scf sf 4800 1275 m gs 1 -1 sc (Refined partition) col-1 sh gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/s_f_mult.fig000066400000000000000000000041321514310134000266360ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5-alpha5 Landscape Center Inches Letter 100.00 Single -2 1200 2 5 1 0 1 -1 -1 0 0 -1 0.000 0 1 1 0 3839.175 2023.260 600 1800 1500 4275 4200 5250 0 0 1.00 60.00 120.00 5 1 0 1 -1 -1 0 0 -1 0.000 0 0 0 1 6360.825 2023.260 9600 1800 8700 4275 6000 5250 0 0 1.00 60.00 120.00 6 600 4425 1650 4950 4 0 -1 0 0 0 16 0.0000 4 255 1260 600 4725 Coarsening\001 4 0 -1 0 0 0 16 0.0000 4 255 630 825 4950 phase\001 -6 6 8550 4425 9825 4950 4 0 -1 0 0 0 16 0.0000 4 255 1545 8550 4725 Uncoarsening\001 4 0 -1 0 0 0 16 0.0000 4 255 630 8925 4950 phase\001 -6 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 2100 1800 1200 600 2100 1800 3300 1200 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 2550 3300 1020 510 2550 3300 3570 2790 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 8100 1800 1200 600 8100 1800 9300 1200 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 7650 3300 1020 510 7650 3300 8670 2790 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 5100 5100 555 270 5100 5100 5640 4830 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 6750 4500 765 390 6750 4500 7545 4110 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 3450 4500 765 390 3450 4500 4245 4110 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 4935 5355 5085 5250 5040 5040 5220 4965 5190 4830 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 6600 4875 6750 4725 6675 4350 6900 4200 6840 4110 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 6 6690 4890 6675 4725 6675 4650 6750 4350 6825 4200 6735 4110 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 7575 3810 7575 3600 7650 3150 7800 2925 7710 2790 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 8100 2400 8025 2100 8325 1575 8175 1350 8250 1200 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 8025 2400 8250 1875 8175 1500 8250 1350 8175 1200 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 7695 3810 7500 3450 7800 3075 7725 2925 7830 2790 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6600 1725 8025 2025 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6450 1200 8100 1575 4 0 -1 0 0 0 16 0.0000 4 255 2055 4350 5700 Initial partitioning\001 4 0 -1 0 0 0 16 0.0000 4 255 2085 4800 1800 Projected partition\001 4 0 -1 0 0 0 16 0.0000 4 255 1905 4800 1275 Refined partition\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/s_f_rua.eps000066400000000000000000000337521514310134000265000ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:26 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 304 303 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 303 moveto 0 0 lineto 304 0 lineto 304 303 lineto closepath clip newpath -58.0 360.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw [15 45] 45 sd n 1575 1125 m 5775 1125 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 1725 m 5775 1725 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 2925 m 5775 2925 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 3525 m 5775 3525 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 4125 m 5775 4125 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 2325 m 5775 2325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 4725 m 5775 4725 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 5325 m 5775 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 1125 m 1575 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2175 1125 m 2175 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2775 1125 m 2775 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3375 1125 m 3375 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3975 1125 m 3975 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4575 1125 m 4575 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5175 1125 m 5175 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5775 1125 m 5775 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 5475 m 1725 5175 l 1425 5175 l 1425 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 4875 m 1725 4575 l 1425 4575 l 1425 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 4275 m 1725 3975 l 1425 3975 l 1425 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 3675 m 1725 3375 l 1425 3375 l 1425 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 3075 m 1725 2775 l 1425 2775 l 1425 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 2475 m 1725 2175 l 1425 2175 l 1425 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 1875 m 1725 1575 l 1425 1575 l 1425 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 1275 m 1725 975 l 1425 975 l 1425 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 5475 m 2325 5175 l 2025 5175 l 2025 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 4875 m 2325 4575 l 2025 4575 l 2025 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 4275 m 2325 3975 l 2025 3975 l 2025 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 3675 m 2325 3375 l 2025 3375 l 2025 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 3075 m 2325 2775 l 2025 2775 l 2025 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 2475 m 2325 2175 l 2025 2175 l 2025 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 1875 m 2325 1575 l 2025 1575 l 2025 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 1275 m 2325 975 l 2025 975 l 2025 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 5475 m 3525 5175 l 3225 5175 l 3225 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 4875 m 3525 4575 l 3225 4575 l 3225 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 4275 m 3525 3975 l 3225 3975 l 3225 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 3675 m 3525 3375 l 3225 3375 l 3225 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 3075 m 3525 2775 l 3225 2775 l 3225 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 2475 m 3525 2175 l 3225 2175 l 3225 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 1875 m 3525 1575 l 3225 1575 l 3225 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 1275 m 3525 975 l 3225 975 l 3225 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 5475 m 4125 5175 l 3825 5175 l 3825 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 4875 m 4125 4575 l 3825 4575 l 3825 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 4275 m 4125 3975 l 3825 3975 l 3825 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 3675 m 4125 3375 l 3825 3375 l 3825 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 3075 m 4125 2775 l 3825 2775 l 3825 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 2475 m 4125 2175 l 3825 2175 l 3825 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 1875 m 4125 1575 l 3825 1575 l 3825 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 1275 m 4125 975 l 3825 975 l 3825 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 5475 m 4725 5175 l 4425 5175 l 4425 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 4875 m 4725 4575 l 4425 4575 l 4425 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 4275 m 4725 3975 l 4425 3975 l 4425 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 3675 m 4725 3375 l 4425 3375 l 4425 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 3075 m 4725 2775 l 4425 2775 l 4425 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 2475 m 4725 2175 l 4425 2175 l 4425 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 1875 m 4725 1575 l 4425 1575 l 4425 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 1275 m 4725 975 l 4425 975 l 4425 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 5475 m 5325 5175 l 5025 5175 l 5025 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 4875 m 5325 4575 l 5025 4575 l 5025 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 4275 m 5325 3975 l 5025 3975 l 5025 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 3675 m 5325 3375 l 5025 3375 l 5025 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 3075 m 5325 2775 l 5025 2775 l 5025 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 2475 m 5325 2175 l 5025 2175 l 5025 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 1875 m 5325 1575 l 5025 1575 l 5025 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 1275 m 5325 975 l 5025 975 l 5025 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 5475 m 5925 5175 l 5625 5175 l 5625 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 4875 m 5925 4575 l 5625 4575 l 5625 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 4275 m 5925 3975 l 5625 3975 l 5625 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 3675 m 5925 3375 l 5625 3375 l 5625 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 3075 m 5925 2775 l 5625 2775 l 5625 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 2475 m 5925 2175 l 5625 2175 l 5625 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 1875 m 5925 1575 l 5625 1575 l 5625 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 1275 m 5925 975 l 5625 975 l 5625 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 5475 m 2925 5175 l 2625 5175 l 2625 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 4875 m 2925 4575 l 2625 4575 l 2625 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 4275 m 2925 3975 l 2625 3975 l 2625 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 3675 m 2925 3375 l 2625 3375 l 2625 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 3075 m 2925 2775 l 2625 2775 l 2625 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 2475 m 2925 2175 l 2625 2175 l 2625 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 1875 m 2925 1575 l 2625 1575 l 2625 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 1275 m 2925 975 l 2625 975 l 2625 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 2325 5925 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 2550 6000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 300.00 scf sf 4725 5925 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 4950 6000 m gs 1 -1 sc (1) col-1 sh gr % Ellipse n 1875 3825 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2775 1725 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2475 5025 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4875 2025 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 5475 3825 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2475 4425 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Polyline 15.000 slw [90] 0 sd n 3675 3375 m 3675 5475 l gs col-1 s gr [] 0 sd % Polyline n 3600 3375 m 3750 3375 l gs col-1 s gr % Polyline n 3600 5475 m 3750 5475 l gs col-1 s gr % Polyline n 1455 3300 m 1350 3300 1350 5445 105 arcto 4 {pop} repeat 1350 5550 5895 5550 105 arcto 4 {pop} repeat 6000 5550 6000 3405 105 arcto 4 {pop} repeat 6000 3300 1455 3300 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2655 1500 m 2550 1500 2550 1845 105 arcto 4 {pop} repeat 2550 1950 2895 1950 105 arcto 4 {pop} repeat 3000 1950 3000 1605 105 arcto 4 {pop} repeat 3000 1500 2655 1500 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 4455 1500 m 4350 1500 4350 2445 105 arcto 4 {pop} repeat 4350 2550 5295 2550 105 arcto 4 {pop} repeat 5400 2550 5400 1605 105 arcto 4 {pop} repeat 5400 1500 4455 1500 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2475 4425 m 2775 1725 l gs col-1 s gr % Polyline n 2475 4425 m 4875 2025 l gs col-1 s gr % Polyline 45.000 slw n 2475 4425 m 5475 3825 l gs col-1 s gr % Polyline [15 90] 90 sd n 2475 4425 m 2475 5025 l gs col-1 s gr [] 0 sd % Polyline [15 90] 90 sd n 2475 4425 m 1875 3825 l gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 975 4500 m gs 1 -1 sc (D) col-1 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/s_f_rua.fig000066400000000000000000000205471514310134000264540ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1425 975 5925 5475 6 1575 1125 5775 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 1125 5775 1125 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 1725 5775 1725 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 2925 5775 2925 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 3525 5775 3525 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 4125 5775 4125 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 2325 5775 2325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 4725 5775 4725 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 5325 5775 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 1125 1575 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2175 1125 2175 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2775 1125 2775 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3375 1125 3375 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3975 1125 3975 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4575 1125 4575 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5175 1125 5175 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5775 1125 5775 5325 -6 6 1425 975 1725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 5475 1725 5175 1425 5175 1425 5475 1725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 4875 1725 4575 1425 4575 1425 4875 1725 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 4275 1725 3975 1425 3975 1425 4275 1725 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 3675 1725 3375 1425 3375 1425 3675 1725 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 3075 1725 2775 1425 2775 1425 3075 1725 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 2475 1725 2175 1425 2175 1425 2475 1725 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 1875 1725 1575 1425 1575 1425 1875 1725 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 1275 1725 975 1425 975 1425 1275 1725 1275 -6 6 2025 975 2325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 5475 2325 5175 2025 5175 2025 5475 2325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 4875 2325 4575 2025 4575 2025 4875 2325 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 4275 2325 3975 2025 3975 2025 4275 2325 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 3675 2325 3375 2025 3375 2025 3675 2325 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 3075 2325 2775 2025 2775 2025 3075 2325 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 2475 2325 2175 2025 2175 2025 2475 2325 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 1875 2325 1575 2025 1575 2025 1875 2325 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 1275 2325 975 2025 975 2025 1275 2325 1275 -6 6 3225 975 3525 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 5475 3525 5175 3225 5175 3225 5475 3525 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 4875 3525 4575 3225 4575 3225 4875 3525 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 4275 3525 3975 3225 3975 3225 4275 3525 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 3675 3525 3375 3225 3375 3225 3675 3525 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 3075 3525 2775 3225 2775 3225 3075 3525 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 2475 3525 2175 3225 2175 3225 2475 3525 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 1875 3525 1575 3225 1575 3225 1875 3525 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 1275 3525 975 3225 975 3225 1275 3525 1275 -6 6 3825 975 4125 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 5475 4125 5175 3825 5175 3825 5475 4125 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 4875 4125 4575 3825 4575 3825 4875 4125 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 4275 4125 3975 3825 3975 3825 4275 4125 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 3675 4125 3375 3825 3375 3825 3675 4125 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 3075 4125 2775 3825 2775 3825 3075 4125 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 2475 4125 2175 3825 2175 3825 2475 4125 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 1875 4125 1575 3825 1575 3825 1875 4125 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 1275 4125 975 3825 975 3825 1275 4125 1275 -6 6 4425 975 4725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 5475 4725 5175 4425 5175 4425 5475 4725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 4875 4725 4575 4425 4575 4425 4875 4725 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 4275 4725 3975 4425 3975 4425 4275 4725 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 3675 4725 3375 4425 3375 4425 3675 4725 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 3075 4725 2775 4425 2775 4425 3075 4725 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 2475 4725 2175 4425 2175 4425 2475 4725 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 1875 4725 1575 4425 1575 4425 1875 4725 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 1275 4725 975 4425 975 4425 1275 4725 1275 -6 6 5025 975 5325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 5475 5325 5175 5025 5175 5025 5475 5325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 4875 5325 4575 5025 4575 5025 4875 5325 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 4275 5325 3975 5025 3975 5025 4275 5325 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 3675 5325 3375 5025 3375 5025 3675 5325 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 3075 5325 2775 5025 2775 5025 3075 5325 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 2475 5325 2175 5025 2175 5025 2475 5325 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 1875 5325 1575 5025 1575 5025 1875 5325 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 1275 5325 975 5025 975 5025 1275 5325 1275 -6 6 5625 975 5925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 5475 5925 5175 5625 5175 5625 5475 5925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 4875 5925 4575 5625 4575 5625 4875 5925 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 4275 5925 3975 5625 3975 5625 4275 5925 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 3675 5925 3375 5625 3375 5625 3675 5925 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 3075 5925 2775 5625 2775 5625 3075 5925 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 2475 5925 2175 5625 2175 5625 2475 5925 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 1875 5925 1575 5625 1575 5625 1875 5925 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 1275 5925 975 5625 975 5625 1275 5925 1275 -6 6 2625 975 2925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 5475 2925 5175 2625 5175 2625 5475 2925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 4875 2925 4575 2625 4575 2625 4875 2925 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 4275 2925 3975 2625 3975 2625 4275 2925 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 3675 2925 3375 2625 3375 2625 3675 2925 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 3075 2925 2775 2625 2775 2625 3075 2925 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 2475 2925 2175 2625 2175 2625 2475 2925 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 1875 2925 1575 2625 1575 2625 1875 2925 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 1275 2925 975 2625 975 2625 1275 2925 1275 -6 -6 6 2325 5700 2700 6000 4 0 -1 0 0 0 20 0.0000 4 210 210 2325 5925 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 2550 6000 0\001 -6 6 4725 5700 5100 6000 4 0 -1 0 0 0 20 0.0000 4 210 210 4725 5925 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 4950 6000 1\001 -6 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 1875 3825 75 75 1875 3825 1950 3900 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2775 1725 75 75 2775 1725 2850 1800 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2475 5025 75 75 2475 5025 2550 5100 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4875 2025 75 75 4875 2025 4950 2100 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 5475 3825 75 75 5475 3825 5550 3900 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2475 4425 75 75 2475 4425 2550 4500 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3675 3375 3675 5475 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3600 3375 3750 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3600 5475 3750 5475 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 6000 3300 1350 3300 1350 5550 6000 5550 6000 3300 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 3000 1500 2550 1500 2550 1950 3000 1950 3000 1500 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5400 1500 4350 1500 4350 2550 5400 2550 5400 1500 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2475 4425 2775 1725 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2475 4425 4875 2025 2 1 0 4 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2475 4425 5475 3825 2 1 2 4 -1 -1 0 0 -1 6.000 0 0 7 0 0 2 2475 4425 2475 5025 2 1 2 4 -1 -1 0 0 -1 6.000 0 0 7 0 0 2 2475 4425 1875 3825 4 0 -1 0 0 0 20 0.0000 4 210 210 975 4500 D\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/s_f_rub.eps000066400000000000000000000336611514310134000265000ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:26 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 304 303 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 303 moveto 0 0 lineto 304 0 lineto 304 303 lineto closepath clip newpath -53.0 329.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw [15 45] 45 sd n 1500 600 m 5700 600 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 1200 m 5700 1200 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 2400 m 5700 2400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 3000 m 5700 3000 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 3600 m 5700 3600 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 1800 m 5700 1800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 4200 m 5700 4200 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 4800 m 5700 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 600 m 1500 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 600 m 2100 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2700 600 m 2700 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3300 600 m 3300 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3900 600 m 3900 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4500 600 m 4500 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 600 m 5100 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5700 600 m 5700 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 4950 m 1650 4650 l 1350 4650 l 1350 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 4350 m 1650 4050 l 1350 4050 l 1350 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 3750 m 1650 3450 l 1350 3450 l 1350 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 3150 m 1650 2850 l 1350 2850 l 1350 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 2550 m 1650 2250 l 1350 2250 l 1350 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 1950 m 1650 1650 l 1350 1650 l 1350 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 1350 m 1650 1050 l 1350 1050 l 1350 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 750 m 1650 450 l 1350 450 l 1350 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 4950 m 2250 4650 l 1950 4650 l 1950 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 4350 m 2250 4050 l 1950 4050 l 1950 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 3750 m 2250 3450 l 1950 3450 l 1950 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 3150 m 2250 2850 l 1950 2850 l 1950 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 2550 m 2250 2250 l 1950 2250 l 1950 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 1950 m 2250 1650 l 1950 1650 l 1950 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 1350 m 2250 1050 l 1950 1050 l 1950 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 750 m 2250 450 l 1950 450 l 1950 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 4950 m 3450 4650 l 3150 4650 l 3150 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 4350 m 3450 4050 l 3150 4050 l 3150 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 3750 m 3450 3450 l 3150 3450 l 3150 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 3150 m 3450 2850 l 3150 2850 l 3150 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 2550 m 3450 2250 l 3150 2250 l 3150 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 1950 m 3450 1650 l 3150 1650 l 3150 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 1350 m 3450 1050 l 3150 1050 l 3150 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 750 m 3450 450 l 3150 450 l 3150 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 4950 m 4050 4650 l 3750 4650 l 3750 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 4350 m 4050 4050 l 3750 4050 l 3750 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 3750 m 4050 3450 l 3750 3450 l 3750 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 3150 m 4050 2850 l 3750 2850 l 3750 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 2550 m 4050 2250 l 3750 2250 l 3750 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 1950 m 4050 1650 l 3750 1650 l 3750 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 1350 m 4050 1050 l 3750 1050 l 3750 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 750 m 4050 450 l 3750 450 l 3750 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 4950 m 4650 4650 l 4350 4650 l 4350 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 4350 m 4650 4050 l 4350 4050 l 4350 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 3750 m 4650 3450 l 4350 3450 l 4350 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 3150 m 4650 2850 l 4350 2850 l 4350 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 2550 m 4650 2250 l 4350 2250 l 4350 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 1950 m 4650 1650 l 4350 1650 l 4350 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 1350 m 4650 1050 l 4350 1050 l 4350 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 750 m 4650 450 l 4350 450 l 4350 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 4950 m 5250 4650 l 4950 4650 l 4950 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 4350 m 5250 4050 l 4950 4050 l 4950 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 3750 m 5250 3450 l 4950 3450 l 4950 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 3150 m 5250 2850 l 4950 2850 l 4950 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 2550 m 5250 2250 l 4950 2250 l 4950 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 1950 m 5250 1650 l 4950 1650 l 4950 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 1350 m 5250 1050 l 4950 1050 l 4950 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 750 m 5250 450 l 4950 450 l 4950 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 4950 m 5850 4650 l 5550 4650 l 5550 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 4350 m 5850 4050 l 5550 4050 l 5550 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 3750 m 5850 3450 l 5550 3450 l 5550 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 3150 m 5850 2850 l 5550 2850 l 5550 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 2550 m 5850 2250 l 5550 2250 l 5550 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 1950 m 5850 1650 l 5550 1650 l 5550 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 1350 m 5850 1050 l 5550 1050 l 5550 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 750 m 5850 450 l 5550 450 l 5550 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 4950 m 2850 4650 l 2550 4650 l 2550 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 4350 m 2850 4050 l 2550 4050 l 2550 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 3750 m 2850 3450 l 2550 3450 l 2550 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 3150 m 2850 2850 l 2550 2850 l 2550 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 2550 m 2850 2250 l 2550 2250 l 2550 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 1950 m 2850 1650 l 2550 1650 l 2550 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 1350 m 2850 1050 l 2550 1050 l 2550 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 750 m 2850 450 l 2550 450 l 2550 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 2250 5400 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 2475 5475 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 300.00 scf sf 4650 5400 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 4875 5475 m gs 1 -1 sc (1) col-1 sh gr % Ellipse n 1800 3300 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2700 1200 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2400 4500 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 1500 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 5400 3300 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 3900 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Polyline 15.000 slw [90] 0 sd n 3600 2850 m 3600 4950 l gs col-1 s gr [] 0 sd % Polyline n 3525 2850 m 3675 2850 l gs col-1 s gr % Polyline n 3525 4950 m 3675 4950 l gs col-1 s gr % Polyline n 1380 2775 m 1275 2775 1275 4920 105 arcto 4 {pop} repeat 1275 5025 5820 5025 105 arcto 4 {pop} repeat 5925 5025 5925 2880 105 arcto 4 {pop} repeat 5925 2775 1380 2775 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2580 975 m 2475 975 2475 1320 105 arcto 4 {pop} repeat 2475 1425 2820 1425 105 arcto 4 {pop} repeat 2925 1425 2925 1080 105 arcto 4 {pop} repeat 2925 975 2580 975 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 4380 975 m 4275 975 4275 1920 105 arcto 4 {pop} repeat 4275 2025 5220 2025 105 arcto 4 {pop} repeat 5325 2025 5325 1080 105 arcto 4 {pop} repeat 5325 975 4380 975 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 4800 3900 m 2700 1200 l gs col-1 s gr % Polyline n 4800 3900 m 4800 1500 l gs col-1 s gr % Polyline 45.000 slw n 4800 3900 m 1800 3300 l gs col-1 s gr % Polyline n 4800 3900 m 2400 4500 l gs col-1 s gr % Polyline [15 90] 90 sd n 4800 3900 m 5400 3300 l gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 900 3975 m gs 1 -1 sc (D) col-1 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/ptscotch/s_f_rub.fig000066400000000000000000000205251514310134000264510ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 900 450 6000 5475 6 1350 450 5850 4950 6 1500 600 5700 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 600 5700 600 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 1200 5700 1200 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 2400 5700 2400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 3000 5700 3000 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 3600 5700 3600 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 1800 5700 1800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 4200 5700 4200 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 4800 5700 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 600 1500 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2100 600 2100 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2700 600 2700 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3300 600 3300 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3900 600 3900 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4500 600 4500 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5100 600 5100 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5700 600 5700 4800 -6 6 1350 450 1650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 4950 1650 4650 1350 4650 1350 4950 1650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 4350 1650 4050 1350 4050 1350 4350 1650 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 3750 1650 3450 1350 3450 1350 3750 1650 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 3150 1650 2850 1350 2850 1350 3150 1650 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 2550 1650 2250 1350 2250 1350 2550 1650 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 1950 1650 1650 1350 1650 1350 1950 1650 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 1350 1650 1050 1350 1050 1350 1350 1650 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 750 1650 450 1350 450 1350 750 1650 750 -6 6 1950 450 2250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 4950 2250 4650 1950 4650 1950 4950 2250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 4350 2250 4050 1950 4050 1950 4350 2250 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 3750 2250 3450 1950 3450 1950 3750 2250 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 3150 2250 2850 1950 2850 1950 3150 2250 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 2550 2250 2250 1950 2250 1950 2550 2250 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 1950 2250 1650 1950 1650 1950 1950 2250 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 1350 2250 1050 1950 1050 1950 1350 2250 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 750 2250 450 1950 450 1950 750 2250 750 -6 6 3150 450 3450 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 4950 3450 4650 3150 4650 3150 4950 3450 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 4350 3450 4050 3150 4050 3150 4350 3450 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 3750 3450 3450 3150 3450 3150 3750 3450 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 3150 3450 2850 3150 2850 3150 3150 3450 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 2550 3450 2250 3150 2250 3150 2550 3450 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 1950 3450 1650 3150 1650 3150 1950 3450 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 1350 3450 1050 3150 1050 3150 1350 3450 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 750 3450 450 3150 450 3150 750 3450 750 -6 6 3750 450 4050 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 4950 4050 4650 3750 4650 3750 4950 4050 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 4350 4050 4050 3750 4050 3750 4350 4050 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 3750 4050 3450 3750 3450 3750 3750 4050 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 3150 4050 2850 3750 2850 3750 3150 4050 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 2550 4050 2250 3750 2250 3750 2550 4050 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 1950 4050 1650 3750 1650 3750 1950 4050 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 1350 4050 1050 3750 1050 3750 1350 4050 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 750 4050 450 3750 450 3750 750 4050 750 -6 6 4350 450 4650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 4950 4650 4650 4350 4650 4350 4950 4650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 4350 4650 4050 4350 4050 4350 4350 4650 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 3750 4650 3450 4350 3450 4350 3750 4650 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 3150 4650 2850 4350 2850 4350 3150 4650 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 2550 4650 2250 4350 2250 4350 2550 4650 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 1950 4650 1650 4350 1650 4350 1950 4650 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 1350 4650 1050 4350 1050 4350 1350 4650 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 750 4650 450 4350 450 4350 750 4650 750 -6 6 4950 450 5250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 4950 5250 4650 4950 4650 4950 4950 5250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 4350 5250 4050 4950 4050 4950 4350 5250 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 3750 5250 3450 4950 3450 4950 3750 5250 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 3150 5250 2850 4950 2850 4950 3150 5250 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 2550 5250 2250 4950 2250 4950 2550 5250 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 1950 5250 1650 4950 1650 4950 1950 5250 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 1350 5250 1050 4950 1050 4950 1350 5250 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 750 5250 450 4950 450 4950 750 5250 750 -6 6 5550 450 5850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 4950 5850 4650 5550 4650 5550 4950 5850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 4350 5850 4050 5550 4050 5550 4350 5850 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 3750 5850 3450 5550 3450 5550 3750 5850 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 3150 5850 2850 5550 2850 5550 3150 5850 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 2550 5850 2250 5550 2250 5550 2550 5850 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 1950 5850 1650 5550 1650 5550 1950 5850 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 1350 5850 1050 5550 1050 5550 1350 5850 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 750 5850 450 5550 450 5550 750 5850 750 -6 6 2550 450 2850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 4950 2850 4650 2550 4650 2550 4950 2850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 4350 2850 4050 2550 4050 2550 4350 2850 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 3750 2850 3450 2550 3450 2550 3750 2850 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 3150 2850 2850 2550 2850 2550 3150 2850 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 2550 2850 2250 2550 2250 2550 2550 2850 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 1950 2850 1650 2550 1650 2550 1950 2850 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 1350 2850 1050 2550 1050 2550 1350 2850 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 750 2850 450 2550 450 2550 750 2850 750 -6 -6 6 2250 5175 2625 5475 4 0 -1 0 0 0 20 0.0000 4 210 210 2250 5400 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 2475 5475 0\001 -6 6 4650 5175 5025 5475 4 0 -1 0 0 0 20 0.0000 4 210 210 4650 5400 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 4875 5475 1\001 -6 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 1800 3300 75 75 1800 3300 1875 3375 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2700 1200 75 75 2700 1200 2775 1275 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2400 4500 75 75 2400 4500 2475 4575 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4800 1500 75 75 4800 1500 4875 1575 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 5400 3300 75 75 5400 3300 5475 3375 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4800 3900 75 75 4800 3900 4875 3975 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3600 2850 3600 4950 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3525 2850 3675 2850 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3525 4950 3675 4950 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5925 2775 1275 2775 1275 5025 5925 5025 5925 2775 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 2925 975 2475 975 2475 1425 2925 1425 2925 975 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5325 975 4275 975 4275 2025 5325 2025 5325 975 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 4800 3900 2700 1200 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 4800 3900 4800 1500 2 1 0 4 -1 -1 0 0 -1 0.000 0 0 7 0 0 2 4800 3900 1800 3300 2 1 0 4 -1 -1 0 0 -1 0.000 0 0 7 0 0 2 4800 3900 2400 4500 2 1 2 4 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 4800 3900 5400 3300 4 0 -1 0 0 0 20 0.0000 4 210 210 900 3975 D\001 -6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/000077500000000000000000000000001514310134000237735ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/Makefile000066400000000000000000000045661514310134000254460ustar00rootroot00000000000000## Copyright 2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## VERSION = 7.0 UMAN = scotch_user$(VERSION) FLAGS = -sPAPERSIZE=a4 DEPS = $(wildcard *.tex) $(wildcard *.eps) ../version.tex MANS = $(UMAN).ps.gz $(UMAN).pdf CP = cp -f RM = rm -f .PHONY : clean default install realclean default : $(MANS) %.eps : %.fig fig2dev -L eps $(<) $(@) %.dvi : %.tex $(DEPS) latex $(<) -bibtex $(*) latex $(<) latex $(<) %.ps : %.dvi dvips $(FLAGS) $(<) $(UMAN).pdf : s.dvi dvipdf $(FLAGS) $(<) $(@) $(UMAN).ps.gz : s.ps gzip -9 -c < $(<) > $(@) install : $(MANS) -$(CP) $(UMAN).ps.gz ../../ -$(CP) $(UMAN).pdf ../../ clean : -$(RM) *~ s.aux s.blg s.log s.out s.toc realclean : clean -$(RM) *~ s.bbl *dvi s.ps $(UMAN)* scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/epsf.sty000066400000000000000000000321211514310134000254700ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \typeout{Document Style Option `epsf' (October 17 90)}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Inclusion of EPSF documents into [Oz]TeX documents. %% Michel Mauny - April 25 90. %% Emmanuel Chailloux - October 17 90 %% History: % --------- %% April 11 91 %% Fixed several bugs [mauny] %% * Now accepts lines as %%BoundingBox:100 200 102 23 %% without space here ^ %% * Added a \leavevmode for \epfs{} to be accepted as single %% element of a \begin{center} ... \end{center} %% * Extracted calls to \newdimen for them to be global %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% TeX does itself the recognition of the Bounding Box of the drawing. %% The macro is: %% %% \epsf{filename} %% [xscale=/,yscale=/] <- optional %% or (hsize=,vsize=)in pt %% [ps=] <- optional %% %% Order of parameters is important, and the 3rd cannot be used without the %% 2nd. %% %% A null hsize indicates the hsize scaled by the vsize scaling. %% A null vsize indicates the vsize scaled by the hsize scaling. %% A double null is the unit. %% %% This is not the first package to do that sort of things, but that one %% reads by itself the size of drawings, and is thus really trivial to use. %% %% This package may be extended in two ways: %% * usage of different versions of TeX (dvi2ps) (simple, but not trivial) %% * usage of different EPSF files types (tested only with FreeHand 2.0) %% should be trivial... %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% How to use this package? %% Two things to do: %% %% 1. Create an EPSF file %% Use FreeHand or any program capable of creating such files from %% drawings or whatever. %% Use the `Export' menu item (or anything equivalent), creating %% the file (say) draw.eps %% %% 2. In your [La]TeX document, place the following command where you %% want your drawing to appear: %% \epsf{draw.eps} %% And your drawing will be at that place, in a TeX box. %% You don't have to leave extra place for your drawing: %% it will be in a TeX box. %% %% Z If you want to specify a scaling (say 33.33333 %) then use the %% optional argument: %% \epsf{draw.eps}[xscale=2/3,yscale=2/3] %% Scalings may be negative, but must be specified with the form: %% /. %% IMPORTANT: try to use small numbers, otherwise you risk to get %% a TeX internal registers overflow. %% %% Z if you prefer to specify the vsize of you picture then use the %% optional argument : %% \epsf{draw.ps}(hsize=200,vsize=300) %% Dimensions are given in points with the TeX convension : %% 1in or 72pt. %% %% ZZ For real hackers only: if you want to add some PostScript to your %% drawing (indeed at its beginning), then use the second optional %% argument: %% \epsf{draw.eps}[xscale=1/1,yscale=1/1][ps=] %% The second argument must be specified in order to use the %% second one (if you are tired to do that, make a new macro with %% your default scaling. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% \DVITOPS indicates the default TeX. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\oztex{OzTeX}% \def\dvips{dvips}% \def\dvitops{dvitops}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Provide the appropriate value to \DVITOPS before installation. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%\let\DVITOPS=\dvitops% \let\DVITOPS=\dvips% %%\let\DVITOPS=\oztex% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Debugging options. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\yes={yes}% \def\no={no}% \let\DEBUGepsf=\yes% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% \@doTeXspecial has to be extended in order to work %% with other VI2PS programs %% OzTeX produces \special{ } %% and we produce - - translate %% scale %% %%%% Added by ... (PostScript comment) %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {% % #1 = filename % #2 = xmin, #3 = ymin % #4 = xmax, #5 = ymax % #6 = hscale, #7 = vscale % #8 = user postcript % \ifx\DEBUGepsf\yes % \typeout{doTexSpecial #1 #2 #3 #4 #5 #6 #7 #8} % \fi %%%% Added by \DVITOPS\space PostScript inclusion (epsf.sty) % %\advance\@pshoffset by -3pt %\catcode`\%=11 \newdimen\@pshscale\newdimen\@psvscale\newdimen\@pshoffset\newdimen\@psvoffset \gdef\@doTeXspecial#1#2#3#4#5#6#7#8{% \ifx\DVITOPS\oztex% \special{#1\space#6\space#7\space scale\space-#2\space-#3\space translate\space#8\space}% \else% \ifx\DVITOPS\dvips% \@pshscale=#6pt\@psvscale=#7pt %%% Some dvips require a percentage. In this case, comment out the next line \multiply\@pshscale by 100\multiply\@psvscale by 100% \@pshoffset=-#6pt\multiply\@pshoffset by #2 %\advance\@pshoffset by -1pt% \@psvoffset=-#7pt\multiply\@psvoffset by #3% \special{psfile="#1"\space% vscale=\expandafter\@numbof\the\@psvscale\space% hoffset=\expandafter\@numbof\the\@pshoffset\space% voffset=\expandafter\@numbof\the\@psvoffset\space% hscale=\expandafter\@numbof\the\@pshscale\space}% \else% \ifx\DVITOPS\dvitops% \@pshscale=#6pt% \@psvscale=#7pt% \@pshoffset=-#6pt\multiply\@pshoffset by #2% \@psvoffset=-#7pt\multiply\@psvoffset by #3% \special{psfile="#1"\space% hoffset=\expandafter\@numbof\the\@pshoffset\space% voffset=\expandafter\@numbof\the\@psvoffset\space% hscale=\expandafter\@numbof\the\@pshscale\space% vscale=\expandafter\@numbof\the\@psvscale}% \else% \let\DVITOPS=\dvitops% \@doTeXspecial{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% \fi% \fi% \fi% }% }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% Following definitions should not be changed (except bug fixes) %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Will change the catcodes of % when `parsing' header of EPS file % The ``:'' character will be parsed as a space (catcode = 10) \def\@setdrawingsyntax{\catcode`\%=11\catcode`\:=10\catcode`\!=11}% % % Need some counters and an input channel \newread\@drawingchannel% \newcount\@drawhsize% \newcount\@drawvsize% \newdimen\@xscale% \newdimen\@yscale% \newdimen\@vsize% \newdimen\@hsize% \newcount\@newvsize% \newcount\@newhsize% \newcount\@ovsize% \newcount\@ohsize% % % % \@scale at will multiply by % must be / (big numbers may produce overflows) \def\@scale#1at#2/#3{\divide#1 by #3\multiply#1 by #2}% % % {\catcode`\.=12\catcode`\p=12\catcode`\t=12\gdef\@dimentocount#1.#2pt{#1}}% % {\catcode`\p=12\catcode`\t=12\gdef\@numbof#1pt{#1}}% % \@drawingscale{p1}{q1}{p1}{q2} => xscale:=p1/q1, yscale:=p2/q2 \def\@scale#1at#2/#3{\divide#1 by #3\multiply#1 by #2}% \def\@drawingscale#1#2#3#4{% \@xscale=#1pt% \divide\@xscale by #2% \@yscale=#3pt\divide\@yscale by #4% }% % % \firstitem to => arg1:=car(arg2); arg2:=cdr(arg2) \def\firstitem#1to#2{\expandafter\makeseq#1\makeseq#1#2}% \long\def\makeseq#1 #2\makeseq#3#4{\gdef#4{#1}\gdef#3{#2}}% %% %% The user function %% \epsf{}[xscale=p1/q1,yscale=p2/q2][ps=] %% or \epsf{}(hsize=w,vsize=h)[ps=] %% Two optional arguments. If second is needed, then the first one must be %% present. %% \def\epsf#1{\leavevmode% Must leave vertical mode in order to execute \everypar \@ifnextchar[{\s@epsf{#1}}% {\@ifnextchar({\h@epsf{#1}}% {\s@epsf{#1}[xscale=1/1,yscale=1/1]}}}% %% \def\s@epsf#1[xscale=#2/#3,yscale=#4/#5]{% \@ifnextchar[{\scale@epsf{#1}[xscale={#2}/{#3},yscale={#4}/{#5}]}% {\scale@epsf{#1}[xscale={#2}/{#3},yscale={#4}/{#5}][ps=\space]}}% % % More arguments to come? \def\h@epsf#1(hsize=#2,vsize=#3){% \@ifnextchar[{\dimen@epsf{#1}(hsize={#2},vsize={#3})}% {\dimen@epsf{#1}(hsize={#2},vsize={#3})[ps=\space]}}% % % The main function (not user acessible) % %% Used to check wether we found the box or not \newif\ifnosize \begingroup %%% Warning: comment character is & (and no more %) \@setdrawingsyntax\catcode`\&=14 && && What we will be looking for (`pt' is the supposed unit) \gdef\BoundingBox{%%BoundingBox}& && && \gdef\read@epsf#1{& && We accept PostScript and scales as optional parameters \bgroup\@setdrawingsyntax && Change the code of % \typeout{Opening #1}& && Verbose! \openin\@drawingchannel=#1 \ifeof\@drawingchannel\closein\@drawingchannel&& \typeout{LaTeX warning: can't open #1.}& && If no file, then ask the user \typeout{Size of the drawing? }& && the size of its drawing. \gdef\@minX{0}\gdef\@minY{0}& && \gdef\@maxX{596}\gdef\@maxY{846}& & \message{X (in pts): }& & \read-1 to\mX\global\edef\@maxX{\mX}& & \message{Y (in pts): }& & \read-1 to\mY\global\edef\@maxY{\mY}& \else && Otherwise: \read\@drawingchannel to\@drsize& Skipping first line (%!PS-Adobe...) \loop && repeat "get one line" \read\@drawingchannel to\@drsize& \typeout{\space\space\space\space \@drsize}&& echo it to the terminal \firstitem\@drsize to\BBox& \ifx\BBox\BoundingBox& && First word =? Bounding Box \nosizefalse& \firstitem\@drsize to\@minX&& If yes, then get the informations \firstitem\@drsize to\@minY&& i.e. minX, minY, maxX and maxY \firstitem\@drsize to\@maxX&& in that order \firstitem\@drsize to\@maxY&& \else\nosizetrue&& \fi \ifnosize\relax\repeat&& && If no, then get one more line, etc. \typeout{Closing}& && Verbose! \closein\@drawingchannel&& \fi \egroup } && \gdef\scale@epsf#1[xscale=#2/#3,yscale=#4/#5][ps=#6]{& \read@epsf{#1}& \common@epsf{#1}[xscale=#2/#3,yscale=#4/#5][ps=#6]& } & & \gdef\dimen@epsf#1(hsize=#2,vsize=#3)[ps=#4]{& \read@epsf{#1}& \@newvsize=#3& \@newhsize=#2& && && Computing vsize& \@drawvsize=\@maxY& \advance\@drawvsize by-\@minY& \ifnum\@newvsize=0& if newvsize=0 \ifnum\@newhsize=0& if newhsize=0 \common@epsf{#1}[xscale=1/1,yscale=1/1][ps=#4]& \else& else && Computing hsize \@drawhsize=\@maxX& \advance\@drawhsize by-\@minX& &&\ifnum\@newhsize=0& \@ohsize=\@drawhsize& \divide\@drawhsize by\@ohsize& \multiply\@drawhsize by\@newhsize& \multiply\@drawvsize by\@newhsize& \divide\@drawvsize by\@ohsize& \@drawingscale{\the\@newhsize}{\@ohsize} {\the\@newhsize}{\@ohsize}& \fi& fi \else& else \@ovsize=\@drawvsize& \divide\@drawvsize by\@ovsize& \multiply\@drawvsize by\@newvsize& && && Computing hsize \@newhsize=#2& \@drawhsize=\@maxX& \advance\@drawhsize by-\@minX& \ifnum\@newhsize=0& if newhsize=0 \multiply\@drawhsize by\@newvsize& \divide\@drawhsize by\@ovsize& \@drawingscale{\the\@newvsize}{\@ovsize} {\the\@newvsize}{\@ovsize}& \else& else \@ohsize=\@drawhsize& \divide\@drawhsize by\@ohsize& \multiply\@drawhsize by\@newhsize& \@drawingscale{\the\@newhsize}{\@ohsize} {\the\@newvsize}{\@ovsize}& \fi& fi \fi& fi && Infos to the terminal. \typeout{Drawing #1:}& \typeout{\space\space\space Width=\the\@drawhsize pt Heigth=\the\@drawvsize pt}& && && &\@newhsize=\@drawhsize\multiply\@newhsize by \@xscale &\@newvsize=\@drawvsize\multiply\@newvsize by \@yscale \typeout{\space\space\space Scalings: X=\the\@xscale\space Y=\the\@yscale}& &\fbox{& \vbox to\@drawvsize pt{\vfill\hbox to\@drawhsize pt{& {{\@doTeXspecial{#1}\@minX\@minY\@maxX\@maxY& {\expandafter\@numbof\the\@xscale}& {\expandafter\@numbof\the\@yscale}& {#4}}& &\hfill& }}}}& &}& & & \gdef\common@epsf#1[xscale=#2/#3,yscale=#4/#5][ps=#6]{& && Computing hsize \@drawhsize=\@maxX& \advance\@drawhsize by-\@minX& \@scale\@drawhsize at #2/#3& && Computing vsize \@drawvsize=\@maxY& \advance\@drawvsize by-\@minY& \@scale\@drawvsize at #4/#5& && Infos to the terminal. \typeout{Drawing #1:}& \typeout{\space\space\space Width \the\@drawhsize pt=(\@maxX -\@minX)*(#2/#3)Heigth \the\@drawvsize pt=(\@maxY -\@minY)*(#4/#5)}& && &\typeout{*********** #2 #3 #4 #5}& \@drawingscale{#2}{#3}{#4}{#5}& \typeout{\space\space\space Scalings: X=\the\@xscale\space Y=\the\@yscale}& && &\fbox{& \vbox to\@drawvsize pt{\vfill\hbox to\@drawhsize pt{& {{\@doTeXspecial{#1}\@minX\@minY\@maxX\@maxY& {\expandafter\@numbof\the\@xscale}& {\expandafter\@numbof\the\@yscale}& {#6}}& &\hfill& }}}& &}& } \endgroup scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/fullpage.sty000066400000000000000000000015161514310134000263360ustar00rootroot00000000000000% This is FULLPAGE.STY by H.Partl, Version 2 as of 15 Dec 1988. % Document Style Option to fill the paper just like Plain TeX. \typeout{Style Option FULLPAGE Version 2 as of 15 Dec 1988} \topmargin 0pt \advance \topmargin by -\headheight \advance \topmargin by -\headsep \textheight 8.9in \oddsidemargin 0pt \evensidemargin \oddsidemargin \marginparwidth 0.5in \textwidth 6.5in % For users of A4 paper: The above values are suited for american 8.5x11in % paper. If your output driver performs a conversion for A4 paper, keep % those values. If your output driver conforms to the TeX standard (1in/1in), % then you should add the following commands to center the text on A4 paper: % \advance\hoffset by -3mm % A4 is narrower. % \advance\voffset by 8mm % A4 is taller. \endinput scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/m42_a1.eps000066400000000000000000000106521514310134000254730ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Title: m42_a1.fig %%Creator: fig2dev Version 3.2 Patchlevel 5d %%CreationDate: Wed Mar 18 11:58:08 2015 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 290 146 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 146 moveto 0 0 lineto 290 0 lineto 290 146 lineto closepath clip newpath -107.3 180.7 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Ellipse 7.500 slw n 2400 1200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3600 1200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 2400 2400 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3600 2400 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 2400 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 1200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6000 1200 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6000 2400 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Polyline 0 slj 0 slc n 3600 1200 m 3600 2400 l gs col0 s gr % Polyline n 4800 1200 m 4800 2400 l gs col0 s gr % Polyline n 2400 1200 m 6000 1200 l 6000 2400 l 2400 2400 l cp gs col0 s gr % Polyline n 1800 600 m 6600 600 l 6600 3000 l 1800 3000 l cp gs col7 s gr /Times-Roman ff 266.67 scf sf 2325 1050 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 266.67 scf sf 3525 1050 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 2325 2775 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 266.67 scf sf 3525 2775 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 266.67 scf sf 5925 2775 m gs 1 -1 sc (4) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/m42_a1.fig000066400000000000000000000023361514310134000254510ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5b Landscape Center Inches Letter 100.00 Single -2 1200 2 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 2400 1200 75 75 2400 1200 2475 1200 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 3600 1200 75 75 3600 1200 3675 1200 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 2400 2400 75 75 2400 2400 2475 2400 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 3600 2400 75 75 3600 2400 3675 2400 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 4800 2400 75 75 4800 2400 4875 2400 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 4800 1200 75 75 4800 1200 4875 1200 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 6000 1200 75 75 6000 1200 6075 1200 1 3 0 1 -1 -1 50 -1 20 0.000 1 0.0000 6000 2400 75 75 6000 2400 6075 2400 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 3600 1200 3600 2400 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 4800 1200 4800 2400 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 2400 1200 6000 1200 6000 2400 2400 2400 2400 1200 2 2 0 1 7 7 50 -1 -1 0.000 0 0 -1 0 0 5 1800 600 6600 600 6600 3000 1800 3000 1800 600 4 0 0 50 -1 0 16 0.0000 4 195 135 2325 1050 0\001 4 0 0 50 -1 0 16 0.0000 4 195 135 3525 1050 2\001 4 0 0 50 -1 0 16 0.0000 4 195 135 2325 2775 1\001 4 0 0 50 -1 0 16 0.0000 4 195 135 3525 2775 3\001 4 0 0 50 -1 0 16 0.0000 4 195 135 5925 2775 4\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/m42_a1.pdf000066400000000000000000000105241514310134000254530ustar00rootroot00000000000000%PDF-1.4 %Çì¢ 5 0 obj <> stream xœÕV=Oä0íý+¦ÜE"g;vì´H§•N×—Q­`)Ø‚½‚¿žO›ˆ cÏ›7O3“ðS¼ÏW÷ã±ÀåŸópq)D¾¸Š¹Ä)d˜×0ÕŒëa^ g7§æNUöã…§aÐl? fáA£a”—”XLÏÙ½Þ¹4eøl:O{Öùæþ:ò‹>±9ŸâID¡Ø‘†ƒ"*ÅC95™¨49øÏ¸cõü2±œX]ì7[›£ÍÀơ߽մ´ ¸Ñ+^Í€ïÞf\‘gX3ÆÝ‰²“Dzش“,'[< û:iÀëI7ûdq€x÷e(ï8)V³«£âQõYÞØˆPç.¯z“Wj—W–O –G¦¦“Ò<"Oèy;xÕÃÅÛ¯:+ž^&c3”€o$ÖËD²¥X/ªi´›ACè† .¹L4 ;òbºzw.Ës1bsÒ˜s×s41û®3¦:„ð‚¸Ù–¤‚r˜‹uZv”1¤Œåü2­œ<> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream xœcd`ab`ddä ÉÌM-Ö ÊÏMÌñõ~H3þaú!ËÜ]û£à§«,ƒoßÞr< Ý<ÌÝ<, ~¦}Ÿ!ø½—ÿ{› #£y`òbРpMmmçü‚Ê¢ÌôŒ#3…¤J¨Œ‚Kjqfzž‚Q–š“_›šWâ—™›TZ¬¶[Á/ßRÁG!(5½4'±Sa2yv100°›00213ˆ0ˆ2°ƒ€…!…aÃÆÆ=ßûø~tÔ.ý)´”qñëï3^3ŸôÓB4¼;¹&=Û/4é7g÷o¾n¥U¿Ù¶mˆ>Px¢{O÷æYëWŸ8¸ù;W÷wAŽï‰ß‹ËuŠÞßñ›õwêïÔxSÓøoßS¾gîøÎôPh~÷üŸó¿g>dþÎ%ö}Å,6›žê©Ý»9~¼aoîýíaÀZ˾lÚÜIsú§vK.˜R›%ÿ'’½Û¯ªÖ¶ƒ¤ûúEW¿?{Èü#ÿ»¬hÝ„´ º¦¸nÉßÍlßm¾»77¿Æ½ì»ùßÕOÿ°/ô}ÇM»âÂ/~ä|¯UýÏöûÜŸ@Vïïk[³ ¸ñÝú#ÛoÓ¢¿[ؾ·|ÍÊW>ÿGØüï!óÙVr=à^9™‡çÁ\^þ3>. endstream endobj 13 0 obj <>stream 2015-03-18T11:58:08+01:00 2015-03-18T11:58:08+01:00 fig2dev Version 3.2 Patchlevel 5d m42_a1.figpelegrin@brol (Francois PELLEGRINI) endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000000891 00000 n 0000003770 00000 n 0000000832 00000 n 0000000681 00000 n 0000000015 00000 n 0000000662 00000 n 0000000956 00000 n 0000001057 00000 n 0000001231 00000 n 0000000997 00000 n 0000001027 00000 n 0000001470 00000 n 0000002236 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<2A347CFE5E0A7D9D9988093F703BE023><2A347CFE5E0A7D9D9988093F703BE023>] >> startxref 4003 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s.bib000066400000000000000000001002521514310134000247130ustar00rootroot00000000000000@article{amdadu96, author = "Amestoy, P. and Davis, T. and Duff, I.", title = "An approximate minimum degree ordering algorithm", journal = "{SIAM} {J}. {M}atrix {A}nal. and {A}ppl.", volume = "17", pages = "886--905", year = "1996" } @inproceedings{aseilish91, author = "Ashcraft, C. and Eisenstat, S. and Liu, J. W.-H. and Sherman, A.", title = "A comparison of three column based distributed sparse factorization schemes", booktitle = "Proc. Fifth {SIAM} Conf. on Parallel Processing for Scientific Computing", year = "1991", } @article{ashc95, author = "Ashcraft, C.", title = "Compressed Graphs and the Minimum Degree Algorithm", journal = "{SIAM} {J}. {S}ci. {C}omput.", volume = "16", number = "6", pages = "1404--1411", year = "1995" } @article{basi94, author = "Barnard, S. T. and Simon, H. D.", title = "A fast multilevel implementation of recursive spectral bisection for partitioning unstructured problems", journal = "{C}oncurrency: {P}ractice and {E}xperience", volume = "6", number = "2", pages = "101-117", year = "1994" } @techreport {bopore96, author = "Boisvert, R.~F. and Pozo, R. and Remington, K.~A.", title = "The {M}atrix {M}arket exchange formats: initial design", type = "{NISTIR}", number = "5935", month = dec, year = "1996", institution = "{N}ational {I}nstitute of {S}tandards and {T}echnology" } @misc{cecill, key = "cecill", title = "{CeCILL}: ``{CEA}-{CNRS}-{INRIA} {L}ogiciel {L}ibre'' free/libre software license", note = "Available from \url{http://www.cecill.info/licenses.en.html}" } @inproceedings{chpe06a, author = "Chevalier, C. and Pellegrini, F.", title = "Improvement of the Efficiency of Genetic Algorithms for Scalable Parallel Graph Partitioning in a Multi-Level Framework", booktitle = "Proc\@. EuroPar, Dresden", series = "LNCS 4128", pages = "243--252", month = sep, year = "2006", OPTpublisher = "Springer", OPTnote = "{\tt http://\lbt www.\lbo labri.\lbo fr/\lbt \~{}pelegrin/\lbt papers/\lbt scotch\_\lbt efficient\lbo ga.\lbt pdf}" } @article{chro89, author = "Charrier, P. and Roman, J.", title = "Algorithmique et calculs de complexit\'e pour un solveur de type dissections embo\^\i t\'ees", journal = "{N}umerische {M}athematik", volume = "55", pages = "463--476", year = "1989" } @techreport {chro92a, author = "Charrier, P. and Roman, J.", title = "Partitioning and Mapping for parallel nested dissection on distributed memory architectures", type = "Rapport de recherche", number = "92-12", month = mar, year = "1992", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", } @inproceedings {chro92b, author = "Charrier, P. and Roman, J.", title = "Partitioning and Mapping for parallel nested dissection on distributed memory architectures", booktitle = "Proc\@. CONPAR'92", series = "LNCS 634", pages = "295--306", month = sep, year = "1992", OPTpublisher = "Springer" } @inproceedings {cuma69, author = "Cuthill, E. and Macc~Kee, J.", title = "Reducing the bandwidth of sparse symmetric matrices", booktitle = "Proc. 24th national conference {ACM}", year = "1969", pages = "157--172", publisher = "{ACM}" } @article {doho72, author = "Donath, W. and Hoffman, A.", title = "Algorithms for partitioning of graphs and computer logic based on eigenvectors of connection matrices", journal = "{IBM} {T}echnical {D}isclosure {B}ulletin", volume = "15", year = "1972", pages = "938--944" } @article {doho73, author = "Donath, W. and Hoffman, A.", title = "Lower bounds for the partitioning of graphs", journal = "{IBM} {J}ournal of {R}esearch and {D}evelopment", volume = "17", year = "1973", pages = "420--425" } @inproceedings{drro94a, author = "van Driessche, R. and Roose, D.", title = "Dynamic load balancing with an improved spectral bisection algorithm", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "494--500", year = "1994", month = may, organization = "IEEE" } @techreport{drro94b, author = "van Driessche, R. and Roose, D.", title = "A graph contraction algorithm for the calculation of eigenvectors of the laplacian matrix of a graph with a multilevel method", institution = "Katholieke Universiteit Leuven", number = "TW 209", month = may, year = "1994" } @article{duff81, author = "Duff, I.", title = "On Algorithms for Obtaining a Maximum Transversal", journal = "{ACM} {T}rans. {M}ath. {S}oftware", volume = "7", number = "3", pages = "315--330", month = sep, year = "1981" } @techreport{dugrle92, author = "Duff, I. S. and Grimes, R. G. and Lewis, J. G.", title = "Users' guide for the {H}arwell-{B}oeing Sparse Matrix Collection", institution = "CERFACS", number = "TR/PA/92/86", month = oct, year = "1992", address = "Toulouse, France" } @article {errasa90, author = "Ercal, F. and Ramanujam, J. and Sadayappan, P.", title = "Task allocation onto a hypercube by recursive mincut bipartitionning", journal = "{J}ournal of {P}arallel and {D}istributed {C}omputing", volume = "10", year = "1990", pages = "35--44" } @article {fied73, author = "Fiedler, M.", title = "Algebraic connectivity of graphs", journal = "{C}zechoslovak {M}ath. {J}.", volume = "23", year = "1973", pages = "298--305" } @article {fied75, author = "Fiedler, M.", title = "A property of eigenvectors of non-negative symmetric matrices and its application to graph theory", journal = "{C}zechoslovak {M}ath. {J}.", volume = "25", year = "1975", pages = "619--633" } @inproceedings {fima82, author = "Fiduccia, C. M. and Mattheyses, R. M.", title = "A linear-time heuristic for improving network partitions", booktitle = "Proceedings of the 19th {D}esign {A}utomation {C}onference", year = "1982", pages = "175--181", publisher = "{IEEE}" } @InProceedings{fope11a, author = "Fourestier, S. and Pellegrini, F.", title = "Adaptation au repartitionnement de graphes d'une méthode d'optimisation globale par diffusion", booktitle = "Proc\@. RenPar'20, Saint-Malo, France", month = may, year = "2011" } @article {gajost76, author = "Garey, M. R. and Johnson, D. S. and Stockmeyer, L.", title = "Some simplified {NP}-complete graph problems", journal = "{T}heoretical {C}omputer {S}cience", volume = "1", year = "1976", pages = "237--267" } @book {gajo79, author = "Garey, M. R. and Johnson, D. S.", title = "{C}omputers and {I}ntractablility: {A} {G}uide to the {T}heory of {NP}-completeness", publisher = "W. H. Freeman", year = "1979", address = "San Francisco" } @article{geheling88, author = "George, A. and Heath, M. T. and Liu, J. W.-H. and Ng, E. G.-Y.", title = "Sparse {C}holesky factorization on a local memory multiprocessor", journal = "{SIAM} {J}ournal on {S}cientific and {S}tatistical {C}omputing", volume = "9", pages = "327--340", year = "1988" } @book {geli81, author = "George, J. A. and Liu, J. W.-H.", title = "Computer solution of large sparse positive definite systems", year = "1981", publisher = "Prentice Hall" } @article {geli89, author = "George, A. and Liu, J. W.-H.", title = "The evolution of the Minimum Degree ordering algorithm", journal = "{SIAM} {R}eview", volume = "31", pages = "1--19", year = "1989" } @article{geng89, author = "Geist, G. A. and Ng, E. G.-Y.", title = "Task scheduling for parallel sparse {C}holesky factorization", journal = "{I}nternational {J}ournal of {P}arallel {P}rogramming", volume = "18", number = "4", pages = "291--314", year = "1989" } @article {gipost76, author = "Gibbs, N. E. and Poole, W. G. and Stockmeyer, P. K.", title = "A comparison of several bandwidth and profile reduction algorithms", journal = "{ACM} Trans. Math. Software", volume = "2", year = "1976", pages = "322--330", field = "bdth about sparse matrices", owner = "Jean ROMAN" } @misc{lgpl, key = "lgpl", title = "{GNU} {L}esser {G}eneral {P}ublic {L}icense", note = "Available from \url{http://www.gnu.org/copyleft/lesser.html}" } @techreport{gukaku94, author = "Gupta, A. and Karypis, G. and Kumar, V.", title = "Highly scalable parallel algorithms for sparse matrix factorization", institution = "{U}niversity of {M}innesota", type = "TR", number = "94-063", year = "1994", OPTnote = "To appear in {\em {IEEE} {T}rans. on {P}arallel and {D}istributed {S}ystems}, 1997" } @inproceedings{gukaku96, author = "Gupta, A. and Karypis, G. and Kumar, V.", title = "Scalable parallel algorithms for sparse linear systems", booktitle = "Proc. {Stratagem'96}, Sophia-Antipolis", pages = "97--110", year = "1996", month = jul, organization = "INRIA", } @article{gukaku97, author = "Gupta, A. and Karypis, G. and Kumar, V.", title = "Highly scalable parallel algorithms for sparse matrix factorization", journal = "{IEEE} {T}rans. {P}arallel {D}istrib. {S}yst.", volume = "8", number = "5", pages = "502--520", year = "1997" } @article {gusu84, author = "Gurari, E. M. and Sudborough, I. H.", title = "Improved Dynamic Algorithms for Bandwidth Minimization and the Mincut Linear Arrangement Problem", journal = "Journal of Algorithms", volume = "5", year = "1984", pages = "531--546", field = "Heuristiques pour bdth and cdth" } @phdthesis {hamm92, author = "Hammond, S. W.", title = "Mapping unstructured grid computations to massively parallel computers", month = feb, year = "1992", school = "{R}ensselaer {P}olytechnic {I}nstitute", address = "{T}roy, {N}ew-{Y}ork" } @techreport{hele93a, author = "Hendrickson, B. and Leland, R.", title = "Multidimensional spectral load balancing", institution = "{S}andia {N}ational {L}aboratories", number = "SAND93--0074", month = jan, year = "1993", owner = "Francois PELLEGRINI" } @techreport{hele93b, author = "Hendrickson, B. and Leland, R.", title = "A multilevel algorithm for partitioning graphs", institution = "{S}andia {N}ational {L}aboratories", number = "SAND93--1301", month = jun, year = "1993", owner = "Francois PELLEGRINI" } @techreport{hele93c, author = "Hendrickson, B. and Leland, R.", title = "The \sc {C}haco \rm user's guide", institution = "{S}andia {N}ational {L}aboratories", number = "SAND93--2339", month = nov, year = "1993", owner = "Francois PELLEGRINI" } @inproceedings{hele94a, author = "Hendrickson, B. and Leland, R.", title = "An empirical study of static load balancing algorithms", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "682--685", year = "1994", month = may, organization = "IEEE" } @techreport{hele94b, author = "Hendrickson, B. and Leland, R.", title = "The {\sc {C}haco} user's guide -- Version 2.0", institution = "{S}andia {N}ational {L}aboratories", number = "SAND94--2692", year = "1994", owner = "Francois PELLEGRINI" } @inproceedings {hele95, author = "Hendrickson, B. and Leland, R.", title = "A Multilevel Algorithm for Partitioning Graphs", booktitle = "Proc\@. ACM/IEEE conference on Supercomputing (CDROM)", month = "dec", year = "1995", location = "San Diego" } @inproceedings{heledr96, author = "Hendrickson, B. and Leland, R. and Van Driessche, R.", title = "{E}nhancing {D}ata {L}ocality by {U}sing {T}erminal {P}ropagation", booktitle = "Proceedings of the 29$\,^{th}$ Hawaii International Conference on System Sciences", year = "1996", month = jan, organization = "IEEE" } @inproceedings {heledr97, author = "Hendrickson, B. and Leland, R. and Van Driessche, R.", title = "Skewed Graph Partitioning", booktitle = "Proceedings of the 8$^{th}$ {SIAM} {C}onference on {P}arallel {P}rocessing for {S}cientific {C}omputing", month = mar, year = 1997, organization = "IEEE" } @inproceedings{heperaro04a, author = "H\'enon, P. and Pellegrini, F. and Ramet, P. and Roman, J. and Saad, Y.", title = "High Performance Complete and Incomplete Factorizations for Very Large Sparse Systems by using {\sc {S}cotch} and {\sc {P}a{S}ti{X}} softwares", booktitle = "Proc\@. 11$^{th}$ {SIAM} {C}onference on {P}arallel {P}rocessing for {S}cientific {C}omputing, San Francisco, {USA}", month = feb, year = 2004 } @article{hero98, author = "Hendrickson, B. and Rothberg, E.", title = "Improving the Runtime and Quality of Nested Dissection Ordering", journal = "{SIAM} {J}. {S}ci. {C}omput.", volume = "20", number = "2", year = "1998", pages = "468--489" } @article {hoka73, author = "Hopcroft, J. and Karp, R.", title = "An $n^{5/2}$ Algorithm for Maximum Matchings in Bipartite Graphs", journal = "{SIAM} {J}ournal of {C}omputing", volume = "2", number = "4", month = dec, year = "1973", pages = "225--231", field = "Sepa, ALGO" } @techreport{kaku95a, author = "Karypis, G. and Kumar, V.", title = "A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs", institution = "{U}niversity of {M}innesota", type = "Technical Report", number = "95-035", month = jun, year = "1995" } @techreport{kaku95b, author = "Karypis, G. and Kumar, V.", title = "{\sc Me$\!$T$\!$iS} -- Unstructured Graph Partitioning and Sparse Matrix Ordering System -- Version~2.0", institution = "{U}niversity of {M}innesota", month = jun, year = "1995" } @techreport{kaku95c, author = "Karypis, G. and Kumar, V.", title = "Multilevel $k$-way Partitioning Scheme for Irregular Graphs", institution = "{U}niversity of {M}innesota", type = "Technical Report", number = "95-064", month = aug, year = "1995" } @manual{kaku98a, author = "Karypis, G. and Kumar, V.", title = "{\sc Me$\!$T$\!$iS} -- A Software Package for Partitioning Unstructured Graphs, Partitioning Meshes, and Computing Fill-Reducing Orderings of Sparse Matrices -- Version~4.0", organization = "{U}niversity of {M}innesota", month = sep, year = "1998" } @article {keli70, author = "Kernighan, B. W. and Lin, S.", title = "An efficient heuristic procedure for partitionning graphs", journal = "{BELL} System Technical Journal", month = feb, year = "1970", pages = "291--307", publisher = "{BELL} {C}orporation", field = "Sepa, ALGO" } @article {lafeel94, author = "Laguna, M. and Feo, T. A. and Elrod, H. C.", title = "A greedy randomized adaptative search procedure for the two-partition problem", journal = "{O}perations {R}esearch", month = jul, year = "1994", pages = "677--687", field = "Bipa, ALGO" } @techreport{leabdofe92, author = "Leiserson, C. and Abuhamdeh, Z. and Douglas, D. and Feynman, C. and Ganmukhi, M. and Hill, J. and Hillis, W. and Kuszmaul, B. and Pierre, M. and Wells, D. and Wong, M. and Yang, S. and Zak, R.", title = "The Network Architecture of the {C}onnection {M}achine {CM-5}", institution = "{T}hinking {M}achines", month = "juillet", year = "1992" } @inproceedings{lele87, author = "Leiserson, C. and Lewis, J.", title = "Orderings for parallel sparse symmetric factorization", booktitle = "Third {SIAM} Conference on Parallel Processing for Scientific Computing", year = "1987", location = "Troms\o" } @article {lirota79, author = "Lipton, R. J. and Rose, D. J. and Tarjan, R. E.", title = "Generalized nested dissection", journal = "{SIAM} Journal of Numerical Analysis", volume = "16", number = "2", month = apr, year = "1979", pages = "346--358", publisher = "{S}ociety for {I}ndustrial and {A}pplied {M}athematics" } @inproceedings {litsdukl93, author = "Lin, M. and Tsang, R. and Du, D. H. C. and Klietz, A. E. and Saroff, S.", title = "Performance Evaluation of the {CM-5} Interconnection Network", booktitle = "Proceedings of CompCon Spring'93", year = "1993" } @phdthesis {liu-75, author = "Liu, J. W.", title = "On reducing the profile of sparse symmetric matrices", school = "{U}niversity of {W}aterloo", year = "1975", address = "{W}aterloo, {O}ntario", } @article {liu-85, author = "Liu, J. W.-H.", title = "Modification of the minimum-degree algorithm by multiple elimination", journal = "{ACM} {T}rans. {M}ath. {S}oftware", volume = "11", number = "2", year = 1985, pages = "141--153" } @misc{oinv, author = "Silicon Graphics, Inc.", key = "oinv", title = "{O}pen {I}nventor", note = "Available from \url{http://oss.sgi.com/projects/inventor/}" } @misc{paraview, author = "Kitware", key = "paraview", title = "{P}araview", note = "Available from \url{https://www.paraview.org/}" } @manual{pci-93, title = "{CS-2} {P}roduct {D}escription", organization = "{P}erformance {C}omputing {I}ndustries", year = "1993" } @Article{pell93d, author = "Pellegrini, F.", title = "Bounds for the Bandwidth of the $d$-ary de~{B}ruijn graph", journal = "Parallel Processing Letters", year = "1993", volume = "3", number = "4", pages = "431--443" } @inproceedings{pell94a, author = "Pellegrini, F.", title = "Static Mapping by Dual Recursive Bipartitioning of Process and Architecture Graphs", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "486--493", year = "1994", month = may, organization = "IEEE" } @inproceedings{pell94b, author = "Pellegrini, F.", title = "Placement statique par bipartitionnement r\'ecursif conjoint des graphes de processus et d'architecture", booktitle = "Actes des 6\/${}^{\grave{e}mes}$ Rencontres Francophones du Parall\'elisme, RenPar'6, Lyon", pages = "41--44", year = "1994", month = jun, organization = "ENS Lyon" } @phdthesis{pell95a, author = "Pellegrini, F.", title = "Application de m\'ethodes de partition \`a la r\'esolution de probl\`emes de graphes issus du parall\'elisme", type = "{T}h\`ese de {D}octorat", school = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", number = "1244", month = jan, year = "1995", address = "351 cours de la Lib\'eration, 33405 Talence, France" } @inproceedings{pell07b, author = "Pellegrini, F.", title = "A parallelisable multi-level banded diffusion scheme for computing balanced partitions with smooth boundaries", booktitle = "Proc\@. EuroPar, Rennes", series = "LNCS 4641", pages = "191--200", month = aug, year = "2007", OPTeditor = "A.-M. Kermarrec, L. Boug\'e, T. Priol", OPTpublisher = "Springer", OPTnote = "{\tt http://\lbt www.\lbo labri.\lbo fr/\lbt \~{}pelegrin/\lbt papers/\lbt scotch\_\lbt bipart\_\lbt diffusion\_\lbt europar2007.\lbt pdf}" } @techreport{pell07c, author = "Pellegrini, F.", title = "{\sc {S}cotch 5.0} {U}ser's {G}uide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2007", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @TechReport{pell07d, author = "Pellegrini, F.", title = "{\sc {PT}-{S}cotch 5.0} \mbox{U}ser's guide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2007", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @techreport{pell08b, author = "Pellegrini, F.", title = "{\sc {S}cotch 5.1} {U}ser's {G}uide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2008", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @TechReport{pell08c, author = "Pellegrini, F.", title = "{\sc {PT}-{S}cotch 5.1} \mbox{U}ser's guide", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "2008", note = "Available from \url{http://www.labri.fr/~pelegrin/scotch/}" } @techreport{pellegrini:hal-01671156, title = {{Process Mapping onto Complex Architectures and Partitions Thereof}}, author = {Pellegrini, Fran{\c c}ois and Lachat, C{\'e}dric}, note = "Available from \url{https://hal.inria.fr/hal-01671156}", type = {Research Report}, number = {RR-9135}, pages = {16}, institution = {{Inria Bordeaux Sud-Ouest}}, year = {2017}, month = Dec, pdf = {https://hal.inria.fr/hal-01671156/file/RR-9135.pdf}, hal_id = {hal-01671156} } @inproceedings{pero96a, author = "Pellegrini, F. and Roman, J.", title = "{\sc Scotch}: A Software Package for Static Mapping by Dual Recursive Bipartitioning of Process and Architecture Graphs", booktitle = "Proc\@. {HPCN'96}, Brussels", series = "LNCS 1067", pages = "493--498", month = apr, year = "1996" } @techreport{pero96b, author = "Pellegrini, F. and Roman, J.", title = "Experimental Analysis of the Dual Recursive Bipartitioning Algorithm for Static Mapping", type = "{R}esearch {R}eport", institution = "{LaBRI}, {U}niversit\'e {B}ordeaux~{I}", month = aug, year = "1996", note = "Available from \url{http://www.labri.fr/~pelegrin/papers/scotch_expanalysis.ps.gz}" } @inproceedings{pero97a, author = "Pellegrini, F. and Roman, J.", title = "{S}parse matrix ordering with {\sc {S}cotch}", booktitle = "Proc\@. {HPCN'97}, Vienna", series = "LNCS 1225", pages = "370--378", month = apr, year = "1997" } @inproceedings{peroam99, author = "Pellegrini, F. and Roman, J. and Amestoy, P.", title = "Hybridizing Nested Dissection and Halo Approximate Minimum Degree for Efficient Sparse Matrix Ordering", booktitle = "Proc\@. {Irregular'99}, San Juan", series = "LNCS 1586", pages = "986--995", month = apr, year = "1999" } @article{peroam00a, author = "Pellegrini, F. and Roman, J. and Amestoy, P.", title = "Hybridizing Nested Dissection and Halo Approximate Minimum Degree for Efficient Sparse Matrix Ordering", journal = "{C}oncurrency: {P}ractice and {E}xperience", year = "2000", volume = "12", pages = "69--84" } @article {pofa90, author = "Pothen, A. and Fan, C.-J.", title = "Computing the Block Triangular Form of a Sparse Matrix", journal = "{ACM} {T}rans. {M}ath. {S}oftware", volume = "16", number = "4", month = dec, year = "1990", pages = "303--324" } @article {posili90, author = "Pothen, A. and Simon, H. D. and Liou, K.-P.", title = "Partitioning sparse matrices with eigenvectors of graphs", journal = "{SIAM} {J}ournal of {M}atrix {A}nalysis", volume = "11", number = "3", month = jul, year = "1990", pages = "430--452" } @article {roha89, author = "Roucairol, C. and Hansen, P.", title = "Cut cost minimization in graph partitioning", journal = "{N}umerical and {A}pplied {M}athematics", year = "1989", pages = "585--587", publisher = "{S}cientific {P}ublishing" } @inproceedings{rogu93, author = "Rothberg, E. and Gupta, A.", title = "An efficient block-oriented approach to parallel sparse {C}holesky factorization", booktitle = "{S}upercomputing'93 {P}roceedings", year = "1993", organization = "IEEE" } @inproceedings{rosc94, author = "Rothberg, E. and Schreiber, R.", title = "Improved load distribution in parallel sparse {C}holesky factorization", booktitle = "{S}upercomputing'94 {P}roceedings", year = "1994", organization = "IEEE" } @inproceedings{roth94, author = "Rothberg, E.", title = "Performance of panel and block approaches to sparse {C}holesky factorization on the {iPSC/860} and {P}aragon multicomputers", booktitle = "Proc\@. {SHPCC'94}, Knoxville", pages = "324--333", year = "1994", month = may, organization = "IEEE" } @article {roma85, author = "Roman, J.", title = "Calculs de complexit\'e relatifs \`a une m\'ethode de dissection embo\^\i t\'ee", journal = "{N}umerische {M}athematik", volume = "47", year = "1985", pages = "175--190" } @book {rume94, author = "de Rumeur, J.", title = "Communication dans les r\'eseaux de processeurs", month = oct, year = "1994", publisher = "Masson" } @mastersthesis{scar96, author = "Scarano, L.", title = "Metodologie di allocazione statica con algoritmi di bipartizionamento multilevelo", school = "{F}acolt\'a di {I}ngegneria, {U}niversit\`a degli {S}tudi di {B}ologna", type = "{T}esi di {L}aurea", month = mar, year = "1996" } @inbook {sero85, author = "Seymour, P. D. and Robertson, N.", chapter = "Graph minors -- {A} survey", title = "Surveys in combinatorics", year = "1985", pages = "153--171", editor = "Ian Anderson", publisher = "Cambridge University Press" } @techreport{shre92, author = "Schreiber, R.", title = "Scalability of sparse direct solvers", institution = "{RIACS}, {NASA} {A}mes {R}esearch {C}enter", type = "Technical Report", number = "TR 92.13", month = may, year = "1992" } @article{simo91, author = "Simon, H. D.", title = "Partitioning of unstructured problems for parallel processing", journal = "{C}omputing {S}ystems in {E}ngineering", volume = "2", pages = "135-148", year = "1991" } @techreport{site93, author = "Simon, H. D. and Teng, S.-H.", title = "How good is recursive bipartition", type = "Research report", institution = "{NASA} {A}mes {R}esearch {C}enter", month = jun, year = "1993" } @techreport{shsz91, author = "Shahrokhi, F. and Szekely, L. A.", title = "An algebraic approach to the uniform concurrent multicommodity flow -- {T}heory and Applications", institution = "University of North Texas", number = "CRPDC-91-4", year = "1991", owner = "Dominique BARTH" } @article {shts85, author = "Shen, C.-C. and Tsai, W.-H.", title = "A graph matching approach to optimal task assignment in distributed computing systems using a minimax criterion", journal = "{IEEE} {T}ransactions on {C}omputers", volume = "C-34", number = "3", month = mar, year = "1985", pages = "197--203" } @article {sinc87, author = "Sinclair, J. B.", title = "Efficient computation of optimal assignments for distributed tasks", journal = "{J}ournal of {P}arallel and {D}istributed {C}omputing", volume = "4", year = "1987", pages = "342--362" } @inproceedings {smar76, author = "Smith, W. F. and Arany, I.", title = "Another algorithm for reducing bandwidth and profile of a sparse matrix", booktitle = "Proc. AFIPS 1976 NCC", year = "1976", pages = "341--352", publisher = "AFIP Press", address = "Montvale, New Jersey" } @article{ston77, author = "Stone, H. S.", title = "Multiprocessor scheduling with the aid of network flow algorithms", journal = "{IEEE} {T}ransactions on {S}oftware {E}ngineering", volume = "SE 3", number = "2", month = jan, year = "1977", pages = "85--93" } @techreport {tamu92, author = "Talbi, E.-G. and Muntean, T.", title = "\'Evaluation et \'etude comparative d'algorithmes d'optimisation combinatoire: application au probl\`eme de placement de processus", institution = "LGI-IMAG", address = "46 av. {F}. {V}iallet, 38031 {G}renoble {CEDEX}", type = "Rapport de Recherche", number = "RR~886-I", month = apr, year = "1992" } @article {tiwa67, author = "Tinney, W. F. and Walker, J. W.", title = "Direct solutions of sparse network equations by optimally ordered triangular factorization", journal = "{J}. {P}roc. {IEEE}", volume = "55", year = "1967", pages = "1801--1809" } @misc{tulip, author = "Aubert, D. and others", title = "{T}ulip", note = "Available from \url{https://tulip.labri.fr/}" } @inproceedings {wacrevjo95, author = "Walshaw, C. and Cross, M. and Everett, M. G. and Johnson, S. and McManus, K.", title = "Partitioning \& Mapping of Unstructured Meshes to Parallel Machine Topologies", booktitle = "Proc\@. {Irregular'95}", series = "LNCS", number = "980", pages = "121--126", year = "1995" } @article {waro84, author = "Ward, M. O. and Romero, D. J.", title = "Assigning parallel-executable, intercommunicating subtasks to processors", journal = "{IEEE}", year = "1984", pages = "392--394" } @inproceedings {yokaka75, author = "Yoshizawa, H. and Kawanishi, H. and Kani, K.", title = "A Heuristic procedure for ordering {MOS} arrays", booktitle = "Proc\@. of Design Automation Conference", year = "1975", pages = "384--393" } @inproceedings{zovake94, author = "Zone, O. and Vanderstraeten, D. and Keunings, R.", title = "Un solveur direct parall\`ele bas\'e sur une d\'ecomposition de domaine appliqu\'e aux probl\`emes d'\'el\'ements finis", booktitle = "Actes des 6\/${}^{\grave{e}mes}$ Rencontres Francophones du Parall\'elisme, RenPar'6, Lyon", pages = "113--118", year = "1994", month = jun, organization = "ENS Lyon" } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s.tex000066400000000000000000000255211514310134000247640ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s.tex % % Sujet : Scotch user's guide % % Document body % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Formatage et pagination. % pdflatex -sPAPERSIZE=a4 s.tex % dvips -sPAPERSIZE=a4 s.dvi -o scotch_userX.X.ps % ps2pdf -sPAPERSIZE=a4 scotch_userX.X.ps scotch_userX.X.pdf \documentclass{article} \usepackage{a4} \usepackage{url} \usepackage{hyperref} \usepackage{breakurl} \hypersetup{pdfborder={0 0 0},colorlinks=false} \usepackage[dvips]{graphicx} \usepackage{xspace} \usepackage{courier} \usepackage{listings} \lstset{ basicstyle=\footnotesize\ttfamily, frame=single, numbers=left, numberstyle=\tiny, stepnumber=1, columns=fullflexible, showstringspaces=false, % tabsize=1, breaklines=true, breakatwhitespace=false, } \lstdefinestyle{language-b} { language=bash, } \lstdefinestyle{language-c} { language=C, } \lstdefinestyle{language-f} { language=Fortran, } \sloppy % Gestion des overfull hbox \renewcommand{\baselinestretch}{1.05} % Hauteur lignes x 1.05 \setcounter{secnumdepth}{3} % Sous-sous-sections numerotees \setcounter{tocdepth}{3} % Sous-sous-sections dans la table %% Macros et commandes utiles. \makeatletter \@definecounter{enumv} % 8 niveaux d'itemizations \@definecounter{enumvi} \@definecounter{enumvii} \@definecounter{enumviii} \def\itemize{\ifnum \@itemdepth >8 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi} \let\enditemize =\endlist \def\@iteme[#1]{\if@noparitem \@donoparitem % Item long pour options \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}\fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \setbox\@tempboxa\hbox{#1}\relax \hskip \itemindent \hskip -\parindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa > \labelwidth \box\@tempboxa\hfil\break \else \hbox to\labelwidth{\box\@tempboxa\hfil}\relax \hskip \labelsep \fi \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi \ignorespaces} \def\iteme{\@ifnextchar [{\@iteme}{\@noitemargtrue \@iteme[\@itemlabel]}} \let\@Hxfloat\@xfloat \def\@xfloat#1[{\@ifnextchar{H}{\@HHfloat{#1}[}{\@Hxfloat{#1}[}} \def\@HHfloat#1[H]{% \expandafter\let\csname end#1\endcsname\end@Hfloat \vskip\intextsep\def\@captype{#1}\parindent\z@ \ignorespaces} \def\end@Hfloat{\vskip \intextsep} \makeatother \def\progsyn{\item[{\makebox[1.5em][l]{\bf Synopsis}}]\ ~\linebreak[0]\\*[1em]} \def\progdes{\item[{\makebox[1.5em][l]{\bf Description}}]\ ~\linebreak[0]\\*[1em]} \def\progopt{\item[{\makebox[1.5em][l]{\bf Options}}]~\linebreak[0]} \def\progret{\item[{\makebox[1.5em][l]{\bf Return values}}]~\linebreak[0]} \newcommand{\bn}{\begin{displaymath}} % Equations non-numerotees \newcommand{\en}{\end{displaymath}} \newcommand{\bq}{\begin{equation}} % Equations numerotees \newcommand{\eq}{\end{equation}} \newcommand{\lbo}{\linebreak[0]} \newcommand{\lbt}{\linebreak[2]} \newcommand{\noi}{{\noindent}} % Pas d'indentation \newcommand{\spa}{{\protect \vspace{\bigskipamount}}} % Espace vertical \newcommand{\eg}{\textit{e\@.g\@.}\xspace} % e.g. \newcommand{\ie}{\textit{i\@.e\@.}\xspace} % i.e. \newcommand{\chaco}{\textsc{Chaco}} % "chaco" \newcommand{\scotch}{\textsc{Scotch}} % "scotch" \newcommand{\libscotch}{\textsc{libScotch}} % "libscotch" \newcommand{\ptscotch}{\textsc{PT-Scotch}} % "PT-Scotch" \newcommand{\metis}{\mbox{\textsc{Me$\!$T$\!$iS}}} % "MeTiS" \newcommand{\eqdef}{\stackrel{\scriptscriptstyle \rm def}{=}} % = as definition \newcommand{\isapprox}{\mathop{\approx}\limits} \newcommand{\lefta}{\longleftarrow} \newcommand{\rghta}{\longrightarrow} \newcommand{\botha}{\longleftrightarrow} \newcommand{\Lefta}{\Longleftarrow} \newcommand{\Rghta}{\Longrightarrow} \newcommand{\Botha}{\Longleftrightarrow} \newcommand{\HY}{{\rm H}} % H \newcommand{\KP}{{\rm K}} % K \newcommand{\MK}[1]{{\rm M}_{#1}} % Mk \newcommand{\MD}{\MK{2}} % M2 \newcommand{\PA}{{\rm P}} % P \newcommand{\UB}{{\rm UB}} % UB \newcommand{\SE}{{\rm SE}} % SE \newcommand{\FFT}{{\rm FFT}} % FFT \newcommand{\BF}{{\rm BF}} % BF \newcommand{\BFB}{{\overline{\rm BF}}} % BF bar \newcommand{\CCC}{{\rm CCC}} % CCC \newcommand{\CCCB}{{\overline{\rm CCC}}} % CCC bar \newcommand{\roo}[1]{{\rho_{\scriptscriptstyle {#1}}}} % Rho avec petit argument \newcommand{\too}[1]{{\tau_{\scriptscriptstyle {#1}}}} % Tau avec petit argument \newcommand{\xio}[1]{{\xi_{\scriptscriptstyle {#1}}}} % Xi avec petit argument \newcommand{\SB}[1]{{\cal C}'_S\left({#1}\right)} % Comportement en espace \newcommand{\TB}[1]{{\cal C}'_T\left({#1}\right)} % Comportement en temps \newcommand{\SC}[1]{{\cal C}_S\left({#1}\right)} % Complexite en espace \newcommand{\TC}[1]{{\cal C}_T\left({#1}\right)} % Complexite en temps \newcommand{\dmap}{\mbox{$\delta_{map}$}} \newcommand{\dexp}{\mbox{$\delta_{exp}$}} \newcommand{\mmap}{\mbox{$\mu_{map}$}} \newcommand{\mdil}{\mbox{$\mu_{dil}$}} \newcommand{\mcom}{\mbox{$\mu_{com}$}} \newcommand{\mexp}{\mbox{$\mu_{exp}$}} \newcommand{\NNZ}{\mbox{NNZ}} \newcommand{\OPC}{\mbox{OPC}} \newcommand{\hnbr}{\mbox{$h_{\rm nbr}$}} \newcommand{\hmin}{\mbox{$h_{\rm min}$}} \newcommand{\hmax}{\mbox{$h_{\rm max}$}} \newcommand{\havg}{\mbox{$h_{\rm avg}$}} \newcommand{\hdlt}{\mbox{$h_{\rm dlt}$}} %% Version du document. \input{../version.tex} \newcommand{\scotchcitepuser}{\protect\cite{pell08c}} \newcommand{\scotchcitesuser}{\protect\cite{pell08b}} %% Page de garde. \begin{document} \date{\today} \title{\includegraphics{../misc/scotch_logo_color.ps}\\[1em] {\LARGE\bf \scotch\ and \libscotch\ \textsc{\scotchver} User's Guide}\\[1em]% {\normalsize (version \scotchversub)} } \author{Fran\c cois Pellegrini\\ Universit\'e de Bordeaux \& LaBRI, UMR CNRS 5800\\ TadAAM team, INRIA Bordeaux Sud-Ouest\\ 351 cours de la Lib\'eration, 33405 TALENCE, FRANCE\\ {\tt francois.pellegrini@labri.fr}} \maketitle \begin{abstract} This document describes the capabilities and operations of \scotch\ and \libscotch, a software package and a software library devoted to static mapping, edge- and vertex-based graph partitioning, and sparse matrix block ordering of graphs and meshes/hypergraphs. It gives brief descriptions of the algorithms, details the input/output formats, instructions for use, installation procedures, and provides a number of examples. \scotch\ is distributed as free/libre software, and has been designed such that new partitioning or ordering methods can be added in a straightforward manner. It can therefore be used as a testbed for the easy and quick coding and testing of such new methods, and may also be redistributed, as a library, along with third-party software that makes use of it, either in its original or in updated forms. \end{abstract} \clearpage %% Table des matieres. \tableofcontents %% Corps du document. \input{s_i.tex} % Introduction \input{s_c.tex} % Changes since previous versions \input{s_f.tex} % Formats de fichiers \input{s_p.tex} % Programmes \input{s_l.tex} % Bibliotheque \input{s_d.tex} % Distribution \input{s_e.tex} % Relevant examples \input{s_n.tex} % Addition of a new method %% Remerciements. \section*{Credits} I wish to thank all of the following people: \begin{itemize} \item Patrick Amestoy collaborated to the design of the Halo Approximate Minimum Degree algorithm~\cite{peroam99} that had been embedded into \scotch\ \textsc{3.3}, and provided versions of his Approximate Minimum Degree algorithm, available since version \textsc{3.2}, and of his Halo Approximate Minimum Fill algorithm, available since version \textsc{3.4}. He designed the mesh versions of the approximate minimum degree and approximate minimum fill algorithms, which are available since version \textsc{4.0}; \item Clément Barthélemy improved the Windows compilation system and coded the Windows threading module, available since version \textsc{7.0.5}. As the Scotch Consortium core engineer, he also contributed to various improvements; \item S\'ebastien Fourestier coded the mapping with fixed vertices, remapping, and remapping with fixed vertices sequential routines that are available since version \textsc{6.0}; \item Marc Fuentes designed the mesh-to-dual-graph routines, extended the functional scope of the \metis\ compatibility library, and coded \textsc{CMake} environment files; \item Jun-Ho Her coded the graph partitioning with overlap routines that were introduced in the unpublished \textsc{5.2} release, subsequently publicly released in version \textsc{6.0}; \item Amaury Jacques improved the development environment and contributed to the consistency checking and non-regression testing routines; \item C\'edric Lachat contributed to the robustness of the software, in relation with his development of the \textsc{PaMPA} software; \item Connor Alexander Mayon coded the genetic algorithm partitioning methods, available since version \textsc{7.0.10}; \item Xavier Muller contributed to the compilation chain; \item Tetsuya Mishima contributed to the Windows threading module, available since version \textsc{7.0.5}; \item Alex Pothen kindly provided a version of his Multiple Minimum Degree algorithm, which was embedded into \scotch\ from version \textsc{3.2} to version \textsc{3.4}; \item Florent Pruvost set up the continuous integration environment on Inria GitLab; \item Luca Scarano coded the multilevel graph algorithm in \scotch\ \textsc{3.1}; \item Yves Secretan contributed to the \textsc{MinGW32} port; \item David Sherman proofread version \textsc{3.2} of this manual. \end{itemize} %% Bibliographie. \bibliographystyle{plain} \bibliography{s} \end{document} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_c.tex000066400000000000000000000160001514310134000252560ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_c.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Changes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Updates} \label{sec-changes} \subsection{Changes in version 7.0 from version 6.1} Thread management in \scotch\ is now dynamic. This allows the user to control dynamically the number of threads that are used by the threaded algorithms of the \libscotch\ library and, consequently, by the \scotch\ standalone programs that call them. Users can also control concurrency by using \texttt{SCOTCH\_\lbt Context} objects. These objects define user-configurable execution contexts, in which \libscotch\ library routines can be executed independently from others; see Section~\ref{sec-lib-context}, page~\pageref{sec-lib-context} for further information. Execution contexts also comprise option values, which dynamically determine the behavior of the \scotch\ routines. In previous versions, such behavior was controlled at compile-time by flags \texttt{COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} and \texttt{SCOTCH\_\lbt DETERMINISTIC}. It is now possible to define these flags dynamically, using the relevant option setting routine (see Section~\ref{sec-lib-context-option-set-num}). \\ Support for CMake has been added. \\ A new, faster, pseudo-random number generator has been implemented. \\ The y cordinate of the grid geometry files provided by the \texttt{gmk\_m*} programs has been set to the ascending order. Use option \texttt{-y} to restore the previous behavior of descending order. \\ A multi-threaded genetic graph bipartitioning method has been added. \subsection{Changes in version 6.1 from version 6.0} The k-way refinement routine of the module that computes graph partitions with overlap has been completely rewritten. \\ The halo minimum degree and halo minimum fill algorithms now take into account, for computing vertex degrees, the vertex weights attached to node vertices. These weights may represent the number of degrees of freedom associated with a vertex during subsequent matrix computations. They can result from a graph compression process, such as the one implemented in \scotch\ (see page~\pageref{sec-lib-meth-compress}). \\ The program \texttt{gout} can now output VTK files. \subsection{Changes in version 6.0 from version 5.1} The new \texttt{sub} abstract target architecture allows one to map a graph onto a subset of any given target architecture (including another \texttt{sub} architecture). This feature is meant to perform mappings onto potentially disconnected subsets of a parallel machine, e.g. the set of nodes assigned by a batch scheduler; see Section~\ref{sec-lib-arch-sub}, page~\pageref{sec-lib-arch-sub} for further information. Also, in order to allow decomposition-defined architectures to scale-up to the sizes of modern machines, a new version of the \texttt{deco} architecture, called \texttt{deco~2}, has been designed. This target architecture can be created using the \texttt{SCOTCH\_\lbt arch\lbt Build2} routine; see Section~\ref{sec-lib-arch-build-two}, page~\pageref{sec-lib-arch-build-two} for further information. For further information on the rationale and implementation of these two features, please refer to~\cite{pellegrini:hal-01671156}. Also,a new labeled tree-leaf architecture has been created, for nodes that label cores in non increasing order. See Section~\ref{sec-file-target-algo}, page~\pageref{sec-file-target-algo} for the description of the \texttt{ltleaf} target architecture. \\ Direct k-way graph partitioning and static mapping methods are now available. They are less expensive than the classical dual recursive bipartitioning scheme, and improve quality on average for numbers of parts above a few hundreds. Another new method aims at reducing load imbalance in the case of source graphs with highly irregular vertex weights; see Section~\ref{sec-algo-map-methods}, page~\pageref{sec-algo-map-methods}. Users willing to keep using the old recursive bipartitioning strategies of the \textsc{5.x} branch can create default strategies with the \texttt{SCOTCH\_\lbt STRATRECURSIVE} flag set, in addition to other flags; see Section~\ref{sec-lib-format-strat-default}, page~\pageref{sec-lib-format-strat-default} for further information. \\ Graph repartitioning and static re-mapping features are now available; see Sections~\ref{sec-lib-func-graphmapfixed} to~\ref{sec-lib-func-graphremapfixed}, starting from page~\pageref{sec-lib-func-graphmapfixed}. \\ The clustering capabilities of \scotch\ can be used more easily from the command line and library calls~; see Section~\ref{sec-prog-gmap} and Section~\ref{sec-lib-func-stratgraphclusterbuild}. \\ A new set of routines has been created in order to compute vertex-separated, k-way partitions, that balance the loads of the parts and of the separator vertices that surround them; see Sections~\ref{sec-lib-format-strat-part-ovl} and~\ref{sec-lib-func-graphpartovl}. \\ A method for computing independently orderings on connected components of a graph is now available; see Section~\ref{sec-lib-format-strat-ord}, page~\pageref{sec-lib-format-strat-ord}, and the \texttt{SCOTCH\_\lbt STRAT\lbt DISCON\lbt NECTED} flag in Section~\ref{sec-lib-format-strat-default}, page~\pageref{sec-lib-format-strat-default}. \\ Key algorithms are now multi-threaded. See the installation file \texttt{INSTALL.txt} in the main directory for instructions on how to compile \scotch\ with thread support enabled. \\ Memory footprint measurement routines are now available to users; see Section~\ref{sec-lib-misc}, page~\pageref{sec-lib-misc}. \\ The \metis\ compatibility library now provides optionally version~5 of the \metis\ API, in addition to version~3. In the \texttt{6.0} branch of \scotch, version~3 of the API will remain the default. To expose version~5 of the \metis\ API, \scotch\ must be compiled with flag \texttt{SCOTCH\_\lbt METIS\_\lbt VERSION=5} set. In further branches, version~5 of the API may become the default, requiring the \texttt{SCOTCH\_\lbt METIS\_\lbt VERSION=3} flag to be set to expose version~3 of the \metis\ API. \subsection{Changes in version 5.1 from version 5.0} A new integer index type has been created in the Fortran interface, to address array indices larger than the maximum value which can be stored in a regular integer. Please refer to Section~\ref{sec-install-inttypesize} for more information. \\ A new set of routines has been designed, to ease the use of the \libscotch\ as a dynamic library. The \texttt{SCOTCH\_\lbt version} routine returns the version, release and patch level numbers of the library being used. The \texttt{SCOTCH\_\lbt *Alloc} routines, which are only available in the C interface at the time being, dynamically allocate storage space for the opaque API \scotch\ structures, which frees application programs from the need to be systematically recompiled because of possible changes of \scotch\ structure sizes. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_d.tex000066400000000000000000000117151514310134000252670ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_d.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Distribution programmes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Installation} \label{sec-install} Version {\sc \scotchver} of the \scotch\ software package is distributed as free/libre software under the CeCILL-C free/libre software license~\cite{cecill}, which is very similar to the GNU LGPL license. Therefore, it is no longer distributed as a set of binaries, but instead in the form of a source distribution, which can be downloaded from the \scotch\ Inria GitLab repository at \url{https://gitlab.inria.fr/scotch/scotch}~. \\ All \scotch\ users are welcome to send an e-mail to the author so that they can be added to the \scotch\ mailing list, and be automatically informed of new releases and publications. \\ The extraction process will create a {\tt scotch\_\scotchversub} directory, containing several subdirectories and files. Please refer to the files called {\tt LICENSE\_\lbt EN.txt} or {\tt LICENCE\_\lbt FR.txt}, as well as file {\tt INSTALL\_\lbt EN.txt}, to see under which conditions your distribution of \scotch\ is licensed and how to install it. \subsection{Thread issues} To enable the use of POSIX threads in some routines, the {\tt SCOTCH\_\lbt PTHREAD} flag must be set. If your MPI implementation is not thread-safe, make sure this flag is not defined at compile time. \subsection{File compression issues} To enable on-the-fly compression and decompression of various formats, the relevant flags must be defined. These flags are {\tt COMMON\_\lbt FILE\_\lbt COMPRESS\_\lbt BZ2} for {\tt bzip2} (de)compression, {\tt COMMON\_\lbt FILE\_\lbt COMPRESS\_\lbt GZ} for {\tt gzip} (de)compression, and {\tt COMMON\_\lbt FILE\_\lbt COMPRESS\_\lbt LZMA} for {\tt lzma} decompression. Note that the corresponding development libraries must be installed on your system before compile time, and that compressed file handling can take place only on systems which support multi-threading or multi-processing. In the first case, you must set the {\tt COMMON\_\lbt PTHREAD} and {\tt COMMON\_\lbt PTHREAD\_\lbt FILE} flags in order to take advantage of these features. On Linux systems, the development libraries to install are {\tt libbzip2\_1-\lbt devel} for the {\tt bzip2} format, {\tt zlib1-\lbt devel} for the {\tt gzip} format, and {\tt liblzma0-\lbt devel} for the {\tt lzma} format. The names of the libraries may vary according to operating systems and library versions. Ask your system engineer in case of trouble. \subsection{Machine word size issues} \label{sec-install-inttypesize} The integer values handled by \scotch\ are based on the {\tt SCOTCH\_\lbt Num} type, which equates by default to the {\tt int} C type, corresponding to the {\tt INTEGER} Fortran type, both of which being of machine word size. To coerce the length of the {\tt SCOTCH\_\lbt Num} integer type to 32 or 64 bits, one can use the ``{\tt -DINTSIZE32}'' or ``{\tt -DINTSIZE64}'' flags, respectively, or else use the ``{\tt -DINT=}'' definition, at compile time. For instance, adding ``{\tt -DINT=long}'' to the {\tt CFLAGS} variable in the {\tt Makefile.inc} file to be placed at the root of the source tree will make all {\tt SCOTCH\_\lbt Num} integers become {\tt long} C integers. Whenever doing so, make sure to use integer types of equivalent length to declare variables passed to \scotch\ routines from caller C and Fortran procedures. Also, because of API conflicts, the \metis\ compatibility library will not be usable. It is usually safer and cleaner to tune your C and Fortran compilers to make them interpret {\tt int} and {\tt INTEGER} types as 32 or 64 bit values, than to use the aforementioned flags and coerce type lengths in your own code. Fortran users also have to take care of another size issue: since there are no pointers in Fortran~77, the Fortran interface of some routines converts pointers to be returned into integer indices with respect to a given array (e.g. see sections~\ref{sec-lib-func-graphdata}, \ref{sec-lib-func-meshdata} and~\ref{sec-lib-func-geomdata}). For 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type, {\tt SCOTCH\_Idx}. To coerce the length of this index type to 32 or 64 bits, one can use the ``{\tt -DIDXSIZE32}'' or ``{\tt -DIDXSIZE64}'' flags, respectively, or else use the ``{\tt -DIDX=}'' definition, at compile time. For instance, adding ``{\tt -DIDX="long~long"}'' to the {\tt CFLAGS} variable in the {\tt Makefile.inc} file to be placed at the root of the source tree will equate all {\tt SCOTCH\_\lbt Idx} integers to C {\tt long long} integers. By default, when the size of {\tt SCOTCH\_\lbt Idx} is not explicitly defined, it is assumed to be the same as the size of {\tt SCOTCH\_\lbt Num}. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_e.tex000066400000000000000000000135361514310134000252730ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_e.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Exemples d'utilisation % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Examples} \label{sec-examples} This section contains chosen examples destined to show how the programs of the \scotch\ project interoperate and can be combined. It is supposed that the current directory is directory ``\texttt{scotch\_\scotchver}'' of the \scotch\ distribution. Character ``{\tt\bf \%}'' represents the shell prompt. \begin{itemize} \item Partition source graph \texttt{brol.grf} into $7$ parts, and save the result to file \texttt{/tmp/brol.map}. \\ \noi {\tt {\bf\%} echo cmplt 7 > /tmp/k7.tgt\\ {\bf\%} gmap brol.grf /tmp/k7.tgt /tmp/brol.map } \spa \noi This can also be done in a single piped command: \texttt{{\bf\%} echo cmplt 7 | gmap brol.grf - /tmp/brol.map} \spa \noi If compressed data handling is enabled, read the graph as a \texttt{gzip} compressed file, and output the mapping as a \texttt{bzip2} file, on the fly: \texttt{{\bf\%} echo cmplt 7 | gmap brol.grf.gz - /tmp/brol.map.bz2} \item Partition source graph \texttt{brol.grf} into two uneven parts of respective weights $\frac{4}{11}$ and $\frac{7}{11}$, and save the result to file \texttt{/tmp/brol.map}. \\ \noi {\tt {\bf\%} echo cmpltw 2 4 7 > /tmp/k2w.tgt\\ {\bf\%} gmap brol.grf /tmp/k2w.tgt /tmp/brol.map } \spa \noi This can also be done in a single piped command: \texttt{{\bf\%} echo cmpltw 2 4 7 | gmap brol.grf - /tmp/brol.map} \spa \noi If compressed data handling is enabled, use \texttt{gzip} compressed streams on the fly: \texttt{{\bf\%} echo cmpltw 2 4 7 | gmap brol.grf.gz - /tmp/brol.map.gz} \item Map a 32 by 32 bidimensional grid source graph onto a 256-node hypercube, and save the result to file \texttt{/tmp/brol.map}. \\ \noi \texttt{{\bf\%} gmk\_m2 32 32 | gmap - tgt/h8.tgt /tmp/brol.map} \item Build the {\sc VTK} file \texttt{brol.vtk} that contains the display of a source graph the topology and geometry files of which are named \texttt{brol.grf} and \texttt{brol.xyz}, respectively, to be displayed using a visualization software such as \texttt{paraview}. \\ \noi \texttt{{\bf\%} gout -Mn -Ov brol.grf brol.xyz - /tmp/brol.vtk} \spa \noi Although no mapping data is required because of the ``\texttt{-Mn}'' option, note the presence of the dummy input mapping file name ``\texttt{-}'', which is needed to specify the output visualization file name after it. \item Given the topology and geometry files \texttt{brol.grf} and \texttt{brol.xyz} of a source graph, map the graph on a 8 by 8 bidimensional mesh and display the mapping result on a color screen by means of the public-domain \texttt{ghostview} PostScript previewer. \\ \noi \texttt{{\bf\%} gmap brol.grf tgt/m8x8.tgt | gout brol.grf brol.xyz '-Op\{c,f,l\}' | ghostview -} \item Given the topology and geometry files \texttt{brol.grf} and \texttt{brol.xyz} of a source graph, partition the graph into 7 parts and create a VTK file to be displayed using a visualization software such as \texttt{paraview}. \\ \noi \texttt{{\bf\%} gpart 7 brol.grf | gout brol.grf brol.xyz '-Ov' /tmp/brol\_k7.vtk} \item Build a 24-node Cube-Connected-Cycles graph target architecture which will be frequently used. Then, map compressed source file \texttt{brol.grf.gz} onto it, and save the result to file \texttt{/tmp/brol.map}. \\ \noi {\tt {\bf\%} amk\_ccc 3 | acpl - /tmp/ccc3.tgt\\ {\bf\%} gunzip -c brol.grf.gz | gmap - /tmp/ccc3.tgt /tmp/brol.map } \spa \noi To speed up target architecture loading in the future, the decomposition-defined target architecture is compiled by means of \texttt{acpl}. \item Build an architecture graph which is the subgraph of the $8$-node de~Bruijn graph restricted to vertices labeled $1$, $2$, $4$, $5$, $6$, map graph \texttt{brol.grf} onto it, and save the result to file \texttt{/tmp/brol.map}. \\ \noi {\tt {\bf\%} (gmk\_ub2 3; echo 5 1 2 4 5 6) | amk\_grf -L | gmap brol.grf - /tmp/brol.map} \spa \noi Note how the two input streams of program \texttt{amk\_grf} (that is, the de~Bruijn source graph and the five-elements vertex label list) are concatenated into a single stream to be read from the standard input. %% \item %% Output the pattern of the adjacency matrix associated with graph %% \texttt{brol.grf.gz} to the encapsulated PostScript file %% \texttt{brol\_pattern.ps}. %% \\ %% \noi %% {\tt %% {\bf\%} gunzip -c brol.grf.gz | gout - - - -Gn -Mn '-Om\{e\}' %% brol\_pattern.ps} %% \item %% Output the pattern of the factored reordered matrix associated with graph %% \texttt{brol.grf} to the encapsulated PostScript file \texttt{brol\_\lbt pattern.ps}. %% \\ %% \noi %% {\tt %% {\bf\%} gord brol.grf -F- /dev/null | gout brol.grf - - -Gn -Mn '-Om\{e\}' brol\_\lbt pattern.ps} \item Compile and link the user application \texttt{brol.c} with the \libscotch\ library, using the default error handler. \\ \noi {\tt {\bf\%} cc brol.c -o brol -lscotch -lscotcherr -lm} \spa \noi Note that the mathematical library should also be included, after all of the \scotch\ libraries. \item Recompile a program that used \metis\ so that it uses \scotch\ instead. \\ \noi {\tt {\bf\%} cc brol.c -o brol -I\$\{metisdir\} -lscotchmetis -lscotch -lscotcherr -lmetis -lm} \spa \noi Note that the ``\texttt{-lscotch\lbt metis}'' option must be placed before the ``\texttt{-lmetis}'' one, so that routines that are redefined by \scotch\ are selected instead of their \metis\ counterpart. When no other \metis\ routines than the ones redefined by \scotch\ are used, the ``\texttt{-lmetis}'' option can be omitted. The ``\texttt{-I\$\{metisdir\}}'' option may be necessary to provide the path to the original \texttt{metis.h} include file, which contains the prototypes of all of the \metis\ routines. \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f.tex000066400000000000000000001011701514310134000252640ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_f.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Formats de fichiers 6.0 % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Files and data structures} \label{sec-file} For the sake of portability, readability, and reduction of storage space, all the data files shared by the different programs of the \scotch\ project are coded in plain ASCII text exclusively. Although we may speak of ``lines'' when describing file formats, text-formatting characters such as newlines or tabulations are not mandatory, and are not taken into account when files are read. They are only used to provide better readability and understanding. Whenever numbers are used to label objects, and unless explicitely stated, \textbf{numberings always start from zero}, not one. \subsection{Graph files} \label{sec-file-sgraph} Graph files, which usually end in ``\texttt{\@.grf}'' or ``\texttt{\@.src}'', describe valuated graphs, which can be valuated process graphs to be mapped onto target architectures, or graphs representing the adjacency structures of matrices to order. Graphs are represented by means of adjacency lists: the definition of each vertex is accompanied by the list of all of its neighbors, i.e. all of its adjacent arcs. Therefore, the overall number of edge data is twice the number of edges. \\ Since version \textsc{3.3} has been introduced a new file format, referred to as the ``new-style'' file format, which replaces the previous, ``old-style'', file format. The two advantages of the new-style format over its predecessor are its greater compacity, which results in shorter I/O times, and its ability to handle easily graphs output by C or by Fortran programs. Starting from version \textsc{4.0}, only the new format is supported. To convert remaining old-style graph files into new-style graph files, one should get version \textsc{3.4} of the \scotch\ distribution, which comprises the \texttt{scv} file converter, and use it to produce new-style \scotch\ graph files from the old-style \scotch\ graph files which it is able to read. See section~\ref{sec-prog-gcv} for a description of \texttt{gcv}, formerly called \texttt{scv}. \\ The first line of a graph file holds the graph file version number, which is currently~\texttt{0}. The second line holds the number of vertices of the graph (referred to as \texttt{vertnbr} in \libscotch; see for instance Figure~\ref{fig-lib-graf-one}, page~\pageref{fig-lib-graf-one}, for a detailed example), followed by its number of arcs (unappropriately called \texttt{edgenbr}, as it is in fact equal to twice the actual number of edges). The third line holds two figures: the graph base index value (\texttt{baseval}), and a numeric flag. The graph base index value records the value of the starting index used to describe the graph; it is usually $0$ when the graph has been output by C programs, and $1$ for Fortran programs. Its purpose is to ease the manipulation of graphs within each of these two environments, while providing compatibility between them. The numeric flag, similar to the one used by the \chaco\ graph format~\cite{hele93c}, is made of three decimal digits. A non-zero value in the units indicates that vertex weights are provided. A non-zero value in the tenths indicates that edge weights are provided. A non-zero value in the hundredths indicates that vertex labels are provided; if it is the case, vertices can be stored in any order in the file; else, natural order is assumed, starting from the graph base index. This header data is then followed by as many lines as there are vertices in the graph, that is, \texttt{vertnbr} lines. Each of these lines begins with the vertex label, if necessary, the vertex load, if necessary, and the vertex degree, followed by the description of the arcs. An arc is defined by the load of the edge, if necessary, and by the label of its other end vertex. The arcs of a given vertex can be provided in any order in its neighbor list. If vertex labels are provided, vertices can also be stored in any order in the file. Figure~\ref{fig-file-sgraph} shows the contents of a graph file modeling a cube with unity vertex and edge weights and base $0$. \begin{figure}[hbt] \begin{center} \begin{minipage}{7.3cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 0 8 24 0 000 3 4 2 1 3 5 3 0 3 6 0 3 3 7 1 2 3 0 6 5 3 1 7 4 3 2 4 7 3 3 5 6 \end{verbatim}} \end{minipage} \end{center} \caption{Graph file representing a cube.} \label{fig-file-sgraph} \end{figure} \subsection{Mesh files} \label{sec-file-smesh} Mesh files, which usually end in ``\texttt{\@.msh}'', describe valuated meshes, made of elements and nodes, the elements of which can be mapped onto target architectures, and the nodes of which can be reordered. Meshes are bipartite graphs, in the sense that every element is connected to the nodes that it comprises, and every node is connected to the elements to which it belongs. No edge connects any two element vertices, nor any two node vertices. One can also think of meshes as hypergraphs, such that nodes are the vertices of the hypergraph and elements are hyper-edges which connect multiple nodes, or reciprocally such that elements are the vertices of the hypergraph and nodes are hyper-edges which connect multiple elements. Since meshes are graphs, the structure of mesh files resembles very much the one of graph files described above in section~\ref{sec-file-sgraph}, and differs only by its header, which indicates which of the vertices are node vertices and element vertices. \\ The first line of a mesh file holds the mesh file version number, which is currently~\texttt{1}. Graph and mesh version numbers will always differ, which enables application programs to accept both file formats and adapt their behavior according to the type of input data. The second line holds the number of elements of the mesh (\texttt{velmnbr}), followed by its number of nodes (\texttt{vnodnbr}), and its overall number of arcs (\texttt{edgenbr}, that is, twice the number of edges which connect elements to nodes and vice-versa). The third line holds three figures: the base index of the first element vertex in memory (\texttt{velmbas}), the base index of the first node vertex in memory (\texttt{vnodbas}), and a numeric flag. The \scotch\ mesh file format requires that all nodes and all elements be assigned to contiguous ranges of indices. Therefore, either all element vertices are defined before all node vertices, or all node vertices are defined before all element vertices. The node and element base indices indicate at the same time whether elements or nodes are put in the first place, as well as the value of the starting index used to describe the graph. Indeed, if $\mbox{\texttt{velm}}\-\mbox{\texttt{bas}} < \mbox{\texttt{vnod}}\-\mbox{\texttt{bas}}$, then elements have the smallest indices, \texttt{velmbas} is the base value of the underlying graph (that is, \texttt{baseval} = \texttt{velmbas}), and $\mbox{\texttt{velmbas}} + \mbox{\texttt{velmnbr}} = \mbox{\texttt{vnodbas}}$ holds. Conversely, if $\mbox{\texttt{velm}}\-\mbox{\texttt{bas}} > \mbox{\texttt{vnod}}\-\mbox{\texttt{bas}}$, then nodes have the smallest indices, \texttt{vnodbas} is the base value of the underlying graph, (that is, \texttt{baseval} = \texttt{vnodbas}), and $\mbox{\texttt{vnodbas}} + \mbox{\texttt{vnodnbr}} = \mbox{\texttt{velmbas}}$ holds. The numeric flag, similar to the one used by the \chaco\ graph format~\cite{hele93c}, is made of three decimal digits. A non-zero value in the units indicates that vertex weights are provided. A non-zero value in the tenths indicates that edge weights are provided. A non-zero value in the hundredths indicates that vertex labels are provided; if it is the case, and if $\mbox{\texttt{velm}}\-\mbox{\texttt{bas}} < \mbox{\texttt{vnod}}\-\mbox{\texttt{bas}}$ (resp\@. $\mbox{\texttt{velm}}\-\mbox{\texttt{bas}} > \mbox{\texttt{vnod}}\-\mbox{\texttt{bas}}$), the \texttt{velmnbr} (resp\@. \texttt{vnodnbr}) first vertex lines are assumed to be element (resp\@. node) vertices, irrespective of their vertex labels, and the \texttt{vnodnbr} (resp\@. \texttt{velmnbr}) remaining vertex lines are assumed to be node (resp\@. element) vertices; else, natural order is assumed, starting at the underlying graph base index (\texttt{baseval}). This header data is then followed by as many lines as there are node and element vertices in the graph. These lines are similar to the ones of the graph format, except that, in order to save disk space, the numberings of nodes and elements all start from the same base value, that is, $\min(\mbox{\texttt{velm}}\-\mbox{\texttt{bas}}, \mbox{\texttt{vnod}}\-\mbox{\texttt{bas}})$ (also called \texttt{baseval}, like for regular graphs). For example, Figure~\ref{fig-file-smesh} shows the contents of the mesh file modeling three square elements, with unity vertex and edge weights, elements defined before nodes, and numbering of the underlying graph starting from $1$. In memory, the three elements are labeled from $1$ to $3$, and the eight nodes are labeled from $4$ to $11$. In the file, the three elements are still labeled from $1$ to $3$, while the eight nodes are labeled from $1$ to $8$. When labels are used, elements and nodes may have similar labels, but not two elements, nor two nodes, should have the same labels. \begin{figure}[hbt] \begin{center} \includegraphics[scale=0.65]{s_f_msf.eps} \hfil ~\hfil \begin{minipage}[b]{7cm} \verb+1+ \noi \verb+3 8 24+ \noi \verb+1 4 000+ \verb+4 2 +\makebox[0em][l]{\tiny (= 5)}\verb+ 8 +\makebox[0em][l]{\tiny (= 11)}\verb+ 4 +\makebox[0em][l]{\tiny (= 7)}\verb+ 3 +\makebox[0em][l]{\tiny (= 6)} \noi \verb+4 7 +\makebox[0em][l]{\tiny (= 10)}\verb+ 2 +\makebox[0em][l]{\tiny (= 5)}\verb+ 8 +\makebox[0em][l]{\tiny (= 11)}\verb+ 1 +\makebox[0em][l]{\tiny (= 4)} \noi \verb+4 5 +\makebox[0em][l]{\tiny (= 8)}\verb+ 6 +\makebox[0em][l]{\tiny (= 9)}\verb+ 3 +\makebox[0em][l]{\tiny (= 6)}\verb+ 4 +\makebox[0em][l]{\tiny (= 7)} \noi \verb+1 2+ \noi \verb+2 2 1+ \noi \verb+2 1 3+ \noi \verb+2 1 3+ \noi \verb+1 3+ \noi \verb+1 3+ \noi \verb+1 2+ \noi \verb+2 2 1+ %\begin{verbatim} %1 %3 8 24 %1 4 000 %4 5 11 7 6 %4 10 5 11 4 %4 8 9 6 7 %1 2 %2 2 1 %2 1 3 %2 1 3 %1 3 %1 3 %1 2 %2 2 1 %\end{verbatim} \end{minipage} \end{center} \caption{Mesh file representing three square elements, with unity vertex and edge weights. Elements are defined before nodes, and numbering of the underlying graph starts from $1$. The left part of the figure shows the mesh representation in memory, with consecutive element and node indices. The right part of the figure shows the contents of the file, with both element and node numberings starting from $1$, the minimum of the element and node base values. Corresponding node indices in memory are shown in parentheses for the sake of comprehension.} \label{fig-file-smesh} \end{figure} \subsection{Geometry files} \label{sec-file-geom} Geometry files, which usually end in ``\texttt{\@.xyz}'', hold the coordinates of the vertices of their associated graph or mesh. These files are not used in the mapping process itself, since only topological properties are taken into account then (mappings are computed regardless of graph geometry). They are used by visualization programs to compute graphical representations of mapping results. The first string to appear in a geometry file codes for its type, or dimensionality. It is ``\texttt{1}'' if the file contains unidimensional coordinates, ``\texttt{2}'' for bidimensional coordinates, and ``\texttt{3}'' for tridimensional coordinates. It is followed by the number of coordinate data stored in the file, which should be at least equal to the number of vertices of the associated graph or mesh, and by that many coordinate lines. Each coordinate line holds the label of the vertex, plus one, two or three real numbers which are the (X), (X,Y), or (X,Y,Z), coordinates of the graph vertices, according to the graph dimensionality. \\ Vertices can be stored in any order in the file. Moreover, a geometry file can have more coordinate data than there are vertices in the associated graph or mesh file; only coordinates the labels of which match labels of graph or mesh vertices will be taken into account. This feature allows all subgraphs of a given graph or mesh to share the same geometry file, provided that graph vertex labels remain unchanged. For example, Figure~\ref{fig-file-geom} shows the contents of the 3D~geometry file associated with the graph of Figure~\ref{fig-file-sgraph}. \begin{figure}[hbt] \begin{center} \begin{minipage}{4.6cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 3 8 0 0.0 0.0 0.0 1 0.0 0.0 1.0 2 0.0 1.0 0.0 3 0.0 1.0 1.0 4 1.0 0.0 0.0 5 1.0 0.0 1.0 6 1.0 1.0 0.0 7 1.0 1.0 1.0 \end{verbatim} }\end{minipage} \end{center} \caption{Geometry file associated with the graph file of Figure~\protect\ref{fig-file-sgraph}.} \label{fig-file-geom} \end{figure} \subsection{Target files} \label{sec-file-target} Target files describe the architectures onto which source graphs are mapped. Instead of containing the structure of the target graph itself, as source graph files do, target files define how target graphs are bipartitioned and give the distances between all pairs of vertices (that is, processors). Keeping the bipartitioning information within target files avoids recomputing it every time a target architecture is used. We are allowed to do so because, in our approach, the recursive bipartitioning of the target graph is fully independent with respect to that of the source graph (however, the opposite is false). For space and time saving issues, some classical homogeneous architectures (2D and 3D meshes and tori, hypercubes, complete graphs, etc\@.) have been algorithmically coded within the mapper itself by the means of built-in functions. Instead of containing the whole graph decomposition data, their target files hold only a few values, used as parameters by the built-in functions. \subsubsection{Decomposition-defined architecture files} \label{sec-file-target-deco} Decomposition-defined architecture files are the way to describe irregular target architectures that cannot be represented as algorithmically-coded architectures. Two main file formats coexist: the ``\texttt{deco 0}'' and ``\texttt{deco 2}'' formats. ``\texttt{deco}'' stands for ``decomposition-defined architecture'', followed by the format number. The ``\texttt{deco 1}'' format is a compiled form of the ``\texttt{deco 0}'' format, which we will not describe here as it is not meant to be handled by users. The ``\texttt{deco 0}'' header is followed by two integer numbers, which are the number of processors and the largest terminal number used in the decomposition, respectively. Two arrays follow. The first array has as many lines as there are processors. Each of these lines holds three numbers: the processor label, the processor weight (that is an estimation of its computational power), and its terminal number. The terminal number associated with every processor is obtained by giving the initial domain holding all the processors number $1$, and by numbering the two subdomains of a given domain of number $i$ with numbers $2i$ and $2i+1$. The second array is a lower triangular diagonal-less matrix that gives the distance between all pairs of processors. This distance matrix, combined with the decomposition tree coded by terminal numbers, allows the evaluation by averaging of the distance between all pairs of domains. In order for the mapper to behave properly, distances between processors must be strictly positive numbers. Therefore, null distances are not accepted. For instance, Figure~\ref{fig-file-targetdeco} shows the contents of the architecture decomposition file for $\UB(2,3)$, the binary de~Bruijn graph of dimension~$3$, as computed by the \texttt{amk\_grf} program. \begin{figure}[hbt] \begin{tabular}{p{0.69\linewidth}@{}p{0.29\linewidth}} \begin{center} \parbox[t]{0.9\linewidth}{\vspace{0pt}\includegraphics[width=0.7\linewidth]{s_f_d.ps}} \end{center} & \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} deco 0 8 15 0 1 15 1 1 14 2 1 13 3 1 11 4 1 12 5 1 9 6 1 8 7 1 10 1 2 1 2 1 2 1 1 1 2 3 2 1 1 2 2 2 2 1 1 1 3 2 3 1 2 2 1 \end{verbatim} } \end{center} \end{tabular} \caption{Target decomposition file for $\UB(2,3)$. The terminal numbers associated with every processor define a unique recursive bipartitioning of the target graph.} \label{fig-file-targetdeco} \end{figure} The ``\texttt{deco 2}'' format was created so as to represent bigger target architectures. Indeed, the distance matrix of the ``\texttt{deco 0}'' format is quadratic in the number of target vertices, which is not scalable and prevents users from representing target architectures bigger than a few thousand vertices. In the ``\texttt{deco 2}'' architecture, distances are computed using in a multilevel representation of the target graph, in the form of a family of coarser graphs. Hence, the more distant the vertices are, the coarsest is the graph to be used to estimate this distance~\cite{pellegrini:hal-01671156}. The vertices and edges of these graphs encode their respective cost of traversal, which becomes less accurate as coarser graphs are used. \subsubsection{Algorithmically-coded architecture files} \label{sec-file-target-algo} Almost all algorithmically-coded architectures are defined with unity edge and vertex weights. They start with an abbreviation name of the architecture, followed by parameters specific to the architecture. The available built-in architecture definitions are listed below. \begin{itemize} \iteme[{\texttt{cmplt} {\it size}}] Defines a complete graph with $\mathit{size}$ vertices. Its vertex labels are numbers between $0$ and $\mathit{size} - 1$. %% \iteme[{\texttt{cmpltw} {\it size} {\it load$_0$} {\it load$_1$} \ldots\ {\it load$_{\mathit{size} - 1}$}}] Defines a weighted complete graph with {\it size\/} vertices. Its vertex labels are numbers between $0$ and $\mathit{size} - 1$, and vertices are assigned integer weights in the order in which these are provided. %% \iteme[{\texttt{hcub} $\mathit{dim}$}] Defines a binary hypercube of dimension $\mathit{dim}$. Graph vertices are numbered according to the value of the binary representation of their coordinates in the hypercube. %% \iteme[{\texttt{ltleaf} \parbox[t]{11cm}{$\mathit{levlnbr}$ $\mathit{sizeval}_0$ $\mathit{linkval}_0$ \ldots\ $\mathit{sizeval}_{\mathit{levlnbr}-1}$ $\mathit{linkval}_{\mathit{levlnbr}-1}$ \\ $\mathit{permnbr}$ $\mathit{permval}_0$ \ldots\ $\mathit{permval}_{\mathit{permnbr}-1}$}}] \label{sec-file-target-ltleaf} The \texttt{ltleaf} (for ``\textit{labeled tree-leaf}'') architecture is an extended tree-leaf architecture (\texttt{tleaf}, see below) which models target topologies where cores are not labeled in increasing order. \\ The tree structure of the architecture is described just like for a regular \texttt{tleaf} architecture. $\mathit{permnbr}$ is the length of the permutation that is used to label cores, followed by this number of permutation indices, ranging between $0$ and $(\mathit{permnbr}-1)$. Figure~\ref{fig-file-targetltleaf} presents an example of such an architecture. \\ The permutation array must be of a size that matches level boundaries. Alternatively, a permutation of size $1$, with only index $0$ given, represents the identity permutation. In this case, the regular \texttt{tleaf} architecture can be used. \begin{figure}[hbt] \begin{center} \begin{minipage}[b]{6cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} ltleaf 3 32 10 2 5 4 1 8 0 2 4 6 1 3 5 7 \end{verbatim} }\end{minipage} \end{center} \caption{Labeled tree-leaf architecture with $3$ levels, representing a system with $32$ nodes of $2$ quad-core processors. Inter-node communication costs $10$, inter-processor communication within the same node costs $5$ and inter-core communication within the same processor costs $1$. Within a $8$-core node, cores are labeled such that cores $0$, $2$, $4$ and $6$ are located on the first processor, while cores $1$, $3$, $5$ and $7$ are located on the second processor.} \label{fig-file-targetltleaf} \end{figure} %% \iteme[{\texttt{mesh2D} {\it dim$_X$} {\it dim$_Y$}}] Defines a bidimensional array of {\it dim$_X$} columns by {\it dim$_Y$} rows. The vertex with coordinates $(\mathit{pos_X},\mathit{pos_Y})$ has label $\mathit{pos_X} + \mathit{pos_Y} \times \mathit{dim_X}$. %% \iteme[{\texttt{mesh3D} {\it dim$_X$} {\it dim$_Y$} {\it dim$_Z$}}] Defines a tridimensional array of {\it dim$_X$} columns by {\it dim$_Y$} rows by {\it dim$_Z$} levels. The vertex with coordinates ($\mathit{pos_X},\mathit{pos_Y},\mathit{pos_Z}$) has label $\mathit{pos_X} + \mathit{pos_Y} \mathit{dim_X} + \mathit{pos_Z} \mathit{dim_X} \mathit{dim_Y}$. %% \iteme[{\texttt{meshXD} {\it ndims} {\it dim$_0$} {\it dim$_1$} \ldots {\it dim$_{(ndims - 1)}$}}] Generalization of the \texttt{mesh2D} and \texttt{mesh3D} architectures. Defines a \textit{ndims}-dimensional array of dimensions \textit{dim$_0$}, \textit{dim$_1$} \ldots \textit{dim$_{ndims - 1}$}. The vertex with coordinates ($\mathit{pos_0},\mathit{pos_1},\ldots,\mathit{pos_{ndims - 1}}$) has label $\mathit{pos_0} + \sum_{d=1}^{ndims - 1}\left(\mathit{pos_d} \prod_{d'=0}^{d-1}\mathit{dim_{d'}}\right)$. %% \iteme[{\texttt{sub} $\mathit{termnbr}$ $\mathit{termnum}_0$ $\mathit{termnum}_1$ \ldots\ $\mathit{termnum}_{\mathit{termnbr}-1}$ $\mathit{architecture}$}] Defines a sub-architecture of another \textit{architecture}. The sub-architecture contains $\mathit{termnbr}$ vertices, which have ranks $\mathit{termnum}_0$, $\mathit{termnum}_1$, \ldots\ $\mathit{termnum}_{\mathit{termnbr}-1}$ in the prescribed, original $\mathit{architecture}$. The original architecture must comprise at least $\mathit{termnbr}$ vertices, and thus cannot be a variable-sized architecture. The order in which vertex numbers are provided defines the part indices that will be used as output mapping data. For instance, in the example shown in Figure~\ref{fig-file-targetsub}, source vertices that are assigned to vertex $3$ of the sub-architecture are in fact assigned to vertex $5$ of the original, 2D mesh architecture, according to its canonical numbering. \begin{figure}[hbt] \begin{tabular}{p{0.69\linewidth}@{}p{0.29\linewidth}} \begin{center} \parbox[t]{0.9\linewidth}{\vspace{0pt}\includegraphics[width=0.7\linewidth]{m42_a1}} \end{center} & \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} sub 5 0 4 1 5 7 mesh2D 4 2 \end{verbatim} } \end{center} \end{tabular} \caption{Sub-architecture of a 4x2 \texttt{mesh2D} 2D grid architecture. The sub-architecture comprises $5$ vertices, numbered from $0$ to $4$, which correspond to vertices $0$, $4$, $1$, $5$ and $7$ of the original architecture, respectively.} \label{fig-file-targetsub} \end{figure} %% \iteme[{\texttt{tleaf} $\mathit{levlnbr}$ $\mathit{sizeval}_0$ $\mathit{linkval}_0$ \ldots\ $\mathit{sizeval}_{\mathit{levlnbr}-1}$ $\mathit{linkval}_{\mathit{levlnbr}-1}$}] Defines a hierarchical, tree-shaped, architecture with $\mathit{levlnbr}$ levels and $\sum_{i=0}^{\mathit{levlnbr}-1}\mathit{sizeval}_i$ leaf vertices. This topology is used to model hierarchical NUMA or NUIOA machines. The mapping is only computed with respect to the leaf vertices, which represent processing elements, while the upper levels of the tree model interconnection networks (intra-chip buses, inter-chip interconnection networks, network routers, etc.), as exemplified in Figure~\ref{fig-graf-treeleaf}. The communication cost between two nodes is the cost of the highest common ancestor level. \begin{figure}[hbt] \begin{tabular}{p{0.69\linewidth}@{}p{0.29\linewidth}} \begin{center} \parbox[t]{0.9\linewidth}{\vspace{0pt}\includegraphics[width=0.95\linewidth]{s_f_lea.eps}} \end{center} & \begin{center} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} tleaf 3 3 20 2 7 2 2 \end{verbatim} } \end{center} \end{tabular} \caption{A ``tree-leaf'' graph with three levels. Processors are drawn in black and routers in grey. It has $3$ levels, the first level has $3$ sons and a traversal cost of $20$, the second level has $2$ sons and a traversal cost of $7$, and the third level has also $2$ sons and a traversal cost of $2$.} \label{fig-graf-treeleaf} \end{figure} %% \iteme[{\texttt{torus2D} {\it dim$_X$} {\it dim$_Y$}}] Defines a bidimensional array of {\it dim$_X$} columns by {\it dim$_Y$} rows, with wraparound edges. The vertex with coordinates $(\mathit{pos_X},\mathit{pos_Y})$ has label $\mathit{pos_X} + \mathit{pos_Y} \times \mathit{dim_X}$. %% \iteme[{\texttt{torus3D} {\it dim$_X$} {\it dim$_Y$} {\it dim$_Z$}}] Defines a tridimensional array of {\it dim$_X$} columns by {\it dim$_Y$} rows by {\it dim$_Z$} levels, with wraparound edges. The vertex with coordinates $(\mathit{pos_X},\mathit{pos_Y},\mathit{pos_Z})$ has label $\mathit{pos_X} + \mathit{pos_Y} \mathit{dim_X} + \mathit{pos_Z} \mathit{dim_X} \mathit{dim_Y}$. %% \iteme[{\texttt{torusXD} {\it ndims} {\it dim$_0$} {\it dim$_1$} \ldots {\it dim$_{ndims - 1}$}}] Generalization of the \texttt{torus2D} and \texttt{torus3D} architectures. Defines a \textit{ndims}-dimensional torus of dimensions \textit{dim$_0$}, \textit{dim$_1$} \ldots \textit{dim$_{ndims - 1}$}. The vertex with coordinates ($\mathit{pos_0},\mathit{pos_1},\ldots,\mathit{pos_{(ndims - 1)}}$) has label $\mathit{pos_0} + \sum_{d=1}^{ndims - 1}\left(\mathit{pos_d} \prod_{d'=0}^{d-1}\mathit{dim_{d'}}\right)$. \end{itemize} \subsubsection{Variable-sized architecture files} \label{sec-file-target-variable} \index{Clustering} Variable-sized architectures are a class of algorithmically-coded architectures the size of which is not defined {\it a priori}. Domains of these target architectures can always be bipartitioned, again and again (until integer overflow occurs in domain indices). These architectures are used to perform graph clustering (see Sections~\ref{sec-prog-gmap} and~\ref{sec-lib-func-graphmap}), using a specifically tailored graph mapping strategy (see for instance Section~\ref{sec-lib-func-stratgraphclusterbuild}). As for fixed-size algorithmically-coded architectures, they start with an abbreviation name of the architecture, followed by parameters specific to the architecture. The available built-in variable-sized architecture definitions are listed below. \begin{itemize} \iteme[{\texttt{varcmplt}}] Defines a variable-sized complete graph. Domains are labeled such that the first domain is labeled $1$, and the two subdomains of any domain $i$ are labeled $2i$ and $2i + 1$. The distance between any two subdomains $i$ and $j$ is $0$ if $i=j$ and $1$ else. \iteme[{\texttt{varhcub}}] Defines a variable-sized hypercube. Domains are labeled such that the first domain is labeled $1$, and the two subdomains of any domain $i$ are labeled $2i$ and $2i + 1$. The distance between any two domains is the Hamming distance between the common bits of the two domains, plus half of the absolute difference between the levels of the two domains, this latter term modeling the average distance on unknown bits. For instance, the distance between subdomain $9=1001_B$, of level $3$ (since its leftmost $1$ has been shifted left thrice), and subdomain $53=110101_B$, of level $5$ (since its leftmost $1$ has been shifted left five times), is equal to $2$: it is $1$, which is the number of bits which differ between $1101_B$ (that is, $53=110101_B$ shifted rightwards twice) and $1001_B$, plus $1$, which is half of the absolute difference between $5$ and $3$. \end{itemize} \subsection{Mapping files} \label{sec-file-map} Mapping files, which usually end in ``\texttt{\@.map}'', contain the result of the mapping of source graphs onto target architectures. They associate a vertex of the target graph with every vertex of the source graph. Mapping files begin with the number of mapping lines which they contain, followed by that many mapping lines. Each mapping line holds a mapping pair, made of two integer numbers which are the label of a source graph vertex and the label of the target graph vertex onto which it is mapped. Mapping pairs can be stored in any order in the file; however, labels of source graph vertices must be all different. For example, Figure~\ref{fig-file-mapping} shows the result obtained when mapping the source graph of Figure~\ref{fig-file-sgraph} onto the target architecture of Figure~\ref{fig-file-targetdeco}. This one-to-one embedding of $\HY(3)$ into $\UB(2,3)$ has dilation~$1$, except for one hypercube edge which has dilation~$3$. \begin{figure}[hbt] \begin{center} \begin{minipage}{3cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} 8 0 1 1 3 2 2 3 5 4 0 5 7 6 4 7 6 \end{verbatim} }\end{minipage} \end{center} \caption{Mapping file obtained when mapping the hypercube source graph of Figure~\protect\ref{fig-file-sgraph} onto the binary de~Bruijn architecture of Figure~\protect\ref{fig-file-targetdeco}.} \label{fig-file-mapping} \end{figure} Mapping files are also used on output of the block orderer to represent the allocation of the vertices of the original graph to the column blocks associated with the ordering. In this case, column blocks are labeled in ascending order, such that the number of a block is always greater than the ones of its predecessors in the elimination process, that is, its leaves in the elimination tree. \subsection{Ordering files} \label{sec-file-ord} Ordering files, which usually end in ``\texttt{\@.ord}'', contain the result of the ordering of source graphs or meshes that represent sparse matrices. They associate a number with every vertex of the source graph or mesh. The structure of ordering files is analogous to the one of mapping files; they differ only by the meaning of their data. Ordering files begin with the number of ordering lines which they contain, that is the number of vertices in the source graph or the number of nodes in the source mesh, followed by that many ordering lines. Each ordering line holds an ordering pair, made of two integer numbers which are the label of a source graph or mesh vertex and its rank in the ordering. Ranks range from the base value of the graph or mesh (\texttt{baseval}) to the base value plus the number of vertices (resp\@. nodes), minus one ($\mbox{\texttt{baseval}} + \mbox{\texttt{vertnbr}} - 1$ for graphs, and $\mbox{\texttt{baseval}} + \mbox{\texttt{vnodnbr}} - 1$ for meshes). Ordering pairs can be stored in any order in the file; however, indices of source vertices must be all different. For example, Figure~\ref{fig-file-ordering} shows the result obtained when reordering the source graph of Figure~\ref{fig-file-sgraph}. \begin{figure}[hbt] \begin{center} \begin{minipage}{3cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize\tt \begin{verbatim} 8 0 6 1 3 2 2 3 7 4 1 5 5 6 4 7 0 \end{verbatim} }\end{minipage} \end{center} \caption{Ordering file obtained when reordering the hypercube graph of Figure~\protect\ref{fig-file-sgraph}.} \label{fig-file-ordering} \end{figure} The advantage of having both graph and mesh orderings start from \texttt{baseval} (and not \texttt{vnodbas} in the case of meshes) is that an ordering computed on the nodal graph of some mesh has the same structure as an ordering computed from the native mesh structure, allowing for greater modularity. However, in memory, permutation indices for meshes are numbered from \texttt{vnodbas} to $\mbox{\texttt{vnodbas}} + \mbox{\texttt{vnodnbr}} - 1$. \subsection{Vertex list files} Vertex lists are used by programs that select vertices from graphs. Vertex lists are coded as lists of integer numbers. The first integer is the number of vertices in the list and the other integers are the labels of the selected vertices, given in any order. For example, Figure~\ref{fig-file-vertex} shows the list made from three vertices of labels $2$, $45$, and $7$. \begin{figure}[hbt] \begin{center} \begin{minipage}{3cm} {\renewcommand{\baselinestretch}{1.05} \footnotesize \tt \begin{verbatim} 3 2 45 7 \end{verbatim}} \end{minipage} \end{center} \caption{Example of vertex list with three vertices of labels~$2$, $45$, and~$7$.} \label{fig-file-vertex} \end{figure} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_cnt.eps000066400000000000000000000126141514310134000261230ustar00rootroot00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Title: s_f_cnt.fig %%Creator: fig2dev Version 3.2 Patchlevel 5d %%CreationDate: Mon Sep 16 12:34:10 2019 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 459 258 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 258 moveto 0 0 lineto 459 0 lineto 459 258 lineto closepath clip newpath -134.1 324.7 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 7905 3525 m 7800 3525 7800 4620 105 arcto 4 {pop} repeat 7800 4725 9195 4725 105 arcto 4 {pop} repeat 9300 4725 9300 3630 105 arcto 4 {pop} repeat 9300 3525 7905 3525 105 arcto 4 {pop} repeat cp gs col0 s gr /Times-Roman ff 266.67 scf sf 8025 3900 m gs 1 -1 sc (Threads) col0 sh gr /Times-Roman ff 266.67 scf sf 8025 4275 m gs 1 -1 sc (Random) col0 sh gr /Times-Roman ff 266.67 scf sf 8025 4500 m gs 1 -1 sc (generator) col0 sh gr % Arc gs clippath 8476 3406 m 8526 3549 l 8583 3529 l 8533 3386 l 8533 3386 l 8545 3510 l 8476 3406 l cp eoclip n 6164.9 4294.8 2506.3 -95.4919 -17.8868 arc gs col0 s gr gr % arrowhead n 8476 3406 m 8545 3510 l 8533 3386 l 8476 3406 l cp gs 0.00 setgray ef gr col0 s % Arc gs clippath 3154 3385 m 3117 3532 l 3175 3546 l 3212 3399 l 3212 3399 l 3154 3509 l 3154 3385 l cp eoclip n 5772.4 4106.8 2686.2 -86.7434 -167.4903 arcn gs col0 s gr gr % arrowhead n 3154 3385 m 3154 3509 l 3212 3399 l 3154 3385 l cp gs 0.00 setgray ef gr col0 s % Polyline n 2430 3525 m 2325 3525 2325 4920 105 arcto 4 {pop} repeat 2325 5025 3870 5025 105 arcto 4 {pop} repeat 3975 5025 3975 3630 105 arcto 4 {pop} repeat 3975 3525 2430 3525 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 5205 1125 m 5100 1125 5100 2520 105 arcto 4 {pop} repeat 5100 2625 6645 2625 105 arcto 4 {pop} repeat 6750 2625 6750 1230 105 arcto 4 {pop} repeat 6750 1125 5205 1125 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 5250 1275 m 6600 1275 l 6600 1575 l 5250 1575 l cp gs col0 s gr % Polyline [60] 0 sd n 5175 1200 m 6675 1200 l 6675 2025 l 5175 2025 l cp gs col0 s gr [] 0 sd % Polyline n 5250 1650 m 6600 1650 l 6600 1950 l 5250 1950 l cp gs col0 s gr /Times-Roman ff 266.67 scf sf 2550 4800 m gs 1 -1 sc (etc.) col0 sh gr /Times-Roman ff 266.67 scf sf 6900 1425 m gs 1 -1 sc (Context container) col0 sh gr /Times-Roman ff 266.67 scf sf 4125 3825 m gs 1 -1 sc (Graph) col0 sh gr /Times-Roman ff 266.67 scf sf 6750 3825 m gs 1 -1 sc (Context) col0 sh gr % here ends figure; % % here starts figure with depth 20 /Courier ff 266.67 scf sf 2550 3900 m gs 1 -1 sc (vertnbr) col0 sh gr /Courier ff 266.67 scf sf 2550 4200 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 266.67 scf sf 2550 4500 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 266.67 scf sf 2250 5325 m gs 1 -1 sc (SCOTCH_Graph) col0 sh gr /Courier ff 266.67 scf sf 7500 5025 m gs 1 -1 sc (SCOTCH_Context) col0 sh gr /Courier ff 266.67 scf sf 5025 2925 m gs 1 -1 sc (SCOTCH_Graph) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_cnt.fig000066400000000000000000000031511514310134000260750ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5b Landscape Center Inches Letter 100.00 Single 0 1200 2 5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 6164.864 4294.773 5925 1800 7050 1950 8550 3525 1 1 1.00 60.00 120.00 5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 5772.406 4106.840 5925 1425 4875 1575 3150 3525 1 1 1.00 60.00 120.00 6 7800 3525 9300 4725 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 9300 4725 9300 3525 7800 3525 7800 4725 9300 4725 4 0 0 50 -1 0 16 0.0000 4 195 915 8025 3900 Threads\001 4 0 0 50 -1 0 16 0.0000 4 195 945 8025 4275 Random\001 4 0 0 50 -1 0 16 0.0000 4 225 1065 8025 4500 generator\001 -6 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 3975 5025 3975 3525 2325 3525 2325 5025 3975 5025 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 6750 2625 6750 1125 5100 1125 5100 2625 6750 2625 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 5250 1275 6600 1275 6600 1575 5250 1575 5250 1275 2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 5175 1200 6675 1200 6675 2025 5175 2025 5175 1200 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 5250 1650 6600 1650 6600 1950 5250 1950 5250 1650 4 0 0 20 0 12 16 0.0000 4 180 1155 2550 3900 vertnbr\001 4 0 0 20 0 12 16 0.0000 4 240 1155 2550 4200 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 180 1155 2550 4500 verttab\001 4 0 0 50 -1 0 16 0.0000 4 165 390 2550 4800 etc.\001 4 0 0 20 0 12 16 0.0000 4 240 1980 2250 5325 SCOTCH_Graph\001 4 0 0 20 0 12 16 0.0000 4 225 2310 7500 5025 SCOTCH_Context\001 4 0 0 20 0 12 16 0.0000 4 240 1980 5025 2925 SCOTCH_Graph\001 4 0 0 50 -1 0 16 0.0000 4 195 2025 6900 1425 Context container\001 4 0 0 50 -1 0 16 0.0000 4 255 720 4125 3825 Graph\001 4 0 0 50 -1 0 16 0.0000 4 195 900 6750 3825 Context\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_cnt.pdf000066400000000000000000000224011514310134000261000ustar00rootroot00000000000000%PDF-1.7 %Çì¢ 5 0 obj <> stream xœ¥UËn9¼ó+x‹@ ›o^c,¼,b ƒ,ä‘bg1’׊°É秺ɑeÇ{I ÃT§ŠÝMvéA[CÚò¯?Ç­zs•õíWLÔß”¬é«KåƒušÈ;½=Á“ò>e㨅Þû d½Éµ6U=*Á!G!0 Ö8›õÌ2«2U œN*8²¬ÆQp'Ô@Ÿ»y§©ãžÂL–äDTШîÔ²—¶¿UŠîq«ßhCÑ”ŒµÈjø¬Z{Yft…¬¶êl¸ÛoVë¯çÃ?Ê9tlx¯Î®V»õýöü•"ßßÜnv›ýêp¿ÇË?õ[²ZˆÕj ²Ø(ŸC0HÐ!õÀMÎYb¢ŒúVl1H‰\mqÎ;Šøþ¥¸0;àSí å|­wȘ‚AyŽRÆŽÎ%2 9ÊdbÕÎÛjJåØc65Ì!Õ¢»‘æ>–bnBŽžU‘@56pËÉT&,Q¹Õ·/”zšêó2ž§þùõo ,_jŒd|^‚bD—©òÍqj“Љ+¡*±¤¶Š‹(‡ñó‹YI=}ÁúON­Ž… â¥£¾âþft6:bÔÀ­Ç% á¸b)™âo29“"¦³¤Š+C_Î[ø~Ïký)×ÿ­fNgðû"K…»={ÊNª8p‰b83Ãæ&@®²—0HÍ:Éyv¦öU-$h„ã:äÚÖmxäµ ²ì6Òpßy&KF¬yâ"” (f©áˆ!ƒ8›„(lCSkåJc|¢0[+vÚé˜L¦CWШ\ ©á ¸4{ãÐeûHïç²Ë~ÓŒ["3]R]A½®bÅœ.°EjC²T×Ú'ý óF¾|#-·Äb˜ÐÂþE_‹[üDà×\— Lꦻ9ŒFnã¬ØîZ]Üï›ï=â¹úÃåO„ùˆzA8N|t}v¹_ý{w¾Èž]ÁϤóOÃ;ì͉>n¾¨ü¸]ÿ¿Íþ°»U*bë›5Œý†M]«À¡vÒòâ¯áâϿۮ`zŠšÙKs’,Æë.½È•ŽêÛ²”šendstream endobj 6 0 obj 808 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 12 0 obj <> endobj 13 0 obj <> endobj 10 0 obj <> endobj 8 0 obj <> endobj 11 0 obj <> endobj 14 0 obj <>stream xœUiTW®‚îª2¢ e£¨©ê¸ 9ôgH—P›@”ˆèÈ¢@³J€nAM1ÊL7ÍÒh7â5FM‚LµA š1K<Ž1‰Æ(*3ùqëœÇ™™×ÝH£'¿æOªW÷½ûî÷Ýï»$!s!H’dÂr5y[2òlï¯K³IiŽ‹ôªk)Š‘þ#=“KœQëF n®‚›ìàœW¼<¡cìs‡BF’K£’M¾ ±j?ÿ€°Üm%y[27(ƒT¿[¬L+QŽýQ†gäoÉÌQúà—ÂŒ¬ÜmÙ9Ñ[²Ó4ùʨܜ\åš8elF¦&+5ïÅUç‰ÿ_‚ ¦çä†mË[Q°²0µ8mcFLææ¸ø‚ˆ!Öó‰µDáK$~„šx‡xŸ#"ˆHBE¬$V‹‰%ÄrB!"dD ÑG.'¿t tévUºuE2\!äõ.e¡}è£L,ÓÆ\’†§JÂwEÏ>«­ÐhÁ~oKKÁ”¦JWZjÔZxöæ14Ni*µe¥ øfR£¡ÅTi(äÓ¡šº|ýPóeáSá@ukI[QC°AU¹´3ž¤Ì cñ9°›ºÑȱßG ™%ëâ|ƒ2ž‰ä·Vø¯Õ.I 4k¾b‘ǯ Á ¼þý<Á}þbùêDů·—ûú¿âã|søÑí[OyûR¹HöZ]¥l©A±þìZË»ÂJ!zûúä”õ9B4L£9à‰Ü¿zåÐù¿qG7˜„¦©ª~‡¶f·NÇ%D%ç­Dû=†ï§úág ïÝHZ[Çý¹X¯5 L‹Áˆkq¡-ÚúÒRme‡£Õ"¼&BŸ¸IôloŒàŒàCX„ô™€àOÝ£»’(öa¡ Û $P­ 5<û  ¨ó±=Û¯ x?„É<; Üü éo'çG'rl„|¢xz#Bî¿(tðþ7†~áä ˆi¢'¤à¼ý ÇyѪ°B[VÖPeáûÑ€ Uíp1`'¢¹¢¾ˆGïÀFŠU q²µ}¶YدmË×ïÜ»Ç 0ÍF£©¾ÚPÜÌo;¨1d jáƒío,#*D‹ j‰Àh„T…²4Œ‚Öá&±—Üʃ7â¨ø¼¬‰Õ¹¿ÿfðC´Ðsärûg§Oµ›z„{Bÿ¦ºäÚ¢çØšùû´EW_Rª­*ävÓ)ÇLïá­ó ÉÑ>ŒFA@·ào®´|z•s\æžH‚÷L<.dNf,’¿I?2R¡_¿ÿ¤ó¢qwºÉÔ(43M•Æòš]Uk¹šÈ²xY•öq'øm㥥R¯ƒw«jœfŠŒ¸â08 @[“'4·ÒYº”j¶Ko/ä‘› [TR##¨»ì±öÃñßÂʱö0¦N”ׄ“a+e»†FðzA°$“ŸžpJ€³Éú(4 È+(´ä—~;è oÊävø6‹°D„É¢'V^—U Þ3Ø<)ÈkÄ©nvG¨káü3VXÏ•×ìÔ L¹±²±noí¾FîÒþ/ô'f +{EÇ4çíÝ€9óZijګë÷÷´^¸Â±'¿’­ŽQD ÌÊÔã]½Ÿ=;×U£;9ÞÁ$܇\Ÿ|Ÿ]-Uú¹8/~ŠBˆBn@ÉO¼QP5Æó> ‚ŠDoÉuT¡M3îC'š Ìo˜‹¼åê 3;©çÈܵ#ãÔt<Öô3¬i6q\Ãl|÷è¬ê¤ñ•‘ëÛÕu1gp6¸?i0Íï òàÙö!&kÃBÎb‡úù‡„øólG@ö°·~á_ÌÚk…ý66º¥:{Îñó»Ñ&jC_Ìñp ²»ïBŒˆÇS˜:xåÄWç0YËGèqê’(Twq²å¾<{Ò–oQèÍáÇ7n>ÓÎbæˆ$–°Z¡§ÿJÃô…Ð,4sÁëh š äà‡ar×›Pªwí©ÖqéÙašaž°ìïåQÖrgèËŸ…µxS03îÁç­’ŸÝćÈKWÞD9ò‚×0ö2lçÁ°É`&âmfÔD WÑ,rÁÑ®*pÙàý\ä_òWŒÊ-G—~'­€)RzÕ‡qC¡I?À$ž½öá‘sDÒûÖ¬}¯–AŒMh%ev×¥©{5?ÜÙýO†/Íê¦Ù¹G'ixÌì蛱Ɇ‡«TaØd‡†~âŸOHL “­Ð„Ë }‰–Ñ=/ÇqG€]Ô‘[ü¥îXÛ‘ú3ÂYÁl’ÅxHæâ!™N; »vRw"ûbÒŠÖ%;èÚl–j±Ë»ô@gÏ ¶CŠ’,ŠôSëMq"xEPŠ9ý“þ¸ætÅ@Å`¥¹ºmÇá2S¶°•‰\™¨z#¢óJ ÷‘Yg(lØ›H7²¡²Å6Ô¸&šíHÿü’æêlðøqð‰5ÿ\zŸu W¿¬1º~»>ß”ßüá!áóuoÇíë½iqu\m‘AÛ<6Gh³ÖXZªsLDA”Rí³\e…@ ÕmQ!¥Bà*ºØXnjÑ×ä`Òh&šDkÙ[¹o@5šê;ÁQ÷:‘°µƒ»ôbã¾<ú­ú©e&i‰ ¼Ž6RÖWÄÉí7·v½Û‚ø pÐ3 endstream endobj 9 0 obj <> endobj 15 0 obj <>stream xœVkTSW¾—Üc˨…^%Õæ²:mmkµµèšY¾€ª•"ï·‚hä!Ix%!$’H8$„7„" Òb *Ú'mµb»¤ÎÛÚv­3]s.ëòc.vÖšù=kÝ÷žsîþöþöwöÞ8æëƒá8î—#툑ˆÎˆ×¾_£·àôVúydÄ+-+¹´Àƒ~èçÛ¹õ©óþèê3È´É6b¾8r"ÑþJ|Lâ«Û·¿*ÉWædeíÙµûÍ LEÐv‚„E9Yâ —Ù™0O’/Š‹#sD™Ò¢ '¸A1Â,iÞ™Âÿ]û¯µÿÏ>†a¤Xš_Xt´øLÉÙs¬옜8ÑÎ ;‰Ea/bÑX,‡½‚ÅcG°d, ÇÞÆŽaDZ7°w°½X$¶ñM,E˜/&Åfð7ð1Ÿ΋œß_§/ÃUpïñvèÜy稌’L+àà§É[_ Ö¯—MÐÿÅÝpV0:‘¬@R®Œ§—)ÕrXUf•%¥5Ùš÷Ã}yïÆ…¿+ †Œ`2ŸÙŠR÷×Éoo mGÂŽ‰öA~Œíȉ›Ê{‘/@ÇD½47-;7*ð^pHÚßYóž!‘ÖK¯¿éw Inh²0"Úx‡jÔ Õ´›(ÉîÖŽoAO|ÑKhcøß^‹M/ŠK§îzS¼,»<®”¯$l5u°‚ÁzmµšMÀ6J®¢t?陞¼3uY'Hb|R…¦Å {ëÑC6_û:ð¯—8–MHçà3)›7’Þñkî:›AÛ(p¨ì†&œŽV÷€¬#çŒDšLý@L±Ò¬²X ÝÌ&ÇAM™N1f˜¨×GhØðøÚ.u½·Ûÿƒ[hÿÂfÖ—ÏЧäEôð¯m(0Í7ÚçjÁzÔ¯¦ý¼øÂYéòex F³A"Ê—jtú5JªjŒf#ø 3à ñdܘqNÊ¥Ê )äŸW¹nSèò߉õt”v.æ:èôŸ}€^ù–¥—Žü„,-STëš'(”HÀiCŸÊ)Îh‚`Çᔈâv¹ÓÙÙÑU[m©®§Œ¶j+¬.o×è”K/ˆ$˜‘ŠŠ ¡T^–sY¦#&Òç'Æ:§çM –6ùØ–AØia·˜à$42uaY~¥ ‚lÉખ¨¹91‚ÖßËÁõoB§¼<(oÉ›`žEI_»«Ï1`â;˜=*ÂclÐÃ2¨VK ó zµ¢\^iTuW4kKúu-¬®Mužà`Ϊl„¶”÷§=f^ dxÌ~Q¦V—[ÅW¡—„Xciª¯kjî¤î£ ß3Aµz“êøP¡»˜kkŒ}Isûðž{ú´‹L Ï*Š 8âDüóÃ…o‡›´ÂªNj·•vA~og{÷lø{!)Iò¬L*9]rþ 0äýˆsu´¥Xàênw{n<©BÓôsnÜõÉ—8´ú:Y^­‡YB*')ú#ö®¤)s4Ç×®©µÆm\²i3)f!ôæ7žeDìd¸Ì ̳wÞDœÙ‘Ž÷©DmÚ6Íe¶ß$¡N§ÖjJåZ1!ñß ÈwêÎ×3ï§%PkQ}ŽÄ^D ãôëh™z0C|ÆÀŒ>ñœbDç5ÞhžWù±¶¯Ð+>Õ™“ašB˜“–™÷Fðå^Düt÷ÂÆÌ"zl\¼4ç¡SÒôæ“"%žC·{Pîe‹w/ å=—›CçÒäå„ –™åõRk`AƒÄRÁÎÃaÁ½ÂOs©‚"™\­©ºÈ—IõX ¥šqyhbA.<î¥ÿ|w±w|Z0Òßê…#ðVÚØáZ†¬ Œ7Ù` ìrY‡«Ú&x Ž:ú]nǼû Ýe^ÀèVŸ#u‹ú x4Pž}ðÃÝÓ7ÑmsŒ¾OYÐä ÷Ðdo©¨EОÝxž±’ìSïf~ü³àwUnšÁ¿ZB‘l¶”2Þf¨¯þ Tâ·Ì™ýQgŠNž 9Â`ÎVVÆ)ùù•\%Q[c‚u\±VfP«c¨¡2FÇv¯<m©l4²ÿë‰ñIOë(Ûâz²Â)&…0†Uhb ì¡l‚m/,ìò%|y•#œ³²­šå âA&Õ¢€ž™kðx¥üRAŸp,¤w'+оÞÊ†Šš#`5œ¨~«B{HJ§8`QÛ«¿(™˜5¡ fž‹öòVS釤»Ñ:Šž¹ž±#Yv&«Dpª [¿Ý¸VwXìëËþ‹Ëo-mø¼eÒ:xÇ-:ÛšD\43Áq\«M»É^ÓùÎ'•\EWhV€ïïÊ.2¿¸X"î’º=]]}}Å]bVzˆµûË8Žê—9tR;¹¿¶Ü^}ÐÖcgiƒ'OpWçyzæ×ÉëFxg+"L`fµŠW½·Bb`cºÊòÓÎÚ œÆ.¡ˆµ‡ÃzYèà%Õ(«G" ÉÚP_ßÓ}¥u‚‰®l–aaŒÑjb׆ˆb ËZŒlË´ž+Þ¶÷ ˜kËßG1Y„1J¯‹Ö³‡$¢ÀtÁ¢qÀË|”I §ÎÝ<T/PÌå¸âái˜_¾ï¸ËN ìä‘°6yØŸ>stream 2019-09-16T12:34:10+02:00 2019-09-16T12:34:10+02:00 fig2dev Version 3.2 Patchlevel 5d s_f_cnt.figpelegrin@brol (Francois PELLEGRINI) endstream endobj 2 0 obj <>endobj xref 0 17 0000000000 65535 f 0000001122 00000 n 0000008746 00000 n 0000001063 00000 n 0000000912 00000 n 0000000015 00000 n 0000000893 00000 n 0000001187 00000 n 0000001600 00000 n 0000004368 00000 n 0000001299 00000 n 0000001975 00000 n 0000001228 00000 n 0000001258 00000 n 0000002278 00000 n 0000004647 00000 n 0000007211 00000 n trailer << /Size 17 /Root 1 0 R /Info 2 0 R /ID [<29C7FBBE59160532FF504311A4403A49><29C7FBBE59160532FF504311A4403A49>] >> startxref 8980 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_d.eps000066400000000000000000000202161514310134000255570ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:25 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 216 212 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 212 moveto 0 0 lineto 216 0 lineto 216 212 lineto closepath clip newpath -66.0 264.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.90000 0.90000 sc % % Fig objects follow % % Polyline 2.000 slw n 169 249 m 219 249 l gs col-1 s gr % Polyline n 99 219 m 159 279 l gs col-1 s gr % Polyline n 99 219 m 89 249 l gs col-1 s gr % Polyline n 89 249 m 159 279 l gs col-1 s gr % Polyline n 229 219 m 299 249 l gs col-1 s gr % Polyline n 299 249 m 289 279 l gs col-1 s gr % Polyline n 229 219 m 289 279 l gs col-1 s gr % Polyline n 99 219 m 229 219 l gs col-1 s gr % Polyline n 229 219 m 219 249 l gs col-1 s gr % Polyline n 169 249 m 99 219 l gs col-1 s gr % Polyline n 169 249 m 159 279 l gs col-1 s gr % Polyline n 219 249 m 289 279 l gs col-1 s gr % Polyline n 159 279 m 289 279 l gs col-1 s gr % Polyline 0.500 slw n 229 189 m 229 189 l gs col-1 s gr % Polyline n 129 94 m 194 74 l 259 94 l gs col-1 s gr % Polyline n 94 134 m 129 114 l 164 134 l gs col-1 s gr % Polyline n 89 174 m 94 154 l 99 174 l gs col-1 s gr % Polyline n 159 174 m 164 154 l 169 174 l gs col-1 s gr % Polyline n 219 174 m 224 154 l 289 174 l gs col-1 s gr % Polyline n 229 174 m 294 154 l 299 174 l gs col-1 s gr % Polyline n 224 134 m 259 114 l 294 134 l gs col-1 s gr /Times-Roman ff 16.00 scf sf 189 69 m gs 1 -1 sc (1) col-1 sh gr /Times-Roman ff 16.00 scf sf 89 149 m gs 1 -1 sc (7) col-1 sh gr /Times-Roman ff 16.00 scf sf 124 109 m gs 1 -1 sc (3) col-1 sh gr /Times-Roman ff 16.00 scf sf 159 149 m gs 1 -1 sc (6) col-1 sh gr /Times-Roman ff 16.00 scf sf 144 189 m gs 1 -1 sc (12) col-1 sh gr /Times-Roman ff 16.00 scf sf 169 189 m gs 1 -1 sc (13) col-1 sh gr /Times-Roman ff 16.00 scf sf 214 189 m gs 1 -1 sc (9) col-1 sh gr /Times-Roman ff 16.00 scf sf 229 189 m gs 1 -1 sc (11) col-1 sh gr /Times-Roman ff 16.00 scf sf 284 189 m gs 1 -1 sc (8) col-1 sh gr /Times-Roman ff 16.00 scf sf 299 189 m gs 1 -1 sc (10) col-1 sh gr /Times-Roman ff 16.00 scf sf 289 149 m gs 1 -1 sc (5) col-1 sh gr /Times-Roman ff 16.00 scf sf 219 149 m gs 1 -1 sc (4) col-1 sh gr /Times-Roman ff 16.00 scf sf 254 109 m gs 1 -1 sc (2) col-1 sh gr /Times-Roman ff 16.00 scf sf 99 189 m gs 1 -1 sc (14) col-1 sh gr /Times-Roman ff 16.00 scf sf 74 189 m gs 1 -1 sc (15) col-1 sh gr % Polyline [1 3] 3 sd n 219 249 m 219 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 229 219 m 229 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 299 249 m 299 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 169 249 m 169 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 159 274 m 159 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 99 219 m 99 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 89 249 m 89 194 l gs col-1 s gr [] 0 sd % Polyline [1 3] 3 sd n 289 279 m 289 194 l gs col-1 s gr [] 0 sd % Closed spline gs n 151.5 281.5 m 151.5 281.5 149.0 274.0 154.0 259.0 DrawSplineSection 154.0 259.0 159.0 244.0 166.5 241.5 DrawSplineSection 166.5 241.5 174.0 239.0 176.5 246.5 DrawSplineSection 176.5 246.5 179.0 254.0 174.0 269.0 DrawSplineSection 174.0 269.0 169.0 284.0 161.5 286.5 DrawSplineSection 161.5 286.5 154.0 289.0 151.5 281.5 DrawSplineSection closepath gs col-1 s gr gr % Closed spline gs n 81.5 251.5 m 81.5 251.5 79.0 244.0 84.0 229.0 DrawSplineSection 84.0 229.0 89.0 214.0 96.5 211.5 DrawSplineSection 96.5 211.5 104.0 209.0 106.5 216.5 DrawSplineSection 106.5 216.5 109.0 224.0 104.0 239.0 DrawSplineSection 104.0 239.0 99.0 254.0 91.5 256.5 DrawSplineSection 91.5 256.5 84.0 259.0 81.5 251.5 DrawSplineSection closepath gs col-1 s gr gr % Closed spline gs n 269.0 219.0 m 269.0 219.0 304.0 234.0 309.0 244.0 DrawSplineSection 309.0 244.0 314.0 254.0 309.0 269.0 DrawSplineSection 309.0 269.0 304.0 284.0 294.0 289.0 DrawSplineSection 294.0 289.0 284.0 294.0 249.0 279.0 DrawSplineSection 249.0 279.0 214.0 264.0 209.0 254.0 DrawSplineSection 209.0 254.0 204.0 244.0 209.0 229.0 DrawSplineSection 209.0 229.0 214.0 214.0 224.0 209.0 DrawSplineSection 224.0 209.0 234.0 204.0 269.0 219.0 DrawSplineSection closepath gs col-1 s gr gr % Closed spline gs n 139.0 219.0 m 139.0 219.0 174.0 234.0 179.0 244.0 DrawSplineSection 179.0 244.0 184.0 254.0 179.0 269.0 DrawSplineSection 179.0 269.0 174.0 284.0 164.0 289.0 DrawSplineSection 164.0 289.0 154.0 294.0 119.0 279.0 DrawSplineSection 119.0 279.0 84.0 264.0 79.0 254.0 DrawSplineSection 79.0 254.0 74.0 244.0 79.0 229.0 DrawSplineSection 79.0 229.0 84.0 214.0 94.0 209.0 DrawSplineSection 94.0 209.0 104.0 204.0 139.0 219.0 DrawSplineSection closepath gs col-1 s gr gr % Closed spline gs n 226.5 211.5 m 226.5 211.5 219.0 214.0 221.5 221.5 DrawSplineSection 221.5 221.5 224.0 229.0 259.0 244.0 DrawSplineSection 259.0 244.0 294.0 259.0 301.5 256.5 DrawSplineSection 301.5 256.5 309.0 254.0 306.5 246.5 DrawSplineSection 306.5 246.5 304.0 239.0 269.0 224.0 DrawSplineSection 269.0 224.0 234.0 209.0 226.5 211.5 DrawSplineSection closepath gs col-1 s gr gr % Closed spline gs n 216.5 241.5 m 216.5 241.5 209.0 244.0 211.5 251.5 DrawSplineSection 211.5 251.5 214.0 259.0 249.0 274.0 DrawSplineSection 249.0 274.0 284.0 289.0 291.5 286.5 DrawSplineSection 291.5 286.5 299.0 284.0 299.0 279.0 DrawSplineSection 299.0 279.0 299.0 274.0 261.5 256.5 DrawSplineSection 261.5 256.5 224.0 239.0 216.5 241.5 DrawSplineSection closepath gs col-1 s gr gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_d.fig000066400000000000000000000056651514310134000255500ustar00rootroot00000000000000#FIG 2.1 80 2 6 84 214 304 284 2 1 0 3 -1 0 0 0 0.000 7 0 0 169 249 219 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 99 219 159 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 99 219 89 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 89 249 159 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 229 219 299 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 299 249 289 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 229 219 289 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 99 219 229 219 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 229 219 219 249 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 169 249 99 219 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 169 249 159 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 219 249 289 279 9999 9999 2 1 0 3 -1 0 0 0 0.000 -1 0 0 159 279 289 279 9999 9999 -6 6 74 54 314 189 2 1 2 1 -1 0 0 0 3.000 -1 0 0 229 189 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 129 94 194 74 259 94 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 94 134 129 114 164 134 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 89 174 94 154 99 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 159 174 164 154 169 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 219 174 224 154 289 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 229 174 294 154 299 174 9999 9999 2 1 0 1 -1 0 0 0 0.000 -1 0 0 224 134 259 114 294 134 9999 9999 4 0 0 16 0 -1 0 0.00000 4 11 8 189 69 1 4 0 0 16 0 -1 0 0.00000 4 19 7 89 149 7 4 0 0 16 0 -1 0 0.00000 4 19 7 124 109 3 4 0 0 16 0 -1 0 0.00000 4 19 7 159 149 6 4 0 0 16 0 -1 0 0.00000 4 19 14 144 189 12 4 0 0 16 0 -1 0 0.00000 4 19 14 169 189 13 4 0 0 16 0 -1 0 0.00000 4 19 7 214 189 9 4 0 0 16 0 -1 0 0.00000 4 19 14 229 189 11 4 0 0 16 0 -1 0 0.00000 4 19 7 284 189 8 4 0 0 16 0 -1 0 0.00000 4 19 14 299 189 10 4 0 0 16 0 -1 0 0.00000 4 19 7 289 149 5 4 0 0 16 0 -1 0 0.00000 4 19 7 219 149 4 4 0 0 16 0 -1 0 0.00000 4 19 7 254 109 2 4 0 0 16 0 -1 0 0.00000 4 19 14 99 189 14 4 0 0 16 0 -1 0 0.00000 4 19 14 74 189 15 -6 2 1 2 1 -1 0 0 0 3.000 -1 0 0 219 249 219 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 229 219 229 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 299 249 299 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 169 249 169 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 159 274 159 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 99 219 99 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 89 249 89 194 9999 9999 2 1 2 1 -1 0 0 0 3.000 -1 0 0 289 279 289 194 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 154 289 149 274 159 244 174 239 179 254 169 284 154 289 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 84 259 79 244 89 214 104 209 109 224 99 254 84 259 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 234 204 304 234 314 254 304 284 284 294 214 264 204 244 214 214 234 204 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 104 204 174 234 184 254 174 284 154 294 84 264 74 244 84 214 104 204 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 234 209 219 214 224 229 294 259 309 254 304 239 234 209 9999 9999 3 1 0 1 -1 0 0 0 0.000 0 0 224 239 209 244 214 259 284 289 299 284 299 274 224 239 9999 9999 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_d.ps000066400000000000000000000170361514310134000254200ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev %%CreationDate: Wed Jul 19 17:06:41 1995 %%For: pelegrin@firmin (Francois PELLEGRINI) %%BoundingBox: 0 0 215 210 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -67.0 263.0 translate 0.900 -0.900 scale 2.000 setlinewidth % Polyline n 169 249 m 219 249 l gs col-1 s gr % Polyline n 99 219 m 159 279 l gs col-1 s gr % Polyline n 99 219 m 89 249 l gs col-1 s gr % Polyline n 89 249 m 159 279 l gs col-1 s gr % Polyline n 229 219 m 299 249 l gs col-1 s gr % Polyline n 299 249 m 289 279 l gs col-1 s gr % Polyline n 229 219 m 289 279 l gs col-1 s gr % Polyline n 99 219 m 229 219 l gs col-1 s gr % Polyline n 229 219 m 219 249 l gs col-1 s gr % Polyline n 169 249 m 99 219 l gs col-1 s gr % Polyline n 169 249 m 159 279 l gs col-1 s gr % Polyline n 219 249 m 289 279 l gs col-1 s gr % Polyline n 159 279 m 289 279 l gs col-1 s gr 0.500 setlinewidth n 229 189 m 229 189 l gs col-1 s gr % Polyline n 129 94 m 194 74 l 259 94 l gs col-1 s gr % Polyline n 94 134 m 129 114 l 164 134 l gs col-1 s gr % Polyline n 89 174 m 94 154 l 99 174 l gs col-1 s gr % Polyline n 159 174 m 164 154 l 169 174 l gs col-1 s gr % Polyline n 219 174 m 224 154 l 289 174 l gs col-1 s gr % Polyline n 229 174 m 294 154 l 299 174 l gs col-1 s gr % Polyline n 224 134 m 259 114 l 294 134 l gs col-1 s gr /Times-Roman findfont 16.00 scalefont setfont 189 69 m gs 1 -1 scale (1) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 89 149 m gs 1 -1 scale (7) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 124 109 m gs 1 -1 scale (3) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 159 149 m gs 1 -1 scale (6) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 144 189 m gs 1 -1 scale (12) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 169 189 m gs 1 -1 scale (13) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 214 189 m gs 1 -1 scale (9) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 229 189 m gs 1 -1 scale (11) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 284 189 m gs 1 -1 scale (8) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 299 189 m gs 1 -1 scale (10) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 289 149 m gs 1 -1 scale (5) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 219 149 m gs 1 -1 scale (4) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 254 109 m gs 1 -1 scale (2) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 99 189 m gs 1 -1 scale (14) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 74 189 m gs 1 -1 scale (15) col-1 show gr 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 219 249 m 219 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 229 219 m 229 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 299 249 m 299 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 169 249 m 169 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 159 274 m 159 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 99 219 m 99 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 89 249 m 89 194 l gs col-1 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 289 279 m 289 194 l gs col-1 s gr [] 0 setdash 0 setlinecap % Closed spline n 151.500 281.500 m 151.500 281.500 149.000 274.000 154.000 259.000 DrawSplineSection 154.000 259.000 159.000 244.000 166.500 241.500 DrawSplineSection 166.500 241.500 174.000 239.000 176.500 246.500 DrawSplineSection 176.500 246.500 179.000 254.000 174.000 269.000 DrawSplineSection 174.000 269.000 169.000 284.000 161.500 286.500 DrawSplineSection 161.500 286.500 154.000 289.000 151.500 281.500 DrawSplineSection closepath gs col-1 s gr % Closed spline n 81.500 251.500 m 81.500 251.500 79.000 244.000 84.000 229.000 DrawSplineSection 84.000 229.000 89.000 214.000 96.500 211.500 DrawSplineSection 96.500 211.500 104.000 209.000 106.500 216.500 DrawSplineSection 106.500 216.500 109.000 224.000 104.000 239.000 DrawSplineSection 104.000 239.000 99.000 254.000 91.500 256.500 DrawSplineSection 91.500 256.500 84.000 259.000 81.500 251.500 DrawSplineSection closepath gs col-1 s gr % Closed spline n 269.000 219.000 m 269.000 219.000 304.000 234.000 309.000 244.000 DrawSplineSection 309.000 244.000 314.000 254.000 309.000 269.000 DrawSplineSection 309.000 269.000 304.000 284.000 294.000 289.000 DrawSplineSection 294.000 289.000 284.000 294.000 249.000 279.000 DrawSplineSection 249.000 279.000 214.000 264.000 209.000 254.000 DrawSplineSection 209.000 254.000 204.000 244.000 209.000 229.000 DrawSplineSection 209.000 229.000 214.000 214.000 224.000 209.000 DrawSplineSection 224.000 209.000 234.000 204.000 269.000 219.000 DrawSplineSection closepath gs col-1 s gr % Closed spline n 139.000 219.000 m 139.000 219.000 174.000 234.000 179.000 244.000 DrawSplineSection 179.000 244.000 184.000 254.000 179.000 269.000 DrawSplineSection 179.000 269.000 174.000 284.000 164.000 289.000 DrawSplineSection 164.000 289.000 154.000 294.000 119.000 279.000 DrawSplineSection 119.000 279.000 84.000 264.000 79.000 254.000 DrawSplineSection 79.000 254.000 74.000 244.000 79.000 229.000 DrawSplineSection 79.000 229.000 84.000 214.000 94.000 209.000 DrawSplineSection 94.000 209.000 104.000 204.000 139.000 219.000 DrawSplineSection closepath gs col-1 s gr % Closed spline n 226.500 211.500 m 226.500 211.500 219.000 214.000 221.500 221.500 DrawSplineSection 221.500 221.500 224.000 229.000 259.000 244.000 DrawSplineSection 259.000 244.000 294.000 259.000 301.500 256.500 DrawSplineSection 301.500 256.500 309.000 254.000 306.500 246.500 DrawSplineSection 306.500 246.500 304.000 239.000 269.000 224.000 DrawSplineSection 269.000 224.000 234.000 209.000 226.500 211.500 DrawSplineSection closepath gs col-1 s gr % Closed spline n 216.500 241.500 m 216.500 241.500 209.000 244.000 211.500 251.500 DrawSplineSection 211.500 251.500 214.000 259.000 249.000 274.000 DrawSplineSection 249.000 274.000 284.000 289.000 291.500 286.500 DrawSplineSection 291.500 286.500 299.000 284.000 299.000 279.000 DrawSplineSection 299.000 279.000 299.000 274.000 261.500 256.500 DrawSplineSection 261.500 256.500 224.000 239.000 216.500 241.500 DrawSplineSection closepath gs col-1 s gr $F2psEnd scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_do1.ps000066400000000000000000000142151514310134000256540ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: ../graph/ar_m8x8.src ../graph/ar_m8x8.xyz - %%Creator: out (F. Pellegrini, LaBRI, Bordeaux) %%CreationDate: Wed Nov 2 13:15:44 1994 %%BoundingBox: 0 0 475 475 %%Pages: 0 %%EndComments /A { arc fill } bind def /c { setrgbcolor } bind def /g { setgray } bind def /L { lineto stroke } bind def /l { lineto } bind def /m { moveto } bind def /n { newpath } bind def gsave 1 setlinecap 0.007200 0.007200 scale n 0 0 m 66000 0 l 66000 66000 l 0 66000 l closepath clip 0 g n 4125 4125 m 4125 12374 L n 4125 4125 m 12374 4125 L n 4125 12374 m 4125 20625 L n 4125 12374 m 12374 12374 L n 4125 20625 m 4125 28874 L n 4125 20625 m 12374 20625 L n 4125 28874 m 4125 37125 L n 4125 28874 m 12374 28874 L n 4125 37125 m 4125 45375 L n 4125 37125 m 12374 37125 L n 4125 45375 m 4125 53625 L n 4125 45375 m 12374 45375 L n 4125 53625 m 4125 61875 L n 4125 53625 m 12374 53625 L n 4125 61875 m 12374 61875 L n 12374 4125 m 12374 12374 L n 12374 4125 m 20625 4125 L n 12374 12374 m 12374 20625 L n 12374 12374 m 20625 12374 L n 12374 20625 m 12374 28874 L n 12374 20625 m 20625 20625 L n 12374 28874 m 12374 37125 L n 12374 28874 m 20625 28874 L n 12374 37125 m 12374 45375 L n 12374 37125 m 20625 37125 L n 12374 45375 m 12374 53625 L n 12374 45375 m 20625 45375 L n 12374 53625 m 12374 61875 L n 12374 53625 m 20625 53625 L n 12374 61875 m 20625 61875 L n 20625 4125 m 20625 12374 L n 20625 4125 m 28874 4125 L n 20625 12374 m 20625 20625 L n 20625 12374 m 28874 12374 L n 20625 20625 m 20625 28874 L n 20625 20625 m 28874 20625 L n 20625 28874 m 20625 37125 L n 20625 28874 m 28874 28874 L n 20625 37125 m 20625 45375 L n 20625 37125 m 28874 37125 L n 20625 45375 m 20625 53625 L n 20625 45375 m 28874 45375 L n 20625 53625 m 20625 61875 L n 20625 53625 m 28874 53625 L n 20625 61875 m 28874 61875 L n 28874 4125 m 28874 12374 L n 28874 4125 m 37125 4125 L n 28874 12374 m 28874 20625 L n 28874 12374 m 37125 12374 L n 28874 20625 m 28874 28874 L n 28874 20625 m 37125 20625 L n 28874 28874 m 28874 37125 L n 28874 28874 m 37125 28874 L n 28874 37125 m 28874 45375 L n 28874 37125 m 37125 37125 L n 28874 45375 m 28874 53625 L n 28874 45375 m 37125 45375 L n 28874 53625 m 28874 61875 L n 28874 53625 m 37125 53625 L n 28874 61875 m 37125 61875 L n 37125 4125 m 37125 12374 L n 37125 4125 m 45375 4125 L n 37125 12374 m 37125 20625 L n 37125 12374 m 45375 12374 L n 37125 20625 m 37125 28874 L n 37125 20625 m 45375 20625 L n 37125 28874 m 37125 37125 L n 37125 28874 m 45375 28874 L n 37125 37125 m 37125 45375 L n 37125 37125 m 45375 37125 L n 37125 45375 m 37125 53625 L n 37125 45375 m 45375 45375 L n 37125 53625 m 37125 61875 L n 37125 53625 m 45375 53625 L n 37125 61875 m 45375 61875 L n 45375 4125 m 45375 12374 L n 45375 4125 m 53625 4125 L n 45375 12374 m 45375 20625 L n 45375 12374 m 53625 12374 L n 45375 20625 m 45375 28874 L n 45375 20625 m 53625 20625 L n 45375 28874 m 45375 37125 L n 45375 28874 m 53625 28874 L n 45375 37125 m 45375 45375 L n 45375 37125 m 53625 37125 L n 45375 45375 m 45375 53625 L n 45375 45375 m 53625 45375 L n 45375 53625 m 45375 61875 L n 45375 53625 m 53625 53625 L n 45375 61875 m 53625 61875 L n 53625 4125 m 53625 12374 L n 53625 4125 m 61875 4125 L n 53625 12374 m 53625 20625 L n 53625 12374 m 61875 12374 L n 53625 20625 m 53625 28874 L n 53625 20625 m 61875 20625 L n 53625 28874 m 53625 37125 L n 53625 28874 m 61875 28874 L n 53625 37125 m 53625 45375 L n 53625 37125 m 61875 37125 L n 53625 45375 m 53625 53625 L n 53625 45375 m 61875 45375 L n 53625 53625 m 53625 61875 L n 53625 53625 m 61875 53625 L n 53625 61875 m 61875 61875 L n 61875 4125 m 61875 12374 L n 61875 12374 m 61875 20625 L n 61875 20625 m 61875 28874 L n 61875 28874 m 61875 37125 L n 61875 37125 m 61875 45375 L n 61875 45375 m 61875 53625 L n 61875 53625 m 61875 61875 L 1 0.5 0.5 c n 4125 4125 4124 0 360 A 1 0.5 0.5 c n 4125 12374 4124 0 360 A 1 0.5 0.5 c n 4125 20625 4124 0 360 A 1 0.5 0.5 c n 4125 28874 4124 0 360 A 1 0.5 0.5 c n 4125 37125 4124 0 360 A 1 0.5 0.5 c n 4125 45375 4124 0 360 A 1 0.5 0.5 c n 4125 53625 4124 0 360 A 1 0.5 0.5 c n 4125 61875 4124 0 360 A 1 0.5 0.5 c n 12374 4125 4124 0 360 A 1 0.5 0.5 c n 12374 12374 4124 0 360 A 1 0.5 0.5 c n 12374 20625 4124 0 360 A 1 0.5 0.5 c n 12374 28874 4124 0 360 A 1 0.5 0.5 c n 12374 37125 4124 0 360 A 1 0.5 0.5 c n 12374 45375 4124 0 360 A 1 0.5 0.5 c n 12374 53625 4124 0 360 A 1 0.5 0.5 c n 12374 61875 4124 0 360 A 1 0.5 0.5 c n 20625 4125 4124 0 360 A 1 0.5 0.5 c n 20625 12374 4124 0 360 A 1 0.5 0.5 c n 20625 20625 4124 0 360 A 1 0.5 0.5 c n 20625 28874 4124 0 360 A 1 0.5 0.5 c n 20625 37125 4124 0 360 A 1 0.5 0.5 c n 20625 45375 4124 0 360 A 1 0.5 0.5 c n 20625 53625 4124 0 360 A 1 0.5 0.5 c n 20625 61875 4124 0 360 A 1 0.5 0.5 c n 28874 4125 4124 0 360 A 1 0.5 0.5 c n 28874 12374 4124 0 360 A 1 0.5 0.5 c n 28874 20625 4124 0 360 A 1 0.5 0.5 c n 28874 28874 4124 0 360 A 1 0.5 0.5 c n 28874 37125 4124 0 360 A 1 0.5 0.5 c n 28874 45375 4124 0 360 A 1 0.5 0.5 c n 28874 53625 4124 0 360 A 1 0.5 0.5 c n 28874 61875 4124 0 360 A 1 0.5 0.5 c n 37125 4125 4124 0 360 A 1 0.5 0.5 c n 37125 12374 4124 0 360 A 1 0.5 0.5 c n 37125 20625 4124 0 360 A 1 0.5 0.5 c n 37125 28874 4124 0 360 A 1 0.5 0.5 c n 37125 37125 4125 0 360 A 1 0.5 0.5 c n 37125 45375 4125 0 360 A 1 0.5 0.5 c n 37125 53625 4125 0 360 A 1 0.5 0.5 c n 37125 61875 4125 0 360 A 0 0 0 c n 45375 4125 4124 0 360 A 0 0 0 c n 45375 12374 4124 0 360 A 0 0 0 c n 45375 20625 4124 0 360 A 0 0 0 c n 45375 28874 4124 0 360 A 1 0.5 0.5 c n 45375 37125 4125 0 360 A 1 0.5 0.5 c n 45375 45375 4125 0 360 A 1 0.5 0.5 c n 45375 53625 4125 0 360 A 1 0.5 0.5 c n 45375 61875 4125 0 360 A 0 0 0 c n 53625 4125 4124 0 360 A 0 0 0 c n 53625 12374 4124 0 360 A 0 0 0 c n 53625 20625 4124 0 360 A 0 0 0 c n 53625 28874 4124 0 360 A 1 0.5 0.5 c n 53625 37125 4125 0 360 A 1 0.5 0.5 c n 53625 45375 4125 0 360 A 1 0.5 0.5 c n 53625 53625 4125 0 360 A 1 0.5 0.5 c n 53625 61875 4125 0 360 A 0 0 0 c n 61875 4125 4124 0 360 A 0 0 0 c n 61875 12374 4124 0 360 A 0 0 0 c n 61875 20625 4124 0 360 A 0 0 0 c n 61875 28874 4124 0 360 A 0 0 0 c n 61875 37125 4125 0 360 A 1 0.5 0.5 c n 61875 45375 4125 0 360 A 1 0.5 0.5 c n 61875 53625 4125 0 360 A 1 0.5 0.5 c n 61875 61875 4125 0 360 A grestore scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_do2.ps000066400000000000000000000116101514310134000256510ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: ../graph/ar_m8x8-13.src ../graph/ar_m8x8-13.xyz - %%Creator: out (F. Pellegrini, LaBRI, Bordeaux) %%CreationDate: Wed Nov 2 13:57:20 1994 %%BoundingBox: 0 0 475 475 %%Pages: 0 %%EndComments /A { arc fill } bind def /c { setrgbcolor } bind def /g { setgray } bind def /L { lineto stroke } bind def /l { lineto } bind def /m { moveto } bind def /n { newpath } bind def gsave 1 setlinecap 0.007200 0.007200 scale n 0 0 m 66000 0 l 66000 66000 l 0 66000 l closepath clip 0 g n 4125 4125 m 4125 12374 L n 4125 4125 m 12374 4125 L n 4125 12374 m 4125 20625 L n 4125 12374 m 12374 12374 L n 4125 20625 m 4125 28874 L n 4125 20625 m 12374 20625 L n 4125 28874 m 4125 37125 L n 4125 28874 m 12374 28874 L n 4125 37125 m 4125 45375 L n 4125 37125 m 12374 37125 L n 4125 45375 m 4125 53625 L n 4125 45375 m 12374 45375 L n 4125 53625 m 4125 61875 L n 4125 53625 m 12374 53625 L n 4125 61875 m 12374 61875 L n 12374 4125 m 12374 12374 L n 12374 4125 m 20625 4125 L n 12374 12374 m 12374 20625 L n 12374 12374 m 20625 12374 L n 12374 20625 m 12374 28874 L n 12374 20625 m 20625 20625 L n 12374 28874 m 12374 37125 L n 12374 28874 m 20625 28874 L n 12374 37125 m 12374 45375 L n 12374 37125 m 20625 37125 L n 12374 45375 m 12374 53625 L n 12374 45375 m 20625 45375 L n 12374 53625 m 12374 61875 L n 12374 53625 m 20625 53625 L n 12374 61875 m 20625 61875 L n 20625 4125 m 20625 12374 L n 20625 4125 m 28874 4125 L n 20625 12374 m 20625 20625 L n 20625 12374 m 28874 12374 L n 20625 20625 m 20625 28874 L n 20625 20625 m 28874 20625 L n 20625 28874 m 20625 37125 L n 20625 28874 m 28874 28874 L n 20625 37125 m 20625 45375 L n 20625 37125 m 28874 37125 L n 20625 45375 m 20625 53625 L n 20625 45375 m 28874 45375 L n 20625 53625 m 20625 61875 L n 20625 53625 m 28874 53625 L n 20625 61875 m 28874 61875 L n 28874 4125 m 28874 12374 L n 28874 4125 m 37125 4125 L n 28874 12374 m 28874 20625 L n 28874 12374 m 37125 12374 L n 28874 20625 m 28874 28874 L n 28874 20625 m 37125 20625 L n 28874 28874 m 28874 37125 L n 28874 28874 m 37125 28874 L n 28874 37125 m 28874 45375 L n 28874 37125 m 37125 37125 L n 28874 45375 m 28874 53625 L n 28874 45375 m 37125 45375 L n 28874 53625 m 28874 61875 L n 28874 53625 m 37125 53625 L n 28874 61875 m 37125 61875 L n 37125 4125 m 37125 12374 L n 37125 12374 m 37125 20625 L n 37125 20625 m 37125 28874 L n 37125 28874 m 37125 37125 L n 37125 37125 m 37125 45375 L n 37125 37125 m 45375 37125 L n 37125 45375 m 37125 53625 L n 37125 45375 m 45375 45375 L n 37125 53625 m 37125 61875 L n 37125 53625 m 45375 53625 L n 37125 61875 m 45375 61875 L n 45375 37125 m 45375 45375 L n 45375 37125 m 53625 37125 L n 45375 45375 m 45375 53625 L n 45375 45375 m 53625 45375 L n 45375 53625 m 45375 61875 L n 45375 53625 m 53625 53625 L n 45375 61875 m 53625 61875 L n 53625 37125 m 53625 45375 L n 53625 45375 m 53625 53625 L n 53625 45375 m 61875 45375 L n 53625 53625 m 53625 61875 L n 53625 53625 m 61875 53625 L n 53625 61875 m 61875 61875 L n 61875 45375 m 61875 53625 L n 61875 53625 m 61875 61875 L 0 0 0 c n 4125 4125 4124 0 360 A 0 0 0 c n 4125 12374 4124 0 360 A 0 0 0 c n 4125 20625 4124 0 360 A 0 0 0 c n 4125 28874 4124 0 360 A 1 0.5 0.5 c n 4125 37125 4124 0 360 A 1 0.5 0.5 c n 4125 45375 4124 0 360 A 1 0.5 0.5 c n 4125 53625 4124 0 360 A 1 0.5 0.5 c n 4125 61875 4124 0 360 A 0 0 0 c n 12374 4125 4124 0 360 A 0 0 0 c n 12374 12374 4124 0 360 A 0 0 0 c n 12374 20625 4124 0 360 A 0 0 0 c n 12374 28874 4124 0 360 A 1 0.5 0.5 c n 12374 37125 4124 0 360 A 1 0.5 0.5 c n 12374 45375 4124 0 360 A 1 0.5 0.5 c n 12374 53625 4124 0 360 A 1 0.5 0.5 c n 12374 61875 4124 0 360 A 0 0 0 c n 20625 4125 4124 0 360 A 0 0 0 c n 20625 12374 4124 0 360 A 0 0 0 c n 20625 20625 4124 0 360 A 1 0.5 0.5 c n 20625 28874 4124 0 360 A 1 0.5 0.5 c n 20625 37125 4124 0 360 A 1 0.5 0.5 c n 20625 45375 4124 0 360 A 1 0.5 0.5 c n 20625 53625 4124 0 360 A 1 0.5 0.5 c n 20625 61875 4124 0 360 A 0 0 0 c n 28874 4125 4124 0 360 A 0 0 0 c n 28874 12374 4124 0 360 A 0 0 0 c n 28874 20625 4124 0 360 A 1 0.5 0.5 c n 28874 28874 4124 0 360 A 1 0.5 0.5 c n 28874 37125 4124 0 360 A 1 0.5 0.5 c n 28874 45375 4124 0 360 A 1 0.5 0.5 c n 28874 53625 4124 0 360 A 1 0.5 0.5 c n 28874 61875 4124 0 360 A 0 0 0 c n 37125 4125 4124 0 360 A 0 0 0 c n 37125 12374 4124 0 360 A 0 0 0 c n 37125 20625 4124 0 360 A 1 0.5 0.5 c n 37125 28874 4124 0 360 A 1 0.5 0.5 c n 37125 37125 4125 0 360 A 1 0.5 0.5 c n 37125 45375 4125 0 360 A 1 0.5 0.5 c n 37125 53625 4125 0 360 A 1 0.5 0.5 c n 37125 61875 4125 0 360 A 1 0.5 0.5 c n 45375 37125 4125 0 360 A 1 0.5 0.5 c n 45375 45375 4125 0 360 A 1 0.5 0.5 c n 45375 53625 4125 0 360 A 1 0.5 0.5 c n 45375 61875 4125 0 360 A 1 0.5 0.5 c n 53625 37125 4125 0 360 A 1 0.5 0.5 c n 53625 45375 4125 0 360 A 1 0.5 0.5 c n 53625 53625 4125 0 360 A 1 0.5 0.5 c n 53625 61875 4125 0 360 A 1 0.5 0.5 c n 61875 45375 4125 0 360 A 1 0.5 0.5 c n 61875 53625 4125 0 360 A 1 0.5 0.5 c n 61875 61875 4125 0 360 A grestore scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_gr1.eps000066400000000000000000000502241514310134000260270ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Tue Nov 4 10:38:33 2003 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 523 362 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 362 moveto 0 0 lineto 523 0 lineto 523 362 lineto closepath clip newpath -36.0 396.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 20 % Polyline 7.500 slw n 7125 3150 m 8625 3150 l 7725 1950 l 8925 1950 l 8625 1050 l gs col0 s gr % Polyline n 6525 1950 m 7425 750 l 7725 1950 l 6525 1950 l 7125 3150 l 7725 1950 l 8625 1050 l 7425 750 l gs col0 s gr % Polyline n 8925 1950 m 8625 3150 l gs col0 s gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (baseval) col0 sh gr % Polyline [15 45] 45 sd n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 2400 m 1800 2700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 2400 m 2100 2700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 5550 m 9300 5550 l 9300 5850 l 9000 5850 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9300 5550 m 9000 5850 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 5550 m 9300 5850 l gs col0 s gr [] 0 sd % Polyline gs clippath 9120 5565 m 9180 5565 l 9180 5414 l 9150 5534 l 9120 5414 l cp eoclip n 4050 4500 m 4050 4800 l 9150 4800 l 9150 5550 l gs col0 s gr gr % arrowhead n 9120 5414 m 9150 5534 l 9180 5414 l 9120 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8220 5565 m 8280 5565 l 8280 5414 l 8250 5534 l 8220 5414 l cp eoclip n 3750 4500 m 3750 4875 l 8250 4875 l 8250 5550 l gs col0 s gr gr % arrowhead n 8220 5414 m 8250 5534 l 8280 5414 l 8220 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7320 5565 m 7380 5565 l 7380 5414 l 7350 5534 l 7320 5414 l cp eoclip n 3450 4500 m 3450 4950 l 7350 4950 l 7350 5550 l gs col0 s gr gr % arrowhead n 7320 5414 m 7350 5534 l 7380 5414 l 7320 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6420 5565 m 6480 5565 l 6480 5414 l 6450 5534 l 6420 5414 l cp eoclip n 3150 4500 m 3150 5025 l 6450 5025 l 6450 5550 l gs col0 s gr gr % arrowhead n 6420 5414 m 6450 5534 l 6480 5414 l 6420 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 5565 m 5580 5565 l 5580 5414 l 5550 5534 l 5520 5414 l cp eoclip n 2850 4500 m 2850 5100 l 5550 5100 l 5550 5550 l gs col0 s gr gr % arrowhead n 5520 5414 m 5550 5534 l 5580 5414 l 5520 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4620 5565 m 4680 5565 l 4680 5414 l 4650 5534 l 4620 5414 l cp eoclip n 2550 4500 m 2550 5175 l 4650 5175 l 4650 5550 l gs col0 s gr gr % arrowhead n 4620 5414 m 4650 5534 l 4680 5414 l 4620 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2820 5565 m 2880 5565 l 2880 5414 l 2850 5534 l 2820 5414 l cp eoclip n 2250 4500 m 2250 5250 l 2850 5250 l 2850 5550 l gs col0 s gr gr % arrowhead n 2820 5414 m 2850 5534 l 2880 5414 l 2820 5414 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 1425 m gs 1 -1 sc (vertnbr) col0 sh gr /Courier ff 240.00 scf sf 600 2025 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 240.00 scf sf 600 2625 m gs 1 -1 sc (vlbltab) col0 sh gr /Courier ff 240.00 scf sf 600 4425 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 5775 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 240.00 scf sf 600 6525 m gs 1 -1 sc (edlotab) col0 sh gr /Courier ff 240.00 scf sf 600 3225 m gs 1 -1 sc (velotab) col0 sh gr /Courier ff 240.00 scf sf 600 3825 m gs 1 -1 sc (vendtab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 2040 m gs 1 -1 sc (24) col0 sh gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 4200 m 2400 4200 l 2400 4500 l 2100 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 4440 m gs 1 -1 sc (4) col0 sh gr % Polyline n 2400 4200 m 2700 4200 l 2700 4500 l 2400 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 4440 m gs 1 -1 sc (10) col0 sh gr % Polyline n 2700 4200 m 3000 4200 l 3000 4500 l 2700 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 4440 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3000 4200 m 3300 4200 l 3300 4500 l 3000 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 4440 m gs 1 -1 sc (16) col0 sh gr % Polyline n 3300 4200 m 3600 4200 l 3600 4500 l 3300 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 4440 m gs 1 -1 sc (19) col0 sh gr % Polyline n 3600 4200 m 3900 4200 l 3900 4500 l 3600 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 4440 m gs 1 -1 sc (22) col0 sh gr % Polyline n 1800 4200 m 2100 4200 l 2100 4500 l 1800 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 4200 m 4200 4200 l 4200 4500 l 3900 4500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3925 4440 m gs 1 -1 sc (25) col0 sh gr % Polyline n 2100 5550 m 2400 5550 l 2400 5850 l 2100 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 5550 m 2700 5550 l 2700 5850 l 2400 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 5550 m 3000 5550 l 3000 5850 l 2700 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 5550 m 3300 5550 l 3300 5850 l 3000 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 5550 m 3600 5550 l 3600 5850 l 3300 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 5550 m 3900 5550 l 3900 5850 l 3600 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 5550 m 4200 5550 l 4200 5850 l 3900 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 5550 m 4500 5550 l 4500 5850 l 4200 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 5550 m 4800 5550 l 4800 5850 l 4500 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 5550 m 5100 5550 l 5100 5850 l 4800 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 5550 m 5400 5550 l 5400 5850 l 5100 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 5550 m 5700 5550 l 5700 5850 l 5400 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 5550 m 6000 5550 l 6000 5850 l 5700 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 5550 m 6300 5550 l 6300 5850 l 6000 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 5550 m 6600 5550 l 6600 5850 l 6300 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 5550 m 6900 5550 l 6900 5850 l 6600 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 5550 m 7200 5550 l 7200 5850 l 6900 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 5550 m 7500 5550 l 7500 5850 l 7200 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 5550 m 7800 5550 l 7800 5850 l 7500 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 5550 m 8100 5550 l 8100 5850 l 7800 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 5550 m 8400 5550 l 8400 5850 l 8100 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 5550 m 8700 5550 l 8700 5850 l 8400 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 5550 m 9000 5550 l 9000 5850 l 8700 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 5550 m 2100 5550 l 2100 5850 l 1800 5850 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 6300 m 2100 6300 l 2100 6600 l 1800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 6300 m 2400 6300 l 2400 6600 l 2100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 6300 m 2700 6300 l 2700 6600 l 2400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 6300 m 3600 6300 l 3600 6600 l 3300 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 6300 m 3000 6300 l 3000 6600 l 2700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 6300 m 3300 6300 l 3300 6600 l 3000 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 6300 m 3900 6300 l 3900 6600 l 3600 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 6300 m 4200 6300 l 4200 6600 l 3900 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 6300 m 4500 6300 l 4500 6600 l 4200 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 6300 m 4800 6300 l 4800 6600 l 4500 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 6300 m 5100 6300 l 5100 6600 l 4800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 6300 m 5400 6300 l 5400 6600 l 5100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 6300 m 6000 6300 l 6000 6600 l 5700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 6300 m 5700 6300 l 5700 6600 l 5400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 6300 m 6300 6300 l 6300 6600 l 6000 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 6300 m 6600 6300 l 6600 6600 l 6300 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 6300 m 6900 6300 l 6900 6600 l 6600 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 6300 m 7200 6300 l 7200 6600 l 6900 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 6300 m 7500 6300 l 7500 6600 l 7200 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 6300 m 7800 6300 l 7800 6600 l 7500 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 6300 m 8100 6300 l 8100 6600 l 7800 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 6300 m 8400 6300 l 8400 6600 l 8100 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 6300 m 8700 6300 l 8700 6600 l 8400 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 6300 m 9000 6300 l 9000 6600 l 8700 6600 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3000 m 2400 3000 l 2400 3300 l 2100 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3000 m 3000 3000 l 3000 3300 l 2700 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3000 m 3300 3000 l 3300 3300 l 3000 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3000 m 3600 3000 l 3600 3300 l 3300 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 3000 m 3900 3000 l 3900 3300 l 3600 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline gs clippath 1920 5565 m 1980 5565 l 1980 5414 l 1950 5534 l 1920 5414 l cp eoclip n 1950 4500 m 1950 5550 l gs col0 s gr gr % arrowhead n 1920 5414 m 1950 5534 l 1980 5414 l 1920 5414 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2070 4215 m 2130 4215 l 2130 4064 l 2100 4184 l 2070 4064 l cp eoclip n 1800 3750 m 2100 3750 l 2100 4200 l gs col0 s gr gr % arrowhead n 2070 4064 m 2100 4184 l 2130 4064 l 2070 4064 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 6525 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7725 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8625 1050 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8625 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7125 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8925 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr /Times-Bold ff 240.00 scf sf 6150 2025 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 8625 825 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 9150 1875 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 8850 3300 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 7275 3450 m gs 1 -1 sc (4) col0 sh gr /Times-Bold ff 240.00 scf sf 7425 2175 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7950 825 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7650 1425 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8250 1650 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8850 1575 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8850 2625 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8175 2475 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7875 3075 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7500 2775 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6900 2550 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7125 1875 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6750 1425 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8400 2175 m gs 1 -1 sc (2) col0 sh gr /Times-Bold ff 240.00 scf sf 7050 825 m gs 1 -1 sc (4) col0 sh gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 6475 2040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7675 2040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7375 840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8575 1140 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 8575 3240 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7075 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 4440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 5790 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 5790 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 5790 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 5790 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 5790 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 5790 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 5790 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 5790 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 5790 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 5790 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 5790 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 5790 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 5790 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 5790 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 5790 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 5790 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 5790 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 5790 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 5790 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 6540 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 6540 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 6540 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 3240 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 3240 m gs 1 -1 sc (4) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 8875 2040 m gs 1 -1 sc (7) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_gr1.fig000066400000000000000000000352611514310134000260110ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 6150 600 9300 3450 6 6375 1800 6675 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6525 1950 150 150 6525 1950 6675 1950 4 0 0 10 0 0 16 0.0000 4 180 120 6475 2040 1\001 -6 6 7575 1800 7875 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7725 1950 150 150 7725 1950 7875 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7675 2040 2\001 -6 6 7275 600 7575 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 750 150 150 7425 750 7575 750 4 0 0 10 0 0 16 0.0000 4 180 120 7375 840 3\001 -6 6 8475 900 8775 1200 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8625 1050 150 150 8625 1050 8775 1050 4 0 0 10 0 0 16 0.0000 4 165 120 8575 1140 4\001 -6 6 8475 3000 8775 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8625 3150 150 150 8625 3150 8775 3150 4 0 0 10 0 0 16 0.0000 4 180 120 8575 3240 5\001 -6 6 6975 3000 7275 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7125 3150 150 150 7125 3150 7275 3150 4 0 0 10 0 0 16 0.0000 4 180 120 7075 3240 6\001 -6 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8925 1950 150 150 8925 1950 9075 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 5 7125 3150 8625 3150 7725 1950 8925 1950 8625 1050 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 8 6525 1950 7425 750 7725 1950 6525 1950 7125 3150 7725 1950 8625 1050 7425 750 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 8925 1950 8625 3150 4 0 0 12 0 2 16 0.0000 4 165 120 6150 2025 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 8625 825 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 9150 1875 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 8850 3300 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 7275 3450 4\001 4 0 0 12 0 2 16 0.0000 4 165 120 7425 2175 1\001 4 0 0 12 0 -1 16 0.0000 4 165 120 7950 825 2\001 4 0 0 12 0 -1 16 0.0000 4 165 120 7650 1425 2\001 4 0 0 12 0 -1 16 0.0000 4 165 120 8250 1650 2\001 4 0 0 12 0 -1 16 0.0000 4 180 120 8850 1575 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 8850 2625 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 8175 2475 3\001 4 0 0 12 0 -1 16 0.0000 4 180 120 7875 3075 3\001 4 0 0 12 0 -1 16 0.0000 4 180 120 7500 2775 3\001 4 0 0 12 0 -1 16 0.0000 4 180 120 6900 2550 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 7125 1875 1\001 4 0 0 12 0 -1 16 0.0000 4 180 120 6750 1425 1\001 4 0 0 12 0 -1 16 0.0000 4 165 120 8400 2175 2\001 4 0 0 12 0 2 16 0.0000 4 165 120 7050 825 4\001 4 0 0 8 0 0 16 0.0000 4 165 120 8875 2040 7\001 -6 6 600 600 2100 900 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 180 120 1900 840 1\001 -6 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 baseval\001 -6 6 1800 1800 2100 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 4 0 0 15 0 0 16 0.0000 4 165 240 1825 2040 24\001 -6 6 1800 1200 2100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 4 0 0 10 0 0 16 0.0000 4 165 120 1900 1440 7\001 -6 6 1800 2400 2100 2700 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 2400 1800 2700 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 2400 2100 2700 -6 6 2100 4200 2400 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 4200 2400 4200 2400 4500 2100 4500 2100 4200 4 0 0 15 0 0 16 0.0000 4 165 120 2200 4440 4\001 -6 6 2400 4200 2700 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 4200 2700 4200 2700 4500 2400 4500 2400 4200 4 0 0 15 0 0 16 0.0000 4 180 240 2425 4440 10\001 -6 6 2700 4200 3000 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 4200 3000 4200 3000 4500 2700 4500 2700 4200 4 0 0 15 0 0 16 0.0000 4 195 240 2725 4440 13\001 -6 6 3000 4200 3300 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 4200 3300 4200 3300 4500 3000 4500 3000 4200 4 0 0 15 0 0 16 0.0000 4 180 240 3025 4440 16\001 -6 6 3300 4200 3600 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 4200 3600 4200 3600 4500 3300 4500 3300 4200 4 0 0 15 0 0 16 0.0000 4 195 240 3325 4440 19\001 -6 6 3600 4200 3900 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 4200 3900 4200 3900 4500 3600 4500 3600 4200 4 0 0 15 0 0 16 0.0000 4 165 240 3625 4440 22\001 -6 6 1800 4200 2100 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 4200 2100 4200 2100 4500 1800 4500 1800 4200 4 0 0 10 0 0 16 0.0000 4 180 120 1900 4440 1\001 -6 6 9000 5550 9300 5850 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 9000 5550 9300 5550 9300 5850 9000 5850 9000 5550 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9300 5550 9000 5850 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9000 5550 9300 5850 -6 6 3900 4200 4200 4500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 4200 4200 4200 4200 4500 3900 4500 3900 4200 4 0 0 15 0 0 16 0.0000 4 180 240 3925 4440 25\001 -6 6 2100 5550 2400 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 5550 2400 5550 2400 5850 2100 5850 2100 5550 4 0 0 10 0 0 16 0.0000 4 165 120 2200 5790 2\001 -6 6 2400 5550 2700 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 5550 2700 5550 2700 5850 2400 5850 2400 5550 4 0 0 10 0 0 16 0.0000 4 180 120 2500 5790 6\001 -6 6 2700 5550 3000 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 5550 3000 5550 3000 5850 2700 5850 2700 5550 4 0 0 10 0 0 16 0.0000 4 180 120 2800 5790 3\001 -6 6 3000 5550 3300 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 5550 3300 5550 3300 5850 3000 5850 3000 5550 4 0 0 10 0 0 16 0.0000 4 165 120 3100 5790 4\001 -6 6 3300 5550 3600 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 5550 3600 5550 3600 5850 3300 5850 3300 5550 4 0 0 10 0 0 16 0.0000 4 180 120 3400 5790 1\001 -6 6 3600 5550 3900 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 5550 3900 5550 3900 5850 3600 5850 3600 5550 4 0 0 10 0 0 16 0.0000 4 165 120 3700 5790 7\001 -6 6 3900 5550 4200 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 5550 4200 5550 4200 5850 3900 5850 3900 5550 4 0 0 10 0 0 16 0.0000 4 180 120 4000 5790 6\001 -6 6 4200 5550 4500 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 5550 4500 5550 4500 5850 4200 5850 4200 5550 4 0 0 10 0 0 16 0.0000 4 180 120 4300 5790 5\001 -6 6 4500 5550 4800 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 5550 4800 5550 4800 5850 4500 5850 4500 5550 4 0 0 10 0 0 16 0.0000 4 180 120 4600 5790 1\001 -6 6 4800 5550 5100 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 5550 5100 5550 5100 5850 4800 5850 4800 5550 4 0 0 10 0 0 16 0.0000 4 165 120 4900 5790 2\001 -6 6 5100 5550 5400 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 5550 5400 5550 5400 5850 5100 5850 5100 5550 4 0 0 10 0 0 16 0.0000 4 165 120 5200 5790 4\001 -6 6 5400 5550 5700 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 5550 5700 5550 5700 5850 5400 5850 5400 5550 4 0 0 10 0 0 16 0.0000 4 165 120 5500 5790 2\001 -6 6 5700 5550 6000 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 5550 6000 5550 6000 5850 5700 5850 5700 5550 4 0 0 10 0 0 16 0.0000 4 165 120 5800 5790 7\001 -6 6 6000 5550 6300 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 5550 6300 5550 6300 5850 6000 5850 6000 5550 4 0 0 10 0 0 16 0.0000 4 180 120 6100 5790 3\001 -6 6 6300 5550 6600 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 5550 6600 5550 6600 5850 6300 5850 6300 5550 4 0 0 10 0 0 16 0.0000 4 165 120 6400 5790 7\001 -6 6 6600 5550 6900 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 5550 6900 5550 6900 5850 6600 5850 6600 5550 4 0 0 10 0 0 16 0.0000 4 165 120 6700 5790 2\001 -6 6 6900 5550 7200 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 5550 7200 5550 7200 5850 6900 5850 6900 5550 4 0 0 10 0 0 16 0.0000 4 180 120 7000 5790 6\001 -6 6 7200 5550 7500 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 5550 7500 5550 7500 5850 7200 5850 7200 5550 4 0 0 10 0 0 16 0.0000 4 165 120 7300 5790 2\001 -6 6 7500 5550 7800 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 5550 7800 5550 7800 5850 7500 5850 7500 5550 4 0 0 10 0 0 16 0.0000 4 180 120 7600 5790 1\001 -6 6 7800 5550 8100 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 5550 8100 5550 8100 5850 7800 5850 7800 5550 4 0 0 10 0 0 16 0.0000 4 180 120 7900 5790 5\001 -6 6 8100 5550 8400 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 5550 8400 5550 8400 5850 8100 5850 8100 5550 4 0 0 10 0 0 16 0.0000 4 180 120 8200 5790 5\001 -6 6 8400 5550 8700 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 5550 8700 5550 8700 5850 8400 5850 8400 5550 4 0 0 10 0 0 16 0.0000 4 165 120 8500 5790 2\001 -6 6 8700 5550 9000 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 5550 9000 5550 9000 5850 8700 5850 8700 5550 4 0 0 10 0 0 16 0.0000 4 165 120 8800 5790 4\001 -6 6 1800 5550 2100 5850 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 5550 2100 5550 2100 5850 1800 5850 1800 5550 4 0 0 10 0 0 16 0.0000 4 180 120 1900 5790 3\001 -6 6 1800 6300 2100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 6300 2100 6300 2100 6600 1800 6600 1800 6300 4 0 0 10 0 0 16 0.0000 4 180 120 1900 6540 1\001 -6 6 2100 6300 2400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 6300 2400 6300 2400 6600 2100 6600 2100 6300 4 0 0 10 0 0 16 0.0000 4 180 120 2200 6540 1\001 -6 6 2400 6300 2700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 6300 2700 6300 2700 6600 2400 6600 2400 6300 4 0 0 10 0 0 16 0.0000 4 180 120 2500 6540 1\001 -6 6 3300 6300 3600 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 6300 3600 6300 3600 6600 3300 6600 3300 6300 4 0 0 10 0 0 16 0.0000 4 180 120 3400 6540 1\001 -6 6 2700 6300 3000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 6300 3000 6300 3000 6600 2700 6600 2700 6300 4 0 0 10 0 0 16 0.0000 4 165 120 2800 6540 2\001 -6 6 3000 6300 3300 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 6300 3300 6300 3300 6600 3000 6600 3000 6300 4 0 0 10 0 0 16 0.0000 4 165 120 3100 6540 2\001 -6 6 3600 6300 3900 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 6300 3900 6300 3900 6600 3600 6600 3600 6300 4 0 0 10 0 0 16 0.0000 4 165 120 3700 6540 2\001 -6 6 3900 6300 4200 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 6300 4200 6300 4200 6600 3900 6600 3900 6300 4 0 0 10 0 0 16 0.0000 4 180 120 4000 6540 3\001 -6 6 4200 6300 4500 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 6300 4500 6300 4500 6600 4200 6600 4200 6300 4 0 0 10 0 0 16 0.0000 4 180 120 4300 6540 3\001 -6 6 4500 6300 4800 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 6300 4800 6300 4800 6600 4500 6600 4500 6300 4 0 0 10 0 0 16 0.0000 4 180 120 4600 6540 1\001 -6 6 4800 6300 5100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 6300 5100 6300 5100 6600 4800 6600 4800 6300 4 0 0 10 0 0 16 0.0000 4 165 120 4900 6540 2\001 -6 6 5100 6300 5400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 6300 5400 6300 5400 6600 5100 6600 5100 6300 4 0 0 10 0 0 16 0.0000 4 165 120 5200 6540 2\001 -6 6 5700 6300 6000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 6300 6000 6300 6000 6600 5700 6600 5700 6300 4 0 0 10 0 0 16 0.0000 4 180 120 5800 6540 1\001 -6 6 5400 6300 5700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 6300 5700 6300 5700 6600 5400 6600 5400 6300 4 0 0 10 0 0 16 0.0000 4 165 120 5500 6540 2\001 -6 6 6000 6300 6300 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 6300 6300 6300 6300 6600 6000 6600 6000 6300 4 0 0 10 0 0 16 0.0000 4 165 120 6100 6540 2\001 -6 6 6300 6300 6600 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 6300 6600 6300 6600 6600 6300 6600 6300 6300 4 0 0 10 0 0 16 0.0000 4 180 120 6400 6540 1\001 -6 6 6600 6300 6900 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 6300 6900 6300 6900 6600 6600 6600 6600 6300 4 0 0 10 0 0 16 0.0000 4 180 120 6700 6540 3\001 -6 6 6900 6300 7200 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 6300 7200 6300 7200 6600 6900 6600 6900 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7000 6540 3\001 -6 6 7200 6300 7500 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 6300 7500 6300 7500 6600 7200 6600 7200 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7300 6540 3\001 -6 6 7500 6300 7800 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 6300 7800 6300 7800 6600 7500 6600 7500 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7600 6540 1\001 -6 6 7800 6300 8100 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 6300 8100 6300 8100 6600 7800 6600 7800 6300 4 0 0 10 0 0 16 0.0000 4 180 120 7900 6540 3\001 -6 6 8100 6300 8400 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 6300 8400 6300 8400 6600 8100 6600 8100 6300 4 0 0 10 0 0 16 0.0000 4 180 120 8200 6540 1\001 -6 6 8400 6300 8700 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 6300 8700 6300 8700 6600 8400 6600 8400 6300 4 0 0 10 0 0 16 0.0000 4 165 120 8500 6540 2\001 -6 6 8700 6300 9000 6600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 6300 9000 6300 9000 6600 8700 6600 8700 6300 4 0 0 10 0 0 16 0.0000 4 180 120 8800 6540 1\001 -6 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 10 0 0 16 0.0000 4 165 120 1900 3240 4\001 -6 6 2100 3000 2400 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3000 2400 3000 2400 3300 2100 3300 2100 3000 4 0 0 10 0 0 16 0.0000 4 180 120 2200 3240 1\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 10 0 0 16 0.0000 4 165 120 2500 3240 4\001 -6 6 2700 3000 3000 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3000 3000 3000 3000 3300 2700 3300 2700 3000 4 0 0 10 0 0 16 0.0000 4 165 120 2800 3240 4\001 -6 6 3000 3000 3300 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3000 3300 3000 3300 3300 3000 3300 3000 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3100 3240 4\001 -6 6 3300 3000 3600 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3000 3600 3000 3600 3300 3300 3300 3300 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3400 3240 4\001 -6 6 3600 3000 3900 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3000 3900 3000 3900 3300 3600 3300 3600 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3700 3240 4\001 -6 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 1950 4500 1950 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4050 4500 4050 4800 9150 4800 9150 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 4500 3750 4875 8250 4875 8250 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 4500 3450 4950 7350 4950 7350 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 4500 3150 5025 6450 5025 6450 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 4500 2850 5100 5550 5100 5550 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 4500 2550 5175 4650 5175 4650 5550 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 4500 2250 5250 2850 5250 2850 5550 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 1800 3750 2100 3750 2100 4200 4 0 0 20 0 12 16 0.0000 4 165 1050 600 1425 vertnbr\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 2025 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2625 vlbltab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4425 verttab\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 5775 edgetab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 6525 edlotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3225 velotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3825 vendtab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_gr2.eps000066400000000000000000000442531514310134000260350ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Tue Nov 4 11:45:49 2003 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 631 218 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 218 moveto 0 0 lineto 631 0 lineto 631 218 lineto closepath clip newpath -36.0 252.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Polyline 7.500 slw n 1800 1950 m 2100 1950 l 2100 2250 l 1800 2250 l cp gs col0 s gr % Polyline n 3900 1950 m 4200 1950 l 4200 2250 l 3900 2250 l cp gs col0 s gr % Polyline n 4200 1950 m 4500 1950 l 4500 2250 l 4200 2250 l cp gs col0 s gr % Polyline n 6300 1950 m 6600 1950 l 6600 2250 l 6300 2250 l cp gs col0 s gr % Polyline n 9300 1950 m 9600 1950 l 9600 2250 l 9300 2250 l cp gs col0 s gr % Polyline n 10500 1950 m 10800 1950 l 10800 2250 l 10500 2250 l cp gs col0 s gr % Polyline n 10800 1950 m 11100 1950 l 11100 2250 l 10800 2250 l cp gs col0 s gr % Polyline n 1800 3900 m 2100 3900 l 2100 4200 l 1800 4200 l cp gs col0 s gr % Polyline n 3900 3900 m 4200 3900 l 4200 4200 l 3900 4200 l cp gs col0 s gr % Polyline n 4200 3900 m 4500 3900 l 4500 4200 l 4200 4200 l cp gs col0 s gr % Polyline n 6300 3900 m 6600 3900 l 6600 4200 l 6300 4200 l cp gs col0 s gr % Polyline n 9300 3900 m 9600 3900 l 9600 4200 l 9300 4200 l cp gs col0 s gr % Polyline n 10500 3900 m 10800 3900 l 10800 4200 l 10500 4200 l cp gs col0 s gr % Polyline n 10800 3900 m 11100 3900 l 11100 4200 l 10800 4200 l cp gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw gs clippath 8520 1965 m 8580 1965 l 8580 1814 l 8550 1934 l 8520 1814 l cp eoclip n 3750 900 m 3750 1275 l 8550 1275 l 8550 1950 l gs col0 s gr gr % arrowhead n 8520 1814 m 8550 1934 l 8580 1814 l 8520 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9720 1965 m 9780 1965 l 9780 1814 l 9750 1934 l 9720 1814 l cp eoclip n 3450 900 m 3450 1350 l 9750 1350 l 9750 1950 l gs col0 s gr gr % arrowhead n 9720 1814 m 9750 1934 l 9780 1814 l 9720 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7620 1965 m 7680 1965 l 7680 1814 l 7650 1934 l 7620 1814 l cp eoclip n 3150 900 m 3150 1425 l 7650 1425 l 7650 1950 l gs col0 s gr gr % arrowhead n 7620 1814 m 7650 1934 l 7680 1814 l 7620 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4620 1965 m 4680 1965 l 4680 1814 l 4650 1934 l 4620 1814 l cp eoclip n 2850 900 m 2850 1500 l 4650 1500 l 4650 1950 l gs col0 s gr gr % arrowhead n 4620 1814 m 4650 1934 l 4680 1814 l 4620 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 1965 m 5580 1965 l 5580 1814 l 5550 1934 l 5520 1814 l cp eoclip n 2550 900 m 2550 1575 l 5550 1575 l 5550 1950 l gs col0 s gr gr % arrowhead n 5520 1814 m 5550 1934 l 5580 1814 l 5520 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2220 1965 m 2280 1965 l 2280 1814 l 2250 1934 l 2220 1814 l cp eoclip n 2250 900 m 2250 1950 l gs col0 s gr gr % arrowhead n 2220 1814 m 2250 1934 l 2280 1814 l 2220 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9480 2235 m 9420 2235 l 9420 2386 l 9450 2266 l 9480 2386 l cp eoclip n 3750 3300 m 3750 3000 l 9450 3000 l 9450 2250 l gs col0 s gr gr % arrowhead n 9480 2386 m 9450 2266 l 9420 2386 l 9480 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10680 2235 m 10620 2235 l 10620 2386 l 10650 2266 l 10680 2386 l cp eoclip n 3450 3300 m 3450 2925 l 10650 2925 l 10650 2250 l gs col0 s gr gr % arrowhead n 10680 2386 m 10650 2266 l 10620 2386 l 10680 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8580 2235 m 8520 2235 l 8520 2386 l 8550 2266 l 8580 2386 l cp eoclip n 3150 3300 m 3150 2850 l 8550 2850 l 8550 2250 l gs col0 s gr gr % arrowhead n 8580 2386 m 8550 2266 l 8520 2386 l 8580 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5580 2235 m 5520 2235 l 5520 2386 l 5550 2266 l 5580 2386 l cp eoclip n 2850 3300 m 2850 2775 l 5550 2775 l 5550 2250 l gs col0 s gr gr % arrowhead n 5580 2386 m 5550 2266 l 5520 2386 l 5580 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6480 2235 m 6420 2235 l 6420 2386 l 6450 2266 l 6480 2386 l cp eoclip n 2550 3300 m 2550 2700 l 6450 2700 l 6450 2250 l gs col0 s gr gr % arrowhead n 6480 2386 m 6450 2266 l 6420 2386 l 6480 2386 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4080 2235 m 4020 2235 l 4020 2386 l 4050 2266 l 4080 2386 l cp eoclip n 2250 3300 m 2250 2625 l 4050 2625 l 4050 2250 l gs col0 s gr gr % arrowhead n 4080 2386 m 4050 2266 l 4020 2386 l 4080 2386 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 2175 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 3525 m gs 1 -1 sc (vendtab) col0 sh gr /Courier ff 240.00 scf sf 600 4125 m gs 1 -1 sc (edlotab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 2100 1950 m 2400 1950 l 2400 2250 l 2100 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1950 m 2700 1950 l 2700 2250 l 2400 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 1950 m 3000 1950 l 3000 2250 l 2700 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 1950 m 3300 1950 l 3300 2250 l 3000 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 1950 m 3600 1950 l 3600 2250 l 3300 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 1950 m 3900 1950 l 3900 2250 l 3600 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 1950 m 4800 1950 l 4800 2250 l 4500 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 1950 m 5100 1950 l 5100 2250 l 4800 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 1950 m 5400 1950 l 5400 2250 l 5100 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 1950 m 5700 1950 l 5700 2250 l 5400 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 1950 m 6000 1950 l 6000 2250 l 5700 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 1950 m 6300 1950 l 6300 2250 l 6000 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 1950 m 7200 1950 l 7200 2250 l 6900 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 1950 m 7500 1950 l 7500 2250 l 7200 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 1950 m 6900 1950 l 6900 2250 l 6600 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 1950 m 7800 1950 l 7800 2250 l 7500 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 1950 m 8100 1950 l 8100 2250 l 7800 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 1950 m 8400 1950 l 8400 2250 l 8100 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 1950 m 8700 1950 l 8700 2250 l 8400 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 1950 m 9000 1950 l 9000 2250 l 8700 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9000 1950 m 9300 1950 l 9300 2250 l 9000 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 1950 m 9900 1950 l 9900 2250 l 9600 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 1950 m 10200 1950 l 10200 2250 l 9900 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 1950 m 10500 1950 l 10500 2250 l 10200 2250 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3900 m 3000 3900 l 3000 4200 l 2700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3900 m 2400 3900 l 2400 4200 l 2100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3900 m 2700 3900 l 2700 4200 l 2400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3900 m 3300 3900 l 3300 4200 l 3000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3900 m 3600 3900 l 3600 4200 l 3300 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 3900 m 3900 3900 l 3900 4200 l 3600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 3900 m 5100 3900 l 5100 4200 l 4800 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 3900 m 4800 3900 l 4800 4200 l 4500 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 3900 m 5400 3900 l 5400 4200 l 5100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 3900 m 5700 3900 l 5700 4200 l 5400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 3900 m 6000 3900 l 6000 4200 l 5700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 3900 m 6300 3900 l 6300 4200 l 6000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 3900 m 6900 3900 l 6900 4200 l 6600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 3900 m 7200 3900 l 7200 4200 l 6900 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 3900 m 7500 3900 l 7500 4200 l 7200 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 3900 m 7800 3900 l 7800 4200 l 7500 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 3900 m 8100 3900 l 8100 4200 l 7800 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 3900 m 8400 3900 l 8400 4200 l 8100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 3900 m 8700 3900 l 8700 4200 l 8400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 3900 m 9000 3900 l 9000 4200 l 8700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9000 3900 m 9300 3900 l 9300 4200 l 9000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9600 3900 m 9900 3900 l 9900 4200 l 9600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9900 3900 m 10200 3900 l 10200 4200 l 9900 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 10200 3900 m 10500 3900 l 10500 4200 l 10200 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 840 m gs 1 -1 sc (17) col0 sh gr % Polyline n 2100 600 m 2400 600 l 2400 900 l 2100 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 840 m gs 1 -1 sc (2) col0 sh gr % Polyline n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 2700 600 m 3000 600 l 3000 900 l 2700 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3600 600 m 3900 600 l 3900 900 l 3600 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 840 m gs 1 -1 sc (23) col0 sh gr % Polyline n 3300 600 m 3600 600 l 3600 900 l 3300 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 840 m gs 1 -1 sc (27) col0 sh gr % Polyline n 3000 600 m 3300 600 l 3300 900 l 3000 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 840 m gs 1 -1 sc (20) col0 sh gr % Polyline n 2100 3300 m 2400 3300 l 2400 3600 l 2100 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 3540 m gs 1 -1 sc (8) col0 sh gr % Polyline n 1800 3300 m 2100 3300 l 2100 3600 l 1800 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 3540 m gs 1 -1 sc (20) col0 sh gr % Polyline n 2400 3300 m 2700 3300 l 2700 3600 l 2400 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 3540 m gs 1 -1 sc (16) col0 sh gr % Polyline n 2700 3300 m 3000 3300 l 3000 3600 l 2700 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 3540 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3600 3300 m 3900 3300 l 3900 3600 l 3600 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 3540 m gs 1 -1 sc (26) col0 sh gr % Polyline n 3300 3300 m 3600 3300 l 3600 3600 l 3300 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 3540 m gs 1 -1 sc (30) col0 sh gr % Polyline n 3000 3300 m 3300 3300 l 3300 3600 l 3000 3600 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 3540 m gs 1 -1 sc (23) col0 sh gr % Polyline gs clippath 6720 1965 m 6780 1965 l 6780 1814 l 6750 1934 l 6720 1814 l cp eoclip n 1950 900 m 1950 1650 l 6750 1650 l 6750 1950 l gs col0 s gr gr % arrowhead n 6720 1814 m 6750 1934 l 6780 1814 l 6720 1814 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7680 2235 m 7620 2235 l 7620 2386 l 7650 2266 l 7680 2386 l cp eoclip n 1950 3300 m 1950 2550 l 7650 2550 l 7650 2250 l gs col0 s gr gr % arrowhead n 7680 2386 m 7650 2266 l 7620 2386 l 7680 2386 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 2200 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 2190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 2190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 2190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 2190 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 2190 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 2190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9100 2190 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 2190 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 2190 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 9100 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 9700 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 10000 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 10300 4140 m gs 1 -1 sc (3) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_gr2.fig000066400000000000000000000324111514310134000260040ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 1950 11100 2250 6 2100 1950 3900 2250 6 2100 1950 2400 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 1950 2400 1950 2400 2250 2100 2250 2100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 2200 2190 3\001 -6 6 2400 1950 2700 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1950 2700 1950 2700 2250 2400 2250 2400 1950 4 0 0 10 0 0 16 0.0000 4 165 120 2500 2190 4\001 -6 6 2700 1950 3000 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 1950 3000 1950 3000 2250 2700 2250 2700 1950 4 0 0 10 0 0 16 0.0000 4 180 120 2800 2190 1\001 -6 6 3000 1950 3300 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 1950 3300 1950 3300 2250 3000 2250 3000 1950 4 0 0 10 0 0 16 0.0000 4 165 120 3100 2190 7\001 -6 6 3300 1950 3600 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 1950 3600 1950 3600 2250 3300 2250 3300 1950 4 0 0 10 0 0 16 0.0000 4 180 120 3400 2190 6\001 -6 6 3600 1950 3900 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 1950 3900 1950 3900 2250 3600 2250 3600 1950 4 0 0 10 0 0 16 0.0000 4 180 120 3700 2190 5\001 -6 -6 6 4500 1950 5400 2250 6 4500 1950 4800 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 1950 4800 1950 4800 2250 4500 2250 4500 1950 4 0 0 10 0 0 16 0.0000 4 165 120 4600 2190 2\001 -6 6 4800 1950 5100 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 1950 5100 1950 5100 2250 4800 2250 4800 1950 4 0 0 10 0 0 16 0.0000 4 165 120 4900 2190 7\001 -6 6 5100 1950 5400 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 1950 5400 1950 5400 2250 5100 2250 5100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 5200 2190 3\001 -6 -6 6 5400 1950 6300 2250 6 5400 1950 5700 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 1950 5700 1950 5700 2250 5400 2250 5400 1950 4 0 0 10 0 0 16 0.0000 4 180 120 5500 2190 1\001 -6 6 5700 1950 6000 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 1950 6000 1950 6000 2250 5700 2250 5700 1950 4 0 0 10 0 0 16 0.0000 4 165 120 5800 2190 2\001 -6 6 6000 1950 6300 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 1950 6300 1950 6300 2250 6000 2250 6000 1950 4 0 0 10 0 0 16 0.0000 4 165 120 6100 2190 4\001 -6 -6 6 6600 1950 7500 2250 6 6900 1950 7200 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 1950 7200 1950 7200 2250 6900 2250 6900 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7000 2190 2\001 -6 6 7200 1950 7500 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 1950 7500 1950 7500 2250 7200 2250 7200 1950 4 0 0 10 0 0 16 0.0000 4 180 120 7300 2190 6\001 -6 6 6600 1950 6900 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 1950 6900 1950 6900 2250 6600 2250 6600 1950 4 0 0 10 0 0 16 0.0000 4 180 120 6700 2190 3\001 -6 -6 6 7500 1950 8400 2250 6 7500 1950 7800 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 1950 7800 1950 7800 2250 7500 2250 7500 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7600 2190 7\001 -6 6 7800 1950 8100 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 1950 8100 1950 8100 2250 7800 2250 7800 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7900 2190 2\001 -6 6 8100 1950 8400 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 1950 8400 1950 8400 2250 8100 2250 8100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 8200 2190 6\001 -6 -6 6 8400 1950 9300 2250 6 8400 1950 8700 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 1950 8700 1950 8700 2250 8400 2250 8400 1950 4 0 0 10 0 0 16 0.0000 4 180 120 8500 2190 5\001 -6 6 8700 1950 9000 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 1950 9000 1950 9000 2250 8700 2250 8700 1950 4 0 0 10 0 0 16 0.0000 4 165 120 8800 2190 2\001 -6 6 9000 1950 9300 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9000 1950 9300 1950 9300 2250 9000 2250 9000 1950 4 0 0 10 0 0 16 0.0000 4 165 120 9100 2190 4\001 -6 -6 6 9600 1950 10500 2250 6 9600 1950 9900 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 1950 9900 1950 9900 2250 9600 2250 9600 1950 4 0 0 10 0 0 16 0.0000 4 165 120 9700 2190 2\001 -6 6 9900 1950 10200 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 1950 10200 1950 10200 2250 9900 2250 9900 1950 4 0 0 10 0 0 16 0.0000 4 180 120 10000 2190 1\001 -6 6 10200 1950 10500 2250 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 1950 10500 1950 10500 2250 10200 2250 10200 1950 4 0 0 10 0 0 16 0.0000 4 180 120 10300 2190 5\001 -6 -6 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 1800 1950 2100 1950 2100 2250 1800 2250 1800 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 3900 1950 4200 1950 4200 2250 3900 2250 3900 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 4200 1950 4500 1950 4500 2250 4200 2250 4200 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 6300 1950 6600 1950 6600 2250 6300 2250 6300 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 9300 1950 9600 1950 9600 2250 9300 2250 9300 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10500 1950 10800 1950 10800 2250 10500 2250 10500 1950 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10800 1950 11100 1950 11100 2250 10800 2250 10800 1950 -6 6 1800 3900 11100 4200 6 2100 3900 3900 4200 6 2700 3900 3000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3900 3000 3900 3000 4200 2700 4200 2700 3900 4 0 0 10 0 0 16 0.0000 4 180 120 2800 4140 1\001 -6 6 2100 3900 2400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3900 2400 3900 2400 4200 2100 4200 2100 3900 4 0 0 10 0 0 16 0.0000 4 165 120 2200 4140 2\001 -6 6 2400 3900 2700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3900 2700 3900 2700 4200 2400 4200 2400 3900 4 0 0 10 0 0 16 0.0000 4 165 120 2500 4140 2\001 -6 6 3000 3900 3300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3900 3300 3900 3300 4200 3000 4200 3000 3900 4 0 0 10 0 0 16 0.0000 4 165 120 3100 4140 2\001 -6 6 3300 3900 3600 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3900 3600 3900 3600 4200 3300 4200 3300 3900 4 0 0 10 0 0 16 0.0000 4 180 120 3400 4140 3\001 -6 6 3600 3900 3900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3900 3900 3900 3900 4200 3600 4200 3600 3900 4 0 0 10 0 0 16 0.0000 4 180 120 3700 4140 3\001 -6 -6 6 4500 3900 5400 4200 6 4800 3900 5100 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 3900 5100 3900 5100 4200 4800 4200 4800 3900 4 0 0 10 0 0 16 0.0000 4 180 120 4900 4140 1\001 -6 6 4500 3900 4800 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 3900 4800 3900 4800 4200 4500 4200 4500 3900 4 0 0 10 0 0 16 0.0000 4 165 120 4600 4140 2\001 -6 6 5100 3900 5400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 3900 5400 3900 5400 4200 5100 4200 5100 3900 4 0 0 10 0 0 16 0.0000 4 165 120 5200 4140 2\001 -6 -6 6 5400 3900 6300 4200 6 5400 3900 5700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 3900 5700 3900 5700 4200 5400 4200 5400 3900 4 0 0 10 0 0 16 0.0000 4 180 120 5500 4140 1\001 -6 6 5700 3900 6000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 3900 6000 3900 6000 4200 5700 4200 5700 3900 4 0 0 10 0 0 16 0.0000 4 165 120 5800 4140 2\001 -6 6 6000 3900 6300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 3900 6300 3900 6300 4200 6000 4200 6000 3900 4 0 0 10 0 0 16 0.0000 4 165 120 6100 4140 2\001 -6 -6 6 6600 3900 7500 4200 6 6600 3900 6900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 3900 6900 3900 6900 4200 6600 4200 6600 3900 4 0 0 10 0 0 16 0.0000 4 180 120 6700 4140 1\001 -6 6 6900 3900 7200 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 3900 7200 3900 7200 4200 6900 4200 6900 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7000 4140 1\001 -6 6 7200 3900 7500 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 3900 7500 3900 7500 4200 7200 4200 7200 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7300 4140 1\001 -6 -6 6 7500 3900 8400 4200 6 7500 3900 7800 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 3900 7800 3900 7800 4200 7500 4200 7500 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7600 4140 1\001 -6 6 7800 3900 8100 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 3900 8100 3900 8100 4200 7800 4200 7800 3900 4 0 0 10 0 0 16 0.0000 4 180 120 7900 4140 3\001 -6 6 8100 3900 8400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 3900 8400 3900 8400 4200 8100 4200 8100 3900 4 0 0 10 0 0 16 0.0000 4 180 120 8200 4140 3\001 -6 -6 6 8400 3900 9300 4200 6 8400 3900 8700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 3900 8700 3900 8700 4200 8400 4200 8400 3900 4 0 0 10 0 0 16 0.0000 4 180 120 8500 4140 1\001 -6 6 8700 3900 9000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 3900 9000 3900 9000 4200 8700 4200 8700 3900 4 0 0 10 0 0 16 0.0000 4 165 120 8800 4140 2\001 -6 6 9000 3900 9300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9000 3900 9300 3900 9300 4200 9000 4200 9000 3900 4 0 0 10 0 0 16 0.0000 4 180 120 9100 4140 1\001 -6 -6 6 9600 3900 10500 4200 6 9600 3900 9900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 3900 9900 3900 9900 4200 9600 4200 9600 3900 4 0 0 10 0 0 16 0.0000 4 180 120 9700 4140 3\001 -6 6 9900 3900 10200 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 3900 10200 3900 10200 4200 9900 4200 9900 3900 4 0 0 10 0 0 16 0.0000 4 180 120 10000 4140 1\001 -6 6 10200 3900 10500 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 3900 10500 3900 10500 4200 10200 4200 10200 3900 4 0 0 10 0 0 16 0.0000 4 180 120 10300 4140 3\001 -6 -6 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 1800 3900 2100 3900 2100 4200 1800 4200 1800 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 3900 3900 4200 3900 4200 4200 3900 4200 3900 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 4200 3900 4500 3900 4500 4200 4200 4200 4200 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 6300 3900 6600 3900 6600 4200 6300 4200 6300 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 9300 3900 9600 3900 9600 4200 9300 4200 9300 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10500 3900 10800 3900 10800 4200 10500 4200 10500 3900 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 10800 3900 11100 3900 11100 4200 10800 4200 10800 3900 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 15 0 0 16 0.0000 4 180 240 1825 840 17\001 -6 6 2100 600 2400 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 600 2400 600 2400 900 2100 900 2100 600 4 0 0 15 0 0 16 0.0000 4 165 120 2200 840 2\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 15 0 0 16 0.0000 4 195 240 2425 840 13\001 -6 6 2700 600 3000 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 600 3000 600 3000 900 2700 900 2700 600 4 0 0 15 0 0 16 0.0000 4 180 240 2725 840 10\001 -6 6 3600 600 3900 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 600 3900 600 3900 900 3600 900 3600 600 4 0 0 15 0 0 16 0.0000 4 180 240 3625 840 23\001 -6 6 3300 600 3600 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 600 3600 600 3600 900 3300 900 3300 600 4 0 0 15 0 0 16 0.0000 4 165 240 3325 840 27\001 -6 6 3000 600 3300 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 600 3300 600 3300 900 3000 900 3000 600 4 0 0 15 0 0 16 0.0000 4 165 240 3025 840 20\001 -6 6 2100 3300 2400 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3300 2400 3300 2400 3600 2100 3600 2100 3300 4 0 0 15 0 0 16 0.0000 4 165 120 2200 3540 8\001 -6 6 1800 3300 2100 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3300 2100 3300 2100 3600 1800 3600 1800 3300 4 0 0 15 0 0 16 0.0000 4 165 240 1825 3540 20\001 -6 6 2400 3300 2700 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3300 2700 3300 2700 3600 2400 3600 2400 3300 4 0 0 15 0 0 16 0.0000 4 180 240 2425 3540 16\001 -6 6 2700 3300 3000 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3300 3000 3300 3000 3600 2700 3600 2700 3300 4 0 0 15 0 0 16 0.0000 4 195 240 2725 3540 13\001 -6 6 3600 3300 3900 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3300 3900 3300 3900 3600 3600 3600 3600 3300 4 0 0 15 0 0 16 0.0000 4 180 240 3625 3540 26\001 -6 6 3300 3300 3600 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3300 3600 3300 3600 3600 3300 3600 3300 3300 4 0 0 15 0 0 16 0.0000 4 180 240 3325 3540 30\001 -6 6 3000 3300 3300 3600 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3300 3300 3300 3300 3600 3000 3600 3000 3300 4 0 0 15 0 0 16 0.0000 4 180 240 3025 3540 23\001 -6 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 900 3750 1275 8550 1275 8550 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 900 3450 1350 9750 1350 9750 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 900 3150 1425 7650 1425 7650 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 900 2850 1500 4650 1500 4650 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 900 2550 1575 5550 1575 5550 1950 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 4 1 1 1.00 60.00 120.00 1950 900 1950 1650 6750 1650 6750 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 2250 900 2250 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 3300 3750 3000 9450 3000 9450 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 3300 3450 2925 10650 2925 10650 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 3300 3150 2850 8550 2850 8550 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 3300 2850 2775 5550 2775 5550 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 3300 2550 2700 6450 2700 6450 2250 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 3300 2250 2625 4050 2625 4050 2250 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 4 1 1 1.00 60.00 120.00 1950 3300 1950 2550 7650 2550 7650 2250 4 0 0 20 0 12 16 0.0000 4 210 1050 600 2175 edgetab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 verttab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3525 vendtab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4125 edlotab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_lea.eps000066400000000000000000000160351514310134000261010ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_lea.fig %%Creator: fig2dev Version 3.2 Patchlevel 5a %%CreationDate: Fri Jun 25 18:03:31 2010 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 437 118 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 118 moveto 0 0 lineto 437 0 lineto 437 118 lineto closepath clip newpath -44.3 221.0 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw [60 27 15 20 15 27] 0 sd n 750 2700 m 7650 2700 l gs col0 s gr [] 0 sd % Polyline [60 27 15 20 15 27] 0 sd n 750 3300 m 7650 3300 l gs col0 s gr [] 0 sd % Polyline [60 27 15 20 15 27] 0 sd n 750 2100 m 7650 2100 l gs col0 s gr [] 0 sd /Times-Roman ff 266.67 scf sf 7725 2775 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 266.67 scf sf 7725 3375 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 266.67 scf sf 7725 2175 m gs 1 -1 sc (20) col0 sh gr % here ends figure; % % here starts figure with depth 11 % Polyline 0 slj 0 slc 7.500 slw n 900 3600 m 1200 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 1200 3000 m 1500 3600 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 2100 3600 m 2400 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 2400 3000 m 2700 3600 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 3300 3600 m 3600 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 3600 3000 m 3900 3600 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 4500 3600 m 4800 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 4800 3000 m 5100 3600 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 3600 3000 m 4200 2400 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 4200 2400 m 4800 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 5700 3600 m 6000 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 6000 3000 m 6300 3600 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 6900 3600 m 7200 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 7200 3000 m 7500 3600 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 6000 3000 m 6600 2400 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 6600 2400 m 7200 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 1200 3000 m 1800 2400 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 1800 2400 m 2400 3000 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 1800 2400 m 4200 1800 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 4200 1800 m 4200 2400 l gs 0.50 setgray ef gr gs col-1 s gr % Polyline n 4200 1800 m 6600 2400 l gs 0.50 setgray ef gr gs col-1 s gr % Ellipse n 900 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 1500 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 1200 3000 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 2100 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 2700 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 2400 3000 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 3300 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3900 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3600 3000 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 4500 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5100 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 3000 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 4200 2385 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 5700 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6300 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6000 3000 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 6900 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7500 3600 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7200 3000 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 6600 2385 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 1800 2385 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % Ellipse n 4200 1800 75 75 0 360 DrawEllipse gs 0.75 setgray ef gr gs col-1 s gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_lea.fig000066400000000000000000000067331514310134000260630ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5b Landscape Center Inches Letter 100.00 Single -2 1200 2 6 825 2925 1650 3675 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 900 3600 75 75 900 3600 975 3600 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 1500 3600 75 75 1500 3600 1575 3600 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 1200 3000 75 75 1200 3000 1275 3075 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 900 3600 1200 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 1200 3000 1500 3600 -6 6 2025 2925 2850 3675 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 2100 3600 75 75 2100 3600 2175 3600 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 2700 3600 75 75 2700 3600 2775 3600 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 2400 3000 75 75 2400 3000 2475 3075 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 2100 3600 2400 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 2400 3000 2700 3600 -6 6 3225 2250 5250 3675 6 3225 2925 4050 3675 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 3300 3600 75 75 3300 3600 3375 3600 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 3900 3600 75 75 3900 3600 3975 3600 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 3600 3000 75 75 3600 3000 3675 3075 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 3300 3600 3600 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 3600 3000 3900 3600 -6 6 4425 2925 5250 3675 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 4500 3600 75 75 4500 3600 4575 3600 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 5100 3600 75 75 5100 3600 5175 3600 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 4800 3000 75 75 4800 3000 4875 3075 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 4500 3600 4800 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 4800 3000 5100 3600 -6 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 4200 2385 75 75 4200 2385 4275 2460 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 3600 3000 4200 2400 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 4200 2400 4800 3000 -6 6 5625 2250 7650 3675 6 5625 2925 6450 3675 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 5700 3600 75 75 5700 3600 5775 3600 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 6300 3600 75 75 6300 3600 6375 3600 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 6000 3000 75 75 6000 3000 6075 3075 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 5700 3600 6000 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 6000 3000 6300 3600 -6 6 6825 2925 7650 3675 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 6900 3600 75 75 6900 3600 6975 3600 1 3 0 1 -1 -1 10 0 20 0.000 1 0.0000 7500 3600 75 75 7500 3600 7575 3600 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 7200 3000 75 75 7200 3000 7275 3075 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 6900 3600 7200 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 7200 3000 7500 3600 -6 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 6600 2385 75 75 6600 2385 6675 2460 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 6000 3000 6600 2400 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 6600 2400 7200 3000 -6 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 1800 2385 75 75 1800 2385 1875 2460 1 3 0 1 -1 -1 10 0 5 0.000 1 0.0000 4200 1800 75 75 4200 1800 4275 1875 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 1200 3000 1800 2400 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 1800 2400 2400 3000 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 1800 2400 4200 1800 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 4200 1800 4200 2400 2 1 0 1 -1 -1 11 0 10 0.000 0 0 -1 0 0 2 4200 1800 6600 2400 2 1 4 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 750 2700 7650 2700 2 1 4 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 750 3300 7650 3300 2 1 4 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 2 750 2100 7650 2100 4 0 0 50 -1 0 16 0.0000 4 195 135 7725 2775 7\001 4 0 0 50 -1 0 16 0.0000 4 195 135 7725 3375 2\001 4 0 0 50 -1 0 16 0.0000 4 195 270 7725 2175 20\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_lea.pdf000066400000000000000000000120601514310134000260550ustar00rootroot00000000000000%PDF-1.4 %Çì¢ 5 0 obj <> stream xœÍY=7 íçWL;ÅFÔ·Ú›4öl¤Z#g¹ÂI‘¿ñS\߸Îà€[ŠóôøV¢F”öën°ü“ÏÇëöÓ§¶¿ü³ý¶§ºC½Å}ì@ÿÐþ}b>oùVö7ê·ú°µ½Œ°¿n2›mÇtÆdN4Ù9Š9ÑD'óüý²}Ý€mùx¼î?ß§žŽ±Cq¿ÿ±±NØ3Œ©§ ”ûëö®½¿ÿ¹MÅ÷_·wñý“´MøçÙøä—ûöq û²©5ÄÖ& JøãÇùmù›…ýà à0{J/ô˜zx­ƒôÃ8ñf¿nmÑž¹ J hà˜OýÇjL‹üÔ?¿`,úµsrì§þc5¦¿‚‘3ÿ“˜æWjí­÷àX7zNÌ£‰ÎÅãÏüÇjLJKÿ©«&Eê>mNýÇjÌÄ._NýÏb ¸Ñ9p¬Æ=§|úÖäøÏ܇Ùßdð™ÛƒifÒ¸p¸Ö·¹ð'Ï]žè;Oðò²A޲.¦Ë rÏóU·^æƒgnl-òƒ²—…*Ôó±ÍÏ–'ꮸA=vU®ÙÀŠ”¸Êïÿ[×9%ˆ4”>wAï® Í‰èÑ„†Ò+tpoR¢„³q*Ái4®!‡$Üî)F]_ÓJBí)0AªeÇ%‚Ÿ-EÞ´Ðh#ÇD •2õUt.ÌŸM™±E±­:h”®'ꋬ¨^eþÐÐyéYçö8Lç¡ó×Ú¡Mã†eô°ùÃÞ4Jˆ¾º œ†èBpX F]áh­%Nƒ:#óŽ+pôÙ•DG–-`AaÅάèÄhüʹ–"·Ú dÍl25Y!ÐKŒ’÷NíÑVj²ÐhsZ’%ɪhLbÚŸ(µ•[]à&…‡ì’ÂtÕAé:¡hÙ4•ªJ ²Ð ÍÃ!±ÁŠ–Í‘ ‡0ð„ +9»w—b×RDëpØN;üV;¢Jê²ÙBo*©»í–,©»-WÑCX’°¢sø]wø­ÿZŠü:lÕÒMK÷–-Ý©0ç|‡:( ¹ksxlp®²©9,(¹©ÀçœzvW‡W=]KTJZóe’’Ö<|_„|Ikž]ÍC ¢#Ë¢$«yˆ%%«y(Ú»*ìbŠžŽÕaaƒ;ÃB·Ýmñ #A²FðxЅΦžL¥X鎌²BÏÙàO²áé|}Yu¶"›ÖŽdÙ„5­ùâY«ÖŽSŸCV­ɲ٪V;Om³Ú‘¢¸¹jöbŠp æ‰$²ìž(hÍÃw¬x#´æÉÁß(»R þN)XÍC |©¬æ¡hW…]L‘_‘c]* «4ÂÊùn×JóñÊùî!9ßÝÍ’v äîëjIèÉ=üÝÒxºñº®:zõ—ª[8›²%§’m çÛgÚÂS¶…§Üž´õ’©[²vÀ½šxx WzvW‡W=> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream xœcd`ab`ddä ÉÌM-Ö ÊÏMÌñµ~H3þaú!ËÜ]û£à§«,ƒÏ\fÞnæn–?¶ }?.øýÿ÷Ý ÌŒŒOßuÎ/¨,ÊLÏ(QÐ ×ÔÖÖAˆZZZ*$UÂd\R‹3ÓóÔ€Œ²Ôœü‚ÜÔ¼kg êœœÌd…ôœÊ‚Œb…Ä””Ô¶°ÄœÔl·ÌœÌ‚‚ü2 gM#C] ad­àWš›Z”¯£™—–™—YR©˜—¢àŸ›šž¨›˜’ 2À%7³¤¨RÁÄ 3®Û/37©´Xìa¿|K… ÔôÒœÄ"Lfs# AaFFƒ‰Ï¿÷ñýèh^ðãòUÆ¡?µDÿ°±üVŸÓ¼íü܇º%¿ç²ýŽúó‚õ Û÷ŒŸJ¬@µµK -e\üúûŒ×Ìß'ý´ éN¬JË NýÍÞý›³û7ãšßœ»‚7Äï+>Ú½¯{ÛœõëŽÚø£û;/Ç÷DƒïŠ¿Åå: EïïøÍú;õwj¼‚©iü·ï)ß3v|g~(´ ûúEW¿?{Èü#ÿ»¬hÝ„´ º¦¸nÉßÍlßm¾»ÿGØüï!óÙVr=à^9™‡çÁ\^‘ŠâÜ endstream endobj 13 0 obj <>stream 2010-06-25T18:03:31+02:00 2010-06-25T18:03:31+02:00 fig2dev Version 3.2 Patchlevel 5a s_f_lea.figpelegrin@brol \(Francois PELLEGRINI\) endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001793 00000 n 0000004501 00000 n 0000001734 00000 n 0000001583 00000 n 0000000015 00000 n 0000001563 00000 n 0000001858 00000 n 0000001959 00000 n 0000002135 00000 n 0000001899 00000 n 0000001929 00000 n 0000002365 00000 n 0000002989 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<161D4A07A398AC8D4F946D6F3ABE954B><161D4A07A398AC8D4F946D6F3ABE954B>] >> startxref 4735 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_lea.ps000066400000000000000000000066201514310134000257330ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev %%CreationDate: Mon Jan 9 16:52:38 1995 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 261 117 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -49.0 220.0 translate 0.900 -0.900 scale 0.500 setlinewidth % Polyline n 239 199 m 259 239 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 119 159 m 199 119 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 279 159 m 319 199 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 59 239 m 79 199 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 79 199 m 99 239 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 199 119 m 279 159 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 119 159 m 159 199 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 79 199 m 119 159 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 139 239 m 159 199 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 159 199 m 179 239 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 219 239 m 239 199 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 319 199 m 339 239 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 299 239 m 319 199 l gs 0.50 setgray fill gr gs col-1 s gr % Polyline n 239 199 m 279 159 l gs 0.50 setgray fill gr gs col-1 s gr % Ellipse n 219 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 59 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 259 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 319 199 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 239 199 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 139 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 198 119 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 279 158 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 119 158 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 159 199 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 339 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 179 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 79 199 5 5 0 360 DrawEllipse gs 0.75 setgray fill gr gs col-1 s gr % Ellipse n 299 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr % Ellipse n 99 239 5 5 0 360 DrawEllipse gs 0.00 setgray fill gr gs col-1 s gr $F2psEnd scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_me1.eps000066400000000000000000000647751514310134000260400ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Mon Nov 10 15:20:01 2003 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 523 407 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 407 moveto 0 0 lineto 523 0 lineto 523 407 lineto closepath clip newpath -36.0 441.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 60 % Polyline 2 slj n 8100 1725 m 8086 1761 l 8071 1792 l 8057 1818 l 8044 1838 l 8032 1853 l 8021 1865 l 8010 1874 l 8000 1881 l 7990 1888 l 7981 1895 l 7972 1903 l 7963 1912 l 7956 1922 l 7950 1933 l 7948 1943 l 7950 1950 l 7957 1952 l 7967 1950 l 7978 1944 l 7988 1937 l 7997 1928 l 8005 1919 l 8012 1910 l 8019 1900 l 8026 1890 l 8035 1879 l 8047 1868 l 8062 1856 l 8082 1843 l 8108 1829 l 8139 1814 l 8175 1800 l 8209 1788 l 8241 1778 l 8269 1769 l 8292 1762 l 8310 1756 l 8324 1752 l 8335 1749 l 8343 1746 l 8350 1744 l 8357 1742 l 8366 1740 l 8377 1738 l 8393 1735 l 8413 1733 l 8439 1730 l 8471 1728 l 8509 1726 l 8550 1725 l 8591 1726 l 8629 1728 l 8661 1730 l 8687 1733 l 8707 1735 l 8723 1738 l 8734 1740 l 8743 1742 l 8750 1744 l 8757 1746 l 8765 1749 l 8776 1752 l 8790 1756 l 8808 1762 l 8831 1769 l 8859 1778 l 8891 1788 l 8925 1800 l 8961 1814 l 8992 1829 l 9018 1843 l 9038 1856 l 9053 1868 l 9065 1879 l 9074 1890 l 9081 1900 l 9088 1910 l 9095 1919 l 9103 1928 l 9112 1937 l 9122 1944 l 9133 1950 l 9143 1952 l 9150 1950 l 9152 1943 l 9150 1933 l 9144 1922 l 9137 1912 l 9128 1903 l 9119 1895 l 9110 1888 l 9100 1881 l 9090 1874 l 9079 1865 l 9068 1853 l 9056 1838 l 9043 1818 l 9029 1792 l 9014 1761 l 9000 1725 l 8988 1691 l 8978 1659 l 8969 1631 l 8962 1608 l 8956 1590 l 8952 1576 l 8949 1565 l 8946 1557 l 8944 1550 l 8942 1543 l 8940 1534 l 8938 1523 l 8935 1507 l 8933 1487 l 8930 1461 l 8928 1429 l 8926 1391 l 8925 1350 l 8926 1309 l 8928 1271 l 8930 1239 l 8933 1213 l 8935 1193 l 8938 1177 l 8940 1166 l 8942 1157 l 8944 1150 l 8946 1143 l 8949 1135 l 8952 1124 l 8956 1110 l 8962 1092 l 8969 1069 l 8978 1041 l 8988 1009 l 9000 975 l 9014 939 l 9029 908 l 9043 882 l 9056 862 l 9068 847 l 9079 835 l 9090 826 l 9100 819 l 9110 812 l 9119 805 l 9128 797 l 9137 788 l 9144 778 l 9150 767 l 9152 757 l 9150 750 l 9143 748 l 9133 750 l 9122 756 l 9112 763 l 9103 772 l 9095 781 l 9088 790 l 9081 800 l 9074 810 l 9065 821 l 9053 832 l 9038 844 l 9018 857 l 8992 871 l 8961 886 l 8925 900 l 8891 912 l 8859 922 l 8831 931 l 8808 938 l 8790 944 l 8776 948 l 8765 951 l 8757 954 l 8750 956 l 8743 958 l 8734 960 l 8723 962 l 8707 965 l 8687 967 l 8661 970 l 8629 972 l 8591 974 l 8550 975 l 8509 974 l 8471 972 l 8439 970 l 8413 967 l 8393 965 l 8377 962 l 8366 960 l 8357 958 l 8350 956 l 8343 954 l 8335 951 l 8324 948 l 8310 944 l 8292 938 l 8269 931 l 8241 922 l 8209 912 l 8175 900 l 8139 886 l 8108 871 l 8082 857 l 8062 844 l 8047 832 l 8035 821 l 8026 810 l 8019 800 l 8012 790 l 8005 781 l 7997 772 l 7988 763 l 7978 756 l 7967 750 l 7957 748 l 7950 750 l 7948 757 l 7950 767 l 7956 778 l 7963 788 l 7972 797 l 7981 805 l 7990 812 l 8000 819 l 8010 826 l 8021 835 l 8032 847 l 8044 862 l 8057 882 l 8071 908 l 8086 939 l 8100 975 l 8112 1009 l 8122 1041 l 8131 1069 l 8138 1092 l 8144 1110 l 8148 1124 l 8151 1135 l 8154 1143 l 8156 1150 l 8158 1157 l 8160 1166 l 8162 1177 l 8165 1193 l 8167 1213 l 8170 1239 l 8172 1271 l 8174 1309 l 8175 1350 l 8174 1391 l 8172 1429 l 8170 1461 l 8167 1487 l 8165 1507 l 8162 1523 l 8160 1534 l 8158 1543 l 8156 1550 l 8154 1557 l 8151 1565 l 8148 1576 l 8144 1590 l 8138 1608 l 8131 1631 l 8122 1659 l 8112 1691 l cp gs 0.80 setgray ef gr % Polyline n 8100 2925 m 8086 2961 l 8071 2992 l 8057 3018 l 8044 3038 l 8032 3053 l 8021 3065 l 8010 3074 l 8000 3081 l 7990 3088 l 7981 3095 l 7972 3103 l 7963 3112 l 7956 3122 l 7950 3133 l 7948 3143 l 7950 3150 l 7957 3152 l 7967 3150 l 7978 3144 l 7988 3137 l 7997 3128 l 8005 3119 l 8012 3110 l 8019 3100 l 8026 3090 l 8035 3079 l 8047 3068 l 8062 3056 l 8082 3043 l 8108 3029 l 8139 3014 l 8175 3000 l 8209 2988 l 8241 2978 l 8269 2969 l 8292 2962 l 8310 2956 l 8324 2952 l 8335 2949 l 8343 2946 l 8350 2944 l 8357 2942 l 8366 2940 l 8377 2938 l 8393 2935 l 8413 2933 l 8439 2930 l 8471 2928 l 8509 2926 l 8550 2925 l 8591 2926 l 8629 2928 l 8661 2930 l 8687 2933 l 8707 2935 l 8723 2938 l 8734 2940 l 8743 2942 l 8750 2944 l 8757 2946 l 8765 2949 l 8776 2952 l 8790 2956 l 8808 2962 l 8831 2969 l 8859 2978 l 8891 2988 l 8925 3000 l 8961 3014 l 8992 3029 l 9018 3043 l 9038 3056 l 9053 3068 l 9065 3079 l 9074 3090 l 9081 3100 l 9088 3110 l 9095 3119 l 9103 3128 l 9112 3137 l 9122 3144 l 9133 3150 l 9143 3152 l 9150 3150 l 9152 3143 l 9150 3133 l 9144 3122 l 9137 3112 l 9128 3103 l 9119 3095 l 9110 3088 l 9100 3081 l 9090 3074 l 9079 3065 l 9068 3053 l 9056 3038 l 9043 3018 l 9029 2992 l 9014 2961 l 9000 2925 l 8988 2891 l 8978 2859 l 8969 2831 l 8962 2808 l 8956 2790 l 8952 2776 l 8949 2765 l 8946 2757 l 8944 2750 l 8942 2743 l 8940 2734 l 8938 2723 l 8935 2707 l 8933 2687 l 8930 2661 l 8928 2629 l 8926 2591 l 8925 2550 l 8926 2509 l 8928 2471 l 8930 2439 l 8933 2413 l 8935 2393 l 8938 2377 l 8940 2366 l 8942 2357 l 8944 2350 l 8946 2343 l 8949 2335 l 8952 2324 l 8956 2310 l 8962 2292 l 8969 2269 l 8978 2241 l 8988 2209 l 9000 2175 l 9014 2139 l 9029 2108 l 9043 2082 l 9056 2062 l 9068 2047 l 9079 2035 l 9090 2026 l 9100 2019 l 9110 2012 l 9119 2005 l 9128 1997 l 9137 1988 l 9144 1978 l 9150 1967 l 9152 1957 l 9150 1950 l 9143 1948 l 9133 1950 l 9122 1956 l 9112 1963 l 9103 1972 l 9095 1981 l 9088 1990 l 9081 2000 l 9074 2010 l 9065 2021 l 9053 2032 l 9038 2044 l 9018 2057 l 8992 2071 l 8961 2086 l 8925 2100 l 8891 2112 l 8859 2122 l 8831 2131 l 8808 2138 l 8790 2144 l 8776 2148 l 8765 2151 l 8757 2154 l 8750 2156 l 8743 2158 l 8734 2160 l 8723 2162 l 8707 2165 l 8687 2167 l 8661 2170 l 8629 2172 l 8591 2174 l 8550 2175 l 8509 2174 l 8471 2172 l 8439 2170 l 8413 2167 l 8393 2165 l 8377 2162 l 8366 2160 l 8357 2158 l 8350 2156 l 8343 2154 l 8335 2151 l 8324 2148 l 8310 2144 l 8292 2138 l 8269 2131 l 8241 2122 l 8209 2112 l 8175 2100 l 8139 2086 l 8108 2071 l 8082 2057 l 8062 2044 l 8047 2032 l 8035 2021 l 8026 2010 l 8019 2000 l 8012 1990 l 8005 1981 l 7997 1972 l 7988 1963 l 7978 1956 l 7967 1950 l 7957 1948 l 7950 1950 l 7948 1957 l 7950 1967 l 7956 1978 l 7963 1988 l 7972 1997 l 7981 2005 l 7990 2012 l 8000 2019 l 8010 2026 l 8021 2035 l 8032 2047 l 8044 2062 l 8057 2082 l 8071 2108 l 8086 2139 l 8100 2175 l 8112 2209 l 8122 2241 l 8131 2269 l 8138 2292 l 8144 2310 l 8148 2324 l 8151 2335 l 8154 2343 l 8156 2350 l 8158 2357 l 8160 2366 l 8162 2377 l 8165 2393 l 8167 2413 l 8170 2439 l 8172 2471 l 8174 2509 l 8175 2550 l 8174 2591 l 8172 2629 l 8170 2661 l 8167 2687 l 8165 2707 l 8162 2723 l 8160 2734 l 8158 2743 l 8156 2750 l 8154 2757 l 8151 2765 l 8148 2776 l 8144 2790 l 8138 2808 l 8131 2831 l 8122 2859 l 8112 2891 l cp gs 0.80 setgray ef gr % Polyline n 8100 4125 m 8086 4161 l 8071 4192 l 8057 4218 l 8044 4238 l 8032 4253 l 8021 4265 l 8010 4274 l 8000 4281 l 7990 4288 l 7981 4295 l 7972 4303 l 7963 4312 l 7956 4322 l 7950 4333 l 7948 4343 l 7950 4350 l 7957 4352 l 7967 4350 l 7978 4344 l 7988 4337 l 7997 4328 l 8005 4319 l 8012 4310 l 8019 4300 l 8026 4290 l 8035 4279 l 8047 4268 l 8062 4256 l 8082 4243 l 8108 4229 l 8139 4214 l 8175 4200 l 8209 4188 l 8241 4178 l 8269 4169 l 8292 4162 l 8310 4156 l 8324 4152 l 8335 4149 l 8343 4146 l 8350 4144 l 8357 4142 l 8366 4140 l 8377 4138 l 8393 4135 l 8413 4133 l 8439 4130 l 8471 4128 l 8509 4126 l 8550 4125 l 8591 4126 l 8629 4128 l 8661 4130 l 8687 4133 l 8707 4135 l 8723 4138 l 8734 4140 l 8743 4142 l 8750 4144 l 8757 4146 l 8765 4149 l 8776 4152 l 8790 4156 l 8808 4162 l 8831 4169 l 8859 4178 l 8891 4188 l 8925 4200 l 8961 4214 l 8992 4229 l 9018 4243 l 9038 4256 l 9053 4268 l 9065 4279 l 9074 4290 l 9081 4300 l 9088 4310 l 9095 4319 l 9103 4328 l 9112 4337 l 9122 4344 l 9133 4350 l 9143 4352 l 9150 4350 l 9152 4343 l 9150 4333 l 9144 4322 l 9137 4312 l 9128 4303 l 9119 4295 l 9110 4288 l 9100 4281 l 9090 4274 l 9079 4265 l 9068 4253 l 9056 4238 l 9043 4218 l 9029 4192 l 9014 4161 l 9000 4125 l 8988 4091 l 8978 4059 l 8969 4031 l 8962 4008 l 8956 3990 l 8952 3976 l 8949 3965 l 8946 3957 l 8944 3950 l 8942 3943 l 8940 3934 l 8938 3923 l 8935 3907 l 8933 3887 l 8930 3861 l 8928 3829 l 8926 3791 l 8925 3750 l 8926 3709 l 8928 3671 l 8930 3639 l 8933 3613 l 8935 3593 l 8938 3577 l 8940 3566 l 8942 3557 l 8944 3550 l 8946 3543 l 8949 3535 l 8952 3524 l 8956 3510 l 8962 3492 l 8969 3469 l 8978 3441 l 8988 3409 l 9000 3375 l 9014 3339 l 9029 3308 l 9043 3282 l 9056 3262 l 9068 3247 l 9079 3235 l 9090 3226 l 9100 3219 l 9110 3212 l 9119 3205 l 9128 3197 l 9137 3188 l 9144 3178 l 9150 3167 l 9152 3157 l 9150 3150 l 9143 3148 l 9133 3150 l 9122 3156 l 9112 3163 l 9103 3172 l 9095 3181 l 9088 3190 l 9081 3200 l 9074 3210 l 9065 3221 l 9053 3232 l 9038 3244 l 9018 3257 l 8992 3271 l 8961 3286 l 8925 3300 l 8891 3312 l 8859 3322 l 8831 3331 l 8808 3338 l 8790 3344 l 8776 3348 l 8765 3351 l 8757 3354 l 8750 3356 l 8743 3358 l 8734 3360 l 8723 3362 l 8707 3365 l 8687 3367 l 8661 3370 l 8629 3372 l 8591 3374 l 8550 3375 l 8509 3374 l 8471 3372 l 8439 3370 l 8413 3367 l 8393 3365 l 8377 3362 l 8366 3360 l 8357 3358 l 8350 3356 l 8343 3354 l 8335 3351 l 8324 3348 l 8310 3344 l 8292 3338 l 8269 3331 l 8241 3322 l 8209 3312 l 8175 3300 l 8139 3286 l 8108 3271 l 8082 3257 l 8062 3244 l 8047 3232 l 8035 3221 l 8026 3210 l 8019 3200 l 8012 3190 l 8005 3181 l 7997 3172 l 7988 3163 l 7978 3156 l 7967 3150 l 7957 3148 l 7950 3150 l 7948 3157 l 7950 3167 l 7956 3178 l 7963 3188 l 7972 3197 l 7981 3205 l 7990 3212 l 8000 3219 l 8010 3226 l 8021 3235 l 8032 3247 l 8044 3262 l 8057 3282 l 8071 3308 l 8086 3339 l 8100 3375 l 8112 3409 l 8122 3441 l 8131 3469 l 8138 3492 l 8144 3510 l 8148 3524 l 8151 3535 l 8154 3543 l 8156 3550 l 8158 3557 l 8160 3566 l 8162 3577 l 8165 3593 l 8167 3613 l 8170 3639 l 8172 3671 l 8174 3709 l 8175 3750 l 8174 3791 l 8172 3829 l 8170 3861 l 8167 3887 l 8165 3907 l 8162 3923 l 8160 3934 l 8158 3943 l 8156 3950 l 8154 3957 l 8151 3965 l 8148 3976 l 8144 3990 l 8138 4008 l 8131 4031 l 8122 4059 l 8112 4091 l cp gs 0.80 setgray ef gr % here ends figure; % % here starts figure with depth 50 % Polyline 7.500 slw n 7950 750 m 8550 1350 l 7950 1950 l 8550 2550 l 7950 3150 l 8550 3750 l 7950 4350 l gs col0 s gr % Polyline n 9150 750 m 8550 1350 l 9150 1950 l 8550 2550 l 9150 3150 l 8550 3750 l 9150 4350 l gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw [15 45] 45 sd n 1800 3600 m 2100 3600 l 2100 3900 l 1800 3900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 3600 m 1800 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 3600 m 2100 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 2100 4200 l 2100 4500 l 1800 4500 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 4200 m 1800 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 2100 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 7050 m 9300 7050 l 9300 7350 l 9000 7350 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9300 7050 m 9000 7350 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 7050 m 9300 7350 l gs col0 s gr [] 0 sd % Polyline gs clippath 7620 7065 m 7680 7065 l 7680 6914 l 7650 7034 l 7620 6914 l cp eoclip n 4050 5700 m 4050 6300 l 7650 6300 l 7650 7050 l gs col0 s gr gr % arrowhead n 7620 6914 m 7650 7034 l 7680 6914 l 7620 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7020 7065 m 7080 7065 l 7080 6914 l 7050 7034 l 7020 6914 l cp eoclip n 3750 5700 m 3750 6375 l 7050 6375 l 7050 7050 l gs col0 s gr gr % arrowhead n 7020 6914 m 7050 7034 l 7080 6914 l 7020 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6420 7065 m 6480 7065 l 6480 6914 l 6450 7034 l 6420 6914 l cp eoclip n 3450 5700 m 3450 6450 l 6450 6450 l 6450 7050 l gs col0 s gr gr % arrowhead n 6420 6914 m 6450 7034 l 6480 6914 l 6420 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5820 7065 m 5880 7065 l 5880 6914 l 5850 7034 l 5820 6914 l cp eoclip n 3150 5700 m 3150 6525 l 5850 6525 l 5850 7050 l gs col0 s gr gr % arrowhead n 5820 6914 m 5850 7034 l 5880 6914 l 5820 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 7065 m 5580 7065 l 5580 6914 l 5550 7034 l 5520 6914 l cp eoclip n 2850 5700 m 2850 6600 l 5550 6600 l 5550 7050 l gs col0 s gr gr % arrowhead n 5520 6914 m 5550 7034 l 5580 6914 l 5520 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4320 7065 m 4380 7065 l 4380 6914 l 4350 7034 l 4320 6914 l cp eoclip n 2550 5700 m 2550 6675 l 4350 6675 l 4350 7050 l gs col0 s gr gr % arrowhead n 4320 6914 m 4350 7034 l 4380 6914 l 4320 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3120 7065 m 3180 7065 l 3180 6914 l 3150 7034 l 3120 6914 l cp eoclip n 2250 5700 m 2250 6750 l 3150 6750 l 3150 7050 l gs col0 s gr gr % arrowhead n 3120 6914 m 3150 7034 l 3180 6914 l 3120 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7920 7065 m 7980 7065 l 7980 6914 l 7950 7034 l 7920 6914 l cp eoclip n 4350 5700 m 4350 6225 l 7950 6225 l 7950 7050 l gs col0 s gr gr % arrowhead n 7920 6914 m 7950 7034 l 7980 6914 l 7920 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8220 7065 m 8280 7065 l 8280 6914 l 8250 7034 l 8220 6914 l cp eoclip n 4650 5700 m 4650 6150 l 8250 6150 l 8250 7050 l gs col0 s gr gr % arrowhead n 8220 6914 m 8250 7034 l 8280 6914 l 8220 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8520 7065 m 8580 7065 l 8580 6914 l 8550 7034 l 8520 6914 l cp eoclip n 4950 5700 m 4950 6075 l 8550 6075 l 8550 7050 l gs col0 s gr gr % arrowhead n 8520 6914 m 8550 7034 l 8580 6914 l 8520 6914 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9120 7065 m 9180 7065 l 9180 6914 l 9150 7034 l 9120 6914 l cp eoclip n 5250 5700 m 5250 6000 l 9150 6000 l 9150 7050 l gs col0 s gr gr % arrowhead n 9120 6914 m 9150 7034 l 9180 6914 l 9120 6914 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 3225 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 240.00 scf sf 600 3825 m gs 1 -1 sc (vlbltab) col0 sh gr /Courier ff 240.00 scf sf 600 5625 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 4425 m gs 1 -1 sc (velotab) col0 sh gr /Courier ff 240.00 scf sf 600 5025 m gs 1 -1 sc (vendtab) col0 sh gr /Courier ff 240.00 scf sf 600 2625 m gs 1 -1 sc (vnodnbr) col0 sh gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (velmbas) col0 sh gr /Courier ff 240.00 scf sf 600 1425 m gs 1 -1 sc (vnodbas) col0 sh gr /Courier ff 240.00 scf sf 600 2025 m gs 1 -1 sc (velmnbr) col0 sh gr /Courier ff 240.00 scf sf 600 7275 m gs 1 -1 sc (edgetab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 3240 m gs 1 -1 sc (24) col0 sh gr % Polyline n 1800 5400 m 2100 5400 l 2100 5700 l 1800 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 7050 m 2100 7050 l 2100 7350 l 1800 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 7050 m 2400 7050 l 2400 7350 l 2100 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2125 7290 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2400 7050 m 2700 7050 l 2700 7350 l 2400 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 7050 m 3000 7050 l 3000 7350 l 2700 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 7050 m 3300 7050 l 3300 7350 l 3000 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 7290 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3300 7050 m 3600 7050 l 3600 7350 l 3300 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 7050 m 3900 7050 l 3900 7350 l 3600 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 7290 m gs 1 -1 sc (11) col0 sh gr % Polyline n 3900 7050 m 4200 7050 l 4200 7350 l 3900 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 7050 m 5100 7050 l 5100 7350 l 4800 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 7050 m 5400 7050 l 5400 7350 l 5100 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 7050 m 4500 7050 l 4500 7350 l 4200 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 7050 m 4800 7050 l 4800 7350 l 4500 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 7050 m 5700 7050 l 5700 7350 l 5400 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 7050 m 6000 7050 l 6000 7350 l 5700 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 7050 m 6300 7050 l 6300 7350 l 6000 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 7050 m 6900 7050 l 6900 7350 l 6600 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 7050 m 6600 7050 l 6600 7350 l 6300 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 7050 m 7200 7050 l 7200 7350 l 6900 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 7050 m 7500 7050 l 7500 7350 l 7200 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 7050 m 7800 7050 l 7800 7350 l 7500 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 7050 m 8100 7050 l 8100 7350 l 7800 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 7050 m 8400 7050 l 8400 7350 l 8100 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 7050 m 8700 7050 l 8700 7350 l 8400 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 7050 m 9000 7050 l 9000 7350 l 8700 7350 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 5400 m 2400 5400 l 2400 5700 l 2100 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 5640 m gs 1 -1 sc (5) col0 sh gr % Polyline n 2400 5400 m 2700 5400 l 2700 5700 l 2400 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2500 5640 m gs 1 -1 sc (9) col0 sh gr % Polyline n 5100 5400 m 5400 5400 l 5400 5700 l 5100 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 5640 m gs 1 -1 sc (25) col0 sh gr % Polyline n 2700 5400 m 3000 5400 l 3000 5700 l 2700 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 5640 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3000 5400 m 3300 5400 l 3300 5700 l 3000 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 5640 m gs 1 -1 sc (14) col0 sh gr % Polyline n 3300 5400 m 3600 5400 l 3600 5700 l 3300 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 5640 m gs 1 -1 sc (16) col0 sh gr % Polyline n 3600 5400 m 3900 5400 l 3900 5700 l 3600 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 5640 m gs 1 -1 sc (18) col0 sh gr % Polyline n 3900 5400 m 4200 5400 l 4200 5700 l 3900 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3925 5640 m gs 1 -1 sc (20) col0 sh gr % Polyline n 4200 5400 m 4500 5400 l 4500 5700 l 4200 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4225 5640 m gs 1 -1 sc (21) col0 sh gr % Polyline n 4500 5400 m 4800 5400 l 4800 5700 l 4500 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4525 5640 m gs 1 -1 sc (22) col0 sh gr % Polyline n 4800 5400 m 5100 5400 l 5100 5700 l 4800 5700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4825 5640 m gs 1 -1 sc (23) col0 sh gr % Polyline gs clippath 2070 5415 m 2130 5415 l 2130 5264 l 2100 5384 l 2070 5264 l cp eoclip n 1800 4950 m 2100 4950 l 2100 5400 l gs col0 s gr gr % arrowhead n 2070 5264 m 2100 5384 l 2130 5264 l 2070 5264 l cp gs 0.00 setgray ef gr col0 s % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline gs clippath 1920 7065 m 1980 7065 l 1980 6914 l 1950 7034 l 1920 6914 l cp eoclip n 1950 5700 m 1950 7050 l gs col0 s gr gr % arrowhead n 1920 6914 m 1950 7034 l 1980 6914 l 1920 6914 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 7950 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9150 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8550 1350 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7950 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9150 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8550 2550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7950 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9150 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8550 3750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7950 4350 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9150 4350 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 1900 5640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 1440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 2040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 2640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 9100 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 3840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 7290 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 7290 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 7290 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 7290 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 7290 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 7290 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 7290 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 7290 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 7290 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 7290 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 7290 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 7290 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 7290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 7290 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 7290 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 7290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 7290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 7290 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 7290 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 7290 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 7290 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 2640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 2040 m gs 1 -1 sc (3) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 9020 840 m gs 1 -1 sc (10) col0 sh gr /Times-Roman ff 240.00 scf sf 9020 2040 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 3240 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 4440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 9100 4440 m gs 1 -1 sc (9) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_me1.fig000066400000000000000000000275121514310134000260020ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 15 0 0 16 0.0000 4 165 240 1825 3240 24\001 -6 6 1800 3600 2100 3900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 3600 2100 3600 2100 3900 1800 3900 1800 3600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 3600 1800 3900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 3600 2100 3900 -6 6 1800 5400 2100 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 5400 2100 5400 2100 5700 1800 5700 1800 5400 4 0 0 10 0 0 16 0.0000 4 180 120 1900 5640 1\001 -6 6 1800 4200 2100 4500 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 4200 2100 4200 2100 4500 1800 4500 1800 4200 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 4200 1800 4500 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 4200 2100 4500 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 180 120 1900 840 1\001 -6 6 7800 600 9300 4500 6 7800 600 8100 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7950 750 150 150 7950 750 8100 750 4 0 0 10 0 0 16 0.0000 4 165 120 7900 840 4\001 -6 6 9000 600 9300 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9150 750 150 150 9150 750 9300 750 4 0 0 8 0 0 16 0.0000 4 180 240 9020 840 10\001 -6 6 8400 1200 8700 1500 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8550 1350 150 150 8550 1350 8700 1350 4 0 0 10 0 0 16 0.0000 4 165 120 8500 1440 2\001 -6 6 7800 1800 8100 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7950 1950 150 150 7950 1950 8100 1950 4 0 0 10 0 0 16 0.0000 4 180 120 7900 2040 5\001 -6 6 9000 1800 9300 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9150 1950 150 150 9150 1950 9300 1950 4 0 0 8 0 0 16 0.0000 4 180 240 9020 2040 11\001 -6 6 8400 2400 8700 2700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8550 2550 150 150 8550 2550 8700 2550 4 0 0 10 0 0 16 0.0000 4 180 120 8500 2640 1\001 -6 6 7800 3000 8100 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7950 3150 150 150 7950 3150 8100 3150 4 0 0 8 0 0 16 0.0000 4 165 120 7900 3240 7\001 -6 6 9000 3000 9300 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9150 3150 150 150 9150 3150 9300 3150 4 0 0 10 0 0 16 0.0000 4 180 120 9100 3240 6\001 -6 6 8400 3600 8700 3900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8550 3750 150 150 8550 3750 8700 3750 4 0 0 10 0 0 16 0.0000 4 180 120 8500 3840 3\001 -6 6 7800 4200 8100 4500 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7950 4350 150 150 7950 4350 8100 4350 4 0 0 8 0 0 16 0.0000 4 165 120 7900 4440 8\001 -6 6 9000 4200 9300 4500 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9150 4350 150 150 9150 4350 9300 4350 4 0 0 8 0 0 16 0.0000 4 180 120 9100 4440 9\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7 7950 750 8550 1350 7950 1950 8550 2550 7950 3150 8550 3750 7950 4350 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7 9150 750 8550 1350 9150 1950 8550 2550 9150 3150 8550 3750 9150 4350 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 8175 1350 8100 1725 7950 1950 8175 1800 8550 1725 8925 1800 9150 1950 9000 1725 8925 1350 9000 975 9150 750 8925 900 8550 975 8175 900 7950 750 8100 975 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 8175 2550 8100 2925 7950 3150 8175 3000 8550 2925 8925 3000 9150 3150 9000 2925 8925 2550 9000 2175 9150 1950 8925 2100 8550 2175 8175 2100 7950 1950 8100 2175 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 8175 3750 8100 4125 7950 4350 8175 4200 8550 4125 8925 4200 9150 4350 9000 4125 8925 3750 9000 3375 9150 3150 8925 3300 8550 3375 8175 3300 7950 3150 8100 3375 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -6 6 9000 7050 9300 7350 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 9000 7050 9300 7050 9300 7350 9000 7350 9000 7050 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9300 7050 9000 7350 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9000 7050 9300 7350 -6 6 1800 7050 2100 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 7050 2100 7050 2100 7350 1800 7350 1800 7050 4 0 0 10 0 0 16 0.0000 4 180 120 1900 7290 5\001 -6 6 2100 7050 2400 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 7050 2400 7050 2400 7350 2100 7350 2100 7050 4 0 0 15 0 0 16 0.0000 4 180 240 2125 7290 11\001 -6 6 2400 7050 2700 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 7050 2700 7050 2700 7350 2400 7350 2400 7050 4 0 0 10 0 0 16 0.0000 4 165 120 2500 7290 7\001 -6 6 2700 7050 3000 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 7050 3000 7050 3000 7350 2700 7350 2700 7050 4 0 0 10 0 0 16 0.0000 4 180 120 2800 7290 6\001 -6 6 3000 7050 3300 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 7050 3300 7050 3300 7350 3000 7350 3000 7050 4 0 0 15 0 0 16 0.0000 4 180 240 3025 7290 10\001 -6 6 3300 7050 3600 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 7050 3600 7050 3600 7350 3300 7350 3300 7050 4 0 0 10 0 0 16 0.0000 4 180 120 3400 7290 5\001 -6 6 3600 7050 3900 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 7050 3900 7050 3900 7350 3600 7350 3600 7050 4 0 0 15 0 0 16 0.0000 4 180 240 3625 7290 11\001 -6 6 3900 7050 4200 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 7050 4200 7050 4200 7350 3900 7350 3900 7050 4 0 0 10 0 0 16 0.0000 4 165 120 4000 7290 4\001 -6 6 4800 7050 5100 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 7050 5100 7050 5100 7350 4800 7350 4800 7050 4 0 0 10 0 0 16 0.0000 4 180 120 4900 7290 6\001 -6 6 5100 7050 5400 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 7050 5400 7050 5400 7350 5100 7350 5100 7050 4 0 0 10 0 0 16 0.0000 4 165 120 5200 7290 7\001 -6 6 4200 7050 4500 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 7050 4500 7050 4500 7350 4200 7350 4200 7050 4 0 0 10 0 0 16 0.0000 4 165 120 4300 7290 8\001 -6 6 4500 7050 4800 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 7050 4800 7050 4800 7350 4500 7350 4500 7050 4 0 0 10 0 0 16 0.0000 4 180 120 4600 7290 9\001 -6 6 5400 7050 5700 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 7050 5700 7050 5700 7350 5400 7350 5400 7050 4 0 0 10 0 0 16 0.0000 4 165 120 5500 7290 2\001 -6 6 5700 7050 6000 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 7050 6000 7050 6000 7350 5700 7350 5700 7050 4 0 0 10 0 0 16 0.0000 4 165 120 5800 7290 2\001 -6 6 6000 7050 6300 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 7050 6300 7050 6300 7350 6000 7350 6000 7050 4 0 0 10 0 0 16 0.0000 4 180 120 6100 7290 1\001 -6 6 6600 7050 6900 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 7050 6900 7050 6900 7350 6600 7350 6600 7050 4 0 0 10 0 0 16 0.0000 4 180 120 6700 7290 3\001 -6 6 6300 7050 6600 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 7050 6600 7050 6600 7350 6300 7350 6300 7050 4 0 0 10 0 0 16 0.0000 4 180 120 6400 7290 1\001 -6 6 6900 7050 7200 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 7050 7200 7050 7200 7350 6900 7350 6900 7050 4 0 0 10 0 0 16 0.0000 4 180 120 7000 7290 1\001 -6 6 7200 7050 7500 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 7050 7500 7050 7500 7350 7200 7350 7200 7050 4 0 0 10 0 0 16 0.0000 4 180 120 7300 7290 3\001 -6 6 7500 7050 7800 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 7050 7800 7050 7800 7350 7500 7350 7500 7050 4 0 0 10 0 0 16 0.0000 4 180 120 7600 7290 3\001 -6 6 7800 7050 8100 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 7050 8100 7050 8100 7350 7800 7350 7800 7050 4 0 0 10 0 0 16 0.0000 4 180 120 7900 7290 3\001 -6 6 8100 7050 8400 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 7050 8400 7050 8400 7350 8100 7350 8100 7050 4 0 0 10 0 0 16 0.0000 4 165 120 8200 7290 2\001 -6 6 8400 7050 8700 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 7050 8700 7050 8700 7350 8400 7350 8400 7050 4 0 0 10 0 0 16 0.0000 4 165 120 8500 7290 2\001 -6 6 8700 7050 9000 7350 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 7050 9000 7050 9000 7350 8700 7350 8700 7050 4 0 0 10 0 0 16 0.0000 4 180 120 8800 7290 1\001 -6 6 2100 5400 2400 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 5400 2400 5400 2400 5700 2100 5700 2100 5400 4 0 0 15 0 0 16 0.0000 4 180 120 2200 5640 5\001 -6 6 2400 5400 2700 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 5400 2700 5400 2700 5700 2400 5700 2400 5400 4 0 0 15 0 0 16 0.0000 4 180 120 2500 5640 9\001 -6 6 5100 5400 5400 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 5400 5400 5400 5400 5700 5100 5700 5100 5400 4 0 0 15 0 0 16 0.0000 4 180 240 5125 5640 25\001 -6 6 2700 5400 3000 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 5400 3000 5400 3000 5700 2700 5700 2700 5400 4 0 0 15 0 0 16 0.0000 4 195 240 2725 5640 13\001 -6 6 3000 5400 3300 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 5400 3300 5400 3300 5700 3000 5700 3000 5400 4 0 0 15 0 0 16 0.0000 4 180 240 3025 5640 14\001 -6 6 3300 5400 3600 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 5400 3600 5400 3600 5700 3300 5700 3300 5400 4 0 0 15 0 0 16 0.0000 4 180 240 3325 5640 16\001 -6 6 3600 5400 3900 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 5400 3900 5400 3900 5700 3600 5700 3600 5400 4 0 0 15 0 0 16 0.0000 4 180 240 3625 5640 18\001 -6 6 3900 5400 4200 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 5400 4200 5400 4200 5700 3900 5700 3900 5400 4 0 0 15 0 0 16 0.0000 4 165 240 3925 5640 20\001 -6 6 4200 5400 4500 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 5400 4500 5400 4500 5700 4200 5700 4200 5400 4 0 0 15 0 0 16 0.0000 4 180 240 4225 5640 21\001 -6 6 4500 5400 4800 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 5400 4800 5400 4800 5700 4500 5700 4500 5400 4 0 0 15 0 0 16 0.0000 4 165 240 4525 5640 22\001 -6 6 4800 5400 5100 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 5400 5100 5400 5100 5700 4800 5700 4800 5400 4 0 0 15 0 0 16 0.0000 4 180 240 4825 5640 23\001 -6 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 3 1 1 1.00 60.00 120.00 1800 4950 2100 4950 2100 5400 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 1950 5700 1950 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4050 5700 4050 6300 7650 6300 7650 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 5700 3750 6375 7050 6375 7050 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 5700 3450 6450 6450 6450 6450 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 5700 3150 6525 5850 6525 5850 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 5700 2850 6600 5550 6600 5550 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 5700 2550 6675 4350 6675 4350 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 5700 2250 6750 3150 6750 3150 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4350 5700 4350 6225 7950 6225 7950 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4650 5700 4650 6150 8250 6150 8250 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4950 5700 4950 6075 8550 6075 8550 7050 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5250 5700 5250 6000 9150 6000 9150 7050 4 0 0 20 0 12 16 0.0000 4 210 1050 600 3225 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3825 vlbltab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 5625 verttab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4425 velotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 5025 vendtab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2625 vnodnbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 velmbas\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 1425 vnodbas\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2025 velmnbr\001 4 0 0 10 0 0 16 0.0000 4 165 120 1900 1440 4\001 4 0 0 10 0 0 16 0.0000 4 165 120 1900 2640 8\001 4 0 0 10 0 0 16 0.0000 4 180 120 1900 2040 3\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 7275 edgetab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_me2.eps000066400000000000000000000746521514310134000260340ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Mon May 3 15:33:42 2004 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 523 488 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 488 moveto 0 0 lineto 523 0 lineto 523 488 lineto closepath clip newpath -36.0 522.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 60 % Polyline 2 slj n 7275 1800 m 7252 1765 l 7229 1730 l 7207 1696 l 7186 1665 l 7168 1638 l 7151 1613 l 7137 1592 l 7125 1574 l 7114 1558 l 7105 1545 l 7096 1533 l 7089 1523 l 7081 1512 l 7074 1502 l 7066 1492 l 7058 1480 l 7049 1466 l 7039 1450 l 7027 1430 l 7013 1408 l 6998 1381 l 6981 1351 l 6962 1317 l 6942 1280 l 6921 1240 l 6900 1200 l 6875 1149 l 6854 1101 l 6836 1059 l 6823 1022 l 6814 990 l 6808 963 l 6805 941 l 6804 921 l 6805 903 l 6806 887 l 6808 872 l 6809 857 l 6809 842 l 6807 827 l 6804 810 l 6798 794 l 6789 778 l 6778 764 l 6765 754 l 6750 750 l 6735 754 l 6722 764 l 6710 778 l 6701 794 l 6695 810 l 6691 827 l 6688 842 l 6687 857 l 6687 872 l 6688 888 l 6688 903 l 6687 921 l 6686 941 l 6682 963 l 6677 990 l 6668 1022 l 6656 1059 l 6640 1101 l 6622 1149 l 6600 1200 l 6581 1244 l 6562 1286 l 6544 1326 l 6528 1362 l 6514 1393 l 6502 1419 l 6492 1442 l 6484 1461 l 6478 1476 l 6472 1490 l 6467 1502 l 6462 1513 l 6458 1523 l 6453 1535 l 6447 1548 l 6439 1563 l 6430 1581 l 6419 1602 l 6405 1627 l 6389 1656 l 6370 1688 l 6348 1724 l 6325 1762 l 6300 1800 l 6270 1843 l 6242 1881 l 6215 1914 l 6190 1940 l 6168 1960 l 6148 1976 l 6129 1987 l 6112 1995 l 6096 2001 l 6081 2006 l 6067 2011 l 6053 2015 l 6039 2020 l 6026 2027 l 6014 2036 l 6004 2047 l 5996 2059 l 5992 2073 l 5993 2087 l 6000 2100 l 6013 2109 l 6031 2114 l 6051 2117 l 6071 2118 l 6092 2117 l 6111 2114 l 6129 2110 l 6146 2105 l 6163 2100 l 6178 2094 l 6194 2087 l 6210 2081 l 6227 2074 l 6246 2068 l 6268 2061 l 6292 2055 l 6321 2049 l 6354 2043 l 6391 2038 l 6433 2033 l 6478 2029 l 6525 2025 l 6572 2022 l 6617 2019 l 6656 2017 l 6690 2016 l 6718 2015 l 6740 2014 l 6757 2013 l 6770 2013 l 6780 2013 l 6787 2013 l 6794 2013 l 6800 2013 l 6808 2013 l 6817 2013 l 6830 2013 l 6846 2014 l 6867 2015 l 6894 2016 l 6926 2017 l 6964 2019 l 7006 2022 l 7050 2025 l 7098 2029 l 7143 2034 l 7182 2039 l 7217 2045 l 7246 2052 l 7271 2059 l 7291 2066 l 7309 2073 l 7324 2080 l 7338 2088 l 7351 2094 l 7364 2101 l 7378 2107 l 7394 2112 l 7410 2116 l 7429 2118 l 7448 2118 l 7468 2115 l 7486 2109 l 7500 2100 l 7509 2086 l 7511 2070 l 7508 2055 l 7503 2042 l 7495 2031 l 7486 2022 l 7477 2016 l 7467 2011 l 7456 2006 l 7445 2001 l 7433 1994 l 7419 1984 l 7402 1969 l 7384 1949 l 7362 1923 l 7336 1889 l 7307 1848 l cp gs 0.80 setgray ef gr % Polyline n 7275 2400 m 7252 2435 l 7229 2470 l 7207 2504 l 7186 2535 l 7168 2562 l 7151 2587 l 7137 2608 l 7125 2626 l 7114 2642 l 7105 2655 l 7096 2667 l 7089 2677 l 7081 2688 l 7074 2698 l 7066 2708 l 7058 2720 l 7049 2734 l 7039 2750 l 7027 2770 l 7013 2792 l 6998 2819 l 6981 2849 l 6962 2883 l 6942 2920 l 6921 2960 l 6900 3000 l 6875 3051 l 6854 3099 l 6836 3141 l 6823 3178 l 6814 3210 l 6808 3237 l 6805 3259 l 6804 3279 l 6805 3297 l 6806 3313 l 6808 3328 l 6809 3343 l 6809 3358 l 6807 3373 l 6804 3390 l 6798 3406 l 6789 3422 l 6778 3436 l 6765 3446 l 6750 3450 l 6735 3446 l 6722 3436 l 6710 3422 l 6701 3406 l 6695 3390 l 6691 3373 l 6688 3358 l 6687 3343 l 6687 3328 l 6688 3312 l 6688 3297 l 6687 3279 l 6686 3259 l 6682 3237 l 6677 3210 l 6668 3178 l 6656 3141 l 6640 3099 l 6622 3051 l 6600 3000 l 6581 2956 l 6562 2914 l 6544 2874 l 6528 2838 l 6514 2807 l 6502 2781 l 6492 2758 l 6484 2739 l 6478 2724 l 6472 2710 l 6467 2698 l 6462 2687 l 6458 2677 l 6453 2665 l 6447 2652 l 6439 2637 l 6430 2619 l 6419 2598 l 6405 2573 l 6389 2544 l 6370 2512 l 6348 2476 l 6325 2438 l 6300 2400 l 6270 2357 l 6242 2319 l 6215 2286 l 6190 2260 l 6168 2240 l 6148 2224 l 6129 2213 l 6112 2205 l 6096 2199 l 6081 2194 l 6067 2189 l 6053 2185 l 6039 2180 l 6026 2173 l 6014 2164 l 6004 2153 l 5996 2141 l 5992 2127 l 5993 2113 l 6000 2100 l 6013 2091 l 6031 2086 l 6051 2083 l 6071 2082 l 6092 2083 l 6111 2086 l 6129 2090 l 6146 2095 l 6163 2100 l 6178 2106 l 6194 2113 l 6210 2119 l 6227 2126 l 6246 2132 l 6268 2139 l 6292 2145 l 6321 2151 l 6354 2157 l 6391 2162 l 6433 2167 l 6478 2171 l 6525 2175 l 6572 2178 l 6617 2181 l 6656 2183 l 6690 2184 l 6718 2185 l 6740 2186 l 6757 2187 l 6770 2187 l 6780 2187 l 6787 2187 l 6794 2187 l 6800 2187 l 6808 2187 l 6817 2187 l 6830 2187 l 6846 2186 l 6867 2185 l 6894 2184 l 6926 2183 l 6964 2181 l 7006 2178 l 7050 2175 l 7098 2171 l 7143 2166 l 7182 2161 l 7217 2155 l 7246 2148 l 7271 2141 l 7291 2134 l 7309 2127 l 7324 2120 l 7338 2112 l 7351 2106 l 7364 2099 l 7378 2093 l 7394 2088 l 7410 2084 l 7429 2082 l 7448 2082 l 7468 2085 l 7486 2091 l 7500 2100 l 7509 2114 l 7511 2130 l 7508 2145 l 7503 2158 l 7495 2169 l 7486 2178 l 7477 2184 l 7467 2189 l 7456 2194 l 7445 2199 l 7433 2206 l 7419 2216 l 7402 2231 l 7384 2251 l 7362 2277 l 7336 2311 l 7307 2352 l cp gs 0.80 setgray ef gr % Polyline n 6525 3150 m 6502 3115 l 6479 3080 l 6457 3046 l 6436 3015 l 6418 2988 l 6401 2963 l 6387 2942 l 6375 2924 l 6364 2908 l 6355 2895 l 6346 2883 l 6339 2873 l 6331 2862 l 6324 2852 l 6316 2842 l 6308 2830 l 6299 2816 l 6289 2800 l 6277 2780 l 6263 2758 l 6248 2731 l 6231 2701 l 6212 2667 l 6192 2630 l 6171 2590 l 6150 2550 l 6125 2499 l 6104 2451 l 6086 2409 l 6073 2372 l 6064 2340 l 6058 2313 l 6055 2291 l 6054 2271 l 6055 2253 l 6056 2237 l 6058 2222 l 6059 2207 l 6059 2192 l 6057 2177 l 6054 2160 l 6048 2144 l 6039 2128 l 6028 2114 l 6015 2104 l 6000 2100 l 5985 2104 l 5972 2114 l 5960 2128 l 5951 2144 l 5945 2160 l 5941 2177 l 5938 2192 l 5937 2207 l 5937 2222 l 5938 2238 l 5938 2253 l 5937 2271 l 5936 2291 l 5932 2313 l 5927 2340 l 5918 2372 l 5906 2409 l 5890 2451 l 5872 2499 l 5850 2550 l 5831 2594 l 5812 2636 l 5794 2676 l 5778 2712 l 5764 2743 l 5752 2769 l 5742 2792 l 5734 2811 l 5728 2826 l 5722 2840 l 5717 2852 l 5712 2863 l 5708 2873 l 5703 2885 l 5697 2898 l 5689 2913 l 5680 2931 l 5669 2952 l 5655 2977 l 5639 3006 l 5620 3038 l 5598 3074 l 5575 3112 l 5550 3150 l 5520 3193 l 5492 3231 l 5465 3264 l 5440 3290 l 5418 3310 l 5398 3326 l 5379 3337 l 5362 3345 l 5346 3351 l 5331 3356 l 5317 3361 l 5303 3365 l 5289 3370 l 5276 3377 l 5264 3386 l 5254 3397 l 5246 3409 l 5242 3423 l 5243 3437 l 5250 3450 l 5263 3459 l 5281 3464 l 5301 3467 l 5321 3468 l 5342 3467 l 5361 3464 l 5379 3460 l 5396 3455 l 5413 3450 l 5428 3444 l 5444 3437 l 5460 3431 l 5477 3424 l 5496 3418 l 5518 3411 l 5542 3405 l 5571 3399 l 5604 3393 l 5641 3388 l 5683 3383 l 5728 3379 l 5775 3375 l 5822 3372 l 5867 3369 l 5906 3367 l 5940 3366 l 5968 3365 l 5990 3364 l 6007 3363 l 6020 3363 l 6030 3363 l 6037 3363 l 6044 3363 l 6050 3363 l 6058 3363 l 6067 3363 l 6080 3363 l 6096 3364 l 6117 3365 l 6144 3366 l 6176 3367 l 6214 3369 l 6256 3372 l 6300 3375 l 6348 3379 l 6393 3384 l 6432 3389 l 6467 3395 l 6496 3402 l 6521 3409 l 6541 3416 l 6559 3423 l 6574 3430 l 6588 3438 l 6601 3444 l 6614 3451 l 6628 3457 l 6644 3462 l 6660 3466 l 6679 3468 l 6698 3468 l 6718 3465 l 6736 3459 l 6750 3450 l 6759 3436 l 6761 3420 l 6758 3405 l 6753 3392 l 6745 3381 l 6736 3372 l 6727 3366 l 6717 3361 l 6706 3356 l 6695 3351 l 6683 3344 l 6669 3334 l 6652 3319 l 6634 3299 l 6612 3273 l 6586 3239 l 6557 3198 l cp gs 0.80 setgray ef gr % Polyline n 8025 3150 m 8002 3115 l 7979 3080 l 7957 3046 l 7936 3015 l 7918 2988 l 7901 2963 l 7887 2942 l 7875 2924 l 7864 2908 l 7855 2895 l 7846 2883 l 7839 2873 l 7831 2862 l 7824 2852 l 7816 2842 l 7808 2830 l 7799 2816 l 7789 2800 l 7777 2780 l 7763 2758 l 7748 2731 l 7731 2701 l 7712 2667 l 7692 2630 l 7671 2590 l 7650 2550 l 7625 2499 l 7604 2451 l 7586 2409 l 7573 2372 l 7564 2340 l 7558 2313 l 7555 2291 l 7554 2271 l 7555 2253 l 7556 2237 l 7558 2222 l 7559 2207 l 7559 2192 l 7557 2177 l 7554 2160 l 7548 2144 l 7539 2128 l 7528 2114 l 7515 2104 l 7500 2100 l 7485 2104 l 7472 2114 l 7460 2128 l 7451 2144 l 7445 2160 l 7441 2177 l 7438 2192 l 7437 2207 l 7437 2222 l 7438 2238 l 7438 2253 l 7437 2271 l 7436 2291 l 7432 2313 l 7427 2340 l 7418 2372 l 7406 2409 l 7390 2451 l 7372 2499 l 7350 2550 l 7331 2594 l 7312 2636 l 7294 2676 l 7278 2712 l 7264 2743 l 7252 2769 l 7242 2792 l 7234 2811 l 7228 2826 l 7222 2840 l 7217 2852 l 7212 2863 l 7208 2873 l 7203 2885 l 7197 2898 l 7189 2913 l 7180 2931 l 7169 2952 l 7155 2977 l 7139 3006 l 7120 3038 l 7098 3074 l 7075 3112 l 7050 3150 l 7020 3193 l 6992 3231 l 6965 3264 l 6940 3290 l 6918 3310 l 6898 3326 l 6879 3337 l 6862 3345 l 6846 3351 l 6831 3356 l 6817 3361 l 6803 3365 l 6789 3370 l 6776 3377 l 6764 3386 l 6754 3397 l 6746 3409 l 6742 3423 l 6743 3437 l 6750 3450 l 6763 3459 l 6781 3464 l 6801 3467 l 6821 3468 l 6842 3467 l 6861 3464 l 6879 3460 l 6896 3455 l 6913 3450 l 6928 3444 l 6944 3437 l 6960 3431 l 6977 3424 l 6996 3418 l 7018 3411 l 7042 3405 l 7071 3399 l 7104 3393 l 7141 3388 l 7183 3383 l 7228 3379 l 7275 3375 l 7322 3372 l 7367 3369 l 7406 3367 l 7440 3366 l 7468 3365 l 7490 3364 l 7507 3363 l 7520 3363 l 7530 3363 l 7537 3363 l 7544 3363 l 7550 3363 l 7558 3363 l 7567 3363 l 7580 3363 l 7596 3364 l 7617 3365 l 7644 3366 l 7676 3367 l 7714 3369 l 7756 3372 l 7800 3375 l 7848 3379 l 7893 3384 l 7932 3389 l 7967 3395 l 7996 3402 l 8021 3409 l 8041 3416 l 8059 3423 l 8074 3430 l 8088 3438 l 8101 3444 l 8114 3451 l 8128 3457 l 8144 3462 l 8160 3466 l 8179 3468 l 8198 3468 l 8218 3465 l 8236 3459 l 8250 3450 l 8259 3436 l 8261 3420 l 8258 3405 l 8253 3392 l 8245 3381 l 8236 3372 l 8227 3366 l 8217 3361 l 8206 3356 l 8195 3351 l 8183 3344 l 8169 3334 l 8152 3319 l 8134 3299 l 8112 3273 l 8086 3239 l 8057 3198 l cp gs 0.80 setgray ef gr % here ends figure; % % here starts figure with depth 50 % Polyline 7.500 slw n 6750 750 m 6750 1650 l 6000 2100 l 6750 2625 l 6750 3450 l 6000 3000 l 5250 3450 l gs col0 s gr % Polyline n 6750 1650 m 7500 2100 l 6750 2625 l gs col0 s gr % Polyline n 6000 2100 m 6000 3000 l gs col0 s gr % Polyline n 7500 2100 m 7500 3000 l 6750 3450 l gs col0 s gr % Polyline n 7500 3000 m 8325 3450 l gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw [15 45] 45 sd n 1800 3600 m 2100 3600 l 2100 3900 l 1800 3900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 3600 m 1800 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 3600 m 2100 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 2100 4200 l 2100 4500 l 1800 4500 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 4200 m 1800 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 2100 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 6600 m 9300 6600 l 9300 6900 l 9000 6900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9300 6600 m 9000 6900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 9000 6600 m 9300 6900 l gs col0 s gr [] 0 sd % Polyline gs clippath 3180 6885 m 3120 6885 l 3120 7036 l 3150 6916 l 3180 7036 l cp eoclip n 2250 8400 m 2250 7275 l 3150 7275 l 3150 6900 l gs col0 s gr gr % arrowhead n 3180 7036 m 3150 6916 l 3120 7036 l 3180 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5220 6615 m 5280 6615 l 5280 6464 l 5250 6584 l 5220 6464 l cp eoclip n 3450 5100 m 3450 6075 l 5250 6075 l 5250 6600 l gs col0 s gr gr % arrowhead n 5220 6464 m 5250 6584 l 5280 6464 l 5220 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4020 6615 m 4080 6615 l 4080 6464 l 4050 6584 l 4020 6464 l cp eoclip n 2850 5100 m 2850 6225 l 4050 6225 l 4050 6600 l gs col0 s gr gr % arrowhead n 4020 6464 m 4050 6584 l 4080 6464 l 4020 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3120 6615 m 3180 6615 l 3180 6464 l 3150 6584 l 3120 6464 l cp eoclip n 2550 5100 m 2550 6300 l 3150 6300 l 3150 6600 l gs col0 s gr gr % arrowhead n 3120 6464 m 3150 6584 l 3180 6464 l 3120 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6420 6615 m 6480 6615 l 6480 6464 l 6450 6584 l 6420 6464 l cp eoclip n 5250 5100 m 5250 5925 l 6450 5925 l 6450 6600 l gs col0 s gr gr % arrowhead n 6420 6464 m 6450 6584 l 6480 6464 l 6420 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2280 6885 m 2220 6885 l 2220 7036 l 2250 6916 l 2280 7036 l cp eoclip n 1950 8400 m 1950 7200 l 2250 7200 l 2250 6900 l gs col0 s gr gr % arrowhead n 2280 7036 m 2250 6916 l 2220 7036 l 2280 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4320 6615 m 4380 6615 l 4380 6464 l 4350 6584 l 4320 6464 l cp eoclip n 3150 5100 m 3150 6150 l 4350 6150 l 4350 6600 l gs col0 s gr gr % arrowhead n 4320 6464 m 4350 6584 l 4380 6464 l 4320 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7320 6615 m 7380 6615 l 7380 6464 l 7350 6584 l 7320 6464 l cp eoclip n 5550 5100 m 5550 5850 l 7350 5850 l 7350 6600 l gs col0 s gr gr % arrowhead n 7320 6464 m 7350 6584 l 7380 6464 l 7320 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8220 6615 m 8280 6615 l 8280 6464 l 8250 6584 l 8220 6464 l cp eoclip n 5850 5100 m 5850 5775 l 8250 5775 l 8250 6600 l gs col0 s gr gr % arrowhead n 8220 6464 m 8250 6584 l 8280 6464 l 8220 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5580 6885 m 5520 6885 l 5520 7036 l 5550 6916 l 5580 7036 l cp eoclip n 3450 8400 m 3450 7575 l 5550 7575 l 5550 6900 l gs col0 s gr gr % arrowhead n 5580 7036 m 5550 6916 l 5520 7036 l 5580 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5280 6885 m 5220 6885 l 5220 7036 l 5250 6916 l 5280 7036 l cp eoclip n 3150 8400 m 3150 7500 l 5250 7500 l 5250 6900 l gs col0 s gr gr % arrowhead n 5280 7036 m 5250 6916 l 5220 7036 l 5280 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4380 6885 m 4320 6885 l 4320 7036 l 4350 6916 l 4380 7036 l cp eoclip n 2850 8400 m 2850 7425 l 4350 7425 l 4350 6900 l gs col0 s gr gr % arrowhead n 4380 7036 m 4350 6916 l 4320 7036 l 4380 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4080 6885 m 4020 6885 l 4020 7036 l 4050 6916 l 4080 7036 l cp eoclip n 2550 8400 m 2550 7350 l 4050 7350 l 4050 6900 l gs col0 s gr gr % arrowhead n 4080 7036 m 4050 6916 l 4020 7036 l 4080 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7380 6885 m 7320 6885 l 7320 7036 l 7350 6916 l 7380 7036 l cp eoclip n 5250 8400 m 5250 7725 l 7350 7725 l 7350 6900 l gs col0 s gr gr % arrowhead n 7380 7036 m 7350 6916 l 7320 7036 l 7380 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8280 6885 m 8220 6885 l 8220 7036 l 8250 6916 l 8280 7036 l cp eoclip n 5550 8400 m 5550 7800 l 8250 7800 l 8250 6900 l gs col0 s gr gr % arrowhead n 8280 7036 m 8250 6916 l 8220 7036 l 8280 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9180 6885 m 9120 6885 l 9120 7036 l 9150 6916 l 9180 7036 l cp eoclip n 5850 8400 m 5850 7875 l 9150 7875 l 9150 6900 l gs col0 s gr gr % arrowhead n 9180 7036 m 9150 6916 l 9120 7036 l 9180 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6480 6885 m 6420 6885 l 6420 7036 l 6450 6916 l 6480 7036 l cp eoclip n 4950 8400 m 4950 7650 l 6450 7650 l 6450 6900 l gs col0 s gr gr % arrowhead n 6480 7036 m 6450 6916 l 6420 7036 l 6480 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 6615 m 5580 6615 l 5580 6464 l 5550 6584 l 5520 6464 l cp eoclip n 4950 5100 m 4950 6000 l 5550 6000 l 5550 6600 l gs col0 s gr gr % arrowhead n 5520 6464 m 5550 6584 l 5580 6464 l 5520 6464 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 3225 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 240.00 scf sf 600 3825 m gs 1 -1 sc (vlbltab) col0 sh gr /Courier ff 240.00 scf sf 600 4425 m gs 1 -1 sc (velotab) col0 sh gr /Courier ff 240.00 scf sf 600 2625 m gs 1 -1 sc (vnodnbr) col0 sh gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (velmbas) col0 sh gr /Courier ff 240.00 scf sf 600 1425 m gs 1 -1 sc (vnodbas) col0 sh gr /Courier ff 240.00 scf sf 600 2025 m gs 1 -1 sc (velmnbr) col0 sh gr /Courier ff 240.00 scf sf 600 5025 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 6825 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 240.00 scf sf 600 8625 m gs 1 -1 sc (vendtab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 3240 m gs 1 -1 sc (24) col0 sh gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 1800 4800 m 2100 4800 l 2100 5100 l 1800 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 4800 m 2400 4800 l 2400 5100 l 2100 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 4800 m 2700 4800 l 2700 5100 l 2400 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 4800 m 3000 4800 l 3000 5100 l 2700 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 4800 m 3600 4800 l 3600 5100 l 3300 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 5040 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3000 4800 m 3300 4800 l 3300 5100 l 3000 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 4800 m 5100 4800 l 5100 5100 l 4800 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4825 5040 m gs 1 -1 sc (13) col0 sh gr % Polyline n 5100 4800 m 5400 4800 l 5400 5100 l 5100 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 5040 m gs 1 -1 sc (16) col0 sh gr % Polyline n 5400 4800 m 5700 4800 l 5700 5100 l 5400 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5425 5040 m gs 1 -1 sc (19) col0 sh gr % Polyline n 1800 8400 m 2100 8400 l 2100 8700 l 1800 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 8400 m 2400 8400 l 2400 8700 l 2100 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 8400 m 2700 8400 l 2700 8700 l 2400 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 8400 m 3000 8400 l 3000 8700 l 2700 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 8400 m 3300 8400 l 3300 8700 l 3000 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 8640 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3300 8400 m 3600 8400 l 3600 8700 l 3300 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 8640 m gs 1 -1 sc (13) col0 sh gr % Polyline n 4800 8400 m 5100 8400 l 5100 8700 l 4800 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4825 8640 m gs 1 -1 sc (16) col0 sh gr % Polyline n 5100 8400 m 5400 8400 l 5400 8700 l 5100 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 8640 m gs 1 -1 sc (19) col0 sh gr % Polyline n 5400 8400 m 5700 8400 l 5700 8700 l 5400 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5425 8640 m gs 1 -1 sc (22) col0 sh gr % Polyline n 5700 8400 m 6000 8400 l 6000 8700 l 5700 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5725 8640 m gs 1 -1 sc (25) col0 sh gr % Polyline n 5700 4800 m 6000 4800 l 6000 5100 l 5700 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5725 5040 m gs 1 -1 sc (22) col0 sh gr % Polyline n 1800 6600 m 2100 6600 l 2100 6900 l 1800 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 6840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2100 6600 m 2400 6600 l 2400 6900 l 2100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2125 6840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2400 6600 m 2700 6600 l 2700 6900 l 2400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 6840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 2700 6600 m 3000 6600 l 3000 6900 l 2700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 6840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3000 6600 m 3300 6600 l 3300 6900 l 3000 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 6840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 3300 6600 m 3600 6600 l 3600 6900 l 3300 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 6840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3600 6600 m 3900 6600 l 3900 6900 l 3600 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 6840 m gs 1 -1 sc (14) col0 sh gr % Polyline n 3900 6600 m 4200 6600 l 4200 6900 l 3900 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3925 6840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 4200 6600 m 4500 6600 l 4500 6900 l 4200 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4225 6840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 4500 6600 m 4800 6600 l 4800 6900 l 4500 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4525 6840 m gs 1 -1 sc (14) col0 sh gr % Polyline n 4800 6600 m 5100 6600 l 5100 6900 l 4800 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4825 6840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 5100 6600 m 5400 6600 l 5400 6900 l 5100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 6840 m gs 1 -1 sc (14) col0 sh gr % Polyline n 5400 6600 m 5700 6600 l 5700 6900 l 5400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 6600 m 6000 6600 l 6000 6900 l 5700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 6600 m 6300 6600 l 6300 6900 l 6000 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 6600 m 6600 6600 l 6600 6900 l 6300 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 6600 m 6900 6600 l 6900 6900 l 6600 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 6600 m 7200 6600 l 7200 6900 l 6900 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 6600 m 7500 6600 l 7500 6900 l 7200 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 6600 m 7800 6600 l 7800 6900 l 7500 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 6600 m 8100 6600 l 8100 6900 l 7800 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 6600 m 8400 6600 l 8400 6900 l 8100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 6600 m 8700 6600 l 8700 6900 l 8400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 6600 m 9000 6600 l 9000 6900 l 8700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 4800 m 3900 4800 l 3900 5100 l 3600 5100 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 3900 4800 m 4200 4800 l 4200 5100 l 3900 5100 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 4200 4800 m 4500 4800 l 4500 5100 l 4200 5100 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 4500 4800 m 4800 4800 l 4800 5100 l 4500 5100 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 3600 8400 m 3900 8400 l 3900 8700 l 3600 8700 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 3900 8400 m 4200 8400 l 4200 8700 l 3900 8700 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 4200 8400 m 4500 8400 l 4500 8700 l 4200 8700 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 4500 8400 m 4800 8400 l 4800 8700 l 4500 8700 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline gs clippath 1920 6615 m 1980 6615 l 1980 6464 l 1950 6584 l 1920 6464 l cp eoclip n 1950 5100 m 1950 6600 l gs col0 s gr gr % arrowhead n 1920 6464 m 1950 6584 l 1980 6464 l 1920 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2220 6615 m 2280 6615 l 2280 6464 l 2250 6584 l 2220 6464 l cp eoclip n 2250 5100 m 2250 6600 l gs col0 s gr gr % arrowhead n 2220 6464 m 2250 6584 l 2280 6464 l 2220 6464 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 6757 2618 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6750 1650 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6007 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7507 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6750 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6000 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5250 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6750 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8325 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 1900 5040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 5040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 5040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 5040 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 5040 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 8640 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 8640 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 8640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 8640 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 6840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 6840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 6840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 6840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 6840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 6840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5950 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7450 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 3540 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 3540 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8275 3540 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 5040 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 5040 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 5040 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 5040 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 8640 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 8640 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 8640 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 8640 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 2640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 2040 m gs 1 -1 sc (4) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 6627 2708 m gs 1 -1 sc (12) col0 sh gr /Times-Roman ff 240.00 scf sf 6620 1740 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 240.00 scf sf 5877 3083 m gs 1 -1 sc (13) col0 sh gr /Times-Roman ff 240.00 scf sf 7377 3083 m gs 1 -1 sc (14) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_me2.fig000066400000000000000000000357161514310134000260100ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 15 0 0 16 0.0000 4 165 240 1825 3240 24\001 -6 6 1800 3600 2100 3900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 3600 2100 3600 2100 3900 1800 3900 1800 3600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 3600 1800 3900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 3600 2100 3900 -6 6 1800 4200 2100 4500 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 4200 2100 4200 2100 4500 1800 4500 1800 4200 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 4200 1800 4500 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 4200 2100 4500 -6 6 6600 2461 6914 2775 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6757 2618 150 150 6757 2618 6907 2618 4 0 0 8 0 0 16 0.0000 4 180 240 6627 2708 12\001 -6 6 6600 1500 6900 1800 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6750 1650 150 150 6750 1650 6900 1650 4 0 0 8 0 0 16 0.0000 4 180 240 6620 1740 11\001 -6 6 5850 2836 6164 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6007 2993 150 150 6007 2993 6157 2993 4 0 0 8 0 0 16 0.0000 4 195 240 5877 3083 13\001 -6 6 7350 2836 7664 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7507 2993 150 150 7507 2993 7657 2993 4 0 0 8 0 0 16 0.0000 4 180 240 7377 3083 14\001 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 15 0 0 16 0.0000 4 180 240 1825 840 11\001 -6 6 1800 4800 2100 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 4800 2100 4800 2100 5100 1800 5100 1800 4800 4 0 0 10 0 0 16 0.0000 4 180 120 1900 5040 1\001 -6 6 2100 4800 2400 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 4800 2400 4800 2400 5100 2100 5100 2100 4800 4 0 0 10 0 0 16 0.0000 4 165 120 2200 5040 2\001 -6 6 2400 4800 2700 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 4800 2700 4800 2700 5100 2400 5100 2400 4800 4 0 0 10 0 0 16 0.0000 4 180 120 2500 5040 5\001 -6 6 2700 4800 3000 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 4800 3000 4800 3000 5100 2700 5100 2700 4800 4 0 0 10 0 0 16 0.0000 4 165 120 2800 5040 8\001 -6 6 3300 4800 3600 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 4800 3600 4800 3600 5100 3300 5100 3300 4800 4 0 0 15 0 0 16 0.0000 4 180 240 3325 5040 12\001 -6 6 3000 4800 3300 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 4800 3300 4800 3300 5100 3000 5100 3000 4800 4 0 0 10 0 0 16 0.0000 4 180 120 3100 5040 9\001 -6 6 4800 4800 5100 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 4800 5100 4800 5100 5100 4800 5100 4800 4800 4 0 0 15 0 0 16 0.0000 4 195 240 4825 5040 13\001 -6 6 5100 4800 5400 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 4800 5400 4800 5400 5100 5100 5100 5100 4800 4 0 0 15 0 0 16 0.0000 4 180 240 5125 5040 16\001 -6 6 5400 4800 5700 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 4800 5700 4800 5700 5100 5400 5100 5400 4800 4 0 0 15 0 0 16 0.0000 4 195 240 5425 5040 19\001 -6 6 1800 8400 2100 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 8400 2100 8400 2100 8700 1800 8700 1800 8400 4 0 0 10 0 0 16 0.0000 4 165 120 1900 8640 2\001 -6 6 2100 8400 2400 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 8400 2400 8400 2400 8700 2100 8700 2100 8400 4 0 0 10 0 0 16 0.0000 4 180 120 2200 8640 5\001 -6 6 2400 8400 2700 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 8400 2700 8400 2700 8700 2400 8700 2400 8400 4 0 0 10 0 0 16 0.0000 4 165 120 2500 8640 8\001 -6 6 2700 8400 3000 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 8400 3000 8400 3000 8700 2700 8700 2700 8400 4 0 0 10 0 0 16 0.0000 4 180 120 2800 8640 9\001 -6 6 3000 8400 3300 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 8400 3300 8400 3300 8700 3000 8700 3000 8400 4 0 0 15 0 0 16 0.0000 4 180 240 3025 8640 12\001 -6 6 3300 8400 3600 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 8400 3600 8400 3600 8700 3300 8700 3300 8400 4 0 0 15 0 0 16 0.0000 4 195 240 3325 8640 13\001 -6 6 4800 8400 5100 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 8400 5100 8400 5100 8700 4800 8700 4800 8400 4 0 0 15 0 0 16 0.0000 4 180 240 4825 8640 16\001 -6 6 5100 8400 5400 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 8400 5400 8400 5400 8700 5100 8700 5100 8400 4 0 0 15 0 0 16 0.0000 4 195 240 5125 8640 19\001 -6 6 5400 8400 5700 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 8400 5700 8400 5700 8700 5400 8700 5400 8400 4 0 0 15 0 0 16 0.0000 4 165 240 5425 8640 22\001 -6 6 5700 8400 6000 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 8400 6000 8400 6000 8700 5700 8700 5700 8400 4 0 0 15 0 0 16 0.0000 4 180 240 5725 8640 25\001 -6 6 5700 4800 6000 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 4800 6000 4800 6000 5100 5700 5100 5700 4800 4 0 0 15 0 0 16 0.0000 4 165 240 5725 5040 22\001 -6 6 1800 6600 9300 6900 6 1800 6600 2100 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 6600 2100 6600 2100 6900 1800 6900 1800 6600 4 0 0 15 0 0 16 0.0000 4 180 240 1825 6840 11\001 -6 6 2100 6600 2400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 6600 2400 6600 2400 6900 2100 6900 2100 6600 4 0 0 15 0 0 16 0.0000 4 180 240 2125 6840 11\001 -6 6 2400 6600 2700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 6600 2700 6600 2700 6900 2400 6900 2400 6600 4 0 0 15 0 0 16 0.0000 4 180 240 2425 6840 12\001 -6 6 2700 6600 3000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 6600 3000 6600 3000 6900 2700 6900 2700 6600 4 0 0 15 0 0 16 0.0000 4 195 240 2725 6840 13\001 -6 6 3000 6600 3300 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 6600 3300 6600 3300 6900 3000 6900 3000 6600 4 0 0 15 0 0 16 0.0000 4 180 240 3025 6840 11\001 -6 6 3300 6600 3600 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 6600 3600 6600 3600 6900 3300 6900 3300 6600 4 0 0 15 0 0 16 0.0000 4 180 240 3325 6840 12\001 -6 6 3600 6600 3900 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 6600 3900 6600 3900 6900 3600 6900 3600 6600 4 0 0 15 0 0 16 0.0000 4 180 240 3625 6840 14\001 -6 6 3900 6600 4200 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 6600 4200 6600 4200 6900 3900 6900 3900 6600 4 0 0 15 0 0 16 0.0000 4 195 240 3925 6840 13\001 -6 6 4200 6600 4500 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 6600 4500 6600 4500 6900 4200 6900 4200 6600 4 0 0 15 0 0 16 0.0000 4 195 240 4225 6840 13\001 -6 6 4500 6600 4800 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 6600 4800 6600 4800 6900 4500 6900 4500 6600 4 0 0 15 0 0 16 0.0000 4 180 240 4525 6840 14\001 -6 6 4800 6600 5100 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 6600 5100 6600 5100 6900 4800 6900 4800 6600 4 0 0 15 0 0 16 0.0000 4 180 240 4825 6840 12\001 -6 6 5100 6600 5400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 6600 5400 6600 5400 6900 5100 6900 5100 6600 4 0 0 15 0 0 16 0.0000 4 180 240 5125 6840 14\001 -6 6 5400 6600 5700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 6600 5700 6600 5700 6900 5400 6900 5400 6600 4 0 0 10 0 0 16 0.0000 4 180 120 5500 6840 1\001 -6 6 5700 6600 6000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 6600 6000 6600 6000 6900 5700 6900 5700 6600 4 0 0 10 0 0 16 0.0000 4 165 120 5800 6840 2\001 -6 6 6000 6600 6300 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 6600 6300 6600 6300 6900 6000 6900 6000 6600 4 0 0 10 0 0 16 0.0000 4 180 120 6100 6840 3\001 -6 6 6300 6600 6600 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 6600 6600 6600 6600 6900 6300 6900 6300 6600 4 0 0 10 0 0 16 0.0000 4 180 120 6400 6840 5\001 -6 6 6600 6600 6900 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 6600 6900 6600 6900 6900 6600 6900 6600 6600 4 0 0 10 0 0 16 0.0000 4 165 120 6700 6840 2\001 -6 6 6900 6600 7200 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 6600 7200 6600 7200 6900 6900 6900 6900 6600 4 0 0 10 0 0 16 0.0000 4 180 120 7000 6840 3\001 -6 6 7200 6600 7500 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 6600 7500 6600 7500 6900 7200 6900 7200 6600 4 0 0 10 0 0 16 0.0000 4 165 120 7300 6840 4\001 -6 6 7500 6600 7800 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 6600 7800 6600 7800 6900 7500 6900 7500 6600 4 0 0 10 0 0 16 0.0000 4 180 120 7600 6840 5\001 -6 6 7800 6600 8100 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 6600 8100 6600 8100 6900 7800 6900 7800 6600 4 0 0 10 0 0 16 0.0000 4 165 120 7900 6840 2\001 -6 6 8100 6600 8400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 6600 8400 6600 8400 6900 8100 6900 8100 6600 4 0 0 10 0 0 16 0.0000 4 180 120 8200 6840 3\001 -6 6 8400 6600 8700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 6600 8700 6600 8700 6900 8400 6900 8400 6600 4 0 0 10 0 0 16 0.0000 4 180 120 8500 6840 6\001 -6 6 8700 6600 9000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 6600 9000 6600 9000 6900 8700 6900 8700 6600 4 0 0 10 0 0 16 0.0000 4 180 120 8800 6840 5\001 -6 6 9000 6600 9300 6900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 9000 6600 9300 6600 9300 6900 9000 6900 9000 6600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9300 6600 9000 6900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 9000 6600 9300 6900 -6 -6 6 6600 600 6900 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6750 750 150 150 6750 750 6900 750 4 0 0 10 0 0 16 0.0000 4 180 120 6700 840 1\001 -6 6 5850 1950 6150 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6000 2100 150 150 6000 2100 6150 2100 4 0 0 10 0 0 16 0.0000 4 165 120 5950 2190 2\001 -6 6 7350 1950 7650 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 2100 150 150 7500 2100 7650 2100 4 0 0 10 0 0 16 0.0000 4 180 120 7450 2190 3\001 -6 6 5100 3300 5400 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5250 3450 150 150 5250 3450 5400 3450 4 0 0 10 0 0 16 0.0000 4 165 120 5200 3540 4\001 -6 6 6600 3300 6900 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6750 3450 150 150 6750 3450 6900 3450 4 0 0 10 0 0 16 0.0000 4 180 120 6700 3540 5\001 -6 6 8175 3300 8475 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8325 3450 150 150 8325 3450 8475 3450 4 0 0 10 0 0 16 0.0000 4 180 120 8275 3540 6\001 -6 6 3600 4800 3900 5100 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 3600 4800 3900 4800 3900 5100 3600 5100 3600 4800 4 0 0 10 0 0 16 0.0000 4 165 120 3700 5040 0\001 -6 6 3900 4800 4200 5100 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 3900 4800 4200 4800 4200 5100 3900 5100 3900 4800 4 0 0 10 0 0 16 0.0000 4 165 120 4000 5040 0\001 -6 6 4200 4800 4500 5100 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 4200 4800 4500 4800 4500 5100 4200 5100 4200 4800 4 0 0 10 0 0 16 0.0000 4 165 120 4300 5040 0\001 -6 6 4500 4800 4800 5100 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 4500 4800 4800 4800 4800 5100 4500 5100 4500 4800 4 0 0 10 0 0 16 0.0000 4 165 120 4600 5040 0\001 -6 6 3600 8400 3900 8700 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 3600 8400 3900 8400 3900 8700 3600 8700 3600 8400 4 0 0 10 0 0 16 0.0000 4 165 120 3700 8640 0\001 -6 6 3900 8400 4200 8700 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 3900 8400 4200 8400 4200 8700 3900 8700 3900 8400 4 0 0 10 0 0 16 0.0000 4 165 120 4000 8640 0\001 -6 6 4200 8400 4500 8700 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 4200 8400 4500 8400 4500 8700 4200 8700 4200 8400 4 0 0 10 0 0 16 0.0000 4 165 120 4300 8640 0\001 -6 6 4500 8400 4800 8700 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 4500 8400 4800 8400 4800 8700 4500 8700 4500 8400 4 0 0 10 0 0 16 0.0000 4 165 120 4600 8640 0\001 -6 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7 6750 750 6750 1650 6000 2100 6750 2625 6750 3450 6000 3000 5250 3450 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 6750 1650 7500 2100 6750 2625 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 8400 2250 7275 3150 7275 3150 6900 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 1950 5100 1950 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 5100 3450 6075 5250 6075 5250 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 5100 2850 6225 4050 6225 4050 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 5100 2550 6300 3150 6300 3150 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5250 5100 5250 5925 6450 5925 6450 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 1950 8400 1950 7200 2250 7200 2250 6900 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 2250 5100 2250 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 5100 3150 6150 4350 6150 4350 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5550 5100 5550 5850 7350 5850 7350 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5850 5100 5850 5775 8250 5775 8250 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 8400 3450 7575 5550 7575 5550 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 8400 3150 7500 5250 7500 5250 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 8400 2850 7425 4350 7425 4350 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 8400 2550 7350 4050 7350 4050 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5250 8400 5250 7725 7350 7725 7350 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5550 8400 5550 7800 8250 7800 8250 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5850 8400 5850 7875 9150 7875 9150 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4950 8400 4950 7650 6450 7650 6450 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4950 5100 4950 6000 5550 6000 5550 6600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6000 2100 6000 3000 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 7500 2100 7500 3000 6750 3450 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 7500 3000 8325 3450 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 7500 2100 7275 1800 6900 1200 6750 750 6600 1200 6300 1800 6000 2100 6525 2025 7050 2025 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 7500 2100 7275 2400 6900 3000 6750 3450 6600 3000 6300 2400 6000 2100 6525 2175 7050 2175 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 6750 3450 6525 3150 6150 2550 6000 2100 5850 2550 5550 3150 5250 3450 5775 3375 6300 3375 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 8250 3450 8025 3150 7650 2550 7500 2100 7350 2550 7050 3150 6750 3450 7275 3375 7800 3375 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 4 0 0 20 0 12 16 0.0000 4 210 1050 600 3225 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3825 vlbltab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4425 velotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2625 vnodnbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 velmbas\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 1425 vnodbas\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2025 velmnbr\001 4 0 0 10 0 0 16 0.0000 4 180 120 1900 1440 1\001 4 0 0 10 0 0 16 0.0000 4 180 120 1900 2640 6\001 4 0 0 10 0 0 16 0.0000 4 165 120 1900 2040 4\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 5025 verttab\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 6825 edgetab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 8625 vendtab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_me3.eps000066400000000000000000001141101514310134000260150ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Mon May 3 15:33:42 2004 %%For: pelegrin@brol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 757 488 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 488 moveto 0 0 lineto 757 0 lineto 757 488 lineto closepath clip newpath -36.0 522.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 60 % Polyline 2 slj n 6525 3150 m 6502 3115 l 6479 3080 l 6457 3046 l 6436 3015 l 6418 2988 l 6401 2963 l 6387 2942 l 6375 2924 l 6364 2908 l 6355 2895 l 6346 2883 l 6339 2873 l 6331 2862 l 6324 2852 l 6316 2842 l 6308 2830 l 6299 2816 l 6289 2800 l 6277 2780 l 6263 2758 l 6248 2731 l 6231 2701 l 6212 2667 l 6192 2630 l 6171 2590 l 6150 2550 l 6125 2499 l 6104 2451 l 6086 2409 l 6073 2372 l 6064 2340 l 6058 2313 l 6055 2291 l 6054 2271 l 6055 2253 l 6056 2237 l 6058 2222 l 6059 2207 l 6059 2192 l 6057 2177 l 6054 2160 l 6048 2144 l 6039 2128 l 6028 2114 l 6015 2104 l 6000 2100 l 5985 2104 l 5972 2114 l 5960 2128 l 5951 2144 l 5945 2160 l 5941 2177 l 5938 2192 l 5937 2207 l 5937 2222 l 5938 2238 l 5938 2253 l 5937 2271 l 5936 2291 l 5932 2313 l 5927 2340 l 5918 2372 l 5906 2409 l 5890 2451 l 5872 2499 l 5850 2550 l 5831 2594 l 5812 2636 l 5794 2676 l 5778 2712 l 5764 2743 l 5752 2769 l 5742 2792 l 5734 2811 l 5728 2826 l 5722 2840 l 5717 2852 l 5712 2863 l 5708 2873 l 5703 2885 l 5697 2898 l 5689 2913 l 5680 2931 l 5669 2952 l 5655 2977 l 5639 3006 l 5620 3038 l 5598 3074 l 5575 3112 l 5550 3150 l 5520 3193 l 5492 3231 l 5465 3264 l 5440 3290 l 5418 3310 l 5398 3326 l 5379 3337 l 5362 3345 l 5346 3351 l 5331 3356 l 5317 3361 l 5303 3365 l 5289 3370 l 5276 3377 l 5264 3386 l 5254 3397 l 5246 3409 l 5242 3423 l 5243 3437 l 5250 3450 l 5263 3459 l 5281 3464 l 5301 3467 l 5321 3468 l 5342 3467 l 5361 3464 l 5379 3460 l 5396 3455 l 5413 3450 l 5428 3444 l 5444 3437 l 5460 3431 l 5477 3424 l 5496 3418 l 5518 3411 l 5542 3405 l 5571 3399 l 5604 3393 l 5641 3388 l 5683 3383 l 5728 3379 l 5775 3375 l 5822 3372 l 5867 3369 l 5906 3367 l 5940 3366 l 5968 3365 l 5990 3364 l 6007 3363 l 6020 3363 l 6030 3363 l 6037 3363 l 6044 3363 l 6050 3363 l 6058 3363 l 6067 3363 l 6080 3363 l 6096 3364 l 6117 3365 l 6144 3366 l 6176 3367 l 6214 3369 l 6256 3372 l 6300 3375 l 6348 3379 l 6393 3384 l 6432 3389 l 6467 3395 l 6496 3402 l 6521 3409 l 6541 3416 l 6559 3423 l 6574 3430 l 6588 3438 l 6601 3444 l 6614 3451 l 6628 3457 l 6644 3462 l 6660 3466 l 6679 3468 l 6698 3468 l 6718 3465 l 6736 3459 l 6750 3450 l 6759 3436 l 6761 3420 l 6758 3405 l 6753 3392 l 6745 3381 l 6736 3372 l 6727 3366 l 6717 3361 l 6706 3356 l 6695 3351 l 6683 3344 l 6669 3334 l 6652 3319 l 6634 3299 l 6612 3273 l 6586 3239 l 6557 3198 l cp gs 0.80 setgray ef gr % Polyline n 8025 3150 m 8002 3115 l 7979 3080 l 7957 3046 l 7936 3015 l 7918 2988 l 7901 2963 l 7887 2942 l 7875 2924 l 7864 2908 l 7855 2895 l 7846 2883 l 7839 2873 l 7831 2862 l 7824 2852 l 7816 2842 l 7808 2830 l 7799 2816 l 7789 2800 l 7777 2780 l 7763 2758 l 7748 2731 l 7731 2701 l 7712 2667 l 7692 2630 l 7671 2590 l 7650 2550 l 7625 2499 l 7604 2451 l 7586 2409 l 7573 2372 l 7564 2340 l 7558 2313 l 7555 2291 l 7554 2271 l 7555 2253 l 7556 2237 l 7558 2222 l 7559 2207 l 7559 2192 l 7557 2177 l 7554 2160 l 7548 2144 l 7539 2128 l 7528 2114 l 7515 2104 l 7500 2100 l 7485 2104 l 7472 2114 l 7460 2128 l 7451 2144 l 7445 2160 l 7441 2177 l 7438 2192 l 7437 2207 l 7437 2222 l 7438 2238 l 7438 2253 l 7437 2271 l 7436 2291 l 7432 2313 l 7427 2340 l 7418 2372 l 7406 2409 l 7390 2451 l 7372 2499 l 7350 2550 l 7331 2594 l 7312 2636 l 7294 2676 l 7278 2712 l 7264 2743 l 7252 2769 l 7242 2792 l 7234 2811 l 7228 2826 l 7222 2840 l 7217 2852 l 7212 2863 l 7208 2873 l 7203 2885 l 7197 2898 l 7189 2913 l 7180 2931 l 7169 2952 l 7155 2977 l 7139 3006 l 7120 3038 l 7098 3074 l 7075 3112 l 7050 3150 l 7020 3193 l 6992 3231 l 6965 3264 l 6940 3290 l 6918 3310 l 6898 3326 l 6879 3337 l 6862 3345 l 6846 3351 l 6831 3356 l 6817 3361 l 6803 3365 l 6789 3370 l 6776 3377 l 6764 3386 l 6754 3397 l 6746 3409 l 6742 3423 l 6743 3437 l 6750 3450 l 6763 3459 l 6781 3464 l 6801 3467 l 6821 3468 l 6842 3467 l 6861 3464 l 6879 3460 l 6896 3455 l 6913 3450 l 6928 3444 l 6944 3437 l 6960 3431 l 6977 3424 l 6996 3418 l 7018 3411 l 7042 3405 l 7071 3399 l 7104 3393 l 7141 3388 l 7183 3383 l 7228 3379 l 7275 3375 l 7322 3372 l 7367 3369 l 7406 3367 l 7440 3366 l 7468 3365 l 7490 3364 l 7507 3363 l 7520 3363 l 7530 3363 l 7537 3363 l 7544 3363 l 7550 3363 l 7558 3363 l 7567 3363 l 7580 3363 l 7596 3364 l 7617 3365 l 7644 3366 l 7676 3367 l 7714 3369 l 7756 3372 l 7800 3375 l 7848 3379 l 7893 3384 l 7932 3389 l 7967 3395 l 7996 3402 l 8021 3409 l 8041 3416 l 8059 3423 l 8074 3430 l 8088 3438 l 8101 3444 l 8114 3451 l 8128 3457 l 8144 3462 l 8160 3466 l 8179 3468 l 8198 3468 l 8218 3465 l 8236 3459 l 8250 3450 l 8259 3436 l 8261 3420 l 8258 3405 l 8253 3392 l 8245 3381 l 8236 3372 l 8227 3366 l 8217 3361 l 8206 3356 l 8195 3351 l 8183 3344 l 8169 3334 l 8152 3319 l 8134 3299 l 8112 3273 l 8086 3239 l 8057 3198 l cp gs 0.80 setgray ef gr % Polyline n 6675 2550 m 6670 2595 l 6667 2629 l 6665 2650 l 6664 2660 l 6663 2660 l 6663 2653 l 6663 2644 l 6663 2635 l 6663 2629 l 6664 2632 l 6665 2645 l 6667 2673 l 6670 2717 l 6675 2775 l 6678 2811 l 6682 2847 l 6685 2884 l 6689 2920 l 6693 2954 l 6697 2987 l 6701 3017 l 6705 3046 l 6709 3073 l 6713 3098 l 6717 3123 l 6721 3146 l 6725 3169 l 6729 3191 l 6733 3214 l 6736 3236 l 6740 3259 l 6743 3283 l 6746 3307 l 6749 3331 l 6751 3355 l 6752 3379 l 6753 3401 l 6753 3422 l 6752 3438 l 6750 3450 l 6745 3456 l 6740 3454 l 6733 3445 l 6728 3432 l 6723 3417 l 6718 3401 l 6715 3384 l 6712 3367 l 6709 3349 l 6706 3331 l 6703 3312 l 6700 3292 l 6695 3269 l 6689 3243 l 6681 3214 l 6670 3181 l 6657 3142 l 6641 3099 l 6622 3051 l 6600 3000 l 6581 2956 l 6562 2914 l 6544 2874 l 6528 2838 l 6514 2807 l 6502 2781 l 6492 2758 l 6484 2739 l 6478 2724 l 6472 2710 l 6467 2698 l 6462 2687 l 6458 2677 l 6453 2665 l 6447 2652 l 6439 2637 l 6430 2619 l 6419 2598 l 6405 2573 l 6389 2544 l 6370 2512 l 6348 2476 l 6325 2438 l 6300 2400 l 6270 2357 l 6242 2319 l 6216 2286 l 6193 2260 l 6172 2240 l 6155 2224 l 6139 2213 l 6125 2205 l 6112 2199 l 6100 2194 l 6088 2189 l 6077 2185 l 6066 2180 l 6054 2173 l 6042 2164 l 6030 2153 l 6019 2141 l 6010 2127 l 6003 2113 l 6000 2100 l 6004 2089 l 6015 2083 l 6029 2082 l 6045 2084 l 6062 2089 l 6079 2096 l 6096 2104 l 6113 2113 l 6130 2121 l 6149 2131 l 6169 2139 l 6191 2148 l 6216 2156 l 6243 2163 l 6271 2170 l 6300 2175 l 6334 2180 l 6359 2184 l 6374 2186 l 6379 2187 l 6375 2187 l 6371 2187 l 6376 2186 l 6391 2184 l 6416 2180 l 6450 2175 l 6479 2170 l 6507 2163 l 6532 2155 l 6555 2145 l 6574 2135 l 6591 2123 l 6605 2112 l 6619 2100 l 6632 2089 l 6646 2079 l 6661 2071 l 6677 2066 l 6695 2065 l 6715 2069 l 6734 2081 l 6750 2100 l 6759 2121 l 6765 2144 l 6768 2169 l 6768 2192 l 6766 2214 l 6762 2234 l 6757 2252 l 6751 2269 l 6744 2285 l 6737 2300 l 6730 2316 l 6723 2332 l 6716 2350 l 6709 2371 l 6702 2394 l 6695 2420 l 6689 2449 l 6684 2481 l 6679 2516 l cp gs 0.80 setgray ef gr % Polyline n 6825 2550 m 6830 2595 l 6833 2629 l 6835 2650 l 6836 2660 l 6837 2660 l 6837 2653 l 6837 2644 l 6837 2635 l 6837 2629 l 6836 2632 l 6835 2645 l 6833 2673 l 6830 2717 l 6825 2775 l 6822 2811 l 6818 2847 l 6815 2884 l 6811 2920 l 6807 2954 l 6803 2987 l 6799 3017 l 6795 3046 l 6791 3073 l 6787 3098 l 6783 3123 l 6779 3146 l 6775 3169 l 6771 3191 l 6767 3214 l 6764 3236 l 6760 3259 l 6757 3283 l 6754 3307 l 6751 3331 l 6749 3355 l 6748 3379 l 6747 3401 l 6747 3422 l 6748 3438 l 6750 3450 l 6755 3456 l 6760 3454 l 6767 3445 l 6772 3432 l 6777 3417 l 6782 3401 l 6785 3384 l 6788 3367 l 6791 3349 l 6794 3331 l 6797 3312 l 6800 3292 l 6805 3269 l 6811 3243 l 6819 3214 l 6830 3181 l 6843 3142 l 6859 3099 l 6878 3051 l 6900 3000 l 6919 2956 l 6938 2914 l 6956 2874 l 6972 2838 l 6986 2807 l 6998 2781 l 7008 2758 l 7016 2739 l 7022 2724 l 7028 2710 l 7033 2698 l 7038 2687 l 7042 2677 l 7047 2665 l 7053 2652 l 7061 2637 l 7070 2619 l 7081 2598 l 7095 2573 l 7111 2544 l 7130 2512 l 7152 2476 l 7175 2438 l 7200 2400 l 7230 2357 l 7258 2319 l 7284 2286 l 7307 2260 l 7328 2240 l 7345 2224 l 7361 2213 l 7375 2205 l 7388 2199 l 7400 2194 l 7412 2189 l 7423 2185 l 7434 2180 l 7446 2173 l 7458 2164 l 7470 2153 l 7481 2141 l 7490 2127 l 7497 2113 l 7500 2100 l 7496 2089 l 7485 2083 l 7471 2082 l 7455 2084 l 7438 2089 l 7421 2096 l 7404 2104 l 7388 2113 l 7370 2121 l 7351 2131 l 7331 2139 l 7309 2148 l 7284 2156 l 7257 2163 l 7229 2170 l 7200 2175 l 7166 2180 l 7141 2184 l 7126 2186 l 7121 2187 l 7125 2187 l 7129 2187 l 7124 2186 l 7109 2184 l 7084 2180 l 7050 2175 l 7021 2170 l 6993 2163 l 6968 2155 l 6945 2145 l 6926 2135 l 6909 2123 l 6895 2112 l 6881 2100 l 6868 2089 l 6854 2079 l 6839 2071 l 6823 2066 l 6805 2065 l 6785 2069 l 6766 2081 l 6750 2100 l 6741 2121 l 6735 2144 l 6732 2169 l 6732 2192 l 6734 2214 l 6738 2234 l 6743 2252 l 6749 2269 l 6756 2285 l 6763 2300 l 6770 2316 l 6777 2332 l 6784 2350 l 6791 2371 l 6798 2394 l 6805 2420 l 6811 2449 l 6816 2481 l 6821 2516 l cp gs 0.80 setgray ef gr % Polyline n 6825 1650 m 6830 1605 l 6833 1571 l 6835 1550 l 6836 1540 l 6837 1540 l 6837 1547 l 6837 1556 l 6837 1565 l 6837 1571 l 6836 1568 l 6835 1555 l 6833 1527 l 6830 1483 l 6825 1425 l 6822 1389 l 6818 1353 l 6815 1316 l 6811 1280 l 6807 1246 l 6803 1213 l 6799 1183 l 6795 1154 l 6791 1127 l 6787 1102 l 6783 1077 l 6779 1054 l 6775 1031 l 6771 1009 l 6767 986 l 6764 964 l 6760 941 l 6757 917 l 6754 893 l 6751 869 l 6749 845 l 6748 821 l 6747 799 l 6747 778 l 6748 762 l 6750 750 l 6755 744 l 6760 746 l 6767 755 l 6772 768 l 6777 783 l 6782 799 l 6785 816 l 6788 833 l 6791 851 l 6794 869 l 6797 888 l 6800 908 l 6805 931 l 6811 957 l 6819 986 l 6830 1019 l 6843 1058 l 6859 1101 l 6878 1149 l 6900 1200 l 6919 1244 l 6938 1286 l 6956 1326 l 6972 1362 l 6986 1393 l 6998 1419 l 7008 1442 l 7016 1461 l 7022 1476 l 7028 1490 l 7033 1502 l 7038 1513 l 7042 1523 l 7047 1535 l 7053 1548 l 7061 1563 l 7070 1581 l 7081 1602 l 7095 1627 l 7111 1656 l 7130 1688 l 7152 1724 l 7175 1762 l 7200 1800 l 7230 1843 l 7258 1881 l 7284 1914 l 7307 1940 l 7328 1960 l 7345 1976 l 7361 1987 l 7375 1995 l 7388 2001 l 7400 2006 l 7412 2011 l 7423 2015 l 7434 2020 l 7446 2027 l 7458 2036 l 7470 2047 l 7481 2059 l 7490 2073 l 7497 2087 l 7500 2100 l 7496 2111 l 7485 2117 l 7471 2118 l 7455 2116 l 7438 2111 l 7421 2104 l 7404 2096 l 7388 2088 l 7370 2079 l 7351 2069 l 7331 2061 l 7309 2052 l 7284 2044 l 7257 2037 l 7229 2030 l 7200 2025 l 7166 2020 l 7141 2016 l 7126 2014 l 7121 2013 l 7125 2013 l 7129 2013 l 7124 2014 l 7109 2016 l 7084 2020 l 7050 2025 l 7021 2030 l 6993 2037 l 6968 2045 l 6945 2055 l 6926 2065 l 6909 2077 l 6895 2088 l 6881 2100 l 6868 2111 l 6854 2121 l 6839 2129 l 6823 2134 l 6805 2135 l 6785 2131 l 6766 2119 l 6750 2100 l 6741 2079 l 6735 2056 l 6732 2031 l 6732 2008 l 6734 1986 l 6738 1966 l 6743 1948 l 6749 1931 l 6756 1915 l 6763 1900 l 6770 1884 l 6777 1868 l 6784 1850 l 6791 1829 l 6798 1806 l 6805 1780 l 6811 1751 l 6816 1719 l 6821 1684 l cp gs 0.80 setgray ef gr % Polyline n 6675 1650 m 6670 1605 l 6667 1571 l 6665 1550 l 6664 1540 l 6663 1540 l 6663 1547 l 6663 1556 l 6663 1565 l 6663 1571 l 6664 1568 l 6665 1555 l 6667 1527 l 6670 1483 l 6675 1425 l 6678 1389 l 6682 1353 l 6685 1316 l 6689 1280 l 6693 1246 l 6697 1213 l 6701 1183 l 6705 1154 l 6709 1127 l 6713 1102 l 6717 1077 l 6721 1054 l 6725 1031 l 6729 1009 l 6733 986 l 6736 964 l 6740 941 l 6743 917 l 6746 893 l 6749 869 l 6751 845 l 6752 821 l 6753 799 l 6753 778 l 6752 762 l 6750 750 l 6745 744 l 6740 746 l 6733 755 l 6728 768 l 6723 783 l 6718 799 l 6715 816 l 6712 833 l 6709 851 l 6706 869 l 6703 888 l 6700 908 l 6695 931 l 6689 957 l 6681 986 l 6670 1019 l 6657 1058 l 6641 1101 l 6622 1149 l 6600 1200 l 6581 1244 l 6562 1286 l 6544 1326 l 6528 1362 l 6514 1393 l 6502 1419 l 6492 1442 l 6484 1461 l 6478 1476 l 6472 1490 l 6467 1502 l 6462 1513 l 6458 1523 l 6453 1535 l 6447 1548 l 6439 1563 l 6430 1581 l 6419 1602 l 6405 1627 l 6389 1656 l 6370 1688 l 6348 1724 l 6325 1762 l 6300 1800 l 6270 1843 l 6242 1881 l 6216 1914 l 6193 1940 l 6172 1960 l 6155 1976 l 6139 1987 l 6125 1995 l 6112 2001 l 6100 2006 l 6088 2011 l 6077 2015 l 6066 2020 l 6054 2027 l 6042 2036 l 6030 2047 l 6019 2059 l 6010 2073 l 6003 2087 l 6000 2100 l 6004 2111 l 6015 2117 l 6029 2118 l 6045 2116 l 6062 2111 l 6079 2104 l 6096 2096 l 6113 2088 l 6130 2079 l 6149 2069 l 6169 2061 l 6191 2052 l 6216 2044 l 6243 2037 l 6271 2030 l 6300 2025 l 6334 2020 l 6359 2016 l 6374 2014 l 6379 2013 l 6375 2013 l 6371 2013 l 6376 2014 l 6391 2016 l 6416 2020 l 6450 2025 l 6479 2030 l 6507 2037 l 6532 2045 l 6555 2055 l 6574 2065 l 6591 2077 l 6605 2088 l 6619 2100 l 6632 2111 l 6646 2121 l 6661 2129 l 6677 2134 l 6695 2135 l 6715 2131 l 6734 2119 l 6750 2100 l 6759 2079 l 6765 2056 l 6768 2031 l 6768 2008 l 6766 1986 l 6762 1966 l 6757 1948 l 6751 1931 l 6744 1915 l 6737 1900 l 6730 1884 l 6723 1868 l 6716 1850 l 6709 1829 l 6702 1806 l 6695 1780 l 6689 1751 l 6684 1719 l 6679 1684 l cp gs 0.80 setgray ef gr % here ends figure; % % here starts figure with depth 50 % Polyline 7.500 slw n 6000 2100 m 6000 3000 l gs col0 s gr % Polyline n 7500 2100 m 7500 3000 l 6750 3450 l gs col0 s gr % Polyline n 7500 3000 m 8325 3450 l gs col0 s gr % Polyline n 5250 3450 m 6000 3000 l 6750 3450 l 6525 2550 l 6000 2100 l 6525 1650 l 6750 2100 l 6525 2550 l gs col0 s gr % Polyline n 6525 1650 m 6750 750 l 6975 1650 l 6750 2100 l 6975 2550 l 6750 3450 l gs col0 s gr % Polyline n 6975 2550 m 7500 2100 l 6975 1650 l gs col0 s gr % Polyline n 1800 6600 m 2100 6600 l 2100 6900 l 1800 6900 l cp gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw [15 45] 45 sd n 1800 3600 m 2100 3600 l 2100 3900 l 1800 3900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 3600 m 1800 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 3600 m 2100 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 2100 4200 l 2100 4500 l 1800 4500 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 4200 m 1800 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 2100 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12900 6600 m 13200 6600 l 13200 6900 l 12900 6900 l cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 13200 6600 m 12900 6900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 12900 6600 m 13200 6900 l gs col0 s gr [] 0 sd % Polyline gs clippath 3180 6885 m 3120 6885 l 3120 7036 l 3150 6916 l 3180 7036 l cp eoclip n 2250 8400 m 2250 7200 l 3150 7200 l 3150 6900 l gs col0 s gr gr % arrowhead n 3180 7036 m 3150 6916 l 3120 7036 l 3180 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5220 6615 m 5280 6615 l 5280 6464 l 5250 6584 l 5220 6464 l cp eoclip n 3450 5100 m 3450 6150 l 5250 6150 l 5250 6600 l gs col0 s gr gr % arrowhead n 5220 6464 m 5250 6584 l 5280 6464 l 5220 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3120 6615 m 3180 6615 l 3180 6464 l 3150 6584 l 3120 6464 l cp eoclip n 2550 5100 m 2550 6300 l 3150 6300 l 3150 6600 l gs col0 s gr gr % arrowhead n 3120 6464 m 3150 6584 l 3180 6464 l 3120 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9780 6885 m 9720 6885 l 9720 7036 l 9750 6916 l 9780 7036 l cp eoclip n 1950 8400 m 1950 8100 l 9750 8100 l 9750 6900 l gs col0 s gr gr % arrowhead n 9780 7036 m 9750 6916 l 9720 7036 l 9780 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9720 6615 m 9780 6615 l 9780 6464 l 9750 6584 l 9720 6464 l cp eoclip n 3150 5100 m 3150 5625 l 9750 5625 l 9750 6600 l gs col0 s gr gr % arrowhead n 9720 6464 m 9750 6584 l 9780 6464 l 9720 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7320 6615 m 7380 6615 l 7380 6464 l 7350 6584 l 7320 6464 l cp eoclip n 5550 5100 m 5550 5925 l 7350 5925 l 7350 6600 l gs col0 s gr gr % arrowhead n 7320 6464 m 7350 6584 l 7380 6464 l 7320 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8220 6615 m 8280 6615 l 8280 6464 l 8250 6584 l 8220 6464 l cp eoclip n 5850 5100 m 5850 5850 l 8250 5850 l 8250 6600 l gs col0 s gr gr % arrowhead n 8220 6464 m 8250 6584 l 8280 6464 l 8220 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5580 6885 m 5520 6885 l 5520 7036 l 5550 6916 l 5580 7036 l cp eoclip n 3450 8400 m 3450 7425 l 5550 7425 l 5550 6900 l gs col0 s gr gr % arrowhead n 5580 7036 m 5550 6916 l 5520 7036 l 5580 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10980 6885 m 10920 6885 l 10920 7036 l 10950 6916 l 10980 7036 l cp eoclip n 3150 8400 m 3150 8025 l 10950 8025 l 10950 6900 l gs col0 s gr gr % arrowhead n 10980 7036 m 10950 6916 l 10920 7036 l 10980 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4380 6885 m 4320 6885 l 4320 7036 l 4350 6916 l 4380 7036 l cp eoclip n 2850 8400 m 2850 7350 l 4350 7350 l 4350 6900 l gs col0 s gr gr % arrowhead n 4380 7036 m 4350 6916 l 4320 7036 l 4380 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4080 6885 m 4020 6885 l 4020 7036 l 4050 6916 l 4080 7036 l cp eoclip n 2550 8400 m 2550 7275 l 4050 7275 l 4050 6900 l gs col0 s gr gr % arrowhead n 4080 7036 m 4050 6916 l 4020 7036 l 4080 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7380 6885 m 7320 6885 l 7320 7036 l 7350 6916 l 7380 7036 l cp eoclip n 5250 8400 m 5250 7725 l 7350 7725 l 7350 6900 l gs col0 s gr gr % arrowhead n 7380 7036 m 7350 6916 l 7320 7036 l 7380 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8280 6885 m 8220 6885 l 8220 7036 l 8250 6916 l 8280 7036 l cp eoclip n 5550 8400 m 5550 7800 l 8250 7800 l 8250 6900 l gs col0 s gr gr % arrowhead n 8280 7036 m 8250 6916 l 8220 7036 l 8280 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9180 6885 m 9120 6885 l 9120 7036 l 9150 6916 l 9180 7036 l cp eoclip n 5850 8400 m 5850 7875 l 9150 7875 l 9150 6900 l gs col0 s gr gr % arrowhead n 9180 7036 m 9150 6916 l 9120 7036 l 9180 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6480 6885 m 6420 6885 l 6420 7036 l 6450 6916 l 6480 7036 l cp eoclip n 4950 8400 m 4950 7500 l 6450 7500 l 6450 6900 l gs col0 s gr gr % arrowhead n 6480 7036 m 6450 6916 l 6420 7036 l 6480 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6420 6615 m 6480 6615 l 6480 6464 l 6450 6584 l 6420 6464 l cp eoclip n 5250 5100 m 5250 6000 l 6450 6000 l 6450 6600 l gs col0 s gr gr % arrowhead n 6420 6464 m 6450 6584 l 6480 6464 l 6420 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5520 6615 m 5580 6615 l 5580 6464 l 5550 6584 l 5520 6464 l cp eoclip n 4950 5100 m 4950 6075 l 5550 6075 l 5550 6600 l gs col0 s gr gr % arrowhead n 5520 6464 m 5550 6584 l 5580 6464 l 5520 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 9120 6615 m 9180 6615 l 9180 6464 l 9150 6584 l 9120 6464 l cp eoclip n 1950 5100 m 1950 5550 l 9150 5550 l 9150 6600 l gs col0 s gr gr % arrowhead n 9120 6464 m 9150 6584 l 9180 6464 l 9120 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4020 6615 m 4080 6615 l 4080 6464 l 4050 6584 l 4020 6464 l cp eoclip n 2850 5100 m 2850 6225 l 4050 6225 l 4050 6600 l gs col0 s gr gr % arrowhead n 4020 6464 m 4050 6584 l 4080 6464 l 4020 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 12180 6885 m 12120 6885 l 12120 7036 l 12150 6916 l 12180 7036 l cp eoclip n 3750 8400 m 3750 7950 l 12150 7950 l 12150 6900 l gs col0 s gr gr % arrowhead n 12180 7036 m 12150 6916 l 12120 7036 l 12180 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 10920 6615 m 10980 6615 l 10980 6464 l 10950 6584 l 10920 6464 l cp eoclip n 3750 5100 m 3750 5700 l 10950 5700 l 10950 6600 l gs col0 s gr gr % arrowhead n 10920 6464 m 10950 6584 l 10980 6464 l 10920 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 5280 6885 m 5220 6885 l 5220 7036 l 5250 6916 l 5280 7036 l cp eoclip n 4350 8400 m 4350 7575 l 5250 7575 l 5250 6900 l gs col0 s gr gr % arrowhead n 5280 7036 m 5250 6916 l 5220 7036 l 5280 7036 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 12120 6615 m 12180 6615 l 12180 6464 l 12150 6584 l 12120 6464 l cp eoclip n 4650 5100 m 4650 5775 l 12150 5775 l 12150 6600 l gs col0 s gr gr % arrowhead n 12120 6464 m 12150 6584 l 12180 6464 l 12120 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 13080 6885 m 13020 6885 l 13020 7036 l 13050 6916 l 13080 7036 l cp eoclip n 4650 8400 m 4650 7650 l 13050 7650 l 13050 6900 l gs col0 s gr gr % arrowhead n 13080 7036 m 13050 6916 l 13020 7036 l 13080 7036 l cp gs 0.00 setgray ef gr col0 s /Courier ff 240.00 scf sf 600 3225 m gs 1 -1 sc (edgenbr) col0 sh gr /Courier ff 240.00 scf sf 600 3825 m gs 1 -1 sc (vlbltab) col0 sh gr /Courier ff 240.00 scf sf 600 4425 m gs 1 -1 sc (velotab) col0 sh gr /Courier ff 240.00 scf sf 600 2625 m gs 1 -1 sc (vnodnbr) col0 sh gr /Courier ff 240.00 scf sf 600 825 m gs 1 -1 sc (velmbas) col0 sh gr /Courier ff 240.00 scf sf 600 1425 m gs 1 -1 sc (vnodbas) col0 sh gr /Courier ff 240.00 scf sf 600 2025 m gs 1 -1 sc (velmnbr) col0 sh gr /Courier ff 240.00 scf sf 600 5025 m gs 1 -1 sc (verttab) col0 sh gr /Courier ff 240.00 scf sf 600 6825 m gs 1 -1 sc (edgetab) col0 sh gr /Courier ff 240.00 scf sf 600 8625 m gs 1 -1 sc (vendtab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 2100 4800 m 2400 4800 l 2400 5100 l 2100 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 4800 m 2700 4800 l 2700 5100 l 2400 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 4800 m 3000 4800 l 3000 5100 l 2700 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 4800 m 3600 4800 l 3600 5100 l 3300 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 5040 m gs 1 -1 sc (12) col0 sh gr % Polyline n 4800 4800 m 5100 4800 l 5100 5100 l 4800 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4825 5040 m gs 1 -1 sc (13) col0 sh gr % Polyline n 5100 4800 m 5400 4800 l 5400 5100 l 5100 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 5040 m gs 1 -1 sc (16) col0 sh gr % Polyline n 5400 4800 m 5700 4800 l 5700 5100 l 5400 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5425 5040 m gs 1 -1 sc (19) col0 sh gr % Polyline n 2100 8400 m 2400 8400 l 2400 8700 l 2100 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 8400 m 2700 8400 l 2700 8700 l 2400 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 8400 m 3000 8400 l 3000 8700 l 2700 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 8400 m 3600 8400 l 3600 8700 l 3300 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 8640 m gs 1 -1 sc (13) col0 sh gr % Polyline n 4800 8400 m 5100 8400 l 5100 8700 l 4800 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4825 8640 m gs 1 -1 sc (16) col0 sh gr % Polyline n 5100 8400 m 5400 8400 l 5400 8700 l 5100 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 8640 m gs 1 -1 sc (19) col0 sh gr % Polyline n 5400 8400 m 5700 8400 l 5700 8700 l 5400 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5425 8640 m gs 1 -1 sc (22) col0 sh gr % Polyline n 5700 8400 m 6000 8400 l 6000 8700 l 5700 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5725 8640 m gs 1 -1 sc (25) col0 sh gr % Polyline n 5700 4800 m 6000 4800 l 6000 5100 l 5700 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5725 5040 m gs 1 -1 sc (22) col0 sh gr % Polyline n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 6600 m 3000 6600 l 3000 6900 l 2700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2725 6840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3600 6600 m 3900 6600 l 3900 6900 l 3600 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 6840 m gs 1 -1 sc (14) col0 sh gr % Polyline n 5100 6600 m 5400 6600 l 5400 6900 l 5100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 5125 6840 m gs 1 -1 sc (14) col0 sh gr % Polyline n 5400 6600 m 5700 6600 l 5700 6900 l 5400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5700 6600 m 6000 6600 l 6000 6900 l 5700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6000 6600 m 6300 6600 l 6300 6900 l 6000 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6300 6600 m 6600 6600 l 6600 6900 l 6300 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6600 6600 m 6900 6600 l 6900 6900 l 6600 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7200 6600 m 7500 6600 l 7500 6900 l 7200 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7500 6600 m 7800 6600 l 7800 6900 l 7500 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 7800 6600 m 8100 6600 l 8100 6900 l 7800 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8100 6600 m 8400 6600 l 8400 6900 l 8100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8400 6600 m 8700 6600 l 8700 6900 l 8400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 8700 6600 m 9000 6600 l 9000 6900 l 8700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 9000 6600 m 9300 6600 l 9300 6900 l 9000 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 9025 6840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 9300 6600 m 9600 6600 l 9600 6900 l 9300 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 4800 m 2100 4800 l 2100 5100 l 1800 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 5040 m gs 1 -1 sc (25) col0 sh gr % Polyline n 1800 8400 m 2100 8400 l 2100 8700 l 1800 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 8640 m gs 1 -1 sc (27) col0 sh gr % Polyline n 3900 6600 m 4200 6600 l 4200 6900 l 3900 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3925 6840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 9900 6600 m 10200 6600 l 10200 6900 l 9900 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 9925 6840 m gs 1 -1 sc (14) col0 sh gr % Polyline n 9600 6600 m 9900 6600 l 9900 6900 l 9600 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 9625 6840 m gs 1 -1 sc (13) col0 sh gr % Polyline n 3900 4800 m 4200 4800 l 4200 5100 l 3900 5100 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 3900 8400 m 4200 8400 l 4200 8700 l 3900 8700 l cp gs 0.85 setgray ef gr gs col0 s gr % Polyline n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 1825 3240 m gs 1 -1 sc (36) col0 sh gr % Polyline n 3000 4800 m 3300 4800 l 3300 5100 l 3000 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 5040 m gs 1 -1 sc (27) col0 sh gr % Polyline n 3000 8400 m 3300 8400 l 3300 8700 l 3000 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3025 8640 m gs 1 -1 sc (31) col0 sh gr % Polyline n 3600 4800 m 3900 4800 l 3900 5100 l 3600 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 5040 m gs 1 -1 sc (31) col0 sh gr % Polyline n 3600 8400 m 3900 8400 l 3900 8700 l 3600 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3625 8640 m gs 1 -1 sc (35) col0 sh gr % Polyline n 10200 6600 m 10500 6600 l 10500 6900 l 10200 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10225 6840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 10800 6600 m 11100 6600 l 11100 6900 l 10800 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10825 6840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 11100 6600 m 11400 6600 l 11400 6900 l 11100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 11400 6600 m 11700 6600 l 11700 6900 l 11400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11425 6840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 11700 6600 m 12000 6600 l 12000 6900 l 11700 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 11725 6840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 4200 4800 m 4500 4800 l 4500 5100 l 4200 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 6600 m 4500 6600 l 4500 6900 l 4200 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 6600 m 5100 6600 l 5100 6900 l 4800 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 6600 m 4800 6600 l 4800 6900 l 4500 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 8400 m 4500 8400 l 4500 8700 l 4200 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4225 8640 m gs 1 -1 sc (12) col0 sh gr % Polyline n 4500 4800 m 4800 4800 l 4800 5100 l 4500 5100 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4525 5040 m gs 1 -1 sc (35) col0 sh gr % Polyline n 4500 8400 m 4800 8400 l 4800 8700 l 4500 8700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 4525 8640 m gs 1 -1 sc (38) col0 sh gr % Polyline n 12000 6600 m 12300 6600 l 12300 6900 l 12000 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 12300 6600 m 12600 6600 l 12600 6900 l 12300 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 12600 6600 m 12900 6600 l 12900 6900 l 12600 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 6900 6600 m 7200 6600 l 7200 6900 l 6900 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 6600 m 2400 6600 l 2400 6900 l 2100 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2125 6840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 2400 6600 m 2700 6600 l 2700 6900 l 2400 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2425 6840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3000 6600 m 3300 6600 l 3300 6900 l 3000 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 6600 m 3600 6600 l 3600 6900 l 3300 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3325 6840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 10500 6600 m 10800 6600 l 10800 6900 l 10500 6900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 10525 6840 m gs 1 -1 sc (10) col0 sh gr % Polyline gs clippath 2220 6615 m 2280 6615 l 2280 6464 l 2250 6584 l 2220 6464 l cp eoclip n 2250 5100 m 2250 6600 l gs col0 s gr gr % arrowhead n 2220 6464 m 2250 6584 l 2280 6464 l 2220 6464 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4320 6615 m 4380 6615 l 4380 6464 l 4350 6584 l 4320 6464 l cp eoclip n 4350 5100 m 4350 6600 l gs col0 s gr gr % arrowhead n 4320 6464 m 4350 6584 l 4380 6464 l 4320 6464 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 6757 2093 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6007 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7507 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6750 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6000 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7500 2100 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5250 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6750 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8325 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6525 1650 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6532 2543 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6975 2550 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6975 1650 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 2200 5040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 5040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 5040 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 8640 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 8640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 8640 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 6707 2183 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5950 2190 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7450 2190 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 3540 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 3540 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 8275 3540 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 2640 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 2040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 840 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 5500 6840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 6840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 6100 6840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 6700 6840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 7300 6840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7900 6840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 8500 6840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 8800 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 9400 6840 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 5040 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 8640 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 240.00 scf sf 11200 6840 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 5040 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 4300 6840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4900 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 4600 6840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 12100 6840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 12400 6840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 12700 6840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 6840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 6840 m gs 1 -1 sc (9) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 5877 3083 m gs 1 -1 sc (13) col0 sh gr /Times-Roman ff 240.00 scf sf 7377 3083 m gs 1 -1 sc (14) col0 sh gr /Times-Roman ff 240.00 scf sf 6395 1740 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 240.00 scf sf 6402 2633 m gs 1 -1 sc (12) col0 sh gr /Times-Roman ff 240.00 scf sf 6845 2640 m gs 1 -1 sc (10) col0 sh gr /Times-Roman ff 240.00 scf sf 6925 1740 m gs 1 -1 sc (9) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_me3.fig000066400000000000000000000452221514310134000260020ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 3600 2100 3900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 3600 2100 3600 2100 3900 1800 3900 1800 3600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 3600 1800 3900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 3600 2100 3900 -6 6 1800 4200 2100 4500 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 1800 4200 2100 4200 2100 4500 1800 4500 1800 4200 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 2100 4200 1800 4500 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 1800 4200 2100 4500 -6 6 2100 4800 2400 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 4800 2400 4800 2400 5100 2100 5100 2100 4800 4 0 0 10 0 0 16 0.0000 4 165 120 2200 5040 2\001 -6 6 2400 4800 2700 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 4800 2700 4800 2700 5100 2400 5100 2400 4800 4 0 0 10 0 0 16 0.0000 4 180 120 2500 5040 5\001 -6 6 2700 4800 3000 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 4800 3000 4800 3000 5100 2700 5100 2700 4800 4 0 0 10 0 0 16 0.0000 4 165 120 2800 5040 8\001 -6 6 3300 4800 3600 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 4800 3600 4800 3600 5100 3300 5100 3300 4800 4 0 0 15 0 0 16 0.0000 4 180 240 3325 5040 12\001 -6 6 4800 4800 5100 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 4800 5100 4800 5100 5100 4800 5100 4800 4800 4 0 0 15 0 0 16 0.0000 4 195 240 4825 5040 13\001 -6 6 5100 4800 5400 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 4800 5400 4800 5400 5100 5100 5100 5100 4800 4 0 0 15 0 0 16 0.0000 4 180 240 5125 5040 16\001 -6 6 5400 4800 5700 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 4800 5700 4800 5700 5100 5400 5100 5400 4800 4 0 0 15 0 0 16 0.0000 4 195 240 5425 5040 19\001 -6 6 2100 8400 2400 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 8400 2400 8400 2400 8700 2100 8700 2100 8400 4 0 0 10 0 0 16 0.0000 4 180 120 2200 8640 5\001 -6 6 2400 8400 2700 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 8400 2700 8400 2700 8700 2400 8700 2400 8400 4 0 0 10 0 0 16 0.0000 4 165 120 2500 8640 8\001 -6 6 2700 8400 3000 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 8400 3000 8400 3000 8700 2700 8700 2700 8400 4 0 0 10 0 0 16 0.0000 4 180 120 2800 8640 9\001 -6 6 3300 8400 3600 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 8400 3600 8400 3600 8700 3300 8700 3300 8400 4 0 0 15 0 0 16 0.0000 4 195 240 3325 8640 13\001 -6 6 4800 8400 5100 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 8400 5100 8400 5100 8700 4800 8700 4800 8400 4 0 0 15 0 0 16 0.0000 4 180 240 4825 8640 16\001 -6 6 5100 8400 5400 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 8400 5400 8400 5400 8700 5100 8700 5100 8400 4 0 0 15 0 0 16 0.0000 4 195 240 5125 8640 19\001 -6 6 5400 8400 5700 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 8400 5700 8400 5700 8700 5400 8700 5400 8400 4 0 0 15 0 0 16 0.0000 4 165 240 5425 8640 22\001 -6 6 5700 8400 6000 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 8400 6000 8400 6000 8700 5700 8700 5700 8400 4 0 0 15 0 0 16 0.0000 4 180 240 5725 8640 25\001 -6 6 5700 4800 6000 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 4800 6000 4800 6000 5100 5700 5100 5700 4800 4 0 0 15 0 0 16 0.0000 4 165 240 5725 5040 22\001 -6 6 6600 1936 6914 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6757 2093 150 150 6757 2093 6907 2093 4 0 0 10 0 0 16 0.0000 4 165 120 6707 2183 7\001 -6 6 5850 2836 6164 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6007 2993 150 150 6007 2993 6157 2993 4 0 0 8 0 0 16 0.0000 4 195 240 5877 3083 13\001 -6 6 7350 2836 7664 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7507 2993 150 150 7507 2993 7657 2993 4 0 0 8 0 0 16 0.0000 4 180 240 7377 3083 14\001 -6 6 6600 600 6900 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6750 750 150 150 6750 750 6900 750 4 0 0 10 0 0 16 0.0000 4 180 120 6700 840 1\001 -6 6 5850 1950 6150 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6000 2100 150 150 6000 2100 6150 2100 4 0 0 10 0 0 16 0.0000 4 165 120 5950 2190 2\001 -6 6 7350 1950 7650 2250 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7500 2100 150 150 7500 2100 7650 2100 4 0 0 10 0 0 16 0.0000 4 180 120 7450 2190 3\001 -6 6 5100 3300 5400 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5250 3450 150 150 5250 3450 5400 3450 4 0 0 10 0 0 16 0.0000 4 165 120 5200 3540 4\001 -6 6 6600 3300 6900 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6750 3450 150 150 6750 3450 6900 3450 4 0 0 10 0 0 16 0.0000 4 180 120 6700 3540 5\001 -6 6 8175 3300 8475 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8325 3450 150 150 8325 3450 8475 3450 4 0 0 10 0 0 16 0.0000 4 180 120 8275 3540 6\001 -6 6 6375 1500 6675 1800 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6525 1650 150 150 6525 1650 6675 1650 4 0 0 8 0 0 16 0.0000 4 180 240 6395 1740 11\001 -6 6 6375 2386 6689 2700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6532 2543 150 150 6532 2543 6682 2543 4 0 0 8 0 0 16 0.0000 4 180 240 6402 2633 12\001 -6 6 6825 2400 7125 2700 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6975 2550 150 150 6975 2550 7125 2550 4 0 0 8 0 0 16 0.0000 4 180 240 6845 2640 10\001 -6 6 6825 1500 7125 1800 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6975 1650 150 150 6975 1650 7125 1650 4 0 0 8 0 0 16 0.0000 4 180 120 6925 1740 9\001 -6 6 1800 2400 2100 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 4 0 0 10 0 0 16 0.0000 4 165 120 1900 2640 7\001 -6 6 1800 1800 2100 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 4 0 0 10 0 0 16 0.0000 4 180 120 1900 2040 6\001 -6 6 1800 1200 2100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 4 0 0 10 0 0 16 0.0000 4 180 120 1900 1440 1\001 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 180 120 1900 840 9\001 -6 6 2700 6600 3000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 6600 3000 6600 3000 6900 2700 6900 2700 6600 4 0 0 15 0 0 16 0.0000 4 195 240 2725 6840 13\001 -6 6 3600 6600 3900 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 6600 3900 6600 3900 6900 3600 6900 3600 6600 4 0 0 15 0 0 16 0.0000 4 180 240 3625 6840 14\001 -6 6 5100 6600 5400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 6600 5400 6600 5400 6900 5100 6900 5100 6600 4 0 0 15 0 0 16 0.0000 4 180 240 5125 6840 14\001 -6 6 5400 6600 5700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 6600 5700 6600 5700 6900 5400 6900 5400 6600 4 0 0 10 0 0 16 0.0000 4 180 120 5500 6840 1\001 -6 6 5700 6600 6000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5700 6600 6000 6600 6000 6900 5700 6900 5700 6600 4 0 0 10 0 0 16 0.0000 4 165 120 5800 6840 2\001 -6 6 6000 6600 6300 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6000 6600 6300 6600 6300 6900 6000 6900 6000 6600 4 0 0 10 0 0 16 0.0000 4 165 120 6100 6840 7\001 -6 6 6300 6600 6600 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6300 6600 6600 6600 6600 6900 6300 6900 6300 6600 4 0 0 10 0 0 16 0.0000 4 180 120 6400 6840 5\001 -6 6 6600 6600 6900 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6600 6600 6900 6600 6900 6900 6600 6900 6600 6600 4 0 0 10 0 0 16 0.0000 4 165 120 6700 6840 2\001 -6 6 7200 6600 7500 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7200 6600 7500 6600 7500 6900 7200 6900 7200 6600 4 0 0 10 0 0 16 0.0000 4 165 120 7300 6840 4\001 -6 6 7500 6600 7800 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7500 6600 7800 6600 7800 6900 7500 6900 7500 6600 4 0 0 10 0 0 16 0.0000 4 180 120 7600 6840 5\001 -6 6 7800 6600 8100 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 7800 6600 8100 6600 8100 6900 7800 6900 7800 6600 4 0 0 10 0 0 16 0.0000 4 165 120 7900 6840 2\001 -6 6 8100 6600 8400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8100 6600 8400 6600 8400 6900 8100 6900 8100 6600 4 0 0 10 0 0 16 0.0000 4 180 120 8200 6840 3\001 -6 6 8400 6600 8700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8400 6600 8700 6600 8700 6900 8400 6900 8400 6600 4 0 0 10 0 0 16 0.0000 4 180 120 8500 6840 6\001 -6 6 8700 6600 9000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 8700 6600 9000 6600 9000 6900 8700 6900 8700 6600 4 0 0 10 0 0 16 0.0000 4 180 120 8800 6840 5\001 -6 6 9000 6600 9300 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9000 6600 9300 6600 9300 6900 9000 6900 9000 6600 4 0 0 15 0 0 16 0.0000 4 180 240 9025 6840 11\001 -6 6 9300 6600 9600 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9300 6600 9600 6600 9600 6900 9300 6900 9300 6600 4 0 0 10 0 0 16 0.0000 4 180 120 9400 6840 9\001 -6 6 1800 4800 2100 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 4800 2100 4800 2100 5100 1800 5100 1800 4800 4 0 0 15 0 0 16 0.0000 4 180 240 1825 5040 25\001 -6 6 1800 8400 2100 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 8400 2100 8400 2100 8700 1800 8700 1800 8400 4 0 0 15 0 0 16 0.0000 4 165 240 1825 8640 27\001 -6 6 3900 6600 4200 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 6600 4200 6600 4200 6900 3900 6900 3900 6600 4 0 0 15 0 0 16 0.0000 4 195 240 3925 6840 13\001 -6 6 9900 6600 10200 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9900 6600 10200 6600 10200 6900 9900 6900 9900 6600 4 0 0 15 0 0 16 0.0000 4 180 240 9925 6840 14\001 -6 6 9600 6600 9900 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 9600 6600 9900 6600 9900 6900 9600 6900 9600 6600 4 0 0 15 0 0 16 0.0000 4 195 240 9625 6840 13\001 -6 6 3900 4800 4200 5100 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 3900 4800 4200 4800 4200 5100 3900 5100 3900 4800 4 0 0 10 0 0 16 0.0000 4 165 120 4000 5040 0\001 -6 6 3900 8400 4200 8700 2 2 0 1 0 -1 15 0 3 0.000 0 0 7 0 0 5 3900 8400 4200 8400 4200 8700 3900 8700 3900 8400 4 0 0 10 0 0 16 0.0000 4 165 120 4000 8640 0\001 -6 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 15 0 0 16 0.0000 4 195 240 1825 3240 36\001 -6 6 3000 4800 3300 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 4800 3300 4800 3300 5100 3000 5100 3000 4800 4 0 0 15 0 0 16 0.0000 4 165 240 3025 5040 27\001 -6 6 3000 8400 3300 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 8400 3300 8400 3300 8700 3000 8700 3000 8400 4 0 0 15 0 0 16 0.0000 4 195 240 3025 8640 31\001 -6 6 3600 4800 3900 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 4800 3900 4800 3900 5100 3600 5100 3600 4800 4 0 0 15 0 0 16 0.0000 4 195 240 3625 5040 31\001 -6 6 3600 8400 3900 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 8400 3900 8400 3900 8700 3600 8700 3600 8400 4 0 0 15 0 0 16 0.0000 4 195 240 3625 8640 35\001 -6 6 10200 6600 10500 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10200 6600 10500 6600 10500 6900 10200 6900 10200 6600 4 0 0 15 0 0 16 0.0000 4 180 240 10225 6840 12\001 -6 6 10800 6600 11100 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10800 6600 11100 6600 11100 6900 10800 6900 10800 6600 4 0 0 15 0 0 16 0.0000 4 180 240 10825 6840 11\001 -6 6 11100 6600 11400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11100 6600 11400 6600 11400 6900 11100 6900 11100 6600 4 0 0 10 0 0 16 0.0000 4 180 120 11200 6840 9\001 -6 6 11400 6600 11700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11400 6600 11700 6600 11700 6900 11400 6900 11400 6600 4 0 0 15 0 0 16 0.0000 4 180 240 11425 6840 12\001 -6 6 11700 6600 12000 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 11700 6600 12000 6600 12000 6900 11700 6900 11700 6600 4 0 0 15 0 0 16 0.0000 4 180 240 11725 6840 10\001 -6 6 4200 4800 4500 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 4800 4500 4800 4500 5100 4200 5100 4200 4800 4 0 0 10 0 0 16 0.0000 4 180 120 4300 5040 9\001 -6 6 4200 6600 4500 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 6600 4500 6600 4500 6900 4200 6900 4200 6600 4 0 0 10 0 0 16 0.0000 4 180 120 4300 6840 1\001 -6 6 4800 6600 5100 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 6600 5100 6600 5100 6900 4800 6900 4800 6600 4 0 0 10 0 0 16 0.0000 4 180 120 4900 6840 3\001 -6 6 4500 6600 4800 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 6600 4800 6600 4800 6900 4500 6900 4500 6600 4 0 0 10 0 0 16 0.0000 4 165 120 4600 6840 7\001 -6 6 4200 8400 4500 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 8400 4500 8400 4500 8700 4200 8700 4200 8400 4 0 0 15 0 0 16 0.0000 4 180 240 4225 8640 12\001 -6 6 4500 4800 4800 5100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 4800 4800 4800 4800 5100 4500 5100 4500 4800 4 0 0 15 0 0 16 0.0000 4 195 240 4525 5040 35\001 -6 6 4500 8400 4800 8700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 8400 4800 8400 4800 8700 4500 8700 4500 8400 4 0 0 15 0 0 16 0.0000 4 180 240 4525 8640 38\001 -6 6 12000 6600 12300 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12000 6600 12300 6600 12300 6900 12000 6900 12000 6600 4 0 0 10 0 0 16 0.0000 4 165 120 12100 6840 7\001 -6 6 12300 6600 12600 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12300 6600 12600 6600 12600 6900 12300 6900 12300 6600 4 0 0 10 0 0 16 0.0000 4 180 120 12400 6840 3\001 -6 6 12600 6600 12900 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 12600 6600 12900 6600 12900 6900 12600 6900 12600 6600 4 0 0 10 0 0 16 0.0000 4 180 120 12700 6840 5\001 -6 6 6900 6600 7200 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 6900 6600 7200 6600 7200 6900 6900 6900 6900 6600 4 0 0 10 0 0 16 0.0000 4 165 120 7000 6840 7\001 -6 6 12900 6600 13200 6900 2 2 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 5 12900 6600 13200 6600 13200 6900 12900 6900 12900 6600 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 13200 6600 12900 6900 2 1 2 1 0 7 20 0 -1 3.000 0 0 -1 0 0 2 12900 6600 13200 6900 -6 6 2100 6600 2400 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 6600 2400 6600 2400 6900 2100 6900 2100 6600 4 0 0 15 0 0 16 0.0000 4 180 240 2125 6840 11\001 -6 6 2400 6600 2700 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 6600 2700 6600 2700 6900 2400 6900 2400 6600 4 0 0 15 0 0 16 0.0000 4 180 240 2425 6840 12\001 -6 6 3000 6600 3300 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 6600 3300 6600 3300 6900 3000 6900 3000 6600 4 0 0 10 0 0 16 0.0000 4 180 120 3100 6840 9\001 -6 6 3300 6600 3600 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 6600 3600 6600 3600 6900 3300 6900 3300 6600 4 0 0 15 0 0 16 0.0000 4 180 240 3325 6840 10\001 -6 6 10500 6600 10800 6900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 10500 6600 10800 6600 10800 6900 10500 6900 10500 6600 4 0 0 15 0 0 16 0.0000 4 180 240 10525 6840 10\001 -6 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2250 8400 2250 7200 3150 7200 3150 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 5100 3450 6150 5250 6150 5250 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 5100 2550 6300 3150 6300 3150 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 1950 8400 1950 8100 9750 8100 9750 6900 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 2250 5100 2250 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 5100 3150 5625 9750 5625 9750 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5550 5100 5550 5925 7350 5925 7350 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5850 5100 5850 5850 8250 5850 8250 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3450 8400 3450 7425 5550 7425 5550 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3150 8400 3150 8025 10950 8025 10950 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 8400 2850 7350 4350 7350 4350 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2550 8400 2550 7275 4050 7275 4050 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5250 8400 5250 7725 7350 7725 7350 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5550 8400 5550 7800 8250 7800 8250 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5850 8400 5850 7875 9150 7875 9150 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4950 8400 4950 7500 6450 7500 6450 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 5250 5100 5250 6000 6450 6000 6450 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4950 5100 4950 6075 5550 6075 5550 6600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6000 2100 6000 3000 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 3 7500 2100 7500 3000 6750 3450 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 7500 3000 8325 3450 2 1 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 8 5250 3450 6000 3000 6750 3450 6525 2550 6000 2100 6525 1650 6750 2100 6525 2550 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 6 6525 1650 6750 750 6975 1650 6750 2100 6975 2550 6750 3450 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 6975 2550 7500 2100 6975 1650 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 1950 5100 1950 5550 9150 5550 9150 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 2850 5100 2850 6225 4050 6225 4050 6600 2 2 0 1 0 7 50 0 -1 0.000 0 0 7 0 0 5 1800 6600 2100 6600 2100 6900 1800 6900 1800 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 8400 3750 7950 12150 7950 12150 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 3750 5100 3750 5700 10950 5700 10950 6600 2 1 0 1 0 7 15 0 -1 0.000 0 0 7 1 0 2 1 1 1.00 60.00 120.00 4350 5100 4350 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4350 8400 4350 7575 5250 7575 5250 6900 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4650 5100 4650 5775 12150 5775 12150 6600 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 60.00 120.00 4650 8400 4650 7650 13050 7650 13050 6900 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 6750 3450 6525 3150 6150 2550 6000 2100 5850 2550 5550 3150 5250 3450 5775 3375 6300 3375 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 8250 3450 8025 3150 7650 2550 7500 2100 7350 2550 7050 3150 6750 3450 7275 3375 7800 3375 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 6750 2100 6675 2550 6675 2775 6750 3450 6600 3000 6300 2400 6000 2100 6300 2175 6450 2175 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 6750 2100 6825 2550 6825 2775 6750 3450 6900 3000 7200 2400 7500 2100 7200 2175 7050 2175 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 6750 2100 6825 1650 6825 1425 6750 750 6900 1200 7200 1800 7500 2100 7200 2025 7050 2025 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 9 6750 2100 6675 1650 6675 1425 6750 750 6600 1200 6300 1800 6000 2100 6300 2025 6450 2025 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 4 0 0 20 0 12 16 0.0000 4 210 1050 600 3225 edgenbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 3825 vlbltab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 4425 velotab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2625 vnodnbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 825 velmbas\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 1425 vnodbas\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 2025 velmnbr\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 5025 verttab\001 4 0 0 20 0 12 16 0.0000 4 210 1050 600 6825 edgetab\001 4 0 0 20 0 12 16 0.0000 4 165 1050 600 8625 vendtab\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_msf.eps000066400000000000000000000352771514310134000261360ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Sat Nov 9 18:59:42 2002 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 91 235 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 235 moveto 0 0 lineto 91 0 lineto 91 235 lineto closepath clip newpath -125.5 288.4 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 2 slj n 2400 2025 m 2386 2061 l 2371 2092 l 2357 2118 l 2344 2138 l 2332 2153 l 2321 2165 l 2310 2174 l 2300 2181 l 2290 2188 l 2281 2195 l 2272 2203 l 2263 2212 l 2256 2222 l 2250 2233 l 2248 2243 l 2250 2250 l 2257 2252 l 2267 2250 l 2278 2244 l 2288 2237 l 2297 2228 l 2305 2219 l 2312 2210 l 2319 2200 l 2326 2190 l 2335 2179 l 2347 2168 l 2362 2156 l 2382 2143 l 2408 2129 l 2439 2114 l 2475 2100 l 2509 2088 l 2541 2078 l 2569 2069 l 2592 2062 l 2610 2056 l 2624 2052 l 2635 2049 l 2643 2046 l 2650 2044 l 2657 2042 l 2666 2040 l 2677 2038 l 2693 2035 l 2713 2033 l 2739 2030 l 2771 2028 l 2809 2026 l 2850 2025 l 2891 2026 l 2929 2028 l 2961 2030 l 2987 2033 l 3007 2035 l 3023 2038 l 3034 2040 l 3043 2042 l 3050 2044 l 3057 2046 l 3065 2049 l 3076 2052 l 3090 2056 l 3108 2062 l 3131 2069 l 3159 2078 l 3191 2088 l 3225 2100 l 3261 2114 l 3292 2129 l 3318 2143 l 3338 2156 l 3353 2168 l 3365 2179 l 3374 2190 l 3381 2200 l 3388 2210 l 3395 2219 l 3403 2228 l 3412 2237 l 3422 2244 l 3433 2250 l 3443 2252 l 3450 2250 l 3452 2243 l 3450 2233 l 3444 2222 l 3437 2212 l 3428 2203 l 3419 2195 l 3410 2188 l 3400 2181 l 3390 2174 l 3379 2165 l 3368 2153 l 3356 2138 l 3343 2118 l 3329 2092 l 3314 2061 l 3300 2025 l 3288 1991 l 3278 1959 l 3269 1931 l 3262 1908 l 3256 1890 l 3252 1876 l 3249 1865 l 3246 1857 l 3244 1850 l 3242 1843 l 3240 1834 l 3238 1823 l 3235 1807 l 3233 1787 l 3230 1761 l 3228 1729 l 3226 1691 l 3225 1650 l 3226 1609 l 3228 1571 l 3230 1539 l 3233 1513 l 3235 1493 l 3238 1477 l 3240 1466 l 3242 1457 l 3244 1450 l 3246 1443 l 3249 1435 l 3252 1424 l 3256 1410 l 3262 1392 l 3269 1369 l 3278 1341 l 3288 1309 l 3300 1275 l 3314 1239 l 3329 1208 l 3343 1182 l 3356 1162 l 3368 1147 l 3379 1135 l 3390 1126 l 3400 1119 l 3410 1112 l 3419 1105 l 3428 1097 l 3437 1088 l 3444 1078 l 3450 1067 l 3452 1057 l 3450 1050 l 3443 1048 l 3433 1050 l 3422 1056 l 3412 1063 l 3403 1072 l 3395 1081 l 3388 1090 l 3381 1100 l 3374 1110 l 3365 1121 l 3353 1132 l 3338 1144 l 3318 1157 l 3292 1171 l 3261 1186 l 3225 1200 l 3191 1212 l 3159 1222 l 3131 1231 l 3108 1238 l 3090 1244 l 3076 1248 l 3065 1251 l 3057 1254 l 3050 1256 l 3043 1258 l 3034 1260 l 3023 1262 l 3007 1265 l 2987 1267 l 2961 1270 l 2929 1272 l 2891 1274 l 2850 1275 l 2809 1274 l 2771 1272 l 2739 1270 l 2713 1267 l 2693 1265 l 2677 1262 l 2666 1260 l 2657 1258 l 2650 1256 l 2643 1254 l 2635 1251 l 2624 1248 l 2610 1244 l 2592 1238 l 2569 1231 l 2541 1222 l 2509 1212 l 2475 1200 l 2439 1186 l 2408 1171 l 2382 1157 l 2362 1144 l 2347 1132 l 2335 1121 l 2326 1110 l 2319 1100 l 2312 1090 l 2305 1081 l 2297 1072 l 2288 1063 l 2278 1056 l 2267 1050 l 2257 1048 l 2250 1050 l 2248 1057 l 2250 1067 l 2256 1078 l 2263 1088 l 2272 1097 l 2281 1105 l 2290 1112 l 2300 1119 l 2310 1126 l 2321 1135 l 2332 1147 l 2344 1162 l 2357 1182 l 2371 1208 l 2386 1239 l 2400 1275 l 2412 1309 l 2422 1341 l 2431 1369 l 2438 1392 l 2444 1410 l 2448 1424 l 2451 1435 l 2454 1443 l 2456 1450 l 2458 1457 l 2460 1466 l 2462 1477 l 2465 1493 l 2467 1513 l 2470 1539 l 2472 1571 l 2474 1609 l 2475 1650 l 2474 1691 l 2472 1729 l 2470 1761 l 2467 1787 l 2465 1807 l 2462 1823 l 2460 1834 l 2458 1843 l 2456 1850 l 2454 1857 l 2451 1865 l 2448 1876 l 2444 1890 l 2438 1908 l 2431 1931 l 2422 1959 l 2412 1991 l cp gs 0.80 setgray ef gr % Polyline n 2400 3225 m 2386 3261 l 2371 3292 l 2357 3318 l 2344 3338 l 2332 3353 l 2321 3365 l 2310 3374 l 2300 3381 l 2290 3388 l 2281 3395 l 2272 3403 l 2263 3412 l 2256 3422 l 2250 3433 l 2248 3443 l 2250 3450 l 2257 3452 l 2267 3450 l 2278 3444 l 2288 3437 l 2297 3428 l 2305 3419 l 2312 3410 l 2319 3400 l 2326 3390 l 2335 3379 l 2347 3368 l 2362 3356 l 2382 3343 l 2408 3329 l 2439 3314 l 2475 3300 l 2509 3288 l 2541 3278 l 2569 3269 l 2592 3262 l 2610 3256 l 2624 3252 l 2635 3249 l 2643 3246 l 2650 3244 l 2657 3242 l 2666 3240 l 2677 3238 l 2693 3235 l 2713 3233 l 2739 3230 l 2771 3228 l 2809 3226 l 2850 3225 l 2891 3226 l 2929 3228 l 2961 3230 l 2987 3233 l 3007 3235 l 3023 3238 l 3034 3240 l 3043 3242 l 3050 3244 l 3057 3246 l 3065 3249 l 3076 3252 l 3090 3256 l 3108 3262 l 3131 3269 l 3159 3278 l 3191 3288 l 3225 3300 l 3261 3314 l 3292 3329 l 3318 3343 l 3338 3356 l 3353 3368 l 3365 3379 l 3374 3390 l 3381 3400 l 3388 3410 l 3395 3419 l 3403 3428 l 3412 3437 l 3422 3444 l 3433 3450 l 3443 3452 l 3450 3450 l 3452 3443 l 3450 3433 l 3444 3422 l 3437 3412 l 3428 3403 l 3419 3395 l 3410 3388 l 3400 3381 l 3390 3374 l 3379 3365 l 3368 3353 l 3356 3338 l 3343 3318 l 3329 3292 l 3314 3261 l 3300 3225 l 3288 3191 l 3278 3159 l 3269 3131 l 3262 3108 l 3256 3090 l 3252 3076 l 3249 3065 l 3246 3057 l 3244 3050 l 3242 3043 l 3240 3034 l 3238 3023 l 3235 3007 l 3233 2987 l 3230 2961 l 3228 2929 l 3226 2891 l 3225 2850 l 3226 2809 l 3228 2771 l 3230 2739 l 3233 2713 l 3235 2693 l 3238 2677 l 3240 2666 l 3242 2657 l 3244 2650 l 3246 2643 l 3249 2635 l 3252 2624 l 3256 2610 l 3262 2592 l 3269 2569 l 3278 2541 l 3288 2509 l 3300 2475 l 3314 2439 l 3329 2408 l 3343 2382 l 3356 2362 l 3368 2347 l 3379 2335 l 3390 2326 l 3400 2319 l 3410 2312 l 3419 2305 l 3428 2297 l 3437 2288 l 3444 2278 l 3450 2267 l 3452 2257 l 3450 2250 l 3443 2248 l 3433 2250 l 3422 2256 l 3412 2263 l 3403 2272 l 3395 2281 l 3388 2290 l 3381 2300 l 3374 2310 l 3365 2321 l 3353 2332 l 3338 2344 l 3318 2357 l 3292 2371 l 3261 2386 l 3225 2400 l 3191 2412 l 3159 2422 l 3131 2431 l 3108 2438 l 3090 2444 l 3076 2448 l 3065 2451 l 3057 2454 l 3050 2456 l 3043 2458 l 3034 2460 l 3023 2462 l 3007 2465 l 2987 2467 l 2961 2470 l 2929 2472 l 2891 2474 l 2850 2475 l 2809 2474 l 2771 2472 l 2739 2470 l 2713 2467 l 2693 2465 l 2677 2462 l 2666 2460 l 2657 2458 l 2650 2456 l 2643 2454 l 2635 2451 l 2624 2448 l 2610 2444 l 2592 2438 l 2569 2431 l 2541 2422 l 2509 2412 l 2475 2400 l 2439 2386 l 2408 2371 l 2382 2357 l 2362 2344 l 2347 2332 l 2335 2321 l 2326 2310 l 2319 2300 l 2312 2290 l 2305 2281 l 2297 2272 l 2288 2263 l 2278 2256 l 2267 2250 l 2257 2248 l 2250 2250 l 2248 2257 l 2250 2267 l 2256 2278 l 2263 2288 l 2272 2297 l 2281 2305 l 2290 2312 l 2300 2319 l 2310 2326 l 2321 2335 l 2332 2347 l 2344 2362 l 2357 2382 l 2371 2408 l 2386 2439 l 2400 2475 l 2412 2509 l 2422 2541 l 2431 2569 l 2438 2592 l 2444 2610 l 2448 2624 l 2451 2635 l 2454 2643 l 2456 2650 l 2458 2657 l 2460 2666 l 2462 2677 l 2465 2693 l 2467 2713 l 2470 2739 l 2472 2771 l 2474 2809 l 2475 2850 l 2474 2891 l 2472 2929 l 2470 2961 l 2467 2987 l 2465 3007 l 2462 3023 l 2460 3034 l 2458 3043 l 2456 3050 l 2454 3057 l 2451 3065 l 2448 3076 l 2444 3090 l 2438 3108 l 2431 3131 l 2422 3159 l 2412 3191 l cp gs 0.80 setgray ef gr % Polyline n 2400 4425 m 2386 4461 l 2371 4492 l 2357 4518 l 2344 4538 l 2332 4553 l 2321 4565 l 2310 4574 l 2300 4581 l 2290 4588 l 2281 4595 l 2272 4603 l 2263 4612 l 2256 4622 l 2250 4633 l 2248 4643 l 2250 4650 l 2257 4652 l 2267 4650 l 2278 4644 l 2288 4637 l 2297 4628 l 2305 4619 l 2312 4610 l 2319 4600 l 2326 4590 l 2335 4579 l 2347 4568 l 2362 4556 l 2382 4543 l 2408 4529 l 2439 4514 l 2475 4500 l 2509 4488 l 2541 4478 l 2569 4469 l 2592 4462 l 2610 4456 l 2624 4452 l 2635 4449 l 2643 4446 l 2650 4444 l 2657 4442 l 2666 4440 l 2677 4438 l 2693 4435 l 2713 4433 l 2739 4430 l 2771 4428 l 2809 4426 l 2850 4425 l 2891 4426 l 2929 4428 l 2961 4430 l 2987 4433 l 3007 4435 l 3023 4438 l 3034 4440 l 3043 4442 l 3050 4444 l 3057 4446 l 3065 4449 l 3076 4452 l 3090 4456 l 3108 4462 l 3131 4469 l 3159 4478 l 3191 4488 l 3225 4500 l 3261 4514 l 3292 4529 l 3318 4543 l 3338 4556 l 3353 4568 l 3365 4579 l 3374 4590 l 3381 4600 l 3388 4610 l 3395 4619 l 3403 4628 l 3412 4637 l 3422 4644 l 3433 4650 l 3443 4652 l 3450 4650 l 3452 4643 l 3450 4633 l 3444 4622 l 3437 4612 l 3428 4603 l 3419 4595 l 3410 4588 l 3400 4581 l 3390 4574 l 3379 4565 l 3368 4553 l 3356 4538 l 3343 4518 l 3329 4492 l 3314 4461 l 3300 4425 l 3288 4391 l 3278 4359 l 3269 4331 l 3262 4308 l 3256 4290 l 3252 4276 l 3249 4265 l 3246 4257 l 3244 4250 l 3242 4243 l 3240 4234 l 3238 4223 l 3235 4207 l 3233 4187 l 3230 4161 l 3228 4129 l 3226 4091 l 3225 4050 l 3226 4009 l 3228 3971 l 3230 3939 l 3233 3913 l 3235 3893 l 3238 3877 l 3240 3866 l 3242 3857 l 3244 3850 l 3246 3843 l 3249 3835 l 3252 3824 l 3256 3810 l 3262 3792 l 3269 3769 l 3278 3741 l 3288 3709 l 3300 3675 l 3314 3639 l 3329 3608 l 3343 3582 l 3356 3562 l 3368 3547 l 3379 3535 l 3390 3526 l 3400 3519 l 3410 3512 l 3419 3505 l 3428 3497 l 3437 3488 l 3444 3478 l 3450 3467 l 3452 3457 l 3450 3450 l 3443 3448 l 3433 3450 l 3422 3456 l 3412 3463 l 3403 3472 l 3395 3481 l 3388 3490 l 3381 3500 l 3374 3510 l 3365 3521 l 3353 3532 l 3338 3544 l 3318 3557 l 3292 3571 l 3261 3586 l 3225 3600 l 3191 3612 l 3159 3622 l 3131 3631 l 3108 3638 l 3090 3644 l 3076 3648 l 3065 3651 l 3057 3654 l 3050 3656 l 3043 3658 l 3034 3660 l 3023 3662 l 3007 3665 l 2987 3667 l 2961 3670 l 2929 3672 l 2891 3674 l 2850 3675 l 2809 3674 l 2771 3672 l 2739 3670 l 2713 3667 l 2693 3665 l 2677 3662 l 2666 3660 l 2657 3658 l 2650 3656 l 2643 3654 l 2635 3651 l 2624 3648 l 2610 3644 l 2592 3638 l 2569 3631 l 2541 3622 l 2509 3612 l 2475 3600 l 2439 3586 l 2408 3571 l 2382 3557 l 2362 3544 l 2347 3532 l 2335 3521 l 2326 3510 l 2319 3500 l 2312 3490 l 2305 3481 l 2297 3472 l 2288 3463 l 2278 3456 l 2267 3450 l 2257 3448 l 2250 3450 l 2248 3457 l 2250 3467 l 2256 3478 l 2263 3488 l 2272 3497 l 2281 3505 l 2290 3512 l 2300 3519 l 2310 3526 l 2321 3535 l 2332 3547 l 2344 3562 l 2357 3582 l 2371 3608 l 2386 3639 l 2400 3675 l 2412 3709 l 2422 3741 l 2431 3769 l 2438 3792 l 2444 3810 l 2448 3824 l 2451 3835 l 2454 3843 l 2456 3850 l 2458 3857 l 2460 3866 l 2462 3877 l 2465 3893 l 2467 3913 l 2470 3939 l 2472 3971 l 2474 4009 l 2475 4050 l 2474 4091 l 2472 4129 l 2470 4161 l 2467 4187 l 2465 4207 l 2462 4223 l 2460 4234 l 2458 4243 l 2456 4250 l 2454 4257 l 2451 4265 l 2448 4276 l 2444 4290 l 2438 4308 l 2431 4331 l 2422 4359 l 2412 4391 l cp gs 0.80 setgray ef gr % Polyline 0 slj 7.500 slw n 2250 1050 m 2850 1650 l 2250 2250 l 2850 2850 l 2250 3450 l 2850 4050 l 2250 4650 l gs col0 s gr % Polyline n 3450 1050 m 2850 1650 l 3450 2250 l 2850 2850 l 3450 3450 l 2850 4050 l 3450 4650 l gs col0 s gr % Ellipse n 2250 1050 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3450 1050 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 2850 1650 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 2250 2250 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3450 2250 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 2850 2850 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 2250 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3450 3450 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 2850 4050 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 2250 4650 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3450 4650 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2200 1140 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 1740 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 2340 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 2940 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 3540 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3320 1140 m gs 1 -1 sc (10) col0 sh gr /Times-Roman ff 240.00 scf sf 3320 2340 m gs 1 -1 sc (11) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 3540 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 4740 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 4740 m gs 1 -1 sc (9) col0 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_msf.fig000066400000000000000000000054461514310134000261070ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 2100 900 2400 1200 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2250 1050 150 150 2250 1050 2400 1050 4 0 0 10 0 0 16 0.0000 4 195 135 2200 1140 4\001 -6 6 3300 900 3600 1200 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3450 1050 150 150 3450 1050 3600 1050 4 0 0 8 0 0 16 0.0000 4 195 270 3320 1140 10\001 -6 6 2700 1500 3000 1800 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2850 1650 150 150 2850 1650 3000 1650 4 0 0 10 0 0 16 0.0000 4 195 135 2800 1740 2\001 -6 6 2100 2100 2400 2400 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2250 2250 150 150 2250 2250 2400 2250 4 0 0 10 0 0 16 0.0000 4 195 135 2200 2340 5\001 -6 6 3300 2100 3600 2400 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3450 2250 150 150 3450 2250 3600 2250 4 0 0 8 0 0 16 0.0000 4 195 270 3320 2340 11\001 -6 6 2700 2700 3000 3000 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2850 2850 150 150 2850 2850 3000 2850 4 0 0 10 0 0 16 0.0000 4 195 135 2800 2940 1\001 -6 6 2100 3300 2400 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2250 3450 150 150 2250 3450 2400 3450 4 0 0 8 0 0 16 0.0000 4 195 135 2200 3540 7\001 -6 6 3300 3300 3600 3600 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3450 3450 150 150 3450 3450 3600 3450 4 0 0 10 0 0 16 0.0000 4 195 135 3400 3540 6\001 -6 6 2700 3900 3000 4200 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2850 4050 150 150 2850 4050 3000 4050 4 0 0 10 0 0 16 0.0000 4 195 135 2800 4140 3\001 -6 6 2100 4500 2400 4800 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2250 4650 150 150 2250 4650 2400 4650 4 0 0 8 0 0 16 0.0000 4 195 135 2200 4740 8\001 -6 6 3300 4500 3600 4800 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3450 4650 150 150 3450 4650 3600 4650 4 0 0 8 0 0 16 0.0000 4 195 135 3400 4740 9\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7 2250 1050 2850 1650 2250 2250 2850 2850 2250 3450 2850 4050 2250 4650 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 7 3450 1050 2850 1650 3450 2250 2850 2850 3450 3450 2850 4050 3450 4650 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 2475 1650 2400 2025 2250 2250 2475 2100 2850 2025 3225 2100 3450 2250 3300 2025 3225 1650 3300 1275 3450 1050 3225 1200 2850 1275 2475 1200 2250 1050 2400 1275 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 2475 2850 2400 3225 2250 3450 2475 3300 2850 3225 3225 3300 3450 3450 3300 3225 3225 2850 3300 2475 3450 2250 3225 2400 2850 2475 2475 2400 2250 2250 2400 2475 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 3 3 0 0 7 -1 60 0 4 0.000 0 0 0 16 2475 4050 2400 4425 2250 4650 2475 4500 2850 4425 3225 4500 3450 4650 3300 4425 3225 4050 3300 3675 3450 3450 3225 3600 2850 3675 2475 3600 2250 3450 2400 3675 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_mult.eps000066400000000000000000000133451514310134000263220ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_mult.fig %%Creator: fig2dev Version 3.2 Patchlevel 5c %%CreationDate: Mon Oct 18 00:32:04 2010 %%For: pelegrin@brol () %%BoundingBox: 0 0 574 278 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 278 moveto 0 0 lineto 574 0 lineto 574 278 lineto closepath clip newpath -35.0 347.5 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 0 /Times-Roman ff 266.67 scf sf 600 4725 m gs 1 -1 sc (Coarsening) col-1 sh gr /Times-Roman ff 266.67 scf sf 825 4950 m gs 1 -1 sc (phase) col-1 sh gr /Times-Roman ff 266.67 scf sf 8550 4725 m gs 1 -1 sc (Uncoarsening) col-1 sh gr /Times-Roman ff 266.67 scf sf 8925 4950 m gs 1 -1 sc (phase) col-1 sh gr % Arc 7.500 slw 0 slc gs clippath 4067 5291 m 4217 5278 l 4212 5218 l 4061 5231 l 4061 5231 l 4184 5251 l 4067 5291 l cp eoclip n 3839.2 2023.3 3246.9 -176.0571 83.6195 arcn gs col-1 s gr gr % arrowhead 0 slj n 4067 5291 m 4184 5251 l 4061 5231 l col-1 s % Arc gs clippath 9636 1935 m 9629 1783 l 9569 1786 l 9576 1938 l 9576 1938 l 9601 1817 l 9636 1935 l cp eoclip n 6360.8 2023.3 3246.9 -3.9429 96.3805 arc gs col-1 s gr gr % arrowhead n 9636 1935 m 9601 1817 l 9576 1938 l col-1 s % Ellipse n 2100 1800 1200 600 0 360 DrawEllipse gs col-1 s gr % Ellipse n 2550 3300 1020 510 0 360 DrawEllipse gs col-1 s gr % Ellipse n 8100 1800 1200 600 0 360 DrawEllipse gs col-1 s gr % Ellipse n 7650 3300 1020 510 0 360 DrawEllipse gs col-1 s gr % Ellipse n 5100 5100 555 270 0 360 DrawEllipse gs col-1 s gr % Ellipse n 6750 4500 765 390 0 360 DrawEllipse gs col-1 s gr % Ellipse n 3450 4500 765 390 0 360 DrawEllipse gs col-1 s gr % Polyline 30.000 slw n 4935 5355 m 5085 5250 l 5040 5040 l 5220 4965 l 5190 4830 l gs col-1 s gr % Polyline 7.500 slw n 6600 4875 m 6750 4725 l 6675 4350 l 6900 4200 l 6840 4110 l gs col-1 s gr % Polyline 30.000 slw n 6690 4890 m 6675 4725 l 6675 4650 l 6750 4350 l 6825 4200 l 6735 4110 l gs col-1 s gr % Polyline 7.500 slw n 7575 3810 m 7575 3600 l 7650 3150 l 7800 2925 l 7710 2790 l gs col-1 s gr % Polyline n 8100 2400 m 8025 2100 l 8325 1575 l 8175 1350 l 8250 1200 l gs col-1 s gr % Polyline 30.000 slw n 8025 2400 m 8250 1875 l 8175 1500 l 8250 1350 l 8175 1200 l gs col-1 s gr % Polyline n 7695 3810 m 7500 3450 l 7800 3075 l 7725 2925 l 7830 2790 l gs col-1 s gr % Polyline 7.500 slw gs clippath 7885 2032 m 8035 2056 l 8044 1997 l 7895 1973 l 7895 1973 l 8009 2022 l 7885 2032 l cp eoclip n 6600 1800 m 8025 2025 l gs col-1 s gr gr % arrowhead n 7885 2032 m 8009 2022 l 7895 1973 l col-1 s % Polyline gs clippath 7960 1584 m 8110 1606 l 8119 1547 l 7969 1525 l 7969 1525 l 8084 1573 l 7960 1584 l cp eoclip n 6600 1350 m 8100 1575 l gs col-1 s gr gr % arrowhead n 7960 1584 m 8084 1573 l 7969 1525 l col-1 s /Times-Roman ff 266.67 scf sf 4350 5700 m gs 1 -1 sc (Initial partitioning) col-1 sh gr /Times-Roman ff 266.67 scf sf 4350 1875 m gs 1 -1 sc (Prolonged partition) col-1 sh gr /Times-Roman ff 266.67 scf sf 4500 1425 m gs 1 -1 sc ( Refined partition) col-1 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_mult.fig000066400000000000000000000041261514310134000262750ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5b Landscape Center Inches Letter 100.00 Single -2 1200 2 5 1 0 1 -1 -1 0 0 -1 0.000 0 1 1 0 3839.175 2023.260 600 1800 1500 4275 4200 5250 0 0 1.00 60.00 120.00 5 1 0 1 -1 -1 0 0 -1 0.000 0 0 0 1 6360.825 2023.260 9600 1800 8700 4275 6000 5250 0 0 1.00 60.00 120.00 6 600 4425 1650 4950 4 0 -1 0 0 0 16 0.0000 4 255 1260 600 4725 Coarsening\001 4 0 -1 0 0 0 16 0.0000 4 255 630 825 4950 phase\001 -6 6 8550 4425 9825 4950 4 0 -1 0 0 0 16 0.0000 4 255 1545 8550 4725 Uncoarsening\001 4 0 -1 0 0 0 16 0.0000 4 255 630 8925 4950 phase\001 -6 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 2100 1800 1200 600 2100 1800 3300 1200 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 2550 3300 1020 510 2550 3300 3570 2790 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 8100 1800 1200 600 8100 1800 9300 1200 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 7650 3300 1020 510 7650 3300 8670 2790 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 5100 5100 555 270 5100 5100 5640 4830 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 6750 4500 765 390 6750 4500 7545 4110 1 1 0 1 -1 -1 0 0 -1 0.000 1 0.0000 3450 4500 765 390 3450 4500 4245 4110 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 4935 5355 5085 5250 5040 5040 5220 4965 5190 4830 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 6600 4875 6750 4725 6675 4350 6900 4200 6840 4110 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 6 6690 4890 6675 4725 6675 4650 6750 4350 6825 4200 6735 4110 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 7575 3810 7575 3600 7650 3150 7800 2925 7710 2790 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 8100 2400 8025 2100 8325 1575 8175 1350 8250 1200 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 8025 2400 8250 1875 8175 1500 8250 1350 8175 1200 2 1 0 3 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 7695 3810 7500 3450 7800 3075 7725 2925 7830 2790 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6600 1800 8025 2025 2 1 0 1 -1 -1 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6600 1350 8100 1575 4 0 -1 0 0 0 16 0.0000 4 255 2055 4350 5700 Initial partitioning\001 4 0 -1 0 0 0 16 0.0000 4 255 2160 4350 1875 Prolonged partition\001 4 0 -1 0 0 0 16 0.0000 4 255 2025 4500 1425 Refined partition\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_mult.pdf000066400000000000000000000155261514310134000263070ustar00rootroot00000000000000%PDF-1.4 %Çì¢ 5 0 obj <> stream xœ•VËn[G Ý߯˜eR “á çµmPÝ5±Š® Åq\Hrbèï÷œ¹W’½H Ø")>çõÍO.Èg|ïË»ÕÝ?/Áý¿ûåÛBêàÆ×þè~ÛÁ©9*>„ÝîóbÁ„Oa·;.oÞ?Þ>=ßN÷owÿ.”|v¿êÿݧåÍ×/·Ïwbç"¦Õþ÷iãëa¿ï–À\¬-¸ã"µK®|&èO‡åËC>º‚O½Á;R3CóÔ;|"Õ*æi­øâR*òšJðìRäÕ㢊þçwZØÿ[ºï=Rw1uö ¢øNµWX²D¸ìSm ‡ì+mz,äÁñ~™¢–}è®tîÀ@Ñ·Úõ ¢âªï)fßòjF´œ Ku‡¶ƒ¤–&:KÀ h5À¯ö¢á+Jn~x"™!4&b¸fŽ™#£ñ(¾©“é _ªgóŽó÷K)¨ÞØ7Õ·ìëÔ)ÐÙ`I>´mLìKÜ0õmÃ2À@î™Vz—â¹ I5ÚR$s ³ ˜Ë\³sÕÝU÷7 •¤¯ o“©OØž)TíCÊ®c÷ª€>šr6•úY@‰ö‹Š¹'ߢ[ýkyD€ÏÌ/ªU¤=ˆµÃÈQå‹£,5©uùLÚ/ ¤†À¦æÒÌWÖ„*Ô]=[ ‘B$ÓÄjÕbâ¼A0H9n¬™™Ô¥¢É©ÄAœIַɆy Co¼YVµj%ñÜêž8¡/£b“6V~9TrBWÒ)A9Ù+jNµnþ¢Høˆ˜{.âh6Í#|FzÑ´îô_ñ º(wW«²%balæôp”Mi… a.Ó™6oQ$ \Dì(»áO5JB¼fWMË΀Ž¡Ã‰;Ñ©8ëQ¯Õ8Ñ‘œ'ÊChóÅ’ª8‹ E¡iº‘]5-;V8c—69ø a88å±á%Ëa_*˱ÊÂîEE,™ˆCvo¤"#Ër(A…åÈO˼ɤû£g3ªÃ¬ždÉIÃG‹9 /Íbtfâ<3¹g&C¸m3‡œH|mÁgÍÆ ›M©{-¶ø5Ǻñͨ£Ec²˜5"Ë¡XŠÙÃØÜk/6RèϸiÖ°\·°‘"Ï3V€ò > ÷ã ¹€ˆ.&üÄmƒÿ£71§&OŒŒg‚6ZEcÒ{Z‘{¼èÍ_lɈË9¾Ô^}qWß5ïÕSHWÈ8x³%(èùö¸õ"õYáŸhŒÊé‚+\²fF«9ê“#óhU®`ÑÙ•–CP-ÍÖ·¼k«Ö¤Ìõ8–’-mò Èuºób7?÷úŽrSÊcð?OßnîëíÓwHóM„¼ñ þëéñðxº¿û´y‰ މª¿;÷ñîóÃéúw}~Xþ¨€oxendstream endobj 6 0 obj 1143 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream xœeVkTSW¾1$çL‡Ò–4U°&Y¶¶>ÑÚjW…:VT@@yX@  Ix%$„@‚†ð&<ÃK fì̬sY×Y37vÍÌùs×½÷œ}öùö÷ý屄âp8žQ²LiÎÚHef²Âý½†^ΡŸ_B¯à£XŒ^ÜÊ[A…µsŸO.xzt>ÿÄ!oò¯gÈͧÈÔӗýúU°R¥Í–¥¥çJ^‰ŽÜ÷êêÕkþ÷gC@@€ä ö?#’iŽ,M!y™}QKåJU¦T‘»EÌΖËe‡$ir­*=G’œ’"Mq‡Å$Ë¥‡%Ûdr™J¥TK^ ~U²ÑÏoÃZö±q‹dw^¦4[¹F"S¤Ê²\­$Y‘"Ù“)MK–d&§HÝ „dÊr³µ’M~2Å£wË2æåHC–ìVHÂ$‘Ò´¹•Á 7.08!r¤_äEîA ùËÏœ/¸µ´¯°ÙZ_a|¬¾ QÌXÄšÍ;‹X:Ì-h»U×3˜ä!ש)GM}©©QÔZØhiÜÓÒæTwÈ’¹!qâïQieL^š!<ŸåÈÇÔUÐIoè0ty¿™\_*h#ŸkBÁš#äyž‘_VVl./?>0U«± ­./¯*kù›‘ûƒ÷ºÝ_ÌÖ´å€Ü'ñ°r¿LÞÔ•/R+î6ÌྠŒñkBµ U•6¶VÍeÝv‹Óq¤}ùüÕ‹×§r÷ŒˆꪲU >cÎ33ý²Ý,îÓ4íéâ\_à’:–ì— æ7”[-"s±¥Øl’F%Å1š-f(…£eÖ2üsŽ¿¹?éÒähÏô ÈШÎÖ™òÀ'Uï¸"&'þŠÜ¥´/zØ9=äD8B4m>ŠóÉ”X šá&¦ÃÜlnZ¨Âvf*Ý-µ!ˆUA¸é"½¬Çûø7Û¾!¸³TpŸÞý±PWXTªœknž“}¦Kûô=y#IöpÀ‚ùµAqa¹šîžÎŽ®ªòêòZqY}yÔb‡«klÒ¡ˆíF̺]º’$)ÜÏÓÊ2|Ã&g'NvNÏŠª÷µ«OÂtÚ†G1³þk!ÈK‹ÕE9…Êb5àtåÐ)q‚K'GÈ“÷wƒæõqŽÍs鈟0>4-'°ßÎÛýzþ³;#MÆÔqM^²]Û >½]öî ¡g7ÇíפÇ&*·Ã›˜yîËu„{z¬u`Däè±;ú/¹Õϲàëä8î KÄO&!Y9ÍkEÚò28 8­¤ñŒ˜¾Êê)^—nÚ©ó)@u5Pøx½é ˜ñCR—ªñ`­cxÌ Ì³s›È’ £g‡Ä;Y<Àl.2µšl“°ÔmòáM~þÅ“ 1b7¨O‰ÂEЇ^Cü…ñ[“;!’ú3ÚQó`Ù,&³ü’L}ٮ̑û ´RYÂAU`Ftãu‚Ì]"Ô¸ˆ¹EÖo Ÿ…YèQ6mÂO½ÒÅù•v™Uó+±‹öÑÎf“¢]Ôše3µî¶·w$öîÙ£:%ÎJ,I+ß‚Å\ãÃÛÆ¢`w/ljaåcl„9L®/äEvÒ5F¦ŽçÛ½ÿòÎRÁOä]2!ì-k+ï…[p®áTχ®‘YøÆ GU}‡&69ײª¹Ã´åó?/i0A0~Š`s‰i«™Uè ½iÕ?V¨ÚCð“£¶ÖA–_NxqUx,ƒ4…•¹"w«RÌ+ÇHƉj§·óºâk:ïp,0t½Lxâ-¤a»¤¦6¯n™ªAUŦ#ë‚‚ýÂÒ3ÄùZ­ÎRš¡0h@j[ÑI 0!ûT©¾1·ÌÝꟴ¹`.'ŒYaͲ˜Êìzh…ŽÁaG]}ym¹ìeMå5pÆZƒÎ–a˜‚¾ÒîBfÌ|…ƒæÛ–IÀß Ò"¶¦0¼×"ú&ºk›Æ§ÄRMî /9‡Ï ôê2[Eíé¶‚÷*ÒìIþèGÑoþµüçæÙÍ2¶ü(?ÓßvðÔ±´P1‡`»ÉaùÍÀ¢,uð)&ñèïÉçÞOÎÙs@DfP©UV”]²·ÀGUÂ+@UV¨|ª®$Iüè0‚PKqD /oA5&ÏúØé_Ý<>|H nO/®´ ¥VMƒbˆ9Hj–]kê· :\½öq8 § dzúسRêß»v¹à4Ó—ÏŸ+i0BÈc6ýME–Í~;z«ÚÐ70‰E*I13Ë#¯óÅÓ÷„‚ygcÝyæbÒÚXurZ¾è@Vºeu«×¶Wr°èƒÝ^º>ЧgÏ›­²©¢|z[‚A°É¸Í­JS ÚQ]ÒàNBÐ~¢ªrs•Ê®\g_wWŸ3·[!öZLe]uÑÎùÛCòÏ .Mh›ÚZ¿j`»Ÿ>ݲ´æÁJÌt³¥5K 2Uñ;åq=ª³Z—ù¸ÛÝn"¸ÑØx»–ÉG_Zð6f>BLÐòáÌ rBÔ3^æƒÀùyk_ä kø¶ ¶U¸ YÍB]h+e7nlAaUE pÓ? #•ûtRÓ6{‡ÑtÐ1$ªƒßÿÄÝß÷×yzÞm÷|’¢þ ÉàT endstream endobj 13 0 obj <>stream 2010-10-18T00:32:04+02:00 2010-10-18T00:32:04+02:00 fig2dev Version 3.2 Patchlevel 5c s_f_mult.figpelegrin@brol () endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001458 00000 n 0000006349 00000 n 0000001399 00000 n 0000001248 00000 n 0000000015 00000 n 0000001228 00000 n 0000001523 00000 n 0000001624 00000 n 0000001991 00000 n 0000001564 00000 n 0000001594 00000 n 0000002265 00000 n 0000004857 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [<97BC0DE5049D494B90D335EF5DB57C5F><97BC0DE5049D494B90D335EF5DB57C5F>] >> startxref 6565 %%EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_orb.eps000066400000000000000000000632161514310134000261250ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_orb.fig %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Thu Dec 30 03:01:42 2004 %%For: pelegrin@localhost (Francois PELLEGRINI) %%BoundingBox: 0 0 775 164 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 164 moveto 0 0 lineto 775 0 lineto 775 164 lineto closepath clip newpath -36.0 198.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Courier /Courier-iso isovec ReEncode /Times-Bold /Times-Bold-iso isovec ReEncode /Times-Roman /Times-Roman-iso isovec ReEncode /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Polyline 7.500 slw n 10080 1725 m 9975 1725 9975 2070 105 arcto 4 {pop} repeat 9975 2175 10320 2175 105 arcto 4 {pop} repeat 10425 2175 10425 1830 105 arcto 4 {pop} repeat 10425 1725 10080 1725 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline 2 slj n 11138 3213 m 11150 3215 l 11164 3217 l 11180 3218 l 11196 3220 l 11213 3221 l 11231 3221 l 11250 3222 l 11269 3221 l 11287 3221 l 11304 3220 l 11320 3218 l 11336 3217 l 11350 3215 l 11363 3213 l 11371 3211 l 11379 3208 l 11386 3206 l 11394 3202 l 11401 3198 l 11407 3193 l 11414 3186 l 11420 3178 l 11425 3168 l 11431 3156 l 11435 3143 l 11440 3128 l 11444 3111 l 11448 3092 l 11451 3071 l 11454 3049 l 11456 3024 l 11459 2998 l 11461 2969 l 11463 2938 l 11464 2915 l 11465 2891 l 11466 2866 l 11467 2840 l 11467 2812 l 11468 2783 l 11469 2753 l 11470 2721 l 11471 2688 l 11471 2654 l 11472 2620 l 11473 2584 l 11474 2548 l 11474 2512 l 11475 2475 l 11476 2438 l 11476 2402 l 11477 2366 l 11478 2330 l 11479 2296 l 11479 2262 l 11480 2229 l 11481 2197 l 11482 2167 l 11483 2138 l 11483 2110 l 11484 2084 l 11485 2059 l 11486 2035 l 11488 2013 l 11489 1984 l 11491 1957 l 11493 1933 l 11496 1909 l 11499 1887 l 11503 1867 l 11507 1847 l 11512 1829 l 11518 1812 l 11525 1795 l 11533 1780 l 11542 1765 l 11552 1751 l 11563 1738 l 11575 1725 l 11588 1713 l 11602 1701 l 11617 1689 l 11633 1676 l 11650 1664 l 11668 1651 l 11688 1638 l 11705 1625 l 11724 1612 l 11744 1599 l 11765 1584 l 11788 1569 l 11811 1553 l 11836 1536 l 11862 1519 l 11888 1501 l 11916 1482 l 11943 1463 l 11972 1444 l 12000 1425 l 12028 1406 l 12057 1387 l 12084 1368 l 12112 1349 l 12138 1331 l 12164 1314 l 12189 1297 l 12212 1281 l 12235 1266 l 12256 1251 l 12276 1238 l 12295 1225 l 12313 1213 l 12339 1194 l 12363 1177 l 12385 1161 l 12405 1146 l 12424 1132 l 12440 1119 l 12454 1106 l 12467 1094 l 12477 1083 l 12486 1072 l 12493 1062 l 12499 1052 l 12504 1043 l 12507 1033 l 12510 1023 l 12513 1013 l 12515 1000 l 12517 986 l 12518 970 l 12520 954 l 12521 937 l 12521 919 l 12522 900 l 12521 881 l 12521 863 l 12520 846 l 12518 830 l 12517 814 l 12515 800 l 12513 788 l 12510 776 l 12507 765 l 12503 754 l 12499 745 l 12493 735 l 12487 727 l 12481 719 l 12473 713 l 12465 707 l 12455 701 l 12446 697 l 12435 693 l 12424 690 l 12413 688 l 12400 685 l 12386 683 l 12370 682 l 12354 680 l 12337 679 l 12319 679 l 12300 678 l 12281 679 l 12263 679 l 12246 680 l 12230 682 l 12214 683 l 12200 685 l 12188 688 l 12176 690 l 12165 693 l 12154 697 l 12145 701 l 12135 707 l 12127 713 l 12119 719 l 12113 727 l 12107 735 l 12101 745 l 12097 754 l 12093 765 l 12090 776 l 12088 788 l 12085 800 l 12083 814 l 12081 830 l 12080 846 l 12078 863 l 12076 881 l 12075 900 l 12074 919 l 12072 937 l 12070 954 l 12069 970 l 12067 986 l 12065 1000 l 12063 1013 l 12060 1023 l 12057 1033 l 12054 1043 l 12049 1052 l 12043 1062 l 12036 1072 l 12027 1083 l 12017 1094 l 12004 1106 l 11990 1119 l 11974 1132 l 11955 1146 l 11935 1161 l 11913 1177 l 11889 1194 l 11863 1213 l 11845 1225 l 11826 1238 l 11806 1251 l 11785 1266 l 11762 1281 l 11739 1297 l 11714 1314 l 11688 1331 l 11662 1349 l 11634 1368 l 11607 1387 l 11578 1406 l 11550 1425 l 11522 1444 l 11493 1463 l 11466 1482 l 11438 1501 l 11412 1519 l 11386 1536 l 11361 1553 l 11338 1569 l 11315 1584 l 11294 1599 l 11274 1612 l 11255 1625 l 11238 1638 l 11218 1651 l 11200 1664 l 11183 1676 l 11167 1689 l 11152 1701 l 11138 1713 l 11125 1725 l 11113 1738 l 11102 1751 l 11092 1765 l 11083 1780 l 11075 1795 l 11068 1812 l 11062 1829 l 11057 1847 l 11053 1867 l 11049 1887 l 11046 1909 l 11043 1933 l 11041 1957 l 11039 1984 l 11038 2013 l 11036 2035 l 11035 2059 l 11034 2084 l 11033 2110 l 11033 2138 l 11032 2167 l 11031 2197 l 11031 2229 l 11030 2262 l 11030 2296 l 11029 2330 l 11029 2366 l 11029 2402 l 11029 2438 l 11028 2475 l 11029 2512 l 11029 2548 l 11029 2584 l 11029 2620 l 11030 2654 l 11030 2688 l 11031 2721 l 11031 2753 l 11032 2783 l 11033 2812 l 11033 2840 l 11034 2866 l 11035 2891 l 11036 2915 l 11038 2938 l 11039 2969 l 11041 2998 l 11044 3024 l 11046 3049 l 11049 3072 l 11052 3092 l 11056 3111 l 11060 3128 l 11065 3143 l 11069 3156 l 11075 3168 l 11080 3178 l 11086 3186 l 11093 3193 l 11099 3198 l 11106 3202 l 11114 3206 l 11121 3208 l 11129 3211 l cp gs col0 s gr % Polyline n 12413 1738 m 12422 1740 l 12431 1742 l 12440 1745 l 12449 1749 l 12458 1753 l 12468 1759 l 12478 1766 l 12489 1775 l 12501 1785 l 12514 1797 l 12529 1810 l 12544 1825 l 12560 1841 l 12578 1860 l 12597 1879 l 12617 1901 l 12639 1924 l 12663 1950 l 12678 1966 l 12694 1984 l 12711 2002 l 12729 2022 l 12748 2042 l 12767 2063 l 12788 2085 l 12809 2109 l 12832 2132 l 12854 2157 l 12878 2182 l 12902 2208 l 12926 2234 l 12950 2261 l 12975 2288 l 13000 2314 l 13024 2341 l 13048 2367 l 13072 2393 l 13096 2418 l 13118 2443 l 13141 2466 l 13162 2490 l 13183 2512 l 13202 2533 l 13221 2553 l 13239 2573 l 13256 2591 l 13272 2609 l 13288 2625 l 13311 2651 l 13333 2674 l 13353 2696 l 13372 2716 l 13389 2735 l 13404 2752 l 13418 2768 l 13431 2783 l 13442 2797 l 13451 2810 l 13459 2821 l 13466 2832 l 13472 2842 l 13476 2851 l 13480 2860 l 13483 2869 l 13485 2878 l 13488 2888 l 13490 2900 l 13492 2914 l 13493 2930 l 13495 2946 l 13496 2963 l 13496 2981 l 13497 3000 l 13496 3019 l 13496 3037 l 13495 3054 l 13493 3070 l 13492 3086 l 13490 3100 l 13488 3113 l 13485 3124 l 13482 3135 l 13478 3146 l 13474 3155 l 13468 3165 l 13462 3173 l 13456 3181 l 13448 3187 l 13440 3193 l 13430 3199 l 13421 3203 l 13410 3207 l 13399 3210 l 13388 3213 l 13375 3215 l 13361 3217 l 13345 3218 l 13329 3220 l 13312 3221 l 13294 3221 l 13275 3222 l 13256 3221 l 13238 3221 l 13221 3220 l 13205 3218 l 13189 3217 l 13175 3215 l 13163 3213 l 13153 3210 l 13144 3208 l 13135 3205 l 13126 3201 l 13117 3197 l 13107 3191 l 13097 3184 l 13086 3175 l 13074 3165 l 13061 3153 l 13046 3140 l 13031 3125 l 13015 3109 l 12997 3090 l 12978 3071 l 12958 3049 l 12936 3026 l 12913 3000 l 12897 2984 l 12881 2966 l 12864 2948 l 12846 2928 l 12827 2908 l 12808 2887 l 12787 2865 l 12766 2841 l 12743 2818 l 12721 2793 l 12697 2768 l 12673 2742 l 12649 2716 l 12625 2689 l 12600 2662 l 12575 2636 l 12551 2609 l 12527 2583 l 12503 2557 l 12479 2532 l 12457 2507 l 12434 2484 l 12413 2460 l 12392 2438 l 12373 2417 l 12354 2397 l 12336 2377 l 12319 2359 l 12303 2341 l 12288 2325 l 12264 2299 l 12242 2276 l 12222 2254 l 12203 2234 l 12186 2215 l 12171 2198 l 12157 2182 l 12144 2167 l 12133 2153 l 12124 2140 l 12116 2129 l 12109 2118 l 12103 2108 l 12099 2099 l 12095 2090 l 12092 2081 l 12090 2072 l 12088 2063 l 12085 2050 l 12083 2036 l 12082 2020 l 12080 2004 l 12079 1987 l 12079 1969 l 12078 1950 l 12079 1931 l 12079 1913 l 12080 1896 l 12082 1880 l 12083 1864 l 12085 1850 l 12088 1838 l 12090 1826 l 12093 1815 l 12097 1804 l 12101 1795 l 12107 1785 l 12113 1777 l 12119 1769 l 12127 1763 l 12135 1757 l 12145 1751 l 12154 1747 l 12165 1743 l 12176 1740 l 12188 1738 l 12200 1735 l 12214 1733 l 12230 1732 l 12246 1730 l 12263 1729 l 12281 1729 l 12300 1728 l 12319 1729 l 12337 1729 l 12354 1730 l 12370 1732 l 12386 1733 l 12400 1735 l cp gs col0 s gr % here ends figure; % % here starts figure with depth 20 % Polyline 7.500 slw n 10200 900 m 10200 1950 l gs col0 s gr % Polyline n 10200 900 m 13275 900 l 13275 3000 l 10200 3000 l 10200 1950 l 13275 1950 l gs col0 s gr % Polyline n 11250 900 m 11250 3000 l gs col0 s gr % Polyline n 12300 900 m 12300 3000 l gs col0 s gr % Polyline n 6375 900 m 6375 1950 l gs col0 s gr % Polyline n 6300 900 m 9450 900 l 9450 3000 l 6375 3000 l 6375 1950 l 9450 1950 l gs col0 s gr % Polyline n 7425 900 m 7425 3000 l gs col0 s gr % Polyline n 8475 900 m 8475 3000 l gs col0 s gr /Courier-iso ff 210.00 scf sf 600 1425 m gs 1 -1 sc (peritab) col0 sh gr /Courier-iso ff 210.00 scf sf 600 2025 m gs 1 -1 sc (cblknbr) col0 sh gr /Courier-iso ff 210.00 scf sf 600 2625 m gs 1 -1 sc (rangtab) col0 sh gr /Courier-iso ff 210.00 scf sf 600 3225 m gs 1 -1 sc (treetab) col0 sh gr /Courier-iso ff 210.00 scf sf 600 825 m gs 1 -1 sc (permtab) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 2400 m 2100 2400 l 2100 2700 l 1800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 2400 m 2400 2400 l 2400 2700 l 2100 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 2400 m 2700 2400 l 2700 2700 l 2400 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 2400 m 3600 2400 l 3600 2700 l 3300 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 2400 m 4500 2400 l 4500 2700 l 4200 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 2400 m 3000 2400 l 3000 2700 l 2700 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 2400 m 3300 2400 l 3300 2700 l 3000 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1800 m 2100 1800 l 2100 2100 l 1800 2100 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 600 m 2100 600 l 2100 900 l 1800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 600 m 2400 600 l 2400 900 l 2100 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 600 m 3300 600 l 3300 900 l 3000 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 600 m 3900 600 l 3900 900 l 3600 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 600 m 4200 600 l 4200 900 l 3900 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 600 m 4500 600 l 4500 900 l 4200 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 600 m 3000 600 l 3000 900 l 2700 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 1200 m 2400 1200 l 2400 1500 l 2100 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 1200 m 2700 1200 l 2700 1500 l 2400 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 1200 m 3600 1200 l 3600 1500 l 3300 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 1200 m 3000 1200 l 3000 1500 l 2700 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 2400 m 4200 2400 l 4200 2700 l 3900 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3925 2640 m gs 1 -1 sc (13) col0 sh gr % Polyline n 4500 2400 m 4800 2400 l 4800 2700 l 4500 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 3000 m 2100 3000 l 2100 3300 l 1800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3000 m 2400 3000 l 2400 3300 l 2100 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3000 m 2700 3000 l 2700 3300 l 2400 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3000 m 3300 3000 l 3300 3300 l 3000 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3000 m 3600 3000 l 3600 3300 l 3300 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3000 m 3000 3000 l 3000 3300 l 2700 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 600 m 5100 600 l 5100 900 l 4800 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 600 m 5400 600 l 5400 900 l 5100 900 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 2400 m 5100 2400 l 5100 2700 l 4800 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 2400 m 5400 2400 l 5400 2700 l 5100 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5400 2400 m 5700 2400 l 5700 2700 l 5400 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 600 m 2700 600 l 2700 900 l 2400 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 2425 840 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3300 600 m 3600 600 l 3600 900 l 3300 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3325 840 m gs 1 -1 sc (11) col0 sh gr % Polyline n 4500 600 m 4800 600 l 4800 900 l 4500 900 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 4525 840 m gs 1 -1 sc (12) col0 sh gr % Polyline n 4500 1200 m 4800 1200 l 4800 1500 l 4500 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 1200 m 5100 1200 l 5100 1500 l 4800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 1200 m 4200 1200 l 4200 1500 l 3900 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 1200 m 3900 1200 l 3900 1500 l 3600 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 1200 m 2100 1200 l 2100 1500 l 1800 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 1200 m 5400 1200 l 5400 1500 l 5100 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 5125 1440 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3000 1200 m 3300 1200 l 3300 1500 l 3000 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3025 1440 m gs 1 -1 sc (11) col0 sh gr % Polyline n 4200 1200 m 4500 1200 l 4500 1500 l 4200 1500 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 4225 1440 m gs 1 -1 sc (12) col0 sh gr % Polyline n 3600 2400 m 3900 2400 l 3900 2700 l 3600 2700 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3625 2640 m gs 1 -1 sc (10) col0 sh gr % Polyline n 3600 3000 m 3900 3000 l 3900 3300 l 3600 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman-iso ff 240.00 scf sf 3625 3240 m gs 1 -1 sc (-1) col0 sh gr % Polyline n 3900 3000 m 4200 3000 l 4200 3300 l 3900 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 3000 m 4500 3000 l 4500 3300 l 4200 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4500 3000 m 4800 3000 l 4800 3300 l 4500 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 3000 m 5100 3000 l 5100 3300 l 4800 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 5100 3000 m 5400 3000 l 5400 3300 l 5100 3300 l cp gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 12300 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11257 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11257 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10200 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10200 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 11250 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 13282 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12307 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 13282 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 13282 893 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 12307 2993 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 10207 1943 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6375 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6375 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6375 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9450 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9450 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8475 900 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8475 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7425 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8475 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 9450 3000 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman-iso ff 240.00 scf sf 1900 2640 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 2640 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2500 2640 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3400 2640 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 2640 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3100 2640 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 2040 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 840 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3100 840 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3700 840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4000 840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4300 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 840 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 1440 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2500 1440 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3400 1440 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 1440 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2200 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2500 3240 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3400 3240 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 2800 3240 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4900 840 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 5200 840 m gs 1 -1 sc (9) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 10150 3090 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 10150 990 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 11200 990 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 13232 3083 m gs 1 -1 sc (9) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 12257 2033 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 13232 2033 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 13232 983 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 12257 3083 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 10157 2033 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 6325 990 m gs 1 -1 sc (1) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 6325 2040 m gs 1 -1 sc (5) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 7375 990 m gs 1 -1 sc (2) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 7375 2040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 6325 3090 m gs 1 -1 sc (9) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 9400 990 m gs 1 -1 sc (4) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 9400 2040 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 8425 990 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 8425 2040 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4600 1440 m gs 1 -1 sc (3) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4900 1440 m gs 1 -1 sc (6) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 4000 1440 m gs 1 -1 sc (7) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 3700 1440 m gs 1 -1 sc (8) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 1900 1440 m gs 1 -1 sc (9) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 9900 3150 m gs 1 -1 sc (1) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 9900 1050 m gs 1 -1 sc (2) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 9900 2325 m gs 1 -1 sc (3) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 12000 3300 m gs 1 -1 sc (4) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 12975 1200 m gs 1 -1 sc (5) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 11925 2250 m gs 1 -1 sc (6) col0 sh gr /Times-Bold-iso ff 240.00 scf sf 10950 1725 m gs 1 -1 sc (7) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman-iso ff 240.00 scf sf 12170 990 m gs 1 -1 sc (10) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 11127 2033 m gs 1 -1 sc (11) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 11127 3083 m gs 1 -1 sc (12) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 7295 3090 m gs 1 -1 sc (10) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 8345 3090 m gs 1 -1 sc (11) col0 sh gr /Times-Roman-iso ff 240.00 scf sf 9320 3090 m gs 1 -1 sc (12) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_orb.fig000066400000000000000000000314451514310134000261020ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1800 2400 2100 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 2400 2100 2400 2100 2700 1800 2700 1800 2400 4 0 0 10 0 0 16 0.0000 4 165 120 1900 2640 1\001 -6 6 2100 2400 2400 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 2400 2400 2400 2400 2700 2100 2700 2100 2400 4 0 0 10 0 0 16 0.0000 4 150 120 2200 2640 2\001 -6 6 2400 2400 2700 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 2400 2700 2400 2700 2700 2400 2700 2400 2400 4 0 0 10 0 0 16 0.0000 4 150 120 2500 2640 4\001 -6 6 3300 2400 3600 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 2400 3600 2400 3600 2700 3300 2700 3300 2400 4 0 0 10 0 0 16 0.0000 4 150 120 3400 2640 8\001 -6 6 4200 2400 4500 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 2400 4500 2400 4500 2700 4200 2700 4200 2400 -6 6 2700 2400 3000 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 2400 3000 2400 3000 2700 2700 2700 2700 2400 4 0 0 10 0 0 16 0.0000 4 150 120 2800 2640 5\001 -6 6 3000 2400 3300 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 2400 3300 2400 3300 2700 3000 2700 3000 2400 4 0 0 10 0 0 16 0.0000 4 165 120 3100 2640 6\001 -6 6 1800 1800 2100 2100 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1800 2100 1800 2100 2100 1800 2100 1800 1800 4 0 0 10 0 0 16 0.0000 4 150 120 1900 2040 7\001 -6 6 1800 600 2100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 600 2100 600 2100 900 1800 900 1800 600 4 0 0 10 0 0 16 0.0000 4 150 120 1900 840 2\001 -6 6 2100 600 2400 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 600 2400 600 2400 900 2100 900 2100 600 4 0 0 10 0 0 16 0.0000 4 150 120 2200 840 3\001 -6 6 3000 600 3300 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 600 3300 600 3300 900 3000 900 3000 600 4 0 0 10 0 0 16 0.0000 4 150 120 3100 840 4\001 -6 6 3600 600 3900 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 600 3900 600 3900 900 3600 900 3600 600 4 0 0 10 0 0 16 0.0000 4 150 120 3700 840 8\001 -6 6 3900 600 4200 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 600 4200 600 4200 900 3900 900 3900 600 4 0 0 10 0 0 16 0.0000 4 150 120 4000 840 7\001 -6 6 4200 600 4500 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 600 4500 600 4500 900 4200 900 4200 600 4 0 0 10 0 0 16 0.0000 4 165 120 4300 840 1\001 -6 6 2700 600 3000 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 600 3000 600 3000 900 2700 900 2700 600 4 0 0 10 0 0 16 0.0000 4 165 120 2800 840 6\001 -6 6 2100 1200 2400 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 1200 2400 1200 2400 1500 2100 1500 2100 1200 4 0 0 10 0 0 16 0.0000 4 165 120 2200 1440 1\001 -6 6 2400 1200 2700 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 1200 2700 1200 2700 1500 2400 1500 2400 1200 4 0 0 10 0 0 16 0.0000 4 150 120 2500 1440 2\001 -6 6 3300 1200 3600 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 1200 3600 1200 3600 1500 3300 1500 3300 1200 4 0 0 10 0 0 16 0.0000 4 150 120 3400 1440 4\001 -6 6 2700 1200 3000 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 1200 3000 1200 3000 1500 2700 1500 2700 1200 4 0 0 10 0 0 16 0.0000 4 150 120 2800 1440 5\001 -6 6 3900 2400 4200 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 2400 4200 2400 4200 2700 3900 2700 3900 2400 4 0 0 15 0 0 16 0.0000 4 165 240 3925 2640 13\001 -6 6 4500 2400 4800 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 2400 4800 2400 4800 2700 4500 2700 4500 2400 -6 6 1800 3000 2100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3000 2100 3000 2100 3300 1800 3300 1800 3000 4 0 0 10 0 0 16 0.0000 4 150 120 1900 3240 3\001 -6 6 2100 3000 2400 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3000 2400 3000 2400 3300 2100 3300 2100 3000 4 0 0 10 0 0 16 0.0000 4 150 120 2200 3240 3\001 -6 6 2400 3000 2700 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3000 2700 3000 2700 3300 2400 3300 2400 3000 4 0 0 10 0 0 16 0.0000 4 150 120 2500 3240 7\001 -6 6 3000 3000 3300 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3000 3300 3000 3300 3300 3000 3300 3000 3000 4 0 0 10 0 0 16 0.0000 4 165 120 3100 3240 6\001 -6 6 3300 3000 3600 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3000 3600 3000 3600 3300 3300 3300 3300 3000 4 0 0 10 0 0 16 0.0000 4 150 120 3400 3240 7\001 -6 6 2700 3000 3000 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3000 3000 3000 3000 3300 2700 3300 2700 3000 4 0 0 10 0 0 16 0.0000 4 165 120 2800 3240 6\001 -6 6 4800 600 5100 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 600 5100 600 5100 900 4800 900 4800 600 4 0 0 10 0 0 16 0.0000 4 150 120 4900 840 5\001 -6 6 5100 600 5400 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 600 5400 600 5400 900 5100 900 5100 600 4 0 0 10 0 0 16 0.0000 4 150 120 5200 840 9\001 -6 6 4800 2400 5100 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 2400 5100 2400 5100 2700 4800 2700 4800 2400 -6 6 5100 2400 5400 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 2400 5400 2400 5400 2700 5100 2700 5100 2400 -6 6 5400 2400 5700 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5400 2400 5700 2400 5700 2700 5400 2700 5400 2400 -6 6 12150 750 12450 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12300 900 150 150 12300 900 12450 900 4 0 0 8 0 0 16 0.0000 4 165 240 12170 990 10\001 -6 6 11100 1786 11414 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11257 1943 150 150 11257 1943 11407 1943 4 0 0 8 0 0 16 0.0000 4 165 240 11127 2033 11\001 -6 6 11100 2836 11414 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11257 2993 150 150 11257 2993 11407 2993 4 0 0 8 0 0 16 0.0000 4 165 240 11127 3083 12\001 -6 6 10050 2850 10350 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10200 3000 150 150 10200 3000 10350 3000 4 0 0 10 0 0 16 0.0000 4 165 120 10150 3090 1\001 -6 6 10050 750 10350 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10200 900 150 150 10200 900 10350 900 4 0 0 10 0 0 16 0.0000 4 150 120 10150 990 2\001 -6 6 11100 750 11400 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 11250 900 150 150 11250 900 11400 900 4 0 0 10 0 0 16 0.0000 4 150 120 11200 990 3\001 -6 6 13125 2836 13439 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 13282 2993 150 150 13282 2993 13432 2993 4 0 0 10 0 0 16 0.0000 4 150 120 13232 3083 9\001 -6 6 12150 1786 12464 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12307 1943 150 150 12307 1943 12457 1943 4 0 0 10 0 0 16 0.0000 4 150 120 12257 2033 8\001 -6 6 13125 1786 13439 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 13282 1943 150 150 13282 1943 13432 1943 4 0 0 10 0 0 16 0.0000 4 150 120 13232 2033 7\001 -6 6 13125 736 13439 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 13282 893 150 150 13282 893 13432 893 4 0 0 10 0 0 16 0.0000 4 165 120 13232 983 6\001 -6 6 12150 2836 12464 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 12307 2993 150 150 12307 2993 12457 2993 4 0 0 10 0 0 16 0.0000 4 150 120 12257 3083 5\001 -6 6 10050 1786 10364 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 10207 1943 150 150 10207 1943 10357 1943 4 0 0 10 0 0 16 0.0000 4 150 120 10157 2033 4\001 -6 6 6225 750 6525 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6375 900 150 150 6375 900 6525 900 4 0 0 10 0 0 16 0.0000 4 165 120 6325 990 1\001 -6 6 6218 1793 6532 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6375 1950 150 150 6375 1950 6525 1950 4 0 0 10 0 0 16 0.0000 4 150 120 6325 2040 5\001 -6 6 7275 750 7575 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 900 150 150 7425 900 7575 900 4 0 0 10 0 0 16 0.0000 4 150 120 7375 990 2\001 -6 6 7268 1793 7582 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 1950 150 150 7425 1950 7575 1950 4 0 0 10 0 0 16 0.0000 4 165 120 7375 2040 6\001 -6 6 6218 2843 6532 3157 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6375 3000 150 150 6375 3000 6525 3000 4 0 0 10 0 0 16 0.0000 4 150 120 6325 3090 9\001 -6 6 9293 743 9607 1057 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9450 900 150 150 9450 900 9600 900 4 0 0 10 0 0 16 0.0000 4 150 120 9400 990 4\001 -6 6 9293 1793 9607 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9450 1950 150 150 9450 1950 9600 1950 4 0 0 10 0 0 16 0.0000 4 150 120 9400 2040 8\001 -6 6 8325 750 8625 1050 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8475 900 150 150 8475 900 8625 900 4 0 0 10 0 0 16 0.0000 4 150 120 8425 990 3\001 -6 6 8318 1793 8632 2107 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8475 1950 150 150 8475 1950 8625 1950 4 0 0 10 0 0 16 0.0000 4 150 120 8425 2040 7\001 -6 6 7275 2850 7575 3150 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7425 3000 150 150 7425 3000 7575 3000 4 0 0 8 0 0 16 0.0000 4 165 240 7295 3090 10\001 -6 6 8318 2843 8632 3157 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8475 3000 150 150 8475 3000 8625 3000 4 0 0 8 0 0 16 0.0000 4 165 240 8345 3090 11\001 -6 6 9293 2843 9607 3157 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 9450 3000 150 150 9450 3000 9600 3000 4 0 0 8 0 0 16 0.0000 4 165 240 9320 3090 12\001 -6 6 2400 600 2700 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 600 2700 600 2700 900 2400 900 2400 600 4 0 0 15 0 0 16 0.0000 4 165 240 2425 840 10\001 -6 6 3300 600 3600 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 600 3600 600 3600 900 3300 900 3300 600 4 0 0 15 0 0 16 0.0000 4 165 240 3325 840 11\001 -6 6 4500 600 4800 900 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 600 4800 600 4800 900 4500 900 4500 600 4 0 0 15 0 0 16 0.0000 4 165 240 4525 840 12\001 -6 6 4500 1200 4800 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 1200 4800 1200 4800 1500 4500 1500 4500 1200 4 0 0 10 0 0 16 0.0000 4 150 120 4600 1440 3\001 -6 6 4800 1200 5100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 1200 5100 1200 5100 1500 4800 1500 4800 1200 4 0 0 10 0 0 16 0.0000 4 165 120 4900 1440 6\001 -6 6 3900 1200 4200 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 1200 4200 1200 4200 1500 3900 1500 3900 1200 4 0 0 10 0 0 16 0.0000 4 150 120 4000 1440 7\001 -6 6 3600 1200 3900 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 1200 3900 1200 3900 1500 3600 1500 3600 1200 4 0 0 10 0 0 16 0.0000 4 150 120 3700 1440 8\001 -6 6 1800 1200 2100 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 1200 2100 1200 2100 1500 1800 1500 1800 1200 4 0 0 10 0 0 16 0.0000 4 150 120 1900 1440 9\001 -6 6 5100 1200 5400 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 1200 5400 1200 5400 1500 5100 1500 5100 1200 4 0 0 15 0 0 16 0.0000 4 165 240 5125 1440 10\001 -6 6 3000 1200 3300 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 1200 3300 1200 3300 1500 3000 1500 3000 1200 4 0 0 15 0 0 16 0.0000 4 165 240 3025 1440 11\001 -6 6 4200 1200 4500 1500 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 1200 4500 1200 4500 1500 4200 1500 4200 1200 4 0 0 15 0 0 16 0.0000 4 165 240 4225 1440 12\001 -6 6 3600 2400 3900 2700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 2400 3900 2400 3900 2700 3600 2700 3600 2400 4 0 0 15 0 0 16 0.0000 4 165 240 3625 2640 10\001 -6 6 3600 3000 3900 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3000 3900 3000 3900 3300 3600 3300 3600 3000 4 0 0 15 0 0 16 0.0000 4 165 195 3625 3240 -1\001 -6 6 3900 3000 4200 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 3000 4200 3000 4200 3300 3900 3300 3900 3000 -6 6 4200 3000 4500 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 3000 4500 3000 4500 3300 4200 3300 4200 3000 -6 6 4500 3000 4800 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4500 3000 4800 3000 4800 3300 4500 3300 4500 3000 -6 6 4800 3000 5100 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4800 3000 5100 3000 5100 3300 4800 3300 4800 3000 -6 6 5100 3000 5400 3300 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 5100 3000 5400 3000 5400 3300 5100 3300 5100 3000 -6 2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 10425 2175 10425 1725 9975 1725 9975 2175 10425 2175 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 10200 900 10200 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 6 10200 900 13275 900 13275 3000 10200 3000 10200 1950 13275 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 11250 900 11250 3000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 12300 900 12300 3000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 6375 900 6375 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 6 6300 900 9450 900 9450 3000 6375 3000 6375 1950 9450 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 7425 900 7425 3000 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 8475 900 8475 3000 3 1 0 1 0 7 50 -1 -1 0.000 0 0 0 16 11025 3150 11100 3225 11400 3225 11475 3150 11475 1800 11550 1725 12450 1125 12525 1050 12525 750 12450 675 12150 675 12075 750 12075 1050 12000 1125 11100 1725 11025 1800 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 3 1 0 1 0 7 50 -1 -1 0.000 0 0 0 12 12150 1725 12450 1725 12525 1800 13425 2775 13500 2850 13500 3150 13425 3225 13125 3225 13050 3150 12150 2175 12075 2100 12075 1800 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 4 0 0 20 0 12 14 0.0000 4 195 945 600 1425 peritab\001 4 0 0 20 0 12 14 0.0000 4 150 945 600 2025 cblknbr\001 4 0 0 20 0 12 14 0.0000 4 195 945 600 2625 rangtab\001 4 0 0 20 0 12 14 0.0000 4 150 945 600 3225 treetab\001 4 0 0 20 0 12 14 0.0000 4 195 945 600 825 permtab\001 4 0 0 10 0 2 16 0.0000 4 150 120 9900 3150 1\001 4 0 0 10 0 2 16 0.0000 4 150 120 9900 1050 2\001 4 0 0 10 0 2 16 0.0000 4 150 120 9900 2325 3\001 4 0 0 10 0 2 16 0.0000 4 150 120 12000 3300 4\001 4 0 0 10 0 2 16 0.0000 4 150 120 12975 1200 5\001 4 0 0 10 0 2 16 0.0000 4 165 120 11925 2250 6\001 4 0 0 10 0 2 16 0.0000 4 150 120 10950 1725 7\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_orf.eps000066400000000000000000000407221514310134000261260ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_orf.fig %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Thu Dec 30 05:26:16 2004 %%For: pelegrin@localhost (Francois PELLEGRINI) %%BoundingBox: 0 0 479 337 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 337 moveto 0 0 lineto 479 0 lineto 479 337 lineto closepath clip newpath -35.5 360.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 20 % Polyline 7.500 slw n 3750 1950 m 3150 3150 l gs col0 s gr % Polyline n 1350 1950 m 1950 750 l 2550 1950 l 1350 1950 l 1950 3150 l 2550 1950 l 3150 750 l 1950 750 l gs col0 s gr % Polyline n 1950 3150 m 3150 3150 l 2550 1950 l 3750 1950 l gs col0 s gr % Polyline n 1950 3150 m 750 3150 l 1350 1950 l gs col0 s gr % Polyline n 8250 1950 m 7650 3150 l gs col0 s gr % Polyline n 6450 3150 m 7650 3150 l 7050 1950 l 8250 1950 l gs col0 s gr % Polyline n 6450 3150 m 5250 3150 l 5850 1950 l gs col0 s gr % Polyline n 5850 1950 m 6450 750 l 7050 1950 l 5850 1950 l 6450 3150 l 7050 1950 l 7650 750 l 6450 750 l gs col0 s gr % Ellipse n 5850 1950 382 382 0 360 DrawEllipse gs col0 s gr % Ellipse n 5250 3150 375 375 0 360 DrawEllipse gs col0 s gr % Polyline 2 slj n 7350 1850 m 7349 1876 l 7348 1903 l 7345 1932 l 7341 1962 l 7336 1993 l 7330 2026 l 7323 2060 l 7315 2096 l 7306 2132 l 7295 2170 l 7284 2209 l 7271 2249 l 7258 2290 l 7244 2332 l 7228 2375 l 7212 2418 l 7195 2462 l 7177 2506 l 7158 2550 l 7139 2594 l 7119 2638 l 7099 2682 l 7078 2725 l 7057 2768 l 7036 2810 l 7014 2851 l 6992 2891 l 6970 2930 l 6948 2968 l 6925 3004 l 6903 3040 l 6881 3074 l 6859 3107 l 6837 3138 l 6815 3168 l 6793 3197 l 6772 3224 l 6750 3250 l 6730 3272 l 6711 3294 l 6691 3314 l 6671 3334 l 6651 3352 l 6631 3369 l 6611 3386 l 6591 3402 l 6571 3416 l 6551 3430 l 6531 3442 l 6511 3453 l 6491 3464 l 6472 3473 l 6452 3481 l 6433 3487 l 6414 3493 l 6395 3497 l 6377 3500 l 6359 3502 l 6342 3503 l 6325 3502 l 6308 3500 l 6293 3497 l 6278 3493 l 6264 3487 l 6250 3481 l 6237 3473 l 6226 3464 l 6214 3453 l 6204 3442 l 6195 3430 l 6186 3416 l 6179 3402 l 6172 3386 l 6166 3369 l 6161 3352 l 6157 3334 l 6154 3314 l 6152 3294 l 6150 3272 l 6150 3250 l 6151 3224 l 6152 3197 l 6155 3168 l 6159 3138 l 6164 3107 l 6170 3074 l 6177 3040 l 6185 3004 l 6194 2968 l 6205 2930 l 6216 2891 l 6229 2851 l 6242 2810 l 6256 2768 l 6272 2725 l 6288 2682 l 6305 2638 l 6323 2594 l 6342 2550 l 6361 2506 l 6381 2462 l 6401 2418 l 6422 2375 l 6443 2332 l 6464 2290 l 6486 2249 l 6508 2209 l 6530 2170 l 6552 2132 l 6575 2096 l 6597 2060 l 6619 2026 l 6641 1993 l 6663 1962 l 6685 1932 l 6707 1903 l 6728 1876 l 6750 1850 l 6770 1828 l 6789 1806 l 6809 1786 l 6829 1766 l 6849 1748 l 6869 1731 l 6889 1714 l 6909 1698 l 6929 1684 l 6949 1670 l 6969 1658 l 6989 1647 l 7009 1636 l 7028 1627 l 7048 1619 l 7067 1613 l 7086 1607 l 7105 1603 l 7123 1600 l 7141 1598 l 7158 1597 l 7175 1598 l 7192 1600 l 7207 1603 l 7222 1607 l 7236 1613 l 7250 1619 l 7263 1627 l 7274 1636 l 7286 1647 l 7296 1658 l 7305 1670 l 7314 1684 l 7321 1698 l 7328 1714 l 7334 1731 l 7339 1748 l 7343 1766 l 7346 1786 l 7348 1806 l 7350 1828 l cp gs col0 s gr % Polyline n 6350 1000 m 6377 1009 l 6406 1018 l 6437 1026 l 6469 1034 l 6502 1042 l 6537 1049 l 6574 1055 l 6612 1061 l 6651 1066 l 6692 1071 l 6734 1076 l 6777 1080 l 6821 1083 l 6865 1086 l 6911 1088 l 6957 1089 l 7003 1090 l 7050 1090 l 7097 1090 l 7143 1089 l 7189 1088 l 7235 1086 l 7279 1083 l 7323 1080 l 7366 1076 l 7408 1071 l 7449 1066 l 7488 1061 l 7526 1055 l 7563 1049 l 7598 1042 l 7631 1034 l 7663 1026 l 7694 1018 l 7723 1009 l 7750 1000 l 7772 992 l 7794 983 l 7814 974 l 7834 964 l 7852 954 l 7869 944 l 7886 933 l 7902 922 l 7916 910 l 7930 899 l 7942 886 l 7953 874 l 7964 861 l 7973 848 l 7981 834 l 7987 820 l 7993 807 l 7997 793 l 8000 778 l 8002 764 l 8003 750 l 8002 736 l 8000 722 l 7997 707 l 7993 693 l 7987 680 l 7981 666 l 7973 652 l 7964 639 l 7953 626 l 7942 614 l 7930 601 l 7916 590 l 7902 578 l 7886 567 l 7869 556 l 7852 546 l 7834 536 l 7814 526 l 7794 517 l 7772 508 l 7750 500 l 7723 491 l 7694 482 l 7663 474 l 7631 466 l 7598 458 l 7563 451 l 7526 445 l 7488 439 l 7449 434 l 7408 429 l 7366 424 l 7323 420 l 7279 417 l 7235 414 l 7189 412 l 7143 411 l 7097 410 l 7050 410 l 7003 410 l 6957 411 l 6911 412 l 6865 414 l 6821 417 l 6777 420 l 6734 424 l 6692 429 l 6651 434 l 6612 439 l 6574 445 l 6537 451 l 6502 458 l 6469 466 l 6437 474 l 6406 482 l 6377 491 l 6350 500 l 6328 508 l 6306 517 l 6286 526 l 6266 536 l 6248 546 l 6231 556 l 6214 567 l 6198 578 l 6184 590 l 6170 601 l 6158 614 l 6147 626 l 6136 639 l 6127 652 l 6119 666 l 6113 680 l 6107 693 l 6103 707 l 6100 722 l 6098 736 l 6097 750 l 6098 764 l 6100 778 l 6103 793 l 6107 807 l 6113 820 l 6119 834 l 6127 848 l 6136 861 l 6147 874 l 6158 886 l 6170 899 l 6184 910 l 6198 922 l 6214 933 l 6231 944 l 6248 954 l 6266 964 l 6286 974 l 6306 983 l 6328 992 l cp gs col0 s gr % Polyline n 8550 1850 m 8549 1876 l 8548 1903 l 8545 1932 l 8541 1962 l 8536 1993 l 8530 2026 l 8523 2060 l 8515 2096 l 8506 2132 l 8495 2170 l 8484 2209 l 8471 2249 l 8458 2290 l 8444 2332 l 8428 2375 l 8412 2418 l 8395 2462 l 8377 2506 l 8358 2550 l 8339 2594 l 8319 2638 l 8299 2682 l 8278 2725 l 8257 2768 l 8236 2810 l 8214 2851 l 8192 2891 l 8170 2930 l 8148 2968 l 8125 3004 l 8103 3040 l 8081 3074 l 8059 3107 l 8037 3138 l 8015 3168 l 7993 3197 l 7972 3224 l 7950 3250 l 7930 3272 l 7911 3294 l 7891 3314 l 7871 3334 l 7851 3352 l 7831 3369 l 7811 3386 l 7791 3402 l 7771 3416 l 7751 3430 l 7731 3442 l 7711 3453 l 7691 3464 l 7672 3473 l 7652 3481 l 7633 3487 l 7614 3493 l 7595 3497 l 7577 3500 l 7559 3502 l 7542 3503 l 7525 3502 l 7508 3500 l 7493 3497 l 7478 3493 l 7464 3487 l 7450 3481 l 7437 3473 l 7426 3464 l 7414 3453 l 7404 3442 l 7395 3430 l 7386 3416 l 7379 3402 l 7372 3386 l 7366 3369 l 7361 3352 l 7357 3334 l 7354 3314 l 7352 3294 l 7350 3272 l 7350 3250 l 7351 3224 l 7352 3197 l 7355 3168 l 7359 3138 l 7364 3107 l 7370 3074 l 7377 3040 l 7385 3004 l 7394 2968 l 7405 2930 l 7416 2891 l 7429 2851 l 7442 2810 l 7456 2768 l 7472 2725 l 7488 2682 l 7505 2638 l 7523 2594 l 7542 2550 l 7561 2506 l 7581 2462 l 7601 2418 l 7622 2375 l 7643 2332 l 7664 2290 l 7686 2249 l 7708 2209 l 7730 2170 l 7752 2132 l 7775 2096 l 7797 2060 l 7819 2026 l 7841 1993 l 7863 1962 l 7885 1932 l 7907 1903 l 7928 1876 l 7950 1850 l 7970 1828 l 7989 1806 l 8009 1786 l 8029 1766 l 8049 1748 l 8069 1731 l 8089 1714 l 8109 1698 l 8129 1684 l 8149 1670 l 8169 1658 l 8189 1647 l 8209 1636 l 8228 1627 l 8248 1619 l 8267 1613 l 8286 1607 l 8305 1603 l 8323 1600 l 8341 1598 l 8358 1597 l 8375 1598 l 8392 1600 l 8407 1603 l 8422 1607 l 8436 1613 l 8450 1619 l 8463 1627 l 8474 1636 l 8486 1647 l 8496 1658 l 8505 1670 l 8514 1684 l 8521 1698 l 8528 1714 l 8534 1731 l 8539 1748 l 8543 1766 l 8546 1786 l 8548 1806 l 8550 1828 l cp gs col0 s gr /Courier ff 210.00 scf sf 600 5925 m gs 1 -1 sc (rangtab) col0 sh gr /Courier ff 210.00 scf sf 600 4125 m gs 1 -1 sc (permtab) col0 sh gr /Courier ff 210.00 scf sf 600 4725 m gs 1 -1 sc (peritab) col0 sh gr /Courier ff 210.00 scf sf 600 5325 m gs 1 -1 sc (cblknbr) col0 sh gr % here ends figure; % % here starts figure with depth 15 % Polyline 7.500 slw n 1800 5700 m 2100 5700 l 2100 6000 l 1800 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 5700 m 2400 5700 l 2400 6000 l 2100 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 5700 m 2700 5700 l 2700 6000 l 2400 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 2500 5940 m gs 1 -1 sc (4) col0 sh gr % Polyline n 2700 5700 m 3000 5700 l 3000 6000 l 2700 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 5700 m 3300 5700 l 3300 6000 l 3000 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 5700 m 3600 5700 l 3600 6000 l 3300 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 3900 m 2100 3900 l 2100 4200 l 1800 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 3900 m 2400 3900 l 2400 4200 l 2100 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 3900 m 2700 3900 l 2700 4200 l 2400 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 3900 m 3000 3900 l 3000 4200 l 2700 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 3900 m 3300 3900 l 3300 4200 l 3000 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 3900 m 3600 3900 l 3600 4200 l 3300 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3400 4140 m gs 1 -1 sc (4) col0 sh gr % Polyline n 3600 3900 m 3900 3900 l 3900 4200 l 3600 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 3900 m 4200 3900 l 4200 4200 l 3900 4200 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 4500 m 2100 4500 l 2100 4800 l 1800 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2100 4500 m 2400 4500 l 2400 4800 l 2100 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2400 4500 m 2700 4500 l 2700 4800 l 2400 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 2700 4500 m 3000 4500 l 3000 4800 l 2700 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3000 4500 m 3300 4500 l 3300 4800 l 3000 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3300 4500 m 3600 4500 l 3600 4800 l 3300 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 4500 m 3900 4500 l 3900 4800 l 3600 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman ff 240.00 scf sf 3700 4740 m gs 1 -1 sc (4) col0 sh gr % Polyline n 3900 4500 m 4200 4500 l 4200 4800 l 3900 4800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 1800 5100 m 2100 5100 l 2100 5400 l 1800 5400 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3600 5700 m 3900 5700 l 3900 6000 l 3600 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 3900 5700 m 4200 5700 l 4200 6000 l 3900 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4200 5700 m 4500 5700 l 4500 6000 l 4200 6000 l cp gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 12 % Ellipse 7.500 slw n 2550 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3150 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 1950 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 1350 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3750 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 750 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 3150 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 1950 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6450 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7650 750 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 8250 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5850 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7650 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 5250 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7050 1950 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6450 3150 150 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % here ends figure; % % here starts figure with depth 10 /Times-Roman ff 240.00 scf sf 2500 2040 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 840 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 1300 2040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 2040 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 700 3240 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 3240 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 840 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 840 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 8200 2040 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 5800 2040 m gs 1 -1 sc (4) col0 sh gr /Times-Roman ff 240.00 scf sf 7600 3240 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 5200 3240 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 7000 2040 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 5940 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 5940 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 5940 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 5940 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 5940 m gs 1 -1 sc (9) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 4140 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 4140 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 4140 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 4140 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 4140 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3700 4140 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 4140 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 4740 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 2200 4740 m gs 1 -1 sc (8) col0 sh gr /Times-Roman ff 240.00 scf sf 2500 4740 m gs 1 -1 sc (5) col0 sh gr /Times-Roman ff 240.00 scf sf 2800 4740 m gs 1 -1 sc (6) col0 sh gr /Times-Roman ff 240.00 scf sf 3100 4740 m gs 1 -1 sc (3) col0 sh gr /Times-Roman ff 240.00 scf sf 3400 4740 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 240.00 scf sf 4000 4740 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 240.00 scf sf 1900 5340 m gs 1 -1 sc (5) col0 sh gr % here ends figure; % % here starts figure with depth 8 /Times-Roman ff 240.00 scf sf 1900 840 m gs 1 -1 sc (7) col0 sh gr /Times-Roman ff 240.00 scf sf 6400 3240 m gs 1 -1 sc (7) col0 sh gr % here ends figure; $F2psEnd rs showpage scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_orf.fig000066400000000000000000000172271514310134000261100ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 600 600 3900 3300 6 2400 1800 2700 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 2550 1950 150 150 2550 1950 2700 1950 4 0 0 10 0 0 16 0.0000 4 165 120 2500 2040 1\001 -6 6 3000 600 3300 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3150 750 150 150 3150 750 3300 750 4 0 0 10 0 0 16 0.0000 4 150 120 3100 840 8\001 -6 6 1800 600 2100 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 1950 750 150 150 1950 750 2100 750 4 0 0 8 0 0 16 0.0000 4 150 120 1900 840 7\001 -6 6 1200 1800 1500 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 1350 1950 150 150 1350 1950 1500 1950 4 0 0 10 0 0 16 0.0000 4 165 120 1300 2040 6\001 -6 6 3600 1800 3900 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3750 1950 150 150 3750 1950 3900 1950 4 0 0 10 0 0 16 0.0000 4 150 120 3700 2040 2\001 -6 6 600 3000 900 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 750 3150 150 150 750 3150 900 3150 4 0 0 10 0 0 16 0.0000 4 150 120 700 3240 5\001 -6 6 3000 3000 3300 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 3150 3150 150 150 3150 3150 3300 3150 4 0 0 10 0 0 16 0.0000 4 150 120 3100 3240 3\001 -6 6 1800 3000 2100 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 1950 3150 150 150 1950 3150 2100 3150 4 0 0 10 0 0 16 0.0000 4 150 120 1900 3240 4\001 -6 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 3750 1950 3150 3150 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 8 1350 1950 1950 750 2550 1950 1350 1950 1950 3150 2550 1950 3150 750 1950 750 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 4 1950 3150 3150 3150 2550 1950 3750 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 3 1950 3150 750 3150 1350 1950 -6 6 4875 375 8850 3600 6 5100 600 8400 3300 6 6300 600 6600 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6450 750 150 150 6450 750 6600 750 4 0 0 10 0 0 16 0.0000 4 165 120 6400 840 1\001 -6 6 7500 600 7800 900 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7650 750 150 150 7650 750 7800 750 4 0 0 10 0 0 16 0.0000 4 150 120 7600 840 2\001 -6 6 8100 1800 8400 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 8250 1950 150 150 8250 1950 8400 1950 4 0 0 10 0 0 16 0.0000 4 165 120 8200 2040 6\001 -6 6 5700 1800 6000 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5850 1950 150 150 5850 1950 6000 1950 4 0 0 10 0 0 16 0.0000 4 150 120 5800 2040 4\001 -6 6 7500 3000 7800 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7650 3150 150 150 7650 3150 7800 3150 4 0 0 10 0 0 16 0.0000 4 150 120 7600 3240 5\001 -6 6 5100 3000 5400 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 5250 3150 150 150 5250 3150 5400 3150 4 0 0 10 0 0 16 0.0000 4 150 120 5200 3240 3\001 -6 6 6900 1800 7200 2100 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 7050 1950 150 150 7050 1950 7200 1950 4 0 0 10 0 0 16 0.0000 4 150 120 7000 2040 8\001 -6 6 6300 3000 6600 3300 1 3 0 1 0 7 12 0 20 0.000 1 0.0000 6450 3150 150 150 6450 3150 6600 3150 4 0 0 8 0 0 16 0.0000 4 150 120 6400 3240 7\001 -6 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 2 8250 1950 7650 3150 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 4 6450 3150 7650 3150 7050 1950 8250 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 -1 0 0 3 6450 3150 5250 3150 5850 1950 2 1 0 1 0 7 20 0 -1 0.000 0 0 7 0 0 8 5850 1950 6450 750 7050 1950 5850 1950 6450 3150 7050 1950 7650 750 6450 750 -6 1 3 0 1 0 7 20 0 -1 0.000 1 0.0000 5850 1950 382 382 5850 1950 6225 2025 1 3 0 1 0 7 20 0 -1 0.000 1 0.0000 5250 3150 375 375 5250 3150 5625 3150 3 1 0 1 0 7 20 0 -1 0.000 0 0 0 4 6750 1500 7650 1500 6750 3600 5850 3600 1.000 1.000 1.000 1.000 3 1 0 1 0 7 20 0 -1 0.000 0 0 0 4 6000 375 6000 1125 8100 1125 8100 375 1.000 1.000 1.000 1.000 3 1 0 1 0 7 20 0 -1 0.000 0 0 0 4 7950 1500 8850 1500 7950 3600 7050 3600 1.000 1.000 1.000 1.000 -6 6 1800 5700 2100 6000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 5700 2100 5700 2100 6000 1800 6000 1800 5700 4 0 0 10 0 0 16 0.0000 4 165 120 1900 5940 1\001 -6 6 2100 5700 2400 6000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 5700 2400 5700 2400 6000 2100 6000 2100 5700 4 0 0 10 0 0 16 0.0000 4 150 120 2200 5940 3\001 -6 6 2400 5700 2700 6000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 5700 2700 5700 2700 6000 2400 6000 2400 5700 4 0 0 15 0 0 16 0.0000 4 150 120 2500 5940 4\001 -6 6 2700 5700 3000 6000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 5700 3000 5700 3000 6000 2700 6000 2700 5700 4 0 0 10 0 0 16 0.0000 4 150 120 2800 5940 5\001 -6 6 3000 5700 3300 6000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 5700 3300 5700 3300 6000 3000 6000 3000 5700 4 0 0 10 0 0 16 0.0000 4 150 120 3100 5940 7\001 -6 6 3300 5700 3600 6000 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 5700 3600 5700 3600 6000 3300 6000 3300 5700 4 0 0 10 0 0 16 0.0000 4 150 120 3400 5940 9\001 -6 6 1800 3900 2100 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 3900 2100 3900 2100 4200 1800 4200 1800 3900 4 0 0 10 0 0 16 0.0000 4 150 120 1900 4140 8\001 -6 6 2100 3900 2400 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 3900 2400 3900 2400 4200 2100 4200 2100 3900 4 0 0 10 0 0 16 0.0000 4 165 120 2200 4140 6\001 -6 6 2400 3900 2700 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 3900 2700 3900 2700 4200 2400 4200 2400 3900 4 0 0 10 0 0 16 0.0000 4 150 120 2500 4140 5\001 -6 6 2700 3900 3000 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 3900 3000 3900 3000 4200 2700 4200 2700 3900 4 0 0 10 0 0 16 0.0000 4 150 120 2800 4140 7\001 -6 6 3000 3900 3300 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 3900 3300 3900 3300 4200 3000 4200 3000 3900 4 0 0 10 0 0 16 0.0000 4 150 120 3100 4140 3\001 -6 6 3300 3900 3600 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 3900 3600 3900 3600 4200 3300 4200 3300 3900 4 0 0 15 0 0 16 0.0000 4 150 120 3400 4140 4\001 -6 6 3600 3900 3900 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 3900 3900 3900 3900 4200 3600 4200 3600 3900 4 0 0 10 0 0 16 0.0000 4 165 120 3700 4140 1\001 -6 6 3900 3900 4200 4200 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 3900 4200 3900 4200 4200 3900 4200 3900 3900 4 0 0 10 0 0 16 0.0000 4 150 120 4000 4140 2\001 -6 6 1800 4500 2100 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 4500 2100 4500 2100 4800 1800 4800 1800 4500 4 0 0 10 0 0 16 0.0000 4 150 120 1900 4740 7\001 -6 6 2100 4500 2400 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2100 4500 2400 4500 2400 4800 2100 4800 2100 4500 4 0 0 10 0 0 16 0.0000 4 150 120 2200 4740 8\001 -6 6 2400 4500 2700 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2400 4500 2700 4500 2700 4800 2400 4800 2400 4500 4 0 0 10 0 0 16 0.0000 4 150 120 2500 4740 5\001 -6 6 2700 4500 3000 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 2700 4500 3000 4500 3000 4800 2700 4800 2700 4500 4 0 0 10 0 0 16 0.0000 4 165 120 2800 4740 6\001 -6 6 3000 4500 3300 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3000 4500 3300 4500 3300 4800 3000 4800 3000 4500 4 0 0 10 0 0 16 0.0000 4 150 120 3100 4740 3\001 -6 6 3300 4500 3600 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3300 4500 3600 4500 3600 4800 3300 4800 3300 4500 4 0 0 10 0 0 16 0.0000 4 150 120 3400 4740 2\001 -6 6 3600 4500 3900 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 4500 3900 4500 3900 4800 3600 4800 3600 4500 4 0 0 15 0 0 16 0.0000 4 150 120 3700 4740 4\001 -6 6 3900 4500 4200 4800 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 4500 4200 4500 4200 4800 3900 4800 3900 4500 4 0 0 10 0 0 16 0.0000 4 165 120 4000 4740 1\001 -6 6 1800 5100 2100 5400 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 1800 5100 2100 5100 2100 5400 1800 5400 1800 5100 4 0 0 10 0 0 16 0.0000 4 150 120 1900 5340 5\001 -6 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3600 5700 3900 5700 3900 6000 3600 6000 3600 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 3900 5700 4200 5700 4200 6000 3900 6000 3900 5700 2 2 0 1 0 7 15 0 20 0.000 0 0 7 0 0 5 4200 5700 4500 5700 4500 6000 4200 6000 4200 5700 4 0 0 20 0 12 14 0.0000 4 195 945 600 5925 rangtab\001 4 0 0 20 0 12 14 0.0000 4 195 945 600 4125 permtab\001 4 0 0 20 0 12 14 0.0000 4 195 945 600 4725 peritab\001 4 0 0 20 0 12 14 0.0000 4 150 945 600 5325 cblknbr\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out.xyz000066400000000000000000000001531514310134000262040ustar00rootroot000000000000002 16 0 0 3 1 1 3 2 2 3 3 3 3 4 0 2 5 1 2 6 2 2 7 3 2 8 0 1 9 1 1 10 2 1 11 3 1 12 0 0 13 1 0 14 2 0 15 3 0 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out1.ps000066400000000000000000000020331514310134000260540ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_out2.src s_f_out.xyz - %%Creator: out (F. Pellegrini, LaBRI, Bordeaux) %%CreationDate: Tue Oct 3 15:47:42 1995 %%BoundingBox: 0 0 475 475 %%Pages: 0 %%EndComments /A { 0 360 arc fill } bind def /c { setrgbcolor } bind def /g { setgray } bind def /L { lineto stroke } bind def /l { lineto } bind def /m { moveto } bind def /n { newpath } bind def gsave 1 setlinecap 0.007200 0.007200 scale n 0 0 m 66000 0 l 66000 66000 l 0 66000 l closepath clip 0 g n 8250 57750 m 24750 57750 L n 8250 57750 m 8250 41250 L n 24750 57750 m 24750 41250 L n 57750 57750 m 57750 41250 L n 8250 41250 m 24750 41250 L n 8250 41250 m 8250 24750 L n 24750 41250 m 24750 24750 L n 57750 41250 m 57750 24750 L n 8250 24750 m 24750 24750 L n 8250 24750 m 8250 8250 L n 24750 24750 m 41250 24750 L n 24750 24750 m 24750 8250 L n 41250 24750 m 57750 24750 L n 41250 24750 m 41250 8250 L n 57750 24750 m 57750 8250 L n 8250 8250 m 24750 8250 L n 24750 8250 m 41250 8250 L n 41250 8250 m 57750 8250 L grestore scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out1.src000066400000000000000000000004751514310134000262310ustar00rootroot0000000000000016 48 0 1 2 1 1 1 4 1 1 3 1 0 1 2 1 5 2 1 3 1 1 1 3 1 6 3 1 2 1 2 1 7 4 1 3 1 0 1 5 1 8 5 1 4 1 1 1 4 1 6 1 9 6 1 4 1 2 1 5 1 7 1 10 7 1 3 1 3 1 6 1 11 8 1 3 1 4 1 9 1 12 9 1 4 1 5 1 8 1 10 1 13 10 1 4 1 6 1 9 1 11 1 14 11 1 3 1 7 1 10 1 15 12 1 2 1 8 1 13 13 1 3 1 9 1 12 1 14 14 1 3 1 10 1 13 1 15 15 1 2 1 11 1 14 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out2.map000066400000000000000000000004331514310134000262120ustar00rootroot0000000000000014 0 1 1 1 3 0 4 1 5 1 7 0 8 1 9 1 10 0 11 0 12 1 13 0 14 0 15 0 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out2.ps000066400000000000000000000031201514310134000260530ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_out1.src s_f_out.xyz s_f_out2.map %%Creator: out (F. Pellegrini, LaBRI, Bordeaux) %%CreationDate: Tue Oct 3 15:43:56 1995 %%BoundingBox: 0 0 475 475 %%Pages: 0 %%EndComments /A { 0 360 arc fill } bind def /c { setrgbcolor } bind def /g { setgray } bind def /L { lineto stroke } bind def /l { lineto } bind def /m { moveto } bind def /n { newpath } bind def gsave 1 setlinecap 0.007200 0.007200 scale n 0 0 m 66000 0 l 66000 66000 l 0 66000 l closepath clip 0 g n 8250 57750 m 24750 57750 L n 8250 57750 m 8250 41250 L n 24750 57750 m 41250 57750 L n 24750 57750 m 24750 41250 L n 41250 57750 m 57750 57750 L n 41250 57750 m 41250 41250 L n 57750 57750 m 57750 41250 L n 8250 41250 m 24750 41250 L n 8250 41250 m 8250 24750 L n 24750 41250 m 41250 41250 L n 24750 41250 m 24750 24750 L n 41250 41250 m 57750 41250 L n 41250 41250 m 41250 24750 L n 57750 41250 m 57750 24750 L n 8250 24750 m 24750 24750 L n 8250 24750 m 8250 8250 L n 24750 24750 m 41250 24750 L n 24750 24750 m 24750 8250 L n 41250 24750 m 57750 24750 L n 41250 24750 m 41250 8250 L n 57750 24750 m 57750 8250 L n 8250 8250 m 24750 8250 L n 24750 8250 m 41250 8250 L n 41250 8250 m 57750 8250 L 0 0 0 c n 8250 57750 8249 A 0 0 0 c n 24750 57750 8249 A 1 0.5 0.5 c n 57750 57750 8249 A 0 0 0 c n 8250 41250 8249 A n 24750 41250 8249 A 1 0.5 0.5 c n 57750 41250 8249 A 0 0 0 c n 8250 24750 8249 A n 24750 24750 8249 A 1 0.5 0.5 c n 41250 24750 8249 A n 57750 24750 8249 A 0 0 0 c n 8250 8250 8249 A 1 0.5 0.5 c n 24750 8250 8249 A n 41250 8250 8249 A n 57750 8250 8249 A grestore scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out2.src000066400000000000000000000004001514310134000262160ustar00rootroot0000000000000014 36 0 1 2 1 1 1 4 1 1 2 1 0 1 5 3 1 1 1 7 4 1 3 1 0 1 5 1 8 5 1 3 1 1 1 4 1 9 7 1 2 1 3 1 11 8 1 3 1 4 1 9 1 12 9 1 4 1 5 1 8 1 10 1 13 10 1 3 1 9 1 11 1 14 11 1 3 1 7 1 10 1 15 12 1 2 1 8 1 13 13 1 3 1 9 1 12 1 14 14 1 3 1 10 1 13 1 15 15 1 2 1 11 1 14 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out3.ps000066400000000000000000000022451514310134000260630ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: s_f_out3.src s_f_out.xyz s_f_out2.map %%Creator: out (F. Pellegrini, LaBRI, Bordeaux) %%CreationDate: Tue Oct 3 15:48:38 1995 %%BoundingBox: 0 0 475 475 %%Pages: 0 %%EndComments /A { 0 360 arc fill } bind def /c { setrgbcolor } bind def /g { setgray } bind def /L { lineto stroke } bind def /l { lineto } bind def /m { moveto } bind def /n { newpath } bind def gsave 1 setlinecap 0.007200 0.007200 scale n 0 0 m 66000 0 l 66000 66000 l 0 66000 l closepath clip 0 g n 8250 57750 m 24750 57750 L n 8250 57750 m 8250 41250 L n 24750 57750 m 24750 41250 L n 57750 57750 m 57750 41250 L n 8250 41250 m 24750 41250 L n 24750 41250 m 24750 24750 L n 57750 41250 m 57750 24750 L n 24750 24750 m 41250 24750 L n 41250 24750 m 57750 24750 L n 41250 24750 m 41250 8250 L n 57750 24750 m 57750 8250 L n 41250 8250 m 57750 8250 L 0 0 0 c n 8250 57750 8249 A 0 0 0 c n 24750 57750 8249 A 1 0.5 0.5 c n 57750 57750 8249 A 0 0 0 c n 8250 41250 8249 A n 24750 41250 8249 A 1 0.5 0.5 c n 57750 41250 8249 A 0 0 0 c n 24750 24750 8250 A 1 0.5 0.5 c n 41250 24750 8249 A n 57750 24750 8249 A n 41250 8250 8249 A n 57750 8250 8249 A grestore scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_out3.src000066400000000000000000000002661514310134000262310ustar00rootroot0000000000000011 24 0 1 2 1 1 1 4 1 1 2 1 0 1 5 3 1 1 1 7 4 1 2 1 0 1 5 5 1 3 1 1 1 4 1 9 7 1 2 1 3 1 11 9 1 2 1 5 1 10 10 1 3 1 9 1 11 1 14 11 1 3 1 7 1 10 1 15 14 1 2 1 10 1 15 15 1 2 1 11 1 14 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_rua.eps000066400000000000000000000337521514310134000261340ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:26 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 304 303 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 303 moveto 0 0 lineto 304 0 lineto 304 303 lineto closepath clip newpath -58.0 360.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw [15 45] 45 sd n 1575 1125 m 5775 1125 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 1725 m 5775 1725 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 2925 m 5775 2925 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 3525 m 5775 3525 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 4125 m 5775 4125 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 2325 m 5775 2325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 4725 m 5775 4725 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 5325 m 5775 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1575 1125 m 1575 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2175 1125 m 2175 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2775 1125 m 2775 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3375 1125 m 3375 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3975 1125 m 3975 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4575 1125 m 4575 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5175 1125 m 5175 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5775 1125 m 5775 5325 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 5475 m 1725 5175 l 1425 5175 l 1425 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 4875 m 1725 4575 l 1425 4575 l 1425 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 4275 m 1725 3975 l 1425 3975 l 1425 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 3675 m 1725 3375 l 1425 3375 l 1425 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 3075 m 1725 2775 l 1425 2775 l 1425 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 2475 m 1725 2175 l 1425 2175 l 1425 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 1875 m 1725 1575 l 1425 1575 l 1425 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1725 1275 m 1725 975 l 1425 975 l 1425 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 5475 m 2325 5175 l 2025 5175 l 2025 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 4875 m 2325 4575 l 2025 4575 l 2025 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 4275 m 2325 3975 l 2025 3975 l 2025 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 3675 m 2325 3375 l 2025 3375 l 2025 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 3075 m 2325 2775 l 2025 2775 l 2025 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 2475 m 2325 2175 l 2025 2175 l 2025 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 1875 m 2325 1575 l 2025 1575 l 2025 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2325 1275 m 2325 975 l 2025 975 l 2025 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 5475 m 3525 5175 l 3225 5175 l 3225 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 4875 m 3525 4575 l 3225 4575 l 3225 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 4275 m 3525 3975 l 3225 3975 l 3225 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 3675 m 3525 3375 l 3225 3375 l 3225 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 3075 m 3525 2775 l 3225 2775 l 3225 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 2475 m 3525 2175 l 3225 2175 l 3225 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 1875 m 3525 1575 l 3225 1575 l 3225 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3525 1275 m 3525 975 l 3225 975 l 3225 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 5475 m 4125 5175 l 3825 5175 l 3825 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 4875 m 4125 4575 l 3825 4575 l 3825 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 4275 m 4125 3975 l 3825 3975 l 3825 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 3675 m 4125 3375 l 3825 3375 l 3825 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 3075 m 4125 2775 l 3825 2775 l 3825 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 2475 m 4125 2175 l 3825 2175 l 3825 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 1875 m 4125 1575 l 3825 1575 l 3825 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4125 1275 m 4125 975 l 3825 975 l 3825 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 5475 m 4725 5175 l 4425 5175 l 4425 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 4875 m 4725 4575 l 4425 4575 l 4425 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 4275 m 4725 3975 l 4425 3975 l 4425 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 3675 m 4725 3375 l 4425 3375 l 4425 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 3075 m 4725 2775 l 4425 2775 l 4425 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 2475 m 4725 2175 l 4425 2175 l 4425 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 1875 m 4725 1575 l 4425 1575 l 4425 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4725 1275 m 4725 975 l 4425 975 l 4425 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 5475 m 5325 5175 l 5025 5175 l 5025 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 4875 m 5325 4575 l 5025 4575 l 5025 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 4275 m 5325 3975 l 5025 3975 l 5025 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 3675 m 5325 3375 l 5025 3375 l 5025 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 3075 m 5325 2775 l 5025 2775 l 5025 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 2475 m 5325 2175 l 5025 2175 l 5025 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 1875 m 5325 1575 l 5025 1575 l 5025 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5325 1275 m 5325 975 l 5025 975 l 5025 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 5475 m 5925 5175 l 5625 5175 l 5625 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 4875 m 5925 4575 l 5625 4575 l 5625 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 4275 m 5925 3975 l 5625 3975 l 5625 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 3675 m 5925 3375 l 5625 3375 l 5625 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 3075 m 5925 2775 l 5625 2775 l 5625 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 2475 m 5925 2175 l 5625 2175 l 5625 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 1875 m 5925 1575 l 5625 1575 l 5625 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5925 1275 m 5925 975 l 5625 975 l 5625 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 5475 m 2925 5175 l 2625 5175 l 2625 5475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 4875 m 2925 4575 l 2625 4575 l 2625 4875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 4275 m 2925 3975 l 2625 3975 l 2625 4275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 3675 m 2925 3375 l 2625 3375 l 2625 3675 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 3075 m 2925 2775 l 2625 2775 l 2625 3075 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 2475 m 2925 2175 l 2625 2175 l 2625 2475 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 1875 m 2925 1575 l 2625 1575 l 2625 1875 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2925 1275 m 2925 975 l 2625 975 l 2625 1275 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 2325 5925 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 2550 6000 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 300.00 scf sf 4725 5925 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 4950 6000 m gs 1 -1 sc (1) col-1 sh gr % Ellipse n 1875 3825 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2775 1725 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2475 5025 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4875 2025 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 5475 3825 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2475 4425 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Polyline 15.000 slw [90] 0 sd n 3675 3375 m 3675 5475 l gs col-1 s gr [] 0 sd % Polyline n 3600 3375 m 3750 3375 l gs col-1 s gr % Polyline n 3600 5475 m 3750 5475 l gs col-1 s gr % Polyline n 1455 3300 m 1350 3300 1350 5445 105 arcto 4 {pop} repeat 1350 5550 5895 5550 105 arcto 4 {pop} repeat 6000 5550 6000 3405 105 arcto 4 {pop} repeat 6000 3300 1455 3300 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2655 1500 m 2550 1500 2550 1845 105 arcto 4 {pop} repeat 2550 1950 2895 1950 105 arcto 4 {pop} repeat 3000 1950 3000 1605 105 arcto 4 {pop} repeat 3000 1500 2655 1500 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 4455 1500 m 4350 1500 4350 2445 105 arcto 4 {pop} repeat 4350 2550 5295 2550 105 arcto 4 {pop} repeat 5400 2550 5400 1605 105 arcto 4 {pop} repeat 5400 1500 4455 1500 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2475 4425 m 2775 1725 l gs col-1 s gr % Polyline n 2475 4425 m 4875 2025 l gs col-1 s gr % Polyline 45.000 slw n 2475 4425 m 5475 3825 l gs col-1 s gr % Polyline [15 90] 90 sd n 2475 4425 m 2475 5025 l gs col-1 s gr [] 0 sd % Polyline [15 90] 90 sd n 2475 4425 m 1875 3825 l gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 975 4500 m gs 1 -1 sc (D) col-1 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_rua.fig000066400000000000000000000205471514310134000261100ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 1425 975 5925 5475 6 1575 1125 5775 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 1125 5775 1125 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 1725 5775 1725 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 2925 5775 2925 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 3525 5775 3525 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 4125 5775 4125 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 2325 5775 2325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 4725 5775 4725 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 5325 5775 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1575 1125 1575 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2175 1125 2175 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2775 1125 2775 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3375 1125 3375 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3975 1125 3975 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4575 1125 4575 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5175 1125 5175 5325 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5775 1125 5775 5325 -6 6 1425 975 1725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 5475 1725 5175 1425 5175 1425 5475 1725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 4875 1725 4575 1425 4575 1425 4875 1725 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 4275 1725 3975 1425 3975 1425 4275 1725 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 3675 1725 3375 1425 3375 1425 3675 1725 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 3075 1725 2775 1425 2775 1425 3075 1725 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 2475 1725 2175 1425 2175 1425 2475 1725 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 1875 1725 1575 1425 1575 1425 1875 1725 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1725 1275 1725 975 1425 975 1425 1275 1725 1275 -6 6 2025 975 2325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 5475 2325 5175 2025 5175 2025 5475 2325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 4875 2325 4575 2025 4575 2025 4875 2325 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 4275 2325 3975 2025 3975 2025 4275 2325 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 3675 2325 3375 2025 3375 2025 3675 2325 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 3075 2325 2775 2025 2775 2025 3075 2325 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 2475 2325 2175 2025 2175 2025 2475 2325 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 1875 2325 1575 2025 1575 2025 1875 2325 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2325 1275 2325 975 2025 975 2025 1275 2325 1275 -6 6 3225 975 3525 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 5475 3525 5175 3225 5175 3225 5475 3525 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 4875 3525 4575 3225 4575 3225 4875 3525 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 4275 3525 3975 3225 3975 3225 4275 3525 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 3675 3525 3375 3225 3375 3225 3675 3525 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 3075 3525 2775 3225 2775 3225 3075 3525 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 2475 3525 2175 3225 2175 3225 2475 3525 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 1875 3525 1575 3225 1575 3225 1875 3525 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3525 1275 3525 975 3225 975 3225 1275 3525 1275 -6 6 3825 975 4125 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 5475 4125 5175 3825 5175 3825 5475 4125 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 4875 4125 4575 3825 4575 3825 4875 4125 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 4275 4125 3975 3825 3975 3825 4275 4125 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 3675 4125 3375 3825 3375 3825 3675 4125 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 3075 4125 2775 3825 2775 3825 3075 4125 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 2475 4125 2175 3825 2175 3825 2475 4125 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 1875 4125 1575 3825 1575 3825 1875 4125 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4125 1275 4125 975 3825 975 3825 1275 4125 1275 -6 6 4425 975 4725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 5475 4725 5175 4425 5175 4425 5475 4725 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 4875 4725 4575 4425 4575 4425 4875 4725 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 4275 4725 3975 4425 3975 4425 4275 4725 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 3675 4725 3375 4425 3375 4425 3675 4725 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 3075 4725 2775 4425 2775 4425 3075 4725 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 2475 4725 2175 4425 2175 4425 2475 4725 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 1875 4725 1575 4425 1575 4425 1875 4725 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4725 1275 4725 975 4425 975 4425 1275 4725 1275 -6 6 5025 975 5325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 5475 5325 5175 5025 5175 5025 5475 5325 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 4875 5325 4575 5025 4575 5025 4875 5325 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 4275 5325 3975 5025 3975 5025 4275 5325 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 3675 5325 3375 5025 3375 5025 3675 5325 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 3075 5325 2775 5025 2775 5025 3075 5325 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 2475 5325 2175 5025 2175 5025 2475 5325 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 1875 5325 1575 5025 1575 5025 1875 5325 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5325 1275 5325 975 5025 975 5025 1275 5325 1275 -6 6 5625 975 5925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 5475 5925 5175 5625 5175 5625 5475 5925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 4875 5925 4575 5625 4575 5625 4875 5925 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 4275 5925 3975 5625 3975 5625 4275 5925 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 3675 5925 3375 5625 3375 5625 3675 5925 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 3075 5925 2775 5625 2775 5625 3075 5925 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 2475 5925 2175 5625 2175 5625 2475 5925 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 1875 5925 1575 5625 1575 5625 1875 5925 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5925 1275 5925 975 5625 975 5625 1275 5925 1275 -6 6 2625 975 2925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 5475 2925 5175 2625 5175 2625 5475 2925 5475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 4875 2925 4575 2625 4575 2625 4875 2925 4875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 4275 2925 3975 2625 3975 2625 4275 2925 4275 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 3675 2925 3375 2625 3375 2625 3675 2925 3675 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 3075 2925 2775 2625 2775 2625 3075 2925 3075 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 2475 2925 2175 2625 2175 2625 2475 2925 2475 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 1875 2925 1575 2625 1575 2625 1875 2925 1875 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2925 1275 2925 975 2625 975 2625 1275 2925 1275 -6 -6 6 2325 5700 2700 6000 4 0 -1 0 0 0 20 0.0000 4 210 210 2325 5925 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 2550 6000 0\001 -6 6 4725 5700 5100 6000 4 0 -1 0 0 0 20 0.0000 4 210 210 4725 5925 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 4950 6000 1\001 -6 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 1875 3825 75 75 1875 3825 1950 3900 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2775 1725 75 75 2775 1725 2850 1800 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2475 5025 75 75 2475 5025 2550 5100 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4875 2025 75 75 4875 2025 4950 2100 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 5475 3825 75 75 5475 3825 5550 3900 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2475 4425 75 75 2475 4425 2550 4500 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3675 3375 3675 5475 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3600 3375 3750 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3600 5475 3750 5475 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 6000 3300 1350 3300 1350 5550 6000 5550 6000 3300 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 3000 1500 2550 1500 2550 1950 3000 1950 3000 1500 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5400 1500 4350 1500 4350 2550 5400 2550 5400 1500 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2475 4425 2775 1725 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2475 4425 4875 2025 2 1 0 4 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2475 4425 5475 3825 2 1 2 4 -1 -1 0 0 -1 6.000 0 0 7 0 0 2 2475 4425 2475 5025 2 1 2 4 -1 -1 0 0 -1 6.000 0 0 7 0 0 2 2475 4425 1875 3825 4 0 -1 0 0 0 20 0.0000 4 210 210 975 4500 D\001 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_rub.eps000066400000000000000000000336611514310134000261340ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:26 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 304 303 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 303 moveto 0 0 lineto 304 0 lineto 304 303 lineto closepath clip newpath -53.0 329.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw [15 45] 45 sd n 1500 600 m 5700 600 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 1200 m 5700 1200 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 2400 m 5700 2400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 3000 m 5700 3000 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 3600 m 5700 3600 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 1800 m 5700 1800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 4200 m 5700 4200 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 4800 m 5700 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 600 m 1500 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 600 m 2100 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2700 600 m 2700 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3300 600 m 3300 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3900 600 m 3900 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4500 600 m 4500 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 600 m 5100 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5700 600 m 5700 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 4950 m 1650 4650 l 1350 4650 l 1350 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 4350 m 1650 4050 l 1350 4050 l 1350 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 3750 m 1650 3450 l 1350 3450 l 1350 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 3150 m 1650 2850 l 1350 2850 l 1350 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 2550 m 1650 2250 l 1350 2250 l 1350 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 1950 m 1650 1650 l 1350 1650 l 1350 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 1350 m 1650 1050 l 1350 1050 l 1350 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 750 m 1650 450 l 1350 450 l 1350 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 4950 m 2250 4650 l 1950 4650 l 1950 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 4350 m 2250 4050 l 1950 4050 l 1950 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 3750 m 2250 3450 l 1950 3450 l 1950 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 3150 m 2250 2850 l 1950 2850 l 1950 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 2550 m 2250 2250 l 1950 2250 l 1950 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 1950 m 2250 1650 l 1950 1650 l 1950 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 1350 m 2250 1050 l 1950 1050 l 1950 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 750 m 2250 450 l 1950 450 l 1950 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 4950 m 3450 4650 l 3150 4650 l 3150 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 4350 m 3450 4050 l 3150 4050 l 3150 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 3750 m 3450 3450 l 3150 3450 l 3150 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 3150 m 3450 2850 l 3150 2850 l 3150 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 2550 m 3450 2250 l 3150 2250 l 3150 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 1950 m 3450 1650 l 3150 1650 l 3150 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 1350 m 3450 1050 l 3150 1050 l 3150 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 750 m 3450 450 l 3150 450 l 3150 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 4950 m 4050 4650 l 3750 4650 l 3750 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 4350 m 4050 4050 l 3750 4050 l 3750 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 3750 m 4050 3450 l 3750 3450 l 3750 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 3150 m 4050 2850 l 3750 2850 l 3750 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 2550 m 4050 2250 l 3750 2250 l 3750 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 1950 m 4050 1650 l 3750 1650 l 3750 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 1350 m 4050 1050 l 3750 1050 l 3750 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 750 m 4050 450 l 3750 450 l 3750 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 4950 m 4650 4650 l 4350 4650 l 4350 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 4350 m 4650 4050 l 4350 4050 l 4350 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 3750 m 4650 3450 l 4350 3450 l 4350 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 3150 m 4650 2850 l 4350 2850 l 4350 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 2550 m 4650 2250 l 4350 2250 l 4350 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 1950 m 4650 1650 l 4350 1650 l 4350 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 1350 m 4650 1050 l 4350 1050 l 4350 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 750 m 4650 450 l 4350 450 l 4350 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 4950 m 5250 4650 l 4950 4650 l 4950 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 4350 m 5250 4050 l 4950 4050 l 4950 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 3750 m 5250 3450 l 4950 3450 l 4950 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 3150 m 5250 2850 l 4950 2850 l 4950 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 2550 m 5250 2250 l 4950 2250 l 4950 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 1950 m 5250 1650 l 4950 1650 l 4950 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 1350 m 5250 1050 l 4950 1050 l 4950 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 750 m 5250 450 l 4950 450 l 4950 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 4950 m 5850 4650 l 5550 4650 l 5550 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 4350 m 5850 4050 l 5550 4050 l 5550 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 3750 m 5850 3450 l 5550 3450 l 5550 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 3150 m 5850 2850 l 5550 2850 l 5550 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 2550 m 5850 2250 l 5550 2250 l 5550 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 1950 m 5850 1650 l 5550 1650 l 5550 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 1350 m 5850 1050 l 5550 1050 l 5550 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 750 m 5850 450 l 5550 450 l 5550 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 4950 m 2850 4650 l 2550 4650 l 2550 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 4350 m 2850 4050 l 2550 4050 l 2550 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 3750 m 2850 3450 l 2550 3450 l 2550 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 3150 m 2850 2850 l 2550 2850 l 2550 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 2550 m 2850 2250 l 2550 2250 l 2550 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 1950 m 2850 1650 l 2550 1650 l 2550 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 1350 m 2850 1050 l 2550 1050 l 2550 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 750 m 2850 450 l 2550 450 l 2550 750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 2250 5400 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 2475 5475 m gs 1 -1 sc (0) col-1 sh gr /Times-Roman ff 300.00 scf sf 4650 5400 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 240.00 scf sf 4875 5475 m gs 1 -1 sc (1) col-1 sh gr % Ellipse n 1800 3300 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2700 1200 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2400 4500 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 1500 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 5400 3300 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 3900 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Polyline 15.000 slw [90] 0 sd n 3600 2850 m 3600 4950 l gs col-1 s gr [] 0 sd % Polyline n 3525 2850 m 3675 2850 l gs col-1 s gr % Polyline n 3525 4950 m 3675 4950 l gs col-1 s gr % Polyline n 1380 2775 m 1275 2775 1275 4920 105 arcto 4 {pop} repeat 1275 5025 5820 5025 105 arcto 4 {pop} repeat 5925 5025 5925 2880 105 arcto 4 {pop} repeat 5925 2775 1380 2775 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2580 975 m 2475 975 2475 1320 105 arcto 4 {pop} repeat 2475 1425 2820 1425 105 arcto 4 {pop} repeat 2925 1425 2925 1080 105 arcto 4 {pop} repeat 2925 975 2580 975 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 4380 975 m 4275 975 4275 1920 105 arcto 4 {pop} repeat 4275 2025 5220 2025 105 arcto 4 {pop} repeat 5325 2025 5325 1080 105 arcto 4 {pop} repeat 5325 975 4380 975 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 4800 3900 m 2700 1200 l gs col-1 s gr % Polyline n 4800 3900 m 4800 1500 l gs col-1 s gr % Polyline 45.000 slw n 4800 3900 m 1800 3300 l gs col-1 s gr % Polyline n 4800 3900 m 2400 4500 l gs col-1 s gr % Polyline [15 90] 90 sd n 4800 3900 m 5400 3300 l gs col-1 s gr [] 0 sd /Times-Roman ff 300.00 scf sf 900 3975 m gs 1 -1 sc (D) col-1 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_rub.fig000066400000000000000000000205251514310134000261050ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 900 450 6000 5475 6 1350 450 5850 4950 6 1500 600 5700 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 600 5700 600 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 1200 5700 1200 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 2400 5700 2400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 3000 5700 3000 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 3600 5700 3600 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 1800 5700 1800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 4200 5700 4200 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 4800 5700 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 600 1500 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2100 600 2100 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2700 600 2700 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3300 600 3300 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3900 600 3900 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4500 600 4500 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5100 600 5100 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5700 600 5700 4800 -6 6 1350 450 1650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 4950 1650 4650 1350 4650 1350 4950 1650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 4350 1650 4050 1350 4050 1350 4350 1650 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 3750 1650 3450 1350 3450 1350 3750 1650 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 3150 1650 2850 1350 2850 1350 3150 1650 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 2550 1650 2250 1350 2250 1350 2550 1650 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 1950 1650 1650 1350 1650 1350 1950 1650 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 1350 1650 1050 1350 1050 1350 1350 1650 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 750 1650 450 1350 450 1350 750 1650 750 -6 6 1950 450 2250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 4950 2250 4650 1950 4650 1950 4950 2250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 4350 2250 4050 1950 4050 1950 4350 2250 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 3750 2250 3450 1950 3450 1950 3750 2250 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 3150 2250 2850 1950 2850 1950 3150 2250 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 2550 2250 2250 1950 2250 1950 2550 2250 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 1950 2250 1650 1950 1650 1950 1950 2250 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 1350 2250 1050 1950 1050 1950 1350 2250 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 750 2250 450 1950 450 1950 750 2250 750 -6 6 3150 450 3450 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 4950 3450 4650 3150 4650 3150 4950 3450 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 4350 3450 4050 3150 4050 3150 4350 3450 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 3750 3450 3450 3150 3450 3150 3750 3450 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 3150 3450 2850 3150 2850 3150 3150 3450 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 2550 3450 2250 3150 2250 3150 2550 3450 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 1950 3450 1650 3150 1650 3150 1950 3450 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 1350 3450 1050 3150 1050 3150 1350 3450 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 750 3450 450 3150 450 3150 750 3450 750 -6 6 3750 450 4050 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 4950 4050 4650 3750 4650 3750 4950 4050 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 4350 4050 4050 3750 4050 3750 4350 4050 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 3750 4050 3450 3750 3450 3750 3750 4050 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 3150 4050 2850 3750 2850 3750 3150 4050 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 2550 4050 2250 3750 2250 3750 2550 4050 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 1950 4050 1650 3750 1650 3750 1950 4050 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 1350 4050 1050 3750 1050 3750 1350 4050 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 750 4050 450 3750 450 3750 750 4050 750 -6 6 4350 450 4650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 4950 4650 4650 4350 4650 4350 4950 4650 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 4350 4650 4050 4350 4050 4350 4350 4650 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 3750 4650 3450 4350 3450 4350 3750 4650 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 3150 4650 2850 4350 2850 4350 3150 4650 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 2550 4650 2250 4350 2250 4350 2550 4650 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 1950 4650 1650 4350 1650 4350 1950 4650 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 1350 4650 1050 4350 1050 4350 1350 4650 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 750 4650 450 4350 450 4350 750 4650 750 -6 6 4950 450 5250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 4950 5250 4650 4950 4650 4950 4950 5250 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 4350 5250 4050 4950 4050 4950 4350 5250 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 3750 5250 3450 4950 3450 4950 3750 5250 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 3150 5250 2850 4950 2850 4950 3150 5250 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 2550 5250 2250 4950 2250 4950 2550 5250 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 1950 5250 1650 4950 1650 4950 1950 5250 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 1350 5250 1050 4950 1050 4950 1350 5250 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 750 5250 450 4950 450 4950 750 5250 750 -6 6 5550 450 5850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 4950 5850 4650 5550 4650 5550 4950 5850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 4350 5850 4050 5550 4050 5550 4350 5850 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 3750 5850 3450 5550 3450 5550 3750 5850 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 3150 5850 2850 5550 2850 5550 3150 5850 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 2550 5850 2250 5550 2250 5550 2550 5850 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 1950 5850 1650 5550 1650 5550 1950 5850 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 1350 5850 1050 5550 1050 5550 1350 5850 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 750 5850 450 5550 450 5550 750 5850 750 -6 6 2550 450 2850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 4950 2850 4650 2550 4650 2550 4950 2850 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 4350 2850 4050 2550 4050 2550 4350 2850 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 3750 2850 3450 2550 3450 2550 3750 2850 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 3150 2850 2850 2550 2850 2550 3150 2850 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 2550 2850 2250 2550 2250 2550 2550 2850 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 1950 2850 1650 2550 1650 2550 1950 2850 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 1350 2850 1050 2550 1050 2550 1350 2850 1350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 750 2850 450 2550 450 2550 750 2850 750 -6 -6 6 2250 5175 2625 5475 4 0 -1 0 0 0 20 0.0000 4 210 210 2250 5400 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 2475 5475 0\001 -6 6 4650 5175 5025 5475 4 0 -1 0 0 0 20 0.0000 4 210 210 4650 5400 D\001 4 0 -1 0 0 0 16 0.0000 4 165 120 4875 5475 1\001 -6 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 1800 3300 75 75 1800 3300 1875 3375 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2700 1200 75 75 2700 1200 2775 1275 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2400 4500 75 75 2400 4500 2475 4575 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4800 1500 75 75 4800 1500 4875 1575 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 5400 3300 75 75 5400 3300 5475 3375 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4800 3900 75 75 4800 3900 4875 3975 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3600 2850 3600 4950 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3525 2850 3675 2850 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3525 4950 3675 4950 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5925 2775 1275 2775 1275 5025 5925 5025 5925 2775 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 2925 975 2475 975 2475 1425 2925 1425 2925 975 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5325 975 4275 975 4275 2025 5325 2025 5325 975 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 4800 3900 2700 1200 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 4800 3900 4800 1500 2 1 0 4 -1 -1 0 0 -1 0.000 0 0 7 0 0 2 4800 3900 1800 3300 2 1 0 4 -1 -1 0 0 -1 0.000 0 0 7 0 0 2 4800 3900 2400 4500 2 1 2 4 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 4800 3900 5400 3300 4 0 -1 0 0 0 20 0.0000 4 210 210 900 3975 D\001 -6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_run.eps000066400000000000000000000373211514310134000261450ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:27 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 317 319 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 319 moveto 0 0 lineto 317 0 lineto 317 319 lineto closepath clip newpath -40.0 378.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw [15 45] 45 sd n 1500 1500 m 5700 1500 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 2100 m 5700 2100 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 3300 m 5700 3300 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 3900 m 5700 3900 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 4500 m 5700 4500 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 2700 m 5700 2700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 5100 m 5700 5100 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 5700 m 5700 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 1500 m 1500 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 1500 m 2100 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2700 1500 m 2700 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3300 1500 m 3300 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3900 1500 m 3900 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4500 1500 m 4500 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 1500 m 5100 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5700 1500 m 5700 5700 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 5850 m 1650 5550 l 1350 5550 l 1350 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 5250 m 1650 4950 l 1350 4950 l 1350 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 4650 m 1650 4350 l 1350 4350 l 1350 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 4050 m 1650 3750 l 1350 3750 l 1350 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 3450 m 1650 3150 l 1350 3150 l 1350 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 2850 m 1650 2550 l 1350 2550 l 1350 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 2250 m 1650 1950 l 1350 1950 l 1350 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1650 1650 m 1650 1350 l 1350 1350 l 1350 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 5850 m 2250 5550 l 1950 5550 l 1950 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 5250 m 2250 4950 l 1950 4950 l 1950 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 4650 m 2250 4350 l 1950 4350 l 1950 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 4050 m 2250 3750 l 1950 3750 l 1950 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 3450 m 2250 3150 l 1950 3150 l 1950 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 2850 m 2250 2550 l 1950 2550 l 1950 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 2250 m 2250 1950 l 1950 1950 l 1950 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2250 1650 m 2250 1350 l 1950 1350 l 1950 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 5850 m 3450 5550 l 3150 5550 l 3150 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 5250 m 3450 4950 l 3150 4950 l 3150 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 4650 m 3450 4350 l 3150 4350 l 3150 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 4050 m 3450 3750 l 3150 3750 l 3150 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 3450 m 3450 3150 l 3150 3150 l 3150 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 2850 m 3450 2550 l 3150 2550 l 3150 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 2250 m 3450 1950 l 3150 1950 l 3150 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3450 1650 m 3450 1350 l 3150 1350 l 3150 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 5850 m 4050 5550 l 3750 5550 l 3750 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 5250 m 4050 4950 l 3750 4950 l 3750 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 4650 m 4050 4350 l 3750 4350 l 3750 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 4050 m 4050 3750 l 3750 3750 l 3750 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 3450 m 4050 3150 l 3750 3150 l 3750 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 2850 m 4050 2550 l 3750 2550 l 3750 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 2250 m 4050 1950 l 3750 1950 l 3750 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4050 1650 m 4050 1350 l 3750 1350 l 3750 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 5850 m 4650 5550 l 4350 5550 l 4350 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 5250 m 4650 4950 l 4350 4950 l 4350 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 4650 m 4650 4350 l 4350 4350 l 4350 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 4050 m 4650 3750 l 4350 3750 l 4350 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 3450 m 4650 3150 l 4350 3150 l 4350 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 2850 m 4650 2550 l 4350 2550 l 4350 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 2250 m 4650 1950 l 4350 1950 l 4350 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4650 1650 m 4650 1350 l 4350 1350 l 4350 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 5850 m 5250 5550 l 4950 5550 l 4950 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 5250 m 5250 4950 l 4950 4950 l 4950 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 4650 m 5250 4350 l 4950 4350 l 4950 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 4050 m 5250 3750 l 4950 3750 l 4950 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 3450 m 5250 3150 l 4950 3150 l 4950 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 2850 m 5250 2550 l 4950 2550 l 4950 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 2250 m 5250 1950 l 4950 1950 l 4950 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5250 1650 m 5250 1350 l 4950 1350 l 4950 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 5850 m 5850 5550 l 5550 5550 l 5550 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 5250 m 5850 4950 l 5550 4950 l 5550 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 4650 m 5850 4350 l 5550 4350 l 5550 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 4050 m 5850 3750 l 5550 3750 l 5550 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 3450 m 5850 3150 l 5550 3150 l 5550 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 2850 m 5850 2550 l 5550 2550 l 5550 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 2250 m 5850 1950 l 5550 1950 l 5550 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5850 1650 m 5850 1350 l 5550 1350 l 5550 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 5850 m 2850 5550 l 2550 5550 l 2550 5850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 5250 m 2850 4950 l 2550 4950 l 2550 5250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 4650 m 2850 4350 l 2550 4350 l 2550 4650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 4050 m 2850 3750 l 2550 3750 l 2550 4050 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 3450 m 2850 3150 l 2550 3150 l 2550 3450 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 2850 m 2850 2550 l 2550 2550 l 2550 2850 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 2250 m 2850 1950 l 2550 1950 l 2550 2250 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2850 1650 m 2850 1350 l 2550 1350 l 2550 1650 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline 15.000 slw [90] 0 sd n 3600 1350 m 3600 5850 l gs col-1 s gr [] 0 sd % Polyline n 3525 1350 m 3675 1350 l gs col-1 s gr % Polyline n 3525 5850 m 3675 5850 l gs col-1 s gr % Polyline [90] 0 sd n 3450 3600 m 1350 3600 l gs col-1 s gr [] 0 sd % Polyline n 3450 3525 m 3450 3675 l gs col-1 s gr % Polyline n 1350 3525 m 1350 3675 l gs col-1 s gr % Polyline n 2325 5850 m 2475 5850 l gs col-1 s gr 7.500 slw % Ellipse n 1800 4200 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4800 3600 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 1800 5400 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Polyline 15.000 slw [90] 0 sd n 2250 4800 m 1350 4800 l gs col-1 s gr [] 0 sd % Polyline n 1350 4725 m 1350 4875 l gs col-1 s gr % Polyline n 1380 3675 m 1275 3675 1275 5820 105 arcto 4 {pop} repeat 1275 5925 2220 5925 105 arcto 4 {pop} repeat 2325 5925 2325 3780 105 arcto 4 {pop} repeat 2325 3675 1380 3675 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2250 4725 m 2250 4875 l gs col-1 s gr % Polyline n 2325 3750 m 2475 3750 l gs col-1 s gr % Polyline n 2325 3750 m 2475 3750 l gs col-1 s gr % Polyline [90] 0 sd n 2400 3750 m 2400 5850 l gs col-1 s gr [] 0 sd % Polyline 7.500 slw n 3780 1275 m 3675 1275 3675 5820 105 arcto 4 {pop} repeat 3675 5925 5820 5925 105 arcto 4 {pop} repeat 5925 5925 5925 1380 105 arcto 4 {pop} repeat 5925 1275 3780 1275 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline 2 slj 15.000 slw n 1800 4200 m 1801 4200 l 1803 4200 l 1806 4201 l 1812 4202 l 1820 4203 l 1831 4205 l 1846 4207 l 1863 4210 l 1883 4213 l 1907 4216 l 1934 4220 l 1964 4224 l 1996 4228 l 2032 4233 l 2070 4238 l 2110 4242 l 2152 4247 l 2195 4252 l 2241 4256 l 2287 4260 l 2335 4264 l 2384 4268 l 2435 4271 l 2486 4274 l 2539 4276 l 2593 4277 l 2648 4278 l 2705 4277 l 2763 4276 l 2823 4274 l 2885 4272 l 2949 4267 l 3015 4262 l 3083 4256 l 3154 4247 l 3226 4238 l 3300 4227 l 3375 4214 l 3450 4200 l 3528 4183 l 3605 4166 l 3679 4147 l 3750 4127 l 3817 4107 l 3881 4086 l 3942 4066 l 4000 4045 l 4055 4023 l 4108 4002 l 4157 3980 l 4205 3959 l 4251 3937 l 4295 3915 l 4337 3893 l 4378 3871 l 4417 3849 l 4454 3828 l 4491 3806 l 4525 3785 l 4558 3764 l 4590 3744 l 4619 3725 l 4647 3707 l 4673 3690 l 4696 3674 l 4717 3659 l 4735 3647 l 4751 3635 l 4765 3626 l 4776 3618 l 4784 3612 l 4791 3607 l 4795 3604 l 4798 3602 l 4799 3600 l 4800 3600 l gs col-1 s gr % Polyline n 1800 5400 m 1801 5400 l 1802 5399 l 1806 5399 l 1811 5397 l 1818 5395 l 1827 5393 l 1840 5390 l 1855 5386 l 1873 5381 l 1894 5375 l 1918 5369 l 1945 5361 l 1974 5353 l 2006 5344 l 2041 5334 l 2077 5324 l 2116 5312 l 2156 5300 l 2197 5287 l 2241 5273 l 2285 5259 l 2331 5244 l 2377 5228 l 2425 5212 l 2474 5194 l 2524 5176 l 2575 5156 l 2627 5136 l 2680 5114 l 2735 5091 l 2791 5067 l 2849 5041 l 2909 5013 l 2971 4984 l 3034 4953 l 3100 4920 l 3167 4884 l 3236 4847 l 3307 4808 l 3378 4767 l 3450 4725 l 3524 4680 l 3597 4634 l 3668 4588 l 3736 4542 l 3800 4498 l 3862 4454 l 3921 4411 l 3977 4369 l 4031 4328 l 4082 4288 l 4130 4248 l 4177 4210 l 4221 4172 l 4264 4135 l 4305 4098 l 4345 4062 l 4384 4026 l 4421 3991 l 4456 3957 l 4491 3923 l 4524 3891 l 4555 3859 l 4585 3829 l 4614 3799 l 4640 3772 l 4665 3746 l 4688 3721 l 4709 3699 l 4727 3680 l 4744 3662 l 4758 3647 l 4769 3634 l 4779 3623 l 4786 3615 l 4792 3609 l 4796 3605 l 4798 3602 l 4799 3601 l 4800 3600 l gs col-1 s gr /Times-Roman ff 300.00 scf sf 900 4875 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 300.00 scf sf 2100 6300 m gs 1 -1 sc (CL2) col-1 sh gr /Times-Roman ff 300.00 scf sf 3300 1200 m gs 1 -1 sc (CL0) col-1 sh gr /Times-Roman ff 300.00 scf sf 675 3675 m gs 1 -1 sc (CL1) col-1 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_run.fig000066400000000000000000000210711514310134000261160ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 675 825 5925 6300 6 3450 1275 3750 5925 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3600 1350 3600 5850 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3525 1350 3675 1350 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3525 5850 3675 5850 -6 6 1275 3450 3525 3750 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3450 3600 1350 3600 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3450 3525 3450 3675 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 1350 3525 1350 3675 -6 6 2250 5775 2550 5925 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2325 5850 2475 5850 -6 6 1350 1350 5850 5850 6 1500 1500 5700 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 1500 5700 1500 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 2100 5700 2100 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 3300 5700 3300 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 3900 5700 3900 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 4500 5700 4500 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 2700 5700 2700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 5100 5700 5100 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 5700 5700 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1500 1500 1500 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2100 1500 2100 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2700 1500 2700 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3300 1500 3300 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3900 1500 3900 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4500 1500 4500 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5100 1500 5100 5700 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5700 1500 5700 5700 -6 6 1350 1350 1650 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 5850 1650 5550 1350 5550 1350 5850 1650 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 5250 1650 4950 1350 4950 1350 5250 1650 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 4650 1650 4350 1350 4350 1350 4650 1650 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 4050 1650 3750 1350 3750 1350 4050 1650 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 3450 1650 3150 1350 3150 1350 3450 1650 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 2850 1650 2550 1350 2550 1350 2850 1650 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 2250 1650 1950 1350 1950 1350 2250 1650 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1650 1650 1650 1350 1350 1350 1350 1650 1650 1650 -6 6 1950 1350 2250 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 5850 2250 5550 1950 5550 1950 5850 2250 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 5250 2250 4950 1950 4950 1950 5250 2250 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 4650 2250 4350 1950 4350 1950 4650 2250 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 4050 2250 3750 1950 3750 1950 4050 2250 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 3450 2250 3150 1950 3150 1950 3450 2250 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 2850 2250 2550 1950 2550 1950 2850 2250 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 2250 2250 1950 1950 1950 1950 2250 2250 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2250 1650 2250 1350 1950 1350 1950 1650 2250 1650 -6 6 3150 1350 3450 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 5850 3450 5550 3150 5550 3150 5850 3450 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 5250 3450 4950 3150 4950 3150 5250 3450 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 4650 3450 4350 3150 4350 3150 4650 3450 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 4050 3450 3750 3150 3750 3150 4050 3450 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 3450 3450 3150 3150 3150 3150 3450 3450 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 2850 3450 2550 3150 2550 3150 2850 3450 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 2250 3450 1950 3150 1950 3150 2250 3450 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3450 1650 3450 1350 3150 1350 3150 1650 3450 1650 -6 6 3750 1350 4050 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 5850 4050 5550 3750 5550 3750 5850 4050 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 5250 4050 4950 3750 4950 3750 5250 4050 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 4650 4050 4350 3750 4350 3750 4650 4050 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 4050 4050 3750 3750 3750 3750 4050 4050 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 3450 4050 3150 3750 3150 3750 3450 4050 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 2850 4050 2550 3750 2550 3750 2850 4050 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 2250 4050 1950 3750 1950 3750 2250 4050 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4050 1650 4050 1350 3750 1350 3750 1650 4050 1650 -6 6 4350 1350 4650 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 5850 4650 5550 4350 5550 4350 5850 4650 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 5250 4650 4950 4350 4950 4350 5250 4650 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 4650 4650 4350 4350 4350 4350 4650 4650 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 4050 4650 3750 4350 3750 4350 4050 4650 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 3450 4650 3150 4350 3150 4350 3450 4650 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 2850 4650 2550 4350 2550 4350 2850 4650 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 2250 4650 1950 4350 1950 4350 2250 4650 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4650 1650 4650 1350 4350 1350 4350 1650 4650 1650 -6 6 4950 1350 5250 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 5850 5250 5550 4950 5550 4950 5850 5250 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 5250 5250 4950 4950 4950 4950 5250 5250 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 4650 5250 4350 4950 4350 4950 4650 5250 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 4050 5250 3750 4950 3750 4950 4050 5250 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 3450 5250 3150 4950 3150 4950 3450 5250 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 2850 5250 2550 4950 2550 4950 2850 5250 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 2250 5250 1950 4950 1950 4950 2250 5250 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5250 1650 5250 1350 4950 1350 4950 1650 5250 1650 -6 6 5550 1350 5850 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 5850 5850 5550 5550 5550 5550 5850 5850 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 5250 5850 4950 5550 4950 5550 5250 5850 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 4650 5850 4350 5550 4350 5550 4650 5850 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 4050 5850 3750 5550 3750 5550 4050 5850 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 3450 5850 3150 5550 3150 5550 3450 5850 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 2850 5850 2550 5550 2550 5550 2850 5850 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 2250 5850 1950 5550 1950 5550 2250 5850 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5850 1650 5850 1350 5550 1350 5550 1650 5850 1650 -6 6 2550 1350 2850 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 5850 2850 5550 2550 5550 2550 5850 2850 5850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 5250 2850 4950 2550 4950 2550 5250 2850 5250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 4650 2850 4350 2550 4350 2550 4650 2850 4650 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 4050 2850 3750 2550 3750 2550 4050 2850 4050 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 3450 2850 3150 2550 3150 2550 3450 2850 3450 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 2850 2850 2550 2550 2550 2550 2850 2850 2850 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 2250 2850 1950 2550 1950 2550 2250 2850 2250 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2850 1650 2850 1350 2550 1350 2550 1650 2850 1650 -6 -6 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 1800 4200 75 75 1800 4200 1875 4275 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4800 3600 75 75 4800 3600 4875 3675 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 1800 5400 75 75 1800 5400 1875 5475 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 2250 4800 1350 4800 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 1350 4725 1350 4875 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 2325 3675 1275 3675 1275 5925 2325 5925 2325 3675 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2250 4725 2250 4875 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2325 3750 2475 3750 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2325 3750 2475 3750 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 2400 3750 2400 5850 2 4 0 1 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5925 1275 3675 1275 3675 5925 5925 5925 5925 1275 3 2 0 2 -1 -1 0 0 -1 0.000 0 0 0 3 1800 4200 3450 4200 4800 3600 0.000 -1.000 0.000 3 2 0 2 -1 -1 0 0 -1 0.000 0 0 0 3 1800 5400 3450 4725 4800 3600 0.000 -1.000 0.000 4 0 -1 0 0 0 20 0.0000 4 210 210 900 4875 D\001 4 0 -1 0 0 0 20 0.0000 4 210 525 2100 6300 CL2\001 4 0 -1 0 0 0 20 0.0000 4 210 525 3300 1200 CL0\001 4 0 -1 0 0 0 20 0.0000 4 210 525 675 3675 CL1\001 -6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_ruy.eps000066400000000000000000000423571514310134000261650ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Wed May 16 15:53:27 2001 %%For: pelegrin@trol.labri.fr (Francois PELLEGRINI) %%BoundingBox: 0 0 357 319 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 319 moveto 0 0 lineto 357 0 lineto 357 319 lineto closepath clip newpath -58.0 360.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw [15 45] 45 sd n 1800 1200 m 6000 1200 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 1800 m 6000 1800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 3000 m 6000 3000 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 3600 m 6000 3600 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4200 m 6000 4200 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 2400 m 6000 2400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 4800 m 6000 4800 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 5400 m 6000 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 1200 m 1800 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2400 1200 m 2400 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3000 1200 m 3000 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3600 1200 m 3600 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4200 1200 m 4200 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4800 1200 m 4800 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5400 1200 m 5400 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6000 1200 m 6000 5400 l gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 5550 m 1950 5250 l 1650 5250 l 1650 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 4950 m 1950 4650 l 1650 4650 l 1650 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 4350 m 1950 4050 l 1650 4050 l 1650 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 3750 m 1950 3450 l 1650 3450 l 1650 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 3150 m 1950 2850 l 1650 2850 l 1650 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 2550 m 1950 2250 l 1650 2250 l 1650 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 1950 m 1950 1650 l 1650 1650 l 1650 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 1950 1350 m 1950 1050 l 1650 1050 l 1650 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 5550 m 2550 5250 l 2250 5250 l 2250 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 4950 m 2550 4650 l 2250 4650 l 2250 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 4350 m 2550 4050 l 2250 4050 l 2250 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 3750 m 2550 3450 l 2250 3450 l 2250 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 3150 m 2550 2850 l 2250 2850 l 2250 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 2550 m 2550 2250 l 2250 2250 l 2250 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 1950 m 2550 1650 l 2250 1650 l 2250 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 2550 1350 m 2550 1050 l 2250 1050 l 2250 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 5550 m 3750 5250 l 3450 5250 l 3450 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 4950 m 3750 4650 l 3450 4650 l 3450 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 4350 m 3750 4050 l 3450 4050 l 3450 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 3750 m 3750 3450 l 3450 3450 l 3450 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 3150 m 3750 2850 l 3450 2850 l 3450 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 2550 m 3750 2250 l 3450 2250 l 3450 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 1950 m 3750 1650 l 3450 1650 l 3450 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3750 1350 m 3750 1050 l 3450 1050 l 3450 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 5550 m 4350 5250 l 4050 5250 l 4050 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 4950 m 4350 4650 l 4050 4650 l 4050 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 4350 m 4350 4050 l 4050 4050 l 4050 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 3750 m 4350 3450 l 4050 3450 l 4050 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 3150 m 4350 2850 l 4050 2850 l 4050 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 2550 m 4350 2250 l 4050 2250 l 4050 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 1950 m 4350 1650 l 4050 1650 l 4050 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4350 1350 m 4350 1050 l 4050 1050 l 4050 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 5550 m 4950 5250 l 4650 5250 l 4650 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 4950 m 4950 4650 l 4650 4650 l 4650 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 4350 m 4950 4050 l 4650 4050 l 4650 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 3750 m 4950 3450 l 4650 3450 l 4650 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 3150 m 4950 2850 l 4650 2850 l 4650 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 2550 m 4950 2250 l 4650 2250 l 4650 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 1950 m 4950 1650 l 4650 1650 l 4650 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 4950 1350 m 4950 1050 l 4650 1050 l 4650 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 5550 m 5550 5250 l 5250 5250 l 5250 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 4950 m 5550 4650 l 5250 4650 l 5250 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 4350 m 5550 4050 l 5250 4050 l 5250 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 3750 m 5550 3450 l 5250 3450 l 5250 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 3150 m 5550 2850 l 5250 2850 l 5250 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 2550 m 5550 2250 l 5250 2250 l 5250 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 1950 m 5550 1650 l 5250 1650 l 5250 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 5550 1350 m 5550 1050 l 5250 1050 l 5250 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 5550 m 6150 5250 l 5850 5250 l 5850 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 4950 m 6150 4650 l 5850 4650 l 5850 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 4350 m 6150 4050 l 5850 4050 l 5850 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 3750 m 6150 3450 l 5850 3450 l 5850 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 3150 m 6150 2850 l 5850 2850 l 5850 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 2550 m 6150 2250 l 5850 2250 l 5850 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 1950 m 6150 1650 l 5850 1650 l 5850 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 6150 1350 m 6150 1050 l 5850 1050 l 5850 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 5550 m 3150 5250 l 2850 5250 l 2850 5550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 4950 m 3150 4650 l 2850 4650 l 2850 4950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 4350 m 3150 4050 l 2850 4050 l 2850 4350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 3750 m 3150 3450 l 2850 3450 l 2850 3750 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 3150 m 3150 2850 l 2850 2850 l 2850 3150 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 2550 m 3150 2250 l 2850 2250 l 2850 2550 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 1950 m 3150 1650 l 2850 1650 l 2850 1950 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline [15 45] 45 sd n 3150 1350 m 3150 1050 l 2850 1050 l 2850 1350 l cp gs 1.00 setgray ef gr gs col-1 s gr [] 0 sd % Polyline 15.000 slw [90] 0 sd n 2700 1050 m 2700 3150 l gs col-1 s gr [] 0 sd % Polyline n 2625 3150 m 2775 3150 l gs col-1 s gr % Polyline n 2625 1050 m 2775 1050 l gs col-1 s gr % Polyline [90] 0 sd n 5100 3450 m 5100 5550 l gs col-1 s gr [] 0 sd % Polyline n 5025 5550 m 5175 5550 l gs col-1 s gr % Polyline n 5025 3450 m 5175 3450 l gs col-1 s gr 7.500 slw % Ellipse n 2100 3900 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 5700 2100 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 2100 5100 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Ellipse n 4500 4500 75 75 0 360 DrawEllipse gs -0.00 setgray ef gr gs col-1 s gr % Polyline n 5280 975 m 5175 975 5175 3120 105 arcto 4 {pop} repeat 5175 3225 6120 3225 105 arcto 4 {pop} repeat 6225 3225 6225 1080 105 arcto 4 {pop} repeat 6225 975 5280 975 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline 15.000 slw [90] 0 sd n 2700 3450 m 2700 5550 l gs col-1 s gr [] 0 sd % Polyline [90] 0 sd n 5100 3150 m 5100 1050 l gs col-1 s gr [] 0 sd % Polyline [90] 0 sd n 3750 3300 m 1650 3300 l gs col-1 s gr [] 0 sd % Polyline [90] 0 sd n 3900 1050 m 3900 5550 l gs col-1 s gr [] 0 sd % Polyline [90] 0 sd n 4050 3300 m 6150 3300 l gs col-1 s gr [] 0 sd % Polyline [90] 0 sd n 2550 4500 m 1650 4500 l gs col-1 s gr [] 0 sd % Polyline n 3825 1050 m 3975 1050 l gs col-1 s gr % Polyline n 3750 3225 m 3750 3375 l gs col-1 s gr % Polyline n 1650 3225 m 1650 3375 l gs col-1 s gr % Polyline n 4050 3225 m 4050 3375 l gs col-1 s gr % Polyline n 6150 3225 m 6150 3375 l gs col-1 s gr % Polyline n 5025 3150 m 5175 3150 l gs col-1 s gr % Polyline n 5025 1050 m 5175 1050 l gs col-1 s gr % Polyline n 2550 4425 m 2550 4575 l gs col-1 s gr % Polyline n 2625 3450 m 2775 3450 l gs col-1 s gr % Polyline n 2625 5550 m 2775 5550 l gs col-1 s gr % Polyline n 1680 3375 m 1575 3375 1575 5520 105 arcto 4 {pop} repeat 1575 5625 2520 5625 105 arcto 4 {pop} repeat 2625 5625 2625 3480 105 arcto 4 {pop} repeat 2625 3375 1680 3375 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline n 2625 3450 m 2775 3450 l gs col-1 s gr % Polyline n 3825 5550 m 3975 5550 l gs col-1 s gr % Polyline n 1650 4425 m 1650 4575 l gs col-1 s gr % Polyline 7.500 slw n 4080 3375 m 3975 3375 3975 5520 105 arcto 4 {pop} repeat 3975 5625 4920 5625 105 arcto 4 {pop} repeat 5025 5625 5025 3480 105 arcto 4 {pop} repeat 5025 3375 4080 3375 105 arcto 4 {pop} repeat cp gs col-1 s gr % Polyline 2 slj 15.000 slw n 2100 3900 m 2101 3900 l 2102 3902 l 2104 3904 l 2108 3907 l 2114 3911 l 2121 3917 l 2131 3925 l 2143 3933 l 2157 3944 l 2173 3955 l 2191 3968 l 2212 3981 l 2234 3995 l 2258 4010 l 2284 4025 l 2312 4040 l 2341 4055 l 2372 4069 l 2404 4082 l 2437 4094 l 2472 4105 l 2508 4115 l 2545 4122 l 2584 4128 l 2624 4132 l 2667 4133 l 2711 4131 l 2758 4127 l 2807 4119 l 2859 4107 l 2913 4092 l 2971 4072 l 3031 4048 l 3095 4019 l 3161 3984 l 3230 3945 l 3300 3900 l 3356 3861 l 3412 3820 l 3468 3777 l 3521 3733 l 3572 3688 l 3621 3643 l 3668 3599 l 3711 3555 l 3751 3513 l 3789 3471 l 3823 3430 l 3855 3391 l 3884 3353 l 3910 3316 l 3934 3280 l 3955 3246 l 3975 3213 l 3992 3180 l 4008 3149 l 4023 3118 l 4037 3088 l 4050 3059 l 4063 3029 l 4075 3000 l 4087 2971 l 4100 2941 l 4112 2912 l 4126 2882 l 4140 2851 l 4156 2820 l 4173 2787 l 4192 2754 l 4213 2720 l 4236 2684 l 4260 2647 l 4288 2609 l 4318 2570 l 4350 2529 l 4386 2487 l 4424 2445 l 4464 2401 l 4507 2357 l 4553 2312 l 4600 2267 l 4649 2223 l 4699 2180 l 4750 2139 l 4800 2100 l 4862 2055 l 4922 2016 l 4979 1981 l 5033 1952 l 5083 1928 l 5130 1908 l 5174 1893 l 5215 1881 l 5254 1873 l 5290 1869 l 5323 1867 l 5355 1868 l 5385 1872 l 5413 1878 l 5439 1885 l 5464 1895 l 5488 1906 l 5510 1918 l 5531 1931 l 5551 1945 l 5570 1960 l 5588 1975 l 5604 1990 l 5619 2005 l 5633 2019 l 5646 2032 l 5657 2045 l 5667 2056 l 5675 2067 l 5682 2075 l 5687 2083 l 5692 2089 l 5695 2093 l 5697 2096 l 5699 2098 l 5700 2100 l gs col-1 s gr % Polyline n 2100 5100 m 2101 5100 l 2103 5100 l 2107 5101 l 2114 5101 l 2123 5102 l 2135 5103 l 2150 5105 l 2169 5106 l 2191 5108 l 2217 5110 l 2245 5112 l 2276 5114 l 2310 5116 l 2346 5118 l 2384 5120 l 2424 5122 l 2466 5123 l 2509 5125 l 2553 5126 l 2598 5126 l 2644 5126 l 2692 5125 l 2741 5124 l 2791 5122 l 2842 5119 l 2895 5115 l 2949 5111 l 3006 5105 l 3064 5098 l 3124 5089 l 3186 5080 l 3251 5068 l 3316 5055 l 3383 5041 l 3450 5025 l 3520 5007 l 3588 4987 l 3652 4967 l 3714 4946 l 3772 4925 l 3827 4904 l 3878 4883 l 3927 4862 l 3972 4841 l 4016 4820 l 4057 4799 l 4095 4778 l 4133 4756 l 4168 4735 l 4202 4715 l 4235 4694 l 4266 4673 l 4295 4653 l 4323 4634 l 4349 4615 l 4374 4598 l 4396 4581 l 4417 4566 l 4435 4552 l 4450 4539 l 4464 4529 l 4475 4520 l 4484 4513 l 4490 4508 l 4495 4504 l 4498 4502 l 4499 4501 l 4500 4500 l gs col-1 s gr /Times-Roman ff 300.00 scf sf 1200 4575 m gs 1 -1 sc (D) col-1 sh gr /Times-Roman ff 300.00 scf sf 6375 3375 m gs 1 -1 sc (CL1) col-1 sh gr /Times-Roman ff 300.00 scf sf 4875 900 m gs 1 -1 sc (CL2) col-1 sh gr /Times-Roman ff 300.00 scf sf 3600 900 m gs 1 -1 sc (CL0) col-1 sh gr /Times-Roman ff 300.00 scf sf 975 3375 m gs 1 -1 sc (CL1) col-1 sh gr /Times-Roman ff 300.00 scf sf 2400 6000 m gs 1 -1 sc (CL2) col-1 sh gr $F2psEnd rs scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_ruy.fig000066400000000000000000000230361514310134000261340ustar00rootroot00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single 0 1200 2 6 975 525 6900 6000 6 2550 975 2850 3225 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 2700 1050 2700 3150 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2625 3150 2775 3150 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2625 1050 2775 1050 -6 6 4950 3375 5250 5625 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 5100 3450 5100 5550 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 5025 5550 5175 5550 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 5025 3450 5175 3450 -6 6 1650 1050 6150 5550 6 1800 1200 6000 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 1200 6000 1200 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 1800 6000 1800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 3000 6000 3000 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 3600 6000 3600 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 4200 6000 4200 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 2400 6000 2400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 4800 6000 4800 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 5400 6000 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 1800 1200 1800 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 2400 1200 2400 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3000 1200 3000 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 3600 1200 3600 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4200 1200 4200 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 4800 1200 4800 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 5400 1200 5400 5400 2 1 2 1 -1 -1 10 0 -1 3.000 0 0 -1 0 0 2 6000 1200 6000 5400 -6 6 1650 1050 1950 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 5550 1950 5250 1650 5250 1650 5550 1950 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 4950 1950 4650 1650 4650 1650 4950 1950 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 4350 1950 4050 1650 4050 1650 4350 1950 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 3750 1950 3450 1650 3450 1650 3750 1950 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 3150 1950 2850 1650 2850 1650 3150 1950 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 2550 1950 2250 1650 2250 1650 2550 1950 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 1950 1950 1650 1650 1650 1650 1950 1950 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 1950 1350 1950 1050 1650 1050 1650 1350 1950 1350 -6 6 2250 1050 2550 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 5550 2550 5250 2250 5250 2250 5550 2550 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 4950 2550 4650 2250 4650 2250 4950 2550 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 4350 2550 4050 2250 4050 2250 4350 2550 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 3750 2550 3450 2250 3450 2250 3750 2550 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 3150 2550 2850 2250 2850 2250 3150 2550 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 2550 2550 2250 2250 2250 2250 2550 2550 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 1950 2550 1650 2250 1650 2250 1950 2550 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 2550 1350 2550 1050 2250 1050 2250 1350 2550 1350 -6 6 3450 1050 3750 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 5550 3750 5250 3450 5250 3450 5550 3750 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 4950 3750 4650 3450 4650 3450 4950 3750 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 4350 3750 4050 3450 4050 3450 4350 3750 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 3750 3750 3450 3450 3450 3450 3750 3750 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 3150 3750 2850 3450 2850 3450 3150 3750 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 2550 3750 2250 3450 2250 3450 2550 3750 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 1950 3750 1650 3450 1650 3450 1950 3750 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3750 1350 3750 1050 3450 1050 3450 1350 3750 1350 -6 6 4050 1050 4350 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 5550 4350 5250 4050 5250 4050 5550 4350 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 4950 4350 4650 4050 4650 4050 4950 4350 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 4350 4350 4050 4050 4050 4050 4350 4350 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 3750 4350 3450 4050 3450 4050 3750 4350 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 3150 4350 2850 4050 2850 4050 3150 4350 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 2550 4350 2250 4050 2250 4050 2550 4350 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 1950 4350 1650 4050 1650 4050 1950 4350 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4350 1350 4350 1050 4050 1050 4050 1350 4350 1350 -6 6 4650 1050 4950 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 5550 4950 5250 4650 5250 4650 5550 4950 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 4950 4950 4650 4650 4650 4650 4950 4950 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 4350 4950 4050 4650 4050 4650 4350 4950 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 3750 4950 3450 4650 3450 4650 3750 4950 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 3150 4950 2850 4650 2850 4650 3150 4950 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 2550 4950 2250 4650 2250 4650 2550 4950 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 1950 4950 1650 4650 1650 4650 1950 4950 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 4950 1350 4950 1050 4650 1050 4650 1350 4950 1350 -6 6 5250 1050 5550 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 5550 5550 5250 5250 5250 5250 5550 5550 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 4950 5550 4650 5250 4650 5250 4950 5550 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 4350 5550 4050 5250 4050 5250 4350 5550 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 3750 5550 3450 5250 3450 5250 3750 5550 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 3150 5550 2850 5250 2850 5250 3150 5550 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 2550 5550 2250 5250 2250 5250 2550 5550 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 1950 5550 1650 5250 1650 5250 1950 5550 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 5550 1350 5550 1050 5250 1050 5250 1350 5550 1350 -6 6 5850 1050 6150 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 5550 6150 5250 5850 5250 5850 5550 6150 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 4950 6150 4650 5850 4650 5850 4950 6150 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 4350 6150 4050 5850 4050 5850 4350 6150 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 3750 6150 3450 5850 3450 5850 3750 6150 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 3150 6150 2850 5850 2850 5850 3150 6150 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 2550 6150 2250 5850 2250 5850 2550 6150 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 1950 6150 1650 5850 1650 5850 1950 6150 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 6150 1350 6150 1050 5850 1050 5850 1350 6150 1350 -6 6 2850 1050 3150 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 5550 3150 5250 2850 5250 2850 5550 3150 5550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 4950 3150 4650 2850 4650 2850 4950 3150 4950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 4350 3150 4050 2850 4050 2850 4350 3150 4350 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 3750 3150 3450 2850 3450 2850 3750 3150 3750 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 3150 3150 2850 2850 2850 2850 3150 3150 3150 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 2550 3150 2250 2850 2250 2850 2550 3150 2550 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 1950 3150 1650 2850 1650 2850 1950 3150 1950 2 2 2 1 -1 -1 9 0 0 3.000 0 0 0 0 0 5 3150 1350 3150 1050 2850 1050 2850 1350 3150 1350 -6 -6 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2100 3900 75 75 2100 3900 2175 3975 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 5700 2100 75 75 5700 2100 5775 2175 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 2100 5100 75 75 2100 5100 2175 5175 1 3 0 1 -1 -1 0 0 20 0.000 1 0.0000 4500 4500 75 75 4500 4500 4575 4575 2 4 0 1 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 6225 3225 6225 975 5175 975 5175 3225 6225 3225 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 2700 3450 2700 5550 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 5100 3150 5100 1050 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3750 3300 1650 3300 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 3900 1050 3900 5550 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 4050 3300 6150 3300 2 1 1 2 -1 -1 0 0 -1 6.000 0 0 -1 0 0 2 2550 4500 1650 4500 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3825 1050 3975 1050 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3750 3225 3750 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 1650 3225 1650 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 4050 3225 4050 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 6150 3225 6150 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 5025 3150 5175 3150 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 5025 1050 5175 1050 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2550 4425 2550 4575 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2625 3450 2775 3450 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2625 5550 2775 5550 2 4 0 2 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 2625 3375 1575 3375 1575 5625 2625 5625 2625 3375 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 2625 3450 2775 3450 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 3825 5550 3975 5550 2 1 0 2 -1 -1 0 0 -1 0.000 0 0 -1 0 0 2 1650 4425 1650 4575 2 4 0 1 -1 -1 0 0 -1 0.000 0 0 7 0 0 5 5025 5625 5025 3375 3975 3375 3975 5625 5025 5625 3 2 0 2 -1 -1 0 0 -1 0.000 0 0 0 4 2100 3900 3300 3900 4800 2100 5700 2100 0.000 -1.000 -1.000 0.000 3 2 0 2 -1 -1 0 0 -1 0.000 0 0 0 3 2100 5100 3450 5025 4500 4500 0.000 -1.000 0.000 4 0 -1 0 0 0 20 0.0000 4 210 210 1200 4575 D\001 4 0 -1 0 0 0 20 0.0000 4 210 525 6375 3375 CL1\001 4 0 -1 0 0 0 20 0.0000 4 210 525 4875 900 CL2\001 4 0 -1 0 0 0 20 0.0000 4 210 525 3600 900 CL0\001 4 0 -1 0 0 0 20 0.0000 4 210 525 975 3375 CL1\001 4 0 -1 0 0 0 20 0.0000 4 210 525 2400 6000 CL2\001 -6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_synp.eps000066400000000000000000000504371514310134000263350ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Tue Dec 27 08:34:23 2005 %%For: pelegrin@brol (Francois PELLEGRINI) %%BoundingBox: 0 0 840 920 %Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 920 moveto 0 0 lineto 840 0 lineto 840 920 lineto closepath clip newpath -25.7 828.8 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 10 % Ellipse 15.000 slw n 7200 4950 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 7200 6150 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 11700 4950 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 11700 6150 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 2700 4950 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 2700 6150 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 6150 -1350 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 6150 -150 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 3750 -1350 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 3750 -150 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 4950 3150 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 4950 4350 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 4575 8700 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 4575 9900 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 10575 8700 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 10575 9900 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 8100 12450 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 8100 13650 600 150 0 360 DrawEllipse gs col-1 s gr % Ellipse n 825 12675 225 75 0 360 DrawEllipse gs col-1 s gr % Ellipse n 825 12315 225 75 0 360 DrawEllipse gs col-1 s gr /Times-Roman ff 240.00 scf sf 1275 13125 m gs 1 -1 sc (Program) col-1 sh gr % Polyline 0 slj 0 slc 7.500 slw gs clippath 8445 10947 m 8445 11115 l 8505 11115 l 8505 10947 l 8505 10947 l 8475 11067 l 8445 10947 l cp eoclip n 10350 10050 m 10350 10275 l 8475 10725 l 8475 11100 l gs col-1 s gr gr % arrowhead n 8445 10947 m 8475 11067 l 8505 10947 l col-1 s % Polyline 0.000 slw n 7800 6150 m 7800 5850 l 6600 5850 l 6600 6150 l cp gs 1.00 setgray ef gr % Polyline n 12300 6150 m 12300 5850 l 11100 5850 l 11100 6150 l cp gs 1.00 setgray ef gr % Polyline n 3300 6150 m 3300 5850 l 2100 5850 l 2100 6150 l cp gs 1.00 setgray ef gr % Polyline n 6750 -150 m 6750 -450 l 5550 -450 l 5550 -150 l cp gs 1.00 setgray ef gr % Polyline n 4350 -150 m 4350 -450 l 3150 -450 l 3150 -150 l cp gs 1.00 setgray ef gr % Polyline n 5550 4350 m 5550 4050 l 4350 4050 l 4350 4350 l cp gs 1.00 setgray ef gr % Polyline n 5175 9900 m 5175 9600 l 3975 9600 l 3975 9900 l cp gs 1.00 setgray ef gr % Polyline n 11175 9900 m 11175 9600 l 9975 9600 l 9975 9900 l cp gs 1.00 setgray ef gr % Polyline n 8700 13650 m 8700 13350 l 7500 13350 l 7500 13650 l cp gs 1.00 setgray ef gr % Polyline n 1050 12525 m 1050 12675 l 600 12675 l 600 12525 l cp gs 1.00 setgray ef gr % Polyline 7.500 slw gs clippath 7770 10947 m 7770 11115 l 7830 11115 l 7830 10947 l 7830 10947 l 7800 11067 l 7770 10947 l cp eoclip n 4950 4500 m 4950 4725 l 6150 5175 l 6150 6450 l 6675 6825 l 6675 10350 l 7800 10725 l 7800 11100 l gs col-1 s gr gr % arrowhead n 7770 10947 m 7800 11067 l 7830 10947 l col-1 s % Polyline 15.000 slw n 7800 4950 m 7800 6150 l gs col-1 s gr % Polyline n 6600 4950 m 6600 6150 l gs col-1 s gr % Polyline n 11100 4950 m 11100 6150 l gs col-1 s gr % Polyline n 12300 4950 m 12300 6150 l gs col-1 s gr % Polyline n 3300 4950 m 3300 6150 l gs col-1 s gr % Polyline n 2100 4950 m 2100 6150 l gs col-1 s gr % Polyline n 6750 -1350 m 6750 -150 l gs col-1 s gr % Polyline n 5550 -1350 m 5550 -150 l gs col-1 s gr % Polyline n 4350 -1350 m 4350 -150 l gs col-1 s gr % Polyline n 3150 -1350 m 3150 -150 l gs col-1 s gr % Polyline n 5550 3150 m 5550 4350 l gs col-1 s gr % Polyline n 4350 3150 m 4350 4350 l gs col-1 s gr % Polyline n 5175 8700 m 5175 9900 l gs col-1 s gr % Polyline n 3975 8700 m 3975 9900 l gs col-1 s gr % Polyline n 9975 8700 m 9975 9900 l gs col-1 s gr % Polyline n 11175 8700 m 11175 9900 l gs col-1 s gr % Polyline n 8700 12450 m 8700 13650 l gs col-1 s gr % Polyline n 7500 12450 m 7500 13650 l gs col-1 s gr % Polyline n 600 12300 m 600 12675 l gs col-1 s gr % Polyline n 1050 12300 m 1050 12675 l gs col-1 s gr /Times-Roman ff 240.00 scf sf 1275 12600 m gs 1 -1 sc (File) col-1 sh gr % Polyline 45.000 slw n 6300 5400 m 6000 5700 l gs col7 1.00 shd ef gr gs col7 s gr % Polyline n 6600 6600 m 6000 6675 l gs col7 1.00 shd ef gr gs col7 s gr % Polyline n 9600 10275 m 9600 10575 l gs col7 1.00 shd ef gr gs col7 s gr % Polyline n 6825 10275 m 6450 9975 l gs col7 1.00 shd ef gr gs col7 s gr /Times-Roman ff 240.00 scf sf 6855 5400 m gs 1 -1 sc (Source) col-1 sh gr /Times-Roman ff 240.00 scf sf 6735 5700 m gs 1 -1 sc (graph file) col-1 sh gr /Courier ff 240.00 scf sf 6900 6075 m gs 1 -1 sc (.grf) col-1 sh gr % Polyline 15.000 slw n 1950 7800 m 1950 7350 l 450 7350 l 450 7800 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 900 7650 m gs 1 -1 sc (mtst) col-1 sh gr /Courier ff 240.00 scf sf 11400 6075 m gs 1 -1 sc (.tgt) col-1 sh gr /Times-Roman ff 240.00 scf sf 11175 5550 m gs 1 -1 sc (Target file) col-1 sh gr % Polyline n 9075 7800 m 9075 7350 l 7575 7350 l 7575 7800 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 8025 7650 m gs 1 -1 sc (gtst) col-1 sh gr % Polyline n 13575 7800 m 13575 7350 l 12075 7350 l 12075 7800 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 12525 7650 m gs 1 -1 sc (atst) col-1 sh gr /Courier ff 240.00 scf sf 2400 6075 m gs 1 -1 sc (.msh) col-1 sh gr /Times-Roman ff 240.00 scf sf 2355 5400 m gs 1 -1 sc (Source) col-1 sh gr /Times-Roman ff 240.00 scf sf 2250 5700 m gs 1 -1 sc (mesh file) col-1 sh gr % Polyline n 4200 7800 m 4200 7350 l 2700 7350 l 2700 7800 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 3150 7650 m gs 1 -1 sc (mord) col-1 sh gr /Times-Roman ff 240.00 scf sf 5724 -720 m gs 1 -1 sc (External) col-1 sh gr /Times-Roman ff 240.00 scf sf 5670 -420 m gs 1 -1 sc (graph file) col-1 sh gr % Polyline n 6900 1050 m 6900 600 l 5400 600 l 5400 1050 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 5925 900 m gs 1 -1 sc (gcv) col-1 sh gr /Times-Roman ff 240.00 scf sf 3324 -720 m gs 1 -1 sc (External) col-1 sh gr /Times-Roman ff 240.00 scf sf 3300 -420 m gs 1 -1 sc (mesh file) col-1 sh gr % Polyline n 4500 2400 m 4500 1950 l 3000 1950 l 3000 2400 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 3375 2250 m gs 1 -1 sc (mmk_*) col-1 sh gr % Polyline n 6900 2400 m 6900 1950 l 5400 1950 l 5400 2400 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 5775 2250 m gs 1 -1 sc (gmk_*) col-1 sh gr % Polyline n 4500 1050 m 4500 600 l 3000 600 l 3000 1050 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 3525 900 m gs 1 -1 sc (mcv) col-1 sh gr /Courier ff 240.00 scf sf 4650 4275 m gs 1 -1 sc (.xyz) col-1 sh gr /Times-Roman ff 240.00 scf sf 4425 3600 m gs 1 -1 sc (Geometry) col-1 sh gr /Times-Roman ff 240.00 scf sf 4800 3900 m gs 1 -1 sc (file) col-1 sh gr % Polyline n 6450 7800 m 6450 7350 l 4950 7350 l 4950 7800 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 5400 7650 m gs 1 -1 sc (gord) col-1 sh gr % Polyline n 5700 5775 m 5700 5325 l 4200 5325 l 4200 5775 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 4425 5625 m gs 1 -1 sc (gmk_msh) col-1 sh gr /Times-Roman ff 240.00 scf sf 4425 9450 m gs 1 -1 sc (file) col-1 sh gr /Courier ff 240.00 scf sf 4275 9825 m gs 1 -1 sc (.ord) col-1 sh gr /Times-Roman ff 240.00 scf sf 4110 9150 m gs 1 -1 sc (Ordering) col-1 sh gr /Times-Roman ff 240.00 scf sf 10425 9450 m gs 1 -1 sc (file) col-1 sh gr /Times-Roman ff 240.00 scf sf 10125 9150 m gs 1 -1 sc (Mapping) col-1 sh gr /Courier ff 240.00 scf sf 10275 9825 m gs 1 -1 sc (.map) col-1 sh gr % Polyline n 11550 11550 m 11550 11100 l 10050 11100 l 10050 11550 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 10350 11400 m gs 1 -1 sc (gmtst) col-1 sh gr /Times-Roman ff 240.00 scf sf 7950 13200 m gs 1 -1 sc (file) col-1 sh gr /Times-Roman ff 240.00 scf sf 7650 12900 m gs 1 -1 sc (Graphics) col-1 sh gr % Polyline n 8850 11550 m 8850 11100 l 7350 11100 l 7350 11550 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 7725 11400 m gs 1 -1 sc (gout) col-1 sh gr % Polyline n 10200 5775 m 10200 5325 l 8700 5325 l 8700 5775 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 8925 5625 m gs 1 -1 sc (amk_grf) col-1 sh gr % Polyline n 5625 11550 m 5625 11100 l 4125 11100 l 4125 11550 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 4425 11400 m gs 1 -1 sc (gotst) col-1 sh gr % Polyline n 14400 5775 m 14400 5325 l 12900 5325 l 12900 5775 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 13350 5625 m gs 1 -1 sc (acpl) col-1 sh gr % Polyline n 12300 4050 m 12300 3600 l 10800 3600 l 10800 4050 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 11175 3900 m gs 1 -1 sc (amk_*) col-1 sh gr % Polyline n 11325 7800 m 11325 7350 l 9825 7350 l 9825 7800 l cp gs col-1 s gr /Courier-Bold ff 240.00 scf sf 10275 7650 m gs 1 -1 sc (gmap) col-1 sh gr % Polyline 7.500 slw n 2475 12150 m 2475 13800 l 450 13800 l 450 12150 l cp gs col-1 s gr % Polyline gs clippath 11145 10947 m 11145 11115 l 11205 11115 l 11205 10947 l 11205 10947 l 11175 11067 l 11145 10947 l cp eoclip n 11550 6300 m 11550 10500 l 11175 10725 l 11175 11100 l gs col-1 s gr gr % arrowhead n 11145 10947 m 11175 11067 l 11205 10947 l col-1 s % Polyline gs clippath 6120 447 m 6120 615 l 6180 615 l 6180 447 l 6180 447 l 6150 567 l 6120 447 l cp eoclip n 6150 0 m 6150 600 l gs col-1 s gr gr % arrowhead n 6120 447 m 6150 567 l 6180 447 l col-1 s % Polyline gs clippath 897 13605 m 1065 13605 l 1065 13545 l 897 13545 l 897 13545 l 1017 13575 l 897 13605 l cp eoclip n 600 13575 m 1050 13575 l gs col-1 s gr gr % arrowhead n 897 13605 m 1017 13575 l 897 13545 l col-1 s % Polyline 15.000 slw n 1050 13125 m 1050 12975 l 600 12975 l 600 13125 l cp gs col-1 s gr /Times-Roman ff 240.00 scf sf 1275 13650 m gs 1 -1 sc (Data flow) col-1 sh gr % Polyline 7.500 slw gs clippath 11520 4797 m 11520 4965 l 11580 4965 l 11580 4797 l 11580 4797 l 11550 4917 l 11520 4797 l cp eoclip n 11550 4050 m 11550 4950 l gs col-1 s gr gr % arrowhead n 11520 4797 m 11550 4917 l 11580 4797 l col-1 s % Polyline gs clippath 12795 7197 m 12795 7365 l 12855 7365 l 12855 7197 l 12855 7197 l 12825 7317 l 12795 7197 l cp eoclip n 11850 6300 m 11850 6600 l 12825 6975 l 12825 7350 l gs col-1 s gr gr % arrowhead n 12795 7197 m 12825 7317 l 12855 7197 l col-1 s % Polyline gs clippath 10245 7197 m 10245 7365 l 10305 7365 l 10305 7197 l 10305 7197 l 10275 7317 l 10245 7197 l cp eoclip n 7725 6225 m 7725 6450 l 10275 6975 l 10275 7350 l gs col-1 s gr gr % arrowhead n 10245 7197 m 10275 7317 l 10305 7197 l col-1 s % Polyline gs clippath 10845 7197 m 10845 7365 l 10905 7365 l 10905 7197 l 10905 7197 l 10875 7317 l 10845 7197 l cp eoclip n 11250 6225 m 11250 6600 l 10875 6975 l 10875 7350 l gs col-1 s gr gr % arrowhead n 10845 7197 m 10875 7317 l 10905 7197 l col-1 s % Polyline gs clippath 8070 10947 m 8070 11115 l 8130 11115 l 8130 10947 l 8130 10947 l 8100 11067 l 8070 10947 l cp eoclip n 7125 6300 m 7125 10050 l 8100 10350 l 8100 11100 l gs col-1 s gr gr % arrowhead n 8070 10947 m 8100 11067 l 8130 10947 l col-1 s % Polyline gs clippath 8295 7197 m 8295 7365 l 8355 7365 l 8355 7197 l 8355 7197 l 8325 7317 l 8295 7197 l cp eoclip n 7575 6300 m 7575 6675 l 8325 7125 l 8325 7350 l gs col-1 s gr gr % arrowhead n 8295 7197 m 8325 7317 l 8355 7197 l col-1 s % Polyline gs clippath 10545 8547 m 10545 8715 l 10605 8715 l 10605 8547 l 10605 8547 l 10575 8667 l 10545 8547 l cp eoclip n 10575 7800 m 10575 8700 l gs col-1 s gr gr % arrowhead n 10545 8547 m 10575 8667 l 10605 8547 l col-1 s % Polyline gs clippath 3420 7197 m 3420 7365 l 3480 7365 l 3480 7197 l 3480 7197 l 3450 7317 l 3420 7197 l cp eoclip n 2925 6300 m 2925 6525 l 3450 7050 l 3450 7350 l gs col-1 s gr gr % arrowhead n 3420 7197 m 3450 7317 l 3480 7197 l col-1 s % Polyline gs clippath 1170 7197 m 1170 7365 l 1230 7365 l 1230 7197 l 1230 7197 l 1200 7317 l 1170 7197 l cp eoclip n 2475 6300 m 2475 6525 l 1200 7050 l 1200 7350 l gs col-1 s gr gr % arrowhead n 1170 7197 m 1200 7317 l 1230 7197 l col-1 s % Polyline gs clippath 7020 4797 m 7020 4965 l 7080 4965 l 7080 4797 l 7080 4797 l 7050 4917 l 7020 4797 l cp eoclip n 6450 2400 m 6450 2550 l 7050 2850 l 7050 4950 l gs col-1 s gr gr % arrowhead n 7020 4797 m 7050 4917 l 7080 4797 l col-1 s % Polyline gs clippath 7320 4797 m 7320 4965 l 7380 4965 l 7380 4797 l 7380 4797 l 7350 4917 l 7320 4797 l cp eoclip n 6450 1050 m 6450 1200 l 7350 1650 l 7350 4950 l gs col-1 s gr gr % arrowhead n 7320 4797 m 7350 4917 l 7380 4797 l col-1 s % Polyline [60] 0 sd gs clippath 5070 2997 m 5070 3165 l 5130 3165 l 5130 2997 l 5130 2997 l 5100 3117 l 5070 2997 l cp eoclip n 5850 1050 m 5850 1200 l 5100 1575 l 5100 3150 l gs col-1 s gr gr [] 0 sd % arrowhead n 5070 2997 m 5100 3117 l 5130 2997 l col-1 s % Polyline [60] 0 sd gs clippath 5295 2997 m 5295 3165 l 5355 3165 l 5355 2997 l 5355 2997 l 5325 3117 l 5295 2997 l cp eoclip n 5850 2400 m 5850 2550 l 5325 2850 l 5325 3150 l gs col-1 s gr gr [] 0 sd % arrowhead n 5295 2997 m 5325 3117 l 5355 2997 l col-1 s % Polyline [60] 0 sd gs clippath 4770 2997 m 4770 3165 l 4830 3165 l 4830 2997 l 4830 2997 l 4800 3117 l 4770 2997 l cp eoclip n 4050 1050 m 4050 1200 l 4800 1575 l 4800 3150 l gs col-1 s gr gr [] 0 sd % arrowhead n 4770 2997 m 4800 3117 l 4830 2997 l col-1 s % Polyline [60] 0 sd gs clippath 4545 2997 m 4545 3165 l 4605 3165 l 4605 2997 l 4605 2997 l 4575 3117 l 4545 2997 l cp eoclip n 4050 2400 m 4050 2550 l 4575 2850 l 4575 3150 l gs col-1 s gr gr [] 0 sd % arrowhead n 4545 2997 m 4575 3117 l 4605 2997 l col-1 s % Polyline gs clippath 2820 4797 m 2820 4965 l 2880 4965 l 2880 4797 l 2880 4797 l 2850 4917 l 2820 4797 l cp eoclip n 3450 2400 m 3450 2550 l 2850 2850 l 2850 4950 l gs col-1 s gr gr % arrowhead n 2820 4797 m 2850 4917 l 2880 4797 l col-1 s % Polyline gs clippath 2520 4797 m 2520 4965 l 2580 4965 l 2580 4797 l 2580 4797 l 2550 4917 l 2520 4797 l cp eoclip n 3450 1050 m 3450 1200 l 2550 1650 l 2550 4950 l gs col-1 s gr gr % arrowhead n 2520 4797 m 2550 4917 l 2580 4797 l col-1 s % Polyline gs clippath 3720 447 m 3720 615 l 3780 615 l 3780 447 l 3780 447 l 3750 567 l 3720 447 l cp eoclip n 3750 0 m 3750 600 l gs col-1 s gr gr % arrowhead n 3720 447 m 3750 567 l 3780 447 l col-1 s % Polyline gs clippath 5670 7197 m 5670 7365 l 5730 7365 l 5730 7197 l 5730 7197 l 5700 7317 l 5670 7197 l cp eoclip n 6675 6225 m 6675 6450 l 5700 7050 l 5700 7350 l gs col-1 s gr gr % arrowhead n 5670 7197 m 5700 7317 l 5730 7197 l col-1 s % Polyline gs clippath 4695 8547 m 4695 8715 l 4755 8715 l 4755 8547 l 4755 8547 l 4725 8667 l 4695 8547 l cp eoclip n 5700 7800 m 5700 7950 l 4725 8325 l 4725 8700 l gs col-1 s gr gr % arrowhead n 4695 8547 m 4725 8667 l 4755 8547 l col-1 s % Polyline gs clippath 4047 5580 m 4215 5580 l 4215 5520 l 4047 5520 l 4047 5520 l 4167 5550 l 4047 5580 l cp eoclip n 3300 5550 m 4200 5550 l gs col-1 s gr gr % arrowhead n 4047 5580 m 4167 5550 l 4047 5520 l col-1 s % Polyline gs clippath 6447 5580 m 6615 5580 l 6615 5520 l 6447 5520 l 6447 5520 l 6567 5550 l 6447 5580 l cp eoclip n 5700 5550 m 6600 5550 l gs col-1 s gr gr % arrowhead n 6447 5580 m 6567 5550 l 6447 5520 l col-1 s % Polyline gs clippath 4395 8547 m 4395 8715 l 4455 8715 l 4455 8547 l 4455 8547 l 4425 8667 l 4395 8547 l cp eoclip n 3450 7800 m 3450 7950 l 4425 8325 l 4425 8700 l gs col-1 s gr gr % arrowhead n 4395 8547 m 4425 8667 l 4455 8547 l col-1 s % Polyline gs clippath 5145 10947 m 5145 11115 l 5205 11115 l 5205 10947 l 5205 10947 l 5175 11067 l 5145 10947 l cp eoclip n 6900 6300 m 6900 10050 l 5175 10725 l 5175 11100 l gs col-1 s gr gr % arrowhead n 5145 10947 m 5175 11067 l 5205 10947 l col-1 s % Polyline gs clippath 10770 10947 m 10770 11115 l 10830 11115 l 10830 10947 l 10830 10947 l 10800 11067 l 10770 10947 l cp eoclip n 10800 10050 m 10800 11100 l gs col-1 s gr gr % arrowhead n 10770 10947 m 10800 11067 l 10830 10947 l col-1 s % Polyline gs clippath 8070 12297 m 8070 12465 l 8130 12465 l 8130 12297 l 8130 12297 l 8100 12417 l 8070 12297 l cp eoclip n 8100 11550 m 8100 12450 l gs col-1 s gr gr % arrowhead n 8070 12297 m 8100 12417 l 8130 12297 l col-1 s % Polyline gs clippath 4545 10947 m 4545 11115 l 4605 11115 l 4605 10947 l 4605 10947 l 4575 11067 l 4545 10947 l cp eoclip n 4575 10050 m 4575 11100 l gs col-1 s gr gr % arrowhead n 4545 10947 m 4575 11067 l 4605 10947 l col-1 s % Polyline gs clippath 8547 5580 m 8715 5580 l 8715 5520 l 8547 5520 l 8547 5520 l 8667 5550 l 8547 5580 l cp eoclip n 7800 5550 m 8700 5550 l gs col-1 s gr gr % arrowhead n 8547 5580 m 8667 5550 l 8547 5520 l col-1 s % Polyline gs clippath 10947 5580 m 11115 5580 l 11115 5520 l 10947 5520 l 10947 5520 l 11067 5550 l 10947 5580 l cp eoclip n 10200 5550 m 11100 5550 l gs col-1 s gr gr % arrowhead n 10947 5580 m 11067 5550 l 10947 5520 l col-1 s % Polyline gs clippath 13680 5928 m 13680 5760 l 13620 5760 l 13620 5928 l 13620 5928 l 13650 5808 l 13680 5928 l cp eoclip n 12145 6234 m 12150 6450 l 13650 6450 l 13650 5775 l gs col-1 s gr gr % arrowhead n 13680 5928 m 13650 5808 l 13620 5928 l col-1 s % Polyline gs clippath 11820 4797 m 11820 4965 l 11880 4965 l 11880 4797 l 11880 4797 l 11850 4917 l 11820 4797 l cp eoclip n 13650 5325 m 13650 4500 l 11850 4500 l 11850 4950 l gs col-1 s gr gr % arrowhead n 11820 4797 m 11850 4917 l 11880 4797 l col-1 s % here ends figure; % % here starts figure with depth 3 % Polyline 0 slj 0 slc 7.500 slw gs clippath 10395 10947 m 10395 11115 l 10455 11115 l 10455 10947 l 10455 10947 l 10425 11067 l 10395 10947 l cp eoclip n 7350 6300 m 7350 9750 l 10425 10725 l 10425 11100 l gs col-1 s gr gr % arrowhead n 10395 10947 m 10425 11067 l 10455 10947 l col-1 s % here ends figure; $F2psEnd rs showpage %%Trailer %EOF scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_f_synp.fig000066400000000000000000000306661514310134000263150ustar00rootroot00000000000000#FIG 3.2 Produced by xfig version 3.2.5-alpha5 Landscape Center Inches Letter 100.00 Single -2 1200 2 6 6525 4725 7875 6375 1 1 0 2 -1 -1 10 0 -1 0.000 1 0.0000 7200 4950 600 150 7200 4950 7800 4950 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 7200 6150 600 150 7200 6150 7800 6300 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 7800 4950 7800 6150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 6600 4950 6600 6150 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 7800 6150 7800 5850 6600 5850 6600 6150 7800 6150 4 0 -1 7 0 0 16 0.0000 4 195 765 6855 5400 Source\001 4 0 -1 7 0 0 16 0.0000 4 255 1050 6735 5700 graph file\001 4 0 -1 7 0 12 16 0.0000 4 240 660 6900 6075 .grf\001 -6 6 375 7275 2025 7875 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 1950 7800 1950 7350 450 7350 450 7800 1950 7800 4 0 -1 7 0 14 16 0.0000 4 180 660 900 7650 mtst\001 -6 6 11025 4800 12375 6375 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 11700 4950 600 150 11700 4950 12300 5100 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 11700 6150 600 150 11700 6150 12300 6300 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 12300 6150 12300 5850 11100 5850 11100 6150 12300 6150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 11100 4950 11100 6150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 12300 4950 12300 6150 4 0 -1 7 0 12 16 0.0000 4 225 660 11400 6075 .tgt\001 4 0 -1 7 0 0 16 0.0000 4 255 1155 11175 5550 Target file\001 -6 6 7500 7275 9150 7875 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 9075 7800 9075 7350 7575 7350 7575 7800 9075 7800 4 0 -1 7 0 14 16 0.0000 4 240 660 8025 7650 gtst\001 -6 6 12000 7275 13650 7875 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 13575 7800 13575 7350 12075 7350 12075 7800 13575 7800 4 0 -1 7 0 14 16 0.0000 4 180 660 12525 7650 atst\001 -6 6 2025 4725 3375 6375 1 1 0 2 -1 -1 10 0 -1 0.000 1 0.0000 2700 4950 600 150 2700 4950 3300 4950 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 2700 6150 600 150 2700 6150 3300 6300 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 3300 6150 3300 5850 2100 5850 2100 6150 3300 6150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 3300 4950 3300 6150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 2100 4950 2100 6150 4 0 -1 7 0 12 16 0.0000 4 180 660 2400 6075 .msh\001 4 0 -1 7 0 0 16 0.0000 4 195 765 2355 5400 Source\001 4 0 -1 7 0 0 16 0.0000 4 195 1020 2250 5700 mesh file\001 -6 6 2625 7275 4275 7875 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 4200 7800 4200 7350 2700 7350 2700 7800 4200 7800 4 0 -1 7 0 14 16 0.0000 4 180 660 3150 7650 mord\001 -6 6 5475 -1575 6825 75 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 6150 -1350 600 150 6150 -1350 6750 -1200 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 6150 -150 600 150 6150 -150 6750 0 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 6750 -1350 6750 -150 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 6750 -150 6750 -450 5550 -450 5550 -150 6750 -150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 5550 -1350 5550 -150 4 0 -1 7 0 0 16 0.0000 4 195 960 5724 -720 External\001 4 0 -1 7 0 0 16 0.0000 4 255 1050 5670 -420 graph file\001 -6 6 5325 0 6975 1125 6 5325 525 6975 1125 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 6900 1050 6900 600 5400 600 5400 1050 6900 1050 4 0 -1 7 0 14 16 0.0000 4 195 495 5925 900 gcv\001 -6 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6150 0 6150 600 -6 6 3075 -1575 4425 75 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 3750 -1350 600 150 3750 -1350 4350 -1200 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 3750 -150 600 150 3750 -150 4350 0 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 4350 -1350 4350 -150 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 3150 -1350 3150 -150 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 4350 -150 4350 -450 3150 -450 3150 -150 4350 -150 4 0 -1 7 0 0 16 0.0000 4 195 960 3324 -720 External\001 4 0 -1 7 0 0 16 0.0000 4 195 1020 3300 -420 mesh file\001 -6 6 2925 1875 4575 2475 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 4500 2400 4500 1950 3000 1950 3000 2400 4500 2400 4 0 -1 7 0 14 16 0.0000 4 240 825 3375 2250 mmk_*\001 -6 6 5325 1875 6975 2475 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 6900 2400 6900 1950 5400 1950 5400 2400 6900 2400 4 0 -1 7 0 14 16 0.0000 4 240 825 5775 2250 gmk_*\001 -6 6 2925 525 4575 1125 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 4500 1050 4500 600 3000 600 3000 1050 4500 1050 4 0 -1 7 0 14 16 0.0000 4 135 495 3525 900 mcv\001 -6 6 4275 2925 5625 4575 1 1 0 2 -1 -1 10 0 -1 0.000 1 0.0000 4950 3150 600 150 4950 3150 5550 3150 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 4950 4350 600 150 4950 4350 5550 4500 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 5550 4350 5550 4050 4350 4050 4350 4350 5550 4350 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 5550 3150 5550 4350 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 4350 3150 4350 4350 4 0 -1 7 0 12 16 0.0000 4 180 660 4650 4275 .xyz\001 4 0 -1 7 0 0 16 0.0000 4 255 1125 4425 3600 Geometry\001 4 0 -1 7 0 0 16 0.0000 4 195 360 4800 3900 file\001 -6 6 4875 7275 6525 7875 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 6450 7800 6450 7350 4950 7350 4950 7800 6450 7800 4 0 -1 7 0 14 16 0.0000 4 240 660 5400 7650 gord\001 -6 6 4125 5250 5775 5850 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 5700 5775 5700 5325 4200 5325 4200 5775 5700 5775 4 0 -1 7 0 14 16 0.0000 4 240 1155 4425 5625 gmk_msh\001 -6 6 3900 8475 5250 10125 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 4575 8700 600 150 4575 8700 5175 8850 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 4575 9900 600 150 4575 9900 5175 10050 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 5175 9900 5175 9600 3975 9600 3975 9900 5175 9900 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 5175 8700 5175 9900 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 3975 8700 3975 9900 4 0 -1 7 0 0 16 0.0000 4 195 360 4425 9450 file\001 4 0 -1 7 0 12 16 0.0000 4 180 660 4275 9825 .ord\001 4 0 -1 7 0 0 16 0.0000 4 255 1020 4110 9150 Ordering\001 -6 6 9900 8550 11250 10125 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 10575 8700 600 150 10575 8700 11175 8850 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 10575 9900 600 150 10575 9900 11175 10050 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 11175 9900 11175 9600 9975 9600 9975 9900 11175 9900 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 9975 8700 9975 9900 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 11175 8700 11175 9900 4 0 -1 7 0 0 16 0.0000 4 195 360 10425 9450 file\001 4 0 -1 7 0 0 16 0.0000 4 255 975 10125 9150 Mapping\001 4 0 -1 7 0 12 16 0.0000 4 180 660 10275 9825 .map\001 -6 6 9975 11025 11625 11625 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 11550 11550 11550 11100 10050 11100 10050 11550 11550 11550 4 0 -1 7 0 14 16 0.0000 4 240 825 10350 11400 gmtst\001 -6 6 7425 12300 8775 13875 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 8100 12450 600 150 8100 12450 8700 12600 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 8100 13650 600 150 8100 13650 8700 13800 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 8700 12450 8700 13650 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 8700 13650 8700 13350 7500 13350 7500 13650 8700 13650 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 7500 12450 7500 13650 4 0 -1 7 0 0 16 0.0000 4 195 360 7950 13200 file\001 4 0 -1 7 0 0 16 0.0000 4 255 1020 7650 12900 Graphics\001 -6 6 7275 11025 8925 11625 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 8850 11550 8850 11100 7350 11100 7350 11550 8850 11550 4 0 -1 7 0 14 16 0.0000 4 240 660 7725 11400 gout\001 -6 6 450 12150 2475 13800 6 525 12225 2175 13650 6 525 12225 1125 12825 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 825 12675 225 75 825 12675 1050 12750 1 1 0 2 -1 -1 10 0 -1 0.000 1 -0.0000 825 12315 225 75 825 12315 1050 12390 2 2 0 0 -1 -1 9 0 0 0.000 0 0 0 0 0 5 1050 12525 1050 12675 600 12675 600 12525 1050 12525 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 600 12300 600 12675 2 1 0 2 -1 -1 8 0 -1 0.000 0 0 -1 0 0 2 1050 12300 1050 12675 -6 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 600 13575 1050 13575 2 2 0 2 -1 -1 5 0 -1 0.000 0 0 0 0 0 5 1050 13125 1050 12975 600 12975 600 13125 1050 13125 4 0 -1 5 0 -1 16 0.0000 4 195 1065 1275 13650 Data flow\001 4 0 -1 8 0 -1 16 0.0000 4 195 435 1275 12600 File\001 4 0 -1 10 0 -1 16 0.0000 4 255 960 1275 13125 Program\001 -6 2 2 0 1 -1 -1 6 0 -1 0.000 0 0 7 0 0 5 2475 12150 2475 13800 450 13800 450 12150 2475 12150 -6 6 8625 5250 10275 5850 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 10200 5775 10200 5325 8700 5325 8700 5775 10200 5775 4 0 -1 7 0 14 16 0.0000 4 240 1155 8925 5625 amk_grf\001 -6 6 4050 11025 5700 11625 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 5625 11550 5625 11100 4125 11100 4125 11550 5625 11550 4 0 -1 7 0 14 16 0.0000 4 240 825 4425 11400 gotst\001 -6 6 12825 5250 14475 5850 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 14400 5775 14400 5325 12900 5325 12900 5775 14400 5775 4 0 -1 7 0 14 16 0.0000 4 240 660 13350 5625 acpl\001 -6 6 10725 3525 12375 4950 6 10725 3525 12375 4125 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 12300 4050 12300 3600 10800 3600 10800 4050 12300 4050 4 0 -1 7 0 14 16 0.0000 4 240 825 11175 3900 amk_*\001 -6 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 11550 4050 11550 4950 -6 6 9750 7275 11400 7875 2 2 0 2 -1 -1 7 0 -1 0.000 0 0 7 0 0 5 11325 7800 11325 7350 9825 7350 9825 7800 11325 7800 4 0 -1 7 0 14 16 0.0000 4 195 660 10275 7650 gmap\001 -6 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 11850 6300 11850 6600 12825 6975 12825 7350 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 7725 6225 7725 6450 10275 6975 10275 7350 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 11250 6225 11250 6600 10875 6975 10875 7350 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 7125 6300 7125 10050 8100 10350 8100 11100 2 1 0 1 -1 -1 6 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 11550 6300 11550 10500 11175 10725 11175 11100 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 7575 6300 7575 6675 8325 7125 8325 7350 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 10575 7800 10575 8700 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 2925 6300 2925 6525 3450 7050 3450 7350 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 2475 6300 2475 6525 1200 7050 1200 7350 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 6450 2400 6450 2550 7050 2850 7050 4950 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 6450 1050 6450 1200 7350 1650 7350 4950 2 1 1 1 -1 -1 5 0 -1 4.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 5850 1050 5850 1200 5100 1575 5100 3150 2 1 1 1 -1 -1 5 0 -1 4.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 5850 2400 5850 2550 5325 2850 5325 3150 2 1 1 1 -1 -1 5 0 -1 4.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 4050 1050 4050 1200 4800 1575 4800 3150 2 1 1 1 -1 -1 5 0 -1 4.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 4050 2400 4050 2550 4575 2850 4575 3150 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 3450 2400 3450 2550 2850 2850 2850 4950 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 3450 1050 3450 1200 2550 1650 2550 4950 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3750 0 3750 600 2 1 0 1 -1 -1 9 0 -1 0.000 0 0 -1 1 0 8 0 0 1.00 60.00 120.00 4950 4500 4950 4725 6150 5175 6150 6450 6675 6825 6675 10350 7800 10725 7800 11100 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 6675 6225 6675 6450 5700 7050 5700 7350 2 1 0 4 7 7 8 -1 20 0.000 0 0 -1 0 0 2 6300 5400 6000 5700 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 5700 7800 5700 7950 4725 8325 4725 8700 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3300 5550 4200 5550 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 5700 5550 6600 5550 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 3450 7800 3450 7950 4425 8325 4425 8700 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 6900 6300 6900 10050 5175 10725 5175 11100 2 1 0 4 7 7 8 -1 20 0.000 0 0 -1 0 0 2 6600 6600 6000 6675 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 10800 10050 10800 11100 2 1 0 1 -1 -1 10 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 10350 10050 10350 10275 8475 10725 8475 11100 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8100 11550 8100 12450 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4575 10050 4575 11100 2 1 0 1 -1 -1 3 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 7350 6300 7350 9750 10425 10725 10425 11100 2 1 0 4 7 7 8 -1 20 0.000 0 0 -1 0 0 2 9600 10275 9600 10575 2 1 0 4 7 7 8 -1 20 0.000 0 0 -1 0 0 2 6825 10275 6450 9975 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 7800 5550 8700 5550 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 10200 5550 11100 5550 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 12145 6234 12150 6450 13650 6450 13650 5775 2 1 0 1 -1 -1 5 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 13650 5325 13650 4500 11850 4500 11850 4950 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_i.tex000066400000000000000000001276601514310134000253030ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_i.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Introductions % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} \subsection{Static mapping} The efficient execution of a parallel program on a parallel machine requires that the communicating processes of the program be assigned to the processors of the machine so as to minimize its overall running time. When processes have a limited duration and their logical dependencies are accounted for, this optimization problem is referred to as \emph{scheduling}. When processes are assumed to coexist simultaneously for the entire duration of the program, it is referred to as \emph{mapping}. It amounts to balancing the computational weight of the processes among the processors of the machine, while reducing the cost of communication by keeping intensively inter-communicating processes on nearby processors. In most cases, the underlying computational structure of the parallel programs to map can be conveniently modeled as a graph in which vertices correspond to processes that handle distributed pieces of data, and edges reflect data dependencies. The mapping problem can then be addressed by assigning processor labels to the vertices of the graph, so that all processes assigned to some processor are loaded and run on it. In a SPMD context, this is equivalent to the \emph{distribution\/} across processors of the data structures of parallel programs; in this case, all pieces of data assigned to some processor are handled by a single process located on this processor. A mapping is called \emph{static\/} if it is computed prior to the execution of the program. Static mapping is NP-complete in the general case~\cite{gajo79}. Therefore, many studies have been carried out in order to find sub-optimal solutions in reasonable time, including the development of specific algorithms for common topologies such as the hypercube~\cite{errasa90,hamm92}. When the target machine is assumed to have a communication network in the shape of a complete graph, the static mapping problem turns into the \emph{partitioning\/} problem, which has also been intensely studied~\cite{basi94,hele93a,kaku95a,kaku95c,posili90}. However, when mapping onto parallel machines the communication network of which is not a bus, not accounting for the topology of the target machine usually leads to worse running times, because simple cut minimization can induce more expensive long-distance communication~\cite{hamm92,wacrevjo95}. \subsection{Sparse matrix ordering} Many scientific and engineering problems can be modeled by sparse linear systems, which are solved either by iterative or direct methods. To achieve efficiency with direct methods, one must minimize the fill-in induced by factorization. This fill-in is a direct consequence of the order in which the unknowns of the linear system are numbered, and its effects are critical both in terms of memory and computation costs. \\ An efficient way to compute fill reducing orderings of symmetric sparse matrices is to use recursive nested dissection~\cite{geli81}. It amounts to computing a vertex set~$S$ that separates the graph into two parts~$A$ and~$B$, ordering $S$ with the highest indices that are still available, and proceeding recursively on parts~$A$ and~$B$ until their sizes become smaller than some threshold value. This ordering guarantees that, at each step, no non-zero term can appear in the factorization process between unknowns of~$A$ and unknowns of~$B$. The main issue of the nested dissection ordering algorithm is thus to find small vertex separators that balance the remaining subgraphs as evenly as possible, in order to minimize fill-in and to increase concurrency in the factorization process. \subsection{Contents of this document} This document describes the capabilities and operations of \scotch, a software package devoted to static mapping, graph and mesh partitioning, and sparse matrix block ordering. \scotch\ allows the user to map efficiently any kind of weighted process graph onto any kind of weighted architecture graph, and provides high-quality block orderings of sparse matrices. The rest of this manual is organized as follows. Section~\ref{sec-project} presents the goals of the \scotch\ project. Sections~\ref{sec-algo-map} and~\ref{sec-algo-order} outline the most important aspects of the mapping and ordering algorithms that it implements, respectively. Section~\ref{sec-changes} summarizes the most important changes between version~\textsc{5.0} and previous versions. Section~\ref{sec-file} defines the formats of the files used in \scotch, section~\ref{sec-prog} describes the programs of the \scotch\ distribution, and section~\ref{sec-lib} defines the interface and operations of the \libscotch\ library. Section~\ref{sec-install} explains how to obtain and install the \scotch\ distribution. Finally, some practical examples are given in section~\ref{sec-examples}, and instructions on how to implement new methods in the \libscotch\ library are provided in section~\ref{sec-coding}. \section{The \scotch\ project} \label{sec-project} \subsection{Description} \scotch\ is a project carried out at the \textit{Laboratoire Bordelais de Recherche en Informatique\/} (LaBRI) of the Universit\'e de Bordeaux and within the Tadaam team-project of INRIA Bordeaux Sud-Ouest. Its goal is to study the application of graph theory to scientific computing. It focused first on static mapping, and has resulted in the development of the Dual Recursive Bipartitioning (or DRB) mapping algorithm and in the study of several graph bipartitioning heuristics~\cite{pell94a}, all of which have been implemented in the \scotch\ software package~\cite{pero96a}. Then, it focused on the computation of high-quality vertex separators for the ordering of sparse matrices by nested dissection, by extending the work that has been done on graph partitioning in the context of static mapping~\cite{pero97a,peroam99}. The ordering capabilities of \scotch\ have then been extended to native mesh structures, thanks to hypergraph partitioning algorithms. Diffusion-based graph partitioning methods have also been added~\cite{chpe06a,pell07b}. Version \textsc{5.0} of \scotch\ was the first one to comprise parallel graph ordering routines. The parallel features of \scotch\ are referred to as \ptscotch\ (``\emph{Parallel Threaded \scotch}''). While both packages share a significant amount of code, because \ptscotch\ transfers control to the sequential routines of the \libscotch\ library when the subgraphs on which it operates are located on a single processor, the two sets of routines have a distinct user's manual. Readers interested in the parallel features of \scotch\ should refer to the \emph{\ptscotch\ \textsc{\scotchver} User's Guide}~\scotchcitepuser. Version \textsc{6.0} of \scotch\ is oriented towards the development of new features, namely graph repartitioning and remapping~\cite{fope11a}. A whole set of direct $k$-way graph partitioning and mapping algorithms has also been implemented. Also, new target architectures have been created, to allow \scotch\ to map efficiently onto parts of regular target architectures~\cite{pellegrini:hal-01671156}, as it is the case when considering a potentially non-connected partition of a big machine, as provided by a batch scheduler. \subsection{Availability} Starting from version \textsc{4.0}, which has been developed at INRIA within the ScAlApplix project, \scotch\ is available under a dual licensing basis. On the one hand, it is downloadable from the \scotch\ web page as free/libre software, to all interested parties willing to use it as a library or to contribute to it as a testbed for new partitioning and ordering methods. On the other hand, it can also be distributed, under other types of licenses and conditions, to parties willing to embed it tightly into closed, proprietary software. \\ The free/libre software license under which \scotch\ \textsc{\scotchver} is distributed is the CeCILL-C license~\cite{cecill}, which has basically the same features as the GNU LGPL (``\textit{Lesser General Public License}''): ability to link the code as a library to any free/libre or even proprietary software, ability to modify the code and to redistribute these modifications. Version \textsc{4.0} of \scotch\ was distributed under the LGPL itself. \\ Please refer to section~\ref{sec-install} to see how to obtain the free/libre distribution of \scotch. \section{Static mapping algorithms} \label{sec-algo-map} The parallel program to be mapped onto the target architecture is modeled by a valuated unoriented graph $S$ called \emph{source graph\/} or \emph{process graph}, the vertices of which represent the processes of the parallel program, and the edges of which the communication channels between communicating processes. Vertex- and edge- valuations associate with every vertex $v_S$ and every edge $e_S$ of $S$ integer numbers $w_S(v_S)$ and $w_S(e_S)$ which estimate the computation weight of the corresponding process and the amount of communication to be transmitted on the channel, respectively. The target machine onto which is mapped the parallel program is also modeled by a valuated unoriented graph $T$ called \emph{target graph\/} or \emph{architecture graph}. Vertices $v_T$ and edges $e_T$ of $T$ are assigned integer weights $w_T(v_T)$ and $w_T(e_T)$, which estimate the computational power of the corresponding processor and the cost of traversal of the inter-processor link, respectively. A \emph{mapping} from $S$ to $T$ consists of two applications $\too{S,T} : V(S) \rghta V(T)$ and $\roo{S,T} : E(S) \rghta {\cal P}(E(T))$, where ${\cal P}(E(T))$ denotes the set of all simple loopless paths which can be built from $E(T)$. $\too{S,T}(v_S) = v_T$ if process $v_S$ of $S$ is mapped onto processor $v_T$ of $T$, and $\roo{S,T}(e_S) = \{ e^1_T, e^2_T, \ldots, e^n_T \}$ if communication channel $e_S$ of $S$ is routed through communication links $e^1_T$, $e^2_T$, \ldots, $e^n_T$ of $T$. $|\roo{S,T}(e_S)|$ denotes the dilation of edge $e_S$, that is, the number of edges of $E(T)$ used to route $e_S$. \subsection{Cost function and performance criteria} The computation of efficient static mappings requires an \emph{a priori\/} knowledge of the dynamic behavior of the target machine with respect to the programs which are run on it. This knowledge is synthesized in a \emph{cost function}, the nature of which determines the characteristics of the desired optimal mappings. The goal of our mapping algorithm is to minimize some communication cost function, while keeping the load balance within a specified tolerance. The communication cost function $f_C$ that we have chosen is the sum, for all edges, of their dilation multiplied by their weight: \bn f_C(\too{S,T},\roo{S,T}) \eqdef \hspace*{-0.25cm}\sum\limits_{e_S\in E(S)}\hspace*{-0.25cm} w_S(e_S)\,|\roo{S,T}(e_S)|\enspace. \en This function, which has already been considered by several authors for hypercube target topologies~\cite{errasa90,hamm92,hele94b}, has several interesting properties: it is easy to compute, allows incremental updates performed by iterative algorithms, and its minimization favors the mapping of intensively intercommunicating processes onto nearby processors; regardless of the type of routing implemented on the target machine (store-and-forward or cut-through), it models the traffic on the interconnection network and thus the risk of congestion. The strong positive correlation between values of this function and effective execution times has been experimentally verified by Hammond~\cite{hamm92} on the CM-2, and by Hendrickson and Leland~\cite{hele94a} on the nCUBE~2. \hfill~\\ The quality of mappings is evaluated with respect to the criteria for quality that we have chosen: the balance of the computation load across processors, and the minimization of the inter-processor communication cost modeled by function~$f_C$. These criteria lead to the definition of several parameters, which are described below. For load balance, one can define $\mmap$, the average load per computational power unit (which does not depend on the mapping), and $\dmap$, the load imbalance ratio, as\\[-0.5em] \bn \mmap \eqdef {\sum\limits_{v_S \in V(S)} w_S(v_S) \over \sum\limits_{v_T \in V(T)} w_T(v_T)} \hspace*{2.5em}\mbox{~and~} \en \bn \dmap \eqdef {\sum\limits_{v_T \in V(T)} \left|\left(\!\!{1 \over w_T(v_T)}\hspace*{-0.3em} \sum\limits_{\scriptsize \shortstack{$v_S \in V(S)$\\[-0.2em] $\too{S,T}(v_S) = v_T$}} \hspace*{-0.2em} w_S(v_S)\!\!\right)\:-\:\mmap\right| \over \sum\limits_{v_S \in V(S)} w_S(v_S)}\enspace. \en However, since the maximum load imbalance ratio is provided by the user in input of the mapping, the information given by these parameters is of little interest, since what matters is the minimization of the communication cost function under this load balance constraint. For communication, the straightforward parameter to consider is $f_C$. It can be normalized as $\mexp$, the average edge expansion, which can be compared to $\mdil$, the average edge dilation; these are defined as\\[-1.3em] \bn \mexp \eqdef {f_C \over \sum\limits_{e_S \in E(S)} w_S(e_S)} \hspace*{2.5em}\mbox{~and~}\hspace*{2.5em} \mdil \eqdef {\sum\limits_{e_S \in E(S)}|\roo{S,T}(e_S)| \over |E(S)|} \enspace. \en $\dexp \eqdef {\mexp \over \mdil}$ is smaller than $1$ when the mapper succeeds in putting heavily intercommunicating processes closer to each other than it does for lightly communicating processes; they are equal if all edges have same weight. \subsection{The Dual Recursive Bipartitioning algorithm} \label{sec-algo-drb} This mapping algorithm, which is the primary way to compute initial static mappings, uses a \emph{divide and conquer\/} approach to recursively allocate subsets of processes to subsets of processors~\cite{pell94a,pero96b}. It starts by considering a set of processors, also called \emph{domain}, containing all the processors of the target machine, and with which is associated the set of all the processes to map. At each step, the algorithm bipartitions a yet unprocessed domain into two disjoint subdomains, and calls a \emph{graph bipartitioning algorithm\/} to split the subset of processes associated with the domain across the two subdomains, as sketched in the following. \noi {\renewcommand{\baselinestretch}{0.95}\footnotesize\tt {% \begin{verbatim} mapping (D, P) Set_Of_Processors D; Set_Of_Processes P; { Set_Of_Processors D0, D1; Set_Of_Processes P0, P1; if (|P| == 0) return; /* If nothing to do. */ if (|D| == 1) { /* If one processor in D */ result (D, P); /* P is mapped onto it. */ return; } (D0, D1) = processor_bipartition (D); (P0, P1) = process_bipartition (P, D0, D1); mapping (D0, P0); /* Perform recursion. */ mapping (D1, P1); } \end{verbatim}}} \noi The association of a subdomain with every process defines a \emph{partial mapping\/} of the process graph. As bipartitionings are performed, the subdomain sizes decrease, up to give a complete mapping when all subdomains are of size~one. \\ The above algorithm lies on the ability to define five main objects: \begin{itemize} \item a \emph{domain structure}, which represents a set of processors in the target architecture; \item a \emph{domain bipartitioning function}, which, given a domain, bipartitions it in two disjoint subdomains; \item a \emph{domain distance function}, which gives, in the target graph, a measure of the distance between two disjoint domains. Since domains may not be convex nor connected, this distance may be estimated. However, it must respect certain homogeneity properties, such as giving more accurate results as domain sizes decrease~\cite{pero96b,pellegrini:hal-01671156}. The domain distance function is used by the graph bipartitioning algorithms to compute the communication function to minimize, since it allows the mapper to estimate the dilation of the edges that link vertices which belong to different domains. Using such a distance function amounts to considering that all routings will use shortest paths on the target architecture, which is how most parallel machines actually do. We have thus chosen that our program would not provide routings for the communication channels, leaving their handling to the communication system of the target machine; \item a \emph{process subgraph structure}, which represents the subgraph induced by a subset of the vertex set of the original source graph; \item a \emph{process subgraph bipartitioning function}, which bipartitions subgraphs in two disjoint pieces to be mapped onto the two subdomains computed by the domain bipartitioning function. \end{itemize} All these routines are seen as black boxes by the mapping program, which can thus accept any kind of target architecture and process bipartitioning functions. \subsubsection{Partial cost function} The production of efficient complete mappings requires that all graph bipartitionings favor the criteria that we have chosen. Therefore, the bipartitioning of a subgraph~$S'$ of $S$ should maintain load balance within the user-specified tolerance, and minimize the \emph{partial\/} communication cost function $f'_C$, defined as \bn f'_C(\too{S,T},\roo{S,T}) \eqdef \hspace*{-0.45cm}\sum\limits_{\mbox{\scriptsize \shortstack{$v\in V(S')$\\ $\{v,v'\}\in E(S)$}}}\hspace*{-0.45cm} w_S(\{v,v'\})\,|\roo{S,T}(\{v,v'\})|\enspace, \en which accounts for the dilation of edges internal to subgraph~$S'$ as well as for the one of edges which belong to the cocycle of $S'$, as shown in Figure~\ref{fig-bipcost}. Taking into account the partial mapping results issued by previous bipartitionings makes it possible to avoid local choices that might prove globally bad, as explained below. This amounts to incorporating additional constraints to the standard graph bipartitioning problem, turning it into a more general optimization problem termed \emph{skewed graph partitioning\/} by some authors~\cite{heledr97}. \begin{figure}[hbt] \hfill \parbox[b]{4.9cm}{ \hfill \includegraphics[scale=0.40]{s_f_rua.eps} \hfill\\ \textbf{a.} Initial position. }\ \hfill\ \parbox[b]{4.9cm}{ \hfill \includegraphics[scale=0.40]{s_f_rub.eps} \hfill\\ \textbf{b.} After one vertex is moved. }\hfill\ \caption% {Edges accounted for in the partial communication cost function when bipartitioning the subgraph associated with domain~$D$ between the two subdomains $D_0$ and $D_1$ of~$D$. Dotted edges are of dilation zero, their two ends being mapped onto the same subdomain. Thin edges are cocycle edges.} \label{fig-bipcost} \end{figure} \subsubsection{Execution scheme} From an algorithmic point of view, our mapper behaves as a greedy algorithm, since the mapping of a process to a subdomain is never reconsidered, and at each step of which iterative algorithms can be applied. The double recursive call performed at each step induces a recursion scheme in the shape of a binary tree, each vertex of which corresponds to a bipartitioning job, that is, the bipartitioning of both a domain and its associated subgraph. In the case of depth-first sequencing, as written in the above sketch, bipartitioning jobs run in the left branches of the tree have no information on the distance between the vertices they handle and neighbor vertices to be processed in the right branches. On the contrary, sequencing the jobs according to a by-level (breadth-first) travel of the tree allows any bipartitioning job of a given level to have information on the subdomains to which all the processes have been assigned at the previous level. Thus, when deciding in which subdomain to put a given process, a bipartitioning job can account for the communication costs induced by its neighbor processes, whether they are handled by the job itself or not, since it can estimate in $f'_C$ the dilation of the corresponding edges. This results in an interesting feedback effect: once an edge has been kept in a cut between two subdomains, the distance between its end vertices will be accounted for in the partial communication cost function to be minimized, and following jobs will be more likely to keep these vertices close to each other, as illustrated in Figure~\ref{fig-biprub}. \begin{figure}[hbt] \hfill \parbox[b]{5.2cm}{ \hfill \includegraphics[scale=0.40]{s_f_run.eps} \hfill\\ \textbf{a.} Depth-first sequencing. }\ \hfill\ \parbox[b]{5.2cm}{ \hfill \includegraphics[scale=0.40]{s_f_ruy.eps} \hfill\\ \textbf{b.} Breadth-first sequencing. }\hfill\ % \caption% {Influence of depth-first and breadth-first sequencings on the bipartitioning of a domain~$D$ belonging to the leftmost branch of the bipartitioning tree. With breadth-first sequencing, the partial mapping data regarding vertices belonging to the right branches of the bipartitioning tree are more accurate (C.L. stands for ``Cut Level'').} \label{fig-biprub} \end{figure} The relative efficiency of depth-first and breadth-first sequencing schemes with respect to the structure of the source and target graphs is discussed in~\cite{pero96b}. \subsubsection{Clustering by mapping onto variable-sized architectures} \label{sec-algo-variable} \index{Architecture|Variable-sized!see Clustering} \index{Clustering} Several constrained graph partitioning problems can be modeled as mapping the problem graph onto a target architecture, the number of vertices and topology of which depend dynamically on the structure of the subgraphs to bipartition at each step. Variable-sized architectures are supported by the DRB algorithm in the following way: at the end of each bipartitioning step, if any of the variable subdomains is empty (that is, all vertices of the subgraph are mapped only to one of the subdomains), then the DRB process stops for both subdomains, and all of the vertices are assigned to their parent subdomain; else, if a variable subdomain has only one vertex mapped onto it, the DRB process stops for this subdomain, and the vertex is assigned to it. The moment when to stop the DRB process for a specific subgraph can be controlled by defining a bipartitioning strategy that checks the validity of a criterion at each bipartitioning step (see for instance Section~\ref{sec-lib-func-stratgraphclusterbuild}), and maps all of the subgraph vertices to one of the subdomains when it becomes false. \subsection{Static mapping methods} \label{sec-algo-map-methods} The core of our static mapping software uses graph mapping methods as black boxes. It maintains an internal image of the current mapping, which records the target vertex index onto which each of the source graph vertices is mapped. It is therefore possible to apply several mapping methods in sequence, such that the first method computes an initial mapping to be further refined by the following methods, thus enabling us to define \emph{static mapping strategies}. The currently implemented static mapping methods are listed below. \begin{itemize} \iteme[\textbf{Multilevel}]\label{sec-algo-mle} This framework, which has been studied by several authors~\cite{basi94,hele93b,kaku95a} and should be considered as a strategy rather than as a method since it uses other methods as parameters, repeatedly reduces the size of the graph to map by finding matchings that collapse vertices and edges, computes a mapping of the coarsest graph obtained, and prolongs the result back to the original graph, as shown in Figure~\ref{fig-multiproc}. \begin{figure}[hbt] ~\hfill\includegraphics[scale=0.50]{s_f_mult.eps}\hfill\ ~ \caption% {The multilevel partitioning process. In the uncoarsening phase, the light and bold lines represent for each level the prolonged partition obtained from the coarser graph, and the partition obtained after refinement, respectively.} \label{fig-multiproc} \end{figure} The multilevel method, when used in conjunction with some local optimization methods to refine the projected partitions at every level, usually leads to a significant improvement in quality with respect to methods operating only on the finest graph. By coarsening the graphs, the multilevel algorithm broadens the scope of local optimization algorithms: it makes possible for them to account for topological structures of the original graph that would else be of a too high level for them to be encompassed in their local optimization process. \iteme[\textbf{Band}]\label{sec-algo-band} Like the multilevel method above, the band method is a framework, in the sense that it does not itself compute partitions, but rather helps other partitioning algorithms perform better. It is a refinement algorithm which, from a given initial partition, extracts a band graph of given width (which only contains graph vertices that are at most at this distance from the frontiers of the parts), calls a partitioning strategy on this band graph, and projects back the refined partition on the original graph. This method was designed to be able to use expensive partitioning heuristics, such as genetic algorithms, on large graphs, as it dramatically reduces the problem space by several orders of magnitude. However, it was found that, in a multilevel context, it also improves partition quality, by coercing partitions in a problem space that derives from the one which was globally defined at the coarsest level, thus preventing local optimization refinement algorithms to be trapped in local optima of the finer graphs~\cite{chpe06a}. \iteme[\textbf{Fiduccia-Mattheyses}] This is a direct $k$-way version of the traditional Fiduccia-Mattheyses heuristics used for computing bipartitions, that will be presented in the next section. By default, boundary vertices can only be moved to parts to which at least one of their neighbors belong. \iteme[\textbf{Diffusion}] This is also a $k$-way version of an algorithm that has been first used in the context of bipartitioning, and which will be presented in the next section. The $k$-way version differs from the latter as it diffuses $k$ sorts of liquids rather than just two as in the bipartitioning case. \iteme[\textbf{Exactifier}]\label{sec-algo-map-exact} This greedy algorithm refines its input mapping so as to reduce load imbalance as much as possible. Since this method does not consider load balance minimization, its use should be restricted to cases where achieving load balance is critical and where recursive bipartitioning may fail to achieve it. It is especially the case when vertex loads are very irregular: some subdomains may receive only a few heavy vertices, yielding load balance artifacts when no light vertices are locally available to compensate. Graph vertices are sorted by decreasing weights, and considered in turn. If the current vertex can fit in its initial part without causing imbalance by excess, it is added to it, and the algorithm goes on. Else, a candidate part is found by exploring other subdomains in an order based on an implicit recursive bipartitioning of the architecture graph. Consequently, such vertices will be placed in subdomains that tend to be as close as possible to the original location of the vertex. This method is most likely to result in disconnected parts. \iteme[\textbf{Dual recursive bipartitioning}] This algorithm implements the dual recursive bipartitioning algorithm that has been presented in Section~\ref{sec-algo-drb}. The DRB algorithms can be used either directly on the original graph to partition, or on the coarsest graph yielded by the direct $k$-way multilevel framework. It uses graph bipartitioning methods, described below, to compute its bipartitions. \end{itemize} \subsection{Graph bipartitioning methods} \label{sec-algo-bipart} The core of our dual recursive bipartitioning mapping algorithm uses process graph bipartitioning methods as black boxes. It allows the mapper to run any type of graph bipartitioning method compatible with our criteria for quality. Bipartitioning jobs maintain an internal image of the current bipartition, indicating for every vertex of the job whether it is currently assigned to the first or to the second subdomain. It is therefore possible to apply several different methods in sequence, each one starting from the result of the previous one, and to select the methods with respect to the job characteristics, thus enabling us to define \emph{graph bipartitioning strategies}. The currently implemented graph bipartitioning methods are listed below. \begin{itemize} \iteme[\textbf{Diffusion}] This global optimization method, presented in~\cite{pell07b}, flows two kinds of antagonistic liquids, scotch and anti-scotch, from two source vertices, and sets the new frontier as the limit between vertices which contain scotch and the ones which contain anti-scotch. In order to add load-balancing constraints to the algorithm, a constant amount of liquid disappears from every vertex per unit of time, so that no domain can spread across more than half of the vertices. Because selecting the source vertices is essential to the obtainment of useful results, this method has been hard-coded so that the two source vertices are the two vertices of highest indices, since in the band method these are the anchor vertices which represent all of the removed vertices of each part. Therefore, this method must be used on band graphs only, or on specifically crafted graphs. \iteme[\textbf{Exactifier}] This greedy algorithm refines the current partition so as to reduce load imbalance as much as possible, while keeping the value of the communication cost function as small as possible. The vertex set is scanned in order of decreasing vertex weights, and vertices are moved from one subdomain to the other if doing so reduces load imbalance. When several vertices have same weight, the vertex whose swap decreases most the communication cost function is selected first. This method is used in post-processing of other methods when load balance is mandatory. For weighted graphs, the strict enforcement of load balance may cause the swapping of isolated vertices of small weight, thus greatly increasing the cut. Therefore, great care should be taken when using this method if connectivity or cut minimization are mandatory. \iteme[\textbf{Fiduccia-Mattheyses}]\label{sec-algo-fme} The Fiduccia-Mattheyses heuristics~\cite{fima82} is an almost-linear improvement of the famous Kernighan-Lin algorithm~\cite{keli70}. It tries to improve the bipartition that is input to it by incrementally moving vertices between the subsets of the partition, as long as it can find sequences of moves that lower its communication cost. By considering sequences of moves instead of single swaps, the algorithm allows hill-climbing from local minima of the cost function. As an extension to the original Fiduccia-Mattheyses algorithm, we have developed new data structures, based on logarithmic indexings of arrays, that allow us to handle weighted graphs while preserving the almost-linearity in time of the algorithm~\cite{pero96b}. As several authors quoted before~\cite{hele93c,kaku95b}, the Fiduccia-Mattheyses algorithm gives better results when trying to optimize a good starting partition. Therefore, it should not be used on its own, but rather after greedy starting methods such as the Gibbs-Poole-Stockmeyer or the greedy graph growing methods. \iteme[\textbf{Gibbs-Poole-Stockmeyer}] This greedy bipartitioning method derives from an algorithm proposed by Gibbs, Poole, and Stockmeyer to minimize the dilation of graph orderings, that is, the maximum absolute value of the difference between the numbers of neighbor vertices~\cite{gipost76}. The graph is sliced by using a breadth-first spanning tree rooted at a randomly chosen vertex, and this process is iterated by selecting a new root vertex within the last layer as long as the number of layers increases. Then, starting from the current root vertex, vertices are assigned layer after layer to the first subdomain, until half of the total weight has been processed. Remaining vertices are then allocated to the second subdomain. As for the original Gibbs, Poole, and Stockmeyer algorithm, it is assumed that the maximization of the number of layers results in the minimization of the sizes --and therefore of the cocycles-- of the layers. This property has already been used by George and Liu to reorder sparse linear systems using the nested dissection method~\cite{geli81}, and by Simon in~\cite{simo91}. \iteme[\textbf{Greedy graph growing}]\label{sec-algo-ggge} This greedy algorithm, which has been proposed by Karypis and Kumar~\cite{kaku95a}, belongs to the GRASP (``\textit{Greedy Randomized Adaptive Search Procedure\/}'') class~\cite{lafeel94}. It consists in selecting an initial vertex at random, and repeatedly adding vertices to this growing subset, such that each added vertex results in the smallest increase in the communication cost function. This process, which stops when load balance is achieved, is repeated several times in order to explore (mostly in a gradient-like fashion) different areas of the solution space, and the best partition found is kept. \iteme[\textbf{Multilevel}] This is a graph bipartition-oriented version of the static mapping multilevel method described in the previous section, page~\pageref{sec-algo-mle}. \end{itemize} \section{Sparse matrix ordering algorithms} \label{sec-algo-order} When solving large sparse linear systems of the form $Ax=b$, it is common to precede the numerical factorization by a symmetric reordering. This reordering is chosen in such a way that pivoting down the diagonal in order on the resulting permuted matrix $PAP^T$ produces much less fill-in and work than computing the factors of $A$ by pivoting down the diagonal in the original order (the fill-in is the set of zero entries in $A$ that become non-zero in the factored matrix). \subsection{Performance criteria} \label{sec-order-perf} The quality of orderings is evaluated with respect to several criteria. The first one, \NNZ, is the number of non-zero terms in the factored reordered matrix. The second one, \OPC, is the operation count, that is the number of arithmetic operations required to factor the matrix. The operation count that we have considered takes into consideration all operations (additions, subtractions, multiplications, divisions) required by Cholesky factorization, except square roots; it is equal to $\sum_c n_c^2$, where $n_c$ is the number of non-zeros of column $c$ of the factored matrix, diagonal included. A third criterion for quality is the shape of the elimination tree; concurrency in parallel solving is all the higher as the elimination tree is broad and short. To measure its quality, several parameters can be defined: \hmin, \hmax, and \havg\ denote the minimum, maximum, and average heights of the tree\footnote% {We do not consider as leaves the disconnected vertices that are present in some meshes, since they do not participate in the solving process.}, respectively, and \hdlt\ is the variance, expressed as a percentage of \havg. Since small separators result in small chains in the elimination tree, \havg\ should also indirectly reflect the quality of separators. \subsection{Minimum Degree} The minimum degree algorithm~\cite{tiwa67} is a local heuristic that performs its pivot selection by iteratively selecting from the graph a node of minimum degree. The minimum degree algorithm is known to be a very fast and general purpose algorithm, and has received much attention over the last three decades (see for example~\cite{amdadu96,geli89,liu-85}). However, the algorithm is intrinsically sequential, and very little can be theoretically proved about its efficiency. \subsection{Nested dissection} \label{sec-algo-nested} The nested dissection algorithm~\cite{geli81} is a global, heuristic, recursive algorithm which computes a vertex set~$S$ that separates the graph into two parts~$A$ and~$B$, ordering $S$ with the highest remaining indices. It then proceeds recursively on parts~$A$ and~$B$ until their sizes become smaller than some threshold value. This ordering guarantees that, at each step, no non zero term can appear in the factorization process between unknowns of~$A$ and unknowns of~$B$. Many theoretical results have been carried out on nested dissection ordering~\cite{chro89,lirota79}, and its divide and conquer nature makes it easily parallelizable. The main issue of the nested dissection ordering algorithm is thus to find small vertex separators that balance the remaining subgraphs as evenly as possible. Most often, vertex separators are computed by using direct heuristics~\cite{hero98,lele87}, or from edge separators~\cite[and included references]{pofa90} by minimum cover techniques~\cite{duff81,hoka73}, but other techniques such as spectral vertex partitioning have also been used~\cite{posili90}. Provided that good vertex separators are found, the nested dissection algorithm produces orderings which, both in terms of fill-in and operation count, compare favorably~\cite{gukaku96,kaku95a,pero97a} to the ones obtained with the minimum degree algorithm~\cite{liu-85}. Moreover, the elimination trees induced by nested dissection are broader, shorter, and better balanced, and therefore exhibit much more concurrency in the context of parallel Cholesky factorization~\cite[and included references]{aseilish91,geng89,geheling88,gukaku96,pero97a,shre92}. \subsection{Hybridization} \label{sec-algo-nested-hybrid} Due to their complementary nature, several schemes have been proposed to hybridize the two methods~\cite{hero98,kaku98a,pero97a}. However, to our knowledge, only loose couplings have been achieved: incomplete nested dissection is performed on the graph to order, and the resulting subgraphs are passed to some minimum degree algorithm. This results in the fact that the minimum degree algorithm does not have exact degree values for all of the boundary vertices of the subgraphs, leading to a misbehavior of the vertex selection process. \\ Our ordering program implements a tight coupling of the nested dissection and minimum degree algorithms, that allows each of them to take advantage of the information computed by the other. First, the nested dissection algorithm provides exact degree values for the boundary vertices of the subgraphs passed to the minimum degree algorithm (called \emph{halo\/} minimum degree since it has a partial visibility of the neighborhood of the subgraph). Second, the minimum degree algorithm returns the assembly tree that it computes for each subgraph, thus allowing for supervariable amalgamation, in order to obtain column-blocks of a size suitable for BLAS3 block computations. As for our mapping program, it is possible to combine ordering methods into ordering strategies, which allow the user to select the proper methods with respect to the characteristics of the subgraphs. \\ The ordering program is completely parametrized by its ordering strategy. The nested dissection method allows the user to take advantage of all of the graph partitioning routines that have been developed in the earlier stages of the \scotch\ project. Internal ordering strategies for the separators are relevant in the case of sequential or parallel~\cite{gukaku97,roth94,rogu93,rosc94} block solving, to select ordering algorithms that minimize the number of extra-diagonal blocks~\cite{chro89}, thus allowing for efficient use of BLAS3 primitives, and to reduce inter-processor communication. \subsection{Ordering methods} The core of our ordering algorithm uses graph ordering methods as black boxes, which allows the orderer to run any type of ordering method. In addition to yielding orderings of the subgraphs that are passed to them, these methods may compute column block partitions of the subgraphs, that are recorded in a separate tree structure. The currently implemented graph ordering methods are listed below. \begin{itemize} \iteme[\textbf{Halo approximate minimum degree}] The halo approximate minimum degree method~\cite{peroam99} is an improvement of the approximate minimum degree~\cite{amdadu96} algorithm, suited for use on subgraphs produced by nested dissection methods. Its interest compared to classical minimum degree algorithms is that boundary vertices are processed using their real degree in the global graph rather than their (much smaller) degree in the subgraph, resulting in smaller fill-in and operation count. This method also implements amalgamation techniques that result in efficient block computations in the factoring and the solving processes. \iteme[\textbf{Halo approximate minimum fill}] The halo approximate minimum fill method is a variant of the halo approximate minimum degree algorithm, where the criterion to select the next vertex to permute is not based on its current estimated degree but on the minimization of the induced fill. \iteme[\textbf{Graph compression}] The graph compression method~\cite{ashc95} merges cliques of vertices into single nodes, so as to speed-up the ordering of the compressed graph. It also results in some improvement of the quality of separators, especially for stiffness matrices. \iteme[\textbf{Gibbs-Poole-Stockmeyer}] This method is mainly used on separators to reduce the number and extent of extra-diagonal blocks. \iteme[\textbf{Simple method}] Vertices are ordered consecutively, in the same order as they are stored in the graph. This is the fastest method to use on separators when the shape of extra-diagonal structures is not a concern. \iteme[\textbf{Nested dissection}] Incomplete nested dissection method. Separators are computed recursively on subgraphs, and specific ordering methods are applied to the separators and to the resulting subgraphs (see sections~\ref{sec-algo-nested} and ~\ref{sec-algo-nested-hybrid}). \iteme[\textbf{Disconnected subgraph detection}] This method may be used as a pre-processing step so as to apply the same ordering strategy on each of the disconnected components of a graph. While finding the connected components of a graph is expensive, it may bring an improvement on graph ordering quality in some cases. \end{itemize} \subsection{Graph separation methods} The core of our incomplete nested dissection algorithm uses graph separation methods as black boxes. It allows the orderer to run any type of graph separation method compatible with our criteria for quality, that is, reducing the size of the vertex separator while maintaining the loads of the separated parts within some user-specified tolerance. Separation jobs maintain an internal image of the current vertex separator, indicating for every vertex of the job whether it is currently assigned to one of the two parts, or to the separator. It is therefore possible to apply several different methods in sequence, each one starting from the result of the previous one, and to select the methods with respect to the job characteristics, thus enabling the definition of separation strategies. \\ The currently implemented graph separation methods are listed below. \begin{itemize} \iteme[\textbf{Fiduccia-Mattheyses}] This is a vertex-oriented version of the original, edge-oriented, Fiduccia-Mattheyses heuristics described in page~\pageref{sec-algo-fme}. \iteme[\textbf{Greedy graph growing}] This is a vertex-oriented version of the edge-oriented greedy graph growing algorithm described in page~\pageref{sec-algo-ggge}. \iteme[\textbf{Multilevel}] This is a vertex-oriented version of the edge-oriented multilevel algorithm described in page~\pageref{sec-algo-mle}. \iteme[\textbf{Thinner}] This greedy algorithm refines the current separator by removing all of the exceeding vertices, that is, vertices that do not have neighbors in both parts. It is provided as a simple gradient refinement algorithm for the multilevel method, and is clearly outperformed by the Fiduccia-Mattheyses algorithm. \iteme[\textbf{Vertex cover}] This algorithm computes a vertex separator by first computing an edge separator, that is, a bipartition of the graph, and then turning it into a vertex separator by using the method proposed by Pothen and Fang~\cite{pofa90}. This method requires the computation of maximal matchings in the bipartite graphs associated with the edge cuts, which are built using Duff's variant~\cite{duff81} of the Hopcroft and Karp algorithm~\cite{hoka73}. Edge separators are computed by using a bipartitioning strategy, which can use any of the graph bipartitioning methods described in section~\ref{sec-algo-bipart}, page~\pageref{sec-algo-bipart}. \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_l.tex000066400000000000000000012577611514310134000253150ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_l.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Bibliotheque % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Library} \label{sec-lib} All of the features provided by the programs of the \scotch\ distribution may be directly accessed by calling the appropriate functions of the \libscotch\ library, archived in files {\tt libscotch.a} and {\tt libscotcherr.a}. These routines belong to six distinct classes: \begin{itemize} \item source graph and source mesh handling routines, which serve to declare, build, load, save, and check the consistency of source graphs and meshes, along with their geometry data; \item target architecture handling routines, which allow the user to declare, build, load, and save target architectures; \item strategy handling routines, which allow the user to declare and build mapping and ordering strategies; \item mapping routines, which serve to declare, compute, and save mappings of source graphs to target architectures by means of mapping strategies; \item a partitioning-with-overlap routine, which computes a vertex separator that splits a graph into a prescribed number of parts, such that the vertex load of each part and of its neighboring separator vertices are balanced; \item ordering routines, which allow the user to declare, compute, and save orderings of source graphs and meshes; \item error handling routines, which allow the user either to provide his own error servicing routines, or to use the default routines provided in the \libscotch\ distribution. \end{itemize} A \metis\ compatibility library, called {\tt lib\lbo scotch\lbo metis.a}, is also available. It allows users who were previously using \metis\ in their software to take advantage of the efficieny of \scotch\ without having to modify their code. The services provided by this library are described in Section~\ref{sec-lib-metis}. \subsection{Calling the routines of {\sc libScotch}} \subsubsection{Calling from C} All of the C routines of the \libscotch\ library are prefixed with ``{\tt SCOTCH\_}''. The remainder of the function names is made of the name of the type of object to which the functions apply (e\@.g\@. ``{\tt graph}'', ``{\tt mesh}'', ``{\tt arch}'', ``{\tt map}'', etc.), followed by the type of action performed on this object: ``{\tt Init}'' for the initialization of the object, ``{\tt Exit}'' for the freeing of its internal structures, ``{\tt Load}'' for loading the object from a stream, and so on. Typically, functions that return an error code return zero if the function succeeds, and a non-zero value in case of error. For instance, the {\tt SCOTCH\_\lbt graph\lbt Init} and {\tt SCOTCH\_\lbt graph\lbt Load} routines, described in sections~\ref{sec-lib-func-graphinit} and~\ref{sec-lib-func-graphload}, respectively, can be called from C by using the following code. \begin{lstlisting}[style=language-c] #include #include "scotch.h" ... SCOTCH_Graph grafdat; FILE * fileptr; if (SCOTCH_graphInit (&grafdat) != 0) { ... /* Error handling */ } if ((fileptr = fopen ("brol.grf", "r")) == NULL) { ... /* Error handling */ } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { ... /* Error handling */ } ... \end{lstlisting} Since ``{\tt scotch.h}'' uses several system objects which are declared in ``{\tt stdio.h}'', this latter file must be included beforehand in your application code. Although the ``{\tt scotch.h}'' and ``{\tt ptscotch.h}'' files may look very similar on your system, never mistake them, and always use the ``{\tt scotch.h}'' file as the include file for compiling a program which uses only the sequential routines of the \libscotch\ library. \subsubsection{Calling from Fortran} The routines of the \libscotch\ library can also be called from Fortran. For any C function named {\tt SCOTCH\_\lbt {\it type\lbt Action}()} which is documented in this manual, there exists a {\tt SCOTCHF\lbt {\it TYPE\lbt ACTION\/}()} Fortran counterpart, in which the separating underscore character is replaced by an ``{\tt F}''. In most cases, the Fortran routines have exactly the same parameters as the C functions, save for an added trailing {\tt INTEGER} argument to store the return value yielded by the function when the return type of the C function is not {\tt void}. \\ Since all the data structures used in \libscotch\ are opaque, equivalent declarations for these structures must be provided in Fortran. These structures must therefore be defined as arrays of {\tt DOUBLEPRECISION}s, of sizes given in file {\tt scotchf.h}, which must be included whenever necessary. For routines which read or write data using a {\tt FILE~*} stream in C, the Fortran counterpart uses an {\tt INTEGER} parameter which is the numer of the Unix file descriptor corresponding to the logical unit from which to read or write. In most Unix implementations of Fortran, standard descriptors 0 for standard input (logical unit 5), 1 for standard output (logical unit 6) and 2 for standard error are opened by default. However, for files which are opened using {\tt OPEN} statements, an additional function must be used to obtain the number of the Unix file descriptor from the number of the logical unit. This function is called \texttt{PXFFILENO} in the normalized POSIX Fortran API, and files which use it should include the \texttt{USE IFPOSIX} directive whenever necessary. An alternate, non normalized, function also exists in most Unix implementations of Fortran, and is called {\tt FNUM}. For instance, the {\tt SCOTCH\_\lbt graph\lbt Init} and {\tt SCOTCH\_\lbt graph\lbt Load} routines, described in sections~\ref{sec-lib-func-graphinit} and~\ref{sec-lib-func-graphload}, respectively, can be called from Fortran by using the following code. \begin{lstlisting}[style=language-f] INCLUDE "scotchf.h" DOUBLEPRECISION GRAFDAT(SCOTCH_GRAPHDIM) INTEGER RETVAL ... CALL SCOTCHFGRAPHINIT (GRAFDAT (1), RETVAL) IF (RETVAL .NE. 0) THEN ... OPEN (10, FILE='brol.grf') CALL SCOTCHFGRAPHLOAD (GRAFDAT (1), FNUM (10), 1, 0, RETVAL) CLOSE (10) IF (RETVAL .NE. 0) THEN ... \end{lstlisting} Although the ``{\tt scotchf.h}'' and ``{\tt ptscotchf.h}'' files may look very similar on your system, never mistake them, and always use the ``{\tt scotchf.h}'' file as the include file for compiling a program which uses only the sequential routines of the \libscotch\ library. \subsubsection{Compiling and linking} The compilation of C or Fortran routines which use routines of the \libscotch\ library requires that either ``{\tt scotch.h}'' or ``{\tt scotchf.h}'' be included, respectively. The routines of the \libscotch\ library are grouped in a library file called {\tt libscotch.a}. Default error routines that print an error message and exit are provided in library file {\tt libscotcherr.a}. Therefore, the linking of applications that make use of the \libscotch\ library with standard error handling is carried out by using the following options: ``{\tt -lscotch -lscotcherr -lm}''. If you want to handle errors by yourself, you should not link with library file {\tt libscotcherr.a}, but rather provide a {\tt SCOTCH\_\lbt error\lbt Print()} routine. Please refer to section~\ref{sec-lib-error} for more information. Programs that call both sequential and parallel routines of \scotch\ should use only the parallel versions of the include file and of the library. Please refer to the equivalent section of the \ptscotch\ user's manual for more information. \subsubsection{Dynamic library issues} \label{sec-lib-dynalloc} The advantage of dynamic libraries is that application code may not need to be recompiled when the library is updated. Whether this is true or not depends on the extent of the changes. One of the cases when recompilation is mandatory is when API data structures change: code that statically reserves space for them may be subject to boundary overflow errors when the size of library data structures increase, so that library routines operate on more space than what was statically allocated by the compiler based on the header files of the old version of the library. In order to alleviate this problem, the \libscotch\ proposes a set of routines to dynamically allocate storage space for the opaque API \scotch\ structures. Because these routines return pointers, these {\tt SCOTCH\_\lbt *Alloc} routines, as well as the {\tt SCOTCH\_\lbt free} routine, are only available in the C interface. Alternately, the {\tt SCOTCH\_\lbt *Sizeof} routines may be used to obtain dynamically the size of these opaque structures. \subsubsection{Machine word size issues} \label{sec-lib-inttypesize} Graph indices are represented in \scotch\ as integer values of type {\tt SCOTCH\_\lbt Num}. By default, this type equates to the {\tt int} C type, that is, an integer type of size equal to the one of the machine word. However, it can represent any other integer type. Indeed, the size of the {\tt SCOTCH\_\lbt Num} integer type can be coerced to 32 or 64 bits by using the ``{\tt -DINTSIZE32}'' or ``{\tt -DINTSIZE64}'' compilation flags, respectively, or else by using the ``{\tt -DINT=}'' definition (see Section~\ref{sec-install-inttypesize} for more information on the setting of these compilation flags). Consequently, the C interface of \scotch\ uses two types of integers. Graph-related quantities are passed as {\tt SCOTCH\_\lbt Num}s, while system-related values such as file handles, as well as return values of \libscotch\ routines, are always passed as {\tt int}s. Because of the variability of library integer type sizes, one must be careful when using the Fortran interface of \scotch, as it does not provide any prototyping information, and consequently cannot produce any warning at link time. In the manual pages of the \libscotch\ routines, Fortran prototypes are written using three types of {\tt INTEGER}s. As for the C interface, the regular {\tt INTEGER} type is used for system-based values, such as file handles and MPI communicators, as well as for return values of the \libscotch\ routines, while the {\tt INTEGER*}{\it num} type should be used for all graph-related values, in accordance to the size of the {\tt SCOTCH\_\lbt Num} type, as set by the ``{\tt -DINTSIZE}{\it x\/}'' compilation flags. Also, the {\tt INTEGER*}{\it idx} type represents an integer type of a size equivalent to the one of a {\tt SCOTCH\_\lbt Idx}, as set by the ``{\tt -DIDXSIZE}{\it x\/}'' compilation flags. Values of this type are used in the Fortran interface to represent arbitrary array indices which can span across the whole address space, and consequently deserve special treatment. In practice, when \scotch\ is compiled on a 32-bit architecture so as to use 64-bit {\tt SCOTCH\_\lbt Num}s, graph indices should be declared as {\tt INTEGER*8}, while error return values should still be declared as plain {\tt INTEGER} (that is, {\tt INTEGER*4}) values. On a 32\_64-bit architecture, irrespective of whether {\tt SCOTCH\_\lbt Num}s are defined as {\tt INTEGER*4} or {\tt INTEGER*8} quantities, the {\tt SCOTCH\_\lbt Idx} type should always be defined as a 64-bit quantity, that is, an {\tt INTEGER*8}, because it stores differences between memory addresses, which are represented by 64-bit values. The above is no longer a problem if \scotch\ is compiled such that {\tt int}s equate 64-bit integers. In this case, there is no need to use any type coercing definition. \\ The \metis\ v3 compatibility library provided by \scotch\ can also run on a 64-bit architecture. Yet, if you are willing to use it this way, you will have to replace all {\tt int}'s that are passed to the \metis\ routines by 64-bit integer {\tt SCOTCH\_\lbt Num} values (even the option configuration values). However, in this case, you will no longer be able to link against the service routines of the genuine \metis\ v3 library, as they are only available as a 32-bit implementation. \subsubsection{Using multi-threading} \label{sec-lib-multithread} Starting from version \textsc{6.1.0}, thread management in \scotch\ is dynamic. This allows the user to control dynamically the number of threads that are used by the threaded algorithms of the \libscotch\ library. These algorithms are enabled when \scotch\ is compiled with the flag ``\texttt{-DSCOTCH\_\lbt PTHREAD}'' set. Unless explicitly prevented to do so, \libscotch\ library routines will detect the number of cores available on the user's system and will use as many of them as prescribed at compile time or, if no upper threshold was set at that time, all of those which are currently available. This behavior can be controlled further by means of the shell environment variable ``\texttt{SCOTCH\_\lbt PTHREAD\_\lbt NUMBER=}$x$'', where $x$ is the prescribed maximum number of threads to be used. Setting a thread number to $1$ will coerce \scotch\ into using only purely sequential algorithms (which may differ in nature from their multi-threaded counterparts). Setting the thread number to $-1$ will make \scotch\ use all available cores, overriding the value possibly set at compile time. Another way for users to control concurrency is to use \texttt{SCOTCH\_\lbt Context} objects (see Section~\ref{sec-lib-context}). These objects define user-configurable execution contexts, in which \libscotch\ library routines can be executed independently from others. They allow the user to prescribe a given number of threads, as well as their binding to the available cores, or even to capture a pool of existing threads, to make them participate in the computation of \libscotch\ library routines. They also allow the user to create private pseudo-random generators, so that concurrently executing library routines do not interfere with each other and produce fully reproducible results. Thread binding is essential to achieve good performance of multi-threaded programs. In \scotch, the only thread binding mechanism implemented to date relies on the Linux binding API. Please make sure to compile with flag ``\texttt{-DCOMMON\_\lbt PTHREAD\_\lbt AFFINITY\_\lbt LINUX}'' set whenever possible, to benefit from these features. \subsection{Data types} All of the data used in the \libscotch\ interface are of integer type {\tt SCOTCH\_Num}. To hide the internals of \scotch\ to callers, all of the data structures are opaque, that is, declared within ``{\tt scotch.h}'' as dummy arrays of double precision values, for the sake of data alignment. Accessor routines, the names of which end in ``{\tt Size}'' and ``{\tt Data}'', allow callers to retrieve information from opaque structures. \\ In all of the following, whenever arrays are defined, passed, and accessed, it is assumed that the first element of these arrays is always labeled as {\tt baseval}, whether {\tt baseval} is set to $0$ (for C-style arrays) or $1$ (for Fortran-style arrays). \scotch\ internally manages with base values and array pointers so as to process these arrays accordingly. \subsubsection{\texttt{SCOTCH\_\lbt Arch} architecture type} Target architecture structures are completely opaque. The only way to describe an architecture is by means of a graph passed to the {\tt SCOTCH\_\lbt arch\lbt Build} or {\tt SCOTCH\_\lbt arch\lbt Build2} routines. \subsubsection{\texttt{SCOTCH\_\lbt Graph} graph type} \label{sec-lib-type-graph} Source graphs are described by means of adjacency lists. These data are stored in arrays and scalars of type \texttt{SCOTCH\_Num}, as shown in Figures~\ref{fig-lib-graf-one} and~\ref{fig-lib-graf-two}. The graph fields have the following meaning: \begin{itemize} \iteme[\texttt{baseval}] Base value for all array indexing. \iteme[\texttt{vertnbr}] Number of vertices in graph. \iteme[\texttt{edgenbr}] Number of arcs in graph. Since edges are represented by both of their ends, the number of edge data in the graph is twice the number of graph edges. \iteme[\texttt{verttab}] Array of start indices in $\mathtt{edgetab}$ of vertex adjacency sub-arrays. \iteme[\texttt{vendtab}] Array of after-last indices in $\mathtt{edgetab}$ of vertex adjacency sub-arrays. For any vertex $i$, with $\mathtt{baseval} \leq i < (\mathtt{baseval} + \mathtt{vertnbr})$, $(\mathtt{vendtab[}i\mathtt{]} - \mathtt{verttab[}i\mathtt{]})$ is the degree of vertex $i$, and the indices of the neighbors of $i$ are stored in $\mathtt{edgetab}$ from $\mathtt{edgetab[\lbt verttab[}i\mathtt{]]}$ to $\mathtt{edgetab[\lbt vendtab[}i\mathtt{]} - 1\mathtt{]}$, inclusive. When all vertex adjacency lists are stored in order in $\mathtt{edgetab}$, it is possible to save memory by not allocating the physical memory for $\mathtt{vendtab}$. In this case, illustrated in Figure~\ref{fig-lib-graf-one}, $\mathtt{verttab}$ is of size $\mathtt{vertnbr} + 1$ and $\mathtt{vendtab}$ points to $\mathtt{verttab} + 1$. This case is referred to as the ``compact edge array'' case, such that $\mathtt{verttab}$ is sorted in ascending order, $\mathtt{verttab[\lbt baseval]} = \mathtt{baseval}$ and $\mathtt{verttab[\lbt baseval} + \mathtt{vertnbr]} = (\mathtt{baseval} + \mathtt{edgenbr})$. \iteme[\texttt{velotab}] Optional array, of size $\mathtt{vertnbr}$, holding the integer load associated with every vertex. \iteme[\texttt{edgetab}] Array, of a size equal at least to $\left(\max_{i}(\mathtt{vendtab[}i\mathtt{]}) - \mathtt{baseval}\right)$, holding the adjacency array of every vertex. \iteme[\texttt{edlotab}] Optional array, of a size equal at least to $\left(\max_{i}(\mathtt{vendtab[} i \mathtt{]}) - \mathtt{baseval}\right)$, holding the integer load associated with every arc. Matching arcs should always have identical loads. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{s_f_gr1.eps} \caption{Sample graph and its description by \libscotch\ arrays using a compact edge array. Numbers within vertices are vertex indices, bold numbers close to vertices are vertex loads, and numbers close to edges are edge loads. Since the edge array is compact, $\mathtt{verttab}$ is of size $\mathtt{vertnbr} + 1$ and $\mathtt{vendtab}$ points to $\mathtt{verttab} + 1$.} \label{fig-lib-graf-one} \end{figure} \begin{figure} \centering\includegraphics[scale=0.47]{s_f_gr2.eps} \caption{Adjacency structure of the sample graph of Figure~\protect\ref{fig-lib-graf-one} with disjoint edge and edge load arrays. Both $\mathtt{verttab}$ and $\mathtt{vendtab}$ are of size $\mathtt{vertnbr}$. This allows for the handling of dynamic graphs, the structure of which can evolve with time.} \label{fig-lib-graf-two} \end{figure} Dynamic graphs can be handled elegantly by using the $\mathtt{vendtab}$ array. In order to dynamically manage graphs, one just has to allocate $\mathtt{verttab}$, $\mathtt{vendtab}$ and $\mathtt{edgetab}$ arrays that are large enough to contain all of the expected new vertex and edge data. Original vertices are labeled starting from $\mathtt{baseval}$, leaving free space at the end of the arrays. To remove some vertex $i$, one just has to replace $\mathtt{verttab[}i\mathtt{]}$ and $\mathtt{vendtab[}i\mathtt{]}$ with the values of $\mathtt{verttab[\lbt vertnbr}\lbt -1\mathtt{]}$ and $\mathtt{vendtab[\lbt vertnbr}\lbt -1\mathtt{]}$, respectively, and browse the adjacencies of all neighbors of former vertex $\mathtt{vertnbr}-1$ such that all $(\mathtt{vertnbr}-1)$ indices are turned into $i$s. Then, $\mathtt{vertnbr}$ must be decremented, and \texttt{SCOTCH\_\lbt graphBuild()} must be called to account for the change of topology. If a graph building routine such as \texttt{SCOTCH\_\lbt graph\lbt Load()} or \texttt{SCOTCH\_\lbt graph\lbt Build()} had already been called on the \texttt{SCOTCH\_\lbt Graph} structure, \texttt{SCOTCH\_\lbt graph\lbt Free()} has to be called first in order to free the internal structures associated with the older version of the graph; else, these data would be lost, which would result in memory leakage. To add a new vertex, one has to fill $\mathtt{verttab[\lbt vertnbr} -1\mathtt{]}$ and $\mathtt{vendtab[\lbt vertnbr}\lbt -1\mathtt{]}$ with the starting and end indices of the adjacency sub-array of the new vertex. Then, the adjacencies of its neighbor vertices must also be updated to account for it. If free space had been reserved at the end of each of the neighbors, one just has to increment the $\mathtt{vendtab[}i\mathtt{]}$ values of every neighbor $i$, and add the index of the new vertex at the end of the adjacency sub-array. If the sub-array cannot be extended, then it has to be copied elsewhere in the edge array, and both $\mathtt{verttab[}i\mathtt{]}$ and $\mathtt{vendtab[}i\mathtt{]}$ must be updated accordingly. With simple housekeeping of free areas of the edge array, dynamic arrays can be updated with as little data movement as possible. \subsubsection{\texttt{SCOTCH\_\lbt Mesh} mesh type} \label{sec-lib-type-mesh} Since meshes are basically bipartite graphs, source meshes are also described by means of adjacency lists. The description of a mesh requires several \texttt{SCOTCH\_Num} scalars and arrays, as shown in Figure~\ref{fig-lib-mesh-one}. They have the following meaning: \begin{itemize} \iteme[{\tt velmbas}] Base value for element indexings. \iteme[{\tt vnodbas}] Base value for node indexings. The base value of the underlying graph, $\mathtt{baseval}$, is set as $\min(\mathtt{velmbas}, \mathtt{vnodbas})$. \iteme[{\tt velmnbr}] Number of element vertices in mesh. \iteme[{\tt vnodnbr}] Number of node vertices in mesh. The overall number of vertices in the underlying graph, $\mathtt{vertnbr}$, is set as $\mathtt{velmnbr} +\mathtt{vnodnbr}$. \iteme[{\tt edgenbr}] Number of arcs in mesh. Since edges are represented by both of their ends, the number of edge data in the mesh is twice the number of edges. \iteme[{\tt verttab}] Array of start indices in $\mathtt{edgetab}$ of vertex (that is, both elements and nodes) adjacency sub-arrays. \iteme[{\tt vendtab}] Array of after-last indices in $\mathtt{edgetab}$ of vertex adjacency sub-arrays. For any element or node vertex $i$, with $\mathtt{baseval} \leq i < (\mathtt{baseval} + \mathtt{vertnbr})$, $\mathtt{vendtab[}i\mathtt{]} - \mathtt{verttab[}i\mathtt{]}$ is the degree of vertex $i$, and the indices of the neighbors of $i$ are stored in $\mathtt{edgetab}$ from $\mathtt{edgetab[\lbt verttab[}i\mathtt{]]}$ to $\mathtt{edgetab[\lbt vendtab[}i\mathtt{]} - 1\mathtt{]}$, inclusive. When all vertex adjacency lists are stored in order in $\mathtt{edgetab}$, it is possible to save memory by not allocating the physical memory for $\mathtt{vendtab}$. In this case, illustrated in Figure~\ref{fig-lib-mesh-one}, $\mathtt{verttab}$ is of size $(\mathtt{vertnbr} + 1)$ and $\mathtt{vendtab}$ points to $(\mathtt{verttab} + 1)$. This case is referred to as the ``compact edge array'' case, such that $\mathtt{verttab}$ is sorted in ascending order, $\mathtt{verttab[\lbt baseval]} = \mathtt{baseval}$ and $\mathtt{verttab[\lbt baseval} + \mathtt{vertnbr]} = (\mathtt{baseval} + \mathtt{edgenbr})$. \iteme[{\tt velotab}] Array, of size $\mathtt{vertnbr}$, holding the integer load associated with each vertex. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{s_f_me1.eps} \caption{Sample mesh and its description by \libscotch\ arrays using a compact edge array. Numbers within vertices are vertex indices. Since the edge array is compact, $\mathtt{verttab}$ is of size $(\mathtt{vertnbr} + 1)$ and $\mathtt{vendtab}$ points to $(\mathtt{verttab} + 1)$.} \label{fig-lib-mesh-one} \end{figure} As for graphs, it is possible to handle elegantly dynamic meshes by means of the $\mathtt{verttab}$ and $\mathtt{vendtab}$ arrays. There is, however, an additional constraint, which is that mesh nodes and elements must be ordered consecutively. The solution to fulfill this constraint in the context of mesh ordering is to keep a set of empty elements (that is, elements which have no node adjacency attached to them) between the element and node arrays. For instance, Figure~\ref{fig-lib-mesh-two} represents a $4$-element mesh with $6$ nodes, and such that $4$ element vertex slots have been reserved for new elements and nodes. These slots are empty elements for which $\mathtt{verttab[}i\mathtt{]}$ equals $\mathtt{vendtab[}i\mathtt{]}$, irrespective of these values, since they will not lead to any memory access in $\mathtt{edgetab}$. \begin{figure} \centering\includegraphics[scale=0.47]{s_f_me2.eps} \caption{Sample mesh and its description by \libscotch\ arrays, with nodes numbered first and elements numbered last. In order to allow for dynamic re-meshing, empty elements (in grey) have been inserted between existing node and element vertices.} \label{fig-lib-mesh-two} \end{figure} Using this layout of vertices, new nodes and elements can be created by growing the element and node sub-arrays into the empty element sub-array, by both of its sides, without having to re-write the whole mesh structure, as illustrated in Figure~\ref{fig-lib-mesh-three}. Empty elements are transparent to the mesh ordering routines, which base their work on node vertices only. Users who want to update the arrays of a mesh that has already been declared using the {\tt SCOTCH\_\lbt mesh\lbo Build()} routine must call {\tt SCOTCH\_\lbt mesh\lbo Exit()} prior to updating the mesh arrays, and then call {\tt SCOTCH\_\lbt mesh\lbo Build()} again after the arrays have been updated, so that the {\tt SCOTCH\_\lbt Mesh} structure remains consistent with the new mesh data. \begin{figure} \centering\includegraphics[scale=0.47]{s_f_me3.eps} \caption{Re-meshing of the mesh of Figure~\protect\ref{fig-lib-mesh-two}. New node vertices have been added at the end of the vertex sub-array, new elements have been added at the beginning of the element sub-array, and vertex base values have been updated accordingly. Node adjacency lists that could not fit in place have been added at the end of the edge array, and some of the freed space has been re-used for new adjacency lists. Element adjacency lists do not require moving in this case, as all of the elements have the name number of nodes.} \label{fig-lib-mesh-three} \end{figure} \subsubsection{\texttt{SCOTCH\_\lbt Geom} geometry type} \label{sec-lib-type-geom} Geometry data is always associated with a graph or a mesh. It is simply made of a single array of double-precision values which represent the coordinates of the vertices of a graph, or of the node vertices of a mesh, in vertex order. The fields of a geometry structure are the following: \begin{itemize} \iteme[{\tt dimnnbr}] Number of dimensions of the graph or of the mesh, which can be $1$, $2$, or $3$. \iteme[{\tt geomtab}] Array of coordinates. This is an array of double precision values organized as an array of $(x)$, or $(x,y)$, or $(x,y,z)$ tuples, according to $\mathtt{dimnnbr}$. Coordinates that are not used (e.g. the $z$ coordinates for a bidimentional object) are not allocated. Therefore, the $x$ coordinate of some graph vertex $i$ is located at $\mathtt{geomtab}\mbox{\tt [}(i - \mathtt{baseval}) * \mathtt{dimnnbr} + \mathtt{baseval}\mbox{\tt ]}$, its $y$ coordinate is located at $\mathtt{geomtab}\mbox{\tt [}(i - \mathtt{baseval}) * \mathtt{dimnnbr} + \mathtt{baseval} + 1\mbox{\tt ]}$ if $\mathtt{dimnnbr} \geq 2$, and its $z$ coordinate is located at $\mathtt{geomtab}\mbox{\tt [}(i - \mathtt{baseval}) * \mathtt{dimnnbr} + \mathtt{baseval} + 2\mbox{\tt ]}$ if $\mathtt{dimnnbr} = 3$. Whenever the geometry is associated with a mesh, only node vertices are considered, so the $x$ coordinate of some mesh node vertex $i$, with $\mathtt{vnodbas} \leq i$, is located at $\mathtt{geomtab}\mbox{\tt [}(i - \mathtt{vnodbas}) * \mathtt{dimnnbr} + \mathtt{baseval}\mbox{\tt ]}$, its $y$ coordinate is located at $\mathtt{geomtab}\mbox{\tt [}(i - \mathtt{vnodbas}) * \mathtt{dimnnbr} + \mathtt{baseval} + 1\mbox{\tt ]}$ if $\mathtt{dimnnbr} \geq 2$, and its $z$ coordinate is located at $\mathtt{geomtab}\mbox{\tt [}(i - \mathtt{vnodbas}) * \mathtt{dimnnbr} + \mathtt{baseval} + 2\mbox{\tt ]}$ if $\mbox{\tt dimnnbr} = 3$. \end{itemize} \subsubsection{\texttt{SCOTCH\_\lbt Ordering} block ordering format} \label{sec-lib-type-ordering} Block orderings associated with graphs and meshes are described by means of block and permutation arrays, made of {\tt SCOTCH\_Num}s, as shown in Figure~\ref{fig-lib-ord-block}. In order for all orderings to have the same structure, irrespective of whether they are created from graphs or meshes, all ordering data indices start from {\tt baseval}, even when they refer to a mesh the node vertices of which are labeled from a $\mathtt{vnodbas}$ index such that $\mathtt{vnodbas} > \mathtt{baseval}$. Consequently, row indices are related to vertex indices in memory in the following way: row $i$ is associated with vertex $i$ of the {\tt SCOTCH\_\lbt Graph} structure if the ordering was computed from a graph, and with node vertex $i + (\mbox{\tt vnodbas} - \mathtt{baseval})$ of the {\tt SCOTCH\_\lbt Mesh} structure if the ordering was computed from a mesh. Block orderings are made of the following data: \begin{itemize} \iteme[{\tt permtab}] Array holding the permutation of the reordered matrix. Thus, if $k = \mathtt{permtab}\mbox{\tt [}\mathit{i}\mbox{\tt ]}$, then row $i$ of the original matrix is now row $k$ of the reordered matrix, that is, row $i$ is the $k^{\mathrm{th}}$ pivot. \iteme[{\tt peritab}] Inverse permutation of the reordered matrix. Thus, if $i = \mathtt{peritab}\mbox{\tt [}\mathit{k}\mbox{\tt ]}$, then row $k$ of the reordered matrix was row $i$ of the original matrix. \iteme[{\tt cblknbr}] Number of column blocks (that is, supervariables) in the block ordering. \iteme[{\tt rangtab}] Array of ranges for the column blocks. Column block $c$, with $\mathtt{baseval} \leq c < (\mathtt{cblknbr} + \mathtt{baseval})$, contains columns with indices ranging from $\mathtt{rangtab}\mbox{\tt [}\mathit{i}\mbox{\tt ]}$ to $\mathtt{rangtab}\mbox{\tt [}\mathit{i} + 1\mbox{\tt ]}$, exclusive, in the reordered matrix. Indices in $\mathtt{rangtab}$ are based. Therefore, $\mathtt{rangtab}\mbox{\tt [}\mathtt{baseval}\mbox{\tt ]}$ is always equal to $\mathtt{baseval}$, and $\mathtt{rangtab}\mbox{\tt [}\mathtt{cblknbr} + \mathtt{baseval}\mbox{\tt ]}$ is always equal to $\mathtt{vertnbr} + \mathtt{baseval}$ for graphs and to $\mathtt{vnodnbr} + \mathtt{baseval}$ for meshes. In order to avoid memory errors when column blocks are all single columns, the size of {\tt rangtab} must always be one more than the number of columns, that is, $\mathtt{vertnbr} + 1$ for graphs and $\mathtt{vnodnbr} + 1$ for meshes. \iteme[{\tt treetab}] Array of ascendants of permuted column blocks in the separators tree. {\tt treetab[i]} is the index of the father of column block $i$ in the separators tree, or $-1$ if column block $i$ is the root of the separators tree. Whenever separators or leaves of the separators tree are split into sub-blocks, as the block splitting, minimum fill or minimum degree methods do, all sub-blocks of the same level are linked to the column block of higher index belonging to the closest separator ancestor. Indices in {\tt treetab} are based, in the same way as for the other blocking structures. See Figure~\ref{fig-lib-ord-block} for a complete example. \end{itemize} \begin{figure} \centering\includegraphics[scale=0.47]{s_f_orb.eps} \caption{Arrays resulting from the ordering by complete nested dissection of a 4 by 3 grid based from $1$. Leftmost grid is the original grid, and righmost grid is the reordered grid, with separators shown and column block indices written in bold.} % using strategy n{sep=hf{bal=0},ole=s,ose=s} \label{fig-lib-ord-block} \end{figure} \subsection{Strategy strings} The behavior of the mapping and block ordering routines of the \libscotch\ library is parametrized by means of strategy strings, which describe how and when given partitioning or ordering methods should be applied to graphs and subgraphs, or to meshes and submeshes. \subsubsection{Using default strategy strings} \label{sec-lib-format-strat-default} While strategy strings can be built by hand, according to the syntax given in the next sections, users who do not have specific needs can take advantage of default strategies already implemented in the \libscotch, which will yield very good results in most cases. By doing so, they will spare themselves the hassle of updating their strategies to comply to subsequent syntactic changes, and they will benefit from the availability of new partitioning or ordering methods as soon as they are released. The simplest way to use default strategy strings is to avoid specifying any. By initializing a strategy object, by means of the {\tt SCOTCH\_\lbt stratInit} routine, and by using the initialized strategy object as is, without further parametrization, this object will be filled with a default strategy when passing it as a parameter to the next partitioning or ordering routine to be called. On return, the strategy object will contain a fully specified strategy, tailored for the type of operation which has been requested. Consequently, a fresh strategy object that was used to partition a graph cannot be used afterward as a default strategy when calling an ordering routine, for instance, as partitioning and ordering strategies are incompatible. The \libscotch\ also provides helper routines which allow users to express their preferences on the kind of strategy that they need. These helper routines, which are of the form {\tt SCOTCH\_\lbt strat\lbt *\lbt Build} (see Section~\ref{sec-lib-func-stratgraphclusterbuild} and after), tune default strategy strings according to parameters provided by the user, such as the requested number of parts (used as a hint to select the most efficient partitioning routines), the desired maximum load imbalance ratio, and a set of preference flags. While some of these flags are antagonistic, most of them can be combined, by means of addition or ``binary or'' operators. These flags are the following. They are grouped by application class. \paragraph{Global flags} \begin{itemize} \iteme[{\tt SCOTCH\_STRATDEFAULT}] Default behavior. No flags are set. \iteme[{\tt SCOTCH\_STRATBALANCE}] Enforce load balance as much as possible. \iteme[{\tt SCOTCH\_STRATQUALITY}] Privilege quality over speed. \iteme[{\tt SCOTCH\_STRATSAFETY}] Do not use methods that can lead to the occurrence of problematic events, such as floating point exceptions, which could not be properly handled by the calling software. \iteme[{\tt SCOTCH\_STRATSPEED}] Privilege speed over quality. \end{itemize} \paragraph{Mapping and partitioning flags} \begin{itemize} \iteme[{\tt SCOTCH\_STRATRECURSIVE}] Use only recursive bipartitioning methods, and not direct k-way methods. When this flag is not set, any combination of methods can be used, so as to achieve the best result according to other user preferences. \iteme[{\tt SCOTCH\_STRATREMAP}] Use the strategy for remapping an existing partition. \end{itemize} \paragraph{Ordering flags} \begin{itemize} \iteme[{\tt SCOTCH\_STRATDISCONNECTED}] Find and handle independently disconnected components. \iteme[{\tt SCOTCH\_STRATLEVELMAX}] Create at most the prescribed levels of nested dissection separators. \iteme[{\tt SCOTCH\_STRATLEVELMIN}] Create at least the prescribed levels of nested dissection separators. When used in conjunction with {\tt SCOTCH\_\lbt STRAT\lbt LEVEL\lbt MAX}, the exact number of nested dissection levels will be performed, unless the graph to order is too small. \iteme[{\tt SCOTCH\_STRATLEAFSIMPLE}] Order nested dissection leaves as cheaply as possible. \iteme[{\tt SCOTCH\_STRATSEPASIMPLE}] Order nested dissection separators as cheaply as possible. \end{itemize} \subsubsection{Mapping strategy strings} \label{sec-lib-format-strat-map} At the time being, mapping methods only apply to graphs, as there is not yet a mesh mapping tool in the \scotch\ package. Mapping strategies are made of methods, with optional parameters enclosed between curly braces, and separated by commas, in the form of {\it method\/}{[{\tt \{}{\it parameters\/}{\tt \}}]}\enspace. The currently available mapping methods are the following. \begin{itemize} \iteme[{\tt b}] Band method. This method builds a band graph of given width around the current frontier of the k-way partition to which it is applied, and calls a graph mapping strategy to refine the equivalent k-way partition of the band graph. Then, the refined frontier of the band graph is projected back to the current graph. This method was initially presented in~\cite{chpe06a} in the case of bipartitioning. The parameters of the band bipartitioning method are listed below. \begin{itemize} \iteme[{\tt bnd=}{\it strat}] Set the graph mapping strategy to be used on the band graph. \iteme[{\tt org=}{\it strat}] Set the fallback graph mapping strategy to be used on the original graph if the band graph strategy could not be used. The three cases which require the use of this fallback strategy are the following. First, if the separator of the original graph is empty, which makes it impossible to compute a band graph. Second, if any part of the band graph to be built is of the same size as the one of the original graph. Third, if the application of the {\tt bnd} bipartitioning method to the band graph leads to a situation where any two anchor vertices are placed in the same part. \iteme[{\tt width=}{\it val}] Set the width of the band graph. All graph vertices that are at a distance less than or equal to {\it val} from any frontier vertex are kept in the band graph. \end{itemize} \iteme[{\tt d}] Diffusion method. This method, presented in~\cite{pell07b} in the case of bipartitioning, flows $k$ kinds of antagonistic liquids from $k$ source vertices, and sets the new frontier as the limit between vertices which contain different kinds of liquids. Because selecting the source vertices is essential to the obtainment of useful results, this method has been hard-coded so that the $k$ source vertices are the $k$ vertices of highest indices, since in the band method these are the anchor vertices which represent all of the removed vertices of each part. Therefore, this method must be used on band graphs only, or on specifically crafted graphs. Applying it to any other graphs is very likely to lead to extremely poor results. The physical analogy of this method loses weight when it is applied to target architectures that are not complete graphs. The parameters of the diffusion mapping method are listed below. \begin{itemize} \iteme[{\tt dif=}{\it rat}] Fraction of liquid which is diffused to neighbor vertices at each pass. To achieve convergence, the sum of the {\tt dif} and {\tt rem} parameters must be equal to $1$, but in order to speed-up the diffusion process, other combinations of higher sum can be tried. In this case, the number of passes must be kept low, to avoid numerical overflows which would make the results useless. \iteme[{\tt pass=}{\it nbr}] Set the number of diffusion sweeps performed by the algorithm. This number depends on the width of the band graph to which the diffusion method is applied. Useful values range from $30$ to $500$ according to chosen {\tt dif} and {\tt rem} coefficients. \iteme[{\tt rem=}{\it rat}] Fraction of liquid which remains on vertices at each pass. See above. \end{itemize} \iteme[{\tt f}] $k$-way Fiduccia-Mattheyses method. The parameters of the Fiduccia-Mattheyses method are listed below. \begin{itemize} \iteme[{\tt bal=}{\it rat}] Set the maximum weight imbalance ratio to the given fraction of the subgraph vertex weight. Common values are around $0.01$, that is, one percent. \iteme[{\tt move=}{\it nbr}] Maximum number of hill-climbing moves that can be performed before a pass ends. During each of its passes, the Fiduccia-Mattheyses algorithm repeatedly swaps vertices between parts so as to minimize the cost function. A pass completes either when all of the vertices have been moved once, or if too many swaps that do not decrease the value of the cost function have been performed. Setting this value to zero turns the Fiduccia-Mattheyses algorithm into a gradient-like method, which may be used to quickly refine partitions during the uncoarsening phase of the multilevel method. \iteme[{\tt pass=}{\it nbr}] Set the maximum number of optimization passes performed by the algorithm. The Fiduccia-Mattheyses algorithm stops as soon as a pass has not yielded any improvement of the cost function, or when the maximum number of passes has been reached. Value $-1$ stands for an infinite number of passes, that is, as many as needed by the algorithm to converge. \end{itemize} \iteme[{\tt m}] Multilevel method. The parameters of the multilevel method are listed below. \begin{itemize} \iteme[{\tt asc=}{\it strat}] Set the strategy that is used to refine the mappings obtained at ascending levels of the uncoarsening phase by projection of the mappings computed for coarser graphs. This strategy is not applied to the coarsest graph, for which only the {\tt low} strategy is used. \iteme[{\tt low=}{\it strat}] Set the strategy that is used to compute the mapping of the coarsest graph, at the lowest level of the coarsening process. \iteme[{\tt rat=}{\it rat}] Set the threshold maximum coarsening ratio over which graphs are no longer coarsened. The ratio of any given coarsening cannot be less that $0.5$ (case of a perfect matching), and cannot be greater than $1.0$. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph has fewer vertices than the minimum number of vertices allowed. \iteme[{\tt vert=}{\it nbr}] Set the threshold under which graphs are no longer coarsened. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph would have fewer vertices than the minimum number of vertices allowed. When the target architecture is a variable-sized architecture, coarsening stops when the coarsened graph would have less than \mbox{\it nbr} vertices. When the target architecture is a regular, fixed-size, architecture, coarsening stops when each subdomain would have less than \mbox{\it nbr} vertices, that is, when the size of the coarsened graph would have less than $\mbox{\it nbr}\times\mathtt{domnnbr}$ vertices, where $\mathtt{domnnbr}$ is the number of vertices in the target architecture. \end{itemize} \iteme[{\tt r}] Dual Recursive Bipartitioning mapping algorithm, as defined in section~\ref{sec-algo-drb}. The parameters of the DRB mapping method are listed below. \begin{itemize} \iteme[{\tt job=}{\it tie}] The {\it tie\/} flag defines how new jobs are stored in job pools. \begin{itemize} \iteme[{\tt t}] Tie job pools together. Subjobs are stored in same pool as their parent job. This is the default behavior, as it proves the most efficient in practice. \iteme[{\tt u}] Untie job pools. Subjobs are stored in the next job pool to be processed. \end{itemize} \iteme[{\tt map=}{\it tie}] The {\it tie\/} flag defines how results of bipartitioning jobs are propagated to jobs still in pools. \begin{itemize} \iteme[{\tt t}] Tie both mapping tables together. Results are immediately available to jobs in the same job pool. This is the default behavior. \iteme[{\tt u}] Untie mapping tables. Results are only available to jobs of next pool to be processed. \end{itemize} \iteme[{\tt poli=}{\it policy}] Select jobs according to policy {\it policy}. Job selection policies define how bipartitioning jobs are ordered within the currently active job pool. Valid policy flags are \begin{itemize} \iteme[{\tt L}] Most neighbors of higher level. \iteme[{\tt l}] Highest level. \iteme[{\tt r}] Random. \iteme[{\tt S}] Most neighbors of smaller size. This is the default behavior. \iteme[{\tt s}] Biggest size. \end{itemize} \iteme[{\tt sep=}{\it strat}] Apply bipartitioning strategy {\it strat\/} to each bipartitioning job. A bipartitioning strategy is made of one or several bipartitioning methods, which can be combined by means of strategy operators. Graph bipartitioning strategies are described below. \end{itemize} \iteme[{\tt x}] Exactifier method, as defined in Section~\ref{sec-algo-map-exact}. This greedy algorithm refines the current mapping so as to reduce load imbalance as much as possible. Since this method does not consider communication minimization, its use should be restricted to cases where achieving load balance is critical and where recursive bipartitioning may fail to achieve it, because of very irregular vertex loads. \end{itemize} \subsubsection{Graph bipartitioning strategy strings} \label{sec-lib-format-strat-bipart} A graph bipartitioning strategy is made of one or several graph bipartitioning methods, which can be combined by means of strategy operators. Strategy operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it strat1\/}{\tt |}{\it strat2}] Selection operator. The result of the selection is the best bipartition of the two that are obtained by the separate application of {\it strat1\/} and {\it strat2\/} to the current bipartition. \iteme[{\it strat1$\:$}{\it strat2}] Combination operator. Strategy {\it strat2\/} is applied to the bipartition resulting from the application of strategy {\it strat1\/} to the current bipartition. Typically, the first method used should compute an initial bipartition from scratch, and every following method should use the result of the previous one at its starting point. \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single bipartitioning method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current active graph, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a graph variable, {\it val\/} is either a graph variable or a constant of the type of variable {\it var\/}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The graph variables are listed below, along with their types. \begin{itemize} \iteme[{\tt deg}] The average degree of the current graph. Float. \iteme[{\tt edge}] The number of arcs (which is twice the number of edges) of the current graph. Integer. \iteme[{\tt load}] The overall vertex load (weight) of the current graph. Integer. \iteme[{\tt load0}] The vertex load of the first subset of the current bipartition of the current graph. Integer. \iteme[{\tt vert}] The number of vertices of the current graph. Integer. \end{itemize} \end{itemize} \iteme[{\it method\/}{[{\tt \{}{\it parameters\/}{\tt \}}]}] Bipartitioning method. For bipartitioning methods that can be parametrized, parameter settings may be provided after the method name. Parameters must be separated by commas, and the whole list be enclosed between curly braces. \end{itemize} The currently available graph bipartitioning methods are the following. \begin{itemize} \iteme[{\tt b}] Band method. This method builds a band graph of given width around the current frontier of the graph to which it is applied, and calls a graph bipartitioning strategy to refine the equivalent bipartition of the band graph. Then, the refined frontier of the band graph is projected back to the current graph. This method, presented in~\cite{chpe06a}, was created to reduce the cost of vertex separator refinement algorithms in a multilevel context, but it improves partition quality too. The same behavior is observed for graph bipartitioning. The parameters of the band bipartitioning method are listed below. \begin{itemize} \iteme[{\tt bnd=}{\it strat}] Set the graph bipartitioning strategy to be used on the band graph. \iteme[{\tt org=}{\it strat}] Set the fallback graph bipartitioning strategy to be used on the original graph if the band graph strategy could not be used. The three cases which require the use of this fallback strategy are the following. First, if the separator of the original graph is empty, which makes it impossible to compute a band graph. Second, if any part of the band graph to be built is of the same size as the one of the original graph. Third, if the application of the {\tt bnd} bipartitioning method to the band graph leads to a situation where both anchor vertices are placed in the same part. \iteme[{\tt width=}{\it val}] Set the width of the band graph. All graph vertices that are at a distance less than or equal to {\it val} from any frontier vertex are kept in the band graph. \end{itemize} \iteme[{\tt d}] Diffusion method. This method, presented in~\cite{pell07b}, flows two kinds of antagonistic liquids, scotch and anti-scotch, from two source vertices, and sets the new frontier as the limit between vertices which contain scotch and the ones which contain anti-scotch. Because selecting the source vertices is essential to the obtainment of useful results, this method has been hard-coded so that the two source vertices are the two vertices of highest indices, since in the band method these are the anchor vertices which represent all of the removed vertices of each part. Therefore, this method must be used on band graphs only, or on specifically crafted graphs. Applying it to any other graphs is very likely to lead to extremely poor results. The parameters of the diffusion bipartitioning method are listed below. \begin{itemize} \iteme[{\tt dif=}{\it rat}] Fraction of liquid which is diffused to neighbor vertices at each pass. To achieve convergence, the sum of the {\tt dif} and {\tt rem} parameters must be equal to $1$, but in order to speed-up the diffusion process, other combinations of higher sum can be tried. In this case, the number of passes must be kept low, to avoid numerical overflows which would make the results useless. \iteme[{\tt pass=}{\it nbr}] Set the number of diffusion sweeps performed by the algorithm. This number depends on the width of the band graph to which the diffusion method is applied. Useful values range from $30$ to $500$ according to chosen {\tt dif} and {\tt rem} coefficients. \iteme[{\tt rem=}{\it rat}] Fraction of liquid which remains on vertices at each pass. See above. \end{itemize} \iteme[{\tt f}] Fiduccia-Mattheyses method. The parameters of the Fiduccia-Mattheyses method are listed below. \begin{itemize} \iteme[{\tt bal=}{\it rat}] Set the maximum weight imbalance ratio to the given fraction of the subgraph vertex weight. Common values are around $0.01$, that is, one percent. \iteme[{\tt move=}{\it nbr}] Maximum number of hill-climbing moves that can be performed before a pass ends. During each of its passes, the Fiduccia-Mattheyses algorithm repeatedly swaps vertices between the two parts so as to minimize the cost function. A pass completes either when all of the vertices have been moved once, or if too many swaps that do not decrease the value of the cost function have been performed. Setting this value to zero turns the Fiduccia-Mattheyses algorithm into a gradient-like method, which may be used to quickly refine partitions during the uncoarsening phase of the multilevel method. \iteme[{\tt pass=}{\it nbr}] Set the maximum number of optimization passes performed by the algorithm. The Fiduccia-Mattheyses algorithm stops as soon as a pass has not yielded any improvement of the cost function, or when the maximum number of passes has been reached. Value $-1$ stands for an infinite number of passes, that is, as many as needed by the algorithm to converge. \end{itemize} \iteme[{\tt a}] Genetic algorithm method. This method has two parameters. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of generations bred by the algorithm. \iteme[{\tt pop=}{\it nbr}] Set the population count. \end{itemize} \iteme[{\tt g}] Gibbs-Poole-Stockmeyer method. This method has only one parameter. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of sweeps performed by the algorithm. \end{itemize} \iteme[{\tt h}] Greedy-graph-growing method. This method has only one parameter. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of runs performed by the algorithm. \end{itemize} \iteme[{\tt m}] Multilevel method. The parameters of the multilevel method are listed below. \begin{itemize} \iteme[{\tt asc=}{\it strat}] Set the strategy that is used to refine the partitions obtained at ascending levels of the uncoarsening phase by projection of the bipartitions computed for coarser graphs. This strategy is not applied to the coarsest graph, for which only the {\tt low} strategy is used. \iteme[{\tt low=}{\it strat}] Set the strategy that is used to compute the partition of the coarsest graph, at the lowest level of the coarsening process. \iteme[{\tt rat=}{\it rat}] Set the threshold maximum coarsening ratio over which graphs are no longer coarsened. The ratio of any given coarsening cannot be less that $0.5$ (case of a perfect matching), and cannot be greater than $1.0$. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph has fewer vertices than the minimum number of vertices allowed. \iteme[{\tt vert=}{\it nbr}] Set the threshold minimum graph size under which graphs are no longer coarsened. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the coarsened graph would have fewer vertices than the minimum number of vertices allowed. \end{itemize} \iteme[{\tt x}] Exactifying method. \iteme[{\tt z}] Zero method. This method moves all of the vertices to the first part. Its main use is to stop the bipartitioning process, if some condition is true, when mapping onto variable-sized architectures (see section~\ref{sec-algo-variable}). \end{itemize} \subsubsection{Vertex partitioning (with overlap) strategy strings} \label{sec-lib-format-strat-part-ovl} Vertex partitioning is a special form of graph partitioning, in which graphs are partitioned into a prescribed number of parts by means of vertex separators rather than of edge separators like in Section~\ref{sec-lib-format-strat-map}. The load balance criterion also differs from common practice: the load to be balanced across all parts comprises not only the load of the vertices which belong to the part, but also the load of all the separator vertices which are their immediate neighbors. Consequently, the load of every separator vertex is accounted for several times, in each of the parts it separates. Vertex partitioning strategies are made of methods, with optional parameters enclosed between curly braces, and separated by commas, in the form of {\it method\/}{[{\tt \{}{\it parameters\/}{\tt \}}]}\enspace. The currently available mapping methods are the following. \begin{itemize} \iteme[{\tt e}] K-way edge partitioning method. The parameters of the Fiduccia-Mattheyses method are listed below. \begin{itemize} \iteme[{\tt strat=}{\it strat}] K-way partitioning strategy to be performed. It is in fact a k-way mapping strategy, that is applied to a complete target graph of as many vertices as the prescribed number of parts. The syntax of mapping strategy strings is defined in Section~\ref{sec-lib-format-strat-map}. \end{itemize} \iteme[{\tt f}] Fiduccia-Mattheyses method. The parameters of the Fiduccia-Mattheyses method are listed below. \begin{itemize} \iteme[{\tt bal=}{\it rat}] Set the maximum weight imbalance ratio to the given fraction of the subgraph vertex weight. Common values are around $0.01$, that is, one percent. \iteme[{\tt move=}{\it nbr}] Maximum number of hill-climbing moves that can be performed before a pass ends. During each of its passes, the Fiduccia-Mattheyses algorithm repeatedly moves vertices between parts so as to minimize the cost function. A pass completes either when all of the vertices have been moved once, or if too many swaps that do not decrease the value of the cost function have been performed. Setting this value to zero turns the Fiduccia-Mattheyses algorithm into a gradient-like method, which may be used to quickly refine partitions during the uncoarsening phase of the multilevel method. \iteme[{\tt pass=}{\it nbr}] Set the maximum number of optimization passes performed by the algorithm. The Fiduccia-Mattheyses algorithm stops as soon as a pass has not yielded any improvement of the cost function, or when the maximum number of passes has been reached. Value $-1$ stands for an infinite number of passes, that is, as many as needed by the algorithm to converge. \end{itemize} \iteme[{\tt h}] Greedy-graph-growing method. This is a $k$-way version of the original algorithm, in which parts are grown one after the other. Consequently, depending on graph topology, this method is likely to yield disconnected parts, with higher probability as the number of part increases. This method has only one parameter. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of runs performed by the algorithm. \end{itemize} \iteme[{\tt m}] Multilevel method. The parameters of the multilevel method are listed below. \begin{itemize} \iteme[{\tt asc=}{\it strat}] Set the strategy that is used to refine the partitions obtained at ascending levels of the uncoarsening phase by projection of the bipartitions computed for coarser graphs. This strategy is not applied to the coarsest graph, for which only the {\tt low} strategy is used. \iteme[{\tt low=}{\it strat}] Set the strategy that is used to compute the partition of the coarsest graph, at the lowest level of the coarsening process. \iteme[{\tt rat=}{\it rat}] Set the threshold maximum coarsening ratio over which graphs are no longer coarsened. The ratio of any given coarsening cannot be less that $0.5$ (case of a perfect matching), and cannot be greater than $1.0$. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph has fewer vertices than the minimum number of vertices allowed. \iteme[{\tt vert=}{\it nbr}] Set the threshold minimum number of vertices per part under which graphs are no longer coarsened. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph has fewer vertices than the minimum number of vertices allowed. \end{itemize} \iteme[{\tt r}] Recursive bipartitioning algorithm. The parameters of the recursive bipartitioning method are listed below. \begin{itemize} \iteme[{\tt sep=}{\it strat}] Apply vertex (node) separation strategy {\it strat\/} to each bipartitioning job. A node separation strategy is made of one or several node separation methods, which can be combined by means of strategy operators. Node separation strategies are described in Section~\ref{sec-lib-format-strat-nsep}. \end{itemize} \end{itemize} \subsubsection{Ordering strategy strings} \label{sec-lib-format-strat-ord} Ordering strategies are available both for graphs and for meshes. An ordering strategy is made of one or several ordering methods, which can be combined by means of strategy operators. The strategy operators that can be used in ordering strategies are listed below, by increasing precedence. \begin{itemize} \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single ordering method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current node of the separators tree, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a node variable, {\it val\/} is either a node variable or a constant of the type of variable {\it var}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The node variables are listed below, along with their types. \begin{itemize} \iteme[{\tt edge}] The number of vertices of the current subgraph. Integer. \iteme[{\tt levl}] The level of the subgraph in the separators tree, starting from zero for the initial graph at the root of the tree. Integer. \iteme[{\tt load}] The overall vertex load (weight) of the current subgraph. Integer. \iteme[{\tt mdeg}] The maximum degree of the current subgraph. Integer. \iteme[{\tt vert}] The number of vertices of the current subgraph. Integer. \end{itemize} \end{itemize} \iteme[{\it method\/}{[{\tt \{}{\it parameters\/}{\tt \}}]}] Graph or mesh ordering method. Available ordering methods are listed below. \end{itemize} The currently available ordering methods are the following. \begin{itemize} \iteme[{\tt b}] Blocking method. This method does not perform ordering by itself, but is used as post-processing to cut into blocks of smaller sizes the separators or large blocks produced by other ordering methods. This is not useful in the context of direct solving methods, because the off-diagonal blocks created by the splitting of large diagonal blocks are likely to be filled at factoring time. However, in the context of incomplete solving methods such as ILU(k)~\cite{heperaro04a}, it can lead to a significant reduction of the required memory space and time, because it helps carving large triangular blocks. The parameters of the blocking method are described below. \begin{itemize} \iteme[{\tt cmin=}{\it wght}] Set the minimum span of the resulting sub-blocks, in terms of column weights. When the graph has no vertex weights (that is, all columns have weight $1$), \texttt{cmin} represents the minimum number of colums to be included within each sub-block. For unweighted graphs, blocks larger than twice this minimum weight are cut into sub-blocks of equal sizes (within one), having a number of columns comprised between {\it wght} and $2${\it wght}. For weighted graphs, the algorithm performs in a best effort to achieve this goal. \\ The definition of {\it size} depends on the size of the graph to order. Large graphs cannot afford very small values, because the number of blocks becomes much too large and limits the acceleration of BLAS~3 routines, while large values do not help reducing enough the complexity of ILU(k) solving. \iteme[{\tt strat=}{\it strat}] Ordering strategy to be performed. After the ordering strategy is applied, the resulting separators tree is traversed and all of the column blocks that are larger than $2${\it size} are split into smaller column blocks, without changing the ordering that has been computed. \end{itemize} \iteme[{\tt c}] \label{sec-lib-meth-compress} Compression method~\cite{ashc95}. The parameters of the compression method are listed below. \begin{itemize} \iteme[{\tt rat=}{\it rat}] Set the compression ratio over which graphs and meshes will not be compressed. Useful values range between $0.7$ and $0.8$. \iteme[{\tt cpr=}{\it strat}] Ordering strategy to use on the compressed graph or mesh if its size is below the compression ratio times the size of the original graph or mesh. \iteme[{\tt unc=}{\it strat}] Ordering strategy to use on the original graph or mesh if the size of the compressed graph or mesh were above the compression ratio times the size of the original graph or mesh. \end{itemize} \iteme[{\tt d}] Block Halo Approximate Minimum Degree method~\cite{peroam99}. The parameters of the Halo Approximate Minimum Degree method are listed below. The Block Halo Approximate Minimum Fill method, described below, is more efficient and should be preferred. \begin{itemize} \iteme[{\tt cmin=}{\it wght}] Minimum weight per column block. All column blocks of weight smaller than {\it wght\/} are amalgamated to their parent column block in the elimination tree, provided that it does not violate the {\tt cmax} constraint. \iteme[{\tt cmax=}{\it wght}] Maximum weight over which a column block will not amalgamate one of its descendents in the elimination tree. This parameter is mainly designed to provide an upper bound for block size in the context of BLAS3 computations~; else, a huge value should be provided. \iteme[{\tt frat=}{\it rat}] Fill-in ratio over which some column block will not amalgamate one of its descendents in the elimination tree. Typical values range from $0.05$ to $0.10$. \end{itemize} \iteme[{\tt f}] Block Halo Approximate Minimum Fill method. The parameters of the Halo Approximate Minimum Fill method are listed below. \begin{itemize} \iteme[{\tt cmin=}{\it wght}] Minimum weight per column block. All column blocks of weight smaller than {\it wght\/} are amalgamated to their parent column block in the elimination tree, provided that it does not violate the {\tt cmax} constraint. \iteme[{\tt cmax=}{\it size}] Maximum weight over which a column block will not amalgamate one of its descendents in the elimination tree. This parameter is mainly designed to provide an upper bound for block size in the context of BLAS3 computations~; else, a huge value should be provided. \iteme[{\tt frat=}{\it rat}] Fill-in ratio over which some column block will not amalgamate one of its descendents in the elimination tree. Typical values range from $0.05$ to $0.10$. \end{itemize} \iteme[{\tt g}] Gibbs-Poole-Stockmeyer method. This method is used on separators to reduce the number and extent of extra-diagonal blocks. If the number of extra-diagonal blocks is not relevant, the {\tt s} method should be preferred. This method has only one parameter. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of sweeps performed by the algorithm. \end{itemize} \iteme[{\tt n}] Nested dissection method. The parameters of the nested dissection method are given below. \begin{itemize} \iteme[{\tt ole=}{\it strat}] Set the ordering strategy that is used on every leaf of the separators tree if the node separation strategy {\tt sep} has failed to separate it further. \iteme[{\tt ose=}{\it strat}] Set the ordering strategy that is used on every separator of the separators tree. \iteme[{\tt sep=}{\it strat}] Set the node separation strategy that is used on every leaf of the separators tree to make it grow. Node separation strategies are described below, in section~\ref{sec-lib-format-strat-nsep}. \end{itemize} \iteme[{\tt o}] Disconnected subgraph detection method. This method is used at the global level to search for connected components, and run independently the provided graph ordering strategy on each of them. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Ordering strategy to apply to each of the connected components. \end{itemize} \iteme[{\tt s}] Simple method. Vertices are ordered in their natural order. This method is fast, and should be used to order separators if the number of extra-diagonal blocks is not relevant~; else, the {\tt g} method should be preferred. \iteme[{\tt v}] Mesh-to-graph method. Available only for mesh ordering strategies. From the mesh to which this method applies is derived a graph, such that a graph vertex is associated with every node of the mesh, and a clique is created between all vertices which represent nodes that belong to the same element. A graph ordering strategy is then applied to the derived graph, and this ordering is projected back to the nodes of the mesh. This method is here for evaluation purposes only, as mesh ordering methods are generally more efficient than their graph ordering counterpart. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Graph ordering strategy to apply to the associated graph. \end{itemize} \end{itemize} \subsubsection{Node separation strategy strings} \label{sec-lib-format-strat-nsep} A node separation strategy is made of one or several node separation methods, which can be combined by means of strategy operators. Strategy operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it strat1\/}{\tt |}{\it strat2}] Selection operator. The result of the selection is the best vertex separator of the two that are obtained by the distinct application of {\it strat1\/} and {\it strat2\/} to the current separator. \iteme[{\it strat1$\:$}{\it strat2}] Combination operator. Strategy {\it strat2\/} is applied to the vertex separator resulting from the application of strategy {\it strat1\/} to the current separator. Typically, the first method used should compute an initial separation from scratch, and every following method should use the result of the previous one as a starting point. \iteme[{\tt (}{\it strat\/}{\tt )}] Grouping operator. The strategy enclosed within the parentheses is treated as a single separation method. \iteme[{\tt /}{\it cond\/}{\tt ?}{\it strat1\/}{[{\tt :}{\it strat2}]{\tt ;}}] Condition operator. According to the result of the evaluation of condition {\it cond}, either {\it strat1\/} or {\it strat2\/} (if it is present) is applied. The condition applies to the characteristics of the current subgraph, and can be built from logical and relational operators. Conditional operators are listed below, by increasing precedence. \begin{itemize} \iteme[{\it cond1\/}{\tt |}{\it cond2}] Logical or operator. The result of the condition is true if {\it cond1\/} or {\it cond2\/} are true, or both. \iteme[{\it cond1\/}{\tt \&}{\it cond2}] Logical and operator. The result of the condition is true only if both {\it cond1\/} and {\it cond2\/} are true. \iteme[{\tt !}{\it cond}] Logical not operator. The result of the condition is true only if {\it cond\/} is false. \iteme[{\it var} {\it relop} {\it val}] Relational operator, where {\it var\/} is a graph or node variable, {\it val\/} is either a graph or node variable or a constant of the type of variable {\it var\/}, and {\it relop\/} is one of '{\tt\verb+<+}', '{\tt\verb+=+}', and '{\tt\verb+>+}'. The graph and node variables are listed below, along with their types. \begin{itemize} \iteme[{\tt levl}] The level of the subgraph in the separators tree, starting from zero at the root of the tree. Integer. \iteme[{\tt proc}] The number of processors on which the current subgraph is distributed at this level of the separators tree. This variable is available only when calling from routines of the \ptscotch\ parallel library. Integer. \iteme[{\tt rank}] The rank of the current processor among the group of processors on which the current subgraph is distributed at this level of the separators tree. This variable is available only when calling from routines of the \ptscotch\ parallel library, for instance to decide which node separation strategy should be used on which processor in a multi-sequential approach. Integer. \iteme[{\tt vert}] The number of vertices of the current subgraph. Integer. \end{itemize} \end{itemize} \end{itemize} The currently available vertex separation methods are the following. \begin{itemize} \iteme[{\tt b}] Band method. Available only for graph separation strategies. This method builds a band graph of given width around the current separator of the graph to which it is applied, and calls a graph separation strategy to refine the equivalent separator of the band graph. Then, the refined separator of the band graph is projected back to the current graph. This method, presented in~\cite{chpe06a}, was created to reduce the cost of separator refinement algorithms in a multilevel context, but it improves partition quality too. The parameters of the band separation method are listed below. \begin{itemize} \iteme[{\tt bnd=}{\it strat}] Set the vertex separation strategy to be used on the band graph. \iteme[{\tt org=}{\it strat}] Set the fallback vertex separation strategy to be used on the original graph if the band graph strategy could not be used. The three cases which require the use of this fallback strategy are the following. First, if the separator of the original graph is empty, which makes it impossible to compute a band graph. Second, if any part of the band graph to be built is of the same size as the one of the original graph. Third, if the application of the {\tt bnd} vertex separation method to the band graph leads to a situation where both anchor vertices are placed in the same part. \iteme[{\tt width=}{\it val}] Set the width of the band graph. All graph vertices that are at a distance less than or equal to {\it val} from any separator vertex are kept in the band graph. \end{itemize} \iteme[{\tt e}] Edge-separation method. Available only for graph separation strategies. This method builds vertex separators from edge separators, by the method proposed by Pothen and Fang~\cite{pofa90}, which uses a variant of the Hopcroft and Karp algorithm due to Duff~\cite{duff81}. This method is expensive and most often yields poorer results than direct vertex-oriented methods such as the vertex vertex Greedy-graph-growing and the vertex Fiduccia-Mattheyses algorithms. The parameters of the edge-separation method are listed below. \begin{itemize} \iteme[{\tt bal=}{\it val}] Set the load imbalance tolerance to {\it val}, which is a floating-point ratio expressed with respect to the ideal load of the partitions. \iteme[{\tt strat=}{\it strat}] Set the graph bipartitioning strategy that is used to compute the edge bipartition. The syntax of bipartitioning strategy strings is defined in Section~\ref{sec-lib-format-strat-bipart}. \iteme[{\tt width=}{\it type}] Select the width of the vertex separators built from edge separators. When {\it type\/} is set to {\tt f}, fat vertex separators are built, that hold all of the ends of the edges of the edge cut. When it is set to {\tt t}, a thin vertex separator is built by removing as many vertices as possible from the fat separator. \end{itemize} \iteme[{\tt f}] Vertex Fiduccia-Mattheyses method. The parameters of the vertex Fiduccia-Mattheyses method are listed below. \begin{itemize} \iteme[{\tt bal=}{\it rat}] Set the maximum weight imbalance ratio to the given fraction of the weight of all node vertices. Common values are around $0.01$, that is, one percent. \iteme[{\tt move=}{\it nbr}] Maximum number of hill-climbing moves that can be performed before a pass ends. During each of its passes, the vertex Fiduccia-Mattheyses algorithm repeatedly moves vertices from the separator to any of the two parts, so as to minimize the size of the separator. A pass completes either when all of the vertices have been moved once, or if too many swaps that do not decrease the size of the separator have been performed. \iteme[{\tt pass=}{\it nbr}] Set the maximum number of optimization passes performed by the algorithm. The vertex Fiduccia-Mattheyses algorithm stops as soon as a pass has not yielded any reduction of the size of the separator, or when the maximum number of passes has been reached. Value -1 stands for an infinite number of passes, that is, as many as needed by the algorithm to converge. \end{itemize} \iteme[{\tt g}] Gibbs-Poole-Stockmeyer method. Available only for graph separation strategies. This method has only one parameter. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of sweeps performed by the algorithm. \end{itemize} \iteme[{\tt h}] Vertex greedy-graph-growing method. This method has only one parameter. \begin{itemize} \iteme[{\tt pass=}{\it nbr}] Set the number of runs performed by the algorithm. \end{itemize} \iteme[{\tt m}] Vertex multilevel method. The parameters of the vertex multilevel method are listed below. \begin{itemize} \iteme[{\tt asc=}{\it strat}] Set the strategy that is used to refine the vertex separators obtained at ascending levels of the uncoarsening phase by projection of the separators computed for coarser graphs or meshes. This strategy is not applied to the coarsest graph or mesh, for which only the {\tt low} strategy is used. \iteme[{\tt low=}{\it strat}] Set the strategy that is used to compute the vertex separator of the coarsest graph or mesh, at the lowest level of the coarsening process. \iteme[{\tt rat=}{\it rat}] Set the threshold maximum coarsening ratio over which graphs or meshes are no longer coarsened. The ratio of any given coarsening cannot be less that $0.5$ (case of a perfect matching), and cannot be greater than $1.0$. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph or mesh has fewer node vertices than the minimum number of vertices allowed. \iteme[{\tt vert=}{\it nbr}] Set the threshold minimum size under which graphs or meshes are no longer coarsened. Coarsening stops when either the coarsening ratio is above the maximum coarsening ratio, or the graph or mesh has fewer node vertices than the minimum number of vertices allowed. \end{itemize} \iteme[{\tt t}] Thinner method. Available only for graph separation strategies. This method quickly eliminates all useless vertices of the current separator. It searches the separator for vertices that have no neighbors in one of the two parts, and moves these vertices to the part they are connected to. This method may be used to refine separators during the uncoarsening phase of the multilevel method, and is faster than a vertex Fiduccia-Mattheyses algorithm with {\tt \{move\lbt =\lbt 0\}}. \iteme[{\tt v}] Mesh-to-graph method. Available only for mesh separation strategies. From the mesh to which this method applies is derived a graph, such that a graph vertex is associated with every node of the mesh, and a clique is created between all vertices which represent nodes that belong to the same element. A graph separation strategy is then applied to the derived graph, and the separator is projected back to the nodes of the mesh. This method is here for evaluation purposes only, as mesh separation methods are generally more efficient than their graph separation counterpart. \begin{itemize} \iteme[{\tt strat=}{\it strat}] Graph separation strategy to apply to the associated graph. \end{itemize} \iteme[{\tt w}] Graph separator viewer. Available only for graph separation strategies. Every call to this method results in the creation, in the current subdirectory, of partial mapping files called ``{\tt vgraph\lbt separate\lbt vw\_\lbt output\_\lbt {\it nnnnnnnn}.map}'', where ``{\it nnnnnnnn}'' are increasing decimal numbers, which contain the current state of the two parts and the separator. These mapping files can be used as input by the {\tt gout} program to produce displays of the evolving shape of the current separator and parts. This is mostly a debugging feature, but it can also have an illustrative interest. While it is only available for graph separation strategies, mesh separation strategies can indirectly use it through the mesh-to-graph separation method. \iteme[{\tt z}] Zero method. This method moves all of the node vertices to the first part, resulting in an empty separator. Its main use is to stop the separation process whenever some condition is true. \end{itemize} \subsection{Target architecture handling routines} \label{sec-lib-arch-handling} \subsubsection{{\tt SCOTCH\_archAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Arch * SCOTCH\_archAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_archAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Arch} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt arch\lbt Init} routine. \progret {\tt SCOTCH\_archAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_archExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_archExit ( & SCOTCH\_Arch * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchexit ( & doubleprecision (*) & archdat) \end{tabular}} \progdes The {\tt SCOTCH\_archExit} function frees the contents of a {\tt SCOTCH\_\lbt Arch} structure previously initialized by {\tt SCOTCH\_\lbt archInit}. All subsequent calls to {\tt SCOTCH\_\lbt arch} routines other than {\tt SCOTCH\_\lbt archInit}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_archInit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archInit ( & SCOTCH\_Arch * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchinit ( & doubleprecision (*) & archdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archInit} function initializes a {\tt SCOTCH\_\lbt Arch} structure so as to make it suitable for future operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Arch} structure. When the target architecture data is no longer of use, call function {\tt SCOTCH\_\lbt archExit} to free its internal structures. \progret {\tt SCOTCH\_archInit} returns $0$ if the architecture structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archLoad}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archLoad ( & SCOTCH\_Arch * & archptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchload ( & doubleprecision (*) & archdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archLoad} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the source graph description available from stream {\tt stream} in the \scotch\ target architecture format (see Section~\ref{sec-file-target}). Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the architecture file. \progret {\tt SCOTCH\_archLoad} returns $0$ if the target architecture structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archName}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} const char * SCOTCH\_archName ( & const SCOTCH\_Arch * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchname ( & doubleprecision (*) & archdat, \\ & character (*) & chartab, \\ & integer & charnbr) \end{tabular}} \progdes The {\tt SCOTCH\_archName} function returns a string containing the name of the architecture pointed to by {\tt archptr}. Since Fortran routines cannot return string pointers, the {\tt scotchf\lbt arch\lbt name} routine takes as second and third parameters a {\tt character()} array to be filled with the name of the architecture, and the {\tt integer} size of the array, respectively. If the array is of sufficient size, a trailing nul character is appended to the string to materialize the end of the string (this is the C style of handling character strings). \progret {\tt SCOTCH\_archName} returns a non-null character pointer that points to a null-terminated string describing the type of the architecture. \end{itemize} \subsubsection{{\tt SCOTCH\_archSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archSave ( & const SCOTCH\_Arch * & archptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchsave ( & doubleprecision (*) & archdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archSave} routine saves the contents of the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} to stream {\tt stream}, in the \scotch\ target architecture format (see section~\ref{sec-file-target}). Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the architecture file. \progret {\tt SCOTCH\_archSave} returns $0$ if the graph structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archSize}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_archSize ( & const SCOTCH\_Arch * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchsize ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & archnbr) \end{tabular}} \progdes The {\tt SCOTCH\_archSize} function returns the number of nodes of the given target architecture. The Fortran routine has a second parameter, of integer type, which is set on return with the number of nodes of the target architecture. \progret {\tt SCOTCH\_archSize} returns the number of nodes of the target architecture. \end{itemize} \subsubsection{{\tt SCOTCH\_archSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_archSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_archSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Arch} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsection{Target architecture creation routines} \label{sec-lib-arch-create} \subsubsection{{\tt SCOTCH\_archBuild0} / {\tt SCOTCH\_archBuild}} \label{sec-lib-arch-build} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archBuild0 ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & listnbr, \\ & const SCOTCH\_Num * & listtab, \\ & const SCOTCH\_Strat * & straptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archBuild ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & listnbr, \\ & const SCOTCH\_Num * & listtab, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchbuild0 ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & grafdat, \\ & integer*{\it num} & listnbr, \\ & integer*{\it num} (*) & listtab, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchbuild ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & grafdat, \\ & integer*{\it num} & listnbr, \\ & integer*{\it num} (*) & listtab, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archBuild0} routine fills the architecture structure pointed to by {\tt archptr} with the ``\texttt{deco 1}'' (that is, a compiled form of a ``\texttt{deco 0}'') decomposition-defined target architecture computed by applying the graph bipartitioning strategy pointed to by {\tt straptr} to the architecture graph pointed to by {\tt grafptr}. When {\tt listptr} is not {\tt NULL} and {\tt listnbr} is greater than zero, the decomposition-defined architecture is restricted to the {\tt listnbr} vertices whose indices are given in the array pointed to by {\tt listtab}, from {\tt listtab\lbt [0]} to {\tt listtab\lbt [listnbr - 1]}. These indices should have the same base value as the one of the graph pointed to by {\tt grafptr}, that is, be in the range from $0$ to $\mathtt{vertnbr} - 1$ if the graph base is $0$, and from $1$ to $\mathtt{vertnbr}$ if the graph base is $1$. Graph bipartitioning strategies are declared by means of the {\tt SCOTCH\_\lbt strat\lbt Graph\lbt Bipart} function, described in page~\pageref{sec-lib-strat-graph-bipart}. The syntax of bipartitioning strategy strings is defined in section~\ref{sec-lib-format-strat-map}, page~\pageref{sec-lib-format-strat-map}. Additional information may be obtained from the manual page of {\tt amk\_\lbt grf}, the stand-alone executable that builds decomposition-defined target architecture files from source graph files, available at page~\pageref{sec-prog-amkgrf}. At the time being, {\tt SCOTCH\_arch\lbt Build} is equivalent to {\tt SCOTCH\_\lbt arch\lbt Build0}. In future releases, it is planned that {\tt SCOTCH\_\lbt arch\lbt Build} will either behave as {\tt SCOTCH\_\lbt arch\lbt Build0} or {\tt SCOTCH\_\lbt arch\lbt Build2}, depending on target graph size. For target graphs of small sizes, users are invited to use explicitly the {\tt SCOTCH\_\lbt arch\lbt Build0} routine. \progret {\tt SCOTCH\_archBuild0} returns $0$ if the decomposition-defined architecture has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archBuild2}} \label{sec-lib-arch-build-two} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archBuild2 ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & listnbr, \\ & const SCOTCH\_Num * & listtab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchbuild2 ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & grafdat, \\ & integer*{\it num} & listnbr, \\ & integer*{\it num} (*) & listtab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archBuild2} routine fills the architecture structure pointed to by {\tt archptr} with the ``\texttt{deco 2}'' decomposition-defined target architecture corresponding to the graph pointed to by {\tt grafptr}. Since the computation of the decomposition is performed by means of graph coarsening, unlike {\tt SCOTCH\_\lbt arch\lbt Build}, no bipartitioning strategy has to be provided. When {\tt listptr} is not {\tt NULL} and {\tt listnbr} is greater than zero, the decomposition-defined architecture is restricted to the {\tt listnbr} vertices whose indices are given in the array pointed to by {\tt listtab}, from {\tt listtab\lbt [0]} to {\tt listtab\lbt [listnbr - 1]}. These indices should have the same base value as that of the graph pointed to by {\tt grafptr}, that is, be in the range from $0$ to $\mathtt{vertnbr} - 1$ if the graph base is $0$, and from $1$ to $\mathtt{vertnbr}$ if the graph base is $1$. Additional information may be obtained from the manual page of {\tt amk\_\lbt grf}, the stand-alone executable that builds decomposition-defined target architecture files from source graph files, available at page~\pageref{sec-prog-amkgrf}. \progret {\tt SCOTCH\_archBuild} returns $0$ if the decomposition-defined architecture has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archCmplt}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archCmplt ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & vertnbr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchcmplt ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & vertnbr, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archCmplt} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a complete graph architecture with {\tt vertnbr} processors, which can be used as input to {\tt SCOTCH\_\lbt graph\lbt Map} to perform graph partitioning. A shortcut to this is to use the {\tt SCOTCH\_\lbt graph\lbt Part} routine. \progret {\tt SCOTCH\_archCmplt} returns $0$ if the complete graph target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archCmpltw}} \label{sec-lib-arch-cmpltw} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archCmpltw ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & vertnbr, \\ & const SCOTCH\_Num & velotab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchcmplt ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & vertnbr, \\ & integer*{\it num} (*) & velotab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archCmpltw} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a weighted complete graph architecture with {\tt vertnbr} processors. The relative weights of the processors are given in the {\tt velotab} array. Once the target architecture has been created, it can be used as input to {\tt SCOTCH\_\lbt graph\lbt Map} to perform weighted graph partitioning. \progret {\tt SCOTCH\_archCmpltw} returns $0$ if the weighted complete graph target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archHcub}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archHcub ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & hdimval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchhcub ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & hdimval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archHcub} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a hypercube graph architecture of dimension {\tt hdimval}. \progret {\tt SCOTCH\_archHcub} returns $0$ if the hypercube target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archLtleaf}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archLtleaf ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & levlnbr, \\ & const SCOTCH\_Num * & sizetab, \\ & const SCOTCH\_Num * & linktab, \\ & const SCOTCH\_Num & permnbr, \\ & const SCOTCH\_Num * & permtab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchltleaf ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & levlnbr, \\ & integer*{\it num} (*) & sizetab, \\ & integer*{\it num} (*) & linktab, \\ & integer*{\it num} & permnbr, \\ & integer*{\it num} (*) & permtab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archLtleaf} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a labeled, tree-shaped, hierarchical graph architecture with $\sum_{i=0}^{\mathtt{levlnbr}-1}\mathtt{sizetab}\mbox{\tt [}i\mbox{\tt ]}$ processors. Level $0$ is the root of the tree. For each level $i$, with $0 \leq i < \mathtt{levlnbr}$, $\mathtt{sizetab}\mbox{\tt [}i\mbox{\tt ]}$ is the number of childs at level $(i+1)$ of each node at level $i$, and {\tt linktab[}$i${\tt ]} is the cost of communication between processors the first common ancestor of which belongs to this level. See Section~\ref{sec-file-target-algo}, page~\pageref{sec-file-target-ltleaf}, for an example of this architecture. \progret {\tt SCOTCH\_archLtleaf} returns $0$ if the labeled tree-leaf target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archMesh2}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archMesh2 ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & xdimval, \\ & const SCOTCH\_Num & ydimval) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchmesh2 ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & xdimval, \\ & integer*{\it num} & ydimval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archMesh2} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a 2D mesh architecture with $\mathtt{xdimval} \times \mathtt{ydimval}$ processors. \progret {\tt SCOTCH\_archMesh2} returns $0$ if the 2D mesh target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archMesh3}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archMesh3 ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & xdimval, \\ & const SCOTCH\_Num & ydimval, \\ & const SCOTCH\_Num & zdimval) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchmesh3 ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & xdimval, \\ & integer*{\it num} & ydimval, \\ & integer*{\it num} & zdimval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archMesh3} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a 3D mesh architecture with $\mathtt{xdimval} \times \mathtt{ydimval} \times \mathtt{zdimval}$ processors. \progret {\tt SCOTCH\_archMesh3} returns $0$ if the 3D mesh target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archMeshX}} \begin{itemize} \progsyn \texttt{\begin{tabular}{l@{}ll} int SCOTCH\_archMeshX ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & dimnnbr, \\ & const SCOTCH\_Num * & dimntab) \\ \end{tabular}} \texttt{\begin{tabular}{l@{}ll} scotchfarchmeshx ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & dimnnbr, \\ & integer*{\it num} & dimntab, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_archMeshX} routine fills the \texttt{SCOTCH\_\lbt Arch} structure pointed to by \texttt{archptr} with the description of a \texttt{dimnnbr}-dimension mesh architecture with $\prod_d\mathtt{dimntab[}d\mathtt{]}$ processors. The maximum number of dimensions is defined at compile-time. \progret \texttt{SCOTCH\_archMeshX} returns $0$ if the \texttt{dimnnbr}-dimension mesh target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archSub}} \label{sec-lib-arch-sub} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archSub ( & SCOTCH\_Arch * & subarchptr, \\ & SCOTCH\_Arch * & orgarchptr, \\ & const SCOTCH\_Num & vnumnbr, \\ & const SCOTCH\_Num * & vnumtab) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchsub ( & doubleprecision (*) & subarchdat, \\ & doubleprecision (*) & orgarchdat, \\ & integer*{\it num} & vnumnbr, \\ & integer*{\it num} & vnumtab, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_archSub} routine fills the \texttt{SCOTCH\_\lbt Arch} structure pointed to by \texttt{subarchptr} with the description of a subset of the \texttt{orgarchptr} architecture, restricted to \texttt{vertnbr} processors which are listed in the \texttt{vnumtab} array. The order in which the processor indices in the original architecture are stored in the \texttt{vnumtab} array defines the rank of these processors in the sub-architecture. Since the sub-architecture depends on the original architecture, the latter must not be de-allocated (by way of \texttt{SCOTCH\_\lbt arch\lbt Exit}) as long as the sub-architecture is being used. \progret {\tt SCOTCH\_archSub} returns $0$ if the target sub-architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archTleaf}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archTleaf ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & levlnbr, \\ & const SCOTCH\_Num * & sizetab, \\ & const SCOTCH\_Num * & linktab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchtleaf ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & levlnbr, \\ & integer*{\it num} (*) & sizetab, \\ & integer*{\it num} (*) & linktab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archTleaf} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a tree-shaped, hierarchical graph architecture with $\sum_{i=0}^{\mathtt{levlnbr}-1}\mathtt{sizetab}{\tt [}i{\tt ]}$ processors. Level $0$ is the root of the tree. For each level $i$, with $0 \leq i < \mathtt{levlnbr}$, {\tt sizetab[}$i${\tt ]} is the number of childs at level $(i+1)$ of each node at level $i$, and {\tt linktab[}$i${\tt ]} is the cost of communication between processors the first common ancestor of which belongs to this level. See Section~\ref{sec-file-target-algo}, page~\pageref{sec-file-target-algo}, for an example of this architecture. \progret {\tt SCOTCH\_archTleaf} returns $0$ if the tree-leaf target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archTorus2}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archTorus2 ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & xdimval, \\ & const SCOTCH\_Num & ydimval) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchtorus2 ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & xdimval, \\ & integer*{\it num} & ydimval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archTorus2} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a 2D torus architecture with $\mathtt{xdimval} \times \mathtt{ydimval}$ processors. \progret {\tt SCOTCH\_archTorus2} returns $0$ if the 2D torus target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archTorus3}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archTorus3 ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & xdimval, \\ & const SCOTCH\_Num & ydimval, \\ & const SCOTCH\_Num & zdimval) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchtorus3 ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & xdimval, \\ & integer*{\it num} & ydimval, \\ & integer*{\it num} & zdimval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archTorus3} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a 3D torus architecture with $\mathtt{xdimval} \times \mbox{\tt ydimval} \times \mathtt{zdimval}$ processors. \progret {\tt SCOTCH\_archTorus3} returns $0$ if the 3D torus target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archTorusX}} \begin{itemize} \progsyn \texttt{\begin{tabular}{l@{}ll} int SCOTCH\_archTorusX ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num & dimnnbr, \\ & const SCOTCH\_Num * & dimntab) \\ \end{tabular}} \texttt{\begin{tabular}{l@{}ll} scotchfarchtorusx ( & doubleprecision (*) & archdat, \\ & integer*{\it num} & dimnnbr, \\ & integer*{\it num} & dimntab, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_archTorusX} routine fills the \texttt{SCOTCH\_\lbt Arch} structure pointed to by \texttt{archptr} with the description of a \texttt{dimnnbr}-dimension torus architecture with $\prod_d\mathtt{dimntab[}d\mathtt{]}$ processors. The maximum number of dimensions is defined at compile-time. \progret \texttt{SCOTCH\_archTorusX} returns $0$ if the \texttt{dimnnbr}-dimension mesh target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archVcmplt}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archVcmplt ( & SCOTCH\_Arch * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchvcmplt ( & doubleprecision (*) & archdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archVcmplt} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a ``variable-sized'' complete graph architecture, which can be used as input to {\tt SCOTCH\_\lbt graph\lbt Map} to perform graph clustering (see Section~\ref{sec-algo-variable}). Every domain of a variable-size architecture can always be bipartitioned into two subdomains. Consequently, when used in the context of a recursive bipartitioning algorithm, the algorithm will perform recursively until there is only a single source graph vertex in some target domain, or some bipartitioning method assigns all its source graph vertices to one of the subdomains. \progret {\tt SCOTCH\_archVcmplt} returns $0$ if the variable-sized complete graph target architecture has been successfully built, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_archVhcub}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archVhcub ( & SCOTCH\_Arch * & archptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchvhcub ( & doubleprecision (*) & archdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archVhcub} routine fills the {\tt SCOTCH\_\lbt Arch} structure pointed to by {\tt archptr} with the description of a ``variable-sized'' hypercube architecture, which can be used as input to {\tt SCOTCH\_\lbt graph\lbt Map} to perform graph clustering (see Section~\ref{sec-algo-variable}). Every domain of a variable-size architecture can always be bipartitioned into two subdomains. Consequently, when used in the context of a recursive bipartitioning algorithm, the algorithm will perform recursively until there is only a single source graph vertex in some target domain, or some bipartitioning method assigns all its source graph vertices to one of the subdomains. The difference of the variable-sized hypercube architecture with respect to the variable-sized complete graph architecture is that the cost of previously cut edges increases with the dimension of the hypercube. Hence, when some vertices whose edges have been cut previously, are placed in some part, their cut neighbors will tend to be put in a same part as well, on the other branch of the recursive bipartitioning tree, therefore increasing cluster locality. \progret {\tt SCOTCH\_archVhcub} returns $0$ if the variable-sized hypercube target architecture has been successfully built, and $1$ else. \end{itemize} \subsection{Target domain handling routines} \label{sec-lib-arch-dom-handling} \subsubsection{{\tt SCOTCH\_archDomAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_ArchDom * SCOTCH\_archDomAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_archDomAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt ArchDom} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. \progret {\tt SCOTCH\_archDomAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomBipart}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archDomBipart ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_ArchDom * & domnptr, \\ & SCOTCH\_ArchDom * & dom0ptr, \\ & SCOTCH\_ArchDom * & dom1ptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdombipart ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & domndat, \\ & doubleprecision (*) & dom0dat, \\ & doubleprecision (*) & dom1dat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archDomBipart} function tries to split the domain referred to by {\tt domnptr} into two disjoint subdomains referred to by {\tt dom0ptr} and {\tt dom1ptr}, in the target architecture referred to {\tt archptr}. \progret {\tt SCOTCH\_archDomBipart} returns $0$ if the domain could be bipartitioned, $1$ if bipartitioning could not be performed (because the domain is terminal), and $2$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomFrst}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archDomFrst ( & SCOTCH\_Arch * & archptr, \\ & SCOTCH\_ArchDom * & domnptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomfrst ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & domndat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archDomFrst} function initializes the domain structure referred to by {\tt domnptr} with the biggest domain of the target architecture referred to {\tt archptr}, that is, the domain that contains all terminal domains. \progret {\tt SCOTCH\_archDomFrst} returns $0$ if the domain could be created, and $1$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomSize}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_archDomSize ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_ArchDom * & domnptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomsize ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & domndat, \\ & integer*{\it num} & sizeval) \end{tabular}} \progdes The {\tt SCOTCH\_archDomSize} function returns the size of the domain referred to by {\tt domnptr}, that is, the number of terminal domains comprised in the domain, within the architecture referred to by {\tt archptr}. The Fortran routine has a third parameter, of {\tt SCOTCH\_\lbt Num} type, which is set on return with the domain size. \progret {\tt SCOTCH\_archDomSize} yields an integer value of type {\tt SCOTCH\_\lbt Num} that ranges between $1$ and the number of terminal domains in the architecture. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_archDomSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_archDomSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt ArchDom} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomTerm}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_archDomTerm ( & SCOTCH\_Arch * & archptr, \\ & SCOTCH\_ArchDom * & domnptr, \\ & const SCOTCH\_Num & domnnum) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomterm ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & domndat, \\ & integer*{\it num} & domnnum, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_archDomTerm} function initializes the domain structure referred to by {\tt domnptr} to correspond to the terminal domain of index {\tt domnnum} in the target architecture referred to {\tt archptr}. Applying the {\tt arch\lbt Dom\lbt Num} function to this domain yields back {\tt domnnum}. \progret {\tt SCOTCH\_archDomTerm} returns $0$ if the domain could be created, $1$ if {\tt domnnum} does not correspond to a valid terminal number for this architecture, and $2$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomWght}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_archDomWght ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_ArchDom * & domnptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomwght ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & domndat, \\ & integer*{\it num} & wghtval) \end{tabular}} \progdes The {\tt SCOTCH\_archDomWght} function returns the weight of the domain referred to by {\tt domnptr} in the architecture referred to by {\tt archptr}. The Fortran routine has a third parameter, of {\tt SCOTCH\_\lbt Num} type, which is set on return with this weight. The weight of a domain is the sum of the weights of all the terminal domains included within this domain. \progret {\tt SCOTCH\_archDomWght} yields an integer value of type {\tt SCOTCH\_\lbt Num} that ranges between $1$ and the sum of the weights of all terminal domains in the architecture. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomDist}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_archDomDist ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_ArchDom * & dom0ptr, \\ & const SCOTCH\_ArchDom * & dom1ptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomwght ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & dom0dat, \\ & doubleprecision (*) & dom1dat, \\ & integer*{\it num} & distval) \end{tabular}} \progdes The {\tt SCOTCH\_archDomDist} function returns the estimated distance between the two domains referred to by {\tt dom0ptr} and {\tt dom1ptr} in the architecture referred to by {\tt archptr}. The Fortran routine has a fourth parameter, of {\tt SCOTCH\_\lbt Num} type, which is set on return with this distance. The desirable properties of distance functions are described in Section~\ref{sec-algo-drb}. Basically, they should provide more accurate results as domain sizes decrease and as distance decreases. \progret {\tt SCOTCH\_archDomDist} yields an integer value of type {\tt SCOTCH\_\lbt Num} that is always greater than or equal to zero. It is equal to the maximum available integer value when the two domains belong to different connected components of a disconnected target architecture. \end{itemize} \subsubsection{{\tt SCOTCH\_archDomNum}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_archDomNum ( & SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_ArchDom * & domnptr) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfarchdomnum ( & doubleprecision (*) & archdat, \\ & doubleprecision (*) & domndat, \\ & integer*{\it num} & domnnum) \end{tabular}} \progdes The {\tt SCOTCH\_archDomNum} function returns the smallest number of terminal domain included within the domain referred to by {\tt domnptr} of the architecture referred to by {\tt archptr}. The Fortran routine has a third parameter, of {\tt SCOTCH\_\lbt Num} type, which is set on return with this terminal number. \progret {\tt SCOTCH\_archDomNum} yields an integer value of type {\tt SCOTCH\_\lbt Num} that ranges between $0$ and the number of terminal domains in the architecture, minus $1$. \end{itemize} \subsection{Graph handling routines} \label{sec-lib-graph} \subsubsection{{\tt SCOTCH\_graphAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Graph * SCOTCH\_graphAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_graphAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Graph} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt graph\lbt Init} routine. \progret {\tt SCOTCH\_graphAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphBase}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphBase ( & SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num & baseval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphbase ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & oldbaseval) \end{tabular}} \progdes The {\tt SCOTCH\_graphBase} routine sets the base of all graph indices according to the given base value, and returns the old base value. This routine is a helper for applications that do not handle base values properly. In Fortan, the old base value is returned in the third parameter of the function call. \progret {\tt SCOTCH\_graphBase} returns the old base value. \end{itemize} \subsubsection{{\tt SCOTCH\_graphBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphBuild ( & SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & baseval, \\ & const SCOTCH\_Num & vertnbr, \\ & const SCOTCH\_Num * & verttab, \\ & const SCOTCH\_Num * & vendtab, \\ & const SCOTCH\_Num * & velotab, \\ & const SCOTCH\_Num * & vlbltab, \\ & const SCOTCH\_Num & edgenbr, \\ & const SCOTCH\_Num * & edgetab, \\ & const SCOTCH\_Num * & edlotab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphbuild ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & vertnbr, \\ & integer*{\it num} (*) & verttab, \\ & integer*{\it num} (*) & vendtab, \\ & integer*{\it num} (*) & velotab, \\ & integer*{\it num} (*) & vlbltab, \\ & integer*{\it num} & edgenbr, \\ & integer*{\it num} (*) & edgetab, \\ & integer*{\it num} (*) & edlotab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphBuild} routine fills the source graph structure pointed to by {\tt grafptr} with all of the data that are passed to it. {\tt baseval} is the graph base value for index arrays (typically $0$ for structures built from C and $1$ for structures built from Fortran). {\tt vertnbr} is the number of vertices. {\tt verttab} is the adjacency index array, of size $({\tt vertnbr} + 1)$ if the edge array is compact (that is, if {\tt vendtab} equals $\mathtt{verttab}+1$ or {\tt NULL}), or of size {\tt vertnbr} else. {\tt vendtab} is the adjacency end index array, of size {\tt vertnbr} if it is disjoint from {\tt verttab}. {\tt velotab} is the vertex load array, of size {\tt vertnbr} if it exists. {\tt vlbltab} is the vertex label array, of size {\tt vertnbr} if it exists. {\tt edgenbr} is the number of arcs (that is, twice the number of edges). {\tt edgetab} is the adjacency array, of size at least {\tt edgenbr} (it can be more if the edge array is not compact). {\tt edlotab} is the arc load array, of size {\tt edgenbr} if it exists. The {\tt vendtab}, {\tt velotab}, {\tt vlbltab} and {\tt edlotab} arrays are optional, and a {\tt NULL} pointer can be passed as argument whenever they are not defined. Since, in Fortran, there is no null reference, passing the {\tt scotchf\lbt graph\lbt build} routine a reference equal to {\tt verttab} in the {\tt velotab} or {\tt vlbltab} fields makes them be considered as missing arrays. The same holds for {\tt edlotab} when it is passed a reference equal to {\tt edgetab}. Setting {\tt vendtab} to refer to one cell after {\tt verttab} yields the same result, as it is the exact semantics of a compact vertex array. To limit memory consumption, {\tt SCOTCH\_\lbt graph\lbo Build} does not copy array data, but instead references them in the {\tt SCOTCH\_\lbt Graph} structure. Therefore, great care should be taken not to modify the contents of the arrays passed to {\tt SCOTCH\_\lbt graph\lbo Build} as long as the graph structure is in use. Every update of the arrays should be preceded by a call to {\tt SCOTCH\_\lbt graph\lbo Free}, to free internal graph structures, and eventually followed by a new call to {\tt SCOTCH\_\lbt graph\lbo Build} to re-build these internal structures so as to be able to use the new graph. To ensure that inconsistencies in user data do not result in an erroneous behavior of the \libscotch\ routines, it is recommended, at least in the development stage, to call the {\tt SCOTCH\_\lbt graph\lbt Check} routine on the newly created {\tt SCOTCH\_\lbt Graph} structure before calling any other \libscotch\ routine. \progret {\tt SCOTCH\_graphBuild} returns $0$ if the graph structure has been successfully set with all of the input data, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphCheck}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphCheck ( & const SCOTCH\_Graph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphcheck ( & doubleprecision (*) & grafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphCheck} routine checks the consistency of the given {\tt SCOTCH\_\lbt Graph} structure. It can be used in client applications to determine if a graph that has been created from used-generated data by means of the {\tt SCOTCH\_\lbt graph\lbt Build} routine is consistent, prior to calling any other routines of the \libscotch\ library. \progret {\tt SCOTCH\_graphCheck} returns $0$ if graph data are consistent, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphCoarsen}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphCoarsen ( & const SCOTCH\_Graph * & finegrafptr, \\ & const SCOTCH\_Num & coarvertnbr, \\ & const double & coarrat, \\ & const SCOTCH\_Num & flagval, \\ & SCOTCH\_Graph * & coargrafptr, \\ & SCOTCH\_Num * & coarmulttab) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphcoarsen ( & doubleprecision (*) & finegrafdat, \\ & integer*{\it num} & coarvertnbr, \\ & doubleprecision & coarrat, \\ & integer*{\it num} & flagval, \\ & doubleprecision (*) & coargrafdat, \\ & integer*{\it num} (*) & coarmulttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphCoarsen} routine creates, in the {\tt SCOTCH\_\lbt Graph} structure {\tt coar\lbt graf\lbt dat} pointed to by {\tt coar\lbt graf\lbt ptr}, a graph coarsened from the {\tt SCOTCH\_\lbt Graph} structure {\tt fine\lbt graf\lbt dat} pointed to by {\tt fine\lbt graf\lbt ptr}. The coarsened graph is created only if it comprises more than {\tt coar\lbt vert\lbt nbr} vertices, or if the coarsening ratio is lower than {\tt coarrat}. Valid coarsening ratio values range from $0.5$ (in the case of a perfect matching) to $1.0$ (if no vertex could be coarsened). Classical threshold values range from $0.7$ to $0.8$. The {\tt flagval} flag specifies the type of coarsening. % Several groups of flags can be combined, by means of addition or % ``binary or'' operators. When {\tt SCOTCH\_\lbt COARSEN\lbt NO\lbt MERGE} is set, isolated vertices are never merged with other vertices. This preserves the topology of the graph, at the expense of a higher coarsening ratio. The {\tt coarmulttab} array should be of a size big enough to store multinode data for the resulting coarsened graph. Hence, the size of the array must be at least twice the maximum expected number of local coarse vertices, according to the prescribed coarsening ratio {\tt coarrat}. Upon successful completion, this array will contain pairs of consecutive {\tt SCOTCH\_\lbt Num} values, representing the indices of the two fine vertices that have been coarsened into each of the coarse vertices. When a vertex has been coarsened with itself, its two multinode values are identical. {\tt coargrafdat} must have been initialized with the {\tt SCOTCH\_\lbt graph\lbt Init} routine before {\tt SCOTCH\_graph\lbt Coarsen} is called. \progret {\tt SCOTCH\_graphCoarsen} returns $0$ if the coarse graph structure has been successfully created, $1$ if the coarse graph was not created because it did not enforce the threshold parameters, and $2$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_graphCoarsenBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphCoarsenBuild ( & SCOTCH\_Graph * & finegrafptr, \\ & const SCOTCH\_Num & coarvertnbr, \\ & SCOTCH\_Num * & finematetab, \\ & SCOTCH\_Graph * & coargrafptr, \\ & SCOTCH\_Num * & coarmulttab) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphcoarsenbuild ( & doubleprecision (*) & finegrafdat, \\ & integer*{\it num} & coarvertnbr, \\ & integer*{\it num} (*) & finematetab, \\ & doubleprecision (*) & coargrafdat, \\ & integer*{\it num} (*) & coarmulttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphCoarsenBuild} routine creates, in the {\tt SCOTCH\_\lbt Graph} structure {\tt coar\lbt graf\lbt dat} pointed to by {\tt coar\lbt graf\lbt ptr}, a graph with {\tt coar\lbt vert\lbt nbr} vertices, coarsened from the {\tt SCOTCH\_\lbt Graph} structure {\tt fine\lbt graf\lbt dat} pointed to by {\tt fine\lbt graf\lbt ptr}, using the matching provided by {\tt fine\lbt mate\lbt tab}. On input, the {\tt fine\lbt mate\lbt tab} mating array should contain the indices of the mates chosen for each vertex of the fine graph. When some vertex is mated to itself, its array cell value is equal to its own index. Upon successful completion, this array is updated so as to contain fine-to-coarse indices: each array cell contains the index of the coarse vertex created from the given fine vertex. The {\tt fine\lbt mate\lbt tab} mating array and its associated number of coarse vertices {\tt coar\lbt vert\lbt nbr} may have been computed using the {\tt SCOTCH\_\lbt graph\lbt Coarsen\lbt Match} routine. Indeed, calling the {\tt SCOTCH\_\lbt graph\lbt Coarsen\lbt Match} and {\tt SCOTCH\_\lbt graph\lbt Coarsen\lbt Build} routines in sequence amounts to calling the {\tt SCOTCH\_\lbt graph\lbt Coarsen} routine, yet additionally publicizing the {\tt fine\lbt mate\lbt tab} array. The {\tt coarmulttab} array should be of a size big enough to store multinode data for the resulting coarsened graph, that is, twice the value of {\tt coar\lbt vert\lbt nbr}. Upon successful completion, this array will contain pairs of consecutive {\tt SCOTCH\_\lbt Num} values, representing the indices of the two fine vertices that have been coarsened into each of the coarse vertices. When a vertex has been coarsened with itself, the two multinode values are identical. {\tt coargrafdat} must have been initialized with the {\tt SCOTCH\_\lbt graph\lbt Init} routine before {\tt SCOTCH\_graph\lbt Coarsen\lbt Build} is called. \progret {\tt SCOTCH\_graphCoarsenBuild} returns $0$ if the coarse graph structure has been successfully created, and $1$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_graphCoarsenMatch}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphCoarsenMatch ( & SCOTCH\_Graph * & finegrafptr, \\ & SCOTCH\_Num * & coarvertptr, \\ & const double & coarrat, \\ & const SCOTCH\_Num & flagval, \\ & SCOTCH\_Num * & finematetab) \\ \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphcoarsenmatch ( & doubleprecision (*) & finegrafdat, \\ & integer*{\it num} & coarvertnbr, \\ & doubleprecision & coarrat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} (*) & finematetab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphCoarsenMatch} routine fills the {\tt fine\lbt mate\lbt tab} array with a matching of the vertices of the {\tt SCOTCH\_\lbt Graph} structure {\tt fine\lbt graf\lbt dat} pointed to by {\tt fine\lbt graf\lbt ptr}. The matching is computed only if it amounts to the creation of more than {\tt coar\lbt vert\lbt nbr} (that is, the value pointed to by {\tt coar\lbt vert\lbt ptr} in the C interface) coarse vertices, or if the coarsening ratio is lower than {\tt coarrat}. Valid coarsening ratio values range from $0.5$ (in the case of a perfect matching) to $1.0$ (if no vertex could be coarsened). Classical threshold values range from $0.7$ to $0.8$. The {\tt flagval} flag specifies the type of matching. % Several groups of flags can be combined, by means of addition or % ``binary or'' operators. When {\tt SCOTCH\_\lbt COARSEN\lbt NO\lbt MERGE} is set, isolated vertices are never matched with other vertices. This preserves the topology of the graph, at the expense of a higher coarsening ratio. The {\tt finematetab} array must be of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} values as the number of vertices in the {\tt fine\lbt graf\lbt dat} graph. Upon successful completion, this array will contain the indices of the mates chosen for each vertex of the provided graph. When some vertex is mated to itself, its array cell value is equal to its own index. Additionally, {\tt coarvertnbr} will be set to the number of coarse vertices associated with the matching. This number is equal to the number of vertices in the provided graph, minus the number of matched pairs of vertices, since in a subsequent coarsening process, each pair should see its two matched vertices collapsed into a single coarse vertex. The mating array and its associated number of coarse vertices can be used by the {\tt SCOTCH\_\lbt graph\lbt Coarsen\lbt Build} routine. Indeed, calling the {\tt SCOTCH\_\lbt graph\lbt Coarsen\lbt Match} and {\tt SCOTCH\_\lbt graph\lbt Coarsen\lbt Build} routines in sequence amounts to calling the {\tt SCOTCH\_\lbt graph\lbt Coarsen} routine, yet additionally publicizing the {\tt fine\lbt mate\lbt tab} array. \progret {\tt SCOTCH\_graphCoarsenMatch} returns $0$ if a matching has been successfully computed, $1$ if the matching was not computed because it did not enforce the threshold parameters, and $2$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_graphColor}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphColor ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & colotab, \\ & SCOTCH\_Num * & coloptr, \\ & SCOTCH\_Num & flagval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphcolor ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} (*) & colotab, \\ & integer{\it num} & colonbr, \\ & integer{\it num} & flagval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphColor} routine computes a coloring of the graph vertices. The {\tt colotab} array is filled with color values, and the number of colors found is placed into the integer variable {\tt colonbr}, pointed to by {\tt coloptr}. The computed coloring is not guaranteed to be maximal. Indeed, the only algorithm currently implemented is a variant of Luby's algorithm. Due to the operations of this algorithm, the first colors are likely to have many more representatives than the last colors. Like for partition arrays, color values are \textit{not} based: color values range from $0$ to $(\mathtt{colonbr} - 1)$. The flag value {\tt flagval} is currently not used. It may be used in the future to select a coloring method. At the time being, a value of $0$ should be provided. \progret {\tt SCOTCH\_graphColor} returns $0$ if the graph coloring has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphData}} \label{sec-lib-func-graphdata} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphData ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & baseptr, \\ & SCOTCH\_Num * & vertptr, \\ & SCOTCH\_Num ** & verttab, \\ & SCOTCH\_Num ** & vendtab, \\ & SCOTCH\_Num ** & velotab, \\ & SCOTCH\_Num ** & vlbltab, \\ & SCOTCH\_Num * & edgeptr, \\ & SCOTCH\_Num ** & edgetab, \\ & SCOTCH\_Num ** & edlotab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphdata ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} (*) & indxtab, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & vertnbr, \\ & integer*{\it idx} & vertidx, \\ & integer*{\it idx} & vendidx, \\ & integer*{\it idx} & veloidx, \\ & integer*{\it idx} & vlblidx, \\ & integer*{\it num} & edgenbr, \\ & integer*{\it idx} & edgeidx, \\ & integer*{\it num} & edloidx) \end{tabular}} \progdes The {\tt SCOTCH\_graphData} routine is the dual of the {\tt SCOTCH\_\lbt graph\lbo Build} routine. It is a multiple accessor that returns scalar values and array references. {\tt baseptr} is the pointer to a location that will hold the graph base value for index arrays (typically $0$ for structures built from C and $1$ for structures built from Fortran). {\tt vertptr} is the pointer to a location that will hold the number of vertices. {\tt verttab} is the pointer to a location that will hold the reference to the adjacency index array, of size $\mathtt{*vertptr} + 1$ if the adjacency array is compact, or of size {\tt *vertptr} else. {\tt vendtab} is the pointer to a location that will hold the reference to the adjacency end index array, and is equal to $\mathtt{verttab} + 1$ if the adjacency array is compact. {\tt velotab} is the pointer to a location that will hold the reference to the vertex load array, of size {\tt *vertptr}. {\tt vlbltab} is the pointer to a location that will hold the reference to the vertex label array, of size {\tt vertnbr}. {\tt edgeptr} is the pointer to a location that will hold the number of arcs (that is, twice the number of edges). {\tt edgetab} is the pointer to a location that will hold the reference to the adjacency array, of size at least {\tt *edgeptr}. {\tt edlotab} is the pointer to a location that will hold the reference to the arc load array, of size {\tt *edgeptr}. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. Since there are no pointers in Fortran, a specific mechanism is used to allow users to access graph arrays. The {\tt scotchf\lbt graph\lbt data} routine is passed an integer array, the first element of which is used as a base address from which all other array indices are computed. Therefore, instead of returning references, the routine returns integers, which represent the starting index of each of the relevant arrays with respect to the base input array, or {\tt vertidx}, the index of {\tt verttab}, if they do not exist. For instance, if some base array {\tt myarray\lbt (1)} is passed as parameter {\tt indxtab}, then the first cell of array {\tt verttab} will be accessible as {\tt myarray\lbt (vertidx)}. In order for this feature to behave properly, the {\tt indxtab} array must be word-aligned with the graph arrays. This is automatically enforced on most systems, but some care should be taken on systems that allow one to access data that is not word-aligned. On such systems, declaring the array after a dummy {\tt double\lbt precision} array can coerce the compiler into enforcing the proper alignment. Also, on 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type. See Section~\ref{sec-lib-inttypesize} for more information on this issue. \end{itemize} \subsubsection{{\tt SCOTCH\_graphDiamPV}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_graphDiamPV ( & const SCOTCH\_Graph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphdiampv ( & doubleprecision (*) & grafdat, \\ & integer{\it num} & diamval) \end{tabular}} \progdes The {\tt SCOTCH\_graphDiamPV} routine computes the edge-weighted (pseudo-)diameter value of the given graph. To do so, it selects a random vertex, computes the set of vertices at maximum distance from this vertex by means of Dijkstra's algorithm, selects a vertex from this set, and repeats the process as long as this maximum distance value increases. If the graph is not edge-weighted, neighboring vertices are assumed to be at distance $1$ from each other; else, edge weights represent distances between vertices. \progret {\tt SCOTCH\_graphDiamPV} returns a positive value if the graph diameter has been successfully computed, the \texttt{SCOTCH\_\lbt NUMMAX} maximum positive value if the graph is disconnected, and $-1$ on error. \end{itemize} \subsubsection{{\tt SCOTCH\_graphDump}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphDump ( & const SCOTCH\_Graph * & grafptr, \\ & const char * & prefptr, \\ & const char * & suffptr, \\ & FILE * & stream) \end{tabular}} \progdes The \texttt{SCOTCH\_graphDump} routine outputs the contents of the \texttt{SCOTCH\_\lbt Graph} structure pointed to by \texttt{grafptr} to stream \texttt{stream}, in the form of a C source code. The names of the data arrays that encode the various graph arrays (see Section~\ref{sec-lib-type-graph}), as well as the ``\texttt{GraphBuild}'' stem of the graph building function name, are prefixed and suffixed by the \texttt{prefptr} and \texttt{suffptr} strings, respectively. \progret {\tt SCOTCH\_graphDump} returns $0$ if the C source code corresponding to the graph structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphExit ( & SCOTCH\_Graph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphexit ( & doubleprecision (*) & grafdat) \end{tabular}} \progdes The {\tt SCOTCH\_graphExit} function frees the contents of a {\tt SCOTCH\_\lbt Graph} structure previously initialized by {\tt SCOTCH\_\lbt graphInit}. All subsequent calls to {\tt SCOTCH\_\lbt graph} routines other than {\tt SCOTCH\_\lbt graphInit}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_graphFree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphFree ( & SCOTCH\_Graph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphfree ( & doubleprecision (*) & grafdat) \end{tabular}} \progdes The {\tt SCOTCH\_graphFree} function frees the graph data of a {\tt SCOTCH\_\lbt Graph} structure previously initialized by {\tt SCOTCH\_\lbt graph\lbt Init}, but preserves its internal data structures. This call is equivalent to a call to {\tt SCOTCH\_\lbt graph\lbt Exit} immediately followed by a call to {\tt SCOTCH\_\lbt graph\lbt Init}. Consequently, the given {\tt SCOTCH\_\lbt Graph} structure remains ready for subsequent calls to any routine of the \libscotch\ library. \end{itemize} \subsubsection{{\tt SCOTCH\_graphInduceList}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphInduceList ( & const SCOTCH\_Graph * & orggrafptr, \\ & SCOTCH\_Num & vnumnbr, \\ & SCOTCH\_Num * & vnumtab, \\ & SCOTCH\_Graph * & indgrafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphinducelist ( & doubleprecision (*) & orggrafdat, \\ & integer*{\it num} & vnumnbr, \\ & integer{\it num} (*) & vnumtab, \\ & doubleprecision (*) & indgrafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphInduceList} routine computes an induced graph \texttt{indgrafdat} from the original graph \texttt{orggrafdat}. The vertices that are kept in the induced graph are the \texttt{vnumnbr} vertices whose based indices in the original graph are provided in the \texttt{vnumtab} array, in its first \texttt{vnumnbr} cells. \progret {\tt SCOTCH\_graphInduceList} returns $0$ if the induced graph has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphInducePart}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphInducePart ( & const SCOTCH\_Graph * & orggrafptr, \\ & SCOTCH\_Num & vnumnbr, \\ & SCOTCH\_GraphPart2 * & parttab, \\ & SCOTCH\_GraphPart2 & partval, \\ & SCOTCH\_Graph * & indgrafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphinducepart ( & doubleprecision (*) & orggrafdat, \\ & integer*{\it num} & vnumnbr, \\ & character{\it num} (*) & parttab, \\ & character{\it num} & partval, \\ & doubleprecision (*) & indgrafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphInducePart} routine computes an induced graph \texttt{indgrafdat} from the original graph \texttt{orggrafdat}. The vertices that are kept in the induced graph are the \texttt{vnumnbr} vertices whose part number in the \texttt{parttab} array are equal to \texttt{partval}. The \texttt{SCOTCH\_\lbt Graph\lbt Part2} type, being a very small integer (most likely, an \texttt{unsigned char}), is assumed to hold only small values, e.g. \texttt{0} or \texttt{1}. \progret {\tt SCOTCH\_graphInducePart} returns $0$ if the induced graph has been successfully computed, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphInit}} \label{sec-lib-func-graphinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphInit ( & SCOTCH\_Graph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphinit ( & doubleprecision (*) & grafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphInit} function initializes a {\tt SCOTCH\_\lbt Graph} structure so as to make it suitable for future operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Graph} structure. When the graph data is no longer of use, call function {\tt SCOTCH\_\lbt graph\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_graphInit} returns $0$ if the graph structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphLoad}} \label{sec-lib-func-graphload} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphLoad ( & SCOTCH\_Graph * & grafptr, \\ & FILE * & stream, \\ & SCOTCH\_Num & baseval, \\ & SCOTCH\_Num & flagval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphload ( & doubleprecision (*) & grafdat, \\ & integer & fildes, \\ & integer*{\it num} & baseval, \\ & integer*{\it num} & flagval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphLoad} routine fills the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr} with the source graph description available from stream {\tt stream} in the \scotch\ graph format (see section~\ref{sec-file-sgraph}). To ease the handling of source graph files by programs written in C as well as in Fortran, the base value of the graph to read can be set to {\tt 0} or {\tt 1}, by setting the {\tt baseval} parameter to the proper value. A value of {\tt -1} indicates that the graph base should be the same as the one provided in the graph description that is read from {\tt stream}. The {\tt flagval} value is a combination of the following integer values, that may be added or bitwise-ored: \begin{itemize} \iteme[{\tt 0}] Keep vertex and edge weights if they are present in the {\tt stream} data. \iteme[{\tt 1}] Remove vertex weights. The graph read will have all of its vertex weights set to one, regardless of what is specified in the {\tt stream} data. \iteme[{\tt 2}] Remove edge weights. The graph read will have all of its edge weights set to one, regardless of what is specified in the {\tt stream} data. \end{itemize} Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the graph file. \progret {\tt SCOTCH\_graphLoad} returns $0$ if the graph structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphSave ( & const SCOTCH\_Graph * & grafptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphsave ( & doubleprecision (*) & grafdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphSave} routine saves the contents of the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr} to stream {\tt stream}, in the \scotch\ graph format (see section~\ref{sec-file-sgraph}). Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the graph file. \progret {\tt SCOTCH\_graphSave} returns $0$ if the graph structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphSize}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphSize ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & vertptr, \\ & SCOTCH\_Num * & edgeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphsize ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & vertnbr, \\ & integer*{\it num} & edgenbr) \end{tabular}} \progdes The {\tt SCOTCH\_graphSize} routine fills the two areas of type {\tt SCOTCH\_\lbt Num} pointed to by {\tt vertptr} and {\tt edgeptr} with the number of vertices and arcs (that is, twice the number of edges) of the given graph pointed to by {\tt grafptr}, respectively. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. This routine is useful to get the size of a graph read by means of the {\tt SCOTCH\_\lbt graph\lbo Load} routine, in order to allocate auxiliary arrays of proper sizes. If the whole structure of the graph is wanted, function {\tt SCOTCH\_graph\lbo Data} should be preferred. \end{itemize} \subsubsection{{\tt SCOTCH\_graphSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_graphSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_graphSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Graph} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_graphStat}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphStat ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & velominptr, \\ & SCOTCH\_Num * & velomaxptr, \\ & SCOTCH\_Num * & velosumptr, \\ & double * & veloavgptr, \\ & double * & velodltptr, \\ & SCOTCH\_Num * & degrminptr, \\ & SCOTCH\_Num * & degrmaxptr, \\ & double * & degravgptr, \\ & double * & degrdltptr, \\ & SCOTCH\_Num * & edlominptr, \\ & SCOTCH\_Num * & edlomaxptr, \\ & SCOTCH\_Num * & edlosumptr, \\ & double * & edloavgptr, \\ & double * & edlodltptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphstat ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & velomin, \\ & integer*{\it num} & velomax, \\ & integer*{\it num} & velosum, \\ & doubleprecision & veloavg, \\ & doubleprecision & velodlt, \\ & integer*{\it num} & degrmin, \\ & integer*{\it num} & degrmax, \\ & doubleprecision & degravg, \\ & doubleprecision & degrdlt, \\ & integer*{\it num} & edlomin, \\ & integer*{\it num} & edlomax, \\ & integer*{\it num} & edlosum, \\ & doubleprecision & edloavg, \\ & doubleprecision & edlodlt) \end{tabular}} \progdes The {\tt SCOTCH\_graphStat} routine produces some statistics regarding the graph structure pointed to by {\tt grafptr}. {\tt velomin}, {\tt velomax}, {\tt velosum}, {\tt veloavg} and {\tt velodlt} are the minimum vertex load, the maximum vertex load, the sum of all vertex loads, the average vertex load, and the variance of the vertex loads, respectively. {\tt degrmin}, {\tt degrmax}, {\tt degravg} and {\tt degrdlt} are the minimum vertex degree, the maximum vertex degree, the average vertex degree, and the variance of the vertex degrees, respectively. {\tt edlomin}, {\tt edlomax}, {\tt edlosum}, {\tt edloavg} and {\tt edlodlt} are the minimum edge load, the maximum edge load, the sum of all edge loads, the average edge load, and the variance of the edge loads, respectively. \end{itemize} \subsection{High-level graph partitioning, mapping and clustering routines} \label{sec-lib-func-part-map} \index{Clustering} The routines presented in this section provide high-level functionalities and free the user from the burden of calling in sequence several of the low-level routines described in the next section. \subsubsection{{\tt SCOTCH\_graphMap}} \label{sec-lib-func-graphmap} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMap ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmap ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & archdat, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMap} routine computes a mapping of the source graph structure pointed to by {\tt grafptr} onto the target architecture pointed to by {\tt archptr}, using the mapping strategy pointed to by {\tt straptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and returns the mapping data in the array pointed to by {\tt parttab}. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. On return, every cell of the mapping array holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. When a variable-sized architecture is used (see Section~\ref{sec-file-target-variable}) and a proper strategy is provided (see Section~\ref{sec-lib-func-stratgraphclusterbuild}), the {\tt SCOTCH\_graph\lbt Map} routine can cluster\index{Clustering} the given graph by means of recursive bipartitioning. In this case, clusters are labeled according to a binary scheme: the part equal to the whole graph is numbered $1$, its two bipartitioned descendants are labeled $2$ and $3$, the two descendants of part $2$ are labeled $4$ and $5$, and so on. More generally, clusters are labeled such that the two descendants of any cluster $i$ that has been split are labeled $2i$ and $2i + 1$. Classical clustering strategies perform recursive bipartitioning of process graphs until some criterion is met: either parts become smaller than some size threshold, or edge density becomes higher than some ratio, etc. If graph mapping is performed using a variable-sized architecture and a classical mapping strategy, recursive bipartitioning will halt only when the load imbalance criterion allows for one of the bipartitioned parts to be empty (that is, most often, parts contains a single vertex). \progret {\tt SCOTCH\_graphMap} returns $0$ if the mapping of the graph has been successfully computed, and $1$ else. In this last case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapFixed}} \label{sec-lib-func-graphmapfixed} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapFixed ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapfixed ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & archdat, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapFixed} routine computes a mapping of the source graph structure pointed to by {\tt grafptr} onto the target architecture pointed to by {\tt archptr}, using the mapping strategy pointed to by {\tt straptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and fills the array pointed to by {\tt parttab} with the mapping data regarding vertices which have not been pre-assigned by the user. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. It must also have been filled in advance by the user, with data indicating whether vertices have been already pre-assigned to a fixed position or are to be processed by the routine. In each cell of the {\tt parttab} array, a value of $-1$ indicates that the vertex is movable, while a value between $0$ and the number of target vertices minus $1$ indicates that the vertex has been pre-assigned to the given part. On return, every cell of the mapping array that contained a $-1$ will hold the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphMapFixed} returns $0$ if the mapping of the graph has been successfully computed, and $1$ else. In this last case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphPart}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphPart ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & partnbr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphpart ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & partnbr, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphPart} routine computes an edge-separated partition, into {\tt partnbr} parts, of the source graph structure pointed to by {\tt grafptr}, using the graph edge partitioning strategy pointed to by {\tt stratptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and returns the partition data in the array pointed to by {\tt parttab}. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. On return, every cell of the mapping array holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to $\mathtt{partnbr} - 1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphPart} returns $0$ if the graph partition has been successfully computed, and $1$ else. In the latter case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphPartFixed}} \label{sec-lib-func-graphpartfixed} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphPartFixed ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & partnbr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphpartfixed ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & partnbr, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphPartFixed} routine computes an edge-separated partition, into {\tt partnbr} parts, of the source graph structure pointed to by {\tt grafptr}, using the graph edge partitioning strategy pointed to by {\tt stratptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and fills the array pointed to by {\tt parttab} with the partitioning data regarding vertices which have not been pre-assigned by the user. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. It must also have been filled in advance by the user, with data indicating whether vertices have been already pre-assigned to a fixed position or are to be processed by the routine. In each cell of the {\tt parttab} array, a value of $-1$ indicates that the vertex is movable, while a value between $0$ and the number of target vertices minus $1$ indicates that the vertex has been pre-assigned to the given part. On return, every cell of the mapping array that contained a $-1$ will hold the number of the target vertex to which the corresponding source vertex is assigned. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphPartFixed} returns $0$ if the graph partition has been successfully computed, and $1$ else. In the latter case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphPartOvl}} \label{sec-lib-func-graphpartovl} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphPartOvl ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & partnbr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphpartovl ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & partnbr, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphPartOvl} routine computes an overlapped vertex-separated partition, into {\tt partnbr} parts, of the source graph structure pointed to by {\tt grafptr}, using the graph vertex partitioning with overlap strategy pointed to by {\tt stratptr} (as defined in Section~\ref{sec-lib-format-strat-part-ovl}), and returns the partition data in the array pointed to by {\tt parttab}. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. On return, every array cell holds the number of the part to which the corresponding vertex is mapped. Regular parts are numbered from $0$ to $\mathtt{partnbr} - 1$, and separator vertices are labeled with part number {\tt -1}. While {\tt SCOTCH\_graphMap} and {\tt SCOTCH\_\lbt graph\lbt Part} are based on edge partitioning methods, {\tt SCOTCH\_\lbt graph\lbt Part\lbt Ovl} relies on a completely distinct set of routines to compute vertex separators. This is why {\tt SCOTCH\_\lbt graph\lbt Part\lbt Ovl} requires strategy strings of a different kind, created by the {\tt SCOTCH\_\lbt strat\lbt Graph\lbt Part\lbt Ovl*} routines only (see Sections~\ref{sec-lib-func-stratgraphpartovl} and~\ref{sec-lib-func-stratgraphpartovlbuild}). \progret {\tt SCOTCH\_graphPartOvl} returns $0$ if the partition of the graph has been successfully computed, and $1$ else. In the latter case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphRemap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphRemap ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num * & parotab, \\ & const double & emraval, \\ & const SCOTCH\_Num * & vmlotab, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphremap ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & archdat, \\ & integer*{\it num} (*) & parotab, \\ & doubleprecision & emraval, \\ & integer*{\it num} (*) & vmlotab, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphRemap} routine computes a remapping of the source graph structure pointed to by {\tt grafptr} onto the target architecture pointed to by {\tt archptr}, based on the old partition array pointed to by {\tt parotab}, using the mapping strategy pointed to by {\tt straptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and returns the mapping data in the array pointed to by {\tt parttab}. The {\tt parotab} array stores the old partition that is used to compute migration costs. Every cell contains values from $0$ to the number of target vertices minus $1$, or $-1$ for vertices that did not belong to the old partition (e.g., vertices newly created by graph adaptation, which can be placed at no cost before their associated data is interpolated). With every source graph vertex is associated an individual integer migration cost, stored in the {\tt vmlotab} array. These costs are accounted for in the communication cost function to minimize as multiples of the individual migration cost {\tt emraval}. Since this value is provided as a floating point number, migration costs can be set as fractions or as non-integer multiples of the cut metric communication costs stored as integer edge loads. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. On return, every cell of the mapping array holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphRemap} returns $0$ if the mapping of the graph has been successfully computed, and $1$ else. In this last case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphRemapFixed}} \label{sec-lib-func-graphremapfixed} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphRemapFixed ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Arch * & archptr, \\ & const SCOTCH\_Num * & parotab, \\ & const double & emraval, \\ & const SCOTCH\_Num * & vmlotab, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphremapfixed ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & archdat, \\ & integer*{\it num} (*) & parotab, \\ & doubleprecision & emraval, \\ & integer*{\it num} (*) & vmlotab, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphRemapFixed} routine computes a remapping of the source graph structure pointed to by {\tt grafptr} onto the target architecture pointed to by {\tt archptr}, based on the old partition array pointed to by {\tt parotab}, using the mapping strategy pointed to by {\tt straptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and fills the array pointed to by {\tt parttab} with the mapping data regarding vertices which have not been pre-assigned by the user. The {\tt parotab} array stores the old partition that is used to compute migration costs. Every cell contains values from $0$ to the number of target vertices minus $1$, or $-1$ for vertices that did not belong to the old partition (e.g., vertices newly created by graph adaptation, which can be placed at no cost before their associated data is interpolated). With every source graph vertex is associated an individual integer migration cost, stored in the {\tt vmlotab} array. These costs are accounted for in the communication cost function to minimize as multiples of the individual migration cost {\tt emraval}. Since this value is provided as a floating point number, migration costs can be set as fractions or as non-integer multiples of the cut metric communication costs stored as integer edge loads. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. It must also have been filled in advance by the user, with data indicating whether vertices have been already pre-assigned to a fixed position or are to be processed by the routine. In each cell of the {\tt parttab} array, a value of $-1$ indicates that the vertex is movable, while a value between $0$ and the number of target vertices minus $1$ indicates that the vertex has been pre-assigned to the given part. On return, every cell of the mapping array that contained a $-1$ will hold the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphRemapFixed} returns $0$ if the mapping of the graph has been successfully computed, and $1$ else. In this last case, the {\tt parttab} array may however have been partially or completely filled, with some $-1$'s removed, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphRepart}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphRepart ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & partnbr, \\ & const SCOTCH\_Num * & parotab, \\ & const double & emraval, \\ & const SCOTCH\_Num * & vmlotab, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphrepart ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & partnbr, \\ & integer*{\it num} (*) & parotab, \\ & doubleprecision & emraval, \\ & integer*{\it num} (*) & vmlotab, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphRepart} routine computes an edge-separated repartition, into {\tt partnbr} parts, of the source graph structure pointed to by {\tt grafptr}, based on the old partition array pointed to by {\tt parotab}, using the partitioning strategy pointed to by {\tt straptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and returns the partition data in the array pointed to by {\tt parttab}. The {\tt parotab} array stores the old partition that is used to compute migration costs. Every cell contains values from $0$ to the number of target vertices minus $1$, or $-1$ for vertices that did not belong to the old partition (e.g., vertices newly created by graph adaptation, which can be assigned to any part at no cost before their associated data is interpolated). With every source graph vertex is associated an individual integer migration cost, stored in the {\tt vmlotab} array. These costs are accounted for in the communication cost function to minimize as multiples of the individual migration cost {\tt emraval}. Since this value is provided as a floating point number, migration costs can be set as fractions or as non-integer multiples of the cut metric communication costs stored as integer edge loads. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. On return, every cell of the mapping array holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphRepart} returns $0$ if the graph partition has been successfully computed, and $1$ else. In the latter case, the {\tt parttab} array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphRepartFixed}} \label{sec-lib-func-graphrepartfixed} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphRepartFixed ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & partnbr, \\ & const SCOTCH\_Num * & parotab, \\ & const double & emraval, \\ & const SCOTCH\_Num * & vmlotab, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphrepartfixed ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} & partnbr, \\ & integer*{\it num} (*) & parotab, \\ & doubleprecision & emraval, \\ & integer*{\it num} (*) & vmlotab, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphRepartFixed} routine computes an edge-separated repartition, into {\tt partnbr} parts, of the source graph structure pointed to by {\tt grafptr}, based on the old partition array pointed to by {\tt parotab}, using the partitioning strategy pointed to by {\tt straptr} (as defined in Section~\ref{sec-lib-format-strat-map}), and fills the array pointed to by {\tt parttab} with the mapping data regarding vertices which have not been pre-assigned by the user. The {\tt parotab} array stores the old partition that is used to compute migration costs. Every cell contains values from $0$ to the number of target vertices minus $1$, or $-1$ for vertices that did not belong to the old partition (e.g., vertices newly created by graph adaptation, which can be assigned to any part at no cost before their associated data is interpolated). With every source graph vertex is associated an individual integer migration cost, stored in the {\tt vmlotab} array. These costs are accounted for in the communication cost function to minimize as multiples of the individual migration cost {\tt emraval}. Since this value is provided as a floating point number, migration costs can be set as fractions or as non-integer multiples of the cut metric communication costs stored as integer edge loads. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. It must also have been filled in advance by the user, with data indicating whether vertices have been already pre-assigned to a fixed position or are to be processed by the routine. In each cell of the {\tt parttab} array, a value of $-1$ indicates that the vertex is movable, while a value between $0$ and the number of target vertices minus $1$ indicates that the vertex has been pre-assigned to the given part. On return, every cell of the mapping array that contained a $-1$ will hold the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices minus $1$. This semantics aims at complying with standards such as MPI, in which process ranks start from $0$. \progret {\tt SCOTCH\_graphRepartFixed} returns $0$ if the graph partition has has been successfully computed, and $1$ else. In this last case, the {\tt parttab} array may however have been partially or completely filled, with some $-1$'s removed, but its contents are not significant. \end{itemize} \subsection{Low-level graph partitioning, mapping and clustering routines} \label{sec-lib-func-part-map-low} All of the following routines operate on a {\tt SCOTCH\_\lbt Mapping} structure that contains references to the partition and mapping arrays to be filled during the mapping or remapping process. \subsubsection{{\tt SCOTCH\_graphMapCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapCompute ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapcompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapCompute} routine computes a mapping on the given {\tt SCOTCH\_\lbt Mapping} structure pointed to by {\tt mappptr} using the mapping strategy pointed to by {\tt stratptr}. On return, every cell of the mapping array defined by {\tt SCOTCH\_\lbt map\lbt Init} holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices, minus $1$. \progret {\tt SCOTCH\_graphMapCompute} returns $0$ if the mapping has been successfully computed, and $1$ else. In this latter case, the mapping array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphMapExit ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapexit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapExit} function frees the contents of a {\tt SCOTCH\_\lbt Mapping} structure previously initialized by {\tt SCOTCH\_\lbt graph\lbt Map\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt graph\lbt Map*} routines other than {\tt SCOTCH\_\lbt graph\lbt Map\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapFixedCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapFixedCompute ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapfixedcompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapFixedCompute} routine computes a mapping on the given {\tt SCOTCH\_\lbt Mapping} structure pointed to by {\tt mappptr} using the mapping strategy pointed to by {\tt stratptr}. The mapping must have been built so that its partition array has been filled in advance by the user, with data indicating whether vertices have been already pre-assigned to a fixed position or are to be processed by the routine. In each cell of the {\tt parttab} array, a value of $-1$ indicates that the vertex is movable, while a value between $0$ and the number of target vertices minus $1$ indicates that the vertex has been pre-assigned to the given part. On return, every cell of the mapping array defined by {\tt SCOTCH\_\lbt map\lbt Init} that contained a $-1$ will hold the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices, minus $1$. \progret {\tt SCOTCH\_graphMapFixedCompute} returns $0$ if the mapping has been successfully computed, and $1$ else. In this latter case, the mapping array may however have been partially or completely filled, with some $-1$'s removed, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapInit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapInit ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr, \\ & const SCOTCH\_Arch * & archptr, \\ & SCOTCH\_Num * & parttab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapinit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & archdat, \\ & integer*{\it num} (*) & parttab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapInit} routine fills the mapping structure pointed to by {\tt mappptr} with all of the data that is passed to it. Thus, all subsequent calls to ordering routines such as {\tt SCOTCH\_\lbt graph\lbt Map\lbt Compute}, using this mapping structure as parameter, will place mapping results in field {\tt parttab}. {\tt parttab} is the pointer to an array of as many {\tt SCOTCH\_\lbt Num}s as there are vertices in the graph pointed to by {\tt grafptr}, and which will receive the indices of the vertices of the target architecture pointed to by {\tt archptr}. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Mapping} structure. When the mapping structure is no longer of use, call function {\tt SCOTCH\_graph\lbt \lbt Map\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_graphMapInit} returns $0$ if the mapping structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapLoad}} \label{sec-lib-graph-map-load} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapLoad ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapload ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapLoad} routine fills the {\tt SCOTCH\_\lbt Mapping} structure pointed to by {\tt mappptr} with the mapping data available in the \scotch\ mapping format (see section~\ref{sec-file-map}) from stream {\tt stream}. If the source graph has vertex labels attached to its vertices, mapping indices in the input stream are assumed to be vertex labels as well. Users willing to have subsequent access to the partition data rather than to fill an opaque {\tt SCOTCH\_\lbt Mapping} structure are invited to use the {\tt SCOTCH\_\lbt graph\lbt Tab\lbt Load} routine instead. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mapping file. \progret {\tt SCOTCH\_graphMapLoad} returns $0$ if the mapping structure has been successfully loaded from {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapSave ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Mapping * & mappptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapsave ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapSave} routine saves the contents of the {\tt SCOTCH\_\lbt Mapping} structure pointed to by {\tt mappptr} to stream {\tt stream}, in the \scotch\ mapping format (see section~\ref{sec-file-map}). Users willing to save a partition data array rather than an opaque {\tt SCOTCH\_\lbt Mapping} structure are invited to use the {\tt SCOTCH\_\lbt graph\lbt Tab\lbt Save} routine instead. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mapping file. \progret {\tt SCOTCH\_graphMapSave} returns $0$ if the mapping structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphMapView}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphMapView ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Mapping * & mappptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphmapview ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphMapView} routine summarizes statistical information on the mapping pointed to by {\tt mappptr} (load of target processors, number of neighboring domains, average dilation and expansion, edge cut size, distribution of edge dilations), and prints these results to stream {\tt stream}. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the output data file. \progret {\tt SCOTCH\_graphMapView} returns $0$ if the data has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphRemapCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphRemapCompute ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr, \\ & SCOTCH\_Mapping * & mapoptr, \\ & const double & emraval, \\ & const SCOTCH\_Num * & vmlotab, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphremapcompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & mapodat, \\ & doubleprecision & emraval, \\ & integer*{\it num} (*) & vmlotab, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphRemapCompute} routine computes a mapping on the given {\tt SCOTCH\_\lbt Mapping} structure pointed to by {\tt mappptr}, using the mapping strategy pointed to by {\tt stratptr}, and accounting for migration costs computed based on the already computed partition pointed to by {\tt mapoptr}. This partition should have been created from the same graph and target architecture as the one pointer to by {\tt mappptr}. With every source graph vertex is associated an individual integer migration cost, stored in the {\tt vmlotab} array. These costs are accounted for in the communication cost function to minimize as multiples of the individual migration cost {\tt emraval}. Since this value is provided as a floating point number, migration costs can be set as fractions or as non-integer multiples of the cut metric communication costs stored as integer edge loads. On return, every cell of the new mapping array defined by {\tt SCOTCH\_\lbt map\lbt Init} holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices, minus $1$. \progret {\tt SCOTCH\_graphRemapCompute} returns $0$ if the remapping has been successfully computed, and $1$ else. In this latter case, the mapping array may however have been partially or completely filled, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphRemapFixedCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphRemapFixedCompute ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Mapping * & mappptr, \\ & SCOTCH\_Mapping * & mapoptr, \\ & const double & emraval, \\ & const SCOTCH\_Num * & vmlotab, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphremapfixedcompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & mappdat, \\ & doubleprecision (*) & mapodat, \\ & doubleprecision & emraval, \\ & integer*{\it num} (*) & vmlotab, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphRemapFixedCompute} routine computes a mapping on the given {\tt SCOTCH\_\lbt Mapping} structure pointed to by {\tt mappptr}, using the mapping strategy pointed to by {\tt stratptr}, and accounting for migration costs computed based on the already computed partition pointed to by {\tt mapoptr}. This partition should have been created from the same graph and target architecture as the one pointer to by {\tt mappptr}. The partition array of the mapping pointed to by {\tt mappptr} must have been filled in advance by the user, with data indicating whether vertices have been already pre-assigned to a fixed position or are to be processed by the routine. A value of $-1$ indicates that the vertex is movable, while a value between $0$ and the number of target vertices minus $1$ indicates that the vertex has been pre-assigned to the given part. With every source graph vertex is associated an individual integer migration cost, stored in the {\tt vmlotab} array. These costs are accounted for in the communication cost function to minimize as multiples of the individual migration cost {\tt emraval}. Since this value is provided as a floating point number, migration costs can be set as fractions or as non-integer multiples of the cut metric communication costs stored as integer edge loads. On return, every cell of the new mapping array defined by {\tt SCOTCH\_\lbt map\lbt Init} that contained a $-1$ holds the number of the target vertex to which the corresponding source vertex is mapped. The numbering of target values is {\em not\/} based: target vertices are numbered from $0$ to the number of target vertices, minus $1$. \progret {\tt SCOTCH\_graphRemapFixedCompute} returns $0$ if the remapping has been successfully computed, and $1$ else. In this latter case, the mapping array may however have been partially or completely filled, with some $-1$'s removed, but its contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphTabLoad}} \label{sec-lib-graph-tab-load} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphTabLoad ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & parttab, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphtabload ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} (*) & parttab, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphTabLoad} routine fills the part array pointed to by {\tt parttab} with the mapping data available in the \scotch\ mapping format (see section~\ref{sec-file-map}) from stream {\tt stream}. This routine allows users to fill plain partition arrays rather than opaque mapping structures, as routine {\tt SCOTCH\_\lbt graph\lbt Map\lbt Load} does. The {\tt parttab} array should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph. Upon completion, array cells contain the indices of the parts to which vertices belong according to the input mapping stream, or {\tt -1} if they were not mentioned in the stream. If the source graph has vertex labels attached to its vertices, mapping indices in the input stream are assumed to be vertex labels as well. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mapping file. \progret {\tt SCOTCH\_graphTabLoad} returns $0$ if the part array has been successfully loaded from {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphTabSave}} \label{sec-lib-graph-tab-load} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphTabSave ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Num * & parttab, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphtabsave ( & doubleprecision (*) & grafdat, \\ & integer*{\it num} (*) & parttab, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphTabSave} routine saves to stream {\tt stream} the contents of the part array pointed to by \texttt{parttab}, on the form of mapping data in the \scotch\ mapping format (see section~\ref{sec-file-map}). This routine allows users to save plain partition arrays rather than opaque mapping structures, as routine \texttt{SCOTCH\_\lbt graph\lbt Map\lbt Save} does. Upon completion, the produced mapping file contain the indices of the parts to which vertices belong according to the given part array. If the source graph has vertex labels attached to its vertices, mapping indices in the output stream are replaced by the vertex labels. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mapping file. \progret {\tt SCOTCH\_graphTabSave} returns $0$ if the part array has been successfully saved to \texttt{stream}, and $1$ else. \end{itemize} \subsection{High-level graph ordering routines} This routine provides high-level functionality and frees the user from the burden of calling in sequence several of the low-level routines described in the next section. \subsubsection{{\tt SCOTCH\_graphOrder}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrder ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & permtab, \\ & SCOTCH\_Num * & peritab, \\ & SCOTCH\_Num * & cblkptr, \\ & SCOTCH\_Num * & rangtab, \\ & SCOTCH\_Num * & treetab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphorder ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & permtab, \\ & integer*{\it num} (*) & peritab, \\ & integer*{\it num} & cblknbr, \\ & integer*{\it num} (*) & rangtab, \\ & integer*{\it num} (*) & treetab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrder} routine computes a block ordering of the unknowns of the symmetric sparse matrix the adjacency structure of which is represented by the source graph structure pointed to by {\tt grafptr}, using the ordering strategy pointed to by {\tt stratptr}, and returns ordering data in the scalar pointed to by {\tt cblkptr} and the four arrays {\tt permtab}, {\tt peritab}, {\tt rangtab} and {\tt treetab}. The {\tt permtab}, {\tt peritab}, {\tt rangtab} and {\tt treetab} arrays should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are vertices in the source graph, plus one in the case of {\tt rangtab}. Any of the five output fields can be set to {\tt NULL} if the corresponding information is not needed. Since, in Fortran, there is no null reference, passing a reference to {\tt grafptr} in these fields will have the same effect. On return, {\tt permtab} holds the direct permutation of the unknowns, that is, vertex $i$ of the original graph has index {\tt permtab[$i$]} in the reordered graph, while {\tt peritab} holds the inverse permutation, that is, vertex $i$ in the reordered graph had index {\tt peritab[$i$]} in the original graph. All of these indices are numbered according to the base value of the source graph: permutation indices are numbered from {\tt baseval} to $\mathtt{vertnbr} + \mathtt{baseval} - 1$, that is, from $0$ to $\mathtt{vertnbr} - 1$ if the graph base is $0$, and from $1$ to $\mathtt{vertnbr}$ if the graph base is $1$. The three other result fields, {\tt *cblkptr}, {\tt rangtab} and {\tt treetab}, contain data related to the block structure. {\tt *cblkptr} holds the number of column blocks of the produced ordering, and {\tt rangtab} holds the starting indices of each of the permuted column blocks, in increasing order, so that column block $i$ starts at index {\tt rangtab\lbt [$i$]} and ends at index $(\mbox{\tt rangtab}\lbt\mathtt{[}i + 1\mathtt{]} - 1)$, inclusive, in the new ordering. {\tt treetab} holds the separators tree structure, that is, {\tt treetab[$i$]} is the index of the father of column block $i$ in the separators tree, or $-1$ if column block $i$ is the root of the separators tree. Please refer to Section~\ref{sec-lib-type-ordering} for more information. \progret {\tt SCOTCH\_graphOrder} returns $0$ if the ordering of the graph has been successfully computed, and $1$ else. In this last case, the {\tt rangtab}, {\tt permtab}, and {\tt peritab} arrays may however have been partially or completely filled, but their contents are not significant. \end{itemize} \subsection{Low-level graph ordering routines} All of the following routines operate on a {\tt SCOTCH\_\lbt Ordering} structure that contains references to the permutation arrays to be filled during the graph ordering process. \subsubsection{{\tt SCOTCH\_graphOrderCheck}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderCheck ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Ordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphordercheck ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderCheck} routine checks the consistency of the given {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr}. \progret {\tt SCOTCH\_graphOrderCheck} returns $0$ if ordering data are consistent, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderCompute ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Ordering * & ordeptr, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphordercompute ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderCompute} routine computes a block ordering of the graph structure pointed to by {\tt grafptr}, using the ordering strategy pointed to by {\tt stratptr}, and stores its result in the ordering structure pointed to by {\tt ordeptr}. On return, the ordering structure holds a block ordering of the given graph (see section~\ref{sec-lib-graph-order-init} for a description of the ordering fields). \progret {\tt SCOTCH\_graphOrderCompute} returns $0$ if the ordering has been successfully computed, and $1$ else. In this latter case, the ordering arrays may however have been partially or completely filled, but their contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderComputeList}} \label{sec-lib-graph-order-compute-list} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderComputeList ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Ordering * & ordeptr, \\ & SCOTCH\_Num & listnbr, \\ & SCOTCH\_Num * & listtab, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphordercomputelist ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} & listnbr, \\ & integer*{\it num} (*) & listtab, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderComputeList} routine computes a block ordering of a subgraph of the graph structure pointed to by {\tt grafptr}, using the ordering strategy pointed to by {\tt stratptr}, and stores its result in the ordering structure pointed to by {\tt ordeptr}. The induced subgraph is described by means of a vertex list: {\tt listnbr} holds the number of vertices to keep in the induced subgraph, the indices of which are given, in any order, in the {\tt listtab} array. On return, the ordering structure holds a block ordering of the induced subgraph (see section~\ref{sec-lib-type-ordering} for a description of the ordering fields). To compute this ordering, graph ordering methods such as the minimum degree and minimum fill methods will base on the original degree of the induced graph vertices, their non-induced neighbors being considered as halo vertices (see Section~\ref{sec-algo-nested-hybrid} for more information on halo vertices). Because an ordering always refers to the full graph, the ordering computed by {\tt SCOTCH\_\lbt graph\lbt Order\lbt Compute\lbt List} is divided into two distinct parts: the induced graph vertices are ordered by applying to the induced graph the strategy provided by the {\tt stratptr} parameter, while non-induced vertex are ordered consecutively with the highest available indices. Consequently, the permuted indices of induced vertices range from {\tt baseval} to $(\mathtt{listnbr} + \mathtt{baseval} - 1)$, while the permuted indices of the remaining vertices range from $(\mathtt{listnbr} + \mathtt{baseval})$ to $(\mathtt{vertnbr} + \mathtt{baseval} - 1)$, inclusive. The separation tree yielded by {\tt SCOTCH\_\lbt graph\lbt Order\lbt Compute\lbt List} reflects this property: it is made of two branches, the first one corresponding to the induced subgraph, and the second one to the remaining vertices. Since these two subgraphs are not considered to be connected, both will have their own root, represented by a $-1$ value in the {\tt treetab} array of the ordering. \progret {\tt SCOTCH\_graphOrderComputeList} returns $0$ if the ordering has been successfully computed, and $1$ else. In this latter case, the ordering arrays may however have been partially or completely filled, but their contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_graphOrderExit ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Ordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphorderexit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderExit} function frees the contents of a {\tt SCOTCH\_\lbt Ordering} structure previously initialized by {\tt SCOTCH\_\lbt graph\lbt Order\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt graph\lbt Order*} routines other than {\tt SCOTCH\_\lbt graph\lbt Order\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderInit}} \label{sec-lib-graph-order-init} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderInit ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Ordering * & ordeptr, \\ & SCOTCH\_Num * & permtab, \\ & SCOTCH\_Num * & peritab, \\ & SCOTCH\_Num * & cblkptr, \\ & SCOTCH\_Num * & rangtab, \\ & SCOTCH\_Num * & treetab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphorderinit ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} (*) & permtab, \\ & integer*{\it num} (*) & peritab, \\ & integer*{\it num} & cblknbr, \\ & integer*{\it num} (*) & rangtab, \\ & integer*{\it num} (*) & treetab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graph\lbt Order\lbt Init} routine fills the ordering structure pointed to by {\tt ordeptr} with all of the data that are passed to it. Thus, all subsequent calls to ordering routines such as {\tt SCOTCH\_\lbt graph\lbt Order\lbt Compute}, using this ordering structure as parameter, will place ordering results in fields {\tt permtab}, {\tt peritab}, {\tt *cblkptr}, {\tt rangtab} or {\tt treetab}, if they are not set to {\tt NULL}. {\tt permtab} is the ordering permutation array, of size ${\tt vertnbr}$, {\tt peritab} is the inverse ordering permutation array, of size ${\tt vertnbr}$, {\tt cblkptr} is the pointer to a {\tt SCOTCH\_\lbt Num} that will receive the number of produced column blocks, {\tt rangtab} is the array that holds the column block span information, of size $\mathtt{vertnbr} + 1$, and {\tt treetab} is the array holding the structure of the separators tree, of size ${\tt vertnbr}$. See the above manual page of {\tt SCOTCH\_graph\lbt Order}, as well as section~\ref{sec-lib-type-ordering}, for an explanation of the semantics of all of these fields. The {\tt SCOTCH\_\lbt graph\lbt Order\lbt Init} routine should be the first function to be called upon a {\tt SCOTCH\_\lbt Ordering} structure for ordering graphs. When the ordering structure is no longer of use, the {\tt SCOTCH\_\lbt graph\lbt Order\lbt Exit} function must be called, in order to to free its internal structures. \progret {\tt SCOTCH\_graphOrderInit} returns $0$ if the ordering structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderLoad}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderLoad ( & const SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphorderload ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderLoad} routine fills the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} with the ordering data available in the \scotch\ ordering format (see section~\ref{sec-file-ord}) from stream {\tt stream}. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the ordering file. \progret {\tt SCOTCH\_graphOrderLoad} returns $0$ if the ordering structure has been successfully loaded from {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderSave ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphordersave ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderSave} routine saves the contents of the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}, in the \scotch\ ordering format (see section~\ref{sec-file-ord}). Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the ordering file. \progret {\tt SCOTCH\_graphOrderSave} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderSaveMap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderSaveMap ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphordersavemap ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderSaveMap} routine saves the block partitioning data associated with the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}, in the \scotch\ mapping format (see section~\ref{sec-file-map}). A target domain number is associated with every block, such that all node vertices belonging to the same block are shown as belonging to the same target vertex. The resulting mapping file can be used by the {\tt gout} program (see Section~\ref{sec-prog-gout}) to produce pictures showing the different separators and blocks. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mapping file. \progret {\tt SCOTCH\_graphOrderSaveMap} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphOrderSaveTree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphOrderSaveTree ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphordersavetree ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_graphOrderSaveTree} routine saves the tree hierarchy information associated with the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}. The format of the tree output file resembles the one of a mapping or ordering file: it is made up of as many lines as there are vertices in the ordering. Each of these lines holds two integer numbers. The first one is the index or the label of the vertex, and the second one is the index of its parent node in the separators tree, or $-1$ if the vertex belongs to a root node. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the tree mapping file. \progret {\tt SCOTCH\_graphOrderSaveTree} returns $0$ if the separators tree structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsection{Mesh handling routines} \label{sec-lib-mesh} \subsubsection{{\tt SCOTCH\_meshAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Mesh * SCOTCH\_meshAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_meshAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Mesh} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt mesh\lbt Init} routine. \progret {\tt SCOTCH\_meshAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshBuild ( & SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Num & velmbas, \\ & const SCOTCH\_Num & vnodbas, \\ & const SCOTCH\_Num & velmnbr, \\ & const SCOTCH\_Num & vnodnbr, \\ & const SCOTCH\_Num * & verttab, \\ & const SCOTCH\_Num * & vendtab, \\ & const SCOTCH\_Num * & velotab, \\ & const SCOTCH\_Num * & vnlotab, \\ & const SCOTCH\_Num * & vlbltab, \\ & const SCOTCH\_Num & edgenbr, \\ & const SCOTCH\_Num * & edgetab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshbuild ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} & velmbas, \\ & integer*{\it num} & vnodbas, \\ & integer*{\it num} & velmnbr, \\ & integer*{\it num} & vnodnbr, \\ & integer*{\it num} (*) & verttab, \\ & integer*{\it num} (*) & vendtab, \\ & integer*{\it num} (*) & velotab, \\ & integer*{\it num} (*) & vnlotab, \\ & integer*{\it num} (*) & vlbltab, \\ & integer*{\it num} & edgenbr, \\ & integer*{\it num} (*) & edgetab, \\ & integer*{\it num} & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshBuild} routine fills the source mesh structure pointed to by {\tt meshptr} with all of the data that is passed to it. {\tt velmbas} and {\tt vnodbas} are the base values for the element and node vertices, respectively. {\tt velmnbr} and {\tt vnodnbr} are the number of element and node vertices, respectively, such that either $\mathtt{velmbas} +\mathtt{velmnbr}=\mathtt{vnodnbr}$ or $\mathtt{vnodbas} +\mathtt{vnodnbr}=\mathtt{velmnbr}$ holds, and typically $\min(\mathtt{velmbas}, \mathtt{vnodbas})$ is $0$ for structures built from C and $1$ for structures built from Fortran. {\tt verttab} is the adjacency index array, of size $({\tt velmnbr} + {\tt vnodnbr} + 1)$ if the edge array is compact (that is, if {\tt vendtab} equals $\mathtt{vendtab}+1$ or {\tt NULL}), or of size $({\tt velmnbr} + {\tt vnodnbr})$ else. {\tt vendtab} is the adjacency end index array, of size $({\tt velmnbr} + {\tt vnodnbr})$ if it is disjoint from {\tt verttab}. {\tt velotab} is the element vertex load array, of size {\tt velmnbr} if it exists. {\tt vnlotab} is the node vertex load array, of size {\tt vnodnbr} if it exists. {\tt vlbltab} is the vertex label array, of size $({\tt velmnbr} + {\tt vnodnbr})$ if it exists. {\tt edgenbr} is the number of arcs (that is, twice the number of edges). {\tt edgetab} is the adjacency array, of size at least {\tt edgenbr} (it can be more if the edge array is not compact). The {\tt vendtab}, {\tt velotab}, {\tt vnlotab} and {\tt vlbltab} arrays are optional, and a {\tt NULL} pointer can be passed as argument whenever they are not defined. Since, in Fortran, there is no null reference, passing the {\tt scotchf\lbt mesh\lbt build} routine a reference equal to {\tt verttab} in the {\tt velotab}, {\tt vnlotab} or {\tt vlbltab} fields makes them be considered as missing arrays. Setting {\tt vendtab} to refer to one cell after {\tt verttab} yields the same result, as it is the exact semantics of a compact vertex array. To limit memory consumption, {\tt SCOTCH\_\lbt mesh\lbo Build} does not copy array data, but instead references them in the {\tt SCOTCH\_\lbt Mesh} structure. Therefore, great care should be taken not to modify the contents of the arrays passed to {\tt SCOTCH\_\lbt mesh\lbo Build} as long as the mesh structure is in use. Every update of the arrays should be preceded by a call to {\tt SCOTCH\_\lbt mesh\lbo Exit}, to free internal mesh structures, and eventually followed by a new call to {\tt SCOTCH\_\lbt mesh\lbo Build} to re-build these internal structures so as to be able to use the new mesh. To ensure that inconsistencies in user data do not result in an erroneous behavior of the \libscotch\ routines, it is recommended, at least in the development stage, to call the {\tt SCOTCH\_\lbt mesh\lbt Check} routine on the newly created {\tt SCOTCH\_\lbt Mesh} structure, prior to any other calls to \libscotch\ routines. \progret {\tt SCOTCH\_meshBuild} returns $0$ if the mesh structure has been successfully set with all of the input data, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshCheck}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshCheck ( & const SCOTCH\_Mesh * & meshptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshcheck ( & doubleprecision (*) & meshdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshCheck} routine checks the consistency of the given {\tt SCOTCH\_\lbt Mesh} structure. It can be used in client applications to determine if a mesh that has been created from used-generated data by means of the {\tt SCOTCH\_\lbt mesh\lbt Build} routine is consistent, prior to calling any other routines of the \libscotch\ library. \progret {\tt SCOTCH\_meshCheck} returns $0$ if mesh data are consistent, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshData}} \label{sec-lib-func-meshdata} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_meshData ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Num * & vebaptr, \\ & SCOTCH\_Num * & vnbaptr, \\ & SCOTCH\_Num * & velmptr, \\ & SCOTCH\_Num * & vnodptr, \\ & SCOTCH\_Num ** & verttab, \\ & SCOTCH\_Num ** & vendtab, \\ & SCOTCH\_Num ** & velotab, \\ & SCOTCH\_Num ** & vnlotab, \\ & SCOTCH\_Num ** & vlbltab, \\ & SCOTCH\_Num * & edgeptr, \\ & SCOTCH\_Num ** & edgetab, \\ & SCOTCH\_Num * & degrptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshdata ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} (*) & indxtab, \\ & integer*{\it num} & velobas, \\ & integer*{\it num} & vnlobas, \\ & integer*{\it num} & velmnbr, \\ & integer*{\it num} & vnodnbr, \\ & integer*{\it idx} & vertidx, \\ & integer*{\it idx} & vendidx, \\ & integer*{\it idx} & veloidx, \\ & integer*{\it idx} & vnloidx, \\ & integer*{\it idx} & vlblidx, \\ & integer*{\it num} & edgenbr, \\ & integer*{\it idx} & edgeidx, \\ & integer*{\it num} & degrmax) \end{tabular}} \progdes The {\tt SCOTCH\_meshData} routine is the dual of the {\tt SCOTCH\_\lbt mesh\lbo Build} routine. It is a multiple accessor that returns scalar values and array references. {\tt vebaptr} and {\tt vnbaptr} are pointers to locations that will hold the mesh base value for elements and nodes, respectively (the minimum of these two values is typically $0$ for structures built from C and $1$ for structures built from Fortran). {\tt velmptr} and {\tt vnodptr} are pointers to locations that will hold the number of element and node vertices, respectively. {\tt verttab} is the pointer to a location that will hold the reference to the adjacency index array, of size $(\mathtt{*velmptr} + \mathtt{*vnodptr} + 1)$ if the adjacency array is compact, or of size $(\mathtt{*velmptr} + \mathtt{*vnodptr})$ else. {\tt vendtab} is the pointer to a location that will hold the reference to the adjacency end index array, and is equal to $\mathtt{verttab} + 1$ if the adjacency array is compact. {\tt velotab} and {\tt vnlotab} are pointers to locations that will hold the reference to the element and node vertex load arrays, of sizes {\tt *velmptr} and {\tt *vnodptr}, respectively. {\tt vlbltab} is the pointer to a location that will hold the reference to the vertex label array, of size $(\mathtt{*velmptr} + \mathtt{*vnodptr})$. {\tt edgeptr} is the pointer to a location that will hold the number of arcs (that is, twice the number of edges). {\tt edgetab} is the pointer to a location that will hold the reference to the adjacency array, of size at least {\tt edgenbr}. {\tt degrptr} is the pointer to a location that will hold the maximum vertex degree computed across all element and node vertices. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. Since there are no pointers in Fortran, a specific mechanism is used to allow users to access mesh arrays. The {\tt scotchf\lbt mesh\lbt data} routine is passed an integer array, the first element of which is used as a base address from which all other array indices are computed. Therefore, instead of returning references, the routine returns integers, which represent the starting index of each of the relevant arrays with respect to the base input array, or {\tt vertidx}, the index of {\tt verttab}, if they do not exist. For instance, if some base array {\tt myarray\lbt (1)} is passed as parameter {\tt indxtab}, then the first cell of array {\tt verttab} will be accessible as {\tt myarray\lbt (vertidx)}. In order for this feature to behave properly, the {\tt indxtab} array must be word-aligned with the mesh arrays. This is automatically enforced on most systems, but some care should be taken on systems that allow one to access data that is not word-aligned. On such systems, declaring the array after a dummy {\tt double\lbt precision} array can coerce the compiler into enforcing the proper alignment. Also, on 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type. See Section~\ref{sec-lib-inttypesize} for more information on this issue. \end{itemize} \subsubsection{{\tt SCOTCH\_meshExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_meshExit ( & SCOTCH\_Mesh * & meshptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshexit ( & doubleprecision (*) & meshdat) \end{tabular}} \progdes The {\tt SCOTCH\_meshExit} function frees the contents of a {\tt SCOTCH\_\lbt Mesh} structure previously initialized by {\tt SCOTCH\_\lbt meshInit}. All subsequent calls to {\tt SCOTCH\_\lbt mesh*} routines other than {\tt SCOTCH\_\lbt meshInit}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_meshGraph}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshGraph ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Graph * & grafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshgraph ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & grafdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshGraph} routine builds a graph from a mesh. It creates in the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr} a graph having as many vertices as there are nodes in the {\tt SCOTCH\_\lbt Mesh} structure pointed to by {\tt meshptr}, and where there is an edge between any two graph vertices if and only if there exists in the mesh an element containing both of the associated nodes. Consequently, all of the elements of the mesh are turned into cliques in the resulting graph. In order to save memory space as well as computation time, in the current implementation of {\tt SCOTCH\_meshGraph}, some mesh arrays are shared with the graph structure. Therefore, one should make sure that the graph must no longer be used after the mesh structure is freed. The graph structure can be freed before or after the mesh structure, but must not be used after the mesh structure is freed. \progret {\tt SCOTCH\_meshGraph} returns $0$ if the graph structure has been successfully allocated and filled, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshGraphDual}} \label{sec-lib-func-meshgraphdual} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshGraphDual ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Num & nocoval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshgraphdual ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & grafdat, \\ & integer & nocoval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshGraphDual} routine builds a dual graph (i.e., an element graph) from a mesh. It creates, in the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr}, a graph having as many vertices as there are elements in the {\tt SCOTCH\_\lbt Mesh} structure pointed to by {\tt meshptr}, and such that there exists an edge between any two graph vertices if there are at least {\tt nocoval} nodes in common between the two corresponding elements in the source mesh, or if an element shares all of its nodes, minus one, with another element. \progret {\tt SCOTCH\_meshGraphDual} returns $0$ if the graph structure has been successfully allocated and filled, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshInit}} \label{sec-lib-func-meshinit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshInit ( & SCOTCH\_Mesh * & meshptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshinit ( & doubleprecision (*) & meshdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshInit} function initializes a {\tt SCOTCH\_\lbt Mesh} structure so as to make it suitable for future operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Mesh} structure. When the mesh data is no longer of use, call function {\tt SCOTCH\_\lbt mesh\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_meshInit} returns $0$ if the mesh structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshLoad}} \label{sec-lib-func-meshload} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshLoad ( & SCOTCH\_Mesh * & meshptr, \\ & FILE * & stream, \\ & SCOTCH\_Num & baseval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshload ( & doubleprecision (*) & meshdat, \\ & integer & fildes, \\ & integer*{\it num} & baseval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshLoad} routine fills the {\tt SCOTCH\_\lbt Mesh} structure pointed to by {\tt meshptr} with the source mesh description available from stream {\tt stream} in the \scotch\ mesh format (see section~\ref{sec-file-smesh}). To ease the handling of source mesh files by programs written in C as well as in Fortran, The base value of the mesh to read can be set to {\tt 0} or {\tt 1}, by setting the {\tt baseval} parameter to the proper value. A value of {\tt -1} indicates that the mesh base should be the same as the one provided in the mesh description that is read from {\tt stream}. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mesh file. \progret {\tt SCOTCH\_meshLoad} returns $0$ if the mesh structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshSave ( & const SCOTCH\_Mesh * & meshptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshsave ( & doubleprecision (*) & meshdat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshSave} routine saves the contents of the {\tt SCOTCH\_\lbt Mesh} structure pointed to by {\tt meshptr} to stream {\tt stream}, in the \scotch\ mesh format (see section~\ref{sec-file-smesh}). Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the mesh file. \progret {\tt SCOTCH\_meshSave} returns $0$ if the mesh structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshSize}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_meshSize ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Num * & velmptr, \\ & SCOTCH\_Num * & vnodptr, \\ & SCOTCH\_Num * & edgeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshsize ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} & velmnbr, \\ & integer*{\it num} & vnodnbr, \\ & integer*{\it num} & edgenbr) \end{tabular}} \progdes The {\tt SCOTCH\_meshSize} routine fills the three areas of type {\tt SCOTCH\_\lbt Num} pointed to by {\tt velmptr}, {\tt vnodptr} and {\tt edgeptr} with the number of element vertices, node vertices and arcs (that is, twice the number of edges) of the given mesh pointed to by {\tt meshptr}, respectively. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. This routine is useful to get the size of a mesh read by means of the {\tt SCOTCH\_\lbt mesh\lbo Load} routine, in order to allocate auxiliary arrays of proper sizes. If the whole structure of the mesh is wanted, function {\tt SCOTCH\_mesh\lbo Data} should be preferred. \end{itemize} \subsubsection{{\tt SCOTCH\_meshSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_meshSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_meshSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Mesh} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_meshStat}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_meshStat ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Num * & vnlominptr, \\ & SCOTCH\_Num * & vnlomaxptr, \\ & SCOTCH\_Num * & vnlosumptr, \\ & double * & vnloavgptr, \\ & double * & vnlodltptr, \\ & SCOTCH\_Num * & edegminptr, \\ & SCOTCH\_Num * & edegmaxptr, \\ & double * & edegavgptr, \\ & double * & edegdltptr, \\ & SCOTCH\_Num * & ndegminptr, \\ & SCOTCH\_Num * & ndegmaxptr, \\ & double * & ndegavgptr, \\ & double * & ndegdltptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshstat ( & doubleprecision (*) & meshdat, \\ & integer*{\it num} & vnlomin, \\ & integer*{\it num} & vnlomax, \\ & integer*{\it num} & vnlosum, \\ & doubleprecision & vnloavg, \\ & doubleprecision & vnlodlt, \\ & integer*{\it num} & edegmin, \\ & integer*{\it num} & edegmax, \\ & doubleprecision & edegavg, \\ & doubleprecision & edegdlt, \\ & integer*{\it num} & ndegmin, \\ & integer*{\it num} & ndegmax, \\ & doubleprecision & ndegavg, \\ & doubleprecision & ndegdlt) \end{tabular}} \progdes The {\tt SCOTCH\_meshStat} routine produces some statistics regarding the mesh structure pointed to by {\tt meshptr}. {\tt vnlomin}, {\tt vnlomax}, {\tt vnlosum}, {\tt vnloavg} and {\tt vnlodlt} are the minimum node vertex load, the maximum node vertex load, the sum of all node vertex loads, the average node vertex load, and the variance of the node vertex loads, respectively. {\tt edegmin}, {\tt edegmax}, {\tt edegavg} and {\tt edegdlt} are the minimum element vertex degree, the maximum element vertex degree, the average element vertex degree, and the variance of the element vertex degrees, respectively. {\tt ndegmin}, {\tt ndegmax}, {\tt ndegavg} and {\tt ndegdlt} are the minimum node vertex degree, the maximum node vertex degree, the average node vertex degree, and the variance of the node vertex degrees, respectively. \end{itemize} \subsection{High-level mesh ordering routines} This routine provides high-level functionality and frees the user from the burden of calling in sequence several of the low-level routines described afterward. \subsubsection{{\tt SCOTCH\_meshOrder}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrder ( & const SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Strat * & straptr, \\ & SCOTCH\_Num * & permtab, \\ & SCOTCH\_Num * & peritab, \\ & SCOTCH\_Num * & cblkptr, \\ & SCOTCH\_Num * & rangtab, \\ & SCOTCH\_Num * & treetab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshorder ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & stradat, \\ & integer*{\it num} (*) & permtab, \\ & integer*{\it num} (*) & peritab, \\ & integer*{\it num} & cblknbr, \\ & integer*{\it num} (*) & rangtab, \\ & integer*{\it num} (*) & treetab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrder} routine computes a block ordering of the unknowns of the symmetric sparse matrix the adjacency structure of which is represented by the elements that connect the nodes of the source mesh structure pointed to by {\tt meshptr}, using the ordering strategy pointed to by {\tt stratptr}, and returns ordering data in the scalar pointed to by {\tt cblkptr} and the four arrays {\tt permtab}, {\tt peritab}, {\tt rangtab} and {\tt treetab}. The {\tt permtab}, {\tt peritab}, {\tt rangtab} and {\tt treetab} arrays should have been previously allocated, of a size sufficient to hold as many {\tt SCOTCH\_\lbt Num} integers as there are node vertices in the source mesh, plus one in the case of {\tt rangtab}. Any of the five output fields can be set to {\tt NULL} if the corresponding information is not needed. Since, in Fortran, there is no null reference, passing a reference to {\tt meshptr} in these fields will have the same effect. On return, {\tt permtab} holds the direct permutation of the unknowns, that is, node vertex $i$ of the original mesh has index {\tt permtab[$i$]} in the reordered mesh, while {\tt peritab} holds the inverse permutation, that is, node vertex $i$ in the reordered mesh had index {\tt peritab[$i$]} in the original mesh. All of these indices are numbered according to the base value of the source mesh: permutation indices are numbered from $\min(\mathtt{velmbas},\mathtt{vnodbas})$ to $\mathtt{vnodnbr} + \min(\mathtt{velmbas},\mathtt{vnodbas}) - 1$, that is, from $0$ to $\mathtt{vnodnbr} - 1$ if the mesh base is $0$, and from $1$ to $\mathtt{vnodnbr}$ if the mesh base is $1$. The base value for mesh orderings is taken as $\min(\mathtt{velmbas},\mathtt{vnodbas})$, and not just as {\tt vnodbas}, such that orderings that are computed on some mesh have exactly the same index range as orderings that would be computed on the graph obtained from the original mesh by means of the {\tt SCOTCH\_\lbt mesh\lbt Graph} routine. The three other result fields, {\tt *cblkptr}, {\tt rangtab} and {\tt treetab}, contain data related to the block structure. {\tt *cblkptr} holds the number of column blocks of the produced ordering, and {\tt rangtab} holds the starting indices of each of the permuted column blocks, in increasing order, so that column block $i$ starts at index {\tt rangtab\lbt [$i$]} and ends at index $(\mbox{\tt rangtab}\lbt\mathtt{[}i + 1\mathtt{]} - 1)$, inclusive, in the new ordering. {\tt treetab} holds the separators tree structure, that is, {\tt treetab[$i$]} is the index of the father of column block $i$ in the separators tree, or $-1$ if column block $i$ is the root of the separators tree. Please refer to Section~\ref{sec-lib-type-ordering} for more information. \progret {\tt SCOTCH\_meshOrder} returns $0$ if the ordering of the mesh has been successfully computed, and $1$ else. In this last case, the {\tt rangtab}, {\tt permtab}, and {\tt peritab} arrays may however have been partially or completely filled, but their contents are not significant. \end{itemize} \subsection{Low-level mesh ordering routines} All of the following routines operate on a {\tt SCOTCH\_\lbt Ordering} structure that contains references to the permutation arrays to be filled during the mesh ordering process. \subsubsection{{\tt SCOTCH\_meshOrderCheck}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrderCheck ( & const SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Ordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshordercheck ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrderCheck} routine checks the consistency of the given {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr}. \progret {\tt SCOTCH\_meshOrderCheck} returns $0$ if ordering data are consistent, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshOrderCompute}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrderCompute ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Ordering * & ordeptr, \\ & const SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshordercompute ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat, \\ & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrderCompute} routine computes a block ordering of the mesh structure pointed to by {\tt grafptr}, using the mapping strategy pointed to by {\tt stratptr}, and stores its result in the ordering structure pointed to by {\tt ordeptr}. On return, the ordering structure holds a block ordering of the given mesh (see section~\ref{sec-lib-mesh-order-init} for a description of the ordering fields). \progret {\tt SCOTCH\_meshOrderCompute} returns $0$ if the ordering has been successfully computed, and $1$ else. In this latter case, the ordering arrays may however have been partially or completely filled, but their contents are not significant. \end{itemize} \subsubsection{{\tt SCOTCH\_meshOrderExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_meshOrderExit ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Ordering * & ordeptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshorderexit ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrderExit} function frees the contents of a {\tt SCOTCH\_\lbt Ordering} structure previously initialized by {\tt SCOTCH\_\lbt mesh\lbt Order\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt mesh\lbt Order*} routines other than {\tt SCOTCH\_\lbt mesh\lbt Order\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_meshOrderInit}} \label{sec-lib-mesh-order-init} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrderInit ( & const SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Ordering * & ordeptr, \\ & SCOTCH\_Num * & permtab, \\ & SCOTCH\_Num * & peritab, \\ & SCOTCH\_Num * & cblkptr, \\ & SCOTCH\_Num * & rangtab, \\ & SCOTCH\_Num * & treetab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshorderinit ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat, \\ & integer*{\it num} (*) & permtab, \\ & integer*{\it num} (*) & peritab, \\ & integer*{\it num} & cblknbr, \\ & integer*{\it num} (*) & rangtab, \\ & integer*{\it num} (*) & treetab, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_mesh\lbt Order\lbt Init} routine fills the ordering structure pointed to by {\tt ordeptr} with all of the data that are passed to it. Thus, all subsequent calls to ordering routines such as {\tt SCOTCH\_\lbt mesh\lbt Order\lbt Compute}, using this ordering structure as parameter, will place ordering results in fields {\tt permtab}, {\tt peritab}, {\tt *cblkptr}, {\tt rangtab} or {\tt treetab}, if they are not set to {\tt NULL}. {\tt permtab} is the ordering permutation array, of size ${\tt vnodnbr}$, {\tt peritab} is the inverse ordering permutation array, of size ${\tt vnodnbr}$, {\tt cblkptr} is the pointer to a {\tt SCOTCH\_\lbt Num} that will receive the number of produced column blocks, {\tt rangtab} is the array that holds the column block span information, of size $\mathtt{vnodnbr} + 1$, and {\tt treetab} is the array holding the structure of the separators tree, of size ${\tt vnodnbr}$. See the above manual page of {\tt SCOTCH\_mesh\lbt Order}, as well as section~\ref{sec-lib-type-ordering}, for an explanation of the semantics of all of these fields. The {\tt SCOTCH\_\lbt mesh\lbt Order\lbt Init} routine should be the first function to be called upon a {\tt SCOTCH\_\lbt Ordering} structure for ordering meshes. When the ordering structure is no longer of use, the {\tt SCOTCH\_\lbt mesh\lbt Order\lbt Exit} function must be called, in order to to free its internal structures. \progret {\tt SCOTCH\_meshOrderInit} returns $0$ if the ordering structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshOrderSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrderSave ( & const SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshordersave ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrderSave} routine saves the contents of the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}, in the \scotch\ ordering format (see section~\ref{sec-file-ord}). \progret {\tt SCOTCH\_meshOrderSave} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshOrderSaveMap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrderSaveMap ( & const SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshordersavemap ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrderSaveMap} routine saves the block partitioning data associated with the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}, in the \scotch\ mapping format (see section~\ref{sec-file-map}). A target domain number is associated with every block, such that all node vertices belonging to the same block are shown as belonging to the same target vertex. This mapping file can then be used by the {\tt gout} program (see section~\ref{sec-prog-gout}) to produce pictures showing the different separators and blocks. Since {\tt gout} only takes graphs as input, the mesh has to be converted into a graph by means of the {\tt gmk\_\lbt msh} program (see section~\ref{sec-prog-gmkmsh}). \progret {\tt SCOTCH\_meshOrderSaveMap} returns $0$ if the ordering structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshOrderSaveTree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshOrderSaveTree ( & const SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Ordering * & ordeptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshordersavetree ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & ordedat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_meshOrderSaveTree} routine saves the tree hierarchy information associated with the {\tt SCOTCH\_\lbt Ordering} structure pointed to by {\tt ordeptr} to stream {\tt stream}. The format of the tree output file resembles the one of a mapping or ordering file: it is made up of as many lines as there are node vertices in the ordering. Each of these lines holds two integer numbers. The first one is the index or the label of the node vertex, starting from {\tt baseval}, and the second one is the index of its parent node in the separators tree, or $-1$ if the vertex belongs to a root node. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the tree mapping file. \progret {\tt SCOTCH\_meshOrderSaveTree} returns $0$ if the separators tree structure has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsection{Strategy handling routines} \label{sec-lib-strat} \subsubsection{{\tt SCOTCH\_stratAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Strat * SCOTCH\_stratAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_stratAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Strat} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt strat\lbt Init} routine. \progret {\tt SCOTCH\_stratAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_stratExit ( & SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratexit ( & doubleprecision (*) & stradat) \end{tabular}} \progdes The {\tt SCOTCH\_stratExit} function frees the contents of a {\tt SCOTCH\_\lbt Strat} structure previously initialized by {\tt SCOTCH\_\lbt strat\lbt Init}. All subsequent calls to {\tt SCOTCH\_\lbt strat} routines other than {\tt SCOTCH\_\lbt strat\lbt Init}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_stratInit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratInit ( & SCOTCH\_Strat * & straptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratinit ( & doubleprecision (*) & stradat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratInit} function initializes a {\tt SCOTCH\_\lbt Strat} structure so as to make it suitable for future operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Strat} structure. When the strategy data is no longer of use, call function {\tt SCOTCH\_\lbt strat\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_stratInit} returns $0$ if the strategy structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratSave}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratSave ( & const SCOTCH\_Strat * & straptr, \\ & FILE * & stream) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratsave ( & doubleprecision (*) & stradat, \\ & integer & fildes, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratSave} routine saves the contents of the {\tt SCOTCH\_\lbt Strat} structure pointed to by {\tt straptr} to stream {\tt stream}, in the form of a text string. The methods and parameters of the strategy string depend on the type of the strategy, that is, whether it is a bipartitioning, mapping, or ordering strategy, and to which structure it applies, that is, graphs or meshes. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt fildes} associated with the logical unit of the output file. \progret {\tt SCOTCH\_stratSave} returns $0$ if the strategy string has been successfully written to {\tt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_stratSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_stratSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Strat} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsection{Strategy creation routines} \label{sec-lib-strat-creation} Strategy creation routines parse the user-provided strategy string and populate the given opaque strategy object with a tree-shaped structure that represents the parsed expression. It is this structure that will be later traversed by the generic routines for partitioning, mapping or ordering, so as to determine which specific partitioning, mapping or ordering method to be called on a subgraph being considered. Because strategy creation routines call third-party lexical analyzers that may have been implemented in a non-reentrant way, no guarantee is given on the reentrance of these routines. Consequently, strategy creation routines that might be called simultaneously by multiple threads should be protected by a mutex. \subsubsection{{\tt SCOTCH\_stratGraphBipart}} \label{sec-lib-strat-graph-bipart} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphBipart ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphbipart ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphBipart} routine fills the strategy structure pointed to by {\tt straptr} with the graph bipartitioning strategy string pointed to by {\tt string}. From this point, the strategy structure can only be used as a graph bipartitioning strategy, to be used by function {\tt SCOTCH\_\lbt arch\lbt Build}, for instance. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratGraphBipart} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphClusterBuild}} \label{sec-lib-func-stratgraphclusterbuild} \index{Clustering} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphClusterBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & pwgtmax, \\ & const double & densmin, \\ & const double & bbalval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphclusterbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & pwgtmax, \\ & doubleprecision & densmin, \\ & doubleprecision & bbalval, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphClusterBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default clustering strategy tuned according to the preference flags passed as {\tt flagval}, the maximum cluster vertex weight {\tt pwgtmax}, the minimum edge density {\tt densmin}, and the bipartition imbalance ratio {\tt bbalval}. From this point, the strategy structure can only be used as a mapping strategy, to be used by a mapping function such as {\tt SCOTCH\_\lbt graph\lbt Map}. Recursive bipartitioning will be applied to the graph, every bipartition allowing for an imbalance tolerance of {\tt bbalval}. Recursion will stop if either cluster size becomes smaller than {\tt pwgtmax}, or cluster edge density becomes higher than {\tt densmin}, which represents the fraction of edges internal to the cluster with respect to a complete graph. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. \progret {\tt SCOTCH\_stratGraphClusterBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphMap}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphMap ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphmap ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphMap} routine fills the strategy structure pointed to by {\tt straptr} with the graph mapping strategy string pointed to by {\tt string}. From this point, the strategy structure can only be used as a mapping strategy, to be used by function {\tt SCOTCH\_\lbt graph\lbt Map}, for instance. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratGraphMap} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphMapBuild}} \label{sec-lib-func-stratgraphmapbuild} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphMapBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & partnbr, \\ & const double & balrat) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphmapbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & partnbr, \\ & doubleprecision & balrat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphMapBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default mapping strategy tuned according to the preference flags passed as {\tt flagval} and to the desired number of parts {\tt partnbr} and imbalance ratio {\tt balrat}. From this point, the strategy structure can only be used as a mapping strategy, to be used by function {\tt SCOTCH\_\lbt graph\lbt Map}, for instance. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. \progret {\tt SCOTCH\_stratGraphMapBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphPartOvl}} \label{sec-lib-func-stratgraphpartovl} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphPartOvl ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphpartovl ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphPartOvl} routine fills the strategy structure pointed to by {\tt straptr} with the graph partitioning with overlap strategy string pointed to by {\tt string}. From this point, the strategy structure can only be used as a partitioning with overlap strategy, to be used by function {\tt SCOTCH\_\lbt graph\lbt Part\lbt Ovl} only. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratGraphPartOvl} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphPartOvlBuild}} \label{sec-lib-func-stratgraphpartovlbuild} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphPartOvlBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & partnbr, \\ & const double & balrat) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphpartovlbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & partnbr, \\ & doubleprecision & balrat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphPartOvlBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default partitioning with overlap strategy tuned according to the preference flags passed as {\tt flagval} and to the desired number of parts {\tt partnbr} and imbalance ratio {\tt balrat}. From this point, the strategy structure can only be used as a partitioning with overlap strategy, to be used by function {\tt SCOTCH\_\lbt graph\lbt Part\lbt Ovl} only. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. \progret {\tt SCOTCH\_stratGraphPartOvlBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphOrder}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphOrder ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphorder ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphOrder} routine fills the strategy structure pointed to by {\tt straptr} with the graph ordering strategy string pointed to by {\tt string}. From this point, the strategy structure can only be used as a graph ordering strategy, to be used by function {\tt SCOTCH\_\lbt graph\lbt Order}, for instance. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratGraphOrder} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratGraphOrderBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratGraphOrderBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const SCOTCH\_Num & levlnbr, \\ & const double & balrat) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratgraphorderbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & integer*{\it num} & levlnbr, \\ & doubleprecision & balrat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratGraphOrderBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default sequential ordering strategy tuned according to the preference flags passed as {\tt flagval} and to the desired nested dissection imbalance ratio {\tt balrat}. From this point, the strategy structure can only be used as an ordering strategy, to be used by function {\tt SCOTCH\_\lbt graph\lbt Order}, for instance. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. When any of the {\tt SCOTCH\_\lbt STRAT\lbt LEVEL\lbt MIN} or {\tt SCOTCH\_\lbt STRAT\lbt LEVEL\lbt MAX} flags is set, the {\tt levlnbr} parameter is taken into account. \progret {\tt SCOTCH\_stratGraphOrderBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratMeshOrder}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratMeshOrder ( & SCOTCH\_Strat * & straptr, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratmeshorder ( & doubleprecision (*) & stradat, \\ & character (*) & string, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratMeshOrder} routine fills the strategy structure pointed to by {\tt straptr} with the mesh ordering strategy string pointed to by {\tt string}. From this point, strategy {\tt strat} can only be used as a mesh ordering strategy, to be used by function {\tt SCOTCH\_\lbt mesh\lbt Order}, for instance. When using the C interface, the array of characters pointed to by {\tt string} must be null-terminated. \progret {\tt SCOTCH\_stratMeshOrder} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_stratMeshOrderBuild}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_stratMeshOrderBuild ( & SCOTCH\_Strat * & straptr, \\ & const SCOTCH\_Num & flagval, \\ & const double & balrat) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfstratmeshorderbuild ( & doubleprecision (*) & stradat, \\ & integer*{\it num} & flagval, \\ & doubleprecision & balrat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_stratMeshOrderBuild} routine fills the strategy structure pointed to by {\tt straptr} with a default ordering strategy tuned according to the preference flags passed as {\tt flagval} and to the desired nested dissection imbalance ratio {\tt balrat}. From this point, the strategy structure can only be used as an ordering strategy, to be used by function {\tt SCOTCH\_\lbt mesh\lbt Order}, for instance. See Section~\ref{sec-lib-format-strat-default} for a description of the available flags. \progret {\tt SCOTCH\_stratMesdOrderBuild} returns $0$ if the strategy string has been successfully set, and $1$ else. \end{itemize} \subsection{Geometry handling routines} \label{sec-lib-geom} Since the \scotch\ project is based on algorithms that rely on topology data only, geometry data do not play an important role in the \libscotch\ library. They are only relevant to programs that display graphs, such as the {\tt gout} program. However, since all routines that are used by the programs of the \scotch\ distributions have an interface in the \libscotch\ library, there exist geometry handling routines in it, which manipulate {\tt SCOTCH\_\lbt Geom} structures. Apart from the routines that create, destroy or access {\tt SCOTCH\_\lbt Geom} structures, all of the routines in this section are input/output routines, which read or write both {\tt SCOTCH\_\lbt Graph} and {\tt SCOTCH\_\lbt Geom} structures. We have chosen to define the interface of the geometry-handling routines such that they also handle graph or mesh topology because some external file formats mix these data, and that we wanted our routines to be able to read their data on the fly from streams that can only be read once, such as communication pipes. Having both aspects taken into account in a single call makes the writing of file conversion tools, such as {\tt gcv} and {\tt mcv}, very easy. When the file format from which to read or into which to write mixes both sorts of data, the geometry file pointer can be set to {\tt NULL}, as it will not be used. \subsubsection{{\tt SCOTCH\_geomAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Geom * SCOTCH\_geomAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_geomAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Geom} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. The allocated space must be initialized before use, by means of the {\tt SCOTCH\_\lbt geom\lbt Init} routine. \progret {\tt SCOTCH\_geomAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_geomData}} \label{sec-lib-func-geomdata} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_geomData ( & const SCOTCH\_Geom * & geomptr, \\ & SCOTCH\_Num * & dimnptr, \\ & double ** & geomtab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgeomdata ( & doubleprecision (*) & geomdat, \\ & doubleprecision (*) & indxtab, \\ & integer*{\it num} & dimnnbr, \\ & integer*{\it idx} & geomidx) \end{tabular}} \progdes The {\tt SCOTCH\_geomData} routine is a multiple accessor to the contents of {\tt SCOTCH\_Geom} structures. {\tt dimnptr} is the pointer to a location that will hold the number of dimensions of the graph vertex or mesh node vertex coordinates, and will therefore be equal to $1$, $2$ or $3$. {\tt geomtab} is the pointer to a location that will hold the reference to the geometry coordinates, as defined in section~\ref{sec-lib-type-geom}. Any of these pointers can be set to {\tt NULL} on input if the corresponding information is not needed. Else, the reference to a dummy area can be provided, where all unwanted data will be written. Since there are no pointers in Fortran, a specific mechanism is used to allow users to access the coordinate array. The {\tt scotchf\lbt geom\lbt data} routine is passed an integer array, the first element of which is used as a base address from which all other array indices are computed. Therefore, instead of returning a reference, the routine returns an integer, which represents the starting index of the coordinate array with respect to the base input array. For instance, if some base array {\tt myarray\lbt (1)} is passed as parameter {\tt indxtab}, then the first cell of array {\tt geomtab} will be accessible as {\tt myarray\lbt (geomidx)}. In order for this feature to behave properly, the {\tt indxtab} array must be double-precision-aligned with the geometry array. This is automatically enforced on most systems, but some care should be taken on systems that allow one to access data that is not double-aligned. On such systems, declaring the array after a dummy {\tt double\lbt precision} array can coerce the compiler into enforcing the proper alignment. Also, on 32\_64 architectures, such indices can be larger than the size of a regular {\tt INTEGER}. This is why the indices to be returned are defined by means of a specific integer type. See Section~\ref{sec-lib-inttypesize} for more information on this issue. \end{itemize} \subsubsection{{\tt SCOTCH\_geomExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_geomExit ( & SCOTCH\_Geom * & geomptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgeomexit ( & doubleprecision (*) & geomdat) \end{tabular}} \progdes The {\tt SCOTCH\_geomExit} function frees the contents of a {\tt SCOTCH\_\lbt Geom} structure previously initialized by {\tt SCOTCH\_\lbt geomInit}. All subsequent calls to {\tt SCOTCH\_\lbt *Geom*} routines other than {\tt SCOTCH\_\lbt geomInit}, using this structure as parameter, may yield unpredictable results. \end{itemize} \subsubsection{{\tt SCOTCH\_geomInit}} \label{sec-lib-func-geominit} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_geomInit ( & SCOTCH\_Geom * & geomptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgeominit ( & doubleprecision (*) & geomdat, \\ & integer & ierr) \end{tabular}} \progdes The {\tt SCOTCH\_geomInit} function initializes a {\tt SCOTCH\_\lbt Geom} structure so as to make it suitable for future operations. It should be the first function to be called upon a {\tt SCOTCH\_\lbt Geom} structure. When the geometrical data is no longer of use, call function {\tt SCOTCH\_\lbt geom\lbt Exit} to free its internal structures. \progret {\tt SCOTCH\_geomInit} returns $0$ if the geometrical structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_geomSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_geomSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgeomsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_geomSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Geom} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_graphGeomLoadChac}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphGeomLoadChac ( & SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Geom * & geomptr, \\ & FILE * & grafstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphgeomloadchac ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & geomdat, \\ & integer & graffildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_graphGeomLoadChac} routine fills the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr} with the source graph description available from stream {\tt graf\lbt stream} in the \chaco\ graph format~\cite{hele93c}. Since this graph format does not handle geometry data, the {\tt geomptr} and {\tt geom\lbt stream} fields are not used, as well as the {\tt string} field. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt graf\lbt fildes} associated with the logical unit of the graph file. \progret {\tt SCOTCH\_graphGeomLoadChac} returns $0$ if the graph structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphGeomLoadHabo}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphGeomLoadHabo ( & SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Geom * & geomptr, \\ & FILE * & grafstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphgeomloadhabo ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & geomdat, \\ & integer & graffildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_graphGeomLoadHabo} routine fills the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr} with the source graph description available from stream {\tt graf\lbt stream} in the Harwell-Boeing square assembled matrix format~\cite{dugrle92}. Since this graph format does not handle geometry data, the {\tt geomptr} and {\tt geom\lbt stream} fields are not used. Since multiple graph structures can be encoded sequentially within the same file, the {\tt string} field contains the string representation of an integer number that codes the rank of the graph to read within the Harwell-Boeing file. It is equal to ``0'' in most cases. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt graf\lbt fildes} associated with the logical unit of the graph file. \progret {\tt SCOTCH\_graphGeomLoadHabo} returns $0$ if the graph structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphGeomLoadScot}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphGeomLoadScot ( & SCOTCH\_Graph * & grafptr, \\ & SCOTCH\_Geom * & geomptr, \\ & FILE * & grafstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphgeomloadscot ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & geomdat, \\ & integer & graffildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_graphGeomLoadScot} routine fills the {\tt SCOTCH\_\lbt Graph} and {\tt SCOTCH\_\lbt Geom} structures pointed to by {\tt grafptr} and {\tt geomptr} with the source graph description and geometry data available from streams {\tt graf\lbt stream} and {\tt geom\lbt stream} in the \scotch\ graph and geometry formats (see sections~\ref{sec-file-sgraph} and~\ref{sec-file-geom}, respectively). The {\tt string} field is not used. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the numbers of the Unix file descriptors {\tt graf\lbt fildes} and {\tt geom\lbt fildes} associated with the logical units of the graph and geometry files. \progret {\tt SCOTCH\_graphGeomLoadScot} returns $0$ if the graph topology and geometry have been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphGeomSaveChac}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphGeomSaveChac ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Geom * & geomptr, \\ & FILE * & grafstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphgeomsavechac ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & geomdat, \\ & integer & graffildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_graphGeomSaveChac} routine saves the contents of the {\tt SCOTCH\_\lbt Graph} structure pointed to by {\tt grafptr} to stream {\tt graf\lbt stream}, in the \chaco\ graph format~\cite{hele93c}. Since this graph format does not handle geometry data, the {\tt geomptr} and {\tt geom\lbt stream} fields are not used, as well as the {\tt string} field. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt graf\lbt fildes} associated with the logical unit of the graph file. \progret {\tt SCOTCH\_graphGeomSaveChac} returns $0$ if the graph structure has been successfully written to {\tt graf\lbt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_graphGeomSaveScot}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_graphGeomSaveScot ( & const SCOTCH\_Graph * & grafptr, \\ & const SCOTCH\_Geom * & geomptr, \\ & FILE * & grafstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfgraphgeomsavescot ( & doubleprecision (*) & grafdat, \\ & doubleprecision (*) & geomdat, \\ & integer & graffildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_graphGeomSaveScot} routine saves the contents of the {\tt SCOTCH\_\lbt Graph} and {\tt SCOTCH\_\lbt Geom} structures pointed to by {\tt grafptr} and {\tt geomptr} to streams {\tt graf\lbt stream} and {\tt geom\lbt stream}, in the \scotch\ graph and geometry formats (see sections~\ref{sec-file-sgraph} and~\ref{sec-file-geom}, respectively). The {\tt string} field is not used. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the numbers of the Unix file descriptors {\tt graf\lbt fildes} and {\tt geom\lbt fildes} associated with the logical units of the graph and geometry files. \progret {\tt SCOTCH\_graphGeomSaveScot} returns $0$ if the graph topology and geometry have been successfully written to {\tt graf\lbt stream} and {\tt geom\lbt stream}, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshGeomLoadHabo}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshGeomLoadHabo ( & SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Geom * & geomptr, \\ & FILE * & meshstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshgeomloadhabo ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & geomdat, \\ & integer & meshfildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_meshGeomLoadHabo} routine fills the {\tt SCOTCH\_\lbt Mesh} structure pointed to by {\tt meshptr} with the source mesh description available from stream {\tt mesh\lbt stream} in the Harwell-Boeing square elemental matrix format~\cite{dugrle92}. Since this mesh format does not handle geometry data, the {\tt geomptr} and {\tt geom\lbt stream} fields are not used. Since multiple mesh structures can be encoded sequentially within the same file, the {\tt string} field contains the string representation of an integer number that codes the rank of the mesh to read within the Harwell-Boeing file. It is equal to ``0'' in most cases. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the number of the Unix file descriptor {\tt mesh\lbt fildes} associated with the logical unit of the mesh file. \progret {\tt SCOTCH\_meshGeomLoadHabo} returns $0$ if the mesh structure has been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshGeomLoadScot}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshGeomLoadScot ( & SCOTCH\_Mesh * & meshptr, \\ & SCOTCH\_Geom * & geomptr, \\ & FILE * & meshstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshgeomloadscot ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & geomdat, \\ & integer & meshfildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_meshGeomLoadScot} routine fills the {\tt SCOTCH\_\lbt Mesh} and {\tt SCOTCH\_\lbt Geom} structures pointed to by {\tt meshptr} and {\tt geomptr} with the source mesh description and node geometry data available from streams {\tt mesh\lbt stream} and {\tt geom\lbt stream} in the \scotch\ mesh and geometry formats (see sections~\ref{sec-file-smesh} and~\ref{sec-file-geom}, respectively). The {\tt string} field is not used. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the numbers of the Unix file descriptors {\tt mesh\lbt fildes} and {\tt geom\lbt fildes} associated with the logical units of the mesh and geometry files. \progret {\tt SCOTCH\_meshGeomLoadScot} returns $0$ if the mesh topology and node geometry have been successfully allocated and filled with the data read, and $1$ else. \end{itemize} \subsubsection{{\tt SCOTCH\_meshGeomSaveScot}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_meshGeomSaveScot ( & const SCOTCH\_Mesh * & meshptr, \\ & const SCOTCH\_Geom * & geomptr, \\ & FILE * & meshstream, \\ & FILE * & geomstream, \\ & const char * & string) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmeshgeomsavescot ( & doubleprecision (*) & meshdat, \\ & doubleprecision (*) & geomdat, \\ & integer & meshfildes, \\ & integer & geomfildes, \\ & character (*) & string) \end{tabular}} \progdes The {\tt SCOTCH\_meshGeomSaveScot} routine saves the contents of the {\tt SCOTCH\_\lbt Mesh} and {\tt SCOTCH\_\lbt Geom} structures pointed to by {\tt meshptr} and {\tt geomptr} to streams {\tt mesh\lbt stream} and {\tt geom\lbt stream}, in the \scotch\ mesh and geometry formats (see sections~\ref{sec-file-smesh} and~\ref{sec-file-geom}, respectively). The {\tt string} field is not used. Fortran users must use the {\tt PXFFILENO} or {\tt FNUM} functions to obtain the numbers of the Unix file descriptors {\tt mesh\lbt fildes} and {\tt geom\lbt fildes} associated with the logical units of the mesh and geometry files. \progret {\tt SCOTCH\_meshGeomSaveScot} returns $0$ if the mesh topology and node geometry have been successfully written to {\tt mesh\lbt stream} and {\tt geom\lbt stream}, and $1$ else. \end{itemize} \subsection{Other data structure handling routines} \label{sec-lib-other} \subsubsection{{\tt SCOTCH\_mapAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Mapping * SCOTCH\_mapAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_mapAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Mapping} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. \progret {\tt SCOTCH\_mapAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_mapSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_mapSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmapsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_mapSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Mapping} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_orderAlloc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Ordering * SCOTCH\_orderAlloc ( & void) \end{tabular}} \progdes The {\tt SCOTCH\_orderAlloc} function allocates a memory area of a size sufficient to store a {\tt SCOTCH\_\lbt Ordering} structure. It is the user's responsibility to free this memory when it is no longer needed, using the {\tt SCOTCH\_\lbt mem\lbt Free} routine. \progret {\tt SCOTCH\_orderAlloc} returns the pointer to the memory area if it has been successfully allocated, and {\tt NULL} else. \end{itemize} \subsubsection{{\tt SCOTCH\_orderSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_orderSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfordersizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_orderSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Ordering} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsection{Error handling routines} \label{sec-lib-error} The handling of errors that occur within library routines is often difficult, because library routines should be able to issue error messages that help the application programmer to find the error, while being compatible with the way the application handles its own errors. To match these two requirements, all the error and warning messages produced by the routines of the \libscotch\ library are issued using the user-definable variable-length argument routines {\tt SCOTCH\_\lbt error\lbt Print} and {\tt SCOTCH\_\lbt error\lbt PrintW}. Thus, one can redirect these error messages to his own error handling routines, and can choose if he wants his program to terminate on error or to resume execution after the erroneous function has returned. In order to free the user from the burden of writing a basic error handler from scratch, the {\tt libscotcherr.a} library provides error routines that print error messages on the standard error stream {\tt stderr} and return control to the application. Application programmers who want to take advantage of them have to add {\tt -lscotcherr} to the list of arguments of the linker, after the {\tt -lscotch} argument. \subsubsection{{\tt SCOTCH\_errorPrint}} \label{sec-lib-func-errorprint} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_errorPrint ( & const char * & errstr, ...) \end{tabular}} \progdes The {\tt SCOTCH\_errorPrint} function is designed to output a variable-length argument error string to some stream. \end{itemize} \subsubsection{{\tt SCOTCH\_errorPrintW}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_errorPrintW ( & const char * & errstr, ...) \end{tabular}} \progdes The {\tt SCOTCH\_errorPrintW} function is designed to output a variable-length argument warning string to some stream. \end{itemize} \subsubsection{{\tt SCOTCH\_errorProg}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_errorProg ( & const char * & progstr) \end{tabular}} \progdes The {\tt SCOTCH\_errorProg} function is designed to be called at the beginning of a program or of a portion of code to identify the place where subsequent errors take place. This routine is not reentrant, as it is only a minor help function. It is defined in {\tt lib\lbt scotch\lbt err.a} and is used by the standalone programs of the \scotch\ distribution. \end{itemize} \subsection{Random generator handling} \label{sec-lib-random} In order not to be influenced by the concurrent execution of third-party software and/or library routines, the \libscotch\ library embeds its own pseudo-random number generator. This generator is used by default by all \libscotch\ routines. When \scotch\ has been compiled with any of the flags {\tt COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} or {\tt SCOTCH\_\lbt DETERMINISTIC} set, this random number generator is initialized with a prescribed, default seed. In this case, any two runs of the same sequence of \libscotch\ routines will yield the same result. The first flag will be sufficient when \scotch\ is run on a single thread, while he second one is necessary when \scotch\ is run on several threads, because multi-threaded versions of the \libscotch\ routines may rely by default on non-deterministic algorithms that are not only sensitive to the pseudo-random sequence but also to system artifacts (see Section~\ref{sec-lib-multithread}). In certain cases, it may be interesting, when running the same sequential \scotch\ routine on different processors, to explore different solution spaces. The \texttt{SCOTCH\_\lbt random\lbt Proc} routine allows the user to set an instance (processor) number that will be used to parametrize the random seed, hence providing different pseudo-random sequences for each instance number. However, when any of the two aforementioned compilation flags have been set, these sequence will still be deterministic: two runs of a sequence of \libscotch\ routines taking place after a call to \texttt{SCOTCH\_\lbt random\lbt Reset} will always yield the same results. In the case where the user wants to run concurrently \libscotch\ routines on different threads or sets of threads, determinism cannot be ensured using the global pseudo-random generator, because of the non-determinism in the way concurrent routines retrieve the values of the pseudo-random sequence. Moreover, because the global pseudo-number generator is not protected against race conditions, calling it concurrently from several threads may yield unpredictable results. Hence, in this case, users should use a different \texttt{SCOTCH\_\lbt Context} for each master thread, that will contain its own pseudo-random generator (see Section~\ref{sec-lib-context}). \subsubsection{\texttt{SCOTCH\_randomProc}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_randomProc ( & SCOTCH\_Num & procnum) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfrandomproc ( & integer*{\it num} & procnum) \end{tabular}} \progdes The \texttt{SCOTCH\_randomProc} routine sets to \texttt{procnum} the internal instance of the \libscotch\ library. This instance number influences the random seed that is used to initialize pseudo-random number generators. In order for this instance number to be taken into account as a seed for the global pseudo-random generator of the \libscotch\ library, \texttt{SCOTCH\_randomProc} must be either called before any other library routine, or followed by a call to \texttt{SCOTCH\_\lbt random\lbt Reset}. Subsequent calls to \texttt{SCOTCH\_\lbt random\lbt Reset} will make use of this number as well. The current value of \texttt{procnum} is copied along with the random seed, when the global pseudo-random number generator is cloned into a context by routine \texttt{SCOTCH\_\lbt context\lbt Random\lbt Clone}. \end{itemize} \subsubsection{{\tt SCOTCH\_randomReset}} \label{sec-lib-random-reset} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} void SCOTCH\_randomReset ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}l} scotchfrandomreset ( & ) \end{tabular}} \progdes The {\tt SCOTCH\_randomReset} routine resets the seed of the global pseudo-random generator used by default by the routines of the \libscotch\ library. Two consecutive calls to the same \libscotch\ partitioning or ordering routines within the same program, separated by a call to {\tt SCOTCH\_\lbt random\lbt Reset}, will always yield the same results. Moreover, when \scotch\ has been compiled with any of the flags {\tt COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} or {\tt SCOTCH\_\lbt DETERMINISTIC} set, any two runs of the same program at different times will yield the same result. \end{itemize} \subsubsection{{\tt SCOTCH\_randomSeed}} \label{sec-lib-random-seed} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_randomSeed ( & SCOTCH\_Num & seedval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfrandomseed ( & integer*{\it num} & seedval) \end{tabular}} \progdes The {\tt SCOTCH\_randomSeed} routine sets to {\tt seedval} the seed of the global pseudo-random generator used by default by some \scotch\ algorithms. All subsequent calls to {\tt SCOTCH\_\lbt random\lbt Reset} will use this value to reset the pseudo-random generator. In he case when no random seed is defined by the user, then depending whether \scotch\ has been compiled with any of the flags {\tt COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} or {\tt SCOTCH\_\lbt DETERMINISTIC} set or not, either the same pseudo-random seed will be always used, or a situation-dependent seed will be used, respectively. \end{itemize} \subsubsection{{\tt SCOTCH\_randomVal}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} SCOTCH\_Num SCOTCH\_randomVal ( & SCOTCH\_Num & randmax) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfrandomval ( & integer*{\it num} & randmax, \\ & integer*{\it num} & randval) \end{tabular}} \progdes The {\tt SCOTCH\_randomVal} routine returns a positive integer random value from the global pseudo-random generator, in the range $[0;\mbox{\texttt{randmax}}[$. \end{itemize} \subsection{Context handling routines} \label{sec-lib-context} By default, \scotch\ uses a global pseudo-random number generator and takes advantage of as many threads as it can discover on the system, using default, compile-time settings. This behavior makes sense when only one call to the \libscotch\ is made at a time. However, cases may arise where the user wants to perform different tasks on the same graph or mesh at the same time, by calling concurrently \libscotch\ routines from different sets of threads. This is when \texttt{SCOTCH\_\lbt Context} objects are necessary. A \texttt{SCOTCH\_\lbt Context} is a data structure that encapsulates an environment execution for the routines of the \libscotch\ library. Essentially, it contains the set of threads that will be used for performing computations, a private, independent pseudo-random number generator, and a set of flags and option values defined at compile-time. In order to associate a context with a task to be performed, one has to bind the context to a \scotch\ object (that is, a graph, a mesh or a distributed graph), so as to create a container of the same type as the object (that is, a graph, mesh or distributed graph, respectively). This dummy object, when passed to the \libscotch\ routines, will allow them to retrieve the context information as well as a reference to the original object (see Figure~\ref{fig-lib-context}). Several contexts can be bound to the same \scotch\ object, allowing different \libscotch\ routines to work concurrently on it. If the same context is shared by several containers, these should never be used concurrently. The original object and the context of a container must never be freed before it. \begin{figure}[hbt] \centering\includegraphics[scale=0.47]{s_f_cnt.eps} \caption{Dependencies between a context container and its underlying object and context. The context container is always seen as a \scotch\ object of the same type as the original object, for instance a \texttt{SCOTCH\_\protect\lbt Graph} in this example.} \label{fig-lib-context} \end{figure} \subsubsection{\texttt{SCOTCH\_contextInit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextInit ( & SCOTCH\_Context * & contptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextinit ( & doubleprecision (*) & contdat, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextInit} function initializes a \texttt{SCOTCH\_\lbt Context} structure so as to make it suitable for future operations. It should be the first function to be called upon a \texttt{SCOTCH\_\lbt Context} structure. In the case when the context will be used to capture a pool of existing threads, it must be called only by the master thread. When the context data is no longer of use, call function \texttt{SCOTCH\_\lbt contextExit} to free its internal structures. A context must not be freed before the context containers that are created from it. \progret \texttt{SCOTCH\_contextInit} returns $0$ if the context structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextExit}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_contextExit ( & SCOTCH\_Context * & contptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextexit ( & doubleprecision (*) & contdat) \end{tabular}} \progdes The \texttt{SCOTCH\_contextExit} function frees the contents of a \texttt{SCOTCH\_\lbt Context} structure previously initialized by \texttt{SCOTCH\_\lbt contextInit}. In particular, it destroys the pseudo-random generator embedded in the context, and disposes of its threads. If the threads were created within the context, they are destroyed; if they were captured from an outside pool of threads (see \texttt{SCOTCH\_\lbt context\lbt Import1}), they are released. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextOptionGetNum}} \label{sec-lib-context-option-get-num} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextOptionGetNum ( & SCOTCH\_Context * & contptr, \\ & int & optinum) \\ & SCOTCH\_Num * & optivalptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextoptiongetnum ( & doubleprecision (*) & contdat, \\ & integer & optinum, \\ & integer*{\it num} & optival, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextOptionGetNum} function retrieves, in the \texttt{SCOTCH\_\lbt Num} value \texttt{optival} pointed to by \texttt{optivalptr}, the current integer context value of index \texttt{optinum}. Integer option index values are of the form \texttt{SCOTCH\_\lbt OPTIONNUM*}, and range from \texttt{0} to (\texttt{SCOTCH\_\lbt OPTIONNUMNBR} - 1), inclusive. This allows users to capture in an array of \texttt{SCOTCH\_\lbt Num}s the values of relevant integer execution options, for the sake of reproducibility. \progret \texttt{SCOTCH\_contextOptionGetNum} returns $0$ if the value has been properly retrieved, and $1$ in case of an invalid \texttt{optinum} index. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextOptionSetNum}} \label{sec-lib-context-option-set-num} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextOptionSetNum ( & SCOTCH\_Context * & contptr, \\ & int & optinum) \\ & SCOTCH\_Num & optival) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextoptionsetnum ( & doubleprecision (*) & contdat, \\ & integer & optinum, \\ & integer*{\it num} & optival, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextOptionSetNum} function sets the integer context value of index \texttt{optinum} with the value \texttt{optival}. Available integer option values are the following: \begin{itemize} \item \texttt{SCOTCH\_\lbt OPTIONNUMDETERMINISTIC}: a value of \texttt{0} induces a non-deterministic behavior (\textit{i.e.}, different runs may yield different results), while a value of \texttt{1} induces a deterministic behavior across multiple runs, for any number of threads (yet, for the same number of MPI processes, as data distribution varies across numbers of MPI processes). The initial value of this option at run time is defined by the compilation option \texttt{SCOTCH\_\lbt DETERMINISTIC} (see the \scotch\ installation instructions). A deterministic behavior implies the use of a fixed random seed (see below). \item \texttt{SCOTCH\_\lbt OPTIONNUMFIXEDSEED}: a value of \texttt{0} induces that a distinct random seed be selected for each launch of a program using the \libscotch\ library, while a value of \texttt{1} induces that the same, fixed random seed be used at each launch. The initial value of this option at run time is defined by the compilation option \texttt{COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} (see the \scotch\ installation instructions). \end{itemize} \progret \texttt{SCOTCH\_contextOptionSetNum} returns $0$ if the value has been properly set, and $1$ on error. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextRandomClone}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextRandomClone ( & SCOTCH\_Context * & contptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextrandomclone ( & doubleprecision (*) & contdat, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextRandomClone} routine clones into the given context the current state of the global pseudo-random generator. It allows the user to run concurrently several routines of the \libscotch\ library in a reproducibile way, since the cloned generators within two different contexts can be parametrized independently. \progret \texttt{SCOTCH\_contextRandomClone} returns $0$ if the pseudo-random generator has been successfully cloned, and $1$ else. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextRandomReset}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_contextRandomReset ( & SCOTCH\_Context * & contptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextrandomreset ( & doubleprecision (*) & contdat) \end{tabular}} \progdes The {\tt SCOTCH\_contextRandomReset} routine resets the seed of the pseudo-random generator used by the given context. This generator may either be the default global pseudo-random generator of the \libscotch\ library (the routine then performs like \texttt{SCOTCH\_\lbt random\lbt Reset}) or a private generator created by means of the \texttt{SCOTCH\_\lbt context\lbt Random\lbt Clone} function. Please see the manual page of \texttt{SCOTCH\_\lbt random\lbt Reset}, page~\pageref{sec-lib-random-reset}, for more information on the operations of the pseudo-random generator resetting routines. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextRandomSeed}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_contextRandomSeed ( & SCOTCH\_Context * & contptr, \\ & SCOTCH\_Num & seedval) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextrandomseed ( & doubleprecision (*) & contdat, \\ & integer*{\it num} & seedval) \end{tabular}} \progdes The {\tt SCOTCH\_contextRandomSeed} routine sets to \texttt{seedval} the seed of the pseudo-random generator used by the given context. This generator may either be the default global pseudo-random generator of the \libscotch\ library (the routine then performs like \texttt{SCOTCH\_\lbt random\lbt Seed}) or a private generator created by means of the \texttt{SCOTCH\_\lbt context\lbt Random\lbt Clone} function. Please see the manual page of \texttt{SCOTCH\_\lbt random\lbt Seed}, page~\pageref{sec-lib-random-seed}, for more information on the operations of the pseudo-random generator seed setting routines. \end{itemize} \subsubsection{{\tt SCOTCH\_contextSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_contextSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_contextSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Context} structure. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextThreadImport1}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextThreadImport1 ( & SCOTCH\_Context * & contptr, \\ & int & thrdnbr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextthreadimport1 ( & doubleprecision (*) & contdat, \\ & integer & thrdnbr, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextThreadImport1} function initiates the capture, into the given context, of an existing pool of threads. It must be called only by the master thread, which provides \texttt{thrdnbr}, the overall number of threads to be included in the context (including the master thread). See Listing~\ref{list-lib-context-import}, page~\pageref{list-lib-context-import} for a sample of multi-threaded code using \texttt{SCOTCH\_\lbt context\lbt Thread\lbt Import1} and \texttt{SCOTCH\_\lbt context\lbt Thread\lbt Import2} to capture a pool of existing threads and use it for \libscotch\ computations. \progret \texttt{SCOTCH\_contextThreadImport1} returns $0$ if the context thread structure has been successfully initialized, and $1$ else. \end{itemize} \begin{lstlisting}[float,style=language-c,label={list-lib-context-import},caption={Sample code for capturing a pool of threads and launching multi-threaded computations using this pool. All \libscotch\ routines which are passed the context graph (instead of the regular graph) will make use of the captured threads.}] SCOTCH_Context contdat; /* Context data */ SCOTCH_Graph graftab[2]; /* A regular graph and a container graph */ ... if (thrdnum == 0) { SCOTCH_graphInit (&graftab[0]); /* Initialize regular graph */ SCOTCH_graphLoad (&graftab[0], ...); /* User places data in graph structure */ ... SCOTCH_contextInit (&contdat); /* Initialize context */ SCOTCH_contextRandomClone (&contdat); /* Set private random generator */ SCOTCH_contextThreadImport1 (&contdat, thrdnbr); /* Give number of threads */ } user_thread_barrier (); /* User makes sure there is synchronization across threads here */ SCOTCH_contextThreadImport2 (&contdat, thrdnum); /* Every thread gives its rank */ ... /* From here, all slave threads are blocked until context is destroyed */ if (thrdnum == 0) { SCOTCH_graphInit (&graftab[1]); /* Initialize container graph */ SCOTCH_contextBindGraph (&contdat, &graftab[0], &graftab[1]); /* Bind context */ ... SCOTCH_graphOrder (&graftab[1], ...); /* Use container graph for multi-threading */ ... SCOTCH_graphExit (&graftab[1]); /* Destroy container */ SCOTCH_contextExit (&contdat); /* Destroy context; slave threads are released */ ... SCOTCH_graphExit (&graftab[0]); /* Destroy regular graph */ } \end{lstlisting} \subsubsection{\texttt{SCOTCH\_contextThreadImport2}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextThreadImport2 ( & SCOTCH\_Context * & contptr, \\ & int & thrdnum) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextthreadimport2 ( & doubleprecision (*) & contdat, \\ & integer & thrdnum, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextThreadImport2} function finalizes the capture, into the given context, of an existing pool of threads. It must be called by all threads, including the master thread, after the latter has returned from \texttt{SCOTCH\_\lbt context\lbt Thread\lbt Import1}; hence, some synchronization (e.g., a barrier) must be implemented between the two routines, for all threads to wait until the master thread has completed setting-up the context structure. Each thread provides \texttt{thrdnum}, its rank within the thread pool; it must be $0$ for the master thread. On success, only the master thread returns immediatly from the routine; all slave threads are captured within the context and put to sleep. The master thread can then bind the context to a \scotch\ object (see \texttt{SCOTCH\_\lbt context\lbt Bind\lbt Graph} and \texttt{SCOTCH\_\lbt context\lbt Bind\lbt Mesh}), and call \libscotch\ routines using the created context container. When the context is no longer of use, it can be destroyed by the master thread by calling \texttt{SCOTCH\_\lbt context\lbt Exit}. All slave threads will then return from their call to \texttt{SCOTCH\_\lbt context\lbt Thread\lbt Import2}. See Listing~\ref{list-lib-context-import}, page~\pageref{list-lib-context-import} for an example of code using this routine. \progret \texttt{SCOTCH\_contextThreadImport2} returns $1$ to all threads in case of an error. Else, it returns $0$ to the master thread immediately, and $0$ to the slave threads once the capturing context has been destroyed by the master thread. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextThreadSpawn}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextThreadSpawn ( & SCOTCH\_Context * & contptr, \\ & int & thrdnbr, \\ & int * & coretab) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextthreadspawn ( & doubleprecision (*) & contdat, \\ & integer & thrdnbr, \\ & integer & coretab, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextThreadSpawn} function populates the given context \texttt{contptr} with $(\mbox{\texttt{thrdnbr}} - 1)$ slave threads which, in addition to the master, calling thread, will enable \texttt{thrdnbr} threads to participate in the computation of the \libscotch\ routines called using this context. When \texttt{coretab} is not equal to \texttt{NULL} or \texttt{\&thrdnbr}, it represents an array of \texttt{thrdnbr} integer values that represent the logical indices of the cores onto which the threads will be bound. Valid core indices range from $0$ to the number of cores available on the platform, minus one. Core indices above this threshold are subject to modulus reduction. A core index of $-1$ results in the thread not being bound to a specific core (which may be detrimental to memory locality if threads are not always executed on the same core). The conversion from logical core numbers to physical core numbers depends on the platform features selected at compile time, e.g., ``\texttt{-DCOMMON\_\lbt PTHREAD\_\lbt AFFINITY\_\lbt LINUX}'' (which binds theads to logical cores without accounting for hardware locality) or ``\texttt{-DCOMMON\_\lbt PTHREAD\_\lbt AFFINITY\_\lbt HWLOC}''. When no affinity module is defined at compile time, threads are left unbound. See Listing~\ref{list-lib-context-spawn}, page~\pageref{list-lib-context-spawn} for a sample of sequential code using \texttt{SCOTCH\_\lbt context\lbt Thread\lbt Spawn} to create a thread pool of a prescribed number of threads. \progret \texttt{SCOTCH\_contextThreadSpawn} returns $0$ if the context thread structure has been successfully initialized, and $1$ else. \end{itemize} \begin{lstlisting}[float,style=language-c,label={list-lib-context-spawn},caption={Sample code for running multi-threaded computations using a dedicated pool of threads. This code is run by the main thread. All \libscotch\ routines which are passed the context graph (instead of the regular graph) will make use of the dedicated pool. If \libscotch\ routines are called on the regular graph, a local pool is created and destroyed for every function call.}] SCOTCH_Context contdat; /* Context data */ SCOTCH_Graph graftab[2]; /* A regular graph and a container graph */ ... SCOTCH_graphInit (&graftab[0]); /* Initialize regular graph */ SCOTCH_graphLoad (&graftab[0], ...); /* User places data in graph structure */ ... SCOTCH_contextInit (&contdat); /* Initialize context */ SCOTCH_contextThreadSpawn (&contdat, thrdnbr, NULL); /* Set number of threads */ ... SCOTCH_graphInit (&graftab[1]); /* Initialize container graph */ SCOTCH_contextBindGraph (&contdat, &graftab[0], &graftab[1]); /* Bind context */ ... SCOTCH_graphOrder (&graftab[1], ...); /* Use container graph for multi-threading */ ... SCOTCH_graphExit (&graftab[1]); /* Destroy container */ SCOTCH_contextExit (&contdat); /* Destroy context */ ... SCOTCH_graphExit (&graftab[0]); /* Destroy regular graph */ \end{lstlisting} \subsubsection{\texttt{SCOTCH\_contextBindGraph}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextBindGraph ( & SCOTCH\_Context * & contptr, \\ & SCOTCH\_Graph * & orggrafptr, \\ & SCOTCH\_Graph * & cntgrafptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextbindgraph ( & doubleprecision (*) & contdat, \\ & doubleprecision (*) & orggrafdat, \\ & doubleprecision (*) & cntgrafdat, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextBindGraph} function initializes a context container object \texttt{cnt\lbt graf}, with a type compatible with a \texttt{SCOTCH\_\lbt Graph} structure, to make it reference both the given genuine \texttt{SCOTCH\_\lbt Graph} structure \texttt{org\lbt graf} and the \texttt{SCOTCH\_\lbt Context} structure \texttt{cont}. The context container can then be used by routines of the \libscotch\ library that expect a \texttt{SCOTCH\_\lbt Graph}, which will take advantage of all the features offered by the given context. When the context container is no longer of use, call function \texttt{SCOTCH\_\lbt graph\lbt Exit} to free its internal structures. The original graph and the context can then also be freed by using the adequate routines. \progret \texttt{SCOTCH\_contextBindGraph} returns $0$ if the context container graph structure has been successfully initialized, and $1$ else. \end{itemize} \subsubsection{\texttt{SCOTCH\_contextBindMesh}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_contextBindMesh ( & SCOTCH\_Context * & contptr, \\ & SCOTCH\_Mesh * & orgmeshptr, \\ & SCOTCH\_Mesh * & cntmeshptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfcontextBindMesh ( & doubleprecision (*) & contdat, \\ & doubleprecision (*) & orgmeshdat, \\ & doubleprecision (*) & cntmeshdat, \\ & integer & ierr) \end{tabular}} \progdes The \texttt{SCOTCH\_contextBindMesh} function initializes a context container object \texttt{cnt\lbt mesh}, with a type compatible with a \texttt{SCOTCH\_\lbt Mesh} structure, to make it reference both the given genuine \texttt{SCOTCH\_\lbt Mesh} structure \texttt{org\lbt mesh} and the \texttt{SCOTCH\_\lbt Context} structure \texttt{cont}. The context container can then be used by routines of the \libscotch\ library that expect a \texttt{SCOTCH\_\lbt Mesh}, which will take advantage of all the features offered by the given context. When the context container is no longer of use, call function \texttt{SCOTCH\_\lbt graph\lbt Exit} to free its internal structures. The original graph and the context can then also be freed by using the adequate routines. \progret \texttt{SCOTCH\_contextBindMesh} returns $0$ if the context container graph structure has been successfully initialized, and $1$ else. \end{itemize} \subsection{Memory management} \label{sec-lib-mem} \subsubsection{{\tt SCOTCH\_memCur}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Idx SCOTCH\_memCur ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmemcur ( & integer*{\it idx} & memcur) \\ \end{tabular}} \progdes When \scotch\ is compiled with the {\tt COMMON\_\lbt MEMORY\_\lbt TRACE} flag set, the {\tt SCOTCH\_memCur} routine returns the amount of memory, in bytes, that is currently allocated by \scotch\ on the current processing element, either by itself or on the behalf of the user. Else, the routine returns {\tt -1}. The returned figure does not account for the memory that has been allocated by the user and made visible to \scotch\ by means of routines such as {\tt SCOTCH\_\lbt dgraph\lbt Build} calls. This memory is not under the control of \scotch, and it is the user's responsibility to free it after calling the relevant {\tt SCOTCH\_\lbt *\lbt Exit} routines. Some third-party software used by \scotch, such as the strategy string parser, may allocate some memory for internal use and never free it. Consequently, there may be small discrepancies between memory occupation figures returned by \scotch\ and those returned by third-party tools. However, these discrepancies should not exceed a few kilobytes. While memory occupation is internally recorded in a variable of type {\tt intptr\_\lbt t}, it is output as a {\tt SCOTCH\_\lbt Idx} for the sake of interface homogeneity, especially for Fortran. It is therefore the installer's responsibility to make sure that the support integer type of {\tt SCOTCH\_\lbt Idx} is large enough to not overflow. See section~\ref{sec-lib-inttypesize} for more information. \end{itemize} \subsubsection{{\tt SCOTCH\_memFree}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void SCOTCH\_memFree ( & void * & dataptr) \end{tabular}} \progdes The {\tt SCOTCH\_memFree} routine frees the memory space allocated by routines such as {\tt SCOTCH\_\lbt graph\lbt Alloc}, {\tt SCOTCH\_\lbt mesh\lbt Alloc}, or {\tt SCOTCH\_\lbt strat\lbt Alloc}. The standard {\tt free} routine of the \textsc{libc} must not be used for this purpose. Else, the allocated memory will not be considered as properly released by memory accounting routines {\tt SCOTCH\_\lbt mem\lbt Cur} and {\tt SCOTCH\_\lbt mem\lbt Max}, and segmentation errors would happen when the {\tt COMMON\_\lbt MEMORY\_\lbt CHECK} compile flag is set. On the opposite, if the user has allocated memory by himself according to the size information provided by the {\tt SCOTCH\_\lbt *\lbt Sizeof} routines, it is his responsibility to free this memory using the corresponding memory freeing routine of his environment. \end{itemize} \subsubsection{{\tt SCOTCH\_memMax}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} SCOTCH\_Idx SCOTCH\_memMax ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfmemmax ( & integer*{\it idx} & memcur) \\ \end{tabular}} \progdes When \scotch\ is compiled with the {\tt COMMON\_\lbt MEMORY\_\lbt TRACE} flag set, the {\tt SCOTCH\_memMax} routine returns the maximum amount of memory, in bytes, ever allocated by \scotch\ on the current processing element, either by itself or on the behalf of the user. Else, the routine returns {\tt -1}. The returned figure does not account for the memory that has been allocated by the user and made visible to \scotch\ by means of routines such as {\tt SCOTCH\_\lbt dgraph\lbt Build} calls. This memory is not under the control of \scotch, and it is the user's responsibility to free it after calling the relevant {\tt SCOTCH\_\lbt *\lbt Exit} routines. Some third-party software used by \scotch, such as the strategy string parser, may allocate some memory for internal use and never free it. Consequently, there may be small discrepancies between memory occupation figures returned by \scotch\ and those returned by third-party tools. However, these discrepancies should not exceed a few kilobytes. While memory occupation is internally recorded in a variable of type {\tt intptr\_\lbt t}, it is output as a {\tt SCOTCH\_\lbt Idx} for the sake of interface homogeneity, especially for Fortran. It is therefore the installer's responsibility to make sure that the support integer type of {\tt SCOTCH\_\lbt Idx} is large enough to not overflow. See section~\ref{sec-lib-inttypesize} for more information. \end{itemize} \subsection{Miscellaneous routines} \label{sec-lib-misc} \subsubsection{{\tt SCOTCH\_numSizeof}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}l} int SCOTCH\_numSizeof ( & void) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfnumsizeof ( & integer & size ) \end{tabular}} \progdes The {\tt SCOTCH\_numSizeof} routine returns the size, in bytes, of a {\tt SCOTCH\_\lbt Num}. This information is useful to export the interface of the {\sc libScotch} to interpreted languages, without access to the ``{\tt scotch.h}'' include file. \end{itemize} \subsubsection{{\tt SCOTCH\_version}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int SCOTCH\_version ( & int * & versptr, \\ & int * & relaptr, \\ & int * & patcptr) \end{tabular}} {\tt\begin{tabular}{l@{}ll} scotchfversion ( & integer & versval, \\ & integer & relaval, \\ & integer & patcval) \end{tabular}} \progdes The {\tt SCOTCH\_version} routine writes the version, release and patchlevel numbers of the \scotch\ library that is currently being used, to integer values {\tt *versptr}, {\tt *relaptr} and {\tt patcptr}, respectively. This routine is mainly useful for applications willing to record runtime information, such as the library against which they are dynamically linked. \end{itemize} \subsection{\metis\ compatibility library} \label{sec-lib-metis} The \metis\ compatibility library provides stubs which redirect some calls to \metis\ routines to the corresponding \scotch\ counterparts. In order to use this feature, the only thing to do is to re-link the existing software with the {\tt lib\lbo scotch\lbo metis} library, and eventually with the original \metis\ library if the software uses \metis\ routines which do not need to have \scotch\ equivalents, such as graph transformation routines. In that latter case, the ``{\tt -lscotch\lbt metis}'' argument must be placed before the ``{\tt -lmetis}'' one (and of course before the ``{\tt -lscotch}'' one too), so that routines that are redefined by \scotch\ are chosen instead of their \metis\ counterpart. When no other \metis\ routines than the ones redefined by \scotch\ are used, the ``{\tt -lmetis}'' argument can be omitted. See Section~\ref{sec-examples} for an example. \subsubsection{{\tt METIS\_EdgeND}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void METIS\_EdgeND ( & const SCOTCH\_Num * & n, \\ & const SCOTCH\_Num * & xadj, \\ & const SCOTCH\_Num * & adjncy, \\ & const SCOTCH\_Num * & numflag, \\ & const SCOTCH\_Num * & options, \\ & SCOTCH\_Num * & perm, \\ & SCOTCH\_Num * & iperm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_edgend ( & integer*{\it num} & n, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} (*) & perm, \\ & integer*{\it num} (*) & iperm) \end{tabular}} \progdes The {\tt METIS\_EdgeND} function performs a nested dissection ordering of the graph passed as arrays {\tt xadj} and {\tt adjncy}, using the default \scotch\ ordering strategy. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. The {\tt perm} and {\tt iperm} arrays have the opposite meaning as in \scotch: the \metis\ {\tt perm} array holds what is called ``inverse permutation'' in \scotch, while {\tt iperm} holds what is called ``direct permutation'' in \scotch. While \scotch\ has also both node and edge separation capabilities, all of the three \metis\ stubs {\tt METIS\_\lbo EdgeND}, {\tt METIS\_\lbo NodeND} and {\tt METIS\_\lbo NodeWND} call the same \scotch\ routine, which uses the \scotch\ default ordering strategy proved to be efficient in most cases. \end{itemize} \subsubsection{{\tt METIS\_MeshToDual}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int METIS\_MeshToDual ( & const SCOTCH\_Num * const & ne, \\ & const SCOTCH\_Num * const & nn, \\ & const SCOTCH\_Num * const & eptr, \\ & const SCOTCH\_Num * const & eind, \\ & const SCOTCH\_Num * const & ncommon, \\ & const SCOTCH\_Num * const & numflag, \\ & SCOTCH\_Num ** const & xadj, \\ & SCOTCH\_Num ** const & adjncy) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_meshtodual ( & integer*{\it num} & ne, \\ & integer*{\it num} & nn, \\ & integer*{\it num} (*) & eptr, \\ & integer*{\it num} (*) & eind, \\ & integer*{\it num} & ncommon, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} (**) & xadj, \\ & integer*{\it num} (**) & adjncy) \end{tabular}} \progdes Given the \texttt{eptr} and \texttt{eind} arrays describing the element-to-node adjacency of a mesh with \texttt{*ne} elements and \texttt{*nn} nodes, the \texttt{METIS\_MeshToDual} function computes the dual graph, {\it i.e. } the graph of elements, of this mesh. The vertices of the dual graph represent the elements of the mesh, and there exists an edge between any two graph vertices if and only if there are at least \texttt{ncommon} shared nodes between the two corresponding elements in the mesh. The \texttt{numflag} parameter corresponds to the base value of the numbering: $0$ for C, and $1$ for Fortran. On return, the \texttt{xadj} and \texttt{adjncy} arrays are allocated, by way of the \texttt{malloc()} routine, and contain the adjacency list of the dual graph. It is the user's responsibility to free these arrays, using the \texttt{free()} routine, whenever these arrays are no longer necessary. If the function fails, \texttt{xadj} is set to \texttt{NULL}. \end{itemize} \subsubsection{{\tt METIS\_NodeND}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void METIS\_NodeND ( & const SCOTCH\_Num * & n, \\ & const SCOTCH\_Num * & xadj, \\ & const SCOTCH\_Num * & adjncy, \\ & const SCOTCH\_Num * & numflag, \\ & const SCOTCH\_Num * & options, \\ & SCOTCH\_Num * & perm, \\ & SCOTCH\_Num * & iperm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_nodend ( & integer*{\it num} & n, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} (*) & perm, \\ & integer*{\it num} (*) & iperm) \end{tabular}} \progdes The {\tt METIS\_NodeND} function performs a nested dissection ordering of the graph passed as arrays {\tt xadj} and {\tt adjncy}, using the default \scotch\ ordering strategy. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. The {\tt perm} and {\tt iperm} arrays have the opposite meaning as in \scotch: the \metis\ {\tt perm} array holds what is called ``inverse permutation'' in \scotch, while {\tt iperm} holds what is called ``direct permutation'' in \scotch. While \scotch\ has also both node and edge separation capabilities, all of the three \metis\ stubs {\tt METIS\_\lbo EdgeND}, {\tt METIS\_\lbo NodeND} and {\tt METIS\_\lbo NodeWND} call the same \scotch\ routine, which uses the \scotch\ default ordering strategy proved to be efficient in most cases. \end{itemize} \subsubsection{{\tt METIS\_NodeWND}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void METIS\_NodeWND ( & const SCOTCH\_Num * & n, \\ & const SCOTCH\_Num * & xadj, \\ & const SCOTCH\_Num * & adjncy, \\ & const SCOTCH\_Num * & vwgt, \\ & const SCOTCH\_Num * & numflag, \\ & const SCOTCH\_Num * & options, \\ & SCOTCH\_Num * & perm, \\ & SCOTCH\_Num * & iperm) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_nodwend ( & integer*{\it num} & n, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} (*) & perm, \\ & integer*{\it num} (*) & iperm) \end{tabular}} \progdes The {\tt METIS\_NodeWND} function performs a nested dissection ordering of the graph passed as arrays {\tt xadj}, {\tt adjncy} and {\tt vwgt}, using the default \scotch\ ordering strategy. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. The {\tt perm} and {\tt iperm} arrays have the opposite meaning as in \scotch: the \metis\ {\tt perm} array holds what is called ``inverse permutation'' in \scotch, while {\tt iperm} holds what is called ``direct permutation'' in \scotch. While \scotch\ has also both node and edge separation capabilities, all of the three \metis\ stubs {\tt METIS\_\lbo EdgeND}, {\tt METIS\_\lbo NodeND} and {\tt METIS\_\lbo NodeWND} call the same \scotch\ routine, which uses the \scotch\ default ordering strategy proved to be efficient in most cases. \end{itemize} \subsubsection{{\tt METIS\_PartGraphKway}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void METIS\_PartGraphKway ( & const SCOTCH\_Num * & n, \\ & const SCOTCH\_Num * & xadj, \\ & const SCOTCH\_Num * & adjncy, \\ & const SCOTCH\_Num * & vwgt, \\ & const SCOTCH\_Num * & adjwgt, \\ & const SCOTCH\_Num * & wgtflag, \\ & const SCOTCH\_Num * & numflag, \\ & const SCOTCH\_Num * & nparts, \\ & const SCOTCH\_Num * & options, \\ & SCOTCH\_Num * & edgecut, \\ & SCOTCH\_Num * & part) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_partgraphkway ( & integer*{\it num} & n, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} (*) & adjwgt, \\ & integer*{\it num} & wgtflag, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} & nparts, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} & edgecut, \\ & integer*{\it num} (*) & part) \end{tabular}} \progdes The {\tt METIS\_PartGraphKway} function performs a mapping onto the complete graph of the graph represented by arrays {\tt xadj}, {\tt adjncy}, {\tt vwgt} and {\tt adjwgt}, using the default \scotch\ mapping strategy. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. The {\tt part} array has the same meaning as the {\tt parttab} array of \scotch. All of the three \metis\ stubs {\tt METIS\_\lbo Part\lbo Graph\lbo Kway}, {\tt METIS\_\lbo Part\lbo Graph\lbo Recursive} and {\tt METIS\_\lbo Part\lbo Graph\lbo VKway} call the same \scotch\ routine, which uses the \scotch\ default mapping strategy proved to be efficient in most cases. \end{itemize} \subsubsection{{\tt METIS\_PartGraphRecursive}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void METIS\_PartGraphRecursive ( & const SCOTCH\_Num * & n, \\ & const SCOTCH\_Num * & xadj, \\ & const SCOTCH\_Num * & adjncy, \\ & const SCOTCH\_Num * & vwgt, \\ & const SCOTCH\_Num * & adjwgt, \\ & const SCOTCH\_Num * & wgtflag, \\ & const SCOTCH\_Num * & numflag, \\ & const SCOTCH\_Num * & nparts, \\ & const SCOTCH\_Num * & options, \\ & SCOTCH\_Num * & edgecut, \\ & SCOTCH\_Num * & part) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_partgraphrecursive ( & integer*{\it num} & n, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} (*) & adjwgt, \\ & integer*{\it num} & wgtflag, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} & nparts, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} & edgecut, \\ & integer*{\it num} (*) & part) \end{tabular}} \progdes The {\tt METIS\_PartGraphRecursive} function performs a mapping onto the complete graph of the graph represented by arrays {\tt xadj}, {\tt adjncy}, {\tt vwgt} and {\tt adjwgt}, using the default \scotch\ mapping strategy. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. The {\tt part} array has the same meaning as the {\tt parttab} array of \scotch. To date, the computation of the {\tt edgecut} field requires extra processing, which increases running time to a small extent. All of the three \metis\ stubs {\tt METIS\_\lbo Part\lbo Graph\lbo Kway}, {\tt METIS\_\lbo Part\lbo Graph\lbo Recursive} and {\tt METIS\_\lbo Part\lbo Graph\lbo VKway} call the same \scotch\ routine, which uses the \scotch\ default mapping strategy proved to be efficient in most cases. \end{itemize} \subsubsection{{\tt METIS\_PartGraphVKway}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} void METIS\_PartGraphVKway ( & const SCOTCH\_Num * & n, \\ & const SCOTCH\_Num * & xadj, \\ & const SCOTCH\_Num * & adjncy, \\ & const SCOTCH\_Num * & vwgt, \\ & const SCOTCH\_Num * & vsize, \\ & const SCOTCH\_Num * & wgtflag, \\ & const SCOTCH\_Num * & numflag, \\ & const SCOTCH\_Num * & nparts, \\ & const SCOTCH\_Num * & options, \\ & SCOTCH\_Num * & volume, \\ & SCOTCH\_Num * & part) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_partgraphvkway ( & integer*{\it num} & n, \\ & integer*{\it num} (*) & xadj, \\ & integer*{\it num} (*) & adjncy, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} (*) & vsize, \\ & integer*{\it num} & wgtflag, \\ & integer*{\it num} & numflag, \\ & integer*{\it num} & nparts, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} & volume, \\ & integer*{\it num} (*) & part) \end{tabular}} \progdes The {\tt METIS\_PartGraphVKway} function performs a mapping onto the complete graph of the graph represented by arrays {\tt xadj}, {\tt adjncy}, {\tt vwgt} and {\tt vsize}, using the default \scotch\ mapping strategy. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. The {\tt part} array has the same meaning as the {\tt parttab} array of \scotch. Since \scotch\ does not have methods for explicitely reducing the communication volume according to the metric of {\tt METIS\_\lbo Part\lbo Graph\lbo VKway}, this routine creates a temporary edge weight array such that each edge $(u,v)$ receives a weight equal to $mbox{\tt vsize}(u) + mbox{\tt vsize}(v)$. Consequently, edges which are incident to highly communicating vertices will be less likely to be cut. However, the communication volume value returned by this routine is exactly the one which would be returned by \metis\ with respect to the output partition. Users interested in minimizing the exact communication volume should consider using hypergraphs, implemented in \scotch\ as meshes (see Section~\ref{sec-lib-type-mesh}). All of the three \metis\ stubs {\tt METIS\_\lbo Part\lbo Graph\lbo Kway}, {\tt METIS\_\lbo Part\lbo Graph\lbo Recursive} and {\tt METIS\_\lbo Part\lbo Graph\lbo VKway} call the same \scotch\ routine, which uses the \scotch\ default mapping strategy proved to be efficient in most cases. \end{itemize} \subsubsection{{\tt METIS\_PartMeshDual}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int METIS\_PartMeshDual ( & const SCOTCH\_Num * const & ne, \\ & const SCOTCH\_Num * const & nn, \\ & const SCOTCH\_Num * const & eptr, \\ & const SCOTCH\_Num * const & eind, \\ & const SCOTCH\_Num * const & vwgt, \\ & const SCOTCH\_Num * const & vsize, \\ & const SCOTCH\_Num * const & ncommon, \\ & const SCOTCH\_Num * const & nparts, \\ & const double * const & tpwgts, \\ & const SCOTCH\_Num * const & options, \\ & SCOTCH\_Num * const & objval, \\ & SCOTCH\_Num * const & epart, \\ & SCOTCH\_Num * const & npart) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_metistodual ( & integer*{\it num} & ne, \\ & integer*{\it num} & nn, \\ & integer*{\it num} (*) & eptr, \\ & integer*{\it num} (*) & eind, \\ & integer*{\it num} (*) & vwgt, \\ & integer*{\it num} (*) & vsize, \\ & integer*{\it num} & ncommon, \\ & integer*{\it num} & nparts, \\ & doubleprecision* (*) & tpwgts, \\ & integer*{\it num} (*) & options, \\ & integer*{\it num} & objval, \\ & integer*{\it num} (*) & epart, \\ & integer*{\it num} (*) & npart) \end{tabular}} \progdes Given the \texttt{eptr} and \texttt{eind} arrays describing the element-to-node adjacency of a mesh with \texttt{*ne} elements and \texttt{*nn} nodes, the \texttt{METIS\_PartMeshDual} function computes a partitioning into \texttt{nparts} of the dual graph of this mesh. The vertices of the dual graph represent the elements of the mesh, and there exists an edge between any two graph vertices if and only if there are at least \texttt{ncommon} shared nodes between the two corresponding elements in the mesh. Conforming to the \metis\ API, the base value of the numbering can be defined by setting \texttt{options[METIS\_\lbt OPTION\_\lbt NUMBERING]}. It is the only option supported by \scotch. On return, the \texttt{epart} and \texttt{npart} arrays contain the element and node partitions, respectively. If the function fails, \texttt{*objval} is set to a negative value that corresponds to the relevant \texttt{METIS\_\lbt ERROR\_*} code. \end{itemize} \subsubsection{{\tt METIS\_SetDefaultOptions}} \begin{itemize} \progsyn {\tt\begin{tabular}{l@{}ll} int METIS\_SetDefaultOptions ( & SCOTCH\_Num * const & options) \end{tabular}} {\tt\begin{tabular}{l@{}ll} metis\_setdefaultoptions ( & integer*{\it num} (*) & options) \end{tabular}} \progdes This function partially fills the \texttt{options} array with the values that are relevant to the operations of the \metis\ compatibility library. Other values are set to~$0$. The supported options to date are \texttt{METIS\_\lbt OPTION\_\lbt NUMBERING} (which allows one to set the \texttt{baseval} value of \libscotch\ routines) and \texttt{METIS\_\lbt OPTION\_\lbt OBJTYPE} (only for computing the partition cost, as \scotch\ does not try directly to minimize communication volume). \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_n.tex000066400000000000000000000242661514310134000253060ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_n.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Codage de nouvelles % % methodes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Adding new features to \scotch} \label{sec-coding} Since \scotch\ is free/libre software, users have the ability to add new features to it. Moreover, as \scotch\ is intended to be a testbed for new partitioning and ordering algorithms, it has been developed in a very modular way, to ease the development and inclusion of new partitioning and ordering methods to be called within \scotch\ strategies. All of the source code for partitioning and ordering methods for graphs and meshes is located in the {\tt src/\lbt libscotch/} source subdirectory. Source file names have a very regular pattern, based on the internal data structures they handle. \subsection{Graphs and meshes} The basic structures in \scotch\ are the {\tt Graph} and {\tt Mesh} structures, which model a simple symmetric graph the definition of which is given in file {\tt graph.h}, and a simple mesh, in the form of a bipartite graph, the definition of which is given in file {\tt mesh.h}, respectively. From this structure are derived enriched graph and mesh structures: \begin{itemize} \item {\tt Bgraph}, in file {\tt bgraph.h}: graph with bipartition, that is, edge separation, information attached to it; \item {\tt Kgraph}, in file {\tt kgraph.h}: graph with mapping information attached to it; \item {\tt Hgraph}, in file {\tt hgraph.h}: graph with halo information attached to it, for computing graph orderings; \item {\tt Vgraph}, in file {\tt vgraph.h}: graph with vertex bipartition information attached to it; \item {\tt Hmesh}, in file {\tt hmesh.h}: mesh with halo information attached to it, for computing mesh orderings; \item {\tt Vmesh}, in file {\tt vmesh.h}: graph with vertex bipartition information attached to it. \end{itemize} As version {\sc \scotchver} of the \libscotch\ does not provide mesh mapping capabilities, neither {\tt Bmesh} nor {\tt Kmesh} structures have been defined to date, but this work is in progress, and these features should be available in the upcoming releases. All of the structures are in fact defined as {\tt typedef}ed types. \subsection{Methods and partition data} Methods are routines which take one of the above structures as input, and update the fields of the given structure according to the implemented algorithm. Initial methods will behave irrespective of the former values of the structure (like graph growing methods, which compute partitions from scratch), while refinement methods must be provided an existing partition to improve. In addition to the topological description of the underlying graph, the working graph and mesh structures comprise variables describing the current state of the vertex or edge partition. In all cases is provided a partition array called {\tt parttax}, of size equal to the number of graph vertices, which tells which part every vertex is assigned to. Other variables comprise the communication load and the load imbalance of the current cut, that is, all of the data necessary to measure the quality of a partition. Some other data are also often provided, such as the number of vertices in each part and the list of frontier vertices. They are not relevant to measure the quality of the partition, but to improve the speed of computations. They are used for instance in the multilevel algorithms to compute incremental updates of the current partition state, without having to recompute these values from scratch by considering all of the graph vertices. Implementers of new methods are highly encouraged to use these variables to speed-up their computations, taking examples on typical algorithms such as the multilevel or Fiduccia-Mattheyses ones. \subsection{Adding a new method to \scotch} We will assume in this section that the new method to add is a graph separation method. The procedure explained below is exactly the same for graph bipartitioning, graph mapping, graph ordering, mesh separation, or mesh ordering methods. Please proceed as explained below. \begin{enumerate} \item Write the code of the method itself. First, choose a free two-letter code to describe your method, say ``xy''. In the {\tt libscotch} source directory, create files {\tt vgraph\_\lbt separate\_\lbt xy.c} and {\tt vgraph\_\lbt separate\_\lbt xy.h}, basing on existing files such as {\tt vgraph\_\lbt separate\_\lbt gg.c} and {\tt vgraph\_\lbt separate\_\lbt gg.h}, for instance. If the method is complex, it can be split across several other files, which will be named {\tt vgraph\_\lbt separate\_\lbt xy\_\lbt first\lbt module\lbt name.c}, {\tt vgraph\_\lbt separate\_\lbt xy\_\lbt second\lbt module\lbt name.c}, eventually with matching header files. If the method has parameters, create a structure called {\tt Vgraph\lbt Separate\lbt Xy\lbt Param}, which contains fields of types that can be handled by the strategy parser, such as the {\tt INT} generic integer type (see below), or {\tt double}, for instance. The execution of your method should result in the setting or in the updating of the {\tt Vgraph} structure that is passed to it. See its definition in {\tt vgraph.h} and read several simple graph separation methods, such as {\tt vgraph\_\lbt separate\_\lbt zr.c}, to figure out what all of its parameters mean. At the end of your method, always call, when the {\tt SCOTCH\_\lbt DEBUG\_\lbt VGRAPH2} debug flag is set, the {\tt vgraph\lbt Check} routine, to avoid the spreading of eventual bugs to other parts of the \libscotch\ library. \item Add the method to the parser tables. The files to update are {\tt vgraph\_\lbt separate\_\lbt st.c} and {\tt vgraph\_\lbt separate\_\lbt st.h}, where ``{\tt st}'' stands for ``strategy''. First, edit {\tt vgraph\_\lbt separate\_\lbt st.h}. In the {\tt Vgraph\lbt Separate\lbt St\lbt Method\lbt Type} enumeration, add a line for your new method {\tt VGRAPH\lbt SEPA\lbt ST\lbt METH\lbt XY}. Then, edit {\tt vgraph\_\lbt separate\_\lbt st.c}, where all of the remaining actions take place. In the top of the file, add a {\tt \#include} directive to include {\tt vgraph\_\lbt separate\_\lbt xy.h}. If the method has parameters, create a {\tt vgraph\lbt separate\lbt default\lbt xy} C union, basing on an existing one, and fill it with the default values of your method parameters. In the {\tt vgraph\lbt separate\lbt st\lbt meth\lbt tab} method array, add a line for the new method. To do so, choose a free single-letter code that will be used to designate the new method in strategy strings. If the method has parameters, the last field should be a pointer to the default structure, else it should be set to {\tt NULL}. If the method has parameters, update the {\tt vgraph\lbt separate\lbt st\lbt para\lbt tab} parameter array. Add one data block per parameter. The first field is the name of the method to which the parameter applies, that is, {\tt VGRAPH\lbt SEPA\lbt ST\lbt METH\lbt XY}. The second field is the type of the parameter, which can be: \begin{itemize} \item {\tt STRATPARAMCASE}: the support type is an {\tt int}. It receives the index in the case string, which is provided as the last field of the parameter line, of the given case character; \item {\tt STRATPARAMDOUBLE}: the support type is a {\tt double}; \item {\tt STRATPARAMINT}: the support type is an {\tt INT}, which is the generic integer type handled internally by \scotch. This type has variable extent, depending on compilation flags, as described in Section~\ref{sec-lib-inttypesize}; \item {\tt STRATPARAMSTRING}: a (small) character string; \item {\tt STRATPARAMSTRAT}: strategy. For instance, the graph ordering method by nested dissection takes a vertex partitioning strategy as one of its parameters, to compute the vertex separators. \end{itemize} The fourth and fifth fields are the address of the location of the default structure and the address of the parameter within this default structure, respectively. From these two values can be computed at run time the offset of the parameter within any instance of the parameter structure, which is used to fill the actual structures in the parsed strategy evaluation tree. The value of the sixth parameter depends on the type of the parameter. It should be {\tt NULL} for {\tt STRAT\lbt PARAM\lbt DOUBLE} and {\tt STRAT\lbt PARAM\lbt INT} parameters, points to the string of available case letters for {\tt STRAT\lbt PARAM\lbt CASE} parameters, points to the target string buffer for {\tt STRAT\lbt PARAM\lbt STRING} parameters, and points to the relevant method parsing table for {\tt STRAT\lbt PARAM\lbt STRAT} parameters. \item Edit the makefile of the \libscotch\ source directory to enable the compilation and linking of the method. Depending on \libscotch\ versions, this makefile is either called {\tt Makefile} or {\tt make\_\lbt gen}. \item Compile in debug mode and experiment with your routine, by creating strategies that contain its single-letter code. \item To change the default strategy string used by the \libscotch\ library, update file {\tt library\_\lbt graph\_\lbt order.c}, since it is the graph ordering routine which makes use of graph vertex separation methods to compute separators for the nested dissection ordering method. \end{enumerate} \subsection{Licensing of new methods and of derived works} According to the terms of the CeCILL-C license~\cite{cecill} under which the \scotch\ software package is distributed, the works that are carried out to improve and extend the \libscotch\ library must be licensed under the same terms. Basically, it means that you will have to distribute the sources of your new methods, along with the sources of \scotch, to any recipient of your modified version of the \libscotch, and that you grant these recipients the same rights of update and redistribution as the ones that are given to you under the terms of CeCILL-C. Please read it carefully to know what you can do and cannot do with the \scotch\ distribution. \\ You should have received a copy of the CeCILL-C license along with the \scotch\ distribution; if not, please browse the CeCILL website at \url{http://www.cecill.info/licenses.en.html}. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/scotch/s_p.tex000066400000000000000000001567571514310134000253230ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Titre : s_p.tex % % Sujet : Manuel de l'utilisateur % % du projet 'Scotch' % % Programmes % % Auteur : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Programs} \label{sec-prog} The programs of the \scotch\ project belong to five distinct classes. \begin{itemize} \item Graph handling programs, the names of which begin in ``\texttt{g}'', that serve to build and test source graphs. \item Mesh handling programs, the names of which begin in ``\texttt{m}'', that serve to build and test source meshes. \item Target architecture handling programs, the names of which begin in ``\texttt{a}'', that allow the user to build and test decomposition-defined target files, and especially to turn a source graph file into a target file. \item The mapping and ordering programs themselves. \item Output handling programs, which are the mapping performance analyzer, the graph factorization program, and the graph, matrix, and mapping visualization program. \end{itemize} The general architecture of the \scotch\ project is displayed in Figure~\ref{fig-synp}. \begin{figure}[p] \centering{\hspace*{-5em}\includegraphics[scale=0.56]{s_f_synp.eps}} \caption{General architecture of the \scotch\ project. All of the features offered by the stand-alone programs are also available in the \libscotch\ library.} \label{fig-synp} \end{figure} \subsection{Invocation} The programs comprising the \scotch\ project have been designed to run in command-line mode without any interactive prompting, so that they can be called easily from other programs by means of ``\mbox{\texttt{system$\,$()}}'' or ``\mbox{\texttt{ popen$\,$()}}'' system calls, or be piped together on a single shell command line. In order to facilitate this, whenever a stream name is asked for (either on input or output), the user may put a single ``\texttt{-}'' to indicate standard input or output. Moreover, programs read their input in the same order as stream names are given in the command line. It allows them to read all their data from a single stream (usually the standard input), provided that these data are ordered properly. A brief on-line help is provided with all the programs. To get this help, use the ``\texttt{-h}'' option after the program name. The case of option letters is not significant, except when both the lower and upper cases of a letter have different meanings. When passing parameters to the programs, only the order of file names is significant; options can be put anywhere in the command line, in any order. Examples of use of the different programs of the \scotch\ project are provided in section~\ref{sec-examples}. Error messages are standardized, but may not be fully explanatory. However, most of the errors you may run into should be related to file formats, and located in ``\mbox{\texttt{ \ldots Load}}'' routines. In this case, compare your data formats with the definitions given in section~\ref{sec-file}, and use the \texttt{gtst} and \texttt{mtst} programs to check the consistency of source graphs and meshes. \subsection{Using multi-threading} \label{sec-prog-multithread} Starting from version \textsc{6.1.0}, thread management in \scotch\ is dynamic. This allows the user to control dynamically the number of threads that are used by the threaded algorithms of the \libscotch\ library and, consequently, by the \scotch\ standalone programs that call them. These algorithms are enabled when \scotch\ is compiled with the flag ``\texttt{-DSCOTCH\_\lbt PTHREAD}'' set. \\ The behavior of the \libscotch\ and all the executables that rely on it (including the \scotch\ standalone programs themselves) can be modified dynamically by way of environment variables, which take precedence over the compilation flags with same purpose. \begin{itemize} \item \texttt{SCOTCH\_PTHREAD\_NUMBER}: this environment variable sets the prescribed maximum number of threads that \scotch\ may use in the course of its computations. A value of \texttt{-1} indicates to use as many threads as provided by the system at launch time. Setting this number to \texttt{1} will coerce \scotch\ into using only purely sequential algorithms (which may differ in nature from their multi-threaded counterparts). \item \texttt{SCOTCH\_DETERMINISTIC}: when set to \texttt{0}, faster, non-deterministic, multi-threaded algorithms may be used; when set to \texttt{1}, fully deterministic, albeit sometimes slower, multi-threaded algorithms are always used. \item \texttt{SCOTCH\_RANDOM\_FIXED\_SEED}: when set to \texttt{1}, the same pseudo-random seed is used for each run, allowing for reproducibility in case only deterministic algorithms are used; when set to \texttt{0}, a new pseudo-random seed is used for each run. \end{itemize} \subsection{Using compressed files} \label{sec-prog-compressed} Starting from version {\sc 5.0.6}, \scotch\ allows users to provide and retrieve data in compressed form. Since this feature requires that the compression and decompression tasks run in the same time as data is read or written, it can only be done on systems which support multi-threading (Posix threads) or multi-processing (by means of \texttt{fork} system calls). To determine if a stream has to be handled in compressed form, \scotch\ checks its extension. If it is ``\texttt{.gz}'' (\texttt{gzip} format), ``\texttt{.bz2}'' (\texttt{bzip2} format) or ``\texttt{.lzma}'' (\texttt{lzma} format), the stream is assumed to be compressed according to the corresponding format. A filter task will then be used to process it accordingly if the format is implemented in \scotch\ and enabled on your system. To date, data can be read and written in \texttt{bzip2} and \texttt{gzip} formats, and can also be read in the \texttt{lzma} format. Since the compression ratio of \texttt{lzma} on \scotch\ graphs is $30\%$ better than the one of \texttt{gzip} and \texttt{bzip2} (which are almost equivalent in this case), the \texttt{lzma} format is a very good choice for handling very large graphs. To see how to enable compressed data handling in \scotch, please refer to Section~\ref{sec-install}. \\ When the compressed format allows it, several files can be provided on the same stream, and be uncompressed on the fly. For instance, the command ``\texttt{cat brol.grf.gz brol.xyz.gz | gout -.gz -.gz -Mn - brol.iv}'' concatenates the topology and geometry data of some graph \texttt{brol} and feed them as a single compressed stream to the standard input of program \texttt{gout}, hence the ''\texttt{-.gz}'' to indicate a compressed standard stream. \subsection{Description} \subsubsection{\texttt{acpl}} \begin{itemize} \progsyn \texttt{acpl} [{\it input\_target\_file} [{\it output\_target\_file}]] {\it options} \progdes The program \texttt{acpl} is the decomposition-defined architecture file compiler. It processes architecture files of type ``\texttt{deco~0}'' built by hand or by the \texttt{amk\_}* programs, to create a ``\texttt{deco~1}'' compiled architecture file of about four times the size of the original one; see section~\ref{sec-file-target-deco}, page~\pageref{sec-file-target-deco}, for a detailed description of decomposition-defined target architecture file formats. \\ The mapper can read both original and compiled architecture file formats. However, compiled architecture files are read much more efficiently, as they are directly loaded into memory without further processing. Since the compilation time of a target architecture graph evolves as the square of its number of vertices, precompiling with \texttt{acpl} can save some time when many mappings are to be performed onto the same large target architecture. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{amk\_}*} \relax \begin{itemize} \progsyn \texttt{amk\_ccc} {\it dim} [{\it output\_target\_file}] {\it options}\\ ~\\ \texttt{amk\_fft2} {\it dim} [{\it output\_target\_file}] {\it options}\\ ~\\ \texttt{amk\_hy} {\it dim} [{\it output\_target\_file}] {\it options}\\ ~\\ \texttt{amk\_m2} {\it dimX} [{\it dimY} [{\it output\_target\_file}]] {\it options}\\ ~\\ \texttt{amk\_p2} {\it weight0} [{\it weight1} [{\it output\_target\_file}]] {\it options}\\ \progdes The \texttt{amk\_}* programs make target graphs. Each of them is devoted to a specific topology, for which it builds target graphs of any dimension. \\ These programs are an alternate way between algorithmically-coded built-in target architectures and decompositions computed by mapping with \texttt{amk\_grf}. Like built-in target architectures, their decompositions are algorithmically computed, and like \texttt{amk\_grf}, their output is a decomposition-defined target architecture file. These programs allow the definition and testing of new algorithmically-coded target architectures without coding them in the core of the mapper. \\ \noi Program \texttt{amk\_ccc} outputs the target architecture file of a Cube-Connected-Cycles graph of dimension {\it dim}. Vertex $(l,m)$ of $\CCC(dim)$, with $0 \leq l < dim$ and $0 \leq m < 2^{dim}$, is linked to vertices $((l-1) \bmod dim, m)$, $((l+1) \bmod dim,m)$, and $(l, m \oplus 2^l)$, and is labeled $l\times 2^{dim} + m$. $\oplus$ denotes the bitwise exclusive-or binary operator, and $a \bmod b$ the integer remainder of the euclidian division of $a$ by $b$. \\ \noi Program \texttt{amk\_fft2} outputs the target architecture file of a binary Fast-Fourier-Transform graph of dimension {\it dim}. Vertex $(l,m)$ of $\FFT(dim)$, with $0 \leq l \leq dim$ and $0 \leq m < 2^{dim}$, is linked to vertices $(l-1, m)$, $(l-1, m \bmod 2^{l-1})$, $(l+1, m)$, and $(l+1, m \oplus 2^l)$, if they exist, and is labeled $l\times 2^{dim} + m$. \\ \noi Program \texttt{amk\_hy} outputs the target architecture file of a hypercube graph of dimension {\it dim}. Vertices are labeled according to the decimal value of their binary representation. The decomposition-defined target architectures computed by \texttt{amk\_hy} do not exactly give the same results as the built-in hypercube targets because distances are not computed in the same manner, although the two recursive bipartitionings are identical. To achieve best performance and save space, use the built-in architecture. \\ \noi Program \texttt{amk\_p2} outputs the target architecture file of a weighted path graph with two vertices, the weights of which are given as parameters. \\ This simple target topology is used to bipartition a source graph into two weighted parts with as few cut edges as possible. In particular, it is used to compute independent partitions of the processors of a multi-user parallel machine. As a matter of fact, if the yet unallocated part of the machine is represented by a source graph with $n$ vertices, and $n'$ processors are requested by a user in order to run a job (with $n' \leq n$), mapping the source graph onto the weighted path graph with two vertices of weights $n'$ and $n-n'$ leads to a partition of the machine in which the allocated $n'$ processors should be as densely connected as possible (see Figure~\ref{fig-biparch}). \begin{figure}[hbt] \hfill \parbox[t]{5.8cm}{ \hfill \includegraphics[scale=0.25]{s_f_do1.ps} \hfill\ \\ {\bf a.} Construction of a partition with $13$ vertices (in black) on a $8\times 8$ bidimensional mesh architecture. }\ \hfill\ \parbox[t]{5.8cm}{ \hfill \includegraphics[scale=0.25]{s_f_do2.ps} \hfill\ \\ {\bf b.} Construction of a partition with $17$ vertices (in black) on the remaining architecture. }\hfill\ \caption% {Construction of partitions on a bidimensional $8\times 8$ mesh architecture by weighted bipartitioning.} \label{fig-biparch} \end{figure} \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-m}{\it method}] Select the bipartitioning method (for \texttt{amk\_m2} only). \begin{itemize} \iteme[\texttt{n}] Nested dissection. \iteme[\texttt{o}] Dimension-per-dimension one-way dissection. This is less efficient than nested dissection, and this feature exists only for benchmarking purposes. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \end{itemize} \subsubsection{\texttt{amk\_grf}} \label{sec-prog-amkgrf} \begin{itemize} \progsyn \texttt{amk\_grf} [{\it input\_graph\_file} [{\it output\_target\_file}]] {\it options} \progdes The program \texttt{amk\_grf} turns a source graph file into a decomposition-defined target architecture file. The \texttt{-2} option creates a ``\texttt{deco~2}'' decomposition rather than a ``\texttt{deco~0}'' one. See Section~\ref{sec-file-target-deco}, page~\pageref{sec-file-target-deco} for more information on the different types of decomposition-defined target architectures. The \texttt{-l} option restricts the target architecture to the vertices indicated in the given vertex list file. It is therefore possible to build a target architecture made of several disconnected parts of a bigger architecture. Note that this is not equivalent to turning a disconnected source graph into a target architecture, since doing so would lead to an architecture made of several independent pieces at infinite distance one from another. Considering the selected vertices within their original architecture makes it possible to compute the distance between vertices belonging to distinct connected components, and therefore to evaluate the cost of the mapping of two neighbor processes onto disjoint areas of the architecture. \\ The restriction feature is very useful in the context of multi-user parallel machines. On these machines, when users request processors in order to run their jobs, the partitions allocated by the operating system may not be regular nor connected, because of existing partitions already attributed to other people. By feeding \texttt{amk\_grf} with the source graph representing the whole parallel machine, and the vertex list containing the labels of the processors allocated by the operating system, it is possible to build a target architecture corresponding to this partition, and therefore to map processes on it, automatically, regardless of the partition shape. The \texttt{-b} option selects the recursive bipartitioning strategy used to build the ``\texttt{deco~0}'' decomposition of the source graph. For regular, unweighted, topologies, the \texttt{'-b(g|h)fx'} recursive bipartitioning strategy should work best. For irregular or weighted graphs, use the default strategy, which is more flexible. See also the manual page of function \texttt{SCOTCH\_\lbt arch\lbo Build0}, page~\pageref{sec-lib-arch-build}, for further information. \progopt \begin{itemize} \iteme[\texttt{-b}{\it strategy}] Use recursive bipartitioning strategy {\it strategy\/} to build the decomposition of the architecture graph. The format of bipartitioning strategies is defined within section~\ref{sec-lib-format-strat-bipart}, at page~\pageref{sec-lib-format-strat-bipart}. \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-l}{\it input\_vertex\_file}] Load vertex list from {\it input\_vertex\_file}. As for all other file names, ``\texttt{-}'' may be used to indicate standard input. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{atst}} \begin{itemize} \progsyn \texttt{atst} [{\it input\_target\_file} [{\it output\_data\_file}]] {\it options} \progdes The program \texttt{atst} is the architecture tester. It gives some statistics on decomposition-defined target architectures, and in particular the minimum, maximum, and average communication costs (that is, weighted distance) between all pairs of processors. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{gcv}} \label{sec-prog-gcv} \begin{itemize} \progsyn \texttt{gcv} [{\it input\_graph\_file} [{\it output\_graph\_file} [{\it output\_geometry\_file}]]] {\it options} \progdes The program \texttt{gcv} is the source graph converter. It takes on input a graph file of the format specified with the \texttt{-i} option, and outputs its equivalent in the format specified with the \texttt{-o} option, along with its associated geometry file whenever geometry data is available. At the time being, it accepts four input formats: the Matrix Market format~\cite{bopore96}, the Harwell-Boeing collection format~\cite{dugrle92}, the \textsc{Chaco}/\metis\ graph format~\cite{hele93c}, and the \scotch\ format. Three output format are available: the Matrix Market format, the {\sc Chaco}/\metis\ graph format and the \scotch\ source graph and geometry data format. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-i}{\it format}] Specify the type of input graph. The available input formats are listed below. \begin{itemize} \iteme[{\texttt{b}[{\it number}]}] Harwell-Boeing graph collection format. Only symmetric assembled matrices are currently supported. Since files in this format can contain several graphs one after another, the optional integer {\it number}, starting from $0$, indicates which graph of the file is considered for conversion. \iteme[\texttt{c}] {\sc Chaco v1.0}/\metis\ format. \iteme[\texttt{m}] The Matrix Market format. \iteme[\texttt{s}] \scotch\ source graph format. %% \iteme[\texttt{u}] %% Universal Data Set 2412 format. On output, this node/element structure is %% turned into a communication graph such that vertices represent elements and %% there exists an edge between two vertices if the two end elements share a node %% in the original UDS graph. %% Since UDS format files are tag files, they do not have a well defined end. %% Therefore, one cannot append data of different nature to the input stream %% used to read this graph, since it will make the graph loading routine fail. \end{itemize} \iteme[\texttt{-o}{\it format}] Specify the output graph format. The available output formats are listed below. \begin{itemize} \iteme[\texttt{c}] {\sc Chaco v1.0}/\metis\ format. \iteme[\texttt{m}] The Matrix Market format. \iteme[\texttt{s}] \scotch\ source graph format. \end{itemize} \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} Default option set is ``\texttt{-Ib0 -Os}''. \end{itemize} \subsubsection{\texttt{gmap} / \texttt{gpart}} \label{sec-prog-gmap} \begin{itemize} \progsyn \texttt{gmap} [{\it input\_graph\_file} [{\it input\_target\_file} [{\it output\_mapping\_file} [{\it output\_log\_file}]]]] {\it options}\\ ~\\ \texttt{gpart} {\it number\_\lbt of\_\lbt parts} [{\it input\_graph\_file} [{\it output\_mapping\_file} [{\it output\_log\_file}]]] {\it options} \progdes The program \texttt{gmap} is the graph mapper. It uses a partitioning strategy to map a source graph onto a target graph, so that the weight of source graph vertices allocated to target vertices is balanced, and the communication cost function $f_C$ is minimized. The program \texttt{gpart} is the graph partitioner. It uses a partitioning strategy to split a source graph into the prescribed number of parts, using vertex or edge separators, depending whether the \texttt{-o} option is set or not. The implemented mapping methods mainly derive from graph theory. In particular, graph geometry is never used, even if it is available; only topological properties are taken into account. Mapping methods are used to define mapping strategies by means of selection, combination, grouping, and condition operators. \\ Mapping methods implemented in version~{\sc 6.0} comprise direct k-way methods, including a k-way multilevel framework and k-way local refinement methods, as well as the Dual Recursive Bipartitioning algorithm, which uses graph bipartitioning methods. Available bipartitioning methods include a multilevel framework that uses other bipartitioning methods to compute the initial and refined bipartitions: an improved implementation of the Fiduccia--Mattheyses heuristic designed to handle weighted graphs, a diffusion-based algorithm, a greedy method derived from the Gibbs, Poole, and Stockmeyer algorithm, a greedy graph growing heuristic, a greedy ``exactifying'' refinement algorithm designed to balance vertex loads as much as possible, etc. \texttt{gpart} is a simplified interface to \texttt{gmap}, which performs graph partitioning instead of static mapping. Consequently, the desired number of parts has to be provided, in lieu of the target architecture. The \texttt{-b} and \texttt{-c} options allow the user to set preferences on the behavior of the mapping strategy which is used by default. The \texttt{-m} option allows the user to define a custom mapping strategy. Both programs can be used to perform clustering, by means of the \texttt{-q} option. \texttt{gpart} will perform topology-independent clustering, while \texttt{gmap} may compute locality-preserving clusters when mapping onto variable-sized, non-complete, architectures (see Section~\ref{sec-file-target-variable}). If mapping statistics are wanted rather than the mapping output itself, mapping output can be set to \texttt{/dev/null}, with option \texttt{-vmt} to get mapping statistics and timings. \progopt\\* Since the program is devoted to experimental studies, it has many optional parameters, used to test various execution modes. Values set by default will give best results in most cases. \begin{itemize} \iteme[\texttt{-b}{\it rat}] Set the maximum load imbalance ratio to \textit{rat}, which should be a value comprised between $0$ and $1$. This option can be used in conjunction with option \texttt{-c}, but is incompatible with option \texttt{-m}. \iteme[\texttt{-C}{\it flags}] Tune execution context options according to the given flags. Some of these flags are antagonistic, while others can be combined. Default values depend on compilation flags \texttt{COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} and \texttt{SCOTCH\_\lbt DETERMINISTIC}. \begin{itemize} \iteme[\texttt{d}] Enforce a deterministic behavior across multiple runs, even in a multi-threaded context. Determinism may slow down execution for some multi-threaded algorithms, as determinism requires more synchronization across threads. Implies '\texttt{f}'. \iteme[\texttt{f}] Use a fixed random seed. Suffices to enforce determinism in a single-threaded context. \iteme[\texttt{r}] Use a variable random seed for each run. Opposite of '\texttt{f}'. \iteme[\texttt{u}] Allow for undeterministic behavior across multiple runs. May result in faster execution in a multi-threaded context. Opposite of '\texttt{d}'. \end{itemize} \iteme[\texttt{-c}{\it flags}] Tune the default mapping strategy according to the given preference flags. Some of these flags are antagonistic, while others can be combined. See Section~\ref{sec-lib-format-strat-default} for more information. The currently available flags are the following. \begin{itemize} \iteme[\texttt{b}] Enforce load balance as much as possible. \iteme[\texttt{q}] Privilege quality over speed. \iteme[\texttt{r}] Only use recursive bipartitioning methods. \iteme[\texttt{s}] Privilege speed over quality. \iteme[\texttt{t}] Use only safe methods in the strategy. \end{itemize} This option can be used in conjunction with option \texttt{-b}, but is incompatible with option \texttt{-m}. The resulting strategy string can be displayed by means of the \texttt{-vs} option. \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-m}{\it strat\/}] Apply mapping strategy {\it strat}. In the case of static mapping or of edge-based graph partitioning, the format of mapping strategies should comply with the format defined in Section~\ref{sec-lib-format-strat-map}. If the \texttt{-o} option is used (see below), strategies must be vertex partitioning strategies, which are described in Section~\ref{sec-lib-format-strat-part-ovl}. This option is incompatible with options \texttt{-b} and \texttt{-c}. \iteme[\texttt{-o}] Compute vertex-based partitions rather than static mappings or edge-based partitions. This option is only valid for \texttt{gpart}, or when \texttt{gmap} is called with a target architecture which is an unweighted complete graph. \iteme[\texttt{-q}] (for \texttt{gpart}) \iteme[\texttt{-q}{\it pwght}] (for \texttt{gmap}) Perform clustering instead of partitioning or mapping. Clustering is achieved by means of a specific strategy string that performs recursive bipartitioning until the size of the parts is smaller than some threshold value. For \texttt{gpart}, this value replaces the desired number of parts as the first argument passed to the program. For \texttt{gmap}, the threshold must be given just after the \texttt{-q} option. \iteme[\texttt{-s}{\it obj}] Mask source edge and vertex weights. This option allows the user to ``unweight'' weighted source graphs by removing weights from edges and vertices at loading time. {\it obj\/} may contain several of the following switches. \begin{itemize} \iteme[\texttt{e}] Remove edge weights, if any. \iteme[\texttt{v}] Remove vertex weights, if any. \end{itemize} \iteme[\texttt{-V}] Print the program version and copyright. \iteme[\texttt{-v}{\it verb}] Set verbose mode to {\it verb}, which may contain several of the following switches. For a detailed description of the data displayed, please refer to the manual page of \texttt{gmtst} below. \begin{itemize} \iteme[\texttt{m}] Mapping or partitioning information, depending whether the \texttt{-o} option has been set or not. \iteme[\texttt{s}] Strategy information. This parameter displays the mapping strategy which will be used by \texttt{gmap} or \texttt{gpart}. \iteme[\texttt{t}] Timing information. \end{itemize} \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{gmk\_}*} \begin{itemize} \progsyn \texttt{gmk\_hy} {\it dim} [{\it output\_graph\_file}] {\it options}\\ ~\\ \texttt{gmk\_m2} {\it dimX} [{\it dimY} [{\it output\_graph\_file}]] {\it options}\\ ~\\ \texttt{gmk\_m3} {\it dimX} [{\it dimY} [{\it dimZ} [{\it output\_graph\_file}]]] {\it options}\\ ~\\ \texttt{gmk\_ub2} {\it dim} [{\it output\_graph\_file}] {\it options} \progdes The \texttt{gmk\_}* programs make source graphs. Each of them is devoted to a specific topology, for which it builds target graphs of any dimension. \\ The \texttt{gmk\_}* programs are mainly used in conjunction with \texttt{amk\_grf}. Most \texttt{gmk\_}* programs build source graphs describing parallel machines, which are used by \texttt{amk\_grf} to generate corresponding target sub-architectures, by means of its \texttt{-l} option. Such a procedure is shown in section~\ref{sec-examples}, which builds a target architecture from five vertices of a binary de~Bruijn graph of dimension~$3$. \\ \noi Program \texttt{gmk\_hy} outputs the source file of a hypercube graph of dimension {\it dim}. Vertices are labeled according to the decimal value of their binary representation. \\ \noi Program \texttt{gmk\_m2} outputs the source file of a bidimensional grid with {\it dimX\/} columns and {\it dimY\/} rows. If the \texttt{-t} option is set, tori are built instead of grids. The vertex of coordinates $(\mbox{\it posX},\mbox{\it posY\/})$ is labeled $\mbox{\it posY} \times \mbox{\it dimX} + \mbox{\it posX}$. \\ \noi Program \texttt{gmk\_m3} outputs the source file of a tridimensional grid with {\it dimZ} layers of {\it dimY\/} rows by {\it dimX\/} columns. If the \texttt{-t} option is set, tori are built instead of grids. The vertex of coordinates $(\mbox{\it posX},\mbox{\it posY\/})$ is labeled $(\mbox{\it posZ} \times \mbox{\it dimY} + \mbox{\it posY}) \times \mbox{\it dimX} + \mbox{\it posX}$. \\ \noi Program \texttt{gmk\_ub2} outputs the source file of a binary unoriented de~Bruijn graph of dimension {\it dim}. Vertices are labeled according to the decimal value of their binary representation. \progopt \begin{itemize} \iteme[\texttt{-b}{\it base\_value}] Set the base value of the produced graph. \iteme[\texttt{-e}] Build a 8-neighbor grid rather than a 4-neighbor grid (for \texttt{gmk\_m2} only). \iteme[\texttt{-g}{\it output\_geometry\_file}] Output graph geometry to file {\it output\_geometry\_file} (for \texttt{gmk\_m}* only). As for all other file names, ``\texttt{-}'' may be used to indicate standard output. \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-t}] Build a torus rather than a grid (for \texttt{gmk\_m}* only). \iteme[\texttt{-V}] Print the program version and copyright. \iteme[\texttt{-y}] Invert the y coordinate in the produced geometry (for \texttt{gmk\_m}* only). This may be useful to display 2D grids in the PostScript format, using the \texttt{gout} program, since in this case the y axis is oriented downwards. \end{itemize} \end{itemize} \subsubsection{\texttt{gmk\_msh}} \label{sec-prog-gmkmsh} \begin{itemize} \progsyn \texttt{gmk\_msh} [{\it input\_mesh\_file} [{\it output\_graph\_file}]] {\it options}\\ \progdes The \texttt{gmk\_msh} program builds a graph file from a mesh file. All of the nodes of the mesh are turned into graph vertices, and edges are created between all pairs of vertices that share an element (that is, elements are turned into cliques). \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{gmtst}} \begin{itemize} \progsyn \texttt{gmtst} [{\it input\_graph\_file} [{\it input\_\lbt target\_\lbt file} [{\it input\_\lbt mapping\_\lbt file} [{\it output\_\lbt data\_\lbt file}]]]] {\it options} \progdes The program \texttt{gmtst} is the graph mapping tester. It outputs some statistics on the given mapping, regarding load balance and inter-processor communication. \\ The two first statistics lines deal with process mapping statistics, while the following ones deal with communication statistics. The first mapping line gives the number of processors used by the mapping, followed by the number of processors available in the architecture, and the ratio of these two numbers, written between parentheses. The second mapping line gives the minimum, maximum, and average loads of the processors, followed by the variance of the load distribution, and an imbalance ratio equal to the maximum load over the average load. The first communication line gives the minimum and maximum number of neighbors over all blocks of the mapping, followed by the sum of the number of neighbors over all blocks of the mapping, that is the total number of messages that have to be sent to exchange data between all neighboring blocks. The second communication line gives the average dilation of the edges, followed by the sum of all edge dilations. The third communication line gives the average expansion of the edges, followed by the value of function $f_C$. The fourth communication line gives the average cut of the edges, followed by the number of cut edges. The fifth communication line shows the ratio of the average expansion over the average dilation; it is smaller than $1$ when the mapper succeeds in putting heavily intercommunicating processes closer to each other than it does for lightly communicating processes; it is equal to $1$ if all edges have the same weight. The remaining lines form a distance histogram, which shows the amount of communication load that involves processors located at increasing distances. \texttt{gmtst} allows the testing of cross-architecture mappings. By inputing it a target architecture different from the one that has been used to compute the mapping, but with compatible vertex labels, one can see what the mapping would yield on this new target architecture. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{gord}} \begin{itemize} \progsyn \texttt{gord} [{\it input\_graph\_file} [{\it output\_ordering\_file} [{\it output\_log\_file}]]] {\it options} \progdes The \texttt{gord} program is the block sparse matrix graph orderer. It uses an ordering strategy to compute block orderings of sparse matrices represented as source graphs, whose vertex weights indicate the number of DOFs per node (if this number is non homogeneous) and whose edges are unweighted, in order to minimize fill-in and operation count. Since its main purpose is to provide orderings that exhibit high concurrency for parallel block factorization, it comprises a nested dissection method~\cite{geli81}, but classical~\cite{liu-85} and state-of-the-art~\cite{amdadu96,peroam99} minimum degree algorithms are implemented as well. Ordering methods are used to define ordering strategies by means of selection, grouping, and condition operators. For the nested dissection method, vertex separation methods comprise algorithms that directly compute vertex separators, as well as methods that build vertex separators from edge separators, \ie graph bipartitions (all of the graph bipartitioning methods available in the static mapper \texttt{gmap} can be used in this latter case). The \texttt{-o} option allows the user to define the ordering strategy. The \texttt{-c} option allows the user to set preferences on the behavior of the ordering strategy which is used by default. \\ When the graphs to order are very large, the same results can be obtained by using the \texttt{dgord} parallel program of the \ptscotch\ distribution, which can read centralized graph files too. \progopt\\* Since the program is devoted to experimental studies, it has many optional parameters, used to test various execution modes. Values set by default will give best results in most cases. \begin{itemize} \iteme[\texttt{-C}{\it flags}] Tune execution context options according to the given flags. Some of these flags are antagonistic, while others can be combined. Default values depend on compilation flags \texttt{COMMON\_\lbt RANDOM\_\lbt FIXED\_\lbt SEED} and \texttt{SCOTCH\_\lbt DETERMINISTIC}. \begin{itemize} \iteme[\texttt{d}] Enforce a deterministic behavior across multiple runs, even in a multi-threaded context. Determinism may slow down execution for some multi-threaded algorithms, as determinism requires more synchronization across threads. Implies '\texttt{f}'. \iteme[\texttt{f}] Use a fixed random seed. Suffices to enforce determinism in a single-threaded context. \iteme[\texttt{r}] Use a variable random seed for each run. Opposite of '\texttt{f}'. \iteme[\texttt{u}] Allow for undeterministic behavior across multiple runs. May result in faster execution in a multi-threaded context. Opposite of '\texttt{d}'. \end{itemize} \iteme[\texttt{-c}{\it flags}] Tune the default ordering strategy according to the given preference flags. Some of these flags are antagonistic, while others can be combined. See Section~\ref{sec-lib-format-strat-default} for more information. The resulting strategy string can be displayed by means of the \texttt{-vs} option. \begin{itemize} \iteme[\texttt{b}] Enforce load balance as much as possible. \iteme[\texttt{q}] Privilege quality over speed. This is the default behavior. \iteme[\texttt{s}] Privilege speed over quality. \iteme[\texttt{t}] Use only safe methods in the strategy. \end{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-m}{\it output\_mapping\_file}] Write to {\it output\_mapping\_file\/} the mapping of graph vertices to column blocks. All of the separators and leaves produced by the nested dissection method are considered as distinct column blocks, which may be in turn split by the ordering methods that are applied to them. Distinct integer numbers are associated with each of the column blocks, such that the number of a block is always greater than the ones of its predecessors in the elimination process, that is, its descendants in the elimination tree. The structure of mapping files is given in section~\ref{sec-file-map}. When the geometry of the graph is available, this mapping file may be processed by program \texttt{gout} to display the vertex separators and supervariable amalgamations that have been computed. \iteme[{\texttt{-o}{\it strat}}] Apply ordering strategy {\it strat}. The format of ordering strategies is defined in section~\ref{sec-lib-format-strat-ord}. \iteme[\texttt{-t}{\it output\_tree\_file}] Write to {\it output\_tree\_file\/} the structure of the separator tree. The data that is written resembles much the one of a mapping file: after a first line that contains the number of lines to follow, there are that many lines of mapping pairs, which associate an integer number with every graph vertex index. This integer number is the number of the column block which is the parent of the column block to which the vertex belongs, or $-1$ if the column block to which the vertex belongs is a root of the separator tree (there can be several roots, if the graph is disconnected). Combined to the column block mapping data produced by option \texttt{-m}, the tree structure allows one to rebuild the separator tree. \iteme[\texttt{-V}] Print the program version and copyright. \iteme[\texttt{-v}{\it verb}] Set verbose mode to {\it verb}, which may contain several of the following switches. %For a detailed description of the data displayed, please %refer to the manual page of \texttt{gotst}. \begin{itemize} \iteme[\texttt{s}] Strategy information. This parameter displays the ordering strategy which will be used by \texttt{gord}. \iteme[\texttt{t}] Timing information. \end{itemize} \end{itemize} \end{itemize} \subsubsection{\texttt{gotst}} \label{sec-prog-gotst} \begin{itemize} \progsyn \texttt{gotst} [{\it input\_graph\_file} [{\it input\_ordering\_file} [{\it output\_data\_file}]]] {\it options} \progdes The program \texttt{gotst} is the ordering tester. It gives some statistics on orderings, including the number of non-zeros and the operation count of the factored matrix, as well as statistics regarding the elimination tree. Since it performs the factorization of the reordered matrix, it can take a very long time and consume a large amount of memory when applied to large graphs. \\ The first two statistics lines deal with the elimination tree. The first one displays the number of leaves, while the second shows the minimum height of the tree (that is, the length of the shortest path from any leaf to the --or a-- root node), its maximum height, its average height, and the variance of the heights with respect to the average. The third line displays the number of non-zero terms in the factored matrix, the amount of index data that is necessary to maintain the block structure of the factored matrix, and the number of operations required to factor the matrix by means of Cholesky factorization. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-v}] Do not account for vertex weights when computing factorization costs. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{gout}} \label{sec-prog-gout} \begin{itemize} \progsyn \texttt{gout} [{\it input\_graph\_file} [{\it input\_geometry\_file} [{\it input\_\lbt mapping\_\lbt file} [{\it output\_\lbt visualization\_\lbt file}]]]] {\it options} \progdes The \texttt{gout} program is the graph, matrix, and mapping viewer program. It takes on input a source graph, its geometry file, and optionally a mapping result file, and produces a file suitable for display. At the time being, \texttt{gout} can generate plain and encapsulated PostScript files for the display of adjacency matrix patterns and the display of planar graphs (although tridimensional objects can be displayed by means of isometric projection, the display of tridimensional mappings is not efficient), and \textsc{Open Inventor}~\cite{oinv}, \textsc{Tulip}~\cite{tulip}, and \textsc{VTK} files for the interactive visualization of tridimensional graphs. \\ In the case of mapping display, the number of mapping pairs contained in the input mapping file may differ from the number of vertices of the input source graph; only mapping pairs the source labels of which match labels of source graph vertices will be taken into account for display. This feature allows the user to show the result of the mapping of a subgraph drawn on the whole graph, or else to outline the most important aspects of a mapping by restricting the display to a limited portion of the graph. For example, Figure~\ref{fig-out-ps}\@.b shows how the result of the mapping of a subgraph of the bidimensional mesh $\MD(4,4)$ onto the complete graph $\KP(2)$ can be displayed on the whole $\MD(4,4)$ graph, and Figure~\ref{fig-out-ps}\@.c shows how the display of the same mapping can be restricted to a subgraph of the original graph. % gmk_m2 4 4 s_f_out1.grf -gs_f_out.xyz % map s_f_out2.grf ../tgt/k2.tgt s_f_out2.map % out s_f_out2.grf s_f_out.xyz -m - s_f_out1.ps '-Op{e,g,l}' % out s_f_out1.grf s_f_out.xyz s_f_out2.map s_f_out2.ps '-Op{e,g,l}' % out s_f_out3.grf s_f_out.xyz s_f_out2.map s_f_out3.ps '-Op{e,g,l}' \begin{figure}[hbt] \hfill \parbox[t]{4.5cm}{ \hfill \includegraphics[scale=0.25]{s_f_out1.ps} \hfill\ \\ {\bf a.} A subgraph of $\MD(4,4)$ to be mapped onto $\KP(2)$. }\ \hfill\ \parbox[t]{4.5cm}{ \hfill \includegraphics[scale=0.25]{s_f_out2.ps} \hfill\ \\ {\bf b.} Mapping result displayed on the full $\MD(4,4)$ graph. }\ \hfill\ \parbox[t]{4.5cm}{ \hfill \includegraphics[scale=0.25]{s_f_out3.ps} \hfill\ \\ {\bf c.} Mapping result displayed on another subgraph of $\MD(4,4)$. }\hfill\ \caption{PostScript diplay of a single mapping file with different subgraphs of the same source graph. Vertices covered with disks of the same color are mapped onto the same processor.} \label{fig-out-ps} \end{figure} \progopt \begin{itemize} \iteme[\texttt{-g}{\it parameters}] Geometry parameters. \begin{itemize} \iteme[\texttt{n}] Do not read geometry data. This option can be used in conjunction with option \texttt{-om} to avoid reading the geometry file when displaying the pattern of the adjacency matrix associated with the source graph, since geometry data are not needed in this case. If this option is set, the geometry file is not read. However, if an {\it output\_\lbt visualization\_\lbt file} name is given in the command line, dummy {\it input\_\lbt geometry\_\lbt file\/} and {\it input\_\lbt mapping\_\lbt file\/} names must be specified so that the file argument count is correct. In this case, use the ``\texttt{-}'' parameter to take standard input as a dummy geometry input stream. In practice, the \texttt{-om} and \texttt{-gn} options always imply the \texttt{-mn} option. \iteme[\texttt{r}] For bidimensional geometry only, rotate geometry data by $90$ degrees, counter-clockwise. \end{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-mn}] Do not read mapping data, and display the graph without any mapping information. If this option is set, the mapping file is not read. However, if an {\it output\_\lbt visualization\_\lbt file\/} name is given in the command line, a dummy {\it input\_\lbt mapping\_\lbt file\/} name must be specified so that the file argument count is correct. In this case, use the ``\texttt{-}'' parameter to take standard input as a dummy mapping input stream. \iteme[{\texttt{-o}{\it format}[\texttt{\{}{\it parameters}\texttt{\}}]}] Specify the type of output, with optional parameters within curly braces and separated by commas. The output formats are listed below. \begin{itemize} \iteme[\texttt{i}] Output the graph in SGI's \textsc{Open Inventor} format, in ASCII mode, suitable for display by the \texttt{ivview} program~\cite{oinv}. The optional parameters are given below. \begin{itemize} \iteme[\texttt{c}] Color output, using $16$ different colors. Opposite of \texttt{g}. \iteme[\texttt{g}] Grey-level output, using $8$ different levels. Opposite of \texttt{c}. \iteme[\texttt{r}] Remove cut edges. Edges the ends of which are mapped onto different processors are not displayed. Opposite of \texttt{v}. \iteme[\texttt{v}] View cut edges. All graph edges are displayed. Opposite of \texttt{r}. \end{itemize} \iteme[\texttt{m}] Output the pattern of the adjacency matrix associated with the source graph, in Adobe's PostScript format. The optional parameters are given below. \begin{itemize} \iteme[\texttt{e}] Encapsulated PostScript output, suitable for \LaTeX\ use with \texttt{epsf}. Opposite of \texttt{f}. \iteme[\texttt{f}] Full-page PostScript output, suitable for direct printing. Opposite of \texttt{e}. \end{itemize} \iteme[\texttt{p}] Output the graph in Adobe's PostScript format. The optional parameters are given below. \begin{itemize} \iteme[\texttt{a}] Avoid displaying the mapping disks. Opposite of \texttt{d}. \iteme[\texttt{c}] Color PostScript output, using $16$ different colors. Opposite of \texttt{g}. \iteme[\texttt{d}] Display the mapping disks. Opposite of \texttt{a}. \iteme[\texttt{e}] Encapsulated PostScript output, suitable for \LaTeX\ use with \texttt{epsf}. Opposite of \texttt{f}. \iteme[\texttt{f}] Full-page PostScript output, suitable for direct printing. Opposite of \texttt{e}. \iteme[\texttt{g}] Grey-level PostScript output. Opposite of \texttt{c}. \iteme[\texttt{l}] Large clipping. Mapping disks are included in the clipping area computation. Opposite of \texttt{s}. \iteme[\texttt{r}] Remove cut edges. Edges the ends of which are mapped onto different processors are not displayed. Opposite of \texttt{v}. \iteme[\texttt{s}] Small clipping. Mapping disks are excluded from the clipping area computation. Opposite of \texttt{l}. \iteme[\texttt{v}] View cut edges. All graph edges are displayed. Opposite of \texttt{r}. \iteme[\texttt{x=}{\it val}] Minimum X relative clipping position (in [0.0;1.0]). \iteme[\texttt{X=}{\it val}] Maximum X relative clipping position (in [0.0;1.0]). \iteme[\texttt{y=}{\it val}] Minimum Y relative clipping position (in [0.0;1.0]). \iteme[\texttt{Y=}{\it val}] Maximum Y relative clipping position (in [0.0;1.0]). \end{itemize} \iteme[\texttt{t}] Output the graph in the \textsc{Tulip} graph format, suitable for display by the \textsc{Tulip} data visualization software~\cite{tulip}. The optional parameters are given below. \begin{itemize} \iteme[\texttt{a}] Avoid displaying mapping spheres around vertices. Opposite of \texttt{d}. \iteme[\texttt{b}] Black-and-white output. Opposite of \texttt{c}. \iteme[\texttt{c}] Color output, using $16$ different colors. Opposite of \texttt{b}. \iteme[\texttt{d}] Display mapping spheres around vertices. Opposite of \texttt{a}. \iteme[\texttt{r}] Remove cut edges. Edges the ends of which are mapped onto different processors are not displayed. Opposite of \texttt{v}. \iteme[\texttt{v}] View cut edges. All graph edges are displayed. Opposite of \texttt{r}. \end{itemize} \iteme[\texttt{v}] Output the graph in VTK legacy ASCII format, suitable for display by the \texttt{paraview} program~\cite{paraview}. The graph partition is represented as an integer scalar dataset called \texttt{mapValues}. Unmapped vertices are assigned to part index~\texttt{0}, while higher part indices represent regular parts (hence, part number $i$ of some mapping becomes part index $i+1$ in the VTK dataset). The optional parameters are given below. \begin{itemize} \iteme[\texttt{r}] Remove cut edges. Edges the ends of which are mapped onto different processors are not displayed. Opposite of \texttt{v}. \iteme[\texttt{v}] View cut edges. All graph edges are displayed. Opposite of \texttt{r}. \end{itemize} \end{itemize} \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} Default option set is ``\texttt{-Oi\{v\}}''. \end{itemize} \subsubsection{\texttt{gtst}} \begin{itemize} \progsyn \texttt{gtst} [{\it input\_graph\_file} [{\it output\_data\_file}]] {\it options} \progdes The program \texttt{gtst} is the source graph tester. It checks the consistency of the input source graph structure (matching of arcs, number of vertices and edges, etc\@.), and gives some statistics regarding edge weights, vertex weights, and vertex degrees. \\ When the graphs to test are very large, the same results can be obtained by using the \texttt{dgtst} parallel program of the \ptscotch\ distribution, which can read centralized graph files too. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{mcv}} \label{sec-prog-mcv} \begin{itemize} \progsyn \texttt{mcv} [{\it input\_mesh\_file} [{\it output\_mesh\_file} [{\it output\_geometry\_file}]]] {\it options} \progdes The program \texttt{mcv} is the source mesh converter. It takes on input a mesh file of the format specified with the \texttt{-i} option, and outputs its equivalent in the format specified with the \texttt{-o} option, along with its associated geometry file whenever geometrical data is available. At the time being, it only accepts one external input format: the Harwell-Boeing format~\cite{dugrle92}, for square elemental matrices only. The only output format to date is the \scotch\ source mesh and geometry data format. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-i}{\it format}] Specify the type of input mesh. The available input formats are listed below. \begin{itemize} \iteme[{\texttt{b}[{\it number}]}] Harwell-Boeing mesh collection format. Only symmetric elemental matrices are currently supported. Since files in this format can contain several meshes one after another, the optional integer {\it number}, starting from $0$, indicates which mesh of the file is considered for conversion. \iteme[\texttt{s}] \scotch\ source mesh format. \end{itemize} \iteme[\texttt{-o}{\it format}] Specify the output graph format. The available output formats are listed below. \begin{itemize} \iteme[\texttt{s}] \scotch\ source graph format. \end{itemize} \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} Default option set is ``\texttt{-Ib0 -Os}''. \end{itemize} \subsubsection{\texttt{mmk\_}*} \begin{itemize} \progsyn \texttt{mmk\_m2} {\it dimX} [{\it dimY} [{\it output\_mesh\_file}]] {\it options}\\ ~\\ \texttt{mmk\_m3} {\it dimX} [{\it dimY} [{\it dimZ} [{\it output\_mesh\_file}]]] {\it options}\\ \progdes The \texttt{mmk\_}* programs make source meshes. \\ \noi Program \texttt{mmk\_m2} outputs the source file of a bidimensional mesh with $\mbox{{\it dimX\/}} \times \mbox{{\it dimY\/}}$ elements and $(\mbox{{\it dimX\/}}+1) \times (\mbox{{\it dimY\/}}+1)$ nodes. The element of coordinates $(\mbox{\it posX},\mbox{\it posY\/})$ is labeled $\mbox{\it posY} \times \mbox{\it dimX} + \mbox{\it posX}$. \\ \noi Program \texttt{mmk\_m3} outputs the source file of a tridimensional mesh with $\mbox{{\it dimX\/}} \times \mbox{{\it dimY\/}} \times \mbox{{\it dimZ\/}}$ elements and $(\mbox{{\it dimX\/}}+1) \times (\mbox{{\it dimY\/}}+1) \times (\mbox{{\it dimZ\/}}+1)$ nodes. \\ \progopt \begin{itemize} \iteme[\texttt{-g}{\it output\_geometry\_file}] Output mesh geometry to file {\it output\_geometry\_file} (for \texttt{mmk\_m2} only). As for all other file names, ``\texttt{-}'' may be used to indicate standard output. \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} \subsubsection{\texttt{mord}} \begin{itemize} \progsyn \texttt{mord} [{\it input\_mesh\_file} [{\it output\_ordering\_file} [{\it output\_log\_file}]]] {\it options} \progdes The \texttt{mord} program is the block sparse matrix mesh orderer. It uses an ordering strategy to compute block orderings of sparse matrices represented as source meshes, whose node vertex weights indicate the number of DOFs per node (if this number is non homogeneous), in order to minimize fill-in and operation count. Since its main purpose is to provide orderings that exhibit high concurrency for parallel block factorization, it comprises a nested dissection method~\cite{geli81}, but classical~\cite{liu-85} and state-of-the-art~\cite{amdadu96,peroam99} minimum degree algorithms are implemented as well. Ordering methods are used to define ordering strategies by means of selection, grouping, and condition operators. The \texttt{-o} option allows the user to define the ordering strategy. The \texttt{-c} option allows the user to set preferences on the behavior of the ordering strategy which is used by default. \progopt\\* Since the program is devoted to experimental studies, it has many optional parameters, used to test various execution modes. Values set by default will give best results in most cases. \begin{itemize} \iteme[\texttt{-c}{\it flags}] Tune the default ordering strategy according to the given preference flags. Some of these flags are antagonistic, while others can be combined. See Section~\ref{sec-lib-format-strat-default} for more information. The resulting strategy string can be displayed by means of the \texttt{-vs} option. \begin{itemize} \iteme[\texttt{b}] Enforce load balance as much as possible. \iteme[\texttt{q}] Privilege quality over speed. This is the default behavior. \iteme[\texttt{s}] Privilege speed over quality. \iteme[\texttt{t}] Use only safe methods in the strategy. \end{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-m}{\it output\_mapping\_file}] Write to {\it output\_mapping\_file\/} the mapping of mesh node vertices to column blocks. All of the separators and leaves produced by the nested dissection method are considered as distinct column blocks, which may be in turn split by the ordering methods that are applied to them. Distinct integer numbers are associated with each of the column blocks, such that the number of a block is always greater than the ones of its predecessors in the elimination process, that is, its leaves in the elimination tree. The structure of mapping files is given in section~\ref{sec-file-map}. When the coordinates of the node vertices are available, the mapping file may be processed by program \texttt{gout}, along with the graph structure that can be created from the source mesh file by means of the \texttt{gmk\_\lbt msh} program, to display the node vertex separators and supervariable amalgamations that have been computed. \iteme[{\texttt{-o}{\it strat}}] Apply ordering strategy {\it strat}. The format of ordering strategies is defined in section~\ref{sec-lib-format-strat-ord}. \iteme[\texttt{-t}{\it output\_tree\_file}] Write to {\it output\_tree\_file\/} the structure of the separator tree. The data that is written resembles much the one of a mapping file: after a first line that contains the number of lines to follow, there are that many lines of mapping pairs, which associate an integer number with every node vertex index. This integer number is the number of the column block which is the parent of the column block to which the node vertex belongs, or $-1$ if the column block to which the node vertex belongs is a root of the separator tree (there can be several roots, if the mesh is disconnected). Combined to the column block mapping data produced by option \texttt{-m}, the tree structure allows one to rebuild the separator tree. \iteme[\texttt{-V}] Print the program version and copyright. \iteme[\texttt{-v}{\it verb}] Set verbose mode to {\it verb}, which may contain several of the following switches. %For a detailed description of the data displayed, please %refer to the manual page of \texttt{gotst}. \begin{itemize} \iteme[\texttt{s}] Strategy information. This parameter displays the default ordering strategy used by \texttt{mord}. \iteme[\texttt{t}] Timing information. \end{itemize} \end{itemize} \end{itemize} \subsubsection{\texttt{mtst}} \begin{itemize} \progsyn \texttt{mtst} [{\it input\_mesh\_file} [{\it output\_data\_file}]] {\it options} \progdes The program \texttt{mtst} is the source mesh tester. It checks the consistency of the input source mesh structure (matching of arcs that link elements to nodes and nodes to elements, number of elements, nodes, and edges, etc\@.), and gives some statistics regarding element and node weights, edge weights, and element and node degrees. \progopt \begin{itemize} \iteme[\texttt{-h}] Display the program synopsis. \iteme[\texttt{-V}] Print the program version and copyright. \end{itemize} \end{itemize} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/doc/src/version.tex000066400000000000000000000005511514310134000247200ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Title : version.tex % % Function : Version labels for % % all documentation % % Author : Francois Pellegrini % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\scotchver}{7.0} \newcommand{\scotchversub}{7.0.11} scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/000077500000000000000000000000001514310134000217325ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/3elt.grf.gz000066400000000000000000001362411514310134000237270ustar00rootroot00000000000000‹‹[â5U[¶¬:®D¿O¶ü„þw¬Ðœ’×®1ní»N‚m)zØ€}ýÆn×m1~××uýú÷ã¿þÿµÿÖ÷×õý5ÿ{¾¿ïßüïú~yÿ»Çû÷ý?^ßwîºïÿîþÝÙ¾Kíûÿw‹«ßïßµmÚ÷C´›qß=ã†ÅÝ#n¼¿¿gÜÖ¿_­Ÿøñýo„0_¿ô?¿«­_n¸þ[vyÇ Ÿ2ߥçû¥ ¿þza·z\o¦1nŒúõû)pŽï7ÎFʧý×Ûúm¤øúùÆ_qßm¢áŒnÚŽ+!õ ?_KÆAC¨ç¿1ãç-T £íÍ0÷Ê׿–}E·÷ûCÁïÏ~ÇØ÷ó ÃøŸ¨ãýoõèäõˆ{ú÷ïFÄP>šöè«O:ÑÝø®?wHHÞ¡Ý}íÆ×i‹®ïóF×ï‡õÄX-4 I¾¾Þ(°`ä+ôšŸý6r‡vŒ+€7*˜1xHøuy#äÊþ¾†ý¿1è5Ä ‘[t6ï¸ò×›qDÛ±BÐöÆ­èqˆßøßÿè׸¾v_§ã“ìbÄ5tüîûhÜö"ù­ˆl__{† #,Š}JŒ9C”—×ç_’41lV‹^Gð'ñÃÚ  Xßß(ŸÜaò`ý'ü7æ^Ñià#£}c~ä~x_)ÍŒî>`>™&m{´ÚÒRŸ>Ñ<ð¹Gˆ7½4åÙxÁeÌï"„ë¨ýÆû>sâË}}ÒÜíÞ vܸCìç O”þèe¦¾Q¾V-‚Np*œó»íhï¸s…E}öÿ~ 9cˆÅåg…8¡tt÷÷Áw_Ÿð×Â^a˜…$Ï ƒOÑ€,Äønžtp;JÀÝhy_-äŸ;U™üòQïëgj_7_g=„1x@ûþ÷Fë+^1ö×÷7ÂÛã÷m(Ï×yôö†T;À õ>Ÿè3GÆ;šDowаÙ šÜï‹¢;œ:; Ç×n|Gwï×v£çø‰?¼Oˆ¶Œ[C›ï‡;îê#:»¯;~]¹ñ ÉïˆîןPi‹ÙÁÿV±ë3äóÐü¾:ý'ì …îù™EÖY!Ðiî‹áÖ«ÏË@÷µéê B){½/•‹.üNó;"ãÛææcÇ÷õÄ ÏÊñ6¿Ü‘/¿q_¼ § ©î=X¹¢“ÏaØè·O¤‚ƒYÊFBþÔŒX _"EâZ òa¶c\ä¾½ýV¬wRwß›îÞ±»÷‘¿Ñ0u“âãrˆ + 1pŠZ–££­þÑÉ­Æ/ÐthÔ¾¸Ngá3¡ã¼)P˜á—úÚD¶mB jƒFƾSê+J~l ǰ¯€ÓEo ú’Q¶ÙMäe”V³iÇñkË.¯çè|)kèb\d}†Îû#û"BOõ‚¬ašÙSM*¨·G €’wiPÄ}¤¦`µ¤\(2†ô¸ììvLj‰Û;(*Ô1;êoê:?â<ò–NvT^òR¡¶è;qÜÁwšû’¹ïûK£ó¸½§^Ö0wš8ôdzQ?j­ÇûGOTh‹UÜ?[â:ø\ª¹º@4„€ËžÈ)Ø+·£FOs&ÀÓÊ*»+„4¬ŒEh éo4EËÐçk7o¥ohŠ.Û_GétQ~uˆÑçc[€]0WÇh-ù‚¢=õX©)ü%r¼ï——Æü¢©s¡*tzþK'tнÒìæ™ªKp¸4Ί’q$àÔ•D– Áz%Àè€óÍ/ÆŠô‰Ò8” ®Q¯Ù"¹û_êBØÉÌÀ7újjB À@øÉW¢·E¸rK‰2š`ÌH5,$ SE€ ]âÎf¯°G½b6(ØSßè-wY´=cRÛv3áÄ0!Oȵ^õ‚lýŒ3í)"3eŸD›ºØˆ¸N”0Àh1ƒv x¨;r€%~ñ/žðÍv!:&Ã/nîoa²07Á‚±/¦!ÑcO•b;ús9Ƽ F@é'ÚøƒP pÞ"ÿ Wx–2:@„¤!ñ3KùŸÊ[´C£K90äuä¾?]È¿´Å˳è2¢E··©&‘Cß²VêÆöiÖ"²<8mûŽþ&"”šÚ ôxì[8Îí}c´ˆa]œþ b1Gû¨5ûŠŠ~9C×:qü¯‰-(#~#·¨b,l½c‚rÅüúB[‚3 ,òÆm(9–àÔÇ3Ñ«¸¥½ý¯½EjŲWñês×@¦Eì~Qñj›˜—vå <¶\è=µNa# ’mßñk‹ézÈøè®¼Z„+¼3|œÀ´ˆ¥„HDP›3ÂSL€›F¥J “EÇí¾NÓ†™ÜßbÞEElJ´X8‰¤ÿB—,‰¾˜m[ä(Š£‹îðÞîÅx±þuèKwò„ºX”cöxvÑ~\EXŠcD;lN^ kZA¡{s–9nö‹$ ŽR =ý•%üågd±à’Àºž!ЋÜÃRbv=7¿…y 5TâЦ¹C€X7hP“+SëÅjÆÐ"7õ¬výzyû2½œXÔ‰«ØŠòµÎù²ìùjÆŒþ7Säæ !ösJÄ ab¥A—_úGm&:ø ‹aÏP+[zWÀKò¼úGX‚IBDÖl°çw_,ÄŒ²+Ñ ìpDâî Üå:OÓ&1ÑOÚå㞸wd0©ÃC'ó”K1ÂU)Ñ© ‚²Œ‰õ°‹iC% c˜Ù´Ñå•åÀñkxd‡‚?}?_ê= Åò^¸Â…¬ÁzËõ׉E^Hbu1p 3–ˆPò€V 6#:¯48µD.VÙFÙO+mí6 ñ1{KʬXäz’r\i‰éŒ±.Ç´Ž%—¤:_uÓ2«Ñ´ýbt€¡3¼%¶•“¡”@X,,£ÌWÍàí‚£=¥‹^æ{±7¼/P‡8\ê9ÆÜê7Ä) Ùb%¾ÔÊ7ýuí”{®ñ_ë¶GØfoL{Ðf¿IP¿e~vOÅ®ô”)Âçç”hMu$â±@ùz50ùʽ-ñ‚’1Fæ>d¥~—AÀï×°H`B±*#–úì¦ÀÒÍ,_±¸ÓKtt°ÙYĤ¸:z‰ÀFG{**+H„3bìÂVò]j¥Í¦{š Ó¿®Àïv ´@Hœ‹Á¾zkfOqå±·Iì 䙈VØÕUº[ŸËûÁ[›NQŒû#7B†€ðˆOá~Çrð{Ý+˾ãþ¨B6ªC9º¸,.í— á#êGúyR|Q S}÷ÏAb@h Ò=W±¿ÙJ·DŠåz£\Üʉ!ðYv÷ŠÉµCK6ˆgC¤`ÂA]7[F‘BJlêÊw¶HŽOŽ6Ä»AOßlë6ð5»*1-n:B†++Bâ­½¨â2À‰ˆí°ÕpQ;0g«çòö˜ Û‘(í<ÕØ²ÕÙN Ë„ž§ãɾ}JÐ𥢇ßÚ^`„]?\{DŸóöúô/á‚­=…¤o Ý¹"L°¥eöù&E]· ²Pñ? GyãѾÄöiå_„û0òÚ¤xLà Áz¢’_!Z<€¸¹8—ÙP6zëá¥A™-ì#1žŽ0‹—ñªÇs’ ~6Ê_M¬”Öĸù3¬ó”(¹´}xÓУóŒi ,i0¤ ]ú}Ñ£¤¹²ü%%F‚þþi®XMÓ_‡wÄ7¹N^€ù·¿Æó°Èϱ– Ë>Ù6,FTy…­ßaÚ+t¦y¿D¬%þ2ÇÅu<4Š6 Cñ|§=Üõݲl¡(Ï—R„oõH2õ®äähÁ‰©Ñk;@zK‚0xŒ17$¹Ä`Ê߀:žų ªA£­9÷Šeì–1nýŒŒ¿îG‡z”¢+mGÏX ­ÃÉãérµ~¥é£·påf —”¨æLúPÓJŒ…N#DHÃÒZ5@\]I|z R¼±>w\IL¹4{ü:Vz³ì ¯xÝb–g#éø‚ðˆ÷R.ˆÏ£õ×à*ȪO˜þ!Yý7y1'£·Æ=Mq°˜ºÌâe”e ¡zwœÆýãv¼O¢ßƒ}•ÑCÓ Ô¦g¥x#è³Â ^„ >Öhà¼>kƘ†(4~.´‘MFÀ|‹~VÌ‘å"ú>M¯ì¾>æÆ{!d˜þ‰°¨‚}i_•bIÖxÕ¦-ûH¼gÌ+^˜Ùzo6}íZ‚nìžÛ1º™ø‘"ó»:0Œ‚¾¼h”ªÂc ~í=$^žê[ûã#V¬÷57U“­ï-a jhoå„ñy9Ê:=§¯·Ï“xPË„ˆ|¼Ó…W•Ëw[nÑã=•Wí®Yh Qs‹Š`ľÀë“dBN2ö/#ýGú eÌöÂÙ:˰X)(Ôs,¬ÅKEŒÑ=^àŠ± ézàÉ¿>u² rüŽÆ‚¦ãÎô?š5†±–šæÅàí Õü¼'˜üy÷o§…š÷óºÓÖZ<–'>\ Íx)ˆä3Kàð€xŊק.¤xT±?J½«jH^6âQÓ%L·’w‹—ÒâYe´§”Òl!ÓãUÌÇ“Z|6zšö%ј¯=ÅòDǸñúXÚÅ+W€×»-.ÍÖÜi ‚PòQ>Øð~V¯¡9WU›¯"ÃTdŒˆðcÅ{(ðÅø"~Òu¾v;Eþª€™½ðR—=QÙ¨pøÆå7ôu¾ŒTd1DºlÝRÖÇäA´*ò&â(Ü ^ |Sîþ‚ã ÞfŠî Dßâç.¥ì^Iwè8E®=…c5~Ýí}+ð]ÐwÝMÏ 9ñn`vzf ÆZ™€Ç¥WmžAà|„ÛW‘ ”è¼ µÂoB¸ñ–Y¡@Šðð¦)¹a085¿°?[ÏЯgÆH¬Å«Íç8à\* ù~áH¸ž £¶’„’-yeê‡K~|×+Þþ2*ÆËgl0:îd® ‹S¨;C@GŒ w [¾ñ²(&g `MÈeXH{Œ5£„qV¼UØ)á¸òP¬ïŽE-2³>@·ÐñI`W ¼½07¦«Gˆã¡õ| nƒgr0ôÝ6„‹"Ä q#9Å`˜|‚aa€¨6Ÿt‰4Ä+ bUò->2N›„ÅÙ€bä„GÞý~ E»MâÊåÁ”õTdŠ𽩷,ñë«è°`))q;ZH* v}³Sh‡NØ:ôŠ “ÙÁÂÅÈwöšPꆷf»¹E ú).þ ÔŒ@îQ¤üØÔ›ñ6tÓø ¼¥n0 s„†Ÿ¦3 BªÉ/"P7Ýã2zôê.fw?íöy~V,‘ag¼=°¼_Ìf”ÌøGXwþ2‚(ÃsïÄ’qßlMÛm_N˜æ½éJƒï_’PsÒç/¹¬Å—°Óó é §¹{r“1?éàÙ} M°‹r,ÛÝÒáZÑyxŽº£[ƒk!óŸ1ñ2ÞŠ¼âýåË‘å-k‘ì8ü(j’ûýo‘my?;0,dn†½‰æo*£íl¿5ÿT+ã44›mB¾ö2 d@ÃоGwOÑÑTÛ©eV¼"]•ù AŽ–Ü¡´eEu¼ø]ò}¯[ºÄ°QÌ…b¬²IŒù»¿÷$ˆïncì óð2FLÃJÈWnŒ@Ø8Ë~ºÆøŒŸ`ø†ËèábÓhªoX ”ƒ~ÑC¼qp]ñJÔ€¤aÚùžÍûN\¯ƒémç¼ÙŽ«ÿœ.Å´i÷xK»±öMfC̰9ð\OäÞÈ'áQÁ N^ù¥÷…h1* Îp%¹£Fe JOõÆýÍ^¶×Y·xÒ¼êÍ_GÂCµÉeßÑÛØÛkqÿ(øxÅŒ¦¿ŽÂÊ×ì‡÷ů³¥l‡ÉÌBre2‚ÞW«Gâ£Üê¬]ü’×ÑwôÔ]6¸X!‹9àR3­§°Nô¹âÓ‘!^mêi/›T¸HKžÄ|Ÿùv`ªp°c¦"<%T­é¯óI¡`jÐæ…ÜäS„ 0Ôø >xz¾ØÇ_c,¶M:¾2XeH¿k¸T+$^e®øŠIÚ¤\ŸÁÈÝ‹X–6Ý·×ã…`WX¤Å‡@¸ŸÞ|ÿÿb‰;ÊwÅšÔªÁüâU‘•WWE¨•÷£D¨jEhá«‹&TÈÓ¼ `¼Uñëð*pb.àˆ_§W…¬ûµYøã³‚a£Ù¦©YÔøÑŽoD`/Ú}ÿçwJ Ñaú«ß"„t„ÇÛûÑ¿ zA»6j@ù¿¾ ;#Æ]3Ö"ñŒøå³ÇŠo®´B¾Ux¡÷gÈà Àb ™—ÁÕ˜u“îÖ²_¢3x± )7 ů”™O.vbÊŒè DZ\³ãˉ /_x‡À%ð ™áCˆb>¯¿‚¥ÑlLÖÓIB,5ÂqÈËBĬiTм]³Ë ºþóÁ´ãØN¥ÌÐÀ¯+•ÀÀ£ÌÆZWÐÿ…à 4T6ru8º 8YkŠXƒ±KmCÇñ!Rd†hŽ8#XÄ@q—~¤Qfį`B¤~ñ¥Ðíe ƒÀÛH²¾(ƒ‘¼”Ÿ»2<†Þâ úŒì‘‰È]À<ÕULDBS‹`å¦aˆóuš E¬ç óOƒ›ë~‘²"†‰áV|5IŒûc]Šj?>!‹ï+â»3P »Âðûz¼;£‹#ˆIðvЫÈئkLñµÐçOTb,ØÈÛ¡v÷KÏ“5?!ù´‹ x4ê>$Dèϱnˆº‡Þ¡OäT¾Ñ£´ÝöVÀ·fññÖ '|›º[ »ò´–šò…xÅÇpŽ!nDᩱñÛ w|Z8Ê»ˆi3>ð3¶1ŸŸ±"’ñkȇ-g(më9¶B¶dCèÝGbÆ»ðÑ:z‰O”¢˜*´Ž^¬ —-#B÷xr½]ÓÔ{Ú7vå#ë«{ø{öÜ~û•÷µW ÀÚoá^¥¤§7-Äh`f¡éøÍ”íûÿc*ßý”Å"Ö¶#-ÇòþñxïØ‰LXYDbô×q@&²£Å¨#äAÒ–úC{êAUç§{èn^úî‹L½ã=òA¯:(Jð§ç2$ßÑ i|c€ßÞiÑ=>L»¨ôÄ'Ú G§ž‹ Ù"”î/V-Vï@ãNËF3{å#´‹ÑGiè¯òį18áѱ´Ÿ‚M«<O¬¨“E.z‹^žÒ.pçÃÚ‘Zbg‹+—÷‚nj÷·¼ ÎÈ4µsÔ˜¡,EthŽßh¢ ´¼/îh’tÛ<Ê÷óUih3:FŒ‘ù<[#éwϪ_ã<³ ¯‰¿¾ŸoœÂ:QI="ìWÛÐÇœøÂ„µrË=V¤Ôãk·¢]O}ˆ[H;ü5zDj´ìÉþ@&zMYóÁ7"ö\-”`¢8|UûdÛÉR³§øÜx÷”Òoegbð&Bø¬É,’]SÒq ^ËÌ AE6X=ˆ¼µã«êˆù>KÄóîøbõ˺ñì»+ªF¾ËQ9*&úþYp½ZéHrŒÿ½6´ðú*‰HÀ›ï‰›Åë'¯GqÎOêYE‚ø´÷ÃqG¸~p$>@öÿ,O`Áa6€Å2’J€$’ÖíX@ƒã D|J=á(¯•ô¼? „`aW>¥'òáÖå=‘ä£tXe¼i±¯Ä­LŸl¿ô“ÿÍ1xJYïÅÁ_z¦¼¸â /Éþ¢ÑŽäø¾ã ñøkôø 6ÜtãíéDd.?7k©Ý«ä Û]ˆÄÇà ]~Ù_|ôáþ;%Ž"<ž¨…£—xá€9©ˆ„ÄÙÈŒê Ý?™BKzE¦%Ù«}Oí—?è½ã«ë(\Ð’+1øzØQ‰GêÄ HŽñfO÷7ŠHGޝ¯¯$ŠÎqoôoH3]<1òʇÝQ—²ÓÓ¨ :ýò÷ºãá°|[/òè óýÓîRÊ[Ùï ¡YŒqw{DC%HDâþ»táËs0}óמÈDñ¤vÁˆ¸·qïã=íöW$æ‹nFB`x•Ñõ£­GÎø~þ•Ù, ‹v”ÅÑæMÔ/ƹ´CüÚJKx‚½³§hwì~+µ[ÞߦÒPº©Ýã¯!èwÕ.t‰¶nн§ç¯hi¬Ê4öÞøu¯DÌ ?ÍBË›B˜Þ^Gí3{ dØDyb’±¼Š\H‹±õÂíUt‰‰+­£—Ž\¿\1Y±5AlrÉiN˜4†]£",õ°sBÍqÅc›„–ƒÄÿtŽi(ŽYÌÊTµ¢^e-ñsª'ĈìΓ(ÍJ¼J€y! pÄ5NÈÆÆ!aH󯑠±"Æ=q¬¬U_„½'ÚmÖ¸yh„/µ0:$¡n‹:$Œ×˜‘ü æ¸7Gnä…øß㨆+zýæ]†ûâk³¨ãm&¼Äûëó+ì3FY4ŽíZöš£ÛÈ_‚^„BZ±ŸÈÊûAì—˜Å/ltÑ•l8ò«Æ±aEŒZYÿE ûˆ|%0]<²£·á½+ÇwœI£§×±XiYŒþK×FÄ8Q“‡¸96 4B¦x?n¥^T†üEE9rœÐýÑ0Úå8hJx »R÷g¯Ø|CÚè)f´!‘¹`úŒdL‰¡{È;¯ RѦqïá”9EEèî±ïGüOêÑ!zˆ‘ÑÃwáïÞW|ýŸã󊳮?ÒVlÎÒ•a*Ñk?ám1ÚS°ÁHìŒbý½”óêØô‰:¨°£ à XDßËÞÀä-­»ùÉ»–>~QB„?=qW$æÌêxçý+Q&E€EÜw¡òGÿ¿¢vÝ9âÛ¼Š–Ì$ŸÆjÕ³ãUð×9Œb$¶4é2˜¢„u .Db{SŸ|¬°Ä»Ó±EO6ª!U 7d3™/XÅÙ“Ç¢»Æt»Ü å—ÿÅN'3ApÏ–Ûaã×P hüh¦ñ²3ñáû'_ÃQ7W ႞Ï~¡\¸“…àJ¾Þ ³‚xè}Ç£Êt€Y^ž/à N‰±"KPÊGî¡Ìñõù6ÆÀ,Ö¢7D{b_—˜àw&|?k¶×­^¶ï»R÷ D,qVwaeÔ¼Øçæâª âMÀ™(Úco˜æÜè”tÑ_ôû\y?p` øþwß\,óãú¦^ÛLÁ|™©EäÀ€nL£ƒz º¦á¬4Q\"ó$ôíî•R„äÄK´‹ÌzK´ËXÌî>«'—k{‹uÛ7¶¬Á7bUš½kBïè÷¶'õ•G¬ÚíèàË®9 òýÿˆDwJaqÕÍÖo\}|>³v3Ž< e'3ãNw]HÚ›ƒ…ŠQ•¨^ü“¡Џ‡½wZB2‹éŒò!œ[ÿÃ÷ÜXÀޱ9ZG/!\Œ>ˆ{ñ«76:ê.zÏáICIûT ÃGã@>sÛ#Þ¥a>F©©IŒ •¶ãøilZöê-4µxx,L‚rl<ƌ٠8E(ÿ4O´Í_Ñð=:te‰WIÑÅ[7CgÈÂB?È£Y`;ìÌŒ$A4öú êE)0cã'Ü ¢H|‡v¹¤Üì¡olÑc²©e_eŠqÐ-£@d“¥±Í||íâø±pÉ‹=¯%c$±ax©:óÎ@ KÀƒÖ¯I.èòR¥#MX,ì2Α–ƒ7 W.{]5èê÷Ï­&”ib=õl‡uÀ£,¥ÀrÀ z{5zŠv`‚máLÞ¿ºXZêF*ÿì¹0Ÿ DøA÷1FŽãºk û¸¿†.}Ø'䈾_¶ÒóõãöTw|ßßuÆV¿h5ì=½’¶f'´¼‹å?2M”±W0c™uö#jÉ“a'®ú!¸ {[©Ç0«šcnÚ#MªY\EØ|*¬²G9C,†£ö‰Ï Ú-ârË ‰¨Ôì dà))6ÜzµIxÛ¥.QæK›P¤Æ„*âIÜO<¡^ÁˆÊc€d| kb;»°ý“8Œ(oA!ô`W=,ñKÛE/Dåïà=¼á‘Ìÿ¥Ý¢u ÷£ö[Úúe[ÀÇô¢¾ycc´ êÔ9¯Ÿè,¦u”n_$ë䘈¹ý567lôÆ®?W$–‘?ÜdmÌþÞ´¡º¶\Š @îÞwáïGµ0…+s€ù”Tð•Å"¤ÀĈñÓ0a 7$À=€ P°Ó{cz¼óJ½\ŒT¨öaðPð-A{/¤yc‹¸¨1Ð,ämA˜¦™s_¿R½ãFGBøÐ î2¿‘Ò.ÐËâ“×Û½ËØ+Ž·àÁHÂA„TuoÙùÝ Ŧ`E\‰¿õ¢iD 3õ…àx¸Ûh¡ä½i#x2jëÙäàAû¯Ÿ_Ɔ`x¨¥Û OŽx[¾@AÜ›Dý𼞞çû”lŒ9ÙÊîv±Áo*ovÅ»U®uÅÄ—H*áöŸ£‡]I.Ì…+„~³]ÁSPBèè #Èîty6µ 8tð×ãDÈ|p†_BýöfO@OzC@5^¡æ 8† ˜úV. ÖØcÑQß1lgaA-|$€ #¸ñÞƒ ÃâÝ^ _âíeܘãI×2múÓ/ÌØ-®î‹ýìboçHš›R‹ÑšžØ„„PXFï1Êã«ãPã/!!]|¯’½j>¶Òa•^¸…B“™øXåöìŠGÈÄOôCÿéøXøò¦ï±•æ0ƸMä•~Z¬KûXæ½2è‹Mˆ•Û/ÃZÜjµ§ ŠJ—BGÎá^ÿ+¾g¡Iÿ¥G„׆€|Æ,€Ñwˆ TòÏUCÈNIƒ’xžÃÉ.泌I{‹¼ Óݨ†Âÿ²Ÿ4,×·H‹­FGË;ýáÄ|¬»â&uiíê®§Oé¼®’=(c…—ç?¤*ö'½Ø4Ø­¸nV¿Ë8ð[Íá?'/ qe?}·xÃÖ°O!å{?*L“°óQÍ%ÈelÕøŒöVSi  Ý-œùÔSMÝ'>3á![Ö^¬wäþ½4ܽ†oNáÙþ€Å‹x"Œ_¼w†ýž~é¹1ç‰e‘×®u³+²P€¥ÖÁ„­„×N*³Ý&<ì§ØOY‡L¿…­¥‘‰³ØFÅðS Ù3ªÔ&ޱn ¡ è˜Ûå”ùéMÛ{Ò„ÄÔÙ` ?à•û°Û¼± ëXËöÈ&ûˆ¦µ̔ϊøJP­y_.Ýa•hžŠ€$z‡Fpß,IäÀJ¢õ(I$…·SÏÞ'Ö˜~ÈzñCž¼pŠ“ÛVŒÀXdú•²¼5i An4 R ùú;Xñës:µWƒí OlÊî®õlÇtå1­F%?"šVÑ`䇈«ÒNjOšƒeœÏ@`#6´þ'X"?…É£Î^ß%5Gf „ÔHýÊŒC'²jÿŒzÍþ÷†¥‘úÏä>ó#¤ ü¶”:NÙ ü?›Ž;=–MÏÁÏÜ«yŠÈUòk¿ý;j¼–!ªgBÄFÂ(õ,ôu“´D,^§á«»x}%ž¸óþ‘4æxÏ…!Xá¤né~ˆëñÔ¬b.…cfÿžYvù„håSAòE“èñÌ+[—LÙp³*=©‚À`žAŒ9‚… ÑÿRà®m²¶.tžÙ4˘òVø t0¦ {ü‹i¯®Û<èzæp¡§¼0ˆÀÉŠ;bìjÉ3˼,ñ„sUמpc´™ì{ëƒh ¼oÌò¾'Q© ã‘ãÔ"£ #­PÂVx žIÏÓIn9£®»$ଚ ¨Xú6ÇýÜÑW¥ FÞQT¸†‚ó¼‡öД|ï–îÉÛQrõD¹ò¬‚«çÍ’ ‚§¿\…a?h- óð ºÏá GªhžUüu‚ÉÓ9OÑäý¼þ;~ ‡ÆU Î¥I´HÔßó`æi*—'×Ü% ©“r~MyF+…xÖ@O:J¼Ü–¨"0óøn„°ÿ^²ŽUƒhü,žÌlæß ÏâÝ¡ßá4BÏ»ú9w›nãÆ’nlÆCõJmÇaDª³¬ÈŸ“®Þ™Ã²¨r9H^¥ é^czjÇÅ%zZýþt¸«b:Å?»ÿþLÿÌUziLyÖ¢s–èšåù T^0šø´¬Áì”T{‹à‰žUdÎAÿ»„$û¼¢† ì§\ BBd%à!šŒ‘ÝP v¬«T“lº~;ÄÐun÷ì˜NS® A|õ´Ból¶§àsb¥HE–¢'‘Û¿Êÿ·€¤¸C3 RD •xþC€=ÍóâfQÁŒ«÷J8Ø$í©©Vù$—8LFÐ]$–ÁMŠ$D×èj¥•Z6õ&¡ÏãÍfêÊ)-*!)¬8Uàâ@2N€ëSóH5ƒìÊKÍ“ÿ,+¤ÒÈHÕ<[î/Ü+?%жvBLN7#R4ϺcÃ÷§VŠªÕ€3,ÄpítØHô¼Ù57eà”Pr‰ñqдêN,9–EhdUæŸ7‡A¡Ø÷½’¤Vã¨'V,8%ŽÀ-¡t "FÀ`­ŸØáœ’±•Ã_MjùJVËÒ¨ïbßA¢ßûæav£ÌÍYxT¯byý*&Ù0!‘)«@#ò]ñî­‰ÆWW2Å'h±Žóp¾ÞNvÜÎ’sVœ¥ä@Ù'ÄoÓŒ½Øç<(9è¶Ó‰ìObŸ  zœ±Gy—%>…§{¾Ü:Þ•1tUuƒõÖ©¬jíîÎÕWã—Þí:,Ä‘3aÊ·Ôú-À=,€¦:–‡¯]ç×¶³iZ×sûä ?§4]¦»ŽÂ£•- µ:X±H'·Žÿ;žÆùxš¤Q‘nÆ*À.Yñ;N€,¾B´Kõ|.À|ƒùèËa¡£f·ïä»VŸƒ³™U˜N’%Ä«$—/$ÉDSC•4`«‚8lçÁZV›B¡pÏQ’Kµ<¤ñpƒÃв,•~«GM0´öÊ£WÉÊt|ü]‚tpRð^û„ ¬[½ui _NÕ•©æD{®?£y>&gË>e¾ŒÌÝ«ºÆŸ,G¤²"õl¥¤–•÷é3kI/²ÂAŸ³´V²<ß*}sÕ¥õi¯ŒRO%D³;§¿Ã2¤šˆ+êH€,,áTO«žˆÀ€$}ð¹c_öì®K Ö3è®ÊrÄ®}ò™3óäÝ…šþ0óüHÈÉ›óàbGóTF¢c(ÜW«tu@›uÕRJkõc(3HÉD{V2HÀ_¦¥ßñi¤<)/›Æt]»$Q ê]Bè飌z›[–žù¡s\-!C"Ðn5´l'\9cmô³WäBB‚<Éaƒ¬‘¬•I¦nÍ/0Ûs÷AåRª»d!\2ˆ‘ŒÅ¨û-Ñ0ˆå·0Ó+™xÀ³é]c5äÓ}å°§œE+ê„Ú‚{£U¿ŽüŒYú­¤oÿ3\O"¿”^Nª}NøQ>ÝgUS„Ô‘2ɼ•5wÍ ¿È5ë ªÍ©­q ǵIt9ĵ«”Ò Åà†òR¦›àPœ¢rvRï¢*õûÄ^þ."!·>ä!ºWaL­ûüQjÿYsÚ ‹|ÖjJˆ¬$:Ùvü;}Ñë{††2¼€nÑ|#iQ’Üpµ¿dFœ ¡Uo'bvNÿ#lác@cìòaa‰AZ )¥ôÝo§jÞ$ïR¿žèž}¼Éµ uå<Þë(©_¤èOš¡ûôî©ðäó I:/N^URú|„#ÐzøôŽ<±±yL ,Žã’ÅNÕÒÆ¼)ƒq¥š]‰qì¼›¥JKC= Oœ;’ÚÈk/'(W¶w•Þ÷›§1?é1“Þω=âé o§)E•lH< ©8¾™ƒ²=ÿ;ò•Åh‡« ðÛ×_©ãt”T]¶¥|o9+§hSàç Ôz<§_—éûy¦ô(ŽõÕ«b¿¿ˆÃ1Ï«:1öèhr,Æo³:Ñ&œ,©žC47oÇåœ9I4ìÃIê÷¡\f‚ӈĹÌa©då)Y3Z g~†‰ƒì{aÇMÃ*N±fhkQ~ . Ž`öHø§&dI*V¦®’\gIäFÅ,äáØk]ÜÓ{!Ǫ÷êDú¬cYc1¤™WÙØƒK%£ö–’'=dу4í9Ö«âÈ“ÇrÏ"5‡ªc™Kk9תÇòäÉ%ÎrüQ¦¤öG‰Û`#èw6TŸoÅ ¾p-‰gÿÌG0ëÐÆI4ã*MoµÿU.“” 4¹MÂ^Ÿ¥ÚØ%©¥Â±/zåëÛ *­»Lw¥«ì wèBö ‚“ 8‡ž¥º²È•“#ÇÇas—ôRvÞ¥yD,¸—V»î±ÛF¯_¥!3ˆ¬Ò Þ…}·bÕ­Áð<¾ ô½ˆ8V"] °ŸGFÃAÿSy‘œ3å‡ðs€;AŠñöÉ‹IåvðbñÊ žÀÿŸR_Òç©ôÇ7èšóç­+’ªO…Œºß"eÎúž#§Qã™VÜ –HŒ®«¡¦FͨÒÞ—Û `F¯ËÈYMç7¥ Êñ{¾XÌù7¿®#ÕPRÇ/nje\q ’ý¿5*ùAäKÚ²÷ÁŠ$¤Ëìž·@0ŠHµVKLÀ;Ø›Z=Ö¬ÂGÚ?Ò8 R•ÃàN ¢˜ÓL±:òJÈñG«= $& wP7œ"'foE¼8³"…˜ !à |†4‘!¡È€â‚K€¨xF8m4¸\èuÉãß %*ŒÛbd55T®B{i-kÒàå·_A#¦e,F¥  ©—ןê•\Ž~²NÀq>œ®‘ÐuCëÅ·Š«Øvß„ê Ïo¶?Õ¡žœ]¥­y‰ñ*!µzÆÞ7³GœÚ¡Õ¬¥\‚S´zXÊz7ÿJÑc»å Öۚƹ ¢ÐX€é0-òÉJMƒw^:ùs(Y#aP©õ`eK,yPT=˜ôɳyÝ÷áLà8•ת-™p“ ÑYO0U ß‹&«nÒæÂÁ½/ñk”`Ú\sÍ ¨3wÓãÖuýˆÀ€çx¾"¸X2œe.Kß›uèLÅÔApt­º“  ó¤r‚(å9÷^cÓ;¶2äiùë|\‹=oöN?i;&_’á¹{áOé‡aB­hëÖå" ¦¼e(„&Ðâ<ÓËÐý5«\H ÷[ªI§ù;µ)IÕx§Bf[®ÛÉU–n½$•³º™‚HÄ©ÌÙ¾•™yMžN.;þ Žwb•q§ýV ŽI$šÆÇúã·Ž©ï-Eõ›äCExFE·MZ ¯’Q>f,(÷(²j^ÒØÚ¸Hƒ T˾e Ä|„´dñSTßy*§V« êó¨†&XÖ¿ù52Cc^ÏÛÊh‰=‘ú]ZÖ뇔ã)ÕoÒG#_oðI5åâ¨ãðw )3Ôï®™[ìÓnMË ¿w†|SÒ.ÕçN÷W„óð!+7Š:Äêðí2Ûü•qÕÕKë…CL² ¨é h/f+­¤j ü–—#ëjE(À( ¦wTywW"« lf @`¦u ’0#²Ì#º\x¼~W¼Ñ±Šµµ÷Òj¾%š\P’öÄB­P%}çÜþÃÛ`Àu»§$ƒÛ±öÁ –’Ê‚Të(!¡ûM‰=lÂ:÷Ѓ€舧ø’³®Lpñ¡û“ê|À±³WSn":MV¤Z$Œè7 Y@W×ó>a€é¤ <ŽýX´À=óýq#޽Ð!|©&©wØI¼ JNË'Ý7ß§ ¯ÈZ\O!­W2¡NV†jœ´î,EÖá! þ\%ÆUz ¯}ðÑuÈ£Zþ •µ}zÈ]b\õ•œF×ãJ¸ë¬B|„挵ŸXÖjP äF–õB®qÓ[¢ë:bÝO´A4ÂÔêé0'‚` ¼|FfCŒ²ÁU*¾øŽ°èbj³Ä²~l~[™) 2A,Tœº¨½÷‚+›D9¯tÅɨ¨c)5~ð36h•nVû¾‹œ$ˆQ_ýÃÓ£Îû‡®6ÅH°2à˜×¡ËdŽEÀ tÄ.ë÷„n 7CþNŸÅ™‰ãËd #Ó°I/|ôIž2 2¢=Çð%_Å›¼”©§ëtC‡dT—XZ…¾èõÝ5¾œW4̽[ª>¯ƒ»ÇxÞ8 6±Ÿå{ò91¸8«\q‰=RóIz„L¡| 'dâOl†gõ|ù,ÓL@»I²1Øé¬«‰t“ˆ¢Us¾ÈÙKOÙ£Û¡n(>)<Þã€lv£á⌤4œÙ!ý¨¥>“`«G1¹J¦EÓKgv¬;ñCL’Î:Ô˜7•Ò‹y«+iInj%°î”æ®Àƒ@q–Qz’E·¬ÜÅÔIŠÂÏÞнƙX)ºœ«g¥Ôq‹B$g¤éâi¦8¶(‡« éI3‡Žã“Ò§œ4ŽðDo«8¥[?é:¬ŠÏ™=|nm¸ÂSéºõÃYñ—à÷¤Âõþ¤Q«¦dåÒt&¡§ÑÞÃgå‡F˜¦] ¢„Êœ¬éGu²Ò õèÿ™«3ËÈØ TO~ä” ?þ`¤ÜÄYŠ4½ŽÀ½a-x“PHµKt}VH~hIõû#D\êwu"5x€&`£×øY•>ž™V9 pÞñæ›^1œœhF`ŒÄäÐ(q%—G… ™;{–i&~¥š¬— Ð7B´yéÚqšÑG ¡A·×[Ñp¬ºIB1yJ3 €ëa瘣šJãÔú*ç@ êW ®T÷ÁÂÈ<\´=ó+SJ†nŠcÿ³ÈÁV;„‘k:o ¶f Ù,ÿ),f+!$Äðú±ÅºÊª––i•»hÂÐë)ü­zE,#–8ˆ¦·=c1*©iþ±Ö@-J˜ MÖ]Ó4OÍàH.ßo)i˜ÌlTµ,M=9aJýŽbšµJݛɲ Õâ?³Œ)âæÓgŸ,Vä4%®³ôõˆ€ÌZüÔV«‘gÎ'ÉÐø‹2Ôº\TàUëýÇõÛöÇÌ‘¼ìD.ëf”\á—‹2H~ˆ´!»æÐq²Šò[ú:Öx˜q«ÉZ݈¿ù•2Ôdmü.† :±¸|I]ÑÓjŒ¨~H –_¬Þ•Øþ*fA¯”2bYœ°¡’Î{:ÄNšÇ¹O R.©ü9­àÊ~Ê5z:ì*ƒ j敯UƒH. bñpÇæ@8ô[aV‘)UWr/2Écïò¦Â‹‚|ôi…„ä{¦~t"2Ró‹íÂOŸfʾ^ðCªTíJþ Z“UNÂÓáTýJÕß•øØÃŒw„˜ÑBŠxQh&}@<÷>(°pÈrmì‘nPp 1ã­Ì SݳT‘à 憿Á‚Õ‡®$s# Ü£ ”ÃÒ—­Xxðp(á±ýN©ãL.…Å›ÏiˆMD©8Õ©¤Ü+ ‡7ÉÙÉ4j Pd¦||gEÖs~{Éút„Õíœé%ÁïÔ:ÎKªï$Ø[Q+R;÷V>³ÐU—zeyÏFJÀj­§þé ^‡› ŠéîÃÒ'¡i•€IÅML~‡@Ð>ô‹ó?Ê•ºç8جëÍxìÐW¢ÍÄO‚?rû=¥Tx °Ð¤ÏCýˆ`GœAÊ )ð– ··°€Æ®C¥ _Õt\Ç™ a’ „"· 4ËéÂ{ÐÏz¼ãKþèš:ª7pºcˆaÃV¾æ9MYQL,øO*"ש$7Za0‹50ɱªúëÐð®:Îw’Át=J ¹œ4¹Ë9~¶DÚÃZ’A´³@ÒûoR=®ò66ÿFÝK«AÙ T]æ]¢5ƒ!!ç$Èæ©ÑL$gÎÔÞ )J½Ž‘¿ÙÃ>%Ä*†Â/袯i¨ƒif/%t(?0¦œ0ÄrPlšésâþ¤}f±j=5ˆa!% ÐÍQ 4ñúUúãðܩÎ?þ¦Ðî×;4]„Ù4Ý­VOÙ"ò˜ Cg!¢©¬!8:1Ðap8P]£”̉²,^f¾‹ºÃißV¶ )ÐFrü«` ϨmŠO£õ[JH}R–óÏ«ðY ¯»PÕu58ó+ë{XE×× ôE¯«×øC'üÕª?XÚÆk˜â¸0-k‰« B¬ƒ¿Mƒµ3 CçäpCrȦF;uø¸SêU0ìVªé5Š \ ‚/øûc8}K5¹®›Ã;ÁõÖ.®öDe•ä}ºó!ƒ² )y>­®Ó`³š®² âÉUÂàQ#š­•©) ¸iJråÛå¨Nr‚zé‹^I©Ã‘|„î=í]†OÀÐ3´„P*~|×svð”-÷<¾’SHû_% ±jBrRZ€¸ô¤­ŽK2 aÐä)± 0?»D—Ë9Ó©y7¿NÒíÿIÞn‚ ÇtNB“†Üt ú•…÷Òê9„sºc pÀ€æ>!Ùù/àÓÆ qž\)ø—+Rž3Ul) ×è=wêæ)ú[f$¯¿‡Vå’FЏdpJç6Ñ´äÊÆ×åšn*CãŸ÷©AäªÐ2–¾~•:ŒýË5y«Nw¥›Ü ¢ÅyB¼}ªf_Ñë¾H:´úËÕ+Eß„iY+~²†·}žBþ(¿|'5¸I#û ¸¶`Àz×âá›1®ÅIfÓáÛ-É¥Ðú¾ ÝÔbñÁØ<€_4 Wâ8­$ìN,Ë8¨¹‰øŠsÈLq_ÈZ„² Fd‰ÃòPÝT¬¥QÀt?)z*ûï‰à&[܇©µn0R´80§B[@i%D²šÝÄ\²#i’ÃácËF ¹Ë–­§$ɪ,oŸœÀÄ‘&Ÿå‹? I4|þmkœ È5ði#‘L×ôìÙScgw'M退¿Ç™Íd Ás•èr1i~W„ÂêÜ$…^.¡õSøép|WdåBHFþ§HdÊv-Jêà&hÝŸC"ì#uк°f‘(k¨]ÁYÓp/üÕA•€GÿWöz Ž›Ð¿¾áåljӯ(ûེšh«þS¤cNÐþè¹£¨}ÕMÒø’tÑjÜ%ˆ>ýWì”±RÇåGð. ²j@1 ™eãoRò´•$–UíwHÅУÆ:*¹¨ýK#á;¡ Bµ]KU3ìÍB!QâÎQŸÑ_÷Sõ]y\Ò*(æœ.›ÉØ{÷ôL™M{¢ÐÀF1'§šxF×óÞ’,‰ ¾îéÎþ¯’zÞ5’ž™uTM ê:q¹~ÇÕ@-ªˆ8±øñþŽ…°—I~%uZñhW/IÏ…~]u=Ÿt*WöpØ.KÚ«\ÄiW©¦{ðº˜Í#uW“ßa È" ®¿Rø ¾ ŠKæAUFÃuF• )Ð]¼AC2â2ŠÿÊü!’¡4 c߾͹%¦‘-Þn<É~ýÆí­·µBGVÓ/–y•ÞÂs·’Æ’7YÀð×QŸë©c+–Eþ9ýey}Õ¯Dm€À9ºY¥B½8Áç~Ik¦-}ÿ!¨˜.î¿(@‡tg!©Ì%R'[ Ib@™¹ø:nûrëÛ#æ¶#V®ã{v1˜X‘à ûVY¾Ü°B™äƒ¢«ÛòÓ’E±¤Q\!'SQa%½:IðÍé¼¶®û;Æ”uô¯¬²ZÁ"ÿòIóå:uTl—îªÄò‰ƒvF fû=ÜÉôÊçÃdì)N¼œeqpf|ùŸ ¯ˆÚä9´rá^ö¡&ÔV*¼NH¸ ë÷ܾ’ñsm%£,k: :ÆÅˆ»q¸ÚýKä.ÄŽÀˆþI¥•B¬cÐH“Œ¤æº*É3JÂP‚•µQ~s;Ëmÿ¹\“÷ウ\$xÑê˜F·¦Ä}HÉ¢§-ßìüaià=~R9ôN„p¼8t,CºkÐöõâÇ*Æ*u!‘½hø&ªF?6Ó{Ã[✻tá™]ßÙáCd)¾¿8 KfÈ/¡¤¹] ÈÃÛRoºÁ?‚Œ˜-—ZÂ¥ìø÷€‰‹Á^J£Øe¢ù€ö8w„sà‡=&"ú¤ÄyFþG›¥Z:¾³$-ÇOv)Úœ QY&¢ ·©O|ÞTÖS±â ¿;În,N¦Ï¼µâ5í`-årUr ëa—³$mÓ麿åXÎØâ EIwL]áúJ…eß“£ö‚±`éóæ–÷ÀØžTMж2-Aìù¤Õ<Ö4i4½•’ºûFº—Éøþøà…jîjÒd©,¢Q?è&ìA&úÜnÄwåôgó;Nƒ ×Kw‚Hï.›+`rˆ‘"ñ?D0|'k(Öz(ú"L¼ˆ¸-ÿ~ópdWS‰rÛõUM|¬Ë68U…@éY)P/ËÍ«šê4ú‹A¼NäŸV¨¾£Â“••ø Qo$‚"3Ùt_‚„‹¡8‰0Íá|- ‰îº j:IÂ3s¸ê&©O6&¨¤›`$³íº UÝ[@ù›_×AUÿ•íÐÀ€–^­¼¼—Vk—@ˆî¤Á4‹ãâÒÉÖI8¸ˆrÀðÔíO[jÌzóWû‹Æ»UÃבÔj ãiŒJxÜ'¼»LgѾÄη¯€.Ý> éš9~/7 <}Oøö¡“÷ÒŠHCàˆ@Ò¬åÐ:¬saD ‚%©.¸Ðži÷N7z±¬sÝ”7 b‚š¾*ƒ$X¿Õ¿4"m?Ô(ûÏ M›82ÆÇ éòG|²¨4ñ:=ÐÅÄþsÞdX9Šb£å ‡ã @Ų͂ö?«Wr IÄñÑÞVòœ'-—“Z<™NÆæŸx{«”!‹ŠÄy–äÅ.ˆF•},¨gÇ/ »+Ã!€SÖ’¾¨þüͯïQÓÍdØ[€£ÁõÑM~'F€ÊK¼ Iß Êlu'y9ÛèÅ«0çL®=:o»üç>KÚ*‰@‹¯IV-&›/yñýs#ƒÏ¬Û”Šl ˆ­wµzIôïŸIX·w ü’<å_BwüæEþUöñ‹ \ÔÞÌŒð"õS É*ƒ|ÑMœÄy¿ÌHÛ_6M@z"ˆT/!û$`æÐ'ýöå/øŸ‰$¼•8pè÷ .ªþ\‰jú—øè_©ú“X0ôK^5ïòE 0JdÜÕ*ή%éZ‰úH7E*“ÙÒ#¥b¢Åäåólª=ÊÆÜX$Áô…S÷ᤵ?æâ¶ ~I¸—Þeû™H¢Sņû GOɧv:HÒ1­»Êš *ñ2!ÞUœàîïªÐÊy²w (æé®úñ ÷ýŠ“ä*ƒK„’KQÁ‘¡ugÔÐñ”½•a\bõ=Œ8™+v¥øóŒ\‘®˜‹„€ê÷±Z}ɬófiÂŒÿ¼9´‡&uñ*öÙê³HìdÄʆäu÷ ÝÎÒMù< ¢“DZÿ¹Ž®]²o"¬æþ`úÿíõc¤†¤>£HãÒt•jpéÊöW!¡Û›(¹œ‡¥×Ü¥õhÇÚ©-¯¿ÐÚ8¿ËjÐç‘’¯£éX‰ú“ À]ó$c<'tõß!/ZQB¥c4º¾OðÆ!÷éš0¾ZK—B4¢N/ü}q'r—Ôö_h$ðˆÚ˜–„¶Ù¬O.(ýÃe+û$1éŒ/î–ÉßüJ5„êÒøùU °C¤^OIrgTzªÂe1Bâ¿ubu«¦Èßž?Öapl±€f•ýîlÿ”-æ<úašm†;Îjf8iŒÁæ.Õj†èºZu-!Õš{iE…4PãNƒ]:_ã¨;MO@~Õ·h,aç!dÊw<€¡×[ø­Ëòt•€À Ã7§ ª¦uÒ j5ྠ•*ê·¥.ÎÓ8–‡hëYôw`0¾‚AŒ@®dÄv%ñü ‡¬¾Û;Ùt)m-Í¢é>Ð+²ÿ]0 ÚF¹þû£a´Ú½T×µÃð˜9pLb²y}j‹v™ÁwQËõ+K²á:é–0êŠÖ¤y­fS¸êû9ú¡ZÆí·J ž•b§_¶ç^ÓÛ]úép&’x45p‹ýÑ2¸5'E¼†ƒZ†,LHØ¥•\Ö ( „!´‚~Žý>G!¬æÌAq PmœÔ¥•„l†^Þö½þ±ÓЈ÷ Çt§“ßI9Pç µ>%Êà8Õ¤ÅridKò¤VŒù$õOù5ޝ!3¹¸&x¬ëæ£}ÚŪ-þk™g'tH×$wT\ªý;Á8蟬GÖÎÐ3n{mq\2ѬÛY‹þc èÎÜã^Z5Ž5ÔppÒ Wb8²Æ{ˆåkOZ‚¯É¯-ˆ_߀Ôíºq†¥pYAØ×ö1ªCלwåD¤Åw‚ÔE>Ú~õ«CƒúËøñBãHRÆ~~m½7¶±¨ÅZe»lJêI¯Î¼V3q¬k\{Jþè¥Öåß¶Gø!ò¦â¬t–0—X4N¤LêhP „¹ïBE'Î Ûµ ¢µ8EÈB4NŸ'*ÄõyUhð0iô¼ŽÚ8ÓOBYòÇ0 ØâÈWäOBî|¦²}îÐÂêL¤óµë óò3E•ñ3CûT1ÍԺšÃ6+¾@“½åb‹3‹0ªþ¤i[œ >Eȇ[ÇaÍèåõDíœh»bø]í;a•k‡OF¸ô¤. ]3íó×ûÉÔ`Äï¦a'Ò,q· ƒÝOñóIè¯ò´îWQ#sábâåÐøšó ‡Õÿ¬C=ç3O/õ–½>ESÐ5„ÎjIr} º©!ùwÆ®BüwújÉqﮕŋïÊEÜ…û>¬ììTµ·R V¾i«^\¦iÕïÎX{¸°Ndš\ }–’²J|¨6})|\i­Óh/Mèõ)!uŒ»‚+øð‰ñÅé—Á}hš¿06® #d ÍÂtLJHÞ㯸â1oJ€,ƒNî²ïåþ|Ö¥ñ”é©ás,F«TÓ´š4½K¡yìÇ3\:i†B3m¹ŠÜ4˜ï1øø­"7b"PT(Isµ’\ºK5” Æ.—¼«éÜÇ9sü^ri­bÅ¥ÖÐÀçQ]Bdð\•CƒF7M-Xä’4¼JµÕ˪·×é‹^çQBV'ê«¡é‡ T×M®ª•fä:äl…_ËQ[‰A‡DHJ""@:0‰›Ü¢Ž„ÈŠ/1ˆ„š œ¿¯Ãõ[AV¤Þw©.¡’«-#ˆM cºÉ­ü«D5ŠÔÈëw HÓ}™åÍÛ*FJº ®«¿„Šv/%³§üÇC‡–ZÝh~ühóyù›Oé;‰ÀÉ7AÕšaPX4úš\ÆMü 1þ!Ìé0rEžc¿®/Óë>ªI8#€4]Õ5NÂn´zz‰¦/8ª4‹ÉñO;„‹—ãËLw]ÚrñwxŒÅê„ìi†ã2\"Û-¡ýK$QEc¼›%|RÊ­ÀàYXÜD@¸<¼Žßê²Ñ Óþ³ë&€L¤ô“ë h+Ý…Tg7§¥ñ–SÕß²»±ÒXTÀÃVYÖyÞ´ K #ÂÊ5i(CãŸx„¡Ë0b"YÏÆÎiÒ<Ë/C2. ˆþJCˆ­ß?ÑpÓ”ú˜1º¯Ã57ò^ZQ( š\{$Ä›~y“(¥±¥âS6fˆ­©—¢r¢i$52o¸H›éM†áÈý`%C×›¦Ë«$BŽ€5dÈ|€ Hã ÓìUrcè&:¼©ÐU¿ò:¼ â»`è(˜—ä÷—n!™ŸEúªMVJ9=e¹(‰®OÊ—äÔ¯V¹oœ×èøé<òvVøˆ³/½)O¿ DŒ¹µÀ(Š>vFæ8å2ÍHH^—’´o)¤äÜöÿô4H„šøI3y‰=O¢Gí²æÓÒq˜^‹å’[hž2HFçøÉ@êì›hAR–ÜÞ*æÂGâ£É•Ž:ªXªÕ:“RŽ:‹&—ôU3ó 9îl­ þh0hm¥è*«±Õ´ÁÕýç²…÷˜ÑNƒÃlüí-Ö¼Æph Wú(!%¬ýãp¦(©CˆÏ>. !«’5â+¢}¿JY11-A›A »Ó'ÒV ’„aüVHéz|(¥JâT¤tGjâ°>‚»êâlá¤Ê:@¶žP Øw)!µ¨Èï~¤’ÐçÞ> º\ÐþrB¼79âpž•ñzT«áŽœ<6ϵÙð2BŽ ñœQxË+µî6ïãé é #ú3ˆœ„.*aÊØ¥3Ö»Ò« Ú˜»<ÕW*b`DÑßcõII½a_ó:x_$DÙå¤#9CeýE_wÞ B’$˜¾—:–ú«àW#¾’¹(õ_XDÊÄG̸ŽMhŽë¶”úü€B›på¤CYj>G5´z~ëÄ·UMwOÇŽ#Êc@ßõî‡sJ…„©×± Ï+*ÿ_žŽø<6#ê)P+5iµzšõ8k^Lp—b“³G4gèAõÿ»s–U65Hl¢ñ•z{ ˜j(‹!mÀX€79#Py°_J‹£üRÊØ`2ßÉòN(Ð_o¹«ª +Y,Œhù&<†…¹ý™w%ÁGvبƒ_ l¸óÞ8m-ùh©^_sÚšëÍ—@®’5ônÚs©5ªðÃòSšçÙ)PlçÛZ¦=.:D`|_ßK©ïŒ€ÇM:¨å~êz¥@1ƒM­Ë=Ò.ñ±¦†Î°²~åÇ ç0Õä)¾´VZ%ßr)v8¤Èéñ’O|®KÀp L×:ÕýçjÒëªKí)¢%=ߣÁœšäMÕFþ-–7ÿXØi¡°àýg¦ìð*ãqé~³ÿûUaŒñ"ág{L—!r½ôè8°ÇáÁVi\d•I¥¢\ZˆQ™&ß %"q¯­¸q"píñ^Q篽æoƒ޲WbaI=%OyKæ´ý[‡Í«´îÐL¯£P5lÿëD÷àRa&>Lž.ƒæUƒ\ÂmÿOõÚÞRý¾Ž‡$j£D#q"ÎõþÎ\7I6ö©m±÷tÖYDl‰Q8±ÀŒcøb@†î ¡hÚBÌ’O«>^K þÔZõõúS­Æ]]·&Wë™f,™ôØÑ¾ûõ%Ë·>Ât¥ÿÑ$0%ís—End}U!ÛiÅüIÙëúÊ®¦ó=$FtP5Ý7|é—8ëû›ÆóHmU“<#ÌcK+dÁCÃñ–¬B´#ü¼K–~—›d »v×ÉhûýÆ^CÏ^ÃYF»u1.»ãfé8“æoUñOp’Ò“0©ÃŒ ©Á3¸T*ÓM ~†DâVÒì9¢$5GÆÈV­à2¶n&hÆ×Â@»Jmýš j“Ô˜^>ý=ä¶È³×Uº¬«šŽ<xµz’÷)Y)A$— µý]²®3ˆ¦]¿Ó½RN­?û§ÖOt=%„üé@'ãÂà:øÒ°'µîär9•ü±TI!Þêšòa#ã6€ÍfÞšª=¥«\ä±~'Çàr@C6Û®¡×=í{õ¤dÐEû½ë&-%>šÖ\%¿FÒ+` „‚Ÿ‰XhŽü™òà–¹ŒKùÉ:M½ò~Bh¤œKÕº!yüMxø>5š‡ä$k@,¨Œ~i0þæWŠ*†Ö*L[į¼B×Ô‹²>­Â€Oݤ}Ôš_IïOgB^kžè^aè·:ÙòWV¶Œq†š¬²üò™ñRÓmo=¶Ó+;¡Ë€a!®hMÉ‚š>½²Â MãÔœ4òHV½9jÚ— ëùEàS¿¾o,õsüó+Q÷ý3ýücÕ~rèÎjü²€OƒÓ?ÐbÎùç:šŽKWÞ¤ÿhKŠâ %ôu&AÓ8« æoHâÔzWÖ ¢K}ABF -5D C×8{Ò›Òô;9R1þDÜûøºX€Ê5’¬â¦K,Q™À¥ØÚÝ€™+.é°W…ùgµHî[$“°Š;× Bæ²AÄ ,á ãE5¤òÏÄï.ƒ€ß‡ú’¬Ÿ»ôëêü«¥1R)1Nk2`µÐ̲ ]Ó‰üZMK5‚hÏ1²Ô—ù­›$‰Çšj•UM©ÑÏ9‚²"õÚÕ‰$Ú°«c¤uüÓ™M7åïJ¾o~°>]'ñBÐ`•‚¶•s:ïȯöןCƒXáMÖh•qd]„™ë@ÃYò¡&]o‹þ`¼Šóp2XÞa)«Y½R!,] _E bhO7¨±ÊX(C¥ €¾¥š‘X·r.°~þÇß”RÎ2–Úõa(­è_.ifCn¯¦ï))|0—~û”Âà£U 1˜ä¦êpÅ”5*\îcÇ׫º¦$0*kP`\§)³ü-á•ÿM—}èÛ`A›’ìb–ž\A5¸úIaŠø[ÈÝÙ~àÂÿp}•éâÒ´„3ƒÄç*ù¨ DJÖÍÃeôsáÑDø zOùM‰7ÛÛ$j­¤FËGAIéï1‚S &da)¡-ªÓ ²ª×?ý·Òj†A¤Ž€Í ùbÁM²2 žfË!tds­*WŠ6¨kH(.b'–wÊ7¨KÐ$ b4sßv'~Æ}`YþáÐÁ¿ÉG æÝì¿%jqöj@ÿ©ÿL‡ˆÆÒa-™¿™¨!Ú ƒ2S!ü”jƒí[œ§ÀÆÅüþwƒ=‰HšJaºs˜8Œ5sZν´Š³#«G…¼ÞÒBql©ƒ$aÒCwƽ8l­"‰F[?EùAð¾!²2“Ò³D»òšKlõf'Ië) (ÿ½ Éå«â&¶ X—é]hZ5½K’îú=¼Ò ˆ–q ãx«¡“Vù"8’¼“þk9ê,ƒ0`kGuûABò.eù¡Õöñ{^ ó/ß…ãabd»Xîì‘ó­ˇ$L4í½”ËiµâZœí™ƒaHIÉ˧Djb´äêŸjEç&‹ÖÄ:úï³®‹:ïҤˮ’ª?u§¦MVܲQ}ÝwwêW\L+QRêR”Á0GôLÿ†¦Õo©~[ˆ(ú‘©ûiŸE³Î÷dȘA¬É7w[¾—Ãd—çùõ“¾–nÂЭD×a`•„C—± ½–D§O¦èÍ÷;”<`äEOD·ŠÖ¹pŽç t.&ï[µöç j2fÀáñ:Ÿ¡††<édS}3VLRÅÎRM¯R>†pD瑤B\¿ã÷`1{Ý$«D¥]e&§JÙë,]çZšˆ5 ‹/|ôCC¹€óÁÅÜ­7T*y5Jà‰|íp-+TßWu¢›i5h€AðE„t‰„Ê$8K´þŸ¬ £Ӟɴš\0-YUâªQ‘Ÿ”´,d~‡+ôŠü¢®ÕÀ ԈЀ„|CÈõáH”ñ­x[4]¬3¦þ»»Ÿ8ÛßWÇÁªüÑY'â[é¬ é0’2nöU¬¼yÏA†jpú—ËHˆ¬n«vXÕͱ<—E ÝH[÷c}Öû™Çó^P,¨wÞEbFßÛúš=§½\³k$ÄdÀì:À}hjµ9$Žü1¸xræ˜^~7Ïž¥›~ /øó:ÚohD•9fr!œ9’ $—Ça7RBhK°•÷@«Ãä[Í=èFHâÇÏÐ!ç(šÄè¹úãÓLyC(ŠHž–‡ú*c1*‰!õ…ÜãaûÉ*Ú™;º™Ûãd;Ý'„w ‚C²ASú­4¢Úú– 7oŽááhF€·º çUFð¬árêÝ’Z°ÆÊj×uðuÚãmÑ`’h-oŒ€¿Ã%` |yžÃ*‡ëdÛ÷à;Þ_-g-âü¶'™%?¬gÿ©ü‚Ÿ—©/“­jIÀóÇÚ =2>ÐÏŒ+wÆ ¸çSÊê8Áyç7ȾÎûy͈5CÞ¡ÈO’}d­./\E˜•WäÁ q\czÅÒ!F%Â8ð´Mò¦økDߥÐ$yn›®–0MלŽ×›Råê^iµyh$¬¨ICnzJþG¸®UAå­ñµ¯ú!fŒŠè“äªWR^¥›ö¼çƒ&‰ ˆÖâ†1~½šüµ¼JêÒHI“D*ñ^©_稤ÉD‹r’WTF·;4y.ÿq'ðC*íZ~8UHƒ*m¤TšöI¯¸+ÌaUæn¤ŸZd)ÅmñT¯y ˜ãX•¦×ñu} ¬H9šŽ gÜ%‹Xõ'…ð äô¬ºö$I)<+x·ÍîsG¹Ìí-Õeµ) .s{RjYñ¶?[@8Do+o~Êàc° ,¼Þò¹+Ú[„W9„õ°ä@ ÑJëËíÐoÙ²ß%¿\aá¬ßõø˜{@´ØqÊ’¥³ xq¹Õø‹ážCíþWéׯ‚ÃX¥W‚:“"5ÑÓë8Ī®G™;W‡¼>ÂÁ¦åÕWßßS\Á¹èfðWÜ9î2‚ÏÒ*­.õuìsýN5¸ ÈúbÆ‚Ua è±4–´rO@zuÝgA“5¬%íwÊ?í «h0V©.¿DV¢ø²BÊÏç¯};CÏÓ“/"$58sbV'ͨòW¾ÞÅŠ&Z+ð>¹VÅ¡Ö[¦½#ÈScMFâ}œ”…_[ ä,B˜0C$O¯wÛÐ!Á1år"ÜË.Ä ,`J™¿'ßÞç‘LÔ¦º01#ÏÏí|©%³ÍSjD¬‹S“ð>uI®&ZI*kº×G™á¹K&¨á¤B+^…" ê i°·<`b•§øëTQã`&Òƒ }#¹¤‡\íæŸVFèZM%°å]š°z +‰H2ô)Úó7¢Ñ8R>i4»Æ—ºY®ÆM‘fUBÖJh°Õ}W'’sfÿÆL~˜ƒi·LúÕT ®ÆFÐÞ>-Ss¤]œâNÄ™FJè†Ô@÷´?è0 ¨ì‚+J‰Ê®KT8â“ð.jIü2!÷âÌÓ”E’0ÃÐá>Ôy}×0\" ¬þgÐq,Ì%b9Ðê_8CÑ\CëÚbíd&&õÉÛ‘!‘:¶cÍ ~µß)D£=a"vnzëRß>vTÆ'–Páléê -{M¥2²ú;¥^XPƒ¿ÇSJC¯¬a?çH¢‚þäcü’ºüª¦$¤G×±ÿ§LK™AÂÓF"MÏ¥U7a3Kþ¤N„y˜ÀM’HKêÕ1»Qò>þ=•ÿ®cèEê×ÜÊÖØÂ4ÆmÇ¿òjLÛí§[N{ýJÆy“v’^áøØ::D´E."¾ >Lë@m‘5¨·KàEBÅÎAâìR”ú–\iFÄŒ™ykÐë¼@ïô²¢Õ™có*]³|N[÷pñð«» ‘fžÙõ¢ Àà®ÙËÐÀF !«Øµ²ý×4¶\oJ¼÷)y§^Õ“¦qd\[@×weW$ ÞOJw&1Ÿ„dzRÈ8t3ñµ$Kô‹C1Wj—¦#¹çU¶E~“ºz͞Ʌ8‘Ô›’º")áf6£L“zÎvˆ»8äB‰ÕOVËU´ž¾ÜùúÜ¥¢d%¡éš)½$IùÞ"lï)dºŽ¬Ôˆ°K¯2çóœÐf.z÷kº2Òͤ‹ø¶jO»¥ó¯¨!ôäß‚þ-~ô»Æ—©,eqoì`_üαzùºöYüÌ’þ9^AÓ~|1#èSziÎãëÏŸ›Æ1Í(üfæ==t”šý)Iý0!#ÐU]Ï]±È‰–^ׯ*Õõ÷xª±¨dÖ#ƒ 3XõƒuVãІëÄW›EXE“†».;Yã9ÇÅ•»´fÙÖd5þ–ØtŒC8¡ÅC ¾h½N˜sÒ¬›Ðá^>¸›NšK¹K•ý⟻Ö[‡ËòÉOP‰¿öS¯ß ãƒÏ¥fÝAˆ¨}žœ7éIÛëW5 k|fê §c uc[Ak±¹¨º¾$Vøä:AÐycú÷]—ˆ”€Ü×Ó¡.¦Ù§Ï–ö¹‹±‚Ç4&'œH"¬B~ÝÆ¼ß¡>cÕ1’ANýñ_¨E¤%Ü S‹¢¿Õ€¦„3™.þP ƒ|ÐO-#9øÜ'j‡éã„¶¶¡+1%÷N Ôb7¤û`°g@îÄ_‘ XCÓÍ.‰ÿç$ã@ó¶Ò©3—•ëjœ5Ù6p½Ç;dñ‡äÑþ9–ð…¨u¤f|<Í£ k®°Ó?6æÄYÆówxêfÿ¨E]2SŒaã‰ðØäuügþ:àI>o ý&&#?LêóÏȆ" 'ÀÜ“Z• üUÿb®dÖÜ4 ë§ø7þ‰OˆoÂ$3Ò.»¾ëÒÔ¬g׫®ê¥­ûé!úÚÄXç£ceWÚÞ¨Ù xèñœWî´z&«‚·Š3lÁW¥†¶| 6—Íz¼¾íóžv_ (Ï8Åâ]7¸Ë ¦º*ιJ*«5 E’Û™nƒ³eò¯)L:¶%õ*ÕœH¹½Rƒ=Ÿ"Ÿ[ái×Gk×ËÌñ`‹hÛÙ4Œ¥Î™Ù`T ÙÈG„Ä¥œ¹IÄÝÓ8q~fRÒ¼N´ ­° ÉAÊD „èÛ=(FE(Ÿ3¥ñP}§0¦L/b;VK  f:“1©ãÌÔe´{3|möM J’–“:8Bxˆó7Û6nYÜýã¨#/Åé}é²VÎafm§‚–üÕˆ'ï•—xÆf ßo“ÃïÈç%¯ßôÁ8°ñuÂv¢¡Í„~åéúÞíf<Ç€—É%c„Zí0ÀlqÊfº¤Ó¿Dåt)|<8 ¹˜YÄA"í?çãÐÐÈC¶°òÏÈÒjÀÞ*Æd x Àò~S+ô-@V5í=¡YobÑ+†@C`š1Ôþ÷14ž0 B¨…Ü_Ðþ,ôÄò4MçüÕÁ,E½KHpEÄ( åa`?ñrÿ1À‚#ãF´¯hP†¼ÛåAË©FZè*]úU¶ÊR  ¹"wjkÃ'ffa¡J½* Ú¿eÆ7É1+­“àßJ¿)²ô§ü*abƆ&X{Ñçªñ‰Fk‘à÷ÃË›—“hWÉj±.ÑP6Ïv(·¼Þ -ĄҺÿøUö“c,·Î;E[~°‘?Õ‰Õ%³ü‘ž~Zözü æUƒ\Ô9ê¹ÄÐ. Ël¢,l¢ºÆ|BÄŽáà‹¬Yú…þ(Œ@EÏoàjÐu]eZÜç •Y.ÛApW”\îóåZuP&ιhqA¤f¦ø·WlÆýáUû'J“¸#‹=.½ÎJáÎɳYé#Ïu@Êrü­<©E(‰;Q+h€*¼ôF&Û–£r²Í6é¤è³rC¨þ m\5Ö‘€‘ðµþ\êúÃÛ§.9 I &ªâ‚k½i&Ôä¦]³œI†!U¯NäZÓ–OÙ Ñ}–l¿j@ºÆVùp",ÀºvlÕ¯Aó¹‚äîG B= ëÃ^¿ï °7‰ß&Æ;Baؘn·¶Ð¥ñfÈûÌRmšOþÆ—¼ÄË»$q-V ÂâÝ9+K@㟨žâÌÕìÉ:Ʊ•¹÷1&t½.щ ¦þ#8 }(V \Î*ž* ã|!¹îÔÁ"SµV¢×ÖW'^ƒú#Ílµ Âïs¸fi¬_¥üÁÀÇÒ]ëÇ´*¬­ïºDÿŒŸ€Ã@l…›€š\lÒ´W CõvXá#}4Ì)fOô™³¦Üéw…õ%ÈŠ~lE ¦A´…fÞué½Áy‡hö¸¸ýTvò¥è‹VD@ðYIà ?X­ )>ÈÁk°~>¯!ÉþwÉB×/¡÷º€÷¼ôP½Õ[úýLÔâŒÏÄß%ïdhýú(ÅGùåʨ®ßC(7BJ†íº´Œ¡s§ñÜð]ǯ…ùY9VœâšÐí¼þ¤\âhãDõú£ÁÓ«8£2 ±Ð;3Gœ¡Ø&Q¯eן²0]?Ô¢* ºôL¬âPÒD…wg23yjýÎAv.nüÎÅÛsh—ä|Þf9jœ«W3©>;xna¶UÙÝ\Ò i¡Y~Ln•°ý*ã¢KûCý2ß*Ý£WJ•íʃå*YoZ½•s½4S«^ÛŸÁ2Fî ïxó,Ô¶ï1¡c½’åuV!Œ¹où]ÇÂÙoé=µÎW7}“в LÎù,Ú­ô6#²ÐëS1Î"\^À;tiû0Ä@ñGfðjð$ßªÚ ­ƒ¹œ<[; ëµ³Ò›ÆW ¸K4ô#$ø”%ÉÓJ4 (™“„¤É¹Ô‹KLJ¹ž¼ä)–Tߤ„~®2K¼…û:4BªdÀ]—ú[øeõ­#„TpÕ-ÛÔÊx7ù†ö[‘ßÇniV]3×Ô4¶'¼BcJ'ÍŽö÷!'M5Ðmû¿ËyP}ÌÒT¿M@·MǾþ åímo]ò•ýÌBÑ—Ñ R½Wxyj@¨#´,Àii7-ä{}XpùhñÊy´Á’¸ŽK™¼½¡!„I®¤ÁZ ÍR¼¦K«”4FÊàªüw1|ß%ü±ØMƒ®çuL7½>k@.ÍvLãÔñ­ôáÐr ¢-N«Ù zkSm)—éÈ_mûæÄh­ZLv®N=–æL‡×eŒ”ô)Ôé‰ä¦¹ä¿ κ´Ú“€e‡iŒ…N`~ÇàôE«5 ŽþÚ´´Q¤&‚ /<Õ 'DcYàÃë…«÷ˇn´¿«šòº%…ޝ0h :\<;ÚqPE –€0ÅËàwR4<‡ÆÚtÈYa€€ûœ€|§h³t¥ÿݪù~ksY¶ßœ'ÿ÷IÇHj /þc)mIò;…T{—&Ãø÷;Kl ß¿X-!0Z##äøÄ"|-¼îõA¨íøZ­UÓýûaº´Ê¨Kø¯öÉ4Ы¼ Õ`­…†‹ciŸ«ô#aj) ´ê¬®x»RÁç+Å÷0´Y§Ã§—þ袊±ú{Æw‚`„_ˆ¦!´8#L@¯êšQhu³Qî¥'L‰òuÃ;ßÚíœàÃ1:¾¤™n*à§kª-¡w|»Ktr-šZʧANÓçÏ4¼â€>uiå+Ï {œ¿á;ÓwÕE^ ¢-M˜^×Ív D.zQ°V—¨„N«ÎbpœrÙ8ÇYû¸œ’yé½þLçøÖ³ë— Bèä²€¬¼ô’K…Æä( ».í÷W_ñm˜©Ç0³v^_ƒÏ®ï”©^r ì4È4xy:{ÿÅ’tó‘4ŽC“5Ûõ¯ŠJ2tœŒ˜nêì:¿rÔ—ä"ôrIÀG^z©0„>Û0ΛT>ÃH®cøŠŒˆ(T}‰P.'à3»ŽãÝ úõç«|²Ðy0=Ókó™© À`4½Ç1 ïW¦A®¼ôäw3¿…¦=>ºòkˆ‘å%Õ Š;¸|Ýõ(ÆÕbiÍ„{‹PNEÒ–£.ñ¦šV•Ë>ëR»ôé¡'8EƪæU×L\Zd9*¨Ã)†d@s/ƒ­êºµc:¾–K¬—ÃxðpyÐU—ÚŸ/)¶‚ ô —o½æ÷g‹s©c*ó´Å¹t¥ó÷Ê!0Ôài¡ü«¸‘‰nÖuÿÓºé·NŽXui×´Ô“Ö p ëxÐçõQ ó°›4ÝôúªhŠC‚%ƒ„5J:‘ã·jW5íûà×lߪC.õuðãÁk¢ÖëR.ó²4/DÆ17ß|ƒÖW7L$Ä‚ïlizóJÎ<$Īë£jH(‚K¸Iø‚¾ìcÉœ£0kݸªsÑòŒ_1ä}ÿ®C8ÉЖtRÓëo:Àw”\Ëö^Zq]Ó¥UžúVcÓ]¿ã!ý\ï1 åaÎ%|U[j¦Y ¸¤ÁŒk”D«ÝË)4Œ[Fk~¼§iÌör¡ýq ¯¸jôŸX\uiöƒJû'BP#„hO¯Xá¤H¬±õ:ÈZ°Ó5op Ÿ¹yk +Ú[#ñ¦;ƒÁÐädMÀGu=Ÿ=5Fa¹]ðÓ€KBo´'‚xè˜å­äE/]ùbXÀ˜€&ïc¬Í´hÔ´q™=±¸«=ZTX0–ü Lð_²žgÚÏôýƒç?ô8µÄÊÍ®nV×è„BÊ;ê5à¾V)Õ.1¸´þP‘f@ø¤¬}¬nžäj¥5…Šøäæ2i÷8«ˆã{a±Î4ýœ˜‹y¥É3Q_—ˆ ÔDó7Bÿ™S®‹åU£î÷ Ú[5£‹Ñ9@‘s>%Tþâ !‰ ÕŸþ¸­žVHð¦@b t[è­ Hõ\zQðõwéXÍÕ¯÷8Bø]çOYá#sÔê¢Ò9Ïɸ¨é7&8#ú2jüN Æ Dø÷ é,$¡u‰Ï3¶¼q )Dó²ÚñÙµ^`äý÷0ÅWªD¨Œ $t³F}žº)ƒß:²xiˆ;E_Ú²ÇUiz+?Vrµ%¨Pm ß¢Ô Ô D=ÎFLè-ðÓ ZµB!B© ÑÎVýj‡Pî•jÒù³ÞÙæÃ~“wfãpzUMÔ¸ª) ?y}j¡gäM â›ÛiA´ÚÞT¶4nL^nÚåa–õÉ ¬ùÚ´’»Ò·á+оzíŸ0ÒÖ÷_íwNïp'[I ^e½¤È¡‡h¡aÓ~ù©¶²žÛ9{íq|\Ó¬zœÆÆ)òÊïPþ]¶g¤´š&뜫•'‘&ÖÑá½ê’¨§sö,ëa{ ”sŸë²§?Ò 7iädæÎ¦Nã´Æ5‰´%ZïB«²ÒåÄàÖÂñ[è <ƒþ‰>†Hpýªþ/=œ¸A¾'æ6SM2ý»-+°ª·ëðÃwxe.ÞR¾G(Ù3yEû­cu Õ‰ögaÌ@ì:qe¨SU~áKeµ€†ä[ï2í|16y`Í+÷wðŸIláŸv‚g\/«3Ͼìûw¹M« p|EäMÚ‡(× ,Hö·””zÏ?F:ªÍQæbQö¡ÿQ#i©ýÇ/"ö™o1íR MCÓUh¤œñ¾µŽ@Ü^6ëÿf™Ñi$TÑ×k]eSæü‡•’]TF…b ykÌãÕËQßÂbÞu;dˆ˜P~Œ¿zqªõ.¬F¯ñµ_¢º æy$1* ®kÕ<Õ‰öÍ÷»f¾ ¡ãª±pÇß Àf«NºþQ¨çaÊ’ˆëÝö£P»:Ñt‘(ûÍÜ Â¦ß B¬$LÓ•§°^­ºÖª»U ]Ç8DµˆoT[‚¿€*ë¬aø:k½ÇMe`?hŠAºn$ù[5ݽLÏŒ+=šì§Dš;‹¶,%{œ—Ñ[Ïu˜˜¶þŽßÑjýa©è@ÊÔȧ­›\{‹a$‡·ï«|¹Oq9þÁ (ˆK©_4£é®›L³Z ` äC £UV=0QI¦åoYõt ‚8íA ‚‚èœýIÏå"yÓ¿\]ü­úæn´l)Ä×wó}]LyòBlNßc‡{c½Ÿ¥ ,+g ý~öñ©H(Ï (ÍX"븄þ Ý[„†ï1òØÔë°ÊM@Ú:SÉó&ƒÓ“µˆíemüEfhù«›Î3 Q›$‘ZiÕV¢q“^t bYx]zÙo¢Ök¶}K,âð³~ãß™YbY•¡W™6#Ð,˜oìÿ'-Àgš9‹tü þª¡Ö›£Þ°Njý34^ÁÂ'ãg½M¯QÒÄÉ'²Ö©‹¸w<ë±[ԈϕGîý7ÙaJыˌz“õ­nëiÐjiúl?‹8´ß¼¯ÿHx®ÃKµVÐfÔ²=nò2ô•¤ÃmßckjÃäå— ýX!:›ã|L¥¯E¡ án¨Ÿ¹@V¼Iƒ8‘³ßdðG'Æ`Xpí¾ÅŽº²›8öQ«šRºRE£¯ƒ¼‡:ãý#Ì~°›’éÒ+EmÉà±í¤‡H­¯4 DZˆépKBáá|ì†ú:D΂g®hĹ:¤ÕüeÿºY³©B¤Ã‰Ú¾Sà8¶RÓfB2é&è7Ò´ M&â‘DÏñMƒ¬'=ôfzs›„öITã0QûO‡ÐWࣶQ„z2e÷¬üãdÆI_­ƨƒIÕ:¾Ø)ú9Õ@·•ä¿jÀ~•øÉÇLÑÃêqèJoóoú¢hz`«QÛ[¾¸s«SÖs²± щ€ïù´Ïm1YÛY,?ÈÝöú–ºa¦¤ªa†0Ö9ÙjVtµž5ÚAY"j÷š]Å&ŒCÜ_¦¬_% Ò{Öª9ö‘œ.D"fì÷!—hÑ atU/†ð7¿â憙%¹Ö ¹£Œ·fIê|'ý ñÏS\¸ÅR—ø >¢ÒÛ°Ðr·½>Å6œgÿ…ü­t1žñ^62÷¢™¥åõUTQš8»L¦V€OŸ¾¢×8h3ÉÚšP‰,HEd“­i¦žDl,}‚ÕÒ[QxQ±åt:Š„±cÕ¸ÇqH騖õJ…„ÓÝVªm³€Z]Åñª]‡†So˜å(qFjʇAG2äÉÈçb&ô˲ïwÒ›½Ý£ 7‹è£°-xG›…s¹zVdq ävvðd¯--ÇÈ)šŽìtP˜^.RÓ.ãå, ¨ðÚÉ™VøEœ`—i‘=Áz©@NWLáÚ• ;35Ò‚öºîO¯©& T÷ú›¸4’A™P8d; $S}X6ê”Ñô^ ƒîéÔúáàŸP~½)UO޶V¢éþN‚àlŠƒÔ4n&3½e›Q8NM,w^É–8›Uãg—,)³Ûé½S ]në»°ˆƒ2ÃKÊ_…¼ëWAoM›”!î'IòËk”)¼f)P‡<4½ôv¥zËÚ›ªé­9?añ,’qç&WUt* ²÷¾ªÜà™z†ÜŒgý¬ÓAïöÔ€ºŸj L$~aº$íËg”™n—dÒ}Xºk‰§8é”PÖ"Ì^a&½ÀÓ[s.2sòǼ$ L³¦v“²l#¼, ®O¥À7NÌËÄüÄçIDF*Ù¨I±X2*¶XZ%G¯ºDì—­i¼§p‰Ü![s»â'·ÎÆ8±áCwƒÄž–ð8ÊIÞ£<á7'è‹ãÉWÞäT=…(P†ZTõV•_ƒm Ò[-}5‹V}K!Ÿ¤^e_ch<ÎËSXõÞOHÊÉ $PgÄu½)]o%†ýúu¨ç”)½#ïRgªâ¡©~6íwQ;'”›/šRð›ôåƒ-LnÕÈŽ `Iå9!ÁU6a~µC"í·j. ¥×°¢?å‡Ô™54¹_exÞéfÚ‰›ÄxžÙ”ÂW^Bk~MÖ¡ ½âòOjà†°©Ño©³€Ì" þÕSà§h h­¯w=ôJçÓ‚>¤IµƒN'óùËQéa—N Å—íihLþ¶BÃ<ÊÑ5¢eP\²Ø£ÿ&ˆÐO¼õY`: Ìi5Xðcö“vÀ'Úø¬)Ѿs@JÜ…¢¼ !f¿²ýJCÄ£)Z¯lßR ºîävÞ¼åÅÛì¾ÄêLlOÓcã^§¤WÆ`ÙÞz=9RòZ%G~q~dÚÒúZk?+å§Éã¬!Å“òõk®èR’§.„4Úu¤BìÓ ·a ƒJÉp‰Ûaî„7í >5 Ľ˰âšç†Š0XÇ ŸÙ« ³p[ef°h[˜žâ•£¶« ’iaÆÈt-¡\ÚN„îjÚþ°òº4 „¢ôc>“0Ù‰`¯¦­XÕR+s{AÅad}N<4J4H/Üt­¿ðC°05q+u<Á3ç ‘ã€ f Íw4¤1 £i Y„/ƒÄ©š=ŽÎLçßÚ|ûɤçÌšT9ö¬Ìemc<$^â«èg‰l©y¯ƒ*Òÿ¸¬¯‘*.Ž“4VºÑSÑ ©çSÁIH')G\3ÌÎÚqÌ<˜š‘ |¤§Ñ©a=å%èD•GT3µÊXè­@Ó^“ÞNøë+K™%Øà=Ç^Õus]oaðÕJWÈŸ§(ô7 ˆo¤úãš*§Îe–|³zø¥ #ä©+}ÑëÚXûK-|—Âk[w£a«ê=FŠÃlúà87b™OƵ;0îQš x*y©HÁÝ aFuŠ i¼>J.í]ƒôý0`·êz’a1BÀú IþUáëa¦3Òo›3XÙ½D³°NÏ]Õ!ÑvšÙ…a–òÊõÃòúS¿F>RjÉûœ³òâè¸ß%ôÇî8Ü0y=²\s8$”ž.¹+r‘(x…qXÓ*1d ?7Ã3²^q™IwÎ̲„OìËìãª@êüÑhÌÍd|ÁõqÜ›@0âTÿÍ'«q.f÷‰yþ—½% ñº›®O“šÎïž« 7dÌ?rÂ+DŽåö¬3 Úc' ©¯Û¿áï)B<‡#kæ™áÀ0s.Wê3PÑ(:°¿åz2|V×äh$µ¦–!pƒó¹xšùÌ>AIGo…9à‘‹^?ƒ­èP¿ÑQQ“,¬š"ˆÓ¹õ9ƒˆ ¡ÖOƒ—A#ƒnK¿y2·aÜß¾k"0 ÒP~™½]w†7N“¼ nuªK¡æ»J5K„±6¢“JAEmí5w>ÕÓNùW†È‡VH‘!rtƒÌüJ€14]Ë€4þ•ñ4NÝÊÞ¿aÔ…Æeøü3ÈÞ‰Õ _½òšgÁ4ZŸžl4è=y)v„ÎðçŠ8•&5€ÖçIj¶]²@')…pZŒ;Њð`u¥qŸž]fv}:‚†âíq$bòÚg`±“C>2¼ÿPyò«à|y2>ˆ û°¹ä×Âï•´+•aPR5lCdPÈßôûßÉ]„êa¨Vª‚!Î^µ¯ÂñÍ:&6iV*?]Î,‰AÀ’,E'š&½åªPA׬à¢Jœ˜€éHH%ÑÍM;m™Ñ(#Û¬ÜFŒXäN ±NÂÑ0¨‘Õë¸7 ðö¥£G*øíÃîAú,ý$Œ¼%Zš™wJ˜<Ÿ`å©!d±Ø·‚#â‰Ú·R’²‘žîø¬(Qeè~ìs(Ò¸ÐPƒýþÌxU.iP½=¢A ¨-º+ñ†¼1è°¢øíãÃÑä“1¯2 .­.ò[’[çŸß§_µŠ§`ýÜ:ÿØYLMÈ0_ajî\˾šÌÓtWñ;EÎ8~3Ü¥©˜¢D« ‚! ä`¹dú;”ßIÜ&d:µL†¡ß¬NäÚm´›…*CO Ót‰·Zm£µ\è™ WP–Þèû?^FŠßi:Y1/S£QF´"”W—Nw3\á5öí7¤8aä0¶>y8 —q쑪ãœÁô _ƒú¾¼ùÞ„H³]²NX|lJš zúÐÈe= ¥^kef—ºDøE c°ÎêÞDPŽÍÍ ú.uª7íö"0Ý)p€ƒ˜Óxx„tV“Æé)𼎙Òïà™)Õ¼ËVÃIÖD—8B+‡†<ÎjÐ 3ÄÁ©Z-rG„m¼)ŽÉ,â:2à!P¡™€=ÿˆö<©Õ¤©€ëƪö&ŒH=ñK¶3ÁŽŒ¢xãºNª)ßÈ´A´˜X óqAœDÙã8IiäùY,o!—Ï]AR3‘ñàÕcÙ@+;aî'±Ì y j¶c&Èå$Á(€¡&~!9“³È… dâó«x£›‘GÊ­ŒÂT'k»_ÆÆÑŽv¨í÷»õ’5\ Õ†Õ‘”Ä}³ï"§Ex² ÊŒH^9µpBਨ~ˆ<Äc"Ò½^‡[†@¾öo®š¤së·öÿTŠáEÅÓál;NÈ쮸’@] O êp¼ÇVý­z ÄÚú¹Ø(Qñ1Œƒ_4½íWà§žß3¸¶7»l¼«ÃŽ®òê¹*ÔATx %]xÖLð ç,ƒ]Ppë§×&M~Øí*²`dJ9 WŠcŽ2Ï®Dà@Â0ó=ÆÉëOQê90 µôÆ•'¢˜ ºð¬É€,±!UËœù¦ÛbÈE{'4ú+UU$Ž8\¬ÇáSY_ù0[¢âT Hì—²"x?¥Fø8M²°JÏ}O¨ “§ÌàǶÓñ÷={½J9\ï!*µfzÔ€SÏ¥©ô¼ªCÄøšIŽ¢½®§ŒÏ†>máïfæù®¬iòáKz>üS¢û”›;¸7Žê ’Î{ZxVÂÂt™VÎc @fí"6ÓôFÏþ÷©4âúÒª "–ïéÚdcœ&ZìwxIú«0çÓÔˆJÉýVbZ”D¹Å]ÚðרþGfò' ’8·G^9ÑYDÔ°mQ•Z™¸%"l]ð†dñ¤…{™Œ;wÓ›Âsëxæ*ãìÃ;×^’rÈ¿êºä㡚ÆE¡u:IÔˆ ÀĨ;y@S±§éS¨¤ &­ö<ÞBœl¾ëÒ>=ѧ/‰X.à¨Ð=iŸ8äýthÓu¬.jx>”„Òø5.ÍÎG¥ð¨öÔDBƒÎæ&rz¸o€&­z3žJ( wÉiŠ~‡K“/¸IÌöÇ%iúþÙ—h–úÑt•jJ´IÓ\Õ”´¾þW³`ŠÂóBô×)­íߦ¤r-%ˆëtÈ%„nùaÈ"´R8œ†H×Lü½ÉÚ%Áá"ЛMz…L°Kƒ¬£?ËLô]W0ÌòðDÞ£¶"ów-Áæ(ÿr½É EÌZ^Ë€F¶©jo ¤+#àÎôW/þº\JDtÒÛË66A¢v Äl9ÈL|ã<ÏI:¦ž¤NœgÙ×}ÌíǦÐs]&­ìz¤iãˆÞì_#Ê/¨óììu‘’%‘ö•u‰N’$9É©<s!‹FÝø ÁPm«eõd½+)Ùê?E[I˜EèT5ü'£ÚÈàªqÀc:ùÊöe0†^wQcúFHœÜ¦U²ü°,°]ÄâûH !MiÈJ" ×X†ÎnJZÇŒØbe'iPiª¯0þHÕôš×Ÿr7?º‹ËN7LŸæè§:Ñ«”_[“z ¡ÕE [ Z+T´J.оg~d^~«²sQL.À•>kXñfÔUGcPgzVÔⳋÆxÈ:ôKèÑo—Á•^I³ëªò­'ôW9?¨Í*æJÓ>å&Šñoù/´»Âåæs•|D`$2Q<%UäÚdMÿý¸|ÂPÝMŠõÀhÏ3›Ø)Yygòþw|_EþH¸v‡M¢Šÿ}™–ºÁ.‡ÄˆÃù±Œ ‹’´—µaPT3–d<ªÚ$Â[hjh€ó9±PíUè7бHà«"¨­¯jïÐ|­§ß£7¬Q#1æm6æÄó¾\#$µãÄê\^ýÕìÓB„ &Å·+Òì«lѵϯ–ô{ÖXE6Õ ³Vuƒ÷8¤Á?¹ªwég˜ËëW™é9Bè0¦,â&ÑI^ñ—)4PX!ÄßD|—èû’\œQ+ R‘\µ¯±\ùvqéé%$põëw‚#4ªˆƒÌ`fÞNÓÏ„¨ÌíãÐýŸ—±Ò0G„|7…¹[^Ÿå¦ ¥ˆº—BöÃZôc|We:±s¾¬®´Šº>,K7¼J4"‰˜ñJÌ¢$½.3L«BòeݶSrm ~àY}œã|—·øšËÛN¥#–±‰„ü§Ìvåå0ý&jl3´Rï2X˜n“°À×åq‚ŸüŠV¾ `,X‹œ92à¸Ó×7&ßgòíÇzCœ¼çP¹Š0ó)PДqhO&'S`h!C–ÿ=†¹ÒàSJ©ï’­¾¸Vb½É%>]ÕŒ¾QXm¨ƒk¿ìÊЛ\WœÞ¤¯ÒõÔБO¹žTÕâ í;ÌëéK }e'éUޝÕÐ1íÍõ]Qa¦CÏt Ù¼«OTHBáHa@0ôóì.ÎkQ4¹låœìJ…7Q]Ðyœ*=IÓ8k2¹îKºIã@•ÇíÖ-¿ÞOÚ*NÎI÷å]ò)]ãTÅ$¤X~FbµÛ‰Õ9_Åøs¤®q>`¦) IÉCãhEå³xðÁlÿ‘]ƒši`˜Á žåW@G;&uw²ª'M1H™¾êÌÅ@áiÚþ¨'8/„ãÝFð7L^fû^q«™Á}UÜÁ z­%›£ŽòPÜœ­7œŠjUix•@­!M®&:B2VëO9ävªk^î&L‡¯ù7 ÿVð•^Ô^~!g¸ö8×´X©èx\åRÇ—d…z.šÁOÕ¬&î"äx¤•“…¢õ¸µT#¡õØåk©Õ>…Æ(_ÍBs—‡høIͼ,ág5w™öM7¾«äâW$å%úÇȳ*4Ï?/«ÆMó˜Öwäú}´^Õ“G<' .h=gšÎ#ž µ«ºž§§¬¡ßªÑu¸xâïnœ5ÙãøÕ4íeÑŒs]Ç"LÇ9v*áaÌåA«.ÍC]׿ô…û H@Óÿ-šñ  €[ŠK³v¤šë.{m¼0ã:¾óÈ߃É«ËûåÈ †!Ú'¯z¾‚SÍŒ £.ÍB®h]5$Åy:Vyþ:_ˆÄ¡#^ßô5¨x»¼å‹Ió»TÛw™þÎëO9/ª‘|%<Ðe\îÅå“ = [ìâ͇>&*â.­ÞChärŽq×T7¼æÁHVëÚ7pDÛ­ì›)oa•§ìë9hñI>_Pø-E¼3?bƒŒ–ÏcõÌ 84öm9j™Qƒ‚ÿ6s]B¡ “R‹¢5“B‰ë»ðI¿Y–«`V™²œŠ½‰Õã|ÔéÙï„4œƒ^õðK©W¹¶ ŒJh 1> &%´ZCS`D!ò–„53š|QM7ݶŸÕ€0ÃMº¹¾ ÍWuýœîœ¯HCÌ€hϱºå«4†a¨†ÃoöwBÒ‹‡\e5“ƒqsQ¥¯òUngí!¶æ±ê2bqpÄ2k‹„r‡†M.%*Ë´÷-ü”ø…%ÇøêFù´ŸÁœ>%‰fõõA?K^&R–Ò¯|ŸâàIuˆKØ’áwÒœ¯¤²rt|\‚4JX Ë©âDÊâ„æ$C½|³q'S³BKÑ{Vkð7ÅÊ2Âém2õJò†u•LjÉâÄÆ„néI¶ßizœ—@±œM´\À‰ó´Äo»ÞÂ)|íñOÓjUø¹{*ü\‡Î>‚ëÕ’dqfe¢îiùÉ€¨Œbª%­üÞO üÿeºíù5`âë"­ò½iD{"zšN —®Tí!~¿FªßI®Ñ ÎŽÚŒOŽ/¡GŠöa…«pÆÙqéiIëÐÏJÑ$#…V_åq¢Ô1+¤C¬¢Ð=²€a<ÛLÖì­l‰Öqâ`²6_ÁŠ®ãû¢Á¶È¯Fæ{ƒ¬K[b êqªˆ w»g•¶•MÉóp[‡K¸·¡A+ƒ{$sº'¼G¾‹+ÖÀÆü5Ú>\”FDü"ù_ÜùoŒB 59k‚ÍUfj•\0è¬t',1oŠ‹žäbsfH|•jÜ.—u^B&4|ëÍûÉàVªõ§¸l n‡aZít§ò2_ah>žlÆb¯·rÎq%ȵ4ÁCmŒDÚS‡“×1Í(KÆq©(„sÞ©ßÎòyWÊ×¹æ[öqA¿ÀoQxöò7­:*š’«0ÍåDòãwAÉ8Ƨ(+[겤‹j†·Ã|J!ËKŠ£¡á¼W… š×á¢fÀÂxXÌck¿lþ¨¼F<š¼“Ç‘#¹ßŽˆ@v2~ë0¤×ÐópÅ%Ôd`+Ñç*BdŽÑå*ýÄ\ÆUò®¤yÍNã|­`×ÎÈ!n´\3•—Àˆ@kCÕZÞá¶ó³ˆè5>f±Ÿ¥Ñ _þ"Iz7pdCç ýwÒÁ«¯YF¶ò—†ØTw+#ø–¾ïð(ÉFPw» íïãaÜù~9=ý೺-Çïåø"ø’ œEËJ¸ŠèûŸy½×À¼ ?õP|.€˸üf4{13øYT½q7Uüj8_4äNÒó,ÑáGz8 ‡1•fq‰Äcd“ËãLÿ–×[™ …5žôÄ‘µý!x‚jO,Ž_`Æ÷)_²ò–k03Ü–¾ª-fF›8¥I7±T³èH.ß%±fék^ß> 1•C+siàÐ.aÕžZ¯"_ˆ.´ÃÊÏvå´0°œea´ÔԃɌ¯|M«AC|èÞCÈ‘\}Ò¹90â5 Qôª?ä:¢öóEyi ùQí=ö™-z™èÒƒú‰;$jö1eÑŠGFj‰Má-qD›(ÌÜ’ ã"&ËÒL,¢â¡àø ÓûµNe™i§_b™„ò:äÄx¨I¦b99æ÷:¨¹z¥·„ß ¿!µg\\)¾ë¡C¯ýíÚ"¡g4±ò`/ÊÇ]aäº4¼RuN’” Iãý½¡ÖHÓµÓ /¬j!ÿIÓ¼Äò×0ç‡](µ‡/*ðøC£ мPKùè&N-í/Á Óû"~Æè'Ò*®'ï®”õ%.¿éW".ÅQ[¢¾µÄ¯æ”ÂhñEÜÈÙ¡¼Ý«•0U }ñ^ö$d¦VÙ _žÉEaXå ‡P&W|I†=¥Ð‹‡Êµ¤áÎø%nê÷rÉ@9Ë—Êã2xzýN5i‡T¦Z@'ƒî=ŽæL.m­vK[Ä9zý'»Æ%iÖSþ—/[߈þ”ÁŸT}WH@ªþGC¡#·¨ `¨!ã=EÞù‘ºÂÔõQÎ ê½ {˜9Þ£ÐúKtz€\»K´¾‹uÖîF~ƒÇŸ¨òfû"·VwJ’ŽŠ&8'ÒŠ^.á2<Æa•}Žóh„)ú¬èå‚ÀãUj]!qpbÈ…ì­½Gœ¸5âk –[ùô´õ*¥wMŸèäy2Q=nÐG¶vŽMS¾+Ý Ã'†q¢œé×EŒ$O+çU¨8ãH†^•#5FÖ³òYt„±¨Îö­<3+ºqû·Ž‡„蜿9v²òq}[šá! =÷!œ¨bf<ƒÌ3’ëç&]çäw@úÍ*'.…C+„¾žò•ó+Ú<¬Ô*MôTnH’¥8 Z—¶êc©ëG”Òç:ï¯RµÎÉ€ó°Ê§Ò´@×a/¯÷rN[å!YË >kù£‘ã\ib#Cö.— çº*Œ+ÐpÝ¥õR­™GêÍëÇx„C9ËÐVï‰öXuUð£Îw•Õ˜¶Ì¼Ý*{¤Où=\ Ñ3ÀïD{°D¾}ô–7ÍŸ²å>=9­Ð`0¨+Jj:¸€/‚Ï>¬h©äS¶ˆ¹+‡Å™7-å4Ü\E ø´ú]ª‘á¤Ü8pô%‘3¾KK2 [l=üwÂÿ8ÃmäZbõ¯P“;ûžÌð™!vPñNöˆWô[`t{doú5f$Ìì3œS¬(ň†ãêiÕ,Ê\pK.Ý%5Vë‰E/ðX#×»×Gy#f$ÂKõ3Ï2“ËY¶ù—†&VmYý;fÆœXEOà™HÍ48oG$=BK_PDÇ!:õ˜0n¨i˜[jEÅä±vzh×k1xT¬œo©hix› Å 3¯ðÅ£¬fHÔ #ýnp ¡nÚõ@ãB+ ÕÿÍbÀx†ÈÌ _ÑÂüŠ®„DÏïr‘bÄt’ ŽæŒü¯œ¯¨­­¨µ0ÞÑŽ3ÿ´õLT†>„…ÇÅ%×5óL,ÇÙ)ä2[ýð»7’2.¬Ôo•ã¹!ÇxŠÏÊhÝÌœãâøiR’k^)_2 6âà¶äÒ —q’Üà|E n­™÷§B¦Á-@AxË—Ú[Ñ(éÌð ƒãì¤iÎsz.ÝÔFœMÃŒ)æ&´_Ã@mpªeš–½5šËÿÓU»; މÍO‡_ÈOVãô¯GßeyáJ‹õÔ¾%Ԉê²²b‘‹ó¼9ÚCÞÆ$Îý]iÕ­™Q ýÓ­ "náã²2{Ê!§ó(ÓÇ1¨ÓŽ1ZÜŸr£eᨯ1ŽËÊ̸óûKI£§^&a])‘fñÐ9 >.â6äÿÍž-à#Îg(ùŸ!‚)¾5\†Ì«J¹•„ÌE&d]&D§¥dQc½g*"ÚAÓÑÊ¡2¤›´z²/ïŒ6p9¸Gc&¡}JoPƹ¬oÛGOJ} <º$*+¹ˆÝð`lISSTKrŒøÊ”œ—ZtbÑAŽZÑÉ<å‡Û’¸RB©Ñøþ“„’Ç×u3Çì²ê¸U'ƒPæ˜W«õ< 6Óç,B©=·ûÉ|•TsTpN7ÚOÅ%¸2ºã÷¬F°åŒ®I„ÈGE^éå)˜)4†úýŽ™q9`Ü­Æo)u¯h…¬VÞ¶_å<ÀHJg¯?E.#åq'‹çIœ…p($m¢ÚMQ BÓSW?å.Àp u%Ì5Ñ8Ž!Ç<Ózù€¦k B$Ú?‡ë·¨`&(`Dˆeð¥×Í"Ä*©3½9]ÜIéøš(£áXÎ T H6š¦L®÷£ Åæ¥î‡È˜ÂlÝX©OŒ ˜oŠ* ¡­pY:|˜øþ9ïöú*B´›Ê «umÕK`fÜI_Veæüî¼±ÊkÑò;áÞ†…o} ý4s/¿ºq#z2ÑXY /á- Ý&òHé¿á5¶"À•¡j”RMã±”jƒõ¯d V½‰pqhus©—}Ì‹ëŸÊb¤h7 +ØðkÄÙ[ãV@Ö9ð‹`XßDië†B3KÙt9&®ÜÅU§E’?\ ¬ãÇ4Í”Áý$õhîr3§*Iþ™]7R&Ô1nIÙ‡Út¥&¨D6j”ò¯šüEK,µ~â¦óXj0  ‹ª³˜tY¢qË¡u^§m2p¯T¸ár±ëw;f´2î ÏqR•~ëÄR(É1²×­A¡I&‚'Z!_:·!ZEƒ8)*'n%ÃGEC¸_I¥›¬4xËèí/ïXÊémO‰Æ º){¼~DqàXÎ(^&«’÷i¸3>£ÉÞ)k)7âܺ .S­a(‚øÂÕ­Ô–#³+ÓvÎkµ¾éòo¸7»à8Xt´^ýßéíó:"½^V¿?ÞRñ-f1ؤ—~CR|ë&=(±é­ša¡n§(Éлºî‡«-W‰6û‰ÊßÀ`Ëò÷x¥¼dâÐv ¾]#×ÞLåû.Â:cf9ëŽÇK<ñæÙ÷ˆÝŠFì‘vÏ!. ÚÇW´š9æ-è)ú¨1Þ .ƒã‹½âraíWB&8¾™tß* yCÂ8’ö¶"/ú»ÜÄ• ,vÑhî´Gÿ–s^¥ÐxÊMyö<â ½§8ªÕýf¯£b,ä]=û÷påŒÑD~̈‡Z™(5á—å&R§»F+BÂzËà—$ø­CS.ñÏ8„ÍRãÊÙ[Ç™øxíµý] ¦é¼Š–õÖ®„ÜwTÜ{Œ…^_©Pœš¦A­‡úmbÔnm~×êÐÎñWi5W)¡Cé &‚§ Ç5œE¨ßs²¬$ƒ§\'䲑Ÿ¢*Óȯ¦xæÐÝR ËvûM(ÐÜɵ»)2´Ùˆ‡…Ž83*¥6)ãžWÌÌúÅ[áÏK¨6Mÿƒ%wð²á&ëxhAoïÜd>¿ŠçúMa„°"5šn0Op»ÚhD´„ëÓiÓ^v£€Z­°²v̼ RftbG 1PßãwûµtAxï„´ö·ˆAä±éqWؼ¿•j Ðš%¤n£4ËˆÎÆâ£Qûy:ëd“FÈ‚Kƒ…é#u™õÃK¾Êå¸^š¨‰ÀØÊ‰‰ñpßÐĤxÿé‚·`&ÈV–]Íð÷$y:äÝ2û'Û`€JPŠ½Ú 3Ò!~Oð•¤f„Ü@C" ®k;g‰|¾eŒföÂŽAcÞêÚÚE 7ÝÅ{S=ù ÎÖ †o JbÒçȪ]†ûá™w`›E öRºÛxÒ)‘›ðÖf©ëw ¥kJeaB1ŸÇß½Ì`n¿£œàÑSûQ/ ,ÇŒ8³'GâÀŒ=]RFãn9I_šß°2ò׎Sbƒ•r?)·Mu'ÆoQíEø§¢€˜dùƒ@½pY–ÕA#AªN%øÊfE› d‚”†4š'À˜‚q&Q&W2ÿÉ4³“¾3¯Ï ¶É%௺lfˆòeT}Tl£UÇôÛ‡H#/%tNŸ ì_nš)D†}¯_OV2ql‰ôwð8Þ=ûï¤eìgŒI^ÞÀ°OµX>j!rì'ñïD^bÈÔÜ«V¾H¶ÌŠ»Ñˆ@—–*ÓÑ^&˜Od•_ÄaŸšÓ@43Þ¯Ìãt ™Vs®?²Ü$ õ]…ùÃ…»¥Vq|à轜À¤Rï(Ž|•—ÕÀA4a cRhêýÃj‹fmÃõ½“ qBšèæ–øúF¸ëÎŒfZbõ’òJN6å]F bÀuG³t_žtú'.ãS–u¦õç0½·ò)§æfb4$À{ͼíwŠIr ø‘¾7Çq=®6ݹ gY¸tO¿©‘޽HN¸€øm%&ž¹œî ú*pì¬Ý BO5íãÀ™ÙnT±ŽýàqÂyX’Œ¦»¹ ÈI˜ÅÝt[Ç{éX!pb Îë8ƒN}¼uEK&Iÿ)I¤Ëëõ«˜‚~ÜtÛ! §xÒB¿²™ÑÕŸÏûžÒ¿dž«¦"¹*°„÷¨®ù¥‰Ä¨ècæ¦ÓöpbÍ$¦gÿ¦Ï8 qo3‚>U}jWñXäŒ~øü¾JRãàú­Ã„»ä›÷á„Ï](oˆEºpg(ú‘õ7ó½ë›W£ÌbCì7—‹Þªg 'ɲËeé¤ñ×\eiSˆ¢ãIÄTì³VEkØÌi³š’,¦p©úiÈ@kÎVuøAÐzþ1%ÃÁ®Ä§µ)Rêdqî2ÿÜMê$Ènê6ôú.¬š›dršfV$Au”è†gtÝK>“­Ð¶cëÅ~IÇs*t×÷é!ä¡„î®LD¸ƒ:䌗¥SYϯëPßj9¹-X¹ ß–¨÷j€Tܤk¤kŸøŒÁ0⦘1tŒZÁ!‘€˜h5¬°Aføá¤K_â.—ñGù¯":Ù_j ¯r3"ísŸt'î½)ð`f‡i|¤÷üNÀº&çizã÷S4ƒpƒ¿ˆ4ê/ƒàüDIƒ¤øK¸Q]„¤ÞþKºq ‰Iœ>HÕá×}ÿ\U7jâf@ÇMSOý¬0ÏЩkømYD‰'¶Ô±Gò/âæŠ¨‘Œ÷C°Al‰)§!!œŒ-»•Ž Š§§`¯$ès¸â¢O?t¬bkx"Õ<Ö·k8ÍX¦çPd$ñZY"l2®ÑäE ƒpÐeî‘_ï±@u»~E5FÒEôž~"!¢£$~â«t ©ï=<˜:nXZTa/.^>?3¿áSã>1Û}$6XªqhbR|æÐ£‹QÑë1°ýN:Œëàƒ æ§Á‡á;&#KÈÛM%®f|Sª8°Ítäiä©Ë‹èWlÎS>Çì)õh§ºñE+QÑjôNá¤óÞ©Õ q=Æô߉tÑ`½Þƒ„…«áŠG{7%Þ®Àeõžî<²kðѱ}Ž©ÿMÔÆ}ÏÉR²²§è !?©Þ­äž–ZÇÙ˜XœÑ¥’oö'ªŽAœ†dK!v¡'_H(©kî‘ÔŠó@5‚ÑÑç4„hqžgòcb¡ýB'uŸé †n=ùGœíYNè%ú οfÿ_MgÈP{莉_K]iEÿ†ç‘éÐHõþ&Ž­WÀê;õ׿œ˜$5èúIý%É“^ÿT:ƒý)ÿóÙ„0CM §ìø8¨2û’Ÿº¾íïòŠ>²ãë ûxõåOšn5{+ð_'>IÝYãs$ÎrD¯ŒþÇâR0Ç/_”šãM$z©$ÒÕ| d‚˜ø´:¬íï1}½‹\š÷±¯ÐA¨¯«¨ÁNôIhDtXí³ ¹Œ-ˆšBoÔÅëž s6ézjkZÎ*TÆ:öÍ¥ü»žÏ“³1Òv³ÛÏrºVäZcuè7W™–¨í$G‡‚õ@3‹"3¿ŠŠ¬:¡†ì¥Õ+Ø+³×aá"«[Õ—„NLwûPÃö«"Ÿ£Œà$M‡ð ²F!mühá)ÂÍV ßïõY hJü—Ÿù÷Ê7˜Ì:oÉÜäO²þª¦óÿùôºÞÚˆ“0$>Å7¡ëuP‡;Ç_üt’i~×Ð e úñð;΋/Ý]oü—R9K’¢ˆ}ÿ±aèÂnë`ÝάVÖ‡NìâÓµ]ëâ®°Ãûu&–xOyÒÀÅŒ.>À;Þ rJ™¸“œn`6ÁI¶­tÅxq†78c¥xLž|ò9êˇ{*‰ÀˆNvZ!øUɧ8³V! 9‘84 éÚ‡BÊwçÕŸ ÒÖ$éøˆþÖ `n±,à ÈÐûø©“‘$vüºžêdQ¼~±›Î5MU7õ€ÛɆïmˆ{'…‡o‰`¤ w‰FØ)ÂA`$!OîÇz~õ䇕xǤ)¯föûWt—øä1êº3™&ÓgEðE8cu—…Í(ùž?NjI™Q'í£XO$Oˆb|4Ñcµ4 ¡Ús˜ð¾ý•$¸kh¼Ì}È“$£ÿ·„ÀæV/iÄÓ?±QsªŸ$Øuéù£ƒøH²§.=‡n3å D##oÃîoeÇp§»'k™g„jB– ‹/X¢ª½çNKØtB¾h|ˆ2Åþ{4P“´KÌI²Š\BHWI]v0ÏD0&aN—$ÔCûVBl£ƒò2Ûââð+¿¥À5¢¿sð¬6# ¦‡zÍtólž×Ëÿè%3Üi_©I«·ðÛ’äw²‡è“´"IRþ7µŽãUSIà^ÙÿNÔi:I ’HþÎ3 Ïᜌéî¿ÃÅgeÓIY#Éä·Ô~êÒûGòÄ&a€f’¸$¡Ÿ)ðëÅþ €\™Íg^WôÈ“üg楥·«X¿uú׈.{s â8MAÒÓ9`$—0#*aZ6‘èéÚ©4FB¡5àì¼§7¦ý­n1áÖ4æü•ÕA-"pôûU¼ræM‰ï«Ö³¼&Âuº†¨CxAü½ÿm«[ !èZ«švmÿ£-Ž܃š›ÏÙI½«ìw½9tY`²+¢éÕó·+øàkØ*2w^¶þý}=«ÿ™_D]ä.‡õ¶µ`•0ë0ñO? ÊÖQÓkv„ë81“K×éºVå`W¬R¿Q™t¸p¾„iV ™¡S¯%`ÁåÑRC×Îëo±¢_§td MÓþ#ƒ Ô’uüÊŽßèÿ\ì“°ôÚŸRÒеm¨Ñw !?Ó«*«ú©ƒÇÌú«Wa¼*tú•pKùVY&Ó¤.¦A?”¸u§ß.¯€¿Œ4VI fNÄÑÇUšB—;…xë.cé›…IÌ)“s£¬Û-ÔÇâ&qù2M5ýUR hÀUuñøPîr¾hzA ÈO9>úkYÍá)ý1E:ïÆã˜Ú:ñª«þc,Å¿×:$ÔÓ‘_ê¼Õ¿ü‘:íPƒQg;øŠ:¬â‡y•ú§CcUœûôOC­Òjt=éÄ/èFØäÏŸkàZ¨6‰xºÃ‹ðqtÔˆîœ]Å®øw•+e Câ&ç?©ÝSœÀ0ˆ ÷k=}¦—b‘}ãÌTÆÍŒ)Oi·NwVïé³oIO'RÜèCtFR²z¢±k‰>Jôê_vçK+9»ðsËÕÉ´êw<‰N4¦5é’r|–Ô®m¤Ïìš`!R^Ç\ãüJžn'lç”{õ…û8O“­ô'Š”<¥¦ { Aj˜Û˜`û®g9F¯6â¼ÌÛMæy;N·q"׈ÓÙZ¼gOU÷x÷ˆø}¤ÑWÜ¢‚š•c:²Ð6ˆun’¤/éMšR>Ò4ZjåU“èIS#M/oéþôBI¿“j°”¸´Ñ}õÀΨŒOɂчóºßIÔTä5ð†žWΑfÎÖå7Y7—,¡éUêêÜ<¼H${]—O½ŽÔÏi/œîUL7QmÄ),­¿ÉyË{äÐP탩ӃÄwÖué´ôS ¿dCªÑnž@…Vx. Z~ ã*h×uøž,ßg@õ{”_~\ué=Lqq>¡!ÌÓ²ÿ]¢S-=®”ÑöMÔâÔÑ´Ÿ/¶y3†A)žèÓµ¾„®Wÿ Nù®Å[/®‡ƒÇѪº¢§—j-›.êALû=¥ð‹}G¸ÿž„å×Er%”ïÅòy²kÚ'ÉSþ+µŽ“$SÉǺÔBge‰Ó$ÙôØ2]aˬxØ9HÙ¿)a~ˆ’–aø’!mäüªèqÚG¥Û ´¡Å6Då¼ÞÓ(\g´îmup%2q8¡6ð3Ÿ|»ÎFº€Ôiø0O †ñÉAÑÖ3,z"{1s–’wʘ‹ùô?®?jÙVM¹ ;r™”lNâevé+À2˵뀄£ê¾”pD†>S?ßBm9ôSÐÝûˆ.“¤œ®êL ’¾@}ÚéD#@¯$ÝS—Ú<ú ¯÷ú¡­´ôu©=™‰ê­Ñ3<žÕß$ÑôW³ý(­Ú&ø±4À3¡Fߥ©u¤Ð0jG~@Ò}ž*‘Å·s\Wc÷†~‘gâB éé¡Åì^-CCXØq¼ñÔ„øðÝe”þL}x‰©øºë:@å ÄpÔ ”q—ú¾¤“TÜ%Õ¸|Óë³ðàíu¯Dþ„;zã¡ê”¨2Ot¹d;¤'¦Æ®Àâä/ãíG]7r0y‰ÇpŽ8•1ÇøF CüN Ê(â@ϲ®aðwB>‡xÀOðs‚œœhÕ^x`Ƕý.Ç£)#ɉCåEÈDü¹­Á"xªc¹ƒÈΫ0t>ƒÐA–âH,YÒ'žº4Oˆun¨¬Z6þs¶cCÍߎV\b|½Ã˜¹®ªèøÅ©–ßÀòÉ& yic‰ï‚i=9¹«gzS‡X¿áS÷8Q.M[šrlÿ¹õÏßa Ú®QÂuÓÓÚ-þ¹…äv?&ç#IÁÕ$14ùkã8ÿw~àÒzŽŒ*z̪®×AØÊWß b þZ%® wÉý»º^Ç œ¢&oOÓuÔa~ÅÛß‹¤‚YtØÿå9ØÕ1‚öMíßf½Gz= £Õw5eŒŒw;®ï#=zøEGbìVý‹¾ÀÉŧ.Ù ò©8^o'ƒ~G+ÙDñ˜úi89Á¯ã¡ÿN_Ø„þ¹ qYâSAö9S’gl‹Ø(FÒbW þ\%‚T†càýUûwÜMÃ0Ð1£9ùVûç0‹èÒþܤ¢~|öªþS¯ßAGíßßÓÄÁ¤<6×™ÖƒbN‘Š=> 4QE —%S*ÐjÒ¬xyŠÚ–ëâ%GmŸKŒ,Ô¼8¤€eU'êƒIXR៷„´8Mz¯£Ù[P9÷HÞêÿýÃ@SÊ8—ÞÏúõ£š$”ûP+î¥ø£xüªáCzzO×Ö˜©Á¬KïáçÓl:Ž˜§ÿ¯†ì2¸ŒÓ´ó{ºa@÷÷|þ‹WHcWÅÛ/©¿ ½sߨXþ‹•-jYv•ÍÿãÿbI×É\Cú/ùY¨µ4ÿ/Ÿ¨}ÿ˧±DÈZ[ ~è2Q×DUÊé <âØ‘Qé>Èÿ‰Ïâ ·ò("f¡1Õˆz+*ó˜5Åtüî”èa1ãŠãì¢8! ‡¥fiñùf‹¯ÞZ¼øÞâż_ÈAˆþÐ"”Ư±n0¤Åɺmñ•§Çñ¥-Némž¢Ú6xƨqLX‹ ›[¿Ø§™µ8Q¢ÅÁ,-޵hžšÓbs‘¦È3M<ÏãUyÑ öHŽ›:odphjlÒ/v›œm—z·~çáV±¡i¼&ÓãA|§ù=ÞÕêùÊc,u÷Xì1mêQ¥wÖ¶r•;Ü#ˆ½6ƕ۠ÔöA,åú¹úSŸ‹± @^ç[¯û|ºÂ§šÃÏ7¥U}ýë`ìãò°_ý´]/d]oÛÍ^_ìÿ97P’¤#scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/3elt.xyz.gz000066400000000000000000001447121514310134000240050ustar00rootroot00000000000000‹Ùp0ef_3elt.xyzd|Krm-Îlû;£pÿF9@/ЀþùOáJˆm“rµªyX@ )•°‹þÉ¢ñoü÷õ?þf²5Îþïÿùõõ5¿Ç4±ß?ý›¤ïÍä‚@ñEúùÓøúG¨¼÷óÏ¿þ'ß¾‡íÈ(²eማÄ÷ói9@VôíÛ—Ûûi=À©KöûéùMsû|F´<ûb¦êæúÓÿ¸þËî> æHßn¶ôqàZ‹áÓ#’Ù3G?@ÛbŽŸ&ݸᣤôù%ß3|7r΃”ͰœœOðÅï˜TH&rö·–ñ,|r!IÄqÌ17¯wL9HÖám†è©ÿ“Cc) ~Wd9mÃv~­ïÅÎò"‹¡©óݼ¯/Žà˜oü›EÑKçiññŽ™ù÷ºç¦¿±>’¦M{‘û›ØÆz‘ÉÑŽIÙlcÆÆé›DijþŽóÜ´x¼Hþ¯>ESß1å{¬µß #)äT¿QgC?ó<¼SrÛÑݧêÝO²ƒ¤À "ãTÒx¿¾ É1Ѷö-û §øûçsVi¿´ý£äȾõFÒÏ×ãtŒM/G<R˜Í¯ýÍ‘)^Ž89ÒÈSÛ‘+ŸŸ]¢@R!ç4zçiß±þÆ'óAneYÈæ`ƒ,Çr²|ï;O:ŽX  Z0êÖØB/Ò2òœù‹äï8‚ëM¼’bŸç9çÂ%Gòm‹ûéòé?öB’ÏÉþÉgž22ÙKü­NóåHæAÒðÉsѦI9ÇįG­lŸ"è{®¶" ~ó’ÈAf‰pä]EIÞi!c¢ÜÆœlï.‰ä²8`-B;¬h¤-±vÞW­7æeRÙ#$J°Ž'’Å ) 'îë$_˜§–TPµ÷SçĹ~&tÖ®ó"ž÷¨šQGß¼¤Tò#ÎÁj_Ÿ÷p|ÅQ„ubP´8"!ßó[â³æYE-•¾ö/ö"‹£Áb™ª† œ#]GZÄžç¹ýÑ/‰Ü…ŒbÚ2ÃŽäûÖ#õÒ^û©†‰ÔLýû=ï6 ʦå%ݘç­ôÜòG]ÔÚ7Ïñ®ÈJЭM—âO$? ½Æ,E·†MÇ1CUMÐ_%éŒfßù1°vXiº(SDu™Oç‹´‹È!)8d ¬¨8Š-qjkWo„Xq ù3*BÈ·ýæ%ó«f Ï»‡R\ÆÏ‰[ůКŸ.´ßý\ÅÇAœ¸ö8˜öò¾Š#Ž„a-æiú;ÏUQÄ’b$‹Þ£ù³8"$$ëQ,ÇaEWw/SÇѨ\ïίâhFÜ´L‡€ßL»Š£Pk³å(Gìï<‹£±uµX’ )àß*ŽâKX‹w|Æ¡nîâ(SËÂyF^zÅÁ¿] T‘“mÏ7‡ìÒÞ=Ï9dï͹ö3Î;mØ¥]ÚÛ#…1²IKè=ï»´÷öí 3Cè%‘‡Í]Ú{ogÃZ<Ì> \YÚ;Ú–Õxߟžîƒ¼íQ4(Ž+Š”¨ï‰ÛŸþhƒþL9¾¶¿cúí¶¡¶ U§ãÍ!^ý‘©LÆÓÁ;2è;&]$ËÆµsÕwç½82f<›‘iÙ×{Š]nÇ “c磻¨óâÈ®ày5ÿtÄ…´‹$nÙ;Î ½çÝ‹£ÐýÛ±vD þFHðîÅQÄÜjŒHôd/޲±%\;±¿Ÿ‰¶H QìÚJ‚?­éÎ ÝP=â$©üXÕ›ŽÛÆÚšíx:­W•ôö±2×Â5ÞºaTù4ǘ˜w*XR€S!ϰքÐî÷³«sØ…nåÓEÞ<Ðâ*B 5ŽEüSmîŠ,&ÛM8±U¤¶‚F8[—È ·ÿÍk9ð߯7ZT$özé-Œ«1ñœÎk:„|ÀÒÄFb¯ëY´[ú-Á,ëÚ ¥•f’FìÇwà½[WÉñÏq×xؤky…óü8ÑÐ/ —ÉË'Œz­Ö~\CY h±5É0÷ tPKV† ã¤b+ªÜjù×!Tl%«­­Ÿòx,gÅÖˆ"Ùt©Ë¼¸£[‘ëW(&?ûw¡ÅV4¢ÔºFÒ Z{’]¨YK˜ê öõx!ÆbÏ׎ŽÜ¨ç1!²ÞŒ·Úez3ÕýÚ“Ê) ñâï¨ù¯iM?­¬"Ž}¾£-6Ðz›š!èï¨+Yq(4¦wÔYD'PnQ‚ÐЈÓØâ²‹¢Ãóþñp£<À¾/"2$“Ãf¥))ã˜;=$¨[™¡å˜ÇØ)I v Û%Áüzìˆ8ô¡N dÿ‚”qüˆlmUB-ÁC" j¯+z$ƒm<Ç‘X!yh±q ‚•4õ³·¹¦*¨F+E.!$°SbEdÁ™+1 ˜2D¯G¯Ë]Öà G½öÞܳoVLˆ•ò÷âOF¨ñã°QËà¿mÒg®¡¹âUÊáÛÛ¨ÅkôûÐõN-‹oËt(¨ç}¡óxÿÂÈVDýoÊÈÈ:æD@Çz“é1ùlL¨0Lj2ÂS1´ƒsPìóØ–æÈ»Ü a–Ђ²ðÆcÈq4­cPXÔ­%Š£ºo4ÌCayÓá%Ž×ÂQ÷žx "¢‡< þF¶˜'fícRh^[û‰e,VŽl UìÊ :ŒieÉÊ'g~ Â6~pNhy²¼¼ø4â ˆɅª÷Tñ ›eåÊ’¯¯3bÂÅÊ–M»T±lÄç ÷ñ*òîL&’E82f£;æ‰AQ‰ Þʙݿ>û‡_ ÎÂ\eÍf…Ì„¡çNì*o6“®àBzáÑ*s6oSÏVô’˜]Žc‘.²ZKðÑ#:ˆýcY„¬$ö–‚ƒ³u< 9`hç.ËÊr^?×,Ÿ Ä!ƒv®uÝé5¶nd V±5}­V …§A_°Š­Ék „zª×‰™»Ø¨ÉÃÊ÷.—Ö?®Ïo&Ü´¡eÓ¦ƒ©ÚQŒmÀ%[ù´!“v#6j)ŠÒ]Fm6‘ÒjÁ®ZNmZäÖü0¶vYµ1À¤žŠ#î@ËOÇL‡ÛýG§^è¾ÐiŽ©X¥é¬]Žzæý^ Òuƒ{Æ{û¾t *Íâ…^b½ØŠŽ Ã%>K†œåÅVtÉÞ²öP…F~:_è„ÂyiP8]®Yî _#gÉÇýõúêä>[¸D… üë•óè¬!ý–_g]8¯:7Pàe nŸýÐï¥ð…^o]Ô[fg[¯5þÆÇ\'Ù­lD—¨£\A›4šÌ‰,òþ) ÷½DTPÁ LÌùåë‹ÜÈ™ÞhÜ7ôza–YNµ€Æµoãxl„"ù^ÿösõ÷›v„¶tžmÌÆVh$F üBÁ^<9+í¬wÔy-ÜÔ§ جy=\Æí˜ƒ(¥ëeøÚØFr‚¸.î»)ø([‚£^—”湘×ËÈÖ‚1õÓñþ¼8¸F®î.ÂAaÔuýYÅ>våUÒos6ëcåòl-Dl+("º^Æ"•VŽcSõíâˆ>f®(avÉ}†Q¯—M€µF:’« ŒJ×Òd¶.HŒ_º^†l]¼)œØëeHeAhÄço}:øø„»WîØÔ×8èõ Uÿœ­eSz}ÂÀÖ’ææ‘E?>!·FÚ¤Còë½9¯^ŒT!\¸ØÊGc†®ÃÊ €^ŸP‰[‚÷Ï{¡Ï²˜>ŽÞlÇpýv@åkÓíÙL&1œ€ÜB­‹ÛÁõœX¯¡¦(ËO¯B¸×yòÙÅ~„%ÔXâu]2Ñ&s?õ‰Zl ak²<\;ß7Jô´Tw °RΓ‘Ð =§€±nI9OÔ´Q7Ù|»c’ržb­ì/TòŽ^ g/#4x¬Õ^h–c6œk9OþfHúº/Sœ­—ñª*?kصžÚ[;âŒTw¼Ì&°óªÜ!gɾХï²ò-G/ò×ËÐP$ó…ÆœÜ¡¥ëepZz¸Y²~žÔtþ¼êËZì­~+å7k›Ä«V¿ƒn 6_þ¡óDZýV”5[d[zû­Ï…ê/T?q>¡­ÕoEÏMmÊ‚uKo¿%f0j¬t鯨·1yº"– ÌÓ€–‚Ï'=¯íŠR²Rð¡aãB @I÷Å…‡ªêЧ¯:£Ò}ðñh*«Vy@‰»o.öÜ&HldL¬[÷ÑElÌ4ÜWr%†QKFeŽl¹3ÜDÒ}vÊ…[¼:A¿ÐÒ„qŽ©ÇÀ¯¥x¡ŸËH~¥Ú1ÿÜà±Ù½ßbž£Ïuc ¬[·Æ`¹N™¸¬uoLÖšmYJðÔ4 ÷Æ$ºV äE,kÝVQwFÐĹÞ“t±1¿êpÔ.ÇËðï´}æo99¾•?¾ÕÕî}Ás ÂgÔý9Û?Ðz(úl"ŸZ`{a9^÷¹ÙZÎ/4»5s‚Qý¾ãZ¿7)r>‚×D”^F:R¼~÷•+Ñ#>sÔô2Níõ߉qÅ@t;¯óDéeäA"ûMP5ê$CE”^FZ7±®ÐC’,½Œ¯óOÞ}Í3äʸ¬`+6q9!4´?¾ËYV°õun æšOE \ÒË8kïc£œS´ö u+½Œ¯sÍü~í 0((½ŒuXŽ×TpHÈ‹-ޤ­8êZŠ’,½ŒEí’rÆýwÔTDéeä]’6íÂù®~@d¥—Q?GÀrœò›Áu ô2‹JM:LqxOée¤#Åk&M„â)½Œü»ÑôV¹*I@‹­XìjûšO)!ÒËȵÈZQô »¤—‘¢JQô[ËŸ.˜óMôø¯ì…ä=7©Êée$t.uÔ„¡ü gqz_'äßzv<øaðì”ÓË8®$ã¨ùhuò¨üWo†Éc`³¾# z÷˜¶ËñXîä9½ŒLJ£í+oÙ8u bO‡Góº4z¸­q.ß­¨tñÜ×oFM/ãëäWÓFÁ|"(w`V&̦¹+¾A»ð¬L¸¢„ÍÊY\…qz™4£Èr«†> Ûàô2iȰÄùñP­ümÜn%ÎÑàô2º—ï–ˆÖdÂô22í1c9Ž<šwß°Y» :D1%†Áð¥ÁÖµËP 9½Œ|W0w¬hÇÁ{ãô2r¹« =ËüФ—‘^çPLD, Få un©XUG½uëï1ÌB‚ËÒ u¬0ù2ÅÚ¯#ìVC…TœsІ~"@ÅVœÎ® “… [„»Õz&ž [{;ä×”º$ã­0ÌÅVÜl9+Ÿ¯¿ù•y^¨+·&*þf-¶"e­eÀ{æb+”Æ@´¼“ì-ÌÅ– ´Â§Yâ;Àz¡JÚ& câ¨Å–»îÕ;ÎN)§—q²ŽÏV ó©„Kzy«M³b‘ºýª´€úFBBUœ/Í ^ÓËHhœCí2‡áQ2§—‘Pvì ¢çV"ȯéeT¹µ;ñ'Y¡^FB·u•aï û• /løD×€–& a­-kGc¶§—‘P7inÎ6{Þ€[ñqlÍV¶f¯¦h±µH¬ùsµŸ>‰_ý:0\Rè1ÎU‹­|dÛQža8[Zlm#k‡ÛBNÀ”.Tyã²x;¨bÖb+>1ùuúUÌZl…V†~+Â%vó€[!4!ŸçЄ´ØŠNTšˆÿÙæºŽØâX⢒(H„€î‚êúËÖÏÏfŠØô2꣕¸ ûš^Fî̘¨ÞRýú€Ã^F>÷¥ÙOG€Â1L/#¡®³5&q Žazi²Ðöf¨…BÀrœ^FBÍðlEΚàÜT4–4[NSpu٪ߊ‰Á1<×vM’Y±¥q’Ã%ÄÜű[º•Z‚ÉÛk³[Fˆý:>"k[ùãÃüê" ZlÙ{u[éßk-¶,”C«6!.ÊŠË:¿=xî ´ØÊÇ|Œ™ÐøI ¹«Ø ùŽÚ%$‚løM¯Û/,œçG/Š…s[!ýŸå¨4W±µ#8½%M›mÔb+·–µ—+Æë.¶v¨Õv`ÄÛ)ØóB}¯Þ˜< >7k[‘t¼wq¦Žá.¶‚¬žbùHìñ2òÓè:+2#&øãeä³T[-gåm.Ë4$ £hN#A–/c¥‚ß-i¾í†QwA£‹²fªFÕA¨ÔhS/œŒu>^F>h\]<¥z…8^ÆÊ+qo>aôEÇËÈ PöÕšµìr¼Œ|§ 7T',¢9†¬íÅVLOA>çs<†®J«-+4õ‚pq»Pß³em Ú‹-2’æ,i¡íÅV4~ý&*JZ ^l…æïÆ É(¶¢/ÇT}-¿ùUƼÐ-íÀè‚Pú@­e—¼Æ2€[¡ ¼å×8@àæÈ(¶"!mý£³'PlEêøÓÉ·KÅVPÑ "‚±>Ðn'åÿW.«ØŠ‰pSð¼ì@‹-™*-eÈz^¨%[³ØÊ_Ùô"Ÿ†ÞQg±•"šØù ¿“IjHA¦·ÕFå ]2þ8$ï h±šXÚ‰å¹@’ÉÔ mÙå”]h!dÚ…>ï*eìèŒ \f±}XW‹¥â¨—-]ekˆÐË–/j„Ôñ$tÙŠüÔ>3ð4…Š­ £¦Š#7C΢ ]½p’2²EÅVþ¨®©·1'˜BŖ惸v¶.§ªºW¿f־Ŗ÷Í"ô­º>Ð?wqÑ5AdѾP¥v¶¢æLˆ*¶¢ÂÑú“ r 5îé-z „^¶âp´ÐN{ˆåËÖ¶Y:€-¾líæ¿Îüõ¦á.[·icÀ ÷•‹­(<˜4Ó’%ÐÚÂv¡ÛÚ²ˆÁa èºP—ÙÏÖ‚ŽS¸ØŠÆFº™BøâGØ?PÐùŒg´¬-ãBÍšÐóßÿ -¶,‚¡S`ŽgKèBWßW!Æ}•b+!õ+Fˆ €Ê…Êþc+ 1 —-Ý]Ääwà²}P«±ùC'õ²eêÍP—(½lE¶ Äqk;à¨ýQDC[/[!uÛ1Ìç°,½lmF§tçC&{ÛÑÿ_Ø›$[ãH£ãÊUä¼,ÂDíþ7ö 9ÀÑ5[¡zÑmh^ÇÚlmwƒ%E©{C›­ø\CÌð]›­tþ9'Èõ¢[~‹oÃíÀwUoèaz ± ufkŸ¯xÅéÃÖ^ï|› R*v5t >4%Á; Af›ôxØlh­×²gágÙÖÏY4¥gMøÒP´¹g,p¢Ä´¡y}ÎW¬‹k¶öAÄ»``ÄD¬ÙZ6(´`練Úl-º8·E9ù]›­•ƒäÔ3¨7[‚Áë: ÷j‡õêÍ–ÎA²² )A¼ÙRZ„Õ+ýXñfKA9y &ðÞl©±o¸O$Öõ@9^Pâ)>Õ”iŸwÝÐfkÿû©\úþ‡6´ÙªºUz+ÑÊðfËŒ7Ì^”ÄF³å“–œl“´Ùz—WžÓ…¡Í–ûP¾¹Q)•h¶â¼ž)¸\ZËØPÖ2*¾@k~4ª÷QPe#­exNeÓa¡ö&­ex®EÁëmN ¶µ ß¿á³c wlkÛx3Z¯k»[ðZË(Ý@X)¶‚zØÚ¦>Û„êcÀIØZFi,ɹ MÝÖ2bšÒ»îÈ‚Ö2âä¾vì ´ÞZˈ‹–ËÞC_À”¿@„¢ñÔZÆ&Æ91d.Áˆ N;;¹—?èÃV¬1é€ßg?XDÚZF¬Åx%0 ´ÙÚÎ¥ÎT8Þ´µŒX®ô®qr®~Ðfka”·–v‰—m¶Ä'ELªB›­¿^çg•¡m¶t¹}vÁDh³uN·wþ+üiC›­¯Ó¿>Ð<Ðp¾ä!˜úm-#8[¹Š´/° µµŒí¡ýZÉ*$Þikû_”ûãU ½ ºÔ?ƾO|j³µBG—÷d»ü=µÙй„ è5ñg5[Ñ»¢ R56´Ù »{œö«¶–ñ¹8Ó†ãSó@Ù/Ø?®8m-#NéÎëc9æ>jkÛ¿g9ilO^ µŒ Lö &ºÚZFdp¦ªø¢xت¸%ß0{iÁ"l-#YLYÕm´ m-cCÁ/¨Üÿ´µŒ¼’7Ìf7Lk¿Rˆ—öæ#‚l¨~,øK@PÓÖ2«òŸÞz§¶–‘KùÚ8Jût64ݱå­Â»¶–Qùμ´‡Àu¬­e¤\Ÿõú×û²¡Í–L~×}MüYÍ–À…z¬T¸cµµŒÔÁ.„­¤§6[š‹–öJÎ6´Ù²ÉÉl•Dlµ–‘fœQ©‰V±¶–‘>“ËQ¶ñ][ËH—äHÔ•qC›-W®/˜sâzm-c/£dÕanÃÖ22\Œ77-ÂÖ2*ÉŽïK¼¹[ËØFÖ"õÑ'fPhkÊyD±‚¾k³•ƒý-´¶–‘99`ßNø®­eä>]Ù‚ÿËnh³•ÉŽ´õ¥ñ-¶bÛàN—ŠFNº n-£ j$þm`ÂǺµŒ¨äv¡¥=EpÜZFT‰òç]Ó@ËÐ[ˈ»Y8D{Y:>5úq#M/¼Žo-#8…ö©/VˆFê­eDÅYÍ È#Ò[Ë(¨ð‘±WHàzk5>Þªü,k¶ôₜù®`»¡r Âö«Ò½eÍ–_Âëu(ÐjÍÖ14_ßÕis[³å>& ëW"´ÙŠ‹M²q2Ðf+Äé Z⸠½Ù ½ètÑk ¦Þl…³ åzõf+‡òrqHÙÐf+}PMÔeŠKÛå@YÙß—Oþ°UÝÓù¨ƒ ÖPÈÛz¢¹—ãS¶›µ áhØÐ8P*}A0uC³¡¦¤’mS;ÞÁk«¡++ÿ=Q×?èÃÖ~Õ™KdeÙP‡téjÿUÉ}ØK<Ùá›x¾†448 R¡à D³%W°Ëûî`qC›-Y\êµÿ[¨\Ñh¶,¥§)\»Ê'¡_‰wl4[ªìmø»Ì¿ Ùl™3q Hµšã@ReeÍë5›-ÿlî}éàm˜ÍV s>ŠUàÞÊf+¨¦\ˆ…&›­¼æ''èDe³•ÂÑŸ¨·AU݆>l•©h,ª¢ìa—64YúšÌï }Øš_ÇÄO¡Õê MN É! %Øõ°µYL,¦ëlh(ï­Ê{{k£ÙÚæãHCªÆ†6[²„Å?1dk4[˜Èt«6ïjÅ m¶ôãUB',—Ñl©%oëšm¶öï£ëxÔh³åëS#í±ð 4[þ‰9™6â@•«ó³l4[±O+peÍfkû0¼cSà’·Ùl…q ¨lDX³ÙÚVÛ„û8E8¶Vea°ðƒ± ›ÒÐø¬Wòˆ Õ†¦É'ÒbŠÍ‡­5Ú÷áˆ;vzCÃxs˜3ú°µ¯iÖý×–ù@³¡ÆÙ9Q˰u5Ô9vÝê:\þï²Àгõ°µÖ0*"“f˯ÏÞP8¾¡ÍÖ»•á¹·X&ͦ£õµ§4[ûŠ`¿@Q6i¶Ø…¨¨™'B¶ö©«l>^Ó°¡ÙМä Ó‡-ó#Óý5Çnèh(&aWu‚Áý´¡[2ãSêå¨Xk²è©%V¿²j¶–±]fNá¨{Ÿª ìôW%¬Ö2DÈÖ^•M‡×qk"ÂáÐ휂–a­eÔx6¾ŒÐ ÝÐfK’O?êÆ¶–!û.ü$Ü$è¯ÖZ†˜ é ÿ^¹MÚl¹Ø'¸·ZË®…(æ „6[©hìKµ2‡ÏZËЋü‚r!Pþ´Ö2ê€ÔÏ¡yá léü¿ç…r½µ–±À™ÕãM?èÖVת‡R/k-CeqC¢A·¡«¡Â×ñÞxÀ·–±]FÖµ·9¢ªµ–Qç@bÕD­e¨R‡›»‰^Ç­eTÇhZûZøÔfˌӥ¯qÑwm¶|ðÏÚ®¥­e¨[|Ä?,©·Ö2ô¿Í ×kkZ-19‡é&ÖZ†]×ø„ï ’Ö2¶ßõ1É,À9µÖ2¶%Ï7ŒÄ /` O^`Ƕ–QqjÇD¦};8¾@(ë.¥ÚÀŽm-cÒ“_@0+ÁZ˰‰Õ÷wŸ}º·ZËØ· §ñTA;ü¬Ö2Læ—X̵Ö2öú¹Œª¦  Í–‚ ~wb‘ } ­µŒ:tü#T&¾k³¥þ‘¾.~¬µŒ½_8°/8¼âZË0£{;ý‚ßµÙòõÙ0 òÿã­eX@pàiýä`yk–×ç.¹dÞZ†á-ÙÑ`Ë[ËØ¬5¹+„½µŒ"‘¥WzêÖWtåãA¿7o-c¿šåZ>0H¼µŒ*cb,X¯ÞZF}l–¾¶=‚?+ꜟµ!NØj-£Ê‘ù’‡°·–áòqø~ZЇ­½ãù»Æ>ñ¶öïg ¾z Ãri-£²éè’¯d:h³åÂY Õ¹¾kkŽ]Ð:¯Ôo-Ã=ï­è"ç­eÔ~ýˆÕ4䬵 ¬½]Ķ–áù=³Jd6ôa+®•Ÿ“kͼµŒí`;ûûÚºÞ‰¢ÞZF\ɧvEfà ´–S®OÔl |ׇ­e×üBåÉ[˨ÇÖÛ`:xk!ñùX§#Áú° þíÓ' G~yk¡¾x¹$f¦xka”„­uAhÁ[˼·r ®×Ö2¶¥dkÏa ŸÚl¹Àxòp¹´–îÉ©\ }ykbósd@F¥·–‘—²²)´$ØPo¨³­½ÝÅw}ØÚ I×–¿IY ͆’öVmk@þ·–‘Ã5BYºÀ$óÖ2r~žº]k¨‘öÖ2rb§«ûÔ6é¼µŒ”Á¢ê¶Ôa(·–‘BZF ë Òû½µŒ3ÄbJ ¡h³eÁ²rfþyké*ŸxA@Ã9o-#c}Ê&ëâ¼µŒ:Ì9v|aI½·–‘¹˜-$o-#ÿÝE Ãå†[ÕóïÊA‚ƾßZFV®‡í" M‡[Ë(¨pÖ×kruCµ¡þ-¡¶n-£ Éjyå¬ÁmxkY¹ò‰ ªë·–±¡FFé*)ïØ[˨èïõy ªøüÖ2 šNn¤]èžû­elh ñ[ V»5[±ØxJA‡Ï­ÙJñ'‰LnÍVêç2 hÖ¶¡ÍVRW®*Gqèõåö°µÿöI•M”Àݼ¡6¿'ˆ)n[c ùX]wNEp{Ø ë»]ÅEV±?lu± QS– óÓ‡ŒÏ }ØGÅ5òClC¶†^þ)|Æ&™îÒÐOzLëuØÔEî¾· Ùð†6[ûÈàsÀTß»7[™¸o×m j v]nø³¶ª70+ÐÛ5ƒ½WC×¢ÖpFÕ÷£¡Š—Qµa·ÙP*O­´3Œmx¬†ÆÅ¢ª (ÈñxØÚgÙbwG°lÂCêó[¢ 3,<¶æ×ÇxÂ\‡­)뢃h .=¢¡~}.NsüYÍ–DR–bå£ÂS³Ù²É‡æ6 †Ï³ÙÂd¬»æ4È ÉfËe²·Ø+Á³ÙrŦƒÕDd€DãÙlQo»¡'Ùôl¶N¤üÝ%¡ù¨çÃVu+.ÀÔCOoh|ˆr!òakaïõgè ¶Wñ̆º±w<±Ú.®‡­ZlìÍlèh(Ù„ÕH ÈâzتüUjÜòr\[+d-N‡~Ï*ÊáĶ•ú°UƒV¿ ÜÜq5[ùuL¬‰ m¶¨_Fud âŠÅ’ÏܧvNüY[û6þ‰ôC»×*»çc€sãa«*ücÁƒîãaKt¢úXšvb‰±ŠdU޲¯j `ºK¸¶j ]¼\*–7Ô&5BÙ4È1¢¡É&YU¬"ÍVÚ§(K1óa«LªOÇ;@±¡[:¿ùY è˜[º»;CÐÔù°USœéÈØB¶æÃÖ¯\îïc GÝ%¦6t~rždа†R%k5Føȧ-õü™™¾ú°¥!ãÓ)­·˜[?Ûéݸ*ÿë:Ðõéܾ@׎õ°õ“2à.P|ê<Ðìs㸶X[Û/êT1^XÚëaëg©½NÂîâ†jC#Øß È>ØÐ‡-“P>Þöe°à j9öü‹Ö2öÏãxl5;K€>l퟇ßUïÈ,ÂÖ2öÏã Š}š¾ÀÃVœ^lèas‘h-£†ýò|˜ ™¢µŒAéë)d€§¶–± ¼c««Fw¢µŒm,MJºŠÖ2¶ñÃM0†¡ð­e侌X^(¨EkÕìŒwÁexÛÓ½¿þBÃõ*6ˬ¡4 ñN=\øT?Pœö{ BûÕâ@yTt•½¡ÙÐ…³íª{N÷ ¿4xVÛ¯>ªJã[ýÂlåðy F—ÐàÃ×⼸Š©ëÒPÇAÖw[0zj³5. Õµ73znê4)kû•h>ºÿ 4ßpQ_Ýðfëíõ”O´S7´Ùz—‚>OÕ‘xÇö“íÍïd7´³b¨ÑàõátjG³5¯ b§(~¬h¶æXôñË 8ÐfkN˜!|7š Ð2"ô@ƒæœ–áñîÐÑl–ª¯ñ­ØAxC›­)NC·çt<ˆzŽÉ¶>>#Q©ú>zŽÉOxzÍߟ îØžcrÍÏ Õ}4áßsL®%FGƸ.4ÉzŽÉµ ÇaVŸ,”?£ç˜\+xà<U?¨(N£¬Ö›(þEÏ1©4š˜7öÚ~Šžcr‰LÚÜ’Ð-nCý@aÆå= …õÈ8Ф±ãad”f³%8ñ¹rs £;y5[b“vAî‹ÿm¿æÕl‰ãXÜrø@ÞØÐfK‚‡AîS Úlé‚Y·Ï låÕl©ûÂËÈ.£6´ÙÒWöbŸYØÝpC›-}ù±=I{a;˼š­w»Ûžqi>Úl8wé÷Œʼš-›0d³Fñ, /åh¶l ZY{¿ƒ¿•£ÙÚŽí­½Û!—c(\F=ÿa´Ùò5é:Ž…¦r4[Žëõ®ånC›­ã—¼æHæç°…›ûÉž…s G³cÐÊZ1égÅâ”z«ØPâÏj¶‚Æ·ÖÌ}ÌÙl„V©²çÎÙlå·á=±Îål¶r\tÇÆ¥]:hÇþÖÚÚlåÄ!ñÕjO—œÍVâüØ’é  m¶Òø ú…Œ~Ðf+Ýè]G`v}·­º#Ï}Åð“3:/ZûF¹>×u FÄ v`ÛÐÑЗàÞáó‚)I¹fCEèJ„w]«¡>iHü6ËßU&×„Ì WæÒ†&Ø.Û Y éú°5ÞÉ}¾®»`õ´´_„íoPžf®fë-üô""v5[#aiß“10Û#åúkcëír:ÐñƒÅ*P(¶¡ÍÖœ“¿€ÌãLi¶æKƒ¾€ ¬L‘e¶êpƒ%ÍÖ;Go—¶4[3Œæòn«M9³í’M²}¾ãe$ÍÖ"c¿æë@ÊÖ†6[kN²4«‹ @õ:P¥å²ÏGh³µܱÿ­AŠæ¥6[+ùŠ+¶`½j³%Ú„Zí'B›-™l”N½p½ª¨ÓϺë S›-œÉt{F¶‚Im¶ÄÀxºêŽ7Œ6[’‹O<µµÙRœ¦¾âÊæ¨5[øš-›èFÊÂ/Ðlm”ì¬éÝÉÖ2†‰ŽQŠOm-cCØÚ;oÃÖ2jàD;k{k¸·ZËØgÞäEh‰tkÃPPCôd ÝZÆp ^+pi·–QqjÚ±¡Š—QkÃÑ­s wAkŠ›ÛJ]¸ðcåš´ LÊýO¶–±Ÿ°hF»¼³=ê†i-£þ1º·* k µŒj« ŸEˆ&Ykã-\<ö@⌠m¶â£’-ª/ÈÖ2FÐ'¥. ™ÓZÆëžu;¡¾ ÏLÖ¡Ëh¯u-dkÛVtÚ†òkFy ÍV’D3îÑGïŒÊl-cä«îÙ±0kmC›­mn¬g„¦µŒ ]$Ê>Éaeµ–1Ò‚¾ë(fk#Ciio”žú°µ¿) {¹@è6[˘×äS{MìÒ™­eÔävÃͽ]S˜Lœ­el(›Uî‡ß5ªƒÜóM$\œõŸ5ÖíC£‰;K{¶D®ÖnÈEkäZh×F¤ Û¼­VÝhí´ÊQE¢‚u¥6|ß–96ÖXe°!ÈqëåsVÂØæMFßÊÇ)V5ú§±äb­âØq¿µÔ±]× Áo޼µÖ±±xTW#ªx{ô…mÞÞÝ‹Ž÷*Kä¢ÕŽºñÍ lI·±Í›@~á“é´‡Zï˜JÂÀ]) c~7¶ySºˆë;xâ>nÅc’ORêÌ2C.ZòØ–ÏàsgA¹Aaó`Y* ÅwhÑcª³šuê¡^Øq°xÕÀ贱͛`Gúºˆ‹Ö=¦-],?-|LûJ•~Šß¬•ít/òÐ+q.k+´â‚nŒ…õƒE—c”\*¸[ü˜>Qß¯Ž ˜P4»P2ö[™Å÷mù£’”hU7“ïÐúG½³%šÂÆ6oî²8€‡ÂÆ6ož²ø¬ÆàôÆ6o19‚f+èÞl d†¢5îþ¦[óöžÀÒ÷ãðáõƒå¸ûöTßô¶y‹²¹ÀSz°ÍÛ{Ì×cËéöspý¶2óâƾ'a›·¤ìƒ²wôB»¯¥™ÆÞÒ¶ûÈ–k-¤FÿLü¾óݺÿynó–ÁšdÝëô¾z°lïȱTþ°ÍÛ»1ís­€!›…}x«ÈeŒüZküa£±rq¨ØƒÖd+"ëÝæºíß) Ï’–DÖåƒÂºš0R¨°ok\ò‘|Ño+a¾±ë,¥¶»«kp*NN®– u\;óŽªÑsµ±‰ÂŒ”HÏÏ}x['Þ÷öqØ®ne¤fÐǵ°~scã`Ý›õ¾È[k#Ðf yS#Ž[YSQû­4< Álló6MÙ&˜ÐI¾°ÍÛŒEÙ >±;b• 76Q#«Q»ƒüÍHÖúœÕ¨ûlló¶¯ÿO"Ó$û¡%’mãñ½Y é›5oòqŸ{h¿’àzh‘¤4wò³J­¥oÖ¼ ùNrû¸‡Z&©±DmÚ•|·´NR µ'+ƒüîJ–(ûz:Öo+%ë=L£³i†¿%ïÂ6oJYm5|å¢=ÔZɶvù"!¼[,©Œ? #׌búÍ›&‹ÁÛ¥¡; å’õ®ïu&BçNë%un$ž%WÍ£x‡ÑzIéSù± п­—, Ì-³íöx¶y{÷_;¾Öÿmlóöî!òwþ¶ys1ÖØ&véߨæÍmQ6àP,Þߨæ-Èwª;K…žÛ¼ÅâYi ±Í[(‹½{ .G.ò`…Öƒ/lUé ö]ýÓ‚ß·õ’•¯önÏÙ÷Mö‡mÞö%IÚð…Å…mÞÒ䓿…õRÛ¼e:ÙÊ©8׳”°+ïäÊ«Ää©j{° NÞÎ »·°ÞX̸,ÓW‚5Z/©îyäû•„̓Å{¾f?“æ8Z/)7t‘ß]ú&bÞ¤¬qZgY«æß!AY5 ÷wcWcÝØ.؈gc¥±hWW>iàhÁmÞæµè¾È= Û¼MሑÙ;£õy÷"|öæòznóöžwÖw¬“æ8Z/©®Ý´çëâÇïÐzÉþNi,šJ{¨õ‘Ávß6µ‰ãÖK K™_Õ0.aµ^²ë¦Ø×tc›7ŽÊšù2|®,Û´>ÉF­—Tly‘¶5ÇÑz‰(8?÷]hòߨæM)W­ ÿ\‘ãÖKDÎÔ»Ô8éÎj½d¯Ö «…&>·õ’ê^Bûm;ŠüÜy°r-¹dÞÂ6o~ÍÄ=4±<¾°Í›´íkª_Ò~k½¤9žë:•îØÖKÄ…uûÒ=q­·^RM>:Ìxî´^"1&q\Cmé¹Í[(ÞCvÇßÖzI…Ú•í3¡{¨õ wâÍeÑû¶^"A1‰>P÷­—lGII‹×´vZ/‘wYw'!\J6Aë%òžêsrFÖ¢w°ƒå3ªn1úmoÛªžäw§(j™£õ½ãYµÖÕðÜi½¤ÒF8çu9©­—è˜Êkga¿¢]“r½Ô u£Ñz‰¾CžmG…å…ØÕØÀxa5:qô/Fë%:’Ͼ˜ƒl˜ÖKtÎ _Ï“âd£õK8}äÂÿÛ¼íO–l{Ú"lóÆwáí££V1Z/©Äg{+úkPIcyóÄ^cÛ¼½›gŽÓý”ÖNë%Û€Y¤§î#㛣õ’}eqå†nc™Þ·yûµ`}érFwVë%ªÆvI5cÁ5Ùz‰ªãskÂˤ3µõ’FvÉ4ÒÌGë%ë”öŸ5Ùz‰¾§Ôµý@së4>Xü¾¹¿ƒÐžo½Dôú® pº‡Z/©dJ\V*5ØØæÍ^Ý1Û›‰ZÛh½¤ÚqJâšmÞÜÎõjºJïÛ¼y.ª¤©Vƒh¯·^¢¿ È?Û~B¶Wa›·XC)]#×Në%ún;ÔIô>hÏ·^¢!˜ÕQ™=¬^Øæ­R™Ð&Øg;­—”ÀH¹“I“Û¼E$é¿yQþÃh½Ds²=Y·ÞY­—hb&Ð]ŠùñÛ¼%Å/ªCÊ¢»¥õÍâ­J„‘·ÖKªå®~côÜUo†6Ál½Ä,’ÖäÚëÏ’ÖK¶?Îo$úd³õ’ß+¼bÍ¡¨{ÎÖKjviº5îh!¶y òMõî½AÏmÞb€n´ï–ùž wc[/©Ï Ts².!ló–*l$Œ*ló–f¿¨²\¿­—l,Æ’¼Ìú­—X~ÊU^؇· ˜Y­"è·Yc—rìvéÄs§õ’jEšBÙ ¸Ö[/ñqÅ[ò]}ÿ¼Cì§Faý¶ÖKjò#ÝûêW|në%>>vÔµ@f(ì<Ø$Þª =w5Ví3'Í|¶^âƒÖƒVÓ0Zg­—øH¥š­ø3þ÷ºnló6‡²f8rjc›·w'¥öÖÀܤÙzI™+\bfšôš·µ.:K®¹&®‡ÖK dÛ…ºÑl½¤æ§‘oZõQø­—”²>š.jx³õ’ª›& D† =9[/ñwçü¶×1¯°Í›®¤÷­‘3ô¾Í›¾ºWÓ…îîÖKj*•|mOä¸õ’MºßÒ`¶Ia›7[h{úm&àÕzɶm”üã°I÷Pë%nŸ3ª"“¸ÎZ/q§VÕÍÏêÖKüݶí‡$¶^²Å ½o;H“žÛ¼½;=߬’=è}›·XÅ[Ê…Ü™Ùz‰‡®‹u¹Ä<…Ùz‰sÑ]ëlhW·^âaÆõýÇÀª¸®±¤‰UšÙïçöYÒz‰G~lÄ1èžo½ÄspáU,§û¸õOÊ9½S¼bàû>¼Åuñ}ìÖÒl¬6KtJc¢šáµÆF’¾®ã¼ ÙzIc ÙöqÑÙ×zÉérô¶ &Å gë%5P”cÛ€ÀïÛzI l pËNIödë%1‚»Él[™Î¾ÖKbtÏË;§áyî:XsÖVØ>k½$f}³ÊÁÁïÛzI, ò~Vþ°ÍÛ Î/©¸a›7¹„üù}Ôñ;4o"x>T¯Ç+éû6o:œÚY\Ó~zµ^ò‹½¾ržh¨àÆŽƒåsr¸Ðúm½$T„4è_³Ãßû¶^J¹ãZ³b0çt¶^T>XÇï‘IÏs›7Îí¨þLN÷Pë%Õœ1¹·ËÄœ†ÙzÉÆ.jté$_¤õ’Ø[(Ñ?ÞO<'[/©Ð ï·ÄŽ%uˆ=X¿‚â›Ûi‡æxûÿiÞ|±ý[•ë±Í›Ë|NÔ£Vë%5¶„ìɹ‰ÏmÞ<ô‡ê>ð¹Í[$ÞÝ5xgWÇì›—MnX NÏmÞ’r±Ë¥#ð}›·Ä¸é¾ ã¢àj½$¯dÿ®å ÿ©ÀucÉ.) ÚÑ÷_­—ävqÕ—B;àjþ?Ýq}⠤ůÖKr^“Îß‹FÔn¬ìâ8äÄiÝ«ëxªü”Þ×Ö¸®Ó óåVë%9eQþ™8ŽxªNÕuöc÷fÅš•ÕzIiÞ¤]Ùfª·icc•“¾ ºuc›7!¶|œÀXÝj½$E‡poŽ>Ùj½$ÅŒ8®Ô<üm­—llÒ}qU"&>·yÓ9H©£~ás›7›Ã?ú/Þ«õ’JcÒím]„mÞÌ!wñîÖJ1ŸÕzÉÆr{.H-Eº±Éºrªá°Z/©¾ l+ï;ÎêÕzIzr]ò¾ÆPŸ\­—TúÅvIbrµ^²ý>×+ï ×zë%ÕȇšâùÐÀõÛzI¦ñÙ·]QôyWë%™hŸÕ‰÷ñºõ’y×–R Ȧ)è}³±6(×g›žèë­[/),®‡;W‚ìõuë%'†tÕñ¶Ïð\¿õ’Â*ÖY۱ÎrÝzɬ.rN¿­ºÈáývë%76ò£AÓ¹~ë%…¥b5on½ƒ=ØE­ôÆÝöχ[/),éFÕë)“žëþiË4é}›·•™Ü¸dÂÀƒ±´yôcŸ’YÇõ Í›Ì4Ömå¥Í›û ûƒ£/²´ySªÑ½õ|‡æÍ†²N66o¦F¾ˆÙ´K›·mEs,) Xaý`“ÎßÊ´Ä}¡Í›a[½ò ÕÈ>ÓæÍ/nè¥Æ65oqá}1ïFo¸Ö­y‹}Êï&-hYóú©-I¶£¬yKÊSÈ;…Þ·yKj%Å1Æ|–5o¹¸ëKÝÆxþZó–69·c\CYÖ¼¥/ºcká:³‡7˜MÛvµæ¤/ËÆÒ>Öû·áZ÷ë`ξ}Ea>âò‡·J¬%ßi›®X+·|þ°töUî îcxãY¥?Ž6­.;vQîíüwùD~¹6–b_Û/tlæ°±ÖXŒß)^‹ì(÷Æk õÃ7oÞ亨ïë8”dcó`1¯ÍªtótW4o\7.\k¿¢y£Χló‚V4ov]Œ}ÿë`ǰ•òVV4oö©CÉî‹æÍ"¸N­†¾ ¶ysÌ­«XÒ¤:ÀÍ›cØ-@ߟÂ6ožÈqÕVS^ÛŠæÎ³»ë^˜Í[¬$ z»Á¨A¯lÞ¶=H¹>1„ìÉlÞ’êyïi±¨½®lÞR'Û\–´çóá­ú‘/ïÔ±ç¹z°œS¶ßW kÕ ˜å¯ÏÊöá­Ž®Mì3äÃÛœÔ$­B¿ãB­"³±rq£å÷ìáÂÊu¬‘®<”ì¹Fc“ã8¿ììó¾r=¼Í•ƒÎÛž-=w¬Œo^…#V69nà”Ö:n¬ Ö~-ÑþžÛ¼Éäõ»Œ4h¹š7[¬ƒGÊ ÷mÞL¿¹Ø”—)Wó¶M{ÊW–Aµ02š7éàRuÑð£ysa d»ÁîøÜæÍ=‰·mŒbœLFó¤1݃½ð|ѼŜToZŸÛ¼%6 z‡$}‡æ-±OÃ]f!¨{Êxx«|Êks :8í¡Õ¼™s¥£Â¼žÛ¼ù4î9 ýÀ7¶y ªÝ¹;7:ž«y‹¶ÁƒìjYÍçef•›`ˆ¬æ-÷ßÙænÐsã`ƒì_•…š£´^²ï‚µ>½Cèni½ä7*ü]"—–ÖKªäŠö…q¿+i½dŸÙwª<]ü¾­—ÔAò‰Iv%­—TMÝ…® ýMi½D~=æÿb‹Û¾Ä>¼ õ8ÝosÑwðƪp=¯\Nσuå3 Zè¶y[ŽvjÍ8 :ûZ/Ùüñëk¡)­—” â7¥ÒzÉþÎNùö Åû¸õ’šzÂ{S ýyi½D4¸¼L{ä¸õ©N¤™Þ³±Í›Ë¤xËv[…ÞÁý¬¬­‚½8¤õqE›¶f8]˜¿.­—l,Ç!E•ÎêÖKöÖJªPº7[/‘pîg¢yk½dÛЃc‹A=I¤õ˜|pr}.'ìÛrcï»w2­ßÖKÊ´ ªkÖÄnRZ/ÙÑ©ÖLì°_MwüÛ¦8Ùë­—ì{$Éžôq¡þ+­—èÌäûØÂ5ÙzI%öPüí—Yú{në%{åøGGtì7(­—Ô 5>'5ïîÖKJ™ÜפüÂÊÁÙÊÛPÁø¦´^¢êù™M!dƒ·^²×µRœ¬éáÞl½DY#½KžQ­—ì‡ ÒíUœü–ÖKÔÇäš ÃAd%+6V•Ï“êó{‡ÖK”Z¶V‚º/Z/ÑÀ»°buïr¿çš·}L®ÏpÜöÞ­—ìÏ»(ÇpÛ;;ÖK ˱º„6¢…}x³ s;þ¹GÃc¾†´^b—}jH'Å:¤õ’íw ²SÅ’üÂÖKªsP/™K0~!­—T_f®!]Ô#AZ/1îÐ^:í…}"¥õã^æeª,ú¾­—TkfÊ+®tZ<[/±÷æ:ý®H·—ÖKL1Þ]w÷uÑžo½ÄôÓ7t;^üÛš7˜O[9ÿF{¾õ’*'#<梳¯õ’ªI#¦Êà¾ÐÖK̃cù3'æ4hë%Õ¾„r\–@‹¦Â6oAþfµ]šüÍ[dPíúZTç®­—õâ¸ó Ïjm½¤þœÔ§yý«­—¡ÜÿÁqÒI Oo,­³{¶Ò ßöðæ#?ùAuÚz‰¯É>d éÅïÛzIu§sgï6Œ…jë%N½5kàË6àÐÖK\Öüô¸§þ}Úz‰ka|9Ö;ië%®)¤¯Û%¨§jë%î#9?•Ï(m½d[%æÜ+x`\Z[/©VF“ûú(ÚQÚz‰Wϧ&ï,m½d› ÜÑÌ0?J[/Ù?xæèsa¬C[/©™4›1C­B[/‰}0î»…r´õ’ÎSÓjŽ=Wû©ŒE=Fµõ’X~qÝA„ >÷á-äÓcMIÂzc•{‡ì%‚~·¶^òkôÒ¶…bØÚzI•… ×…’¢­—T½(Ç„Ý1GK[/ £~ÛÕó…jÏ´õ’Š{ú§nk'µõ’ÈÄž|Q“c1—J[/ÙvÅà3ê ì3¢­—l?)õ£—`ŒJ[/É+xŠÝe};´õ’empÿ¶A¿íáí×Sï5SÒ ›]œg¾¯Tznë%{$÷ZIçoë%5¿‰ú.…Ñ…õù‰;-¬7ÕÖKr ˆ¹ïóÌŒj×µõ’Šern’\J¿­y[ÆçC¤whÞäÃÞ¿óеõ’ÔᤗØ;OìÁ6oï`æõ²&a›7¥þ\¾}tÒl´õ’}c¥²Æ#ç7¶ysÌùºãcüB[/9­?Þ9Þ&m‚ÖKª†ƒ4…k(ý¶ÖKªüó×gÒ™ÚzÉþÑüÍ"ý,m½¤Ê°éΪÑ~Èqë%¹ïHÒSËDû¡õ’š.¬á]N߬x[ßñ©•¶5híÜzɺ“ÙNÅ’¸ÂŽÆRo¬ÊO5Ô«õÖKjFßc¥*/¨šn!v¬±?/“¾ï­—ÔØ`ã¾>9)?Jo½dce Ç,¯5ðž¿õ’:qHÉ­e!¬7{°ÝuùAûíÖK ëÜû¼”f¼ ­ysª³,ŸWP»R¿V©ö¬†UBmŸzóæÂ9†5Ëß×›77Ή¬G¼c½yKêÍÛN¥~ êo%A“­¼­3²K\ëÂñc#­Mýá­Öêúö™F{Ò½±Cˆ7±…ýíÕ£±Âë¡Êq¿ùÃ[%²¿™‚q«±ª¬ÅcûˆÂŽÆÛQ5IÏߘMå¸éJÃû8ÞJìçýæJû-š7]<Æ,Ué>ŽæÍt’U™jø}£yó¹è.ÜÇ-ÙgѼ9æ¸ÜÒøO êµÍ[ î‰j˜“£Ñ¼åÅù“ÛëÆ8ƒfó–c|t.¡ó7›·Žì×¥»0çÁ²ž*Õ˜ ±Í[÷’©ú&¼Í±0ÿaÞ¥`È[Zc}R/¤k‘öªùð6'õ‘-ŸÌPËÔ|x›ÛIîAìF\<¼UùOp?¼‰µv]E¿­zóÀÞ´ëá­NZžÏ°hÏÛ5+\ ^-àé¹oÓ(_Ϋ2æ¤ÛÕ¼íÏÀqÈ\[´«ysœsk ‰9²v5oþÙ›usÓsý`¹V¹$~Eló¶zå>9Ô÷Ö®Z¦oª4·îBAÜt46>¹TÎkRÞöÍ‚—ö:QË4]÷}náÚч·ý &åL/a¹±ÚXšap—-` Sk¬s/¯kP,ÉôáÍ~ݸ^y¯#é¹ÑXã>D5>ƒ¾ïÛMãï+˜ëc­—ìs˜s\ÊaÀ÷m½Äk@n]ƒr´¬õ3ôMÿ{^Å<k½Ä 5Ý:×åZ¸[/Ù¿Œû?ŒXèZë%æÂ}…¯íàyÖzIåáÓ}|ªP^ïÛ¼åÐÏHQeló–¨UÜíГlÏÖKjân°^ má7¶õ’MãšÌDÇZ/Ù[ÈHS¨ƒ¿Yë%¾mO¾/®eô܇7Êï›Øf§°o>±'Ô‡7é>n½¤><Õˆí_ô¾oÕ³ˆbå]à>n½¤Úv:¸&[/ÙX§¸È)l}aÞjf#ó>Ñšßû¶^RŽóyf˜ki­—T®û’A>oë%a˜³WÏ ê“n­—T¿lö¥UÈ&h½$gÅ?cAéû¶^’Û|àaÆïQóÏ;<¼eí<ÒHßôƒ}xËÞÊ=uØæj½$E8§AqpraÞrÿhúmÛ F[Ù[/I»¸g\Í” ÄŽÆÎ‹zm„Ðs×Ár/¯í‰óûÊÁ õ+¾~}Œúûzë%Û· å:ì…ûÍo½¤f3SÿÔq—åù[sô[/y°l÷]Tså·^"Jú¾uü:þ¶|°s°3/ªKò[/©föëbM!&j™~ë%5XvðŒ?ÁÖ{…Å^¶wO¾À³Úo½¤Ï­‹zõH%òÃw¸õ’»8Ž>µ+¿õ’2BÏ/¬>ø}G󔘷þ;Û¼¥²}¦õóÍñhÞ29c»ŠBßìá­zsÜ©æ;v>¼UÈ·Ví3Ÿ£±Áu–Ó©¿‘χ·JçÙJBúºÏ‡·88˜×¸œëã2î8ÓØ§6ÖxftµŸBÞæÃÛ¨õtYâ=äóámÖÄLÊ T;é3kÌñ†ñ!ŸoSÖ$»¯²Éáðu5Vœ´â9&êÕ¾Fcc‘n_¡[ð|=¼M½¦rÎÞ…w·¯ÕXœõŒ˜ôoÛ÷º‡‚g ùzxûÍÚ|Å÷½€ëaYc“óö–Á8º¯æ-?½Òª'5®õÕ¼¥ž)/Á¿íám]ØïªÎ‡£Hü~›\Mî=¦²0Ðåám å¸tÅüðäám­!ŸÜñ m{—‡·¥Ôc4ªt˜î ‘ÆêgGЬ"—‡·jÂ>/޲.ìÛ\Ô é?‹º†ËÃ[%•rž¨—KlòŒ“õ“¾úL•‡·½Ýœò uÒÜIׇ·mz&åƒo*q¶‡ëÛ¨púLÊßq}x§¸^µ!PÔa\Wc“ë!uÙ;úð&!è¿UzkbΓ«6ÖxþÅ•ƒînmÞò׫PaÞt\Ü%0ôP؇7Ôóð®çMèOàúð¦ûËOîáº0¦æöð¦‚ñØÚ›N}ÕÜFcǰ÷kaüÂm6VxNÛÌ38ÜÖÁrþÙ¥ƒîB“ƒe ä8^¯ç>¼éÞ‰cIçƒ=¼m†u¹³¢ÿ°o6gj–sM¿íáͰ¡]ý©¦;o&ʶ½† OæþðVî<÷‘4SÓýám»Î9é8®¼°o¶­~ž›:(ŸÖýámûê÷¯Ùeô¾ÒXòc%©–ûÛå§÷Üç7Þoþð¶müäzÈ5éûúÛ/êçèÕFNè›Eccoz¡LV؇·}LîÓÀùÕWc}rÆmƒã™onX3xß›IwKÌÆ’nT½ úÇoû7.š¿)o­øÁ>¼yØ'×gQ‡·Í„Óü㪘Åó!š·$m¥Ž¸iô¾oÕ@Ò8Ž>ioÆÃ[¥¤óÌÝ$ Ïãá-λí>êÇäùð2„µ«ù+9üßç¹ùð6Ó?uùd#æÃ[^“ë³öéplå>×s5–zW¯š­ä)Ë}ˆj: ®ß|xÛ—Å'=/òcó᭦ќ+Áq …}xÛ¦9û2ÓéûFc×´O>×Äõo%Êò|²‹îظ®Æ ÷ŒÛÀúî¸Þ2&מmƒ‚ŸÛ¼jWµ7…r%âÖKªÉ×ä^tª ëâÖKî†`|ž]ƒx‹[/ÑÚˆç— Š£Ç­—Ô¾ÏèªL |_°û[Ç ÷[Üz‰Þþ<åïìsó×ãÖK´ú‰}fæ)틸õ½sé,ÉŠ[/©&IØ/hï‹ýJ8‹$n½¤°lOÚoLì³ßb<¼U#`ç~ Ž91Þêt ûÂôׂå<÷á­.·àÜÒÏb<¼•ØÄ}oôÔÞØO¾²þòÉÏ}xaƒgép^fŒ‡·I˜¬Ñ]ój,Ír¨>Ž9²1ÇÁ:Ívõ7Šùð¶uî XýÚð}çj,Í1¯²&ÇXṘ·½÷¸;%¯ïðð6i¶ÒÿÓi›ãi]ì;å´EßÌ‹ZPå÷E`\/æÃÛÔÉõYU%´ûð¶‘F{¨f§ã;¬‡·#©ŸÍTšëámÕ!Å3C m¹Xo5d}âCØK1Öj¬Ëäú,ªÕˆõð¶gÌ´ê …y¤±´±>¿ó¾0Ï&ÖÃ[¨p¯ëu9½ÃÃÛ²O¿Á`=VlRÎÈ>‘…¸ÈÆbÄmWSO‡·åØGà¶U Û¼QMÅãû'®3iÞrÍÁsKj !Í[Zʧ7,Ý…òð¶ïH°£*i]tËÃÛþ:ŸÞX*8—6äá­NpýÅ\Xçòð¶/7ôýWõcìÃÛvRíM‰šMÈÃ[uày·6°VèÛc߉öNèhl|´×a´çõám;ä\g¹;º+˜ãýÔâ÷Õ‡·ªAbÝsÿC¸vT+¬ Ö !\“úð¦”×V9DÂç™>¼©)熚¥Ós£±4—¶Âw u£ÐæÍ5óJw¾ÈÖ°æ-¦|ë„Ñw kÞhÖËïyît¿ÙÃ[ÍP¤˜Oœôõ?ìj,Ö5ßþÕQ…Icý€¬KØÏ&ìá­´ ²öD}=̫܇¨ÓwxxÛÖ$çAW s öáÍœúUÏ—‰½Ò²±Î9 WÍ^ûدÆfð|‘d§úÛåÞq=ÔÁÛ7Ê©»Ûö xó+’êcËÄýæo•üŸ~6èdž?¼ù¤YPE»ýëo.ÉujvMŒã„?¼m"¸æU#12<KS¹^ºè;dcƒ}ÌE<¼Õ¬MÊ ¸P+ŽxxÛ¾ú ½éû\¤çÎÆâL»Ýļ•ˆ‡·íóÙ§¾›òi#Þªñ'ݱ醺r„66ÛI¹ùo1×'/~]¨sE<¼m›Ã¹'.Ô•#ÞB©·[Þ­ð>އ·Jù§÷ÝÙÕy5ÖGp¿6ê»ùð˜àÿÔãÐ\ÚÈÙXã™ ¥r¶yËKìÿogó–¾Óv™ÉöÌæóªç÷¢{(ÞrP¯“J«‰gTzcQ3¿í3%ý!£±ö©åÒ‹ü¡|xÛ÷šNyºy]»>óBϼFcýS³’ê„}xÛF¿n_“ü±«±¨Û×v êÕ“­—ì]”+¼­QÔV²õ’*‡¤\”ZþŸÛ¼¹ðœ×KèÎÊÖK›2<õNο­y‹ Î3ϽoòÖK*!kñÜߥÔ(o½äNÞâõëN}óÖKjpÙü̶»ïî¼õ’Â.ÞóŽ[*ì:XÌEYwoXE¬<Øåœ›?…úÿæ­—Ô@öË>µÊûJä­—6?3¦&åºç­—T3ÏÁ¶œ­‰yyë%…Uö¶û†ñîÍÛ/ø¯×ÔI ý½ïlÞý–šåTž³yóœÔ3n_o˜#³y‹‹sþePM|Îæ-”u®5{¢æ|x4pxL úmÚØàºæ}úmoc|òŠs¬ wðƒeMlÿÿxgåŒÆbþäݶFÑçÍùðVÃÄ?¾t`ýq®‡·qRQ^½Cæ@û!×Ã[5âZ¹êˆÏÕäzÈEÚk®‡· ê“—Ño[Í[b—»¥ª þ«yÛ6÷:Ô—*—,LJ¶u‡ùr¹Þf%â±Eyx¹¢±XSq÷’ Ôs=¼Íññ/DëÑS®ÆÆ »/E1†’òðV#(ߨzzÐsgc%”µŠ—?ÿ¹ã2±§zŠ46¹–k&Í!MyxûÍo{íÍ‹úƒ§<¼M£œÿŠ\FïÛ¼9éÕe†‘¶’Ò¼¹rå9yýJóbÁwìoÄÄc¥6o3þ*.Ô÷ µyK_œ#pB‹؇·uå§îk Ý›úð¶ÐèF>‘?”úð¶wû¦’T ®S£:ÀÔ‡·¥ƒsgª*ñ·ycq`õkÛkï }x[f;U.ZgúðV f©²¦\àÙgWc…gWUÛEÜC6KïP:øEçƒ5oû.ä:”É Û¼åâžãºßìámÿf¡=zQ½iÚÛ`QåýÛÞiÖ‹s£þûÌCŽÍ»XËÜ^Ö_ïûð& k^ŸvþX·˜–ýØ0{·ÒýæWc1ïµbjö’šïßæã`¹»Jl;KóªEžcŸ½ô‡7±µØ'‹¤{È›7ÿ̨ýhx󯳕ªÍÆMoÞçÝíAê“éÍ[^Ü3n!í…}x+M–â~¦›ý½o6Öy6;†È¿ˆ‡·Í0ƾ²jw0Þ’1N~Ëö é›ÅÃÛ¶·…´«5ÙÏŠ‡·jÌNþ±4è¿çJciMV8!ƒ°z°1Øî£œ½ k¬±/r)å]exc?³H¦Ê¶y3ã59¯yæ͛۠þ\k*ÝYÙ¼9ùC'£ÙΙÍ[Мâ*s»0vÙ¼¥á}QeŽõ"™o•åÈ:¢ÖwgJc?÷f•>àÞ̇7“ëêöUº RæÃ›-šeV%|N¦7–úJ¬êmA÷|FcóÓƒ8/ºçóámŸ\<`BBýwýèFû¨½dcÞªÌuödj,êrÿ­8ŽA¯à;ô`}²6¸‰€Xþþß›7§«Tùò¤whÞ¶IÊ38ëB7¶y‹±ÈçÝgKÐû6oo‡ñ×oß÷á­¦Yr,I0}có`“ûéÆPªsZc?½@×…ûbcÞ|LÞ›öžý´^Ôǻ·K雵^æ3¹§z€´±Í›ÅgÊþïñû¶^9æâš Q<Z/‰D=ª\Щ“¨šó›æ—³øèni½ä3g»ZyàÌÇmÞBy­H˜ ¾±Í[„rþƒ-Ú­—d.®¥ º[/ÉLΑÝïëï8ÙÆo5 ‡ú™W¾‘)=×ì\ß­Žz߯zc…m{Ã2–ÂFccrΩNº‡n½¤š°^N}Y+…wì­—x5V®Yý¶[/)ìÇo©~©ø¾·^²±ªÜ¼ö®³[/),åËiå4,<n½dc gŽU~j*ÙÖ¼ÙâYɦéh?XófÂýåj}àÞ´æÍ’{:,1ÚóÖ¼Ut›ërÐ;4oŽóPJò9ð·yóVYw”'výJ/{ýzó¶ÿ̺\qìÍ[ ^¾)´¤,ìÃ[´«?½ïÃÛ¤µU©èE¾ˆ?¼yqM›‰“½ãÖXê+QkÇÈgð‡·’Ë÷ñ ²5üá­‡N<K »Ðó`“{Xöø¨ÆJÅ> wÄX„5žã¸W/ù-1›ŸÙÃk,¼³¢y{'Ú>{þDêþ~[4o6Ù.ñ!äoF󿯽£ŽŠ)ló3èL­Ö.¸ç£yÛ´Q®š»‘MÍÛ6°>y W mÍ[^œKµ·gÙ¼åbí*ßýKîçfó–2y®r½C΃MޱfÐYoåx*÷Ãï–”ÆN®U®…Ž6A>¼Í!<Þ—_hkäÃ[WÆGSXô¾o‡¬?5b˜o_åœV(–Tý'1zcó`r¼+{s\o“grW¹Ù“ãzx«æw‹s°èÆ>¼ÕRž'‘ =ªÁƒÉ6LµÍ]ˆmÞBøÖ;oåyßæ-,IÓU[èCŽ«y‹äl3=é¹Í[NÎk³ #Ó Û¼%ÍvÞ¶ÜÛ†yžûð¶pÀ““ý‹1®Æ~çëé0c<¼íÕÇuî—`¸¥\÷ø÷4´~½ÃÃ[MÒ¡ûx`{¯Â>¼ýÚ­¼â8º ïÌÆê›Ÿž×ΰÆêH¶°ÜÆúÁÊG÷Äú’æ¬÷¤.f ¶ySªU–»NŸ;›7ê±TýíÙös,÷ žúë½ðØ0c6oN½jL€£??æ:XÔª>H–…mÞœú~yÍw‚™cuÄ>Ø@½äÎñ¶‹°Í[Ð\¹;”j„õƒê)9f,ÜdzyÛN$õÐÁŠ5¾±r-îᑊÏ]Wci®gü{Mì·±oÕVX¸·Ð…~ÖX³±šÆñ–‰wáX«±ÎZæÄÑ™…}x«¹Td¢N¿MëÆÞ\P²±ÖXÊï+ýw¡½3ÖÛpßP¯ší wˆÆZ|ôß@߬æMRÉ>ô}¥ySe]c;…ÏuiÞ4XÃËùk£ü¿Ï;Hófƒµ¶ Ç]Ëýûü‚eZØæÍ”k5t`l|c›7K®ïÞ^ÚgCš7êg^¾?ÍlªþüÁýaôRܛҼ…qý¾Í ׎4oiþéýètþêÛ^cRÏz{Ëèv,ׇMz5λš†=(6öáM±Èë) |õ`{ž+M>ö5Dçzë%:•ó£.êÿ»±ÖXÜOW±_ñÆzcƒû^óÄ66V¨/`Û;­—èLž}©×¤}ÜzI;æ…÷²Û¼­Ï>^бæ›“soÇ…·^¢ØøèîmqéÀõÛz‰êî9kIgIë%ÕZÈ?zªàÙ×zIé>´vªþ‚Þ¡ys]þéuB÷fë%Ës¶×b¦õ KÞCžg­—h$ß›§ÿý§uc›·\Ü[Ó§/´[/Ù&÷] Ÿ í’ÖKªð…g½”ûV»Œ¾ïöbé|h½Ä®ä¼×ªPǵÓz‰™Â:âËt•ë¥9mòï1Ê_ß,Kõ…÷ñÍØüaioú4úf­—ؤü³j¯èôÜÖKªBsö”ß·õ›2hoN½hµ^b30G ¶Š‘­Ñz‰U¶$×u\“žÛ¼-êxß±dƒ·^²?Ϥ>9Q—!b›·Ün[aüÛâ`¹þâŠ${§õêW±÷¼úß?ußÖKLhýF]7÷ŃmÞD{cíËq!¶y“`«Ò¶ð·µ^²=ÿtžÓ6é|h½¤^v່â¹ÞzÉ6a>¾éǶo½Ät|ô’TÌ«­—˜ÎϬ¢}j¡ Þz‰íÃzqÞëëÞ|¾Yó¦Ÿú–k›£pžÍÖKLƒmðÊ ƒß6[/1¥¾wêù=ëÆÎƒå>pó2õ<·yÛ‡*×ùÎg¨Š’ÆÎññ’qžwhÞ°ÿΡ¯»ûÁ6oæ\_(׫g܃mÞì3?¶ú”Ñ÷mÞüâü’½S`¾ôÆ6o>xÆõ%­—˜¯OO>!`¶^b®â»5èÛQõ†5î]ãnŸÛ¼9Ík®«) Þtcå`•4¼ý]×Në%×üÌ2›“~›,ç4ì>Ãl½¤rˆ+ï—Ï;ÄËšØ0´•gë%ËiÆŸ_ãO«¸ŸÛzÉ^:çï`™qaÇÁzr¬î¥‰ÝïÐz‰ÍGŸe+ã0[/©ùÝó“ÿ€±æÙz‰¡(Û}8®ÉÖKÊsJ®5ǵÞzIõù§\ÀyMŒÌÖK¶Õ÷‰ulŸ‘žûðÅ¥}ÇÎW ÿÃE,ûþûbBŸa¶^âì¿•þt?·õÇÞ»Æ&'j޳õ¿Pû[÷Nâ­õ¿ŒãèÕó›ÞAvQ<«Jêñœl½Ä/çsç7©öבּÁõoY¾8bý`ƒr´T^mìá-?s*.¬ÜØæm`?±g¾)ÆÔfë%Nõ±Çy§´ßÏm½ÄÇÒOžc®‡ÖK*Ÿ›çÍÎfÜØæz?³½Có6\÷W~é´7o­—øˆøôuO:'[/qêÛqǰî‹ÖK|â=TÚë5ۼ͎…®Ä¾¬Û¼Mœs¯³Aë¬õ’M>wâå‚Þß¡õ’í¬Çòr¿fë%umòì*¡<¼ÙzI%þ}úáLùmÞ– i¯ÕJ ÷[ë%åZR~ßv½’žÛ¼m‹ëSÊ{¨õ’*&äºü\Jß·yÃâ›§>VP˜­—”Oï»í C;ªõ’Z½Ÿ½ù ÉÝÏm½ÄÅ.Þoq­—l¬}úïL:Z/q!ݨFʾjlž÷mÞôŠ‹{J^P/½±Í›Îé­±HøÍZ/ql0ûÌ´€ö«…mÞÔ¹Sõ,BÞZ/ÙX^“{Ë'½CìgîºêF³õ’ ªCYq¡ß2[/qMÖG -Elófc}zõ,ųºõ’²^=.úm­—¸Ñ|ÞÊ1t²5Z/qSÌcÚ{s¾êÆåÆÚÁrXY©¸~[/q³O=ï|åÖ=ØæÍ>=ÂÖ»ÇÒƒmÞö*ã\”x¥mÝë·õ’ýØFyažÂl½dîí¦4¿¥¶TcižDüûk÷÷Í›jŠ÷®üm­—Ôì?ùÌ #³õ’Jûâ÷/ýaí`•rÔ'Ý­—¸ûú̘ƒ°q°Ê¹¡‹´¶Ùz‰× öÉ&æÍÖK668f¹œ~[ë%ÕN”{êè0<'[/ÙX\“56âUZuóÖzÉÞñœóTé¸Ö[/ñøô{ÝǺãwh½Äýª•óÅX;Xži¡—mÔz‰G é;"“lûÖK<×å¯HÌ™­—l,ç1­Ë1Wxµ^â)ƒÏ>›0vcÇÁNªÏ²mÀֶZ/ÙXå:À騬ÖK*™úÓ ë’ªwOcƒíê´ôÜæmûù¤­ì; ïîÕzI¹è\7n±ÛÕzÉÆ:å²^) ¼­ÖK Ë=–ìU»þ¼C6–ü¬ò¥ææ¯ÖKâì©çõ$ìh¬óìËꟀïÐzI|û ï½:ûðVvgûhF_dµ^ì·Ô™Šs6V–í’ŒW¯v¹±ÍÛXŸØíšÁjCÚXª¬Ù`+è·ÅÁ*ç)äB¿pµ^²±Æ5™®†k²õ’¨©³t½[Ýk§õ’ÆuÍÛ䯼âÕzI ìÿ»[Φ©ù_M³oþîùÖKb^\äÃð~[­—Ĭ?È»VãÁÚÁ&÷Š˜ó•Wë%AsÄn=Õ1ΰZ/‰÷`úã è×¶±ÍÛ¤*³•n.Z/ ¶ùœ¿6‘ãÖKbæ'pQžØj½$NJÙû2Úo­—Ö¹?×…úÙj½$Öœ4r/õ¹ð·5ok)í‹x×à=ÏmÞõŽ.È1'rµ^ËÆä¹r‰q§ÕzIͤ{Þö¿Iß·y[Îsiç÷ûm­—l,ß…2aœva›·œÛ|¼–¿wÃ[²m´Í&â¢õ’Ê5ãþ%IyŽ«õ’ÜËÇoV–Ïê:´ŸÛ¼ÉLâM gÈlló&ÊgÉ6YÐ7]­—„P¬®ê³l¶y“üôê™Ak§õ’P\ìõ‹uu«õ’ã}¡9°Žjµ^ìgí/Cß·õ’ˆ]2ßùˆ¶yË‹}ôùÖHì:ØE9ô{ -È«X­—ìW7Sûy®좾Õ3¿oë%UtBßaߤô}[/‰_Sɿؗ*Õ­—Ô‹±fîk˜Vë%•(¾¸î–4›ÕzÉÆò<3Çëj½ä\éï;V&g­—ä¥ÈÛºGâúm½$/œËu¦ÚÉÕzIuAæ¹Q¶Èh½d_òÜO桽£Q³‘ÖKÊ ^øã=ýÁ6oóâ±}ç:ì i½$çüô vœ P#Ó6Œcãv%>·y›Âý˜|R>—´^²Ðä>ÿ‹ÖŽ´^’3Ø×«¬«DlóöXp·W[•Û¼­É÷f5(%ló¶DÇ$먤õ’jiFwV¥+;b›·2yÞ`Ÿi½¤R-õã›b¼PZ/Ù¡9ûdôÛØæmº‡¶™ôÛš7™ƒ9ö‰5mÒzÉÿÑ ÆÍÐ;øËúNRìKZ/I±ÉóEärÂæÁrϽBè¹­—Ô„Jæ"(wFZ/IòûŒ]¥¸©´^’Š3¦nÛhÐúm½¤fqœw/¨å’ÖKR±OÙ?Õ*P¡§ÙÆêÁ:õœþÊ¥º÷që%ûwϨf»ø¾þÃÒàa´[/IÃ9¯÷ÚQÔ¶¥õ’4ªµ×{d/ødÒzÉÆÝ-ÕSß·õ’½+„ò*6•´&[/I‹áÜ·Žjâ¥õ’ýgžõ­ï?Ïs›·Sïü²5&õ|‘ÖK¶ òñ¥3ðÎ’ÖKÒéü]å_Ðúm½$=Y÷¬úh\¿­—dŒONŽQ “´^’1Ù^¿LÑN•ÖKª’€x«S\­—T÷ÆÊ‰¿´^’û˜ü?´6°w¤õ’Êçó,Ö“Ië%‰n;jÑ=/­—l¬ržÂZ´‡Z/IÎ)[w» \­—ä[ÌigûJô}›7ê›_qÓ ìI"­—l÷`R¾Ü^:hÛKë%ë_úW2ðèÒzÉÆÆgζai½dûØFg‰óìïš·z Ö˜ó@äÖKâßý§>ô>y_ÜzÉåÜ™I„\ÜzIaÑV¾ëç‡ÑoóƒåŠÛÉÂÜP¹õ’Â*Ï@ª¼Q\ë·^rcùû^4k`Ê­—ÄLÂõYïV4÷so½¤°Ž¹¡Õæ—ârë%–j®öž_àË­—T ü“K•“ƒõ†‡=\7¶yXWw÷³˜ñ·±ÍÛÀþàwÏYÑZØæmP߯ʕ¸è¾°æmàŒžòlÐYmÍ6|4¦_No¿¯7oóŠÁùÕ cÍâÍÛ$»¤â¼¤+‹7oó3«¨Òtð;xó6WRnþ䨢xóVVï<Ý«Ë÷fUëázðæm_óß<<Ì)oÞfîr :S½y[Ÿ×d_Äó`sq¿•EïÍÛÂÞ•Oû>’ló¶ XþÞ4·zcçÁ²Ïm&ló¶‚óªE½ƒ¬“YimxžEó&C>1AV¢y{'嶆w‘v%Ѽ ùèYeXïîhÞØ¨ûB}‡æMü" ¯Ú–C,T²yÓ‹{é»ÖýÜlÞ”ê¨ê¹k=%›7Õ‹ýy_˜/Ù¼©}fI¦¢^"Ù¼©ó ƒšFï«듵̅ùà’Íkæw¬ƒüØlÞÌX+®.ôÛš7ûäL—%ˆ~K6o<¦z?N´ ôjÞ|p²:k-ÄŽƒºßdž%z5oNùF53D0ƪWóƵ%ë_™tþêÕ¼ùGk[‹j^õjÞœêòkt¦òs›·¸¸>Ö| ¯§WóÓÙ&¸lÒo‹ƒMú¾Õ:‡¾oókðZ?e?ìhÞ‚fˆWï1ꤣy‹Ï,j·9‘:š·HWîE÷ª¿¿ÃhÞõÒK"0oE‡üÏ'§µL7¼çuèÁ:ÍÉ\ƒòÁu4où™¥¾·qÐ;4oéßoséÁ6o™7þÚoÏwȃåz^}½Ÿ;Þö?Æú¤\ïM£±4ŸaýûËÆýÃÎÆâ<á;~1Ð/Ô¹Vý€ ó tJc©ŸBÕ¡P ´Nmlrïóx÷R|°v°œÓë\¯§Ó6é>'köûð6ÅÜW²úmÙXÁø…T®ðBÞVó6ÏöH%^WóVQQZëõ7Ä6oã›Õ{¡!¶y›”›4ˇļx]Í6F{t9ªÑÕ¥Ëù}îÔƒBWó6cržØñÒþ°ÍÛÌI¾é¯Ãî6vkWyÑ;äÁr=Nµ„€–æm©pÑ Q¥y[4 uû8ŸsGš·Ÿ>²Æ¼‰,Ç»«\÷…4o óSŸþhk¨ØÁ*ï “AÏmÞ¸ï̼geÐo‹ƒåâûsbl\¥y“Á:ø%l—hó&ósV/¥ûB›·w!ÉñEÆ/T›7¡ó¬ÎÀþgªÍÛvÀ¹Vù=£ýÁ6oâÊó„s`Ÿ2m½dHr\¯Küf­— |_üÒÄþ°Í›~z)ưIïËyxƒì‡ÖKjVÍÖw»‹ÛzÉÆ ÛrÁwVë%C?±¯½D”žÛ¼©òµïFCŽ[/ÙXûäRM¬-ÑÖK†~l£‹{ýië%Ëó¥· ƒ¹(ÚzÉ0š[]³Lpo¶^²±ì£GPÿjm½dا÷uº>ÿξÖKÕÂüS{è%©ÝçNë%Ëzßvÿ0~¬­—TŠ,ë¿¥;!v,ç”fŽ6Aë%ûáú‹2–è¹òòÿ6Ö ÷ÕƒUî1*ÔKFýð–M7…Ö¯Þ>6LÕŒÒûÞRèûVØŸ°Í›¯žª˜Û¡­—–ÎSGßT[/>¹'É>ˆãÖK~ý#_çŽúÒÚzÉvÈ9o»}Ò;ÈÁbÕ]SAvIë%5ð£{ æÀië%…Opìû¥­—TíøÄ‡èìk½d¼7mß›¿a[?ìáênçFû8oγS,©——æá çdÖýv½fÓÜû8oÔJë|@ÝS[/Ù®¥U1KØæ-ÆÅ}þ-i¿µ^²±\sUáÂÚÁ®ÏÜ_Ãø¼¶^²±œ½Í0ò¥[/©±ˆ<ÃÀ_¡3½±Í[|fQ×9š®µ^²±CÙ‡îMk½d_§Üÿ¡êq±Í÷s¬Þ°í_»o8õîCôƒ¾nìáfœ¬»ÝqâsoîÉ{ÞQ/±ëð¼ç·±¿è}oÁg‰pNº]ñà ç‰Qî¢]‡·ˆÅþñB_ÏÆá-9ïjô7mÞòÛK‘l#k½¤òlY3Oznó–SØNäû[ë%5t–ótSP[±ÖKF~r%´7ˆµƒÍO~T$=·yËõí½ƒžû™}é8DZΖÆ~úvTf3œ©vô’Ή„­vl ëÊ”Ó`G/©Dž‡BõvôÖ˜ª øÀ|;zI÷Ë,Îj;zIRÏŒÒðh.—½$û¬ƒØÃ›sÆýíè%é¬9^UœŒØÃÙgu>íãÖKjHX²´ÎZ/™§Ó[—£þàÖzÉäy35#"è·µ^R¤8÷‹s©¬õ’ Å:8÷º¶ÖKj íMy·,x°v°“ë&ÕoZë%5´È¹§¤`Ïk½¤†ñÝTc­—Ô Ž}É wÃÛúö˜Ø›Ûäðö‰ÝŽíÓá÷•Û$çÐ_Šu¡&‡7ãœÞÊŒÆï+òÃ~òS“î9¼Q}wVxóLoÎu·þ¾òìáÍ9'ýšJ÷¼Þ(G ú‘æÎ˜ÞB>µ޶§éá->}®…šéá-XŸ¬ŽËøzx‹O¯Ê ~6¦‡·|>¤zßÃ[òÙWqzßÃåe®ª£³Oo¿(ÍF~ýÄžk½¤z'p/$ŽZë%Õ?>µ¿½oó6ûÆó³¬õ’j@εÅ$¬õ’jNgÔôÜy°ŸµŽ½›¬õ’jþÍ9ãÕ#áÁ6oc±VœÃÈÖh½¤N“Ï[k¿Yë%Õpšó«kboÂý'-¨–ÀìðF9DûÜÑ…±³üa¹¦"•Þ×o4§¸üÂÀœóÛçä(Ûà~xûô¯®9¿¸ü𦓵•´Iïpx£¹wN:'ýðfÜSGuÑå‡7ãœS›Ž5ºæ‡7 ®)^+ ÷yü°\—ô–¨žw8¼ùÅÚ  Ý-qxóOžÂL¬Ï²8¼áY]qÈ÷Œ¹±‡·àY/TcnqxKÔÌ«}°Ä$,ä‡ýô'HÚo­—ÔAÂý«˜…µV¹OúHú~°s²ÿF½Ä­õ’9©^ºîÊß±ÖK&÷»ïMÌÙ³ÖKªöœ×¤8ùd­—–ì(©&߈l#^N¶\ë%•CÁyjü¾r°\›ê×$ÿ-oƒmûí‹,úm‡·Á¹Í:©?­åám²®“~Ûájø³J/Њ-o“çÝîÕ€q^¿o“5›álˆ=¼M®¬ž ±‡·5¹—¸_Œ=¼‘}×gáùë×ám Ù×Ût}°‡·Å=g÷6@ÿ¯Û\ßþ´Fïpx“Á1V¥x–_‡7ùÔKòßü:¼ ׬AzŸÃ›r½“:ùÇ>ÆË÷üżÛM~î ØŒÃ›-ÎYË蹇·O~ß¶Â0wÜÇáÍ’ê:J#…x¬ûa?9†t_ø8¼ù5¸¯Ä¢õ0oþ©iSÊËôqxs®¬Ññøóðö‰u¨*ê%>Ǭ+Sþ¤ÏÃÛ'î¿ÝcZ“óð‹}ÿA5b>otoV-8ÕÏû<¼÷×P§¹>oÁ½l:Æ|ÞÒ8Ÿ–ûøŒ6>:8æúø<¼%Çò÷j =ô’™¼Î¶LgêÑKh¾SÕØÌWÈó^¿G/YçÐoÖÑFô£—¬‹ýÍ5„ÖäÑKöÝ0>uØtN½d ž]Uò/žQG/Yãcÿ.ª³ô£—,ªª^ןïËñc[ƒî€£—¬aß tö½dÍÉ9ô*ô}^²&×0ÅeÃö£—¬i×@¿¶àÍñÑKÖä|‚kê~ô’EúoVÉÖEÏ=¼QoÍ}_åäøÑKÎ^»ç£ìéG/Y‹û†îÃŒ¿ÙámqN­F–ˆ=¼}îãjØ£—,aûw] ý ?zÉ®µ_I} ýè%K¸·|ù"x–½d Çɶ‹›ô¾‡·Oý/Ñšõ|ñ£—¬°O?hEÔ^²Ây&÷xŇî÷=zÉŠÇ‹z¨øÑKV|úGm_ ¿ÙÑKV~mpA?Ë^²R9OwšVXÿÜYt½dQܳh ì#ëG/Ù'(×3Œ‹ìõ£—ÈÅÚÕ>«ù;äÁ~ro'Í2ó£—`1KÇÆQÿõ£—l‡{[äDýÌ^"ŸÞ»×¤t~ôú鶜޷y“Ï $Ùž aõ`YG,µ×ïÑKÞãÙóTKàG/‘ùÙoIyü~ô™ìÔØu\gG/ò+Ç…æaûÑK¸~¨Î>ûŽ^"‹c¡ë=~ëÁÞ¨ÏiÕàQo?z‰ë%Û=Æx¡½DDøº5G?z‰ÈgÞ­Pm”½D$?u¬ sdýè%¢×üô²¥õpô’ߤá×=D}Òýè%¢Ÿ¹àcá¹G/ö‡œf“ÇÑK„æuT,Ô‚ž{xSîO0sa¾F½Dç>£Žà—ÕàÝ=€06G/ûø+Q‹£—œµ ±´iãè%ByWºíIqzîáÍ8W"Öúùòf. kâè%ò™ã˜KpoÆÑK„r£æÊ9è¿qôqî9»o~ìÑG/‘øô„ºcjqôùÌÒ©¥·ðoÁu6ê%qôî7˜åãà=G/‘øøosbÆ8z‰|úkT%#ý¶üa?=žéÞŒ£—¼šScNµˆqô’½°¿sÏð,‰£—ègÓ¾„°‡v½D¯üèÊ må8z‰’/]Zü…±¯8z‰ž³½ÔðŠ£—èàÜŽšI¿Í6?gõ@?6Ž^¢ó“¯a¦„̓•mOöd½D§~æTP ;Ž^¢Ÿ\ªœÔƒ-Ž^¢Ÿ»¤Ð{x[Ü ¿Ædöð¶pÆß­Ó*î·£—œÈ»g\âÝG/Qª1/»d ÎG/Qáøüf˜ÎÉ£—¨°N 1p_½Dq6Í}®_ô¾G/Qå3µ:?öðfìUW|ߣ—¨ñÞ¬À/r|ô5æm,ªïŽ£—(άšírÊ{xóõñc'‡Ã›sýEÕÎÒso!«›¯\÷›‹£—hr}ÀÚ{×ÃÑK4¹uÕFá:zÉwfÞöðÉÖ8z‰]B9DU\‹\½Ä.¾ß>³Áâè%v}´ŠwyøƒmÞN÷mDuîqôñée+XëG/±‘Ô³Þæ…5qô£šÌÒ•©ßJ½Ä°vçŸûÎÂùÝqô›öÍ«@­"Ž^b‹ûJ\‹fæÅÑKöi°8wœúÖÅÑKŒúœ–®LzT½Ä>~À¸(—5Ž^bÂþŪboÊÚvÊÀõpô’åXǺ»^bŸÜÐq9ÖÅÑKL?³=¸&>Ž^b >Ù?RqéÀ{þè%û’üÄ7)_9Ž^bT¿™•GгPãè%æúÑtÆ|âè%üÕ[¿ÙÑKì“‹½×¾L|‡Ã[$õ`«±×ôÛoÉõ…•Þ‡kçè%~±O¶}‘ ÷ƒåøñRêG/ñ‹ãÝ2 óâè%þÉ'®Øß>Ž^ÂýVÉB=*Ž^âÃ>sµí8z‰/îß7¯‹|†£—8ùݾׯ“/rô£¹Ûá\gG/qýø"æ÷£—œz¥·ý0ÉF>zIÞçÕ{Îõ£—ħ×_ÍÀsçè%±º¼b bIyô’ú©Õ\gyô’øÌ-ÙÇæ)äÑKbðý¶‰XpçÑKbq¯žõs´~ÏmÞ‚b(Uøê¯üü6ýa)‡s¿-Ú}yô’øØà•Mîø‡7¬¥­˜åˆœøÜÛÍ'Û›bÒo;¼÷؃úxçÑK¹¦øRÅ>#yô’ðAgÔõž3ø`oÎq²í¬¢ýG/Ùü§‡¶àG/Ù_m ¡Ùyô’ œ†ò¥©F!^’Ÿ>{åmâš´^R9 ëÓïuÐ;Dc±úés*ôÍò`Ÿï×úû¾edë%û2»èŽ­¤"èí–­—¬K->=·ÐËÖKÖ;Á´ûp^ÈÖK66)Ÿ6ßãIžçÞ¨çKþûkô‡mÞÚëU³TG•­—¬wÑõ³~«Åžg­—–c‹N±¯l½dc?>ŽQœ7[/Yãb»ºÊäq¿µ^²ÆgÖ@rÎH¶^²ÆäY:U 6x¶^²8ß¾úÎP¾}¶^²†+ÝÕ3…žÛ¼¹È/›` jæ©úÃ:åÅ'õH=¼%ß5¯…ž{xËoUx‹ØÃ[~¸x§²<ØæmŽÏ\9I:[/YU\BgßrÌÍÏÖKÖ¤³$jô æ™gë%Õ7f~ú Ÿ÷}ê’²õ’5•cjË}œl½dMÒ ¢tÚ ÷Eë%k:èQÛïÞ& ÎÉÖKVeÆÐŒUŒÏgë%ªàž{­L8ÏZ/Yß¼ÌêE‡ëÁo9hnI Ãù›é‡·üÌi{_ç÷s[/Y sèïÙ‹ö|ë%k-î‘P#]ðŒj½d-ÔÌ÷s++¹h½d;IZÛvSè\o½d-ÇÚ‡›ƒ°ÍÛŠ$±\x®·^RÁWÎ'° ¼õ’•®AóE²õ’JÃãÙäft_´^²/¡Ï=¯‚ºr¶^²d±½S£tð|h½dÓùÉý:kk²õ’%8w²xÛß÷[ë%Ëy ÛˆR´ûZ/ÙçQ÷ ¾È¿h½dé÷n‘yŽÙzÉ:5i¯õ|î´^²t|z]êé›­—llÒyö» ¿­õ’ÂÒ,¨šüŠk½õ’Å1µ»W;æ¤gë%k[„Žû¢j2ñ¬n½¤:qð<µ?·°Í›]Ø·Y¶*Iï««ÜS}jüÙzɲ¾È?Y}%ž}­—,š½öVŽ7ö‡ÉÖK–MŽ“™O#.š7îÇTzu€¶Rÿwc…gZ˜½ú¤¯;~Xò[êÀøÜy°|ömßôêmÞL¹>«Ô7AìáæQU[ׄ™jl,ö=Ø÷[”á‡Ï=¼¡ÖöÏÞC’ ìÿùðBZÅŠëac›7ÇÚßZ“Ž~Veï7–úÈÊ=ß¡õ’åÉgŸ¼ŒÂ6oþ©…‘±=w¬.¾çÓpí´^²HO½íj„mÞj˜:} í² Û¼yȧWιªfc“óKæ4Р7¶y;úÁ«Îò=çÁ6o1õ3oÜhµ^²¨ÿoùÒ u˜rIKý«÷Ú¿ ß¡õ’UDõ±ßÄ}ÑzÉŠ°à¾Í¯\áç¹ë`}r½Èyæå7öÓ³³’Hð;´^²óaÊg8_æï¹Í[Ή„VäÖÖ©Ïéþô´/Z/Y¤1ýSíb1¯xcó`•z<»b®Z)o›ä“…¾öÛýÜÖKV¢½¾Ï+æ…\´^²~î-?Ç« ̃mÞ2!FµïÍø}[/‘‹æQé]ß‚çzë%raîí^ÛP\¿­—÷:©™M¦ôü`¹7VMÄõÛzI¥ ¾/p¾ÓÆæÁf~z$\øÛZ/‘‹rCe?wÑùÛz‰\>?½±^¤B˜–t‚ÒÚ®‹Þ·õC…u.Èqë%Õur¿¬U®xÆK9{û·­±±Í÷Ѝû"a.âÆ6oƒêfö¾ð+pµ^"ƒú1Y#†¹ÕÛ¼ Ô i[´ç[/©¡K<EÂpµ^RÝhÏWÔ ßWoToºíÉ Úzx£\Ö¼çlã¾ÐÛùâZ{…™,{xs!ÛhÛrŽûXow€Ö=ïôÍoù© 𠳍7öð†=Tþ¹ó×ߟ¦°ÍÛ¼½ïò5q­·^"sèëðéøÍZ/‘JXþô¨YøZ/‘ùé÷ZÓ··ÖK¤*Ó)wæ=~öÁ6ogùî³z¼{:<ï ›¤§Ö¬÷Àç6o‹úƒ[ßdsµ^²±<›Æ®A¶Fë%Bsâÿ©ó {»mló¶ÖX¬1 E.Z/ÙØE>ï6r'aÇÁÆç¬¶ÄoÖz‰l§WÈÏr¬]/é¹±Ê9Oå·à}ÑzIy…‡¬Å@ï«˺Ü>HÏT?¼a¬®ÖúõKñºu¹=¼%Û1_±ƒ›·ÖKªôá£{b½dõƒÛ³´ø}áok½¤Z]Ó~ÛžŒ ­—ˆÐ|§šq}Ñ>n½ds¿ØgÐEë¡õ²·ï½òlîßÖz‰ÖîóL|Оo½dc!NöOùÝ:qí´^²±‹óÌË¡Àwðƒ…½¹×ä^Ï‚ë,oªÔ·yÎߨÃæ{ÖÚY8°:D¬‘/гt6öðæI3ó*}œ<¼÷ÞÝ›yxK´¹üö¥ñûæázìkd§¶^²W÷I/' ϨÖK­ÝçŽòÑ[/ÙØ »ðJ¥µÓzIIx‹cI3è¹Í›¢mŸ%Xû[1ØÆ¢ýP{(~³ÑzÉÆõ‰Ô+ /sc›7õàÙ¸”·±ë`óÓW8ø}›·½¤„mHz®þ°­Mø}o1é}·ÉÂß¡y³ë¢3JgÿT(í`Y{Ë /³j;Ū§¬ÉÑzÉÆÕ@ëXÇ¿±Í›Í$±ô|‡ÖKÄÖE:b¥€v,ÏåÚ+}ôÑz‰Îή}¡Øscõ`â¦ûŸTz;X'ß´¼JðÆ8¼áü¬êYÿnŸö<÷ð†¾Ó?¥?jƒcäKÏ­~ÛpNŽyxs![®ÚÈâw˜‡7î³'q†šßÑXê‹m·|krÞ’ëÉê8s|nóæX£[çƒ ¡ß¦+lÃh¢s‚ª™bÇËó–@|~c›·w¡ÙÉéÅœ†]û© ²íÇÑKNØÿë¸&=·yKìÅ|ß…F½$?³•t@šdao>ù\WòÆÑKÒæÏ—åŠwáÑK2&ù±ª¡øŽ^’Øÿ¬bs ®£—d²_Xßáè%§wØë¹úšýó¼ÃÛҜíîY’tgµ^¢5X™ü‹JØ@¬6–b(Õ‡è2ü¾­—lì¢"Q%[®õ}7pxž[yиÖ[/ÑwÒþ™—$­—@“™ö/Ö¢5ÙzÉÆ*Ù©{kÒ™ÚzÉvÖ„ì(ÌᬩÇÍ‹s¦Ç«ÔîÁÞ’{áW6<âð–6Xß™¨)ŒÖKt|uÚĹÊk<— /º[/),Ūt ×Yë%:>³$íÒ¤whÞÆúô­¬/è`•g©+é;£õ¥>ÓÏZŽzêh½Döáüç±æÑzÉÆ²Ý·=éAØæíø‹ÚJ%´ã:Kýa9Þ=SпÈÛ_¤ü Ï=¼ÑukÅŠwVÞ‚ãþ{•:rœ‡·dMa[ÕhsÍÖKtR¾ÑÝŸ`¼{&oló61ÇåŸ{æ®ÉÙzI5¹å³Ä“ß¡y›s¿ócسõä‹Ì[ò¡wЃ5º ×)…ùÃ6oó;WÎ! ª°~°ƒë¥ßµ¶y{'÷9I³’+¶ßXŒ_Ô»(_c¶^¢ ë°ïÙ¢føÍZ/Ñ…=ëÿ¹cÂxÎÖK6vqˆ/Œ·ÌÖKtQì¶Ò=^nðóòÃQzaÌg¶^R“•¨FaS uIk;‰ãŠØ b›·…5ü·Ï “žÛ¼­`Ýs ’?l,ßóyQÞÕœ‡·4ÒiÕ]ð›µ^¢ïEíÏW_L|îw&ôÚØæ­Äbò ÍЮž­—¨èE5З’Ï;[/QÑÏ|œù2žwhÞ¶!eø¾%„"­—ÔQųºÒ+>7vÐðKUû{n좵#kVªòó`YãßHÌÙ›­—¨N>w"æÀ5ÙzIaYz÷T¿ÏßÖK ›|¦’þ;[/Q]¬™—A1Û¼)õnºS@“¾Có¶]†ï:£Z/ÙX7öc_åG7o­—üÎðW¼åÝ6ìÁ6oö™'1k朿­—l,ÆccÛ;²po¶^²±‹ì}¥âÝ=[/QÓqqˆ‰á;4oo§êÙǶy¿e¶^¢†óßö¾Xã5²÷Á6o4D »Ö•õßI6íÑKrÌà¼LÇœ†yô’$Û¨òVpîN•O5kÄnýwÒ{ô’\38n:èn9zIÚ \÷QMÍÛ¼¥óüغÏð;½$1w¦î¡Ä¹udÝX»&ûN—-ºßZ/±‹ò5îsó‚fë%ûé—¹—rÑz‰]6‚k*pÓÆjcƒï€ø­ÓÖvÑ[݃ñŽm½ÄNk ˆåz߇7cm¥úJxÐ;dc)·®fjBjÿ*+¯±‹kaªLïÂÖK*­û¢¤cLm¶^R±LŠë{TíóÜæó=Ÿ¾ÍÈqë%6Tø›é Ÿ¬õ’b˜ç›æ"±õ’š™Kù©zQ}Àl½dcÃ9Ïü¢ó·õ›Ÿž$•·‚çzë%û(Xƒûú8Ìq,ç`ƒ´+;JÏsWë%5X‹Î‡ýaðû®ÖKl]Ÿz†}ç-|‡æm‘/²÷[bßÅmÞÖdMl(öG¬©Uùä#:ÆÆWë%‹±æÒ^cu«õ[†9ÓåûãÜÔmÞöF¤\÷½p=¬ÖKl¹ú½ê; ôŸ (66Xƒö¸Ð?^­—ØJ´5¬BÕ¨¬qxËŽž¿«õ’}“qßÐÊéuÄ6o2/ªS«‹¿Yë%‹÷Pi™Cé·5o²ùÒûÔÙ¸ëËù\I³‡7¶yåz^§™šUÆÛX<×·ýëgV²ëKk²ì*\¿­—˜à<ËòByk½ÄkVž9¯˜W±Z/9Wïý¦Bß¡õSqÖ…âÝ«õ’MýØþÅj½Äç Þv´e+ló¦“ów({µ^bJ¶†Ö]xþ°Z/ÙX%ÛþRÃ8Ùj½Ä¶Îé{$܃mÞôc{æÏZ­—Xyï4;P­ßÖKª‘Î’_¢?lóvìÁWZ¿oóf¤­Tn‡a^ñj½Ä¸áºGàâÕz‰½ƒ6ýÍlb¾Æj½Ä g;×]x Ú¿«õ’}A±ÞçÓÐî[­—˜ý¶,½Â6o>|2Ÿƒöqë%U}A9ôÛÍÂŒÕzÉÆrN޾õç}›·m±ý«Žéj½ÄÜxÎk…~ñŽm½dc±ç€ý»=f~‡æí]0ÚyŽ‚3 6¶yóäZļœÖzë%F=Øþ±{4)ž©­—ìKr‘¿éï|¹û·µ^R²%÷P™/ÛèÞó­—lÛf?ô«lý­‡ÖK6vQ߯ÔE߬õ’Å3ªzXM¬5Z­—X褻p²˜ã²Z/ÙX#m¥æÈÑ;øÁrßæíAbîøj½dc“kÁƒja–Þœï‹eö–ßþSÎÕÁ~f9Õ-;¼¹æ'掺ç²ÃÙ0Z­è°Ãö¼mļŠÕzÉ6&×a_óVVë%+ls]*ôÛš·¤Ù`ÛHA­bµ^²w&×rûo«õKuöq|`þÃj½Ä¶Nzê^HûÈjÞ2°^Zÿýu¢ù=·õKœ7SZлeøóÜy°Üÿaï!ÌiX­—ì'p=Îf=èä`Ù}nT»Z/ÙXûÔ£í¡ÖKjæ%yMþÞØ½3{J––ÕXÒðjÚ8ž}­—–ûŒWÿ3-lë%~ÖQé¿rí‹ÖKª¥žóú½P{]­—6¸VƒïØÖK6–gÐmëŒüÂÖKüpò=)Çeµ^âÃ8öµ  D[£õ’½]ôÓH’žÛ¼mÿ‹Ï_MÌY­—8ç)dÕ£cÓj½ÄÎVúç•`-âj½Äk¨<¯u¥ïÛzI•¬Ï“pâ­õŸ4GaV»€IÏ]û±×'Õ¡¬ÖK|ʤó÷£+¯ÖK6öÓǰ´Ä6oSùôÝFã¾»[/)óŒÖd…‡Ð>k½Ä«i'û±ë’Vë%¾(†²ªOä÷…´^â ýͧÆóV¤õ’}ò,ß}dà](­—ø"› ú†â|ÈmÞ–q/ƒm ]-­—ø—ôÒâ==WXªŸ¯h‹âw°ƒUòôÂÙÛ¼­ä¾• FÏmÞäÛ‡( 5i½ÄßÉ['/ó:«µ#­—l,Ï1ßž-ÞÒzIaƒëɨˆ´^Rj5ë¶ûHë%N³•êܱ õÐz‰‹òùpiL°S¥õ—ÀØ—c¹êó\;Xî§[U¥ÈEë%U¬Éµ´ïpƒmÞgÔ¹þžù¼oó¦2é}¯÷ØÊû¹­—T©Æ¢þ#l{i½d;4Ü×rJ¢î)­—l,×ãŒwNÃóÜæí]höëFçCë%þNÞzÞ·‚Ý'­—–m¹ª?B¬,k >)×]æáú²nûÁƒÎ¨yx‹58&¼=÷𖜳7αóö^â†óï|˜¥¸Z/)­}ÈE´´^²Ýã Üºª_Àó¬õ7 ·q£=ÔzÉv¥yÞíÔÀ¸ž´^²í î9 ŸõÐzÉÆêgþÅŠ´^²±œ÷ºÎÔ´¿ç6o\k$:QW–ÖKÜ0G«|Þëu>”=)­—¸Ï¬úétFµ^²ÿÌ}Ý÷)€6—´^RIwÂq½I\´^âN}rtÛ>Ÿ+Ëçúœ/R·pc sg¶ .ÔŸ@Z/ùµ·­ßAuIÒz‰Sÿ¨[ÓÅ™»‹ñ¬»½íãÖK6–ëç+wÏ3=¼¥+ûèØW¸Ú lð¬Ÿt¿µ^â1t°“Äç¥õºüß_g¿÷mÞbNªýoßéÁêÁ}3ÛÄáYÝz‰Çâ¸È‚þúmÍ[Èõ©•£žÒzIÑ&܃øÕ®ðy‡æ-\è;ì/C\´^â‘öÉW^¨ÙHë%Ë9ë-¡Ü߬õ’ÊM& d›¥÷|ë%žT#–•Š>¯´^RXŠ%Õ\6Çç6o©Ü¿5é·ÙÁr0¶§°Í[×(l{r¡ØzÉÆr®Oõƒ6|ßæ-?:—^ä;Ië%;I+®±žxî´^²·×ÂØ{~Àƒ=¼Åg­¿Û#ÝgõÑK2Y_ߎ-jŽÒzÉÙïž$Õ¬ ¾Cë%;9/þr¬?–ÖK6–5±:%q­·^Ü÷ËÿÍSÙú÷Ühìâ~ÛÛã 9Jë%…\E}¤õ’Â:÷—sÌM’ÖK*¸M:ŒI¢?/­—Äõ±å¶Ó޹ÒzI\hÜúŽal\âð†½n½äU^ð`oÔ{¡ÖƒcÌRâð–°ç«W»/Œ;Ië%Ûª`m»z¨á—ÖKbMÒKª<†¾ol’æXÕìøÛZ/‰÷PÌs>“­—ìMðé§ŠÚ ´^²±Üg:gñmló6¨—â¬ÙŒƒÞA6¸ÿ51GVZ/‰w¾ããx ÕzÉÆê§öìÂoÉÃÛ'—êH©,ìáíóÙwÖ¢ïpx‹à96IuzÞ¨ÿú¶£ÞrÖƒ?,甲ºózÞPW®z^£x¡¶^²‰à:Ë`;J[/ÙÿÃJŽ¿ Ö jë%U×9¸¿òD»O[/),íMyÌyÞ¡y›˜C_ùgƒU»æÆ.ž£ðk½û‡Íƒ Žù Òíµõ’S™ú^;‘Xß­­—–k•·m¡øÜæmMžÃ¤Úë:o>)½²‚·qxóelÃ\ŠßwÞHÿš«{^Çá ktŸƒ³O[/‰uqNoÊD]C[/‰êäGëwÚE߬y« g¶×©wˆ¶^ 5ÝÿzÕdbŒJ[/©ÁÓÜçt»ÁøÍZ/‰µ8§l²¨ië%…¥ÝíµcüM[/‰ŠtÒÚQꨭ—DEH¨ža¾LÁ›‹ÖKbá,’Š^ÃpÍÃö¯Š$góð†ó»ï~ƒŽ~¡ÎÛsÕÃÆ!+Ö¡ƒîn=¼©²f^…^øÜÛ~Öïe„…=¼)çÖÕòÄÞlpÏÃL´ÏToÔ3nÛQù ª‡7ÇøÅ¶=õÕî^ëzxóO}À² ïpxs¶£Êü ìáÍjS“ì;¼ál°»_›`ž£Úáí£‘æ;…ùÁÞ>ÚÊÅ=ëµõ’2Åç†:ú…ÚzÉÆr_*YеöÚzI¼Ç³/Œhë%¡8¯îŸ[·§µÞzI¨² ^¡/úfq°ÉÚU\tÏ·^“¨º$ªëÐÖK Ë6A¤á÷m½¤S&÷ÁyÂ;Ö).]©Øxùá-„|ÓY…Hð}^B3ÏïºþG/QÒwVõÞ½p½D?÷ñÆýõè%JuØ÷¬8ºç^¢Xu÷—{l¸÷ñÑKªÛï'ÇpáÚ9zÉ»Kç”íÅŽ\½„j^+ÏÜŒl££—Øäžu+à9yô[ú™—÷×£—اgFu?Yø\=XÖsâ\åmÞLmpï< úÍ›á ÅÒÁS0ŸV^b¾(¾iJ=–ôè%Fý^+OAb^bT?d5ºXñÜ9z‰Çò¯w¾òƒ=¼¥^]£ŠðÞýÓ§áÕ³Þ׎^âëúömƺ:;zÉɳ}÷á¤8º½ÄM>=¨þÂŽ^âØ‡óŽë]8£ÇŽ^â¾âÞøÜÃ[(÷žä£ÛÑK<˜·Êkˆ=¼}z]saz;z‰'kŽ+I´£—ææßzõK¾ÛÑKbðLy[¤+ÛÑKbr¯Õ¹ýXäíè%1¿uj 5vlÒLØšÁß÷è%!¼ß¦ Ú%vô’îíÕô±Í[(çÔäLAló¦4W£f÷Ò÷mÞ"õ¿ÞóEôÆÞ}t¿{JÂeG/¡øÛßL°Áíè%y}æ˜û Â΃åyT[¾Û¼åÜSg;†¸Ž^’ƒç0-W¦°Í[®É±/3Ì)³£—äb­X/²íè%)ƒí³KÂËsKöµ‰=·ìè%ù©ßÜËÕÁµ£—$Åò+æCõ¼vôêõWqÈpÌ9µ£—¤)im×Eõovô’½N÷·â¸õ’ЉqÑ}Å:>W6(wfØ«}Äó¾ÖØ19ÿlßÕÈqë%yMî!(gß6V¹÷Í»нßZ/ÙÛ‚gZÄiù{në%yYÐZß×$Æ­õ’¼Ü)'§*Sð·µ^²Ímî#0ßÿÔó܇·Jæ£s=ÊÁ@¬,çáI„ Ç­—des>,Â6oc-Òû¶…5ÐÖzI IýôDMœÏ`­—Ô|s:£Ì©ÒZ/Ùv±Ûg†1wk½dŸË»Z(Î`­—lcL8·ù:{°ó`b_ûôZ/ÙØON¤Ùeø¾ÍÛTž¡X£ñ›µ^²~¡ý¶Môc­õ’\ï¡¡†¹uÖzIõl¡ÞXÕƒ m‚ÖKò×çÏ&¥=ßzI.ê·]³tÆ­õ’\ƒã…s-úf­—T‘âg¾Î ­ºŸƒuêiv ÐH­õ’\¤‘–ýK²ÖK*VaŒ}Ñs‡ÖKòw£þiºAu–f‡7ì%s÷ÆštV·^’²¸{ßǘ_b­—TK®í[=u¬õ’}r\i™ÐwÆZ/Ù^×ÚïoˆÚ¶µ^’bÎýKLèîn½dAgßð¤}ÜzÉ6&õÀ¼J›Aló¦X£P÷± ümz°ƒgîNÅÚ_k½$õÓêò'Ѧm½d;äœWu¬ ŸÛ¼ñìÖªkžÌEì'o{*Îí³ÖK¶'2•õÔ0ȳÖK¶ Ã{s_竳ÖK¶ cÆ1whQZØæÍŒµŠê‡¼µ^’ÔŸë>'#A«°ÖK66¹?­S®„µ^RØüäh%½oóf18¯BeÐsã`'ÏúìùÖK6–µøj©ƒ¼åá-¹†IPB)lóæ_6•ÎÔÖKÒ…u®él?´^’NóÑ÷Ú™ sʬõ’UžÅ1Kk½$=œú4DÖ±Zë%ÛÁåÜfS™^ØæmÿŽëÉ$.Z/ÉÐe¬ R¿Lk½dÿkò™õ2¬o½$ËàùÌ›AMÌ[/Ùæúâ>#Ûׇ}á­—d*Ï*ú©èØu°œ»¸B\…mÞò³/j¢¬ ¶yËÀºÅÛ¬1èeà­—d&ç½nßOè¹þÃ>w°]í·^²/õkr­\Èĸ“ßzIaiþ[ÅPï¿õ’Â~æuèvþ‘‹[/)¬ß-61gÚo½¤°ñáxAJZa׃hÓ–‘Öðû­—vroÍšiø\=Ø ûx¼S¹Ÿ÷µÆÇ„«_=×ì>ÄÉVÖw-ÌóÜæmÆ`ÛsMìÍâ£y[8— î€jÊØÙ¼QHÍF˜ï7ŸÍÛÂÚ{Þ"õ‡ñÙ¼-ìµzëöÐ&ª°Í[˜“ȉñ Ÿòò•^UØæmצÎ$ÿا,ÛÕ{Œ~[ó¶’óVʘt|ßæM>±™}N¢íé36ÉVΨAûjÞdq¼ÐzújÞä3sa¾ýãûVó&>ù;LS\¿«y“üäAc+„ÂÊÁ:ûCû„Ã=¿ô‡å3uN'l󦘟zç¤O´K|5oJ½˜í6Ëqí¬æMý3w'ݱ͛ûþš {y¹4ošxÏkù"¨½º4oöéZ­ñûJófÂu¬{³Ñú•u°<¯£Ê|ciÞ,åÖí­‰9é.Í›£ýPõ›õ–w±ƒ]Ôci`Yta›·JòfÆéŽ•æíWÕ½Yè¹Í[%’ÒýfIçº6oñÑÄÊýƒ\5׿ç®ÇwÖ–kó–ÏÉ,³׎®ƒUÊu7îÿàÚ¼%Õû—>ya¾½«,ÏŒ®Tw<«Õ6ç]Q-¸ëÃÛþã¢Ú’ª:ø¾ÑØOnå M|n6vî}9ÆÑÝ®ÆÊç<»ý6û‰oÊÀ¸“Ûl¬O;GÿÍm56XSØFã wÆæE}Çå× ©çǺéÁ&ÝoÛÊÅüj·‡·ÂûO» u9·æm`NÎ=ë[PßqkÞæÅ=_ª-+=7öSïÎ%poÞ¦|tÚed÷yó6Õ?1ØÚ…mÞªúŠûR¾†û:XžS‘¨—¸ËÁ&åŸUe•!¶y[¦T{VãùðÜñæm}ò®Ž<-ló¶>³[‡ÖK»ÇÁ²V¼=2º[¼yå>éC`´ùÆFó&vѱ5©¼Gó&®˜šѼýG½Îõ)ôë`?±ƒXtwGó¦×gn‰€+SØæmÛºÆ:×µÛ¼éòO?¼Ä¾>Í›&϶«¶I¸‡"~Xε”Wï±›ãhÞŒfƒeų0–ïÙ¼Uü§·“Ù¼ý¦eý¿gÕ{6oÔϼ´WqÚC¹–c·U9¶r6oû’ùøèõÏæÍí¢Ì¿¶(ïм9Í_U#vὙ͛Ç!åÝïõÁ6oA÷qQiüy°Bsw|Òì˸š·^gCíõ¸š·¼ç«wx ¶yË)´7ý2£whÞgrßû"19.9XáyØ 2za›·„`ÛÓ“/°F\v°Æ3*Ñ­,ló–Ÿ»û uTØ8Ø ù"ãLÿ{‡æ­&á~jwðŽÖKöµÉù;•ógI´^²W׋\£…?ì'g`Nz´^R{T³Raé‰ï+ËuãÓêQÑzɤ]iÉxDë%“jÄžYf˜k­—Ìyqmßvß0­—̉}zo[Ù°/v´^2'ÍS«~ 5›h½dcƒâóŸU´^²OðO¿â‡ÏË}“Ê‚IÄ6o˜´ÿÌB5ìu­—ÌE±ƒš 3a›·…ýi«?⺰ÇG´^²±ëS7ž8S>Z/Ù÷?Ï5¥Ãh½dŸsþé6…¸hÞöÑG5¯•o„ë¡õ’²ntÁØ´Â6oº’{fðìËh½dªr ž&õU‹ÖK ›Ÿþ©tþ¶^²ÿÌ}¦·ƒþP´^2ã-•‡'¦ôÛì`9Ö±¯:[/™6ÙæªÊ5«žfc~‡ÖKöaðÍH±ƒh½d:õc’[[[#Z/ÙX§¾TúvÅlóæÆwì^NØŸ+Z/™î<ó|[“¨—Dë%ÓëEj´ãs›·˜¼v22è;4o±X7úe%ÿa›·w3Ï®/Œ};¢õ’Ÿt•øˆ¼µ^2Ã9®W‹¿Cë%ÈšÍ6Ã&ÞY­—TLjŠ/îg­—죚ïÂ}¡­—ÌLîÅ,‹ê £õ’’×i&@õ1ĵÓzɺÖõíñ·h½d]ÂqÞMú¢wˆÆš~z¸.ô[¢õ’u9Ï sŒ;Eë%ûmÙ^·˜d?´^²±\;Y•„}x«¡ß\“¹æÑzÉÂx×3¨a|>Z/)#”ëÉ Z¶y aß&´R*lóFyñ•Ûq%ù±­—¬÷ÐçßLØÄïÛzÉÊO®ð5ç›Fë%+}ÒL–PªaŠÖKV:Ïr -ÜþS‹ãÆÊ65¨–àgiŸwÈÖKöÅ1ámVc|3[/‘K¹Æ¼¢†ØÕXœ·½}}ÁwÆÏÆÝV#úoÙz‰`òaÅÔ~­ Ï7ËÖKöÊšùB3¬°ÞXê%^3wóK²õ’JS$(”â¼ÙzÉÆ®¯gxofë%{™8ÝW¾ž­—È îÇ”ï60¶y[C¾ý P_ÏÖKªÔ~±;œ°ÍÛ’¤¾¡Ší Û¼-¬M½û)Öågë%ûFŸŸÞB43:[/Áï[}gö¹ˆmÞD9N6ñO…mÞ„z”o»d%ÎVÊÖK6Vhž.ÊõÉÖKöGpîY蘆eë%Õ÷èc{ž}Ùz‰pŸÓyÏžp|nóf÷,ªú1úmz°˜“¾ýîœÃ”­—lËþÓSÝsY³õ’êµã­u˜l½DÌ>½‚9Ÿ+[/ÙXc-Þ5Çl½D,òSÃ>#Ùz‰ø§F–`|3[/Ù·Ðà^tû0{=[/Ÿ<#xøÄÞBÙzÉ6û“5gÏßÖKä´zé;ªt–´^"îŸþ}Js5²õ’:Ä?µ\”ƒœ­—HÛ}«šßàs›·3çmƒ+Öudë%…¤»åÒ‰ý¶³õ’å9ºû¹8G7[/‘\þ©-²…Â6o™Ü/hCâ­õ’Âæ§§öíÈÖKöOvê“Sc ð›µ^¢\»S³t^%ß÷]ØzI5¡úäNÌ_ÏÖKt(Ïg¸’r³õ’MʵœÙÊÙzIµ•àó]ÅÂŽÆßYÕ×Cë%:Ò‚ýBš’­—”Â35÷Ý"ï܃l½Dç'.mcÐ:k½ä׳åå“™c.`¶^Rk•k¶/ò!³õÉó,u,œ?”­—k“ûL_Ø/>[/Ñ…=Âî¾·T•­—ì—ÍÏœbÁz‘l½De¡÷rµÞz‰ õ:¾1ö•­—èI=€>‘˜ÇŸ­—¨.Îˬ‰¸vZ/ÙX¾/öG¤ó¡õÝ?N8ÖL³Ì²õUc-ÈfbÜ)[/©ö%‹{­ê0ÙzÉÆrþÎv=Ð×ËÖK¶OÅyñ{ñ“Ý×z‰R­Æ='þ"[£õ5çõ ²p>Y¶^¢\Q=ögÒû6oŽó‡êL]Ô3.[/Ùê§Î]h®r¶^¢Nõ•{ðjóû`›7ÏÁuºÈ¦m½Dc®‡Ü& îÍÖK4Ö§vÇ¡…ЪãèƒÝŽ÷Søôþ°ã`|ék:jºÙzIÕØòl»50Ç%[/Qêƒ\ý˜Ôh­·^RÁ õ±£0Ç;[/©I¼Î¦aÞ GgõÂã»°ÞØÉ³ö‰šn¶^bïâþ§ÐDíÔÖK6V(vpñììl½¤AI ªÖyø}[/±Ë¸Î§J2î¡ÖK6–c‹ó¢<èl½¤ŽÏøôœEm0[/ùÙüï\ UP؇7;³eÀ>C1[/©yÍÜËÀ/ºZ/±aI¹·ÛlļŠl½ä3{¸þ4Èçm½¤âQ|ÇNœK[ÿóÁrŸ½š¤ºۼͅ}´*U{holó6ÝH/ñZhøÜæ­¼*Ò' ûÛoló¶_ö|u~ˆmÞÖ'çtD£ßÖ¼­Oî¸9Öûo¬,ûÝUÙ§ˆmÞäâ8þÎùš7Ž…^•ÄðÚUaÑXç^caÝWU&l~f i o­—ÔÎ=Q/›„mÞÎ\η?„q½•ƒÍÏÌ1hwQØæM…ûôîcrÇ7¶ySŠ“Ýe yk½dc9¿¤æd¾k'«ç~c?½5¯Waó`“lð¸lÄmã6oïKòÌ"s¿°ã`ù¹ºðì+µ¨±Á=“Ç{lÚƒmÞœzÀ—/´ßZ/©æKœ&PŠPØæÍÉÇñÒia>ÃÆ6oþ©- 4Ù Û¼Ådÿb˜p¦nló6>s &ÜCåo46õc—\¿Cë%ö.fé³ZçÂs§õ’Máú‹Ÿ«Øû¸õ’}»éàû$î·ÖKx>äKZÈEë%¶?<Ç7Úüöám»jÂþÛöSð›µ^â×7Æò®jû5ÖyMî§}³hlä§÷Íz§O6›œËºÿÓÀ»¥õs|{­<'[/ñA5b^¹ã`ƒoìl,iŽ·6èxî´^âÔ§áî2×oë%¾d|so¹h½ä7Ç’7¶y[ÁµëÛõ§{¨õ_™÷#´ßZ/)}†ë’öèû6o"œŸZ>/¾oë%5÷ìúôË¿pc›7IîWQmÒñ>n½Ä±0ù‰©AºRa›7\/]9›øZ/ñ÷ÔÓ›P®ßÖKÊq&]nß-‚{¨õ’²A¨ža{›†gjë%ûøeÿ¸²VãÖKÜô3›f ~nóöÕcBÛÑÿTSƒåZÚí@Ò9ÙzÉvy¦E©Cxöµ^âþñ!/¿è|h½¤°É=_Àµ-lóæÔó{Þã(è¹z°Ê¹ž‚߬õ 4›ÿZªx>´^²±Ÿï€V…mÞb\¤OÚ»ÍóÜæ-œgÚP:'[/Ù¦ÍÇ–›Sq¿µ^RXî‹]ÍJÛ¼¥Í­äx¦¶^âç:~­ß í² Û¼%æ²þs·ªšhï´^gf.ôô5úmÖXêm|ÛQNÏõÆ×(ünÒ¿çFc“ëfL.¨Þ؇·}Æ|êòC.´=[/©þ†ÜWxû¢¸‡Z/Ù ûÓ¿zBÉwagc•çI˜B{¤Â®Æ&úRm1'ž“­—Äœ<‡éRÔ+ÌÝØÅº}¾û1=ï`ûé»(|¶^²±ê|wOÃ5ÙzIÅĨ&¨n<úÍÛ¤Þ°uF"¶õ’аÒŠÍ%Ú¿­—ÄZœ¿¾¯_òõZ/©™ 4WCgƒmlóÆsê~3ºc[/‰EùÕÕ?®›Â6o‹ôê:×ÙVn½$J9ùöL^`+·^R3 h¶‡¿Ÿû¼Có&´öY=¯DŽ[/©~ñT“9ëMëFhìwFû¼£õ’eIûGmló&ñ™šØuc›7]œƒáI¶çh½$Tù~¥k…mÞ4?ym)…mÞ,¸¿œcKaý`9‡h½sÇlóÆýŠïyØPß½±Í›Sÿ/{'ð;´^Rý#)w¼æ ÂY2Z/ù•w¿úk8ÖùllóæÆý ·¥ël´^AÒ¶uMz‡æ-(ÎP±:G»d´^¤™ßµž‰÷æh½d{Yl#V9ü¾­—T?RªÉá¸Gë%‘k‘VQµôš·üÌûï9b÷;´^²ßõãÏ/ \“­—Ôgàø`­ÜÆÎÆêä\Ö•¨ÙŒÖKò²EÓ6j ¯pÍÖilr tu¡§÷}x+“”ìÉ)X7S=ïÖ'×ù`Ìrc½±Tç^y¼Z/É¡¬mÿFQÿa³±8o±zúN‡Ü™r^–c€‰ã¬ Û¼ ªoÑJIC›k´^RÒ ÏѬ©ØØæmR½é¾‡t í9Z/Éù™Wç&P¾±ÍÛÔA6Wå•#Ç­—T¯J®kž¤UŒÖKövãž/–“öEë%µ59.òžiü`›·eB¼… ˜ PA¡Æ:Ï­vÛx¦¶^’UýÊu˜o¿±Í›ÌOïÇåÄ[ë%›á¤¸+z~oló†Å»÷쟑Šk½õ’ÿ«ç¡bŽìÆÚÁ²m”n¨—ŒÖKR'ëö5Syk½¤\Î!ºñÖzɶƒÌ8÷+/<Z/©%­õ4ìÛ±±Í›:÷[Ù&áÀ{¨õ’å~ cÙ;­—ìàÞòÕ·¿Cë%õrŸÙ4޾Èh½$ g·n_Z—’}ÖzIý{Æõ¤ŒÖKÒ‡’¾‰ ›«õ’ Î!Š 3µõ’í¤`=oÅ’|à}ÑzIµ›ÐOn;­—llR-måáj½$¹¦­Ò'.ôGë%éÎ=Ø®¥t´^’ïÈsoò}ÑzIâàé§ßà/Eü±íGë%‰Áâ›·µ&Þ-­—ToÒ@‚úklló–Á¹ØÛ#Cr´^’™ê|öM²«o½¤’¿¯ã›Ö¹c(‹tðqë%7vÊÄ.Ú·^rcW"¶úçâz¸õ’kðk» 9ñ~»õ’ëôÛÜÇ·^r)^ë-ÛûéVë“Vñ¹ûh6¼ßn½äÆNømq—fÓ7‹ƒ=Éyn–ÏÍÖé}sÐ=‡·ß¬t Á¸ÓˆÃÛϹ<Ï­¹V¸vâð6¡yž»M²=cý°ÏýUêÿao3‰· Û]öð¶ðûÎêÕ>Ñ.‰ÃÛO¹±UƒgØû¦l°ƒu§w˜»?,½ÃTQúf‡·Ÿ¨õ`«ýTLÜoyxû:œwØK]ðìËñÃ*¾ƒHI…=¼ýòÚÎ;Tu ž“yxûÍ*z¾ÙÝÑ鹇7IÚÇû©äëåáMqy}3£w8¼ýO~ûØ•4…<¼é¤½Y³ÌpíäáíWßòü¶['zßÛ½ƒSME‘ÕXƒuVy™ïøÛ¼±‡·_’ßž÷Àu6¯ÃÛ‚ô·çÅ §wc×K{sR°=¼ý4¼ß;Œ m£yÞ~†ñƒÕÒ¡ç÷ÆÞ ‘ãÞóX[ØÃ[ÀyvÏÜ ¼/æux‹wâÔ];yZÀÿ½Ãáí7äìÁ®m­÷QôŸ*ï9ØÁçúœï0o9i­›ÐZŸãðök^~Îm圶*úai….<Ïæ8¼ýf{<ÏÝwË Íqýa÷|õïÄÞ~ýÿîãë¢w8¼ý{~ç¤þ;Çá-yMVg\“ãÇ[äçî†zS™³ykê_vIé½pÇÎ9vÞÇ5¥p!v¬Ñ~ÛG‡ãÞœÍÛŒ­-ˆ¿mÊ›dÃÈ…±º9õ`a­ß6_ôš·ñ‹3œw°mÞÑûúÁ ÙÃÇĵ3ã`-ð}·;ºýœy°Ÿ3Êó˜æº~Øà3õBt®ÃÛ¯Ð÷g—l[N{x[lË•ýNØÃÛïR?¿­2©ð;,ùaé}#±ßÊÆÞÞ±÷›\¬ÃÛRº¶ÿôÜÛŒà»0®‡uxûû¾ §Ów8¼ýjûÎùpþã¿ï ‡7?à¿wrxû9­g¿å…µ}{xScq&êÕSo¿áSçrQô‡¦Þ~ŽÝß»Pטrxûi ¿5iwšrx³‹ž[ÜÐûÞ~Ñ~wV’>9åðf‹öæotö6XZgÕ ׃Þ~A¼ßw Ì{xûÌ¿5éšÂÔùÃÚ;{5,¼[ôðöô>¤\ŠgµޜϨ}óóo;¼ýb>ÎEv”Þ~sÚþÎ(3ú‡·ßþÝ…+ƒ¾Ãá-ÐFôÒ1·nêá-’×dà\®ªûa‰·ìá-ÁV®>œSÑ®žvxËIß7 $áÂÞ~…÷qÐe‡·ü¬³dÃØá-mðú]NÏ=¼eo!* ­LkÞæåÉwKÐÙgq°ù¹»¯AØæmþý|½9h½dÖ@Òyí½dþá?¬^ÄñÑKæÀuv÷WÆÙyô’¿¼ø¿wÌ­›G/ùkàðçÏ/þmúÃŽïúÅovô’9ñ|¸KÔ1'r½d~|ÿm#®‡£—ÌÉûbb›’ÂÞÿ6݆5®õ£—LpúЦ;àè%ó×ûݱ#éŽ^2ïùÒV.òÉŽ^²WznL¬EÜØÃ›®‹ïÍE¶òÑKöá:Ù‡º ^2³Š~6L°ý{ô’©°ß¶3䕯ws|ô’©ù=‚ž{xû%KþìuuŒCΣ—Ì_ŸÞ?]ÎÉ';zÉüãg‰MÌuŸG/Ù&qq­…ñ–yô’¿æ£¿{ÈÝYG/ùkû³×Wzô’M'é0åø#oG/™ŽöƒVo,¡ovxû%íÿîc›ü‡7Ç;ký»_²í^2ƒ÷[™\ð}×ÑKf°³O´i×ÑKþêfþî!…šâ=¼åäýæ féT»£–}‘Ä>{xK>ûÕÕmìá-Ñoñ§_X£°Ž^²_Æ‹mz¢M»Ž^².#-SL‚Þ·yûkîúwÏÇ ÷mÞöyÏ÷|RNÙ:zÉúåÿþž{-´£ÖÑKÖŠ…ZŪÄ;ømG/ùk´ðÛC8–¹°ë`gÕv”°òò&6É.YG/Y:+“rÕÖÑK– kƒûDÆõ{ô’¥lÅR£÷=¼á™Zñ¬wËûç›ތχ½ñ>^G/ù fþöERlf½dÙG×h7TØÃ›O²Kö‘š¸Ö^R]æéLͼèo6ÌÝ_™öÛÑKVðž×™Ð'rcoÉ÷E𢭱Ž^²¾YÕ“½ç;=ØÃêgÿ½c_o·§°‡·D}½bƒÖäÑKþfôüöæ6]ñ;½¤*ðÞ,óü¬uô¼&«Kþ¶£—üºÔýî–íàݲŽ^"¿^zÉĸÓ:z‰LÔ*¾‰s 7Ö–}‘ªÀ=tô™ññl¶y“õ±¹.Êÿ]G/‘…vÔö³ÒQ_G/{þ¿ëß½Q0'g½D”}ÓuÒïpôùõÛ>÷ŶÂÐÞYG/‘_AÍy®ÏEkýè%bƒöPEãÝ}ô1㸩bÿÔ=¼ùe¤8Î:z‰øøØ´”ûµŽ^"÷Põ÷\ØË¶ZW¬:kbÖ"®£—쯻>1ô×ÑK$X·ßçÚàëè%òñyK¥Åuvô’¿Y¨?»ïŠûíè%zåb;JÉ&8z‰Ž`ghôÛì`Ù~¨Àï{ô_ÿìßuô’¿}Îu—9ˆ‹:ŒÆÖÑKÔ…b–›èW±±‡·øè%’ä_½D¿ïª\@ôc×ÑKŽËûÚÇìg­£—hr|so™¿|¹±Í›]¼ßB…쇣—ìû”µŠí:¶y³¹ÈoÙ?—îØ£—j6ÿ-Þ’ìߣ—ØLZgmÞlÁý¶}œ_ó·£—ü*‹þöÐiü÷\9ØÅg”}³£—Ø¯ØøO/™Aϵƒ5â¸fÑsoŸaÿ·t_½Ä(†B±º{x³‹c–.ÄñÑKÌÐöôš£@ß÷è%†ñùÊO×…öäÑKþ4ý쨭£—ØoQýâoWb­Ñ:z‰%kmiØtco‰~Ëݾëò×ÑKü|}ëhŸ½Äó:ŽÝWƒ_b›·¿úÍŸmï0"¥°y°è“IͦAQŽ^òwQÿ餗ÈÑKœÖoå?Þ-rôÿ%ÿÖÎ…ý•7¶ysŒ¿•ƒe …•–bT“ë|äè%M:^çæÙÈÑKÜ>ñn¡=/G/q Š¿•3ïø}o=JgnlóçJ×îÈÑK‚tðÒ)®'G/ Œ5W?Ö˜äè%!xV¯+ã y;zI(r|×·@ßæmÞþúJœ{S/ìEWu ~wÕÄ_ ýc9zIëã"GŽ^³¼g€*}ßæ-H(ýw8½Ãá4¼òqÖöÉÑK"Mг±ð.”£—ü5>礽[¸Ýßìè%I¹¬úoP£ G/É1s쉼½$礼 ¹è·5o¹`íÜó¨Ôè}í`QSâ}'9zI®¤m¸¢ G/I™Áö9ÝØæ-•õßš7gÉÑKÒY߉Aþ¦½$I×Í?÷ðö‰Ýj8j¤rô’ °i÷[ ~‡£—ddrþÎÀüi½¤ÞUH+Î mi½¤rj&Úrc ÌßÜX?X>Kfí‹ÖKå×°­\úfÙØµÈ)‚ñ~k½dc•4ÝŒ‰ùàÒzÉ(׺‹ÐÕzɸ>Z[Î!¸ÎZ/©Íf”¯1ùLm½dïLŒ¹ß³$÷Pë%› ޹GŒRZ/9ñoèÒ‹Þ×Ïõ»­ ú…ÒzÉ2Y³¹‚î¡ÖK*ÚM÷ü|ç4ÜØÖK6–óH«½®ßÖK6}Èš +¨OJë%•4Êš+Æê¤õ’_ÛÛ—m?É'“ÖKŠ Z¿<¯ncõ‡¨Onûr¶y›ÂyAÛíÆš i½¤šÐýËQ#•ÖKÆ´)¬Ù˜@¯4i½dcu²˜“.­—ŒéåA_5\±ã`á>®ïðýzÿ¶ÖKöò”S›÷|ë%%"³M°œì¨ÖKÆš¬‘Î0º[Z/+!©ÚhÌ$»¯õ’!“ý‹kRŠÏmÞdOÎ4ùYÒzÉøK0ýÓ«ÎÖK†kW6Elë%ûߨDÍ;ðÀïÐzI¥„ Þó5óï¬ÖK66è<«*76Â6o&ës·Pgm½äŸ|ùdâØƒB[/™>Ù~¨jJ\“­—LÇÜƒŠ·,3z‡ætÄÚåLÃÞl½¤PÒwŒ{hë%%r)Ú%F³³«ÏOcûYáŽ99ÚzÉLg­x¨¡®¡­—T'™Eß!á¨/¬6ÖÙß\20F¥­—¬+ûdn“Þ÷ámíËŒêÉ좕¶^²†OÊ©¬6¼³Z/©Ö”ó´Í]Œkë%å°?Ÿ8“pcÇÁù¼úÚzIÍ‹¡˜ÄpÞ›­—ì£kÒ}¼$I[/ÙXc; Sz Û¼éu%ûdOjë%Ë>ù}ûÔÂX³¶^R#ÄÉwÚ7!jƒÚzI ýf¿EƒÎÉÖKjXÚ +óÁµõ’üEÓ˜ sˆ´õ’ŽEš˜\&S¦­—Ô°ž¤zyµž~žûðViWôDÃÑ~h½¤Š_É~ƒò=µõ™±P-¹Pqµ^"ÍËçÃvp·^RŽ=틚I‰·^R†ÕÚïÕ‹qm½¤.[ÒÁÇ^½ø­—lƒ òcƒÿix÷s[/£³Ïª·P>w6sÒkÖÀ>T‘·ÖK¶j´Ö/îe«­—Tœ€îÂyöUÓÖK¶/)ÉÈ@ŸL[/Ùþ–ç¦Ósý`“â-ÃÙg­—llåÿzÍ´ ³¯õƒóíW”ð}[/Ùwqîí¥´Ö[/)Eï,£œSm½¤úc,zßµ°Ÿ‚¶^¢¿ÆTïø&öÕÖKJŒä|ðŠcâû>¼Ùáþ}_ð~k½Ä–±Ï»Í~²[/±…z_ix®“¾ÃÛ9ÆEjÏOÒ•µõ WÖ@†+žg­—”ùÊ÷Årznë%~Q¾Ü¬ž’¨ië%j¦Ê>ú°‡«¶^â~q½i}ÃÚv4ÜCvë%…MÎ!Ú+m9»õ’24)ÇEÿ•e¸íÖKnC>ã/Ä|»õ’;Ì}gÆÔHíÖKjðžàYR3a'Ì!­±¦6®ßKÄbâsíÆîS‡{[T×úþ`‡ kmqMÂ>¼­ÊðÿÔ/úoÕ‰öÅXàþý§¢|v Ì!Òjý~¡‡7uÌ‹¿?ãĵcãáÍãþ÷uã¸ßl<¼ù_qÿ+ŸÖq‡·} òç‡öf±ñð¶gÔ¶c_š)dãáÍÍñX•wµpMއ·¸ŒsN÷ÒCÀÆÃ[Ånëµµ6oñ» _¹ã¯ðèýÜùð–"ìCzi–ð·^ò4§ ŽkØÜvë%ëδ=Ëå 캱cšS|s®5‹[/ÙÓ‚{¬í2ÐsõÆÖ¾ :µJÀÇ5yë%5psÇoIbÒYrë%…ź¤ŠgÍK‘‹[/Y5$Õ)pŸ›F¿-ÿçIì¹&Ù%ÛÀœpVÛ­—¬JÁs½ZsŠáZ_£±“{y雋ç¹o®ö©T(ý)ìÃ[\“ë ·ÇøÖÃ[ìÏÀù;Óèü½õ’ú\’óö1´[/‘ºø›-Ñ¿óáy®7ÖÅ*1dás㞃{êì5¹¿ ­É[/‘2nœrY«*~‡[/‘’Ô#a{=˜ƒl·^"5ëÛ•ën¡¬´°óÁºK°½sý/Ïs×µ¿á'?}==q=Üz‰~jíë?(ë/¬ÞØM¾É§çÖ_ ¬ç¹vc÷#”µ '¿Ðn½DëÞôÁûbü­³7vûYlWg(æÙ­—܃”.Ò5tA[Á½õ}'Füòw–“Mpë%7m¹šÃd9;¬c>øS&d„]76/eÛsÈ«œýþ·^bå O:Ü ûUØ­—Tƒ8ÔaªO¤‹Ó;؃­.ݬ‰½Öäó~cæÛ¶_sàz¸õ¿‡÷êIŒ£Û­—x5…4ÚÕTï·[/ñ{V'Ù0û+Ð=ë%QFRÞJÍÒA{çÖK¶±paJÙ“d—ÜzI”3Ì>¯…~‡[/©@íg=lK…Öú­—ÄÝä–{ýUá*¾ÃÓïu-å>)J¶Q÷{ªåªã{ÊŸLö¼Ã™Û‡šy}ò_£ôßsO½©¼Izfe,²•õ8¢¯…}ŸgsÑyvòKþŒ¦ÿí>½Õ5Û/¿äÕ¯­ç@Ï…zŸü’šØö~nåúLAÞüó|?×kFÄB.ü[ðe¿ÒEŸç¶®|j˜ÿ¾ÃHÜó­—Tc±ñÆê×ýÙz‰üLþ÷ôüžæËYë%Õ}°Z£¡Éo9zÉõêÇÔ=ž—Ú­—Ô¼9xî-}ÑyÖzI5%.jýâžo½$Ö̉ß,ò•¶õ`?`¼ã¦gfÞ5ñÜ m?+Þ—dKÀ˜Eûo9q\µ³Èq<~€¾7Ì3ϧž:Û~À\ï‡Üw€¾Ú™>ØÇÈ9|Òú53ÜÇÙöä¼à¹·«dïäc—TO(ÂV–¾o>vIœ2ª¿w¨,Â>÷›†½›EÝçŽ;ÖîØ­—x¨¼‹ûŸþ´Ž½¦ìÖK¼š/½ÿºÖ"Ú­—xÍísÀ®»,„žë76Öz7 ¾s´äU×ü`ã`ß óO?Gà–ÙX:zû…F3…üzî·_„Ý–ö¹ßÆümåV!ìs¿I*¿ÃoÂÚö¹ß¶øNÀyLm•…ØæmBBÀ£^~=÷Û:h®g…fŸkv^ÍE\¢Ïò[/)¬Àl’/œzBù­—Ä+Ø~›Ï8/Ôo½¤†]˜Ðܨý |î­—ìï{á<÷r9&Õžùxx“s¤þͯÙéñŽåûhÞB…æÏëUý`Þ¼ºhfÓ¢y¡>»$͵¯Î×HÃç¹úϪ–÷©ô\û¿{ÎÖ™ê8̇ÿ¿zvÖ8÷ß,þÏž:ÿ½çIà Pÿõ/¡>.ë.O|ÿ¶ÿ‹Ð<Æñ&scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/4elt.grf.gz000066400000000000000000005165561514310134000237430ustar00rootroot00000000000000‹[â5L[¶µ6¯DŸ?ZøJÿ;–¥9%ïŒqþœd³°e©ª$°ïëóžÿ¾gyÝÿîû¾ú¿çßø7ÿ½¿kÿöïßão÷ï/Ïý¯Çåçßžß¿¿ñǧÿ[×øÝöûÛûûÝ}ýþ÷»ï÷wES=~ö¬ßïâókø×ÄÃïÇïâŠ+ﯥqýþtõëÿý÷¶¸©GÛß¿öûï·µ_ #úÚÿÞ'~9haÖïú;ãïû÷—NÏíßKãë×Ë]´ßÏzØðÆÝíŽ~~?Œ6VôöûùËÃÐýýš|íê½Ú¿ÞÃ’çù]ý°úgÙ­þl§Õ0kÿk-Ú~¢ÙŸ…¿mã_ëŒ(ÜóÐïïma ~ÑÌüý¿x¢Ÿþ»w3¨u3â “žæC£¿fú¶<ë¿[~?êwò†±ý~4î0ø½ÃÓO\î¿ÿ{þðõý›_˜£»¾ùÜaQ„!šü™ðë h!Éßh©ÿzú[˜ý»öë`´øsøàß1°ñûó¼1”GÇ`41”__¿爟ƨþŸq¿‘þƱF˜ØÒ–ßåhl‡E-úý÷g¯±Á¯ß/miÿÆo(XÔ"háƒßfü9<~®üýï7àæÆ8æ®øUŒ–a½qù»ÃºMhuþþ´ÀîïÞŸ]ƒÛ;?êá‰ß/VëãüˆÍ÷o÷VÃÖ£ž3îa,~ýºÛ“?ÿÂþøÙüÍz¢ßpqôƒüýè|.öD#*¿N÷=õð[ ü÷£;~ÃÅH÷¿ÕâÏ1Þhï×ׯÇõÅŸc0ì ówð§‡Ý#÷öÀÌÓŠ ö‰=Á™ßßæpZࡇmû×ËÛ´nñ¯û÷7 Ï„«ZüáÛa{Ïü ñóûócÛÆG-Ìü×s·03ÜãûÙÿÅúýWŒnàz'¼ÏoÔ¿†: ò…㟠ADöWáœ_ï#šÅ/ÃÙ?YaèÏ4-ï8û÷·cšáïpâ÷ï{¹ýçJFóÅÀ~CyîEpîî{»H·ünÜ_´:ãÞè`ƾ'ºY¯¶üºû~ÿ7¢6O½ðüBñë<î 'þsÿüvaÁ _„»>˜\¯3˜ž Ÿ¶_tGx=ÂõüŠî~pŒן_”ÂþŸGÀô×é¯ëïÃüÁ‰#bO똎~-ýlî'¬øYÈ~]ýFýç×£ÃVÅØG´ù±~? ?FßGDÌðhÂ>÷ìpÁ/á”ç'4aÚÏÜh7ü÷³þþ5ókâgËÚ?ï·>÷À€–6~ôD¼Ãun"£…ÃþðSçæh÷w×oP~ëþ'’C¿ññŠ8ÄÈ^,{Bíïˆó…?"6Ñt$ ß;\!Zñ,.LlŽ$ÚýGãS¯¯—ñÿÜ0§± òFˆÃ«¿îø5†¿¶@þŽ˜_84~æE¢‰N·„KHÇ€|¿w„·[yÒ½ä±aŒ§M<ñ»—a…w CŽï‹h2ÖÛ¿E¶|ð¸ún"ÿ"2?ÿ⇙ tÝeDŒ+ ìÉØFPü¾Aýßÿ-íîþ²5mºI¸áõ°¢eëÄ{g«ñûVc › <üCidPòénl_Zƒ×Ë9Ñf´Ý‡Nºá߀caçxâ?B§âÂg\ß]÷¢ïûE,ðBqï‘o!ö½×Jo-íñ‹—µÍ'£¹Ñ4õžgøÃŸ‡Œ6•®scH½¥Ûæì´¥ñä ­ƒ>øK OBè /“UpêñhŽ‹8Œ{d^ÁÿáûðetÞ§#£H DÁ÷»ùþÃ!w»J1‚_Î{ÆÒá/d¦š{ü˸XØî ŽŠÑÛ{‚^HÀ„£ëÚ×ÚðÖaÁH3)|bàM¼a3Nc8ú×ÀˆÁN»¤.blÑ|ðÈpd7[G³<ÑŽÑ-…ãÂøfkÃáÿt›Á6%–ÃÐhifŸ¤[dÿ–ÑïäÎ3mÏÀãmËT%Q´·â6H¶QÄÜ%èã¸U/|B'$}§óH‘ÞðÞGòj+ Íá=ápª?±>I°#¼Gm¤—£h‰Þ¿ô6ÀcÿF?@®—×ÂÊcˆHxjIÿ?Z»GÆ„ÿ¢çH+[Öh,þ©Yô!*®ŒUô¼b\Kï8R¼üø×Ý´¤;-hú)zß9bêý³ô½} lëþé(×¶/<ª&-¨èwTLð ÞVR*Ü`¡ó†t:ô0 D —ãºv ?xÝáXÍÛ0†©(KéDxÂm‘pã>¤X7Ä?¸=¦€ —ß·.† ¼ RLŠøTйù›ã…Gú'@¯DWùËêOÔÄlàûé_#{…ÑÓ{>Œœ¼ËŸ1½ᵟC^¤m8,j,1˜üƒ¥$O?ûEö*&"Ke§#¿‹¼ýáPZƒ ÛÞÈNáPŠ1òE¬®»éæ n£7$ô€]B9øëû8‚ßH˜pÞXû†Ð‡„ÕiçÆ¦÷Ž<é?ÑÖp{cNÐ’ÙÞ3ñYüþ<ž]Nl_ÚCÌCð,„G÷Ä®·¥g>`ü7-½Oú‚2¢ÿõ2½Éa½óÑÂËúÀ‘àÊv”o̧ŸŠï{|0øýû|úbGá„¶OYÝç/X}ŒO¥gNõRj͘çv¸¶2Ý©?;±êqZ %[¯ÆÂG¬—à)õ¯Ë€Ž–D §*`Ì0?–-^ÚTœá?úõ}ló¹×Lïe/Aš¨N,ä@Ýr¼±lò€B®$¶föEBÊýlá Âö÷%:-Æo#~}ã}x@8s¥Äü„/º ’=ï5tD‹58ã¹VB%V!~Ýõi‹%ƒD '–„Ââ°†ðŸq_‚ÊÊ\æëÐnÔ…ÖÒmaA,"¡.ƒ+Sç´´Øè¤)™¢Xi‰Üø¦])–jZÞoý XÆBL\ ñýXB ¯#íå SØJ\;&¢OMtY³2¬aÛÐOYŽ ÄrGŒ+|p%43þ7b +ô’<˪ Nx4!rF4ý+Gv4ý+ëM­\, ,¬©kŸã¸'z8ðq¨Ÿ™SGÀQî! ¿–zp¥Øç ‹•±Ÿ]Áü¸ŸbNˆüþ÷KJïH¨<¬R= hi&^™0ªG,,E_ñ«ßxFZ½o­¦ò €ñ_èÀH  iÝÊQ˜%2ìà Äç°Á†K®rd˜65‡âœ«¥Ë«a^ Ç “•H%¿F(†LCN–y®Tü«|þ£ª&j-=óeôr%ï66;MPð3€ÈÚú¢¡·/±iwÞß¼g8Ä‹‚W(L¢íU"s:Êæ íý²(X&æÑ 1í_¨j(òóiv38+:KQœÞh<º$<W2¨ëõ¾ð­ËD'–]‡Dt¢µ¼J”P8*Ì[ Š3Ú ›Böã>b‡mñ›øí~µx„€{,XÿÂÖº{Ö3ѰË¡±,ø¨e’îôþþ2ÜèŸ#íº>pÒ!§’¡;@ój9Hý ?¢E@[xjóklP=z¢&5K¸æ;uKäâ0Ðz—Uû;åߨ2¡3„.Lˆûz†P„ë#ÑZ$…#+‰„.y=î#„ã8<[ 9Ç‘úšZ6–õãÒˆe|"~Ù-•-âñÅc€…ß:éXØá¥æ}`"JbÞܱJœæNqôéœ/5›È±æ¬Š–®à÷±RýÄs‡Ak æWB‚7í·[䯏‰þÚ†žHÂð“y†ºí(æ¯á©…ÆÀ¿xà2ÓçOAeNÀÐ>Íù™uí4ù¥ëvGá÷/‡À㊈ç¯ýÞtT *ÍõáˆAÒ  XŠç)Kk6ÖqeÑJ‹Ç<ù 7ð*j¤(7šm~ ²gɤÙÂijˆ|VM0Ç m¯eávŽa#:„·³8qÜÛt¿á„)0b•&ÃW´£ã¢°¡=_ýœt¿pb»wZ¨*mt€8î€&@Uù þO§šÁDÇð~¶õ,zzÕÌÀm£ëFñû×üÖû~÷óûW„Å3±xÌŽf=ŠÕþxô…&½§•áoi cK÷/ñ+lºýý+ŠûcÖ``;ž÷¼^‰d³UÏfÆëk} J‡¹#šö錾{ª2ëËð‘'_Ý6øsŒC€´b¡—>@¹ã'^:à ŠÄ“¹g¬O}”GU¯þŽñÅD‰ãé‰hèþ¥Åˆnñ²N‹ÏÃâ÷¥À?—á—x ¿À§‹'5Ÿ¿g—Ñ>E‚t<žVň;1·$Òê°~}“q¾¬^ë‡è'í|°›G0ýÄÃÌ–#¡‚Ž¥h ‹ÐÒk&…ýk/*3ჯv…¸ð@²Õ˜b”ñŒ6ží1¶/}"!äl,ýñ^ô_hõç½áê.}þû_dµx–¾§2NÙO<¸±ùTGò¾ð#Ñ{dž¶úl6|þŠöC·WÓÿùøt"›G:¯Zú2EaˆÑ}<ìiì5G'Qß…‘>}Ò LÔxÑY‹rÅœ5øÅ_ÃUPJG¤k¢µx\Æ}0º Cð“šë•N»âÑ+ŽÀ ñÔ&ž¸$T¤&£8–×öGÞËêchð("¶†bDF]: ;pžï~ŒªG$ ½½nM÷Q+,Úþ>ú†#|àJܦÝÏlµkvÃÜfG M<Ý·÷Ç߯×V;ê(§˜·.ú¹êJnýâÛã ‹Pµ¨°‚gïËÕϰ…Å¡;ûN‡¿… L°ã{›µ{&t5ÖãVFÚ´-ž6O°Lõ7,hÆøõˆ.º6‰ˆH„Ë€ȴ+ÝâóÓpl¸!Œá s©±DÖïw;†6D˜Î×0/$gµ«`ßø}ÿá#æE=¤!h@A ʆ®ìal 5ÖDേ0‡[ ·ý}8’DX=0ð“•}oDŒôË$‡ÆxBdÂý°ÇÚñv“Õ’Yu,Ïjq/Ớ½¡6ñ@Œ¦?½ eâ•â;F³‰O¬Ã/ÑJ$ð€ùŽÀc,"DR O²*¨_§a`îéþ.þ2ƒ}‘È×h ï·¥ç?ÆÜï¸'½©Wæaý—özÄ4pOÑ. þÚã%™§­WRñ‹Vw#Àfx><Øß‡þŒÀW…H,i‡Ô?QÂQ’°FÉ.°?ãåŒ÷Τ‰…x¹ÑK¤‰·ñçÖ÷ý ŸŽŒb³ì7ÆÚc]20 z@5(Ï}X Œ÷Kô)¯{Ï+ ¢ŸV‘‡C^ÇCmÆÆÜX„öI<šåD ,bÖ»€6b ¯Å«G»µ)þÊKKhF!$˜Þ R² [0cÏgŠÅª$‘ ¦®ŠïEÊãîõ:8¨QQªx%øžŸ9JxûJ·¶c©‹ÿ1b®LÛöãu§¸Ÿæ1µˆjèûá%Ê §¼›u'’¢÷5Å¥n(ÎŒ7Ý–c‰üÈb2 ß®‘VßÇÇÍ1DK® ¾¹çu+úZ‰ÄÎH»1Œ¿‚.âÄ•Dlü•bäÜC´ÿüãM;0xÞ„Å ’rÏ4†ß0 0žÉWd)ž%mÊ€édöEÚx—/ÖgJÎï^! X†«Cj#TÐhÆý€òŒƒ6"1~‚9 E8ŠcREŸô1ž)"m U„5 Ã#¥EŸÇQ˜Œxï1ÀÅ«^ÌA¸ç!²;CöŒ¡3Ãu;aä{‰ýø¯~Ü!WÈT„3Ñß)¥ÏMzzÕÜñ>^Ì×>Ë{_ ú bÆ$ˆäk—7ë,i ¦X?}‡†Ü²"0¶Q¾‰¨w‡F‡ƒÑ€§pÇ`¿Ä' — :^í{Pq/k>:5t Zæ=Aª¾xC“H_«?Ûá‘ùÀ¦Ï€‡~ÆUðŒû@ëô÷ßÔõÜ=ƒ7âCØ÷¸g;ÂÊ—}2½P/ ÞÎ}èÀ•¹Œ¹LwLhÍWø§¸:ä cˆ)r¨Ë†Q€ëÅ“#´sÛõhþ×ï¯#(²ñrèÙ¸0k T ¼ÛœŒPãyDÜÜôíÐ ÊãØŽ4üçû è_'.¿jħo™Æ<~´¡›Èså$1þ4Œ˜R¥Š ?È×1j#ЉGŒ}Ä»@áQV;ïF?ËQ Y*‹¿ŒöŠªIîe<“Ø'úF{zÅ8ŽX´ ;¼qù)VxfðN59‡~n¼2^ïU¾Çú`éˆw—ߢ먨ý<£O3zKuÜKÄfn$©¢°oü<Þm4¨ÍZ ÌŒ¨—,v¥&‡±ÙÄ?P-Œvc9èeÉX±|‰Íh˸n¯4<9~qñ‚3UðHúükà3F³ÌXø²vàÕÞ©]­×N•g"ʼýÉ£ÝSæ£)Š;³9²KnñŠò'VKA§ò‹W¨ãÍ숩ïG ù“7µõÔå =|Üô¨çtmë™x•:Xóñ‚sð,PøÃj¬îàÜoîÐo¯xÛñm83Wx‰Ÿ¢íO_ñŽ!Œñõ-3~‰¯gd<Ø?ã` Ä7á W9/s=Lˆ“DŸ¾ûÝd\´=?hs¤¨6¿ÉãËJŠe¸Wû—è ̳('ߣ×[ká=ïTo#Æñ¢9Óˆu" ÐÙ@gø1è—HTO±ØY¼ç¡ãå¯úçkçƒÅÖgÄb)«D¬·¾oýàÒßÅS„Iì U„3¾à•'Þ/ò†¹‘dbP/y÷êIÔÑÁ)iand|Þ½ßåú¢EÀM]%géªi¿yÊÖ€”@X¦ à‰„EíY¢™¶ò±ÁªýÄ€1Þß•ðf´w6  à­wý5HÁÂã×ÇÊ«Àı}JbØâćx< > Œû€nV—'ÿD]aãá•T¤Û¨Xb¥- Ôæå&¢Ä‹‘D Þ†pˆñ"…=a\ð5F|1¥ÆÐrá1dæ½\Ó‹úh""‘|ɧW#­$"ÏÏ•¼øÒwWÍÇ›ÿã öo4"÷ǽ‘?#¹*î|ÒÐD ¯1¾ÞB˜z–‰<êº(‚6 ýÊ1ÅØ3|t³Ë+¯ëÙEM´Á„ZÅÈ㣀@þ¢ ¹²â±}ñùÁ«´0m«¿+añ>˜e‘6¬x·.FÚ’ÈBµè£†ŒHž;cä!'a-u¯(~m)„r"Âá¾ÓÙÆˆ…B°˜ Ñ {@3þ=þôeé¼6uzÅ.¿‹õñ™N·5>š¹ùbâÆ³3ðWÁø‹=ɵ=¡• 2çûè‰V\ÉÖø²â§´´`M!:Þ‰'‚ìÓW¼õÅ•!êüì%”alb:ã[ `d‹OíѾ8ð…¿7ã+óN¤ñÄ'Nï,:âÁß=3>œCƒ>[¹Do 8ì™(èD2¾=¸ã…ŒŠ(ãŽ5üŸ—çÏÚ¦Lð³Ðôë;"ýYRFäã§àU|ûQæ ©q›Úg -¼þUŠ'*_| 4hQ4`Û¼ÁòŒÏ¥º©²0=`Ex1¼€®u?-™1–yïĉþ s>aù4ö””ëˆù|WÅ.~‹1üb>㫳H¯Ó§¿£% 9Ø·_ü;[“…–¹ð~1X/ÔÅ»ÖOôÞAßX~í£þ„çg»EKœ":Î4ìÙ±áÆo„ÍÈÁÝ¥Ž{À°ÈþT’ÀQØ^޻ɄxòÙ m`”K$`/ñ0êRæø²(<5ºà@ä/b³%’W¼&Ž¥ñÛ6µööÓ®OÄÇo[b’5±9gÛZ`ÜRñb&ˆïµ\ôGÕMàÔßÏ{Þ `dÀ$`Ý„Q0|1$5“òFh…‚@ )Ïì÷† 7кL7.Ü4n@1>¿ñi‚-^Ž¥€#_ŽØ"H±š}è¾zÏYh~ÂÂX‹j~ˆpÅC¯nÈî^0Št` Y™fE/1ÖÐaŒv$1á‰ðέ0žÃ¿†¬E™BŠ„LaÇìŽRÄ[é ⮄O!ñT€*ä#¼%AjAh?®¼ˆê5äqåÓ¶°D‘:ûˆñýe7…úµ]P3ÚŽo~f&J#vôøÎmrE ózÁûë+Ä(¾Ä|ùxÙ´ëµ%HãŽéï&Ohp 'Dg&1Xc‹‹ßg›^R>™… …Oø€P qÁ(hÖSʰú#êÆao _/¼²ÞŒBHègÊÜŒ=üÆÕHSËÑ~â%Š‚Yèäê#ÊñÁêã·˜( ÍV :°=“?O<¿týÎõÄ”‹QŽmKŸqÑ›)¬ ƒ6£m¾½“GúÞ¤ÀÈ‚ƒô̺ˆ‹¿îä I^ö4ÿV#|O.ÌÅåXõ}îø¸µ«s<-d£³¥‘]¼RÓ¡°yÈtÐñ_‘â¾A;—ÏЇnÆm¿é„ñy3¨¸8Ò"P»ëï|‰ ÃBÀ+‹{Ÿfô7è°>Fɧܯ.Ž¿¶7 ak´9ôUBy.ÈgH's&¼²œÛm®C¿Æ÷—AÜeø(ä*F0šL@.îrÀ ¨Å7gˆç•Ĉ¨ßønsI~ÓöKOaÍj€Y…G¢ùâãëךB ·h¥•½ÙàZ"+ ž™Ÿ÷vþ²BÀ¿$ÃðsÈŒôg›¢DpoD[1*ÀÊûqe;ª…ÝâëÏÍ¿!V¢ê'Vñ,ìyôÜ©å ICDìÄ÷ãqç†øøõqw®‹#×°kýˆÈ¨,k‚°½lz›9·ÀœÇGìƒ_„M“zäÇ’EÈÝW ˆ¨ DóþᣖàÜ»©êôc‹ñ¯õ–/!¢ýßX¿ÞŒÐ"bWE:üøûÅsWÄ—#\ùßqe½CTû™.Üm`gí—HoñÝXµâÃÞ§ÈÂÓ‡þDC<œF”â“û_Pßx[Âc?9 \¯øv=°ÕYw\SÔŸڨ1~ÖŒg‹ö61Ÿ,ÐDtAAüµ=Ĉhq­ë>iUþûðC´>Z¢mÑ.­DÚ ÒÄg÷õÓ„É,j×#:ã¯-Ìâ¥h¶÷*ô%®°lâ=p£½ñÙ{Ä®M"ÚBÌhï–#ÑK¿'êl7Õ‡ý¨³m’ÇDÝA[Ôëk ÜóZRćë'=úõë2¦±[AØ%åŽ%E³%v`Í„{»a©8ôÏE" ­ t–#ÑõH•hfXHœ±Âæ—“ùG,ÆÌ"´â‰ïb=pð PÐÅái$àÓ}¯ÄˆpǶ -†tvÝCÝãS ‚U €Ç¯~ Öý:¨NÉ #ƒ2_gë„Ï ÆïÃhîÈû1Ô&‰‡ï×#¸øEl,T RRÐd%Po2wìY€'àmåõ¿Øš¤%LÙŽ¨=þ56¾rì)p_ÿÊfÑ2»ÑÜæ_Ã+-ªÁh^œ1Ó‡>ú=vJ [2ÜÙz´[XS쎔f¯‰fê"Ð@-ü7[rŒ(EKsª%£°éÞ×¾ò$Àßúw„,áO`®žb"bdÑ~3†0S°]‰‚ØÙå¾s„¡^yˆîF,?“æ·¯T€eAû#‘E=£ÆOŽíÀKX:ôØ~³…ø}°„¸32b×ùë}!†òC᎖v`3²Ùø ~¿CyÂûîà¾d{é('JAt?°#Üý@%/ñ‹ýTîhqeA*1=M>Z—FêW{N°ÏR+&“Þ÷û–ÆŒylyrÓ¢±ÇÄü¦÷ºCìmm`Oü5î3öXíÆž83ÆóeêÅêàI¼êß‚.)’ÑaÏŽ÷@£P-lD9ÐùðT‰XÙ-ìg%†Ý¦¦Ñfü5~¿"ýªh¡?±‹Í/Z»ßêP7–/I;,ݹ‡Œx9׎á{‹©·³óM¦xÂÅ×ÀÏPøöå U]쥴…ŒŒ-þºE¾X£0æ_÷û&ÖÜJg‹vuy’”ù埊Äk8#\ƒ¿Øh颹=ÅehpŒ>ªÏ[=Š¿‚…Ð4­^b9Zz¿D!\ËË¡}éå^=·ˆß·7qã{E‹g—Oïo:oùõÂ¥xÀØJ&½éä*hþºhÍ«@×m‰A7q Î|9Ø<#¾L»Ÿ#óÍ€j7AÛ­ùbÉ-\Ôã Áô¼þžJ/Š'w“Lì¯_”„—A@1@Ê&SoBò¥ÿh¯%pZÈ ÉìŠØ¬è¥X¢•-hâ÷}ØE€ÈáúÑé_IÕæO8ÅïûL ¸åÓ'Éb÷ªè 1äž­üìØä,,†Zì¨^[ê;¾À'1ƒíñ:(í?³|½èÅ ®ÃÇ.ªg¡2l¹'d,¶Šß_IãCÉ æ—açrô/äÊÒ¾hi$f(µDÐë_c¶ÙÀÛ•²¿‹¿ŽlùÖß¿‹¿F_=žý0gŸ±™U£ŸË=£†‘žé“w–h…À÷X`ÊñPäP…øÄnv1È ²ƒ¨!Vl;V„ i¡Íh;ö›Ú¿ŒXÈEô JO´8xïJ§?l?¼` i•VÀKó÷!_àæåÊk ìXÖÌØÆp¹ì‰½CBŒ6óF|ñ&ö⎑ˆÈë•Ï6⯫âdOÝHsb4°f±SØk ñû"èbËQGï &§åel@[ÍÝ…I/åMÜ5¸(•EÂc/ÁnÁ^^ aø×P+1®Ââô¯ÑbôJ §ƒ±ÃZ°>ðÏ’(¥ëÓQ›çþ 4BB;âņÁ¶oá(º¿S»ƒø¢‚Œ Ïë•Û‡Õñ÷Ø-º jK<È#!ຩºqw2~†}IL*n„`Çc¯Ádl¬è€1,°Mª –W„-$k'L­`¿AžúØî±.peûù˜Ã>n¾AõoÐ.|_D¾ G oÿʾ{á}E6¼ÓgóF’f‚ðñ÷!Œ€1j ~ûÅ…¥dwl ¿epö£S˜c[¼Ѐõ´Pn´ýEŒòƒM7ÞûB&¿$g×SÚ¿ÿBÌ€4Öôb‚;í…üA?J¼ómۘͽl#Ã÷gM‚lý…È<)˜,7 Ù›Ö¾: «Ï&íÇ_¿G KkP£ó×ïéI7´[Œå{Ò×QÑ4ÿ¨'”ÛTßñ› ëÒ× ßGÂDZW^¼Ù$–ákâã/ökéx&¶œûì‹uúðh mØÊïî ˆàaa¼Ëµ|!ôÍ·•Ù@!BÆØK±Jò¬yiè *˜?_ˆõ…‹!`8š@žÉ_£5HDáÆ…‘_{pt *ƒ>¾w'dtzS«Ây=¬Òúª|ùÚ‹%МɰpÄr(>’Á6cüìçT?p…ËbKÁpz‹½é=ˆj^‰_¤ð,M m$,yæ¡`ƒ4ö}‹munö”«Ý4Ä Ž´‡Û@ã´±þ$*qu 1p M•oÿÚG¢’~B§¢¯HÇ!ÑhW‚{abÿ\Z0Ä6oû‹×Qñ³™éœÈ¥ÿgsÛxŽ[_#5QOþ «'GtÈ~Š÷øÍ˜z‰q1ãvåî‰Ïa½¨‰]Ã#,Á‡¸e,•1?‰2!4`º(VQñ,[Ù8td6ù%ùsür¼ h1„xüul ±?wù¹…]”MÈü€eð:|<ŒßYp…‘ðë.B¼n/óN6zjB2þäT8òI'Æî°Ý5›ñ‹p„ãÛ„ÂÖ;ê‡J±ƒŽ¡®aZÝ ¡“ùÙê£=Së–ðq ZE¯ë1”(lFÈùr6úyµ")¯vÒ‘ Dzm%ô-îCõŒÊt ;-GLl-IGìÿ”­²áñ¯, ƒéŠdˆHD*ö1 /½‡+‘%ØÔ1g09—¯Mí 5»c±Oh$H3ãq)ÕhèÑdCÙØ…s=§ˆ)2ϳز•MšlüÞY*+ŽÝH„U_J&(ÿ\¿#kú/þþ%ì ¢Ùš5"î®®ŸDxîø;¹9 J¶Y $‡·b˜_"šmzâëŸÉnè‹ »Òöñ±·†1aTÀl%·YHâßâ/Ê0°`öíÒ- ÙE#@áË•ÚN  G &~” h¾Aé/v`Žç¸wDÕ»·? ‘ ¬P˜‚÷Ø©1bý»céo‡òÊ_1"¹öÓä)Ø‘öN+Y$„6ì1BÜ-Ø ÷ÖΤqË1°ÿrp,{—Úy¿lñ@¾gÞòûÇ—H°Ñ/[ I#h­½- æv´ZôY_…obǹۭ>SM-ý™ü?ü幩¯ÐÎxXKh‚Geÿèò•œFçìºKIðæ n~ø³„· >…‰Ù‹Ò™&=,&ÊÆÛqÿ~Ð,…0b±†VÐ0²AAp&h¿ ±†÷¨}"üøØðM⨚ˆúµ…§‰Lpdeß¿ž^Ù2ܪxÂ?âüûAÒR=©yDå¦Ñ®Rýrë%žX‘ÛCçmØÁŸûƒèÊ`£Æ\Œ¹·6¾øŒÍ·Ü»ø‰ à÷÷ œëÊ8¯&ög±ã{9`6’|¨7b¢ °‚»ëŒŸAO²ƒr îÀïâd¬êðøéÒ¸\nÖü8°ß…B)•_¼Aƒ¿ôä+·hùhŠÜooªº2Ó4”‚è´ap?¾Yøv«XS¶1YL^Ç·O‡Ãð9VêÃnoâ‹5:$nc`Š­ñÎYF¨Õ]/4ºbApZ"éÛº³•n1ÂÞRÜxY ¯º€½(’½K30E ªIÈž‡VÒˆH.³‚Ô§Ö}>nÏ/C­u{Ë•ÍR²T«ô7î${{ãpF$ÆS®—kJú,7ô¯~H™¥ÐA~k¿¤ ï½KÌz»d†³7€ÆèI,ŠÐ”œU?æ?C|¨ŽSã`.¥÷T;iµJé+ê g‰³{ÉÃS¼ü€s©+5êÁ}68JR×C(š;“Ã(t1Ħ²rË{wigŒÁ­ÑCSÝn¡¹Ñ“å÷vöø6—[Ò@YËÂ÷îö¨¤XÄq¦ð't¡$DÇ"À™ìÓƒG#ðÀ|cröV<š§~ ýžiÙ åùÏÅ¢ ïRƒ«÷PÎ Îá;âN ¦¬»ó÷=‹r zžŸ{’JªmüØ©!€ÐæO£p¨…äX¹N@×Êù;2vPÅn¢ööž2’#Ýü™X·²‡f|_t§ü±~æN¾ê‚ºØË Âý³%éS£Oàõᙸ£a\("÷ÂÊ]6¯ãÀ×VݲŸÝó[Žj€3z¤àþ ¯÷óý ì ølmm@h`*”Xî’¬PpƒSׯXÆÚ•3ÃDö~¤ž•Í, rx¸.SmÞ€|hPw¯sñÓ#·é8¼þ–S1÷;`o†Yîôjšd‘ Å~F™<ìdTªJ½sbq|ªò-õ‹£Ør%Ëöß2*£hrܘÀNœŒéühšù¼~âÑ÷l“…0ÊS'vEFÕϳêà;nåç–¾$™%Ô z£Zõ­ =>áèƒûKŸ?)Ë Ð“ ä—c¦{E<(5QµÞ¬‡Ø]ûàoVF¬øÞž,ÀžÆ#K¤á&afÔH6ì-–†9üšYlÍ™c¡Ê.DPÿç‘ò` cÞtéSNö”ˆç-JäѰ“Ñ9C![U¨”„µÍ‘Çix]<ϼ•£,ŒNîvÞKSŒYž¾­Š®U GÔÝi ÷= â—*`†§(1~<•çõìzEø%µ|‚ªœ[Evsx‘Œ›£ú¦=…F0öºd&Ä«¢F¿Õ!%‘T°s—›æ[^‡”ßþCù @2ôa r•ÞšˆÉPË€Ì #{/ãÕÇGûZ C„’:ì%@Vs3ùq[b*4géEÊòwT„K@Ó9—gç ]D˜A+¾J¬Å6Åï„ö½Óu½` µ‰ròÚþ]*%µž¢Î÷¯ NÆÿŠb}•Š2jÌ!×£–0di•ªxv’kÑœT7uO’ŠÕ4–‚ÉZ7~‡Ö£4„ á"0}»±^nCØŸU{oîG˜2@ÒÝLXîwÇO†âÚ»Æ/WW-¦ñ’E÷(¿×šðSt2îFh?¾éØ·<í³8÷lŽåÌ%‹¿Üí{U| p"J¤™H|‡Î…”^þf…c“)£H Rö¡«EžQ#~èï–DhWp>Žv:tÎé ˆÄ4?Ün ïRÚ_Nn‚nÐõI‡¾é!íBD—útåš±5,oÿ½§»ÛL Ç~ Gøoçëh!â:¼>ž¿¢7qbUãø¯;‹í{=WÕFq’ú ôÁz>% bÎÔÇNÖ=¥Ù³«6ùܱ«&_dâx ϼ BÅŽ¹0ÊÃLjÀ•Ïy¾Ti*"‚ï<pY5]G7£ØåaäuГÈ(_ãe}cgfª2wšÎ ¢ÜY”²óá¤Y·jÍ,qçül¼0é\ê:y4ùznÛÉN S ¸ôå …žÚ{\ã`Ÿ,'-‡/¨Íc›TQžU ÁÓˆQÜæä#ቧŠ?‡¦`Ij‹Nl•eÀÛ‹9‰\„Û "î—åCæ_5u‚vijTL*.¤^®¼Ä*§39µgÍŒÏ æP¡AÙ!£ò¨‚hDè(áaZ»ÓÿйóGur—W_¨brˆ¡¡ß_vhü3âë›[wzUŲ̀¯•7pl‚,2WÓî #½¾íhÛÈö[b…ã‹G:eEEðãË \¨èg•Á2êÌG2$Æ›g)ÌO¸º=kmìç=ŽuädÔé¬ðšGî2×™<ñ‘CƒàƒÐeŽõúSXœÇµˆÆ—Qo•à0}죒•Cu˜?+ŸxÄVJ *†k¢úeÔ‹A/=:J«ªïšÒ-ŽîY‹ä™ej\ ’ ä\lÖ ±¥°•ø¬R+ž2mÖ;aPÊÀü]ϵíõQX Veˆ"'¿Ý³ÖNѺFûH¹+ ­#ôÈó:E °LŒ¨7ºû*&yd`ë:Ë~˜ŒÜ餯­'çÑ×DU $pãGê‹í?‡?HJ5d’×WAÀSÍ|îõ^Юª>Aâ•Rb-Ÿ½@†mQÌá©ig`’œp´®šΆ…ÚUI:4±¾+Û}¬QZ}â9«0¼%TÓö{Ѹ½w9Hmô¤ÞÔœ7ûnïQ'R·r·çŠs× D"§ør\x’}Ïš´:Š˜œáðpÖæØväÂeFìK$Çi&úVÅíÓ^cœí.ñF¡œ…½Íã~WF4+¬ºÅXÚÎQ©sN”(¬z9úˆUMªœ'Ïu_wuâªì ƒ½ˆUæ1¬âda†G=ö>Å̃ƒq‰F5d¨ÿH,ão‡ïÌC»Ÿb*‡·3;Eí<ÍWèí@z™üì`•F»îpQ’nk¦µ¦ªc‘lGIQ-gÒ€»¤¦×0S5€ -îçdxã¶zõ~µ´•m½òŸ§V¥V"5й?*åŠE. Ós¾{Š–3ë7\%° Ko­÷úWš€{©‹´ç 4¸æ‰½©j0ÍÀB…²Z³¥\¦1Bá’Aê)«¬weÍrk#˜_í#/âbzŒúªPÝ®dØÁWìõdó»äk§«4xåGJÖ_W•iª}ƒkäeËá}Dc2BÑ‹–Bzp< Ìï¾zD DÀZVÑÁ›h¶+?¶/³Ÿ2ˆ‚»Qpj5R3)¦‘A³BºkJÝ¡¾{œ\{/egøFÑ䙫Ì\hˆÅoJ]4M¿Žè9ÃhtÈ€ŸËQ6RЈÊÃÓŠ¤k_õºÊª£u8cb‰Tµ |‘§pËkáè¹Î½âÄ¢ÿ<ªïìD­EË€Ô:ªëì WËp °è©jס:Z„mbZЀYøÜ£¬lZ~Í#¦øå)+”U¯?‡ÅøWÉ7Ž2wR6ûx ß­ÒïSä¤^Ýi_gPÈ‹ÓõŽV!–à_# ¥k£ä›Y† D¢ìË£¡k9XÙO®›˜`õ,æ=iÁW|pYjTXŸ´ òˆÁ„HqB <bÝ¡™¿œ{bÛ˜UÑ==1º2n8§Óœ ’wú5v}v”4÷ºVë /›(?|¿8R[=21ú@4ƒTµ2Ì«´F$2¢ÄbS¢ _ %óFŠc£ðtÜî´É¸+5´º«ëaÞµ×;‡'eˆ ‹cWÌÀàTÆb×q€WURJÕØipfòͨ§býO·ÞózOƒ;ϵ +0÷ AJéCãGjÌ›Qo™½:N ¹÷/Iü×ÌrÂTƒõÏLJÆ™%2E5¯?©WùzCù»N6{½C“­ h_e°Ž“À?Õ_>ìÄkáߨ.éY2lñbÅ©6æÍ´Q…sn¡¦†?ñl?Ö6¹£[æ@:{¨ÿ¡3±ƒ‘ÉL×ËËÄ£ã#:‹ƒžE%(ïD>6Áß,!ðÝ jîŒÈ$×j-†Kø1múrT#Q„?{»¬Þ =Yûí _÷JZ}Üÿ¤ë”ݬððP ±ìô„î;kQ?®ã„ï(bÚ÷e6ÀµsѳžQ{ó†8ÁC'›WZœ4˜é-$”€uÄá3x3hªL+›Æ*½áØÀTI²¿T*Ó: k0ÌÌá €eã’H‹îHËZÙÊ1¯`šöÅ Ë=¯¿•@šÞ3•x}–Às+?WyV‘v â*V·Ì»ÞÇ„Z˜Uí¬ùîFp¾JÀ¾ihBëØ¡Ï’Š|YRšÁuKg (|KÛq8èiR‹ëÊ øûʾG›O‚rŽÿO¥ªÆî•)#ø×2¹±ógƒ®÷™¹h–¼Ç໺F|ä!m¡%?’ÀZµKR: WœgûOé΋Oß—?J}Ñ-¤N‹··èÛÔ딌È|xe<…‚nÉ*i9¬‚ÏçÿÐ'×I3À*·(ÿšuìä­ Èø¡´ Â äƒ> ðò*H?`ãRz¯*ô øÛãHß¾N¡€`Õ{sU³gÊd/bŠù–ߺkpiåð­ì“&ŸfÓ-‰8Ð#ªÅ=ÿrA”×$8ã(³BNœtÇ_a±éyN¿S*Ÿ*Ž@ð÷G_•L7D¾ ð¹æ¤Ð°92O@€%Ÿ2:S?°+œyÂ:ÁÝ*âÀ>‹-cdjWÐêÍ8¯ A#âÌÞ¾²ˆ(©O±}Ð3’~d¶ð1ä^sÜ»Ì÷oÎ=)‚zÁec­ç %¥Cdùâ Ý"ËïŸ@ö뤹Ìxñ3 ˆvŒSÏ|ÖOqüiº9ßäΠsIA)‰húJ3REéìI¹7-»®ú›üCB]Xâj OeŃ’ˆóîìDq¤î^µÑákF/jãcØáÜcã=Dq§?[~îÁã´“€ò~”-w§fiœ³¤ Ñòð0À«¼’“³Þ)°îòâQ2ŸR¤¾²©C5•J›>.ýœ÷,Bé[úè-’Þ~ˆµ’2½Êô§¹³àUð¿ï؆JqþàH ntùhªÒ$2p‡úQA2¤À¶ê»“j2L­¤.Påîÿ‰J¯5.ôdÂ¥é,᪌£öÒõ襜­—rÁŒ¹ð©€%0¦1´¶Ïº‹ P8Óšç$w¶$ò§ˆÎ^CI(Šp!ëΜ>!õU™àý!#Y¬Z£Ä_'SîöáÖ‘>4¾ÒKüÔ”€”„mO?åšb€¸â'JÊ´’÷‰3ÍYﯞٟHAƒ[òÒSß°:Žy&%ŒkÂôîGn¨…¹Ù¹9àÌOåQùc'z‡o×Á‹{'Ü(çebôÝ9ƒûÍ®?x½u#ÞzÓ²•=MH"Z]DôáBƒÐáµ}¨äÚ|ÖT£š)º[èìʶqfIj:…±KU)”OZ+È>á9«"±!¼%‹¶¹>bõEñ Š_ÔÍ8Ùµ§( É·%•”}Ი:.&˨¦tǪüAÃÓ Õ]Ö>¨!¹5<0q»”jõ–ìÓˆŠ•jz‘]äGC³ÿ]Bˆéßá²K)3 ¸U# Žöá×ö%B'…/@Ÿ º õ+I'v¾Öõž ¯$ qKJ¶øOû8ÂuÐ. 1®«PÈÀ,#Õ*pš+H-e.yRa’e“§îg¤Î:$Ãa«`hæNןXd£#Nä–£Âô}X¦ëŸ°ê9F(C–žwåsë–—®*%ûîlZ#Õzï‡a³L›ÎŽœ_s»k¯¾±ÿ'|ÿ\57ÿŒ™˜›øÙCb”òG¨Z6ôLœaf›™F¿$eå©~ÿUóIÐÌyêˆ'ÝSåS€ö~ÕÌ *`,õ¤Æ¬„¢­IxÁÃRe¯C°@NðØ«b´¸óÚ@Æ­L’¦Ðpׯ’±‰ˆ™™wÌ#AžnX<%_µ"c—v…#>œgñ(œ?.½ykò8q0Räâ`½mJÈGΤ-²Ð4Ÿ¬Ê—-ÇU*Œ“ãl®$škäIÿ¸õ-+Ëïæ>éoNAµ!ðiµ©n}dbbÒóµ4@üã /;I"S¯dEhÀ B8æI p —G»}Þí ¿Ô8ç{%eÏí*Up5ídMt€$ˆÊ/li½ýÂíò)ô«ÊR$aÊÀÕ gdj`Óÿ2WqT)²*’YTðž‘Ë+Ìq™mÕHráËA´R‹VžR×|™*Õä-ûp1’ó¨þëwéÊò32²>IûÇNPZdå¢ä„Qî¼U‡ëpÉ¢ý>‹ý¦£N6 Gâ„ÍUo,Œ“¹ã—‹ÿœ¾.@#ßáËXe‰¥DìVê€ÖuLtÔcûd;ëÍÔ…¸N_HL*„Æ÷0xÜõ+@™©PžÑ«_Ö ò¼¦]ÞÖ%³°6òÛ|%"þ èE±È!ÏbŠÁà²w2~õ#¹8uIÜ0‹<#Å… FP­RúŸ%Þ<ÿÈÁs.å’Âø’ÛˆÌ8Vaÿ@9Ù‰Sеɮ¿b;VS1)1 Ða+V~!Ÿl¨ÜÕ$¥œ$oí» ãdi€„ú~, ‹qþŠý¸Ö²'…Š^±ɲi9ú–Uü¨y£jÐrvƒÚ®§p9|„—j9«iæAÓ*Òö‡$â ª2ù"D$1¢t ô)a¦ÆÛµà_µ•½òÒ¢örž”®ï%t%ø[žt 0%[ –ëV¬>'–˜.4EÚUʈF.z2¹¡ÆŽ_šŒjCËbcEÔÀï:¬±ì•ÇÄ­¨…Œv| Á]—öHIðK‰ï \ÂÝ#àêI|%€¡äfÑ)oÝ‚¦ð+¦nד¶XÈ{ãÐÎÈØOŽêˆ 7Ò25‡9N= ,/¨ÇøUF–~A€±ð–¬Ö½¯IØ”‰73¿#¡¬hWŠ×ªôªÁòûª B‰5Ŭ}ÿæt,i1ňݞÝÅaß'óâ½É«Ç8‰˜)œZj8»L®ÖÏâ$§”%‰×U·¬‚zjI®4|)‰d¡ÝÊHÏdÎÊ("M‚A䂽2ÀX?d¨AP ôÅ—·â_K^W:¤ù¬¡-‡czõz‰MsŽb Ò4êEƒE†‹švW=ƒ/ñ5¦Ýçùd@þE¦b%{6½`5„J…UÁʪk]Ó‘f*À›£Z,n‚×ú² _µ…'Õ2Cƒ×Ê®æÊeí;…+@ª2 ß¼u!ørÝöÉ‹c†¾0¤;IJ¨[¤W L¯KKA…óöïœûM^ZëZ©„Y_ºf½¤3ÛïÙ!M/TIU å+ñv7÷̹œýå \šÔS®&£ø*Žg*Ô(è¢ff6C äbÎþ_"€/ëYÞþáÚÞ9 e•Çuż’OÀãtªT­žâ]Õ‰Cƒ²@tÍ%¹6²é8·®X§6O°þ.å,êNɉ3Hžxúé@8K"L£Ÿ)‰ôJ6Ä`œ`]!ƒÚ<\Õëd; …ë–T¶¤¡˜ÞV†ãj\•A7·C»ÏY3 j °2ÿæ˜lnóËq¸¾rɽž¤â•Ôð†¢ n2ñaT½BGþ­¢Ü>4„0¨.iÆi²4FFp-‚*¡EÍ.…ñRaõß*qÔ5}a\nIšž[eÔ:i:ê¹RÂê$i6ëR?„³tÓ¤‚Óª<ìçóÃõw‰gåõ»þV$HƒY\ £$7vÖ'’Ÿi#$Lüƒ4¿þ¨3¼>ŠP\¢Œ‘::^ 8ã§©Û®?B½u+µ€ÔÊþ{EñgAž¬™©•.€ê3”@'KÈ^M£TÝÔw•‹üHî7íÛe·B©™¯¶ä‹d/{B¢åc6í{jRWÙÅ|[Ú?„Æ šFÄF3W÷T;äÒÎ\ôd¬9bJÖP+¹¢gI¬Š3ÈŸÍe+{} K8Ls±÷Yˆ€*:±.u‰GA W+6/Ù@‡\Zw©`çXãÄS“‡W i=´šwÅRÖõ¤þ)r`:Ò+ëÑJYƒ šUÅ’\{뤨çëû²™á^v^ñµß;ï_ÅEšFuðŸÕ´%Qˆ×Fæß ‚ÇQÌzv½á?ã³Z–„éÚB¯´£Eá8R/]?òþ§†*Óˆ„” ýü¦¿ƒj+Œ„ù[—¾ƒJë¾”zÝÕ‰‚ *‘PH¬ŠcÙRPœ¨$Ì[6½ïƒj«ee"´2ÎëËN ý` è4¯‰$Mf6½)Sy·’WëËK%X ÌïìZ­ra7óæÎ€m@ZÍšáBrPØm!OBÒ«£t ƒ9„1ËZôͦ‰ª'ÿIiÈgäˆ*KîäSÕÄÇ­hÓ‡ÍÃ3Ôƒši(­’= ÚNBd^_™è‰ààKIÔËcðäÁ†Qð sÞ,:Òbœ6“8Ÿ–b"*Aö‰—JßÅ©¤éˆÌB¬Ký`tÄù~þH°§: ñž·n _Á.΄x]Ú­°‹3!öäø¶±Eâä™^yktX`f;51þŒÛ³È D&YYæˆ^ãà–ªÙç‘H‰OhŸPܦˆë¤+t'÷ç`3ÉôfM¢“¿ª<¸ ƒ^—Ö[%BK'EíºÃ¨¿¤»Þj¤æ¯£ð¸U¤R1x1å!M§„"§°¯c¤Œ±\¶â]†7¾7çú6zËQUî0 ª3©Ww ¯ë‡qN,BC> ƒÎo©xU%§Nt¢òÕø+¹%­î²¿ï"ØÎÐÝ•ø¨ Ö)!} é2Ò.ZÄ×œí·Æ7îCp¡…˜© ÇÒGmu£ ƒè&æœSþõJçJøÞ%žÎØ€2ÉÍ¢'3;k”K\‡Ûpw0ŠvX®rwÔ%ƒ2Rè«ÞÅ7†Êº¼÷¹uÌÃòÔÅŠ­ö™¨y„+íç›ôà\Y_N È‚¬·v­†,rîÜöŒñ Ä[È‘Í+ìG%M°÷LI84ÅŽûŸòš²'bF«X„ pßJiÕõ|Ž¢ƒä)`v‰Óô{T‹â•9-ïë¤Z$ŠVç8b1¯R% «H¤ÝDêõY¶pë„öã¤ç”˜§nE[›åý«ä¡¥WOÍÒ š6EÈNÄ‚­VXvÚ"ÅaõÄY?Øc©^†ïÀÆâ;)г×χDœÙëíÖs2«™;oý”0.å\ØÊ­_±kdÀ)‚ÁôဠÀœ9–Ø1§4B |ä³û€ù¹N ·Ç!]¦"{N¸mlåy¨i¢¿g«qLbñ@ÓDÿÊKe´<à]€m‡áçÈm¢b¬w}HˆéõÎ=_p½±?P‹Ã£xý>Ý]'+F\qÈgª‡BÆr”-Ÿ³ÍÃ'2IŒ–—8XG[;bñ±r÷ q½Wb¬;ÃÇÿ%EÌ¿IŒžMsžmR$aÞ“N¸æk3€7—®nKVRá˦ÿ® §h;bNø[Ëœ‡—]HÖ‘¶ßØTùåŸLÅÔj©QŸYÚë´d)á3\yF™ôâu—ï© _‹{#¶¾Ë¡‘VYÒxW|>KBÛ<€fªˆ¤&‰ÍûgqÿÇÁ…o 4c“æNP“Е—sv¬ý)­³báxÚS\žy½°¤Ám•ä@¿2Ô7Þ²¥J®ï…Ž ¿«iëéõ—‘CÄ Óû]¬vn” òT×ýh‰e?u¬e%ü‚Ú¹<ŠWV È®S¼q`ÚŸ"$rž€…+€&_œLY¬ñ~„…! ½AP+V‰—ÚW‚àŒN®pü•µ9™’|ËtörBeù“÷ï’šÆHU#íÅUPAöTáE\G ZëÅ"\F·qøhé®8æxä¢ÕæmýæÊÕ’*^Å~Öã¶éòª‰ŸâŽŒ¿tÏË{N!™¬ v&!rF©}»¢é¬œ¡*¾åÚ½›ñ¿Y¸ŠïÛÒ­ÄõãM|{6r±ü4=žäÇveÍ[‹Ðü¤QÉúÞ¥ò$Ô¨[Ç<Ô2>&§QñÑ'¦¯’ LûPïùÃ/ZKhF/Ÿ[DK8Œ¤k–Š¥^â¿ÒAB9ù0§q4§Œlì$Bõ{B†qaüª<à")óÕõf6³ÂÛÖe ¿åDÊ"9ŽÆ0ÚyÀw'®ZùÑP™ô¿ÊA6àCÈaÿÚtz¡µ3,„…è[Z\4wBQ׺>;˜5"†° ¼÷ê©j:Ûï‘(ˆAþŽjÂc×£â˰yëC‰Dâ[½2ç“ÂõK’¼œè'±(\€J¤ß5jäRÌgêyœ?’$Þ8B#眾Ñbê§Uˆf'WQO_`EÀËØ‚ä^]öÌ2Ìoúöh;cßOE¡ñf\†¥Õ%bc œýéÖ— µU²à)³Pùàý° ŸVY!ƒ®ð$$ßc6O¤§»¯-m{±!/íð+VrÿgêgÏËGÜhéOÉ^Ö†øz¿÷ ãQuÂðTùrF€‰Ä:aH/í6ö¡Oˆ¼ QðƇ>Š>þÐa/';j„ ¼@ ï 8€–!šîw–/t’S3Å¡…{¢{Õ½ 0¹§¦TÇ­ù¡™+/ãvUîÍÉSí}¦lôg:êå(Hé‡H8ïdñ9ë­mG]Ç5?øCS»w±êcô÷¾sä£ðò1ºçà[Ï¿Yî£É’ÀÝ|çý]»ß8ž1ñ­¸ñÔ5§”yñ]FøÞ"Ñ€€P^~^zãä B•%Ô!ØšZ™QuæH þ/‡Q Âü’Ò>B·Å¶LX˜»ØÀLXâÈ—>dV£Œ€§›Ä¡¤˜g!0†©µêGlçï1&‰Ñù‰ž—Óý2VÀ%îÄ·ã—MFdÂÌñí Þƒ¾œÆ)ª¶™Úß>¿ñê ð—cQ¸5²Á1ÑF³í3L§'¬÷Ö¤—ãC›&~¹1\üÆéˆ!“HO”oyEßoœZ*=¨7+Iþ«Øq°NÖ”®‰ ÏC~ãDͪå¢,Ú¯1o Ÿ2¿¬&\Þ8®•¦†º€,ÑáF¼ŸÆÙþ`?èûÝ?W“¡O]Bmàª_@*ýð£óhü9„®½ý<¶:oo`£Ô)?­3¡”jd°H³Pu¼¥„SÒV¬Rqp¾F=¿ŒÕ,å~4&åw¦‰¿»üÔF!ÑÕ|µ0!fÀ¨BÎ-ÀÓ\~¹ÿæ²  AÐVB.Oí1ÎÛúíPbP(1í÷×`>¿œè¹Á½ˈªV·‚7vñþ)9¤Xí¦üxñ+; ›ÂØh€—”[¼÷ºW‡}&ñ ÙìFøÈõò«ÂÑg9ïù_`¾]øfÈm×Ï=ýFâ©´>°†vø„õz.wAõs|BÂß–ò_.ü)ʱQ<_\g´)ËšÈË‚·>hLÅËÏm[´éÕ7øƒ¦¼±RPkeûèC ÷Ò§\2ZyðÚ,¡Èæ! Ó˜D\Ã*Z¼emU3¨‡™å¨EïËYX½Û—4í8«g+/»jî㬘A#y?2wNîo™ÆáàÝ(;´§Ð0ÎÐ[†õ+7bàAÓ?½*8Qá©û›ªàõC`¼¶Žêð Y"jõƒ¨æ]£‚ÃXç>ˆ2Ö {Ð9`¥WN~%ÿ„ÁC§VX:TY¹k¬k”}-²K·€ý:þy´ú}˃t]­¶bb5ŠX¼y½WÜÐ^p‚¦$ƒ+Ü£Éø×Ÿ¤þ.=û,XÕ‡vHM,PAÆ×Å0ÂרÇY 8¹±.ál?þŒâÔ—D-ëVïüŸ=e¢+ŸïZ•<õ9ήJsÍ%6‚Cq­+,ÐËg%O>ŽŽÏË(|ó=°!ëL ³Æ÷Çõ8’tR^ý é¹ÎïR÷Â8Îe9ÖN(©3Bæ_Ì2ˆ`â(DŠàõêWáÁ° È¡  .ñ)r!wFã {Ò}è/Е^M³J¦¼¼×ÑZÂ÷U#w¹ç-[Pä¶4óD+©âÒƒI$»T¯Çõ¤òlí0-Ž‚j‘³Ú(œÒb?¤È<@Hó¢‹DyîC”.GëʈÞwIøJº2ø2Ôû=·½oÒã(BÏA•ù}™SÓ¨²âd3ƒâ$•èRDÖÌ–=k3éœÆÞÇÂkSŽžTõ‡ºSMaê˜ËlùpÛt{kæ[pOr¶§€§¥mY‹e%­’½ŒœRfß¹ÓYuDaöÊ¢I×Q^ÆôÐz(Öñ×8 )¡8óþˆSO32pŽG>’”p=™ìÐÀæžÙ+M§ðåõ;Û¢Õ8œ3¡²Ò´'agÕ¾Ïsäf¤i3EˆKÂ, Mk©_³gÞnÙ>û¸ª¸Ešb{Ã7ŽbL¼«ùÆ_aNXÅ'ÞVu°úq]i§¹©ÞæÒQp›ø>€¬9“½þXÞrá~ÿH¿®SZÀgŒhü¨úÊ|²š+&Nžælés×­ï>DÒ§âÿ­K˜/ó\¥ë‡!ì–¿P• PÙuK#2Œküð°jé XqŸ]üØö/´îºµí2GEiGÙ ëhÎJJèÀ¨Á€1ò6ݹìQ«‘TıË]Î rIÔ$Ý“õ þKíÚ,Tö^€¸ï¿Q¿.DÎ3vƒµ+zŽx•ƒïÌKèŒån791,ÉŠ³Ç¬ˆ«ðÒ ÃH<ÆvãIXÇÍ£ ˆÅý€Í×ËÙ`‡Ç‹L¸ØÙæsÛ¬fÿ£z|P0 T-ö¹6î²å1ð”ãÑø ÝÆW…yËÞâÆ¡2ÁÀ#õÂûÙVMž¹ Ae1¸ß9G«¨ù°R5Dª:U½ãx%!po… %!]Dp^Búvž(“p)]Ï» ~gïLW3óµŠ÷ªQs?d“"hšts‹”@‹ÕÔäãŸÒˆYrÀø×á1ÇïfõˆÓ¡^vœUÓ,&s$OýÀM±ÑÈV0cs•OÞý?,SÍø3&§0: Ši«Õ×öß7‡Ê­?á¶–QˆDâoLöø<„wà}œ˜FüqÂ:üºå ÐÅ”lt§Mü‘‚⌯÷Åç$“öÍÃ*QeÒTÛ´m¾ÙÕö2ýxï.Xà6@'”…O&Õ8¢ê}‰ò²ü¹ÎD"¦$ e+IÛ‡Â`g§}G­ÆÂpqQiÉJ¿òa IhŠåëhVðÜþ™%i~ÒxM˜H{×彀°¿ä5-nýŠ|MBJîž’B«øÆªp )¢‰³j‹ï³vÞUËÍW™€°Š­Þüã+Üó£;Û/]yÑAeD„yÿ[þ§i… ü1‚üBlÆøóz?hÄt´lIƒXÄŠPÄÇa=¶Ùb~À‹1gÀ³Æ“ C«Ž¬ç6® Qr˜k•‚Õ`-ÎöN­’Lð¬ÅÈßûtש¢R¶ßlÿ½|RÎÖ¿*Å o¥ ǩޫ²ã(PÅ_¢ÁdùÞùÔâ¸.œø"¨¤ïT-ŧ—©ß{f;d0( âä7Ѻu£xŸŠi z¿Žøâ¹L=s¶?Šà áEÁ;gWšŠë¬Y¾³€eÖzþ0ã|§íB•¾¬åå®§—'Œ¦A›#ág1Ú“ZÎt¾2PKû^0ðœš-³*žº!5±xæ÷Wà‚Ùý¦ÞçmJ ¼¶Ÿôdw™ì˜y’àÊÌw[¼Nêac9Æ¿¾Œä‹ºà µ˜Gx,għX–>Ì[:QäßiZ×ZxÿœHü£Õ8ïQwz´qzä­qjcÂ;훺8Oòƒ‹"eí ÍK¥ üË~ÿ„‡\Œºµ¯$(™7¦àºVÂI¤Ñj°(N°œõ!Ý6á#R¶›µVz1Iñ¼K]ØòS^gq1¦‘º9ßÊU›•ËïÔÛ±‘ƒ“ò;G¹J[OWHZ³Z*ã p¤BáQÃå»ÔF‚úÉêe†E}e(ÔhçÛ™¾ @Tïëd’ý.QðÌF‰[c;(Çç{™O¿²5ŽbÍñAÅ,‡€!’àK=›;ÉF* ²(ÿ úZ!Ψ0Ÿ¡ˆ¨íM»ït¶Ø¶©Å ø<éˆgÚw7õx ˜ï(8ûT º–ÄBÿÜÅŒ 0ŠâYh½Ò³gg ·p¿ï?•…VЫ‰6§h ì)Û‡•Ã_ÔŸãURñPÙ×myA<¥\móh© úŽ8á[²ýeêçÖˆHœ“ >™$öŒ}ÌÀclaºÁØÖ]Qô Kê×c¨$$ªS$bߺDB»˜–Œº«kqA+x$…„6¿Š2/ï—ä×Ì]#y³ý»^\H^µ›}Pðè@xÛŽïÆ*¬=I®]ÂOÓûObÔªI“é¤"!:zGµÎ %âú–²‰0“BnñL3JšŒvû‡]@çøª­ Nf÷ìè„×^ªC…‰ò þÚXR‰Ÿ«SOªsUûDKœ¸Œ4bîÃÁ>éÎù¢wŒÅËÌô@Q¦Œÿó/ᯠxºg[ªOcJ²ÿrì}ÕËñ¼+Å['±ùa÷=ùØ«Þz _qÀÒ&£§XNiñ| q‰z„OþvŽ7‡ðÉvq(Ç[^jðH›_SßVyÉb¬#ÝPÇ‹$qgÆ*.9ҳ鯷9á:¢ˆÄ­¾€³T” ,L ¢ÞÇ1läˆx8©QÄoC/ fâ&κRM­ïÍtÉ#’ ›2*$ç:©iÿ]?’v-c½“½ ¬½Ð#YBgF:Q岃¢ï£«;±nQœ{8ìF¹zêþëdÉ¹Ó uþTgp D‰ÝWC©ÊþòmCóø¥e ž+c×€µEƒC3@Ä·ÒAŠMòà®ÔÅAÊ¡“/—¨UÙ¨€ò @}NˆvÔEüµ£ë¤ö7a:3$¯=é/\çz²§YVU°<÷»xöä´ùÔ¬«JˆfÂhÇÌ*&(¶v:¿HɦD`ßéáöžX°5‘Ñ$®b×Ñþ—ëBÕÙxe-³^ÛèY=Çð‰£7,»ï´*Ø,ž÷?¥Ú#ÝÚše1•Á}Òê8`3Ãl‰-ñx­Q¬:®‰óJ>—8Lðmˆ69(9ˆ(¡A8ŽZL¯“Qqbçr,Auhìè;½˜j¤À<e¡üIä Ð. "ó)­ôòI@4‚³P`*Jðá…¸@?Üö‹ùh KFå§•i¬±ÑÒmëv2JC˜ÓÒ-í¤b«ÿ-¡Ê—ðŸÌ1#ê wDñ³¬D(B€}¬JƒUàjIRýôâ:„)^å‚U7ûyW¨P³DnEÄšÛŒü5‹Ýø¶Í„m–—‰]è{ìÀäär«ØŠ°“ÖV^¼å24üƒJœ4ú*bzE< 3ë(„ 'U–ú·±ñšðŠÌ8§Áä°MwÈš¡ñ=Ȱõ†x÷?E´tmKqèøï«âµdâ«Xjú؇<ùà”YI5×Ñ%b‹ - å“7a ­h•D4äÃU¥‡º v±<ÎkZõ<,5¾ñ©·sÞ|µ ÿ§vÐ?øZ‰$·OB¼Ãµ]лF§PÕ9ž¾™Meû˜¾ª“,‚”¥c:óF-W¨D6FÝß´ÙëÇ!óü¨Yiü±YdT»?žôÿ*²ÃÏõŸôÿQðÍào&¿}’ׯ5oá?g+\ ûã¼C’8CºjAÅ‹#9¤–³Q×W³té‰Úþþ8ÛKÖ@ÌÜ7²éŽ¿Ý7íR›â Ë7¶3N*9SH‹öCøQJT–Ë÷Ñ%ڇ쌙Üé¬MÜŒ(Ÿ+cß™“ø—€ÛëKÓ:¢%Ë€UÑ»ØÖ.SAKûwr's”%¦Ê7ãó¦ÃqM—Î(¸> vqvb¢ ¼{F=ÎfÔI)õy½¥C1½£G–RÛþ{f¼îƒ÷WZ ÄmqÇè%“¹ò¥ƒ[A–±Ç‘r¥µ:r/‰MY™4³„g0 «óõ5TË Ð¼3"4áêYíÛ‰è8ŸLš9¡Ï2EòÞ9ö8&2iìDÊâÆ×ðG6b™ãjÓŠ°= JÊœâ÷`‰‚hê=5Ã[©Â”*¼J|pM›‰BOfÎ’‚ †kçÑj'bŠØh+˜2”׬{O'ªå p$™â(©œL*~¸®?Ùg<—.Ÿøµ#iV¨ÉmüAŠJš]ܺëzË_b÷©KL÷E±i|TÞG›â€w.×ЄŽ8Sñíð­MÞº8x1-EjvªÀ4o%A‚‹–æDÓ™x˾çSe÷몾âBl1…PÜó/Êô­"XÍ´- ¾ÊÓ`—Ö6§H¦`1ÊÌ-(AF ¤/É’¯¸gÇ.sï´Ô cÕÔÚñǼ‚¥"|¸S¦g•0ˆŠÐÚT”­“‰‚ ’ÅOVgÃ(žõ¯«€t8GEQ-eÀO8I…¦ÿ¯œø*5úo”Âcš|V믚ݙá *x‚¹NQ0¢¾N'H™iV¦DÚŒ´Ô<À=„BümÝÀTºފ’‚ªƒøwþºîjD-æíLîe aƒH$öM¡ß*€ÎqDºÀÈó‘s„¯žÀˆI'Ÿ«z×á5¼—×Ü¥Z18ú_¥[©jm=Å×íè6Ëfqò_VÅQ`ùº¸ßWõ’"ð¡e1¼s [ë¿y@ÑíBþk”½ÿ8ˆh'ößÑúû½NöUÁb²UÞä~Ò÷‰œ…ÓĶ]Øj–h×™´¾Å¨a¤€õ¢×÷0BIÚrnâ7–°{y8â]8Qλ.hõ.Ñ÷R×Ã[IŽÑ«<öŽ?ˆB:†¥–‰Kf5ˆš™s»ï…3¼Çý€ªzð5ŽÛzBCœ(š¤ÎÞ.ù|ù"@Ñ ¦Ã˜^Gªza~}DËa)U-;€ pÞGETÅit=kk}ÑJ âüªwÜGt¬û=¼=ø÷”·•åýHÆôf>ì4œpGóÖ×*mŒfÉÞû$§ §j,ß´3u«ë¸ -íEô—™ZÖkªëô°ñÉMKðž «øáÓñnøhй:•(Ë”qø€y¡„Ã"Òq"^ÊVOÅZ™y K±†Ú¾ž´ÓåCµʱÿð²žr9Gµeê_†2Ž@fb>«.yÎhö¯ƒøèfP?àÜnêVÖNg &Óx9ßå e·¨[ø†Ç~n_ô9CT”>P¦©à@ÀØ]—sA¸k©¼Ì™,ˆ³úRh8P[±:ÎôLœXx°? j„<6V™W²z3‘/4Ü…U€IâC]“²Àz ÇÆkȶÇ_Æ1x3õVºÿf3rߦ梥BxÃÏ£Ép:)r‰Ó»rĉaá ”Á(ÎàEÈm5Þó›ø¸I0•ùÔÒIкó.õ™™ûŠPq.Â'HäÒ[WÛ\¹ô+Š\üîyCl.o¢ë.è¨(È"ʪZŸ%l3©»KÎ¢Ž ¤f$§Â ÿ§†Ýw¡ï<—oG‰“ ljÏë—É2nú+nÐé½(5vY§ÎÛ1ä&¬T¾HÏ…v:c]Ýi®çlWËW 9ƒGy8‡Ãù ÓËpìZªû]Ïá‰V>ˆdQ,Z¿>¡´§^‰h¡#Í”äPÞ"£èí€(óB¯\·`I·lüË;ÔÉtM†qÚaÿèÊÊ ¡µîÉÃU¾§b$­$" Çͺuy SNõóM {–¯êKü”ñÕ§J“´jmfÜÊIúå.}âÖùÀ3­ oˆÌz«“׎¡ŒÀ9Sé¾Vi58ÛÀˆ!ÝN@E4¶`Õ8÷$xäÖ›dž­`ÒU²_F®~¶9ñËaO¸hB $—E¸M±ò½Xæú¡óñ¯ñZ:+Ö~QáRRÖø£6Ïh­J%>Žü0û)Üåbl ;´µ˜BùHÂ/ÖŒ«âYd”ÉÛë, [E¯[›k`+³ö.çš'2n­ßG\ß#&ïï»$ sœxšÉù‰tr ž«º ÉüH ‚¢Q7Å(=¶Îì±i^‹ãë:U›Û|S¸q Fd‰‡Æé †2C\tuÈ Ý"ã!>VÿöCßñ•º#¿HEÔfâ+ºò©¨Ô™ó-‡zðp %×w:%%SþêuÞÇHÚïéÏ'ÌdÊ EËþ ôqÞ¤?R¿òÑO°úc—¥ w=õƒÅ‚øÃÄÈ(ºf¾PHD€8®Q?$-Zƒô„¾04¥«';Þ¤8È,™9”¦«ò t ˜qÊc2Û•zIͲyv£tø¬"‡ÕŽ0›rÎötKÏlÍ]qØLJ—µŸôZ==:ñò§çÛ»v‹‰… >g „'_(ò íæZËN;R>õþ ÏM„ð.ÓÚUTð”lS3åõõ} ?F>×Éx>S\vËÑÇŒ)3¾Q…¿ñ|û&<¬T|(Ž-X‡Õ½Á’©0•Ôõ¤9Ógº]¾yãT“wKVzUÙ²mÏ–›3±õ¦BL&°óùÃÖ•8ßP” ?™†¬¸T²Zí§$Å@ûS *N3 !: h‹}kD2 `„'¯àú®^ã¬L]&Y}¶’?b7>ŒPüäYß9ˆ=øõ˜GÑç;r¦£Øîô]ðÂjáÈj lôñö,µÉhöÓt/\Öu¦Æ”%B ãXqY< ».R,9:«n"½¤³?– ’®Ó‡²,>× L‰(³¤°ʦÈ_ågAÚ¹ô‰¦€«× ¿^r$IÏCkäˆi0 ’ÇZ'gÝÜÿ-WTš]—ÈEhÎÎÚ©ߤ®R-OHM@£5x~ô„¶§1g͈NC4Ð02';È·˜ Ô‰j/Ýo½Õï"M«­ëHj‰ù³¸à³)€õvDÁ1ضŠ2…_®*Ï$Ï*ÑYéîâå™]SHv²¸lÇ/óP>oßc5P*l=›¼%²@DKó e•â ¯˜ÙFŠàÝy¢e)ê¤cA'kWÝò ‰•¤V c VߥjYr°PÅ8}ä] ÓU<$„ñ;Ê8þÀ,ÎÃ4üÖǰ>»¯yä/þ Æ­B=M€Cš†vBÝûqnœ«Œlã‚d” ±oÔ×ñ€¾‰°]¸a*€‘ ¥ã¿<ahOžôÏ.‡`:„˹Äÿ•t‹šxÃÅoÑÞ;u¢W2œZÙ}ÿ*ðÁVŒTGÓ?oÞ°ð4¢õ ({ð]ŒÞöŽðÈw(Ô2,_Åáå)⽿¥ŸšÇËl›Å–ˆDcÃ@É‚BÙ Ä$µâãàÆôÁfœ‰8ºÎÇïø†(:Õ‘˜ÄÓ¿U´ÄND›]í@_Ü‘ŒÐùôY´lÿŽ·4mñŠ"ÜÎZ¬õ"ÀH¼…Žˆ¡C?¦åéÎÄ^Äcãï™Oï¤x#&c]ˆ’ŒF t‚¨¬û ¾gÔ¾43NúKÅhªÈuÊ”ÅXhZ Q’eû¨€y(æÂbÛ©ë,1Ž;­z <Ÿ)h‘,œÍ.ü8Ö1LÊJô¢/#ZÏA¬•¿|f,j…ûsµ¬wBlQ}¦åue³zÍ7~õÁµŠïãVܺ VVµ QÚoLNy¡‚Ùid M:¨”œÅaoI狱—¯Å56¤Í‚Ë&ìÿN‡,–r$„‡"Ö:Q‹1¾5ªêñy}×ã¨Äw¹¡„ÓqAj`lѰ<5—Þ‹Õô×Ɇô¤D|fÚ&Qg.êÕË›L66fÕÇ•3é»ïôøB’ r»'©Rq"a2ÕúhòÅn¾È67Rb0 k‘ÑD+2Þ®D¿¨,ÙÒzÉ.!+œß4‹#2Ø«ÿazí„Û¢Ê~­¢¢¼‹/©{¬ôöØ,˜Øm-¿órzEaâÛÏ+9;Ótø‡þÂÉ>‹î3·SÆìHžqj×»%ý:ÓN–6Ä,D²o² L„ÔdkòŠOœ¬LPlÚkÓ§Ò¦Gd“ˆŒ/'N÷˜Š :™1Ðð •2v„Ü^åÿã`c€«¤ áBþ„è®Éíýƒã:ºÇ¿Í*—~0q5xÖó‘øGœðÆa%6³'dÞb±Så÷èzád„ý]£€O}ï|À¡2v¦áV~™s;YÍe_E—Ë“ëÓKñ«ïÐ^ERlþ®)áRo]hÕôæů§;7…Ÿ Ùƒrhi?+h·Qæ~óìü~Ùu¨ÏeçÆëg|¶Ð²°XG¦ÁÕ*3¦e·9•rbÁé^ÙuæÈWÉ¡b†wç DÃÛŒN°ßÂh¦«YµŠó @Î:y¥f­fÞ¼øN³D-=ôÑ$ø”;Ã6yÐ~‰Åñûþ4v#ä' ([Ê BäóÁaowEÍ–+gèxnÔÍÝÊ÷®Jre“<¤ŠU×uŠ/t™K‰8¼ó]™ë/ÑÔdqF`”¼Fð6vg6F_–,› C"'p²ÍëYô‚5™jêU¯8!jq`×ûFÊ­D‡ËgO^Šíæ<Ž/¯¯LÔ§D §Úþq,*•÷û9óç„Ø@ZØîyJ,ûÁFÿrX¤¥ãîÒøÉÖ,'nä; 13§š`ÃyŒt}Ê/_ÌJ’åg(bÍ•åX͆ã,ªwS.±0鲚Ep6Žó{7‘7ç›*à(a`À`Í:>KøÇ›ãoUó®s*?Ðò#{¿¥ïþ#ðÓ3ÃlîÿTFïß)_[’Ž’’–ÉtksöÍ@û:ã¶m´×¹W½C@:¿R!¸7r,¶5ã9ê¦p‡¡qR¡ƒK ×nyƒÏ§âƒŽ¹³”é9ì$*äèõ¤Y;u@m}Îܬ‡[,ÇH‹Ç|Ì5ƼZˆÁ¸z»ªdJyÛ ÒÝÁ¼%«ÐsDç¹Ý•¾j÷ûƒ4§Iû—8o3mUG©” ­¿*‘CmÉF¹ ¤qrŸõGxëš%x´'ìÙƒÙ]ŽLˆ; ÿ¥7¼Ì¾•B°®|³ï8Þ1+Ì; ü’·›X‘z¬r 3!…¦bø©$åa7Ó‡ŽÛ dzl=åVù·‹BD üOÉÁÊ#?{Á‡x3N µy¡Ÿá šaÀžéžrê½ û,#òw*2qßd”l ô%A¶]ñŸëIüÇ©vEîþÇ9’ÒÛ#ÚB®¼ÍCjH*í®ì¯½rìÈî\¨`2@¼F?‰Û0“w1Ü·§çdàJ´öÒ#ìnë(‹°3#»‘fndëñá¶N¯ûjõØC±}(<窥xÎÒ;Ûï½$(•±U¥!÷S2ãÄ(ó¨[ÃV–6ˆCHíi™õûp"I ¥fÇðÒE+ªŒxDFåÑ8V€dóK;„@^Ñ÷›äòî¬bÈy¸ŠÄŠ8g$®êÿþþÂï º·ê@òðdÂNã˃ÑåÛLNh™ tº¾Ê"“íb+¨¤|Å‚¡á,÷Xps]Æá±¾ÊHºs9_Í"ŒX©^¬U¦ÒNF¢Gay3³nÕ!«X² —&ù’hŽŒ»¬zTÚëOÃî²ûš“fÛ¿Kc íØG e93Å!nF«ip3cÐ/`Tã>æY% 7½ À3Žd¬¤”‘ƽ%_˜±Ž~‰–Y:ƒs ·¤Í§7õ˜”­¶y>0S”G౪…’h‰TLÇÃ.&©08o‚ÆÁ¨îëÛo´U­>MI {¶Â° -I²Ký¦)Ïö¿NBæß0‡òEIõŒëp€FÔÑmÿ½Ký„fÈŒÚW@"Àó0ýÉöG¹™¡í£‡VŸ)½.í#澜eYøîBÌ7þW!ò 1ZHs˜!ÕÄÍ.nÆqiï))²þ^5M@ࣽmÑf_–³`é…¿ù¦Å´vjñYJsÙ‹ñÓÜ*¦I{Ì88ûmðÑ^Î;t* ¨^3-ŠšåL%üñ­"“_L°&œ`ù9l´ÐoWM#MÕˆ8ªðÓÞÞ†"G>0QÓ°aGÜð}õKXSí`[ ÏgݓɵåˆÇ‡‹Ô{ÉìkSQšrÜL #§®–&%U܆2A_ê`,Á¦YÙ·ê~SE?B@ —2avÝEû8- ueÁ­sçñ˜C]}ýÁÞÄCd¶RÍÉ}¾[Bâlìmü¹“£X8ÔÇ©œŒÔÀ'•(ΩÌ©ÊBWZàÜYHÙ§\bÚ—(œÖô ×Üiú÷ k|±$+hz©Ù×YÆý0R¹Õ+ˆh( §—ÑuÊ)¯ÿ)Wó’–m­ä«'Äfb&Ž!4‚Y!f/oF²´RTž™UŒÿüÔò¿éü'éãUDSújzï%hq¥?R?ûÿXÑÆoŸ Ã:ƒÒ¨*Þi[œbZúèu·‡ÆE#Hj©”P6GÞ‹) ão[ù}¨+Ó„Ïnì$}–•?"‰.¿¿¼ô=‡V¸I/B8³‘$šíR°8+ïý¯/Ô¤Š¬‚»†FH;@1pgßœ3û‘°VÎÌôi5ÎQoêwçE$ ÿ©EܖȸÕÌÆyMŸ‰Íµ¤yW¸°›ö+f³Ô*Θy–a©[êTKUo~ŽÂünðG"báá›Æ>ÅcW²D!`äŠd2ø|Á¥§Ø¤—™I.By\‰€ú›*¿­þpdŸFÆ]Rî“:•e0—´Ò˜ú~døª4 ×-¾<ðeÝᣱó˜½X¦|Œ 0±\\j_Ž5¦?ëH)N2àQRäD!!Lãôš]£NÞÕŽ´¾H~>Õ,õ¨Ú𥸷ÛwÞZ(ÜwƧ|{ZLðlÕŸ$‰{qi/EóÖ{q€ûå@Ú¶J"1P¢Û5ÿ´{WÅ÷6æW•ŠãšvÝ F¶fµÛb:V‚â•ïKüpV¨Ö⇒œ¢I7}êè›íR<Ã4t˜FÔqð—:Ì |[#0ꊸ­]­¨³é¡#ÿžžQ9gûø#“й´ŸJG+tWzÀUØ«{¿~u+?2‘$~w)¾e•U™KŒR÷}¡L¯ëÔ]„ K\Ež¥UJ Ô‚îTUšº½Be³ÙÿЭ4¾eD™Ê°í§þ5Z³ d_W’3P“_ªv|ô‹‚U‚C|áìËé:m·jE–ßן.Q^°Õ@HùQ­Ôkg~§±™ ’Ó⹟Lñ$÷¶1O¥4`Âû'Ö¸Ò—kÒ7߃?À„ëÄÊ#Õ%øìÖ²¯%÷â$Ü„i@xÛ¶‚¦uÑWm=ù,}[œOÔnšý‘ƒê¥Y_LWApñóJ‰­€ª÷/`ä¯/vEU\€ŽñðóAF‚°à—þ¤üÌ2©Ý~–¥Åíó /ãK¤‘÷}éãK¤‘8Œ6Þ™C_§Cdϯu;ß.]'±î­ND¦ ƒŒpJãйd¦ö‘Ð Þ«ÜcjËÇbâ'õêeʘPlqÖZRÇ©‚NDÀ ]§‘|ºÑ¼ƒ{‡ßÈmŸW(©T4_t€‹o+Ub –¿c¥¯3%χÜ8«IÆgÁ‹„¹;â1´ÌT?x—ÞɤãL:Öõ˜£´8r"Ë '©ãN(7wü¨<ÌuÊ©$†Ü{ɤòfd“+-Îðl4'P\éÏTÂv¾ÝF*©°þô±?pÔ#?¦%°I"›Ky¥“å­[<¶ÛÝ^Qy¼ê‡@øì+èrSKç}f™vóVQ'_¨ ~°$Eߘ%b½keæ‹D½Yê±i~Tù*•t;âGbD&-_Á q!,Câò¼õ×Òê:jõÔž©•¥[6@š]KçÒK%Ü}¾¼Žµk&-žº4÷’skœT„°ýÍNR†°‚ÿD. \uÜñܼ?i_ß90Ž=\»Û8Ò%5$s\g²þ¾‡Ö:w߯µÝ<»ÿt‰úìCƒÞ£Vò‹…qP*—b²W̘ÉðvÏ^Šëd"Õ; nqšGêxî‰ì×£ê «J¥›Öü[€ˆùÌC;-÷@ïy£›ÉÅ“&Þš‹Ò…Š¢,ʃäʼþÖ`Ô÷ðíCp`sÝÉ|‡+Þþ—ÔDƒGœHW}œP®3ÞùG"qð‚Ë!?Ñ1oé5`¼`Ù‰< ÂDzX·j9k¦¿|ˆ°•E”èZ£‡7 Ç]·ÈKAÂÇ«~„4Y%›Ät“3€°%Õzº©ðÎÅLÍT@Ë®¾P‰,–¡&ÔOýH’æ0žnþÍÓ·0#೺o±ýk•~Ó8² Oy '^Ï/ê2Ï|ˈGÃà/ÀÃÜ î¼µóF«û%±C£‚¤ &ðTFþde6;VAÕï¤6mKm=ª˜Ð,èzKV|þbª#1ö* •¢ë©B8~Õ’‚À6†ÁÇâ r¿ú,ˆHâðÜaøû“73"#ïeŒ©.·YعE<£hñ.­[Ù¿“µL…iÇ'd¹õTâL›ñÌÙ Ôð­Ô“[w*Ò›§rgj Ç„ï/ÉéLS·~õ#“À*Rh°°! ›È,än†³ÿrL\/qQ‡žÂ€ÕÌà5¡ÿ†=+{׬ÜInÆvàfM5~²ØŽCGRJï\=·^É—{¿“¦Œªôt!b%²1P‰ATã4‚]PmžkA#Úù•róúƒYÄC³Héê„.€}´è{ÀíO³‡§Z\ù«d+^É Æ­êE¡™^‹gÀ‰aoF'ǹ$Ç5hš^â„ÎRLÇ}_¥@@öÆù–™Ÿêg#¼±ƒw‹ý”Y°ˆgttÒï3b”h@_‹È§'•*„|³°s7HéùtåŽ]JHÀöQ“¬çQ-æžV®Jswºm–rÄ­þŽºí)Õ~ˆ°+K bT@é釹8‚-ñÜ€l`ŒäÊ)°/>,ÌÁH–rîý­¬\^æY€Ç cÀÒ««º8":Üïã»| Ä¿q²h{X@m<"È<µ™ãí6ëYôýô¤pœ××õš÷Ê VJ­\Y×ÉàëÎ~Ÿû]˜K!ÌŸÙL’I󣰣ЉSŠÔÎÿFÿM˜?w5"W8ì[†p)"B×À}Úžç¾ÉÞVº&ê˜;“úuêœù&€âÀF#cÙs;´»´+Îj;g½»*ÂJTC=MÉdÑ®“‡P@ñ³+#5ÇO×—xPkûHxÀú±†bž¾_ÉÐ8VR#ƒ!MéÛû›áçºûñº)ffÓ±6Ùü`¨|žÃ5¸:EO+íŽcd&Ãl¥Á4ýF“Ë£ÂöøâÜ(- ýž "Î-³“LvùÌ¢%&[ÕªR¬€)ê;ŸqNÿǽ–}Ç™¢É©ƒ{¥gnÅ sUw€ 5JtêA‘ nƒ¦'HŠ‘·Om2‹Áõ«Ûtrý÷ù®_©†À.㑼+jVG¸š¤Œ¦N+¾µÞò£¸ÛÞó3WËD±ä¦õÇ_Í …¼FŸì(kx•·ªeÛë»Ä™ žÞÎ9P-Õ}×­Œîεzš/G6O±ø8¥!nôR¥¼)—z+V5v/¡!ÔÈ’Ú;ýñù‡jvîîtÈSZœ³‡ëÌ[©fÚwòÐKdœOöÄ+Y‡™ss^lŠya,Ùq %u Œ³lWrÁèÍDZc¤—Û7‰Åê.9 yFbÒŒùU'î×:éB’^ªjüÆÊ‹[‰×Vl§ÆJxUº¨Ùq@÷Õj„kjÆS4@¾±…Qg$BDŸ8ýUYŠÒùó¥î¿8•™B®(hmOÙmü’ä0dÇ{$ýƒ½½xb¥g_Ñkœ —ìpºÔðÛ[‚6ÏÈÉlµII«LŸ窔lznqG{99ÐZ/[X LzéFêêØ°kâD5ÉöæùŠÑ}¤µ8)3co -xÆqˆ¨? ärçue8”Ïøíy¨cæ’àen˜ãÏ ïýÅú~Ÿ?ÜÚ\ÔÂAwö’¼êø½|6,,o^zŸ®¤‚h«K/Ê(îôœ,Á,ÂöüñE)ï=ïåW"ßÊ1sQ¸¤Ýa³Rb¾†ˆ?R {BêI| ¢•ª…êœ?OQô8E[9g ³C-/óˆæý5Ï2wtð­T ¼o­ Ù}g`âÀ®D¿~f¤@ŒSÍM–¡ÌùɨïW²tO±K•˜G'‹IøÔ”€±½PÔ´e„9—ææÒ“ýgÂX¦¡•·Æ‰t™ºý›FÂtþNN–î—ÉšrŠ´ìÕäwšfáÄ#p™´3t÷÷i_Íß³CXÑÜÚw1x™ÌÂ-,.Å!–¼“ËL¤_yÍST6Wër„w%BŒ)ÏZÍD·êÒ_^ÍšŠ¹»ORCàšéœIé{Œh¥=9Œ'Ë]-"_ípÛz(%'ŒÇÏ­ ΙìE] ºÙê.é­nU’„«„nu+ª!µ%µ‹áüÒyV1N8“ÏçÖ¶³õ(TC†Â!¡â‰9ãÜꊒšGƒªcàõ©VP4ËTDÅáÞžýq§#ÈPÇ_¶ØÊ¥¡L fAtáMn™ç¼êå—ÚÑñ‚AcêáŒ(_QG@ŠÀ,*üHq•©ç9KÐøUj0öÉÇ+¤Ú‘¨À:X⇠Õà2Î/QœÖ.šxë>âÊ<­àÿ6{5¿žx6”‰4ç»Ò©Su38jdýôJWÐ’Æcâô—ÐÙl.‘7ÿ7®?Äo‰ fɇÇë£ðÊ­,,‹¼Ѫ¹´žB‡Á’E@Ò­C:kRáÔέ H`Ùÿ{äQ˜Vœ‰÷§.); ?#¶ë.a„Ìì^Ÿé蠅 V·¦×{¥ÄpŸt—“pOœ&ì]4òþòÝÈ4B"rR`ôÁôv¯°ºê€3ö€Š¯}0ÍQg-K‰ïÉôehj¡Kš–@™„PÈc…éHÝ¥¾qê˜?2gñI~ž‘lsáÞ[Á ˆ÷ûPÂ…šÌ? €®¿“‰Œ=ùÕ×E‰0¸nÖÈÚ¶òŽØ Q3¤ío&¸æœã/‘¤óW&èø¢Â‘óÙ‘èIÅ{ß“ÿ±­Sæ¿·1 ÞŸrõ¤ª‡³&ðÙȖتÎC|öÁ—5w^jï~ìÖÉ6Ñí]ÒïõÊ"iE 9| °$jàM`Î:/K\>ÙyCßDh^ïi—x;4šÉf䄤£GØÆ¬Ç¢ÄíÌ[yŸ),ÊVAžK ¼À0×ñ2Å?€\1#:ÓDÜ ñG9‰QϾJ1qÔŒòã"Ïd^ß³ ½èoÍ X—V~ÞÄc;²XÕè1×öÍ­x‰KV©=ºæ$ªz¥‰ðùKä컎L™Êg]ßCÝmîu\Ù$~Dby%]0*]QŽ¿¼²ÏR,ïPÇ~'mÜgQ6õ‹È6€xþ%¾Qùº&½Aƒ¶3u7+maq‰y*³6ÜÏß!€/Ø'?«ŒÏ8­Ø4r:_LE‹¦9M«m{ïÃÆ¾ëWwòyÕ«ïÞÃRUZf¢ÞX¥ªb4 ¬W+ÐBfWÛ$. ¤ã˜¬GýÏ!HNÛ%§ÜyêÖ>Á Œ´iu‰ºJiŸ´éui܇@ÚG$#8q"U‹£çrjò¦ƒªAoõ{R¢*½^3î%"NÄ’¼»’ 1Ÿíä ÁîjÆ“/s8 ð‹ºãæ×% 5e ’t²]G8ÕŽk ñ×NœI “å«Lðꆌý-Ôúq[sÅN -výàH<Ñ;­T5ðÙÖ_‚܆´FndœŒe:QS›k*ˆã:¼cicS) MÊTàs)wòu‰O·ùÆ适éû'Y×<é þíëe}sD\±Ò™¨­ƒ]x‘ˆluiÝ›Þÿ°si½›ÝþŸRA†®wÜö¿Š²‘¢n”Ý3øˆÆÖÖù•ì^×É$XDß‘¢üÃë‡-\Z³š{óþU7p‰Nzª‰ÎêãöAø#ìpi„èt~>}P÷é‚‘BÝA?~05ÙAÛ ˆŽ3?ò°Ó€V>¡o”lZ¼Ùþ¬”è(8s‘ÙÛZa^ÒC€*ä!ŽóG™WöUuž›;:„³ãØ;p5óIYŒCÚl+ÓO ÐÌŒ¶!³ù,`$’¾r,#üZB½øñqœç—tv*nÖâæÛÓ ó×#Ÿ™åv+¶g]BFE¹žw޶ƒXÖŸ¿q#âÈyÓ‘²Ô|Bd½züôsh2¥ÔnÑ4JW-ÖÖwÞÕÒRâEΓxé6Ò+1¹¸°óÖ$À­GfJB¯Rùš‡ =ïèÏ!_–Q³¦•hlœË‘IÅÉB²uæ­i“·9¬ r©óܲŒ“lëËK‰’vzðá.@6ýn³'>úL¹·F)¤H¦;Ûîh s’©NG–#$qŠd*¶™Ê,F ­”_šV ÈÁ­o7\U³¢‚E‘—¾©q(›q5úRN®™¿ ´ŸšS$ïŸé,FÕ Tš ÷'ópîó(Fžè÷•_~Øßû6òÝþïû;›Ž£6‰BPÕögJ\Gñ É 0­3±ƒiιÌp¡Y=%å$»—Vµ&ÙÈ,~Äõl¼ƒN©f£§ôÅo—Éh65²†fÝ«$@`¿ß’‰’ÆLzšŠQ¯Èì|±%¶ ²ÌmîŤãîš•Œ·4Ò•Ÿè$ŸêÛ„N]}'Ü´ØÝN(¨Ý<,~³zj•Š|/ù>ªéþæÛÏ"¤¢C´¬óyTB‚‡\ɨ@ Úe¢,äBØÈÉ„aøêÉ*š‘`%#„n•NÙ4"+K¡TLÎ¥þYIt´Jß Ëæœãü±’Í¿EÄþÕ’QM»TeëiVÓÓJTà<•11’ñ™‚5.Z¬Ötb©Ãáö]™d%°ZÎg⟯° IhµÊ ¤ocöû&õ^—V£eaMB®Î/=ç=•hC@<-U®y”ä©™jYž ª]—ˆSÙ¡´Å8fô œ^î¬ÞœlÅécfg—$¾…¡D†%RçQÉñ·.©W&îk¦Ø sŒAWºkÀ©é0c1»îfuÈ„‹Ý³k'M¸½Iýą́ç\”ž%+£¨ ”[h5õ!+ÄQ\æfOKOr3n%êÐÑ9Nòó\S2Õ‘ãwÆ;Wù»Ý#7Ϊ½ôЏ¥vô©¶™dIUYFZD§¨©ˆ}–(ÞßË"nÝTÖÐ2 Ï¯&s¯lÇ4°â;.ÉÝY­¢aàõ]}q‰ ¦TÔ7Bø®Kû 6+9þ@ZÇH¤d™×<€ŠƒQèêÆ’xú¾Õ%ÀŠ’²±0í;7J⫊•õ)r4Ü}“F}Ï"å eßSŒÀSµFœeÜIŸž%Ÿ™sƒÛ™^0‡¾é žL#¸ü(˜š…œ„•t=î#'úì9Á[±±±a‹ ¶]9m~A“ÊÜ“7£´;ç·N!Ø9T·¯P—<ÍuiêŸ7‡šEˆ0Q™ÊÀR›Fô‚ÊT—Æs„ÈEÙÔRÿG l_åZyë¸ÿ4L L{ç­ÆZŠj^Šñû€…œ‡"ú™U¯3B~À¹S „û›7Œ÷ 3?ð£ê ™g™n!|J¤Î=o D`'fw D]˜]“k2‰Æ™·Æ±­‰ËÌ££d–hŽ®žåR¸ŒÄq>IÈà ÐNÓí>¸ÓÙÒ‰V¿rfêKøŸ;pûJ0gje-¢µA¤pA*‰mÍ^о¢E =e[{ä2@­dv´ô¢YÁj<8ëÖÖ$u @h$kŒ’;ï_dnåGB’%ʬ"šÄi¥o+•eU!°ó,Ü 3›lœN\ °û$Ådv3hÒš…y&›ø?N‚t¦…H•€Œ #|3g5br‚”&¤DÐ=ëçØ)D[Ö4¹5ÜÎyl8sÒ sþqk¿ìºË´^dð„Ãô·ºžÒžãÛÅNnïáQ–ªO/Na’.ÌéÙî°tüaÉšGôCOÚÌ~RaJ Ù‡]Sm'•ÌëýwÝÊZ `¶ÖNöáÛ§¬‡ã:2N‡Ü*LÉ" ÙÓëÈ£箚ƒØ|ÍÔB–¹êÁú4ÿ–.}iCAF} ’ªº31ÅÙuI—¤™/þ1évŒšoþ2áuà8×cnéÑ ;9µéHO¨sИT¾"¤ãrȇl ]J:4N”=Õ7G‹·|k°G‚”ô‚˜<ϵêýÐS›lz ¸JáŠbbqTðäXg¥Ž´ ¬ŒJ*œþ¦p±µŽ $b”ì·,íi¾?X5.ú¦äµ ˜Q:¢ìã,4¥ðSX¹—¢ÐÓ~g€§ÿÉóD!Úß꼈{]<*ƒe¸ýUÕɨtJ9yG‡YIŠ‘ÃøJ®Æ2LG×á(ã¦ÿ}â‹áI9<0ËÜÚr½¬æV~$¹½àG‘H\—NP“!ÈSF*–)\_¦"†6·êš8šù‡8¡1a¸ìö•@& äİ*Ø3póùË7Ê‘R:²GÚNQõ:È…´M­Ž\±O`Ýu‰ô"Ä4¼Î]ÏV ×Ðý¶ŒB-¶x¶”æ%„,Ù6§iä]ÁIû¦ ¼3€u¤ ýÞŠPáá8ë%EÏšR ùÚìV’êùƒYCúpü€Ÿ“»#ûŽ3îšÔüR«ÇK!? w>`‹àx‘³A%:h¿Ž•Ò4ûi\’Û›I94NÛKiezá3o¡ºÊâyÿÖÀÈ7‡üf/I=…I.tïÍ_I ‹IÙÅYñÎÞ¿Yç>’a}铉Z9PÀ€ª mD¯‚ çQñÀÂäþ·œ˜€ @r¼WÐKÓ¾¤Xœ]£} ÛH2Ïd'x˜œ§A'àžlz’)„^¿rW+Ÿ€°Ý/ æc8 ;ãðHûO1â^¸ˆ’ÎQ¬ð0ïYÏ'¾ £M·„¾ŒS ÏYZÀ @*8Ö‰»Q}âz@ûԡɨ2VÔF«fám!ì)M£bã¢Ë ”»ºuõOÈÌ3÷ÙÌ”’`]#v0íl³ýŒóqHZ¬°ÍÒOqDÅú£2©{|w°GƱŸÛ¾É3P,Gº‹sÍÚ:•œçÿ–VÆý”F(€û:|À`šž@s|˜aƒ±}†ãqƒAܺþ¤…ÅS—H­dx½"Ðù}—;’í ŽK8‰p¾yÿ¨iz?`jC.ÿXŒÝ¥6oÚ âVŒàÉáUY9È´d²FkhÈ÷À”þ­ä…É87ìy£¯¢šAe¨ûNù–z£”D„AíwDÅ'F “§šF™ŒX&¹|HÙ®€šfrŸÚGŽâ…má¶Ÿ8‰…~ ¦i2Qï9¾'¾LHO9¡¥}_Ä­ä“2Ð*C-j~°CÉî*£8¢Gî%6"ê¬#ó`b’Á²˜ò:Àç¼Å§§•2¾ç!GŸg¨õîys±Ÿd,¤çqj%$ˆ5…@+Iéià[CbiŽ#$Éá!ûßqƒ÷˾l:…À¤)èN¬~’‘S±¤GÀ“d‚C+ áÍ·T}·t9&ýž¼D#IDqiÂxt“KZºu§2Ä1·ú6…ÎþÉK ¯´ç"Î5ÅìZé›uÿ¡×ÄÜÌK :оÀp^$Ã÷=JÇìl–çÒôX$ë¬Äq€K~d >¬‘ëR)FÚ·Ò º^¬fÀ™"]…Ä]»”8ŽmïIè°;ç‡ ä'\d!-,æH¦Æ‰Mý¥ŒH˜Ýe3ÚÚ•Ê«&Œê–Ÿñ82§¹v°‹§Ð÷  _^ÿjô ˆ}ÖµŒƒlpصŒíضþ`y{ý.ŠA+IJéÛÿJ]Ê*Eñ|ôÓSM¯?Xi?ÂAèô®ìêéï æv†wIŸ²=û©ÇÅ0ž×wCL‰+sXlýïÜ›§5¯@')G>–-[qß9aê]Ïr(xx\PÒˆ¡Ók72`Æ&tLéÌIoQp£(_Ez~¹ÏåëWã=¶ùé|¬ÌIHIv%–اz½²bß>AvJ‘dx˾ï 8ŒÖên×ï€òœ'¿Š"»¬ØÙ5’Ÿ‡áöÄ€¦¿R§L©c+ìÿjò6ïŸåULÿÚÁçsÍSãÌDņŠàÛ"VŽ?lŸCµ„>í_F}ÓëwNI#gÆ£éÎŽ£ßS¯]äEÂÀ_"•‹§:®ˆÄ¼“çÀ˜\ ñ –¤îþá(3‘žËZÑ>Oâd3"mvë©ETÃ?Ì€¹|?ç+«ãðƒÇ ØÜð¥% ·©‰¿ŠÉr®“ ~²é Fé˨bú†.Ÿ ÈUÑáß=¶_)î„ðve.«6át¶ê@Ä‚€?#ýWˆ‚êÍ2ë$b—ôÇùgmÃÍÏ\sÍzs&$€`âÍôÓ§2?`Ø**åï¢S€i#[žá­£‹6Ö±êŽDÄi²‰HkÁ:JGÖÆŸÏ˜è.ü gú©h³^ÌÒÒ´Ý×_6Ñ€Qvz5ïÈ–©·ÅÉ}©†NŠ%ÚãM‘⚟@™»çØ÷{Ê;@0ÑblÛ7õM9×:Ó](Fà Ó¾¥±ÜéVÚ³“2N`„$N6t¤JöH]®ªlJ°AMæJ'‰ 5Žƒ8“Ë©q+U¥”Ï?%diúOI¬½ß•y"õت›Pú9D÷‰¾ò‘ù%”Ì›ôäââcÞ€ Á+í)6®q¨PºÖŠ+ B¼ÎO—0tÍ>ØeÚ)(»°[ËØ·Ïÿz#% #ì•Pâ:œ„äû&½U/Nœ…„å NZÝÇ!mÁÜÖ>v_ê±ÈÝ£cnü˰óeÔ‚Qµ·hå O,#Zøªª=ºº°üT‡}Tç»Á¯¥†3Œï¬7±ÞªëR¢º²t„¬ˆ ¯´ Y¹NRƒk˜ÖGEí΀½Å5LãÑu‡ý+6ÜÀY:1æý¥3šF"Ä¿Yë+ʘv£Þµ‹ÌÐz¥¿•ùä+òkB“a( êŒ"‚*VSœ¡d˜ß2h¼'àÏɇh6©Œs!ÈŒžŸ ù©,æ]Z·ë!€â"l6#jšôâÆ# ‚ƒ÷9 é8~³XÐÛ`˜@]~ÃÈÓà8!uMU ™âcÈ㫸¦¾“•¬S"ós(ŸuÀw”;\êu’˜ÇäQ=)X5êñ¢iÐÿ¡ŒJ‘r'Þ ¡D]1ékLjß|Gv(6VÆm&Ï9ÄÇÙ:y4fÆé{þ¥×‰Àë-ý#ãtlÏ ¨Tí íM]É‘ö¡lø)u,Љ¤ÖÿáY(+wZÇÉ–(¤ŸÞ´™K: ôÜWÛEâa±š:b·‚|A99ЫcÄE6´¿b'ÂÊÉY_;e+Z"0뽟Šwµßj8Ñ4'9&›„½®ãÖò²l·MFó#Òg·Eüåõ‡Û;GÄ׆gæšúî9ª™Î–ê<=›3w¤p\3ÿ0pd}NýL„8ŸA& ô¿,ÀåßÑûNÀì•¶}¼€$t¼_Yú²ë8ž´‚ãý†üÍ[¿§"´Ý¥)žyWKǹzSMpjãBÀOn`b d]X¾w“²øä€âðÎÈÌ¥§Aq8gAF.€L€Ä¥÷=®0ï;~Oì\ëO Ýukd!gmL?—ZibœqÝ+ ï ¨»"ù¨8p˜re¯$ÜÇQšôêSúâÊï¼K…gšUÑsDï_Äy[)“ñ:÷"h>RÌ+ ©s˜Ðû‘&^Δ(Š~íœÔôÍ*ŸvË•õÞß 'ž¢œ˜óø©½ ϱ.) ZÆ¡IQ\Ιô1§nu¶løÁ+xÇmä z#ߪ[t_ äý½ðέ­0æ Ê…¬]—ú{0–3óm®Gg:§×dJ¥}CòèºÏ²Ô%^‘riºƒÄqùüýÓí=N&"9ºûK˜A}KòԷͦ­´:Úo^ÿ ó¸Þó^j#aìæYЩmü&ÝþÔ°"od2î£4Ö}òä˜-PH÷XlašgO±0m­¼ñcÿQøØ÷Œž ÖLíKnj£ŸÊP©©Vn¡lö'ÞÓO€Îø…&Ê·:Ãj¼á<4X=»…ýX]PÕ44%ò9•AßÉ«0œÅϔȫfê?—P¯îÌâúÓ”».í£.wŽï«ѵéFáôþ»òËÁæ$×UƒtRõ^§fBÓèš©*ðE¸"\7GyÚ×W̃¼=Ê2áÇ#ƒM&2Øöú7r?ª6Ï5K[@ùþ ;ùÊå~#N±hýÅ^'· ïEH<¤I€¢ysÂ4 >ê·[ôgøýÁmèn#cñ.óËwx„»Þ·¹r~æCM¦1´¢"uÑG•L:7s^á{_ÛBã”Aa|T=÷N‘Ì¥—jÕ(‰•ïA– ЦHÒs+4Ùd)¨ö]ŒéOõä«•Y˜ ¨»†Ùž‚Ö¶¦DêÐ $"ÙúõŠ)‹+ï,À9ï1æÐ‹ùÑ->¯ûâ!жö4 ÄcÚ~÷Ážõ SXzøfjí|´ï¼OQûB0†aݶOtEŽxz«Ã~åÂUêϬK=#x'¦žP¿[ópä`ôq¤GSŠšß-÷®p•?ø ´´Ýßò099 h[å€,”hð:Ë ¥zy/¤Ñtß¼*ÛZN>âˆ}ïòjã€9î;íäÈ+ô0Ѝ×8¾Ÿu«H¡-wùeôƒ› ù*éD„ñµ"¾YmÜ2F¹ùñ:pÆ™ {SîÄt/é§i`’PI•îøÇ:F(â¹úÿä#KÐúöU ÷bìˆ,æ~ïÓ­@ ¢0êqÀ‹çñy×Шá HO½R·×wyñ¯ˆz®ydmЦñ¯¢Uâä®[É/¸.ŸvbUxåe%Ì2UÙ÷þ»"€ióŒ×:Jv mÝ'jñ´;‰º J†¥ðÒe^WâcÞJÂ}ZVOͳý*àÇ~*BŸSŠ‘Óù'Aô€$&rÖø+oñ`D×0ó듵oœë"m˜¸['Yð]¯ƒýw^ÒÿøT {=ò€×¿a8mõ),à5h?B¹pä+¢ú@{¸y·kÕç®äÇx9þÛ%]'tzõ?‘øB,xH†,aÿ°8dh„v#»„«Yr˜—ënœz¡gÀ¬pžÌË/¬£LÊ—H ÓÏØßXqxÏkWéš–¾ˆS¾ŒšÓ–)+Þ"œ‹™C#>P±ô–i$2BÛ 4'i=ø÷;„—Fõ ”b|sü‡ë¸î;ñùÈ|åû-( ƒô¡eûª/ÅË“ƒH:ý8ÓÉô¢2£>“Gl0¯Sì4P îuíAfTcq![šÇ¯zgøE¶îÅNå¶éâq€w¾Q`ºX9˜ÕöT†ôqQ•KYk[$ÙÀ%î%í Ä,šÞœˆ¡'Ãtñ廒RŶíÉùïØTŸ´ÌfDx€ø©|×< xÒ  }*çõÇç;Ç]&³‡£”=;|ÈwÄxyƒ¾óÒƒ¼~­^:L{xûF×è5"¢ÔâQ±É'j³ÆÅA=6t§€ŽRšQóšfðéB#{mi&=ö'd–~|²Ç8&³Ó·¾ãâD‹–¼>3¤™3¨\^ñÒËØoWK¯yŒ›ZhØÖw€JAÛþ iÜöwÆö®<³?!‰¾3$÷õ7©X„q'=ê¹ÔeÕˆÛ}Bf4‘8$‰ÄvÄ.ظN‘‰½¿+gõñ°Ër)ý¤G^ iU,ÚêSîoZê™Î Äû ˜å' ¹Óm«ôaì2òÖpÙðUÎ^üã.±ŠÄWÓu‘Œð„§5ç:>ó·‰ý3ó ç¯'â6®k_ÆçþV_ Ó™åR1Õ‰•Ï ÂK—OÅß8 SÆŸ&]w寿Ù#ªq§ 4µåÜ¡\Ekù„]HÙk‡ùƒb°ë»â çì·•ãú,?dYDÅDÙ@KëÔN=_!ïOu>ÚA~ƾö]\ÛÖLt Œ #F( œ•´©†ø’Ô€¶Ù k’•õ¯4 ±Õ77KøfyœôƒÞìÿÀ;!!¬oc,5G¯JwˆeÊ)Ra˜Æ,¬fºõ«è‹›Wg*"•83tUÌf¾®J®_îgnúfû³UÙ•ck–‘¼[^ Í· «Æ§V »^eõ>°åaD¢ŠX.×dfy¹9¶vÀ€[TDx÷Õw²ìTãëªñ=_̶¹¤”a=}ï§FÙ{;îÅŒb˜{®¿°÷c†œÄ à„S-ö(Ìï—bÍDê’Ü5Ž8®²mË¥T©¡²ö8(2-Tˆõ~;HÁ/(îRžþ[5"B›•I\sSx›a‘S–Ьí_Ê{¼¬çcœ7÷æ ÷ÅËÓ=žs÷ØìöÍ,‘‘»Ë1_+[‡á5„‹)¯Ñ@Üót:¬Š@±Á«½,üÚÁ.@0úï/RõƒUcxß<04~äèˆÊKm`ÍÖ|Beïï§?¯Œà¸¶ùùÑ+Ä ö¬©{ë¤9Š¿ÆVÅ9œj"š"c#ð\“IÜ£?†8´¿O©WœtÕHSöÁ+Ž@3;ˆš¢}t~ü¨•ßfÞß ,œ°f±F®«O6i*…S'# (½HÄÜ9Bž^?iX·Š‹+xÉ7m{™þŠÚuT4Hú²Ocß&­«Vó©±»•þªw ¾”“™ãÑ8±òt?Ç´eü]3|~&er€–o<œû¥HûK‚ÕËÚ¿Š§ -NëÃ8媥xL+~<¯Zå1l‹C +L™'¦!/ ©µReNpS Hï=ѧ@ޏũ 7–øcæòÄnÀ+^›\Q–Ž8Î3õœ˜P7‚ðV¢X†‡|óZÅ8S ?ðK…A À"®zw}'àZ‰_ß9¦Ôè,£¿ì0àé/C¸}¾uÔ× ñ x©Ã3¹WN,hT:}R* ®nÏ¡•€±¬Õ·5§K}×ÉZCi…Š'k+ÈD#4ÝgÑÊeãTÿ¸ÎË)½Âëaö‰U¸„é­ÔjXƒKø–•ê…Ïö•˜Óu?b³¾k®ŒºÔ,ð®U TTTÐV3£°SÈÐ$TÜA˜GÖ)Y}& Š‚¯O“0@.24ª<ëjãó^umÛ5R×: -\sQª•§nfý††Úˆûë`„…!íK¯,1¿+WHH²!òð@DºL¢ú £»†1žŠº`Í0=5 ²V›®3Ìo c¯8=IÉi5 1ŽCž«ä\Óõ¼àÄ YÙÙgæC±‚î"+ hªÀÚÿçbRdÀn¯÷ CëÄXSîàÄ Qc$Óòéª ¥s¬KZÚìI„å¿»Æ÷éîM#Ì™-Z2€ ©¼wòÔHQQ'æÆ¯3>;D%„±”XeÚVŽõ­€2tWõÙÕ+të˜ÞÒk£Â„V`µy ¯HÞv tù¥\W­ÈRóSiÄÆù=¶MÏÚ%>ÐYJ¤?ávzš ²Ë«Ð‘äö¢NlZN,cÓ+ªò¨Ï¯£ Bšßesóñ‰"ÓZ®{ëWXáGûà«õ«¦sÎþBu"¦YëÛ¨€8é37$4v²ºÁDánáëýK }Ÿ :HT´²id¤Êà¤ýY(ˆöߎ*à¶§S Ó6^m‡NkMv²>‡¹mÕl¯»hõÕêgœÓzD‚zĶӔ™mÇA]É2“™±›ømÅd!,ARDw¼™bdjªD¿Æ)€ß2¶¹Lz£„(޾ÔeJîK¹b ‚jÇ]*ãªð &¢Å©¼»ÂƒüûÉãsss³x'|†_cG¼±K'Y·Ê] ±¤çýw%…8dÇZ„ݦ‡{åj&µkœZù¹Pò9˜g¦‹§U¬×ï$m{™~ž–Ê\‡y| cNYRc"z÷ÊNT›ž®}SÔp Q1G¤¼COÐEQ„“­ÕÌû€ÿP.ÃàðpÀìOÍ›~õ%¡y¾tþÇOu½‰Íô[F¼©l³øÔî_jä¤i¯ßé~ôfR… ÔÈa f%*vJE£Ö}OÒ°"BÄ*NpT™\&ÊFn ád"¶Ne®³^ï/ºá0¾zYãË@]ìª.tÑo*t•ÔÅ9©épËJdŠ£ã4=õÞQ¯7¾ŒÃ)3 N3Fw:¤=€rÔ$@²4"Ò¿"ÔÊû+øèí5ë~) Li:\“QÑ+ã¨hŸ9õÚ‡M©O³†Î ÌoÙ›½kh,ÇÚŒÚWºÓWu¢^Û¿4á~ü7Š0N ko™þþ¡NÿJãU·ö»⇈Bó^ÐQNgŽoÖq]¨+#ñ<åÒM™ï„•“¥JŒLX%éõ¯Â¬CÈ,'[ÀZÛ%;Q#>¯30ï?0Åáhé++U+q˜ö(ó× Xêþ,;„A/ƒz;€„˜â†ÞË~(‰.ŽQ⸾¿wãÝb×—bCÖÇc¥œ «ÕÌμ‹— çX™Âs†ÝwÙcq-3ð½EQtÍÃî]Oµä"{†å®Žv”ýïr MÏ÷Àr1)02lý©<”sætÕ*E Tø Eû2€3ïêt‡',ÓSg{ÕøÇ¥/¨­RLzùgì/igñ7;²9\Ów«¼ÆøHÄ*J|¶‚“»Ÿ¼> [øwÞeÉ›í·";UNP×utœC–1RE7ÅËX¼Žiü¨™¬¯ßyâû:¯YµLH΋㈒`”þrGèpFŪ¡ "tBÀáÕyœàC€×ãh;<Êàue>8K(Èv8(8“V ¡ì>?R¨B´Ê­(è¶_ŒûOÒ·«ÀÂ%:é× ÜÀä5zÊ—Ž˜)òÜ-ZíÓó œ?aØð ÕÂЩ^|Ër({yέZˆO¹ò|ŸæÅÇ®rñÑ—³·QÌqfÔ)Ì–šµËcNš4Õ볉ÅëßI‡Ç#ë´Ô5ísÝGbrÛ' d]~N ¿^ ‹wÁ¹óZ5\Ø&„iÏ]žA1•ühç6Y"‘á UGïð$‚ìEjÛ.Gf”£í‡Ö8â;#HБÇè -Yƒ&íKx^¡Ë¨·´±ó¬•kª¤SÄzÙ€ò¼S­9Dj'T~jÓ_'„—¡¡·ŒÄºBBµâ¸EIJûOx? á·Z2ƒ§öïtM‡sW´éš;‡ÞÑ;œä}º¶§iMøló:óÂB3®3›ÎìÄ©k;©J×ÞnzÊêÍöÑx}%þ7¬×7šJvhñͱ+@=Ýú ¿„Tg‘À¢:YòfÎÁ¤¼‘‘ž•K‘3öð·TöU—S׸u¤©púUɘéòŽÎ¼Ä]9¢ûp`”‚ù` ¦8ìNç™"}Ä †‰Vϧûä Ü—H%f±}F_`Ó]Þ“3º©îjÚ—1ÃHk]RàÚÍ!ÖÎÆ¢WàF„HJ[™)’âìÂÌÒí0!øGRÙˆ«3sÊÈT§¢õŽz[ðÇ-"ƒßtPoYìš#ÃÄñ7ï^iß,¦à°÷©ØY†§H´rØ[®m™ÏQ*˜Ü[¹ÍâÀtøÛó~ý-iZå·ÞØTBläv#I0Š+ßé‰Ë,˜§³Ï`BOé¥e…ÂÊÅ¡«ŽÊz]mBÀF •rb–²rœAæÒmzDÙ5l³¬`»f¡‹y#v;öZnr~`¸ÝtgûÌ.&—Þ„…ó _Q Êô1ŽJz]ÙúÊ5ý)sªJùªl¸CÑ~´ÿ.°aèu¨{¤iºÓp æÒSV ŠeÜ(#ë%ï?`Ãu}VKªkû®ëV©Lñ×à¹M«QëÏ뀧ìÏý¦û7Ë¢Ø=Ýå†'q®rE'h¨a9ª£øëüHöÿLpÈèeɳ¯qØ;Ë4¼úú‰¨à¢<Ñh®³2ª:)L`uIAz•Ó­Ü8võŸ_A³Z€eU%¶¾v†÷d¬å|/‡óšAÐbé.½fU¡›ñî?®R,£uX›ÄÐØæ;¶ íVNßë#‹ñA!…ËòëpáÐyBët; ×Ðg«_Zl(\0„ø®’°8Çp¥’ÊPN¿”Ž?E•k“Z×úòuèZñ ƒX›?)»gëö"LdpÎÏ8àQ_÷pˆ÷ñ)õ‰ÉÓg>-èå½I!nÅ̳Œ÷:rq!ù‚ûÜA9 !LJ$ÀO8wí»Fâ„5Eæ-ïϯ:é ±U"˜öÑÜ''Ô+×ìÀ|œge*k+wéaÂÖG: 0^O-/šåwÚÃõ4Uf—o÷[¿ì‰¡·ôÄ4ÿ'ªW=é56äWúÌpTõ;ñ/Õ X)Ç62&MY±›ëÙ{V˜áœë"j)ÛÞÇJš[´ÜF_~MZrÚgŸ‘i&ލɬòÌ“pR:¾ò Jk¯t9öV¦ã«Öd^nøÊ>¥™'ºÝ·-q‚DÚ"amIx™ÛX ¿ÍDŸsú*_|\~NJûwÖK•ZúòK‹“µ:µÞëÊÈ.7À Ö®qb5²i63Œ+é‡Ú~¦‰õÎGÿ´Æûñ0~ÿðe;¾Îû¿‚0‚ŽtmåÆûËVoÅ«t—ßL0 °³¼{âú”òIÿ‚ù@l”®G0f IÒ3þ§<Ù]}°¤a?Bîeq“u˪G:p=oìwþ<™»s"¢B«L~3Wv&¯mïóÇx ±o"-cV ;Î\KÆ8#KM‹[Û`Ê›!U{ÝKæF“rˆ l ndp“»?…Z°jì5f Ây#sgpf  ´Ò0_gñ¡Rt§ùX™ùVݧ¼©Q° Jjw¤vVðÍ­®c»ÄIíGðâ‘YE¯A•Úï#TÞoQµjÀm§ï{ !E• À‰8‰Ôé,H¢C¤¾Ó~)¿7ô§:ÉÚ‡@ÿ~ìSèÒ¡£ä´ç„=ßE®…š°úî"AÎØz ì ÉÎvÅ8gÔ²ôáóKˆw>Zîgú²»®ïïÔG L,O·;¬\ó±UÓÎÐuÖ:ù|,;!÷bUØÐäÞÑlÈ©¾E©|ª¦~¢T½ý(éf!<+Ð3,  9Šg2JáàyW›ÎðR?wpôò—JœrunÅ’Wu÷-¯'ß6fÂ{ ›3šo)IYKÎh5:-®*=©ã)GãÀ ÞßõÇ瀧Àº3ÂoÙÎÏ5‚”÷ ò?ב‘«^¶Iižøõç „Bmh;#€j¯‹JT2¿Ä`¿PÛ©HÂø8°$A&$f%.ñÕ a³~N¢Ç?àý:jäÄU4=Ü@*Nä0`#÷ãÙ¼®ÃVg+ؾþˆ«\~· ‘ \LKq©• ­Ÿ âN߃Ö~ üns"G?ãÔ®>÷ÐJ”ÈŠêh~·CcÌ_ cí¿Q¼9qÿáÉ_ÅMÒÙ5;áC°Ùí$ñŽ·@³l ôˆç:âÃkyqŽÓŒãV<é1ÌW§ä5k|Ŭ,¯tI œ*rÈ¡œ φßqΤ%s{¶? Ó /ŒL›þ`%•â˜ÀDcÿ©îj1ŽK+¦k’jï)‚èÇ)?Ò·«ÍbúÊ)‚m%$hDxÊJTvû†YlëIúV‘®E$BÀ È@é#œ^Zž èÑuÇ‘… €'F-ó–Ú:“ q¾EŒoîdŸÕ˜^x ™¾ù¶ÍÅ3)lVè³0Ù‰oâˆÃ­:oæÛ¶õaÕªìlu0úgW©© ùƒUÜ‘Ïá›ejAxäþjب‚/¶ð ÅÙ*V6ÃeÛG+Ããqfe{fœGjY·Ù'Z äƒ9Ð/ú#EÃ:<9ÒóÖ‰Öà Z1艣î„tÏyœsbÒ÷±Ó Ò®#K{fÓq\d‘ÝÒ]~q^FÚ'Éw7~!ÄÀ'hbxßéû‰)· ä™7pk4©ªŽ$æÁÁ8¨1Ѿî?"€økÚ)¥‡à¨@v2›#Ñ›¥ÈŽq^† ¶¸Ô—Ù£.Åñ–‰\Ê#ÿF-šYËè~(,Hq( ¯ˆvLvZ%óÅ—¦¥èµ§À¶€µõ!a“¨r4nE(¬¥å az+ ©Î[GƒdºVèú‰µzC˜(jx5×zLæÑ3V²qeÞ1„pU/RÒ`C4€Êº2”‚r¾•ép—ÇY¦á57UWޱV?JiÕq ¯0âÞZv•DŠ‘±+8h¡e¤- ÓO%3ÓÀYLŒ\h/Ô4Α²B;@|¤R‹E™ŒŒQÈiq“*LÅKrzýE¶áñV,œr¤ÒD¯ã«NÔÆ'‘‰k_Õˆ¢}{ý)\D6ÖˆÇ4 [Æ,ß«t¼i™=Õ*V¹ *š@3ÁDå›pÍ£ÊOµ Ñùåc)tVºI±KJø¾†ßƹjÔŠèðú(BIF…ýp;9¿$ôw©%¼ã »¾žÊó)JÉ!òè]M˦ñ3ôÀVçó•? ¯˜NÔ|ïIúá+ÖŒÕs¼&…Nä*M—LŸ×ß'òŒ‘’qÛ~«X®Y^Wãžk©>—¨ƒ¦ºpýU^#i½Uî>}FªaÐz ,Q†«p€ÇÉŠ~Î,•Ú7³n$“Bxgû‡c‡Û¤_U@©HðõR'\IvsFq;2¯¯¢iùÐzçzÑN·ÄFÞÒÖ82÷@ÖûøžxBÛ¬ShgYõYÐ~Åæ)ÓA9²àÌIZkŠ‘œŒ½|Eߣ Î7dF‹ã=¼3®ª |e›º ÛÄý]·RÉ€¼~—±±ËÚÉæs+Àk Áuÿ™Í3 ZQîsÜ_kŒ<ÄþÒ¯…t]Î}S.ñ t&šäœ/9Û3k|`š Ýœ'ù”‹U¡¸´QÔ©§Ù³04¾2Mâ‹ÂŒÓ°úÆ>ªW…d"?šoš'=´2™FæéDLûoÅt<>¿¿Ÿ÷féúf×\­¿YoÆn–âµ}È•E8ˆ¡¾ ¶Åqxjî´ÈÏ$0*t‘xë$Ù„ëv”Hd9ØàU O9ÓpÙ1ÙJ¯wyŸ§&Qi±F¨Q]]iËÇsõñ•${¡ûŒÍwË“1„ŸNä¥N†m„–ÅÔyÄÁmnÜšóØÚ\02‚2â`Í’mˆTJߌòÍ%ˆ“0³QªNß‘M6Å?e‘W†å=ú7ø‘¼}µo•ȰbÈÔÝŽÈ’e@\Î’¯“å@$.ñM×_×!ÁÞ¦šëÏEPj´¨òC³[ýK ´x7ò`)¥o‚Ó’R¥ýìlìØDðÊ·ÎZ®áÅjÞˆ/ŸÝm7¤ÉIæŒOv¶tþ*¦E\7¾rkpÁHB9l0ŠäL11´KSÍUŽ¢¯ÖföŠ«òqU-§ˆRœ•ÉôÎÌŠ ôf#I0aéGå\CY=ï…Éž£Àë.KõM Ÿ&U?Ñ—Šðô¹åhÙþ—˜å˜;‘y†™nÞ€tßÑ\ðw:Õ$Å`/êíü!¸³Ç8ÍJi°HLÕ‚ ›±e…t!Ófœg˜,)ÜÊe±_ËøÙ9á˜9o¥ øPå³ «âZˆä1Øç[µkœÆ9š™”í«%ÄâœPÍ”R+µöÎÄõá&çÚd†¸§¾€‰8cPJyjN*˜j+äf8TQš6 2&YLü³‚ßW¡/×.PªH(qIK¬ù@!‰ Ñw2)m„u nû’‘NÛR vYg¬Š%Eµs‰ C8!ŽyÊ:Ái‘ !<½FâÐÉs˜h1¶ã­š¿ŠÚî&¬k àQfOð΢[\¡Œ;‹x®Q%÷ÉÙ»ºEÜQ3ÎáÌ`)ðŽÅÀØêÜn—¹Éùxªoé–f}E²1ªké®Gôl¬CN–l„GKgH·¬Âw-U°ý×ÿ]è_‘`Tã«`ÞD™8q¿ëé0fÆ¡Òq•ç ŠpY_ '><ØÞ(à!»ûä´ürÔˆ/©rÝŠ³›3SDèk—éÊ «QY›>)BqÖaç Iýïã • °ëO3äÌ[LúpÛÞ?NµF´›ñ©Yò-€Î / ÂBn±òœ€xË4Pa}+®@š¸Žf8;ÒWxwU­¹G,IÄø3ÿ}(Ùòú.„YX|åN'¶­~𒨛–tJ€Áhîw4Û’â}fÜ·üo!jÿ´­~¨1m‹*bé㓯!cE-BÀßwt#_Ü";Yí"ß~º7ú±ö¶*´}2*L6íï¤ÕºãÃÖ°:NÉL|ÐI¢ hVö£Hè{OÆ"¢òg%IþÌýÕÐ’uBÒ4ze©A’讫Þýa©'jÀÁÉTË5^-ø°ê„Öt ªFaá#ÓÑ AÙÿÈXÇIž™„®RÄ­ÄŸ¡Á*+e<„¯âœD]o"P¢-‘ÖLÓ?{B!­Ô¿©õ#Óºíª³Äì ÀÆÆ”ÜdfDàŽs%\€3>Öï¿<ý©3É’בèÜW#‰ýþ7–÷ŒTž_O!‰Ì ébžæý/_$,r¤wÛ®ðgÜÀ1‚€Aõëyý1ΑvM6§ÉZÂ+/Õ® I?‘±‡ž>o÷§ÛŠ-’ÓŸ•<þ`Äæu?ürÜœ_ÛÜÊ'‚[‘ùµz|Óø÷'Õ—ÎS2̯1f‹ÓV’c…„‰1vœ€êL”„¬ÀO-£öˆ#T}gdœ+ÑG…¦©Ô$÷³BàÈIÉŒ25A9@¤abèR®ý5–µ ‰šF£Í*E/¨$doÝQ”¦¤{)šðN4 O…SýMe¤ü~¥¿r¢É‰ßÕ? ×G"H%4•é0±ÕÔå|†vô  ÷–¶W©VºíSCîš²2§»É?gGX›øüQ”Oú>ÃMŸœç‘`ħòG¿P|ºxì\ErPâäÒÚ(ÇÁ}ÕTU}ƒž€Ë¾Ó€*‹K©Gq©ŸšªÊäà ¸%7ÃAáÍë³pòêC^ü…k ÌuÁM–a©ó^ÛÁ +~t'X¦K™do55xg'Ó†ØÄÕŸí ß,¹b.¨W7”ʈQaÍ[i[ž¥[ÞRaÞÄKˆ‚6-Ô4ž:[ùu³T“­ *Dÿø)yvþÁuæ|k–ò6_ЊMk–Ñk ª ñ¿ ßµGM¿ªÖ2L˜ÄÏb7¥ŠÍ{E ã#XùrÝ%9ÆGƒ˜Ë‚ ®œÅ9“õ®÷šdÞ6óD¯÷B3ʈðµqLN´ˆŽ¾Zv!÷:—ÁÑ}üà{»Àfã_˜q„ijŸ±ŸœðªiÂ^ÀaTӬܢH\8€ìl¦Ùwi EĽnƒÉ@b·šÓ&¿+g¼uã/¹'ËoZ¾žu4mùžuäNC45 0zs_¡i]·ÈÃôÍ®#º¸Z½ÿ-NîU°0ª½¿« ‘¹ó5A9R‰rx! _žn•οkq Á.W?ZN`ÐFf™ËžÎ¤€R1¦ ]ùp´Œ;«ŸQ‚úqH÷÷R$#¾Dàrøz¤s'1²bÀ툹ÁçcLÈ×ö‚êi5øa´ôúÅ;Š»¯¶bä'œ‡)<Œ{>Ÿÿ?l|ž /8fJZÿ¡W@¡ ¹rr’ ¢ñ’3}¶B!Ïâ©ç´b|ÄÏ)9ßÀùá¡FãZëÿóÃxT%ý¤zvÇ2881uÔ§*aÑg”Up«‹,ZÃò^Î:øßuÖsâ§.tçgœ3âL€7OÀ”›à³jä*‰þøÒ@Œlpîc†“2J¼“™åˆíÙ^) ;òÅ8-qp¦”0i‹h¢ìƦT¡Êö3t>è3D>EW«Á³Ãªo+#Ÿžöy}ãˆÓ\™eÒ¹ó'#Hÿ”²G2ÔT. Q™Ì ßá“’Ó–4©âMÔ NïL|¤\4½ŠG@L-Tu—¯´È>~þëˆ31ÚFÔ¼ËÈgn& UŽÆç¥â`O,•’af+ ÕÞ«¥S1FæpŸ4’4W%+¶Œ »;µ§OV,mßÿôl5aÄY([÷u0úFœ0È0Sò§ÑSü‡À¿>þDâßó#áp\?âôM&‘Ò1Ó~SÖâšç,õÿzµÚˆ#qB*"çsEûþoWÄ ãàãÆC·PÉuP«êy— ÓmÃé–VdX*•Æ&ÄVóËJG^_Å¥ñŠŠ”VëÔ‚xêxj¦ª‚FF1tì7zig†A*؈ìqª˜–°–µO-VÑœ<Ò=OVQѪùÖ ÐVãä:LâMLò5àzýre|ei€çb Z…â3t¤ Õʼ'æ‚Ï*¨‘Ã)VüëØ5 #²Eâ@4Šûb¥“Edè²úUš J0j7 Ôr†õHOâÚ.lìŒ("ÜO¹mä&©ø>nÕŸRèõ pvŽVÊtªWÑ1ÐJí m'YP,wzù1«öV†á[4áQq Ü¢ö?è2ŠŒQáe‚eJÓ\íú5óÇ+‡HF3Ø•Bý›¥ eÎ2ÉgâÁ ÒO)!ZFM<ƒðÌ·âçvH*EŒ‘fÜjFú •œ”}áþf|¿Édám=º§Í3»š(ÊÄSŒ’Ý?x˵ë+s6MìõË@?¯P‹¤”A0ôœY(jà¹R‰±ð>þd~äéX±ÂîÖŸhÆbÙïªfCÙ×µ×+Q!ÌŽ(>šÎöú)g!ëòùÓªöé5ÉîijX.ÿ‚‰ï…ó§±VA4y‰L9¿ bø½Ñ³k‰¦ýp6nGÙ„òçû‰MúÌÇRjNØ€¢lÓPëóObó5¯¢À§PÉ4Œ2²zy€5¶Âjl¦U¿t#y1²üÖª ,Àd¦&ÇoÝ”6`§•‹žSîüø UûJQfߤ‡0CÁ”H¿ë¹ LDxl¥Ô´ïœ0(ÌöÂEhÚÓö+÷²âÇTpUOì¼  ðâ¨Ö?8ØóΚ¼ÄÎìËvdË2>²š@ôTk‡$æ"×@Ÿuˬ0ò7|öÒÞ¾ƒtËaÚwÞ‡í%}FŽr$&âÏ41@zWRS¦®²à’^È<ä¦Þ ÑáÞ¯L¡ü Ñ1Ÿ4n|"1]ˆüŒ¼¦ËâN™ò ÷AÒÑ^;G™ü3lj)|'áeæÛø¥Ü?_xÞ]Šò~éW½òò—Ë;fqЖyl-DÏUàcõ8D4Ñ?%=]—ÿ‘$Ú€Y‘UFÍBE &¼p= –7—üwQ:"NB|¡êIl„´˜_qG½$Ħ-èÓ/SVãý y=Åôfá×OçØ â:: $ûHHeHU ÑIH²‹_U̩ˉ¼è8hì«H—y5@ŽˆÈ;ö¯DgZ[‰+7—`ø8àncÙ óþVh§sŽûÝDã\—¶ž¯{2ígqkô‹~]çó{±%ÂNPt_}tÅ3‚5œÿ˜)}F°ø¥ªõ –@rß1uÒ¸ s®G§ B)”vŒí¿Š³RŠ!–€ü;¯Ï¢ìxk¦J˜NÎż|jª¨Ÿ“/)3@§R‘»ÌjXa¯ÓFîÀ5`†lm{Ê¢/‰8cWfg‘‘ƒµ ù¥rˆ[¡+C}‰‰–"É[á!ØD.·Ø@)\2öâà×ûGMh~e»W{bäc“±„’ú‡­à.C ³†€§ïÅÁyoœÌþÕ—MÞøŒ‚´±ßnVNp!´û ‹ùaª”Ÿe[t#ð^™Å+%K ð¡tXðY $G{=šAâ{“yøPBl7d“ãß™Œ 1;A[XÞ_Dø äùK TR.þ4L7¥±·×¢iA| QÍtuŒœ7¿YYN4öÇ&•ð«‡9ˆžˆˆ 6C(eþyùãˆìÈåþE~¥eÌ5ÒIÄÄiI%Kl1¡Ce0ŠH¼¹ßleÉ)­ª'fÇOÆG¬ÀÛxXxmÕþ‹¬ÕÌ8$À©Æ‡:›'i”¦°ÖrÊžÖ;aÊŒGãËÆ1lãZ¼™ŠÓT€²åõbPœcª=T˜îu°(г9¯ by€pÂÐ8R(¡]<Ì‘os4FvM9 ÊqÀ¥3U!þ•Õøcq²áoûU årù¡[­BœÂ™á „ «Ä‡²30t¯Ëb68ÍœŸ|ž^wB1jzÐýT`Ê Ó`Bq.¡PQݻ㛥–q|Öø,ùž¦)Ʊ™Ú_3O¼•A&ŸµŠeŸ} L’òö|«¨ìg~3[%È2¡~Ðz2ñ©K¨ Ú˜©ÌSu‰»ÄZey߇Z£}Dò->~U%+€%$ ôVÁ*dl'± ¶Íù»ñ‘Dߥ$»fBÌàaïiKe-S£^›€Æìtã*žƒeJÍ-µ~b†­fÙY[É€^‘IP’_Ñ$ò˜üš†uÓøôÛ}×NÓä.Ä•idɴ݈ƒq-*NlÈÁPü‡%¥•Ï_Å@P‡Š›Ž˜Ö¯,ôB¶b°m$£%ìƒs•æ_…v)œl—ÈÈ’[Š ŽGǾrŸa÷Yú P°¦s æ~j€ÊÅú]ýÇeûBÈô¢ÁYÆ‚ËÌS·w­BÒúÊlŸìòz+ºƒ^pþï¼þ–ˆ` †¦¦Gž”îF|PðrBꫨvèÑ…=Ø=å?"Xí“8êÿWUh°§ÂÎ;48oÅçã•,ñ…œö¢^è;¿ƒ)‘ŒB&Ùœ¸Ï…Ãý”›Äôú¬·‚­Uù†Ó§æؽJ鿬©u„6LÓ©á>ýw ÇX€7ÕÍû[…6¸Á$ ¨8»\ ï-W)°€¦`zPk¥¦ÈO°Ú pMµøU˜•=H¦dnÊò—‘Ú ’ƒûý‰R®äÔJ A|ì:;L‘B é+ ¢ŽXh(òöûzYE' ˆï’Ó`u…,ó&L}#¬Ö•{ïŸE>Éüð¿…’Q3b1äo`a·Òtžk_ðmn­Ã í½¨5«ÊëoÒ¬¡% B2ˆ€õïM«4²¢¥*yÿI‡6¨/>Ôõß•ÿDŘþEU,ÉKŒªA=P¢ZhJ i?ƒÄ\ípØšmé†ûܨÿäO{ÀÂÄ¿~ˆ@¯ž€QœÏ˜¦›rM˜W$aÂm_ñýrÔ#Çç#&4†94š ßø¶ujAO¯•‚Åm XUâüdÂÂ]ÍÿeÎÀýxxóþ§L?uÇïR2°GÏiºÔR­ªÂÄ£q-?bAkü¥†›ùù¥^˜.~"L î;Q˄—q2TBkšnH¨/€EF=Ù9Å?d¢a‹0Ð4à9<º—W—±æWäFqzóSF-†q#£)µ‚cñ!¸Ù’öÍœ¿‚2òsîOž}@ ?Ââg±åñW o_…ÖØ¢Ñ=ЦN[óïÑ+€Þ7Ö™fˆÕ¿Ô÷Pj=ˆ/™ ª‰ ŒDÝNâÕŸSZ+äû{2$Ž¿t~ ÊLÓÖZ§4hÓ_ÅFû m#Lg¿©›7xg.ŒãÕ[-ŽhfHº©M'æÀ~Ò×y­´×̈QØÖì¨<…6(2:gÍeà@]úNDBLÆUoxÊÒÂWVôúT?Ô%hƒíR€á­¡íCOÍNõƒ‡ýMß©ƒ¹ÇÏÕÿ‘¹g|T׌þ_Äú­jú˜ÀÎz>ÜÄ0&ëvVHCŒ:Ó53U‘@cö¥i‘8(ÞgÙï‘ì^ÿŠÂc'l3±‘LdZ¨ØVìçŸ!ÌHÌxË~J´‡iÄýñƒ¦ç°EOíõ̦ˆ‹( ZÛo„Ìë½ ¢‚F²xwø½d­ÁýD˜™× /q‚hºç1ùÍ«€1ÌÐB.ŒKpŒ)] /ï¿24Ÿ²Zkú®ŒÁeT£_A³¾P¦p Ôd–Ù¤2—Qµñ'X¾ÿÔ¨XvÞÄ¢´­âÒ*Õð<÷Tp¬¦‘wi¹Ùž2 ë]§xK°w޿ʪH“Dµ2L ÓÐOc¤ÏÐdývªÓ"αHû>µÖ>…wˆK]ïS²¹ø¼¤ÁWd+ƒàzc¿O›þÊÍ:|=e’y€$å tþ’¼ËÒÓà )Ø ÏŸ¿ô^oeP˜ ~ÌpCê‡Ôد‰Ï?æüäý¹4oS¯g’͉£ÕH1yB%€À—.Õî_AJp¡Ä E[2˜¡*V¨ÿNÎõ8Pq°ô™í ƒŠ– °34U>mñ•…ܪ¼ÊóÃS`9üS®}“FOÆ–Ž–˜m¢—^W¸´Êà ÖÃù1?mŒ/yŒùUçðõGâ¹Q$Ƨ&¡¾4â¥)ª±/¾,$t.nFðJ×SÞÒtÝ(0Jz¬‘t®UÌDÁp’ÈP¸¦3R,>¾¼¿\ßAµñ¯τQ'e=ßü|ÿ‹~ývè,¯b`œN2â¸6 õj=æÚ§TßÓÌÓ+៎4a©aBäõGÓ¼‰ðb²’´Sâ@YÇ(lgl6ŠòÔTqZËëÅ‚8C1Mm‰5A>aAWžÝÚ~ÇÂJG ‚ÅáieS`玳6Øùj‚ÓIá¿T¿ø@½iÝ¿lVé¬CžÕ %Äçwuö°@Ò Æ Ít à° Q²lç?p)1KªvvÆèºq¦¸ÂV ƒGk«*F¦ã¦4Av|Ñu ÜwÔ@ á1X”gºY[Ip|`2ƒ %r|Éý8/Ųç¬wÚ*Î|,Ø`ÛìÈK”ž¼›òνJz?p‡ê;däOBŒ¹uh²¥.Ì'j%Á·®F5)bÔe—8À$èŒc8µ’bΙISK"vÚ›˜bæý3!'A¦ÇœT³&íØ…E·{ŽzäãôC¥î›“ã"œÕ)ˆ JRf>'é? CþÒˆ±/X厨\e³¿Wõß"ÃÅÝ#J­ÝbR½‚ɬ ~&Ïÿ®²#'Î‡Êø`ñêzå•"§ï’6`µ¾¶•ÆT•Ü–¥à·.\¬ôNvšµ‹GÝL¼u•…o/Õ§Ú‹ÄšìM|[­K²B™@¤àLoéåÊÔ_©Çø£¥›}[ )‚ u•ý”C‰ PŠYr`¼K^ dPb”òÂ5ŒŒäH‘ È©‘>ö䬈’0IJù¤‘zñr®‚Ç#dŸßQÚ%Òˆ@µÁ’¯„‚áeÀÜ\qÁëh æBf2A%R@M¸LzÖ¯² ýGíoàÐE¿q#Ñ.ûveÄ[w¹™…¤–ù$® OÆA!†Ãf§[ÓÎÊ"57°¼>ß N6ßø¼>˪pp>70X—©(`‹Wa O£¡Ùpc^á¶·¯Làgd ³C€'-~ '”ðøáÍjL?¿©UãÆ³8ëyT!Š2cäØB0ˆ½%Oþì¶Šè€ãÒÏŒûWF ¬^~ij¼×߸f(Ÿ’ð«JŒœ™_†—Æ­evº«’ŠainkÕçϸ6aAÚ <õ)¿6Ãב€†.aÀ™S¨âÒ¾jæbxT¡â'ÁQ}×OP´’Ì&•Wp[v ­ÇÚ'f@S¿’dº«‹pº&¥ëι¢öÌϾ¹ÎÁM³†â߼̛u+V1/vhL3 Ô̰œpš 7BMÿ„’c_‰£ äÈvJKŒ%Àìc'ŠA70Ðñá[c°LÅ…8“„+‹.IW ¹;Wn͹Õç@ä€|x ~y½Ü68^††M:#ÜçcæLð§°Ö⛡Ï2å[¿Yú -XÂR°èËë'}3ž;É©°:¾JJ0ÍÀ©B!Xú€aÊûµÓÇY2i$@cvî\cÖqddº•0ÈõûÀ8ANÚf+„_YÄŽiÚ©¹—Ç›*°—馨vV_J7Ù×yÿJ_Æù~iZ%Õë½7È02‘ÀRZد/ 6à6°.—N¹–7f¥¨àÏ­ÏbB,Älð)¤QE£Ü-®ÎvRT§/G¦×+i ¸fñUU½¦l¸¾-8&ƒjÝ_¦C^éæ8ãSû¥6˜5žÊ¥ã ,ã«Û"Zƒ•§’8†fÄ 8™9?þ®!GyÒ-ƒz+© y}¥Yã`?±¥xŽ4U1*V?œª1óú›d‰#Šô²!'?$æRë›+Sñ w‡|IëY°4 ˆ³5Çöq†¨¦T[fZ¹•"­Þ›Jt¶UÈX”÷&°ÔÄÀ 7-¦tbÛN/)[3¯?%¡mÌ_m5mW’!ëh 5ÅÙ5ÅÚô7ý£,™Ö+fвiÿ”µTÔ Ïÿ`u²ð Ôˆ)´–c_eÕ‚H±»>i—ìØ’Vl¡Ý8‰e×–½b F@6-k”°=žšäãĽÿrc¼5ÉG7‘x³ Ûó­'Tô¢=¨V;MÍLÖ£÷Š5I_þf¤ª3X!mUqMB7é0¾ùaW5Ó“/ÿGOQájš³Å•Ð6M‹6¸ÏG1„+È*Š˜É0ê Aý¸:osT1c•Õ^ ñ«ôAejPßEQv ˆ¹2Æ JN¶(w}¿­[jè`[×(ØöL¦‘gØ cÆêÄ!DHŒeö”U'ÐïØ ð£½þ…¹•¹Š«×G FÆ×hîõUèBlp :v’Ç3#[œl•d²îÉû{¡1tß/b’s¸_ÙZ«£(¡™è8¿“cj8ÁôÅFƒ»…"$/â::à¢qçP°Ö] ß‘¤s:4´oʬ¦Æè{”@›•C* ºÊF ååg ö´ˆ`¿8=Ɉl‹+1ˆÌcÂ2@´²bGàS<=ƒ8ÃJ¨ù\#ó©˜ÑÃ|]“zý+R …ûªB.TЙlÈli>÷¦ºZ¤¸/@ÿ–{ÑŸ, ¤j2~Jé´%ç c®ŽŸnFõ»!£ŠØ¼þ”( !çÒÛœX7á0TÓ Íù«îq­Fõ3xëAÖˆ|ì7´©=³jWÄñÚŒý³f1¡‰üÉÁôÚH…“îrèZŠ–Ã„/ç’ÂEížà˜ ZÖ/ú5<<Ÿk°)U~«9whb:¤eÈàÖ‹…=y.s-%5>Ëgϵ*¨ìï_pœOúz¶K,eiÐ|£F|hÛä©Û |Ã8¦4M?u‡RW¢8pHÓ»zbÊ¡AÂ4q e¢ ej v tœó$!m7ç>ÀG%6¢ÎŽ2S>@Jñ^KƒO¥JCî8ÈÀA‹4ïŸåš8ä,¸Dõï‚ÖÐã|ÅÄ)›àfèoIÁq…A_„Wæ+Ö½ë¤/ã@ÇÄÏ2eÿÝôî oº^î4!M ‚·84ŽALèB=»¸ ‡ÅY«ÚGÁ±~M™¡Ò˜9þ£0\Í8D®B•¦Y_”Y æÂ¬âD© E‘Y¨9Mùß\Ë±Ô Œ¸Òª†Ù²2 «L¾L )© ªÌQ$6¯4¬ÂP1V‘8³dÔ‘”ñXèí‹:X‡t ‡`Q)†€®åâÉ01*·ÙE;幓,ED…0KºY3_½ °½—}L£ý"×ÿQF§ýC|ç‹O#Ç c¦ÕUE˵@ƒï~U1¹jæ BkÕÇ0èõQXbêXå1Ìxý)B@Hµ€€" à:\ Ûïíj¹=£É’#S‡°™MCS¿Ae8¡^+ ÂÖ‡9º³Šd,óG®Âç¨W!­ × ¹§òD *ˆËf;2]¦{Å²ëž ‘8xF§ÜL–e(/! `Z¸zr|»6{™æUÕ„yMØ¡­FVÏ*Êâ µ4B®;úþQ¾¤u3ZiÁI¶Š€0Õ3CH¯žb89¯ ž´ÏÅ„7 g e³2¸í›aŒ'#ìJ]‹ƒ¡’P¶G´4!8öœ$î_¢~VpÀµûÎÄb@kó:dÊ…Œœ1-ªAT—ë*^Gðt rü@gñ³Ëžƒ´F¶Ï­Âàu'r»÷*0V q¤Ÿy¯×gj÷‰Z¼7D 3a’ Êñú[‚>PL¨Øg¶k§32E?©×«G9’á_ôÅ:S3bP¾ä„}¤ 5;œ”X |®r2i¸ QUƒ0Šé!¦ëqû«ƒSb×ÉŒ#QE¶V†R:’Q®Ù×Ò`ÞŸDkpL¿Í¼k–AöëòÏëo:d‰Úv3žº€þ¾ü0ÇÏlræ ÿ™KHœƒ›4Í)|™·jáÅóW¡¢›¦xýÚÁdÂÃ4Àëoºy}\ÉDí‚…F ‚*dJ B«ª‚§­ÓßÍL9¯éÜC2ÿ;Ê—‹ èæ/¶cÂÑ™ld/þ}lëEÊØÊH ÂumAÛ3 ¯k ~ÖpÆí–C_Ž”’Êñõ,ÿhÄ)tÜ‘ 'qÈêlZ9>žV_P #N÷«¸ *âøÈt$jy}¥WâœÆtò0të¿'GÊó>Y[‡Õã¢4Ò4—ø]-‹X'õõ]j¹)‡Í~´ñù¥QËm#Ÿ¿ÓêqNe ¸¹=F®"èFÝV¬Í”Ý€×Rë1¢Õ¤]^mVã?ÓˆKûþ‘^3¯’?&wúoªâ4ááü×±2"ŽeÔJûgò4 ú‹Ð9’u=ÅiaZ´Ž„ÅžÂWË¿\¥Õ=G=SâôK]¯Öö”ù“ÉIœ™çÐ2×ðþY„Šc.u­‚”^™…¥8Sè(Èʨ5\O†u­æL9AX‰CKu­Ò㺄 ˜àÐE,ƒºéµõ$ât7]§ôdš´ŠqRJši±!%!9YPâHOV­ôu(ô-yR5ŸYÙxzc‰\ÆA‹ûJÓ+È#±re‚ £]9«Y4j+M£àØ‘Wæ€Y:®Q𬡔hB†B˜9šë7oeþä€Éë­Ñí4*óÈÀh -ßÈ@ˆŒâV¨÷h´”ydÖ´+ø3µæ¤‚l\ÏзÙß¼2Oí-]§ ­ôÚΔkC¸U þçÎß(ÀðG}ç =v9 ,#3­ðçqß©0`1zÚO­qêO€I¢º„Ñ‘®ÙÅEœÌLÓ|Ÿ? «£×üÐ÷÷gÛeÕ>ËÉw,Ãä¯r(Õ*ó*ßúC×õêcrü›Åp^¡1Í« {ÿ(bPT‡ñ=)¾#sÌ8*½bÊ¿2µ5‚‚iáz± WœP’¨xí{}UÜ@AûUx«%_!Ø-°šP°5‚3®ÌšRªp•’iV˜ô¼ÍÔ}| ´ÖÍ ²F]Å{¸tþZ3Ÿ¿Êêû-h¼¦Q–¼&X·[»ÉMsè§`°Þòøµk¯Là0Œ8/~-4Ä4Åkf÷Á^¿€!8¯Ê>ì¸Wµ‡«—ú ¢Ð<Ôç¶ ðET‰3~è'íÉý®ŽÄÐ çñ!”Zá+»o°|ÐC ?eZPû¥Õ*Å‘kšÎlÊ~„XˆÛ(Ó ±îûË—ÿŸ›¼9ÿ7±‡V¦ë`­å…0¦˜Öá j9þkp.1ÿ)!¼ÿ$âŒÂ„‚e"(Â7 \ MS¢7#ÐÊ@Î •±¦´q¿I} Ölö ,Ÿ´õpoyªê^ïiõ8438…¶ó[Ih>[‰‘”ñ–¬þ2.ÅéO:)³=ý­Ñwj’ËXïû[Z%ÎL'McýïÆÍ°jœ×““N#Ñ• ß«ä˦M&Ò'uêÄQ•MæüGz}s Õ\Fõß”°jÿ©•·JaK¬ÇÙhD¥a˜¨Î‚æ69² B©:“0“غ.ÛY¬BPˆÍ%8nÞ¥iß'Cú!9XU L¬›ªˆwu›ß{¿`é” ZŠ¥ „­È¿‚V~J eæÉm¨+L_“&#/mµÞ0ñ+¿âáÍÓwã¾ÙHÒhæ­ BBÙÑÆï NÀÓ! Šé¹2ÌLþXÔ(ÎМ”Jê¥l¥´G¢ía¸Ô³U™YÇb’XÝòÑ…xƒ4g¯ÒB±èT¦ Y[7t%W¿ N¸f¶Šë™Èͺ„¥­ñ2BJ!Œ±­ã7¦®ÉEð˜Æ.‰ ÃxI+Ô¯Ì&PÐ[Ù÷Qº%ÉÆ5´6¥ÌûW1h·+؆ 1 !ûÕâIÛÒè15“¯|ô[â1ß„–2oe ¸">È‚l^¨Wg B¶…ëé\xê¹sšN>Æ:ϰ²HqЇð5¾~µ¸®Ÿ,Ùö{…î¯âžE ¥>ÐÆÏ5˜ZBØ‚þ7–É·óùáý>Õ6Ÿ)î§h¸ñ_ „d]G&À:¦Gáó³X¡ñá½_¹˜|)sûQ Wá:y /‘µš݇ëPû¿&wûL¿å£ç{wœv— Œ 8„~Þ!!Õm ±®ÿPp﷣ɭA=1ƒ29QKpؼþAUL Õ6¯qY!ï *¦<_׾ס³üë=7µ-]׈ª¦¬:W«1îR29¨%–Ð*‘`s±¾É›fQËÒ“æ`1uð©ŒIsl±îÔÁ§•ƒ VPLo\õ:ÂVëN½)}Þ¿ËWøÝàŸû¥ÌfŽ\›¯“` %½6 à h}¦Zí©¸ þ1­±Š•^S†Ø°ÇG¬É–õfÒ{Ê>]iä:fÂ`¤ÔØ|˜-j& FÛŠùwcÁ d›øÖ™nŠƒ¸Òªýýw£!àûúO4Q,œ÷ÎÚ”!zÒL@£f6ö«A´ˆãÙË6-„1Î 7´¯u=ù«@‡Áéõ¬éd º=2|Æ·a4=yÛTkŒkŒ*Æw| ƒÔ 8AÅþÃXåõrÈAP±ÿ0Vý®L-Œ¼Ë’ –ïÇM|iUaÌCŸyýMBÅ™•é)Hë <5j¤ìä;`ÛÅ~àb)ÙZ;¢_ò=W“‹S 3î‹…ÿv9Ç™Ck†Í¨NÍšÃë«ðZù˜NšFMïoi0N`uþ€Ôà­/ëqÆY‚h˜ÁI¸7³!ŽÖQf›ï?‰Ê8Ó2ío!Ìâd8­ªV•U ðqÈgšÿäÚL¬rÖ¢Ð7‘ÎÊbç0b@ó±Fµ|æ~,|¸õ¤é$´Ù0Ä–œq†i$ôàWŸX[Ó§Ž‘àˆSÿt˜ Ù³#8³‰±L¾œn[+Û:øj&‚(ºÝ´øÄ¡‰:T­z´g %8Vþ6Ívš’79,Ú˜©p•(áf¾Ü.m›á7<‡kꚤ y•ˆðê#a™sÒ|e ã©gtâÔÕuKÉž·rFªdei³ðã8¯TT\³‚³@aÀB¨8ÚQÿ+()#f¥ÿ e®|»üï:›‚Ú«Õö|]ÞjâIhí’‘P%¢êç^ª/[-3öþºpÊ—Þœ?ZŒô/‘ *§Ñb¸Þ[IU¶Sk`$"þ :ZÊ$ ¢"~ ˜ îe$TÇ”Z-5m•‘P••ö›¥%$OèQiж¸@„¤õ¡Q`ƒ¢¿Ý¨9Óõ§ÂFÎVóW-pË·g2´Û^Y¶åUðÝO àš·kQÙdF]Ë{µþ“aô:-)T ×WÑ#&™ª~Gñ„¦ªƒÿyVEáQø‹ëáÀ]H‡­b¥XB—¡ ¬²ü5Vþ*šK³yÊaD+?i„…`‚PæÐÒˆŽYæÐÒˆ"}&¡<û4µ†Qͯòê$¯_!M¦tô{r|£<!1 ª¹ù˜‹ë‹û3BÌø½ªLy¼íÝ®–ÿÀ¥É÷muªŠr©#mÌTV¤f9jbÉOVzÿ¬©¡ãJ“ÉÃtD%,…ÿß4â%ÔžOޝKˆùX-ô ˜Rj%ÿ ˆ@‚kÛ÷÷úWø‡'à‡ª®az¨¥A¢…ŽZ„éC&5˜zd%)߈ñ½°rfh0L#cPLK57/5¾Ç4b—iÔ§ö]h¢j\æ®`˜üþ{×ä$8¥ÃäÛi2aˆóÂÝ­Zµ˜Ä¾ª”GsìÇ/ØÏøá9…´Ÿ[|Wºæ•U3Ž‹dþ•üªÌõ„UèAÜU€m ›q8LÝWpLε¶B•0$Ë뽬ÂÛºªcSɹ2ë½Ëˆ]|zý-‡Ÿë_nƒ[™ŸÌo8ÉÌ*øN×ä|IM~-‰$& ¿A±H¯ô‹E´z_i0%u„Œ×î «ߎ„˜œ•(ôíœhMÊtCÀ9ë­¯'‡Tjzðßòþã¨æƒ–cº!tLƒ>k’ƒßÏò=ßß’&3ÎŽÄt)½–|zxsW+ÓïLéÉ vä½'T‹ÇÁ%; Bß~>ü¯Ç€ùËI9H>f¬½M¾M¾õð†09ÈTµ¬¶¾œÐŒA&‡Àd.*WGr>J££é«É!ŸšèZˆhÁÍXO¹Ö\R¯ÌWÀÌÇj¤Ý¨á¨GÒtƉ™é:µ2cÝ|(Ð|æÍLž}ÖáÖëZ¨‘y%yop=&Œé+u ‡D†§ë Ž…ž<1¿/M›Zi!§-N öÝeº%4×'†þ=eD;_Úw.G=ãhÇ4⚬›]ḂXÿ2o\YÃ’—Íw|•Üš×F"Áf|³ÁÊjp¥ ?Ÿ–NHÁt1Gû®£ÿf–…¥ÇÉVjUKDàÙx­æöŸÀÏÕ1´ªu+¡3ãÀPŒ”Ò&¨˜Òð]Aµ¸ _áµùÐyEÚ¼‘ÏOèÎ8p'¥tX7(@§½:!¥#+fE‰iRÍæÛ0Á1÷ËUã²Á¯í¿^—0Hç?§ÂŒ…nŠsÜÕ[ý‘2Ír¾4pMÀý.MYË 'aÓ×J³êõèÇXàý»`Ø?’„6ïT\¡)0#Û†P3µâ«É„Æ®¼ÁB;iCëo\-vÖˆ'4S‡¦ŒºX¥¸AÃ1jÈÜJ,œÒ Þ§¯'óRjsak².ùB8w1¾÷û»†ƒ ¡ver›-IÓqã3o]µ RÀ4o9 AØ™rftÆwÇárv¨R&°í“~Ãj(£ö0z9é5U½‚+ž„zÍ0ëý»hëÆ¼®W6ˆkq—HWËk1?zß8Aµ½cy '˜!HÙžBËS˜Õ¸FBˆEcRþë M]“4Æu¶’ÛUÕÇûß"ôše$ï¤Ö·Lé^þÓþ–埧dÓABö/¥%s¤|Ï@Fà*æ'W™¦'+=2jŒÂr¯w­‹Ï4ºˆ›-„v)äñ~t7@m¼ŠBRCyôSVkBßñ]3"ãÊô£ÁU( ­«U9¾^0Bfù#UÇ÷«€÷VøÛÍ»½”…™:ƒ”šŠ3€Ç— >ËSlIuÀÚ)À?ÎJ…õÂ}ýJ3<€/ÈÖ ^ îïÁÜ:ÊuMéõz+pA¨}Yñz½]„Ҋ´ nöŽsÍͶh•ïÇŒ‡ù²:ª0ÌØùÀ8ËPTg¡’®9iÕ84ý?F N…¦Ž‘¼–ãûÆ/‰<ªŠÖ7 7fÂ,KÔN‘üËkúÇ&Üž\…q~³.ßëhé<‰Õ8>,U•ÓÎçÛÊõjqp"<8.̧^=_Gj•”‘¼þ$Ì^v"¦lÛ (Œ‚ŒôŠ23ùz+U6õÞ Äw«¢{iõÙ«q‚¥¦U«‡/¡Ô~ÁROh¨µCÔÎòEœ0©éÕZ*»K¸3¾±½â¼6µ&ÎN ýù]†C¨¶s¦r}=МI¸&à~e&aÔFÎ_®çSa80F×åÕ—"(6^@Xfމ rÐïÊüêëÆh4õÏöº4õ~Œ §kgÉD¦W¡gÞŠæÜºþ"PÎÌç“®Q¡§\C¦ ¬À´ –^C—1Âå::Åšƒ*¥]™ÝÚƒÚ~Ê aÐë£P;ž2¢ªªVþ÷“8ÁÊüóý•çÒ wLSvŸÿáh{cÄWê™üŒlðÄ)AâߦÇn°’¸‹L‰$LŸ®?…u¸.~LÞ~5 '„à1Ó¬þ+]Ó îÊÚEM\ûËf댯ZÏøºrî/2/ð8 #çR?M»‹«óú-¤|JÄ¡èø@ wî‰xrW¯ŽïØ’aE®õ›·(l%XXš¯CÜ}Q%¬ŽÖ}/V¦ÁÁfá]½µ3LT<‹=Œíè­B™¯ Ä4#1ø§j*É'«ÌÏà£:zÂ\]Ä]Q5õå{ag—<½›½>l®#=ìÔCËïÄ']ÿ8Nú'4'Õþ³Ú?üóÈßž\7œÅ³ ì(ƨ‘=;ÉÚ+pÏ¿?X~9ÊëGh;+D{4qª/8@öp;Úð$¢F‰!·Â]d%ë—]ìz¡­)bõ¾V³Ä؃²Ó#øY›W–Íä´8¶Çóè±ßE²…+xV „°¸¡Afb>ͽ“ˆ®PüS,¾›NŠ2ÂuüëǶ-µÝÖ‡ïßå{â4FìÒêwuסHë«7Ÿ?jÖ«u©ðiæÊ¬ñôº ''Ë£ B6XTçç$Ç8¥EP+ÿ£MAƒ°/|ù4-?&üÑkÀ¿ä„꨺Øûô–ýá×йxhȬ F®‘8M&l神Ó<×*à§iFÈXÛ}ñc¯ó^}Ë+àÛè Â¨Ð ò‹ 03¾+–U-iô&î?C«ðäS‹Aqd|šN:ê™øûJ´ßq:…K_ùœÒˆÄå͇¬4ÈGœÀjSÀünL ƒ|˜þ\Bõ¼¿Ü_÷KûL#×bˆöa_µÓ =w +fñ=‚ÜfNªVLâ3÷óCZ€¾EPráÉKªeœÖu¸ Bòè÷Æ!‹çrȹfa©/¿K“í«Œ°4Œ„øÒkøïÃdv%p8®C5’‚b‘Cqmš˜ø1ÎËõÕÒ¿qèdQÕÊÄëdºÇÐÑ\™OèÓ· û~Ô°i}ÿ¢ý¦é¾ïÂ) 1û02‚…ªµŒ¾#­ö±1yjU“ÌšPœ1—\5dŒ%ŽšÔµ)óZ}Í´õGvò^ÖšN‚0°GEêZe2—w@ø¬èÞ[vU¢¿âó û,ß«…3÷Ž}¹“t¤ad>#ïŠÕ½§kÕª\ V°Š[6±rOxÊຬfÏ8úb,Uæ $€l×´G-ÿ­úˆæ?j¬èv/~p6Ü Â'Skw¥³1´ÆëH0ls*Óè‡m$È<'8Q«¾‚Æ› A€m§“”†å£Ÿ¢ošÖ·[Ô¡¥‚Ô¯ªNJ×ÔaZTs¥UvÑ Ït‚’yE&ú®Q#;Gý• „*izTÕ"Mp$¡˜A°ÈPÌxjêã¢Úà×BF?c}x-KßPõ&aßʬ„õ ‚V°5×ÏWI1¿rÝ“×ë­ñùý´„ª™F\¥5,‰Œ¿ ,w fN©ÇÆ÷VnÒõÔ"^Ò¡'^þ¯ ¦é-¦ùó»Ò€U‰Ê¸¤[WøB^MüšóÖ >ÐE$pL|4‚þ ùº˜7¹ýCا›UúÔ“ZÒó„Q‹dŸŠ}\ËüÔGï‡ËøŠíøØ¯'>/—™+øÿr®»fH„Á Ý€í\Z",Έ°f'm¹kØš€Ç Ìë”i†*c°!ëWw+‚†ÁUe±Ú¯÷Ú˜‚ ˜!-çBûK¬ïCÐÎÅG“§²!h'7æ_NåæwUÓ@]ì7DÍ/—’åzœ>`†î§©™SCÕ±4økùü‚Iœl™–š&D^ï ˜à™©‡F–01ȳ˒¦:™wÅ[K^ç"Áä_ðŒã´F=m®÷ýíè‹æª«9ñs(²¢È~W«7ãÿj’J—NÀ!áš8™3' &º÷#trBÿ¤- A 6—ZMÌdq W{R§ñ8T¯Óëu®.É)íZu'â ÉÙˆÅâ×Q‹º//ùjŒl“I2€2Zlɤ>ez@46н¥–Æ¡/³ƒ$ËD]Ç4Ùûª­}U¥d}Ë€ÖÉEðd·IS“)µª‚“Z¢xÑ««ñ+cåО0‹“'õš26ØÊ9 IƒßhÑ ¦ø~y)ŽèÓ¾êƒÕ(fÀ Õ{®*%aÖ̹6ŠÏÕ'«IÀŒ±Á6asüëMÅÙDNBi°nÁ84FÔ´©?Zõ*0XjLWU×+ûzûÓ#‚U¹Å•Dìì,YâK­vúž„\Á¡mä$eÍÊç·Bí)DVÔ'´fiøÑ (¥ªˆ–Àµ¾ÒHªŠ¸Z×úN#©*ËWp ÒdÞ-àÊxjhÔüÕ tX¨¶¦õ;µ~TÜÇ¿ë«ä930`ŽCú,Ó¦#Ĉƒ‰”®EVÝ~ÃUC×9Œq³&ܺÑN«1C抮aº)>~ó† ØÇÏxv«tÆ‚Cû{Θ\˜&›ë£L§$) Œ•@‹.azÊ/ÇÍ¢.‹ÈA¥Ý ³ì§šI+%h€/°ŸÚ’áuVºZž—{#u¡'D0[GW‘~þ%Üä›ñVêýÙWs‡íe`:Òö3=P¦XOÛŒDL0é,Sg(„Ùã\©€1AÅÿæ_ãË407õt,X²´1uVä×—nÓÚRª›ŽäÅÇŠ•á/¿^ì‹άX¤_x‘ïûÏt ? {ÀV/#Å™z’gœÍÇ &m-xP,hÕA írß`mdkÚe­˜b£W¾$eÅH¶Ê*ýK]æ¶ýå`ãØFm—’ãõÕÓ™q¬¤ÏNµÈvgŠA”tPôšvÉf<Úßô¼žl³Sho:`¯eÙÞÄÞWB‡Ù‘¯’÷Ç[ËÂFÛÅ`Žužqb¥fU²Ì(*Ø6ž4«’e±&‘`@r¡4›%¢ÃÔã@’UÅÛc§ÖÛùöanÚ±hßm°Z­JWÐÚ›~¸³e*€4‡aã@³š:¢Y®’‚ëqÃÑHJ=¥”X uÓü?Ê!wX¬—«eDÅ3¹5Ó¡ƒ ó#&Y­«–¨žÂˆòEû®ðÀ‰ŠãOûŒRYZºÓ܃¤`5ÅC«`†çM ®´Aè{Ó`¾šp´ò­_i/4faf¥Ø` $×!;¦ìeÔ˜ñÁw{ ì8³ ™ „¦3œdð_½Ôgj‡…Ñ1Gþ˜ÿxk+¡Æ]ÿÿ®2£#(æª@æÉä©Ì 4Úò6#×W0BVA¥ý\u†@– Ô3-W&°^Ÿ=ÃS›3¨Ç\ã?uÔð.×…14gj@‘|Ÿ«<+ÍŒÁãc‰s}µíáíùQ0ÇÉш°7ò1t:wø×°Ò„Á~8Ñ(%pŸYö3ÿ^ Ü(2ãofjtæø×ö$VÕ(Òçû¸qŠV6eÕº†àL(W*Y{³}⠘˾öïKgýV°*ÿÚV2øbÁºZÄ·¸“+`ñ<—0rq]0¼—ÕÁ¯³ò1<­ÆêP+ˈ]’‚¸ þÜ$16Ëüž ßÔ‚‘äÇ óY·s± ¬­ ‚i°¯Èï)H§hh¯ó ®;§LgQžÑjä­šì@+i¾ê±ÚËZe§-­(¼u²Â¤Âc;O$¾,*Z¾¿Z„éAý'׿•º7¾‹JwTèðV2g ¥iÁ·Å_†¤ÂÊ@ðÔ`’ü‰L*N†2øgº&ÌfYm€Zg¨‚lty* >š30aš"xmêÉßqá íÐŒæâîxšúW¶Ÿ&œüï9†^¶‡6=ÝrRâ Im£Žf:C&œgñý¤lÓ¥Ùf@4N‹Ô7êlªÓ<ùÖ8Z)'6Í ‘<6p0°›úN‰®üž ÷Ú‚ø•fc‘8:( ÷r+V¯n8Ÿ–q‚ßúÑVXm´qiѵÏZùÔa¯µ_u~Ûÿ(½ û£yré¨Iv¬©¾/}ç8ƒ¯Ç¶"î+ã+®’A-H6€#à \¸¶ tqœl§ñéa/`í´öЃÂåçÉ”Mƒ ‰³ÅòA¼xœEò*|DZ¥š<õÓçï ´ÖÒå2Ý¥’´ûáLáaÞÜnƒsiØÀi30¥0tìá H'$LjÓÑfòxèõ"n™ÖœEwl¬>Òþ†îž“¬©Ç¡—âBN¯¤Ü(‘R<¹´„‘é°¡¿å8Ÿ¹ðâ.w7Þ2â6ÐUteà-¥ô"$§h6Ø«Ùÿç:rœ{+W)Êb‹G#ã)+> ƒšP½rä`‚hR•7'ØKÆ(/=&`¿*·Ìî'¥ý[®¶ìar€ 9˜Ú²`{ý­¡³‘ S¾âíW[‘c·ÝVœ'àw6ÞBÉWñ€átcÌüÕ»|kH¤–‚ýÖ j¦-Ù§,…zį̂ŸŒ8pêfÏÛûgqwö²깕…÷„þy¸Üƒ;”÷ʱñÊdúd 5G…*›¹#£ôH01 i¨FN3Ê?Ub€ N”Íûy>Ú@*À d1×å>¶»\ÔÖú²„Á>sOŸZiƒ€>íÒæüî ™ëlåðû$.Ù YøóìÔg`hÙ®RŸìŽl,‘wÄi+f£}Í*‰D)p‚ï1Y•=ð¤4é6È=’·m³O±ƒ‚êÛïÎX›°Ó £pÆp˜*2%WÁöÜ”¦e§ŸðÇ”Mór½]·±Ç$T(?'iÆ¿X}{|5™ó¬G øóÔâ|ÏEã˜`0YPSð>êd 1íøÝ5« fœ<2Ù5B“Œ†q¡î’x#¢€“ëNø7Šä¡/ó¹´#¯H—³Ên]&þæUÙEú3 ™p(‹Wlþ– .ô̾ŒaöØÑÝW¯Ìz-Ž‚e| húçÏå›i`Þ¹ –è¬ýGð2±xËÆq*BŸö i‚å8+"eÁ¦–^ÇRLÇqÝàö»EÚô\;2ófÅà`ÝS.dVKΖyŸë8¨a!&«Fyg¶zœóæª}Þu|¤>׿2Qâ½5}’įVב0Œ;½ß¤VÖ´Œ“q¨Øœò ê¥ýz–ŸÛf󪕣‘¬Ùɵ8Û2a2;¾`çˆâ„ÄÄà0Úýn¦Ñ ]qpÌœ­áÚ¦A›ˆ‹€I…5 ?uÃl5ü¥ÙJÎ#„ _¢Óürä ¹uX¸f4è ç8gÂþ¹t3 MÉY½£2͹¸“hjêkÜú]‰ClŸYQvrÖ%f“&€®[ê>ÏRQ{™FÑÑ7£¤&LsÊfWOf½u¾ZôN†ñÃTÌ3iÉx´€]7 ¢úÆX¿ž£V‡-bÜh³Þʮɣ8 4­f¢'XÇLˆÅ¹‡bÅ@iR¶A¡823‰2J¦Ô^ž¿Ò*ª°ë9Œ…QŹi56{º9ÎÕt’ЦÕceÔ“ƒlEI²­XŒs„š6óýuWœ•¦‘ÄúÊ÷Ÿ¢8#A¾É%»¼ZuiŽ2ÇÈÕƒ^ÙOµš;/Ô9°Ük’*žõ“‘ž#«h1ÁJ_,ãÚ¦1eOšÎÒwth/”©}à ®ïo1eY-Agqí¨¿Tq'ÛnYôr}±»^„ãІŒ°È20°¾(bÛM 5HÁ8²ÌY#q+|}ÝGy îÄ,òñü^øñ Åäw±Ê×ÚÕ ùáÒ|kÈÀÎŒãdºŸ¥7Ä ×5h(ìH"#AV>z Ì—çU})ø‹ækÞ,ÞTYš0à1Ò´ƤSã&XC•Áôå*±§ƒç¿f!Þ¿ë®ù”}!TºfU¤“ P Àg*Í¡¬a’Ÿ‚Èó¡O¥½ƒýU%wQ÷Æü£i²øá¡?ìø—z¬Òb6o¥V5‰T£ûH…Ä~ ÍÖCËIöBÔªÊr³†Æë°4H~2ûøòàwõJ<%=ƒ[Èdœ¥7Ô5Ìÿê©¡CM|–•‡u«±Î†Œã{Šu mž«jB2VFM@É0qJ<â̇–!_×  'ã,™Ûyv­ˆ£`¤Ø§ymºqkÍÊy<Ö>Å ¬£ÕXZ$ø^¸¾‚†ZœÍj"^›XˆB½‰úQ2ªÃü S¹$c:·2WæC–ËäÆññ.G=ËëÌç—ÉÔÂËA¢4hÝd|²ÞXóÇEtÓ"ï)ûZ˜¤¤Ç §†n„ÍÒ ¿¶ž[ ÈX¨ŒùÐà-_#Ö* DÐ0=X}Óá3¼ðþ•rYF!P­s# aHâÇ,ÛÔ6ÿ•°Ñ\×*Øùþžä[𗍵Âü+p/ç\Aw¡ÌgñTj™uYkó_™eº…“,‹ïp aáf‘ÀSp8\TÛeÈùz+„Æ ª²þm…õ8 '‰9]’+ B‚Ió?¡ÖW r|†ÜQ/Tp Ú<°•UµÇùƒ8ÓQ)~VM©û#m±žëºL”€qoi‹8b"³ ëßµ™Ë(«€O3c%‹Of½3g­x5jæéRã$ Ÿ¾—ÄEÄ ƒ,SÎßÍLø‡¸´ÞëPðF hÑÁjfÛ^WDsâÆ{ƒƒI{Ã娥y®Cb³Ââ“nÔjà ê–ûR-7ö'³L‡µ•¿Ÿ‚™éÿû?‡®ž¾ˆ%éZ›ÒÓ®=euL"y/¿jyÊtoÊÜ•SW& èÈ;£^ÖCûoèÀ„â—ÿìŒMùÔµx5ÙXGá,*&^ßõ €ž‰¥7)³Z=$Hr«ö-½@¥ºïý«Â+³^Èè« ÿj9‰,˜hr ë5£a~7¢@~Ù¯TÇ«S¼ÐJq›3ÊøŸÿà*®A!ñ¤›ØÓuOÍ¿_'šÉen0nI<û8×C&ù€/ ‹Ý*2Å‹gÕü^ß¡’=Ò )£ùy…ã/óYµÀ‰~<¿§"Wª‚ÔRr=e•WKýŠ×þ­‰ÈñY‰ èWµñg—'7jŸë bÂÊ’»ºbàô€N£¤Ö‡qS‰L?ŒtP¢r²½(†‹0ËÔdTV¯å M"U?pŽð`l`%âŸ_å² eJÜpü§F½Þ²8زŒÚ©ÉñQyó/›¬©3 ã[Sƒ»Ý$3:¸„¾X¶wûöø™>»{&7ŠfþW—Ÿ€—Ù§*=óÀ¢Y îjX1:>mk9ëº*Šv3:˜ ó­M|#,osþ§R`c«æÀ0ÈYR½l’ÛdˆÆi“•9Û ^—…¼ï _8û…jéýU—€@£WGs2Šˆ0ËHBV)Á†ú<—c½AÇgúÚY4»_-Mäö"/ Œm•iïG-  x+–ןúWK•·Xû¦_Ÿ ^añý½Wku‹„-‹a{ \»·>‹§kÖŸ §[Þâ3`ÔÓ룴ì+£œ+—ÙÊFÁß.‘¼¤Öñ’^°ÂÁVù~êÅ1´#,•ªÝâ$ýcgÞv¶ÛÝú)·"±î|Kßõ ‚PâóûoÃÏ4®œ‹e¸íÏdõ¿H&m„þ\¡–>ŒÇ"P À@`ÒBFbùÊâëdzÓïhn@~.¬³|Ï:§üq8>)3NâI€ã0l&H>?sî+™²o¯Œò»Aasý+»[f1»3Ÿ@¬ùÒ·PYéÄicsCeYÓ¨4é(ÍèyO Äy9H9¼xSgy4Qxìê§㱕ƒHYÖˆÌÜЇÀ?Æz~RŠïtê°‘nß"ø„Ô–ÁP6ýó&âÍ”–ÞšUHæ“tØß )ÉIÆq0[+/7¼ÿ‚‰qP©T¯-týÛÃf9p)¯¿ ¦C®S2¯p¹ü£\yÔqþ × uúÛ¡·tvœ®¦&Ù•Rn¥4np¡}a‰Í?• ¯!\ãÞc½àßr91öS©7DŸ×¿Ä)_qº³®›6¤ų ³R’Ìù@U7 ñÉ^–qŒ…ÄP| ›“Qñ¿ùWe#ݼ“Bœ¸¢/ ë;G5Џ.e=eukå ð$Öª7óÀÊ¿9½HÆ~fâΪÛr\|Ø^Û*&£Ì9U ÿj&R¼Å=(Rl䚨¦zŨ@“PǼþ]ð¯&¡Ix ÎS€18>þ7ÿŠZXåæ*ÿ7ÿŠÿpb)MPG'1jêdÞïBLq]7Rz$$¨'âÍ-²þ',ÿÃÙ⃫¯Ý"Û ¼Å. À(°—K;)Qøf–•Leä)0ËC˜Ù®_øî>dšªü.…7j~ÊÁÙv¸:J}ùÏSÜ´$‡ØÅÂÊ*Z¸GöˆrœÔÁv)NâyêqfŒ>‹§íð‚Šæû•(ÔõA±b2wýÐ=O-í_´‹£dй…ïÚØ¡Cæ8Ñ2 :5òÿÀÚó5î[·Wì&>9`uÈ„$Õ'æòõtˆ:”»¤\µx,(W|”Àuíé2™` çáÆ8¥0aéɾ|‚¯C¬0ÆrGÚ´Þüs&…0õ›’ Ðr"–*VyÄF¯Î˜Ñ8×ÑY¦$y¿%3Î:eQ(•A«¯„È¡$‡œD6Ëb™åc§X)%1ß?Ó»Ø>ÎMDe¢ŒüWµ[|qÕŽ_P!ÂA''¡$´ÏIŠÆ BIËòh}¦ß+>ç­$º¶å*J MÜÚß|HJN¾&¬8|’AÈx›)d=]‡{¦'L:>ˆ}‰Š’ï§ÁRSÀ'¤®i_„bºÐ&A°óý«t‚¾âH4°ü’'¸Ù2MU`'ØÿtН`Ù#já' ÑpV»n¹€”^…§;Ç·mñªn0üÀBuÎ÷z §¶¡CZ_ÞßK¬¡.wMUGI4µ¥…l+QªK<šFQgú]Û‹î þjo†Ü¾¾ÿ)uľý&Ö!ª´½Œø¨¿Úº»¿Ì2W|2ĆÎJÖ¢Þ¨[à×A¢ã3ç׋ð8¼ï„–Ç'áÁZ? cvmÅiiúGwxWý-?ÉÞ¦ÔA¬¶jj*b ó2œ®8zkqð %»º.F9l\Àæu4ÝÎÞ:êž™ :‹Œ`%s¬ß¼24ï ý –¨šoªëz€-øl-üþZ`¯cG²&Ù;ˆfªãÎ"S›su€1ŠOýs :€ÇH¸q©‹…Ç)=ýÛdøŠã7y~*¢OêùÌë•âåÔº\Zq%”‚á~}u0 ­§ ¦"ö\ލ•Ñß%¡âq«ÂJZÖ·µæ[J¢ƒ¹â|Kæ–ŠàgW%æÁXÜzi=ŒÆ0f =º8àè˜ÁÁŠSÓãê\òpŠÓõ¬kq%ZuE©)â‹OqR"éÿ‡¶µuôŠów+ ÏïÕøåÚÛãÔ··E͵óó,ºûž9äÛŠ#0±N‰ša˜1ÿ+}ˆ€«‘bÙ ÔãH…Çb§ ÈIЦÞÚ‡Ù%2Í™ˆÂ|eVÆJK]EQ€~m•üÌøjJ/g­h´¼=DÆßíü,¥¹2áĬ xk®Wtž^óæg&3»±&Ë­ß²Ç#óñ¿š«uáß>[œöcúñad4ÝŽà¸F pÕWÛ˜¡yÎEP a‡YHjf˜‰U¢ž]0LM =7óè<#rÖ‡>¬˜¤{4§<×j3Ï I¹„“§pfî o ñ¿Î_†ïO9cêcø’ L áMgh19á‹&A^Å P§ýÂkx‰é  ¢XrbñÕ%¨U*`÷Ïv5KPïVJÆ¥õ–æeêµW Íüê!jšV3H´2踮yÓ+³‚øPΑëÿ.¾M¦ÖÑôPì "@ïÔC 'iµ¯”š¡WÌ™õîÏÙdJ Ÿ¯É¶ïøjˆ„sŸ÷Ãê³—C”T±hžú¥ä½OÒnžÌÈ•ç˜5ë5˜N¡^¿YùC¼:NõËW“IX^gÔ›…%Â%öe9!UŠa"ΘîÓœ>ÿ-!é =´"°DCIÍÐKþõÇeCPV¡ÉçŸâ2€#œ YíøÞ¢)€@ùøKbX©`\‚u s=r @µ;u”uH}¯÷bˆC¿Ó}ã×)øû4mFj †ƒUBú´?£`L˜ˆ„ý³L`šAã—OÎr¿eËøÍ°ržš2bd†—<Öeq€f·‚Ñ W–ZÃS•Ì·Ì!ÍœëwɃ0ô¦ÊVDaxHO3Ïò+s…K¼9!Ô€uf¥.eaÚ³í_&—Í=[CƒêÁQÞ³FÒ½þ]]Á°F…r|ømaë¯æ ‰i•Áö¤ÑËtñzfêVdØâ\üòýoýá7¯Bþ—ç3õ¡9~7wbÔÔÏWöë’»_^à+īƈ^Q7•BÞë ù<‰ä8‰”‰sj1“ë'› +NË«–1S«¡–³å„_ð•2û»y3àŠC‹Rášïð¿´•Ÿ›ö$Ð¥pC|9]>›ï‡¨ü@í99‰T¨ÇžI \xÑö%•Ý–+S¸øŠ•)‰»!R¡@õéŸÁßBÛòæü_¢ê©€Ð0šXˆ#ø¶·}d¥âÏGÎDëi”‚ðêÁÚz߸2/ª“ÐhˆÀ2öSÁº£Ö<ðä«Süú¯hæ»ÎŸnj…ºõ¢°Ç‘x½× ‡Q_èMïW—NÚêÄÇhìý3¹òR’¾Wœ»Z4 qÆO²­J­˜E¸81Ô‡(8ÃñQò²˜óÚQ‚1òù3iÂÔâ¼¾4íÎ9RWÔ‡W¶9œã?©<úe¡éQ|~qÓÄÙiÄ é{¦é_Úúï¥öŒßîfæ·OšîÅ ˆˆyïBp¨"$œbmM^Uü£tz}”aÚ~¿œZ»‰ \$¸³ªõ™­Éøè¸ªáŠDF U2sªNš¾Ä[«q趪’‚Ù+ÛÕs–VO3Û]XÔkÍ·úV:GO½­XrAn&ÜßK3{ÅqTÏ;館ñǰ®f\A¡ªj•‹Š÷*_£Hg*À.3ûêö'èVqˆQGvÈ„[¹X“cIiÃÈË ¿j˜h@H«:mŸÏ¿âº>r+ô:2l¡`¤ý á:l^\Úçãø¢|È«þü®xÁ5LÃpż_.è"«µ<Ä e^\äV¸R¬ô<ëÔ°ˆÌóGª‚„58à?þý\i¿U\Æ~ §ÉêßýeSP]lM§tŽ"B3`dšä¤‚$ÞÊI”V9~¢.æ~&„Ÿ×>XúÑ´6Ÿò ªfÖp~2äŠ 9dMæ*«|Zê·JœÀ*®ÿL]­OÔ¼%ÓÌÁ/Ö:J\w ÕîÇAœÂú¼#Q0†÷Ââº$µÄ{_¸Ÿ©‚Ú}þ m_þÑ*/±Ò=ê% çõýÏ•)|A=ˆ‘¿¼ÿ² ûà ²¨†P`ýYw:™Íó¬C÷.&!Ép_¯÷3L§*Ÿ?Õ#B…8Øø8¶±êñlI·ÕDrããë"ô€Ýe³3 ÕÒñ½—dô°‹Õ°î­™tg'NF¨èî[ã®|þ“aâ3–ÝjªGûµoÝ­,mò¬ €zbá¾æ4%°]ÚaÞ?|¦ªz3ÍøÞés¤F»€Ä´j±\Ræð,Vµ|땾¯ÙÚ + ÞNâwaÄàæ¹€êbµ]šð@uÉZ¯dHœ¢—VÆRá*ÇÆƒßweòËçŸdÐGo¯NÓÜà„ïИµÁMJàF–Eäª4”¡¸¡åÉÕž÷¿I¾8@o}ŒÔ€êÐûµ ³PdH©U&‚OêæG†ÐÖÉÀ7ýÁz\c"œ çÕ=™\W¼Omx!®v>/Ï*M~¢êŸiè ÿÓƒ@Œ{8yØ„˜Ü  Þ’dÏ Žœ1cã«… ïGÂbFq¡VRÌz>&¢âHL_"GêhËt ~tcÍ~5Ð(Š›( ÀDtOΛ ½UשׁP—v‹ø‡{R“VùîKuVÝxê)ö!É#À¾N$M˜ÉJü¢gN=%`¢öP/çj¿Ôyªò8>Óûe¤š'Øöη~Äã$¼Þ’§ØêÃ2"ÛËo®¦uv” 1ëjV¥UfvÖÝ£»b}þNðhì£Äü»þWKï´Út0­b©ý¬ª{ ë‡ÿ²Òæºùr~±›?\ó§s'b7@…šÂ¿*PÜìMÿ hĆÿ\h¯¼>ŠqT ý-mXAFòêûGrSÚ ¯ý•»^sÖT¤ûè~®6åûßRœvjjƒø‚°Š®ƒºê8t®é²ÍåòôI[Ä2â5SUš·yñ%´¤1[+žz5„Þzí©ÒªèQ‰ý“VCÂ=à;þ×WÌS ŸJ2¡ñž¥˜KÔ@(XŠï ¤–V#>PpÝ8+jö•©ñ•iUtÇ/àÞšzŸi¿×˜û¢xõëp~óÆgò畀Ϫ—$!a«Z™6“Db"1 [ˆ*ÒE¯ãAÀXÉ6þdŠ2—üå°;¬%à=E:u‘˜ºYCÿÒ´ð À pÑñÁ…Ïë£þKc\T¤ÁfÊ@Ëëf*ö T8¾äÏ –VʺÎðû\ÁJ‡_q„0ãFöqCqM¼zöËÕæõ]0 Áöä*j$E†`ZNà&&<¿²¿Myøf«GËÀtø›’ÃìÀô¼u×4p=V—ÜË볆Âñ|Æÿ¦CZÍ€¹®¯¸”€Lwffý•÷‹¼B ïõ§`Ž1i&ƒNÅ|¥×‰Öªb„`5üopϳÇ¿ÃbÙõ_Þ7òKñM3î•ÎøŒŒ!ˆ*ãI©oͲÃ,›Ð|~ƒ ©*æ´`>6†­Ëãïùs ÂÎй)7~%B€¡¾ó¹Â*…¸ Á¬’);ë¸Ä 11×$ ØÑÄNéTòDt3Äf_d:2ª Þ¬“J=%5õ›)˜#ßñë¥)ãNMaKâÄ¿ÂC^-…Tü z˜Iö1uLŠÄ¿žûÉ¢UÀñ¸"úˆh߇ð•×j8™›ãü2L¸áSuŸÏ—×`©v\P:¹Zß³ËÆ”8÷Ïâ†àÌ$ ƒÂb)‡5tÔ˜Õ&…¸>jü’IÓ`<³nè0ÓIè—B”Øè®áwÄ•ZEuÜ+¿z“â È-Sq}®Ò!K¼Æ1£Â´&\:Ç!PùT’¤žŠ¹›ubjm\¹&ÉÌv޾Œr="õt­ÊîÒïF¢9ÓWñãŒI_Z½%‚˜pCgÏû'ÌÊñI¯4Äò(Ñ^_ Ó8-çý§ÈÊÇM=¬O•0°ƒÖ3Ó´ 8«.![„žŽ‘æh[r2ð,‰Àv¬´ ˜Õ¤:™ÆþuÖ¬@Zž€¢.¦UGtÃ$Q§aDT¡fÍU!5}¶_ýѱ!Ódd—‰QGÚ:ò„Æ‘Ìe•Í(°ƒ™ø=¿y9ð”C þU“ÄŽùBøN øqµ5}ª•~º¡Œ¡ñÿ9Œ§ì„Å"#Òã… lwmÛÕ¥ß  x¡#p[&ÞÆñ–înv5æ~\ˆ3Qc^"›3ÞVNÃÔ:ä½ì×J£Á1’ ¬->ƒñò@ù·þ²ÉqyÄø±©°ÓH’•ç_# %Ùë_Á80lfÍ%ØÇº-섨zëÕ•’ïB-÷…}Ïìk¤¨¢qq¸JâË¥ŒDU¯ž‹/SͼÐÀ§¦zJLÙ:ŽZ’6™l/ƒê,31`sz±Àä<»¨`Ó{j ÆÛ‚QWb|Æ 3ÆÙ“9>ìo È*¡– Ÿ²‹ðÙÓ—_¾¿#–zU‡*\-_Ý¿+al<©½þÿB ˆ»íÿdW÷Œ,ù㣷khÖ¹25²–Á%q<†I<5G61÷ÈsMh†vRDfëŸr*øŸd;¼èþ@Áf‡ÏÿÒ¯q§¶–Ü#¯¿é,Ô‰ Ìdæøf‚¯³Ìp» ¡îІÐDJÞ¬”¬Î¹ÒhI&°`¡•ÁËøäêpå^a 0Æ×‰ä0*p"<æ5ÎñL¬»I Ü€ N>@œ€ÁVbòrŸ|5I†Š5Ä3ª.œD5=z9"nÅ”Ú'šüRr™u»˜âÑÕIoNO{÷œëΗ3ÎÒ‡ ʱ¾ TlÝ )6±«læÖN^'åŸ $£Õ =È<åÞºê2Š<É+ž>@5€%‹µù”XúêÖöªðRÀö$äæW%Ù&ãì;Rë$¤CÔ™Öͺ¤ÕM0¥Áþ´²‰çL–z¯í‹*Y%àã_ûWúá\‡¿@­!eæýOa•GwÜyTÈU}­ý¥ýQ«ˆ>$FÈŒÃ>4·é”ÝÏ HÀ\«Mq…õŠã¾2«! €£"u(Íã@Ëœ?Ð>æ@g`™U¢F…‰ŽV/|„×wšaŽ?h‰j„˜@À0YþL-ó’—e¾U/ù Y¿r>0™ÜÏ „ È·^Mî/44E¡&¬Úé_O.…ûjh$"hÝÎñ‚Ù|k‚4›=—1)¦â‹öfõÍ–¨âƒø¹+n\j¿+ÎŒ¡#˜@ë¡9¨Â®;þÏ9 £]™SiàU»Jùè]Ÿwü²’S£Árü”ömñIOyYè¨ÿ’å8JÒ¸åaçF§‘Eo|ÄÊ&¹{‚Ë­§üÀŒæ¼dÁ­RÎ;@ɼÿxˆºâ1™|¿8ÅN<ÚÜ]±MŠÇ£ /Á™ZîØ{ÒŠù•ìÃYÈÞz ànkJÄ÷º„6‹}ú”Æ<L±·@³,3ºœ² ã_™Úõ*f™q†ŠbÙÝÂÖ)Ê™•ÎÐN7Ä×zM\\3·ß E˜cÝ—,_^Š}›±œb¬…[Jd¼4Ì>Ìã‡b(‡ÿ•Y3Wb™åW±_@9̪2‰˜ïÊcÃA²Aƒ\0 ¥÷•$#GjÌ—c¤Íªk«6§Q²tø›;Ù®Ex5¼[îWN À™O B5ð:Aƒ¦3¼Ãí}þ!¶U(Œ]æ^?…Sb/aº[Ú&4~‰R¯ï2C?´x)Ú¯²vÕBJžµÕ «ã,aÄÙ"U}j|2V²aluˆl zß’<áz 0/#›di*Ǿöa8ÍÈéCNb?NÊ‘L™×G’‘çH”'~*Tñ]µ7³H²cÚ7Gš´g«¿ÐÅê\wqsOWÚš©%ið›åã+±"Ïâ_ß/¯'ãœË(Maƒ^¨H@œ—§RtƒìäÒÈG'OÛBçN wPcÆ¥ø×°uØ¢úXÚ%Y#7›ä.x€Ât¦gÚ}BÞË%ïÒî8ËÓ‘&—½_¯¼u|…ªnî Œù};"­þÒƒ<:‚ÄêË©["l°2ýb~7@^}òþôuíKƒ ¢|«?÷ƒË¢\Æq›Ž/i,ƒaÈ>9«8C¯¸’4›©<šA8+¶dЛ³ŠÃÉŠKÆœ¯$pÇÓ×@pÐv i ƒX݆aZ!环·¿è$% 1ï§@†k¶Ú<¨îÈÌ…>ÇWg»(¸_u_O®ª<šÛÒ,‹Uq„ÁŠÓ32•6ýûð$Z…-»ž\7Õ.õUFzŒ¨ÌŠÚ+´Àwîú]V!Œe|—_âs!ãùŠ@ºþ*,VgÉÂ0Ô~%nB¿ÍKæ‡æ„P}‹«n ¤¦N†ÄVùU¼z:kóÕ_Ze‚¹ŒQ„·OM‹œŒ:f0#÷vùþ§d ¤ÏY+(¾ÿ­+ŽóK6[l¡ÀÅìICB!ä” 14‚iB~ç'ûÙñù®-5šÙ³ã¥ó©A"X‡þ¥Z×aí×ôŠØï†L}ù”¯¬K'ÌƇ¾Hãf R¼ éŸÏ•¦áõÒÂI^°nT°ÀK„¿õhœÀº—™t N>5¥‹Õñª˜ßP¿x42ªàãÃ\ÖVI¾§fíb9¨Ôb¼þÙQ«@ñj¼¾ÖÕ¢æ­÷¨ðÿ7~¥vZ¹ÚI!yêYóBçÉ‚§Òô…®!ivÿ–ÚE#hÌ„ñÊ›n:åW¦¹/+ÞœÐ(„GU଺ZkAóduŒnb{ 6Ý›ˆŒ:Ü ã|ü»žI¯•ô˜|LWÄÊ{Å_âz©Ã bü”í²ÚI*Nxe×L”)M ì‹ K›dàW„•`=·íêÏÒ¿ãH–7[½õâ…ãÕXÒÊ!É3êÑÄid\=•”¢›qÐ[rÅ J|HsÚÅ«Þ$ás#a½­ùVpödtu‰@7Až#×e ³f8°~|¸®Œñê“/1°¾“AÎI¶íY¸?ÇÿÔ?`IºWÛïó‹F¤¢ê°Æe±¼¸õ)#Ls¡_-^@¨ßoÎçüX;§—_«µˆí–g¾B⦎*®ùwP™6Î}Ë€ãZ¾Âk“™*d9¿‘Ћó6s ’üU¦‘É]Fœjݯ—$âCwS¯ÁPIÃtJGÊPψe'0 ¯¤¶0oU\]wR+æL_M¨·å×G*àtVªNÙÀüp|£Þ¼À‚?Å“GÏʨí%ɼz~—ŸÖ0©UØêäCRµ4¨„®['ú(µÑ‚ùÖЇ¤ÔÁ—=­ŒXã$g>p"&ŠÙD?Ù‰/†®M^ââŸKšZ0t³V5Ý%MG “GÏïÒU“” :s)8ÎzãxÁ¤Ù4yRAg’‡Ä‘z ޾|õDUä‚÷»nÌ¿„Zdù•yk;Xý s³çU®8Ô±´DûËp:=_’\—FH Ä­ýj]–g¶þ#o ,-³‰~›[R1´Ä:¼Æý©WÃP‹-ˆnaÕÑ/!2sè2eŒN7õÂç ЫÃOhenKá·"¹…Šòv»¡;Žx±•ÔÌGhŽÌ#(ª’®—‹ñŸÐ gò˜8‰·‚VƒÚª®„RFâ_ÝÀÓKP,OwÄi—%2B§ŸÒ ìÃëd­F4ýûJ<á²àý£¸ìާ« ž¶&M¦&ksÖ³ÔŒ# ’•;Ÿº‹Ëã«GKzC™™†Õ í*8ZÖAHÏóûºÔLÓ œ5#QpD½„zëV@*µòz+Bÿ©Ò#ê%T«[Qf,ðú*B"¸£æ'þŽÊ+àú©0U„W°èëŽr-Ág±G­@Áw ÆÈÌ~Õ³°š÷F|ô©i:à‰iÇ ^)#XmÕÐ]‹Ãã%qP…Ô²_d6©Lseöáa™ݑ漚ƒ™S<¬Öe… ù2GZï0q+ëÑQío>ɂ»x¿þWO†ÚÄGÈ×&[Á¶ˆSaÀ}¯Q«5´%'ºÆÐ`¨é{òƒÌºŸ©¿©»_e&(ì¶(þÍZAšÄ¥7ÇGåÛ%9(¿€±€Â^üà­D ¤ãܳ.­?˜ëkÁ»ê¨cEÓÌm^†/ßzŠ ˆ»­Õú8J2Ñ.p§º¬%Ì1ó’ÝÚõ$eà™1ç”ý¹ÞzV¯)io>zidFÿ]ñáü¾–°¼HI}jü ÜçÃl…UöWÒ´³ÈÁ‚}Â]^ÍÊí±žÚü.‘D·›YèË ò©ëÒXݽ¦v®§µí’ b*Ìôú[¾dèh\mùü¯¼v.¾à¨b%ïm‘½#~¥üï¿ÿ^8¢üönÌ XƧÖà¶¥P`¡(çÚ«e¦8³jããx–fýæïcZ¤k|?vÃÕ,<Âܲ  ·Ãî8Ffmr̹•Â3~Z M‰ò:rP4Ž×Pâfû ‡©ÌuåCT óc!¶©eøO¿´ÓíˆÅ±-’²¡[%ãÈ[ý˜d [ñ9™e’Ç¢‡n±+o]hÈLt•Aâ‹þkóí»r? °Å!N"e%ŸßÒÍq“F²¡ð¸mß>ùèìÛÍ-îï Lœ³„@˜ÂY¦¶0Z¢ïUBÈ"º!0j“®%aÌzáI 1ó©;yÇrúè”dÔJ±Ã×ntN1–ì4ÿV>$i¯¢ &ñ@¼„SÓt`u¯ÚB`{.˜îSãÕ ™î{]²Ö£ã@Τm&ébíMÔã_ëK{øÀÀ/jm³+ðÏBìçqôŽ„ÎtÔèCÞT¤8hR¨­Y¿!1auæç¡“%ñTÒq´IA [(aüu&™Î<ÙˆO6â©äº»j’Ë15Ñ.«W¾zy´9$d»™Rø@šnÙÁI.õºµõb•Ù…Z—iY3Umï´±â¯þÜðýâ›yrqa8äÂä3Ós§ØÌË©@”)g0*¾.2€pañEBAÖ³QS'ÿþå?¨”ê_MC]"œ @ŽFŽº+j|È*Þ1>dB„û$Èôë ÄÅ2ÈüŽÿð—àŽL¯‰p¯€)2nñ®P@i,A:ˆd¸Ë;v¹äÔÌI2DE^¸Aðc:$d€$î낇ΪM%Š“@ÀÆ4 ˆÄÄÎhªMÜ:VOÝ\5À`¤3í/š™ß ùdRó¦öET#Ø^Ÿer^8¿ ~‹6“AMxÓÓž]¢Àõ]/QäQ>ˆ'a­Ýª¤ñœõBs¯W#Ÿ¸Éä]Òƒ+«¡}é//Í«v‹\ò˜¡&¸â`øºö•—II.z‰Ëb9¾Qah¡ qR²§ž±KG™†‹pØøQÆgPIp®$ze–ºdA¢×Ä[Cלúì·*JY,Á${±*+×oÍKê’—\_5¾ndõÕ—2Ìz’sã ~b9ýš瑸¶Ñ…¹Éf@æ;dIšV5áÕ§¥Þó» âsÒ*[]Æë7òGÈŒÐÕëªÍ𧞯‚{ÀÄ?’×lÑGt3³N!+a¼Ñ³}'$¸c,gÔ£„ÕŒ0Çy µU®˜xãˆDa‚`SÀð‹ÃÓá&ùüY Uçð‰å•nØ®ôJÀì%Ì¿šóã%9¿“ Ùh‘Ð…©P#åyCxAÚil^òcºÃüì]â[ÿ ¹ø¤Ÿ|"w;Œ{…’  â”ÿMûS&âÕW¤‚áüÀ2?hÙwQ­ýÍ­õÁ²[aµ8Õ.£¹ãɦN"¦Æ$rÅÒådy+¢.ÅÉf©Uø’Ì7ý –ãá†ÎGìqy°NGd:ôäzÎzåcxà~/þ̘S7à ßÌ¡© [x_ÆaŠ ½©Ì9ª™nàÑûýƒ¶³Vü`Í“/ITáU 2òÔ¢¬CŠ˜p®ÿËVR­·nMÉë;'úG)be–n0àý*ÖÌëo2(Ž.õ!)©[pî÷}×ÜÜ냅°Uz§CSœåº2Í{¾DÁ0ŸL˜¾9´80k[\ƒð8áч$áÓª-uwÏ"¼×›ZÒÁ‡…ÁqëD«Ç¤¹gdÍ|K2Þ È3<6ï_A¹Œì(Dcðí²F.òðFÞ³ŽfêUó>iÆYj…¯ðê’‹\‡­àž¼ÍËÛL>3òÍ7ùâ íŠÜ×EiýaôŽvl”Ýüº†bhX3&ø¾šD†Æ…"—’Äóm—kÒ`–.&ëìÜAÞþÕ$`°»jï`ȸ~Ú6å†dî¬=–_ûG¤ Nòå¸Ur‹µß%2B!‚NQÚÆsBrÔ­¼õ3Züªæ¡ú [ï‡þEòÉûŸ¢$[…ƒfI^.eáͬ?‚¼&Û Jðêñ\hif)‹FŸzˆäM7´TÞ8 Lè™tÙzIJRÚõÉ™€;%9 ¯*YißYB4÷•Ô¬Ø%ÿ§ç ôöO‚AE&†Ê(dw¾ •RóG„ "‰ •–i¹c㽚;ÿJýø©nà|7]EÖùý**ÊXlK¸nBé7nþcG]ÔL}3ʘÙë¶":c…ç ž䎯EP¿§Ii°SÏÙ³„J´5l¦Ú×  D#Šò%cHä™çOù1:òhÍi'Aeyñ—pÁ¤‹d›ÂÎçÛ°ôæ_iR‡Ùù$ý¶þÖïR*n@X-wšåõ'•#ŽK5 “[½!do}y õ<Üëã0Óƒ^®Ä0êRr©×;×e•U€ZÁœ×ª!„ #åVKÐäÂÑq-—áð}ïãnµç7¯åxô¹ªð&(NAAcª’>‡AaŽC÷ÅDƒàj  ×áÄ8Ô+Å—ÌÔ@Z!O bòmØuûæ;>Qºã«©µô9Z²'Àx*=té_Aš¬ž=õ&¥I'€Y¬ŽýY{rÛIžÕAµzÑûK'ìÔ‹80_¢tõß_tÆ®á½WZ|,>ø‹LÏ.œ¿ÛÍþ9·Ÿö:ñu‰HÎÕáÖ`To‚|s L± ´ö“‹ñÌ|)ÃóØjÿjÅñkI÷fùâ„GÂ[œ?Áµ'$Ì-50ô»aåÀXÙ/Ÿ™¨0îvýöq‘sÇ7Ÿ€9¹ ÎRfÛ&Ýñ]1þÈ”a˜Rd‚ó|ìä<óÊ€‘é.þõ´Ëy•JÔºt.¿ÜUa¢± c„‘Yü€©O¾d×SÃ=…¯¤»¹´k$ò›z"NuüÊYO¬> >¬~@e–&2+Á‹ÕãÇu?Œr4ãŽ_`o~ò~rK¡zršŒÕŽ\˜éÕ%6§¥À5K1×2,¾9*NáÊyþ¬Fl ò¢X;iD¾Uk0(' išeB¤UGŠ0TWu†Ù¾\m*ÄŽO¶™wn—‰¼>‹æÌ/ÎpL|ºHŸ4—PËuµX@pã{.4RfNú⸚×n†áÔ”Ùx!ZÈ\WnmÎ @ç—‰Átøk©®ÖI« °¹øU‹Výããð¡·ÒÉ'*Nÿs$©ºNb–@Q”‚)ªg TœŒ˜„àÍ´o/ë÷Ô;ý§ÊÅ¿öûGêƒGÿ3ÂŽ¢Áo·;ÌÔâuU×QCñGPQ5XÏ^7^¢¾­¬¼ð”ÚB=àÞÞKMç @èo!Ы¨b›%ˆ÷SÐïËOPi;{ZüÎlCeŠ7V}¼@Z• FuËÙC¦Êæ@™ÄâÀ*6m?9¥2Á¬^l zRöI )yßIÿuõŒ»Ò ûo’&ÖÌsÒVSˆèkêõ•ê`_Û"Ðé<Ñ2 ’#agüŽ"?oÇ(@¸øŸ‘2dš)îÊî¼Ùñ™ÑêÉ@2bx´¸±¦ þn=ü~Ú|s.…•±ítÉïÆßÐyg^ßÅ;.å!×R ¤‘ƒá&êÉèU´mKFt¿×Ĭ„Û+ð:Nÿr›ãh2 S©°{ÕPÕ O¯üçCVçþ¥­±×ßHÿ«Åýá4Þ‰³N¢6„.HF2JºAA†Ð°‹BpwÝÅç›íŠ×ŽâŽO`Ñ´q]ªJŸÃßyíü$&F!i&!IØ ö^Zã¾k‚©†D?Á7s¯tò~É% e®mÛÔ2öpÄý°@Uû¼>‹ÂК?RÕC™ÝqÔ\bîSúóÊô,GM­–Ïÿê¼}Ruõö{Ã(S_—=fèj!üƒŸ RUÌë³ Æ­ØßHŸhzk¼ˆ:žç/ [ oN:Ö¾r ƒ´G n/25ØùþS"AÏ 1§¥›í7¤#NªÚVÿ¾2Œ‚ù¿ ü8Q|;h`0|œÛæ¼ ‹ BËØT±ÌÎv±Dé̬^áAP@³¹vª³W½œaÀô•pï˶“IOóÄ÷Òܪ=l™>Ðqú!U‰ÄøU½Am?Ô&*û†7vkÅ2¥àÞ¸okfxß©«;%bYOÙx ·²èÐÊ¿,ª):öÃůÇä­¶„E-_x ‘n•®¸ô—”¶"^½q“x9Bâr5–9Á¯4¡‹`nsÌÞ1Oà´  gå[JÔüõˆ~ÁWV™d¦¤{ÛæÌÆ¤Ÿ×%ÕðIz±4P …ë±C›ÓêN†Öß„cKê\ø{#Eâïuö›³29sσjK–<Å๥•µÇK›³2SàÔ&eƒ<>¤dß:.Ø)&vçˆ,[j‡²õúèÍ!‰ªˆí¾¤=¯ž¾$ ’ýGøÁ¤Íé`'; Þ?ä¶ÛR"òýÓ ñêÍq‡)`Ñ“ÙÅ (¿Åø\z{ÇÑe{øjެ V]ÛëMxÏoŒ_ÖÑ%ûÉ*Ÿtb}bqÇ!K™Ûei—¢ÖÝñÅŠ´úÉW Y¦mûçVb¶1Â^b?pû5æDç‘l;¼€ èmñ€1K ÇúÓ•NØq, yÌ/ËÂLÊbXqz ’U¢ÝëàJ±¹áqiCЬŒ0É4ÎSé µ®«ÇªŒ>J2Ã7 @(ןB†k_ƒäï]YEu{v¶ÏIcâ—ƒ4\¢Èýð >tòËï2+tǾËËý\7¡!Ï=û)>rkûcž •od†«^¢ùÓͧøŽ‡‡»1(+æGœÀHh—Õ…|„ZŸËL¯ã`¢ ñO˜„xXN扉kH¾_JàŸ^“Ù¦¯&Öî¾²mª°ÏUÌçâcÞ™( iÄKzü;†æXKœ ãÊü/‚¥e¨¢`¯ †;vÉÃÞ(‹RŒ_y罜'°Ä/©À“¶;Ô˜ÒvO ÖWyUÊûU`r'ŸUA(ÖÚ/,ÉK y²±ñ@sUÍ4Í.S™l_gl“Ô­ÒÆj‹ÜYÖ7·sÈ‹í­<1ÓkIœ¶ªªˆ” ΖÚ/X!™ž9ê/‰§8•¡e÷ÕO¢7½`­†XT ,¼À4Ÿß‹xä¥÷tÇßEÓ&.œ_òÜØ5«ªcèï|*}|?¼ Îòê— "C¥ó21Œ³2Y_Š<¾ŒC„0T„‹‡|5 ±sÇ?2edê/S;¦½>ÿKƒ3õ8j+ 5óþ/³)ýÂ{ƒ_Þ¿¦¸æ…uä7TæÏ«¿÷æÙö1|΄Æëþ ©Æ¬7ŒÁŸu%Ù:oZaî¤ÕÛË)QÀäåÉ ¼»Äôáçtû%yiýJÔùÝfr(þȸn¹’¿Ë9ùK2Ú±Õ-A±_‚W£ÐŽõ:,jÂ{ˆ$´íõ&üÎ €Äá–¾Š@+¯—p¾¤IãO–òz½Kì¡=(û—ò°ULш†N¥ö…¥™2¿ÁŽßŸñ»ìï —ù ÷êÏ\ЉîîŠ'­­ì‘Œì¸’Ƈ™­WžbƉÆ26tǤÚëO t¹«ÖBò»™jŒý#¨¡†#ãåÉÄJÇ™<™:tßP¢&c—ÛÌ%%L[¡•üì9 F×Á¢Xa„×ÅR¿¦wÅljþÙ.Vc^èÃFZÊ0Êvzᇽö=• úòa¬yÙæ8e5³§®+ =™"ªzõ\ýóù°Õy³øùdÞÑovÏ©ÜÿÓŽ.•CÝ·^‚¾/™`¡jÐc«ß9¾]ªˆø°cWÿµ)†úcÖåIº h8a|ÖÕ ]AƱJã,iÞê ¤C±Úìe„TU´Žbç j'=ñt!¨ÀŒB‡Ãùþr þC”°¡ckZû®k`]‰íÊÊ©ÐÓ’[Š€N¯áiFòE§g@ÿˆïFEVQØà@O¬3+7]äRrvʼÔ!ËË©²cÞ2\±Ñ|2‡|ÊM øc~ÛnÃï¦lÜEy„rÿ&zôòÆrSÊ»JÃæoŠˆñ\&ÄV†…ÁX¾2¸ eú íý aŸ•œ}—00@¦¹ŒÏï‚7xú¢ öd²âv xJžBËÏó9†7v­þûËèÝyüÝ×]ŸBäqŽ‹xÿ‡|ìÁ®|ÀœÊ©¼õš´•îs«qöPê -_J2÷—¬X†1wù —[O”õãÌB‡Uæ1³`‡3>eIe DÇ1e´.ùÕ«CA€ &/]’·•àý@ yÍÞ7e£¡G¶ñRúg箤áK’'†š€As›eÅQ@´« Øæ\T˜r¾ÛTGü»5~¦ƒÃ׿ysÙ“h‰|Rß”NdU‰ï§¾[ÆiãVLøèö=½ôód.«:Üú±3LÛOI`ôÜG~{²ÇAøŸ%݇ñÍ2†"î$°Éa¤OÙA¥<¿‹ÌQø Âgj­¾áâïÍ™¨t®dX˜·Ršøá»%ú“Ûá¹k-ñ5e–üÝ¢²NBÕÃÂú…cê¨(ô‘›27ÜÇ®šÑ!‡™…–™¸¤ÿÔâq³¬Œ`=u­û=3Œ¯Ógî6O:çã/•:O žL¾àgoŠóÃxeA¥±ç]3'à ±iÎz‹—=ÈôÂWìxÛ™$íŠ+ðóc$dÜ'm7R›>Ãø¬0˜àc®.æŸBtãW‚Òx+ûøø|Ëq“òH`ä-LZxO‹ÓçÒ§JzGS™×ÇõóU£øJ}ˆx^íöôØäH"Ûx‰P—jFá“/Œs;Ž+5·™¥äl>GiBR°iZà¿á*#ÝW9/î¦ãŠ<[O }¥á ‡©*7Quø_ÍÔÒYìœN3÷/æYŒ[&ÀÏLdY0™(ªˆ CAá§ º·ÆžU‰\^•±Ä(Aù§\]WGú ¹£¯Æ¬@i”óS¹sCCËý7Ô+ññ%󉧔H!‘ Vñ`.ýªð5`$(Û‚ϯðXµýn£[&Ù¿•‰ýZÈŽ/”‘KßkwkŒ„ižÀë¾Ó˜d|yOÒæÔv#ŽÉ,؃å©ý™¸»ÈÂóþ}¥H)8¥è™ÛY*½É‹fØ#bå²tËÍ;±yÚA²îp$óŽ“1óÑPÚ<=£'!ì-ìØLhƒ6#0@}¹£”Åã½KÁ”šõ(´Üµ±L´¿vãnvþ”);GÌ6”þu]LüYà¿ÌMMÿÂgd„oû6{ÊYsØ‹·7”€øi-h˜Â6jÚU1%©«ìðbT xÍ™XÔ Ò‘ƧÉ-ÌßÇûŸ Úy­ù©>ÿ> ƒþôþ^¤$ÞbB·"r¾bJ.·Q;e.‹+À3Ú%ßLådÕS—öåW¦’¸™Äaýžâüò1܌ͤÁL‹ìc§EOÁé`ØÍ¬õ®{³Ñ›Ø_ b<ö*;ô'ƒ=ZÕfI‡‡Ò§3Ö}ÍÚ4µ÷¯Jƒ‹ ûd±Ïýh„°8x¯êù|´<žVÈ3ä jd:À‚Ö4íKÁûý[{n»`cÜš G†aúÄë¾DÌ›q¨Ñåq¸&¿y*ªƒ'›ö÷—{ô¼µ}•§f@Pk&›óÞ2î2K÷YñÔv ‹ë)È#s£­ ˜SA7wb—ÈÎ?b:ž'–‰sLˆ¡5ÓTíùó/ø T¶÷zº+¨hU”ØPãK2·£Øm@ç¹N6çÎÖÒà Úã_ÛÍR”Z?EVk›Ï¹Ä¬:b¿ž”ñJV!D|S=c­µ zñÊUÝO)Dåb@Í4`߀åø@øœ9´ÉÀO>çTG®ìÖo0âþň//I‹îØœ,}·0€ÁÔFÁ`Äã4™Ý²•üÞþOã›Ö43"ˆ;fsØêrÁk´M¼ã0S»X»7쮤¥óž:.5Z[:„†W¢éÉKBÊRÄÞÚ òj…ŽÌ¥—™¾¼™‰™j ØÆš›­Ð>†rbççœRƒŸ¾ž¶RÕÛf¬³F•·žÌ­‚ûù„§ò1ƒ•;v̤<Ò Ë,òI)€tqI¶H¥7U›Ÿ+ÖÕïžÒüf1‚:p'ázÿâ9’_q¢dÂ9© ÿöαDZžÉDФ9´lˆ5‹›©è,ŸÕ£ ·!wO¾%õãìD'‘ú®íW ¨µ‹CúÏ_+ÿ5»–‡¾™¥í —ª9¯ô°ï¹Ýøbɬ 1À"¬8dϹ!…h%eš•|œï²;úKï¼or·…W¥;îó÷]8³‘"~™'ºÓÛ’‘tÛƒße£mÔµ›B9ÂÌi!«.°%Ÿ2Æx ’;Iznm‹®îùÔüYD‰aüÁc¯ÎšÅbIËŒ¡DƱs!6Fz4#®`gÏÚøÒÀ_‚¤1·0¹ÉRZ6ÁQ‚1ƒDÔ\DRÊÀ”Ec¬èQd0¹Cßã–Ä).Ɇ†Û KýFSÿØRH=í};d#"~ÆVÇÿ”‚-í§Mÿ)œƒ]`iÄ— hÐÑáÕ0ÆÙ¯îšfŸbig:HìðÔF ÎÀÿÖ€‰PS•f„JrÞÄ"±p*p\c€€=ʹ÷*@Gõ¥š†°Ü } ± ô-2ˆÕOåóïH¬ŸŠ=ûÔ(“Xk9Í8,IaÌöiF™“™SÓa&væÄˆvhB|xJšòcñí 5 ²ßf½WÝÀ‚šÆ¬UÇïFÙ´O‘GÝaáý§`H€›€ôúª§"‘u<)¬_本’ad‘ûî 5qþÃŽ¯´æúžI±Ê‰ÎÀxfÙTs•¤E±m'½„¬ö‰TV†µ{"mO*{© ØéÒ2§´ ˜q8Qð3³üÍÚõå(:6ùK~i ˜©3°Û¢M*NÿýéïÇ _AÙ–rêÀS·šŒá4r »}Q@R9ãÏØ(ð6~ŒÞ¢Nó×h+dzqZ0¶Â‡ÑÏ‘“Ó†Ã:åÜ®,ë˯}» ý³Mü¯$üïYÀŽ¥l%ì-udVʦ°B=!›½‹}uT¯ãÔ`a§€gl_é°n™„{?óàLnäÎRu 3Æg‹­bÝà›°çoã®ÁöÕÁOÛ ~‹úW“Ê¢‹`ÆSI¿½j{Éz|þ<`´¢x÷edÖt”³p3åI1ñl•ægÞ‹tfüŸ_I¢ngî+?¨'sÌ·-Û®ê‰I"åÙFÔŽébj<ŒšNçÇÅçꃻDéf1ôÍQ¤je*»3µ‹CM4Ÿ׺|ÖÁó­Üc˜’/Ø„÷c'>±jeEÊØ\Ìî>‰¨ÌÖ=W¿ÏȹÇi ŽÄ•zt˜ÄΙ¨L¦Ã z.ß§àoNgÀE­Ž(:Ì0˜S#eüQOzìŒÛ0£ƒV³¶Ù¨g£ô„÷wsx•Eî”nÀ².kfž±Ä×s&)O©¬o¬NÑ0*j·,ë@Y˜6xJ@¶•%â»´´ –Åʨ=£DÛÁê8uœ½ÁCþu¦›•E~>™ kîd{”€ØšHD§Í„©B)_²'ŽàJ4Cç«'ÂãÔJ±˜0yvR±p#M’ C¡$&?ª6³—Ãfö§'¾¢ùn×@m‚­%L2À‰ÀUäroÌW¾ôlôJã^‰")WöíŸ|5ÍûïÅkªÎGL\ °åC޶îS­õ|!b%‘íïOöÌZ%4J†<-GÄõ Öô¹½8e¯ùÈÝٵЮòÄSo€ÌW/Py¡‚À¼q I©¢ÞàhfØ®òd,…ê°R#/’^4 BŸp4|³Ï}C=7tiè )ùjW”ð,½„ÉP¹¶RDsoQj<5Ó×ìÀ†÷Îm(‘ì…¹†_T!\#è•¿=Â×èRĬGK¿+J.k@;ƒ@׿ã´Âl7·Nm‰YͯL§Êä–›ã”-+Êy÷êu4Ó€+,mîÏÿö_é¼õ¤,xa• V›{|ïèí‘ȼ=v=’7 ¿žçª"¶Ó•žŒ¢Ä èqGfˆåsPF’YIV¸r8Z±ùüVO%‰íÆl¨´ã/X1¯Èë¹Ò[„ôÍ·˜…Û”N@¾š%>y¾ß%:¯]f#¦ #ôñ³iëx~§–­zy ªu­˜MO‹/å=ŽH1k{®h¨Á®G5T×¾PžK¸jïk è™ÅÁ({Àïy›R.˜+@}Àªùó+,ŠJ$o+:ß$ªTãô`@â':žüWDbÞ b_ȫ៥q‘+ ðV6\I·f[/Q:ùšV4#òí?È'ïçm½)”¨!y…Ù·‹gÖ!18l NÏ4<ÐÇưFн8 yÞÈ»‡ÅÚSžê ½(æöÕ¡·Ûn­|šìýC!¥æÚWø2E¿q-ŽKѪ¶••YÏ0Â`&ja¦h•¹ÇùÚÅŒÛ6T*wµöp*¦#mü&›: JÞß TqT#v3òx€|ª È<†á‰V`䙿äž/‘5‹yêK»úeŠã¶Ä/Ug€›™B|YÄÍÍ„í¹¦ô1FEs\òÐÁå÷µß7¶ ¹5—“¥b¿®#<ÉÝñÜabмŽIÈ?æÒ™frº|¾mSe‰Ç?»b|¸*‚…;?QÍŧÀ q8?ÙC‚"{¾Zk@ëQãSÅ̰gÕvqÀƒ±¥õ¹êùÇý>SÆ{UÀ´",òì|“R–ÚìK‚”„«P%gøß2í-7,³Ÿ¿“qX¨/QLBE+*Ì6ôeèã/¬G4ƒtÚ,Ãññ.Óš^NX:æGV[¯Nvî?Ü®2Hžéõ™I$^ÁõV¶œÈÊ fœgfÈtߥ÷d<ȯ †LE† œºrc{4)ïÿzþ‘ä®ÔþKéB2æb%Å»Çn¦k ‰©70P0„—$93>¬Œ‰B‘ñÙ» ¤â&zí§lLêÖýåk9æ ߤj§p¼W±Íh¼ú¼°SXðMD(h"™ŒÅ 5 ¹»ø Z†v*Ä6͇hQž²D‹7¶U•ri’™Ux!å\HMÈ ¢}<¾6õtæó[q€žO« ô™Ä1Ƹl]²f^“™ôûˆüÔQ.rÉD|Κ ñAiL`¬âD59Ùþ€ó\“3¨ÏûüS.%þ·+|äzÙF%Ä‘ ,b—+K6»Ù\‘œTHÙjñúcç8î,Ç&i-EïFð¨KÞçýÛØžDô)‰Ãrä]ä&òþ5FÅäa%€§Ûíkï½u\<&êxx&gìëhd}¥u¾bôõ—JÑaýÁöå¶ÖWz]šW’Öêl+ÇŒëgµ2äBËñÇm3q0dŽïï d»[®IX8Ÿr1Ôµ“.0 $ö™_ä­Þ_W ö%ŽÙ¼>`ô!(£ü ¾¿üÄK€‡dˆp}|;0÷û„xÅÇÃöFß»7³¿Z_—q.„ÖöÒ^Æ…^4ÂuÇ·‹tÞ¤JѨZBHî€FS¶¨8ÀÂOrà0cFr\¼õUÀ˜DžÂ'í8^©2FûAãÉâ©x¸Y&$³×e2é>J¸¬ë]…Yà¨ñ½·Ì`(æ >Gë†þUì³z —OüÂŽÄnoÑAœz58ÄîM-Æ%hï—ÿË»>éÆX¶Ô5ÿà-Ò"±DFiŽš¤Žÿ ~üÑÈ¿?Í$`vÖŸÛ‡7J…ã ¸ü#ã• •b×’Y#;ȶ‡%˜ +á3(ñoÙO=—þ_^ïEe€U~¢×rè3Slâÿ%5oE£ö¥·‰xŠ×GDùÐÈø«a_b‹(å3\Cš°0]EjÓô¢œ»ˆ ¼„9[è(š1kæ7Ÿ?ù4c¬›„צhŸÌÐâäyc†¾š¢=‚ÓïÌ­t"îî¶€Äùâ­­Æ'ñ_- Ψ&TAþÍ@“ÒazrqÂL{ö'E">°¬p¹eq¦èï4Øb&FËEј 4Äê³×Ás{p‹(3™”×A®ÉòæóÇptC·B Š,‹çÏÆ“ä‹ÿƾÌB~•%#¯ñ=pa¾l_Ñ‘ê¸Sîƒú€;9°¤þùcýzÒÞ3[µª«Fùæ“ÝŒhº2`ã%nà—d ,“€r&¸{?hÅ÷îrHö\¬—{Þç?då¬ÃhçæûUrOqB'\u±ê¹rÀqhfúË"%zä¿N††Ó3IźQw“…m„‚X]=o˜üÒ§Øæûß$ßd}2FÁñ~e¦å¥ø¶q ŽuS*DÌŸ;4ÞÐ ÷Ë#C(ää“ívïQ¤ŠaoVª‹Î*0´ðp«$³ÆiqZišNR,Î;p)&¹”ýd+0Üzè7Owbz?ÂŠŽæïv©Í¡§ LîSh{|w …ˆ  –’IÈ(ï}cŸ¥$ÖCêô$Àó”deÁødˆØ¾9Ô.“‘ß -ÐLqýS7~WIPjz3¿T"ÊÄÁc;{ÊÂâ}.Þ#¶”?Ç—“õôi“/$„ìz!þiS£™ÖÍߪ-‚!ËAö"ªÐ.t|a!U,‹Åjp-e´JÖ~’O‰7vŠ2þÅefÕ® 85…KÂíÄ„¶YUàÀG…„í¤A¯l©ÉùáSwa{ÌòÖ£öÚj¹%ê§¿Š:loÌ5¸„̾‚ — L®-¨&p8À¡¨Ïv™´›ãùˆ×9†Þ ôb-ðïWàOî6ŸlþÒ{¶¡\ýðrˆè?^–ÀÐÜîÊCr@î2l·Å®’1,\ˆ Ð4ë!³²Àòb*âȦ‚‘¯ôqýAŸtÉæV*a¼‰Ô ਉé§VJÉ%pØT¯Ÿ"„wµ«‰ÃñïÖÞ5IÜžåÆ)öÑ»ýIÒû«dB1 ãÌ[Ô<˜%Ù1RÜhî<7ùW83[Tamkž¢$fgô.C,€zR%Hó»6Àlï=FÄö«$N1àÝÀ;3Ýp"™ØÆ8ˆô1'ûe~B¸ðξªï2G ´|kñÙCŠ8¶(P˜Ügò—J»Êÿ9o&ÕÃôC%à¹þôÞôƒ¢wRž „­¼÷-kP+¬ŠsÓ\B0l#¹Js*×X$TpÉêN“…þ2Äø,¿ÆÃŒýdÖP‰aœDä°æ°›®ÅVú`Õ„‡ã¤~PÄÞ`4˜ØôDÙ"à¯~MzÅ7ϧçG¥‰ÂX‹ \ -_ŠáI…X4®ž*ø “ébÆï_¶bž_¶¢­Bˆ[í­¸UÇ×l óU¦‡T ) @Œ35¤¹*$}M¼0ÎxÌñ«Øê´ 2‚¹ ZÖ½~’…q–”Z'zÔÎí×…¹ƒkør"¹†Ëd~×)µ°^ç6–*z’]9+7Š–Nh_švr&ÑñŸƒ §;í³Ì…D¼R¿Î|´¢ÒsT#'Ì€ä'‡Ì0#Ñãóù.åGÚoç4¸uA°mS)ÒÎGr‘Ǩ–¿x¿ ¡ºš™vÊ&itr©jfP $t82Öƒì»N_ùRnâäÅD ÑÄ~мŒF€;v’üA$©p¬Q{6”È<ù˜¥Í¯´ð,^ÄyšÂTaÊ´UNIÚár’É—š‚Ëo¾;ÕG³­'Ég¨Å„Err²¥-0×+˜Ùº¡Zx¿ÌIå •ÚH¿õflj‘;ŽêË<êcÅ7v=³óƒø˜[Ÿí=(%ð1&gèDTÜ<ï‚n¤åPÉŒŽÕ$¬3}j± "7©›do«Òr3rÄA­ì=Ç>S/5A*¦ðl¾úWaQ¬ö'Í›!!ßPB§€ÉVÓ+û5 !XOz]ILµDÍQ³9j˜dàÄP3°BQƒ Qãý«4$È¿¬v±¨’¶J^¼4ÎÕ=Ÿ¯Å´û©‡¨FË@7 TfWšMá†{+jc+¢›´`ŸŠ†–ß¶’Tæ„×´h¿?P`„îójAbª•†3!Üü™~ò‘.>øò¬ü>×ûÆùýÉÊ G†dcý×Þ!ŒK·+ä5[q ³Ô×Ãl5óŸ'9,7î‡sÌÕÑ^·ÒVQs7ÑQÛNœüd°ÉÝtiÃU–#‡!µƒø§V˜f¦$qHŽ àìiVBλ‚Ý}ÁE-òÒ+®ÎLú‰¼DópWa^ãùîYO´t¥òXY´„^¯0Á«q!Ç¢IÍà­$ Ũ‘¸áA6e‘Ô¿êµ!ž|A·ëæ©0Tu±ÅÁOTZžÉ¼”‰à+[ãß™ e:ìæo¸5®»=<ÅxD{Jı¸¥ ÙZÞrœÜº©âÐPËÁ¹žÄݦ•«³­Ûhºfú•º2‘´{.û÷ÔçAì#&yù‡xÖ†<O”ÏʹB8âdM PÂ5ÿp=vjRI(Â×Ê©•”oû*sŠöÊl³ ù4@f&ÊÇšJ0‰l騂œäߥøú$äËUC"g(:t…/ŸŠ3{8$„ˆ@ïòZFYÐN€B—[7¨óƒk°™Ö[Q¸'XÞ @̵·Râ‘D~*€¹·ú”šX(´p¼Âé»^eK æÀöaÒçŸÒ^=Ú•dª·:#éf\« Œ¿¤¯y̦¼Þ +A*ÎÞ?k¾Z|‰œöÁÈHVS ½~5Ó0’’ÜùÆç*ÃáQ…¿OüÒÚ KñsŠßUY€H›‘× ·Br쬮 á§=wÕ8!;+Š9xbZ¥…g…ªøDÉD&Ùv„màÒ5—™yŒJ­ügþiÊüU˜ ÃÆ?£`Þ·Û6t K©5È„4ðr\Â¥9^ÅI½–_yKjõh…˜q%toþ+X“0ßÐÑ&î«×YV‹z”{¡³×ÉæžT«%¦+¿ª2 já‰Ãû *â‚nò—.‚àöÎ/HpìžõþÏTÒ §Û 罇 ¹p=¬,%$[­ü7÷“°=F½ÃWh­_]ßq”aÇæ_µ#Hæ~«žTŒ¯&°ÿ´CßÁ³­]VTÓ„ê³rØNiæRŽ´[âý°Ñ‹ÕÄÑþ‡ hÏ_̦TÿU6­¢ÅÐÎsµÅä]Eà†VJmð×®#Œ˜zô@ã·od¹ƒ±g0Z¦nçyK›mc%€ 1dà ô~¥üï¦Vü«Wæûè^ùg ðH_ðlˆµê[ù¯ü¦‡$rÍäVKŇôX[†‚­•ÿ1›ù劉©“b¾Äjœo˜²ø9« { ŒÀ.¸5’æÏ^ö-ÿ)^¬¼ÃßeõÑ¥<8G™@1äÉ›:…8ZÉT'!Žp`¦óÖX”öÔKlèº@Àó{!æË"©«¦@ì°QÛk+Aó|‹0Ö{e”´Žß_ö† ¨…¿r‡7U|ô¼9Øé—éù˜ºÓÀ®æÀÒꬽŠH- ÀÌþ  U²f/רc+ô&+œ¾D&»ì_©2Ä›C2Kol]TFà|7¼¼I¢–ÚÎŒpEÔÜHñÌ 9æ‡Ó£ŽzjÒâCRÒ;‡hŸÍP4Ô¶- jo¤Ù-Õn'D"Gu©»VÚ©¶O‘óISw¿ÿ¥OoŽî‹q¼P4„aÃSóúÕ¹M±°ÄÛö`âJVê§Èx¾‡Ã¼ï<ñw)|7~åV;E–J÷ƒÉ£äÖo0)Ô!9J±Íã…ÝúÒ¨9€æVèÿ'}–y—±öWíŽm¢v…Ñ[(Ö± »Ö°uUmB•H×ýÁ¿›mË®?WÉ´ªL°åÄÁ…bãàzi*åü*!læ–Ú@d\>¥Tbÿ©3˜D vùÇ“àSLö©w¼ŒNe-A³·Ì;ñù›TÓÁï+ô‚ze‚Í‹ÇØºŠò&² SLK–·ÖW]Ç®X˜SÎ0¨’ào8R~ZôÐVÀ¡&â©‚X"þèû®&J!ôò–H¥J´Pã’Ót¤ð)Uv³˜áïë̸×è1nK:œ¹&XS§‘%ž;ø1¯¦x}Ý!âB¯çWšGüÜڨɚš™dù£}Éh¿?%bøîxÕU‹•8>ÓÅa+(«HÓ•m{9;p0—Y]ŠÊ»Ä\"­ŒòÉë—J£ç©6+ùöƒ'æÕ‡M(ߣöÆE»TÛbÈ ­‡-H^÷Å|l›†D«.ñûıˆÇ³Uy/‡GÇï|_x&ûØ6›Ö” >»@e OÍáó8W}²v€÷¶å4ÍÍ*6êªkY€DþšÍŽî¬2m°Ô¿"¸'V¬ò2:¡¶3ä˜Kê&âÿìä;*º¯öæx"T'B¢µŸšö›WÚV]šWh<8Ú;ôãᬷcJ¯`¨«­Àr'¢ÈÓŠ)LûŘ×Q·yžÍü#*ƒ;^KÞeaš‡‹Ñð>ðœv¿‡á<¶ó僀ìãëw#øD¶–ÆïF¦¡tìB"!`ìþóÙ‰Æßá“/öݺ¶ý@<ˆC'!ˆ<仂áÌ ˜Ü°Ýš›–Þ'ò8z‰þiØP6¸¾]Öý{Í»*ÎîDã,I2S| ó~ÎRÑŒj-œ˜Ê™©À~Æ ã\ùuÓŽ)[ߺå˜Oþ¦ðMs|v8:Í`m®l¯-û, 0òSctR¶ÕþB–ÁÅ%ž£e‡/¤>ë@PÉ0/9¶È Í!LÓsÆ‚M+‡ ZÌËÞ—ML¼߹OÕÑ[GÝey¿to:gF}žŒ{°[Ìê¸×a‡{Ÿò¡™ˆè„8üëy.NÝnJæ¿ÄÝoY± bþB•5HbFÒ>̪‰.Å5 ¾ž£üбĸ3®¦8•äóÒáèÈcJLh.;ÐA.™?,¶ðDÍCJg»ÑúÄÚáát:Òx‹É'€ÙkrL33óçµ.> Pç»ç$MŠó`ćc=u<õœd¥cgnCXNìPç±Aú—ú< *¢ÇõøSA|þâìœL~ò31J}·7þ€úc›mþn~Ú—¤>¹F7•ÐK#)€§Å 1ÛÇÇꊼá{kž¼ó–U= rÏ_=fÀ–ŒÛäå”yOœÚ˜02èô¿ä'BU$'>‘K} ±ÔRÛNœyvâ„–LQ\µ5ò°ìq5&Ëd9ªþ¸\fÀ** ofvàtpƒÞDÏÆO†ô奰ÊWÑÝÎQl>`ÂAPE¬;74öJž8ñÄÁ 7jùÆMÜn§ˆa4t*äÑQ'Ω•Ûƒv‹ä\â?çÒ=ÊŠÇRq©èªKýæ 'Ρ,ð­òÏŒ¨x$9·Í™O<æµ'VBr]/÷Мü¥69šEå¥ÿ•wóÿ7,y²J?¦OÅ\·>åx{vyüeøiߤúJ©o•š„_Ò"“@:[ÉÓo)Šé¯^@­ðL‹,æÿ*2*Sd»s„`x‚(¸•n3.E/ðcA'‘s?ìgTe  =Š•®9™ãÅ $çÜTÏ\ö«š+Ò‡¸®í“™ ÙQOŠg`³5l˜hE,SMM—³§£Í]Zdá!\Œ6¸û¤Xù{n$whϤ“[Ö±]Úg‰x¦µµßªÉ}ÀÈ¢ÙÀPfÄ´`npå6>(ª’£Wñ"ü2 JâYàcbTóé Ê":+…¸g'“`Õo–LSàÌg+Ø¡Iºá²—…éØô”ìÔR¤Ûó)•¨&ÔgPÜ,ÿSx¿ìå~vb§Ú¤G‰•2{S6z‰pLZ• %$„7~7D¨ËÝ#6%e±ø8…4~'_BùÖ%p6R7˜¿YšŽ(<ÜMãÉþ\Š›úGf!}”â1êý„ùmA"63kÄ{(3wU¤ ¿»æ ™·•k Ñ”;ñYµóaE·™?Õ$Ÿ¡¢qRÂÔèoÉ¥Õý?'ð²ƒ4é…0që¾þ‚Åz/áMÒâà ƒUçQS1ò-nEr„ÿ ÄC·0EWýÁúhÿS>SÓþŒLæiÌé²? œ`J5_F®£ÄPOl›s[ÆJv¼Ù_W¿>× ô+0L½ׯÜ«Z)ÿvª»ÅÏ<˜@_ "oFõ$ë‰o=¦{û³à{µ¿àpõ¥¯Y1ݾ<ú¬?CyÈã@¸”j˜œ`T4GÖÿ—¦U¡ë2›ã òëÏ(èý”вäܨÌB¯I "û&Bv¡©!U¥¥<’·Yž¢À&µExBÂQ“§"-ŒÛ­'‰ß9*‚“W­¬²Wvl1°­p™â$Á2A€ivÚØÒ«eîÙ$ˆÜz3´%*^W>‘:atÀÔ }Z¸õÊüÈoÑ »ÐÙ?:­;ö¥‚ ìó¦,l…Tè›Íëî5a~’ÏMö Ì܉#•ë[ŠÆ˜>l¤°X™þF)Ðéÿ“‹ùû‹”×qèQ Ò`ØúF¢$æ^µÂ3+ǧÜÏ·nmä’l=Å⸜Çé Nq>K#Ÿr«3„²M¹øÍbƶØÔ®$'Ρ@ÃþëI@¸*P vuúµ­”þ(t$âκ¤…ôý{Ú00Êà…ùP˜°à³‹ÃÔÒSh¤‹0Â]Z÷¸jà>ÓçIêob†êõ®lBŠ |ö6>Ës'ÞKý0Úº,Ò÷£˜Ë Ø™P÷zXØqÚÍ|Ÿ7Ú$Sùª«¹…êqÓ—‹OÿþÐø#déBB¢ñð‚ŽnôJ¿lýy¾/%:³"–ÐûÀÛ®,Ÿ}уT"lû±å59ý«x¤ö‚‰µJ$´Ÿ² ôyðúF‘€nb.4Æ÷ëO|‘än{”E’ qfr,PÞ¥2 ¾ø¾Ñ·ôcfÔC|>þ_ƒfìWîµÏ>gÍt;_ÓKÂñ’)•J‹¡$2‰ ²DÚï/¹nÁñÆeà%Ôˆ“¡5sÆ¡¤BlÌÚ…ž\ÃH»÷Xª7O&^Pð³ ýL€=¸ù\)øÔz°!•ino¦£ Þ ~¬|®|ªŒ‹+A–8ë|àh› –/é Ž¾¯œ’‡û{Ö˜WèÃ?Ïò(~—í‚)ÛY/ŽIX¯?~×G'H£ø£°³ïºQ¸L6æšÄ-ù4+ç%}v¨¶tÐÙÂA®ÒèwI,µ˜—IO‚éCý—1æWF’8õxóG˜)ž^‘>î)MNÍÂ8?ûQ‚ð­”QÈãÑoOS qªø(6P>“(5éÈlx}_aN­”Q¨`0á{í¸‡â(ÓóÁ æc¥.½9@EÁ*ôä´>üuT²¨Ò˜8ŸI&˜ÿ§\oD$ù¶ 鯷ñû±ÊÒ2’Ay³ýf±â™I£ ø(ßÈk–í@Q>2!Œ}35þ![h$·‚ã;Ó+ñÙÌÿÊ՞Ϝz|xF\¥Ì={µo®ó€Í8 ÈìàýÒH3'ý9—«{ݨê»NRø;%'ò›—QíÍAzmÓ¨¶³(þñ¤LÐôÁ“:úåÊ41\f3þ>X¦À¢brÞFõ ßÌûæû¬ÒêÀ@´–8 >âˆúÉÍDÊçH¾ÎäÅQ¦¾›Y ] 5îQnŠ3xŠ‘»ï2sœ™Š0µ%•±7ö·„ÑÍ€€XE:õùçUç<ѾûÑñ¼\¿qãh§ˆ¹4B3Pò¤Å_÷[¨ìªü¹óë­¨¹œñ±c~¶? %kUfÈWå:¶&ù J»Øu„êû+Š<“"UOB|wŽVŸö÷/®ì0ÅìÄ ÃôOÕð4þÄ'eaˆqÇ–Üí2~¹ÛŽÒ} ôµVy‡“Trßz<Ó55’ YÀã+—xLr&(°…·8„.oFÁÊ£b`åyÈbVáBYC«ÿ»%ZDôÆ~húµvy y"`ß9Kæëáç)9T2’ «e)OhghóätâíQ|bÚÆÄd”+ꎷ4Ѧ«Îdˆ“„šâ=i´Ê¡˜ÝñÛ`ñù4¤b®¨DÆ!)½òªàR|ð(£ßòþs£I+z¾ùDË9 Äxdœgl°TÌÔ½ ¸úpy­û†‹çïOÊãnÈI4¦ -–h@g0ž³"JVñ&#K‹:C™k?ÉËþ¡¸sv— °3Ô5”YÁ±ùö«ÜÙh¢fjÁk3+U×”ºi»&G'Y—±û ¦€&M9”ÈB%AE/3¿5ªƒZ pÀ çñú(öÕƒ(8~%Ë Ó‡MÙRñ'ì° ŒÅ„õÌúµÖ›(jV|øÁ$õuûCu¿vîôIdFê”cøqä,’«o$4~µuƒÞ¨[*­‚{ß1ƒ“pñ[eRXÈ7ÚZ}Þé•)ÌtÞÿ9Nk~¥î½^— iÀ"~Ä›‹a=oMžÇ "3†¦Èþû+`rŒ!ÿà ÿŒ ÏW¨é¦mŒHžK©F¡Ö’žL#þÃ=0èï$e¢LnL4xÇ¢$ ,]ÛŠÙ²s1vÝè~7á™ò˜XŒòG#J-còû'ßR›bÊO)IÚ;0tÄqzitxPØÚ…y´BKCGÐ.9ãR#ç.Njñþ<õËXØínžfÐr£“ü €4â;†õÜÔäž× p¼^.r¼õáÖ‹á,t×®w³#À257¨Ûylµ´’¿)a5ØÔ•¼³Æ!EºÕ ~g7¼}飦¨B†4cOŒ4Œè˜Ýg|[ Ê8°.9–Ì®f A*NËTâ-þ6;Q'¾Íâ3]Ù;*Gõôjå¨U^o u Üxœ™…^2/" p¹·Õ`ãtèU‘d#âì;f›¥u µo@¥}ãâM!õoGš¯ýc`ËžÌßúo„¢A1]P'1ZbÙƒ‘IÈN"}¶-›¿å°˜§ç³ÌKv¥Nu-E$-/û$å@/P/êwë‘FJ‹ÏÌØ¬BfL’Ÿ¥|¸‘òú `#ª¦ñèâ‹óGIÃ5…Zu~p0Gyy8(ß?‰Óùq–i_«\OÖ>-uÕñåÏVºÙ¨ƒü®¨ù[š" ÓrÄzÓ]¡3Ù…%vd+Ü8¼d”÷ó§å<=0C—¿©Œ_W'z†E V)°¾l|â›·â[~…Ù6 wO-Ú Šß–ši¹÷ø7 žâKÈ'~ÓgÛiJ¿†|ð[b52…]ćûÛeqºo”áÌ!M©eîîÎ<\0ŠÄÖ>ŠœÛÔÃ=½ÿécD\’ Z$8¹‹}]ã+$ ‰Ö-³vW í‡g2÷»éˆ_‰?ƒ‰‘ÜëO†ƒB?[zÖ™Œ9éôlI‘§X?)ƒq¦ì¯åR?OœÅ…M·¡ÑKE¡–Џø”Õß|CKéŠÿ:ÿt¦žÇÐ s2ÍÔ  (`¸˜¢Ê×ûgÉ ‹J›R+žb"€Fw˜IÏ-s#{’Â(²èp¥ÒŒm =à”V†ãYZº3ò$Â~ïÕ½á›d•2•PÅ!gØRƒ6ëWd„G<:2¡ñ«$/±ö#8Ó¡æöÄÀÂÀæûÕR4ªŠ8®æLÈmQêíÂåü:¾Zà‚Ç—rõù#1ÎW™E¦=³e‡ã . g°‹ÈqÔìÊKòKNÏJ»â˜¥3„)‹©µ!MN†÷3º%Žz¢ˆ ¬­Ƭb þgÝÊÀæ-0Øqh?ÍPðz¬‰kæÖq»Þ¹fq²˜ùÒ•bëËᛃø¡ä””^(Œ3ôR\ZB¡L?üÕï[¬oÙ#ûr•2>ôeÊ’ÝSSx“¿€h¼Wnò’ÑN ªóÉöí”h0xžY¸¿WQ¸ÍL ü¼n½¬ò‡m‡[¸AŒA@´QžÊ<øu·ëîz01ˆì+u;ÃnÔÒH=. ¥Íâwõ F†¿W™€_µºIxxwÔæR›Hþ¹F|âóLHt‹SY ¡Cá'Bö¨ý‡×”õ¥âL¡”³D ´ ŽÞHk®”µU=ž€'|žxžAg{Äà2óRÃFRrrUFY]¥ø´^ ¬éŠq>l‹‡ ¶ÄOm)†@a5ºë&§Ù’êb)ŽL•J¼ -¡¶€}À_²øZZ5æAˆ ¬Ð^$#à‰XÒ{XM;îäj…yâ¸ÚŠAdkØëÆ××Ñ'ûËÜ$g2éi”ö%â Úq®¢žÊØ“NîpxoTšñ…¯8d§„< ÓbHtÌZËb2Á]fèwU ¢4Ájìêft` œn,'UÓc–F[{zh¹²eÑP à!rÜèމ5æY½£­ç)ˆøé$›3#ùt*c¥±Jÿ¦M÷™ÃPõ8ÿã,&¥â¦»GÀŠ[Þ’IÓW‹Ãpm6¸i_ÎÚFF"ŽLrœœ“€§þÃxaQèêæ•¡{Y‘Ç¡¢+}Ñ*@á&\óªlî÷”lÄ;¾¹iÛ2Ö‚Â0¤rÝ¾è ¤Å€Ö­<ëç™&[ò©„!ùx. ¡=/1êh_;O™öÀñçyƒô'è>ØßԧبmØ|ü«MæAð€‘Ì›YÚÑÕmÓe*áL ô š ]×u“¨…ˆ=h¾taÏŸ‹ëBpŒ('ÿGAš´zñ%ÜÈ\|ß0ªºìüõ€ŠG°×ôTÊ®Ê$}0¯4¢dsfw4¢ ?wkÕÿn#óZ;êê›·\÷×ŠÂ—ŽŠ©Ì^&ç´ `è]3èߟv+{&”oíc° už¹Ö§ÎÒT¸¯¨Y ÃèŠKæ°ØôwpÎåµ>¢°˜Åû¸É)=%³,ü?P=¼ËX(´1óãˆÉó|¯pöJâ&ÞÓ²@kxj´¨Ú6ÑúU€‡ÊóùÂ/ñ\ÅÅäà ©o–X”=ŠõÎJ°óÇcú€_frÊÒtA…íßå7‘†½‘ŒÇ$$éÒ2Y™£•¹z¢¶‚äT?V餅B9~ · P†»ÿE ˜Ê¾ü /dïfLcºÒ ÖšX"Fà™iPן_ 6γèã|·d›éº!ÓMùë©1Ädÿ­mãx+ӗܹ“¹"ßß~N¨AžDÊkmHÈâ•ü¬J\!YŸm/xI‰}3|OàØ&óäß 7ì_â¤Hi¯×Î'"·,+þzÌiõ7óPˆkÍÉÝ÷­:P·½<é¹:1ò*,€¾ˆ/Íùu¨6ÃzqLVJÈÐaóÎ[¾i 8{2)Ž’L0®çi¡@$NMÎ%ŽÁP`푵E€? ÕZŒJ>f¤›ì 0*×½W¡uTÿP¦¡¦ä›thHØBnÝ6 Ýéó1Ý YÚ­™‘iôLE[&°q$œ£³ia6"T\¿V±!!KDFfqçV*àJT¯ÌD¨$ú±\¶·ü€ª?d}ŸÁ·@>¾Ý=rçàÌͳ|Ï‘®D÷'É|M‰ünpŸìÙã&+“à=wn#sæÚF·ãÄcú'ÍCŸ™Á[/@mÓZg¸*GO`úÿb%Š`m >ëcdÙï#Z~äF<¸¦–A‡ŸI/ý\‚žeúG+H}èÕmñRáÛ¶ k/ $«þDà øŽøàX§°+*2;(dÈr€PÆÿ£KÚâßÿRë¥Nœ’•sÉ ê4o4ƒ^°1Cƒo%Ã8 R¸(]É¿'(îìk ¯…ߣ8 LÀÛRÙñîÔE`Ž>˜ê{Àº‚MÒ4Îý+ǽ+¼¢E£]#@ááMd‡N‘ù¬bp‰ žA–ãaÛEñ÷+ÃíKö¬yø‡÷ºñzЬÖSrV¹gçÃÔ~µ‚uŽ8ÁE妯mþ˜FŽ nÌp]¶p`R›£™IiØ}9Ľ623äŸòµÚ„ê{¤"°Ç^œÅ L/öŸ¿Ð&|↠qˆa Sö'n½ sóá¶åÏWÄ1àCàqÒ¾C{såW«>e?„Çwwß½JG0ºg*l‰ëH§(ü>“kït'iÆùв ãeP{}DÖ¯"ç®X1Sº|åyJô\È‘ÀÈB@d~tcçWgþ…ýþT%ä·€\s5l³|Áìåd'ù=¥¶q²L’_Jg&×Gá{¸jyÉD1B"ð—ùÒq_B–,Å™+þ…YÃõ>nÅaµÝjäÎ Z#ñc‘ßùnVªõF©N™ ÃåQßòh“÷é|³Šê:?SÉ!Û‰ï]!7ŽäÅV„\Dì"* ©>ç´ý‰UÚ?o°ªâoµY,Ê=Ÿ…µöý…XjuÏ `M¡ÁÍCÕ½ ìöµ¥#ú žëP´aý )Ùî›ÎkùÂÅîÖï½Yh^ÿ2–‹OÕ²­éO‰ÀáI׉’:â]/ãõ쉼™!ðq>üëO e*Öfê­HÒçe¨äE¤°$ ’p¬¶pžßÌz~7ˈ‚õV¸KþeLwgD 9Ž@‘ñ=ègO»/RtàŸŒ2ÂÖbÉ6cûÝÜ"$Ü®ïÒ<«—«"ÁäËœìŽóËœ*r¦)oRsµz”x'§æNÇ,óF„H@ÛU8åÓ“,XX‰ÊIè~¿Y™å£{Æ>õ,Ûw>ÅLø=ã/îMÅMkõLh1Ôò9Z뫌 ƉswÝ¿* VKWÇñ‹És~†È`ãHV®Þöܧ÷ºúÁ#ŽXàWmZ#û„yËn)cÐùà˼í+BÌÄòJqÂÓËÒÍ ~ÉÐ8àAÌd‚¯_P^‚ý&ìÜfx®ì28œéá‹MÄK6­f6D2BÁâ÷'DÂc³Àë-£—pÞôgñ)õ_¥2Ë¥iŒa“…ÞÊþ Aqà ë>@Ò‹ÈáH>…3çŸÜÁt»_ †ßß̓N™ßÙ3èã4(] å«+f±D7ØÆ°L9l þn¶‡Êâ¢aá`L;׳ý)F¥K…à!´³+¥pVfj‚ 2$g¼ ?ÐwþÀÇI: ¸4˜É¨ˆœ Äž‚Œ ©sGªÕ›¹bœÉe<°Ô÷—÷¤¯Ëó·ð+~ÎÝ`òvÿ9Òï$V/ Ž OÌýKŸ{›ýÝ“»˜8Ê!¶6ýæ•°¯f…b5Í©éG0\?nýû¥ÿÿ£êܲmÅq øÝ{4€_0ÿ‰õ=Šåú©Õ}7l=2S²Á3 ,Æö æbÉŽ¤  ¯E84¤3˜‰á:#7ó5Õ÷¾„)1©t´bìLúû5 ¯œ~QSL&,yQ¿éÐK_Âà—õ$MÖM1rúÝ€üvÖ¿b™Ò÷ éE“VBT}Ü7">-ÌlVÌ^}<éF ÅCAM^$‡™Â–,!„s/’Äü¢ÑÌ13¼S ‚‹ÀX_f¸GÎReÇ¥k;Šþ¨sï¤ fÂ\#xò‚õˆgä;¿¿™ô1ûXw¤ÿ.bÛ@H„¿S4À¿ ïȤ ­°ÕW9fIê‹!Sãá+7•üvp¸…ýbžÏðûJÜŠÙ¿ÛÜOtu¥ó¿{þLj9ŽéûÜo sÿâbæ—ÖnF“ÿÁI|8ÀédW<ñ=ßÐèw²÷ß÷Íz†T„LXަ#±˜å¯˜ª&üBëç&ߨ #†âB‹ðN¤xÒDÁ¿ãn"ñ"ã`ÍßmÌ+ƒ‹5 ¸"Â&Â?>>‰Ð#"†#NÞ¼‰€LDE¸G†'B†ãšIõÊç§aWèÖÅ6:x$þÏ'±xÚ<›ƒ˜J¡ö~#:#ºaZñ8ÂíÎi ¦Æ†@Ö Ï!P©A’øƒ¿É¿h›¯ ù²‚MÞˆE$‚(‹|ŽôŒA„AŸU9×2ã;ªd_ÓŸ& ç¼-‹áþOf@xƒF´‘î×­‰;¿|fyÆXÐÓLÍȸð¿`lúG¥ôòàZ_ŒnG!É ½õwÆGDkG$B+J s:Ì®¥ß¨¸‚(f»ëß0E8íÉØêŽû6ë"Þè•Dâ6‡= ñ0åú‚¤ñ{Ol‰½÷¶ìP™5³>òÿïÀ=tÆü̈!ö¿c™É2`È—]ó÷Ïl DÐ÷¤K``äë33qÆ[†ýCé–¿S51 i0\þ ¥&ŽãÌI×øƒ7ª{r6žö$BUGsáo( Êfl&„sVZ/>9ÿ²F†L¡$‰H»#«½_Ü:. c«^ÌãËÌœÂF ³È§7Jbd+¿ƒH·ú†¢ûµ[TÓk箉`}»6ïõ¶rKDç»4Lœ"ÒÏšü;W<˜QEÌïL› ±‘Ûë5ßàæ\úÆÊ.Hžw¶ M:ü\д³îé˜-ÌGÃÅ¡GÂ!~¢ª mFù "G‡Mz>þ Äø‹9ÇX"3Ù4Âv¤ˆšØñþ¬¸£Ø{¶ÿRùk»$ò )™'Ê]ñ"s3>xSRš°Û>cfê²8£ÿee°x cјÄõPÔÈt™;úYi ÝPâN·‘xH{Ò)!ŒÃzNК…Õ ÷O*<;µ£Èˆ|§A—[Uþ<\‡ ½TÂŒõÿú7DR5”&ó ×…ˆè‹nþyÌDÎpÒ_¦Fúq¼{åÌ[¿‰“¥ø "Š‘D’G6¿±¸Î[ò…ì_›êßdWü÷ﯢùÏu¡üÂá, EÒu¥ñ†h*|ì¯¸»u6 smG„¸C©“lè›Id<-°3ü83Ù{mžQÀÃ`Øò†ÀˆÈg¼.ZtâÍÊ¿ý“‡"¶vgì‰\KuðÛÈxðꀕH+D ©´’¾–ÓZ‰ÛqåJÈXqb¼žÊþ>;7}‹¦dïÏÀ‹±øø2â1Wˆxú&À†ûpBäC¤J®ó„øÈøki_qÁKïËr‡ë£ÿ ß¹ìAÇÑUoj¡@ÁÀÞ˜\èð0¢6‰˜Ž|e“àSÑ ¤ˆóZÚ -Hb´=tgüþþ’ €À˜4;D¿Ëa‘91ÀÄÕEmIqðG3_ìE£S&ð{Ð@è’ØÏ‹–(r x Ç|xçùÍ€WÚ†@Ž"H…pÚx·Un9ã°]×"MRˆ³ã<˜ÖšL;T'ëÒ‘Ù(i.„Nˆÿõ'4`¶p‘‡)1›o‡ˆGv‡“ÿfó1 7‚í·B ^d ŸýZ«„éyý‰Í)!†Ú¹)΂’â\¡Š§ãÏ/“H];-±N$[Üõ/”¾*Úvˆéáþ]Ùnœ|š<(íéëïÞ jupåºYÊxʼnI¡Ñ8LÙËÑ}&f 3Cäϲߵƒ—òÀhþéQÐ é ¡°ü‡¦ d[ !âSq÷ÈPA‰ ò1´à÷±3„žd› ‚åÿZÒŒ¸ ¹âÞ+#tÄF‘+ñÄðñË×ã^ckÊqÛ8’ì¤z%•§vùû³ÕÔ(`Mô»¯på·Qëƒ5ãbŠëÚé³Âúa“@´øè´û’? Q¼ÓxGœÎÄ%ê’}¾šþ k¡S€¤ÒêÎî‹ê‰{HHv©+ÌÅÀ#þâ(æô‘Dq½_ÎÉÏŠý«©cËß§Üd9zÞ$‘>†õw&­ù;üøMøù é3x¨ÅDº›qÿ]¿A¯Çš¶¸1óo?ðô·ådØä ÓFt°ÌLjQU¼0õŸí¿”–|’ ™ÄÆaŲ)š2‘þ_déïÔõƒI{¦?: À Â"y38k ‰pù¢yí°W›ývʾC³~°á¿“òc‹3÷L~L)ù¦Õÿ%9_s¤Uxö‰ÿý—Z3‘)ШÄÍÛHx .1©c¿ÁpáëWdšùÈ8g™ì\­!x)0ã¢4|aˆrˆ½´c#$šET¸ÜßUï<¸ö£­i@íeêÖÇLÈbpm` œ ¡ŒF8î‡÷GK€XzèÅç9µ?¬0Ýz½²\»þ>¨IøiË–ðb´æ¢î‰óC( ØJr “ã§+1„€ ~1þyoŒ=ƒ‰¿!A|eèo—8%ÿv°u_}ôÍ%³þÊiADþÓê$g#ùP½ù˜!ô¦†ÝB‰ÜAÚêlŒHïôctýq'Çß—ar¤ƒþåwºÞ'k?Ë.K¯¿Ö #‰[1ø0rtèX{%·F†¿gôV´¬‚nØz_³âK(_DžS€ E1ç ¤0Ãú2—â»æXÜ$ª¾„#Æe©IÖ}é f=½‘ènš ·ø¢ë¯ÊÇ+3lU€Œ#pˆÛ¢e×ï–[Cþ õ`…xy›O}åKé¢]¶dÿ¾p=“Jï=™¹-1 >FDŸa&öhǘ8„µS”Õý¥Sb¿ôZHÄuiÜ¿ÿΔäŸÜ¤O¸žMyP™¶–ÃüûoeÝ$þÞ-4noñ7ãB¡žÎZòuîïÊ‘@Ea>>æï¿=ƒ}DûäŒdì bY;cki|Èôj }¼^ÈTÉýK3ü=üIÆöéâþ¿ÿ®Ä¸ñðð©çÀ¦=Š&šþ󵕧J|Øt‡©þRkm1éy±ñk\ˆýqÇß—É~Ð`;FÁ“9oLwu#2¬û÷ˆgÃ…@jÛ_f|‡œu³èÕ÷äο‹Û-Q†¼±ZÅ‚|L¨qáxšl=ÿæ?7Sùã{¡Øb´í*Dð.×gæÜ VÖÅ: ¶ ÇØŒa×À úUPAÀ˜WÝ!*&r ¿²kXÌš5” À_¦Îã-þ2û'[ÿÝ¡Çït½kXãÙ©ûê´QpŒ ÆÜØb%¿ÞÝþ‰¸ÿ;}#e·}DÚßÒûÝjökFò(Y‚Ëð÷#{0äK1ˆÕ"G€"iuÖ„O4kÔ¦‹½fœ©ÁÃH߈ƛ¹³íŸ5mØ o± ìh÷ÿPßU“ZmÓ µÂ7 1ïxL4 GɈÙSÀ‘Ñ® 9¦©6óþw>éΣf«PV²‚×6c¦° ìfË› 2ùùU¼«ŽÞV܅˸õPX!òžÝx!ÝaPýÅ—Ãîe<Ïܳgüæ* áÏ_VdÐWLÄœˆ-–P?v0ÅcL&hÚ{Vè`iÒ¾‹N¿¹Ù‰jŠZ¡åDÿæü›õê@Tœa†ø”¯Ì — &ü1††–?(Ø(`!Â\”}k“$aœ±Æ®˜<£5V|Þ¾›¢ &Þ<]§”ƒá@Ÿ¡|Ó~w£sHKúß¼¼Ï‹+­e»Ãù»&&Ì `Œ»Žì„þ§ÊÑ}œVÄúñ‰ e`:C¶~å9^u&eȰH⨞VøP‚åÁ£Ìé§îBì‘tOŽ«mî¼Ãa÷s@á•ãZedÆý½•wQ í4#šx ¼S}µßÁô̈1aÀpƒ é“_­ çy+qÝj0Ç6D¥í¶ó4<ùa&EŽ}©õ\§ˆ~â×8Šë ‚ß¹õñw$hKŒò*»kóÙ«@÷ÄYäld¹9ûšaâÕ]–pK¡ó›¹ìEë›Ü"¦c ì»Í{J"Ë"Þöeõ;©yOêó@¥ ¿š¦fç `B:â)ôÇÄ´íÄxC_4íõûX…¬Ë{‰ZO E'‚y/Ħ½’éÚ3} ¿yÖ8‘U«‰#dzú)Ù¼$îê´ 3€ô“¸Ëh(Þ×^=h¬$D“96€Ïë׬ÆX¤•îº9}B̰e9^¿x ¼_¯rRÛ€£ó\‚çÈH~åpΊ/|õ¬Ù¬|~ãÈÖ« Hp]:ö«Qú÷sl à¨ðâÖò<±—c2T.tcÇfÛyÝÙ}…è> Ä”nÓáÚùÄ蟧XãŠvJS+õÀ®ou3’èࢵ¶þxÇëÞ‹_¯ŸG€ß¾aÏæ‹¾— Ù{ÒX«îZé.ˆeN뮤gU tåÍ­A»íÏŸÍ®oñTŒí ?[£™LsƒÐÁ ›yrýÜÁ¸ dƒÀÄ §îÆ,ÖB ú½~£°º!•XÒêYôàÅ•ý*,Áà¼Lg"æU³ÆÊ]À«nÞÿæ‘ÿoýþéúPTgr3.'k©¾[E0÷뫟Q-Ù‹Ø>œ²ì5 ÆÇ(x– !RÒi‹8Óà Ê˵„Lñ¾àAì=G¯yèá»xÀÙÇ#€Ço¨<ëwd¨€½êøK~w À„­Ó¶WŠâµú¨ö|Ïúó-”•¯¡Ñõî"ñ9ðo¦×ÚŽ 8zÜ9ªŠ3©žc”Œ…õhÀJFL{ê÷ï«á›mDŒd™7æ‚ÐÔê.À¶0•ÀùíyxîW5â?'æˆo@vì˧`ËýQ{K]ÂUfd¯±~gvj#õB¸‚7CïÒœ¿¾1€Yð,ä¸xàUý@’ïÛw4Óû8¡<äˆðþì·´dý[0™ølcPKˆ÷ÑŠ¶|lDWáapJÝûwÅØ7‰3Ê7h,ýÞ× µy[ìÓuÅË]`#àKÉW]{÷tÝ·ŸÌïÞE8ð,‚ÆŒ¡°ÃÙ|Ê…o>JBO1ÞÏÿ¬q29000ð‰¢3FAÃC}PÛkÓ6³þ»<Ïs¤S†R9󞘮ŒûĹ!Éã zgýŽf&ð&b¼›÷\!Î@')QåìÛyŽšBÝÜÞÔš MÈõ”kO+ÿ»ŒoÿíÝÜÜY¾Ã4öò2s¯=ˆç92k¦9 ^ºÂèÉ{½{ÜåƒÌOƒÛ ™û÷§ÝG¶Ä$»J_tÊßîÊû¦ ˜|¼<õíÃ2O¿ŽD°‘öø-( R•!˜èÀœ“Z•ÊïE›ÜøÐ\2?ŽßŸ¯råÍ©¿•«x¬­Ê•÷„õ'p4Ö†žñç9¡žξvµgšÍÚï(ç£xŒ(b;GöPbÅ~ðî/¬UN#w¼Üüç½Ê Þe¶¢Ål6­£?Ïmgïr.tÿ[ùöôv`‚™„\&©‰ ‹\¹Ñ;…ŽZ¼Ÿù”-Ýc©&žÛÞêIý«¡£„wdûö—–E>½jóÝÁ|[×'æ{É¸ê¶ØÚ€ìRÜ#\ZešÅ™9ÙÍì6Ÿ½[V_ûÛz8 àË'öÊôÌZeƒõasá%̴߬öÿ]’¦GÖ²p'*`ýYÖiHXpÊŠ9QãÙ3jà8`ÑÈ"|ÜÄi6 š×WúvT޶ë«q‹f58vãYM«9I©kËÑf¬;î»u‰3÷¾Ks  ™"HÛ¿7>Ù/š(;ü¸æ·K½8C3Ecö«ÀvI³ãs¿í÷׈·E¡¨vâW“þX¬19¨oGóåò«Ba™z´s‘O«àŠâ¥žJº0C€—©73àžB-™«¿áFÕoïüŽÛKº/šW)û†£×QƒX£kí k­ç±–Æ Éï¯ôIBT/yÀÜ[´Ë„³Ù~°Ìºµë€Yd4%ÄQ×WgÒ¨nûí­aø’kü]?+$WT\ßñľ ¸g^Õ ZaÜ Î,Ç`à-K\+ ó`ìÙûD¦—"è®g]Ð]Wr+øFIðãÎ}ÇâÃW%\mªˆR–Ћ’cŽò.Ã"ãÞ¤Ìi÷$n|íQVáÂpË\ûWµR°¨÷#2³–Uä°óŒô§eÅs9/áË«¾Ê4¶ÌµCvÙòHðºjD´e2¯px#`Ös‘¡V¼ ^½îÒO ÂWe8vnF¡˜2KþðþÒUEáãV ß̸Ù*æ$âuzdòŒQžçËw¹{?Ö磼šíÝ;ùm¤*ÊY[cS Y;‹qÜàÅþ·1/ªÄêYoÚħ#Ù¿uû?ìý­ÜgH-@ÏÈê ú¹Å·©ûþ¾MfÂûk)öÀVþ¿b%ŽWA¶ò)ðØ70zVQ2¿»’o~ÿ±x¾Æ#¢ O±X3O±Gœyν@â¤;æÃèèµSÆA¥ˆ¹JŒf® =s!Cºbñô0É]°×ÝœÑS™ê3bñ!»Ø×®gX‡f(û.®m–ÎQ¯Â~ŽŒfgˆ¸K&¼'ú>¿y`ózj\ØÓ]c 4/wÆáZÑËûkëi€^ €b(IÆ·Wµx̸¾út<…邪t“(ú,XAJ¬Ã¼JÁ#ÈÐ]ÚÊ{LsGáÊ4{›kÈhvúÞIp+€1¾{¯ÆñÈi#xô_+qäshÃþ´r´5‘.äo@«—7ÜÆAÆiù{;ßßñio7, ðH ûð$Ù¬µHÞ]£3Þê܃(íøÃw–+Ég3Âõö¯T [‘§{8,:â¹×’ž*ŸìÝÕuw‰Xß3~2âWñL„hgºG.[^•qdßÓôÜõô›Å3Çý*è —Ê1³‡ƒá:t]»Õ&«²Oååˆ {R€¿±ãíè¿#»xþ]î’Ír”ÇÓøKJÔh;Œ Ùiä]Æ Y_Yëw°ÿ†¾gFŒÎÂ+lj5#ÑÎ{‰:Œ~յؠ'£·­z:߀âî–˜ÚHà.ß¾cBýp—ó>Þ`\›io•ˆ(ÑÖJÁUPÕrv߀~?û‰ BŠ 7÷]:X+à™p‚É»çŽ ,A×Fq⬇,ÉDÏÑ?Bz#Wª&h¶åæàŠþ|{¦rÛ“Ol"âÜÄÌ’iÆUèqJE²ïÚ#Ý‘ånYŠùˆŸA Jn«ÂÈŠ£›ˆ¼e®ê$·®ñÝY£[{®=VÆÍy€Bg½ÆŒ{€vóRßÓ`xr9dý™yU¿ÇéÝ™c¹sLÔ[§M#˸Ôêk##æoiad¦~› ú¸·SI.úæÞ#ÂCMm=AZ`ŒÐvo Òºw^v"Ç 7ñlnOõg•%_=qWÙ‰hùŒ\”bv|fá5š@¸v¥¿7-qÖCÁã}a >™ñµx‹õ70Š!¶§¦ó »å)®%ÝÐ ¦ßo•„zDœeFyuäòymÅ™‘hôâýóÜ–“Èüg Qàßø]Káb2á‚ñ_{@G/ÎlÆ Tç]:²ó_¦þ• ‹Fæ Èä$t§=5cö9,2ß#~§ãú*Ëæ1:Qcy¯§òƒ(׊v…ì#„&"ûœ#ì¬%Àf"´6{¸W^5ˇŒû=3&ªmÜ÷ýMÿýæ'ìx¼kM|3Ú¶¤~ø¶þÃ*7óòª½GŽ&¶ vÄðÏú ý-G~€FŒN"¾lrÜ•åV>Mý–·Šœq÷Âu‹S£”'¢×¨ûúb™ª¡õ_g\6™VÕ0_²ç±¯ó;1‘ÎÉ1SñÑøB;D^È­æë¸SÖ~*>_u„OY•qX5Aä´´äW£ ²vDRuª™w#Qœb¨Ætã¥ÿÛßÃz¢¥‘+õ;bÍéŒEPï® g‹Š¯GÅHøl“Å—„„RÅô³ ËÙ«n¶ Õ!ño¼é¬Ë€½«ÿFr@á#,?iÀ¹Óu$ଞ½§¶*ÅW&(°(v¿ƒD¹‹`š…¸@¨‡K)” 49 Cò@ìð^Ù•ûkÐýê~ñôaaÊØ"†>¢bTrI£Ž ÈœïöáâÏÜÀ¬ŠØæ·®l·þ­¬úĹŸ2î{NhR¶«<Ëäú­ƒ|®=ŠI‹µ¤£–äQ’uù£H§)¡ŒÐÕ¶Ç]3í¹ŸyñA;vÒ¤§<Œ{­U •~¦_¿•kÙ|;’>'=O¾ÂêößiÔë믭óþ vß_ø½õýEàû÷ÖÇjV9Â3 Îçf‰(¡úúÔˆ»—Râw`"ÁBÒ pKƒµú7À’g!Ò” nCðpG ÿñ^«þM€yköi"£3¨$óÈGÌ$£‡uüÝã ï>-’¯QÑýû’ß_« Rî6€É–@£ÉÝÁØgŽúø{îÅ:;csýJÀìǽðâ0]~óÀäùá9ðáQbaB.J–‰}Á½ÛU" ýÝò~®»貫ù;D$Öæ;§ø’É«HÒæ=Æ(¤7wYÊ92wa ÅÁÚ2kξå²]óT< D"Æ' ³³‘À…U[N&Ÿ¼ómÏ*DíÕW@Ç‹ÿ¯Œ±?àùØØE-žW& lD2ë§ØvH…¿±àɰ³ÂLHÂjßq­ð”›çæÏVÒq‹ 6¶C@’„Ì<¹- 6äÓ¡_ah0ŽÍTê$^îu@‰‹&ÅKK sÄûl þ{1ì¾ù ‡º®Äô>*¥ƒT'J3Îä­gÃ1ÛÜê%¿lºÊ¦úŒ_V85ÜoAB“ E­$ÅßG²GV€×ú€Þ¬¹¾¶™xŽg÷Èý¦Înn€ ¼&ü±U¥6á¢ï`4—U“ Ûþ}FÒªŠ™„‘˜‘:a¤ØöΤ'®ò&0RGT…g_¥}}D¸Xu—  I/<¥îw.Á„ejÒ¯3.“'}1«‘ú’R%ù²8–ß-¾5c?èù:f}Ûóy*æV.#Ôþ·7¤Úr-‹Æ®tÉE.0{F—„çè«øý)K\. |kíÙñÕ;Apo2i8Ñ)¸µÁ' 1ÇŒF6ahîß]B’°ü^;>çSñ—ħ%ƽÉnö{?WøÊ\póÌ]Qü”†‹Yöô¨Jˆ<²Ug© Ô‚x°ñãÁ,b½•ŸÄ¯lö‡v N$ºªŠë-qªˆd2ß~߸Ùæ Ô±î‹ñ×AMÿhê·ŽžÄ]3fôÊ:¿–¼‹Ú"îçáá6 3ý:¬ƒ ÄpÐ{R”AøR›1I–€Zxªmï¶ÕëîÀg—-¼ööaHßšÓiTüÒ¯m"ÁÊâÖÐì¹Þk®½¨€Q ¤ š»©là>{_„Bûm÷eP$gŸ5:C1æ-2åczß}T±»é>È'±Ž<»Ñ9¾f$= Šqw©á Laú1Ê™©‰„’ï«93¹r·½½ŽÑAþ==41¸£Ðà¸FiÌÅs™ã’^•d’Gê)@¥ö`EŸ6–¥I £~§ýŠm²QÔ¬zÖ«Ãú]x¬æªù •Ó'íçWóqÝÖt'fI÷÷÷ëïõ7vž´P®=>&uÿ}éüŸÐºœúU.åæ˜‰ dÁ´JèdwÇÔ"ÿ*M³0ü´coœº÷Îè7ŒõÁñû˜LŠ3Dþûw&0uð¬I“Ì*Ù\"0³ÌEåµ4ë뛵Ýb™{> ²øŒÛxw2»©(ƒˆQ–Bg…‡,3ýSÿf÷þ-÷>y¯VÁÏbñ<Á z•„?>KHÁꊋÑÛ$0Ô˜£©u<·;ÙñÚC´íâ‰öCãu0On¾òªw³ÌºyÉ·Š´aGÓ¤$Þ§l+(çUG"nÌAøð‰ÏeXè5© ¾¹‹Ôbr×Ðxb±Ç#ËQ¡ë€ ×zdÚ~xí;X÷òu¬˜=/?ñü×u@Þã¤D½Dgè ²áàâºÇÙöwþÒ†™WYKئ¼÷_.‰ÍS³»j <µ8œBýoKøÔ·?ÌqÇû&Ö_m’¿²L;ÍŠ26*½G6»niÌ?2þ%R-m¥Å¶6ò蹡G’H?®º ñ/2¸¦6ûžá û uYeëo>·oÕ¶Ôq£ZîJË<ŽÿR”2_s:û™Õ'«^íëרŒá¹ŸÂ9+"-£sóHM†F¶/O·\Ÿè;wyÖ+¡ñ.~B&¼èý^øÑ­Mã(Dûø¾f¯ ³ºÓkáÁºžKfê'É3â1²‘çJ¤6v$Az£áG®•tm%rGaußaf<æ,ˆùñ¬g#’•5[Cr»\Œ˜hxùüâiåï ?· S¿å·¹ã`ÉUޏËâµ³(&s^kßy]³ìI”þƒ…W̟͛Y‰Î´Åµ¨1mÝ‘]âªÙc¹±¾²ïï¨ÐÉ’ë‚‹A4«Gón½ù¬A³ÖœyÕÜÙ»@?løÊçŽëÛ3^ø G^¹…“3{ú´ËâÐýpw–ˆ_(8e&ßÝrŽïØcYOÛVü(MÆÑ³m@4MW¾2ò¹Ë³GŸY  ŒVìY£Ç[3?ć1þ²óæãÓ0 \OKÌ[¥ÉÀ‹y࣫îf,qà–ÆUÙ»xÜh%ÌQz(Æ!va^DãË_®ç«¹Ÿ«l[“²Jv_XľâÚÃOÌß*÷­¼cÁ“₱c4ƒésÏÅÈv»ªº,˜«F—·ß™?ÄüHëmì»~U®ÉKXÿ­øNuáL,&W¡-ÈË=@ñS%+¹2±cßÞ˜/æ ¾éWÍݼ^u§ŸëXÎʼÉ\¸ s±ðj…ÒÖï"ìÃè-Ù`ñåWŇ½Ø·lª†ÍŒauò®9øùŸH’£Ø€kHû}ÅÔ÷µ=Öò2ðï…s»™dyùíjá åÄæ©u,ƒt?4fÆ`oõ“\!f^eøLüôïÇHëìŠtùœ5' Æ2îßηuz&wÜÛ¼K ¤sðVðßÿ1¨gÀ\Û²¿ª~%p„—býw Ï0¸ßrýxkŒ¤“-OÝëj5ç#xWжAÁMÓ’êáTœöŽr¶kWÚC""]RLb÷*Ó ö)æ ßø}×vSS°è‡ÀŽÑÝŒ±¤è´uÈû¡,Ús˜ݯyŸ ø&ã†yºÉ¡mIAB Î#·Ì{vyÇ%üXs¸¶%Ý0:ìl¬@œÙTÛ+xè#-bÙŒ"5°'ñ.‚X.‘óÊ8>ˆ›£s^ö|i ÎÕ‹/Ô>qZF‹#IŸ¿—ן­×Ó©’2KãA¯L§bZ™4ÿ~‰¡Áær .1` ^kí øô f6¯?ÿ~T ÀÜ…çZï$ö¶ØGšQï¤ë&£˜uGSËD ü»÷˜7×dx0ŽësÔˆ~6ð&¼¾ãŽý>ƒŒüÛã/\­#ûÚ!óbOÐÞN&Ú]ÏbÜxÍÊQ»bcª=l0„š¿Ùß^âØóÀö‡ÿý²ˆ‘7¿†ª„{Ù=d"O3ËÆÆ¶÷áªÖ-¢ÅÌÁFœ²L$~š‹faü~˜÷*aÏòŽ"r¶Fx>‹I´â÷7 IGÿU(G(ñÍ4»%5^›.ã´Øë#\?·©8ú#ÔH°Š‰ëÌsÿåÁ§bÓ~¶‰Ò x¿#µÜ˜(_Ͳ'~’»4ú^£ìIXX–*´b®o+*[îñ;0t ô½˜þì°~ï#8‹]ùø/Âã»ké{f„À8”ÿËì,;ÓÆ½¬ð1¢y@’qD¼°;žhÆÂÀ{ò¥ €ø/¶Û%>ŸØ¶yÖ 2‚ Oì{ÞïÝËRBŠ£'ußg[ê½øI鯲è;Έ]Ã&† “Íðç3eóDK¸‹›q½ÛBÂTPÏjžrœ’Ó-×fô9P{5¼õ¬MN'Xn«c¦G.Ø,°Éµ——)9œ$Û-Ú~mßbõWæôGNpÚÈ ë¶#2ò‰_å–B-‚0{QòÊ=wœ’vsÄZ£§j3/Á“uÌQð^+wÐ{´ÊrÏãBŸ@ X²™ä;fo{jÜf²1õ¹À¼ùH0Qš…(ÙKd‚]–…¢võ‹0_!`Ú˜\"‚À«§<¼\«“a4Üz ŸÝDlüƒÌâ»Í¡_e´ÇŒztåÚ ÍÃ71,mØ›÷å¯Ê8žÕÆ‘£ª7b~Dœ’ÕXöÅ«Æ4³ï×¶ºñý%2o>†%WµÌ¦ Gæ%^%{[EÖr Q¾E ÂÃß¡Œ3/+(Šª¢Et¤k/ãÄìîË(f/+mï ä÷›Cw^Æ0;‡%F/oÙf2ãˆßñÕLE£ëŒBr?Ã*ŒDÍkû—ât²‹7 ®ÒÚ=ýô•=CW8Æ[/þæ!¹fÝEdCj!òÄ)Æ2Š-ÿåãú*oü|êg꿽õ,=gƒ„|Ó^f½xqŒÏ¿ÙhÆ[å™7à^™³l{‹*÷‘}‹7}´ÞÁSD64ë?Ÿr`þ?‡öз£¸‚±®ç²â|ªªâd¹ï>jT·ƒ$¾#s˜c~ï…˜ûCã;¾ìq³ø'”Ü“9­ÍŸÍœkáb@.)ÌÚ~ŒRã´W‹7‰f ³sYŠ|ËY+yw|†ŽÙo›e„|¥’Ù` Á+-q— yÙ,̨vDÀ:¼õ°éNÄ&2i‘cw‰P1.žKL4cåW›xè,„ïû _õLfÜSµ} ȇ7_ë|­~ec÷æX/š ~ñ:±˜ø&¯‰8wÊ\Å(ñÛêZÑû¯…½B’ƻŦûo«çÊòÔÜ'ºß»2\ÕœõÿÜ ìûŠG\6÷…± ·[sW¶¹Ùº«Ïíÿo´Âþ[Nø•BC­}ú_;Zs¶òÍS€(@0+±ß-8«WDÀ&GŠ“O)¹uÿ}wþûûÂÒsr b®2Ф+ÎBZ/ÇUã*³|‡ãHy%p’Ψߑ)ÜׂKº`«äS”:Ò88˜´°‘ò–³ý‹„Ê0´Ä†„†f5Å];R×·9 &à1îü]oÚâ'¿OÖ“˜¡ß›O©ó%ÔÇD1ÔÆ/k2úùœö&âYØ€Ñ/%‘ãê•p•‡fZêÝ@þpǼLº¶ ê£Éu×Þ„siŒ÷î}mRšô;ŽäûÞmµAJ±aœ=L8r8w'Q¬MŸ‘%üªU‡øžQÒ3û D×¶ŽVÏÂ&"Ÿò‰Mz$¤íB×¼M~®e ë:Àuħ9•2Žª¿c‹ê¯[xðÇß^ƒ÷Kˆ[åÿ wD/6s?2‡¸ç$æ© ±qB‘œŽM$K = ñ+[Ž7ç²"¿Y_˜é_bÉÆIÜëy*®Yõ=mÛA̰0íìùVw[rs`ˆïnMÞ÷5é• •DùÁ¨?E@kA°s`ryÁDç¿mÎï9ÂÎÊI“©b ¼‰¯:Ñè€éÄäŸ3YÕk&ðU¿ß'Bç2ÕfÂ;jBEøÂÈÑ×€ÜèÛÙ©’ As~ÛÙ¢½_Cê„Muâ¯*,—“þls¶½·ýªÞ‰.7uЇåÞÌöå¦mpW‚?ǸG+QĤé×öc$öÈ×ßìÕ]3Çus®};7•$i¬Š?ïôà3-õÔÁÇmšd4K¯ýïS¬:Qؤ_óÔ…PÒÆD&FÙ#)Éì»§pÇy¶7wðöº \£Cés…c)é;±¶E…&Ù´Ò Í×o)VýzUËœ·P®ê)­/m_ô…Dpt€Õ’yCÖâ›yæ›&¿1jÜÀH>E‹0Ö»ž%´wí}Uvr¬~›©^õ•]f¯¥L‘lžR¶³ïII*×q÷çYf-Ÿ›ßW¾½sÇ¡€ _üèÖ°ï,­ýM*”V¹ïª“•êð›åAP¬eÜûØî=dÌÊÑ„â;·aýÕ†ûL{£ òa h¤<Û¨AŽÞ—hä‹Q¿Úä÷‘É=bý©Zìõ•(qŠŒZ }n?Ý{äÉ’ûÙî±ñ=V£ìa¥šØÿ%߉éõó^½üÉ]ŒEâCy·h!NþÞkM¬Ü&jM²èïsÏ[ZØŸÍÕXeçHb)«Ö8õþ}ñ‹Ïè†bÿPÑïú{iý–1B0±c{.ü$ŸÏ2ŠÖõ* ……r0idéhé²(‰E梥úµ’@nNÀ¶lÏFåõŸ“î›"›ö~ Ä Á<÷«™ LJ‹Ë-á¾Ø)EKãûÎ@' H=ôAߨ‰>4ã: ÖvE‚3¡rŒH ¶$†¦Ú›Á{sèðç`†Ê(ð;ü8^u"aÃs‡ã±©Ñ²u}ß´±ñŠ;M};ü}ëŽ-å¬àªR¤±¸jŒ’툴dÜŸcO+:c‡8úVEžä„Ü2ø‹û¢ Ø_ Â'iìïÄÂzâÔ§<cP3µ]•Àð%¬þ½ù[wœ>IÛ¿5ã/®Åÿ€DãÔö;‚<ö¶Ä:,@ý÷å±õ t17cP œ¥_ÙIÚÊYŒË¿ƒMëZ3T¢èX‰BE¾ï=¬æ[ZðïðݲÖÌ«žŒî¿o%׸Á—Ÿø;ž¥F´ÄçÕÿv]ZPc¹ a¿a—{ä³2ÃS˜óKHÄ8BóŽÝ$&€9WÅí4žÍ'þŽÏÿ&NP¤-Ñ莣ñîì[IÈ+óí;FÿbÌ«¾Ìmâçï-§"w˜ƒ” „’C|1SðWÜ_Iy›Wæ9þ 쾜•í{ázÓ*øtßXΉR_B}GŽ«¥Ø°WdvqÚ%Ô j‹UZ‚öàÓsDžLàÃÞrÃud°œOúö¯õRY z ”uø$æŽë*¡÷d~ŸI”ÞLÙ厖D1üØ2Ê6—ÊC}7©á¼;>ߟíE´#WÈ›¿­ç3÷×Sb"…¹ Ö»„E¢:ˆŠ™¶Ýèh¦9X½ÝeÛO”ùfå{ÇΞn 2Ε"èO2;¯U¨ÐVÎn£Uf×»Û®Xçv[Ë>"ÜCLŽ‘ÞÞ\ù€@X·ȸ²å|ï¥3ðâ^ÇYª²ä:ìb40†ìʽGêÞ7ªÆ%猯pllnädÿl.3ßû.q&6¼íÂók)ðÉM½ì­)æ¼ê…£×ÓÅR³Ïì¼jŽd™ªÌMšõ;wt!2M¯½•ói[¿¹¿{] o¡ÿÚÙ•ŠÑþT"6ÏúÊÛ—zUBvÃÂd=±¶z!*-šDraž•çÒó_e¥9O'ëv¡±v+ä¦}ŽlŸ¶EN¶Cö“£h "=›(œ(Šî LZ™Ûyþ§'âfwjÚâD¥Çÿû$Î}»ÓMšDÄ-³ÀŽ]Ô¾ËNüKZkTÍVÖ‘>¯:ð›Š;Ä|Þk•ÿÞÃKäb”?ïj9ŸƒŽŸÙ¿ö×?}SC[fv4L“llX,6òW|Ý“ŸÑýâ[:Q7ý-€ä7…âóB¯GI'd&Ц <®„¤gˆ;œ}RˆÞ”ÙcWÈ ú¾{Õx½\Àºïž ›æUdãY •—]¸)^c”ôiñŽyÈÙ¼ã,j£øråUø»“¢ÄE|«IóÛ•ãÞ¤`f)GåßjÞ„º]€v›ÒÈŽW+Ì3ùžÝ?ã,_×b»énGâ® \|Åë£ãïK.+‚¸ÇGŒ°ÿíy˜ù-™ö™;3orcZü *²1cXOíJÌ2øL45ìÄìV¿sGñÛ >:õV¸*¡õ` B…ÍiæúÄo£ñMÓõ=›bDnÔû‹{¡ø-&<ZÀ.ŒŽü´—K+¼Õµ¢msô×V9Xýæî„ù“–8TúÊ·£Ô6–qÕªç2Ò])^»;¦ß„~wƒŽâ+¸cw^‚Åñûw`h‹÷­’»C1ݳðú¢o±ÃöÙs¹¯#f’#±KèÆUhf×ZM=š}‘4qž}>qÚ´žÚnÆ)@2¸¯d4œD=±½®çÈ»¸â#à/Xü·Ø¥§îþw€ÅM¬g%¡F{öÆ%ÔY;“ë§K‘Ëkï#c†D6¼<ëÚÏM…À{ñ'fáUè¯~ݺ²+wÇýý¬Ê—a¾‰á™Àí´„ÆßBáMF͵™çÎPÆäªwÏ@ölÞK°±<äÈWÙÞ½ê)Ì"‡îÞ*ƒGúçÛ¶Á(7Uåee츾¯÷]£†Y9Ê:qf¨£K’Ñ?.ÄXÀX0RÌSį¶gw“Í`™up¶‡cÛPØ3N(ÎV±kš,¿Q¿ÇñŠ’ÈåVÜDÄÊòåQ›£¨´—øÅSž=±,{•câ~ ÐoSÜÝýˆ&:ƒí@–¡Ê½v/Žñ¼ãHPçè¢ßCØø†úWbV+ß²äÝŸ7µ(6ö¸¸c"šOD Iˆ²Íê)³§UMz™Ø‘œÉ o‰¨·ëB¿}FÜe¥W©žEçøOëãÛY{-#KnaÜ,Ñ<3øUoãѲdæþshx°]–´VÿJr­5Eú±xÌÙ§0ny•¸FäÄû80nýú×H%˜G‹ÄWý%ö¸­¢¼ª¬ë(Æ80+ùõ+iKdqwEtŽø.Ì5"Qò5Àì âŽvàŒ÷§ž7eR—S~óÀÏYwQ†¢PR8¯ê¡Q3Äïñ%fɕ꨾3ù¹ëﮞÑðn^;žCUüS¿QøHL‰ÎXÕ»ÌCû™,‰úzlЬ޳žÿ=«òíºÍz9â©g¡0ä ¯‹A³9Êâò{fQC|=~çŽb­#ÂßÏá{¢,º‚o¬ìÇ6Å7ÿ3•}è×/v'FÃyXˆlìbàoV?+x&Ž»Û¡žþ))bí>2i=ZÈSV5Ò&f ïûΈ8ú~ŽÌ¿š :·cÄŒQ¤Îˆì¥Gð,Ø?Œ®ßÜ¥ 9ö SUrß‘o¢cavß V`‰¨Oè=ÐõÒ¿dYM? ”‘Ù²æ{·NŽÏU©ÂÝð:¢GµKþ{[êÁïÑ`ù~«¥•ù4T5ïÉÓÙïS¼ÌsaƬûŽlWÙ‰’îcåÚy æðªQÞAwò\2õÑ«¢ÉµŸõ\÷,æ‚Õ`ü>¾ÍV†S¯ŠËñ{(m0dL¯j{F<ë¹N”ʼúöŒ÷#jpŒ£Šü‡;’Óö7\ûYŒNŒm™}ïÖOÇ¡“ÖïÈ;ò6"ÛìËL'6ñ÷KùÞÓ7k# ¾îYÞŒ-;)x¯€}ÐOœ…|»‘½¤0ÉÝ(ÖS˧`7×6äCr|™¼}'ÿ#€Ü‡|Ï:!–âÛˆwçŽ.7Ûß^Æð)”¯¥ €¹5÷Xžç€<7³²=“ýIñMŸÈVÍ#ùU ˆ´ÂO¤ø#Iº˜æ¿-DðS*ôîKüOŒþq»(òÈ™\&üþ´C Ù.J°»öL‚@à˲¦d´:&ÙÙÈ!¡H®AH#ŸX€þHw…ø}g¢µ=#ÆýÀt[ ¢ïÜã~ÚujútìQ0¢G"P¾ÿ°¿÷Þ.’Ë´‹çû¬ûI™vuçg)¨, È3•ž€·‚þrïlߛ߉̉W<÷J°ÛñÓ¯$S˜õ-ürzÒÛ¶¢…R»Àßv‚Pó,âZÌqÙQqtó3öÒ‘£¡ål¢]Û^OQ–W®ànO;|gªJ–ö·»Ô$ÈÞ5îþ€›sü Šù9Ø4š„Ç«,5VBåYz¯UÁ¸GaÊm1jÙ„@óÝ­^%Ôýýj©Ò–J<=Î5½Ô’’ùw4ŸÖAÄ"žAb¼b(J2:ž!â)q×^ºã”}™ß“ò~î&Kœ—|7âÒ¦“±Æw¡¬y» {ŠWËD"V@ˆZ ø%+$å]»ø‰ƒeÍÛ³Ïâ/Azyê.|SM˜@€†ÏØllj|ÿfnŽ ”XŒäS^ºlíU÷–0ø¶‰oH:ãoÕ\Ÿ—èo› î(o×òÅÌ™ïvQ.Årèû¦,Ë®š5¾nØß=A¬{–·#] ç½z±QÄÇC¸ 0eÛxÖð”Š8°;>y±³.¢fì¼÷p ûïãgñCäØàt}Œ'‚ž >>#º¢ÓyâOf´Šþ¡&Ï‚‹ý æ}0r–v×n>’ 6Ê}¹ÊÙ{£`âg‰ä–ÎÛ…Á óÌ*‘ºXR“ƒÌ‹½Ë¢¶‡]žÃ«ˆV‘¶ŸÚ„æÎ‡í×Ö)wj9[£lDLÈ&ÌQu€z ÕͲÄ{\í›-…e÷7N%Ò4ò æàúWÙ€B\ ~at²:NŲaìUr껼'O¬_4röd>C¼õªƒq±ˆ.¢j“Këûm«©¯R=Æa¾8¯4Qæ±dä^hÐ ×òºØ,=𬀥Ñ1üïwƒØHÖ¸öìØa-†Z*'Òß{v(šàæGÜÏÊÄ,Û¹,|ûf>fbxÛÑgÓ›Ùd¹‡R^,×½•ÏYr¾¥K‰£ƒÈ‰[Çk½öö£ÀÓkìsÛ¥a{¹å:ý1ÊÆTRÍÉVrÛ „ñÕ7h\~uüæP÷ž]»´’;Dqš^7MƒY¹o!/&Žw{¥ÝŽd»*2±Lw†|µUÖF¸ì2Ë ŒÇ\Þ«:9¸j¯Â%Ê’m~¤Qd4É.w=K|›æÚÖi\‹­)ÄLê×›*÷Àk1s¾Û†ÍúÕëˆE¹ïÒœäì¿RèqÊ÷ÝÆÁ]6§äÆùìÈlýàI5Dê‚úKÉM6aĦµö¸[;qÊ9‚sëÝãnÞLÇ@0<ölØY4s\Fã·g×úÁÌ-9¤ZÑ X'{P[™< ›Úóî¼yR¡kÝg3U ýßÔ%9»o{‚yµÞ _­|ѯ°uÇC,°(é"{è$|…c.‹ï³mÜú–{;ò^¬·Þûæ]ßpÈh’c.ƒ8y‹í–$rcã{ÛH·&¶æxÇöDÅïÏól†nTDNrÄ¿«æßùDoÄ]-ñ#¶³´?DœV‘„7Ú‹\ ”F¡9œ!„ò8!%šJèÙ8eG±äî‹e@sj‹ì†­”^=è8bñf/ ä^u C‰û;Ü7îõÉS–^5nÜNÁˆŒ±«g©ñ6½çø0æ…äÂÕ²ïËgÉÛñ/¤Ü»;çlÝóÜ'²r¦«¨šùŒQ4±éíۉСHr¹Rÿ«bRúÃ^ˆV ÀÈ ¸®;A‹È–ñ¿’’–…æù[µ*XŠÚî¥Pg¬ ÝWÍ‘ˆÆW^U4£U×UÄÁnïM6Ïžã“ô7rª¸£;Œ†U$뼘¯eEî¾÷Ç]l¼ÆKm YcæÝ¶Ó~…Ð,´}(‹ótàM™[Tw ØAÍ÷[ÄÆˆ×II¨ß–d=¤…wD¬»Ê-@ËØ˜»7K ®ô5f2K8=œðïßðWò“¨é5#ï¨Ôã*HÊc\ü‹bÝø&»!+l(œJ¥GaA¹™Åa÷zèé™Qc—x­Äó¸® ~B²X‡fD·|P0ŽÚ2LŸ¶UØŒŠywP4d§‚°²™e±I£›¿ Åóè_}sòtš/ÝÜuW ˜oì§+SÜ!}A9àߪò\‰DdH Ûóé#ÐÆòU>âñ£·ès0nªÜ]üËÈ[ÀtâžYKžÎqT!§ÒêùlgóºÖ‹A(p¹åÅoƒåÏU|ˆ "c;¬þ½…&wfÏ,ºqwÊ^Ù¨ÿŽ‚ž {v8Môθ®d|¹]¬uIÀ½48N«YvÐê2rÀ†xbœÁ'#»C³§%®b¥L¹ Å\Å”{ù¹“[¯RF´ù6ku„&ÞD<½_}ûKuâ9i¹¯·ÉrO¤Î¬;&±!ÚKmÒÚ6¬«n&VÝÊ@,'ÇŒñ6„“ɯ{GÛ¤2²“ƹyòÁÖøC¼I­¼ç^ö‰¯9ºÔÂvŒ«Á-ò,8@4õŸþ(U6@çuT°vÄd°vx•ë®[ÞŠùíj\Zçà8á/+U:æ2ÀR¢¶þr,_±ñ˵OÅoæåWqŒõƉ‚Wzí.fþ@‚½­ÕE|tò90 dÿHN &PS2Sùux¯¶±i<Üñ>´¬WÝÅZƒ97ö$›W­Âˆ˜ï ‹YAËnÒiûÚä‹¥%ŠŸ±Ô­xRö¢ú^Ì‹º«Üâh^Šs£m{²éÎ|·Â3G{P!€Vd‰û¡ èëƒ0Ckjû¹ÕGœðžP¥U+˜wL¦ÐÛ2QÜåy+a‚;cunÈ]~ÖŽbõ³587Xþ½ì£üªwˆæ3ã8íTŒW|îè,ôȘ8†uíÝ€Œ­²¾eF¼;Kð­°BÈy}; âè霱¨ÒGQ€=c9f"‚´Êq,=À²ÎÚD¨¾Ç=ø»Tà¿yÔ èñb&k‡ ròË÷}¥až÷ØÈŠW‡VQWj©{ãw‰Cã7gg}5wWŠoÀìÄÜÕÑÚx0ÀOªi? ò®ÃV8¢%ñB¥ Ÿœ¾[‘úØ÷à+¼àõ|وþ-i–ý/lÈF€xúäó]Ôìûs#7‰·x¢Ÿ¸ÚÜŸáK^ßvêè`öpZ„Ù ‰ Ø}šðÚ =úØ¢®+6%Œõî˜ðø+XbteàöÈHJqšÆ=m,ÕRVs7L‚xÛãÈb=WŒcvÐ<{Úa µ'éê.$D _-mMÆ À‘V4”káoB2£R°»è§ ø¯ŒY°?Ójo³> »Ù‰DÙ‡8ƒP•K½#êFcÜWÁXÊã·¤ú ˜‹ƒi³­æâ›…èwxJ–ôR¶´*¹Ʀ Ȧ%[Q3 $púÄuÀàlG|r»‘:–™xí™Ø˜z³ßv;œ´šD7‚ÛPҔΡI©Ï¸Ÿ•Kún0b¡¨¸áZb°ûÌ sÛöŽó|n>á"@æP+Aq|wŠënëÆ¥ÚUwaÁ6…‘ ™²P‹á)®˜W\ï~O—¸Yk£Zø«ðì;«@°±)Ñ@“îá/|ê–êò_$‰²¾Ñ”3ŠZÑ7žîYx3"KÜpæ‹é6”81û ‰ÏCîÌeù4Šä§Ò^¶]N¶ ôj\þC?ìI¦‡Ýðð„˜‘y¶Ç ÐýieIþ¥Kâ¶GÇŽ¦ˆ‰G?_rû•ø!VEbË'‚‚ȱufáð«•U¸ èÊ‚§™‹zØ;l3{ßTÞ9Ëæß_Ƴ Ys3ý±Šž±z´QŒë,’ÀO8‚Q .”¢)b×}`ÖD¢P »ÁBÄö‹šÌþ+¸’›V#L“2X ’bïÙ(½`»UøÔܱ(óFœÅWˆÅ7YøK̪hÞw”Àr#‚m îØ0‘V4}«+£tí߉աôRš!óˆYAÉGÃÃoùsºëò­æß]J& î¹;vž²Ýïh¤™/1ÏÍž°–<…‰1Ìkžg1‹ï».y?è.qûЍ´qþ¬bÞÌÜàè[±8Ì«ÏÄß<ÐìÙ#žd‡ù”Þ~J7D,OÚ4ú7=ÐJ±°ó\…»bƒ˜│ƒ·2Eý&²ú¼®B“Go‚¯äQ†mÍs¹î7-Ù7ŽÌë@€íów£¾™ ïk±IîÅc–USÝ’ÏD1Ù·Ø,ÑÄÆ¶|…l¨Ïož9ö¼™7ÃLr9×yyãÝ^™ä1ÞØ¾4>~y ³,E Ù¶E¦Ü%2þçCFߊc9›—ãÕljÕ~oœZÚ ›H(Øcy`¥…‡ñû7!“",Mæf.àÜÔ*û›Ÿ½òËy-Ù™fú››Oì;cÉ‚Ic‡¬u/l ¬q8Q§hïW†ûü?ûŽ i,à úlY÷¶ú¤‰ θÐFS†Mœ´p¿D)íÅ+-ÑwM2-ÔæÆ·1Òöcç-q2Q§— úwd§UJÌŸª>½¿DvOü„íжš`¼2Á<ë§<´õôÊŒywÔ©ãêÅpX}ö«r0õÐU ]Xj¡)’ÓöŒ"â€Èš½rhX©‰@ï½}3±ð¥V<ó9ðšØŽÜv Jæ 6%/æ[q;zÎñÛøKüÍ67–Ž‘ŠõÙ|Â,ê êšä€»ˆ¿ÉLDÑu¾}ðwG²úaÑ––ô3Ùs?ÃCÌG\œ’Ai¬~Þf „‰ˆû™­Ô±£Oñ‰vêÅaÃU½ö¾`™¦œæLUr•â{Äÿ¼ ëÕèÖžØ5ðo¯0ïÅ&;—¨|"þWDã\‡F¶‰¤N„õzÔ  ígŠNüŽ˜ÄÏà“ ­YUb©£æ3]ÅìàÌ…l, &š“ønÈ¶è¹ NEƒx",LÄýñ¾™¦YY§D&/ZæOiÉñdÞ=¥¤°„(I¦gF'qЕŠÕ f‰Å½z'fÌ+ÊɶbýÚY²îéxòmºUomÿáPãsKìå\öJEWV÷ÖÝÚë*f&¯ÞÂÚñŽ“-©¸ˆ)T&µ] ø$ZÈÇ®ÖôªÒœ“:åÌg”'Ðj‡ Í „º˜b è‰/câàIbÊè'&²'ØsñëaÓ6]1ß6Jœyžd&ŒéK«nM™Ù…O»Y¥¿veŸ!¿_ẋzÆ¿ ÄŽg­qÔƒÊzÂZ‡‡ “2¾ÑÉÒóT6è ±.Õ3wY¯š±=,4Ûuò,ˆøæ¾Ö:f ±óÂwe—ÕŠ]¹÷`X5ºÙËÿ#Z×ÕÊÒœh›_  Yg²’ïYº)ܾjÔrqä–¦òî.òÿ°þ[llÛ‰ut½tÍÇèz¡{2 Z&r4N¿ã0ÅÔªjYzt )¸‡<Ò [Ý`=r4¢eëÔô¢ì^àµhD_²P•{Ç»ÚëÄä;Ïš8gz%_™Ã γNÕjx«¢¡¿B¦Äqæþ˜ï¨|½Ÿ_õ ¨cÐqz¶´+Ñãß=â8«UÏ’IY±‹|è –"ïQ(˜\ öLÔj®˺@1ÂxÖÂZ…vÔ³{pm«2:; .²¨h‰‰@lž »»f¢hà+Q¶8ãèQós•÷oÛª‹jÀ<:·D-…özîc;@÷¥(‘o¼{vë^ ^¿ªßaËÕ౯åI{}‰ØEV€5u.‡-z`é­ßQá~ô†c,( ª]»Ñ‰icbªn¯ÂÆd8@µ`'¡9¯¹Ñjþ2;¹çöK*?îÒ·­O®Œƒ¾µgÒÀÓEÆÔµsWñÌn᨞/G?·u™ÏœÏɲ2ȵà1ê274ÁïÄtœýï)oq½ËãrÀìÛ÷‹§Ã-7«ÙE¥3¤Fáå–VgI;ùÅÏÄ$*òÎ][€0 ü²Wôýª€ûÈáe^À–¢Â×7Ê.þ7êà³ :Š`mÌ(i©&ä¦ùTF¹•TÕÅýC?.| ã«ãDF¾¨Ï ÇÓ %]ÛHím묳¸ ž]³ðÝמÍ:êU@ #ZXõ2ôð·çgªë©~3¯úæòv±Åó²¢ùZàmÛÒ 4DØÿAç1ï87^«¥æc=ýÑö]ðÊTYÊh¤Æ¸&¿Uó¬P€kýC£_-™ÃïäÊ ¢£³æÙÏ=@ 4L“ ^¤æ¶#¸§Ú…Xè_tþVÕpp R ®–ŽX1!ÖR7‰¯ ) ‰\@su_{PáTð ©jù:ï;¬*ÚÈÒŠª2‰¬PqËAµ¤=c\DÑ-[1¡nÀ[D üù±ÁUY2"þ‹Bš©Q¾£;ãâõFtôŽP‹F4½è z‘_æû¬:…E…›bgø&ù¿S½æˆï¯j}9{¿üuÎ~–"!š´½êÄìúªR LŒ³?UºÓÚS¬ݱ´Ü„mÌAFîw¼vmÛOµ»< §›Õ³8Õ¾ÀU׿îW«>üUUËXãÀ48`w˜Eâ æ6¯ƒáØšhœ€¢Œ;1…ßͨøîyåvCQ¢R^î,’ØL[ëW=£èñ=|õÏÎѕֿ¶x¯¯žoÕKÇíñ-ªÏ?ë>|‘å]ç†yM¢zåÀ5£MNõé«´ÊKà5õ˜_QŒœø6R‹L§CíÉx_æ-O/0ñÞñ9­7Õ=dÁ‹¾]¥VŽ«T ¿k9Õ'‚åü=÷Eíu‡òÞÃòÄÖC,˜Û 'kÇÖ<ÆYŒ¾——;kœÌ ‘ïj>0)3½m}²¾`ñ'´ÚÜì^¼²ŽZ÷Wµk}ÖFÑù¥®^ÉìûýTßvœ~‡>U½Ïò|S•ÿªÏ£R lyÛÁ®×Šø°é>~…þê ™{0Ç«¬fï,Ç56sÇ'ÃkQU²¸D¾pY­B3Ó{ýþªÝQc9ú+½¦=_î+©’]®}çЭYÏê‘çaÛ¯ôôÔö‰ÄǬ90RW­3ìÎ‘Öæ›üOˆ} §mì†XDn¾1Ææµ»¤íÕþ5îWEIL¨é´:W…U‰%ºØvKd%žu“I«*qû«ŠŽˆ‰qx†*È=t³ƒ¹^ÿÍ]>Koß;ZâÔwãZ]j?MeÈêÔX;ÊT‰vÕœÐû€Oo1£µ|²åØ¿¿í)r\ÓŒ ƒ×¶¬CÝѦbÀ¬ü©îÇ:wld3Dz~«òG?¬j-cêÙjð¥ßE>Þ*Cã`î~ ¾ý¨¾Ð¢WFÞ»9N&'þ’3Õ(`&Üó>eOõŽýKÑ¢£Ô$·”ß©\1ó×Ëfê¥yïhúÀR"ëÎXo»Û«®æ«}Ó´<¹§”3YŸ8zx,t#â‹ÄÉi>]H@^} ýíîŽðð‹½æöÐÈ5X”~Gß6PïXáÊ4lpEOXé9Vùpn°4ÇV¢‹çë:˳ûDæ"6T¡=©ÑGv¦>ßïú5}žž6|wUÏzø>˜]Êë;Ñ.Péå³ÝÄ—hf”£^Ì[N}»K¯Û H†„éšôbKoò‘1×ÖÁÞë®zàã*™æ;jzäG0l´Ø7°wr£(^´ÿr«.~G_‚®˜Ö6ûŽ~mzÁƒçÐ V#r2HÒéÁ~…­¸ø‚C¦·¹­"³ªz’¿Á޶Ÿ.—[Q© ¸#uì<ÔTs—äsï^{hû‡¯gD©Gï"V]QÐj 1]Ÿ±ýÇåO|súáЄìL§…ŸªÎÂ6ŸžÑo­r•n 2Bÿ;ëËúáW£ŽB'Á’àG®ª²ÒÿO|¡ÒZ`¹¢Ç>-«TÕ*ÕC;뱈ûiíU_Ѱß@Ä…ÿ>úõ0rêhð~Ƹ"OÉi;â™_uÁ/΄ÙÖî*<µ¢òÇ@RRÁ­ç>¸ÁêŒâ‰µd Û.~pΰÆÐj½j‰‰êeAìlïJƆ+QNÜövŒïÝY³¬\Sàó·î¢F¿yäSü²¸êÚ¹õw¨Áò 5ÎkN«*»ðýgµ÷fžn­GïK–ņŒËN¨(%öÍ ¾±¬H~[q&úί2XÕjÅ º‚PUíÝÁ!zÖY×Çï‘›_èa¹‹èru턎âô\þÂz-¿·»z~|®E/§¹£’³=R-=U„’}8hiù.Œë­6B7<•¼èÎÚ¸­ÿÁ¯ûÙQð:zªoÁª‡éU³rÿ«¿ð¯`µ^ñÃéÑ2\b©vm¬üù½àšþE¹¥Z¨híSø=ÝÙr÷‰•pw¾Lw˃clŸD²=‰¨8Œâ/¢ä»Ëv¯ÝŽÄB®¢Þje›¬Áºþî|ûè‚{®©;ç·Ÿ…‡Ô öDä,ùPã<Å7=áôÐU#ÂOîôTE>#ÙôáèIåÅ®fÎhùœ³Kì»É™Oõ.|ÊkvÆ(#6°‘Ü‘z*ø(zÂO| •™»p]°ýB•ˆð½…7×§wÝ$îr\í§ŠÌÑ—úÁzŸ\l7ÄÈì»~ùÐ÷(õ‘õ-6þËÈç"G­Ï†<>øž¾³KNl‰ä»£=:d'À·D+°6âè#²¬näOÞKÙCG_RÛ²sÌ??² ÛÞ¥^9KFeʽ>bµ©ógÿ%r4º^WŠZZ+5BKþ}âhJ®Ížœ»pÕ#}%§=º¬6I]$R¤Ý%@²¬f‘™æÑ΂J /›iÊ?H˜€f¢¤ôdñÚ’º ÈïvyÇ"0ލ'ÄSø›šÐ%Ú"l÷|þæf  §äSÒ§à÷"ìGQíkð'ýÞõ;w„Šç-„oaÿpÊ)’éé¡·`’ÅOÐ% ¾)ÉnNu\xÎÒÐÒs²ðnȰ Mªî- ¢'¾}ŠLÎÍ=+Ãþªâ!‚·l¨öøê0ï ׯ˨R&dƒ½ßƒ>]îqËÁw'Ø<œ¤ø)ÅcßÂÿáÐíKYxÊJl”#r˜n´ÈI}#g¨»µ˜™ žç’*WÆÇȭضAFX Â%>‰U›ƒ>±.䟶çï±Äš¹)ZÜí¡?oýŠÖÿùceŽeéåæ ÊPË_à õØ.ÒãôÐÛj99'NÑùW¡WU—°àŠ 5@¾Ò›3Så.Í$€| þÅoL‘¬±09Wú©Gý>k ¯u” u­•ÿ½ê¾và]ç\[3=÷uÔî’²*ïhò§Røv%Å.ÉÊZ¦âÜ U¾]k÷C¾ð_0Sœ–†ÚÈ•×ÕÔ4èÂÍr—¾áØáìöcÉ7f«ä—¢c‘¿U°Í|²öíx»gJz.úgê½Lˆžš^ýð÷f¼79˜N"DBx¿­¾Þ¬ÜH%ôÏÇï«’ÃJ% l•7aR£døŽÉÊÇôEZœÓ—ïKófìýk_‚ÕsÚRÈÖ!€‹Tˆ·‹ð-<ôü¹¢jèOzðáèÏΪÐqïåó`Ö?í: ¢ïô'Îø÷ßæ)︟¢#=Ô voV`+ôÑ: +롾ëu¤Às“O®A˜jê¯ü˜L…†Ÿ'l¹«’–÷#ýœó“ö¾ÒºŒxðF‡hñäì6þ³ä(ßHÏÞëښ鹉b2‰Ñ«Ÿö¯÷wP€+ˆv ¢_‡c/;ïȬ޵.²ã¹ýßvsNzî;GŸkT}ÿ¼ÇLÿ»vç: 6¸£Ã9úôVëˆK™õn2&ÊŸ›¸‡ÆÈö¬¦ðÚ½©þ¹õ¿s7ŸŒÏ'>eìzÚÊu6ý4s^ÿž{eÄfíâ~i­ãÓ·(ÑzE†at>?ئ%7¼Iòÿž82­ƒ^ûWÊ™çKâ|.r$û¿MÿÜÿß½âŽT—He©lÆ{ÜþŠÙZÆÏ|w<·žÇª)W †'Îq|îë莸OedýÃõ+óqËR:Š mHüš}üexâ~ö¼³ÿ`‚ñóÜæóً˹S,>7¥ŸßC8~ø“…Gü2—²7Wî# ´ƒƒþ¼ò¯­ kϘýÃ~Ob×?»Ü…Ò{F›ɉçb—¬ärbWÏQð¬Ä1%ºÜª˜÷*žíó‡^{FáºõköbZñq6Ä™ß,eHsc)ªXTB®û‚£1/°+Nû¢öß;—Ì5Qx–½xË|M•IöGß%>Ù›æÎÍ›.ðW‚8#à}kÖ¨ ;9JhlÃÿfw rZ,¶à"òÐN– ýÄõ@CV^ãÓ®!³s%Ú¡8à6¸ž‚Gõ¡çÁ#”á«[åXö7úµ×SP·qTݨ7)º6Ö\yëÿ±È¦kí¸z©Á8Ñ•;f§1•áÛªËhvcîh¯D'/(äx ÄúAÍ'‹–̦W¡½«íwE¤e( ~&g5Î ÌèäÍ÷j&óƳ(úx%º¥¶ø J³&ÔžÄÒ?%ü;ÖàÆ·Ôýn%üg§ß,MOò»Å¦J@«½•笓ÏY¾XMdbó9ð©û¬R7#Fa¡ÃŸ!~õ­nVãéi¹&˜3ê)ŒHüSÄâˆ?*ž£0N­™«ïfã{mõñ×n únN¡­âp#¬úgáß±Ú´ž­^nö;ä*ÔoV­ë©·¯ª›²úª«§±=Õ“=`yL5×ö]n1>ÐÎ{n6½AžÏâýD41÷ÈûþÞû/L®XZñrq%Ú.ûÇ”)n¿]²Æ!†ÈŽ\®»y¥–v7ehS²A‚‹@~m0º2v˜2¤¾J¤7AŠìàCPOóGƒÆ ­¯/{)BzÛlüQÓ"ÿw®øÌýËã X¥ëW¼{Û^Id½ð¹þ[½ôA7á;¬>¯mÕeF’u‹ïŽYKËëAeĈ>©Ä]¶~xª¹BÃŒ-bûÿJXReÛB‹<Õ³h-y¹ÙÀÍ¿‡qÎÍÓŸ^QLÙüC.;Èr¢a¤?¿j¿V<(U„Ö»«${X|°á@‰šÒrUkr±„~íû^Ù”aDóq`³HdË“6T[̽×{^7­GMXj€ÛãCͪQ—Qšñ ê¢0¹;ͰcŠ}ò-ÜvÌ%÷fS¤ïæ/êèy2æY¿*ùÅîKŒI ÚÎ’,Û¤”Áçø¶ƒöË­ÞÌ~-×PrqRì¿È-d¾í©r‰±ð¿±*fh#——bÜknT'L·+ãa²ÌÂë*ý2åÐ#þò¹îmõl8ˆs0ð¶½êÄa,«žÂ®¯pêšrÍ8Ô³{3‡V?lSò™âld²šÙ‘ÉŒÙæüMÅ ‹<³Á˜1÷–Æ{<÷‘õK„ƒÝð9jäíäÛÃÃÏÁ½×+ÂæÝ½sÿú|ÿ6Á¦»<ø€f‰ß÷n%“Kq4¶±~Ñ J•Dœð\"ú±Ýbé½ö€øÈ»˜å†ÙÄgý‰¥¾º¯m×ù«åÏËŠ3–XS?´vüLflT¡bí±`ÕÿÎN|ÿÞÜ^+U=\e_PÿÚ9{½ï‰ET& yô©“~¥ÑÍóï˜lõ ªªøË‡mHӪ̽¥…SãY],ÛÝû/Ÿ»2ÿ¾½ËW G<6*¨FÅ„«¢¸²ÊöõHG´JÇ—,A³÷k'–µ#zïlêÝ{1:ê…ŸŽÌ^@7.×ØÊ·±àÔ¯jމË1 ”åW}ß*´UºÅ|»Ì!1¯mLzÚÁì.²ys?>ë­F^Ú˜Yyñ‹#éç¡ØY6@m>ø€öd¶!ÝéÔ¶ât 9í¢aŸêeO£2<µ¢sü6[aD ñ/r~ä~ü" Ño?ÉÐö§XÊçãP¯({;׈àqŽ4•Òo _ck¿8AN…w}F ØÃ\CQ?vhR¥¥ûVô¯[Ðyr3…qêV‚o+ê8Éп»²C™ûØtä_Œ@2»‘­´— ”F (Ý×Ω¦x­PNîkÏFégôâÁ¬m@‘{lýÐÚÑMbÏYòÙüö¸*Jëx- 7öBŒ ÿ™½¿ƒÙ±(l…!ÖúÒ¿«¢/Ò£Ni~4+iS+ão|ÿð:#1 ÷¨±–lX‚߯CÑ&Cöo£Ëœhö¦í±Î¬g=¨°­«È’kkÙŸÐ5&.™Ù»Ù«Í£v0¦¾{3ûC”й0˜s¼«ÂO”2žSéÈ2«o>x Æé™7÷¶–ŠÓÿR•ó±›ÄÙuWü mÔ‹ºsøY5g׌‰yÇçë\,Êw¼lhÇÃ1î]Œ¢÷dœn\EUœ[>~¥¢ÁÆgÔ¸dÇn.Љdˆ[h‡·þ«…W´áaû™+ïVmŒø¡ïG¦õÔ-U“%u¸½GÔ`ö?žý÷÷¥àbâëbéÅ‹²=t¾_'o$Ê·ÒÍ uÙ¥þL¼ê.§òæ(†Ú`Üâ5·Ê…ê@F­ÙVFfߨ„oV£ß8}":"þÇκ²Ùo5žŒ0J¿lÓ»vüÜï8+‚È%2:δ:¸³EËÀt_᯺f›šx©¦‹Ï,°Áéï^çµ¶ïãôC#Ç WŽþÙ£hFé¬~úuv­Åtê,Fºì8ûÄbÍ81;±Z27ï«ñ!ô'^]²r»¬m°~óYkë­\œGÞÂóÆqÁDª7 LÃöä¹—k²a)6‰Å«¬®¬^¾ äÍâd–ŸÐ%©ÇÖ¡\±=Ÿÿb;k¢©6ÁzÔÉ{TC*k>á ƒë·ì¡‡¾ìsª»JFLð^϶NëwÍ ó¥íKé“1M¥ePQ¸ê»Ö1.1Iõ‚ž"â± Ý-+'¹ñ^ã[¯Yÿ›9Gnn²‚›P«-üÑÆÁYi3Ú˜q£ö§çÃedÛooûïã”ád`>ŠœZ~QùÁ4VÛã‘§#š›[3ÂÈ/*5xоÏU/ˆù‘ô¨ŽòåKÃØi[w1¯FçJ掞Vj8ÆÊ‡ èìÓ-Hõ¬×ßÝGOŒÀ¶Ÿ|.:4²¬Ôξ0iƹUhm¯vû°Fd­Cüî³0@ED×4¸fw]»ÑSU-­ã˜@1ñq}Yþ'‚ÂS =ØK5Ý® ðÚ2ýð «ÙAköÆçÞ™@W+Žg0ãr»eûêf–o•*Ü”žÞ7¶ÅÇÿìcÞ¾¦j®€j x`Wœîžy÷¼¿Z‘|xí¼±ï«pµE6ñŸîLJ´AíË@»uâËõ3gÊ“+7´…ø=£´ÔŠÓГ“[*¸RÆ oÇnëðß8¢x泌e °DœÄ‰Æê×ý¦#’ÝÂkøòšö'2ó÷ `ð,؃î½_£…íÀ¼'1<5ê)>›n§òf¿“5ŒÒÀ8ˆ Ý>°F^’7°|æj+ü—4ºâÏQ=¶u2ÙXßÛ[cx/uD?µ±1••Y?5dÅh?“ª”FétŸÝU[˜ üo´;hðŸþ1ÛjQ$㮬»»~¢šßu︎•M#CÍy׳Ü,Jãùê&b&0…œ©ÕÐêb0JwôÔ%£z d5¬@õx±VÛÈ‹¯ì±¢Ëê³éF,gü™q«òêíÅ*öTU(næM?1è~ˆS̈Ô÷+µ! |×·•Ñu(f6á‚™ñZqæñ%,’ñ¡ý¨W®Å]¹ç‡ü0æ|©è2ÚÈ’Žâ®µ‹f§^lš'6yÖ<Û¸ÿFÉ«<ÍC·b¯FVÅöxPIä5þù\Õd‹Š2ŽƒÉz—}.ÍcÑQoÅjT­/c¥Vòõ¯»“Ïr÷ ñv|¬Ù‡M•‚]ðú[Š%q4ŽqwbGÛ‡ð<B4sG8¹bÕ ¸ðªxØõ÷ÇY#ÖàÆíÿnÿ› +AÆâLªõ³8ÀéÓöí´¯`¯_OR៘÷ª‚85Nqik8Û?|Iß#è»ÉFY!pUIÀ¹Y4liBïA‚„ÛZEO! ÑH³Ž¨¦Ý¥(m¿MûJ€I€[ &¡~[’)@ˆ6eŸ²pÖS֑ؾ‹$g ìÁ3ƒ¯Ð½®1“þx •Y"±4K`/Ë%Sâ.aO)‹°yù¿Y‰qㇳ]”à#Ì v×öªj”A´, MŸ±Ó3ÎOVL¸Äô$]ÅQŒ8Î!v¾OÊŠo64?ÀÕír”ãºv”ƹˆå½Y&%`ß"ŒX>¶JZõ©¢ˆ¬ê£èâÊÖUdÒ@dûE. ³‡u;0‹mP„§õz‡V›ØR ©4&Vh{.ú}¶té—í*3jm‚";D½Ýù÷ï–Iæe~³ËÅ…/ÛZÍÍããøÖئzü¶4§m¶ßQÀF$1‹n¦3ocË·bØNó–ñ·vF3Ö_ØðˆìÞ¾CCë:Þœu1åv¹šb¿ö“XÛÈ¿C‚¼l©»Jˆ¸ØÓœ÷LÔú£Êß)‘ïm—N#ƒ¨kbÚ¯ Xd9Õ)‘.= ½±‰*¢¦u’IFÍØòĈsêÓ·–†)d@î¸W/ìj 夿{?«?o¡ƒT©$Ä.Ï·ï¨L²­E¶’¹m¹­„î#U"1ÀìÙ)høÒ¸¢;1ªïõVYò/c°”ù FÍŠ…Ÿâ™¯±ÿ|KO!^y·ï–­Ð8Ñ?#Ö·?`´ÔµgÌì;ñÛli©*ñºHuκ ×0šÊcïôDþ’šƒmjÈ”Gùâ¸JúÛhs±›Â6 µ¾®à]œXdKûnY6Ý»y'%š1øged=;׆Ùw,=ìE‰µ3Š8èúœÈ±­?jc „8ÏÎÖݓŕͫw³ý Ven±…\?uTÄ=‹ù£‘3ûŽ©8•Ó(j[ìÙ¬V\ÆYYÉò¼ø¾*Šû¸ ëGFλK%ÎЖ—ÚH,.!:øß«Dþ³ÌÔ–`*¸‘ÅNü‚ÈpØ€×l )y]µ™1?`W–mgè{bžŒ¤Ñ@>ƒ\™ tÚ0}ã³ÅKOŒQLJ^oGÜK{Rzúg1DS°±Åá}WËx£Ì•e4Ê\7o)o`j|HI-ÓÙ½kÛg£=³U ôä¦Þ«¾Ò oÅwÀ\yšÏ¥…)¾§|cùnK‡ 0ÈF{góáªbû¥8úJ翊šÎµÜ]VÉ,)ÅÆ†TpßVÐÑø”&À^ä»*˜¹žÝ¼˜¶F½Ø”ÈIœ¢–K«|î☋èoð„:ÇÍðŽÖƒg‰)y9¥z-F´æÖžn ÉVçU›*©GXî¢Ezó•¿Dýôž|,w< ¢2\Q_ B°Þ[9ÞfΨ35·ÄUð8|H>c)9]ηÕÕ6‡Å#Z½½™é3½>ð×f[KDwÅ­ª«ª‡f.ȇèµÞ¨ˆo6esÐ2˜]dmQÌá›;k›ú[uK°xvÛ6[¸r8J^̃7¬Åܧ|3ØÔ)‡È"ÌÜ c\UU·¬ kA,ÎH~&ñ.»1Je^cÜãz7~5ú2 • 8ƒÆy­}˜#[Èê02"ëçX¨2ðñGâR‘õZ¼­B÷+™ KƈQ?pzLÞÀÆß‘+9â¯RL¢á•qtí,SÀ°anA[,Ѝ9àP—uQ4s£FS·‹øp7Õ ¨!úsX$°z²è1e–5GÅèÄ®kJŽÊeø¿m#A÷^Y4]îð;È¿Y¨_~Dãw œ–"Yâ@Q™1Œ[¯Ó´‹QÄWoU.=öRàÀˆ#|qÖ—QÞUJÆ$8×ÚÎqhô£JWûX^âk4s¯ù­Ôsmߟ\h?”øÈ˜ºvöã»aB&¿g¦ûÝùïÊúÔ d‘Ûr{±-‹!==Pºf°HiU@§oʰÜŪø`[70s}|ìu¿ùìséÇÎáQù±0 ³.DÞc3ÿàZðÓ2掜ÁÝÁÒ'U·£aˆPG÷¦güÜ»‚CâÜíŒ~·þÊÖänä Ë]bRö“8!8"6N0x† ï]«öØ` ÖìÈ}ÆÄ»s˜h`“‘ÌjµÝý%ž¢ÒUÛfÝ÷îŠÏßùö•œÙ!¾­˜ÿíE¯aòzÂÃbv(Ò×Í-¼¾àìÈä±v¾Žq°eK¾;ßñ iò`CqŸÖÔ÷9£µñ}’Õò,=Óçlë£r›zž~ó+Ù…í> r?˜F•@ ; |GvØË(¯¼¼ÆÚg±mËL¾w…ÇŒUwïÖô2?ªlŦ=뤻*tqª¿Z¼9˜ÌÚÖ=Fÿ*»a5‘Äeô@VôbœU!æ=ê5y‡>؈ÚBåªÁ­Í¢C#%*Ý…Wqú¨ý5W²_”=Èo³Hœ\œ‘•ºÇ%ɾuâ¤o_Ú±ÿ¯#¦Þ»¸ÀM—ö“^ª×bs{K_öýÚÞ C´`Ujö¦ú–—P“<ý;»«.£Ô"&&øš ç#Xµ,"úÛìÐ]Wd³ ½ÔIñ½Tìü×—ûUŸŒyMpÛÚ=d”Úk×ãüxŸÞ`”‘lj¹üuF¿ÜG3¸ïeeA^AŸvÊ­ b®“-§¾hÉ|‡#îÅãD\ÙÚþ?ªßQ>ñ9js]œßܩ־=ûþåŠLßúûm…nŒ²6—£PÄÙœýKnœ[ǹЉ¿ T£>d­[Ôs;‘ÝÅogtœ¯"Úµ\gxkí^š_Uf}¤Wi’züÙ(Ü?×a†Uzóãé#¾ƒíÉ[¶–bc_ŽKMÞë˜Ìê“õ$Õª5~™7¾y7ëuëR9 Èf<£ }hY•ÊŒÑÁü®¿9:_BxçÖpq›U\wk…Lˆ ÍvSR2ô½Ç=O¼X×W>~?Ù%?,é¯ÿØóÛلצ¼AýæˆÁjPܪמÀï蟌¹Ç:ñ€ø)šb‘ˆ 8I0yƒ˜²ÿ1X£¥89E ª%:Öª…§¾ÛרÛ@ÿ…y‹'^Å\ÇÚÖ›21ç¹À¢Cؘ®Š…g*?ðû"ê•î¢AàÉ* ¨„Jíq§‘w ¯  í€É t.nðªâ׬ïNÕFàˆÿÖSâ4žÄÏtÀl+!qzŽmÉiÅʬè'‰Àz˜_Œæ·Puaik;÷#ˆöß®ý&–"Úðí“c™;Îñפ:q¾Z$™mÇÎSÉ…¬«#çbÍ»ñÉŒ×ØçXÿ绽:éf&kÉwãÂzŠKrS¾§{6‡Nt¦U9f´~Ô„ñDrô.½7îœéÜš#NTMnv5á1òúŽ|7í÷€0óT1Ì1´Ðâ5“×ÊÈö©TÜv*õùµóš_¬Lð û¡ò†}ªðVä›bm“XÏË*©õ“¬û¥·½6‘/¨ï^ Ši1F×l»966«.òì¡O5Óö¥ÑÈÁ9‘!ÅzºŽ9“J”22j% -¢{ºØ0'™Ü ñá÷ÜÑÁËG÷±³­Å>.7ö?3ëáêžÇ&ÄjÐ>ýàR¯7Z@wÑÀ|¤º…ùñÝ<˜DÖœ¡ “QÉ‚»p§º»Lß½Vé»&¬b]Ê,ÎfzV?Ö­Ò¬8¿Ã곤±!ŸLÁ¶f»U”ŠûÙkjè¥ ‚¨ù͵v".ÜAOk²!wb lËZEÆz;”3ŸkcýÖ:ܘš‡¼}gâÈ5çõ³ãþn2Ì’÷Àz ­ìUð ̎®";J”¶w5L,†Í‰#1œ«°‹ÝMj6tœ Õ@x2NœS?¸Bj”‡âZ\ ^Ø—NÔy7>Çé²’ý9{ìv6¬ðçF;ÖWÎk–~ j¨KõcZï-e€<®Š]ð÷e]PÓ÷«'oÛ9:Þì>¾;gȾ#¾x¡¡çÁÿ†uÌçx¬ € É€©”Æ® aµEm‚WÆd¡i|×Z¶´‹–=ÊcÕŸ¼^ ÌrÀ¯jBUV?ph$³/Š8 B'>A.k"W»¢¾µ.«‡]Å ŠÃüoª{ë.¬\Ó䗯뙞ÜP’qß‘]©…Á8[Û¾•CW¢NÕæ¨€E&|vÝGÅ¿ÄIÈÆµÕcç Мþ;ÙÍØ">8‘âÏÝÉZdߥ×fù‘}z=P‡8¢Ò%®ÕÅTèÌÎêí9ç±V²¶:YóÛ³™»ü%Ú ?\oÙÙû3b.εN,ΕÈcw4k„||Ö= ©àlHÌ ĺ¬ÖË÷œà@ýOï°Ý~ŽL…wí±,}Ž*ÎÙW· ÝGi‰a¯bðÁô|xbqNƒêD¬þªv0ë©y¥áüˆ¶e·TþÿUXêˆî‘ԧ­Öjˆ6€ôö6íˇ­þìø´Öò“\Ó]ûï—÷u­7æµÀÏx ´Éõ=™Ègµä³CÔ~U“Ñø3ÎÇkÇV›Œ5øŽ“ŠàWkS÷aqUܾq=ÈÚYÄs[z‰FàÛ8Ö­ã>»×|çœøìfd0Qª,EØ-uŽwå6XÏ(L3¾Å&ºætÂé}zÞ«ÆF-"`Ù-RXÌ­ÎÀò—ùW»~U§“?X}Ÿ ŸÈã ì“[ããsŸëÖ¹býíÞ*}Ö/žŽvû«µziv_¹–@,⬧fqÕýBfàµÕ6Óü±ŽHÑ·~ˆsXå>Wì[ËdœØØˆ¯Y¬Öòª¾c¯-+IkS³€¿…p*9¹$”Öå˜;y¥Yi°«±Å΀J ­N–âD"t{~ôËóªìÙš7Ñ6¹5@­ÚCÑ÷âuð TYóà »¹Ü™§,K;´´8*½×¶ñ"~/kPøØ[GL'ïýÚLûÂDݱ‘Q°Š‚=ÀI×®äpÜ;öÌ‘÷ê[¿`ÁkY=`·çÛíe^*Kg?ï“ rwíiœÿ1S"dÙ¸@+wuïÏp´ø\IãƒÑ¼IÐv¥¼öšg?}®u³hÆÁça5NWâZWIžäª[_ìIÃîå´Em`ƒí¦ofäjÆÜ:‚O쫞\ù°r$‡ñÍPùÖ˜]Ͱô‹…]r•Ìì»7 ¼phº¬@}éTýÌ~¥Çúì¨éÚS‹ÆIrÖÃóÊŒ˜ÅãxÊç‘Ó½ªÝ(ÓX%ǘwá5<ê#ëQïEÕqÇ—ŠyöP8”ñßSbFhV”‰k[ò Íÿ6ek¯jÅÐüoºîf­j€5öºN–ØÔ¶^žB/ε¼Ô®Õ…Am¼DL™¹2îÆºàkÙ¸ 5&ã[vx½óÄgpñ‘›¶•ƒýDmäšß(Eõcœ3ßW{³ûÓâõ\wpsp~âA.A`é·¯XªJ'{-ÖÆ×éj˜¾³J|+fߊ©éj˜ìÃã5îÞ­gÁ_Æ‚¦@{úysj+Ô8¼vKÅ+Ë«<ñ¾Å+œ¢¹×£Fh‡ž«ROö<Ô΋]åñ÷|h…huU•Ö¯ƒµQ\ãëŽ+V«£o|$ç.»µúƒœ {ٽ߹² ¥íûD–]Œqëç¡¢²Ê âàÈï>v+ÜöúFÍ+æø¼(";iÊB#DTñZ«¾6¬8—ŒÅXß»jÑ©f–qÀa¢ «i‹Uì³ï‚¥¬h;qB<|‰ µTÚp•æ BbM Ìî*_‹±ŽÂ«;}ߊÛÉÕ«¢uÙ$sÉbŽù]uòª¯r»¾°_âܯê j N”/WŽê„n :û³?ö;8üØ%ú‚Y ËBp$o š‘Ö¿Yz“\D|‡öäÖT\­ï\y± u”Ï-uÆï¯õ¾ì`-pç)->é… ñ}ÆÇA•OäSdëˆO;k*"WÄgå³}QƒìÙSјjKy 5lÒ Y­‹å­qm?¿(ÐÐJ\å Ú±Ÿäµ7àUðÎhéÁ1T}DçeEpo6JŸñ»cß¾ö nsåÝÊtˆÏ€=8ô;V¢˜7ØCµG>»¢¾´. õ)|U—;.2n– ß{¬‹e‘Ù¶ ã ñÄëO¹À5L0µWÖ7z"/xÑ|ïì2yÛ»£BÍœ}VÆ#{9ë‘JÈ7dbò“\åwTuê jéSG·ZQ̪ê›ûï9xE½yÍCåûþaDp¬£4Žd <Ó«£zI(›8;:uÕ~ÁG/|?ðÁ>«"qp®A/¨sy^U:¾"h¤½úÚ>x‰lPeœø+KËŒ‘îŒá.<ì‚8ÑT½ÇŠd^¥îj;6^;Ï0ñï¿Q\œàª*Ì <Ã|ˆ˜9 w‡ØW¿³kÑn?ÀuÕÑ^ÖtŒ’ìt=Æ0]ׄKàN“ûÈjw­¤.ªn¿ϱ¯ÃÕslüj©ocOVðÉj}3 ‡f|ª”Nú±rß¼vR­G¼êÚyM4¼Œy¯¹3ß¼F Ÿ`ÍÒÜÊ%j°~¬:jËêã-ÎfugžýZßš`¯hD½Û9î_V›#ÿÆ¢FéúwõµÚÌ#¾`X»+]„!Jß@ÿtŠŠŽ)}†åÊÊïPãît¿7šÚù°_fÕÃcýÙ‹%fzýPXßL†í³;:jÝåŒPW=ïÕK-ð;쯸O_Ž„Ûû,¦´VNä?~Ÿ X“ª'e¡=|©¶ô^h8ÝÎH+=g®¹&výÅF㨶Wm–]Ý+wŒ´ø@¨ýGvg÷ÄLpvÃx…*°eä?¥†cÜLšíÙûz³sÙ88‚C“ðÀr§–ˆoð³nVÇ^U9£Wæ¬,xÙ;fß“>Üf­é¸áãFü›¯ìkú~«(ϵŒ†Dq KõA–€'“ï­Çµµìx¶=^ßL4ìÕÑ ýÁÉòf•†juD_Ÿ‡rMV£ör\ ~ßêgͬGîĈƧö¾§ºY¹ÞªšEó®yĽú÷W±ZÆÕÞ¯¸-UŸëø|k¹›ÌL ë3æ+·%ñÄV‡ÐCvÔ­HÁ9Ö³ÐXÈÎ3g ëGû°iɹ#›¿$r숻þ¢Ú O|÷lD¤µ‹kï½ Çáí5ÓÃ3ã?mø-WŸä´ñy à²âÔn½ Gì›8.Ø ý€?xgÞw—˜òä39²-ñÓq•ŸJýW;à^¡ü¬$¨Ï¨¼†«[Ÿ¶ø€|ããÑì³™©Î]Yü¶ºá#ÎØyÙ’OÈ«oimnùã÷ß¡ññ»f¬!Qn—öÛžq|æ#šÏU]1‹øÅŒ¸µ/"ƒ¡"¨Ï¸w¥Ò®•¨Ðfͨ“Wv³Üo²¶U9èõSw&î¾[ƒ Ÿ;w¬~µÒ÷oS‡jrÝ0ãÚžp©=Ž¡Ã++£ˆRFÁ!•Ÿ–Âç"Ä»ö/ÎÂ]µë.:÷ŠÂjÀZDÛÃ@ÆZüo,vWðõ.kz¢nà¾kU>£sˆeVkY)Ü;*›±ýø+ä,±¨v"º±-Ú­ê|â—‘5ع ¾ØsÉ({w”rÔ¤xßdoUæÚ±Ž%>:ð会Nͦ~´ãàXæFɯ•½ä3Q˜5ïï9° qóiÁxàE÷¬ùž×_\Þ¹gL´™c{åS7‚2Ž îb½´ß™YƒÝi£+™¤qdͧƼ(¢²ÖP ™¡Ž«oÆÿ"nz¯~m}ÖBG÷À>Ojˆ˜ƒ<ÓJO¤¦"ëó)•çŠ3ïOp^5w‘Í\ñ~9Ršz²UÌÉ™{×óo¡¶xs¡ågsyë;ß³|³+ßâC’t±òÃöVüìTž¾×].0k¨G¥(>-uð‰¾UáÕßs!£ˆÌ'×Ö®`¢šiq˜œU‡c‚ûÆáGwÙÈAWš—ö0Ê«/Ð;+\T&Ÿ~½B[ƒ¸à§{Þ»0•C?Ùß°O\;vxÖ§†µ ù –SñÛš™ ¥X‰ÜŠß¾•‘9*9:ÔxsÝàWuØDG–î¢ç¸îbSì òÝ2«–øªZÀß:ÔXªš»z: †›¥“R‘bƒøvÇ~ïÑUÖñž<ïÌ·xÇŸ}Å|6üo¿±Ýöž;Ðvœ–ß±ª„“±$9t[m¢X¿ÝÃhckÂw]E¾YqŽg9{úÂ>k~…òo¡†Z²çU³ZÝ –çª'¶à½¥?Þiñí r{¿Ã¤z!»¨Ræ¡dF¢ÝUuÄ$âßT 5…ãZÅwØhnôÿã>=üU*ŽÖà0.ÔÚk×DVt•ë©øó¬_\u¨«¾´í^7ŸÁëö õÂuõX+bOr(Uñ¯T•Q£åÛ ëDC¬\QQ1®\¿J,vÝn”@A¾$•ž+¤O*¡ÆA@h«üܺ=ÜkG^ãè·Ïnzªª+#»ÝTä­¾¦}U¯ìrolPýŽçÐqvr?>}ݶ¦{]©Î5ê;i‹¦{gòûªºì#Ÿ{ÕXì}NĦO¸à±¶Ñæòüêm߯²«ÝÏ®¸ómA«ºÔ0à3¥g|ÛV€ß‰µ·5ÒïäTtíS ¿f0fêõ¬¨§Ý‡§mUØó}kt(×Ñá9€ æ¹ì“Ö©h[ήqè»êÖZò/Y=*;Àkµ»ÚŠD‰€è¬åzlû]›¥ß¥.ùîš‘ê„opÊD>^U7;‹Š‡v=ó©5†•س½Ç,s.¨E³ÀÞßW†wu»ß\;{ï+ú¡Ý~lEí¸à ˜êmå ÔœUºœNÞ~ǵò{®?}µg7tËMµ{ûM1=UuNø¨qÐ4¬ôZñ»Oq½9»ÇtY)¾YÇ HîžXÞ.™zõúÖHø¦]2/#Áêƒj<!ä{V’Äõ{Dãýomg–ÀÌ.*Ùô:ûxvðÍ.¾ñGÍã{.*×9Ÿ´Ô¿kïâ&ÕwòÕ•¿7“—­Ôð/UX/||ìxUËÌh8tµdô‘«jjÙk«›G¨gÆ|èâd‡cDZPPë½Ìn'S÷e‚¼a¿)€^º|Û„c'ƒâ3ìý®Ã'ŸûχRþJÏEvfXÑ›7«gW¹ùuaV¡üÆšoŒ­ˆ¹vɦ¨HíMdäàU‘5Œ¸_­_}÷Ví" ÑŒ¾q¼ð}pr³J—4MõCÆ´ôJèϧ¿x¢]ÙÌïîRñ*0™.üM^¼Ð´$\ÂTÌü„»À8óKK·K¶µ&‘wžŒ°Oi™YiŠf*n:þtz±Ú'óúÄ•1Ý.¸nœÆšã¾rÌ.1¯'KôŒ°‡}§:zÜ÷hw¤%¶µ»j5wC­–*÷ÊÞº§Åñº©Ýk Žïø}lž^iÉAÿ~oyíæV£‰8‹záÆÏëªÞsËÈìùx%-ñZ½ý°ÁÌg%ëÙ9P'€míÍøNÍàSråtë¦va)ž.»Átí"/ɪ;«Kþéç¡|¿,WæïôZ»°¶{’žÌUâ¨]ìÖƒ¥s1•Yìúc¾à3÷œ¬Ô'®m¿ù”vYÝ5oëÆYëZñ7=”¸õÕ'†í©åè½Ö¹\µ<÷‘}`’15[á7Ý"-hN«~¥«°'Ý u‡÷곉ÝCcYщòØ­Á®·%òüj•ÀÈàï ýÛ9‹ ÞƒÓíÈK µ5³s%‚/$²ŽÏ÷†Xßï`àG÷͹JÓf':TÆM¾ºÞ•]õ׽îˆXŽrv5PöÁD|³,^£ö†zðo ÇWFÙ'ú÷½_­¾¶Â»ñöšµŸae,·ê2,²¾•mí[Øû^(–/yÔ>øk­fö¿>¥7Ìv¯z ð£žG—z¬6¼‡=ÔVúÅ·±DŽê%ö&_ñ ïeN«(ŸuZ‘µŒK|ÔRíªú,òý¦ŽAum¬Baæƒ5ž4@F˜ÈÞ¸ü«Õ{¯ñMe|ó|Y“Ñ9cÜheÔd÷]µßÑzy°%åZS®áIlÕ|™H…ü·çÖ{殚Õî•Æ¡¢_¬ÓJ×ÐIž&2ÁOöuÁÙö\=¡Ú‰¹m?ÛüÞRÿƒƒ1îëˆU.›ÑNþxD³Œu¢-0ë¦6 bQ–vå®û­(Ÿâ1÷%Úa#±ükQ÷ïÍ£³<ì+T™]*¾šÃw»§†e® }›/nT$#*„ÄRk–/£\ýËŠß<Ö¢fŽn â¤ÍuÏV«äT‚ÏõTgçá˜úܼM_Ô§Ûý÷N‰þ¿77Å€iaÌãUßF¾[Þ¿“Z8ªš‹yk·o”Q¥Ü¿QlèþÒUÊÎÊZg^7#ÚŒþ—í¿C¥‚¢pùs0HªcÆÖ½ÉÝ~ûb¥-yDø»± ˆ‡‚¹`;y.´½¸|åˆFEî÷ìPû¨øB +ñî»^üZÊÈ|[¥±o¾Y@D£é¾\é]{×L¼'M}ã»{ÓΦ}Èèú!7˜rÙ-Þ]Û>X­ \F‹(J‘¯³r×õÍ\ bô‡6¢KÊ®9B„°‡OE&ùˆÈ?ž†£"3_v½GLѳî¿U}â?8âæ-+ªpT-«cÉ:aÕ›žÎ¬ª7Y‡7»Q”p\¿1íNA¥¾©Aèù êo:ÅOõ>ö˶¯1*1¯íVº{«È¤ImÅκçÈauVoû5®ðo©ÓɈQ^»Ý‰h¿Uǃ¥¡çÒò¹cÏ螇³bGÙÙU‰Ù'qÔ\F¡|aüËÏŽ™ òÙ}ý\Õ…óiWï^#Qit}&¾á¹çžXgŽÀ†Äªùt2cŸ wqÍùþOZÅt«=8Š'ñ™vÉ æÍ¡%ÍÄ·øb ÷QÃ…ã«>ÉûýVÕßf‘E'àЕ¹º;ĵqN–Ú‰÷qgj>ðÜNÅw®¡^fš£GùÏ~Ô*‰lý¨bŽ«\»Qí&~…i0_·ZÔjOi~òõ-5uuŸˆžFóa*qkô#³ÈJPŠh¸Œ9pÆU‰™×nÎsô½ªGôþ³ÈåŒîòŒ>ÇoÕñèqÅùŒíá/PÚ卑‰¬µuyÛ<”kqrWâ3ê}Gä•5ƒo{V^>`ŽÝ6­N–ÙW"‹;P42s^«²ó;îbkIµêÖÌÖ{½:ãa‰†OYKyÝù«Þ›|ƒŠìÏѵòÛZ³tš¨ŠÙE1SíŠÍÂpÿÂnÙ\*i—¸eGú2ŠZiYq†n/µîš©~AA|ÒíîØc{Çq¼Ïî%ß3©}D+F¼v|ˆ\è•;¾©ßâ F=ÎîQ'Þ±gw3Þ™ðŒ°øþOg$û AçQ1ó„gã$Ï­JÜ×cĽ¥Üˆ5c`uQ.%årR«ŠoØþ«™Êäí·v7ƺä¡óBĹB`‡–ZµÅú×+Zð—à 3í'~ñ÷¸˜sì@ÕI´°ÊL½g—hÆøZ=Kd³2¯êñ7Åy¶­Ñ¹K÷7kÅ(¼Þ±jŠõ {å‰oWž§?b¬XØK…?ߟSÿ½¿Uê¥&ÁØ"©õÃï@_P„x ‰ïì„QSÖ5ßåyöþ¯/µä*{6ôÈ:j¨îU2oŒˆ˜ ²n#î·sɼŠóGì;^~ÛÆø³Ží… Vú*M=_Õ N„!ì Û¡µþˆø'oÀkk‘¬VÁ{&oÍA~õ‰ïˆ¥8sZ±Ë¨Fð]müþoÏ·ßíº² >,Ùˆ%«s2Õ¸ÑYlÍHWþæÁS\µ*2T„bƒ=•¶ŸÕî}³´â~7J6T/¸z¥FøJÇßÇùç‰Ñ2nöæþ¥9Õ¡˜5v=§šu®o€Îqa §fJ&$?‚ááæ}¯ªáé¡'²qâÉ<î(Êåè¯ÍëÜ«ÁáÃŽ ÷¹°êWwÅ>ð Ä…;D±Ë¿õoTˆë+|â=Ó OÝå=žûŒß¯h.ò‘³ŒS Dü6þ·LžÛVÎò«|¾—±Á—»@¨°;þ+ïÀ¼ÛêïøóK”#¢ÿ…Ô\jz;wOÛèÚ¬;è4_ÅïÃê Þ͘-ñ#Ê¡†>fø•ÔuÖÁ =¥ÖVWñÄMÝgsö8)}µÿ`þe¿­üùì*¡­ê³Þ#+¸B¶N¦©jyC͈æùýÚYÝžšÃãú™,ý¢€grƒŒýØá’ÿø=ü_•N.tŘ¹2ïÖf!jÙŽbVu•ûq¢e"xÿôŠõ8»íßÛ‘•9Çwk.r¿9´œsä/Û·GÔøßà“+2YÅö6­˜ÒÓcëJþ¾QoƒOVõ‰•5îv¿…›â;Àín¬¶­Ò/{æ 1ÏpÐ4Œ8æ Ç‹ÏY~T71#xξ‹ó!ëÜÏJ´Ð’"D=‹k-œ=,ý‘ÇkG–ŒÝîÿ`Fx¢Wdý‹²ß¼¾̽ÞÊÔiÕô« ž„3-?ÒAx¬,ßÍõfòàd³ëÚãRwZ¿ÒùC“u*Gº Í%bÙÚ5>9Œí]+¹¿“ñA(F4¾ÍþOË(ö,â,G÷ØyëG‡½™ÔvÕªû¡YÕ­m–˜©ÇF•8ç'5(ÚFfµfà”†ÚnʘYõÛì;&RÍ?Éwjh²Ç*"Ñj•6"¾¬\ýµ¡Ùï¿…ô6¶„pè>pF{™ÃOýþÌÊçT¨Wß%(üËnAbZ+ÕNÍ¿GåFÆ™é¬3:N³~Í:sNÍ¿G®þ‹ÑQg-[ŠõðndjÇÂÃ:C#ÖE>â6çÕK§†ÎÑ1þÎZ¼þ:zfoˆsq/¸ ¨òàÑxµÅ÷Þ:{ÐøÒfœŠ}ôŠ8uÕ¸{;0K‰y£~ç¹·¸û+ §äçCçØ­@|âd´D®?ôÄß±³ï±°O¨ÕÁ$Yd„íú«8)Ò¼¥ÕãôuŸHd>võü0™¼üÆquTÝÚŸ²—ÌWE“„‡;=Ð4kܰ½ë81Ç›_c¿Óž«4 jTÛúŒÑŽ ïÊÛ–Õóïðóª5€{ŽS!þ1¯NŽÀ|{Wvo¡Ùð[_¼G9gAËÖl©äf!Tf!ŒJÍÈ%¯gáE·}¢‘k¥³6ôÑ aØU˜¨5 Í:šsÞ{¼Í“D`×÷ßc²ŠQŽf¸QWkGƒ»üâÔªîãÀ¬™Ýág¯¡ÅwßEÁÇïÊ ×:y×ds=×.<2À?»ÒbµµÓ( €o° 5]ÖNÌB¶NìQ­‚`xÀgèA+Ã^5ë¾ÍšLGyàµö£ ™…¬ ™ÌHAÙ•ØsèLroŠÎbº ]…j(÷Aˆ`X«£@3¾O I³Bó©TþîrÅÛªwì1íq.o_XõO¯ü½ZʳÄAâ­9ЉbÏ:0•±p-˜h½¬ÂDEÐÅ¥GbÇÌ•¥¯Öêã „6Fuuž¯ØbÅ€ ¨ƒ—µ½Ü­V¨2ÐVoUFÿÂøwÔN_åsKÞ Q$(yhe×”TÆaõñTÄ«’í£ÚõŒ(“•År; Ö¨YÓB ›qqRð#Bµô½u¾\qçn2Ñ ¼ r@µ“Ù¥RzöèÍTT“+ØY%~…D´Ý9¾âã¡uÔÉz`* £üè~iÕê7Æ9„Z;±{.ècCì§ö?tÿÅhÖŠÌQ nÿáÛ³vÎX¥X@ lÇö×iÆþ’c|wQ DýÛ¡ð›G­8 è=Ziu+ÙQhFµ3ýë_e¤ÙÉñ¶!íÒ"Ï}­ùÅ–vXŠ‘Š3ØKÅ⪣îhý$¦éÕÐ@ÌÁjÁî/<¨.š›âD¹6ÖQ»~  @ã¼Ìanhî`HDŽg‘ï2ŒJØ«eŽà¹ø¥=Ä¿U¿sG•[ÿ•VqÃöqê®Üñwêu?j­^Yíšej7<üÖìì%wµ†¨š8q9¯=À¬fÞ£ƒzÑ'æˆßœƒ9~Å@íÍ(][Wõç¡]I‹ÑfáðÖöž?¶?ë? üÆFh¨eû©äˆk£Æ ‡@£'ÕGýåP_Þµûd¤Õ‹!ñ×P1’eF´R'‘ïã>0+«»}•7®7f…³vŽ»v´Ì»µã…QLæe¯ëùuл‘`Üv´ñ( ôááú‹n}e6,lØ+f»ú’«àìÈÛ8½7}G¬ÞyÕ·#h°C¢wìáeuùìßÇsàõ•ØVø¦8tÿFu}ÂSZêSÕµ+ÆÔÔ“˜jî‡æYd1ˆO­/º«´½êÞ^e,ã:ðÀwf³h•qgx=žgP«Er—“6cæ¾?§Å&Þè5Ði}û÷q•»=-òÃk•—]-’UÉ·óg<ï1n•Áœ»ïg¾iIßl´U^åýh«PÅÊÉŒÏΟ88³w°_ÌþpDÚoÞ…vvŒ3¯¬úΨÑêîÝu= ÔŠóibuœ=¸¬*æÎ¨w7SÕ@èæ'³e¬/‘3â Î"oƒÎx0sÄïæ[2rô«rx² ìÊC؛Ȟúñè¿&Š“ãÁ½äÒèG¾[ËeÕQÙ§1döY§ˆßÄçÃWa¹kÔW¯n@túu¾0ýZůjPð"¾Âš±·ù–Ffú½­6x ܬײjÌ.þbœÕ²Yo¥–š(ÇQUgw=\] 7’ r§È ê0Švæ»ó3㪰­#’óÍTt¬I¾Ò+@Ù'J-=*#Æ1.•T¢B«E,‰‹ì±C„Šýà¾1uUs PÌAÈfþYS‹3 O4ŸTB¿ƒÓa‡YÞN~×¶*ýU™:jÖ]-‘ºú«¥ì‘z/Ô"Zƒ(e ²¬Ùñh4+kU:‰LhiØ”|¥d|#K­{UîÏÊ$Ï Ú½W&‚Or±Þ¤¤¦AÍ}Uþó"8Ü4àÑÄŒQ½Êd²ƒþÏÞuôíÝ×tpâ«àây›™£ÏÆ×y±z©ÝÍ«g3,hdvQ-Øõ“oÈtøNƒ{ì0ª%Àb➘¹íx¯»°PÀ#YÑ©ogåk®fÔ}Ä]¯röØÔàþp€Yo®Ð9§ííu"5¥O\ÅDÄ,ñ7ÉïÌ᫞z“]¡9_:âƒÛ=>¥ÙãÕ«/=_©½Åä¬Õ´ŠÌC|ÐdEÍQB¤ÛvÈB W*ĤÅPA«a…€BÊOáTc[$Í|;êãHÓ¤6Û%Ú³ÈG!DcØ€îî#ŸmÆë©ðÚ¤qz —¶mB„ %£ }¦Õßm=F1Aq*íÙöøø]Ÿ+ˆc^·ÑŒ,ˆ*u–þ8 ¾ÝY¦|›œÌ®´KX ‹M^¥5 ì‹å+›¥AÄ÷ÄýlŸòi J_x‡Œ°^‰cï«“’žgÑÄ5¯Ä–õlÌçÄm¤´üvvƱÝ{ŽÆ/ØóŠ#`3A\>xè,˜Ñ¤øûlD‡¥ããáØµ‡áÕ´öüùæN¹&^€Ï󣓭GŽ×—“ec9Y€P ~G>%Œ÷ꛑȥ8&óÝr6¥ãÚÙ9™¯ž}ÏÆ+‘©qÀyæ³%fŠìo祟õ’Mµú¼·¥go•7ŠÅ|âÚÿÆï³÷Êwq=±çÚ6˜ÏW84i¹ÎàËÙZåðJ4,ùoç8J&›Äâ?ÇýÙˆ)R¤ ï»9­v(-ŽÖK!ŸÁ7{ÑgîVDú"£–[NT9ovŒ]d‘˜èqÕ(Û{ ‰yk!ômôXØb¥ÃXxñÞ|sµG|'`ü}õgý=µ_é…¯¸¨æÎÌï_!ön¡ â~q¼Cn-`Ë×ð¥çòúŒwg©ÊÅÆšH^2ד -×Õb–- }zXg¡~gð¿›ãù:û«üAáC?KìßàÊßL:¯“û¡~—¢mp¡Fôjc[™Ìƒ¯ÉâQè0,OÕ<Fƒ+> ,ïõÇ’ëà·œŸW­bmrT¢`µˆMMÞ+×A’äüß¡ják²Têr÷¯ô¢˜ŽoØ€"¶émùµûí;ʺ‹²y+O41 ŸjY¬huð&ôÅÚÔ›oŲ%¥(E<°°—K}l0ÉQ®B$îO^Š^EÆÀDÐ:ŸèˆU|‡×ß#æ¬ÌxЉg­#û]Ø3þÁC¬CMˆ½³<oãÚ·•fqIÎåRy“¼dŒÄúŽ3‡Ñ䳿ïî´×],E4âÛ¿l8Êjvdzêdb#Z£÷Ž©¹[-ð¢VÑ·gÆ©WïŠéï¸ï“ã.N2¦¿# ž´Ô[Öa¦r$‘›¾™Åuüθ¯¯,šíðÝ{抇¥Iâà6¿Íì X… ZòηÑèï@Èø}ñ÷½bÆ#Í©²ŒÙg3Sïý³Î3fŸ‡™ycFÎß¡ãù´¢3R òQÚxÁ–ƒ:zl-ð‰8Rñ^©aúPYx}ááa»Ô'öBö—ø¿kŽY¶ZP‚é—¹`gÅ{­Âì—ÑÏÊáöŸ\⎑ e/Çd„|;N÷ºKxôëÖzߎÿ8@83ÊåA±‰¨ù¸ê*ìøW]¿USd–íŒ[x–Œ `ó]l?æûT¬Zš£ðJÜeaòÕ%7kð 3%–¬ T<òÝËU­rŒ¬¶c“ªõÙ9ºÈ¤Ï‘üæ¡ZûξE,|ªÙß‘£½žµîQùÚÓ­TDdß"ÔIF7ˆ=ïíŬEïœã³}ÃïK]Á¯ïÙ ‰æ"Úñ%«Í:Ÿv„gñÍ"ÃÈÀž*ýÚ±¼ð9#úìbüŽ˜Pu={\ÄÇ?ö#°dÅÄô#nbÇ•cÆÑm}åâ’êiú‘´\0¿öÖxøÅÒÍÍŠÎøÞ\BöŽùÄ] ®Pàà…a0·üÅØÒùÔ*€ãZ_—LÌ÷yíì[O=}ªoE>ZÊ7㺠]³‡D]A­¹Ž~’½ƒTr}ç/‹™ûûªb¢1ôN´±r„›ù76šWsh”ªpí\Z­žîaÈ[©Í}—ú’1Öq©ßqq˜aæèL{7ò÷«ß•£ÖªbÏZ;æVć8ä2¬ü6$²¨Àx;=e²¾Yý©vó§øùŽí»ÕZaé?ŽjÉ„È ¼‰CÄÔV.¢<ýd»àOâoa;0ÇîŒ nóÄÞì ÿ¬B„ÁàZkMy|Æ:‹"Á¢Ï»jÙYÙ»TbëÀ«~âQv(jfÌò»ªîÖ>©f{åGk¬É ¨˜”'T4Ù‡[Õ­æY¯ž%Aï5‹eÌïîH¼ª/Óp.(ìò£ýÞîâèŸuî7;ƒŒ,¾äÐ8ûM9.26øOÄ¿ *7Õ„v¿*Kˆ,k=ݟßëÀëáT‚OeÉúê¾wFÛS*%c¦ŠèÌN8ŽÈ ud¦Z1¦j¼ë¼Á­“R/öÊ8b†1Z5«P\1ßÞ˜ÖT¿yèÅVOAc‘£wæ]+Žãò‚§[óËKD#óe¦·ßoUçšJ7fò2ßuÖ?yÇƒÃØÞÃQuW^õo…ðù¦Ràâk½7[ôÝ–cA­Æ!¡FœÔëþõC»­Ê‘¨wo1Äx#Ntè§½yY¹·RH!].® )èù’_•ë1µ•‹.×Ph›¬áP:(€…S†‰‹,iS õ ñï­{)úMvÀÓ}Gâ»äšÒëÝaùâDîë6és–³¦?'”IM÷Nö!¼\´ùÍCÎTœkêX`š.ÐTï  :iIâ£LØ.G¦Ø»ò—A›Û¤°x3Ù™QÌî$^‰ëWÛP%øeè 2s‡}¤@çÜKÞ™É\eÂ4ÃÙ8ÒÄ“¶?@ûÃoE¡—‰M|Xâ+Ïw“ù­6 ðò2FHÎo&›ÆÄwŒÔdî)ïVµD¯hQÓ䌧Ÿ%à¯Úf€Ék40oý¡Àê;¾_üȳRÊâï(Ø !Nß æJ’¬ò‡˜d\¥kœQ>çöÄÙaÄŒÌoõ1¾Ïwж÷RøÍQ/B¦lø^x½W¦»iF`ùïýUvJŸâÑ\;*^2‚Èt‰Ã\›mÇôûÜ•wʳh|û—8?83Êö Ç'³h°4bvZ(¦p¼÷ßÇÉÓ™wÆ¿bð¦%.&B¾Žkêpª¨y YÙTçæ»#ÿÿÀ<‹t«þ¨ÞŒüz5«§bÉì~ŸmON]4Ó³4ýªø#¾ùÒ¹ôØyç^ù3"N^£°— ´Ñ`ö"¬nŠŸ«2ÙU$xkŽok… SöÅ.æ )1ÚÅÛß’-­^ìBä¾íÈÁÅ¢|¢Ã½m$F(í•8ï¿ý®\pA,EѨhÈ4Ç­Àj¿È7š1_)Šê—·ÏŒ¿?ôÿÍCÒ½SýÙ÷ý÷ ²30õíåõ^GLʇ`D[û^ËíP¶sØ8Dæk“+g¿ Ùñ$¢™LVø©¾#*ÆUQî·RYõë7N ®˜ï÷·ô å’K¼/ŒsŽ ø1Ó̲ìaÜl<4cô1 ÚaOp¦©q~‡ôwáˆùú”UØgÍ~\¥½An˜ädÄh÷g›9Ø‚ŒðË)©…îŠFîÞÕH¿yè„Yv™OES Þ÷@^~±‰_—Ý„Ü ‡qìkÁž£ï…Ï–/_E¹ÅúGäåäx'Çô ‰€­±še[ÞhƼë.ß¹hÞƒxý=Dÿ—¼roAç5·8=µ¡E¥ ŸS"«%±Oì…D7ÄIÛ”…éïS¤²‰”^Å;ÄÜ{°¹­.óœ%NȈ.çþª= ²«”ß6ÔZ“öR+{?ÿA‚u("âï+«¬7ï5 uˆolGäù-ƒTL³rÅâPô”'8§:Ñô)£ßû6*ŒÐ§²ù*?°ªOÌ{õÂYF‰¢' Ô{‘k‰ÿðø{ÜW5Ê䮿ÿ®Ê‚ǯ 1âÀ|#ŸX| ñùùKð÷ !ñäŽÅ÷dgd®âÓˆ€‘‚øVH¶C"Z8Ý‘Œ°5ÒÒ…Æ7qOüÝ,~¼D Ïu¾Ú´&—‰_³K¾ríÌwŒYŠèœä†ëC³»ó¦ ÓcÁvƸ=ŽëßõæŽó6þ™ãÍï^¤R d‹ˆþzqϲýhÕØ@\r­„ž3ßÐSqßï*Ë¿V­â˜ÑË×䵩 ±òE<—í´™Ügäe„Ɖ¹ÇÉÒY×Ñă×{?QåE¡Y z_@±ðõboM=r $z½'¾ôwÇç,‹5ö0Rµ[ß}Õ½¬ƒS[Už~dyÖ=GH6vnqâ°9ëfÓT`}ÿ=ažÙ|7Oá©øåÃs䬮XEÔ÷K.¹/6¸*2Yó]ŒbUî¸P–ªêÛqÂIyæžµ”‹…ñ Å›nsd9A}§býÏŒ¯rÒQL™mûûÃC䙌o~ õS4UcÞ«obÆqúu¢PµÎ¡Ð"¢9ýµºK„¥?cüÐ_d$üj¦^ÅØn­7ïÖ½=õÁ9ä`V×fæ§ XÝÖ7¯¼×³gÌìãäêŒLøD©U–äüK+knõã¬øç¼ÝÔÂ4`Sœw©%dd[¿© ßù_x3逸Thkõ ?™3g76ëùñsË…^57Oñ÷_›•+ož­9á ž±!ºcª¸…(ÿÚ*Ôq‘“h%r¿~ïø“M²¬‘¹Ð/GïRúïÈÛÕvö}ýª^,uªÆÞм/fM”©ÏßóLÅ9·ŸåôE^~½žøÚ b™/Q†DžK~ëJ{—š3—ÀWpÈ'5h;úÎwõ]"ï:ð¨}GùJ ¬¶‚©”JyèuÙSÁÏñŸ˜‡¦’QÐ p ¾Eƒ0ÖB*(PžŒÏŽÒ×åE¹ K ò¤g¥þûv.ä7ÕU'ßáõ16¼oFÛ[\B‘‰ÞË\Q§]•K* ÙãwT;p Y26ùÊ\ySuNcý`v0;!m/tÙýâ‰.$¤‡[± 1Z‚YàÏk”oAôÁ—®\Ôkd"hfCމB"K%¤%øÏìü;ÕWÁ.ä8hEd]FÜîóš5Gë`‡çƒc‡ùå¿Q¹z3"c¿ïÌ%ô ÏÉ«¬m×F<Ñ9YÛjÙ^šYïmv+õ€ãž5Wr”øwƒ¹'U²ùìφl#ê± ÚWbò»É²=c}\ù³®2vîòßårIuöT¸|iäÃ%ŒuY`5’ЬWä¯#£¬RkµúûuäJÖxßÁDë:"óJîý’kúÅ&'FO­ŸÕ„5y<?Ñ¡9®U,AÂøQ–—°ñÛ+r]4/Åmé~]Åì¯:óö9âû=rØ—ÌbõÅßã´û nı %Ê3¯wUF¨Çèœj 8o/õ”wyjFø\ÁêÓq?ugžBmIÞY7þ‹6d\êr=ˆ6œøùªkQöj%#[|• ¼§VyvwNŠF·¼ö|äVfDd0RuµW‘é° ÑBÜ.•'š@¥6*#Zþ}«ñ1V¶6È}ZRu¶¼>’÷2æ¾­¾zœ£MFd­ßACq°åòÑêÀù½Äl¯(#Z…ÆQË_×aW@#{ûÞà°è…™ÉÔ×úóýs†ozÄ_«=y¦”ŒºéóˆruWÅ!32/žSS½ª2®ê;{ÿýþV¬«kØú½åë?y¥úú2fþaUv­¼×“£ï—Šüà kÍT)=ÿwí—qÿ‡È¿ÍŒ¥_ôÿ™ —Ù×’qúEõŠÍ©Â’}ÆF•÷šéäF»Bêð—øã|IrDý«z#²ÌÄTýP)xhÌD¶?ÎýÍB^2µ¿_‰ÂÖ¥òÙsÑŸP)iuµÎ¬(î+çð7¢ôÉîŒÕ?DöïßÂg¢xÞ+fJÜÇ §ÿ®}KƒÐ£Ë¬±#®ï»æqu#ƒçÇXnòô;þ®å)3ãþßU­¬5­®ÎÜŹîÞwž^#}Vóгã3ÔwÆ"Ñ‘'CgD‚´¹No=Úw_-¾õïªÌçfV²FIn^C|câF]_§Z3wûÜQxGܽîhQÉ wEÀžPñÇéñÑïîßûóÀßþÇÒ6ÎÜ­ì1úç‡ã—·âzÌÿ¢7Ô*/Ôfú`ÎíÃ!«Ç<£_Õ·vÜßÏWYM%pùaŒ•FÊÙ·Õ¶wæ)qB´Y­îh÷‰µëÞ1}£U=ÆÆ¬|¾ÛªŒï»–˜}Ïþî÷ΨÔnú^”Žy±¢×{Õu‰Ÿ ÀzvÝý*4˜^5Ÿw¯È•íúû«½”|½–=–ñqŒ»øòeã%¢ÎoÏîî­rT5¦ÕF1Xü>Æ:ò}é˜T‰ù}²lÏ'¶B\bŒ|Eß߬] åq.êÚ KÀsä8•Í3ÍF'ãæ•æþތå«X~ÚeeÔE÷óÎäõ{ä’Ìm½ñ켺R™¢›à«ˆïÇaUí+‚Dà\þšu¿RÜ"ä¸wvÉ*S$È^ò„R‡eü¬C´‘Ûàzªï÷À#"†üŒH¯š…D)ê¶œýÈQ¨@4È]bÖâD@h áß¡|e*ƒê)Š£i”äÉ_¸ "Í´WX_åHàŠ§y“" ã¾G˜"¸hA&a\ÚÎ$†BïÁØc­ ÖGwòý"iÕQþu“Xº*™t*`ÿüJk€F!ð fŠàUtŽÓñÓÝr^3ç2á‰(… ¤Þâ.O…d6Hõc]¼½Šj\$OŒäR = ‰1/’—TSNz¯ç*KÓZÂ^Ï "¢úŠ£‰ûƒŸi<´$©~<Åòͧ´Š0-1YåX b? ÜýŒo¬·Ñ‘pÀ;o£ŽÁ¿!.ÊšªÐSX,1Ï,ømyÜÏD«R* °±›0XäÁ÷”>cùZàþâ‘-½ø²§¢ÀmÁ#^IˆÊ°4@ãÒך×C|1ŽïÖÍl§^µù ±Ï·ZÜügv;ã¸ãC“ Á¼jl= ‘ÙljX?¬þ(Û‰gñy™T÷’ãGŽöŒï·8ƒ¢$Bs˜¨ˆyÀ<" œzòÞGou¬B;4¾Eõ¸”3ޱl– ŠAü'šØ‰ÉÈBšØAð>WêˆX,¬÷˜é«p¨éa92êy°z/ìÈìŠ"|~b¦¢E»3cûyVňly+W|Ð-ù:‹7šx‡…ŸgT4LËC¯*¼x°÷!Ûõ;$ä;2;A“ä áG»õ(U‡ß¹rä[Ï@âHA&WÓ \'Hߌ§@â,@Î\ÙEìÚ êÄ1ÊÉ´›ôNxªÇ!¶ÿ~Ÿ…l|éÉQ:bðÛÖ1@<1C}£¶’Û°ýº3w’ç–|ÒAÌQ‘qçß·ò ÙLüÞê¬ß‰Fñ;È0ß™ŒQòªß-aÑÃ'öòÄ:¢ì6ú~w¡%ðÏUÿioÌ[eÛùRóùÄ™žƒèûïþ²êWšS¯‚E³ÒmDŒÇkTd÷ÖDr–AÈxȺOtÆ`$~~摵2ÎÌB·[œ’ °$MüÁ Ÿq0¨ü¯Š†'}WœÚðóR»kI2•¹`IbNmE´<´=ùû÷ð3˜råˆß²1O_‡jÊŠn•Ö­+–>¿â¦‡­áÄê刱%v 4}TED€^…O°Ø·*NÀZ—(å¬O¦'Íøñª·¬ Jâ[«³—QâßÀ| Â\ú Žá5ûÚ»~‡×Áž;Güm»6ð„hTaj¿±çÝ®‘¹ôÇ1æÚ»`Vÿ¯Ä,¯<Ög¢Zd›˜ñûäUïK#¾±·‹GZ»†e…aüxÕ—6¾ÁÏ]Õ£%ž5qltFy뇒¢ž¥ó­Bqë'Ñôå.³üL&›Qz’³ Ètb„áh¯_"ÿ÷û]~v!L…#þµ'1Ó¨Í šÿϨüH] ÒEN4,‰õX{_ù¡>Ïô8Y܈¢m¨ã¼jnï´û­hFáïà—±Î=¯ä£¿i—¸ê:ð¤elôãDkˆŠ2øÃ®Â#áv2UG¿5¿ˆæpjM¥ß‡qÌwÆäTãxUßžl,‚!àAfï˜ÛFíY•ӚūÚΟö´Š£i|ýj±%ßÞòöm7eCTÄôÆ¿õÓ“Ì[–Ö^­¦[íÛjûYq ¤‘eOÊnÔ÷Õ– ôZ|ÏN…ç‹™é½x§õkÇGr~ ¯²”ZÇ\aÙ7|Û‰±Þ-Òn—iõêO¼Æã×WFiøß¶V-;Y=âO|ÛÚ•ñ•X?ÒÏßÎÛÖÊb½õ6ÆÞ­Ý; Etk-¸¤ˆãŸ/y!Q#b–ø£{ž¾u5B»Q̶¶çKlg­U¬ËtVÅ2 ™ÞûŽbÙeh#b’fYœTÉåp؃¥’7Ò+_!qÐÅ.Ú©_Àw0Q†é}j$Óqb9ªŠÙÉÞÀ¿æÙIðÿ_.¼ñÁχFN¼Y1®úò`[ÿeår{ø1‘…l„gà–ÉÒ©l¨EƒßÁ€`Û6a5›3th׎Y…Jýû=F1Êÿê]¯û‘ç .W]8ø 4Åà_¸m¦ç{a<ùÔE`7TŒ'_GÏ(…þ¢çWÜjŽ÷½²ý±Š“{ÈW¢€¸„‡¬4Åe²g>åßK¿;Ç^Xi=ú–b˜y¯·rˆ¬›Ë#Ÿ¸ 6Xeu׆ÄuPè•{Ï›W}•‰ë®€{V2Ø[ªŒ¸+‰X¯z+#Ú:| ³a9YIë0awZÿß_^»õ¦#Þ>✳«Ù³d,"'Öÿð-(j…$&(ÏQ,ýXQŠÕØnš…OÚNäÄGÒF(jå&V­ïá›G.ö^GD=.·Ç9Fÿ~öÖec|ôq3¿ù”Y6F“Î#Gù>qb5±ƒ‡‰“GÍé8&Wˆ€ÇÈðª·0êëÛƒ äÃëÏúHZDkYyvл¹µÇkn´ŠÏªþmÀ’‰Þò—Jèúê ÄISwÿj ýѹ×[Lñ°ù$±w ‘fÎ.ÒÅu9ˆœ ïÞ#G/•Ö‡ÿÉÆÐÈ%#&*ø bNævöÁ¶Œ#NÔ‘âôD³öŠ3ðF ‘Âßø¶C·hIáO¢©©”~£ÆÏ\°Qçéù¬¶³¡“%DØd]«wðhû¨¡Þ“¡#æûuÄd·2scÅ»•"ªqb/O‚0þÑ/°*£šº÷WqNÌ÷ûðpW}üfOu2†È§Üªu߃e¬EõNxª_«|?äæß,»Çì:H ²~ÄOyÙ«Ñ*BFþýÜñÒï§"¼R_¡w]ûr¯†>w•Ü[8÷ïªwoc-™í(žâÀD8b'ð†˜ê"/ȼ~µ6Eu‹×ºÝ—¼ËÜ1Û­5gq >VÄ¢½½…0°])ü†û³*>—JÑ«Æö!»ÍÍ;c>q¼;{o;Žd]w à7|ØÛØq$W *|ù˜™¥«š üŠãÄmãL”·2d̨Îâó™çµ­Ó#ë»{HÔÄ?"®ê׎ ¦^%CÈ–8ïÖ8‘I»¨3+êºJ±0íç^ßij,^õµ}/#Yаä\û¶¿D[×·E{ò·í{‘ßuGq”l"šZåõ?üªeſĉ¯}jï~T™²Y<®2ÆL¯õÂ6vØÐ+QÑhOД˜íïö°ÈºÈøj¡uο‡A:2 ^ƒ#“i­ã÷AÆÍb×Bå-peŒôprØ?ŒÙÛ]Í£ÏL•€¥¦}‚ý‘‹¿µ>ï^1ÕÉ1ükMj‡.Z9‡¯0€(’Ûă/T• ÙÓT˜Z}V.™DQà:žü@vÏ#Êà ëWùì¥+EÄÂ+ý|ê¬Y˜i÷ú•?Â7ÿ~ï_pÖú÷;ë­wÅDêExÔ";Æ¡›2~á0€×Hñ6\"ˆ¦Ìx¶ŠO™ÿòªV3žÇì@Ö/-y ù8ÎwÍYv{@â¦z©re bG„q¥\š#>µ­~¸Í8q”¹ÀãÀT«I1™¨X£| >[¿ŠÿøT Nõů8´«Vù–Ot|Î î}ߪ»d?â˜8š‡f6¦EKF¹<ªUïuUÔkDÀ3T߉ Økš ×7‰Ý·tYœÛmÞ5;2©{ ŸŠLXÕEÞ!ZÁD"úrއÁ"SÎO{}åUPg9zß¡™Ç‰7Ž…»qg´:q^¸ÿS¦Åd‘ýˆJÞ«•¿Á“÷ÿe]G¶ä6 \OŸ†9ÜÿbVüÏ›ïqK"A„˜€ðŸþˆÏŽvhÀ¹æ·/÷¿ç#4¨Z³~’yaŸ=[]V´$0†ÿur4åÐùÏ’íq(É.[‘Ôd½Þ5ÇÅ}a›4Ó>=ÿŸ0ŸàY½çÅ34HçÙ¿yI¾vá‘tÃ1Aú=Q˜âUbëËÏŸ¸ì¬‰JÆ«ÒéžôœÑí³¯.´”¶[¼w<­85Bº£·µî÷Ýñ÷ -ö> +D~@‘C[œpAò` ‰OMÚ=ËÊ þ8ãúëÁwŽ®{v.®N®‹1]ó@û ãÍïÑò³ç«™ጠòRBÆOÖ¹Þþm#xÜ…=¹z8®¶ö\B3…PexÆ1o¢õF*Gÿe ´Œ.Û¯×6EÂ˱.¤'ò×Ístk µ±s ¶‚në¼d û‰y|ŽÔ}²KBhíyµcKÞ34{=LE «>+éŽÿ]pbßzbÚ7Óª^Uuñe RÔ[ ãwý£õÑ|›öŽ¢bÔk=_ >¨é™ƒd%¹õò莰Í3"{Aêv/ëêŽ=¢÷¥CÒ§^æÕ û2ÏÑÄ+ñ­—VêhÆ2¢Ä,=c5a–«½Ö°‰±_Ýìûð½wÑm­˜Çö=Úµÿ^󕪽¯‰¯âñžç°Ø¦ŠÎßËÒÊuåÕ|nN¼_Yßø{žÂgôs9_Û0%¯Ï´æã¹Æ¾#îÔci˜½œgËò\Ò—.¼”ýÈ‹uu0®I7J tóLÎÞF#n¡!ö<ý¼•KZ½²·ólÙ~@6Óú•ý‰Ìi¡¶´¢îKÝñ÷Æ[ù7ÉÓVìØÂsÆ#½…TíãÐ’Ã2uŠm?qPßâÎxüLKžýuFv¬Éi©· ƒeMm_©·5ø­–M"IÙƒxçÏè*kê$„´³¾6!¤­²ëjÔv[3ì·?ò’˜ç­°IË ­£!À½%o$û“EU=ü…OµeÉ¢%{Çž9íVj‹?Ú¾ÂΈʶ?ϵ̣=²d÷’}²NH^Œzº¤*©9f.Ú4V­jV{|÷Òþ‰¡–šPùغðX–9æÑ°ã<‡5ú‰ãá´ã•CWy Í¥MBh¯Øo%IÙ½ô$;–üEk,†H„ãëDEåÎϦ.nkíS÷:WeŽÏ‘>ð¹¤rbIYlûÀVÉC8(=În–ƒ:1phuy>v—¨E!¿ô[£ôÏ‘‘¢×Έµ{Shýöœh22K±šdmé¿ð‚æ·pPšUYÙîÆõâZì^8ÒÞ¡sóÑy‰Ó£,®<:1[hdÖ…VÛ¸PI<'<0ZK„“Òœbú=žAú»—ð¼Î˜.=~K¿„FéÈã‘Ázô¾~!oË~=ct`ê…Üâ´PZ:#IZOïÒ!£}³µ-?žCÜÊÊž%šâ‹0Q®–ü/üjOá©F~iý¥*l8¨".‰còk’‡ì9Zjèƒ0UòExÆfÌ–Œ„©’‡¬Þ{…¶i…0Ñ3ªújH}ø*)yòc Ý#)=økÉ÷‹;’‡O™—â«âiɳYο‡2R9Ò£AÂÏ<~>B¢©“o=¬À'æÖé·]­©‡„d}ÆË€òÂOéìÝûQÖMñe©Åšå9¥N B»ýX—g’–¥6„þÒ‰îhù÷Œ{µðçŽ!íK7G™Ôs†â´Ÿæ§´†4„ÒÙ°ç“–å1„:û±ÎjBµöZø. §CDíв/_‡ðFzй­}±@ÜÂÙm;Ï«a¬å~dëÍú¯þIË&K§„MÞ?4Ç—F×Cìa­!Ò—­˜†l‡£ñˆ‘Þ <Ì©y¾o—û#¯ú°6üžhÅ‘M yLG°~«^­å‘í°Oÿ=‘‹öõÉÃáØÒº% 2G¤í‡oãêÀl¥çBhÏÈ´3J¿#î^KçÄÅQZÈ{:fq/ëjËÅX’Fðƒc\^2®ŒŒž+IîÒ¡}hùá°÷õ%«á}t¹g„ÕÞWV™ãD}Pr%JUáϳ²&^‹ï£æ+Uã°g9±F?ʼR5öù6*k€7¦2??=’ g¹6% 6‚{®%½ ŽôÓJ ïçÖÔ¼§:4‡Ü%Ð#y&)ì–ÖŽ:®TŒãÝ>ÚŽwO9R÷Ë„«²-í×É—zMÚÊ6ˆ¡’·qÑó£”l£Î;n#–çRÆ{!C+W+Œý'rFËš[ºZa¼ö¬×Z/¼—5´¸ä]c¬¬Qç)äW…·Þ7ŒUGëÁ© ]…m^iŠ=eS­]­2’~³¿Xýq$N›g•ð‹ÎX±ð®†Ñ±í îD-;z-®\:ó¡§ì³­srÜé·VØz¯!a·Ï£c}š¤„l’eæ·‚Ç£çÐûR­&ûe?cÆ%aŸgFJùIx>¨¹Ž–Ž@½>BZFûõC/dN{ïÎQ¨£©t{”´†#Bã¨ø©Õ ö`ê‰s„ÆÂÏ›ÂuÏ £â”ð_Ò¦zži¼R/½…ä…]^}7r )„ø’i¶¬á—-g¡´d*|öþ¤1Yr–ïׄÏ^¯0ÚŠ“Âòþ ï>ê&ÊÎ%SÇìÍk|ýÚű.ÝALÕÜ Þ ¥oF6qÒˆ½ÃN=/2²J[„ˆâZ±ô[¿åcx*À”xïÌ(©Ñ ·%Íb)›úÇž}¾o…–yŒ’ŠpS¨¶º_6ˆ®jæVFh€°lîß4>J¶Â{ÉQvì"óM<”¿é åCw {–WЫæ§[ ±U§GŒ»²z5K¨Zr~k§…÷ó±Í|´aÚñDäpâ‡1óÌ%¾gõz‚ù" yæƒuùðëá·<„䨭þ›[焱’“lÓ7mõâºIÒnŽa~Oô$=öKš²MÏ«’²˜]‚·²3÷"õZ]bQÏé|†Pɼýz¢ï‡ký™ãúå!ïg<ö˜ÖXñPü^K¦Í±‡ßzìF±FbtµÌÅCñS¸¸«*GÇÕ¬)T—ºqà÷  $¨57qXVã™9½ä/Rè‡}¡×¶fÜ cÉ=ÇŠ«ïþˆ‡âç”]Hoí+õûÚØª‹ÃÑ«éÊa¯K±G>(ÌøEìdD¦UÎ2ÃóyŽì±p\3µ“,°~­+»)±üð\zò(úÝ^µQÆ–ÃÕ~íu==RãæáWXڔ璜d-½–$*¶¸6êúá×¼v1sÍjV|ÐÉ[åÀ²fŒû=è»%ͺ(dhç­~ujÒsY†ãÓµ¯Ìœ.?Œ±>«iIlÙæ L[ÒïAï9.f~4c®Žk]SQ«â!qã­Çãuƾß3ÍÈá o‚]Ï6bt3ïТé¨Ño•Ë©YrÈÔ«LšM eâÇAuS/Ùo%ê—·ÆÅ~øU¯„gY!'!‡O_Š>Ñ:ub ‡Ž£«ÆUѵ/׌±]ke¾Êuµå2E)NúOg*t¿aCS‘‘4Ö>Ø#ul¼.×g/ׂÇ9I­9³ƒº¥_t²ãh¬ $éõ¸#1Æz½\’T¦w$Fà¢wñÄCñsÖv¥i$öœÏˆ™S•«FÏÑ-íø%]­ŽÅ~†Ë^[HÓxî­WHÓ ß„,gçØÐÏZ¯Ìuóð &µ|ùu0Ø–&L’Óˆ_Ƨy¨IUœˆ‘º@ÅATYuW'ŽG=Ôç@ˆÖ‚ºä¨Óo­°b¬ßMŽÞ~yÙöûÃ[!â4(fR @Û}„çRåúãfŒ±÷ÀŒ3÷ö|iF"tT„ÐowØ6ÏZXì}Ý£ÐW¶ÝÛÕE#1ç‡CY{±3Á[gúÆŠÉg?Ù!ª²ÿöH! ~ãô~(i éμOè•nI F2P(Û¡_²%ëÖ³'¨“›²é-ûõ. QÂ8Î%1IT˜~2º:פªî°õ‹©œ1¶—bñC¨xf‡Â^áCßGJ‡M—¢Å­õX¦gNFhi‘ݲ´W=š[BvTv¿Y0êìJûØ ‹³žù¦v<ªV‘­áëÑQaŸ,Cq‡g1Ë”Ž½±Ç^̓߃.Ò훈Ò.Ï*]«‰G¿ê|b™G#…†³…•y^ed"È‹OFye2Ð9VÝ!äZkg¡*ŸcÎGœœ3-ìSÈ) ðlàp%rËâç;ÅN’zÍ/F`æô ȃ¹ìWþj<þ*ºrè¸<ôFHpÞk'½´«éòÃ÷¬}ùÁIyõkdÝ¿À;[³b«ù °ç¬¿ùW>[Ò²7¿ê#sÅVãñ!ž©Y[¤9ŠQ棚,¢¨„ÆÉ~³NÓkžÑ–hØ!Šg´(®x×Ðc•EÉöçõˆý¬Àñf´oI+{ KÍõ¡”žØ~dKòˆêwˬåûÒ-ó˘ò{¤N XéiÑölÜ•Ôe Ô†¥Y’­k½:£“€ãJþø~™uƒc\D.óVÚÝŽ„úE‚•{èrw4è·öÅO=_BTٛ׉S=Fj4²ÙSp•'·Û¯,iÖóÖº¶ è]c–÷?m][š3n¿¶´®˃-årêpÕt‹/ŽËµ7¶¯wž^g±ÎRW®ŽÎŒv9½„¸ÐŒ£%žë­ˆâä’… ¹¼—i‹¤~.y iô°¦ÿ±DRœõ7…UŽÓV¹òR_££¯æß·¯./y³mdy<¯âãÕÖí×hàÕ˜ƒVê1_®äZ¯õ¬à×Rì!KŠ4Œ=k]ŠXŠÞ\9(·_Xãrb•ú1Ï[ýÚó¢oƧ¡ü5Òe}¹ò|4ÚšeNåK·ùµÖµôU¢¯ƒ\ý]÷TaÆIk‡Ç±ç™nÿ«ÔÛâÁ$÷8à L±ü§ÐÆsrkPRšUzàˆgtÇbr<¯aÓóœƒÛc}ô~m¬aãÆ™:G8<¨Yÿ¤«‚£êi ÈÔ:wlí’©f y>–o‘5†– ½µKΪԌugq¾=s?ïkIeù*ù\5­1Ö;q#´ozOêxÜ£BÅžØcLa5\çrBœ3㛋›==Xbº…´ÂP¾çuvÆú¹Ztd㶬é}êFecÿ ÕZ›´#k›RŠ“mD»F£ªÐMXÓ[ðVHç¹­­]OZÞí,#’Îѧà°ÐI3:õî:À‚Ð]à\ÙZmk”iŒ­<–i]4‚‹zþ»ÍÇæ¤©Zo:ÖÖâ-ÛÜÑŒX¢5µ–ô:rzø-Šô®Ñgþ«,AÆM¦N¨ztq…¿·~ù‚=–è–ÆK6â}±„Ì©#Ö¸F ô,Ñ:S ö¼Íç­1Í‘^:f9Ö¥VFŒ±Ø‹üžoôýÈñ®õúhV»Õ‰âŠgͶWÉCq€r߉RÇÄAf< xNwtªFôËc´K6;úUëå¬k»Ú«ÒÂÚ÷ðŽ£ ÒqZ}WsÎ[3¨Ðsõk-4¿Ò£¹’³"_#ù%K•ÎÌg¤µgHæ‹x$(9'–éj¡¿ò2ê·Ú{™®Àø-äQïŽ_(T”$]¢y6t4§JJ'¼¦#zdûFTi¹x°-²4uFtÆHŒ‡k-´Tñ±Þµíš9Ó#‡‹àí`‘ŒÎjS¥^zúr.ßÉÿ=4ÄöèTdz³¯ìØBÓvšê?ëâZ³Ã²`E‚ȸHݪ¬pR.9/)u; ‘ƒ)bB±×S)›´fî Þæm–[‘%¾=Z©mf†þUªví°ü–L@_ª•õùåçE×èÕ¯MÓo+Ÿ@Fj%l^z«õ9®ÂŠäšªÂ{cÇW(Ô´KÑ–ÛZ/ø8¸R_šþ°ÇÝbÃèL…ü¾—sS ,Ãô䌜>\W@#çeu5×zãü‹+âÐÙ^TÀ¤£˜”Ùf@ég/ógûrÒ »K@ DÝrKµ¸í…›¬¾Ô¶¹-_Ë4ØXsŒNýNÑßÚ!aIÛã±d$s锸¹SðΛ_GKEÅŠVl#§¯táE£ÛùÑžT=NZgWQ€½omN,|oMçfª`ƒ¶(¾ˆxrçÂý­kÍ–Ÿh³V+¬ÑB§öUE^²œ²0×ÑÜ\Xcuå® Õ:v› Ìé–;{4ÙnÔ–ï­âBë¨Þuè É~)’^­“Žâ÷hïŒV¶\›59¿Eü‘–¨J±µË›mî­K×iËå·ÚÕ¢[èÐm8xÖñ…$ å»õqjÍGh~ãYÌWÓ¥Dzݯõ’í*ÔU"õTéhzºÔo9k½uBAF’œ¢Å£õñÓheKKò‹é¯L^’|é!ßs•m<×éghœ´/3†ö/9•v²²¨kO¨ Þªà±tÜኩ³c¯!³RoëëLbJè—ÑË8«pûPWÕ£BT[•{´.Šk㑃5ʵ4ù=B¨>ñ6U…š-­Ç^ÄUµhíôöî~ˆF!‘(5W ª¹Úfèšã•Ë·ZN¼FÅŠÔÊëÛª……¤]TZt Tm·ž«¶iNÙÁ{£µ¦åG¯5K¡Ýž²oðÈ®æÃ7ùšòôh¥=\³W• Xû%Áú|aK°´¥ý²$q½Ö;žu®ÛIö:°Ïò;*8©HkÌsX¤žÐþ<²8ŸmDËJ+@/“lçN1 êóÃÏ:‚Ƶ?¼—íŠîºã;‡ùÖ,Y­øå«zºýÖNê¹ZÌFÊßx<ÚCQë¡ežÔÙzdµ=‡²-øÏ[ÐÝFŒ·N<_ªF‰§¤GgøoÝ¢ËÈâ…‘‰>ŒOÄÀã»ÛÁƒ>® ×B&a?£Ô(eêõz"™‹zëâò[ÏèÑx ¶j_˜îFIªõ.‰,%8µÄèÖã]íÉ×kŒ±¯ ÁCÖÑ*ºG~ôGBΤx® oíéàÓ/ºD¯¶6¦#fE¾ö’Cº¸' ”ßœéSHM˜8wÂlªœÕK¬dþú£©Bã­–ùò_RúY8"=xÚ£Q¥XΡÖA}é¾Lƒ¸•b¼[`Š¥Cš\îS,v¼U<öy‘v¯Atµ¶3}?zhš¬ÅÒc;òÐë‘¥ú5§¬ƒû¡~™ÓÙÞù½³š{OÂCØ_F¢ðU¼eG«ÉÂz†+“ñn½Õ£=j3sˆÁSR'âmF§• §ï5)ë6¬?ƒ[ñ\CôTÈŒ}ÊÜS ní5©Ôê¹+¹”g)’žÔH_`Sµê³=q#ÿΧ²k/xŽ“ÐÁs¿yŽc|Ü~ÌG§‹R½ÆÃ.kºƒlÅtfº­ÔóRÔú‰”ýÿ.¾]êÑ—¡¶¬b·Úç’óVŒbÖïß-“ÕHhÞj¬Çr=/µÈÇ3õañ+Y¥£&Ù)Ë 'yi \ѲJ}øE{ Z“ié„™õøÁ|"]Iã{¾â±K•¼ÍÍËkX­‡Ì\ÁGÅ9ŠM4*Çw×ÛéñûÛKëRmmÛ÷Õ»}zFr´¤EûéÝÛbæ´‘n®èÓ%&ŽœÈÛýHË[]é¨EéáÄtþ{ŒVcú»-ó/ÌnÙS•læùX½©/‡/ßó½/¯^˜™‹ûÕäïç·ýШQ{j¯6瑊ú=àç ÿÃÏ|Æø½µ‚·ÞÔ;i§òÝ7Òk^o9\oÛiëÚ‹xÝU†¯•z°F‘0èwã|éÉ÷ÖºÑþö5™£-Ò9i| ®yö|$(©ŒCו¦Û²–³—¬xyo} ðð{œçjñòÞ–8¯]‰"µxäè­©-$=_g × ×uMø·¯ãã>miò}ŽR̤r,^qµ6Xãåµo¿Gûבà maA¿k]ÕêÍ‘09QKÈÙ3Û­µÍÑ$»žïÎòæ#•ý´"ÙØÄ=Í]+tof…Wg[´ÒÛ£¿æ‘¤&Ù–·GÛÐïÕ>)=Þµ6XvÖ9é§þŽGÿì¬9ž«EkÉŽG¬p‰G½G\åÃÊdžE÷ÙØžOD5#éøJͨáC3R ê0¥<É=ïðäŸG4sž:¦-Çj½B¸¤9G—¥-¢¤¼z}põñPÚmÐx²g?ÖÂã…’©ü£#ØÛ)õíõ|\E=/~9f‘±•¬b2[íÓ†rºuiQ£Ö_Š˜WjNðÎH6l¿•ПœD‹µaÅ[Ö‰ƒÅ+<¤8ÕV¬Ò¤åVVŒ¥¾ú—ýÑòTX×-­°(ŽÒ¿e]^¿³<ân{¤ª¶83:Ö«Q¶Çú$5ûÛͨWŽZêõ“ƒŸ%â!K%dÊÙºJxù´¨xu©*‚²ÎÍëûÔJ–%ËîšPå ÚÌ7ú÷ßƒÉÆA1_ªQìó%0 /§GÇKú­Uô«ˆÒ(kϸKê]Ñ0ìo$7!ó º²ÕÈwZ¬¡²âšÚµlè6H VQ¹ÌÒ‡jPPN9‡d§#Î߈hŒ«¦¹¦ˆ‡¼þíí_îå N˜pÌ[Ák9.0â§;®\f§£Hï®çœb ¢ë¢´4C#9ˆlãaÙÀ7e€šÁƒ¬Èm?Ð0¬K…(ÊŒ¼lÂãP¿®-21ïñõÞAh÷`MQu’L%Éër󯛉Á9×Ë£&ÆW %Ìö¨¢…=Cñô<çÊÏÉl›©Ô¬Ï,ªH¡k^5&µy?½™ ÷V¯Y‹•z×jêú…†©^ÍÛ­†n«´ ×ÜðzíWÐ/G˜½Æ_úcdnKŠ(¿!­¢Ÿz©˜$&e'³ï|ÛTe~âlÉW]lŠgš$EÜHA¥òèû€R±•ŽA™ 2-¿åq·0U¹ùLg:>†¥¾FPg#;Ô¯0¬öÈI@± Ò’³ GÏÛ+sÁ‘5XãRÒãm4€®Ð¬ª1Ö+­ä†¤$h§ãòb·Ñž1"ˆM&+…Zú¹†`hô˜ybdßÁ4Ôé²èZP¤Öbt[2-)À˜õR•Óã I_Õ¯MÖF!ÑkÜêk>¦¡“›×é=tϪèxÚ¦«ß‰:£™û}ÌLü’ý­¸Å£]z‡Ž;Õ¢UQÁÓ  +ç­‰ºYcìÍFgåoA—‚.óQæ`sÒÿé‰úuÔ{\f8[Ó-‡-¸OGòEf=Q¢×\ŽQ?tkf`™Y#¥ŸÒE¹bóVcç[ûÖRĺÒC´e¡‘χ¯Ö_¿e§R‚ã q¤ÝònÎꉓFá™Ñ‘^Z’'T™—Þbë¼î Á©ÛA±Z]†OsTºeÍßGè™Cn[ƒ~Û æµÃ¯Z¥Ñ)\R»ãȰ_éa‡ddÔ°õöIô\ÎYÒèÖ=Ó]£¯e}ø#Áß Ó²nÑ5#)É}=v VÄÕÞsP¡Rüš½ä5òÕsóÀÈjŠŒ!êëá§ÑÎ:e+ß—¢¢0Gß̓]íjH)ѯƒŠzz']Ò)½kÇ\ìô¬! Ôž1•Ìu[A Šöcž©±G…ÊûÑ¿é·Æó¥ô^ïZ³'ê塸©ù÷ÑsÕèC»I-ä,$ò¬÷h¹ž×ûîA-ËÑ:•n_%íG¿lÏÖɹß­ž^ª·•#GQo{^ëŽ^Sµx$ åQÉ^ß—¬åÖúpMViïRb’&Nú¨BŸè°Aç´dKYûÊ 5e;¤£Þò+OÛÇzt¾´GF¢¢™þúh³´1ݱ=rèhi”å‘”edI×xžÇcÝÖVIGeÈzÚ%¦k„5ØŠê|FâÝ-æÐ0õ(ß/<ñÄÑ­”ñè‘5ÛZ±â¹øa»’f­ÐHWŒÄb[j5‚BɸÍ»g~¹:ߣ•RÞ ,m¡JúuÒìÃUQ?Ÿ¶ÄáC}‰q1â9-ŠÞé·Ù¨-ÎJgϤà ¶9FGŸªM‡4]5z©9¨³üÓïÌfîâ¯Z±u©æ…–£ªü7C$–m=àµõP"<íqï^uRhÒs¸z¯;Ñðûú°CbÊG˜#z©†¬ì¶zP\¦X¤õ÷|#UU[©R«þFß‹.‹ÜŠcSb\­?îæðsÆX4.M6®kõઌ(ZA½ÕÇmYÌüÛÒC—úp[6ÔÏÛÓ¯ƒªÃïmé-«¢9e=²Œ‡:)·•Ðü–6´‡:IÛNKæ*%-½?¦Ëã©V~viÎ#-;qóKtµ½[ò¦ÎržÑJ{¾ö$ëȹG+ýå ë‹U™&”‹õÓœNñe¯´Ï[%ÚìêxecN²õhZ¬××cQ²1qÊpn‹Ç4îþpÊr4'3¢Bñ@Ž!i´˜jÈ…Ž×ª‹ìÆÔèÑkYîËÚÖžÑ͇_æ”ìJ¨¡^Œ#F·ÕNñ—‘ž­íᡞ(lµþY×­!ê«<ü2ÝV ZÕÊx÷vÏè[´5úCÆæû󛞧u‡È·x 87ÖnËq-¢K¡ä°ë„Ì©}™_æ}~ÓóY°þõGçDÑÌÑ®§xgDüm¾mit¦ÛZ¬¶z´Øía~6iÜêK-š_rvGsô5NH£+Ÿ]^)zoG³Vh¹žÏG•p¨Mµï]å£GíÑ~xdN{,éy>ŸqyÜÖ³úðpŸÆátø2Ÿ·Äo!ØÑŠZá 7_cUxhŠÄm8ŽêÝüh˜©pÿâ+i]ÏžæœQÌxî¶ôÔÜ™ßEÑz¾›–eôpú›È>\rÿCo»Ïúô¹~Ïhݾ™¿§UsF-ƒg¸´ŠŒ¡¨D‚ª¨ìÓy¥²‘áù‘¹Ÿ•Áy’‘Oy%‘9_‘Ýöû×ÇG\²CÎ?dV½#÷'2{"O.ËÎÈkkǸV…«/8 Ž«ÅÊЀkž<8Í=OÄ(8FãK¯Ü‰æ3·t¸\Àí5Ÿ… BTæ@ƒÛ¨ÀÕ H)Š ¾Ê¥è¢¢¹Šh¶h’[yn­*ƒ¯`0»N„‰•}`ŒƒÃ…Ѐ ƒ'oŒo\ßiœ<ÆÈ øú ˜ ÎÂÔ.,¿›85¹hÊDIÎG({mŒÉï€vVK`Ònf¢fòñ®h•wx’gÜy¬—÷Ü‘¦á×ïß<|Ê“ò[KE¼†£ÉG? ÇñãV•ž¶† Î)ç1å©HU.8±Vp¢ð윎»,É,ÃÌi & Ö¸‹Vö ÜKA5÷/bø¾‡Nt_@¦c`/*TÜ_.¨òyˆ‚ù¼~Ã(¨Â]Pȯ€kÅ"?ðân1ŠT-( YX°×Œ8ï(ª._?MåÂZu…‹R=H+¨+UPè¡€åÜ.ª­TPfª &KA¹ˆ¹”´)ª$¦w‘ø qcµƒ(ª˜R`,YW r \æ.HàVô áßßȦW:±(oeAÏ‚üsI¤ òò$:,ÊìXµ gaAb¯‚ì_éÄŠlòùƒ¦?•*HX”ñÒ@$HR»[‰üHëįßÈzPp‰·à®YÁí2™Ö¸ oZÁ韂Ë%g-+”£,RÂS7á ®9Ü,8^7G ²ˆ˜UòUœëdKEy Ò2ÜÖ©8\Sqb¯à‚J€Ã.¸3Vp9¡àgÁµ²91*¸Wp_¦à}¡rë:C,\˜¬8EQ±ŒZ±j÷}JþÁ¨*ÙUœ…¬‰ôO~礵b³¦bmµbã/ºTq²¨bï·¿*ö•+NýÔÔô}ÿ¿+6Û*öJk"š¾/µ/X?)×ÌWË ƒñ±bæ]±W±RZ±uQ³Ÿg &Æ6ñ['©8)/б¢V1©Z¬Ü¡©X¯˜8WÌn*¦|KIU«ásƒ @ûÞÿÕ»**¤×BШXÎÐÔ/´¨•ôpý§Âg}¿âÓ ¾ïÑÉF›nãƒÂï3žã¥Œö¹®U‡V@ú‡ý߯À€|ŸP²ªü+ÙV9@ºÀ¯…oT,ßáj+ ¤¨s­bû á{ëkð_á"¾ñ‰^¶ò!AEIߊêµó%ôרsì Í+*ù±ôG™´‚—! øßÚÙJƃJ™˜+´´a뮢¸Ø7Ù#Ë€yÙ÷*ŠúUT?¬À³ªºÈåÊ**U쨨Âmɪ U>¨"ƒaE”Ф,¥v¾|l«ˆ*>Vd—­H;]•W³Âw6,´·ŠA€H’ ׈çLÙ+ÃÞ y cR¢TeE­@”Šœr•ùpøþªËßðç÷éGîE²!¾÷ãÃo‹íc@¸#[‘† .NQøqÅýì °©¸7ÍVØ^ÀýõŠK®·í*®dU‚—.wWœ¦¯8äßpÿ¢Áî+î¼~ßP„¸iSq£áØkƒ™6œ¯º¦B‡_ù,½Í,•L^TͪáðOù—†ýà÷Ù°›Ûtj©2–~Vál»a‹½éÄOÃMâzÃJlÚMÊ÷÷€ß#Lo`-ŠÐÿC]÷ïñ¯Â½ýVÑ œjÃaKÔ£Ç<ø¢Éï);Aýj¦÷fUD–¤dõVÂe 0–Ocžp–¸b-8—Idæn¦åeöF&5ef§Øfž6&cV)fIbžA'ï+8ùTþqµ©£-·\š–þ˜W‘GŸx’'îy!Ò9ž˜B÷Éyp·óx…Þwºy5·sx˜Ÿx<Ï·<…쓆<­ÃÝdnvqŸ‘'Tº²¿pŪš:ª‚`ð½‰XÕËýÓàïW„äï¾?†|¯-UÒ@½Q'ñ!ï@[…Z*4¼¨”<÷4²%°v [Þ@ºÂk³C)S.· xËëpÔV2µ¯}ÃHN6á÷&´æ³Ù¯;8Ï¡ì˜Iÿ&¤6‘¥i"ìœpãsé” loâú÷Ä]͉ëA÷§ÒLøÐ‰ëU G±®6,øõ©K7z. ,,`-œ#›ÔÔÁ÷†/,K/,Þ,pza÷hå¦ç›Ó‹þoU´T?[˜~6ãúOñèSæor’ñæ\,Å«ßȾa«¡ixƒ¯‘ïZE}ô!,Ô!^OÑf<Ÿ |¿&>Bûÿ¢Á…Jj«s—û{ &CŸi,Ä} @ž£.ãBá°ÅÚ+_K§©Îèc N¤À‹X¨A±Pâd¹f•/ÌÜŠ$ˆ å>XˆgÊ¿,äâ_H+¼ù.*ïŸ^.$I^Èi¾”š|!cèBêÀ…Èlq*‡\|ß„² Øàv!T\‹ÑÀBJ©…)àÂ¥­ð]H9ò½©ç aáÂ%à…¬þžSð_°æ´^P©…[ìkm?Ç£†é%瘠j³Mº® _Ы­«PžâGvÅy(tvÁ lÝ·Ajÿ…ky_¯M- ËO‹6,cc&´¡´kO-ä´ÙúFŒ·qûÚ×Ê 7ÀìÄ8ëÜ€ ÉòF̸qmcN¼u|ã„úF¹qhnã,ØN7 ظÙÂ7‚Çá¶bÎ…{ÀëÆâò.œß6 †çŽ7ko¾Ýð[ÎiãÉÖa½óuÎk7ÂÑ9(:ÇÅëÛ{§ßÀ¹øy!½Ç‚‘~œ¯ÐØŽéoÒ´ŸÙdðf# YÚ§&k6BÚ]8ÐáC 4\<ÿ¯³o¤X4Ù8z´6½ÌF¾˜ol€nìOmD¾ A톃ޙ$â¥Bž‚Ý™%/ÄLx7@gÊd³ëenk#ÂÞXÞˆ\76¶67¢ì¬e¼µ¸ðzk¿ÅMc$X*ÝXéÜX–ÞÚ4i¢–eQèdc%}k‚½±Ñ§l@£»ò&D¸üx#3â®Ü„ld’·ÖåÙ0î*ù’ÄdVmVœþ&éøu, …o@áÆ7!w´¾ÉãZX§øœò÷€g3»DG§ˆ&\±SŸìý‹ñg㣌¦Š† Â>äû‚¸}i©âÌ6¦,*ÈZÃ?¹S¶1§ù^øÞj6êP}p„nx» ¯±É­7¼ÁÆDæ£C=€FH€çßp/ß—IàÌì u€÷¯Wò!ð®ÜÇrÔ×GÊpþfkí“FáùݨÒXQš(?Äßs<`Ü´ õ_àö}"«ÊVçøõ 'ñÌ* AlÕø!§Á>ºX»³­ºd“À,,™n&VK¸?´;Á€ë3°èWØ1:ƒ½×µjÏ’˃dR QÑMJÊD#·Éã-x}‘ì¿Íš°ŸA#h"²Â¦vdSÅáÐÚµM´«?0˜^¥)â?Ú8t}ÿæÐ‚¿¤ƒ†Åϱ4õ½Ñ_½ýÙ¸yÁŽý9×àÛ ìÔEH9r²â]4é;BˆbŽ Óü{$‚éæF½ËoD•¿¶z¨A8… ßÓ‰-¦s‹ÂÍâßk[¯‘ÖÛ§ío°ü#xðiˆœPìN~‚X-ÛU6&«[5Á=¸q~EmÇ…¶­óÅã7Ý6f¯õ7™­p†tmÔGÙC<å M!ªEo,,nÌŠ7f+[5ɸª”ÒÆü—¤R“;°.Ú«²t,òîA™NÛk¶raao3'ö×=MlZ—†-áx, C&’¦÷5"¹›ÙÑQ8ïL‘áÙž|ô ¢†h 5iûFêý$°¢ÕEªä™ßXœß®Õià y#áËÆrÙAûÆ*Àž$ï‹Á6cod_ßÊí²±Ú¿Qec‘qc]zc†¿]¤¦caVÂ*àFè·1[ fHT¿‘ u/’‚1!¥wc‹£è0ÝßH± 6ÿˆ ÷C‰L_œxs9ñ"DÂä}cùoO^ÙHʸ¹±Ù$âV–¸„SÙŸ6#>–Êé¶7¤<ÁKD¢Ë“[q6÷:˜Å%ñRlÂí÷%ô­ÌŠn S‰ù®Ën¤8Ù[Þðf®•ÄÝ) HaHŒÂÿÉ|ÌíÞ M¾—x±0ñVâêaâ³”Õ™RT&BO<¼œx-ñ°_â®ùGQV[d"«&žÔHÜ KÜ L>R˜x(ñ´@b’¸Kœxz"!A›ÜçM•T Ã[[ß“]ÜËJX#Ä[ür±•Σ`©lî a‘雜óßôƒp"xÊ6|]³cWHÏSU»˜E%¬ÿñ]í/q\ÜJÄÀŸ‰/ø»v?œ?~ X½Ã[™ÿfË< ¿+¿gMóĪ€©{ÃJ\g팄•;<á¿áyR'W»vŽ,±Žab*áÄê|‰ÓÐÉ„Äêr‰‹n‰µ‡« %VáJCÙk…%ÖóI¬"’X&±’NÂNÿ;^óK¦ôL¼Ð›¦N=%æOL“˜*è¬Ê/¸w§ýüÄÄÁ‰iO$&&ŒLL(õ=M~ }1QbâæTb ÄÄyÉ ^{'-ì+3ÙC–)0ùdrnýÌCð™ ×™ú™yÎ$ópánpÏ5óˆpæñÀÌÓ?ß/Mé5À·Œ˜ðûËr v‘©3ÙÚ”± õ=Å!3å÷·ƒ«È2Êßý¶É2½xfuÜÌÚ.8yˆ§n«3õ+7f¦(̬³—© Ù• 3üè÷z”Y}9³–hf¥Óìjê™õÛ3%œY± ³Jhf…ñìš¹ÃÖ2ëâf¦àά–©MÙ5“2kÔgVAά0”Yy+³V`v]æÌÊØ™\3ëêdVɬ閇ÎdÖɬh©YuäH+¹ÇÜý™õ2k?dWʬ­•Y·#3¥5w\¿¿”³«eÖ×ðoL§˜™ö23µxFVRߟ™¾=3¥áGu+3U·8¿¿àháugí¢bëTo >á†1¯ÑÞ*¼0ž‘zªãÿ0ŠÂÛ¨…—) s+_Ó-¼^xY§p’T¸?_о;)f ¿Äd¤ð[¡¶[/¾µÇíÕï9Æ]ˆ ÜZÅw|wpç·Ð Ï.°_èû²x‹–_0 ËÜZýþòþoÑ!ÍB?Pˆó¡eæÎ(þÍ~uêÆß4Ž‚ØùÍHù{gëJªRx°TŽëdŸI‘ŸœÝ`ãW=VÒÅaÉ+¢SiâT5]Tn¶[-J°Ç ¥êÂSÂâ(k¢ ªŠ’° ½|ó  ŠAèŠæÁÞï÷Á§Éo‘àF¦wІåãK'ëšÎ‡óh²ˆ¢÷.?…P;cŸšBÁÒ_æÆòG˜Ú¤@œb|ÏùV% ¿TàWt* Pô}aA×Â#-ba´—ApÁ°0¿îÇN>•Ó/ÌÖWhÄ……¹i~Ù–Nf¥/š8uŠ“ÕÊ€tà´0´.„nmãßz>u8#‹Vž· §iÜ……ÅÁu½Õõ´6Ô××­iÐ[ì™å©¸!}ZTë.ê]èÞ mÖ(Ìÿ]X‚¢LsJß3|aN²õÖæ×rÔ…e< ³›fË-„n‚uì;ÈPCþå2m'hˆÊRF›Â\æ…®°0ë]avÑâ º]æÅï¹ÉŒ¤Oü…:³”ͯ´*W'+/ÑW^.Œ5 ³ù€FÒÅï+S˜Tæà^tæî9z"õ5éü óSó*d¥!V^Ž­¾T]™Ï‰ûÖ™›ÇøËÖ)Qên΃¢Ì#8LïC¯¼ûQ]¸ò^P%ÀU†xÜ÷E*˜Å§Å‰aøÛäó¤w á_D¬\šä¾ð»‰ç{6ŸƒÏµ~+]p¥“ª,ºRé:u¼NI ²´Ø÷[>Ï+3¸WÖö¨ßì6\¬Tfã« Yªs Wf©­Ì^\©M•ùìªdŠ…M~ßõœ¹jÉogÒ«Ê(Æ0¾)ù ¯Œ7¦ªñ¶â÷_æÂSö<:œÆ.¨:—\ï­FöcÖ)§D`P¹rÙï£6Þj¼ÁÒxÛªeç‰æ½ÐÆ›9MG;©ã†æ;¦7>oÓ4J½ñfJã­Á†{\úå˜oáYsvÞã7 âZuÌVš}x¶Ÿoê Üôs,:2Ýõï¢1r*ÒxË¢ñÐd£SnY¹{Wò!frãñ>¢÷áñÆc·.¼UæÑ,ú‚¹ì|Œ¹ÑE7jbcZVÕc]]T0·[¥ *ùR´^Ðxì¯ñ,[«ÌÌY™!·0g¢c6Ny'Dn·ñœÛ×ßu†kQY)£:ô)"÷гxWfákYEî9næ¯äzuvZZk«[åó-M×ß|òû¿ÄãqxΣWM§êÔzuþm«¤ <%åïm¢ÁÙ|Y`š-òœÝ×#[¤6a•­ñ9î‘ëÜ5øÚ•͸¬¨+-D¶`¸ëÖ•u5ŠXÓ;~¿°Gç_TAn—lOiS•cJÊ =ÓS¦x¶(&èÌ .«rƒû)`©¶ÕÕUT›Æ•<ÒSÇhüþ>&ZMáscotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/4elt.xyz.gz000066400000000000000000007214011514310134000240020ustar00rootroot00000000000000‹áøØ1ef_4elt.xyztý[²&˪Œ>Wµ¢ÞesXÆhúßáŒe&ó˶j3sä—ÄÇéÛÚßþûýù÷_û‘où¾~Çÿý?_û÷ï¿þÓ®¬û}óëúOß¿¿†guÙß·Ãpÿ|íîqï–k††j±×½g43ü×~î¸séYÛ ‡޳Û÷­ùùïÏ^û5œÍ ' ׺ó\ý?ËŸ¸~Æi}|­¯i†Ë çúcæxO?G†þ–¯÷e†›†sî¥o~fwÃöóé»Lü·b†Ç ÇÜMÿ2"þ´üHÓ7Ö?=üÇ ‡,¼¢|ï‰Kõú«eûw¼4ìúÁ:þôŒÏÓÖíþðŸþ6sMßãӲݲÿè?´O¿Ã>îóM_}‰þq9ñsÆéŸþÓ’îÏ4çôq¾©oÐZ|¡%[_àÎé_¨™wz¿s«åö_þŸülý^úB²Ü;ÍÜÓõƒè7ÒÅáï¹õGÎ¥?²M_ÍüÓ¿ÑðÙû‰ß>åv}!ý¿ü=ÍA­­1Ôm²âµ­oÏájæ!ýêõÛ[÷çëçS§Ÿîjæ¢OfÃW:é¢={Óå.ñÛÍGŸ¾•þ©¹vüué[zuyÙ{vó‘~Ña¹Ò›"¢¿ýúÚúÛá£ûs¦ìy×=¶ðåõ¯|úåûûž½ÿ±M0®nƒ=ÍÉüJó`OÙæƒå åºŒ>ýNŸ[N}¦ú³ü¢>i9/×b¿_<óþÞ,û¢åø°3便Ž/¯ÿ&okÀrÓ²ßuö§Î–çgë’Õyï ÉÏí§éq2Öõ¿¾ÔŸ~â;|%w¡¥î·ŽU2ý=ÕGãÓoQ-/-Ç”võ·ŸíÏÔW×_}¿6ßy4>Z¶»ôXÑïÜâÍ®kG¯¥Ñh©ÿ°ôT™#¿¼.mÁ>¶þøèà Â?·µò™ºD°¹÷qËa–'ZÛþ§x&éi‹•¼üIË¡g$\·†ÿõ¡Ûu bócn,Zê’xÀìñžê!] ê£÷Û·Yö¥ñèÖñ¿¾Ιºµtú±4-¿;çß}¿}é_GdÿÞW‚öÖ¶Ü#ï¯cѨÑÖmwŸå¥å¹]OÄvý8Ç{ö~„·ƒ+çg–sà*™ûù}ê¢Ñ3I—ló•<›Yê5TŽÿÎÏlãÀmoÍÏN˾›.œ>âËßÝËIO›ÿø×‡YŽ·Äi¾>õÜmâHí×Ï9iÙVãÂí~ü$}¡ý~|´~ô-»þ"5N¿_lÀ֎i©ÇêÒ½¹v®%ýš<Ðç{æ1K=ú×týøo×Ëzñþ>çóg -×QèKÅ{Nõ»nŽ‹Ÿé–×,u¿b#ögÈ·ôoàîð÷\ŸYÎ#zÖÝÖcÇé÷”ñ.X6·äå3n‹]¬O»ú#g––ê8ù®´¹â ÑëE/¹üJkвëýªëk_Éõ©÷ËÔ´‡ysMZêÖÕÉÒvxSWQëpð ÌGºõ´is÷xæÁI·¹ß|¤‹Q:~ûˆsièÑ?±w{–‡–XóˆLvžóWïœ!ÏGKh©?HC'ýQ;¾Ò7u#`qûJ^—–sëÄUóÅš_øOu%¿¯´?³ÄfÓhGN¬ý…ˆžöòûh7ZÝÝzñ®žgÝ9 'Ø·üÛÝ,è7gž!zöOãg_~Zv™Søç¯gn¼ô‹®÷å÷4K=>Õ•gß8ëôðݺBö[u{¹åÒ͇w±.V=ëDüÛæ£>E¯uÔï‰ Jκ¥ù¨aèÍÕG¬¥‹I¿|{!ê659±Mîw½c"–û¾§ùH7¢®Žvë­Ýõ2€¡Ïc>ÒU‹÷\ß‚ƒV—× óbcýíkµXŸMÏùxÛ—?ð‘.1]8„bÍë—oÂלþ=Ï ¥è?ë/ÒØ4N†¶ŽÞùçç™ì¸Ò_þÄÉ ®Ð[¦ÇW:Ë,7Â}A£ ­gîM.ΦåÖ˜ðÃrhñå5VÁÍÕîû퇖kÐïz…eã6ÒÿóþºÐrî9Þufd¥A»~O=×ý+]Zj¢>Òí52ºÐÅ¡ÿt^¤*ŸY"\Ó%ÿ,qÒê/b´æwœ´g‰Èê´Œ¬úá¯ëÙ-»[~¢«®Q®B]N§¢˜ÆÒ=ƒuó…7¿ƒhZw÷‘˜tãþâFРPÃ|ºw‚‰ùhèRÖ/VÞGS÷^èj8«õ·÷<½ÏèØqßûò>ê?È#&¶BÞ›í0NÖ%e«î6³Ôõ¡/õIϵĹq†ÜNK-8ëö‰Ý¡‹ˆáü[uw˜eÓØ@ßóÉzsi˜ ­ë{óN³Ô‹‹ñä{êy‚Å}ÖûëË-ÕŸºê"GPË0÷‹“önZ •tÙî™wñÑ3D¯R=èÝò˜¥tD·Fë]SP÷æZn]°øçžgò@”§Ƀ¿÷š%ܦßäÛy‚uÜÍzª½œë3'!:ÑÿYz†ªzÎ Ž†ï%]Ÿyiá–¹(Êi75¢ ‹í7éâ édÖõ‘Jt‰àÛ‡Z|槉bäíÕÕËØ^/ýÌQ† w±œ^‰š¾ßmûÌSóã¼f¹ô¸Á |/çýÌUº±Pn9ÈôxÂ¥8$^À|¥©þ‚ Wî'\üzÓöö2þÏœ…ÌO- bP]k…©yKwnç×ó,k«ë/=#˜·4ßîxí5–C,ФÊCæÖÌ[ºÍpŒa6MA°V'Öj‡©y«éÄS#ÔCJ®® ¸ßhæ­†Èâ¥[¶®C¨Wt¾0oé¶PŽ]=6"ñoËM÷@‰utE ·šçu­™·4²omÊEªQ ƒéÂ4GðÇVeÆô= *>–Aú£€¼G0×(6Æ~¦×MõüüD•¥„\ãÊÀr¾g:ðbo½ÂqUþ“šB¤k Ûó|£nCкADÂPDo¯Ü±}…œk¯÷†­¾Azºb èÖÖóJÓ¤· ûtSý†f¬,Ž&2¤/`(‘¦Cë¸ä‚z®OË~¶µn0ÑH†ô©#"½“Çöý¶a7oýÜxׇ'š™°zÆ×k7o»*WËïªq ¡ÐW7oéõÉSgg<£×®O‰s`|Ž‹^€_pã¶Ñ# 'Ã;]†ykÄx;#R lˆ¿(£­{áf]o²Ðk‘ÃóÖp¼ÑÛÊ}¹¾•wuÄ(V|^n¢ž­ˆk޹xGò»j<¤§V;zf™·Æv·¼˜ì¡ÆÄb›O=Žäò,kïÎDVªgÍO5oéÊ<ˆ#Vî-]ÊØB=άaÞÒ{x1rϽu4°Ù™ÜümÓ¼5X!N0˜æAÂ÷\0Í[S3„ä%C™—'žî>_YÓ¼¥;9Î:yhnõ2 ÈóŽ·iÞ¾…et‡›À ž"ñÓM7À“ûå³1õøÆ{ªykŒ†üJ<ôÀƧ~ñM›æ­wcÉ—F‘êþ=Ó㦠áÌŽExÙâÚ´¡MóVGò¡?k$|ƒà@M›Ä»:RÞ7ÛvDr<{û[ÚË¡ò>Å·wÃ[ ¡)P6ê2oéŸÁÊúFÆ‚r€:ï]—y«mÀjØÃ u|ïÔ^æ-½Ï¢Ÿ–OÕÜV#~ÛßÇZÓM0½g0 DMÃ{ªyK— Níyó Ò`±°´0uÀ|6%»¤`úîŒ&×ðE¸Ì[8Hq,ˆ~Ö~ÑrÈütlŽïä‘;*4uÌ\FD7§¡Ñ«zë{ïº4_Õ‚! ü¢þ÷±¶yë\ˆ¼6/dø@:û[.»»éä†Ù i¶‡ØU™gjÞ„êÂÉs`ô†Ã±½ ¼í馗û%„©öWð:55ä\÷ß\úËv2¿ëÄŽ—}/`й¥SPÜ7]¸8¿_ß•XÅP®Y¸ÆÕnÊs@péŒùb‚a9ð0ñ%o1á\¬dÄS¯ÕÄ‚Š=Ý@àhðJÑáŠûÓõ¿Ö³LOdWùÑ­­›Tsƒæ?ëXC»î؆"Ø^LÔ38À]ïÔ&`!?ºü€ é—tÓ­ëõâxè­±PS$ H’%¾«^ûL@^öÖYAW¤Uã½À`ø ÇfÙhÑtkæK*¼¥‹G»ã5 …šjÞ èQV˜jàʺËKsÛ±J‡ÞÃøcs?S½·h©W¾·Ž•:ñ³o¦z‚.šã<X­C3bü®÷××ëÕ €=U¬ØDÏÃ3EXNd*ƒ'"z£ë LsŸX.šì`¹~±\ÄÊØÚšàµð–z…‘º4>ï*VïÐH?k» 4vѧ ϵý¬àq¶è®Óðkæ†iHbõÖ‹°ŠÇþéªcº„ú|EGáŠ+K/#|¬/h†Ó«Žç¿ã]5…˜¸ŒdÊsÁô²cGâŽÏÉ7Ȱ8'L›.Ã:o¼+àfFooM+jé×#ÖëUCÐætc¬·^§UµÔ…„Ã/vÁ¿ê-Âõ¹i‡êA ÜÜš×l»äÝÔjKcúÉ.oCý|G:ì«{‘T¾ƒû —§‚¤q×c<ö5ÜT×rùrÉo$ š°lwì2oÍ Z\{õ¬WÔ C·xWó–†Tð–æþ±¹5åh3kó©æ­‰røGðØã©æ-b󨘜r,£O˜š·úaÙ^½—‘.ûfÀ›z RæÌiê‘!VñšÇ±â¾Í[m7^’é9N¦‘ËBMÍ[¸·q’µ Hôøèò½mÞjz+áB°ü¢ÁAaÎ6o´AD13‹›zJ ÀÓ:ì馬L%ïgáÖG±z¿µÍ[ BtüÜç+D°ë킽½ ËãA^zŽ8õ€Ø°ð™Z}Kó”AÚn™Ãè&r÷bímõ-5ãND½O÷*„?Õê[W?5ÊíqkHÖ±põ<âçå]ìŽû>"ãÔ­ÉZóh€cÕ·pZ¡}ó:FÉ g~DÅÇ‹Æzìfý%ÒÜËGÜ0ǫƺaPãì:è‡$ê~ïÐ<^6DNš$–Øg]M_Ý·¯¾™œjt„0gŸx/×ã¼w•ˆ4 ±ÏÔ+Ǻ²ð]¿Ì6°[Ä‚R75oaÉ_+¼eè°þÍXYǼŽÈ;7ãu_gÕþ݆òy™¹b¸äõxÓ±XlK¼vŒ¸IVÉ u­êÊj=–‹˜·xhâŠ+Ñ[‚­;ü},ñÚñ%Ò×N Ødi„ŸqÀ‹×Ž/ØTÄ_߆áÿ“aý{W¯ A¢qsikº¥KOÝxWó¨%‡•Ÿ|ª†ÈDžž ÄkǸ‰qDg hË%òñÚ±þPTRâ,ôÂ1v_ð$^;Ö{YQû™‚lƒËü±îºÓ14$ðSQ2ÝYÄ4ß‘á| ½ÛpDG Aží‡“ðIjÚ½"½+DŒ# <~@;#C— ®é62(ÕŸŽïzâÔvJ†."ÖŒN¦gqµO]n:¿b¢ »’éÈ6œ”¡‘<éIÒòÈ0æ^twV†." RqÏáÿËÛÐiº*ØOÑr èrÕÀB,3¢éuSTG¾—5ȇRÿ¾#ÎËЋgY £’~š<º·†ó2Ú‡Ut3ÌA½¥áê çe êƒ;ö+yAgíX?ì{ó–^9àbí‘y¬~{0—öˆw5o¡<ˆ…² 7à}Ï~¦ËË÷øaOœPLr*=šPS¯ôÂâÊþ×Ö[ ÕzÁþp^ Ϭ>çSM¬<óÕT‚ F1‹ïª‰X¦'¾€Wúå`ÉÏ’sënCyn¿‹sx+¹_˜ÞŠº†„aÚž)–áe=ÑÊñ¢ŒáÍ øLˆkW¹äAiÇGYï©V18‚äêd¯·#/Èwo¹Àǧ7bžY‡Õ·ð¼Å\ü=Ÿ©$\ð.£á !Ôv°h¾Ä2t_ƒ0ú Åñx©œù]—¾+¿­÷î-Ï_”lS䲿x×ë VÂÖ)¸FêÀC¯ßÜÃyº1IC¹å(Ö ë2~Öãe¬ÃÒ­äŽÕå¡|_/ —1Yé—{Ê™…ŠÓg@MÍ[à£&ÀºÞ±‰ÝƒÕtzÿ×eI|åÇÒc¬¡¸Þz}¼ ¶µÜQ=Mm±‚fìØÇËœ‰ü6u5ÖåŒmøx§1»,Àúí ”‚þB‡ñxº‘5ŒEi5Oýzë9öñ24¨+•?o ã¿÷éWÜp^(¨sŸ}ðœ8€šzÜL“‘æA}QÍ8Þœ—¡¦ˆ¨^ôA|E}€X«‡©³hÆAìÐã©=DøYë‹wuMcuWæ±Ëå¢)홺·>TÖaXø‹J“Ãççel"—ãgé{‹¾­…3¦æ-]Øm'€ÉZ×Ú,Ze çe¨)8O#¾›Dpd´xª{Kw9Û"Øf§çk€TÃyNê3ñW=.A¾ÜëDÎËØ?w¿§bÁvkç½€ó24òc§ÓWn˜NzÔ¹oÇ:/c]FDgärÑü—IwßÕy¹0T+…ft<\?œ—±—!gìႱŒ-‘ó2ôŸ¼›¡®†< 7÷|;ÖyjŠ t ¦fý¥Ó¸¿Ø0ÎËÐ3{+7·þdkQ¿ï©ÎyZÈt7'” †§ö€‡ó2Ö\í×µ±qÀã;?ëº)ÓHÙYÖSQÈs}G†ó2ÖD“ú!¿«žb‹`õ÷ÚÊÜ[º0°cožYz6éí@÷ º È ·÷±¶{«Ò$cÃl’tÃÌ—žíÞÒ8!Y9_‡°.\í±Cm€:%#"]Ú¨·Œ놩7½0G4–DfÞqom€"/# =õâêF¾ÇS{ ™9ÒöUcmœÎã¼à鸷>B7.ÎÅ~ÀÊëÚǼ¥9뙿¿ë$6*Ž]p¦›ZÑ2 !FˆBÚ[„g=ÓUõ<ˆŽÞæbe;7õ.nMoïrêvCÿS§Ëñ>nœCLÎÂTÏSML`?SqÓgV$|(^‹€"·f˜>>!`&Í Nœ§.a*Î'\„{”ÄÁRÜ÷~k@œO¸Øžñ+ŽŒÅí6â©ÝûØg?Æ{{k ‡éù;³Ä½*–vÞÜõq•µx÷Ö`‹úì‰<-²ëÛŽ(CÜ[úçv‰Þˆ±!Wý$¢bqoé½…hí+Q±æDX—÷6äuÝw6Íô:@ O¼«{ M€Hú3tØ8´õ[…cŽEjû­À: Nó<0½î­v)õ—É3‹Ã!tÚzÑ}ìÏûÍWvÊ‚ÅÌ_ª¦î-²Ð5‚væ5±¹¯{ ¥G|Ö·aÿÄièþî­oÞ[%éÇ6Ðý+뺷ôo“޶so(G”/àÞÒ­‰ãí&B¢,Ök{ ո療á´O®,“Á5¯ð䙪•RåE—ømïÔ¾î-üzä -Ñ$Æ8EÜó3o‘DŽ|ëf°ß± ö~k~ÍM7/£•!Ú°f»6¦cz}àÞ£ƒ¬³þ:Ë€  „3K‰‘QÚz‘æt,Cï f'@Š“Âïæ3eAxµZ/¬]?o9–1Pù¬·!É«§v¼ë~¦¸ŽWËk£OֱΠž¦cÃÈ%;R œº´_;ËÐx ù퉊Éx<¢³â©î­^âoKIúua¡q¿ŸåX"*„O†djÀ!Þ†q,CMÁL©pý]`{œ=ßzu,CãX~×–PÂh÷ÓŒ¥íX†^0d6Þ…lŸ:os;–1Ö0ÖWÆYÀap6½~:–1Âßä¿‚Ó°ØåŽu,c€3Sòt/ivÿa_Ä œGÄ¿¥è¢•&‡Ë@˜‡ËÿMà ,ÁgêÞšè.E&ç€. ÕÕ~¾NÇ2À4à/ÎÍ­ï¾ß%?ËÐMu'¥ ôÀcê¼(c:–Fñ²çxNÐûÐÔÿLÝ[zɳï DD³‹¦î­Žÿœm¦Ï±Ûàãð¨©{ 18 ÆRã„h‚‘Øý©î-=±´K¶¡:‚¤¨òNÇ2F7 À—E+œ¢Äâ]噢 sÆKHkÞ.p,„@ü¬“%F`Ìòˆ50u,CMËJ¿‰hŒ¯Ä"t,cX)2‘'Þ@ ¿b§ MÝ[Щá#>Ê-¼õzLÚ~xÊ]€¥æ}œö±^I+”òOqÆØó{;öõ˜´EŒãÔ“¥‘Õß]àX䀪ŽUXŠDðc¤ =Z†dк¨òÆpo5\'ë”`Ñ(oÃ8–1Ðv‚üº@Š×ÔƒæÛÜŽe 6Mfiü¬Í¢ß¼ï»:–b(áúSNB䀖OÇ2ÆG@m·Döǵòýƒ?§cÐââ ž& êŒÊW¶›Že (!µÈãÍ`å6^7Ë@„P£b”™Ï¡ý’éX䨰a® Bã@od3¤§ccaÅ$7Ì’7÷ãêNÇ2Hã2¹±X. €zøv¬cƒ|™»*‘I#’ äê>MïÒ´+ðH¶¡óÇÚ#ð³ËèT©ù’}‹Fm¤¸âË0ÚXa'QÙq4|ßs¬cý6‚ª’¦}€…„Æ?–cde ž’Ôª±¯¸8Ëè"&CU¸d·ÞêïÚp,CMY|-‰:_Sˆ¶¿øYÞ¿%¼âN9]¨ €âDŽetÙ”r“YêÜPš‰ ãXF7ý‰¼c‘mâ¯]?Ëèêt-HIwN#TWœc]/îV8z¿ÀýØÚCs¦cjˆÐ¡åâd…Ooèç-Ç2ºq¡fpsÐÇH‚MÚnêÞB‡PÉ<_·þi2RßÇr,CM‘­™Wœxø+_àuÛ­aÉa“rÀò¯Ûnê¹w–ÂJ*øYï’w,£Æ„£Ä$Õ½µp÷A\«´MljÄ=ºôt,|ÆQ?Öú½ Àxéù¼OGКµfî-ý¡dãÅæv,CMñ»DoúE°‰{¤çŽeÀ´•#ª‘%^ý±ñî-ÝH#wIúE}ÀÊñÔç­1¨– ÕL¬¿mxŸ·:Û ‹FAœ¯Kž Ë@Õ,„¡AíaÎ}¬ݸ{&ùRM¢¶±hzŸé¦†H!4zïÎ+°-Ç2ú4ŽÙ+3ÿƒø ns]´ã™¶×J‹uÜK<ð¡d§±‹ø».Ç2Ð˰’4dlïtá{ür,CM©¯62áC@~Ù™õLç3%p1g©òŠ!w󙺷ôÁRN²?ñ‹€¿¾ëx9–ê¾ëÈ–¤}:BÚ¯Ç œ§fI»0(šq›ö+Ý.Ç2,Ö¿IjÝ õ¢?ö[ñT÷–E¥m&…„ÆI9$7}ßp>ÌÒœùYéû}§Ñ Ê:À”¼ciŸ¼E¸B¤éÒׇ”ö©‹ÐïÈ~¦#L‰è­ÂÕe ¶f˜Î'èIɰžÕ2÷Õ†hºžéaÉ&“ÏŠÿ-¿À~¦ˆOt²’²…ûx¼Œs9–Óžø!WÖÞ_`šXÚŽeèa…˜æ”>£Ý¹1ÆÛ†«½.ñCXt$-à';¿=\ýu‰“Ûq¥¦f,g·è-Ç2ºЮ…°‡®sˆÜ¼@o9–ÑQw¥oÊ ³P{¿±úÓTå}¶Ï.¸6™Ýëeœ«?o}À]DvÅ4qÇŽ/ð¼e“²·&8Wà„éóÖÇkc$L7ÆBª >–{ Rjµ¿ÍïBÃŽåÞj&ÉXJ·g‚jûÅ¿Ëè×~';‚4¥D¾•‘chƒìµ‹që?Š'ó]Ç˱ |Öm²ÁQÔsÞ»â–c½™ÓL4G¯c¡>Š÷o-Ç2zûÖ*Å@šåAÀdï©î­JÈÒ¤j—º`ýáÚk< \ˆCà5onȹžær,CM;Ú“CBLýkÁøYŽe@~SêÞBì#2ˆ!˱ŒŽƒVž„F¬Žòýr,·ô²Î‹,Sz¼K~9–'rÇ^Zpé½p,ƒr%¦•LUa‘úuZ-Ç2\Šº¯Q8ûPX¤Ú†?u†Úr,CMÑÜ[j% ˆòb¿å"O9ȰŒRZ@ñŸ€d¼«{ bÇÈmJÎSí(/”§d´Þ[Lý.x¸Ë’§$ÜŸ+ë†8BH&ª‘˱Œf<žàÁã.]J±^Ë€é¨xVG‡E¯¤«åXF³ð#úâ˜B ÔcÛ£õ.Ç2Ú¤ ÿ­ 7^4z’Þ˱ŒFzð€R“§ê{‹óÕ± H}™ÎK~²•¤Ûc9–‘ñ™r6&xryj<èkÝç­IfŠdºL_ ‚ýû¼5™É÷|êwYâŒâʺÏ[ d¶^ô<ëùzO¨Gá€Ö×aˆ•ˆ2îóV§gK‰QŽédåSŸ·¨[ÍnðÔ3¨¨l‹pÏ[Ì6N)-ŒCMáûâ×íXFÓ¸ËÉ~l†iKú{ª{kg*IÔ@ݰE‡ ŸêÞÑ$9HÔÙ±ÛÎ3uoiÔë] g¡.ñ}¦î­)M/Wìõ?:4Ƽï]Ý[Ëõ~’mR£œ ùhÇ2 ÔϽ•K›½nX…ñ®î-ý HLJL*)õ‚íX:\¿ß­‰Ëæz˱ ÈÕïzÇv"¥èywìv,£1?Ç,’”„Wÿã×P¾Ë@Dølg&¿ìÞ¦ÛŽe¨)×FOLs|ü—ûŽŒíX†îJÕËHÃÞ±p¼Æ»º·Û§î× C Š+·½ñÏÛ0è^ºú°â$t,CM‘pž:O}OSåšÏ´…)ò ‚¾9ZGÖ;]Ëà x«4»éyI5Î÷®Že|ìñE¥53Nh½s|Ç20IÍcÉÅc)ì±·cŸ: ácËÍýi(×mð„?u?SŽM’r ;'Üã„é÷?$KÖä„©ëB{êá‡æ| þv‹¸Ïh„Œ¢ ¦G D³Ëø.áz‰>Ω›{¢eÅ¡éX†šZ‹Á-}œ&³.p,ãCïÖ@‰ˆ0ȧö{×ù¼5“þRÝ‚Juì|Þ‘“(ÊDîÃgú¼ÅnQØõ@VæËùÏ[6*îX½ŽW7%›wÏç-fò·›;Ž]@¯'jÏ7€Éä‘OfƒúˆMò©î-1~VK½Œï𠌗œnÇ2>t}S†#ù„€[oï(v,µÿþØ`O=Jïj”lÞ™åXq}$‚…WÜ àp¢)k;–a<|üÙ½dæìñ®ó™Z—miœ‹òòiêÞ:ç”,Äq/ç«é~¦  o®×ÙP»SÝápoIC)Ä»)„e<Ó§ý ÝÇì´â€nM˜òLï“ %ðÓ ¦ ET"ëþ³žöçfÆ›T®ŽÖ™Nšäû®OûsS0YN/tÝOûsSÏòV’àb á‹æinZf÷R3Éâ—Ït>SªÝö¯ÒxĦãlIZY‘–Ûå~/ÖÞŽe|èNµ“,9ì%‰ãͱŒÏ*Tm¦ØØÄ`\±VoÇ2>«ÝÒ¢Œ<7šÞgz¾» ÊXÆÃz¬„}ž·(&'#"M"'Ëƒï œç-¢ÊG2égLõ6÷yÞb¤tJO?ZB<¦êv,e\F#;„Ç´Qf÷¶Ë@£ß*TäÐï‡°Ü 7Û± vFâÜMÂ8èdÆ ¸·ã´¯À{SåHv¼€{k2a‘¢ñ³ h fÀ»¹ËøÐò;/À 5É»TMß,º‰ð1UŽ.h½èË+α ´Hï²²P3B¶„¾Æe8–í°S`àVÖc'¡cŸUïC“Šw,º#nôšmÇ2>kxì…Q©É›„bs;–¸c½6@s›xg¶áXÄLûËýŽ•eøÆó–cߤÄN+—ü‘Iý¬uåy‹ý0"UŸ’Û¦9Ãõ¼ÕÖ¯2s‡øÕº¦]ïO}Þú,|ÌëBm’!íßíX¦ÙÏÔ½õq8É«'ZÝ×n®Žc€ ³ôR‹3aާ›sË€i/·¡³HÙjÏÔ½õTm’Â=šÕàí’Ç2>¿wÙ[“Ðë'RS÷:© Ÿõ-=AçËâøT ÓJfÓmNò.…öóf¨~ÝB²ªÚM™«þðCTmÓ—,ðÞ Ÿ«—NŒ9soákáÞJ‰ܱÐ%{Áþñ1ªà†qž< '•°û~ŽÏQ½l$=Ý—¼£aDB˜r|*Pbüû†éì>‡ê­,Ÿ¤ŠS¬ßýz$psëgÕˆJëùLMþBǾí¦óGÃ3øÚÚS±´»éÁC¶  Ð~¦ÃգПú~–éÁ_ðÎtWh¦´¾^yަ×M™ÛˆcrVß‚úÖé/“?ãsS®k™7ž Põ>ÁššüôeóŸik¤Gí¬ŸáÞú–‘éV|W^”ïß™5Ì[æ$>Ö¦ÐÆcœúá0o‰…„§åS9øÅÿ4].É ³àDò€çH™OVá Wï×Å/z\‹+î,ÿÛu°ú Wï‡Hâ²ü® ÎÝÄh*.ôo'¹ÙˆÞC‰¸a†y L­Çré&€Ö^w¦yKÈÚÛK9ä’]ΖžéŠÑ‡+bÄ €ë(#MÍ[õXt¥½w…ذÀþ^+™ÃM'U„aÅØ…}§Í05otÃ<¹›GõX“³ç ˜·pM#²ßxdÇ\íÏ7Ì4oP qî0í—rËò"Í3Í[zÌ!¹Y.:Âñ¤¿‚ð™>kAØ òR6ò4Ûg5›wmLót>GývÁ²Iâc­ï™böé S­™€¼m¸š›â|#–6ÖÞ¦;ë ”FM¼.<"$‚1Éò=žæYÃMA í'– ¥Ÿ¨ßõÂdzÌ[°£|•„©æEX¯çåg™·@wÞèš±\öG"Xn˜µÝCÆ ¬ÙÍ,èª+ßõ<Óe-ñêhݦo2šŸv¿y¾Óžº±—{ëcýÿûz~W(H¼Q20Ýæ­%õ­žæƒrçƒãhjÞZ$Ú/–6ô_õŠéïðvwSJ2=¨‘õ ^úzÐ$ÏöùßlD{}Å´Lf}„Ƴ§›è@÷Ñò†áD`MnÞ†ñ9&kèᨩ?ÇB­ÄŸ%K|óÖÂÀ8ìØ/×ëw¨×÷RÞãsL–u¯¿¬Ù% Ü1ÆK!ŽÏ1Yp6êßuö…RX‹þÍ1¡²ð‰5õ~|Xèó¼wõ9&u?ìä /[fG«×ñ9&zâSlçÏÂ<(&œoœî¦Œ5GÙÜz€žà»ÓÔ¼…¼²‹í½+&ñØ\.gº)VèÛæÒ–zò ©‚s|^»†ãü~°p²ÂwÎvSôÃè¥6b¶Näg¼ÖïsÌ[H8 +çéÒ;G¾{_MÅM; ×_^Fz—"?±^ykX[Ø*·!b¥¯Âwļ©ZL[7¼¥É.–°<®ÃóH<Kæ‹ïŠ1§Í†^ºi÷áöP„ÊSDêåEe‹÷]Ž3Wvnn2€œ¶GS÷U@Ðü? ˆí1R±·Ä½ÅÄô¼†=ë²çßáO¾«yËO ÄmxlÂã‰ðQŽ›6Acψh`è}™6qļÕ9`ºÉ)çA)¬íôäºiÁÛ=¬Yð­ë3‚öGnËÊKž²Ì¸ŸÞS¯y«/nÏ[Lõ÷¨Kd=†Ú¹ÝMQ÷lq tÐÆ3ÈÃÔ¼ÕÑ÷Ë[.–¶É0·Éé5oµËÞ)Á~¿„ðד8?×¼¥k áú–¼âô¼µè6QSó–îKŽBÜRø¹^Ë'MÍ[mYºµ2,'µŽ}çÀ7µèíd¬M 8a¸À¼…q´ç ¬èŽ< J˜=(A¾ÏM‘W|çûN¿w>¯ÇD>óVkнOÞÎ óĽå@MÍ[ s×QuÚù±>6^MR¾á¦èY§Ï82†’‰4R>ó"BÅe 6è†éòéSä\Ý‘Á>Câ'SESóÖ9"%¼µ3£H#å3oé‚zç8>¶mý‘Ùä7ætèdé²hOM^M¯›–)æ½·± Œ™21_Ú¼…s úž±Ð!#èÃ}/Ð|þ¯ˆ}Wûhœh1?Ï´»i&7âÆÞ ­<ýWiæ­\¶±[žY𬒥ø>iî­AÜù•kCwàyú¯|ªÍßÂhª¢öŒPêqßSmþÖÄ8î;4¬Îé(+Lmþfi¶×ìæÑ\€Îäu/I³ù[8H¦+É)eïLS›¿Åî+|ïŽÕ}Þµ!ýsSìXp6òæF½§ŒÅb`Xô×\‘Bè•Ãl:î"½û\³ÑïØ3ô¢êÎK!¤gŠ–ü¹sb|¥7Ï3}ÓÒPQÅ+ œ}éæ-Á00 ŠcõMû“4¥©yKõﺱ\¶|Ö¾/`ÞÒ/Ñ;öüÉ”÷#YVü,ó–:˜î:yÀkˆ°9 f™ÃM)™± Fô°"™ÓÇ b€R‘\„X¢«u¿5ß$BÔ#ãØóȦAOõI„¸ p—;vR=@ò ø$BR¹ËÀSQÌÇ‘7Þw5o-] KžYmu^ÇqLóÖšš‚"Ÿf-Ž²ÙŸ'|²>7áyŸ¸ P1av}Ùæ-¤¡@Pã `x)ªŽMv˜n7…{_±\0ì ²ú¯²Ï3m@kGÆ.8݈Åð)Ÿ+·ßt£÷ó[Ï—BÈ6oéñJŠU ?׉r>7µ@OòȸŸueEðtÌ[zÜ@žYÊØhU{ã„hjÞ Ó•Ó±84oãà™H!|&+«ÌP”σH30™®CSóÖ ÞoÄà캥"¬Ïª érSÌÝéçž’š1¦|CôÔt»)”Çõâλ`Bï …´øæ-»øMetxÄÛ%ijÞ‚Z á‚>(z‚ÃþnÃ7“UH—>³Ä¯—bm’aÇúLÖ¾MT6`ºIÕÎ1ÙÏÔ¼†`X¹ 4(Äx–§™"ÒÝ´³WJ6š@©u<®®ÈpSì­v¿ õG¡z>_;Šˆy i4ŒïÔæÌ놜{<®ˆy CÖ¡†XRˆO“/ôŵøYÛMA$—S®ãƒ#š˜ÌxWóVÿÀ`ݧëº] Y½UVļ…Æ<°îë™5HÌèO)@ļÕ(^¿w€ª uªEPzÍ[˜“6 ‚üe”Ü R>ï:¾ÍM!q¾]° d48³ÞÞºæ-ÝBìôª×±Pœ;=¹ÃMÏ×¹ê%o£M\†Y®y«‘Ÿ/mKDo¶± L'×¼…AK¸¦+–adá;âö3x%ñTN—Á6–_óÖ‡iBˆ@G˜žKBaHÃÉ7Å0Í.2Åp¢Mý×¼¥™<ãZ lư|^ù{?Ÿw|6Õç%×+;#+ïgjÞB·$Tz¾Dô0Þ÷Öë^ºŸyëƒÑ5‘ëu¡ñ¡ñÃMIp:7=pÓ¯¾Xû~æ­™ÑÙgqH)g•==øû™·€ýV\›‡&›ö ËïgÞ±J$ÒŠeë¼É,ñÜ[L°!“˜¸6˜Í”òËè~î-ÖhïìÁ7"½] ÷³yÇdÍ©ÃWæ0ˆâÇX¿Íæƒå€i¿w„d²š'á‚©M§¾=$ãMlü×öžjÓ©zñ7dPÊ‘/è+ë6›N}Iˆk§e°X¤ó™Útjtõ!~bàF{*Ú¿ø®Í¦SƒeŠ\1xÐæ "í(ÙmÛMIO=ïXMÏÕ®¦6£¯Øû’Ë¥['mKS›NiLhÒˆ tƒ„ qà<ÝvÝt’®… Ïïo§8ößÛ?7¥Dw?8413Ucn÷Y⺉ç —,ÎULú{j÷±ã`5e—Í͹EmÇ 7åèôSÑGþÓ’Ííæ-I1áq”§Ž3fDôvûrS.[{´ˆì‰BÝPN˜š·Ð¥‚øý­,VøÄÐþ·²º{ ݰˆ2z`? x;¶»·cµ¼6À ¦ `Peo¿>M]ØõY"Mt[’™þáøÞ4uòoVƬ0v°}¯xGsÓÎâÈ—%FHò·×ŸASŸü¾Õ¶Ú,ÆÆ2ó+ƒÜá“ß§°ÿ~¯ØÜ€¤Ûã>Òt>SLÎY·ü,DføVÖXn:Ikøuþ`þ×y üÛMÑ ¡©kî½Ê1,¤áî0oa Þ‚gZźUH‚~fˆ›Ž½Ñ˜g–ÞÍö[~÷fvà:Nü•³Rðªï L÷VǦOœÐˆLˆ2Öë…¸Ó½Õ®U¨z (:h‚ôøÓ¼…­…@O)Õ$|ÉS5 ©ykoB_÷dv ê)±ï Ìé¦j4cg¥%¾«¬øYæ-°ÐQM‘„ëõšÑ’Ä0oíÉî©ý– G ³ù=ÐÇ;›~èI¿¥Ä¬Ja˼EH­=HWº£Ãb½V„;Í[šAÐ'Á?ûk‹‰Nw™·6ƒÒ»*®_à@Sì½ÀjnÊJñhpBμž¨¼Ë½eÄŠ]Î,SUóao45oÁfÅLLS )ŠË<ž:ÝGÚ9‰eh¬M€ý\°Ì[WžÚ= 7ÍÚüŸfõ]ÛM)òžé ‹%ÊüYæ-p€!ÏS® ¨‹|÷Uúï’?Oïƒ ‰E#,c%¼ƒh™·ôXqó(ÖÎ&6Ì6o-Àt„¤)è'’mÞZ²îƒýé@³¶ñ‚ý»Í[˜·ÁQ ™m ¯pZû{êx¦}Bs0CÝK¤¼ÍWá»Û¼5yóŒï–JOrŒ}¦æ­ Þ~UÞ[ß!Î9ÂÛ¼E©ÙǪµh&´%×¾û¸)tàtwæùŠͬ±´·¸)Žì½F.—%çÆ²à0oiLÇôæ ìÎ.ñÞ:æ­9Ù£ô¨E¤Ý ÇKa÷˜·¦æ PIß þa°òpá-—ÓÝcœÇwò©“9PxŽ=ã™~¬ž—|«qm?q5uoA‹b©ë¡_F©©{«¡Ó£[2Û¸=Õäùî­†žSé%éÿ8å nx¦î-õÊ¨Ô˜Ž©h9±…¦î-|?RUK iè¶"Ê8î­Ûs•„ÍñH,p¬¸·¨ØI,,ñ~ÁWSóÖÐkZÓö±25c{îSÝ¡iwS^œY²Á?1|¿TMÍ[ƒóv^F3›Þñæ-]º®eƆYX„˜4`9 ÖrS?»Kržt_"‘î(zż¥41gÔ>ŠŠyƒ³š7=¬ô—¼`Z{Dž.bÞ hùi¥Â×K^Qb¼bÞ3…Óz©ÇÚ ÇJïç¦ ž77Æú¹'¹‡‘]÷8äS2"‚ž(>^óHÍÔ^/%u„fßÌë{‡›2¦©—Q[Í8ÌoÇ^óÅµÑ ºøY(¼¢Åä…ºw¹ébãð'¥l·¨F>ÞÍ[ÐTE"(ù³z±Õë-ÂkÞê¶ÁÁÍm¨ß…ßóМ{Í[}`ÜVHŸótápm™±²îuÓžæîù®Hv1äDˆÌVãJb_;o#6æ}!y‡Ým‰ªŽGŒ š" ²ûåF(„ÿqU£K‘–ʽÓð·\ÚºÇÐ ùÊ !97ý¶æ2ÈRãÉ5`Gk:‘ÿó³Õ3]Ÿ.%Þ\°mȶm·5(ùËÝx;¿Ä;¤ak^k¬ª)<ý¯g¾¯¸-e,{ù‹qe{L;ØšßtüÿßQªØäDi“w°uXr?œÜ™˜n-±Øšßl‚£7—¼¥ƒQómIøÂ „|›M¿¥Þ(laö&nØ·ÅLey,Y›ù‰3E‚fñOö0}6)ghÿæÓj±wXn;8|wd„â(HÙ'Ö¤ƒyhã¥ô?íŸvÚ·ý0.n½6Ü9‹§%á7‡7¾38¿v~›ózÕEØ^·eÃè*7$Îu6´gëÇg9È ÷™Ü¢¶ôTg̶¹-ŠçMïä%ýQ‰& TÙs–TôrôPúÂQ›Pä³T=ئemµu¿ Ä,»˜—³×óû:Κ6…áëú]`Ñ JØfÛyÿ]îý¾@‡w>×ý u`k…ô«»‚z(á ‡:ªœ,çæBO0¾/±Žœäº›]8ÐQ`oaÛÍöpUûk¨ý¼iñöãOšÃ5ö}YÜ>tgÍvº-¸ú{|y®wè9 è¿ã–ÛêFÖ‡—øF3)¬‘&±7 xlÌO^ÐéÚ ùààü•8wˆxÀ£âúîYÚú&${$j+nKa¾3°R0­‘ßáš->júé Œì‘ì†ßzÀ–’y§—:ÿé3â·M÷Š ÀXn­öûô¦ùͦûä ™½pö/Ê7š¶æ7 !hÞèZ@ͦ…ߦùM(fˆ-•1ÒLMñ‹wXnË~±ïæ7›œô•=4ÍoBy=M2CÖP“s§{~‡ã¶P¤ïo¾Ä•$o(”Ùʳ…ts°‹ÙžG¥‡²ÀÖü&ãØœå\§Þq–¬Ïm‰˜®SÚÓ0ñ Jì¡e~“ŽÁ¾£Ì3qF-¬-¾Ã2¿I»~"¥.©ßhg7lÝo 9õ]#Ë8 A1ñÍ–û µ&4Ô—~¾k*=›ùípéIÚ*ª˜Õ •4µÝn‹Fèv"Ob– Z“ØÇËüùŽä>›fcäOÆFËüvöVZ¯TïE^üÈf™ß4v¬&K`B&’wìþÜöcY0“­ÇB•×ýÖ7ýÖw!qþË—ùÅq¿5áNÖ?À“n 5Š­û sp0²ä ,û_ÉûBÜo -RÐâ+(‚ ND÷óÝÉ4ÏjpøcÄÝ"æ7h ny·ÆÙ¾Ìßd¸-f(Ÿ¤ß.„®@2fîc™n .Û2r§>XP™·ˆù …5Î,‰ƒÀò%‡¶Ûmx 7b Hâƒ5ÖNÆb~[ú5Ù+Th­È‡Þ°3³·e¿µäà.V¤» ˲ovÝ BFáfP7“­ï¹×ü&:‡V”ι>G]÷[#™ù”9‘±S¸äæ¹~Ýo ³¤É)g”€Ñ52g¸î7>Á.÷[ƒ6ÿlOg[mÝoÈ5Q$رô Z@OFœ}w=[r­¾ÌqúÒQxˆµ~Ío“1È™‘g²FÊD´›-Ƙ_´ße¼®›j¿iÄf+nËâEky®/è¯ ®ŽsòšßH$Ì1·Øh*Eu6ò¡ö™ß0Õmåî>|À~Íø(`»-E\vϳD3úí¹æ7”î5®^£ä8/ÄÖ¾ak~ÓÛ J¥ó”{³SYo<=µn‹9&-ùÃØ› øCÐuPÛ7Û†)ÆÞQîí 6ÿ`=…Iµu¿iLJÁ‹Œ¹0/]Nq>´Ïý¦ïµ éßd½PÐ8ôè»­ÉÂÞ\èÖì…nŒ[æÙz R’†öfu%¿o3¿éé»è4G鯓Ÿ~žÜ,&À™­5ZŸ•w–:’$Ž/Þ¡™ß4ݨ”Fc©š ¸ÛUåÑÐd¶ ÎãMf‘£Ûs§Û‚$sÖʼÔDWoĘXfÛ?ZNÆ%£‘â¾N~‡í¶s–Îf+!7Æ®±/Z;n UÇ&Æ"lž¿­É³åЫ’Ï긾-×N»n‹E…jKøXcwû¤Ås»û g'Îê$ÞŽƒ®/ɸºuó[Ç}£÷éÊ{^Ù$·1~[7¿AÆséZÁKöñ”4ÕÖüÖG}…˜$È0­9Øl§Û9ÎÉ<ë£nêÍ}ÑÍozAêm%7Ås(Ëœïk~ë`1})L— ü¡õã¶šU#ÿÊ{¡=‹R!ÆÎ·ÙžË±Ô«”où$+ðêæx‰îu’dô÷;3ÒÇŽ—´…Ô£EN¦y,f "ž”|󛫈û+d%ªë§ ¶æ7J÷£[t%¢¡Ãä{Èñµæ¯:ƒ€€Óå 5b³íÀúÚÙ‰lcy†„‡Úºß:„f[ͳXÆ”¿ÍýÖY ”"a¡Ç·7¶æ·S‚¤Sêc‚{>f¢iÌmþ¸{霞•X±‡/(jhê{?ɲîÆos¼+O™â%Ðe®—\2Ü>£c­/Q[T*P ,y! ‘÷qa»ÌvR(ëò$^a"û*ßaÿyƒÆG²žYcEËàÓ37[÷Û\<«O‰5¦Ò#ó€ã~ÓÄŸÂA—POIJØÞgËÑ}=ëY5Ö¯ü6q¿qàÑ º"ó7^»GÂoâ~ë®Ü•µfˆÆ¢®úÅÞ÷[c¿Æ8ŒœªÞx©-lÝoÍ”%[b6È8¤.ßa>[`6C¾Ú_¥'-|!î7ýÏ'd ÖÔ^nÞÇâ~£Hª$k¸ KàˆMÜoÅ2úNÌ]Sh¥ïùÛÌokw)E˜±ÜG‚æ–|‡ë¶Ë~&ª5ÄÚ¡Õf¥Ù2aøzKÑ›¹mljw¸Ím­¦¶3öÔmTX“·»­¸%Ñ;€\´î’þjk~Ó}ȡՅO kÛ¾|®ù T"‚é·ÔÔØ<¾r_Üå¶Ý”ÞiHѰŸ;Ψk~“nÔ¯Ut0JXEœ©×ü&Ö•Òwö^Ï8 /žë~ûÈÃ]'ã(ăÓÿÂÖüv¬ûbl[ô ÌïaÛýûž­ulel¿Aä…"áÛ›ýkn‹Á¿m·_Œ(Haì™¶æ7 `©=r³u}娣¿¡Šj;Ü¢4mÕ.]ѬïGÌÕ?ó›m +óypy o¹Hÿ–Û¢DD veä#ÖdÿÌoº )‚^è‘D×_=Àž{Üêc…@„¼$zè®x®¸-uOWÿPÕOÂÖý¦—- ˉéUͳ$öqoî7¬ÿnuiሀȇzs¿}ÌNÁVPÉjõ~[3¿é_ Æò< G 7óÛfƒ€®‡[ÚŒ8ò$ºÔÌ»-¦eÜY:‚lƽÜà`ôf~Ó…K­Ó•1Áù@×½¡žÜËm'‰ÿR8•ÜU_òKz;n LLÓçR‡ÔÕ{ÊøPÌ 7[άøN9ϬªýWÕK·ý¨§w ® à»rˆz7¿©?çlWá’ƒ»0æ©ms[Œêi{æ}±?Jß\gÝý¶@¢Óu’õMÝ;¼¾Ó»ûm¢Ú²3‡8 sõî~ãØXŒFIfáÕB¯øfÝý¦§)Ù´=p˜É>×{[~÷›†rÐ|jyVëI¿xÝ̰u¿aÀ-ý¬3 ÊAD)¶î7س¹Ö×ø(v½ò¹î7Ý]øm3±6=1p4îÀ2ûp¿ÙØhzA½EBbºá‹á~û8a²—{“ƒÃÞD5úb˜ß„Êï;`RŒ”9öÐ0¿Aâ´a4ó)E…˜[ݳݣjMb ËÚÁGþ6óÛZèÿúÊZ>ºœ(}š¶ÛmqëIï‘WÒfü6ó›dPpÍZèøA#pôñ·íùEJï:+ÙÙ¶æ7\e@i×,²Rœ/¸}êË_tS™­f­ƒ}’…†ŠÚ7¢V×§ùmi0~ÉÎzËÀáQ´>ÿ¹-ºuR–óéÈ"nÞoÓýöAZ‚S†˜ÁÐ놴çšßô4£LÝèµ9k[44ÄÜ–£Ýï(üHžÆ—¶Ûm5VAgx©5£‰ Âê±7çq[ ™ÒK|Ö8ôì&.×§ù :ÃØÊ)X&v_øâºmç‚P´¸”â_ßü"wêËü671ï+¼Aüñ°Ül›Ûâ!í+òà ß”„­ùm’ì,™ûŸ šý-¸žÍvr,ÛYoù«¸Q_î7LÉJÀÖ{wž©Ëý60¾VÚÉüMCb„…1¡]mÝoÃtnæNbt{ ¤/÷[çÝpæ)ìzæþ'¸u}¹ß:&Vè¡(%g˜¤ÉFÝ¿/÷[·Ã»ŒiZßi¬í~c]Y’gƒ˜ã«FžgÛýFm¶ûIò•Çà0FQ„­ûAéíq>Pÿ ñäÓü€­ûµ¯–}Ä«;çd>ü¡o÷æÎMG›˜&ÒÊÚÙæ·An†þ_%¿ gÀûºÍÖü6Lg:D‰Órš±DÙ/l÷i)‡ÑÙ§€x=÷¼ã% ÷1Ïšh¤;5´v‰•…<‡À»ã%Ì.LÄÊ}|:£¾P½Q[ó[í“•gõ¼«îx døÔ´Ìç™î>“–¶Ž—tÈS—˜Ø„KñÍ/;Q)´W2(·¶æ·ŽN!ôÖe¥Ð´Y]üfŽ—èwÆj³Ô‡šõQ¥çšß:†c,íR‡8”ó×ñµ5Ñ„¬·€om5ö\󛯬l×Íò£AÒûDŽãx êN$Ž‚Woq#¸Ýñ’ngê,J\BáïdŒèx‰Æ×BrséR·vžQŽ—t˾Rýy² €Ñ±/éPOAp Åâm‹:zw¼Äˆ¨-ce„åBŠ÷S•V[ó‹þí…_‚¡Ö;†.áÿé¶ìë˜E-ecŽBŠøŽ—´Ëþ)ü‡Ïûµà4tÇKÊ'È9Kãõ™-ò[ó[;”o Ájã2w º;^Ò0WŠE„ùP3rä™êxI#×òÛ…¿~‘Œ^yßa8^¢Q&§z}§ÚP¶»b ÇK@xb.š÷õš3U„mwÛ3z•ì &>&tß'V ¶î·ÕÙÐ]$Ç»ÜL 2è'דü} fùÛÂÖý6I>E×t/)7lÝoãr|eáJèöˆ®ž:/A]ЧE0&ïù¶î·Ž.|™=c]fˆB]Çn{ ÷™÷¦®Oj«Ž— @Í9J»pd¡êsc‚¤ÚºßˆÊ,ç:ž¢lÕò¹î7ÐûO–\WSK˜¶î·ÄÕUZ›7Üï [óÛ§¡ þ…ÿ‹2d(ó¹Ëm«bKJŽŽÔ¿ïž¶Ûm?JÃt)˜c£æOœ;Ãñ}S0ºƒçÈ»›½Š3êCÃñ´ˆQ…îËž¶ÍfˆèÃe¶é%—&YáÒ;K†ã%PcÂ9¹ =HWã·9^ò‘CúE3ò?öãlJI¾Üt8^B*-þ·‰‘bܧ Çû/A±xS|~­ÒWw©iqÉ ^‚K’»[nÑßÇX±üÉA¼¶sq´C©‹m'pðA¼dþØ„æäüƒ°íâdˆ§1ˆYHf ܱræ8ÖvPzlñ4v³YHо:u2ɽI¼d²>´ßˆå'VĹšÙs5ˆ—L(aºj/A7þoôj â%OÕE ÆHÏk¶Ým¹ ¾ò}õ^Ä…üàcغß%—,ÈôkNÔ°Çp¿éMÝ!’q˜h) |r ÷[Ãî0±W±ÑJ_>×ýÖbDnÊñ GwÏ÷u¿1Ei¦§ö­ä}<†ûÜYUˆ‡Üƒ]ak~·Á‘k}£Åßu?é‹ù¹-Zçï)Œiíì_ÔÆ4¿¡ëþf›jF>A`+cv·…pùÍ:ïçô³7 [ó›`6 òîY89VÇ ^Řæ7Ðà7Ià)dKô¼³ær[d?íTÌ]¸¬‡ív[R·²ûTMÊÓ=±ØšßD Ô„ fŽ¥?rlÅm'‰x«ÔEz›ly ¿M÷Û â¼ÊôÌíîo"#ý¶Üo £ãœ¿ð³]´ÞQ0vÛçžÓJ-i¢–¿£v0–ûiþ7gâ0÷NŒXëËýÆ?Ø’›„ö9Èvœõ¡±Üo@”ä}ܧMî¼—ûíƒDœ~œÁƒÖ6‘çûšß 5‡±$ßœ¾Í‹'Ç:nÛ¹efQ)Sÿ eîùæ·#D9[‰×!.û8âê±ÌoçàÊ’Y´NŽ!ï¹Ûüv 6^ñhCmd plóÛ!DÿÕzcÆ2GQm»ÛbX†$§·£ oPRښߎFn8£vžЗ¯8×äžn òìÂj&‹ËþåÀ£Æ^n‹)“w®]°Ì~êÌXn»ßÀ`Ͱbñ8_dEll÷ (Ü“_íï¾P¾‰šÏØî·Éæ(º˜½É»)ÖÃ6¿möýúÄ?Ú¢¿œ²q>·4hçŒÌbæäÁ›ñïinkñoÉß>*&ýËçšß 6™‘802 GÔºœjk~ÛÖ|“÷&&‰ |—ž{ó˜ß4ÉjÝVè'÷øã,·Ýœè¶G/!·›¼¶q¶Û.á£]yÛhNNÎ8Çmm_´\¿›,ו´ßf~Û ÓÛ.ºYè æpÒXÇý¶Xó msà%„‚ŠõŒ·m¨¿[ú7ûŒÓÀï î·iÉDÕÇܼÎïÓJV[÷›žë8l opÀ¨Æ÷÷ÛÄè/¸jì«ë8£²—vˆûm~$Cµ¬"*§ØZ¬3q¿Q­²F‰ŸmªŸ¨ q¿uÂoQl†O[9­¶î7¤èÀ®ŠÆÎôÕGúBÜoÍ»|ÚÍKó3eŒIÛûlQõœ%†¹à¬"î‹ßvÝo€á‘ˆÁ\ìµlE€­ûÍ‚¦}GÅ’n#¸ùãºß€±bNaÆ0·/›…¾¸î7 ؈Y»ÕÅosc]ó›ÑoÌ3¡"ËÁ€º›¾¸æ7t›¢öu3¿hSëZöèŽk~Óø =4Q;à½I·è×ü¶'pÚ•õXõŽ.»ÑË÷·]äÈÖ^e.ßJ}È1ÝvØ8‚Ä5 ÀJú‹r[ŒŽÐ»(¬¢}ñÁᜟûí±>­Ù¥|ȃþb^µÚšß&s½{Fö˜_ŸD>ÓÖü67gs|¥jAÉXL [óÛ\àlÉÅn Ù6Xý,™Ÿ¸-ϾŠJಞ Å·7ÕC·m#×k¿ô‚WîãÙ>·EôŸ ü¾‘%ZØšß°ƒÀ‘)ÓÖ65¨FØv·… `™QÈáé(?§6Ëlæ7”‘Uµ¢÷Ú¬vÜdzM·…Æ`Á£8êJ–±&Ûz¶“Å«Âm^Z?#¿ƒûM³KˆSŽ!ärñO=ßÁýFªZ™@Ù¼ƒžßšû­[é%6ì?–ЃƒZŒÛ.Dnò• aù›Üè×›ÝýöñIÑ/Ñ`’”ÊÀ‚fw¿¡»r-;e±³™Ýü†š?yLE;„jƒ_¨«íp[¦€§Ô³6ç@ò­IÇK0@:½LfY‹ùEðð¦ã%­›X™cX ›tOØšß4æ˜Ì ¶xr~³ã¶ýÔšuBôQ}Ék›Ž—à ¾*YMj?´…˜Ž—@:’£\JÏ Ðkÿñt¼Dcq.ónAs®ÒÈ!§ã%h´äDÎ7Ñ4T«åšíÂ÷ýF–n´®A¿9^¢y¥ÃoârzàIÝ™éx‰æ‡øð{—˜öˆÅJ[÷›óCÃû-»Ÿé_Nںߧaô^j_ Ø¤älÝoД~ã¬uôEŠ7Î_뙎—`Ô%Iû­ò¹H؈ÞõéxÉ`_‘>$yñøÏ÷¯ûÍñ’A:Œì:ŸÀÆ.ì¨LÇK4óIeôÔF¼0ß„_î ÇKÐaÃtxVÎ)/Ãw€ã%ýpxlðaÐÛ·™_<û/!-¸FÑ=¸ÔLÇK: ›GT8ÞI{sÄ;l·å˜„Yð’³&©òïLÇKÐbÓ)JSð„Ót¼DpH`8EéÌò;{þ6󛆩l~,£Eô“áRÛb:^ÒÇDßm(i+æ4 —q¦//ÁJOa&†÷aæQNf†­û­£/T¢¶ˆZ³F“)É;Öñˆž¨jÉ9]ûØñ’þñcžRÏø—ŠÓNÇK !žM© Ò>†­ù­aº\íyVo` å}Íoí°y7ï è·<1?ûfæ7L¸eº-§‡³Žsóœt¼¤mâg»Ä ´†bÏÖñTõ8}x—ë„öà Ž÷t¼ "õâó|h‹­¢å;8^P9N/*ð›˜Z9×/XŠ©¥ŸAENœšðt¼…"6Jæsy…éy–ñ¤ã%(®Ø2\™%ÄŸ9^2'òãÂç:=9út¼¤±+‚<Æ´Æ~ØÑ'1/AƒÝ÷HÚk¹¢X뎗 yzÍ%Ù˜¤šG‘Ú:^Ò ˜h«hžoÆlž%Ž—@¾ø vEni©óNÇKp–á,Y£àrìC™'m‡ÛRJù;Ej°×óF­y:^ò Gtÿ÷ß²XèŸïëx „JA\½¿{å“å:s¼D­p µ¢¿3Ÿîyo:^áÖß’G 1)„åãqà¦ã%˜› jIQÙ¶‰a9NÇK0ªô&!Ë9eûã›9^¢¶\¿EG«a¦åÃùÍ/ù6…¥VíYY, Yt»Ü¶ÙÈâ §6gîäxÉ·8+<5—éZæè=غß›*÷,=xƒ¡J̽úh¶íP뺌G_Z¿æ«åOÇKÀíŸo$¯ï¡Îñ ;0…éx ®‚«ÔÆdŸOœ%Ž—0YK‚ˆDÞäµ}ùÜog(W‰|dcг |/?×FŒÒŸ……Ï>¾ñØîÆÃö+ÊÌj›cl`ÛÍV ìƒ/å;ækg ¿/ñÄþdgî„I»Ôíˆ;‹x‰‰É ¢ ¹/?cÌÕ•Ám!&'he-³g¶i/A¡–Mí1Èõ¡ NdÍg/ -±*ÙY~œr">#^Û} %Sîc]¾äµ|î5ÛÉÙ¡g¸=°ŠÔ”\ŸûMã\Ô€[ÞÇ`…"'‹^‚õ¹ß Î ý’¯hÞ~ ƒÐË\Ÿû­ñÞŒq̈KÖÙ#eaë~9kÖ‡ð¹jGî¿>÷º‹Q0©9*†‘*ÂÖýF-D¤ìEßhX_ó[÷ÛÇ(:ß÷bÏ£‡ßè΃¶æ7À àÓÞÚSÌŒ3ë ë3¿É$Ã]²Þ a-ðzÚ^·…Ñz úMcÏïÛ>·e³EÌÓ²1 Ä»#&XÍü&ôó˜LîŸÁÒÕI[ó›ÿÛ².‚¼¢õz½¼e5ó›/¹£â€c[ðVV›nKý‡y9µ1Aä"«™ß h†ov‹v`#ੱÎÚvÛýèíwG%ä;¸ß> NLœßôÖsèÔVž-çÄWÜS¿"ðêò¾æ7¦z™@…;ëLÊ Æý¶úç¶ä¢ç¸ôV ßb=tóÈê» qEþŽg„m¶èGï·è|ë5O ãøÝüÆ:"òªQ°øu½žïk~Óߌ° W= 98zåsÍoèCEMëKÞ+r=œ¿#ßw»-…ÆÖ7ëLÀ…ßÈïpܶmòwZÑkã1ý›«›ßÎv(–‰p”üØÐoÝý¦©z 'SŒ0×1ÖÙp¿uÊ»÷’“ƽ™ú;k¸ßº1ON`·§lÍ´u¿5ȨEc1Œ¸EÍ2ßÁý†x—}úb;èÛ›M¨¶î7LòD ”÷깩“³†ù \ SÕ)£›P]>Ù³²†ùm³`-Áðދ|hÙÐs~ßqÜvðr¸ùÛô˜Äu2â>^ÃüáÏ(^½ølâz´ú¼ý¶ë¶ùñ(Bõl\ﱡí4¿Q»†Ã’§p&ÿTÔn×4¿íe1tÉqFGûÞm¹ÎfwÛAÝ‹^ÆŠ¢í-¾áãi~Û“$Ù?ÔQÖæl³è]Óü¶Ç÷«Ë*ØÕ`îñúšî·A°7ud¥ìØ{sºß¨ˆ n.ÙÛ¬Ã%î‹é~3ïä~aÂÃÇ¡†'¿ƒû ™gûÅèP)í_¾¯ûí[VÔ-zñšì”çÙr¿øÏq-ìÝAÇ€†¤¡[·–ù Äöž|Ô†Èç¸Dµ5¿éaK­‡OŠV0Aér­á¶ü<£èx›J‰ãë¼7×t[róWËÊ8÷·¾ÜZæ7ý Ôj»èbS¨²œ©k»mGoê*£ ñÉÖÓoËü†;FY4Êõ¯°=ßÁü¦_ß,ûß0 B>í×lÍo‹×ñ±ßÄ©õvBníÏmQŸo©‰Ša]Rú°u¿õÎ~²Ù –¹H›ã_ÛýñÄ}yî $×ÎÇ~Ûî·Fìõn3„Ÿ:®ÿøÛý„æ1þ¯…åÑ—´¶ûÍ„šÆÎ}Ül$O/¿Íü6QÖw(yì`AÎKÕöÛŽÛ¢A@bb•Í0¸¼JÃÇÛü¦¡.øgu0&$¿7Ë%ak~›Óm#æì¡_úR›å>îÌ:æ7LÁÖ·³nÚ‡õÅY}Ìoi,jšåL²€ç£†²Nw[Nñ–èg¸?hóÁòÉ=Ìo³-«3` ¤‡œwåsÍo˜B³³ŠØ .|äo#öñYn+6h¢àCP;¡¿Žù ÿ~ÊŒ^µ:ùô:Çm!Gñ]´C&¦+ ÁuÌo¸,x0Wr§j\àFë˜ßÐS m¬s±p%î 1¿M²Û †7íL ¿‰ùm@ ùÐ(Z=@EÚÈœAºÛ¤oûfÞMvÌ›w`ï0ܶ±A°ð*„3„¥‡&êóÛ€vÃïiØì }rÒf»Ü–k=@Ã_…Ïo&î7kœ­:§ûC“‚œŒÁÅýÆ) -pN·eH‘ÄKÜoçÆ}AmM›‡²b‰û &ܽEËKÃ_´zf¾/éÄ"ÉöŸËRT®3ÇK:mÚ(1â2^ò=—ã%(Ó‚'öåz˜{³'#›ã%Ø*>¶‰Þzîä;L·Õwãœ×üfz~£æ:éËñ’.89Z/}= ÷×ZEÍÖüÖõ¨Þ7¤ÔÉPµ ÉØšßô1¹PÊÐõc|Ñ/måÙ¢q+Gù@Ëà`=â óÆ:ó +XÐaßâ|.ñFnK±¨êÝN§9ÁÉÙŽ—°»<ûy“xn [÷ؾˆÃóüÕ…#§ö"nÇKPcâ¢*½Ê+b2ÃÖýÖïüÅ+FYåàZHMÉíxIï,’ž’›†6ý°u¿5Ö¿RoA)HøJ[÷›u1V걇xÀšië~ûŠŽ³аH[ó›^‘Ô2¸¥ï–ú%7æ·íx‰Fðˆ=ãœdU’/sBPÎl7ç'fŸ{G ´Ã¨ùlÇK@´&ÁEœJ!Ž7±ÉÞÁüA-\¾-¹ã®cHí™ù\óÛè7›óÇêw&{â·ã%ÈÛÀÄÄÏ0^ô-nÇK¨7ŒK'ÏÉáÒ{of< ynÛÉmÞ%ÏÄ=­u¸ÑÖüÕ&Ôq¾:+ƒÖûË÷½n;õr¿©oP“8q®oÇK¾cƒsÊœØ>÷PôÒnÇKÔ¶“DQêgñΊ\z;^©ZUg9ú`@îcÇKôFg¾Yràöø4¹&/ÑíŠC¼Î·FGr¯3z¶ã%ŸÝ›Ù§†xGn@uöÛÜoœL“±Æ?Rd˜üß|÷[gÖ,uMS¨”g‰ã%Ÿ ©O‹v¤¶rs/x ·œÕK8A>9ÿ›xI‡²§ÙzÑíhBÙÑ´mn;¨W88¸u,“eÕ&^[ʺŸÂ+ÖK©”ôñ’ÎY:¿z /f²|œªû‚x mLï¢É‡:î‹b»þ<Ñ7üÁ•ßAŒÃ‘uÓM¼¶Í¤'Ð-Ïù¹&‰—¨íbH«ñ/g=íÝM¼‚ŒÐ»¡ƒŒübQ ÌjÂÜ›ÃýÆà]ÒŠ–íÇP;êþ{ºß,èI¿ìkÆ$s£ßtO÷›ìä1•É¥˜é…˜+|1Ýo„Œ?t1•Éýb‚=ÍoÏÁo%î;”Àê¡g¾çt[~ßѪÞqûbšß Êr²©’±†~РvÚšßÕ¶¢}ÎI§(ýÞÄö4¿ 9ßR{É]¼ù}Åm¹Ã¥ä¼öåñiÍÖü¦A4 £çûBöcçýŠBn «œlý…‚»ç¦ms[‹¥.=‰‚Ã[óz‚xöíªsJm¡\;Ëý6Œ²/Œ•¬¡nìãå~œÖç*½`Mßslör¿ L>ƒ°eêõ6‹¯ÇÚYî·ÎÆúÔÓ…”hE'戢aÈlÛ>œù½J?N#·#ðɽÜo`c¤p¸Á›=þ3ó;¸ß9m•ø‚ 1ä÷/V¨Ù~  »P©óQ†54ÖÃv¿á8Å¥žg*tþXG­no÷Ûgjr»ÌÖÆ¸0ØÆúÝæ7ÄAlXø´}ä¶æ7½€÷…î8ÇÒqv`ê<ím~Ã[ þÙg Ö1§bïýl9àqg-_/R´¶'žº÷qÛK t±© ¥Ó2Shoq[´%æ¼/èº#IG“¶æ7ýäÙDéÕè,×|QËßÇü¦$´‚—\«„/Žù혾ç(úQßêX;–ûÛs»Û’?SáÿQRcÇLþ„ßì˜ß6$IRh—qõÀ|̹Œw0¿íóôNÄ“8KÂog¹-À2ãK=<±o̼‡Î~¶«ò2Ó"BLé2Øšß6çÝÿ:ÏÚko‰5yÄm;‰»èÿâ'àØ‰ýv®ÛbŽc©Õ îcÝa}GÍg‹ùmSœíG–­kþúfp›·˜ß4F"FZî,9”ùÛ¤»í!0QúP¬±.¼°u¿A9ˆC öŠ–Ç›:#[Üo¹¬k¥.ÊǾ­ÌÄýöaá×Êhèñn‘‘ï`~ƒ“'!T zΪë¾å¸-{Äfé]Wçï‹Ç¥Ú"nûÙàœ‚G£}ùÍÌo ”6h’,¹"Z¶â¾¸ŸÛš.Õ9Ec”›ÕÆaš­ùmñï[™ãÌFí<çm¶æ7Ký¾–:Õ®S+b_óÛÂ}Œ‹zýÒ1\eovÍo‘¶r"59e£“S–ùÅ]nûÙ\¹Q4Å®è´u¿}¬u̲~ûA&+Ïßë~û(=7ÊÚ9;U4©÷5¿Maƒë·fÁ&ëYygÝë¶$Ý}Á¯ÆšDTs,üÀ÷=ŸùMoÍCÂqÕØ¦Íòøçknûɯ>áŽõ‹07k¡ç3¿áÍs±´.¥œ Ûá¶äW7ùŠG¯äÙw>ó›þf&Jç–yÝtNÓÖü6J‰¥o=Wg”•)ì;ìgÛ{&kÀ 4Ì£<Ý=ñ\ó˜¡RxüÀH;${‹ûí|î7¨«ã¾(1ž¼€‡$ß×ýö!¿§’3 ًxšû R¨·äú‹Eή:Íý¦kš±rékž‡1bpžN3¿Ë`bWà-†ÄÓžf~SqZaÁiãý¥îøióÙr|/õBÀQ¤/šùml Ê©}–˜~Sã4óÛXÔ*IÍNœg÷üšù¾æ7 ÎÆzØE3nRž.g3žf~Ï‹M•§j¬<©{¨]·]äÕ>5ÎûFôzžn~w¿Åe¢æÃÄNoÏ–õÍRG?ü—Ïj·“¶î7ëpý…ƒ³P™Ý÷ºû WP6õ{=Ô¾YÁ/9ÝüÖ©Ë]4ØÐ»~²ÍØ~›ù 5óBT¤é&6gœn~Ãüâ"úæù`-mÍošæ³]¨à´zQ6j¡§‹Û.ž¿-{  ÜŽ}ìxIGtžUé7Fa×d4øÛ/é`U妵9м¢wð'ã%DsÜ«h¥mÒ@Ú‹wŽã%šÀ’{[8 ó«fÆq¼Û|£s]ƒ³Róð8^Ò0½' ÖKKÍ¢y÷q¼¤Y{÷è·äÝì-IÍ¢ãx ‚/ ’{€ž.öØóŽ— éÛ‡VÑQ&Ù‹Øw0¿!\Bcє҇½x¢å=äx š¡qñÈyMˆ3x¯ÇñNk“Sjjx®÷;lÍo˜¯Þ¹¬ T&Õ ¶î·Fe“Yp‚Ñ71˨›ÇK0k§ˆ„õ\‘‡—œÞãx F˜(ZíhÖBȶòÜoÖRYµ®‘|ÜŽþØãx RqrÕFéÏZlPÌsÒñ 4ÇžÙ?®.½8û/ùði‘å=4颴ëÌñ’϶ü,=b‹s/Ï™¯Vw/srçp[ž}‡šõ#úŽã%àÛ“è•ø$&wC:'êÇñd»¸ jïƒnò^ó†ÛâL¼uÞx#;åx/ÍÂ…õQ¿ïD?äq¼ä£æme^n@KÎ3Êñ´£µç•ó:Z}Á+>Ž—@î €~Y“WÛ+Ù;¸ß@ÒFQ¡Ìsà‚#k‹çºß:¹êÁÐ}¼aûÔ:ÄKšicý® Lµ3p®C¼¶¨Í|»p8?c9å~#^ï(|„hü.Ïf;9ÈnÞ¬Í\­`”)úxIÁ‰Äˆž8¢&<¤öÏ|‡e¶câS£y!ûõ,†á÷%^QÈŽÜ©Í2—`u’ úw8f{0û®›q ûÈÕGyþ/-×ö.ü³i¸\hâ%(Åñ½ô(h–…»©Ärçs[êþÀÙ¸P>@m=l›ÛN”ØWéÕÐ4‚•Èà.žÓÝvXÿqêÙàèÅ\ö˜ÛwŽùMõaŽä¾€žt%¢^xÎtÛN ₯¶ß›ßá˜ßdšóÍ:Ü-'ß×ýfØë*Üñ¾m¥7ôlÎq¿éOƒßJ¯¤:×u<×ý†ad9Îæ3p%ð÷[H{Ñ—SG6λ/î÷¥K¿SfL6蟋÷÷ïÚïO}DašëLÌo;«ZøÀwPøuÊp[mtKáÎX›ü—¶æ·ƒZ]&Ù–KCõ{ÊrÛ9m"Džƒr"9#øÈv[TØ£©xuçÑ™|#æ·ƒì1m­›r®‘AÂÜÇ"n»‘ãÜVf²˜È(ßÁü†<ŸœÿVrôCÊuôœk~Ãð«%sÀǭΞ8×ü¶AãÇû¶¢-Ol%qûsÍo›3ïž¿µ{Žq‚íx¶,‚”YE‡î‘)3lÍo[ïHÖêúÿŸ»xîr[(˜€×PëÇ—ãTò¶Û|­÷1¦Û [ó›Ò&â;PK†µÛý8çšß6FQ¥1óùƒ8ê˜d—Ùšß ³S¼Ñ$ÆùÔ6–Ïý†(ß™Ï ðL‚õ÷•ÏüŽ#{KZÑÁÀñÒRD¾î¶žÖJ ê$0¼Àâå3¿-1]÷ÂAZ'_ê‘Êg~[Fîu®2ç´vò}—Ûvܱ©£…¶†“{¦­ùMo~|³Sæ›~PºxT·IÛã¶ÌÇWf á.L¶â¶ŒS{‰£ùú¢V'ŸùMÏ.v­Žr®3’s-/~³ö¹-…,²¦¡í¼QÂííciî7½w‚²²¡Ãÿ¡%Íýe­ßÁìƒò¹î·!‡@ÅÌ·°¼tÃÖýöQ÷@¾^x™hÊ8'êzÒÜoµ"‚›ÄÔ‹GÑ ýiæ· M$Ùyþ²™UDšù ñÖê\–”¿Ðš’f~ƒ6/¨Q9‘H ¾À ¤™ßæ6ùÑ·3ŸBñÜþ¹-„ïʬ8ÜC裹3[7¿iâÁFªö•øA(âÚò¹æ·96öÛ-9:äô@bMvó¥A~ùJî½/ç©IŸn‹R|¹‡pFa %TÄÂv¹í¢.v«œ=ÒÔ“¯,Ýýf×ÛùjÍ]Ö̱װu¿A9èò޾º&ÐÝýö±19µ@uC¢ B/N•î~ã`-€©Mh*eMóÛฎ DÎp, “çÙ0¿ !˜sdÔù8#ö<ßwt·ÝÃPÓU¯C2f…ƳŒñl1í/×(‡Øx¼ƒùm ×{‡Ÿ%”3m_è ËXnËâ`½ß¶°ç5çË0¿idŽå.+ã(/oÕ“qÜ–S][á åÉst{_ó›øœy_ r%VðÏd˜ß44çUf#èÅØ~­ßé~› (ûM=&ä9`{çút¿¡ ‚*Ây]F&9—K¦û ê‡$tU܈£Ð“é~ûX[Ì9ƒÀ' udmQ¦ù­³÷ø¦ñT6åù;׳µy1ÙßÍÌúµûÙ;˜ßtËPÚå› =åÍnµçšß:¾Ò48öÛ¿â_™æ·îЖפD&P¦ù­S[9ê  ÄîÌF–ù­A¿D FÊRêÉ{~5·6¼'ë O|t¶Ýmõ‚Ê} vóÂ|ó[3ÂEÕBdDÞv¬‡5ÝvP`k—3 5åÚ/-Ëü†$•4•YõÁû/^,óŠŒLgé5“o'”>ã¹÷Ù²^8¿Ê= ôiÞYŽ—@À™¢-§ô£OãJÄyæx †»ô.¼×10oñk‘›Šã%í±ßZ`ì¹ ½mq¼ÃK'Û/ÁèKHMäZw¼¯…ÂÜ(ø§}é]Ÿï»Ü¶_/Z[©B÷é<‰ã%Ÿú õ%?Æ<Ö¤ùÂöüy …ïP´èجqSI/Ñëô²Ñ·hµÝOÇK>ûÑç&ÿW£jöKG}H/æÛH!!Óò‚ÄnPC`ÛÜ–:Á)cß8Q‘3@ÅñÜ@£¬¿0å2´ ÄñjhæÀ9æÒãp¦|ô‹ˆã%,#q€VáµYªXÞ~»ÐÇ êTÙ¼ò«Eò¹ÛmùÛæx£-üv :¢¸H>µ&a;¾í¦ÙNprÀ3Œ÷…ÚqOyØ®?XL’´‹ßö7É Nú%^¢¶Ó¬Gv`¯½ñòü½ÄKÎ÷ÈÛoú}»þg~3q[Äë>¯ÙÏ(Ìsãò›Ý?6`lòîí=Ö/²ÍùŽ8Ú/9h`ã@ë™k]/Έ3õ/9„Ø–ømð1Ú4oj—^â%}j\eñÛÔ¶“&¹O¾ƒù cËPttQ2ÛoŒw¾Ð¸ÍüÂæ´•»e4ꪤfçmæ·Žæ”f®C‚ü’ÛÌo5N¨ø&àÙèA9+4·n3¿A™=bMb=èj¤ÞöÊçÂoMoð\gHÿÀWî-~Ûu[†LóÛï7}"G–Åš$^²1Œ–w7{ÁÑ‚š9Ã%^¢É¥\ÉÙ#Î(áCî"8È—xÉF2 ­£gßBR}‚þûÄK0‚ño[¹æ$Ô|B÷ö/ÙÐã¢ùÂ&¶â’s=ßaÑv±ÊåµPó€y<1{‡M[ ¹ož¯uÔ~_ÉÈÞáж7æ-û+ï»ÐqúÙ(ëI[ój“í‘FýL]˜ÕÔ]ØÚ\#hB!m}wûEB¶Ô4»>OX=ÏBmì ÜÇè. X¶oîºà¸m3×ÙÖˆlá Ÿ'Œr·<ÜÞÎ>}*$Ã{ÔÉ®Ï>£Ù,ÓÜ›šÉ³d¹Þ}ó„/ÅÃú¨ß—­?Ržëó„1Ö±Ü*1%°rfÈ}ó„1y‘Õü´Eáƒ|è·7OX“lÔûŽï0Øs“{p}žð`iQ?ÃûøÏ1G½Ðž>O#þˆs}e= ¯ï빇|ž°,½±þ‘ò›‹r}ž0-¶„ó¬Æáã;Ÿëó¨­ñÛâ>´!KqâÎòy„"<¿éµkÜ[“7[Ÿ³’7†çô—ôÖ/ÞÁç¬tœ¿Í´Ý†ësQã9q®ëz¯˜kPkÝ8K ^Œ¥:ôwÆÜ4Gß‘ñ$”é1>9ê±×õ^×°i¡-cÄ ÑªÚ'q]ïUÖzœëà™ë±q|Ç=äz¯“Ñ·ێ}¬ßÁ{ü6×{ÅE ïÅ´Ì[k3Á¹®_"Tºwg¼s)u‚äx®ësm’¿÷Ìï yIùUغ^P£fý–¯_jÔô™¿m="Âà=ßœ‘T7غîÌa2<"~þ‹"d¡=v]¿ƒ#÷kî·w8c²z`Ð×õKz#!`íŒå°gCöü¾Þ', )¿ *“ãåoü¾ûõ-Ú€GÙ™›6V}ʚܯo±[Hx‹/ˆöÐx¾¯G:°Ì¶s=èÅÚLäC×ûq0» E—R‚þï—ïëýÐBóã[e+¶Éïˆå¼g¡§ºÂy_° iCœÞ³µÄçÍ=ÄÛ±\¾¯ó•ÕEŒzä›h»ï·Ù;8_ÙúÜw‰'DŠ~Å©Þ3M`kÆ9¹1£’ù_ž©Þc­gßš™_ ºb´™¶ÎŸ±‰Ö™ûãœGŒ(÷y?Ä–Öã­ø}|&öÐŒzáu¼“ÜÛ#Ê ç<­oÔy×ñ4¡_y¸–"óÍÍ#™ûâ<žÂÁ;´Ëéb4­žØÎ/9ê^%ÇA„‰°&ú®óKŽ'ÓßÊ\O\2’¬|ØœâEI“¨ù\ç—\°–ð`¬ešPleì=úÆ/ð’˜MŽ!¯þ/äŸS±˜ò~ù¾ê7lÚF1®é"_Ì!Ñ« ÛM[L5"eûw@^Ȳ´IOsí/!(0° ¬‡z}~aæ Ð ¼Dß™Fömû;°Åa™´@ÜóÀKŒ±†'–8OëÁ;&gúbpÏî·žg 0'Æ®aÛÌvrXì·2þÔµ‘£Œ°í´mÄo¡pœñÃîÀnC wÇF‘Ž)?èvErz™È•ÿ8àÌf€•w%Œž,ü í2[ƒ‚Mì7\B”²Ûa»ÿ¸61±12F$ßTÞ8LØž? |xß3ƒÆ‰cwgØ m¡MxX]Î{“£–oÌÑ…Ðmς֟÷¦:.w¸v‚ÛÝ©?o€1ô…Fâ%ëpL@hUbôÒ>DîÊ¢ ¡:L¢À~‰÷^òÜñCJì¬Ö ñÃK§`;þØc_·$&¶g=Ù%ØNÚ.R±=Yó¼å›Vk޵¼„C61’gma[^®_à%HD7 s‘ótG…xßc¶H¿^±"òM× ·½ )µ?¶¨À5òú¦}‡ypîô˜[‚‡™­¦Çýé)˜¡ûÄŠÀyï¼Ä6 „k¿â7\Ç%„ßoëæ·k³wÁÕk¿æÄ«mÿcEèkuûÌ¥ ÖÀ{…í0[#d\Í9büµ_øx ÈfÆx¾üí[f9ÛcÄ:ëvNî>¸ÅÞ„Ò¶Öáð[·sræ8çf¬¸¯w¾ï1[v<ß»òŒUtä[ùcÂÀ—½àQC¡45ãÊ÷½fk—ÀøqwkÄ·“ú(ÏjˆtÏ'6‚£…åÔâ;/±G0'î‹Z)•›Ž÷©m§í@O'Ñ÷ÌÑ í{³ŠÔv˜-ÄÞ=ïuœÍ òk…í´»ªtÌ«2ö„^=.YEþß ¥Ijä¾P¶‹¶ºP03¯Å}ÌQsÐÁXå;l³ ´™8—Þl6 Û¡í†^Ò‹Œ•!S‚87ï¡iqÉáh[ïMõúÅÜç÷¹¼¶ l¾žWÇVLƒ"8#P¬±xGˆÍo0§ÉÐ.¶ðÛ†x… ƤîÇ9ºÚv·j¨ÌÌ¥;[äÉ#ÁvÐPSäÚA£õ*3±ÔvÒ’dòfAyî?9Ǽ¬à%°]ìCå|€zà}:ÜCÀK`{mGœ;<&êÿúí¡íqíÑ!ñÛ„½ÒA¯‚­˜íÄP /Pú~RÒb®ÙÌÓ½ÈS)k§³ÏâÕ¾0êÅ)’ÿÝ’KöŒßa›ß Ø¼*vu)O×ßì*{®ù PÇz„î·7™Ì‘ï0Üv¢6nÄ`¯ëu›Û·ã;/áð`cú¼ Û`©oµ]´ÅÜH#çÅlT"{hBÚl7$[eN ®Å^ð<— Øv?Ó€/gÉàL!9Ã/ùwx°®—ûb‘“šÿh‹ö5Ÿ/ë@Þô¨?±v€—ࢢˆ^Íw7©ý_ ]Kµmfkü…ÄÄ%Mâ=â>à%‡r&ú³æsQÌEH÷ðØNÁÙ7 î90úê…ÏöÜɇubô™ŸÄŒµur/íâ )õ!‘¹Ó޳x l7„×mY‚jBKš$lm!VÃ^€ß £IQ€i3~›Ð¶/ê÷­¨ûsFð”2#Bm-£¼!Îå<'©jX#Ïx lõ0†Wb¹=œ“±Ö—Àv=wz¾´Ú1ï ï¼ —Ðãö)ya7ÚwëqF/Q[Lˆñ%N;'b# )Âob~å®q5û„$÷¦˜ßŸ@¿zd {m¶CìÌqÄüÆÑàòe £Ç ›«ËoƒßÀU_ë %QWy1Û•ÖË€Æ )ÚÆj{i‹÷axÚȳD¿.Þ7cOà%°EЄ¢nÉqä#þÛâ}—¸üP™^«ä [ïJBÄú^ò|£.1(Åy+ìÝ”›ñ$ð’äG-êmžÍì(­Ïçñ’Ëí‹30"‡ÄXqÁiû‚xÉE!iü_ž˜ƒ ü'ï–ky÷g5£êUtÀÒ^¶w8n»÷}ƒœÏ!PÎoQ[Ë»ÑZõ^<4I8:ðJÆ\×ònüçÀâgéG—…+z¾z,jf»Øáƒ[Í8P€®ŒØéÙ¢±¨ßÒ7¾±Îe¿~µín»ÚȧͶÓ_‡øÅs /Ál[WfíæœøÐ&Dã۲l³ÝÏÁFÌ¢f\Ý9³ôõÕ©­ù r¸_ "84ÃóûñûÔVž-È|ßM½m|š[æ–¨­ù­Aù“ BéÝ9d©ßøŽ—hê³8d2gÕs|¦›=ܨ5ó¨‡)š’Â>µ'Ï[ǹP¸Ç)šst!B/€ßzå¬zè`°3e•ïpÝ–:.½ôzb°Rü¸ç[7¿éÿbŸÒójÜ!~vö¹-yA£pN¡úÌÔ ~[ïn‹`0÷1Krœ—ÔûÃlZ7¿õešE¡+Œ×zà¾Q&fk~ë謯/¦mÝü5Ýñĉ½Ç£ÑQ“ˆõÐÝo‚–7û!ÁÑ"'ý…û°u¿]ˆ£ÏçrÏ·¢É§¶òl)$_ö&ºúXšìak~ƒþºÔùäÓŽ˜5Ëwæ·Ñùá¿¢%>A?¹,~‡a~RÙû@Ù;^M;rÈ6Ìo}™"3¬_ônå´nKÀ9Z™•Áöû¯ÇÚæ7 °€¤´Sú/>ÆQ-°¶6ÌozYÌþðÛCgLð Úˆ³dl·60¼èΘ, D<Ù†ùMW/tàä+çïfѲìã!nk'hô©Ac£ØPé‰w0¿¡N ¯hýAܯpöp±»- ËûÝË?TÃÖüŒ‰{>ï·Ö¿ë¶Ý1~î¡ÔÀ¼/çÆÚ™^ ¸Ç-:{Vš#¶ùê‹Ï-Zíº[©Qóøžjëõ€éë,¿¤Àú«òžŸ^˜—ÃÅ‹ž# ¿ý•G¹~§ùm.Šäß[4¬ö°:o¾¯ùmy–÷Ú#ðº·ö¾î7Á(äÛƒâõáÿ×ÚŽµ³ÜoÂY[«ÌyÕ›IRäzm¹ßÈÀiP4öÁEië~»'Ä¿ëé—Ø;˜ßcê»Ë;à~î9â¶Ók(Í4_ŠVÄrY[ßw-·aÏ5¿iÌÄùfŒ¨I75–×qÀIφrÛÇ›©âŒûm‰Û ß¡åwÀän†˜q/óÛBJ–›Öf µÁQ±öç¶“YtYÏd™-Ïêm~[hhàÉQ43¨¥¸òìÛÝm7õ2%õ F#ü0¾|®ûí2IÒÊì5ôÔ‰x9¶æ·Í’ûe@ǘ ·m~ÛˆÔê|HÖ!ŸÝ“ïk~Ó´›~™Ë¥'2µ˜g|ßm~ÛsRsëË^û†¶R]M3Îßíõ·Éðª1-ú,‘ëÅÚÙ×m7/ßû"ï¨q·WûjÇü¦ }šE T¡‰¾™7«Hm›ÛröD/šfg˜DHÔÛ1¿±n¿=±6yLrzgÔn;LŽi¥®dð¿s«A:v[Fѽô˜C“ØëŽõpÜoÑß^µg»SF®ÅuÜo†.ö¢w©4â“ùÛÜo‚4¥è”Q*° [÷ÛepsvÎÉD4ÊBEœëÇý¦Çÿ­ó/Øÿ†u6¢~ÜÄüvxÞ1»•ô@¡¦Cä¦MÌo§ÛPŠ“¿M¯sŽŒü"¦ó›Þz›Ü潿 GLŠ[ó ‹Rôåî £ÅZ—é¶ÈÐo/k„z;ñÍdyýØt©V™á5ØFøRPØšßÎñû©èxƒ„>”|îq[F‰RzÄ:99-tþÕVÜ–SÙ~iÙȽç¯x½›3±®}Z”™÷ã½r]÷"2~àHoÔ¨4(‹5yÍoZ£~ßÌ9 ”òꟄ/®ù  ús ˜ý±\Üó×ü¦ëÀg¯úˆƒýC;ã¨;ÝÖ&¶Ò³=>öÈÏ5¿Éj ø²¿°}œ7þÚ,`k~“Í^åUuà–•ÖO¬_ÇKD¸Á[¬3µ@&šKdÓÖü&—ZÌ­Ä0zDuJ<æo3¿ÝF”yò~Ãb@§[ä…Ýñ’ ¥DpgV™µ5{‘km{¶Ð)ç:×/nèÏínkqÑÅt°8Kºã%ê]W”Ò×L¨.äÐa;ÝvqHêÙ œÄÒǥ©ðlÉŒsùŇý–x_w¼Ó¤æÝÔH ÜÅ›ù¨¶ÇmÆtÚ¯Ù—¨KÇùÐ/¹Òß,Ú¥ú(äyóÜos5¾`ê&M†Û9öÇ/™çÇÐû»wc¬ü¥­ûmQÕtŒ¼ wçwxT!غß6h}ýÛÁÞêÀºã%È¿Rš„ðŒŠY$jë~»¹îEŸ }¨F½¥;¿¡¤T Lä-¤J웿m?[ÎrX©¡Â‰«è?ža{Ü–Íç'b9Î-¡*êžñÄm7ŸYæ·v]EüÛ_B.@µñ|ä`Ȉïëü\!‡}üEf~Er¶Î Ò¤·•w0©‰ÝËüMH–šíó׌U@ØÔ=ÂÝxAaÐyö©Ä5‚— tÀm}íòsŸ´ßæ~;Üô©FÍYž~é‹î~®–ÂÀN¹ÆÅùVÜ»û ÔE“šç:k;ÅÇÝýÆÂt Vóo[Z®õ~K…V8 ý¿¢ùMä×Öÿ“ÝvÛ.Ú,}0¼éöÑž-%÷ÅDTš‹ëôªíãsQë¯ÏÔ[zî æ³bMó[Ó,°±c?µ8@”‡¤CÚšß «Ú*fc:ÞãÍܵ÷5¿¡/ɵðiÑ€± nk„ùY´¼:µvËï`~Ã@GP¬zɾ.íÕÍÖü†áXÀ[â´PŽ$Ç%ß×ý¶ÑÖssÖ!Gƒ=b·ÜÖøQqþ‚[‡™n’quŸî·Mqù³Ë\˜…žL¹Á—ëÓý¶{3ppÔMõW–9zŸî7*ê•qêžÄ£B‹NmÝoÇô¶W«3Cæ||D{®ûíQ—/u¼‘¤Gå¶çºß°²«¶1ä™?Ó`K[ó›5 è ü ÞwMb7ßWÜ–=]ÒöZKfµ½n‹ŒSïÂ2ïC›~­‡e~ þÙ>OeßL½\jk~£ j¯‰—àÎÕs]ÿí«»í¾ÔRœÃ\ŠIëniak~냢-¡…ÄTœã3Êo[Óm9È_b+Èzf™Ÿ¥¶æ·N~H%Ié‘ XAìãe~ÓH.e¿AÐLÞ›ë<[ü⻋î"šJ‹Þ ÚbÝVúy½´o&ÖåH¢ÜÇËývx9ܢݯÇëkl÷Ør¯³?Î?°í™qÔnÏÖ„ÙoÑÆûO¡óÎÉí~Cóž=F¹o¾©Úºß8tOÿ×¥ÙIPÝ_¬õm~ìH’çƒn͊׌õ°Ío&”2¿…øÇ3´gÔ6¿ 0¥pe¼ƒî.JGÆÚÙæ7ýk8Û¹%7Õã qI¬ß-n QHuÅ(Z«œæ:ÞXânknûZÑ.eººzøí|Ïv~¯65gjF}³óÛ *|C/“}–Ð`ùJÎpºÛ’Ø3oî͉á#ež»ÚšßƢдü¾Ðfçe>×ý¶v¯:ô¤½,l×ù´ÔÖý¶Øà’ó ©>99ßÁý†Æ ¦e~Œ‰B#¥#aë~ƒ4rœ‚ƒåzm„fë~#™¶hò´C™³ÈMûq¿:)âTö5OÎH¿‰ûí,œ©‰kpÏoÂCiÛž-êÝ·h?jîgÒeqîH¶rð°ÑLˆb¿Óâ;ˆûML[H2Ϻàʃñ¤¸ß„ƒe[ÑMÒÔ”´¬awq¿]uüØôÁ?þ­ø¾â~»rökVb9,Ó|®ùm~bÍeftc8zò¾q==VɳÐÞWv Ûë¶›¥ñ¯Ì8G³[cÝÏmŠ~_㬸/ãk~C<Ès½àž&”ݘ‰¥¶Ým©ÇÔ~ésqÜRÖ¨úõþ€‰iè¾ÁíÜQ¯­ñ¤ÌÖü¦'²ôìmtÐ×@u[óÛ< |õMlÛkï‚­ù ÒXìn*øÀ*ä-ùî7á܇^µw G¨/ÒÖý†çªÖ5ÇöÀiûu¿ÝfsH‹¾§F\ÔË|ßl|î7@´eÞî¬ (´Å¿-û†ã%\7HpKþf²¹=sSÇKÔ{h•¼_Æ%1‹'“ÛN›qrÊŒˆ…?•}_ÃñÍYÉ·ÿÊœ=€ÁL žÂp¼D `Ü¥6¾0MÚÆ±Ö/ Ä}ä#¡IôKÇKö[·Ñެ¹¯è—Ž——À>¾5—þ¬­?ßa»íÆ ×:ºfS( îÀ2‡ã%ÒY[…Û,@o~øÍñ}Kr­Ó,H^Ðp¼DŒ x¾¼/ÖÇåŸqõt¼Dã‘ß=º«ñòlÃÈ­ó°õðf<×ýv¾Yôð<#õ|Å99/jtOñž©—æìKšŽ—ú}R求ªL‰xÇKMãÀâKŽ.œTœyÀt¼D?ò䌓£a#ÔwbÅÓñµñ5q9Ža@˜µ™éx‰\‹Á%g¿£ß³£gp:^"èk*ó/زµ+í¶î7£nÌÜE ÎÉ 'y+Óñý¹RÎ.w@ƒ’–‡±/Áti©÷&ŽúŠÌ‰\d:^É{ "$·CO§y^O×ÎÓ/iJ‘·äóGàÆ|µín;yÏ—~'ÍöHŠ-l‡Ûïê+y·î+ä-mç³…ØÙõì£DžÄ=?/Eœƒ2/\ëcÎ÷ñt¼„Ÿ=XØŒJ¦¶í{yÀt¼|M¬³ÂAþ®iç>v¼•cä_ÖP¶o#ò€éx 2 ÉazÄ'û¶‰¡aëx‰~â0'ØêIqF9^¢ÉÅ`¯q™YІúl/€­ûm‘˜=à+ƒSÑ›< z:^–Áš· '“ã$VúÍñ’KmâOJL ‹‘cAaë~[äòO _+0£O¼ƒûͦŽ’KcàsÈümî·m€Ç*ñ: µ?k:^î9ò€õÕXû8t8Ñ8ê¶lRu~á¤^á l{:^NÎQ̵¾¯é½FŸÏœO/è’3"%6’s ä[÷›¡—¬r¿Ùzô\MÇKîaƒÊ-ÜüK¹ (×ÀÖývÈc:¥G÷vjÍòî·cÃÔGÞóºÈ›£b=8^Bþ;…ÂÇÛ9•ámÝoÇÆ“íÂ[™l[ˆùdjë~“΢‚ä  ‰ëùÛî³E/y¯ÐêAýYϾømŽ— zMîWbÐ.«½#˜Ž—@æº8ßê±ÇÄ*ã/º„»e—™„˜¹ TøáëÓñ.…7ÐÏk_5ùf®³e:OØkXe¶’¦tàÀŒ£Ör[òÒÆ(÷[ÚÉ»{m·&Ü5K—m ·¥íqÛÓ‰§í°šgÌÕP[qÛKAÇöÕ;áG+ϽÏÖîÍŒåöFÕ§%þ;‰—ŒëÏú<ï!ÀH ŠI¼¶ýÇe>ÆöZ7Ûõ¹:©3uéí¶~õ€Ìíú\ƒ¤\)ó¾ÆùlÞWü¶í~3q•³ ¯ sSÑÍ~Ûî· g©ã@ÔÚnƒ{;·ûmr–Ù˜É[e„cZã~Ûî·Em–Sæ›6»ßB[måÙj7eÍ£âp*K¾ƒûmA>ù¥ÆzlØìŒÚí<î·ÅD9ç¯ážÏã~C->’R"_#æ «m¶6s·ô¹CXÈmü¶ã~[T¹û®”»…£[Ï÷u¿éÑwRÁtàsÿŒûÍFmIÁ¥±\ãÎlÝo›üÔSúÉÖaÌUß×ýÆ9Ê•¾™)äbgÞrÜo6jÞ ¼ÚfeD~<ûMнPêCËBÒ+åü÷›i­f-úž +ôû¦¸ßnOá˜7Öóo¿o‡­ûíºÎÓ)çë¼;pû)ãÙRÖòþO8IÆ)æ·ü¼Ì¬¿p±½`¤ír[’·n©Q‘½ƒk,¿Ãv[˜-ç$¤û©­玘ß4k¡@Qk¥ŽCH­GgЏ-ù0g”RC‚õÎ(Þ›b~kP°+sûLßwdît?·¥¦¤ìÒǺ!-Ð$sôÛÜ–B7+¸TX;í Z'ß÷ög‹{(ï,´±pLáùÃmÅË%{¹Ð-ˆÜéK[÷›¬›ØÊžHAõÿ_¸Þ« lÙÇJYÌV(¶°u¿X‰Ù)_ÉÑ5êuš¶çÙšN¹‡:g¦Ÿò䚷ƒ íæsÝoË€Ö•yaÛ‹Sòâßõ¹ß°Vq–”øl‘×ö/s}î· A™·Ô:õ'[ð=×ç~ÛØÒm®Ôhœ#Vj_ës¿é=Bà²ô£ Åó¾7«^mÝopd˹¿À¨é·¢&¼>÷Ku­öu¬†ìºíïà~;Ô©³|¡nбç[غߎ@·eìÄÄ4$„¼Šõ¹ßlvOöIhÌ¥¿¶´¦ÀÖý&Ójãkœû›|£ÕÜo"ðErÇqžqNEöž­æ~ãqæó:^å wغß4¾Cü[æ"ê¥ÂÚxð¹Vs¿a´(ªµ½œQìÙ–ÈVs¿érµpS_K$úÑWs¿]bmòÕ^pÌÆ0v^åïk~ƒÎ(çÏ(ÎwÚq¿­þ¹-‹ñ¬Ã°|rFO{s*Ô¶¹-”`5ÐËØh7N‰-~s½WO(äÀ‰éÛ?9=Ø×peýø”œ·›,E3j…ÞëÜr½W$Êä&}¥â¥=ú$–ë½"ÙY¯±óÍ&?¸vOô%-×{ÅEǾ¿]pZ œ‰k¶î·E±ÊVð’k½ë-xAk¸ßH•Ð%[bDŽ»m1UmÝo&VÝ‹n©7O†ÖlÝo\€wNŽ4(ËZÒãÙ™/9ÓC—Øî·½”Ö:¤njÄû(P/|·ÝÄ‚ (¤r㈎Öî·Y:¥]ãõ^›Ü\ëÃý…„§]újx+ŸÁl¶òl¹ gZ×î‹ýÒk¸ßÄ´Ê÷•A9¼¹ÿšî7aí`µì›Áð:JÖÆÚ™î7á|ÓVxŽuù’> [÷Ûåpñù•:Î5jž¿Óývm@oáÞ’漯XÓü†;DñyŠæ‹_oéãùtèÛˆR®ó¾è]VCá7›ûÙ–73^ï6*|E­cÍã¶ãƒV°d=ƒWX ³zŠÛζžØÙ«™^Eyîu[øXöJŒ r”Z‹3u™ßTÿPrÏxçó’r>w5·¼.»Ö[Ø¥©nOÛî¶Jl«àQ€Hôׇ½Öp[=RŒË¸€PÈt¨ÎÞ×ýfºùRæÏ£ý×BàËñÝ\Òéc=K™ië~ÓÔëQŸ‡'¡Ž¬K/ÇKÔÖ´ 3wB¬4j¾¹/Au²8Ÿ÷¼F*ã/2[÷›æþ$@–Z+;wG޾/QÛƒAJ¥6Óô\dƒÖËÉ–ã%6ÂVnK\*©_íç]Ž—èáßÚøùò ¨Ñ}'pÄåx dåÍâó³ã7Е¶î·Íúæ*qª¡”úÑÓÏIÇK9ßwJ¼³l¼ty®ûÍz˜ää}<¡l¨¡Mpr–ã%šM!àNÌœÒ.È¥“ë¾/‡ÃÆWxƒsXù#bÇKÀcÆå[ø“¨zÝZ[Ž—`™mr³î¤ël“F{ÈñÍÈ8òK"ìLB·ácÇKÐÑRŒ–9Ä…ž–¢=×ý¦ßq>½W?K¶ÅFù/—k§¬@± 5÷ÈM—ã%³ƒ,³ 'C·À@–ã%ÐϾ…›¤wacïΗ}ÂËñdY½æ--|˜ðûEÏër¼d’AôíWSv·Ö–ã%³Q¤#¸3¸³0³Ì⹎—L¼mÕXZl1ëoœ Ù¶gK¢íÊú¦~ñƒ,?úÑ—ã%j®ÈßVkˆR¢&¼/™P¡aÑv£žMê /ÇK&!R 2´8>êÝà½.ÇK8ñCáù…<'/Á¸‘"Ûœ?PwzºËñ’Ù­°\zåf·vÕèQXŽ—ÌAÂÆ(}2;sœ\¿Ž—LƒwrM^ÊA²=&Ö™ã%õ?¥Ç‘ù1S/‰|~9^zÈ©4z29Ê䯴/A¼B±Ä@ fnGÞCŽ—Ìé÷P>wßÑ9Ó-ßÁý69¬°ÍV° ¤jõüæx fÛâL•Qp¹Ëž«\Ž— ï…ÂËE¯BL^1ã(ÇKæ2¡ÒÂᄾ®îÀ=—ã%“sŠc`¢iXOñ—¶î·mÔŽò®a6_َ̦—@¨”ýz‰sIVnO[÷Û!.÷•ÞÉo–Œ‚O»/ü~â˜^»,QGߎ—Lñ»%Ÿk÷Æ=¿/Akù­ô Ð waÚºß..½õXòÌõ®¢.²/A°l°ç…™B³ÂÖü¶¾…L`IâQ‡š/kÛŽ—,@àwd~ªâ)ý|îuÛÓë:C.¢w ´Ç¢~±/QÛµy¶Ç÷Õ”ƒiZœ©ÛñrYŒo©if³3\’ÝlÍo‹©žŒ]{2IEùcÚŽ—¨-uþ%5¡0¿p¾p¼d5†€†+Ö¿ãí·íx :˜pœÂ­ë GóÞÜŽ—¬FQ‘ª)©é—t` Ûñ „%¹“1ø„Ôßù¾î7¨"LRâÉMY•>ò;¸ß Ò®:#“’RácÇK0'p—¾qj||¤_³/YÈäÐ#^6Ý¡ñÛ/Y¸½pIVìŠJÃ-¸uÛñ’Õ÷(E<êá5Îòͳz;^¢yý®|OŽÁü—k:ÿö\÷Çã”ú&~)â«|÷Û Ñ->Æ”ù–íª°u¿ èkhÀQâAŠßù\÷ÛD#;8.Ëú/P’“x_÷Û¤Qôg!ßÄÐe uñÍ/Aå ‚£œ¿‡¹^êklÇK4nçÜõRwjãpCp¦·ã%‹’w× YzF…//Y¦Ù2K}ó°SIz±u¿ÙyŸüÌ*b~2¾ümëÙr˜o5ödôÉçºßôdŸªçHTÆ}Ûñ+Áj؃/ŸóÚ²{;^¢q%DfBCmç–Gu;^ÂeRkîÈ/ØW×󹎗,ô¼¼™B÷mð/qÇYâx ”y! oslßþò¹î7¹ãWgæ!?>ÁÛÞŽ—hÜӉᕸdQâ±·n;^‘¶fdl¯9µ o>×çQYñ¶ÉûB¯7ŽN[ŸGõx"cä=϶¨ å;œg‹F‡^b{ ;e]a+Ï–lìâ Gcþ<˜—f ¤ u½U4ÂÈ0®%bÚíxÉæ@ʶjcg?äZÌÛñŒ¾ÄbùÍ /'IÛ‚mwÛµðJ}~ƒÇlåi mÇKvcÇ):‡ád™a°/ÙÍîØÂkñÔŠØ+爱Ùb/(5¶ã%ƒ]¾VµKõøBò•óɶã%Ý!E×ÒÆa"íùN~y¶hÖL\}€˜ñ§ëzÆ÷u¿ Ž–­õ ˆ‰´76Ïu¼DÏ öþþ$´JAGŒt;^¢ë‚¢ÝkƒVÊ£’Ïu¿-6fœ¢…¿¬üñå¾p¼„²jhD¥~|téµ5÷íx‰¾ Öä*Z׳F?äˆûØñ’M¾\›_bx¬}2•¿Íý¶ï?\Î’3mÝo›šþ³hëæÙT,ˆ{Þñë«k§è#Al±½Ï5”äáMÓ‡ÊzØ:^¢:õ‚Š~ ÈÃÀ$—ÛŽ—ìCí»}³Î3R½¼/Q×Ëy³í<ÖÀÈ<6üæx ôSá¤Ð_G y¯=ørÛñ’ -ñ’jú\ÓFôä;¸ß.û¤îÁA‡´—÷écÇKöå¼ñÌý‘£CÊN²÷wŸ7·D¤z_ *"Pï Ï€èµPœëdÜÏÐñÞŽ—lÆæå|8<ÎÝ3t·ã%KçzÞ-S£Ö•´NØ6·¥+zÉýb×:f;^rØq'•·ò'Z 3Þq¼DmçzóÉ\{{Q÷°Ï$ ¼„ãž©º¡Ûñ„hBùÍšæèHËýæxÉô9ÂÔ癞þŒ—r_8^Qÿï ‡ç=4_K½½¯<[¶TÓ&[Ås}Þb'{«NˆØÀ@BŸk;^rPy©ZS“å0ÄFQ‡ÜŽ— ¶ˆûFÑ`kÐbNÿv¼äè}±_“âÓɹœYXÅv¼­gÔÜÊœL„äƒzxÛñ½(pùö›w7&>Ž,kÃÖý†dBæC,Þ‘¶î·Åž¶Ô°BŒT¯õ•Ïu¿mö“ç]HM_r$›ûmã°Õ{¤ôÂ,~‡®Ûñ’³W/ÍX¦ ˆù:8}MÇK‰œ7÷̵¹ç¦~ñÍŽã%óšk}hR ”ËáåÝÇñõ/É¢qw0ú î‘x®ûíptë(>^Ƶ\ÁË<Ž—¶·HögàrXølwŽã%G83ïà'„œ¿ÍýÆ¡ET =’Æìù¾î·Ë9£ÕÚø" *öÐq¼„=¬8Å[Áý8Çñˆ*³'ÿê{…&5m/}¹“ƒRxþ^ÎE<-m›Û²>ù6¢ñ¶)í÷ÇKÔ @լnj¼‘%ZØŽg‹N>)5´ëÍßÏn‹^Ä–Z^s*8.wäsÍo¢75æ/y úÍ€ñ¯À¹Žã%èÁÛ)˜ÂûM/̆8ê8^¢iÖ8•ŠXÎ G_ؚߤ“H÷UœK(E3ƒ x/A¯ZÍÊ™ŠßÍÜ6|áx‰µ}þî‡D5í<™(®3ÇKÄHÒªˆ™ïàx‰ º¿QbZ;¢fÄFÇñŒ”ElÔÊy†ô5”§3r/Á˜Ù¥¿·†1Ýx_÷Äzp eÍ}Ìí5Äx÷fìà1µ?ÖFLœ|®ûm ê«`mœEîZÇñá¨YIþÃÍÌJÕ±&/ &@oSÉõÆwŠÎ_ˆu˜íAÞí wã'?¥^}/A_µûo™Áa°SÜYÇñÑ5µÒ[°Ë?úMã%`‘3òÖ$ÎTªÀ€ìûÎ>ÇKÔþwRRï˳^Îp/ô(ð´M®æ´ ¼‹õëx‰&[YýÍã:]7mÝow˜ÀVö\ath$§ÇKÄzŠÏ-º¬,‡u‰™ÑÇñ\z§ò7g -´û‡/¹&¿óK“äZ½;´Úã%÷3 ¥ôK£—áGÜÇÇñ’ûI‰3•=ЛÇlà©Çñ’Û²/ù8‰¤î ÇKA¢"P4ùiœZ>Ž—\¨ödâÁ\¤O“M[óÊ*«hX!wÚûbç;·…,]˘ ØàF]0¹ùÇñä€eôäáé1À(pãx‰¾VŸo†¸×c? Z~3ÇKî´úq™µ…!”_JôÃÖý6!š:‘\N(Uëv ¿9^r'‡~LÉiÓêóqêq¼äNtÓÞЖG€A¸ºóÜo‹Š)ëä¬ ÌË¢„[œ©Ž—ÜE– }.}½AùöW;8Ž—`R‚¦²ÖÑ,{k/Ìq¼äõ×/'Öyæfë~[o¸É]ĈVä’˜Çñ’kM9êz‹ŽX[ß×ñÔ{M=~}©6R¶î7ë‹{@Š$Bîß‚Ct/a¥YuoÇþu:^¢i3¥Ì=ÛÜœ‰GÇKôf·yÏ‚ô XdÝ|_÷Û1.U©;íËòÒ žÍq¼œh£•y3¼ï83lÝod‰ÜL|ã«·¨ùÇKÐeÔÑL•ñ¶%øyV;^‚‘.¸7{ÕWþøÍÒÇŽ—\鯫8ežÚµYñŽ—`Nì¬u½çkM¥­ûM=Öʼ/Î ¸'…­ûͤ-¾•{u=–â›9^ÎZÇÛ­x*Ç^·7ì/AÓ*´‚Zôc†âƈªþ¥ßˆ—À–|·=ê¼›>ò}ÛBÿWŸü¾uýlÁ•8ÄK&=p€Î{q—úC¼>¸ß)ø'jÿûx l7b®^øˆ¨Žž,[Á¶ýqá£M™Þ‚™“:®7W¬â%°¥0Z+ü‡1Ù¢ž= ‡x €4á;Ðêµ[(.¡&ß—x A\Ü;î‹óómà­…Nï÷›µ–¬Â—C£j«üõ#î7=±ßVö…¶Ï„¼ƒÏuä<[ˆ•ô[jù›ãàO®_q¿Múɹ— ÎIJ±Hö\÷›Þ$à÷}y·@^^ëï€ë~› ´¼ QË\¦ù×ý¶:çM3d"jÿ…ü¹î7¼Ý›/íùÆ`v|³ë~Óq# KÛ)ñN˘àºßx ² WÒpˆ3ž¼î·Mâu+|¹ñ'»ÇsÝo›šP£`LbÚX“×ý¶Á|mɳV0!À²~¯û uHÔ:fÁ*8ÊïfLpÝoÂÚzžmMt®¥”þ_ınË!F½hµCUpÀÛÇò¹ßŽÕ$zá— 9F|çºß á†Ÿ÷…&ìÀi3ÏývØ|JßÁá´»o-Ÿû à$>æ)¼x ?úÓÑ’Ïý&œ8¥Þ‚fÎûö¦=×ý¦iéþ=o±¡=àõ¹›­û 3<3$žWã…­û±BöÄ“¦ƒ`2èk°u¿]˳ O¬F‚gÛÌoÜÀŠ{ÑΛKI,^Zs[›Ov?ãxk”÷Ö&Íü†Þ>ŠÌ¤žr¿õ;i;ÜÖ‚ÒUûn?›ß½â¦Û‡iÉ#ÅLBŒ^ågï°ž-†¹§>×Ò¼Ðú £6.m»-u´²—vA? œœ+ùçÙÂCJ=kùÓ¶æ·fK_9SõË¢ù-uQ¤]·à æ|äó kr‡f²t÷Û0‚HÄrh»„õÚ› Ýý6ÙO¶k?¤AuÙç#Ýý6î>b9„Je‡ôñl…z¯¹7ýšw Ýý¶ ó/£ôCjͱ==mÝo I¶®Â¯Ô¾6‰ÙUÒÝo­sFpጠ‹ð9öEw¿mr}df<)—cÓdæwp¿mPŒS_™ü‡Å6–àIw¿AU„¼Æ\¿“2FÉÑ’ñ=Û…A`¿ô'q–íÔ¸“á~;,‚¬‚á}[aë~;ÌMÛ^µW¹!„¾fî·C³/ÖÎB\Ík!×úp¿iŠ@³pY'úúk¬,ÃývHØh…·Ñ,qÅ÷î7áðˆù8D¤½,´Îôñp¿ `÷v W?T*.Cž-QsþÅÁŒŒ‡ëQ“á~Ó8ŒuÓ‡™j#x2Ýo6kö7¦;{ŽÀÚdºßn3âê-¼í˾à`Èt¿]ÃåvéaÒo}‚ï;ÍoýãP«+‰÷a®ÊÂôöÓm-Ÿ)XÅ…6gŽv„ír[†÷•Ù2†ÍÐíi~Ãö–—¯×‡È!Š•Ìã¶õ¡ÑWå—pAä¹>Íox%)ân<…Ë^‚àvȼnËþ¶s¾žþìÆ9|±>·%¾øUŽ‹\“Xˆ5¹šÛ ¢±˜w‹9ƒ6VqEN&Ëü†ðõVݺÆc€Sm#.Yî·9ƒó\ë”ÛD^ël¹ßtGH™qò¼øÑ‚3zwd¹ß Bu!Ýk}±Ó35%e¹ßÖæÇ,:œ[K·Ðiå~[–”YEó`(ç­ïà~ãâ*s‘¹È$ŒZ‡,÷›ÝÉõ€œãul<ï¬í~;9h»ðVåÞöÉxg»ß‰¯oôQQÞ+χí~ÓÓuÿ}Ø…èÊ×í~;ÒÔx=ãŒ@ê³êe»ß~¬“ML9ñ9™fë~;¬ÝÎÓ®~ë±&·ûíØœ¶¢gnÌÅïäù°Ï³ÝÀKL aØ"G öüv¿a˜4î‹Ô<ıÃý–¿Íý&Àî—úÊ CYŒÅ:;î7Pû€‘æ|=ÍÈvô€ð¹§=Ûuªî8ŽÙQñ'¸(rÜo—鬽g]m_Î}ã~»ä&µ“g߀ȡ.³¨ÕÉq¿a+Ls.âFC7ÚG¼¯û­g1üš{Þfžg_¾8^‚ ˜½´G j½ß•ç¤ã%C/Ô•ïØ½!Ö´·6õ9s=à ãµ@Ùû^·¥æÀWòB4Íœ‡½ò¹Ž—ŒÆncýê’"AÛæ¶TQ ̵ãúJ±íÏ–5%ŸßäË¡¿5l‡Û÷LÍÙ‰:p§•±†ã%ƒ¤´Áýê Šu Ýfq¼d Gä¢Ê?!èQûÇK:ÞÁ Z[a[H Ízq¼D/(´Õ™»ÔFÂZ;Àñ’1¾€yçÐÐ>úyÅñ’…Nô¤µ2ë›ñúšië~[º%PÌ”¸q¶ U¾ƒû¢"·ör}\Mxž//»QŒ«å™*äôžä¢ˆã%è³$g/ceø~Ë÷u¿Åsg$N9hp-#Ç¹Ž— ¡.JÆ0 ]Yf ü:^48W™É íÚÅ^ì°u¿áÉAÙÆ‘å2[-mÝo׊b=÷ØèŸõp/—3wû—yËa§RKŽÀu¼äèVs=ÄöxÞäOì¹æ· Ù†c¹´°§-ú®ã%ºÙØK{K>4PÅ‘ [y¶{§(ƒñ•Mî<òu¼Ì|ø=±×‹¦xÔÆ_\}/Á¦Àå{²Qäb}~„msÛFÍ¢2#m™TÊ ¾Üu¼d‚…Än—ø´Ã~"溎—Ì6¥+kÌ:öãéšít[L oÃ0&À²Ãœì°]ÏâV¡YĶRtÐߨÕu¼ý’b´Ä^1ë¢Ïu¿¡û[YÏš“#&LÿaÒÖýFžb4Ô6hܯ\¿Ž—ÌΧôRçB-ƒ¬I\ÇKðŘeN¶Ú1Zïëx‰&ClŒÛy·LÎ9rÝ$³u¿x'ÏòuÕy/™zimpÊ; qMr†­ûmðâ”9bSl¯D¼~/™“ª›»ÌXÝg~“™ïà~›DÓ2†Ñ¸2'OƒÂ~›ûM£žädÞo+ÅñÒã¹î·I\.õ•9›] Qc½Ž—pf.ߢQÈã¬ã}/™(,¢xUfDtŽzãëaÛž-ë…¥'áèIYxغßl¶èY‰WC`÷ 1(ö›ã%˜}rгRfØÂC-pÚëxÉÄ.ÀPævÊZ­Ðžޗh¤ .½ôö}F½ÉžÁëx‰np Ú•; L7uåÍ=ïx‰1Ì/Cô ¬"Žš­ûM]ŒÃvæ}¬{:4óËoæ~Û¸6[ò«7F °•&îùëx '>¢W(1 ž_Žì…­ûíàðj³œ© I èñ¾Ž—hÜÐj¿ôV:ŠÚ‘·\ÇK&†3£2kÓÐÜÅÀ=¯ã%X¾¯é3ç€Þóæ¦^ÇK¦–ÙKÝŸ3Hqöî7æ€1¸·¸–„vÈu¼d^*ñäæäVIMÔëx ñÔ¥GÎzÁ`â÷ix¦:^¢ÿNï¼5g¸<ƒot/Ñ[žšf_™­41m¤Õ÷\ÇKt 1*˜ÂêÔK¼ï:^²¨ !ÑNZòâÞìq¦:^öØ­3˜ó’ßwf>wºmGâœ÷8^¢ŸrÿSsg¤ñ`Ü-Ž—¬iuð–{H÷)d`Vž%Ž—¬iç\©5O#’¶˜…z/Ñ@ åQÏÒÜidÚMB+í:^² ÚRjùÿˆ™ž’÷°u¿­e¼Ì¯hβ Tb{ÇKô Öe^óÇRhÏþ€ëx †ŽÎ²ÞT ¬®CÄ=ïx è½rÇ1k¶CÖáD.}/YÈìr¸"1sᦵc9^‚NûVëo£Ž ¶BŸà:^²ÎehÁVMÂÀVÂÇŽ—,q²ï-9ú„<¥”ïë~ãxÈ»JïÙ<&³¯ã%K:õwj?"óbºëÁñ’¥7ÔÆq–gÔXml9“å:^² ÒA]ÞŒ5 ŒÿfeØsÝozµë~¿‚k /¿è ^ÇK–ðØ…›(hÖÞõëxÉ" žÚBÀ'ç fÿÛu¼da:G™]¥±Æâuç}·\;Ž—XûÄ—18ô P*i#÷…ã% uAü/òô.$$uÓëx‰IÑ¢X÷+æ¢<ÇÃV®ã%Û„!NÑòÚß"¬}î×ñ’Í$ òtÙÂÔnÌB½Ž—`(ÐÌâ Î>¤2ØÇ+Î_ÇKlÎpK®%õH/ĸ//Ù ³­÷¬ÒKéÿ|‡å¶†y—t S_Ñ?9Žã%Ô¤ªm¬1 +3_öÏ_ÇK¬ÀƒÊZþ6°ÎÁSŒXÎñ’ͤJß7ãIý¼óWMí:^‚^Zžg9 µÍÆüïåYhÀz¶Ð¯¾'±íÜ›žÏô2[T«€ðrÞÚí“?­û êP 727Ýa˜õØsÝoÓÈ×ÞÔ-€L^fÒÖý6N´ÐÙwqóÆx”غß&‡µÂX¡à ‰ïà~›ÔòÚ¡§€yulA•wN‚ªâ¶(ã&ÍXn-ÊL¾Ú8Êáf»ŒPfˆ“q­ËÿÕ’i»íÄ÷ݧ•×¢ÚGéù‹vÉg+Œ•»BMmXñ/Ù „ä§Ì:Äà\!ë}ÇK6†¡B\{—žx´HÞñ´þð;Ý–ýþ ¢ÛÃßžG)Úmm¤PÑx&÷E÷øfŽ—ìÍE5WÕ°¢¼­éUØsÝoç£8Å;Et=RN$ß×ývØW×î-z ¼[¾w_`;º­å¦¡½p0ÚaØz½gj{Ÿ­ñSgÑî—ü»;¾ƒã%Š«Ô³=íG³u¿é1À¡ªEgÚz£ÚßÁñ’}¬p¿‹^ÕZ@º[÷ÛáÀÐìûZlqÀ‘ñî,t ¹­@·¯¬; HÖë{ÞÞt¼d›¶qÎ\Ÿí²Â# ¶î7áàéÖS÷‹Zb७ûM0ôüKMIöaƒï®jë~»ióE¿ˆÆà#ðÐR”¾p¿ÝZäè¸/&磇~êø/É–"I9Ux|]é﹎—À÷«Î8Á©¡=eØšßÐô')pè3@‘©í§?‰2–Ù6:Oðz+hì®ç¤ã%hÔ3Váæ#0Jù?Ø.·àZÞ%E;ĤesM:^rL¤<ô¶‘ó@Ø­å¹ãxɘ8ˆ …?y©:Oj+n»A´Ý…3ÕL‰sØ^·%¯¢ÎR‡8³IÁ=[ÇKÈ(àúÔÞ%yzAjk~ƒzh¹¥¯¹]ör½ÑްíÏ~ &†Z>Îð±ã%®e´nöža|!bœçºã%§³|ì2·wrW|ÇKÔõd£îQxФ鿖ïà~TDèE#2í8/Q[jÌ¢w6øgíiýAÖÐm!¢–ý¼Ö ®{Ïó×ñ’íiÜé½há³Þ"+|áxÉ™÷P™©©gßâHúX“Ž—@ħ¿è9ïáHîMÇK40Cºvn«<&¶÷øŽ—œImÂQf41åR‰øÁñµÎç-:½h ~{Óñ’cºï¸ËlùÜo¨ÕÉÈó¬áœ-zmí`¶ä {ø¸3Œ]eä7s¿a$Puu¸»É£´›­ûí`>z«êµ¡—fŒ/Q[|_é%G?,k‰µãx‰îêJ”»pAêµ™X¿Ž—@2ÅÁ7«÷ñàL€qó¹î7a-¨U­?*ªü[÷›p”sÎøÓ¸ø ’‘ø¾Ž— ^MÞJê°Dp÷νéxÉŸ%­ä”5¨P7Ï(ÇK䜕ÑzéŸ'0÷FxÀVÜ–ó|fáOê.£ÌŠSÛë¶6 ¯Ü… Óz±µc_8^‚)ƒ¨<¢½‹ êYñ}/QÛÎÂtÁKÐ=}åm‡mw[ðM³—<`?*|ìx‰Ú¢‘dK­3èÑ‚Ô?ßwº-U¸×M." ÔßfÄŽ—ˆåzkåùи75¶‰}ìx zVÑ%\úÉ&î1@ØùÛγ…~uêÞj,‡áèàïÄYâx‰ØØ²6Kw[}åos¿5ÌÅ•õ. Pû\¾ømŽ—Pú:.…k¹M7¿¯ã%‚65à¿§Ì1·éÔ§:^"èš+zñÌ 1à µ“›íí½…~Î(!íÛèv<û/Ñã:OYÅ•GÙò™±œã%`‚#fÙ­ÌãèÁ¶ò;¸ßze—š;f¤&Ë}ìx‰z¬ å¾Cy$“ܰ÷u¿M4¨Ä@v∗ZÃkÄzp¼›€µFÃ\ÄÄkÆ7s¼D¿å°ÙôyN6Ôq$´ÚÕÖýFhDäüê³üØößÌñhìßýèç0 “°u¿-~ËvËl;4½XÃÞÁý¶0ŠüÖ¾E 5W‘;†­û ~(ê–™!ûæH{®ûm]òVJ…`tg+lϳÅÁºîøf}£öì¶œÏl\N]WØlÝo‡XP/üIˆÞ×ãh¶î7!0ñ•³oA”¥¨ümî7±~Ü{ Ÿö³6ª/lÝo—èHðûP÷çðÀv{¾¯ùí²%­­Uz‚tÏs¤ì;ûšã%zuÏ:·¼+@¨Ços¼D·êçäž?¨¯Ñâ¹Ým9ç5æVsvB¿í¹æ·Û-Û©4Å®¥ÚN·%=g{ 6Ò(_¶‹¶ËmÙÄœi`b˜æúFîÙ;l·µF‡^9œl£ê;Ûq[6ÖIËZˆkà`Ì|_q[ãŠàýÑGâ”Ú#Öƒã%꿵õœÍáÆyÖ/¹`M ®Îº)G´s梟ÕÍñŒ)%9ShÊeHÜ…ÍñtÆö‚Ëq4k‹wÆ7s¼Ä:ÄÍvFô¼fë~Óš ž]øg”)(lÝo(ã~K}å†&›w·ØsÝoºj²J¯2ÂÔ–¥°=Ïv²¯Ì„RYN`+Íñ’;w§èqéÉ<”g–È»›ã%š¶ò^‹¦ä䜊xTs¼UiÌ£*|9½1:(s§æx &V³ªÄQd>öïÆû:^B†K½/ ±Ä"W‹¼°9^r7ë¦UC°¯bˆÏ…QÛùl©ŸúêY¨YèG­yKs¼ä¢ß = ­¬¶ó/HmÝoàP Ž*Z2B½×ÐjG7³ÛšàO`L £™PÏZ;öã%÷ñÜ¢‡‡®:´E–Ù/ADÍñóE{áR®°Ý/ÀeáìQGŸ™eغß8sW÷À©}¡ý-7lÝoè'—5ëþ˜Ç¨®åsdzE©aõ2³Tþ)NŒA3[á¦å\ß šß÷5ÇKЊÉW/#̽‚í~¶¨;õo'úGS cƒž-uz£åÛf/y`+ÍñB¥¿ð?nAáŒÊ|®û m%¤÷æc;ï“<ú‹ ónK<5kTzwÔñµ…ßÖïÇ'$ÿ0<›1õ‹F¼¶ÀHoÛeVç!?jÆÔˆ—ÀvÓ^Lì"³_·øŒg5ñØ’ ×ʼ¯c>VŸ7Ûe¶úŒXn–œŒÔÒàpªív[ ÌY´Ä¡`­öØCÄK`»HÄ?Y';;-ú¥ÕVÜvSÓW’;¾)ŒQ²°½n‹&Ž¯Î”ï¹Ø6Ó˜ï@¼dlXìU.ÜÐÁžb£Û™­û3&õE ·ƒêŠ"-î¡ÝŸ-¸•»è÷éžgz’gêv¿±_Tz‰•5ßäOØq¦îùlqDÿ&ûõÀão™C¶½ž-ùNáe‚5ƒÚÍ _l÷[çÀåo–ùêø80¦¶Ýo­:GZéaB]qغßf·JÎé¾TS,k}»ß& ÇZ§j¢òÐzü¶ã~ÃÔ\vt—z5ãB?UmÝoÛt»ÊÌý­,•ìx‡ã~C¤ úY4>,‹ÑÔíƳäyå;`…qtPÜÇýHð$¨„q¿÷š…ÀÍ(Z•—#{[ä±í¸ßd’$xS÷V_’Qiç<[ê6·¯ÄÊlð^#›ûM ¼ˆ&ø2E8 õqgÔÖý&$®Já¯ëI÷¬¢‰ûíš_‹çýxºjë~£<ˆ…냒2F#½w÷Ûµ¼pŒ©¹|T¬q¿AäýLÝèuþ‚ë®¶î·k|عkŸpeîºÚ®gË>ê¢õ‡ -gÛÅ÷÷¨%ø_ˆfˆ³DÌo tèKík“^âI·=Yœ9wG/ró|ë¶œkÔ¤ô0aøe¶‡ÿEÝl-0-¿/î@I™3Üæ¶¸[ÄžÀ(Wœ3Ô¶»­aÅ=1Ý;ÇcyŹs‡Ûb °F8÷óÛšñÛît[4JJÆ}„PH3+ﻞíb£YrþÑÿ¨éþμðšß ÏÂ[A¥ayËу°u¿¡<”‡q›9Ê·œ}×ý6&zKÍýcÛXŒ2­ûmP…ê]*]4(—ï8«û÷=[öoV}Dhª¿Z‡Ùºß& ó½p}PþØ)Õ [÷Û¤ 㑪§°Q÷^pµÏÑz?©O  ¯óÆõÿá~›ìÕ8E¯mmò®Vpúç~c#‰.ª‘óôâ¿ó¹ûÙ2_,ñ¯pFà½{öÏý6A•^êó«“öÚ‡øl…Â&?k¦q—ßÁý¶&"Ýàpìß _#bûÞÜo>Á€9¹>uhóÎõÞÜo‹=ÛßLNŽž+XëÑO¦¶î·=àИõB ¶Beõæ~# $¢¹Îˆõ _4÷ÄÚs,q£KpÆz'mÝoœroNŽ >—Úºß h Ñ®ó¡í–û¸7÷'˜òæÇ‚¹ß‚®¶î7Jk~9wã0…’~QËïí>[Ä0cd-ôÓ“h¾Y:|nÿž-ÚÝuž%ë"oî¯Ú¶gk`Ù,3£'zøÇß·»ßûX÷¬¼+î͘Xïî7±2ÃȘ@/F@N`ü½»ß®ñ¶û-½Œ¹ÎÌçºßî['|þMN|jYKêÝü¦kÕS´ 'Kù©ñ¡¶æ7Q(<]ð*Ÿõï„ߺ¸-ÚmÈä:C‚©e¤íuÛIÙ˜àkpTêzßÓ4ö涤šœ7~8ï€:ȱ&‡ù­ãÄ/ó ÃtÌÑÿ<öÛèn ¶ƒÌ2³Môaó; ó›þ7 H‰Ï ÝIÌ Û鶈?)Z y;¶Jøm˜ßt¥Ç{þšIÈ 4ùö³Ý=Åø¾U”}¨«»í0®ZÑPü¯÷á~›,¤¶ü æì}ófÌö>[ ¢£Ô,qÀþÞoÓý69|8õ*:æo¢Öa÷±ÙºßÔ£˜áUç¡tꔬ™ÏíÏwÖú2.ùLßsîÙ§ûm¡•O†T\yZ½%Î’9Ÿ-xº¡ÉÚ"gØJäN}ºß§Å¥(èd‹f½»O÷Û²jÒ*¹yåé¹7§ûm“_š$„»I•_±&§ûí@{7ŸZÛ.5¡bF°Úºß ó³ôÏcäÍysH÷õå~;œ{sû€ái<‰¸dÄ;8^±%â¿…ÎÁ)Ù³‚öö?¯‰õãÂIǬKŽŒoæxIçØ’Âee 5{=Oœ“Ž— ‘“…£^p‚‹­š¨jë~ƒtTÅ@€]±·zŽð…ã% Þ³0×èF¸/ò\w¼Rˆ"ÌÒ_ˆb òÕ´•g a¿^´…ö7m¬AÄrŽ—PÈzAyÏëMAêcpʺã% &R̨ð=Ñ,…׊ïëx õ)üê‰iï›Ïín‹æ]IrgoP…+~›ã%ƒ ¯ŒÊ3縄/´ÇÔÖüÆ$å‘©=öܬ ®çºã%ƒóñp–ž J¢µÈɺã%H”w6ߘTà¡òAîMÇKØ› ûV’ëÿ1Œã%ƒ…ñZâÔƒ—ÚBqF9^‚€j>r½Ÿ;¸³P&~øCw¼—ø,œ'èЛvži¨po:^‚ ‰=¤‰]5Ĺ/lä;8^2Œg3YˆéúßÌñ, Æ©­àrÃÑow‹ã%ŠeÊ\p›ß}2þu¼d û ‡WÞ-ºOZsKxþ:^2ÀLL±uäÇ` Ƹg³u¿-ÃÃopé)¡+¡¶î·Õ8«¨ðiÑ$4¡dw¡ã%®Ø\gq2ø©qÏ;^2cþÀVPiàÕëéñŽã%C±ªnþF‹: æ+÷¦ã%ÖØÞ´>ì‹«´ä8Ž—h>LÎnh!›0ß×ýv8X+øà&÷®Grëºã%rU³Ôs6ëõ¨ÕuÇK€#Ž*ºT€»ÑÃp}.8ؘn ¥]™ÀL`àg#ÎÇK†v³Ô’ô½¨-ëÌñ’qqc´¯à\“]ù Ò=[ÇKÈ5.Áh<Æå#ÏÇK 8ÄY±_©'\gŽ—¨-ÛJl„åD\.|ìx‰!lÀ<µÏ}q¬xž“Ž—LôÄÕ»»£çÊÚòóÖ³•ÿ™÷¥Éñd¬kÒñ’ùqÖÀ(œôþá#Ö„—Ü’¡ÑÐ$ú-ßÍÅ~Ô~‹UÞHMúÜG—Wøaï×Ïá%w“ ÒÝë3°}çÚý7Vy³;øÎšEíšãwû&¼B 42\—pˆø]å 0mšë¸{ê¼Õ\}Þ­ö¼Êñ™<ê~ÇhªÍØû„—àŒLCÄVîÍ m ç”5á%KUùLsu„òƒKÕ„—ÌBᮑÏîû©p¯öoHx <£wö¾„Ž@ç}rú^"¼V¾˜«ûâŒÅ|ôôKÄZÞ&¸¬èYÆ,-lÅgæh5á%X×3.7Ô’™~£ñ]/‘sK¸Œ1¸âo›Šm¦É˜Bµ=ª:± /¹Å »ûÃ]VàæG  /™}²‘xòÌ èÃgÄ>)¼äÆRCû‹:cylïû;^2;‹µž|lÚ1i7ÇÁ›ðŽ3fMê ä«÷[šð’‰ÁN4¤ÒlÔWëäíQÂKîŠé.0~ÌÍ|f_¿«¼ î}Žñó?7ÔùMxÉœ•ž I;ä.'οÅY(¼ä^1Ïø¼ê'1¯ç›ðô¶)<“¸‹²€^¦¯á%èÛÏ̇©ø¬H[‰šLx ¸EÐÛ½Rµ‚?ƒð’¹( gÆòhÓòÅFxÉÅíš$ÿÛ ¤¶çXx dÜ0¿“WÑfÛtù|K^2Me&ô˜€ÿ.z–z¨ /¹;r' ý%Ü~AY°9?µ /)Œ›×J>WòÏð}Rx vj\v{Ô÷^vÓvl° /C›ý¬Ì#%¦PâÎ%¼äV±•&©I³ìÄ{‡é~ç^r/mà –V’¯%ÆzÔ›ÂK0¸ð¥{5ð3Ò$µeð /¹™q [ö*¢Dì©ÂKÖG"Ræbß²‡:OÝëcá%ËWºÿ.dÜßw„—À_ú<â‰p‚§ì¨q„—, èìÐÞ…?Ã0«"_“ÂKîUƒ\ìßà%pCc^‹Ê‘ûN ÖA`»8‡„—¬J/‡’<è ¬íø7$¼dÁùà53…k4z½§ /Y˜hÍgtg0R#Ç]xɺ@vd£&ƒztÊÛûºð’›Nήg|úïÉ‹äÆ*o8bʆ¾=Æ'ü•–Ç*ob“{Ïxg‡¤2èÀzìx±ÔHJ_3î×x3 ]x ü¥¿¼—@§ uá]TÕw½XŒ5á0…æ+®oc•7ȸ“¦yS '“즼uá%k„0JžQ /íòw&¼×5û˜oú¡ È,¼5Ù…—¬Á3À5Âð&íãÎÓ~¼±ÊÛ ÎtàrÐ)Cõ>™7VyèC–þõ¤ßWHûây•·a@Jâ~LƒpgPÞ¦ ³÷¤A¼Hw®>KÐ…—`/À%/ÍuܽõÔóaº±Ê„Fp±(éž ”ñÔ»_,fS]Ç…”ò‡ãö]xɽÚS‹#{tÎèÎXëÂK`F…1õ7çýCAspîW^²Ì-v®žsc¬8¦ /Y&’0¿™ðŽWïvá%k5 [¯•æMa÷ î¡Ç*o«³¥µÒ|7ýÂðWx¬ò†éŒ£goÑO;øà]x ¼¾I¤i6j€{9Ó3(o{4|C'õ¥ )SÛûÝ]xÉ¢MæÙIw¦bèÿ¥û;SÞŽÍ‚·¨çqïÝÎ÷Ô.¼dS$úž‘I÷–zAè§¾g^²iÜøpð ÷é¹½vêÂK6ý ¿ôK5_Îð¾S^² l–¾ž|lF#­s׈íŠ5¡¯c7ù“°ã‹ýAxÉÆ6‰{j|g’KåÞ÷ÿ`yÛõ @ôiú²ª >L^B^´)ã.w0Nµ#¼d›HGÖ(ï¸Â£Iôjÿ.¼Sùœ¿kæE`Bû=µ /Ù³ÊÁ‹Ç]a§<竼5>·Ý 37hÑq.¼dSè|»^ÐÿpÂ3ä>îôXå­SÔl¨!ËGoš/Î,á%¸.a-©~k´)>gÙ…—À©¼âÙG¶˜väç¿«¼ Èå¯É ™Á1vOÿ]åm@áô™¼Á¤½Öô™•.¼¶cM¼èCn t¹æK^r9š õ¤\(ÂyáïWx ,œI@,©‚Öýßû„—ìYp7ŠʽÃLôpvíþ· /Ñ “„ËÝã‚^Žsuá%÷ zŸø†:®ß_[>KÐ…—ܧ5¢xxÿ”f*ë=bÇ‹íïOs(›ÁÕy]xÉ](hvÒí˜ ³>9'û]åmÑ rÍ4 3©®ùlp»_,EÔ’.ög’3ö(á%›ûÝÇJ5$g5B'§ /¹ÿ:¾Í™|ûîÚ83ZˆUÞ–qÝ¿žê€nÖæþ ÂK¶‰ŒŒä‡²+=Üö‹‰U Ž'ÑwOrȃú{^Bç|Cq·'–…¿Í÷Tá%› Qò¾œ¹ìpýð¼ /!®‚Bi'OúrM¯Eºð’ó±/Ò’/í} ”Ÿrí.¼—ÝÉÇîLáܵC¬å;W毳 ÏvXÜ«…— Õ‡¯¦YOL&RWûí“ÂK0]>µ›§—ÏŠýLx f ¼2àçÃyé¹=oÂK€€Ìq]Ë ¯äN‹ßíÏÐ_ì)ÅJûΠýÖçµt^rîqŒèçІþ/hóÕ{ã]x ®‚4C]IßpVM{Ÿð’u¨7HòüúûÃõ˜ºð’ƒÛb‰r_ßäï5wá%(Oz˜ËH£œþNÛs,¼”^#Ò¯ |ïãtá%°K %z`³s^äá%]x ZT0~Ê>bPGÙÒ¿±ÊÛ-Œf\ÆÌ>îs½¶.¼ä@H3z¼ƒgîçߦðX>Ñó&ž·pÆù&¼änGÔ«ÉwgÒkÎ}ŠQM*$ÃåÔ™·]ƒ¢ /ª1´c6µ€»‹vÇÂK½iR3¡º+ßä‹^‚2"™½q&N£Ð‘õß^‚‘-êô¶ØÆ5ÕÂK5ï}=i&ÛUoñ»ÊÛ&7y%ŸŠ»wƒŽýLx Þ㈋õK¤e²Vü6…—J€í7a¯›öfÆÑâÚ!^‚bãñ°/ ÄÚ-5¾yâ%7ÒQ¼i&_Z“Rò^]'^‚Øf¡ÜûîúÅÜW'^‚ØÎÖxÂ@@5æZël/Aì§ÁyæðÃG㟈-k<¼/añ ®Å8BÞ¾>ˆ— – t™q×Àáö373ˆ— öpö·&mî Ý:·çCl±'¯`x‹5Cñâ%ÀæÑkÒEÃJü~ü”70úñ‡$ßß{Ä®¤YYÅ‚W|Ò¾ÁÐkÀ›ˆUÞ:gH§…Œ=„›4rh¿{^,üêJÒ3Ÿ×Ä7äï·(o\¹2¾>çPBoeå­kŸLg 0¬__EyuФ)õy;­ã«ŸC£´‹…’ßœõ¾ €"¶¿X€3ágØ'i÷âï¬(o䙟t“`¹Wƒ†ŠXåm ,+ÕÝ÷ПðÂKÏ«¼gÅýì$žXÁ²ì¬ c•7C{&n~3;÷åûï(ÊÛ¢ËIüjL‚A¢É1èQ•7;$}Ÿ´ÙCÝæ§55ªòvwIÎF%l›Nî몼Qwü„.+>•í%8D£*oävœ6[ò\À„ã·|oTåít#¹Fÿâ¯=쫼A¡ó™1«XáZµ6ÿÛ,o¸Aµ°’SÏÞñ K±ÔIß ƒ^íó¼'<ªå­N’Ìú0 ¯ö”ýwbi¸¾ãP$ñÍ·O±ÀÄöNg÷&yï=ìÑ,oü< ËvJ/ô`ŸÏë­Š]4°ø¢Æƒ©½íÅ~×òVgV‹ý¬Œ>AðGëŠ r´ä§vßîÀÀëùÑÆ‹¥OÛˆz•Åx«¼µÝ)ÌwDríAWòo¾)oýþÙ¯ù€Øx0øúmÊ[_¦•jÿXfÌð¦¼a.ÀZª ùE͂ە7H&gü ZÁ¸lcGôXå2e%¸I篺kÔþÖoWÞ&ÅÙjÖX‚Þp.]y£ßç>_|oe6gìï¡+otw<¸Øà€f;^,¶¤o%¥A)çÊób0VyÛÜÄGâD‚Ý/Þ~w½XðlFÒŸÐAœ]yc³í¬4?6úÊsî£+oghéÓ+àùíµôÊۙ散Ö+ÝüâÞ7•·1hÇ—fW#çiÅù6•·gg™|£ØP«&¥Ä}g*o÷$iÙ3ÜœÒ ¶ßUÞè‹2!jé:ÉùóàXʰ6ÌÞ>y/ëý‡«6–ò¶IÄÿ2~vo­Ðôsý¾±”·Ááû-G~ă¡ï;Kyƒü0wF𱱑äözãcYÞpçƒFsÚÈÒìékg{¬º6µdà§ù5ïÍŒ5Ël&_»$OÄZÞ BM¨u삇8pñ [±˜…©Þ€VÄâý·ùÜ×XG±(»[î±Ön2;Þ›û{±÷ðmÙs|.ZZ<.öØE±äWŸ¼ £éúU±U± •·Ì í•7žæsÍc[Þ08Mƒ•4îÈo+žWyC÷ óÀÌqÂã•;Æ4¶òV':&+ñÄaH&:®1¶òÖ8Xäž»,{îÊÇvü®òóŒÈÆ7Ï¥Imoß϶ò6ì+NþdP–myv}låmžyØwÎq+v~CGy›˜oY_IØv!5ºGít”7ÌÚóräë¬Þ›«ûCÚï*op–E=´Ï·Q(¼ùï*ohݵš0G F;$«¼m늵àGá:°èGýÞïQÞ6š¡%|ê_ð(ðÈáš^Òàé þcš!ž•9½Cx XæxÚäii:Øù¹>Ì^Ò©Ùú¿¨M+±Ìg¡ð’ûµQ›0Ÿh…ÛyÛ(IrÂ+÷wŒÝø\þ^#ÜŽ=êK^=úbMá%ú\q8˜®ðG^s%¦ð’ë÷ûZ˜ÐèXÅö \Ù{¡)¢%Fsý‡)¼DÔóg§™¶fpÔÛ§ð’»ôHe EäøÃ^rß"È©cfÌ|Û¸T¼‡ýb1˜'hçš>R÷ ¼áp “>ìp!AçÔç$¦ð’ÎÍoG.6Æ4?ºÅ¼µ>…—€êŽ9…4£–Íæ±ÊÛ@ ç8†“:ÿÁÁ˜ÂK`²ƒ¹¯™ænõï×ê™ÂKhcŽú6æºí%FÕìŒUÞЇ„¨]O~€èv­˜©˜ÂKúìäÈÖàbCKíÂÏ ¼ ±¾’ùö€PZ÷«¼a{¸…þÊšÕL¼ü^Ò!ê ò_ªqØ¡=Ûuz§ðÎî⼈}§ƒm÷øg|á%˜å.Y+âî;ßv¾SxIçNRã^Í?P`xSxI§³Ä?t§½_åÎõÛ^r«îð©†ÆF=Wò¥½±C±Ð_u§³e6ZIÕxS±PÌüò¼ÿÝܨ5ão³¼ ªÞÐÄ9Å×ýÏŸÁò6àrF?Ô¨q`y$_;ÂKî…õü—°âû½Cg¯Ç:^2ÌŠÄ1j<çÙLá%ÊhÀåân3çý=ÂK°EôåbïÛ·¨|á*Sx @*jR§Þ¢yWŬç^rÏzb¥>ý<ó,Œ3@xÉý²î®Ø^ØîÕÐÛ’þ™=ÃR¬ÕàÖ¡±OšdüîVlgÁ8²îG}$çÐOá%wŸàE³DÍ[9/¢95>ƒð’‰Û"ÝŽ7ŸvaÍy+Sx ´úîý·%~ 쩱޽<…—LØÝ_ LwU Ê'oš)¼tûEqÖø†@7ÂBëþ ]±e° IsãéŒÛñ³)¼äþon¡Ôªk„Ì34ºˆÇó*o³´üMsã´ámÎ¥šÂKîÿÍl™‡ “x¬ò6HpZ‰;^¨X»¦çUÞ&1­/éïÈóñsmÍ)¼dÎA^Zò~çÄöu_ÂK&à0`miVn²ßÒâ,^T 'k‰¾ÇÁ§ðâaÙëüÉÅÙë·)¼’f3Ï05”¸¯W÷œÂKî¾GÊðtøŒ¹ÎÞ^Ï´èSÍ€ ”ú|íy÷^²èg¹ÚHš|VÀõs}û)¼d5DÎÔ«klË9DSx ,‘'î qW^ ’­8WxÉMBùÑ]lä—pÍ×™ð’»#ÃëÛ=l1K°)Kq¶ï}ÂK&“ñ·%ö êØZ±§ /¹‡ý‡úI¼b Ÿ×SxÉb£à;-ÕÙ^óý /a;+óå/ÛßÔìòß/¶ÃèyDŸ—çòÚKö·)of.SÓmÚd¸_Ç^‚•@_®4Sq(sþoSxÉ™uf`6¸sΌ<ó î+¶R«²&}£Þ'-Ö|=/DÕ‰®%í] lÇw¦ð’E¹Ù2ç`\IößUÞ¶ÙßN=ËM©k×3ŸÂKnAhnIópCök/ç§Ná%·ô__˜ÅÚ¬ s}¦ðŒMÐãŒ5ÎÓ>±Ö…—õœIŸ ØÕ ,=ì)¼dÓ㯅×Ö ÄùÉ=Ë)¼(~w'½•{ ÁÞw¼¹æ)¼ÓV”@K<±^9Wç3™Sx ¬A¡ó?Ætÿ_® 0…—쎽¯î{ FßéékGxÉ6IÔ:ÇBJnù„XËÛÆåúp™ëzö¶Ö™=ÃPì€üÍ׳o%ïKìQÂK6ð|r{â»(ÔâÀ–éÎLá%àeÒãq$ AØÉÁžAyÃ…Ë|šÕXüÝîœô)¼c|¨qzòi€JåËñ^ò4:ò½_Å7ü,\ÂK@qÅÌI:È6rX·_ÂK6ät ;½[‚ °5:þ»ÊÛÙ7“6É#sö–ðl´ÔâNÞØ ïŸë}œ%¼w¾Ã_J÷¼ ç­,á%X ¤'W zÛ¨ç·?ïR,;Þ›A­w?dH¸x–·Ã{jm½'¯¢EhpÄßv^,3AX;‡zº¾÷-á% G¡ œpÄ:AXÂ!Öòv ½ BaºWoÚ‚Îô»U±·»ûä<Ù…®'¶„—œÊ!Ç'ÿ+v¯fCVûÃ^r÷e`º#q8ï•7“â8Ì^‚‘Aê”í¤‹ ½bIÿÛï*o"ØgGÿkð𼟵„—À”â Dݹhµqâ=(oÓêîÄ'øz¥µX‰XåmRÖ)¾ ô7;ø­Ógð–ðlt0±?¡·=-v¸Îÿ^‚¯¤šk 4ºåñ / ƒþEòn…q{ÿ.„—LË?š’lMŽx^åma†tמxx÷j…ÖƒóÏ–ðÊO ïsu9i;z€Kx hjÔ"ˆ9ª²Úc‘·ï œ°=ùè‚»Šßõ}r/A,…ÜVÂíIÍãì?ï±X0+¡q89ôöøŽcÛ‹xÉ¢ŸE“¿Þ¢µMóšl/aÖî+ùó.è‹cÎÇ¿Mâ% ~,Ö_Ü/žoþ¼ÄK}Ø@©× /êÒ¼6]ÄKnl£aÙÙ—ÖôÁc=/A,Àœê\*jJ6âè^/â% ²<±NÏhÜå·_My#g¤Í‘t¼ g[ãÜ\My›¼¿~_:cùO%lpµóbQ_ô„W7`ÀKüývåm’¤íœÜKîEjeo°Õ•·9m>+p‚=Áš^Ëg˜VWÞ¸N¾ü~»@%<¹WWÞ€anv$½Ãë]ñ3 +oÍÂÐs&ÆyôZK<ƒòvqÂ8d§zsŽayŽ»òvÌÁ-ùžáŠ8~ß™òFó ðz¯„¹Šï¿ÝòÆÚíàûJ>?R)ˆ=Šå0ì—øˆp¯‡ÎcÛk|/–Ú‚ ÷¤^mÐS[ËùÖÎnÀ…yõ}gXÞ0]Ž™•Ü7=´4œî‰µFSìÀý÷äYûAéٽϻ†å­ o \#¾¡i-#ódá;C±çC Y“3uéá â¿ky‹tÅp´Ýíìã~Øk,ÅR¬/ößs¯wúÊߌ¿My£ÏJ«‰c°r=ïl{^åmÀÜsIC2ˆ«úß6•·†SVòøkÔ; \cMåàÈléÌ‚û2J¿¯¯©¼M#g$í~tI ß糓k*oÂÐÛú¸ŸõX“Sy›ô ˆú—ÄŽÜKZSy£®ÚýÄú½÷5\?‚#»æ|±tÀ/zu¼Nàb}ü)o /¢…Æi#ê~MåmÙíÑ5gå.¸Îâ)ol˜”™6iß×…— tTÁHúà÷Jëò|á%Ð þò~†òѪÀ¿Má%›®¥yÞms–¾ÿ /T¼,»G50x²Å׺ð’±iû£Ñ"¼__;ÂKÆF-Tãî N/åb¿«¼›“H¼mxˆã2ú=ý^2P·£#Z2"Ú´“üw•76ºjp\ðmR¹´:‡h /Άºåg&³Q0ÈqÚ-¼dbÖ(Ä?Xã@° cT~Î /™v©~äNÓØçˆùçó [xÉ„§&îˆ=ú `@‡Èÿ6á%³ìB¦%l¸}êwoá%ƒ3™ÏÕÌþ0¬ƒkyC) Š«°w€—ØöïXxÉ]ªÐä«-×"…{gܹ„—ÜXààgδÖwùB>±–·{‘ìè%ÕÄ«€Õ=îˆþ /¹ÕЬ8Ó(æÐÇù^{ /™“À_‰ûæ5w®É¶ðY÷ŒY×§±QQcŸ^r_e«8{ºN_{ï%má%xíX€#ÞØÄ¢Ÿµ…—LÞûvèÕ»Î`ûw–÷M·ð’»á€¤R³?ï"ÿòsLl /™ ób”5ß«+¹u+b•7Úu”‘jÞuÿ\\G¸…—̃q¦ò­Ük6Ë‘[·Xo| /è=ßNò•kbð·ù:^‚ÁèML48Þ¿Çã˜(wÄ{ËNúAv·ŸÞÂKØ©H³¼ƒ[oÆû8[x pƒF+™?I_ðȱð’ ¦ýåsÐÊ×ã^"¼ä–_XWmÇL<įXG<Ìf /A±‰™×/Í"ΉÚ?üM·ð’eÞJ5iÖfïïÁò¶8ÐP[ž <îóákRx H£˜y­Q_Ü=r-& lÏ«¼Ýo³‚+˜î°–çòY£-¼dÁß´²¤ Œ(ø;^²Àí¼›ÁˆõðMü§•ê á% œØ ŽŸþùTžcá%·@àá˜.Ú˜0YÀ÷êwOá%›âž%Ï´UÌølóßµ¼mŠ Þ,éZ~¦<5ƒð’ êì]¬#rüQþ â‹»‹!ŽºZÒS¨”µ6&s!¼äî"è;•xÉ‚ô­@üw-o@Nš 'óâq nó^²¡O‡^GM³žÔ2èÞë8ÂKn,D|îë˜!¶½|ï/»‰ŽhÉó|Sƒ%0¦#¼äÞe È›y¯ ÿàxôûï^rßùM‰›?†éu{Žð’{ÖÒ%â$¿€ÒØŽâoSÞ&øëqÿ£UhÉUÇKŽð’ÍÞA9YS§lÔx^å  \IEüq>^å H«ñßüÅÁ-VyΊ3+zãîÂy>ë/¹ß>¯M饩@ìRky;ì3×–ðI쩯×|„—Üœ`j &MÔ{ÝÅÖyç:ÂKÐ}›1äÅÞ Æs8¨ïâ/9@µ0ö•úY7ˆ¯Íø]ËÛé•ú²%´óè_‰<_¿ÂKîÍý€/if@¥e?µ#¼Ç O©ß ƈùÒ½Xá%÷'Ùõi¡™|‹žLÇðôì¯|saó= ŽùZ^r¨_2óüœæp{õýá/¡Ol4™-s5‰G_;ÂK(—Œ¤ú“)Åýñªâ_+=qCï_Öqb¹†à!^‚X+ÀÖLzñíÜÀíñÄ’Õ^Ó þF:Ëó‚:ÄK@6m4ñVÌ[ ž°^Çâ%ˆedÕßEÿheݼïtˆ— vSÏÎg×Z0 ñÞ;ÄK6.ÑØ·gM½[óX‹™ÌC¼Æ{(º—ë™sœ$ŽRœotˆ— ¶q€xF_ºoS爵C¼„±`$öį¾Ç1¶ïðX=My¨ywÖÓEópd‘Ó”·m36_ê롈ÀK.þ¼Ê›9ƒº´õÑÁ³Y>¯wšòv ½ ’Ö*¸3îm±–7‹ðqìq¨cáçñé–7ÑhPö™¸ÂXͱíÓ‹bÛö=öÔ Yò2<¶*vÂMg§’õ=ó5NoŠ%2ørVö`öÌ1…Ó-oÈ ñ}öÜ7ôðÊW#v(¶b0®Œ¤Ý¿¡D_úô©Ømî±/Dùx½æ­[ÞJ£ï¯ŸCàpB paüîV,_|œ-°6ÆI÷õÛ•·QœÕ÷`öÏj^ÏñPÞ:ðÔæž8/ )ÌÅïëg(oú;eg zhGöxCy[›F`_pö6¦÷2·î åmSãcÌ̦õçia±ýÅâõý¡[{B'ǨÆ|ÃòV¡½—fax÷ä…ò;ñ S±@ºî5$ú6Üâo³¼ÝRqD/ÿ>õKÊ«¥Ï°¼Õ›]v3õ|îß=–±G±èǶݺ>7âïÎïÅvàà5°WLÀö{Fºîí™–·Š/ï,¯Ñé× Úw ÿ¡3-oµ“k6¾|§%Æ4|Vã̦X|ÇÓ5¡¨=†}OÄö¼–7T ”}I÷ߺŒÓë{ÉTÞf®b¾}ÈI¡ãgáTÞ‰¼&5ÒlÉ™ÊÛ¢ûÉìQgu¶ý—Ù¿Øï*o´ÞYÛmLîPÕû±gZÞînHffú†àüFGÿÛÖ÷b©/;¾äùØ€ù¯¨–å Ó ¸,¤¹/œüœñ¼-ËÛ­ГˆýsàþŒBÇ\¬¦ØEñçÄù?ð’|úà|ËòÖÌ|ª'þÙ†a7;ü,oäÅBg·ôä¹@Ã=ð^nŽå"OüùÝíx71“yNU,¾Íû£ú¸G¥\œ¦Øµ©•–øÊ÷ú‚otŽå­C`Câ²6NŸE/ôå­OøÄ÷äë >ZZεb|›ÂK0Ã9á÷¾…ñ%´ý} /»pQ¿<æ ‡Õ"Ó¿7á%€í9ã˜ü$8e%¿³­ØU¨/¿Û¡o‹Ùפð’‰&4@©’õ'mžÌŸAxÉýªXU%}pÈ6RCÅ¿ á%¸©·'^.}‚…™fÔsæBxÉEïëÇ»ÊìîÚñç^2÷]ÁÓˆ{ „œès±ÊE|š{0cn|Pãù± ÖòÑ#ÅWôï%ŒC³¯~ÃòÅB“¯'oüö8G¬å tÙcçü7L·Îׯðዌ»r#[Cß½3ËÛ}´’.XÜKf5k]_¿ÂKÉFs¥^蜼´øÛ„—ÀöÔ¢žtdñábÿõo^xÉbݱÝšÜ/üè]’ž á%Ø¥0Nò@j´Œ$¤öBï Z) û>)¼äV¡à÷Å[Aá@³ã ^²`ý†‹ñHÞ}µ¤oc•7Þ_gðŠQwsl컈UÞ0×÷;_ˆ¦ÎŽ×ø$OÆb„„gYòF„¥ÇòïMxÉý Ø'ÛÑ[w²˜¾&…— ÷…NGêI”ÙÌ’Åó&¼dÓo¹¹ßð¾ÎæÌh¾„—ìzÌÈ9ψ¡õñpÄZÞà¢ÂÐ ý’{…Ýv_ëÂKÌ[ÉÁ=r%®@n‘Ø¥XŠ+oï…J¸áÏMÏkyÛ ™£6mi>ë|ÆFñXËÛý‚!lâZ=6·Hi–øæ…—lúj% •IýïéÎðo^²E:Jê©}ÇŠŸ-ÂKÎGÀ#k¸®2èá5ü»^‚ùã‚ Í,êÚ݈ëWx PÁpÉœHtyÑ Ý;»iŒ±{šU¶\4?/„—]¢wê¿Í²©'æ{Ÿð’õU¤;íÂ]Î=o¬å ³Ê }̸ÓBâ¼`&3žá¼XбOâÊ ê}‚@a}±˜óн0$”NljýWx íqµÏžXhS`¯ïLx‰apó‰Ñ?àÐÛyß…—œA°RJöq¤ÌäŽýAx ®ØvœC?bøù;^º?Š‚5:ðx·_gÂK ãIÝ™èëU£xòÆ*o¢‡ÓgûPû7´÷;ú«¼ÑC¼œšg‚L‹.îëÂKð½b,3éúÜÏ Ë¿Ä ¼ØÁÆM:0…i6f 1–?°eøš$^r@& þJú©è Þƒç‚xÉí´ÆØI—ŠæEOƒØžwZì­QPH­¤;Þh™>¶¯uâ%‡",pãŽ38ÔlÕÏâ%¸¸™[šc]Ô9¯]ŽØóÿLð½ÛýeÞÕ­ƒ7AK¼„±4©žQCÞ‹zu>;yc‹b7¸3Í%qœ÷;gÇòv¿©sÅÞw £_ú~všb¡/û£I½©ŒQÞb-o¥QÛx­Œ—¬¾Þ<¤ÅZÞ ˆùÐʺjÚ üìÆZÞ05ƒ%á5zåÌ+,ÀÊñç]Ší<‡‡ó³ù€wœ#ÖòñKœizôÐsÌø0ö»ÊÛêôi›‰“stüÂÃ*ʧ¼I¨?ëª m;— \LÆVó=« cÂÔ˜ ezlUì†>Lö¼™¦%þJ[Ä6Å¢ç¸[IÇp_XÛµ¼a&˜É7Ó zàåIc Öò…H õüx™UÖ…~(Ÿå ô<Üåvôê:ëÐCö’R”·Óh…°ZÒÃÕg}¶tˆUÞ¨Ë:OâOÂMbÅ?uc«ò)åž<ݪi:øóVËÛ=­@&ù¾ì/MyÅgõ‰XËxtئvÏ<1ð«›×-¥6ÅåOóN4‡Æ^‡¿ßÚ»&M‰ã~†k2Ö¿Ÿ…¥ZÞ Š¿ó¾ÎÙ(”‘> 7p‹]Ô¶(;t•âæ8m©–7ë‹ÜÌìÔûªf›¿»;Ð]\_ÉØ ¶Æ:ýÛ¬–7y€sùÌ6pÚ‰ç4_“íSl'žzØP¿^c*Íò†bèŒ÷00½¯‡fyë0DÁÜm|t\Å¢þ M±¸¸mǨePp k3b-o¼*ƒx´ Ak.†¡Xh»­SÓ}}Mö/š¯Éfyë¨P“åjζô»K±„˜úŽ¿ínœÙñ~-o½Wꤧyx©ÐÌ×C³¼õш—¤Ì?Ž\ë•þ).í'ô•¡¥HûØžb•78ÅbŸœÉ«ˆÜÅg@WÞ öý„+çßúÓX²Xåmô³Þ‡ÕœH¯ÅÏ¡®¼-*FÝ2€Q£|û·Ù•7úI|«g½m´÷ŠuÖ-o ¥»Æ¢è÷³†FìR,¦SVÌÚ“ƒÜwâOÞXËD´poK¸2äxqÅüüÛìG±¨ ‹ë<Ñ&€&•Ýñ¨2,ow[®†M:DsQÛíó÷;,o£Ó¯cŒ8OÛì}í ËÛ-;P£ŸÄ7š„Hóy1šb9?ô%­Õ>y[êq–·£³ÉË»lè¸ÜXËÛ€´=U’F£5þ½–.Cy[ØwÀÆOZB9ŸŸYCy»»?.òvëZÄÎØ'‡ò¶¡]}+׸œÍ²r¶xË´‚1—ô®îeãàþæ§XŠÜ¶Y×}Sòsû`ZÞf…ÏÕÝ£ßÁh(íñ~g}±ô·9‰ŸÚG¡=µ?ïlŠÝ ºÆ3êã‰&ÌZމ•iy»_%‰OÎ y‡ñ –·[³.nì™õÚHBþNPæT,tÊJOx_¡VÏ™'ža)2´£ö_6òíý–2-os6ÙEj€¿ì.gÏ ¼™ƒ[掃âÛÈ©|¿»”·Íj¸¸ÎÈÆ}§`r&îKyÃÚÚ‰;l#¾~§]ÊÛ¡.JO3m 5±‡Ï`y#©vóÉ?v™³çbuÅÂɼŽä[=)Ý_Þb-o˜Ù€®’7ØùhÙ[†ÍÍÜXËÛ¢ÍZ%úN¼MâØõõ»Ö‹ÅμFÔdc°¬œŽ)”eyÃO ùÍrë,'ÞïQ,·‡‘4ˆ+v·»ùƒ»’b79å+c™õÐö÷°-o0…¯É;õEÇ!rvœCÂK–ù>|i~¨rœÝmbÛ^ì!4¿; Ž‡>dÄ*o˜Q;áþ{È—qð"¼ä~  ö%}Ú»B¡9°^.„—@ÿ§å™íò—&¤wI­øÛ,oÀ8q¯NøƒQîßÏ`yƒ,fajšG‡TÐw¢¯_á%œH ‡tz+ùz^² ŸKGðóý§â{^‚qUàé•%ç>ßK„—ìIØ;s8áø :Øó¦¹±M±|E:aLähÍØû„—læþ¹ïd½ÅVâ,ofBZœo÷u%háìkRx (Úè¿Õ4S±8¬\bŸ^²gÌWÒe]ƒz =ðá%Ö&Yéiæµ²øï¾O /9ìÛbâ"°âÊÉÔãýù*¼äLÝnçan¼U:œVÍàn±µp¶¤Ç3€!NKú÷ UxÉi®}Å}S )SF§±Ø¦X ðýÎö}ݼõªð’•ÜûÓ-õDU=Öò†ô€¤’°6¸û•Gi·g˜ŠE3¨†ÿüö3âw—b)žPëJ½ÅÊžåŽØýbñw~©ß }p𽆬ÂKîÁ‡ËîW²æ¨nÁ#½KTy[ÛìÓVðÄ:œçyž7VyÛP˜«#iA ¾¹>ƒðhvRp-t\î]Ü[ïTâ%÷>;Jl3`PÉE©ÞªÄK;y½ØÝfœÇŸï“•x cé &›?Æâ;«ÇóNÅÖâ^[{¿=´vúÛ–b9Of3™Å<"V1Lwzì~±ÓŒi-HE‘¾|ÎçÆÅv›Ð>нû½‹•¶ÌñÆâýÚ«I£ç©i±Ê›’Å¿‹J;°Á'1öžkòÏÇ÷jì}4F|:”·fâÆ_üm}/73öêQ=–ÕDZg÷LÇ b•·Ækõø.ÀZDÒûu(oÍvÅÒüy×&}}¦¿m¼XŠ•¬{Iƒ½Ì|=VyCœ £¿ß[CÏæ›¾vÆË'ˆwKß±µRÝÇüÆ*o`R¦}wð[6Þ=ö¼XúO•Ø£>Œ¬ÀZÌŸw*oè˜=S ò8œ“µiÄ–Ë­dÅ^R¾E½Šò°í:ë‹åtÀ÷ÖõÌ §«ý;žÊvÁ'†h¿ ¶çŒO±Ê[7A°÷½ýGOîžF;^,ˆg®(. ¶¸à”Õ9_,;(;î0«bIcHÀc•·Þi®èw ÌdNº£Æ=j¾¼±_½¾·Îh3µ‰ûä|yƒ)E¬Iô¾¶ÏÇv}KÁµáß¼9 ^}ßY/oÄ^¿´ÎÖБ¯Éõòfbr-ÎîÎSÒyº±/o¸…«x·\ *m©KyPŸéœçÃ=Õk†¥¼j:òÅ×t<ð‚?¿k¬ùb)¶Ú"¶ÐÏý¬½zmº_ÞX×ßñ8Õ $?ß¶ò6Ú~>¿Rô7#Vy›—¼ÕâÞw?Þí?ÿÞÎ÷by@½½Ï¼ÁFÖê]ê‹Ý4ë>~à2LˆÊ×ÃQÞ0ÿCÔÐs ¨„V«¼M9Xùޏø‚ŸîÁí/–"¬#îÊb fQ<¯ò €.ñ] ›îžÃ¿¡£¼~—hÛw6:—{rCãU±º”~þp¦n`™¾&ÏËÄ]P½Çeü×¢ƒ(‘b7 _ä­qü«¾W·OyãÔÖW¿8/€éã»ð:¶}ÊÛÝñk,@qÊg*ŠÇÖ‹¦îª‘‹û—±7îüßö)o«Q<·Dmº[¿Û÷Œþfû”·e–Ö%žu@ ¹7ÄŽKçéw#S=ø¢iŸò¶&‡±}àzv¿«¼- ˆŸóÎcj?Z­ç½ºö)of4ü¨Ñ£hï d±çÅâ¾³Zõß½6F£Îjåå $…¯Ô¼ M{¬òF>¸ˆª¥+ëàâõP+Õcç3z/âLÐÔ{ßUÞv¡€¤„4s Xù|éw•·Ýhí’îëåP7é8gº=¼ZŒ!ÔošêP“çca¬òlññ£ô]OXm v½Xª,Ö5æ#ïâ5o{xɦ0Ï~ߦy>tl»=¼d›×lkñ½.ÏX|{x ›^¦½r†ÿY´"Vy;sL¶O…—ït]aÜö^ìä;‹õ†9úoÎùo/¹>›ü=jÞN^[qìµ=¼ýQÔ…q·¿5%Èî¹{c•·ÓÈãO5ºY}ÞÕ×ïÃKÎ Ù,aAô{PžÄ;SÞpáU.‡º[PÅ*oèùc?‹\lˆrÝÒ^Âás ¹Ù{¨`øb&þá©íá%œýlÊö¨2¡Œî²¹ˆµ¼ÈÁ;{Øî\ÕxƒÎoÂK0<Œ½oÆþ ±‰eéÏ+¼.|ãiê;îæoæçE^RØ7H¸\‡9³ã˜B^BÞ×›}ød#<ïw®&¼¤€—õ°Þ·è«ß›ð’»~îàx¿‡÷Pšðë¾Eœv±URoß„—ê‰;bCû=ªkRx ¼Szˆ?óžÚÈÅ^^¶þò6y^Ìêß7Vy«¾ùНupYqûXËë‹&¼äƲnq¼¤.JðÖýy•·[ ìT_€›TH \£ /cóÒ]Í{«<]|›ÂKJ…>L®À7ÂÅè¾ ^RP áÅÇz€6x ªb•·»ºq™}o•MŠe#³üÞ„—”JWÄUc_?´Y‘æ·ýn{±ô­^ñÍÃõ³Ìqÿ^‚‘-z‘wß'¡é[:¯³Ú|ywç+þ·µ¿FØ+ŸãMx‰Íô|uGŸaï jù×#Vy»—ìÕ½'ÜåQè÷ÝXå­Ñ0ÜRºWäÅñ@€`ãŸrt^R6©­ÆÙ‚ãfæ»r^Byû'h÷pp6»géUÞî¹WÓw \¹pƼúÞ×…—”M®ÏZñ] oN2_ëÂKÊæ8Í|5$5© æÿ׌gPÞö´o(î%à¸à{ó^s^‚Ø“Þî”M. ŸAxIÙ4 k5ÖÎÝM¹ÿúyÑ…—@ ¬¿!}Cw‡Y¬òvXíTãÜ #EDZí.¼¤`¤.Cä`ÐOâ+«¼q>ö«Žµ¿ÜèÑšy<¦.¼¤6™Ö Ì‘ Ðíð÷+¼¤h‰C˜5¾·~a½xëÅRH>½‡&è¾ï/çê<¡];³`)Ì&¾Má% UP8<8÷-p$Ùk².¼„Ú´¨œö:r÷¨.¼„{ÝOb­w’£›ã]xI5ãàÆá?°9·¹ /©ÔnÂø&Ñ)ñýAx 4 +ã ´nOÜKºð’ þ&U:"÷p$ û3LÅbdÏøæÇà6»ãw׋ín*øp9rè§Ïvá%õ›¸ïìg û$ÏêÞbÏ‹=%×›ð} 'r8º /od"€vï+v{ÞÎGìýåæ2Á«@χ@Nõ~@^r_Nô=Ò·iG^ð˜ºð’[p—’û¦´Gôõž.¼äÆr}©XAt,Óg »ðôÏpèxjÐ’–È^¿uá%•î^q/¡^&ÈŒºŸY¬òVHÐ[Þ?nÐ+æ§íý·.¼äÆ.¾³´?°'ÑÎðýAxI-†G™øækàµS^é¼ý4„§NxãÜ=ÕÏá%”y…ÖïdÙõf/oÇz¯±&ï©9©É7üw•·J^Ån ÞóvöÌŸìÂK °Ä^~Ô¦x[ÔÙ‹gPÞ*ËÙc=ÌoS–Øñ.¼.¾ääDßô^—¨A{Ÿðt³æ3±7î»ÄàMyÞ„—Tаêb¬ýawR¡c /©u͹jœkæjòº¥ /¹±Ë7ºÇE!ر¼†ìÂKªµÜƒïiß° xgÂKxXà« ,<X·ù½º /­­¤ ð´$¼i¿«¼5ÞåVâËÝ»·-çtá%À ±ÎÞ>ùåé äjümÊ[#©¡øÞ}Üo«G¬òÖ&½tVì}Äx I¾Ö…—Tþ“y…šÉq^RmèºöÄÿý¨-T½7Ó…—T(ã_‚ëð=ó¿Mx üc©·Rü›7{½Ú½'Ü…—TtHh¢˜ÎÒ×܃ùÆ*o8erÿbþ¥- ä®}¯^R;OË—ø©cÙ È«7»ð’jÈwÒ7_ùÍ¿8b•·›Ð•pÔèôê*îqc•·N Žc¦_½(éëWx $MÙÜ^™·òXzˆUÞÈÙ¿—©Äá„úÃÄ+¼¤ŽB³–¸Ñ&?ð´øæ…—Ü»¡Š´GÝC»ðj±ÊÛhÄHÓþ[QÞ€ÿà¹^r·êì–êØ‚¥ýî.¼äÞö‰ 'þCÇè:Nh¯‡„—ÔÁîŽ?»wIÔ-¾v„—ÔÁ íºc=|·´ewÜ¿!á%æÙ=5Ôä‰Ç*owe£[™·bwðØ…—ÔIžÍX Ÿd×U¼ >¯ð’{e#W¢6¸&%`GœÇÂKê½Çã¬1­I®DhÜuá%÷…'ÊðpsÅ©ëëWxÉÅ¥i¤æÔ°½xí?„—ÜXöP¾èãÀ·u¤¯ß!¼¤.öwªcïEg¦6$î\“Ú>+7„—@¤Q 1úècãètß’«¼›¸uÔ¢£Çû쫼ÝãŠB ÃïQã®H¶Œ†Ç*oï!™p£yÐð½±–7úo¤ÙŽÌò–[_2„—@| IJ¼A4(¾hßXá%Ðå½/îF€ùž&”ÅŲ_Ô-Ðûœñ[K¥¦á½ü°±…íïAx œVâÙØ¹Iæ‚ïÕCxÉ5-ºàAÖŠÝËs,¼¤ÑÀø'jH dðýñ¦b ´f)¶-ŒÔ{M6„—´*.Ž—ü‡ù úF-ÇĆð’V Û^yŽªÂºm9Î5„—À‡±d41~ÞSý,ÂKšÕ±#áëhÂ+wl{/iV¿õßüÜGÀˆ­‹Ÿ´—°ðNZ'Cx ÛØO{_=^ù%¼„þè¨!kÂÁ;¥†›ï;ÂK`!·r=¿ÐFyºØ…—€Ž»Þ Ãë“«8#ö_á%7XÐ8#q0øi/¯‡ð’f5NÌ‹P_õ[÷ù¡!¼¤µfFq×(…GlÔCx ´zzêûS“V÷ÑÂK@©¤Ûˆûö)áçGuc•·Ff{M³0cÑM};¶2„—´Æ;Ìè3ñйÃuçxá%X¼ÔøRÀѵãKCxIë4‘›©Ö«Ö¤ß<¾Î„—4°ÿQ€å¹ƒ ¡}>„—Àœm¬õ˜pø@ߨýbÉÑúâN;(8cv}/¹%$ªìžÎ‹-ª|f /iœÙþ†÷: ¥È±ÒÀ‡ð’f¦˜­œt' —Îv!¼#«;õ9»C ±{M6„—´A~jßqÆÞk‚ÍN6ÿ]åmÌ™{j¶Õ£Ø\ûf/¹±‡õ|ÂLæ7t¦‡ðƒÇã¾Þ¹máºdóÒCxÉÝ1(FpÒ~‰’Çs´çUÞ` ôÈê·TâÕë‹çUÞl´Ï–x¤3b6UÏ ¼¤Yg£/õ‡¹>޽á%@Ecù¤¹™J’wD#Vy›4(Û;ϼ”HÝý†ð’6á…%¸ÆÍÛ×Òÿ6á%÷“goçûN'þëµÓ^rc±Ö×wÄ YlÉ«¼-&=í%€ÆaGûƒðø¡d¼ÄfiI#éñ¼ûÅG>3õ°1qëSß«…—4È;ãÜ Þà7át%†ð’Fý_|]±WßݰÕ±åÅr“);õP:Õ²¼‡2„—ÜÕ_ú#?jP–xÅ%¼äÞјë;ÎnxÅ‘¥îß…ð’¶Qy§›ó—£g˜žó÷+¼äÆbó#îF(¤€W»^Ð^‚m‡º×…[=F•>Çø‡ð˜hÿ­Œ T5«¼Ñ°éž~Û—¹Yz/iVÐÌ‘ñ’ÆÒ±¶!¼¤q³½ûrâm¯ý¼/2„—Àì {íijèRk®Á6„— WŒš×gÚ*¤<@uk>Ó6„—4ë;Í4_ˆ;AË<¦!¼g.!'öø‹‡qìj/±ÄNóCÿñЉO»;ÿw/°9ÖdméÎU¸D|d/X9†¦vK³›2´q÷^Ò‰SÁâ+aAߪ1ƒØã±BJØkáÌvû¯ðãrS‚70ŽÉ#ÿ6…—@|¶§ûÖä iÙqG^‘Mœ¾'î}“{'ÂK:ýI¿ú¥ÚiC¾ÄŒÂ^‚~·t‡¡ælqf/à³tÿE¿’#¨;_ì`Wã,\}Û0£¯_á%¤vâ.ü‡JåÝû$O#w/ÐÆ?5Î*lÙ¯¿{^ì®çº5ú€|zÞ)¼ƒÞ?ýn‡({æ‰Øòb+ vgâÓr :t¦ð }Ž_M‡>'õðžÿ&äõ»±ÿösI£;_ô:¦ðLÈ섽¢†\1Ú'=ƒòµ(N`&®;ºËs;N0…—€t‰fqº€KU“'ìUÞ q‹Ž½æX…Ç*oݼfš}hÔs,ÄÙÊùß Ôs!¼—ºÍîkªqx_ŸŽ—Lá%8@AèN÷~¨ã½|/™ÂKîe–z ßH5ïÄ1¶â^Ë›ÌG¤,< í¡8…—ÜSˆó;ú8ùa´|âw•·INÎÜ=õcÙo‰:v /1¾Æ€ÿ ·åðξ±ÊÛäìÙHœ§[—°-èxÉ^Òá}îgíc*·¯Iá%ü&üƒ©–¦Þf œv /ékðè¹.¬•(ƒß ¦ð’ÎnêWwôy¡¼ ëL×S˜ÂK øòD?ë2•üf¦ð’¾Íì"ÕÒ÷ˆ%ιãSxÉ­C9RœxmVÖpöXåm³ggl#·9É–#Vy;†ñø.>t`°}Gìz±<ÕÓ}»NÏsISxI?ÖHÜPtÉ8ûïWy;ìYŽ/ñ@̾h¸&Ô^ÒíPE"jÞ«}{ïv /ÌŒâÇî£;çÔbë‹¥ØY~÷=ï¨Ç{µð>ÐÄëÛ^Iv ±ýÅIûCÁÜcýˆ/ö°·wÚ[¾Ouìj /¡å3h-aÐlßµÛz±h3=âªÝå&jéð šÂK(¤äYÖ6;¼?4…—ŒMsŸÅßvw PÛÂK†á¿ÁƒÍÛaÿsžØ^2ÌŸwx} â|£)¼€] ÀƒµÓ1¹·X;ÂK–y®yé«Ì+sè§ð’Ë>¯óú½k°eT½×<…—ŒosÀjÿô»9Óy^2Jcý/~t³xw…)¼d˜˜òÊš:W•¹Óߦ¼(åa7Hg÷Æ5·Ç½Ox :¡ôÝI¸Ü¡¾\wݺ)¼dª¶DϲadkžÇ½µØòbyáN}'tÙê£Þðy…—P®âÓåiÙò*øE¬ò†6N®M+5ëqÍõžÏ^2*5Â|®uw]0I)®Ó;…—€Ï½~ïgsRÂuzÍ;…—ÜØFcÃÀø?œo˜óo^xÉ Z'=íÕßQþù^-¼ä.ÈÁ…tß1˜¬/_;ÂK†aЭ¦³ð`Èá±ï/ {'åZNýà÷(á%ãÞ¹—DŸ‚µÇ¸€†ŸMá%zñÀ^£/]KƒsôÞ™ð’ÑI¼j%fÁïj‚eÃp½•)¼dtÃÝyü¸‘™wNümÊ&Óÿ¹Ó.â«Fì|±¼ %þÎ}PŽºæ^K¥ÙÔglè~Má%÷pvÕV¬‡Eo°Ó|nf /ß[O³öÔëÁ¦û$·^°„—ŒcsØ#ö‡J }ü®±„— ^=Ý`ul#³KxÉÀßf«ÿ÷¼ÀëÌÏ«¼!¸<¦wvضªé)o˜³øÕ&¬¦C_]ãc /¯p£F¢YŠÿîy±R’®e­œõŒù€%¼d➊ËÍŽþÛ¢-ÇqÜ^2éú•Ä„ç Ž1? —ð’ùMÓDÍ<›FYÇ–ð’ùm#þ¥sxž<›%¼àÿŒ쓘%áÜýw-o“‚ _ »ûK YbÄNÅrö¬ ¸÷³­Ä.HŸî}ƒý¢¯«¼PÙµAÿX|¿My«üŽþÛBŽ)æsØKx „cp ÉóC8š¢E‹XåÍô2{æ¢,z?Ê b•·{ÉëO¼ñÕÇ›2“'~Wy« i¯¾û/ÒÞ¼'±„—ÀYº>"×e¥‚óK–ð’»ëð=¤»ÆýßRçÔûKx <<ñ¾„ÜaeŒt / ÖY‹2e ¾ž á%>™ø%Ê 1w°„—Ü»• g°÷Å¿à m·%¼d¶EÌñDÝ Éþ«¼ujœ1N0éäï%¼¦aɨ•}ÓJSÂÑâw•·N½×“¾7L/Ï<Ó¶„—€î¹ úzÃè—ÛWy•"Ø_ì¿P½Å<¯÷7—ð’É+¢Æ1lËz0þ»Ê/R§úLæÝÁÒÄŸë9^ˆCu ¿ïÔËëÜü%¼dNjŒ4ËUaƘõ–ð’{_™ä<}QCæ+±Å*o³b±ö¯$>y¡uÿÛ„— –÷¾Tûɇ€¬Ç*o7÷Xë%Í–jê× ZÂK º8~ñÉ{殯±ÊÔä’þ{u6Õ}?^rë—5ÆÄ~,&gZq\n /™f–<ã¹/NN}˜û™ð’IÉÙ»qDŸá°¥\—` /¹±4‰J³ÊõPns9?u /ÁF`§¾éÝ}OžË_ÂKn=Àbx$½«Ñˆ#6?ß„—LàI©Êû$ùì3Ö¯ðø;î¤A|’#Õk‘%¼äÆ¢6#t8ï?dò^¾&…—ÜzÀÄkv®M)‘wây•·msjk&.Ê&¼î=À%¼Š:-õn©½°o¯³–ð*Χ>΀ÍÒ`9ßs /™ØÃ±§æzs_Ùs!¼dÒjö§ÿv¿R@³·„—àÁÒeï *wßñõ ¼d}¦{P¾¤«Æï¸úLñ^²°5 ÇÑË¿Ëú:³Ø®Xj¨Ì/ÍK·š¡Vϱð8ÿáJ½ñiúˆõÄ{°¼-¬àÊynq‘æëº€KxÉEí4ÓÌÕ8Ð7ÚÓ99Kxɽ÷p¶ºÆ~V©‘7[äMxÉ"ÿùŒöuÎê}¡·„—ÜX~3õÆ)x»„—˜¯–qµÿÒ&6Íó.á%«š¨“cŽð\4~õ+¼änQ$'Ï\›Ê{Å:^rcÏÊóçïÂy»ý®òÆÁßû§µ>ÁO-%¾yá%÷\†ÎHèUàÞ·¨ÿàuá^mø–jHêLÖN^K/á%÷ü¤ÈmÒäƒÅe<} /YÍ„çÒ]nÞ3uõÑð¨%¼äþ÷½~ç/”Oƒ>Xå­Ñí«»vÞøkâ*A¹¯ /AlOºî˜Ï ˜¿á%«k ,ó5¨šûyOm /YpËsã&iÚ4֙𒅟ܣb‹–иã\Kx |áð~çN"ìÿûDÍ ¼äž}üιß÷;~´@—ð’ËY¹ö¾Cõõð’Õù “pﻋyDëì*JÅNÒÕ¿•æ¨ ®wµ„—,ª¡Hù’'À^={ù.á%w_3å‚„Ÿ “‹ûƒð’»¯Ñ|*Í\Á~±Ó Êc•7ŒÒ¾BTø/ d Šù{^r÷ò¹¾˜*вÊßUÞû裣-Œ•®à),á%°7ka gµÞ¤lyÔèÂKÖš&^ÓlÔ2Í#¿W /YËüfü> ½mZFßs /Y¦‰^ü¾‘ý$¶ðòÔLwìA:•±ÊÛ®☠.žo;¼ø¶ð’û-á€^㠟ŹæÞâw»ÇæÙÖ,·Ïoá%8FÖóSÓ캵]C·n /š.ú"i&¨Ö‚þÅv­ˆ-¼dmú‹ÔÄUƒ‚`™uÄîK=±qÒÜ—I49Fº…—,h1â&”û ,{¼_á%ð·ædgð˜Ñvx½lá%7–ƒ G¼W.úû^½…—@gŒ„·Ü&Õ­F.„—à¼bc#Ý=᱊kîöXËj‹‚¢æ‹H#ëðÝÂK¶õ[i©_Èjúìú^µŠò|®^]H/’åXÐ^rß]©O¨TÏ»ì¾ï|¹-¼dCD=ÀØû&•5ÓÞ·…—ÀÒ˜|®8/n­\€­8žº…—ÜØÉØb®’èÕ½}g /¹#‡dFžQÀ„ÿ·}n| /¹#ÛT B§oÐò\/Ù…‚¸£G/ÿè3ÔxgÂKìkdu!U€Ü¿p /¹¿²jŒ¤åÅÞL è-¼äÆ@IƒbNo×>ßÂKv5Ÿ‚NC‡ëîîñ»ûŲxŸ5Cÿø¼ná%÷Yz E ¦>Á­[ì^²…—ÀÝ”f›ñFç¾Ó\£f /¡nW:‡0Í[cùÜ?` /¹¿o„Ú÷I %îâJº_‹cyáM¾…—ÜX›MMûú!Yã^ò#rð|wH3 NÎ^ï¿ÁDÔ±(óîjнOxÉ>VýÔÇ”CÝÐ-¼dj<Uqôšõ÷ ¼žžõw= ë³5Ç2·ð’Kn~ê˜Hâsmá%h?—¬ =h„•ð¿ØÂK¨÷B”þgFwdNÙ^r¬ŸUÓ¼^³VI‹³Px FH€)œ¸GÁÀÐŒcx[xÉ1kè¹Óþ»p /¹…v¤ž¾ãY Çãþ ¼äÆâŒYÄ{Ó˧tŸoÙÂKÎgC';ôظ?ï^r0éh%ép.2ݪãà[x |e‘¦ÙÔ¶)ó¼Á-¼äÆr÷j¹JLásþÎ^‚Øý)¼ä ãvìŸ9a“xßæ^‚3ç›ÏjLz¬’–ñîGx ä#(™÷_4G±Lý;>ÂKÐBœi~žµ?‡¶#Gx ¾W€p¡VÄ3Äï*o“†ì?:ôœ§é>ÐGx ŽÝ´)’ÿPI㯎‘á%xàÌTë‘“}=ðœýJúÅ˼¯w„—Üïp'PË8ÞÝ´5#VyCý…ûNÂS?Êì¼Öïˆö½XjU¶Ø×ë4uq×9ÂK@‹›yVÚ7«¸½zc¬ò¶í/I<һ˚uüñßUÞàì’1Òìʦ7Þ7t„—€³dô¸¬é`2ö¾„—ÀQc<1§9p È{29öz„—À¹¤òÄ»Bß|…±ÊÛY?³Ê˜ËŸÇšuñ»È[}žÆ9£5BT3ž÷(¶P•,i”˜²d¥C¼„±Ôäk ºù1Z…Ø¢ØÖÇ#}G„=F^u†ò6&gVžQ ñdkñ»ÊÛ0¿Žïáãèå^~·?Cy›ÕÈTÙOx²Õçú%g(o淘璪A_=΋¡¼Ç;ë­ÜÅLʉ×og(o¦‡7jÂ=9t1·x†ò†fsöúhS€Gú9_ã åÍ@ïÞà˜ÏëvÆ*o0ÊÆf›µa©)9¼‡}æ÷bçXQûsl7f×ÏTÞö—‰•6ûK¯í¼«3•·Í¾ôÆáH=Ýé³g*oï¾[à}÷†¹ŽàxŸ©¼m ÿ&LwÞ{*ÆJ÷êñ»ÊÛ6ïŸ\ÀS Óuý3•·Í³04ˆÇßû°¸R¯ßÎTÞQŒ–ð3Hcüx ¹_,1±–0¼öQ"=¯òvu%¼Ï §MmBŸ>Ky³þÛ^Yw†#êá{–òvèã8zÖê!£6æΪ/–Tªý!åA^ü›Ý9Ëòk0jz´„вa8ÿì¬þbI~qþÙæöÒ!ÕãgìŠíl ·4_¸ñMø b§b'†ÒZ ½/ÞÃz±Äð¾•ÞÃàH†ã´gmÅrsØ+f@pÙ/À}¯^–74ãÑÏJøN…/Þ¯¯‡ý½Xò*vâLú“mï-ž]Ës3{%ßË·éOúúÝõÅR“/é¯ÍžDððÎVÞJå\GêgÝÛ…Õâ^²•·ÂKHh‰ƒ~¯gþ¶òVȳɃ”vz ùy¼•·Zl 7i”³{Œ[Ç*oä¡E7aÓþ›a<[¶òV§iqdŽ79O#½_åÍÔ4VÂ=A½mA%ü\\±‡Â5ö’¶É?{0b•7è?$þ™ùϳ÷åsê‹í#kŸ“¦Ó9öÏ ¼© ™g×{)?Ú çô P`–À®àƒ8¬]£ïøŒË}=õÑYÞã|óuv”7ó˜*38Èû®ŽJ³ä—·£¼™QJK>÷Î…ñº|å ÙæI™0R3BÛOËöåí ¼ð6ˆ+ñŽkØ,ÅÒçµ®ØïM›sù3Ç»V,zIµé|ÝÛ®ˆ­/–}Äüõ²yô3xˆbï0£¤ó­á{Û+Œö‘b—ÍÚǃŒì¹OUÞ'Oæ&MÞ€¾§»ˆ–ÅNû’¶üĸÀ:¯öǽY±õü—úCÖ£zÒéˆUÞxßþ²нÊQZ`Ç3œ»™úÿxÕ3¶|/öÐ&é÷a}–?oQÞV¥á\â#ÎÑ8Z5}=”úb9„”Îèf퀄«¼­Öæ/o¥Öcro¾J±V_Ô¤·=Nyû¯=¯ò¶l¶:ñ¶'<Òžæ·ý®òf–„ηFZÁæ¨åõ:0Žo±ð©¢œbò Ñ,´*!A Xɸ®½ IÔÏ«¼íIÒ~ÂHî¸Öøó /Áß—üÆÉIïì_ ¿ÂKŒ¡¢Ã¹>lÝÿ†„—Ü‚fŒÜ—ßûÙÓ¿cá%åpï+©.&ué5ïUÞµ¸s5´­æ~´z‹UÞ`=„§‹3`’àâ-9ÄN%ö:Ò\G7Ká±ÊYH'jÿå…³rD¬å­àˆÚM\À=ž6 õŠ¥ÈÜ?ú\¼Ù¿ÂK*õîrm“ÑðoHxIý&ñ‡]§쟵ß\¤,¶pF·&®Ï}¿´©,þ· /©†‡~ªÄâ=oÂKîbD}1ÓŒ.|GiqÏ0»VýåUôj.Y5žÁòV«i„Õü°ù õåûŽð’;Ë3WÔ9?xŸ|7ˆÝ/–k'ïÕ»=°x¬òVÙ´#øëݸ_¦§À /©•ƒ¨¹·¸?šž{ý©ŒkæS'Ï_lÒE}ý /©uKIë #| ñ÷+¼NEøÞÆÈ~îü§–ŸÂK*údø6c±òWêòïXxI5±É“½$?kï÷x^åíÞúJm¹ïHë$r!¼±ä)ÌÔó¡Þkþ]å­XŠ»ç]䄊ï¿ÂKj§^fhЄn÷|ã '¹Å¶+Zš˜<±î?ìïLxI5l¥Œ/ù 'ß>ƒð’:ÇÌÓÙ…¥™úN7¶½Xbñ=óí©üMß×…—Ü%‰a·Qÿ]û.TŒ3ø{^B ®Ôs·nßÓ׺ð’»ÃàòØ¿“zù-sú:^RM»i¤sÜ|ÂCñ·)ovϤ7xO&ð×GzgÊÛ"|¤þÐ-EÏHŒñ /©‹Þ>Óí…bÞ¢s½oSxÉe3>aÛË|Ïž\7bë‹eÏ}–ŒËY+ÉŸWxɽÀR<á ^ñ‹¹ÅÛ_l#Å)Ý劆´,b•·M†ôL¾¿˜×[1úƒXåÍôø=w ÛÂ-þ6åm›Þö ­?ø®· # Vy;e,Kš/Ǭ‹ãÛ^Rám‚¦-ÄAávÍ(À0GtÄZÞ`‚P“Îk=kï/¿s /iüïøã’ÜB0bO^}û‘tžÀýºìäfé¿;_,g´wøT˜¢ê¶j®_á%à Q¿:Í\5â;+ò&¼-‰õ;K0·’‘b-o­ðbÑvÌ> ì$Q|í/i¥Ùþôa I’ü»oly±,ÞKÒŽÞË.þ ÂKîFÇ;AîQuâÕîpc•·Bþú§ñ^f‘í¹^ÚÊN^‡Ô—#ýò}*ˆUÞ*ÃGê¡Ï´Ä*o=Ý'äfÜ:“7ø"v½ØIÝ™Ðb>7ÝÞïÂK0rµÂdÇxA”Lô¼«¼AxµSÒsä§ù½ÿ&v»Èc:1}æ ^î;ÓY(¼äþÅÄ×[êØþ=¦×ÇÂKZ£Åuuž9îF•gËñ /¹ïýÔß\÷áý›^j3šLižó"ôšmþ Ê[§¶ÅœY³ˆ !ÄÚ7ÝD,•\¿ÂKÚ!Ñ«ÌÌ¢•êöý¡/¹ÛYÙ¤p/¹Ë|¼û߃ð\^¡Q“qÚe[†ßS‹ð’fš’§e/Ô¶¿E¬åäYÔYƒ¢ íóqÒQ¼XÊfÕ–¸䲺gôŠ$VΙæyL­zìT줛^-™—É7Üão[Še>4€îö“îñÎ,ox!PÐýZ“R¢f«È¼ /ÁhÉH88q ô/ªë"¼¤jBu÷£"nDlÐï©Ex ¶zºW³î®”AŒ=JxÉíí]}ƆË)Öºð’^ME¢Ç]ùžI=Ù} Vy«ä§fŸŠ Mö|ná%½Üs-qj¢R¼º:þ[„—ÜXêJ¤ó ·ÆVÀˆUÞê¶ï-áˆÍ,ªbï^rÏÞZ’öãfã4ƒ&‰ØóbÛ—¸¬¼Zq$¹9ÞW„—tyé$Ýñ›6ãÞzÞ„—ôÖg""NPA•~@^ÒïÁÙÒ9¯™ \Û.ÂK0;bâúÜJ‘r"'~Wyë|ñs½WHŸVû\;c•·‘™4sÕ°¯£TlO/óÆ*oŒ¡¬ p¿öhc¯^Fo ±bH1aFÌ÷já%ЧðFÜÏf§ûj`N±Ô’É÷É»Ôwö¸µ¾ò&ÇÄic] ±ÊÛ nOúwâc5_;ÂKТB!º2o¥¡,+Û׎ð˜’ôì§FŠ-}¼n)ÂK žŒâ'}Cm§[›oÂK Ø[³ö#mæImrŒ´/øìNzW”™,‡õP<¯ò6çüégÁ·šùfn¬òÆDÜO7Ýí;µ±ÎŠ¿í¼ØMܳ$ýÔ½î´Ex b÷¯ÎÞ6®åö§/8Ôþ՟ıMe ßw„—tëÍìô¼òÈ…ÇÂK0ØÛÒŒ-sοÛ_,9§S(¤ÊǘŠð ö_,èkô!^wá%4dA33ß([©"Vy3‹à/}k˜¬ëŽ÷«¼m6(Kî¿('¹}b•·ÍZd¤~ìnVKÇï /yºÿêC¶ßÛëÝÞXåí°±¼³Ž÷¢×†û"ÞØúb©ë³bNJºà|ñ ÊÛ½ò±&ëiŽõnäà~û7/¼$°CÁøŽQ·‚ÇP__¤/A»üjÉܵDÎHAoÜ~×òF|pIRÏp^þ!v)–›LÌP³hRÆ÷Iá%ƒ>{ÔÌAÆ?•ëá%°¨¾’5xfùQáEY,ý·OM3x÷8ãÖ©[ ^Äç<]â´F‰8¾Ö…—àE¯¤gN:ú›¸%øß&¼dPºôÛÉ;°6zºÇ'‹ð’ûyßû$c³1ã®!¼dTãõ¤ïb€*ì}«¼U“òÁ<¨/¾j’÷<7…— ÃKüwïw¼&´÷Zñ¼ÊÛ=HPü¤yÿjÐg‹ð’{Am4Û^3ÀŠz'ÿ T抅HÄU„kŽN¤»‘ð’{H‰¹Žó×N…Î,á%7–÷õÄi¸;_[?Ï+¼äÆÂ†À=£©wèÓߦð’Ñ&µ›JèÛßÛ:ü|¾æwpá%±¡XòÃP9þÿ†„—ŒFÂ[ž›§ÉIº>7öåm›‡bÒO]Ídü 8/o$¹Ž\£W³Azþ¼¼Apø~õq^ “uî-Îk‹í<7c=˜¶üN^:À™˺{'Ï^0å˜y^2:õûfÂKð©šÈ³Ç*o4Lܧ…óJV4§ƌǂd•î©÷ í¥¿¹ñ;^ìY¿{Tµ;íÙñ¼ÊÛ-œ{Æ•1+G̲:^…—ŒÁÞí—fFåð{>ÞXåm g¹G£`{FŸâî±Êéžg$ݶe•›ðŒ®³Áž½P¥á|MVá%ð^=±1³¢Ö¦K4!Vy“(N Ý™‚1p̦úó /“䎒ö߯qi/§«¼ÁS%H‚ÔTY&éhÝXåmÑÔ5÷ý‡é)ÔåkGxÉXÔ‡‰ÙêŽû>«ã5o^BÍd ¸Y³žïáÉË Vy‡{ꈳ‚EÕô¹&…—ÜXþHÂÁï5šµžß¹ªðP´1L˜ð(è’aóö{T^2¶ Ô$]ªû§k›ñ»ÊÛ&ÎU{òí䲆W…—ŒÍé§w;+nÖ-=¯ò¶ÙŸ_¹ÿöÏŒØUÞ6µdB#lbÖˆÜÅæëWxÉ hV驟µ@ê YLÄ*oøðGFŠéîAIUÞ †1€š1“ÊŽ÷{^,š¹F¿¯žÊOO×ýÃÊÉ0¥%ÿn a+òý· /™ß q:uÒ£U…—Lä•gÀbTMbmu¼{I^2ÙO³rÔJû(M¿Û» JÖGæÀ±Í»œûU…—̃ß5q;€V¶7kĵ.¼äf‡³ž5á0›²Úî7~c—bKÁÆ1bOýŽEìV,÷åoÅwqèç>]ƒêþŠÝ¼®–ý:p¥øâ=/™4ÂÝñ“¾Æ:¶Gly±Ø£ZÂnÁŒûÏñžZ^2 ÍWOÒ|™F:ñ]/¹‡1«À‘}'IåNY^2«™µ$ß¾a2¿=öuá%p ÍýBð g¹\+âÆ*o•'k|˜gHÔ›Ux ´¸jö^£FQVý^2›ÍF¥Þ×-Œë‚ì—çMxÉeó5ÝÏ 9»CŠñÆ /™ £‡÷ žgVèttœX…—ÜØ1ƒÔh8ønIþ±ÊÛ½–£ïò,A#ϱùýAx ¼W±ó$ÌÝ´üþ[…—@Fƒ5õ ¯¹Ÿ×"Ux Ra“÷jÌIàtê¾ï/™½M\äço{dF^2exôÅýá~Øha­Ï׃ð’i3WsgÿMΩ¹¯Æ=/vU|ÇI“zrìñ¥7VxÉ€Ê}t¨ZRšÓÿ6á%ÐvÉ*ñ vÛ&ó±ÊÛÀˆUùÒLÛ½÷±ýg–ð’i8WÍZŠ Wb|ãáöUxÉœ‡Ý'i,Ð'“¾ÑUÞ&MfâË¡îžA“D¬ò6¹1gÈ Â=¶ÿÞ„—ÜØN”ð[\°Ö…ÂïÂKæýÓîú ßjèæCWrö·)o«n‚Þ=ù7ZNÇ}]xÉ\íß¼oЮqOߣ„—@ý–º‡›V™Îí¨ÂKîÆ‹Á2sïÀ¤‰š¿3á%7öô\“‘‹M¹·¸+ /™ …þ>+q-ëE÷û¤ð’‰ÝF±~=œ‚XåíÞÏZöòׇ£úÓ{UxÉÜ4Ø #…>Ð9Äî ¡›Ú³7.ÇïkÜw„—ÜØ…;Dš/¼%`·¯á%“~u%{ÿŒ9ŒvèÏ+¼dÎÏ·T_¬ŽÒ‰ãR…—L qïÄŦ†ðßû^2dƒ¿³VòŸ·ùî¸s /™ S¥¥yXæàâØÎU…—ÌC7é¬mqïä¦çïAy£Ý©‰Oÿ{Z2ky[ù _š5‚'ìòˆÝŠ…uxù‹ÀW|CÂK–õ kò1‡¥º®ñ»ÂKÖ·@4½«…”Üûõ:ªðˆvoäçn{Ÿsëªð’EOÁðƒoÔ=ðŠíQ†ŸUá%‹Tµ¯®Ìé]ÔÜðþ[^ro“¸¯‡¯ùë‡í ÿÞ„—¬Â •‘0¼”Ue¼‡©ØcÈž9O錽DxÉ=„`)å3Û¸ï Žþ¸v¨?Š-8tJÒª4ýªð«ТØZZÎ1Þoÿ…ëLc{±ðà™3ùl›Ìúr<µ /Y g]ìh‘êžã&¼¥ûx"ù¯Á1 ÷k¾±Ê[íÎË|ZjɈKe¿«¼UšO¹+ù¿(‘ÒÜA^²š5dS/tm¾_Ÿ—Ô¨Xꔚ´ŒXxT^r–F©Ò‘{ %¿Ã4á%ËfÏüžÊµ7°ý·&¼ä—ò۸律åXE^‚X´ˆ’R‰jÞkÈ&¼du6ºòÝÆ[-Ï5á%ËÑgÁ =5·ó•›ðXÝÏì«Áÿ9%ï§mÂK\FÑ\ɵӚ3F꫼¡²¹3ᓃ­j÷wº±Ê['¿¯Ÿ¨‡>*ŸbøAûC^B!k!aÛO[24Š]ÐNsÍe Êæúý¬ /Ù”Ø/½f=sÃ#ÂKnì&F¸'˜Í Z=þm /¡ÎtúÖ¨áq7^y™ç&ÆÛl~^/¹·_jíðÚ{Íþ¸¡ö·ÍËffZ“Pî]A¯B¬òÖXÕ‘¹ãUŠš¬ /Ùä<í“t±'”dcjÏ ¼Ý¥ŽËÍÈ•ìID² /t?ëÍT·Üj·Åˆb•7º~¿ù{<â?u¯šðH’[I\V(ÙW¿Ùï*oþó5Ý÷uRf'Îná%RhJœxƒ¦ÿÐ|F· /Ù@¼ˆñxxd·Çכ𒻭›7BžUþH;\«¼ NÙöxI~€Q‹4á%÷"„Z¤·tO½µiº.!Vy›ÔÜZY¯—9ò ^¬ð’ %ù_½+ª#å¾t^rc)ŠÞ¢'q·qs9ïÎ%¼V›õñçßÅ­/ç,ß³ /A¿oFÚ8Ó‡–²Þ?nÂKöâÙý7ðt;ü"[iÂK Ùãm묲”ñ™Á&¼dãRûx—´ vÉÚ 7Vy[¨r ß~3ƒ-×½½±ûÅ’`rÂC6-ý«1SÑ„—l›=[_ödáZ?±W /¹UŒkšC¹ÇÞY‹oSxɦt´䬳LÖʵ¹o¬ò¶™ã™´åÇ .`ÌÇ6á%È'rõi‰CwäÅÎþ†líL£(¢&³ó¢ /9脃£•æBA)ôÚü”·F͸‘|ŠAz)Ïþœ².¼LûäYã&Jvùý¡ /A7 ÍýIöÅÑ4ô¿Mxɹ÷vfOnØñ»Ê[g¯dÍBšÎœ«¼AmxâÅßkØÊó¦]x 佨,ÞÁáDш?Áߙ𒃠›mº+wúgϦ /á îÐ)·ª?ëLx ¼mÑ?î©§vhíQ|þ­ /áP•çSŸŒcTÁçêÂKîµ’Ç\ª»ù¾‡­tá%æ}ý£±¿=^ŸOü®ò6aœ£„J×cAëDl{±xñ-qÝ'žž×‡ìÂKp½CÍ0Ò>‰* ¬¢á±Ê› Œöt`– …ËŽçUÞÆ@tð€ÂìŒ.¼ãÀœ¥NÚy èbÎö ûÅb©_H3*#ñ”· ïùÓúHû:¯aÍuºðЖ¥z³ÃÌç[÷Øòb{2(5˜—þ›Á!êÂKŽùˆå»îg4ó÷ ¼mAÔ›I³ž•Wò~¿±Ê›yƒ­4; `3Çs,¼eÓzÍWí%wå Eëød^‚¥G_¹ì)O§Ï¨õºð¼Zr8³ÿE+”7ˆçUÞh^YÂiý­üo%æ7»ðR5p^¬Ü/Ä¡:D]x ï‚À£2?há}éN¼y$î¬áºYó~ŽÃtâ%Œ~¶¿‘trÚÛ¹Tx c7}“Ç*ZÍTØïö‹$¹ÎîÕ°l¸Oà¼øN¼±d^9‡þÞïG}ïÙw·¿m*–üê/ñà¹Â& ±K±¼Xï4—±â#¾ˆÝŠåd\ž‰¿'¹ù~ÿíÄK/,-ñ È/1 ÇÚ:ñÆâ®ñÍÏô †¡¼ÙelfL÷ç?}²>”7Óm>'Ír ²Y‹×N}(ouÐÿ8s}8‹û}˜krô[¿¤«FN$ïÕ=Î㡼U¯3§j”Ìñ] å·KÆ7·õÒˆUÞîNVcã^ͱ¼±Ê[cóK÷êÒ83ØS¬òF¿ÐòåY.¶r¿{Ôü^,ÖzÒ»‚<9ö‡A÷Y^ìnlÍ8ޱ¯û5•·N®æyœIÍÙûïTÞà¬n\ªÉèÇYº÷ÜûTÞHgÆûœ/ößYD¬„ýz3ö·)oƒŸï¦fÜ<4\·£Oå÷‡û¦{_3™‡¸ONå )ì©ÉOmò3¼Ñ—òFÂQiÉû}~ØØ·{ÓÜXåíÞAÀÑJýy:ûFû±Êw£Rvöh§´@hqô¥¼-â“;é~ÁtѸ—,åm¡³|ßgÍß&ç°½'Ü—òF©ˆ˜‡´èJΩ¿ß¥¼Á6Ï›4jîaÓÃò±ÊÛ.FÃKsÍÍäô\[¨¯ýbáYë–ýmŽVõxÊÛÖ\rËzL#ɡߨ­¼mLGŸš}åfÜó»•·=ÇþÕÈmćtˆŸY[yÛ {åûï] 5÷Xûn/HºÏàaí€d&áÓé[yÛw«Cÿ-ÏuÊhÄÝ~+o÷mb6Êïö‹^@8gÄ*o´¼)Ž—˜§¸šIØß¦¼áÈ ó4ó\¨¶â¾—låïòËÜЉ¿8ÿæ·å­€ó—<áöƒó{>ÅšÞvÚwî³Ó#Âçêú)Š%hø%ÿnàFÐDõþE?–7°Ô¾ÌÛ¦ž ÿ[Ô-§)–‚Ù?óeÐ0É1Ý~ºbѮڮ5E™¾eú0¾vÎP,/ígÖ^_iñ»óÅ¢¾(É£§aÄæk¥ú>y–Ç®¬)¹0ÞEi–X;g+–rÊïÆ{¨c˜ŽÀãìõ£¼Zµ–´WßÎïÍó6>å­‚h¶Gâ·Ïåp«¼UêGͤçˆ[®@^_Œ¯¾XóÙ¿Ðûï Œ¨'~Wy«—¦SR-²é5œÈñ)o÷$¤.JôšoÁy×:ŸòAô¢ïëÄÙž5´ÅÎ;©{[²àÍX¿ãSÞ ·„!Ãím¤ó‹Xå­™.Z d~,8‡ëìOyë ûÞ'°Ê^Çp­¿Q”·Søòü÷˜IåûÝ¢¼a 2óÌËÓ–wk´î ÖóŽùù|˰z¿påmPÒ£&ÍÎ[ƒŸ,ñ ýŪ)œpðIS¿OŽ¢¼ (E—/ñ'ï!¼$4–FQÞÆùw^¯˜³ùr.à(ëÅΖud)Š;ÊÄ*oTo¼—Ç|γÍ;W<¯òFÃ×ýž ïwHÓ—àŸª¼Ícçfìg·t½¼µx,¸Ù µRõÐ=Ýn¬òv¯œ;ˆyS¨·¾vªò†>î©QÏ£ØÀwá<±Q•·Eð™çÑ r{ê¨ãÅRÿ¡¦yÈûfȃó}§ÎK¯Ã4HM¨§ŸjÏ ¼qÞ^™q*87KužÍ¨ÊÛ"qª¦>d¯ä1¥ï¸*o›³gD_Èyˆ78šòce¨in&òX¾Gµòbçùa‚QmËÜæÑ”·m=÷“û±”Íݱšò†±_\ú“Û¤Îÿt¬b´þb97ž¾Í‰+MòÔD¿ÈbÑóž¼êïþ½ŸˆÅ*o&RW’vžtÀ_dù3(o÷~¼…®Ú½¦b&Þ}˜nì~±cÆÐŸñ¶1ž4FG;/¼•Ð µ¯ìò>cQ~ᇲ¶<š¹¹ÖÂK~´V\°O׆ÂK*-…\ÈBx57öÛ ÇÐ=çIzƒ¸YŸâ@CxÉ­¬Mcn3+h>ß«…—ÜÿÊBÀùƒ>+ЀþÎ[¿ÂKjá|löd>‚ŽåÏkyƒÒÔLz¯ÔeÀwJì¿ÂK*'i·cº˜‡¼•îûŽOá%8ÌÐ"ݱ¯C?ð|{}†!¼¤BP³Ö g×½7>„—ÔJ¡…Ú³FXckÇïöCx fñÁÌ/k~ß'-Vy«Ôeï¢ÿ@˜÷ø%¼¤6r…ÇÈó-´{ž~—ÂK ‘û¥YÞ•iÿ²]÷`/©6]ZÆ•) üÅ·)¼¤övQK3x§ ü§'C€Xåí~iàªt7¢< Z=/Ã%ù´Ý¤RóПWx äVòEŽaë…Ô×™ð’Úm¬.éät›Ñ]Ž­ á%0¡E’jÆ«Ië Mõ!¼¤‚Á‘„{ÂgǹçBxIœ-ɼíÚM¶æÄó*o÷d]ç<\AQ“y5„—Ô‰òò§Z÷ž:b¼±ÊÛ¬A)#yÐuê1ÅýAxɽ4Ü«%n„—ÔµL¤9ë6Ó9¥{ 9„— »\šh‹:p1?4„—pUãJx5‘óçœ^R7 Ʋ7ÂÚ¦¡í8Ì^RM;¯'=Ó9¦9¼ï?„—TšÍï½wÚ1à]¬ßÍw&¼¤nô7Ë7‡!büœ…ÂK*èÒx™iö‚¯€˜|­ /©8Ç~õlÆ&'gÆÙ-¼äÞàQ€•„Wc¤žc CxÉ]Ôx†Q³o¥µZ|ÇÂK*‡ÉÁÅ‹3¶Ã~ñ„ÆÝ^R­‡23qZw.á%÷¿paï½âÈ׈³Ex Ž€t ©ÝO­žî=ª!¼¤}/†‹qð®ô×å?Ïõ+¼ä~ñ4É}2²øÂ³ôÆZÞšÉ ·ÄeÅÈ!ûóþ· /iÄ5JK}‘{ ÜIf±]±ä9ºoÔÿ¨-„® _gÂK¨D÷ëõÝçgº(þ΄—´Ê¡““uè'9½5¾7á%¨“Zš;À¼tƒiYéq /¹+dÒd½$Þ6ËökGxIk$ÁgÝqXDPëäýmSx »óY·xµÁè΃žÂKZ§@‘×Ç÷‘XåÿÇIŸÂK̘hǯ÷ §zXë"VyƒÚCà‰é^)¾ô·)o j€_Z'Õ('3¾Má% K3™‰×v‹9jä¾=u /a_ü¾êÍ€¿s–µR™ á%fTXŠ÷$ö½+ã3,Â}RxIç•+Íâ;æ¼ÉtNï^‚þ<ZÌÍ@ãƒ÷u_“ÂK:šÂ·ÊÙiÖ¾Z\¦¿m¼XÞñjÒÐþ(±|6j /éÊ~ö¥{ ¼[wõžÚ^ÒÑü"¢žu ¹~#ÂKúdžjÏ<…J>bñ¼–·[¤ìüy%ü c…—t‚ºû|1/ 3L^ü /é•wÚ‘=˜;íʗצSxI¯ Ö‚s>›JœËù%SxÉ¥}ÏÌXÛ3sž¦ð’»c4l‰¿ž½S¦ð Õõ_œRûãµÙ3(oíkÞøT50Úµ¢¿9…—Ü»9ø§?ØëX¼màú^rÿ¥À¦K ç9#Ê[Ãzø¼'Á¾éáHgœ±ÂKz§™ÈNüÔŠF$äüw…—ÜX*‚¤o5ÙÉš‡SxÉÝб÷ýâ©Ø ¿àƒOá%÷$Ä{X s¤=Tæ­Lá%8{ù‚/þ˜¦™cLSx LRq‘ÏžÑz¤¥zOm /æ,æR«S¬•é±ÊÛ=$‰1Gë2÷„¬æIh±Êæ="',þ–¸Óz=4…—ô ë‘Ò¾¦ÅÊxß^ºEË5$=£mŽÊ¿7á% /ÐS>½ß[Ú²­òúÒSxÉÝ¡VÉš/àÅÓ¾¨ÆÚ^Ò× ˆkͳˆì-f3…—tÎA}keÍúE¾ýŒçUÞÖÂ&ô©5µ~¼•¦ð’¾hÜþ›¸?P[w­Iá%°óÃ^ÖäšÔø(î/2…—t›³Œš¬ÓÏr¾Òrq^ì$A/î´(lkž‡œÂKn¬yî&ÜÄì ?ª)¼“,3ÏwÌP@;>…—@ïµ'O7óµï¼6Æ3(oló&Ï…BŠÌ|TyþmÂK éÃFLò¸&Çì˜Í¦ÅZÞ`¦ÈFmÔz¸)ol%~^3ºFÕᄽ Pz½9…—ÀÀd¤ï‚ž°}Ó˜cÂK`J2žy¥ÕÇwõVúpø¾#¼ÆûwŽu"8lŽÿ@bG±¬œwâZÖi6-މMá%ˆ]¯Ijyƒ+Ç ‚¥ÇVÅò‚•ÏØ{,lZ(ùó /ÐrËëlÞïlVOïý /xr¡¾[: m¦Øké)¼‚ÈÈqš$­”˜™ÂK  TwäÚLÇa¦ð ;Ídþþ¦h¥†Þ^0<ÃL3A÷‡ùÊý{^°•0<üm¥1zì¿ÂK :UB”Œ÷õƒca‡×Ö^ÑÜýÒœGH€ú%¼ÃÐ_Ãæ¹€=£,oO^2lŠ®ô4Gu(Í9âŽ(¼CµãW ¶rxgÇ׃ðÂÕñN½ÐM_®û¤ð >í_Î<„0¿™žAy3úYÞ£ÚwÌ×Ó׎ð’ÑÍäaDÍ»îd‰Xå­ƒT¶]û'˜Ƹô»ƒ/á% 7j-Iû¼Rëï¸ßÁ^‚Fr‰K4ûþt V›Í~·¾Xê¸ì€u|ç±z¬ò†j3ŽYg„­êà]-á%q^¤¼l/±Å!Vy¸(§dqt“~~WyFÙ’4içqo-Vy›…8íª [a;ás†%¼…=’™xmZip /ôÇÙá“Év9ÎB“óÇZ_ÂKp±<‰+ñ?úCfJb•·Ió¬ …÷TÇ•—ð2HµÓ}ch†·Ç^­Õ|fa¯nƒº>>—¿„—Â@¾“& -÷Fú]åÍ${ö:{_.á%ƒ¬•Ä1\aºžÿ1s!¼dlꤻO´l+-~ÌZÁb•·mb\‰ëƒ1´Î\·n /Ûz «@×vÿÆ /&LÙ{žQ •êô>Ã^2àmŽ—™x “’‰ÁÓ]ÂKÊÇØb}ÌvÜåKxÉüè‹8RuêFmÚü®¼„—Ìïgð›ë—Æiï[ÂK€V“ Ò².k–ÖBìT,¿Ã¬ÕŽö1Þƒ×-KxÉ,çÒÝ ›–5F—ðhŒ–ìÏ€º{ÑÎʹ‹KxÉå sªâ47Vxɽø_éÌjÞõXËhS ¥9Ÿ y/¼Ï›ð’‰+L4º8Mq®o»/í^2kã\è ]wpWD¬òVb×'½Š³ÑwZÂK& ÁUK}§ÆëGuí¦%¼d¢1‚ÕÛôiý›^ðGÖ:Áo¢6õõ ¼d’€³Ç:¹zfö¦YÂKn,¹:ç$­þSß÷fâ—ð »Ä!2íhÓΡ_ÂKfƒ&I ½¶~*(^¡ã½„—L)ÝÓ:|l0:Ñ÷½:v /™ Àùñ˜äZìø]å Æ;ÀicÿðyCûÌפð@ÛâÎ8âGÊ_¬_á%0 ø”1›Ž»òòg /Á¸^ ß8½8º¿æ}²%¼äÖT0-ß;Ÿ¦õç÷’%¼dBáµÑHƒîßï /bÓóì¼PK¶¹@¬ò†ƒóÒ©ö¿GËŠÿ9b•7Š1ŸgÂÅy§Ž\l»ïØ3´ æRF®7)åá~(KxÉf³3s묳XëÂKÐðœ\ -¤vÌÅôáKxɼWÏŠ»rÒæñü…6ì^2'GlFöÌ»u¾cŸQXÂK&ñº¨ßþgý7\áW¼_åm±~;©.,&]ö9¦°„—`Tc¿bBhœ?óïMxÉ­;Ñ5Ùϲü Ý5ö—ð’[óQ/3ë Ú<Ä—~WyƒÈz I3nWÎ ;Æ¿„—LêR•/ÍTÜO¼þÜ«—ð’[DZÿeœöã;ÿâ”·;ÔF炎¨c¾&…—Ü“ü¾jSpß)aéû¯ð’Û“ ç–õM}6u /¹uÜ¿sjý~ÛåÍ›2Vx 5;Ñ'KûïdÛµ9f³„—ÌæØj¹.¤'K̹/á%˜ÿa}‘<Äaé‚×èÏ+¼d‚ÃŒ3°ø%*¬kG/á%Ó°ÈÝVš)ÞS‹\/Y™)%÷! åÓê‰Ø©Ø9øî“Nix_‰»§ð’Eë¿o´ò£ë3²nÒ^rï {¥¹Ðÿh¹‡ÐåXÐ^²Ì€»~{o[èÈîØK„—,8#£H ß’ePóp½ø%¼äÞéÈÉ)‰·²1ï¿-á% ûòÞu]÷žlÅÛ òížI¿ú:¨-Öºð’Ë ûN^:›¾#ê,á%÷ È7›I#á^Ö8 ójÿ%¼dÁ9Ý£8ÂûYè,á%÷>ÅÓ,ým°o)™g³„—,Ç¿¾cÑYWb /YÍÄ)R³˜dççXÛ^²lÊÁµ£ÏUȧõ½OxÉêôåÚ©7~OþÂûYÄ*o’ éМV_xr/á%ËæB#lý¥¿¾ ?…—ÜXôÒ{`†cшUÞà …Y‘{èë¾³„—¬A–‘4> ¬f°~} /t4^CÝI{SŽ!öá%kPjõ¬ øÅ ~÷¼Xr\fEµ/÷³¶ð’…“ï7ÍèÚœOhúná%7vò 1O6¨gn#’±ÊÛ0½ŠþN»/ašþ»ÍcÁi8QûŽ„$\c /1Fbïàp®î8Þ·…—@dg@ê@”[}÷ßUÞfÉ@“š$8ü- ‡ÿîz±à Ysë#­3¼'¶ð@{Ì[Â@Îâ|b‹¿My£2{hs›EÊÄ\~¼3á% ">¿ZtD™k¹…—à œ¯ñùz€ôYé^má%Ä]¿óÒT <ÖöXå \ºfž}@1—¿á%w¯Âe¡ä;íâ+ÿÜ;{ /¹{Jçà@Ü×açJ½xʛ̈́þÓ)æµì¿«¼aD8ïó/}á½Ï ¼A„€tÕúØ™£µ…—,`!XE-ë£oŸÕØÂK0W½žð†÷!)Óçšf[x ®ºøÞjž©Oø[~/ÙÂKî: (Ϙw3“ ÏÒ-¼dìCæµSAcc ±ýÅ6`Û5úó×E»Æç’¶ð’›kÎ&üá˜yO¿;K«¡šüf`Ëq7‰ïWx ¥CBÈX| PÚÃgp /¹±|†¤ÃyOx^ÃGÜÂKnì¢ R¹ÛBˆåøï^í;¬3Ÿƒ®ôb¾ÐAÞÂK6P-¶¬{Ý<~[¿ö»Ê-¥¦™A¬þýö’ÎXå­þú;×ôdé®í¶…—À }½‹Ð›¡?ßð>Î^‚hü!©f6ܳÀ^=]q—›»‰±1Ä*o~·­gýÚëDí¿…—Ügã|9Öd)ªÎ‹ßÂK6 ÇÁ©1ÇJ+¿Õ ÚÂK6¼íPÇFO îC(W½W·…—ìn¦Ï™gc#æÛë‹-¼d†öO’cÝu·ð’=HÚϳ0·˜"Në÷‡-¼d£«Íว&&[©õ° -¼dÓ@ès}¢g^Û^BYœ±±v0[]Ôþ¶õb98ÛÂÿbr–f‡à^²aèߎ1l.ï^b¿«¼¡„Ä`FòžÀ% klá%w‘ïé}ÌÝ6Ó¯öõ ¼±ó×Sóÿôß¶ð’Máæ{OßYEnë…Xå { EØ,A\Òþ~…—`©¢?”b*™¬£µ…—@^y¤šµ5uB·c /g"Ç S8”,è'ža½XŠâäY‚ûŸ¨U±ÊìcÂgaïð'»«ßïQÂK … þCÂ2ñiƒãûºðÀN'k¥mjUvPˆ^³…—ìCGµ2WÂ5 è­é„—X„{ ¯dLâ·=ÇÂKÐÖ.!@B,sU´)‡Ïulá%€ò îìõ]ù·ùz^”ÚX¹ÿ6ØÒp o /Ât …ù>T ÇQxÉ=µíöÉ=lXÎ÷Tá%8] [.‘ Р¨õäÛQl¯,†ÃCj¼;Ïàmá%X¹À{ÌöAwµHÔ ÂK€CU'a ÛFçx /¹ òÖÉúˆÓ\#|=/\.ý©—4eŸ§ûQmá%øÚWÒ‡¡ý!-]Æñµ#¼ä~/xÃù,ìh&†Db•·ÖÁcšI+ S(÷äíΟÜÂKè{Ôoªq„—(“ÔzT›rÒ®wµ…—À*†­¤uÝ(×R¦ŸoÂKðOGÐÓ<º ØÆ{Ø/–ÍÁøz½÷´­Z<¯òv³ÏÆrœ±¨E)O÷8[x ,O[^“¤DŒ/{ná%‡º¥ïàx¯"dÑׯð’c€èJúgˆÓÆ3(osÒ·$qzáP1³NÙ^‚6&ú'ê€zëXŽ˜ù;^rc‰!gOØMoF¬òFŠáçZÿÑ£@ÁI¿«¼-̈m_;è“a„ ÚþÍ /¹Ã]î仯š4§‰õ+¼bô|zæér>vùw|„—Ø7xbøæ¿U²÷û^bN´ÚLÅGœ Åï*oàÉÑC™…å‰kÙá%ÇLkVâ&q\àTÆ*oðÙŒáGóçåâÁ:3žã^Âk'jÓ/éWÃÃ@£ä±Ê$ÕÁ÷̼«Eìjå7©é¾ƒÑ!ÔYñÎö‹Å;;í“gøG‹÷€¼u.ã^Ý2Fj–#Õg«ñÄR¸öËÚc‹³“Q‹â%ˆÁ´Ôä½Ö0ÐGâw8ÄKk‚äÞ‡œäËá(õzþ/a¬ ¦¬Xë“ôËÀ˜ñ’þ—K ‹Ô'›à ß[æç¿;,¶aü#¥Þ í3ÚŽØ©Øg˜šæcÌCf±K±%gÂÛ¡VZ_»‹ lâ<¡œÚ¯4®r^ì¤>bÖÀd=µ¼v:Uy«Ö®H=@èy&êbË‹ÝÔ:éÙŸþÒŽª¼Uš½ù÷ÎS#eµºFÍ©Ê[[˜1ï^“ñŸj”eÛ_ì")õé°š|lNUÞ:ª4©I~»ö»ÊÛy÷ži6êVóàm;.wêz±¼4%öY¨^¼yê~±fÀ’ö¨Bÿ¡åuÖ©ÊÜwŸqïÓ¯¤´Ç÷Ö¾»©˜µzÈñ 5åmP³¾¥ÞW3 ºø,øiÊÛ<ÜKÌóvS¥˜>3xšò¶øpñcÖˆwÚâØëiÊÛ"(°Ó:››iõþÐiÊÛ¢±ÀùB+ c·T‹xÞùbÙûœYφráå{šòFÿ€Ä?+¤ˆïA¬ò†ºdÔØ'ïF hf:çÿ4åmÔ:‰{ŽûyÞºò¶©\“ÎtÝœ¹êî¡xºò¶é32ß“ô]õXåínl;ûz¢ÃÙ@ó±áþЕ·C‚t)‰}`£yàßfWÞ(’[ܯúÊwO]À‚ü,ìãÅRh,ë‘¢!–²ˆ/–z™Y; ãìëyúz±à ެÿ;øŸvßµ¼Ñ$%}Öo•Ãö¡ótúQ,õ³?ä½²±‡íØÕŸb©-Œß›|¥cÛgÅ‚Õs>ÿÈÂCJ­ºþï–7LÉôÜ‚HÒ o_ëÃòÆyÆäÉý?zO ‚+þmŽþbQ;Å}çæ¦|yóèg ÅRàðKþó­Ô/ôÏ˜Š¥‘Ò—çÑ›¡;±~Çz±`©dNú†Ü<¾7ÏñPÞ*/,¥$O“+œqçÊÛ=ŸföÒÁßF Ší¾Õg*oXÐÜ¡['uºtÌòbA@Ϻ‹õYOG‹Ï;•·FÑùšæ ,ƒ»«÷ÜÏTÞúâü[ª³Ð¢àÜ®¿³©¼uVï+cLPúÁ}Òs1•·a{Tæ—êÆ3øÙ=ç‹Ýl6g šúr5½‡õb1ßòÓ»ý†I1zÞ¦ò6xy ¿™Ž–9qNåmPdàsÝõ ¬ís?ª³”70 ^ã^=ËÊÇêõæYÊÛ„®æçç{€•FAÞ»=Ky›ƒ3Û‰7SùÅÝh)osZ£ éìuÓZ]o®î,åmR ܱbkõ‘齎³”7^Œ÷Iºu/@¡w¶”·ÅZ$ûVße†Ðò:k½X Ïœc(•}á}y–ò¶záÆœÖ䲑ä¿{^l¥ÑZªnÑП×!c·ò¶ dŽ÷0Ù+ñùvñXlÌc¥Ú‰-‚Ð`;[y[?`™õ¾è¯7}.ôlånŸßL{uçXÒ^QCnåmÓ»jÌ<;ÉÑ«ý¹Onå Ä/\²NEî–ÏIœ­¼ë;­¬oDÒÞpÎÈÙÊ ¹Göu¯\‰×±–7úH†€™õE&¥h\£ñì£ØŠ‚¦'®fåpmŒ»Üù^ìÁ=j'?ŸºÙ}víþsŠb ~©w öåŽñeÄVÅê”’f«égšç4ÅBü.ôl¸§r/±ÿË[-\Ø%y€âlå/îëg(v—+;¾7ʧàÌòõ{,o_‡¯FËý‹µ˜ç¬;ñ²]KfÓ뛈Ooðå­ÖLÎàÙ½ØüêŽ]£¼ÕFá‚=~ZC;/ÿgÅNž|‰#Ë´ÃÞÙmßb¨c¬”­Û·ÿBUì„à„{uòNKSŸ]G»àÅrHüG‹¹Ñ.÷Ý«yYl7K¬³rX½(mkñgPÞPˆânõ<¥ØZÿÒ €P°âîÏ ¼ñÜKØ {è%¸¶&J^,çš“çØ:ƒÖºë¼ß^RGµ¡ž¤£…Ú ­[á%Ôfç)õ³6“nq5ü”·Aïà¶b.âÐß³‡jŒUÞEv:ßà 0`úÚ^rkw|0'Í8Þ[2l ›c•·¹fޤ1j´ŒSª¯uá%w3ÍàˆqÒi9Ý^=tc÷‹ÅÀhO÷Tdr&­k4…[LÐ<¸T¸= õú˜œ{±àhפ[7­Çê|#h()v4c¼…vȤ+À³`Dl}±z?=ð®ž4bÛ‹¥ÖIâÞ.Óát¼äÆ*o÷È㱕} ­ñF<¯ò¶9Ìâ~–Ôò¢ÅÚh¾Î„—TðŠ3·î@šèþÏï™ϰ^,ø¼×¼ÞgXÖ’ëŒUÞLè¼ï‘üßÖäPP¼åíð¾~_yAz\*ÿæ…—Ô39€¹ò쎕 ¯7ÏbÆRÇ ïg˜wZfíkGx |”8wø:(« §Tÿ.„—Ü[&½wÏZ•l³Mßw„—´BXn×–zù˜Ùv±C±ô: ÿ7ÈÂCX{Ï;_,HíG‡ZŽ_Ú'…—˜FXh!Ÿí;»{øqt RÝO…¢Ê‹]#ÄÃ8ç>8Kks|gÂKˆŽC×=õu0ú›©À$…ÅV~óß—g¨"è:²7Vyƒ¯lÒ µY£ÃoÈ¿Má% ”ÐM Í-ˆÒ×ÄI‡tbN‘ž|Á!…[ÞX©Å*odÜë‹™W|í}_ñ·)oü€Ÿ952säÐs,¼äÆâNë:éÐj7wõ²ãý*o ÛíÏ<šÄäÓú÷&¼nI ©Ô¤<PÒk]xIëÍ,r?€–§ÏʱÊ[ïîKøÃýYró›¯3á%ÍÄ<£çƒžÚ¡E`Ü„—4œÀ'H"S$iñ΄—4[€ÝŸašï$|Àâ†Çî¤ÝOy/P¦¶qFì”7*£…2ÞÙ½è/ÈúÔwÆ /i´ÄúbFáÞ5Χ(åí&Å~ò]'ïž«ÓïFÂKîõŒ$•Ä€8(îqÆ /¹È¡3ýÎýî©Í׃ð’[\Pðç$-浈W/ϱð Üáÿ!ymݤ¶ýý /i‹®»…nÇ¡LÙ÷$¸«¼-ú\ÕÄGÄnapï=/¡N†K³ß8©ý(WYÏßXåíæ“n1ß ;5”×qW^‚«MÏ:½ãoé•ûŽ÷ ¼mnQ%ñøY7=Z׃ðÓ?sÁ*›ŸÇü¦K`ýÁ­b¡‘ðí¤¡ Âò=ˆUÞ‡þvÉÞø¼~»±ÊÛÞÝ”’WFi‡œ¿Û /i ¼¢QšÚ;}Ož±–7ö“WѤ.àðÞ&÷K3§ÐAsBI×»ÇÂK ûʼnÆäqÝè þ­xG±³žäãHO h¢ÞÖ÷uá%šà%¿Ž»œØ’ó3KxIç ¾ KWGô½oû¾.¼ƒE(6vÒÂÇUãÞ¥«×ÂKºaÐkd¿Žo¸vÞíŠ]½fÞʹ%(2{úÝñbqqû’è䉞Ú/–š/ógú,Ž÷°^,}{â{V«Aúiù3(okê+Éûå&}ây•·JcŒ™µè`êÇÿý{á%âXù~Ža#ŒSýo^rW:ê·ð©¨õøz‹¯_á% ø—(R¨qÇþ³£.^Òz!ŽoaŒ Òþ»Ê['çôË~¬fƒ>¢n^=16‹s»S§¬ÇïN…ÐÍʾ%ô‚x¶ˆ]/víÌ?£|0ißq¾ /AyP³_s…Ž·Íùø^"¼¤wŒ°…ÿ¥½½îó4´Ñ·Ø›Ü•;ÓIåÆÕuIÛ wtÅÒ@¨%ÎÓøààþAß΋"¼¤zGì|/i…3ü¾vŠð’>+uŸë¾oÀ¼ÞG‡ß©b¡¾”üÜ9[2lJÇcNjņ?ZšwÂ6ÖN¼åmBïêžõ默 rŸ×VAìòXJ^ìõ‚÷à~T\Pì¡Ö”ß•7`§A:ÂñgPÞf}Hûïî¸AjÔŽ±ÂKú½‡[Qgi}çõ°!å`±»°ßòÆtúÄà:Z7VyÛ4‘s_ðî^·Þm±íÅnj1g­UÍðù{^ÒAcMÞ¸TÎå›$0×™ðØg‚WœÎBú']ª«¼ý^åÒVÒ¹±Êii>d`½qöy§Ÿ›ExIG{ ˆä»^UÇ‹ð’[ä#ÇÙ—vâ“+ÖŽðpu(ošÀ©WáïWxI7ÌÜõVèüá»r_ðkytJ˜|@ØÞw^&ô_;ÁJÛ5îÕß mO{\Öky»_ë¯Æ>´èx%î5~w¼ØýýjäB›çç (ÂKFá·~I¸¯ÏÉûÃòØõbw 3HÍùð¾îõ|^í±†Ö¶vAÖîßð’Qq7Ú«$leQ³¶Õw/)ÂKö–0FÆóVô‡ḇE±¤9¶:~|×kÐ’[_,öõ²Ówa²(£Ä3(oï¬'nGïzAéwû‹ýWcÿ^k€ žêߦðX_ÖäË~ ×Ù,¾Ö…—€9ÛCäËú-‹ÈØû„—À0~e>éÎÔpñΔ·Íäïä^Ç(Ôؾ΄—à˜niwÄ[‡Wó /!4f*JÒÖÄ ® þ¼ÂK`Ô‹ÍkG zиÓù&¼Æ‹à†&¯ZÍ)ö(á%Ä ·kÉÜ•q}®Ï÷ìÆ*o·º(o€Xº3°Úz²Ú«¼Ý« î©'8³d8¯ßÙÅNrʾøæo%Óö“¢±ßUÞu%~t q{ˆ¶ b•7S§ÿ~z3Íü‡ü›^)9Ü•wÖŒC»ûþm+¼š[_ˆú[‡"®óifÜXå #«Y{ò«•rþ~…—@XŒóþ¡Q3ØÜ¬Ã1Ç"¼dг´ôž„…Т#Vy£þÓ7’>íþLÓÌ1ó"¼dp°ªÉ¾—à¢AKïýò&¼C1-L~ÍGŒ4Íë€"¼d˜‡x>ß0†¾i‰¿My³AÌ‹‡É1¾Íæg–ð LPÛ8…õãÀÍ…¾ á% ”b ®¤ùRh™~Ÿ,ÂK@Ž„fÑÌZtœæzTyÄ*o¸±‰Íúo¿ÚÜ7¶½XÌûo…%]mo‹³gPÞŽéA'¿™ûT®j¿ /ÈÒ{ÍB_a‰Ø©Xð‡~þ6Jò€zãûŽðllÀå2|°îú\7v+·£o§ÚÉAÞâN+¼ä¾ÊÁËBxžß ™òö»†ð’{ SµéøkJÎÛ=nlQì=e’)°¶eÎŽ§á%ÔÑÂ1’öXk~G´Ø¦ØÉ¢!a > ¼÷ ¼dVŠ^Ÿþ›PÙßÛkÈ"¼WÝöëµ…r¨>î¢Å*oÌ“çõ*ħ¿±"Vy£&éiM®»1s5ã=(oX˜×Kk½RÆy¤Ø ;/>Û·¦îLì©ÂK`¡Œ3 ôÌià vì;ÂK&pÚÜF_úÐ/4ö_á%sØU¢7sï¿´²æÝ³3VyƒÂ€µTóRÂïÜWy#1ôd~5”uõ}]x n%#HK6×ñQ¦zxŽ…—LêLC¸%îÊD’2ÂKn,þñ•äIÐÆf,Vyà îWöÚš£þþmçÅbÐa$_p2/ŸÞc…—ÜMü™< ð°u±ÊÛ‚üá5/ê¬j×;ÂK 1Í3Z~+ÎMá%¥@äÄs\”ñt½+hR(–Ãò¡™<À‘”¿ñ½Dx wqßN\aÜ£‰Xåí~®ýW'ò¦ËtF}!¼äÀ¶kª̱b èGâ±S±8òq²'? rz^ɌإXÙïƒÑ¾^OòQ¸±ûÅÒ´&õõ`k»ßþÆÅÂìbgfá¯ïÏ ¼ä~-Àw\?êäéšv“ÿ®ð(‡HºãÇLNšŸ…Ux 6üõ;G…^Á÷ä6-¶½ØõíÁB)‰zc•·Âi®š0R¨)ÐÖ+b•·Ê︥óxŸ^¾±Ê[åËÙ½P;d­ø]å­Á¹¯ÔÄɹ(ŽE{ Y…—¬Ö ¹æÙûrtz€Æï*otaºÏ‘4–9œ®½ÇkÅ.ÔC-õýÏ4.€ã\Ux aÖ¸`Ïf˜3ž?¯ð’Õ9/rw¦}¤ã>ÛUÄ*o½sÂÛ1~ލb]ÏëåÆ*oÐÏÁ3$=݆VBp…¡mðbÙ†N5$å’FùUÞ:æ`Jé¹'Ñ¿îA^‚fô„Ó,Ëå b÷‹9Ë>múb•·AK÷¢—:1ë¿q /YäïþxˆïõcƒŽXå 7@üÆH¿Ë;âûŽðhäÓ$*j2Ü’éè{Ÿð’µ*/ý;z˜çì™çXx :Âìo®ì7ŽYÚÀ«ð’u¯4öN³öƒ²åÍùˆUxÉZÖàtŒü%¬òxb«¼-zb­Ì„‘î["ö·)o›.ö;{é`zk=Þ¯òy9ÌÍt׸‹Ãë€*¼d™·sO}†e#’ÅïÕUxÉEŸw÷ì- oÆ{æø·)¼d™ÐÈw²Ž7ܧť²ßm/g_Ìupæ|žXö»Ê›1žvš•»ùF‹Ö}n¬òfžÑ%õ[&„g’žÂUÞè$_î´¾ÐòóBxÉ=±Ðdš5éÅw¢Ò¯¼F¬òv Ô›fס÷ÚéôÅ{°¼Qó‹{êuTòÓ­ÂKöGcï™øžœðMZÁ7¶(–þY;éÜ’¬õŒñWá%÷…Qr{éy)çdV<Û˹üЀ7'®Žã\UxÉæ°¸Û­4ΖÔÏ;^ì 6޾~…—Ð5p—˜É\„ÔÌã›ð’ƒk=.y´›V~Î /9¨ q·O¢ccMŽïTá%‡ÂBÞ,¶»'–Óý›=ÂKà²ÅÂ#yˆÓbøÞó©ÂKn¬‘ØÒL…ݹªã\UxÉ]:ø{Òj¿ëƒœ'ÇŠ«ðȲs&3Õ±wwXo†‰ûŽð’SQ&í~ئás•ä½½‡ýb|ÉO äÄöfˆUÞ ®…5ßJÐ'üŒmÂKN§çÍÌš¾%ËkÞ&¼ÚB+ŒLhѪE¬òÖ) ñåÚ´íÙò™Õ„—ܵJi–•¹(œG?éú‹¥öX-©ŽÅ2ýÆÓ«€…ƒÅÂ#HsÌæÞÖ äÀ¼ÿÖ„—άìðÃ&k¸4re¬òfWâZ¯æ—ízÅÀ.‹.H ?ô[ŠÍwG.”7Lf Ïý·nò×/ÇMx Z;ë²bíÿuï쫼-Û÷ë|ô:Þׄ—Àò|þË3çzˆ»g^‚FÔ -zã·X%‡Èg*šðèäÔ´¯“FŸ T;^,¹Iµ&¿¯ ^ÛLïAy[h´× :ŽÍã¿«¼í3™»$$ôÜ÷ñ»Ê. ß/è¦ —Ÿ…Mx ®PðI®Ð¯™y–  /ôµ…¥˜‚÷ÔšðÚ- ùÉ×¼P‹óåšðJUÐ64*©!Ó{îMx ea!Á}iÝ+^ b•·cfê_šá§­ÆgÞ¢ö»ãŶpeø ÷ô}² /a™ž¤‘[ƒ¤…„¥¤Xüköo)¦-ôE¬òFl}ÏtÆBqœº‹Çc•7ŠÝÓ:݋͋xµ/Т~µs¼á9ÀpX›˜{ ñÆB(ôSç߯IÜmm¾3â%ˆå˜O;ÍFuKßwˆ— háýÔ›ÄYèï—x bÑu_1×¼þr6/Ã÷(â%ˆìÐgMr“Eì´Ø \åVqÙ jÓBÉëîF¼±tyíi†¿OâFÍë¡F¼±à¤¯^s¼‡r<7jÄK ÏóoXm4æØùà­+o•BB%éœތÇ{·­+oíã[ž% ÖêW¼æm]y£g^ÉÞ Æ}è“ù7ß•·{=¨-“/"d-ùøwÜ•7šrבp9@ü¶Aènߺò#„Ì˸Ã4Ì·x/´uåí–T…ŠÕ‰¯=}UÞpvãbw#œY\ó²uå­OpVèéÎÙ(ç4ü¼èÊ[‡ Ív}hvÞ3zãúêßÛPÞp‚¤Ù¯‚‚üÞoiCyƒó8@Œ„™•³­±ÿŽúbYàÎÀq¶ôLD¬ò†³ûwØ{’¯ßÐPÞ8²íBvn6ú“Íx^åm¢+ç#ëI|XN6rÈw6”7Tàc¥ž»­õûïX/vCt(ÍdâéAIC¬ò¶àÎXz©Ù¿×òæ5CÊÛš¬7½æ½gáWL·Ù÷ß©¼ÝIé¨[:ø0¸>û~6•· ù•ýƧéAÇœD›ÊÛn¸W·äUÔ;5´ËlSyƒz.zù [Ù6$«¼áNŒáè’ú¦€!‹áàÜ£¦ò†! M%^|¥_‡ÏÚßXåíPw|Ìàªq'¹/æÄó*oV²k~É“°JÑ;ç¿MåÍŒÁfš;€=5ðIçm·iy3?͵¿ÏúóúÌJ[ŸbËg©Ð)•ÚçÛ×Ù*ІÍg÷ý»Écò¼­ªXjJܯ†ÁHýøÞ·,oÅŠ÷ž}å -€­>ž·+¶4¾cŒ*q/ok(Ö¬m“Þ J/ªIûzXS±«üèvÀª¶”$!Øõb9µR-M]á=âÛ\–·B¿ºU’>¼‘¿(«¼UXBï–µÇî¶“ÎìÙK çkXù×ná3lå­‚ë¾V ,¾ì+Ñl[yƒúÚÜ[l؈¼må­Ü™´¦àÿÆY‚5ý ØÊGÏ’ÿ|ç¬\Kžc7Vy£–ðÒp(-ßñVÞ0¤€Z/ñwÿ©ûïVÞ , ~Š7ZwnµØýb7“–¼â°BP_Äï*opФwuðSxu;ÊÛ 8PI:.s“—y×Ó;çòfÎö;Ê9áø.ŽòFŸøí~–à¸,úaǶÛQÞ&‡Ò¾tØ »Ø|ß9ýÅžÔáyÑ©}Þ¿ø]å UjâO *@B‹îÆ*osS°*q;2qŠw¦¼Ñ{íæ)±í„µôQÞH">+ésuó~¯íÍÍ´£¼màwµ¬à܃Æ4ÞïöOy»gMGzB°ûÞÇéŸò¶i€Þ—÷ €Ä4dUÞ·Ù¿úbyøö˜ß¤üõÓ³XåmS˶¤;¤Fæ#ö¯¿XÜ2c>`Âû‡7 ïÕõOy»÷x ¶Î4ïð6 !‹UÞÉ+kÑ5T.¸Ñù3(oÛ-͘WhZak½Ê82x½Yû¦RVeÅïž˾SâG¡'ÅRÍsQ”7L~ãlˆÞâse°ÿnQÞ ×CÊ1Î`üŽ—ôby/Ÿ€dÌVï»UCߨú;+M± =‰“ù‡ÆÁ¡QÓKWl^’u¼7¶P‚«ÇŽ»Ož•ƒGðä–¼^mÚËTì1q×àeÞ+ŒñÌ—?¯å­¤kœÞ¢0ˆó^¶bÑçX-÷ÐV̳%½XÞj-eKâ”òÌ›k|ôú½XØ9­ì?93ÔÌ[‹µö’îë”tøºc޽*o÷ú=^úõõ(-Û'èUyCá KËu7hP6:ÌwVû‹%³f_OJX”Ï«¼5(&߆¹:¶|ü¼èu¾ØÁùßÔo”î]~ÿíUy»ëäîA;íÕƒõDýw•·{Má¸&¼ ·§Ím¿«¼QU"|×m~ð±k„Í.¼Mhò—sÐ1‚þÎÓì¼±Ê[§.•ÏIp>‹²*Ÿã0]xÉÝ}Ožtzd—Ž{´ßXå­†‘Ü‘û…´pí¼Û_ì¤÷ÚÈúÕ4TqžM^RmF±žÄS¨ÜØãþÛ…—TúÊ-ç½b^TÚgoÏ«¼uì¿kžÀw3=ÿé߱𒊠{ÁJ}ÿUùÊ}ï^R¹r¾“´">“:ÍÏá%Ø?qÒ' 6̉_wݤ.¼¤Â{uò ›p"pÛvÄ*o“ñ–u¦{3-rßS…—@jM…„Ð#8ùˆÝXåm¢_¸\†­3vʉçUÞ&tYVöí»g(ð³9âw•·IUÞèãp‚RÎ+þ6åmYƒ}Fz ÓF¬õÉXåm¨%yZìÊéÕã”·µ@‚¿™ ž#~Öø}üÛ„— `úyQ·ðòð¹ïïUÞè5û”·û¸cýþ· /©&z\òlÉ‚KϵS^R!;†v]Ú£î%w>=‹UÞмåF|Ú9([ç±ð’ )›û½õ™õH)uéõP^C!ÊÈÚ¤u~þ /¹4ï;­ßTyבÍX±“³0õ¤¹™N*ËŽ÷«¼Ý\„ó}çü5‰ÑbcÆüŽ…—à}áSÎwûÝù ®oÔ…—P|÷8cË];”Öòw&¼„:Ù›8i‡>Þ…—Üz¼ÿý¢fÀpåþP^ÒL¹ve¾ò–]¨ï;ÂK§š´OèO(ÀÝÞ¿Má%Í<èvšUÆÑ?3ϼ /¹'4ôá%·FEÁØÒ¹¹v‡Ó}Áo¬ò6 {€-8i$°å³'ÂK 5ÕTg7Ú£ (/¨FË<Z¦ßs~ú3(oPy®ÚwëÂàÞá%Ä;k7@ù÷?íwïÂK`ð8¢¹B^A±³gCxIG¥ý†TKƒlç|†ð’NÊ)\ó,-GÁÂKn ENÎ lŽ}=®®ˆUÞ–i$$_p¨D!oŽÅá%wájQ’¿È1™¨Ð7ÂKîK%ëb½ÃX0ká%BÈxAÍï}¢Xf¾&…—Üsˆõö¹¯9÷Féhßw„—À>¶¡žgÀ|JÓñj½!¼äîïôI5ïdëyÇœð^r÷÷Sʽƒ[GỞ><„—ÜÖ¥¦Y Œ˜ÃÚÆs,¼äÆB2Åçç1«|ß'¤]¼'<„—ܳ ·ÛAÞ&Ç7ë÷Å3(o÷X O7yã í¯‡2„—Ü}øþJuSú–Ì<ηÂKn"ès•ø%­mŽzxÍ;„—Üg£GðwÊ6y_ÂK`Ï !‹4+·î•­‡Ô%b•·ûB@™K' XÉ~Î /¹kžÓäÑӼƛò6Á3Ö•æÉAîºã­ËûÌ}éº]È~Wy[dJôìÇzwÿÉK­Ç*o‹5ïwÓ­Í;ù;^r×Ê˽~401§s¡CxÉ Í¼ŽìÇÊYÿ/ÕóÂKö[É÷I°ùw!¼äæw£½vÂle¼·8„—Àмež.樌øŽ…— žÔµÁ­+À Qùþ ¼úQæ™ëCÜþÄÚ^bræ·Œ3v-Ðf¿õ¼ð’A³ã{Õ;YƒuÀˆû™ðˆ“´XÚíèÊïw§ðˆå_OØÕäÈwܦð¢\àºÇµØ.¼uV÷تØÊ‹|Âi¡Ÿ ÞŠ÷X§ðˆ¢É_¢_¸àª (zlWì"˜4ñ§VÔ¦Õÿ¶¡Xz#ÎuH'‡5W{ºjSx D#ПÏZt3+«Æó® ~”¸ÃÜÛ5ØÒ;ÛŠ$þ%ŽáMZ¯ÙOb /Á{8‘°ÁùVмXá%s±TÝËîØ«§ðÎpŸÜß4yP¯¦ðU!×ÓgâORë¤|Û^ìþÇ[ô¦ g·û5ßXå­-1ÆÞÕ ±ÊÛ­”ð½¨c¡µ‹¾Þó|¼±Ê[‡Ê®Ni/1“)¯‡¦ð€àΤz³À3÷’é¿«¼Á†ô.À:.¶1.µâ=(oƒ<™'€Jܨ —_M#¿+¼K\Rg||£G¬ò†M êL³“¼ ÅüÛ^‚w‚’f51”y^2€Þð¤ÛQ*ÇMz¬Iá%“Ne¤oþÞ´9B{‰ð’[bàã=œøàÄܯ<…—ÌeÅð—ôûyEÛÏã)¼dÂBÌ…Þ¤Êî˜Í^2ÍØ»fÝü‰„—Lá%0©¶ò¾yêЃsz¯aï<žÂKnìá€kò ‚àc¿ÂK&=l¿8½àtãý–øÝúbI†*5i”³éÞ{ÂKîíçÉýÂAýò^è^2¡gŠ}£¤ß=œ•óÙ‡)¼DzW5säèøä^ƒvðûR_¯óåòÊ^rp…‹ßS'|£ 'ÖÛòßUÞ\"Vèƒ/Ø›Ñ+ã‹Xåí°ï’Q‘ùýµPÆ.¬¶kµcN­á¶)í1þ®ðIÞMºwáã¸ñša /F€Ú?ñía©µ5û{^‚Ù,ôWpoÛ¢$ðp~Ô^²0‹€>oð¾‹Ï;^ìäbMš$´ˆøZœ±ÂKÖÇÓ!{†˜%g/¨)¼ÍøÛFp0ÖÝ p¯ŽýLx ºN3ùY‚ÇD¥á¯xÏr /¹?‚u¤¼m´A3V<…—Ü•^pOýB#w£gf¿ïÕÂKVùGþî¿G²Âþ΄—ÜÝŒsã;×¼ä4Ç'§ð’UÙË?_Ò‹/¤‹×—›ÂKibµ¦þê‚õ<£íw•7Rzý@5~ »˜áw0…— –Zp+á„ß¶cüSx fJ®à•1Í{"~Wy£^fY_`ŽKÓ®W1…—,b²%ãÊð9Ã!ß›ð’Õè5°³®%?â„™Oá%¦—½CZtv÷ô¹ü)¼¿Jˆ¨‡ÀÎnYÇ{ /¹±{…Y¡q">íðœÂKî© ]Ë–ú WGÖyšÂKî_þtKØ ÇB²¦ï^sñI$z‡’ÖÅq)¼d™°uæ9®I«®Ð:™ÂKÖ Hÿ£µPõž2ã=(oƒ†Öyþ Ú< |ú¼È^²ý—õåL6´ûLÛ^‚#¶üžóèóΊsHxÉÂGtêÞ .ö_ïOá%讂ƒü¥žð昅Qìy•78šöjò®úŠßUÞô‚vIXÐð稦ð aï!Ý'˦|eúÛ”7ÜúÁ÷Œ:«c=ARÇÏMá%7–BM €w™Lùï*o÷ 4~9ÈPn€¥@ìëÂK 'Æ;â¢L.ÿíÚ SxÉÚbn'ï;ËF@"VyÛ‡$«ž´Òv¥DSœÇÂK'>Ðû L¬ ô.¿Ã/¡fC#á^öñ¶¸Ÿ /Aì~0ó±hÓâï)¼„&`æÛ±«…Óæ…Þ£šÂK6¤ƒœ¬=Šú0Ž—Lá%›.rçK¢ ’ÀÏ]YxÉ}ØëÊÚ!ƵôXá%›&©gÉQð£lüžÏ+¼d~®½Ë¹ÛEδó×§ð’]^Á™¸I¦Qãœé)¼äÆ.ê”­ìw€ÃpêèŒíŠ¥!åÎþ8“°ÿtí±)¼MÇš˜™Ç¿9¢îu·ð’Íz~¹–}̵NœÂKða‚oŸ=o*}âói§ðH•T·ü3РO8ý±Çc+äNæ Ü«>˵„— ‡×_óêilôߊk­.á%›Ò„eÏàÓ¢„o~/­/–ÚšéÜܜإÝb•·† ÿîyO¥åt` KxÉܤŒ?P>íø\Ý^‚ 8l9GæŸQskû=u /A,?˜“u{{8{^å­“à4Z|ó0’Âh ¯É%¼“dµÒü†Æ?,‘â¿«¼u^ JÉ\Kðl0‹ ~Ë^è ë÷GG¶r†Ú÷¾%¼dwj[øÜ×óò4î9^rHšx&®å½dPÚñ¾%¼e!f{xOtØ~«ÿ®òvo¸h&½•y¨Uüß%¼äþQ0‘‹Z¤ªmuB/s /}×^‚QQüÑIc x wçµ-á%w%@`ÉyºÔMB³ïfÓWx õåð–‚_rëXŒw÷G_ÂK08€û}y¤Ò§xx¬ò lÔ-‰ó¯?ï^…/`­_=RäÂõ«—ð’»°yµ™´8Æ ×Çõ*–ð’»ÃÑád=R“ô‹=Jx ˆÔ&^JºòtˆUÞÚ®#ÀSr¿HÛ½ÕK¼3å­Xÿͽqü¹ø§ZÂK`m‹îæ—µ®Ç4@ê=ƒð’ÓÁØÜß¹à¼,ÚÇ~ /È"®ßÖ eŒ¼Þ\ÂKNg£¶dí~ 8Ø«ý /9}Þ“¼â*•áJÜ«—ðÜø0f-™ÙQpº 1š]¹LQÇ.á%H=ÆÝÒ:›&!Ô별—`äV4I…ª{Àaüý /Á0꡼q©¸¬û]å ¶¸s%MÉŠøi>sµ„—`¦¾‡™©ñ•Ù莭,á%€|Î?÷aï‹»²ðÜŸA.ú¹ƒoJ<6ÿ6…—`Ô~ÒÛ“ÒÈÓ}H—ðÎ×À/¶d=êÆ7D¼drÝÉ£Ü/›5ôñÆb–6¸_‘d£Íùg‹x b¡¼\/?ªâ ßã¼ ^‚ØA݃ž½ȧ9%~·)ò|u”ŸÌM^EünW,*„úã_Hî3,â%äúC²COsjwûÐ>_ÄK»ÖÉ^fûÖ± ´c~ÍŸa)ØYé5î\&×{G-M¼Àðõ½fB†kÊ÷‡£¼Ñl¨~Ù7µñþóNûSÞ*í|žìë/üô@ðZdÊ[ûèLt2¾¾¨êkrõÅ—8{€.øÍäù€ý)o~á-ƒ1éIÏ ¼µÁ™Ìï÷ýà™ïîOy»Ÿ@£xhžUFÍÓœ÷º?å­cjµ™êØ]Ö›w_ߟòvW+ÎØŒÙÙ¢†ÜŸò†³5zžµï×»æ±Ê[§‘ÝL~–›¸¢yÞŠòÖÑFçÔóv7t\]?ï%í¢¼Ñ¾å¦n¤ÙT I‡žï¡Ô;©e›ô¹ 5ÕÃ_z—öb1¼½×P®ræêógPÞ »Æ‰»\• ÝÔ´‹òSM´ßb_/córï8Á.Êë¤ò­4㈠Eö,ÝEyƒÚ3ú´Iÿ¬Òð 0¼]”7(ØÁ'*ñŠÑæƒÄ£¯Ér^,5¿Çenr¼ÃfWå „p©ã;!×ϱʯ¬“Sa‰®;µ«òFª¯Ÿ44ìlqþήíÅ¢O6’oß-þp Ÿí]•7|ñ6ä\VÎó–oÅï*o÷þ@ï<88_à¸ý®ÊÛ2Mo$=RøuÌá*»® "~íyNØ4(üžº«ò¶91õ¥ú ôß•ûÝ»*o›>6uÅÜ-Dá0î8×nÊÛ}ˆ'dìµÓîc8'}7åí~Ðk¯q¾-["§¼ûïnÊÛmbͤ‘{ß/¤†»×d»)o›xImyO%Q!½‡¦¼pÊjèLoó„…ýñögPÞX—Ö¨[Àç"%¸8§a7Ë[¡ŸÐ-t\à·Y¡"ôôw[Š%†ëc°)ÓçÜwÛŠ…"_É÷IJDâlñ½¤YÞ Ö^>cM«gär÷O±4.;‰ß"ßY쓽¼Xlø¡…0#¶iíß|¯/v““¾´½OãÙDlS,çëJšÉ0áÀÚyú»÷‹µµ)èvƒÒy±ÎúP,&öÑN3ÖØ‹µÞ•7p% B•ïÕ¼ïô8[þ?_ß’,KŽã:ÏUäü™sý¥ýoì HB‘Vm=ªjVÜ8Aw‰A Þ¼eª!NÙÑ…¥,<˜Ëœõæ-Sd1ü:žŒÒu.ÿÛ–Å¢ Ÿbð&eh]›e¶›7|Y 3E§7OœìÙ}tgK[`z—“<ë RÉû€ÙnÞ0‡ÁkðIJýµP:ßáæmÿÉÐæ^¢ãÒæÑ‘õg§Ý¼•ºè½&Þ˜÷˜=õùÜ›7®“¥Ð¥¶×x<öæ­~4#ûTS‡½étnèlÃbQ]Í¥uêL´PŠï{óVóñ’ž›JÊWžíæí,/,ÙC)ý˜ˆ{O6ûÍ[Åx¸yº¤é çÖÍž<–4Ù%Hƒ³fÇ®f¿yƒÍ—V‰Zž~Ô¢ó÷›7Ø;As%8{¬ˆñ¹žã~óÖ ½q{ðÚö‘Ž÷+ñnÞúY-ƒ“Z^ÙqÏÙoÞð$/Lbv°ËŒ¼›ïåço¿y­úrâA7èI?»õݳO‹]2`?=$à¯9çtö›·Û9¥×ƒº-ÚÇ æø,vð¢,>5ÌG—÷osܼ ,ÍÕµþÍÄ/\gŽ›·QKåL@ýc!ƒ˜“3G±ØAGöÀYÒWÃë¾qó6hìuŽ>ç‚ë&Íqó6ðÎæèEðü’Û?â½Ýb±Ÿ•óÃÓ%ýÇ9ôsܼÍcÎQÂß´”CípÎÓ7oóß‹H:ŸòøçX‹éUù‚{0 ½³ƒ{0çÍÛ¤p’s%[2žŸyóv´ûÃï«¢™2Ž9Îyó¶Ðw×3ç®\kCù%sÞ¼BMwKÙÿkr©L»tΛ7tj¨7d6^¹§–#0çÉÍx0dÒš«‚+Ü]×rÎ~cç¼U|^ Ö°ÒˆÚ~ŽË̬=C¥,üÈñæ¥Ló]µ ‘z9Ì‹—ìØ µ4?Kh/è‡í…¹¸x /!Ì“´^êü…nþ¼x Î9ª» ^g˜–‡‹—dl¾¬ÑýYÀÝgýÙ¹x &‹XbVs:‹íbÎϨ‹—ä}]P6ËNf]'÷¼xÉŽ˜žeu|t–›qÇ^¼ ž¹à%XƒŽïåÏ‹—`Ô1°7Pô<ûè§ægÉÅK2 c®PéÝŸ?²*%ÅçÞ¼•„ý;ôŒêô<÷÷b]¼RkØßÌ:C¡–mõsg]¼„G¸øÇRÛbRRÇ÷×ÅK2µáqÒɹƒÖ˜–îÍ[AûPU¼iƤ NñÏ­ Îàµí»ÎŽëóÚh]¼:‘Õ'sgüê[·Øž˜÷CT,Žï|u]¼dÿbDxdÎ0Y‚;õ±Ób9æ’³¢#ÀÔRÄÞ¼ÕBïª{‹Ø@áL¢Ü÷m]¼dŸþ9kS/’ïüâþû^¼vØõ¬q®ƒ_‚ÇÔ=èÖÅKr%01D3®Á®”da½yƒ¡ú·!;+ zhÅw‚ÖÅKàÂÔ€/†¶xÄ_X¤ öæ 6bxdŸ÷ã_>ºëâ%»ý§¡©'@må˜ÅyìÍ[ãRpS|§¶9c\ƒØi±(¸›óHñ›áʺ^|ço»y‚w^Ï_XC‹~ߺx 4X¡“îÜ[B‹ô;pϱuñÌKàGµb_\aT5ާ®‹—ä΢àÓ]úº boÞÈþΟpÒ±jTÂ^±ÕbÉ»Êqî, ëXÐð™¼xɾ€µcš 8¢ùªþ}oÞF#0aõαÔÌønÞ "Ñ·&sœ ¥šãsoÞ`&‰ÁÁ÷{€Y‡c6ëâ%à“ß7³i”Þ˾µ.^²O¬¾tÙ'Û×xWÙµNÖÅKÐÎ@W"«V;‰æÅkÄuñ’ý²Coe<õ䱜Žó÷â%;"²Cv^KJÄíÝë{]¼$cI¹‹Ô”,´B‹Ï½yÛ?tÓ¶= §éºuëâ%yÿè/º3ÐgƒîbØa±h ÕŸ{øŸÇYrñ.ØC‘wCßn-þùÛnÞµÇr‰þ¨Ñ8‡s]¼Þ›ÿÎ4›9⽸x ™ãK(;L”¦¯î5°.^Rà#BW`ñø£Geø¹¯‹—z ®è 8é½™ÅÚùÜzcÊ1ÅÛî;øNïÛn,Pï\fø*ïÃÛ6âûv‹XsÜÝxr8@Žßìä­"7ÈÏ>lvg.zì¼±(¸±+©X&-1œ¾.^‚XìÏ ïuRŽiÅ~÷ºxÉ.aÐ$ñQ «%Œß‹—@Ë呸ÕÁt…¥!boÞv[HùÜ©|.ô›)ÞÍ‹—ìXêhЧ|& d…†öºx 50QÀÊže£Çß)kÎ÷½yËÔ u݃ýûŽc»ÞX/Ur‚ÓX“ðÃh{ž¿/)žFx²co1C <Õx/.^R´Ž*óBè NÎUüo[‹†>¼ö}Q Ìû Ÿ}­‹—”rôäw¨û×ňÀûîuñ’rEÉšÎ[°ô œÉcoÞXÈÏ÷œ„œˆÌ$ÖÅKpЙKçèƒúÊŽs­‹—¸& VÏ ó!?'/^RXsÍ&žc˜}AÇÐ1uñ’RÁ¼Â ¦:ÿÔÑò~h]¼´JöâŸú¸uñ›Ý¼a ˜€ìaï‹ü38ö|‡›7Hv£x ŸŠÝµãÏ™ûºxɮۀ?̳ºƒ¡G*ÏÙÅKv,ê¾^D—jr¾9ƒ¼.^R°€¬û8“R4sîâºx ´*á\²äLzY`ÏÅÅK ïnõ>K0û Þuñ’‚©Š<ñóið±/¾uñg0ÐWÞ+VÜ®&êù¾7oƒN+=iÍ5®s„îÍÛÈ4ÙzN²ÏZQÓ^¼41®Ë ¿zTžEÞû¯‹—”QôàD,ž½©sÇ×ÅKÊà2·ó÷¹³O-®N¸çºx ^ùª¾´˜“ñˆk=>÷æm²"Í%æ-ØÇ銭‹—ˆS €ŒÝ’ƒ­ÏÐcZ/)“õEû,àzˆ÷çáâ%eγ@ܽž„§*RõÎÅKÊ¢Ò¿ów°çÁ3Û]?ßaZ,9é^#.Pa­Á"öæ Ýhýž]OüäŽñ¯‹—À&³ѵuž²ó£ÖÅKv•“x ý’>Cþì\¼¤,H-ÌÞ³hRj¸:¿.^R`³õaöúÕ ‡þÄÞ¼ÑÛItdYÿRº7Þù‹—ž½éÇSÛ4Т;øÙºx E„@k2oárusî̺xIý M™bw²“†šWq¾Ã´Ø£ )¸r§¦Nèm¯‹—TšGä%šß3Þ¼ÏÀÕ;Ö©aÅë0qc¤DìÉ[EkÌC?°«ŠË©;÷ ”¾[¸ˆZU{”`` üÍp2ÝØš]Ðùrg}ìgDlµX +ªh­R r§ÃæÒÀ‚o,Ïj×÷„~*‹\· FìÍ[‚cíl®±„yÀ¢÷=¿Ø½±HîÙü÷èôãÖ¡#µX¬ƒ7ÅK4‹,ðÇ›©‘ÐõjĶ]k Õ76‘¨øÉÎvk8Š’Í7±žqc3t±“îWÚåz­ãîÆÖ¿rg×YOvboÞA‡HæYG?ÊqZÔj'öŸ¹ÇÓ®} 49Í» Ü‹õ›ì5”+¤”þø"öæâ¿n’zyb¥š¯Üù7o4°HcŸ ÁSÏÙ­=±j`±ƒ€— ²çßö„ñÚÜXìå¡Ú7ûµêRŸáµ¹±˜y®{yŒý÷½x ¡—ÙBŸ } ø“vwãª<±8RÁÿ¿¤yöEª?/Ù±úÕS÷[(aïÐÅKj£"‚ó2‡è[Ïï{ñ’]|£ñ¨²cÅ%ì%Ù¾¤¾,¶>³ÐL¿æ/FÕˆ½ykP:ÍKüqö!OÿBÓÀÄnä¥ãúD·ã;þd9¾ÃÍ[ÏŒÀHÑës­ßóvñ’‹U³–>©årm¶×qb“Å6h¸Jÿ¶ƒœDWbÇZÞVæ‚`pà P ’à÷-–7,úÌÞCÇe÷ã –=öæ­“CîK£uîøŽ½y£öȪ-4ëGî—?“/©¼¿¤=ä, 6?£.^RÁZÀ%ð³EÞ+óp¾ïÍÛÀ‚mxñý;àC>×çÏäÅKvMŠ¡Ê]¸»€F-ÿÛ.^R¹ãYžßÁYþW#Ç/Ù¯7vH?ñkžûo. xƒôóõ¿íâ%x¹qçv˽b<Ç[o,uÝ«Ì,ç¡“7‰m7¤}ÜyðôoÜëÉ—`Œ³hÅ$wVã+µÑÅK,'×pï5ö-ÓûÇŸ‹—ì †–1ŠÃ4z†ì„Ø›7 -_NŽdŠßìæ Ã/èk(æï¡àkìØe±0{Ë¢½ > ñ¸ /^\4­UðAÈÏþ)Ä&‹eI­ªh:ÅϨ‹—°|f(šõCgoà±7oÇL¯K/‚{:9q]¼ÖSÐQ /Q¯Û$¢{ó0\¨è[vUN=ÒìgõÅKv,Hl¥…–×n+Áf­+¾ï°ØEsÐàÖq™Õ‡?/Ù''8éþn’'F_£•ý}»xIãÎõë?¿Ÿ\jnù9yñ’c—’ø3€ýKz Ÿ%/iõ8´.š‡ä½~q_¼¤ß¾&ç:Ù”8>ýy¸x ôiK4­÷¬æ–oõ¼]¼¤å…_œó7–Ên±:ùç–^^\¼¤±.Þµ”pʵ¯Ç¹~ñ’Vi ¤úcÑÃËýÔvìÍ[×r×ÕºgYˆ]M?£.^²KOtºïttè×*^Ë]¼¤5QGøu,<“‡BççÙÅKZƒôPÎ4–sèçîÏúÅK0…P˜Kp\gØ£øó{ñèÞB·°‰Æþ #õúÅKÞCŠó,ñ˜^?\¼¤ ºÛy?D™ÎÜëòçìâ%m²ÙO–gíð)Fÿ|cp®RŸ³ºaò¦Å66ðC÷Û‘ÂðØ›7ŒæÑ©¼tjÔLã)ྱôÁ[‚a5X¾×öéâ%»Ån$%ÄüâîÎHfìÍöMÂÜöàs°o™þ¹7o³su÷ §ì4ió¹ÕbÁéÝhBAb²&þ¹7os ˜Ðfñ†ÄÖŒ“îÍ5’kvrŸ·€Z3½.I/i˜ð€g« ì¿M¥"öæmÁýòÝKâX0üÉ0,½±˜¤2ŠèG8Àkåtñ’Æ)ޜ‘Ýɡƾãéâ%ˆ¥è…è.ÈLæV</UF‚‡çã'—È$ï{óÆÅÅT»ž;Ò8%!öæíx¦Og÷ßáäú¢˜ãÄ.-«¡Îí=dºx 4ÕÐè׈Íë&îºc‡ÅÒ‘Gô•ц7š†xì¼±µd¦ô}ô>ÄÏË27–â˜á??÷s¶Ž¯œéâ%;èFÅfؘþœ]¼¤;±80o»îþ¾]¼dwTÔ&̪WL;í1ü÷½xIgŸ/ûèç¿Ãò¿íâ%ý˜–Ñt¨}ÛT~/^ÒóáúÈùK©6nÎø÷½yC?þzìˆA–‘5þ¶a±ÜcÛ–iu_?K/ÁÉWðüJßRø…Kñwóâ%ý4­y¾žaz޾ÅÏ’‹—ìÃôˆ[ '§Ìñü^¼ ЊùÛîc2_»‡ÒÅK:é⡈=µYX~x..^²ŸæX0¦ÒꩪîÍ[Á»™ó™ÚÇݳ*ß÷æ­`Å_ŽÁç+ô…þL^¼ce #­Ü7±•CÄÞ¼U$ék27Ýcë!»Ø›7ycêY2i ãþ p&±Xüm½V™ó{¹ûùpñ˜ß|:gð`ŽôÄ&‹­˜…ŠnÒw?å7»x b(Z8•ÇDiËêïÅÅK Ore`ÅöỜ,þ<\¼¢Ìx„eWyf”’¿íæ­sé/ëŒuò ;w|ÇÞ¼õ3ªÊ'§dïÒÅK TË½ÐØ5Ú?ýGúMòϽyƒê æzzîpÞ’K|‡›7lž‚¼UÂ+ùã®\ó>+]¼B~=bÅ Þ­3æ8éâ%Tò/Hw• |‘‹‹—@°¬™àûÅ0oÁþ°ÿ/ðxb}¨7Â8þE{ó6à1Ôû}‘ß7Gäââ%=Á°SõÌW?Öž~_\¼³mXн¦yf(þ^\¼¤“iæ\¢!X¸BÒâo»y›Ü¹Ê#>·Òówõá5×ÅK¸ö}ÿ®\aþê^¯§‹—`!pƒ¿ßmÏ\üs/^Òiî%û ôˆÈÜ÷÷íâ%@i¹üéÞý¬â>¾x Hv•NÊ¡-Ô(IY¼oI/ApõŠöã¾»A}Qï\¼… ¼¶DG b1¾ÑùÜ~c3µw jôµå˜Xºx š>3ppx,`E}ùù{ñ4}ä ‹÷û¾à@Fð~(]¼ بEô ‹gÍïØ‹—ÝfÑO\ã†}Qógòâ%(Ô°+¸2nýÁJûÛ.^‚â€óXé¥K¡ËÚŠØrc±y¸_pñ`摼K?w.^‚KÏCW¯­"³SAìÍøgêí<ùûvÑ”„ó퉴¹/ÈrÈ9ξ‹—à!šÈqÔöûˆâ]Xï `ŽKm!÷·ƒ•yôø}oÞr¢Áاôª5‹µ01°ØÊ_5ÊwA Y¿/^F&æ¹K/Í=ªRýݼx Ô|Ñg©Æ r¼<¶X,À#é\opÏÇï·‹—Œ\É+–ù&Fr€Pf|ßf±ÐBY4\±˜f{(çsoÞ(%¾Šôóà⣶Šúáâ%û²Z¨Êô v©þm7o¬'ÓнńծåþCºÝX*ÎÖÏ”—ì"‚}tc;t³èìí;ºæødºxÉ8~á]æÝð>Å ÒÅKÀwÛ¿YS®%–ÂPïÄw¸y«$%¿¯@÷õ¤ï¿íØ›·:ÞÝÂ&r¦ý÷½x Èõx/¾"þ…èmÃ[ ¤ó‹3*}¢k‰¢#®ì9¾x H£¸P«x“7úzNq‹—Œ–éa$t»ž¤ßAÜ›/Ùaù^¿¤]¸Vòtí÷Í/Ùg÷/SÌš©®ŒkÌ~³|ñ’Ñø°ºŽËñ‰§·³í´íØ›·¶¸G5µ–ƒêÁç; XD:±hÑÁå]ûŠQIû-_¼kÜðkÑà ßÁö³Àm½±z*êa[©èš;¶[læÕØëÈÜï¶ï´†ÇbUHöꀆeñï†îžÅ¢™N‚#îŠ [æ©Æßvóvˆ¡yéŽyáxÔû·|ñ’1(6RhB-ü´`ôøïpñtŽ·æb™B!NÿÜl± 5N¹þÓKç‹—`…’Ų«‘2w³ãëùâ%Ð(G’ZÜCu"Kò;+_¼ ÍL­ì½ÈG»4>÷æ @Ææ‚÷5T÷÷};±7o°uÆH°óZ'åïÈO®^ý}»x ºqÀÍ¢ õ»³²coÞ`P qÁØÝÁÖÏáß> _¼d,sç$õ·¥@Íóûââ%³@èÒ¿q\ŽÆs|ñ’K öúöûq"çIboÞ°;Žhk&Žú²Ï,óÅK&Ä”÷û¦8æ=¥FìÍ[-ü5•›ôQ¿$9Vœ/^ñâ]½’³î·€Àe±ƒa‚é‚` þ›°º¹±ƒ`ŽK­GrÎϳ‹—` ӉäÈšÏòóÅKÐß– S¯Yp VŠgòâ% õ@Ÿ@´Ï÷W@!wËÅK ÕNáĬžÜÔãšàâ%;–÷|ŽýÈÍᵊóìâ%³Á@cV©å®¢?Ž3êâ%;guÒ8Í?÷æ­XÑ3µRÖ%ù~,Z±˾°Ëî:Px1ò;ܼÁA âϲÃ_±:gØa±Ä@D«rµ^»ø ¾±Ðº-ËÌf’0÷÷íâ%p×Kv©û¹SŸùP¾xÉ$/W¹?x“†=b“ÅnÒGA=6[,æ¸s‰>ÁiO’cAùâ%01Ââ–ÜCû7C­Q÷Ì/™ƒqû˜^ܨ0öæ ä¨/9ׇž»ØhùÜslÇÞ¼M4ÞCwS&V1ã=¾xÉ<‡u{¸·µs,ègÔÅKöÉ ºŠ¾gý ž‡õïÅK0'ÀmѲh,uò«¯‘/^²'øÕ ÁKöoˆïÛã~»xÉŽE“Ó…³×©W´Ü›fÇÞ¼Q°jÕ¥^ÔWvt,=[,t+—èGÁL`ý‡ÛÅK¸%¢¦ä ê™ç¸/¦åmQc¿gÿZ˜Þeç#æ‹— Ï_CöÑ t¸€éÆo6, n™I¸ •É<6_¼Û£àä”èMaS ¾WW.^'lpñ…¿³oÐ…³ifìØ›·³‡Ý½'ç˜mù}\.^²Z.¼Žr–@ “wÿÜ›·m·ý¸D¼;¬Z6Óh Àb±á{~ô .U¹xÉêÜ"q=ØÁWhXy Øl±ÀK‚GºþöÃðÑ‚&¾ÃÍÛ®)v³E0²í%Ï­ËaðV€NÑ4Û±7o»OKæ…écoÐgüm7o» (ú¾a—€ž 3ÎÔ‹—¬N-Ûðw‚N]ÅEÊùÛnÞ€ÄÇ?HÎô~á¦IXœØ›7l¡ß,êkß8ƒñïpñ’㣰%ç:1é5ã9»xÉ¢9Ò®‚U[~r.ïüÅK(Ÿ½ÆÍ¢ÝDãÒš>7-/A«‰¿ÅÙ‡¦îbÃï·‹—P :.Âý‚è ð,ÿ.^²ŽðœkÉ€wµ«gðãκx Öú²,˜§|§n‡üfÃb_}p i‡é*°˜½±Ü%˜%v'q–aÝÏq®rñÄbv ³|´”äÂúç^¼dß Œ«²³²Î$â,¹x èU˜“É^s¢CÊåw¸x vê¡S&šÔiÀþp6X.^ߨ)4Áð£Ù ßùÜ›·É«‹ŽT8ØCÆßvóÆýËÜÕÛc?½Ï¬®\¼¼dðÁk¼óàq_ÄŸß‹— §›!~9äºOç/^‚—Ïd œ ¸Aµ=áó·!oãf1`·+>I³89ûˆ— ’rAä=À´âýµüo#^‚ØJ7’¡{¬‹~ãŽÅâ%ˆ¥ASpFV %ùü½ ^‚ØEÔ1“àg‹šPq/ÜÅ]Ãu´ßþðÌý½ ^‚ØšÈ×Pm‹NJÇi ñÄ:1ÉŽcêÔÐ.>›)ÄK;pLÌ!q’qžïµñÄrÌ›’ÎÎLÍñõÒoÞvO×UëoÁ‹/c_2îùqó–I\êÏ[iW«?ãæ £Bœgr–äJŸ‹8ûÆÍ÷qV½ml'RÀÚ‡qó†þ-27E«ˆ‘„ßãæ­P[}û ÐÐèßéŸÛ,vR›0úù …ø ^§Ž›70ñ¡))ß·². Nd7oû¦Â„þÙõ&ö¥Ë˜[(t^$u+–óaܼºÅ®gƒNY™æCÊØyóVInv¬í_bÐòZ>ç-óæ­¢¸ì…~œ W­Ì›·Z9àNÄoD½>‹Å‚ïYESµ&¡qïqæÍ[%ç\T?à{Æ39›ÅâæT½W,›ÐË×ó6oÞÁïËT`9-ZeÞ¼a1ÍÚ'Z=@«úfÎw˜˃Y=l ÄVCc ‹l7–˜V—ù¨ÃÀ5|†RÖÍ[£åç7Ôö’·ïкykƒûÂ[Ù¯ Ëî;Åeݼ5 wÒ7âoþYÉyLe‹ÅÙ»bü‡ôïü¾²nÞ!+ðjxò½ˆ«²šÅÂ'·Éç‡eü7oBB³uõy]dž,>÷æ­zŠ>-¦¤{IeM‹ÅøJ}ænž²ižØ›7 ¤À >í¬l]—B 7uêY1&Ê–g?êwó6h ¯û…» Sçèõ»yt +CyŽœã”±7oƒbQêk¿/¼ Jšsêwó6&ø}êCŠYJmŸÍÔ¯Y,ÑLáæ ~î¢9P¿›· o_ކ~ɤML;¼ÁÂØ›·ÉvŒN¼äs=¼{ó˜|íE2³á}lýnÞæ€è­ö¦˜ÇöñÜ±éæ F,ìós1ÍEä¿CºyÛovâ³z>òœ¬Î³©)[,vÌ—Þ…gºõø7oë˜îŠ®ÄîaPsUŸ¿Õtó†wÜ×xvÖÎ"÷¨"¶Y,̺‡î‚×R~IM'o‰þ¦¹dÁå ‹+À†Å’g+Xý©P»úóæ¥)±jhƒÆ„"ü‹ï»,–<~ÍÛ÷±-sš?‹¥hw l%ï»rÒ>o©9ÝØvÌDTãn€p¼¤æl±x¹ªì0aí Ž ®ñQs¹±0_Û’âFv*%¾ÃÉiÂãRï(?½ª¹ÝX,)fÕïþ8î'±c»ÅâàHÂGÄš|.Ïq¾yƒK 8½á˜ „¸z©ñnÞɨ®I;…àkìÖ|ó–ý$FSn3w}·¤–›·„åü„2$.ç>;öæ--zO¨W}ÊGûqxìÍðˆ×ЇíàŠYó¡‹Ô·8IÞÉö;”›7zæŠ6z'j&UËÍÊ+\¾¡¡2Îôgþ¼û?ݼa«ùŒÞAgB~î”›7+aí{>þNÁõ©eZ,ˆ2MpÌëÙóÆïpó¶kpÒ;´bk¸F­7ohçÑo ïµ=.¾‹XëÍ[áÒý(,` ïµ}­7o…B.ZW'òÙyl±XúrõÐxÞåîM=Þ·zóVè5²Ì,ahŠÄùó[›ÅR ^¾/PŠ$þè;öæ>+h^d×’sÐ|óØ›7,ä‚7ßëª"ƒØ›·Š{s&é!¹îj>ço»yCYv3γŒVùʵ} Ñ€$óXXýq\¹¶d±Ð’)I¹¼ÙØ¨íæ­žÅzy~¡¨éßϪíæí칇VÄ‚L ʬêzAµÝ¼µDÒ´ëð«Ûg>½qãûÞ¼µBS ÑÌØ.J«Râw苾;©–8ŒŠx!{ì°XÌ„§¾›ƒ¯|«ñ}oÞZ¥÷e ^EÛõ9ædò·Ý¼µýüƒ·Xæ¾l@×ÿâ<»xI¢}&ÌHuw‡0úŠØd±Ðq™Âùj&·ÎgØõâ%X“ ‰BµûÙÝû‹zñ’Ô3·kÞ³ÈÅÅK€ rQgiIÍÃø}/^’g?É}¼Gë‹æâ%;„‹oj?DŽÀô~³^¼$ÁY |¡?Ù©Ü»’ã%õâ%ðÒÁÁ!{>$oägßÅK70çú´‡üàSìÞvPˆº±ø1g×ó75J&ú^R½xI:"·K÷¨j /ðõzñ’ýƒ;Sú³Cʶ0ÎÉ‹—ì¦ €~•ó _+)T/^Ï›úÎ/ø‡áê÷¼]¼ž7xÄ8Rô¹×F/Ù±à¯áÍ]ž5Ý?®/á$ï¢ö›ƒ ç ׋—ì§\lÅSÛÀHÙí¡{óF©©œôÝ‹àPÝÓßÍ‹—@õûÇ#ö 3F¼hc#öæ šõè¥wêÔAn>˯/I“.LIæ Ü(=o/IG÷ ôŠù0ŸIŸïpó“_ 2s¯ ¤^¼dPƒz¤Ev×1ŸÅwêÅK@ìÆ½ ©N›îïÐÅKö‹ \‘Ù8¸•å©K.^‚I(Ψg’;W#ê’‹—P£»¿OÿVønúßvñÔ/u’{“D˵\c´^¼$qIòÂG\‡œÿÕˆ=y÷—"¢ XÈï‹YG½x }‚ÔÇÔñþ$¶Z,43Šz}SŠ9ü°±Zã±ð°ÍoÏKý¾ˆí7–Úy¡¡‚~37®¾Ço6,¶­ 9šáè‡.^²¯^ì”®uïÍïÛÅKòG¼:¥ðHàЃNkçC»x T"©ÿ }÷ÁŠ}^Ø.^’ÑACPûÂLª¼×àíâ%;ôﳈƒ7ÈOuç)´‹—dJïçð|\„n©3RýûÞ¼Á]fç)uÝáZˆë ¶‹—@á”bö1'ëÔûœ½DìÍ[êèMƒWÌ{ˆV‰þL¶‹— µ\ ¼z·ïXmýV|ßi±üѺFL­ÊâŸ{ó––üéLxU2©ýùmÉò6À?kò¬·~t¢âoK–7âàKç-óháû=ß’åkS¡—¹(‰¶Çëßvñ’¼;îJ³íðÁË$G ß j/É4Þq3‘«Ի괋—ìŽX¼ë6c Žö³šn÷XŠŠHÞØM‰S»xÉŽäH˹“aϺjäââ%;ä®÷VM•'Ö.^‚ÿG ¢íÁaÀØÃÜÝb/^’GËÁ1Ü?~Æ2í~k/Áº)M`TC{QcÔµèÚÅK°BÃcñh‡5z¬"¶X¬ä‡WŒ•Á/9ÖÖ.^’ 5ru/šh zØ›7°ÐGv?ýó/.^²q0Û¾*þY0ýDåçÃÅKv,ù‚áR\ýµÛÏ·‹—ä…Ùeu_¸•}Züf7oõ,?ÊT¹±ºæ˜n»xIÞYÀÀ¯(Æÿ}9$°›,¶“êÓ´ï¦[}¶Ø.^æCÒ=5ôþÝÃßÍ‹—좟EÒœ6ïœÇÞ¼í"‰‚úÚó’'–[Ä6‹…~õ¬Yy¤ôÆõÙL»xɾ(¨íöìÐÚ|”ønÞ4\áJ¥¾àÀG¼C/Ù±xkËÔÞŸçCéñ;ܼaHŠB^fØ”ÑX1;h/Ù±¨ Ì„ëxÓ†a8ïµ]¼$s‘/‡>Á„vÓ„6¯ëŸµ‹—dêéÏ*½£%ᚎ ¶‹—ìê ƒÏ˜Ï?ð_° à{Âíâ%ØÂ;[D“zÑs!4ùÚÅKrÃXõ®`º‹Tùx‡.^’‰SMÝi£Á„â}­ZÞ&Ef’hŒRÎÛþnÞ:Š˜ý§÷®Zœ·”ì;Wíâ%™s§¯‹~5øP»] vñ¨? ãÍC4jpN~î•,öÆB€o|M}Sd4²c¤íâ%'¡Y¹ÍƒrCZÃ\¼ÛoÔ¾Æ>°°v“#¶zl Òï XùÑÈÑcoÞàØfõîY:¨Ó[·ØFrrhqà&„æÊ¾ÕÓðXTöRGåñÕüŽí/Ò§ó7îz"Ë1oé/×aÖÝ_Ìõh0Ú¥ýâ%;E^jÂ?@^VÔ©ýâ%;šO]Ý¿C7òçìâ%¥R@ý™Ô|$)ý=¾xIa‹>ëÒ9:5`›÷¼ýâ%PίBù…8ú(ñ¹7o\YÝ `x³S‡kÄçÞ¼Õ ±³©séyÞ"ÇŠûÅKöP¡ÿ«^:•ûNÕñ¾ž§ÇVnòÉðµÇçÞ¼5܃)¥"5AFù<×è/¡¼‹êƒã?WHœ“/ٱ軧ôd»µƒ®e÷Ý~ñ’Â;eÁ°Èþhö‹— ¯Ë‘$bbû@Þkë/Ù±$â¡üÜÝ­ô‹—€Ù ¢­h?6ÊÞ-÷Üݱ7oØÝ9žÑÇŽÉÑCx+õ‹—ìÛ±q’¹¨ØÇ»ùçÞ¼uBWM÷»+þ„œfüfËbÑ–a¤jœ[ìÅKµ`”ß—m×êñü^¼dÇÂ!4_Æßa0嚨ýâ%ûqþVé2-¾4ãs‹ÅâÜ vJ‘fÈ>¿è/Áç 1S[tq¸±7o`G¢ç>+{îúFýâ%Lº H-·(üäýP¿x bá¨{µ”bwችy"Ý:™£c´ƒ\øsvñ’28ßôÝuüfX¼ÆlÑ—”Á‚°J >ÀÌþ@°¿íâ%A®±lqµÒ…þý7»xIhKö3¬z6\ßø|¿»_¼¤€D¬gü[®…ÐjïÍòÑú¤~·3SŽ·9G¶7ËIKSõ®ñ¬R"öæ d#´`ÂGDf ?é÷ÛÅKv,æYEöêû ñ«ë/Ù±O?é!÷)BŠ8/^R&9œ±#Fyq¬ „·G¿xI™™»¥â%™!¬…žÁŸ‹—Ø/¿|®×Ü-þû^¼¤€aŠM$é[Öá]Åývñ’˽[Á ö¡VŽšëâ%•ìɤçÍlSòwþâ%ûÁ‚ ûØœÕ ¾û:?¸}ï–·AîíúïƒV`.®[×»åm×Ô‡ š~_Êñ}-o,±>ÙÃ.™Ø`èñ÷‹—àØ€ÆhŽØaú˜Ç³~ñ°×¿ºk¦ºL?êÄÞ¼-L“fé¡[wKÏ÷üÅK0Ýä%˜.H…è‰<Ç/)¹çàЃóŸ)Tå»ýâ%(åhž#µ\JàFÜ/^Qkrˆ…3½O—Ç ª_¼C&Xœé·<Óþû^¼dþ¨S§ÌÑÁl"T¿ïôØ$u5TpVï_ÜŸ‡‹—T8ÜùðæbñÞÌŽËõ‹—À •GÔ%sò8 }¹~ñÄâØo°M¬5Gl¾±ƒLÒ𔓴]9~ß‹—ì ‘6•¢}¤R—ˆ­ ¯¸$µ'ˆ¸ÝüPN¬åmNp6jÜ‹þ"©º®e¿x QwpYå>ž¼³bNÖ/^µÌ©žòè¥0s9w.^²O(hL<ûó·/tQ¿xÉî“J‚ûúÕå³n±/Áfø$ª‚!ð‡ˆM‹ùqpdìj T\£¼_¼æíÜí¥!™¸ªk&÷‹—ì–çz-¯œ­mÜÝ/ÁŽp®4Eó%QÚ%jÏ‹—ÔćªÍ¨aö˜„Ü=ÇËòF¾í1|³†F¬åKÌå |üMóµ?ßáæ-“í£Ühoàœ¬ñ·Ý¼ý÷;r\O?Ÿ7.^²cQ”Ná ¦–¨õçµò¸x z hË+w¦“CÔ½×/© } >AÃUARôZc\¼¤fšj+çôhΊF¸xÉŽÅEýhµ“÷zý¾NìÍ[^àáeá쇙²l+þ¶›·Â­à^“îF ý’qñxãÒ ! VQÈßáæ­dzæÙóð/ÿ¶BL÷»wì¸xÉŽÔ=ÈQWîfrÌf\¼dׯãáñ£7¥üTõ^z\¼dW8d¦x E^Ep›ÇÅK*´CÀcJ¢!ˆ5Ÿ•Û/¡ØtF³iGãÙïÍqñ’[Gè”ÿjüm7oõc“­çY#9´{9.^R‰?Ìü)®Ñ¹˜#vX,ù7â“Y‰óbÚà±7o4lžMô˜vSXOáßwY,ô‚toî<ï ÇÅK@_‡†•Ôëy,(¾ïÅK*¿pŸ EÉÚlëìü/ٱجÓïl…ã ÏÛÅKàHáÑ™†žMÓ½¤qñ’‹ëû´®Îë©=G¶¼Áp#wáË5Z¯îóÍ‘-o8SsW>A£7Xœë#[ÞèI¨~ÍßJ¬­œ;3.^k»,^6Åh/viÇÅKPÁ`‡Il8½^>‚ñ·Ý¼õŠ{¾Ë®ç°Šqñ’}&ÌžzÔ\Ø\ÃÞ—kߌ‹—Àÿ¢"òLbဵ×Qãâ%ÎÞ˜ éý±á²jÜo/¡ # vy/*eµå¿x |•9óQ”à»¶÷çáâ%uP`kŒ,X1ÝТ/­ ý:ºì´Ö+ÕwÚÆÅKK³!í/:®ÇïñÅK*Ô¡ ¢u Ë¥ìÚãâ%uÐë{þ[>ú ï[ÆÅK*Ø#˜óNg=Ì[\Wm\¼¤²oÎÊÿe ƒKËß‹—TT¬kÄó@>Ê–à{Ž‹—ÔA`­ÊŒ $rü™l–7zä,Z^ÀbWØ›!Öò†2…]ƒ|%Úöåµçh–7ˆ¢¤)»à}ÿ*ôÉôçáâ%¬ _-ޝÓç*µˆ½y›ïШª;>•%~‡›7È¢ˆïPÏÞâr d\¼,R”µs‰®1”îú;ãâ%:Q˜3tå6¾oñ¹7oØØG!óBè² b‹½y›ä]õz)ØŸÕ÷ÇÅKà ¦‚ÔЯn WÇçÞ¼í'àˆÊi Îi÷}\¼& W„¯ „¾\^k\¼. ¸»Çõ´9Wm\¼dÇbÂÙ—r* ñðS/©G«R9.âPÞc/^R÷‰M%ñ¾­Õ{‘qñ’ºàö/æÝ”ád1ç±7o«AÏ&©NÃ`•»Êãâ%ÔŽ0>XÅÏâs]Ÿqñ`\“$SÁĨ¼Šqñ\Òè/†öÒÔ¡—óìâ%»M_ÌõÐCòwèq¿]¼{üêàAcO©îÌóŠ.Œ Ø.:½½O–>Ã/á¢þ¾®¼bŒÙ»/i°üÅ¡(¿ÃGëèÑÇÅKPõx{D,ÌIq‚qñ’ö .—NÅÌiYöÕøÅbk& R¼°—?³ûŽ‹—`DÞˆúüîr‹—ÀÇ»ëÒ_ôÄ¾Íø¾Ýbùòâ{¶OiÁÅ¿ÃÍÛî} ò¥XñwH鎋—ìXR±¥F¬(æÃ–±7oÀ/ u"}@û8®qÜh\¼ ÎjÙ ‚x1Îßó/Ù½Î>­=Û¤NdŽóáâ%ˆ¦«|‚L.«œ“/Ù±ô,u] ø ÓÆôàü͖傟hX[¹¸ èŸkyãRÚ”ç*Sô?öggYÞ—ð%ǰ‘pèÇÅKöeAO .zDŒßáæ-Ã$uXâÃT¦ÛâsoÞÀ4€6ò•Z®éÏüx ¤o&úîõì[—=öæmá%Håg>OK—²"öæ-C° fUÒ;Q&=øóâ%0…÷ð2¿ý:3coÞ2½$›hS¾ y«þ¹7o(°â…å÷•}7u^¼Ûè³Jhä£N«ß÷æ­pÖÌîc;}5âw¸y«ùW+¸A¥ÜŽˆ½y£ðm¡ €I"ÏñÅKv,žìÒÕëÒú]¼„^õ0骭™Èýòïpñ’‹¹XéÚgqg;;5/^Ò*½^ºzDÔÄÏõów^¼dÇâþ–ê”a $…çù¼x T¸û 5"÷[¾ß×ò6ïˆh°,´ '}fËÛ‚FcIO­Á{³Æw¸yÚL7°¶ý‰>Éc§Ç²±“š‹R2‚ÙÌ‹—À\$éö¿z_M½:/h^¼±Ü=m\®é^’óâ%°©€h ßIHDS7Áú€yñ’ýÃï~hŸ“ÂEIäПÝ΋—4b6#4´+ìØÀ¯îŸŸ“/i8T±/ò‰§à´ëqboÞ ù¬÷¸Œ˜;Å3yñ’‹ƒcˆöBÆp\ù³XÞ°ðŒKNz†•ާÇZÞyÛRÃìrP–2¾ƒå šf9Ës†G‰«J{ñ’]ÇçMàÑ/i#éÕ¼x ü>Ý çޱ䂣öØ›·NV¦þfô+ÃØÉŸõ‹—q„ÿE“64‘7zŽ/^Ò ‰ýÅÁ‰:öß·Y,“¤ú©â,Õ9Þóâ%ˆ¥˜x>’ ˆ{öbƒóâ%;vPVî¬>Ñ¿…vÓ¼xIëÔ¢SÑý“Ó¸:îØ‹—4jc†/8ë_®aMïEf³¼Ax.©Ø¾Æ5·üºx †mÀ2ewg?÷¤myŸ5/^Ò Á†zðÕ«àlÆsqñ’ÕBt˜E¹Í8WÄV‹ÅøëÓ=Ú2 >9/^g‚½I÷°W6ÿî{ó%4I”Vއ¢çøâ% Š(.¢†ùSÎc§ÅR£.‹/ÁÑÊê9~³›·Á§]½2öOn]Ü…/Mf¨WγDÀÏ{ôÙ-o;6Uç ·ß·[Þj%ÝyÅt³*–9»åm‚‹¢ø„Ž‹îVÏny[¤ð''7ê§ÆÜi^¼¤M®"á9¢ãaŸ¿C÷Ø¥¼bhÜ¡0ùš|‡a±s'Á ÷Ý7ŽEìÍìcÀûû?ú€yñÄ‚o$³|°ÙQ6:ßh^¼¤¡ô¥&®`bœ±~Ž?Ì‹—ŠÇá%g 6®D®±7o“^P±7Ó0kFñü’yñ’6¡‹²‚[×þhwŠ[Úÿ¶‹—ìX 'J/RëõêûÓð’Ù¨—)õY#<´z¼o†—L,ÌO¹I0t i"ÄZÞ:µ5¥¿€ÑÑ tÄZÞðœãè–¾ë&n'ˆXËEn›Ì {ê…X¦_ÃKˆáÍ﹇&¡LŸóNÃKhòš³èŽw¼~è‚ çš†—{8T§ÂŒûžþ;^²¾CÝŒt—˜€ý›ót§á% ÏÂÔ^¤A‰Wñix —ghÑÁó†²ð%jOÃKçN]ê³÷/³~=ÛÍÄðq_èîGQ¡Û1 /Á3‚·Kû b ÅOÃKÀsŽÓ;5r}œç8 /_Zü1—®Ù.à4¼<‰w»+Lîž9¿z^‚è_ì^„qF^B@ =«'÷¾¤»x üÍq‘øoFÒs1|^¼±ê×Ì³Óæ3ÖyñÔ¾ø®ôø£cýÞµ-æÅKv]A^EÖ`Ƽ>E/}ñ’þqs&|í‰AóÈð=ªyñ’~0ä,ZH» g=éõÙºxIÿ¨TT¿BÍM7¶¢ÒUÞJÆ£€¼OÍ{´á‡Îqg Ç×ÅK:5_žûx¿#8×KŠï`yÛ)UÝæ8’ªÕë‡õYÞP¥.¸F%ø^>s_Ÿå­c¾9¤ï΀puÇ÷µ¼Á¢4¥!û…ÜÛ•â;XÞHªÉUµÄ±«9µ¼M’´ÇÓS‡Þ1›•,o ïK9b H¦x]Ìßi%ËÛ¢g“ð^÷÷Ï+Öú{ó†6zÍÐi°'vSõ}Þuñ’»¼_Êã?ïÏäºxÉŽ%/Lwû&UˆSüf/Ù±Ôk›Ò·œë1ê‡uñè7€RÿBÚzÅ.ÁºxIO¬§ìöµLÎ^Ôˆëâ%;––`6XS޻τ×ÅK:>ö{!»\¥ÂOe¿{ñ,Rƒ÷*x5ÊÑO½¾×ÅK:ñßgÏ\*<>s_Ùòöi? zæ…ïäÊ–·Æâf‰vͳ/7Ÿ9Ζ·Áá†~ww2Þùlyƒƒ!EBƒÌAoªŽ)¬ly[š|Úò. =›uñ’Î ñ{ξý>õï^/é9á÷mMõ5ÈmoÆuñ’³‹µOn©£¾cËìõÙºxÉ~iÑz÷,ÜІ½Åýª¾³.^ÒÙÐìŽøÙQ ¶Pœ©/éð@1}V·‹ú£cd}ìºxÉŽ…fÑø‡]Šò±ÕbÙ…èDrG^1{ó–kán½ð«}SCÃj]¼¤g æ±kO–]×`üáØö*–7н“êº÷3öyÀ*–7´gûfïâYZޱ–7þ!ý{|¶é?äuꪖ7úY'ñ…¸í³üì«–·‰»0É?·vm—€[µ¼aê†Ë§Ï‚ÁØëª–·EøAù0¸¡6Šï`y£èø|ôwf:ìP½y#áÐî_e÷øºÅÒcGq®LJ¥œ“/¡à!° ÕÞå¥8öº.^Ò ×>éçˇÿ+ñ]¼%?ùë™YÕ{]/Ù×µéÑÛ¦>Lœ“/Ù±<ĥ׃»*½2ü;\¼d7­}tÅ? qüÜ“³.^Ò±L‹äKO† ({ñ¹ÕbÁI)¸¡ T“¬=Ÿky«ÔÊ$4©üj–7ø¿}ê‰^ïá­fyãb²Î[€pêáx¬å ‚j­bi·)}5ËÛïj ÿ »˜“El·¼áfIIµV¿Óë9V¼ºå‚J¯âà%r¿uËN˜áZ¶ÿÒëpŽç\ï–7>di¨&T!§Çgãëâ%œ35ìªÑ%Þ‹‹—àÁæºÏ$h-F½«8'/^. p@Ñ«€ˆó§½Þºx .õ&O:GG*Có{]¼dÇb÷aÉÝ ",&ZüfËbáK;õ˜äN°.^ÒQ– ›Ž¶±ÏßÖÅK€6º†?3@¼Ç‘‹‹—`ô€è\Ú×bj}ÖºxÉ~¢35Qu§˜\á¿ï°¼Áã/Õõô±à`´x&‡å 6@x½ä¾HýJß2,oБ:wêøÍQ#Æofy›tî“÷­AFyƒkL¹³ªÞ+üÊ¿’â7»yk\©²{†’|£8/^Ò[¦G¥pN±—?¿/Ù±¸«èï@ÎI(ˆÍKLWør%‘×V¼7]/é Ã#B8exìhxç±7o­R Hzô]©Ì¤û ëâ%»´¡6¬ðø±Ö)¸ÏB×ÅK:†>¨dϽäã{湸xI§ç9œ5tÿx´°«AìÍ[;‚ïCù´WÇÅŸÉiy[Å)¤'#ILkåeyÃ4h|²Ï©ÂNë>µ¼QV/IÿÖŽ—Nwþâ%½³ÒÖýçâ%rÓuñ’ Í¢¦^êýç³ë†.ÃKÐàª:pLJtù³cx TWuÖž¥ ã;¸Òn,÷:‹è4|³|€+Û<¶*GkA÷vߥÛ»c-oâKÎýó’OûÅßfy¥ß[ñ<@$½ƒÊ±–7x0O=w:¶Þeîq­År¡Q5ÂôÌ?¿‡ Àe±#áw4 .QÛGìÍž ¯UCô³•AìÍÛ¤èE‘=áÒi_ä¸2.‹å¢Ž`LûÌäÎ`¼›†—·ýÍ¢~´\Ÿ?†—ÌŒ¡Â”]û²‹ZPV ãǘÇb1ßÎro.R->“„@ìÍlñ±¹†Áu“øÓbË5™ÔFg‰¼^mù0J9:†¤Ž¹gÈn­oÞØ7?žðòÈâ¥õ‹­ô‰Ïê建ÜÐôX̲èkÀ'¦ŠŽÜ7–˰cÄNü1Ϻç_ÃKöi†W0hÒ¨qgùï`xÉœ;û(¤å\Ï8S]34n¥aí¿fp›®_݉µ¼Ya™£C½ˆ' MOì:DhÕO]¼ßìUAì²X_u°C²+ú–ù^²RýÑŠØÕ¡ÅêßÁ𒕨o$ØJ9<]9 /YÊ+K9ÞÄðìÊCìÍ€÷0ö>š:™¾Ã_ÃKÃ"gÍW÷ K K0™Õ*¡šf;öæ ÄUø(Ϧ·ƒ]Å÷KœöS|}5ÝyçðÆ6`ƒáëYè_(ðb-oh†ŸÚ*^xv–çÍð’…©ðã[ÒóñEŒçÁð’u’Å—«BH6¨,ˆµ¼¢àÙû*\kj~^²ÿ½ Ylñ©Èดã-Ê÷Íð’ãÿ¦sÈÒäå}ÀŽ=y# w@Õý¡Ê‡ø¾Ýb¡©þ… Ã9ñÀ óÆašCê‡É#á‘bp~cùÎùè™Ó×>Ç箋jrVýÛÆ™Ïdzsñ’ñq¬˜t³–ì®ïØtc+=Œ‡rÕ¨+Q"Ç/ûÁ@ñô ÜÉt~ÉŽ-‹=צûY踈­7¶/éMAÍÃyŸkyÃvÓPÜ>ëÄ'ão³¼MrU×ÇÞãø\Ëj夞XcmÌPü=ݳBN=8X˵8Ϻå:pEv2fI ÊûÝrñ’%ð µo¡xÞŠ3õâ%;¶`Xí9×)Ÿ{óƲ$%Ùq,ðq É{Ä‹­UuÒ1‡ž°|GlÇV‹%hØjPCkÜX,1ÐqÁÎ÷ÈÇç¿ÙÅKÆñí+Ïžw¶k¿íæí€Z:kî‰Ü¤5×ÅK€8b÷AŸõZΊƒ¿C/1¾¦à0¥4ŽŒªÿmÓò†!ôr·ûY9Î’iyÛ ~õ3£"g/ÎÉiy›ß|¹–bMÂc‚¸‰ÅâÿÑ»bWóx–úÙ7-o\LÖç,ïr”>mþÎOËÛâÞ­¼uиÇäü{óWˆÁ¾C©µÏ¨ˆÛ©ñ¡{‹Ä Kñçáâ%X½ùÑfÁ6û k&Ä.av|8 ƒ{îËß‹— XÅáuîyR£b€Ød± ˜zVãÈÂ’¹ÇÞ¼_Ä&šÉet”gòâ%ãx6C&î—õøÍ.^2@qĬ­8VŒEÆÎ P» /^²O^ü𳩗ù/âZ–7<~ßm–AzU®þ¹–7l g­i!Ã…©QôYËòÖ¸€)šf)ƒRD ‹µ¼q"ÛVì·ìšr ËvtèY,–¼>¹7 eµ¾áçoú,oGopê̇ײù&x {f¤‚áUj/¿Ógy#SXß¡¶5f(Ãc-oó×ç5ÃMïEöXËÈf¹”*~Øyìç¬ÎŒµ¼QW¸‰îmÝÿÚ„Þg¥Ïò¶0sŒôß©I9çø¾7o…ìó&Þ pâ·É˿òX l´à&e®¡ìL{Þ.^‚[ð 2ê¹7iq‡çââ%ºy¼f¹{F*w‰Ø›·ýë6Ì bŽžh°Á¾ïÅKÆáÔ,Ñ7‚t4x †+ïØ›7èÞ¢žÊqa]â8WºxÉŽ¥&ÉÔ»ªVû}KÛ=»¡5pOtCÜY™þ}‡ÅÒ«Æ]† ÙßÁòVRxLX†õàóϵ¼UÐQUÀ Zq¿/Rþ<z ²GÕ@'o„ky«½™Á£÷xΆcm)[Þ¨Ù=„ã‚ ‘òÌžãlyÔñ–Ù…pe7¤7‹-Š)?Š­î5°c-o°ž™Êm.v__ñ¹–7öÝEµCJ«O ž²åm|ZQ@÷ò0~FeËÛ¢^…`b@”³x§ìXËîc_À¼<ètþ}‹å ›79?ü>‘.^óóa,æ£ÀÝê!±7oþÂ¥£{juó½–K/16æCrVc>ˆÔï·tñ´>]w2ŸU\XÃû¬tñ˜Gç×ÿ¢æ-Ž{ó1¤;;œÊ8ï ¤7‹¥FѽÌ|¼k|ßi±¬{ø€€À7°ž¿ÃÍÛ!žäØö:z¯eú÷½x Ìwé ýf?Þï~ǦjyC%´ëuáÐïÇwF)ˆXËIVM|ûNµ×KÕòFq•¥w,<¹Q*ûßV-oèß²kÀÿ ?bÐeùyV-oÂáê ƒÑôݱ–7âE4Tö“ŽLs§ZÞpî'©*Ïuµ{²ìXË€pH-JýÐX§Æ³S-o̶®Øêܱþ;4˰ÐFïï0Aá8ZŠþn6ËÛs¥´8¸¸¸âÏÙÅK`îÖ~pĆÇ#x¯;¶xì£ËÓó¦E­a.^“0¼C²›Z)MZâ;¶Y,Þuæ3ia—Jü7oTÈÍ­À[iî2¹³çÁð’V¸6.tÅ+\Ö{óvL]“ÌXKîÜN»,ë´á½¶ÏÔÉÚ3ÿÛ /iäD~KgTÄÁ]Cí‘ÅB3#ÉY]௲ ˆµ¼qgJ½ê¬ñBæ±ÅcW§~k®Ï{½dx gÍ8h‡äªeÎ /iƒºÀ®ÙÙÿp½Vçƒá%x3MœØëÔc~ß×ò63ŵ÷$jF}fxI[Ôq‘½¤]ÏÒ|ß›·ÓÍ|rc·“¶iþ;^Òé9V¿Ð7‚ WEýÜ1¼dgô iº ´Ô0†—\—ÔGáü¼èP=öæí@OzFUTU²÷‹Í|Îdf9¸ãØ"†—`*–Ò¸§Ö1ûšÝgÉð’^°zk¦ÏÔô…X! Eß /éËö)4tObqg0~ß›7jçÎþèæZ íÇkykèSžZŽП­ÝüÆ¡Åb&¦¾}y6¤rF?dxÉŽEñØ_Œ‰{Tþ¾^ÒûY–Wÿ‹VRŒ÷kyÃÁ±/¿ÐÑšõ¬–Ønõ޵¼AÛb(Ïq/¸²jÔà†—`@„ÆYæoô`Ngfy>×òFF=ÒðÊ«ç¼¡Kõ -™t>Õ{ÃK †p$vÄ2Û‚aW?boÞ°0ŸÑ·/¤†mëP[è/˜Ô{pNú3ixɸv"vÓGNƒÿm†—ÀRN}‚àuøMZˆÆw( ÷‰ÿ·bVÇYÒðß×ð’ÓìÕGgd´£»ïŸÛ,¶Pñ{zéOtgvìÍÛ@ŸPU÷)—•ü=6¼d@ÁoÆ)’-[Ü›†—ÐpãëŠ]e®Ç´8S /Ë(~³¡¾%ç…µß,^×CÌU;Ï|{<ÖòÖ°›U;/ïr >ö^dÃKàüä—‹ƒÓ,Á±¶lx ²†Ý3ÙÃÎ,1³cÙð¨^c\(¼ŠR?õwÚ±–·‘ª‰2Ø^Ò8?ñ¹–·Åy÷ƒÓZ)fÂÙð’IAÆ”C÷Z¶nëu~‡i±8êšxp´\:ý¦î²Xà{O³qPCü숗 Zö£{–´‰·6 ±7oê û—žlñs[ñ¼^2)r›Åˬ@MüvlñX<¿ªk9é-úEŽ /™™zžê?”h]ÑC” /iùþÛdv°#S–=*xZ,zSå@xuŽï`yƒ£Dêª È‘Ñê)~_Ë[Á;;LÐBÂîð7}~‘ /™TÊErq|åÖð~>^²ëL` Ï,”œ‘æs†lxÉn+QWËì 6 EçÝÙð¼\û;ÌøÍPŸÃæÂg>Ùð@Ø ½Aì õ&^² ãôúÏsŒ–,þ¶æ±4&’J‡ÂÕçz ;öæmA£lâ‚ÃPñ04ˆwì°ØLÃùG#wÒ÷7¾ï´X¼oSzôQ@A}ä±Ëbé-*µg£=ßr~ß̆—`؆s]¹ã؃è Ç&‹\œíáŸÕvþš¸c³coÞv?C%Œ8öI1Pó&^B^² _2•3½¿/w£¦¿Ç†—ìÿÔ©òôoY}H!Æí±¨e?«pĵz܆—¬z·ÛÎÇÛófxÉjÜ%{žÖ—˜Ýúw0¼d5ê&e­Éüâ½0¼Þ™ÉŠüJôúnkyÜøâÝì4Xû‚Ó /Áom7éc¡!ìÕsax ë¢1Kx‚QL:ϱá%‹äÎ)*‹×'î‹‹—`F¶8n–»›³ŽÏúÅKÐH¤#™Ú±ëÆB¯ÈšƒáQJTîù‹—€lŒ®üõ¼¯ÇÝrñà˜ðyÍÂ' ·dUŸÏç‹—LŠå!£­fÐSªãˆùâ%€›Q?èÜ” ÐýöØj±àà ñ*ÂìC˜åwìÅK@”ùS÷Æ!͸ڳ‹—€Ð¾\‹Z£‚4²?ïcs³¼5|òT~Ô$¦P[|_Ë|2s~ôÄR­±€XËw=ÃoqA Çw±sˆKßXl­¤UB'½aÅ¢î±ÉcѤÑe­ðÆ5G¬åm´Ë §~Àâû®wüê–7d.סzŽä ú.  Fê9¾x NÑ:Çi‹~_ÄÞ¼%¾0SkeˆŒØ ðÄf‹E§¯³ÐU ñê¨.^‚XÔÂÚ×`éî}V¾x † K퉈Zíþ;\¼ƒªÞ`‡oÞ?ÎêÑ=GQü·jÄ÷µ¼‹2«j’äÅçø\Ë[Åâ@×>‹Ðø—ãž–7¼Ç£ ‚œ{>;?­XÈÂ{Ô[‰þm&/ßsp]uå8¦å ‹újÐ|:.ñ,oÄa²<“» Hìâ;XÞ:DEZžãçïñl;‚È|îùÞJÌÆó´¼uÐuÔ?«`í‰çbZÞ:çzÏ~Žï/}kyÃäièžÚî*}¹â;XÞ(<—Õ¾²$>ÊËò«VÑç¢<µ-†ßËò‚i*ú·AGÏ™ßYËò"è|| ÷!Y]œ/AN¿PÝçmœa;&–/^‚3‰G;äø G..^2Ác~<›ÚÑyòß÷â%hÎÀ_êã„Ì,óÅK‹ÚHûã}šq&±7o~ sŒòhìS›ÛŸß‹— XLÊà}¼–ìàaHm± ¶=×á­¤\ªrñЗ³êœÄçf‹Å>º¾›upþö9n_>Ë ç¦ð ´ÄtÇZÞ:ÅJ„›ßó7ÖøÍc¹ï»öp•!ËjòYÞ`Ÿ7Ý+Ú ½‚ÿ0üs-o­&}À¾”æÒ³º|–7\8©ËîNM™Z9þ6Ëwt³¾Ç´Ö ]lkNla ž¥ÜÛ#Y?=6Ylá´£h¿ >®{xaMÉb jÏÀÜ¥1{ó¶ÿeƆ~Çî&Å÷½y+hhò³š¿Ógùïpñ’IO¡õì}ûÕ9d¹x d D‡ä™L”¤\ò· ‹…Vû1±WïçËÅKàʈþx*æ XÌôØå±ØËPôÚÖwVÉ–7øí¤JMÐáñÇÏJN‹¯‰¿4Ë”qäüùüfË}=»p%F!‡(f¬%[ÞÚÁVmÍ„Â5ëw¬å»ž]våv¹Ã½™ß×òÖ¡ŽÜšÞoäA—¿ƒåíÅeϽAÖ-V ;<>byO,£¤pÛky£aâÍúR`V¥µ¼±Õ½¤ i{ðtí*ÅòF¢øÐ¦³+»}¥XÞ°Ü?t·º`R¼`stc Mt¿0>ÜWˆó¶K±¼­"Ëy×3ñùý<¶z,8O]pÏÙj8 ’;±'!žçؼ€ÍEOö›]¼°0=Vè4`­0z|îÍ[…$czÞÍ1!&~³›· <êÓç’Ëèãü½xÉŽ ¤»žûì®9Öïÿàã¥D~×]e*|Íñrñ’‹Ý¨$3K¨±JÏäÅKv•\(Ì#­ÇÖô½¤rñ’}«à.3Îj@rÜ÷ç÷â%¸°¥|Eþdôèåâ%;¶áž—> CÞÀtO¬ånYEç8£žu?ç /©TQŒ\¨W\œ3] /©|°—è6ïwººEÊùÛ,oðÁñ¶ 2üÏcFU /¡™¤¤OÏx;öæ­hÉÅ.~¹Ñãû޼шZiÇÏŠá%½L •j˜°;9¢þ5¼o-ú$Ñâäº'Ƕ‹á%nŸÄâÑyæÝÅðŽÌÇOùú)ŽÃK:ÿIÞcXü­X7A¬å­aXÜäs¡±…2×ñ¨bxÉi†Ü'ýÁ®<†—tú…?ýФ†vs¾Q1¼¤ïþ“S½H°ýPœoT /éÜáWÓ+fk´øÛ,oØOs©§Žî¯É÷µ¼a°œ[Þ piØ"z¿ixIG!4BŸàìè~ʇ)†—t\¦£éo–Y¿º^‚eepdwÝ&à(ÿ¾†—pV¼t?v÷Òµ+] /(Œf’Ê€<0v /ÙÎIåeÊhÄ>Y1¼ ZÀ®ªôCgTì-ÃK÷Ô§ÎÆ7ÍØé±)ÄŒNH>—<;†— ,³$¡—*zžUÃK@Œ‡Gp›ÈS¨wl'¾^*žIõ)æœ7ù̧^ƒ1¤ß,¢`&Ü<¶X,—Ä}ÇœÓ*ÞÑŽ>ßÁòÖ©ÉІèº&–s%ªá% S•ó¡-bü¦ƒ f€Ç’Cu4ï’¿çs-oXíÝåÐT]aÎ¼Žª†—À8WWÞ`ÉÊÛ®†—@>[wÏ VÀ Ža5¼pj¤¶ß'N2O·{óF¾¼/<‘·âçY5¼držštWŽ·‚ÛC!¶X,ô®®e¢OE`™Õð Æèßôümš|þ<^‚î óЮÜ:¶×ñœ^‚Ng”ð×;¥{OËQ{ó†'zóáOåJTÃKðë¡ç•g[¸è¥‹Ç.‹¥žB‹]‚ïX?£ªá%ÐÁÀlQ}H;ûXǪá%\LžŠËUp¦”—Y /™SVŽÖø¨™âû^2Ñ‹Ì.3ÖZ0âZ±¿Y /á‚+Ïþ1ýü93¼dú¦øF•#Ç»¼&¨†—LJåéó )gRÒâûZÞwŠå¾ØÅ¡IúsfxÉ‚"yê‚mÃ2’ùê ƒI~cz^_`û¸‹ï/Úm‹ñz½ºî8×ݯcÇÞ¼-0ȾÀa*üÆ1ÞÇVÃKXûЫ”~ˆÚ¥Éû€jxɾûÇ‹{î.­Rø ¾ïÍtìcàÔ™„¹±Íbñ<¨4œ[ÀÛ=»ëϹαJpC«á%ôî™Y½Á:ß¡˜¿UÃKðns1ôÄöï‹ñ’ó®ªá%k`·OñIð®ð Æ9ix fCêwß3JDÿV /¡…½ÜÜ™0g®ùR /Á¦»FÄ58p¦^¼C¾ž™÷y]·nÇV‹ ^½Z%±¤øÍcõ§çåΫ÷±õâ%À4àòè#B cµßaÜØDE3Íà˜¥6²ÇN‹Åó ¾ÊÇ‚ñ nG½xÉ:Cþà‰?ü¯¡£ãŒzñ’…s ¡<ëiOÿÜ‹—`‚óÙ`îä§l {uÄæ[(Ž)ûþõÔ©¡ÝT›å­¦"Íçü¥Y}‰û¢YÞj¦áœÜoôpÜ·‘ÿfÍòó5Ñ™.E©úµYÞ*Ňêé~kj\›å­Ôy)f>Pîà TXË Sü!aJ-Ûø}-oüÉ$þdè/Š%Ì[·¼EÎ?@4œ•ö¹Ýò6aÜeϧâ/ÈóÖ-oè¦êJ@¼=«^Eí–·y–z]*Ìcc׳vËú‹Ü„O€yz´Ç÷½yK0±Ç¯.Ó?+p®zñ’KïŸT†ëìˆK\íÉêïG½~ñ’…"da]Kvl:à±Ëb¹–$x þH¸Å™zñlfÕs$ý”kÎî¼±4×> Tüäû<»wìÅKv,·lT‹£Ófsij~ñPCÑãÌè7÷Ï€zòK^ƒ_¼d%šñ©o_íÄKJÔžÃòÖ°ŒÞªúIÅ8K†åšÉÑ‚…ÐñùnI–7rèUS¢Ï=Ö4kyã9åY‡Eš½¨Ï†åm@þÓ]ûÔh ,vZÞxôuÁðvûC\ÙçYuZÞÏô`LÇ›1ꨋ—àŽÄ¥ýE¢–xð êÅK`‡Í%[™ ç³óÅçV‹¥œô|| zŽ¿íæ-£X€§ôè\k+boÞ°V~ŸœgX–ÄÎk|‡›·Ìù¦b ³ñGß±7o‡”[´G‡Î?.^BkEàr±?„oÔÂÁgçâ%°hÅ`N¾ÃÜYIQŸ]¼d¡n“³ºÃ­\qåº,o†Pœ ð7ÔºzYÞ`³´ëÕÓ-,UâL]–·IÍžô)ÀÚ®ÿËò¶ Þ”çsNbÌ&çï²¼a9ëS®¦¹ôC‰Ïµ¼A@ð‹gl¸~èâ%ël9tå”QZH´zêÅKv,¦jºÓN…@–ÿ`Äa±x‡šô¼+’«{?Ô.^² Þ»/õ‰§'rð ÛÅK0'èx0jÑ•ø7oзßSzÈ}lMÅíÛÅK å¼”ï‰s’üÉ–ã;ܼøI@,ZwåÐ_t/ÚÅKÀf˜!öÀy< qÆç‹-¨Ù˜UU—µ}–7¼^P T~ ~²˜·ÏòÖó§Eç[,|®–,oXØÏ]¸IûfªÔEiky#X1Ý]ÂàœŒÙbK–7ö¼UwH GÊîU„1–Å6jéž%µÇ‚‹Ò.^²ö€ªùÍUš¯É÷m»ßÍÑc_„ /f3Æh/ÁÆ-DȽÇiÔ4ÿåsÈvñàîÔ¼Â{˜“Å÷K¢ŒõzØ©\&;uõù7od/Œï úˆÓëvñ¬VÝ›¡ß-ñÔÏf(íâ%«È—“þÑËÌß‹‹—ìvJͪí¶(qÏúÅK“ѬE÷[X&Ä~wË–·|ç“ØrfØW·ly£ BR=&Pó´þmÙòÆ%™žt_„õphä¶lyãöï3êü’·lyÃvÔî UÓ»3´CZ^KÓråÙ,r}â}+–7Ìæ¿1”¯ÕeÝ}l+Š{6ÃKúâœW~‡ qÈËx. /AgÀY¼×28×2ïn†—pÎõ-Ѭ_–Ž’ ±7o4IÝ'£zœÐf3< šá%ƒC<ÅKö1Žº$4Tšá%ƒ$ŠÜ´F,ŸúÇîØa±‹>Ar–ôš9¦ˆïpóêÎþ¾¢µº‡Æ{3þ¶e±˰3‰7.`Ó{•òy0¼¢q˜·¨ÿõ¹‚ÿÐ /ØOC}ûØØo†—@t —ƒro±.õÉ}lx uv½¡¹ºTô¥‹ó×ð’7õïP~†–9tÕšá%x®C”3”}VtÐ:kk†—@u…èÓÎ1fà0Íð’<êËŠ{¢<Œr±–7¸W¦Ðœå®2j{é7 /9Fvíñq¤­LrNC3¼À?û"yQBÈqfx \(PWË}Ü;ís|n¶XÔQ+é®'÷:BŸ ^‚EKxuÁîY|î²X̾T§¬ÅùŠãÝðl @+žÉ†-Ø; µ¼aî?óP°ãÙäço7¼džÁ£ÓP©ý8#ÖòFcÕ’© 4Iàóky« *ÿau޼ꆗ ïƒÞo™»gŽïtÃKÐÑbOî·· Ù/솗ÌgÑ3ºˆ@…Ýc-oíì–>ÚMõÓ; ^‚ VŽ¢ËJ£ìûèÝðTj(D{·B"zxÝðTôÐY>5;½~膗à„Ç!!ÚyóÐKü|膗L8pNåÀåËÝÉî±–·Nò">x…ZÌí‹ï`yCÕ4”+ \ãÁ‚ºá%“:ôu.Ñœ-¤3FÞ /™ämë\:c±Ç@üf–7<Àc5±²þ ošnxÉD¼s¬=ëêî܃nxÉ\U„O¿I&÷7ݱ7oäJ|ê‡ ‹µ°b³Çrç*=guUL·^‚¡î–÷”&àÆcxT7¼den÷©(Žª!Ø /Aݸfê¡û… }×?ÿÜ›7Ÿ‚ÿž>€òŠþ¬^²{[h³HϼG'b§ÅÂ-|V2zÓwÖÜ /¥ ÅT= <¥p:òß×ðÈe`v+w,öÆUŸ«^î¡îØàΪùáAwÃKÀsØW·úaãeD¯ßÁòÖk§#«Ì©^Ýð’E-üÔUïZW«öø\ËÛàF¤j17ŽŒŠ×ˆÝð’Å!´z²ˆ*—µ^²ˆs}S{ÓLM’/~ËÛ€Ò»¥d|nèôvÃK—¦¾ïå#õwÞð’}˜$Èh©G;w'›ã;ÝðhìÁW@<¼ug‚_Ý /ÁÀ„¡Ðüb"±–·ãS¬{j(ÃÄ}ÇVíñrás;TÞ±.ß×ò¶8Ô™p>š÷Î]솗ìÀ@ª*Fz¬u=ÇÄKæ÷J)3ÏîC|ßi±àDÑͧæ‹Ùð'^ÂØAÁVÅ‚  E[û\â%'6ƒ¿«ÌgÞí5b'^rbk%¾2¨c_rï”N¼±Àì?å.¢å¡ŠÿÄK»ÈãPÝ:ŠŸ¹wâ%ˆÝ³êseرaÔ”G|‡vc¡ê“C/(ÿ%ŸŠGuâ%ŒålNûÂV5×8wšåóù•uŸúžû¸ö\4Ë[Í_Íî ý|ä7[‹qóTž#ýëWîÝòòá¾é•/Ù;ô›+Ix_Ø»åmP°J=è2õí‡ã0½[ÞÈͯÚûwø| ÿ¬wËÛ"g¤†Vl‹rYû°¼ax<ôŒÚÅszïùqó–°èE[¹Ioq¿›·”žåŸAÎF÷û(‹;@Ÿuðëü‡>ªÅöôÎ/Ê"·#öyûhË œ…·ÝŽg“ÿfãæ-‘h ÎÝCR"zDìðX<¿Š‰aªþÔ¿cZ,—a”O»ïTŒàFÄ.‹…EÕÞiRT=ô×ûü, çÃ΋m»ãF}ZÞhÜÚ3û¢srúÌ‹&Ppû A ÔAþMË[¥qÒ9X#ŸìÓòF쵨_$›qvùï0-o•{ÍOÁÉæs‘>»ÇN· g¨˜oÎ8§å ‚4²OVÁ« ?*úÍiyÑkè®gC‘¶•ˆµ¼Q_¶Èn5\jy®îÙ—å˜nèNÈWî"‡¯F_–·Îٸ܅¨ÿF¹,oP“K1.˜¡ð(rþd_–·ïÖ©µÑÑõÎ?ëËò.*^ Ñ+&§7E}¶,oXRµX{ÿ™tØ—åmÒ”X9È‹r 3ÎeyÃaðú£7Ü!.‹XË9.=ª¡ByEÇ®ú²¼-îa«WÖïÂRà0‡O,ˆÑgåØGî蟿ãK ¿/I@1™{Óc³ÅNî± ¦°ÈA^#¾ÃÍ[NÔbVíÇ]…%Ý_µXÚÈÈ}±Ÿ¥2Ô£r|Íb'MÔ•dáä8×ønÞ2DE棩ž[å¹ÛÍé0ûqW}r…c?`|7o¹bVW”¿³x~ßaY,@ä™T'a&öfF²¼U¨&gõ;hœ¿ï G²¼Áh;•³áŠoœ“#YÞÀøÇ[.½H%<Ÿãs-oû…³äñ} Ö”c+#YÞêIõwÂQTku$ËHÄKý¥ëäNfèádyÀHgÕÚžòøÅ{§‘,o«ª·‚gPJLÄZÞ˜ÐO½ö#]Ôûg¤å±ØG×=µFÎtx‹Žly6+ưo…´b-o“X™Õ\ÿ¬o€Â\ZÄZÞú–¡ó¡M?ù<Öò‡üܱ»îÏêÓ6²åmуYgj kk²1òÍ[¡öãRïË]#>³™‘»ÇÂ.Y¸j»PG/Ò$öæ­ øBw±€Þ žX`ƒ#O‹..hç/ –ÏqF^Ëá`hn•Úc¼„;k”›·ÂÅ¢ÇG,aUUæY£$‹íüGUׇ³Žá<ÝQ²ÅbߊŸÄ‡9¼ò¶G¹y+ Ç%åÿ"týxJµØI íSαžˆXË[Á®†zضR(Í¿o±¼ÑÐçÓ9z¥LTñ™Ï(–7îùÁ» knÍ÷,G±¼UàsF?´Ǫ¢oÅòVy—)Ö†â˜3.‹­–7ržšì;µÄú·ÆyV-o µ\’Þô³4ÄÞ¼‘"øø¿åDwçï[- ­`õ/l»VáÜŽQ«ÅfY¸;wVSµÒFmÛÀZQÝÛy¼=\iÔn±ØkÚóÖLÎtßlx,–è¾§hI5͆á%õ˜+Nõ¶ƒ\–[›#vY,ð’çÝ„,1 ‹5¼¤Bz|ŠWïû¬Å?…Øä±óÕmÆJERÝŽaxIámè{ ¶]+kÄZÞ Ä²fÖ<êA^= /©XÀŸsÈzdã½0¼%zÈéç6ý¹Qoû-Ãð@èÕS²ð2†—TH£õ¦Z¿®^#ÃK*Ô?æ>ânÉɵŒ÷Íð’%h—6½³ ºšsg†á%=YV¢ !”Úþ¹†—Tî0UÁ YɽòXË[íç¤ÎM?Îâû^‚é 4_´ç¥ùÜÝ'¦¢3ËaxIˇw¢šõ£¼?†—4$BñLýÆ©=ç™á%Ô7‰"5mæHù‹ï`y+™Ä©¬=–âFœ;†—4‚{i®Q á &–ñ̇á%GŒ6ë}œÁ©@·gŸkxIƒ€ÙÐ3Üü¢³üaxIƒ©Ñ–/¤‹fß›†—4¼´Øž”û­p¿ƒá%TLÎãÑ?£[¾Ûð0@P’ùü>f¹#±–7ì;=ž•û'õ¤á%­Ò}çãCʳ:~Ë8½ãëÁ1Üm 8 3úcÃKŒ9Aµ-üN¾‘¿oÓð°ÃèÝø\H»÷›Óð’Fð‘ÃgBhÜ"{ç§á%ªIŸà¿}qöU皆—42™õìƒq'׫ÇVÅ<àñf\ÀKªÄZÞXÈ?3ìÎ9YhNÃK–zž]pÈ·uÅ£¦á%ûS0ÃÖ¾°ÕyÖc-oxV×=÷ì@4ã¦á% žcƱ‡žÙžixI[äR©¿S©¤Tz; /é0C›Uyƒ@x)Œí±7o;ÐÑêÊémä÷9¯b^ÒyºÂãï”Ásg^Òéç£sôvV@ªóЧá%´Wˆ™ð¿™RÃôõÌW“d^²«(xÿÔg/„ÈØ†—ôB£µ; ¸>ÕMš†—ìS¦ƒ_ý©¶!àxÎ /é4ªÒùæ.ÞÉYõYþ4¼¤cï+µ,~Iûå+œ1ylòX”ëIwh½:ÿÓ𒎱©þN»J -Î1óix 1¯ªöy¥-sòš`^²ce uwøñû¯K¦á%¶w¹©ßL.'6þ6Ë[kaí:™Ü7õ™Ï4¼¤“ì;>õso´Þñ;XÞ0¨u=:pÔñvý¾ixI‡Vû>¬ÕÛ¹SÏÜq®ixIÇjÜh:óÁ7/<6y,þA9Ï>`g0žuÃKz'_YûØÄtÊçZÞF†¦zÞ¬F~ŸÏy§á%àƒcg;8D´|õB†—tb§Ÿî“}tZ–^Ò‰ ÎõÌò1:ë>'›†—t õwé߃«ŸÏ4¼¤ƒ»ŽvZõ@з,Ÿ±NÃKú‚. úFá(á³ãß×ð’}뀜ñÅ;ߎBpz§á%·Ó·d‡©[™Ÿ{ó†ÊdÅ®ç/†Â5ÎjÃKöWdR”“C]í>âs«Å²8W-Ð}Z –Ë{óú¤Ð Z»òí¦WÌûØð蟡ç]ºsÅ·sN§á%þÒsµË„E<†—ìX’óµ‚VÏ ~õ4¼d`ì2?N˜ªƒÇáçƒá%°€Á‚ŠðÚòñ÷™Ï4¼d^ºß½/ÌòhBMÃKhÕ+Á±Š†ÅŸýóº/Á4¼Æàਮe§Þ•÷Óðx¢GW>má eF¬å Vãïì<ÉUóþm^²¯1¨[¨Ö_'ÖÔùÆÇÇ0Ìc-o$è©HË•^/%>·zì'l]õhÅßÖ=Žß†—P¿ìñghåzÄ÷­KáDÝ«K¬såÜ1¼ãà0é;ÜÛ3ljþÍð(oƒ[´Þ ~šèE /™ä ­!½€9™çÂð(ö­«¦CbkŸ»,–ReÊ‹p=Ú¿£Ç^2Y,4åÀÍJ5Q§á% ÞûŸê¹Ëб–·šÊ«I² ò£5¼dòêÖžw_L-éŽî4¼dòPüœgCÙ0/žg†—@‰ÚŸ:³$çIî,ÃK°í¦g¾9OÇc-o4€ý’ú®S+"¯ø¦Ç– …³šk–Ÿ|‡å±lˆ–ÎP°¹Xü½X†—`›¤‚gг$4;—á%Øš ³–{Ãs›ex Øœ_OÏ@—ž¸[–á%“£ ý} <²QÓF¬å<óªœôN:nÜoËðú ¤¤³ŽZÉ1ô9ú2¼“¢} ¨Æf¹øs?µ¼ÁèrfÅâ ¶çi^‚jº<еUîõˆµ¼¡GQ :œÔ)óça^òÀroæ]gG¬å ®w#Wõ&_|罿X†—@€ÖxÎ’¢½Þ2¼°6—-Ÿ]ð¬µý2¼ä,³ŒS¸>Åñ·YÞ§«7yi\¯ûb^‚D€Œ÷xÓà(êŽm/ÃK(d˜C”6oX *î­´ / ö’¤¶ïôûŠûb^²Œñå‡#[òé»ýû^²°ñ<›úu$ÔÄ2—^†—,Î7‹ø*C‚ «î2¼d ˆÉ®¼Ç‰;õñ¬^² ¶óêL7úg¥Ÿ[=¶½:Ó56žÂ2¼dAÇe*¾Þ p6™/ÃKV¦€o§B©ìþÅï0<³Ðg&Á&=´å—á%‹JåÓÝ(X(íßÁófxÉþ#{4ï§æ¢žcsLa^²8}r<uä±ÉcÇ»ûÐ@EáϤá%ØÔxù;”uQÍ—exÉ*<@å; ðíq xÞ /Y§¡qNY‡5)Ó¿ƒá%«ðÔ9ï6á2¼„$Á©ü(Òšð@ø{lx =æRNú¾/HSßÌòV«Ï^©!å‹Ïµ¼‘¾õìoöL]×êY†—,Î$fÒg½&jsûï`xÉ‚äƒÂC×ò6¨¥øö88üšág¨-–û õÑqYüǺÇZÞ°ÞŸt/´ÕãÉmûoàsz,ïM­'I“4™(ÄZÞ}ðOEÊдø}-o®øêÐ;á2ºb-o€˜×ã¿Yè­äš’èøo,ú¬ž¥û9C¹bõ/ >Å¥¤úžÐª iCÄZÞðsèNPÔüîkyƒáá§ÖAž¹ëJ@ÂÑb¹›ª|ÚÆµ{]kyC—5Цv`¯ ÛžØ#þ¼{Ec’H’õØá±ƒJôR+·ãÁ¿Ù´Xð ?Õ7BqÏþÏc—Ç‚­¦wKÍÄÁ‹?g/¡ù¼zæ‘?‰ÃÄ{ÿ›,ÞÙSg3©<<£wÐðç¬ZÞj§fò÷ìz&’}<ÖòÆÌVõbn´CÄZÞd?zLýC·÷}ò· Åâ¡Ö;ûµ J|îôXjlMÇåHäF ”ìݬ–·†ª«<^$ô1_ÍïØfyã>ÍW•'¢ExÈìXˈÌYyÅ(a¨ëîï[³¼Ð–´Þocˆ^lf,¶²’à‘3qž5Ë73’Ö%Oiž·fy#¯BçÒ•)ÿœ7¸c-oöÃrïs…Ôó¿ƒå î»èV¿EŽ!m´ŽX˸Iµ˜÷ËNï8£šå ¤¥¤Z ­ó—£&èŸÇÂoFædT4‹µhÄZÞNw©ˆm¸ ý;tË‹ÇþðŠÁ^Œý,ˆ¼Xl…^êAw?ÚUÄV#}>ú©Ô—›þ<^r¼xg‰y p|´Sq·^’Ðf?ZÁ»ÒÈ\Ì÷\^—mð@¤ž¿DzTù7vR Nù0£ & /9:º;¹ŸÑÞE3æ@ ­úåwg›„Ç&¥‰ç㉮Z‰wÈð¬ÎP—;¶r'Ãyƒ0G¶X´]4j g¹åPþx–^’0°FÇ©8<;=jDÃK–³jU¶€ŸIO#Öò¶€Å§þèÙðJþ¬^’à%=ºàñ—Ë{Óð’ÄEµ BÓÄÛnÇZÞÈ/YojÇZˆ­Éÿƒ•1‹ÅÝýh[ìÿŽ>±þ·^B#‡ṵ̈(ˆÊŸÃK2 fý”ƒÑp¸c /ɘ¯¤lƒ’~F=GlµXúÄ?ï<094œÛ,–ç²î…Bøƒÿf†—Pÿ!å‡OØÇ6Ï›á%ù!%œ^¶‰íØé±ý¢r¦IíÑ¿^’ÁÉ™ê÷…í.ÔgQ^’a,“‡z¬Ò‚n¹–"&« Îéx´ Q{öÏßMÃK2ÌȆÖë ºñÞôßÌð’Ýî~ÀtU¦¡,ïQ#^H8­bñÜûÒïky—5©7.Ö,é%±–7ê²*Ϧ{T÷!Åóm±+Ø@¼Öê¸/âûZÞ Þ8GR¾\å®rôÒ†—d è|: Í‹;/Æ +ÏbÑ:ÿa»†üìé±–·R¨éûð×Û±–·ržÕÇ×¾sv±–·BœKyŽX(ÃMß×òV°ã˜õìÃf öEšÇZÞ(®g_ã™êšÔ°}óX˜=¼LrP?‡’á%K cäüàà+¬xky£W±ÏÃ3ÿ"vy,5ëUË‹<¼¹0¼ fèqT_™e®käîØä±à|LÕÉé¬F|®å üßgoHèWÄZÞ°#¶TÛm7Rg>T=¶z,¼•ôŒ*pEVæ±Íc+§ì;{·_üm–7–æøBk–(Ûå½îXË=ì‹Îyô`ºá±À‚ä=Ç ½Ëw°¼aΛÕ3<Ý–†ÿ̶X<¯öã:~ÂñL^’é±£ÜÐý€áñœ^’ýP¤~€9w¼‹ÇZÞ ä–”ów¥‘×Éð·³ú8¶FkóþÅ÷µ¼Q4 im„Eæ –"¶{l…Ñ«™1µÖH†—d 8äñði©]ê8A2¼$#¡#pÄö—ù_]* ŸÃKr§ £œëûò@ŸeÖÛÿ` ×c±Ÿ•>-æ"Ëk®dxɾµ‰ÙÈü¢‚ú5ïE’á%†yÈù‹Ö8—ßYÉðØtî³Zfð±%ß·zlC>“bÅœuŒø–7ô Iw˜ ¿‚ÆxLpî°X`Y½iΫësíXËÛè(»´O¬ ¢/L†—ìX,à¬ØQ€ÛR[°Ü,<Æ,ŒÝ .Zâû^’Á\: ­`í‚"àïá%yRU|’\Ñ}ù÷5¼ 8T•3MŸÌÀ“á%_ÿñQÈìM[ŽïkyCß’RR.ù¿®µºc-og‘Z5¿±’©ý|2¼$Ãöp6ÝóáêÄj#þ6ˤ™–ÎX[%¬Å¹nx 4ÁEiê²Ä&±–7,Q硵g_ÜŸ÷:*^’VߣWAN¯ïãìXËH Y=VaCú‰×ÖŽµ¼¡gɪlj‡.º·`êYìþ!Çãá…Eá­ìØê±ô\XŠ­ æŠZ9^’1äZƒ×w÷¸ /ÉtÏÔ¾°5Ú›Ž˜ /Ó0¸¬êa‡êƒïØi±¨'¿Û28»-ñ¹Ëby™ôøo¶ ñíXÃK 5ÊÃÛõ:êI"6yì¢}ø@ãUÆägµá%ðqÄYç$Ö¢‰ùü-^B­ñö…ÇÀ¥GlõX|ˆr;¸æû›;¶Yì⎭hõ$ŽR«c Éð’B€]=CàA(ÄåbiÝWé5õ™á%ôÛøÆÃM"޽H2¼¤ì^½‡3ž_ÔËñ’dxIÁ=’Úƒ‰Ñ~^jÃK ÷0øÊà¤G¬å çÆ˜Ú“UÅž±–7üÓÌZ¯S~uø|3^Rh7ÏîÍ”¸‡ /Ág@ÓLë¨B®°Ïc“á%t%˜Ï^Ò:Mñ^^‚  ]ªW‹º3êIÃK §bº£0*u ÊG¬å Ó” ÊÜ÷Ïqg^R¨5µ‡iþlݱ–·Êå~ÙoÙ ¾}Š;Àðz¤æ¡Ÿ[û¡8' /)òÕÛW ¢¨S³á%¥q;U÷¨ÊÑvóÚ(^R Ú‚Á¹Ü-°Ž]£kyƒX5Œ›äY§ BvŒ?^^¡OÝQHôEìky£=úSƒÉN×<ܱ–7š¨¾çþ‰õ[÷X<,¯W25}÷̆—.åUìoÛE‹–ä7:§»×ú·"U§lÌŒµ¼q1#.kÓݳ• /¡ˆ{Ϊ²Ÿâþ /ÙG_{ý*J3Œk¦Çf¥–Ü…¸jbE±–· 4­•)O€s2¾oõX<;ëÑãGà>ñû?ZÞ&Aå4ìâ¾ÕžcÃK kùòwúÁ¥›|®åm¢ßÔY~/â÷w3^RfÂнç }Hão³¼¡IYö°±#Æ ÃsaxIÁ:ÿ(êK0èw#†—”IßIåŽï6+¦› /Á倄*® ºÑª5b=oÀ®Šj,ÑhúSkycb5žuÃK*yÛ³*¾˜lE] /©¸H¦(æH>Œ|‡f±W/jB–«GÞ /©ýB•3Ý;Ÿõ±ÃbÁO-™îK+;õþì^R¿AŸ }ß0ÒX£Åßvó†éÅÏNüîeEý4æ í1Ý5‚O'0ÿ†—T’©T t÷Q(Läü5¼’f8?å+÷*zæ;Öò–ÀõéZÿfò®bN– /Û1>Cïn®åõ8Ï /¡7ùuuÁÎ+š=çcyËc±Ð-šf \¯bD¬å^/í¹[ÎtŠXË[>âVzgö…ò,o §‡_ é<Òþ;^R gó£ÝOý’¨ /AoICÅ@h¿å3ìlxI=‚vÊ?ƒ ò³á%µ€C¤œi8ñ©æ÷޵¼q¹© ®ŒBŠGá,¶—h†Ï™š°Oæº>p=ôX¤³Öà¬åz<“†— TFŸ¯¾\Üi›QG^²?…æiêßBS¯ñ›YÞ k¼®~‹ýµÏ²á%µBÞXyW}fê{z™ /©à~­$¾¿iZˆ—ÔÚ9PUÜ>Ñ«ÈôSab챸ßä‚ñKÕ^$^R¡ð=»úã@‚â©w /©ð?Þ¥²òâéaà{IØÚôXz¡*>I?ÀàOfÃK*8Zy<=ÙÂßi6¼¤‚Ê‘ªj!íï Ðb-o MÊÔ½ƒÓ"Z'û氼ѫ¨)g¯î‹”ˆµ¼a¼=ú×ý(ìÆsfxÉ~·ºúTPm°÷oÙðŠB¦ØK»‰ÁÈ~õfµ²á%(bú¤w x™3¾ƒå  Vz¸Í•X›û‚ƒqã±X„Ð= ¸žR‹ßÁòF¦¬»ÐtÀ]èÏ™á%ÞvûœT“Lœ Î_ÃK*vû†z.d¸"))^Å Ìu—ö{9V‘ /löt”;Îò¹G=ixI€½Ÿü£¿^Ìf²á%;BšrCýWÓŒXËt…}ÏÝ€rÄZÞø¿ªÛ)$ÜqÇ^‚ñ1ö¹t·o+ö=Öò6ˆƒk] XO<"°eí±àá©–8þRà}þ<^R'¨ñªÛ\×ñܺÄð’ ˆfK?:%yŠ?¿†—Ô™I¦n.+tgâ2¼V¯Ÿeûγï¦á%7iÉÝ ëá$»F;Öò›„ùiM0êÔàÞfÃK*ú–QÄ;p¿%eênI6¼LæW;¤ÉD÷/ÖcOªÖj.Gw<¾ƒåmÒÌéám_q_,϶ zЃ¹ùžDùOâ…ŠI²ÅÒû]ýk«UûùbxIKgH¥s†LÿBÇ=‹á%ÐËÆž®z(Nî¦|‘ ËgÐIkÄLY‰ä³æbxI·.+—jÂûR{Èbx (.˜o>÷ñ8Z­kyK¨ûÊÓ_¼;ñ`Z[,v¿Ç÷ál ûù[ /ièõf“s½õcO’Û<–ÆQº ^Ûmy¸µ[,°à_•ü’±–·  õµß} 99Þ3ÃK< ÇL·cmG/†—4ˆÁŒ¦:#åX G­axIÃHuW`óá­P¿Ä¿ƒá%ÞŒºg ϼªu_1¼¤¡xL:÷ß·EϽix ˜âu¨>× ìR*À‰§æŽµ¼‘âšôsgã«y3¼dŸøí‡³·Èƒ®ò›MÅù s½ÜªH{#ÖòÁ¬G özàb9^] /iþüÑØçL¸FŸexÉîp!çúÕh¹¢›=v†¹×©¸Ó–£¶7¼¤k¾>»;ýèÂ{¬å&´Ï¾4(8ââokKläáª}D¿¦ç¢87u¿¾ß×òJ¿›ÿ]M’C!Šï;=–¶ëI¼ŠÆ7CÚ±–7ŠÆeåL×A¯¢8Ï /idߤÇœg_pŠá%`¨`^±×B½ßw*†—ìÛwÆzg3x­ä.4¼¤“ië3w"¿Ú±âbxIǬn(7i×ëué>d1¼N`_RMêv¼¨]?jÇv‹íœ~)¦›i{-¿Ã°Xxž¿;AXn~1¼¤'jë.øGýßVâ;,‹Å¥"þ`ÏN5¼¤'úuÎ5½×bžU /é` dÝ¥­°™ÅsV<Öò–Z}9{ ZŒäØz¬å :OCgPþo¢E‡a¢ÅbÐ¥ÞUáT¿ÐÛ<¶€_ÿ÷,©^²$W3zÍïãjx Xæ1´9=ï n‡üfÓc¡«ÏäÇ]‚žã;XÞ8PMZG^1“¨†—tN91–žº“Y /a…•UÇ¥C‘ÚMñ¹–·LF¢ö8<¾,ßÁòF¯·ÜŸ]£zˆb[=–ý…î s‰É}Šw¬å̈¢|®I¼úsŒ©&ÏD,U:^.Õ!-«¶1Vï-;ºC<£>‹ó×ðÜP±@q~ê3»vT <G³Ö“å/ºNNíž7È×Tá§¢mÁ{ÏN÷¼QüC}HÛ¡‘xM[»ç 3ªùÌM;åÞ¼G¯†—ì.@Ñ£ŸÊ=–5á%ûzÊ#­“=d¯ñ¹–7’•S6 þŒˆíÛ0U-ÿ{¯¹^²}¬~ ¶ ªñàÃc-o4‘ûM‡É~5ÞcÃKú¤/—j‰CV”4ÿÛ /¡vØ>ªîÚ£Ìm>£ª†—tX„Ïo…Ç^(ð®âì3¼¤Ãr<:È;Éœ5Çwð¼Mì¦6½³úªŠOVÃKPœë]^&æqÇ^Ò!‹”ÓÓë%žÎS¨†—tôÒ3+> ?wÔg~î^Ò¹„¤»g;‡ÔiˆÚÞð’*å“kyË8T?u „zzÃKú‚/ŒžûÂ;gIÄ&íAº»þY‰stÎ /é¾/z®ïSz¨[5¼¤“JWtÎûÕSFy.¦çm°(U®Ï‡ÏqÏOÏöêÔ‡ '2ú‘Ÿ{ó6¸ PejÎÒ^Äðð p€ªs^%¤h;=–¦ÖÏœŒeœ%†—ŒÃëÑ>€’ÖŸûoâ_°ØÆçÙå¢'Kœ†—Œ£+óãÓ¼¸n›=õÙ£ÃY©#g‰á%ƒË!Cj ¸ÝQ?Â_ÃKÆi<’zæ‘ß'ï¦á%Οö¼º:£ªËóF’•Ö©ëÀ5~_ÃK$›jeöè9ÞcÃK÷!§r…Ç6;ϼ^²cû«] Þ¬ød3¼ä$_5ëÿƒ¯7ÃK Ê»ß ™ :Yî‡^¡Åb'¨km߉m·ßÁò†ä¾t&¦@¬åF)i>šß©>>WØoéñ›-¥qzvßjhìóŠõÏ5¼dÀü/-å¸4zÊFÚ /4¯\Š1•D­©x/ /¡·è£9›@‰§1̉,ýÎ! 8DxÎ"¶z,ç-:£bƒ¸}3¼d<ä­ó¬sG·GŽ‹ç œéª{>Ôüø\wl8‹…šó¾2Öêªršá%dFä¤þól{V•ïky#ÜÿMœQ…Ö_3¼d4p¦»ÖÊðb'Ìc-oøå¢Xq¦th¨4ÃKýêBë$ÿ•Y1ñ¾^28l{ôÁˆûz]ðX4éñˆ` ãx_3¼d¿ð ÒZ9Ó¬µøÝcÙ›>wô4.ky£ÞPºp¬ìa·êy᣼âž(ûÕâ~«ž7ìëVçAwhÉìúœ\µÖê_ÃK&÷ÆÕ¯×É_þ¬^rP¸n35Íây0¼d~ýæ£W’-x™Íðˆß½úàãø>4?Ϻá%NÛ9éù°ŸFjE$M‹U¾$}@ïLBO·^2Ù|Oß²+><"¾ëÙ /™Ø³ÏáUTÿJÂÆ–’=ÖòÆC|‰!\†0Ÿ÷Z¹^2MÕõé…¾ž±çÓ /™Pzò…ý;“øªútÃK&x6_Q¾òà°®×ø}-o‰žcf\§?ƒüËc÷ó[þ$µ ãꆗÀ P¦Îç;mÛ½î놗Ll]A`E| &õxý¾èÉó†þç{¼P uèãyHž7 >y!Åѵ—îÉóÆ9b´5¹×\ãûZÞ ”»büƒØJhòuÃK ‘"­û ¢²?;¾¯å »ö©(®Ñ _,šfÝð’ ÿ·ü½<~Ìšüf–7Æ£¶WœßÁ?×ðú±ãG~´a—öÝð’ýjC‡HzÞ6XP ky+¨íµ^ßo68Ó±?ß /™ð«[ª]ºïBh ÅýÖ /Á &0¦K…³ÏùëÝð’ aªñ½žšôúŽç×ð’Y&¨ƒún¬U<ÄaOuc©£•¯C¶èµÆçN¥P©bú%Ãï–nx }í!¡ çYf> Ýð’YÉ'ÐÙ8Ì:u¤^‚5£wWc6žÕÑ“uÃK&víç³/=Ƀ^q–^2¡w5çÔ¹y™¡9Ð /™ô°UÍ—ÿÔžÝð’‰Åº¬œé]·σá%X‹Âã zxƒš>£ê†—̆zRw«ÑóNÕ<솗po ™ž¹´X‹!vyì2s¤³#†¹X‡”íˆuÃK&zô”TËôlüû^²c1¬P.6†·â)_úÆr'þåLƒ±á¶2ˆ-KUõÔüv\£^²KZÔë²W—y$Ýû–nxÉìÒ|¸jäbgŸwÃK&JÂôh¾ôÁÇ,Î>ÃK°"ñúKƒŽ¶Ä—vÇZްϰ¢ÇÉpÀ»éõo7¼„Zr£jm4¹ž^|Ýð\’a¸|÷»çTÍŒnxÉd£?‡î´±ä ~I7¼djÔºZ{~ô's-™nx lâP_é¾?¢ð×놗ÌAà=é>ï8; ñ,oà¢ìÏÏ&ÜÊ3¾¼z àÚdÍß×òv4škp¿¸Šöœ;†—ÌAn·ÀN(ZÄ.ņb•°^ÌÔºá%s€Ã©žÜ»%\Èljï¦á%s ¢;æû á»é9îž7ìo6á÷1çoæ[÷¼šuG ‹1ÖF¬å ºjié;?°ªIÇZÞpH%Ý!%GG÷,»á%s‚Ü©û à,YÞ“uÃK&çöc=~™Ì øÛ,osÿŸ:/¤”mÔQ†—LjLÝ5‚>¸‹þ /™TìÔ>kMòøcG·^rÅáüº3¾ƒá%RûdÖXb+áwÐ /™Ô«OM€úî+>醗 bÂk¼žzýè{l³ØD?vÑPÉä~ϱ^‚Î_}èEòÉç@"÷Ûîð©_]âo›[èG­4w¹¤'3¼e=§1CÞ=o¨ûšö±ƒuI»ezÞ`ä0U—ªã… ínxÉ¢#룩3éRã\7¼.Àsdî?xfç¯wÃK½³Ëã ÛÏçÆï»<³ÕkÃfæþkx µË“êZîõì>øï`x Tmáƒ~Ø)grã¬6¼j® õ‡£…³:ê>ÃK æŠ BŸîÊ}ñn^²Î=]½ C7òwÓð’uLŸÃâÓUg¯^²è³=Ts¶`¾jÜ…†—@} û)ñ<œ—J{tÃK $Ÿ õÜ¥g锿ÍòQô©û…•tÑÔ†—@•|{Å 'pÏâs§axÉâ·[Uç…ýŒ¢†ÇfÍÜÐ’ûî.ÂE†—Š‚·ržHyŠßw^²ŽX_z¼³i:Åc›Ç‚z¥º‹cÐGì‹XË„zaˤ|ZŠúg^‚mè}7(_yѸ/v@†á%‹:pª¹¯jž=þ6Ë-CýÀÃãÕäyKž7 ¯ª 5Ç¡:#yÞè%)=ÙèÜýÙøHž7.<ž7E­â5ø0¼„Âáóц…ÏÎM‡á%ؘ€.DS¬˜JÞ~ ÃK00‰ƒãîdR[Óûîax çàXÍÇ·úñ¹–·#Hópè'u“zü¾Óc¯{Óð;`ûCÃð0vÑxèÌ«¢+ü‡á%Ô†ÿ´›ôY^±3 /km¿C:Ç)ô= žã0¼Œ&,àh¿ÉÝß"Ÿkyk‰µ½âQ<%?ï!‡á%àZà*”ÏgÝ:ž_ÃK0ՇƳê­P¢´Ìø\ËeýÓ§\ î †Ç0¼ÓŸý^èL ®òφá%‹K¯ºM,}æ=Öòñ»¤œiø@÷gÝð Q4Ñk€’s_ìT ÃK¨å9u_º·£¹å÷æ0¼UÒ®SuÏg×!Þ0¼U<úÖ£‘ÐbŒ‰Øê±ørº[²o„®sœax Ÿ²©~ A½‡†á%‹Únª“Û¾®|‚ax °>ðÕß=*6éñ·YÞ´*«bA­×Ç›f^¥œ;YµÚGþ} /Á œtí/ ǘ^Ÿ ÃKàŸˆZWî7À À2ý73¼kÐ2zô×±'<±axÉ¢X’¾×yQÿ¡ax 뢡Þ»”G¯=Î0¼dÑSþѪ„¡þ6Ö /¡XÊR,sp¨¹ÂOm^ÂF"}-ö: Œ””“3 / 4¬E»z#,â¿ñ;XÞpÈeÕªÜM8mD#†— iZïy¶-Á7†—Puè®ò€­z ÃKŽkÃjŠ+Óî#9ž:.^Bc/`ñ^1ÞãgÔÅK(è€Ý(9Ïý͆—`H@ÜR¾o&=0æãâ% §ª¿H«ÜýMñ· ‹ÆŸ²êb󙎼qñj§‚'¦»“­ÿüËc±û ÷üèXµ ÃqñjŽ«¾ý‚—$ˆ9›¾ý¸x ˆ‡ÀµßÔHHq>\¼±ãG ¿C"Z0Ñ=oGÚMú!–Ø–ñXÏÛ$þûøˆå¦˜Øè–7L’rVÏ›D-ñ5W·¼Á%-}ç´ÄvtËuÊÒã=1ÍPÄNͯþ.…:5ë#–·Ä/§¸g§RŽûxXÞh–Üä‚ke [Ä&§ó ÒÉ…—9†å-£.QÍïzæÝ5ê’ayËÐÀ,ڿͯŠ5b-oð¬ÕñáJÐûÒs1,o™Ã6åDîÓéѶ£{,k®g_„ðqäbXÞÊG'Gí!) <ä÷µ¼Ñ°KkÏý¦¬øÙ–·B_6='ÓwxWþnN˺÷ùè î;}qwOË„ †ò£öIR[¬õ#ÖòV“,[\Í-ŽUŒiy«ô‡ÔÙ̱q žÂ˜–·J#\ÕÔ!#X4ÕÇ´¼Añò[zž îˆõ±–7êh©Æ(ö$ªêªiy£W½z²4"_-ñ;XÞÈQÍÃñq¦–]—j¬ÏcYïè\;LËyLcYÞx™)×r—ÊÈEðHÇÊ Hév!J{’±–7¥Gë¤ÍãÑß¡z,trž}^âó=j˜ey£ ÁªZ{VÖ¾¯7–å ³¤QÔg;Sïj9ÿa,Ë[çâ‹ê™7ò{ÔöËòF ÝS®L¼ø–7¬~CäPjOêsu¿»çgyc3¬:œ»]®üùŒu~–7H ä%¼íÔ{ϵ¼A_y|ÊçÂêjûæ±ÅcËVûÇö”ïkyô•]Ï^=˜WÄZÞhΡu*zj?~ky8£T“¤b ¸Q|®åmœ½—g_XR_ñ›M†WƒÓâ@~*~Ëvts°âãYêµýL–7ìU§*uT=ØUh„Ídy›"TrV—óH;÷`¦ì±õGS™ø{ãs-o“Æ#Š z.Î5“åmBǰI0癋ø¹3“å Œ¬{Ie§Í~>ÌdyÃ>ñ§ø/ÌFg\ýˆ LL}•Q˜ õXËä\÷5õh¦¡³ƒ™–Ç’Œ*ç:tñnúo–?0+}ìÀl#Zÿ9y,.IÁÄg—vfËu’b ™3ËÀðf¶¼ØÈu,Ù?Æë P×c-oAaB.wÀ¤¾²ë)ÌÜ<íˆîYv¸­ '}fÏÕËuÇÈ1Fñ¹ž7~°ržvÁC.«?g/¡ÃJÑ3?z ÑgÍ‹— výðûz¢Mläíâ%°+jvå†bµjß›Éc“ÅÖïG[¾/8S/^’iÉ’ZÕg‡Z•ÍçÒóâ%ˆ%Iëá@Cp®ˆ­ ˜JhbÉÁg(óâ%°©b‹ûj/P{×sqñ8S–Zó–¹|æ3ªyñ¨¢&øÊ3SŠËÍby;}³¼ HÖ‹XËõ®Â[©üá”ߟ»¼^ŸÕòÆL­i1PYº0kòØñrÕ0ŽíϳS-o¨ÐÒ’Ús­ˆàRÍjyË©ª^<5FYW爵¼ezIê.Áì$<¦Y-oÜÛÒg§åz"qFUË’4³êƒ£ D¯ÛðX`mºkßéß\ÖY§ÇRßû™;ÑfÈëêY-oy‚ ÃÄJøÎfy+ÐqQ}ÎMÙcÍòÆ>ôÕ?š/ñœ5ËÛ1™N:î¬äµò4¼„4Ò¤ÚÑûDå¼%òfx 5»‡êO6ȽÆõˆXËͶºb¤‹¢Ÿ3êÃKv9Ù§ýq|/âs-ozôÌ!ó¤:pÓ𒪩ú0»v?<ÝÈ…å­BeTµ"ö÷ᾜՆ—$šËÌgî4é¹0#ÖòVij¥{_¥-Q& /¥΃øÍ>®£á´ñØâ±•–ÍRÿÒh:¯m^Óx ÷¶ •ixIjô||ÎIs_ørMÃK Ö$@¹¬ù,o0öž>Åx]±–7¬&ÃòOgj×Ä3ixÉþ¹ÀÓU]V”Eê…: /­<…G„^$ñû^’ÀJȪ ˆ›»ŒŽØì±0×3“ ß¢÷Óðˆçaæ¨ïfâïçƒá%¹ûÌq>xœ¿†—@ä¸ÞYŸß8£ /9"KÎH&?%4(¦á% Ô“©¼xL5îzxìôXð*¤×¼þø€ÌáyCoªþÇ£v®ÉÇ÷ž7pþ‹ÎÔ¾³Ëç¤á%\‡“§Ô•³ºŸ›=¶Æuqjõijnx \PC«þ$èÎûŒòßÁð´X莪{ íÿ]FËŒµ¼MøT¨îxÇqŠûÍŸÃKhA7T7G’¯ï›á% ýÐÌR#²$×Zñ;LXïVðä93¼$M ¾ ¦P u Cu^’Hþ^Òge˜»èNæ4¼$Aó «?/^©G'b-oDŸŠ~ßžXsùÿ4¼„.tœr–z Å.Á\ž7.4>3áCõ™Ä4¼DÛk/ÌfÆ3ix Èàë¾?÷!sÔà†—`èŽ Aµz¸ÓÖ¿øÛ,o.&­Kö¡õàLÃKIÄKÎPå?õ^†—$‚ž]5}åZ>v–á%ÇûäÕR¬Üýõþx^’Yì~.l{0ÿõØâ±+/Û)^AóElµØLÌ:«®µwZ†—dÛ£ê<–¶i²w° /¨‹½:åmWúV÷øÛ†ÅÂKòчv„î®/ÃK2-Yºòð&½’sŽïpóÆÞ¿òüúØÄ÷5¼$S&=¾;•¯«ß±Ëð’}ÉG”¾0Á<ƒµ ÇZÞh²ž…ÃY&¤AÅ×h^Nø©Z—Ð"¥Ëw°¼‘@¦ûÒÛpè»=o†—dØ™ÍvøëóL^‚…\ ¤¢÷‡lþ£÷º /ɸbó÷_äÂvï–á%™Ú,ª»ØÎѺîËðŠ×dÝ)ÆâpRžî2¼$ENêå;çñ›^’ f͹§¡ì—žã»Ïc³ÇÂíKÎß…©Žâ}Ëð’ý‰Xð×¹é¢Íæ\ñ}«Çb[Ó…‹ìù,ÃK@[Du)w÷8`|NÀwºÏÉ–á%yt Ïé¾nÒ%÷¦á% l¹Õ‹‡zˆ>†—À8<¦©-p}Âïk^’±‡Ç›õdœg†—Àhl Å+{޹X‹IŽbW`>¿ƒá%dÂ1»îè’ƒ±œ¹ /ÉXÀSyñóñ¶[†—d4U¹ioJƒª•W|ËÖÍϺû‹B¹Bß Z†—dÓ£…ô뇲 /ÉÇ»GõS¡+e^B¾f*?œÓRˆ ²ÎPÏRn˜¹üb§ÅBŠe*‡³R§ÔøËb‰ezÞ2Μá'± /)Gô½¨Ä'ƒ½ /)Œ|MùœÏ7ß[†—”DÉÌGûæààÎ Z†—ìØ Ô6<ÏÏ]üÇ –á%%lR-ÐyÞùåÞ2¼¤p‡_5u Ÿu° /aŸŸ›ÔëûØÂ=ú2¼¤p‡îÉñÇG½ÆûfxI![¢æØ•+¤§÷…á% ;@Ÿ¶?¶¬üû^R("¡u߀f½îg-ÃK “ôì8îSˆ; þ /)™äžmz·úßfxI9&%VÄÔÂϵ¼BSwÌaNŽÏögÇð’Rà¾üJEøüb^²ËÜfèwFÕè¿¿ÃðXèÃÈs†½àÒ鈵¼ÑKý©wvïÏ½ÒøÛ–Ç&ÌEtåœÑ^RȆyv^ÏZ^Ž~Èð’¢4I­Œú&©¾Ü2¼¤@;ofùÜú*•ÄZÞÐ0æÕÂ÷\¸£Ç1¼¤ ö|4F$e~^R(|?´^‡íNP"kykåw¥?Þõ(ïùø,o»”ÇôE9mœ¾ø}-o4mŒ]¹ü7'$„öAåσá%…†µEt-¡6DŽâ=£¸õãÁ¯þÐBúLk‚Á–¹N ãªÈ}þª±¸ÙhÁó{mé+@©xíl¹ë¶$ íñ¡ãw²`ü=jŠá»&Kpu½Á”V«îQÑ[ú8gW9hÆ&5ƒ-쟪/1 w¤Œ’Å`K Ô0w{›´X$ÉnÉOgÇwH+ "=ŽTb*÷y0-ÁYJ  ¶ ö©g$o¼*Îûn0Ô6`×ñ,­U¸"Ø29ˆ¡ª§­pè/‚-ƒåeVšÎXÇÖËlÄÂëþÞ:¯/“Ü7 îÜ_aC€NS©¶ .p)«²®¸H#ƒ¡Às 8”5õX(5ùé,ƒhp¦j7äI/¯pGXÑS¬ú.D4}0ß Ò%?.—û¿¢àƒàlÁgÏQ¡Ú“zùJ[ Æ.l~Ž‚‰¹¿I1¸Z0Ä÷Õ×¾‡|r³`JÕ<'(·û¬ødp÷`¡²>6)¢«[”¹¾ÁozüîØY’wÐÀ” Òñ+޶ÎâÔŸny0é¯Êá’ ¦dŸ/^5Zs©ÌT(l“÷ápeg…[©¾­B;õ—ÖO¶ âñ‡gª:ı±IUî,¸ÕwÜ_8ôð—‡Á–Á W°gf ‰ Uñˆ¨²Ë2², ÐȧH UÙ=<6}'Åù‡œH«`¯PÉÒu+ÒÉjœ¢†«Tîy&í9]ýÜ?‘Rý –B.º\H ¥Ê kÈJ=ceÿé:Lx)`Áƒ5Ÿ`Ë`´½ôᯕ%íŒÛʰ• ¨õá÷‘ãÒå5p¥‚Œý«åv J9 ]©\›Ó‘¹þ7i«¹ÏÅß¹{0ä š–\(òˆ¾²ÿTM\.5‚-ƒ4L_Ü•}0ÌÛ#Ø2HgcUØ÷bÂðÀVže«ƒÏ=hbI`Ë`«²P}nØL©…!Á–ÁFw+Í`¡öÜzÃP– †ñ«Põo¤X>Ù2_œÑÕæÕ ~ùdË L¶ÐáKt´ÛZüt´T.ïÕwàœ_‘CZ*ÔÍÒȃ¨——"Ø2Hý”¦ï &×({âš0¬egìƒ1PšQ/[ê¨)ÔâI"Aõ#¾³¡-ÎAùÙâ®è ö÷ŒßÙà–:(>-çßaÅù8 Á–ÁAŸýÌïlœ4_Ñ_£uô°CnXC\*XÁRä¾X½D r©äqöüP´3íåkXÉÖUíQ”9dol²RoÐü¯%IŠep¡>Ñ)Ó¨œ 5ù v©¤ð¾’¸•4-9¾ w©äð.ÁéAõžøˆóÙ€—Š;÷½(&d•=ƒ-ƒl%ê³uWˆŠÊmeÐK£^X“t7؆â“?°Y0ÆÑ?r#fVôìÌë¸êBI"®‡àaÁôOÙ"+™MQ—ÂÕà—ÆÝ•KÂL« ܉à›Á–èeýì·¿ÜcØ‹}Lƒ ]f+Üc/òÔ³{Ÿú:}ÁTqŽEp¶`È‘ ½ýÐ,\,3}ÕôpNB% 0 + 3 BÒ¯l}q ÓÀöœÊF„z ÝEâÈ5$"%Ó9¤XY~áÁ8Ÿ“b5Ó*F¾³e0cÀÙu0M/©5¤2$¦eªl½²Dj[|gƒb×Ïtã;Ô•Þ#)†Å€ióz:òZ³:€$J¤ÇõÛðÓèØ9UÙ³u.ÏF°e°Ð²~êlÒŠYZÃcv‡kÝ_Ü?F~ë dv0 ã 9ú€¶CÁ`Ë`=d“8ëÖ>6÷#xzp}­…GOçŒÖ0™FoË!OÝìT6Èqò'Ãd`ñ üQQˆL‚ï7"Ø2ØÐlæGÙ B’«4 Î<Õþ¶þíÛæ ˜%&³_b¹ª½š÷p£¼L†É4%.†»ãiÒ“a2ûHĔ® 8mìÿ ˜”¬M†Éìâ‹pŽ65´œ¹Ç'[;÷MŇaÿÁnU~éÁõ5«m¸ípQÊw¶ öœÞÉà>ÊV§ø–AÌ÷±¢–wß¡b×¶ Rü¶ê’ùšíƒ-ƒ`ÈÔ;óuLIâ×0L¦ º‹ë¶ñþqÒs>'Ãd(¤º²\»‚D[š£M†É4x9ÍOø|ƒw.¶Ù#Ø2È©þ7tÁ‰ú»µÉ¯1<›ŠoìFŽn`l¤ ¡–—o¬¬z!Ø28)¶¡¼ÂÝaâφa2;x¼'¿¢0¶ NBÊâ‚£‚8f#Ø28'ן“£·3¿3¥9¿a2Þ~Owüñ¢/Qå&Ãdˆûާ¼L2莓a2mQí[1FÎbÒ‚`Ë \g¨rƒ#œ"¿†ep‘¿ðì⤖žº.&§ •HUxF” “¥Œ×ôDjtŽÂ5&Ó±“ ú‘!šOS“ “ÿ<ædZ¸~Ô•·Û0™Nã³.'?¿b¦ƒàbÁTuRWÍ6(d•L2L¦'Z+źU0ŒÁà›Á³rª¼ÿB™ÇUä`4L†Õó~9…àÌ…ô ¤PÛ΃AÕ^º™I‰7¹Ž“a2¦dy9íÿU!!Ïl\¼,¸`GU±¯vè’ò¦&Ó9… Á‘¼ëºNÏ®¿a2ýеÎâIŽŽt&³ƒ;D”Ž\ï'2h˜ t‚8ŒÕY2°à&I1L¦µ(Ùºñî‘ãD2L¦sÛ¥ªÊD¢‹u«ò5,ƒTzÖ# -câ0Ø2ˆÅ’©ž û9¼¾6ùΖAˆ3燂[BŒ™l¬` }ÏuB]W$)†ÉìN˜’ ë)Õ¸ÎI1Lsi¨ˆ%õ '7$Pâd˜Ì®ï  Ë?×’àâÁí=›»`&·,Á–A´mc lXØ©®.¿†a2œ°ù€Ng7ÆgÉ0™Þ(‡±”(ÞHž•ªÀ0™Ž•ðÇ!.•êMl¤åQÓÊ|ùI·a2½Q#%L2DÿŽ«} ±˜µe|g<‰KÒm˜Ì ¸tCä£_Q8É0™Þû‘¦‘“Ÿòîë‹kÂ0(Ø£›P¼XØH9&Óëßgñn6ŠC°ep`š¤æý¸yvù–AàSå¾&¸¼€àâ¶2L¦­YÚwWêQÍÀ ’a2}R™K ª}àÏgÃ0îâ>Êí8-~RP&ÃAü.Ü”~Lš„ ÛÉ0 Xfõ»¡#Ýî%Ãd`^üŠ´cØ¢ÓL†ÉÀEw‚4é¥bh[äÈ5LÅΧª­ô™€ËØ<Ç—r0 W|æŽ`Ë gQ¡^ê€û‚o1Bß©Ào:[Ðò§SGMû¢dûÍŒGÔ0™qv¡4Ý»~l±ýi} ñ™²rÛàS‚“Ó>Rœã–å*÷¾Äçà­Ðº®TÞ›ñˆ&Š5XøÕùèÄÁÉN>õH†ÉìSpâTñ­|ê¦x “ÙÇÀ6ÅSÆg‰QT2Lf íYÙÁ£Äól˜ 6fÙÉ‹6°ËõTlÄ0‹Á*º†ÉŒŠ%@U8#TܼiéÁ˜èº@ÇÙW‚8‘ “œ•õøøáÙª10J†É`õ }§ö°-•ð'f°e씥.…4—\Yº Ãd(Ìû\Ô‰zó.…‹`Ëà®…¾¬œ¿IÚ×îèãA2L††‚s*€Ó¸ðWäø2LfŸÆØ®Òó¹’©¶ä4Lf€êû-¿a;*FBäy6Læxé}Ï‹×Ä·U6LfO,[>ÞõN²a207Ç–”*4:áÆL3&3(’U ÔI˘¸­²a2çÃ_££Ä³ä“`Ëà`‹§cÝ!èúE°ep0êôO (/«~gËà R úÚ€Lªa[Ç ÀœU«¬‘ô;OÎï<¥ÁRóüf°ep Tõ!,~”žÍ†Éìó'cÅX$dh­ýµ$Á–AÛ<×Ä~hQ1~ñl&3øZ$ ™$,ç$&3 `¸”U‡R=?ä¥l˜Ì€šáh ¥'[_Ù0™±N'¬ºÜo\ÑþgÃdhö•Ôè{¡Gð°` Ê…˜©•^ù5¦ûR¹Ì±È9)ò;/ ¦8› ˜4̰F°a2ó[ç@‘`#Á7ƒ3QÝMÐË’­ªKpöàIòŠ®úàø²?ƒÁÅ‚ÿÔC™£Vµ¤Û0ô`H¢Š ‘8±†|fÁ ‘<›Å»+Ñ3Ø2H‹ƒ%­»h‡ƒÁ–ÁL3Ú§$>$„(/³a24zúÔ, £ ±ÇYg˜Ì„ªøRvŒƒ›¨˜î`Ãd&êð••®SÏ9*¯•a2„ï‘—Ž¢=¬å1L†Nß3I/¬{ÊŒ_Ã0:8Íþl)ÑÀÌN ¶ r ?“@ÊG®¯v!Ø2HjÕûÜÝ=ëV9d “™ÇOÅÛ'´øt Ÿ “™T´.Ê…ø51&3빚®›…ö?&w%<ÏäJ½dåfÃd&¹EÞ¸¿¿øÎ†ÉL\š»s‹¯ÑÀB :VX0Ø,j\K&âUn6Lfßê9Ä0®¶+ ¡Íc6Lfbiv>¤ýÂ:À—£lYvê› Ø$ã5LfüŸ®°áÜ€ªCÈ xx0úæGg¦`’n²¾ ¶ RXÅ~ flœpp×M¯}?7š§Æh˜ h–¨ø”H9¡&ßÙ0Lú¡Ô ôöV+˜¨Ù0¤ú ±Š—º.&ƒ@‘–—‰Š,òk&ƒüéãÁ¾>YŸB°epÇ|*Æôp³a2´ožK*sƒ³q“¯q3¸bªŒí„æ,TÒ<-˜ÒöJ1ÏGÝCŽÃdÛ÷‡5TF#Ù8>Ù0™•ØüI?XàªýT†É,òÓRµ6nãHß “Á*Dµ”b4h7þÉ×(œx"éN±É@p±`j`¨î#,+ID‰àêÁÜÄR³/š5ŒO‚›·V w}£ÑYô‹àîÁ¼SâÚ­5Rù,ƒ™ÛÏ@Ú}«ˆZ>Ë`I¼&¤•gáÿ“¯aÄŠáþ1´«¬{â,É2X`» râ»~æk…kIɃWZ/ǵ¬œ¢%YéºñžuÕ°vÁ–Aªö¦7,G$ý“ïl„|ÇRâñ.¶'½*ãM–ÁŠùWŸÏ¼ûèÁõ¶ Ö”^ñÎA–Æ~"ƒÉ2µ\¥áňx] &Ë :UõM)ƒëñC¾³e°ƒH¯ûл¤GŸ"›\%[áš²•ªç3MÐâ*9yðÒõòTåe|[áÇʧ•ù<’ò5,ƒ`#¥Ç'1s§ô“ß9WƳ›»ˆ¯&P8dQ²eÎ:3„na¡K9‚-ƒ“n‰^ÉìO®ÜúÍq˜—ldy¨4“üô²dËàp)0ó:.Á-Ù28=®òŸ+Îa,”bœ”UriÁ ƒg#>¹XaéœÔÀnØh=JÉ ªm{ B@lkòZË ÷••¿±`âdòÂ^L¦°ýYïú.m‰¯+“),ñæã¾¨µ cr1™SÃ¥”žƒ±‹Î3ƒ‡s‰@¹=?ê&žŒê«¤Cv-  L˜Nåb2Æ]_Õ¿Œ}S–‹É@Ç´¾«»¬£ÀŸœ¢“âÀ¥ T:o¿®\L2?˜•ÕòmÉ$×ÄÅdv0÷üeò¸ç³¹O]µ â’_ÏÕ6^•On<èZ¢ù•ªB‘”jLä‰ë8¸í:ñ UË`çD5Ýˤ.¬Œ)K|Ä´Œ'5±Ë×X "I~6ŒYÈô¿4Ë Ö”e##ïš¿Òyû“`Ë ˆ~Iµ‚ Gà¨!"Ø2˜)$ çužâ¤Y)-µôDjt·›Ñâ•fäÐvŠ,*Œ‚¸ˆR³ b{ÖÎî5q´Çå´ VœIC ¡°Âÿ½ÅI³ ‚³=’6™ ì_@¥YÉúIR?gêBº ‚-ƒ•»ÑÚþåYDp· VŠl:Aeýõ„ q>Ò¹&ºe°•ú³°€GRTWl$~ÜgJs£‡~ Ë µŽæ§w7ÔÅV6xé–AÔ’ÈZƒµ«z±ƒ»Á”€+0IéEjÑn”T™a .ž™fé–AŽü‚ÃaÎÛJ>Ù2È ‡ cÁ /'_Ì·óaurÇ,˜ÕeX'›šÇîngøéFò`lÌ=§è«/Ž`Ë T©Ó#['çÆ° .ªj?øq‘`è'[am0Ú3©¡]A—‡Xa&9ã¶jÐà -eϰ â¢ÿÔäaœa¢¬1–aD÷7×xðgJtÊQ0¦C*Z‰mp¶XCeXq»¦þìäiöU.&ƒ'¿€8UDdéN¹˜ ñÐŒI%³oôÒHÊÅd Œ+蔪Ú\,˜˜·`2˜¤ñÇ@ðÍ å_3ÏzŒÑš~çfÁ…¨Ò” oã @Þ”‹ÉÊd~ÄêÀr1™Ì£í‡àÍ•ºxø/&Ɉ™É#ºÏ ‰IJµ‹É xb0õýײ,ƒoÑT+ 8/£ ŠŸnY±ß –‘ôqdËTº,Ë ÖñSs‚J‡¸)J,|Ïÿ,ƒ´€éU1s"Û]™U=˜¬Ÿ©ògK¿,ƒXwº}Vií¬›eY+]Ùôy.g‚-w·a2Ø%+;"™T«Œ¤&s°«O¥%Ûª[gõÞYX×Aýר†ÉdXÎ¥S¼ÃÿøÙ®†ÉäÖËë(‰>•[Ì5‚³£Aha‘»«Š' Ë'[!k³”m8*ý®d]´&¾ûkè¸;3:'- nŒCINþ Μ8Ú Ø2HºÎ—Bò¬ª$Rh :dÕöhƒï2Ø2HPLWãQ‰’ú"ßÙ28°oÕ´êTò\5LT'œÏJ‹úð> ùΆÉPû/©î4–?’øõ"Ø28¿ò#Žt†ÿ£J°e7ìÃÄŒ#æà)6¹ªa2™rxIø¢/ÐPF°e’Ž+«§Ö¤ˆ„0pªa2ûéʰÏÕ*:h“^ “9CÍñ8·§#ÅS"Ø2Y›©ö™{Yb›Ž`Ë 6±ö]uÅ5°=C°a2û9À*ø³»ÄIºÌ€ªa2r†ûµR5®G5†Á–A´ÍòRƒ~:ù7ƒ„Õfºó«oÐ"¸Z0õe¯ ¤£öLĪa2…CÐTnåÙý¯†Ét]# ²]=‘ðŸ«a2%sU—”55ôy6L¦žÍý1…œÇQ~º›ÁRŽ:´.°7:ׯhµ&tH`û?¨Õ0™R°PöÕþ¨dþ}5L†UYR#l¸ÿ¢õ\<ȶütû]Hl¬ÔÎ’ ÐúqáWZ¼j˜Lá EýÑöã6é—I1L†4ÍTõ…m<™!_Ã2ë뤂fûáž?ç³a2‹þû­ŠóÍ•1äkX±T“uøR}VŠ<φÉ@ý +qúv/$¼ÚS “ÙMÖÙ’2ñ:¡aWÃd¸Ÿý@ÿ«†É2žá ¦‹'°&S(ã¡”Œ: @‰«a2ePÎX†ŠÙ‹`Ëà ´”v»£'KY~ Ë . ¯¨—m>2 ’nÃd f-铊Ú<õ‘–ª†ÉR8ÓCwç¦m°º&³ß*_zÃ΂†°Êùl˜L¡¶ú:Ì|tæ£~®†Éæ»—zV{¸ «ñÕ0™B·iUlC‰DvùÎ7ƒ`Ÿaçï{-LqäÆÕf˜L—ZÒʼ~E4ÖÜ-&¼Ÿ ÄóTæS®6ÃdÈkÛgóB§/¶Ý«a2û&já»ng]iN/ ÞíÒ|ôdò:§ñl&S3Ýßµïng©SžgÃd*f¿)ä°êß*é¬öÈ'g Ƭ,H¼™Š’+|3X¡ƒ7”«†iè¿.[Ñ0&çFI‡$o·a2û8M¯ \Ö¡bÔäktÆê¥–ÄXÄT>Ù2¸3ðòrîx@ñˆ&SIìÐÝÒö¯“%¸j˜Ì>ƒ]Ë¥¿ÈŽUÃd*ïÞâ7l¡lÞA9d “©ô¸-zM ¼Rûˆ?Ð0™J48®ãRƒU “©¨F~ÜIªm5L¦Âód¾1aý ´(O7¨†ÉìTNšîé‰!]A«a2;•PPQ>R‡>õªM~:Ë Ò•G Šþ Êü ñ¸&³SÙÐM|J¸À^äÜ0L†ÌïQµá*÷¬ªUÃd*ä7q?i•K®[Lÿ«a2x-pu!Q\L/MÃd*P§Nÿ©`¦-QÃd*·ÝuOû;õáöTÃd¨´‘R{ˆ5`ã×0Læpü”é„MX´âò¦&·ßcC‡)^—_cX0Zé!Äches?E¾Æ´`£Ÿ¶Ò€Ö"?ݲà9âN8•ù¢³±Ô†É4LSUÛÅÌ-Y ¬†É4ÒaŸUˆFóÊ&½a2-Š¥ä¥‚Ñ ÕL#¸X0øHYùHƒ¢‰2Я†Éi™²vš½Tòùãí6L¦‘8Q¼õX´ §=œOx«a2ÌÃ:Ž”j¯ÆªúÓY÷ë‰E½4a`ù ¨&CY›ïQªÁ´Plj©å`Áœ´¨¿pÂz×WbRÓ “ „¶ÄÀûœ>R3L{â`´2§±HŽÛª&Ó¸²­`õ>Ø™¢Dpñ`t–Bâ­G%wùdË wCëc Ö>ˆélävÂ#˜·f¼#‚-ƒ +®y>E 'ÊQó7Ãd>S'5•þb¹J°e'ÿx. x±?óîf˜L#¢P– ¤ÖBž¢&Ó:…/\AeA^›–]ŸC÷Í0™]²BŨêôŸú"LÔ “Ù-TÅ¥©Æ£‰’ΰ7ÃdÚ`ó§{šOºÎß “¡·ûT5¿V;ê ù–AN-²ê?'nëÔpša2»ãÁø)ñ˜ü³hÿ›a2øj m+Æg$^è'[¹¶­¡L±èÚj†É4¤j¨ 0høô ‰‡ß0™†IÍ®•‹Lñ(§%t÷f˜Lø «[iÅÌ×qü†É4.V×Ç ›¬£1åkXOî÷0g×¥Z3Lîì0¿Ðú™g®t@Í0™¾/2ªŒ…›Ïʲ¼V†Éì`úQʉtTDj¸&Ó9ý×#—ö-·§&Óá^™TÈ#€¨!Ò “ézõ÷ÐÑgy6 “é’ñŠ1NŒ¬0HŸÎ0™íüÙtL¹KˆJϾìzt½»1ÄE•+ÁÅ‚)NPuS€‚4¢sÒ “é_üÔN&ˆªbÔ “ÙÇŽe,`Ò€C&ž:Ãd:ÖСÊðþb¹‹Á–AX«¦ÕÄ­§,λ«Ç›a2lÈ“‹HüÛþ@lh4k3LfwT T¡zÄÈc3LfÏX42Ú€è&ša2gÝlUù¢|­ªüΆɘTDbw˜=ç.ŸlÄÚÖPU®]«ã|–©&Ó±4”Õpo§”ÅvŒ°›a2ðúÆÊEÕb;qe%Ãd:LSQØ0a ø5ýΖÁy–QVìþÏ!˜}3L¦ƒ… «áÇS€Ó ¶ ¡5çO‡/tf¡m3L¦Onë<3ÍA«!9¾ “éDÍÜ“!ÁÊ1o†Éôƒ"h7qp²@Y3L,$…¥œ®F)¶›a2c÷*'?…°ß#×0™ñqMSWÇà¸aÉwîŒCC~)C†åÙx6 “¡Kã§’†ß¾Ñ “¼$dÄêìã¬nÊYg˜Ì€‰ÄãM\æøYfi†ÉÀ– ˽z"qv,Óÿf˜ÌØÇ˜¨RÉŒã\+wŠa2;”ŒG„‡L>¥&C %™68É|\-˜îÔj!1¹Æ({mÍ0Œ0]JªeAõ†$›a2ÓÎôØñýS1Òf˜ voÐÔL?EFc”%ç†a2ƒâ1j"¶ÿʵTù-ƒ­{,,`ëåiü†Éì÷‚`†Nx©ï/Z÷Í0™ÁÑê#©Á"×ùL ÎŒÞʯãF_t:òk&3h —ʳ}fµ0Q›a2ƒ þúÔ’ŠS$õ†a2;8³L’ô:s¢1Ø2H°9KËúaˆù:‚-ƒû%Á +ÝD*dîId˜ 뤒v­rÒ “¯¾z¢BõGA0pša2ìi=Ö4´‘-ìf˜ `\,°ëæøÀ'yê “ôõh? Éòæ†ÉàÎ|=IwƒÈ‚*ðf˜Ì U‡ªë„å +_Ã2È™f¬ vJÁËh3LfR02iy9h“$Ê¥Í0™ùAGý´öQp–à"݆Éìf¿¼&›y 1òCðò`v1ïN»€§kvdÐ0™É˜–qå2Ì'7¬a2”²Ù¿ðM›ûL!XÉàìÁíÕq­µƒ9Qä…5Lff.ƒOÝ|) r}Òi&3ÙH ­‘>2Ah†É`V„uÏ%lðÄmyij “™ônø¤ ÚiâN»\ô†Éì`8X«ƒñªGP¾óôàõZ1¢ØÁ³a°esØRJ½‘èqó”n˜Ì¤+ÄX!/Kó¸»a2ØDÂÔC€²^š1Âî†ÉìÇ …òr)i20ê†É ¬ãpU÷a! zæÝ0™ýØÀHL¨¾#þ5ù̓ak¢«Ä…`µlèwÃdöCœ^;MJK‰±T7LæH¹)°0©d“«&3Aת2 Šù —Ý0舨dé‰NUvºa2“£Õï™–íIñZuÃd&äuö¦ËY•Üø,Á–A¬0¦RÓ.uFß “™Ô Ýž‚ƒ• o‘ïlœ Õgw©ƒe!¯U7L†c«¿Å6 ª¦ßÙ2Hk£¬;é³RX_2h˜Ì5 ;ÐáŸR°k=;¿s>ÁÓƒÙÜ>=þ8»a2‹ÊØ*Í:÷¯A>f¤Û0™E’[—#w }M‚“÷×1nc2Qtê†É,êÆ×¤ïàä·ˆ³®&³häý¸ªýxª#¸Z0ö­’pãw…ÎJ’sÃ0™ERyUÝøut‡|r·`²md6ñßÕËn˜ÌÐ2¦ìxþ±H·a2 pÈë}V¨~&´Õn˜Ì¢¯ŽuöÁø½ZÝ0™c+úÉ# ùúñ¶wÃdÅÏÕGlã³Ô£a2Ø3=Xk~(l|ròwÃdöµ]4º4lŠ1G-Ú “YKy ¼v/?Åÿû¾Ü<8PU$°²8‰‚ª&ƒýìJöÈ´3k<<¸½{š+qÝTdN»a2ð@%ÓÒUAþǼ-‚-ƒ»²Æ³ñê^¦Àé†ÉbqQ“;æï3Ín˜ XX W£4,“ã_‹`ËàŒ=D=¯ŽÚÛ"Ø2¸èMïÈve!ωd˜ J–—®Õz4¼Ý0Î#‡šŽÁ0$=ÊKýb2•7M~6æÆùÇbnÕ/&SA‰<«K“j$ÿŸ¯wI¶%×qDû9Šè—Ù6ýI ¨æ?…'@â"ü¤½J«NEð®ðí”Kúž=‚­~ ÐKl%±õ0ˆÆÑuós‡õùaî­‡É „ÁÌ:õÌÕ­GH®‡É tr³]pÑž‰’X˜{ëa2¸úqZ½È´ˆB_“× ’¡ª¢ß9פ’y˜ q¼$•?¶!å´¤ z˜ G¹±)g{¢ý6dߘ‘Á e6•ôH’«4æÖŒ N0¼útªë{Å[32èsíþÈRr4!‹5#ƒíQë(îûgàw­È ¦NÏ=6©/×Ì·È0ËZ‘A#ÛF5$ÁÉ ™UÁŠ ÚªIL KAœýò¥¬È ±2JU6p]ʵ±"ƒt&Tþ3«üÓI_+2èœì.~mp¨b”¶VdÐ)?3?š!œòK%„µ"ƒûʰjßjQ ¾È3Gá ÙVQeî}Ò•^“œ,>t0„‚ï3a–õ0™AÚ<#óºD7‡í©š¸&ƒ!s-…ôøÞf‘_n üùcFïôÓhh=LfŒ`ÁYÊ€øp4yoqr·‚‡É€-Ú1®¡–UrÑ*÷a2s¨_«BKâ/ŒàÁÔÔþ-~ûÉØšñ2xÎGhuV†˜Ž®‡Éœ`𠪫J†-5å=GÏ}·¶®7ÍÕ?t÷å‘AP MuÕÎ;'»K¾ ²p%—®+4 1 Ò—{YýX–—”dpdN¦ ösÜb%ÉòòÈ »'*Aº;òÌ‘At—ªke~v 0ÐdcôÈà5Q.Ä¢ˆ„yæÈà‚çý” ¦d0¬¸$82hdìô; ¼²…½<2ˆùAW“ó_+ âÞ‘AU”'ô6\;2ˆ{ëEÉP,Ðñçõ0™: ÔuTÊ’r-[žùa2£U–áŠ}m:¨ë{~˜Ì @{¤Éu>à«HŸ¯îa2˜³íÿL7œRŠÆyòË/ƒài¢Ù¢“°»:'l~Ý“A¯ ¥š¸ÉÃ¥ÙE&3e!u+øßô³õ0™Ñ.Z_]¹ NbŒö0™[5¹(/×ýçUÚ&çE\XU(R\=fGa[Úô]j>C#2^íGî{— vçä‹•È A£Ì—NÚÒ¤Vt!¬Dè*¹¿hÉíM#2HfµRô*źü‘ANši×-¼åÕEo[F`p¤É>[®•ÈàmÿÝ4ǘÈ=Yt~˜ ެ:Wæ•¥EÌ&s‚AÓû ¢Ñ¹ÔØÃdN0ví9ù#~“ʼn=LÁ /Cú w#¹—ö0™A$þ‹Y`ˆNQb{˜ ”¯é`û)ãYPåíØ&30é”w+W͉uæ{~˜ÌÀ¸Vûøøðú§“n“9ÁØÌ÷G%ƒ¸kÈÛØ ÞWѹ‰iÔRL6‹µÈ GÛu˜¥/ŽV›d°Eo ДúBŠ¥¸ÉX‹ ¢µP§„=}ŒÒ¬õ_0¨2²žþìÊ ±\œ´ÝK<2¨»,sšÖ"ƒ×ÍLXÐ!!^—Ii‘Aލ¶‘Ðý©š°1ά̭E¡'S?’û 3áÖ&`dX[-B#ÞÓ¥›Á‘ÁMiÕÏ98)®›²õÈ O¦öãŽ?@ÕÍ #ë‘AÈjK˄ؽ?ž‰Ö#ƒ•+&w«Fð_¿ B ”Û1Š®ìa2'xޝ<Ì£ñžó²‡É à~ø:UØ“¼/×g^¼àƒ§:Ná×ÙÃd1Ì×e_9öճʵ‡É¼qÖ$Ng](³ö0™qþj)«qI§7e–ñö0™1hƒØLÇI.•Q5{˜ÌÀ¾Ü>ƒ!•ÔDýå—ÁA=Å"E#š§îÏ6"ƒ ÍÄ"Èöœ”}~ãL­z%¥“H/P‘AÐml«öٙLJôhÉ #©FÞsušôZjÉ „|¬Á0MC»ÉÜE“n”ðÚ?ä›-þŸ%·&s*kZxÉÌã,4f•10™Aá}~T ýc¨aÉ@‹BZ$ÿax–ˆ«Ÿké$-0ÈEÀXêÃRÆ&³$ƒÉ „ìø³Z`24íµ©ÎYå¶›<óË ËêýÑ¡šlÈHßÊ“™Ò\Mmã %ÓEÆ×+êü·Å’ŸU`2°ÉVVçu²‡Ê“`1.j‰Â9|A{,0èü£"0 Ý„¶K˜Ìtï:Ôéhñá…æ3&ƒwš2Á`Ÿß"00™I£›ª‘p*·ç(±&3¯‹”ª4_ L|ñ,0™I¶¡ê}ÿ¦¢Ä^Ä“™è÷쟉Þa›à`-YÉL2;t˜ålþå×Y`2GD3!\uç h9GoÉL€U‰Ç½S×XT2,0™IЩ¨¤óõв?&3!rNy ÈÌ—àÈà¦0¾opÈKpYuÉœ`9Ê „!ýG8Γ¡¶·/éð.Ôz˜L”_Ž ¢Œoö9»qŸzFžùepÚ)BB8›0o@ YX`2 Rv¦ïÏãÓÓ´ÀdÝ3\®!Èà77™Àd0ïKõ˜üåUYÇËc&³'ÿF͹”WiyÏɬЙŒî¥Ñ2Vfj,0™ÌCSËK,]Õ,0à#åVpŠRä´ Læü')£7”2ÇI[Y¢É,L3Ÿ[‹b¤ø èdÉ,’ñôZ ÉPÊœäB Læ”e²±]ãlÄÔ%ï928ÕÏú‡,M}ÿüº“YƒÃܵUòdZBp˜Ìšh tu9áű³Ú“Yô0ªC(Í |p°ù282H§¡.z_®Œ}ãžÝÉœo³'Sé¹1^FYîuÉœ9¤,…Œw–ÛX Lf^ª¶HήÃÓJNØÀdN¬”> W,Å5Þ“¹·[…YΑ1üã¸gÉ`z ’yª@h:"ËàÈànœ½üŒ‹RÏ1¯K˜ ?ðbõêqÅ÷Àd ïI´à:ådÞü2h$íý¹¤sr<’&c°$2• ]Óñuw ÌNúgœÓ B1òÀdŒȧ[J"¾V˜Ì Þ_Å6TzÄwåm¼ §éü#®»©>\ä1<‚é4$uÝ9&ŒÂú–Á/ƒPò>>åÜdòm&C0ã£Q 6To¹}y`2vùzO)üg«É/G¹F›éÝV¤úòÀd n…¢Êu.é¸ãÃÄ9ßs`2°L IHo@×vY~92VˆÍ_÷¡¿8èªþ3töÀd öÖMÕHÎ7H»<­<0™“/ºk •æ¥è3GqI¯J.««®É3G72hÂG‚ }K3ÝÉ` þN:?8)Ÿ$Lö ØdzÊ4 ²Á¯Ö}É8FÍ<£ÿžÇAŸ¯.0§m’j:¡ç…{÷”ÇL]b¡»O˜²ŽcL$Tؘ¨pfù¶ŒÉx`2œT۪ĻïT”&%0‡ ˆ©AÌlTÓ¹?{`2Þ)g%õÆn$=y`2ð«i÷` åd380§…D)s7Òür3÷Àdœ…Z‘2ÞÁ˜üÈoz`2>›}mjOI|DdN=0ç½zE៴'Гq˜&TcÄäayæÈ v‡féùɣ͓áôrq×J†%ñc"0¥¢–%7[«r©ñÀdP‰@ÛK›\Nö€|VɸÓ×Cé”"¼‘Ϙ ÅD>ލpyôÏ}Гq`„Åòÿ ÜŽ!¸%Ó¹-èþ»ñÕ£i[‚{ÃD/iQ S(Dl¬öÀdÀuœõÁd “ª;R`2›Óî)|ÑÿÎݤŸeº“Ù…Œ²©à¦ ôŠçÉ {’Þe×÷¯óÀdvÅAíUE~gK«¼çÁ‹•Ú•ævÈV˜Ìæx¤}&ô;0ümÊGºÂDhÛËÑ˜ÌÆÈ‚©ç8ê¼:YÉì±Eœ€d\bPDæ« L˜&ªžùøÈ×{`2<š¢=g¯Û”´“Lj žíø;œÕ6 CAx “&X ƒþûcšG6ÆÀdÐíâËî?kl§ùëþ{`20¡½A·/žk3‰˜ ÍV€#Hs¼áÂ+ýAL·`|Ýâ² Í4Ç[GqìµâÄ" ¾d“ L¯ ¿"§U¡n¦XHx`2hQ“êeðZ¸ýölÂ?J†&CýÇo?ÅåƒLãfp’ëYÔf ¡í†øÃdp¦ãRóº§Ìimò6üƒx'Å6§°ûúØ.ûÃd [2Ø_ý:'&ŸÕÃd¥Š°ç«{˜ÌÇ]¾ 8JÒë;÷ç‡É>ëC5QQ%c!É3G9ª¡¸ì’åz¶È ¯úE‡YHËþlŒ¤?ìRÉ£Slöwƒ[dÖ}E­u}²) “¶î‘A¿ý=Å7¸;Ș¹{d*ÍU9TÝXœ$UÀ=2H® Š™šõ1"ƒÎ®ôüÖuþ}„ñ|Då˜Xr\ýa2BÛŸaCé èa2“¸ˆTæ4A¿œrOy˜Ìù†H×QÄu \ÿu}˜Ì ^UÛ ¦½w%¹§³£ÆàÈ úžŠôý±šB¢Á@\Mˆm¼éÌ#ÔX_0˜ŸÞúÌ(©582èàŽ©úÙ†äZ™îÀdÀ]FNT3 g¡Zß Þ;¨'%cœÏ ó  ¶eðŽ`ÜKë¢ÊÅÝ=A§óoË æ˜¸ÒHNfôÅË÷ü0™u[v:â::G÷|çø0™…v.?Xω•Ïü0™U®á§ºåÎN¯}ŒÁœ¡*Écdù3)—èÃdV!è–¯§„˜.Tò >Lf¡óMNñ;Ʊ)smpfŽ`4ŠS„mÿU¨ñ:282È¡©ãV26¡&¿äenÈBÂ4¯x™Á‡É,öö¡é,7Mçhåcæ;Ñ,Á/ƒ äöó‰pZWÕq¨G0fŠÛ°ŽÔÔ‚¹/¶èÐÔTþsJ§„6ë f)™^”jãŽ(É3Û/éVÎ U6Ñ?Ëà—Á³€«ùéoš#¹üòŽ`”=íëSÃN|Éöa2 â„xh×{÷ý†ó|˜Ì‚žOÃI˜–ÕÃd TÚ”=eŠpÐç{~˜Ì nä^Êcœ³µ+ï šGŒïÙ)CxÕß9ø0™E¿6«²žqiÛ*"%—ÆìQïùÒ® RÖu“¡l<ÀéMôÅIÎÁ‡É@{7Yuç–C;³•é~˜Ì‚>J€Tî=Í]òmLf*õT_ö£7Œ?ð»1ç)«îa2çÎÁ‹ÖÐé³F¿7Ï >L× Ô+IH´*›ÌÃdN0•“TAåœ]+ÿƒg9ÛUnÇF‡ÆÝé~˜Ìœ¥[:²Ý@!ƒ’[þ²ý‚ñY)OæªÆM—Lj â¿iã—A‡cå‘ürdõ³YS…XŽPuÙ¾<2è“LTmS6Ê&ì\ut2$µ2ßô‡-R™{dÝÒ¦cæ 1TÜÉàÈ DجË; N::åBz˜Ìšd³¤ãÛ8J,_ÊÃdÖ¬×~ÛÔzt9$xE06zÿXÝî¥M’ò0™5IP1™·b·_íŸÀ}‰`4_VýH€xÜ¥T{˜Ìš {”¥›y7ö­¤~~˜Ìš´…ÈÁêþGÑèHæ{~˜Ìš¤TTÏÞD¹h|6mѧŒ`Üš 'å*—6)&s‚¡åֵË‘¤;ÿÀÜP[Í)콈M÷‘ïyG7(F:3´ý-!&³à Í›üåÙæU?“g¶† ¢»Ö¢Þ"‹ÿa2'€dÊ43ç©[¤®{˜ ¦/èÚ³´¼Ü*û%¥>Læ‘J½¼–(™”ú0™Ì;èÈ w…ò•Á/ƒ·ü]Ý·A¶‡ýZQ( _0}ñ\Q5óT,µÚ Æmß‹úÔ`J å³gðËà¢ýiù8”UçŽT282è«Å3±ÒV쟰ÙE0„j«UQ™ÛÔømòË/ƒP¹HÚéí“j»+¨“ƒ¦ gAÇZYý‚a‘ù‘<Æ+âªù“YFk°©•ùwØÐ2øeÐ:tÕT›epôl§ºÎù¿ÁNgâˆ+ë߸èù¿—AƒbKS:³t(’Lùå—AÃMÊÔìÛm]C{ ~´E¯Öu œ!ëùa2ËpHÿ Ïg OYžÿ‹ ^âÃP·Ü«±Ùä—#ƒà$›*¥ŸµíãÖÀdÌÑA›gaÐKceR“1š4¹d°üSŠdpûp§6 MÇ‚«ÉЖ°&OU.œ;Ddþ¿ :Ú}î2 a‹ÎYË%xF0$ÆÝä„ÝÔ`ï&àŠà ˜°ë4%Z,ØK2Ø"›A¯‚}­;#æòž_A4D'\6s£ lª œàÁð¤IàÒ%d,x@50ïä Ôyn8Ä¡dñ&¥ô´Éºèå¢òRÞÚj`2N”÷ãù3`Nò=‚A¤WºÊÓ¡}'82x§ñe2ñ\òaÈa²&ƒ8 îé(14Üß$W»Á‘A8ĸêÆCñ(±ÿnÇ50^¤Zm²6ŠõRe!&ã$ZK÷ @äöOï1^7ÆQLÇ7ƪñ’o#0™Îð¿ö™ýÔl}Êî/&³qhž§Tj"¶’ß‘Á-‚±'uW\”ÍDÿbAÿ~ÁBú BYŸx¦;0™ ý 8í —˜`÷ÎKz LV©…¥æçœfzÌà—ÁMK÷Ïü ..P`2>3uk•»†Ì*ñ2H1à6JŽöœçü,óK L·` Qç½{’ý^†ep`2`X¨ž €Ìòí)gw`2¤DŠù1ÃrU?Á7ƒ$ÑÃkUØ, 'aé5_ÝÃdh^‹!‹¢œí^Õòõ\©‰ªrß“»hª­žàù‚®ûCÍgà]¼HðzÁ`õµiÒ|¡VGYSþ@{Ád_¦µÁúk„/í’ÿïâ˜Ì“ŸïQ”9ªŽöÀ—6‚iºä¢;™tK0¿àëí.òçãÁ¬S‘éa2°_§Þ€ØÃ–E7Pô²Éùî•5ÒÃd ÝQDÈÆ¸hLUK~°“(+wLA!ú¾U®‡ÉL HtZìÕÈÎÿ0£BìYMò6:ì™(q}˜ŒÑ«°5¯ü¶JÚ‘¼ `\jLµ ‹h:½àý ¦¬p!ÈÉýÔ“9ÁÊœ\KÏ –+_ÊÃdÎÿJé uB¤žšÜd&c„£jS>˜&ªÒã Ž òî7ºòëÀç€æJG¡¤ ±­œn0³¢Cu‚#ƒ^šz»?4X†H .‚o@™N»°–=ô«.„5ÆR§ÎÄaÅã4ÎA 8ÎP}˜Œqì¼[ sZ´ûïë~˜ÌY€v9ÁÔfOŸ¿ ¶AIž#êna:"Ÿùa2'¸„—¡S(-%ååÃdN0Š .ñùc郘ÀB}˜ Žx´HDý¬tW¥Ç<#¸£i+í†^íW¥ z˜Œ]Áe:íAâE“«ÇÃd¬Ñóp¶R>eSÅtãÌâäa2ç£'­©¨‹+¹ñKvQ ‚1ï£Jw© 6¹¤p}˜ LXq ¿T[t޻ׯ ž2~w¡xc³žàÁP¿ÖÑËA\U&ô!˜ý‚+Ö£^ÄžtxëÃdì|—C½ƒ;.ùë5yÏ“9Fe#ÁûEYr·z˜Ì©&OYQ ÄÅ8¿[;(q¿/ÅÐää8Kâ~ƒ_û¹E£@é:ó»žÝ“9G/ˆ<>Ë=ÿŒˆÏï1Z‰ B ÏrŒñdðÜ`9W382ˆÉ;ÿ@÷t<°Ú3¸ý‚ÏO…‰`{á:ëŽq_ &E2éi„©*ùåÈ ½)»à…Å×N™Óü24Å2ݸ+Řò¾ þ±ª ±®jbŠœ€—ÁAzƒº}ÍëéU\~Ù#úúCº¥ë: i‹<©* û$ÈÙÎà‡Éµ¾mÈ9¸!†£1߯ÃdÐýò!3b°HÄ¥&/ía2vÅž†î¢«ôfÔb"øì¦¶DȰucðËàN³Â‰à…Ê)¿Áö0™ŒÏj¶. Pè–TóîÁ€î›6.2žR<'øet+Ê)ç—… ,yÁCêþ†ßYi“?ðepRÀ©teƒSï &lØZùƒ¹§#Û´¿¶„ÀH-‡³ÎEöüº[dp´W-¹±¿»z4ÃòçÃEÊó¦Ùÿ *NÛåLJ‹ r‰åõƒmÜþb ûGËÂêPhB±žIi‘A'YZ®Àf뵬z7úÖ"ƒ›lC}uçO›)XÉàÈ ÊÜD¡¢N÷Ô?ðepñ)£¨àdk°º=LÆØú­£©“%÷=/ía2Æ;)Tõž$ëåu©=Læûêʓḻ´VÛÃd@žEN {,.Ÿ<"xƒ+-lEV~< ~\è–~.¼ç‚xfsÕ=LÆÀoà ‘iàê‘*s'Ø~Á(i["T}ÐÖÓ¦<ÆËà¢oR2Æ„†)R/¯.28T¤‡È FÁPRç78"ƒƒüe}ç=n¡:Á‘Aã[Ѿ• )]>«„ h™âPæW8nä=¥Èà5ÃÚÚò[ÃÔ¦öG—Qàú£ØÆ'kÑ6"ƒpëª HÖXJk#2h¤€Îü`§Í+¹ŸI‘A˜¥´*uÝ‚v6^ÒÃd¢ÿ`läõÿœz•;&åa2 Ý´ºš¨diäàz"/—ŸSé: 1`ÇËàÁÀ±ãвôYG˜O¹,ç{AØ‘AX‘úô|£ ‚K¾œ$±ÊeÞ댯[ÖÆ¹ àÀªúF鄬ÌqLߨ‘Áûþ‰ 6:Éq&§ýî);2Èãtȵ”2Ã*Ê[j³JÕùîqGÄò1z‰ îëš‚Ï^à.h<"9ðÛ2Ø"˜ W©Ÿ¡eú‡Lä nµ&zé:†;Ã0ù÷/Ä»*Óîl¹åU˜ŒcSÀg¥Mx€`÷ûå‡ÉœtЮ½w!‰MüóšbðËàù`±ö±ËAIܳoÕ&ã4ó”§è¸–b&-ýèOpd¨wBµÅ|þü0Q{ Ò¥&±Ãغ­ž_w¯‘A¶ÿ³ŒÇüলt‚N½Fi7™ÝR¸^Rd~TyæÈ :ÍÍ”‰ÚÙ†úê^gñºˆÏôIõ3Kx¶?Lơ؋ PU™c#¶Éª{˜ŒŸÛz/÷ÿ·N½Î¥ÝÿØ}“ñF”ØÄÆJ¸d¯?L†uëw–9@§Ü &sV:>‹%TI¾)äj3xFð7^ àꔋÿa2ŽWŒÛm~VPìÇ`îÏýa2(aŽ,,8° §š‚Ýñ‚‰ûÇÀ †f2i‹Fä Æ#||=pê…Hĵ?LÖ^T¤›‚×ÙXÈW÷0™ó]ãëÂtZW8®çXA˜ŒwÍ/õ›À½ôÓyì“9ëí|Ç5¿ý*N@ó*ÿÀ‡Éœ`À,»šp\îÀEv¤‡É€4Ô¿\â³6o÷_~yE0Èøm¼«Î%ú0ç—C½dÊÛxìT_0QBXN_¼å¹ê&…ª•âÏá·NÕ3?ï*2ÖSK›²óÖ&“¶}DÇqWÉýF²±3)#2踖‚¨ã?#'ýa2Pq!±Mq~8)áèÈàÁ@LÛj#N=Ƽ§ô‡ÉøÏ¸4…³2Ö‡Hß&ãÀ_Pð¥Á@ÃÑßøF˜Œ³)@6ÔÔÆÅ·ª‘`hùH÷™ÜÚ %ĵkà‡Éœ`‡0‘x78TxÀîÊ}ãa2NÁ£ÚET+™“\ùž&s5Aö÷üãïà©û¯ÑÜ&s‚§˜Kð„uZ^§Ãï ¿`HÊVa íõ(ueO™·ª·Ø–)’>#ƒ‹TÛõ± ÅHöç\ôÑ©rk£Ä¯ö»ûŒ Ú9Ïg”qÞ&ªäºäÕEª´ÊD]P‡ßr]ê+2ÞϹ;K[‹(/3ƒ«þ‚ñÝ ‡Ê`ƒ¯;߯Ãdüì^¯“*wa·Ålj&åa2Þø¥q8éÓ>ë“9Áè„ñïÆÀèòÉ`ï“9Á„+¥­Ú5„–ÇxÄ(„âüØE‰qC~Ù"¸³„VëF:ƒO9&ã“Õ&R– 7PãWãep‚±ÐTƒ}Á0 (zîü“qÊ5U%[K5CNpà.°»¥N7­•˜y·È &ëy´Q:s@¹6,2ÈÍ8Ù,è§4"'#7s‹ Ò­[‰m˜¦[N`·ÈàyØfi¿]vQ‹ Âè¡!ÒÃöÀR–Á/ƒw<Ø¥$î›vÀU¾Á‡É@õ½c9Ûà6:LÞÆËà‚¾±Ïø@W~Ê1ñ0™sÅÏhþÍPJH¨³?Læ6ôMªÙO™õzwdè?L'ÓJô1<æ…3øep¡óxNegµA1 ùåÁZ>ÞU½ò’Þ“Y UÁT1¥ÛÄ©©s=&³ê᥺=…-¿4ƒwÔ &²=uZç<ôúÌiöÀdshÐýõÒJ-‹˜ÌâyÕ–ÌzÌÍ¶Ž”ñÉað¥…ë,ƒ˜×F_z ÏRfþ½ &ƒRƒ!²}YçÛ²'0ƒ]î9 Š4h5=ä LÆ åVU†ztÎ<΂ëÉ y¼=Ûg€ ä›p!.¢™[îLP J¡:÷°ž_ƒ_½âZú1¤«WW]ƒ_½±Ý`&’Τd”-oãeÐ)•æCpŒM.‘âÉ@(ê‹™C,Lü4OðËàùM`Œ¿úyþq8‰Ä¡_p`2(¿Re™E`klSf½1“qºªåÚè L©Ï|&ãÐj4=€N, WËÊ|&ƒä×Lí­óÉœsâ²J¨%gGtÙg2q²~÷LÆ!‰áMçŽ ›<㘠´UPˆ¸.ÎnfpdÐÀ"½N)ÆI.ùåÈ ã¯i.XÁâàÞ̲˜LÀ݃PÉ# Ž â> ~@€”¶¿š ÓLÆ¡±à»«Ï#=6‡¿ n0Êücdi‹FIÉ©tÿ0Êî¬a62F`2´7ªi†5pö_>ùWc7î*ápg’¿ ²GU?bw½tÿÌ.Àd6„‰Ïf®ïB+ƒwÓîK{mg?£FYþr`20õ.0©x›n_\#øÊrmU™£íü–_~¤Ëɯ¹ ŽSö)Á‘AÌðŠ› š‰TõJ§û¤3øÐ=Ä­Òí€Á7ƒR¼Sm‘ÐŽAØYãa2ðZã,wÖu“vhUÄÁÆÃdp3†Ž8îuüÉØÑòë~˜Ì&»ª ¹Ñc¢Ý?šñ0€€Fe*Ê–U‘ù>Lfbæ[XpÐ[´*×x˜Ì&Ñ wI!u‘–$„ñ0àºDëžêA9ÅÍàþ‚¡ìzy4ú±?ËcŒ7øõªÄâ îŒNºÎµUJààCÎàÁ`”5²ØÍpÁ(²É—ÇÑ9+GÛÃd6U[,Çù'Jb~Vy͇Élè oKḳ1Þª æµt>L†ƒfçÏSñ™ý<Á ~„_;ÜÈÔ»ôàôõ8Á=‚”-™@ÕDifðËàÀd›O5§0ÔfZÎÄܱ(¶ÛCJtIÆï,‘Ax1º¶VáV>>"l³DFÃ"õp¾ÞB¶ˆ¼ºÈ NÈó' ÛðÔ§díËikw¥7@? ^.¿µ1&sª ÚoÈ}°u§Hf @͇ÉÀ`8—àH}PÞ¢ùå—Á Ó0S4Kñ=d“k>LfÓ {aNÚBÖ3øepÒJ´l¡&ÂFÍÝPºEðþhÁ¡ÝÆ0hü28'9Fòž£R˜RȯÉ`tüËß™²ÏA?ÈrÎIÛù0(°ÒõRF\{c›²ÊÛØ¼!Zõ»iúY¢P–^Wýáþr‹ ¢¤õ-’§ž"šŸÕl‘ALï*ìèŽlF282h¤WÉÐý³©mIB˜­ÿ‚'ZøÚ “œˆ‘Î4vô¥2‡¶ÁÂÇ-Á‘Aºd}zmÐ %Á‘A ž-Õ¹Wƒ:ä™_9­óПL·æÃdÀãž_Òã9­À_ à̇ÉPQƒlé§,Ò$‚&E:Nçè%Z«”ÎÎÏêa2'ȯË»(Ìö›ªbðË (o¨¾Ö§71r¸‹Á/ƒw7Ó½Ðæ$Á;EQæÃd@RàMÃÐáò3‚]1Æ,.²D“9±Ì ´uP3aTM‚#ƒ0 ;iÈû Q§,“?ðeÐpžÖÏ´û¨÷~ IÙŒ"P†AæÀÙåå LÆÈÁ-R7˜ûÀÉí+0~‚ââŠy«;ì–Pç Læì/ô-É£«P¿³¼œÉ`(:à¹óW°^7:v<"˜2Ò5!¸ öRNø3øeÐúU•>ìm¨¸ËÛX<çwö4ç1áò6,‚ Rðk Uö Ujј f‰U°â¸m9€“êßYürÐ;&ÌQøæV˜ŒÑOsÉÜ¥'´G×í¾È¡IC°_282¸­u]*PØhƒ#ƒXϦ·c;W<ì²&C­; ›e±½úµ©Íõ˜ŒÃ´Ï“ÿ<1ÎOÊÝÏý¯Æ-oV•[Y×.'R`2g ¡ld¢%øRrÈb&CÕÞ¢jQ^¯nFÊ4ÍÀdn]M¯¥Ÿ4t[s‰&ãTjjS,,ùåÀdœtO9ÿúÊ7˜Œ÷J{ê©úu-ó¼µÍÀdÎí“\Kä)è!^¦>óË Z¼UŸp\×Ådä1"ƒ¾ 謔¹+3ä LÆ9ð;dÕÍË•¹˜ º¨7„¨YØ][ãeÔ —*z9h·åm¼ :1íÔà V¶¯ÀdØOñî:…mÔ¬Î;ì L*ñçmÈ9ØágõѬžÉl®Gÿ ݯ?£l‚ °0“Ù‡Ì1ós©1ç-éL†S?VæååB¿ çd&s‚›Òh«´ÌÑÏÀd6‘íÑMº¥\:ƒŸà—A ÍxÂ,JÐ"=S“Á…ü YìÊoòFqï6o¬«ß>l&³é­Sí3ˆŠû`“}#0jü®ï÷"æ°¨9ƒ0‰Éì?ÂÝIa£ÚTVóm“A0øRîMä +}/›vRm…±0nûLîƒÄdÌ+úR ö>É¡ÚòË+‚!-e" ‰á¯¾è$&ÃàI\QB87AŽ™ç×ML†ÁNKAÕÀÙøé)õ31/ZR i Ö=ù “ap+aõüd@ÎË@¡'U1£Õ¢1àÈÚ?¿D݃R^ØYN‰ìu;2è¤+SÍ71ð]D{vîÈ s|c˼¨â¸Zågµ#ƒ4ƒ­¢…¡‹ý]u;2Èæq‰Á½Àt¿ VRekW5#uFnôûej8I¿©Ãêç¹öË ¨W(:D·g£Ç»Óí íLX`Ë„Rê×÷ÒÄˉ¨¿³úZåew{ŒØIsüÜÿqIJÆ*ý,¯+½XÉÈ/^œ¡ÊtŸ¢‚Çqn¹«¼ ^u¶-ZÊPêì9<Ààõ F]'˜Ìy<€\^]dãR[°jÚâ-yû/˜ÕjÇЕ—$82è ô•®d³—–›Ìª‘A”àç³RóÍ‹×%·êË`»Bâž@lÜ"˜½‰]”_¨ãšï¹ö6ÊB{¶QzIDØV}¤q-¦n_üÁÝ#ƒg–7Å瀃ëÒÌÓjÕ—Á³3÷¯38ª<‰ ~l½ãt`¢‚¨&[îªþ ÆV`°‡ÂVÜ2xG0yðêø¹ç|ÍÕ^Ïu7Í¢zŒ4¯¿#ÛýG™«:4ˆFùË‘ÁE/8u¡ZÌiY^®„Þ€}ŒxÎêIñgpdpƒÅ§Üx»¦=#±ÜÕæ/4lqÜ[w"cêcD7;¼2BÞ3˜Ii‘Aº#©a¨ï7Z*Ïü2HMºž'„ç”e±ÚŽ`(—&¸71»Ôéú“ÑKSù\ñ '‹´°W¯ É}uíñ«²ÑÙ^ýeÅ“Ð)a{A«Ùä1^Oõ{‘¯…”ÖùYõÁFý9uf–ÜÊÜê3‚)£í†MÙÓÇxì ÛÔ)¹«/ZõLé/ƒýÉuè08Õ–œVÝÁ5¿þGSSpÞ%82ȹa=ŽËÀ¶ =©_ðˆ np㇥ÍãÄ Öxô1S,7E$º¿ Xõä:ÛÕ¬Î÷X8ëGÂk&sJGH$ÊÈö\­GÕV`2‹½‰.ßຠWÕä™#ƒ¼¤Waü¶k»,×ÿ˜Ì‚uc+³ ¯ s4^.5ÉPðÆ“„A`ô ÄTýG'¬H»èª¡„çiž)ɬ+æ/”9»Fðb輓9›Þ?Z˜Lcç1Ó˜Ìâ%]çaߨGËb&³Œž¶[ÖA—Ù¥˜Ì‚hÕù2°€KHùÁ&³`iÚï¾ #°!282ÅËö»ÌäˆâÄ Læ;€þ«QJájÉÀ¼ãSèic©dÉ)sÚ;†ÛÄøŒ^Z`26È—QµbÎõ LÆ@×9;©ÚÆ 4Ç{‘_LÑC¹þŸ½Ž[A‚¨˜ŒAøâü{µn$ùi%É“1”´¶däd8½Ý×à—Ás™oÄïXð;í.¯ÎÁhåƒmນä²ÀdŒ÷¹"ÌjØJ}1F LÆœòÆkˆf <« LÆèÓ8Tÿˆò‡HoÉ8`}\µ„éò“~ݘŒ“,誉úH5Y¸Z`2Pµ ñ`üb3Ï·˜ 8!§¨Æ%ƒ•)¿¼"Õ— «óœ°tTÕ_¶_ðùµ™Ø.,*"l˜ §›JÁÓ,ìcalÉ8Ü‹«ðrª¶s“±Àd^æâ‹·N• JGn˜Œs\)Í}_»œ¬‘,0LÌ´«ªÕfÚû182»#W¢&¸,ìçËcDÁê,Unôg{¢âD@˜ŒO* ‡“l}æ-0 x㑾'ô]&,0«Óò* mpjŽÙ¾“¡ØÆùË›³à"fC’„¶þô¤­ÖD!,0‡oo…”ï&%àž&ãF³Âþñ¾Ž¨ùu&ã4Ã~lƒà{'U ßF`2Ž)Û¦ºÄPF꬛282è0t®27qþ×(°¦ìHÉ8nm6 Ä„<¶ürdþEµ˜’h{±–<óË æ‘Pók÷¿SÍdÈcx_‘øõñõ°¼&³qarý§]±étß°Àd6î­ÊŽäç "»˜Ì>r]b{W,-0´áP}ùWyécÝhÉÀxãìnB<ž½ñ³ÜòÌ/ƒäE—3Íë†/xF0›CKb®gé–Z`2û2 •‰ŠyXLëdº“Ùk2‘%xV2ò‘AÛ¤èKýì 'Ø0yŒÈ »pªr.Î:’"Г¡êùÿ¹”ĽP…-#04¶á£NºÂ½´‡ÉÔ뿦º—4±NíZ÷V½.â¢:'B³‡É¤+ÚV}$Ê[ ùåù Æ,|Ýc‚9«Ó ö0™J±êr;6ÐúÐï–ǰŒÁ=/⇽ok¤‡É ˜î‹E¯xlÓ7yu;‚1rmR¸‚-ß?jØö0\•pEÛZ¸B7ïSB©Æ/•KdÕ=L¦ŒoU‚Ý Âî)ÁÁ8NçÞŸÞ1Hbr©y˜ qOÑ!‹kÉ-5ÿÃdè3š*Ë—{Iª™`ˆ=L†flÔÌÕ¡!Ìiºl“¡Óêa³EºX7ÚÃdh^…cBF\6©òyŒÁPKk²1îzᬤdØÃdhªQm‘P¬CD2Í#ƒðãjU¼'Œ¤Mi¾~Á#Õøž˜Ò¤7¼<†ý‚÷WŠ5+ZØ[#2a¡æÒ›€>7è\¢<œiêtˆ¦“íò  p‰Š~½£r›Ø‘Aòè‡P2æšT˜•£mG;Saüž™,ÉàŽ N°Øêg–Ûš­)`;2ˆ÷d.“‰P]s7Û‘Ah2ÃâMýŽ™ÕòÌë ||hoC¡Ûõ1"ƒ°8ËJÞæ§?¾x¶#ƒ´Ÿº?eC פKàÖWg×ê. ^"ƒPª±-g÷*Ñ+Gíj_+©àmô%¿¤:{‘Nz§|ºBx‰ Â6®U‘U‡Á­}úV^"ƒ¸qýŒ‚Ù3²³Ä®ÝKd•r+ÂrJ†¨"?LÄž©~ô¸–ReN( þ0X;áÅ?…*°¸zÈ/{Ó~ËåÑÈcÜyùÃd l)”uE¹;v¤™'¬?L›ÑF/Kˆ¹ŒÚ†ùË“x0)oM¥³9À.é~˜ ¿Jóú‰¦‚È×ûÃd`ÑØO†à°‡â “÷ü0X´p”œE|C”ýa2讲øŒå{k¯‘Aêlë$&ÇËgRÀkd,åÒT„‚•++F¯‘Áî¡B[•ŸÎ^\ƒS$êëA!Dñáõ<÷>Q¨t ÄÒTØ[d› ܳŇ—”"Øî-2ˆ­À—/ê^Êl©·È L d"e<§¢ÄÔ[dÐ/(&L'TXµòË‘AKW‘À F™ÁÔéþéµ9Uš¼:ûã’Nú„Öý§wì-2¸érÒ³iKÔTyŒÈ ¦ÇªË(Ä9E+©ÜË/ Q•zc\­Î¼–z bô'ñò¸=ØEgVæÞ#ƒ>MkªA97Ö–äR˜ ´Ê9Úc*äB2ß”à—A ƒCWM´ ÇœO‘?ðeðì%Ô3±9Àž7M˜ DU±±uEÕàn¹ÅBÂ&æŠvQ¨9éÑûÃd PŒ÷$e|·> Zeº&ƒ+…“MU@‰æËcC÷0'üX¢øŒ ^OZéÂmˆùY9S“ä_L,‹ø†Xr{`2WÇ­K؆P-:_x‚!˜Ìlhúuo6øRòL Lf€3rîårLLnUŸyE0L¨·Î[ä¬ÖWgŒUd2?Iß™P)ƒ_9¡ÿS…w0|A Í<0j5[ꟲèT,•L`2èÂJR W4ÊàÁ È©Vç D™Ž?{`2°k;¿ìZ×Q‘s'±Í“ í‚.› ¼hH.Í60™Á"nHcî¬ëJ³&30ríJ#Ñ,) ¹6“A—¡4¥Ô£Ù“m=×ÿT ¼~t6ô1"ƒxw­J︓.º¥§éÉ ¿ªò?Ö·èûÿA¨# ™£w§¿•¼çÀd§H–œ)cð´D=0™‹¥—¡T.:Ú ÕÖ“ÓèÖU” Â[›œ)ÉŒIí Ñ`?[ ®Kâ™èÉœ‚ÏsÐÿ²³ é ²D“¡•hó™;?¬Ž "%D`2ÊFHTô ½LªÉ3G9Ÿ’ýÁÉ>.”O³ÃëÉ ¸‚[k2JÜ€—ŸÓ*Ÿ90™E¹Re4Û -¿t˜#oiEuPÿrfpd¢ÎK Þ€Ü>£=˜Ìp–=[IéXÑcôÀd†s:¸h½Aâ±ÞS“P³ð%rßÖcÊÛxœØE˰òGMTL朂¦Cphrõ"Á Þ¿`|):âêª#ÛÁ˜ÌÄ6ƒ5ׯÙ&×7ƒÉ@½þ,tÑíœX)2VàÉL§Šœ°*Ïâ†Á=‚AJoêªvž£}˜Õ˜Ìl fæ1ÅcÎRˆ&3ÉOÓ±‰ñ:à׺6“™r—ÑøF7óñaîy`2³ gKþïsm&3!úZÕ…ª]£›]$)ûŒqQ¹^“5õ†˜Ì,Õ¤­ƒ¢`ÑH<ƒ#ƒcñëãÞàç Ž ‚8ì±xÿû¯Ã% SÓLj Ϋª#DUð „—µŒBX@‚Í?ƒ#ƒPj4Wï`|d¦’?02Èù ;>E2Ú:#¯¥;0™³—cÔI6kg(=›ã;0™óÈ´G–R­PoW(Í;0Hb¢’QIºJ~]6Çw`2ó:N)·§q¨' a&3é²Å‚mÌ+Í’eüLäR°šäuì‹S®Ù›ØÉØ¢²´\=plû);0cOsÈÌ#äÁßòÌ‘AWæ2þ¼PÒávœ¯.0è‚¡ë!‹³e(Þî;0£r©©Êܽo‰kÏL†Óž œ³oeÕ«ÔHɘsA:¼ D”ÔòFÁ`6²å‚*Ëcþr`2è×âГўÁ#¶ÉzL†à éµóùÎ!}`2 5Áõ¢©¢æÜŸVÔLÇ ÖsWE šÈ¡˜ŒÑÇÀ´p½f€‚ÆïÀdÐq‡Þ—ê1u\ž92øì|Š ããLÙ£ßÉ`a “¤Íñ†’X¼Vw`2à%ÂÉbh•Ë~·ìÏÉx¹ªárOá :ec¥ü‚1M¹„= ±O@C=ƒ_TÛ¦ã©6ÀüKy7´¨_p+èþË"JÙ…™Á=‚•j2ƒŽöèAŒˆ`l2C¾Aι© 5ŽÛf#ƒNé­›’¸mDðþøˆQ"•ë*D‹ä':u/bl„ä j Æ;W÷:¸íÒ·fpdðuß(±à­³ÁÉø/Ó–’—®]û ,Yã¯Q³ÂŽ-¨—òË‘Alæ6¶ÌˆÝ®túwŸàÈ œ:ÏÕ+wQJJ¨Ç>õFo—²g+7Ư.0P RÍúbæk\FyGÍ)>ÌvÅ”r!&s%\Xå³ê‹¼ÜeòÌ‘AÒN‡ àœ³ ·¶TÀ*Œ`hÏ6ù¬`¥ä*é uŽŒ¾¹«Ã¯Ýá,ûáh‚EðyIYæ6yÏÉ8Â=•Õi¼Ñ'°€9ûÆ-¥Ë×;wKõaG©W°ô*m0±Ýéz ÒÙ/ØÓâòn¹N­´.`d.é#gß¾U¦;0™s¯äö5ů­ƒö:V&%0? ™›_0ðcá1ÎÁ®IšaÁ¼%‚1ܽE aeá*×s`2›zŒ]œg4€¸æ9˜Ì)œÖ—$†“*n¹#&³ÉHÞE/5“û³¬ºÀd®dÑ–’¸£m¬Ö`°7‹`̧lÁ¾N,Ø‘$82$ϵ7q^÷:ÏW˜ÌîûZ¢úB¥t0"2828p•.òêì¶²vÍ÷˜ ¶WP¿¥úBos{ùž“9;.5Šöœ|,P rßLfCª¦Ltâ”:úœòÌ‘Aà‰b7‰Ñxx QÞFdpB¬£¨²Ç耇GY(eΉ‹IŘ ÔÏP}$5Óì|æÀd ~ŽÍ\;°0>'B>F`2›s–M«Z¸—!P`2{aôeË™rnÊì<êcDñuÂPR{èÕ•žûF`22i)tñhI0å L}ché©ïͦº,ÑÀd6G{–Ô¢Ýh¢—4’„õµW®:~°ÁÍàÈ IM‹“¹(˜#c`2$µ%ÀBol¿¥©ú Ž î«­õF¥¥l_É\&iýÐ: _©¾“á„ßù²¤Ýc˜vñNpd}QºÎ€Ÿ=¯š$sËàêB¤Ûò|˜ ]Î0EÝÅ?Ï ŠeÛ/˜¶‚râÊ®›{£ƒ0вàèéUšü;‚éI+5ÿ\d”u)!&C`/§!XøNpýƒ¢/ŸÕnâ–Ïü0Ôó˜’í뜂ð\¢“A=ý¹èu jØ gðxÁ SÕ}7m7  š[‚gošÁnqûj…ÍàÈàµÈÐU3YìÏDß -­dh>$uG;¯K[™N†ýÙä’î‘Á]m59ñ  Y>ÆŽ vz³KAujSLqÏ•±#ƒ”ÜÏWGùz 2hpdpàn¥š{ã€6ùRvdcUvþYcç?Á‘A0I- W•´£ÉMfÏ_0 ¶úAÀª¹vdÓ »¨Àµ¡lZ‚Blûƒe¡CÊì ì^å1"ƒè•Å/mJ”+©žÆàÈà€(w=ÆsrSê¢M÷‚'ç4?8—¢‘Un-‘AÇE•ÀbÉ?282Ȳ!òÔ¿uF£ÿ‚ѯnJl»ŽN?*× ¿à­#ÄÌûÖ‘íƒæÔÐMD2ùóJpdpÑqZJ5 ¨E«¼È fp«RÊV[ú‘Á»ÉfêV@²u \ƒŒû ¦š_Õ®Gãßñ[HµFq"´µu¢™òKþÀ4¢“U»x¤å×]kdÂÉÿéM:Ä î¿`hšÞS »¥?ê8ä"ª¦«is¼/²äŒ ‡¤æAVÔ žWrÕÕÈ H12ƈ_æàÞH ¬ÖÈà/“f")9ÀÃ`ÿ£QÑ›Ka<ÖW—Lj Âq§è ½zSæ/·È ä%ªêÀ/Ë% ªÚ"ƒ›“… †Pþ¹ÔÚâb Ž :f¹tälà­ƒ{XlŒÛ„ÒüÎÆ…mtË»"ƒTxMòš\L`Ût@;CôdÎÝ©ÓçQ‚#ƒtZ1ÙÌ‘%LžçM³Zù£/°t†÷ªdÈie‘AêoíxðÐñ ,ãÜ8?5äëÙ­ÐÃdàÔóž‡Òƒ ~5Ùr&ÓíO—€Õ€ ©™ éa2 ÕöמH>b3øe‹œ‘&ÇiÞ”ÁÁ¨rË«æP^¢uºTÉ€* Bìgü™-l9Ú“ÁOC%£(ëè@÷50™F)x=ç3ùω×Àd0š‘Ÿ¥bþäöHR“iR^b¶²yi›-|M/ж”„pÎ\p)º¯ÉÀg6}Gù¥”NI Ù‘“iƒ³ÿ®œ@šPwYÉÀת\”{7Þõ”Wg¿`²D詃 ”W„iÂï’}‹ÀI•|)É4B„óKÉÀ4eO@²&ÓØvßrO¡r'êº\HÉœÓ_–BÊònEÒ˜ t!à Yu–‹rÅ L?ú=Uû°_(ŒO¾`z4§$¦¢0±U¥­S“¡N¶mT­£Fªé“ð:‚Ác4Õq=O[TîûÛ/zæ:OÎ#\%382Hu½[M0œ )0™Oˆ¿ÿÿKñ`‹‹`j¶ôŽ Hèð® Ž Âö¢ªfõ˜Ô…È‘mŒÆ¼às´Ù¡}üU¢žàþ ¦r©ž°VÙØ«t6ôêqªÏ)nÏ_0eNEenÞÛiY…m9‚»}•ñæ¹§øÀiÉ4§ahË9MÐñ¿Ï¶&Ó.Ûãƒ}QæDJˆ˜ÌÙ$Ê#C‡,8Ο›L L¦à}N¶-„+ú– lØ“iصmÊíxÿ¦382¸yéÈ¢±%P„ Ñ“<û×ÍN­$ÿç{LæN¢ µD¨ šxòË/ƒÉ>«R! jÁy³-0èwáLÑ(Wt—Z`2 Œ /–zP÷H”¸&ÓÑIoi Ù9€³•Œs?‚7Ûe´A×F»Ò-0J!ÕØÔlkƒ¢_e¾·#ètç¾&ÓIÚbÄ3ÏEkärapà+Ú*}«¾H]Ì‹X L¦7@6\,2· —_Ž b%‰N ܃t!&Ó;´Y>Jbýò̧¼È ˜…åcÒD#&ñŠB1ð †øŒà  Í0“}ÁûŒ£­‰ÛùQ0~³újÉôŽ!ûœ›€±€‘.A±ó †—ÈLõà~GëmÊ/·_ðÆX®b2ì{ÕÄ[`2½sUX,™ª¿q‚Ç/˜÷-‰é½²™Ø“égÊ*JÆ«ÄëdßL¦SY" ]-`²?&ÓÙ¿rL€α/y‘AT2©eÙ±FJ†ç ¨&C¹ïbmà\âÔ…zÔ ^4çÛ®¾¥œ-M‚J L¦ã¶tG¼VÁ܃ÙGG©¯·ed·ÔûÊŘL_|Õ ¤ê¢ˆ)¡ö‹`L`¨ð2e™ÐÊ•?pþ‚ñYHí ¶ ¤Ü“ùÍi±›œy<Á‘ÁSo`f~¤Lò¯#Û'82ýy[ê<ëdwY"-0™ŒJFÍÎÙ”’γ@>_0 w¨Ü°¬/©¦&Ó©Üße,õíb-ŸÁ‘A‡®ð(MÚ”\Ï=+ó˜LǤm394D €œHpdÐ"=Ú•¦ºNêöœàù Æ™"ÓÁëâ kHpdwf8¦è *ØŠrlÉok½}X¡Ørv&ÓÙv¬S äö*ñ28?k;xaÒ Ô L† ŒNh+ ðÁ’U˜ u{lËÎæ.ºK²ó&30ð ~ˆÐƒiÓe“ L­ãïÀ¼‡ b,ÇD`2ô1ø=´$Þ*ŸU`20HÄ €Î–B¬¤GÆ ^ŒíÇD©æ|: ¸ÜÌ“8OÜe=UþÀ!k#0™±aôÛÒRÐ96!÷Á˜Ì`u8e=ÃòÃÕò&3h[Ñ»Þ&(·ÒŠ×_0eâ1w¶Úðʘ̺×>*Œ}¸=-0™ÁþeÝ2ÉUHðN#H‡EðIÉ¥ •/Iw`2£˜Êc¤öÖN†d LftXP©Ä"šKƒ%cGyŽm!ãΘ)õ¥&3Hó=·\ Ja2&©/-0̳â"&¢Ü “”ØÁÉ úˆ©ü¹,€ëVd3LæϯoéX`d꿟Öá¦å^ä=G'å«òë  ^»ì¢É BhMÎA0Y§ÊÉâÁ°©]2É«U45“æ×“kN•f©†\%»h`2€³Õ &ƒÒ÷œ\É ÈözHÈ ØYrõLf8¬×R–€Á³+Ý“Pâ­VÔ‚ô<½â&3Œ…]WZj=ŸR×&}¤+*ࢲ#&3fƒ&Þ”-kº¿gîÉ@ò}TõnpúDæqÜ“Só-¨ì I[]õ™ýL_•ܧÿJúðâ"ÁÀ̇ô°jK7‚“¹ÒªzÁøo«Ô.ò/˜ÂMœsklTÑ/Ü~ÁØ$ôÂ;Hɼ&3 Ç¥³a§&¸Ä¹oôÀd&g‡¨4ƒqGŸÈ|ÏÉP‡êl²j­KÁœ‘ELfbLâwof´8Y‹öÀdpƒÕ)ºjšýÍå™#ƒâ?¦Ðóî.IÙ¿àmÆë!б×~KâÆàÀd&ppûÔ· (#'=0™ó´$÷è /é”%k¤˜Ìì$WsEÕl¨92p›ÆÔj‚ f ÉâLÚY0—©(HKçè&ƒç/<\Õ…˜…·ë-¿ÄmÀ¼MµºÃuIH5=0™ ö«¸×‘5ÄyÚ!Áþ 6™|¡ÏcqKw%G1ôkÈÃðè,ªþŠ“GœèÉÌK9ù=óú£±xú1821 t䦹عÌÛDLf +±Ü'Ô€ùÌÉœ`Ëê鎜`ëúl_ÉL  xUòÿ¾Þ–¹“™ S–¨`;Dœ½êä :(õÞÝ“™dHæXî8W¼A-‹lŽ÷Àd(ÌQÓ úü˜ž;&ƒ#ƒ¸Qn(D‘½.0™¼è@ ¢U&ì«&3!÷íª—K¶ ÷ü“¡@•«Òã¾¢!­Ë/Ga^ßôhÃM 7<Ùù“sŽc9Ú0tŸ}/G)>³u˜Ò஄ŠDSqƒqŠÀ«[–Á‘A0vaÃ$(ñBsqê3GéMY妉•ŒíKN«Àd榥ˆu~ð;:¡ÁçÕÕjí3H5#0™UPr¨úÙ9æ±oLyɬ7FíþwL%Ît&³ =@E -=®dm&³`¶ŒBùuJé`ðüƒH?”Y½h l`2 úÎZÓênÉ«³ÞÔ­T' ö >àËà¢åáÒÉqŒ¿@§˜ õKHùüþ©IMìÉ`ì”æ%îH0å¥$­Ö>}õ^Ro&< J*¼LÆÂ–10™…nÉg‡e yŒÈ ëû¸ªq¾¿.yŒÈ ÄÁ,omP[…þ•K×£&³@åqÍ`ƒ-¨ºP`ûCÃFÖ3¸îxì¼MôÀd ‰ùU1:Lc±-ì¹N·;Jœ«.0Š|'_*é Kª‚ÀdHç&-½cN­î•œí˜Ì´YW#ØUî!ÇD`2çjÄ]TÆ‘6ÛÒS¶ÜÀd€ :•Ø6Ùl®&³ x|ªCÙrËõÊ•(0™ÅsLeç4áELöºÀd0Š•ZÈ÷ÞílfS &s×®k©6Ö²5ƒ#ƒlD¨ÑP5î%ùu&³¤ôä`ÏolŒÁ‘ÁE9aqM!¹43˜ÌZPÆ«¢CuöŸB¢g>s`2 ³ÿ?˜ä]K'› Ä¥í§Ñ{o@vÇÌ2ƒÉ@„ M.%\m†üòú[·S³Ð4©“a½ÐT$“s™àˆÉÛˆ Ò±*Ib°cuÓ¤p LfÙä9¨ÔDö&d’«&svyeÒhÆ#zj×282H<±›úz„u)¶“YðUYH@ÔżJq¿`h¢¡Z£X2Ø{`2ô„ü àÌIͽT.EãàŒáYÊ0fŽ;ð”_Ž ¢ö=›ŠÌ§@ùDTQÿ‚í;­sI&ï92ßFS‡2p³”-¯.2n‚5WÄ ú$æ÷ ŽÀd ö>6††âš¯7ú˜ *k‚¹Ò"1~¹6F`2¢ssE!ö ÙáàÁ¼¥ˆ¸Asö¸|É3¿ B ü@H52}6“9›%¹ÀR1nb”–t÷˜ ¶€©c€U¸F³#‚µÛ,OKî#0«(–Çoߘi25fE³#‚Q—¹”jçÅ‘U“³x#0ƒÌ!¬Õ”~† 5•ÄNpý‹:ÎGrvµõ—#ƒT™+%Y}/žýyZÀd î çÿ«"?ÍüÓ>Éœ’4M9Ž1Ó>>7 ˜Ì ^ t]ì‹ß %7“é!ë·@‹+T~92Èêi e ‰º#0€&èI ^ááïÚLÂÁØ1›RôѶOÛå6“1bÞC:…øæc&c4ˆ©]Ǿ‡og~°É` $@Uℹ7“1v©ZUoJèÑj~&sªP°WZ¥AE3 I?ÉØm›7m¾\Ý”?0281G²–r‰ÉU ‚˜Œ 9'ƒlæÐV¢ AGÙˆX*b<¡Ùçž'ìLÆ NðS@¹”¹5¨?›ï90™³sñ´ZzÓýIºÒ#0™ÌÓJ*™}×FÂ,#0ãsLµË)ôØô|ÉÀ× ùÏi4?¢(#0z× fÔ?”æ˜Ì¹I·ô|^šlç=e&qÜüoÞÂF7µËB Læ\«è¨æAãùiª282ˆ9KR¸B-œ.T¹ž“Á*s‘C9R&%0ƒƒ'ñ¸þÊDz¡SŽÀdðÈX¢Zó`ÙLÉ@ËjÊŸ¹¶ö!KÀdŒˆrW?zçk[~92¸ifµTÅÈ ÕHåŒ R+Èu~Jž{Ëö˜ŒQWUOXxEáÎÕ×L†îˆçŽüÑf&=5ØÁ”œÍ=hû}$F`2N¡ ÕÜÙ¥ZR¹F`2ÃÝa}Ä:€5$/w&C?L÷½5÷\N«ÀdÓ -!ås›À²Â¡+¿Ü#ØiOí:¸è /Á#‚ ‚+þ<)û›‹h’¾àF{jK["èn‘—;R`2Îi¼þ±€ûÐOmŠÁö ¦‡tx ðE·‚ÀdÅ…L¾3‡VÑ—Ààý v¨èç«;;"dÙÓ6®Àdο!—Gõéõ!Ã,#0‡6aIÓ±OÜÕÕåäGaGÖ†nðžAq“``2Nãpq½bÑòu&s®)íU GUG9‚q4©˜¦èÍ“»h`2Ä®ši0;wÓLj R§Ô9g£œá–·á¿`Ü»%ñ:÷nlugÉcì_0eåÔ[gÑTÒ˜ŒãÃ/U’w¦F®Ò#0™Œ‚ùƒÉáªUúÀdœžáU¨ãe.^FdçLÆEˆ¥$ÞWü\*#0™³¿ÂtLF‰ÏErŠˆƒ#ƒûDŠ¢TȪ“«kò‘AL`M¬"ƃôµ\üÉ€%”—@²rt“Á‘AÒ)³… ´и»ÔüÉ8’E9Tä¶|äVF`2P¿N6ÄQ}‰Ü\Á«& „ø^íCÉøºfßòueÞÒkÉPûìV ”ÜSL®xÉ8ïúKè”vI¼SnÉ€ʈ ô±ÆÚyIÉœRZC,á  3#0™sœ€g®Ú³{rºKNØÀdhžÙJýÜè±±jᘌӥD)ssÓ-ý»O%¤¿•êåžK:5S—GõoS÷糋Òñ=Ó˜ >ytšê¸â¦*â#0ˆµA©Fq~Z‘êÙ˜Œƒ¿áC‹mú‚ oŸÁ‘Á ýfeg¡÷6!å˜ ¯ä{ëü`§þs‘…˜ åä?N¨dxÐgº“ñ3'¥ú²v{mòêvcçŸûCö(B~úN@F0¦üšòëŒÚà‚×ÍÀd ¸«JbTÃ&O3/é30™]éü&g‹ªTÙàÁ ©.1p‚ö!\ÍÀd ¶–CÆ÷êAûo‘˜Él'%1\,ÛçœÉl|þñòkÐþ?U¤<†E0†°§Šÿì¿à‰å!ð,dŠ>쬘 ®hù}ôù· < 80\ºNUðCŽã¯r"x@8•ÿìœõ˜ìúoÈ ìlÄO—Lj ’šXÔ…Šþ²ª27“¡b)®%5(ÓýG!BÜ>÷îÞ©Ï?$82ˆÞDSþ³A)]µÁÁÒ‰`yåã[ D H¿{&söWÈPË—¼œí„³f`2b£.JmçÚMòÿo“™Élô-Ný»Ô #²24“Ùä16i¡™2Ô¡ìG'š'.–(¸mQù4ßF`2EZä,°û_³#6“9OËù’ÛA˜ÆÏÆÜ Lf£©i:É…‘PŒÆùåÈà­øŠL­€#Áö æ$IÇjQyÏ‘A’Ê]÷ (qt&ƒ#ƒWÓ´K‹Ä0ÿñëm 80ЭÐãšzï¾ÆÛ¤¹[•JÆw#D¾”ÀdöUx] B1Ç¥9>“a3ÿgqy¯ÒýÁQä1Æ/ؾRi«PF_F/g`2¬Íeû2ئ}Tæf`2›P[!e0d!#šK40P¢”©Å|'^¾ÁÀd6gµ*à] r¹ê“a»O¤Ò:…æç’>“u*þò©Þg¤€&è4“m6²1B¸E GAÓk[˜¨-ëieÊàÈ FŠô4q¤ìõe&š,\Õ´ßÝ. [‚#ƒ²NU:éF? ¾˜É@¨¤E© Îk­ýù0™NÛ¯Mådë?Xî|˜L'teCúƒ«+0ùR&ƒ v¡ï®”j·ó˜eü|˜ PL¦ji½±ÎÙŒRmÉÛXŒ@E2ga»a% >gdæ§èг{/·gÎÈ æZ¼®Ïõj9B1š32ü²ªÑš:¨8äƒ]‘A,^Qƒâ<]jÑUÁ+ÇoÅ8€wt“àÈàÕËі߬#sEáeý¡š†»ÊÜ\‘AاzÑ ï€/mY‰óÏì¯è—ò²CGîÝsE©5åÐ4tGÕ² ¼Å^írÐÕùgûZ‘AH͘+kˆs?¿ G'æaU‡ª³Õ&Æ ìE0&¹¶HÿáåàœÐÐ´È ìÖÛ’›æ¹ì²d)O‹ R$ΤTëRŠ™O‹ ^.ÃÇe›Â—]Êx‹ ÞIË¢E`]äÆgº-2¸È4/zõh‹UÇ´È࢘¨|VpÆÂi%'¬E©í]¦,å.$Á¤ˆžŒø-‚1N‹ ”æTŒÂ…ÅÞù zùŸÇpߢFBž¹ìÓ#ƒ¸’œ_—vð¼À’\=<2ûˆªZ•ò¤:‘1=2ÈËßÏ\ia”«Î#ƒÐ 1eîÍNÓÅæòÌ‘ÁMꢶžö>ÿôÈà¦åT0®'¾ä´rûwµž!X3OÌ|zd·—6uô35©\Ó#ƒÐ3ý ([ßIÛ¹Ë/[fÑáYÜk•…´ë/ß²TŒçœøx¤Ý‘AÐBre³Ð °Ê/÷_°k‹„"l·Ï îÈ ~¶-¡ë<‘ ‘-’ù0™^ïá­šNË©b$ûÆÃd:ÝêR/?\'7,„2Ø~Á<­ä™if^…\:&ÓÏ}d©ÞgKiò$ååÃd:>Ï·•ã¢`»C’#÷çõ0™NßÂóY‰€* ‚ŠåA¿&Ó);äJ<>k /H´,ÖÃd:%OŠÒü`d YœLÊz˜L'÷êÓ"õî°©pµ&Óy”-ÀãPödku•È`ã%]æ4¨\€<$82Hfˆ”K)Q&WU"ƒôÆQcëн(-¹=«D·µÔ9éÑ£»¨þrdb¢SÐË~¥,‘“U#ƒtk*òü7 LJ òÓëçÖ†íK&mW ô­”Œ×ë¤u@Þ­Ví¿à™“ßO‡ª3œ`¿`Gõ%é†eq6BäàåÈblvƒ¥×¶jdpÒÝJ]¨&ï£É3G'IS›\RžòÌ‘ÁIÏj¹¢ß±²Xgpdî™' ÚZíPêšò6Zdp¢ˆ3u9å ~s‰¶Èà¼c.b Y(Z5rGZ-2…×sy”RmØ&Ù#ÓÝ"ƒ ÃÀŸáYH:cKž92¢fU*×YAœÓM˜eµÈ ŸÕµŒ_ UÁÌvµÈ ”)›º×A,j~F‰W‹ Â}Ý›h†@š[ÁàÈ SwGqÑ;§¹¶¼ºý eN†”aKÄ:¹G\ÿ©Ô— ÈCtÕV¯¿à…ÃZ€£^ØÊýê‘AÈ™A·7omPüý(j®¤Z”&ÅnA&<™Õ#ƒ*ó{‡YD´YV âHñ}–—µpBR’Ò#ƒp²höÑøåÌä4ù_a›6xJÄÀÏ3éUžÙ#ç‹bæçCÁ乍ޝ‡É`¶ WgjL¾î‡É Úe+ö¼N&_ÖÃdÌ3eJ Å”ö€ÖÃd:´³œÌßq E hœñÐnpÿc,W/g½–T0dðË ÚC_œ5 òÌ3‚!;¦Šš½Ñ€PÚ ëa2ÆejKWrQ@¸r¯ L‚z@\µ³°# Ž ¶krbŸIÛÛðÎàÈ tZv¥œgÑp~Ý LL`î)dŠR™ÙÈXÉ@ÏcÃÙ]¢£XÎùê“iôyüLrUjHŠ¥à Læ’CÜX=(ê%õF`2j©ö\¸ÑçHà LãÀmå>OAÔ…ìTM$ð\an—Ř –rZ>«;œ-ˢ f`@w—N:/ݾä˜L¦]ê·Ìâ5ç5@¦ƒW`2˜úÀ¾! ƒàÙò[É€(Œ“~~Tæ€Æ'i&j,<_Ôø*O+Qˆ˜L£Â•}”p;þa” Ž ¢ŸÒÖ‡´ç—¢¿“Á]HuÕ)õ¾³i»“iœK«S›/hr‡]É4 !Lk^ö“GÕ>hã*.:Û+0ü©jÄþ îqMÞs`2ýj¬àìG˜ÐÎ LTQÛ:Gï舥™,®i )ΦŒ…³Ã~gñV`2 Ž—¶u´§¢;Uä*½“¡ü¦˜¿SÕM^¥åŒ Òõ² •(¿‚;ú‘Aì®4&ýL7¬ÀdΞˆ¹6ùº1íN¬”—É4ÚM®•Åk‹TÉ€‚ƒw*^Èóã™ó L†¯ [J¸ˆbL Ž BÝõ|tª\J¾©´üV`2 M­Œ2Ì<Šƒ#ƒ›ÚÞÊ+ÕöÓYÉ ½„ÓJdÇêíÝè3¿ ÒåÁSŒ„XXÔo¹¤¯Àd.6«víi~àòÌÁ¸)Oû̈añ)¨“(ƒíU¯x•j«²D“éhÆoÕf†ÄM&¿îÀd:¼©vÓNMé§^©]ƒkSíi~l¶HH´g&ë0+ÅDR²E²“9^Y¥*8Å–¨ìÉàr…ŸQöÚ´é’_Ž V'7§«ö?=€“¡=ˆŒ#±»D¶þ‘AŒãŸÿ¦Jx TÈ"0reí“îq³³‡É¤Ls‘"sºh­æõß“é(K«žƒ@úP Ž rÖÙ„@ˆÿ Àÿlè[`2øi¬9­ Ž;(Õepdð0¤ìYŸý¹þ082Ø¡úYFS#Ý,\-0™N•¸©°!7¤ß ÍàÈ É.¿Ìv2ª–Á‘ÁnúC¼||j,0™N!ª­7 F ¹MX`2—`ÒE—¬Nûô˜L§)šIe~v—ýE¨,0™Žf08cR}-·Ï²&Ó©¾æÈTö0juæÛLÝû¯ü•ÒbÛ“9Á‹ä)/‰C ÇÕ“á‘éUu fv[œÁ-0™³4ìk1¿ ä‘ÌG ë÷©>ÝÿZämD!*çCý&Æ,ø3¦ürdDÍ#J ù@æ« Læ,0_hõµ "h.ƒ#ƒ†[šK ®[=÷: L¦ƒÄéK WÀP$/Écô_ðÄêP”xþ#bÉtü}Ö-gñ0ñ_ÞòÌ‘A˜Sìõ1(Çpå¶ÜÌ-0™î¶/’AG”-Ò¬˜Lw(Nèq ó¢g.¤Àd:„¶¶ªŽ£#R€,¤Àd /•nJl£)WöŽ-0X‰à´J`¡])„*éLæÜAQªŒÞ„§—Ë&ÓIÔìËÅ•²ì#! L¦£7ÑjÕ+Þ*_$Гé´õTMÔóçôöý“]ÍĬd0 ¨4Q L†D3Ìl‹Š=LŸÙ"¸ùw„ªWšÆˆí…&‡S`W¢æ7d¨EÏ“0X2A†ÎcBåë-0™Q¸ ·ÎµÑí@8®˜Ì(:©KU_ÇïlŽ[`2ƒM ÙÔ*úÙáµÀd ª³»I'%×60™­ÇuóZûC‹²ÀdXU=@Ï»€âÄ”c"0™Aþ²éD3ôŸ¡Û#ÏlW¤g~ìS¡/º%82ˆṡ4&[¾Eæ»-0™ËúQ}ÑJâ…r¶-0¶¿LcŒÍ¯&s‚×9)N0ü^A>s`2ƒ&§]6sPÒy·ÊW˜ÌÌ_»° '4``Û,Ïì@Õôú¶g.Ä*Á‘AR2>4?Þð´$¶Àd0‘޶Ž|Ýì{Õ–D LæÔ&0“ó ÚE¼†Á‘Að7 ‰óÛùqM¡ª@f00°ò¦x¡Nd2)`Éà‡qÂê ¦ kI`Á“ÈôØ2óË E{šoõ£§ûF©òÌó /È€Ùû§ëaÉÊ]>gJ#´Ž¤¾X`2“ ÖÅúÜ0tÿ} ÿÓ^Ù†8 TD“™Cp.M[¨Öâ¼J€Ý“™T›â– ¬{\Ä“™¼=e¾‹>ÿÄ3WÙr“™Æé²`k@G,­”,0™S‡Ã?Eˆmåx‰Ë¶&3XÊMvQ ztKý˜Ì„žq邟3}Øeò6"ƒüÓ—¢uîR¸&3ÁÝØEÙ³›ðìÌ©( LfRâŦŠdÒ£ºé{Ž Rlªßñÿ£ˆ¢&®,*Æ¡nŒ“XéÈàÈ`§¤Æ‡ÛHã®ì•‚ÙŠ:K£-_&3;x™½É¥Õº÷Àd&ȥť­cèì}d<0™S³ÝÛj\Bƒ•G›&s^TGkµ¨²ô¦Œµürd¦èʬ&N9-û/x€¦¯×ð¬Èz`2çîš¾N4w<‚2p<0™9€OñLİéøPš=0™³¸H¼ªìÑ.E?#0À¼ÙêŽÕoÜ=ƒû/‡© Õ:Dç|'œåÉL àœ#YV`\=ƒ#ƒ¤­6å¸HF{dõåÉL ¼¸äi+ªS>(W]`2¥š•}Ø]h~V]‚#ƒçÖÆïÒ ¯_Ƀ Þ¿`Œ”›öýI:LfÒiµ™@pû_SLfâO·þQB § @p˜ ŒÎwcjÉMñó÷<0™ó´hSJÈê ·ñ|ÏÉ@Yõ;P†ñu ôIpdЀrÍ¥2Mpv1XôÀd&¦¶§ri¦¤ß``2˜Ø†à¤x­Ž~¥"rG Lf:õ7TÒy¢ÊuÑÙöÀd&MN‹°,Îa@ÒÓÓÖ“ª Àj©7&Uøw6š=0™‰fOuéi¢ÃFs¾ºÀd&ÕqªëÐP™¬ Ïz`2ø„è+ôé¢Z%82\ÓÆ§p…b[é ƒ{`2sóú/¬!tİ×eÈ“™{B£Ì´ BÙ¤õ³&3!QåU»xgã P­üòËà‚­×IÂTësøgáêÉ,¨!›ôV´è7ü‚“¡üBµÈ¼òA¹×&³0râÊ…àÜÿÇÌ“¡riQu÷Å=XïV˜ ®V h+4D°'3Ä“ArшPòÿ¥Oùç/xCÌ_`–I["¡{`2 =:ŸŠ^:¤Ïæ˜k#0™s_ÃA­,¸;ç$âç˜Ìêt»•½67`àH“YØíZí"Ðç˨¥œk#0™ÉÏSß ËåD2óÕ&³ ââéœrúÖÉ Ç¡š{·óˆ ÈcD/I¨*Û°œW<Lfå×5KQÄ=0™s+ZÉ¿x:T(Õ¦Gqv{÷O+Š]—àÈ Sqâî‘S£E``2‹r°Š™[§ÂÎ!eLfA¸²*bÁN×Òü¬“Y›îs?|cý|‘¨™í3Lfm…Ðnýl èwYuÉ,,õ_Wù‘x)p]å1"ƒ›.jCe!a!Q¬IðËà¹Éù·ƒ@-eŒ–æ{LØ©…üF¸[öDã=0J†V¥aŸ;'æäÐ LÆ …õ¹¼g÷u@’õ˜Ìù.*}Ô¤™ÈiJ‘²ôÀd ¬[úYaŠB<ÁNhLT¬¤‘ƒWsó’iʶ1º‰ù¥ ~DU§#Tó¯C„î©ìL†ðo“™⼌ä1ö/æýë+MfIþÉX£Ç…²YÎÎW?¬{LÆ0µVf¯Ss¯ËgLWTj—C»-÷îÀd ’Pbò4áŽÁ‘ÁŽF³ÉCUœÍ10™Œ¦«ÎiÒék÷ľ<0Ô7Wšƒý#ƒ —€…¡P`\u,“!>Qºâüsq&½ËcDÇ•Eù ‡©ÍÏ’ðhÁ({¦6¹€Áâ1jGaíU·^ñ £…4382ˆ+ÌÙ2]5Ê8O–ИŒMJ,Ê {®{•ªãòË‘Á œ?%¼ ÞØQRï*Á‘ÁE©‡–‚f¸⦩Á‘AXpÝÊTÔ"ÐäÕEyì©4+FÕÀqͤìÀdÎ÷Æ¿~\!°×-yÏ‘Aœ°Ö–‹J†H$ýLÆpw%! òít˜e&ƒ! î•Ï´NùLïÀdμ€žoc>¡€œLÜÉZ´§UãŠ^YöSv`2hz”ÖöÇOŒß±ä™#ƒèIVeV¯Îkimò6"ƒŒÝ•Û³¨¢/HàLÆÐA{G'æÛåmD1\Õò>Øÿ6ìž>C÷;0CS UeÏ®ߨɨ—´ mçrñ ®¿`L Léz²}6ø|æÀd {«7A¶÷Õ¼n&¿Ü„ÐLµ 7ªdªÝÉÜOyËðìYr@™‡>ÆË Ýè0¬©Zø¬ÝÉx¡ÆBEú³¡¡j”M&0­Ð§ £Ðþ[Üdv`2³ÄѤeüåÝäÜ¿`Sß%v=PD !v&ãÅét/ÀÂD?¥ô¼<îÀd¼B·§õÏp£%̲“ñ €}O%KCªX‰Ç;0™SäâT‘aC4š1,[n`2ŽbÙÊG ›º½-¯Ò;0o×®k%³Y2Ê/Ga1]m5å`´^ü4w`2Þ(±([AGTƒ\¢É8'”挈€ìHÉx#|¬Ð=æ¹±¶ò—“õÉ6½i®gGG©þáªÁÐù£¶º“¼ŽK¶š‘Œ×dû LÆÁߨCv¤SjÓ§VvþÀd²ê?]´×ÖÁ««r´&ƒ}ÐŽêœ`p@ Þ;0Gû¥4i¾ØùŸ‚=|¤˜ åÈK“?𜃤ù yuþ ¶t¾ºCCÚ*U^]d^«¦ÊxU8è380§k¯:³œUÖÈæøL†Ê¥ž²6˜Šê\%)É8eþ?=ú5ÊìÒLœœyCÚ”… S²àv`2§ qUhQ Ï„w ¤)ýl:¥YRÞÉœà¥ÃY¨ëè ãLæÎKí.|~:Éí%P`2W™c Q@OùLdìÀdœ„X%¥Ã÷k൓qöQkùØóaVÄÀÙÉøÂ%}Ö¯x#HÙáÝÉÀ|u™úQ[|ùåÈ •þ·:520-!“q2C\fjÎm‚ïcKpdÐ@1Rüy ʱ^GO}‰›¦`_쨚ßLÆiW¬¢¯p…€i•Lj ò“â3NÊÄGd“ LÆSÁd¦±9ä1“Ùסglœ¤ˆ›|°Éœg·6æè÷tvÎ|æÀdNð„þ†ŽBtªèwyŒÁÎ-WæÁí/—h`2 ù'×ìÊönTsHðËà&w©Êoè[L¨w`2›wý¦üÛĵ¤4ïÀdvãX­b˜Ùýf00™ ÃÀêò §’‚xŸíÀd6ÅÙuÂÍœ°‰ïÀd#}'Œ:¥"äv¼“Ù =žRW) Ät„g¾“Ù”–ÒnißT•¬‰#íÀd6€ù¯ýG‰]|xw`2›ƒ¤U®Ä"ï¶“Ù´"® ±Æ%*I L†Âž¿Y‹wš–˵40™æª7Óf¢C‚@ôrw`2›¦aKسv›7CêÀdv§„ªxÚž ¢ê þ‡‚^0Gú†BçH.*_J`2§<%CÖÆ¹ô¡¡²³)°“Á )ôù§Ú^P¨69;0™M± *8з&)=_]`2¹6Õ‚[N¹BáÉìÀdö¤¦}”K9è´ä1"ƒðó‘ #´jg/ds5•Ug !Jé;0X`"c‰ä>;Äb&»“Ù„*Uš[@ÔßígÎ ^d„måÀ%c§Ù7àªr¢.Tà‡¬F)÷‚i¾i‚ gæ¯1‡ÇŒ``*Ú§`rÝë¿F°á´úÌL†Ã7ظ»zÌa¯K=¨¾`¬]‘ÚPúìÀ‘?pF0øüÞ”u¿Q$ ÊÓ|yr_‘l7à ø †í…ŒªMc½ìibâùCÓ§|T;½‡·É3GÁÙ6uܳI¨4K0~ÁØÌ×оõý§,¤¤œõG‘þ\áx¶å{n‘ÁIÙ01>-S‹ŸÜÁ¨ÙÕïxQz®\-2HÚ¼ 뾑oº“{‰tF0jÑ&JƃC†³0ŒÁ ¦©Èüy`Ò)å=·Èà¢'í,w‘•±Dù+Ó `îñn–g ¤#_0TðÅ5À/«‹Ëªë‘AØ}Ù*Êø5Úµ{f°G n¹½$¥ØÈÖCCD j¡©]q:¾q‚û/xç ùŒKEŒsÕõÈ Svl)ªvpôœ¿`jTr1÷"Á‘AˆÝ™r/ (±Î Ž r]ªÇH(d§Ý$„4Á†KºN€Ò`f̦‡l_32ØQ×-Ùdl–;Jœ›ÌŒ vH$êþlà‡c ߯Œ ’ÛSd`¡l‰ŠÇ32Øáí®žã§vÀžƒsý‚'xY@W·ªYá Ž Rw*œ5ÉÜËZЬ<¨œäRǸ|2x¼Á€Þ»ò1fͤ¬È z’6†jÝoŠ»Ê»"ƒýu7 azÈÇX‘AbúKEØHý‡çUGçªJw¿FÃhaÏ|u+28ñ¥˜éø3[,cÊ/GáF~ÖsûXÌo߀0l£Âfi•’Îé‘}$‚¡„4dôÒN-ÚÕºñGƒwög¿[v¤P]•±€‰e‘ÞF°•_ðÎÖè…gCCR×YdÐ8¤¬×RÇ\ÂvÙù-2žŒm“Á²U¹•tllêf> ´(ž…˜í ÞA veÎwHàö¤tÉPÄ0aöËÜWT@§H8+2fn¹“ö(MiÅT–l_“(z'CA½Ý9,;ÿÃdÀj‚ ¢x­ÖÍI‰4(‡Zo…XSÁ½Eåù!Á5‚}}<ǻ͗âäa2˜p_«hÒdPlKp`I·yý”«ºŸKôa2l$A!Ù,×KÜ7NðË |¿`ª.îƒnÅå—_ᤕåŠ>­-“âö f^>æn´¼^òFƒW½–öIaÏ&kÃ#ƒXÕ—ö­8²eÞ‘ÁEÝž%Å L ÕÃrÄŒ2)›‰„, s2%Ý;2h¬ëTüT¶œV;2ˆ}k?nb𲓗›;ÒŽ ¶¯ÏV(4trcÜ‘A¯Ô³Ò‘@xw2«¡]ÁôMRG§ R‡§äˆ#xt*’gô”ÏSÒ?02ˆk¥¥þó¹M,š&ºÜ»wdÐ)uV?bw^ÓæÈÓ~Á›?óÊŒ.ƒ¹‹ÖÄü HB:¤LëG@""˜sÚ´Ý$¨¤Ïã Ž òVòÑß8ç(ʦü¬êÃdƵlýàÏv9…¹êÃd>]Z,¨®^%øe°ÓXjÊ%}]r]ÎÞ‹`êÉìB…2~º¼ à¾ÕáwÂŽÁ{žI Þ ÎKV2Wºè¿àÀd¨´õÑ…€k•Á/ƒ§z_õ’±k#0™NËð!WSÖÐoä˜ FšÑÐé\—¦r/OpdÃà®s„wgA×:‚Yœ(× FŠõ•Á‘AŒP=Hešè²íS~92ˆ.Þ©ˆ‡àüdѵ-¯.2H‡±&TѨí’ÃàPÌþc¿jY¸‚Ý>T·ç$!2xªrJWæªk•³x–Ϙ EkŽ]ÛŒäœ`aþ‚wúEð6±)Ù_óRS“9eݾD­èd¤§À Ž ·bÆ?•,ßšo#0²Õ=ÝrÏ.z 2Š µ Ž ÂwÔzÝž:Ÿ¡GʉT:K!ß``2h—"…åKÉøT250™Î‘í)ÚàƒâQ;Åî@Š»ÁcfßÒUuPÇó=&s>(m¿[.Ž×sVd“pÊD_ýšŸIpÿó^êþŒ¸ge^“œVY£·;,93xþ‚ÏJáz8Ç€¸•´¼"˜ŠâdaP”OÏ_¶¦º„Á5Õ&× ~Ä[F£XIb·Y$);‚‰F©[' 0eçLæü®ÿÂ·Š­Õ·|)ÉŒIµ %!LàP[.¼50™±nr³Ÿ‚¯¦VÑuàŠÉDÌ©àU`Ï%˜Ì©–GÊü¿‰}Øž[n`2ð£ƒ;’°Áû}ÏžéLf€ã®ðì¸k450™A ÿxÚBVú· 382¸¡¯£Öºç,¦Š¾¾çý ¸ðª½5’C6óÀdÆ&‘þ£¿èÚãùž“XŸís©¡ð^òê“¡ÞMQ̼ÂÔĉLw`2³,h\¯l7”È£eöÞ´È”²ÇR>r´&3¡2oŸ?p’)Õ³¼¬Éœ¸~'чÅU:Qâ˜Ì¤jËh¹DqAØ4ÈÊà—AìÛjHGŒÞ•Ï!ú®"/qg¨{ç{Lªè˜ÅœPîÉpÌ܆Œ×9@ð¡åzL†ÀôÂGk•¸h.¤Àd&¸“59T¸µ§ ˆ<ÆøÓ…JðÉÃQúV50¨³)ËbÒykä=‡Á‘A‚5½Õ… ŸLΔÀdpøbÐ?ÏAŒ›ªŸàÈ gé¬ê<줛Œþ‘ÁÅŽÝTÒãý`{þÉÌeCytËåÈ¥Gª[Je˜Ì ©º€!@ ,‹uϦãëJ°0 d!¥ì LfáRÓªªo*dY’j`2çr×Ó‹ïn¹6(®'Ï쌦Àúø§ºßSßsd2Ô.ð,ÌEqÂÊE,0™eô“—]ÔoŸ@š\50™…)‰6Àa ¼»œVÉÀo®¥Z¡Žun_É,ß4à Ó&¨õrñ&á?42ËõÑÉU“_Ž ²¨kg+ªÞVV‘s00 ‘ÀýYÁ=ñ}\ÉP¢MeÁí+%k#0+¼u©é04×%);‚:é3/(\«ˆX/¸ªÅ­ù9fS~Ó”|‹à†JFï‘À€K¿ B ÙRÃÐN¾h -0£ ð˜z-…àÆ¹dÈ/Æ”^+*ZUJdòΆlXéK™!ÜþL~ùeÐP>í)÷ÁË +%k¤˜Ì¹ý¹z¾°Ë‹ûàÈàÀ B:”ñºDDÕZ`2F–rêoL,6‚¨ùËÉ*sÀÛ²?Ãh¥–¬r[`2¶xæÔù_¤ £µ*ï90ƒ`{IQîE›ÚË/G©‰ZêÇ6î:ÝË/Gå…êlwÊShº“E†_¤\¸yC<#ƒ#ƒ¨Âwý(N€¬š˜ íªÝD`äÎD{r+hÉ ¿\tKý<ïжüòŽ`ÐkùpQå=¥&㤢U+ðFÂUË[[ LÆ {ñÅ;·R”ÔM^]`2NaÏ&o¼LmIÉhÉ8…=§ÛÊmè .Ú“qÞ„Wsi»ãžrªè™Áó¼SõðÕÏØÑÆohè¿ :äg~ ‚6,âÅà—Aü†”î¾ÉM^]dp@÷@Ç ®¥8Àä™#ƒâeæ.z–„#¡Î˜ŒÏ›oÁ¾xÀÊ(Ä Ž Rhv þ¿¼Hà±Á²oM´”!ˆè Ž ¢EzZ¾‚=»Š(°$Ri'82ˆÒP¼ÏxõÀ—–žð6yÁ˜Ï¶®\`Ž^ž92¸±º´Hæ¤ÐíŠÑ"ƒpuh¢O6#¥|˜Ì¬”ˆ)-Ÿà"+PÖ&s‚QxºîHn$¿È/?LTz K©6èƒàr¦ï`‰GÑX³.å%ÆUÐ]ò|Œ¤ü|Š‘ÎóFnºÉìÈ ë…´ø¸J7Þò˜Ø‘A§ä¾6šIjü•Á‘A\Vwq°}q6iµÙcwùåóê¡ê5äÕíÈ NM‚óCÖ„¶òË/ƒÂœ>o|2Ÿ.Ïü2ØFS• ö½d¬ =LæÃT…ãàeRU`ò Åî.µ(®ÀC%àÁ¤1 ÿ™ÆïàoHp`ü›ôÂîTZ§AËà—A¸1¦ÑÙ-¨@Ç+,ô‡É@ðŽ!å#ìYYoô ~$ý¬ê.jðîÊ«t˜ Ô‘©º?¢‚å3ëÑKdp ÇUe »)ô†^"ƒ mÛþ¥ù¡„öl/þ F*òzšG.o#2¸ƒ«ÛW#-tz ¹®(£ ŸMñxdpd³GçR¨ÜKâ4EÖFm¿`Êmç´N^¥{ Ú?ù[‹r“‘±×ñ †d诃`4±v81Ë$£L§¢¼_MÔ"Á‘A‡2ž­JŒ~LÎðžà—Á^ÔY宀ð,1Æþ0™‰9‡¯¦IkðË`ïäà*CrQø"}j`æñ‚9 Yäƒ%‡^gKá¼ö‚/+@¿Nn–•…k˜Ì쬺|Ý»B”ðìj¹D&s‚1Ò7TùC3¸ˆå{~˜Ì 6ªÌ5Õ œöaàô‡ÉÀªÂøß©¨k·"ϼ"Ø8t¯di6¹z—gŽ ¢ðÄøŠ®ðÌ3«¯þ0™9¨i:…Ä Ñ+èRç9Ø&=è1 E`.r¹?÷‡ÉÌñA>nH_M÷ÃdŒRDdmNy Ȣʎô0™Iõ äK *òz…Ò&/kTuYŒFŠ”Äýa2hã*·ã³âxMA`Øá½`v¥Mêg°ëpÈæÀB˜Ì¤KR‹.7Tž}«þ0o•GFÍÏÏa.ùåÈà¤&“@0t*ßý¹G! +W-¶ÑvßY}õä,žº×åÊY>ÙëFd Ÿ³¿VÕfá»<ƈ }ô-7 ‰ª—{‚#ƒ˜ô÷.}XÔ¢0µIÞW‘ÁUb2‹·è‘áE#2¸0û_] bØ©Io÷\´ ƒÞ +è#2él2Ô‰ûíþ”ñ}D7òVu”Øp÷èE‚#ƒ›0hÂ3ÁT8EÆ †2X’5.ˆv =‰mýa2󔿖Z$a_Rür‹à9t€ýlæÎI!Nô‡É@êÆ]¹=$»T“™Œ)]7óëðÛ%øepB:îëó¸ð÷‚ý”Á/ƒóªî.Bl·»$¿lÌÉq™¦„9€Ù &s‚1ö“Ê(ê:áöô‡É €äv)ãÑE?ŸCÉL4û¡#)¶žV<H¾çÀd¦_9,ízÔjŸ9͘ÌÄêÏâ’1úÝkÉcD×¥1Õe»ÜJ!?ØÀd&tšd »= ½ìÉ@$7)E\©ÞÐsЩ&CêlÉ)¿y ªFªA“?ðepAÄåçLxkÑky%›L`2«R˜Hˆô }¡1—x]LfÑÏgÿÚg“Uò΄àÀd @‡ƒºåXn¡2Ñ’õ˜Ìj,TUºKìeep‹`ž)"& «“ò î<]êÐЩ¿û·ì LfQ³u‹^®‘ÛS‹TÉ,\”Ý¥„€Y(J²}&³PâÁãFk~ ¹HR“Y×"Ñš(\Ñ–h yŒÈ ÀË]¤­ãpÍ8y’…˜ Ô½@GRCŽÖe »&³h%ª“¶Þ9L,䥘̚ ¥qÉÙ7p W'‹œ`¨øT”¸ãДëLæV¸ ´Ü7îQtñ&—¥/ÔYöÿ:a“Y¼ˆ¹''ú’h„˜aK ¸Õ¨\*;ÿLÆ9ØQ„…ÑRT_ú®_0ÐxÙù¡ÊN7¸žÁ/ƒN…«®3bŽIês£oì|nt¦‹¸„uLÌÉcìæ×éŸ{ Йɀ|ÍV~½sŠ1QG`2ŽñS9Y|îèôd¯m&ã3ZÿÚµw²àä1"ƒ$h§üf=e±Å{¾”×0É@‘¦f™¬òÌóL¥F@ìýôŽG`2v‡ ¢ÞSàÅééÉu‚#ƒ„"Œ2N%â+\`Hf;˜¼/ZlæÎ?“qÌLæÜI9<[§òŸéñ“7úñ0™u½ÙmO¡7¬þÅùÇÃd Òª­BèSó‡É,êWí)šN{òügLfqæÄ‹Œ?ÃI_J³D¡2p;žh¿íæÃd0 IЪüº»j“b4&s‚é4$Tðfh-ÏllD¦¥§¹À‚ó¥oãep6ZüHAuþŸÒ ¼Æ­Íü3+Mƒyu“9Á4â•_ é·ɜ` hOm­N’—ª¼º‡Éœ»QÇ–kʽÄ2ƒ T¿ N4I|*P]¶ÏLÍ|˜Ì FC~ï&#!¼¦œTæÞF³îûžkd½6¡4¿ÉD gÉ«‹ :ín„‡,ô»‹G¡FRçÖ²§–ïœæ¬‘AÎ<ËJÀ ä“%ƒ-2Hw#UÔ<§k¤Ü7f‹ n¬!,e ŽèmÈÛh‘AHH·õ«¾æ¹þ…ó´š“!;+ëËc¤¦\çÃdÖâYõ±ŠnìiÊèå|˜ÌB×U®°:7´›t@r>LfÁà5˜\¢›2‘1&³EuœwÎî%oãep-l™SMLžƒ¹×$)/ƒÆ9!í`LhPŸ?ùa2‹eÈÇF|ž)22&³€V`汉ç8÷HØp>L†§ç«Wݹ’¤]Þ³G0.5SjÑÚ:±\9&“Á”DžOò•o—µ˜ %‹ÜÕP£_#øœyœÉàoÿGÏ‹ï LÆy™vÅŸ}]sŠLw`2Ρ%îó5Ph+ßF`2Nï…)äÿóÁ³w,'l`2Lˆ{Ã@B'šg`2›éJ Ð6˜¬"‡5“ÙìýNíMÀCÌ¡¥¬@!´„Ø‘Á •%ž‰§,Áë~îÈ  ËŸ#Ó-NGëTÔ|˜ :@¨Ÿesî¸È¹üòË`kœ÷™& ÑÒãgðË`ƒ¯ÝÖ®úÝàLæ1±&.JýÚzBz›LÞ&ÖÃd¬a(¦åf>±åâKUÛõ0k¼Š¹Ðݯ'—ªë¬‡É` äŽ&Q>¾(¶G¿ 68¸ÊbõI›>óŒ`C¨”ŒÙ(â¶åm¼ ‚Æv Ìþõ]úÞ×Ãdð³à™G'ý¿‰‚ , ´íߥf=L تê7X1¯¥¬¡õ0S”{Š&ê L“ÓÁëa23 U#A- þí¹D×Ãd Êæh´(7žE ð‘ÖÃd¬s̈́ċÌ?MÛõ04–"®ãH4·¨òË/ƒ˜Êƒ¶Š”jγ±æV°&^TKîüÐíY±´ü2ˆ®Øà¹óC¨–ê™Á¤8N𻡠²%Å:ƒ#ƒsó®/ £óˆ4X”¤DE „ãêè¦V2ªt=ÖÃdàëmê"œÉ™eÏz˜Ì ¦¹¦š»9Qâ"é~˜ &qÓÐ2¾o 2Èâï‘Áuo]òY 6wâukDíÌ3ß–Ö²5"ƒÜÀš gAÁjd!׈ ÂbËô1ö½áWùGdú?2¸‡zïi~V#2¸‰oȨ%æ>}Øõ0[ulSœ,ÐlXŸËãz˜Œ-†N¥d Ç‰MJ^ÝËàbuQ„_·ú-å8~˜Œ­£'ßjVXP¬K+j=LÆ€gafHÍâÍg~˜ ôèì•Õ—q c Ûp=L†Ã%§Z“~ ö*xç3?LÏ€ÜÊä˨à+*X½&s‚$ niâµTމ‡Éœ`KžÝNîe-ú/ƒ¹[Á€›j-²É†E0Í®eü€póþ¿ ¢´&7Zj¤RðrW`2{Ý鱦 Ù “xiCåÉPÖFÆŸW`2ûz)Ù£~¦rß+0™ ¼n«( ¨¦È`"®+0¶ªj"Š“Û£— B`2ûúmñÄXÔ‡š¸“áPtMS›‰*¥žnŒ“á8Žïü1ÑŠ6e—`{Á­CUÎ_T$×ÃdN0Ú’U°‚qÍ•[vjÖÃd ‡‚ N¹¤cèb_Ù±l“¥ ‡žðëv¨Æî‰ÚÃd»1fÄ„ 9lì–Á-‚1µª,‹ûâ,|3ˆ©%x­Ê\”IG d3x¼àŠýyŠt‰¯.žãuö0¯”+TgC@ÀÔ†¼Áàɘ: ΧÔ,{ìa2‡-\—Ä­€ú_E*{˜ŒS-æ3ZŒ–„Òáµ‡ÉøeQ+ˆ à ±ÛAðÃdÎq ò¿ 4"¾ ’Á/ƒ˜kKô’VƒÈÉÚÃdVبq´­s;³Ÿb52HÝ&<Æz[Ë$82胂¾Z4*¶¥é˜ÕÈ S£§ ­ G/å—#ƒÎ~µ˜SàMÚÇkÕjdpW™ãy%ïíÙZµ‡Éœýx›²,гY*~@ö0o”Ô¨]bQ,ÅËà‡É`¬ãž‚}r™Edþ“9Á8úGÞM¡»ÛÃd¼ùµ1ë’AÙcÏ¡²‡É8l’SyÖçÿ\Kía2N$ð¥ÞS.Á2×óÃd¼S,uÈÎoÀ8’¯5`K;=ô²:ö0ßz¹òu…'“Q5ë‘Áë!b»ShL¼¬G ¯(Vî!0JùåÈ §]t{°ê”å«ë‘AÃõ¸K+ Æ<"Ø8{äÚIç%=¿ö0·ürdpÓÓtÂ耓SQö0™³ÍSsÚdRÚ)øÎà—A¸o ó˜ÜI¦ÏDÁÛ&JXÉóãJÜ1µ*«îa2çf\gÃs.’*•=LÆyµB;<‹“=p̸\&ãŒ8ë¹Ê-(ù‹“qâuu ª†‹*jÑìÑÛÃd|³’Qó siƒ>é2ùWM§ç?Õä1^ÏA3Ô îHଔ­àË ¹çÌ™ª¹GR™\“976@hSgÄ`"â+;˜ å(\»j J¿ £·&…+Çípš¯ ~äÐ]YŸëÿ²s!y`28– ¡7zB¥–-lL /ÊpCÊøÇ±Ú“a}Êë¢×ÀUKr¶=0™ÍA¥-SØÀ+ægpÏ&³ù«§Ü±hþÉ*±è“ÙÐ ƒš/ä"[ï ͶâÒ0âuÿcdé“9—³IÁè[àQ•.ƒë ÞlŸe ž¸n¹øÃd6 M ·æÛØ´P˜Ìæ µ¨92¸ƒ×œ5ƒÇ ´Gý#Nëä}˜ ‚@I)\¯¼ŒœøÃd64ÄáÃ#ÇD¥<œe©æ“=®&¦ríù>¤Rå—_qªÁ„J|—Nɪ@Tþ0{ž6÷´êÔÜKi)˜ ÆqE˜ŠåBW¼Š‚·?Læœ>}ªnLfŸ«>ùMä‘'ÎA!ÿûÃdÐc±C¼pÖfÛ¾Ë/¿ ’æW\&ÇO± f‰ ®þ0™SI:Ýë–àHį-ùþ0ÌÐ,eˆ)ä‚©:ûÃdஇ.ž0÷ÀºFq"[ÁÃdàg2shþ‚{$¨ˆÙ·?L²$‡Ê&s*=Kx—Á/ƒ±)}Xø3bE2ø0™Ý›v;¹×u²ze*Ê&³aèB~B'g½~‰Çþ0™ M1ôÚŠ"Û˜(ü2"C„uOXDõ‡Él.¸Ñ/iraTÀº|ƒ“AÑ2Ô3Ç/ˆ& éa2pW†Àžð Ðç!‰7—èˆ ²ïdz¦ÀŒÅI¾ºä§C±žàÃdö€ª¥él)ØS¤gå☠˜Ë P‡²…3iëøÃd mas"ƒÔļúÃdN06Æla/X×ËÝE‚_ÏÉFs7)Õ6ä[—?ðepÀ³Iö¨¤ìÃï§Øæ“Á°ÎL+Ñë¾¥*8’?LF“KÁsyìü›{^ñüa2˜Ä‚BÕ–ÂuÃ[÷¼\“Ù>{ '„²I]¨_ðÃdNðþgö ÊBÖüa2øÓfž6'Süc€ë“A÷fPP}˜¨þ0™=O©¡N¡rÏ%u~ƒ“žY×YÔd,yu+2H÷º"}+¨þ¢¬–t¯È F2Zj8Gó=¯È ÑÇÞ—N蕱/˜ ¨†è*›òë8?Ø¡ò‡Éœ`TæJ Äýw}”xýa2¹¦fž"Û„àdÖÃ&s‚Aœ0¹.5^ŽUß&³a3«vfƒÜúþá^úÃd0ø\¿s°Òò’þòË ø`94Ïnpd‹P@ýa2çäu| ‘ß„n#.é¹É"Æþ0™}¥¯·Ô¢¥òæ2ô1,‚Iœø\¥yÏÑÂõa2(püÊ”ßYâlùI ñ0æC§P,ò7²oå“¡Ç0¬îD©¦SJ¾çX®?L›ÛÕ2ÚC‹Í-²cþ0j=qP­Î‚b{È^÷0™M%JÐdx–+baì“!çÝ5¥dnµ4øeÐ)Ý—¢—, »ìÏ“Á­«$ôNÞW½wX©¾&ƒ!YKI¸oŸsÈ/¿ B%±,þ §âÚ4)‘AÎ¥mžsKÊqÝ%23¬â"±ˆÙÒ^[G¹ŽšÌwŸ Ñï}È/Gáw\v[R}›Ÿý.‘A\%ö^Jl‰ªÈ%}?L†õ›ú[¡*À\ɹfÈ/¿ brdDiùr_†ü2x6‚•FÁ¯§Iu¬Ìw`2ç<Æñ+¬¡‚1hàÈ3¿ ⊒®ÂïÐdW:9';0jƒV“ûà© €z~V;0ÒVöЉÏHjþ21™úG™zü鷈㪃&ôÙß󞲉ÉÜ`›½¼`œÝ•ãHyÚÄd „"§•º›˜Ì ]}Jp®¹}mb2 ¾ŠEícj•FòÒLÜÄd~š L»fGÁÁ˜ dh¼ ¸xâ/IÄu“a0D p‡à:¯jbîH›˜Ì ÆJßí\εÜ Ô“ÙÄdn0jœæ¿·a=:¨üËàn×V(þÀ³=/iÍ282ŒwC+~àûWàz·þ ^—*û{¸ âKËt·È ‰yó—ô“:'òÌóŒ³rÕÑo!Ѭã2'~¿<Ñ"þ0«w‹ Öyµ/~oÃ@B…¯~Áxq%£Á²ÇŒürd°U»Ó¿_v:îÉ­m÷È ©‰&ú}ÝÐÏEo#W]·_0¯¹êj¥“²tv÷_0uúïm@N&ulôI·Ü¾ Ó*hþç—2"ƒ¶ÒeåÚ-«%_݈ 6šªïü¬¬:PUä.:~Ä× GÓxf˜6î‘~_qhâû}ƒ“”ž7 ="ƒ”r;›Ð nÁ1!옿àNÏ©|…s.‡æˆ R·æ™ìhïƒÀ#Á‘ÁN‚œç/Cuº¤¹2ƒ#ƒwrÅóKYçu⌼ÁØr§ìf,å8ž‘A–áSN+l8ÉØ×ž‘Av`ò%‚¡»EJe¦{FoyØ2ÝçìFÅ"•=û/¶;O«¹9” 2§{Ž_0*¾•_ T¨Y$ ¹çü£+kňòYÍÈ ‡uüwLàì¦Xt“U7#ƒ£õ«ª•g7Õƒ›|)ÓÁ)•WW1Zúi7ì¹Á[ׯü£ý‡¼´WdpP\ey¦BDåÒ½ê/Øo£ù÷ ®Fd\ õË †QÀ¹Îƒ¾q@2/¼{ý2a!ÀY¿i@¹i×¼§ìõË É_ñTÜίýT¹öúeÐiŸ ÉÎVP>"{E'x.(.ò8Æ…ôoG1#ÆýïôNrªìüËÁ¬GÇï—Çêì<ê«‹ ^ߤ½òKðGx[dD |u¨ îi•`È¶È ˆ@¸ãæz¦pó^9V°-2H¯TàÇy/èˆOͶÈàBºæï g ëPô·EÍøzýœƒ†I¼nÛüûU^ÊspnjåµÈà¢^÷69âbRšý‚iŸI¡Xõ¢382¸½%ómp[Ìáï_°_]ˆß{vz­èë‘Ax)a²<‹mÐÁÁ½Ì·á‘ÁÅÞ¯”ñ3w´_pdð‡Lÿ*tt· öµ=2ÁîÒmÈ9¸@5eéí‘A#_JŽ64À¿‚íÛç/¸^A²ß{6(œªSÞFdÐHœY1šÑ–)_ŠÛ/¸^ãmfq‚lS~92È)¸)æiE|#ß3ÔÑ"¸QÅxËq<¨'ó»  ”‹`ZãJº;1øàdpdpOŽ2äö…}‘ÁM4ªw9ÚUô›GiR9Ø<4'ãî¡òû+»›§¯ˆó×nÄö Æ«ëùË›çüNÍ`.7¸’=Ø«^¥Ü¥žï90™JµÑ ÙTº©ú=‚q·êÖäÐtü£:%xü‚ÇuûÝ­°9àÊÕ2xF0'¿e=·; Óz¾çÀd ‹3EОÉ?p´\üÉÔre_Öo“1Jÿ—. )0™J§+œÅùÊü:ìf¿`,QÙ'Å=Ní^"ÎøÝv~cÊuýn'ø—AcÅ'w+Ná’Á¿ b2ý”ì€:ináò¿ r¦æ·6Ö”Ö ^Ssm&ƒAmR1NhᲓÁóLr¨ìu„q epdm¤SK.94©u?Mž92XYk,!&„‡!}’ )0P—ñêr¯ªJ±;yŒÈ §H¦üç.bÜÌ380¸MùÈ/¥R˜JTNpý¯ë…Uî@C?i$'82xÑžò9»IÞ“t&S!1ޱf)N&·lYHý—ÁÍV¿I ±‹«éØ Ž ^W´–ÐÐ2Npd°…YJVÆ/¥Kpd£¤»He>HBØSž92È^à°|æv_s \ƒvó &¬"%ñɬ²6“LJb¹M\)ˤAB)‚!é3z®ºrM_ÒX Bk/¸N5'lnÛgòË‘ÁNñ2\ôìK-ŒOpdðÞºZ‘н¸PÐÁè¤o‹_^Ì¿ó_ÌW˜ õæ9¥÷+!Œ³Ò.[n`2TÆÂÌv>ó©@ ± I L†"L”¾NôÎ.'Ź6“!é‰ÂÉyÐóÛÉA'\~Áx@“ë?>o´ó™“aoÍQ9è' p僿 îr½Ýó ‡°´Nð/ƒÁÇÿšž1ç ʯ;0žgßëÒ¹Aáƒoy&SÉ'ZU>+*å»ipdp\'Š\ugUáìÎé³Då æ}"ÛçæÑY*g°ÿ‚éi¢·c”^]d ¯Sଅa`ùÉÔAÚêçv|åVþÉÔXlNA¨Ì! ºå™“95;bÏÂ9†t¹ê“–Gmsîh!”Á‘AÚg¡â¨—‚*0™JS­Ñó¦ ' ¶SþÀõ ~r²¿ šEy’[A`2çdãíQªÜÉm£ŒÜd“êç,{ÚdO70wGQ¸pì+ÍGX“ &ÌÀ¦ôœ‹ž``2•´òö»["°“#»å´²_q´“ÇñàýÈo00™óqV]Ï<4§©9ò Ž R^bÔ)Xg&u‰&S/ÌRq­0güÉ[0xý‚Ç¥åq ã8q 9Á‘Á|Æø,ƒýìל-2ØÁú~VÉ€² ºa®ºp0W>F`2•¬ÏnJ[>F`2•* S®>*Åuå L¦Ô×ÏŠ4|ü£|fÿeGpï?Ø™µ†«ÉÊÏ*0™sÜõ;jöË ¡øªUn`2õŽé9H™¹mR&S‰öAÕNþ;ûÛ/¯n.­ x¯-òF‰ö´%íàJg—!×¥ÀdNaÈ".Þs…­'ª7û¿£&s‚ñáÏ,¶!×u™o#0™JÖì|§•‘ô8$)ÉPuį|u•o¨ïLJ`2'ø7Òò›c/š­Hð/ƒ(¦md€&8å„Ý¿ ó  TK|VrL&S àtÁ  3È­ 3˜ ÍRh·ï¹ùEóM‚ýüD¹³„Xœë•s00˜?_¢f–åªÉþž¹&SZµHÙC—íÁ\c³ú’»¼Ûgò?¼UO_¿+^¯P#m%a–˜ <¥®q¶Ôø¬zâ50™Ê û-•̹Ý;¿aù#ƒ~écYœ"§CYËàÈà¦EsÿÖÔX_Ž bX—=ö¬¾(úZ¦¼:ÿûu ÉN¬%‡,NpdÜ«²’Í^¤ÿ0xÁc»vÒW]i÷ÎàÈ Ö2ùH¿Ïjr²Ñ~ðì Ž n~÷&‹ÿÞ­v—àþ ž·­U¾ÎÔß8Á㌜òÁBÌ=²|?L†D/Z^B±Ò²Ss‚_I+(½È—B7ß[žÙ~Á4 у¾¡8iCÞ³GðUš p;ÀêžÁ;‚q©™®ÈXÂhã˜Lc•:Ü£=ör ®|Ù‚RoàF¿ò´ªÉ4BCkt)/©ØWþÉ4HØžŠQ€…˜tƒ ŒÜÖªTÇiÕ+¨É4Ž\w¹[½ËúÌ‘ÁZ©a+èå ¸·—ürd°Ò¸¤|.bœÅÛòê"ƒÔišEcTnUטL«÷ž!Œ…³q5²€ÌD_£`Yü°f»+_]`2Ð@Ûݤ#Ö9¸'ûF`2ÈÉT\ÔêDO%wþ˜Ì æK•}£s"E2Oðø/]ü'ÝŽÞªbæ50™F…ª¾²ì9w茄gk`2»—»Û·!»h`2Üœ:õ ŸJœ¿&Ó(v?…Íâ…6ˆºø“i¨¬w¢Ð`çìSºœÀt0‚¥¥ªô¸"ìþG‰öhºç¤ñv6ôOpd3¸½ À^hÊž3é0lüïKÅʃÞi[ä—#ƒj²óO ýfSüË Õ‡ô»½“B:ä—d$ #£[f382H'乚”•.Á‘A*^äìÞ€Õf–j50™¼¯ ë%>›Pˆ•¿˜LcºæVÈÂQ^Z^Äj`2 ô#yÏ84Á…°Ôt:Á‘Aè£p4G`¹t‰&ƒÙWvms+ØÔr´&C&ZU¹ž9f+o@50™F´gÌ%UQ@ÊåŒ ê $œý`hò‘ÁÁÞïr©G*Ûä—ýŒ%Ú²®3ÔñXºòË‘Ajô&I %D§“…¼çÀdGÛçÌt6ÉN9:Ÿé ®¿`»[\K¡£ˆæŽN£&Ó¨€[„ú)ÜÍ%®É4\,·^ÄÚÙÆéÚ“ŸU`2>³O­7(,»h`22FJåÚøæÒ Áã¼®üæo¯;g¿+±íGbÑy›€,ŽŒœàÈࢸŠ8 á’gŽ ®«Oár´9®Ò9}v‚ý<4ƒâ稚LîVÉœ`*MLûT-N“iœ‰gÁ”e,þÀdN0µ s‰V–^åÐ L掚Y•/er,a$èT“Á<þmÈçqÌ¥^Ä“iF%°ÁçþDSœ!¿4±&tÊSÒs&=[Q50™³¥ámÈ7xŽ/´t¯ L¦aŒ‘†G¿Å?ïü`‚!50¸`ŸÏµa‹›LM̼&Ó,Ür‡æ9è‰hå7˜L»-ha)òÆÑ­ÊàÈ ‘(`5ìlÿ¹i&ÓÈÀ)rL`Ï,UA`2˜ýGS@zÇ‹f…Ò¦¬É4眦l¹ðW/L¾ÁÀdÚ…Y¤æoжg‡=ƒ×/Ýÿ­'¬?˜ ¶_0köþÃd ƒ ·JþG}ð"&A9ó&d˜Lóù´¯ò8æÔ¤gqÒ“ƒ“2ž¹žj~žI¿àú nš”EW¼ºÜŸ[`2í§îþÛ üŽR¸ürdÜž)|$¢#¸ý× Ž ÂoíŒ\¢˜ Âj’ǘ¿`òùebs6>CNpdwšbùê¦7§ õÊ`û“F"÷”s!æ:ä—ýŒº.ðºÿÎ&Ó)WXÆàÈ I5àÇå|J]v–ñËÉP醘¹×‘ÃPj¶V[`2ü¸Wáßut ÍžÁíìoËã¸aÂ(…\Npd¸˜z³­-ñ2Øiý\¤åG‡:¶¶3xF0.bkI£y ˆ^ œÕ“9Ÿ*îV#ƒî7$f°E°Q‚P°‚6Qœ¸ËÛð_0Åîd‰Â[çS¸¶Àd:íAÚDm§ÆX”ŘL‡\Eˆó"UÀóënɰ‘N{½_ëåO»·F•:eçŸônB}iÉôÊòp )!ìºù6“¡áôgná~޼¶ Ž Â›r/¡E5Üï™— Ž r+Û¬¦Ì)Zǹ6“9Áàô ­7€0—6åmDÙܮҴ=Ç-mn»d‰&ÓInMŒñîì¼~ÁýQþèÁ%¶-Çq`2Ô!¸Féí‘ÞÃ Ž :&¿­å7ˆÿÍ %82èT/[zR”Rêa´ÀdúL“Ê|ãîPN‚#ƒNol_ÿá$½ÎY×µÜ~Á$¥ËB‚› X$™ÁýË ®;cè¡i¸ç¬d϶Àd:é :BU£ñi/r‚ç/xsþ23X+Òäú˜ S\4󤽤ÊèA¥-‚CúúWBl EN“ Àw8 §|½0ú/xÿ‚M'Œ0À>®NÐo‰öÀd:oô®SØçÊÐI°Ïàú †èžT¹ç;¡|}^—z`2>Á7˜GÛ¹IÑ­ ©\=0Œˆ 8™ür¬@˜Õ=0™ÁKºÖÏÕš¶-ƒgã³È©(ÔëŸÈ¸"˜p” ñçÓæÉaòö ÆÛˆ?ðü£1QOýx öö¥#T 4U0å—÷/xé{†ÀH#mEÞF`2ƒÀBÕúyrÜtKº“´™2#Æ¿ ôà_ÙâÈ¢s(]ÜEOð/ƒœ¡’3Å&ÇdŠÉ/GIœÈ¡!ðrÁp4JG©5\¥)Ð`ûpjdIw`2ƒ—ôñ947Ù—C~92Xéý;2øì㨒XèÉPRž½Q'3/¼=0.W(ë÷žóCêá÷u÷Àd^èØ×9S =2äºÔ“š/rh¶6¸ïä¡Ù“Á½‚"I™Aˆð¹— Lf°ûßänÅY”—ùÁ&3xï]2Xx7³"Ï<Á[ǾÀX€AÌùÀsm&ƒ:LǾ&}j0±Óä—íü€¬ λ¥ßÝ“š‚}aØd}F¨z`2ƒŠ{'4tz|…ÒõèÉ@_”’ò¹oÀ¥ëXþ‚#ƒ}Výq¦ÀOH™Õ=0™AÇjFÙæX‚ŒÆŸàþ v}æ³ê׳Ì[õÀdFç¡ùáÉ@”Î\>ØÀdD{éÐÐÚì[ÉV˜Ì e•W7 ¦1&382xï§ Â' 28288¶¥_w'.ê]þÀÈàwtK?Uù0z`2'ؾÓg®€6‹ìüÉ H~žU#›y¡NÍ2¾&3Æu4ÍÈd˪—;²ös!&3¨w;eGêÕT¬ãGW\²³Ý€©ý-=͘ ‚qw”‰ Üσeo¢&3ÉtÚhÞóVC^]dãKJµ“Sõdpd9B…!‹üºgIÜ“ìþw—"°U­u© “ìðõ¢4’…-täH`Lfp°#_Žã+whò‘Á‹/ YúìˆÔ”µ˜Ì`Û} %㎯×4w1èL#ÊÄrI`¿.“˜Ì€UÇ69»ÇnT É醘Ì0T¹C„‰Î[%ÖÐå—ý¼uÖ£Ó“’²×&s§!m‰ ȤÐ’}#0™:Ýg‰äoIü Ž ^°yJ¨Â· Þˤ`Š ^‡Äø´Ý{`2ƒ£9eðyt(öüR“N!)ÑûšœâþYl282xÛ2=©\ÔíÁD®Àd¯Òúžý‡£Rö&°†T„­…ØòY&3HþWÙ˜0õ»£ý‚÷/x\¢P6Ðy<·Þü¬“ÍòŠ‘æ„‘Ó“KÞF`2Ø]¯Nmp•ØKÎîÀdÆ¥C~&mAÕ)}KpÏ`¬g!xW¸ìÉŒM¥Z™òÃe •|ƒÉœK0 WŸ\ ªä\uɰ*35À¾ÈÙîeLf°á³~{Ý- wf!ÿ÷ÀdÆf½!ex³ô¹‘¤D9jV´ëa]…"_J`2§Fh ‚54>ßs`2'"c7é Wð]îƒÉÌ;"&žÓ)|ôR˜Ì\-S$Ô½^«ù6“¡ÔîØ˜Ìld ‰p§öpyÌ_LfÒVhM¹ðHÉ+u|&3)ÜŠ*Äò{¨ÙŠÉœ`»·ÛœÖéø¤å7“™Íê7)Í€mÉL’ÿ‹Êœ²ÞpŸõ—AÒƒõ"ú«=ƒ#ƒlaw‘[mñ”ˆëLfvŠ‘ÊÖÎâhŸRm&sn0M'УgÙ´²FÉðºSÚªª‰z‡g3ÝÉLvÒuÖã\ÈÙNvÖLföi×v9I¿\ªGyý79Ûÿ×××e]’ã¸=÷.r'ôKiÿ³Š"nÎŒ}ü`W±oÅTHkRX–h`2$v`7ÈU·ÑÔ9 ˜ÌàÍÒ±¯IUÉô0:Áó¯ß·qîà0ð2ùº“¤ú+%ã3ê… Ÿ¿&3pÇ¡ Цìï'à~Áæƒþ)á³/80™ÿ'NêŸv0 !Á‘AÂ$Sùu‰kœàÈ )®9ùb1G ;[Q=0™ŒzCèÁ(( ”T˜Ì¤ëŒ.$jªöÄ z`2ƒ÷îüÏÚøHß Ñ.Õ—½ RáJÇ7Ο&œ|°ÉL6ǧ”ñç–C'eÙE“™;¢2Är†R¸&3ÙDúó° cÈÙ˜Ìä…·È1± Œ™ÇüR“™D¦§v=€~¢Ò“àñ‚±×Ù’ÛÃϘÌ,¤ëüÌ¡]±D|¦&ƒ`n€t µäJÂY=0™Yxv«°gBì7¥b Lfrœˆ+D©%²×&3Ëàà]û‘ˆ±)˘Ì,“„*U£®Z6z`2“#}k _q‚‘+ìÉL^¥Ï*‰‘†"o#0t-ð/äR3±Á|B1êÉÌʳ»ÿ0$ÙA•Ï*08 óh?Íøouyö‚‡òù+e¬iòœéLæÔSEýS(eyjµ¢wØÀd& ÞµJCÉÃôVÝLfzzý/F£á¬ÌG`2ØØh{]¥ ßÈâd&s~…hYÌóךz€‚Êwƒõ‘´Ãkn!‘æ˜Ìä¶Èf\›®?äм’j@€‡·þ‘ÁÆ«Ãú„‘E½MŒÀd&ì~CÎ6ˆaC¡ÀdpÓÿu ±söpÀ[‚#ƒdèt]%›¯.0™I¶f°;¡Vø#0™‰]l‰0‘ážœÅÉÌÎ+š¨E×ø¡$.Ü^0}f”ÒÜ)$ž„˜Ììöc¶Òi—S&æF`2³S>Hdš¤Íù‚#ƒã[éê%D§ºŽd00™9(-ïZøÅþürdp°o¥£Ä˜žÂ œG‰05Ádà/œ?ú˜Ì$ [}=ÎÍÈ–0ËLfÚU»ÿ˜Ô\¢4“™L%áe¢¸ÿç{Lfr0±˜ŠEÓz¦%ð;“9Á`YHe>ZŶ"̘ >ü_KPûÎöLæ³ØyŠÕI \òÌ‘AgFËÎ?iͳSù]ܼÝo-G\ûtªfGyy´•sš¸™q®-÷ºÀd&ÚB¤GÃhR&¶˜Ì¤]¤þ°yĘGÛLæ\4XgÙ³ óµäÝj&ö‘ŽBà„5 àÈ™2“9÷]|Ý[ …ÀqÉÞ˜Œ[{Up¦«Ô›þó³•õ QjwÂxÁ‘A£©£ðE eGl_pdÐ(ý§œÀÉ9¢¥Á‘ÁõÕ_Îög)A/G`2'\ÑÀ1›ìÝ$?“¡”Û7þ¤Üú.``2“}Ø)g úŽÅ͇^p{Á8&Šj†ÀŠ©|&Ï\ļ²ÀÜWšÑ282¸H§”B±±Ø¹Ìõ˜Ì\ëÇ̰KÑLj n²_WU'8\¥Ó´÷G¹±Me¢6žS_]dp‡ µ°YØ"ÉÙÿ˜ :Zʺ?Ç1gÄVÉZt&3e¬³KgÇèTaÍàÈàGÓÔqå¨Û§¿|3HüÿüKuX`ç²ÉÙ˜ é`ÔaÍi‡A‚&ƒÇ Æ¡W¤„€$Mr‰&cTxmâåW+,Œ×’)0û(·"zØæH¡òÌ+‚‘òŸ1‡­>#0™¼}ü"‰š´Z©g>“Æ8N+A\Ye|&c…GÛûå iÖ‚ŠTÉXq¢’©²êç•ÐÐLÆ oŠr£?§1 %“˜Œ«î;*.T˜Ÿ•néLÆh¯§\ˆíª!l`2Æ:YÌS¹bô2/5#0+”À­Òám)ÑÉ-z’Yí3“ÍR=82H…˜:…³mçߘŒUº˜¨¤†@VÌÇLÆØyü–ê‹¢\/ˆÃEð ¿î§~†ßŠŒ#Àd¬R±MnÇДŸ~oÁ‘Ab-¹wCÍ©ÿ´¢F`2î8­¢‚Ð ˜ ègR“1^jLL!§[™yi&sªeVŒêùRá ºå8LÆÁ ó?xŒmÊÛØ/ØèŠ*ÄcHŸ˜ÈÚŒÀd¨S»u:˜³ÕLÆ5M•[ˆC •k&s‚)’)B[Õ¿îd)Àd¬³¡/j$d¨Å<ºå̉™ÈžÙ…çÛLÆà1&nœ ¯œƒÉX§’اìY”jE+óÀdœ}ÖTbñÔÖØßå"˜ ” PIõµ Ã§š{#0b*{øõ‘ïÄdF`2FzB²g©îî7—LJ`2 Á©Gb Pæ!¯.0£l²” x_w àw&s‚›jtÞÁ+èòË‘AýC *Œ–âL‘›f`2FÏð=UC²“Ò‘ýÁ˜ÌÉßRa|vÒÑ'èR}&c“m÷ª¤G(°QˆÉù>B /³ŠWáLæ7š\ˆè:&S«30›ËÝ<1ñ m„•Á‘Aös‹Œ×´xÁõ/Ç®’8Q 1™Á‘A:ŒU)\'@H´ú¯>ÿ÷ù[[‚Ç ªH±\½Jwi&cF+ UBhtFüò8žÉ˜QËB®x°r«3áÙ˜ÌÙMåëa—3I™[’”È YQs ô%³‘1“9×ÿÀ mlPV2)Éç4‹¿œ°Xr•žÉ/V•Y {y¸Bepdp *5NCð6Ëàþ‚©è#:®ÕE§€Qg`2˜ôü?§+ ¶LJ`2¶ V+ ƒ³ªÀ LÆØ]Ò Î‰¹O¨‰30Ü¥(¥ã8&$?30™<#ÈćŽDa&sts1¤$ÄžK:¤òóÕ&ã Ç-xÝê¤ þG]ˆE±Û—‹ÜSf`2~ß5ÕÜœ™û§˜ÌúBö »ÿ`‰}2^7“Y¼ há âwæq&³8{´ÅöâH•s¼"˜¨ø<ˆ»M× ¾<ïb*{vpXqÓOû&Ãn°è™£­e•þ›É,@?Šô ð ùåÁnÕOÓu[r/g`2‹ÌŽª‹°ÅÅO#2H>¾‰Äb7KëØ¬œà”áÙQx7ûd¯ LfœkªK|.–ö»×&C 6Qð n®LP`2‹•ù…+ð ¸øå1ö ^î”÷6meœ&³ØAbë¹ñ–ýêò‚Ë ^ªx •ý6œÉœ’öG”sš0ð‚!`GGÛe¯³Í’Sˆ@30™‰ñŸWéäMÓ· Ž 62®>9S6®Ñå—#ƒ˜`ÿeî•Jm Ž ²Ý0eVº•Aû”·¤DLWÜ„ãþ¦üò~Á$¥jYÕ›œGp`2 ˆø^VƒgÛ~Ú:30™E,v¨{ÝÇÏrK%˜Ìê6”Õ AÚU o&³8Ý«„X¨­~? ±30:ô~*‡ÕŒ6â%ÉÒ30™å:Ò:S3*™ÄEg`2‹?[Jµs)ÓOHb30™5°Ö§8îµ >· ^/«N<@wá S—)0™åjÖò"»<:ò1“h˜²³Ð;.ÞòËo00™E*¥&bZ£¡™¯.0™ÅÂõS©4¿MˆÎ L³¿¼¯Z|û“Ř̚ëGÄ „lE´j&³ÜêYôráˆ;~æ»g`2‹:'ý]—*þ@,Ñ)_w`2‹ê ªKlÐXGdm&BÒÁò6"ƒ6~ÔƒAz¤…nŒÉ RÃ1!FÝ»RÆ&sÞžãÇ”2M]Ös`2‹•ÈgªmH“T1¤›É»„QÙ'b ¥üEa¨f`2'˜ŒX€@múÌãsÖY…¶Û¬ç« LfQ£÷Ó1™ÂŠqËö˜Ì"ÀÞÕ1Äx4–„:g`2kí©aT Ì=ښɬÍ"N4ÊPÚ ÙyáÉ,øÊ6\¸œýž°É,ìú̧ò$£,ûV30jÏcÆA:¼•m\“àÈà¦Pºô%æ™$Á7ƒ.?>@6\Ò›ÉP${÷®lðZÿ©ù“ñ>jÓãß%xž™ÁÀd6É©\:®orO LÆÇ\š ³@”æ&ϼ#x/¥rçGñyN‰ü“98«©r'9®=ñç˜Ìæô˜šªŸ â’®WÀd6)œ}­»2÷òÕ&³ í$ͯ];mÍÀdঽ:)'2dc LfsòE9T'£(¶-¹j30™];Í)Úã™÷M™&qêœÉ€Oî‚ë9ÌB2ø–J&0\þ¨I';'–T¹Éø oI±}NÌb[VŒ˜Ì9;h­+„IWu×µÀd6GNôm4üÐÔWGÉÛêŠ@å } Ž ^}¾¦C÷Xý¢=kɀꉽNnÇ艺eì Ž 6RæÔ½Ž±OF{,0™SÂ5"]‚?s2q$¾aÉ€‹â2x‰o= »¨&ƒMŸ•œ)JÚð›ÊàÈ`o?ú¢l€r˜%)F˜Ì&–«* jë‡gÉlê|ûS{k :IÛÝ“ÁÔ%n2­CŽëÙý{GY‹NÑÀ,†ä—û 6åªÁv%„I±mÉÚÀ&!^Œ#a/R`2›JWü¹L|HSÖs`2Û5?")pŃ‘%Ä{øµÀd6y2] Ö$v6ä1"ƒôߪ*æOo»ŸÏ*0™M¢)8?tj8ý‘o#0™íŠ &cÁWREÓ ß`N¾|F?áUä1"ƒDy«ÊŽùБš˜ÌžÜŒr²` u÷/W LÆIëøñ¢%J‘_Ž Nw&ÉV/?6µ˜Ìfݲ¤æ§pÖs&%0Œ;‚p&§•-Ó”W·_ðVp$ ŸØY`2ç_\Ê[:gÑfkæD³&³‰g™t=pÈPÊ2“˜Ì&gDu/1E‚_’˜ .QøRԯ͕Ääƒ L6€,ªZ)Q1)á, LfDýdûBÕŽi÷„†,0˜}þª&b²¾~U€_ L„jHÚ?µÔfpdªáUØ,DUÉ6È_Ž n ‰‹i…ŒÇ^p`22þeà€CþiþÉp`HÒ élèªÑ÷ôGAù¡‘TŽÅ¡jÎàÈ qÑ$N,>Ö…ù&CZâÙ뺊°áòhMþ@Ï °cÂ$"ÖáþÝMÖÆÅdð©Q3D±õÁENÃ^0'M}j&aGùåuƒ9ÑüI‡UϯP€]L†ªIØ‘9á Љ|1™Bø­Šôø±d…°‹ÉK¤’œá©K½q1`štº×Yi(ëÀ 9ƒÛ Æ^'ˆë‚{‡— /¸GðüWÛÎ[çŠocD '„ÄÙ°u6ÞG–ñ6"ƒ¼ÏM±›44ð1z!¤W‡}ª!I>ñõ°¬´Ò¦æŽqñ–·$ÆØ…µöøgÔfd°q+  =ûE±dõµtâûãÉe³¾`vuv‰4’ª¿d¾Š‡æ!±×%IÌfdÌJ¨!©*˜)ÛŒ Ò¿{-íiÒöC?ؤCï–oÎ,žË}cFéÛ3ÿ¨“@›Œ×ÙŒ ²g«ÚYXç™®328¸o”'‹ñýè?›}/˜¶BM™N.m˜oÃ"ƒ“[AS"$®Î3çµÈ §)»ö4 ÛB3qQ³È ɯ]þÀJçÙ"Bâf‘Á‰Zrè¼dm~,~ÌÆ &‡JΔ³õ“Ä o#2hìâÉ98ñÖ1 ”ïÙ"ƒÄÛ†ÔÏ@³¦»þ¼àÈ §)?é[åë®Ê3Gøó±/>³ ªf+2h›1%jv좺DWyÁSú¢Š¨%Àn+2ÈJFÍÍq½[­ÈàêM{ô”ÜÇÆ*º¶"ƒ‹-?í Lžý"Ðgk¼àíÔ•·#µé^$òË‘A–‡M˜{ $´…ÊàÈ qú.lpL6b(é”¶"ƒÊTÐ ’ÄxASÞFdíàT‹šð†‡aè”%º#ƒ$—ªÞWÎÍ[B—¼~{Ç yÐ"ÏÁ‹Éà¶ßæ8t¨Ö%Ã.&S°õÿ6ÇW@Ä‹Ä.&S ýa·©£ÓGžyev1™Rx9R%±s €fJ‘ËãÅdÀÕýT‡ Å Ô-ë–÷|1“ÿ,³x@Q‘AyæÁ¸[etžË#”`Lpìb2žÿôèÑ©†¿Ì{Œu1™Là·«¬:If_¶°×ÅdðÈ]MÕó/ÀY‚¬¯¾à#ð ]¼ž—šõE«û& ÿÊ”¸ëÈ3G É4!¶;‹½.;ë‹ VãDs:àl—Åùn-ËàÈ :Mú)†Ê÷ yŒÈ ôR1/cmuåMs}‘ÁæZÊ)U;Ǿ&Á‘ÁNùù­ª¶ØNx>F‰ ’·U„zöOg Ž Rü·+È:íRen•Èàð]Szmc ó¾4¸½`:Ý mrA?]¼U"ƒÃM3?÷ûV/0‰ôè!W‡)’,¶W‰ ²˜‚å~|?pØÉàÈ _4›€N…[®´uV‰ Žý#ä2¸ÐBÊ1™U"ƒÄ7²§9Ðv¦#NC«~/˜zŒEÜ µk$ݵ¼`ü¢s‚‘íú3ë±jdprx6~ùÏú "¦al"W]m/ø• ÍkT2òÌ‘Az htuÖ+­Ë3GÉVÃéY ž/ØT„ŠÇ$Xnù#ƒÀùäêqòO½\}æÈ ›gjO³’ÖÙºürd’rEÀj^±êò—[d´è) ýEëú²e=_L¦T íý4Œp³2·ô~Á5ƒQ‹nõL$@6ó‹ÉœµK2ƒàHõÔ…|~ îLþ…ž°ÅSçz¾˜ øøøÊ\ä ¦€üó›öS°?Cˆ·4 ¶¦o©(ž»ÿ€ˆDÞ&ÖÅdyŒÈ h ?㢤;dSÁ‘ÁÅwWÔПCí˜ EJ¡­z‰ Ïp­=ê˜LÝô‡•*ã)Ê÷Ü´œº™Ã¼JÃh&S÷•ÔT14S„5´“á’ù1ŽØñßÊÇL¦}(N–hÁx¼~äƒV`2Ö: ub8 d°œ"YÉ´oü3ó¥l¨Eåíx&Ó)ÕæÀz²ø“i„WU=˜ÒÂG–_¾lîT/~špsÀ6UšW`2 yÅë”wqsÉR-0™Ö@ŲO•7m3’¢¿“im¸ƒWî0z-RÉ&Ó:ñ 5²ÜÐkýZÉ4ªŸ yÏ }*4âs=&ÓX$ÒΙ‚¡À-îÏ+0™6|zL†,`ñƒã\ž928øÓ²×5d?£+0™6Ã3<‘ƒ\“’80™FQî5trœW—*ë908êüq…Ààž0~W`2RîŸ'@?iÊzLæÔ¨]À=^ ¬H‹|°É¸ÅOS /œ˜$›gp}ÁCfjþ`‰ByÊV`2"Æö´î!CÝÉcì¯S³“i”<ÒYûЉ_=G¨V`2 cÄ‚ö,@pÀl…K¼“qRyªŽ|°ØzBC‡ÁÁhÄvÙ‘zwút‘W·"èe—oðÔ hùÉÜ L¬råóèî÷dÌ|&Çt”=z2b2‰¬ÀdzÙëWx“¸Ê˜ Lv½ï”_wÇ…B<ÇW`2¶ž­ýxEQ ‘í˜ ÔQUxž‰m‚)µh`2žÄ'Z»è§—šÀd €¤4±˜Ðø•®ô LåNãòCÉÀ•ª 00iØ^ €Üs“ Lè¹*—¢SS¼®{_ÊL¦SFºK©†¹F|‡ ,ìÀd:¿ÁúÀ}>X HðóËàÈ •9º@0TL“pÖL‰G©6 \X03ö˜Œ wa³ cÛv›êo{!|¿ýˆ‹böIjÑ‹É xªº;©V+²™_Læb±í•j˜íégÏàuƒK»9r’¶‰?쾘LE/ µ¨iÁ­ñ2øb2 ÿ¿³KÝq½Ü“wsÿZƒ\C.“aoÛÝ3b¯;ƒ;KðÍ`%5‰m§ Â8-J½L÷Åd¨‹½®¼KMót/©d.&S)^§Œ·D;Ä¿ñË™”‹Éœ`j@ ‡ªMìXx|3ØjëZo¬¿7RìùöÅdNp¿>º±žñ¿F›²ä¾q1tŠò‘&mnÏYÏ“©.ÆßÅwéûÃÙûÆÅdÎ)8>•Mù±m/ÇÄÅdN0ÈGùËó/Ððù…Ø“ÁBg?ÕË"`²ó_L¦º{šURÁæÏÎ^‘A£ÝäH|L·õCâÝ+2¸8è¤*Fµ€5¤«nÙ Þêè4h|”8oôûb2çÓ¤qŸ0Ø1°ŠÆÕ’à›Áî]é®òncÒT=3x1™êc OèTp˜G•KüÙ/“9Kà£þÆVØל)7ú‹ÉÔAZÔSlûƒ¯›S45¹Äûb2»™ÜÆ7ˆñüö¸ûb2•nkœg}Œx?ÿ8î‹ÉTmÁCP p±oˆ]ξ˜Ì ¦t¶ˆc¬#TM~ùfp'Òv‡ïˆ²D/&;…ê²èYBpö¿H q1™:íYYÉ̳ýa}%>%¶B•ØEÏ?:7]¢+ê:Ün°QædU€ÇÂÜ1›ÕƒoÛÁÙ¦4HÒIÇj°·n0ñºì[úÝvþÀõJ]7˜×ÿ­Î±œXðeðˆ`5¿„: p,îí=ÿÀ›A4p´)@}$êwTyuÁ”Žºîü#L>5‡:ß/ß n®º©µ(dôaë9ó—o¡ƒªgJ½ÁÞÄr…E0Y¹:aT‰í7‘;ê þÇÖsBx4%\¡ Áìþ‹ñß·@:–Å ¾Üÿ¸^¨€zŸ3ÒÅdê&2¤|îVÓírÞz†áâ Þ(^»áÏÂìçEL‚=ƒ¸Wÿ—·kŽB~97™‹É4¨Ijº gá8Ï©¨|38(’™ÜY¢çµWùÁ^LM¼ÎQÙ·êXm@W-—èÅdN°q¯kïžR+í Óòß rzywYüÚ,5 Þ'øfp‚ùþ%õ7Íú+‡u‚o§¹QC–ÄçæÁ‘ï*q3®,îÝ YœçÂõ¿¼ÉÄs+¸Ì¢Á…½ Ks ß î:–e+€ÇhÏ?ðb2¦¶XjEÚpú,÷‹É@ƒˆŠíõõ¡¹‡_yÏ“é`îi£ÙNq² ²¨ éb2gûûÙùqk+ó«éãËàyƒíÇDï¾”SÄÀIù{ýÅd:Îc =‰ÆO ê#3x1™ÞJsÜ„î16†Ó.?Ø‹É@ é¶ †”<‡»ò„½˜ :TC¤7QOÁ„­ äŽt1x±!ƒ’î¹Ü`¦Ì ¾'¨‘6EýààÅdŒspföœ•‚y¦\L¦sÓ8‡¬ !bM~så{1¨sbND?ÞŠÊÎõ|1(Èñ»ÞBBïŒZ¹™_L¦SÎ\”ì/e ñÉæ–{1Ìv©¾àŸÒ)%ª‹ ¾ry<_7Ý®ñIdº/&ã659+}6ÆI:ÌÚ².&3;õ§¹Ì|q²±SÃÏÁ‹ÉÌNŸYå>XÈÒ$ƒoÏz£˜r.QžGiTÌà›Á9ð)—/éîgUÄ.ïùb2@Ìy#Ìc¢’oõÔá|3øÏ'«Û»Y|3¿^llbdy*Üqånu1(îãÆÞ…@·›u™Á‹É ªÒòóF5õÐd3¿˜ †š°#ÕÜr¡÷,^¾”‹Éòå\³| P¢1 ™ÁžÁóÁÙ‹+j$6}?š7xÝ`*—ö7€s6ÆÿÈŠœÝ“±AßøTPfŽ: ¨Güåb2 þÓ ;ÇùE¢ü{ Ö”Š1V\>1–\01=ØX\´CÎôy½‘¶q'Ø3h‹_wW ¶|3¸à Ý¥æâº®fò‚o!Õˆžæ~»hƒH:ÖÖÌgö .4þ±Éä…p`ÿ)\ËÅdÖ÷뙈ÃréKÍ`Ï %Æ…‡dtû*¹DËÅdNÙôÓ"VPh#^ßq\.&³ñÙ5ò™ëùÔ84Ô2Ø3¸R”û|<¿lE{—‘¨YDê¡:Å?Ø· n7˜3™OËÂùyŠ$2Ø3¸ïVY‹â³:[3nˆï˜(“YçJ2ç¯Ôý–UA¹˜Ì¹t•¦³xåïæ1Áö|Œ›A×Úì¢ ±*ï°I™;ÁžAx1ê”Ês(/åÕyq!­:G¿a0®ŒHüòÅd0½»Ìà…—Šœ°/y¿|1tÙÐï–t7[bÍǸ˜ '›Y‹ƒ²¸á„Ñ€)caB 7».ìÅdЯ* ÉaCp‘Ë–gFa(WçP¥Ø1Ð2û)'xÞ`º”"ë¹ù¨Û?Ð<¸`~Ú/o“Qg¸Öç=4 1sGÍs¸‹ŽN}ä/ï¼ùêºt¡ñëRiLL“+Å¥¯{¾çÉîÝ,?Xb2Žç}ðœVTð.\o°±ŒñðvŠ›¦e n|ªì³H¯ç|¹‹“AqÁ­ J<(ù²bZžÁ7ƒ‹ò?#4°‹8=lÁEK»\´"­#/f›Dü‘gJ»Ýðóm2²½ëË…´Ê ž@‚9 –à3K+ª,Ï <‚¦{KæÆHW½´›<ÁÈ`ûËY½Ã‚üßè¸'5?1€ÍÓ ýÓ™t–ÖHÄdQ?µ|QNÍ"w+b2ŽNø¥¤°¨™nb2 ºj@kÞ{&¾Ñfù½ð“A0U@ŸH&1vµ»>Æöà³Ûà×-‰€ù µüRˆÉ40$9_‡ =ä†C0ƒ ƒÏ÷€‰ŒÜdÐ|ð™¶T2ÄdNð¢òò“JÇèUr‘ì<]ù™Ö!‡Aøê1Ø3Ø&‡¶tB©æ£¶‰?—íl.W0E]§WbÁi&{‚=ƒ0Š-bÒă޵y³1W¶gð¼ PeŸ0þûkΞM§!ˆøzðâý^‘þ ocß`::•*= MFÚb©Ç_®ŸgpBýÜuþÞqì¢\ý3Ø38ÙxOóÁÒ9ý¼ç’ÁžÁó™;-&×RtoN¹ªÜnpC‡÷°8f`žc½ ö ‚ûm¹%5êäöÔÏ3hF×Ë!×¥ [0 _{1`l:}ÖpvsˆNÙ3«§™3“G 0Ø3ˆ±*ìüúÌÉ0ùeÏ Ã~œ³ĘÈ1J^A%&ƒY:0V”-Ä&•ÿgT*1úùRñj~;\ôÇÊ«t%&C«…’v'4Äò‹_‚›¯Ë–}£r ?zð î ®d䬒2ˆ*~}gðøChF¼îõ&`ƒ94òmLŸåâƒô™ÿ‘s"¿l<ÎÙÁ÷úŠm¹ÕuÕ^ðbðØ…UªÜ&Pjs91 áãÝ–7MLõ¶èø3×ïãr_lÊ.z28UËâ{'^"SʯƒžÛjoÒn¼Ñý_©Ï¿Ñ•&ñXƒ=ƒ§xZ±¬ùç¢9òL®Ö~ƒ¡9]sË%©0ºÉÚ¨žÁ…f Ž6A/mïËë­žÁ…ÊuYÎí ùeÏàÚ¼ÏUË}Ã0åwñWÏà†—nŠIP¿âçYPÕêµ»l˜%1Úå¼iæc“Tˆ©<®øÒ¬¹Ëé+{*1LÎ2Y&èåtÅ!‹Ÿ˜ Õ%I|Ö3e–§U%&C]4rFz¾ ÌÒGA‚;ƒQ¥65.¡7ö•WéJLê ç£wž—ûéÿÍàÉೞÏ":)Zïƒ=ÙDÍô}yL“:f»K^ñÚ_Ê<â—ó"&3€^â˜X«ËLú¦êË#—žàíÁ.ÝfÞ­ ÷ó)D01°¹+!B©¾ ¥Y"‰ . ®¿tcpL뺵óë&&"å瓱PÿRLø÷K!&ƒ`ü5ëùðbc…O8âå1:ƒ{áââؾNðçòÈñ6ˆÉàndî4«•yÅxVÕ_ž¼1Í}vu¢®\ÊŽ`cð¢e5µ½ãLYƒ3 q42xy0Õ%W†`f/g\}ùê6ƒw£yP‚!g‰‚E‡2þU_•˜Œs6®6óZ•ЗÌJLÆp&`~pÉ M/HÒ ®®.t¯&zYCO†'ý•§(ÜÏAÆ™ö/ ª˜]²Å Ï\/¢/𯗺îòdÄbœ•éÏ<±óR¬3x’œ“ûžðÁ.¸#ÅÈ%zy2ÄQÉŒ÷6Ü {§OÍ ¾\µÏ§”{¼ @Ò?žå ¾\µ³,Ž'Ü_®”+ÄüŠ|)+˜Nœ6¨Vó1šqx åå1x2ƒ{Žo¯‘Î.0Ñ$“_¾, 0PæB"¾‘£A ¾ÞŽ{Þn(Nµý¨ÎR’bT/OfA¹",Œ=)0p²ŸQˆ L†.p}[ýlÚZñf䣾T`2deÒB †Œ]U€ôJ è 6>TsÈï{þœ,RW^xÉx0¿”‹ŠñМÆû$Ïnß €É{3f®ï/C œIyï—É IE"ÐúÌÐ_=Œð®Sç >D'Üíüå꥜0YŒfðÉ àÕÅ1Mš­ÁmzP.†þÌÀd¨7Àke³þ£íFå%ÎJwîÿ¹NÈ$®y™JT[ýäDÑ „ ðò°ûn :¸–ò žÿqI9ê³ÛýÓ‰#™C¹É3¯Àd8¥×CqÂéfcní–¿Œ 6T2ǯwÕ°Œ•gìEɰ¤¥Yá7M^@ ¦ñË ˜Ì‰VÚðÎ÷í±¾xõ .w‰âÛ}ÿ†·> U«Œ Ö¿h AE3«ö'Ñxû—àæ¿¼:0B¹ô`YØ`Ì`Çd.,ísÃý¶°IKžÙoçƒ\¸±u¾º©Zîèe÷àËø¥PÖ熟•wغ¯l{«®}·?8] ìÛ7¸Rg{Åã} G¶Ý¶äsÇ<u‚hkì‘ÁŽÉœŸ!–ûÞ3¤Y;ŒÃ}=ûcGÕÐç˜L{ÑÎæ ¯ò6™VUCñTKÁ§`puø/ƒU;Û"4§mÙûREæîâ÷WWU;ù®é.%¾èúçêðï—=ƒØÌÙý_ïKÁZÝíàýãetëjñê¸\&zš>Ñ|ù¢j\+Ã2¸s\ëTn°£j¨œW¨=Õ+¹Ï©¨!_JY\Ÿt_½XÅuk—÷|QµÆñ‹Òs“«{ó‘À¾˜Ìy’Ê¿ïýr1ççÉ7x1™‚ ÐPl¹FR;‡rm\LnŠTåšoûJ¼#WÝÅdš¡ Z¾ÒïÆèÐP|– vLWaÈ‘Þö—Ÿý…-ˆI¹˜L‡ŽC8Ýq ÅBªî ¾¨dÃAΊ¤¬¿Íg³\"æ>†c2ä;},ãÜè$Çårƒ/ªM¡°ó­¬ëÎÍM²%¼˜ H¼Ø‘F[Á€ TDÖ[üÍ3xÊV”® x‰Ê鈙³­y ŽrØÝdß(,A<ØŸ¹yq¶¼º‘KLdº[»p=ŒÜí¦»sl¬|–ÑtBWÚî&áæ ,,½¿ì»(Z~%ß3„<¦s°^°c2§ö8çž-õÞŽ¹1–Ñò1ìÂY0í\o‰’s2817Wþ²c2SM¬ùc!j¿òv éb2Ý=vÍã,(ô³8iÝQ5HLî×Ï cCüï‹—Ln±Ý_v‰™ÊÇðgîUÛÓ”²ê*=qÏ¥-·‚î¨ÚðÙ†&;’óSN9“ŸU¿¨N¶³êfž)‹~TŠ|ÁžÁóUUªYÇclÈŽ­ ¸/ÓÝ=ƒ˜âi²™ã=eCÅ‘ë¹{!ñC£áúã\ù°†>³c2¸ùÔï±×6Ɖ›jrNÚÅd`É=ÃŽ¬^âm`ÚœÄlŒsCâcügKÖ}áiåàpT ²èÓQµH÷‡+”;¸Çc GÕΡ;aÔô¶Ü‰v åKŽª>]p¥wîu \ÑÉ*Ù1™³Ïÿµù W4}1{Kµû:&S)oü¹D¢”—ؾ2)Äd 06k8]ü …8ãáƒ!æW`힟•A57V/Ç‘+ë=¾WÆWŠož*ïy_©Â1ÏU<ý—a^8kå3_L¦8Ùð«yL€×V³ cpqÉ8õÉÚø\–½õ|fb2 •HƒBÊ—éÆýsA´Ü|îØtP[å¥Ã,Û•A")“Áø ®Ø+ÿÀÖXš[ϳûb2góÿ\·òÿX¤Îl} ÇdŒï©FsYؤªì¢Oã—·ÿïÞxA0R݆¬ºÐøÅÐplŽoÀ ¤ö¼i¶‹É¸føÙ5¿{„&j$íµ¨_L2%œ]²w‡…‚7'ÁÞ=¥]Lfz€–ÏŒ-—»C™ù^Læ\WÙý¿J8ŽÏOž‡\¥å3_LÆ6s‚5·9Ážý g‘q¿6¼ mï1NÕDêùS>ÁÁø-›Wé¼ÑW4ùq´ÉxÙ†æ’ÇWêÌ'2–×ßò÷6aôhŽé^g¤‘÷դʽ<¢xØç{ŒŽ~‚Ó1ß/_¦Ó¹29é,àÀy­T‹íñd6eæ¯æ4+N‡{ÜÜc•hEU›ù6F÷2¾ç¸î9Ø0V`!7èeqf’mù9¸ 1–0 ¾Þî¼"Ê]Þ›àqzþ“WØžWDlÍà´Ë3{o¢@ƒoð{Á š‘NPyÏì»è`[¦–Ë¿ðM½ê”`»;Íæ—Î)o)1ó4pNðÝE§‘ÁüÖ3ÊžBÑ7hËwÑIªš…'Ù'¹žtöùOyo bð˜ÒO [0œ öÞÄ¢6ü ¡Zî5Uå—½7áhH7˜ª/ã¦y]ÚÞ›8 ƒSˆeå3OzóÔ„,ÚöspêV,yfh q–OžÙÏAL=@þçË_†þ›¶¹?oÏ À76·Ûƒ³ÐýÅÚ’ýy{)š¹Hº+ýÚ?yžAâ)¦œòž©ô8¾ÌàÞ/x& xGN(ß™S~ýósðûUÁ'À^¦ÿïwû9¹©ÅòÝ ZæÐ€Î`?Ïù€Å¿FþçòÈÏ*÷ºþù9Hû-ªeð&aK4p:1™Œ6[ ±,vÒ·<ƸÁ6@ù²žÏ•žÚ.òËÞ]‚¸cšü¬ýü¬úg7væ%¼Ù™”åº9)Ð?ï.á«€¬˜ì¢h­}ÿ<óŽà ¨Y£ÕZóLéåV2°¢@[GßFí×Fñ—LÆîù3¸,Ÿ$ßK½5 >Ù‘æ9¢‰Ö n7OT¿¥ÏÜ °w î7øì‚iËéIq*qj³ôâDÓŠö M÷:ëê.z‚g£¿ÎÞ¾ži£,öŸÿeZ_ÊÇÉ)!z¹¬|$Ë}®ZSμ#øç±»ìH¤9§ ÙÉÒÍ ²uR^ò1„‘ 93¸d0œ6¢’àdǵ4ªd×ƾ‚7>™H5ËÑø^o+€.Ó BÙ½Dý|ƒ{Ÿ?ÑlJU0è—4‡<óÍ`+T°ÒÖyU"Òë|Á†Flæ‰s_ê|3ØØ>[C‚ý­§¬º"—Ç) öns3øfÃSX˪>‚^dþí‹`ìHqèù×ý±‡šeOo7ƒ|üo5ݾ>↹DÛÍàÙ1Lpå™ l˜ÄB6Å7xR| ¦4UÑg¾„½M$rûÚäѥ㠾ÄU"P²}y×Ãd‰¶Á ÓÙï—7:­‡l‚/Ñv3ˆ1 ®¦ûsÛîÝ_¾d …¯¯çáXƒï&ªUý uÊÚè7ƒ£ÖåmX¡,Žå ÛûÍà2²¡õFÙ®‡þ‚kÃð¥H©Ö·3æd=÷›AB÷¥È8¾£á”›yï\ðË&Á§ í?„Þ#ƒ¾¼`ÈM÷ü°×Évï7ƒgÏ\P,–W7È%ÓÝo'¤…lëÙ} q’ä1n'ônë’Í|’&¿*IÙŒ÷,%„Íu]3#x|ÿ{°ARƒ¾¥5WÝ(\‰䫳JCޝÈ/ׯåoË«;_;-«? nl84W×CÎ;G¨ú¸„Œö:Ùr‹ç¥T7ƒp㪺ê*ý­º|ƒÁ“ùŸÁçênæ¹ÉŒÈ E.LÞ3rèÉÑ6"ƒ˜JÇù–oÃ=š‹þ‘AHñ˜–—:ïÈI&c­²)#.^„ã3øfð´´å”U‡ V|Á5‚¡×5åì>9Å hJUp1™B4ê‹Üú3`—KMŸ7ƒ†›“Í©ÁE½‚>G—€ÛÎ2~ ÔSù Î`:mt¾!oÃ;Õr]êófS÷˜ü–ýyŒ}=q_ðÍà‚Œ‡M¹M¨Ca^D~yGð¼äP=€ª+E°Ý žÏžè¥ŸSÁòmXù¿‚ÁNÙîæø‚kóK‘U×Àqmñ|3¸¨âY¤ì9[Pˆ™„«n7ƒ «ºÇt:u^É©½ë·›Á…ÿ¤™Ü­šOøwÙŸmFð.)Žë¯ŽdiÝ7ìf”¨&èVàR˜²×ÙÍ N”³žµæ7ÛKŽ6ó :í{½Ãžs½:ù¬Öwƒ)j’nŸMßR`i/¸ Ùƒû†Ùê\o0‡Œw-Â9añUg.þÕ.sd:}ŒîÑŸ|)«ß`¼V³&E Lø³äâ_žAÐ/ ="ÕØ¦Ý “^ð¼Áа0— ƒ}lj»ÈA¿ìÿ †à$¾}uëÿ F¼|˜üß VŸ€šš8‹ž—”‹ß BÑ9m“ùÌ…Ä “¤ì›ÁÆÞ¶¾ ´Ö8•±oíÖ¿­I!­³ëcÜ ž×ÉK‰næ”Üÿyæ›ÁAÞÖÒßy2MÞÆ¾„zº˜²É´Q¯Cð ¾4`Þ•È·1! ôM“Ǹ\ÜK_ª‚Nö­àûfpƒàùð Ï`#™B¶¯}3ˆ šó+R×Á÷o²Ö‹àq1<¨ã­(‚&Wz‘@´Éƒ 6ó¥‡fw׌49=ÿ_Ïà)zPàoNèŽPòíƒß cZIŠÛfh°g°q¾yÏègÂK%Þq1Ø,éÿ®xãb2½ð>Ø{ÕÇèÅÕ_°göœI_Zlq]ò6<ƒ³fÐ3“o°qÂhhR<ƒ ÚRPvþÞ2f%3.&Áâš>3Ür Ûxi=s‚=ƒÃUL6Fl>lÁ·»t*¾‡oÔ¿dáã"Ö2Ø3ˆŸA'®åøÙ*Ó…\^°gßúam¼_†t-kQùGOØÚ˵r4æZp/Ø3‘Œù{£¾¹‰õ ¶Û3°îÃÜØ×Õ SÁP9ƒ7M‹IAõM‚›µÊ/{©Z4JþÀ=és!“Á…΢%þ›$—‚Nz&¥–¼p­lrÓlƒJ5ËËQ³ýuˆ`zïý2\‹̼`çlhÃødâ{ÏÛg­‹<³÷¿YáÍsð^™“E'ãÏ£z."-:ÉêäB”`ï–â3?µ½àS©Q£}H°yp-Åe1^0P|‡Ù©Äd6ô€PI +ul_¹D‰É ï–ÇDeGl¹óV7ÏàÙÑ9ÌöY…âÛl®Ëö‚=ƒ˜‡"̘¿Ü!…€[[>só ’€€‘¾ Þ0 Á?ͤ4Ï`-`=ÚtÓ`þ =£yký¨æöŠÀ £‡yeD^ðíðVêŽ$¾î? Ò[ç{+Ä¡²´eÕ=ëôl7˜ Ú”¤¸‰ÕI¬{+Tf£XâñÇmx˸o0´ÀVùä\ÒÆ98úÁYí“³ÛæøÁ F¿sÆï¾“ ¶Ú_Ú1œà›A¨K Ÿb ±ºÌŽØè7ƒ‹Z¯óˆ.àÄ9sþòLw¿<¯©A,_HÔU“àèÑSµ¿½ÔDJŸ|òÁvÏ ·Kd0ƒÁ'[ÿÛ žÎˆLÎv§šÒ— îÞàýYšûÌ#µàZö&F÷ žBûëš¹6AÔ´Š†aÙ  45—èYŸcþ4ŒÆ(7xaRƾ cGÒâdxüE6F¿ò1N ëÏuiŒÁdz’ß qß9…Rn2£ß`êÌŽÖó—¿á=ú|uÃ3xj´5œéÿ‚ußä´7ƒmÜSä³juq°GÍq38p´jù¥ 2C dÁ7ƒ†FqI³ÿ¼Ô|²DÇ~ÁU²™Cð [A~VófO€ÇÈU‡.¤Þ¸³K@¾0a4ä™± ã´Ê÷|g—\ÁÛŠ,þS¾fR×ÝÙ%P)1è/kc~pŠ ÐÀ î7ø&瘽jÚ¤ùå½<™Ž3$íL·µN›[©‘.O*Ô*r´5—B˜òê<ƒ먮ó\H¢àŠ÷É/{!p…ÂzägJu½°ì„hç)ßnÝԞͅdžAìå¬reË…z'*Æ|uæÄdNÂwZu¸™×îE>³y7pÉàA¹^ä—'Cùu8xÂq•= *õóåÉü/Áp’£f®º;»„NÊröì“âÁ(€…LÊ]‚~Ýeݧ=ڪ竕à˜>£ÑpWâE~ÞƒÑ|§ÏN Á‚òÆE{ gK“_¾Óg•µrz @eªçoÉÅg—>N’²^ˆ`X7P8߯]BŸFT(õ0 HÊÈö¸³K_åXíhC\ nrïwvés½9Ò€à¼9\ä¶œ)wvéì¶}9Qó=sÿ€¤‹ë ¾¬ÔÚLiÖó6 ª!÷Á«ñ‹!ØœÊK8ɺ˅¿à›AÈ‹¥H¼ÿ2­VºìHWã÷k¬{ºZÌWzu)¶¯ÆïGʶ˜œ6•Uà«ñ‹»8ùž[fK!ÓtèüR®Æ/Ê—šœ60«Ñ-b\_(™£À—?ðäš#'R#]_ÐŽjL¼Ýµ±ù‚zŽ?«ñûù½tô­Íh&ë—r5~¡×R´Õ—è ÷Žì¢Wã÷M[ñÖ­àürZ]ßÏñ‰".çh­Tµ•÷|3m|¹ê8ôD ÿÕø…·ØJa{ÚzºšØ^Ì«ñûŸ ‰ËduÊ ;¯Æ/gÇÐGM5¿JêÓ9˜,ƒoY¯ï]ÅS`òK³çªÿäÌ¢¬WqûÚφü_Ék½nêÅÂ<¥Òfxaûä÷S?£CÑÁ«îÿŠù\’à‹ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/4elt2.grf.gz000066400000000000000000003445641514310134000240230ustar00rootroot00000000000000‹¥[â5t[¢ì¨®l¿k¶Æ¼¡ÿ»Ž“kŸûQT¦B°l¦ð,ž¿”R-ÿõÖKÿ{þ{žç¯þWWM*òé¿ÔÖkylËúŸ=ÊâóëQô]–is~¿oÏÿµ÷{×Çîïõýþ~h6Yßßëó¿þ~_úRl²ò==úv…¬â=ÀôŸŽ0ñõ ›Žñ°$µ3•¦žó¿¤ ¶Œ°´×Ñ–nsꯛ-Íæô}´3Ìé­Øm)6§õºÙ’mÎï!L[’Íù=Â8žÇæü,cٜߊɖis®¯›-ÃæÜ^7[ºÍ¹¿n¶4›ókô10ç·¢y›óÛ¸yd›Ë{>æ‘l.ïAú˜Çcsy>æ¾l.oEsŸ6—÷Rð1÷asi¯›-ÝæÒ_7[šÍå5ú˜{˜ßk©ø˜{±ù½Ðйg›ß‹±ø˜{²ù½b‹¹?6¿—tõ1·eó{ñWs›6×÷bö1·asm¯›-ÝæÚ_7[šÍõ5ú˜[˜ë[ÑÇÜŠÍõmÜÇÜò6¿n¶¤0ë—gËfùb©+ÌoEsa~¿ø˜ëó{\>æÚÃüþßÇ\[˜_£¹nó[ÑÇ\K˜ßÆ}Ì5Û¬¾ô1×d³úÛÇ\›ßÎï>æ²l~ÿ@ÝÇ̸ðšß?b÷1—aóû‡î>æÒm~/†îc.Íæ÷‚é>ææ÷¢ê>æRl~/¼îc.Ùæ÷âì>æ’l~/àîc.ÍïE>|ÌyÙüþ†9O›ßËð1çaóûƒ>æÜm~tÃÇœ›Íïsø˜s˜ßïð1çbóû>æœm~ácÎÉæw >æüØü&ÓÇœ–Íï€3}ÌiÚüJÓÇœ†ÍïÀ5}Ì©ÛünÓÇœšÍï8}Ì)Ìï 9}ÌŒ¨¯ùM§™Ñ÷5¿Ãíô13ú¾æw4ޱ—Á[£õkô1?Ëæwd_>ægÚüû1Ì?Ãæ÷þ°|ÌO·ù½y,óÓl~o.ËÇü„y½}ÌO±y½û˜ŸlszÞ#ðA?Éöô~X>êç±=aö½o- ‰Úɶi!½ÿÆëkÛ°Þ#y}mëÒ{¼¯¯mÍBzdo¶…Õï¶ éÑ¿3lËRÒñLÛ’…÷Þ._Û )Éîó˜ËBJªïó˜ÓBÒ-2ù<æ°t“L>Ù-$Ý&“Ïc6 I7Êäó˜!$Ý*“Ïc I7Ëäó˜ÙBÒí2ùùXHYvŸÇXRV}ŸÇ˜RÖ­Þç1†…ôþSöyŒn!½¿Ó”}£YHYvŸÇ!eÕ÷yŒb!eý;>‘-¤¢ãñyŒd!·Ïc<R‘ÝçÑ—…TTßçѧ…ôŽk©ø<ú°Š&->Þ-¤wŒLÅçÑ›…Td÷yôRQ}Ÿ‡nžRÑ¿ãóÐíSBÒ¯øÝF%¤÷ž’ªÏC7R é½ó¤êóЭTBªš~ùBªªïóhÅBªúw|-[HMÇãóàû ©é¸}ºKHØc¼,$êûBR?4Ÿ‡æ$’ú«ù_¿¦¯mÛtÃÐÅÌíY.|}‹×™›/çÔÅ(?n¿S×múqpNº7k ðºà€-Û¶4ýJïMXå{ÐßÛÒ,,q¿Nïñ,.Š÷,¯nÔI¢k©¿4GÎÜÏ“&âYC€îð‰{˜j„M ßÓ³‰ûsÒÔ?»!glmI+…6üÞ3×z"GÝÌÇ÷ƒïîïJK’¬nçF¾•÷ƒþDÜîÃåí!-q²oøÙŽj@ÿ®þ<ï×f!iu”5~sW—‹¿jY•}§Ï6¾ç {‰ïìÙõ&ŽÉ÷íì:Ë~¾sç•,$ýÝ|ïÎZÆeû¼ÿ5ÛŠ…¤{÷ï¤ud^!Ú/iA¶÷À-<üôUÇu'ß–ŽÉwÿlã»8Ò½{}~8”µý&¶´mï1îÿïÿŸ©‘¹‡¿_³9fîáï×b!?=ü²¦*—¡¶u>¾¦>4lÈïbMs¤Âý?ä·)ͤ ÷ÿßÓHÇlù]å%މs³üž‡æn…û¿å×9k†W¸ÿ‡üž†æå½ÿ·-kÙª[;Ë–òδ@axÝÿú¯Ó­ JRsûcÌïÝ\þósR'¼zÎÌc:þºïëóößš\_£¦ïª—šëøË³Æ¯V¨`ƒN6k¥­ë“ã×<@Ÿ?ºãÛëý¤yY[ ÿáϪiõ ó~Ó{Çù³jêø5'xCåóRuŠþùK/ÉíëÏk_¬â:i]ú^üùøóØðž„¦ Oá’c6±ý… 0fŒ•ïZ(GVgy ªUþÉéÏrÿsûåX–|u¢Õ'ª>×â®”~j–?{ZÏšJ¼Ÿ’Æjý_΋²foq¦šIè³*àÚ4À”ÛíýÄÏ WÉY ÚÂ\#k%û~|?tþ°6úÏ/«2ªw>¾&׎ÿиÑ»ê_[\Œü¡›/Ì¡Züô©Œá½÷d晕{¶É\öL¨ªÙžî×’_BÖí*=þšìžÃ’õ³c!/„¬%~a’Yÿã¢ãe²>èu‘õoêRóâ¿Øøž#‡¥3ꄬŸ/÷Û¡.@Ф s>R±çwÊ12©¡3Óç×(l[¶ ÇÌäaè”r׿Í1¿3ìùíË÷CµF©ú·-cW]:üUýõ6¼0ûâãkã˜0-¿M މº–ÆtL>7du €YTÈïiøÜB~OC… Òù=Í1âÜ,냔>ùý{ĹY~ÏCH 3w ù=A Üù=Ér–ßó˜:PæX–‡Ÿ”9VÈïyL(s¬ßó˜:P¦M!¿ç1u LŒBÖ(¨#dÑF(£ßóX:PpGÈïy,(À#ä÷<ÊyX~Ïcé@™Y+%Î`+u þ[~ÏC¼Ù3!Ýú‡OPƒ<ŠõA:Ûç÷žÇÒ@Bîÿi0<1 yü§9ÀûAçòüOs€÷æããß3/ÀCó$û½Ëf¿ÄI/qVæ£ùOd–y«l¿¡Ym?.ªPhtj2~ØrÛ;¡ÖÔðÓÇÿ4x'ÙMßt³Ó,€ïšA´Kž"´ït`®¦w*ð_Ð÷ÿ<ŒMÓ€w4Pø¨%JÖBAL¹ñõýµR·í¯ør–‰•Ä©uÈÔ·†óð÷½Šµk¡FÐMÿ¸ÞÑ«j½ Fм[aZÐÖç÷þQ˜ð‹·¬Î¸+üâCÿÖË/¾ˆý•ŽåŒ­Ùæ|¯ŸŸ>h45È,ã{–Yÿ¸®&ÝÇ_ÓØ~üñD.‹:“‚~ù½¶Â®ÏïmŠû·ÿFÜã…ò ˜žc¶üž7û‘?¿÷˜ ð‹ù=îäüâCÖßû‹Õ_šeõíG-ý=äc¡ê‚{­ÔyON|>j©QÁc‰ºO¿8™Ê1ëA‚ŽÖ¬³h‘ô~þO·ißß߯ق Œ p'ŸÅ¢ïî…)Á”‹Ò̳LŒRõkQ2vøz[Ïø‹ïúü_áv®_<·üñô÷÷p¹[nÜú¿¾rPËï½l®$1Y|¿iŽ!g„V˜Úhj`ÒˆüioXÔÏcò ¦>¦¿ëç1…{^AKŽúΧj¬4ôñgMtøE -”&i}d+[䤇8Šža½?­ðò8)? :b–[E뙚 µdÓ_ƒ§}4ŠfÕàøô[ª ¡n3¨püw Ó¯Mn´2C˜ïXª_ÿú £~o>‹Už~=úˆ3ÿÒÚßßKT¿¯ ‡å'ø~üO?¥÷j·sN|Æ‘TÍœ¥@DÕ¡ù÷¤ƒð<›¿ë§ôÚþß>óÐoâGUNFä¡f;ËÛ ›~FÕã©ýÞߦDˆüžîâ¸n,¿§/QÁ²–ßV? ÷7Ëz¼¨3òŸÇò{Fâ•uTaé—Ûö£¹út´°Y9ëãúɼ-÷ÿø-UØlÈï½L«¥j6kyþÇš«ú©g­×ú}T?§@~íúí¼l+|üO¿˜÷LÓ²ž–êdÌf-«)¨Ù¬e}ÐVýjõx?²âC• ˆiŸ÷dD(ª­ucÖÉÐZ~O&q´ZË﹈PTZd[šÕ€–ßBCHr¦#øA‹'yôÏOu2´bU`91[ÐZnš8èCw{;óˆê‡ïu>tÿ:™æ‡ù±M×ùû5“núü‹já—mו=|ë¨zH¨[‚¾ÿçŸFÈïi虢×y᧦4[òy豤nágÛ°mè૽òˆS“"W _ô›žˆú^¡‹ºëÙYTÀÙ ¼“ÔÂCô„G8‡­þ×õ„lxÞ$g¾ëž7ÉGÿÓ%þ~àŒôØWdMßåL£ýب,7Qð¡Ñ=©]ç½lýRTÎcÓ{=ó&]íCƒ¾jÛ¶JN°êð‚8d=¾¡ÏÌ}ä—Xâi„ºYø·À÷^×Â[×þð¬J¿ }üO—Ëð¬*d}P³Žêm¡ëßP#œVÇþž‹)]òC¼¾ÿ?ËØÞüÄÂ~úªócVU¹Öôt­éoÂb*ä÷d¸p¦ë"¿²¦£e1ò{2MŬjh ×çר ..Ëï4uû´mòñ¿Ê´}ú<f¡e1²b*8PÎÍò{‚ "oYO;»‚çÊ•‹f!$9c«¶Õ®óXåó{ÏC4Á“§õAÊB1ä÷êá¨>Ð-ïÕÑù“ÚO}O¡ûtnLwº†üêÐþ~Ù+Á'вyx¶ÎQ-mÀÕ£Žê`}XEc+~ØÞ¢è´ÚS·o¿Q‰¡Ñ?],t ì„ÿ`SQh maÜ~£º£ÓŠ0/þMBØ>Û [RgF¨~º½êHìeù=#.O|,¿÷뤣uÀ²&D\Fù²üžLÒÉ0ñ ùã›f´¬ +Ÿ¿D$4¦·Ä=Ÿc¶Ütû׿ –»'žó,ýüWæ Õ{ßt(à+‡)¿ K,IŸ_£žˆqÌ–õT ?l+|ÔÓ]}ðÃ6dûꃶ!ó„Ršÿ tÊùïÈ<]Ó‡xðÇG=EÒ‡éº }ßÈÙ½¶Iš¼`×ñé§_x4eM‹äJ{©ìïZµ‘)Dû½Šm­è@ÓåÇ]̱ ›À^ážmï:Mv®¡Êa,¾«–×w¶½Ë÷CößC‹Ø‘—pzþ¡Ÿ‚ßêŸþ¹œ-Ø‹'¢:Hþ2™9·'“¶µª“q¬¦ý4%õAê±¹–ãöãÑm¶-SãÎ]|WUlm­éŒºÙtð%ñ]µ°eÛZÓòO流ÏÔh/œ‘}dÓ!ûÏÓt€¢Fö³­o›þ<Žå´ß{‚MÊŒ-d+êhõ·Œß¹BLƒñ­!ç®#ÕoZ±&!®pAçç»ßÓê:dS#ËïYu©c<-¿gÔuÈþYÖ²ì–u:dÿØ-¿gÔuFŽõ´üžÇç¿¥å÷<Ê1[V´¥ÔŸÈâLCê?å÷<·P #,¿ç¡¸/ B~ÏC^è*ÞƒpL¢e™t ^à qÇ%Z~«M¨#@í÷žÇä@9ËïyL¨r!7ªe9° =û p„¢å÷<¼º€CƨmêÐø£ˆ"9NѲBXu Žµß{ Sê˜PËïy,h÷@ÆDÏ•Õ`ù=”£®ÂDÐŽY´¬X84jæßˆZd¿ …“ˆ0SYôààQYÑ#2hšÒ¨èFàB=á—ªZ|éƒVk©0zð§yÿf]÷Š%„(ÄÎý|i²ßµzÓ!3ëe>¾t$üeVáO3µlrÆ/ì[³þ®Ç Íü{ÜbøÓ̆c[š©ïKµl›^Íl[zÒé/Ó‰ÕäNᥞõwî$s á/Ó¹kðçYºÍú<øÓh¦ÇIk´%kÛsI:Ä%AL•ÕXêÛ¤CåïnšÛèP™ø‡<|[×Äÿ-hRüvy×½‚Ç®q¤—˜5ÁzÿË¡)ÞTZ MqÕ³Šô÷N74SÖŸ@A!4=3'Òœ†¿rÛ®©yÍû×{ç'š;ÏpXŠHë¹ïêXxÎÄYk>`ž1õ?ýv•¥È5Ü›â\—Bè—"ë#‡þ¤äWˆyè5š“ÂÐó¦÷0ßóv™vy5ýPæTHwI|w…· ¸l*þk&·öC6Ú Ÿ^xB¥3ý­×âO_⻕®?Ï{Ã{û¡(dM oÕ•ø~ëÓ u»Ãߘsý&ggõ¿ó09Ú|«=ÁÒi?Ü­ÇMA³cËò;_áÒ´²™Å#‡Âi§¦†è4°_!FS1E“çl…Ùÿ¶ÖA<.<9=P-ƒŠqYùËt²¾ÿà‹N+ɼòý_Vñ^ÂCŸÆ£•Íz$º´êú4ôi2±SkEA¿Ÿ†<ýOêLõNÐT€Ø[øÈ'…ÎGZSÏ\Õ+ƒBý¨¿µ–³nfõ×}öýįëlz9€°õF1¹„x¶¢'* 윊ø| Ô,½ñk• alÃЫE²¾?…ªŸOÕÃÚåw«ôÔõ]jò(AµüÂévhŠím æ•›ëªÉ¾cNoËMá½#qúCÁ~VõÄc;KÛ­É®¡€5Ó{àñVèto8<Öš"zé{*MDƒÓ¿]êé8Y0éµ¢72±GaÏÔ¢Óy?![Ë»²´.»¾ð,'çp—40«h®ø^Üz8“åP£náX†eI]茧ÉN­®«"ã‡6Ðî]ã†&Ç ^['šët=¦Éœ6ôKv®G6…u¤šúEß©# :X0ÊKˆàײµ‚YE¦Þ{ʺ|X]OÝÒ Z }ÐFã©”"‰{Ô‘þžºžçèÉXÓ`-{»êqˆT¦_4ñÍ{ž“CT¿4ú…!ä­£¡ÍõÔ/ÄOÆ!×Q¸”Ì*è—Êäz“CTåN¿Ô„®:A’‹­Ó/Œ|™:“K‡+µÓ/ÕþSW ãbg=^N=Õy¯=""¶9ñX°ë]hÔãmhz¦£G=õK§_ê®ûž?#m§2ýRî Ç⩬~é¦48Ⱥžú¥»_ìßÁå ¹¤‚œ;ßU·ë}G.M)ì¬6þ±«®Ì*²î;÷<ÚÄCµ»æ’Š{n ˆ–Æôc9.s„÷Û¦Ÿ&SízSôsçÕ½(Ð5ÛL mÚÀ(¹mþ­óy†ÃtCxªÒ$›ˆ8¦¾ƒ×gÞϪoV4éQ™CUÙf´Ð©&„úõ!:|w½wÄ{ï4#ìS‹ÀGF•:"rT?¢5Üê Í¶ÀÉ]ŽWxì`k§z{Êçùä«}×_i5ÿTÞÏ  Žn”LøpëÀrÔ’ Úã•…äÚsn!T»[É´RÂ;…þE¿ä×€¬ðúj ?|K¡}*úÄru.ÚÕëY¼õõªÝÿfTSKsš ç‘j5…sÓõÍÃÁWµ—ê7"Þßß͟탑Z€ q`ÌHVº<Á¬¢Ñ& ŒÐfÜF‹ê NLØ1'ÝF†n… –á±ä—ÊÜ^—ýuaÊ!ò.f˜ÛÓÆ,̰gë Mæì™«xwCw=–LÇ–~bèâݳŠB›-ti³ŠJ½vùMÌ*šõ¡`×S¿äšü—ð>/ÕdþQú…õ¤žt™ULê-kz„Ù8DþQúEKP=Ð£ÌÆ!ª_ ý"Ê¥g"™ zNA¿$û/§šeÐ5‹¾Á„|kpuý£¥üÙ.h Ýï2r¡_Ò¶OÚh„ÔçÂõÒFèúÌ!òÒ/"Øõ60‡HeúESÏ´šæRábã¡7v­Ÿõ˜—·¸H™¾!ͼ5NMÿ(ÓwÙå¿«ÐyF ´&ê½Ç˜·V0«àz\ÕÓ)M2[¥_ò¶¿{ÍŒ23{ùJ×赸*ÿ(׋žd‰ºåSõ‹ÆÂ%H€ÏĬ‚/X«ÞÛƒC¤2ý’·ý=ÏÁ!R™ë¥ð|…:ƒwº*¯Ïq½@æxÔõ¸H½,öU4ð ýÂsL}ÞB!n?3}¬¯pöÿâm‚°i TÅShKÝ¿ëv{‹îzÝèhY{ÔgI§¿í ²äÊ¿ÒCR~ŽÎS æ¯úÃö••Ï£3|XÉP#1&%ÿPæ–¨S= ÌÓÌ–Ä•B¬ï m;üH¯wWs£1‡–ßs„ÉcL“¥@M O#S"1¤ÁŠ»3 : ÞüÁ$ã§Â¿¿ ŽĈv¥a¿jb4¸¹tHƒÆ‚4å`N‹%Ñ$}‚0 (ÑëÍOÀqÑ=`’Bc›h–ÅîÕ·Z-d#¡)†M•Îcô>ƒ²ûÔõI„o:LÓ«N ƒ¥(¤•5ä'±ê«ú¤IÖи95ñ³U“¿·W—i?1ýñ¸ÖæÁ‘I?QB±j@€AW?9×íXx}˜ ½‚> 2J×ò¼ô)¬=Å»§B÷§Ãûgã Uõ¿À¼Ÿ¼Eˆ;L¿~ñŽÖŸV­¨&K«é¶QZ÷é¥\ëz÷-+ ÉÜ`غn·U]}>ë¾ ZO o&òœ'Í?†?á¦ÿôë^óV`4|äÈ“7^e•7~zå|hI1ßéÃ€Ø ½ªÓÔhLÞâYO>lGï·¯ÁªAD´ ¨ýèI„Ʊ¥êÀú@tFÐFŠ9³vÕø3©Ñ·Mz:?¢¹3ä´Y3ÑÒ²3á6z·_ïü¯iʳ.þ£•…þ3ç`qåX“•>”ÆäGÔFÙÖì(ùp1å*X1]ü¹ƒÒ E¾›ÑH}¯Õ 7ºtuåŠÐHžd¬íoN#õ]5rcª£ ÊÈ0™(èm Y´(0£ÑÑøLg¡Qˆ×¦ñ˜Ë ôPÚQLsDg”]b+9˜ 0õ?QØWÝ $ÇDf±®â‚å &“CYAc6©qÅRñðt€LrÇ`ÈÛ¦<ï—GšêLÞÖsŽŽgƒšô°Öyô߀G fòú óÇë2žß1Ý Ü²‘ÊôÀ€ËKÝÁ@&F22ÿ9·_ lÂ(|4B©»ÿâpa“ÁŽkÇàéhl²ž£wk#°‰±Lz<úYcñ¢¯!Ø»­l’à^7ÂY»^³0xýlܲÂB=;Þ(&°‰~8 eêi¶`ˆ’·l¤õðázzÌ5×(g·©dðIRRAU¸°IRêA„€3G3n>Iw³a„c\’îJšL;:áh=Ð w6þ¸e#•¨æÁB“µ`'›Ë|šé-и¢²‘J tb$³}Wàë |’ƯЌMÒÈ¥•»áÌÑ Èd‘½Â÷`ÿ{3ìt²µra“bdVQ·©PQ-p½(à lb$³õ~´ 2YÅ{>HN} #è¸Åúc=ñìÜÌ¢CcSd¶áÌшⓞ`.rôH›·q Îðw×"4pŒ Ir&Ñ¸Õøs…™N9õŒ` [<$ãëzÞ;±秉NД¨çùWh®a‚’?Ec B" ¦^Ç"²ÇÔ»*`˜Tž÷iµÇÍøc1ºá®÷ŽÁT3û{àµÑ¨*×?°d²›U= ]†w@ZÎ (J «}tüóOñšŒÊËÌD”äk…JëqàŽ|¼Ú&ã“.?LŸ<’\=Œ_{ãqXχYæí­¿×œ<¼4Xaa‚ÏÎêp6昞œ.¬Z:€_ªcvЩÖ%ñj§–< Ö·…:¢…j£B®§Ã­/¼¢ ëéÀì©Ç“' „ 9ŸÞЀ65(çÃ4s(Âíý™‰¸%Æ]ß–âÍ ¿S1š +³úÅ›ÑÐÅæôxJW>k¥< vÓŸ8X=í .å šA•S“·Võ~Ë[€­_;P;A;…*Þb·€^4ËÑß–¥Ö;Ÿñºn\Ö©«p ¾…Ÿ p_®DØú¼ðŒ!L¶¹o&caJèY CŒYZ ™ú_Ìyv`ÐÒÎ4Ì*r„ÔÜÔÿœR£\â/*8ctÓþs*IÆ4Ggt Ìau€r`äNO¹†Œ^°›Ùäà0Ë`ƒÙõÇ·éÐÝ4q-O®õÁ §gì£*í-üÏl+mfù ·ñâ©cVÁ²Ü‚Š÷Ù7†4-Âm–G›]_¿úÔ(Zxd"¤fCDîR’:.è`ÃõN#Û§`Œw\‹ì¨ä%ŒÐ Mv&«MauI;8¨›Ó„š·Ê÷ÐÀ9ꡞ?ušÛ|°'Ôò©°ð@6 ö 5)¸C¹ýâtuüðt1 !¸ k”x'ÂôW1í¡±IŽŸ8@Ç|'»r"bÌéù¿rž>7ñ<~.ÝÚÇqrx>$û|ËÅÓïáôQëF žÉ´•‰óÎÏ•êgïaŸgc3¦]ú®:<É.‡Ì+%ÍCh\wNíP\Óø3¬žçv 8syE¸Mø: ÝÀ†|oÕ13”ö˜ðÔˆjÐÙt×rPG ‡ÍŒÛË8›õeû9·â Þhë-`ÏZiWx?:ˆ%Q}p(f9îµò!ì¼Ûª·ÔVóK’EúºÕ/½è¶x²†1üÏòkXL0i¿rõÅÍ/Ñ‘wŤ—ôçY¼1ü5¢j ÙþáÒúºâo”üåïöDižéБ‚ŒOßHèÆ’ Î~¼ 8§üz^N䤧‰oGïÃXÇ6îÿóeY?^Ã?臉µ)d\÷ýsݱeÖësªcËH {h̳ñ½s4ð#I%7}qDLÑÜÔë™9Rô¿ö©ÊOþZðÌðšŠÛYAn’ïíAkUËŒ¥¾å'0‰ã•.NxI®6ÈôDÅü8šÅyõ.^CÐÕDÄ“[M•í’7î9¨æã@ùägðÙGùšŸ¨›aç® ¥˜òd A¨õ"7„¿åˆŠÓ((r³<¹&ƒÚæ¨GBj¬qÔOØÆA7Ú§fƒ¨ã…£‚ †C]ŽÄ}•¦ òö{"ªÄ"u9ªù©y’Y?¸ cž‘ÓñA"S¦³c <;º’³œa\§Jþl@CÊΛ]>¤zD߸.ã²nEäÒŒ8!FcݸH‹™ykÄðþ¨ecJ./j5ô a†j,ôa"Re:‹æ(xÕ‹‘qÓC)“}[SÆ éÐFÄÔøÁ5BÚQC…2à<)bƒ6ÜÁ èè9HõL}ö$Åü „qù÷⸇}—“ž®O}Lz@F$Ùt‘0Ï‘8 ŽyFüM€ ¤ÈjD ê &¤ºT㟄Œ ê<˜h˜û’3b‰"ÇÕ ?¡«0öù•Ý *…ꄼ%Æû­‰5äïÜ]V2DÊ š¡VC¢.‘à3¢Š6RZ°íE]ŽÄ¤_£Xn޹ Î×Agð,¡ŽE;~È´-ÐPþG5E2'R¨PÚñE+ê’Nu‘¸žâá‚‘PRˆP¸Ð@ ˜ô¦ìgˆ:éæD‹ C)1Ú‰«š"u‡q>G«º¤QÌÙŒ”‚#–˜æ&Ó¥5Œ˜Ì OĨëÓ´gH‰Ò-yŒêIØ?di²²xfÓYôVŸw™4……q:#t¬Ó‰ïxi1¼­*ôÍäQæpØ—‡iÑäéô sŸ-5brP4ËRP‰Ÿ*ÉÕ˜qÙŠAi>&¹ÏêãDbOFä iZ#”ǹÍï¯(…‡X¶Æ¬· ÇÐç‘x›bµÆO1œ›fDjÇé°M IC£œªQ",YÔa+ ‚v&š™Áf‚_@,ˆ² oÄNR¯3$hRÓéF®÷Àgók €$EÞÒªO&=•ð\ò˜ é>ÂÚ')È×ÏÃÍ&½E¾¹’Ûâý1)sS¥¾Uv¨  r²_ß~mÓ¥qüZDÿ¸󥉠BCˆAPúO Q…ã}òæHœˆ¹Ï¼íjP”`bW šwÄM eÄ”´IG`Q=‰6ÒV!E©ð6Aß0Š 6˜’«º0µ®sÚXinS5GJⶪÐéRÚQCs³Âó¸:JúùZõûh‚Fð$ê²EE!ÄȨð¶D>Lê¨$ÙûŽ2F*L–½ó‹ë¯  Øh„¾Ò½‚%Eµ”>5ðQ°©|Ôü©ŽTJ¼­RÀ`$^¶ªnJõµd*,~.Æ/O&–án¹_2)z§'þˆi†ô%b‹L¤.D¥üv0å5ÂAI®²g~.=$¥k&§£“ÝQE`§ ¯\€ Ïr<˥׋4Ù©0{NJü¡Ï/1íæ"¸øNñbΠƤ¤ 4½6gòû;†PêÊ<ìÅM˜fåÚŽMbtRžäÅíh¨zJ<¬MŒQOldã9ÌóQ«õ7ªrtÑð”nîJâKò/±2ßšñ*À«Æ£V—ãBTó«<‰Óò"ÃPªÞ•ÿ.Ý<*–v^É” N4<ÿ‘›WT¼‡$VP?×±åäyýÚÇÈéïãOÏÑ‘ìôéŒS†R:’ÐÄi•oÎ¥œÉYŠ·Ë´J)iä¿ÒàV¡ç£—K/¡±Òðôé+UèõèíÒÛ[ê #[7˜š7übà)3b…r€«ðDš8]ú l¡——éþ -Yë굕ªj—Þ!§´1V"êÒA—ã#a´™O¬+<ë[î?¶Û+Ÿ';Êá^/½´i…îþ±µ䥮YãÒÓ©5‚WA®œ`gÇ4Afè„u™>¿uj• _`­Ïš4uðv2–´cÜó?z:Ì«ÝýñOð*YK4wôN!•@ZõùàW 1þ}¥¶}.}ÇDm°…d§?þ7ÂÀão`ó²Ä{æ~ÍÜúøYñy^H+5íWÖM¯>8†”ÙB/ÆÇÉ6c§À[ïÁ·6 “d§KÏÈ’Ä‚«5Ô¢¥ÐëbvÒÜ$1£t‰¸RõUO¸ÓRdE¢B 2 ×0ú Í‚q!©M?¸É®œ<‰5Ò)‡hx»Ÿ”i%GPñIGÊèê ,¯ü‰GìÕ,e‚ »-*=È(p10­Û‰'%$\àã|Õ• ž8rjÚ3e×Ò¼{NGV©zxÊÉÀLáWЬšDVY=û£wxÉÙqü„W‘žk6â©V¹¬‚cï—Ð+d5ÕqT 0Ãæ°*=Þ!I2õSw›©B'ûâj{ЙI­9ÂäÅÖé×yO‹Wõ.äPNÍÑxñÕŠ*ǹ‚}ù™ÉÝP.¾AR^ÍìFó'ò Uñ’¨¬Ã¥Ñxj!4è>»3ÑÖd³„‹XÂb‰—@PI Äk%M©ƒÀ‡×{‚˜‰-ò: ‘h½Ñªb;ïµ ž"Š’…Ä{8ƒ×Ù„´üqtm6F6P™cž´Ÿò•²> $ë ®·4•¡ ~ÏÓ›¸N>éíغݗ÷,u­àj4²±S†¥” i7̶ªÊlÝLÚÌÊô• {<¼T¶‰¸-Y$ú`Ï ÇĂְn&öØ=9•¼YX`5ënÚAXÆi 1ª¦Êxä¡fGc Ö‘Tx ïðªq›j(r@ŽÁ˜‘[:VÙµÆ ÜFð±ÊðfRÙiÄò<‡•=À(vªnWûséÏ!lIEº0›N¸çpR6î Ú†Ûz ˜VÍ@*»ÍšµhÉ;¾n½§z4ÌýSgXkßîå1“;z`¸ÀgIY»å~[08¤õk$—..zâü×Ñ©úq3eöþô@o3½µ*'Îolwb½¯UOõƒ¨åCÞÔuãÖû‘Jp´Ð}ýEp×Árü›íÒ7CSú4K›ÕýõƒÏæñÄÉî—>n|¦‡r2£zvýnrvt÷OÄyò¦®áG´õø Ï:O#3œÎuæÏq­^ E}¬å ¹úËÐÂJsö¼ôÍà„.¬—ìó7Nk!}­òÆmbÏÆàgæÌñb âÏ^ì\ÀM[@q©M›Úi‰µ¦ß#b7i^‚0Ä#/²£—™+ÉRfÁ/L…üA¹K1ËÓùh‚¸é<ŠÆV¼ì‡‰C©a7]kwû©ö ÁÕìážÆõxIÆa'p7G‚8áqÐQ‹÷ùúÑk2%ò®Ÿ\X¡×Fóâ4Eé2—‘ÉT7;Ð1ß¾~ !ʯÈ[Þò ÏÆ²4q¶ ª²“=yNŸIªdà«ñÉ ¥ë±V2†Bô{j-g­^…ô¢dl%³«À¥ú¯³-ÀÒÕ¾ôYdßm¼*¿ã¾ôRïâm„áD®“§+’x‚³€yEDøòã€'Býª{[ŠÒ—=›q™C¼ Øàµ½£$ZÆoæy—fýÿ²qt‡›Ä›¡~§È¶áwñŒÖöÒö¶éŠ Df„Ö°éWÔ¬}ž=V/} »r¿¸Û´Fä&™ÅýÊß‘ûfn…£€Ô?û®ái´ö|p.ÇŒ¥¥ã^âYø&fõCkÅàm,»]`fÑVf3ó|PM¹âe= ­\:ÿF†¦ òr·>‚—…NKõÒûÏ”x^NŸulh¦?£²ÌËÉúŠZ›—éJu Nè8Ac¼r$ëú´ž¥ÙÓèTÖ¥?74#{~«¾Ýê×ݸd­§i¡#Që„¥ÆÒiÑvp¨ì4g§£3l4¶½‡ŒŸÅù@iamÇÓýŸg ´Ê)‰þ?ú¸¡YèÃúÚõÏÔ“úao}‡ŽmÞ–ŽNÿ)·~"C?Ð †F oaM>SŽ~U4™Ò¹€ŸÍÛ6ˆkÞ—‰Z¡· gÍ¡@ZêóN–Èkä ^Ö€&;Žl×÷ß'ÂÆÂ)ªêü<6¶ÖoèPMèå¨ ‰ZŠgIŠèØ:”¬Ÿ#ŒìÔ÷ï›å Ð%É^Ë “3²ÿcØ¡d‡¼y|2/ƒW!ÕS'ê>hÖ>Fw˨Ðí«ãß'ã#kŽg|xÎõgàµÐ¿:ýÒÇM΃¬—@3¤ÆÐÉœ“…‡ÉúÍÛ85»ÿõƒÚtÁ0töÈ܇â>hÖNGè%êtSÿ šKÖ[@µÆ xÈ\óøz=ú¦iº½ oaÕE6¾æxaÑéŒYk¤ ÆÆíŸ²àiã@9ž‹e.BbÛ:õ)©o'ê óÙþkÃ!©ÆfÃÍm2çPY°qf„¦vKÔQšgI””ñ&Iu–ß@WDÒpÖ!‚ÍØ^q;M Érj”I"Ý[#ÎL¯6N²ðâÐg%3 9f•j{vg8£AÖæ–¦aL¥%º'[X: Ædw^­ûp0DïÑ›]Š”êT}ôXÊ:å^Éÿ­×Š•*2ö!ú6Í/4kÞõ$Rõ°ÛðV[ìòÙ39Â;ïíòŠ³Þ½õŽàSï4/‚l~ÿWw²ù™2–-^ÒãÅOÍÜfåÕ©†üÌI…©bªÒª‹FV²¨¨ ü&WWR’fuE™‘>€ÃÑòäÓáQòó4“6;‘Æž„”Jû£WH·§þºD¡ÁÔz'#™² õùÕœéÜI¶ö¨‘n÷Ø}9^-{8­dâ•ûuø+MÃR%Ç8‹ôÅD†]L]äÈÒ4]¤hx²PÀÓU ñs[‡=Ftì6Öqà™Ýi-¶™L éo\lp&&7–« Ña“KÊk2Da§4Lÿx×Ùõkè’>¦V“kjD;Cë-Úä§‘ÖÚsý8ùžh°Ö˜H*ü´@÷7EJÈpØÆAxHÔúN=yÌ_?ˆº¦p‹·ðÓªˆj °F}­"·XëLçž ó¢‘õ놓Ñ=Íþ.zgëLìžzé퀵­Gýré58NÛG|úÇñFÐ5%”Ó‰k æ6O} ?ÍgM`ú¶éÒþÉéèTÕn–ŒèþElÜɉÂý›>p—ƒÞi 9=)A×´…œ¬—¨tN§®y^/¦Ö¬}ôNI$ï0±™ÚçI}ŠréípºqôvÂà`jÇÓžÿè#›ö“°ˆícv¬IŸx±}ÌNZG_¿apw“S—SýN]Ó¹ÎÓT&#ºáÁÙ ká™Ot-ô‚¤¢\z ¸Æ;d½ÖKAØBoGW6ôä î–^7jƒ¯m”§bºFýr›Üõ¿õU\á‰SôØ'9_ôfq%*íÆìc¡®x&¿êwN_´FÅïiFú+&\¡3åz˜]½Ä«š$,ÏåèÚ0Ñ ®žŽÛH¹ˆAeg2³â,pÎNºA^cϼÍËÛ~±R/½+IéÒ`´¼+úÒÆŠKûç.6Ðkì½Û¶±›7m[Þ¨ñÚj©Ÿ-™Ø(K¿§¥™å;!ºn:y">êH©8yõ~ò&¶háô©;èϯíøÕnbo™œs,lpIþœ%²ß— k0´á¤Oñ’í°ÍáitýðË~xãP'ð¯}{oÇ·÷ŒÍ‰oÌÝ+b‹Üð»“ñ%ógËñ%W9ër¿j¼_T©.Û!ráÔÂIk‚47XÓ9RŽíuWS@ð A¼þ~ò2äÿo£AØþ©E^öæ»àfi0{9h jU kÚžñ¤ÂºÆ-ýá:ñNýCgÁÚ48Íí´IÓÆ=†ÉCå iÎâs;ÔMÞÝèÅÔûâ¤é~øÜüô¼¢‘Ÿ’ÖÔ´ØB2©ã6é„c³àsœéiÉèär˜IútÐá¼X?ôhn°…õ·I‡úî¶ÓR ˆÖŒåÆc ª‚Î:/I“1lîP¶SÉ»NÎϦÍ%_Áý37P àÆ©Qô†Y²Ak½½:»m|’ÖýÎëÇÊpÚTN_Ó¥SµÉšƒŸ…Žú;”-ÐÙ0:Ùl°²ÓHýÕƒµMY[@´á§=P3öÙ€º…Ôz3kÓ‚'Ás<—k`†¤"‚¾rÔê–%­K¯¿@NÝ™hßý˜,<è…FÒsé%$Ðm8hi°H§®KåÒçás:j ŠëÚS¯–׿káÄð³ j:¿Ôz3ëÏiŽŠær°²Ò4ÿÕŸZ¢éa—œ¬×`e¡«ÿ5\/CBW-Hð8Vßá·)>V¦;÷v*WP[Z³¡‘Ïê¿?†`mê?抄‹ãÛT ‰F@k#·K=mtƶ[O)¨ZèTå_êŸîZ[ ç'ÑÉn>Ç~Ãã'Y1ÜTî jcK œ¾ 6–zçÐ{ð3%{4“a£·MåÐUðø¯‘•hª¶°þ÷þyKÓèld¿ºLÕîP¶ÄNÖ¹Ò5¦gWò«¤èµoô¶­Ï¦j"mz¦-Oöâ¡A=ªL¼.îÅ]#ªŒ÷¤xóû~ßkì9ÁW˜i“!›ØDÕ z©ýµE”›òV=O8…;otvréeN¶j` žlOÉjÀœz@kϾ¼U]Ò1ƒº ÜÞ”LÌümâ)†cBg‰T4ªJ¨[/dl/$y"¥¶Þeçæ!25Ò5œ¹®€J·¦A¹i£÷Aþñwj§gÍÊé;Ùiña+VwBšÚxv²#-oͲÁŒdBÂBlÔø¸WÙ•T„±zçMS4õJ'’ÐwÅ^M]*]‘Wï§Ê~ˆê@½4Þ5öO½\ÞÅ–¦27½yŸIñª÷Áñœìôðhã·:#§@Ög…Ff(»â‘w“—J›Ä±ý€róæÉðëáx÷Œéá½Ó|<û_«ýùäÎmýøBφ ‘[è”­¼A©$¼}²ãš¥°j ¡ýP‘ÞKU“`|y·ö±t ô‹×|Ÿ¯¾À˜¬Óü+up†qÚtýArÊgÄGœ¶qØ`œ8õ`012F&òš9¬'HXuUã0v%ŠM‰"DíÃm IEúebÛ*’Šl]c##f›¼1#sÓ`Ë ;Bݬ×häÃeƒ‡ ¸IØR´ÔSC7iËÚ8:l0"ör#¸áþAŠZ+èØÍÌàc\rÜ¢Mn–H0b½3‹«. Ønãú ð‹!ÀØ8u|33›G§”K‡qŸšüûÕLíÙõG \Æ‹uÃo@€Ã€dÖ]àtéÏÁaúÄÉú†l¤c>>þ`å·A†Ú¶5Á8³^, Eý~˜‚™ó˜AÊ´{ÇnóÖû‘f€1ïöqBØnCjG‚ ˜òL7s^, QË8ˆLy/ÂúÜ8LñÓo1ݾþþ€åù1³tt$j…¾™Øô¼°¶hN[¯}údöá¶Ð5Ùø°Ø†`½ŽhKÛ¼½E‰wOÉÖà†Õ¾íß]ßžjæc-Þ9m—MÿL3's@“Ó4-¿El ø·ãÛˆHóË.ËŸëvRåxaÅ1jÀ6ÞpüS#0šãÒüâÔ¯éŒ_ÙJý¯žâ=Ò\Žnß ó=]hŒ—³aï–æH<–ý4¯B¢¤øl8¥Dƒì‹™·Ë±²ÿ²Öù‹m–½Ž_5“B彑kÓ¤JB^òŒŸÏ—~Ø«’Ôa±†Âá;Ð7[•HcMòhº(Fb~õ™WÆùá‹müþlÂ'Gé`¾Œ’Á],ÓŸ‰íö7ƒ0ãpBÿ¡c„™uëî°KqYïN‘‡~uÓ¯ir‡rž¢fCD‘UÛ ¯ž “í82‡åã»a™£Àâ'PL²ô33ñ­ÎD)PŠKƒ£6ƒƒù'B¦ rÖ“ÝþJma°•×&^¦_dHSÆŠ17ðº=• ó-Ìäòó1±qÃ-ÒdÎ^Ê3ËA¸”óÓKp-ÍN-ÙÓ7½ÐŸ€[°®ð+G§¥ù¯N­ÒM¸àZʈyB΢¹YÖ!dH8<Ó¿_Ó!dÀ¯¥é…Št*”6ë:ÁeAà Ì5k=Áe<#="i5ØÄHËȌۗ«rÎ);䌪`.rfýnVŽîà›òa´zê«#¸©Œ™Áµ^©=—>òR'´-ÍöBÈlFò/A .6‘T”\Æ ;Þðì_}=ëš~×bš´NKüûý.Þ¨þ‚Ï¢>:U[ÁÒÔ‰¼dVo‚ƫٳ­K/×z¥þ\ú kp³¾u¿kÜ x6¢6˜ÜtZ`2ýÓȶn$¶BG¢¥ÁMÖçǵ$µKÿåf)=”N }ÂТ÷\ÆÜì‚[æ .ÛÈ,à–â>Þ"‚ëÆáf_UýƒD Yp­Éz‚F¬‡¡Ü ¦ó‚ÂR€¸¡àf’Ê¿úØp+­£×œæúÆ\:u´¡ƒ´È®Šõ#hÍÁ·HÔs· `‘Ò"¬éf]ëý‡ ³>rßø…gªÏ íñ—'‹>‚˜Ëã‡á–:ŒAVÝ?‚HkÞðŒé•–¶>nÁº˜fÍxB1r®Ðuj ²ñ„â.{º>ÿH»ôçæZdÙœ^tð™úl¬ OîrdÒ éƒgÑÒÆ`A¸’Ýa]ÏlU[fâ^)HØpú4F `´hTÿ¼ÞBSoÁs4¶ÅUÄÁ¨ µ< Ö,QµºõÍÆH›¼ýv¶;Í-§PYPAŠuR’:‘„‰ÌÖcD¦Z$V'§¡3ê+fhê¼I~&y®Ç9Ðï} {Mbž:ÆfNiÔ5l¡wr“]'«² ƒÒ°ÙD¦7Hˆν¯±Óz`3a5²¡uÅoLa„)Ö05켈OëúžÈ®œÉÙŒ“b¾²ÃÁ´›§ÒêOÝû§¦¯-ý×´;‰8œvßy?ÿšRó¶J"6íŒÚü‰–´ Zë6= hl³¨ûqi¼g«DÓ+Mo¹6?Wjì.I¦v=ÂnÊ ÚØ9G\x§ éÈôújc“9½ÌÝS2v“Sª“žŒ½`cìxL^½Ï²ô"Kç]Ë4†=‚eê>l‹ ›ÒŽ]´ÕºV‰Ý[[wfXzÍÂ:žÝìÌq‡¬ƒ Û²»t~<ª%Ý $ʉ2 gÙ 6&6ÕY;(ŠaXÀ4ö‘c= ´*ÛÊÖ53ýêö¥‘!¼±Zÿ N¸¿NúWû©ý¢j?žãÀ´ƒÈT Ͽ̋­m‘€eìá cOÜDä묕dí®c¢¡fŒHÁѲ¾Ž`kªöa1$šC÷&.;¬¬Ÿú ^ö·aZ°·Í‘|s9j‡ÉšBµ#õ&ÒGÜn,Ÿy8½é‹Ø‡Í n¤ä\¥üb7Ø”Œ4œË+Œv¶ëÏtôþ‹Ý¦q¸ãÒ7;#!'ÒÝBÏÁÆ f$çô6ºÛZ‚AÌHȹ¼ÂÖ®úšµ:5áÅÙ‚¨éÐ4a]^a›7qc¹¸*mOêó”KשÕl,°ñH¶º¥ /;X ƒvq±»±ÛÊ¿Øícc¼¯E}±g@$ÐJd$"=ïKáù±µ‹‘ŸÈf–*VCÂ)ˆ›ŽÔ+Œ/–!ØX-tviÃf)PY`78XÀ¶ ;u8>ØŽ=‹ªÚ,fë«0V«‡‡¹ÿÛ §ù”ÃËh³ÇŽ‘š¢<5\©hê‘׉aį—i°˜ÎÜÔ—]ÚÕ¼ýÀÜ™ŸE⨑·ðð˜b>-dçßx¶ðx“:ov·üêèÎb³\ÂDV;^ÓéQv.›ÇI¢Á/¼ðißS;2¬ä”Ñ©üo=SçrvïˆC›®ª†f¼æê—ckîD6‡L9Ä=Êu#jÅ.…ÝPØŒÖcš346_"“°‚ʬh~½4 _âíKxþ-˜T±'—Þ_\ì¾5],r³‰¨9=ž¡§Ò\;HÌ›RFéÐRdË0¡Œ-Ó0áp ?l@û÷sd:ë娀ôë‹·ttoxçð°ØnEøè3ˆW¶.‹ì8õörî!§Ù±:ü²SCj² ãv¢ŒýãÕJ]ʹµ¦Nä¬ßênÈa^yWÒ;Àþa8Â+ŠA–žÝBr²‹4ÀrÿesJ‹Mè‡JŒ§=¥Ž c›¢±~a¹Á-NƒéòE$Ãk 6ýªcÖJ¢Ð/Ö,HšçŒ™k“4˜Yภ]é—¿S§=ªæ eä=z ˆ:õN—>’‘"}Æ}Œ[K;în@†e'p²Á­RFûîŸÃÇÈJћą¾ùš Y&>À{ÜøóÇשIp}ºö•2ùB²QÑ÷ º–qÕŽªYE¹ô~A2I*Ü?æcã_jG5ˤ ÒVN#ÍÇß]Ë|, Z’0N,ÙFg§¹yé„ã¨Ö©?ýï× eòܺÎϱL_„‚d’TD,Øsø™ðÓêÑ?R&Ï­ÓH9¤ =ê¢é“籆dÔR×¥æ6?ý ·Nûý8ùñÖ³ƒÏ¢~7)Ëc™€dÁÏàSœ:íOú´søX¸ôéù 'pY@´|HÙŽ+3ËdPsªhF#ù‹0;Nu“²¬ g;ÙgŽ5C¢‘MÊ’IÙ+øß¸²ÍÇÜœþ>&5P±Þàc’ú¥·ƒÎ’Ùºû/m§Éübd$¾¾ 1th¦êü˜œëè­îú…ƒðï·$ìͳÚ)ËÑqßúGÚÃILŸ|ý™Í‹Éeõÿè#H™HZÖ]@N'ÖLõ³´ —MÇúZKÛêúüûýÒŸÉ8 š>ÿeÃÖÓoq|Â$Ó¡WºÃá¶–Étè5ád}£7p™¦eYÙäôKÊB§~Áɱhù&iQŸƒðññTˆ'÷Âå‡AÔÛQ†>/f–D‹¶;dnæ–dÕWàY2nÛ 02Õ‡œÍÃË8àeÏ‘ø¹3p“ýÜ{~9kn + ®ºþ–ÊÅÐy¡µoÍxx?b:Ú'Ú£ÚÚµ3K×..+¹y—BÓ&ÐN“5Ãéñkzšë¯‡7üæc§>­#¨w¼ihàr‚E"B˜ÖÃæƒ½³{ô˜ËAèôçêÊš2uü]¹TºJOǼ±Mw‡vÁõÔ`¯¸?…tKyÏE†ƒÅ‰²Ü®+MB×NZ]©–îÎ];âˆn%EŒ±#Žâ÷ç2Á©èNóšò7 ‹ÝÞ´‘VÓòþÝýÖå{Mlbjc™¦éS¤cSØÜû•„Æðn²­^÷ +pÓü ‘ø¡ÕÉ~6Þ¸Btý6Ì6È4ƒÆÐÕë î©®ïÎÕ¯ÿ©·QŽÙøú¬ èîŵb]¡–Ú÷Jp&æ%šÜk5„[:te9Ž:RZÉÛo*`FèlžêÁUÿ«Ç NÓ{ɼsÔNp|üŒ(3pV2D )±W²ÞvÆ\‰‹N­¥N$ÐK$è f>戶| ¦2OV´™Fêæc™…!÷- PÜbö„mqߊq•ç ƒö+ÖàcËO@ Ä€4›¿å‡Á4šÂyÐU’¹~ >6ÜDû¢…'G:qºôdëæcæö† É·4Ï{²uó±Å-m¥£/îf+=p™œþ¶µ>þ6®°³è,Ðu*î—>dãÐh®þý ·@cüÓ4ây‰ZºÐ[~˜Áz]@,_è-+'föÆÊˆ•ãÉ©Óȼô’½‡ž˜Á®Ë[æcYÑÊHÛÓç·žMÅìIýŒû¥oH&ˆ–¹M%¯;ÂÚe¨–6‹°­Ï0LʲîPrÿë »ÐÛ+Ñ\ûôÁhY;á  —¾Ò´žØÇ.øÚÇß‚ªqèDß ¶©Û+iÝüÅÜé_J 'ó³ç—š©¤Ãׂ=§>ºŸ >ù±äF²öiüG¾–uKBr–µ³#VÓ3@ðl9÷:°X&ÿòûcŒZh$ä[sfgh—H©ø8úÆÁ>óÙNÏò›ÓoNžo°2'´…¢,¿x¾AÉ q±—âŒw;±EšwNóë}Ãïq:ÿ··@ }EóþsäW/Ïñj¼B)ZBÄöÁ8GÁÄäTí~`Ü¥ï°5Í©sbÐsœ"WOHê M7×üï°-¦e²{G +U§¥Ãά׋ÃÙéáÎã¥è )@#­Næþãà-™’}ª¢õqÀÛ®z¶n&fÏ]§réõ 6Ž©~zD§…5œ:ÑE‚vÓ3꫉XúÀØ¡oH*Æ_?t,ïúÜêÄaŽ^Áa}à<Üïº9Çc›žQ_‡K­p–ÌÉ$©ø8[ 45…ûáð|Ü('m§èŸàMNn˜óévZªÁÉâyuDŸ}Ž–ðŒˆ¯|ÀÙ:UÇ¥›‰G}Šñé†qÕˆ,k œ#uËŽN3'ˉ©j¦ÖælÁ©ë´r§t"Ò€qH4'ó¶h;úl`8DNççõBеyèUëÖÍÄÈ’iNfŽF}Ö ‰µCÞ±iÁátþ±d°¶¬ïæ¨8.=™šBA>½³®õFbd|ÌÚÉÙ†@díÔyg „‘+»ŽŸ8ûèšNátëãÔ*–66 Ž·ŒÐ¶•ú¾•0]õBp`³àd€1s²°RÇÿ>°¦f´ûÀéï¼…^‚£Eº0Ê:ˆM×#áÖ¼mDö6§Ø/9Yð¶Y =³È¢[9‚ÉÁmXV7‡£°Ìt,êׯ|¾b×àdÁÙ²Òyâ´Z;œm€ÅþFÐ1ZÒ¾;#êôh)q…>QSxˇààdƒõ„6Úq#4§å…jÿUÎ霷ô7£nÏ }h¸,DKdm¹cë-d°䫯ó4gèñL[ûä];Þ¯KD&YŸ®Ï6¿·zªž~4â×’ ƒ5íÅžxÇPaYzF½ôûnZB8‰OIŸxýQïyöBì•>Urúv¥ÞìJDÒ•°³+?§œTAã^çÍFMÏúCî”&ðш SôXS0ÑûIÿBSÌJdnЉo 0½›¯—ð[•­òNIÓ›AM¤©)kÀûUžMoÕ6Ewµîà¥Õ{Ó¾iáßôkj‘hL‚Mñ×h ô^ =ësr¡ 5…[e£«ŸÃIopôB&“^¹ôƧœô–Öû>¥¸LK Þìz—¡ë ˆ·p|Ú¯U8§ ×ôa~µ? méµÍAi¾i:Hì9R}ñL)úÒx­j<Æ`zÙ¾Ïi)Z%>ì±¾=[¼Þœ\Ü•lßç÷w¨±‡|™‹9lDàYB`¬j*Úʹº£ÃS½Z¶!ZD• ¯Ÿe%ÅTÅK eà•ŠjP·eôµõzô~éÖƒ¶ü´cÞe†hJ”™½'óU¶YÙ’Dá§qÑ”ÓÖh.ï¨1Kl—c ¶"ê,{ïåm}n¾¥D™ŸÞ/êe`¦D™9GÔЦfYù0‘€\›j-žìðøÜVªòÜú´8f ¯–6&Û@KØ(ºÏoÚð³¶æ_10×¶RuQñ/"È̲Âsn½GTX5ð²'ÀLùßÂ×—ænìZs€Ù†dîŸ Ì6ÚÒùwŠÐ‡×Öi®âäö› 0Ûh«Y§m­¹4“h,¨V ³¿Z¯­SgRñÒÐz8 ®¿<¶>7KÕ˜l-]?ƒ"ôÀX[Wsüæ=t$Mû ôù€Y6sòùL@h­Ä‚j±ps wëFWÇS]?h¸]zP1èVÖÐ-§?œ›gÄðÒ°n¯”"vmüÂ/7¤M-³†ÿœO왽gÔ¡}¹<[[}–ƒÎæ©õ~®ÀŒÈÆÖÃw.#,ë ½¨÷èQ—míØx®þŒHeÖ½á!fÃh¼9’Û¬± yá-¯GYOO ›²©±RžÅ¦'Û)>Ð'2‚EÏMÌŠ$úb›e-B°ÖŸ°lÓ×ü|:0æp2­¶+\A9x´¼a›%jlK©Ìmw€ÚAh´„^wPš¨'SFÎ\r­ƒÐ6‡Ó{äŸ>BSÿåq1LÕ-·äÃɸôìdÇŒ§Mºùâ-­£›³ØtWV¨ïÖ5—~ )Ùæp8Ñ?%º¦S/9ˆÛC‚®MÇJH46+žf‚Èp*‘ƒ˜•âþK‘k§*ºûÇh=jé…‘WêGœ•2‚“m‡“D-` ÏRNP›ÙˆLÒút®K38Y©t¢û×t,mŽF}t/3N¼ša™nw»OcS £–¥t‚Òè?¤àl-8z©î¿oÛ`g¥¢·ÛB¢¹„†ˆ-`šú”eÆû¿ÉçÃÉæŒËÊ€d§ÐÇ!n_Ðtìãp…á°úúÓøWàÈxnì&'Úo_ý|°º¯?Ó±r$š+ÿê9BÕàh…A¬ùú,›¨F-ˆ³=o½~ˆLN¾þ4ôÆ/ë-Ø™÷ͱD­¾&N&aZŸ§‘u°ÜÚAi'@-jÁÉð,=ôN"f¹ô ãŽ^‚Ž!QŸ:…eF.ŒuÝô츧 Û6]«§‘Am¥‡Þƒ¨…'͵õV`­tf ÁÜZ4RX•p'î ²î ¶aiPUûåä˘'¬¦cùÐ1ïZ=´ÂØa„ô„Sæ¹î§‹‰YÏ™(§ñŠ$RÔ'1‹—¾H=•„4RŠªÛpæfªõ>ÃÝR²5+ì+kŸ¹Ã`T}°a¿eF›®ÚÓvÒcjœzwÒ3 J÷*p¦Ow¢¤„È4MïJEÑõZïÀ²®Ô*]y»Rªt½ *wKíHŠÈÒWg\é‰d*ô8òýÔã»”pÿ±D™¦ mºÓ"ï4œöþ^[w!„Æ®—z;Té[-âp$hÓÃq ÉVy‡ÃšøW kÊgÔD¿Z#eJS¤Pˆoõm°VSV#ˆK©+Àà-ª©›@¢ Å¥¹ppš¬ÊÁÚõFH¯þä^’„A¯qw½¡Ýûðkœ¦?fWZ/åÉz׳‘®(¶êQ‹œ¸œµw‚6s°§åOÀÁÅ ¼ ;å\ÜÜUuZ ]˜}ý]Ÿß‹˜W7·SÖÎ4#ñÊÍàÖ/ –3ïYw¥6A3k ßÿre$"ß!¯vúuP9v¨AÝp¯üÁÒÊÑ“¤ü¯žÍ×LÝ”>3{¿›m-Ô@kJ¤™½_Í >3UÛõ)Ú Hƒº}ÔN‰4·®ä‚6„çFoš3u tGwL*ZàÀ®qêv:hîvºÅ)|TNFWù‹@Ûõ“þ>ªöQ·tt÷YZ=žIE¹ôahP7E«~z=õ[P7¥ÏÌNº¹­íP¹qtÏIÍÒæMítú¾hMÖœèÍÉ0ì0´ó|OSfM;åž¾X4šãž¬ûüMûÙØ4—žçÒÓ¡jº´²Ýÿ>WŽd§¿†û¨†J9]z04HœÆS9ùø·!¨Ú8žžS<›ßñDê¦ýcTÑú Ö:’¬¯àoቴpútꛪ©“4;«±&°U†²¥Í×8~ÍÄ>ȶùÝAszƒÚUÍÎjÉ?ènS5uæiÕk"ÐòèGG²Ó¥·Mƒ§‰3ÉÉúÔ:’.à éà´ÙržO€¸Ðp]Tâ1âan)Hn)y;—WÄîp#Æ; oQå ¿vêG€´fY6ƒáYDòN”D×<Äà\^íRðŠ}ÜI¯µâ×Çu ¼,:ɶ6#ÛÚ„áMßLnÅe0D¿fjÞ—íËJ&…¼òðªÈkƒbÅôñð’Çà Ïä5Ôi(ôL·-C»L³b÷Q^Ïxxõâá-‹gšlŦ3»$Œ×‡÷U-¦Š‹W_íÏhÙG¶ø——ÙA`áe\ÅKT‰÷¥žeR¾)t.ÎfåÛ·†‹úê6ý^‘rˆQê³ÖvM¼û”ürTfoœð´|TPó` ^’½i5? m~“÷ÖÕÛb¥[87^Ž•]3?÷Ëý*äÃ-yqÿ6XKTŒÞô[e@ôúB!ƒ6„¾ù\òúB™<íü®Öçߪݪµ»â¥÷áôsd@ìýÃæ>ÈW».à þf~'ÌöZKw0œ›óVÖ–\Á|.Ÿ«1Ø•#ÑܧÜhœç­¬7pká-¡×K¯u“Ô.½È$n묷­…;08Å|:U‘Ýéü‡ï%í½üœF(Ü?E+ÑIý—ïù^«—:ìô‘8㾋ßÝT¯œ:^¿rßåð·ŒDsn¿D­z“àþq`ÛGåhŽÂ×Wïȵ@oJþ’ë >·£ß@o4¢ìŸoṌ¦ Ü/4GKÖW8¹~9ÁnžÕ½í­p‡ÉÕõ~‡“6 ´ÇýÙ/'pKÁߢ*…¯¯Qn´zÓ.ooá{±©UuÖ ýã{AíjHîtb+ø\?@N]·úiéãw8…D¡>[æOÜq×wZrÿ­v\ð·ê—žamHum´×ž›¿¥ärTEoOè›ÊAâD –£—ƒöêѳ>•_¾·©’Š/Ø-¤.k;-…¾BjãZŒfuóæ{í¡ðøÆ¥U×GõTÌKŸÞ@szßmë³®–ôfœœ¿CWÎ'Kæ{æoJ eé#}Áï"˜Í,/ üMÙÜUÑõ·!Ð];žQ¿žZ-Üçu×ï!í¸CúÆáwAõf ½¨úŸk c‰·NU¤ÞôuùßW-†ÆÃßìäµ èM`ÆÔÍ|úqß?Ô §hD=íñ-ô|Лz"—£ó9 _»bã²7Øù‚ávÕfô¶u%þÚÖvÜ9ðñ7»¨žŠy*Ž¿ñ7I+ Ÿ²…J…ô8˜nºêÐ~×XÅïÄ×X(Éî‘Tð^]胜ØBQó$[øÌô^ÝcAó¶\xåNm¥rœ2è#¤·ÀÓo†t-¤i¯Ð¢aH'¸#‡ç[‡\ù²ÂßÂiÆÜ59îš5wM€ß"Yë#9¿H›)õAn–®´ª]}h«víS¶ÆÔʬkÑÖ•bU«P  k¹àh“ ‘vH Q=¶(Á)À¦)v¦‹lwí"%’Vú¦bhk0ÅÊ7Åŋֽc“0HcÃVJׅ纠 ½ÃÒĵšW[]\ŽwQº–Ô=¹Xd×uÝuUîºnº&Œ-S«iš´tedéJÈÒ•žø-„Ø)Àk oS´—>ŸUÀÐô·$³óVý/¬z§¦/ëºÔÚÔn<6l}‘>­“öðaʰ††æoQAÎB?¹õµÔ/©›¬e½OC- ?ì?BP·7îQ v[¢jeŒè¯5“ TȹäÍ;AªÚB¢*zqýÊçã™?¼fr¦1¸_¡pÑœwжŠk>“x­ͯ#ð[Xinà~é›ÇÝB7µõƒrêľŽeû‚⢾t“Ë¥}ÐNd7{»š Õ}PMÐ7{»™wxœN}”_Zà5 [èm-ÊéüG;zåÎ4ú íÀk޵D­•AÞÚðõañ)áæ§¯ kz™ÚRxZgOk›Ñé-l¹[OÝìIKš<µù\º*hÊ„xÍw+Í–>|x-‚Þj ¶Ú5MžÚü‚â káIs §~ Oªò·Koª©ë&EÍÍ@m¡S•N>þðÐmã;×_Q¿1ešë€6÷Q\ÚVÕoš7µzüöA»Ðó¥c(X´YSŠMKÕêÑ£~ Ôz9uÚ¥×ÕhSý»<ÛÒD©­Êãõg@·ÚEyéA׌۴E÷[p}uF=Æ7ø™ ëø}0ªéªê̦X|ª‘·¢É^`¸n4ƒoÕ€×½QÃÅÚ^{‘ÂuÿNøõmÂ¥V»€ýªŒ5Ø”°}"í5{ÐÒâ »+º†J@Ðâ ›aÒÊá.Œ·e}žþ§V¹¼hê# Œ€Áå’/|³k„×ß̦ÖÛÕ/ü¾Ä1ÆAè ëúª>.ûåOÌkÚWFJ·ìVŸvÃØdåcTmé4ûhÉO]õ`ØÓ®jÕÕB·óiášµ{Žÿ!N¡.¼¦©»‰ž¼~~‰Ø4 ãi45åbç mÏiÏÇ‡Ý Ãm„öÃE‰rޱšÖÙ/Zâ)ˆ†YoiõŒ7¬ Î@#¾d=‡µ‚åß±1›ËÁë”1Ôuª#šƒíí8<¥ µS ¾ý¥kÇÉ¡&O;õ{P<Ík·®‰¬ ¡·Ãë†õNaí›×ÅR5°œœÖ½¥õÖçÖõçé<öðÍ6‡µ2¸Ò’ÆÒ^ž_€OÝY(Œ²Æ…çFB/õ¡WWׯ¿z4Ò‚Ò…ÞN¨Ut½˜âéS÷¿¯s-›×}(0t$*@éê©;êÔA-ã À;mºÿ¸´4¤vFM»›ZOÁæì©–ìiÔúF}PºÎ¨[Ó/ª =½Ô0¥ëŒ²[o7„Ò…îþËÛIÁº²ÔçþÓÈÜëŽÂ ”g÷¿ ø@u æµ'¨/P^è#ô×õ@Éù ¾²yÂ~ß©Èjg (ÈAÓÐÞÜtX3Öh$PX®·rP_>„¾NP><{s(hi¢ëÔ[»ôí„5P z²}¡v›ýèTÊ›7„Üõ†Ó<¨§Îȼ“{} À» @õ塜ý>@')ÏÁþ6Åë,nbü;QxñÏR:(/Âê6lîÂÓýS?v§Nêõ};…TÕõ¡tã¼qA÷øÇÐÕÇ”¨ožP<Ø]gèê›ì }àêì9¾P;PÝG;ƒØÖsð¼ð|Žž/CÁä.P]Pºz´¤×Òä~é%Ю3~yñó±¹Ð©Úqºôöº£¿ð@u´ÔßF ÎuPÞr×ĬCñúÜ€îãީǵÐ;란võð:CŸõç º/Z»ð,n¿ò6¼.Èà‡úp‚×õÙ~Cñëõ°¢Ó’÷²Æå>ÇñÄ)P_‰úAŒ+ѨÏý׃èeÁ©L&ÑN:»”ÛØîÕ5ÈuÆ?L'ÞfŪúC‘qXÛ÷YìNçÇÖð¸¡(º¡‡š[‚¶£;¬ý}¶Óýá‰uVNã±4ðª[i^R×äñDº0³=…õåÇRŸQçïå…­ õ‘ßž]Hÿý‹'ÅH}ºà+u@Yz®Ý•ÉwK”%¨çâ[W¤™ Ÿ_û³íºf]ÏÆ»£íº²Žw%ìšM¼·5íJª„º¦ ] Åß‚¶´ÀéZ½tmÔµ¹Ð[Ж–7]ƒRÿ{­pJÍî»–]ƒÊ[6õÎM×üºk Л ò½i«›Þ, ò5mXÚÉØÚ(ƒn+½û“û[Ÿ‡­:Ú¦h¶®$}Z¢ †ò¤h9þ³[ÒŸ]TM;¿öÅ'ªfí³3’ ¡¿E2ÔÕÙ“õ¬Ó$›‘´|­ó×8C2БܦV:9ë!ÍÃ÷ÊEW ?1Á¬ŸÛsÚ鿇›¾?;rƒzãi£½ôÏåmzãiC>]Å[J§Ž'AõÂ)ùbô„®·¡Ds›þRø‘Àh©Qñ—$‚û€|ŠÉÞVG@OŸÇÑ{胇hð Ï“0­/>‘y›ô™ŽòÚû "ào8FJ›ídý²¶ç?1zH®Ïˆ§;â(ùÄèé-í<ŠJ› ¢)D¢Vè5Hà(Ak4ò1?íšóéý—êÔ ·_’|PÝYìd}ÜüðèóÒç|’Šubø\߸O=UŸOçªbo]Rµ“õ80<‘2N—žä«G/ÖË©_ŽZ/½F-pPé©äô×µÈ7ŽÞO µN$~. äc ¢Z½Å¼ôy çO#Ñ?k×?OI°òðb!¬ÏÁ}IE:1z¾Ð’Š|éù†|JHÿéåÔ¯ùB7É×~´öEæFБ¨õA><½ä¶îÈ< ŸÆï<¼Xò6ï= }S½p¢>žÃÏUnR8ÚX,†@ ƒþ©ë˜–=öäøû†ˆì¹Îˆ¸¦Z>fÆ“T.½áûâèvºôz Ÿº¦S0Èw“0þ@æ†ü昽ù-mp_îf+GkƒÑÒ/Xì†pSŸzËX“?þ`~;X]h$èÅþì{ lãù\f8æÎ´?ˆÝEIJ•Îr!ÝÀm“@ó=·UøÛy˜ã¨EŠúÃ+”N|*ñ Ò­n³NÍâ6]¨¯ù ©ÑC3ÆÛ¡£÷ÓÀ0®û>CüÖ©úá€Ö)³èÑY=K $ßèˆ*.Íœ§$ÆGCpe$±!<7çó6Û›î©4>âz¾t õÄÜžÕS öøÚN˜Ÿo-}Ã<$æà,üm:'i\ú80p»1ídýp<Ö®O'Í£»*7iÆ×ù…ì¹jÙœn,;Yÿè…:‰ñÕ!U098݇CwÿŽ­ƒè¢~½ôÍñH*ŠœïNG}œ¨3ÖÇùÐâ2ü—ã©Wø ®ñ±A×ß`nÓ?9-Ü?F ûÞN˜ ký†ìAç&ƒ¤šó~=Âqúœ§KljþC¢*œD‡§w¸ÞÖr_CRá[óÜ]¹ $ÑÒ¥·Ñ)¿‘<ç»­ãÁù²G}Nó™¿!{Ð9ÅOK:õ1PËtŽu°n½~Íë09lÝ0°Ýz D¬ Ïó…TOKôŸ"Tôù&‚ÀºîWƒÎÕSŸ:ŠýйþéÔ“¬þæ©Oñ…äæfš‡ŽõM÷pêÉf<Ç8œÝ-åO&'ƒ†6$`]p¾üÁé@tSÃåtÈiXóGçŽî‡¤såÐ=uM®—¾é–â–h$8^0¹°.êwÜÿ6݃Îmú'iàté#`ˆ.ts([çAtôÄ::L:‡•úxN?Çøõ¨ §SØ{ž~Ž`®˜—Tpý)k¨>ÏÍù‚Ó˜kÇŠ{¥â¥×ƒøh³áô×oð‡õãt‘_T©0ôùHýÀ¾8Îu†gÀ¾q8 R'ê!m„7™Núþ9ËÊŽÛ3äa„ï¿Ð9ÀÜG]Çã[èŽÑ b7)·¾9ݬ[ Ï›ã•CçÔÕî>¾mÑm„G›¿œÏà|Ôù8ßÇñH"JýÐÃ0Žç N7c|«þœÏºaÞTê:èÞ‡íÎs ör5ÊãHÉRv#’€z‡íeþÈ+w<ÅŠøüêÓõñ|‹áª0EˆïõêpÍ-"­ó”ed$þ\«Z‹!ß~N¡?.prR3rëÛå#¹¢ëSè"ç@7…úô¦,ÄOQa²&8g¶ÓßU»Í½R?xo^Û½6“&$f5Ÿ2’ ^JU¯®ô]–'?-¬]I»†Þk?aë®*VÆÑùa#p±Í.E%´P¹³ºdueÁz}h;”fCWî«®TWã±n&[›­]¹­ºX v2yHÝ•±ªëº‘A_ùxÕ箌T] ¨yÉ•ø4¿´­KBÙûò§‚'» C/MŒDÞD}RÑœMQ¯W[kc³…†¤‰7J'vd°‹#™ëõpÜ‹GèAø6ÜkáNBÐpòÓ‚ nLˆ“=­¯à~Xi®¹%×w<%1LÝ:ëŠ÷¬OPùK‡"åK/7ò£²‚ÎÁLóêC¯—¾‘ ܬ Go§þæzäõžÖ?p¯Ÿú§ÑIþ‰ðÐwо‚~1<×¥o$á#W¨·d¾àžõlIE:pÝU5¸MV%à_ù%ˆêšEñÁÁnž‹ÂwбiŸ¶Ó±´â¥o8÷ÓN6r·¾i^è42pºô~¸à<ºûïäüׯN­àzOèË+„ …ëp½$)]ú¡…uc¾Ðÿ  dX$•_=hàÆ|¡ûúŠÀ¨ ×[NîŸÙ‘a—Ô/}ÜÈP)S­üÛ! Néÿ„ ¤k(Ü'8ÐHPwHë^AìÀƒ’ _+ä·¹ )'VÀçU‚æ)†]ÖCÓ¥çéɉ¢¸·R;Áõ4÷ÁA$œ¨Ü[éŸ0AmƳ›ûàÞ‡ôùõнY¹^ Cz…Nøô ònŒ¨çtòütªæÿðóÆáé™öÉš£¹ÐÃ׋èÀWð“ZÓÀzt¤ú¯^>–'‰Â„BÂâàiÑYHWDJñ ƒÅų ùHýDpëý¦zd!]ŽTÖç–B§È8J‚R¨ù]ÀCê§`€±s¯ ÂÀϼN¹G?=G­Î=U#¹Gon[©PC lç.+„ÃñÈBЧ“ÙΑ€tîû[~øœÉáD#x.’Ð1L¬À¹Cø¢êη žw´Þ†yàœº¦>ŸžS:ëTeôÃà\.<©Ÿqºô˜8GRïx½­ùfud!õŽ®éÈGzô|¸_Þõ­»¸ ¸ µZ>°ªp9YHW }s9r†-ÕK¯ÁåpÓEnR\.ôD›—ÞœS×1ˆy| ëL¼ }H­Íå^‰ñËúb¬¹— Ï |;*/ªìƒ˜#Y€süÎé 9™€©¯µzù‚ôhÉÿ~Z÷v¤Þ2Ak .¦Sœ­CãH€„®G#ˉZ¡Ï t«ÿCèB¢9tŸ{÷›Aè´u^Ž„ š—nHÚë_ý¹áÜb8ók$ 9¤ÅÐ7>èë«ÕÀxÿ>Ïzé%ðn1n}#¹ÐëÑû¥pOçϘfÝH®íø¼ÅÒƒñÑë/>ª q±Óòú"ÜscÀÅ 7¿H<àÝæ~H*Ò¥o®œÓÎOyy}Ötàžº†Apë;4kÀ=uB#¹vàží_½8×îþãúâ …u¤ñ¯¾cö&÷W?¡ø¸\èœÿ¤M¬çp¿pŽÌ¡±Ã4ŽÌ¡üÓy‡KÔÚñyì–×ä †Ó\9‘|¡ïø<à‰DWŒ¶– tdØy‡ž•RÀ?Ìýcš§[ýÀ—þÃêØg­qÖ`ëè_$Hî°ÀBÒнl®§ ƒÐË‘ò¬uk>:R¾ôð.<ÓÑË¥çƒùª¤zéíÀ¹À€[o—^?.‡¤âB:Ò8:\m„ÄêŠ^ª(Þ ûãrXwsèëÒe#7΂æßï¦qE/d„Sý}s=aº¢w3äþ+‡Û•㔎“:©(ihyR9,oü›­ºµ ár›ÔÚ3â-7&¤%€c?º …ñ2pßÍuK¼,ïsÒîßbyþ÷Õï¡%%€ðB³ë ÿûêßF-}êêÉdê÷§?XÍm'Ÿ _Îdnóç‚UýnéÙµÕ&×D×ùçOǽPÇðYýSš=i$ë­Ö¢l£:§Ž„GWÜðPr9U­‚ºÎ.‡;¨În'ôAÊ8^LÕ[¿ÅÙ¢‡Þ?¼dªlx… ¥Ñ&êãÞá_ZÇs]ÇÄdµ’†'ƒ!oWNmþ—tü„Êc÷ÌÆAѰy¨ãxÈ1{ŽT­ Ëùb²NEÔ }mñãfm,H`> S¸‹]µ\€P’ “Géf‡´‰^¼E‰!€ððÈ"b»õX ,¤&UKÅ[m›â¤-„¶®Þõ#d³E(ÍfEØ÷W‡ò˜ ª'%½À ësؠοÚÉzr-cÁ‘?=¢?lH¡Sg”D/O ƒ=£‘zÂêZ› R§QÑõðÙâø(äŒÁÃwqé#(¡Ø $ÿD+®IÅâßgD…Ý” ¦ Á‚`ÈϮc@z @(vXFÙ­g×/O iSF__&ŠÍÖò´z)—^ìvz ÷‰â¸(dÑAÿè=¡6ð~¥“õD0t$;]ú J¸¸73ÞúU`à'tKåév¢~Ýúâ¶Ï½¹'œŽD1Payº¬o€¸Xûpof€õgq3îõf£Ú‰¿/k(Ëš'Pá+¸LLjHý_½ \Ü»ý¼À ¢¸ŽŽd§¿âh¶˜ž£»Z°CÞb|€1qü#…5bŸýûdí¥1{Ä=SñÒ³±`y†Ù Nn¿†5Ø` Txƃq¾ŸÜ?íªª$ýèÁ%£1ÄÒö y°a v¸=Ýýˆ:õi¶¸õ0ÀvxŠbv¨þñ"¸‰#XPÒ­— †@½\œ pÁv<‘*Nü<‘N0B Éwÿ"žH§Kßaƒ‹[0H‡hÁ!‚¡#ÙéÓ$‡±áÖ×dèúf‹I…ûÇÖlppé1Üm½"˜O}Š„5°áa’T€•/°º¥ò0ÈÅø9ú/{T×0H®ö Š,ϲӥo¬¸¸µ2H®1\A CG²Ó§— KbdSY‰Á”v¸)¤CøÒ©šÍ‹â+‹·äÞÖ|Øb•d'ë›8‚… ‹¢/åô÷Á~t$;]:†nɼ0a|îA Å‹^Ä.±yQXG`A¡Â¢°åd}ý`ÇFÿ,œèŸ†›=¶/p‡Ê3ÙF6@„ ÂñTÕ¢w·‹·äÞzþ°àÑÝ?¶–Ã’ ÷Ï  F} __kcÃC!‹^oúôDpcGI'®oÝKIkžÃz„ZŠú+P¡xbI~€D1öHs*üöÈG„b‡EŸžƒ †Žd§_@xØãÖËŒ7vlH*ê/€ÜXPR»ôæZP¢UºÈáŒ7vœÇ)ôÀ†EÑ…`Â]³C¶¼‹úôÏ ©`¶¨Û­">äd÷DU° aè~€òÁЩO‘/=%TÊóW*Gž8A$š{?¹Ò‡ ):’ŠvôhÄXIEÄîZ›¢ÓÈ8€ñÆŽ IÅ×ÏÜ÷ ÙúÇ Ë!}ê$/2Ø3\Òæ:uF­·ƒöÚ©ŠÞ¶¾©_~—éXD@í ©IO¡[ =±à(ý‹„ßIðt}hpÝ/Å 8S½ ©ú~ʹúA¼'ª*5iè'bp£A g¡ç­ïFJð=¥&ýôjÒ·uêWœ.½8vÐ|OùIåôwS»­×£÷KØAó;%1} _?;vp£¿‰¤Â×÷ßiªwêãäþÛÔnóAKoá(® ‚þ„îTø&j~—nI…û'€ÝñD*ÿêùð½zt÷ÏŽܰ!©ðõgê×ß³¤¢_z;ün ©pÿÙÚÿ›H*Ü› ¿kt NÑ~›ÿuÎ_N^D*É3ßÓáo‘6$¤ÖæIE@¼ ‚ð;ó½œq*ÖË¡‚ó$©¨þ Á†¤¢ýBB‘<ó=žeGi…µ~7TŒ¿~¬ÝèÎPÁâotý¢Aº'OR4¾årÐݳæˆò2µKv¢¾Iaö"#tS¿à{<€:z>¤0B ·îþ»Ð]9õë¿z¹ù]èî?[?ôבTÄ344ßÓsª’½Èê7nIżôñ¡;$¿¯ðô*œn]]W?ˆžæzР!á&yÙ‹ˆ våCƒH*Ê¥çÃïÔ5 b[o¦z[Wÿ3Æ"Ãz=ü®ÝýgkÄšïe±­ø~§Sg«ž$jT#jè#H w G¢ÖOhˆ—ãqšF52ªÉ{v›Ö3“)tø`fôCŽÐ#vÐ|/t_¦~åèHå_=~§®ë¾þ6Ü$O]Ç ØO!|ï⃙AÐ9B§Â°ÓÛ/>÷ÃÿÔuŒ_=ô ‚ð;ó½Ì è(/S¿ô]UýäPÁÍïÒÖý#¬¦~Áï2Ã¥aM&yæw™AŽE„yTwìàiÄ× ø O2 ùÔ~Èè¯ôGô€xã ½|/3È9JkG 4Èùã47Äi£Á…¤"¢Ÿ‹ Ý!½…£¸NáF IE@¼ü‹öò¥—_4¨þc›ž_s/EH#0=9¹~ ª—á3ëî¿ho{ZRÑ/ÝÔÏO’ ÷Ÿ©:„AÌNÿ£ú3ßË ’3úom>Xç•ÌøzD n4¨Eˆu?Ä8TÐü//ó=} ˆWLÁ÷ò*—^ƒêeFÂU¢~@¾1(©…S@B÷ß§þúñtÿEÄ  ëxQ48Oý‰ûÖ©°ùŸúAÌ9Â:¿{‹Â èõÉbÁËý÷ðA%5•Ó¥?¶BòÄïôÕýcjWB*φ€Åë‹Ð?þW‘TÄ«§~ ¾§¨oáó·µ^8O’о!à’ƾ«Îà{JjZJŒîÀy[÷C oä3ݱƒ§ô’>ê§³NÎ{¬§htGRÓÀy¾>W"m>¨þñCŽ1µ“µž–BoC*ñ¼µ¸ù] =tŽ Ýý³c7úH*Ü?›ÚáY ƒXû}â’ž âo=ntWrð;ôÝÜ-å {ÞÚèD º+96=¾iT+Lò.†ŽDÕîŽî –çýÁô”ÞôÓû‘zÔWRÓâ­Ç?HxA-ÞzüD žúºt2E@ÂMí°F#è¾þ4´•ò|h0˜^èH®_v(!ïI»èÏa‚xö,ÅA¦~åè–T”KχêüK½ôàw¥0Ó;¸Ð[“_T¨Ì¦öLÃýÃ]Ó讟–p—~Gšï…®]‰ ›Ûž(BIÿç;…å6¾Å‰ªx>)úoE# ½RŸ/ž½:4 ’¨þ©üÐaaº¨1¯8È ªWˆºÊå‰[‡å!áDUíTT¼5¹Y^!êeÇ J¢á¿-Q!Ð^ ÒWªû7‚ö”µ”Xäù‹’Šù( wêSDÿ¨BÛú„¦•v¸ß6è¬[Š–Ê þ·% uGsÿ Wš­‡?T_µúQÃðôËÚ–¢~;°¾WËú6éÛü¯>ˆÒWé–+ZŸDÜ:}2Ýþ=ÿóÖäÖ#ÑÜÿè6ÚC ¿Â€È¨Y?þ×7Ü(z ½èúãH3ªF_ÿÛp‚êÆ7ù ןQ5øà ¾Wúo ©^a~è–ÜÕÊØhw;Åø¨  ‡S4r‚·žÃ Ú+ãùùsAu#ƒüB¯òµ$|šû—µˆ zbôŸ @êúã'І‚:ë1‚m0Ìœúú ´!€ N}>?A€6T'ÌôhCAuâü ´!€ ºn–Ÿ @¨úôzø!û•ûþуÿm*H[@{eÚÉú8Ô°Ú Ýã_Ÿ‡R,$ÿúüf@¾Â 8?>ˆSaT½°ˆ1_)Ðv¾cÕ’õN¹\ñ›ï½R §¨AÀ¿ÍòʪW8 ëœú5€`Y_|_ÝüÏ, ãCï"úúØ0*Žÿ±—üp}Ný”´ù¡%DZƒþXN¬_¾g½°tñ>õÏáƒèÔí)…êÖµ{’ ;ô/Ú4ß³•ZöªÜ ]B/6NíF‡:«%€`„öàÞŒiúAƒSÒ§¾w¡CåQ-NÁ*Œ§Ïë ý;ÌÃ÷”SÕNÑÜ ´D#Â@‡ê³R€¿ ~´â6? ¾švŸS° ãés RR9|) a ô‡gMþ}ŽJê—>øÕ4n~èmÐ/`ú þW½þ¸€aß|OiU·®Ä©6ìпÍãùî j¨¡MÉTUÑzà§dª–¦KÏúúSZÕâÍšŠR¨Úz9ÏA,F{ýF‡J«Zj<ç^ U9è0ô~é=Bÿ@J¦úéãÔŸþ”Vµx³¥jÔªyCBoƒþZ2:Ôøå͘ô¿Õ?%}á€æwꋲ%ª^A€æ{Ê£j'‰ ?÷Àf”Ã÷Jð½ããÀɆƒ Û´@P½ÂLï ´!€ z¥ŒŸ @³<åLµD#&}¬-j«åùÅõ°1T¯±ÜÈÏ´ª;ô/ø_õúcüõ«5Ÿ–Bê·¥¤¯z|èᤫ¥Özø¡¯¿Ü.ˆh´‡S «õ·©à@Ráë+À¯Ú«Œ©žßÐ?Wͺ*ƒ ×;àoSA_Ê„~ô²Ñh¯¶ç4âõsÙQAÕÍžô/|×ú¯zý@°~ÔIE¹ô|´WI=¿ kÐ>ø^e$õü.€Þý«­ŸFn}SAÐ_e¸‹ ,[7ý…ý3O­诶µƒüü™ZP¿ÚŸŸ Àðõ|5Æ·º_…Úêü=¿Û¢*|¯ú%ð‡á AYÕÍÿ*èÅhPÞOŸ*‹£AwÿÔà2DUøž÷C::T'FVÝÀ¯öƒ¹ÝöâD-p_e¾?´t ¢:¾B}ëaH_èhO‚çÇÕê°á@BG º~‰ P½ÊøfÒçûïøÐ`;Áý×ú†ê„ÑOKžÿ¥Í÷BÚuê?A€»þD‚ôYàg¾Gs•1s||§Êø8"nþW¡*ù'–êtÿ1Ú)tx‚öRÔSÇýÃX8ËA{ícŠ'Èà:ßÃð¡CH_ð=¨^ãX{@>ï—d †Ò¾?L¾Ãa~%î¿ã‡ÿEUuø!T¯2H.ÇÒ>ë“’¾Ð?О÷_°¼#ÑÈÿèå Au ó;??þ€^][ÚñÒ[@>œ‚ßuŸ?Ÿ¨¾K sâqýAbbüâÖy !8¯1ÆK;àÏÖölˆwêï¨?e<Ý:üÎë7 ]íùÐ]ŽúÞÉü §¨Zõ5ø^;°ÉJafø÷Q»-Q~ç­Ë¯€?¨]cürKæºÚ3ÝáNèHTýBÿ`z-žohèjLòÌÿÖi‰ è-mˆWÌO`uax‚ß)ã©<ݾº&mt÷ABo]n)¨_=|Oýçù[Äòm¾§´§’hØú†|) §~éíæwʈZ¼5¹Ñ’RœÊz˜aÄÿ­ j?£íüî '¥@-AáÐüdÇúEUpNÍãÀ'SAdÊZ¼_щõ‹ª ;åA} ?X¿€xQ§øžQ_äç¡oêÉSÔ·ø~·q¡Ò¢–æñ/ôÍÿÀyʈZ¼ßQÄòY“NÂ)øÝs£AÐÒ¢–æõEÄò=Qˆ§Ü©o‘ÿûÐ OÛ½…û/bý¢*8O;#½…û/ÕÃsà<ívôî¿ÔÔ©ƒcÆ­o§j0½ü% ‚óZAwÿ¥y£Ap^+8¹ÿÒºÑ 8¯œÜù¹Ñ 8O[½?÷_N7ç5I¯Ým4ÎkŒo~~±|9H^ÔÇÉý—ë‹FºÆ˜i¾üQÁ ~ I…¯¿`ýu$î¿ý $î¿<©àDRáþËëPÁuêãäþãÖÉÒÁhÐÒ[D|U9Ôû¯FºÆøµõþÉ ÝýW>þ·Ñ]cLÜz9p“¼Æ ñW¥¾Wâ…þ¿ûHac¤lÿC§*èN4½Eð½ù '’Šyøß‚Áï”Eõ-‚ï=7$¬Üd${ð»Ø=»¾FºæõE¿N®Ï ö£§@w¼Æ æù_¿ztªVœ.½Ü$¯1ˆyýºÃ¤°Ýóo­_QÑRèHÔÚQÁ÷¼E’Rë¤Öá8AòÆõ×á8…„§®¯ñÅ÷áÔF:äÃïc• % àÍáw Ã]›ÇíŽÿka'øŸÎßë‡6Ú€ýæ{ÍÏw¬_Ôâ5Á­Ïpj }@óÁytjõS×1z}µòm*¸u¯¬§õ¿k ’Óýgà—nIE¾ôt `ARáþ1°«7$lL½~ø€à‡îƒ¤ùKXwÔ_åÖÊ éõè º%þýøÍãiIżôqó»Æ çç;Ö/H-)©jñfê;–o£A ^c&¸‚ßåuêð“rë;à/¤L¯­/¾ï†„IEð½ö ’Šö÷¡»ÍÿÀyJšúéã@Bõ Ë 7|oü…´™ž7[t7lˆF`z-žoÌðÉ‹ªï×îç°º jw$I*ÒÑ]õð;%U-Ýë‹ëUxÊ—ºuX]>~·!a÷KnHþš¾¶ãÙ¬·üøú‘<óQ hJ•j‰F‚äu×øM}=$Ï×'†~ôÊ ~—}}b *h¯§ßø?£; HFƒîzðãµ£þzÚ|~×ãùEÄúa8hPýçZ_Ô_Oå ?õ©×_Ô_‡Ôý©'ÍAw8uÆ7£?Xðãõ×Õ5ÜyŸ¤ëµ€xʬZzŒëw¨ßBRáõ[Äúax Ð cf<¿X¿¨ Äé{ýÀn£A žò©–ñUv9ªñ”YµxŸ¤ ìJTâ)³ê[øù÷Ó> OIU‹÷3ßÀ®EU žR©¾…×·ëUxʧúæ/ëü®ƒcú­¯éŸuœÌï5´õA€vÇ)ø UxöÔ?ñü—¥—ž¹Î æ6“ëT°H¨þ‰ç·,-Òæàÿƒê)_ª¬)¼ôÔ~ž¾þ‚Õ½†ÊY¯ã9?ZÌÿx´¦1Ïû™Úì:ƒœ›Ë—žâ)AªùßÑk@>¤h ½^z tÉ댄[ß/tZê8]z»ù]gLôúdÇúÄëŒd“úÁ7° iDïwnV×ÛóQÁÀy¡#ðÛ$¯‘#¾ ì€?ZªŒtŒ^_ë+7쌿Â]sÕ Jª—Þ‚Úu ²Ý N—^Î1÷Ã÷v¬Þ Ñ{į”Íÿ¾ø=pßÑg@ÀÞ6úS¾Õâ}’¶>ƒïõ¶=ƒïa >h¯YêsôÍòB¢ôñ-Ö7òuÉ­oê‡5 ¢ºÃëz%ø^giâFʉïÃ)$ ¸ŸÀò:h¹n÷Þ 9¿Þ£BDõmæçýÐw,ߦ‚ñAÔã›ãûD÷uFÒþñAC r>ãFÜ¿cóC<ûHÿßë •ö¡?Zúø NÕ~ÿãz}Øz˜á­×Ðr`î?î¥ã'0šóï»mô‡Uñô>H[§‘¯CZ¼>†åuÐJÛÍ…ŽD-£C¹ùÅ÷ÁòúÜVóC“¾ÐÕs;QÈçýÒ-T'0Ò]ñ°¼>·DsA =?d-b È×/ÜÏ÷Ö"‚ꄹ!a‰ë“±ln‰FvL ëÕ?sCBï—nƒ £Þ\›ôÅý—µˆ :iíø¾ˆÿÃ@PÄ iÒ÷XOª'W>¤Ïý°1T'1Rã@ëåAõ$#¥!Ÿûµ«†> ‹IŸûom4Õë«Òçßïêª')MúÜAõ$zÒÿŒUkK4bÒçû/RÁ·ãÛ4”Ž!€`ÖׯxýŒ!€`Ñ×|H_²ž¬úZ)ÌÖË‚M_kà¾âõ3†‚|m¿ñ}í¿ñN}'¾¯[.}'¾oXŸjüLM §õu€ ú/=_$àoüh§ö÷«û'm`øEÂÿ†ÇÇ/þo0ôñüDcÚH_|_PCõ_ª§~è›ú…TƒïôñÁ †ê?ÐŒ[òïW÷J%9ÝR?¤Ï|K£–ò›Ú‰F }ˆD# =óÃNwx~ó|ÔOý—ŸÓæ:|'K}ó¿χ ôJxø[Ê—ž¬H*üü÷CøhOéP‹·PßÖúQ=$^ÿ>ðkû”õ->>Ô°äS:Ô·ðúâ™7DÔ¦I’Tøù/ëßgóA Ÿr¢o¡~…þQȧL¨ïðñéF‡>¥C}‹à{›êmjˆ¤"_úæƒ@>%F-Þ%Éh/¤¸t¨ÞB}S½ÍµU’$î¿Ô?`|OéPˈç»i£¿M ‘TŒK7ÚS:Ôâ-Ö·un489uõ_Ä¿œø¿ ‚œºñó‘ëw¨`FRáþ;QA ’Šˆïû¨_´G¦To¡~ÅÿlH*Üyó¿ ‚I…û/Ô¯Ú#Iª·X?±~‡ N$ù_PANF">rê7í FÒXŸ”þ‚ rêj$â« ôžC3’ ÷ß ý£*ho0’¶/¾ïC‡ ½Áøñ-¥~Àª‡¤â‹ï jXý ÆÏöÅ÷ðkù㟟Ðû¨áDRñÅ÷}è´7IÛß·a =r¦z‹õMס‚œº‰ç#uó¿ ‚I…û¯æC S ¿Áø×ƒÿ}À/žßÚû¨aCRáþ«í†ˆ@¾Á Úƒÿõ‚ûƒh<©ã Cu§‘Ð7ÿ ióó.I'Ö/êùƒhøµçF‡@¾Á ¹õt£C ŸõˆiùC5Æ„¾©_H9HŸwIÚ@oóA ŸÒ¡ï²´^ ¾U)Ü­À0ÐÞ`ù·Ö1>j¤ïè꫱¨Çÿ!fÎzmÒ·õ ê¬çG=¿ƒµªf:¤/ôt€ ÎzæCú<¿aib ¨³žå>Ïÿ 6‚:ëYéóü¥‰ _Û!}žÿl Õ+sGúE| †‚ꤹ#ý">UáƒÁÕ§ÕWHäG¥˜Ÿ÷A7Ë»Ð!·NQ?ï ¢®xrpbèAõR8Q¾7_Õ¹W..üâá{cm'ª‚ûj\Ÿcó?œh¾ç]’̃ú©ÿÖצ×eó½v±‚n=êO¤Ãÿ>´÷AÄÁ éç' wüßd|d$¬_üßÇ'ƒœ†3ï“^”Út[?thÒçú›úQK$í:Åõ1”ƒöÚGÿú‚ýè¸7*º~Ço¾Õ#ÉiX{@¾éø,€^>t¸ôuº}¾#a~=îÏkó?S=WUáøúBõ”éT¤öÓ†hô'Áý,ïH4ò?:†ÒÆ}n¿…ôÅÿßóøxÐ!÷àwÝõý9 ÞØ[èœë¼#©Ó}ݱ~Aý€xÊiZ¼ºÑÑ F5å4µõ1úÛñd:íÁOX?˜ªÉÜRvýrÐ߇öÔS^_|3×h~ç}ÎîpšyóA˜ž÷9ßÔ®µ›@×÷ýAC×̇ß=Ÿ“û/Ϩ µ 4¨>Í_|Ÿž†.’œF›¡§M5ˆ…®úñ|CãÛ,ù想üÃÿ z ;¥3µ{ð? þêÁ…ê.¯/¾€¿Î æFÚ¯hpó;%6-Þ%Éè.¬#$HÞáƒó†„ð»ð4ßK;à ’Èyõ×áâáIL#–oCB [%yŸóî6ÿç‘étÖ|øß ’Šb½þBФ¢þ}±|›ÿóÈt:kð» aGRáëÏèn“@p™NätÇòmþÎ#ç©÷AtwABº'÷_yn4Î#Ýéôú"ÐÝFƒà<ŸN¯/Ým4Î#ñéôú"ÐÝFƒà<’œN¯/Ým4Î#ñéôøèn£Ap9O§Ç¿@w ‚óH|:=~ºÛ$œG&ÔéõEÄòm4Ä›ŒÁ—輄 8$ 3Æ¿úÜhœGÔü¸¦‚óȉùMÝm4ΛŒo1þÝm4Î# êôü-ÐÝFƒà<’ NÏßÝm4Î#ê ~\ûÁy¤C_UÇÁy¤C=øç¼Ñ 8t¨Óë £»ƒÁydB^?Ø4Ä#ê4?Þ±~QœGNÔéñ+€ÝFƒ@<’ NÏßv¬_TÜZ3=Û±~QˆG:ÔéõEÄòÕ¨:¸Ý2>ÆøÕúxäD#øÝø€`@<’ ÎàÇmÞhœGÔi~ìX¾ Ò58¹ÿúó ¹õj¤›æÇ°º ƒß‘ Õ»¤ŸX¿¨ º#ªwI?±~QtGNÔi~¼cýõ«H*Üëw¨_CRáþëýPÁèŽL¨Þ%}S»~¨ß@RáþƒÚ™ ö@w¤C^_˜Ú™ Ž@w¤Cõ&FAíLg ;2¡zu» ‚+Ð9QgÌïð@+ÜDÍ÷žÃ÷ÈoŠÓ üÏóc¼U¿+‡ÿyþË€Z1¿«‡ÿyþ·¶è.ø`=|ü¦8í¨¿Ãÿ†õN_ü_ð?÷_Äúê·Núü¦;ó;óÁ[OÇi£¿ y^ߪ*NP;ÒÉK®Ÿð+úú‘<¯o5´‘߉F‚äy}«¡$§8ÑH¼êöÛ~|ýHž×·ÚHrŠDsAò¼¾ÕÐF~Sœh$âû†ÛŸø-}=$Ï×'? r¤65Éóõ «#É)É£ÿø©ÿÒGòÌ4´‘Ú‰æ‚ä¹ÿ4´‘ä' ’WÜ~=ÀO˜>’çþcT3ðãë?ñø©ÓGòºõq€Ÿ:1m’×âù††6²š"Ñ$/â‘ ü4ȑߒñø©óGòÜŒj~ê¿ü‘<_Œj~êÄüOü†~êÄü‘<÷£šŸú/$ÏýǨfàÇר_€!€Ÿú/_á€ÖGT…Ú‘äÔ$Ïù 0PUÛò›šäyý‹ÁÀOƒùMMòüþªj;£Â&Hð»îõ/ªºKAò¼Kú¦v6D#ð»åñ`‡ùO© ¿[_ejgÃAêIAýl8è ~7‰L¨þÔ“ÿ"–oD-p™N¾nHÎ#çéòøhtÇõÉHV.ôøèn£Apž=½þt·Ñ 8œ¨Þ%}£»ÁydBõ.éÝm4Î#'ªwIßèn£Ap9Q—×î6ç‘ Õ»¤Ý}hœGNÔü… ÎhP½ÆH6o}4H'­ã4N|NH4žFÞ%};úSÿ´/¾ÏTP£éN£¾¿-ôW.TÿxýÀnó? IP½Kº0>ïп†ŽèïC{î?–‚ã4‡>ÿƒê‘ä”L¨›^úˆº#ÝéŠø–º©IN‘ÂóÓ]«?ñÀy+âWÌúrHdBæò¥§€x$9…ÿ½äCŠ–Ð륗@w<2}C¾Ði©ãtéíæw$9]ߣ ¼Ü„YZ<Ô>¸]H#êxu³:ò›n*8/t¤~›ä‘ó´ÇõÙvÀ-MF:Æ¿à+ió»†îëµlª”T/½j·ùéNWÄ·´Íÿ°‚þÀy+ž_D¬Þ‘¨Š>.½Ÿø¾¸ïè3 ™PiIéRk*·>ƒê‘Ïà{ 5È‘Ü:,/¨aÝ-yþ÷QC ¸œ©ÞE}½õ|dJ]žÿÐ+Á÷H‡„¾©_H:ðùÅ÷m`hœ©+âïûø€aà>Ò¥®ßú¼Ñád¤cø{mˆß# jè°<¶Fímtˆ“uëÚNæƒÃ$þØ0ˆŽ| ¢Î?žŒrCDmgTH—ê]Ô/jT°!©ðõ¬0ø |t©+žoŒþB§~ÿWïÁ÷H‚ ßó.ìfy$A…ï¡Gsžß¬ƒ¹«®C½>Æ@0ýWÉ„jÒ‡nCÁ¬¯é ´ž,úš¿p@ëùÁª¯å¾l½ Øôµ~á€Öë‚|m‡ôÕ¿m 8ôµÒ׬÷§¾Ž/Ðú8@péëܤëÓÁwÔ«$A5éãú³!€ ú©á2DgÔ3Tÿ1Hšô¹ÿ6‚ê?&‰&}î?€ úáÒ¤Ïý°1Tÿ1Ršô¹ÿ6‚|m‡ô¹ÿ6‚ê¿Ôésÿl ÕŒ”&}î?€ úéâ2´>7ìê?¦‹h} ¨þc&ø¢l ÕÌMúÜAõ3A“>÷£ž ú™ IŸû`c ¨þc&hÒçþcÀ3äk;¤ÏýǨg ¨þËý>÷£ž ú™ IŸûQÏ@PýÇLð1´>7ê?–#q õu€ ú¯ìH¿ñ¸ÿ6‚ê?f‚&}î?€ ú¯äCúÜŒz‚ê¿RésÿñÀÄ@PýWê!}î¿Räk;¤ÏüF÷Jå7µ Òg~3Ôk%œŒw8 Ûªÿ˜F8 õ¹àTÿ•µI_rÿ1ôªÿêŽôsüŸ Áà{ùÞ+˜ä|¨a2Ú“¤Âü —C ³Ñž$æ/¹jXŒö$©ðü:·C «Ñž$æ/¹jØŒö$©0ÉãPÃn´'I…ùAž‡£=I*Ÿ‘ס†ÓhO’ ó—òj¸Lú$½…çwÔŸë3’zý˃ï…gBRáþãúZõxf$åÒKP=‘>I*Ü\U«½"©h—Þ‚ê‰ôIRáþ+ýÔF{’T¸ÿlÕCRáþ+ð›&}’T¬øžÑ!õUô›ÿm>(Ü'I…û¯æ#%C>I*‚ÿ• òIRQþ¾X¾…û$©¨‡Þ±#©þ÷DH*úáƒ:b>xCDNFÜuý@ÄÄ©ÓHð¿çF‡Â}’ÞÂó»ˆåÛèPO’Šàù"$ùðÁ ÷IRQþ¾X¾"6$î¿Ö~!bGRáþkýF‡Â}’T¸ÿڸѡ Ÿ$Áÿæ…û$©˜‡~èP¸O’ ÷_~ bæÔÕHðçžnt(Ü'I…û¯ç ÷IRáþëåF‡Â}’T¸ÿz½Ñ¡pŸ$î¿Þnt(Ü'I…û¯÷ ÷IRáþëã C5K 7zð¿- 3¿úD|}_7:Âý7ž ÷Iz óçz òÕ‡A.øtѹ®|Ð^ÚÄüo}h°t¨ó÷ú#€lH(ÒW½Éùz5ø^T¥pÿþC¨’Š~ô@ƒÃèO’ _Á äÔç¥ú«¤6=ü°zôZÚ«¤;5ôç‚Y_Ó!}¡§‹¾æCú’õ|€`Õ×rH_¶^lúZé+Öë‚|m‡ôÕ¿m ¨Uÿ³cþ†×N} ‡×Ø$ÉhÏüpIpÿÌ ~•L¨ A‘¾÷«¯¿õü ÃFÿ©~ðgÝ+Ix äÛèðèAõR8±]’ø^ü¦ÚШ*«i%+jàÂ/>P|¯*õ)NFƒ;ððAp¢9ø^ü¦°À ~ê¿ôµú0úÛRÔ©‘ß4tªâ4òßûÐÞˆUùOkä?ý€¡¨^U~SôÍÿí?¬d:ÕvGÕ› W¥6ÝÖšô¹þ¦~l’¤­v__C9h¯}$ñ¯ ØŽ{£¢ëw.txó=Q½J~Ó°vC>Utûó>t¨þáýªÔ¦•ü§_$ ÌoùþlªÇ­—¡ËUUøýŠêU%9­¤C^_õ”ª ½àºÜâù°^½ÐaUÎÓôˆÿ«JwŠ.Üçö›­W$`ðÈßû¨_³ûæwþ}ÞúëÁuÜÕç%â÷žÍu×$“©øß§GÀß––ùÝûÕýèWÓáw߃ÕD*§Ž¯Ÿü½lˆ'I…×_¦vÕUAw’T¸ÿõj;ünCÂã£|Åü®þ7¬O;¿3ì›ßÕÄXWgP»àƒc󻚫à+\5F{®çð?I51ôµÃ#þÀÔ)ÛÉ$Ð|¯&Æ:øÊ ý \èß'ã|…‹(Ðàæ{51VµúEýþçþkát¢þÿ ~Q51ˆ5£?HÞ_?Q}HÓN›ÎÃÿ>4(œ·=}}Õç‚„à¸6ß«™QKãIP⥫~9NÉèn“<÷¯F-œØéDß«ÊoŠÓ¸ùŸû/‡Óæwíð?ÇWíпMýÆ©cþÞ9õ;Ðü/ǫ̂ÖÇæwæƒêN¿ßajg*8Ý)çé§§CW ;ë~ÿ#¨]:ÔO=Yò¥—CS ;å<•ǧQ‹$¨'pó?÷ŸF-òŸ¿«‡ÿ¹ÿJ8m~×ÿëÖ‡6¿ë‡ÿ¹4j‘ÿÔüÎ|°o¾W3có¿¸ùóge5Å)øùàÜ|¯f†.ææwÏá¾þÿà+æwéð?÷Æ*’ ¿Ë‡ÿù÷ËX_1¿+‡ÿ¹ÿ4µ# jð»zøŸû¯†“#ý‚ÖÍïjf¬«ý »~øŸû¾ÌEh>Ø7ß«™ªÂÒbCÂà{53àVàw7¿«™U+YóÁuør™âdˆh–7ÿ3TêS»tÿijGVTâû. ¾W3ãTÅüÎhpó½ªÔ¦8mþ×ÿsÿijGþS Þâ&kþçþcèjã‹ú;üÏñ‘ë'§îƒdėªL§v‚¦ˆ/­ðW•ßÔN‹˜ˆ/­ðW3ƒ`>(°g½\hœ·=_Zë…Áy’T8>­¶ ‚ó$©p|iíçIRáñ¯Ž ‚ó$©0áÒ2T'±´xn}4H'­ãdK«n‰F÷׈_1°³á ?u×øâûL¹³´p}_Ÿ#ôW.TÿxýÀ.øŸI_fôø§½Œ*ùM‰ôûpaèy´ƒþ>´‡àþãÒ2§9ô8ÿhOIN+™P7)¼ô ~F{áéë¯oª§$§•L¨á9?ZP®/îÉ_oÖ—CÊ,=Ü\¾ôdˆWÉoº¸¾¶^òeVn ½^z1º3ÚÓNFŸoëõèýÒÛÅïªòŸ~ú kBuͤ>Àî#…[_—ÔtW•î4ôßU%9E ÏìñScùOwÔ_4ü.X_ 4H&T _ŽøúTïPAIõÒ?jè¯*Ý©œ.½ÚJh8¯æˆ¯X½#Q}\z?ñ}3ø^Žñq™åª7þ«5æ¬5VÔr#&…~ÿÒ,φ䖪ҡÖã§Y`¾øaU:ÔZbü Vh¾g´§t¨r²^Ž”í…îþ›õPÃvêS¸ÿ ûA‡Ôo—p{"uœ.Ý•µ–ˆÏg­[×Ñ‘ìd}ª7O}Šˆ_{6ÕÃS#¥’ þ£?¦z†€J‡*§ÿ·©`º¯O[ð8PIR«÷?‡å™ï…N}Šzéø ¨t©Õû£okDý*Ij-1¾­~¨à†€ÊúéãÔ É¤Ïü¯*×)’#ýBš›ÿUå?µ‘~Á׿UYOí|ï9|0[Ïá|/>X¬—p ¾—¬Ök8ß+‡6ë-œ‚ïÕûõí|¯>8¬p ¾×œÖg8™ï™ŽÍÿª²žÚÉ|ÏüpnþW• ÕNæ{æ‡kó¿ªÔ§v ¾÷>èþÓ€†Sð½tø ûONÁ÷òáƒî? m8ß+‡ºÿ4 á|¯>èþ+Û)ø^;|Ðý§ §à{ýðA÷ŸÆBœÌ÷ÌÇæµ0 ^Ò:üpnþW ÏósøáÚü¯*¿©‚ï=‡ºÿ4ªá|/>èþc@¸ärøaÞü¯4€K®‡–Íÿja@ƒOçvøaÝü¯*¡©‚ïµÃÝ hµ¾×tÿ1 ^ò<üplþW è%¯ÃçæUYMíd¾g~¸6ÿ«Jhj§à{Ïáƒî?D€Kɇ¦Íÿ6Õˇ ÖSçÄ÷mjXíÁà+¥jXíÑæþe@„Oï ÀÍÝ m­_A€›ºÿáÓe~86ÿ«Êjj'¨^ðÃyøTO[Ù>ÑõYµpCæ® dq|Ÿû¿jXoXßÔ,Xz¹qâ¯^Ž^ƒ :¿é6Ôˆê÷)?ju~ÓMõ¨€ÔS4©ã‚ˆF{áúü€a =åG­Îoj–W@+uCÀÓqü)µLõ¸\ÇÇÿê„ÇFnÓã',ž)<ßtë9øhOùQ«ó›nk ȧԧ’þ¾‡õÿ‡ÿ„ôUå?­ÎêX> `èýè¾>5–)!êEú¢Î8|ðð?·u_ÊõÅÐvH¢ò£ÖñõÖŸò)?j-_o4¸£þhIùQk‰øzֹό¤¢\z ªT~ÔZ"¾ÞÖ|´§ü¨µD|½­í£z’úÑß³5êÍw,ß8UùÄù›¯r}•õWfàÄZ‚Ïp]ÏG ƒô…Žäúõü¯D|• é Á‚¤Âýg Xot¨t¨oQ.½Õ*ê[¸ÿl­AõÀ…A4âëmmAõÀ…A4âëdžˆP=p`aøz[GP=p ò£¾…ûÏÖT¨$¨µD|=Ö²‚ꕵÖxþaëT¨t¨oáþ³5Õ*j­_okªTNÔ·pÿÙZ‚ꕵֈ¯·µÕ*'ê[¸ÿlmAõÀJ‡ZkÄ×Ï ¡zà@¥C­5ÆG[GP=p Ò¡Öñõ¶Î zà@¥C} ÷Öº‚ꕵֈ¯·õ ªßS:ÔZc|´5Õ*j­_okªTNÔ·pÿÙZ‚ê•îôÓkÔ‚ê•îTNýX[P=p`èî¿5Õë§>ŸôT¾§œ¨µF|½­3¨|O9QßÂý‡•dz! Ò¡ÖšOüŸkÁ÷@{Jwúéi×Ê[‚ô™ÿU¥6µ|/>X­×p ¾WlÖ[8ß«‡vëÛ ªü°m¾W•ÚÔN Á@Óú '£=óC ó•gS?%9µ;|ÐüÏ,ïB‡#mÏzú€aà>¥C} Ç¥àUINeFÌÿªR›Z:A€näð¿ ü”äÔîÁÛáƒ8)É©‚ïEý"ÚIïýäø"]K=%9•õ‡n}íÕZ6.¬ÅñGíYŠ–ÿÛÀpª§ž¨¸Óÿ• Ýü ß&‰Õó¿Ê€X?4˜>Òçø¹ ~nD[ÕÊ Éû!µÖmøÐÞ&‰ÖÍú¾¨¿Óˆ¯ßú9µãÔ7ß3Ë«ukÈçýÑ- AƒÁÿÔ“Õ×gõç+pó?÷Ÿ` =ªªhÏæƒ†€:¬ ’?z:h¯ÝÏ—Výþ¢¥Ê i½2 §ËÇÿ âÿjehäqŠù¡Ÿ¬T0øüÎýÓüùDõ~h`äCwÎ^ú<èîÙºù V×çÖË­“álë)jAí€x•A°G|àø *¨®é^ßq¯ìõFƒ@¼ã#k‰§|QÁ÷œ¿tjD‚ö”ßôÓ{Tt§óï_|`ÁÍï”δz£/þOÀîÔ§æ‰ÿèí1j$«ý‹¤*ñ »Ê 㣭ÏAê:Aó™ÿ·©ŸºnPäŸø¿MýÔuƒ¢üÄÿmê§®c$‹ñmÇÿ Øú§¿øƒ©:pºô~ÐçOáþ;@jÉ«Œ„#ú/øŸ©$ÏzÄÏ÷Íÿ v¼Êøñó}ó?¨$¯2HFü|ßüjÉSºÓZ#~¾oþµƒä)¿i­?ß7ÿƒÚAò*ã[ÄÏ÷Íÿ v žÒÊé—ß…®ª™þY‡ÿ¡›j¸SºS9ø¾ j¸SºÓêýÑî>4ÄSºÓêýÑ¿ø?WÝ…þÿçªð;¥;ýôÀnSÁ£÷KoÁï@wJwúéóH=Ð]èÿð»@ƒHëèŽå{6Õ‹úÒ½¾øøà‡î”µzÿó/þ/êk¸S:ÔÚÊoüߦ~êšR.=âÿ6õÓùŠˆl‡ê•@{JwZ½ÿùÿhP×O¡ˆøÀq¨^ ’§t§Õû£_ÀîCƒJwZ½?úÖÇî”î´zôMýÖ¦~î”î´zô/þoS¿´õúÅÿÕ{Ý5Éšãÿ‚ú$å7þ/¨ŸºŽApëÿ·©ŸºŽA0âSwüߦ~:Á|oª×‚ß5A¯/`u7T×1Öˆÿ[è᤮c¬ßö|@0p^c¬ÿɪ »Æ èõÅŽõ‹ª »Æ ØÜ¿ëw¨ŸúA°ýÆÿmê§®c‹øÔÿ·©ŸºŽA°ÕŸø¿MýÔu b­ýÄÿmê§®clý'þoS?uƒXÄìø¿MýÔu ‚mþÄÿ¹*èNéN«÷Gÿâÿ6õS×1F|éŽÿÛÔO]Ç ñ©;þoS?uƒ`Ï?ñ›ú©ëÄzù‰ÿÛÔO]Ç ñ©;þoS?u]§h?ñ›ú©ëÄzÿ‰ÿÛÔO]Ç ÖÇOüߦ~êºN1âÿ‚úqktâú‰ÿÛÔO]Ç 8žŸø¿MýÔu ‚u¢þj*§~ÁéÄÿô Rµâtéå ?uƒàøâ£þFwA,âSwüߦ~ê:ÁˆOÝñ›ú©ëEÄ ~ê:ÁˆO=Q5oô×#>Õè.4¨ª ‚Ÿjý9èOçÏ ñ©Bí yA0âSûæP;H^cŒøÔ¾ùÔ’×#>µoþµƒä5Áx¾Ñ7ÿƒÚAòBwÿôÍÿ vð»Æ ñ§}ó?øè®1HÆó~¨«^n­ ’jV÷ê§®cÜz~g4H}ëùÒSP;ø]cÜz9õkð»Ð¿ø¾ võÔÇ©]ú¦~ñõGÜ_ÍúFè´NãÒûAwêÁ­¯›ê!Ñœó›^TªºS~ÔÚãù/Ï/Ìm œçü¦¦v@¾ *ÿé?ú¦~<å?­=âïƒÕ=½^z ~ÉSþÓOß/ô*©ãtéí&yÊZÿôÄúR8%QÜÀî#…¡¯KŸÝéüÓst%4µˆº³gÜŸm}Ý)Ó©ë~Wnꇞåð¿ v¦~’ê¿z¹IžÒVï¾­5¬„öó¼ÿù‰Õ;UÑÇ¥÷+ˆOhïè°<¤ž6ÿSN„¯þÞÓŠúÁ÷ ytËýWÍáÔó­? f$Žï8À´úS:ÔOÿ€á&}¡—ÃojØTÔ_~T°#©püF°Âƒ’ ÇÇ`ho"©ðóó ö:§N#^Ÿ<ù@J—ú~¾‹µï¨?Пҥ¾gãþ³õ9h0#©pÿ`h° ©0?=À0Ð`ERáþ;À0Ð^CRáþ;À0Ð^GRáþ;ÀÈúS’ÔêýÑ·µõƒô)]jõþè_Ôߦ†œ:Nó'þ/¨áäÔÕeýÆÿäÔÕHÄ·œø¿ ‚IEúÿ *XTäßø¿ ‚IEùÿ *ØTÔßø¿ ‚IEûÿ *8Tôßø¿ ‚IÅøÿ *È©ÓÈüÿ3\œ:¬ßø¿ ‚œºiÏoü_PÁŒ¤"ýÆÿ,H*òoü_PÁФ¢üÆÿlH*êoü_PÁޤ¢ýÆÿH*úoü_PÁ‰¤büÆÿäÔidþÆÿQ´×?#>õÄÿäÔÕHŒ'þ/¨`FR‘~ãÿ‚ $ù7þ/¨`ERQ~ãÿ‚ 6$õ7þ/¨`GRÑ~ãÿ‚ $ý7þ/¨àDR1~ãÿ‚ rê42ãÿL¹õ2ˆF|ê‰ÿ *È©«‘ˆO=ñA3’ŠôÿT° ©ˆøÀr¨!EERQŽN­@{ I…ûÏÖzÐ`GRñÚH*ú‰¤V Á‰¤â‹¤–Ñ·NÑñÅRËh[ç ‘/>Zð=Ð_gøT[Ÿƒ3’ ÷Ÿ`¹ÑagøÔ  V$î¿ n¾×D#>µÔ¯Ÿúíè7äë ¢ŸÚ·5êO$ãèWð½Î :?>ÔoÚë ¢_56ÿ *È©«ÿ">ulôT0#©HG§V Á‚¤Âýgk>h°"©pÿ`h°!©pÿ`h°#©pÿ`ho ©pÿ`hp"©ˆø¿nÈ×D#>ul«©!·Nш/Ï5äÖ©‘0ò›Õ;ÔP#™ò£ÖÈoT/*XTä£S+Ð`ERáþ³µ4ØT¸ÿ0 4Ø‘T¸ÿ0 48T¸ÿ0 48‘T¸ÿ0 4ȩӈûïC£ÁÆ©ÓHô߆9u5âç#0 4˜‘T¸ÿ0 4XT¸ÿ0 4X‘T¸ÿ0 4ØT¸ÿ0 4Ø‘T¸ÿ0 48T¸ÿ0 48‘T¸ÿ0 4ȩӈûïC£ÁΩÓHÄGn`hSW#^|À0Ð`FR‘¬o`h° ©ðúîÃ@ƒI…ã0 4ØT8¾åÃ@ƒI…ã³0 48T8~ãÃ@ƒI…×oäÔiÄñ/ NFt€a AN]xýñÃ@{I…ûïÃ@{I…ûïC èO™P«÷GÚÖô§œ¨Õû#mk=h°#©pÿ`hp ©pÿ`hp"©pÿ`hS§÷߆ö8uqÿ`äý)j_eëô§œ¨ÕûŸok:h° ©pÿ`h°"©øânÒ7D#¾êÄÿ5ìH*Úoü_Pä¢ÿÆÿœH*Æoü_PANF">pjõâÔiÄýw€^ Cê«ðú#ôç ÁŒ¤Âý§k  ÷¡ÃÁ |Æz¾ÑÞ`mX©aCRáþ;@/Ð!õ)Ú¥·€|ÚúH’ ÷߉ú *8‘T¸ÿÊüN}Šyô ‚›ï Ññ}ÏA‡è:uÉöÅÿüýIêv’>ÿ‚ß;ñ}õ£Ð©3Hö/þà÷¡ÃÑítéõ Á~ôvâ£~ô7D½þ€å‘ßtô~œøçãßÀÈüO×× ½Ñm¸Ã½?Ò‚)œ¨ŠÓðúㆃ¡q<鳞> Nû§×°¾ð|t§¡ñƒ¡‘¥‹ß_âø‰ÿ ~ñ}ý¦†¸wîŸ^Àòã_›w8`Ô‡Õ±ÑÝ›¯O ® yð»È_Ú¹WÎ+êo·i‰ þrxFþRXݘåè)H^èHüÔ?³ÒW­×ütþ ‚Ün}}aàÇ׸/âû0ðSOÍqâ}þ¬% üÔ+sžøÀi}àÇY¯¸¬¯ ü¸k®gÇúúÂÀO½²ÒŽôúC?]:+Ÿø@÷k W-î">°X¯GÊî">ÐýǀǂÂÔ¯ø@÷ßÚNAýú‰tÿ1`± 0õ÷¹ÿðÖGýæ!}î?Ö ,(LýÖ‰¤ÿÈjŠ“©_ý'þO KíÔïŸø?¥.µSP¿âÿ”«ÔNAýþ‰ÿSÖR;õû'þOYKíÔïŸø?e-µSP¿âÿH]ŠSP¿âÿ”°ÔNAýþ‰ÿSêR;õû'þOùKídê×þ‰ÿSÂR;õû'þOYKíÔïŸø?å/µSP¿âÿÈjŠSP¿âÿ”ºÔNAýþ‰ÿS®R;õû'þO MíÔïŸø?àÔïŸø?¥6µSP¿âÿHmŠ“©_ÿ'þO MíÔïŸø?¥6µSP»ç7þV§ü¦öŒú_ü¬NùMíD#wüR4ÒÝÝñJhº¥èîŽÿ£NP»™ÿ‰ÿÃÀO=™ÿ‰ÿÃÀO=™ÿ‰ÿÃ`à§QL§wü†~êÉòOü¬NYM-ÑÈÿ«SVS;ÑÈÿ‡ÀOXþ‰ÿÃÀO=QZྈïÃÀ¯ýÄúúcT3ðSÿ•qâÝŒj~ê¿2O| ûQÍÀOýWÖ‰ôóIeÊoj‰Fèõ-¬Žü¦8шã½¾…Õ‘ß'š‹ø@ÿ~Õ üÔ‰µœø@÷£šŸú¯þÿ‡!€Ÿú¯¶€|Íë[ Qµº»ãÿHmR t¤Ïý§Q § ~ÿÄÿ‘Ú§ ~k“>¯oImŠ“©8åŠÿ#µ)N¦vsýÆÿÁêÈoJUÜïø?XùMÃ)î‹ø>¤~ê„VO| ûQÍÀOý×Ú‰tÿ1ªøñµŸø@÷£šŸz²èþcT3ðSO¶ypŸû¯}ÀO=ÙÖ‰Œþ[QjG¦Ó }î?&|~êÉþOü†~êÉþOü†~êÄþOü†~ê¿^÷E|†~ê¿ÞN| ûµ„_û‰tÿd üÔ}œø@÷K?õ_Ÿ'>Ðý1ðSÿõuâÝ,=XÄp'ÏŽôúC?õßH;>Ðë[ üÔ#Ÿø@÷@ÆÀOý7ʉtÿ±Ö0ðSÿzâݬ: üÔ£ø@÷ë?¾öèþÈø©ÿÆ8ñî?Ö~ê¿1O| û cà§þëĺÿ2?îÄóÙñ^¿bà§þ›iÇúù†~ê¿™O| û cà§þ›åĺÿ2~ê¿YO| û cà§þ›íĺÿf;À¯ýĺÿ2~ê¿9N| û cà§þ›óĺÿ2~꿹N| û ÂÒE£™Nèõ†~ê¿•v| ×ø©ÿV>ñî?€ŒŸúo•èþ[å?õߪ'>ÐýÇúÄÀOý·Ú‰tÿ±>1ðãk?ñî?Ö'~ê¿5N| ûõ‰ŸúoÍèþch3ðSÿ­uâÝ m?jä7u| ×ø%}M;>Ðë ü²¾æ˜­çüо–X¬—üª¾Öƒûªõø5}m‡ô5ëí?¾öCúúß6DÕèîŽÿƒÕ‘Õ4ôþÿ‡D-’œ‚îîø?XùMCŸ¿ñHüÔ)îóþæ6D#9ÐÝÿGBÓJ4îóþæ•„¦8õû'þVGVSïo^IhR twÇÿ‘Ч vzsWÀI›Uò›F|àrýUwÔ_𽕃ߩ×X_ n:ÔÈÖtêçKGÒõ™?ˆçõ‡?ç v<œ–ç°:²šî¨¿àƒ¡#Q•Ô¦;ôïð½ß¤¹ûáAÕ“Œd†Ý¿ùホßQgåuøß‚¯•‘l<—ž‚Ú‘ÚÔ:-y}úsÐ:©P˜Ï\À.Ÿ–ÐËáð;R›’ÿô—~Ônó?’œzô­×°ÚÎóþç›õ#Q}\z?oä ýã{4B~T¥Cm‘?Õ±|髵¬üï~)š#êòü ·!ToëžîX¿]_CéR½?úF{9ª‚ûH—êýÑ7ÚÛÜGºTï¾ÑÞF‡à>Ò¥zôö6:÷‘.Õû£o´·I!¸t©+øóä„ç‰ê§_ŸuH¸I Ìoy~h´wÐ!¸t©Þ}Çòmtî#]ª÷?ßTo£CHéR—ç‡P½à{ùÔ§(—^‚ïAúH—êýÏ·µ߃ô‘$uy~Ö|ÒG’Tï¾­=ø¤t©Þ}[Gð=HùQ½ÿù¶Îà{>r¦®ý·6d‘Ì ÇHêùaXŸà{>r¦z¤mMÁ÷ }dJõþçÛšƒïAúÈ™ºb|´µ߃ô‘ÕûŸok ¾é#gª÷?ßÖ|ÒG¦ÔÏ?j?|pé#gª÷GÚÖ|ÒGºÔÏ?lÁ÷ }dJõþça}Vð=H9S—ç‡a}‚ïAúÈêýÏ·5߃ô‘$uÅøfk¾é#?ª÷?ßÖ|ÒG¦Tï¾­5ø¤L©±?RX[ð=H9S½¿Ñ¶öà{>2¥zÿómÁ÷ }äL]ž†u߃ô‘)uy~hkZö }¤C]1>ÚúÚò‘ ÕûŸokºù9Q×üø Ö ‰IÅÇoˆØTÔù^=õ)Ú¥·€|à>2¡ÆþHö>’8‘T¸ÿú¼Ñ!¸L¨±?’ÑÞA‡à>2¡ÆþHŽå;èÈG&Tï´cù6:ò‘Õû#m´·Ñ!¸œ¨±?R ½"V$î¿Q!bCRáþíF‡à>r¢ÆþHö6:÷‘Õû#m´·I!¸œ¨+ø47TÆ·1oˆ:R@ÂÍÿ }k}|ðC‡@>%AmÏóñÁ "¾Ã™$¼!bARáþ›å@ÄzêS¸ÿf½Ñ¡pŸ$î¿Ùnt(Ò'IE;z@ÂÀ’T¸ÿlíÁ÷Dú$©ðõgë¾'Ò'I…¯¿¹6ß³N}Šõéu]|OÒ[ÄüÏÖÍù$©øø`H:k l=øß–²™ßûÕý·ê/DlH*Ü«ÝèP¸O’ ÷ßê7:Âý·ÆA‡óÔ§pÿ­y£Cá>I*ÜkÝèP¸O’ ¯ïžçF‡Â}’Þ"Ö'OºÑ¡pŸ$ž??ùF‡Â}’TøùæSnt(Ü'I…Ÿo>õF‡Â}’Tx}ò´ ÷IRáç›O¿Ñ¡pŸ$^Ÿ<ãF‡Â}’Txþ÷Ì ÷IRáõݳnt(Ü'I…û/=7:î“ôæÓö6:Âý—ò…û$©pÿ¥r£Cá>I*Ü©ÞèP¸O’ ÷_j7:Âý—ú…û$©pÿ¥q£Cá>I*ÜiÞèP¸O’ ÷_Z7:Âý—Ÿ ÷Iz óé@{ ÷IRáþËùF‡Â}’T¸ÿr¹Ñ¡pŸ$î¿\ot(Ü'I…û/· ÷IRáþËýF‡Â}’T¸ÿò¸Ñ¡pŸ$î¿I*Ü¥ÜèP¸O’ ÷_©7:ÂýWÚ…û$©pÿ•~£Cá>I*ÜeÜèP¸O’ ÷_™7:œÜ:D½þ0Ú;èpqël4âþ«Ï·Nш¯ªéF‡‹['ƒhO›ï5R›äK»tK ˈ:¯?ímt¸¸u2ˆF|Lm7:\Ü:D#>¦ö.n ¢½ÿò½Ã%©øø`ð¿€€’TÌøá&}’T||þî“ôÓÒDLI…¯?Ö²©\üP’ _¬eS=žÔ§(—^.Ò'IÅÇ?þ·¸õ2ˆF|Lë‡ïI”¤¢_úMú$©ÿÛ|pqëdø˜¶ŽÕâÔidHxÐ^{$­/î• •þ¡?;q}ÍMwÍ™¿˜@ë9Ð`Xö$”Í÷INCŠø¿­G,_ð?{FýöË7Õ“Ô/½:<¤oëÿ·ù_PÃ…¤Â|ºÜñía|œ&‰æ_O ?œ\ŸA2øµu×óA>ëÛÃЄÿ  W/tØÉ•/CµtpßOü_{Yz˜ï™¯r¯å!ÉøøŸÎEü_ ==¬¿üÐÀNûüWí½ÉŸ(]>ó¿r˜ŸÜó)@]p;+ïðôXy±ó8÷º>Fs¤t Z—w-Œs$„ Vç+Œ*ÓXŽtrAê|þT†r¤  NgzOÓºÿÈb›‹½ËÅæH}çº-@ݘqþc«ë?2è™ÐÅuEÝbGþ=ó9_5®’âHátνD3ºÿH–ñă*1IÁs#žw¨Šùà{â ¾ágµØ(GêÂß÷×w•aGâÃÝgµÙ(üFÚÄÛgµÛ(øFªÅÙ÷wªT£75î¸>«ÓF·d æ¨>«ËFa·tpÜôúÕUÌãþK†yŽè³šlrK„Žç³šmpãÍ÷ÍgµØ(ÜF^ÌË÷×w•aØFÂÌÉgµÙ(ÔFÎÍÇgµÛ(ÐFîÎÅ÷wªTc6ò}î>«ÓFA6R†î>«ËF!6Rîø=Tª˜½ýGºÒ½g5Ù(¼F²Ó»g5Û(¸F–Ô¹gµØ(´FŽÕ·÷×w•a°FšÖµgµÙ(¬F~׳gµÛ(¨Fvر÷wªT#5ÒÊîx=«ÓFµd<æh=«ËFá´”?Ìæ¾¢Š9ÛdÅÝ‘zV“Bi¤ØÝ!zV³i$ëÝzV‹Âh¤÷¯ÍxF•aˆF"à¡gõ=_(uû¡jî+ª44r›©Å“°wt"‘±©›¨ù>ç*ÅðŒ,Èæi^…ºn6:#›rÐ4÷UÌÔþ#óȳúž/s7ê>_8žÕ¼Õ÷Äù˜£•¯î42#wtP4÷Õ;:‘pÚuÇahî+ª˜¤ýGÞj¸Ùô}MÜŒd×n¤D›%¨ÚØê{â  ^sºn1(#ãöÀ³º0‚ÉHß½Ãï˜/QÅüì?’ïà;« #ˆ hbh–-æÿLîê³b­üÇÒå=Ö)<6`‰iÿa,¶6-›,/íoZö룷³ÖÿcNñþX[E¨µõ³Õ«_˜µiíý[;:Î!vhïe²¡­ü…×Y{¬½š©šN½ÇèËÄÎu»Xö¾õ¬ÂÜ/òŸF^¬ Áê©7Œ»æ•›Íý"S°ÿf;ðËý"ÿfÌÅšÝàÌý"ÿjÄÅzèÕÜ/ò/Æ[°€Ws¿¼CÍ 4f Øå~‘¿‰×ó9 Ëýò; Õär¿¼þÖê°®rêM£,¸Šá–ûEþÃk|`Ëý"Ó­ÿF;PËý"ÿf| hu÷‹ü«Ñ ˜ÕÝ/ò/ÆVfPœHôËúÏH+ý7>ˆå~‘¿IÖ›}ÉÁZúUà;Ô˜›¯Ü/¯?+Èw 1s\¹_ä?¨85C+÷‹ü‡ñTÿ€•ûEþ¦Vÿõv`•ûEþÍXŠ?Œá~‘5’âO¤îùã(þäü‡ûEþÙ(ªpÊý"ªÿúsÀ”ûEþO ¨u ”ûEØj~šH¹_ä?=£Ü/ò>å~‘äÔ„r¿È¿nª@M÷‹ük ¦²áÓt¿È¿fÊ£Q’ßg$¨¸_¤{8Ès»¸È*9˜´ÿ;cDáüZ¹xð'ÆŠ,³Ö•SÀ°{\¸}†Š¾’‹»<Ì#ÅœvÆ}þ#¾$;Ÿ§ÜÚ*3G{Ü/ÒöhÏåwj˜íº‡sø ø2δ°ƒ=BÓÿøþ®1D‡vÚ(Ä)€#¨¿ÏPŒâÈÁû/àêŽÁî=ç<›E-Çm<îóßú‘ÜŸQœÇ»øŒêÄX£6Ï»×’w(çy%ý×s$çŒúœùYz ý§NœÚ>oVܤ­×Š«Ïsæé‡eñÓòJÎBgÄ7¾·U4IK±ºÜÛYŸgî´™*5«Ë+žÚ{j×¹¨xZÐŽ0O¡Ûfi%éÒrÓ¥}f–6“‘\"Mr_Z©j¹æ´/íi¥ïQ·†ËU¡B?3*†Pz (–ˆciL~ t3uáM×Ý×[ÈEº¥›n×Çÿx•¶ãs]cESº­±;”Pnk~}<5dd¹†ðž¢ñã‘O«ç€Ææ¦ö ›Ú¨NâT|ÙrŒ»_¬žûP»þOíJ'3¾LÚZ’`0ѱñÈÚçÁ2®´ž*xiÿ¹®‘:,¥£iQ!Å•©}èºÆû$öiÔMm@×5L¨™P´di×À¢&>¹¾¡ZÑçܰT—@/XÊ‘ïRà Q©¢»é‰&Guu—*ô4ÖŒ(ÍzÒŸ’7àMÕŽ6gÏiXÙ[¢¡@w¦>u é>5î+zƒ¾’Ù#Öì§ç°]ü­O]£È¨ÎÛƒ8–DóºF %PÁ“^ê’h¶S×èµ*Ü“½ Ñ\§®'³*nK+Ítê¨p_õŽD¹®‘~ TLK=亢<7®½b©óø^+ ÁóÞ³_,uI4»©+Œ*¢76’ÁÓô¹ß$PáÞÐ=ºÄ’ê«ç—- ÷†nÏ%úT_=·ž*Ô»òa(Mrz¥4ðZìíÎ0;*(ëõoýÅŸ[yNHþóVg¶R!t%¡Í~òFg]‰bveHÇ*S’ÿ¼ÍY\µíDòŸ79;P_N$ÿy‹³­ì]ybŽT¶z'úÞ˜%Ut½EoCýë¶Õp)ûÂ-Í˲S7­€èé$ é©öÕ¿ùÏf­çí­_+c{Œî_zÕ{4»~+%BWÞ˜c¡Çó©ú[c–M¿4â ™\*eŠ™Wù‘që(hÈùš©¦˜™Np©j í Ôè¦<·ëögT*úiHw|€ú®¶o½†=8ÕzMÂüÏõ¨Óré®ñµøëQß•Bæ(ßT^;æi£ùP4~e•1V·z]”É<<ëå¿å=÷@ç·Þõ8ió·EE5}ÊÚ#´·2*Ø$Tn®o ™úƒr©^o­‹Ç•Æ¡|EÁÊÚ0 —H±–¦+ê>¬ja§mÑ·Õðgñ[Zª…­D [yº«©j%o›&ÕÔÑ#Kпá³ÔeôáºÒÏL¼?r5¨'êQQ«:s¿ƒä$*× f(O\–íÏ M™Ò´¨®çêSÒI¥fAu%‘à)·Ž79ãÏ]yäÈqÆV 2ÜWKW)±rCên~ÄsoK·R%t¥’ÉyyäVR„®ô1GªVŸ‰;‡ŸñR_ÉOTM…òÖg§[]QCòŸFn%F蕲ÝVÑ\¨wŽ­â6 ­ôðÓ$¨wŽÆqô(;RÙêªÜWBÂÊ ÙBYsŸ¼áÙ1ÓE+ §‡™žÄsº¯¶új—Ó@GòŸ3"Ø¢j̺XzLÏé¾BÀ ~×E?oÌi¿WÓŸüèRpѶ TùWf TtåòhžÛÅRþÜÊ@§Ùs»x 4,&wÏ–§‘{R·¯&¬Ãbé@*wŒ³ËB=èÅ](F=–vReècÉódWœFO)yúSžÌ”ײ´+ërvIäéÓ‚®×ÒþOúò5Œ  Ÿ–vz=r\œÑ-±>bíõ]¶lÄÑÆê!Ò¢tÆ.¶E]Ϲ#o­Ÿ&cUz åju¯1ØÁ8ÆJ9#cŠa.ݯ–+l¹üõ±&ý¬Í8C ƒa ¹²ÔN’N§.^ËÌøåuy€Ä}óÜ—ˆ¨ízPíâa‘ÔÝŠîlañý"×ôàPŠíHˆnžNº-å5þŒŠXü¸ sYÚõÄšr‘D÷Q¨t~!e¯Ñ*ÏÝ?GBðìyñœØzôéãñ˜¡ùu½Ã"HŸ‰Ç±Ê;6¢ScP^¶ª‡9¬»B£»²û9ÈØüÓMò¼ÑÃê ŒT·r¤œK?j÷ÏøIHõí­ñ?™H O¢C'qêW?Ä}üê”ÒW<…ä»[m¾c#Hu–rü­¶~FB ù騭ý3RÙêÄ÷ïHHTÊVç¼GB¢’z|Ÿ‘ý­ñÇîgÜþ ‰ÌÔkûw$D•ò×1ëÊëò ‘?ßë«2~FBB:ÿ“·ÝEß‘UÊóî÷iä;‚—~•j³ ‘'Ý5j×ÏHHHeÛuð;•²:`hƒ¢#Õ¿i³®QjC4úñg #·?"FN4‚týÇ0Æí˜ïØÒýŸ\gÌúíaHZì*6ë7ž÷層 “U›u³iŒ }.¦Ü6ëÊÍÂØˆ>ÞÿÉ[Ƭß%FD4ú´ý'—³®¼, ‹hDß~уN¥?î£[ÿ? 9ÒÖê7^8‘Dj/Í™ì·Oc¼C#1ãÑ]Å~uù ùühU‹Y¿‹™h£åáz°–ÉLÅNfßI Ó%7»þÿO¾u¿ëg|$ôþR¦ŽŒ‘‘û$i:WX(3‹e´ƒŒñÊp‰9ô„Ð3>,ª4Dns)È¿îz¤1ƒ"_y¡ÀHÈæðÈž[Qúý¶Ð<ýŒZŒ’x¥ÓÐNë¨æìièæTwÔjôcÆÈÎÁN=de]†GF„ðÁïªpÅ¿qío,J½g­MtW«B°)'\Ï|IÆ+÷ ?å[­ ŒT´ªåã´àŸóíq‰+m£ú:ün‹ÐÍ5ÌF+7C ÒऻÐÉÊîåšzϳꯇJ¿ßÛu…Ôƒ:#ÁÂÛ u¶\~ý“—Ö|]n.m_ ²Ê P¯ZîõRÞ¾‡:«¾Ý¦^Š7„ÑZ4 …ò׎uh·¨×ƒ­é”<(SÜR¢t¢ØL7e‹Ÿãó21§Å0ɯFÈ8ñɯ}5M£~E=mPÏ`ÉŸ‡R ý+TÀµÄ ÇíÑh¿m®M&‡cªÖSV&=øJHŠǼÇJŒTNŠ1–+Êↅ¿ÕŒ‘¼­ úí<Ê¢k×WC!7Ÿ ¸àèú7mÖo­x|åφLnPŒªhÜ)×”*1 ¢IŰêøP‹¡•MѳQϼ®=Ÿ»6~éÍz––ÿô¨ë7- X:­›$7X,ôh¨@Ì’èIg3eˆ‘@EEª.©bŠ;¤z¸ÙL‰a$PÑêß´}Wn Tt¤œjªX ÎÓ¶ÍUù8BOÄÙëÍ¥C‡÷ÑêÊ Óµ—s÷^ÎH¼¹G½ öHüøâ½6é ©›•¦7jæ>Ê l!¸S ~ÑÀ‹÷pÖßø¿·µn*è°GB ¥ƒ‘@EsËc‰¬HHñötGeém=YKlº+÷Ko.†¨z¥…‰Zð“N³‰$íÞ¹9*5-‹³¦+Ô[ÌTP¥žA˜uå‘à)˜§ ÇNWÒ—P±@·—Æè”÷%Ô,PÁ‡Õ‰Ú‚9ôôéüÕ­¢3|^òÖs3OÇhìîf>£ž*]Aþ¨S_.lå5„ôé'f-.Ú I#îãÖd=SP¹­2-}*» ´p¾®ÔÑÂÀM)%Ì£QyŽi Å¢ñú͹p0eôÑkh)Ý;3H:säzñlêLLÑl ¯æ™3øÜJTnék•d)4¹X`¬]š§b]9`º6ežÚ4 £a‘žDë²UºŠ‹ÏÓÌŒSÑUñ|[êùTšš‚rù9)Íq¡ŸÓb¤NY`ôôÑ#J‚P.iÊ!ƒžAK¿ÊÅë^¹aÐÑ<_»–.)ñënEm,å±ð£­\–,e½(³–¶¾o=4²¤ýs‘víÔŒéÒv¼ ±žHVÑfZ½1ª¢Ü¬§/@¿—Î$‰”eõÛÓ²;?§¢ÏÓçjªUå–÷‡èߎ:-GêÊÓµ­óZ>šô‹ÀG3XýŒ²x¥Ž¢ú•±êXm¤öò|Qý÷ŸžQGEŸ¥ß©vw^Hü€wu~À¢!6(é¥úï?=´ºÒÅXÍè;æqÆ#w@¿Rmñܵóv82Ä*7F¼.æØ)9Lï.ÔÎsKùÁÖÝ–,èÓÚmصsõ¬aõReQã+ª:]Øþ¨é#Ü‚ÕUèN®V¼=A¡óm«ç‘æ^¥Þ7Ïߌb©¤1<Cc’ø!Ç“KïøŽ 7‹$š¼f3%Œ‘@…_&ŸȃªùFC6–ø)wû¨×zw!¾¬)G4ìtYË]ébº÷wV%O§fUŒN¤û?=âl¡ß‰*˜EªùáâÌôü”@³O5š£geïšýmå•RêîÐP~˜»:k–¸P¬YP¨`­æ‰sw¨Nia$PÁT`Íçãé çr· k¾4W\øˆ™’ÃH Âœ¨¥šn T0ÁæO«öƲã…ÓE°¨àz5o——6 ­ B_iÖ8?PpN“Š÷ÈÐDár‡™ÂH Â"-/ÐüdTB ‚¾âA¤Åz‡­úÊ»cX*{jTÐWš?^¦í{ã-eÖÇi*5ÏÞ“núªìƒnI*IŸWc+ìi]«顊mã®=›»sªöîÚÐêë Ç±Ú ̺tzy—I\TD*Êß‹%±ãF¤¢Z~'–Ô ˆîFìJ‘ 5à9/š¹B"1k†„‘˜B#ão¤Òœ€$º[r'‚c&‚lD*xqtW¬ ‘€••À‘HÑ;…•öÁ•—ÄD¡›»7~öq4R“_Ô ž·ÄËúPJ Fw#-©âNS ¾Õ—+ÚQ$WÁ´Q!†5ïC j“¡šC4ršS'NÎ~þÌìHEÎNÑ ÈènÄ´®d—˜ÑiÄó©;(™3®$•ÛŒÑ;C-Æl~h7‹¬D ÔÇ(^°Jh’ø­Œ"¥uÈÃ˸Tañ‹]òîº~˜ÑiµíóÒ°U°Io&‘žt¢Uyf®¤˜ j€‹¶}E–v,ÒC:ÙD¯ñ¹‹ôá?—yÜ éJ¨+ÈkxÑfÎSKk­®¡çþᚩպSËr+A*gø@S‰­>ä¡£¢ºÂ¬ýS±¶i°P 1¢Ðx£ä2ÈŠƒjÆÇò‡–¬¢ŸáÂÔþͧöð‡^í Ÿ0@bJ#W"GÒˆXBJãŸðÁÄï.ØGˆÀ ×® ÿ§ÑÁT¡˜ûðŸj¹áa˜4ʇ®41Ô*\.x¡k6ÃòŠ6‹/®Ä µY €µ<Të6ûÜÐõÓC@È!ŒàºÐ`>ú‹‰!ÍŸ¢Ê&VÃØ1Ü’šø—› Ly˜ªÏøÎŽ-h3ç§°[m|(‰7"îDMøhˆTÜ–·„“;8b¸ßd¬vvm  âàN†YâàÆ0Œ I'#ïm$WŒàŠáå æ‰6“E¸~v'B‘X1lžô•´²,Ä»¢—dŽ+ÐbÐÈË&‡:JÀÅ O ²¨I% ‘ w¢ÙâN.éˆTø&ä5`(iÁÃJîd½Mï>’a»ÿL¯ü€GÆK#ƒÃÅ—4‰ƒÂrŽ{òG(éúMÃÇ/I”$÷ù¡&Ü¡>L-ãÁ ‘ ÷OF8‚?:"ý„4Z´à‡a¥yÌä“ü0¬äþÉG ÇB¤Â÷—!c'ŸX¤bä+ Ò`ERÈ_ˆ.nô÷¨!Ó1 -ƒ&7"î¿ wz4D*þ‰~ztD*|ÿLŠüÐ3âì3§¶‡f3:¨bœP¬0\Ì p¸%·¿Â e~ðzÍ`SÉ ’`|¬×<¬hb‘Šb>`rÌ«yD½†Îšì1j0ÅðÞ/?0¢Gùâþ@DVgpðh3dŒTjÁÀë)D gìcRøï† ÄJÝÍ©»Ÿ}hýƒ5ƒ4šqd}qmÆCú 0gøÆ?±HciɼDR²ÇµKˆ–1­UƒDfðÅGÔ4!´Ù£8¤áZÅ"ü5\çû("#Æ>Œ Z'K¬\ÿ…h^<œåòB´wˆé„ ‡Ñ™fŽý Š@SYZBÈ© u"B2,7d,ÉûŸÌ,_>`‘Ƴ†[¢‡¦›/´ÑÔ¶C®Ýæ‹jôHàÐŒgmÑ·.æŠ.M]Z¡¡ ý¹ GTé#wiÆHÒ r%8¼a:LÄžÜæ,Ú¾?êÓhчq¢¢(Âѧët™/„ÒèP³ÕND$²ìÛð´ñrŸÆ 4¯—þ xpóÚ‡YP÷nAJÈGD?Tw9ÆQF@ ¦QOÓ‡ŸÔJ>M"áùgˆ8ôÂöÓuDKaŽ‹ûknv˜ìBñA”ƒ)çIÈÏxÖW~‡8™%ò¬º ÷§Áœ˜É3dû ÿ©Ž5x'>¸BŸ ÷ë6ãÆ‘›ž”’Á£gd#p¤ RawF$1]”‹ OËãÒÓÌq”&Ûµ!²Ò4xpÔ’9†MÛ'æa¦ˆUGA=Id RAÿi‘Žƒ$z†;‚YÂ`f cSxí‘q"HcNLËÝ'Ò$Òè)™9‚$®$‘‚Hý7Í•Š‹bf™ÁZfT“ õ’ˆQÝH³’Áb$8>byHÏ6=Á¤'˜€,\š^0$ñÒËD¤Â>M†>†•"îÄ ~‰Ð?(¹3üaéô”Ì= A"‘ ¿+L%IDÝé"äw’J œ¹o ƒ‰4D*‚)z@FàŠE*^¦˜.zÆ?þa’žJ+êŸÝX_Ò˜V7Ǹ}úb½1‘PŠ-äæ )IÝ-¹³ÖôáæTø] _hRŸ‰+lh?øå‰sÄ‚¦éŠšÌQƒ9¼¤éƤÒ©pÿ$Ž©Ð&ö¾?G‚T&"îáÄ4“Ìdš‘òi¡àªW HNÀHcšTŽ|&IÒ@Ó¨81ÝÌR©ðý—8Ls#Ráþ þHæ¨ÙHÈ[*ÝI^ÜМJ«Ø´¼‡¼aÔ‰ÿ2Gˆh‰âe–1Óöþ}'Žl—®þ3³LW쀌þ‚É‘=Bû'±¼¦R1s˜Núaš!ÑH ܘ¡éFîÄ•–8£>1³¤Œì)X_(ަ#¸(Þ·n¬‘üQ6ÖמÚµÂ}1«ªOSIÿòIì¡Ð“E¦#!AK»n©VÔ13þÑ ,+ c8¦q[½ûX@‘áŽj~Rô…£IOÍpG¦ÑdR^füEþXv <[ë+êQÛÙÈ/é µ ±MfhÅûËðÁüŸ˜Ñfô¬ ªq”ª‡›¦E'ªZ ‡6fÀ‡ö´+ WÄ?¢'±ÂrÀc;Ò15 Ìÿoy}áC$À²öÎjDÇV<Ì`MæÌ ŽF†^s°F°ëæ˜zÛÌÁ‚Cs‡VŠvMõ;ð¡“SÒ>â ÇÒ–ˆë Ö P¢ãB÷¨7ƒ5ˆ¡@F¶^ÒܸÆ7§ÿB.GÒðá92Žp˜&$’#¹äã‚#i¢E­aÉ¥ Vç;ý-h‚£ÉÔBaŒ·{&‚W˜&´ê7bZ8ò@ŽN¬C¿±¢]ÿ‰ptAêú¡]ÝJÝ ˆÚ¾ô#d0Âändº¹€Ë“; ÀƒG:?ºeš LQC‚0ŠÃ¬5MkIJú¡àb®0wð㜼Jͱ cÆrÝÐÑ?1Ì*´IñÈA’€‡eûiùúb ð -¦»·‰6-,×®ƒBYFÉÐ8¬„±Œ5×iÓ„¢£R L¡€‡å0Æ'àmzOiËçQ2K€ë`HÏÚ@±Üð?qà‘Šñ‘ –q'&a°ÐêDcÈHÂ0|4®ŸFü;LÂø(ˆžÂ²¨0wÔŒj\S #E¶wÁ¢†À€ «Ç>ÒI(†¸œo±—tÔ¶€‡å¢%\ŒäŠ@Ž™J!Ÿ‰$#¸œo±¯ôH®äàªiÄ]—\aä!,7â®K®äàªÕˆá#hã„9lï¢|ä%¹ãF¤¢Z~ÿ"IC¤Â/7ÑÀríð„|4ÚÖ.FÖÎ<dx1e¹˜ (-3à`}/@ät[ÿš3D*JÂÅH¸€Èé¶<¨Ã>ppX$ä+@#áà8ˆ½§å¢%!¼ð± ŒŒeô_8XBxÛ|áb¤Ò´\=å€Ç0¬ƒÖDnçV @’¶•˜q0„ó3wì@‚õ }X^¢‘c˜$øÂÃÈ@#Èýû4<´ä‹Tu ó`Bew»ÅfÕ˦Ö'þq¨Ä¨ 2¹­&¼ ¬ßÐÇ u·¿)ËxÀ7!‘±ŽhNrïx•pPÉ58Èî¶Ø£àŽfì˜5a{õë8rOfÀ#€¤!RÁH¦¶Èpq0DC£dj[3<´Äê*[“Z4ݵ+5ôýJDâ¶éÐG5?- !ßÚyÞh¡<2¸7¥ÿF7è%¢ˆIã©aNÏ™2ŠE¶Q{3EÇj9öÑ‚"´ö4q€ ¯¨x€Åoû€S°ëK+`cdˆÃïà°RûˆeØc1^G^·•¨Öðˆï{CGÅa }¥0Z<=‹j…ÒðŸGS‰lºåØ÷ùen óÆýmI›./ó³®dÛ(–—˜cF 2_òp]àÍm òÐ&3GÉH!òPJÿC&ƒmt4Í3ÃµÚ ÇÅ€F$RÐ}*ž>;ì° OWlmÞlüØÙÔˆ‚ÝØ¥H¯âÉnFËE7ˆèâñŽH¢­A{ ¢E¯KëWŸ?çDj2 “®X^«w·E7<žó¼ñt¯VE˜<äO‹FpÅÚÄÞä1„:¤®ûy@„ÂeÍcì;í¿aüpC÷€V¥kC6 äNOµB>-‡1„¸0y$ªt~w¢ûM>Óðß8êe‘Pb›A` iè¨_†ÙùÛ3Ï$íÕmÙ8<ÏPÇõ‡G^|q&š¾=˪~Ã~ 5Èì¶@^| Ô˜â™iòJ ‘Šù‹A)ØS¼(ò¢FØSlO0VŠƒ0¬yÈBJýņ¨UK24jЏ%x²`/ïmž €¸£‘m›¦#û+†Ì0ÃЉ>>¨ ÿF<@&"Y¡²©p' ¶kНLþ «™ÁÈbE^vØQ›¼²"ºêe(ÙF•}ì?xb;ðœÁŽC!5xb»‘ˆxÔ@=ì)ÚGÞ*à‰íF܉♈T¸3Ä(²©°¿“!Ž@‘H…ïÄ qEôçv#îÄ qŠÐjÄPr¢‰"‘ ßd⹩¨ÿBÅö/”ªèªOB-5©ë auP$ C×oùLÞðŒà {¬ù 9¼¡ˆýð DŽm?“L€Ží8ÿ|QÄ<Â¥óq;¡Å(ã‚KׇjØ¥d[tð# ¤$´ÊÔP?ö–ž!Œƒ7ÛšwBË %aŠÎÉj:ªV¹õmÍžä2mäÇ>d³¾x³­ÉEÎÈc¼¦h®$äX"ÛJA6%ñF—– ò¨8¼d¢‹tXdÛª$~Ô$—öö^éis(éÊg2™æ•fù4”X´e^èP;qž–À@dû“F’Kˆf@Çöûqhƒ¨1?xx·Ci~ D=i²2”:.y$Z ù€I9ê%¡d&,-äÛS¹‚Rú‹2ˆT„}2 MìQj¹œ›*‹œD†’B9O Î'm=ÛÐ3“g  õ¿çf!+]!I.'2‚÷Gþ+½ñ¯.'‡ô6„”Ã/„5¨…JÌ/r,@C"DäN|DrÌ›E#HVˆã#¯ôöƒÃgÒR>2bìƒ&=0ƒqA25h åü¢Ë¶ºÜÚÖ?À1|lêØŽ’B¼$Áɼ”CiLwðÉiòC ¡ô4BP‚¬— ¨$Š1Œjî˜z’Iÿ^ì\¹\ðçE€C´ÑÙóÔB ÚCS„Ñ\hUD…v c»ö®­Ž§¦CÌî=.µIf#ì¡ùÔ{ê½>·A Šä8¶¡HN#ƒ6¼°èöt¨Ë4q 8*AÝ÷µ••‰SÊ—á9O¾éM3h¿ÿ(‘˜¡Ìf(Õæ .`é·CQ¬„äʳUÀ?Y¼º»Xcd.åÃò`ðá'ia[¾É«r…Ò_Kù²HÜð§ìS;”w0 ˆà iþ9 ¹Ù`.#€Â Ø5Âã ‘5ÇåætÍj.@ó)ªã$í·¥n\…ß‰Ë 0©ð˜LÒB€ÄD¤BÿqÙ ¬7 ˧• oÃÈ-Œ «DµT«O2\f®j¬´ÙDÑ™; Ð×'ıM·¹@"å ’6$RQÿ^8H!—•9þáŽH…;1i!@b"RÑ‘ h{>d$Rhèî²Ò<òS±Œ •åˆë ôթ=ȰIK§üׇ+>ÜA*;>î„@î/|è!2È{wy&Öú€B5 ç¾ó$«7p Ñ©p'&-H D*܉I ‘ ±&-H,D*܉I \bo.iÁ ѹ4>㤅 .qÿ%-Hpiú#Çú€J7"å *"5‘@òqÙ´!ìçxAcX çÿ9rÿ%¬C%ØÑWŽËVÝ.ÿðÒÃpôHàíK¤Âýcþ: 0¸4ìÝ?ÇÑ—E/W|å ã:š ¶k«Evùƒ ?Û×o0CÞþ#ˆ8ÆáŠ…ŽH…·æ³û?’h{ËELb&Ht{û’«ðMfo-ÈÛ—HÅôIÚýÿF4¢‘y\þ¡ yGs8'¢c_R(·Çu‚wøø‰©(yy}D*ÜɦME¸ü¡òÛò¬Ð¥[î'™²q\ŸÚ–~¿ŸT&ƒ  ¡ë7-¼Þ~€6ó#Ÿ¯H…·¥Ã1=~ÿÑ\I Ƈ`ˆcã™RIª°·?® ¬ŒY#„ü)êo#¡!Rá­hK1¨âÑØ¬>$Ü“’iyÐ‚Æ p»ìÛ” Lr5aGú ƒZý¹È9¶Ž§oPªéq'4‰ƒ7¯Íƒ˜ªÔ,JŽàzå¿GÌb¦R1èzŽOiXаàQÄ}§ÏO$ÀØá6}Hô1wøüãr3¯4=x1éwyæÔ°æP"¿ v0ƒÜýÒíø×—–w‘p ³^cxÌÿ@B8þ97ýujµ¹¸Eæ|sã€%–»Ö$@FŒýÃ÷/X gž=îUÑÙ ßZ7µÞM$¢n\Ð~ÔÊ?o¤ÑòÚõÅìlªï‚Zy“\r¦†‰4°À,ÐÉ+œPÜ[• ƒ¾mݹnÖSxÊ“6Õ;êWQ_s˜*Ø@˜G8Á뼄¢ìà<þÉô%‹:ÅØ gÿbŽ‹Îñ/ N ˆcg±&›à5­ÙèsðÓQÚD/,ÏlÂçåÀˆðÕ¦xüÃ`Pj¡ÿøù¢‡Âïɉ°B´N¬`³34mnï©§4ÃvçK†Fj.>ß….þ>t ¿­d˜8Þ´´‰€ÄHf¸íçK¤"¯w?Ò¥aù2M‹TÌ|ØÝ—;H…&< xYDa:8``„(VZáØÿç¿Â±Ýù #МçËJDZ¯áØ—»&.”ðé‹åKŸÿà@C¤¢ý'¾¸h&è, +ÔGD käÞ+˜ohá8öTàÝcoûâ¹OÉØÛ§/–ï lùýHèÍt]qùCVªÓ’û×̰èZrÿ‚‡¦û•;¸P HX†äT¸‘šaÓƒ}fõŸÀ¡ûƒî_3EMÇÿÇ¿öïKT¤ãŸ`aÑu˜á€‘È¿/Í‹žòâŠñõù·mæ¯Ï8h¹Ãû0ƒÝ}eþ“’Ûß§ãÂ>13dáBE¤¢8ª»“‚.Ž=ãPÉ 8þC‰ͯϿStŽxþlP²=>?9-·“_²6Úœ'Ì`Ñ5¿8àL¿NW⟺¬yÖ9µX%¨N¯ãQâ8ÿËŽÿ!¿Näé+%êhš#L]@8à„ÜÇÉ -#äÍJ Jãò§†§b9¸0Œƒ¿ˆ@Þþ(þ3À Ûý'B€çœˆàÂqÿ™|Ô>Ï(÷(Ž+4kʆù%È×ùò\&Í:x ^cg\·Ý{ü~oµ¿µŒà3ùàýE4€w–c ó¸÷Cù¹íùwÞ4àAcùàð`¥œkÂѯöö»iiißo3Beõóqïk0@õ² Dú}[T<ý.è-:(qÔ>  9H£‡Ò²¨“ÎÊ @¬€‚¶´±ÅÔî¦í®§éE¤:‚€û¿æ,ºšs‘’^YØdu›2”UN BçpÁÜ%rÍ‘RŽÌq¦œšš­«Ð±|)oäùÓ]!6(¤šŽõîŽ&h/'ÝÚÀ{i3R°€Ú¢^o¨³­à„ÉJˆâß)+®•Ø`¹a@¿ùRñþ-‘ƒË?Q›îo#áì7öy¾.Ã@Q6ÈQmß“ÌüXަ` P@I=Vƒ°@ƒ{Zý9 A£Ì²WÅ#ZŸhÂ( úº5õ ®—)!Ù¹žXÕÉá/›š'®Óˆ €gs-¿¨Qºzx½š"LÕªwª_ˆ;ÙCÓÏnDKvˆTt¿`J¸ýM8Pð€×¾ GóWf@5O|ÂÑp…7,/V:¼Ôxàü¥ªyâ°Eð(P±¿=™‘ƒ ‘ ÷¤Q¢&E4D*þáj¨¸³}ä=”Š~%ýX÷_ÿ¥€ÀD3E2P­Áõ¶¿á ÀLüàúÕ‰ðDP@F @µ½;Ñ(±“"¸~5Ò܉¦€+)¢"RáN4”¤ˆ‘ w¢) &E4D*܉òò«kï„‚ûð†E%"É쯙zRÄD¤Âc˜¦€‘±©pÿ%fR—N#î?£Ä:ѹtqÿ%vR—®FºûÏA+)¢"Ráþ3@¨×,* _y ¨þSÝÕýsÎC®>šþ9Ÿð@R¢äëðĨ.zøûN q‚/J,D*Ü? ˜áêW+¹% .]JÇß/éê_Ç% Òß?š©¨É Wò‚òñI”<þ¾[ªVG©%/€ÀËG¤"vLæ„z:ý/^xÌÔñD¨“û[yJG} ¦€Ä ‰T¬|F4¨.,Ï@C T§¿F !yÀ(¡?«å¾‰>€g\©¨N…nýøû‡,ü%ÌJáïà ê$ûûxùõ¸úªÍ–×`ƒ ô`€z ó—"&"“×Åqõ_²¨îk.ž¤æSDȃ̤ ¤p agÃÁ ¯çê«$/\‡ðü%Rá;Ñ\ó'¦æ`à ¢Uh4tn cHÁñ1”¾Šz{uµPR ƒ–R©VuNZˆ-PAdYIÅLác!‚¾ev XëjÔÎRR4ÍGŽh]々ýäû‚)`‚›©{¹ÖàPÌ GBá­8Ë,*Ó˜¶6"wIG!Â~‹B=\ߊ—ž&4yÈLQ²V)Í J“9ÈñW¼A•—äm0°’#% @ô0”eÍC%éâ6B\8Þ÷?á·tûèÖoR¥£Òqà@ÉðC€‡2SY©&X”¸ó( *ôhé¶ü6iô/=Üf‚ñhPƒtF€ˆ€’ó¿¾A1ÜVÚöÙ¯/}ðN»Qú7$Q©ð›Ð$P’$*"îÄ :I܈T8ÅÞòqàDàê-™\¸O ‚Fdø‘7Ë?LàŒ¯§¢@·åóod(a†$p[Éý—ñ†€º%÷_Æ ®‘’q¡d¼! ¢ RáþËxC@DE¤Â×—ñ†€ˆ‘Šp HÃ"íï %œ€´Wøðæà^æˆTxd2ã ‘ 3©\ÿÛÅÌÈÂLܸ‡$7è÷_Æ ®‘ܸP2ÞQ©pÿtÕy¨ÿ+/)¿nãB„^ÜhˆT¸ÿ2ÞÑ©xÃõÄn¼rÐàî¯&öOÑÜþö%™\¸%I" ƒ®¡MߟI† ‡¶wÿ¾a’ 'ÔȿᇀŒŠHÅ‹Õ$P޽ ?ä$ºÍõ%ĉjùÌp›"<1“ލ¦\¸ßÃ< …Û6]‘ÿGÐ!qb¤ü6ZÌ\p#Ëî8¼ßÈC¶r]p*¹‘  Úôf¸?á­/v…13nÜ¡tG â~íï`†Û1ˆÛÇ2Šå·9¢ÆèNI¦¨.FöŒ1¼`)(?ÆSð:©DŒCóÅä*»¬Äü‡‚I¶ùàÈiNé2žÂ·#JÖÔ¥'‡„üN&É@„Áá†LA€Å(Ô++½_Ü8rÓƒ!')‡¨gsînUÜ &(O]UÏ[Z_æ¨ìoëZ %Á·å;õ3Ãáx°ª¬,z¨¸8Îìç@ø£8î YëìzÄ Ç%îËJKK"gR¼Pm³äÎöOšNš÷Všk¿´ÏòÇÔj“@È€ÿ4ØÝ?µàî®gÁ „¬ 9 ù¿Š!üÈåX’D¡8Ð@4Á{e|˜ÛGûˆ¦Ö&MÍAœZÀtby²‘V/«V{-ÌáZí[=õ,˜ÚœZJ (¬ÿ‰ÜyV°±­fÃhÝ‘…*ƒºÌ š¤TÕ¤ æ1!J3¼¦¢;Sþ¬ÀÖœŒ©)KãªK3²A0L¡x@dPÌòÝ–2#,ùKÏŸÃQ£”Ðfª«s.ï±DZ à‰A@Mÿ)1Cij¦Ñd‹Tý—€ÐC´XKìŠ`ƒ‹Z1¿¨2!iSa·½OìÍ#â¶ï¯Ÿs™ ‹=M;‚ ··+¸Bó9"õ…<~‚¯? ëëê·€>?£ ÑÒ¿±USÑN-:ß¾fÐæbP·^i+†²\`“¨À;ÅDQÃÁWÿðD[îIS@O%DÍr!>0S³YŽû/ÿPÂp¾<€Ž*o¿šl 3ÃÀIÁÙ¸¥Ö¿ðý!‚áÌxò5íu\ý}±s?"xh;¾Úí¿muxaãçy:R¹æÈ,Í‘Y˃ÖáöË»l-DÓCÝo­ž¤FNµBVm=ä–ž)ǵí+Dúé/ p@Ì*šQ+ö^u8±Û”ó<å7»Ð¼þio{j]±*´ˆh.×j“å©í˜çpQ¼Æï^…j› ¹çJ¡LSðSIƒp¨rô«b òüµ÷圸áSš©Žœ¬aQBl_uY$:Á›¯^o-^Ô’›µä†­âõÇ7û¤Êe—˶nB…o†$ $Ÿ–7©Z}s °—Ýÿ!ç=4‰\vùKÐÀ$ 7~^Ü áãlNl%0ÑÿºUtƒ°„Ípþ¯×ïß=¸  aco¹Ù¥5·Ö¹ åÄ{½}¼qŽ(ÜøøxûC4:›#ïPߎræHpÀŒ¡ —¿ž=SõYòæGgúàÆÃ_ú.Uq~=.¿ÕG)ù ˆcO±Óïoþ.½YBE·ü¶__“*"ž’ê¶îo!ì)ü"Ôúg§8pp×È4t…‡¯Õ(£»‘›¿×¥5[8÷¡Þ "¸`"RaoBµÝµã¸ù‚è¶G~!0Â÷ÄÍUĈeûH ²6 „_ï·á]³öøõ6ü6دǥWþ‰áTÛÇ›o‰ ‘ ûµ÷Q èˆTxt6ÃA‘Šþë×2`OñrAЗ¾»Þ†Ý3¼ù;£ípà ¥;øõN¹m¾GE:÷%¹¡§Á|}§ÝÆ¥¯ý¸³Ír¸àGÞïwj »ô=*’ Ɖ.ØïÇ›ï¦Ã N¿è(­ðæ»ÛŒèÁNÑG¾Û~o>‘ŠåÏŸá¾-`O±Í%Ç*¼ùÞ|§%#A§Â P3:È0?.}¥iÛ'~¿ g†ðö{Ô¦æzåc‡dÀùWâ»>> Ð±²_’êæÅE\‘\À<šfP@DQ‚Ú†³@o‚ºÃðp0Ây¼¼¥|!8Owzû)Ò>\‰mLhɰ@s°ç¼.J@Èw´é<ÝÌÀïWö ‰Œ #0ÁÜ ÍþÑÄ/O°fGi] À’P¨Öq¸ §èÅŒãüs§%7D- †¸ÿ´Ú^õæ:çÙvíL.Ã]ªì:\ð\é¸\û,>r9k7Hᔞã¨õ$Ymß?0sÌòþ˜)³´ÑßÒ& i= ð\\sÔ.ȉõT"h {åæ¿hü_/ÕªÀ@±´%J_¢x)áRÏM-ßyþT÷OíP„S+ûÍéÂ+ º3çpÁ¢Ýà³¹Ðj‚§hìE:åxMùiJ®,}m{CÕ\ r­¦¶ØŸ³:ë›hA[ÏÌí#-€Æ¡Zt¹’¥éK_Ã*xýî|¹–K^çÒàïÒïªÕýSï×@9šÍÿ¸ïG¤XЇÿY1€hÈ¡×~…kÚ¿×—pyeò…=®¿†üåßORjyð{ÑÅàq  ˜ –Ö¤‡&0ÆoBç_Dºþ¿ÿ’6üE- ?Á¾3Ê_¬9tUª–÷ÁvƸøìn¼¦}Øà˜×„²üs>ؾÿÚÆ†•`ß"Z2@(D2<}Êl ”G}8\àÿRþ£Ì¬ðøö>²½á +ü|­ûâ«Ä4´†Dx‰B»O¥’VÜpì-rK|È z¸øÃJ·Ûoáâ+—-,ï©Ô¿nûpÂËÑ’ y¦?¿ò~±"”fÂBÂ-Y}xD„‰`ÐÈÍsñ™û ØãwFºãç×ä„‘ {¼ލáì>ÄD£þ-9¡#RáoâÉ-œýáqOÚ }ÃA ¦T9û#a%5Rq°¶ÎòÀ†¾ÿŠ8n û Qÿ„dpäåEã"Ã-Ư8”1ø$f¥¾ÿ@Þ<¾–á}ȧ¹Á‡œ˜Ã&ÂíVòøZßÀAPÆ@®Â/ÛŒćLD* h¬áû’oÜŒ6p}|ˆïIcÃ>ØÐ¹H>Ä?ìtö‡MWØt‡Z²Ã°ÇÛ«‹„-1Ô¤Œ‘ ßÎÖ-Ÿp@3aªÂ0Lôð軕0¤¥ö÷ŠˆN­ÝþÎü°AÏHÀ|›óI@H/¿­dƒ !·–cÃÊH^0éÛñãÑ—4UñaƒM+"å×·•—'>òúñò&wÚpJjòÁì£lP2`§?!ˆæÆ·¥qa…ƒò†Î¬=FÝmî´¥l`ž˜NµÉã." A hŽ— ìû+‡„j±ñ˜üD0ÜêñíTÛŽûpLáõý«å3D2¨—Ù¢¿1IYÝn}usvð›cÇû·éQ¢aäÃt1¾Î<¾ÿðÌ£Ç)Ÿ"èöøÇo$ ‡[ï–, e–°¨¥ƒ?‚°v#w@(]¡äôÚÇÏ¿SS;KBÉB±bMa DÚ Jc±B-Ÿ–ðí­4ˆ.àƒ¾nÿp¾l6cçem‹»›kª–ÙaYnW_;Š,ÍSÙƒÖCIçŠüÔZ¾ø/${^¼N”à%ç8zEK{¯ÉšË—¡€š¢B`€çÛÒ³fé©SóYzþI„Ðp‡¼±u©B÷p iÉ5émiµÌÒj˜çO{éfAcó:Ò®½0‚ö]hœ’€M`«W÷Sá0ÑÁãɉДc|Êœvɧ¼·)gm*­Àœ±íd¹&uMö’Òš‘éj—¼³U,WØÃ íh”vU@îý]¼o“b9Íž¿ºFÓø»=ûa/ŸZí]*G~\ÝP€% ÷^ßÊ圦ÝÂ6’íM¯YìL%§~Ù½—&“ŶSÊi‡'ØpWJE( ¸v ö6ÝýƒbãAyyá¹å@\f¹áÉë?“ƒkµz§z ?˜àÄ ÇÇÝG~Ž C³›ìßO¨T& “B@‚Dª»uN,»ã ÇfDK ÀLé¶ßæ°ÏS0AO&{Îi ô7âø%…À Îi:JpÜ}Kæ—)äç^nƒõA«GDni8q‡ Þÿt#o!˜áF¤¢$LãF§6l‚.ÂÝï¡„}hÞ3å-Ü}9þ•œé†™êØ?LÐC>˜Å8”bL#ȰÈ`€MÐAÏPÃHÎP^ºcãí%4¡ÿi%b&À8þÚøy8_öñùk2¨+1]ôƒ`†‘Šbw¯rГ‚.Ôun䛈7„\½v·`‚ésú'žðʇÿ4‡ÝûƒF¶˜þÌaw±…î¾ÃOa:9$ð1ÅñŸþwb "A'wâÀ>ÿä“<™é'.܈T”¿×Óo‰ ‘ wbâ@BG¤Âx‰A ‘Šö72@0“&"þ‚"vW"v8=2ã xúÓ-­”GÅR0]t®Ïýg×þCˆžâÄ+ZàBh–ÀãÿOôIÔ°qÊ<‹†c=À Û¦þ‹=›»-?LÑSÔ¸Ò™J¸ƒ0K('Lc%öŸ˜nujt×6BXs:h1\Q˜ŒaD0XÌÓˆ£3Hà;ÕPCp ¶wÅNÍ’œá;Éà ë§UÓ‰9ä#¿S^™`8 QGDsîiCDMΜýa­¢Tí‹ ùüâ@h†c­ëûÈ—#Ègˆ"X¼p8¡èAyçÆW2²tq»w2Gp‚5>û„À ]º5_ùLÓa:x9C¾XQ 'Hôw‚0Ã?Vp‚ŒÇôZìnzX/s Rá/É`ðjÎàɧ!ÀjÄšÓ2  N(aðâã“T§Ú¥ÖV¸S^ú˜3"= @)"Ž&rÞóÓRÍ ‹næÐ•˜Nä,êøÅ…T‚.ºéA[5Öì1Ü^u¸µ‰HѰÍáˆêpHĈ ÈÁ»K(]·—~jÝÙœÙJp8äà±1&.ÝØË÷$äÐ@†Áõ^zMû²èñ‹¡ 1Å08hZ’Chà–uÍ(ÒĺuwP„áŽÅÊK^» ¹îËs‹t¬ïe$#hEу¢(AÑR⮦J,6§ Tl™ +kµÃÎÒ;KsÅ–°?.¿N©€ Úµ‰d€…<·œÿ¦¡þæÉ<Äo˜Í¥­–öBz /×·­o¥‡ øFÈw7ìÈãÒKî½êÑ¥­t—]°ºÖµÓ><޾üv‚K>¼¯Ö‚œÍÏÝÉL"h@Ó6 ÷½Nÿ˜$G_w*MËgÌ ¹µçñûËý2ÃÇ×ÚfjgøólÄVJ“¤$«ÛÇ!H ù‹ÕÊ/Z °˜Iu*Ž£ @„Sþ¼kµëÇ÷?mÕ¾Žþrû41h{_ ˜†’wõWÞX Ó‹S/þe„Ógâ§¼•‚ìÙ/Ÿ½Gž2Z`šÐÑòéÚH§þ@"ì÷ž½ÎZ§:{óLœæ;›cdAþþÕ4ìöño‹ŽçßÃå_Ø4ÒŸÿà9%Ö cÌ…žýò‰ñ€YnuQq||kŽ”/óÂ{;úÕOÙÏ—šÙÒHoÿòEîP G¿:¸ðµ·SqÜ_.bÛý>Œ€g¯Ý Æò‚‰iTˆÂѬÈUð!ã-ˆFpïµúk¬xiß¡é6ññ—[rOšf’ÁD¤"Â;Éa„{O$yE„"£A\'>rIrXáÞ/Ÿ„ïÉŒp꜄‡”íÙ×$N“دg'pê: 3Fxö-É÷W'aÆϾ'tD*Üƃ‘d0©pÿÙ‡ŸI‘Šöëã‡ç='Cî'd0ݧÎI {¶œ+­ŽôñMïð %ìQZGÞBi¹iœ^©Fè᯿´°øÌ—èa °?â²Rõùé\m?©MMúg  ð/Õö-Üûpä +kÇ ÈßY>'¤\Iô¢éF,áíÛÇ®á¹‡Ò ùŠàEºïÖtsºÓÌ!¿ìÞeÆh–ϨûöuéµEâPB¹ðÜŸZW$(ÌtÚïP:Ü`]Ýå¦ç·%¼ùePY†ŠþãÒ[Þ=ø}%P;ÂÛÖ™³£ZìHsSo¿3® 9ÙC)$ŽÒ²Òp­iàëÒÓg¼G–Mw€À°ËN7HÐ쾟ڂ’A¡FíòÑýzóF˜®Å=ïÖ‹„qeóN›wøðáÍÏTo‡pß‹wZç=9YtÌYþzáNÍŽüâµìÙOØKÉÞþoŸ]…î¿lé8÷vô‹üñžN;½²­>œ/ÛŽ~xþ—Õ‹Æ„echÑȲ\74²ÒÑ/ŠªB¯ËÈ`÷^J‚§ûóôs˜a[}{÷ó#(ÜÕò­-w9 ȼqé™l¤a¦¢µk<À75-°€¼~!EžùÒ=hàÙI†õàZzN-=ýJaÏ~Ï7Rðn)·4®°<Åp³s‘ÀBkÉ—ÖÀ,Í3ZÞNk*ÝT^ŠçžÖN¢K‘œë©I8SCíS®ë”/ût<ãé—†åå‘_3—×®ÞOáAI«$·ÜøûòB 9ú·ÆÐÛ…ßêèöûuæN=ìÈ‹©´ÌÀÛÃ’ÂzƒslGªS_dá&•¶²ð-%ðÖ*äÕ9–¯/7qÊܱœ1oáÕ{\¾‡Õ¢vÙ׿íÒ+~´`„(ÈÍn¨{Xÿ¬1ö_YêËÝ¥ûp±˜;fiMËÐ^EUÛôíÂ=GîëÀ[B޾Ö+Kóo'¾þä¾’ ¦E‘ ï€31½ßèî¿A¡Û•·’Z²{?‡Ú±ïöñû?T7~C‘ â Œ)ãÏÏCÇÍ哨©9éèL«§¨àêÉߟè*>P€§~ù‚eöÈíJÔž®~ ~[ÉýŒ 4D*`(Ƽ·í{÷C3®tú_hhiHô_þþÑ쟘À´i1ñäÀŽn$ð:¬A2ýø°Žý ù¼Ãó%9õÛ…ðâkò@A¤Âh/þN¨ˆT¸íÅ·¤€‘ wâ=’j¸òÛJöW퍀ŽH?|÷í¢çpÿL^Ø6íÇŸ·«®þ±¿ï¾‚FÊ÷Ç`§S¥¿^|9 I!ü²ˆc;ð%úšöˆ¶øöáÙÛJùNhpÿzÚ·ÐtÆiûî;Q üýW¾mÚ‚ fzöÎ8ýñâ‘GsÈÝ?ª%KÄÌpÀ²æÈ1ýe ¸£¹m§ÿúÈŸûsòÌÄ´Óg1’^¿àê“Tbûûˆð÷I*áŒÔMÛ»xy!(¢ÚóÛ¸û‚mÑý2ÆGÞ¶[RÇx ÓríØþ8ÈxÛùJ¸úÓ®þúE %’$…¿VcÆëêï° 2pŽ8ûö;QÁ^ž[âI€h¹ÐIîä>„Úå8þ¾S0aJ-þþ ÿˆíÀ£¤ž„R¢7ÝÒÕ·2N¯`j—)€F,ÇË7*´ˆ·–­ý¦C ;kg*ðü{Ú€$OŒ}äóÈÇN_+Íí:Ä]ɾˆdRAlÒíF*;±N2˜^JØÚd‘·Cäu`”X1¾Ç¿çQš€šN9w4{¸úÛGœŽ—ùø €Ñ®hËovþKè.˜' ù/EžéØÞ–Vdc×ßJëâ|5)€€áy¬ÎGèÆ†Á0H ²†ßÓt¦1àðà ן=w¸|аA’2Öo¥ÄWñ>KÌFÒ¶D•aã›:С¦+ sëõp—ãë®#ÚhêðZè硦M„,=Ÿ#ö3%í³Æ–alVºœ0YÌ¿áfõ­áå rY–¦Î­Fïk‘‚—tUOá, ×ÎõK»T.mŸ¯a~Ò0¨¶nLµ,€¹4ï_¿Ýçhÿ× Tä¤w³ï¯™_ÏyjW ÍJiI4ËI®6q9öšC´ÙµÀ—ç@Ó…Ï/Úa‰Ô–¾Î5Œ¸ü¤4Ð=±ôůiZh& õ)Fñ…JÊI²6KlJè–¾šçÎ/ÝJ Û†¦¾š©Q~¬ÔþÆÃ/z‘[Î~eÚHt+óü„Ë´1XT¬­Ê¶6-{ ÐS³Ž†Rd­ê8Òn¥óª]MC·m`‘Až´âcØz.î”(x¤¸8¬Í=­/ËO(b)ªí‘w[E­ááÆ†ŸSÒDš$y¾ìK§‹rcoîÂÐIxâ«»´Žëʼn¤ôe•ÀˆH°y4}¥µQbÆvEÏØB7AJ%øa¹ð ©"¨uäó<ç“:B:"tBòà )©ðH©3ᜃ4L"› ®SkÛõû3GòÅv£5,+ÝÉâ‡y½q E6É+•ÈW'œxþ4¤9€q E©è$RQéi¥gºŒ&PCÒ8¸"×›?Žh{Û¦eêP¯=ú?pýc¤ü@È>ˆ‘ÈŽÍü Œx©¤Vž¬®8¢™˜±Mó~æi{˜Ë¬pK|€¤^žZÔܘ1±áÔ! tÔ‘ë\xÓlcÆ—:æåxöf;À`õjÌIÛ¿ y3 ©ˆê ù¶¢öE‡;DJP‚lþ°`%@Œõ¯/bý+4ÁŠGé/Ž©=Á„,È÷çªTÀE“ë?lÁ²ªe¬Øæ€l&Á %V†&æ¼JbÃL%ók~š;ó4»퀾Ù+\éJ Dnå”ËwÏC í² b´–u.È‚@ñÒƒMÔÒÉÒcp_Œ -vØÔÜ$=LÖ"Á´Bìf$é=jõlXž¶U™Å#PÖõB:ˆáUØÚ"IÁº¥`Û¼IÆfIÝN¼¬=묦Æîçô4èA ¹ðšø4ÝÄ" î€à¶û” èV]Ëú:;6«°….K«.t{héž~ŒÕÙLÿ—É2T¾Çˆ…RºE÷Ew²î¿4vÁšxþêÅ ~¼šd gEM7>¸öù^ @ G*y7ylm·¼µ(D?{¿* }ÕI‡'š @¿(/—Öz(a*‡2"xd€Šª—JGý±/’Ò®ÍnͪdFâ…¿nl bCE1%쨨¦j> ƒ l×GCžÞúЧ°ïØ7’ø`”ÐÓ{Ö Q˜2°þëÖET8lá8ÇŒÛrØ`*KÝtÞ÷ l‡-8SËUôE´— Éö`=3âoLg¢ÀȆý-ÃJȆ©ý™gaBÓÔVl“Mš·¡¡»9x"QãðêhÎr(!x㥄I–ºç½`ù—2T«<)Á"P!D_‚fg¦Á—¼À ,8µw°A±ÜXCé°m¢ç7­t°b"R1ÿÌ úüˆX€°\Åú ¢@iêUµÆ( !BÜ.uYô†ŠÐ.Ê¢„ªåIð†Ô1=l€UÊá=±E9lpâõÓÒ,l´Œ-½1 S;¼(‚&6(±%€”à…cŠ\¿ù#êxâPÂDIÅt#-YÔªX/`¬¯©^>’«'÷>€¡ôö¥Æ¬°ˆ]¼‚ï\«(nä %„b%ß“¦„¦Ê8'‘ŠÛöÓJ‡-"öÝÚK 3íQê#Ù¡‡©ÐI¤‚õtÊ¡c°àå¾nëÎO”ãk–æÛ­Ñ++åÓ Q+ÉÀa‰•šûƒ€Ê,ÞýRÍUç>ä1ó8yƒÇt’ë—7d¥? "Q×þ‚,¨°\Y±4õ˜À4>DÕ˜r¨fqZà<"¾ñB3` ~^y\Ô³$¤@³ ~í‡N¤D÷!à¾CËš¶iìËŸ T´mƒ™dO?2`¦Ö´}äÒT>·§`À“lõáQŒj eÅ;Ütò¨ª€T !Þ?´Øý~†&›1!?•mX5 ]…z¦¿)–—»?‚. ‚C»á³ëi½É$äeR,æhlÏð¸þ·H€ÉZÖm ¶7ÁžrÚ¨rj‡¢­u÷;vé)Òµãñ¼I‘§Š\ÚéÚ¥î%9ÜÔiQ઩N7ÓýÅ? `( 2+»‡z‡Ø =Š]žôf”äQ‘²A½¬‡>™ŸþÖOÛ¦_> ;q­Cþ½´*šW.ŒäòX]ˆvaáùÐ7Œ)"Á³(´Ô­d¹sÛSûc5ƒpD(³2Óë‘©uæUÓø$ n)‡{VXô‹ ¯ic h„–B,ó7ŽHOò×¾ò™pÏ‘—/¡hÛ‚§ˆèÈ[[©Íæø|myv@ä¥ w¢fRi¤ôh¶$”8.}¹kFàƒ­Ü°ùʘÇðGÓêHd9-9fò"š¦=Ÿ?—}øË 3y–kKçé¬ÛðÆÇ@ÏO‰ž‚©[? RŽ=MŸpIÈm ~T+ÙÕvò˜A*rG8£¿d䡹×ÓÓ®yôÄ—‰HE÷ùéZ¬“Óò(“ñøá„Û¦Œ¡dœ•ò(sÈÃäÂõyè5¡$x…KÃQwtÓ¼Q’WnD*Ü %Á+ ‘Šúw(£Z©%™Ü)¯‰*Wâ RÙ~XÍñ!ý#r1YT+ ËßXÆŒ–ªÛgò0¯ÖëIe?óâÝ¡˜’²x>A6ýÅ ßZ Á…-9~Áh Ï’W=‘…[^×ðÓ-Ÿ!'¯†óãÂã5^)ZvÇÍеHî¸÷ó¡ôü¹«¨á³Ó÷ÂgGp9€üNïûz{lXMk¥rnŒí½ïúmï|lßⓘé˜W»ÛUËmN#xaUí˜ã}×Q:9<õõºóÈíN·°"ÍÃâÛ«åÓV§¶…§.¼æ=nQ O=Üí #àd£Tk<Ô¼ØÓF^™¢PíŽWן¼d˜Áù­qÒ~ûiÞžñ…ý©]é}sMÓîúJǼ[Irº¾îôÔ©¦3àxWOǦ¢2!ÙÇç«]ävÌñ¾/û¤rŒFIûÞ7Ï$ ·§Žwý×´†§Ž·{M!fU‡¼¦ãÝÜômù¬Mp´áÓ–»à|ׯ}fx`'QÕ$‹ã®ïtÂÝWû®uÉB%F“ò8¼ˆª&lÛµOÛ}¥ùK!º2(®u±¨2×¢dР25 7úˆzºîaÊ oûçGiœxtÕ\ŒÓÈ~cnº§üx奰œQþð¯¯pÈ‹“Fª‚Yw*ØîvøáΨÌÕSÁL¾‘úÞZy£Ë{‚W[»j5KÐC¦lÆÕ‡£mk;¨ÆoÈ+äåíÜ̧““á!CöÔuÐ3bx+jåWm;GúÏ¢ŽS{³³[c ×¢#k  äñ-|šÊg×ýî1ôñÚœ‘¿h1êp†–D)?\ÉNS+Y޽D÷•ö%î[O³vÙÍ®‡~÷ë+ä]Þn×ù#ÐO˵rt;t¥šëz棩֙uiµÍêófܽëiN­MC¤>cFM׋%P«u_C74)r_?1X9·J0×y „æðõ骹èɆܚ–/Ë;±rËu^ ~A{é¤m%ät]§P‡ÐSÛJ–‹ºÿS¹å:#@~MÛ@¢®÷ÁT‚¹®'÷‹Úu§•{®×m%Ë›E]£Î󦧶•,ïuœo®[ÉòaQ/ÄÌõžÔçû…MJ r©‹ý¨~ò¬d%_™Ê)‡Š2ÔMÍø‘>Úˆ¹º§¹ g8¾éT]¾v¤ÐDׯ~¨ê´ 9ý§Nj,˜é7~=RùJ}òØH¬M@ž?úŸµSȼé”TmL‰Õ-ñôKgƪRJ<Å¤ç²øÁ©ëBŠÕò‡che_¡©8ë•*ë¿q=/$çmA×ÿ”e*YÜtViý§ŠGEŽÆTv¸©„‘ã=*Ë©T+º|9øÍ9*oNùôÍÅÓ3)‡³³B›n½Æã‰íâ%X¨©ÏpWÝ$'„^ѧ’Ü‹6œVôâÜ&’Æ3Iˆ q¯épªÔú6c|¬Yêìò ÚÉa«}÷CYïpÿyÛ Õâ![9üÎ+}*dÛœÿJÒa‘B.g#+V³a3g“BR­éÕ’ÞÉÄÝÆ3^óó ½–J Â;£îùŸ83õ,Uáj÷<ïsm‰ ?£4¦ÊÀ™’¿é–›óO«é²”_ÖäZø!úo õÝ.2ÿJ s©’±{,”THés‹ðC㥠6kV©HŸ›€ßo½šUn¤Ïñ[|nC BS ”ô`*å¬Ü‘ÐEƒ_©5$P÷é©®Ô³áñ«Ò?"Þâ³f~ úñá®ñ2Ð ¸Y…ûì‘ø×´ø:êmsýj{[Q¿(µÂ×:‚§çôKÁkñ@W5~\®LúZ¿&ý¬î#œ,on~˜7–:còô¿MKÜfCÿfX0¯YJ_ég¥ŸŠÎMk¨ÐWÄ¿›Í‡O*è«GB>ḣ›Î* ?ÌÐ5«poéG‚wO?P©t ü–øU`¦ß¿önz î­Gâ_ fzðt«po=ÿHxlèá֭½¥_ ¿Õ5ùôÝ*ô?¡+U,PÁ³ÊR5ÿø¸Q¯]ú‹Ÿ‡â]¯ ¹ÜšT^ésÀïD±ƒî‚Ÿ+Ç2öåÚÖë ¢îù:ø ´g.ýE¥ö„Õ=·ØKW^–ÐØ}UÙº IÖu w°oŸ ãgâ½xé-~%ïN½í•ªM]±J &ž*GäÈþ±ÜâÐcòYß )jJBƒÏ5k?[ OÂޏ¡ôÓáþ·€«GÊOÙt|òrÎÈAÇícÃHY8»·Q ±*ÉeŽ$Å>–µÄþ}È7qþ8ýí_…µZ$=tö·ÙÝ)Òõ‚)G‡%r¥« uUýäT—.í/Ûú5SgäVw–騤‘eI!Ûõò±5ó_ˆKåÄ3é^©ŒB\G")ò;qri PÇ!­ƒ"eþ‘ñ7-è÷`’ÐÝ©£'Ö]Ttø©„»‚ Ô›ãû_Óun'ƒ)]Nã0µL]Ç(úGƒÿ`Ç]«ÖQ‘„Ÿ 8%tg;ˆ e+õí~Éóè.Šª=mΪÅñ;Ò¦S!Àõ—g®³gšýÓ°eM}2èå‚tõ(—WZ-Uò•©ô O•AQÿfØËͰÔ)¢%á7Òl-*†$]ä3\Œn»ÊæS/»ï¡÷+=6|¼zMuÎýf‡þ6­@€îbÿãÆ z /L¾oÞ^ÏzÛh·ÆÙcÒÂA|þ£IÇ“EîJP0PwðÖðÌ’•tù»5ÍnäNy $MÝœÞW•˜=¿]j_¾¸‡w_¼›•ìïãÄ(‹ÃŒ¬Ñ÷u<þnùMgžNm¥•HA'8%&‹À^LðrNŽšì€3Ó±'„>;óÊ´¸Å6Ó“_œ#«%¼ì|q“t×îú(Ñ" os>^ßÌ™…ˆ¤¼úbÁ »þ=*(>¸aQsíHà˜Îà5‚nWÌPj'ÃWÿâD7iÐ~Y˜A)Ç‘±R Ó;Ô_yðÁiÉh`æ×qwEMØP×-wI6 (H…^‚{Žðˆ¯QÁã †€vh‚“AÑÃëèALD*r#ˆj)š™cQ <¨#7~ˆXVàÄpÅ uZ7ÔøŠçPšÿÜd6ô™d|R~PæÐKÀÊÖÜà8µ™a)bÆÃ¼h"S#É <ùbL¨ßùž¢¨ò¡™ÈÔ>L.ÍäòjÒEÿÈ{òïÔjùLTY)WÇ‘ÛJ~Bž1 0YM™(¦3Ó½2À1ƪUKG}%ʶ MÅy«0Þz(5Åÿɨür­nìIœ9|Ôš÷/î´D*X 3RŽ÷„¸;­ÔƒN’L”+ä~†[2¸èÏéž:|¢)?Ž¡¥q|‚dŽ’Ýr lòÂРð|¦CD*Ü“b”͓Ȣ’š< €›ßÉ5ê«»;“…Z° "¾1Í+-Yg Rážj#Y¨  72,_™i?^v1‘fK†ÿÜÉ6/ñ@$¥OˆÂ°b¢)ˆT”Ä’êýG®kuQþ™MxeÓIÍÚ¬HÐ2†¡FL$Ãêú»û§„•‘¦ÈÝ?fŽ¡‹n¶ùy`Í-sÊøâÆp±²¹¯|ÂŒ“ç雟–‰æ€šnsðƸxÑ&½ô3’«€CÈ/š‡H^˜i†™n«;裛m êŽ~”OTã´Ä‡ô#?šW؇ ­Ã×7ƒcB4màaXé>ºk°f“/Ö\#ÃÑŽ}b!®0ˆM†å:Ñàˆú çgÎÊ]ÅÚ§Bïf—–ÄÒRÀÈÀ׉%Ò,Ÿ&GG®Œ w`ÉøÀÈH"â±×“ þD¡ù‡[†=‚}˜¢ùäsü@L$¤£°é3ó‡h[Ô±fÂfð#–|™É?kûK9J\¡tgpŽÒ¡e`Z†@"IZ VqΉ u$õ¦ ëøWb"Ý:‰ ÿè3€3©ð:#!8 UFòJPÌ+o ˜¨2þ ŽÐÀ2Ã*%waHp&"_”YIA©øULAˆö+Ã$üòô'k'‡”/ ÌЬTuz¢ä2­^u‚‡nÕÞÑfÈa“éâNòi'¶bT™.Z4!úw&àtcJÏÄ̇Už|×Û.Šó‡y¼‰ó¾#wHòŒò‰'¥ô+Ú–’Ïcô$¹Xszû.xçÑe²gÉ4ÐÜh³ãëKGÓŠô±Ç‡„^^±¸YçC9ýƒ2 ( @oNļ›@)!nr”JظËúòÐô¹ØÝ…äßÞ‡Rfùà‘åë+yEy-f²‰&y¥ WÁ/Å„)òúœb€1¶L£Ìm@Š0Ë!u§Øeþu ¢éˆTô¿ƒ {9ö(1ØõÂÌ4¶¨;M,gf€‰T,OWàSF¬öh2¬J+8Dy/ædoý§¢‡t×Û°}’öå˜P¯¡>½2]|ØÆr‡2–@1ÒäKŒL-šëŽá&»a 3=<öpb1ªP1 #‡}ì8¥¨gòVf®#ï~l¦\ÓÙê*¡àžíÉ6–£dg>­úc‹v Ÿöé~M$ñ,2»¨3R2¶ô8€Ô1¦e¸è~›õñ¥œh©ûxKÔR®µ¼¸Ü’ŸÖ\Ö4ÅL£Ìej0/4!ŸÈ3:.ƒ¹Â&äÓÄ£N4ÕÐT¦í•”4§‹šþë‚hØ u~(‡=“`FȇQ¨xiNç¯Mmì³ÃYòT{*FrÛLØÆX3ƒ}¦ ¶9š+(fº?æ—#¾ìø©åÏÓ‰±©cœ ¥+åóˆŽæá¡A¾;³M7*©»Ä.Ó͘nѨ$²±õü Ða£€í:I#aå MÌ”¥à­™P´² ß‚I9Ã…6{åÍ~äÉ6`‹É ùN9Ø MúÔ)ºqƒ»‰ç €™h.¿o\QYúA%…Õ‹05f:XÓ3„ÜCb9õ® hÎ$´´ù«Ô3PÓ03ÀeFx&é“ócÁ`4ÇøOõÔŠX×þÂø2ݰ{ò%ã ({‡tà—™ dN¢Ë_ˆ™æŸ£9 ç@üâów<§'ß.uD*|;&ßú D*<ý"ù&Ðg"RáþqWr &Hg$A5“!g:Þ3S¾ 1~}´·ø¢W€L7#iú&±^0JØaŸÊeRJAfX'0ˆÁó‘pc,cR³É…^Jâ5ÁÃ}}P(x‰Oí ãè¬C6#y¥»¹Î#p}ÈgX>Òt¢”ä3’|–¶Ée~É(¡¥Ïë(9«·)E¹3,Õ üYÉCÚ‡B<H䨎É%P¥„rgá;òC>~ä²Ñ¹œZ3ÎK>à¸f:ßÔ¶}r¯|¹h9#òa« ïnI…EQ»L6±½ÅŒ´·Âd´8u·ØDµ7}i ò Ê %C GA3ohz ÅJ##=ÓÓÖ¦ °?á@g~ì…U®”›|˰ùCîTê:b]š‚<ˆÄ0ÐÌ(<ôDš‹õ‰àK2PjŸÐÙS¡èÖA!Êöí¡a®†È±ñ1žXr» 2##=?Ðβ|&ÕÃHò WŸÌúQ¢B[0?Ò,OP›&Ÿ™ CˆhÁÀÃär?ËEÏÀÏLZ.^ÐQR×ÎÍ™ü!¡d|'æ3•[|.’ù%ùÈ,‹ü(0þ¼x´dšž62¾ƒ=\³Púd–¦œF~䇆–ÿäÈÞcÆv‚›"¬ûöÞ¬-8-9Èo§u`gB»g;~¡2Ü ççþdåÎ\ÝÊT}h%E.ïÔDïx(C;æžÍ…Kn‚[VÂKÒ+ÜYæš+fý晖߈T¸÷Ì-wrOC¤ÂÚ× îéˆTø̸NpÏ@¤Â· ná•Á›™aÒÌÚC@ÞMaç7Ò‡}€._·áfû­‡Ì2Ò¼¸”ì“hd=Umq¼ƒXê”¶uüC5ÖÜGÛ8é3©gA='èÃÓuB93€Ç: Íö\ðe†±öú;¢•øŒ4%ÀõY]ßÌl¥åF6ÇÁ7ÆŸý¿œd†AÙ Cwp«’¢ce'@ç•×` ÃHÆù‰ò,ƒM ÂdŸPÏ8$¤®t›IÖ’ .~™–kZ) g¥~ÙÒá¾Í2}fÊ!™íPÉ9v Íá—CJã–´:J›m 9;c;+ø'刖ѧóL…|»JjA$Cu"ÚQÉQž§6RêkÎŒ÷8O9º§‘žÓb¶!'Xe$úLD*¦'Œß&Ê™i¦»SY? !um$ð-ð8hs½hô‘S‹ùÆêŸð¹:Bé@P@LðÍêÙ®½Ô§ž°¦ì¤”–9Ý­dSœW'àÛw°Na¸Iù;4‰CÄØ^tQ’k.Cï^a ©CsX3"?ˆl?3èÉDZrÐff¨'š“ÜAŸà9¤?•éã) ‰à”pn+U…Ô Yç¦6ã9/ÍŒò,Om[3û}z(íäeœÊ"8cfû’r8’‡eÒ¹!1ƒ6넎f(oРÑfîSé@Öõ#Ç~[4÷‹>ÁBð µ(uzr;¨òEŸ®©csÍûUË3ècþÑŠe¶íG M6ý#âøá¿~€æCJÑ„GØ$’Ò!¡ü³ I‚^Hb#þ~p§Çäìù Zj¡.þY6Ú£ßT4D¡ÙTzÂe¥ÉV~óàÐ'ÊäÎfâ^ý„ZL|ƒoºß×É<“wÕý°¨~™iy2œ_lÙ¸´ A—åëK:auAJ¸”NNhƒ‹¡£ OF8¤´ ÐpsÈÀ‡:¶enë>ÑËÙP­ë¶QbkÒH€9Èa°ƒCaeÈÑC!·ƒ.‡„ØõÈQFÇóÛl’ ºüCJ)߆  ¡O˜È‰Úà›ÃG5›£ðÛþKE6Û ÇF9棴9rF({z<)©i:$ÔM=úÅ‹e¶ù)ÑÆZÓ׿B ÙÖ´ºOr‡ý 9Š”fðˆj42ß@‘ ¶+mkÚåIê ûòœ;o&ðEÛðNÚBëôšíùoKÔ²×O* ù6üŒ_àAàíš/EsPÍvÃîW Í•hÐìˆæ¼Ô„!ö°’å}@›í]fRÏrq#RaÏ>©'€¨!RáÞMê êˆTøy—Ô@Ä9шöáŸmQO~úʇåPÏ´öôåÍSyðGŒóÔm8æQcZˆTxHÉ”PôÁí@vy¹ÎúÏe®‘HEÄ~ê Lf‰TøÁ™ðHÔ©`Ñ"or“Ìæk-n_ÂYn‚â…£CKÔþǰi°‰ÆÄ3?(%§>"\ËücÅ}´—rΔÓJ:ú “)µ+Øu€Æ¤c| 4ÒE—Wn*ÂÎæ%ùH'–ìãH+ÔÙ¬VBÐ&ˆ³”ÿ#$-hì ôÞ´#-%YN­~”¨y"Ÿ¡È¦×Ρ9ü!5ëòÑ´úº¬>ÿ>¼J+ðGn³¦ˆ#!àgÄJ³u@èÅ›AlrWç=r­º8¬t´ÙûrúC3P†„hD"·w2¨!è¬+ðèÈOEûÒ’g]^Ô#”Y—è€P´Ôm?ŠÖ`p“{âOàÅF®"VÞ6ŽOPÇø³L;ëú¡ëÅ'Dšøyý2J6uQ>r öCfäR®}'ä/(9u·$‘Š– $¥u™¦Nsûö¾è =Ûø¤.ôŸÌuõ-H¦"kÎà!•ä*fÒRÒÔ(ž+;MCïÀ›uhh]†+·‰R»Ž&J/ÙÚ³¬•ûê2(Õ ô\ÉUÛò’pJO]õt¦•4ÕÜȺ\ÜÿrU ÑRâu³|º¢òRqv¾ã8hfE´ècÿ*½!kâ(ho6…ã94´Œ?‘𥞠&u¡S.r®hŽ€ûf²[ï>fynIÑ•4#/{iBk~ñ%©{馷%[Ž× ÿ˜3ÊCR÷ÂëÛk|^hY^ÈÓ~ùQ¢¢„Ò2¹¨‹½ÐG¬².5ååà¢ä¡Äuç²KôtZ’OG¬"Iæ9~q¦g/ ­T ûiÒX—„3ÈŸbY¾ƒtÐÜ!Rá©1 A‰3‹÷žöн> d‰ñ¥¸É…ûTÖ”Ôl¢ñðDÌ'I½ºÝÚ›ö °I˜¹““B¥žÑ—svrL Rh>Å8 óÏo0hùE#ßèÏæ'oÚ1µ¤9´3Ü"ãÏ ™dœ’Eÿ©xIæJòk\Âò!™’öÅöÕès;5P¦\îC9iåzæÎ6oÛ7˜‡‚””?‡1âƒ+ú›¢ô´W§‡ŽX†¹#â™U<•ÍÞ‚Ùf ^Å`³|Û‡^&bùÀä«+)^ÇÄ3Ýv@zà `³Ê‰ÿÔ¬­LÅòêËýBÎb;êr¸Iˆã6šÅÊ{¸”mÅ9ù᩸b"´œÔ=YE/î4ïœpøf'ÿbŽútÀ»[ó@ŽºáŸðÀ£Z“Ìsd7œGÃI‹ÇÞÑ¡–¥D+R¢‹æ$‰UŠÃ?±w±R1«ª„Ô¥ÿ¢Ë"D*<~fVia¥ä‡©èF#t{u‚–Ó"/,ûß'òs¨ xÛbt9$´¦šë”C5«|"?$x7ÿÜô”zúöKWM—µ\<åö IqIqQløÅ!!N2çC=gXYå°ÊÁ”;Ž­^_BQÿ¹hnD6^Ì<Üò«Gv¶¹$ZS$R1ÿæ‹$/™U$W៘³³”ܰŒ ö©ÞVúW®ÚASËs/ÎÆæ¨Všõ`Œ‹áä°Î~1æ%”¥¥»£ÑV·ácÌ5Ö„ZVùSúâ©CÃ93Xf;ÆcoPÜ¢"‡º#¤ã+ SD}Œ¬Çþèõ¡"7ìL‰Ì*ƒPÂ^†‡u›U³ŠràÁ†FfDv¼pSëxÝ-ÍfMv—ˆÚŸÃOê íÎ¥½ºé|ù¨ý§½½`©I…ºaÐ9¿~þA5íec ˜Ó\ðÑ[uÕa™j¥¥¬ ªÕŸº…¼iÁòq ÍI c^>æ£Ø°Î!*^„äç ¯¨êmÜðbŠJž€$Ý}8 ƒ×~XÀB§êJs±”ª1¨VZšÃ?˱rrâÕ´×ô8ü”Ã4o€f~Hè(aÓ¸ÝR j‘:$£–þ‚u –°¤5(c¼J^Øc`‘MA®‚ 4«¸㣠6’rަŸIE,çŽÜáúnæåÌ—E` ò7ŠÓ²¶¦ΩtpÉè&ˆ‘J´©ÇÆô«N\RŒQ#Õ§£<#E4ÇYõ7¼cyw#1`ŽÐ¤Lû§I(–ÃB´„õ4‹pBË„‚úi$>d¹¥µHs• º_øQEL·Yfœ Û÷lÄXæ-ÅíÃ*f™rxêK0n¨øÓî_z1¥¿Š—íÁÌ@”HÙ:A8›SæCTt½˜ŽC0nƒ~¶d__bÙncëI°Ž%Ũtÿ²J±åÍë‡eî/¦NkûéM$f¥¸ªõ¡ânfYÅ­ëüÏ)Ìq·›Ufê¶ ×LãËX\Ñaªà™§b„ÈO”à72 5ëzy†èOðJdÁÄNjȎ+¡ÇW ¥‚ßç´2Š,òyyGiªG”Ô¬J*ŸZ½†ÅðkëÁ§ì’ täþ§\¦ª•üRŽ–ˆ&Õ_FZHT8Hrpe૚/xÙ0TŒ6ûþ4m*ôgQ½üGsEå]®Ã9TS¬iy ïÃòú¡ ù­ê3p‹UªýêþTÓT‹ N1Ãè O©G0’MJd²áù[\{ðæ¥õ¼c²©>‘šÚøÍÖCÍõ2NáBøÌˆ|²9x”ò8%رÕLu|xM}oV5(ÞÈæïPJµnͰÇàZßëI6b˜¥´ñ3 &P'é4§«´¯d“:þ0ÐSÌ_¨Á¾zKÔ} zk¶=Åd£K÷I TÝà2¯¼á‘‹¤Ãx„Á8QÈÆxWºBé:xsh'ð¨~ uA‹ŽÏü L5´ 21Uo™ ãÒyØrI2z”|!jA.Õ§³» 7Œ4©Hr1(Y>B~%Ù-•àÄ&‚šˆÍ¨¡9}g·;l³’|ðñµìR^Uïo(g)i%øbáO%‘Ϫ¶7ãp Þ–)‰?´Î“´šœ"vÓ=|‚aú¼ÂNÒg²É›Q把„”Ô0ɆïÌ4Õ¯² ö8Ps4G‹”tÕªÐEãËÕZ¬¤Ô;KÉ-—Í÷ã`h2©Ä{ôßãÏE½8ÊÈZZ :×Õ vrË2b<¤òø‡FrL•€”ýD†·†” ¨Ciw¼ò‘„xOwƒÆ†¡¤dEMµ<‚°À#WP†r[Š< åe„ ™êY{(Õ ”mÍÛäÑýv†1Ý˼áPËCt-in¬ @Ì ˆ„Æä‡G5ž&ûÅ/—°2–fÀnø¥ûÃG]?1Ò!=Öf°…òd *x˜ò+ªŸ  €A€e¤¨; T†ß»®‰"# Iõ_ZÝV*Ve¥•0–rbކׯû. (±+~Yé['*dU”ÚKÇ6é %êbVé?Û¼qÈ¥&ÀÕŸt”Êô»·>¡%PÂÙJE ¢ŒBEPÄ!ËGȃ'®À‹¦þˆP1d¬ÊÙY´RZBQiu_ Ä+±¢šhØc~2¨\ø‰«œ6íƒù³–1˜fe=41–?äN8iÈUu”¸c™;02Ñ­ìwÊŠÖJÌNšöb„á"ÚኸË+y ýé31dÂXJ f¥ c·¿õCNpX>˜Òí5íúÆV‹XÄÀ†Ó§Wð tÍ –Ê'ùRÓw¤J Œ¨AÕÔSm5Bó°H‹Ó2šE ‘å±4RW$œL„/?ËqXÍ*ˆÆŸUÈa½YN„9ý²!6±Sqyˆ»D·É·N’•™lÑ;A‘À/Ê à@²û .Aù¾îWe¾PBbÅQh…$žÑÌ!1ÇÐ\ÄGª»¶dP5’”£(žòR-ƒE!@s°7±|¤|¸£Xn»›¹v‡!fjVc†ä*œç“+pøh™E]ÅA^RÞRݘA#Nä³ßLRÍ4K­ §õ¤o¤iûq)A(°ÈíOòIpóèæ»}ýëP¹Ù$ûDTnÆÐˆèmn:Ƨ[ÝÒ´=š=<þs€ã(•ße9(ô6BÓ àŸ4óKO`iÁðIec³ÆíVwÈ_û›ð”#0e†zàŒ>óðÓúòËÍ9±°9"³†D- ÄJ!ú›ë3Ÿ~)ìÖ–¬š<[«Û¢¥õ ÊM”n>ßyzfR‹zןä­t‚wƒ;Ôqׯ¦V•×sø—uâ1Gó¶æ°¦8–!d݆¨›Ó½ËB¬YoÿêLM‚_VÞx•íµ¯!¯žê¿€&²?¦øúêb>Äh"þèÄxoú,ÁGi>W*!ŸÔšDú2D8dó$ãÚêOŽáðÑ+E5ùc&ƒÉ]$òâŒ>Z'¡ÝÁÍ4“GÍ} FšVãÃ7z¾Éèü‚½ûÙ°ÄT05Ý(@›$™Çæ¯])9Éë‚(u‹áB™z7K‡M8®®íÚͧîúȆ & Í$2/³á fÊ«Y¤{á« ¤²õŽ(‰Yå6œ…¼pzL«—î>öÛ˜PRSÝØÍüHz±ýÀMÁÙ¨,ø9ÈqÛê#C”[è)n7ÒR½Çf@Éa¡W<À‘Ñ©œŒšÀq³ýÜA äwD?]J*þa¨ƒä¡7/Êx›òîâ+mPòožsWbÈõ 4y E +Ôt9¡˜E"Øáäk¸HŽ®Ü!¿Ïɘ¬î>+½p!V9¢Ó9‰–-õ`›kf“í¥—ÙÐÊð¥ jƒ:"ì~ ˜¢y¨å¶=m­ Œ/Õ¼ Gld‡êÌšôÃþŽh4>°n¢TÉÍÕ§6‘«`D1D#¸ãæreŠG5|Mìu Í;¹åEä¦;ghzÀÉK87g:ý·üú"ÇÅgèBçË.#Åb¥}~Äó=î9³ÚX‰.A5wÇí‹5¬/Àøq“7纸õd$ÓI0ˆGÓž()ŠÆn™>†0“¡ã¦Oíï 9ÐR+ýNS‡JþÔÐÈK79¯yËFZäa‘r>?r»+çðÈü¸—‡õŒ:ó“‰=¡æIPÐà™H÷îEÅ9Ýÿ"ÿ;ùámC¦÷º:z¤Ž7¾\W‚Ît¦ø RÏŸÔôÃéèƒaXga8,¦—å$¶'ñ½p†ÁýÓ†ª šñ›A¢qºa´“þºã™ïŠË˜ÁæF¼6¸jÏ×û’LÐÇÍÌ6ô’9È*Òj|!ˆ|; &“PÙæ«ðùàœ%qFµÏ[ß§I¸ZpHó¬´ö'úteÒ‰•àŒ¡•WÏŸÜšÀÄá-â>sÀu”èꘌLRO) ¹ýÑ#`AóiN'Ù@ºr8Ã7J9êÍ$¨[­('ËàÅš'„’J·•L!ZÁÍlUëõ 3t>ÉQ¬†/Tf ÈËuº\N)‰5né.º0§È“à‡lÓân·|½t!ÑêÍsõ:ßdéG‰sÖû£ñÖpÑkhVP?°‚î½€s˞뜾œÅ±nèñ…œ šµ·³’Ž$šæSßA,I4Giül|`Cl;×é¿Ô¬Lif§e¹™"è")GJl}$ÓPZ©ÔlʶäŒDRòƒ#5`õÊvMÜÕ€Ì¢Š¢j¸ÝÈÌFX/°6šOÒ£¦÷N¹­”bÿþúدæËÕ‘ÃZÄÖ|‹3l‚ǧܢÛwoÔŽ@ ©÷e:ðCçÞÆ×6:I±™eì™ A"+èBàÑÍÈ#˜à ‘yHµW ȇ)B1XH]6²~Ú—¿Hq¿*z kiuW6¹†ýæ zÁÊå¿M Í>¾~Ü#zj;µÉ þ©j~Ù0hÀ3ìB(}*,? ±.*«j ò|á’0”üo‘ ˆ|m4€¯ÌBÔ/’&hnh`Ôê­rèWÜV"E7r ×BC‚‘¢vêÚ¯dŸ®–Ž¡ìDƒ÷ºò™”¨:iæËá”GŽ§Ý»k 0ƒ²úÐýå‰zJ<ô*'ª—ÚHt*Z€ôИÈw ¢_4sÁÄ8²?r3Eµ»Îç hÜfš™ò ¹ŠˆÈï¡ÜE«õxlלØfĉ“Ô©©AчE'ôaÿ½D„Ò“6ÊGÞ_*¨¦\TPj£–– R§Æ y5óè$èIAB‹“ôr¦-!ÁˆÂ71zŒàƒÀ#ý6™â `tœmÈ< äD˜£mX°ÿ’ú€N6dhn~X0Gøf1Îà±ógyÃ!‰3$´†¸ÉtatPå^ˆXÞQ 4úžùpHó)à¶cß3ºÑþ¾TÐÌ6;ÄÍ ”,¾^(@¢Â˜PrâÜü¶2·¬„‚‘èQÅú$±Èê¦ ‘"e²\‰ˆ> „Ó.¹ tTƒ‚ 0ìÉ!Ç}ïÉÎ*G¥AX¤>ýÈ ”g¾zÏHÓ0$cr ”0 H©û1£¾æGÙH{%Eq)Ö´ÒímÊfzä]¾þ< ÉT{-SÑõ°D*Èy1. gxðÎpªŒžØ­¾àƒçܘ)7¼hñw¢ÁjDe4нq³mÅÏ#Fh<v`Ãó§ý}¨y©gzp°§Y¶ÿB8#ä´ø"„+´å~(MÓÁŒ ÖîMŸé Žh>å´ÅW"ć.T4”Tì_˜ôò. Á4OÛÓWt”УˆÝ³œ˜Ñís×Tê–Qó5i¾’fy¼0ÆŽùÂÏn á‚_ªhAÎQdy¿^l80qö9Ä`Q¹B½_l„¬ßǸîÔ,_ †Ñ=÷®͹~°è>ÓVzpœ FƒµÇМ1Ž©>®ƒ5/l8^ᔦœ©•@Å U ްÒ]¿òi9Pú6 XŽÿhž^u'4c“åe[.z0,¥d]ß †À`ܾ¾0z/öìsÀ56pjŠ'¼-ÝW÷F.£ú“öKy`…•'áÙvÄ3{­‰ ýËVèø6;X$6 ¥á…g–ÃÊRt°:ûܽj¿ûtz¯ŒîÞ´ ´P-£3E—E°”P´×#`4`âÄ–ú ¤û“J̼fxb¥á (CûÝ VRs²vK#P"Õ /%JzŽnN§…ôÎÂÍ)¾àÁ 9PÆÁ‹TWáû?ùÝ¿¼{¦`@Óàa_’™l]O³C#Ó:áNµ¢ŒÞí±›R6Ä1ƒ2º¡‚Vo¦^¥h0Fš.ËËÔÑ4³¾ö ÂH;ô ¨0{ÐÖ)\aÔ}³Ü! HôMF3B!;‚-ôSáÔ|E-‘ŠÆ*žLaA ä§¹Â ÊLäÚ—5š×IW|bA Í2C$8(€Ý‰ZHÉ2C0€{Û¬³ìœÝY«Oï—– ?%Wô7`ÍÁ ý\Qƒ:‹XÞ­‹–0k˜g ž¶ß‚º'ÙÝvÓ©%êP8”¼è)’Eº:¨»à‚Þƒ´8Íu¦ Z)0„¦×K"¿À€(€C÷Nð PŒÉ‹À-ù]Ÿ@"X8ru"—;<™ª€ÂÔ¡dEOQÝÆý!“fpÚˆUü5<éô£þbH°Cç4OBë>õi¥#‚ Øþ>Bråù©¬þÚ§5Ë%ïv0þl#Ëž¡úö•€(Á"a„·¦‡*:¨À·4À A†æñ>î¹ÉÞ«¸ïšû]tÖb‘ŠÉìsÇQA™UÉÀHÐÅꦠa h‡9¦qÁãW‹ä§ªSî¡ÕÁFÞ(¬ÒYf‰C r+Íí«Û<ÌÀîöçL;ÛjBfæ‰à…Pܬ'¯I¼òXÀ30äµ™òbÑ7è°º\V7,Œ˜=å•n9Dqäû#oF€Aw3D ‡P‰À@ ?6D>ä5º6¼ÿ0 |ÉAÜ«#DbÇ´c­*-½ÿ@Û' Ÿä>¡@Q»QüD¬'F, NB”Ä,E¯ž2L òb,(ÚŽw9Ñ*Þ¿+Z]6‚B|ºÇà%iŽË§³þvÀ„ïã*ÿR>3D`ö@Ó—Í+I-¡dNP®S©ëw#ˆM‡—Î'>|z8b@9wµ:š f°¦½{gÌíÊ µ”Èî|øüRgVǽ…§o¥Õ¡¤»þ…H¯rÄ59óã?y…rËô”¥€€aÏ~)mi×ó«ë™Û³V'b%¼ýžN?µÃJøø¯£C»áßSçwè(Öéãxömøéþ4’z{ûÑzáxmœú±p`2æ@C#vEXIÖí1êàÎq|úqØãNO„+?ü-# áås•‘ ~–Ý%§¿Pùñþ{Äm Ÿ~˜:Æ8ÍD a„‹?ÆJŸ¦Ÿ™öËıCi¸iœ÷} ØéÿwD*Ї÷'ÇxõAáésñ¤B)=y7Ò¼R%}õ# ›§h9ö¹çkX-åÊ0º”îÇ –R‰{Ä}±? )’LŽ|^AzºX;Ú’ \þy{ÚÑóyœ žpaÞì„H}—§ÛKÔÚ÷®U‚·§ÕŽ»?ðê—rªeöÑÕ;NÕO$!\y3Âp;‘Õ²qüÿ>ü`‡ýgÓMøxßvóå¼Þ¯?F]¨­ãºU$ÅŸ7OŒ,Øw—òÒC­° c¬Á‹èøö®Mûeߦ¯ƒ Ê!ôJ<€p@[eðòEá½®¾2e,ÁÍIýo¥R³RÆ$XáÙ?J(Žt¬/#DÔq²É¦Œ ÙZtÛŸŸvð×ð‡Ü‡ ,'ÒÀuUV¸÷ã:Q‡±ûßJ@jzöó8ú¾NžÁ,¥¥+ð ³J+D6Å©g»V¤$€¹jÇýo|+Á4ð2Â"’b¥ ÌðkRsíŽûÿ†0äæÓ€ÿä½V \£n%@à =T7gÃNZýãüßF¼àK ò\_˜’òh˜>ÓÜ`ÌÐ9Oï„€ßßÂÑ?páÖ=£Éþò´PB}º9O¥¶QOoˆÐkpò2ñ4¸‹§Ç –Íc’á!Ѓˆrµ|AüaÈÇ>JDJb€¾‚¢ÀˆÖ¤ÏJÁɞʤû¤<˜5ÈyŠ¡2•¶PRÓÃk, “‘îðûJÀAÀ WæQr#ËŸ¹‚ &û}Ÿ¨ÁÀ è>ñê}œ  º•,Ÿ„€\ @Ý7 Š8î-YÃ7[/|´ÿ4¨‰¦3}ý§Aë.¯õvjD *˜˜íDÁ%4cs—ôÁâ#=˺nÞZÍ»²’N)i]O›>]Ñ,·ý Í?ëZÉì1XúÓ™6«·Î¨9 1B´Ý4¡…›¿‘µÃh1p¥-h[0—w˜jWÖê×qz5ô Û3Ég™ü©)QjB‰Ÿíríÿ†ö‘÷GT‚2Jô‹ÐKuÞ~К=*Ø(1ì¶GK‹ì«‡=‚2&SîJc£Ïo¹‘ƒ"ÃJ?¡÷2ê.e$Jrù©)S¸åÜ=@ÙbØ`†òÙ*±ú…Û}‚ Á+¶GIdeMZ²½~`yá`Ø@ÔA‹ŠæÓ|ZŸd,:š%¡¤# ¨˜ÍO[‡.f(Ñðô%&‡"ºQA(ãQùà•-÷UKÈ?Œâ¥ÆˆÉ…;œ²Csúé]äæGøSãÀްbMί'z˜cø é+ÑX+¢ èL~‚ÄnGIMnÐu0í͵Яd7« öi‚Ìy_ÑŽ!¤ÒpÒÙŒ1|¥3Ú‰øÂ4_<‚e9öËäa¬0½´ÄŠ9N¼¡39®`†õH ±ÿÏŸêGoõ =»Â8Ã,EÐB V_p‘£3j»&6Ôšp(h7QW/ŸÈ{W$7xxŽƒˆ>´zÊ™Ûdº›vŒEFh PdaÑ|&­¸Ó`–˜‚ì,·· Ô›¼ëÕ}XE]dzŠ%xî—Ie‘ûôf§t½–r …(GàN<ñ¨NÕ"‹¡¡ l™?Ì"~s°ÛµŸ¾Ú2;Ôõ`”Ã%Ø){P3° 0ò·O„B+­ð7Öp‹D¢YÝ·¬åAg+W /† ‘ú{Õh2FdTŒå`šÁ(u›†Èð±‡H|0 ›¢i%å$ZοjÚ<ðë—e$W1¼xk¹%”L ÑD DcÚ}¯‰Ý4dƒ”Ó´ç&Ó‡0c#c,_Z v”¦MW0J2ù1p‘æšÛÍ%÷\…ÈE…!ìô·€ ï²È&•&i^#ÜA5ý5£µ¡Äù™¦£•0¬IñòÿPªGIÝ%jüBÃ9¾-7cq˜,:2 Ý^þÓÒºäÖ6˜ª(ì¯Ö#b’x‰ùNÓçL7‹,_ªsÞ0Wì/¨ààNæ• æÅ±`Ø Wý‘[V*‹,B]ëxÀ‹Géo'/t·d%%"2¨RPg?©­¸vÚ/æ²Cšƒ{äÕdanY¬Ä@(;ÈBNù¸ŽæÐ.pÍäáگΖï­e ‡,®”G#ÏÑÄ•g¾]È˵¿¿ÜÒÈŠP1@E·^Àêð/”ª´‹±:øCï-ç0R¾S‹ºQ|oOK,bé •i ÀD#šl¯©/é®ò4áäD!î¨ÕèM ÃRNS‹4ŒbQ÷ŸÍÔQ£‚! ¥(3°WÔnÁƒ¬íüÈ+ÐbžZk²öNÙI»Vö= ß"–ršvÞˆË8PÀ¨›»Ì^PX>“Îý4¡xH.CnDçêÓþºâ38॒-c‡a`¿^^óò.Eñƒ”#h‘ÈŽ¾}÷Äù÷!_<øâ¿ ”´F·NÝúÕí8pÛ_Ê$rõ–Ðíñ;4˜XwhÇ~°[íê_ßÞ!¥ã¼fõ" kºöF±¯ÿBÃò§F-ËßÛæQÚ;œ{ùíG^éˆi:;ÐayïÙS‹‡ÐÀ3ù´Âƒ_œ)³É:¾Ù"äeG7¦¡ÑJÍ,@#6|lþ¶EX±á’‡¾ÐPaæ‰ìÑïht°½N¼ßÈÚWCkØciaÓÊ"9ie^ýëÝ dÐqg}|äÕ~þØ^ \Ç㨖hœèèÑÎþëA·Ý~ÿp iâ ÍŽþ¢®­™ùEÑ¡lÚLœ|˜ ¤õ:ðÃÓ¼”+t)ßOHÖa~¿Ø}/ÌŸ„UìÏãÈ+g)Iþ·ST2˜0­TŒ`ë¶ß¿–IDþú ¥æZ%½«wìðáÈAEaG¸ÿãÀÁ¾<«ˆ“œ©Ô–˜)á¾+ÛÏR6 £I¤nrëøøŒm<œ?– (Ò©u8ò„YåÈMÎÛ+QZÛ6kÙÆ®Ü—àÈ"Z8ú{¼­ÿÔ,á÷ó/Ÿ"ã „tÓ9ñŒ†\Åv#;L'»_øý`BøíØ÷CÆ?{»AqÜíÜnЙlÇÄ/ûÀ<Û¨5„ú^ìè/ê:".bSôTROí†i—ß¾áÏQéÌF·£>-—æ_ ¢ÁLvrï˜%|þö½ñ3.{5¬xΟ o‚¾.¿\ú_Ðæä¶YŽÝÈé§bT·TÓ‡·KÏòk¬ˆ$L4ËG9áƒ@±£Ík^¯±qYÞÒég~[ $ÚVZZ] %¾ßcŠæÐ†Ð}Ûóæ±®¤ŸvÚ·FÒ‚Îß2-²¿îûâ3Y`}Z~[.—ÞAìÕS>bߥ©þG¾–ýýiQ'l´X¬Ò5ÏŸZ”Ô’ƒÃrM¾Yå¨ùô¢H`)Ch—÷yû¯Œ¢ü}¿Ÿ?½A“¡ –Ò‚önyq4Z¢ G4XhgXõ Á°óòžr»ÿ!Z ùãù/eÿ´È¿»S«.%®c¸,ŸöçßÚ¨Y¤ un°ÁN’€‚QíSÇ£¯î¿fùRÎO[‡][·=û…ÅŸ¨³cŽŽ ÁØz@@-Ù}fäÿ Ï%v9À3†^%’ý<Î?¯:8Ïg}³ŠùÊ(néЀ’ý.%#Í‘L‘"ó ¿žWÃ9—ÿù“AÿðÑkÒÀ|Ej©}äz¸É~/ ,ò{\¡3A‰üž‘Ó”u³d÷Ñs°¢Å¢½µÖÌaÿŽûOK Ùwn¡Ü0þ^_Ò8k\þžšöÙp»Û°ˆ–ˆÈš'”ðQhª'ù{úÓcòó·v$-¬#ß#œ|h ¤Ó¬³"ÀÃ'sÏ è,·/{' ´pû·ÃM¼ðø]—*8ÔÞO}…Ÿ_^ŽXŠó„äxýÁøØöî9?¸€Š²÷Ætž›»é(7ûúX8éÛL„äêÛý£1¨ïøö+(T?ì©d0¼ é¶•EÛŸ¶ÿ €ÉzÆ5®o›hn/ƒ!¨•úN§ŸñÙåiúÆ+¹¾{õÌ6¾xÀö ‚mPZÃ/®Án‹’!¸­à!M+š%ö' ==ÌŸ¯ˆ19ÒjW#fo¿„ [0Ù" ˜lûÕÙ%‘Ô?!šÇóç½ó»||x á¨Èaãæ¯\ùƒÙ_¯{ZÈ8€U¬KŸ‘§@aϰ‚]6Õ0÷ác, NcªxwˆÃ¨ iD7àfo …n-Š(XÊ?ºƒ&6ÙŽŸŒ=¢¹¤yÁ¹%ý»i¨ ë<Ö Ûd<¿5ÀÛW2›ô7o`èéÿ›>8À°Œ0§a²nG€”´0$÷ ÔœpÁTè@KV_ì#ÆñÀ¯K×ÿ´9þfÖV{øhM1[ÊF p~ݵ@¡†ÛT1Ì9?yK÷âû¦=ì+!£»áE†Ÿ}ÂÖiV¯vó‡¼ÞEÖŸmâ[„\<Ïå¤ÿï½–ž@»Óõ?À0wØï0ÝlÉm4Ð5{ãéeÌ P“¶/l`@éøúÞ‚™ÀоÍéÙZø26èr”ˆ;,ûú–Ïr€a»%Ðà¨-‡ßÀJz X˜]i‰dzÞá^$¢ªÎœ$kûå¥!íØf¿3ac_Î~¿*JÈe/Ë%â'êm kò¡ÃjùJ H]ŸÒ‚Jý¯%F´¤Š`0µˆT”Åö(uÏ?jV0_°ÉòöÒ“ËÇ3ì/+õ#êä¾TzÑd…¿‘\€)cÿÓšO1ÿ‚–Œâë#?~Ä´‰Gêד !t.©¶w‹¼žXZc¥Ž¼¦HËï´b€œÿ*o_νî6Ÿ¼Ö­õ抑"”íöWöF©=½TcÖŸ6êlïwäÄJ*!Òq×c£ë€\-ÙÁÇ·-Ó¾½Õ3ë‡s4ùs¿þ¾—x·S«'ÆåBXY¬Š"·èÔêËö U%íåk`/_꼟µ y=Ø0ØXEÙrïÍcç|„‡¿\(.ؙÏù²ßN…gU¿4§{ÓÊ ¹÷®E¾•gOCýªÐzõ£TO­¶ùc?¿FûÚ´kG ¶òa“‹ÛSù€9ÆDÍr{ù:fp84ùsbcù%ydV¡Ä¤ÉCÔ,*°’\­®õãÏÃ:šjõûB´/:ÙÉJnÕýÓä«Ñ“äâùq<þnÁ‹¤†ö}·ÛïZ–—0da^rœù­™Ecò6É4©¨GiÜ<+X²•“ œu|Î<%µki •ší;V®ÀOÇÇÕ? /nXvRþ(•ãÑãÂï«Fíèv¯tûÇGi†¯™°hÍ­ÜåœÉ Ѱ3|'àÅ^vÛ„f%š“o·¥Ç?­´IšÎz°~z·ïï±þûÑ{\ø­|™»àjè$&;Ù¿lP´Iæ‘+à–0€=¾»üt«ÆŠZWØ­‡žænOâ‚·ÿùÓJóuûyÉðþòI®P*\Ÿ(cû“|ã!ðßïm Ç7™Ò±?vCÒ×ã/QG‚œôé·2gîÛè?7!ÇþˆÉäðÁ ·÷‰gdÛŠ¯bY›ùR¸VÊ—©[ÙqÐ ¿ŸÊ‹5íÍ×%×S¯4 F4 8énpZ¯“ψQ×M`â(-»óóbº“ò0¥â<ùÉN„»ûûé—+Ž“®S%ž€'Oíkµ‹?Iûñ0¹ÿ¸ëøüõ؇¯ÙþrçŸZ† Ÿ6ºnŸ®^9Í>ÀÑèü¥3}x ÎJïú©-ÌžcNcX$Í¿•"œðaŸyWîg|úGê9úzuqSäÀ1vòÊʃ ]Ê_jô˜H‚ççÈ CñWX ´më¢ûûŸ}yþ\ ®rsË׿¹"xCƒy›/~Ïãíù#±7·+9'ê;ÊŒ_ÿԢɒ(¹ÝöÒCiÚ3ßʬ‰æógå–L¾¯)‡£¥F-zÑ>¯g¿µ–{ç»dWyén‰Mçåª[óbo¬­iZˆŽ?Û3WëvÚË—Õçå¹ZÛNû´SŽ{Žèù³Úð´Ô?žý°|^vÔÓ~“3Üó’r=”¦÷DÔcïbš¯‚y§£yW†ÐÃÊJ›aQ;ìâ)NkѺÒÛ÷ëϼЬ à”O--r[wa³3ä+Á÷¿§¨Øs/,²XƯE‡ñ?¢ã™ëÆ>òÛ¢¡Ù)ûZ~ßÙªÛ÷>šúöte9˜|…/«% Âj¥?^pÚ}é3äÊfsx½~çÅ,ѲÇ=_µ×ÿ¯ê0†½xïÞa¼I„G›Þ€uh9é¾lº¬‰[>¼6z;{&ÛYÓÍÙ7¼?öVºñ§Ù æXáÇÏh)äƒóßÌÜŸá»S«­“âóÇW©¸¥e,` À²ÜÍ…|ÿ…[ž¡Y¼fX?×+‡ƒ>ì@zŽ¿‘óP˜cWžå²mg®‰),Ö³_¶m&ø³’˜Yó¦kkˆº 4æÕGEˆÍh7;íXgé£÷§qú§B›ÿßÌèrúðß7c0V_Œá{G!‹p»ÈEt¹j]®˜Ýö~D#DòÂúôÑ´¦t¾­ŒXöÓg*ᙇ«=,Gs#nÚnIÑo…IV §]!ŸUÈ©ÔêÏaW<tjGY¡¤æþŽ%Ò)ÕPbôɾ9º;Dî!DÛy|‚iÑ9näp²o>­ôxÄüøidkÓK”ž#†Ep¶ñÈ;W@ú”ÕR‰_˜f“­8³(4=P>exßw*á–ó\wòK »ÝrÐõã*¬ÜÒÃAéhéß]1åcJ+=öáù=Œ‚·pÑOsž:óŠÂ»Š¯p·ñÉ/ûÄxšEö o‡‹Þ-*þ.îëãx7×¾«E¯Þš“½å "Çg?JŒ&3£Ä1ùº>Þ·]ôchðz ùñ¬‹çé\£w¥|îb‹ç/9ŒÊ«¼ØvÁtÛv°§oR2HÚÇs4—Ê“(óBï¦éMÌ{³Ÿn§ü(Íp²ížÓœsü`{K%œ÷·©ÁŽJƒ)6óuÔQíêB\í픓´BmWï‘÷œ¹ÁΆ?cÚng}*iÏV"Ê©]¼ƒ®¯gúÈò¿º-ÝrœmÚÄ'­ö²ŸB„—Z{W6OU½Â=iHšÉpÏ1“ÿ-\ºnàêö¿;>8®·¶Ø™Z¸óhÜv¿ôæ3›už#/Œ½^W»¥’}xž.|ΰÎÑ>’3v»åÝ“íŒc)—š%°Zýºì«o%­ôŒ p÷ùì{Kôøö›yj–¼eµ¢­Ú°çíIjª/ÊŽö°eñù?"tÐÓ"<íéã¢ä/vC ŸXßÉðyàI·$M6°Ó¶È>µ3×oöKÒò×Ý'4,ÇuÞZï %Ol©¶?®õÓHaµ$tÈ'nòe¯™F¦_èE›²îÂOzlkJ‰P‰÷Ω©-ÍÂ솦÷4¿ñÕßÚãUˡƗmGn×zÚ¡ÞŽè°=ÐóŸ¾îQŸi=žv°û|•ÂuÆÝ–’?¤[þºÖÏŸø¿Xó$+öê»kÑTÃöЧjéZIr‹tUrã¥4˜øÓ!pž•>2”<ž?þVŠ®4˜ò:ñ¯Çë:si,—¸fŠ^9£HLMg¼ðTf …›Ãu×LçãUãÚDì‡DžîRÂ!¥aOÿYê> |é;ÔÃ?¯(Ñu¶ºí5ïbÿ¾z¦MûÚÿ“p˜nÓ³Ö^÷_øÊ›‰Ã¯R³W¢+Dš¿ýüsñÕ û¿¹ù¸qS™î{”ª½æ]ì‹ïãFom¹~a¡.óø®¼…ó\¼¨”,§B®ÍVîÇÁ°©Ýl]k¶µ»°/¼¨ 9Êé2§=­Nj‘—W¿MzrÍWnf%*³ O8åìÌTtNFHÔy*§c¿Ýȶ¼XÔy0’n^Kš¤dyµ¨ë‘¶•Ù±ßn¤X~[Ôõ\ÛÊñØo7âWaÑÑ$iOq[®—€F0”ÏñØS4·¯K#•äÍ»è–OËw%ìªM4vÔ½ô±GIý'_|37{áîÊR-&q"‡\¸ÿÊuäòi´ø¢ßnd¿öéJ5F"œ› c®ÐÓ Ó­N¿ÝHa–‹÷¡^Ò$£/úåu£ Fcdl«mEp8?f’êm¾…2CñÛ¨âEtV48^“õÛÿKuDS—ƒÛ“3Ußêg§{ÿa)RàêÿË©Tw…ÎÒ ~ްÁùD…B¬h[u¸Ýg¨±¥¨ Ë-Ê“ï<_cÜõPÝJÙ5jÙ5ÿÀvÒÇ™SâùÎÀ„›ΰ”ðé°í’¦|ØR±ëiR=x»œ5Ûl%ƒ|ý½´aq¼¬¹+“”zY¯ŠvÊV©;›¿_Ua îK¢3¯:ŸB¢ÐK·õV.Iugwìz²>/f:M**Õ„nõ]½§¯ò­ô›©¨„Ð6ŒQuąߪ W }+1àˆuâb”«^#uÒl|úb—¸ ¿jýßü—ÃYQ¥Ÿ Š&\8_¨G õ²&{®"¦úTn®IßÔí3¯ok7:zþmå†DJégݽBªÖÖÜAWèô÷¯øR¯ÓÐÍXÌsA|}Úû]_q£ì–‡A¿qkŽØÞ»LNÍÅ>-N©ûñJ…AµŸ6â÷u¡ÔïVöWGbÝk“ÇŽ2&ÞÍw;cod¥<7?NΆÙ—fõt?ÜmcÞ?ÊÃ&üžÛ “çпóÁªQ…*:ëz}TtEeÝô ‹î©csýÄ[yŽûžWuWd×ÚO{1¦“•«ÕP,Šq<Ò‚ö?*›„ö•-7/«ø¶!Bb4±'ií=ƒôÈu2¥¥\¿K·å=åêi6¯s#DÐUÛ+b®Ž}*\tË)¦M·(¤{<ûnιÆöJr_à MÝ?FfX”Ô7L}RÔ¨6¿þHç¦ç´ÒõîʪN#~ý±pCƒzþîÊ4)ÅŠj·ûÀbŠ’zQ³•ž/%Ëo‹ºž½»²$bŒþc58̃“µ`gôŸîDžéÊÏ»+Ë/:ø!ÁòŠ*HDÔ¨Û}`a‰0²²ýSED#î?¶‘BN,«bO1?ö(©ÿ&—¾QâûÑÆzŽnÀ›X™¿çÁ“¨+!/¦[°>ý%°‘2¢®‡èVBI™þœÄEÈ»«[©'§¿„áþc@c!W×ñ% ÷hih§²vþFD#íc\y«øFÿØ£D'éÒùL±•g̽R®®ãKî?RÜÛ¦hNõéô"žc/‘QkÜft¢ûOÁÍy–4&ä/a^GÞ+?`ÞùJ?âNœî?Mþ¨<èÒùœ·… ¾JØ‹éÖÜt'BÔõ|Ü Ä…=…ûo Ë»«["¦úTJ¶§Àt»‘©>•Ò_ˆºƒûJ{ ÷q×¶mæô—àˆƒ5úÁbßýÓ^tÒ~í;9Õ“ÄZµ¥˜ó~nÆq*#N–«ëøØùˆn›nÒ«O¥d{”Z*©ëø–ï?½×B®Nd¡Èåt‡¯ž-aCI÷ÏW=ð.jñ%¸î?½V79ÅxF=— ÷óvÊmѺž]Rm––WÊý§ƒŠ@…ï n Ûo2Î7«p]d©o.¬¨­Z·¡È‚°áú5—U5ÝQsŽSÇ‚JkîæEÖÕÒÁD ÂËê C·±q ›UØ4S3IvŽ*¹è´˜öaJJ¬¨…÷ÌÝFà@‚òio;Í»¥ê1ñŽP ½Ýœ]Â5¢.Ð;QÓàž‚½\‰ïÈçm«o´Y7¢vÉ“GHJúªgY¬ác n måvx®<ÕˆNîÔe™8#Ú¨ÛeÉVEŒ´„Eá©G£ <“¹µ£!ˆOá%íz'V±@Ey¥OÓm£G’Fïv‹=¬š›< o'BÙ`Es!C+og´àNúºvcˆAzÝÖB)p1C­©CÍé9B¨d[ûhlï‹·ÚLu7o»«š”vg L3I¹™ò´•ϱ³yVqC¨pî î°PVG TTFãØ ñ÷ѳ™B‰¡°•~++ÊSðŒVò“M&D9^“ÀÖ©FôOgÕ›Û϶·m­£¼ [ÉŸš˜¨õ=aÑ,ТÌÛ³'åQŒË*”'c+E ãØš™}³ðɺß jª’4b‚ݸ—$µ•Ç=]Kžx…ZuIº½´®äQa‚‘¼/ÍÜV½CªyiÛ{K¬ Pmë{ÝzšÞ¼²â§#à‡Ñ¬Gº+ï­3¸™ïb=oã@D5lofÂXe:þªµOav3·Ý*‘…þ?íj³›yíVá·8Ù•:ÌnîITðN%ÑÖ§6ÓœO TxWE¬ï0ÓÒ0 Tð “ã¥ç2frù%Pá=/èîavsOZÅwÞuJ¢ÝOCï•J€¥º¬N5³ðî5¢Ah­õh=ç['ÃÜa¦Œ;[Y‹çðs­hº-×F—Ða‹˜ÝŽŸHjwt17,nGR¤‚3Êee´JTÔWªÔkº•å)x€)݉Ž%jèvêÆ­4‹ ø»¶áå…ú7m¹Ë¸cí‚Ê–Úî9²ª!Êã Y"‡²Š…@7—|.åY  TìWª¿ùufP\)ïF‰bÄ8ð¡K?ˆd`y4GqäwÀ±W…ä3*Â>€¡,žüVâÅ"ÃEÈÑÇÆ`@×2‚œ¨Ü´pðÃȰábg|)a›x ë¹­¶ùA,ñüÉp÷aˆë ‰°:î,¥0"t×ÚaØ0¨¤ƒo[¨æýCÉ#ˆT¼ì¼¹ Mìû;¼”²» æöËLJL"º¾“Q¶ 9øB&‚˜˜HôÊ•2q›~Ñ´Ü·›‘ã Š¸ýgÕÛ|òæ]/œjáÒ°ÝÀ8ò•îÂ)A¡ÑTj.:ržÁ›XR€ÏÝ‹2˜~}¯W©3vw#~&¢°z4B1?òiÂq Rá¼-Z`´ƒÌÛùAdWÜF¾VˆRI{e>u¾çâ8)ã æÔ†U ØpròwâKG¤Â÷äî/»gtÛw># #˜£fFŒà”@u‚£Çñ'âpˆÆž ¨›N9~0"YEËígø!0¤"RÀq'f”`‰a¥;$0£L +yDÀÒC:"8zš£ÃˆAû’îÂbщЮ{Xg˜<æ'±ûÑ3 e'&7“€ £œàEÿy2ɰºz©øñwÀB4B)šC©~è#MÓÅð¼sH¤7*µÁÃË^¦8Ì"Q·<"VŽLgB‡q˜â LOù4ÉxƒIC"‚ãÆðÑL1¬n:ñŽ+ä-Á¤W®³žF ‹Q}?Öƒ/ ˫ŸáÕ`aˆhI'Zö³"ðÃ$Í$¡w‘àrì{ˆº¸)™1>‚/’)z2K莌N˜4TǼ3Gh"IÃœážØ );ÕW6â{î¾¾àN° t˜9"®@ì 3n÷dF1‚D*"¾Í5!äF¤âþ;èNŒ lô<£Ç´N ã†Ò ê8Hâ stG8B÷ `Œ ‹aæ pq‚ÑȰ|¹}­"ÉèÆí£õ+o»? ˜ÝÍq ‰ † îÙÜ¿í' 2\TÉÝ¿í'ð1\Ü’»DZà "ùí(JϸG È¡œ"{6?>3¢Ñ-!æ’–1 •‰H…;1£A+ ‘Ší¤™È1¬ä›0#¦•¾IÉ\Ò2¶´R©ˆ˜À‰n­TD*ÜIßZ¹©.iI#5cXé iÜÃJ~½ö£´2©ðƒO´1‚F‚[‚Pp„Â`¾‘Ž€a ™nd}¹¥œHà;mÐ!F’ÙøŽuQJ B)I0æšTŠTëîÄŒyt‹HaˆÜ¿ä$Ã5ˆT¸ ¦Õöl„ÏK # §Ys|ä=àîV·ÃÊ.ÞHšþd>š Ô}ž(ˆ[‚;”>d;©¹‘c¸8ÜrX‡ödtT¿\ñš-UsG£þ¸£¸kƒKtô†>Íw ËNF"I V~gõàŽà‹Tø&›‡`FrG`Šo¢m̯Òð„œ—;ÅGÝ奈‡Ð’&x¢iéË= Í¡Yý!ì‰÷"G n ¹ÓYZr:‰Y9›¥–#@$¹£®9ºf9;;ã!ÚÙ1·ì€àv÷û šZa—oäîÉÅõSniæ-‘£\¼øÌ5Gs|B'/¼õà’/m” ˜aÍú‘n9´}ÿv ÁCw[¢äÛ1£&A+ìf‚Rp‰º{ ôlÄoï}à¥%¼€!#¸Ã´ÁV(óK8ãß@HÒc¾ò°×{œ#¸Äòþ ¯ìƒ$hšk”PÇA#= &¸gX^’KJpÉ4×À ó©ÑRȧæÎøÈ`âÄ‚¦À•<2ÝfrÍA•T2mïžïÀ™a2Ù…ò×»>`3?!•i@‘¸Ó˜YŠ{(ùã­8õ¡/P’™È3N¼!±-§ñå¥êpĵOÑ&Ž7àçpÉ«4ƒq’fNTe:`¢€Þž®=¡“iÂIø±|XÞ3VBÝtÔe&òð™Ñ°ÕçÁœ\3ˆ0œDM~¸deKû•Y—hç°ŸÚ+dúOÝT†›ŒBÅ7´bø)Ü¥¡ÔÂ4b%¼ˆ†*%#$w`Êt›ÿÀÉË=ÓEÿÈÜ€)Ó0JfGÅ ²R‰³§ø‡p€“áÝëÈI,Z!N¦á¦'·Òpá8ô¾y©0ͼ„r%ü(á •†á£d¬¤Øù¯¡Ô?Ü¢NøÀMp˘¢LƒOñœL‹ZØŒù›é?Õ“·ßAd¡XˆTLŸ?'Žrfo%üô„—q”ÿöòŸî¿„—µpË£dxéÉ-hNEr‹}'l…ˆ cœÝñ“3[+DÚÊq;Ãß  ´Ðœ.šEG>Í5º\GYz‚J0ÌD¤‚^›®Á =¹%hò˜É03,… Ñ:4ŸKw¯%¨ÃpÕjÓ4ÓT‚a*"`˜‘ ÷Z‚J0LC¤Âw]‚J0LG¤ÂwU‚J0Ì@¤Âý—4 ƒ=ÅøÈÍÀ%Ú]ãÈgVôD–  ýˆXs…æüÊdeI¹k¯‘é?uý™žŒ2\܈T¸ÿ>xBÑ©¸ÿ~ð#ð{ ÷_ʇ‹H…1Ætm¤9ÈCÿZþA~Éd­Z*‹W‡ÿÔMäPJOP1òˆ;”GdÏiÍ0Uñ¡™—VlFÖRM+•l®¾\âxMý€Œm ‘éP ä1£"‘ä>öˆ­$è ðøa”n8‘Hã¶ý—V¦å#¹gøJP‰,¦™€“ùáša.YÙÅ~å,:iœ #KOäQn+ý"I QÿÐÊ­—ý2rÜ :ÀÏ BQ¾‘=½ÚàË%‡€¦‹ö‘®a™éFœöРѣ‘é¿ÙžÈ—LÓÌ‹‡q©xi&o›žÀ~{NþýEžIa†ygyJ0Èü7¶䂦ºÓ ÓO‚\"îµÄ“ —ŽHE; ²¸é" ’ˆb¿‘T|‡e‚ptánÇOÄ„“áb!Rá•ý±„=½§ì{&¡‹\‰!/f¬7²"¥õ#?˜²ü'G$ÙÑdE8%;)å`‹µ gù(&>o†Uà–e?Ó´ÍJ2éÁËó¶ŠåbdˆtwÀL(Y4AŸ‡Òûé8h%qdÚn³™cQ˜?h ëBWî_ÜPB•§Ì¸Î˜²CtôÿaJ´Å¾=‹ðËQªA-ÿ×Ö¹%¸®ê@ôûd4¼óŸØªJBé}è*d›86ËÂèˆ@ì¿_ÂpªASØg` ì›S¾&L€ û݉äñkçSŽÃ¾d?‹ÎG[ÍMà’öËöG¢¬¡ ¯f¤ " jÅç‡@Z†—C»Â+U„âÜ"¸°E$¾ÏJÎûrV\ŠØ“F'0Cò쇴1r pq8›Ë²Úÿ  a†„SÂlHrÈ-Ëá‚òñ»[paéï!¬ˆ§[:zÂD$ "‰'"+Ûí;Æ VA&Až3Œ±¬L¡ ˜qˆ!àŠ1–Eia—L‰vZŽÇXN€‡Å arÉ”]1¨‰!'DhCV`Šjïc¬åpb× øXâÂÇT¨dFPå°h4õ7Ó µDŽ%š8,zÄK4ñËAâ°B’,²O9Š­D”d 8ކs…s‹™vØA'ˆ³ Š+B$ A¯\n?&B) ŒCY@—T˜¬ ×FE\Ò`²‚'\PÄ%&+xBEE\2`²‚·Ü ˆK&LVð„‹Š¸dÁdÅ‹§ìª¨=D/T²@ÙÑÞú—¡ËAx1ã„§Kû–‰íÁ¶ø2FÅX8Œ·!aù\|Ù t~áD'ìÄ N:LVðL4¤8 3z´ïô?Ôj.†€ãü‹3ÜÁ¾SV`Šå 11d‰;‘bɾ(ÂtKÐÄ ¸0¥µá®]ÑÈŠ( àâ>^EHb=ÉBö4Q£)ì-ÙQÑQ«PÉæº\hzX!¨ìnÊyÿ08 .„)Uñ¬ð²öcø# špdÉŠÍÇløßibœüû ä°>%rˆ&ìÐ#”$‘ÝúÉH☓ØÈá4I\ì*ñŠ*šPCž„DW9žý/zª€+ÎáÀî pw r‡3Äq¤ ˆ[à„wj‚ÆRœ‡„“#PÉñs…_ËùqCp" 9܉+Ñ  €0£ÐIöM,Ì`Îb‡‹pÒa²‚×ĈNLVðm”%6ÀÐbÅäñÒq‡ýÇß1‘b’X²ýr,†ì¼$"FBø Áðb*ÐHí¿u—íY¹ÿqÔH5y„ôàlb>¨1±l(ßÂNUx¥gй,ìžýØq颦ý?"4Ò]Ý©Y2‡”q[íî$þ°Q´$S¡”ËbqÁÐýÀæ?¹Ëኡ‡àÁ~ð$¶BÞ·xáLP Z\¾ ²U°Øî%÷\bÉáû%H®ÎÏ žæb̳¥ª¾ÿ¶`˜k Š\ôÇ6!·Ýà$1#ŽŠ;QJ§}SK;¢òGI%  Ì­b¢ÈŽ î,·®Ï JYâ‘Kw›}¼£¦(NŒ"Èáb‹=_f"{T,?;|ši‹8.Ù¤Päo\¢Ì åÀƒ)‡EƒÉŠÊñÄȨcé /Ò ^f{{\²‰%(‡¢%ûQ%(Çz‚“ z.‹™ì3(dÃdÅC™(Ǧã¬KûΕÃâ†Ý:ë4¤9c‡ò+2‘ˆ¿ô€– ÝaîøüÎÓÅoìVðQm€ÌN Óa·‚½›h¥¿( ìVð*i¢«(Ë Åh>+¢(Ðf¢!¹Ãiå&mÚÿD^‹“/²² Bè„#Ÿaw®¹?à–+î1¹ªp J‘0Ê ÑQÐ%"3`”¢£ KDf.§·4qË%÷ì@ÑÎ„É ž4¢øD{öo¢™)d¹t¢ÈÊ£&+ønÙ¤´Gñ¸v4Í\:¹,7hÆÜ‘{.R#ÒtˆDõ—‹LÄðˤ9,:LVð'Lí ª´àžñy¡”M»¸åº}f8²XŽ“{÷Æ`f4EÁѤqÉ#OØ/‡,1üÜnäéÈÎ;/Ã/¸?ßT V’ýІ„1"ëNËSà ¥qÉ  ŸvÚGÙ/A§‹{Ä2°¾ïØådæXÎA³áV8÷ˆp¬cÜþtÁðô²ØºÀ~(²îb±c*¦§ öÆsxÎ’€êƒ#oÃ7]!m‘u¢ý';¯¿Œ¢Tyºdöi¦E(¥‘j¾÷~^§ƒpYé h.óœ­d`º,æG„S+ƒ"Sí4—ž8¸ Ì9ˆÆZD('±’›ìt2““ßh˜°„›ñàH@ÆÔ£1#0¦p~Ûæ€`,Êeò{YÑD/;€G˜¤]$αN`¸‹Z_‚Œ/—Âá¨Dóañ°>x™ŒZy[b¦ñL‘–K—Æò0ã@±$ý¹X³0îbò¨çbeÍ"Æ<¥¨®¼Ô@Ÿ&EwÅeT¥!áö~±†gI—Nž™+l2Y!0Å>L±‹0©C†ðEqN²meU|3Šä˜mKáà2tx},®2¦Á¿Bš]ÝÃa['šÍp#cÈ"»È öo$ð§Z'wRÌW‚Á¥ó`6X1®¹D! Ô±–MÇe¼ö c°î§e‰WmË\ÅiÈ:& é¬ 3’fA©Oöpfr(Ø’‘`25ñ·k/´T\eƒØÊô1O庽%ÇA•¼CcÉà( ’ìH6¥@K°}&!íÐFÇ\Áµ4Av&Â6‚¤ /8íÝpÀÙ¸3SF8ÚT.eA#š; )´cÅqäˆp¸1Jö.Î7@£‰¾%‡#…hÔì&*?Õ‹ß’$´)F•6”•Š&™à¨Ñ†2Ç>8鈞BÆKO#X ]L:͹´MÚPòÉ\DqÄGôKú\#ÌYÏu\iy #Jn9ÚÉ+ ™†ˆãœ´ˆC”‰lD>VÉ fb™TTiCÉî$ÈÔ@¢FJuÖèü$¶Ñ4”°ÇÎ5î¤{THFµ oÌÂî÷1 ±êäxl„g+ñæ$Þ9ÏÑÉŠØ„Î%&ѧl²ñv¾Ÿr<ÚC¢vÖ¬h‰¥hûØ¿-@騦³>Ȫ;*Ñè¬C B%Oшú‘&m(Ùc÷$-ÚPò·OÌYI›6”B¢ ´H;°¡<MB)ÈØÔq°Ø­û€Žo÷‹t ›w`C©‘Àjü$ò¸¸ž^—Ì™ÇÁé>ÖH÷!VõôŠ`a’xf[Qñ‡~V²¡ÜÁO¦°šÃz±Ò_Â2Û•îÔð ‚h³Eöëy4-PKþù6ÂRü…˜„ ì¥v¹BF¡SO#³ðLÝèBrÏ5•â0µÝ¨æB"«Äò’lö™a#?Ét¹&@)QsÈ>+x‹æ@EfцòÈÑå'QÐ!9T]ä‡i•ìó)„9€Á-Ö[/§Fb¦’‚ˆ]."@ ’LjÈM—µ#É8vE&h$~z /ájÑ‚»•˜è1Õ¦ %]îûfĈ-.[ »8•M\uWrGTðì#•_#8Q!ãå2C,v¹}Îj;HЀ;/m6”H a$oM]O g­K¸è6•6ÿÿe&|ìA[Ž_ÿñ¤»Ü|#ä)&É‹¡l(78ŽG'¢Kî‡ÚƒÎ) §^ ꈸ }…¤•’ËÔ%žYQÂõ+7)vb}&6¦~¨&®¢3´™õ2¯¸’°žAT…9•ÊàP"¨ì…f°Zw`‹äHÅ/´–¿`5Ù„ºùŒÎWhhÌæ5b¯©Óý‹\䃊šçi¥ì>Ùqœ«XŒ` päÃêá¡ý£(Š/ݰ‚§T ),€ _ò,¤þã]CTFÓ&U™}²Q¬bU‚J„¨ K-yq1mºÕ2™ÍOÂ.ÌžkŽZ ½è§V~íŒuá~Ç 5? ¿ˆ^¹ð¹>bs†#„wm+‘€‰|õÃwE¨µÛVÝc/t5_î¹^-cú–‚Šª²¹ã…¡=‡²/Uè#¥<@•(oÓŠòqWÅL+«Z:ã©™$çA·ê¸ÁƒWÝã¹ãüæÖ¢¨!Í髒ணÙã¶F+J-´ÖùA(fÿ7™ƒZpÕ•ƒÎbL@ïøÕÃ!¬Ê/oÎiâ­(ÙÕÒ¦c™YQ"|uQU<ªeõû±ß’ðͼ͖ÜÊ“5â;Ôž)1ýuv ìk臼UiQ`ëÝZÑ ª«?×2çÑHt³ÿ#\À2ÔäÌaOxöÌÃaÎ2gîˆZ ÿk•'®*øÿÒŽ'—5g»Jª ÌÐ+Jvö«/²Ûì¶A Z«t/F¿-~*>Ôçú/ñÛU} MýÕ4"œÓ[ÅÿÔø§âøJô.Ið:â=þcKzãÙí÷‡L?û_Ï‚úfŠ2Øñª“…U0ÙCóêÆcMÁ Ùxv¿÷3ý*£m7#ár,õWãÜ÷À2iNÖ§¾ªòûÕÉ‘`@¡Ó qN¡0Âmâ¾oC¾u94bœ¬=V•¸h`…‰‰¸ ©Kr G[¿Q’ð—c§C¶©Ì—Eú«¨®G±‰ÃÒ2 üœ+ÉŒ@@Áf=p혛®žˆÆý `u¾tÔ¬\{î> Ñ÷mµ!ü0_aXn =äÆë~j[Š{¼ˆÞ½ºû§G…ý±gÃì±í )XNŠEA†:ñáTn?¥ ”ä&Cu·‹ì€J#Á;ê@ÄßˆÕæ%&\Qß L·ÈÇJ–x“N?“’ÉÓ³Ô’ùP¬e°W‘´±RèXX3pR;ËÊü!9&‰ððΫ¬º9 w¨ÔÈOM5ÕLq§‰ç_Ž4Y÷ ô=W$žÊã®"\géu'ûrÄÐ.€(²’4kСy¸^UZ&ÃC24 2óÔÎŒ-бÈÝò€ÊðkŠÚ5Õ9EºªáÿÊÅï~‰¯''XÆ£ñÔm„Ãóô=H È\¢øû‡ ]E«Ø™(¹1J çÌ$Z-Ÿ'}?Ì*ѣɒÜ–%% [ĤPŸ 5M*ÍìMæö‡@6oÐDü_"ìÁ–¤Á&•.ÁL*ªr$6| èƒ}…¶&ÊdÀÐíΓ ‹ÚiÈÇ´¤Á†³ŠöúpTxH0lJ!ªH_‚Ë:Ø›Pýƒ† >iGYd–€LÇæ²þ‰> Eªl tmK¨IZlCƒhÑàH^FPbCTPàXÆúC¤M"݇«‚47Í(5àðHaPgEM“Ö"ÆLøpR"”—»vÂÇ#F˜q,™%S‘ŒØ¨êWYŠ€|H;J]y¾uMÏh"¬ø S9q…íœÞ˜Ù5]Tq:¡òR¯óZŸV°bI‘F2êk³9® GæÓ|qø“÷ ªœ¿o¢ÓÜØ¤ÕÙOfŸž ÇFíRÿ§X£Óg¥åßèããÏF;J×ÕÂ}QÛT¬ &‡T|n;Ãþp2¸ôÿѦ©ÌDIfâÄßðQÄ’BMXÕÿÁ‘ Wa?ÿGõ"”M5ü_ýOÞ$Lòi™¼@Å%ˉ ÉÒR€²†h::RJ)²‰4x±9YA:qVqd ícJ×2c§ýå¥Ç’TUq¥~ûiÉuMz›ö†\Γ¶šÉ T…!x²¡šÙ<=xY_SdÚ¤½œ5zœ.£™©P„—ìѯS9Fj$§çRÊÍC– j%Ç]ÌöéAÉÌ番þ£jΙ „ÙT¯¡óºæè™¼N´ú™R™³4ýï0Ê¥v²ì·óóì•ÈÚ~óÅ=Ÿ?¡ÇðN¤p#VÊØêMâ(Ö_ãþ78nMµ%F˜”Û›j wÎðÁ@f—¹kÉGOðIŠ«$8 ºýïð º\Cnˆ™Gb^GÑãôçtÔ]áçýUì>ðss~Ü6ØLùƒ¶‚Yê Rw gÞä̓™—›ÕÏä/Í6KFV4A³9e»4ßM|Írð“9‹=ƒ<(œ™÷8çFùŸTó³#7iYíña"EL"[&­o@Pgw2ý“õ^—z _"M,ZÐ÷g…B²‰Ô›£í‚7”9lF.udÍшûK±çO‰‚V/ZÓSe·eëE¿_Ï›õŠó?p¶Ö"„uYE‹#G]-R´ò³ËÃߪÒYµJ;€—Ié[e¶ÛŠŽï½£ÍŠ6N½W†É<|:‚Vh½fì•u%Ê=®¬òãÖýºòZÛ¥äu¨„‹‡9u¥¥c,å.¢­-4tɦ¥³¦UáÎâVÜ8̬Á"åšÂœÕq•ÒÞt›u^Åš%¨L[ºD#I»’NtÕD¶DÔÞ4¤LÛTrg¹='cé Píÿ‚1º(!ªp«ºÈ~T{ãÁ섳é^Þ¡×ј?7×–„ªÎ³Ø>½8'{"\'Ñdzú…‚DÝ…ÆK‰QƒŠiGÙ?™TGb[ú¢VO×Õ2ÑÕ€ÈÌýŸÿ@kFf^{_ €©ÒÕ“ç—´ŽÉ÷,W»¶¨çšgµìî©îÖâ§Ïçénýªõù¢s¿í/(j%ZíX¹‹•é°Ëaÿƒ®]ÁÔúµ#¨µ«µ¾…Œ¶3ñ/÷ _ÛЀ(®ð¡¥‡]3ÕîÀÖ®ë[7aò líÚ®¾…„¸¿ì9nWÖâ:ü²»°]ÄhŸ;-ó>‡R•ø}ÃGÙ.©‡WŸ… Ûõ—j [›~º?¢.º8לüH‰±Ø.d® p›ÊC;J} p€Ùø„ÌÕîÁÕ„Ì'©º£ñXa0{CßA\`<±]!sýA[–v”:½…¶v9fÅ…ÌUÐû"´î‹Úþ£²––KœÛEÌ5nn)j¸iwLã­œ€ÚEØe1SÒ&óIÀÌñ8mÆ[Âû‚Ž4準ŒÊ´£¼œóB°r¢ÿ[ÄY%-ŸÄÙ-‘°fyßß¼¿0;"Óܶ®ì$ö `[æHÝ#û Ö› ÚQºÃAµ¥«f;Ẵÿ˜íf½VÚ‚Py¼v1ïveu晞8‡f‰¶](­‘ix?ÎíÚÄa÷¦xkIN :º1€L;›3¨{Êu|%ÐöÅTuse)¢×–³T üÚ»ïþhÐ]%Y]A~Òö˜úÆ\Ägi£×ÍÜ@×^ly ìuÑy„«q,AÀÁδ£¼?*´g¹‚q]Ôù‰’Xp¬þÀüÜû'ˆ+¬–Æ“ ‚©lÄ]¶á© Ðm—›}º! =:»ð´¦3À¶*l^LCÈm"Oz¶ ×+N+ô¢v 7#t¥ˆc¯\BƒX-zU ¶^ȯFFΨÇk,!ÙDRÑîÌJÝDWО`Ô^xµ±ÆVo~‚rùe}u.qל|Çka¶(jßÈ“|ú½ŸÛÖBA“§FÞE\y&š|ð‚Å6ê‹v`q;ˆÁo8‘˜2ä}ÚâO+ì“¿Ž@ãÚB4ÄÍQöƒXs`oaÚ › !‹í(GÑy‹àéˆR­ŒÊ˜ì j fR&"ÕÌ®4ª×ii¿:@Ç®¥5W¥ÜP6”˜/‚K£.zâÅ%ëzpZP5"pJ¨âÞLn·Äc8c†ö}¥ )¥îd;5úp~Ô“ -m¡+þM¨%A*Šº+ƒ2 E©ÜSAæ 7Õõ'‚Ì GrâÀŽ ôþ¡Ö$ŒC^©“´é^["M²çÐþУTt‹oß)ø‡!‹ûâ+À£é9…põ=’‡ây½#dKþ<íÛÖœpÒRx•9DÁ9¼êÊ}Çy@¢&\÷JŸ‰Ya§ÔE-qèú<ÞtËIvf¸ºawö¤_ì»ÄC¾FðbK!V§ÕÑŸVìéÁÕˆåëÁCûr£ÝoˆUöoûàÌ¢¡_ŠÕý`èÐV¹ïν3ì]hJ-¶Ü»2”)Á˜Ý MGâà1)ðÛR@ÕysÓŽR=/R<‰7í(´J¢Ò¤8x Ó5Qé H:†ÓG¥7(qèDZ‚¾–P“ûÍcP¾Ô„†-çÐ1ÜŸ é/}r¿q ˆp#»G[Ãùà!hü6¸ßDƒ”èܨ3Ÿ×íI\JGìËäÖ4û"ÅU;OÂNÒí HŠÃCÃ)”J%#í‡ö ªÁ=MaU÷µ´W;Ú7‘b R±[#1$‡ì2ô¾87á¡Z¸lQœÛ„ƒ3¼a©ûÙ’+—>XL˜j$ù‰(*Eƒ{¥#˜‰%[ ¨v99©…®ú‹{:ƒH“jÈóIY£ÅðÝ&‡Ú?^í 纪ü"¢7@Œæðf©Øíp»> #; qdw5‡_¹ÿ2÷ˆ/ð:Øe´ïGî› ñ/‡Žˆ )îЈ –öíÊíÊ …Ôm_c^“6hf}ÁVÙ»ÚoçÄÉ‘Ÿq`Äcv6ñcq%‰q8ˆ$–Ìœ:67ÉçC;hýymP³–‰1agû!JÌ+nŸ¿qÖ.'˽nZ—;©ø"´'qå”t:RÚÏ‹¯¶sþõ„Ž?ó‰Ÿzb’°“Ï–e>Ñlœ•©=£¤¨mE•-œùØHåZs‡éÈDÝ!ò”—C{8¥³¬×‡ßŽa‡»ÓqôË$DëÍJóg5¢8ý®ÈÂÙÐ3”Ä9pdãv¹ZŽ’)NÚ˜|78iÞ,ÅÅ“z¹9®«´‚(/ié!Öá^.Ç?Σ—jΨ_8N °ÆràÑr,ÄŶĸÔþX±€~„@!å(ìÃù¾?2«¤Ìé`ˆ´Ø‰&ÞM=†‰¢Ç]ØôG-ލߒñC¶dwVup ±ÔvDÁ.”lr' ´>¨¶Ì)ÚÄY+^q,³8OºãáXØÅ”ã3)’ùRˆrÔö|m”ËñÏÓÒtç'E+ƒÁÑ`¶ò#Âð,á@$IWÇO{ÿ?¤y¥ê¡íÿB&ã|1j2æKnëö`ȯ£Uómq"tll?Xÿؘø7›£ä;’(8uüz$-pœ2iG©ÛXB>o1Œâ¸Ï8Ù"n|ŸC’à 4œ=ã$A“^'¿øžýŸ€eæO2àÄáOï’°¤2àÄOq³Ó_O$I/8dq³ÓßH$I/è>Z8VâÍ 8qäÓy^ô·IÒ Z_‚xr'’¤všÎqñäI$I/ì4õ¿xò&’¤ôšó| J:IÚQV©ZbÄ 8Ùk"çîñÈG’“^Ðk"g'¿žH’^Ðk"çL¢NùB¯‰œ]UýƤôÚXŸ€¾¡Íî$ån¡ë†=/ iþ›ê Ž¥¦Žj¼xã<¯=麀—qyÙ[ÞD•;Q¥óæòÁ©yÕ¾9[ 9>uÕœ¯eOáI‚à6;ëõ’•v”n3ßH^ÐùgWÕ€@âßdÇMÞŠ§ör%^oå¿CT¼Iƒ‡ÉmzR›‘ƒ¡Õ8Õe:÷÷þ©ˆïcÑ¿ªõT §bÄÝ0×£ÆþË¢˜"Ì»Än„yAÈD¡§I“pñ—<§‹HƒS¡Æ.Zë¬ š$?Nâ"ñ¯'üÚËAJKYN•'‘¨nƉ» ¹7N4˜Âñž sjég4^Ö­ÂìúK¡‘'ça{U4òxfKœHŽ$-Nv/Ð"™d=]´ØêÑ¥7åÔ9¸så|¬øŸÉ£<=ÅñeÈ3Nv¿CBÎPý?<éÌסá¯j³OÃáäçŽtçÙ|ýäTxøþ¿Ð/×O±¼köðÍCšÒN€G6¾¢gÙÉ7£Ø¿®c»B‰N›‡#{kOµQÞWY–ØÐk«óÛe¶qÄ*Ü9Åö>µ”Ÿ‘YðêÙ4s–Û‡‰Å5E‚×"~d6ÃD³ÛãkAžn)îü'B›Ä±Æ…÷^±äP »3O1,™é²C0»þ¢Ò—›ÑÎöQ“-¼iŽr‹æYõJõ@¤¢ ;@g‘…w¿5`rEâ:šØò m"€J:³T‡®¦TU°õh´ö ±yÐ0Óº0ŒW ©Q»Ÿ„&ᎹkñõÜRa>ÎZ¯Âó•h…kZi]ôCÖhFr[…ÀÑðÿä›’“³~¯"fG³åET#ú!Y­²ÿ‰çMöD娋 °Ø0æÂƒóZS Ô¢rá«os$[ÁcT­ªɉäÈTà+®Ê»TªoiœîŠ¢©ÙºÈϪ!ĨÉ)z©Ž¡›:°¸¶ØiÂtWÕLT´£Äå€ ¶xnHÔ^¯ ×"EC R«–ÓëFÕÔþ²ÃxM]ÚÇåQ9¶˜RÕÐ:?­@4óMìêîh‘=ùjòâ@¦CÀÎ/ƒÔnŠøí ¨Åó°²o‡+R²6~Kõ»8ï$£nV?!ÞM,F/Üs„â§’XŒ^xÌêñSM,F/èñ§óSK,F/èK}áÎO=±Ø¡¥†àâ§‘XŒ^ÐkbOç§ùXlÐ zMߥóÓJ,F/è5ÙŠîvb1zA¯‰=ÅOb”GQ‹½Ö=*U±µ ¨Å^óø/éN”õ(j±×|zCò‹Ñ {í~V"¨–XŒ^ÐkbÏLSÎm‹v”Ž?3TSýA/è5¤>7ÍY‚Ã2¾-vλ”½1é}ö%OŠ'?™´ÿ!«1óÆxãfP3•PDW}Á3\8Å7 ãÕ³H^–Ù+âpæ*ÚÙ>Åõ„XKøé(†^g·E´_Õr‘Š0µ¦V/¢ö¬¬àF…UêŠãú±^lïËVêŠxíº”hµxÓƒ‚ž2ÆéÎõGõÐL"}-Æû2”Ýeƒ"”g-øv¢ 6£§¶v”ªŽRJ~[,Ó¤ôNf=ñ$Šà.>¿éuRd®‹âVjSy‹Tµ–¶ºš ‹¸›Ây°4b› ;> #“-öÜòGï¶¢{Mµª@fÓɉДxnj"ÎÄ,9Üq9)J~Í;ãPk8\­uDcíñÖÄKðEº‚2ù)ì—Ežäë}–£RÈDžrK \‚Þ•@âÖãÞ8ñÚŽ#Y8Òµ;؆ÌD³0Œ:âòý¨› qƒ]÷m9Þs±ÑŸ%¯ô0e‰ß¼K«®·¸Üœ1u™¬ôkwõo–3~¶ÂÍ]¹˜¬_ͣƟˆµqf'Ê5b¬ËyA–ÜÒ|ɼÆtðÁ·’ECd£7ÁŽÄ…Ö„³013ó{='ýçë‘ a¼M¼ƒ:£*ûCXdœ‡i8nêÕSK?mjôäÔg÷(³˜™Ä Ìôë³ô…–\°ØœÊ½iíxIF—Y–ËËHm(ê¦wGC‹ŸÏ-Í¿¬ñY•gæç¦`ÿã®rü!3MfŠž9‡ñýÊÏx5-Zºd\Â’\æV®éNdA[ó·ohï¤6>û}è׸ –K(¶¨j৺R Œè¶ˆ¤n>AVŠ“Ív$5‰<üÕ¸¾õ—ó%Gb´kÖ´›?¸F²¢r—ú/ÒÝ ­]^må”±Ôôõà ÜDv!'‡—åYh}„|ºÞ´ò¬áTÅSr«rlÕGU<ÉwQ.‰ÅAX9‚f0—"aÝa‹ž¼­@O¿À¶Õmÿ{øíEËÜߥÝʪ‘f[‰²æóÂþÜ:ÅÝÊj|­“«WmMcvsyÀEšiòtƒç’âUÞÎæ«xKÛc©/@`U¤MÚQj °ª Òí(5ÌXµi›v”Š~ ¬z‚4vKu¿Àj$HcÇ£T¼•8–r%¬;ÿ¨¶úà&ÔZ Å<ȵ¤á›aßêÜáíJ·/AçIÀÆë0ajótÞäqÈ× m„¼û ¾ÊtG"ÛÃCw;ó[ÀÕæW è*¬lž4`ÍSΧO”Yƒ®„4è5¾‰›ˆ®àfÃåBIX›ß˜¢þÌ5c˜0¯Þ?a²Íî’k)§+7Ï5Ž]V àÚÞ½³“IŽv”÷±Ø_Žpð2‘•ê‘Ùƒ7ËZ/«üÃW‚·Ûz7À-Pm³q[Ä’JF%]o~“CHøcyD,EÏÈhÎ`]ʲy6m}ß캙8®›1jKèðŽ½¶ëÝ:KÝx ÷5Z¯ýËq$)ÄßIV›¿ôPd¯‡\GBpWRŽ=geó+À¡l.‹ìœfãL æ6Ïš_Š«n%S-€äÉîEß#Ù›ÃÖ"o@Á+ÏÈ7\ôŸeD9@²Íåó ’¦È.àêͶ gÈÚ¶nÌ ¨âžðTŽnº÷l ’ññAmÈËä;m–[Ô¤b6 ±?´,m!d××°CvQQ ´˜ÎOö¯½3áÌq©ˆKV|‡9H+ð>_{cê¶&0š¬˜ö²êåûPë‹8}mñ-6ôÃ\ ¯ª ¡PÈ«3•Íé×kÏ î©ÁJŒsñE\ë,}…› >=òªèjqN-ß1†:)¶²4uU¤4ÿÐçÁŠt ¡¬‡ð‚‘ðÓ;ܣɈáQèc™@¥4š"·€”º[éM@TfÒ¾úQpNaOÐô9ïÃPÚ`ÇÍ£+±‘à¤æ’(ê!Ø.Ü"ú`©O Gqt_ʆ´/÷œ7;*2O:ÝTZÃ×.U[lR~ŽÖº}§Ê#úÖzMꉟØ)¸U°H:§‹Ôâ3Qyj“§ìÃ)%ÐÇ2‹>ÌRíñÌÁ^]T;1žh@ÄŸƒn;EcbžÃYdÚQòša™G[ˆ¼8—óŸÉ‹@Š+Žß@eÍŠÈÕÎ4£ÔØY›k‰¡ØC¥¾„ÒA?G=èÁ¹™Hkýð{>ÂF~Õ"ä¶u­DJÎ=+1½4¶–¯u|mÚÃUº_,8:¸û¢U¥*< ãù¨ ·àâ³ÃœÉ‹ìcLÔøÃ6î n'iƒ”'Z¢,Šì†ÓøáÈòºÍ„?]^%ÚZÇȃSã×ÇnÜmtðàˆøÈR8Su›´ÄAb.4毸ÃS ¥3Ö‰V§ñjlþ$ÝÂÅ«ØÉž߬ ü‡:w=Ù8„6ì iMLä;ÖÜìTƒNc/ qðLYê1«`å*Ú·d$d¢õÊ™'FD¼Þ6¨:‚Ä•h!LÏ úÙ ¼xd—"”±·ÇW=vÐ{§38Í'š:¢¶óÚrÝÚ¬Þ@¢Ó¹î.˜§Ìã¢?ôå$ÖzͶˆi¥èÔC°=¸ì^°÷j¹ˆ×ÿ}pD(:ì2ž̶pç·äyp¸ÖÔoä~0¶¦9G¸€Aå°Ë†B\Ë91ñÛÀ‘ö‰KRè ö\ÄO0»¼A-M°CÑAÊQ ¿Î¼M°…’›DßIGÈN:ôuØI“/k¸.Ð!–P5s‘ëyÕ5 —SøÝ¿ëF= f¬;4¡‘à@`y†0[™ptpÔÇñq—GMEB@Óqâ.êà“3‚ -2Ör@âj’d,³žDSIÙ])0Ã9®7\¾¥£ç„:ÞuHO†?èÚz1ˆ×>’XE#b\Â%^—¡µ-pi‡ÊþãŒB,Ý8HKŸÀ'òÕLîìÞ1¹båÞîÆªÇ\ŸÅšË7Ï7;ûTáTÓ ÉX ¡®½U>;ÙŠ>mßâC§Ñþ) ×÷ÚÇfÞ vûeÙÍÈÚqüµ·öõ¼*L7ÔÓ‚½Ym©‹ÛœÑ ˜Ákà+[£eS‰7ɬŠ,† 6™ Æ-‚ÇXgŸtsƒê‹fó¢Ôâ?;OöG ^C8 8\üKX%Ïý©]ŸjûȉMܧï¼…) Œ¿u4`=ÓÙäÕ~áì(æ 7°â±ÕÚ¯‘)â?gÄî‹éMzµlrxes^"7è%~Àòô 79$YU7ê~vojIæÑ7eÇ}à¿«ÛÝσ/‘Ò9,9¡BŒÔ"2åÈew³ÏÒ¶¶ªÔÈ©ìIÉZ²²-KSDD#ÑÖ¥Ýʫ׫°{ÝY¯0Ó•èK¤v8ÿï)·¸­t¿Ò>í /Ñ;ÿöÏãªÄdNG—åàÚ~l2„KAGeçŒÌ‡Z9#aø ONè)‰‘.K -ùÞ´£Ô¸YtÔiÚQê DZìz+o)¢  G†£™õ¡ŠOM®¢ÙV$k?³prGÜÉø©ñÕmK¿:lõ$ª}΋‰®DIÜ•G,''pïk“”J ê“›¸K,7Yîüa5bÓ-,ü Œ(EÊK÷¥‘•.¾Ž[=ˆRúà귲Ā@unÛTòÇï³xCZ‚›ne©Ç`Ïóë•Û™½õVÞ±ø›K¬Æáåw 8§R`©fÒŒ’#¦p½ìo¢«£¨°ºhËUH¹û.ðõ.A±†d3S³zð‰„vÿa¯Kj)EV(ô„f(¼¶ø _˜] D*ÑL¥‰›ÌÑêÚžÜÞˆl=ÕLG`Ø&œfduÕ”Gá–¤CÔG´¡þµu¯-ë‡Ã\  ÛÁN?î6rþ"@q“hÛX;KPã‘X± ­.gž ¦­·™´•É\‰Yî›^?ªžX©<ÚÒæ1 Þ$^(qëQý?[ª®gÿ`q¨ä‚TE"ó€ÖUGpËË鉢3HlH) çöÑÜ'5 >n«Ž^»FvVývÆ}òäe<µÃ³¹Zb× &ž";}s©}å|l8*…°ÈÙ÷_|z‹”™Z‘åón¼ˆ4õyc³ˆN…| ¤–`ºÖó8Ëq ;Ε\3ÄP€­ÿ©8 ¸3ûE²Ü|L­„Á/W°)ÍÇdús*/ßwÆÑUÈ_PJƒ6‹ŒpÅ‘­l$ÈJÌ“°X(Dµµvw3}é騏ÂÙ‹?ã?=±[#jmåµÝhÌ>}éãàÛEmRhG¸t €.ÓM{çÙÖÉz[[ËÒÙ¥½€‹¦­Ë0mµÀV/ †#€]’ TÃá~¥ârñ¿£ekMþSoôg“Ù¦½|ôµØ÷aƒìÍQâ®4‘´²Íù…}ÿ£à±@7Üÿã¹q j§/ŽUÃ2’”–f ¹^îáš²ø€Upß|\ú—¿gÄHÕ1¡úÃD–8f:ÁH¿0¹!ª¬|Å!‡ÞôO’IàXS®®O?“:yæ‡y,ÅIf¨¶y{›Í>þM`7¿O,‰$Íxê¡ã1Ö¢ÜsHR#ás2ñÀEî¬\¹ñäÀpzæô¹D°H! \å@ÀðF%hkiš™œBÈ'â¯8'\Ù3‰aôÐ_ÓAÊ뚆#öªîgžòçÌ£PQÓF©? SÆ“úž±3n¢”™èEQ§»Bu9Ü$«ˆ^t[‡åŠ“GÑ‹.¶hyñÿŒ iƒzŠƒíú¨ðÁí–PU(ãž®v‡NhéA@ŽL­$" À”ú#Ú‰Jºh¼“Ì<:ñÈHœ¢Û'FªçÐAýmY?Ÿ¶<Î(Sªú´„ö´ eIÕ\ë4®²m©ºkD‘ÑH5\<’8…s+§R(R¢©B,Ò£T©¶kFz‚”&Õqm@ÊH¡.Õu­ø„õ½¬·­`“+ªSßךT7±ŽIªæZ!Œy äÁÍ!"çÔÇEã)eºRw,b‰sÞtçÊnV3Õá‡,sº¾¢·`BT9˜šØ¸r˜IO"n~—x˜'ÄAf8´ËW|2†¸tҌݶîÑDŽËãý¡—E)6ת7ønò žÙì¥Ö\ ryì#]"ÑŠ9 2:È—À(¿…Îr²ð¤&}¥h»¨2ªIJ¶`íðNÒà–«ÉÐRä¬Òk®îþ™<ä"iDÞv´ó—fpC³Ö¸C½òD!—LG p€:ÞuçÁpŒ^Ù+<tÝM ¡³¤«ø˜†z‘M‹ìD&°Žgm]ê¿æÎÍ7€!û±Hûš…ÐÀ›` ö¾6˜;¸Ÿf>69Ž2&Ÿ.ç4p´‚)F‹àæøAÝÉT“8jâ_çyPc|b]ÂW„.ß(íOwå°cµXPèêsòýkèö¿iõ!J¿c40 -C®Æ¨ÖÆ¢ôö°ÉöžÓa¼†®WH@ fü׬û '[-µb §!÷öÀëIX¬y´'NTcˆyg`Ë%·^\û µUÛš½0™Åš `Žxýc?y[=$`üÿí?I¾ÿ1E8†Ô6rœ6̪©´Œ'`Ù!Ãzóßz ¬ñŠHi¼ìd2ã÷€éÌý€ÅV%³³ÅŒèÊXƒ¬èH¦Á/† B#B“XÖ ùD˜<„Íù¢–K8C=‚Cs,çF.9\°IÅăóà”vŒ¶À›ÁL¾èÀ¨H3 ƒëøä‘á7Ï' È9îöMètÉÎÜ‚ËéG1ÞM¾dŠÃÉÒÓ"ž×TèÍ9¾ŒUopa£îÈ/F˜/¾Jܯ†±Ç5¢ :ì,ÂŒk*³Ž^.S‘W4ê†ÓÝÉýxA¢ÛÀþe¶j•÷é͇‡¼Ÿõ¤eÐÁ/I nB;âdó‘»7ƒRÒÝ1y©X„‘ÁÍ|DC-ˆ¤qܨ±a ÉM¤B}“×ЋD¨lJÊßPMEâQ»u JÐ*ô~œ¡ 2i›B’F'’NI æc6“ˆU8è?¶cq"æ"uŠ©…†´·¸ÖE¾Gs¨u̦XÈœ ¿a…Zt|;AÊ’ï6†F¹×ÇC÷Ò GÜØpqBQ+¼t*¬å¡‰¤•f8B‡î“"§Í_ŸN!Á%UN›¯Í~9ú4y2³MØÖ¨…CpáH—»6ü)r‰C†Ü™Ù ]þj°Hè7ÍKàѸ̃“ŒsPrq¨”›ôèû`ÃrH´‚rSåÎ÷D)%µâù]y#HSÛÀ‘_-Þ€œòÜ’/ªT'´…GWÇcš&vš!µ) ’Ÿ HľzŒÆ?Ô>‰Z`¸JXEgQTtx;£PàJåÑ!àÉ #ZÍY&¸0ã B3ñÎÃC×i%¤…N[S(ü¢l,®çŽNЏGKUUIE½YûC.È# }CFÀ¡™éÆ­BÐ »&#‰‡þû/×°8lu’<§VLQú¾yH¼[´ûÚnÂËtGRLp§¹ÇéëáÜxým,D/“³"BTÁ$ÃM ËÁo#“EɈÁˆ—„ºVo"ãCÖX§AÊ@ &5–܈å0K¦^Ùápœy¿ÿÚÀ\y+¹„8À@—oì2`ìüiš ¬dmô‚AVõ€¢óQÁ„ˆÂvª‹Ï/@ˆ)l•ý£êűÉZMyc>;îºl,ýƒávÇŒ¡PMw§ÄØóÿðÂÞ®pÝÐ[ÍÙòÉj%%4&Œ9²Ñ›¯)+Ck¹qÀ‰_ ZûZTa/÷k‘kØí\|Z·Ç6-ô+³ôª¨±yNÕÖ/«6y@­¶ÛDŸÿˆú€x`scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/4elt2.xyz.gz000066400000000000000000003440721514310134000240710ustar00rootroot00000000000000‹ßîØ1ef_4elt2.xyzdœM’-- †Ç]«¸óŽ:¡ü,¨÷¿…F!óÕѣϗGáµàgÎIø3þóï† þ¿ÿýwÌÿ~çg:ßú™œHtýë¿_ûL0Z#ÿiüû×2± ”Ï4ÔÄm*éòHb0 ÒaØ û‹øóo^ 8•™Ëdgür‚+@È׬ÿ­ã÷¬%¿H„ëáÃK¯/jŽÑ×ìšÌ?úøHX.ÐbÖb<¥ü4:Ʀ™þ߯û“ú!¹?9Ó6“†ÿÿKÎÏ@™C/#†qÆ2›³Š¼.2¬3¦"X!iŠ_ä6}Œ ‰ ¹Ü^…äCªÛŒ±¢¶Öýë+Èi\ 4?&îYx‘rHA5Öb!_¸…÷7õ‹'Á¿hiÿ Ëù2U’LéZ¸‡$fÕ?|:Kä"ç!‘´~Sq(]ã8$ q!ÍdÝßÄCºÝg±;~&±\ä¶~LÅ@ ¶@o’é;¨“DîŸ÷8×!e{È($ë\x­'È!Ygý¦s®ËC@éþ=±’Jde=í îó³¶Då'ŽCNÿ)¡²5÷ºËåK¸mäȨ̈¬î‡S¯}„pHÿ!$)$XºüCâ!}šºê¯£»¼]«„tHßÜK±ä?s9Íò!ÁW®ÍˆÅ§yÏ}Ò'Š£†¥Ebó&·|{âbgkMáyÙõ²c"TRLù&í êû€®}D㈌Xg¤ ¾µ/rÒS׸cü@×*Ѷ‘ù–Ežß`¡Šô^OÚ6’C'ÅîqF*bÕÅ´¥×vý¡ØGËI7é!ÕÃ’^BëÌhù>œôtíMryÖ#–.sTxù'¹~ÝCØt´qúÐo»“Ûè×Ývb#}o\¹ì‡ÝF¿ËÃ*…×^$*Þ;ŽÝF¿º½N´‘;ŸÜ¤ÛÈ%„y`¢J*‹ðe#vmUâÉ£ûÒXÓ®ÈÀtH‘”œíþIw¤e>$û‚@õdO¸ßInrRÈ¿ÚÈáQíŠ!,‡tgT©ûˆaù4/2l4L—ÖhCž ÊzZXS†AÝÅžq罞kÒ?€ßó皇\´X‡ËWä"á²¥’îtë^Ï…‡´m¤šl_âàgQxòr݉5#Ⱥÿégñ!]©®B:WV~­C¢‡äšÆ¥'7ûˆÔîð¿I\¾J÷8õË¥U|Ý9nÙ!…&[Í\¾Ý˯Ë8¤²RS6®Ÿù‘yH[îñ•tGœã&áìâ!ÜtªD8I<¤ça)ûÈÆzÏH("Úܔ Ü"æGøîŒ4믴W]ñ#뮤è:ó’¹?"AºÂU©®­‚.ÿ=$³»MU•<ˆïø)ëÖp¥Zu2Î ŠIêÒ Õ_ŸÀrû§Î ­¸ØN<è³Ta#qUWHñ•TȰ‘Ç?´›dš¸î‚GÃF"îuU¹ReºÉ°‘xŽ1­«„z§½]IÂÐŽ+P$ç§8RÉ__v%´v¡wW(6ò‚wüƒxF,hd%zZ_ÔýÖn%6G¤%ØŽ‚u+›Œ¼ä¥O©?öð}¥í®eGˆófuê»t„zÐÖ© ®2à®èæ ù° ¨»øÛÜÿém­ú}AÝÑ^eñ,_ ’Ìj@—y÷bÍPS¬d’íÀ¾Ë |•B>yÎĦÈ+˜y¯ë §àâ­¢ÛÖV¦BÏSK¨ð˜.oÏš¡ôȃŬ‹µÜ/ïL:wëaÇ(ëb‰Çm)¨txBuêeþ]+ÏÝ|ðhg¢zK÷z©[öÖî>üЧã5¨¢ž]åÞÛs·~w3I‹Ìß(ºsßž±·|öw+ì lãÎ’B”ÃÌöÉ…ºQfù*ŸjÌCI©r6êÞRœ¢¼õ¢Wú´\OÜeBô‰–IGçnß\è.p—'ìù]èÃ2Ö]áªò”ðê^X|£ÄÝ«k»,»wFë9Ȱ¢ªîÌ…ƒz]‚ˆõJièaÔ™^‘rõ,ß…·$q”º=Ϊk ¬»é(GßÀEë<Üâ]qÌlFx( º }ýjóQê³GÔŠº,¸;pó´#<yÎçYãÀnÙÔÂ]†]µ£‹—G·¦œ§!áAÓÕ³Õ¯ºr¥àOGÂe¾«+°muW|ó´$<ø¨¨¢ž´J2ž§'±«™Uº•;ÀëÔŠFsÏWÆJŠ÷Éœ»èA³+±cæ¬\³Ý{‹²½÷´³®§¾5nצèïÙîÚÕøR•^q4aw ⊺˜À’ )º°;<®:ÖAeø?“£ ë;«4wÖSZ%mpôa½Ø)]õ]àºW–~1G#ÖI ÊÛ-ÐîÒsrtb]ðsSÂ\zŒ“£]¾[0 »Ey{G¿|+ñ"H<ë!͈8æl«äXßÄìéñŽ„‘мÔ\Uî~¤•¯†µlG¨Š’âÌsá‰sT= [»Ü_]a-7…•†—zýjãù°Ñ™è¬h–¿Örihšï‹fßÜW+ ™õ¿hXË“[E‰úW9»ñCúôû¾hXkX›–ÊlhXkȸQû¤\hî-’ºæé{˃N–}ÒÐ_TFè*è.ž&Þåà”ˆ„»*І’44"¡;ô¯¦úÿ¢ =™³kñ©í« VC9ËóHèJ{͆JÿjFB\Æ…¬`¾hDB/K:ß>L¢š bÕŽ¦ú¢–ç'ylvuŒ‚êÈ\`$}ZÀ ky|–n-³††µÐ .¬î¢ÐüU3o¹êo{ËeMCÃZ®Tkã[¡¹¶†µÜŵ|õÁ44¬5v“ÿ–d>­ÑѰ–{FÕ„ûd¸í •a]ŠÒ´ô £¡2Ô•ƒÕ·]`#‘lbEùé½è|´‹´¯®œí«¡àÝJ8eø\ ﺞÛX¥… ôˆ}h‹%ÙÉø¢¡à=h×]à¨u4Žª¼´±fX×ôZÑ8Ot•m\"µ±Æâ.Ú4å¿hœ(ºV厂Ö̰–»‘vtj]×Öò1û´²™ôEÃZÃw}ó,¬Ó:7(ìÃfµŽuë6„s…Â+yhè2iàƒbV7J5oÁ¹D!ŸlÈݨוհç…xi6´£y&ðE³:¦âqÑüÍvP·+wtÔÍ —]ÖsbøEý÷ë´ o»õujؼJ!2ú @^%ú¢¡ QJ(9(ïÅ|QJñ4;êEE]¼M±Dê ì ©5däu ”IÅþÕÌ[³¡*ÒЈ„OÁ{£³£–7êT­…‘·^ø¢šú¢‘·€±•¹FmÈKµµ¡„Ͱy«Âknl(äŦ/yk ëë:ër”ÕêÚö±Y x.VàXõº`qC#o áºXëc­0ìeÌ·¶H”}ÃhCÃZ®FêºâÙËØg›Ý_©}•ÂZ<¹ïX¾÷n4U†•3¡¸öÕ‹ÂZžáÊbmÚjÈ^†kEkW^ÿ¢±·ÜˆÅNë°¯ÀJY¾ÊºîÊúW³Þ‚mZ¾/ª»d/ÃÃ5t'VÔò–†RÝÄ?ÀyíkÈØëÊ-rDB^«›@çªc=½Œµ >m¨-¨;öô2–¬,Ç…J5«Asûå¤6€èêºguô 7_tç)J³Uêš”:jM’^†WÍÊÚPfk&°ƒzFïc]sÕ̽²«ëÖZµ0Y«–ÂzT†š¶¦•‘° µËdjhÍ¥Ž†&Ü'YÖPîM¸ugCªg­Ð„È$£×[Í WjBܦ¥ƒÛB’Êè(Œ*žVhB~n\(ÖÊ–¥ÔÒQªb$¬µÜØÐžŒ$¬%üŠª]MkKXË‹Ö9;Úv„µÔ²ÑWÐêÖ²•g¬eÕ’yËW†ÿL« {ðƒpþY¬6­È[SPþš -–f2ÂÙ0­¡‘·ð»c¿î2+ª™·tRßÚT†FÞò•‚îÚÜ´B¦¸¼y¡ÐƪYëZmZ«uH@Ce¸±ºaWׄÖò’mJCAÛW×sÍ”¡¢ü\˜{Ѱ–2ö0A5ìÓËp° €ŒÚÂZ¦0Ûˆ°®«<ahî‚Ú¦eÑyš£ö6Ú >ƒ§ñÃÍ]öm¸ŠFçi_Mj€§#û¢Ùyòú¼MË]­ZËReIëVÅY¨ ·K߆ß뎵Pð丵éìÛŠIT³£§õ*çû-É[ö × ÖþÔQ<ް–ËjÍ?ÁZFâ˜yfT;OçʪIEÃZ»O  k½¢ø‹î“¼ŠÒs%­Sê6iÓâ§ܧåº `e[fkª"­¶y¾5tµ±ú†µŠ†µŒòRýÝÕ­ÉGXˤyÖÎûµ0Á9R”¾9âÛ¯î‚3NL†Ø6€±jÀ yÇ}cR5ÁÄ<…šämëÿ" 1ŸƒŒ} ¿¢o‡æEŸì§;†ÔЕç0«öŠ÷áÊj¨<§;kU­@Ÿ3#j_èÓ²÷$ª/Í6€ìeàzº,o§t7Éî‡M˜½ \ ØÑuŸ·8 ‰¶&ÕFKÌw­Ùp£ÏAÞ‹Æ…vôM'÷9¯«¸$£óTlÜÿµ£ñ¾ ‘µ­€Gb¬cV>¢26* Ês1ˆ7Vî·Ø;û®ˆ° qéÁS[_{<ýŠa-Ï“ «®+†µö•þ>­±F±†µ¼D« `ÛYêæÆ°Ö¾VÀ]³æXÄ| ç…Á¬¨›¯"äì’IÐû½Þ¬}mÄ•OÒ¤/ýêG[_QòMZMœŽr+w5ëØí«ðÊ·µçý—}§MzÞ+Bµ–x ªÚi>oÝJ†ù=÷mk$¤|G\ÄÓ~³x÷]šïâ`Ôs˜õya^4Æyu¼*ÊØòE$´¯¦yP Zo!E$ôÙÖ Ã»T KÏIÿ(Uœ£2f«æÓ¼Ö-çaË[ÙËÐo£òA}ê´ò^†R^™¾ï’Õƒ Ì{êeA»Êµï>V4ò–× ý~Ö{kïE1ÀÆí«ÀX+ïek¿K6¨¥ãç^¶+rçR[°–@MûÂÖró^†xØŠ2Œ6­|ÊøV‚/ŠBmZ–÷ÞFuÂ}îZÏ 1ïe,–Ù0¡êWÌ{^Þ®6­1›aó^Æ~[ÐN¢¬K²¼—±€…ÿœÃÔuÍ{¾RNÍTÚXùAû™KíìcÞËð¬†Rm:š÷ =v´3£ç©ÝÕg±f;3¢Ñ|ÞËð2ÒÚ´Ðêµ”´–Ë„?_m›[ÒZ:þ š~•´–õXÖ¾š{k˜6kq+¤QroyBíÖ-oIî-¾®2 ­@î­5úbiwB‘'@[ÃzƒÖ“ê¯îÚÒ¼d$œå¹úÙ[ØL  ÝÇû޵U§¥ ™µÇi>  ¥öˆÎ!@sBÅ'ÀÏŒ¥5óÖ¤~©õ}%ó¢™·<5ÔÝ£ óÓl([³–fÞòé¶ï9¶ZKŸjP}€ÿFmÍjÆl·=”ë6´TØ¢ »k×ÖZª OÓÖrìjáÍžÇ÷R£Ëú[oYª åŽBë>¢…&œ©I~ïÈ=hjB¨7Ô¶6ÖÔ„øJµG¹vjx4!¦Þà©^45¡ÌÕt¦ˆ,5¡JÍ[û<»–ç4RÁ¬fËÇÚÙ§‘ ~Z)¤·(…ÚË ,¯î²OødU4<)4ÔW4ü¾ _Qúahä_³ª™\Á¯ÑÏBWG}I ¢ù-LVCÙ¤­@Ö[I¬Õ0ƒÛX-K3YÖ+£qŸŒüPþY |žŽ^h½èhVÇHØ¿êyB šÕ±,­Ž\®ñ;šÕ1‰ô‚o•sGß긗çC‹³9šÕ1‹µêØ…Wy_G3«ã5{q:Gy-îhVÇ‹ìO%Ïw±ähZk hï”—£ötôO+aa1Aþ ÷+m&¬—&ÔÞö¬'å½ ÷€~™íy ýEñO½—!³Ö”÷2ÕÑVÑÔ„ßÞÑ÷6´i¥&Äͳޫd/ššPÚ ,â6€Ô„žQ›»¸³´¤&­<Ÿnš0¬å;ÙšðêhX‹ÛÑÂF±žFæ=xYý>!Yí@†µö ¹öU_€ ‘ò¬ÌÑÖu%V4¬Å(= ÖûY„a-è—/ßúãEÃZ<þìXlý°@sX}ÂZäud3´ë&DϱÑüÕ7luÊW šÀ¬gòDa-ß S:Z›)Dø¼… ~SjEÙËp½¥ëÏ´êbe/c_dêÓâ–·²—áµ7¬?We«a³—^Kôuå¾®y/Ã7ÒŸ4=½ <ÿÜÕµ:Ö牚@÷*){ž¹{†v?‹²—áÓ‡ŽÖÛ2ކµöÖ6-„z›Ž²—ždû.વ){îp½ÿŠRÕe/<q߆õ옲—1máè(¶±fþ=Vÿ¢íZ/ñó"Hú6t·¨c}Þ˜|OR®Í]­õ¼1Yåj…ÔÒŒž7&ß{Ü/:jaBÏÎ?JpåX^už7&d=jÏQÅ>=oLHgOÔ¬•½ ×CÜÚÊï1LXPö2ü«]èáìèsbbÕ³ô#´úœ˜6­=µ^#y^±õ®.aCkÕê‚ m¬Ù˘¢¹–;W~Ñ´–‹¨èì‹•½ŒùÞ¥ÿ| Mki}ŒñÂþ.ÛvWFŸ3Kq*³ú¯Å.2£+¼ÛwŸÎ>+5=èÆ€P("²¨:Bk¶Âž:?¡VËШ´Ÿ‰­ZÆ^Üx‘¶Áµe äÇÞEø†V-cí|oò€ÅqÕ2r‚ðÍÝþBïNت3ø\ª–±Þ£ŸŸeZ;áΔ9Ò BëÜ–¥űֹµ†@è |÷Ü‚ãXzGåZçÖž6¨ì&ÖëÜÒÙðج@C#Ç¸Í .ýÐ-Ǽ‡|@ÕáíaC+Ë«Uíã–•eÌ&‡’¡Î0[Á•»À‚ñïíü •ʈ–u÷»¿P½"}ý¾ˆO=³Åï-à‹3 ­œÐ'ã…o•¢‘Ȩ ~|îst|KFeð³—?¡Zü Ì ‹~‡Vϰ<¤ î¡oïê/Q¼.âOîâ=´2x[ôÉZ_ö­ Þ'fð<¼¯›ÑÀ3–¥÷É(õÇ¿¯7Ô£µú2öÕŒágÉêEU©¾ ŒW^Ñ^¢‘êËØižL¼ðõê£Ì‹˜#(¯‘Ü_Võe(}nF;}…ÜÛqï ÈPë×s©¾ å)jÿ7f”7ù¡1ÑP¬ô&l©¾Œ¬:|J =ƒ—ªeÌÙvȇ Âý4”u»hè ¼¬ÓóäãÊ2 ”JÝò3<ŽeqµÌC(}#Y¥9Ce„ž^]ê»ùQ­,CZÛÿsÆÒ‚P„ t§9Ðñ#+JÏúôQ?ä…ŽLÚÛï|Cíßm­ú =úNÞOž< 6xÉZÆþkŒÿ2MÉZF&« /+ë„ýº#YËH–ˆ†Î€¤t é(¯ÜÈz´h Æqê.°ÁÓÑ¢ù{û#ätBèhјñ‡i¡š-щ{íMø(M%d°óg‡å ’ÅY¯– å ýÒp6ú=Vø(Ù\È\ î…uá£佉øhPÀiÈGçiܦ„¿PÀÑyš1r&|¥ã¹¿Aäî$ŽÕC!+ó²º0!ô(¦¨„Šô–#‘³¶lA¨S¯»ˆU._Ë’4'†U®` ÉÞpzAM„þóÙuN¨ ¯,„ÆÐ>R:„ÚAy‹c8cEK”ÍBIq¬¥r7à½îZz«¬È‘Pó~ô=-k<2K#, Ô 2¢GÔ3Á•‰c ïM,ò¨z ðlǽP)ztžŒa R%ªã[òèzJJ- <žúo.þÝVçÇÊ£ì©Y%›ø²¢÷<É#í¹§&ßò åÑöL1uÿÌÖgçÜj×Ëú²ŒGÝS±—ÿ>õ.±#“kãó`Ùȣ響`(ŸO»cqbçÜÒ\†Æ½-B…O}¨*ù«q½…Ë#vfK¾cÅò§Ø™-^ÀÌ-–¡Ù¢ùÙ³H.bg¶ö;¡Oœ‚3[£cG“ ŒŸµõ¶þlš~–ŸµeJÚ«åâgmi/ žm¬«ÅÏÚâÎr>›#¼Gì3ß÷ <6Úgö|Ù¡Ð &%÷é1Bu „Zi:qÜiÓ;´DYP¿)ßþe•âg §ãql°•äç+nò:Vo`¨sË ó÷ O]%éò!êKŸ‚ :ŽýK©‡g5É·•ì'ÍaüY7ËLžhh¯ðçÃÀB.ïÄÛñ£ü™¤"Ʊ"øYGMr_â0}ÜPZÔN˜Ì(û{Õ1J¡Ñ0UîGœ>ÚŸISñK|k¦ãdðCÒÔ‡ue }´?ý_¬ÏmãÅVê¶¡ö§ý[!x‡1`-è£ý)¿Ô™{3r¨’é¸k‹1tH¯èiiÞŒô£p£óÌ–¡u&}`#’³Ú^ž Êµÿ<<Õ¯T,*³ñXð³“uç[ uɤgšª¥OÈб¾&E-}B³€±†ÁF¤«Žã5ñ;-M•^>74âs0„KxøYZrŽ=$þyjéîì €ö ƒ÷zužÑó±:v¬¥—ñQn·G®®…zéj7§ÊÖàB¨—>¡Cÿ@JÀõ¢ªzéþ]LÞö~qS¿ú„1?¡ðiûÕ'„ðq‰ìSà¥OHÐeÙ²Õß«—Í_óà:ÆZú„&È9"0Ö£EóèÃÄZÀ”>á„Í[Ek”>á´ð~„Q”r~Ø {ãéaÓ³ ñ)ãRãè®—þ,ö¾7£O(ÄX]«C6R¢ƒóSþÒ€ÆÑ'„Ò§ß…¸ïYO_Æþ¹ÖÅÆrÏ©-£O¸'œ…P†œ>xéx •òú¯Çd¬¯)A/ÉîÐÛYí®tªZõe †"U¶?ô Þ®^†ª %p+½Œ½ }JŠ«¿,Rª1‚uBW†hÉ ÖÞX·6J9+Ðé6I0€2+eç$ à¬-ÅÒWXÏ]¬´?yM,¨Ù„ŸUÚŸÉ‘ÀÚ[ÀËšgm 2¼žÏÕ·=µ ÿ7°ðóHðöÏe 5ÿÂ̯’ÎzÖ–~CçrxgmÍXN‚ž†jõÔÀ¦€WJñ õçg­8‚{ÍãŒA«×³Ž$l]¥¡6ˆ@óoÂÂVí„*rÞ»žÐU[q/ªžÿÔv[çÜâ1QÈ• ´Î-]|ÎÒ·±UÎB¨M· måc²1yª½¬lë¬-h:Òp¨œP¦ƒìâ’‹]7UåB£Á2,;Õ·7û/ÔAÿÕª–1g—µ}ª =µË1A5Iþ®‚Ò˸6K?¡û=BèáoqW8ò µ§–¡q.|„ 8§öÔ2Ò¡ um£³¶$MSé¸öÔ2,sE…PçÞ—aT®3 ¡™–÷Û†=µŒlt„µµ©õŒÈžZFìYì_šbÕ׸T…{IQ÷lufcªý•ºÌÒNH€šh|ÖÖŒ¥ª¸óY[ë×Z±J4 "ge¯ºï žºãúâæÒ'Šð(\Šåsn±*—e‰~V¹à¾*oèÄo@JŸpuŽL’úÚ¡¥O8ÆÄPƒ#N*ƒ7îÚIù]ÂÚ’Ò'äh• ¼c“Ò'\½ì‘¡ø²äêꎮ£—ͽúhRºº‰öñ#”›e€3F†*¼,¿ À穳gð&¥O8c(”=LÇ•¹ï*–ÿ©?U¯>áZ8 dž–>ácŠÄ†:yÈ´¼¥Ç`@º½öÐÒ'ü)?B‡][KŸµ[s¤N¿Çšb2½/î¼ÇÂF¤¥OV¹¶ Dc·–!1±þ ]4¦QÞèS¹;¯N(·ò1¡øTðÔò1Éë%<•»$ì]¯è lDÔ7òZú„±ž:Þ@ù˜ÐÞ3੃am•ÉþÏ­ª›Ç†Ã÷Z>&ü’ýßÐ.ÂÏ*Çöý#ÀšC@ ÑÊÇD<ÐŃN˜ò1A!”‡æß¯‘æßRF[jP‹0¿ø–„ZÀaT>&Ýîiá†+Dù˜ìiðT ˜Øò1ñ¿úá ]À5³ò1  &>…^ØÊÇ$lvíÏÇ ^ÖÕ¬Q׬³NxjÕà©«G=ß%ÁÏzk𰸾V“áó£«ëh·â˜ä} °8éÊ÷;t]Ð µ?”®¬8&û3FñÑøÔ—¿5‰ @¢¬8&3:ãÑúí— [Æ|zó{huVOB—$šø^‹¿µºÁâ“O1  ø[k¨:46{qLö6¤`M¿€ãUËHÑôÝôÜ«–‘‚ôPúŠ_$Š3´ø[˜üŸÊQÀS‹¿5—ÙM¡eÞÇåFŽ/É¥¯X/ŽÉJ 'Œë¿¥H$Œzý·úûtV÷+„Çd¼Šž?MO}–ÿ–õ;+ÍZøÖZŽ „kÁÊ,]ÛÊ¿ÐÚ ×G‘É­·ù,¥V¥@1ЪõYþ[³§åO+W_[>K½_CÙð Ô¹ç~˜qunˆ¶ä˜º—ϸHÔåbxÕ—±¡6]tÆ«/ƒh¢âü¬êËØk>š(}{óêËÈO ¨èùº^ .P×6`¬g¶†öÜåi´]ðNNêH¥5 Oùº9¡!´0‡Ahù˜ Ð%3´µØ¡åò9ÉÄ‚¡åc’ÚtD†V?a¼|L%Kl/îž’yù˜ì«pÀÏ í˜‘—Éþ¯Hx`Tååc’µ# 2ïåc‚éÚ…`¬W¾ &'ufõ&l¿>&lqw¨w²›“ß»!C(CÓ¹;˜ëe(ÃFÄçv¼/Ôcýÿ =·ã}…ÂVƒÏª–!&òýY} ª–±ÿ>ùÀ Æ«–‘ÒÈd[1¯Z- À„`¯ZFžýóó¹ÀS­,$È`Á(xÕ2†+Ã*€~Ìzf+•}¯Ý­ã¿.§òD0ˆýcü\žZ†gÚ!”,˜§–‘ p˜gËèÛÛS˰´òC~AàÚ*EöR^øpê„×"¾±AzåÉåè<‰²Afà( µÅ…îÚ¥—±ÐVLrý#¬¾ŒÀ6ôGR«ÿ¬Û—AŸ °„W-#˜ CHÜ«–áà:ó¿#ÚCk'Œ… ÕþÖûl•ÉþQö¡OÁ¹U>&{Å"Kcâåc2{gðÓ(*°e<µŒ”aû0.'\#]Ë-m|º?-`ÐRå¢o£¨tœÛK/c}9§S Í©¾ ñMÈŠ«/ƒ¦ÐmñêËhj2ÅpÆV_† ¼´×–C_}â€ÍÀ;Ô«–Ñü$Wi׿j¯Í M ‡Ð?Å»êú¿Û™-‡¶Þü‚À!ÇŸZFVö†*°C½ú23Z >{õeÌ®c|²‰ÎõêËà.'~Gà#¬¾ ïÍX§Äûkù˜ì ChëLBO–!¨Y†öʾ_S­Ôš€Ðýúm†ºÀ¢.&Á•ÝÊ~õ2ºGã³;ãÉ]µŒòÝé@—ö'u­S¦ƒÝ¥´?Ã>èξXÃSϹ%½ì©>âöV}ö×Ü›²ŒêËðîFóÔ_¹»Îxÿ-v@N“oèð²ÊK:ëöi³ ŽÿÖþByô—åÉšÆÈP¬hŠq‘~Bpźáß­µ¢Ù8Ö£„ Á‚©¾Œt$"„n;lT•'éb8ÏñßÝÎjF8tô–‚Zê&¦ø–¯ÙqÝ6úí8£Õ¯;AR=î@»¦†ZYtë„ÁÀ5ð©vª:*I©ï!Kºv¢f ä%Óµhò¸àeñ™­}Gd@Í~„\UÝA½-"¯f B/kŒÕ’# «€ér¢d2{ö|ýމ䲤Óÿ£8&ûµlsÀн“ÑK_[r‡Aâå˜è‡k6a+æ«Oh}צkà˺j’ëCÈ 8 Šcò®Âì[ãj΀oí£´àjô»<¾Æý ¼ÚŸ€î̬µ÷Upµ?e K¸cqµ?u:0­PÎ2®öç×ZnPoº ¹ÊA> #RpûªeÐPL~M ½J­ yqwÃ(íÏì5-Eí4ÔZ³õúåþ°Ažº^Rj+Ãõ<®ö§}D±<„ãÕþè82¡ìWûs¿pôv“(íÏ¡<à©ÈéÒþ³ï„OW­ÃüÖ à0û êßkõeì³ÖÀm‚ñ T_Fš~<,BgqNGÍ §×_Ã^&«A(1ä.Õ—as1@6Ó;å3ª/C¾ìö&k[T„ì!‡=«jû'¡ðd§MDÕ2؄݂} ú2(Tà©``T_­µÕOaÓ¬¾Œ}œ) ¼Z]4oOç ¼zå)ª/#›€Œa ÇqõeŒ—8ûW×Û›(OÖ}&tÐʤ†§V¼v?Îô5ƒæËx=YÇÀ¬ߎ£jû¾0ÑìAÆêÕÊÅ ~q¬¼£U îqf+­üÐ3ø¨Îj <, ˜VZ×ÈÀ¼*Koè¹›ƒGP†Â‚‰º¿ÜŸÀõ<ÊzŽŽÃ<ΙígåøÎýüõ"ùy[½fÇÎ’@P|]oNö»ÊͤöSô®Ÿó;öÖ3 ß-­^VÌÌí”IöÅÆ0£Cè;öÌYúÍÂþÚ¶üÅžIëž9H‚ïØS‹—î/›±jŠï÷ÐLcÈ[jàxOõ`ÅØÅ c˜§ÀK ì$OΓAì,&SXÆ ï÷)lè>Ü¿±ì;Æ1œª¡Œ0¶CÛ±×ên ð•9Ã;+-P¢ —¼U£FLGÄmÙÂñ2f_òH$e"T ¡Êµ¸N=Ú±UßE¹8šÏ­Ç÷BÐ Ò¤[ë ñ)øí¼ÔGZÙÀç¦ S(Á,\eÖj«@ìÚ±×·ú# ºLà;+YÐé8)¿u4 hJKÖ‰ÌÅ:²Bí`^¥¹ð¹QrIðIcÀo+iЗ‹÷TòŽ=:PŒPYÖæ:chÇ!(Ð?™ a,]¹GümMÙœžØ#8É.ˆ@-è¢Û±R𛆔ôÿ”±G T@1ç#àýRõp †{Ö›Á\ü¿Gd ßo¹ªu݃öà÷ËgŸ´N+;óûßjýDt ±•[ç[¨|(I ï¡z8^ ßN’2ìQÌ—6€±(gŠsW®çÓÂï—o‹”!+H÷¶2jï ͧü´0¶‘š¥I–ÂØR¹¶(“>Wùu²ãsßbã_ìñì2vD„&ðªwì9ßÈ:÷2qÂó¢º9Æ~Vÿ|“O ÄRÐmAlÁÞ÷Ô@<}»…ßïá)‚Ä¿ëþç†g¡œ¼Ä”Ä ·îØjÀÙ”Ä H°;6îºÀ>ß“ÖlÑ) ¸‘’ð\=ëm½T€?ÛvÀ[vl­·…p%0ˆÜ±…=ƒ¿÷ŽeÇ3«;ä½!¿±ë¸:;ö× (ý]ÿ;öœo;wdxæ8oZ·r¯ƒ0lšµËÅôŽ$Äÿ5ÕçöÖ—ÿbAÍ$“ôºßô‹ëÑ¿d§Œ¥á­ Ñ¬g2ö\ܲfËK¥*ô}.Ž¡öÉT—ÚWf"ŸMZÕñæ-×E‰oð_’÷ÆrÀwVêòǺyç-0§-ù GŠŒ]x¿(ýÄü|;Œç¦Ÿ|2«qð=(cNëgÞœ­ƒ–y›0^?ó¶?*…ï—?g‹S ÁôžÚ\ǎ븈+û{[ðÛ&á¾^Ì•Rà2>gVQWvrƒ`ÜËù‹µ‚­ºtÏÁyñ¹UÒâ@ô–?gVu|ð_nÿb‡àm–r-'ÖB½‰üAì,# Ò™ãý-Vé"1$‡­z;öÔµT ‘>xo‰j³_ e–Ú%Œc¨>{¤¿h1$¢:ý-k“…ùNX•m½¿éXï0ÇQ…ãÕ9‰¶)æ}Q•ã·òÆ*žYs\é/àëÊ?°æg1YvÞ#¸ 0¶Þ±%ËáÝ»ëxM;Ä^e½1€ü%à(»c«Ø¯Â€¹M KîX¹‚y¤“@`¯ög/naN]ƒ-?ia¯]šÎ‚Ø þŽ­VS™bˆ”É[ü#›`–‚çÎ×J9`4dwly!Ï9I5ðýÎ2N¡! Ô.Nê{æþô^ì‹?ã-óÃÙ}fr?=¾[õìzø¬[6Rû']ƨڱå#%c‘+áso‹ð0ê“s\š£KýƒUAg\ú¦`éSŠd0oëâ Ã€5$X™e;í# ç¾ð¹w½uÌò¹Š;|e»óœÿßÄ¡[È5s|üÑc«ÎBèz> .7¯ö(éB¹·õ‰õÛ¯Æj,ñ[½{›g5$™$PRg@Å8ü¶ê ±uñ¤?u8°[رu¾Iï'ËX`4ïXª>5p,öŸ{ÛCæ'– ?›Õ’µ¤BKÙŽÕ ‰-ÀŽVÆžy#èjK¦H3íX/xtƒ1ÿHÑîØ(~ÖZÀ!qhÝNIÊKYw¨ÅûЬ.‘1?µx^kˆ+Ÿ¤‰ÖöY›L•§ ºŽŽÁÑî ³ê%&úqïÊ [õU4MpW{lµCsüÓ ž{î‰2LŸö 0^/ÎÁ@W²}ôËì±QwC§ØºIƒœ{@Þá·e½wõØsÈå¿cÆ®[¯Æw–ßUg¥ä »òÄ6SÖŒ½MßcÄ7Æ+u?6ý8’7ýÑŒ­{7¼3‡…wV½©û—Ùçýn/[â+/ÿ; ÏÒùÓøÌqó.ܱU/ÉæPüδ5aflÕK^z̯áüêï¡ê%ûüD£¼„f¢ÇžyÛ9ÎÛN€¢ÿ¶§^’Å‘^ËL•\Å}GOË`> YbžúÔK’SŽ ‘]Æ[ Gô‰]ˆ·Ì"Èuéá¨ÃùVl˜»žk§>IFˆ¢Bdz¿¸Î¼xp=°mLÙªÛ!6>ø܇fu‘( âzîv©è[MöñÓéÝñ[œ¼0ûö ÎM;ë-Ðõ# ½Œc¨õ6emà`g½MYÀ]zÚéÝŸ8NÖÁñ.â%ªˆ¸ÓsÏ‚÷PN²ª€;ñ~,"Ü>˜šÿuÇ–Õøºç±Á·îÇ.™DÉY¾Ç%)œø‚(ÈŽÕÇ>N¾$±µ•éÇémŒ…þ*˜Oú±z ÷ÈÌN¸3xÔsUAqŒ}lXrCb¤ó0˜fäùmøý3ûÄ®ç5Ç’Uw2üÖ'û84>ÇÞEâçL-ü_sºr¼X–ð,3¬)DÍ|“™6*÷¥Ve€©=~ið­Ç¡¡Éˆý䩗Ø/‡þÆ X8em z;IH„ûïªþ5A÷ m¹çšÕ§0mB}g§Õ®=¶ðîèýlÏŸš>zl <ÛrÄ[ö¾Ï­|RÖÀñyËûV ›¦¦ èW:åu/|Ùgå=¶$ ö@‡Œ9á•¶i®cŒÝócàãuRŒm×àŒ•"aílÇ’vÌgUI¼m—±XÇ-•‰aK0–#z칿øÔðö5pÂo‹Úéó~Ù¼¿³’Ù÷fÿŒAû=kÑí› ûŽWúx¯0ÈZô‰ÖßC)ƒÈë´úó~ÞYIƒˆ+š«ÌåÔßÝ{wïï{¾è÷ùUâ Æ¦8†!=¶x»(±˜w2\CÕ_²§Í‡ôVÏØr+p"ŒÝW§>o·^"áHRŽþܪ—L’‰øf×ËØ’ßñYdziígl©üùÄ,ê©‹¯ÌßúàÒØg³¸ê\ jñ‰B>¹¸„þˆ{ª[ŠI" °ÐÁбe 2¹ƒæÿ..­?ŸɃjxKª>ÉsÀs÷v Ï-ûkx)y`‚¸cKäJx}O'ô­×ÅÅ–"þ†¿­l\B¬óçÒjЫ86;¯F)GåÏж!K‘‚!;¶xAÛÀ\®h6y1ÝEV¸£¯âÙì»:¡8Ü‚|]¢Í’¾Þ8%à·]¦Í²NõI²>cl£Ä b×¼¯¸6Ë•Q&L\wìÅqЈþ¶Âqä„î“[8¯@ìkâ:Ö‹ã@OÃêj'¶èQªö3t•ٱŲNùyÜ0p½•|È> é“Ãà·^õÒX†§]¾cÇžyK‰.|Ó?±gÞ˜<; ìkÙ™·œ#@ì‰\VóáP?#¬ï,«y3ÐËêË£s.²Ìï·Ã Ã§sp+ü-&b_xò+Ü(T)BœwùÅßEó ´Vwì‹¿ ¥PN&ó‰âbvšñÓ½p¼|mï:÷?Ž ;V®W—bÛ{ÖוFõ1ÏÒÀ3À/þæ¾3”€ß±^= [öxÁš¯þ_$èLd€©­ê/1Eº\3;«Dºx\ê$ã=ëö—Ðj9Ar Ïùê/ÙGËGŒ>càÊ>ü Æ~Uý%™ƒ€ÒšpVVõ—ÐßAý2—Ba½UÉzÿâFõy¿E¨×Þ«öàN ¢ÍØRŒvÿàC õu•OFLÂ:FE£T±fWÎX ¡[²XK cµ¥Ä[VQÙ®¯=§¥ª—(:%=0Åš=¶êÊ L‡¶ 0ÞÛ‡} ó1»²[ªÂhÇ·^Oñ7¶dÙ÷oÆç ÜciÔýM'ƶ¶Ãÿ¦ HQÉØaÞ’QÔßoéŒÄÎwð¹j ±«ÈdkŒmÆo[^X¦ßçJÇ,©ìlõÕ€þ‰~Ûí{UìíXýhÊØ+ ó¤M}øþýÎë}ò’9ÇM;cO½„æÇGqMÃ÷[ŽXû«ÂçŽ ßdÕK&u•ç[_Ü¿‡ëÃŽÏÍO¤ÿ¶µªü¬üSÞ1a*>Ž3àdÆ:ú¼­c‹5ä»ï±c8úKûLü¸F‹âxÁˆØB=u.…Ø£hÚûíÓtB½šÖ©OÎÞ„y¸ˆ¯S¹Û¾ýç±¹FTý%Á€3$%60¶\™{­6ÿb¯‚ ÿÍ rªzÉTÐeLc#è'*ë 0Eùßãñ [êœ]ëãx™EtpS‘ÔY`lå“Ã'{ÕnþbKDM´%mÂÄÇoBümç\=O”õ’çe~ð7qàNÏï9çÇTŒð{àƒ¿íüÚQuQ€{FLeç¾Ð+ìÃQ >&íûè%À¨D?±‡Gµ‡À;ÀÑhÇÕ^³ë±‡øào®†˜ûâ.¸cþæ Ž–ïŒc£ž úl¹}Cß ÉÁßœ¹0ÓcË«Ýoyh»=_'9ó¦ z05˜c9óÆÊo© ø<É™·ÕÁâ'ï{æíƒ%eÛÔÏ(ë%¹ÀׇW70ÿ%9¼Å×Äû/–Öç·ÞâBmÇTŒðí”_̇W—8:Ü¥IŽÃÀ[|(¸ïTÉ^\ˆ}½té¿ØUsÇXûŒ·úK<äùrÇØ[W6äQ¹ãz»¸¨s´º fCeë¾uOj ÌqÕKvîÉ€% ¼“Öù6 ñ,¨µQõ—XWej¯{µy“Á¸6ÇßO¨óØf©÷~'Uiöó[bÆÝ‚½ê0 ž{ò£ùyn~AV}ACФn.è¥"+ü ì³L¢µmeláoÃQ…h»Òó’ê/ÙŸ¤#&áfýÞbþrÏuˆ”!öâoL€I¬EÚß™_üÍjb‹òßR^•µ&>wßÞ ¶ÖÛ>»ñ¹*½gJ{UÑõ'®À{(ñÕ}ÁeÀ‡–·6³Œ-üMÙ“Ø3Ùû©lq…Ñ2Vž[ødf >ÜcK´äÎù] sQý“s"®·c{¯%•lÉ>/Œ?c€oòê–x·Fx~›ás Ó@®ÜŠÕëTÊ%;_AÞÁr÷÷nÅ9Æ÷宵ߎWµ÷#R”½Ö°Ï·. w†xýµ>߸KGáo6?ßï’ÞÃI·^"s}4¬ßq¸ê%Yà@lÑÝg…©`cî% ¦ÈØÂßœççÕÏ-wñλš“}ÆV‹¦!Ú±f¾ý%{£\²¯y%èd ßCRíá¹ÅïÞ“øf‚G=Ö¯já@nꄆÇUŽÚ£¡–_>p*«3À³¸ø8ôÇŸ±:Ãï¡ø8‰K{%>'ÓTÀß–vláoa:Žîø\)ÌgLÀêP,yÇjÅR?»ƒ¯Ê'_Tá{†|^^±ì°æ ,.wlT¬Ï/Ÿ Æ@ãæ´°ü¦V;¶ÜÄ j¯úïmŸ,[­[&º‹ð·ÀçžyË~#ý(Ÿ[ø[€íH^ÿ ·gªy3P÷¹‹ŒÕûÎh6;ékwŽÑ+Ø0¶ð·WGæ˜ââ±±zóy­­5Ôå*“ƒ7c 3EB ¨]1_!Ðp°wZ ðæÂߌ»Ò™Q1¶ø¦äªÞg¯Rau“Ñáé³§–të j¹}bTú♯û|¿)¾‡ÂßÂŒh”p½ñ忯Üyùö—ì\$ûˆ€{Æ·¿Ôv³-µ¸úK´ƒ Å“À1þ‚¿¾®‹ê/Ù©ØD¾Èlž}{ý?‡#/I¼swXô:Ž r‚F£^fláoÒû˜2V¸÷”±\üÍ?xËXËÉÅßòqKïŸä2Ø ä“­× ö-üm¿!ûàþ×ãkK34`?{þb û#q¼±Ï­{@"qkr˜±…¿½†ã±1ÞCáo¯kúßþ; ¦Àå³»§8`¼œÅ÷[øÛ콡»¾‡ªsMñOlkýoN@ñÔùoÐ ›±…¿ÍÞ xb½“VøÛÔù‰…{![áoÓ‡äW­öå[?ûü¶é½^ÂU/‘5qÞvzÎ0†Âßð„sŽÖqÕKvª€ksdðíÜz ÙÄïL¡ÅU/ÉM¿už½ß“ýši®yš1!ö¸Å#?à)ó>÷ô™ûtÄßöÖ§ppíÊŸ«ý>Ï~tž¦1âdk0Cìñí¢˜ q=½Ä~Œ»´Ç¼°m/{òSFì`ßÚaÿõkçꊱ;Ç‚1Tÿ¤Ñøpû€ ÎÕ_2`3‘t)8[ª^"Úyy9žCQÆñôÑÖÜ×JÈ5¢x‹6Qs ð¹lkšÈÁ:ç||ž{×›`ìÞIð¹z4ùx"þf‚yTÖKRà¹\Y_̇£xT6Ðr-ð,Žƒã0/A®rldŽ# ùÈõˆÿ9d¬…š’k‚¶…d½ä1} ´231|.=±`R÷7ãxŽ¡ ào¯@¬<±NŽk“P÷@²^’±!ÈS}DÉzÉãž&ø\SÁ؃ãøüâÁB16ÎsA»ôéIÇß–õ’læë|e‚ïwžy“X]Ê >÷Ì1ÔøW¶0+Äžy›ôÁÉ„Ÿ{ð·XŽžZ‹o‘yð7ñÎÍw†@2nººèÛqÕ8^{¸rã‹}ü‘±þŸsi…X}ÎXˆ­{w¿ ?5Ã÷pÍy§}¸ˆ¨§ ëxR¾VÀ:œÉKƒØUÚ°ó£õ‡}ÐRž6ƒ{¶_B¿œ”©*hUÆ?ÓØ.½Š…ü¬tâ…ØÛ? ØbÂÞse©z‰º~p'ƒ\Yª¿„¡¿äá–´T;c‹ÿ&Ë1VV×—:ø[€NïSWÖÎK:ø›Â~väx;Ž#tò†½äðM{Þ'O½$Rà÷‡eÒs©þ’tÈA‡÷ÑÊè[ø[âN´„a W§w"—‹ÞBÌkWÇ9L¤Ž¿Í/¦†<r똚”_ï>ß°¶Íƒ;Fʰ7ñ3ŒÑûÄä:öÎÀº}jöñ–Þ«Àþufî÷B)½W‹ O_<Áû-ÓÞÄPà=ìM¶÷ìI¹öîÕBŸXà¿Ié—äÞ' ïÌnŸ£áxm8ü¶Û?¹ð;Û±³¥_B¼ cøNRú%p;±p'“Ò/Ù{ ãsEûÝ_J¿Dg÷E9²Ú³¹<á¦Æ<‘ÒqÃj0qÆ–ÓÙûïûmŸ^Æ–N¯Äg½Áû­zɾw®7cXC·^²§~uªRÆÆåž!f¹oó°†ÊÄwï0_ŒÕbËLc"^è³ã¢eÆŠïl Á7©·Ï|*b¡‹û}H´ê\ LVÔõ‚¤úK´ƒ¤/pT‰‘ †½‹[:†ƒ>ܾ. ”±UŸÜ{*òf„`Í_ cçå³ßزÀÙÙ$Ô…û…ØÕ14äöA}R®~ÉX5;'èJHñqrÓC6Áçòk?üÕËÄç–LJƒVå^™G]>ÎNŽ×›ø¦\>Î\˜;æÕ—£ ‰šé‡áo«|rZÓ­K£Ö:R|^ Óû´Ø:ÄÎÂ|M¸´K¥ø8lKÁÆmæˆÅÇáh óR†»´gß‹ÌÑöeJñqdAŸM¶D@Ý^\+ÖôöeJÕKv~‚{Ÿ ö£T½dŸ÷d}ñêWFWÇÄ:€#&eñ«ÜuÊ)°OléÎ$ øÐbŒ=óö£_òç C[ø[ Þ×@=s‰š7#£•)|¿QóF:ÏZÈ=“¨y›½ÿ!ë¨m,Qø›Mä}ÑÂûqnJP¯ÞWº÷¡¸÷7︓¤i{_óZz¯©é=Öö(ï^>Ÿµ -½×µ·ŒÌívìõvSŒŠôpêxñ7Ε¥Ñ޽în=/Éúúùhé—¤sâÎÕ€žŽ‹¿MEÎrSµúKÜ×KêÄÂ1\¯K°mKoø&µúK²‹é£õ·zÿŽV‰Jï1,m7î±W_Ù>ö¥Õ_’-p¨[JðÜê ZеøÄ¨à¹×g…±ŸmÔcK[âƒt‰…Œ-›È=Kì@z¬¦Ö-\¤µ#dìÕSøÔøÙ¨c(Zþ8|2¨óf´€ÍÇ»¯óÏÒ²V7ijäÏ^çÆVž rûDï¤U/aðàÍX3Œ½:ôޏÓþò ÞC™6[ïÉØˆÎÇÑuužòõög:a ¥_²/Œ0o:'Ž!Ч6]0–:«tîÝüùóÜ®“£4Kó¥[›žñv¼P©ú^¡ð¼‡Þ˪tîÝûÞ¹ôó~'Œ—«¦àŸç~ë—Ã.ÎXðÜS/ÙÛ2MüÎÆ€ØêWp×|$ò&Œ¡ü:¤{Düï¡ÚõÞP¥(îÙ§¾³Þ¨O½$M?Ƈ‡BJ{ê\ÞeI=öô™¡ˆ©‘z¯ËéS/ÑÔb2#–wéþΪ^2^οXñc‹}!®':7öúˆ±ãÚLAå[~Wê×Û÷àÙcËGÌ?ú©Y„¹(1Õ‰XóŽ˜UI6âOÄ ·Uu®Õýž#oÀ\¬U=éßïλ׀-*¯—&>zp=ð}°uæmç^h^N{¬”·³ð‡œW{ûKb_Yûéï·úK+âós|ëÅÇI¿o*¼³«c¨¨ »Ó]ÃfÎñàoØ7hty2Ñ'S@“ÏŠC½‹¯^æ‚úºgç6 øÛ0ÐL¶ËÇ¡Á i î-vù84ú^b !blñq"ÐÿM îdV|œ}Uð^ …¾++>ξ×õ³PRNÛõ¥…õö‘àþo¸ Cá8Yê¾Alá8Sû{È+hç_ç£9‰ñ¹TX)x¤½n®±\±Ÿ>…@/_«z‰~s RÅX­Ø®å•ù:ïËøö+ËŸ«©Œ±^>ñF ÁFèmå'œÀÖÚ xu&gÞö"Pàr-Þ¢IÍ›¹¡‡rlLjÞ¸Ÿoÿ{,÷bkÞfïÉy¼'€giRø›õÜóѪÄïL.þ\£Çëcïzó¶§&FE߃]LíãÂ^@“ïîuåäF)¾‡«?é µþîèvõ^E»_RzCÏ´½z¯4µ·8øJï5‹¥ðAûpÆRîˆ1ô”Y齎W ü×S¨ãNVý%I&üè÷aÎuõK¤siŸú$x6Yõ—ìœ ½•²¦ŸCÕ_bs þÙΖ:žeÕ_²¿)ùp˜ÎÂê/úà8ÐÃivõ¹ßïNTzÔlUQï/yð!íwS+œô‡œŸº=ÌEùãäÿ±“PÈ£LÊÃ6PKqo³]cßÊO8죧¾ ç*?áÚ£¿“ÍÏõòýýà û¨Æç–Ÿ°’ñGs¶ãoV~Â"¾ÓþSC±òf6ô®2ÿ^÷·~b£ë`˜KÝ 'ú\ù=»ú%ãƒ}ùœÛ{ùwLJ_¸?~ñzÕøáÊØÑ{…ÍϽ{_~&αîdQº3öá ¦ oñÖ¹–ã÷`p‡,>Nö° ~g&0*<Ë‘Ûg¯éÂËÏB\Zsð§^’žc†E¾©ÅÑÃSúÔ¶ù‚Øã#¦ˆ“ííÁá=œ:—Ùç¹{±Œ÷è<½öOìnªò£ê‚ëó€Øs¾ÍÞlvø…Ô߯—~ !({CiÀs ï¦vVµÑc¹|@>œ¶ýñÄVŸ9Ô«œaô3ÀÇÕŸ,)Ï·åðÜSW&àj©ÀŽaûÃÇÉÆ¿ÀØ”‚÷pxTË9mÆ ÿàs”Öè{FÚoaìáã¬.¦ñð»ð/>ŽvQÿG3™Ÿ{pœÀ´ô‚ÂçG­óEÒÓ õíýáã<‚v ±õVüáãH6®"ïk2ô]ùÃÇ‘äNNÀ³} ýáãìdwò_§˜¿Ø¨Øo‘t%<ë%)r`þÁce`ì<±<Cѹ0vÕos¬W/ÍoÏzI¾3ÈëxS¹¿X¾±ÈÏ2Än}yóºuÙîŒs‘õ’Ý C~–„`ìÑ1\ÝäáÙ¶Æç¹…ã¬^ªÀÁóuð7CÜIw¾z Äéào ¾‡§¦w2§yñXEl‘c‹·h„UR³!öèOF7A|ú û±±‡ÿFÂ,iÌ^+ö¬—$ñö¾ŒU1ˆ=øÛ”‰±é5ÑÏ:8Ž ö•û/÷^ ¯þ’¥ôå%®¹åÅljøè î­¤ç%ΣjÅd|<…¼üqD¾¸S€×–W½„ô‹ãx ùS/I9ù`Iè¹ë|xÂC ñ·¥ÂYȇßÐx°‚sþ©—Øã± ïÌNO ¾3%‚9~ê%ɉøÎö­¥ã ^ý%C?UÂå}¼Õ_’„¨‘Úš]WÍ¥|ieâsS¯¸Ï[õ—;j4¦òy¿å'̬ÈCÉÝ»ÿ¶ò–×yäÏ·d(Ãsåz¨Aï-Ÿá·{€ý±]Š&c­üɵ÷'ˆïᬷýÞQëo¿ú€Ø(þ¦!—kÿ”®ï¥_’" ŸçB?¢—~ÉbÇ÷ëPê­ûOŒ…û¦—~IÚÚ;¾‡üìê½r0Ž—‡ö÷[ú%ÊŽ˜Ä>JúýØõõC¼Å»•uÆÚõ|üN´ 9ÑÿØ‹#×ÏÚ‡ÜE.‡¬Ï±fäˆÅÇÙG¤£ÏÕU/>ŽöæÙ'¯&Çß&…uôºgæëˆ;yñq2ýE4 A/>Î> ð,€IxñqLU€#6'ãû-gÏ’ž5áEñqv²€¾©½¶¨z‰™á™5ôDFñqÞ’ùßx×€>Ç(>N,î›Ô.mm³{æ-&è~%v»ð¹R±µ¼T Û™·½ö‘ŸEèM×Ox¿_À³^•߿ؚ7Ÿ½.'>ÄÖ¼‘MðÄ ‡»iÌâ¿xiÖð0v^Rw¢ÏÏÒŸ|I_|h –LÌâ¿1øîì»Þ¾SÌË[l°§¦@ÀÉŒÒ{幫±÷³Þ3¥÷šmÛ0Ç©ò°z¬N&¨'––»ðÜÒyâO­8u¤ÇVŸ‚#>D«çgQz¯CÖÌ÷±Ðs¨þ’ˆ…:pû}÷>±¨þ’””üjšu^sT‰¯®¯üHi¯Gõ—ìåýáØ¬ÕëÕ±^~7r*vVÍð®¾òD}9MÏÞkåe6P»ôUFþ‹½}A‚HFï¡xùnŸúzÌÞå“I3ü¶,¸÷ï¬üqô‰el>¸Ç®Â³±¯è²®{îû> 0Þ@}ð(?a“‰k(:l•±u G¿Åpè‹òÎ&LøÎ"Öfù ïM²ëe>­„½w1ÊOx¯Í¾†²%x)Œ¡t ‘+·NqŸc~}ÄzïÁz¤Oû\”~I0xÐe,÷¸(ý’óOýŒ¡ó‡âê—Ìè8dþ6ààEé—èŸwÆ0^)o0Ø×Ÿ¹ðÜê{õ&‚ræøóÎJwÆâYñGº±çÞäL‘Àx«^"Œ8ú>ªá=<õ’À†³†@¯"äè<áã®MxîáQýÔ@ÞØ=Ó!‡G•‚)¨S&ÑûÌCJÆWÓl‚&jÜþSŒÍ̵ë¥÷ªöÁ³²ž Ï­{÷øâo :.që%öÅÔF8ü¶«?©ˆ°€_G”~ÉÛ’þ‡í-¹ß £ø8,þ‰E •xø8±sðî´ø¡åGEA_>΂çòõ úà'¡¥‡Ç½Ì!{Iñq9L‘>ŽæCbö#ÆÃÇÑ,F*`_k]<|œ€äÁ„ VŸØpA4Е;ú“~V¦„±~bí£×¶æçÅyX¯¶|ÿÈzI6›ucúçˆüÎüÌÛ ¡üW°¤ð3o<5÷ö߃ŸyCnjj¨ðg sž>_ˆ•ú&³¢ÏUbnÊÈ£ŠXRøÁß}¹¯Q~†±œ¬=¶ôðäƒÝ¦L Œ×Š?ÌgFB”?ŽÏÏ;Ÿå£Ð§p(:­>™c¯Úá¼í„cgås~Öq³‘ÎØur ò©öûÛþß¾2áxÓY{ìñ7%ýÌqÂ*{ú‚H>øÛþH Æ åm'jüûÞÒr‚[¼|j&©'Õî\‚{u±?þdisµzlñy!ßi¦ÜÇ0«Ÿ‹m€RªÍ÷1”Ÿ°Èê5ÇçÎð›gìÕSðÎ}HxÉ£ÏñõNj,Më¿­ü„ݺçî‘ Tˆ-C‹Ûl2¶t ]߃/…ßV:A†Ïõ^ƒNZìÁ³pžçxçþÆüÉr¼Í&ë¿©45ö)>ºTÖ[é—èþÐzjW}ŽK¿ÄV×P9²®øÜºw/¨‘æý­ûVïØsïÞK³û%åw6Fߪ^²×òfö0^-<« Nœu±¢Ï[ÕK úˆíÑNCÕKúeí´j¶–ʌ˥5ÄõlÂ{¨z‰|=ÒœºŸ{¶Áœýw~øC½yÇ^•">dÒ½øvlñ¨öE±ñ¹à{ âQí7 Šjƒ”3¶úÌ•pïÓÙ¤Z3¶tž˜³µÏ-?ªÕïÒW®ý„Œ-UtÝ™‡ÿ ï¡øêÈLï‰{ýqþr£?}ZŠ>†âã¤áòÇ_`_¯þÖ2ó’þýçÿøvR¿±¿_¾¼ŽoqD¿ëíØâãÐD­Ê±&œY—ãCÁO@goÇ^>ôø?ëVá{qœXÀ›£çž;6.æÓê©yôÏŽ¿¥|ÛÁ$Vh)*wì`Çžysí5èG÷€1v.2ô_W¯¿ØÂqÆìs‘4¬ï¡ø81œ€ŸÅß1޳ÄáÜ|˱——ÿÙßÞ_¬]?ö䀵yÆžyÛ'z×”|R¶v×Û±Qíü´¤ C¬ŽŠí˜û£CÔµóvìÉ'Sfô)ðý>ý%ò€ÅÈݺ{ú¹ñÕ±5oѽfÿÇh‘±wÞšùêáFÆ^üMºÿPzüÌqù g¯#FåøÎ.þ6ïä ¹ck½­F¶x´óºÃ޵Âßܰß>mSû™Uz¯°ÙiB»®¶æD¾“/ïçEé½²:Öt·t4c¯oßD^Í®•¶cåÅÉ>ž7½¿cµp²õ_æ ç[é½f“3ã·Þïz;Ö 'kâl‡‹¨ÞÏ¡ê/ÙwTä‹hñZìí/y­ÿ0Ÿý[úoóy=®Ï2 ¸ëyå%“>øÐlðRÆÒÍwóÙ y_é—ä=ß°¾Òçͯ˜Ìx€Y¿^>b¸%™+8ç½t w¤¡Î)æë~u Á *m.ÇP:† <µ”Nˆ-?a—€¡d±¿³òÇ1Z˜ÏZ]gdÇ^=ó5๋š¬vÆV^ ûp^Ç{î¤î°W¯=ëðÜÒÁ`Ъ|(°ŽËOx®î•œ±>!W.?áÃßæ÷ùÒ/qûŽ×Ü K¿Ä¤÷‘>ãm²¹ÿMqiô;Îóˆ ¶îÝ“ç½aI;v]Í"bœãÞ¯¼c©ð,›8†a­×rÇ–îŒß–yðÜâã°¼³ô¢á«§¶²zí5c§Møm§_yMA²½Õ9<×ÿSbQXO AˆêÅþxWíͰףæ7'@|(¸k¢îØêÃÃ1̬ñü•ÞëÎéÃä<û:ž¥_2çGo0ù{æ-/Q»ºžãŽ•ÒØ'Ä’öмvlñqÜ0vÜ¿iÅwâñÁÔzïâŽ=zxK?\®=€€ØãkúÑ~L`Ûæ*]µn€uúKZ›dÆü-\>zŽàõ²c×SWZîõÞƒKÅ ŠN¦MR5c`bˆ}Åêi;öà8û+QˆÖý|v¬>¸Sú…vÊŽµ‡/²ÉÜ3ºVÚŽ=ü7]Šš‡¢½¿/[[ŸØpG1ìŸÌ‹Ørp‹çMÜiÂ{xø8þð7ÓJråùðq<“&ÜKÜ!·ŸÇÿ½Ú¿{É ˆå'6ÆÇ¯.î8óáãì„{>w‡×ŽÕ3éi‰ã¬…±VÏýp@Ì?ïÁÏ;Óøð¾î…3ë%+q2ÔSHwÁš ð@JœŒà;ËzI~f8™ŒsÁgÞ&ì‹1–žçÚ~Kz.Ž—ÿs@]À<\9³juL-»~ÿS ôü𨠯žRþo3ÖÏêØÌ”ƒ¿ hÎ>½ùS`¼gÞ^žä¦¦£ëUìØê šþ›î_Ö÷êâãŒõáF‰Ãs £Ï{°èøf:«–öÂG›0½ûùVþ8ŽÞkYƒîü¬,ÓUëã ¶3AȪ^âÄk~ŒfÓ’±sˆ£¿6¤±åo:ý÷‚ïLþ xì“Â÷Ü~jå“]üù‰Àq¦nú—½±1~[õs­e€%­ýÞ=µ|Ĉ°¯ÅÍŠ'c¯è±î½?ËOxß“b“:Ï-1·ã¥iË•ŸpÖ'±6¸ æÍ¸´-TóÙ¯æÂÎý-eÑ‹„0W.ý’…ZiO,äà¥_’î;¸‹”~ɾ†¢×Ë^ý¾9íê‚oT¾3…o½ôKl¬5q./œ¥_’½ø¹DÿÖK¿do]ÆøíHÀséâd.øM.x¿U/Iƒ{ü~Ó0 ÇÊõGGÌÚ|3¶ê%žB¹6 ÇPýÊ:q ©‡×÷¾ª—ìä¿Él éßÙõVЗËüLá^X~Â)Á†¸^Ì^cšQu.Qäí\nÁs«ÏœC‘gañqE|¹ˆp(>ÎÞÎäÃdxgÅÇÉ Œ —VážU|œõ’Ìp=Áñ–•}|u@Ýs^6ì=Ð6Î=¶xTÁŸÁè÷Øõö—êeîÚÏ‹5^^ÇÇWnyß××åãL0Þœ×KÅ󙨙º"Ëu3ê9ÎÑŽ¦Œ•âÍøúào]#wÿïÇY3˜öpYÅÇ Ü3õÎåJ¬ñÄ‚\ÊÖÐ2ˆ=8N "p]£÷ªåæX±CÉr p¹vlá8 vL õðvlá8žX »v>ÎŽ-g_èS{Oþ¿ØÓ¯<×Z?xOŸ3VN,j¸&-ºkòíX­Xù|üƒÝ1|Ï·®y¸c/-íL¸Q¨y¸cϼåqŒþ"½-î¿ùë+v}ê©÷µμ%·0µ÷Êû{æmA_PÚ;LÁØÒS  M¸àYkÕ¼Et¾ÓcƒŽ±5o¨ífù‰,ˆÕ³DLMß™¶ØAbj„±gÞÆ_®ÈãÖq齆,äg¥£@ßûJïÕc ç;÷ýw•Þkö!}øYÝÇ&Õc sÿphtþÐŽ}ù¦„:{]¢4c«OÁçG“Ï;§"=Å‹+÷ÑkKicxnéOò@Ü)³õ~TIú…Bì>Üp¼—ÿ&øÛìïîc¯Noø.m7xgÕ_2§ vž;ôÖ­Ò/y¥59L]Çž¼Ä-üËóaÃÕWVEîNDÏwsñ/&rÒ·¦g\}¯º>¸ÈrïÉ'÷ åëÞûÄ—.6wÕc3O륷 àJh†ñ–žBô|'[—ö{Ö*?áýâà-ûZØñ‹U~™‘Â\¤ÒDÿ&ËOx¿^…ýwþý>¿äúˆ-‚çʲŽù¬òféúÕË r£ò¦5‘s%Âð­—Ÿp†q ªŸ±…¿I0ŽA¹çöëòq–#V—J­0…¿…!ŸLÄàýjáojKñ=ØêcÐÂßÈ»Z0=÷î„ÎÛ¤Žû/-üÍâo;¡è½·K eŒý+Kߨª—ÐúÄR×~L ჿ¥Ij¥ôk,µ[ßY+ðÛJÇpÙç¹#ÞY”~”ás“À×ç¢úKX>ãMì³?×®t¯?8$àÒËÖõQ@͸¢ðÜš7/@b‹oʽÁPƒ3 ø8NÞ—ÿy ÝØ£Ï¥CSóõ¨eÇŠ]û2†~eÇר%š—ƒ ã=uå9i}xuÑûÌ—ÕÛ¯ùƒÕ…9Ä>ΰ^È;íóV|œ>WóWÒïÆ>ÎΣ>¸žrÇý—Ÿº2ñ'6+Ð}Ž] ¿ úàzÜ{%–ŽÓÉn…î8'ÒHT«3†¸õðq⟠¨}û¹ÖÃljlÀê^z÷GD,ªR·¥ËØyb™z~–WfÀ:Vñqèh%VÇwÈËÇ]3#å+q¼Goľ+SÅç?ªŠõÜ(éh€©­(=¼a­?ê÷cÞ=DÐ'~Ò€{aÖKQ¨á h‰gÿF=× <®—v½Ì<Ûë·uýõGB0*5oîØ÷*KbkÞ;xQ“ý…²^’ö2{,È!¶|ûÓæhC–±rÖÅ<+ÒSˆ!ö¬7ùú0 œ–†.ÍO,Þ|*½×WfúS‹^_§qx‹{³ýjÎ^ƒ¦yx‹C?>Wi‰ÑÇ0n(­V'ÓÄž>‘ñág®Aœ¿ì…ŸÃåjéhÆž°Û'“è=D4ÏzÛwlÄÉœ( Vë[gú`_8ÓêÛi¢8‡úC¿ÍîÔŽO­ØbKrÒ£ÚÿŸ>oÅÇ 1ôÌŠõØÛ$ˆ“eÃ챫êF ]š¹÷¼šÖáå¯õñÌ6]/—Gš ®Gâ£ÏÅS/ñäë}ž»oâðÛN>©J›~Í}Þ–•ns÷”àÂ1øícÂXé²a[ü·ü2 –€ßBtùoŒœ¶½{÷\ƒÊOXP#,÷ê®·c‹ÿ潦ððáÞBå'ìs!÷LA§lÇraÍŠœ6ÒïNTú%CzOïC›°6K¿dvÛ‰¥Õ¿³Ò/Ùû¥øç¹ýŽC¥_’é}Æ+ðÛ “Æ×{€yãë#öÁ %¨çÊÄÕ÷ßy›[øÛtÄêD WøâoæŸïlvÜ”ª^’¿¿‡A°.ª^²ï$ˆ±²ÍŽQÕK²ˆÏM_eˆ=õ’Ôš‚\cßÞ:§ª^¢s"¦¶·Œ^7¢ª—x#<ŸôГŒÒX2¬¯ï$¾_©:uO€Çú^©ø8ûÎëþÁ!áýgïµ¼0Ø` ¥c¸ 1ìä¼ö}§ø8´ú-†:ì“×gòɆ‡ØÒ1ürÚœ&Ž×/ïk ^ˆõ(*œFC¾ž3|¿Õ_²¯8ˆ_èÞ•?ŽƒVÏÃG‡ž^*ß·äë±À>Yþ8ÑÄc1yÉËDZ®gð܃ YÈÃN)™>ÇzñBÍΠ籎ã݇Òt%vìÁò‚X]D×øØ±Q:Ó°ÿfk4>×Fá-½nŸzæý“d…ã8uÜ_Ÿ^*ˆ-'TÀ÷lêRˆ¥‹%9ÜEÖ€»Yù®sçr=ÛËÂßvæHqÍód¸_˜VìÀ;Ùâ…c°ÂÔBASòµ`¾w=²3oy@¡&_(Ì›U+:¶øø¬~—&UÏ1úG ›—žÂ_ßë½w3ÞçÉϼí«H×ý’o+Õ_ì™·è$à©u9ÿŒ=óÆ+z¬aËjÆÖ¼ù€“)rHÉõ΃¦-Áwf…CâYãO7¿Ö¦×zÛß$òÉ Ï/Þ"›ƒÎÞ>zï8EáÝèU´¿ê{IÞ=LJ÷Õå 2vgðã]µc…çž}ÒEŸµ?_¸ãTI¶G¡.àÄûEõ—¨:#— ôÌw¬–/bˆ &ßêý“Tý%û~±à¹ñ‚Ío¬_M_\CÀOFÕ_’æ2€I$úÖÎX®þ’éŽøPR£f­û[O//iõØê RAí—gô>¥?I:ùƒŒW^^â-¢=WæQø[Ž7ÿyôØÂßRäbmà{(ü1›Ÿwvòɬ÷Á¼¥TUÿmóâoìð¬OeÆþ¶ ß™OÈ5¸ü„÷ɲKò½{-ü›Qö+º` |5>ÞÃ^ð½ϳøo¯£É_¬ŽÃóòß>úˆþ~Oolõ+;ðšŸX†çÿ-MV?c0xnáocÑç·MøÎVõ½êâùygýnÊëÜ»yÑ繯/Ç[>buåõ\¯ûû]å#Æ]sàùv ™WùˆMÆçîæc‹\õ’·¥áÚ)WçYò:~2AK19üÞïüÔKôߢÏUаڱ·Ÿ«ûÂ<¸iÀº(ýãF&ÁwFãú( VǯØÔ[þoΈ¿¥íz¿¥÷zÙ/ö•¹Ñèw.>Ϋ[ð›Ì3ˆ=x€ð‡öRI\=:†1?\Ä4á=C…ï7å2á=]5_/¨X ;Ãtx6ƒ?šÜ{Y™¢4î>Z ;kì:Düðq,ׯ*x‹îØÃ£8o Ž}qñq~„¥þ°:è¡g>x€Ë«“5` …ãËÇ/Ô:¿¹pœgVærÔû˜/ŽÃ˜µàÜäƒãL…s>þ-ƒ|ùà8Ù@9íO¬[þob½.%b98NöéF5@û|LJ&9èUÄœŒåà8Ù¿°[Ÿ1ü^Å÷ŸþÀ’XÊê%¸üÍÛ\8Þ3o VyÇéK;cϼíÉáÎkÝž/c­b?µÁA ó&^þYÐ_éô÷±D½3à–pâ8ýÞÂ:*–zYu( «øö¶ßoé— ûðßÏÅ=ªôKö=y‹éÝ cðÒ‰Ãüm w‘(ÿî½¹.|gÔçBFñß ¸%9ÚûÄdÌÂÔºÆþ3Ç"[:<‘¹ßØ‚X*/õñ‰¥Ñ¿©zÉ Ó‰ßºMˆ-½ ND=k(b˯ƒÛ!yÖ¦uî¯T½$¡bÔk³Õ÷3©zIÊÎ nºŽ¡tž†(Ì[ž,ý¹å3xL={__óRú%“&êËñŸöÂ]Wï ¿3rí½¬Rþ8;\ÈõœÝ+cÇrõñ;òyó,ßVüî¹çsfÃJÇ qȽûöýWÊg?#0ŸœÒñ!)_¯¸+@ø[¼ŽÑ=›Ž1ü¶òÇ Wô£ÊΛþ=gèGòÃí“Û_B„ú“b æøòqÆÀ Ù Î%ÅÇI1#ÄêÌ1¶ð€T:B¬j R|2àl?¾røÎ¬0 ž0†ÔÈíßzñqØ;_äÿ=w‘U8΢®÷êäg¥‹ãhÇc-ù›b Ç饧·q¡3oâŒú“:… –®?o_ —ƒ>ŒÐ™·½I.À¾df§öÅ1÷nÙ±Zãíµ×¼·èDJù ëð8Îí†ù‰=ó{¿GŸ«X¨Ð™·½„ÄÃ߯gÞÜû•wS}OáÒSÀúoÒJqÞøÌ›îÇš^ftg¤ü„s½ðÔŒð¹gÞögÖ±ÿw>~bkÞÂQÏ‘ÁK}ÇžyÛ—ô£ýÊœ±×ÚúˆÙè÷ a¿k½ öœÏ¾Gñ™·}ÿFîu#‘â-Z+–ÖTï9óF¯ŠÏG ò(‘»×GûQƒº&‰^Hó£y8ú}HÊ'5¥'b_ÎÍ«÷J ¶½Ž ž[º¡âo%…^*©þ’Ô&¶¯¾¼3/½žs=ü,Á1¿›'ê#îÓ¸s®¤úKxj¸¦½CÏûª¿„²*‹xV÷'Û±åoê>ŽÒì< ©þ’ý‚Ì£ý3Q.¾ÿDü¼{ïXù¿õ23§—hùù˜0Þ@ìV´ú¹˜§–t½þýª—çîÂzßHcÚ[þo½qõ‰Õë;rý„_·Í?=]‚:XÝ|¹v¬‚>Œg¿3š¨Ó»Æpð7Õ^7ú_Òý0'(>Žô²'–Alñߤï=±ûk€1Ôýmô;dÆ hqHé— ð&b?Ï-ü-@'ò‘çÀ¹(üžY‰Åôu\õ’}ÍÿŒa9ܼð7òüîÔ íߎ_üÍp.¦ó„ØÂßȾ³Ât¼[žzI¤¿©¶ÛœÖû¹Äþ¶·TôVÊ]ž{ð·ú}ÙÖ9{­Bª¿D¿Z•;…ÁßvyÂŒX]$HÙcϽÛÁ·äÙ¨cRõ1B<+Qé>†Ò{ucÄÉ’–±ÇGì¥èþŪ€&ª<|œ¼T}ÞÃ^^7•òÇ!6ÄÉ8 WX>N;âiïáèOî=ùz4?ãµòÚšþá ºÃJÇpNœ·¹@§LâÔ•÷þþÑ#Ms—ßX}ø8;Á²õÁ_MÕ7¶ø8´ÏòWïí]Åóáw=G×Q<ª ô³”žæfìÁ–òýAJ)c¥ð!èSHX´˜u<`ßœ>ÚÜS{“Žª+ë‡ïŸ¾´ð܃ãppßc§ðà ãà8;gž+¿”â7vg§LrpYp¿Ð9+¶5N=ò r{«¼ø´õ§>XÝÄ1”oŸEÏ k&Ù7å~5/ÆX©Øýr„ã-¾)èJdûòß´ô^÷×€:9*ݧ-= ë·9Ö˜Bcϼí“ab©AÏ©®š·÷FþÇiCO]wÞt€—z Ã:ó–jüèç±¥cÈÒû^Ó¾“Äžy“Ñó¨Gûr#]…› x.ÌGgöØZo¸éMö\—Õ:î}™‡ëmÞýÇ!ýóoY Ï=ó¶÷Zì‹ßÓÞµ ”Š·8{ÇÓÅ©?—jŸ\¤ès5ü6:ç‘èGó4Í´úK¨ì‡÷º(JÅÅQè9—Òáw“LÄqà š±ZZÁC?œ+îõu­þ’)FöÙ{Ք޾r„|ñ¬î5»cϼùWÏQ™a_çÃïö.F{êàл¨O½äÁ¾>±1`.ÊO8dàx÷uÞYñq–|æ8&èƒëõÇéÆœÇrÚa½U½$M¢@÷vOÛ‚çž|òmÑú‰õ{ô̵R>ש¶–ŸðÎð:§-ïNP×òž²úzË|z¾£ròÉÒ÷’Ç& ~›Ô=€G÷èIþ1Ü¥UVÝ/ºßøñí}b*åÿ†8=¶i=7’ëÿÖ{3v‚n¾–~ÉXŸ3kôþ(½ú%¼Œ%ñþ–p; Þoñߺxã/3Œ7^Ï|îï@ÕÂßĹàûfÛ×…Ö½{Lœ7ˆ½ø›L|.yïP-ümRøÜ=ZZõZ†s1mÂÚ¬zI¾3ø~'Í®Y¯·^Ò_ÐYo çPÕK²ë ~Û Ð9Õª—d«⛨Ǥz}V@_î‘ñ옖~ÉLñM¨ÙhùãdÞ¦|¾÷ŒhùãP7ÿ;V~Üû@ôúãà¼å]úû´üqz±î$~ëåc_¼›ü[´üq|š`ìX°O–?NŠS|tYAÃJ‹³?õ¿p øvŠ3çGÃ5™¸ý'{Q zÒÕ/êƒë¥*EÅÇI=\Ä'ðÑõö—ðŠoð´ø8‰û#8 Y‹#ˆ“±;ä\ÅÇÙ¹æöd g÷­—ËG[p=->Ž1£&ê$ð³Ôâã˜ÿ-G<³Š“8ºö|]°-><>íÙ xTgÞ"Ã~g`Ä 5μeÿ`uÜé÷Ë5†a€¿9ê#jT^2ùowœÐz.ò,—áo³Êw/|0*¸ëÅÑyZÞeމâxÏJ6v}05ëãµ§¿$/ÎÒ9 ïÀØyu:×(á»Àç=ó¹?3ä©a¿§£§0!H=G…wfãôsí{ úÕí³¥ëUØÓ_¢ÿ†çj¢§š7¦l¯šϲQó6§cÍfqÇÔlœõ–ˆ}1 Œ·ÖÛ¬%ÛÎ+½×}ÎY`í rD+½×½0‘¯—6¯Úc‹·è†zxiÏÏ-¾éÞÐЈϲÒ{%!䥜)÷X).í'ãx¡•Þë藵Óf«þ’4rF=Ï»ý% Ú¥ÙC$½§Áª¿ÄRí 0*Ã箫¯Ü÷³§m½n¥_Âb8Þ…9^•—¤âNøÎVñòü¾2ïÍN[\þ±Ý¯ùÁ|o±òŽÑŒ‰žØí+?aF-[RÀ‡¬ü„÷ŠÏå%8†Âßà|{Úq»µâãì=•` ‚u{+?áä>À;KÕòþ~©î½‰í©#Ž¹à¹¥?ü©9.è]4*üm>"e>ÉðÜâ¿)p^³-t¬ôKV€hÊŽ‚^…]ý’ň;í«×*ŒŠÿ&€ófììý\F^> ÇÀ°.èÜ»¡Ù÷ü6Ðu7®¾W=RÊ’eÏ•gajaøÎ¦,xî¹wÏ?m¡÷{pÐB²§^’ N‚8™°ÀwÆÇ¯c€&TÆvH9cÏùÆòÁÔµ8¬ü„½“åŸõ¶/Z0†Ë7õOl—`ÉØëÛ×õ®rÍÛÄ÷å© ØWÞcñ<.>ÎKqüÁ!?gìÃÇIò®à×È>NúbIi±TÞ?LÍ•ûÇ>Ž&±ES‡ïAŽŽ¡ núpM´8ª~!Œ÷ès¹NþpeÁJ/ºïÃÓ3B½ÑŠ“^ߊºÂЃaúò¨Îùô—îï¬ø8;WÀ¼$\'Ä<€m1bu:{o’G„z}öÚ¹0V|¥‰8™êš:V|ƒÈÎ ÞÃÁ’4…ú{Öû¼Ç»ÐÍyåÐóozæÍñì~tö`mê™·¤´V7îdfgÞb¿hÀßLK2;ëm RðUÚMÆ?ª±€§–mP ubvðî½hößÚãŽÞÎVð=xÆJÅB^nE 3bÅÇ]·äÓžkõ\]Ÿ~pÃX¯ßÆ8mƒÁÐ,ê‰òÿH{ô^C)CL-îo~ÖÛÎÞý´p€÷„ùªoøñ\ƒ!–î7‰Z=“ö3/ž0uü¸ìQûzóZo¾ëIe„^lóZosâd‚ù¯nJ1'ó€3ÖÏzè’ZµGÙ'“ÑkæVz¯ä†šqÃ@_ÎâòrVfä¿¥÷:c*ò&ø©Y齎}>amÆ€ñÝÐsâYŒw†8~‹Òž%°G=ý%– ò³vÒ5_¬úK&h?Rï MhOI1ñ¬}â¼³xr¡žïd½ú¯_ùÄú8ëmv`ùðXAÅGù-Êìø[–òµ×½ê%k)Æ.äãø8÷€›2ýŒVô5äÅÇ ÄÔ(@'LJ\Ï]|îN1ûò§^¢©s+<Ǽü„‡Û'Và.íO½dçʼ>±ºØ> [à1µóuòž#ú,üͺ®Ï±Vè}6>o^0`IÑû‚|–þäˆuXšöØÂßt.x®a½ÄËO8;±«Ûi4|g¥_’ÚÆø\ß3Ÿ¯ÿÛ7VÞ™•†Š›b,ì}>‹ÿfÀwÊñŽ^«ðÿ¹Æ§øÜŽ'ÒKïuÿW:í¥óÆß”{ÿÎ3ÇÚq2_[$ñ7–¹çž¾¨îC ñ·¼]÷orÕz›â€-¦?o¿U/Q…óâùçÆ ÕÛlø~Y'|;U/‰ýÓàýòXø~Okä±ûˆcˆ‹“ |;Y?í¿­üqPŸ ÷¾°±§Î%]â´;¬ãòÇÙÙ¯1b‹¸§–?ÎÎ{0? Ž~çõòÇ Ð«8ý½¾ãÅÇ‹‘K»³gØ‹³w(Ä!UÁ¿Û‹“QÌ'ú'½ø8$ãÃìwS§Ëë0Ô²Ý+¨÷zñqD9º)wÜŸ[|œlRA\o8œ›ÅDZtЄÜÈηâã¤lêp¢çÇ]W—{*Ä޳ÜG[3p¼ç|©L‰<7xgG/hïf,¨§ ÏõÂ:ÏʾÌÑóçƒãì\¹}™äö1Há8ûÁÖóuÀ£r)G€_¸S• ÷—u±¤ ÷ B x—ƒãpw*Ítˆ=8ÎNAÖ<3è9ºœ:ŇK;<Ú]μ‘~ðÍAÀÏr)'c¼ó¾NË÷^èR>+²øYÉ­†çžyKT$° Þ®£ž;{}2eRÁGÁµú¹ÈÑGÁ|àsϼe{Èì˜OÃØ3oꀷ¤w6¾3=ó¦d x€ÙÕÙ×±žyÓ9±¯˜Öê÷!×Ê'}ú ú \ϼíœbÍf?ÖˇÄê.ªÁ9¯…›†ÔvV ù¯Z›k ‡×Òm Þ©™ ýà^z¯aÀÉÌÞÅÙ{-½ô^³| c ŸðJïU½÷R=ü…¹(½×·\òƒ}©DßwJï•÷eZŸõyné½pw²ejàûõë3ˆÕ˜‚ï·|2t©žZ1ä\^ünЬø8Ñ{ÕÜgùrˆ ¶í¥_’ò%€¡¤¢_¯ß¾ &_¸S¯½ºsáz†ü¬üÒû;s)¼@'àßí~ð€¤Oî´/dk”Ÿp„0޽ļßÒ3W7ˆ ­J/?aFž=ôûþ­—Ÿ0MAÏ›A9bù OðkÎXÃï7J‡^>^:;ûèõu*-Žaà©9IážÅsè•Èöa¬”~ À³8·—ÎMõ«_2A4á\èSðÒ/ÈcÍØw†¸ú“ÜtóŸ1€Ç‰Gáo¹cÏbþf"Pÿ,=ÿQø[¬…ÏÑ×|ŒÂß^Cµ¿9vàYÆ8ø®›ô¿Öˆ=~²zŸyÆ"FU/1Ð¥Êï—+å'<–cì^2¿­ú^pÚR3¼Ecx›1µRô;YŒ¸øƪ5Ú³ñí?§1Â[Üßhï·‡“êŸØgw<|IÀXãáãXêº/Ä! Œ‹#¦ø~³%ž{|‚Ÿ»w¾~^DñqfH~Î,o(>NŠ8j­‚çB‡L‘7nIjì±UWž Àòãòq¡¦ï>¢á;+>Î]ÞM§Áú¾ÅÇñá¨W<´a£ø8û; xƒ©ãóQ|œ½#b~¶·/øvVá8FÈáßi.¬·upœ}2|t¼Ãð'QœÁ›1ÖÁq2D½LÿŒ÷à8Äüñ^ ItÖÅrÀêTA/>¨ðnš]+Â2ÂØƒ¿ewÔ¬NA1ˆÊ¿°ë.þ/e€Ûtð7î‹ëYC 0À(½×ä‚ã=@àÞtæMæúÖ˜Àg;È깟zÉŠÏõŠ„õ>ÿ ¨÷|§,·Äò™·ôS ð}Xà§\ó¶<Ð'>Æ®ú†¡ÿQÏ=ƒ©¾3è«Öë´ÁgÞr¾b Xó|æ-MÍP³h:œ±\ëM»vôÃ=ƒHpᦚq‰©ä\¸)Öi³n4z-3JïuïêØgî½/ª¿Ä×G‹.ûÂúsKïÕÖ@žyIé½*hP)çžOFé½î5„zWêcKïÕkm> N¥÷š¢2دL În¹çÔ¶SÆb«¿$±™=íð=ý%ée¦ˆ©e'¼³xÎù¡àIHO¯{ÕÃ{=0*[Ç =yÉÍÖ±$åžW‡žõ&Kñ¹)™Ñ߯}åôbuF #zõ'c÷¼)Œ¡t0@£Q~T,b¨‰ê žW3Ïc›Ô°ñü9§¦kãã“éÒîûÿ.•1z(²4úQƮ¨–¸}m flñq´5ÚniSPXÒTúhÀ·s(©…ù|4ÊjŽ;öàw¾¢oìÁ´ùž¶÷Ö¹c Ç€©yb€±Tøì} •ôû[b …;)žYûfÊ{æÍôÓ²FןL¬±Æ0å.õ“±V8Ù@Ž ~×Û±'/ÉÅuð—Á÷÷Ü£gž«}8mðΞþK,´û_ä+ïw²;Oìí¼ær÷©ÈRã›Æ¨—™¨ö=<ý%–yö /ðnݱ§>9t~|Ï‚a¯3o{oÅþê=ëÜ¿Éuæ-e7_Èö¨òÇI~6ömÏe}]¬ÂM™Ëµ3bX묷lãpÔGœÑ×RŸð~«®lòñ¨½—ŠXÝÞú¸?×°Wj‹u^ÇŽ-<`:4O]}OõÂqÖðÜô„è߃sá- +‘ùY¯mïØƒì_6ù“÷ÁwæPôy=}™}múÁLÉ óÔ©{Ö›Ó4xîž6øvüà8y¹œ^Ýèï,μE'³›,Ò¾6ãÌ[ìot-—ÜâðMÇ]w}¤h –Nìêug?3¸;•Þk’û!¯%|îñ£Úgm€ÞkwðÞ³B+–Q›0uòá¹Vc0ìÍŸÊp'‹ãG•¬Þ1µ½} Ä>N<2pÚºï³úŸfÐq…{á5o õÉÇþ°q‚vìªo|‚²,=û÷0ÇYoΠ%“eiíëb޳ÞöúVÀõ’x)=ö¬7ë$ƒ§^2¢õúdàYo«kE<8™Cá¦óiøþ37ò[u.gÄ¥3ìëøúã°ä\‘Âî=¶t ‡!V—¦=0^¾ag‹7 TÆVßëˆoQ;wrÇžú¤Ë è/IÔbKW-ÆGË6º¿^rÙ‹Gõ雂y”\=ÅÇaŸèQyO€ŸØUûºs ·{Íf¾|G^>Üýçí/ñ^æZç[ñq¼Z•|BŽX|œ`E½½NƒLb:jUÚT‚çgßgrÚÿÀ÷ Ç™˜{zÕ¿u;8N*òWng½¶2­pœ<áø÷Ò»ß;ƒ'…ãá~1Eb©p§Îóyà„ ÷ãÒ¯îÚ7O®Ñ9WÙåybçDŸLñîO–ÈjÅrç˜?Q¿ëM³ûÜ÷c\oÚ™·Ç/¼oòg gÞRýla‘á=ø™7ÔÖLü-:ÿ-U«ŸX·þMît4º xÆžysè#–?µ~æÍŒQK1ëOý[÷3o©3‚˜Ú$¸“•Ÿ°ÒÇ_/[à` gÞDŒ>˜Z³KÈØ3oi õkéûºW?— ìÏ:'ü¶ÂMUT?1íë8j½½ s±,$öØy½ÆÇ—‹áþgŸŒn8wÊ î-A—Ž6!+ÄoquÏݬ#ú‚36JWm_û?ª¼Úçu¡Îž9bXõUÌ<5—®ƒ¼cËo1x63Æ„}²úKt0N]¹çà«úK”I;X½œ•±³¸}=—ËzÔ€ÜsÊKŒÖ|êÿR¥Êwú8î/¯× Ö8xÀGï*ñ–µ` 'ŸTW|gîP³YÅÇÙW‚ßÞûw¬•7yt\$kWÜ×Å^wðä_Bù0†¨\™Ñ£r¥¨s‹ç <þä9núûçðòßÿb³u¼až{ÀνÆKÐû•šû«ëâ˜ËSûýxM~{ A+8eµ!V®v¿Àx÷™ký›¼ú%D ÞC^ áÿmŒÎ/|bñ=þÖÅúÎwZ³ð7Rÿü6éks­s說ÈïÞÛY¯¬Uø›©ÎÃÖÁߨ£ëJj:8<÷쓯Íö_lò@û_½WäÊå7éýÜ\KÞYˆ½h÷Oì©+_÷îSËm`Ä^^G×ʵ™ž†=öè<éÄÉb,|qüÉtàsÓ²ÇÒ©s©>w'[þ8Úï8O9K`/¡U½ù]¿äÁòW¯÷-*~âǹng-CÈÁ®gïÍÏVçSËŒò.-ܳúd¢þ{0ºn莵ªÓö{aN;u-¤[<ªÞpôtÖñåã¬!¨ÿ»ÏÂþÛŠ#:7¾–Á¾S| úøorÀ~V|œ}ÍBé}êµÌU|œ}WCSõÑ<-vìÅqÀÇ1éGÑ{gÊDϱä’@ìYoûÎë¨OP‡Y|pœ½= ¦º‡öúÎâƒãðtFí…À}’ŽÃè}™~ÐKµ>=zbÿ&ï«ÏÅÃÇ¡WƳ»ÑŽ=ø›R(ܸÛ8eìÁßT{ÂðNbϼío±º}@;Äžy³Á¨m p½%µOî?‡ý¿x[bõ\Cm!îíë5^ð ÚûÙbümgÞÔd‚炃ïzºlœX_£}'³ïAï¼ÙBžÚ$XCºê{ýø©u?ì{æMÆBNÛ^±gÞvúëŠ}Å0†3oYlÔs4XÇZëÍ>>+óõ)|cϼí%$P³!]½gdiᦾ‚°nÆ…Kb“½Ñ÷j;ûä¾x£6ÜWé½ÚòO­mAÑ*½×ê"îD½])c«OAõûö  ?+½×lZC 6ž½o•Þëdøv²îI½·nUIüiþð:ž[:½{û…úï^óý¾¹ª¿${Yù8cAlñ»ÿ8ño Ú¡‡~yé+ûtx®Léµ¶Uz¯é ±J8Þ§¿ÄÝÄ’:ü‘±ôäQÓ 6Gx.?ùÙ‹ÿþÅ&‹¥Õ_cô禒Àš÷£‹=ºQʱƒoPjÆž>GùÜJ¿dO’ÃoÛWØKJ¿$õZ'ÆN¨?DñßB Ç+£÷®(ümu½«ŒíRJÿÍ„¦4%»ÇIÆêëFáoÝhí”P¬×whþ½F𱫵\gìÁßl¿4x.Y÷˜Ú±\½ÂÝ›&c_Q¾7¶ô‚X¾‡î*<÷ÔK¨O+· ü6+L ú‚ž’O¯9RÕKÌC^²·—Ï=ø[6!Æ«ßE¨üqö5ßÜ«­ÿ¶òÇÙ‡/r'Õ oÊG8÷_Y·¸c©4¡·ƒà>óúQù‡o³çFT|œ>Åw²{·îX-ì‹1vŸòã-U7†{ÎÍ?‹‰[} "룑K}_§YzxcàÙ-4`ÞÖ(nI÷zäWs§uð·0ðò}¬¥¯Íâãì ÷å€ SñqÖì:Ï–Ñ="vlá8k¢7˜’÷»­ƒ0h=ùºõ½VáS rû%¸6×Át|ð¡ç­ƒ¼>`?¸žt¿Å{ð€=4Ôuß§9ì}TçÛÌ×™i@lá8Òµožc °P¢ÂqÂÑ_o¬îƒ·cϼM®Ü$àryÛסÞÏ¥ÙÇä{æ-K™À» ÅO¬V¬£Ç›%üÅZÅBï-ÿ6ú]žþOAgÔ#…žH¢Ódé¸Òï±;¹ë˜%=ý%þè‚îÌRÀßèé/ñL¸'ú©õÒxÆžú¤8 ˆÝ·ÍžŸÑÓ_â™Àb_ñþÎ:—‹Ê‡©-˜ÒáìµWâÓÏ•~Š8™w¬Žžþ’là¾S¶3Â}“ÊOx_ëÖ§oò(b/?Ÿ‰Úìð 7]¿äi…]½B2.f‰±k1œÇ2 ‡¤‰¼¯czìYoÙ^‚ÞJÈg ¡Úû„ ß>gÆÀ…B&{\šµBÆoÑA‡óiÿ³»ô^÷¾ã›5s¯•)pÄòìî|ÿëÅäÇf-ÈoÉâøâN°OVÉèD’§NLý›Ô“—ì+Ãüb¾pÆjå%±b>kÄ–oߟgÓ‹Id3J-^~7‘{$XÏ!•êyZÏÝYœCzòIµîqò¿GöyÁN>ÉõõL—Ìá·•žy"ª0Þò&êãÕÔŠè¼/²Â߬û§-È ìÜxuN|ƾMéoláoºìÕë5Óyc ƒ<*c•{_&Yáoõê¬e†ÀŠÿfÂÈQ€ÏÓÕ/™Ó c»?ÃŽµÛùìûܾ¯›_ó9>ã…ulQ÷ùåãózMŒ¼ú^µç»¼× ÉÏù"jgÞÖfù ³€?Ù‘ö†Ø;o€géÁêþ> ùý:ð’¨ê%ËA½ÆOO½$Áxð{Öœ~|V‚ÀO-×±Á9ôðqâñ¦X ¼ã”?ΔÄX öõÇ‚½/åôúo+œd\.ý=/Ê'Ëg‚zÛyIÐõaž†ì0„ØÒU[ŠZ«öÿ¾±rñ¬‰çQdz(Š×1q½ý?ÁÝ)ŠGåÂðܼÊ@ìÁßvÚöÉ=Þy‹3g`ŸÍ>z­‚Ǩ:ø‡¯§‹{¿ƒì}2ä 5…è@½ÁÔ €XºØ âo;¥è߃8r¶“Ž÷cˆ¥ú²×—÷سÞ-Ì=“—6{¬ýÔÕù-Ô¥,xîÁ»w΄¼:§®9»cß47ÐõÑÀìß?|œ¬ï,cÔhì~€;öèªí÷Œ^ÔshÏ5x®â¼®®ºÓ}ÓŽ}ñÃÇɆnè¥ÊRè—ð+¡b{潑…N›Y×ìÌ4û?ÕÐk Yžïþo‰ìŸØÉèi1okÒ;ëÌÛÎÓПŒºýlÆžyK’5Üc•Bá¹gÞ7MÞÉÆžy›@;”ú…ã=ó6Ôâdú%\ý%¡½ßè) wŸ•{ð·ÔŠb¬ïLØÏÖÁߌ ëQ£S'2¶pÓᨶO…ÞóÏtöI†üÁ¾¢ë0}2›&Ðç tÕò qöjuBì+Êo:y(ÃÏÀ¥÷šš/PËL·þí”Þ« ÉÀÞf8c¹ô^÷-¹{'y«þ’4BÆúï`|¿~µ‚Œ!T`Ž)Ѝuðtxï±\úÊÒ5u92îýr̳úwT;àõTæê š¤ëƒIŒáèOºt„¢úö±|¼f‰wÚÓßÃÓ_"Ï·±®¸æKïÕ:Ñ÷)a+÷»)WÉÝ–_¬.åpànÊì…õÜóXæ(¼‡ƒ(ó'6´ç¿\õ’©À[Lé2éw~ê%É\K=ÅÌØÂßÀŸ!cò_–Âßœ ùýꕱ¥?Ù‹§ÇÏØÒ/cÄr/%elõOî«clÀº+MÉèøPÆN¯—7‚|‚œ:&Árî݃„¡öJ¢½&ÆzîÝ)ã}6þbgéÙ§â±øé5hÖsï¶€~”ÜèÚÆ;öèåö ó6;…/cOÿdQ±®lÀß䪗H78mßÐóÏU/1è ýç®Ï=<ª1Aì¾™2¼_/>`¬ ÎX-1ŒÕrZ«>óè:eùÏ»õ`ÆÎûB½í^fÈØÃ˜Ð‡÷àÀ­f»~TÔó³|5Ð3ÍÆå£0¿Ò€óÍJo.E¼0¨÷J°U}2 {0òOÁx‹GeŒØâÛ!þ[zx <ŸL­0/)>ξ“Ð'O¥^ßáâãà=+—Š Cì©+ÛPúx‚_>Î>˜«£×Ôø-ǺÏöcéâ½æÈ~ð€Ñ“¼§Ü2¡÷‹ýàûˆ¹§‚ÂŽ=x@ŠoAìþ|;FÅ~ð€½1;j‰ßÏá/öà™äMÔ¬gƒç¿[ÖKÚÇ[Q8΄þ¨}×[P7â(gçx¨ññ¹ÇÁqöl¢ó`Ìíãà8©õÇ{Æwâ8ó¶·³Ï^2iAìåå;öh f¸gÅ™·ô|„½Ï¨{}ïX«çê#îå ÷Â8¾´ÙÆAˆu|b£ò‡VxZÏ#úRžþ’þ½Áȃ ±'/ÑTl€Yò^3—§¿$ÒuMä©A.åÃaè•a=Þòô—DÞ7öOƒßþ¦|2yúK"ó_œL§ôsSžþ’ÈFæ…>+=÷”qÖÛ>`çD-Åxg½9-AŽXt-æì¶*Ü´÷O>­°¬{Ö[ÚÛЧ‡ÞÃ\…YÖåöiÓ÷>™g½¥þ$ÖÅ{­MfáÝ¡æ¨õGÍß)í´ ËѼg xg³úâÛÙ/\` vµå?¦ùyg^ùºÅ‡73z_TIðDÌg«÷ZJõ—äµð·½½ô¼Oª¿dçHbS„¶ÏÛºþÝ][(ñ€ úg²¨t›—Î<•zÞ'ëàoÖ¶2–÷Ÿ‚1^þ¾ŒAôåd•/­ÅbÜ£àì–Ò/‰ÑïóÙO0bÂsþ¦}pœ0Éa.JÏ|g%m¼öH~öo²ü„7Zë §+tî¯Î„Ÿ©ßß„ªOº®ÄŽM@®—¨¸rÞ¿_C:OÆri|€_ÒC'x‰CljlÁs¯~IïcÊØ5 ÞCéO¢·Ý kˆ¼<ÝÖw €g þ–&×øÛ¸×5„ À¥í‘cèß:Ÿ|R4s.à¾)¥÷úƒÞØd¾÷uÁ¥;#¢û2'þbKÇÿÖÚoì©O¾t± Û!O½$50Ù Öz¼…ÏŠ¡FãcѺà¹~Ç« µÝ ΋òÇÙçb¡¼ —òÇ1›<Ö ò™…“)îgs-˜7YUÃë܇gO58 …®6!ò,Í»ÏÊŽ-]5î}ƒi57Æ„Øê37q8/x8|¿ÅÇÙ'!Ža/7çž:B]á@ݹ|œÁŒz¯ØW!ÅÇÙ ö­8ä;ÅÇ Èij°üqf¿€äî³²c ˜ŠšÔY͂؋ã  PÂ`½éÁt~zˆ²– ¿í¬7“ùÙp¨ˆÇ ¾¤ðE¯ÓŠg_-PøÇòðqvrŒzæ{](<7N=ÕsÚ1FïO;¾FÙtç¨p?|œã£ ¸ð$ÄŽß"9Œ7ñ!¸KËÃÇÉtÀÉ<×P¿“ÉÃÇy JØë³bO]™ tdzÎð¹zb»õƒgðßäáãÈcÈŽØÌ‚{¡Ø™7ô)Î4ìvüýÅžyc‚Ú`^ býÌ[Þ%ÃÞqñš7î=p‡’ÑûVÄϼ¥]èBžÔíÅϼ­ÉµŠ¤@ÃsϼÍtûLm8äF~æmÐúêÎà]¯úK1ªL ¦ ~Ö[‚6óÃ'ƒ}Ç‹ßm´ wœÀçuÇFõ¸L1䈬ã(¼Ûu´²=ª?7faîÏûP'FçVKœ}roë xé¾ Ï=ø[*&ƒ&ŸÎxgq2´ó¸c€Rz¯l]ÿ÷áQMØJï5E, ñ,<7_½×¾Ž~ è)Hõ—8Ô@F¥0†(¯Yë-H'VKï5 P‹¿Þ?±¥:º¾òcÛ.[}AÈóI»šÑ¹r:¨ô=C±|ÐÔÑQ¾}¦˜76Ï¥Ç^~ €ã¤‹ˆõX}p=ØžRóÎC öì“CŒ!v§žc(^>Ž}Yþó~‡ÔòÇ™à=üÿž¼×´ôK5Fí±²îã-ŒcX¼§ÎEÝ´æ)3¼~o,Vç]K1å‘@+BçÁßöuHÁדô{ê<ü7_³×¶“ê1{ªÎÛ?Ýç*cASGK¿doµcXpgÐYøÛ䎡Xúî¼³ÂßÀ;û)ÍÀ½[Wù> éõêˠݯ«ð·ðŽ_är`ì¹w»ÞÃâÙÏ]›fûJ{ sQú%¬Ð§ÔЊÐ%Wϱï©y×ù¨zÉX ñÍô)îëbü-M;!6»•!ÖKw‘pßÙÜ‚¹¸:Oз’°Uôû–?ÎpþhÑ9`Zþ8Ù” {ÔJ0¼Ç^ÉûÙ°{uùãìEÁ˜sÙëˆZ|œ}@!oÑö+‡ßvê“ îoO¯áN}’£kf$¶H{Tñq^îͶþ;Ö‹—¼ºèö’…Q ¼0ÿTÿΊ“2ÞŽ:§Ð‡§ÅÇafüa~ÅÇÙgÁì–Z[8ŽΛ%5À µø8û§a~&cü¶ƒ úpðêª)<`o]Ž^|Nc8x@ÊÎ}t8mBìÁq’S,ÈÁ?åƒãì¬Z>>xùƒG¨ë”=z™ÀÔê/IOˆÍJ_rÎ7ÝÀõ’Ö›Çh>²Ï±DZìzïû¤òìw'•3o{›C¿P3Ð]T9óf{` Vˆµznzž;ðß´üqFPœ;v–àdZþ8Éë<¿ºb’0½¾´\»AŦdõú¤^ûÅN¬f#|];äœ|oìι:.¢J—£ ç$©Ø´™—€çrÕSg©ß½±;%„¼OO^2²aÓ[l,ꘚ^œ¥U­XJi‚÷`¥O°ÊääýÕ³ÞËGý(¦Þ‹¢å'ìxuüàþ}ÿµÂMA?ËN 4´ÕÎzcžúñ˜ŠÏ=ëm1hU¦. AndTûÙD½¶ýP¸3ØÙ'pôĨö7ÝçØÞ½S1LÍþüçolõ)ø¿%uvìVíàݹžÏ9ûYõ—¼ôÍŸZ±äFÕ_"Jõßd;õØê/Y;ñƒzµ›ÁùVý%c¨">d Q®^>™³÷ ?Ø ÔHÕ©¸}sÂs³~Ö¿IçÛoDðܼ÷ys¹|=\ÄDbO>™¾rð\ïésÆÚõÌëµ6Jî0Þƒ¿%c=v`Z~ÂÒEnrX›å'œGxÞdjÔÇçà+&ŒB`Ž£ð7¨ÏEsEáo<”€ÝjüͼÓ.×f”þ$wÝÇ×3àîTú%#Ä`¼"sV=œà½–ÏÍ8s¾ÑÎaŽe Üc#îà‚ï<lŒò •ŽQeÚ8ûÙb¥_r»Ä~bsƒ’{|ûˆ¥óÔž–)‡ØSçšÈ=ó¼û÷y³§^’˜ûbˆ³ûÚïX98Ž7 _ÖcÎS~ì~€6¬´uÎk$½çÔÆÁßb9bÍâPË´òÇYDÿf´agå#´pïKz7õØSçòE{I2Hû;›Å Ëš²ð ›dóÌùÂØjÂ{˜UŸdg½u=/±‡£iô³€{6ôŒŽ®šR÷ȽZ¡oЈKËv~t\Äʉ5û?4;bϼí9b·yí'Öê¹PGLxÔ1öÌÛ¾×÷ÞД0¶ ±¥Ó; 6˜ïLaâ3o"Žã•9¢ñ™7¦ö ø¼ŸyÛW¬ì¬oÂμ¥*z{L¨Ósùz‚¾ÑcëϼÍ1éã¯ØŒñÁMÓæõ£¥(½Éøà¾uÍöI>¸éN_éó^Ó5.ÜùäR¸é4Cì˸÷˜ÌÂ,Y±Ö&P{5Y…CŽ<ª…þ±&§O!!µ‰ÚyŽã-¾©¹Ãs÷ÖÙ1“Ó§=9ŠÚBÒse«þ’ì˄ج‰Áo+½WžBˆ;qÇ/¬úKغŸDÖ•ƒa¯®þ’5àûMêúզ巸xB¾žpolé+“ÔíWoµÈØò7åñÁ[Ôàýjñò©ß³ŽÄ œ›úúö)Äcj¦åK;±ƒ½MÂ÷ ZÚš†º·ûÛ_{ü„€¯·sZsCñ„…1vyï¡ôhÄ’o‰=õ’Ô'èyuî¿â׳âãèP‚Ø„nûx«^òJýĦK-üëðl…ïÌ óÞ“ž±˜YéOxA=8»K¿d½•˿ؽÀþ–²€Ï$³ƒ¿Å>Þ€³­¤ý¾i…©õšÍSž¯{éÎÈÀØ}a€{€ŸûÛÞ»bâëpøéŸüœY;v®Þ‡gN׿`Þ5ØÌË¿»›Ž>ßï‚zµU½$MQÑ[iÂݪ^’ÿ0Ö¼ú÷ï·ê%™þλWœ~tžRTöd©õuìQš‡ì°÷%…¯ŸYQ:†2ðÍÄWúÊghÜ¥¾‡(}® ßÎ#—ããҘ>‡8Þ«‡'ˆCŠBO™g͹[äѱ|+>˳L{ÈþígçºÈÞwÓ ï¡xëƒÕéÀü¬ø8Ií ¡F‚'&³f½/È‹#Ù¥„|ôÑï-^|œ}—ôÑmî}ƒ^|]­~|¹×w|°§ž~ð€#!ðÜÂÞ[ë« p=…¤Z£´XBo%…ðmJc÷ÿÝsp…ãä…ñ7öñê÷BUçR­é%ÜÔgá8;–Õb6€ÏÂq|ß8ð–çŽ#Ï-g' L-6ïý{¨þ’?øÛ,ümtüÍ«¿d_qÊ¥b³TZ•^ý%#nûû~m€O›O½±îÞbùWr=±5o!Õ¤õâ8ãÏûò>×ïÙ]$芕LG b£b¯½â‹¿©Cÿ¤—?NÂësuüMgß'½üqVº1ôØÔ·ïëm]^þ(Óûšx·¯ÊKRxn¶XYÔk+¾Î¼ÍðBmþ0µ —?ÎCU掩Ôâ}yÛ_ä_N;‹OØ­¯3oi(Õ°EN?ËÞ3âëÌÛ>[ª™õÍzŒáÌÛ\?ÆÞ³4ñ·•Ÿpª´ïa(hò9½¸i‘ÏÞØ¼òößV~ÂûžT­Áßösyù §¶¦¯† §<ÄÞ}RK8ô?–ÀñJá4ëžÑÏB§ƒwgú\Ͻ²;gЩú(»“Þ4ý;+½×ì*f¨øÒzõ—(ñˆ;|Õ_’%`TÑ{…½ø8ûYŠø~|ò’½CMÄ$D;þæL×w2°Ï\½÷÷9ü-lÀE9з—¿ï_}Þ"u{ï—sébwsºGÊn)Æž|2 äÖcs?€1œ~.vÐËOd1<÷ôs ôø‹Ç6¢Ïqù 'WzìžcxgOÉ£ÝÔµ*÷'ÍP'p9ø[Ötá¹Ñí–2öào‚>6;Ö¡¿ÏåèŽèÚ!yeÞ×ãŸm c¥¼âÀ/ôIkdI‹­û›Û2ŒÕøiËÈØÒŸô±ä[Ü{öI¶ž{>±\½òoìÍKü;ÞYÚZ7¶ô^•gç©E^{NëOIÞ7…0v Øôô+“v?‰œãwHWªZÛ'ÖôËùS/I¶+ÄîUùoÕKèÏðè~ìyjÕKvVÒëÕ™jþ¶£ó4ta_Ðtàˆ¹ž~å›á÷»s˜Žozùãìäwâ^’†j-Öj2`ãYcêï×JÇЗ^öj;ø[溈χ<÷Ô''ò7Ó¨;VõIÕ‰˜åP8 ­xTÖõ‚òlaêµA/>ÎÎÁΡýzáû->N’ù¡¿Äz¼ø8ºj$ÈþÝ}O->ŽwcÙÝýàéÅkˆ‚Þ¶ûÁ²y0°ºÏØÂq´%[£á·•?ξ'£Îtê­ôï̹¼tÀË,¡I†;ÎÃÇɦ瀮4챇¢ŠÀ•óo%÷SŸäŽÝRöà{ð'V‰tÇ÷¹¤0Þ8uOqÔÀ´÷ârc>Žý{ñ­ˆôŽï±ó?ggpî׫Ç×h¬Ï^í—}¼'û£XAsõ-.cù‰Kû~æ ­wýIø8þÏ5@ûÑãøMýðõ^¦Ç{{ø8;ÐkËEp ~b<8²&|=ø8ùCz¼Ô;5ÆñÉLIÔé[óæŠÜ¾0ðvއc±>iý¼ˆ§¿äñž˜}ÏS‹qôð²UXQ[ˆbÏzK-$àÊ\~ÛYo¼7kˆM_xîYoKu —€¦CŒ³Þö÷‚1ð!qpS÷þ*}ÍÇ…ó ÖÏvšs<çÅÆ'j„±õ;N̳O.ƒ>þ0Àbž¼$b2ò´bVŸÇT¦û¤0†â›j÷?~ð,Èabjqt¡‡~o³5¦¨þï°£‚þ¾¨þïËĺ=IÆ–N¯f.ÐŒUünáÅX_‡Øò[\]Óá)Çò„Ø“—,Ÿˆ(j?ƺþ¦DÈ5à;Å:¼|1øvâñêìó¶/?5€´ÇæçÏÕâëqÇâ‘á‚çZùëu-޼¶wÙ»Œ=ý\ÃAËv翦ÞÙ9߯•R¼Ø×Ϋ4©£ô^çè½jO™W{þ4«§·{%gµvtpïÍõU®¸î"A‡×ácÆÎèj‹=õ’ý=(ê~å§?WÊ+Ž‘ý2þb«Ò»‡ø)Kóìc(þ[ôž§óÜ*Ú¼±Ûç2Æ^cð76JSz;2– Û¹±\ø[(cì¸'ç{îÝ;%ޱ³úߨUþóÞ½¶ög³W›c>øÛ^ݸ†vBÛküÁG/héçûͬbþ¦ \ð‡šÒ±ü¨zÉèÄç­^ Ç{|V(lÂswÔ±ñàƒ¿ÔV¸îQþ8s:âÇiãÔÇPz¯{Í£†öΔ{Ý3ÊgÿbÌ2ûû;“UÞ?ôÅBò9ë´ýá"ö÷ |uëg™Öï}Í'…à'…÷pê“ ŠBìÎ~ÞéOf·=à›ƒï)^}x€F†¿-.î4üoÉÞPè/‰ËÇIƒ§h±ïÒqù8ûýò/>$©[×kŽqù8ûðæÕb÷'Òûl¢ø83‹WÞbç=è(>Nê)ø/>”:.˜Ógf‘IZ,/ðäŽâã¤ýÛì±yïs\|œ'­èøFà Ø(âzË:þZ8θFW/¦–ÖýYá8yÉá+ š/aÇaâŽëM_ž{ýM÷ª« ‚\ùö—¼Ý/o,ïC«gÕ_²²BÓq½:Qý%‹Ù]ú7I£k?†iÅîd·¿‡‰~ØQþ8ÙCáOf®øÜªO®}8HÃÔÈ ×2ʇ×ê8N¾СòÇá)è‰u°¯û™7N×kØWú+öwæ«ø iëÚb-Fç·„ŸyK È¬ãd½…#cϼ%yevÌr¯ŠÞ·.¥S¶Ú¼=|2|Ýϼ¥YÚè±bàS×O8uÙ¹c_zžÂ 7kÀù‡}­…¿­ÖÛÞ?±ñÿ=:ˆ¨õÆ?yõ,.på"îzû!E”žX§dìªýáGµ´Ò&è¸Dù Ï=ÿ8z–<Œ¡öÉŽ¬Åš€†J”ŸðÜFÃnóÜ ØCo-^{²öJ¸O'Ú\$Õy.x¿u¾9M¨W[ïáô—è$Ä’¨ÛÏþ7ßRa€Ë ^­Ò=8vì¹8OžˆÍp[o;v¼ûÝþïÉ•Ç/.²c©|®µ¦öLToéËå-‚ÏÝ—ÿØ5c/ÿ=ôÙ©ŠýLOÆž|Ò˜ÇÉõ7­Åž|r½î'±Ùš×Ç{ð·º@÷v¾9Ð{ð·•`¼éDùóéý7;=N_Ûìà9¢§öØs`YÇ»“ÑÕÆ0 ³Poæ£Úbÿð·O¬­ÕÞï,üm©aìN(¬½ßYú“lŽ¿m_N¢?·îop—>±erýÆZõp:ê ïí¥áz;¶ò’ì"ÆØÁ?”äŒÒ«è¾ëÏ{ªÝÞØê/·Oì>d©Í[ÕKæ2ÅX½‚ o쪚cï{=öfWÅK¥ÑH¸Þv*8û¼­êW}S³Í7Ú;«zÉ”õ™ã½€ öøuH~g{O-ý“7¶tžHâ¦þ£Svb«Ï<¶ V¾õòÇqgü'©ö­ÓÑçZÑ{ëžý,Ý=ZìÑçRÔ6Þ÷cmÒ#{xTÃ5`¯o²K·ŽhØ#š)ùx0*äëí»é>…¬Ç¯Ãm ¶hÝ;;-¶'àÒr×$Ù±‡³·3bìí0ïçyaIÍ€û)s÷ÏSÛVࣧË‚sˆGa>,È/Œžï¤¼Sa3íøüܽÏp=8ξ'!o|§ gرÇIò ðçµÓ°2öà8FýêýÛ¬¿3>8NàÙ’tkÅ÷ Ž>é£ïɳ׸wìÑ{MŠh$„}~Ûñ[d }ÏV×SرñĦÙÄíÞ Þ.íìÚýþúluϼCÿ¡9òêØ¬ÏñÃÇÙ±ø­g¹°Až{|¢k[¤ÎMݱ§Oa‘Šv—ãÍØÒUÛ¾j×Ìða[¼Ž}€’ô>R6‡X»Ï¿=e™Öcì™·=ó§Ðý¾vì™·˜ªú0]—j_ÅμíЧ6Ü0öÌ›‰£§|vÙôoRϼ©LBmÍÙµ®ÓVä|gKP‡3­bú÷[ý%Ù|Š:DkjÿÎTª%p²Ô ñžõ–Z'Š½Ø½}ÇÜtï¨óÃS|7Õ^9:†Ï=¸iÒµ±æÂFá±­‰íp¹öI;¸©;øj¤fF“ÙÉØ“—ho¬|8WÒq†lIþO‰ŒOÔÚ WŸc»} ¡ŒªÉRdìå›ö^”Òh)fÆžóz±÷ðqîNÕ_²ÿàÜ)£¾—¼ý%ÚÇ›Û, xîé/Y }žøP(œ~ò’ôŠƒ:¸[ïãO-髃lü‚J7ìæ0^º¡ ÇùÐÜ¢åF^þ¦œA×{xùéMŽcÈVËvw*?á}Â*øÍ<•ñ{òɬ­`ÀºâòoìÙ'c(MÔôÝ9xËíýàoܵN»óOï̉­}RÀƒ.óuÕ~‰â›.Fìkß!£øÝèW÷ܳ¤çʱʗ<óòÞ"«ÏÛõÇé»Sb«¿³ª—ò’2Vb¯þ¤ãw–åýþVú%©çHëcößvð·´tûÄªŽ–ƒ?õ’ôøÓPŒ¥šË7öàoû°ø~³‘Û~cç8÷îý‚ì{¢7öÜ»÷ÙÐù›9oKÛz›ãøw'Å€?ºÍEßzì_¹¼ÇÞ’”ì–ÿî¤< ¶pœ½üò:oƮۼc ÇñÕ¸0O >䩳ø8):ÔðÂÇg°ñ wláyÐs‹û›Ž[xÓïB<–#?Þ±…¤ñoÇ'ôŸíØÒyÊf¨ \.ðÎÊgŃ–”Û,þÜâãd¡ò—ËõH`ùêï¬ø8¹ø¦–8N+ëeìªX7í\¹½2ž[þ¦ë§Ñöâonð\®Ø"m½ñhíï{æévÄþa¬îo“ôƺrðþŽ]zb­bÇoÓÇSJº*Ï-gÐ?éò›ÑºfÿáoKz–?Žrt¼e&ôóƳb/«ò§öÙ£øÌ[Ê [ç“í4ú·sýq&bò‡©Q×âH‡­SOþ=$¦f]Ã5´U{][3i,ÞïC“ϼíý´k`æŒ ~[Õ•“±^ ÍØ3oI·ÎûJ·š¾§rá¦n¾zl®Ö>©õ¶o«c_;ÃìwÞ)ó~ë8™õëIÆ^ÜÔä—oúðì“å'L¿º‹÷›dx¿å'œûý´†ïMÀû7)…wÇO#è‰ÍFyˆ-¼[ÖðX«˜ÅÇYûPœ³}ë#IÆ-'(>ΣyÈ=Vƒ­å%ry‹ÚÛƒ%ýnEÿͳËý-Ó_,·O/c«¿„®¬ô_¬Qã0íØ“—d–bïø?É=yIæ }ùwX[º¡ÝPê‰ÕŸ:≕ò!]¨a•6"³½3=ºØÞ›rŸ>óÔºìc¨|’»Öõÿ bi5þ©§Ÿk¿Þ‰±rµÞ؃ã,½¶<ÇjøÛ,?á;`T?@[ì,½LYøÜðÙîNÓÎýMÁçõçÌ’þÜë=ÆÆpð76B\„s’[n‹ñygœ(qoÝ߈ì¿í4[ú“JãûÃM=±o_Î/¥þ=XÍwÝ™'v²·ñú(MÔÞËú¼3æÑž[þ8ƒ1µ¬9·»ÿôÃJˆóf)õ1Pé9š~¾³ˆ~ñÓ¯¼¿L8õÖ6>o½d|0ÖôoxÖôòYI b³«}^:O*Œkh\Ù7öô™/Ÿ„ûÎ{§{cOŸyÂàX_OÿÂöÛª^²‹ßúZ½ÿwÇžyÛãÅ÷;ãç?ØËPýâèFíûÒà ƹÈZa«Í8¼0ˆ>ø&Kë=˜qy¾‡c¯geázÉëos\|œl€~PP? ‹³×fÇ1}z^§Îµï \#Ô¥ÊÁ|È>š¾ìK ¶pœÛê ¯Ö{»ck½ÍÚû‚¤·gìYo#oF«÷ežÛc¹Ö±÷¼:ug¢×¶×õÇÉþjë|mÖW{pœ™úr½ï*_ŒÁJG+ÖÔÞϵÇpê“;?éy?ô9í±¥Ïeâ-÷LúF÷àȆŽÿT³ƒGïËzCÃÃÇy k¿E¸G/SGësL„ãĦh2õž½Ñ`øŒ­>…µZ?íÿÏ1ñ–OæÞxr#'øÎæ™·E3Ú}HS?µßÖ,^"ý‡kl~ùo;Önìl÷XILxÂsË'“ýÞŽdŒÀ{ˆúmRffo¬¦¸_‹]£Þ¯Oïº3³K gì7oùúÃSëýˆÙXßC:ÿö>ÝÑ5Qwì™·ýâ—÷ž^—®q·cϼ휮*)=ÈàE²cϼeÅú•ƒÄ!¶Ö[ºÛ:ôWóèûCñqæ/pbÃ;}Ç^>ηRõŽŒ!Ê?KhôÞñ=Ã:¦3o{—“Í_M̹×lÍÂn u ÷ ‡úû¥ÂMyêœîbnºü=¯ càê=M¨Ç^½×>…ì¼NÅ>äb‹ojÓõÃóY펳¨t ÷ ¹;i)-öô—ÅûÚÃÕþÜÃ[Œ1Ñq®+’{cKïugЈ“e{jë—[< /dÁº}Èjw§Å§/H†a}}/ƒhýr‹O_P¢%€I,aŸ«Å^¾ìýÆ»wNëï¬ü„ÇþØáýÒN1GÕ«9`»oCN-öè)„ö¾Ì^Ú°ŽÅ¥§°8wJüÕŸ{Ö›ï}ÞCÂz­¯m•ŸðNm#ö¨hµ1ÈÁ»‡œ,k [×Ox(cl¶†¶ï¡ôKxŠcì­ôñœ[áo±>½ÇÊÕaÀ[’7ûª’'}bI[ßà’ÒŸì!;` ÛWû±fÞpÞ¥Ržc‚=9ÏwÓÇpê%;íC<6ÇJ} GÇpŽÀ½„¦wl|©N¶_¸¯ó¿éRÆ–ŽáôwÚ2¢íQ×g_Ra½e:Ñø8cD@n”’h«Ç^}.õ_-¯‚—¾¹ìò¨öNÑù8)®Ø÷ÔâãLVkü¬‡†å »]vuÕB“H?÷þý^>Î^/0†A?çü‰­ú¤ý“& øÛªzÉ~¬ÿz+)°Þ ¸ŠC,«a‘Ò{«ç%ÅÇÉjv¼Po7î_ìÅqV4}ħV 9mñqøÖ\~ðÂýˆ«ø8Y»j|2{¾žsGÆO^R=pɽ책ì höüìe‚ýÅÀ±÷L°m c °ÁÖcwªÝ±ŽU|œônmw†Ô\o'yêÞóß”Ùëã->Ξz‰®Ã‰þó;¶pœýu½Léž,;¶pœäžE»3ìzõ{lñqÒœƒûº^ÖßCõ—¨yçÕ¥þ]Õ_¢ ßCjtíô0­XþÝžÃÛrúk7–¥{Že{æ-KæfÀiÓŽ©­òÇɺh4îC³÷Ð¥- Ͳžt-¤{æ-’ŒØ¹go'á_ì™·Ô9oZ•©›ßõ£vì™·œßßï!KuÔŽŒ=óæz› ßûqj@­[}A¬â÷µßoï1¤Ò{õäˆõ:ŒŠõ½JïÕöiÚj ÙÞuˆ2M©ôÒßï÷igT|ggÞ,µÀ;ï+kWý·•Þ«¦ÏåìxhìØZoYÜë~€{ ö{7•Þ«îÓŒºÆhÚ}µ\ƒJïUR¢×@ÒŸlôØÚ'i­ßž‘çÊÌÞzž¨úK8K™€gí²Ý/h^¼Û4Qj”µØêSØ;‰PÝGž÷Ø:ßȼ÷ð¤õÒÕ{Ýgí¿-WUËèö—$dz¯±è;«o…hôñrЍK‹-ÞâÜo?AƦ¿Soõ—솩ãó’} ý¹ç£…Ú¶äIÊ-VJ;º Ò<±vûíÞØ£‹m³sø36~¸à'¶|ûL'öЧ¦dÃéçʤêëšþfýýFi/„Fµ·zïã-?á”j—O¿X=ø Ž7XJ¿ÄÄÙŸä¤ö¨ð·ýz Æ¿/íѰ/¢ƒ¿¥0Ʀí_=ø› GÇö=»åëtõKÖ²±Â /¤ê/!Rä0Ù"‰¶?ÐÁMe}8m).ýýÃ÷<ýÃÔlNoø1g\ŒŸçŽížE|ê“Ù8ÇÑ{ ‰Ï½;ü쇞xb^О$ÔáÌ­º¿|ú•“ß k(ó5éc¨zÉ>þÑ×hÒìß1•&ð¬77ës\þ8y˜Á÷ŠËÔ¾ßòÇI6:zAe»Gòúì?xÀ+wÞÖ€ïŒ÷ÙÔÏ¡ª—è>w'‚ ß$)ÕühÜ¥mgrxT– xÄ7iiÛKŠ“={Ø{Íùíû•òí‹s‘8äêï¡ø8‰fö³píý·Ç~jW—“yq¶7¶pœ„$>=#M/hÇŽ£íryJÍ3ú™¥ãb3&½Ï&YX=Ò²Zª-6{Ð!¶pó®žÚ¥]gdÇ<`g KÚÓÎ]wfÇ<€²T<[~¦\.ºz¯Æó±Üµçr¥÷šdè¦ù²@*0ÞÒçZb«ãoiAÞsp-~›­Þ'vÙOl”î—Í–O¦Lj×–Oòê‰M“ßžÛïÿ_ïç";óÆi/Ýc'Ì›yÛ;TÇM÷ýM»fòŽ=ó&Ó„ô@ºnsªãœØ},‚ï·û€ìX©Xí8dê v¯¸«»?_Ðqè‰$³Šiw½Ç^c½b÷•0µÙ¬¯26ê=\ÃŽw {®~¿ðQï—tgö–Ê=·÷;o#îè=²Tý%l¢¿~ØO)¿õê/IcdèÿÝsÞ4–vì™·üˆ¨c_©ºÔçͯU+–]͂ߦuv;µ~唃ì¾Q;Ö®vôlu#Û¯z¼©ø8;Wl}™GŒ·pÓøiÄ?±6WïS ¨}r§´PÛÿ\û\Dí“ù­÷ï̵ká§”ôÅBµi =Úcµü, 7Í®À^sLKŒž{_¿/V¨O²õš#Eõ)ȤÑû öþÜË7í5…#!dýìŽÃ΃~jÅpljÃ7M+Ö¶ÓD¨…¥÷š¿c!Ž3º6“—Äj æà)HÖbO^²Ï9CÌG¢ëð8}A©‹xÀNZ¿'*þÒýÑO¹pJïÉ'÷ºÀ÷Jv-ïãqú¹2‰¬NS€‰[ìÑSÈ>/ŒÝg–÷¹8÷êâÚGŠñG²ö‰­þ’”ü,IC£åg\ý%yŠ@löÛ7̇ËOøÒâ~p²l2k½j\ú%o+àO,ݺ7öÜ»é«*ý¹·>iˆ“YŠþX‹­þI™ Þ¯%9¹?×j¼Œ•e›Y›·yð7›Šº–FÞÇp|דª XRöƒ·Üž×éŸLû ôcÍŽ{îݶ—,>7[KÛo{ê%éo:ã·ã¡ý¹Ç¯# ƒ°ÞÔ~êž'öèí .Áš×,®´µ¹ª_ùbÛ?±)×ݾÉut ǘ ÞƒŽ¥}/Y¥c¸>ïaç4Þ÷‡âãŒìãèy‰0kÿÖ‹“¬¨™ç×4Ûx¯?Nvy€Ù¢[u®¸‚ñ±)RÔ¾3º<ªó´Ë±ÙÛdnñFõ3k_iV_otuÕ¦ŽPîg=V.îÔyIOqr­údÖrú;Kì ïQU/ÙßÉZØ"­þýG„¦ô1$ÿØ{lgEúrýå©{ù8¤æÐ'6¹×Hùòq) Ð{ÆÅÇÙoò÷!Ç:sö~D.>Ží„rv\/ûͼǞy³ôyí|½ýz®ÌÅÇÙGlç"Z¶OÄ@].KT>;·‹“_«kkÛ‚ßvæ-)í«kvî N 6 ñî‘ö”qzÿ$gÓ2»ïYö=J½8NHã ÒCéï¡ø8ñÛÏU~uâÏ¥Š …u\9.>Î^ñ½_î”q åoš&âgù¶ÿÞ{'’˜ÜûSƒGïŸäâãÄž7îwÿWmèï¹^¼ƒp7Ý+sÂxãĦšFï9àe¶?³ãK»¯Í]“oß߬{ïØã“Ühî÷nó&/ž±«|‚YÇÔö]•a tbu­‰þdCà¹|bÓ…‚ —Uú]„õÔ•×Þ'ƒ[lXü¶“—<%¢ úˆÔ±fÖÓ´ßC-HfkÓÉØ3os¿yï8ÙRÆ÷pæmd#}eߨò$ ´Kwš`ÄÕ_qå~8W3ZÛ]oÜö³§Åv'bÚb/nÊ\®”ÒoøW‰g@nZ}ö|§úKÌ/Rûƒ5ShîYoF“¼ÿ¶ý©¬~vW‰¦šnÝ×yÒþŠoºS®è˜Ú£¤Øcë|Û¨SSšÜz“øê½z¿›>5þ4Vl±·¿„ øzÙƒÑóê«÷šYRŸ 3í\.®þ’•Ž~ý·åÑ¢mŽ«¿dÿ,|3oM#«¿d¦[ߣvFÒÇ«—ÃOÈ»¥Ù9xì'ŸLp†ý¾ús¯o_D 7Íœý^èGO!}£ëhe'lÓâà8zæ{¹µžÞcƒ>ûžþ=%ÄŠz¿óÆ*^Ýê8ä::§íûÒ¡o½‹O_E+Z,Vz¤+5( Æ G;„óÉØÐÆ£âÒ/á¡Æ­jCÊqû‚V ŒBý·n:¤sÏr &ÑÇ{ê%Ñ yNìàÆq”âãL]ŸkÑ5€dÌòªï}Åš.뱓KQø‰å&Ež±T˜Z÷1ÏØµ7Yk±§_y·sSWzæõž=yë%‹ÃÞç›QZþ-“q Éè= 2¬p²Æh<¢-ÖËKg*¬7ß Pëÿ•qt £ P_‘v/”yô¹lžµo¦Þöj™‡d1ÄŽÝ[d^Õ0ècz”@¹Åʬ÷Îd©ciã›Jñqb¾÷ij$x‹->Nú;õX] “ËÇÙ÷8÷2 ˆ­ºòâ˜Úsíã­º²Öß÷ÀKÞë0R|œßýÓ‹2g[ÖÅq¸õá=0[ôš˜GvÖgw²yÚýXŠ“©²ßi^½‹7¶ø¦kÒî:·4!cϼeqO¼’µkßHñq4ûa»6@0h$Hñq,o4 #àÝ!»ROlÊumîäòAì™7‹EÔsÚ¬ÛBlñ¦1Y×3ßgToñq)Ú¿³Gú_ZMLäâÝa«?7‹ž-_)Üt?sA1BZŸ˜Há¦û0„^òòûùVz¯;WêuÄä|ô³¥úKVÜ&—¿Ø4˜nç¼\¾©NûÔŠmõ÷Pý%Æ uÏüµÑŸ[ý%ó*üÅ&§½³ê/Yê5]­î)WïUõƒ_ì3µÝ ¥ô^ǃõØ4bo¿MO_‰ gÅÓ°¥…Z~‹K&àžpcûÎôè†îÿÁCÙ{Ëj½‹¢G7t®Zt) ¿­|iÙÆ¨Z¾}*-OÍRÇðæ/¾æû²éàQ9ˆ¬Õ•åé/ɦðf\]µçöOIÖw¼iG?¥ xnù@sk@?ú¿į̈¼¥k`>÷!êùYé—Œ¿:Á;Gן”ËÇ!SОYÿ‹­ú¤ºOŒÝ©UËííÔ¹öbKyÅX‚|Ò¢üÜñ¹C©iËKé—ìk~çÒ®§G ßE|V,ø"æ\¬®»(~ð·Lƒà ÝIa.]LMðÛɤ»ý6?zA²æçû] ›/^ýÊ#w»·_…ßVõ’á¿ý3•Jý›,>ξQMëûïÞ{ïøÕy{u:üõ¼úúãüjvVlþóöMg—jLý^X|œýùbψ%´Ó~[\•ЂØåÝÿBŠó€ƒpXÖ,[,_.Aã‹Nn=víS¬Õõòqöùgwµéé8x@êì*ðitnªŽƒ¤0¡€7˜€¦ŽŽƒYœA«ôŠuiçÊé"…X*,Éú}H× ÐÉ…Q™Ì XÝZ+Ws«áé+Þþ’4¬ÍÎX]“D§U,`3üH@lù›ŽÖT~¤ª¨ó¾tžyÛiTãÇfª ¼ß5J㙚Žl–¿ßuæÍö.)ý>Ÿßhÿ&×™7ã ‹ýádš‡ºÎ¼Ù”βÔWîÜ3]gÞÔÙÚ{ð½†fçÕé:ó¦2°¶2|atyÛß[×,zZó¤-ºÎ¼%ßzÒ÷IÊÍ'H×™·¼èC½/U[V×™7Nžò³ ö3:ó–õ³¤Sr‹=ó–- ÀiËy»“)Ýõæ 8Yxý·Qá¦ùjŽÄ ¿PâÂ7GëxÊYS¬íëÅÇIa뵕´ {õâzžŠGíýVÉ>/Tú\Ĉ˜ý·Õùæa oÉ—jßCõ—ì5¼ ø¦)¸þ{jõ—ìdáð+LÂH_½×D({lb_íýVɾ£Ô®Rú©ÕâµúKRíÕº~ÔRZý%dîÞ÷Jÿù6Õ_²Ò“bå§çÿÄêÕ4ëãMRîï¬òÉüV{@r¼¡ú¹Ò’… ß^»'–r\ÝqÏ›Tãm½Â*GÏ|_}wJÊvŸ·òÞ§&†’\Ë«UVù*Ó/=•Ñ߯Œ1>8Y ªS=÷·ˆîiœ±>f_oRú“êñ‰jùºÞþ’Ü)0V;Ž®å'¼¸÷{>±Ù|Þbýê&!¦¶7‡ÎÏÒ·^B¸ždSNûÖõÜ»÷·ú™7]_Cµüßh öµßÂìß™¿ŽT¸LM²C¦ý6­{w/0>ß™§o‹=>+y@Á\$®Àý·ä¢gSn¾}ëÑyÚWiØÜGúÚ,œ Qøm©>{ì™7—©ðMî|'šŸ'ùY­ÿ!tú->ÎÌ´¯ïQ3fïËT»<*_KÒë%zë%iÞÚ÷ß‘%…öý'…ãGßw²\Ýê%Z|œä–€nŠ6joñqö¤¦æ9mý¹§>™ÒcÀÃöÒêã­ºòøñi»ý;#nßoñq„$À åš0¿±…¤£c/ŠõûPñqb¬!xá>oÚ:.>N¤Ap¶÷ºj}¤êÅ7M xì?S²>†Ã7M±IäÄ“EÏ®Þë7ט;k5]õë·¨“דÛûÆœJÜ{©RZ çÕ~ô¹VbuÜu¼U: ~ô¹ÒÎdv=è\9õÃXÁÔ8ñúp ûsãì“)&']Wb_c»NƒÆ©OÙÎîÔ«àÞ‡§±Ê'èŠ<ÿõì-èŸÔ8ó–¿BúÚ´i½ÇPƒ+6à±^ß;VŠ'Á­’¥fZ'Ó(_#ÿij¬ÞP]p' «Øµ4TDàÞ^ã•Ö•©¶5»¥Œ-^‡2Á’.4~cmÔ¼q0òÔ®Úü_lÍ ᮓC¯¶Ö[ó¶o-³ãd³ã¦6μ­½#Yç“‘Á÷kãÌ[ÖZ $ý,½ßßlœy[¯£ê¿0 …{l­·½¡.’'^Ë'mœyÛ‡ƒClÖ Û9dãÌÛÞ|â×ÓÔbϼ=j‚xÖl¹§'[›ê喝;™ggñ\‚ûâÝK¡Þ'Ü{­úK|^ÑÃÓfmž±åK›ÝD½^²Óó3«þ’}vôñ[VϼÅÖùvÓßš.`TVý%û&±>uåé£áõ›ÒßYz µ-«þÚ»—çã^óí °«÷“¸ëÍ”jïìÕ{Õ  »GÛr»z¯ ~[ yÓn±Õ´ZÓ4Ë%(Kúx/?M·K¢=9Öcn({3·={”Äêã=ºØ)y ±)¯±§Ÿ+ øE&ÄÍ—ÀÖõí[ø;Ã:^GÏ\yMøm™ì·{·=ý%”ÄX¤'a/}2½/ }2ÝF]…¹óÄçšt:£Ã[¤êþýÁÔÄÁ‹ÚJ¿Äß Ñ_l˜ö}çòq† ¼‡äFµd«zI Ø ÆR×#5:ü·l€UŒ =õ’$Ö0ÀT£>Çw=-ó`Ž÷—Ge<Ê#>s¡ ¥h|îÝ ¢þ¶·¾îÏ`O½$M¸b¬;‘ë:.ÆÇ¯ƒÍñ;ãˆî•aU/Ù­ÕÏùÌoúþPõ’™n=}/IM†I_C°?äÍ@{léά ìß‘/Ôëÿ¹äÝ ÏWäæ­>óÄÌaÚqëI·âãäŰGFcÉØªs9 õçf—n_óÅÇÉží5þ}ífíc(~@T»6ÀØ9­õØâã¬Nñ‹oF»_XÕKR¡Q1Ë®ájWïÕXgð¼â´o§ô^gþdÀÓ¦}ëÅÇYiÖ"€-f}³ÅŽc‚˜{/3àòqH ð7™©—Õb«®Ìpv§†Y«—Xñq²ñòb!xî©+óëêú—G‰õ:—Gò6iЛ¤]‹Ùг7OaÔ eï9Añq²Ÿ`v¬ÎçìºV|œ¼ÎkÏi]¢ãdV|œãK›7{h,Òc ÇÙ×BèU‹i½'ÒŠ“úpÒ}ð‚ ‡Ó¬pK›;Ðuýu³ÂqbNéšQ™ŸX*Œ*- ºÇ¿q³3o{ÓY€ÏïÙQ¯T¬“Àûuí^qVþ8>ƒ“(“ ßØê/™ÊÀC™l0ÇÕ_Â][èá>ô»©ÙÑWNªQÃõè‘ÙéÏ}úKR“zu\$-‰F×ù·§¿$5Íf×µÌ~ZðÜubU:'(%¥´÷.š^~¶P¯?Ðäî‹h~ò’a »¸/¶ðμxxÙ‡È¢pÓ”)ë±Iéì÷Ø(Ü4û¡–™vËKB.*ÃwZbõâ› Ï])HÐßÙYo™Ü@í•RG£·ø¦éVÉÇ™ÞëÕu¾¥²BÇÉ8mÓ~ŸëcÔK¡ý¹ÙzÓÎnób‹f=6µ˜[ïŒ_½WâÆÏÚÕƒûs+/Iã§^¯Þÿ¶çˆ^z¯Ö‰×KnÖb«/hç%Ôñ·¬^p¯^Q|nˆŒ÷ú›:ƒîm¶²®>Þ“O¦â÷ìž7ÙB?{ìõíÛ§ÀJ‚¹(½×‘EÝgN[­7ÉŸþ´lŽC³õØutÝooÑOlæëÒb鹋нÌìu÷Îoñ§¿D²¿cT”VÖ]ïÕçÙ'÷ÚÇç®^šÉػ޸iÔ<±,­ŸÀKïuí¤_1–¸å}^õ’K«ñ·¯uí<¿þ8&¿í)w·Øuê“oÿûÎÆüm/ǹèGHÆ¿Ž±|À{˜Ø¢¯sïÎ]9 v¬h{‰¯Ó¯Ì%½ô;Ôú½Ð«^’÷PøÎR_¹aîþÔKÁ*Äß"½Áúx¯?ñêûYвæaàÅÇIÿ!é{µ§Ï[û~‹C]lç‰ÝeÓ#õâãä±t±ZmЋ#ìí¾™ûd€ˆßzIêx÷3@÷"š=öÔ¹ö}kÎþÛ„Û«ÉØâu‰:{éàÞb‹“…èSÈeÜ›VMw †^‰àÙî"N·®|]Rÿb<·pœ©“°$Âú\\ÇÞC6uö÷ÀãÅ çÚi”5¶ó©s%i8xùZï—Þ«ìÔòê}#Óè±Ø»‘|_®gãÝ:< {–ÇÉñõyãë·¸À­Ñ)3öÌ›e×Rÿm{;¤~v—?ާÜUî$Ã÷{æ-¥®Qܸ¿‡3oîóWLîÖ-:_Ï¥øS:'>õÀKÝåÌ[¤*(xæ-êú^þ8¡6g0åm!_w9ó¾S!éšõK;féÂ¥A º––ÍÍ=VަY¶~-ÐÛf…ç_£d/‡µý®çb;\A«gY÷$t)]µÁMcôiCÿ —«¯Lº:(½Õâ¿™>X³îE¹†ºFkÍÛN¸›wŠ>|=xnÍæÉܳ]K×3ož“Aí~œvØýÛÑ3oûÿ¥_-ÐÇláÎzKPë%ÉkëBk½íMú×bù®g½Ö'ç‘ÓëÏ=ëM­måÔõ]ϼi²Ò Î•pV[›ÅÇÙJýö*]Û‹óäÊ€g¥.Uî™·$2Ôû²o»ý6+¼›šàÚs°fm“±7 äd»þ[olõ)di¯{N#m8¤[oÍÃà©éŠÏþÛŠoš¢C€a s«A{õ—dŸí¨m{­þ’}E—»¯›Öz©¼úK¿ôñ®ùíÕ_¢ÙÀÛÇ›»!]’m.Jïu¦mi9Òú‚¼ô^GÞzÍ<Œ{_›ûÑ ¥!]×2óÔE«÷øÒÎ9›×lÆæÛÎc}û:—ëäÕ}—Ÿ°šOƒØÔœkÏ}úK8ÍÓÆ›+»¯ù8ú“³‹JþñÞÛ{(½×H‡Ä»vFÜó8}x^î‹¿íØ R¯kú‰Ù<¦¼ø8{u­Õ”?Y¿töŒ­:×ì>ÅOì~å=öàoäÝŸáƒt®œÇÁß”Máý>wÈß÷ãào1¤{üå+wik>Ƽz6 ¿mZ£þdì:ܳPƒß¶3 ~ljª—$Ä€c¾ælùYT½dO[÷yÍš‚hÛS£ê%”•‰Þg3’Ð=[lÕKö›Ÿ]3.YýÞßCéÎPüš”¹Ï†þT=X=öÌ[Òr˜g3i±¥Ó»'±ÅÄÚ7¹.Oxt„G’½û¹Ç:u®™ gpp«ÅÇ:xÀÞÄ‘3˜BHÞc­ô£ô·Ñöð³¬ûÚÇ:xÀ2wäö=¦¥-öà4[ãêÃ׳èþAÇÙïkŸpJ‰[-ǼÝ!ÓŠg`ÐÁq8±ø®m‘u8ˆ-Ó5¼Óöb¹ð¬îûðä«÷IõƒîmžÅÔcµb­÷9&Ýzv¯¸xûKtRçr­Ëøþ‹=çÛJ ,PÇ¥{Z~÷J5ðê"º¦dðñ7]cN2ðŸ×ÞŸ|üMÓ+™@Sg¼>¾FÉ='ðSuˆ-_£/‡Òî Á¥«–Ýúÿíá,Åá…žXûÓiµ×à3o{®‘{¶ßC÷Ú >ó–mtà‡b³Á5[ºØZŠ{ý;ÿrùÒ.²Ù[ä½­M9ëMÓ!êg{µúYÈYoé ØÌÎÔ{l­7m›WÕà (?aÚ Ï•Êzl᦯rí_Ý3îÛKí“âæX{åÙ°Ð3oƒú¹ª¦«ÖïèQý%ÙG 5›LÖû¾^ý%Ùëmoõ]W"ª¿$-›òMC{lõ—쀤ë1e• ïÕÕ_’æyÖŸKJÒó¨«÷š.;àÍÈWûÿ­¼¤\K~bÓ"¥ç0Õ_²ÏÂ_0ói% ƒZúÊÖ{ˆ2V½÷…^Ýнñtì+µ5áU>™Ê‚º·cõØêçÚ‡ÖêýöûêzÛ¡¥§`ÁàcÓ,½ŸX+=óÄyû¼Åº>Çoìo2.ÂÉ¥ÿ¶|c}ÞÎcOôP<+Ó»ÿÎÉ,Nác»×–\ÔWÚ_.ŸéûΛÔzûú<%ExÖÛ;os*YÐéýôWã²cßy;:x7,Âîë¾óvÔŽûÜI{ûkÕzbͽ£÷Ú-×9úŽ}ç­íå³Ý̱|ßþˆõzœvš0ß±õÀŸëÝì¾Nî½áìÖn-ÕŽ}çíÔ½à|hÔòWº{b{œ±¹Ïfæþ½ëZûºŸ›ž! }@ôª1ß±®Shîÿ²W|\_"µj@ö÷åú’“LÊ}žµNÚs=gý«7]×uÏÙÌÞÂ\óú’£¸Ùv;wæºîøüî3á# ž—6xÝâÞUàºý æ;Öëçº×’󹱿V¸'ÖuA­UxBÍS uÝ3÷{Ýõ[Çü£Ê_Ìpb½ßb·fw™“à×û>„oh¸î^Ôå~ÖÝ﵎«1òƒPÎ } Çë§pšdâüí|ë}]ïÛ{þߨSoxÏñ£/y¼5;®»gço; [_¿Ì‘ãç8°ÜÏÙôuRºá|ho›®3‰c¦æ5ñµ^±O>d÷¼Í÷ü­ººú;Sg?¹î½Æ|} õ·Èà‹ýŒ0¾X×ONÃI ïX}Þ¸~¾c°«ïïŽ5ï£0Òu÷"u?/ÑŸ/õÿ{®v˜ÿs|Ì^-ë^Îp®·SKÓ°c«×žµkvbÏGàZ×¥¹ÿŽvA¿¤Ö¯ž!;Öûˆý=³ôç×Ú_Këë>†{s€uçqмÖTç%2k™÷YÝ©´›÷x—,«z¯;§uźÇà>Oû>L¼ÇSå~‡¼§i3Ö’¦Ýï¦×ã´½"vè‚j½xÉ,^s.ÃzÖÖå±´csí}æ€çÀçyÿžœël4쾿§Âýíöz=ÕW÷ú[aº¯ëõ8Çê^ÏN&Ò¯wÓëqöVão³ùçk»bý§”Š3À½§iøm~Žsüîoìñ«¨×³ãõ8§oô;›R»Ç»¢ÆFpÝSÏ2¯ëz=ιѨÙ޹ȥÓݱΕÏ~õûµ¸ßc¯ÇÙ?x᜷O‡ë>x=ÎþtörÇKF¯9öz;s„ZÄý€ÜßM¯Ç9 -ú‘Êü6?8æ‚ô ]—‡ÊiëøŸXÄ¡cê{Mž÷}°è 3<övé~vì=Ç933Ë" {®õžãÔÙo¿ŠÓzå>›Ù±~޳·ë×Zrü2¯’äûžã[¥f¯^^ø;ö=Çyº;Þ} O]b‡Ÿg·žû*&;±ó·O䣗«rç…¾äÄŠ œ3´Ë†ëĪǶ‚¦c?‰ûàþÊ£SÛ±s'Åuß÷휚R_Rúu®wŽúßgÝÛæ\z£eˆ­~–t÷oy4b›¿ƒõþë×v4b»×Ú¯?h™2;âRÖ˜†_¬¿o½ÖG—¡ßXßö±m¤ëúûV®nn;ëï[ïôj_³+bß÷mŒ«Ò]qjñ3Ë2Ø?viE¬¿oe û5ÏñV?7m­Mö6Ìqí~Æ:<ë›rŽëðõáæëO¬á>Ôé±kÀ[>ãþľïÛñ齞‡w ÿ·ßâŽõý¤–Û_cý”9k±FÍë½x¸c}4x~»ËyþçxÇúäö3?Ë·1ÖçM}ÇÜãO¬ÏÛwÊÿûÛþ®;ý‰õyk·¯Äã#›b}Þʘè­J‰?c˜þmY ÿ>k…±âÏúÝái}Õëï[ëWó#gœ ×—ì…úzÖÿ{z¡ cßur ¹=Gä\_² zxÙOO¿Íõ%ö»È¼±§u<Ÿ3×—œ#óqßßø@ÿ>ë®/Q+—wÈÓæBbßuR{Sôû:Cÿƾë¤Èh¸î(\K\_"õîýþß·Ï6bßýä~xÆ0]<ü'Öë»W\wïS9†¨ïÖÅ>m£b­® ’ÖQ÷Õ¤cMÕk«[ò÷¬Šß6šï•u V½ëÙŸØîº«ÖpVWVÇ:9BÏÕ&Î¥MŽá·ÒæÂkoi âÚáy숮^¿±^—?'Ïcþµ¨¾ô¿O¿Û‰y®SXý~‡æi‰gr¾ùÛ~t ±-}cgè«ÿüA(VðœÍðÁ(——Ìçß–œë~æs ¬;SùüN×OŠq G‚X÷W¶V±þªL^WÂßÞô޵a˜c×—”ð<þ³ö¥ýÃ4÷[IkêçÞóëþÊçÝ{^÷LÜ_9Ú3ü‰m sì¼Dd]ßîÛù¬;/™6ïçá\Wñü:/9ÀV8ÞÉñ×C{0O«ƺ^yôggµÂßæ~A‚÷bÏÛä¼9/©¶:®«60o®/9åx/>Bõ»‚G ®;£4ê‹}xÉ:üìî“yÞ Á}p}Ic ¶KÃos}I—«Qöó‡íâo¬÷YéZ[VÅý}x‰îýŽ)´kV</9Åy×ÃzbMïƒ<q/¨†Ø¹*îïÃKöÍ”›{ž5UÇðî'W»ýÄÎÙb]ûŸü|þèV×jó<@û}¬%ÎK¬E¬8pÿº×tݱ¸ö™ûÎè]«ñ—7<;æ>j±¥|[Ìuæ2Ù»Õlðº¾N6ôSøy–¿±±N Ç[+÷ÕÞ§ßBÿ„0Ö¸®Ç™Ä·«ùu_5ÃYÇi÷Œýzóþ8ª÷={{ÓÜÏN ÿ’ðÒø* ±-úÚþ6Å~§yœc®ƒXëøÆ6ïãñ} ›µþ‰ Ý«&Di±®3ïÊ^f{ËÅߦÎaVA}V]ƒ¿Íuæý~7Ÿíþdì»NšvC¬DUÓ[ß>b}cWY¸îÃKæyç;žzXíØ·@ëCÛ[áu_ý¤:Ò3©˜‹ú~ßF½¿oÿg|/ÚÃKìÔa󺋼¯=¼Ävþ¶îØc•Õjô¸Ð[ãtô7ÖžX³Îëö:ñìTß—ìløâ%óIéîØº×råÒç³KÞ×Z¬“wNöÏcgŠûÛZx³Ü=èæÉqx]?k³4Äßãæý:n3¹§ëÃë¾Ýîïó ØGµQã‘×ýʇ~cÝÇp¿Aϯ€µ¾jíbŽçZØÿ¶á禣5¼›Öx‡Ÿ›Özk;ŽÇ¾ñºÎKtñ—a¼ê5 “ïüœÈ¥Û?¼Ê÷xgSÃ˹+Æzzß¼§EÚߨVy½§—jCLäŸØð1Ä\œ<‹÷aFýÛÍ^Ï'Ú‹òþÄzý›®{ގΑë™×ãÌ~÷9ßÍŽ< y=δÕ1Þn×U?S«¿—EÞ_?˜ðmÞé*¹r›~0oöz¼CöžMü< Z¿ÿ‰-¼®øy@w-¸d^Ýä;Çéx{©Œú7«kuc¬×¿S<“£0vãŸøÆÎüÛü<`ÔñÎOIãóîV1o6Óxý<@‡álFWʼÛ'ý}I¿¿…çÜçYÍõ%}ÀãîiU€ë:/9%2èõá‡ßØæõÒ÷yáam5ÅÆy@½Ï/ÖÏRæ›®/)Ò¬ñl†9™ëKÊ]üö5 jÎKV[ì9ÖÈÏšùy@aO,ÁùP3?ˆþ¿±bü¾™Ÿè½W~î/¿Çî÷:y>ôÔKc]w¿×#òè8oɱ~Ðæ¤!Yfs¿×Óëg3-í¹ÜïµEçߨž›ï'µ.\w|ûëœË”ž‡³ãl¦­8ÿ=ÇwàFÍyÉgmü'ÖÒâ<àÖZêÀ>µ/™•s¡6ûÔ"Ï/z‰óŒÁ:rÈ^â<àÖÓžØýo/q`¯ Üßþ%³Xö©ÝýKšŽUÒoã}pßÐR8ojÆû`ááÚ; Çy·†ØúžØšdº2ãôúžìj!vªñºïyÀ¼>ŸØ‚\º?¼Ä?{Þ ìí»ó’®‹l»óL¸×÷<`?(dÐm¦Xy=gKúmuNŽ÷=P¼gÅ:Çûê•;4Ó!´3Ýõ%«,òj#cê®/]„¼`Þ]_R¬’¯K¾nè'+Ç{4ˆõ< N2ó^¯ëß7Å™ÄÙ?ðÙñ~Â6+ckÁY]o¡3Ž7Ì9þÄjøÙ,0èïDî7Ö¼‡ø"·Oç±ÝyɲÁëÊàxƒ—ŒtÝ¡¼nðžQÕ§ô±Í¯{óÉÇ[³âþv÷Åî­ã< S›ÔûðØ›™ÿw¿‚dñÝûãØ”šÎ Óu£¿©æs§ÊXÿ¾iå}èÜÛwç%;e¸YæYâ°GìÎKzkô‹ ¦ßëŽÐ) #OͱÎKý‡ôgq¯Ü]_Rè¶~bÃö'ö}ßÎBpäþÝõ%³Ýç8ϾûÉþ%³ð¼Et+}¸îUǰnÔ|bßümêàÙAåkï:YÖ½>yÖÑ ô0ýá%ë':(þ]üz?akÆñå¾Ïëqö .Ð ÖÓ>¹Ïå±ãÊçŸvl·Gî)D‹sœ’bo¿ [=¶ôÁØÊØöÆ‚Ã<烱oèºö?±eJ½c‡çïÞUO¯úq×Òvy} ûmÊûÄZµuǾ:…ë\ZÖǺA+ÆðîKöÞ³ã·3Ÿ~ǾóÖ¦NÆîï®ûÎ[ë‹ZÀR{¹Ç«ï¼µ}ã+rÞÊ}Ÿ¾óvL¨æ+Æ=¾óV­Ý:›ur§†ØwÞvbwõŠ;ÖÆõAßy;ÖÐ{®†s‘®ï¼í™¸çÍŽ\Ÿ×_Ïà‹b§ý!Þ7×—”°DýÅrxb}œWóÕÇ¿zÞ‡wÞ zÐÝëâZmÅ{žßuÿ=|’믽ûÉõe)Ÿîj±ö¡ÛË'!#4ZÒ~›½|rõzÏñÞ–·Á1¸ïL™cÀ6áÄN??V³QÅyl·÷ûf‚žÜóð(^÷ý¾Y‡9ÚE>^c¿‡Ð[Fï›Kth¦gÝëq4ìícgYŒ}çí`\·Oæè^³7“¾>œÌëq´@+|p,s¯Ç‘u×><¥­Üx=Žˆ-äèS qé^#"ôêùc7±ï¼É9Iß±‰¹p¿Wé“ýEÎ÷ ±ï¼ýy°{O`.F)[Ù×ÞÖ‡QÞy“°äû«A†®m”æ±e€ŸMÅ~g”éyK Nìˆß6ñÛº ^dŸ·Þ8boXKFñyÛï7ùäj¼1o&¸½TÞ_Ÿ·_ÐúÅVãu}Þl5Ô3ôŽoÖðzœ“dþ6è ‡×ãh•tÏø}^£=qÚ‘ž¯ÇQAÂIOÀ†×㨮Êg§€U ¯Ç9Ï ž¥~gx=Ž5¬Q‡ÓvŽ××É1*û•Îûëë¤ÜgãçÝdŽ>œ—ì{)è73¨ÑÎKÖþÑäžü^ ç%g@­ Ëðzœ}=Í&ß ¯ÇYÑû7¶ñ;?¼g麽¼ò1ÆNÿvƒÓžGºñ·ù¾¤ÝÞGOÛ•×õ}É€ŸØÙ† Æú¾DzÖ}P¿3šïK¾Óâ?zä8£¿û’ZÊj±±5ögÚñjøîûɽQƒ~}tpÏÑ}?y7›ö0¦¼®ï':sy,ÆëûI›÷Z¢çx ÷·{PÐ Js>?ºçíî×|öˆ{åÑ=è·GùõéO†XÏ&jV,×›ŽáyÀ¯Þ3bÇàó;<°Rq]¡þlŒæùPÓÎý:ßùÑ#Ï8«Ô9ŽùÛ]ãx˜˜ñ›5<k£ãºs¥1ˆçCp]ã¾o õÜ´ ædûg•'Öóî±&óÂv½V'Öóî9ïµï” ”Û—j8/9ÒÛÆRïzé1=ï–ɼ»„+ñol N 9ïU>wb}ÞkÔSÚ1^Ÿ7mJþP.‰Ì‰õyÓÞNÿ±×]‰) ÁoÓï`½Þj¿X‹ëv#/éW_Ú¼äÖ=±óö4¿¼„9úŽí÷ó¼d¬ôÛ:Ÿ³à%}¥1´Ûo{Çú¼5Í÷¡Ú=Ç/eq.zÃo›þί.œãvs˜¼ÄZâf ãõuRÙUQ1\××Éa‰Ùì?c¼ÁKJIï[Åuƒ—Ô2G~Çëß·Óe’ëC±û·/‘5°î¨áÜi/·.è©c…y/iÈõN-÷rÎKNŸ5p˜R˜_/1X×Åø^2×Íì [ŽÁ÷%{ý[Ù{| ƒ—üÖÍÄ·ðÛ‚±^³Lbžê;Ö÷“цô7¶WäÒ#xI—{­Ö³eÃ}^R[Ç^Cçb컟´_±ï·ß‘t]ç%2:˜MîÏ‚—ì—ŸuØ{åà%{ð£Ûæ¾ÄyÉg™ü·ÖSë¼D+÷“•gÍ#xÉÄ>ê¤`L#xI3î퓟Â^R'9L7hdÇÇKÀŽ=>t #x‰ŽäÛ\¯ëy·&®¡¬ÁK欬? ¤€ïtjÒGð’½ñ#[áÙÌøÃKس´`8ƒ—Ô è¿mÞð¾Íà%¥*sÞ…\d/Ùùra½Þ ^R:óãÑñ^Ìà%µ’­tQŽw *ÂÚõÉXŸ·ÞŒ± ül/ønžØÎûëó&‰—Èÿ¼¤Üš§#m˜ÎKŽYªq œ‹—trVÆûñ©äF69߆ ÎEÅó;?^«øïW|æÇK:}0¦‚Ï—T^W;Ÿ‡à%ááþ'–µ}3xÉ´©äˆÂû¼$ñÔÚp9?^2Ù+9}³æÇKÀ×ÖZÀùñé\£ tÛ3x‰2›U„cp^²z?AQäo3xÉ^çVòShˆõ}IŸ•|}a]ŸÁK&ÎÎT c}_¢ÒQÃ_¬òžù¾dÉà·°ó™ ^R¥â{çC¨šÎKÎGc°üÛ<hØÛŸRòÅëz°ßpìÏò;ß¿sÓ‚ëžÏ.b=Ðv¯ëz¬pñü/1¹¿gŸ ­Ï ^r7ÙyÙ ööÓyI¯à´‡­€™Ïà%m4Ä®®ŒÁ5îõáôl›ÁKF_8Þ÷ëNð’±+é;¼D ÏyM ¯:…»®îÉD/N0ƒ—(|;NN&óŽ ^¢x7O®7ïsô¼D—2דëüÄú¼YMgîj¼®Ï›õZÈKZwìøbÉÊ\×çÍZ£þáÛ|±>oVjÊýûÔ;6x‰¬ÄÖ­˜/I÷¡ŽÖ¼¤Ž÷ DìÇKùÙ‰½çâã%%1¦Ñ†Ü±íc ‰Ù\í%OlwS%q˜‚ñçÅÒ=ëŠñú:©+irëë¤TzBÕR+bcl‰ËÝí_N¬ƒîäˆZ0ÇÁKJM d‚#Nç%<þèVðÛ‚—ìTŒ´6Œ7xI¿{jžµdAË:ƒ—Ôv¿Çgâºã¼¤˜-rå%Œq†ÒqÝJé ^Òá›dç8 ß‹à%Uoýº»n¬ëá_²º€Ã´•®ëze¹k'n¥TÄ/иœ3 þ¶à%u£_÷ÕÎKla¿£g_‚ßæ¼ä|O'öûßà%äò3Gçx—D+õ?{£5ëy@ôaüÃK xI©ŒƒgÑt^"jZ”Å<ÀyÉNgÈVZç~'xÉlŠóÍ’rœà%}ŽI^Â'xI[ì­4gå}ð¼{_ƒçÒ½rð’²XÒsç%û+ëx”8/Ùs"ôhìSÅyÉ~†Xs%ô`ç%ûZ:°Wq^2Qozòî)ƒÏ[±šÖIùxÉí]ú´[BN&/Öö™¼î§ R\·ÌÆë/1Ão+Íx‚—Læó¥á¬Y>}‰UÌ[á\‚—Pßמ½b—PótJÒu—¨*™M‡fO‚—¬bÔΰnQœ—œæíL¬óº¾NF‹Ê?l¥wþ6ç%r÷¸~j•±ÎKtUÖzRë._=ŽN¬_‰Í¼d'B¶ÝŠ/™cÖ â[(ÁK¬²öì³—ûí®IºeN&m„„µ}‹µ\¼dh%¯àž¼>G·¢“cð}‰¡~s<>ôˆ5ßsñôÊ@ìò½\å·°ýJ¹=6xɬ çXX×%xÉþBóç8!bC¯ŒõáñRÄóà¼ä\Z”NŸq^Òš6œÍLª/ƒëi¼_À=W¥¨/Q¥¹S¿#ÁKV»™£þÈÀž@œ—ôrׂ^R9^ç%§S@%/áZí¼¤ÿ×þòœ;Ið’ßú¬ˆÕÂu2xÉœ ÷¢¿§/‘Á< ~/ƧS ¯ð˜üv/ï¾ÓÑЃÿJð“*ÔæWÞ3Ï»Waýüiñwåd¼d¿Æd½­‹)Hð’%é}¢7˜/Yšt+²&bÛ›ô%óæ¼def³®m͉ñÛ óãŠÜ_‚—¬’õ—¼õÄÆ¼!ß|êõ±ÁKÖHš‘kkub-ž‡Ä ÆÌEp®Â½Îq÷^“_}É S˜‚ñ~¼dRÿpÀÇÛ¾jQælˆ ^2yÉ1;c?^²³™Œ ^b¬›9{#ŒÁ×ÉÏDðÏkÁ=óurOR®52Ü3_'« îáËýœ9/9¦z©~hà½^¢53G™÷o ^2¬'–)W?÷ëß·ß ì/#ýoð’RÒûVÀð$x‰NQöà%³V0èè þ'6t¯2 qi“9Nðò¨½®[Ã76x‰JæëÜ{/™Ð‰íïPA=Ž/ið/±s´ƒo@ðžaëiEÉXç%<›ÑcC‹ñ/™“ÚPXžXç%;ÉÆ^cÑ/^‚—”^•g>œ ç%§QUª âþ,xIô;úë: ^2ºèb޼¤v£—ø„o³/)àÊgÆÜÔyÉ~Þî3”'åÀo ^"¦Øƒïm~[ð’‰ó‹ãWÌû¼¤úºWÖîÈút Fß5Ì[ð’Ú­¤\ÏYð’½Ð‘­ æNÎKvIÝJ§öK‚—˜¬Eè4x‰•ÌK°—Óà%Ÿ9쟳|x¨hð•šjl°ÿÕà%¬S;u(i ÃïC1œûWöóÑà%'SXÐÎhð’V¨/)^â¼doL°XCxœ—LäÇžy1Öy‰¦³ºßëŽ~ú’Þp]cM¦~úå9ŽMÔéo=ënµ“¼äsÏýým‚\Zƒ—|Äùß^××ÉÚøì”Õy>^BmR›à©¼djOuT‹×u^²ß!>¿Êg=xI­«SK…³ ^ÒooÍó¾u¬;¼ä×Xõ—ÃpŽ?^‚<à±ìÂx?^²5. y–~¼Ä&Ö¨óª 6ö%8:6rØÃhð]d+µ Ö^—Ôî9öV{p û3Mºãoóýä?{dE˜·à%bÔ{~iáol ¾£@«¦ÎKZÑtÖ¡`ñ¼dï=ÙŸAqþ¦ÁK†VhFZ3Üßà%Í“üœ¥ˆýtæ {½Må4ôä%'Elø¡¦B>WÌߨ¹SÅ™št°W ^ò9düa+|ß‚—LÑI¶M¤Ž¯®ƒg‹ƒûj ^¢·Wð9³,‹c‚ÎAíøà"ïFœõØ ö·A¯´3è󒣩AΠ“Ϥó’Q“çÀb­œ†I½½*ŸÜ©Ü}Õyɨ’4ÿã²8±5bGÊõ®rÊÛìKô;ë` ³Cÿ ÎKζß–V¹çr^b2È@Œ~L¼¤ƒÅë± àu—|&w¿ßî<ÞÈÇPZåfh;nN+Ç£s¼¤ãLXÎçßÂà%uNÖùð^2 ‘5ç%Ç^t…}Ï,xÉÖ¸ç´à%b ¶"Ü?XðC éá%øÎ[ð’ÕÉ@™¹9/ÙéEÃþwp?iÎKv~Àš Uœ%™ó’A=ÌÓóï¦ó’Áz½½·O߬à%yì:–ìX'ƒ—tpðãuRx—tKš‘bw®gÁK~ûÊýêKZð’¯håo-Ù[c¼%ù?ô»¾Å‚—ô–¼5W½si ^Ò4é*Êe]vbcޒΦ¶~û—Xð’ÚÙ÷¡v½õ%6ƒsõ¬±›ÃXð’Õ“Naê­'°à%k&-ŠNÃVhQ’ߊ],ÿs¹£v'énYò‰ýô%Ü?Ô ûêq$irÖeÓwbÃ/h&^²jÇb̺ »äJ'6¸rI~+{ wlð’‘¼NtÜ5Aöñ’ì%#eb¼ÁK´%­ˆ}¼¤XÒ æ"xIÏšœ_ ^òuçø[k4ï¹^²“’TkTo/™mr-™vó> ^ÒÙàÞ÷-\wz-LzK­‚ñ:/ÑaðE1² ^2zÒ­Lî5‚—Ô)ˆýäF¿±_}·Byõ zbƒ—H¥ÖIÛ[ƒ zÙ÷\ÁKŠ®[ úT³/˜Ðœêc²à%R¾Ýƒzp ^Ò“7K­ƒc¨oѤ‘…žÀœ—ˆ¡6UžÏb#ÞVò9™/™Õ 1ö«³à%]ÈK¤ðºÁKªP·Ò*óãà%åî§v´(†s[Q×Q’n›gÍæ¼ä°ŠÆ3KîÏ‚—(jÌÇ£C¬0¡/ óÂà%µF§ÍŸßà%c¶ÄVPcÁK4œ§gÞã¼ä;Àø“ga +xIWÖ€HG.½‚—ŒÆü­óüm/F¶Ru0ÖçMÒ™Ï2å|Þ çþõ”¹b%¼YÈÁ•½P×ÇKÒÊéºñ¾uÃuÇ‚À ^²Je,½lWð’:8ÞÁ~·+xɨ¬þv*¿±ÎKþm¼•±±N Ï$Nmbƒ—€Å×DZ3¼Cç‚£+x‰uj±ÓYèúxÉâž`Ñ3y/ÙÏ/½djclè'kÙà ^bFÖ¨XKV«Á@5.‹Ïz𒡌ݞÉà%{âŒ~ÐÊØ=Çڃ弤6!™#{ÚnŸÓ¼ädQˆ­õÎMWðúWŸØËàÄÖÏÛ¸0V&b¿ur¦1\Ç@'¶Ïy¼7[ÁK²‡Êþ\,½c—ìå—óFÿß弤þ‹ÖǦ`¼~ ¶[é¸ÎK²‡k Ïoð’RkÖûyp^RØôá}wÝÌr^RFKš§Òç8{¹SJpWÝWÍP×ñ0Ò›]-u_µ™ülö‚qëÄVð’½/IKï¦ó’› ÖùtäK£¾{±nqçÝXS—ب“ZöÁ[ÁK*ré£GäwÈyɾ—ü¶ úì-ç%§¡ kSÿö {cCgŽR=h†cð< ‚ÙèéŽ}ŸEŸÔKëO«üvÛç:kwŒ¿-úu(u¯³á\z/égIMÒÂc°Ûd26|0jzÜA¿VÔuè‚Ï^£GÂZ¡Sh ç…V¹¯^íÓ4Tîi9Þà%µ¿§—ç-xI‡Îñø—¤XÏ»{§Ïˆ²ßí ^röpK˜¼doå34úé®à%íîUrœ–îƒÏ[…þ÷ÔÍÜçYgð1†bìrŸgí?ø¼5ø­´3ÞŽXŸ·n©fïëóvT¢I¯±ûq.~çånxb£ŽªóÜio«'bã}ˬ§ ÇëïûˆÕ¤uß±¡ç²Åo <‹Ž5®¯;FŸ²†~Âç Íu ‹ûö\ر¾Nšñì«Mþ6ç%–õÊín­{b]‡7’F¶£ÿÅŽu^"ðÌ8ýX;æ"xÉB/‡Órzò·IÔ· êl$7ô“µQÖÇþ\›2Ç~æ‰÷µÊç¡ù¾ä(ÜÀK&ç8x‰Á;¤=-µÛ·ƒº«ïäì7¶‡^ƒ}ÄxvpNüŒJ–ÑC%wF½tÇz&Å8Þð -ìn6yÝðÃëü^|ŠàßX V¡ÔŸÉà%«S¨²0ç%{oOVQTð<ôOg®ønöUð<8/9u‡¬…¦aÇ~u­±îvñºŸŸ{ô|¥“¿±qÞ]*{ZŠõü­MÖ”Â÷­‡NÁ’¿ÆZä¼ \CPK{ÜÉ<—ô¢[`LÇžôÕ>pNÖËÀÚ¼Ä*}Y=v¬çÝ–tЫs= ^ò)Z~Ï;ׇà%{íkìÁ÷"xÉJg–Ô†ží^\w‘k”uKŸòUMž§ke¿c}ÞöÒ—¼C®mã‰õy³Æu½Øe½÷?ǾÍçm2Ϫð‘ݱ>oŸˆóoÛ«¦bǶxÎÒYþ^€ë¼¤§Þ)Rc}Iæ0ç,õŽýô%Ìßöäb ;Öç­¦Úßo‹«_íÎà¾ä’‘œØà%3]·_òª¼¤ñL­jÿçTŽºÄcG—ûþ/)œ« þ¶à%š|\öu×íQ‹˜˜Í(±ÎKö'/éWûä}Äý@öýí÷/94ÍÛÄ=s^²ïcË%å>±Ñ¿[Ò~Òøœ9/)Šú”•Þï|ð’ýSýa¼ÁK ôó¾{}P¯þ—~TË0oÁKz³Ä=eÝs¼¤j¦÷+.÷;¯Ñ—v% \kxƒ—ŒU°V/ôQرÑgeu¬ÕRß7>+à¿§v²b]w^’êPÖ™JŒ!x ÏBO?îK‚—ü|ßÂjø¾9/Ã^N~›…ohÓt~Á=bð’^”>²&øn/©8—>{ÉØ8ï†Ói3¯Ø÷9/9ÂB^"Ø8/9æq©/"óØà%ëÙü™ßîà%¿…ß±,ü¶à%ÍJåY]—Táà˜Ì‚—ÔÂ^Ÿ]üo¬çݬ!í'MãxßyK¨3ÿ(Îo¬x,jðúSz‰XõØÉüâàXĚǎšú€ð}s^2úÄŸœ ×­ÁKöŽ{&?E¬Ï[m\« g§ àÇVð PôÇÙ±ÁKZOšä-õã%ß·Þ;6ꨯÛÐo|ÇÊçQÓÓ7€±¡/±T¿9n_Ÿk[Áúûµ}8±í‰]ááÊþŸõ㼤ã {ï×ÿ²â7Ö×ImÌÂÀâOlèðú¢n{p¼ÁKöËÕÿ¯û¼d¤ó–ÂiÕÞÜ#é•ñͪ¿¼„ûÔ†¾à;6x‰p¼cÜ^;Ö>/¯¤á³¼¤52&…†h/ýÁKŒzå½:àÝüxIFKÁ;ôñ’ÉZ£.Xwjð’YèÓ+ðTß±ÎK õÇ߈sܿד5ƒ½ñº $õ`®…ãýú-’Akç¼/1U°•2:Öç%½bïy´(øÎ×à%õþæ"x‰trû%\£‚—ØTzÎ’§ÖuRèuÒù¬÷ñï\ãxLÆzþ6&}èûS¨ÁKú´É)Æó¼D“¯}NÝ×Ç*ýK8oÁKöÝÅ•,0›ê¼d–¤m.ƒßBç%{¯AmóWmòûÎÛlèójÿò}s^²¿…56¨ÃÞ±Ãc—AÛñ94ýƾó¶7gÔ—êXw¬Äuó2±ê¼d6x=g·—gçqýõØšzÞÌ9Ú»üþf¿W«wîTgÌÛÔÌK.Â9- nÔs_˜nwlp®žúÍÌkÙ:±þ¾ÉJþ²nfSƒ—ìåw¥OTM÷aÞÏYðÔÿ¶9næXƒ—ô’xÔwðÿźoèš%1›^ïç!xÉ÷¥þ«ÉQŒ7ö%ÿ¦7ª÷}Ðòï}ðﻬ9OløÐ¯ÄgÇs¼¤iâ0{’1ßO®ä‹r¬Ë0†8«Y·2ñÎ/i–ú)÷=s^rZ %ÿê1îyÓÏ7tbýUÃYG ^²Ÿ¡/ ÷gÁK*jûÖÏ×^ä‹u^²?°^šíã”áõ"£ú™s¼¤Ã§ÌŽïƼ¤öÞ’W;îƒ÷ªÔƒB;C+A¶¥¼gÎKæH='úÕíØÐ)hôv›Øk/a/‡ãÇNPƒ—Яø)éļ9/Ù9:kw ÙJu^²ï¥tòÅþÁyÉÐκú”íØwÞ†,ú÷ÕQñ<8/õ±Ç—¦/‘ºPc³·w˜‹à%Ò´¦ZŽW#VRSîw‚—È`ÞrJ^ë¼do°ÀKêD>Ôœ—ìÔŸº6ãþ¬9/9^Ôvt¼›-xIUž;í`ˆí—Kë:xjûêqrÿyÔ©íØÏwF±ž]Äí‰ ^‚º|ýùì‚~c£?޼o«¦X‹ž7sQ/ŒuR¨Ñú¥¾Øà%ô1<=±8†_^²#5Æ/ÁÏSBÂØÐ— ÇÉñc*Œ¾ëƒçdzp.jè'KêºÒu—|+þ¯&r¥ë:/Y“º #ḟà%û?²¤7Â3¼D'Ï[ú©a€3‘8"z¿ïØÞ¥ÜËÏ/Zð©Ké‘[0Þà%+ð]l?aˆö'6ü𔱋ߖ¼ÄVIëdƒFJôPÆz°W3\×ÐófÇ~>Ó¨[á:¼dáœá,‡Ðδþ“Ú¨Ÿà%­‡ŸÂªI—Éõ7xÉD>?|ŒØçóÂ÷ž¨§åªç›JúÆ}Is^2+òÍóÎsýí‘wc §L¡9/™ôÐÖãA̹ð¼{XÕJÁ}^2Eèኾr;ÖyÉþš =Ix‚—|þO ö-x‰,ör¨ {ļDK]Ô—àü­/ˆ5èŠw¬ÏÛ¿ÔÍÔ«%ç‰õy›+{­®›k´à%3ó½Z>ؘ·Ôß´0…¼¤¥úÍãÚxaçš)/œrç±ÍyɤÇþÉ ¯Ûƒ­$Ïu{ÃîØš§‘t Úïû¼dô¤#íW;âë¼d–•rÿrÕÍìXç“û!"/1hÚç_"–ô´r3…öë÷*=éHofÓ~ëq Æ»3ÿ«Vcdž¾dÒ‹£W¹yIûô%Œ~ÛØŸØýfè¯q®‹1ø÷­¤z‘ŽZ£Ó“#üSéE×O2}Ç:/i+ÍźäÙ'öã%ÔW[mÄZœ·Ð;¯Ée tbƒ—Ô¤7šwßß­Dð`MÐþDݼ¤/Æž{KÐîû¼ä·±Ë_Ï—û™ ^òí`ÿzúÆçošØJ·Ö§/):Òºs•dœX‰½²%/¤Úïû¼¤w²ÌÓ£ò~&ƒ—T¡÷BϾ¡*túT#ÖçÍ’†³£÷Žõ÷­X:ÏØÛ÷à%}Lhʾr²È{ð)Éo° c%jϬQKeŒu^Ò&{}­’c£?Ž Ä~˜à76ü^¡á|z%#6xÉÞ¨Õä‰Êص;ÔÙ¬ÞÛB7Ès#éÁKöæûÉ5Òuýûf©–«k¯ó’ÚÙÓxUÞß—ôFÏΙb£ÿ[§_æÐ4^ß—Täöoã ^‚þYúóuxÿbƒ—¬ì×FmG^Ò5é£ëd^òUÙþ¾›ðœÝ±¾ŸÜSŒ1|í³~c£¾ùqÛ?—ïfðE¾¹çxA«Ö—{ÔÛ{‚Þ>ßПé%÷Áó€»qóþ®ÆëFSô&ïdž ¿­—O¯á‚×ÔŽ ?…Z„ÞX k_ð«ì$üÆöà%˨á¬è»¾cGhRÿãÊ硇N¡ÍAŸ2œuôà%ùÅѲ6^W#ŸŸÐ—ˆþ6Ï»ÿÅëd*Çày÷™„þ„™Óo¬ó’S¸Ç:ì–Ù—Ñ0÷}ðMÚ±ï¼áQªÝ~§;/9Bì ëX»ó’#°Ô—,ŽwÆtÛJ.×—œ-íHõ8wDw^"EÉ*Îy¬Þ±>okÔÔoæ*™=±>oÖkÒŒ\­Wþç˜l;7ª)wµ•;ÖyÉsÔÜ}Swl .—8ÌÝÂãÄ:çÚ¹Zb ý®oéÁK–R·rê:æë¼DSŸ /Û¼DÉwNôqÇ/jd÷²xŸû÷_¿Wò³=\Áý ^RY?´oý¼ÇðÕã(÷r§Å0bkx’0ïîÒ0Ÿ¾dËkÙûÙ ^òÛPõÏu+®ëúz³ôÓ0뎟f„×—ÜãÄzÿ·µÈö*;q]ß—ÐsàĶ›Ÿõà%5i;z-wM[÷UÓÔ÷w õ~&ƒ—tKlE+®ë¼äØeòYz×àuç%&¾·û—a}^Òfâ«5ÄFŸ•\ƒ'еuç%ûu#cª½wĆoh]Éߨü¶¨Ëä´E.Ôqb-<ÓY]o7ïëÁKjÒ¤¯Æï……Fg­çäyVw^2çPÖù¤ýdð’Z&u+Ƽ0xIQr˜.•±#Xëy }Kvì MûîЇþ¸…z;*½N5+=xI/ô{•Õ9Ï»kêM#þÄzÞ]àu=TÀ®ºó’Î^çè g_Ýyɹ"ÇYèç³c›ÇVö‡ð&ܱï¼uô{­¬UîÎKösÜ+õ%Ìý—ìëÒ—µSÇß—t]ìÏ»¨éÎKö\'?ÇÉýºó’~Ãÿ·n¦p.bÞ×j+ÐÿŽà%uñ[8àcx”-ÎK s´ŸEN0‚—¬ôü&®1‚—4øå¥36øä¤çì˜i á÷ºjÒìUƆ¾äöù§ÿØßú‹þÄú:)åÒJüsrÓ4†ð/¹×É«ù·­àÕ÷üçxÉðž/‘;‡üçè cýû¶7Æó޵–b¿ï[åÒ=s^r¾šzÇN2…á¼d¯G÷¬Í4†ž¨W¾ùÏÑÐs.ªïKj›`ƒ­7^7ö%è¹Ûd¬…|e_˜iŒ¾´ð =ÞÜœ7ç%•þ´§Ýd¬ï'[Og(ôõÎKš¿Çƒg#xɪ‰µÕÆØð UMú³Å1¸oè\wl{öÕˆ>™Fþ«ß‹ÑÂ÷·ï\üa´ðÁXô„mñºë«aÿãŠú‹á¼dVøWŸJ¿•á¼dßwö^“ïüè¡Shô/)ß·á¼ä4Nd ð³ÁKÖÒÄ@ðm=òn¡¯ZTwÿ‰õ¼»§:aá÷m8/9ƒYô·¿ýÁwÈ;o2‘ûϸŹX»ýK5L#x‰ôUYcƒ=Ì^"𯶧<±-®Û5Ó¼gÁKN…(êfÒ³¼d»ï•Øà^òüÙƒO¹ò·¼d¿ÐI"÷ö^Òkò'(W:ub}Þjîw»×EÄú¼•‘t¤:n½ý^bÕRîtÙTŸØÐeÏζê=†—ÌT«1õÖÃŒà%%×IÜvN'6xIòjo Þ!c~z®¤ȳFðö|rÃo ^’êqöÇæÎ!ÇÇKRmõþBßyìøüKûÍk¬û·}õ8“šÈ½Fõû·/Ñ™üí+XÛ^Â~¬'VúÉJN°·7«ÁK†ÒƒíT^Þ÷,xI©ì¼·zÏEð’i|~OK­rÇú¾¤¥z§“ÊÈkÑ¿EZ7sÁKzáÊiYv×yÉiÉ"ÿ‡Ög/ÙòC-ÌÐ8K5AMíÖh ç%*ʺ™6à32‚—´Ä^[iw½Þp^"Ö³g²6Œ7| 3{mŠw(xI“•z0¬%ÎKN#Næ"rá·>=õ ¢÷Í^R'k2?‹°ï{a‘¿ÁSrï¼"Öó·‰~û[¨¨ÃÎKF³ÔJŒà%ôÖ|úÕq žw/­Ð— Qþ6 N0°/1þw8/é³üÚ¦¥1xÞÝáwꌿmy¬-ꙣà%­A;èÌGð’ºÎßzïXç% þ0ãÔ-b¼¤ý@Œ>†#x ý5zöøÁKò¬~, x]Ÿ·®«°§ξFð’1 b«ñ9 ^2­&„É{æó¦ÉOatè•çÇK kÓŸ/4ò·¼„:èñ·E`þ¤~[‘¾3w¿¯çsŽüx~¼¤^yÀÎÑu*¯¼äÖ¯ÿÓ¾×í76xÉÍ£žÏnºnð’Û7éŸ}ÏZelèðî~¬;VÊ`lø<­‹íØ©œ‹à%£·û>bvÕ¦þc?Ux‚—¬q­QûºZcƒ—èµ—Û÷ÌfŠu^¢·Náù™#a¹ÛaWœ‹à%óö¶Ø±“üa/·Ð?gÿÀ¹^2ïúîÎ9$ŸÉà%«'f£¯ó’Ö…z#ß™ÁK~/ò±xêl¦ó’½¦jî¯w¯ÕÓyIÿü_íxêlŸo(s2áy÷lÑ÷!õÚ*<ËŸM¾¾Xk5fð’/æöXÈ#6ê: ×ê†H;ÖÏ»'ÎÎú€:Ÿ¼Dáa5~>{®ßØO§`˜ã¡à;ÓyÉ4ẫ"÷ŸÎK΂­téŒõ¼[ û=ˆgðKõ…ûÑü9/ÙOdE¬¢÷Ž}çMyz¼Ý&cÍc½E„÷wy¬vc êB§ó’=úŒLúMç%{Þ•>{ðMšÎKŽ-ëU9†ã` F¿×é¼d'þiþûü¾{å¼d¥~{¼·Ö}/¡?m=^H ±ÎK´%ߎ»ýÖ‰ Î5ÈaöFë¼äŠýíqrû{Nç%ÇXL’oÇí{0ƒ—X:—n*w¾9ƒ—Ì•ÎòË…ýOlÿÖKzûLx:/Ù{™–˜‚5Œ!ô%ɳs|‹ß} S¿Ûý[oo‹þ%fìÛ·Óž[Û1ƒ—ŒÉsô!WYȉ]áËš|¿Tî¦)ÑGLX‡²×>½ç-xIM}Ї•›1M‰zÓT7³ß·[+1ƒ—Ô‘î¯Ö[2—”ã´ÌûÐ8†=lYô?y÷!úÒJâ%}NŒÁë„Û ætÔ±îgÇy‰©Ð#¥¢'Öû¬´eI“cxv4ö“B-Õ~òîz²é¼D[b޽6¼oÎKd¥š«¦ÐMç%g#‘=}ë½ö9/9_¬š=rïyÓÈfî)ToV<õ×#÷ĈÕð«h©Wòèˆ ?…ªÉC»7Œ7ê:Çž=È §ó’Ó+Žõ› >éÓyIWäv<¬ð-t^Òµ“v´Â¼®çÝ z¹ç|“×¼»ÐÃuVÔ›Nç%m žãØT|7—œ Ë  ÷0ÎKÚþЃU¬ÚûÎÛø“k4î«—4éfì Àû༤M“~x†18/i:Ýþ³¢sÅol‹1ð pJalßf¸nòìœÎKšÂŸëÔåso伤z}®5ƒ—”B ½²§Å ^R/cë—ÿÞ³à%+õêÌ ƒ—,ô4>gîÈM%xÉW%ó›’kȧ/¹×ÃzelèKî^[¯c¿~Âùüׯæ7vD&êJÅó+_œ»ÇÉ?o#b—h½ž³£@ߨ£%÷œ¼[ïžš;Öy‰ÚµßùçéåËë:/YËÛ+tmâ¼ÄæÝ—öŸç cp^²ê]õÏ»ßA¬×›ÎÆßV©·—ê}ië]kÿŒgùRÇWw‹¹(èµµcãçîÍxØŠò™¬__Úûþ½ý`¬F­òýü>)>cÝ7tÜüáp92&©Ñg>²òóµ, ¶"-|CÍØçj¦X¯ï¾òšÅñ:/ÙŸyž rOiác8’n»À÷@Zäé|s' ±3ü ×Iz:Hûê:’/Š@³'-êZUz΂ˆó’S 2 ß7ç%By?ÛQŒ×yÉþ²Ðõ|/ÄyÉŸôËįëyw[ôTïô„ç%:àé;•c=ï–2Ø#¸*ÇûΛÒëDöößX ^BM¤üÆ18/Ùw³Q{ Ïdq^b~º§ ç-xÉ*ŠÚêô•à%« ½óè}#ÁK ް믌/b}Þtñ¬¹´~{)JðIŒr—*XŸ·ÙS½mw]‡8/Ñ.̇· ו`6É£q›Hð’•ΰÿhö"Öß7œ< ½Ïç%xÉhE“ÿÆûñ’äGºÓ‹;ד—”äm!W©þ‰u^2&ϰûžŠqdžïLò'óî5»cç·& †Õ‚ë/Iþ§[y¿cÃïUX—tÊúq‚—,ú¢Ì‰ëûË´0^×½jcŽ>+|N%xIK½v¡ømÑ—Ö9—ÚÍH%xIúŸïû‹õýä¡ ä;󮱑à%¿Iö¯Æeݹ¿8/mYã2nN+ÁKZM=›ÞÞÆâ¼d~Tànš2q^2[ª/lã*M9±Ñ¯#qÄVìæQ¢ŸÿdZ}wÄyÉ`ÝÌY«¾ÎKv.œÙvçýõümoæX»Óî¯ó’^§‚—Èèøv;/Ù—Hõ8Æï¦ó’ÓÊ¡²ÞµÕâ¼ä4ú¡§:}ÒÅyÉþeõ±c ÎG‚—Tc¼ë1ö·Ó {г¾ñ>¨Çî¹ÔRì;o‡r±×aÞ‡å±wnúøŒ@+,ÎKªaóHN°§u^²Ûà¹^ç^ÎyÉ1Fi z# ^RµŸ³ìo¬Ï[Užo~äë7Öç­Wre-|&—Ó,ÔÄwžwKð’vûÀ=ŸæNÁKäÖ¯ïT¬óºQ#×zv4 ¬%Ð_ÿ’ëlüŸõ#S~¯wO‹ç|ºýú ÷1'¨ˆíQƒ§È¥¿.8¿±Î•Û­3ÿçñíˆþÝ÷™Ï©Y!/Qç%§üÜhI眗ÀŸk_·²Î]Kô]oyw%Qç%¶úÍ vlÁº£ÎKN+ÉzÇ6ê£4xɺsÞsØÃKk‹~·Š9^#]·‡>•¼dª1Öu¯³“Wkýú¬TÌÅ-kĺo(µ>'gƒVç%;»ß!ùú—h Œž4D«1Öë:ê­Ó=õN)ÖyÉ÷ºýÕºOÆFßô:ÇKÊØ87EJûì­¤-ò€Á:Ÿ±à¹¥ÎKN‹owê׬m~µô™VÔ©ó¡fúø—(Ç qîO¿×KûõƺNa–ÅÞïþ0ê¼D­S3òuƒÿb—ì·ÂÈ@šu^bµÓ3¹ |ÇÕy‰Mœžôºb=s^bCÙ›¦7è=Õy‰{žzÞÁ÷ÂyÉþ!Æ=Ì*¼ï¼™¢W‘s2ŽW=v²7ͤFVƒ—(üí×y/ðmq^b‚=×:g3ømÎKv.œö©ç¼ê¼Ä†´T>ïÜI—쿎9ÎÞ+®ëóVSÞ*à¼dÕšz‹Â@ƒ—ˆPS¶Ç?0 =Lò#]õ>Wç%û{”˜ÂþìâºÎK4ŸKËœoð’:R ˆÝ=C4xIéÔvŒf·E?^Ò9†Ù¯’­ûÕã0'›2ï^³úù½æ¼ÓàÙ©QÓ“_›ÐËV—ìD”\CØßT—ô&ô—ÖTèŒ>b©ïΩíÄ=óózœë¢/Œ:/9ZË™Æp×;©„?Wç3)}âYw^r¼n“Û/S%úÒ®‘ïï]{¦ÒÃc”ñôTÅuÝWM­'Æ4y]÷ ­I‹rœÿëûÉ!ÔR͆žÜê¼ä,¿+ÕÄ ÆkÑ·¤%]Ýõ8ê¼DJåº3ªÜý„U£¿éL ÄÆÝ×H5úuô¬»Zw½“jøOæÞÎì­ÎKNCM¾>·†H—ì/79̾ݷ?­jÔôÄ•»Ý¾(ª¡SèœãrcÈë:…žÄÞ—ê¼ä¸bä,h0ÔyÉéÉMýïĹ“:/9KÉJ5+Ø÷/¹¡÷ëÛ®¡ÁKªòlQÙZƒ—°èñâ`þ¼d¤žç§wb—´ž¼©ÁÐà%³Uh%¾íúolè‚îs†ã§r‘¯Ç*Ïѵðž…ÉݳôŸ‡¯ãÙ ¿×mÇñ$Á¹žþöÇæóŠçÌ¢Ÿp»Ï»wì(` ý„õ^wŽ_}­W·ž`çC^2æ¼d§¼c0² s^¢ð1|b¿-|±+Ç{>»ˆõ¾ëv÷dÙÏCåý5ç%«˜òºcò·y½©ÜýPžXåýußÐqŸëØ^b5ú¬Ü¾Øçþ²W²Õ½S˜ÏKç=s^r”Bÿ¬©æ¼¤éÍ⇙ø˜ó’Sƒ×èãoBs^rÞ !?ÆÊ×_¤Ñ:s^2QüÏñpG´}2ïõì<ëk2Öë:ô*p=ÏÎjàžæ¼ä$vð¶Hþ¿æ¼ä,*d ôô5ç%ZUó+æÍyÉÞãóÌro ðü:/ÙߘAÏ— ¶bÎKŽüœu‹£æ¼Ä>ÐõËÌÙkÖœ—œlþF¥v^÷·u„Að¬¿æ¼dUäó'@ ©9/9GmÆo7¾óæ¼d}s¾=Á0xšó’Å:w=u>Xûœ—,wÓ©•Žwxì`ÊwBû;=¶5è5l)c%Æ[ ÁV9^õû`ôª,eÞÚ|s^²º°N¢Cû;Öç­Ö›îí‡]ù¦9/ÙYêq¢õ>´à%;Aä9dCÿ ^²³T—ú ^Ò’n»W-ˆýÞ·™ÞãªømÎKN3_Ö€@›oŸ¾¤­•ê:Æõ8½§z܇Ðs-êÌ÷Ó{ûXð’)üm{Á¸Ù•}¼dð·¿Ôû>/a¯Ãtû­Í·è'¼يغû_Xð’ÞÈÚvÆ1p]ÿ¾ieÝ¢~Íø¾Xÿ¾í}c» ܇è».’ôÊðŸ4ç%ÕÒº¾gòfb漤ÖÉz¥~Çœ—œvËÆØzçÝ&_Ÿ•T7¾÷å÷=“\ƒú’£<Àu[Ô–¬¤s ×uŒ…ÞUõñλŸI‰ý¤ÌÄ£P»cÎKŽÀ"3›Û7Ô$ú¤~3Sªá·y]ÇlÌ»Ï'±Ñß4Íñ)WÅo‹¾¹~h¬[×fÎKºXªa*íÎýÍyÉΆFÒ—¼oÎK:ë7¦L ±ž¿ áóÐn\xb=ÃÞþõm¾õ漤ÊJµˆ}áž9/©ÍØÇ¼Ìë:…Òó÷Mñ<8/)·éÐóÝÜk8/9ôû>éð­3ç%§/kaèIbÎKÊ1­‡6´1xxÉÞÀÒ¯XŽwÇÐ=6÷ßTœÙÃKN¬Ð[¾whíá%'öÎNÍ óc{xÉ1ßôØ/¡ÜýU¿n¯Ô OæNÁK*êߎ÷#siç%¥'ŠJ ½9/)³ÓcésãýõySø{®Ÿï|y@ð’oØþdûO¬s®~ó³“g5eìpÖV¯\äùù$È¿±ÎKÊ}þöxpOú’¡ \CX9/¡å䛕¹HèKÆÝçõä±=Ýߨǹ½?ù±"]¡/™£ƒÕ†÷b/9'hwì(麮/Ñ»ŽõŸÇwQë¼dèÍúñ§åFôéð$QöˆXÎKÎñ&Æ»je¬ó’zk8Ø8×OšÜ¼¤?¸±ÎKfâ0ËÀ Vð’v%Ïuéÿ»>^RbÅc—Œf¸J¾³>^¢iÞ¬3ÖyÉçlýŶV±‚—ÌI?ÝÚ±¦.ç%û¡Zà;ºÐ‹z/Ì[{ênýMïsÿÃÙ{m/Ѷ¨ªð!Z5ÎM¥²6мz/ÑÛ_ãŸ§çØ½î,ç%g/GTR¬óC½é‘jvÆÆy·¥>x¬-YÎKަûõÆçÁyÉþlÒGöK¥c=ïîVÁ×…Ú¯å¼dg¦sR³—Æ{æMö†~¤ç}Ã:¹^"§¡ª4~¡íX/9¦èð—;ú’õð9¦-iÿ@ߎõðyêçQË%ìj=¼äħAOÞ{öð9MŒÖ¢Fû³õð’3ÞB¶" ^½^"ç;O?Ò¦`Wëá%çº#ùüWå}ðyëûßòøÞsuŸ·&ò/5æ×žv/áÞèð»™Âr^r<R߇!ˆuÎÕÚÊuùw~±œ—ì@îÁû[Nìøô0Ô¯[5ÄÎÐÃÐ;䔿Ý÷,x‰•–|%æí¸B_2kMgãSq\ÏU’Oûs§¼>Þ/¸{²¬¯Gxöuìeîû¼Dý5Ž¥ä¸cÛ×džýßJ¿µù+xI[¬-9n÷s¼d¯$ôÅãÎM—ó’=Ô—ìiÇý ^RŒsas \W£‡-ëPöVó®YÎKŠ.ò³Óžä~v‚—œ ±·Lçüö:£FàTÝÜsá¼dï¡Yϰ§íÎ¥—ó•&©‡Áêˆu^R;yêggóëûÉÓe‰Ï™ÜŒi9/™:ÉaNÁ,îƒD=zÒ¸ì‡ý~vœ—ŒQÙ£çxã·E]‡’µM.h9/9^¬ÚïÐ=ÇÎKš(×Ô¡¨YÎKZ-3yÙÚíg³œ—œÖ`+ÕÕÝZªå¼d§©—Îñô»c]§ JíWkkªó’2ÙvõöEY*‘KSWÔãõ¼{¬•<ãêÀxíÔ"îœw¡öa=¼¤ÆO­°6œY®‡—œƒ¹Ôof/‹Ø—<¼äi[ÑË·åë:/)#õaϼå¼äè=qî$y ÃÇ€:ÀÓâÚñå¼Ä,Õ·ÔÖ9ÞwÞŒº ~øö%ÎKö¢H®aÊ}”ù¼UpÚScÎüÂ|ÞºñÙ<Ÿ_ËçM&½Ý¤ãìv­ê,gj‡Tƾï[9M"î<Öjalw.wûۮѠ+^ÁKJ3è@¤£Îg9/©ãÖ.>õ¨ûZÁKJá¹ÿ\×u^2ïoÖ¾5e€Ã¬à%è‘vòãŠsÓõù½A>ÿUÌzì¹)¾V—Û ô,³wÎp,þ¢ï¯0vÞ¹Óþƒó’ãPuÇ úVïXç%®§Œ%wD¿™ëç‘TÞõo;Öy‰Þ=¹Ÿ²ÝÎßæ¼dܽ«{ŽÎñ†?×í§ðúÓb-ö^¶{»Ï{}iÇÂýݯ8Æë¼¤vM㵎1Ôú1\W„÷,x‰Þµào)#îC ßл~þA_7ܱ®Wn•Ïä‚VmÇFÿ€Á÷bVåuÃãîôèwn†·c£_Ç,Дu¿Ç;ÖÏM×}Ž~tWèM³c½®c˜¡&Èš`.Zø)˜N²×…9nQÐéA\ìÖ¸ìX?ïÞ溎^E;¶(¨…)«0Öóîb¬}XèGuŽÕ=ç]ÌÞ;Öón-ì3la.Ú›wŸE\Ysû­ìØ7ï>MGÁŠ4<ÎKŽ(ZŸ¯ªô‹u^r>’` CÞ ç%u”û P~> ùûò’Ê>ær–"ƾ¼¤õ)8š`¤;ö·VàÃi§—$¯ûÎÛ±jï¬kÞ‡wÞŽ.çdª\S—ÔºÈ@®ã„ó–jKÎæ®Ý±>o}0çÝïеW>n·ïs¶ÆJ¾¡Vî1 ç\ûô1Ü÷±Î¹FMžÉ6/?Ò뜫$¯¿ñm¤¾X×ÍÅ1ÌÒcp>ù{pôç »áº®ç²¤É‘v•þœX×seÏ¢£Gìw¬…7 ›Ö«4ðÄFý[òOÝÏ>b—h7êåÎIÉ}œ—³göµ¯…±-¼N˜oîTiÞ÷!xÉJÞ¥û–_¾çmðïÛ`^¸zm÷óúiB_ì"xv‚—È$[YëÚ žØO_¢ôØ/W9û‰þo¥r íj§rbƒ—,j ÷òUïñ/‘Êœwõ¥÷xƒ—è"'ˆ&zb—Ø\x ·;±¡W.|~÷¾ªÝkIð’ý à³S:ž‡—”Ęz·û½^‚þ…ϳ®üm®3Ïz.>;òådZÇ@¬ûOꤗâ‘pÞs켤jªå:¤â¾gÎKŽ)dò|QÜç%{ƒ•±ž¿Õ¤Ééë²=±#øuL}\ˆêÄÎ` äžÇê¿Íón3žùìÅPp]Ï»wöCÝJ»½®w¬y¬¥ó€~µZ>±oÞ½“5z¸øJhq^¢«wÖã(÷ÎK´ÁkJÔ{pç%Ú&kt‹Vìi—èm\ûÔ óç%§ÿêf¾N¿±3Æ{×à27æ"ÎK”쪧݃+ߨ¹„µ0¨Þ±±ì5P[Ã;ov„½¼„¹´ó«þ´ô&ܱιäîÃôÏÓë›±ÍYÐ]cóýµ‰X×õI¯ÊýgÌÅò÷Mモ·…áÙq^re#Vƒ üÆJpÏsÿ1øœ9/9·’z‚>0oÎKN38ÁþµQ¼gÍó·ÚY¯7Xfmž¿ÍK€þôK"©ÎKö;ZØc ½wì N`¨yr˜ê¼¤Êâ>Jªp¼žwöˆí :Þ³7ïÞ{ÄIo[xvœ—tø ?ÚE0›ê¼¤e›i|Μ—ôïæá©×m[+}YKÁZí¼¤QÙo&­ÕÎKúÈ}ûŒïó’=ÞÆ>º-ý¶wÞN¡zò™ï;oïæ£cWÍÊÉ­ßy[¼¥ÞVŒ'vùו<>î>ŽGDðÆŽ«`ÕyÉÉÝkÚƒ¯{¼ÎKª&¦0N¿;¶;ïKgÍÃLôŽu>i}fÌŠëŸìÉÓ¡Þýv¬ë¹¬ÖÔçjÞùPu^²_Þ3mzó‡ê¼ÄfÒ¨jÇx}©×Ë‚/ë)fs÷ìϤ#6ü•‡$þ«ë¾ÎKö ô¤®·‡ëŽþÝ•~x­Þ56;Ö¿o{FgâÕ±ÎKè ðŒ¡Ý÷÷«ÇÇó³_ï÷ó¼ä.šzëÜ›` ¡/ÑtlÝ,¨NïK;ßÙÿ ãu^bc&Múè†Xï³²ï.Ç[nÿÔ뼤ÞgjÏ×›Õà%}¾cˆ ßÐ:ɘ´Ýìª:/9¯VMÌfâ·y]¾$o–Õo=×Q¸Gÿ Ö;™5̱ó’jºzÒú`r^²Ÿ·¤ÑåÎç«ó’£ä÷ØÀi«Ö8O쵃ÃTuÂhɯ¸_mN¬ë uëç}Ïœ—ìI¶bMïys^¢’|dO[{-q^rŠu©1lwOîSúü^·õ;çY¿Ÿ_ç%{Ÿšú ·‰gÝyÉi6Ïú øetñÄNÙĩÝaà¼dÞ‡Ïþl2's^2µW0•ö0ÎKö Þ°ßÑ^°×p^2xêkƒØé¿ ž³g¿¾°/q^2íî¿y|NSŽã¼älŒ'½KÓxcÞJöI_¯ÏÛH:ÇYÀ*ªó’#TEÞ}íåÞXç\ººÑS’{Úà%­°O…|Mo¾XßìÖ=Îêjð’Ùgã­äzÁKö¢ ­„ò\º~¼äö{4 “¿Íyɼ÷¯6Ÿ¿Íyɼó€§gŸõЗkÈÑ­BÛÑ>^2š1÷¿kVŽ+¸k kƒ¦ è*Úç÷:úèΞÆàß7±»6Êt€Ø¯Þ´‚Ÿ]gîo¬û—ôÛóä…¨•Û±½qsH¦¡ïK+Ð& ¼CÍõ%Çú‘}­ó·¹}Aسž!ÖyɾÇðÑ¬ßØýcé]ZÑ[tǺ^Ù*ùÎ8—nÎKNkFô?níö¨9ä.X…€s)ü˜NÛ¡è¢XK¬ƒÓ6ç%VñÛκ³8†ðŸ´»ç‘6aŽkÔÔ>©ðñÞ±ëßùÃó¹Á3Ù¾óîÏ™ÈM[sÂ鲦‹>m;¶y®w{¾½ ë:…q÷ÒùçÙÓÞkus^2úÝ#íø1•ÅØ7;îˆôu7Þ_ç%§‘sxœ—ì\¤ƒ¬Õñü:/ÙkTgß_øƒŸn©o¬,zɘñ™t^²7,†s‘?GûÎÛPxkž|³šó’ýA8ÇÙwï›ó’±$ù§Zá|Þõë§Ã£fÇú¼Éä¹Þù¯}us^r~¹F¹ÊN¬ÏÛþ?Ô,œë5ç%g¥¦ä×C%bsá™|<>cp^ÒkKuù¿½t"ÖyÉì–ú_èå?¹cý}kÙ7tÙå1zü+Þ÷x*}0N/QÄ:ŸÜÉsœ>ïü¢/™©ïŽÝ-÷N¬D­½Nz‚ë:/é…ý[vv|Õ€ìØ3o›ÐìÍÁgòá%çA¹{(>[W~7^ò˜ÌðÜI&¯ûð’Ó¼ç®Kz·£Ø—<¼ä$JÐ+ŸãQ~³^R“§Ã³uåzöð’Ó,V’^±=¼äl¢û ZWŽWÞØó_!V„÷AŸX·ßàsÜȽÜ|çíÒHªUæo{纠çÈ^±þÊ;o†í¯Ls,ï¼­VÛ¢æt2ö·ãYßË=ÌÃKÚÙŸñÙY,¾=¼äÅï<ë‰å÷øá%'©ê¬?^ çdíá%;Vï~(ÏýümúŸ·€8éÁmqOûð’v §Zpåüá%-ùŸØÑð}{xI;Pvåšx\÷á%Ç(¯Yã{Qp^ÒŽ¯;ß‹ýïûΛN[<›Iûj}çÍŽ8±MûΛíd ÏÃ>“úÎÛšª¸¾ãgüOYZkï€/àŽ}óî¤(ž³#ÏFì›w ëÜÓ^ÙyIû_lTèüƾyw“5“÷÷FÎKz»}ŸÚð’æ¼dÿæKÿûÜF>ëÎKv^§#yUr¼//Ùûº¨Sàs¼d,úD¿jĪó¨ÒX¢ÜË/ÉÛbÏæ-xÉÒ‰ûЭâ>8/ѯ©üŸ~Ì[‚—¬Âž!}ò9ûxIcoÖ0íXç%ª“þ¼;xI­¼¥ð{¼\Ï5îž„Ï'$A‚½ŽäkiƒûôÖÖJò{Å\8/9ùÆ0y–ßœ—” MÎùœßÞçkç|gð·5Ãyww^r tØï¶à9ë%ü•ïüâÙ ÆzÝb[÷ûv´Ø•±^GÕïsÞÖ‘pÜù[/QGukzwl×+Qg)à0W}Öœë®;øÇ~<;w¬ŸÞ< ÿ.2ß9Ùä·p¼y@/¨:%³ÆëzþVkÁçH×Ï 9¢t>¿ã·‚½çÑAWè˜úð~û@O’¾xWø”ÑÇE™÷Y<6a«Ào¬÷7Écg«¸³…>UÓu'ö;ó«æY¾vhCûŒ¾}ÙÛ¢AgÞç ýCÍ=Ú9ñ'–úî,ã=ó>+¥°>K{Ï>Ý7táìö0<îû\_2­Ò¯XtxÝõ%Sr_˜´Nº¾dÎÁïÛÎ[x]?­ç¾¿Œu½rê˜öSе$ô%5éφòyˆzœ[Äöjʸ–D=ŽIþ©ƒcpÿ’½Ó¤®¢âl¦»¾d ¥f¯Ã—jdžßká7«+xIw}ÉéñÇúr˜~¯kôüÛpÂïÕ*kVÒÙb÷zœ>½<ÊwìÏYI^×8ßì_œ™øúsìî÷Úχ“×]¼îç?Iç¾øÝŒþ8VYçóÑÍßX¯™t6ð;j??G/©9Ï,{ôîÂûjzônÿÒK÷,ú ×’ô“Â÷ÂûãÔ•4œ#í¼?NÝ ½$r^×ó7µôΓ÷õè',‹sÜÅøÛ"kɯ¸AÿÛíÓs%¿xA}wþ8³–Ô߉ïEôÇÚ“Ž‰ëä×gð̧üÍÉÞXÏßF§×ui•×_,j¶§07ýüKƽöÙÏ×~ó7V"7Õ™êÆõ8w­ÆÑG)ónç%uŽ†Ú³’r†󶨳ip ÃyI•™¼ ÑOøÔŒù3Ù;¼£ ΟXŸ7«ÄÂ\o/Y¨k>[•ÂØñùÃpïIÍÓ(Ñ¿»vø9ÖšbÝw¦5gòWîôûõëiooŒµðüVöήéº+ülzWMÖ´ ç%í¨ÀpÝtœ—4Ãwè”Ïq¼õó3Ÿˆ]iŽ—tÔ¡ü÷ÁŒõï[ÓÚ™_¤ëú÷m@ßw¶|~—ì=h…'TTÚÿ‰:áÂ^êaþ'6|Õnïÿž6 )6ü•õÞ?̼>ŒöíKzÊý9Ç­FO¬ Ï-­¼-úöÙíõw´>i Þ·o"П¯|ó7vø^^¹7ØŽu½²ŠkiùL¶ðÃ/ëéËûÛ¼@×êÊ|r4ÏN!6¿ÐúŒæy@SÍþ÷Þhôè·¸&µ3Ì[F< $]Ï7GŸ§Úzª-©ˆõ< ó³6“>"Ça]GcÚè3r'Iu(ØŸ}ìèƒw\£<Ó‘ör8Ýóî:˜›mŒõ¼»UzLr£1<ïnI¿>'ö;cxÞݳg½ ¯ywòᔊè1ÂÏ<õ±9çˆÿ?N èɽcç瓾˜Ks.†×(Ù÷÷whÄruκëó6kòZMÏÎÇKçM'ö}ãã%ÊëÁKZî7󤼤v®Qº U/é쇢è}¹cƒ—tæÝŠþ;6xIŽm|Öƒ—hÊ •žqãã%é™]ÃÇKDKzÖ1oÁKr_#ŸùŽ ^’ßcædãã%I/7uð>/ÌM窃F?Kæ…S”±ßî´öM®}¿ýq˜ëMj…ÇÇK’o}w¬ïKr_˜I¦;>^’òÍÉþ¼DsœÂµïã%K’ï-´#xIoÌcÃ@þOlð!ÓÝî¯ó’^jêÔQ??>^ÒZ¿ó/I^Ì~™:>^2[ªw‚F`/É?j¦µúã%²Ò³]ÐøxIZ£æ«ù[bƒ³C‹2>^’zMòÉñËKrOnîÏ~yIO~bƒ¿-xIMµ\ þ0ãã%ƒß€oGñÅ/Æw¾ ¿/šêù}¼$q˜šæøë³¸×(Âß¼¤ßÞ¥{n)ç ^ÒWÅ9dÕ¼^Sö3È5ÆÇKÀl4kFð’¡½Ó'!æ­5xÉ æÇ3xÉD­ç±¤ìŒ­ÁV˜6xïž’è­°÷ú5ï?ú¼Yk8ûªy Á'{–*½ofð’Ò&¸Æhi¼ï<ùCEo¥뼤͎zÞK{ðÆFßuøh‰¢0v}¬˜¦ýbƒ—jÁ¯ð`¬¯“* µ“:›é¼d/ ãUžûÏà%eL¥Ï4Ÿ³à%u)~Û÷ºýÆÆ÷­/ÌqeÞ=ƒ— ô»í?!,ýëß7?;6F)Öy‰jKŒôÛ‚—T<æ³¼¤Ïn-Ç/A}÷©íãx?^Ò'kH¹–Ìà%CÙG76bƒ—Tê@¤¦ë/[ÑÌ'gðÓïR©é·/)^y ÁK°7²Ÿ™Þ¡— zÙ62ÒùñíˆýÊß~c=‹>{¥"o™/Iµ…5óã%…yì^£ ±/a[µq ÁK*ûjÄäOì//áwÞ°Gœ¿¼ÄÒÙ ÎßæÇK²&G•÷!xIK>ô{ûùñ’Ü'S¡™/<žg·óã%Ù—ur.>^’|F&=žçÇK$õÊè…× ^²èO ÔÓÎà%™áÉꃡgç©¥Flð’Ô×HÑ|Ç®÷´;÷Çuy Ï|gþòæ"Æ=øœÿ_Îe¬Ÿ/iÜ{š@§0õ%ô¶°ôúI¾¡†=íüô%ʼÅè»8—Ì¥ÌER­Æ ^bšîƒ¥ë®è #é·A32?}I¯%Ý/Í} Álæ§/IŒéxí"Ö÷“Ý,k´ðœ}ú’VW6Æú~²ˆ¦¾FÈ¥ç§/Ig©Â ^¢c&=×â}øÎM™ÏËäuƒ—ŒN%“ߨO_R¸'Qy]Ϫð+<›™ÁKJ£W°d~ú’Âz^aýñ ^²¿ä%:ùÛ$ôl`6óã%…üwУq/™>È£(Ç»B+‘4Zú¾ùñ’´?k“ûà%=1¼jCð’ž4{{·ƒç÷ã%}$bœ©Í—ôÑè©Ã½ýÇK=u4í׃—tœ±êÏâYèüõ{­Èª0gøx rSùÔŽÏ—àyx[ù]±òñh´Nÿ–ÊØà%ƒÚü¾Òu?^rû’tÝ—(5Þ¥06Þ·ÞÀ*’D>^‚yk?ƒÚùx‰ýâgºnð’5SÝxúm¡/©ÔÿÊJcˆurÒ“}¶I…ó[©Öžãýô%9C_)6x‰RO+Ì åÓ—ÔËþ-òéK$ÕÚ÷4†Ð—T2›§þÆ~ú’…9îù>|úzf|vx¿±¡/™ì5°È£ÄyÉþÇMX£ÀûðéKnŸÞÃû¨ý’—Ü>.'Ö8†_}É*ÔhñÙùô%6µ_éºÎKû³ù3óugœ© z㦺/q^²³ ö…äg¼¤VCM¡7–/isëq8ÇÁKúíƒü_},)ïØà%=óìGéã"ÁK¤°Îg¤û¼ä¸ˆà;´øÛ>^’ôÊ…u¼d®µTÆÎÐñ3߬ôŠþåo<ßlÕ«‘¦¾šÆëywI·ÒP /Y©‚A{ ÁK¾*ñ?lEûÕu$]ñ¹¿/I‹Îåã%©ÏöÞÂvÄŽ`\«¥Á×G‚—ÌÔ Udr¼ÁKÏ!¿Nh¿±ÁKFIä›òñå7Kg·òñ’ô}³¾#ÁKfKùq‡n[>^b%åè…×ykär+݇—HϽSðÛ‚—ôš¼@™‹È§/i麳1öÓ—p_½´ó>|úÏS©8³”?úzÔ°?™üÖã°æjÑçI>}IÊÉ–q}øô%3Ç"—–ßzêûëPäã%I¿¾&X|ú’–ÇÀ÷íã%J Õ8Ç¿úê×ìümQ#|7÷s†9þx‰±öl±E>}IO¼~WòéKzæ}‹±ÁK„z¹U¸þ/ѤU³Åyûô%ßS®ÕŸ¾D—ÎÛÇK”¼Ú$݇à%¹'wçZýñ’NÍSê«!/±ÄĨ“O_ÒY³¢Šóùx‰ñü"õ«“—$/qUÞ‡O_RÆø?êåã%3éå:t òñ’Ô;[‹2öã%‰ñÓ¿D>^’´(Ò*Ç~ ‰áMÛ–—®;©£|¼¤Sï9*ŸÉà%=í£zçwóã%‰A· n/ÁKöÞˆúöFà%MÉH ë!%x ×Ô•Ï,%xÉyØïØÒ™/ièUôøp2Öç­ãœLzƒ‡é8çÔñKð’QÙ³)}±Z>]Фç!s= ^2'û;…8ðO¬Ï›tÖ€LÖ>hðm¥R§ Œõy³ÎZûÞÒoóy[ƒëCb+¼¤÷£¦ûàëä1ÀsF¦ Ÿ¾¤7äz•þ¼dHA¯Œ¡Œ ^2WÿK Óúhö\äX_'÷&$­“)öÓ—Ôã´–b?}Él|RlèKFGÞ-ùºÁK sÞK·òƆ¾dðÐX#¦/É5™3ņ¾d¤¾d6úéK4õrмdüKÏ]Æ/IýÔ ©~¼d°ö,ùúè§/±ŠE͈~¼$yEŒžÆõ8sAS[º¡/YVXÈwóã%½äËÊØà%s¡Þißã—`ß÷/l[yɽOÝÏdK× ^‚úîã…Äõ,x‰õ¶RømÑ_^ÂØ58/©š ^2{>ûšŒ ^2S_Oîaôã%:²E¼Dɘ$_W¿ØTý¯/ùõÿ0äÇúñ%?3®B?^Òy¾i¬…Ñ_^²R[øáéÇK2'PŽ÷——°ßL)Æñ†¾Ä¤’ñƒÙè§/YÊþ¼Æçìã%eð{A¦ Ÿ¾äö3úîðÝüô%SpPc§òúá9Ãg+ñÅ~ú’ÆÞ4•=ÇôW_²$ý6ClèK¤t^üWƒ—Te´Ê¾úéKÀ]láuãû&¼n¡FK?} Þ‹ó“ÎKN+3² ]ƒ†'IâF®¼D&÷“‹=lõÓ—tÖ“}ʦ/6xIÏ>ÞÆñ/i©¶ÄLLƒ—á7ÀÆdlø)´Ô³‰Z@ ^be$¾f®ÁKÄÚÿÅa4xÉÔäó$ð7Òà%CÉðfz烗ŒB=×X‹cXÁ5’]å^#xÉþ^ÐS§¥Øèß=¨Ëlì¡/Iç •ž[úñ’T˜úIèÇKŠb?9÷ž/©÷º¾÷´} û|Ï‚—(½KšãO_Òg¡–Š×ýô%vsûééy^ÒQ¯w4Ö ^2¬§ZÏÁØçYÜ?Tj©ìÓ— ×aÿ)ä´¼dÕ.W©»²O_¢cPg“~›ç;yïôË4ÆZ0ö«[Ƶ$xɯäǕɣ,x‰”O¨ÚcëW7¶½Ò\/1œèÏ´t]Ï<;í§R'fÎK¤ÜýŽç™®/ù:Ùýöæ÷Í‚—´Æ³º2P»cÁKzáþl§o ±>œ}I!/icòº¡/Y^b©Ï`»²—ô¼öñ=þxIêq}Õ®¿±ÁK’oè"×°?¼„Ƹ'øxI§G5>/™ÔúhzÖ?^’ÎÆÅÒuíóíHþÕ|Öƒ—dmÇ,à¿öñ’N}Iòƒ¶à%5Õþæu'xI’|dQkdÁKjO^ì¡hÁKvÆ‹zœ•òùà%§ÈæÞ{µã¼¤Î±¨ñæoKØÿ­çXµäîO¶~º¤X‹5JØS¨Oþ6_'á¿óôaB>´>}É`$›¼¿ÁKÄzm••bC_Ò ½¶ò¼9/i§‰Ì›rÈõéKn½ÑiÑÓo } xIË^Áëó/Aàóm©Œ }É}>ÿOÍÞ!ëó/ÉsAޏ~ý^ 8LgO¡õñ’y÷Ã^Yë³þÔãèÍÚ™ÍúxÉíyøOÿ·ë/)< ]96x‰tò_K±/á7¶ã}^2Sÿ¡t¿zœeØIM× ^]ñimõäã%6Xïĵzýòƒžô¥Z/iä0ž:ë——Xe ß¡—ÀG@~„5™ëã%8 ÕŸÙRlð’yŸwÛOOëúÇKR¬Q“³>^/™u|}V’Naç¦÷~r}¼ÄXSñ}ù¿ØñéØW£±¦x}¼${Ùò|~/É{¹ä{»>^¢3õ@­òúx‰‘ULÖ¯à%š¼o„Úü¼D uæÂ3áõñ’T÷u¼Œëó¦U’êfVð-šÎc‘¬—ôtKN°‚—HMçÇ2yÝà\£&V=íúå%±ÊûûñkÌc;ò‹õñôyòM^÷ã%‹üañYÿ­ÇéÌç;ß¡O_‚^íôˆ`lèK”ÁZ¹õñ’i©º õñx`¶ã»ˆ9þô%ІžUÈqÖ§/±¤ËLóö«/¡Æeï¬O_2òo—[ÁKduŽ!=ë/©ärCá…´>}ÉLÌf¯ë¼¤*Ÿõ1¹–8/Ù{˜Zÿ—óÍ7¶ÆÞ(]÷ïùÐú’¢x~½Vð’ßfÇ_lÎf/ÙoÛJ±üm3ìØðéM^tô2ØêÑÏGñÎóÌ}ÿñã%Œ2Slð’»~èô)–t‚—ܾ·ÿZÖS¦š†–ýVpÝà%²R]]¹½Kw¬çÝ:¨íèð`Û±>oGqC¹ÎëŽ/¶$­0[ðËþ}w ÈQ?{lòOÕj¼®Ï› ûT|¶¿±>o6R ?jÁw¬Ï[îK»†a¼ÁKTY£K/ºëó¦MRÊ}Ö¼cƒs¡õ“·ày^2ÑCüÑU ÄF4píIÓï›ñ̽‹ò>Ÿ4îF½ÏÆwlÔ¿ÍÞÀsæ¼D j¶[òßÙ±¡/1ú>á{pºçÆ:In$Õ0^ùêé/'ùº¡/Q2AØŽýí'ÌØôœ}¼d1ß”Ñp~õ%le¢ŽjÇ~~¯¼g‚~ã;VÿõÛ}bçdlèKÀ=Ïu•÷ì«Çam”@¿cåÓ—Ô4†¾ðì|ú’Ä*>7½ßØà%F½‘ÔÅ1/121)\«?} <}O;xåuƒ—,^wÎyûêqà©ÞŽcƒ— Öë¹0/ÑÄåêÄõñ’ÄÏØÛùˆ?â<–×íE1o/Qò¾ÏÙå7öã%dÅ­ò9ûx‰¥¼É5õã%}¥úB>;ÁKÆJujðA>Uó¡áq5~/‚—4cÁëdÇFÞ{ÅÕ‰oáÇKªe¶‚ñ/)i_2çøã%Õr_pÌ…ó’²”šÞ†ó€Û=vÒùfˆØá±CXß]™;9/) 5b§žû>ç%û}lò1xIÁÚ'?-탗”Á>º+åë›·T€3ÖóõKa?æ…5xI“™j« cç5¯úÓÈ@jð’q{RÿS“ÆŽQ§VëµÒ8†ð ª·öþëo¬„çìÅ×ȱ>oK¯š«£EaŽSƒ—ÔÛcÿäó#Ý3_'´=bƒ—ì—ÚÊØÐ—€—\yë¼Dï5õäÇ–ÆúhræÏà³^?}I3IJŽjdž?×­™~®Ë¹øô%`óçk™÷ûéK®3Ÿ3†–ÆðéKã­Âyûô%7ïÛÿˆýšÏ¶*Î|î1|¼d26­gõ—— ¾oÏäÇKÖÍåžšWÆê¿ö‡<|g¤ë/™õC¬•Û±ÁK*k>ùäwÝ—ÈÿÚ7õ ^²¸ŸLL¡:/9TêaŸõ—À·ãy­¼9Ãü)Æçáã%¨G—ŸJŽXƒ—ŒÑØ©§Xý|;ðݬéù ^"8oY?•̦~¼d®Ü3úÞïÔà%:Fò[¹Ïvl|ž¹]È»kð«ìEÒÖÝ#bÇú¼™°¶¤/0…¼ä׈åOEŽ×çÍ”õCR”×õy[©7ÍÎqb5Æ@v¥¢üm>o{K›êò Çàó¶’6ÿSA}±ÁK¾N4ê[no–¼DÒÞž{åúñ’ɧWäN5x‰Ô;9ÇÁKjµ”óV<;ó×/ˆ{.h±w¬ÄZ"i&VÿäëBðËÑeÇú:¹`Ì…5áxÃçIZçnýƒÕà% ~ÅíôUÆ/)‰m~Ά¿±#Î ùL s½ê¼¤šxŸt<ÁKÚdÝ×X×ýtæ‰ev®ÎKêJ쪛`Þœ—TrÏ ³¿üúÝ’ >õI—¸F ^ÒûJ~Là\5xICoãmÌuݾºŽäù=øn/)¹Ÿ;yIµÈ»5÷ÃæZâ¼ä˜¥ZZ0ê¼dOñL¾¬÷lyìà™D]cp^R¬ñº%­%ÎKöujaò>*x‰ öÑ5á1x‰A÷*GJÈØà%` ó®‡|cƒ—LÖ¡,Iã }I绩)7ýô%-õÙî«¿zœRÙW#1…Ï¿¤ä› µ%'w O_ê*„Œöù—Ü~6ÿ<¬˜±á_¢gù µ%ÇÒY…Üõ"§&¨1v|¬ylYi¼3zø`”üÛb\¹4k˜v¬¯“C¯½ç?ò#y¼áót3è;Vºg+ja. ý?'᜗ôRïÚ=VŒïÛÝ×ó\w¤X?øT¹¿×ͱ_½éBl«œãà%z¯%çºù·9/Yw]ÝŽ-%]÷w_2q;ï¯ó’ÑìZ£Ž/Š¥ßç8·§ï?3õŒÞ±~Ž#·ÏéyßÐ7ÊZð’ýÉ"çZüm-ö“·žàY^øü:/Ù{ó ^2-¡‡¶YP•Ÿuç%sÜýÿy˜9cççõ®Ñóo“¯×˺Ç[¨/iÁKÖ$L ¤µ87Ìõòsæ¼D¾løwEnÔzôYiÜYº¿=ü'Áâ†ä3¼db¯1ó7«/\W2OmÁK´ÜúMž/;6t ðt°麞wÛœ8gPK¿M#Ggîÿe±'hÁKVaO‹Ï­ð76òní©îëö9Ã'VK:ó ¤/Ù‰ëö´-xÉJýX;¶ÇuyΠûõæ¼dÇQãò}cßyÓZ¨EY]ùÛįÛjKÞ ±÷ŒÞU&[èK};Ú¨oèKFŸÿ‹Žô‰ ^Rõßnô7¶F'êÖW”ùÅFý›’),øîØèGÕùίµëä];ù_¬go쌚Á ¸Ë·ù ®Ü¯k|/œ—Œ…ßÖÇëß·sòØ^ñ¬;/9M…ãEnÚœ—ìú])¯ë¼dTᾺ–†ys^Ò×ô—k)¶‡ŽTxÐKýpƒ¨¹óîãÏÕyÝO÷Z8¹Ss^Ò¿7æï³ƒy ^Rš‘ï ®Q>Ég5>¿}V¹†QãÒ4Îß?;^ˆ  ô 9¼Ï™~¾¡¼®ôÅ1|>Ô¢ÌFÚt|ž‡Œ¥°iÔuèHÚÃ¥Q×Q+µîeñº¡S˜=yõ€ï´à%5k0*¿-ÁKʤè²»ÇÉ1BÜt¥zHäþÍ"ïN}iÙƒyǶÿ_>¿ï.æØyIÑÄ×GWŽÁónmìÁÑÌð<8/Ùÿ[Šˆ•¸nƒÛJ{£à% _aûùþëßX‹ë.0…µRìŠû`𵜬¿h/©³þ/þˆolÌÛ"OÕ´_ÿô%ƒg3IÛÜþÔãpí܃þ%³ÀŸ ¥}ßç÷Ú½$݇OTà½`)?^2ý ª¥û`áL]|K¹Sð»÷©;V™¿uç%Ì)"‡\ümÝyÉÎ}òî¤ièÎK=(ôǨ'èÎKÎ"£ð#]éº#¼8îû>;=x‰ÝkÉ?ë§’Ùôòù<)±-ê»oŸÈSkÄ<¶/ùM²¿u‡<ª/Ywï÷ããBMYoŸN¡p.à‘»c¿ºŽ»Î]~¬¦ØÐ)¥®·Ð)XªU^)öóŸdorášÚÛç§PñRMs~ ð€Ÿ·Oï¼Äý@µI=xÉÒ{¿¾ß!êVºó’›VÔ…µ‹ÝyÉi`œüSo/ºy·1¶5ì{¼{п7ð‡î¼Dë`ñaÂ1xÞ ¯žGÿÝkw^²¯›4 gîÝyÉþm¬»¥ÜùXúuomö&cë¿áh°—ëÎKÔhIÛŒû;bÞ°ç:ûuáx¿¾´ yaIsú’Šú–“›vþ6Ï»©Ó=õ›i¼þžì‰µ*cC§`‚:µ6·ôëä˜ÃNéð<8/™¬îG‚ûà¼dï cè ;Öó-¬ Ò>yÖ—_°¾¥qÞ4êò…žf³BoÔõóŸìä­®á§`¹ü¬kÔˆ&¯U®;ÎKöÏû[ xTw^RTøÍ2á:鼤Hê׬­ð>xÞ}šƒ%¦€ys^R¦Ñ£|T®%ÎKÊL½’[GME^2;µE¹¦/™`Lë§R§Ûƒ—L¡N!çÁK&ülv¾™öFÁK¾®l¿µÊ–bƒ—(ë¨VÊß>^¢ìS<©WîÁKL çþôܱ|ý:¨ß1ê¹F ÿIíì ÓSlèÌ+ÏÜ•,s´ðSPîûR>?‚—Pÿ;î^$oläݨ¥÷žë‘Ç ê —¤ëFÞ _5˼z´È»á+±~´rŽ—hSÖÔÂ÷Øy‰öJNÐÒÚç¼D[òí šôá¼DáÓûè {ÁKzêm'*¼nÿ®Ëó¡Åõ,xIöšý”Ñ¿±>oûÅK=*±>oÝxnZWãx}Þú­7z|p>?‚—´™=Óâ}›)ÏJ߀¨Ça]óÉ瑎ЗTåu{GŽ3ÆWG•òy»}ówlô¶…w~†ëd-Ã0Þ3ç%sTö®Ú‰8Ç+ÑcŠœ`˜Í^RTØû}Þ3‹oÖÄuÓùñ¡S@ýE0Î;C§úr‰ñ;C§Ð÷W¹Þ˜¡ShÌ»…ùü˜¡Shì»>á{{zl~ç"Œe½È˜QoÚÈD¹7šqŽ3ÉfåZ2£_G«`+cއнÂ?êÔ¦ß>ôÆoK¯à“ÃyI«J¶Ý:øÃ^RàtxçØyÉ9žg,ë†|yë뾆ó’½!dÍÕçêúë禽ÒÃõòU{c£ïj'®"݇¨0žþ0$ꌼ¤E _lœwäʳüἤȠþáòýzc#ïVöÚÚ~¬;ÎKʰÆ^$‹Ïoð’½ eME]¼®çÝ]Ùö7Þ³à%£¥>mÔ]à%}ò[*sœà%]S¿º´÷ ^ÒÏØuÇú¼ÁÇð¿O)#bƒ—Œäż:÷g/úh%½ý^¢å>=ï÷©ÁKÄn‚ÓK'w|õ"ô2H{û¯§Ö®³Î}„ÉÎp¡3oùºŸIGÞò¥…¿±ÑOøÖúœóù™îoðÉÅœlð|s/ÑQ›–Æow𒥓ùæâ{켤Uè jöÎKZ¯•¹´@ó4VÔ¿µÅ¾%Êu'xÉþ˜áyèsñºá¤ôâèkr¼~pL3À®à½c-´€‹±}q¼¡S(V1ê¥g ‚ žYÎ:éÂXèϦó’\ktê^§ó’qŒÒ}ˆ~…÷¬-ø~Í~æ¶0o=óvlôë¸ë„O,ó–YÂOáÖA?Ï/·f‰ó·ÛOáa+•¿-ü´ƒá¥é¼dÚÍSF€õ³†^Y+ëqè2—ÈG²¿ug²þbÖè€Z˜·Å0b£ïC¡7¬ÔôÛ¢>ëÃÙk¤ßöùÞ5+§æ ëú ^²„åì'¼c=Ûö^i žwWô’ì©'ÖI2#‡\“>Dœ ç%úuçøÓ…cp^ò§ÅÇjº®çÝ:…õ£Zëy÷€¿Ñá´¨kžÁKöÍCl:ßœÁKŽÐœ:ìKfð’9Ù³”=Vw¬ÏÛ~ù©=(“cðyJÿ’Õ°ŸÁKv2-ÔÞ¢>`/Ùï|ê'!¼nÌÛJ¾‹yìŒz|‡ž³f|ßfÔãÌÎ\oHçxý}ûÔòît¢_‡¤\9ÃìQGeÔºk…¾d:/™ ðËgö¯tò3GïK›#t ³ñÝD›[ƒ)TädûyÀ39B§`ã]d6s|:…ÉzÞÚxÝÐ)$Ÿ²ÒQ1Gè MzŽÙ0ÎKú‚wÿ©)FÞ2Gøbw2›Õ±7šÎKú‹ºânŒ]Ñtñþ¢/âß9'¬}0ôYÙ±õóܳ®‹ÏŽó’uóÙQM×íŸï"YPåºã¼äho%½C¼®çk°e°îk:/9gb‹åuC¯Œ•‡UT^×þµûá|vfô¨–Îyá ;%| +=rÓYþ”¯.ŸõYZàƒ<%ò7ëô„j…±‘¿¥z‘Aoãé¼dO0};zLíØÈ»+ûÖNç%%³í³ Öóî6’o³ð»¼¤.j>'ÜßXÏ»k#3oƹ^Rñ½¨ç× ^RáñagÄþ!xIŹ¿îõ¡3Öç­Ú­‡9ŸëóÖ&5e•uØ3xI©kÚË/…äNû¼dÜã=úß’Æëó&7ïûçY£œ uùóg¤ñ/9Ù/ööd 3üKÊ݃îŸÓ3/ÅF_ÚuçëÇVŠ ÿÉ–ÎÆÑç긅ßJg]ÙÕ ^¢·‡öË\/xÉê<ËïËxÝè×!ÌMÇ‚Na:/i]9Þ9™ëÙúWOS»^뼤b€Xåos^ÒKçý•í¹B§p÷¥=}=ßù:…Ês¨»k|}Á9^ô`Þ±¡SPA¬–Îñ†NaÉ`½áB§°FòH÷ÁÂ#!·§Ø{9^w¿â÷7Vœ—ìUÁ£¾Læ76ö“ÆØÞ±VK ?óE_”Nßq)Q'<9Ç­.Ž7údÖÕ¨[Á·EJøªaÞVö9•"Ÿš j¿¤D߇¡ÐJ¨¥ë†!øÎüú#Jùê»g¡Ï)¾CR£.¿ÐsV©—“:ó–´ôSç%ûåjuTЪ‰ó’£³ßAÒ`H¼»¥Ú_öëy÷Í@þû¦øˆ¼{TÔ®ëâ¼dï‹+<R=™/QôQ8¿ Þ¼D;c+=Â$x‰*ÏPºa”à%:é5<Õ%x‰5 "¨y•à%ÚX㘼è$x‰(=Â’æ_‚—üŠýžg Æú¼Yò4…ï|ð5ÖïÔŽ÷ÁbŽ©áT©Œ]ŸgÏn'ïïWSMÈ °—¨Ç™¨Þ¹^EÞ"á_ÒÏò~ñ¼¤a g‹ ¦+_?áÚ™wËäBÏuŸ·½=ÅyÉΞ³•ù¦/ië~7Ÿ’zþ6‹š ÖQ¥ºqq^²_ ô½å³ã¼äèûx]á³3Â_y4œëuz$H𒲸·ïVÛ£ŸÄl¼œ‹~ ÐséBúmá§Ðæ¢ ãuÃOûÏ1<ïƒ~=åñœÕ<†èû°øœUê×e„NA¨•X†¾%2£NxѯbŸ³ço•Ï6ù^8/Ù¯¡5êVp–$3òmI¿3;‚),|ßöÄû¼¤Ž:¨äf†a+ôâ` ˆÌ¨ËO~¤Ë83ê&{ Y5þ6Ïߺ±Çþ+1ç%¥­|&3* ^²ÿYµ¼¤&ŸœÒÁ5$xIiì'a"Ù·ýP-IßMúÎÈÃKN,üSÏ™%xª<¼ä<¬‹õ5=¿/yb'ü^tòð’ œþLê2åá%g¼kÑO\C‚—h-{öØ——Ü5ügÚb ^RÒY~ê™'ÁKz3žZ£tÝ\£ ºÓÏ\>}IY8SSÖwËWÓ kÁéi&ÁKÌx~Ìþ¼;6üK*ÏX;}ˆ$üKš¤óyê%ü^÷ÛÅ\¯,ÆÖÐ4ôÊú ^b‹ýŸî8/9š0…ãÿØüa ?^•k”ó’ÃKžXôžÌ»×€×µXèn¿«ž]Ì›…NA…uîôq 廨‰-8Ç‘:…ÒP»“ÎÑe…~rÜu(푎!6t “=‘Cè´.Þ3ÎÅŠ¾}VÙ¶¬èûp×à±ÏÊ+QÏ@¶rÕû¿±¾Ÿœð=5Û÷,Îßúœä|~—Ìe‚ëî<ëþ«ó’½g²¤iŒ­±·7ò¾]–ð1l|7+{jùú-¼o…" ^²DP5è‘«%êò{¥g'ë´„ÎüÖÞî´ú`lœw ½l'ëfÔy‰£Ö§jCäÝ­¤^fø¶hðì{ÖǼÄlÔ´ÿel‹ØŠšŠÄl4xɺû ÿ×öö®3vD,û£×ŠZOu^rš,ö³Ô¡ßÙ¢&¿ ^7ê»…uÒ;ïYœ›*kVö\à=žQ—?éŸú§t8b=ëB–Y¬ðºž¿õÖéÛL ²ÎÈ»Á¶OßT¾C3òîY¹®·tzÞýeÿßnöÒéy·êJþ;Â1xÞóØÿ>{OŽÁónQ%‹Oëïô¼[¿›‰áéÃKNì­~ê!ÁŠõá%ý1ʳ{ÿ`ôŒÓ‡—ç%ý ÏóËo‹EèAÍÉØ80¾3í•—ŒRéÒY‡¢ÎKF›dzOµèß]‡q¼Ü#ZøbßµëÏ=c~á¼dQÜß6¡GÔºWx¶G&‰XßONY¸•µÊºÂÏ|Ð?õØÖ Öóî²rÓEÞ§+| •—Ä*ÔyÉÎ:YÛŒýê„zÑøÛ¢> ¯¤×às¶¢>`ŽÄ2¹'p^¢ìÇZ%Ï}ÏÌyÉþFÞŒÔnÏúöÄÖФøJkĬDÞú¼¦Þæ¼d?›¬ÇQÆÏ QS±r¯ +‘w/ö-Áóî6 ûõÉï›9/±†Ú¹=(ÞØwÞ 5§÷™‚9/9Æx“g¨ µywòsìŠçÁœ—#z!ñÇœ—ÓJc=¾-æ¼ä˜å¦š•Î1ø¼µ–|¿xŽcÁKöŽ{ÄYãXð’YØËA+ò ^2Z!S ×Ÿ9/9•rôG㢮CŒ9ÎÀ¾ÚB_ÒÔC¶Åûú’Òx~<õ þ%6©ØëÇàëä¼ûlÿ÷ù x>¿WôŸ=Æ:W^‹u·fé·EŸLð¨qÎ8ÞàÊw_åÿÎÃÚ*bC§p×´XÚZèºÁ›¥Q·mÎKNËsÄÖmõÐ)ܬø\w cC§0kçx+ÆÛÃOaNŽw`h=üÇÎ㽋û뼤³–àŒÏCzÓ2qËL÷Ìu û³ ³˜û[Ýk%'H5ñ漤è˜Üû;¢NX„l…ž‡6¢ÿÛ`ì¨1ç%RÛA}ªð¡ŸšÖì5l|ýZOÌ÷wÌÏ›µ%Öy¢._-y|tŽ!êJ¡{Yð’2õ Ú$žw›¥> µdFÞm©_ÇÓµéy÷TzP¤Ú>›žwÊ^³Íø½˜žw›éûbÁKú Ÿ£²wŠ/É5“}*,xÉÎXSÁ:* ^ÒÐObýÌ´/ ^Òàsª?…½Ì,xÉ”Üá Å‚—ŒÆž°…g3¼„gÍvk;ú¼¤Tø¤×É}Tð’yûéM/ý ìã%·‡Êñ2HûÔ¨Ç)cVÖ‚sýýêqŒþ‰1™|>ôÐþkÁKDx~¬ur ÑßT¨3_ 9¤…ßkYylíÈ,ü^Q óøÐsí ¿×9n½r{Ê}2« /<’vÄFýÛíA|j¶Éaìë'Œþ÷ĺý„ep Æ^[ý„ÎÜŸ^ÔX£œ—ô&†?*¯+QÔyŽ>+›F­‘"÷_kñºöõ ­Ì ç"ú¬,A¾ÙXW·Âï>D;¶“U¬öùÎÜÜhnßýqô®¹:¾¬ùº^ÿ6îo÷ñ3gÿ€ý„ë]ƒ÷xŸ#7]-ú-æóªÐ,ç%;ŒåùñjѺ ÇËú‹å¼¤¸ÜŽ5h-W Ÿ§ÔS~2ÇYÎKz…ïÁ¹.jøW¾w¯­3o†|hõðSh ãä0«‡îU{Ï;‚)ÄVæó«‡NÁž³FoÍÕC§0©ÉY†ïÛr^²s@!k£ÆeõèÛ§¬±9¯6b£ÀdÛ“ïÛˆú›Ô&Ñp¯.¿6Ö;qMž¿aÏõø`ðžÈßîºÛÇçtòºž¿ÍJoØ>pžµ†çÝ}Ñß³Øà}ˆ¼{‘Wkçó;<ï.ðS8º6¾ãÍ»ÏF-yúò™t^r^þEbþ6ç%'‰¢×u…{9/9@qÑÓûÉå¼ä$;ɧ÷ÁyÉ9¨7ú9"ï^ÎKN¢LFªÜ—8/Ùû4zNÖ›.ç%g'Ç>mìe¶‚—Ô[»xüÌgº®ó’Ú´·!ªÿ¼dtú™Ó{lýêKè90:Ÿà%6éó?™K¯¨Ç)÷>êÑxsõ8­ŽÆ3Vî5¿dÜœëä- þÊ+xÉÀbžÅoaðôþ9±{ÏèÓµù§b-Û+ú k¥»wî«—ôrkO,5pKã< *¼ûGSŽa†“b¼} eiô£*>{;kÇ¥úy4â· z. ?…¹0†Á\ziø)({(6zš- ‚NŽ·cC§ ×-|}Yô[¼ÏE‡1œû/‹~‹8ïnçÝÄo³ðUdAFÿße¡W®ìc3ÉÁ—ó’ê 5.¬Ù^>ôl¥ó ?¼I­O>“öÕP+a“kŸó’½ª“½*=î–ó’Ó°˜£ÆgÝyÉi’KXço[‘¿%mG¡Fk9/9Æ+ø-ö¨\ÎKŒuj9c=ï^ø^ì|ˆÌ|9/ùSôÛ+9]×<=ÏT¦ñ¾ó¶Z›Ð?ÄÆ*bÏé±½ÒzÝzðûÎÛ9¤Ÿã¼ôŽm~ÝÕ;ýïÜÇvôж;b ôòª8óÙ±ÓïÙœôŸ÷9ÙŽ}çíèH©=¨)ÖçmtúÔº8^Ÿ·ÞYÚàÿ»ccÞë¥ÙSÀå¿Í*ë»Ëbl¼o…uäÕ;ÖùäÞP!׫ãæ;;¶‡g† s>;ÁKúê)×k¼nÔQÁ·c[LÌñç÷:xÝã_ŽØ¨ë[¯!ç¼p!6¸2êäUs áÓ‹^³òS×~ÂFNëÁŠØ,^á÷ÚÛÄos^²uŽa ¾CÎKÆo“ÔïºEðì8/éôÈÝ×U¾oÎKú¯(ìûmð–ß±^×±wB`¤;éÁûÖâÇfº.Ÿ‡}ÄÐEÎ3Éßæ:…6Øûga~>ÑŸAÀ5Öƒó’ýäT<¿‚ž»;6t «‘ÙHųÓC¯Ü¨q}q¼Ñ·¯S_ÒÐÏrÇF}w§¦@Ç¿c=(kBÇdcà9ëz‘T—ÄûõÂú–^ž¾B#°¨Á(Œž¿Uø­®q×FíXÏ»—ÿÎQqGäÝ%õÆUåu=ïžF¶½*Ÿuç%Ç\Ì\Êäoó¼{4z`îƒgÇyÉi"È~I…ë¯ó’Ó€Z i\׃—Œjà­óù ^Ò{…OCEÏóýÉv^2„ëï€×õŽ­qÏkwjŠõyëÒQÏ@®³ƒó1,jÝ—¤ëƼU2EîÙŽ¼±r÷dùgÝßÂ7V‚]Q3-­ã9ûô%šÎ ÷gÁKf¡&½àìödLþn.ê̼NV ÿ’r×îœXô?Þ±Î'¼"Zª‰ß±_Ÿ•Êsô^±F/Ù;cäì‡}ê1œéÞ^í'V¸?“¯®ƒ9ïì“¿-|zïÞ­':Ç«_Ÿ E/Pá}ˆïîïã‹y“è“9 ư×u å»^úµîÅ{켤»Þ+™Âå¼äœP5\·qýu^²3ir‚¥ ¿M£ÞÔ¨72Ô3ìØ~W =KẮÑG¬³‡âñF¬ë}=ÏòœÁyÉï>>eøWç%ûݪèU_¹ï«ÎKNZG´ñ·9/é¿â¢ˆmðŽÞ±-øƒ€,k¼n:ÖÁß6‘ÇÖ}ĹƮ%ÎKŽþ5æŸéûIxvÊÏw¢üëçoÔ¢œžMƒ÷÷óU[ôßiØUç%©‡âá\\£zÔw7Å{l¨Qر5| ¬Bùfí¡3ŸÔ­ÌÞqûW@-JM÷·ÈXËekjÿλ©»Ú; ¼óÝóî9è2jº±BÏÅ÷Ây‰õÊz-ÂXÏ»¿/ÉŸ> |7—ì„Ñ”Ú:®gÁKÊú5~[œ—œ}½*…ëŽó’ã™Ìljœ·:/Ù±{‚¾Ç;==›NŸÌtÝwÞT¡Á°»_h{bÕ¯»Ø{x¡6uǚ߇J/ƒJþP—è'ýÍ/È@êŒy[¬“øÓo¬Ï¾‡?¬ÊØŒit®‡9^²ÀºñÎ÷"xÉJ^•ÍÀ^ëWSWòµ¯ÁKºQãm¨É<ÇX¾–´ª<—æž xɪ9YŸü‡ß+ÎqžG|²Ê×—vÒ‡~ü¶à%k)|;jå;ý„»*òùVÀíkôÖv{œ”™ëºŒÏ[¹ô¬i¼á?ykÿAÿ–76ü'o}Ô³ý0<;ÎKŽ¥îÃÁº.ѪÞ~xg{Çýƒó’Sù€ëJ[©ÎKÆÀópÒkœTç%ÃzE_Äq0¶…þ¡â>hçûæ¼ä˜­ã\º§ç×yÉ'ÙûsÏ:Ÿç%ÒÇÛ÷;çoÆg² ÷àÎKŽa Æ[j¯ëj£úÑ÷áyp^¢†œ·ÿHáx-t wyÞcÁYRµ¨Ë—A68~›E}@c ¿CÎK޶Ž<•gîÕâ¼;i;zzΜ—,hY½ØJµ8ï^¾·}òºžw[£7ì^’xÌsÓ{uz†hÁ·åá%óÔ±^ûã+ŒšŠSŠé±·Vâé["Œ­oì@=dý)ÊïÛò¼»k¥Ö}ñÛ½<ïðJ[?µˆ;v¼±SÙ‹ºUæ/9±­ zc¥Xñ1ÜÞÆ‡?§Ö‡—œß6é'Æså±·~çìåà•¶cϼ‚ÛåhQìö8ÿþ‰=¦2“ûê[Ç´cëÞÊÁs½?è bÛûkLùiJçúÞÓTç~× îØñŸ× FkI5ñ ±ó‰’<Ï™*bå?¯YµRƒaÐWïX}cËJ÷a¤ûkOlcÅÇ”±ï¼íß¡Œåùf«ï¼Sz)²Õé…ù7ÏmB_Kp®ö𒵺K@öĬgíá%vøŽ!vaìxbËmPôz¦ëžyÓ³Ùå|èOß×'¶Ü0çí©i¼gÞä4YoWìãyÈûð¾o_9ÎolÊ7[}×É9c§ðr^Ëžš;Öõ%ýzm¾žõûÉkÁ{.àÛšço÷¦4õâ{cß<`ÌkCøä›9o{xÉS8Û«èõ²c創Šg§6Yƒþç5㲊Ø!é·Ù[‹r ½pŽ^’Œ°^V\0Þþ¾ozÑ·–ܳu_'¥WÄj˜·þ®“³Î‚رÀ£Z×IˆÕ_äÅëú:ÙÚB,=´wìôX»ŸIýYð¥Ú±âë/~ÛÌg­¿ëä´É÷¢Á»iǾë¤pݱ{ØŸØwT»™×Ccþ}»dÏ9/sôöð’3ù×ÇìY2Fel{ŸÉr°¥³£žaÇö7ög¼žß|Ö^rçëåú·z†ûæÝµ]›…÷Ö(ÖTç%m]¦¼o¯œÕµñq®ë™|¼èŒ×¾´R{Ýß7v…qG¬ X[›¡{¼®Ig컟ìë^SÏÏm8oóÝOââÍ/¸®?¼ä€ÖÕùì{¶‡—ÈãI‚X…_ÐŽ}¿oã>ø|åJÜÃ<¼ÄN¿Ûû9{Z©bý}xÉ~aFYˆ­Ôp¶‡—¬#ðçu›¤1¬'ÖnÔåƒÓ6ñ}É,Ì»Ç'hò®“{‹(äß7y×Éý¶uð¡®É»Nîß¶ iHgÂMÞu²×Áë¦óî&Ó÷ˆm`¼ºøÉ»NŽy÷›yíÓ8^_'Û]¿ù–PãY—wœ«hò†E.Òä]'E*™ÍB}÷±ú›76Œáë®óûÎÛ©%@ÏÇÒønjóüâÎqÞ4 ÷Aßy[Coö:ŸÒKľëäѾðº¨1?r«7öëÀò'–y€¾û’*·7á3>¿úîKö÷3]wpß§ï¾äèwàý¸7KŒ}÷%ý/ž´óöð’Strç Ï11çØÞïÛ~΄s Ãû~ßæªïÅ*üÙû};•ˆ|~çàâû_”×±ï¼éB Èɇp^ØÌ÷“¿€ñ÷g>dï¼­“urDîûìåÊçá=ž<'köžì܇lpƒ·UüÛ½j#äq½çuÕÅú–Áur½çÇ3sQxj[oÐkO¼oà< ­7èz÷{P~Ã}Xï¾dNÉíú³¶Þ}Éaȸ®R×ÖÖ»/™Ÿ£Ç¯fÏpvÐÖ;osÝuùO*ÃoÖ å (=g_н\/ᇷ;{el o,ÆFã ?±ï¼É-ˆ}r=êlzyç­ÖÁX[±ïû6´ß±O‹Kƾß7½E®~z£^Þ¼MΞ³føŽïØ=o¸±G#ưçí$J÷j Wºîž·ÀîÃúÔ ¯~xÉ'â±^r nß÷{‚~xÉþ!2c÷ðb÷¼óš’b‡cÇsê˜Ìõ¤àl¦^rþÂ:óMÔîXyb'ò‹“Çroß/9á¬Ì¥÷Ò×ûΛÍ9™wóL¸×wÞÊ-†zsœôÃKÎ_89ީ̉­OìèVo–Š5ª^ò„ÆvxÎîØþÄ~-þ0›†<«^ràHf6ÊsÓ~xÉr²ÿ>¥˜·ÃKNâ|¿½P9Çí}ߺÆŠ€ôÃKø´ÈÏŒZµ~xÉyGcî_ÇÀ/yŠ8îüâ¬%¼¯^ò@¸;Ÿ?LAq~Ñ/ynPc¬Á“ä”ô½ï|“›s1ðê~xÉ‘÷¡ÍS—´Àíûá%gUUÄÎ…z²~xÉŸ¼…ØÓž±úŸ·è¯3–ýêv¬=kTke‚ÙãZrxÉc⣌­†³¤~xÉ#ìiÂXxµ«Î'ö±3VÁåúá%Ģx¿LÜßÃKžFcð>×êÃKž¢ð¨£Ãã»yxÉ#ükœ7Éã•'Vªç¸ñ™<¼äLh©¼n—ôÛì•Â9n~xɉ]•c(Ô¯÷ÃKžXܳó^à ¥^ò<€5½o†s†>ßyÓ&¼î§ø}çm?;¼nç¹tŸï¼ÍÛ˜ýÕ~uþ¶wÞ†¯[ rœ>ßyë÷ƒòžgôùÎÛÞD7®“ð²Ý±ï¼ÕÛìáõp…¦¡ÏåûášÚ…ßMyß7ëƒß€VpîÔå}ßDñük"~/y&©§ó‹…½}?¼äL8⟳|<‡—< ~ãws»ñ<ÈôõlñLbTã|¼…ÌÏ'OÒußur ž~,¢ñ^rnümÄòž_ wꇗßÍš®«¾FóBzqìØ÷}û¶\¿±•µ0ÝÞy3-ÌM•ºÌ¾Þy“eŒ-ƒ¹Þz×É^oöä]z:Ç<çÍRl™ÌýWw=Ac>/+]w|l±=åþËÏMkIüAx?^bŒeÕ«á=–bgº®Ÿãtaì•⿱~ŽÓ)èc~žü¯§1ïõ;£DŸÌkð>ß±-jÉ@FI×õzÓšŸÎñ(ÃSc¬•ëó¦Âg]òxÅÏ!+ß·ôì ×—|Þ ¿ï±ðÝ®/¹€GÖ‡ô·—œ`!/YäF£¾ywzÖë]{VŸØú~7-qF]Ũᄂr-9k5ög£¾ûɵ‡™¹ÿxx‰ÆjK×}yIàgzðÎKö5ø=.:yÝ——ŒºømðnÚ±//ù£÷ü4 ú¨Qßy³:x]ô‘ó<±ËR¬ñŒj8/ù,Fÿì£*öÕÃyI'³9|r2öå%hDþîcxy‰Ì®Igƒïæh¾/¹7»o/ÔÂØ——”1¨MêdmÃyÉÎÞfâ%ÈɆó’^:ó€U;c_^28Á¼ññë¼d.![ð–ß±¾ŸdÞ2w гºÑßýäj` ógÑG`8/Áƒíþ0ømÎKÚ,Ì»÷íÄ;/÷¡Í³öõÉ1¼y€ hˆäÔ%q o`÷"ó,ð]ܱ//)j‰k¤õÁyIoØÿêþœó}s^2ïf±'¶Wì×Gð’‚ûpb+æ8x µ>{ çó#xI5ÆVøÀíØáù±r }×w¬ó’ÞxÙzÇ:/éµf¶‚÷-xIï¼.}-wì›w[…þìøqt^b29†JMÃp^b™),rÚá¼ÄlU$ÿ‡á¼MáŸ=úÏïØwÞ¬ÙÊ^:ðœ9/ÑÌ=Ûä¼9/©¼n/öŽ}çmŠ%þ»ÒÞyk?è¼î;oûÑI¼d€ùÎ[+-­ÕÆçWÞyûì@þð’šbý§ü _ÎKtà{|ü*xÏœ—Lü¾iÁÙíp^ÒöÇ“zÏñð’c´+#IðÙq^ã·fõNÃy‰M¡Þ³ÌÂØ7“j½iZúm//uñÌGYï4ÔÏßj:Kš¬m軟,<89xÉp^¢«Ï´ç2Žáå%S[ÚË-®;ÎKúÌçÏž±ï9ÎÎÒùëE†ó’Õ*u¤/ñûòå}¨ëñ·½¼d˜ÔÄ@¸ž9/i|~OO,0ÇaoPîÌ'˜œcç%6­&Â}Ÿó!ÿ=µÌœ— Á=³ŸÆ3ìá¼ƵÏw³¦ë¾y@­•{#3æ±/Y?ÍfÊõ,]W_¶ÒkÊ!;s={÷%V'ckc¾iïûÖµ¥œWyÖ;ok&@¥ÏÈXï¼MK\cÎÉØ÷}³Ž|óô®Œí¯6Ÿæø†¦ñ¾:<™)/cnê¼$1§W=c_^ò/¹iòòÎK’þ¡þKÞ¼ä_òMåóþ%33›†ØYÞ:ªZ’fdš2Öë¨Öâ7ô±Ù±á;3Aï÷ë>=ñ›éºîÏe‰ Z¾î« ’^3sL¿íÕséL,ÓÈw¦ó“I®Q,áå%_ þý§ëKÒ³~d¨8[œµ¸®"±Š>p0ký÷wó” ƾçÝbù™Ì×}÷“5kQŒZ”ùð=FÑŒ]Šu}Ö—+k戚ô鼤ŽÎ3‰N2—ôÛŒàyÖ©ñžÁKÆH{ þd:/Ñ¡¹f9ät^b³pß×x~1—1j;ýt§ó’&é¿ÎK”u3O*Ž{Ö|_Ò;ÙŠæûðò’bÊ3ÖsNŠØ——´jd ºí¼¤$}ÉXØ#Îà%"̳ô–+Xç%}ROP tA3xIÅ^CK?Ä:/Y³üAÝÊ ^ÂÜIΫÍX×—”¤EI{ðú’V“„úú’V™û³GåŽ5ÏE/éÜh†¾dvj;>û’/6ô%Ë/AO¬ëù[Ç\ÿe-q^’ÎnõíàÝt^ÒûâuÙ§bǺNç±²×Iä…Óy‰tKóÖ ½ÎKt&v%’î™:S˜dbƒåÓyÉ “—ÔÎë¾y÷Ò‘ôQ 9Ãt^²VI±ÅOç%Ëjâ%ï±ó’u5½~A“±ÎKÖ*I_Ò9†wÞ¬§1Ô‰Üi:/Ñ‘4p‹£Óy‰P›4²¾o:/™-ëð ÷ÎKÆm´ð¦×\K‚—XÒ­4ô”?ÔÁ÷I7XîÏ㉠ÝkÒk½±¦óËš1hž¦ó™c¦šW~7— I—ÙPS<—´µ$×±2Vþã ïÉú@ïX_'KK „ÚÛ¼„ܾíe€{£à%&=Õ±r= ^¢éÜ©³Fa/™‹×­ô‘ÎKŽ4¹Æ‚&r:/‘™4Ö&Ç0âÛ¸zÓìXç%Šs²G–Œç!x‰$]Å(ü¼D%×Çr ægTI3]ÎPfð’¥-ÕÒr= ^2ñÝ\bd öó©ýÆzuWë~ÎÞØ·nq•‘Ÿuì×ÅýK°x=Ïý¥¾ó¶Zb+]cýÜÔRìð°’ú®“–õ%Úð—êç#ý¶ÓF±oþ†+/cá滞ռFÑ#Wê»Nª¥µoïØ*bÕõ;Æ=°ÆFœ—´–8Œ)49⼤¯9’ž{Dq^251ÞŒ±Õk¹Ïæ€vFÚ;oK‹¥ºì ÄyIJR¨™ç%½tîí›`¯,ÎKf±™4Þ…¿Íu¯&<³TƒºÎû¾Sû _aq^Rª2Ïê…ï…ó’t^xú ãìVœ—tí̬Àû\œ—Ì™ÎÜ =ùÄy‰Ž’4# ZwéÝ5Ó)çÝ)Çû¾ou2›¯³ùoìt·q¼§6±//Ù{ޤ•H÷7ô%­YÒ`4^×õ%=ÕØôÆ÷-ô%½qß7X/"¡/Y¼d²öAB_2&ÈX؃KèK ZªçØ ï[èKV—¬qÁ³õ8s•Ę:c—d®‘ØŠ/Ñ’ë|p–/ÁKÈ'Ï_Åç7xɽÈxÿ,¼/9æÚ¹v‡lòð’SŒµsd_.yxÉyKªic^(³ùu³¾d¯Û}¼yÀ˜ã}Ï µIóäNÃ;o0œxÿ‘ÆðΛEVaÔˆó½Ï>Šþ%â¼$éÄΈßXç%³¦u½QG*ÎKº%ÝJ¡Päå\­kKšä…"ñ¾u~7…šHq^²ø‡ìû®[I¼äO;¶ˆ®UKÎZ¸r^Òß–#]3yëªõäûE?1q^²Ó©ŸG½©8/Q1žãt§ç%“õC§V™{ç%8˜{õë8¿õzÓ5S}‹ ¶Dœ—¬’ôÂ>ƒâ¼D4±ŠIïq^2†%°n/êu­$B †8/Y:8ÞJ}”8/QjCwÎ``â¼d¼Ç–s=q^ÒkúÖ€ˆùùÛšI Øc=È z¬tÝîµ%“kI¯éºÃÙÊL5m)s^Ò¨ }ü×ëç¦u¥ç,Aßœ!ŸwI×µw]gÊÎ Ñïö ¶÷Ÿ“9ïL±ë}ß ÎÜ_‹&ƺÎçÒÿ“öðý#Õ‹tj“ìá%ú³òY~§öË^b?u&¶¢ô$±òöYÆŽÜŸÁÊÛg¥R;#·Gã;ßXæÒú£d6æ~¯³%ÍÈ öËŠ÷YÑÄK®zœúÄÚ»jæ%Ȭ¸.(³Š½¼Ü{ó~­\7ƒ³f«Õ½%é@ÈÁ­¾¾Ø©žì9;PÄFèT+×òX ¿WM¬bÐÓ̪çݹGrH«õ¼Ió¤ƒ×}÷%c%>Y›ò·½y€f–Ùz «ŸïLÒ°FÁœ—ÔÞRvÛœ—t)I8àyhÎKæ\É?µƒáY{¿o§¿iÚW¯ûÎÛZ©’<ÌyI­Ù;d@{kÎKúè¹n&݇——Löþ9ç¼Øÿšó’g$mþHã}÷%k4MÞ!8‡4ç%uü‹wrs^ÒgŠÝë/Æë¼dJÉu3•cx÷“j#iؿۜ—”>þÅ?•×}yI³ÄVšrÝ } =ˆ]Þ!ç%šu“gÍú’9©EÙSÁ{ç8ÉÃUÉÏ,êq²EÎ!-xIö/Ñ‚³[û­ÇIãm|磇þÊGãcQ³Ò\têð,x‰$ÚFnoÁKZªw*ô±à%"Ù£Fyœ—Ð÷ö¤×` 漤eÿ’QÀ5ÌyIg-—ä:@s^ÒÇâ;¿&r^s^Òg§EÙoÆœ—ô>ókŠ®ñ^É¿„=aÍyI"Y/‡{6Åï¯12æz6}ÞÖH½í 9¤9/Y¬ë8®ün:/1©&“Væ¼DÉ NÉ!Î|Ìy‰ÔÄ*”Äæ¼dhêé6X_hÎKzîÿÖ„{#Q?Ô³wžç%GTE^Â>ææ¼DõßÎÆûîK.¡ç…mðþšû­¤14Ö8š,gÐc(Âë:/YØóZçå¼$y&?{Oü6ç%c¥Ø!Ü{ªû™³æõ”"€µ™ú÷m&fSé9kÎK`êtööÖ™38/‰Ï{ÆÊÇyI/©>VÈ L-ØJª¬Ì/œ—XM:±Âæ¼dÒŸöè˜:c«ï¹Jòq¡†Þì­ï®ù[Øx>oÎK,koSkÎK`Ôÿ¶ïä\8/w‹'Ÿ§W„…¾ÄîïÅIñkúm﹩!w:å&-]×þó6çPê*Š¥¹XÎic“nÅœ—,øJ<Öœœ7×— œŸ²…ô<8/)ȇóùÕ³¦áÕ¢4á=‹z²ŠÇꇱ//éðÁ8sÑÓ^^2Kb+°=±//™%q£žže®Aì^:Éaìá%vC8×?0v=¼dýÔÜg¥³¦m=¼dýLI9¯ÐŸv•·/­ÍÔǦҗuy?áRÇJ{˜;¼·]ªj¼¿ëá%+ûé®ãCÏXyûëe𢸾­òöíÓìÒØsl=¼ÄÎZb Ô ®²²ÿNøÙ`¯±¼ÇrÏëÊØê½{f ðÃ[õík4ò7Åöªo±JÆtJ2 Çà¾35±•½Vã>¸ßë¿èVV^÷Í»­eÍ“,þ6Ïßr¦®ÐŒ¬jÞk ñ©`6ëá%§ñiò6Þ Æûð’uÓ{a8\ÎKZ©/χ–ó’ÑgMµëØk,ç%)‡Êçl¹¥`7©É ³"±:ÁÞÝ›Õ:g#n¼ÏÝíÎKŸI&"|§Ô‘¼X×Ö?Á/Pé–ÌMë­ç‚Ý1O’ iÏ·®h!™ÊZî³'Ø5(5åærKïŸ`ñCE#T±šV¤p9)Â+¯š™(Û)HKíÈ$Ò0¼n§à-”Opî°PÃh㤄e ¿)¥O#Jw4!Kßìl¥Ur æo'8š²¤Â$éi?º’hÛékåx¥ö•Úÿ E>Áž§ÛL,æ_îÆ»UsQÙâºá„eÖ”9à@õó’'XØnENo3ù!ôÆ:Á/dMͱ¬¥‡ß)‹hRšLt:Á/fé 1—ôˆ:g‘f%ùž¬ô½PU…b?]ÿ¯°/ɱW–¿¿Šœ éý‚jÿ[(‘tE<™EáÇ0áW©£†¢›[#ô£Q$rÔ6~jÑÅ–Vß¼‹«yBŠü˜gÇUÔ[„5È6Àgß;8þp÷To·Íï$Zçúv»§¸}~m!ßcÏC±¸t2.|$-¹È}„î ûûgtýj±žçš¸$1èœ;ôCH$“jµ‹ëe¿›d ,nØEQž†׸«è òlEÏ”]|—íº€$‘EÛøF^Ñ‘UCÈbÇj"Î?“Ñ)ˆÉîâþ&)bWá cújÊÎ@{ˆ±è;ؘÌ8†*h‚0“É¡ÊftäN/p–á`n6&£hɽv”Þ”ÆdÖZƒø*J—ît‚Õʸ‹«ÕKc’§³1’팯cØ)¾˜Ì â-‚åÝ)^m:΄ÓT|1™@%âfsQƒÐ˜Œ-¶I>žM(iSE¨]z1ÿXïæ1¸øb2ÎT qêS“ѯ_Ôqcü*Nqc2àËwx ôóÝÉL¦Ò‘“qp#:M:7&3¾ûãÞHwð“ù¾)[n1辘 ˆTwŸ3©á}1™/½üˆª¨ØÛ¦eDIèÔܘHòS“Ú¥|gd:2¾ZÐS|ßÁΫ»uÁ ïìxŸ(á#Ób^íS5ÉSeŽHf½= ö„˜nÊÁdöÆÕÐÑÄ•®s]‰ƒ'!T2éA*ûÓsc?¢”̓Éä7ð8n³‹ãtÇc1u‚ÞÁj–…}­öožüoG¿¾æ_àPÿsžïÿ\·œ@\4"¨øb2Zß-Ä&M\dVc2†Ôö‰î§øb2±Ès9Ÿs‡Z'ÌEÅ“qL IdiœbïbA"РÐjLö¿W Áâì ÑÐv5&C ‡ †ýjLÆdш„>šk6ª†}ÊÚ¶xóÞÁ… ;'‘“5ÿ?L§³¾ã¥›÷ÎAZkàædÍë§Cº¨çá_Eç| uÂó ºtWÙ·¥Q•]ºkA“ì‚dá¶gÍ{ô…ÇJŸŽÜæ,täAú.îÙ:!o˜…îàº;eKhÞP­ƒÉlÙh8¾“²’Å€x“ˆÛ&iÓ9ßï 1AE¾ê¦S­{¢œ#Lf5&C†½[0‘tä‹Éˆ©P§‰cÊÕ˜Œ£…Ýáà”Î)ŸäŠùÆ»xýô¼›"DWc2†J©Ý|b»´š'“Ki˜¸tbqÏ8õ…À†w½<+,–éô_·#÷¿t:æÉ¬ÂÅ\¿I(§¸y2N?P7TëåÉÀøl}CNqc2SfQÂ7Ö‹É <0·kFc2ÃíQ*þÁdð©+à Õz1''–0¡âÆdœâ¯ŸÞ‘Š›eó”cK‚ÏFc2±H5ŒžçÆdÀfè\ ¢âÆdÊ…c°°£_“Ù´¦@,wéÄël7%â‘€#JÅÙÎw­Ûªòu¾˜ŒÚ@˜¥‚.]¶€ŸžNU¸·jL&5t:zD!Vc2¦Ä홼“iLfÁût#8äZÉLvqàlbåËÙX¬ƒ6'ɨ:þ@œâ­æÉLX Õ€v_Í“ñE0‹½ƒÍ“‘"G  «y2ŽÌ³tq{=2Ž´ e«1™Y$ÀY2¨XZ Aç<>mugô8?ZúvLfï¡¡*zž“ÉEf·‹H5«~fô^«š|äÛÑ?Á «ÊG®nÿ‰$VôvKc2Æ;;‰ÈKÒ˜LÁöò˜©âò%É$ÒV×÷©í#_ß±ˆ'“D}‘Æd*«HV0¨øb2ÖOãüçV2¼#¹'R_4qK,Éžwÿf\7¤1™L‚,‡îâ{³ wÏÞAiL&³}lØð4“ñ?e‰›miLFפQ”7ÓIh÷ekÐ97&-ô’42ï¤ÌúãÍgXìM×aäD‘:.óº×XLPAí’4&³”Š+p_'óê%T{,$xS“ pŽ àº,‹Â¤¥=Ê¢›²z>è ¡ÚC2£ÓÎZ ,^IRc2“ÉfØiÊzgät™Ã¨ØûjÐølNzS^žŒïÇ"Ö¼<åNs]ºæÉØúío÷Ë“YÇS$ ”æÉ¬a ¾)?f0K‰ì1©øMgÖAXAÐitܾaÔ.Ic2®”›ààÕ´‹ï^ôÂëb"ÿ‹D')O$¨ÄBR4&ã(“I²ŒÚůW]!&ã¤Gѵ‰?ÐHl(ɸ$a2Š}Š4&S0pðµÒί)ĺT¬¯y >u¹èv7&ãˆBpªÒ.¾˜L²•®ÝÁÆdªb2ƒ¨¢ù N0Ë¢s¾.Z ]©¶Ù<¢=r0™ ûQ¼ô,Ä ¤1qeDN¤1ù#¤=—Ædè÷ÊO/lc2Š1H[¤!tÎÖ¹šåHî´ò7&ó|ð±Ó|ŽK?ðb2ké$…}»­ï ò÷¸‚/ݽƒÏZŽ¢!)DN¤1™B2ÞöAU“‰$WÐ J†4&ãhI¿I|íñã‹§Ó"ób2¸“ÙáÂÈc”“áÄ#ú™¼˜L*ŒÖ—Š_L&q/:ÿÀl³nÅ·›GØòb2‹Üæwɤ²Ã¡Ù±¼˜Ìø²Á÷Tšl¤1ù.óG)@ò ižL+û?;¥•ÏYÛŽü|9„ܹ{ãëÓ´ñ âœHc2s}·ñ›’|5¢i`8¾)F8›ÆdÛsPœMÈË“a|C…{òj—ðn¬€NãÕ. ¸t{€¤4&ƒÊÄÝÇ‚¼þ1OtúZ¾“1ÛG´3ddÑ‘…¾V“)”šbÃñ™dkxa³}~ Ÿó Q%ÂËéÈÕ‰Õärâ†ÊD©›ÙÐç:eR77…¼t÷¤åë`2›äE¡Êºh}®«›øØý@CølÔµp­I×yêË^ëľƢG´Zùòu@=˜Œ"çD“ŠýñÂHZ “ÉU¸äà#W#'ßYÛáªa±Lfƒ!ŠÔ—Aê3=˜ÌA/I»´“Ñq­€–O&iùÒÆd= !#lÞbíÓ(Ï:_7Ao–ˆ‡Ö%Ú˜Ì,!Á¯b+­/&ƒ“Ç­;tälhˆö˱AГáÄ`slôåÉ$E&mÕ´1Ão÷¶ŠÀVZ“™áI2sÜëË“‘!$`ÇA³L&ŠuFàD<ÖÖ.EG…n÷ôV&*{⨯viÐi™uè|ÝHBòu:Å×O&@§yl8ñk¥í'C0ËæócצíÊ‹ÎhG&ƒ[5m?QRù­IÿëË›”-k4kÓ~ƒy£ð;¨íÌ+Iœ“Ê Óèèç`ÉÉšT܋轹Yàèj¶ Á´èÈw'ˆ¸`‹et|ÂÄ#§ÑÃ/©Á$…‘ÊÕðæ *è¦ÈNäÆ×¿cÒR 7ÚÔð]LϳtVG,<çíÃÅí„Pdá•»/•·› â Ó*•ŽYÁhÑÜH >uÒù8“$TÏ^ ¬¯ák2A…V$í~pV‡…êíKÉ#¿vñ˲0|a…ß½½ü¡˜+HªÞŽ^•eQôiÓÛÑ› $¶i$óíè©áÝbCÜ#ic2^“½YøÞŽ>%û(iµ1™ÐŸ¸¯ÓÆdB8‹~¡ L“ t1Ò–ƒ Æd\„úDBÐÆd<MQžÖŠN£ï`&zÐÚ—ozŠ“1rP™Bwð“qv¡]tä{Gù`|ƒ®Æ} 3Ÿ>â»ø‡'Cúî¤á¸6&cF©½Êësc2O7@ñ6ARc2#I™¨‹6®þz:á*-©ØË”ºD, mLFDñMÁ(Ü]Ü~2>î>ÍèÈÙ‡>å/óFmí’B‚ÚV ÿ†6&3!ÊþŸý…¥ÖãõñýrTïø ‰úù‚Iñè£+—6&3!5à´¥´+è¨è„IÍ¡Ëcëíåk‹:úœôíníÒüR8Oqpñ.Å÷Ótz3š§hÇEk(žs&2$µý|'˜Hìgc æQ³çƒ>¨˜PbÍÙXA¡Kï )±vdôL+:2‚¨šò’Ѭƒù¢šÚ„X*M«4­5éœVä¨Aмö°á„oì¨T,Ž;´¢‘$1~5;€˜ÁȤx'¼VY8o«½,ø=bjK«u0òcã÷Œþ{‚ç–JÅ·ô Ì tŠ»£E]›­HÕ} ë_[ç.¾½tì-hÉ=˜Ì‘}5qÑŽñ`2û0‰šG!Ç =˜Ì¶V¥bŸØ Xc2„o$ÕZc2ZäL/W{1Ÿ¤¦©‡5&³¨)È)<Åú’jh4‘jÍ“ILŽØÓ¥AW£µKB”Œã‚Åí'S’4[téZ}‚²˜Ò¼éH1HER‚ð¬u<ÒÀhägKL“ë<éXDœ0Å«LFÑ6ìì7È%Ãæ« ÜØ#Þ”ÙÑHPÙINçlÑL\# \›íÊ5™dþq5.ÛÐq/JñSÜÊ—%$² TÍÚOFŠšt%1¸­V¾I!‚ZikžÌÚ1fùu#á&]ìa«ÝHb¢Þ "½­fY¼)Ï’K;[ͲÀD¡MÊYt7N‚¸j…SíSܹàâAÅÁÙjoÃet‚_+[í«öݘȡ2¹¨š!öUðrMf ! ³Pñê âœD ‚‰´{=Ϧ¸91i/‹9Œ45¸ 4±W×Fü Ae¢Éí~&¶3HÑ‘o?¨EÖ%ªI?°;z'²Çz­ävô9ÿ`gáìØôvôµ(T–\½>ÛÑž-gBz°éõtz^7%7ľL/Wm.²i’ÂVÚ&³±,a>¢“9Ï#¹è;2ÊLï|p!+KÒ[™^ý@Ë£íÊE[ˆÆd*CØ3„~`ßA3Ô L.nL&‹|!ž½ ÞîÆdœMØÔß°—'£ZC, kLF„¼:Ÿ]!>ϯv ¿VÛ¶L©¸ýdj™u gí'ã®(âl[ûÉè¢ä¥1œŠ;NiRŒ‚ÈÒÖùÓ¡M2ÔîÖJ×g "Do°NTZ¨ôÏVÌ *^ÿ̾ƒÖg—ö¡"ÁÂ2$!˜ß~P¾‚°ën‰ ¯¹5è >h)ð7~N¹£§GÔ¯òe-îŽùCïÙ. Lww„³Ì[ù’ŠÅ’ôŠV¾ÌïÎ|÷ ;z‹Ë²vÕé i«íFâ ! Lß°x÷¢tδ>ÇÓ“xÈ‚³h–Åç,|Îw­¢À'³‹‹ªMÝï#;ŸÆ½ƒ‹¬4¶Éü³‡,ìµÅà¶1™-9ù#˜xæ¶1™ Y g³aèÛ«£dƒ`–IÛž¼=ž]ªíó²îŸ%sª†À‚e{Y±†Œæ°–Þ\ˆÅª($x[ÞŽ~qÂÀ±¼=e]Ïúgwô&´|%uôu;útEÞ»4[ód¹ÄÇ¢O£n`îªDù†.¾Ú¥éì”®Ô⽑KŒ,â#Yc2…;ÆWKXAc2Õ¡[AJGnLSG÷¹Ö˜Œ²ÝJFXc2k†ÓÀýýåÉLÁ}) ÞÚ%4S:|AGnTÍYÊK°‡õ7w §K»ÏÁöß;¬ÚŒH™h’é£b±‚úªY`±ÑZç£=0{yó?”~àíÍ:6» ¡N팇Iã»ý§«1G[³Ž$'üvûœý¢±{Lìa}^dûÃ÷ìöŸTQޘ̊Âv’AŸÏ˲_ܤãÆÕçM<·kB± ÂY>ß ACKg£ÅÜ;¹zàuõ¯gБ³é †§Á¦7O&‘W°-Àç÷öø˜.íâ­š¯fü–Ò9 î‘|­ŽÞ ¼Î1Xðõf¾8þ@£O›¯ö²˜té”H¾¬ Þࢬ(_ÝM ’oe7øjÝĤG4?ô¾n?¸¿)”ªæëöƒê6ˆ8›—žÑ²ˆI£Û-·,ÔþÇ¿¶h‘‘ÕÝ1aŒ3èµ’ÛÑ/NtÊ9éÈ·£\Ì·‡‰.·£W4#ÝÆø´˜ËÝ‹Rô7Wà]E­&Ùœ’5«L¦¶-:ÑНs½ÅN.´0ê 7ŒqÑ vãi4&cËXpjÿ½1e`ÍH½11š§$Y:{c2KHˆ Žo§¸1™9ÙŽ!€ãÍ“)æ¸zsód˜Þ äåɨÑòżoLFdp^’ÿ½1™¤šMˆ5*n¦“Qw<(ÄÛã—¦ÒÛW‚O£Õg༴iܹYü+K.n‡XõETÚÉXsÕy,À§ñÇ›æŽW#IûïÖQɃúîQا¸µ;¥ :— M—Ü/ÛÐ1lvg¾Ðkå—eZÛð"ÕýÎ&2Ï9”ÞA¿³ nâD?âÏ];€8'›»‰£(w{) h02IðëîS(ÄfV 9Ú2ˆeO—p1÷N+¤`á?~`µKF‘žfšorôÝû4NéÑ^£”“i8|ñÆdÆWÕt{3¤&úÆd¶|ykûâÕØ˜Ì™±óÔÃ7&³3mŠŸ7ŽN£uc 4´Šî`´;%’G@ůnb,"¨pqµ!Ã"pÏ‘šè9Z°@ #5ºÙÊ ñ<Åóvôà­rÚóçíèË¿V‹h$ž·£ÏE˜y’…—LæD&ÿ¡¦¤Ó¸¬ûOžOèÁožŒ9Y”?·þl'„Yu§,øÁd„=t{Éaqc2ðZ\áu@5›ì±& Œh³Ý!Ø ²¯$ _¼Ú$)ÎLçÄoJµ‰¹¡­]²AákÑ¥kíÒTÊÈ€ÌÅS6\…í-¥«‘*¹vƒ`´ä¶v)`ùºFˆ°nÄè=zYì¦'1æNÅeIÅ·£ž:œ¤ÏB”8ÆÕM@ñÝËâf;ÆE¶?éâo§‰KnŒÖM”Ó&¢gbÜï ¢êߊI?ðê&þgm!ê½üÿ÷ÿŒq‹Û• í77ÿãýžÿWO=f:ø5Úþ)ž½“ÉEùÝëU ýwþà$Eóö/K(¾Ó%‹áô_Zèo±t#Oñ~6†¿Åw/ª(fÙs«¤ho%vôEÙ 1Ûr ºÌ…`ßóvôžÏ† ÜÄlÎ6⢻)B¢fÌî&läÄèAZ·›p](ßpÁ(Vwô‹B{e"â»´$HdƒŠ»,²ß4)Ǻý +EüÌB¬ Öí] ±‚ wX=]”° iT|;úâ(¥1qëîE·eõ½w&Ê׹𽻸)ž¤;}ä·!ìb}ž:D‰CZ}¶^ûŸb8Aé4óñ ºx7³„HŸóõS¬Ž¨ZˆþùS¼þàåFc2`:Õ¢Nú÷>뉒“XÒŒFN„éÈ#“3\7í7¢1Ê‚lâåÉ8 2y†6Ë" '5IN¡« F©s:rk—DHø¿Nê†Ð—éD‹ƒüÌ£ýdlöÝÊè›…ç<ÿàö„Þ o€µÔ»#^š­k šÑöÝ¡ídNSé/óïŽ.¨3_&¶ÿ9q_ÖßÁJónK¡ [í8ƒôÝHM “N(tdÊL kÝ„)æ§/_f¯W'‡­ Ìvg&ûÈüZYtJ áLÊŠ »|Ñ©€[2é4î*šxäpZùý®¢Ï•£H9á÷4ظîJé ë÷. ïÓôˆº´"xg÷†O÷„7 l3éÈ×R¡B¡áÝM öµsŠN£|a®Ç Çãðîèp¤=!¦7Å»£Ï…p–MzSâíè +AÏFÜ~ЕPµAÑç·L©$Ñ­üq;z©Ì²À«÷[—8‘#nG_R$ áEæ`2;tW%†ÁÞ)Ž=㤠Þ1LF÷Ü …‘ôvLæXîñ h‘ÉëFBýíLj{Lf³Ã•ÒV-/ë~ñ J±‡Æd³Ý·ãñ #ß;hcÒÀhÑunLfr–g DÞ}Ö©ôjžL¬AyšA oód'ª,ºíFb‚(D}è[»¤”)`Èf‰Ö.MWäl;ÙÆÁdœé {Û4¨¸y2Yl"=-ŒÉ ¤7ì}á xûÁLÁ#?¯'†÷f›’”ÇOÖÇO§YÑa+D[Ýž˜ÐÃÖí&Hοó­Þí×oqµñ…’ß—¿vQoqŽË6ÆÅéP|‘m?ŠßÍoñMTàwíŠïNFÑ%cž„`,n§ôXt?HÛoñuBÐÌââ÷Òÿ{s\…ð|…q¿Åw/ª˜–»¯óëwø[ü:!PXáž!aq5—8è4ž…nÊ|3@À¯tæ·x¶r| $ 9»›ønoçF01™ï¥‹'1Q³y2d‡V˜Í“Q ÷´¤âfY€hèŸMzäÓ¸ïàPÿ#4o÷«]‚0¬ãhª¨líÒB!rуÔ~2‰n~û"5_?§>E ±l?™9¨õHê&²=~}QúŸN±´£æ¤bš–¦^ÝD*µÒ>ùÞï LÇ®­hn•zu™ðõß9‹Š/ÛPà {ZÜ^¦f[”CG¿÷üIÅÕP Å,æ8˜KkwÊ€Ve>ÅW7!ðMÙ­ Yx¥Ýw0¿£¤Ón…ãÛm=]Â×j7Eôˆšö€…ý'ý@ëãÅΟãÆdt°°Õg¸N‹î€Y»‰Ü˜Ì62\†Ôà«QÕ±ð:OAª@úëŒWJ8Ò âΛˆ…P'›‘¦ßŽ^†2¾Ðô;áõ,¦¾ (ýêèëëÀ}YHH¿ý ˜!Hȯ ývôëk‘xFÒÕ莞õVIn$é=áeÊœ•Ð9×)VÀ7Ž_b¹WG/¨ïÞø¶KWù"¢¤˜›(θþ¢SÉÛÐ…¾ÝÍ“É(e+:rçðVRÒ½ý@;ņ„Ø-:¢}c2d_'L+¨8ÞXOlÿ‹L¹3²ƒ†©¶N|ь˲ (;v-´>7O&Цi·´ÈäEÕD)¬0ù:ç}‡ÐTøj´vIªhZj´0æÕMD)6éèT“y“”]AƒpæÝØ–f»rÁ*zö…+¡ÌûTô½ÜÛÓ™ÅÍ‹O”WShÞ½A5(î,ì1(‚m®øÕiæFÙÁS~>Ç?ū͢i"6ÍE¡¸æäâ·qÿ-n'„¢¾{çøb±µ¹¾ÌߨŒŸbï §b¼ƒÕ|QðG:§ñ²Ä~‹Û)½(ùùô'žÆ.eñ‘çûŒ¿Å5î^T*èvï (¾{ÑÄ…ñ0~…¨Ñ*lãb3(¾}À¤æ"\péj´Ž>…Ø,†ûº·›0p?Ûÿ‰„N5zF?ƒ¹=JÅÝþº†ßvi»SâG³ÆÛ¾š‘Ÿb>r÷ƒáÿ½HœKŸè¹W­]URßb8ï®Ö.í=œ;úZØMTk—žÝSÔ·Dt§øîEŸæ‚ö¿HèT³S{̾§ñ|û'Òüªýd¦¿<¿ŸŽ>)ö¢ÚOæY7¦ Á„ŽÜéu?)K¿$Š|­ÆdvO$„•¸Ù®Ædæ;îOG†2ÆjLæYc¾ç¼e¹ôl4&3M¦Aû? RÉ<ëbV°&¹1™þ†}Fë7&ãsÔ÷ÈBA–õb2ú:pÜâÓqq¿ƒ êÜáTܨÚâüAA®ÖeYØ€ì+ñùk5ËbÐ|P„¤Ö.=ßp–™#§Z»4 óewô†{þj?™—Œ3vÇAsµŸÌª…ƒfö%®ö“S±ï^ÃèZãÏ…­ô"¼®ä~3¹áýãÈ»ÃÄŽA6>¢rõƒåÐ[ÙŽp£âË64^m.ž³ŽŽ½€A³¡qó)¾³ IŽA$£Ò輂 £6¥iØ¥Ò‚x6ž DÃñÒvBÀb ¤ù•ö*º¾­Ç>ç@~]éU¾x@“¾­Ò‚Ž|ßÁÄ ‡íSté²ìŠGôëp‰ #2mëñÈ6:a$ámÙlò¿‘‰Pµ²vÆ‹Á?†eÝÑ/ê™;âüewÂ;½Ý9ŠoG¯I*™téÌÛ8Έ|η|Ng2q‚ŠoG?„45ÓøÒU7é#Ùbì·£'ôr‘’Q“Ù’¡Äj²þ+¿^ÊU€¶j“q„£nª1ídü*_耮¿?.2~ûÁdp=H[ZîíJ9éI ö:˜Ì~ጴÿQT|ïàŒÂQÔóÒ¥»,‹“سdõPqYŠÂꦅ c\–ÅDŸÀíDFKn¬–œIã]æÉŒ$ûäå+U¶á„Ì‚(¬—‚`º{@#V­]*tþßÛ¦„VºZ»¤|䣇âvˆuæ h«µKòŽÏ^¶ ý¯Î®?ŠKaÂ[ùvŽãà§7ƒÙqµÇ¯r¨úÓyüÀΞC)tl‰G¾N‰öõó„Jâl¶aù­wáø-ö²¤þó1P<çxm¨9(íNü_èÓzÐ9Û4¼ÎW+ýÀ©ð«$%Ý/A¢j6V0ùþ r?Å­áÅ4™3Ÿt%o´r2žFç#'²‹íuó#|c£•Pì=Ч#ïA5¼ÝÕÝÄ`Bowódöçô3•Þò t«êŽ>×wÞýœ:Õì{ÿλӾXA ÀÌŸâ~õóÔÜøTøÐïâÛ¤`µà;¸¯nqï‘·Š[¨øÍá…$4}}Š­%T/Áî—„€A×yOQlø÷;XúQ¾\~¼t/Of½v]LÙð§¸Yã ßðzhÒŸâ«]r´(ßÁ…·»µK³ŽÝMaÇøßU4ý+(;–ІKÁº±ñvRQÒi´ŸÌ7ãL§,éF3GØÏ[E—î"Ûîûn›ôˆ¶Çïs· Š#>¢òê&±Ó âë„P:°•®AÏFç.)Ⱦvƒ!´Švv€Õðæ›b$ʦÄw*Øi(§ø*@?Ö·8ø…•ûÖª ÅϯÀ;(÷T°“=–tŽwðåÉ84éû4ŠŽÜy0>ÛMÑ¢%WG7¼ ‹× ë¬·£¢·Ÿ S|žuµüÙÀ w¼)z烕À²ØÁ'ôvëí&åHOo–†Ï³6gú{œ\tõvô¶!‹ç“KÅ·£O¤ œh1|ô²îÅ& Ï¿§KwûAgi,ºÝ“Ù/,-_Ï+ˆçl·£ÿѾþטt5ìvô€ä6É ¼ƒ“ÙDKEá^¡KÆv1¾Å‹uÐæÄ®òÅÍ‘„ºð=˜Ì±Á ô+°Â‡ÿ`2;ç|aûÖÛ§øòd·ÿËèÙ°ë/šÚsš³1Õ7©áX@æn5{ÿœ$ÅTˆÝÕ¼²ÜYßö¿Ô {Ý?p-(]ÛlLæùhh3m÷¶ Ïyš|¤ÂQÔþõÌš€}Pöb×O\³“¡âÆdòµ_èVzkj>óÅSܘŒ&³÷+axä“Ñ€,töØÿi°ùsζÿóåÉ„~–‚#çGìk¾<™ñ9 ᜚ç¯Qµßåë-εÎó×,‹õ½ƒ‡uϧÑÚ%œÑ?›d:^E“&éÓÑö“Éo óJ¹S\!§æ4¼0]Ú@Ååª}{ý³ãtD{æšm ©õ¿6¼³=~ÅÁ¼16¦CÅ7o",1õR¨Óœëê&Æwa;™Éç|Ù†º@Ÿ²åyŠwpùBQñÇ‘{'ƒ¾—áp§8ßìŒêðÅ—®:“+°80ÜmÓ3¯¹ƒ«ÀBd{JóE={‚ÖÙž²Ú±ma±¤Q±œ]ne`ñRÅ·[®†7&ħîØÏ³ô|Ð  ´¯Š[… lý|iБ;Ay¾™!x»åvôcOÆP)°¹aÝCpÏ³Þ oŠñdhùÒ˺_˜Ÿ²Å·´|éí â­÷Z§ßîøÿãN‘à]{scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/bump.grf.gz000066400000000000000000003027671514310134000240330ustar00rootroot00000000000000‹]dâ5\]¢¥ª„Ÿwf):ÿ‰]ê«<÷a§mJ¢KT’ß¿÷ùýþÚxÇóï÷÷ûýþ•¿zÍ¿ßøëÿêß;ÆõW‹þ½ÿj%£ÿ]uT‰ö7Æ<ÿºë­ÿοgþ·¿åïþõù'°Ý×_©Ïü{Uy6~sßü_çÏ_¯C—ú+wá?úïüOsÉówéìëÒ‹×gT]¿Ù •ô'Åó䫨R×x pÊÕfÁ ðœ0»ÞÿÊïyT0täÿγUÒwÉ[÷|ü|¤GxÂó1åÿ<ÔOwýhÏ3¤¸*°?xÜçÓX§ò(õ)óß»SXû:aþ_½U›M·Y³I=+ó'6ÿ{/\ÏÆ¼Íí¦S7`Ÿ@£—Ýú÷úkÕ%#ÿ?(u¢•yó(nó?ê†Î(?>¥SPï÷¯©möã÷øÿRg{øÿ=Ÿƒ¿Ž:u4Ïšÿ¾ýrÉ<šê¼ç³ÛoJt¤çw¡—Ì#=µs]½íãwå¿óeÐVIçßYÒÿ­£ùXéÙêêN×+bŽÚ%œóªär1ç”Z/—ͳ‡ú¬P}/#7ÌÏ%SÜC}z›½)аô&›CºrÂü!Ì×ÙÕù!èí6$ô¾Ó(óΣ€_¡Þ~”ö¿ñ¸`é8Åx]2ý;ßa?—Ì˼ú÷ýã§ë£ŸÞœ¿¿‡—G—þ½þ¿¡t¤kMñT—Ì£¢ËߣîÌ·Ó5;—ó´”\óv=ƒW‰Ž8qÖ~\2†þµ^—Ì£Ùçkžøú­;žWÿηîå’y¤–gÕ×/2éE6«¾~‘éH/²Yõõ‹LG³Ï׬ú¢BŽø÷ú{û¿u¤Ž¿z›¹d©Ï³êë>ëH}žU_÷YG곪þÜéyøªÓªûs¯9T·Uûç~s¨Ž«þÏ=çP]W?÷C}éÔÀÞûƒÙÀ¯ÿÛ‡M³ßp™»ô¡z\¦Ã¡ƒù¿ßë2>:~.Óˆ^H—Ët¨žð7͇—¤‡â2Þ:"ªËt¨q¨Ü|Èáqp¨q\|Œ\¦CC \‡6ƒCƒ<Ž‹›ªp:Ñð8Ü–þÔ€ÇÁ¡ÆA‡ xr <Õ ð88ÔµiÀãànè‡\{6P<ÚÒµÕ@ñ88ÔµÕ@ñ88ÔµÕ@ñ88ÔµÕ@ñ88ÔµÕ@ñ88ä@sƒC][ ƒCC ƒCC ƒCÔ9¨‡ :ÔlÎãàPãPÕãàPãPÕãàPãPÕãà™ ÞA‡èmæqpØöŒñLç7Þ'Ì/€þÑËÍÝçPÝW[ÍÝ×aåi˜m5wŸC®9’Ët¨îkrÚrªûj”ÏëÕæË‚'€"N›ŸU½zø¾úH'ê:ÌW9š¯I=|b}¤—¢®ñR¢#½ }<(Ñ5æ«P·ž¯¬æ«P7ž¯¬æ«P·¯ì¥¯g[% Žëüèi,þÊr¤õåâ ÊÑüœ6ÏW–£>ÿÕÇî¡DGs²?GrñõÑœ4Íq™§ëh~ŽûÉÅ'ÔGs*0Grñ•õÑì¾9C}öÑütÏ‘\ƒ™GšÌžòõ‘þ=åKë#M4§ÏÍ>Ï‘\|k}4ûëh~\ûÉÅ·ÖG³Ïs$ßZ]šÌ‹ç%Âæ¿³§g3:š}Ö$ññlFGúwöôñlFGšÈÌžò­õÑì³&|k}4û¬õßZÍ>kÖÀ·–£ù™ìš5ð­õÑì³f |k}¤Ðì)ßZÍ>kÖÀ·ÖG³Ïš5ð­õ‘þ=å[ë£Ùg-Œ^ÏÀt4û¬©ßZÍ>kÖÀ·ÖG³Ïs$7ŸZéóØçHn¾´>š}ž#¹ùÎúH´99ã+ë£ÙgÍÔøÆúH«Ç9—œ_Øu¤u“gƒ”³º¬Ye £Ÿ¬8g?_•ÐOŽf?_-è§Žæç¯k}Æ—ÔG³Ÿ¯ÖFô“#õSë'÷SGê§–î§ŽÊœgj™Ñ˜qêHÿj5×ÿ­£¹:þiÁ1(ÑÑœ jeÅ·ÓGs‚øcÙB ‹²ù¯–EÌn,wæ¿Z1uåè7ÿšbS¢£kþ«¹<³WŽæ\W“^¾—>š}¾4—§Ïé_MÕé3G³Ï—æòô™£Ùç9ÚÛeŽfŸ/Íûé3G³ÏZ˜ÏÈÕûÙg­åøBúhöyŽöæûè£Ùç9Ú›¯£4?Ÿ=åÛè£Ùç9Ú›/£ôïì)ßEÍ>ßZ?ÓgŽfŸo­šé3G³ÏZ2óEôÑìóíÍ÷£ù ¬¬½DÐÑì³ÖÍ| }4û¬µ5_Bi‘¡Å}æhöYkd¾‚>Ò¿Z‘ÐgŽfŸçhoö=|4û\´æ÷‚DG³ÏZ7{ß„£ÙçÂòœõ~ö¹h_€>s4ûkÙÌÇÏG³ÏZ6³pô‘þÕ~}æhöY h¾}·Vºƒ”°Bbª…¶JÔgé¼9¾}iªÑðíóÑ\¥j4|×|¤væhøöùh®Ù4V˜>š¿†oŸôï ß>µ¹ˆŸ£áÛ磹*Öhøöùhö[£àÛç£Ùçyo¾}± MúÌÑìó¼‹7ß>Í>Ï»xóíó‘vÌfOùöùhöYÛ |û|¤gOùöùhöyÞÅ›oŸfŸç]¼ùöùhöY;;|û|¤Ý‰ÙS¾}ÍïDmÚ ¢ÏÍ>Ï»xóíó‘¶=fOùöùhöyÞÉ›oŸfŸç]¼ùöùHÿΞòíóÑì³ö øöùhöYû|û|¤-ŒÙS¾}>š}îÚi¢Ï:šß‰:ïâÍ·ÏGlsÌoÿΞ¾Þ+Ñ‘öJfO_ï•èhöyÞÅûõžŽŽôïì)ß>Í>k³€oŸfŸµ¡À·ÏG³ÏÚ‘ãÛç£Ùçy ß>MìO[…oŸfŸ‡¶Ìè3G³ÏCˆô™£Ùç¡ Dï1éhöyh;Ž>s¤ßù¯·™t4û<ïbaeé£Ùçy ßAÍ>Ï»XøúhöùÑn}ÖÑüTí”òôÑì󼋅5{ÊwÐG³Ïó.¾ƒ>š}žw±\ÞÓ‘þ=å;è£Ùçy ßAi·löôòö˜ŽfŸç],|}4ûüj¯—>ëh~ªöûøúhöùÕ1}æhöyÞÅÂwÐG³Ïó.¾ƒ>š}žw±ðô‘þÕî3}æ¨ýµŸv5Ù(ã¨ÏµÍVGcþ;{ÊwÐGÏŸvN ßAŽ´×öÓ©7þtôûc;•ï ®ùo×f)%:ºç¿³§|}Tþ¼åÊÆGúwö”ï fŸç],|}4û¬Ms¾ƒ>š}¾´UKŸ9š}žw±ðäh¾7›ö­ùúH»—³§|}4û¬mY¾ƒ>Ò&æÐ>%:š}¾ØÔ£DGúW›zô™£Ùçy ßAõe1ضƒÙgÐyÍ)Ù!äÿ·l óßÙg¾>ÒÖ©¶ é+G³Þ­FúÊ‘v^gŸùþùHך}öÆ)GúwöÙ{«éêÚ³v_u4ûª½oo¯r4ûª=o¾>šúÕæ8ß?Žæû²iïœïŸ´m+ã}æH;½³§|ÿ|4û<ïgáûç£Ùçy?K÷~°ŽØžÿöëhö¹hÇ>s4û\µÁNŸ9Òòì)ß?Í>kÎ÷£ù¾ló~¾>š}ž÷³ðýó‘6«gOùþùhöY {¾>š}ž÷³ðýkºWüOµ{J&6ÿ½àûç£Ùgí óýóÑìsS/è³îÿ›#æû×4ʦëÉr¥„ñ.[ }æhöYÏ|ÿ|4û¬g¾>š}ž£-þþéÍÀÿzÎ)ú®é¢'‹s„¹DÇôYßbþ§ö¼ùîÒ¢w&ß?•oz÷òýóÑì³®Å÷ÏG²Ìðý+ú®éÍH }ûfIÃ6Bæ{°ñÇùZÃÈä ·£Þ™^ûéפµŸ~C^ûq4×Tê7ß¿¢uß-dŽÏk?ýv´ö»eK`MU~ù߽Α Bk?Í ýýÓºO³àŸ>¯þja§É‹XyÕ‡¢ª¯ W€²¼è hóä6Tö¿ß¿.s†f–÷k;Æ­'pÎT®Z üaNÓ RŸ’«ë«9ßäXmZl5zÁT½Ýd¦éËl³¬=z HÇŠY0TöùTÏ~Q*[¦ûØ1ŸªWZ²\6ôÍ[­ïÚmá?=?6qu²îÞÔG_¦.Ms5£¿5‰þO[t6a>6Pζ¯!L™|àõåýñC§A}Aõ¬ÌµyÜ©k!ëô¦Òù‡Ö¼²Ïz½«tþ¡5¯ð³n*hÍ+ý¬ß•Î?´æ¿×ñèE(ZóÊ?ëyi`¢­y ëúK¥^dd' ë{u„¢5ïd/zŽP4ã¬÷«Jç:ðAÖýM¥óx§ ëÿ®Òù‡¼c}€¡Òù‡¼sý€G¥óxÁûŒR(:ðNBö4ʉ2³ÌŽBö æ([Yˆw²_0G9µû0ÌCö Jzí†ìˆ·4{Í\0;ÙGÐù³×̳óý?{Í\0;ì)ho¡Õƒô”ª×ïÚkâs5Âù7ïÈÃ,ÑçÎ} OÍ1uç];ÙŸ¸B»={œ?ÿ¸§ÞÕ`Ÿ¢A䫹SªÝŒ¶ö.‚ø\•?ÿè5ç–ì~èZ³~¶vGT²ö>væséÔ*³Q·Ð(mzNõD¦µÕ¶t0uÝÕ î‚Îѹsíª_¼µ¢Ý”ÙG=‘nm·-nÅ\}Í÷Æë÷+ç^œûj‰ìu–Û¸öhT¬  jˆ!YuÍCêQ¤¦*lô Ò)ñfϳš3Äþw}à†VuÇoïi߇ej×Þ_¬b×fŸ¬µm¡‚Zåvpö/ëd­kÖ½«•èd‰y1$ÇZ)«VWéüs­º¯.D+íêO”[¦ä•2cK­¶¶¬´6ßÐH‘ö´uèY\ؾ â s Ò°TÉô„soš‘€ Ãäô§«Hdu„É‘ÛñU´-ÖDH\P1Äv›3º¨.iŽö^ìn4v×P‡÷ØØï`G„=oô”<>_­1Knljð¿ùw³‹R¯U‡|åŒ {]Ihdž!½ëÊOZ|t¥xîU}s1¶hž½Å׿°1UN‡Øæq)|A|n§µ.Æ®ûÇyÕ%ÙüÖié˜Âm×¹Ó'qƒ¢Äö_ÛÈ“R•º´÷¾téûO›3ýWƒ¸Eq­«ñ»òé?NW‘xY?ª à½;p¹ºx:ÌŒÝþïÓõ±‘uª¤Aé:o«‡;Ý6RÓŠZ9ú÷dPz­ÍƒØ“Öu¶Ôñ¾{ƒÍkißPû‰iqµ‹›‘ Æúàô_NçÓƒk€Ý«c`ýÒv.ãìƒòQÈ®S|®&„Ú!)ÞÔp…ò.ޏ¸ài/­k¢˜R›£œÝsvɆ±‘gõ)*zÿ˹×êgý<Ÿ¹&½^Ïtêh ’§µg›ZuÑÏñ8ÛÕîû¿½¹í’ùŽÌöõê[¶¶û=2 ÞK>±R¬míwWßÃ4¡Ò®y¡*ï"ùìNùÚ_µÜ;å…[¨ípWÚ[é{“<MpÞüÓ¦wa¯*èÀlUsP5Ûœ7ùõ³jÖj¸¨r˜Ð:0{5œT¹Kè˜Ånê­Òù‡Ìf Gµ¨tþ¡³ZÃU­*èÀìÖpV›Jç:0Ë5ÜÕ®Òù‡Ìv ‡u¨tþ¡³^Ãe}T:ÿÐÙ¯æ´_&t`l¸­2Çè˜ Ž«l8úCfņë*×ý¡³cÃy-*èÀ,Ùp_«Jç:0[6ئÒù‡Ìš ¶«tþ¡³gÉ*•I m¸±JebMkެÜdXy ³jÕÕ:@èÀìÚpfµÑ:0ËîlÇ‘FÚ¥ Û­ÜH:®4ª`ØvXµ#ìÙJ­ÂÿÌžm©¡6]‹wT˜´¬ÍæÚ3÷6ŒZ¹Ð©.Ú37ÌZ¼íä…†­˜¶¯ž"öýÃÉ ÓVZP=´gnn·Ò¬Çz7Ý0oo•Î?LÂæê†+×¢Y}ÿpvÃÄ•c‘ê•›»FnSéü« pxÃÌí* .oºC¥ó¯ƒÀé S÷Qéü p{ÍØýi,ª‡eÓß0w5Õ{Aàú†Á«±Ìzìû‡ó&ï­Òù‡Ìý £·¨tþ¡s€Ãì•›•ê¡sÃð••ê¡s‚Ãôí*èÀÜà0~‡Jç:0G8ÌßG¥ó˜+l𥱨:0g8L`EõйÃak,rÚbÒq¨Á7Åf@'I¸P,"L,]¸R,*L1qÏ3*£ “C!ÆïŒÊ¨Ã´ã‰Å(ÄäЊŠ%P‰©È&ß Ê(ŤäP•Q‹éÉ!34UÆ¢rèÇ7ÅèÅ”å‘ ÅèÅäåP’+ÅèÅ4æ“5´« BshÊ}cŒÏÔæ–ñËCؤÉ9Ôå‡b Ægº³IÌ…¡IÜÄçЙKx|P Cl¾(–`|&C‹ÚŒÉ_ÅŒÁ´èMxÖ^Õ†îUŠ$8â¾×² Ò¢¨X‚û^M—6‰ S,^j£Ü4\襚6`"~‹ô¢Iii¡ œÑ‹XÅ$T,^4-ßCϼ&?Ö!:Wå&ÜK0x‘EDhRP(–à÷ ªHý…TP)–@/­PnZA£X½4S²M,èK —Ö(7µ`P,^š©&àÚ‰@/ºoÒ)ôT‚Ÿ'zÍ£š8 …­Š%ЋHÒ©žyM*<4L?u®ÊM2¸)–@/"zH§Ð ÅèETé¢A¥X½ˆìÑ®P Å襛öm²A§X½ˆð!B7K —nz ÅèE¤éÊ*‘`:jçw“ D P±zñC:í`àÿŠ@/ÚÝ”N!ÜK ‘?¤S¨…b ô¢]LéòA¥X½ˆ"B?hK —aj¹ b ô¢=Né  X½ SLBx(–@/ßûÐP‰ST«rˆšzþxh˜¤ê\•CExpF ¼÷ŸðF B¤Sè…b ô"Jˆt !¡R,^D ‘N¡$4Š%ÐËcúºI b ô"bˆt -aP,^ÓLLx(–@/Ú•N¡&  ¦­:Wåö…ÿQ,^D‘Nñ…¿(–@/¢ˆH§p¡F ‘D¤S( øO#Ћ6r¥SH •b ô¢}QéšB£X½¼¦È›¨Ð)–@/"‹H§PÅèå55Ád…‡b ô"ˆt ]•HxB*ÊÈc"ÂćÆSRm,I§Ïý@ÅÒ‹ÎU¹I 7Åì¢Ü´\Ìì¦ÜÄüË ¬PnêB£X¢ƒ™†oòB§Xb€5ÊM_K<`¦+˜ÀðP,ñþ3mAå¦0  &©:W嘂ðÐ0MÕ¹*‡ÆÀ„‡†‰ªÎU¹‰ 7ÅèEdm;Ce(K —ë¦Üd\ðèå*”›Î€ÿ=½\¦ú›ÐÐ)–@/W£Ü”†A±z¹La0©á¡X½\ƒrÓP‰œô™·ê\•ClÐÔÅ ˜·ê\•Cm€dJ æ­:Wå&7ÜK íœþÞÐ Åè…X$¿*ÅèE Íë ÅôrÛÀ$â Ћ¬QÒ)4‡A±z¹Mk0Ñá¡X½ˆl"Bu@%Ì[u®Ê!;hêB@„‹y«ÎU9tM]Œp1oÕ¹*7áá¦X½ˆt"By(K ÑN¤SébC=P¡H¬sš¡ÁY*2‰TãÔ&þ‰Ô—œ…ÚŠ¹ f3<K 6qP¤ø h…P›X(RÏ gbÅ@mâ¡H=ÖŨMLÈÀ[ Xµ‰‹"õÀk(K 6±Q¤˜ •b t#>Šô·¡Q,ÁãTíë`vC§X½ˆ“"ÝÀo Ê' —j>ƒ„¸àô"[½tÇasz‘-_º)ðæßu 7Å"3ÜóÁ(½ü@¤‡‹‰²Oÿ…ÿP)–@c4ó£\\ñÒd. Ò‹x€¸˜'ûô’ÓoÈj™=1(–@—Íl ó'ˆBãè’A5 F@›èRFs麚ëð/&Л"ÆÄõh…ÉŠ…8±$.OÆxÊ Ej‚y²N^ä S&ê Ef<Àr8P ua@A¸?q1»~z Eá…šp†âbvýôžrƒr9TÖWù7 !ˆœðo(}]§'(³§µ¡˜:ŠSB_Xí¨T'KОKNÿqú£™ A)v›cÖÙ-&Åo#…ÒGó¶Ë/&Ý>»Pþ`Ôw­šs <¤ÙÇ5 õ@Ϭ0!mmù¥‘ftò£øCŠ8ä™È“ÒÙôÓOso +ÐlÚŸl<|G‰4ýð[ç‚LÅi/HÝ`º•KÎ’[çÎ9c]‡Ë7.ÿhòäéW¢çYš¹Ô©œ{½»½u˦²ôÈs¦6ŒÍÛ®mWm°ÒÞi}jú¡n,EDei€uõKE¢ôzÀx†<8 ¨§ˆ1eU.îδØú¶û>€ÖZCÓ: è]÷å_šO,LS±ÜýKs À—ù…Îõí¼ó«)Y%R‰@#ˆÏÛTí‡2=òÙ…³M b‹Ï ¶õ³3á(¤¤‹dTükæW mÊ ÿÐ×kH»`{ò^i¡zÁéò˜ßØc,ôò.s)L0µè[ã3×›ôÇËØ¯mEìq|žš@>7‚Ø¿ ºO[ázÅôÑ!~¸§S,A'ì'!|ÅtÓaÌç¡Xu9Ãú/J½»Ù¿H( ø¡tˆçÇAâÇ¡~´ÑxÝì_$<ÐüóK*Е"z@?éÐ xï@A/q¥Ô±¥½˜Îï‡Åè¥8€ÍÃb ôRTÈâA±z)6ÛDüP,^Š ÙHL7Ô!ÿ ‹Ca&&U§Cè¥8ø†bâQu:Äà«ÃÙTL7èÐæ€D6Ó :„^ªCÙ\L7Ô!¾:Wå67Š%ÐKu"›Œ;Åè¥:p‘ƃb ôRm$¶Ùø¡X½T3²á˜n¨C|t®Ê1óØ:„^ªa<æ±t½4‡:²ù˜nÐ!ôÒôÈdºA‡ÐKsø#›é†:Ä[_çªÜFäF±zi„d3r§X½4G²!yP,^š Ç6%?K —æ€I6&Ó ‚²¡—æÐI˜“yl:„^šƒ(aPæ±}èzé§d“2Ý Cè¥;°’Êtƒ¡—îK6+Ó uˆý «r–‰§1ѹ*·i¹S,^º0Ù¸<(–@/ÝÆd›—Š%ÐKwP&˜éqëÐKwx&LÌ<¶/B/Ýš02óؾt½ ‡l²™™nÐ!ô2¼É†fºA‡ÐËp'™„e ~yt'´,Å5Vãvj¸Èæb: 0xìxè4•Û`<(–@“Ãå6?K ÉáriNáñØñй*ÇlüМÂä±ã¡sUŽáø¡9…ËcÇCçªÜ¦cš# š|\nã1ÍM>.·ù˜æš|\n2Í1ôò¸Ü&dšÓ@˜¿é\•ÛˆLtA ÄŸôÇå6#?K —Çå6$ӜއÎU9¦ä—æ4O.—cL~iNû«sUns2Íi liè\•Û LsDJD/¯ËmR¦9‚^^—Û¨Ls ½¼.·Y™æ4–;:Wå6,€QaKCçªÜ¦e¢/j žr½.·q™æ4¶4t®ÊÆBž?Í {:YÀÀZȨ DaSƒ³…ÄÈL“ Ûœ.$ffÚÔpØØàt!14Ó(zŒ‰©™FÒû/öe!16Ó(¡%FÄÜ<$®9]H ά԰ØÈàt!19Ó¨†…ÍÓ…ØèÌ#IJ¶,8]ˆÍÎ<”£,ÖÕe$†gÕ°Šuu‰éQ?èF°>ÇÌï1LËËë*ÕOžž:û½Ç4-_¯«4ëêîË÷=Æiù{]¥YWzêìÿó´ü¾®â@:=>ð1PË÷ë*ͺÒSg?ø˜¨åÿu•f]驳/|ŒÔò»J³®ôÔÙ>fjù]¥YzêìCµ|Á®Òü+•‰Þ~ñ1UËì*ͺÒcßø«åv•f]驱|ÌÕò »Š0:=>ò1XË7ì*ݺÂTß—©›jćµ®0Ö»y;áa­+ÌõOÌÝ<ŽšÜ”n]a°—Á›jt·®ôÔØo>¦kù‹]¥[Wzžì;ãµ|Ʈҭ+=5öŸùZ~cWéÖ•žûÐÇ€-ß±«tëJOýèc–ÿØU†uUûò¥[>dWÖæû¾ÌßTÓ ‡u…ÄÎã8ˆªk]aÂbçqÕµ®0â¿ËN5 zXWzjì_s¶üî2¬+=5ö±A[~bWÖ•žûÙǤ]˜þ ëJO}ícÔ.L€†u¥§Æþö1k¦@uÕúò¹a»0 z¬+Lú}™Ä©¦A?ÖFý£8#¡ÇºÂ¬ÿÄ,ÎãÈTè±®0ì¿Ë0N5B[Wzjì‡wa:ôXWzjì‹#waBôXWzjì3waJôXWzjì“CwaRôXWzjì—SwaZôZW½/ßü» £×ºÂÌß—™œjôk]aè1”ó829z­+LýOLå<ŽL^ë cÿ»ŒåT#‚³u¥§Æþú1{¦H¯u¥§Æ>û1|&I¯u¥§Æ~û1}¦I¯u¥§Æ¾û1~&JŽ'£Óã¿ó·¼.;2pz|øc¯š+ÕŸu…é¿/Ó9Õüùg]aü1ž_“¥ú³®0ÿ?1Ÿ _“¥ú³® ¼Ë€N5ŃþYWÚMµ_LábÒ_õg]i£Ê¾ý1†‹}ÕŸu¥Ý-û÷Ç®8>SXWÚ¶ âŠ%s9² §ÇÏ?&qå¸0‡Óã룸‚ ]õ²® ôeN§š}YWF ê/Õ4è˺‚ðĤþRMƒ¾¬+Hï2ªSMƒ¾¬+í1Ûÿ?æqEšÂºÒŽ£cÄ@®XESXWÚLv€˜È‰=T/ëJ[ÇŽ#9 Wì0Çé‰3¹×®z[Wo_1b(—ßÝå°Lœž¸1•+ÑÖ$G°±\ñ‹.{ArzâÄ\.§Ç)ÐÕQà]†vªiОÙëôÄ ˆÉ\n–St£÷Š£¹¢M1Œ–/ fs…4º‚ŠÓ3 †se£˜â5ÚVÜ€˜Î¤èªžÙëôĈñ\±¦¸ŒŽ? æs§¸ÿåôĈ]Ä)ŠÑwň ]$Ä)¬+Èï2¾SMƒöÌ^§'ž@Ìè•Øóž»ëôĈI¼Ú8žºeÅXžÿlÿ¿ïZ´>þù¬ æòZ¬ÿ«¯ˆ±•WÛ{5pA"ØVv´Ä)Ö?4‚egçAtÜ{ë"Á²´ó :ì½õ¯ç¥n[û aýëy©ÛÚ^$¬=/uÛÛ+€„õ¯ç¥n‹{°žô¼ÔmsïÖ¿ž—º­î@ººûŠûy%³“×:=Ñbíq ëJÏ‹#ľÎøÀ]ˆT·‘-Àº*¿m€·]\äÇ)¬«²Ló5sѧ°®ÊF¤MÄ€¼®U¹lC|,êíî˜Ë6NVË;îÀ2ƒ»aß…²c,ÛùóÇ*|)”຾ åY‘–œ®y•¡:+â@ èôÏ« „®rÑw™Ä9?¡ VÀ€v/·ÿewMß=Rqò·Ý»¾nü_N·uü´¾A[¬à×2~÷úAûBÔ ä ›eýÄê™2Œ²lè– üßÇ”¾ÆÃ¼Îp%ãä0áâF_pjéÁÄ:K°Låë X„¬Qò ]yú‰lûñ¨ë$ÏýD„U±ŸöÁë.EgzèùP{Þè§"ìŠÜèʧúÍõûaXävưzîè'ã0-t?+Õ…?›„QrÓsãÌôHR ËÙƒ®Ê´Èsé‹'49‚HóÅtƒœ-²Ì¯„œbÈyƒ4çÄgîòÜþÃŽèh C*Y9ÒnÝ·üÍndÍÈýðãüæF‹($H@?Ľÿç9êXqåýåµ²C/¥xzY_ýù<‚~RpÝZð»NÓ!̃ †^HIàFH¢AØGª‘õTn8*˦äûDþ·? ‘4oKËK÷(²s$ülºñ¾ï„Fè•ãº+T7(IBÊo»–Æ ]„Âk¼Ïí3ôÛõÝ?×pZÄ?q×?­^©*Ù)ü¤PË8]“+©žžï 'ï)õÆ¿7žÜTéÿøà®Ú\õ& Íõ¯—•>y¬‚µ…%ë/¿jÒa%ÇÕ³Ûô#Bb,g»zÞ`=/QRd%ï•t‰)xa2o&–ª`îõîÓf%–Š•ýl‘@+Y±Ê¼âTZÉ…¯Î{•¤ZI”Eö}Ãke̘–=@gÚZ¹³€„o©“n­,ZDñø}ÐaÚ)x,ì¿ ó1ò[)¶@k>|Nɵrl1?ÐOÁêKr®•m‹ù𷓦kåÝ*r[nÿúNص2pi0Ïø Åˆsqµ>F«gå"{ŽlüOzÕþBOM¢®ÎñM¯ºgꇺ|Ða„œ]Ę0Z>F®•Æ«s‡ßôù5â<^"•ØÛ¨€­Œ^â,É““¤[¹½ÊBý“KR°•å‹lIºƒž"&=ØÊ÷Õ$¬ ' [™¿hTïo'eØÊ¦F[ù =È´` N‡§jI#–¼`ÙˆQÆûY©Â@Ç•½AZ’†Én4…Gä$c+kØ á9ÝØÊVä¦î>;ñØÊ$V$®'ÙÊ)Ö$n£Õˆ³‹u ×iÉVž1u×§íFœqìÙ¨ÇkÃRrÝt—2ÞÇHYéȆÈx_#ÎGFwÕ€¤Id¶2“á«_>èeÄ9ÊÊFý<;¹ÙÊVV$|ælå-k~bðle0ë¯SŸ­\f@Âãu´•Õìðx-ùÍ C•¨Ñc¤®”gÃÂ÷×KÅ•óŒHß_'K#û™Ó  ùj¯´i$ÖÝ)ЊáAíYyЪ¾s§­dh @Â:vµ•­HXÇΧ¶¤ ëØ™Õþ˜ðB±nÀ:v޵:Íü« >)lh‡–iÀ:Vàƒ•n þf‘ß½‚Üu1·ˆÚ V¼pÔéBÂÝ"{˜ðòŽ Úw_ì-â@Ѐu%Þ“²»š¿Õ$¬«ætmapu ë ²Ù»8\@ºjfl­€fdmp¬BFIË4àç‘@wè\D¶peëŠ`%\.¢[ÐJ¾r$’«‹ÍuHXWpÎÚâsåB xqÃ:ë‹ÑEÖ5°®Ä…r`p³†°®Ä†rp°³†°®Ä‡r€ð³†°:z_A>ÂÐnÀœ¨kq»* XWÔ¸Ãî"žˆ°®ªQÂï"¦ ؈¤Óô#L-Ì:ŽŽÌé ü®fGHæôÿ[k¸ëJü( _k¸ëJ ) ck¸ëJ) gk¸ëjô $¬­á¬+xR×â{1T°®¼q‡ñõ0T°®¾QÂùzª°I§'8HØ[˜uE™Ó $ü-Ì:ޤÌé ×pÖ•8S×pÖ•XS×pÖ•&á×pÖÕÓWÐ0¹†°®àN]‹ÆPiÀº"@ÇØËPiÀº"HG ìe¨j ³6MÕD$Œ.Ì:޶Ìé $NfG\æô «k¸ëJv ¯k¸ëJSv ³k¸ëŠÕû8adG¤ëêí+¸HØ]à XW°±®Å c¨cQ¶8=AFVøcÃ''ðGøZ#´2Å¡zqèþE÷º$®©“( &n ¸Þ+ˆ©[$ŠÑ²¢˜¼%@¢­+"ˆé[$šÑ¶¢‚˜À%@¢í+2H(\Ã# :Vt¸†5ú}V„и°s=KïŠ"v®'Ú êG_°@ÂÚ òÇX$° amˆ®åˆ!¡saçz¢ ¶5$„.ì\O´eë·¨`@Âã…´u-2A8eí+‚Hh]عšÓE$Ä.ì\cÍé‰$jv.‡²æôD ¹ ;—ÃYsz"Š„Þ…Ë!­9=QEÂïÂÎå°ÖœžÈ"!xaçrhkN_ÑEÂðÂÐåøÖ>E Ç S—£\»ÂŠ2–Æ.Ǻv…i$wE0 Ç c˜ãe»ÂŠb–©Ží +’Ix^x¤:J¶+¬h&!ta6s¬lWXM6l|ð¾KJ%À­?Óµê&Œ¡δþ‰¤-¶XCu:Ék¦âh$}ñÅÑÉt’WMTXQNÂú„æxÚ®°"„÷…ÍQµ]aE; ó 3šck»ÂŠxî†4GØv…õ$ì/Li޳í +òIø_ÓmÛVô“0À0§9æ¶+¬(á€aPsämWXQPÂÃÕQ¶]aEB ìAÉ^QaEC  ËÛã5VD”pÁ0»9V·+¬¨(aƒ=(Ùë¢b:×osÉ„õgB×µÙdHÂú3¥ëÞ|²$aýõ~¢¤„†yÎÑ¿]aEJ / #}»ÂŠ–f®¯×HÅÑMúâ•%{•D…5%ì0Ìt×ITX‘SÂÃçà®°¢§„!†;¬£}»ÂŠ Žž°Žìí +ŠJXbØð«ÛV$•ðİç=^1•ÑO4•0Űè9:·+¬ˆ*áŠ=(Ù«¦â(m1͈Pˆ’½n*Ž‚Ò׌8…(Ù+'*¬è*aŒaÜ‹9 +ÂJ8cXæìÿå +ÊJXcJöú©˜öõÛœ32ks’õgâ×µYgD1ä$ëÏÔ¯{ó΄õ÷ôu%ì±%{ULÿª›{†j8Éús¤”¶Øg/ªÑI^KGK鋦9Õƒ’½š¢ÂŠÂÙƒ’½ž¢ÂŠÄÙƒ’½¢¢ÂŠÆ&Ùƒ’½¦*¦‚ý6¨œdý™ vm&yÊ9Éú3ìÞ\4bAr’õ÷ö%Œ²Ç#­?SÂêæ£¡N²þQ¥…‘«ìAÉ^_GU É̼²%{…E…­%̲%{E…±%ܲ%{•Um x73­ITãåDn ¿ìAÉ^iUÄ®ÍN#ö%'uãíDp ÇìAÉ^mÕ_?Q\Â2{P²I{ÕvŠº9j¨†“œΑWÚb©1'~ ¾ù3þžˆ.ášÉku ë©W¢º„m&/Ü)¬?¦^‰ì¾™\i§°þ˜•%ºKgrÔÂú3eì·ùj HÂú3iìÚŒµ$aý™6voÎD9Éú»ú‰öæ—ÕÔ±ºyk¨†“¬?Ghi‹¹v£äeGu”–¾¸kšiáék[WXÑ_Â@Ãå××®°"À„ƒ†ëïëÅV˜°Ð^”ìåG5ì·9l HÂú3‘ìÚ,¶$aý™JvoÛ’°þî~¢Â„ö¢d¯?ªédusÙP 'YŽäÒ›­ B¶ZŽæÒŸ­ãU'yýA…%&¬´%{ýA…)&¼´%{ýA…-&Ì46Ÿ_¯?ª£»ü6¯­IXŽîrmf[’°þLA»wˆ˜BÙÆû ó²™hÏ'œKødì^¿¶ÎTÑ6­¢Ú·þòeóÑà6p“¼~©&£FªÑEl…©¦£NZ’°þMH;¬´ $aý›’vxi˜0¾x=¡^» zIÞN¸—Å/Óç¸zþTk?!_ìc°õý35íðÓ0òª'ž?U“ÓžoÈSÍ~Jéý§“Ö?ÜzYL³N'­ÿÍb O ÂPýà‡Â†í§ý—P´¨k êŒOƒðü*µ Iß.Ev›Âúsƒe1áô%†´(m6ö¿±Žc|WD««{~‚E<öH†é\ÿ d»Íä?ìÅþ®X͉¬L@äXË1wK¶ ÇϳPÏ£aHÂõyêy4 Iø÷óPÏ£aHÂ÷g¡>ÿaö/Þvé TB¿¯_ý,´ó|Røhë‡g¡íG÷þ‹?«T·£¶ Ç*Ͻ>Æ0$áçƒnÈ¥R‚×§~öSŭdžáåy Ú‡ÊÖ™pù½üñÀ•XäÏ ò€Ÿ_¥Ìücj¥I–0H~$L«t‚±¼¶ øÇ”J'(EÃÕóÊÆàéOšƒ{ý©OX^Eª$Zµ°‹b ×S%…uH\„öÁÄ/þ3“À¬>UéÓô¶Åw Vv)”)ÊÆæ¼} rdsY×­O®Û6>‚7’—dêãk8\Š wµ_Ûl®\«¦&™süÙ”®¾«Â†Š.Ë¡¨nâu÷·Ky´ô«Ð/É¡ê}†fˆËë]kUaJ´^6ÄEz¸ˆa®.Þb ¬X˜ÁÞ$7v­šZ¯­ÍJIû=øa½Âe ¾"<…Vx¸»þs:…jîá»ÉI¼?CJâ­ 5 ýµÍH"¢=Áë‰S¿^­û©á®+EÅ¥´ëÙã^7®ú~õPëŸç§þ'–³ ñy¾üЭr#AäVGŠS8 êöƒ[Áá8y8\6¬rz5r5< 4‰_‘Ó\\³ˆÂTBaJ­¾kñÐ_üÙÝbdíÓþ¹ ô­×wãõ<g6¸«*“(‰V"HÆõ® *mWý¹ªJ•ì ’FÌ¥Uª¬]ʦtïÕ»ê¹ào÷„6Ÿ^V¸)Ƨðí¥¸5±_¹}ÔrM¿ûç_OûˆðkãsýgãcUåËî]k×â2ä·ÑÁ]‹7'µSßΠ׉9Óø½KëIؽgš6Ën‡Õ×ÅyŸÖë #a‘{OöÔÊ8^'Ñ['½(F"½W}æ¾Hûà¡.h—ôÔ7N*C çå$ž}é¶ñrú.¨RU½”Ño ·ï +Kb㽃×Àêß®Õe"í²³žë×ó_%ŒÄúyO¯>9éÎZˆ–F|ju×R©³3öÌäÜ^߃vÊÇž7[.tnùJ%ùo 3ZÙ79пöóQò`9ÈŸòõ¯:° —õÿøGHþX¨°‘Êœ6§Ña¸x¢þmE?.EzWêóLiSGY³/êè¿Wqí±k–l+|2{ ?ŸÔNo\z‘3 Ù‘xwéýi¿¯ Æ(§þ§Auââ"3éŸñÛƒ` …ÜæÍÈ©z»jqBrçÏEêçúE¦†BNê·_îŸOrôùÕkZâÒŽHu'ÇÆßl²d¿æ]·qúlÂH7ÒVU6˜ñþòVOkì{ç^U£d¶ ÑàÚ±©6€®Ý?ºÞ8ÓýwUJûV‚rÕø£—Zeá7—{ÜHûo«ÊF£tª:v…æ Uölð[Vøq{:”Ý+AìN2þl¼¬áh¥€G͹·»^o?m¼¬Í¬ìZÝ»ýàgC«œ]ö¦D¶²6ÔW'•ÌiuÒUÏîVϦAË»ÁU×öX¶²Õþ{éaýÜb)ŒÝVýîRi+B¸„"_«xB¥Ö/“ôìmy+B„ß,Pö—v)Iøþó©4D6)}±Þß¿ÎÞXö»:9®<ŸÀ“Ñ>¸Ú1±~ð²KÛj_‡«ª8!ŸÅNª+޼ÈÅ1lz\4Åßx߸ ïBynøó݉ÉNÊÅ™ÆD©všðTȲã³ÿr»ýK‘i§àùO-pí$ý(ccæùÔ¿R‹ü¬NNj–E¼\ÿvvR‘š‘k®u ‰a¼mˆ„¨.òïŸQÝä%Íèíæôõ>›LÞŽ;øèìd­=;ãïÞßzöîÞuðëì’¬õú¯~‡]®¯½(Õ”û\ŸLïéUïäÝä½mÂd/P ¤žNaý²‰¹w É¥ªM•Ûù ¼ÿ—MÄg{D¾ŸíýIøþØŸú·¢55èï–ó³½’çúN–ydü]îÏ8EÏ3‹,û%,á¦Ëv‹z9Éøµ\ íM#•“þ-_è@Ôoñq^ÏW|¥ ÝäåþÔ¯ïÆol—×Wc_õ¾ûö°|•ƽú’°~7ëH"ý[]¬-®~ éûR¯ç'^׆nM‚Uu~?ýûL­ŸkrÉ˵¦$P^üÅ+;¾Úõƒ—”ÆQ»I¸ö/ÛU»Iø÷kÿðºµDú·³ã®M×¾?öïÛaûÒûï÷/ Ùe»þ€$¬û‰?Ëi[SËË/aãö·Ûö-Ü'¿Åq»_žÔøjß>éŽÛuü°YÄ]'ì¶ës%rãñÅÖý{Ë_P¼±çó'÷æ;TÕ±¡“òBŽÕwœ£‡¡×Õ7‰“©÷èñM”a¿jŸt— ò=É2ìY}“yáŠ_¶ÞoÜJÜP<³Ë½ÈŠo6)¬uRKûå$ϰ‡õ}û$?¤Šv’ðCº¡“C®Öï»ô¡TÜé7™†=­IøþlÈ~ÚdÛ:É®cCöÔî¤ÜÖIÞ$Нö $áû³¡xk ëoCñ×®@Ö߆â±M"pN²þ6Ÿí$aýl(^ÛHÂ÷wCñÛ~€$¬¿ ÅsÕp’õ·!ûnT£“¼ˆ²÷6A”8É‹±¡øo“¸œ“¬¿ Ń»IXŠw’°þ6/î$aým(~ܤSç$ëoCñä@Ö߆âËýIXŠ77ªá$ëoCöç~PN2•olÈÝJàts’'écCñé¾$¬¿ Å«›ôïœdým(~ÝHÂúÛP<»„õ·¡øvw ëoCñî&)='YŠ÷$aým(Þ¨†“¬¿ ÙÇûE5:É‹ü±!{y¿„õ·¡øyß@Ö߆âé]€$¬¿ Å×»IXŠ·w’°þ6oå$c&¾ðv’|Ø÷Úø/ß— áó-WlAßì±ý›)ÅKghë×µž¸9?vÜÆ:í¿'…•Má8¾Í+•…Ý•I\Ư“ÎÂË‚$nã÷Iia—eAÅx9i-ì´,H¢¯'µ…Ý–I´ËËy¥·°ã² ‰n¼Ÿv]$1þ¥ÂNsaçeAñ示°û² ‰×ø{Ò]ØYЦÒãï¼R^Ø…Y„õ‡ê’öÂNÌ‚$¬?T—Ôöb$aý¡ºd¿°³ ëÕ%†½˜IX¨.)0ìÅ,HÂú»úI‚a/fAÖªK {1 ’°þP]aØ‹Y„õgÕ½Ë ÚCW#¦Âãö¼’aØ‹ù†îäŸv{^é0ìÅ,HÂúCuIˆa/fAÖªKJ {1 ’°þP]’bØUY„õ‡êÊ’X<Œá§ô¡T‚F¬?T—Ôve$aý9ÔÓÊñxè´dýYu¯˜U:…V¢ úXuïÉaWæƒ_'†½˜IX¨.)0ìÅ,HÂúsª²½ „õ‡ê’îʂ$¬TWÿ“Öâaü ?¥uchºH>N2 {1 ’ðó‹ê’Ã^Ì‚$¬«æ]^Ð ]ó£Ëó#ÜžWJ {1ßDŠÜøu’bØ‹ùVs:Éø}ÒbØ‹Ùxòoàö¼cØ‹YDêדÃ^Ì‚$|P]’cØ‹Y„ïOí'=†½˜oh1Ëãö¼dØ‹Y„õ‹ê’"Ã^Ì‚$¬_«î]^Ðî´~Q]ÒdØ‹Y„õ‡ê’(Ã^Ì‚$ü|£º¤Ê°³ )<Çíy%˰ó )&Y9p{^é2âŬð-o'aF¼˜ üòæùhý¤Ìˆókò]ú?NÒŒx1üåíéÿsÒfÄ‹™ð/ïHÿß“8#^Ì€yóü º¤Îˆ3!`^ÏŸ©°’gÄ‹™ 0¯çÏTXé3âÅL‚°×óg*¬ñb&AØëù3V x1>æõü™ +‰F¼˜ %ózþL…•F#^ÌÄ‘y=¦ÂJ¤/f"ɼž?Sa¥Òˆ3±d^ÏŸ«î]^ШFG¯çÏTXé4âÅL<™×óg*¬„ñb&¢Ìëù3VJx1Sæõü™ +©F¼˜‰*ózþL…•V#^ÌÄ•y=¦ÂJ¬/f"˼ž?Sa¥Öˆ3±e^ÏŸ©°’kÄ‹™è2¯çÏTXé5âÅL|™×óçǪ{—4ªÁÅóg*¬ñb&ÆÌëù3V’x1eæõü™ +ÍF¼˜‰3ózþL…•h#^ÌDšy=?¦ÂJµ/fbͼ¦%Qa%Ûˆ3Ñf^oQa¥Ûˆ3ñf^»êRa%܈3g^Ï¿©°RnÄ‹Y‘eîŸçßU÷./h--~LÒm„¥ÂJ»a/fAÖ¶I¼a/fAÖ¶I½a/fAÖþI¾a/fAÖ®I¿a/fAÖþIÀa/fAÖßÛO {1 ’°þ`ƒ' ‡½˜IXÅ“†Ã^Ì‚¦Èúª{ãÔì,Æšdÿ¼¾Àíy¥â°³ ‰Ûøu’qØ‹YD1~Ÿtöb$Q—“Ã^Ì‚$šñzRrØ‹YDÿ·ÜžWR{1 ’ÆûIËa/fAÏ¿T؉9ìÅ,Hâ5þœÔöb4…ׯU÷./hT£IöÏë ÜVz{1 ’°þP]tØ‹Y„õ‡ê’¢Ã^Ì‚$¬?T—$öb$aý¡º¤é°³ ëÕ%Q‡½˜IXW?©:ìÅ,HÂúCuIÖa/fAÖªKº{1 šÂë‹×ª{—4ªÑ$ûçõÅë„¿í}IX¨.I;ìÅ,HÂúCuIÛa/fAÖªKâ{1 ’°þP]RwØ ùþùÈúAuIÞqÒfq[^é2ì…¼ês%ßôWŽ+3úáJ¹ÈsòfØY„o‚óLlWfë‡+ù&8ËÄqeF?ºH…Þü:áÄreŽ«r—¸þµx©ª”Jø& ¿80ÛU„oú‹³]QIø& ¿80ÛßT„oBéÇy»ª>|ìRFÅõ¹ˆõ‡þûòL}=*.bý¡ú80oWÕëà¨Þ¥ŒŠKëJ^D¼ŽDûnÖ$á‡Õo/å—¡i¦þó"Ö@R ±~¸+qp¶SâMxš7ã«íëå|(l¼ï‚gWåJÖ®Âɸ°ý üYPûÅ)1Žˆeã©Å¨hšNúúÔÂÕ˜©ƒÇ'ý{òmpy(½ðûøHÙI„Ÿo|>¶£Ôëëëþx‘‚ûRü’ª½‘Iøþ%ÛN•„ïOë×H½È ;mã©ÊU5>~62¤V\†T*¡Nz‘ìÛÎÕ`—¨ëà\+(•þ¼zm„ÿOf××~ïR ‚Kß/o9+úN²R?Ü k“ÊY¡´³®¬ë$´Ì´æíýD¯òâL„•ãuÝYܱ¸Ô2Ó; ¯×u{q7X\²ÌŒr޽ʋ3A~ø¼®;‹;ºFO=x¯ëÎ⎮ÑIß뺳¸£kê¤W¯×ugq×€$üpy]wwH—×ugq7€$¬¿ÑOô*/ÎIX^×Å]S'}^¯ëöâî¡ktÒúst«½¸{è´þ¼®;‹;ºF'­?¯ëÎ⎮ÑIëÏ뺳¸£kê¤W¯×ugq×€$¬?¯ëÎâ®IX^×ÅÝ’°þž~¢Wyq&HÂúóºî,îèš:éäëuÝ^ܽtNZŽnµw/]£“ÖŸ×ugqG×è¤õçuÝYÜÑ5:iýy]wwtMô òõºî,î„õçuÝYÜu ëÏ뺳¸@ÖßÛOô*/ÎIX^×Å]S'½‚|½®Ëâ΋³âNZŽn•ÅgÅ”þ¨°£WeqVÜÉÇøu¢WeqVÜÉ×ø}¢Weq¦ãí,TØÑ«²8Ó‚ñvžF*ìèUYœiÁx;S#vôª,δ`¼«‘ ;zUgZ0ÞÎÖH…½*‹3¸(¦™PaG¯Ê⬺“Ýø{¢WeqVÝIëÏ뺳¸£ktÒúóºî,îè´þ¼®;‹;º¦N^ÖŸ×ugq×€$¬?¯ëÎâ®IX^×ÅÝ’°þ®~¢WeqVéäeýy]wwtM¼¬?¯ëöâî¦ktÒúst«½¸Ã¹Ý´þ¼®;‹;ºF'­?¯ëÎ⎮ÑIëÏ뺳¸£kêämýy]ww HÂúóºî,î:„õçuÝYÜ ëïî'zUg•NÞÖŸ×ugqG×ÔÉÛúóºn/î ]£“ÖŸ£[íÅ]¡ktÒúóºî,îè´þ¼®;‹;ºF'­?¯ëÎ⎮©“Åúóºî,î„õçu]Ý!ªFWÂÛYÍíÅÙøTí'pT–T•ñ«Þ1­Þ½$£W_±ê3ç·–d•^i|E (*ìÀQYRUÆçAtúÇ’p…òºJÐp…8(Kªê¡1ë×Kº×e´ÏH¬_/ Û^—qi¤Z¿ŽnÕ?q€¼¸ÚxÛ¥ƒR ¤ZIµŸèAYäµ”W@¯'„Ì^WõÞvé T‚+ù÷×úgÝåuOuûþýyݱB=dÝô~ðçxȺ§úúþ}zñQ׺©3>zbý:6CÛë&†N'¬_fÕ­ïuý×õ»õˬÚP¥TBé~>˜U¯u•×E•‹të‡Yµ¡N©-Y?̪÷’,ë¦ñÁû.¥t‹X?¶&ÅÕëõÖ=ÿ> ­½ê¡ëô$ãgÉ%œØŸïºþ»«²t¢ÿx[?®ðÛë2©k}uti¥>Í=î¿+€SŸ²çƒ×Ó¡,îLÐÆÿ=7cÕþ6ÌÆ‚P¨£‡K_ ^•Þu%M}-׫ÖkH·~ì‹*•ÂÉ3E J1è&€š„=™ô)-0%ÑlÞß%0R¢(ø#cVæe>`¾2g¾]¾§­ +hÁp¨óQç³Gòäžü†ñçèñþߎ€P uR7m¨ºój䃿©õcÎËÄö­wUýˆìç~Ÿö]ë—Z•`HóíÔÞ¼NÝ`.]D˜/W¾y¾Öow‚ð6ׯŸQYáK½ŒüÙŽ–k?–krúÔìX~™rà“ÿ]Òš¯l!`ݦz‰ê–…Â7)GrdÜ>ò‡þ›–Ãy3’Cƒs|#é5îT5 ŒŒ@+ÁF ~ûq¼´Rl@@ƒe–úV’ º®…’× ×‚Vš$!WX*™o–T\B®¬ÔZÐC©DùFÚN±‚#)^ƒ\‹À‚ÚÅ¥µPòäZܵÔ.®ª5œ× ×â®-‚—fÃøuRm„`VÜëoq×AK3ëoq×AKk^ƒ\‹»¶jHÂ÷wq×AmIÜÿRa'ÝÁ¬0¯A®Å][5.­Ax r-îZj7—Ö ¼¹w-µ›Kk^ƒ\‹»¶j\šAX‹»¶j\šAX‹»¶j\šAX‹»¶j\ZƒðäZܵEPë@Ößâ®-‚Ú’°þwmÔ ëoq×AKk^ƒ\‹»‚ZáÒ„× ×â®… V¸´á5ȵ¸k‹ Æ¥„õ·¸k‹ &Ufá÷ÉÀ±fÂ0” ;Çb‘iè,ØTØ86­ð¶K¥\Äã+Ÿ ‹`Ö¸HÆ7NŽÅ2k´Ÿþ?Ÿ4! 5®äçãp×Ì-£*ñóAr‰dðØ5„¯¿hk‹ VV#Õ×_ܵEPCÀ"óõwmÔº~ÍõëÉÀA©©f¢—­þmZÜjºA5óó[û¡Å­¦;T3?¿îKÙ]£*,2ß_÷¥®®ÁrÓlðòÐL ƒ›¦–45 n3óTÿ>øx|âö/½Ç®x´ïñ»Vœön>ò|Éíʧî¨m-p¢ˆÕXž¼»5ÜèkìV¾ë»e^4Þ]MOŠû\œ(fUø-HË Ùõwƒ@Jy}_ÌÀ2ïs­{AšûËãÿvt’O«†4#¾˜²f^éZuAMß4òÁû‚4­¾œŠ.øØ8F¢Àl„yå§UE¨ü‘ýNÙâ” M´UÕ')ÕÜå3iŸw¯Éón®êß%×r×öÐ9)÷•±¸GµuáÚ¦-šÿëL­ß&ÔhøV`„ ðM˜s~ë„Æ°ôèÎuÄMÉ_eõA–¼¯Ö¬f†)¡´|™ ù6ŽÏqßäà[xÉm¾Yc0%Îc箽—§ )ø4¯¹3›[ ÝŠP4ÃYõSëgè¾YMhÞuûiß­’Ï)õÍÙ_µnC÷ãøï[·úKôR"–&zéªU]«èEW ú\xß8ƒ|÷Iõß¹V5tËûõÿþàφ.ªJ4ãïÆ5R¼Ç5/þ¾­qéçÔw­Ÿ¡ûÆqq϶¿­ÎJ±`;!¬ò6M­Ûµ^ù¿rÖîŽ;»L¯Ι¿¯u†þŸç+cùmýíçƒÕ Œ/MqHu’ÜÉõ!h5]WT´? UCN÷{àü¨Y²±r;n2Ô)ûüõºc($²‘?ˆÁ ã ÷ðð‚$rݺ¡N©„Í=q·{z‚*8† ßê»Â+Þ@„oßCô \Gù)ày¾"3¬ðÏ7tíðº)žxØ½Üø½£‘^+ÆÃާ°c¼D°B–®ÎøK¨à^îÅ·=Ç *ÝîÃÉì¼]TqÆGØškÕåt\‰‘ÀE¬_7X—çrív/Nnèÿ…°Ö$t“<ñ‹.~K5øb ¸>.÷'ÚêŠÁ€ñYoY‚%ÐP©¬~Æ×2*Ü£ñv†é Øx¥T¢Ix|µüGuÕ„ŸŸzTçR Ü¿}ëWëö¼Æ‡ÙÙ¢£0ßk¹oÓ?pE ozJmšt—Lºåp®˜xLÿTÜ?Ø+`6Œ©QâÂÿ Ÿ›Bý _öÀôñúuŸÓ|¾ÎÑ’Sôiüwîí½<ÉÑ—îÇÈýZNæË“¼Iøy\NæË“¼I¸ßËÉü$å¶;øÆOéC©ðóä,Þc»“£j:áû¹<ÍãIî®Ó ßÏådOrwëû÷¸œÌ—'9]§'¾ßËÉ|y’kB2®~Ÿ¤ÞñoÃúYNæË“¼IxüËÉ|y’w ߟåd¾<É„õ³œÌ—'ù$aý,'óåIþIX?ËÉ<žäZ(¤ëÑÏ{R|ÇœµŽA{o'óåIÎÐt‘Ç¿‡åd¾<É „Ÿ¯åd¾<É+„õ·œÌ—'y’°þ–“ùò$ï@Ößr2_žäHÂú[NæË“ü’°þ–“ùò$gh\Äú[Næñ$÷иˆõ·œÌãIî¡qëo9™/Or†¦‹¼Ößr2_žäHÂú[NæË“¼IXËÉ|y’7 ëo9™/Oò$aý-'óåI>€$¬¿åd¾<É ëo9™/Or†ÆE¬¿ådOr‹XËÉ<žä±þ–“ùò$gh³¥îòíd¾<É „õ·œÌ—'y’°þ–“ùò$o@Ößr2·'y<Åû?¥ƒR .ÂÊãÞþåq¿¶5áñI}%îmH`|ôÄJö~‰!¡x|tÂJvÓ5†„âñÑ”\ìdÞ¶!ñqý×øõõT/„:áU[l c*Äe¼'öŒuŠÛx=Nì1(ØëÅx;Nì1(¢ìÕx?Nì1(¢ìÍø8Nì1(¢ìÝ=¿/ÞÃ/Ëிü=Nì1÷¤¶¸kmn ß]ëÛP€$<~wmlCB’ðøÝµg„Ç﮽ÛÐ$<~ïáÿ¶!aIx|W?Nì1("ìÃø8Nì1(ì~~¼‡_–!ÁC§??îZ]†]xR]ܵ¶ 7„õç®õmH(@ÖŸ»6¶!¡IXîÚ³ HÂús×ÞmHè@ÖŸ÷ðÛ0€$¬¿»'öm(x>øØ¥ŒšöiÄú£k1d·–è®ù`oô^œN×\ªQ×{Õ÷n$ç.óA6r üÚ½((îuÛÁHÂã÷FußÁ HÂãóõØÁHÂÏÍÏÞ@_ég{>¹Šƒ:…Ÿï¡ÿöFð 4…=ÅÛ¯×ÚÖþlÁSD?ïÙžÏn.!`»UÅ­eoß@ÖŸÌköp‰þJtWžu…µ½¿7‚¿x9Nì{£·}ðºK;¥YöŸ÷nï’°þjßÐC©„ôãE ö²ÝÙ‡u ë§>{{yûÄ·/þž|ßqg'pl÷" žøÇþ’°þì‰Üá „Ÿ?{âwø $aýØÿ¸Ã7 ?öÄ?îðHÂú³'þq‡@Ö_ë'ßwÜÙ ëÀ«·=ñÛq‡GfäØ¿mwxT;ÖŸ=ñ·;<ªëÏžøq‡_îî÷¿vi¡T‚#ëÆT?HÂú³CÆq¦h@ÖŸ<Ž3E’°þ`LõãL1€$¬¿Þ|œ!Ìõv/*l'ø8C(˜ëíôˆTØNðq†P°ÖÛé©°àã ¡8¬SX?¾ôq¦¸$üüùÒÇ™¢IX¾ôq¦¨@ÖŸ/}œ)„õçKgŠ$aýùÒÇ™bIX£'ø8C(˜ëÖŸýŽ3ª“ð"¡Øa;S ºaýùÒÛ™Õ½ëÏ—>Î7„õçKgŠ$aýùÒÇ™¢IX¾ôq¦h@ÖŸ/}œ):„õçKgŠ$aý=ý8ÁÇ‚è©Î“C…íg[‹WëÏ~Û™BѾæÖŸ/½)tm~ÞÙ-¾ôq¦¸$¬?_ú8S ëÏ—>ÎHÂúó¥3E’°þ|éãLÑ$¬?_ú8S ëïíÇ >΄€Õ¦Øá8Shw•þ'ø8C€·ÌÏ}éåL3DcçÏóóêKg LCZDzþ]}éãLAÓZDz¿úÒÇ™‚¦µˆ4Û¥úÒÇ™‚¦µˆ4Û¥úÒÇ™‚¦5HÏï«/}œ)Äe¼'ø8Có.ûÿÕ~Ç™‚¦5HÏï«ý¶3/ÍY›ç÷Õ—ÞÎMkžßW_ú8Sдéù}õ¥3MkžßW_ú8SÐ4ƒ´þ|éãLAÓ Òúó¥3MkžßW_ú8S ëïêÇ >ÎòΜÂú³Âq¦ i Òóûj?„íLÁ­Ñœµy~_}éíLÁ­ÑœÕ°œàã ÑØ´öü½úÒÇ™‚¦5H³ª/}œ)hšAZ¾ôq¦ iiýùÒÇ™‚¦1ÔX¾ôq¦@ÖßÝ|œ!äÝy;‡+,'ø8C(-ÜÖŸý¶3·F“@'Šr…å†f··ïK/gŠå‰n|¤Âò?GCêëJÞ™¯¾þ³Ý"*„•ìë¿Û-¢IXÉöhøÅ£¡‘Zù¼I-–úv‹HÓ}œZz¿zýSí_~o‰H¢{|ÏñOGg]¶¦ïqRß×ÁݵgÇœÕt6–ê^÷í6ÑwÒý_wó¸=/»Têð•Æv‹øúIôÝôýWì½jU×R©„²KxígA©„Rôx’ŸkÕã o·Šƒ?Ç Þ‚$Òÿ÷8ÁÛ­B„ŸW½·G×W2!/ª«{L¨T·_ÿëDÿõIßxÙmWÕEFðzœØí1!HÂýwƒãx¢Ûmâàý8¡ÛcBDÆ7Žº=&Id|'t»M’ðýý¯§yåÖ .â—›.v¦Péñ$¼ºé²Ý2 „ï¿›®Û#£Iø%ãªm;SHIÿÁ?NîÛ#Àã34¶Gø³Ý*–‹Æ.­nŠ´„â…~|ð'x0®¸MÔ‘ñŸÒëPä7¹h,ˆæh?úÿ4X6Ïž_·ïËAÚý³Ý2HW›¬¶JYÛþœÞïú¤êsî¾¾’âäŸÎ‘ºÃé^ç¡ëZ•vGU[½½Ò%%徕4ûvï5²æHÍ81ÄS`§"?=É¢¬üC®ÿnèJV"%¾ŸÜ¼•kÈI‚ؼwjžå¿ã»¥G¦ñÜüÍ™³ÜèóHø¾Ö^v)ýï@åÊË•±æn¿+êô méÂ¥EÌÂ"úà©ß?ª1®w Ÿ4mµÝ>N>Éø³ s–§Fœ,¢Ëpé! IjÐß|j¸7JÛQ OløÌfcíÚ WÁÐk&6¯ IBW4åvõ5ïNr§äBzÈz£'ôÉOâ­'ÃÓʪ¤µÄÆÛ.”J(«M^oÿ¤ir.%9®Oá§–„§†^JÕ[ºü9ž’KI¤úƒÓD%WÒÔ=Ü5g¸qV%r ývV °íê¡ÿm"-5׿3Ñ"ÁìÀÖ^€Æš‚…ƒ×\i\OLÚ(Ÿºu×x»¼^OcÕuÁ‹ö€ç:6ã§£¦Lô[wlòÝE5‰ëƒ¿† ç`ßl¼×P—Š»îî¿Z¥Popáb+Ч}V€bÞbÞNâuãr·Ï2$#ÎùëZËÝ>Ë@¨4a0Ra¹ÛgH¦p­œõ;îöYÂBqÎ_WXîöYw¢Ž»}–ÃÿÖºq¹Ûg8Ü ßwV@¿¾—‘tN¼ÿV…ånŸe ™B£Âr·Ï2.ØðZ” ËÝ>ËÀA'¼mv'ÿíed’°þXÅÝ>ËÀA'¼¥Âr·Ï2p¸Ö+ ¸Ûg8Ü ëPÜí³ î„õÇ (îöYwÂúctõ½Œ¤ëtÂúcwû,É2¼¥Âr·Ï2pÐ ¯E©°Üí³ „C<òû±;ùo/#;„õ‡'vÜí³ tÂkQ*,wû,‡;aý±nŠ»}–ðþXAÅÝ>ËÀáNX,žân¿–°¤‚³Bºû^FÞÁ›mTXîökÈÛÕÓ`*,wû,ãoWÛ2¨°Üí³ªSΜ,óªYš´ÌÙú.ÈÐKU¸‹ÁéÞ^âŸG¸ï‹Ñá±)*µúf3ê•ÞÆ_—†*iNdûmÞã¹ ŒGvI>MáÙrn]U¡BÂ~Ô~kÏ~ëZ›GsÃÏ7Úƒ@ßY G}ËJ?£è; ô¥¾ñûàõ,Ð×*æNc©ë Y ¯õöê?!Ö*ÙUYÏÞÿÖ²úÄ`=,h¤B¢ °¶e©ªAB· ŸÖ„F¨}¤V͉ŒêÂëï?ÐtÂÜ$×ú¹–J%˜Ñøà¹‰R )ù÷µ~'›ûNļ~³¹'‡Sÿàm—"'jºÖ;ÚÃÐiÄúsRÍG{ºÉüÈI=í’°þ b}øhHÂúƒŠõá£U ë*Ö‡Ö€$¬?¨X>Z’°þ b}øhHÂú{úIZ>Ùp#ÖT¬¡Óˆõg*Öæ£aïp#ÖŸ“zl>öñj®9©Çá£Ý@ÖT¬­IXP±>|´ $aýAÅúðÑ„õëÃGë@ÖžÞ>Ú’°þÞ~’–„O6܈õ‡§ö‡ÆÐiÄú3ŸkñÑà“ 7býÙÝ|ñÑà“áGýØÞÔíi~øh7Äeü:IKB{¼x¹ß'iÉæ›Õ^v)>Q´_Ìk9wyÂoª[™ÝžæÏf™]Uíß©ß;z¨b‚F*,Oô°ÄÈÁ€3ëã9\7KìZT3Ö]ähö®›%v/ªK2RN{×Í+›jvIXf‰ÕM5+@ÖYbmSÍ*D1^Ž;z¨bø±>žÃu»›M5£l|ð¶!ê?á‹Å;}qÏዟëã9^jõÔÂÅ?ÒÇö„4ØO{øf;{¨f8.üþwöP͘òx~Ñï븳‡jþöà÷qgÕŒ@•¯w;ú]Ž;{¨fTy½UÜïzÜÙC5#–J"¨ô»wöPÍ ?l¼wöPÍ‚ã㸳‡j3Â9\a¹³‡j3Â9\a¹³‡j3Â9\a¹³‡j3Â9\a¹³‡j3Â9\a¹³‡j3Â9\a¹³‡j3Â9\a¹³‡O3Â9\a¹³o*Úøà}—"ñóWN-¨V‹ïäÅ] ©æ„s¤–ñ+|4˜ÎßÛ1ùwÚ?4Ë¡«“þ~kÝ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌ¡ªÁ¬pWXîÌá«Á¬pW8>ÍlŽÁ¬pWÔ(•à¿î«Çúë}¼ñ¶ Æ®ÊE¬ßÖ»røj0/œcÀµŽÏ2T6˜Î1à †xë¼tRúó÷› ËÝ9T5˜Î!àZÛçyQÝî~¤.¡ªÁ¼pŽŸ»’º„ª&zEùåûË0I]LU$aýB%LRSÕIøùÄçZa¥Óò~4 ì÷ î+¾ÚÁï]Z)•ÐEò~tHÝ{óÝ„Ÿ‡Ô-›ê&G§÷úàí„6U͸#˜šÛ¶B›ª&H"õÇ lªš ?Ÿ°ÀØT5Aº~ôóžÀ¦ª š"ï/X` lªš ?fý6Õ­I¸ÿf]›êV$܇Խ7Õ­I¸ÿ©[6Õ­Iøù‚–À¦ª ’ðóõôØT5A~¾`%$°©j‚$ü|ÁKH`SÕŠ–3OH`SÕŒßÑ/,°„6UMÐѯY`¿Mu+@Ö¯Y`צºU ë×!uïMuk@Ö¯Cê–Muë@Ö/,°„6UM„õûöØT5AÖ/,°„6UM„õËzB›ª&HÂúcjžÀ¦ª ’@pÛVH`SÕMáïÃ0 ì·©n2¹Ilü>!MU3î'æ¶­À¦ª ’hÆë lªš ‰n¼À¦ª ’ÿ·m…6UM„£;05û¦ºñj椌ÿ9!•íú}ðMp»x+«>¸mãúÜl~$qÿÜl~$Qþ-{Å"¸Ùü HÂú»>7›IXׇàfóƒ ëïúÜl~$aý]‚›Í‚$¬¿ëCp³ùA„õs}n6?šÂ6 g6ÁÍæAÖßý!¸Ùü HÂú»?7›IX÷‡àfóƒ ëïþÜl~$aýÝ‚›Í‚$¬¿ûCp³ùA„õwn6?’°þîÁÍæAÖßý!¸Ùü h ¯oÇý!¸Ùü HÂú+‚›Í‚$¬¿ò!¸Ùü HÂú+‚›Í‚$¬¿ò!¸Ùü HÂú+‚›Í‚$¬¿ò!¸yÿ[„õW>·mžx>øØ¥h…úàÖŸYZ÷Ú_¯¨FgzýÊ^ú2Zì­óëà\Õ¥7¥ì¯Z?lÍgCýK%Ûø½ ê®Jûï¿– ñàÒ)Z.]--Ì1QÅÞN´]ÈIøÖ×¾¡‡R 6áséq¢ñn‚™µæ·—¹]«í?ÿFÈf+¯ù^‚$ÞÅszôáÌéOüï “þxjd¯÷ú,Oýºüó7~ïÒJ©„¶>¼5—|æ÷öï7$áG/tC.•Ð&ЧæöBOÀƒøïýõÔÜùÌwÔœÊ ƒþzjnWtCÔÒÒAŸ»×¦y{¡'`B\å‰úæÓ‡úŠš°\ÿ¯ƒ;Ÿùqµ§i­òiÄ ýãjOÓZßäÓÈÖÿvµ+}ýàe—º–„–>ù4²ëÿñ·G Ö»þW{ªJ6ßÛ ýãjÿIXÞõ?®öTÕøóiô®ÿrµ·+=[' w©kIH ù4Ú p-Ó»&ú¾ù4n(VªJù4n(VªJ ù4n(VªJ ù4n(Vª¢ëoC±zPUJȧqC±z<@Ö߆bõ ª4‘Oã†lõ`׃ý»|7d«»ìßåÓ¸¡X=¨*%äÓ¸¡X=¨*%äÓ¸¡X=¨*%äÓ¸¡X=¨*%äÓ¸¡X=¨Š¬¿ ÅêAU)!ŸÆ ÅêñIXŠÕƒªRB>²Õƒ]öïòiÜ­l}°—Oã†bõ ª”Oã†bõ ª”Oã†bõ ª”O߆bõ ª”à­Û±¡X=¨Š¬¿ ÅêAU)!Ÿ¾ ÅêñIXŠÕƒªR‚McCÝ ªJ ù4n¨Û`AU)ÁTògC±zPÓBðë8Øo«Fùà÷v Çª@ÕfûCÏ9&]BÄ †+N.âHq)íŽYW´R(Iîáp±+æ1ãI\ÆO̹‡R ±ý}p¸Ø®N¥27‡*ó ÕÍ·fUpc±Õþª“»˜žn¶Ú|uVVr—Ïu ñÞdÉf;hã—q(m—vÊ.mg]qµ$fl*­ùÝí{üŠÊ#üb‰è¯ŠÓZœ¾šZ ê†nB¸>Wðfüb“‰è­„h}ü~#ÜlZ}|ý¢8Åé­WƒÍUU*qKd|ÏÆ»›$‘ñ½¢ª©™L“º/W_ýÓ«Sq\~mHšg ¶³®¸‚N–À°ìz)DeQÊùß²ŸÏ<°m=Úþøù»ÏÝ)•°}Ìx;¶º¥áƒ÷]ðìª4õ3ÛŠÝ«™“º¹Â ÛƒÉÈ›sW؆ÌHÿözþH…¶!³—­mO]©°Â6Ä`Fš‚×SW*¬° ±z‘¡àmPK¨°Â6lƒZ— ¶ µuJ%|ëKûÜ0˜‘Áà53‰ tö}ëË©úÆ`æ(y´c Drƒ—ým; ¸ú|ЙZ²Ê£o:Ÿ©J–Êß«¬d-yLjFn­ÃŽjOM=Óó}µöÆ4µnCEŽè—÷]ÿÞ òß±qkÏĪaè~̃zL|ê‡dèüܹœüOÓÒƒ‰W×§þj5.ÝžOýwãׯ5¦Ü]j×ÓÃÂ`³þïªÅMß6͹pi»Áߪ¯ xr»Âép’Oª$½öA»6s{¡Ó+Úì1ÎmÌx_8ú5™ìÙì´ âv׋‰J?³‘~¹ÏÂé¿¢÷i3¼ëÝãïQ/ýum†ç¤!ëý%ëä%ã%;è%cçå@)ÂæÜ9iüû"Z Yí]˜•¤n(8¡p ¿‚¨¥h˜ø”©((½0*I ‰GâõIÍø…ðFÏîäU}RwUðíf`B¼Î4>vé›ú >:ü2ÂM7„gû"Œ/þîRXëzD´…»ðññPج÷›3.¼ª%WsëPß?\x bãB­÷rjÝRÔÿuýÝ*3š‡‹øçîZuAÌXlë-òO«@šv+gÛþ9¹VßµhŸ3­_7¸{õÂÚÿFâ.¹–ëgèU™,6N-÷ÏÆk2XW¸Ä¼}ùÀÿ_øR1ÌU*ñà°ïO”Ô<¾BÈÕ+úŽÖ‡‡^`ò_Þâ·B ñüiŠàûoý>ý?ªÅëÃ"ø¤ =z¯Ó~S KpRx¦(Ñ&Ž¥kCEì êÄõr-ã7¥EÂÏ ‚ßAcá—ö™.û(ò:"uÇËÄýcõÒ®oˆÅ‡Ô ¯»´S:ŸØ!2Ofõ’ÀŒÞ§$‘þ÷otÆÇõe‡È<šÕ‹¡—R ™P¼OÂžÏ ìè-œB\ÛÛû ìù¬ÀŽÞÇ)¯½mB`ÏçDw|}i:ù¿6Ä¥é/¡Ÿñû†ôN!®ìÆË ¹·€'¯'¢÷i ®Mo'âÞâœd¼ïR­C°NÉÄ |dÏgRôNi¬ctfâ*°ñ³¢)z§`¬J\6~V4EïãŒU‰«ÀÆÏЦèÍš‚±*qØøYÑ÷>Oùà÷.­”J\·ñrˆ­ÞÇ)«WŸElõ>NÁX•¸ lü,b«÷q ƪÄU`ãg[½S0V%®?‹Øê}œ‚±*qØøYÄVïãŒU‰«ÀÆÏ"¶z§`¬JÜ6~±Õû8cU|eØøYÄVïãìTñ•aãg[½S°XÅW†ŸElõ>NÁX_6~±Õû8cU|eØøYÄVïãŒUñ•aãg[½S0VÅW†ŸElõ>NÁX_6~±Õû8cUxÖlü,b«÷q ƪð¤ÙøYÄVïãŒUñ•aãg[½S0VÅW†ŸElõ>NÁX_6~±Õû8cU|eØøYÄVïãŒUñ•aãg[½S0VÅW†ŸElõ>NÁX_6~±Õû8cU|eØøYÄVïãŒUñ•aãg[½S0VÅW†ŸElõ>NÁX_6~±Õû8cU|eØøYÄV/v ÛÙì`ãg[³öÕŠ÷àõ»…£ÅlÁ˜_VÇÙÝ^¬ŒYñ¥Y çÃõŠ<6qÔ‹Õ‚± ‹VjXâ.ö¨W¬åF {Ô+Vã·w$Xâ.ö¨«‚$ÜI¾¯azÅ*H¢ý[«ÛCÕŠhdu»ˆ¡^¬ ’ЗÌËz–¸‡"ªe© ?|D½v}½b-D¾½¬gÈ¥S /ÛYâž1“ÂßžÆ:7‹åk‘Iû'š¡y åfÁ¡%š¡y  ÷„hY‰fTâ‹ß¢~ 4Á ±ÔjIHI^8¦Vq-•JHŽøœË ‰h2éÁû‰†h© )L–…xº¢!šG*HÂúíω†h© ‰èç=ÑÍ#$áçoüN4DóHIøù׉†h© ëoÜ'¢y¤‚$¬¿QN4DóDIX£žhˆ›gúÅÛfŒ¾æ‰ ’ðó9ú†J%¤$“Å –ê; IXãÙŒÑÛB¿–ë?‡}¶e&hwõ&‹]oßhcкIøþ°‰WCðR©Dh_ýÜ«ÝkT§çÿ6N‡ ¡=ú÷ûi¿žvÈjÆÇî˵»6výYQ¬ÛîÕÆ™öô§¸]ŠÛ殽àV²wâ~‰K¦é\éh²§ý÷DKs¬2 î «à^µÔþ›÷ѶV´4‡4c§ìÍûh[†¸ Uµ]›÷!µhm‡<#‚˜ŸoB%¿üYFp¯\¿üò+nÙ ¸W®ß?Iæ‰K&H"×;ÿ<ÑÈîUVܲ£mõj0´[ªí§Ã=M³‰÷æýùíWÈ´—3}ÿžëä·OÔ+¥?øªCc­pXuá«V£Ö¼4ßßÌ?]«$[¢bmœ :!jñ{=vü1/Á8Àúµ-Ñð:ÿùSP–<nÇç,Ií2e¢ &M”.楘aî¾T¶´y£H IzÏOò½NlºŒPé!4n, Tè!I™Íçk§P»~Èìn•“øÕóµy.3- w;Ý"Ìî”kЉxq9™Õ%߸K˽K榤µ:š­(C̡Ҏ¥B4ÅÆctƒ>»Š&ÈzA“ÜÌÑ­}þi’¼j΋öʲíZàŸ¡8aªgáTçæø¾\œ™‹”óhä–]$ \xÝPσ¢ŒþýçF+O†jIŒ¯H…ùíòc‘‹U¢q'f!DñS\Œ?ë¹áÈ–¯xKÿÞ Ñª¾‚|ïü•£ÂúYîf Íú¹ÄÓVøÊµÇ¿¢vîæZ;ªE†öøÖ ÷ç:µ:µdÊÑ*ò™Wa©Z·ÖÇ_g½Óü“ú´Ê3¤Ô»M ѵq)Ù±ïÉÁ©j袪„õK-ãR¢fi¼ª»þû¿Vo «ãÔw­ß®¥ ½´ž<Änp÷Ê¿/^ ~~\ë·;±ÞF«ÿéË~ôÖ+ëçUj*ì·Í»^9yÓ}D°3Ò¶½tÒøØ¸r‰ÖœóK$gà,Nž¹ÓÍþ½Ž8B6Εf³9¹æ%–à·ÞS·_±ZD(3ô+ÃÒc‡I²ÈŠ0 «Üt¦ñkCåoȦ >œ&Ž ›çhZáaðàåCv„q|¤ýº¡ùÆVHAs¯ï¿-¿M0,¦êLã}3äÖ¼~V®¨”|Ä¿ñ'ûŠZ©7§rÍ%|)ÉüÝPf |ù¯¯ZÆõ$èÍ©„2ÅùèÿÓjÉ$‚éF&©u¥Öz3NáM®4¸z%ßá"ßá)ü|øZ×w|vë]x[©¡³’~Ƕ3~ìµßÒÏWa,-Æj=ÿm·ªZ±0W½ëúïQ8¥Ò„'a¾VßР¯#Ô~ÙuÃt¯¢\2PøÂÎ[L½± Ø36¼¼ _U!þ©l@\ù}𺠇&}>í·UUÙåEƧU³ 5\èRÿÁ‡¡Ca|ábÕ®õÊAø{¼­ë&Ï5Áë乌! BËw­÷ƒ»”ÊËíw%ï9µ®= ÑášèpJ—Ù3=p«—ñr­¿Þéß¹ª -ÇÔˆ«¶ q9tö˪w[uAVb=·æ\k„ó×{Ø}üÙWeh/'ý;Ý<í‡ý˜úߨ­æ/Ýf‰G}³Òê&IABÓãöµm’L!Ÿd¼lˆúTå"V­›î 2êYL³ÍªZ«ö¿Ñòêù4­ŸÎÚƒÈÁ‡q3µ0b:˜M˜V+Vîu7“°Ü^Œ­<ÔÁ‹Ò5~˜b—¶¦.yü]lÍ(Í·éNNÙ¾úߣ•ËL*˜Rýà•ø‹÷½Û÷óéZ·k…¢; Ó¡V«K5ヷ…[5%'YI× "dzæ¸ÌìÙNÿý܉±¡÷xô…ó¥“ÚõeM@!Ó™ÿÂÿZç^iÚyå1ò@ Û~~az)ÖõÁ¯ã纗ðâàÛT8Î~f‚)uqüi*,¨Q*A#Õx=~‚a‚U>¢þ>“Á|ù † ¦˜ÙStãýø †VyøûrÿÆÇYÐL1…“.þM…@˜6.ºN#¯ñwãW˜\d·Ûᦞ-’ï—:—ˆÁ«Ö/$4Åd†éõ匭Vã±ÝlùÖÅ©]L[žÄt[ÇëWs˜´&þò¤z'šŸNH¶wžt?Ý\_6b™ˆ‹È¾•ÍRqÛŠ3 ñ€‹\nR†kg—]êÑ$JW-´Ÿù ©Ì5³Ô”Üh…Çq-tUd¬·×]ÿ¿8\Áº§ðÝw­kÕº Iøî»Á+PVØã´.Hªr"pëeU_Vx©UW­ûɪ\c–é}·Z¿+ü»dÿ¹jöî»wRk¬ZZ d‡ÀmÒ +ñà®%Hóxåßõ]ë· TÏ Cõ·UeŸ/Nh>¡íÊßåNý±uzíyj -=þÁ¸vq9û½¹âý»kh»EûºÚ,nœo§?0=›5—‘À‘qóྫõû·4S~çb.ýý÷±¢7ƒ(¼"ÈKМà2ùÎÂ[ˆ§LÈA\.–ZÛS& l- ;\a;ÉlQ—ðãQ¹hP*áþ×~‰A¶òÁ¯ “ƒn΋‹ÅF ohx| "x1¾ƒÔ…´ñzâÓmrQÿàm—Ò´ÆÏ óñjýC>2yh0RïMánˆªR-ãó wëÃ[2¹¨ÿ>ø'~]ÈAƒ‘zñu÷OüºƒãóÞÕÝ?ñëBŒÏ{Wxb¯øu! Fj ‘dWüºƒ†ùòüõOüºƒD}®²ðT.h®µƒØ™$Üíâ×mòÐcñçL4…gèD’]ñçL$áçgÔÎä *ƒÌÁÛ‰?grÐÂ}ÿG?ñçÄ ¢þa­T ’Ô®IGoú÷œ|‰”Ô ½¹þ{ò&RRƒäÍ›{aZ‘–n ¿?V¦i©Iøþ¯ L+ÒR’ðøV¦i©Iøþ® L+ÒR’ðý]A˜V¤¥$áû»‚0­HK„ïï ´"-¡:m˜ar¯ L‰´$ÕÉá¢8Ç8v¾ÀIé:8F—Þ”Jpdý±íüaø ëmç¹§IXo9ñ•BÎQœ×âôá®ðû{:„õÇfè‡Ü3€$¬¿·ŸøJ›¼ó|ð±KÑŽlaåÜßfø@Îéø"\ÑÏ{â+…œÓ™)ØÂJ…߇ÜsIã׉¯rŽüP‹Ó‡»ÂïCî©@íßbóü>äž$Ñ×_)ä¬KÝ *ü>äž$ñï'¾RÈ9òC-v°ô\J%ŠºZïö[xjÕ_ìEËðeüݸžËŠjÚÁiиFJÔ£_?í¯ •§c®£}?W®u¹Öͦ‡b¹êLãÅ¥7Û…'HOÈÆë†ø/õÉï±ñUkøúEÄS¤ÿ}ãÊT Í£¼WÜ AÔÉ èà+û]ÌÁ¸o…9âûÕ&)ð6iã:xûíRH+"…è·ü潉½!TŽ˜‹ñázóÞĨ*GlÆøp½yobÔØäÌÉøp½F Cä#£¾Ô1‚·ÃkX6e­6Þ¯aUºO2>Õ#6–XVü|cÔ¸–={ †šßS¾M=±Ç”SßF  {CzoyÓ‹ ËJ{ ±\7~¬<4‚å§Ú/w­)4¾žñí º–Ššúx;Z‘x9éƒ÷ ý¶e*×·M¿ý»VÏUU„_Ô2t¯Nöîª@ÜzN÷õ]ë·‡¦ëCOò¦ajýÖ Sû|ÆßúGÝÖóÕä^”¾ºri|¼tR-ä‚Y½º|}•Jøùÿ7´HÂúq‡ïtM>U¿éƒ?ÿÑ at˜Ö2¤‹à¹ªá8ÌôgÀ@ ÈZdôÝõ]ë· —£qêïV©U°W>プ@ê‘#GñžÑªURK»LEŽSøþ¸Á’«Ê^-H×÷óçk•@ Ⱥ:yðH>EŽSÎ’C?]9b”X¦Ü ëI5ü¦ÏOvpe Â[,ùFß”Á‰Ålý±äÃ=Ç”©ªuWž_–|,.Ywª‘F˜_û¸«éq„§†IQYkö}ˆðˆës‘wÅjúo’#¼ªJ¤cã¯ñ"ËFq,ÂÕ`O„'|à±a8¡kFöqž€OÁ«=ûEûú>zÝYk$ –Ç=}ß •XR\_!¯:ﱤˆ0ÅKð‹;®”D‘Ðf1‹‘ö›K/˜á•u¿Ä'õ»¡‹-Éʺƒ÷‡çGªt±[YYwèqÝøcèb·RIål´éžŸYRÐÅn¥ŒB/ûbÕï_UÂ¥uS¢Ôöðôž••e¼R*¡w¯÷¤¬ÇsGª! ?{(ÓK%Jðvnæ'ÝÁû.xvU1÷Vû㓸ŽoEüóƒ?;çÛ0DŠ7åv3ëäÐHÄÕh‡uÒ!q¸‘Ë œs0Éé ^a¤ø¿Q8©¤œåø¼kß8}sãܘ•/Yç´×­uL %ݽ5·óÏÝÎÿpFH{ÍZ‡œú}ãôS-iöÊyl*΄wÚ«ªki$Ü / ƒ¿Rw4Å­¦ü¸–qjQFOýðQk]ú¯­’¿Ïf®ÕÞ=jC+ÿÞW+îŸ&®¯•àúuCSµúÁ+}=C£¥çƒïNÊjÁÎq»ÿj1§Y£u®>¼÷½Ç‡&ÌH s$òÍåëœO8Á”;¡L©bã×7îl 2U¬¯?¶ C˜‚µº`ëÕ³W*¬=aSpR·QZ+dOØd¢ï‹ +dOØd¢¥Œ +dOØd¢èùºŽñÛS=ñ‘°Õƒ áU\aS`$éùúŽaЧj=øóû²5pžà¤f¶L}™ƒÑLyù@¯?ßžÃâ#Üf!T9—-Ü„@üWÓAleÞ‹ƒ¶pXfø8‰÷5E±½§ðýÇá7‰÷:'¡'ï~“xoGU¹ŽÃ¯!„”¨¹¿C¯ü' C£kêD> ý´Ê££ëëùäÕí¯dï{ðŒã—O«¯•þ9í_wž¾àɸRŽ]ß¿¿¾’ý% úÇCdUëɸRªëšö>-ýOvÀ¤ì’^œd<ÙÑ/)þØ õóãªÅÙû* · :¯›«–°IXÿ#)0)þê/»´Q*1ÄåÍì•øÏ{Ó‚$¬·zï½í$áû;úIüç½kAÖ¿·ÅøR Iÿ²-Ý)þ~<¥I¨ ¹ø¯-|A+EàüÊ÷aA+E`’ðø´RV A+E ž‹œäñ/h¥ì@ÿ‚VŠÀ$áû» •"hNÊø9E`R¾üY¥òÕ“ëT•“W½ò|îZ&¶éÑ’'Ú~þ6ç-œ¶HÂúÛt·pÚ „õ·éná´U ëoÓÝÂik@Öߦ»…ÓÖ$¬¿Mw §mIX›îNÛ$aýlº[8m¨†“üûÜt78m⤠šÂÄĶénpÚD<$þú¦»¨R"¦üÚ¥…R ðbü>±¨ÌI$Q—‹Êœ4AÍx=±¨ÌI$Ñ·‹Êœ4Aãß"±­XT&ž ’xŒ‹jsÖÞþ¬Rv¿:õqÒÿO,*sÒIX?›óNÛ $q¿N,*sÒ*;>×°þ6Ý-œ¶ $aýmº[8m HÂúÛt·pÚ%ÀIÖߦ»…Ó6€$¬¿Mw § œdýlº[8m¨†“Þ©°cQ™“&H ¬¿Mw3§í¾€$¬¿Mw §í’°þ6Ý-œ¶$aýmº[8mHÂúÛt·pÚ„õ·éná´l“¬¿Mw §mIX›îN8ÉúÛt·pÚP 'Y›îfN[A5:É[X}ÓÝÌic}›Òßß¾éná´Ý@Öߦ»…ÓV€$¬¿Mw;Q—DL;xÙ¥ìþQaý:–UÙĶŽ\kÅjÚœµñÁû.}(•àJÖ?ª»Ÿ€EaŸmüù,‚“F¤í×›øœè¢Tâqè¡– +ÖQ"%*V¥JUDn¿Þßz„"·ð–ZÉ®w-èú}¸5ŒƒP! X¤é¶ñ±ià~tjÿÒ:P»?øØÜ‚±púà1FD¸p'üè!çY,„Ð8rûè0÷@!4S>ÄîØ´Ó¤'±p­@•R Nò£™i3&Lk€{”O´$CR ެ?ÜÌßߦ•ŒpKJ^Mõ5Ph-ú´—ŒßÏ¡e(’^íþÃØèÚg#ÏS> (ÄЬ¥§²êùÑIàýCöØã9ÓøõƇUƒëºûß#KÍijÞóé¡BÈ"K?˜òé¡ÖaŒ :LùôPÁ´‚ú_n—+„l²Tûᆹ%:‡¶®­AèƒÊ«E?ý3þ÷?OÅ@‰7g‚›V<ª&n xq2¢è¢ýè÷ ‹pá÷y 2>â[;ÙQtqž*•õƒB }bœñ¶b¸}O½S«íÐ}‡F0÷Çmµ/.q_Ü3FÌyxõ!2¾7i!6üÜÆG*º·CíHµp‘E‚ãûÚì„£]*\á–TÛaä³vÅ·ðŠoàýw὜wcâÖJÝU÷¤&j«–åÆkëÐH­åÁkÃP˜?¢˜€Xµ,7^[‡*)™bâaÕ²Üxm$áÆŽ¸ñb’¸ޱéJ¶ýk^217ª©Ê‘"׺\«FH Þ¿JƒËzÕ¯»´S*!%ÙÒmÌx·E„_â¶(üNŠPç8ø';hR?ÈìàŸì Éï€ Ù›ùûɺSC\ǧ&¥®%¡‰ç·øÔ¬ì Iý@|ê×ó[Bã®ì Iý€wÙëù-QqWvФ~À…ìõ”¨¸+;hR?àBöz~KTÜ•4©p!{}‰Š»²ƒ&õ.d¯ç·DÅ]ÙA“ú²×ó[¢â®ì Iý€ ÙûD?Ÿì Iý€ Ùëù-QqWvФ~À…ìõü–¨¸+;hR?àBöz~KTÜ•4©ˆOýz~KTÜ•4©Ø.}=¿%*îÊšÔ씾žßweMêvJ_ÿ>‰Š»²ƒ&õ;¥¯ŸDÅ]ÙA“úÒ׿?¢â®ì IýÀNéë,QqWvФ~`§ôõ器+;hR?°Súš ETÜ•4©Ø)}ýû#*îÊšÔl‡¾ÞŸ&*îÊšÔ섾þ}weMêâS¿þ}weMꇗMl¨ˆŠ»²ƒ:õƒ ëïþduêAÖßýÉêÔ‚$¬¿û“Ô©IXå“Ô©IXå“t§†(üþ¤H$uƒ ëճɞ<†NípðºK;¥8^3ÿ&*îJq¸³>øÖ”¾ ž]KM{ëFäJawlAV ± êÊõ ‚£ ‰¨æ=i ìŽ-HÂCwø‚¶=¹išë{hvÏïÛ›¦5>o}wmlwnš–㨷¶‡»ölwnšÖHMîڻݹiZƒôÖ6NÜ¥„·¶ñï^i$¶;÷óÁÇ.¥UOë÷ßÏ/þÛÛÝû“µAŽ×œÔâ‰R.­AÚ´8|é•ÐA>ׂ$¬?÷jlwm.ýO…©Õ2Îí°Ïñpÿ> ¶O6þÙ+̓ݭWU? ¨_Û]{¯‰ŠŒöJó`wkA¾t½—í®M×8É÷^%Í¥òIþÙ»ÿiç‡Ý›Aïh·noÜ)g•`mp°I1èä¯UXVØö.pÝÜC}Ü<—ì8 ôD·œAVœxr¦#‰ |Ø/Šf÷(.^çÚbÉ¥W}Cºkâtɾp…s6ðJ7þ~ÂÌMáε†k©TêQ„Æ ´b@c¨2R×x$™|`¨J4 w3Êf0Èà.HÂÚ÷"ÜÐ$^ÙÚËà~i.~1Wð¸&ÓFÓ"} +²´ñþ×´ÆIó¿¹~3~dƒI²òO¼ïR©c@V†›|-|Uxÿ†ÈÈ\¤$Ì]j ×"1ŠGÍnÐøe¼ º› ׂ‘ Ùúáèùà— .M½/¦¾©ï·úqiÝíÓë—¡+‚Sk¥žô7Â8hÅPßdîçƒ7ãW'N,óë«oF8µ(c¼¹þb|§ÀqZ•€Ñö…œú¬’Ì_ø» ®UÕý³~Xp;‡»b2wùà׆Jßay_O­J- êûùv­Ã3o@¾ÿŸ«ÉâC烷 «ë^¸w½`—ž:÷˜'oÞš°« ½”J°*OûÏ¡¸‡lc|ãoJ!›£?bž8°Ï­²9—Ö¬Ë*™ß\«yã§”^Á¹•ÁÏì<Î=<ñƒVOȨήöj1¸xÂCzQÌÍz$Q÷/ÏüÁàÕÅú·3Š)èTåú}³šW^–EЬ÷Áí¶¤þ{’³,.€¦¶=©µ’³,.€fRgUTXÉY!«°=©p2´˜+P`MX– qUÝ$|gMx¡ÂJš)=6˜Rk%wÙ\‚ñÁûIβ úÜNT9w%gÙ\÷ƒ?«[?w’;å]Î=\s¸S6¨R+W¥ÿôÏú¹¯/ [ÿ«Ä_}j…5@Õ7ÿ–\LOßɃ)„p"w„0\‚ó_Ï&¼|0!yiĹŒV­æZÕ³”©C4ƒ†R §{®ÿ_ŒL˜9ø'y‘¹2•‰Äð®×S>ɋ̕$áþ•Oò"?ßUß샒m.Må$ãe—ί.nÕo?ÿý[ ÃÆ¾ ÷ŸßJ6~ôI¤ÿý0lüèWmâ|†Ízþ¥¿šß7¿•C³á§Á“ýQÁÎØêOJÆO…0tÖ£Ï/yá×aèìŸNá$ã÷aØìŸFýàe—¶Õ4o¿Ÿ}n4ëùççž÷³ÍM£á!à—ž÷oíÒõ!üÀ*©?gý>4§yòüRkÓpÌ•!—çG®`†KC˜ñ$ó&–&/Óhn‡~V|g{<¾þLº8‡}^! ×{ê?¯ tÝ·SÊmÃ¥žQú·É¹yÙ,µ˜Ñãg—ZyÙ,µð\øV ¥¼Q`w-·*ÈïN׫–¦²JÀ<…Ôç.hO ˜×½!FABt p´‚’w3û܆äs‰—l¢²r‹;²€p t¸“fyñéçâŸMóo«j| ’Ëù¬Ø½cHøàcÈ¥4¼Ÿ/Òð…]ðˆ—Õ¾¡mßd½›4_«™ ù†¶}}ÿ®ƒsW\zS*Á‘€Ü°sµÑ|m ß$îš¡J©„””7ô<ÄõÇ]5äR ¦{üÜðyµüÔ’ð­+åäÕòSSìÉ3?fÉ«å[[ñŽ|KðößäZ;ØÑÂû.xvU9¾æÑå1It$ßuAéßs¢#ù® ’Hûä».HžySe?57„=“"é%Πȣç·J"Ö¨Târ›yeÓ4Ú"|xz ùèdˆp†‡…·]J^ˆç¯y8þ4|RB៮Û÷ýw­n¨I“Mêj &µ[Ý4±V|æ m®Îiß×z?„H.-Á®VàïšiÃMB›ˆÞzg›í„pЮš ¿ú°Õj”Jp’ŸÒ¾ŸÞ:;x;Ѳ5¦°ïß¿*žÄòþûæ ¸Q$ß!~¸r¸þ³p2ttÊÿV€“hU}§ðÌѵÈ ¼/ÍBg¾Ÿ nº¬[O†Ϭ_gØø9¯GQ8_A¾?NÎñ3TÈ5þö¡eg 1¤ZJžs“kÇxÛøØxÒðïÁEúåG› #+žùkŸÜÞØš)Çq'Þãó+ŸÝKüòî4Éöä tÉâóoœNü‡å.,w^„mèY\Åá¢ý½zG^½<ÐïšHh õƒrH£TBS?o W¤IXÿ£ MdIøù!„,šÈ$áñcµøÕM¡ÿ\$ã™&ò04.âçÓǯ/šÈCÿ¹ˆõé3³i" MñÖ8¼ ÐD „õóÜB©@þ}c&¹~›&Ò€$¬¿§ M¤IX˜.°Z™&2€$¬¿'„Ey€$¬?¬ÐtLah\ÄúÃôyÔËиˆõGtœ«/šÈËиˆõGà¬.¦‰04]$ïOLÐtL)@ÖVL+¦‰hå[Þ^…&Ò‚×|ˆžMÇ4‘$‘ú-Ph"HÂ÷ç !dÑD ß^͘NLáÒZ¹çýÏ«ÓñŸ\ZƒðÖ3nr0H[·?.­A°õL3HB‘Áœí‡…_†MšÆÃIÆoC‹&RÎóM E¦k"õ«!X‹Ò?xÈ!°:Íc|ðîR¨*•¸acóVÖU N$ðü9ä•U_S~_©õû0PöõSÁ÷ªê+ã×!Ÿ,V „…ß'êÿâ‚i|È>͹;êÿâ‚iœpâÃ7éª'êÿ"„NœýMjíÐÿ‹B8qö7©°Cÿ/BÈ@ø&^ã„þ_„½ oÂõœÐÿ‹ò ¢¤÷ÿ?„‘á›po® „ž$½ •Äï«öOÿ°FНÏïË¥uÕçq+i¿œÔ›KÒ>x=¡ýá‚HŒÞ6!ä1+$‘þ7ÃdAžx’Y®Z}qI 4ñ$ß?7ØaÖKÛãÿreš¾ŽØ™Bkjß!D\Ÿ ¡ÙìîŽ~ï‚SUoŠîñ1–3tº^¿xÝPôãI«i¿}´V OZMÿûV¨K%¸HÿðC…I ôÍ^þeBœå„ç4m¥‰¡Ö&º˜»’ˆ*×súïQÝŒJB/Ùîú ȸK%ôí¾Œ574ýwˆ îßc]wÕC«l$§ÿus*µôÀÈVS¿â$yøàý¤v!(õ›ñqR;„^óç§‘Ô! )NÐ\ú÷ï_ IXß>÷Oç ”ü &!-|U-«ªžigZµ®]ëI&‡ãNBA¦‰Ûé2D§ÖJÑ]u¸JW~ˆ$¡žÜ~ɶ¤ƒXI"èŸVâ7ðM†zEt$gŠx$| ^‰÷·(PŠb7…o2\1¢# 'y¸kÌÚ‡ “k´…¯Z,’h_$"§N­k'‰ l|ðbœÄ+Ý9)<>_«ïªï±ÿ;©)Ún KðÙŸö{JdD—Ö&¬D®°MÃâ×éI®NW²Ú:I,º-ɲ¯™Èúœ?ùˆW~.ùp 1b¦ÅtÊýãÖfj²>ÌB~Ÿ©ÃþH×^—3ßßÊ/©ùGÄ­3Ô)•P'ÛÍCÊ;\Ï|k¾£šg>½ ­SkÞÿ|«Có̧W¡s¦°jùV‡æ™O/Qëjó£Ã·:4Ï|z§m «žouhžùô=®6«–oõáz>\šþûÑå[ äO7—fVÝSþóU~¸4/!«Ž–?ؼ_Õÿ¾¿/÷CÞKO4H¯ß§p&Žªœáà÷㬅|ÑD®?v)±>Ô­$”†vìVCCþÓ´OÃÃaISÕ']”JàÚå‹Ðªqb•Èk ×½…_ÆéÉ­8RULDiüÞ¥Ä*!ö¬’È¿ïÂW…–æÜþã›äZŵTJ\枨(Ž•Bvóç¿)Ð ³’0*j•èw«ÇïZ=SŒëçZò‘sƒ=±Vˆ¢M~â05WÈð›ö²*{Vu¶4Q' ¤ùO7QªÓ{“¨…ú$vÓzŠjü>±$ÿéº>x9±$ ×í+í×O@Éð£pݾœŒýw¨UŽ©(ñ~ð~bQ®`ŒùüK$ÆUÐwU"öU?­âuŽW8®ß¬´Sö‰p%:a¢/nBXz-’y“| ·ÏXà Kûbzüþ/5ìÍõV!riKÕÂCøZôuJ¥…Nþ;8UK¬¦Åou8©Y¦|é„y:Q¡ˆºäàO»TqÀ­×Q™Æ‰e¨ÊúŠØé+94Uªú$]õ¾wh¦÷ß·i ªÌÞUñ¦Õ¸ký)sø §Ó®ý§U ê¤àêsy}]ë64bHþ}ê—]•ÿjLø³Ý°ðH]« U=Å0Þ7Î 5œòûàcã@*+ï§ý}A´†k¹&¶—W*Áß q“é‰rj× q-Çu¼´ƒ»ªÞô?ž})¼œO­+µ½²*€ôÖ\½"¶â=+?_ëúïøÆßC÷ 5œÂÑ{p×Rè«NÓ×§þøhm(4Ä:)õŸ…ç®éþf|ûÒ¾ÿ¿õÜu…~YanÂHèGšú5cVT˜$á—hMÀ˜¦IX5cVT˜$á—XMÀ˜¦Ixü5cVT˜$áû[ÿeE…y€$üüÔŒ9éÈÚeã»´1*®ÏEü|AÒK³Du¹‰Ïã,VÁ•Ä,Q]n‚ôx§‚\â+‰Y¢ºÜ„æñNy0V³DuQ$˜)¬¿öIb–¨.Š3…õ×>IÌÕE‘`¦°þÚ'‰Y¢º(ÌÖ_û$1KTE‚™ÂúiŸ$f‰ê¢H0Sø÷Ý>IÌÕE‘`¦°þÚ'‰YB·(ÌÖ_ÿ$1ÛQ_î~J•®]äµþðON³Du¹¡‹ä#Ñ?IÌÕE‘`¦°þú'‰Y¢º(ÌÖ_ÿ$1KTE‚™ÂúëŸ$f Ý¢H0SXý“ÄlG}y?ø.åWõr}.býáž$f‰ê¢H0SX?ã“Ä,Q]n¦Kž©’k|%1KTE‚™ÂúŸ$f‰êRxIzGBò•Ä,Q] f ëo|’˜%ª‹"ÁLaýO³Du)Ä1þYã“Ä,Q] f ëg|’˜%ª‹"ÁLáço|’˜%ª‹"ÁLaýO³DuQ$˜)¬¿ç“Ä,Q] ÓÙ|žO³Du)L7¼Kšó•Ä,Q] f ëïù$1KT—BèÁLâžO³DuQ$˜)¬¿ç“Ä,Q] f ëïù$1KT—ÂL-óç“Ä,Q] f ëïù$1KTy"U{"Qa'1KTE‚™Âú{?IÌÕE‘`j¹­¿÷“Ä,Q[ f ëïý$1ÛQ_ê_IÊõ¥IX¿ï:¥\Äú{Û‰³™Hãƒ÷]úP*ÁE¬¿wœX0›‰ô~ðçÐÅ$ÂüË›—ól<‡i¦GðûuøEazfZÞ¤Õ»ùE&(Ò̯ñ{CtºœˆËx9Ô¤ÍiüC= ÓCDÅj""çnê‘é‚$? ›zdö† ‰º8k;ŽKkúýܬ”|“Á½Iw­@ïŽ(éݸj1 c;Ãi7h\a¥qÿvûŸ é÷SÙóðG<µ®@7Ë‹¶ß/*Û!ìyµúªÅMävy»? ö=ê Äžã¿]ËõËQýÁï­¶«¸SÙ³4~ýw§µí=Ïà÷.¨»iÚ´~±$îÚä¤ ¯‚ä¹ðJü WX™r³ÉY‰¿á +Inö'ê£*v7'õTþf'3»—¿»já®®úí|5M-Eª¨ `NÈ%¦0Õœõµ Üõ½OîZe;‹=+OÂ|C׌ŸˆìÎ Ÿ{m¼íMâþò,Rìôïø7sÙLY‘l%tÍ–öû8ÌL2¸vwX®iÞD“FBñ™= · ‰·ï ü²Ó²ñw—¢5vjµRö$€s—ZvZî»:…k'56aª¯üÞP Tùú#F…åß¶7iÚ?[7ü×U%¬ßÚ6.%°È >¤?òk×##‡\ˆ†ãó®Zý»‰1Ê‚¯ýŸìn”7 /'`$ËãÕÈróCôuš»ZþÃ†Ï 7NèSB›¶sÿ?„HÄ5lúþxZwja˜—‰ýàõiÍý*HÂãë}C¥¨ÃÏoÿdDKhØÄ þ¬9™¥ê¼HõN4+ ¬×÷‚$Ü?bQÖ³?pI¸Þu:ûHÂß/bQÖ³?P^N@X¯ï›Ì‰-æ6V@X/âƒ{ƒ v¯ÿÇï»ô¡TBãß8a½¾$‘ñ=' ¬×÷‚$Òÿ÷„õú¾É„ºqnH;ûwð˜[ÙXa½¾$áß7[3íìT ß_¶fÚÙh@SؒĆÀ ëõ½ ß¶fÚÙ@ÖÏÓO@جïá$n|œ€°YÄ ¯æ,ºÂ »Öÿú\müÝ¥¥ ÒæI8简°Yß+P}3Éfk¦Ÿý.=$¬?¶fúÙ }aý±5ÓÏþ—Ö òþfk¦Ÿý$aý±5ÓÇ7´+‹ü÷]*¦Aæ Âúck¦ŸM‚7'<ŸlÍŒµ?ÀúžÀ#Ï'[3cí°¾'&ÄðóG…6ëû'Ò›lTXa³¾°#½‰F…6ëû1Òów*¬€°Y߈‘ž¿Sa„Íú~@Œôüœ + lÖ÷b¤7Ù¨°Âf}? Fz~N…6ëû1Òós*¬€°Yß7Üyþž€°Y߃ÛÝÙV@جï–pÓ-¨°Âf}ß°YûýK…6ë{›ìÎä + lÖ÷Šy>…ÇÇÖÌsö:„ûÏÖÌsöD1ÞO@Ø¬ï ’Þò|°5óœýº¦Næù`kæÝûÄtÒÏ[3ïÞ¸é´þØšyïÕ5+ù__O#Ö÷|)[ž¶f Ñ+ú¯Næù¸ËqRÚëÿöÁë.í”J¨“¹ÿw;NJ{ý?>x?NF{}ÿ|ðqü;²Hg;½y}W¼+°œ•I;,Ñ>xÙ>#Ý‘tiwá«V§–G~þ]«&þ®ò!ÖŠ~kêwãNu¼|ì馈ëûþ8m$Ç,‚ô&ñøˆøíÔïž¿º–ñ›R ±ï½ ìñY¹‹évã÷Š„ëøÀÄ¿m¼lHšh”÷?Qs;µ$¨ïñ¹V]µ4É(øT.¼Ÿ¨»Ð ~œùï\«.hœ Äãƒ?»Gï »ðw_ºæ¤~ÕƒS•ž¨kJ®3Oÿ\­1H¹“z“;VÓXBïpW«­+ÁÀv®øæW0I`&÷?$,ãƒR èX©uøa¢(°ÒH#¿­TCOè®$}«^P!cÛ[W¤â£UJ«¼ïªüDOýwÕ÷­qã)Úƒ ɤ8ÿÏ7‰QFm¼Ú8áZ!‡„2NrÿЊ!Ä’ðøÇ‡¿büÒÆ¼”Äû3 u©jI´Ãä±VaÚH?ÌTžèCÍù…$±HìÞ:œ«ú$ª’°þhÕ¸4ÁL†éŠ-}ß«jIˆ®”‡Ôµ®]KÃSaãeãrqãMoºÐøàuCì”Èç²&Kóït(œ${Ç’ž¶êºÈø›6~HNrL» a²ë—ÕkT×¥š®Aš®è¹ë¥r¬ªÙz÷®Í=(öÃLv}¿&L•ÊL{á÷‡dcH.ÜJûi¼7‰ÇáXœ±&‹™ eó?ºI$‹µ‘Rþûžpp›i«ãC1‰ãáô«jJ )ñ âÊG6¬Œ@+ ó|3k2NL;Rçµ#€ c@ÂhÌ?8)ÑÍïA+x'à}0¬Ÿþ{;öWãåðƒ’l51Ú‰yCÜ«–˜:ˆáúmC„ÓAh‘íI A®W‡ì4…'1¹Þ‘pÉ!Hâ2þì 9£q’Èø®/ɒЧMÁó‰ÖiêWÞ~}ù1$8¯¬4ÌÙ¦V Dƒ„"qðÔj«ýÊ›ø1¾ZU¸z•RUâlÒfë–­uöo9Jý¾qHÆõß–Xj-þÝÞ¿ýâÏÞ‰Ú…üc'ö_?áSVH”Ûª•àýM¸ºÈfG;ùâ×.-”Jh§ÅÏ' ÊW ‡4$aýégE«q´y¼n¨ªÝúMûíºIÈÍô¦Hýþ‰vÃþmeN—IœƒÔ…øäì”yc7“èz<©3¿†³ÒÞŒÿLݟ̯á¬43%jùOê̯á¬4¿k¹Ž'u&ÙpVš™T8îÔÕë=$f’Q!µôèð:‰þè<±÷œº}ð¶ NU.âç£ôïüœù-œ–p~©•™6Sß_fÂ¥ý¶ãžÝùªÝý$ØI¶þX„$ªs|òä‡7…õÇ"$Qã“'?¼)¬?!‰êŸ<ùáMáñ±¾ITçøäá¢7òþ"RA¢:Ç'½áM0Âù­¨Îaºã¢çL®°¢:oŸ½ñÁû×Ý &<9-2ÿâÜ@/¥ ,òÛtv*,O¹ã“öÁ߯'Lw×Ïû#³!"™`¤ °Šëãî'¶M‡'º‰û‡}3Nj¡³Óˆ3]øÜå¤:;9#º'ùTXNj¡³“.™0\a9©…ÎÞ bïM*,'µÐÙ;.Ìž„Sa9©…ή8SøùÀ'­pÚ•¸a ?¸ËlO-èîŠC0…ŸÜ= Ñ+úG'Ød ÂròZ.LöÉ*>iUM)]S'½ÉÂiÇSËîLègáuC=PåMýôvœ¼–;¯Ëè§÷ãäµ|šx~¢ÜA¶§WÜ‘è„õƒ;ˆÀ¶OùÂ?¡ÃI¨8^,ým'-îªî´rRTç)Ï€ŒJ%8rÿÇ}œ¼ÒuEÏ­¼“±ö¾‡Þ€$Ü?Æ'¯tMÑm«óœg¬ÛÓ+C¼'¬ÍÄx>øØLŠ;$ÎmYÿpn˜ÕüAß»¡‹R YÂÌT‚Pqøæ?¼¿~m¦ÄXFtí_Uï_QÁ–vó'*„õ+ÒP£T‚FÜ?X‘›Za#:¯ó|¿`EÚÒÞ¶}ýýà}C‡¤`ÎÁ¿U!öûÍt¸OU㷔蛰¸$>ýòSߪA !Œdh9ÉCG ‡u€ýãá$ߺ÷(¬R*Á‘û÷~ éßë#?o=„…­•þÁÛ.•Vø>±Éøö€Ò4×ÏøÆÆ_J%d?1?$ öP3ˆ Ю‹·Ö»ûòü‡ÿaþ†I|Í¡sñkL­™DûÑnöY¬<Íâ]vø !<ÔP#sd¸~Ù8Ô ÍO/ð×x=®)ž ÒÔõg¼×”M}¼ïÒ‡R Å\1IŽiöaE4"!ߊ¹rg|Ï‚>¿O¯»ûÚ°qG‰nša¯Æ†n§·Ê?ZY‹î×”fÓ‚²oý¶!´ödQ^óæÉ>yU¥×šÂZw­¾–ò¼CXÔ-üY¸¡++óÝþ³«ݩ߼(t-ã@%‹úl |[Ôø¯úäEcj]«–æØŠË=…ß,nðôÊû¼.Zé#Šù7VûÖúå[÷’×C+“wxfæ«ú$,çú}ŽÊIƯc9¯«'^y®êŠVÙõKêY9¥ÖíZ]‹*Ÿäl«ÁÛáÿ}|ðå£þ dq‘ò~êý8IJ#àxÒÿqœbÙÄEòô† Ë) –ýA\$ϼ©°œbÙÄE2½ Ë) –ýA\$ûÐPa9IJ?ˆ‹”ñcù¸úfT ÿȱ|Ä) –ý‡1÷ËGœbÙÄEòΖS@,÷ä¨y ~œ¶åÿùàãËìDz hxæÍ¹† }­õ¥Ö–8lËÿup,.¥×ôïÙæyÎ]N‡žÿÁïCÊy>õ™ƒbÊ?ÌüXîgEœ“‡}¨œÿRñ±¿ý×è?RÕÙ.V…– ¸,ã’üü2¾qø”Jp¦Ÿ_¦Ï0„¯ZË) ¤€U>Hü²_ˆ7ø“Ù–©í¾@ùà÷1õg¿P–™)üè±ò(¿½ßØ€$üè9|Öµ÷;„oÃgÝ{¿qIøÑzû×ÞϦ ¢ Ö'³;V¦ôìŠþ<…ºÙ€Ìö ›‚Lÿ×ÌŸåǶ׳_¨éÿÜu*Øß~±œkæ~ðëk”ǨnÜ3{*R¯õjf?–Y*l{þ2”·˜Ç[©šÒN©Äpûí?Fw͇ñU!¥ŒïýTÒVÁõ‹eºôâ®m¥þQKBú×ãf´«ú¤‹R Ž<~ZÅŸ‹](n}ATã×1¥Çè-CÏÁï !(÷ ®²íõ¿m´oœÉ ®cÊïË]hɆl7Rw­’öñfë^þ¥´§”þámæl%«BO«8²á­Öó\ûú@zœÓ‰öÁß]Kÿ•’»-ÆÝªn—Þ”x«õûùàW …¯¤Œè~ÈSëÚµÚ:É–õ4x‘ oµÕþç‚ZSHÝÎæ°jÕÔ2Ô9Éãwƒ5CS€þúð8ä!òµêîÄo?øAè¤rý|v­¦Ý?Då4H-:ñ|ðë(<¸"XOáûC­{ßZî÷oáe—J¥ÿ—ùð¹á†vOlYN­ºjéÖ(¯xuúñUk?¤˜Oòè~tñfT .<'qÁŸ·4ý²à÷ï溈®ªàÀ§/†¨õ[øws;ÅU6$<Ùd/“=Mz´õ_½ æ3bNòìßV¶•}ÀF³.o˜ƒ²ØrÜó#¬l;F5AÛ=¢ÕeT=3yl¤5<Û誙:+…ÐçÅôÿÃTÁ›~þçͦ±2Ð-ð‘xí [5´)1§"§î½qÝ{zÁ*¬¦o›Mµ¸ìFŒ×÷s¦ßnpõ©¸ê.aÝú‚Ûl‘óZÛ¥˜˜Þ£l¶²EëÒ »„1ˆœ#/o"þ ×4bªÉ2 c¡ø›_;bÕ¡üÿ%¬¿Cñ'@1>œÅ‰ ª”®´ÏOê—„êOÿ¤’>xM¨þ•1;i­³ão „w†÷¼9Ñò^êg·Aëb= µÂú·6ö¾ë./žçª˜½Ñ‹Zv0 3ƒž§·Ë“oL`+ö“-Z‚$üòŸØO¶h ’ðMŸØO¶h ’ðMŸØO¶h ’°’Æ'ö“-Z‚$üOì'[´Í_Œ÷–ûøÄ~²YK„•4ú7”,^‚$|“ÇØ­êÇø“YÛo˜ÈVì¨e Ãöñƒ{ƒ lÅöÛ/Ú—äwcQ Ú×&áÏ¿"öþ·1L?`AŒäqý{ã´Ê üeÛ?v4[ŒÉv€mÅJ`o?Æ4›IX ìÈǘ¶Í>÷¶ý`gZÆ´ã›{p¢,àÊþô@ßDê?«TÜ+ÿ’üs þ&‹ºs«“”°‚û&à…îF^'8oòG9ø•,êI…žè:Éø½K««6ù«´+Ÿ9'@¿wõ$aýɬ¨S*¡Nd|zÓœ´ìÉ>>xߥ¥ꉹ7:·¤‘î Ö ”‘‡ÜA¯“*Ý1°I¾ñw\©ª“ÆãOÅ2¦ïxØ÷?Q²§ÖËÏU%šñûdLw¼kŸ”( ÿɘîxׂ¦ð2ð?ÓïZÄõ/vÆtÇ»$qÿdLw¼ëF¨›2¦;Þ5øiÿ“1Ýñ®I¤þ'cºã] ’àþý'cºã] ’°þ¾ÓïZ„õ÷͘îxׂ$ú¿ÈÞÓïZÄ0þɘžx×D†ßø'czâ] Ÿ"í2¦'Þµ½O‘úŸŒé‰w­ðð5ñPÿ“1=ñ®_æŠæVü'cz¸1 ô^_Ïàþ“1}Çþ?øµK ¥j$÷‡ÔS‰’Ú û›ûCê©DÉm†ððoî3ÈDÉ^´™òÅÛ‰’½h3$õ+Áû‰’™ YćgðTXQ²3q!²tf2Ç#— ÖD®Æ õöûÔþÁ[2Ÿ&*>xßy´TÙN=ȾkÑë{__Ãñ†lªŽ•ïô¢ÿÎjü5NU2£®ÌÁåß'vV`‰wCd›7oêo­xÁÙæÍ›ú@+^°¤'rf+WX´âK¤7¿„o­xÁçÍ/á@+^°¸Ê9ó•+¬Zñ‚ÅiîÍCø  /XœæœùÊV­xÁâ4÷æ—þ  /XœæœþÅV­ØºðŒ{ó¦ùÐÚ^²_üÞ¥•R ))o2Ü{ß¶4CÖfŽøÎÆ ¦”DSX˜1â;3˜rÐLaý=ýøÎÆ ¦lEõ5‹” Ëw6f0¥4šÂúÃßÙ˜Á^¾9ve§ÂòL)ª3‡»ÂòL)¦°~ð¨Œïì6ƒ½ü>¾³ÛÌ…ÕÆý‡×1úq€Ákãÿq€Å ö`•ðr—sa–ƒÕ&ýïÇwv›Éž>¶ol¡4¶¨¸ª.»_®ªlMU)™ª3Ÿ{,Ëø·»~mœZÇ‚G×~¦:ó¹Ï „Vuÿ5§xm§Â2þí®×^¶q®n3\ûàõkÃŒö^ßön,ˆé° 'T8Æ;Ìl/ÓaÓ‰¨ˆZÄ3¸·AŒ ËîwtÔZn¹Û–¶ñv´ÅÍAÌé¿|î¢åǦlN¿-ß¶°F è×{ÙTX´|ÛÂÀ[‚Jc<;Ü|ÙÂI4ã-PliHÂ÷ÿê‡vLâýàÇ̆­éƒX÷ó½Œk†TK‚‹<Æß_”JÐÏ·¼–­.¹ûƒŸRlqËêÖO…º›ÖrÒ¿ÏÔº]K¥ZNz») ÞÛÖ×$Ò~;¾µÛŒ7Œï–ïë6²½6­FNéK龈oâ½my…þi9ú£»¾ Ø*¶UOß|Aþ‘b1„Kí³æýa5d’p ‚¤GAn÷(h«êÅvZνwUšëËjæ™ÈjÐPÃéN©k¶ƒR«n[ V·÷ƒ÷à_WÙ± rç‚©µMg×øàÏ6ƒi8µ|Ú—mÜlõòG: –TµAM™Ä–qm_¿lüwÚ÷UÏлñöŸZ@Q"úu…²*(ÊŒõç;á±,Æ«ò(W%KÞ×?Ôt^²UUÂús­îZ*•ÐQ^¢nЖ¸€$ü#çZƯ5ô(ùஊVÔÿÖN}×:·†ÿ¢DߟvJ©º¬ŽÝ|ØÏU]‹û0>xu©®*¡ßW^"®°›f»QNeʼڪ»}©£aû}ðáRÕ’`|þH¹Bz­Ò)Š­¦Æß]¿|­² ÷X»m©©Ê•JðëkÆÅ ú°Ý´ð{Y]}Õj| ¿?bœ¥@bÄ´Ø?õÓj§U z’úmãÕõIXÿnµn3¬†ËvßÂGðØ7sÒ²jž‘§?yîýþR«º‰žÄ»–q„@¬3 ¿6®Ah:ø@ˆKûë‚@íâGÂ/1¿/׺]«’]Ù´u¦ñºñN«Û*[?xs­ªDÛõa%ñ¼j?~Sö'H­žZÊ–QÉ–±ñgá¬?ôþPÊØWé¥þsAÕR©„\ýeHùq’›ÖH˜n>õÿñË´Š÷„Rër­ªl悦ðžb¼ Õçñ¥çQf*ë‚@õaÎ7'f§~Û8µtÄLmÕo»*=ÕpaUÙj|j ? ¦ÿæ¼/ývÓ”>ýƒ¿çªwNz3âZÆ¥ fН‡spW-Ô’P"ÐL\ër­¦çGŽ‚—…3H¦“êŸðq®åÒ*;*úå&Kqn¤îªÔјeÝP#mWm†Öóáñ¯V©PÉ®AüþRƒŒÄÏS3ãš?3t}©^¤h0¸~:,7~u·¿/X£•$Â-ñL­ËµªóšÍ{áeãÍÏUJçÓ~.H­J¶ô×k¬×)m«”ðâDKïi¿o<¬‰Å¯`OìÓ 39²YC~ üЧêHUÝðNƒL‡$F¨ çZnÿŒÿÖu„^¿$ü¦zlá…<ïÕþoã©Úþû&´þ\«lÂÉð›æàmãg|×§ý¶«þ>/©èÿC³ôú¯½k%ý³È·9áãþ·j-šæZ êÃ÷z;’Z‡«ÉúNÉ{×JŒ ¦q¢é^7õñÚA÷НŠO‚ |©_N(þo¯}ðºK‰H#àÝx;¡øOOÄ0ÞO(~ÇÓ$áß^p Åïxz‚$|àÒ$¿ãé š"úÅœ‘PüŽ—'HÂÏA±ŠÇÛ»?ø•ÒÄÛ+@¾?D5T)•à$ë›H¢ðy“P„Ÿ_l"‰ÂçMBAÖ6‘Dáó&¡ ë¯ô…Ï›„‚$¬?è,‰ÂçMBAÖ_yN>o š"ïÌi‰ÂçMBAÖ–´Dáó&¡ ë‡=ûDáó&¡ ?¿lç' ŸwIXQ…oo"¶^wi§TÜúȾ7 IXµ¾7 IXu¾7 IXõ94|o šÂþÊì*.¾7 IXíwhøÞ$$aýµëÐð½I(HÂúk÷¡á{'M„õÓÊ¡áïMÄöÁë.í”J€[˜²µ¸7áÆïßýÁ—Ÿæó|ð±¡wí„ñû3»‰wáÚZ<„uÎÜøgÿŒŸžÛ·þ=k}ýVT©¶SØÓ±~y—fëͯFAÖ/ïÒl½ùý(ˆí*ãå¿ûowvºB_I¥m —%]bAú×Nfi›ÃM‘ç£÷“YÚæpAéÿ8™¥m$‘þ?'³´mÞ‚$Òÿ÷d–Þæòëàì»Ôµ$´œ0» ûù Pas¸ ßßqŸ¶ ’ðïk” b›ËÛ¯»Ôµ$P‚õ7Ú1¢Û\,Hì-ëoôcD·9X„õ7Æ1¢osòûÁŸ/çï}\UÂú'@µ ®•M|[¾åÛUZ7‰_jÚ‡˜óå4ÍéißþÚ÷ö·®@¾?vÕ.ñw†ø@ø×ë‡w»jÇ },Ïç…·¯?µý¡ùz§ô}Ž?õC©'ù÷÷ü×›I§' cåÕ/| ˆ_©ÿn¦t/˼‰óžúèOú½q‘õ&ÌûQmñøIXG«V]’°þ>Zm”Jp’õcòºôkÕõÞþãJ®Mb…ÏoI¿j…z(•à$ß7dlýâÊüûàQ½K4ÅþÐq:_º¤ôMîéí.Úé§ÖÂïí* »¬û¤æªœôqZÏúaÅÛL‡ BBÏ7ü†ÞMwh@Íx]$“¼Ûæ?Žé}[²‰‡ue8úD‡þ,œ JÜDjK|ÌÙ„Wâ!£V ¹zo®°øÛÜ}¡¿ë· îm©.Ûf>¨]> ëö2QûÒ×µk©Ì <ÿ¬ohëXºm¤–~súHj-¨S*¡ëßÕ—nÿ5’WC}÷±rýw_¿øÑx·¶Âà|í/V­«ŽTÔ¨`vÂÎu)”zhí?Ôv-ùþ1+]wxäª_=>mÌ:ssÃZH'¹š^ÿìu%~phÅúóøïà…ý{¢°)è×~4ï@m#2›ã±m<ñÚV·HÂO¥}¹{´)rŸ ÙÉuýÇxB½‘ê‡Õþk(QÞàdUÑ­Ò>kUp”7q²ä$»ñËЊòVÎþ€:¶¢Õ^vi£TBh~ôìkwïPeHG~´ñJ‡‡WŒ£Þw)ãÓ X?D?Çâ¼»izâGϵƮE×ú7N(|âÝ—Oûç‚R¼r]¿»¾ký\«k'°k;ñà÷é°>ºvu¦ñ²ñ¶£¬Y ¼JÕçÚ!+_¢ðWò”`øþÖ~²ø%%)ÁHûãdñK(þê|éßs²ø%ufÿÈ@”,~ Å_IJðøù KA²øeéO<ç+¢ÂÎâ·Cõ—~ïÒJ©X¿Àï´~J;¥´äß„€ðÏ®€ÂÇ4绡ÖàŸ]E–™ÂúÃêŸþÙPøœæ|7TØü³+  ™P‡ÕüçM±ðUõ¡–Ľ–ö«BÿÇ[ÁŸÏ†©Wý©Ÿö÷†Á»š&©Œ“ÆRaïµfÕOR'¥ÖÞk …¤27ñ¬©°÷ZÃx˜,w^òo9¾â!±yæÎKþ­ÇWüH$‹dÂüöúÝÛ!½ÿî}CÏæŸ´E‚iLÝ/û²¿‹UÒÖ¥É<ã̲ÔÚ¾âPK$žÞ7D¯^3Iª9á›°²!ôCý×ø³pÜAðùÀ±ƒý¡ÿ´JפžTöRËøM©$ˆnüúô ’Å"I¿Ž \›I“öËfº4s.V}ߟÅzY½îfbˆ}qÚw…±»¦‘¼¹~7¾H R ÙÂLJÿaþ¸3ÏR!žOqf›ˆ±­ï‹ ‡:b’„“ÎRa‘8®Mݸ?ø) QèA:ò­cCo±2Ì(´¿ð²IϦNtNú— â¿?öý.|Õ’Á™®Ñ¾Wµ©ÕR«ÐIw¦l¡f(è® ùÖÜéÕ¡~@Â8ø» !WøŠÌ;ÅÃï§|<ä75þDñIaU,HOñ¯ ù”þ¯ý—uQ©%áñ»Â êÛ¹w ëÏmÝae(hnSzŠƒ§C›…óQPëK 1uãùà§jÄo·üYxE\‹©áõÓâjjÊ\ÖùW€×Ó´¡Iˆ¢:íú«UC®ªïWi/úw­kÕúàð¬·zW|¦/Éã{Uô§;­pSøþ¸V]µôK+ž_¤­šRS7BBqÿöµøé5úÇE蟟W»ê¡‹ÔEBYøõ_uÖõ}X_ ¾*e½É‰Z³_øüéñGÊ?"׺R‹•Ë!g._ ^ù~°b¹ãÌäÿú0DC3?äÁŸé.Ú.gÙ.gØÄ‡KÀ8â+PJ>î8»ôîø'šI|ÝI_ûœ;‘¦´ã)‚‹8Ž#ÚDËKŸ';ŽV;Ž ’ðM€‰E¾ ûœâ¢Žc«‰0± á«ë³]ç•IÑâXÚ·Ïiýàe—6J%püôM€$…w<>?š.v m{Wsm ]ÎLøû÷d×èlø±I´ö7çJúÖrÞÛ]ÔÊIï†dÁ;¡T]»†”Jh9ÎÆŠ?;‰vü´c¨„œUó¹ÄÂv¢½?Áå§zùqÂÂv¢½?©*?Õ|Ž1‡°§hïOªâ§ê;‰9„=C{R?UßIÌ!ìDÚû“ªr‘Í7 s{Šöþ¤ª\do¿Füm‰$á;Íš$>Ÿ±DU\lƒ³&‰Ïg,Q§pû¬Iâós“"ùµšék’ø|nKUýàe—6J%À}X“Äç3–(yÔ¼ŸÏ˜›Œÿ|ÿŸ~|>·¥êùàc—¾”J¨'?ßÖ$ñ‰Œ%Š-ÄúóýgMŸÈXšØ=¬?ßÖ$ñ‰Ü–ªûƒm‰bw±þü|ØòKô6‰ª8 ͶO¤Ã2$Dv¨òD_HUödÉŒ¶B•'ú‡œ¤[çpâ•'ƒ á ;Ty¢/(&WSà­æ[TØñÊ‚A·¦°þáü'^yB0(ðVs-*ìxå‰Ã þÍáý©p‚–;Dƒs5çТ‚hUƒ, â5^N¼ó¡o®u‚z;ƒ áÓv¨ïf3r“Çñ—Ûï(•Ð à,SëwˆrHw¤‡/<ÑŒkY‰äE­…_”J êÃoJ<ñDo¨ì™;7¯sr€¯ âÿ ßM…Oü¤Oÿàå“}µºCH´oPð¾/ îûã ß¿íÚÖÃ×øp­U€þƧÿÝÞ3Ø'¥s¤ ß,ñ@·K%ôñKˆDéËÈks¤ ëçþ#¯Í‘@Ãçnû®Í‘‚$èŸïÏ},½˜+†+¬RWÐGðÒî¶?$ý^FâmÎì¼},½˜+ésjýÜz(•Ð ý‘ 2ù2osæk<µRʺ ‰âÏyËGž“bêvM¢ã•þØé“%HÌKð†“EV9±{¾ðÛÐÊ\îé󓃕ô¿l¬³ûšpµ+º3!˜_½.§Y"õÛÆÞÿ„L¢ÖŽM`¦—ŸÔ}},n¯íl{v"‘Ú׋AŸIøÇfë6öaLÔISø=Ãfkì€1KbVT0©Öñíp­ã6‹m­{ÚϹv¦ÅN®‚‚<5¢HuÏø–‰rÛæŽü;­ ZÉ‘l;;ø1Æ!žØ~^û.;\ 4mÍh= b1ö†ΨŒ•N¥åØîúÙv÷Ž»ô¾ ì¸ö³í®çÈKj-ž^¶ÍŸ~ gØqígÛªz£½?;®ýl»SU/«×ã‡ÇÕ϶;Uõ¿~ÙvígÛªó¿Ž•ï ‹§—msÅ_ŸÂ¯8(\ãl»Sõ’°þàq½íÞ©zKøþÃ3å˸cï|áìÓºÔµ$ª„õǶì8{ïàMÂúcGvœmwªv ëû7ζ;U‡„õÇ­gÛª(ÁúãÖ³íNU)!ŸˆÞO/Ûæ °ÞZ>ܺçl»SUãÏwŒ[÷ìm÷AUi"ŸnÝS¾Œ;6Àέû_Wב ; C׿Oc“¹ÿÅÆ/HP³¡«yˆdŒQ@’€|Zv ÷_¢õÉG'ùNÙ÷—ÌmÌE‚IŸÂ²a'g±6¶½ƒ·c'g‰5qˆ­» ÂN.%Þz4óºÌi‰´Iõèçu™3…ÙlZ†O¹ôñ¦^¡æ>—5-¬æf\Ý>ŸZÜØ”ÄþÒµJjÄð$ª$ö!ÝN‰$Fs_xM³VïEã£õ\Ê1(l€[û/1}Oh2 e«ZZkH›·dÇœzšÈùže ³5u4œ#wK9µäÌo ;(}6D.%ÎUÂèù+.Ñ+ Kð¯^-‘>&…[þßûþæzÖúX˜MÙI÷§Mm=·°œåÄ[ŠÐù/“yá=!NX›_Ÿ¹àDµH…õû« ªa*xdïp«þ%®÷eÄe‰tâ?÷-§n‰³¬!Ê¡«ñú ‚¡Œ‡DÚ7þòÚbJ¿‘°}ˆÝ°5YDp‹È ßA¸Á×¼4DMõ»!“r’†ð‘8¨^JÄË…ÏÄkvíaIá+ÇÇ\äa:³ÿ+©X5ºƒ­É"·úDK/%ö¬®öEÊ®sü‰êAT ßò¾ç{—ÄÔu½Ù? ¯kâíî:Ünîú{öo{hßW©¥5`?0* ¶.|®ù+¡¶x¯Ì˜&­ºZ½j}­Vèü~K­-á%µ íÐ_«:¿ï’8ßT35ýÂkB˜ U2Smqë1© “Ãí÷Ä1uS~G‚„ºçÂO¯B-bUȼðeª*µGaÉ ß†:¿šüHêû$*á¤"ŽñkÿW…©'¡Ú£Ÿú¯Y+&ar¤šQSÁ ‡Õ"1¸Âkl.¼ÎNhèG-tOÈÑõÔèø·@¡À©WýëVö¸k¤ðFÊM”ƒÐ&]¥i†ªtR%nRBÿ>ó#ª7•5Ô¸PíCµ•©^CÖÂ,+²‘lUZ˜•ô-µÕ:½ú¹¤=º†“~¥g]¿¿Âgöv%,wîr.§ÆÏßôû®ºóèÀ“ޏGÕ¥Y™Ùt½ð7!ô„Þp©›qÿ®ƒuã©wñ—ñš8©pY{jâ-ñÊ(ì/ÕûËÕ ¡eú¥£·©º!j´¤£—­«V\KëpUÒ·ÓQSíeú|jã\W±ž¬QúÈ/15fÞ_FôêÖèq¦Ôÿq2x8ûô¡Ç³FŽGÓ—%…¯ÐÃÅhÝV˜yDî«Åq‹¸<:×ì„&AT _vÆÁN7ŽO­¦ÂÖ z(Äù^×ÐEPƒ@3Eéø›Gwè9¡ËGo+‰û¬¿Ìˆ‰ðÑJT#ìdxÒÕ§EÆ!¿óÓH!HøÂvSMÿÕô‘õÆn/„@/¿/¥Ç•ü*y×1r_åvD Ÿ¸W­˜0Á+¨3‚8®õ™þTH¨#L9é甩ª Žàç® QÉ…÷€¾§R$šQuA½ò²9Nêußø4„8 Eâþ­lõÞá åK´jXaô ¹HP“¸:µ¥ú=t@ø¥ùáZÑÒ`ÒâÕ’ÀD f¤õv V¥W s8¬ÃA"é{P ×íy$š:AÝKkýù?Î_|@ºHÿ\ø4Ô¨ÓP×5u¢š†`GÜùVÁŽxÞµ’Š» nìw£xVâªËÙ0²“>AÊó¯·¾PŒ…ºLê4$TÍ¿P¢ÅŮԉõ o™+*$øW§Z–‹]¡óz©½x„s±+tZ…Ú‹Wø<»R'¶/|Ý·³¤“*Ônxü;/nQR¬½zm§ä;wRGB‰Ú[qõTbÆÅ;)!Â˹x—:Ëvá'WTH ½Õ©™J̸x—:Ëqá'WTH Â­š¿wMf>šuá3s‡ ¾±qÒýÍß»Ž&SSÏBczýðY=ñ$<µëà|VÖdæ£á$«ÿ$Hu¤‡…Yëƒe¥nä¿ÔZ±8޳òÐd5Êü)Ø×óá6-|0 Q`EªãÑœ:¡&Y4 ÂϹuRTYçË0ÄùC3^Ñ‹aÄ‚B¯!i9AœPã"¬šºúœµxÜÚ ïV’:£&©ž*­§ìç^šPâ_¢UÇc¼ýÜK ‰†VÛñs/M( $zjŒCi?÷R‡B¢§VÇíìšR@ÿ†ü JjH¹H «×‰ªÕð“<ÚK'ÊBÝJR犉¦ž×‘ÒÏ}k‚hêyÓJr‘ðùR EÕj¸ÈOMªIkfô¤býšZ.¾£ZåÅ ‡‰¦¶õ„&s‘@Aû^œÖʦ’’…öÑTâùZ¿E%•\ø¥³8µZĥ䢋÷tŒ&•¡—¹Hð$Å‹“85aRçÖoüUn£À¹QÍÁ{ 2qgXˆBg©øà6ª9¨Ë¼&„\ª1`Ì]f <¨©^“,ª&*ä"á/­OUØX!s‘p$-çϪÁm%"´‡c{}pB‰³†\$‰ÛßGu¨ù„D™s}ô‡ƒšÊ‰Dýã„ ªÌE‚žèùêYXõ˜Sß.¼F®fªk~~&|0 :)5„æòL=4±ðˆ2äÇ*h1 Û×®Ê¹Ž§Æ©„Dóà ×åCàí¦ç·r´­èöÒ{p--æ²W;©ùÓÒbý¼ØÄþ±§Ú臗!Åy±i²ëè¤O³ jÒ ð›ýÂ[ææ"Aÿ|j š£¼Â5 !ÑüÍ€|{kB¢õ5òí-v ô©b¤Û[‹í³žŸ€t{ çÔI|t·ð ÖÐ8·Š´#àΗ˜þr÷’·³Ú…×ÌœêÅ·u¹{ñí+ønÿ=ŸÕ»ß¾‚÷>¼­qܽøö¼ õáýkÍãîÅ·¯ëàë¸{ñí*á~~kw/y;ë©KŸ-TÃÙâ—èùRÆ;=ºU !ÑüR×!ˆ Ì”ŸÏ®çΖ5Äðˆ÷%Ú?v;w¶¬!†G¼>|jÚýÜÙ²†qƾDó»Ç¹³e 1B„õáóÁžçΖ5ă<«O}{;[ÖÃÙÝ—x~ö¹³e 1âxuÅ<AÜÙ²†qƾ¤ Ï-«B¬+f™âÎVjo¼fng.L’du,w¶¬!F°/YÂû¹³e 1Î-kˆáLªË»“âΖ5ÄCVï_¨”ãΖ5ÄCEø>w¶¬!²ÅÐü½Ï¹³e 1¯˜BHw¶¬fô²¡S/ âÎVjo¼Þ«¬!îÞ2—ÿNBH†ðžø 5¬t¹-q“ÒóO]L¡™‰©Žòx :usçê\|bÉ,×™,¿¡ÔFèv~(SêÃI¤9Ë:SÇM ¤´~ºGJ‚#K¢À‡±‹¯)fjÖå×"³„(ƒ-²òcxN­êàN&ù ¤fݯªƒ;™D/¡N­,u­7¾¢š„ZZR!{kh_R!Ñú$ Â\$˜))„U—•»ÌEB…-õ«šŸ½: e«^‡*©GÍœJÚªÙ¨¤e.ÿ¥BïMÕí¥Ë%¤ö=È‘T§kÔïRuû^ø4äAp¸ne«œZ0ÝS—•UaöŠW $q¶¥úcè*äö9–ó'Õ6>Œ‰—]¸ÖíÂkæ²Wè'̲GaM­ñä‡×;1e¹R-×P(Ò¾f±“š„9?ZÕŸ?Zkib¥ÄpÏïKLßÏÒg.É£•~ÚªGú|^‚2Ì™K;Iõ|K¾:ÌÅv£•®ÛWñÂrÓêäB¢‡  ·H‘ûoàžà—¼ÂßÀˆfY‰—ÌeO:!$š¾uÂA_G¼Iâ„ã­4pϤH4HQ5Q! 'ÑýϦ-çKxá'ƒhù¦>NAoÖïöw☉Æ7y°’ƒ‹”Pý—è!ŠêÔÒ¼#nyW óŸZÛGõ²ý…_š?QQ! ‘Áf¯àôŽàÞÎ&Ä’ÂG@uýÈù½S‘@ÛQ‰MÈ- _uÊ¡ß#¬¾ê_Ù“­Bè$×?©šEÜìzWÐb×å]/Eèí³C¹‰Z,>?ÒuIDZç&}Kˆÿb¤Tfè$vÉÔÑi)=“*(rPõ êÄѹ‚t…ÝßÓé{ÖŸ ÖŠP[©ý…ŠJ8EøÑ_8+NhüŠø¯AE§ïŒq>=?‹!F9a<“­“¤©Š©èe„žû÷výínšD¶„±®¿'þF×ø -k¤Ìˆþ瀤˜(GÎ+|ÅÉÑ3¤Šc [òãý>:›ûbè§ërFµ°Yí«:U"ÒÒeì$¶.G>°<¯@éb¹èSú-öXj¿g՜®óYµ ñÑ”()IÉ”â¤Á} ›ÿOðäÐÆwæªV$hN’–="nH";$‘Ý’Æ[°]Ý¿Ѭ0Hé%ƃ 2Ým=Ù>«ærc¢7A­¾†~¨#ÆPvâêg’ §ËøHŸF½Ã—ð‘2ØjTÈômWA¿c&ösá?*ËÙËÁ÷(q¯–È·oÁ¾ h"ÑøEõŠ ¹ÿ¬œ‡‚ŠD…oê :¡/yÝ~»õ”ÓÓ,:ñžÐ´œÞzª‘¸©(Âß ]ý‘þOáÆ™užZ-ÇφC‚ªZ¥8WèT¨Sì¯JvÒƒ'Æp`Bþ ´=†üPä– zƒ g28ò6‹w…Ù*ñJéÑÞ?ʈ%¼g_Oÿ}…°»,s}ÙP¤3Õ#/Rœµ‡¾¤ YqE¯®(´†*Ùy;±æ=?^¦é*4òN" Õšºì÷#d‡ï§NÏÏôñ¼¤Q—¤Jâ¦f™•[’9šªÎ$pQÓí¢Æqú#~âQ¿;AéǬùGB)Óê3u!˪‹q…7|EKlÇ{rû;r‡Æ‘hþHpUÍñí WÿX¨žöÏ‚-L؉ÁE¦ERsUâý…í°½€™ A™‰ƒÑ&à «ðN§Ôô&½d;y5q,<. ¸U:ô3qRᬘϿ*ùVð×ärüK*ÑçH½Rÿ.;Z‰[!®EÂ_Ü)¤ cÚ¬¶çÂË1¦M™,’ÆG™Ÿr»H;ü(åú¤ÌÏJ¬Xº\³Æ¯ ›z§·×µÜþ™š•ïO=ï©<áùï _iXù’·ß%NnœØ^Kf¡ â¬ÁlZ#Uÿ8ÖÚŽ89Þ¹ÀóÕ'òÐì\ôzþí÷­×«ÙYRxË\þ;£Ï;T˜ ðz?¼¾ü.  Òó/ªTx¿ð8é ®—LœÆÕ`MZ¥î ²ždâÚ…¿§¯ù~³¦NÍ0“Ð{2ÑÆkâè ÷÷®ýëà"½øsV"¼'Î k¡k%…Ä/qþU6hI>è++¾²C—¦4eþKoÝ u®…ðîíÒIzé­Û©€àÃú5~¾ÖJœ¿!Ý6¶£ü?ô£ç 2F ü?ô£)Ib¢ïu"ÖJœ/™“e¦mËj×Ñ^Kq4f ’’Øu9aÂ1t:OýÙ¦1ò9éýV‹ª ê Îðæ Z~×ŠË ¸Û1¹èñ['ªT¸ñ (ùw*ì‚â²ï{Õ|‚´ëF°ðxÜèõcášÕ•£nyjÑüI²²5we-ý•óÃI‰…WDnªŒüÃf[§~P1·2胢3FYâUP¥uA…BÔxPñß™‹Àô=qBèi{Eÿ[!!¯NÕž«ŠM?¬D…z”Œ¡{%>®étb®>s&ô&‘”x¹)'±'Õ¾Þàg}¿î©F2®®óÕÓû÷GM·ÀIÅñAÓ¡xßw…•ƒä¯ÍIP×zR­¬_û‹†‹U/ãëšÐpªÔÔ²™:~ŸOüÅ…¬UÁB¬Ÿz´-Ö˜ˆ­P(ËÜJßû …ŽSy¥‹ª-ýŠ+¬Ùþ£B§ý–øi#ýßÿ*<½~ð/ÆÍÔ>= ½{êMáþSý«ðò_`óS/Ïúa­€µVm + Œ#û3&.ªÐl²,$K—-]ÊLÕEÿíÂKB”ßc8jn&n*0$ƒõ¿}KÿR Ó¯>¢®°þ¨Øœ¸·Uõ,®¥Í®¬_¤5õ Î]Ù4ž÷'YÝT„šú‡Žýe‡…—Ä©©PÿIuµÊ%uô•æZIèôïêjå"eûÃxK|dÕ ‘¥ÎÕ¡ÁA¢¥yãOê.4y„ó?³­–Mƒ!ÄI‘Y^O’ªªzÐ÷8¼ºÑ¬V…£§øô»Á Gÿqö$>) °ˆ÷pèKâ„й/ú¬•»ÞdÞdÉ o‚P+’o¤­›¾'>™ûoÀ¬{Ø{›+tÓÈý(I‡ÌáÜVËNG<ŸÔáñLa=uðø™óã‡è±æó¯A/þÊTO¬?­T­© /iýõ‹>©ŸÊˆ•êç¯UÝ fëCó+ªTÔè%7>÷«š>9s‰¶ò%Ù©ø«§þƒ+UJÀzÑï[õHÕ”õ;¼¬ICG5¤¥{)§kµ:Hï‡ðPHE¯‘téFæÖÈùŽÜl‚zJR ïY×iºIët a]’•LC]ë®Ëº**Œ°õó%ަ—pA™ ,׿’ô RžÚIPa.Òwá¯pª®¤«Bäòƒ—„˜»¤Õ‚&+ð Â©…üÅÃâ7Þ ¹it’ª× jAõ²ìi>~šŽÈÞ_âþ®ÕP¸½ó— )ì¨#.…ÚÝaÕʦ÷iŸ §¼íÔuòz‚žG§ zMõR×ÇUx=B2¢ïOD[¯! McšÞsT˜Z©öÜ¿ø³R!È÷‘Õ††bð@ÉógÈbC@ ¿BMÌxhÐI¸a”©'dù3•Ejk%Šž¿¨ž ‚íùÁKâ€xàewêºðjª‡VKjóÆ›!F)ª_ÏWTÍT†8H·?ç$`¤4’ |&NèÉNÖ _ ‘”óÓ„ïÄ9>tG“K>óƒ‹`¸jHQòofýûÈ‘°ýt‚T*TÔHˆ+Çß]«H².TL°—„XµÞ/çÂ#ÎxšäŸìßU!æGkw Ïl¸ýž…ð|'Å—&Aµ¶”ªRÒ÷^øL¼qé¸ð•¹¢á;s),òYtzd­56ÍŠ‰‹êIÑ zÒ)äSû¢º¼7J’é!'éjSƒž°~x¼ŠÇµ†~H!ÑCVƒÙu 9ç…KÈi!%ô‰Ï„vB¤×$Põ‘òQ 1ùÑ'<^ ¸µð]1b€µ†8r¦|°z^}„I„³+ÆQÙÏÃI²ÔÒ" ø¾ˆMðý*\©"-Bg¸þ&(„ Ì›Þè3e†]B‘RMþâÔm QHýëYáΦÑS†G¡'é ù#ŽŠ÷ë ÇŒVyRà™ÿÑ› †T’µÒ#Q'Eõ¿…(ã‹¡ÂéžK’™T%¨Ž¤F’mªµ.é¦ëo—üÅBÕ¯ÏÁ<ò&;$)+ñ "ôd'g­|ÿ°þLåПZ_“Â-ƨ^"R /ÌE‚_¯+Ž™ÀJ†oŠƒ—Ä1 Xäêÿœœ?÷%¡•ôP¢¾Zi"­9ôé’ _¤UPH—4ð Oq·œ™Ÿ™®®jÿ*,ñØþi«GÓ›’þ¢a³V*I…¿”±ëßÏO×$i!.")+¬/{ý­ÿ:¹ðé±€Íbn…õbAw :¾§ ß?ósìÏe?ý*ŒÌCIJÓòÀ§•Ä©Ä5Õm¿Î¯óÖÔØ =s·ôÇ¡î¢_—%9õׄ¦"÷Mû욊ipr"¸ŒÐe$NT‘ñÜúu†u™×T…Nœ:óWxM¼[‰ßÉ_2Ô~FèCÐ<ͤ‘ù$„„èVýÇœ|§%øºð™¹àÈÓð í'ÒêÛ«f#KøNœ]çóÓ ¦×ÒRFä`1 “:ø{‘‡xg!áLj¼zÉxPÓAãB’±àí†Öƒ>jjzÃ:~ëNKTXƒ¦Ûqð‘8¹³¥vá3!š{SÜÅõgªT’„ºk;I[Ø·‰Pÿæi&ŒÌÓ=l¶¯öW´ŠÓýKM‰ûÏ g#”™2y.RäæMV"¼%N!Å­èX_Þƒ ç—‚ajáôŽˆ§þ™8%€Ýø *â¼3!žÄøÖ¨—ïä«A=Õ³pQ=¦‚îßõ¡ ‰sj¹4'K ¯‰cø&Võé›!“BøhþEÕrT‹_6Cˆ¼íIˆú³ABM¤H4ÿ¢š†^¾éé¹ðP!)½¤Ž™àKÌ×M<Ù]k%’†D‹\ToRuB_¢ï+| !ŽÂ@ ñSÿi’TŒ„Ž›Ÿ¨š©è»˜^Š[ÓøTa‹Q7AH4¿j«E'4Ò}æÇ}ÉYõô;p’Ö\Že\K?ß0A/Õʈ—ˆöWT‡øýò»”¹R³}=_C—$=èO…”D7’Rœ.¼'>-ާÓc©¢BuÉ>2ý¿ÓVËNìØJ¿ð¹ÒÔ”‹~®­é½öÏñS¡Òý¥dHM Krÿ^B Ô/M‡êzsC×M—™Í¤’KÛuî´Þ?Ý—ëÓðsæÝ._’yB’ê]oIº)ÝÞS‡d„üVâÖùª#i¥Ì†ùÀ‘h$óHb»e–1RN«ë)iMé' îÁÒSR˜is!èNÜTl„Ußô-qþËŽ­‹¾%)”/v’ÃÑN-ª.ª-苾ùtP…=eš”^¾,)|NÆBÂÎ'¥§ÑQ D€à“%®Z UubË‹zP=‚¢ Déé]+8¼CWM_ïÆaØ>V%*Œ^Y0».¼'‚Û_ø0¢4Hzû‹OCˆØ2ÖåKÜ¿8¨*™>ó­ùa…jµ¦ù=¸Új)8&)/~´¿K’ì\UÍžøùˆ dÆ•‘ËëøÒ}iM@┇ÒÕçÿô¯©8÷ü»Â×ôÄéo½J¦å¶²W¬ÿ¡ör ï qþVÜD‘tôê!¼zÕpègâ;ñ¼©޼D3ã:NÔŸ­¾¼ÄB¼Ó®Z94|ñáAû3©ž *Lð¹ìLÈŽ¹ÖÓµ#w[Ovâ÷:CöE¹R,P£`9UýýŒúÜ™ø;Wò&….V”˜®'¯û0#néºSLRd¬³4ÒKšÑ›—œTëø]„QW>éç\ìÊþßÚÏÏ̹:O¥x~‹fƒ,9õÝS_RcPx»<¨~ô(…·Ç£®a„´ …ÃÕ"¸ æb883ZQŽNBГí›~¥Î‚±“ëÂwP±%êAêE/ÒãÓ"Óü‹ê1Uãq§…‚ˆ Ÿl•8^"Z·D[¡B=HÕp.¼b¨5hÓõ÷ÄñjOAH4¿ª°ÝSG§û¥™>§ÎŠ@Ï…çü)wþª¨âY †Û¤G:¸HK4­ž Õ“T_>† µ#R1Í ¯†àñiÐß[꟨ª©àÑiÀsû—h|ª°æÐj¨¨‰?ièÙ[¨°Àx$ýöMó^?V‡‘ û×þ‡«Âìº'¸¨žæo1é^b蚤ÊBÂKҳ̛}K|¤vîI^ôÕT…*ŠNÓsáÃ<^ xÄÍ1Q SÁހǻÑx§"*Ñ*_~y’ÐIJ ªÐ›z°k’Ý!CV±C/ªçh­G{Äs¹Â' —j«zã¡”ÚRjA}„„·TÆQm÷¤vÎíS;·¬¢{ü|­É ‡, ÝaQPìM*¶^–üKªz>ã;µ{§ASÍPŒùýS«O6Mkšžýgרý˜ýôO¤-ž´èEUwJRðÍ맸®’ý„h|êPtΜ ~‰Ö—úúæ !$ú~iÀ1+Ö>RñUT¨ç„<1SdGºëßç¥ñ•ö2H]k±bññª´þѹðCˆ‘hjDð†âr±×ÔŠÞuåʼn™ŠEã-3F’²%Šã©D<šHø1p6:V÷’”…¬}\©4~ÝÉH="›ã·’“Ö)~ømç²é"I¹ÊRIºÀIÀËó€—ç¡ØlYWj—ÕÕG ë'S‰‡Cré^ou#qêüZ­ZLM ŽÖøô+6]´Ô4†:L¾á³®Tü­Ô¹¹ÿ33²~¬ÿJŸA‘»"·hQ6ToH8j&\•$ ~4yÒĉ5"•sAEþ‚Ïÿm‰›€PúÅ:™ªDýÕ2̺kAН¾‚!U *[øKŠðñÓ+má1ûKÜÿ™x œêŽèÿÌ1—U£ÚUE •—&ò®Kë³zQ=¿úGŽô^N‡RqIug^:Ó½7A‰ªÁ?YÉéÜž¹\šÏÕþ8ZQ)ù^¸AÉ¿CÕSÿÇN®€Xö…;×úò­D3Ì}á¤$SCw\‘ûD®zJK —=drB‘,ÑŸ¥ÓïU_)įäÊœ[ó%È·šâúz^M¿05¶áçÕ&7 ï?óÂßÜp¸+b~qHÿŧ!m˜4ÇЮhªi*¸xU¡þî¿ Š‘`’pˆD¼–ÑýÙ  •èÿµE‡L ßò1S¢U¬4ÛV°ìÀg@4xÙÿ÷ïPMf AOq’W0î°µXÆ7cãrü’e¨®Ó4#ƪêg­‚Ø4§¶^xI=Åù!C²ýÓ!B û*z_TÕb—(G%Þ u}_÷E?ç w’êßvC vîþµ¿ÿ5HGìTI¿ç£ÃpJ½èO­%H' Õc*D4R£ÀKâ)´*$…šÛz !‹û¯{ôÅP§À†›¸¾¦jç©äú3>×üõÿ­µUsýͤÙ}.BœšµÈe?e#Gwv²I !âzu0Ôjøý8’WÑø8Iª_ÄQ+Y 쩉×Ä{¼š~“/¼å[;ƒ^\•©ò%–‘͉ꅇ‘M‹pªü=¿‹`Øêî(‡œdŠ@¹l·ð‰ùýëú÷mðV=×Ö5A\š©þv2hÐTmßóJ èÜâ\¶/Ó¨îú«q[1~ ކî׿uÝ¿cKÔóê-«.ýH[¢7yuö¯G…º‰[òþ-Oõ Ö팸ÛhuÅúõýgÄî¼+žDáMÜ·nM w £oR'vTí¡³Ð鿨ú=¿Àû“‹3ÕÕµ~r‡O]<ŽIëçï—ôÊýœÊŽêú¯'i¿†>º¹ÂíB¡F?ºze,k½yRK[îZÝ—×GË:Uõxn½¥5„=O•Ô6ZØCyN¡yW¥rBsÑI>z1L—Êq°óK^xK½æð©9Û?UO‘î)ƒWÚ:e­1ªyNý,©JÆÕ¿‰˜:³ÓÿET²¯ê„³bq­m iÉpXš ŽzäLñ’:õ2}ŒYI5+cnµ‹¾—®– ¾ºÿq*D‚ôÁöbªj]©u¡d'´‰¨Âú£+æN$…L(wSáÚEO…êÌŒ™jÒ'Ú§‘–´>&˜Q >‚T­–Ö.|‡ÂuIz:+!NªF¸çYÔI׺Lî‰ÒJòM=jZë2I£þój–t%Š‹ %ªŽ^j¿ºÔII¡þñod¯ê5ˆÇl)uÉjzi|˜êŸ§W€Ú¿s¤òÊ1¿–ƒêGáªNnÅnu¯•ûþ+ÐÔ–Bw/Æ9 ërÕuúp-G(ªÈýW!xÛðißc¬«çø› a ìQØ6õš…ôü©õ4¬Cœ0âÝÚK×Ëåº]õÈŒn*jõŠYÊU[ÿ ¤¢!¬PˆST„*$‘ìZ]|òˆÀšVv†C§ ¦V‘³º/ü½u™x7¼óo¹ã—ÑE§%pô©a 5hjíKþuSJMÞ¤Ö-”©aœª „×÷¯Û·Âš:êçŸ÷%@lr)dN\ÊMýâÛÔ‰ø›BlŽ´KH݃ôIùwèçÆÑ°f­•SƒdŠ´¤BÓUšg˜Ù5Ä‘pÿp_A£“Ý üúÝÞmúWœd7t±ÛTýH½‘¼>ÏXSR^%Oª7&!äÿÑ#pWMªš’ôuêW«˜ ²8xtYMÝTõ{«5?[ÿþ¥~Ô¤¯H‘û½ºøë O«ƒ 2Íqƒoöd¤}]x\ ÙqJúqFe<…øIUB é'B‚[!±]ÜJœ«/Tð¸Ý²¤Ø R¯Ê÷þãÃÜùjû뉿‚Á"¸œéáß„À_áQ?=ê0^ŽŸ?:ÓCÒYHxM¹uËmüéTü`&G½ñл¢“Ÿ¨z@xtºŠJ.|æÐ0lg£Ž _9þ×ãÚÄ=—AʰkEöý+z–U‡VT=1ñ7!æb¤µŸöO‡a§CPÞ/ÑóU ëAkQÉ…“ƒ,œޝ^õWã쿞¯4žn«fÓìé¾ð™‰ý AyÑÈ…/Cðr:ÅíÐïÄßÄÙ=V˜½F”³_¢ñ³-õ*ÆP_Ca¹}h’†¢Ì‚Áé ³%µ¸ý‘øB­)¿D}é`‚áŒÍJþ ™ Ç}„ŃÓô[xå_„݃Ï\7ÖAE¨âžmA”‘²Ô>…u®õͪñ u]"`«¤ÑtPõŸþ3v_¸Vä"©ÿ¸‹/qÿz*ÌE¡¦Nôߦ—&sòw&¬E.o¤cÿÀ"a'FBËÐäq*X<¿¤ŽM‹`òƹ$¶ªÐ£RÿÃÊ}%Ù?¶¥§–óPQìú©Ìõ0±¯ýðxbê#·)w "J»·};÷&¨HXÿ¼ð‘¹ì:©Ûåzê_ÙÀ ±&-xnC¤“0¸«ÚpD ¼3Éø?ýÕÆWm#ìcv ÿöBxlèðs°ÌÔmaC¥3„2–x'Ô¹5rq>¦îløè)‚šýgÞdIá=!ä.ŽdŸþ ©~üë STCTqdADáþ¯À½¨úšŸh¨”¥w^|•:aÿ7„N×f R£&Í8CW‡ñ†¼kü>nÊd’Ê\DI;Åêï€)îѬîœkÍ%“¥Y™§Î…õ\…œ¿Rž•Ì3—9tN‚^U8îG3¥!È“@gT(8Ò£Uîã\pOQw”{TfyïEö²¸»Y}ùÉ¿’yÍæLã`[ØRB8¬fÑ)¼ê #ÑX^‰¶7éÙ Dáóª0 #K¥ü®¨‘…È~›Yi’ 'TГzõd^M ‡§§J'!ˆé;¬š0ý#ú %H…O§jÿVÀIUáŠRÝÝþuÕ¥Ü#­Ät”‡¬’lJu¥UQn—üYRïÅkÄQ¬ã´fˆi€p?UQÝÔ·UcžNõêGLíéZ— b¦ø¡¤ „»¡…SÐàÉ€AÆ-¨¸%„(è9‚S½‚]Ë1>¸BŸÿÔÚƒô…4F‚LSUQ͇ýûÆ7í$׺WÈEÂ’®$.ñ ¡/‘ ÄcyoA -_‘[æ"AûâA(”9âË`.œ›)¥Œ¥\øÉµ ¯ÉLK¹Á‘q„Ð%¡*A¡o™;˜‹„tá=q²çé)¡<âÈ0$hhܲHp$?G%·ïñ­À©Á€Œ‡þá,£yGVÍ©cOõüX¡ Î ¢xtµu‰?8>î?û*hñǤú[RÍlq»§’‘…B#áÈûüõ¬µ'ÔSERÕšìóÐ…«¥¤Ð€ì-‡VNÓý@Åì±ùbî:*ˆª^³rލ$„¢×[G΢š”LÔ8¾‹àÈ{,´(b † ½ a¦d!Dãhš§a¯¬žô®µþr.óÂËÍï¸ÿ+™á*I¡ÉHzç6å¿JçTŸš ^C(AöcªÐ©°åøžk|óˆr<>ÐE•ˆQ¿‘+¿YG2sfÅP‰žÊÌÆumCvÞUå|«ßµ¦ó®Cz:Ô,J¡Ñ¼ú¤-%GCÎÁf’ÖÌ)¾áÂpK‡tÚƒY8<>„§PI’â=éÃ×™–ÉMœªö•–ò¢•¼oÕÒ Vû¼:+^‚3ëN¥<C*êôE¶±’#)ª¿%4˜‹¤Š¾ êpÙÔi0€¼À‘4Ñ„s‘hÖ9VAì5›f#šUŽº°}¶„¼òï¢bn§ß!Ä:NRйì0{ÅöyàX0Ûg#˜¿Â^£'º¡¾44Bè$¸Š„jBüÒÝàì óÐô(}W¡Nô¹Š»>2£‹t,¶$6¹S¹Q+º.{ L0 »®µ¬^»ÕN7“‹Ú >‘!½Ëªñ@æ}’Iƒ›»f¢ÞPÄÜŽÚÝ!æÒ=Òâ¥ZµÖ±CêU/îPS…ÔµžÐ ÆÕ¸ëø%š?lS(Ô! ï•/îUÏÌÝÌEB\ïj]Â;åá Ù¾¸W¾uHÑ;½A1V¹c™, {]2-nS°ðåÑ(‹„%+!$šlS†s‘ ±ÑŒ•¼#–IgԔŽ*ð¦Ü΀'‹»7¤À{Bì:;ÉâoàA…YYì;©·VTCTÈE‚ù—=‹+¬ &‘»Nà[¹d§Ë«Å Ç8´ÄÎå¨ÙuÔ)“(7ÞÁ\vFeapóÄKæ² §³;;ð èY5Û7Þç¿.w…À»ðÎX.Æñ$dò— 2—¤ƒ’é5ŒÏè¿eƒ ú$)¿é§¨Ðê—lüÚžŸl¼Få·žt ]ÕVôŠUú7í—Z  qôG¬ñƒ—Ä1Éü BÆãs_E5‹œø—Ô oaëÀ…Ïi¿×¦j‚Æâû?ËEŸµìú‹DgQ Aɔłú©•­rh‰ö?R G­¯ üRû¬0z5qª›°q;ø›]㿘 lB¶ÓXa3‡;/\T€æÈF´ˆª  cŽ€à‡>k%„£5¢rú‘8¨p¾GTð±üþ«ÂO ±þàh¬›Ww[=ýY$ó¦_I…šÀ (BzTسUv’=Ù›àê?yê')G‚£=$”ÃJçVåbÔ_‚SA“©‚ \+r‘`JÌèºêÕ?@HÜ¿‘Ы®ú5 B˜?¼š8šOÛcy¬oLbmCsü%íÂwæ"o¿‡^ ZÃÁ¿Âl³,¡†Ë- ÷VEƒ‰—ÌhIÊúõ| ÔÞ(0d!ü9xKhˆ>–÷—€x£Àa¤cùl¿ß0År­‹µ"aû¿*ì"E.Ý=øÔ›†¶—áþ¯€Àf`“.†Ä;n°uÜ…ë¼ZøûdF R5Ò…¿Â;ïÚ!`9 $CxÔy±Æ!™&ˆT ©ùy›ðλz›—Ïßyá]PÇ5½Ž»vwé!8©"WU‰¬$P¡ÎkvˆU‰Ç¿u^žCÀr@HŠð-¨ã^ç59„áNœåbþði€_ÂiG‡ Ù ¼ó‚{B¢ù+EPç½:Ä¢„Dã+UPçå:Ä „d o‚:ïÕ! 5 $š¿Òu\¾ë4PA@òƒåvØk ÄÊžp.xð™ÐçÓ¢ï ƒkï°×è´×@ÀòƒïÌ%)Æï—½2¸9ð>댯f-þf.I1~ìôŽpÆhêK…ð çwDÈ:xUnÇIÜa&ëMß1*%!¤|ô}Tçó·Œã`}ˆFˆÚ~³Bä‚ ~mã+pˆIàápy(Ñúd]îfö%ç&Â54f`}ƒ¿½÷ m Œ.,â_6gE¤M¤ÎϾDÏOTETÈEÂ’” ºBNý²_:tó–i¿„›-VO0“½mÜ!ìÜe]ø¼CÁ $S8ÑŠÞpÎÒ9“lÉ#Ý q8DS´åž]O,[ºzáoúRÙòp"üÑ—>\®¤›LŒôÆë #h ˆx¸A —)‘ !Æ#Õ“&QMÐØü\ÙWÈ…A BÂ_Z ¢Çy’ráëtèx0I7"¢};ÁiÒ q{0YªZnDšŒ^û*wÂ*šÆ/á"8Ršn–¼¦¯‘‘Fú…·¼^òêRÉdhF{øÚºÔA3ÁÏ ¯g>gOwÜQñNæ[*†LŠNz§péõ¡³ÿGÏV‰³k••\µ–èºÆ§þ‰ê•çºB¹ip…îÕ|øh¹H}RP[OvýãŽÀ[Bü7Gâ/±ÇovðIJeª.h0–9B‹£’ Ÿ‚@…ãóIBTSTÈE‚—ÀχF¯‹ƒ§¢¶T‡´nüÍ\Þ×i„¨ÿ|VÂãf‘ï(̓/_JþRÿEUïKO¸tðž×“8&ëÂGB¼Y´}ó§KuEÜT„8~Öïþ­Àu_ˆ—‚Ðgo¢¤>|³È·‰ÖE¿“ŠSÃùÎ …ch8øon§®ÿjSƒ¡ñI‰S4Ur‘ð—éÛé0s‘ }iÕV¹§ƒ8øˆ Ó¥+ |~¾:ÆoçJò(¤«? |Öf.Bãg]:õçÑ’¨ÀKž¯‹OÕð€6ÍËgmA¬SÇ ÷ÎZœÚãÔ=.¼ÿ¸"Ø<Ú•  ­<5¾,ô—Çp{1ø9úúhJ*?{œÉ)lo'ÄZ‡Ï—Ï{ðW³rºÆâ#Ûw…’ÆBÙS5OÍÍš˜ j…9*T"F]åî<Ä}I~ºþäÑx]øˆþ¿Á¡sÏ€ûIžî—nËE*D×)¤¸Sß?Q g¯Ù5Œ¦U®ÐòѽP¾HÑŒÛzâTï“<»;®ç»|ª/BêûSmŸÚ¡é› T%Ÿï_Ÿºáfíàç|Þ|ô6¾…Ïû@ÏS9<´M7 ¨ÑH™¾}´ôq{$nÒsêäùòÙ zòÀ_­>‹³’«Ö}îÄ…ã"èYÿ+¨%4|´}èï OÀ?£"Py>Õü :#a'yH~®ñMç"ø–çO¬ ¢jâ¸C6»éË¡Ù4q½?bX†sá†{"Vxöïêpͪوַ¨^Suâ/Ó×3`æ"yôw[9 ¥x?—'|ê7½]çòOýH6 Ÿ ¾Ùª~ÊÈ$Ùˆ„ð ïWÒïÄÁýdI>äl5ohÄ%Vû§Õs! ¬öõ’’µQ.ùüáSe‡‘}/2ͧ?¯ôs qÖ¤AˆŠÐ8Mk‡tÄøÕÝ¢¦§  =3¹9S¦2Ž©{yk<ÕÛëß©uiýc‘J–\$\Dš]C Žžrh½_xI¼ÁfW8æqp‘b¸ìé áþðPç"c¢—LTÍbÏ—ÏwŒ †pknv.Bo²¢IõBâñ¯ìf‚W;p’ÎúOƒ„0œ©ƒžT‹ð¦…=Ÿ/©„c£Ÿª£Á `²ð/Öwäž}³ ‡ß /nÃ&ѳÖb¨½®æïôì„f¢ùW'ªšÆ¨`}ŒçïôŠ­b&èp—“È펗æ³×HÐî-‹MëwŠ ¶+qZ Þ´qƒ ûƒ¿ ¡§ãçý DY«©X}šã¢¯‰óV FÌ‹¾&)ÿEÇéwi§Þ áAôs6\ÉÈB˜)pð1pð™øV'*^·oR´**Ÿþ?|êšd<±‹¢^˜‹„¿´°BxFÀûUù¦ÀÆÁKæb|ôJÌ‹DYâ•ïÂL$?xK'ž¹xf“$˜µš #¡NœG¬}ã⺨ïrÿfâh܆ú¨•ûE v]TÂIÅ¡£‘¥” /ÆáÆ÷K´‘J8“ý_ãЫjRuVDÏG¾†^ž¾yDúOƒƒTHðü<~Q5SÁåXEÉ/ÑN¤ Õaæ~ýÃéZУ­vf-ñxü1tS½ñŸuá; ‡%Ùg>R'ļ™ôW­ *ä9ÈXˆ]1^Uô´zÌ®¿&NvÅq«ZУB7½' x&–¤Ùm•ìÄT¡/qû#!PÑC0ÍÄNx,¯ XÚœÉ}áKPCTFÃõ¤ß‰¿~à„%‰³Â'&YÏG˽'*¾dW³‚%ýW?l´™—Ù¦Ž‰¾ j4‡/dGèk×ã[BpÏðío/\&Ý*'N*B³¼ÿŸ¿ *°$-47.ôÅÛÜÿ™¹;žÝ„7~ÉPÖøU4÷ý몗¨ª:AK,=N=ú ¨U)Z?Ä»—  Zx9×\5!²h§ÐÒªHú’¸¥2ÝB"xL˜rŸTÕTp 1á7bŽé®uã MB(d|Ü¢!Êwà­b½Õ$0„Y«lš=ÑÔu"N&„æVµ¤)F†àMb‰Ü´o1•ðÂ\$ü¥UÅ ÉšYkkINâåGk+ùQ»ðš¹=\ LxH?x»EG”ÿ¨„¤24™‹äëÎô[]Ç‘:¥|h]ø¼µ®–_<¾ QÜAˆ’Ž×K+¥FÌ¥çGÜý=HªÔ,ÿ Wë/£®¢°‘~á—Ô&å#¬ÉxÍ\ÒK2Þ÷IܘºÂ¡÷Ò˜ª™Š¦5,$Ï­QaKùŠ $Z_íG¾Bùld!AdÝð æ0S~gEpD3––$NþC’’f6Ï!$ ‹sY?Љú×O­¤Ç†ÆOàÕ¸U¯Â01~rùoYÞ÷à&ÀW—oz§{2ÍŸ¨zˆ^x4ÆžÐ%v…ýhe-DPHôhk†üf„$ÁB˜è„|o"ë/]óO‚þ#¿€›ìiçÛ°$ûâJûb$´4Vÿd_¼Òþ·B¢ù§þJü͇LýGc!ßVÇiI<!Ñü…‘qC‰Ðö…Û\8ŒˆWàâoËe_¬\$Ôw­oÙ·´ ž¶ôM|+×FÂS¤H4~š†ÐˆSFÂ4â­þ&TeéKë^˜TTHøKó#ª’öÃÿª°ØQa¾DÏ7ŒŒÃˆxB¢õöÅaD¼!Ñ©$ì‹Ãˆ˜æ¨Ï…§}1¿tÔYÒŒ¿ËªØFÀ°iŸ0\ÿ­RÉy¦%q¹ð7s+s‘`üÞ_¨¿(K6ÃaDÜ.¼f®¨`üÞ_¨ªl†Ãˆx\xÏ\Q!ÙaÉ˲Äi3†¿ãÂgšó†¯éÝ¿/‰p‘rý‰+cÜò´–¥mã"”’—ÁÍm:ü¦%o¹ð“[™‹„¿4¿»\F¾2Òe,šâSé>P?¦±Þ.ûà°ßµ‘mU†dLû\-MÅ%\išÛÓHxEÕlð/D«´¿ý»ÊÚ ×½Æ­ccÈrRÑ4€xå­ï‡R‡*ƒÛǦ½VísÖH`3ÝaÕµIáåÇ`€’Õÿ7n[S ë§½•®°rמ«ýžø4î§æú£A+Á¹j¨Z¦/œÀÚT#ÄKŒK•j2w1 Û×üáêGãý^¡C€²/|EneרIvÂó³…÷ÆK8tP߃Óý±íð°ë€_¢õI +Aì;‰ö%¦aŒñIW»¤ŽváU¹á£B¢õ)çM5ÂÃÆ¸p熇I‰æ¿ ‹Ío56ØuŒdiýVCö°ÑØ5ö_ó[ ÙÃFcÓ„Öo;[e×ÙIÍŸœg¼r¨6ê…;7Ùõaÿ‰·ìúñú¡’Õ$ÒëÑM;á §p½±„wQEî7ˆÁõ¤KP8ÑxícxéOçÚ«¶^Ò­xµœ›˜¼j@à†¥—ø›Pµk ãÚ:¤-=]ÐF œ¤áPC¤HÔÿ‹jÙ+ÆàNçýWÏ٫Ŭüœ>.‡ô„®)´?óê9÷ºÑ‘kâîÿÿ¼^ך?^XïIÅï?’{n‚ý¯txåýWoRµŸ¿O*ûªtc¥Fž ¯†H ç…S¡†‚ªš A &âÌ!š+¬Ç!!$êŸÛº¼nÈ5ð.‚ÈÝÌE¢GË[çvÓa‡ƒ}EŸ~•/_Ý^)E¿bˆy—Ïþ+fz¨þ&„?6\F(öù0Ü\”S*,©JzµàИ˜¾ ¯Ìcs¦ï !÷µÿ‹áó¥k®Á£'nýMÅ-|fK˜ÄZ®öWVý„“ÚÐÖ¨ ³ixõ›ðå7Àm©þa×ðõö%Uø+È®=°µñ¸šxIˆ1º\wÀgGàAÅVѵFú.¼%Î'!$z~ª°’ë ~d£þž¤Ç+Å+ú™T#©ÚåäÅÿÒ¡Å;ŽW–üs­áëcºj5²ë‹È}2—ãÃ"’A‹ Cˆ >”(é¯ 9+?Ö— LULƒŽ‰x_¢ñ«Âb¯p¢4jÅí÷ğ˵ÇÁGf¬$EK¸1®yø±W8aúÍö%’^9Þ ß—C’ðJQÂõFºùPnxÅh‡^ÏqÈ‘î.ÔÕõ„“îDû פ?5äõ7åOý-¡‘~I Lç}á‹Ã®%n2ˆ¡ó¾Û!GKÿÆgfì$eýz~”Ea“ë „ß ·W y­°WŠ—RãÀ/12B%L„*˜ °eŸ$­„hü´µ/ Ë’*àKô~RÖ-$KFЀ©( " dY4óæ…÷„(kr¹pSaý &˜¿ß¢¦‚ÿȉðS6¢Âq^X*=¦ë߷à ʪM¯õC1˜ Â\$è„øK„¯Œ”e× /Ç—Eʪۅ×ÌíÌE‚Nˆ?eÙ”eKÖ%Cú,3Zð‡¿ o–ÐxPUR!a$¯GxIN5f#{DžL]á+hðEïò]ïßM8;Ñîk2¦É7ZÑ÷Ì Ô¯-š‚:‚ˆMŸŒýÝÄ h±ö¦®Á2ˆ›Š^JXuÌÊ„ PaÂj%}Z!Ø” ¤AM+…þ³Z ÿï±"¸Í©@Ô䡉ª˜ þ6æ¦0®ZKÞÁp[U#=©žs …%YÞyÏ-ÆDëCW=ª ømå?YHx»/˜è‡ï ïyäÜÌ8· DÝ-èajõÏ4ÅŸa€ßž _)ý£=O?¸©8ë%§F8©„šIÿ\¤šÐ|¾óÂKÌšfêz¾Âëï-šs ÁekVr-BÑ÷Ÿ®µ\dÅíÄ_ã6~ú?’t›T/™¾‡&à¨yK›‰ÖëΩ-1?í=¸H ©`'“RÅTOÎêŒ[Ô'è£æZs¦}˂ŅWçž«¾O`¼Å} ]:8Lu¢gîÌæX‰.ð%9Ô4»[•„8u؉÷PÕë\k`.ÖʼWôÛ…ò*¡ rï.ô •R¼ë–F\ð^ÐÔñ†r[ÞM`%ú´ñÆ|ò*ÿIêºÞìðéÈÜî\êÉzdê`‚~.+èîñžuNŒ¼±@gLß8ð-=P‘æ=‡¯ë¨‰fí,_F„D«–cDcüF‰v5ÞØÞÎe^UHÜ¤ÇØ^ô-¯0Ô¼ ÀñkjUáÎ’äÊÎÊE­HØI=UèŠs‘ $šÕõsc7~î1TYüB¢G»ž¼Ðuõo½ ‘í¿åÂËuÙ úZAcIáy…` ÑO ¯¾ÑáZ›r'"^¹ÒR™ %´þÕͨžAß“”f©˜¤·^ôÓ ’jóƒºhÛëþgî~D?VKQÇY–xÝ| °!2˜ÖôWs¹4 ¦•sUý~ ¼@ŠW¨¥F쬃—ÌÅ 1“ˆí4gÓ«µkâ)çwÃÊÝ»2ŸªH© þꈪ‰j"´öäµ[Ô»Âf¨SŸñèMUØ¥#D}Æ«Š…×Ä QßE¥Ö{á-©Ðõ—ÝÝÞ-~µ9Ȭ$¾€wZ ’ºiä"aI׿oê /®_£F.þÒø9õ_ BBH4%æçh!¡ï;xI}áL-a»ðzÜêKËIÞŽ[}©êï[*šÔ‚áö>µ€ZšedÆJ*Ö¯¥S~„ƒ³^Ÿ _ñÆÔéŠ>O¯]?o  !B´cÑ ˜ qL¿z™‹„’á5¤:âHþR/üMˆ¹Ó’š®“dtH€„U˜^EÓ줡¨ª¨‹B6¿ªÐM# $Uºàé¶jvbBâþMC–?aÿ'–ø2D!”äKËÑýÛ))ê)*§jBÚo¤o)Dº¥Jx*`2­TÓ—Ä[âìŸæO¾)zÂpÚºðfü¹$djÆèk=Î,Sª¥heM,´Yèª*­~ W’7év׊\$ré%d]¢—è Iž}i`\n*Tÿ®3^0Ø?t ÇÔÔ’à= á#Œ\4JÂ1|êªj`n£ŠÍ üà=!äâÕdÄðxuU׈n€'`ìñ)ùˆñ™}Õ¨YRx¹H=k1õ=Êj„SU£'„mE¯HºÈI¾dUûû¢ö‡º¾yq‘'’jTÂÑI|Xh‰“Ò€?œ3Ñ`yßh£®Øã9!™;ð}Ü}Ôh/ŽýYxõû gc€*ÈÁ b âà3!ÔC¢xy5pS Â÷’¨¤ß‰c:À Ô4*9¸HK’V$ÂEõˆ ¹HðtĸB÷jÒ*±¿^‹½F¢’Â[fT‘Ö—n[¼¿*W "ù*iôóƒAÑ5Bû‹¨†¨*eˆ'~ð¥ÜŽçÛ)ŽE<òƒoåvÞ<˜<ÿ`ªÞpKPç}D_¸cxðWP§¸QÈË #jÌE‚F¼¿¬*¼Sœ9©DÁ— ñ–ÿÆ©†A@¼SÜ |Nõt¤‹TH°ÓùýX§jævBß¿b"]×Pý2Ó¹o|g.V5üÈßOâå_ÅtW<“>¼~U×›TèHMIÊŒ³V<:~‰ø)”ñ*ˆýÿ¿¨ª¨b|üeú~5½~z™~$^ÔµE§êsŸ?Cû–KÅ3=øRF¼eIý¤èÝþTñ¤*»¾¨¤Tû `nåHõ“ê¤ñWPÅ$VötQS(/³ ˆ\¶?r|Æ«ðÊ™â¥KÞ¬\bb@n>ìú,I/xºêy¦ö[¿Ú¿\ש/1N‰Ï„vB8êýqƒ "AÕ!oåVºò_¼ÅV‰sÿ@Ù€ s‘ð×þ ¯Œ­ÅûštÀ°u¾¡ºyÕ’öW8sm½ ˆ½Æ!——n_×ß„W„ ¨eÕxÒO¼+£Ñô÷5Mß„A¦o¼”I\¡ÞHr‘`’tƒ€xëœdê¿ð¹Ùžÿw j°k4rã¥ÍÀ?‚ÈL‚Î(K¼Ñ4ŽW5´mëü*BFrˆG>éåaëýA@ìŸ $šßÒ„·NW¼oÎûä%ñ Ì„Îw& ¾˜‹㓃×ÕUc”\ÞìL|)·Ñãk9Uã†\5§yi3pEAElc>_Þ7çÍrñ¬Ð5ªVûšoÌEÂ_šÕõªþNá zžxSn§+p^ªd(‹-%ãšÌEÂ_š_„:诡c$¼ÊÌEøTnãIŒñÎ në|Œ²†¸4iC ^ðÍ ¼ñ$Èû˜‹ëC’hPj97 –y33qç6È”Åa¼^™xQn£¤‹ñΩ“_^¿­ juè;]•.YÅ1Ô¹3F’òÔΰˆ†fŒŠÏŸ#ö‡ õW£ÆÖ½Ø­Ï6õWUoáËààP§ÕE&‡ŒGB†:7ô2 >r‚0Ô9ðÕb§&çßÄßÌe­Ø¿yÈ|’¡ÎwºrÅÍO@HÈß0J9}ÃB´Ô £û: a!S)·r“èã¢ïε«6I€:çùÓFˆÛßÈ"„#‘8›^FˆÛé+Á˜t¡—Bt:"§"dLߙ˪1Rž)t©A—:yŸŸžGȘðL¡/¹B¥ó>¿œŽ°i G—%÷ùåt„õs$zSF5d§#l:YRÑË!;„h¥ñR7/íËéÈ$„D;Ѱ{9±S‘uá3sÙ*tJ8IؽŒ—çêtaŽdþ¼ôIˆNGìTä=8ï{+—UCøpš¿®Hìy„Msš?^:D§#v*Ò.¼f.«æÐ0™ÐËqz±S‘qá=s's‘ ÿ2Z3\‘Ð󈊬 ŸÎµS6‘ÊÜ‚®DQÓ !œÂ-‡â¢—âô3—¤?­/t¦ƒât"§ Ü)ß·?ŽÍýƒ†²$§« C¬SKŒ¦©å÷É®<äYƒÐ´ŽãÏcsë a /t\¦+㬕C£uÔ#¼ýúò¬qðž¹²´CrÓ‡+zæ žÝk¸ý™C¤²¹²‰uî KkžÏĉ““ ›bd½ ™_„hþøÕO=ÄIB¢ùá§=mêqRSkâô¨• Õ¯=3o©Ó·Ûô=m45¼t®(WK^˜}‰Ì1è¶ùD¹Â%F@H45¼tΛBºîXuÉñà+r'©*!$ß¾ïOâþ# $Zz¼ÿ"¨0 Ñ3bÅuõrå%Fã%sY oZ޼äxßz*ÜÙ4Q4ÿªp˜Š—MxOFÞÚÜ–Í}Ò°¦œm•´ù‘u º[õüh]6;È¥õ‡ìDÆé«¡ÁN²'î¿êz³êN‰ú¯ Ó¦g¼61I¼ Õ}ì`B;:ûE=˜Dÿgªàg*Þß _‘ !»AÆ‚âNn;*î ZÙ4M :Í+Î^Á°ÖމؖÍ\eÿšÆ¯V+Î+Qžëoa.@{¨èÞ3cZûlz¿… Þzb)®©vÿ;ÓzøEÅÂvü=©ŒßT›'»kžµšS­‰úGu  ýãüh~ûÍ 'Û.üpÂLÈóŽ`wø_¶Jí7ôÜ]ï_?µæ"A'»æ_Ö`’ÁsTö´k}¨­jˆ.‰ÌB· Ÿæ´!ø[•ýïÚÿD5ƒ]l=힟SáHNü=8¯³[nN¹j$šJâꥳ6Ïœx¹tÖ⤫zj¼&Ôb'‡Ö/=÷ZÝmv¹²CóGù\»×b§™»˜‹ýš?Þi·ºÛœte'‡æžX¬î6']ÙSïßtÒbu·9éªNj}ÐS‹ÕÝf§«ú§ñSR:mqÚU=ÕþIžC{…þ±SóCvÂêp³Û•˜?y’Љ‹]®ìÄÔú"O"uùa·ç…ÌE¯T?:95~òVW'§½/|]:gqÒUðüì„^Xç“”ík~xœ·º:9íÂ’¦úÑ9ÏTÁV:LöJíksKÅÇ-ºO§`CÚ×N‰&™†=‚s‘ ¯&‰îÓ)ø tCÚ×yá#ss‘ >¤Ð½:RѲkÔºKõ¬­A¸”°™ñ)#KRÉšá¬N%Ž@e_2I¿ßÄÙ5v]óOÏéï`iá= Ÿhxäð©níÞ2— bh8䔢©å§Áá¬NE4µ/ÑúÝã„w°:á×¾DSKÏèï`u*¢¡-Ý~!A†w°:—a¾DSÏo‰Ã;XŠË0_ÂõËðáÞÁ:S܈ù’)ü=áRÝZ/¼d.[åø8ˆ-¼žðÖ™"Ú*:¿1²W„wHuë¸ðž¹“¹H0oô+Â;XgŠj_R…ÏÞ!Õ­ûÂWäò…À—W –®@°l†wHuë{pJ¢•ËV1¾Êþk~(žãÄh°â4ñrÅh:—)¾d ¯ ±jŽoK':DáN … ï'¼‚5¥¦oÂGBQ5nd¬"&‘‘µ"ü‚5¥º8A‚Œ¼`%)îq,ENcÙŒ¼`M).^,…¯'Á ¿ %*¢±-…§'A@ÊE‚IÐч‘Í#rC*YÛ…×yÁJRHÿ¾DS_Ú‰¼`%)¤KáíI‘¬$…ôïK´´Ë8‘¬)…ôo¹<Ã/H‰ j_¢ù+©­ÊE‚I螟}"7¤’õ=x}NÐ+IYm!ò[WÙYAúQ@.›ñ¬E ¶…@k ‘ݺNdéOMDî`.Ì6ÑÒ5?µŸ  ©~T¯¢úì¤EG#:ÑrІfM(¼ƒ}‰Ö—²WäiJß™+*$˜O9â-¤µ\ø›¹¢B‚IÐш6ïo!•¨íÂë™@JR¸¼ý­?žÊ) fBG#†R ©I>2WT_‚£SÑщáÏ3²A(Q_áV­ %#´‹"Ý'¯&´üÍK+{”˜RBÂ¥î—Öß³2 åSt‚–ªOé'áRwÁoî—hkíïöŽ¿¹_¢EÈS™ð£¸\©SÔ$[õyyï‹2µÈ­úLÇã"IÀ©eû˜Ýè‰+ÜØû\ò~ÉVÿöåSDŽ9èmÁ%î—è!Œ'ñÂ\$šdz†¶;;Ö(<®t±Aªôyr¼õ Ÿ¢Jýr›!g®DÛ>9Â-†üh Þ3—ôËôe™~$Ng[3¦…áXÃ'½ô¤E5íg£ð|Ê“èÒ“`…¼ÑN#ùÑ(w[Î¥÷/»Ô/{‡È“êÒ›$ª7]x°kè©Î§w…-ýtô oéQcÙœÿ~‰Æ?{B“¹HÐÿ­ùãòÓ!?…'Õ­‡<Ÿö ýã!tk§™·‹ùá(<ŽnÏÏÀ:ñ$…oF•“.ÆÂ;HúѨþ&t¢ÔpF’Ž=ÒEG#)ÍïEÕíG£êÆ.ãŒ\1Òï)“ÂxÏém_Î6` ù%îÄHˆ—…Ábw¬>é¬ËQ¿=nÀØñK´׺¼õËGå™ëÑC^¢tR×¶…óv»ý§G ÒCæíöôöŸn3^2“ÈϽè5~^l¿ül°þÎ’Â[æŽtFѯ|ÔÚÓÏ«V¡¨?Z]Úå‘$FŽºäeôváËTE7ÖÉ󖘟 }=µ~ì? NÕ°#Å=n^ëþf¯V6Ý/¼œù|\«ÿ›&xÃühšÄ~J¤qãüï\ѯ1«{¥ùã–#ê·Ç㜿g«~·_ÿTÂëi3ét3ôa8m&ÝB;†ÓdÝ«Äû/zCm`h”TP1+‚°¹NÖ¾]xÍÜÎ\$ä´õèxgÙ6×ÇðùÂ{fÌ$eýUø¸Í¡ÉWî?4UXJ›É®Üdôý AXJ^áÝÎe×9u­<ÇHÚ¬wåÖ£O ÂHÚ¬wåÖ#ù5 ÂHÚ¬wåþ£O ÂHÚ¬wåª×§ƒa$mÖ»rëÑ[G‚0’6àAKÑDFÒÉš¯ Ÿ™ËV1>ÌTÕ§…eÃHÚü5œ­}‰¦–F\6’NÖü=8¿úÊeÕßæ 4õ=FÒæ¯+?=[óGÓNI'kÞ.¼f.«æÐ`S¡]—eÃH:Yóqá=s's‘À¦A»ˆ‘t²æëÂçméLþÁƒ¾DK—_õ÷Ç™üsâ;sÙ*l>0íÑüñ«lûåä¯Ë…¿Ç>Ùü1" }‰Ö/M;mŸl&Á¾DóOÓÍ4R&ÿŒàAK~ÐD`ˆT:)Ñ! ¾9ùëyáãØ'›?nô³¡¯6ˆ}²ùc¸õúÍ/?ضO6 __¢ùã·ÚöÉf’]tè«N‚c¤Lþ¹ÑÙ†¾ê$0D*ŒOªéO‚°oNþº Ÿ¦ Óäd¢Y 'A[3™ A¬š“°Eßir2Ñ$ÅL0𑍠-æ"ÑüÑ]  `ü|\äë˜6=ôhèÎJI¥ú5µt¬¦Íâá±ìK4µô$ÈõFÈäŸ/™Û˜‹S#Ñ"ˆér²Ö7Þ2w0 ¦¦P´Ë²aºœ¬µp$Ú_ǸÉ?ãÙj’’Àr‘`:Ä ì—ƒ¿¦uVà;sE…“ ýˆýrò×Ex7Õ1Ò%“ hºX˜îšõ…³µf_¢Iš‡V.L‚䃤:F¾dRçœj¿'<’õÕÒŸ'c%ÑÔòI?ü/çI{ÔÿuÜQš«mÜú¸Ó5½óàÊEBÖNóÛ$é¸2XCÖO®Âî,“aÉšþø´lÇ#›´ÌPºU³ÞÃèaXÉp²P“|T†&s‘`ü’ï‘ yÝ`H×…ÏÌL‚T£,› «ÆÆýKò=RÙqdK†ó=8Ô鸑 eã&×µ4ɦR.Ì„TŸ$Ÿæ*÷/©~Iu?’álܺ¤Ú$!Zj²küWë‡çjûŒ4ÃYö„–¹ÒÊCÆz7Ž.øtW²þ4 _†Ø¾:)©©Œ“ªBÂù#•q]2¼-뿤9*ž/‰+7mV§ðz:Œ·–À›qwbÖü»sEÊMHªOtO¹~r݉Ïã“3ú}á+g6óÚ[×ôüìã3Ó¼vãþ5ùê‘ |bšán´4UÙã“lxãþ&ÑËb.{ùÃB‚p§i^±qÿÑÒ U¸Ó4ëH†±1KòíÉk΋td.Mí ÎÂþ¦ËßšîÔžã½,|¦Ø“ Ù |•©Ú\Ýã·§»S)öyg&—»3áT^7¥’³2gP=éå4¢.e´¤b'´thPîTèsdQÿYeUÅKŠvŒ2» ¿Ý™ÐÅHøqý#3ØÓ%Ÿ!p&ôQáΦÙS׿„Óûˆ}’àÓœøV®Ý‘Tm!Ñú Á Ì}âŒrá¯pù,±;’Ê’ÂKæ¢Wx’®Dã“ÕÕ û$<ÝxË\’N$èßpûý¶…’ÁR½ñ‘­®è8âI«¦ËÌ U§¼®ºü~‰jšŠúKÞ­ÍýÛÇL* ‚ÐSY-¨-ŽÏ¶Z6Jü½ ¶ªðvá%¡ãXc¤ÕTšYŸ²ZJúfÇ›öoºäs÷¯ßWsÜÿçÂGB+†îIü ¨¸Õ“OœD=ZPȌ諕J(V¢ðá*{ ¢hÐÄ›„Š .*C…¹HÕ¯¦{ZEgýê¿z5Ò Š¤‰ž_DÑ–‰7©‰Ú¨Vum¥Uóæ…÷¸šä«EÆm•R̰U¯ *òw”çê‘ =þtº®ûþ­š’~g.f Û=õc ¿­²qëÈVKÔdmquu¼çÖQ<ÝxÉ\Lötj²#[eãÖ‘ šp±oé’Ÿ¨âÖ‘ špgïK4£Ÿ[G6hâ%Â-«WÄ­#4áÎÜ—hýŒynÙª wî–õk$8WhðÄK„ÛûûH[©I* û§. Š n-Ùà‰—ì¶X«:¯[KiÐÔ.ü¾º$¨êßùwYP9——qgomDPÓ–Š8'AóçºÎÕ#[=%>î«G”Uòº –,K(̘Rà©ï'Oi¦DY¦éÑHÕ!€GKá/s‘¼¤gÕ¶pJYä÷/-åxGT6cHR 2e¿Дj6ãÖŠÔuÙYêH?è#è/[£XáÓaKd©#]¤SÉ¢hÌ"ƒ"‹©dÞ‰)µµA‘Et†>ü¥ ÌE=Rÿ2šŽC<_٠ȢG*Y¨DâtHVE2RS¢Ç¢ «¢”OÖ /™Û˜‹„•h¦v=VE2Òãùðq‹ 1[¥|rï&pîd.ÍßÇ ÈòEø.ÿj HE)šäÐYÿü ©$!Ê¡ÚùÍßÞÇ (E“[‚wQâ¨Q¿„8,E)š¬^n« ‹Û…×ÌíÌE‚öÅ$±lü¤èq\x?V;RÉ­ÒtÙ°Ú±üÕé1]!‰Euìw(_¤Çt…• ^lŸ--áû˜þ¤üñ=8÷‡6SþÈþ±'[ø{Lw,?¤Gõ15IÜ ÚNùc#„ä^鎅ˆðm¾†8)ûÊá'zÉYº Mæ"a#šŸwÓŸ”?® Ÿ·}E‡ðc½2YeÃtÇòCø>_òƒ.‚c¤C!"|›‰æ›LÚïPR·äkh;&L{Æc!!\l/¸ðžG ™’ÆF Z’‘©Â~'%‰ýÂ[ææ"AKÒİlØï¤$q^øÈÜÅ\$üåAÌc¿c!áàv(#SR…}Ž%…жª²Ç>‡òÃÎÜ8wAÅ‚Ý-EßA˜ö¤|ñÆKæ6æ"ÁÅ-:NPÙ0í9–4–víô$u.or1Á)™³±ì1²¡—ù¾DóSGBÊý¾U›÷ÛçX:hcHySL¤hD›ŽÕ‹%‰Mý7~„”èÿ¸d~‰‹J£bÿØí¤Î^³}L’?¬°¯4­Ù&þޒȦ¡¡þˆI’̰XRÈ+ ÝÞÊÔ™‹õû#Av)%‘”$v¾ÎK‹€œ’ ©‹ñÇ9 S¹Gº-8¬2Òù¤ pv^uÅ~&•Å›êtx`!»¥w­ä¾$¢Lnù!‹GŠGÔä‘’gJqgX ]x9öA)8¡ðzLƒRðH¡úGîä-I5-b¬¯Î,–D„ñ¹ïÕ‰‘…ÖqÛÏâ§ÖžÒÍ…ô:¸ÁqJÎÈÄet›»NÆè½"&½X Ë,OØ„íK˜ª=gˆíÌ„ê¯WØ‚3ù•Á®û™Ç$ _wįÊ)_ž¹7ÜKsÅJÚ‰×<.ôÓEÃv¡.é2ƒ—Ó#ƒü4ìG}2ȃ\4È…ß$¾sz> +¼ÈÙ‚#N3bh:n°„²\ÝCÁ›ÞX+_G½d§.ùq )¶O-ÃFkúQX¼LÝ}œâ=tE·nr¡°Ú¾ñ‘]Lì?ªÐTœ5$X.ÝKGT3\àư“ý1¾ÃqoGÉ­AM\m)£˜T-É\‡ÑÏÓE‚]ðàÇE/¦ÏÀ%} ŸØô®`…ôëÏŽR.n¯³‘-¼Ç rÀËü?Κ®õû2àóòWüïúW@¼øþò ?¯è{|û88[ó ø *œžy…ÿynüVñþÁcJþÍÄK@?'iípV¤%Hßñ¿IT­% sû_"ª«UB`! <’¨z@4¡²Ÿ Ÿá]@¤(^]ÿ2.*œ©Û8på¾3\xüra0¢¯j¿Ät…„,«+þéL! ’¯kRDÛèõоr¸>%ØÒ0„3a‡õzæ4窶w\¤íïÔÚ¢¹¸ð¨æÏ\±þ¥÷Cxvü‡Þ?º0ý>ÓŒ8¯£g_…—x4œu >c,¦êd7xÜ—ÎßxIˆîX^g#ã8f¸ðfhPAÁƒߦj¦”4\î\aô*<1ÐÏÃßi«e'¶ÝA$¾²»Šœ„÷·¡ðIAÄI¥ ÛŒXÎ2’Ó3ÿWÉÿ!“+s;²~Æs‘°¤æLHý±$!§—xËÜÁ\$dò(ibÙ°?IþoþÃ猕T¬ÚC›Ç´ÄüÝ l›~Ýö%äßÅe²Ä#MO¶ù/†•Sôðä“S+‚¦Ë:£&ëÿŠOYê‘—;¬Y7†½šÞ5iÚ ¨3 d¶^ú”š\\ã2•x? ™Y'Ä®úM=E'm'ÿµ!éÂçmÄAÖ ±¥¾DóÛ“+ì5›f#Kó³ý‡Y§éU?.ÓäºÊ…¿·ý¹*FÄR-•5Ä£kXÕÓ$ÃlúaÖaŸ¾DÏg\¦Éu âH´«ò˜&h2‰¦nŒ›+#WÅSå”^Ãñ˜ab°+Ä‘ú-½±n†N\×|„OS…éF°N<î¢BÝÇHC¬Õ¦|Šέ瘧: qHöDZ˜N‡[Ç'XV¢õ¯Û“gQÕ©öûu ³bÉAè!Í‘>ÁZù+ðyÜÅ©O¸&™çþð æ%O…ïÌåü¡Mýþ“C9NytòûOû-Ey ä©]xIˆÄžŸ¾rpQ±iŽ›ßQ³$¿ üêÓ« k|0õ¥<a7’­RHI»Nû|šã-Ÿ¿þò÷“§Nyš¹4¼VÞdݵþþFz6A0X´üè·O%Sæ(ñ„óüR}ôH¼æÑ¤û@?K!âTÖÄÐñ‘ž2%Á9ðèÀòÞøHh¢§(…xÁ9+ù@CwQUC[†ì‹ÑáÞôo¥Îî¸|V9‡'·5ì?*z¥nŒô:U !©QÖPc.þêÂë‰ô–®¥Æ…·;ÜÛPû¬n%nªI*$¤×SA8¬¢*F‡›:‹º®žõoBпz|W¤¹ðjÅUøNÿSÍ®Ÿx52pQ5;²×'ºvÒS³›ªÌöõH‰í ‹kòoE`^x54¥:.é:ËTÕT‹ãG¡¥³´+Œ¦í‡hÔL?/îÚ¢‘ŒŒˆÜá’®¯HŠúcü—/­ðjE#¬ÀwæŠ Œ¨$ðI%×U•Ën<½Z©’vE?Ç•¡Eû" Iànª’­˜7/ü´êèj‚­_x7ï_^Ն讔®U–"¦¦¢k:IYRX¸ÂìÆètr‚èr=Ú}ÿ <'Ó„Õ£ *&¡Ì┵þˆø%:í«|*­Ú…×Ì®/--šn­‘VÄñêyèô0åkN6 ÿ2ÅA\s²A£ NOM›çš“mbåK´´èFЍ0 8úN)ìI× l0¥ë'AÜ€J3‚ráoæªB$˜éZX6n@Ù`’Mé$©âTšô o熓Í&y )üY6n8Ù`’— à[¤:w™h hš n8ـѹ´ci‘×È»LC8]'’ n8Ýކé‘è«3Ž­€r‘hy ÷5¥4¸ñr®Y×?•hýŽc+Й‹35ô-ç1Û׬ðW8WœkH4˜J´tÇHˆ³Æ“$5 âSš Üø:7¬æŸJ´tÉkø’ÕüS‰–.Ù ß@²š*ÑW•¼†o Y×?•hêÈfä5$šL%š:²‚:s‘`~$|&AÜ`J3ïç’ÕüS‰æoŽsùÈjþ©D¯>Ù ß@²šŸá§ì§Ip®!QÍ?•hþÈf”¸KD €©Dó·Ò‚€WJø¯æ‡l†¯!¥…À—Ì¥™ ™ô_»žU«k"¨& Dûà)•Žëª6˜¢gIžÕÝL=לÒa©P7©s9k¬ISOæ±Ä & ¦H÷_Äå&ËšlfðªÐ0•s9uh„5Ñ¯Ê  Ÿ&ýÿŠÀ¹¹HP‰ i~ÉkØx!%HýÂq´iªº®Fú±;°iŠž%µH÷8ÆM•ÔL‘×H І$+ |9W"Ñãû,^’eÃ8À²".\’‘êXPŒDOK² R.Mtô&A¤˜©]x=|‹‰h­˜„*Ê{ËŠ}PADp4øÓ’-|$¤Ü/Áv·^>i„òÿ¨é-Zb-HzÔôó‡~gîË\$˜$l| ì'‚Ðð[V„À_Ò…¿GÃo‚.ì&8jú)R¼°l(ï-0B¸ƒ…À_¢I¢#ÕøS8¦C\3© Íäºo| €ÃгäÁEÅYC"®ùQÿׯÏE®£= Ž„…l¶HÝõ’:ïàߥBü¾“ „3楗Øt„\&9ðvá5s;s‘^O­´#w1‡½D¯§Æ­Õr³ÉKl:7)¹J(‚kkDª#ü§keúOþ¸ê¿‹ùvîºÄ*›øÒ Ø M«‘p§›¡]d}Ü?rOðòákÙüírÿÈ5¤¯er½K=1^êI  ¥KÖÁnš“+Vÿëa“gR±~=Ÿ:n^yŠ«Ã Ä•“Êy]6®ëÂ) ‚Í6¬eâ&%/ɦ9½Z$0m&tÕà?‡+$ÿ"&õ ¯Ï¶ŸO6ˆn´šF¢õÛŽ­tg.¯]fÒfMè¿Ö_g»Ì¤“«™~xÅ\$lDó/ãå–¬Ï&„D[o»,¤ÍµÐ+¬Â¡Š ,¤ÍµÐ5ì–T‚a!mÖ…AZÎTÇBš\ ½Ænqå$0Ô˜‹•Èê›a\}ÛB“‰A¡nRçæ"ÑüÈx¹$ÿ3 !Ñ£íãO'k³„O„´¹ºŽ¥Ø-5Ô”ñò0kB×° w*‚0ŽNÖæ=8-•ËQ³i4"ÖR¬û:fÐfMv×®+ãã'š&hºX7'ÃÒ‰#ÑüË.¹&×2!Ñû3zB“¹HؾæWÆÉíX0› I|ÞÌdMè_VáLUVo}ð©ò!Š¿$A?'ëòœvÉ6^6ëAÿ² gª²a¼lÖƒ‘^ÎTa¼lÖƒ^gÎSa¼lþƒA^TÇ‚™¬Éæó•hcÊ.¹™ëØ|È|~bçÇø9Y—uáó/›õ`¸—-ÖrÊ.yë«|Ȳ%'A/›õ ÑI‚0^6ÿA3¡-þrÊdùIÖ…]gÿ4â/Þ›ÿ ‘øa=Ø+ôŸOZüåüåZÈ_ÐLh‹¿œ4™‹ÿ8Å„ŒÛ™LDâ—ݳùÚÙxh&t”×äß™Ë^a|Èâ/ç­òNþ¢\ø›¹ì5Áþi~.*ö ýã“Ø´À»•y²êZf˜ëIªOËMC›Ï_¬çÜ㨼Í5lòŸ{«éyTÞÉp¸×‘a6âMRzm¶ñe®"q““ÒÂj‹«]7‡Â\$˜zÙ…¸®ç¨ÄÍ•$^o•8y†VQè•5¤\$ÿÞ6=y™yáãhÃÍ‹l.-iX×36Ü ÉæªàÒbhQ½8–­GGç¾ÌEB†€ŽeC›~k¸3ã²þ.¼$Þ˜‹3¡ç·ÞzTæfSh7¶7•÷KÚì7Ùœ!hºl(Ê“)Íß{8åþÛ°Û6 [ÒûµäuˆÃ¤öñøÖ¯Þ|‰k8ø•aêõÀP$~åæ"áXó/Eà{T~ÉU/™Ñ’”õkýÞÚ¾<µáÓFhûn†`‰ÿÐC0¢?H‘À8W\µËö$]ô– Ÿ‡ÍàY^GwâC<\… I!¦þ-5ŽîAbH?’ªùSû†®…þÎYÿýk≸â% Ü9ú B¢A¨ý•GAH4Il_r‘p&´Ò¨fK®§z@_"®•g}BÔ/A«DèâR!%*$Z¤d=5å"Á$x‘ˆaÕtM›e±žTN5J€hjÔ«u‡AÂéà%sE…“ _?TNEð”ÔEõ o™Ë15|È÷_]ÕT!h…O5Qbbm\ö¨©0íÆ×­‹‚.i?ŸX7j˜ ½ a¤:ºSùtÔXÐ5B¢þ‘W`ÀFÊU^)î\ú¯ ¸ž8xMׯR쇓xKh$„AêhNöZQåõÐ<~-ì‚þàÐaó’ÿÒÑ3¢/Ž'Ž”ƒë]áüaþy%GZMR™‹ä8,a…ñ®NþF¯ü§C™ø î´y4SýðšP´áßâK\;q¡äë’&¼Ÿ¸PrxI>îàOð…É>⬰~zíx…¯7*|¥È!‰ñ¹á°DašúNÜ%ªV'øüLõ¤¸èO…rˆB_%ýÂë‰û$H^MªÞpŽ¢\P}ÉÂCÖþc‚–nR&!$Eø8q¡äë×?O\(ù:„DÏç]'.”|ìgßø>q¡äëDøëõQžJ¾N!QÿË{âBÉá $ê)wp(øB„Dý/ÇJg.Òúá©Ãq¥äЭŸrÅ•J_)óÂGæ.æ"™é+„ÎQŽú"±@Üã?Á¥FF€Úé«$œŸ„/’–õ·ì·$¼5§‡’í‡W–nªcK©: ©’r,Œ$5'}Œ„3¡•\/[£½ßøÈ“”Óñ-—W70¶ø™òùI‰fª^¶F­B¢']/[#‰Ö!Ñ“®—­‘Dë€h%ÖËÖHòu@H´ÚÁDï€èISk!ˆµb¯„èœävÙ*¥TžL.Åðak$©y²‘õ²øy[ I´ÉV#G*ÏùÃ$ˆIÛÒZ¬Í/BH^Õ?­QŠÞI™’RwA¤è é¤Lü¼ †RÒ.œóoƒ ÉMïÏç?­~ ?'þ%zHœA¹H0]RRàC)_¿ñv›þ@~ÉÞšÌE™rÿƱJùúÏcõ#ù8 /ñëÌù·Õäã€x~ö±ú‘|Í?­~$$„D‹œSŸ¦?ŸB¢ùãSÔ˜‹ó#%îa5”òõoÇêGòq@H4|t¶ú‘|mc«ÉÇ!Ñüñ©ÙêGBp@_"×±¨ÓÉÏqfyù:+ôEç†^æ"¡¸†õ0Ý‘L’4a”ª#Ñ!ÑNÀç'H¹H0 ºPE©ûLI¼…ìýÂÛ±ßI!úMß3w2 &É/ÉÇt'…è7>3—S‡„¯«_B>¿´ß¸-2>?IÚ{ŠË/\¢ó!q4r‘°&-B>¿§[„ý^xÉŒ–¤¬_óÏãvJÂ!΄DóOžBÐ`.þ¢¹åßë6Í‘à8}óÖ¸ís Ó&4-ävîNI4ûÇBÚiɘÜö9’iSY¾D*™¶tœû(~ wñ<&xB\Îã_×À˱êIq5qÍy ¹%³zjjC>ž2ïA æG×Ü)é6®\$Z_{ƒ‰«}ÉÔKJžÃ=)óŽD/)y†0Í‘LûßÎÜ—¹H0Sä X6 z,“~É<ÆßcÐsɼ¤ÕLµ¸Øô¯ðzL_RݯöO.öt]øbÏ# quЦMõñx‰ƒ> ±k?NA5Mõrš®zÿ¶JRþ‹“†›QÕ#„à|’–n³~’>#M[–ºÞO7“ ¨ê‘ÕK¥Ý*û·„·c°bÑôË·žaJH•+–O¸z=.ƒI­EÊýg¹þ™øf.üâ[Iª4h±|¡e¶ÂÔê2h±|û=8—QÜ¥üúå®@IËT™‹3Ák´$Èk–_¿|õ¶œ¯aXHýRàUõØî bÞ3—Tìÿ!õ-õæFU³š?Q S½|«ñÖ–§òù¨BIÍ-Ä.~¡ØLѾn}t]蘧™;-ÿFTœ­0@AEˆ•4BHºð’8ÖŸ´fb¤Ý3o^ô-q ¡)DCˆ~×JÕŸ?g{.|‚ç€=[|‚j˜ {6ÂølÅÚ £éÂ7U’,­/¶%ú]“¸Kí³Ã1j ùñÕP¬^¨ÿ54 ºu³® Û©Dh¢ŸQV¹l4”äãÓš´s—% Ij"—J©܉qT—ÿêƒOáq+¦¥ì¸ ØS á©©ÐK¦¡…Cl*ÖxB’ŸZƒ”ô—¤Wûlud­=Å©£T-‡6.úšxLÅÚäN­-§«3u¢jGHª©?ue‡–…¨G ÚÔ´ÅÕLKºK¬)'$$µ¹~N'¨ÄôÞ/I<N]y½~ï—„šA59_ڨİ|ØâX¸cý=_v=„Ì’ÔÂÝêVÀhÄU‰F^V¢—|ô#Ÿ–tUâÔÄÇ%©•8A¦¶N±lèfJZ÷…§üurêØ Ö¯õOMGHb%΄§Ö]xá–T!¤­)åøÐHÑ“žGRZ™‹D_Br•vmI'œ¸nxjÝ ýLªômq'<µn…v&Uz¶ÌNX7B;w×Ñ”YrY;”æ!\ü³nøgý-òy‹C%s,EóC†ò=^›»Å‘‰ïÌå¨X?èý#WBNI"áºõK´¾ÈU¾#%™•­/r•vèL!$’~á5!vbHiÿÎ)Ú /aá—¬jêEÕ =|“(îß7>Z;© ¨†¡‡/ —»W­„Øu,‚ªGK*á¯ñ‡+݇ R]½Bu›ÿj|¤R×FHjyt4ÿ¤RÿÚqm-¼ß~ãäæë8_ûÐ`‡‘ð—»Öç¬2Áó¯îÚøA_â­GcyÝáÂ,·.ß÷™•"²þ>õó­ö³:^¹g,µðÅm!2é=uŒ¥¾¸-I&®¨Õ$8¹%d†ÿÛ­¨Õ$¨[4Z(u ×H‚ôå-ùkHj÷ãË;…ÐSöÓIPæ1¸Ój“Ú–:¥¶|êM¤+rß'{Å£#¨…µ²p¸«BÒ¯’*m©-•…NˆxUÚR[*[iÕ˲iFm¬HõAg„µ0£¶@ê¢/)ÂÛ1£¶Tê¢/Ñй—„-5¥®¾‚>Ò̺YÖJ\±ÀS›R[>5Vâ¡­Ë Z×BÙ,›ÆÑ³Â×ð†Cá]<þr™I[à ‡Â±À»¨Ž-´d¥ÅSõ( é7e­íÂëe¦,1*|‰¦ŽkMÐ`.Ö¯˵f ç³Î —™²Ä¨ðEü%]øLˆfûlISK¿ð}3eËJßÇBÙbRø"þ­:úm·…²Å¤ðE¼Fœi¡l1iáKnÆm eËJ L:°38[š)KŒ 7Å[aÄIÐ`.424?|kláœbÖyáãX([LZx`š?¾0¶P¶˜´ðÀDÕ6 ÒBÙÒÂSÓÐüñ­±…²Å¤…g¥¡¥Ë·&Ì%&4U6“-<-øÌŒ¤lDSËjŽË YÔÄwær@ì:é5µÔ@ÙxÙÒÂcÔÔüñ…L f ?9LâÔúä«)3äj háYji~-rM1j'„Dë“oeKBZxªZšd¾š‚&s‘ K믞m‰-ü„ã­àÛ¤J[á” î _—TγÖÒúä«)ˆ Ûg'5‰#å®|ÿ†Å ¤ì5ÁNjþDõá'’qáUx×£ªÿj«¥µšþõû£Œ›žå(Pòø†åªAO¥^®^Å– òq,}ZùjÚÖ8„§|Ò\SÓìcpœ²R^©|I÷é°e‰ÆßÌ­)Æl§ˆÁ±D£?öµzTh¥À²g'(5 áe榬7Ê6 5´#K‚ö+&eqöTOÒΠ§BƒF oO\+'q\“¨ ýŸT±êIŒ ¢UÆ{YÕ²äßȶfÖOÒ™¢Iç–hZ™À¼ðÐ8õýדªUˆéGÖ jýÝ‹TÍÔ#+u!E˜n–Û øÕJÖù‚¼sM…Ä£ÞǂزÐ"©§6ižÕßË8¥¢ÆßÛø¥šƒïß eÕì„éĬð¾‹Jš¾wýƒ=u26C¶@´òT¿Éë’ Ì-¥T”…êãNÌ[àjésáËsn—§¤èô³¾¤BÂ_\z¤2ÎVqþÅ«Wi_"ªÓ2ÉL©*©ˆßáWø4Õ1H.ªzf') ÖòÕ–RU·ß3cž¦ñk ·@•Ѫd ?Ðfî—à%¯¯û¿~d±üH€É0.[Á–VÏ´”‘±é˜µZ–TÉDhk`]a0hR%! ŽÕ`é¾ðšP˽Òô]ap˜²¨qáýü¥¬i ²Î]ÌÍú1ú­AXõY–hš*­ú$K‚9õ†9õ—tÑïÛô®¨îÿ$ƒ<‹™¤o#’ßVT?gª9ž$IV{Æ-‹ ¹•%P0âÞ0âþ¸ÑGx3V}8Ÿ¦ ƒ¾”UMâH4Éå@‹¹Hذ!ß_~Dlz—R©ýTÊP­%ÁLJtC1U˜ÖYêsë/ÑHësLë,5‚Mõ—p»!A˜Ö¥TŠõs¸ü’’ÊB¤iÑ é²–mËW©oÃ&úKö_ÈŠ,‰ ùK­$UÊ%B#“Ž‘HˆB‚#U¢|æÒ_R…Ï„HþKàIXG e! bö}‰^'¾ä)•*j»MClu¦¸Aí·÷´Ž%à…—cÿg!…éµRÚÝ„¸#%!ãl ¹ý÷’tŒ"L Pf¡ñ·À-IX„hümƒ®ì «­"!%lIÛmÛǪËì|Ï«çןcÐuL«„O«ª¢þ¯lN‹H’„nv1ûvzS’VUfìaÂú%šd™nÍ” BHÜÉžÐd.ôDŒqIqB˜V™±¯Cß4šyتÊ<=LT7ìP¿D3)q‚õ=ÑJ“L¡„`@ýcw4Ó’)Ô °“ì„öÉZ ØôDÜq‘L¡›§‡‰é†é—hR¦öUæîoÇ´ÊŒ=LP¿D+]â„•‚I‰&qŒcZeîv¨_¢Ÿ‡L[U%÷Ïþ³:H°PÌÝÃDõK4’)„iUÑÐÐ q§E2…jÆ&ªŽ!¾DýOÁB˜^™ÏO¼Ü¦WdááøîK4¾ÐtŠ,:ß}‰ÆgqÁmEŽñ¾Dã#w"ˆ]'®ç?DZª2ãÇv_¢ç?籪2ãÇv»Ê¡HzP‚ñLJŽë¾äUÓÛÎÎìE[‡çǬáô›ø{[E‘§7®©‘ÕÖ0;Ÿu>ë¾D¯†Ä #‚èÑJÜ0A”÷ÄûmÕDƼòt½uX‡{/æÙ+ïάs9W„¾_ðY÷%ßú• ó4íÑ™‰Vãp?ÓŒ Ûe%âÔçm)Bã+ôa?bfƒ,†+ÑCÜ?Œ ¹÷T‹ô‚:s‘°>bQZ²0Ì›ÞbŸ‚û°MI¹¨ÈØq¦Ø’ñ™8O×Orå—!x¿é—¼ßNüe.þâ$‘ªÜ#™œf>…ŒIâóØw˜1㼃¯ÛÈÃ< §f ß ‘]!ãQ“q¹9v}dýÜ?Lõ˜ Ž÷6¼ë} ?r®ð1;Ÿw»ñMîAÜ|Ž%JrOÆ/ý;yš¤¯Â{BÌ]fqÊ…›jeûè.Í­ƒj˜ Žï6üØ}‰&Qþhò«i|gQÞ]6ôÿGORAÓì¼ãmxÇÛMŒ« Õ}òLíÂkævæ"Á󕦘eCkŸ<Ӹ𞹓¹Hб µŒ[uOÆ¡¾¤kh3¹£fžÐtYåªWì›fKš:êTÌi%Ïôœ§¦TÝWõÐúãÑIØætdáà%¡Pc!~:Iª{s: ˆ'‚ÐÚ›¿A¼/Ñ£“jøM&iB⮣uO&h]øa6s‘à—tjUZåv+¡Éé$¾3÷e.þÒ£åIxa. ]Š/R…jÛL‚0|‰-L©ß&Ôº-DÊíÌE‚©Áç¶éO‚P›?j<ÿ2` HC5n&E×ñTöV³øºð™¹ÛšV_²yÔ¿š•uø·ÔÉŠ´]÷sR§Ëï³k­©Î-§ÿø¥žôëþ9)DŠØMÚ9RÅý›ÔÙ¶ ¯™Û™‹QLˆ&ל"E|‰¶6­¬ÉM&l^øÈÜÅ\$l_[+NÖäšgªê¿¹²`²Ô?-¨¬i5k„СѾ„’„:ÕLRëB‚£N­ê»®õÃó• v˜ýG×Äš 4±ÉZõ o™;˜‹”beCÓj®©‰k!A(YÍ0!jßVð<• %«&Díû½ZR2¾Áp©i Bê MkU¯Øum=” b«ì?û§©¡ÌJÚd¸ê…—£d5ĸy»IÁ²¡d5¯„€}»IgG‚P²šaBÀ¾­à}"8šT1L¬_–Ð$%«¡*ÖâkÕfÿ¶‚ Á4ÂümôûÍï܇Mc.2Dz´lFšÌPçVWM©—2jR±Ê·ÈÜ…þ7y9ÖÏIÐÒ¥þ1Õ¹äÅPåK4ÿÔ?rÅÐ1Ïx7ÁQǪAz8¡L0?[[Û /4¹fØY ±V$ M®¶FÖb{öQâ’!CRNý… àÚ¬“}7U%þÒóÕ{4¹æß¯·&—\]®÷ƒ¼ˆ Á\$ü¥ù'Ca%°¹6„v9ø8Jàäúˆk’ÉPX‰›¬Ý¾ðå\±I$CDq5ˆL–Y/2 $u¡ꬵjb8nuUR¥’ˆ­V™n‘/snw¯ÌuNáí¨–’C~r™,óR%êïI ¹Åa¼Gïd^'ñuTNfsPàKôé¯Ñ‚MZ‚hþÄk†f™aIü½9 ²1+QjB–5Ô˜‹“$ óD†¥s}‰nÒ=f]Ȧt®4±ÑÁ%Ã#‰æo£’2ÃѹÈÄF71-Y“i†$ñ¹8Ëv.B®/ñÒ,ŽÙΕ&^šT¡’2/ѹ¾ÄK“ TRɦÜxÉÜÆ\$˜$ñÒM*¥£|jf(ÿQ.ñTÛ¹¥!lR9õ8ëêh¼/<ŸgÍõRÆ<Ê©_…¯.è,rЧ¾¯*jŠùp¹‹¡ï:5ŸS5'5‰aëÒ‹¼yÈíq´ ¼dnc.Ô´¨Æ`ÙûÔ¼óhÚU(H;˜‹¤ªþ~ŸZuêä› †ž†0*N_¡’À8 ·SêßuŒ ˆ/ ß1ì¢ÎSß"„“7Qqþy4ÖÑ”ÅiumÝ Ÿo« SåÏŸsxMˆ¹Ã‡LbÏ©×ÐŽN=$Q£)ÏŸ«ÂÇ95ÇIØ'Ý3HGu¢çIÅ~ÏÑœ…Dº’8Ÿ„fj\u•˜Z= nB¦z‚Š› 7©™]áƒàù›Û‰ÑVLÏ·Ÿë$¼9J•|àóüÝM—=Gk’± !RÊV„ZÌEò"Ñ& £s?jw)e+B»HC ’ÇÙuá3Õ¯Oº²²=Î>ä"ÈÊF¸“­ë"5‡»ˆ„ò%<óõîiú­!ÉCr'žgÆžççãçÁÓx¿Åð™åÂß#f÷!ñK¿D¯׊Åìyˆl^oY8‰ˆº‡÷® Aƒ¹HXHóÇc1º‰pg½ÐUTG–ÎC"ÜY‰6®ɺ‡‰pg½áÎzï„\?+Ž<Âgõ—h‘q}Xž'É÷à\:Ê-ÌEÂ_š®xó¤ŸÖ_¢IàÒI7ƒpwý%Ú‰¹~, Ï“d¿ð–¹ƒ¹HhqýXÖ'ÉyáÿXŸãœñ™;«>ÇQêž<é­' Ik¢S]ŠF}ˆÓÔqU)£dÕlDÏ—: 4óèV/¼¡Ï_ƒû»tñ:°©áâÔ¬óh¸ªtÛ>ùÑhýsU šùT¹ˆôþ­ñs¾ã™a­ Ÿ?çµcé÷o´Ÿ\šhI’8ÎÑ‹`ð##IŠ:U¥‹$ñ÷G´‡E0øýiú>ò@QÎq`û0øbh# uæ"ÑÒåÁ§ ÿ¿?²JÖÁR?ú¿?þ´ìq‹þø}G¤§/ÑóÝóHåò|°…ç€ï ?ýütHÒÁbG¾¦S¿Oø¦ úG•ñÂ\$œ:„h.>øüôˆÿ!AHÝòÀÐþ¢l—TsÇY ûT2|B04â§Kò „@-¾úú~G –†uá3sw~ðJ~5YV¸>ãÓ_ÚÄ÷È¥üL’¤ ¿¤:QÿÃS¿ÀGª£ö>sn‹Q=ãmX?ñýG´£¯®ç‡ …rGT¢ùÓüóÔß/©N|UG TV'ùˆ@'>¨üþK>D‚èÄW•H>D‚#ÕÑ—-I>DCì5ÛGM²° A„òƒ\/¼N~p›ðé²G*£*›ã!€‹E`|0I}?ØøégKÍGªã­Kû[àóHu¼ëõ—„ô­Ý‡ÿÖƒj„|ÇŸVn­¤ ©O~Ë…¿™[oþzèVˆÔ'?¸ë—‰é,ùÕî¿ßR…è'¿Ê#¿O$ð·r¥|ã>ÏgòˆòûÔu>ˆCôpz ‚£ò&O%š3¬±ëk¥hsÿ0Ú_ .½$í= gìú¤—eר]_‹„ŸC»¾{ÒU¨®2¶~®I½îi?¬elò\˜'’*¸Êü>¬ Ÿ‡kŒýŸkVâF•%ÄýŸkR¯³AÛ?¬¥¶kG+©_\çÿÇ=I2Kïÿ=wò{Nàåp‡IaɃ›õÈíìîD;¬Côß_º«‘~ø‡Ø“†¾‰=¨Þ³§­3I,{ø=ŸuËÒNsžùPÿöa=p-‡Ü¤”[rMiüâ_’?õ÷$"‚r¶³ÿbDPÆ9?éÔ£jŸZþ·ó·,gÕh'ï± Û8GMØŒ²×cœ€f¥çWåù=`@Ëd‚¸“ñü§£3 *ýyôüMC'WÁýI§vPÞ¾_è$‚À~[RÿU^ZG ÁgeRB•7ÿAÿýÂö싣зr IŽ­ã¯+üס¡ôuPºéRäd>J 2-öuã“­i©Æ´¡ó‹‰Â ln«÷ä/Êî´ ¦‰Ð€lgÀöíK°ÙtDäé „Ø‚Qð6¢à}‰^Ëï³B¼/¾çß·¡O.Gãú¨uÄîéˆÂüoø7s;¦/¾¥d;d„`ƒ‘û=VÖäæôÆo¤:EÚÕŽˆo±ÿÔõþÃxu„uëˆÍ¤(ËŒñhÀUƒŒ£Bƒj/wˆ“¤ ÿ¾ã6¯PxÜ{U| ^(þ.¸í2 ÆØÞCô/ÁÈ n(ˆ*Ld U7lñ'3Põ73…!㸾~t= ýUSBó}I |#L ¡AYBûyuÆCH¹HÞ¥ëJ HYÿ ˜*ÁDá[8ß©é]j5Ú¯,„Õ쌂_U£N|\W†¾™P½NÓ¯²5›~Õ4J²ê sù/{²7Ù×WƒÐUŒ®Š¹²@ÊŒÑU’}‚VæÕúm/%ºÆ¾\¹(EóÇÇ=ùùö1µƒ£ë…_~_Ôê·Çø¸(eR(¨ø…Iª‰ „Ï$\’½7÷æï†>8¼ÎjúƒcÖp‚Üð‹Ûù…©ü.!>•1 «T¸«p’ܹ•É›õßÂtí£NoE(I¼>Þ›(F„ò ßÂ_AèI ÐÏø>‚Èm&½¿(K|B× ÒgnHîæktÝC úç ÎÜ8 8éhÔlàŽí€Þv@—< K´ëŸÕõOe ú«8îí…¤oEþ¡ 7"•›²ÑA(r d~¼p#xy¢íÂ[ÛÓ ¶IWÇK€$ø'g€ûyƒè¹[4ŒÖ„Vf‚·k©›ð—1y­ QR&îM¼ÓF@…øÄݲ‰kQ€`¶*w>îq‚VniˆŒ::ï–ðwÕFö•*w£I ¡*ÈÀ¿ ©ð™ï¸ÑÙp}S ãE¿9aÜ[˜Í­ ‚󰺵…M}|ù¶Îr¶¦>ôß{s '¿û:–|Toä£å¦OâÈ yaÉÅÃÜß99$!Úèˆ7qËfâªË„xzBQ>¡ŸR¿f üqø;ð Zq©¾¾\âë`@(4ÀÅ Äûø’®}Ïöwœ3×ówzXÝkt¸nž—8“r¶±[UDá¬ðxð=ñï›ôB ^WF ³ ä6e ¸È€-´¸ œ®ŽÝ„0ç˜xÇlmœC48ŸhÒÀÈu†*Ä8 û|ÿrQÀ[E}¥„=Ùhº½>•àô¨R8ޏ'óÕƒ×#ÂP…{ÂÍÖ„W0 <kERÇõŠýÄ¡vâ”;qè$L*|4Ü&¬°Ð©/™K¾Œßÿ6l€W;{ß×kðÕÜ~£#d„o0¨kUÌ!b¤j˜ú†t“û‡‘t‡Jºó< 1x‡üKxÖ„K²A—b“Û ¾t#¦¸áƒŒ~Ë&—8pÄåz]‚j(מŠpÒ™º EµxóÑ'ŽNÿƒ¡$¹£scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/grf/bump.xyz.gz000066400000000000000000002521541514310134000241010ustar00rootroot00000000000000‹¹p0ef_bump.xyzŒýK¶ì°­,Š–íVìúg Ä·A·ÿ]x’æL˜–\ót˜‹ÉŸH Aÿ oí¿í?ÿ÷ÿú?îjíúÏÿ÷ÿkíÿÎ?‘Î?ý¿fÿ÷ß~ýß8þóù+môŸÿû¿þ¯ùø«ÅqÇ?yòøô¯Yþeþ鿲ý1 ^ÀáýéWÛòãðøöÇã’=øœâÇ&{ŸÈöÜ&]ÈnÏmމÏmòD¶ç6çü4}nsNPÏmž3ÿâ¯Íÿ×úéRû32.$=·IíÚñÜ&Íý#/Ú¤ I/Ú<çÈþù‹6ùBÊ‹6åBömžs¤ÿüE›v!ùE›~!û‹6Ï9’öÜæh’ŸÛýB¶mžsÄÿìE›ãBŽmò…l/Ú<çhüÓmê…/Ú<çˆÞì£áòÅ>q!_ì#žgÝ‹}Äó¬{±xžuƒˆžó¬kfþ„œsäôýü?;ºNúùHÉ=ü†<¿Eü‡ò˜£ãÏ]ÛíËúÇ¢á.7ä1Gÿ'ÿtX¿!ý_#²ò˜£ÿ‹ãLvCž¿ˆ¾ÿô_ŽësM¢·ß~üÉ"¾;ô_iR¿Ûì×/"½!û… ùêþDªF»!éúíëãü…Œàû¿>.¤²Ç 9Žú Éÿ™ x¤ôÛ´ýWäºX 6¤ öR/¤†5@F÷ýœ£có}}^ò{›~!DZåÙ¹Ý{\ÈcݤÇmäµ]+¤Eù×{¸ÜýBríç±ïHºVûÙŽ¾!Ï9:NoVÆQ²à’/$‡ây‡_$ÒYpŽ´GÜç_®`äp½Í»Ú…ˆì4îýô éA ëÓ©ßfSÏ9:¾ÚÜpw°öÛxZ»²Vò­“j!û…ŒÁ {S:ßFÞèÚï´–ü²5¿·9.¤ìùçãû 1¾aŠ¿=޽!e^ùé3ÌóÞ}öókˆO¤N¤ðý†®ÿhŸŸf²wz˜O¤<¾#lžuÝÛôyÖ=¶é=ÏÏç6çÈâ¹Íq!=·É©ÏmÎ9ñÜæœ#ÏmÎ9b}nsΑ´ç6çÉxl3æ‰=¶=¿\ÏmÎ9R~nsΑÚs›sެ?·9çÈø¹Í9GöüvŽ9Gþ¼bΑ?säÏûè8cæUày#ïǼ5¼huNSÄ‹V罡ыVçÅ¡é‹VeBãE«y½/Zµ¼ ¾hÕ/(µ­Æ„>ï¨~†®ûÜs«gÌẹ½h5/yü¢Õ9[Ã^´:g‹û‹Vçl1¿huÎû‹VçlIÑêœ-‘­ÎÙ’{‹æl鋽Es¶ôÅÞ¢9[úboÑœ-{±·hΖ½Ø[4gË^ì-š³å/öÍÙò{‹ælÅ‹½Es¶âÅÞs¶âÅÞ:ãÇe´½Ø[g ℾØ[cÆ[Û‹½5fĵ¿Ø[c¾¡ú‹½5æ#ª¿Ø[g4â|Ú½Ø[g8ℾØ[g<ℾØ[g@â|9¼Ø[ž¡s¶Øž[ís¶˜Ÿ[ís¶¸½h5oðö¢Õ9[c¼huÎÖh/Z³Eú¢Õ9[4^´:g«Ç‹Vçlu}ÑꜭNÏ­Òœ­Ï­R¾ŽåE«ù:¦­ÎXFø‹V3Á(/Z±Œè/ZÍX†¿h5c/öVÆ2üÅÞÊX†½Ø[˰{kÌÈ“½Ø[##O/öÖÈlð‹½5æl鋽5ælÉ‹½5ælÉ‹½5ælñ‹½5ælñ‹½5ælñ‹½Ås¶Æ‹½ÅÕ}±·8£º/öÏÙ¢{‹çlÑ‹½Ås¶èÅÞZ‹{‹3ÿboñœ­þboñœ­öboÉœ­öboÉœ­öboIfL^ì-™™­x±·d¦¶âÅÞ’™Ûò{KfrË_ì-™Ù-{±·d¦·ìÅÞ’™ß²{K“óboif!_ì-Í4䋽¥s¶äÅÞÒ9[òboéœ-y±·4ÓÅ/ö–f¾øÅÞÒ9[übo霭ñboÙœ­ñboÙœ­ñboY&ö_ì-›³E/ö–ÍÙ¢{+ùýÅÞJF±·’Ñ^ì­¤`´{+9íÅÞºbqD_”óþÚ/è×Ãä74©2oZÿÆß´Ê“Ôó¦U¹ ýM«“ÒäoZœ&~Óê$5õ7­ÆÅ¾²­^± ý¦ü†ö Ú¾“¿ I>/ ã‚Ž7­ò¤É½iU.î¾iU'¡ïM«ó½oZï-}ÓêÊo=BGËläx홑~¥¤¼€Žä¼€æwëM«y¾iU¯mxÌ–‚.B'§Óß@çIøªÕÉŽîªüí“®o ýª]xÕê$H_p}¬¬Ñþ:ËAâM«rÀxÓªNÒù›Víâ¼·7­ú¤Ç¿i5.¨½hõ* ᳌àÚ/(¿i5KÞ´:®åÒߴʳ8âM«rAýM«³4¤¿iuֆțVgqˆ¿i5®*zÑêUbgAÁ3´_ÐxÓjñ¼iu\Ð7{ë*ñW{몉W{ë*‰W{kÌz¸µ^[¨g —>C#ë/ž[ÍB‘Þž[ÍJ‘Î/Z]eq/Z'!õ­rð½huV‹¿h5kû‹V³zQ^´šõ‹ÎôŸU–ÃïPi?¡ Z•¾‡ž_l•~B¶:~A=°Uþ UlU~B [Õ_P lÕ~B[õŸPÂVãTZÕö*Ъþœ-íØêÏÙúB>П³%Œ­þœ-éØêÏÙbÃVÎ3¶ús¶¸a«?gkàÞÒŸ³5poÙÏÙ¸·ìçlî-û9[„{Ë~ÎVǽe?g«ãÞ²Ÿ³ÕqoÙÏÙj¸·ìçl5Ü[ös¶î-û1[ñÏýÎ!Þ~Ae ´ÿ‚öÒêÙò^Z¿ \Zå_Ð^Zý1[öÏJ«ú Ê¥Uûm¥Õ³¥ÿ¬´¿ [ö Ú°Õø1[òÍuH(ý‚ŽÒêÙâQZå_P-­Ê/(•VÌÖø¥Uû•Òªÿ‚Riõç-÷·Ÿ· Ü[Üú/h/­þ< ½´úó$äÒêï“°´úso9ð_¹é¯•Ej¿F@ t¨Šú­€ú ò ;4® *»{©ç¼×ÇrÏ|°Abë=îЃo*Oå¸-Ý¡Yì­ŸºÈÏrá&w蜭c‰ @M±¯ó½eñ췉ñ:cŸ»þWµ$c«3–aaQ :îÐ|oýų>F` úÜ[ý¯ÆyA3 :yÙ‡zM>V–ŒÛ"¤¶ Èí"t‡ö¬^ëËJ·ZYΓ±Õè>®4ö8÷Âqïï¡ú/BåW«Z 3#»ÎòüöǦ˾Ψ®6¹ÇÞN©¿ÏÍ}'ÑR¬Üïk€fõ7um° ›Ü+ÊyLWÄ÷9]î{käly‹Bå¢ï£á€RN¬ü:ó[]ošG{è¸rqѵ?¶:…Ïø 4Õé¢ëãä{‹_@ç ÞÞ´:…µú›Vgî˜_´zÅ2ÎgÐ h¿Æµ¿i•.¨¼iuΖ¿iuÊkÑ›Vå‚Ê›Võ‚Æ›VíÊqÒ›V}æäß´:µêâ¹U¹bz*=CûÕ7­Òµ Ú›V§¦àñf´GèÜ[Æ;¨Þ¡r=¤½åP½ ŒÏÈÔæó<¨U¨Ü¡Sü±3GèT<–øægñ zñ2ŽWM«ã‘§ÖƒëíîÐË8^‘R¡ýMå:’`û¿„¦L'q½>v¿CçIx,–^¡÷5B=¤Võûle,ãylÕ“™"Ï}ÍXFëô4X+–1L+ô>X4gkX´Uh5#O›)èí>+–Ƙ¸ôÐŒeD/9ο¸KBW,õa–î­9Æ4]îë•lEH T@WîX ´ ÖŠ<Ý•ÎëŒÅ} Œyb,c¾·:ú‚v„þ]gJ¿ jt_YcEž¸T1»OÁX‘'رg ÖëX³Å8X¢z?ˆÆš-Á¾¿ø>cÍ–”šÓ€õ:>³…}ý¬ìô3[%®Mrß0Ü~­qÐ5[L9ï©r_KÂÓ—Ë ÐOœ‹\yþ<°aX~B;¶ªûâˆÀVí'”å¾/CÊ`õ¿`uBã'ôOìoB¥ýì@o÷Hÿm}ú elõ3[¸¹[ÃVs¶¤¬ÌÇJò2 ôÊÇÞâÚ"ºï@G†ô;4g‹Ê.¨}õ=ôj•ï­¦x×¾ê š¼Œ ôØí÷V“—±éÀ±,î#¼ŒM«+y›V–ò¯)8ZèÏÙ:zJwèÏÙ:~´j¿ ­I»C}¿^ýŸ Bãt`«Ö~¥’¼Œ2~ìØ(í¡v~8úc¶®øÊ¿ Úné¹*¿:ÀßÇTW«ZS6÷¥mö«Õfتï¡úÏJâW"Hp ’—QM=ï~÷V½ïÖÕê}°œ~A©Á$/cÓ†kÀæ·¨áÏ’_i;Ç¥íú *¸¹Ýö}½ ÷ëŸï–WÃýÌòøÕªâ‘‘¼Œc\¥öõÞè¿ ]nRÂô3[\Ó¡÷ÙŠñëg£w_Á¿’¬Ç7þ>!¿Z¥¿ô\BõW«½áÏú|·Fé€Â`å{+8ÊÏêÐ×Ïw«Õ‰½õU“—AÊZÆõ¦}@û‚Z-»Có»5˜Jz¿CÇ‚öò³ ¼: e°ŒîPù5Xä·@ÄÕ_SðE`N¨­T¨C_}ý¬V:0 ¯9[öà‡oËEûg¶?ðÉÐ~ }µª…ñ#÷5ð©1Pn÷óU3–qŒkm~VÆ2(¸²“è>®ý3[£PŽ†Þ¡ŸÙj¥¯v_¯}í-ÆqmbÐêç$”ÒÐÏIXGྠ•>'a/³e÷å²b"u°ú}\?± ­k@î}¥ï­s°`Çþñ2z¬ûùªô9 ¹°¾:´ªû·á©5‹>ß-*±Pß?NOM…qýÌV/\2ºÏÖøñ:>yðz×O,C* VÖŠeGa¨ûæ^± a- µû·@W,ƒ¶ªzÿëŠeP!]Aé€jnÃÑk_š'a—¾ÞïY:VœZ,øÂd,ƒ´k¡Kß?ÇÊë½EZ8z~Ÿ‚Ë Á”ã» ­®[Fœ30†ÐUc‚#pÜàîžÌûVõN=¼ koÁø)K­æÞºëj]9b èë: ·¦àð©1È©5q7hX± ‡¥'³çîN±bR"zé¾´—ö§Þ4Mã>[KûS` ô”Üwèøeëå_P'ì«ì¡ö¯ÝϬ¥ýY¡B°·–ö'Ž€ýsЪï¡þˆ¡¯ñ z¼0ïÑÒþ¼”\.›{i"4ŽExDéÒþ¬P¥ûsG—ög…†!”÷г¨íž3Ò¥ý¹þ¹©$TA{ÃVí't`«þjØjü‚RƒV­ý„BÖL­ÿ„¶J¿ Ç} ã'”±ÕŸ³u.•ýz=iÑ·ÜÐÕŸP!€ÚO¨c«¾ß±ýر÷$«Zü„ŠÝ¡KûS¨ÔDÝ¿$ôsâ'î¸,Åú9 KnjwÔ?'!Fu5îhõÏIˆu»K“ÐÏl•œ‘ú}b—ö§ô’‰ús­Jèš­røÐZ>Ð5[½ˆ9Ú-9u@×luüE‹û¸.íOéø³‚åÞêÒþ¬ˆ¿wAB?{«0U©Ñ:–BcI\ ü¬¥ýÙ6iæ{2PSû“Õkîajò §„°¦^Æ­Üã:gkè&!ÜàgEмKIûlYjR´V¡z‡ö¤çQ¡ã¥%s¯Ð±ÄóŸ;êý÷2G ß¡©Þß©¦ï´ªi`ãa ,µ?Ø ð´:° Õ€îÐôZ0ª9ù{:ÔúR7Ù,—û†±ô1‰MEûŸû^B)-$T¸–>&ÇM÷ii[ú˜Xèxà:Xú˜Ønißå€jZsh EXú˜hôþÀL±ô1QÙµ ãiNÒëlÝ?Ç–>&R_òšZ4²kõ>Yc"]Ÿ¡#M_v­Þg+µ?™õšìÏþ¢UMÛ}:4-µ?÷g¨§EÏ®Uè@zY„¦ö'çVSû“Ú‹V)­v­Þg+µ?ûèÏÐttŠç5ÚŸMŸWVj6zѪ¥QÕ‹V=í¯v5&4ÕjЬ1q¬\±¬19®TÏPJS±­Ž¥ÐXNÂûGç€òRh|†ÊRhäG¨.…Æg¨-…Æg¨/…Ægh,…ÆGhÖ˜··gh_ ÏPZ ÏÐñS¡±@ù§BcÊO…ÆÕŸ j? Ô*4hüThDhjî ´ÿTh,Pú©ÐX ã§BcòRh|\ºÜ<ŸW–êRh,¼âµ¥Ðø õ¥Ðø ¥Ðø]¶«/ZMßÕ¾mõ~͹bv—†ûK¡Q¡¼Ÿ¡²Ÿ¡ºŸ¡¶Ÿ¡¾Ÿ¡±¡Þ–Bã3´/…Æg(-…ÆgèX ÏP^ ÏPY ÏP] ÏP[ ÏP_ ÏÐø©ÐˆÐeÅ:^@ûO…Æ¥ThdÂÚ©ÐÈýš•¬o ’ PM…ÆPK…ÆPÿ©ÐX ñS¡ ž¼ŒÐÐþS¡±@é§BcŽŸ Ê? T–B£Cm)4>C})4>Cc)4>BSû“_´zñ2ö J? tüTh,Pþ©ÐX ²íásì/ãRh|†ÚRhôG¨§Bcì8 t‡F*4Uè-˜â/ãTh´Í´;´§B£—â¡~¯Ýñ‹—q*4FíÀ=œäÉËhÊë¸ßãYž¼Œv¯fHè}’—Ѭ†jïášAͼÖÃ@_-GíÀ=TëÉËèæ›*èkfú;Ó4yÄ»Ú{’—AX¹²ùY‹—AMžÆõÃ˨Á?\‹—aÔkà>‹—!µ"ˆï9¾jL°ÔëLX´ºX4^(F0?ØŸgrźX4…nâ 6̪1©I+»ŠÐÅy*Ùû0t±hJrEïd•ºf«K¥›@¾Ì–Þ£6tÍVMÛù½ÔË?¼Œ \@Öl*xÏîø§Æ¤0(ØF`ÍV)tb÷üñ2¼ $êúaÑv)@iO9ºJå=?ë’]¼¯UcB¥ÖlÜCÝôÃP«N„÷Z3_5&Hfëhôu@mÏü»ïk@|Oç»ø˜_Û°C>Öµí9ÐWõÒ}ÇêfõU½tŸ-ýÁƒ¿êŒ:~–ùà6ÔßA æè«ÆdS»ÃØÝ×Ã\uFÐÅÕ-+«5ßC¯Š ßÅuquaÃ\A7nŽgÉz¬J½Có»Õ`ÇF¡IzÖ˜l (ónãW°xȳÆäh•Ї®þ™­Z<4î}uúõ³:Å} ü3[Z‹‡îãš5&Ç•ÌÊ hUTK_ïüWÏ“M«* ƒ•wÂ>¸Œ«ß§À—â]ñîd¥2z¬1é Yˆ³&ªßg+kLº(­šß¡Ÿ½E¥Õ;¹Ý³Æ¤ÛðRi?+>³Å¥Ò ά1Ù´Úì^Šà¡¿úJr§zؾZü¹=>³UK½î,EØCÏR/ºMA´Ïl•R/¾—OEÖ˜4‡7Ìñ^;ó/²Æä€–R/¾oÃÈ“ã(Ãú-ë÷¥YcÒ„ŠA¸âÏ’ÕB?{¡SdÉf°†‘ß¡ök°Ž&õ]ï­QÄra¹D‹_P#½ÿ¬UcÒàöv.ºwàScÂR–‹C«ôëxcò{_W‰J«÷q퟊ ¨UŒ÷‰ýԘȨµ‘|‡ê/èqÃد¾†0´ê{èõÝ‚ˆý…ä:Šï†Ú¯»Kƒj»È“ryº¾Ü÷Á"úÕꀺ¸ ìÏ“V+‹>ìO|ôÇý4¡®.jª²q‡~¸ºX£ðÙ²=”Ïë#Œ«ÿ‚»¹ž¯|œ.p¼¶ù×Ôúƒ«+ÿ¸ûýÈÉ'$*—ã:Æ‚ŽBï‡]0xA ¢èЪü‚*€ê/hÄý¦Ãö}µÇ!}õ_P X.#wAã{ _pÛë±cÎ,î¿ Æq߆ü™-Åû±ý^Ðñ Ê|/Ì þÌV‘¹‡|°ì¡§ðÑÝvã¿Ƀ§V'öž/ˆ˜\]ßæ·î» ’¿ÍšÝa$¾×õ BSɃ·Ø¤í ¯Éƒg®}…C3’ßH ½D‘¶Ø±|>^`y}¼ÀÊrúxÕ½ÕÇk{¯-Ö÷f[lìÝ>vØ,F!yÑnV£¿-–ö†[ìØ;~l±¼,?žç"+Rš¿˜·,Iiü¦][®/°¾l?îD¹-6–ïÇ3ö \Æ/°}9¼ÀÒ²þxËûã–—ùÇ ¬,÷X]öúŒµåÿñëËä6–È wDmËä¶/XZ& /°c¹€¼Àò²y•åò«ËäÖ–È ¬/+ØX^ òˆµ¶Ì@^`ûry¥eò;–È ,§!ß}϶Ø|iÿ©jÿì¤iwÑ¿üÅø…µô¹þÀzš‚¼ÁÆÞd‡]&¯üÛ÷¾ [,-c繸¸—3È ,/kXYÞ /°ºÌA^`m¹ƒ¼Àú²yåòŒ½(—AÈ l_!/°´,B^`Çòyåeò+{—Ý·%to²ÅÚÞ'd‹õeâ{…ØH§ðôØ`{ki¦›·i¿Ø—WȦ XJ³QÇ÷Ρ?°#ÝB¸ŽÙì}`9íB” ¶áo“åRï© û I,ªØØtVÞþàÀp`“BEý>îQº›,íåžjs‘4Vûà0Z£üŒ]Ô‚hµ¿0˶"q‡¤‚Œ±k±‹qZ²_Á÷˜ïM‚ð(‚ùAÆw)ŽŽÂ=÷»í‰]2ôÕºXq-ÍQ*ã믂–Å„öЪs‰ªbÖpÏe!PÖÎ0³±4-KÇ{è#Aʸ~Ç]NæÄ~4H±]ºk^œXÝ‹æ^Æ0ã‡zöåüýý!Ÿ}ñìaÞÆG?»ÈU*îùi9×;9bûžXVùó–~²âM`=|´Hk»÷B Ë{ZeÛØ\ïJ·?°?ÈÞ•o`m‘­{aÑßÕ8¬ÿÂÊŸÑîÂÆâNzáÑßtÏ2»_X$ÒØþ«Ȥ?°k¿1Õ‚ù¨iK­(óW~Èi_Ÿ]X¿YÿRtʯ}û- `ŠüUTûMl¯U•À~ßS3¯²ÄÆÏ5YÖz zp/²â-n5è'6™Q"÷ÂÀ.A ò㙂،+#c|Û /,ï×ε‡à|PÙ¯ÉkÁ˜é‡R,ué}MªýÂÖ=¤þ ÛýN$;°?÷[ ³v?~Üaîv¾†ƒÏé)FÞä>¾WAÌñ<¥íîÖïvú&ªG/ØkÇV>À²ÝÝaŽM2ÏPXëý›6?±šëŒQbš¼ô!Ýχ†¹ X“i#+=P™¾Iö›jGRl…n¥ÞÖ—lDy 4þ]yœ" Nt¼?°™Ç‰fe1Œ™}»Ç8 ‚9ö´¬GÅ!ý>wVVŠCÀ·ŒúÄê3¤­b»©QE‚† ¿ä›ù7m;ûù7”J;é+}H¹Ï}a»CRïô¶ÛÖddÞ´Õþ¶ý•7-d k2%?ŽŸá‹û"$ó¼bÛ`íÄœ·àV±{(R Î k'B±ÝÌw÷¦uà|H~Iãºv¾M+N,%¿¤ym·“6y ½¶‹û˜’_Ò¥¶K­6y ^Ü(öwòˆZÅÂ7–’_B²iW°“§@±iW»ø%Rö1•ñMÁE­{ž¼6’³iö%¿„Ǧ݀ñM~ ë¦Ý€þ&¿ä˜ù æ8ù%2j»ç8ù%bmƒ…yK~‰¶]»8sÞŽí²Á`›kÓnÇ>d§oÚ…ýF©kj¼iö<¥°©ùæü%èo*›IÅq×ÀšØ$àɦ]¸§Rj›È wJqÓ¢+yaaRÝ´ÈUžX<RÞ´¨`žXÜCôƒ3yb›/*fÅbc1< –á^MYJÓ7ß·ïò¿‰í‹Z±Ø‡±h®½á¶;’=[¬xš ŒY–ÓõQïˆù·co:ÇØM qíoS³d&o¿o°~³¤†ïlÑùmÁó,kj˜‹ÑÑ1í°ß²¨†½¶köÛªªé\ú+pG¤UV#EqV¿-«®F;VAñ·ÃÆÄ®¢5ÁÊž/Mô…•_ŠýÇo½¿qˆõVôîyu`í—i@ô{Ðé¾÷"8…ƒ¹öG½Æ €ý+¯Á»œ·»ké]×o—»žÁ]%¿óÒ°¿Ÿ Æ}üåw½°¼ÇòY+€•}ø,FÁþêþ·ñq|Ìñ_• zÙÐPÄæ~ ÂÒ@n±¹ßjWäß±³›…6]ë{ˆÛß±¬Æ!Km6í‚´Ù‰{¬b«Ø_Þÿ¶Ó(ç8ù%¶:åt˜ãÅ/ Âò[‚zõk ‹± ±}ø1o§YN³Øc/·˜ [óF'P‚Ø Yÿ…E¿œStaaKœ sìø‰ÇœË¿°h™s`å'v”võ'ÖJ»ö ‹®9Öb¹´ûñ½|sîñIòö ;:!¶ï×Ã圃Xú‰õ»²×ûõ{yç –÷ûâ2ÏqÀþØo—{NV÷ûø ›Þ-i¬íχ3Ü9ò5o½ÔÞS\'ösN–Ü"A^šbÍ[áœêÝóÄ®y+õx?¦XóÖp|í.ÌsbsÞ<𷳿-V™›W…1[~/îØ£‰««|®éà\¤ã {­;ý²›óæ•ÿ /¤ô|áê¯ø©ŽYØ‘¦/Ì^9÷Òě󆲇'òÒ#m_¾ªýÿ°‚íÎy£þ¶»àƉÍw@TÝ?ƒóa¤óËñ]®}ŽËH몖a ÛMþ¤o8#°Fš¿ÿ\_Á¹ˆtª‘ŠUèooÉ1lµ}è=½j6í–Ò¬&ê8À™:2^VòoapžŒ—ĈÚÇþæ»»:ok/q­E°È/ñAuý:ö7ã%QöqX`2^R-:ÃöÅŠ—TÞJxƒv3^¢Ñk]äGÆKTv5L0¾/QÚ´ ¼•‘ññ]»0¾/éuT#ã%ÒwíÂ\¤ {ùfÞHCfÝ`qb¹×l°pF¥%̰M¡†i¤'ÌàMíYÁÒ2°±gìX6þÜ_^6þ8é C­Ûãø¦1L×MqÞ†em_ù‡àù;ccÙåÈ–¯zœË/ç¶/ÜXZŽ9/°KáSÇŒSUû¬,ÓœX]®9/°¶ls^`}ùæ¼ÀÆ2Îኽß×ùªÇß2bÿÛ—uÎ ,-ïœرÌs^`y¹ç¼ÀʲÏyÕåŸÃã{Õã\:ÏsqÕãè÷{þ`co¡³Ã^õ8-¶/Íù«€¥tѱV±رltFÅ2`yùèlú;+i¤ã›¹è€ÕtÒ‰:¾À3gšî[j½W,ö×——N½÷Ý5±l,3«u_ÐnÖã4+µ;ÁP+ÇYÓQÀêÂÂ8d=Ng®}0ìCªŒ{«X Àf}@·V±°²‡dóÛJ»YàŸˆeòªÇi¾á)`V=N3¿{LŸØøUïä õNü©Ç)ùï¸ßV=Ž[©i3†ß–õ8Å[èÌã(ö!¿o^xü8Ç«§æETû «¿VòY„¿mÍ[‰1 æP8ëq6c&eÏóš·¢u"j5˜×¼•8";îMYBÖ¥]VÈ‹pÖãlò"_êû »êMk>6ðÛ²êq´¬³!Š}Èy%–9 r_¼êqF9£Æ€šWþÔãÔz=¹Ôç¢Rð¥8¹I,ÉWÖ¢VßøÕ,ŸŒÚî®;kK2Š‚>-§+ U³e<×Ó–†¤ìMmgIúÒ”ü¦hÀy–õ8jþw­'ÔC²®s²ä’8 ÊËš†J+c®ƒ—7ÍhµÖS`=,sšQâž J’6÷[+ß‹‹çeOÓzµSÂóáãOSòCƒðL]5£î¡yt^5Zâ´t ŸØeŽ…'æqçáqÖãœb5…éØ|¿a^ï¤b3Îeŷφ)`ÓÎ9Óg»P?Ķü¬C*·ÚÍz²¢Éaÿ…í+æøÈ·ç¬Çַ̽`»#c¤QÆ×ÿËYsü´¨uTp–d=ÎñB§RG¥p–d=Î0õÂ¥ ߬Çá^tÔGkØnÆ•GáÀõ`XgYÃ(ß{¶ ¢œc¿-ã%}/§9+}XF–]颌¯}œ,GùmŒíêÞvó<ñeKw¦¬QîÕië{´‹ýõ¦°/–¯o'¬×‹?)ýÄúGç©Î›À7Ë?÷’öØÿ|߸ööÅòöE‘«]³eîk¥¾PÔ©ÉÇÝöŸ2Ê0oËÞc g»PÓ&éï[\Xù;¿°K/¨Ì9®tømޱݯ©Lì²øí„µžn•vÍ[Y½Ìq¬ü¡6€)Á8ü¹üöÒ…u¶l~Q7éŒO¬}oþR »î“5î ûx9ýaÝ-1ã˜}î“8¾Üöw½J=¯)hiûÜ'¥Î…öãÍLeí@´­÷[©Ñ忰Ȧ.6r±Ï²¿ßK4ã%Çí—8±éЊye.€Õ‹ ¨÷bã|o:`mò[Üóèq†±ÝäO"/þŒ­0öwñ'_m'%íþ†ÔÞö~Gt}´Ï¸ò—ÉïŸöÔÄkŸq®Vë:œ1ìš·Âmîg”vÞÃM.kaeåJÎRpõô}ð¢‰:Z`2°y›ªâo[¼×(Ôn°ÒŠa/k…¿¦?ÎY¤Š5æ´¦4ýq:Î…œrè Øå×½6ý:pŸn†í¦_‡ÔX±ãùþ8=Jü¡“ öÃë5¯Pc®éC½p˜pí¤?Õéq›Äv3Ó ½eWì‹ôÇ!*wOÐíÐôÇùò´þÔû·Òîœ7B?Üí'6yæÕ湯߉͸2ÆÌã{z6ó8Tâ©ý[3nb5û[x+ÇìÜïºüqª&)~–?NÕRdǽ™þ8ÃJÎRîšþ8ÜŠæ·(#6õ'¹Ôà‰ÀÝ^³gã?D wååkTê°ià˜e=ŽTrù»æ.¬ìu¯3±º´óÊ˜Ž¿Í–&_™7"8³Gk Óç¥ø‡Õn©.ãõ8bUC›ñ“õ8ǽïgž°´ú‹ã°êq¸œg>àÝ¢Y£Zkâ âšõ8Z×:áR³G­ð¨3þ6[}Àx_'ˆ1iÖãh許 lΛ¹–øä„5ëq¬‚e Àö¥yXú ßѬÇ1®} ÒîXúˆ¥]ÂowÖãÞ5оQ]þo%nÿUʸ°ºúPöj­jÖãx­‡<î´°/²Ç{ÙC=άÇñVÖCkŸÔ¬Ç1¯óÖð^’þ8Ž÷¾3NJ߬ôÇq¬=;°qDMwÇXñW ô®ºÅ'ÔôÕä—„”;W¸áoÓ¥)‰Z21GM~ITðÖSóÅýªë ÞÒjýÉ’—FΈúG²`ïöþÑŸìe¿n:-NÙ¨Ú,°Î|,NYÕq8¢:/]˲&¿¿Ç³’µ¿^âž<ð·éÒÀ,{¾Üåܲþ¸ÆSÙ›þ¦Ã{‰W—vÓß´êÞ¶ïœå…MáѼ¼MQ+M³‡Ð_ä<«ñnŸõ8%×ßé°…Y7>jûËY¾é/ÞÓK˜û&7cØ®.N+ý5¸Ó¦›0³oâö°‡Rïõ¸ŸYá½2bcå6Øû>¶å'<Š/¢tàUØò®¾ÞA{ÌRïU*ÇûÀb»ãWþâÀ*`yÿÛŽ­BM+ë·m°Ø®.=Ò ûk+OVûë°¾×9½øÊ °±ÏÕëx6–z¯¥Ý3ŸYK½×’×»Ú…þ¦ÞkÉë]ØØù· Ë€å}NíÂÂ\¤~IÑZ=Ä£,õKŒ69@8-õK ¹Í'V°K¿¤¾cU±‘º(›vá.g©_âºi´w-õKŠŸðÉ×€˜˜¥~Iñ)>±ï3Zº3õndð–¶¥÷*ZÞèÎj[z¯Qïë¡ôVS'§ÞM°¿©÷Ê›þö7õ^Ñ_úâ¸`–^PåJ8ÝïQ¶ô^¹¶‹¹P[z¯õÐ ¾ó–z¯½ÞíOýÀŽÔM*ýí îž¶ô^ñ^­g¨Æ!õ^I¸ð^¸€–z¯„q9ýN=,lê½—½9þ¶9oCêÜ@«ÝRïu vÞ‰…÷-½WÒºv o©÷ÊèOvroá®l¼tÕÊ]Ž:Äm齎Ê/Amy[z¯èGÇ|p[z¯Tâ0umé½V¬a.Éø£Úà[xœ¿p®³ï5;Ïk#Ä*ŒèÒ™„ûƒ,=¼}ŒŸ™,=¼9µ1Û]óVr3jðÆ1Y:†Œ¹¤FøÝÞ·Ëÿ†¸—ÈÒ1,¹¤ã‚Øþ$¾õš ìCêái‰éR‡x”-½WŒ­Èq¥èØnÎjÖûí[ßþÂ.½WmxF‘C¼Ï–Þ+¶«Çz(íÒê/î·¼÷-½Wí˜wL0ÇKïµ˜í¸ª0¶+ ‹ñõ¯´ÕÂêÂ*æ$¼Hlé½b=™Ÿá!³Ï¼Õ»‘ão‹ýyÇ“â0¶ô^qíç¾ýmé½V½¶ÖA“Ï–Þ«-Іõ±¶ô^7X/íò/l§Ò®üÄJiWb£´k¿°DPGeK﵎iClüĶ»ô^«§æØ®÷ýÚ9K^@SÒœökòL=€Îžùدõ³ŒE°Ÿý†±x6ð,5—ýÞ­-½W)õ¼æPûkKïUª_(á/½Wô*:½E¡æÕ–Þ«pÉ¡ /¢-½×š»ÁØ‡Ô ÕM­}ß|Œªv/“ÿïÙûôˆˆZ»u¡žz¯ÇC”+ÛMÝPªš|XÃä/‰›ºüØõ~óM­=6ßoÕ[´Ôð{ÆKÜwõþØßÔ •²ƒ ûàËãd£O€cË;¥?ixÆKŒy£#€ïnkQû ØŒ—W]á†}ÈxɈ ÆlÅKÚNϱ6ã\,ö!ã\cÓ_8Ï<ã%¼Yë¨ñá}Å'¹?éŸyÆK˜vú“0/±é/èpzÆK†lô2 vÅ•«önŦΓGÕhíGÏxÉq&nôaŽ3^òE”ù=f´ò¬s‘z¯gR ±„k'õ^û(9Ÿ@]§O]~ÙóßXÝPÆfÝ"—uCÛœü;uCGt{úGŸû͸oÎ_ìÔ m|Ä/lìÔ e¦M`§n¨Å¨í‚Eô©z 0V,ŽÃÔ å: ûà³F—­ŒjUFê—4ªq®Z ‘ú%­Æ^£ƒh¤~I‹ú.ì†Ø¬[¤êçÓ!Ž©_Òµú>tõ@Y·Õ/©3Œ-C«ã0°©;c5~Ö›-½Âç2…9Ný’+…C/8±ôKÎ=p.R¿„¤èDWx˜ãÔ/!.ñ>£†ífÝ"—˜šÃšLýªž!* ïKïyg)h—ÆÒ{%­Z {¥÷Jµ®N@‡3–~ UÝÅñêHý’%&ÆáØnÖwWOVðŒÔ/ù"HÕrA»©_rJKXƒµóÑ/)ÃÆlé—X«9ÀÀ>¬úî’ çmé½6’ªã»ô^Gå÷ÝC_'véΔz'ü°ïkOÞ äê‚?uÂZj¹ æÒöuÍ״ØIß×Ä_GœòCwæÒ­ƒñ•º3-ºO}wÒ7 ùè)Ä“¾QÈGCŸôBla½ê!vé`?é…¬ï[YgEß(´í5>ÎÚ_àLGê½n°ÇWHK¿´…†€¿t¤~ÉÛPÛ-”÷šPþÏ ôKBè<ùqþlW——N©' ¼ï,œê¥³Áú// 6~yéTìòÇÑíf=ÎÆKgƒ¥ôÒa¼Wo°#½t˜Ÿ±œ^:o°’^:o°š^:o°–^:o~›§—N¹§n°‘^:ܱW¼äôÒáöŒí饳ÃÂYþ8<Þ`Gzé¼Árzéì~b%½tÞ`5½tvã‹XK/7XO/7ØH/Øä—è›v“_BoÆ!ÏüÅ\d=ÎÆ»jƒ]~‹Åûgƒ]¾}ÅÏgƒ]yœ7X[5üúŒõôÒ)q£ 6ÒK§ÄÄ{ÎÕòÒñgl_^:ãKËKçv,/zÆò// V~yél°º¼tøkËKçÖ——ÎxÆÆòÒyƦ?ÎxÓnïËK‡ž±´¼t^`ÇòÒyåå¥ó+ËKçV——Î ¬-/X_^:/Æ7–—Îóz¸â%——ÎóšLœ—~ ,-/zöÝß"v,/zþÞïÊ–——Níï=vu>ÛÒKÇëY}çZX]^:õüm83Î5¨•vï™ëËKÇ+–ËK§ÄVîr"ÿ=K]——Nõo1øm/i6j»Šíæû­ÕøŽ ŒÃÒ{å’Ãö»õʉÍw€—÷ߥ Ol¾»ûÆ›¦ÃÚŸw7¾ ý^FxbíWÆïO¯›ïn*ñ‡ãz‡ýÍwwõ¢6èÃÒ{í…ƒa ÇlùãT. ÁÚYñ’úQàžr‰-\5m÷xÉ)ÑžØÂ!ëˆM]µ¨µ´w ù›ºj*£Æ®`Mf¼äsìܼ=pÌ2Î¥…ÿË,ØnƹFÅÞCjÿ=Kk[b¤ã^šrbûž¹ŒÃŠ—Ü X&åçø/)k‡\aV¼Ä6|ûÀß¶tzkœkàšÌxÉi–VãQØ_[ØÂï…ø^ûñ:^p|c¯kyŘ`ŽW¼Äk:~‡þâ%\cLØ.­˜ÍF›Û÷ɯäÊú|iä.,'¶ä’0Æt`%±$ [ç~KqX]ýEk÷ú·k¿°tþ¬ÿŠ1u»×ØØøÕîqå¦;ÖÚ>ÖvƱ}?;ãF÷˜Ø©u±×½õlwÑ;ö1?Û%˜‹?½×€ú¬ã¿í£j€•¸ÇÚ¬ï׺ý38^ìq øë?ö›)èÃÒ{Eä³]†ßæ´× ¶S³Æ×Ç^+XÏ{Ô,¯Ü"Ö¼~fò›óFEgä¬Çìg¿á˜;Ž™í5“Ïy+c6ï“Ñýþf8牕X¦ãpñKŽ{j¬„@£'îëçoX;Aé;ɆýU…9Ž‘XðÉ<é)çNpö°TÆ7òœDþεv°¿kÞz]¿ sœz¯Çõ«V%b³ŽŠv÷_ønf=Õœ0|»{[õÝ5ßÍðéY3Bj=ν~èÀÒªG/œSÈ_Ø‘uîÅË,îW Ë+ÖVú{¿†Ø¬Ëçšï:›uù­òiá8Ì:ª³°¬æÜ °YG%}ƒÅv—ž‚ל;Ü{Ï:*ñ؇žuT¼ñõ¼{ºج£ªy² vé`˜<÷!머Ö3Ôß–uTNzgìCÖQY©D®Ä© ”:#;NÌÅ/ý’‹¯k=ëqLkÝW7èCÖãm8c–õ8}³›uT¢•ÛÜ`Ïg=ŽmêP`e=Žxí/á>Îzê5+§fMj!mja:ö7ë¨|S Óq²ŽŠKePÇß–uT}×.ü¶¬Ç¶‚þf=Îàêi\±YGÕLk`ÌFÖQm~¬ß±ò¶ÁÂúYGÕHÇw|tÕJ|ç.Gvbm¯í¶‰ŸõáK‹®U,ö7먬ԓU,·U%ÏØ¬£¢ÝÚyËzœˆÂÙ`³Žªjh#ïÀ.ÃÎsÁ+£üPÏpjƒfÝWá<Õ¹Èzœ¨5™%FÚ³'Fù–ØkÏzœh¼™cXëYã/°=¼Z 1¦žþ8›ºßôÇ!jöÜ^‚¥Ý{9û‰ýèrÅÂÚIœ¾‹OâÝhù GÙóìÇO˜Ÿ±ñK«²öW—ßbùf9è4œü£µ/6cë7õ^á K,ìc]º¡ºÁÂZO½W—]»°vRïÕÇfýâž_z¯ôŠµÔ†/°s¿¹?ccÕ"Êão[z¯½ó3¶§VðxîƒÑÒJ«ÚÆwÅ;–¦YTì,g½Õýún—.¬¤Ž@ÕûNEMlꪅôîØÔUÛi1C̦§~IïÕ?¶ß}ÚìÌ¿Q@¼ïôì~ïÃ/‘ó^]|)`®x‰Þ¨/2ìÌw›ZñE”»÷ij#∨1z`ùÂJŒ‚UÁß&Ù‡Âi ð"9­fÞ” ßþËþpagÞT*_CZ`}Ö(HÇ+Gk€ ;œJŽ• ®ÑcÎ[‹òÛ |®lŸ5£Ôö±+ŒCÌyk^r¬_ò¶ ;ò·5.s¡í>W¼äóì ÖiÀzXõ8L°Üqýf¼„ƦäÁ~‹¬ë„9a)gId¾»—y#ð*:°¹ßÜÊš ¿µ™ïfm£´ ñjs¿éPl··».ख़GoQæ tNÏ”â… ×Žíö»?Ãþ¦½Öë•󗚤g©Pi—Úþ¦ÒLk»Úµl·ä°¼=Îåüm£ìÍØßÈßVùD0=y ­æò‰a|{Ï>À:;—?þ¶N9Ç0fç•íîûp`ç¼9ÆSO)…ßvñKŽuf½`y Væú5GlgB¬ÎvE G‹î¾rÖò· ®sóÖ'/¨cŒ´ÛÝ[éÀƬµ+îà£{F¿/ìÇßü Ë Ú½â%—8zx XïË›ú\£#Ve`RŸkŸ¶ÖÛ]ºjPû0¾é ëk6sØø¥3íýîß}›{Ÿ×k|aϧ~‰rÕWvÜCKï•ûK!؇œ·ÖP»”£#6ç­­UçÒnÎú‚Ÿ¥¸ cÆkÞý‡@Ž•xÍã¼IÇývñKÆñ†¬¾ààqr`'’£i¹Û œg2ù“[”v´+“÷Âxö †{]ü’sA éé…ªØîÚo‚Ú°.æb齪 ïdwü¶,½WeÔ{Â5¹ô^µøoúý)sbsÞ¡gÈ-ca3ÿ6j&opö-½W Ô{5Æõ»ô^{jRßuóOÚÙÂb®™¿CKïu´’ßâ;ö¿íøÆ*#–ó›Ò!×LKïuÀYm§œ|[–ÞëèÈiø¢Ð-ìš·Ž~u_œ²…]óo?ï°v–Þ+žëqZx@»Kïutä¢|Õo.l_Xô´c‡¥÷:J<ª àÒÒ{%ÑÔË¿°½•vå'v”võ'ÖJ»öë·Q^™ÿÄÞé`'6ösq–/c»Þ~aG‡¾FôŒíËßéE»´´lõ;––-=å„ÇŠ—PÕ‰ŽíÊÒ²­}Àµžñ’¡­žs‘ñ’Q9pÀÁ/­æ»÷&-ÿ·: yÿ‘ñÚäÑ1ÿ62^B•;î÷§Á‰¥äkÔ+ŒoòKzÕOu¾ÑH~Iï²i›,OB~nW÷^‡ÎÉä—´V÷ÞFê½n©XX“©÷c£Qƒ{3õ^£ñ ãñ×]»0É/ñÁ/°ciÙ>æ°GòKÌ»>cSO7~·¥™ïÞìã:éK[ë‡6X_º·ã¹¿éK+nOyé‘ü¥¡ÏØôv—g,¥óxMèþ¦Ý9oìúVÒ·Ú_`ç¼qÓnúwÛ›v?þÝ/°éßÝ^´›ü²í&¿„F{V,-Üx\gÉ/Ùhän°üK#wƒ•_¹¬þÒÈÝ`í—Fîë¿4r7ØX¹%ÿV°W¼$¾}×ÿ¶/ÜXZ¹/°ciä¾è//\yÆÊÒÈåg¬¦FnÑÿunݸâ%§FnÉûo°ž¹o°‘¹/°ÞR#w×_ønzOÜÏXJÜݘ!v,\yÆòÒÈÕg¬,ÜXMÜ7}X>+o~[ò‚Ú›1Kž¹¼˜‹ô檼Áö¥‘ÏXZ¹þŒK#מ±¼4rŸç⊗\¹‚ú›ï»ÁÚÒÈý›‹ñ ë¿4r7ØX¹ã Ë­ýÒÈÝ`û/Ü ––F.?cÇÒÈÏX^¹/°²4ré«K#÷Ö–FnÆúÒÈ}¥‘û¸‡¸·¥‘ûÛ—Fî ,-Üر4rŸ[祑û+K#÷y.’_¢oÖY·_¹å;Ä—~É¥‘ëÏØH\êOßc¾ôK.ÜM°}iänÎI,-ܲ7ÞèLciärÅ `ù—F®‹c»²4r½b±¿úK#×Åk¿4r]îþYÖ×yVy挿-–Fnmⓜú%]«ï™à¼-½×Ö7Xl7õ6wû^ú0¶hq®‡~I‰½ÖòXz U_#p=¤~I¯¾àjŽãðÑÁ(X½ ^z¯UoPksÞ¤Ô¡H@LŒ—Þ«ŽšK‚¸/½×Qr‚º¼ôKFñbðÁ;°9oÃJþMA‹ƒ—~I+¹Ìëaé—´2lkãÔ/iVâÊGð·å~³Ú 샯þ–v;¼yyé—´/9ž40oK¿¤Uý†Z ^ú%­ê—4ÆvsÞz“ª3{èO¿¤äyÁcêÀ.ÝвßÎø`eaK´l¬.í–-öᣧ@Oš$,=…þ¤IÂz¯íI“„µe yëMÖO]>~‡øzXJ¬—v¹ôa$¶¼EPŸöÀ®ºüRK` øÊüÑ/nhüº{îXý…=}];õ¹”€ã}ê— Äú/lkÀÿe½ÞÊ©I<~¶¶t\ËÈa[óïX?®‚ #Àö™7l—°Ý™ØŽœSNý Aèf¥²×fa¤ùžØ¥¯ ZÁ|œ%À e³¥ÿe|A“„Í«QÆ·ãøÆŠ½¿[N/{K/3ª÷(ÐÁ`ϸò°r/aSÀÒ^Ûâ\ëcæKÃëZ‡:ö¹ßjýùñ4ž.»$V¢¬3ÅþN=X¿KïÕòtOŽYæq°¦øÄlæq0¯wÑêa=Dæq*»àxK꽪ռ4jI[u‹Õá¾üO,e=Y«õo|Ÿ7i#kÚ¨ÔëÔ J›ïîfPSq´k†í¦?s/u€P+'W¼„¿É:Ÿ=OL€q.£ÂÿíÔ±…õ ëÁ^xÅP(/QÔ#…Z Éx‰I‰?Ðýø>±3^2ÂJÍ•vê½*ÎÛ¹U€Ÿ*+^¢¢—P',—¦ïxÆÊOMߊեéËÏX[š¾ãëKÓ—ž±±4}û#–ÚÒômÏØžš¾ÏXJMß7Ø‘š¾âÏXNMß7XIMß7XMMß7XKMß7XOMß7ãKÓ÷y.F[š¾Ïëaô¥é»Y“ Xú©é[±#5}mÓßX^š¾›>tÀÊÒô-c†|º4}¹b °–š¾5‡‚\ë>YóY±4}{ÅÞßè’ñ’Ö6\ƒqÈxI«š/N}ÈxI«ž,NÀ#•/ÙpžPcTV¼„¥ÖA¬BxæßŒGyb-púD}Çv¸?[Ö"6\k äâ—lj/¬vÖ-ïú(ÚšpOɺŹÒw» Ø™7õox·—Œ—´^b+SŒ—4‘^° ë7ã%-ŠÖ‰!6ã%TõŠ‘»(+^"¥vÒPëZ>z¯…{kR~[ƹ¤pd užD>:½E9 FA4õ¹ú®¾Ö™.}®McÀ¼iú›nÎ÷œ“«§uôw²€w·¬zœV8§­C]‡¬zœVrIfô–~b½´»æ­Ô(t*íòO¬”våW:zȪǩس^°ökÌHK»¾Ÿ‹+TßnýŸòÏ’øÌž¿CA']V=N«uI ïž«§•º$+–û=tæ[ -Áû½y†ê ¶-Y3ª'¡0~[>õ8%slE¸s­zœ(zAÚñ»êq¢pC• ÛÍzœ(ßMuˆñkÖãŒ(Z^†š’úÑ{-~&°&ué½W¯ÎŽí¦ÞkTŽ,x>Ø9oCkþ˜¡.I³ghÉ‹¸Á\³gP½âÚѬÇ9îüåþkðÐÔ{%­¹fUlwÎÛYÄ^±Ðnê½öØè”uĦïºÔZ#Á>¤Þk'Ùø_ 6õ¹bÃÀ9î©Ï%%wë ÄÚSŸ«×†ZÍzœcgÚS._³'¢òí»ãoË:*­5Aõ8Á›1ƒºÍzœ¨yÓ:fYãÕSsƒÍ:ªQyñ˜ լDZzFù]¾ýÄòÒ²õÇõõ8Vë!ïëšõ8µî@ ±YG%¶Ñ<ÄßæKË6žt5ëqÄwº‹€Ízœõ8ÒkÍ`éoÖã°÷ ÖïXº3ϵšõ8Ü7uû+K˶ž%„ýÍ:*®uJ8f«ŽÊjÍ Ôgiê—PÔu6p­§~ÉØü¶†k=õKŽïHÅB9˜ž±KÏœÛ3v}ßF+*Ö;²>klÚ…óaðªÏÚ´‹¿M~ÕgÖØÐUŸÕ*ÇÁ²>Kj ûà‹RÞè ¾©–õ8mXÅBý…-~‰Õ·´b“_Ru0 c6¶êqªþ¯Ä íÃ/)weØ-~I/~jÀi°U3Êòø‚ 6y T´"”±ÉS¨~Íâ±US5–DÛªÇ*z¯ŒXÅZÓ¾rÖÑïÀô“7E=Ýn†¿måMa¿òÀ•0]ySGíÝèe|?ySÔÓ%ôX5]ySÈÍ\’÷ЇÔ{=¦Âë 8 ¶ø%È銿mñK4P{÷lw,,úóKæÍVÞx+~ò«+kuÀŠÉì³ß·öÔ'Öö{óÔÓ%ümk¿5ÔÈU*s ‹¼•0†ß–ü’a%†Wôt-ù%£Æ‹ž®%¿dƒ-zº–ü’v”vù'ÖJ»òë·=]sý‰E=]sÛ不 wÿ1o—ž.| =öëáÒÓ…;A´ý:;õtAÒbÍ[«zºPçnAû}qééÂøÆg¿.JùÎÇg¿•ºf­J‹Ï÷­Ö“A,Þ¿¤Æ2%ÛÍyÓÊ Ûõ…­µàx7Zü­|Ïy=_ü-Ú6`Ž}ñKª¾Üç¨þîy«yÞwD_ü’ÑøI¿Ï“_Ò¸h¸/o±RÞ±±Ê#…ï…/?᪡-èÏàËO˜wžcØÌãlî\ZøÞ—ÿ[ÕSÀo¬÷™8®Q•Ÿ Üfï´Ú­¾g û02ŸUö¦£/—÷¥cXûÛ@»ß{úöõ’³샦îbɹs0öaæŽkå¾,Ö³]CO–¯çÔÂFæ!ËÇÐÁ)}2­r뼜új·pуÃiéOBžÌO{{M›ÓØ÷á,0lž“ƒê\€ö‚Sž“•ßçòþNéß]ymŽß§äs©o´Ká| äsq­çeðvʸrßhv‚Öµäsyåµa½ˆäsqÉ;‡ÓGò¹:ÕzHà‰yúãw…Ê2Äæ9Yc LJ¹òËCÜP§×Çâsñf­ã˜%ŸKZ­%pìCò¹(6|{Ä&Ÿ«^s‡ä—x ªívÀö™ëp‘R³o=¿ø%|\¸ÆGù^ðÔÃ;~G©-éx®3gŠæ¡~ß>õ82 v`»³§·Ö êüSÃÿ ôoñO=N©£ 28׳§E w ¨Ë÷¬Ça¡Š…ºÏz­ºIAxVKêx>ž²ÚðFw™ù71¨«;°Í±¼j‚:ö÷níxb§^/ù€pÄÎyû"N}æ­þ6Ë1+¹/¥2¾Ëÿ ÖÃ9ð&sYó&è¯ç®°/4çÍAÛâÀ6¨gðÞ« 7ÍMsàú-½×êÉMXSáÉ/¡ÊÔ«ðä— ê›Ø ¬‡ä— –ç;LòK†ká)¶›ü’G°ã~K~ s`¬­»ÂšÔ¥ƒÙËʰ¶t0ªâúµ¥ƒáUG à·ÙÒWìƒ)x>zòK5}O,ø}¹­¼)ÄÏë>ž}¶xAŧ­)Þ£’_"è!~>e Ñ“_®£`ÁÔ“_rôýÉ> ¤?l,-XÐâð¥_"ŒñÉ!x_ú%›xªbsÞ¢xæ}å$v¤6·U,ޝ/]lÅõkž„î©‹­QæØ¼<ù\o²ë‰ãë¶Úm8¾Š{Óý?`Ü»°QÖ™ç¼QÇñ Ï1µßàîÉ'½~[¬ý¨©ó±|üÃ~öþ¶À©¯zœ(1&a\«G¢Öoâ˜}üqЉž;Ÿzœ’C1ÃoÖ'^RxºaŒ}ÈxÉ(ëìæY:±/ŽçÎñ½¸Ï[¬x jšßB¸ŸÅŠ—0Ô‹\–9ØŒ—°!V¼ôaÅ'ÏÃúãh+à¸&¿êfvÕ¿úöu‡XE´Uÿæ¸&Ùûkûþ×g‡ïf´ç‚ZÓN4_¢­8x6É)Éíö¶‰]T,Äö}¬MÏôvŹ}ûXpŽûŠs™Õüü¶¾ÞÝ>JÍ+ø¼FÖãX-5¯Œ}ÐýZ·ê8¾=ç Ï?ž•eÖ~ .5¯[Œ¾ö¬³³æΨ ¶°µæ´…‚Ö~kTj^!‡´ö[ãRóêØ‡±°Rj^Áï+V¼„K|½Ô¼ÆŠ—l°Xó/ÕG·Ô¼FÆK6í–š× ÿ‰Åš×ÈxÉà’(5¯1Ú¯1#¬Ý‰Ñ÷sQäéN,íç¸cøøÄ~æmSóª€åýšìX{be¿ÖOЏâ8¬ýV´8Ž%‰ý]û­èHSìƒïχóÛM8fk¿•ÚI1ˆµ¯ýVó ò-Á}}c‹NCmj¤Ÿð¨<~uÜC¼ÎɪƒA ¼æ­äL±+>Yk5 j #ý„©æÔ¾(H ›ñɺ/넃3>Ù6Z žóÖu7è¯d|rH<Åi#ù%½Õ߆þz‘ü’¦E§×œ°Ÿ56hs‘ü’”)ð¶CfUXÉã˜8b3>9ÊÝD±¿–±Á:¾Âˆõ¬õ´‚uàs…¤†èÆ¿Æ!õKŽÿÁŸj^#õKÌkÝ á˜-ý®žMùØXú%­úîþ¶~IÍ¢>m¤~‰zÐãZOý’ãÊUcüely©ojKàŒJýmµæµb³ÞÔhã{ófYo:J|Ç çØ’gÞZ­Ÿwø^XÖ›jWäÆÃ²ÞtW¿ ¹ƒ0^^|µvr`³Þ´æM}àÚ±UoZ4´½áù`Yo:Ê8r%ÂV½iÕ20ȇ¥oŸÖvòCáYoJ\±8¾ÞÓ‹¯ò'xáéÛ'%cÈE Oß¾Z?oŠçºszñ•=¿iW–W,Ü<ëM{«œSyÓÊ{…¼Sd¼Ä«/í¦ÝÌ›¶6û›þ8¦õ^‚Úç‘z¯FµNX!ï©÷z|æå«Y¿ôÜ[õ›òTK?ÕÕE꽊»=`Ï\þzúŒí?ýõ*––Æó ìH¿¤¼ø3u~IÑŸ±²ü’â«Ë/Éž±¶ü’⡾åÀzú%±?c#ý’¾òNãöªÇ9Šu>v/}?±=uYß`)uYK]Ò;~é²n°¼tYÇ3V–.kÆjê²VÎÿ’vb-uY‹×Ëë©Ë*òŒ¥Ë:±Yc½Ôzn°}é²ög,-]ÖöŒK—õ–—.ë ¬,]ÖýÕ¥Ëúb,uY…Ÿ±žº¬/æ8õ^ýÍ:Ëzœ.«ÝéÃ'¶/]ÖÍzPÀRê²úf|°#uY}Ó‡XN]ÖØŒo¬,]V-XÇþê/]VÏ››¾µ¿߀Ô{u.µ“6Ç!–fgõþ‡U#ÅkÀà^}`³gs‡¹§]Oìò£ªkr8ô——U=KŽóÏz§q¿{XIÝÛÂ1ˆGØô}hõÞöÅòÇÁÜ̉e3ßûI\õC89o^ë‡î–Þÿ=_ Y»Ã5vå0éÓªövÅv³Þ´úF_]ømKïµW}9ˆGX^cVõåöPê½6+\µ‹}X~\[ƒñ]þ8Ry¤æ89oZæB@îÀæ¼)UžnƒqÐÜo^ÞzxïÓ¾ôt ÏÜ ú 9oÕƒùXeØnΗX&÷s¡9oV<ÒŽ§8¶+¿|£Ž+&Ì….?ªrWD°7uùQ•óìärÖ×ø¾2è”ØXãP~›a»©÷Ú¸ðwÄö…-¿­ b?óöäGu`×¼•ú8oésŒƒ4îùåS=Ú?nKصߪé]zäÄæ¼Qm÷NA:±ž¾QŠßX(‘<±©g^ï½c½å÷¸pÊZ èƒ÷…Å;ÁqÀø~üq¸jsèïÇîQÇçÜïšß§%yú;Üñ\Ã>,¸œÞU¤ÐnÎú®Ÿat¹ù€Øy/1ÿó™Ö`}­_ÌåY%.ìò‹R+G7‰…ÿžJEs=ÔKŸ×\‚þÆœ·¯Xü—ìù …ÅûYc\;/iQòCr·S9±é»^ýÜ™nËéÄÎyãa„ãk]à·Íûä1'ÅëEÇ!ã%çzœa½ìú¾1jRs+íæ¼E™7¿ÏqO?ác™1`ÍŒÛW]3æ°µÝ}l,íϳóÈpì:'!~vlÁfØnž“p̨y윷㇠W}/½‰Mÿ7)úDý¾7{Ëw@/ïãrNööñkõœ4ÀFžE÷¬lŸ¾´ÖÊûâXÚ ØžXÒzNb»ùhåÛh`—€Výê{ ôÍy«õóÔáìë/i\î%r§%ŸØÏ9Yî¿ öqïyNFy_7l7}ûZùѸsìœ7¦³ÀÒ<'OcŸÚnlž“ZxÛü;ç-ZÑùJ=,ìÈ3ªá÷­‡ó}_,?ácç½öqú “€Gû饰ßHs|!¦p`Y±éÿ6úFõoÎÞÄzŽCï*"Äf¼ä^H=½¶Î’Œ—t%-Ø›ŒÑ‰M¿ÅÖð[mÀoß}ÏÛ1=öÅÈ{Ikè fr»ªœØ¼— ¶žÚ ؼ— ð´SÎû {?@ý®!]XËõ 8Çì^Ûw`Wý[§RÛ×±©êåì3àÛŸWä•Ï*ïÍÀyc]í–ºñÀómµ+¥^Oú}­óÜoŒwûÓó‘áì»â%¶6bÀ˜I[žQö|‡v%}×;!vð@l~ßð{údâ~“Ô jÅ'Sï¥U'vÆ'o¸b»½ü¶Ÿìã?Ó¥¿šØ(ž¥àIx`ç9ÙÑköò,€õëó†¿íøØÀ\ج[¤½Öëá˜y®³^ÛìCd»àÁ|¾7{ñK®}QúP·¬Ç᪛ÄP£p`3ß-„:OÇ0Â\d=©u3ø_õ8ݨÔÍö7ëqPÏ|œÖxØnÖ¿¡®Ï…Å1Ëzœ^ô˜Ž]Œíúªó)õ86p²þ­¬S#ê0¾ËOxŒRÒð°üq,ðÍË*ðFO~Éq”z2Á}‘ñn½Ö©1ü¶Œ— äežö8Çñ©[l¥†Øœ7uŽÌ[Öã0Æ (Ç!}ÄK¬¸á·%ëq8JNè^_x>&¶×˜.¾7éãSø¿Ç­ÜûÑ/ÑšÁv_¹èñ;Á}’–?Nãr÷ û°øÊVtÕ¼a»É3oweÛMžy'\“ a|b“gÞ×H#ŸØä™÷(uIŽ}Xõ8ÒkŽÙªÇ!ÂZ¹ã¹}Xõ89ýçá^M«÷æñ¹x·Pê— +ãK r–¯}Ì¥ž,`í¤~ ÷âÉýŧ]Ø™ ôa:)ŠÛõäÎOîÖJg|’Fßðia¨%¶ê—Ø½ÆæÀÎø$µ’K:ž-Т…ÕÚ_˜cJýÉÊ‹ÿâé.lêOjɱ¶»ô'½ö—`.H—Ndõt3ÄÚêC©ÝéóF©?‰5ƒÇ»%üþÖ#JýIU¬å²ï8×…WFM¾8-h°WŽRWg6 °9o¹Eû'ß{~b“ÏEfEw± Àæ¼áÙ§°ÿîRSL}ÐÄB[O*ví7ƺE#ÇñÍýÒK „`cõ¡ÌñÀyãÏ~+qºk’Ø5oQ5 þKYs¼%+—õ®÷z`GzŽm|å€DYs<ª',!6ug¸Ö_0ä(ëqÍ-ý»|ÄjA’Ò'Äj»ç%NÝ¢Z—¹[’¬ëðÊÅ&àU¤XõÁ«c&ËG¬Üw̱“÷êDµ8 $“gîU»Érî”õ8¦å{aîØnúÒŽ¢³g w`Ó—¶U-l7ë:4žêNË”ô'«õ8wKΛõ8Çg³jšŒCÖãHTo°†ã›õ8"Zë³ÖNÖãÕz†{*õĦ˜×ºƒÀõõ8\k' ¹(”õ8¼ñÁkçCÖã|]Jÿ° {3ëq†ÖÚ‡»$å‰M±M=ã:Ëzœ3ÈR°ÚÍzªž„6€+A¶|Äj}á½DòÄ.1«ZŠ k2ëqºU²¡°lùˆÉ ìò«û­b?>bòÜ_¿8éÚvúØé³rš¸>qÝɧ^PTîÁ;užDâI7ÿÀ¦ÎÓý±ö;ã“®:ÿvÆ'A8ñvÆ'»¾ÁÎï›÷7}°¥ù=žÇ,õ'{ëÏØ¹ßŽƒÙ±ÑÖù Ïؾ¼Sü‰M«§z²l°©T=Y6X^Þ)ñŒ•åO5 ”þ8>nŸXKï”ñ¢]ŸµßÂ&#÷fÀ>ŽHï”áb‹­¥wŠiÅ `ïµäÆ7Xúå²ÁŽåÒŸ±œÞ)ÍŸ±’Þ)­ò á®1š.ïzÆÚòNiÏØY×q»ÈÿÄÎys}Ä^ü’+¶ýüÛú¬ë~ÆÎºŽ;¬vLïƒuºí/bg]Gø‹1»ø%—wJÆZz§´ãëË;…×YôN¡Íz€ýF-½SÆK€íéRϨ5#ù%ÌõLð4ó¦Ju7¸ï šyÓ0ê‹}˜<…30U°cFËgÅqí(r…}|VŠV¥)ŽïOŸeÅñ]u¾áñÃ8Œ¹ß„a..ùÕ{LaŒ¹ßzÀÙwÅS °s¿µÞ /Ó€/7®xÉ)JÖ;Ó´!–çYB sØô]î7±raÙ€Çä§d¶«³ö ëqÎíÚ;`g¾›záÃÜ–ôÄNžB»›‰\9w‚È“§0¼¾çiðÌwSåáèbØYGåRtY©C^od=N#E¬tÈÝŽ«ÇŽÅëØžµ\­zæa»2Ï Ô#ý²ƒ_X}ð¦[ÆÁæ `=ÐI3Cì<'» ìÓÀ>,¾rÕ,rx£I¾r/~Týns|b“ÏU9ÞÝáî9dñ¹¼×vá|äáu/í2¼»GòK¬—;LÇúã‘ü’\ùöÀuÉ/õnÔ âr#ù%ã.>¹Ø ¾’¼ V¾Yí^~b#9§Žg‰Û] ô,›HžMGž+äõ†æ~Cç1•ùØ¡³nѱ– NùØ›:÷›Å¨¿ ârC9×zá Ÿ…vç~c/þd­ãFç~3+ß·V¾Ýjùïµö`íhž“^î´MðÛ­ó^bRj Ï1|-ßZÖd»SèNlú-ŽR‹x¬èƒQžQæëc‡ÍyëVõ¶Ôj ›û­i©µoQ~Ûœ·M ïÀ6çmXÔ½ ujÃæ9Ùyà±7Âqð¬ýå·yùmÉ{µòvjÒ{ÕãX/ºã­ãùpÕãè)òUæbà¹sÕ㜚Ž<¼p‚=ÕãœM…›Ô:ÄûÆU£g1VýmxNz¾TË2é·h:ú«>ß„÷³“z9áqÕãœ>ŽTΨü¨ásÞrÕNz6ä!GÌyÓVxŽ…§;R¿¤ËF{ â#ã%_ÜÅ/,¬‡UãívÆK65Žlæq¨Ô¢ÏÊÕåßRs·ÀµÉ/i-ª.ÕÀñM *~ÖCòKšÒxÂròKšEõgØÔUëUc‰ ¦‚“_Ò9*x œü’/-Ž¿ñ5ÄrúTŒZ·\N~ µŽü®ðnáä—úÕÅ¿ÿ›zxFVxAðfàÅ/Aí±8-1 °K’P48ÿ¼ø%ùùãc»åä—p3ô^+µQœþ8ÚcדÛû-Ä6õ8÷; '¿$Œ« pQ¸§ÎS+¹¯ãH…9î©Ï…¹üø.“_ýù®µ;Ô;öaæqx´º&áLå«Ý¢E×+ÁÔV»Zöæ]ýÀöÌg9r"ü/Î%“ºj"…#o=¦±úPôÌéîwp`3ÿƆúëíNÏ>±™óÑ*›.Í8}ès=5î6í*ö!ó¦m×îý¬æ±ò¦£pY±~“GÏ|¬o°Ø.-­¿Ú\;c¤† XÁ›Çœ7 =¦ ÆaÈj·úr—•/½×«¦x@íŽ(ÔNò¥÷êÿ>Çú_¦!Ö/¬{}ã¸ào‹ ûµþÞ¦ã{Õã8Ѥ—äÃW=ŽWO–ÓN8DÌ´æ¸z·6ìÃXsQ±ÀcNýÉÞ6s sÁÉS êSQöëj·Î1p¿8ù%ÆÅÓ¢ƒ—ÎõäJŒ¯ŽCæßêýLÀ3ä¤òÎ|¡Öó^&Ëœ·Þ GŽŸ‹ß€‹_r¾![­„Ú>¾ø%v!`œ 1Áw3ù%Vý½œëÉ/ñ^îžÒ æ-ù%>ª¾á:[z¯R´cƒ¼ô^GÉÖñÒ{­C¿æÓV,yAEûFºÁÚI~I´òÛ¼|,ý y>÷¨&°7“_âȽoKï…åõÛì‰ÛÌÉ/‰¶Ñp…X&'¿$¨pˆ¤ã<ù%Qu±©ã÷BŸ«Ô@KÇóAŸ ÖÃ9xï[~•“ï7^~ÂÕËŒø¿¼ü„7YÃ{TÖãU¯¸X“YC¦x7¢{Yé‰Íw€•ïñqs…1K?aB}*â6ßÎX[BŽwÚô>Ío°î`þ¶ôíCô³ê9ý„ ýßøL[A—Ÿ0qñ´0\“ËOXrC•ðü]~ÂèuöÏçÅÅöÊñ†1óä½¶RÇú%Ý»°ÉW¶2oüɬ-4~ßZ/c–|åµëàÔ/éõî)Œï–X:õÞ}ˆä½6Ã>“A‰-w‚îP[Â1¶jŒö÷}è˜ò<±Kçi£û…ï–нvÓõüƒñŸ:Oç·°9om' ØC±ö›`M…Þ¥ÿ{~,sbÏ_Yü’ª'æ wpYú%Rïg8DzôK¨ÄÄ"àÎ%í£ƒQù}û ×}ç˜{Úøï0/]X½°º«?V¬ýgšÞ•|Òßùè^x =çb¾¸¶ËñéóÐ*ÏFì éó>y^•œ¥!–æç^øNÄŽ {<ß0¶ÍÞrÅKN˜âù8êõ䊗œ*ë5ãÛçûM¬¡&”w¾ß•劗œæ2­úzޝÿ'Î%×,°%ý„[wŒG}ÂÊŸ>М·ãç•+ãpÅKN½Š’¿(µÊrÅK ç¦ï$ÔÊIú ·V5…±W¦7úº–/ìœ7¯9*wCìÒWÖr®c£ÐäáµQj®>•ïØYoÚ¤xÍú(ãó†Þg( ÏÉѲÝ»ê7•Ñ3?j}‹ vÆ'›•šA <GÎÖˆ ”<:±¼´¼ðÛx/‘!™gèÅ“°5˜·¡™¿(Š_vÏ ;ç­·RK+5b2æ¼õQjŠEþ¶Xù¬»¥ú’ú%}ʈIê—ô^îgªP÷%©_òŵü«õĵžú%ÍJmßñOÁ8¤~Ióò–v|gÉÒ/ÙÔÍ Ž¬¤~É&¶]øg²ôKˆ*ß8pÂþKJHNìÇw±’þU[¾pëDzjÔlÚ…ú!‘9oÆ›ûÔuˆ¤@'yÆÎyS³öÜY:ÿ›zlúP­gÐ2f©‡×t<å!EÒßtSÏP±Ëß´Ö“¬.ŸÌÞž±KOA_`?þÕ¯8œ’~ÂÌ‚M=…ñ¦¿ò«Ýâa ºê„k±b“gnþë© ð¦Ý9o§Èæ#6ý„É^´›~Â$ò˜ï–ô¦Ê)Û`Grþå6ëÔÇã§Ÿpõ|¨Ø¼—„o°ؼ—lêq*6ï%ä/°ë>ÙsùrÅKâ4á*¼íŠ÷Iî•›_±ó>y|a_`óЛU,ÌÛUãç¥_ž±³®£ÕZ˜MòýVka6Øù~-^ŒÙ¬£Šmm|‡|ÖQÛøQç_®zœKÈmS7߀‹_¢'9Ùžja$f• éÏØqa‡KÕùÇq¸ø%ò¯¢Ã¹ÁÎ:*uÏØY3†ò36užüÙ3D’_¢C_ŒCÆK\ë´µåW'ÏØ¬7õç¹Ð–ùnäbojôÏ'ž±yÆ.œ gìÇçE–?Ž>Ö;éǧÖ\Ul~ßFG/ äûñÇ ­ØØåþŒ]þ8þ¢Ý?N­ë(Øßþ8 îàúñÇ©ë·b?þ8üŒýøã´gìòÇáÍo€]þ8µ°`?þ8Üž±Ëgø3vùãT‘Š]þ8cóÛ`M~üqÞ`—?ήˆ]þ8µÖ¨b—?Λñ]þ8übÌ–?N=ûÊzøóǑǵþç³ØÇœØÔ;Á™ºüq¬ž© Þdšþ8Ì%>©æØ_I¯—R[­àÏ{`5½^ _ùÀ `-ë³¼ÄÙp|S_ÙŠ¯‘²b¦¾òñî.ýíP˥˧’çuxóêòÇ©o' ÐPÎ|•·©|ç•ÇòN)\5Ä.Ÿ• ·®ôAæZ¯þCMqŽY“]¹ù.869Èb…3­8Ç<ùÊ*¥6µ1®É«çü]ìÖÁ›F¯z9k˜ gµKUòûEš;#vòÌ[3¬ë †¼žÊä™*5 Í{«2yæÚKÍ ð*Tæ¼EïXÂ؇9oZja:äETæ¼3o„g”ÌyZùöC±¿sÞ†ꃋC^DuÎÛñÅBN:äòUç¼æâ´[‚yÓœ7‚ïüIIm!Õœ76Ô½5Ô>WÍyÃúcÿ÷aàÿasÞÈKÍ`Íï…cg ¨ê¬ë Æ…›/À¯VÍú·(Ú |âìœ7£ŽzºêP›õ ¿~j­BmÖu sÔô¥¿6çMUK»1~µ9oÁQæÍ ?¯6ë¨h l7¸>šõ8BD¥~Ó°sÞdŒŽë¬AžA³DZ]?sØ9o‚ï¡Ë Öúâ—ÔX1ŽÃâ—Tÿ7¡=±=óè%öJùyM~ i‰ÿŠ‚§.~ M.ÀõÑä—t ÔO5±»‡Œzò‚0®|ÊËÏFS¿„¤ÔT0rö4õKˆGáp ž%©_BR4Q]kÇsÞÄŠVe€F¹FΛ6ä&9rr4õ^I yA] ±9o4Âø<`Þ"ù\¨ʧ'ŒC$ŸKrˆ¤þ¶œ7Þö)qÓ±¿9où 9ýE°¿©::êvœf¼dŒXÈgiÆKj)W ìƒ-~ Þ厫j÷ÛÒ{Eïw=¾óÀ²¥÷ŠÚMǧõ'mé½b½ÈYö5¤öÑ{õ¢Ø±KïbÅg‰:ÜKì£÷ œÈ³üžk ‹|QAìªÇ‰RcÓaÙªÇip–œw.ÐȵUƒú´Ç7¹¡¶ô^Ñ›<ªÆ³-½×^4ÍÚ¸ûÏر°øfhà»~`yaKíN»{ÕXù‰†XýÕ‡n¥]ûõÛ@bìÄ.Þ¢yÜž °±ßó;t÷‰?¶öóvr\ .ߨï×Ù^‚÷ÑÚo¥¶o8Ôlýú=Óaß4úì7-Ü[Æþ~öŽ;äPŒt>\oHlwí7+oHmØßµßjíd(ŽÃÚo%¿©´ m¬y+ÚyªS°±æ«w+xØÚXó66¹|³ñá+WíG¨]·‘ß7®µ©± ù}ëTrÍ 9šõ5‡mû`‰-\cœã‘ºjÆp_¼AØ›#².t£1Š{ˆ³ÞÔ«FcNãžµ´RòzÍ`ÞRïµõÚßÖ±3V¸îÇæ"ëq‚¥xîÞeªOìª(üÔãê†ýͺ东X¨á·¬Çq®º‹4-ëq¼žÖñÜYõ8æUSÇ7õ^öëzÀ5™z¯Ç™]u" öf꽪o¸3ŠØ¬£Úð@Ͼ¬ÇQ®9asÄfý[Û±Y·hVÆAÁÃÖ²G¸W†b²n±qÅ‚©e=«V,¼Ñ-ý„7Ö»C¥Ÿð)FŒïÔT·ôÄÈÑ‚÷¨ô¦Èm–q.K?aÒQ="€[gºt±+o°öaùwÃýA¿-½vÆ•c€Æ‡|ï¡…qåãØ`ÔRxK›FzŽAÎGŽ;"èÙÅ/9ãö†9‰hPd–õoè;I§Ä9¼/lò•…µŽq»§¬É,¼âxóÚÒ{í,¥.©aRïµjH¹Û§Þk×â•L-`.Rï•Õ:ª†íÎýv| k-"ðÌÍæ~;¦³ÖÕA=ƒyK-P«u8ÇÞW»¨“þ‘—[± óÔé‘‚EóÔéµò-¤5ƒæsÞF+ü>ÂZsI½âRçNÈË4Ϻ|mµ.ücÍS_Ù|Ó.̱/}åV×cbiTݨ©°Ô{Õ›Ü;¾SïuD©µ/5ü‹§0kø-FöÁüË«£Ö®Ã9Y—ßÉk]>ìÍÐ¥ €|å¾%¶4¸`qÅú¾µ öEÌy“î:žü’/ÓÆŸúþá—lÚ…X¦'¿DiÓn`×½dóÛ¶Ë«Ö^ Ö¤7Y5ÛZ°Oõ¦«¼xb ¨wòö©ï.^:è+çíG}÷UcŽ}H¾r«þ ÞÇÞÓ'SUêÝ^›|eÔ̸° ØÉŸüpoXìäOªDíÜ=õK”êÛ©V»§?Ž6•'?ޏû_ÙûäOkÝžx™Þ“¯¼¹ƒWl,râŽ;µÅA~í‹+üK‹ÿûÈAö¬Çņ̃õÔ/ièÉréÛÚ¤îL]g è©_ÒX*| <õKZÍ_¨ ì¯gB©*üÏzœ0Þ¬_èCÖã]Ÿ ¿Ä³'Zߊ¥å5»iöEÖãøÐM»°²ç«ÿo€WáYcµDM±]Íz†Â8°8f–õ cÓ.Ì[Öã“4ê¼á8ĪgˆÇ9Îz­ñ3ÅX¦g=ŽxÔ³Ç,ëqd3oü/œ—½Òã>Îzé^cmŽ¿MV ¬®Z‚Øå·Xk*6ëBÛó8Ī;x>£²ç$]>žQ2óÝòod»ë”yòKuÝÏï< `Çú^øã8d=Ž ­ë¿…Y#­o°p>d=«¾ÀÚú^Ðs|­‡²‡ïòñÉÜ`a²g„Ö>@\Ù—Þ«ôâ'ï×¥¯<еã[ÄSïÕ‘«F§4Ü=³G¥|³”ñŒÊz¥¢ÁvŒ̅꯳DbŽžõ8b›³ºŒ™¯5ùb.â? lò{޳‡}×.|»íSG…ûX;žÕYãWŸL3[÷’zV£v©Ûò[¬Zíe|³ç$O?~²g˜ëã7 ëq†öç³Ï~ÖQÕ{jÖã zq?ó©C?4ŠSô{ Ä}éÐ7*<<ðísŸûM$PËàxM`GbË>¦²=u±©êà»Û=u±­ð•sÂîS[¸èé:AœË}ê+oârŽÚ!îŸy{¾#úïy+ï–ôÞÔÊÕõz¯EÏf·2^è9FÕÏÝ“_ÒZX©G‡x‰'¿¤ä’.,¼c—Þ«·Zçñj_z¯a5Zžü’>È ßóÉ/éj½6ìC¬¼^ÑMêÀµŒä—PÛi„uÀ&/h”ï…PGlò‚¸Þí ´£-¿ŽÂu/çz´å×±ãx3`%kKŠçM9«£Mž¹T§ò ˆ6óÇùÊâðm‰6óÇÞÄß&âˆ]~%þ ûГg^õĿѓg^¹<àm=yæ½ä7GìXØâq^‡‘õ8;,zIFÖã´^4ÍÈá»]—ÇI‰Wßå¤O¬­ñ­ùÁþúÒßAlGÿÂè3s¬ù¢?¸~iú>h+z6t¿ŽžØ¾¼¼´‹ã@³ŽªQÑ’éŽãþ8FR="Àw2Ò‡{Ñjï oœ IíþŠÛÕôžäм^¤ŸpkUãî–>±ž¹ºâi!w{ê›u£ô—‘3#ç-J--ÈûǘóæVêEï\1(kKû0ð=cdköK8ý/bÈêþ6RŒå5[±pçŠä—Hß´KØ®,ýêMî û»ø%›\Þ¹’_¢mÓ.äÑcÅKÄ‚øüÆ2`3^‚þó|Ê]À].ã%,…;.ùãXú%nØ1ßåCu¦C!ï:–GbÍq_h~ßp0ì¤xÁ]YóýæpFÛ*pŽUÓSÎõSj¸´ké­ÔZÙx_W_˜%W‡:ô¡K²c®Î±$,õ'ÿˆøŸ|¡;léO=±/É£…]üIB^¼ ¾lñ^áM¦ÿ:ê ÇŸÞ+!/>û°ô^A»é,ÃþN,½×Š=šµ³ô^{Z–AíY,½WΞ}ÇÄ6Ö“^ôÁcÕã WÂQ–âÄö…eÀÚ€˜B¬zóÂ×@ÝÅðÅ{ Ôf=±ð5o àUĪDZr_/¾;±êq*‡³1ÔÇÆªÇñÂoΈõ_ØÞK»ñ«Ÿ[î»êq¬ðÌ¿lW¶ÿ"¼¯¯z+oHR¼+ÇgÞð Iè1Áû9>å#€ãñÑW.zä9ƪǩÚMŒ^õk¿•·Å>|ö›”÷1pÇcé—X‰UðŠÏ>.l‰ÜC¡'vÍ›^Û}ÈOìš·ây®ý>ÇvÍ[á¯ë]êýÄ®yãÊA¾¿!ìš·Ó¥›÷‰Íyãªív§·žX[üõ’«#A¬ïkåNÎ?ã˜ÅÂÖìøw½›|®±á<ŒYòK¬m8OÖoòKŒJ|]ámz`}ñí¥î!ìCúãhÝóM›þ8NµÝ{éĉÍú€M®n`ÓǤæÉ€›`sÞxÓ®À¼¥?޵º&GéoÖ(—=õoV“ X±µ¿¶8†ãñŒùä…ÇÛØXØ¢?îo‘“±˜úÒîGlúy9SµÌÛòÇa){³á7`ùãP=£î2%'6ù“msžœQYó¥'ö7¾xFe=޶¶ÑElÖuh·Q~[ò^iÃÄ}œõ8ìåŽh¿CYÃRû@ŠØô£¨ujgÔŠ—ôÊ—£ŽØä+G­Y>ÁM±ºß <lòÌÕ6¼Aøfe¼dlxx÷PÆK>1äÿµ²‡tÃQÄ®ú«ÜPßôÇKÿ윷.žgés¼ýë7‹aÒ§oïpFéªë¨µ}µÉŸô^ù}x¦¦?Noõ›u¿ºžXË>Ôz½òmIšX<Òçø•›D°ÎlÝ'˽Z¡]ûÜ'¹rF`íd¼ä«¨ýïð2^Ò½ÞwŒáÜÉxIg«í:Ì[ÆKz/ï–/šÙÂæ}ÒKýÛÑ_ød¼¤U~µréƒÿòXU&‡¼OF½kÜékÿ= Ò/Éêûϳ¬Ç ªóFëÁé—Ï•žgYó‰5|¯|ãd=Ž÷¢ÿ«À¡?°yŸ´º‡¾ÉüŸë´½ëüØ¥‹ůÎï\µ›¼WÖŠ½k/Øä½’am ßíØþ{VIO,zž6C÷ú·;ãÊÇ¶Ö ÞëElÖ ñuÅÀf}€/>æã~Â%Fj÷̉M¾r×^j*[ú`ŒŸÎ1˜·Hÿ*~–§G`—@áÎ4а:°éЭjGßkwÎ/Mú"nò"÷¸ýÍûdPõÄ‚yëYcTjw>¬Ù?ìzHY;û:åc÷õ-ç“ù®Ír`eï_x>éþ6Ýûžsl8fö«Ý̧õÞ;ðÄÞµÒl콯uv_¿½·å™Gµ]‡Þ÷ý=Ç·´Kûq8Ç÷_?°cý¶^Æ÷®otÒ~õ÷«Æ|aeyüÕºº€u–þ8_wðOÍ«)þ6K-qÈ…ž×°Àß6ýq¢u/œ^Ø›ýŠ—œFJ «vÕB»”zæ˜?—4#6ýqPÛíúÜÀ˜¥?Îq¹qä™GÁŽé?„Zã_'Üo4}ŽÏ…–›"vúãt=Ýq¦1«Ó'h(ö·…}AÓ—Ö,CÏ2`“§ÿPÁ~³:M?ªã)mˆ½Ëþ÷,ÞU<…qò¹ Ý‘~TëaüóÐß1ë»·CöËbbaÓß´Î…ÒîÔ¡?ÖÛ}ø¸b2þ¶©CÏ:‘ü}Å\Ø9o>€ÇÄÇ÷ ¾C=ý„¿‚e Ë­ŒÙÜoMÛ=}U;÷[GMI>)'°‡xî7Hø]sL8<÷›lõ×ïï€Îs¿ÑPyÆ®ºü–Ë镬ôŒ•ô^{ÆNÿò¢ÝéÀÎþüÛüÂö­Î?bcy lô×ïï–.Ó?àëNû…€þT= PSýÀNÿ€À\~Õ :°Ó?@6ãΟ<°Ó?€ð°ÅNÿWjÏØép|6Ç3Öþ“"€üüÛæûÍ;Ñ3væqŽo€?bµå۴ǹÈx‰i‹g,elp§ß›z Cì›u‹¨q<°YG5vðˆÍw€ï4Ê;ÏÉ1ì»(âÖçÚ_‡×OläÛ¿ `õ^nòßS¡çªÕ oýõ±°Ø~iÖßÈ$ô ;yAü]@ñ›|å(ûBï©ê;ùÊÌe¿m°“¯lw‚Sb°Ó? sÏØéÀ¾Ñ>/X¿°>Êy¦†ófÓ? {åЬOÿNÏØ9oîÅsƒþ4¬þ6ÜC>ýän¢üË6Æìô WíNÿ}û‚M=s÷þŒþc¸=ÙôP/ß¡ŠéиéãÚ‰Y·8¶ûöPÌýfÕßT ò"=&Äs ߨàô›ºØo1yxPü¸«Õ8°“‡ç­pz±äÀN^D/õY®pžEò•¹ü¶OYÇ6užFáæËÝNð¿ça>õ£F!Gìä™KTžy@©Mž9WŽ7+äê¨äb—³ ÆŒ'Ç»Ô3œÜÀNžùqÇß6î’]'vÕã”{ê Áq˜<óã¡T¸ãÎØ®ÿv_ú} °™3ÙèÂ8d¼äL}â?P_ù·ƒVà­P_|åšë¸§sOlò•{åÝÃd'6óo£ê{‚‡×M½ F^°§žù7/<¥ë¡gþM ÷K¢#6užxSK ßcJ~ÉiWùQ0É/Q9.¢ˆÍyku|Î>J~É)rQó°&“_2vü†õü’¢3}©ØnæM[¯ë¬`55ÂjmµbSWm§™œJ~ µ _rjD+oZë°AW‚)ù%ÇÜ×ÚuàGÑÒ/©~¬= 'AÉ/£pëŽsæ"ù%£zT*Ô¡Øœ7ÔG<û 9VJ~ ÅØðð·éÏZÚû"õKvü>¨Ñ=°ÉSp³Z'a0fÉ ÂñßÜ™Är[ÚX·q×ç:CaK sIq· ?±´´±FÁBü—ø“‚eÄ~òTò Æ!ù%†Þ—'öÎ3?°ºmŸ1óÀ>ØŠÛ—ñå2¾¾âàE¯ 4ölüj· ˆm“Ìûäq ¡'ËWþªŸ?°}Õ‚?Õ˜Xú¹&+vüZëjÀÓ¥Ô/!ÆÎw7ê…Zû ¿Ú­û-õKví–ý–õ8T}£6Øøéó : LY³ó­Ø¾ú@Z––,=hÉرüÆýA/èÀ¦/mßü6x;‘.ßõÍÙW°é·È]Ü«™li”×úã2+®¼©]Þ Ó|wä¹¾uN¡^š3^ò51…{~LÝÐ^ãðöç‘:†^ÞoÇ- ú;FÆÚZ)ÌñHÝКóéï!S7ô¸{JÑ.‡ùîŽUU°óÝ­­Ôut+c–ïî(¹Ž.‚ý]:OÅÃ`ôíòªË/9÷qON?aâÂw)š»ôÌ«žXìÃø¥}ÎXϼ| ‹žp™SŸ«j[j|0/}..œ=%Ø›¼ô¹ŠÆqUA¬/ÍZczAÌK‡¾x;–öS‹p¤g HõwBÝ–ôö '¸¡,é •/×qÞ$ýºÖqÀu–ú%Çur<÷WÓ_zÃËÄïEê—D/íJ€ö§~‰›Ö9†xËâþŽÜå+lê—¿¢è`hnñ_=NáÖi‡qÐUß-•s q Îzò ëØßÔ ª:.r·Þ>±©óDÕ×5IX—^W-$œ·Ô/Ùyé Þ§~‰hÅÖß–>™ìUßâžlé“Ù«n]¶äáñFó°ÃYm©óT=ó„KƇªñ>N?aÙè٠߈ÓOXdÇŸ„}‘~Â26žneÒß46¼mÃv“gîUKfàYm‹g^õðÙϼî!ë0¾xæå=$j0¾©_2¢zƒßøMÞ«Ô³DqÏ/?᪡"¢øÛ>|åzŸˆM¾²·zŸ,}H¾²VMyHN?áhÑ&ää—WŽaÃï[òK¸—û¯ ¾/?áéÀ=”ñ’ŸÔ8òòî­ú·à½/ã%TϨãI†¿-ùÊZ¿YˆÍyµ¿VÆÁ–Çu=Kð^~ÂDµFóYœ~ÂÔêGa=Hê—P“Ç»†¤~Iת5ÕaýJÆKºÔs5¬dù cNÎ4Ä@dù SÑ_§1sIýˆœoiB¬.m–¢1~Yú%-Š®»@|G–Ÿ0Ãub!Þ'Yc¸çO,ŽCÖãXxùmBÐ߬Çù¼Çokæ-ëqúØÔ¬À@úGW­|/ò›Ò'’¿¹€téƒyÞL~µ¤ŸpG? ЖŸØ©_bÖ8OuÀ8ä»»—v‹@lêµò6ý,É?lúpåÜËÜ,-')¹[Yñ’ÑÐ#‚¾Ëk¯q ÊxTùm¸vhƹ¤r}" ¾#4ã\Ž<…óÒ;õš”Øë×ÚYØÉ{Ucô|ÔÖ±¿–ñ³ðÿ…8—¤~Éñ~)^’æ0o©_â$W.š2&_¹«¡FÍqÌÂo=±…Oà:O2æ¼ýEô‰?¥/'WønŒ18È¡ÈàœcÈûŸÏ)Ãvg|’u æ ®ß‘|e䲎³LÆw$_9ÞgŽ*°¿“¯üå½°_Rk W»Ôur‚@ÃJxò•]‹æËñÜ„vyÆ•›)ê¸æM劗( a]Ø{øíÄŽùÛØ1V,Z=ÂsÞŽ{IÁ¢Ž–pÎuÔ‡¡&ˆ¼WB½ F¬MŽl'Ÿ”JX¿<çm4Ãv¿êvòÌ»@|’OÙ8KR¿d˜cF9×S¿¤xŽqÕ`™óæã¯{Sæ~;úëˆ-w™óÖð¬–3äƒíÎyxþXê0f¢¹ÖaŽå,mÅßfS›epÑnbÃþú俇 Po ëWæ¼5ê¸Ö‡ãKç¼uäôžõY ¥(:ëŽk5b™¯!:ëà‚uå|î–9'vÖP,XIØ©;Ó-°ÑðŒºâ%çÀ7\ݱšZå;¯Þó¢–ZÒž±žZ%}`°‘Z…Z±ÖR+â ¶/ŽVÌïÕwV'¨ÁÓ>už¢M¨Þ!¨}é<žyCž¹^õ8–©ði8ÓzÕãœb“•#Û –@{ò^‘{{Ú®‚6¬vI>-¼[N9àÎhÏ{Iä§jô쬣’ÆèaëØî¬£b+üÔãy)€Í:*ïÈ{<8”æ¼²³|ø´JsÞ:¾³- O윷ncf o=½êqNÍà&ÒDÛå‰íXBý¥Yÿ&T°Œ<%M­4Å1kÈ9Ušºjæ£CÜȰ¿sÞz/sÑFÇq˜óvta»È­Ó1ç­áÝÞOþ$´;ú¾Ïÿ1x3ž!Š «X—äçýlvî7£âó:°Ý¹ßš0®‡æp·×1÷[kÀñö“ÞŠØyNŽÞË\˜`æ99¸ÌEWÂ1›ó¦ ßù«l ÛóV¾…§í5¼ý•SÇPçX8½Ê³>@°†ÔÏ'bg}@ùÆÆ7a'ŸkTO,AîŒrÖ kÉ-Š@ ˆrò¹6žÜ$e]¼« ’kK¤z9@n\Sï•Ã1âw+Õ;ã\ÖAÿì¤öÌÛòÇaàêI½i·X±¦?Ž7¨¿ÐSþš»tCÏTq€MÞ«”:á†1RMÛÜ=Þè*éÿfåm:0f®2yAä~»!N 2yAkÚŽkãw¬mþ6_¢¨ù7¸GÉâ>mÉ5ëÒ{ÝqA¯Muñ‚D*¯ÆAÓ·Oª—ᙪËg¥hìŸú€M>W+ú¢u­š|®î˜r¬KRÍ8 ƶcLª3>Yô Oj“bRCã¿ãn½}b—Þkåú€?:kúã4.| A=MœÖ¬æßJ»É3¯\ AµÅ3¯¹:ÔÔä—Dõ£ªç¤-ÿ€Âé¬kÖä—8Õ<:7‡Ì›F§š÷‡s2ù%&µ¿D8f™7%*ûMà=¯É/Q/ùnPS¬É/Ѫy(÷|òKŽ“¯ðKš!6yAQóþò±šü’ ?ªŽ¯/^På`Ý¢úâYÍå7˜ãä—H÷êèøÛòœ¤^½' §¦ËO¸ZSºü„»•›»lù‰MÞ+)r݇ b“÷::rÔ@§L—Ÿp+Þ)޾ºü„Ñ[”¿%¥VV»Èã¬aÒå'<±±¶°÷1“Ó3ξå'¬àé&Xªb#}ÌAcTj>À–Ÿ0®_9—?b—Ÿ0Ôë%É0¾¶ü„¸§ÔÄ@ìâ+C}–þ;ï€å=ú”R*¿mñ•=ÏûpÄ꾿çU±¿¶çWŸ¥J¥ËOæÍϼ4bcÿÛÎ+ø_ØÇO¸x´G‡<Ž-?aä6‹”»æ­ø®+澬¯yƒµçç1»æ­Ü£ÆH­¯y+>mM ±kÞ ß³·Ò®ýj·Òîš·À3µ|߬ǯßF øÊFkÞJ-íçiaû~_t´ ?±Ë·¯po)Ûë¬.þè4Œxaq†*þ¶uŸ,÷¨mß6ç­—; #7ßhÕ?ÀãÉÛ»ÞµîuÕŒâ?›€ó¶vÇF[ZŠôô†´ñÑ1lOõC6¹T_}À®w@уfjØ./l/5 ¸Fú-zyw«æbhb ·ù‹ÿ°°¶Þ8•©Øß¬ëè•éàCj©÷ê®Z4F¡ÝRï5—ºñ߬Ô{Å{ák©÷¢Õ{ Þ8–z¯aÌå]HØ^íZ©75ÄÊz_àzp"샮>ô‚Åïqê½FT®p/cæËûrÔ;"ŽY¾ßÈJÝø€7¯e=Në­ÖûC<ʲ§a]Òõ'lÖãh©G7ô˜2ùÌ›—vÃi/émSÏ‹g_Öã4ãZçñËzœVk®Š‡¸e¼¤y¯cf8féoŠZÁôí»³°‘~·õ]hP¿iYÓ¼ž¿üuËzœ&­Öz¶›:†6|{8³§m8Ó u–z¯aå·©€þŽ¥~ÉWœöï¬.¿MSó›k]G`-=z¢ôß…¦“÷µ¾Eb ¦©§°ÑuxCš¥ž‚Ô5‰~ضâ%ß¹Úó*ÌÒg囸:ÖºÍ|@Œ1j»0¾6ëMy|åšbeùîøgÄ.~Éɦ ×ÇÁÒw§=òV,ýqú¨z™âf‘¹$Ø‹_rÖÊ=ól,ýqº+?c)}wÄž±™Çi%w+Žãà+ãôŒyn^99e2ß-æÏØésœÕU“¯ü¶©óÄÛv;õ¹¼ÙŠÉSèUç©ö÷â—èq ³‹_ròi‹¦¤8®õ©»X´þŽ^ÁÞ ÎZp­sŒo§ä——ü¼~/’_½ø¬Ö£[úãi«œ'l7yARtÕ8À#Â"’V¼Eàýæmêá ¯ëA ¦Í[êáU¿Œƒ·ô5•KÀqñ–¾FU‹ùx­b?¼ ümŒ1ho“Ïõá&s´Jç¼yÔ> f½7ËþŽáð†}˜óF^¸€C F×[¤¶fÉ% >Œ÷ÔS¨Ú¥ßNÞ{ö¡r“Öº÷Ô ­^E_ôÖ…ûM­ì!rÐSð>÷Û׃ü‹ÏsܧŽaDõBO½WÕò".ýz ëËoŽVßÉçjT4㨗þN>W«õ8Ä»uš¼W£â1u<8`Þ(y¯Qü7{Àùà4ù\Ÿ2‰›V%ÌM>·rNBºñĦŽaå§~I”.lêZáÓveümÓÿ­ÑFÏ‘ð·Mž‚ZáœvÂó’¯<ŠÖêñiBìäsu«<1¬Uöä—xl8pÀ{õä—h¯ó†çº/~‰–}Üôa<ù%Ã*§¬Á7À/~É8ú\´*ûå¿ä2r.}0ˆù˜|®/O‹/þ¶›|®®UÏßä—P«Z•¨›ïcÞ'£×œ;A<Ê9ï“Èq Œ™ûÅ/¡ïÂïG+ –Ë/~ íx¤ ߼Γϥ²Ñ.¶óäs}t¿µ*‹â<ù\Æeý6¬ïvž|®Q}×›¶;ù\#ªö ò'óÐÊ}½9pNç¼µZKÐ4(\æ¼ .\Ë6ð,‘9oªv)¶;çBê:ž®Ëœ7bE.Š*ä¨\R‡Þò¹ Î%ýM[ñ[<^¦°vd¾ßk .Ûlw¾ß¢/œHÐÎóKïõ xàZYøÖ¥p©ºAüÌuÎ[xg\ËÖÛÓ»Îÿ u€®sÞ˜ùgFÀksófØß‹zó¦óœl,ÈUC°s¿ñäª …Ü—ëÜo†µ%þm±¶°Ë?Öƒõ±Øô Úî0˜7<©p:K' –ÖÓO¸±sá vØóé'|ì}PÜ/bÈ],|ÏxI£ŽíÖ›zÆKß^OÝ[ÀÆòYøÛzÙ‘ïŒsã ;ðÈú·(sqFÞ`Hd.©œë_üßÄjæß¬j ShÏßVâFÜÛ¥ümR¿›øÛ4u±­´;0:ó8æ%~6:~ç?õ8… tš«¿°½b²Ô(€eΉ]üIGþÎçÿý‡…E. Ô¬„­ú€¢‹M ºÍ‘ü’îEëš òèa´°ÈWûÔQ½ír߱ş,üÔá“Kþ¤¯"nP#–üÉʳáù–°ÅŸ•÷ÊØßäO UÎΛeýµªÙ‰÷OžW-fƽ™õ8#´ro!ïKïu£ƒŒ¼íXz¯£øp§7²çx¾•1‹Ò‡Ô µª¯LÀ{¥÷Z=¤ã™ºô^ïŸuI0o©÷Ú=*G¶ŒCêôŽZ·ˆZñÑ{-£lÀ'ˆ¥÷ê¥ŽŠ xº±ô^¥ôáäi6ç ¿¿›½×ÂI?ëÏ»ô^¥®‡†í.½×Âeeô“ˆÔ{íQù똟Ô{Ýø“I]ìH½×ÍùðIã$öìPjvVýjØÇ6uC+ÓîG7´jŸß÷ñËó& ¿ú{=°‹¯lT°†XY\áÊÛÄ&ïÕ[àÙXKŽì(üT8׬'´Ö…Ú='|`#¹¡QµV`û|¿…—zH=¦;ë‚+ßÎK‰­ÚÜðí>°³.?zõ-iøÛú|¿yõNÑ~?lúˆqÕ¦û]îÀjbËÙ§÷åb-[­õô;×çÀ&ïµr¦åþy<±9o£~‡À+ùøÖä¼õª-o¸‡(ùʪúðÝ<°ÉWæº~û€1£ÅW®:ôƒa=¤?ŽW/>e\;écZõâï '6ýßFûŠ ›þoªÇÔ“~`Ó*Š7£8®‡Œ—¨Ô³Ï~[ÆKÀD#±0ÇYs<µ@[ÑÙS 8wxê†~™”|a±Ý©ºáôn°1ã}Êþ؇«‡«æì§…ývÕ㜅Բ‰é˜e=Ž÷M v¾ß”û&ö çNúãP´öÓ=°²t;*ßð·¥ÿ›½ 6ý:6±m¨}8°y/Q¢glú›öþÜ®æ~Óö;÷Ûñâ½ÌK3Í»˜.œ;:V š[ξÔ/iZãÊ›yûJ„-ÏüÀjj,)×vaÞÔÒ›Üj özÖ–Ôøo¹§jdmÉØðÌጲ¶jKâ“~`“46£8oFK§¬U,¬K]µÁýËY[BúŒ•ŒAó¨1Gümšµ%Cž±–µ%ýÔ2É/i;,ö7} ¥Îáž÷¶r·%^Mgª÷¬-!~ÆRÖ–>÷admɋ߿œµ%åü­cæ3®|\'«Ž¬Áùë3®Ü¨ðÌϘ`-ãÕ­Æq¿¹¯˜®Õ¸2ŽCÖuPùfñÀûYÖã8›ÔX1ìãèë·qü­›Qcňƒ®žÀs<°œ5+›…ŽýófµŽêK‹nag}À¨œtºK¸XK†ôZÏkgñK¸ÔùOHl7’ƒQ8Þ ÝðßóÎýV±àUt`“ÏUs·Ÿg÷–2—_xºý~<±#¹EÛ¸ËO{`9¿Yeýö€÷|O½×Vsj5Å6óo4j;b“g^s‹¿½¥nè†Û ±ÉŸeŽ»Â}²§Þëñ½(롌CŸß·Ï§ðöÛ°”¼ÌÚ_ÈÍØ™7¥(wðžX6y¯•ÿeÑ'væ»5jm lwò^µr0¾J6yæõÐñ<ëÝ“;UO×°ÉWî^5}öÍ{É'-²Õï[Ø>ï0VÎ߯×è¿ä"¿På¯Ãz¸êqÎ;­!¿:âε<°“g>ð{ç3Â;yæ4 ¹Tt/>±zqTý~ŸŒS«}vÖ¿}i$,lÏ›;ï“] g:î6è'vΛt¨/ŒSs‹îØ‘÷IÔ{õnðÛFÖxáªÉ¸•NœØ¹ßº~Ô§’æ;çÍ£èœÒvxb³>çÍN½Aìâ—À=ÕÎ+ŽCêôJ+ܯqçÓØÔéí„%)±óûfÈ‹?íj Çl~ß¼®ÉÖqËú¾ Ö(ô»U׉íK½x}ßY÷’ªó/¾o2’_õøËY-©g>j¥0|$õÌ»ã ë!ýq~íuN¬¥Ç|[®²8£–Þkœq¾7±ÝÌw› ®8®³¥÷Šw§UÁö…E¿*–ÖŠ. ~[ô£cˆ>ƒ~/µ;±¼×h”“^ã°ø%´dN s`2ÿ޼‡zú oêê!Ž÷êôn\sù iv`#ó"\ãÊ ê~‰¢Î^#‚1K~IÑó“#‹Ø¥«ëÌÏZ3û誡Î^ ÜöÑUC=Æk7ÙsgÎ:Küv›þÒômïQö“Ô8»|×k»àå{`ãë!Ï’þ…Ýhò!vñ‚Ê:ëà}`/È[Õäƒ{µ/^PÉ“}R·ØäIÉ-¯M3_¼ -<&¨U>°‹¤…Ç4ð­ç‹T|‡¶›óF%o:\±ÝÅ ª:p˜—î©÷Ú©ä»?´ ?lÎQ=ðžz¯-ªjÇ÷fê½6-9K!ÈôXqåªEWÞ¼©÷ÚÆÆËßdÉ/‰÷{y“%¿$´æ¹Œoêªý}æêzòK“v…_û‚:§W½TŸmÃv%½êeÃ5Ù5}ʹ.£´›ù7«¼ †k§{¶[çÂþ¶äáQáA·þ{–ý$'²è†ò].öÄ.ßõrFÞÈ€]¾ëåŒâs‘ü’Q5ãybDÉë¼ F®e=ɨýuX¿YC½¶ >x6yxU•¥Áz äái9£óÒDKÇ0*¾4’‡Wy6…‡GÉ/iQî%VöEòKš–ï¦>í¹%'– ¿zƒåÿL‘Ž?Û`“ÏÕJN˜í^‹x`óХƫïZÖ§ cLÖä»üèÄ&ŸKê¹Nðæ¥ä—Iý¾Áwž’_²óQ`àkPòKÜ«/¶KK±œgyHJ~ɱÊÚ œ‹ä—l¾› ¾g6ù\l…£ÕcHécTyÅ 3rj§%Oló €8-±¯>l|*ð·-žÂÆ÷Þ"”ü§Qj¹H›úÊßš’ wZZú%ßÅ»,¬3É:áoïËÆáŠ—ÄYè0*Æ!õKŽ—Í C,ž–~I¯>ñ„ß·¥_¢»<:ö׳ö¬Å36R§ê.bÎ4}Äšø36õ'«þþ6M *¹Å 6}û¬êÖUlÖ “<æ°)ù%Rõ¹ìyuÂARk£ çNjéùÈ›ßk]gÞTiØs»3oVÖ~ß,}2·ãëÁ¦þ$GÑ#e…7:%G`ãóŠû"ý„¿Hû_9wl7ëß´è” Ã³Ä²þM‹Wç`ˆGQú 7.>Wƒðüµ™ï6᚟'ìïÔÃã¾óyÅþN=…^µ¼FXgÉ/1-9ÖySZü’ªeKånŸü’N­æýñ›ú%ÞK½4”oœØ¹ß¤ÍÙÑð®œz¯Ý¬j)ŽÃÊwWîԹؙ8š-¹fÆ·“ûò$,1óVæ"ýÅJÌü.û|`#󃫎!ç$SÙoÇQs”yé’?>~bÇÊH†˜EúdJÕ‰ìøôÉ´’“è÷’H]µ¶ñÜm0¾aùí®z™ ÷qxꉕvÑ›ºj•Öx £-^”ß6 Þ7ZÏ|l9×{òh3ß-£|7› lwæMAè&5 °3oz.úòÛû÷Ìož¿mà8Ì{ qùÆv lÖåkòQrÊ8L½Wç -<…‘z¯Ò 7´9ÄGŸçä— ×§Ýµ%#õK\;Þûú0lw~ßú·ØYb ¸ã£ÏýTx¤ê»ìÜoÚï©üÔìÜoô}ï[ã øÛ¦žB·¢“ÞT±©Ó«Eÿ¡1ãoKž‚TfqìC$G¶Ô7‚8ÌHý’›§r}`9Ø/)º_rzüa»ó>Ù½h7bh7õ^¹GßûõùÄ.>WÃñý°þ°”zÐÛî2Õ'vÝKà{|ü6ä÷Ô{¥šÉÇ'OqkêhçW+ü^d=G+~Ø cx`-µKµjJØ:ë:>ü诵Þï6uCÉ ÷«|l~ߌ ¯Gƒv-ù\¨Çtý68Òç8‹æ=½fïk‡ÛŒsYŽoÝñÛÓ#ÂË80œ¿ÜV> #ö+ß½°Éç¢Rç>:ä9ý„;•ší!äônQ<݆Bm5§Ÿðñ^,5æ êÜ9ý„lñêdˆ]q[¾}¥Þÿô lú-jßprîoiN?áV9.'6ù\Rør kubiaùAOìÀŽ…mUO æ¢æ-*g±²°…߇5ñÜ×¼Ý$œ÷5o< g¯ôÁ—ïd]g„Ø5o%o:@£ñ¤-lYg¼N?áÍ÷Ç!ý„Ûèu·ƒSïµµ¢ùRòoœüñÂÙcÅõ›üáâiÌ؇Ô{•S?æä—œJUŸ ·ônUsëøòc»9o­jMaí$'¿$¬îc¬/䑾´Z5Ø:AGúÒrṎñóH§ |,§çnõv\gcΛW?lÆ\'¿Ä{]¿Šó6æ¼™i]¿ÀMâ1ï%_ê¿yS³y/±VÛ5¸Órú «ç—ÕÜÂÎyS©|Z†;-§Ÿ°RÑBb†x5§ŸðW¬øoÌbs¿Eáó€¼§Ÿ°èN›æ8ý„…6ãÛà,I?aik‚íN~I»Gï¼Pìä—´êK[±¿äŒ –ºE5‡‹_ßæŠ_\*èï¥_§/¸V,Ìñ¥_âÇ*þCÖJù?³à®Ô±n°òŸ4¬š$XSÁW=θU›¸|Õãœ,ºéŽYΛîâf|cqà ç‰ñû–ú%j]Øž¸ª_RÛóv|÷ªÞ6ŽÃUsýÈfí`&¯iÉ5«•>ÌyóèUw8¬sÞ„ WB¿±ºæm£}nØ_¿°ÿº®zœ30,ú¸&¯zœ3(ËÏûâªÇ9ƒœ%gYÇ̦žyHýmº>lSwF›m´…°¿üŸŒtyÒ!â«GÏúØ:å·M'«y^åÒîÔyÕûRQ·Žmê<5îôÜîÔy:îLR±pžùäá .úŠùcÎz(ºÞê1±/'ò`>°Ë?ÀÆ“ÆûÒy]wìCêOrõc­ØåñŒ]þ/ß‚]þ¶ñÜ…õëË?@ùË?@ª®;îùH¾roU×t“8–Γ>r-9–ÎS`ÞÿÔElÖã|kêüÄJæ7¿â0caqf¼¤}{;ÚÅß6už¤SÅ*öaé ¤p"¿äüvò'{÷êíܰ¿“?yÜ+ vgO–Ÿ°ÕÜÖ }ø“Zûó–~ÂÔuÔq€õKÉŸt­íâ:£Œ+ þ$j¸ Ir›ËqÜ„–_‡UÎ)ãoK½ Ž çû›¾´TîP7.4ó¦ZùžP,é'Ü¢òH©A»ã“7­¹$ˆUÈX:¥¿£PFúÒn4‹°PÆ<'¥—}Aƒ›ùîV¸‹„ot‹?Y¾Ç€õ›ü’ âSñeƒ³°K/¨j!_N’_b­òiÏõä—ȈÊ+Æþ&¿Ä«&qÁ&OÁ Ïœ‹-É/ÑVîžu……9¿Çc£ÇãÀÉŸÜx©7ˆ] O½ ñM¢ ‡õËé»þý&£ÅAFìòÖÚ.a²>à[«‡—ç9Œ™´UÜáÎÕjEV> ÔØ|åšv¾dÃ÷$x_ˆÌû$KÇ{_oxN¦Þk4Áú¡ E'W¼$N^‡vjÀË/9½Š:ÞiÆE,ë’òHÛí1I?áøNê®vñ,‘¼—hñ¹jâ}¢“§0£.U(ð*$ëqL:r"u ìäOÞü³Fz%ß=lÆ•Û×:›XêŠ}Èøä7o;¹–ÈÔ/12Ä¢ë©;ßè8fqæckWü¡ðiãô$Äqðkíh‡õß2 ›q.ôKŠS‹ãžk–+^âß&%'êR‰M}e·ŽN ÇvgÝ"¹ò=ïJ'6uÕš`µçT’_Ba÷9ö$‚}¼4䆶Žó–üÿÖxžNëï›<óÆâöôšlú¿yÑn:fû³]…ú“³º>rÕ㜦ÝÇWOÛ`X;žuT gµž! _ŸûM¾ë(½|o$>y¯êÀAÖ³fÆÁ9yƒ½z;Ì…KÖ·0öá£øù‡÷IR¨‡<¹–À•¬Çéß‹jÌq¸ÛØœ·gÉéq <ñÔUÓ†ëϾŒ—´ï8âlW ´Ý$ù%ÑÙ°ÝœiYú%RÆÁÆÀ>Œ+†ç¸Î>Œ©?,/íG)íâúMœOìÿk.øgKƒÊú%<ד_rÛ0#}•‡'©_r’µ Ý|e¹ôKNÏGÂ}ñ¥‹2±zé—ÈÉ9ŵ~|¹°Ë×(° ÛÍï[wümÔƒ¬mêô~( {òáœÔ6ù“挿­ hÆiÆKï}zÊTcæ»Ûè™ýe€ç¤}/ììC0ŽÃòÉ´^xº†ýMýIÕÂ9eàŽkO¾2o¸‹ £¥¿ä"ûJ©ÁõpñKN¿qønêùy¼khòKÁ™z"€åô;(µF_ï¬ÕùÏ܈åŽ8šÁ\¤~ „ÍTuÃqH;òðŒ€­}é`€žÂÉ­ƒsGS¿¤;Ë·NS¿¤kñH󜥾êý«Ÿ%äܕүcãoŠ1h¥‘±íêÇŠ^$šþ8­ÜÓC°’¹Ðò&cÝ%M}Þ` °ùPkÏØùî&/5bV;ßoÞ™ Û˜÷’ãÛà‹c6zÞ vñTèCÖãs­OqZM½×ÐÁOñIÍxÉhOqZÍx‰ÖÚ³WÖŒ—xÕ/qOy/Ѫ?Jæ»[:ñs»©ª¼ÁB»Ü2†W×ï€ø™rO}Ùxˆ#vò^£—)ˆ)O ÚÌۀضrÖ¿íÆr_zÅK®3¾Ø‡ù°ßá†ãË3®,ã)®¬É/ñ¾èìiòK\½jÉ€æ·J[i…S†ÜPMýßh»•9–ÔÙøÕ)p¿Tæ9ù•KúÓqn’Êü¾u«|‚Žë!ýq"l“‡„ñM¡§\¨ÊäO·êêq‚sœz¯½»>c“Ï¥êX]>™5oZ±«>`ã‡R°9oU½è§ª¦Øðªã‚烦Uå1¯-Õ©Ô«RñÏRÕünn|•b§N¯Rñþáû’>±ÉŸüÎÕ-,á˜ÍïÛ- 4V»°~³§.ߨzƒjÓ¯C¹Ôó€ø¯Úü¾õVs¡ÃÓŒ—|´þ'vÅ•‹÷ÜC–ùª9ÖqOµ¬[4Úäõ°][ßM®g*Ì›yæy«wJÃ}lóûvÌgÍ_C}æqÔhÔ>Àûü¾µaµCQ§ôóÙø·@Þ_S¿Ä¤jê`ÎG}~ßšSýmP—ô-©w˜†ß7O½ ^óN.Øn¾»‰«ö ÄÌÕg¾›FÉûu‡HO¬7 ð*4õKŽ)ªyHÈ…jê—l|íá76õKàñžžÜ°v–~É(y²Ïuç›ù7*š[C€Ÿª±üÊÚ×dÌún—²A„³:fþí4•,ã€÷³ä—ŒQ4ù(ðü’^5‹¼’Ï•?ïöÕdžÜííâ—ĹÎPÛ‚ÔjXÆK:Í bÐï³6õ¹ŽM[òYø~³ôÇùÒ ^ßêP'a©÷j£äP:êìYK¿E‘¢ñá‚íÎïSáu\“vÕãèY,_r_à?`'²{+ù!ƒsÝúäOžªE‹´û­Ï|À— øK°Ö튗œÆTrI îvÅKŽsgPÑ̻Ƕ­/Ó²vZíRë’q£Ú߮؇Ô!˜·8S }˜ïîaŒñ„عßTµž“„s™©œôF°ôÇé"µ6jŒæ~£ˆ²ß¢`éÒí¸H;bçûí«€â/v|#NQÉ5ôÄ2’¬/ó6hJå9Én¥Àï³Å/ZÎ8¾ž@_s1–†ì‹Ô{MZ9Ïàžjé'l> } íªÇ‘SªÌ…ÀÖÆŒOòpÜoÇÉ s1f}€š×¼?äç-õ^)¢œQ¨…o©÷ú Ù|ësÁÑÒOøKÿ÷‹ÿsqÕãœqåëî\–z¯­jc5ÔóÔ{½ÄK:Ä–Ÿ0—»QsœãÔ{U.¼«Þ±óý¦V8Ó ãQ–z¯aå>Ùî¿–z¯ WÞÛ•ôÎ.~‹­|SïuXá&5†xª¥ÞkãÂUkJ89oVîààc/éX'gªäW6Y>Ðu= î­e¼d¸aÝ;h,YÆK:z¯ךyËz†ÚM û›ïîy‘8C·XA?쇗|7EÓóœñ·Ñpl7uz]J»¨KeY#:P[H 4,ëqχch r¬–õ8¥sî–~Âõ'N>±sÞØ¼ê1n‡éÒW.žXaß´Œ—(Ö·Ø?Ã\’e¼„¬£f‘1Ô®[ÆK:ê<•¼žé<'½GÑÆ ðг+^b§Vr;JÝ.~É© \*?)«°ÎlÎ!îüÜà[æM¹!gDbé#½p;:r\Ì2Ó:AÎ=ð@,õ^ÉJ¾{4Æß&3Þ€ãbg *¬«ç"à(æÑyÀ¼Ù¬£ºÕÍd\°¿³Ǿ߱K$؇™ï¶o¯ÙÌY:è&™O^oø%w‹÷Û'¶Á\èqOÅsÒg]‡‘ŽÀýi{bsÞLPK¤NìÜoDÕ+Žñ|ðŒOúˆ¢QÜsÍ÷EGM¨c=`-Ï–’k.ã;ÏÉ£Õ¢…ÔÛaW=ŽŸZ˜so 8e“§ÀßyZK°~“_RÞ8rìM<'cÞ' ïÕrÊ~Ào‹ÔQàËÉ÷[da§žùíPœœ†Óç °“§ü9uë;y Ás?µ…ð¬Îzú®qœXÈwÛªÇéECÅЛÑ2^ò‰q~i‡t8=ã%ÇÁÌEïJ °3oÊqíXlêz ÿáËßta3®Œú\gÉŒƒ§Þ«QÑi.؇ùî¶QÖ:KÁj¶ëQÆ—k‹‹e¿ŽYòÌp.}½M>Wí1ìúï)m—y^.ú0Ü$ï}ï=,ß »x 5¶=àÍà=ó8\s· ïcÏx‰U½í£]¬d»…¿þÅ Zؼ—Ä&f>°¿óûÆ£è½2ÖuxÏw@ÕÅ>žøÛòýfUSã´Nùî&¯±mümÉ/‘šûŒ¿-ù%ÔKíÃ`ˆGyú O§û­ðl<ý„Y _xÊDá:K?aUÈãœåµÀƒöÔ{mo†£]Æ5I3ÓháŸrN íæÉ/ù Oœñ·Íý6°¾ÿÙÀvG[}À3*pëþÿ…][²$©û¾³—éüÂûߨ…ƒ©S)åDÍt´#›â,Kóê—¨°G¼!gé—׿ĞómpÏKìÕU{ñž€ZYxɺzÇÂÜ)~‰kñ0äWÏò^{b’ŽhvN¹ãt^ð§\=sA²x¾éÍwÇßû¡ôK¾•¾ö3èßë“ãe©WïmïÃ6h}wö¿ågé—´` ÁÀ½ºð’lœÇÁººYú%ëÎ%· ëê`O½þ8JuN»¾FÁ~€—ÌÂK|PÞiLlCá% l}Úu_³ø%M…µÛW¿ä›2Þó…ÓŽžÂÃgûâÊPï4íäqZsÿûwO'aº‚õzóòKO•€¼Þ´¬ú òÒXü,¼ä!V}c±½¥÷ª6Ú[õ8 kwúwšíÆžú€¯bãßXÇ6T}ÀlÍûO¯óí¥ÎîîÅdÞ`ünù>i‡ð}ÇK§·Q­² ŽÖô,~íg‚ü¨­<Ä_êš!G5£t ‡¿Üa c#ñ ¿æ¥Ó‹^õ[²´®gT]~Þ5ÚülÞzÝûÄتëHè‡õü¼ÃDåqfÇ{T¨ë˜QüIØÞ/í±[üÉ öŠ‚&ê,~ÉTÃØhàq=g/gdz{*ä ç,}eÔÀt·yõ•cçS‹ÿ0±½é o?§ÝziÔìüÊ_ÜØº—°Æóh Û<«geÛ±p¿d]èþ‹z¤s–¾òºWK‡;L¶«sêtŸ oæáê&)> vì(þŽRÓyò¦äUÿó–†þÍâ!„è?;öð‚ÄßÇñ¨™‡÷*˜›Ù`8wòð^=^ÞóŸY>bN÷ÉÙqm–Þk"Þ·!Vxãd;z 9ƺô€Ø^±„$ÖžeñKÖ%„°Á€}'›\m‹N˜ãHˆ-1QÄ'Å ö!›U,õoα…sáo{mï©ïNQÒ€7xëå^;ŸEZøXO–íøu #ò@|'ûñK|ãì<ðžÈ~êAý\­ 0ËGƘ„Cíd–~ cý`Ð0Ò¼ú%Øgñ÷¿±5ncïƒ;öƒWìÄXÁ|KöªË7Ê;í÷Ä–ÿÛ zÓä±8ú%¤ô“ØòÇiÖЃc¼õrôÂS'×¼B2ø%ÛëEȤŸãÔ¿MÄ=c×c¬O!Ô[Ù5™ÔûùnLj×ÎÈõó] öÕ˜{pe:/b§`ÜŠ_Ò:x_îz^Ãïžõ¦è;¹ÚÐàíŸR¾Fmb¬NümRãÖ¨½b¸†äŒ[·Fk(à^’rÆÍŰö7¼a{õü6'Ý|µÀïÚI±pH9ãÖ•Ú°®r°ïÈ·TòÕè‰{Ÿ”¯Q£ýÊïwìñSôßô?·ÜOìO=Îü£Ãp>ø„ü[þÔãlo%ª‡ÌÀu¡Åç’‰kh˜aä'ÖÑ?kÍoøÝ³ÞÌîm@ tþÔãÌíãÈs÷=ãn8Ƴឪ§Þ´qÎ}ç vÞXÜ?*¿±¥‡7 ^d—êƒÏUÞz¼m¹ì_«ºŽÈéè”6Êk`"ÿaÚÄ6>‰}6·7.¬ ;ø$˜Q:÷ÄœË{Ç6(zȤyùÏ+~w4¼ŸY”§…!gdÜ×ÓªÞ”÷¾ŽßÍÒ †;Áö傜OV=N(ñ*º 自Ç!O¡Ø¶ 0×½ô•5qž™á}§ôK¤Q{½QJÇ0‰WÑÎßÒ/yxF¿Äq_÷SG¥Æþdè)”~Æ-¸>:ûáà\ÂóW¥cl–ÞJÃØ‘ðÞÌ8:ô¼¶}ßÁ»\½ qâäàÙRü’ì=Ç'È8õÝžAçæøÝSÿ֬ѽO@Ç%ø%º7æ¤ûÎß8uÂÚõ{‡iØqjð&­Ml÷)Ôî“‘UWG÷³Ž\‰,Qºÿ*â;Yz¯kHcÓ'ð»¥CÏc¡ oô,œòŠ÷òÇÑAßï0óúÇŽs½ô^Gg¯¸Žw¹Ò{S•3wð|+~I²¯œÛ€1.½×§sžÞyù“Ü¿‚ïØÒ{í=qîÀutÇÒtÒXàÛ4O>@‘+±ï€ÙdVëÔ~øF؆Ë{ôŽ¥»rž<Žâ…Ug9ð.g¨Õ“YuÂȉÜò=[ãŽoÞÞŸ{ßþØ™;Â>xpßY±·Þt’/¬ù{Æ-<«ðþY±5nF8¢?ËäwlñÐó|SÚÛpóoäÑã^±åG…X…ÑýwÅïU˜;ZH+öŒ›bNxçB©ÏН¬ƒ0<ØööVãFøäï[±¥ƒsrcŽ ú¡—Ø ü¼=KHvlÕw·É¹ü'¶½bõæõç¥b‹¯Œ^êë· úmÅ/é”ï®ÍÅ‘uäúô>`ŒK¿d07_Û3g¹b‹§àÄ•hO»Æ6«¯øFpnÒQºcŸ+§ ›Çý0FÕó*ÆúÓªvÇž|@KÃ6è ·â—L|Ç ÊãïØª£ÂºÐ¶0ϪÇàë8×§_ÝŠÛ†çÜÙé%Å6ÌÒ.Õ ïâÜ)~IÇzȱ¯°ÞŠ_òU@üÛƒþ-ý’ÈÄX—c\ú%Ö¡>`[Ðà¾#wÜ€S¶š¥¸Ÿ•~‰¢òNÁà<+ý’èoýcQü’@Ýü›,lCù›6Åy&çÙå—LšÈ_±Ymh8ÆÖñ ÐÒéõFóWcOþ­5úmñÜ2vì¨s¸m»QœzêMɯY¶Ý3ô¯jinÝ~z ô¯–¿éTì³ö´ ر'ošÖæCŠñÄžü[6˜¿{/1lï¬:lÅö®…‚ß­¼)úʶA‡ßf¥§€uûy‚ó×NþmtÁöNÐZ±£|Ï¡ÖqŒíÔå|ηgJnÇ^]lÁß¶®g[þÒq,&í%vêòg äÀî°†,®<žÇRç{òo2ñû&ÞKìè`b+û<Æ1ö“ÓÖ(—ox×ð^ùÂx¹GáwGåêZ£{TÇïV§Q?̉çW]ß'û3U²cOg WÆ$;Œ±_zök~–íîØ“ÇñFùM‡÷жتØÖ)Nß=yV­öÂw£òo̯‹¸yœFwð©Ðqòc:ÁvÅV> Q^ú£,û{òŽXÐìQqòÒ;áë£a{½´‰Ç¿¶-lo|];û±:Ü=ãäMÉ jËËà¾'0|â|À»ÜÐsà{hž|€ š¿©cϸE åqß¼óäF'Æ:ͱŽNo7Ò²m‰÷¾ÌQõâ—ê9n{_ÀS{ñKæìuû·(~÷Œ‡b{ϽDP“z{Þà9ï÷^Bg÷—ÿüõ«9€ßÕ¬¢¿¤uâ÷…Á»°û¹—ˆòбÁî¥Cï„èº]±ÑJ“¤#¹O­ê„´Yv9œ£•ýð±þ´ݱ£ü[ ûa6ÈÍŒvtC§RŸ©8¶÷òKÛ;ð ¥_ò%Žùù®ö:ÚÁ¹T@«çGÎÔ!6Ê#8ŒÛ€±³´Ä»Ò]ÏÐ öÔøœØ†9s½ß^° Pº¶c+ÿ†ÚX?WLho¯ºŽ ž„{€³{ô£ƒÑFÕz~W ¤ÚÉaØg¥÷*¨Ç¿÷3ØKF齊x§ó‚¾{ðÉõ¦î©É\±³ê/Äqmf`NýÛZ+Oß?ûZuæÎ÷…°Ö[âo+~ é†Ú¾Á\/~‰ Çs(”¾{Æm4ÊK»(¶÷àÊ’€§n¥Aÿ¿dLâ­HƒûúW§7±½ë}¿-n{¹6ñ»'п)ãð5¼aìÉ㤀ÞëøÖí¨X©ºEôPÜö¾srêß>|ùß>k*Ðgrx M@Ëk·îÕ£ø%wá‰%^ÅSo:¿“Û'V Þiþ‡¯zÐûªMýàUJ>Aéc+3©;Þi‡}®Ž8×¦Õ öïÑ碼ÿøö]¯ØòÖ yÞí]÷‡Q~Â=Èà ¡öwÅžõöâEþ¬¿X±¥Ä‰÷Éqý„ô¶þÄZé¸V{(îÕZzA‘¸†ZlÃYoŸtáoì˜ôÛŠ”€ïl(×±~xAÄxKk5';µ×q²£ƒ!AÌ3qŒ­ôb’M@{˜”¾y ™àÆ/¨ Â^§ã\7«X8‡vŸáÙm‡$Ø¿ ßÝâb•~[¾3¬xANøäœÀ‰vxA|ÏÉ èoÕ††ã¦È(?a7Þ×Ç‹ÏÕ×ñpW.Õ¿ðÎÚÜ:Üϼƭû$Þ``ìÕÁHâÖu<½ø\:軂ëØÏ}²!‡s`ÉËŽ-¿¬ÕØ|Dxǯ{Éh“¹–0åcˆïì3kÀ|ˆòC]‰ }á‡Ï%X7³K׿{ø\ëìÆq‚w®òV¬}Xûº%¶ÁʇÔqþÊÓ^gÇ^ŸÚ'¶'6Š'FçÐ:™`>Ä·Ï3ö‹ß—øˆÒÁ0â.JÇóm–ÿ['®XüìØ3nÏ·¶Â}}–ꌬï"¯mÌ£ƒÑ‡ÇPðÜ,œÞ »jŽëâúã`MŦ>â½z–ÿ›â;½Q?”†STð3¯†ݨÏÊoq’ŽËÖTzÆfÝ'ÛÄ6ð›!Ï}²OÂå¬Ï|äÑSX_ n♕‡‡AÜʼnü¨‘‡‡—˜G·í¥k(Ÿ«kCÌf"v5òð¹=…~4T°½Qœ²ÄZ ¸Ž³ÞÝ¡¤GwĬº|!>bÌùü®´Votª%ð|9i‡‡—“j5&Ö3H;|®‘4®±å'œ4'玴ÃçcÙŸww½Zš•–­‹Þà’vø\kC¢Ú…ü›´óðN}ÖœCÒfñÚ÷T<¥Õû k'u[¯ÀoëÅçê„OºÁÛIzù¬ô Òšž‚ôÃç¨m±1üm]ª ‰Íä«Õ4Æïžòƒ—lÒ¯îÈí¼$×áKüê4Ø£¤Ÿº|Ò6 #°bçõ%.ëSkÇ^ âD~åÆ+v_ÚpÒ» Ã1.5ÖÜ \Ç£xxèû°÷_xKé—@~°+8»eÞ«`Ýíš;ÔgÃJëšxÛÖc_ùE+Í:®ÍqøÊÚ©:òøe¾rã3 c®NFÛå §&røÊ”—–†9YxI8ár£×]äœo–´ïàž*ç|›³Q„O˜;¥_Òê/< #¥_"škð»ç|kA{ß[º3BwÄ™pnJé—4å;ø¯Ø,½ñ0ƒÚ)ý’ÆwDMÅØÃ{ýPà¾k*¯–Ò/ñNcˆèÝ''Ÿ-p?“Ò/I®'ƒ¥½ckŸí Ð__±^{ê¤û¤ lCí“–Œƒì³³Of”‡|–NìØ³ON§÷[€WÆÎ”¾}<½ß÷zÃul½bb´UŸm°Ò¡W ˆu<™Xå4'ĦSlå"bc"fW¿«ˆ Š\¹e3Œ}>mwlñ•çÀïvÅýÁ Ÿ|Šþ¼ß@CpÅ–À¿æ½ÿBýø9ß2éÍ ‚÷¯q©ð]Åñ«‹Nµž‰±¥;“q{<³Š_b¨ß·1ÈJñK†7ªÉTœëå“FøC¼Ãx”– íQÛ[ùnäüoªaÿV¾Û¸n<…v5ÇÿʤÚë¸æ£¿ká˶e†9•ï6Ú£Ž(qòÝŽþ?ïcømqòÝ’‘mù}öÃ/ÙP¿;°®CJ¿Dò"{½5lÃÕ/±€Ø.ÀÑ’(Ÿ•o¯jƒáš¼\wlƒ7àÙÈ<<< ÈÕí3Çm_¹9æBצ¿í‡_òChÌÇfÇØs/±ïºŽª©pàŽKñK>ådßúÕOïµk¥™T£àOƒë•Ë'®ûO/‡[ë}{vlCÕåÒmîÈé•Y:OJxuwƒ~Èà ²àØ1á·•?ÎÄœÏÃ÷Æ/É'¾wàKùãlQ$â?=-VlñÌqzûoYéµKµõ ’Å3oÄéíúô‡\±Å3ïAu]±½‡?9Xç¿¥a?Ïœ½»@¶â½¾Ì‡õCÚ_Y¥s]ÇS›{oyg½)ûN¨CÑvøÊÍ‚½³C¬þïòQ{› þ¶ÃW–tæôNlïÑ¡÷ɱ2Ä^;åø¡ì2‘ÓeÏÇ9±½ÇGÌ…b;ø®»öãGÕDi aý…öão*ƒëq†@?ôÃ3ßdz®5š{Æ-Ñ«h7ð»gܲqÀ£rÅÿ€Ñ'ïŽýàÇ3/•Ú;;Æÿco„îŽí=>Ð/µ]:Æß¾9H‡¾pÇõ§Çw}·Æžú·5´§ Ô(è8>Ðä{ö³6ažýÔã¬68×Ìsç§g óºHì³qÆÍ0‡ý ÝØ3nÃ×P`θ %n~ï8Æc–/8¯ÍØÞ³Þ2Œ½[¡EåŒÛx©ÕømÖíÿ;&r\‡2pÿý©ÇÙZ×´ŽÛ¯5é=ãÖЋï§õy‡Q9ë-:׋4Ü£äì“!ÄIÿ<[~¿{öIåZŠþ{öIÕIœô ü>•3nÝH³sà»[«g¢÷Dnàç}R«ÇÔÈtWì9߯HªYiôÝQ‚äóÚ@nÅþ¤!_nnþÄØS³~4j?FüWõè¶:²“tàVl½ºak¶µêqÖÁú‹î€iÕã´9P3n‚†öŠ=ãF^|sýàÿjÕãxÞö>Ï öÖQQ?4Å6Ø·m΂˜Ñð»5n0è-Ç[|®$§€×ኽ|.7z¿Á[O‹_Nï! ꇃsí$îãݲu©ïÓ‹—˜ã[J×vìÁKFrz;âêåûðý”ƒ)$äBµð ÛPxIûö?±‚9 õâ+·¯3ëÄ6ä9jé½>¼ntxûké½>|¶‹ßZ•Û’üìë ïã;öœo ý|Ö³G©½ç^²… ¶¡¶…ú­7íÈœà=±s˜§ ß¾¿çÍë ùÃç²nX—?i*é½ ÖÖc‡§ 9QGÀ[ÇØ³ÞƨO0ÚÄöž¼©9à?þC°†âäMÝû,@SrÅ_Ù_¸€À=Шõƒî©È¥Ò(þ¤g’vÞ„ïÎâO&×Ýb ˆÎÒU3ö3àŸéå_HoÓõô€1.œaäÙ4§ÕytÕ,Éûr(äPtßCŠš|Zþ8ë(¤ûNRlñ'ëBŸ0ÎŽ=ãFù¬-Ñï[:†êÜ-ôá6•æð1'¼%äC ö¬·Ô™|Ÿ„¹“åkô¢½€8­féªMª—ÄqËÒUCÑ͵ÌQ¯Ÿ°ß3ž›Y<<éÈÑjÍð·EñøyºŠß-Þl´6i>äáOæ$Hi°÷Y»<¼Ž±S#µV¾F8Ϧïvìááe·NÛaíì“Ãc |âW@ñ¹Œt 'xQ¯ØÃç"½øo|–µò5ŠŽ_¥iÆZføÝÃçŠNw1Ç"+–s˜o±òÇiNùMÃ|€õò5òÄöÎ {ªõQg–vâ{lÃ7ŸINê‡òÇiƒ´û˜Ø†ÃSÔ=Ø9¨µòÇùðǾr>È+¶òÇq'Ãn[ºjèS±s>Àí°òÇîRNVì(]5ô!}ÉÍØèåÙd̆܌Q¿8ÈùBr¿‹{”ã›Á.¿¤?5î0Vþ8ú·ÏzÃïzi»%γώñ{x  ×àÝÆ¬övl×oõ-Þ¤<™#ŸÖÊ'Yßst\oåCܯñ,e<±£êõHïÕ‘/grx =YÃóC&‡§0FÒºàW›Ô}²é½"7ÉÊLvŽä½c{«'&Î_¸ÓZñK‚ÛÛ1_hrx _ÏÙ‚ÓVõY´Ÿ9ÖÍXñK¦P ÈDî¸éás}8ð_{_ǹSü’Ä+ûõÇÁ9ÙPƒØÊg½X‹ÏÂòÇ!þÙ^P»nÅ/Ìß‘‰ó·ø%ƼÌõŒÀ6dñûlÒ¹ 9K³3nS)?/૱bob¾e0Ä.¿ä Nÿ´ù¿vù%ÈÁ ZO»ü}$xЧsçòK~÷³»÷TÁ6TÝb؆æxÆ¿dˆ φêÌλ[§“¶xù®Ø“ ¹¾uà a~ÞÝ:á«[ç±Wîü~ƒü¦ùÁ•U©þmÄÓzÅ\yÝÛèMök‡ycO> br^ºáo;ù0<:¹ÃX?œ†¤|Ëײº±qb£ó{òöƒ—ÄÛg žýà%ë|kÆíMè³¼dCIÚnãW†àÆž<ˆtœœ;hýYœ<ŽÒÃë¦ÐgÅ/é]9—ýPü5‹_zà=ü’PÎÏÿz‘ÜØ3náÄSè¨óoqÆMÙK½ý–$ߨ3n1YÐ#`Qã†ÜüÇi0óŒ[ŸÂ9*ƒöγÞf¯bý4hï<ã6ÐsìG# ¿{Ö[vŽíÛ«…÷q{‡ãwÏzóÁÚXX{f³ðIÔÓÝ´o¼ŸÍƒO:æÔ¶ÞžYóì“âJzLè×aóì“Íé~ <ó仵ór×KC{óä»õts×3@òä»;úoz+¾cóä»­S‡0sË“œo±®Ø^»þó¤5…5+Vú%Ó&æ‡ë/¬ôK:zmmï5Ài-gq0Èçj>·—{ò¦âŠ9Ÿ4xoz;ã&³#Î5îÕÞzñó8½2¼OAóCy'/~I"î¹­(cϸMÔÍßOÃX+ùÕ)Ö®{ñKÄÈcÊý¶ÒqòSôdñ6¯† öéúxËÊ…²Ÿ¥áXô“›I¾Ê3°úÉ¿¹“¾²#§×û¨ô×óÂK²‘6– ¦Žç·ŒD¼Ï1'á¥÷:&q¼õû¼ô^G¦YK¼åÁ'‡“'€*¾óŒ[ áÕÒñmšŸc0Þ‡wðœÅùwä¥÷'ÇóŒ›{' Zá ˆVë͸¾¥Œí…ËÑvÚC²vÇŽš„Ÿž+U_ÚcÊï±gܬMöÇ}'Jïµ UÌãàÚŒVuª±Š|h'ÿ6'å³ ýê¢ü?;"ä„£Uþ-I{LP¿/zÕ £GåØë-!öäßïÊý£Wþí7‡rú¡?e”O¬Tý<Õ¡L…·iô£JþÇ[¿°Šè'o*Ìcê=ð»'oúr r£Gåçi˜è+ý5ÊwãÜ)ý’uß!ýIäœFÕã¤6¬Q ÿãg½¥ z9€”ÇŽ­|€ bÛä£öÉ ¿Ža Û£Ö›S„¢†vŒ³OÚ¤z†Þ°ÇÉãŒ$ˆl°ÿFÕãäTòž@°ÅWʌѱϲÎX‹M÷[õ8 µC6Å0Ý(¼L‰~[À1 /Y?¼î©!•@Ð-íã&WXK Mñ·YÕ´ lïzýÁœ”ª£šFX<úÕ…Ô}rÈã9ãÖ²c>@¸ÏÎ5%ð»kû†¹®íÞ£_ïC ­ûdÂfýð =çÛ@¾œ³îm”?Nj4«cµê!'ÆFâþ[þ8ŽX|‹‰í=ï€áЏQ(µ¡ò8ȃŽ5”x¾iÕ›"®¼åp:Æ–oŸaL¸FØÁ'{R{ý°Ã ŸÄú·‚Ì&ì¬7C¯Ùí% y½°3n>qÏDL,¬Ö›ù›fÇ6XÝb™ÓqŸ´3n«Ýˆ9zŒ=ã–°LÀu;ã#Igý£ø%-HËkk’?c‹_—±Óx‹DñKÖ±™Ó? ¯}ß8÷E¿„ünu—[ÃoóZoøÛvÙ¹bª¾;È+Yé (¼Ä#U,{ܱµÞØ· ¤;/nDßUœg…—¨Ö]Äw@ܺ|ÒGœ†÷Ô(?*¬c}Ñ—‹ÂKÖü#2¬ó‰¸õoäq­o§ˆƒOæ$]5Àl"*ÿÖI²¼sEùQIÏ6b WN#­ò¿ˆ8ù€ÀûÎîßÀ~8ùG½bC«¹¶kÀ©'3'ïl;fùöyvÒìþdÌ•=©½óa\YÍú¬ôKëçwnru1K£Ó¾3±/Êg²ÿñl¸ŽgùuÊÝv¡þ-_#%/(ÃÐÏžù”^ú}|p…§Œ‹ca­cŽïzNÁþµ:.SŽXjÐ:þ¥¤ÝØòíëÜ¿篔®ÚSììü¶m8ºjÓtÒoƒómÊ,½¶Ö)Ö0öèá­sŽúLpßÑ£c“¿‹çñÔÒÃswê_8c§žq ¾—ØÀþU)ÿB§6 ~ÔT-ÿÂ0j¯b{ϸ¹öɱ0zÆÍ›+Å‚ÝÔò[2ù·ÁœÔ3n6i_·a{ÆÍ¢jøÄO;ã¶–1·×›qûwýmÅžqÓ©þ÷Ø3n_⣿k´›¦qûðå±0w̪ Æ{*Ü=§qSã{Ÿã^mgÜ4x?œëvÆMŸE2u?Ãß–÷·ñ¾Žg–·úm|ÎwÜϼÿïe=g7ö™×¸ ÞžÝ^ãÖøÌ-E‡ß5n|fÉo½ôµjßwïqÆm¤¾¼!ñ»5nö³Õ‰øÛjÜ^ÎcÇùwÜh>¨€fçœW§wò9s§ô^¥Ñ[Ï·9ªøxÆÎ3n_fY¿w£„ù0ϸ ³ä·¬ùÒ{ƒ¿ s²ô^×wƒÛ‹¿-ª½/÷(\Cå'<²ó9¤øÝ·Ao23¼\?á_±OìÄó¸ü„Wp,5Fgù ¯ß†íýòY¹±rûlþý»5n£ÇÂX¤•¶± ÇÂç·OIУ½øÝ·6œû û·ô•=„bñÜÌ3nÝèÜô}–å'ÜE^ÚÛïw±½_~7vÜïb1…lgÜz§¹þeûwcµ¼¨iØ:I{Æ­Í—1Ž ±gÜšÒ:þJõÝØ3n/o§—Ø=n?~(äñשó'ViÔl¿ùgì^²E ©>–Çí/I$ľχ¼dn.+Ç:~WþwÜ=ó/Ù^E¤Ãù{x Sìå· Äž‚qàKk•´_ú÷äßHopÇbŠ_¢B|®­›±ýæê¨ ˆ 敳|™g€‘æ(ž{IzŸ°†Æ­[ ž“ÖЭljöÒãªÇ±AõÇ/¿­øÊšJºj8cVm ÕÄ›á\¥‡7dR,Ôå§´ª-I¬1·gKJåqÒ_bažIåq¸4 Û …m“î×Klù>$ém+jµ§Xឬ/'€W§œ‹|_c WNÒçÒµö)óæ$XãN±½‰ÿ‡Ã‰õó©…+³ž¹¼²êq^Ú+ úëYõ8Êû¤tÁïÖ¸±F¹túnåyIß-¿ŽÎú©gܺ1/õŠSϸõ shô†±óâö¤Oðkerc+ã¬w𴪣b}‚ÑpŒ­W- õYŸ‚±g½Mävüh~Ü,½×ÞhèO(ÇjÕ¬ômnc³ª|ÑÇ>³³OzҚ聆OV=Ž¿x.LÜ««''éDölCV.”µ"¿[õ81:Åvüm~xA#ÙÁð (~É}ÑË„þõËÃãþ T=ŽvÚ£¤þ›¥_|f æóÖãÛ@›œ¥„>æ?2Õ°†æyˆ“&ê0Ð’ÉYzAJš:óN9³Þ"´§Ž\9³ô‚‚jlÝ5òèmã$¾kÀÊÃ3_mÓ¿®¡ªÇIá¹.¸6ó¼ß†ð«ã>ùƒ—¬X#ž1Áï óŒ˜üžýÏîªÇÉÉûÎÀ÷Å^²…ä“ï%cüƒ—l/_ÒcÀ«ØÞ¼£±vÓsßYßO¤³Ès>¬Øóîeÿ}¤­vìyw¯+"µa<÷¨õ÷õîf}®6ŸXæŠ=ãÖÛ`Ý$ÅßvÆmv®KÅöžq³AÚc­¶÷¬·! k4öWìYo¦Tw°®wöŒíg½M¼ÿ&RÇvìYoÄeÍm÷Œ±ãb؆5bϸuMÔ!šOÙš{ÆjÁw©Ò³þxÅžqSWü®?éú;ÖOì¤~ðQX±q°  ö¢þäŠ=ëmÝKð»_wÏ{Ö›¡oõÜ5™úŒg½õ ì_ô1_±g½‘—Ùú ÔU“Ͱþž ;¶|ûÐ;e}WÛ{êq5>~¤#a>T=Ž£gÓÜ:ØÞ³Þ¤{}WÛ[zxè)¿a=œ;cV,ù_ˆQlá\-HÃê)Ñ´b«g?Œ ìîvlÕutÒÜò'|±c«n±S-Ì\ÇåÓ•Ûû”eÛ±Z¸œþzàÚ¬zÕŽßé½ë¥×Ö°fe­ üîyDB½éÚâL`Œ«gÚDM¨îsG’="ª~¼6B\zmBzL ×PÕãô¥„¹®ãbŽX×ÐÁŽ=¼×˜t×è™p•?N›ìm¾r+¶ÞÝ.Œ)Æ–îŒ1øäŠ-|RØGAÎÂòÇÙ† t‡üî­Çi¬1Šm(œòÄp__±õîFÎônÃ3‡²bï¸)k—è³ÂK²±g`?^âp£aßµª;|p‡)¼DZã6 ¸Ë^2œ°biŽß¥•ÆÞÏôèŽÍª©h\?ó·ðª?Þéòc\ú%s/;غZå‰E®ë±(¼¤³§›È3¾bÏ»»¹Äé·YéhލÍ𻥇7é­‡yô·&ˆ°í'zÇ^¿E˜€>¼cËo±s~a†Š-¼$mðwú7êÝÍþ…ë¸9õîvZÇÚñ·Å9ß$(ç³^ŠðÛ¢tCG0×O¸ó\RVwl½»¥ó»ú¬Þ݃4r×y}vî%.Éc®clÖݨ³f†ÂÚ,½Wo´ÿÊĹ>Ï; ûàµùÄðV쨻'íÕbúlžwÀ`d LíØó°Æ¸Ñ“v¸cÏ;ÀF2ÎåøÛÎ;À”pOyÒÌvìy˜ó{Þqï›ç0xNÅ}}Ö;`Æ ž ¿-Ï;`]é,4ì‡<ï€É:£;Ì<ãæm². žYyÆÍ…ÞǰŠ{ÆÍÎXô?^±VytnCCœ ϸɋq(ì%yÆM;ë î…—ôAxTë s§ðU:Zü¡^æøŽóé3¸bϸ…P^º'εb‹§Ð+nˆ­ôÂK>õÃ/(ü®®DëÜ¿cíÄö,E̦ÿà%ÛsÖPk0ú^²ùuBžzƒ+öðKÄéÝOIÊ{ø%2ÉûÒÀŸa+©ÿï~:éAƒWç¶=±9É'“Úðƒ—lMŠE/‡+§’<5åi9²cϸuôÎþ‘4é{ÖÛD]ìŸ7$¶¡öI¡X—§FØŠ=ëm(ŪWkä™×p/)¼$CH?•æÃÅKò8Û¦Û`Í^¢¨¡²éU€÷ÂK>Öï_õÇO‚¶pa+ž¤A¡Ð¿…—€‘豜,¨—~‰¢ÝÖ Æ1V)ŸmÇÚjqÀðºÎÁšxhåߌôQópÅžq›AõÝ º·+öêáM%Í ¼è¬}§“Î4­y­w@i[‡óÂÎz[³ô®Më÷-BºØŽsÇÎz Ô7" »+¥ÝDÚÑÚñÜ4}ÏÕm¹ ÁßVyí¤3 º3+Ö+÷E*¢€9v«ûdNÒm‹{î“ÛštFpÿµºO¢'á–3Å=Õë>™£ÓümÐÞë}áFíõÊ¿õA±Ùa®û¹O¦ Ö/ ü®V¾PI3ãùDÚ±7ÿf¨W«{Æm]yã>éç>ÙÑaÓpîxÝ'{¢‡Kñ¨û¤ÔøX±q^’[.×qÔ}ÒõtwÍÄžûd¤¡Þ«€/ÁŠ=÷ÉļÞö«KXoUÓ:yA í%UCšò;±Å3ïP—ôc7бÅ37ún‚vÓŠ=õ̓Ú@{jÕã¬wzm}øŸ-_qbjt[ãÁ:®zœÞÀïKÿ|Ø?¿±U0 ÖsÛ%ôCÕ㬽 Çb‚–̦­ÿïÅðèÐ!OÖç­ëPlÃh í·çIF=^êûìŒÛêwØHœ·g(ŽE8î;U3Ô oYíí­zÿÏzÃóøÖãX §[К¿õ82ûA'Œñ­Ç ÇùÐ:Îõ[óôÚÐp¯®zé¾û„ýwlÕ-ò sÐØ_±qk˜È¯n*¬·ªÇAûƒv|ÇV=ΗöãÇÛ|'÷ÍãÄΉýÐòÝ£êqj ”oß±U·ˆµF›F ï€Qõ82h®7Ðî_±U·øm9R)Oý{ÇÍ0 ¤[ë µ¶œ¼ÉFÕã ümzñ+¶Æí™Ø8R4‰}VãÖ…¾‹÷õÑ«Ž*õiç„·Èè5nXß½åœ`?½öI·ßͼŠÑk½ šÃ;~·Ö›’&I>Ÿ=;¶ê­qÍÎÉî·vcg:öYüWÍàï”M'¾u¡8¹Îå üÛS;dÅÖ;`rî ózc̺¯s¾%·…—Ì· ¶WZá}œ ƒöʹO~ÞTß¹$È9ï€Éض€ŸåŠ=ï€ÉµgcR{ Ÿtâ#ÐPY±Wؿ1Ò{påžÌ3oO¢{Æ-;ñH¿†ýÆžqK5Ê_èÄ6œqË—ºà§ÆÐª[äüf…qÓ3n䇽q{È_ =ïá¹Ó°ø¡rß-;€Ã9Tï[„ó"Û7㦸6õŒ[ùdÂ3bÇž÷[:û8¼¥‡Îzã_Ξǥ_ÒÔa¯.Ÿ g‹q‹Až |Wì7Ò6†­hÇÖûMÉã/îˆÃθ©Q¬ql­7|›î4P`*`ÄGšäŽ­õ掸½ÈS/sÅÆÍY/xv^bÈMÚöÔ‰m(¾r8òûÚÞÕ(¼Ä²áöx—+¼Dš#½V6ô¯ŸqK%ÞÕW:·æ¯Ÿq³|«ß„uìgÜÖ|ãØ§¿éŠ­qKÊ5ÛtXo~óÝ/í5loÔYH\ {ʪìØYü_®!À[~ëþZ[½c–ÙŒk!ç>Š_²öáúnØS‹_âMâ/õè+¶|V‚ê!Wÿb WT'a¸#¬êP‚cñl©zœâºÛ„<ï¨zIÊÛœØÞò7å|ìKŸ+Zã~˜Ð†ÙÞ=…~ê¡ ³ü…jVÌpÜfù-q°þxÅ^kÄG|‰Õª&Ž€&ÎßÒ{Õ ïá/Iö[þoI\5u¼Ÿ]½Wå:a78ç¬zéÎwZÅþÍjåçy #O½iï\ï„¼Š‘½Ú;˜Eß­ún®å’'¸cOpÚx¹Ob´4Q¹F×p,JïUC˜k9ð»¥?‰ûY‰wÚÒ{݆L‹m˜¥e˵}#±θµTæúÀš—vÆM‚Ö@Jï5õÅ÷0s)½×”¤=Õ© ŸLsÞ£ Æ\Jï5- Z+¶ôÌÏ!üWJï5ÏÉ o')½×ù¤)}è³â—ÌÉå‚ãWÏ\IcÔp*~Éä\*àÕRü’)ÁÚçø)~Él/±xç*~ILŠ]? ö‡â—„ 벂6€¿$º¿h¸Âo+~Éáí7çdñKÜ’õÁñ|+~‰kѧ…q+~‰7ã6àÙ]ü‹Æ±†ß=㶬{‹gKñK>öÿ­ù½bK»ÏˆÍ«gNwZ\CÅ/1ÖxVÇ»gñKl²†¶ãš/~‰½x.žÅ/ñöâ7µ¿Rü›ƒÆó›RüÓì|G„±(~‰uÖ6Ěò^Ò° Y:鬋=a]hñKTùÜ ø®¿DGcmn8çµø%Úxïë°GiñKÖ ½Ä*ÄêmCÐöT½ü’Iž!cBP‹_²î^ÊßmWwÛ;ž¶;vþ—¦ú0Àµø%Âû$Õ‚kñKÄ:ÇB=¯¿DD¸ ØÅ/yÑÿHêüÆ¿„}*ózù%Ïáp.lCñKœ {ŸŽâO¿ÇmÒø~ÖÌßqù“|f xóê¨që/ïîÀßvu±Û‹=öÙ¼\*ùÛ@G^ýõt˜ÒþKÝP IËg¼x½€ÇÉŠýð'qŒQ'}Å^þ$ŸóÓ° z¹¬ì³o=-œudßÀw´üqºN°Žh˜;åÓŸ¢NoúÕ+¶øÊIóÁ&ä¾´üqšÉ±ÐÞòÇic²¦:äê´üqšÒýÌ@rÅŽ«ùÍóî;Zü’ˆ|É¿DY;Ä ×qñKÚ|ÉâÜÑ“ïŽaü]Ü×µxAíEÛÏX-ž‚‘þ™ < 5o]3·×…µÒ'-:ô%X±UcT>A+öÔ㬻çòᮬUÓG¼ä»aŒMË'ž¸T†\5µ“ï¶ã1Æ~(ÿnÖu§ü±^?áÆ\ ð©X±³t\ŒçNÂ:.½×1&òèêå“ç®ÍÒ{]÷jƒà9õ^§±.6Ž…_Ýk ýàGwL‰ëí„íµ«ùÂßÅ=ÕîLáDâûM=*?OkSQ¯BýäœuÕ© yóóƹq˜gqõÌIŸ`]Ï¡ å'¬Nzº„‘jTþms-ñîåK˚ɂ: Z~Â"¬…„ºZ~ÂnÂ:x/)?átʹ迱gܺ sN;öï¼zÐ9½0n—_2‰ (çCñKÂY'<*WìYoÍ™ƒ¹q-~I¨ðœlØ©5Oc¡A±G/È‚´5­á¹9?úÊ üTgŸìÌýZkÛ©7#ÍÙµ-âwgÕ¦Ê ¿¿[zxµzÏ€l·~ž¸3ÈÁÐ,>W?UÁ¯cÅŸ‹u“ÛÖÒ{m5“'`ŽšzùFÌßÁ½$­ö>æ Þ•Ó/ß(ÿ{÷Igý(Ð[Ñâ—Ìn¬óûC–ïúKÿbNØ /ñöÅG·î›–<~b׸ý+[ûæ· Rùù/þä‰]ãöoßo=ÔºÞr ÀI7)žyì°‡Ú±£ô« ùëàVÙª§¡ö‚oZÌÉÒ/™¨Õãß6…7Öê i¤]ÚÛptgz#MTEÍ “Ò3OÁ6|inÝØ3nbᤂc\õ8[´cÔ¼šV}Àl¨m1xb¦½tHóe4ì­:ªÞð·™ü®”þ¬7GyÐ[:ô=° ‚:#¦Va¤ù2'Ô‚[Õã4qÒi ¿[z ¨Oà\ nzõ¹†NÔNšfí}IsG¡fЪgäÀþý첿±¥§ð¢gÓp]T=Ž¢¦ÎÖPÁ~¨zœf‰óìsSùÕª«k¤gÓ ÎÒª'Qÿ×þ|ÔO~cϸ ë­€”ÇŽ­q“Ä6­y;ãæ“Ö>íIvlÖ«ÛQÛ¼î%8úMG¸±5nð¨ýLëøÝ3nÞõKµ¬êq¦ êvô 5ºVõ8Sàý¶žÌjíÍÏ}2‡âw5¡ŽÊŠ_Òžù#o;`N¿¤ ÈYnhïg~ï%Ÿßš$xG,~É— Â'ÖðNPü’fáÔœÅ/i9P§ÁPûÆâê`Ll¯>e1wlåq°xýö“¸±•@¾§î+1ôCñK:ë4|Aù7¶ò¨+!ïgÅ/é˜Ý¥4¸ïÄÍãø„XGž¹¿ä3O¾Ú  ±dÅ/ÈõÑ]¿m^_ZšgÒp?+~ éJìy†÷â—ˆjE|œ™~c¯wc}ÅßVùn§ùe7;¶òÝI±x_/~‰ÄÄXïÔ•ïF¾½nI4ì‡â)ˆblÒ²ø%´Ž'ê`Øå—4š;ÓÖÐå— Áïšážzù%6­c¼—¿Ä0W§; ãvù%¼?hþ6¿øþ¶¸Þ.¿d’ŽK¢ß¿Ä‘/·5uÛ[¼ ÌAúF°W{á%4]ážêÅ/‰§ÉoaLOœË‹_Ì+VÔI÷â—„½p뀣åÅ/‰áÎÜñ ±ÅçJæú`>Ë‹_â\£ –؆¸cáüÛ0¶ÆMœ¹î c³8pÌWƺ/~‰s}r>^x ÷¶-[ë-ùF8Æ…—¬k qø^x‰÷A¼bÅùPx‰+ñlD·÷â—¸¿p%ckÜf£Xô\ðÂKܩψåÅ/qᚊü/~‰%ùwK>¸¿Ä‚8 ¢Šß­qóÁÈCzñKl×ç cº±µO6nƒ ¶Áê 0cà {ñKT'׬€7‚¿äëAþÅc‚uQü5âÞ¬1÷qÏ·4â]_Ãåžo\dP/íÅ/Q#¾ÕyñKt0÷ ½Á¼ø%Úhïë9ð»ú¿‚SÅÂ\/~‰q{â:–Ë㺤µ216.WÚk¸6‹_"Ì{í¨ñáÅ/¼¯wä&yñKF?Š<Ý\ï}2¸Ï:Æ^žñ¸AîËõòð‚ùˆ¸ŽµxxÌmÈ r-žv®'Ã3@‹Ï5Œö‡¡ûyÐzÃZZ×Yü3âW jÖ{é—€ m0­ô¹ó•1—äV:†JÎuÀØ«Ï%Ì™¦Øz¿Í®;póÝjÜZá¤Ã|°z¿9ñimwÆíò¹sà Å­ÆMã…¿sÇjÜ:ó«‘ÿàVïîgáKq0à·y[WæÖwƽÞÝ‘Ä)CÞ•{åq¼sŸV»\NqöFb{µt}˜o4p ^ÜW÷ʰŸÑz+½WõιqøK`ŸŒƒ+{©«wlÃÁ•¿Ìx¿ üuò[dÝE-û/®ÚËwKW-™×†œS/œ9˜£5¨ÏŽîŒz2O± ¥;ó2ß"åó±­þþmàÑãåÓkß <[æ(=›®îå'îÿmå'œNz6š íæå'lNþCš‚¿ÍKýå·9¶÷ðKš±öÍHì‡ÃËŽ¡à[¤ü„G^o8yÇûÞ±å',üÉ´Aí¤—Ÿ°%yتá;«ø%Óò¯š/^þ8ë®ÜÿÞÞÊã°?ŽŽÄïVg2¿¤÷Ëóì“’´†>7øßØ›Çá½õK<óâö4öêh¥«ö¢3o­tÕxîˆ%~·ò8Fú0ë~¦[ùnÒ³iÐQþ8Ê<Ò1Á—+Š_žìU{y tŒ€=5Ê'^xx ÷(¼¤5®ëÀ»}´«‡Çu>‰cQx q0~jlÄöúm´6‡À&~ù%TÓáÝ~ Ý«øw¯ØË/!}‚/ ݽüÒXWWè³Ë/áýwà½:Š_¢“¼•êvD?ëMCÙ£î¿Qü’¯Kô¯®%hDñKÆ MÔî€Äå—°çùZ­øÝQwÜÔÔ‰â—$¯ù®ÀŒQ÷ÉA¸Þà,ŒQ÷ÉΞXXÓ…—´AoœŽõd1nþj˜>ÖU¿±¥?ùâ æ¸æ /ùòëøä0o/épß6¦'‹^*ö-Mtc /IÀ5lãØ¹˜ ÆZ‡Ë›¿Àœ¥¶ãVx‰OÖØÏŽ±5nÞ0? ùã(¼$žÍãwº_Qx‰ÏÞ7 »y#ßÔ²ÂKÂódÞ@ç4 /‰9)Ÿ% Û·ýXÇüzDá%ç±ì5Ô!¶ôÜcûNá%ØÕšg ×±ßü[ÎaC?^2Û‹—pN£ð’9œ<øã„ëý.Ž…´ÄßvÆm*y.ŒØÞ«ƒAºîé8'‹_òå]õÑu·Ä>+ ôgßž°7¶ôKš¢¿+îÕÿ¥_²¿ \”¸ú%bJíÎS\ýSúîTlƒÔw'jÖ7ZCÅ/yùm-€ÿW¿d ¼W¯e…¿Í¯æ ÞK€–¼cKw&zD´ÄûCñK2©¶$4wìÑ jÃ9òè1^PÓA^ûl½ uD/ÀÁˆYzAA^_[Æ-½ ÔõÙn¸ŽçÑ êÒÉ_DcÎSÇœ¥0<¦—“l/úF齂@ýÏwž›s–&T*Ç"뻣Qÿâ9Ÿí~7hÜpÍ—Þëh¤2;ðÌ#ϸ ãX˜¿¥÷:0·øÓ‹Ò{ý2ýúm0ÏJïuÄпǖ>WÒœü’µº±q¿üÛ°½5nFµàÖû7o„cŸm˜íŒ› Ê“Y‡ss¶^úgƒüEz`léªyÃ>ëÎùÙ®®í;:¿«÷»/ë¿k¥í]³ùí‡ö÷ïÆm¯ñwbçm/ÞÏD€»8Û7Iâµ­Xè‡^zx}Ý£À[iöÒúO&ú}Í~Æ Æ |¹ÙϸY{ù.ì}³ëÕì=㶦ú¤ß60öêRÿ¦(Æ–Žá â÷ œC³ÏÒRÔAüÔ†±Y) œÈ9Zi?ªQ,œÝsœqó¤ûä48 ç(ýÉA¿m}W®¦¿îQshikÒ›lºào;ã6QûF¿ëÜo¬—¾'qC§þ¶Ò Em¡õ]ß¾9æ}wpŸåûw×Ü1ði›rÆm:yL¹âÞ'¥gÞè-âŠûŽœq›˜ËßmÀþ•Ò3ô~KÃ>»z¯¨ ¸Ë¸±Ï®ÞkÐÚtÏÝ)§nqnF±Žß-^|Ïÿx>âwçÕÓuŠÅ}R®žyòwï9õ£Cãö¥™|cK_çξ#bÿjé+;½‡Bð·éÕÅV>‡ÛPúʈÃÈ®¿€~ÐÒWöÄy6<1¶êMQ'g{ñMŒ-]lÔÿ•ý¾À~˜ï±ë}ŒiSK[퓼§µÿŠŽw«qÃ{Ô¶£püˆ9j^ñ´3n_ÅXÌ1áÎ5íŒÛÀ7¤ý™Ã° VðÀs|ñJžæw>4ˆî´Ó®ž9œÇ¾á!쳫g¼¶à»ò´«g®X›ªèã8½ÆÍ(Ö±¦búÕ3W¬nˆUL¿zæpÿÈáÀ<ó«gûï¦D4l¯ÞØçXl ÇÀïÖzCtb©Ý޽õÝ^Pu¯ßظ±x¯nò"Ó¯_ñ ×,›7ßÍ!3K¿¤jCoÀýš¥_Ò’ôÚzý‡Yú%ë-MßEý¾Yú%-éÓ'äcgé—4g^f]ªYú%Í…t ô˜fé—4!]ªá‚}7–¸€ ù·ׯƒÞdÒ¿{î%ëpæì=ó…³ð’ôdŽ7hòÍÂK’µÒ ŒeÇŽºÃÈ ú¬ð’µ–˜ƒ ùØYxÉä<™8äßfá%1Yùg³ð’°.6öoá%Û´“ùë[ï€dÝqÌ¿ÍÂKÜ —Ô|™…—ø‹¶<òHgá%Æë‚±(¼Ä,ù·>×,¼„jw~úÛ{ÆM'k] äýçõÇqžë¹ñYxÉ ô <ÝYx‰0ßS°d^"FüTQÜÏ /‘ž/õ Ï6dá%ckk‚^[^2Œ¹ë- /yãÿ"§7 /9½ÈùÏÂK־̜Åö>i¬eë°.²ð’μxQ¨“ÈÂKÚä9iÀqÉÂKšñ¥ ÛW–¿é{fñK2·ê²êqÒHSPÛ8‹_’¢¼G ünåלCYü’‰>Å{_‡s>‹_2m¾ø(àw+óÂÛîÔ•Çék8ª'’ýEß—U3[g/àÙdÕㄳNzƒ½/ǧþç/Üw²êqfy != /‘ Ð[4 /’àÁðànŸ…—î©ârYx‰×+ä¾²ðÂ^7.gkO%Œýà“„ÿ:®‹ÂKš:c¤8Ï /i³OŽ}â;yñ’þ’ëÀuüÁKzr®¿[¼W#¿™ÞÀ»*o=ŽQ-mCýõ,~IcŸ¶fxn¿ä%ïß:Ô(äÕ/Œ— À«ó£_’ˆÙèÄù{õK«ö#[óìê— =×t‚üE^ýÄ£\!O–W¿$êÖ}™ßØ7mè‹øa\ÿÆÖ¸a2¶¥ ÌÉâ—4Ä=ãOvÈYfñKZ(ú8šþ¶7…z²ØwZlCžÝ±1üî,AïlAîA–~I나ã—ì~Å–~ISöÉœ€ç¼ãæøÛzG+K¿¤¡?Žÿù ñolÕ-¶‰ýÛÞwJ¿¤7Èãl 6À³ôKÖ¾Ó!VQ›0ç·D¬Ø{bî¸uÄ ƒû·ÆÍmä‡r–>—j¶„Jæå™[§ïâÞ—UÐ’4Ât“2Ï|†öXŒ½u‹À Ýw¸†J¿¤µcñu,ÜØÃ3Ÿc’FXPN}@¢÷»íò{·¼ã˜‰Øgó][Ó¶ö#ŒqÞõówß¹ž:9û‡Öwé>9íùÝ{×éGͧÜüŽ­:áNzWsgÅ^§¤ïöç=jÅ^ßÁßÖâÉ»Ú<·ª)æÜøÓzÇúõ-¡û™>yAë×gʼn#0©>>+ônÉÄ6\Ÿ•$M¨6 ¶ð’‘´…üùZ±å3ˆO‹|û[uù*Jmèп…—ˆQ?¤)̳þ:O¶¥ÄV}@#þºrÅúÕÀïÎiØÞÒÁPÀK|½Œ[á%ÊçEî⊽>bÃ(_h0nW¿dÐ'f`lé— Ž–}ëÝØ«_w{ÛÒéпW¿d6ª“€ß6®XÃõ2ñ»vur„r·¸.ÆÕ êXòQ<ú½õ´O6˜¿ã£Dýû´ûر½ ì3Z™ü³s‚…­¾õÄôCÕãç¥WÁ~Võ8ÑY{Œö‡ªÇ‰1pÜd(ÌõªÇ ™ˆUdâ ·>@qÿuÚKäâ\Š{ª®ÍÂK:jÔl¾Î_ùø›rl‡ý·ðò]ÿ‰…ßVxÉâk´çq¾c/ﵓî—ày¡—÷êÂïB˜úá½2o°côrNs¡ /8n;uføÝâ½Îœá¯ØÊã ÷åßcçåe óH16ïw'ói¡½…—ˆ?j­L軼W: ‡b?\?aüîæÀ5˜göÁ''óûà·]?anÃtÜ /Y[”5a(¼DÐ÷lßåðÌ*?aíò7 oÅ–4jm ׄ5T~ÂÊ5bSÆ¢ü„Õ§\yÅöËO%>¢ìgå'lB{”=¥{wlåM­µWà·•Ÿ°9ÕYvÚ£üúw©?mDv¬ç4’Ç û, OU:]`ÿõ›ïnA±xfyù®7z3à}2>¾ët×¼ƒG¿~îI±x߉qùžÜ†€ùòŽ‘îúM<¢x ÈÞØ+Þ£Â.îIk3p,Â/‡“¹¬ýqqOÂi÷’˜—ÃI?h1¯Ø¼NÊ3½op…{å/è3‹„wħ⚟ÅçjJµ}‘°6§\Œ×1È€ïØâsuªõô‰wÏY|®Þé­7pÜfñ¹”°øÑqß™—?I{ŸÈŠ—ˆ±Ûb³øˆ ßè)xïËv¿‹æ¸.òâÊô¾ºd›j#< ßzyyx ßCIó,/îg±u…aþfÛÆæ#R?Ô¸ Â2çS¾gÇÖ¸!fn)gXoyyx9†¦øfÈËÄ+w8[z»<Øœ°ÿövyx“qû'§lÅê5ÎtˆµKÜÅ©[<<'­´yÿ]§_±Ä•èO:îŽýðÌñŽØAeÅæå÷i|àoëíÆ²ŸðSsÅöË$M’gziÇŽË‚O~ÉŠ•Ë$îAÐýÖ0wô*V¬ÝXc®¶¡Î·Æ|.Å1®zœ¬‰: Æ¢êq¦*ó£cóæXY»ôÉk›½êqbr{öoÕã|mÌ_š³øÝªÇéÄ9•öäÃl ʹsÍ`¾ÑSgdÅV¾›õ=eôCÕãxg=Ç1ð»UG5i] †ëŠ­:*eŽV§þ½<…þÒ[ï€_å†k³ø%úÒÁ¹^üíçÙ„~(~‰Ä|™“0.¿D™7ØöÉË/éÂkÓ± õîžÎ^ê¸.Š_2Œ}«ŸRJ;¶êMñGâ\¿xI2°Œ[á%Ý&ÏI\…—ôA®òÜ2vlÕwçËþÐ¡Ï /iÌ“F±Uß=HS@CpÅV]þäßÖÖqé—¤Ñ^2’b«.ÿ…»Á+¶xxÙymÆ–žÂ‹ÞöªÛ±ÅÃÓÆ¼â€½ºôKÖ]Úð, Ù±½8†/óaBÿÚÕÁÐñ×}²ôKÂóe€¹sõKØg[:žCW¿„õ×å -îX¿š/þ×}²ôK8~7®žyr¬Áº(~‰r]þÚ¾¡ Å/Qg-:Çý·ø%:¸vçYâ°coþÛë[é™Ç Øûd\=sª;«û{õÌ'Çâ{ýq&Ýí[*öC^ÏꇧÍÅ?FªÜ-ÿ6Ã1¾þ8Þ^ÞøÝQy^ÖG¤ûzñKÞtÇéN[ü’Áµ0Ãðl)~Içwáš9؆ÒÅvÞûÞaŠ_òRÓÆ÷êyu±¹¦Bq]”?ÎzwÒ¾ß-œµK’ÞvÃ7dùãôF5W*¸GåÇêož,+V®Ïy‘8Þ=/¿$Ø3$ñì.œ¦cqŸ,œÆ÷IõÀöÆå‰‘þ:½»?üª/D}ڛ׌ýPžõ»Soè>c‹_¢|‡ ˜;£ø%m°=Þ5FñK×3(îg£ø%­37ÿy­Ù±åÿ¦ÎzºÏº™ë×_u…Ÿð+6.·®alRì|çìí#Z±½—÷Êœ^à9nºÂ‚ë`(Æ^2)'<7¸b /‰Ù)÷ù¬Ñ Ÿl“rîó©#°b ŸD-ÛÍlpôÂ'•8#)†m(|²žº®ý[ødwÄt­?ëšWlá“=ÓJ}vñIhClþ:ÄŽÂ'['¾'pWì­6ä§z zŒ['L\Ö œCÞçÎüó‘¾ù-|r&òtcLlïÅ'¯Î?½7üná“©ˆ§j ì³Â'î}›ò‡ã6.>ÉØkƒ{õµÞœêÔÔ©Í!íÆö 5º+¶ÆM’õi;´AjÜ„ö³ÞqOù¯Úêõ Äö>™Iüõ€»ç¸ú%ì73ÚSÏ|ÅúÅHÙ÷êÂK^ê°‡Óo›# Æl°½ù®ós7‚±(¼d¿õæÓgÅV]¿¤F: /™ïˆOùà[zA|×@Ϧ]Ö])cÛàsµbo=ÝÆ3¶c+ß/ØvÃ6T¾›Ïù/†{užèÍ0&ÞŠ_b!/X<ôYñKLØS(à5ìÃS ÷fàz³«ÏÅóø%*ì”ëâòK’Þ-ã _ìØË/ÜÞß½ºj i?k‰ó¡ð¯©{*~·êäåN«0n…—Hc¼ü³VlÕup¥ùÀöV]‡Ò¦Ñ]£ð’Á¾@áØ±…O²—dϱ{ý»¹ÎòiÇöÏ~†W}Ë‹&`xRxIgm¡–‚ßÿå3Ø# ·Gh½ôµc«‡}tû|RªçEë¤8[¤]|’ç/æ¾äÖã4ÒtèØÞ·!ì ÓÄÖ¸5šgëé ßíwÜ”ï%ØgýŽ{ÞäÔ¤êqº¼äà.'ýÖ-Ïf€ïÙŠÕëIÈ¼ŠŽß½u‹N¸œáü­zœ5±_t“`þV=N“ø›?ïŠýøMÖÁßVySÌÍÈöNyrʤêqfÔƒÎñÔú[±¥;ÓÉo¼cÍŠT=NöÄïÎhعw.Òî7¨ªÇIŸøÝÕ‡±vsã¨o¯ ë¾bë>Ùc{ŒIŠ_Bùù]Ð0¶ô‚ð-½u8û¡ô‚ß±P Å/i–Tk¯ÀÓâ—4ÔùÑ9…ö¿¤÷—:”ÄïÞw@ÿ›†ÊŠÕ«-Ïõ"¿k·†5žôÙå—`­§0çT.¿ÄÄþ¢ã²iõÎb¾2踬Øz¿ó•¸¡rëq&Õ­ãÚpëq¢³ ÔöÉ­ÇÁ\ó6·A¬Ü:álC½»ià [á%`È~ÚëØ÷ÝMÄ«`®êqœÇÂñ·Ýz!N:֬ȧÇXgÚà·Ýzü®m9Sh劉êß4¬‹[ƒþÒ»ž!° …—t¥ºlCéá)ÕYê˜0võðŒêq÷ÔÂKt²67­Í[ƒ\ûÎKߨ^רt8‡ /1ÔAÞßÜ^ /ù2áúíÁØ«Dc¬µ}Rx‰wÊ·¨á^òµhs3Pw ~õ‚ÕoÔCŠ_|’êÜ·N>Ä~ô‚8¶aJ/(29¿ûÑ 2nÌIÿèQ-ÁÄó¢êqæ ê‡ì{õ̹Nxâ<«zœÒxãwåjQU@]¨T=N²§[Ÿ¸6o=NýD½Üzœª' Åï~ô‚¨FlB]¨\½W“ê|û¡ò8J:Ùñ¼øÔãPmÔp‡5ô©Ç¡5d¹E™ÿ™7Í™øÝÊãLAM1‡ù;oþ-0g÷õyóo0±®axטÿQ[gæä¼õ¿&øÝ7Ô~œ>2#¿±5n¨S6ÿX‡šW©zœfT/’Šë8ï¸ ¬YW ˜gUÓÜ0géðÛòæß&i,®·ªÇiÚè=ß'¼‡ª§)½ÉèÓ®Øë0ßÁ7YÕã´Œ?CJï5ÓêØÞÊ¿EyÏ?¿«íê+ së ¡¥÷úÑB|x͈­}Rˆ=žR;ö£«ö‚Ó6ˆÕÿª©yS-½×ù‚ÓŒ…–ÞëlÁxjÃßVç›OÂ5ÀOxÅΪ!M®…Qüm¥¯œ”k\w-gìêkŸ¼±å³"/Ø pr´üq,ù·îŠ­:aþm±U'<ï A¼bë>ɺØC û¡î“Æm ãVõ8ÊÚ°«°Ïê0_üšçÒªÇãÜŒB~SÇ}ðBNƒV=ÎxióÌmÇŽû6åXÃ6\}eÂ×W,¬ÍqßÝÌAïá[ïn æÓo+¼$yŒö3½x‰r Ö¦/‘Áù À=õâ%œgŠë­ôK287£«S¹~‹Œ9 äET.ÎÅüjsŒ•‹Ëý},J¿d*çqhO-ý’Mò öBNB¯~ɤ3kˆa{+ÿÆú!»U¹þ¦Œé®y¹þ¦¼Þ°6JËOعÞiôÀØò¥UªKJðŽõ]š¿}¦«×OX™ëã«×Ó˜r({êõî„鎎{jÕãØäÚ¨\ ­z cnžoUó¹N~ß5pï«zãœpW¼kØÕyâš×ãVõ8šÎù\óö©àº[ »õ/ž!7ÕªÇQÖ™úÚŽµëcNí¨±ÑªÇ!?ÀÉOXóUÅ'¶áwo}çõÏ7»ºjT³ø>ÖªÇMæ'ÖA/H«g(çõÔriÕ㌗»ò€ü…V=ÎË™OÛ[ù7¡:À }Võ8õâ×s ¿ë—oÿr·‡ùPü’ÞÇKýÌÉ«÷´æ;ÿ¶â™§r×fñKºð¾ƒùB-~I7âÀõ‰ï‹â—t®õìï\qÇ9†ÞYZü’®Ä  Ý¿bï¸q^¹ãZü’Îu‹ —µc㎱ó9„ý0¯véd^~7¯–-srð ¸z¯Î5 ‚÷’«÷*ìSÑqÍ_½Wå·HàX¿äÍ«HÛ 7–ƸãÙrõ^“üP:ò*ôê½¾èÌŽ±5n“jíݹŠ_ÒÞö_\ÇóÖu@gË™BGo=úÇæzþæ‹¿„| óÛgåÆÖ¸!v•»Ü¯Aì­Ç¡öð»]±7ßíÈ3Ÿ.ØÞZoÈœ» صÞPjþéƒÚ[û$jêlœ p{-~ɧý‹ooÓ ¶ê¨Pÿ!öµæù]»üôµMÿÁØÚ'±.4¾ë,olí“X«ì¦Öf~I"æ¨ 8­]~Ioµobí}îl}OÈû[»uT†Ú7cR{/OÁP ´aþØn=Ž‘¶æ=ûÆ^=óÄœ„5л²â—4Ó`|}@l­·؆1 oj—_Òæ/¬C¿¤MÊ3LÁ¹Sü’>Hã.Òð·ÕzÎëŽ÷Š­õfœÇ‰†¿-.‡È8_cQü’ŽXÅÖ9í0×û‡D9µÚ„Vü’®N9@ÔL¶â—ôˆñ…Ü¢ñ¾—ؾÿB{‹_Òi®'ôCñKz¨“.ä¨l\}eÊ´.Ø~÷ÒÞ톿펛²Þ•ÂÜ)½WÒÁð?ž¥+öÃÃë¼æa É­&í±¯TÔ­wz¤mÍYÜ /X;i»4æoá%ë}@uj˜/´ÂKF’6¡£¾œ^"´Òrvün½ß­ GÝ[+¼„7~êõ´cìÕŦ\³äõ¬ð’!´Ž%qm^2Œµw'hÆ™Þq#½¶Žº_VxIrùhÀƒ¶ÂKr06ˆÚXvõK×>ê¾côÛ:Þå>x Õ"¶Üf»xI쇞•+vÖwé=/¸†üúã âZ6Ôñëã=…€wå×ë[lSá·^²vjÄ‚†€æ·^¢BoS ÅØÊ¿9éŒ(ú(øõÇI®´%þ6¿>6´ONðñÂKH ô‡ ˆýû¹O µÎ!¿þ8è±êZâo»þ8ÈAö “Áü-¼ÄGÃ>û’Ƹ±•ï6:[Z üîÍwÓwõaüãCã&kèúã #O7ÇyöñÇI7< ýúã„^Òûw¾kîuøÝz¿5â »a{ / BkÛpýqp?³oÎ[ï· _® ÜÏ®?N ážkþòK«XßÅsÞ¯?N’n’+Ô(¸|ü»É?k8öÙ}wóŠòÂK¦‘GšõYÕ¿‰“¯râX^2ùHVìZ¼W#ŒtེïÕÈkËÐÊU.§çﺩ`ô`Þó{ÃýÁµx¯¸GÅ.ãÆöúý.é¡7ëå™›Ñ&0¶øÊè«<ך<Êõú>Ðý¬¡Ž–ÛÕ3¼O|ÝíêÆÚpŒ½zæß8ÑpO5¹>ÄÁ@7½¿µ€{ë×Ox²N$æýýú ;Õ±®æâw¯^å»;rÝ®^P°'à^õ8)\ ‹âU“ˆÛ¿h?zÕãÌWÞ`Blé)k¼¥½êq&sQÆ‘W=N¼`Ž ´ üÖã(ó'ûÄØªÇéÌÓíÀóë3۠إä¬o$û¡øÊ/|Z¬]÷ªÇ±ÉV¸>^õ8öÂé¥ßVõ8ÆÚÆ£>éU£“y+ *·þù žW=޾´uè½êqd¾pè¿[u‹ÌG\¿ û¬øÊ9#¨åqëM9ÿ8æÕ "¢ž ƒáóê1_ý/|Vpˆü 3÷YuÂÊ|Ä | ŸÅWf½ÌkW×½³^öƒ—®û‹îmâwË·5¿{~·øÊјã‚ã6‹¯,oy‘'¶íÙ.·Yy alñ•yNöÀßVxIZ׿ñ^=o‡û9O^xÉ|ÑÃÃZ/¼d:ç$&Ž[á%SH»è;¶øÊ¬g¾¦)ì;…—¬;^²~öY½”t¿ºÀ¾…—Dç:Ÿga^âŒÅwôžˆvßoœ“H¨o‰ÂK|PìËwõòéþ0'¶×Þ=V÷½j®¢]½ :ç›÷+ÚÕ bþïîm´ëKËyüné±6KëPS…—(Žñº÷%¼³¢ðm|®5E b¯^P§\Þ•ãú £6wþñµ}qý„;ù%I8~·på Ü^:ð˜¢_h#Œ4À“0úÅ•;æf>.¿±Ww¦žŠïã(¼¤#¯mþÙ<Šglá%£Mü®%ŽÅ¸ùnŠ<* /X>·dL@¬\þâ©óWoûÆêÍÏã;+4TâòK| N&`ÐQx ñ¶ã»”ñÆÖ¸a^Úw‰Y‡ØùîÉíß6Ç7¶på¤7ïDœ6 /‘¡I¹ÈFá%¢Ôމ߽ë­%aW8 /YO†Ny\ó…—(Îçzô(¼DÙ¯Î0Ò(¼D-œú!± ×÷¡N†ý0oýγ/nþýà“Ø!P…—˜“¾òg7ü½zx\[x_èõï&íhm8Ï.^ÂXÛœÔÞ‹—â“ëzý{ñ’AëbÝØ° /1ünp£ôKó8¾½í°½·N˜Ö1Õ®G闬؉{I\.J¿„ê禩CJ¿$Ñ×hn½xhCé—ätÊó¢gi”~INÊå÷zLqñ’¦x Ö¡Ä/¡úËŽí-¼µ@óÏDü7.^2ùþ0à/á·3àÐÇÅKëb£—N\¼äE“k'ïßíîëQxÉ‹ÆsG]Ö¸xIL~oâ±ð’]°Æ±pç*¼d¶à÷&Ô‚ÇÅK‚jºÎW¿„kúLŒ­úî>øÍ€÷Ô‹—¿[ÞzQx‰³Þ ¤~wlÕwwó¿½!ãâ%‘ü~\# /1åÚ¾€:µ(¼ÄXϱè#ÆÅK‚ñ>WümUßÍïÒ&ŒÂK´½¼ û¡ð’·ÂK„µ H«= /îzóBŸ]¼Ä_t¡.? /ƒ¦¢9` /I®q4‹^Â\À˜B\¼DHs ÐSˆ‹—4ž;X_…—´IøYG¾\\¼Ä^ú×ñÅK^ü¨çYñK’u¦»n/qæ#"n/aoÑ>°½/iöjql¯þ—g^wÐã_¼„ÆÞҼ䭾¿WÚ¹žæÎÅK‚纂¶q\¼$¸½ê„çÅKôÅGêÉfá%Á{_›Pã8 /yÁlšS¬Üzt憺Bl廹ðëþ{círdÙ{æÎ,¼Ä×´xLÍ‹—$i4£>«wûI4ô:œ…—¬§)kêÀ¹9 /±nJuÂ×›/™9§g˜—_‚5™?ÖA ¾+—3BwÄM³yù%ƒtˆ¾è)7öÖwïUÚpë»»¶<¦Yx‰ù¬´¼Ìyñãù'Ó± yùQë€Í‹—(yˆ»¦0/^‚Z¶?x Æ^>— ¯­a½Þ¼xI8½EÅ^2ßCnÀ™…—ÓØÞ[×ákˆsÍÂKDÛ¤ï ¶¡ð#œ °•Yx‰½ =± /Izo¦ãX^¢ÒðÞp¹)WO¼ê¥z^bMSu(³ðâÓŠAmÔ,¼Äž&?ÜÛ>ð»·>€êB×µû¬xAxbŸj©ßØâ¡Nú…ýPþA|®µKÂ:¾ú%«ö:o=N'±Óoìå‘ç0œ;·ǨvÒ7š?a#ÎS7ünñ‚fÒ]Äùpý„“ôH 1±yý„1ª{€>»~¨%³5ˆ[™U31ß"lâ¾n·ŽŠ´‚Ö|Õã|-‚OlƒzÓYõ8‰c!›Oý[õ89;êÿ¶~Ô,¼¤ºÂ_%õ7öêbҤƚ×é7oêØIàµÍÂKz}ËZ®¿;Þ½id׬Àœ,¼„40×#V<¯?÷Y*ÔåÏë“€—ÈÞ¶`ß)¼¤we­k·ÂK:z‘ìX\o…—¬G Íõgwá%ä?´×äEfá%£;é‘¢îø,¼¤ãügmÂ*¼¤'i—NÁ{Tá%CyƒÓpN^2P/sûCNlƒ]8lƒ™àwýj]ãÜ!ÿŒ®îQ£A^d^Ò2ïIZ³ð’O ó÷ã}§ð’®Aú´¨…? /騵bÞÏ /iÈ÷Ô‰ë­ð04Ù±‘‰í­õfs'¦Âü-¼¤Õ÷F¿Í¯v?Çâ½äâ%ƒæÎ÷Æ^ÿ®Ÿ¸G]¼d°ŽÀÀ³0?þø]m¸Þ²öÉäZå„\ÒÌëÐH¹AíÎ̹ƜT£€ûN^C:cçÀý,ío´ëšqܲöÉ â/í¦[þ5àÑWc–Þë ¼—tÇùPz¯c°V;rþ³ô^ú(Ø7}âÆ^ýIÑÌh;®_õ¯Ã™•íúP}‹uxãd»þΚ Ûp}ûˆ¿øæÍÒ{•¤ûd|.<ŸØÂ•q__±´³ô^ÕbQ$KïUç`my˜¿Yz¯Öôâ;Ô¡dé½j’.J4ÈçÕ{•Nº Þ"ùÑ{%ÍŒÀšŠ¼z¯IZaôÛ¬r“53¿ë7×A5ƒÈ[ÉÒ{u£Z®†ùî,½WŸ¤©óek{c³4}ôlðÝ’¥÷N†ÚyYz¯‘”ËoÓ0¶øÊByé6ážš¥÷:û7áÌÊÒ{%~µÓo¬]-|Ö¨|w–Þk¢7ÍÖ¨ÁùPz¯Áz6€så¸ùî]Ç6Üú€Fçj‡äõTW× ø;yý„YÃh]\?áNZ'_ÖŽ7öæ»çYWÜ?~ÂêEðÝ’×OµÇ|Û@bn}€ ¶òU*zco}@ dˆ)äõö@,hâ[/¯Ÿ° â“£G Ë'ü° ¹3Yþ8iŠÜƒlÀ•ÈòÇI¬áÏ­-ûNùãä _ïž©×÷á…³‡ýPþ8«-”;hþÌdùãdg­>m^~Ió¿êUdñKf2»A H¿dº³f=ðiÓ>>М†ÜA¿d›:Pþ rTYü’Ét¤I’Å/YçHþ-g™öñfî8}÷ú¬åõ”úáú@ów…¾{} ™§ë8Æv} ]þÞÞòÇaýTx¦ý³eêþ@s²+ðKÒdó±~ãé׺±&jâw«®cpîk‚Ò¯4óÌ ê’Ò?÷IÎoBN-ýúQMÎwC¾0ýú@÷oQ˜…—¬ŸFm‚¿­Þýï^õYx qd<*¡ /a?á6¡V#/^ÂuIëûCá%m2'§ulC½»_rØ¢øÝzw¿pþ×qá%­sMPïØgךtžÖÏ…±ˆë/|{˜gq} û‹,ôCé—l’(·ædé—l}nôCé—Ì¿Û't°c WîÄÁh5 Yú%1¹ ¨ž¥_&/¹fümךëÐW#ç­ï¦½¯iÃïÞ<΋¦è gé—ø‹/­‚~Tæõæu^¨™·.Ÿ´…&½Š_b3œtˆð®Qü{ѧE-Ð,~‰¤{Éè[ù·F¹ü/­à{õ”rØXf¿DQã#÷î\Å/ÑÖ„¹¡p*~‰øÄ¼4Öðï¤ò±Ž\V‡ÊúCñÌ;åÑÝžù¡[ùî Í·Žm¨|7žYsýSÏwì ¸uŠ÷õÔ'.·b+ßm\wàOþúн<i¤ù¢Øñ®²uz[廃ü¨Z>k¶WlÕã°önFÀo»õ8¨i¶¹Íco=N#Î4ä[Vì§Ûð%ãyc?ú%؆/ ·[üS ŸO|rÅV}Öw¯Ø®ØÞÊw÷©ÄSпW¿óN±q.ƒØâMãØ‰m¨}ïž«lBŠ_âÌ«è0ׯ~ z™Åw½ô­ú7ÖBÀßY±òî/â{O…uQü’Ö! œÅ/Y[ißhƒuQü’ª›é™Ø†ª[ôÀ÷¼ œ¿Å/‰¤ïªâ<+~ iUþèAø]ý’¤<ú‡Jõ[÷ô£²&†1.~ åÆm[Û`ê^‚i¸.Š_’Áx5}·ø%i¤‘«àw»b?¾FJ˜î;WïµuÂå×üÕ{Å=J÷Õckܤ[¢ æoñK’ñ¾†ýà×C}1W·mêjÜóþs$ŒÅå—LʹoÞÄÖ¸ÙD^E„CÿÚøQÉ.ƒßVü’D>¸lqhCá%ëœÃ>k‚s§ø%ë­ƒãÖÀOxËó^~5æyeà}çòKÜ1×,­áwkÜB1Öh½^²îS”sŸý{}ÄÈÛY!¹bkÜc¸ç¯B¬ßq£Ú³®¸—ø·F¾´Úð»5n/^¾{ù%´§®VÁü½üÆâ£á|(¼¤wÒüö‰÷ÉË/´—ÔÇ®Øâ— ^½sÍxºüÌåofuüá—íÕš°—\~ b¯¶sÍÐqó¦ŠçÐ΃@츺”oÛPyS¥zÈîŠß-œk²^›ãþ{ëqiѵá0'o=ŽQ®#Ý0¶ò¦SŒòz ã׿›´ ×qƒí-|¹–[[Þ`®¿ÄÌÈÿtþWléÎä úMð¢^±åß-Të©çzñK<ú ØÀöêõä&ÍÃF±V~¡ƒôï}Å/‰Áµ´ô~+~ItâÓ®' ~·êßÔ¹¦xÀ|(~I /(¾éÙ›7oÊ÷õXoÅ/‰Iù¬œØ†â—„ÓËÏ‹â—×K*¶áú¬¼ÔÕ=k=WìÕy"­4ƒÚ‡[ã6é½i†s²ø%‘ä=À¿eÅ^ßõ—šâßÍû]ý‹æ¾ýܱ =GÀlVl¿Þï´6'쿽ø%Óhð5Z±•m¬ æN/~IÒäÓþäï¬ØOþ­ñ^í{ó¦ ï¿ï½ÝúîN¼§~¨¼)ëpªS{¯®qÖ\‡Øâ—äK½?Ôu¬ØÊ› qþu<ùàÒ®>£uÀÍ_±•7'½bÈû¯X½šq¤Å¡Ûå)f²'öYñKrá“J}wî/Ô_l{×ÊÇi¾xÃïÖ¸5ö‡lϺÛ]ž^sõlžÒé;öêá‘[Í¢{×ë~=¯Ï;V.…suOl{ÅV}wã¼èµ­ØÚ'½žKeÇÖ>)ìuØÛPyÓd=&ðB]±Wsà »b«¾û­ž¶Ûv¥îœ }ÚíØ«‡Ç¹™Þ¡ R|®AþǘÇY±WÏyŒé»¥‡gjSñ»=¼} ¹<¼—ü›al\Ÿm·‰±Wo²†ÎÉâ—ŒI}ÖòY×¼ê`\Cê°ÞŠ_2Øwr-VƒØË3ï¬ÿ0aN¿¤Û‹6Å5ÁN{ÇÖû­±×ásËØ±•7õ—zÓó¡ø%MýÅgûìÖuWb]aÜ.^2Y3c·‹—¸p-­Á\¿xÉ0æÃàܹõ8“s·Ô¿·‡õÚÓ¶}ÇV}7çòÛ~Û±…+ÏI}Öc WöA9ÀïÂ^õ81ìÅëæoùãøËX<ËÑvlå|`¾p ž±…—–øög€»}/¼Äñ®PiëCWžtÕ†®ÑËÇð-½ó›€ïôòÇ1Œ]Ç<ÆVÞTÉofLjƒßïNªÑmøÛ*#ý%û·ò¦91vNx÷òÇQ˜ß ü·—?Ž¢†à®Ü×ãú$Ö‡9~·òo“½Er€=>zxøÛÐ÷aÅêÕä#Ž¡%¶×n’ü: .tÅV¾[ûAA'}ÅV¾[à^²k 7êqu ódiŽß½ãÆùã![üCoÆÕmÀo+~‰¡çùÎã:.~‰aîà'Ï c\üÔ zÛ;ePó—îöë–€¿­ÖÛèƒß°6‹_bš”Ëw|ÇÎØ ·ä»{ñK,ÈרñX”žBR~3§ÀÚ¼üÎóFÔ/¿} w.°Ì^ü!N¯àœ,~‰¿ð ŽE^ŒÀ6LÐ)[±u¾µ$¿oØ¿ùXŒýP±cë|cÛ @ìÍ›vÒk³Ä>«¼)ž-[¿ð‡Qü’¼ó]—oéÑ>|.ÖG„¹3Š_² II›ðY ³bë^"p. z¿d"o{û·¶·ê»SÙ Ê1¶ò8íŇðÉQüª?Þí;o¾…0&Ð\±uŸä1nô蟼)å|$ Ïú§N˜¾«Àßý?ê„ý[ÆèÆÞºEªÏÊ ëx^ÒÑ÷Á¾¡™{ëßs(/ýÖ¿ O°b+3I#¡i`lñ^{RŸ ÜåFá%Ãhþ¢¯Æ†¤ë­GÚ ÃàÌ…—HwÂí=ñ»ã¾M©þ1±Qx‰}Wð¾1nÇ {m€9ŽÂK´9ç:pÜ /Qu^oÔg7Œ9⸛Ç!¯!€AÂKlé—(Îõ‹—8ù{àš/¼ÄÙƒnÍRhCá%äCê[–~[á%>{&*`Уðǽ/ÈËw—OU¾%IKÆàœró83èΕøÛââgÈÑš‚ãVxI$wÀù6 /™<ÝL±½…—nÇÎãà:.¼d¢æ–K”ÞØ[ÿFûúW:ìÆÞú7šgkÂ6Üú7ªŒŽë­ð’-¦Bó0èQxÉLÒºîà´b£¾ëXkdÈ/·‡5Qw=ÄÖ¸©¿Ôå¸õ8’ÌmËvlÕã°Î^{Ê€ïØªÇÑOã}vëq^ò ¸bõ¿üPÖ æÎ­ÇyÁ^ÁŸak€W9ký9Îõ[\Wõd+v^®%HŒ½ü A2æŸí6yu¨ ÇíÖãh0Þ'п·gpÿʳŽj§Çn=ç’ÛP¼ Õ—ïbª‡5Q›âŠË碚+° Û±õÐÁ5'·±ÁŸ<̇ÂK^üEÚH·[#/ã†í½õ8/cy§QxI îÌÚ×'…—Dù(ž·GœðIÅwKá%ŽøÃö©È(¼äÃ3øÒ¹z¯¨…´î©)؆ZoÈémí8 V/×êç8rñwÒ&DüL /™NïØ¯²¼x“ý»#°jŸä7¯ê³ËW&¼äsÓþÄ^¼dÒݽqWìÕWæ{uÇö^¼¤ ö“Έ\¼DHñ«$ãÆÖùÖÈSS&`ƒRxIcÿ /õ[yÓIÞÀúéWŸ‹½S@§aÅÎwϱíJcQú\Þþ_²®;®>õC½•{ë„0¦61öãÿÆœHÀ®¤ð’Ñ™S¦8w /bóý]±¥«¤­‰¾ëÛGµj¶ùgô‚Vlñ„j5foøÝâ)8aБÔÞÒ¡O%®%æ,¥ð’Õ™äÑcð6•ÂKÔ˜ ^ßûÌ­~¶'bWRx‰uÊ34Áý¬ðSÂwRó/…—¬ þ.¶áê%žC´KWìÕ âœœëryAF9‰0ünñ‚’ørÑ Ÿ%…—x*ÕC‚¾çŠ-Þë Ÿ•AûYá%aJ÷:‡ /‰IÏÍ¡¶O /™¨Ç´¾‹\¼DÝKõCá%˜—Þç<Þ>ú%¤-Ñð·åÕ$i4n¸6¯?N§úÍÀû¤\¼„s– ü»Wì¸íűÐTXÇ…—lA Ìå‹albƒ›#€k¨ð’iäiü‘âøõËÓEnÇÚá`Œ /™Xß{Ÿ„¹SxÉ‹ç.Ø-íØâ+‡ïêiK÷ϾÑ›yW2bk½½` ˆ‰Iá%þÆË,H /q}Ñøm…—|Îô‡ž¶÷Ý/€ïHá%æ/ÈÀöFi¾(¿ç»(…—X/Ú 8¥‡çóe,  /Q‘øÛ»[ /‘d?ìN¹õ8A~>M黕ÇgL¾«×†ñ’ãvõ^9pà'¼kcê¾£ì¹ðÔÙVÜ…GÑ= ß8qq®A¸òÀ{êõFíÝÍyÂ{êÕ{ų%wy ìWï5H+ ÏØë'ŒĹŸ °W_œF¸F‚§æŠ½º3ìoúìÆkïú©;×|á%™oã†ß½u‹äO6Þ× /I'ŸŠ¸ÿ^’ãm>À¸^BµÕ»Ï #…—÷`÷`ºRxÉtÆ£ê$$/Oa £‡‘ëÓ2 RŒ½üÉ <ªaŸ}𒙌]a{ãòV0V°^Oòò'Û ý\C…—ÐÙ²yxp—Óvù“ÄÔLŒ-^PgM’ùô"Y±ãz#ßdzý„Q7ÅvÁïêõ0 ý>ðöX±5nbˆá ð\X±WO¾‹¾´+6îã½Ú@£fÅ^œ‹0GKÅï^=ºŸÉÐÞ~qåFwp…\¨ö»ÞH£1\ð»ã]j×îÀ^¢¥_²ÍÝ0ëXµ_=…‘ôv‚\³ö[—?¨þm:Æþ‡žÂ¾Û öí˟ĥBþŽ–~ÉLâ¢L¬×~õGD-¼¤u EÞŠŽë»žì¿©øÝ¹iÉ _芽õݤc îöZxIzuÄ ´ð’æ}K¨ çzÁ ¦âw‹„|û­GJm(œ õ|S@± yëÆ©>Öq®ËÕÃ#ŽV4Àtµð’5ƒñ}Dߨ«‹Íž»È™ÖÂKÆ4ò ê¸ïÈÕŦ·éêè‡ÂK„q†í­¼)ÖÒÆæ&a?Ä­ó¡ö"¿Z /!-¤]ojøÛî;À ÓUÀa´ðâ1Å·tú½ùnÂâÅ3­zq.îßaøÝ¹{¡þƒ^¢ÉÜ™ Ø ^bƒ0·Ž±õ~Sòò•Žk¨ðÃZ£í—„ó¡ðg/(Åšm-¼ÄQãysˆ&|·ðGôæ1áUx‰ÇkÁµðO® Em7½ü’Nù7 <»?z¯T “^½×I¹º5Ïð»…—ôæÔàËéÅKP÷`×>PŸ^bì׌µëjçâ¯ÜÁµð’‰9‰¹‡¾ë—”äíŒ1à¢èÅK’ûz‡±ÅS@ݺܖ9[<ô”Ÿf_Y/^‚9µ­Çûïå— :7s6¨·§Ó¹é p»ü®=ƒœ]~‰[£3¶cì­ö~µ@ìÕã»\"wÆ /YÿÃ:§Ô^»Ü:¼Ó¦c¥_Ò˜oÔ°ÏJ¿¤!V<7c¯7û>¨ão«õ†:psÃÇÏ{”•~IKê‡/yŽÛ¯gÝÁð»ü’pÆ5&¶A®?q}p »õ8J\Ÿ6¿kï~j[ŸrãvëqÜ8¿éøÝ[Ó“ÞY‰}VïîNsg}[¾{¿ÇÞס½~ i¾ø„|€]~É œ{â}Ò.¿Ä©Ï2á]h…—ôIo=Ÿ±Å/i„] ø\­ØÊã(½cÅ [åqbŸ`àºü®‡\W!ØK.¿D•Þzàñ·bë^"Ä«…·©^"Nš¾>áÍ`—_ÂØ \Çòá™7ªõ„³Å®~I0ÇÐpï»ú%Ù³™Î »ü’1ñ=Ôzb?ܼ©a¯¸W_~ ú€l 8Ovù%XGõR/m—_2ømŠ5ævù%èGµýqàíd…—øä·žãº¸ü’F5æ»¶bëÝ-Ô¿µöVxIðÛ4ûáòK:i¤7Ô /!}åu‡™m¨÷›QnF›áw«ŽÊHÛ"®y½>bFw¹Žk³ð’htOX£k/‰—;-ŽÛÅK”8Þ¶¡x ÞódVx‰ÍNþy+¼ÄL‚ßd0Æ…—Ø ~Élx¾Ù­[¤\h ÿ× /Q£:*Gþ™^¢r–æ€{Zá%2©5ðœ/¼DÌ8¿‰sݯn(å°ëÍ/®,ì1Õ° u¾EsÒ:Á}²ð’ab´Þpþ^2:åê2p,®ÞkP?´ض]½Wö©hüݼ9 þmøˆëoj»®àп…—4a͸ ¹[+ý’LòÊè¨Wa¥_²;ÛÛñ~Vú%‰¼ø—7ºÅ§.ŸÞN‰ãVõ8Óè»-[ñÌ…ÞC³Q{+ÿ´WGOlïõ]„§¢Ž·Ýzœ$ý’¯ëèí—ëÞ)'Œí­zœDŽ÷Üž°+ïùÂI^õ+öòÌ)?/ùB»üí„ÿªcl½ß‚Ö›†m¨õÖ87îx—›ŸüaňXá%=œ~ÛÀ½/?ù7ì³Öp>äÕU#^±'žC¥÷:Œï\ÈÍ·Ò{I¹Û‰œS+?aéÉ:.xÆæÍ¿Ñ¸µŽo‘¼ù·ÉoôÀßVç焳 lï=ß‚¸·ð3Ë›£ßÖ1ë¥÷ª¤„õ8^z¯ëÞŽý g–—Þë—iãoÎîÕ^z¯6'ñi±vÝÛõ¥ÄÁÀ»‘—Þëê;Ò°Bís/¼Ä…ø0ïr^x‰Ggœ j̽]_Z%o%Ä5¼ð’èT38öï—÷ª”oÁ·“^BZËÄ>+¼ÄYÿL0sï—÷jFçöYá%Þ;þ6Åš+ÿø Ó¹¹–+Ì~ó¦“õåà®á…—X'ìU1Ïë…—èKÞÒ^x‰bÞ4÷æCá%ŠäÜ%/ÐgW¿$ˆ³×ñëW¿5·g)œ~õKáöÒàÌò‹—$a¯ ^ß+öò^_øgÀÙó‹— ЮßÄ5tù%Ig¡›áo›W[“bñ ·ŽŠö(78³\.>I¹æ Àнð’†<èdþƒ^Ò¬¿äXa, /iÞþšÉ~ýq‚8{kKüúãÝÏЃn[øVþ‚ënð¿þ8Ì]4ãëÃ5+†ºÍ^x ˆ°þôröüê½vºO ÖùÕ{•Awø\®—Dwð†úë®÷^BgË@¾‘ëåQ½ˆ(¼E¼ð Òh$|Ò /Yÿ\××fá%¤±ëšq*¼D¹ w{/¼D1Ÿ5¿©¥kWƒ| ]€kévõ•©Ï õ=½ð’uâsàúÅKï¹ßN€øÅKtàùÖïó‹—4Êû7ô´ðÂKÔ)W×àë~ñæW7Á»ÜÅK½q² lCáÊAs= xx~ñ¡;W:èÖùÅKÝ£ßó^xÉàý×P·Î/^ât§¥¼´_¼Diߘ;ð~IМìxÿ-¼D·× _èþã¶Û ï/¼dnBïnœë…—˜Ðúü´Olá%Ó`ÙI•àýìòKäqÑ¬Ò è‡â—¬)åøÝ[㦄ÉY®Û ×ÃË VÑÅð&þÓ^ÔÎó[ÓõÙÞ&üîÕ1|lâ‡zNm(ÝЧ(ÃIkCîÀ‹_Ò•¾kÈÁðëó4¢9wòùñ]lrQ|^ÿ€ÇD92©€§ú¼zx‚±y >o}÷xÆæ>[~ÇbüÄîq“õhm8>q®ÿà%²“bøÛ¾( 76*ö±Éè ïˆ?xÉ6p{Ç¢ß?x‰lpÚá·Ù÷Ýèç·ýà%ºÁØu ˆí§pÜöUÏã—ü»7ÿþKç æNá%Òå»Ë`ã÷—ü `Îù®èæûÆKþý1 >{¦kv¬ÿÄj£¹.óéß½õTb÷c‡bŸâ+vÛ¿{/i8ÆâO¯ï›ç»S©½\µØxÉ¿;±ñU@Qý` ›/ùw~¿Ñ?±Ã1vÛ.Âÿ¤ŠÅÚÔØxÉ¿ºq  ¨/Œ—üûÃöƒo<5ó,Ú·u >Ï€NCƒØ=n²}Úž±û¾n ±ñ»ÞT ýÛ¸(±ñ’muáyÑ‘÷/Y±ÍÇxͲ纈—ü»Å]î×+¶ÿ|×5:ž-Z±ñ’Û´áÚœ cå'ö“ãÿ>ð·m¼äß=HƒÎ!|‹ÄÆKÖw¿êq>}&ûÁ¾Û’Îc¥þÝxɿۨÕ16Ð(6^²Û+°†v:î0±ñ’·ø‡â]#ìQ±ñ’;æ˜xa.)F¯½Úžý+Û.Úðƒ—È~ˆˆý’»±R±C!Öñ}?x‰¬ómvnÆÚÕÇ{É@Ža”Ÿ°c6¼øÛ>úÊÔ¿˜[ŒòviøÝD­ë(?ay^Ï|L!~ð’ü椟=J6GÖÅ^²éç€sè£ñ;þWÄʱÃà.å'<\qþ6ôÆÂKFs<‡œú·ð’1…ö䯯KþýÁæÃÄ;m¿${`Zw<Š_’⸟5IŒ=盘ã»[±f%6^²cÑ¿e½çñ^/ùwûÚ›PžçúÆKN,ñ2#ñ»ò_mp3l¯þ×oû*½¼±5n ùÍâ /ÊOx 'ÀCÒúÆž{IÃ<ÙæúÆKþý8Lü.Öð‡žqkèÃôHUì^²®ù9° vöIIÒ2èÛ`ç^²ÍVáNOº{î%¡pfmOÀícã%ûìžôÝ™€kÄÆKv¼vÍUàwýç»c¨`lWüî9ßš¹áosÜ£ìœo> Ûë¨qvî%êp§Ýœ2È;ÅÆKÖÝÈŸD¤ÒäÃØþ3ÆÖàÜ”?-q?ûÁKüÏÝu¾bߦQþ8/^Põ^£üqjµ÷?]@O!ʧa¾p÷¨?N'or¬G¼„H5?ß Ã6Ô»û[J~úAžÇÍŽÍŸ±ókO­3«Ã›,6^òsïËç;`û Ü•7^²Þ ã·ž÷~׿u“NìYoûÂùft_³O®ÍËànoßûä‰=ï7ÏïÆ7eêÆÚÿŠàp·ï8#±ñ’Ī´!Ðï6⼻ǓDü£[7&ÆÎ:/ânþioí“ßÍmO=Ÿ±³ÕÝÓŸ÷‡¹Þ ޱýì;3'®7q˜×OØßY‚žXQx‰¸Wÿ,WX›?xÉþ!Θ`üQx J?ÞÙ¨¥_Ò0ø°¾±ç>ÙO»û!ð»g½­;´B¬ æaüà%ù­ ðé_Çó8Ï}²ñ;@eÂuëq„¼/}=#Ï>Ù…Þ"_ò7VêÌjæù˜Ç^²Þ›æÃæsá~Vx‰=‹˜®C ~[ù›œ…ºõÏð·ÕzS¸{ê:7ñ“ç’¿M÷š‡s¨ø%©ŽßmÀ[ù?¬¡scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/000077500000000000000000000000001514310134000217275ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/000077500000000000000000000000001514310134000225635ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/Makefile000066400000000000000000000116171514310134000242310ustar00rootroot00000000000000## Copyright 2004,2019,2021 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## TXT2MAN = txt2man MANPTSCOTCHFILES= dgmap.1 \ dgord.1 \ dgscat.1 \ dgtst.1 MANSCOTCHFILES = acpl.1 \ amk_ccc.1 \ amk_grf.1 \ atst.1 \ gbase.1 \ gcv.1 \ gdump.1 \ gmap.1 \ gmk_hy.1 \ gmk_m2.1 \ gmk_msh.1 \ gmtst.1 \ gord.1 \ gotst.1 \ gout.1 \ gtst.1 \ mcv.1 \ mmk_m2.1 \ mord.1 \ mtst.1 # Project building rules. all : scotch ptscotch scotch : $(MANSCOTCHFILES) ptscotch : $(MANPTSCOTCHFILES) # Clean-up and archive rules. clean : realclean : clean -$(RM) $(MANPTSCOTCHFILES) $(MANSCOTCHFILES) ## ## ## acpl.1 : acpl.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t acpl -Bdeco < $(<) > $(@) amk_ccc.1 : amk_ccc.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t amk_ccc -Imeth < $(<) > $(@) amk_grf.1 : amk_grf.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t amk_grf -Ilfile -Istrat < $(<) > $(@) atst.1 : atst.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t atst < $(<) > $(@) dgmap.1 : dgmap.1.txt $(TXT2MAN) -v "PT-Scotch user's manual" -s 1 -t dgmap -Bmpirun -Iopt -Ipnum -Ipwght -Istrat -Ival -Iverb < $(<) > $(@) dgord.1 : dgord.1.txt $(TXT2MAN) -v "PT-Scotch user's manual" -s 1 -t dgord -Bmpirun -Imfile -Ipnum -Istrat -Itfile -Iverb < $(<) > $(@) dgscat.1 : dgscat.1.txt $(TXT2MAN) -v "PT-Scotch user's manual" -s 1 -t dgscat '-B%r' -Bmpirun -Ipnum < $(<) > $(@) dgtst.1 : dgtst.1.txt $(TXT2MAN) -v "PT-Scotch user's manual" -s 1 -t dgtst '-B%r' -Bmpirun -Ipnum < $(<) > $(@) gbase.1 : gbase.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gbase < $(<) > $(@) gcv.1 : gcv.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gcv -Iifmt -Inum -Iofmt < $(<) > $(@) gdump.1 : gdump.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gdump -Iprefix -Isuffix -Ibase < $(<) > $(@) gmap.1 : gmap.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gmap -Bdeco -Idim -IdimX -IdimY -IdimZ -Ihgt -In0 -In1 -Inhgt-1 -Iopt -Ipwght -Istrat -Ival -Iverb -Iw0 -Iw1 -Iwdim-1 -Iwhgt-1 < $(<) > $(@) gmk_hy.1 : gmk_hy.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gmk_hy -B gmk_ -Icfile < $(<) > $(@) gmk_m2.1 : gmk_m2.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gmk_m2 -B gmk_ -Icfile < $(<) > $(@) gmk_msh.1 : gmk_msh.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gmk_msh -Igfile -Imfile < $(<) > $(@) gmtst.1 : gmtst.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gmtst -Bcmplt -Inum < $(<) > $(@) gord.1 : gord.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gord -Imfile -Istrat -Itfile -Iverb < $(<) > $(@) gotst.1 : gotst.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gotst < $(<) > $(@) gout.1 : gout.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gout -Bivview -Igeop -Ioutp -Irat < $(<) > $(@) gtst.1 : gtst.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t gtst < $(<) > $(@) mcv.1 : mcv.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t mcv -Iifmt -Inum -Iofmt < $(<) > $(@) mmk_m2.1 : mmk_m2.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t mmk_m2 -B mmk_ -Icfile < $(<) > $(@) mord.1 : mord.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t mord -Imfile -Istrat -Itfile -Iverb < $(<) > $(@) mtst.1 : mtst.1.txt $(TXT2MAN) -v "Scotch user's manual" -s 1 -t mtst < $(<) > $(@) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/acpl.1000066400000000000000000000045461514310134000235750ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH acpl 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBacpl \fP- compile a target architectures \fB .SH SYNOPSIS .nf .fam C \fBacpl\fP [\fIoptions\fP] [\fIitfile\fP] [\fIotfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBacpl\fP program compiles a decomposition-defined target architecture file \fIitfile\fP of type '\fBdeco\fP 0' into a compiled decomposition-defined target architecture of type '\fBdeco\fP 1', stored in file \fIotfile\fP. .PP Compiling a decomposition-defined architecture amounts to computing the distance matrix of all possible subdomains, from the distance matrix of all terminal subdomains provided in the '\fBdeco\fP 0' format. Since this computation is internally performed every time a '\fBdeco\fP 0' format is read, and is quadratic in time, pre-compiling the target architecture by means of \fBacpl\fP can save some time when repeatedly computing mappings on a large decomposition-defined '\fBdeco\fP 0' target architecture. .PP When the proper libraries have been included at compile time, \fBacpl\fP can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP Since decomposition-defined target architecture files have a size which is quadratic in the number of target vertices, because of the distance matrix structures, using compressed files to store them may save a lot of space, especially for compiled target architecture files. .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a compiled cube-connected-cycle target architecture of dimension 4, and save it under the \fBgzip\fP(1) format to file 'ccc4c.tgt.gz'. The dash '-' standard file name is used so that the '\fBdeco\fP 0' target architecture description produced by \fBamk_ccc\fP(1) is read from the standard input, through the pipe. .PP .nf .fam C $ amk_ccc 4 | acpl - ccc4c.tgt.gz .fam T .fi .SH SEE ALSO \fBamk_grf\fP(1), \fBamk_ccc\fP(1), \fBatst\fP(1), \fBdgmap\fP(1), \fBgmap\fP(1), \fBgmtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/acpl.1.txt000066400000000000000000000041211514310134000244000ustar00rootroot00000000000000NAME acpl - compile a target architectures SYNOPSIS acpl [options] [itfile] [otfile] DESCRIPTION The acpl program compiles a decomposition-defined target architecture file itfile of type 'deco 0' into a compiled decomposition-defined target architecture of type 'deco 1', stored in file otfile. Compiling a decomposition-defined architecture amounts to computing the distance matrix of all possible subdomains, from the distance matrix of all terminal subdomains provided in the 'deco 0' format. Since this computation is internally performed every time a 'deco 0' format is read, and is quadratic in time, pre-compiling the target architecture by means of acpl can save some time when repeatedly computing mappings on a large decomposition-defined 'deco 0' target architecture. When the proper libraries have been included at compile time, acpl can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). Since decomposition-defined target architecture files have a size which is quadratic in the number of target vertices, because of the distance matrix structures, using compressed files to store them may save a lot of space, especially for compiled target architecture files. OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLE Create a compiled cube-connected-cycle target architecture of dimension 4, and save it under the gzip(1) format to file 'ccc4c.tgt.gz'. The dash '-' standard file name is used so that the 'deco 0' target architecture description produced by amk_ccc(1) is read from the standard input, through the pipe. $ amk_ccc 4 | acpl - ccc4c.tgt.gz SEE ALSO amk_grf(1), amk_ccc(1), atst(1), dgmap(1), gmap(1), gmtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/amk_ccc.1000066400000000000000000000074321514310134000242330ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH amk_ccc 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBamk_ccc, amk_fft2, amk_hy, amk_m2, amk_p2 \fP- create target architectures \fB .SH SYNOPSIS .nf .fam C \fBamk_ccc\fP [\fIoptions\fP] \fIdim\fP [\fItfile\fP] \fBamk_fft2\fP [\fIoptions\fP] \fIdim\fP [\fItfile\fP] \fBamk_hy\fP [\fIoptions\fP] \fIdim\fP [\fItfile\fP] \fBamk_m2\fP [\fIoptions\fP] \fIdimX\fP [\fIdimY\fP] [\fItfile\fP] \fBamk_p2\fP [\fIoptions\fP] [\fIwght0\fP] [\fIwght1\fP] [\fItfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The amk_* programs create target architecture files for some common, regular topologies. .PP \fBamk_ccc\fP creates a decomposition-defined cube-connected-cycle topology of dimension \fIdim\fP. The decomposition is performed first by bisection along the dimensions of the hypercube, then along the remaining cycle graphs. .PP \fBamk_fft2\fP creates a decomposition-defined fast-Fourier-transform topology of dimension \fIdim\fP. The decomposition is performed by recursive bisection of the vertices, by descending dimension (that is, bit number in the labeling of the vertices). .PP \fBamk_hy\fP creates a decomposition-defined hypercube topology of dimension \fIdim\fP. The decomposition is performed by recursive bisection of the vertices, by descending dimension (that is, bit number in the labeling of the vertices). Save for experimentation purposes, this program is deprecated, as the algorithmically-defined 'hcub' target architecture is a more convenient and efficient way to represent hypercube architectures. .PP \fBamk_m2\fP creates a decomposition-defined 2D regular grid topology of dimensions \fIdimX\fP and \fIdimY\fP. The decomposition is performed by recursive splitting along the dimensions, either by cutting the longest one, or by one-way dissection, depending on the '\fB-m\fP' option flag. Save for experimentation purposes, this program is deprecated, as the algorithmically-defined 'mesh2D' and 'mesh3D' target architectures are a more convenient and efficient way to represent 2D and 3D grid architectures. .PP \fBamk_p2\fP creates a weighted path graph topology comprising only two vertices of weights \fIwght0\fP and \fIwght1\fP. This is just a helper program, which builds a 'wcmplt' algorithmically-defined complete graph with two vertices. It may be used to compute weighted bisections of a graph. .PP When the proper libraries have been included at compile time, the amk_* programs can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-m\fP\fImeth\fP For \fBamk_m2\fP only. Perform either recursive dissection or one-way dissection, according to the given method flag: .RS .TP .B n perform nested dissection (default). .TP .B o perform one-way dissection (cut across Y, then X). .RE .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a cube-connected-cycle target architecture of dimension 4, and save it to file 'ccc4.tgt'. .PP .nf .fam C $ amk_ccc 4 ccc4.tgt .fam T .fi Run gmap to compute a bisection, into two parts of respective weights 3 and 5, of graph 'brol.grf' and save the resulting mapping to file 'brol.map'. The dash '-' standard file name is used so that the target architecture description is read from the standard input, through the pipe. .PP .nf .fam C $ amk_p2 3 5 | gmap brol.grf - brol.map .fam T .fi .SH SEE ALSO \fBacpl\fP(1), \fBatst\fP(1), \fBamk_grf\fP(1), \fBdgmap\fP(1), \fBgmap\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/amk_ccc.1.txt000066400000000000000000000066431514310134000250540ustar00rootroot00000000000000NAME amk_ccc, amk_fft2, amk_hy, amk_m2, amk_p2 - create target architectures SYNOPSIS amk_ccc [options] dim [tfile] amk_fft2 [options] dim [tfile] amk_hy [options] dim [tfile] amk_m2 [options] dimX [dimY] [tfile] amk_p2 [options] [wght0] [wght1] [tfile] DESCRIPTION The amk_* programs create target architecture files for some common, regular topologies. amk_ccc creates a decomposition-defined cube-connected-cycle topology of dimension dim. The decomposition is performed first by bisection along the dimensions of the hypercube, then along the remaining cycle graphs. amk_fft2 creates a decomposition-defined fast-Fourier-transform topology of dimension dim. The decomposition is performed by recursive bisection of the vertices, by descending dimension (that is, bit number in the labeling of the vertices). amk_hy creates a decomposition-defined hypercube topology of dimension dim. The decomposition is performed by recursive bisection of the vertices, by descending dimension (that is, bit number in the labeling of the vertices). Save for experimentation purposes, this program is deprecated, as the algorithmically-defined 'hcub' target architecture is a more convenient and efficient way to represent hypercube architectures. amk_m2 creates a decomposition-defined 2D regular grid topology of dimensions dimX and dimY. The decomposition is performed by recursive splitting along the dimensions, either by cutting the longest one, or by one-way dissection, depending on the '-m' option flag. Save for experimentation purposes, this program is deprecated, as the algorithmically-defined 'mesh2D' and 'mesh3D' target architectures are a more convenient and efficient way to represent 2D and 3D grid architectures. amk_p2 creates a weighted path graph topology comprising only two vertices of weights wght0 and wght1. This is just a helper program, which builds a 'wcmplt' algorithmically-defined complete graph with two vertices. It may be used to compute weighted bisections of a graph. When the proper libraries have been included at compile time, the amk_* programs can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -mmeth For amk_m2 only. Perform either recursive dissection or one-way dissection, according to the given method flag: n perform nested dissection (default). o perform one-way dissection (cut across Y, then X). -h Display some help. -V Display program version and copyright. EXAMPLE Create a cube-connected-cycle target architecture of dimension 4, and save it to file 'ccc4.tgt'. $ amk_ccc 4 ccc4.tgt Run gmap to compute a bisection, into two parts of respective weights 3 and 5, of graph 'brol.grf' and save the resulting mapping to file 'brol.map'. The dash '-' standard file name is used so that the target architecture description is read from the standard input, through the pipe. $ amk_p2 3 5 | gmap brol.grf - brol.map SEE ALSO acpl(1), atst(1), amk_grf(1), dgmap(1), gmap(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/amk_grf.1000066400000000000000000000050411514310134000242530ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH amk_grf 1 "02 September 2020" "" "Scotch user's manual" .SH NAME \fBamk_grf \fP- create target architecture from source graph \fB .SH SYNOPSIS .nf .fam C \fBamk_grf\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBamk_grf\fP program builds a decomposition-defined target architecture \fItfile\fP from a source graph \fIgfile\fP. .PP Target architectures define the topology of the target graphs used by static mapping programs \fBgmap\fP(1) and \fBdgmap\fP(1). Target architectures can be either algorithmically-defined, for common, regular topologies, or decomposition-defined, such as the ones produced by \fBamk_grf\fP. .PP When the proper libraries have been included at compile time, \fBamk_grf\fP can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP Since decomposition-defined target architecture files have a size which is quadratic in the number of target vertices, because of the presence of a distance matrix structure, using compressed files to store them may save a lot of space. .SH OPTIONS .TP .B \fB-b\fP\fIstrat\fP Apply bipartitioning strategy \fIstrat\fP to compute the recursive bipartition of the whole source graph into smaller target subdomains. .TP .B \fB-h\fP Display some help. .TP .B \fB-l\fP\fIlfile\fP Only keep vertices the indices of which belong to the space-separated list stored in \fIlfile\fP. This allows one to create target architectures which can even be disjoint subsets of a larger target architecture, modeled as a graph. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a decomposition-defined target architecture from a 2D regular grid source graph of dimension 3 times 5, and save it, as a compiled target architecture, under the \fBgzip\fP(1) format, to file 'm3x5.tgt.gz'. .PP .nf .fam C $ gmk_m2 3 5 | amk_grf | acpl - m3x5.tgt.gz .fam T .fi Note that, in this precise case, it would be much preferable to use directly the 'mesh2D' algorithmically-defined target architecture. .PP .nf .fam C $ echo "mesh2D 3 5" > m3x5.tgt .fam T .fi .SH SEE ALSO \fBacpl\fP(1), \fBamk_ccc\fP(1), \fBatst\fP(1), \fBdgmap\fP(1), \fBgmap\fP(1), \fBgmtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/amk_grf.1.txt000066400000000000000000000044441514310134000250770ustar00rootroot00000000000000NAME amk_grf - create target architecture from source graph SYNOPSIS amk_grf [options] [gfile] [tfile] DESCRIPTION The amk_grf program builds a decomposition-defined target architecture tfile from a source graph gfile. Target architectures define the topology of the target graphs used by static mapping programs gmap(1) and dgmap(1). Target architectures can be either algorithmically-defined, for common, regular topologies, or decomposition-defined, such as the ones produced by amk_grf. When the proper libraries have been included at compile time, amk_grf can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). Since decomposition-defined target architecture files have a size which is quadratic in the number of target vertices, because of the presence of a distance matrix structure, using compressed files to store them may save a lot of space. OPTIONS -bstrat Apply bipartitioning strategy strat to compute the recursive bipartition of the whole source graph into smaller target subdomains. -h Display some help. -llfile Only keep vertices the indices of which belong to the space-separated list stored in lfile. This allows one to create target architectures which can even be disjoint subsets of a larger target architecture, modeled as a graph. -V Display program version and copyright. EXAMPLE Create a decomposition-defined target architecture from a 2D regular grid source graph of dimension 3 times 5, and save it, as a compiled target architecture, under the gzip(1) format, to file 'm3x5.tgt.gz'. $ gmk_m2 3 5 | amk_grf | acpl - m3x5.tgt.gz Note that, in this precise case, it would be much preferable to use directly the 'mesh2D' algorithmically-defined target architecture. $ echo "mesh2D 3 5" > m3x5.tgt SEE ALSO acpl(1), amk_ccc(1), atst(1), dgmap(1), gmap(1), gmtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/atst.1000066400000000000000000000032321514310134000236200ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH atst 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBatst \fP- test the consistency of target architectures \fB .SH SYNOPSIS .nf .fam C \fBatst\fP [\fIoptions\fP] [\fIafile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBatst\fP program checks the consistency of a Scotch decomposition-defined target architecture and, in case of success, outputs some statistics regarding the number of target vertices and the length of paths linking them. Target architectures define the topology of the target graphs used by static mapping programs \fBgmap\fP(1) and \fBdgmap\fP(1). .PP The resulting statistics are stored in file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBatst\fP can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Test the consistency of architecture arch.tgt: .PP .nf .fam C $ atst arch.tgt .fam T .fi .SH SEE ALSO \fBacpl\fP(1), \fBamk_ccc\fP(1), \fBamk_grf\fP(1), \fBdgmap\fP(1), \fBgmap\fP(1), \fBgmtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/atst.1.txt000066400000000000000000000026401514310134000244400ustar00rootroot00000000000000NAME atst - test the consistency of target architectures SYNOPSIS atst [options] [afile] [lfile] DESCRIPTION The atst program checks the consistency of a Scotch decomposition-defined target architecture and, in case of success, outputs some statistics regarding the number of target vertices and the length of paths linking them. Target architectures define the topology of the target graphs used by static mapping programs gmap(1) and dgmap(1). The resulting statistics are stored in file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, atst can directly handle compressed files, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.tgt.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLE Test the consistency of architecture arch.tgt: $ atst arch.tgt SEE ALSO acpl(1), amk_ccc(1), amk_grf(1), dgmap(1), gmap(1), gmtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgmap.1000066400000000000000000000121651514310134000237420ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH dgmap 1 "23 November 2019" "" "PT-Scotch user's manual" .SH NAME \fBdgmap, dgpart \fP- compute static mappings and partitions in parallel \fB .SH SYNOPSIS .nf .fam C \fBdgmap\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] [\fImfile\fP] [\fIlfile\fP] \fBdgpart\fP [\fIoptions\fP] [\fInparts/\fIpwght\fP\fP] [\fIgfile\fP] [\fImfile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBdgmap\fP program computes, in a parallel way, a static mapping of a source graph onto a target graph. .PP The \fBdgpart\fP program is a simplified interface to \fBdgmap\fP, which performs graph partitioning instead of static mapping. Consequently, the desired number of parts has to be provided, in lieu of the target architecture. When using the program for graph clustering, the number of parts turns into maximum cluster weight. .PP The \fB-b\fP and \fB-c\fP options allow the user to set preferences on the behavior of the mapping strategy which is used by default. The \fB-m\fP option allows the user to define a custom mapping strategy. .PP The \fB-q\fP option turns the programs into graph clustering programs. In this case, \fBdgmap\fP only accepts variable-sized target architectures. .PP Source graph file \fIgfile\fP is either a centralized graph file, or a set of files representing fragments of a distributed graph. For \fBdgmap\fP, the target architecture file \fItfile\fP describes either algorithmically-coded topologies such as meshes and hypercubes, or decomposition-defined architectures created by means of the \fBamk_grf\fP(1) program. See \fBgmap\fP(1) for a description of target architectures. The resulting mapping is stored in file \fImfile\fP. Eventual logging information (such as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBdgmap\fP and \fBdgpart\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP \fBdgmap\fP and \fBdgpart\fP base on implementations of the MPI interface to spread work across the processing elements. They are therefore not likely to be run directly, but instead through some launcher command such as \fBmpirun\fP. .SH OPTIONS .TP .B \fB-b\fP\fIval\fP Set maximum load imbalance ratio for graph partitioning or static mapping. When programs are used as clustering tools, this parameter sets the maximum load imbalance ratio for recursive bipartitions. Exclusive with the \fB-m\fP option. .TP .B \fB-c\fP\fIopt\fP Choose default mapping strategy according to one or several options among: .RS .TP .B b enforce load balance as much as possible. .TP .B q privilege quality over speed (default). .TP .B s privilege speed over quality. .TP .B t enforce safety. .TP .B x enforce scalability. .PP It is exclusive with the \fB-m\fP option. .RE .RE .PP .RS .TP .B \fB-h\fP Display some help. .TP .B \fB-m\fP\fIstrat\fP Use parallel mapping strategy \fIstrat\fP (see PT-Scotch user's manual for more information). .TP .B \fB-q\fP (for \fBdgpart\fP) .TP .B \fB-q\fP\fIpwght\fP (for \fBdgmap\fP) Use the programs as graph clustering tools instead of static mapping or graph partitioning tools. For \fBdgpart\fP, the number of parts will become the maximum cluster weight. For \fBdgmap\fP, this number \fIpwght\fP has to be passed after the option. .TP .B \fB-r\fP\fIpnum\fP Set root process for centralized files (default is 0). .TP .B \fB-V\fP Display program version and copyright. .TP .B \fB-v\fP\fIverb\fP Set verbose mode to \fIverb\fP. It is a set of one of more characters which can be: .RS .TP .B m mapping information. .TP .B s strategy information. .TP .B t timing information. .SH NOTE At the time being (version 5.1), \fBdgmap\fP cannot compute full static mappings as \fBgmap\fP(1) does, but only partitions (that is, mappings onto unweighted or weighted complete graphs). Target architectures other than the 'cmplt' and 'wcmplt' ones will lead to an error message. .SH EXAMPLES Run \fBdgpart\fP on 5 processing elements to compute a partition into 7 parts of graph brol.grf and save the resulting ordering to file brol.map. .PP .nf .fam C $ mpirun -np 5 dgpart 7 brol.grf brol.map .fam T .fi Run \fBdgpart\fP on 5 processing elements to partition into 7 parts the distributed graph stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting mapping to file brol.map (see \fBdgscat\fP(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments). .PP .nf .fam C $ mpirun -np 5 dgpart 7 brol%p-%r.dgr brol.map .fam T .fi .SH SEE ALSO \fBdgtst\fP(1), \fBdgscat\fP(1), \fBamk_grf\fP(1), \fBacpl\fP(1), \fBgmap\fP(1), \fBgmtst\fP(1). .PP PT-Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgmap.1.txt000066400000000000000000000114361514310134000245600ustar00rootroot00000000000000NAME dgmap, dgpart - compute static mappings and partitions in parallel SYNOPSIS dgmap [options] [gfile] [tfile] [mfile] [lfile] dgpart [options] [nparts/pwght] [gfile] [mfile] [lfile] DESCRIPTION The dgmap program computes, in a parallel way, a static mapping of a source graph onto a target graph. The dgpart program is a simplified interface to dgmap, which performs graph partitioning instead of static mapping. Consequently, the desired number of parts has to be provided, in lieu of the target architecture. When using the program for graph clustering, the number of parts turns into maximum cluster weight. The -b and -c options allow the user to set preferences on the behavior of the mapping strategy which is used by default. The -m option allows the user to define a custom mapping strategy. The -q option turns the programs into graph clustering programs. In this case, dgmap only accepts variable-sized target architectures. Source graph file gfile is either a centralized graph file, or a set of files representing fragments of a distributed graph. For dgmap, the target architecture file tfile describes either algorithmically-coded topologies such as meshes and hypercubes, or decomposition-defined architectures created by means of the amk_grf(1) program. See gmap(1) for a description of target architectures. The resulting mapping is stored in file mfile. Eventual logging information (such as the one produced by option -v) is sent to file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. When the proper libraries have been included at compile time, dgmap and dgpart can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). dgmap and dgpart base on implementations of the MPI interface to spread work across the processing elements. They are therefore not likely to be run directly, but instead through some launcher command such as mpirun. OPTIONS -bval Set maximum load imbalance ratio for graph partitioning or static mapping. When programs are used as clustering tools, this parameter sets the maximum load imbalance ratio for recursive bipartitions. Exclusive with the -m option. -copt Choose default mapping strategy according to one or several options among: b enforce load balance as much as possible. q privilege quality over speed (default). s privilege speed over quality. t enforce safety. x enforce scalability. It is exclusive with the -m option. -h Display some help. -mstrat Use parallel mapping strategy strat (see PT-Scotch user's manual for more information). -q (for dgpart) -qpwght (for dgmap) Use the programs as graph clustering tools instead of static mapping or graph partitioning tools. For dgpart, the number of parts will become the maximum cluster weight. For dgmap, this number pwght has to be passed after the option. -rpnum Set root process for centralized files (default is 0). -V Display program version and copyright. -vverb Set verbose mode to verb. It is a set of one of more characters which can be: m mapping information. s strategy information. t timing information. NOTE At the time being (version 5.1), dgmap cannot compute full static mappings as gmap(1) does, but only partitions (that is, mappings onto unweighted or weighted complete graphs). Target architectures other than the 'cmplt' and 'wcmplt' ones will lead to an error message. EXAMPLES Run dgpart on 5 processing elements to compute a partition into 7 parts of graph brol.grf and save the resulting ordering to file brol.map. $ mpirun -np 5 dgpart 7 brol.grf brol.map Run dgpart on 5 processing elements to partition into 7 parts the distributed graph stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting mapping to file brol.map (see dgscat(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments). $ mpirun -np 5 dgpart 7 brol%p-%r.dgr brol.map SEE ALSO dgtst(1), dgscat(1), amk_grf(1), acpl(1), gmap(1), gmtst(1). PT-Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgord.1000066400000000000000000000071571514310134000237560ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH dgord 1 "23 November 2019" "" "PT-Scotch user's manual" .SH NAME \fBdgord \fP- compute sparse matrix orderings of graphs in parallel \fB .SH SYNOPSIS .nf .fam C \fBdgord\fP [\fIoptions\fP] [\fIgfile\fP] [\fIofile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBdgord\fP program computes, in a parallel way, an ordering of a Scotch source graph representing the pattern of some symmetric sparse matrix. .PP Source graph file \fIgfile\fP is either a centralized graph file, or a set of files representing fragments of a distributed graph. The resulting ordering is stored in file \fIofile\fP. Eventual logging information (such as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBdgord\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP \fBdgord\fP bases on implementations of the MPI interface to spread work across the processing elements. It is therefore not likely to be run directly, but instead through some launcher command such as \fBmpirun\fP. .SH OPTIONS .TP .B \fB-c\fPopt Choose default ordering strategy according to one or several \fIoptions\fP among: .RS .TP .B b enforce load balance as much as possible. .TP .B q privilege quality over speed (default). .TP .B s privilege speed over quality. .TP .B t enforce safety. .TP .B x enforce scalability. .RE .TP .B \fB-h\fP Display some help. .TP .B \fB-m\fP\fImfile\fP Save column block mapping data to file \fImfile\fP. Mapping data specifies, for each vertex, the index of the column block to which this vertex belongs. .TP .B \fB-o\fP\fIstrat\fP Use parallel graph ordering strategy \fIstrat\fP (see PT-Scotch user's manual for more information). .TP .B \fB-r\fP\fIpnum\fP Set root process for centralized files (default is 0). .TP .B \fB-t\fP\fItfile\fP Save partitioning tree data to file \fItfile\fP. Partitioning tree data specifies, for each vertex, the index of the first vertex of the parent block of the block to which the vertex belongs. Altogether with the mapping data provided in file \fImfile\fP, it allows one to rebuild the separator tree of the nested dissection process. .TP .B \fB-V\fP Display program version and copyright. .TP .B \fB-v\fP\fIverb\fP Set verbose mode to \fIverb\fP. It is a set of one of more characters which can be: .RS .TP .B s strategy information. .TP .B t timing information. .SH EXAMPLES Run \fBdgord\fP on 5 processing elements to reorder matrix graph brol.grf and save the resulting ordering to file brol.ord, using the default sequential graph ordering strategy: .PP .nf .fam C $ mpirun -np 5 dgord brol.grf brol.ord .fam T .fi Run \fBdgord\fP on 5 processing elements to reorder the distributed matrix stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting ordering to file brol.ord (see \fBdgscat\fP(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments). .PP .nf .fam C $ mpirun -np 5 dgord brol%p-%r.dgr brol.ord .fam T .fi .SH SEE ALSO \fBdgtst\fP(1), \fBdgscat\fP(1), \fBgmk_hy\fP(1), \fBgord\fP(1). .PP PT-Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgord.1.txt000066400000000000000000000066251514310134000245730ustar00rootroot00000000000000NAME dgord - compute sparse matrix orderings of graphs in parallel SYNOPSIS dgord [options] [gfile] [ofile] [lfile] DESCRIPTION The dgord program computes, in a parallel way, an ordering of a Scotch source graph representing the pattern of some symmetric sparse matrix. Source graph file gfile is either a centralized graph file, or a set of files representing fragments of a distributed graph. The resulting ordering is stored in file ofile. Eventual logging information (such as the one produced by option -v) is sent to file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. When the proper libraries have been included at compile time, dgord can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). dgord bases on implementations of the MPI interface to spread work across the processing elements. It is therefore not likely to be run directly, but instead through some launcher command such as mpirun. OPTIONS -copt Choose default ordering strategy according to one or several options among: b enforce load balance as much as possible. q privilege quality over speed (default). s privilege speed over quality. t enforce safety. x enforce scalability. -h Display some help. -mmfile Save column block mapping data to file mfile. Mapping data specifies, for each vertex, the index of the column block to which this vertex belongs. -ostrat Use parallel graph ordering strategy strat (see PT-Scotch user's manual for more information). -rpnum Set root process for centralized files (default is 0). -ttfile Save partitioning tree data to file tfile. Partitioning tree data specifies, for each vertex, the index of the first vertex of the parent block of the block to which the vertex belongs. Altogether with the mapping data provided in file mfile, it allows one to rebuild the separator tree of the nested dissection process. -V Display program version and copyright. -vverb Set verbose mode to verb. It is a set of one of more characters which can be: s strategy information. t timing information. EXAMPLES Run dgord on 5 processing elements to reorder matrix graph brol.grf and save the resulting ordering to file brol.ord, using the default sequential graph ordering strategy: $ mpirun -np 5 dgord brol.grf brol.ord Run dgord on 5 processing elements to reorder the distributed matrix stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting ordering to file brol.ord (see dgscat(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments). $ mpirun -np 5 dgord brol%p-%r.dgr brol.ord SEE ALSO dgtst(1), dgscat(1), gmk_hy(1), gord(1). PT-Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgscat.1000066400000000000000000000127751514310134000241260ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH dgscat 1 "05 August 2023" "" "PT-Scotch user's manual" .SH NAME \fBdggath, dgscat, gscat \fP- convert distributed source graphs to or from centralized ones \fB .SH SYNOPSIS .nf .fam C \fBdggath\fP [\fIoptions\fP] [\fIigfile\fP] [\fIogfile\fP] \fBdgscat\fP [\fIoptions\fP] [\fIigfile\fP] [\fIogfile\fP] \fBgscat\fP [\fIoptions\fP] [\fIigfile\fP] [\fIogfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBdggath\fP program gathers distributed graphs into centralized graphs. It reads a set of files \fIigfile\fP representing fragments of a distributed source graph, and writes them back on the form of a single centralized source graph \fIogfile\fP. .PP The \fBdgscat\fP program scatters centralized source graphs into distributed graphs. It reads a centralized source graph \fIigfile\fP and writes it back on the form of a set of files \fIogfile\fP representing fragments of the corresponding distributed source graph. .PP The \fBgscat\fP program does exactly the same as \fBdgscat\fP, but does not require to be run in a parallel environment. Since \fBgscat\fP processes the input centralized graph file as a text stream, it does not need to load the full graph in memory before building the distributed graph fragment files. It is therefore much less resource consuming, but does not allow for the checking of graph consistency, as it has no global vision of the graph structure. .PP When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBdggath\fP and \fBdgscat\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP \fBdggath\fP and \fBdgscat\fP base on implementations of the MPI interface to spread work across the processing elements. It is therefore not likely to be run directly, but instead through some launcher command such as \fBmpirun\fP. .SH DISTRIBUTED FILE NAMES In order to tell whether programs should read from, or write to, a single file located on only one processor, or to multiple instances of the same file on all of the processors, or else to distinct files on each of the processors, a special grammar has been designed, which is based on the '%' escape character. Four such escape sequences are defined, which are interpreted independently on every processor, prior to file opening. By default, when a filename is provided, it is assumed that the file is to be opened on only one of the processors, called the root processor, which is usually process 0 of the communicator within which the program is run. The index of the root processor can be changed by means of the \fB-r\fP option. Using any of the first three escape sequences below will instruct programs to open in parallel a file of name equal to the interpreted filename, on every processor on which they are run. .TP .B %p Replaced by the number of processes in the global communicator in which the program is run. Leads to parallel opening. .TP .B %r Replaced on each process running the program by the rank of this process in the global communicator. Leads to parallel opening. .TP .B %- Discarded, but leads to parallel opening. This sequence is mainly used to instruct programs to open on every processor a file of identical name. The opened files can be, according whether the given path leads to a shared directory or to directories that are local to each processor, either to the opening of multiple instances of the same file, or to the opening of distinct files which may each have a different content, respectively (but in this latter case it is much recommended to identify files by means of the '%r' sequence). .TP .B %% Replaced by a single '%' character. File names using this escape sequence are not considered for parallel opening, unless one or several of the three other escape sequences are also present. .RE .PP For instance, filename 'brol' will lead to the opening of file 'brol' on the root processor only, filename '%\fB-brol\fP' (or even 'br%\fB-ol\fP') will lead to the parallel opening of files called 'brol' on every processor, and filename 'brol%p-%r' will lead to the opening of files \(cqbrol2-0' and 'brol2-1', respectively, on each of the two processors on which the program were to run. .SH OPTIONS .TP .B \fB-c\fP For \fBdggath\fP and \fBdgscat\fP only. Check the consistency of the input source graph after loading it into memory. .TP .B \fB-h\fP Display some help. .TP .B \fB-i\fPnbr For \fBgscat\fP only. Create an imbalanced distributed graph, in which the distributed graph files for all processes will receive \textit{nbr} vertices of the graph, save for the file for the last process, which will receive all the remaining vertices. .TP .B \fB-r\fP\fIpnum\fP Set root process for centralized files (default is 0). .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Run \fBdgscat\fP on 5 processing elements to scatter centralized graph file brol.grf into 5 gzipped file fragments brol5-0.dgr.gz to brol5-4.dgr.gz. .PP .nf .fam C $ mpirun -np 5 dgscat brol.grf brol%p-%r.dgr.gz .fam T .fi .SH SEE ALSO \fBdgmap\fP(1), \fBdgord\fP(1), \fBdgtst\fP(1), \fBgmk_hy\fP(1). .PP PT-Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgscat.1.txt000066400000000000000000000124221514310134000247310ustar00rootroot00000000000000NAME dggath, dgscat, gscat - convert distributed source graphs to or from centralized ones SYNOPSIS dggath [options] [igfile] [ogfile] dgscat [options] [igfile] [ogfile] gscat [options] [igfile] [ogfile] DESCRIPTION The dggath program gathers distributed graphs into centralized graphs. It reads a set of files igfile representing fragments of a distributed source graph, and writes them back on the form of a single centralized source graph ogfile. The dgscat program scatters centralized source graphs into distributed graphs. It reads a centralized source graph igfile and writes it back on the form of a set of files ogfile representing fragments of the corresponding distributed source graph. The gscat program does exactly the same as dgscat, but does not require to be run in a parallel environment. Since gscat processes the input centralized graph file as a text stream, it does not need to load the full graph in memory before building the distributed graph fragment files. It is therefore much less resource consuming, but does not allow for the checking of graph consistency, as it has no global vision of the graph structure. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, dggath and dgscat can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). dggath and dgscat base on implementations of the MPI interface to spread work across the processing elements. It is therefore not likely to be run directly, but instead through some launcher command such as mpirun. DISTRIBUTED FILE NAMES In order to tell whether programs should read from, or write to, a single file located on only one processor, or to multiple instances of the same file on all of the processors, or else to distinct files on each of the processors, a special grammar has been designed, which is based on the '%' escape character. Four such escape sequences are defined, which are interpreted independently on every processor, prior to file opening. By default, when a filename is provided, it is assumed that the file is to be opened on only one of the processors, called the root processor, which is usually process 0 of the communicator within which the program is run. The index of the root processor can be changed by means of the -r option. Using any of the first three escape sequences below will instruct programs to open in parallel a file of name equal to the interpreted filename, on every processor on which they are run. %p Replaced by the number of processes in the global communicator in which the program is run. Leads to parallel opening. %r Replaced on each process running the program by the rank of this process in the global communicator. Leads to parallel opening. %- Discarded, but leads to parallel opening. This sequence is mainly used to instruct programs to open on every processor a file of identical name. The opened files can be, according whether the given path leads to a shared directory or to directories that are local to each processor, either to the opening of multiple instances of the same file, or to the opening of distinct files which may each have a different content, respectively (but in this latter case it is much recommended to identify files by means of the '%r' sequence). %% Replaced by a single '%' character. File names using this escape sequence are not considered for parallel opening, unless one or several of the three other escape sequences are also present. For instance, filename 'brol' will lead to the opening of file 'brol' on the root processor only, filename '%-brol' (or even 'br%-ol') will lead to the parallel opening of files called 'brol' on every processor, and filename 'brol%p-%r' will lead to the opening of files 'brol2-0' and 'brol2-1', respectively, on each of the two processors on which the program were to run. OPTIONS -c For dggath and dgscat only. Check the consistency of the input source graph after loading it into memory. -h Display some help. -inbr For gscat only. Create an imbalanced distributed graph, in which the distributed graph files for all processes will receive \textit{nbr} vertices of the graph, save for the file for the last process, which will receive all the remaining vertices. -rpnum Set root process for centralized files (default is 0). -V Display program version and copyright. EXAMPLE Run dgscat on 5 processing elements to scatter centralized graph file brol.grf into 5 gzipped file fragments brol5-0.dgr.gz to brol5-4.dgr.gz. $ mpirun -np 5 dgscat brol.grf brol%p-%r.dgr.gz SEE ALSO dgmap(1), dgord(1), dgtst(1), gmk_hy(1). PT-Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgtst.1000066400000000000000000000047361514310134000240040ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH dgtst 1 "23 November 2019" "" "PT-Scotch user's manual" .SH NAME \fBdgtst \fP- test the consistency of source graphs in parallel \fB .SH SYNOPSIS .nf .fam C \fBdgtst\fP [\fIoptions\fP] [\fIgfile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBdgtst\fP program checks, in a parallel way, the consistency of a Scotch source graph and, in case of success, outputs some statistics regarding edge weights, vertex weights, and vertex degrees. .PP It produces the very same results as the \fBgtst\fP(1) program of the Scotch sequential distribution, but unlike this latter it can handle distributed graphs. .PP Source graph file \fIgfile\fP is either a centralized graph file, or a set of files representing fragments of a distributed graph. The resulting statistics are stored in file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBdgtst\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP \fBdgtst\fP bases on implementations of the MPI interface to spread work across the processing elements. It is therefore not likely to be run directly, but instead through some launcher command such as \fBmpirun\fP. .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-r\fP\fIpnum\fP Set root process for centralized files (default is 0). .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Run \fBdgtst\fP on 5 processing elements to test the consistency of graph brol.grf .PP .nf .fam C $ mpirun -np 5 dgtst brol.grf .fam T .fi Run dgord on 5 processing elements to test the consistency of a distributed graph stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting ordering to file brol.ord (see \fBdgscat\fP(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments). .PP .nf .fam C $ mpirun -np 5 dgtst brol%p-%r.dgr brol.ord .fam T .fi .SH SEE ALSO \fBdgscat\fP(1), \fBgtst\fP(1), \fBdgord\fP(1). .PP PT-Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/dgtst.1.txt000066400000000000000000000043021514310134000246070ustar00rootroot00000000000000NAME dgtst - test the consistency of source graphs in parallel SYNOPSIS dgtst [options] [gfile] [lfile] DESCRIPTION The dgtst program checks, in a parallel way, the consistency of a Scotch source graph and, in case of success, outputs some statistics regarding edge weights, vertex weights, and vertex degrees. It produces the very same results as the gtst(1) program of the Scotch sequential distribution, but unlike this latter it can handle distributed graphs. Source graph file gfile is either a centralized graph file, or a set of files representing fragments of a distributed graph. The resulting statistics are stored in file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, dgtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). dgtst bases on implementations of the MPI interface to spread work across the processing elements. It is therefore not likely to be run directly, but instead through some launcher command such as mpirun. OPTIONS -h Display some help. -rpnum Set root process for centralized files (default is 0). -V Display program version and copyright. EXAMPLE Run dgtst on 5 processing elements to test the consistency of graph brol.grf $ mpirun -np 5 dgtst brol.grf Run dgord on 5 processing elements to test the consistency of a distributed graph stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting ordering to file brol.ord (see dgscat(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments). $ mpirun -np 5 dgtst brol%p-%r.dgr brol.ord SEE ALSO dgscat(1), gtst(1), dgord(1). PT-Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gbase.1000066400000000000000000000027571514310134000237410ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gbase 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgbase \fP- sets the base value of a source graph \fB .SH SYNOPSIS .nf .fam C \fBgbase\fP [\fIoptions\fP] \fIbval\fP [\fIigfile\fP] [\fIogfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgbase\fP program allows one to set to \fIbval\fP the base value of a source graph, that is, the starting index used to number its vertices and edges. The base value can be set to 0 or 1, so that graphs can be easily imported from and/or exported to tools written in C or Fortran. Scotch can handle graphs irrespective of their base value. .PP When the proper libraries have been included at compile time, \fBgbase\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Set the base of graph 'brol.grf' to 1, and write the modified graph to file 'brol_b1.grf'. .PP .nf .fam C $ gbase 1 brol.grf brol_b1.grf .fam T .fi .SH SEE ALSO \fBgcv\fP(1), \fBgmk_hy\fP(1), \fBgmk_msh\fP(1), \fBgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gbase.1.txt000066400000000000000000000023671514310134000245540ustar00rootroot00000000000000NAME gbase - sets the base value of a source graph SYNOPSIS gbase [options] bval [igfile] [ogfile] DESCRIPTION The gbase program allows one to set to bval the base value of a source graph, that is, the starting index used to number its vertices and edges. The base value can be set to 0 or 1, so that graphs can be easily imported from and/or exported to tools written in C or Fortran. Scotch can handle graphs irrespective of their base value. When the proper libraries have been included at compile time, gbase can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLE Set the base of graph 'brol.grf' to 1, and write the modified graph to file 'brol_b1.grf'. $ gbase 1 brol.grf brol_b1.grf SEE ALSO gcv(1), gmk_hy(1), gmk_msh(1), gtst(1), gmap(1), gord(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gcv.1000066400000000000000000000050031514310134000234220ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gcv 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgcv \fP- graph file converter \fB .SH SYNOPSIS .nf .fam C \fBgcv\fP [\fIoptions\fP] [\fIigfile\fP] [\fIogfile\fP] [\fIoxfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgcv\fP program converts Scotch graph files from and to other external file formats. .PP File \fIigfile\fP is converted into graph file \fIogfile\fP, with optional geometry data being put in geometry file \fIoxfile\fP, if it is available. .PP When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBgcv\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-i\fP\fIifmt\fP Set format of input graph file, which can be: .RS .TP .B b\fInum\fP Boeing-Harwell format. This is a matrix format. Only square matrices are supported. Square matrices with unsymmetric pattern are symmetrized. In case the file contains several matrices, the \fInum\fP parameter allow the user to provide the index of the matrix to convert, starting from 0. When the \fInum\fP parameter is not set, it is assumed to be 0. .TP .B c Chaco format. This is an adjacency graph format, also used by MeTiS. .TP .B m Matrix Market format. This is a matrix format describing individual edges. Matrix pattern is symmetrized, such that rectangular matrices are eventually squared. .TP .B s Scotch graph format. This is an adjacency graph format. .RE .TP .B \fB-o\fP\fIofmt\fP Set format of output graph file, which can be: .RS .TP .B c Chaco format. .TP .B m Matrix Market symmetric pattern format. .TP .B s Scotch format. This is the default. .RE .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Convert a Matrix Market graph into a Scotch graph. Matrix Market files do not comprise geometry data, so no geometry file is needed on output: .PP .nf .fam C $ gcv -im brol.mm brol.grf .fam T .fi .SH SEE ALSO \fBgbase\fP(1), \fBgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gcv.1.txt000066400000000000000000000047531514310134000242530ustar00rootroot00000000000000NAME gcv - graph file converter SYNOPSIS gcv [options] [igfile] [ogfile] [oxfile] DESCRIPTION The gcv program converts Scotch graph files from and to other external file formats. File igfile is converted into graph file ogfile, with optional geometry data being put in geometry file oxfile, if it is available. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, gcv can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -iifmt Set format of input graph file, which can be: bnum Boeing-Harwell format. This is a matrix format. Only square matrices are supported. Square matrices with unsymmetric pattern are symmetrized. In case the file contains several matrices, the num parameter allow the user to provide the index of the matrix to convert, starting from 0. When the num parameter is not set, it is assumed to be 0. c Chaco format. This is an adjacency graph format, also used by MeTiS. m Matrix Market format. This is a matrix format describing individual edges. Matrix pattern is symmetrized, such that rectangular matrices are eventually squared. s Scotch graph format. This is an adjacency graph format. -oofmt Set format of output graph file, which can be: c Chaco format. m Matrix Market symmetric pattern format. s Scotch format. This is the default. -V Display program version and copyright. EXAMPLE Convert a Matrix Market graph into a Scotch graph. Matrix Market files do not comprise geometry data, so no geometry file is needed on output: $ gcv -im brol.mm brol.grf SEE ALSO gbase(1), gtst(1), gmap(1), gord(1), gout(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gdump.1000066400000000000000000000024621514310134000237650ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gdump 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgdump \fP- dumps the contents of a source graph as a source code \fB .SH SYNOPSIS .nf .fam C \fBgdump\fP [\fIoptions\fP] [\fIigfile\fP] [\fIocfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgdump\fP program allows one to create a source code equivalent to the loading of a centralized source graph. The contents of the source graph are represented as data arrays which are assembled by calling the SCOTCH_graphBuild routine of the libScotch library. .SH OPTIONS .TP .B \fB-b\fP\fIbase\fP Set the \fIbase\fP value of the graph described by the source code. .TP .B \fB-h\fP Display some help. .TP .B \fB-p\fP\fIprefix\fP Set the \fIprefix\fP to add to to all array names and to the graph buiding function name. .TP .B \fB-s\fP\fIsuffix\fP Set the \fIsuffix\fP to add to to all array names and to the graph buiding function name. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a soure C file 'brol.c' that corresponds to graph 'brol.grf', with identifier and creation function name \fIsuffix\fP '_brol'. .PP .nf .fam C $ gdump -s_brol brol.grf brol.c .fam T .fi .SH SEE ALSO \fBgtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gdump.1.txt000066400000000000000000000021041514310134000245740ustar00rootroot00000000000000NAME gdump - dumps the contents of a source graph as a source code SYNOPSIS gdump [options] [igfile] [ocfile] DESCRIPTION The gdump program allows one to create a source code equivalent to the loading of a centralized source graph. The contents of the source graph are represented as data arrays which are assembled by calling the SCOTCH_graphBuild routine of the libScotch library. OPTIONS -bbase Set the base value of the graph described by the source code. -h Display some help. -pprefix Set the prefix to add to to all array names and to the graph buiding function name. -ssuffix Set the suffix to add to to all array names and to the graph buiding function name. -V Display program version and copyright. EXAMPLE Create a soure C file 'brol.c' that corresponds to graph 'brol.grf', with identifier and creation function name suffix '_brol'. $ gdump -s_brol brol.grf brol.c SEE ALSO gtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmap.1000066400000000000000000000146151514310134000236000ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gmap 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgmap, gpart \fP- compute static mappings and partitions sequentially \fB .SH SYNOPSIS .nf .fam C \fBgmap\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] [\fImfile\fP] [\fIlfile\fP] \fBgpart\fP [\fIoptions\fP] [\fInparts/\fIpwght\fP\fP] [\fIgfile\fP] [\fImfile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgmap\fP program computes, in a sequential way, a static mapping of a source graph onto a target graph. .PP The \fBgpart\fP program is a simplified interface to \fBgmap\fP, which performs graph partitioning instead of static mapping. Consequently, the desired number of parts has to be provided, in lieu of the target architecture. When using the program for graph clustering, the number of parts turns into maximum cluster weight. .PP The \fB-b\fP and \fB-c\fP options allow the user to set preferences on the behavior of the mapping strategy which is used by default. The \fB-m\fP option allows the user to define a custom mapping strategy. .PP The \fB-q\fP option turns the programs into graph clustering programs. In this case, \fBgmap\fP only accepts variable-sized target architectures. .PP Source graph file \fIgfile\fP can only be a centralized graph file. For \fBgmap\fP, the target architecture file \fItfile\fP describes either algorithmically-coded topologies such as meshes and hypercubes, or decomposition-defined architectures created by means of the \fBamk_grf\fP(1) program. The resulting mapping is stored in file \fImfile\fP. Eventual logging information (such as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBgmap\fP and \fBgpart\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-b\fP\fIval\fP Set maximum load imbalance ratio for graph partitioning or static mapping. When programs are used as clustering tools, this parameter sets the maximum load imbalance ratio for recursive bipartitions. Exclusive with the \fB-m\fP option. .TP .B \fB-c\fP\fIopt\fP Choose default mapping strategy according to one or several options among: .RS .TP .B b enforce load balance as much as possible. .TP .B q privilege quality over speed (default). .TP .B s privilege speed over quality. .TP .B t enforce safety. .PP It is exclusive with the \fB-m\fP option. .RE .TP .B \fB-h\fP Display some help. .TP .B \fB-m\fP\fIstrat\fP Use sequential mapping strategy \fIstrat\fP (see Scotch user's manual for more information). .TP .B \fB-q\fP (for \fBgpart\fP) .TP .B \fB-q\fP\fIpwght\fP (for \fBgmap\fP) Use the programs as graph clustering tools instead of static mapping or graph partitioning tools. For \fBgpart\fP, the number of parts will become the maximum cluster weight. For \fBgmap\fP, this number \fIpwght\fP has to be passed after the option. .TP .B \fB-V\fP Display program version and copyright. .TP .B \fB-v\fP\fIverb\fP Set verbose mode to \fIverb\fP. It is a set of one of more characters which can be: .RS .TP .B m mapping information. .TP .B s strategy information. .TP .B t timing information. .SH TARGET ARCHITECTURES Target architectures represent graphs onto which source graphs are mapped. In order to speed-up the obtainment of target architecture topological properties during the computation of mappings, some classical topologies are algorithmically coded into the mapper itself. These topologies are consequently simply defined by their code name, followed by their dimensional parameters: .TP .B cmplt \fIdim\fP unweighted complete graph of size \fIdim\fP. .TP .B cmpltw \fIdim\fP \fIw0\fP \fIw1\fP \.\.\. \fIwdim-1\fP weighted complete graph of size size and of respective loads \fIw0\fP, \fIw1\fP, \.\.\., \fIwdim-1\fP. .TP .B hcub \fIdim\fP hypercube of dimension \fIdim\fP. .TP .B leaf \fIhgt\fP \fIn0\fP \fIw0\fP \.\.\. \fInhgt-1\fP \fIwhgt-1\fP tree-leaf graph of height \fIhgt\fP with (\fIn0\fP times \fIn1\fP times \.\.\. \fInhgt-1\fP) vertices, with inter-cluster link weights of \fIw0\fP, \fIw1\fP, \.\.\. \fIwhgt-1\fP. .TP .B mesh2D \fIdimX\fP \fIdimY\fP 2D mesh of \fIdimX\fP times \fIdimY\fP nodes. .TP .B mesh3D \fIdimX\fP \fIdimY\fP \fIdimZ\fP 23 mesh of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP nodes. .TP .B torus2D \fIdimX\fP \fIdimY\fP 2D torus of \fIdimX\fP times \fIdimY\fP nodes. .TP .B torus3D \fIdimX\fP \fIdimY\fP \fIdimZ\fP 3D torus of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP nodes. .PP Other target topologies can be created from their source graph description by using the \fBamk_grf\fP(1) command. In this case, the target description will begin with the code name \fBdeco\fP. .SH MAPPINGS Mappings are represented by as many lines as there are vertices in the source graph. Each of these lines is made of two figures: the number of the vertex (or its label if source graph vertices are labeled) and the index of the target vertex to which it has been assigned. Target vertex indices range from 0 to the number of vertices in the target architecture (that is, the number of parts) minus one. .PP This block of lines is always preceded by the number of such lines. In most cases, since full mappings are requested, the number of lines is equal to the number of vertices in the source graph. .SH EXAMPLES Run \fBgpart\fP to compute a partition into 7 parts of graph 'brol.grf' and save the resulting ordering to file 'brol.map'. .PP .nf .fam C $ gpart 7 brol.grf brol.map .fam T .fi Run \fBgmap\fP to compute a partition, into 3 parts of respective weights 1, 2 and 4, of graph 'brol.grf' and save the resulting mapping to file 'brol.map'. The dash '-' standard file name is used so that the target architecture description is read from the standard input, through the pipe, as provided by the 'echo' shell command. .PP .nf .fam C $ echo "cmpltw 3 1 2 4" | gmap brol.grf - brol.map .fam T .fi .SH SEE ALSO \fBamk_grf\fP(1), \fBacpl\fP(1), \fBgmtst\fP(1), \fBdgmap\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmap.1.txt000066400000000000000000000140661514310134000244160ustar00rootroot00000000000000NAME gmap, gpart - compute static mappings and partitions sequentially SYNOPSIS gmap [options] [gfile] [tfile] [mfile] [lfile] gpart [options] [nparts/pwght] [gfile] [mfile] [lfile] DESCRIPTION The gmap program computes, in a sequential way, a static mapping of a source graph onto a target graph. The gpart program is a simplified interface to gmap, which performs graph partitioning instead of static mapping. Consequently, the desired number of parts has to be provided, in lieu of the target architecture. When using the program for graph clustering, the number of parts turns into maximum cluster weight. The -b and -c options allow the user to set preferences on the behavior of the mapping strategy which is used by default. The -m option allows the user to define a custom mapping strategy. The -q option turns the programs into graph clustering programs. In this case, gmap only accepts variable-sized target architectures. Source graph file gfile can only be a centralized graph file. For gmap, the target architecture file tfile describes either algorithmically-coded topologies such as meshes and hypercubes, or decomposition-defined architectures created by means of the amk_grf(1) program. The resulting mapping is stored in file mfile. Eventual logging information (such as the one produced by option -v) is sent to file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. When the proper libraries have been included at compile time, gmap and gpart can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -bval Set maximum load imbalance ratio for graph partitioning or static mapping. When programs are used as clustering tools, this parameter sets the maximum load imbalance ratio for recursive bipartitions. Exclusive with the -m option. -copt Choose default mapping strategy according to one or several options among: b enforce load balance as much as possible. q privilege quality over speed (default). s privilege speed over quality. t enforce safety. It is exclusive with the -m option. -h Display some help. -mstrat Use sequential mapping strategy strat (see Scotch user's manual for more information). -q (for gpart) -qpwght (for gmap) Use the programs as graph clustering tools instead of static mapping or graph partitioning tools. For gpart, the number of parts will become the maximum cluster weight. For gmap, this number pwght has to be passed after the option. -V Display program version and copyright. -vverb Set verbose mode to verb. It is a set of one of more characters which can be: m mapping information. s strategy information. t timing information. TARGET ARCHITECTURES Target architectures represent graphs onto which source graphs are mapped. In order to speed-up the obtainment of target architecture topological properties during the computation of mappings, some classical topologies are algorithmically coded into the mapper itself. These topologies are consequently simply defined by their code name, followed by their dimensional parameters: cmplt dim unweighted complete graph of size dim. cmpltw dim w0 w1 ... wdim-1 weighted complete graph of size size and of respective loads w0, w1, ..., wdim-1. hcub dim hypercube of dimension dim. leaf hgt n0 w0 ... nhgt-1 whgt-1 tree-leaf graph of height hgt with (n0 times n1 times ... nhgt-1) vertices, with inter-cluster link weights of w0, w1, ... whgt-1. mesh2D dimX dimY 2D mesh of dimX times dimY nodes. mesh3D dimX dimY dimZ 23 mesh of dimX times dimY times dimZ nodes. torus2D dimX dimY 2D torus of dimX times dimY nodes. torus3D dimX dimY dimZ 3D torus of dimX times dimY times dimZ nodes. Other target topologies can be created from their source graph description by using the amk_grf(1) command. In this case, the target description will begin with the code name deco. MAPPINGS Mappings are represented by as many lines as there are vertices in the source graph. Each of these lines is made of two figures: the number of the vertex (or its label if source graph vertices are labeled) and the index of the target vertex to which it has been assigned. Target vertex indices range from 0 to the number of vertices in the target architecture (that is, the number of parts) minus one. This block of lines is always preceded by the number of such lines. In most cases, since full mappings are requested, the number of lines is equal to the number of vertices in the source graph. EXAMPLES Run gpart to compute a partition into 7 parts of graph 'brol.grf' and save the resulting ordering to file 'brol.map'. $ gpart 7 brol.grf brol.map Run gmap to compute a partition, into 3 parts of respective weights 1, 2 and 4, of graph 'brol.grf' and save the resulting mapping to file 'brol.map'. The dash '-' standard file name is used so that the target architecture description is read from the standard input, through the pipe, as provided by the 'echo' shell command. $ echo "cmpltw 3 1 2 4" | gmap brol.grf - brol.map SEE ALSO amk_grf(1), acpl(1), gmtst(1), dgmap(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmk_hy.1000066400000000000000000000036461514310134000241340ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gmk_hy 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgmk_hy, gmk_m2, gmk_m3, gmk_ub2 \fP- create source graphs \fB .SH SYNOPSIS .nf .fam C \fBgmk_hy\fP [\fIoptions\fP] \fIdim\fP [\fIofile\fP] \fBgmk_m2\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP [\fIofile\fP] \fBgmk_m3\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP \fIdimZ\fP [\fIofile\fP] \fBgmk_ub2\fP [\fIoptions\fP] \fIdim\fP .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgmk_\fP* programs create source graph files for some common, regular topologies. .PP \fBgmk_hy\fP creates a hypercube of dimension \fIdim\fP. .PP \fBgmk_m2\fP creates a 2D regular grid of dimensions \fIdimX\fP and \fIdimY\fP. .PP \fBgmk_m3\fP creates a 3D regular grid of dimensions \fIdimX\fP, \fIdimY\fP and \fIdimZ\fP. .PP \fBgmk_ub2\fP creates an unoriented de Bruijn graph of dimension \fIdim\fP. .SH OPTIONS .TP .B \fB-b\fP base For \fBgmk_m2\fP and \fBgmk_m3\fP only. Output graphs with base value set to base. Default value is 0. .TP .B \fB-e\fP For \fBgmk_m2\fP only. Build a 8-neighbor grid rather than a 4-neighbor grid. .TP .B \fB-g\fP\fIcfile\fP For \fBgmk_m2\fP and \fBgmk_m3\fP only. Output graph vertex coordinates (that is, geometry data to be used by \fBgout\fP(1)) in file \fIcfile\fP. .TP .B \fB-h\fP Display some help. .TP .B \fB-t\fP For \fBgmk_m2\fP and \fBgmk_m3\fP only. Create torus graphs, that is, graphs such that there exist loop edges between vertices of rank 0 and (\fIdim\fP-1) in every dimension. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a 5x7 grid along with its geometry: .PP .nf .fam C $ gmk_m2 5 7 -g/tmp/m5x7.xyz /tmp/m5x7.grf .fam T .fi .SH SEE ALSO \fBgbase\fP(1), \fBgmk_msh\fP(1), \fBgtst\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1), \fBamk_grf\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmk_hy.1.txt000066400000000000000000000027561514310134000247530ustar00rootroot00000000000000NAME gmk_hy, gmk_m2, gmk_m3, gmk_ub2 - create source graphs SYNOPSIS gmk_hy [options] dim [ofile] gmk_m2 [options] [-gcfile] dimX dimY [ofile] gmk_m3 [options] [-gcfile] dimX dimY dimZ [ofile] gmk_ub2 [options] dim DESCRIPTION The gmk_* programs create source graph files for some common, regular topologies. gmk_hy creates a hypercube of dimension dim. gmk_m2 creates a 2D regular grid of dimensions dimX and dimY. gmk_m3 creates a 3D regular grid of dimensions dimX, dimY and dimZ. gmk_ub2 creates an unoriented de Bruijn graph of dimension dim. OPTIONS -b base For gmk_m2 and gmk_m3 only. Output graphs with base value set to base. Default value is 0. -e For gmk_m2 only. Build a 8-neighbor grid rather than a 4-neighbor grid. -gcfile For gmk_m2 and gmk_m3 only. Output graph vertex coordinates (that is, geometry data to be used by gout(1)) in file cfile. -h Display some help. -t For gmk_m2 and gmk_m3 only. Create torus graphs, that is, graphs such that there exist loop edges between vertices of rank 0 and (dim-1) in every dimension. -V Display program version and copyright. EXAMPLE Create a 5x7 grid along with its geometry: $ gmk_m2 5 7 -g/tmp/m5x7.xyz /tmp/m5x7.grf SEE ALSO gbase(1), gmk_msh(1), gtst(1), gmap(1), gord(1), gout(1), amk_grf(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmk_m2.1000066400000000000000000000037171514310134000240310ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gmk_m2 1 "02 April 2021" "" "Scotch user's manual" .SH NAME \fBgmk_m2, gmk_m3 \fP- create 2D and 3D grid source graphs \fB .SH SYNOPSIS .nf .fam C \fBgmk_m2\fP [\fIoptions\fP] [\fB-b\fPbval] [\fB-g\fP\fIcfile\fP] [\fB-t\fP] [\fB-y\fP] \fIdimX\fP \fIdimY\fP [\fIofile\fP] \fBgmk_m3\fP [\fIoptions\fP] [\fB-b\fPbval] [\fB-g\fP\fIcfile\fP] [\fB-t\fP] [\fB-y\fP] \fIdimX\fP \fIdimY\fP \fIdimZ\fP [\fIofile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgmk_\fP* programs create source graph files for some common, regular topologies. .PP \fBgmk_m2\fP creates a 2D regular grid graph of \fIdimX\fP times \fIdimY\fP vertices, such that vertex (i,j) is connected to vertices (i,j-1), (i-1,j), (i+1,j) and (i,j+1), if they exist. If the \fB-e\fP option is set, it is additionally connected to vertices (i-1,j-1), (i+1,j-1), (i-1,j+1) and (i+1,j+1), if they exist. .PP \fBgmk_m3\fP creates a 3D regular grid graph of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP vertices, such that vertex (i,j,k) is connected to vertices (i,j,k-1), (i,j-1,k), (i-1,j,k), (i+1,j,k), (i,j+1,k) and (i,j,k+1), if they exist. .SH OPTIONS .TP .B \fB-b\fPbval Set the base value of the graph to bval. Default base value is 0. .TP .B \fB-e\fP Build a 8-neighbor grid rather than a 4-neighbor one (for \fBgmk_m2\fP only). .TP .B \fB-g\fP\fIcfile\fP Output graph vertex coordinates (that is, geometry data to be used by gout) in file \fIcfile\fP. .TP .B \fB-h\fP Display some help. .TP .B \fB-t\fP Builds a torus rather than a grid. .TP .B \fB-V\fP Display program version and copyright. .TP .B \fB-y\fP Invert y coordinate in geometry. .SH EXAMPLE Create a 2D graph of 5x7 vertices, of base 1, along with its geometry: .PP .nf .fam C $ gmk_m2 5 7 -b1 -g/tmp/m5x7.xyz /tmp/m5x7.grf .fam T .fi .SH SEE ALSO \fBgtst\fP(1), \fBgout\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgpart\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmk_m2.1.txt000066400000000000000000000030701514310134000246370ustar00rootroot00000000000000NAME gmk_m2, gmk_m3 - create 2D and 3D grid source graphs SYNOPSIS gmk_m2 [options] [-bbval] [-gcfile] [-t] [-y] dimX dimY [ofile] gmk_m3 [options] [-bbval] [-gcfile] [-t] [-y] dimX dimY dimZ [ofile] DESCRIPTION The gmk_* programs create source graph files for some common, regular topologies. gmk_m2 creates a 2D regular grid graph of dimX times dimY vertices, such that vertex (i,j) is connected to vertices (i,j-1), (i-1,j), (i+1,j) and (i,j+1), if they exist. If the -e option is set, it is additionally connected to vertices (i-1,j-1), (i+1,j-1), (i-1,j+1) and (i+1,j+1), if they exist. gmk_m3 creates a 3D regular grid graph of dimX times dimY times dimZ vertices, such that vertex (i,j,k) is connected to vertices (i,j,k-1), (i,j-1,k), (i-1,j,k), (i+1,j,k), (i,j+1,k) and (i,j,k+1), if they exist. OPTIONS -bbval Set the base value of the graph to bval. Default base value is 0. -e Build a 8-neighbor grid rather than a 4-neighbor one (for gmk_m2 only). -gcfile Output graph vertex coordinates (that is, geometry data to be used by gout) in file cfile. -h Display some help. -t Builds a torus rather than a grid. -V Display program version and copyright. -y Invert y coordinate in geometry. EXAMPLE Create a 2D graph of 5x7 vertices, of base 1, along with its geometry: $ gmk_m2 5 7 -b1 -g/tmp/m5x7.xyz /tmp/m5x7.grf SEE ALSO gtst(1), gout(1), gmap(1), gord(1), gpart(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmk_msh.1000066400000000000000000000021111514310134000242650ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gmk_msh 1 "02 September 2020" "" "Scotch user's manual" .SH NAME \fBgmk_msh \fP- create source graph from source mesh \fB .SH SYNOPSIS .nf .fam C \fBgmk_msh\fP [\fIoptions\fP] [\fImfile\fP] [\fIgfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgmk_msh\fP program creates a source graph from a source mesh. The vertices of the graph are the nodes of the mesh, and all mesh elements are turned into cliques, that is, there exists an edge between two vertices in the graph if there exists at least an element in the mesh which comprises the two associated nodes. .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a source graph brol.grf from a source mesh brol.msh: .PP .nf .fam C $ gmk_msh brol.msh brol.grf .fam T .fi .SH SEE ALSO dgmap (1), \fBdgord\fP(1), \fBgbase\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgtst\fP(1), \fBmmk_m2\fP(1), \fBmord\fP(1), \fBmcv\fP(1), \fBmtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmk_msh.1.txt000066400000000000000000000015021514310134000251060ustar00rootroot00000000000000NAME gmk_msh - create source graph from source mesh SYNOPSIS gmk_msh [options] [mfile] [gfile] DESCRIPTION The gmk_msh program creates a source graph from a source mesh. The vertices of the graph are the nodes of the mesh, and all mesh elements are turned into cliques, that is, there exists an edge between two vertices in the graph if there exists at least an element in the mesh which comprises the two associated nodes. OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLE Create a source graph brol.grf from a source mesh brol.msh: $ gmk_msh brol.msh brol.grf SEE ALSO dgmap (1), dgord(1), gbase(1), gmap(1), gord(1), gtst(1), mmk_m2(1), mord(1), mcv(1), mtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmtst.1000066400000000000000000000046131514310134000240070ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gmtst 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgmtst \fP- compute statistics on mappings \fB .SH SYNOPSIS .nf .fam C \fBgmtst\fP [\fIoptions\fP] [\fIgfile\fP] [\fItfile\fP] [\fImfile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgmtst\fP program computes, in a sequential way, statistics on a static mapping, such as load imbalance ratio, edge dilation distribution, etc. It yields the same results as the ones produced by the \fB-vm\fP option of the \fBgmap\fP(1) program. .PP Source graph file \fIgfile\fP can only be a centralized graph file. File \fItfile\fP represents the target architecture onto which \fIgfile\fP was mapped. If mapping file \fImfile\fP was produced by \fBgpart\fP(1), the target architecture file to provide \fBgmtst\fP should describe a complete graph with the same number of vertices as the requested number of parts, for instance by means of the '\fBcmplt\fP \fInum\fP' algorithmically-described architecture. The resulting statistics are stored in file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLES Display statistics on mapping brol.map of graph brol.grf onto target architecture brol.tgt: .PP .nf .fam C $ gmtst brol.grf brol.tgt brol.map .fam T .fi Display statistics on partitioning brol.map of graph brol.grf into \fInum\fP parts. Note the use of the complete graph algorithmically-described architecture and of the shell pipe command to provide the complete target architecture description on the standard input of the \fBgmtst\fP command: .PP .nf .fam C $ echo "cmplt num" | gmtst brol.grf - brol.map .fam T .fi .SH SEE ALSO \fBgmap\fP(1), \fBgout\fP(1), \fBgtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gmtst.1.txt000066400000000000000000000041331514310134000246220ustar00rootroot00000000000000NAME gmtst - compute statistics on mappings SYNOPSIS gmtst [options] [gfile] [tfile] [mfile] [lfile] DESCRIPTION The gmtst program computes, in a sequential way, statistics on a static mapping, such as load imbalance ratio, edge dilation distribution, etc. It yields the same results as the ones produced by the -vm option of the gmap(1) program. Source graph file gfile can only be a centralized graph file. File tfile represents the target architecture onto which gfile was mapped. If mapping file mfile was produced by gpart(1), the target architecture file to provide gmtst should describe a complete graph with the same number of vertices as the requested number of parts, for instance by means of the 'cmplt num' algorithmically-described architecture. The resulting statistics are stored in file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLES Display statistics on mapping brol.map of graph brol.grf onto target architecture brol.tgt: $ gmtst brol.grf brol.tgt brol.map Display statistics on partitioning brol.map of graph brol.grf into num parts. Note the use of the complete graph algorithmically-described architecture and of the shell pipe command to provide the complete target architecture description on the standard input of the gmtst command: $ echo "cmplt num" | gmtst brol.grf - brol.map SEE ALSO gmap(1), gout(1), gtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gord.1000066400000000000000000000054161514310134000236060ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gord 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgord \fP- compute sparse matrix orderings of graphs \fB .SH SYNOPSIS .nf .fam C \fBgord\fP [\fIoptions\fP] [\fIgfile\fP] [\fIofile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgord\fP program computes, in a sequential way, an ordering of a Scotch source graph representing the pattern of some symmetric sparse matrix. .PP Source graph file \fIgfile\fP can only be a centralized graph file. The resulting ordering is stored in file \fIofile\fP. Eventual logging information (such as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBgord\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-c\fPopt Choose default ordering strategy according to one or several \fIoptions\fP among: .RS .TP .B b enforce load balance as much as possible. .TP .B q privilege quality over speed (default). .TP .B s privilege speed over quality. .TP .B t enforce safety. .RE .TP .B \fB-h\fP Display some help. .TP .B \fB-m\fP\fImfile\fP Save column block mapping data to file \fImfile\fP. Mapping data specifies, for each vertex, the index of the column block to which this vertex belongs. .TP .B \fB-o\fP\fIstrat\fP Use sequential graph ordering strategy \fIstrat\fP (see Scotch user's manual for more information). .TP .B \fB-t\fP\fItfile\fP Save partitioning tree data to file \fItfile\fP. Partitioning tree data specifies, for each vertex, the index of the first vertex of the parent block of the block to which the vertex belongs. Altogether with the mapping data provided in file \fImfile\fP, it allows one to rebuild the separator tree of the nested dissection process. .TP .B \fB-V\fP Display program version and copyright. .TP .B \fB-v\fP\fIverb\fP Set verbose mode to \fIverb\fP. It is a set of one of more characters which can be: .RS .TP .B s strategy information. .TP .B t timing information. .SH EXAMPLE Reorder matrix graph brol.grf and save the resulting ordering to file brol.ord using the default sequential graph ordering strategy: .PP .nf .fam C $ gord brol.grf brol.ord .fam T .fi .SH SEE ALSO \fBdgord\fP(1), \fBgmk_hy\fP(1), \fBgtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gord.1.txt000066400000000000000000000051511514310134000244200ustar00rootroot00000000000000NAME gord - compute sparse matrix orderings of graphs SYNOPSIS gord [options] [gfile] [ofile] [lfile] DESCRIPTION The gord program computes, in a sequential way, an ordering of a Scotch source graph representing the pattern of some symmetric sparse matrix. Source graph file gfile can only be a centralized graph file. The resulting ordering is stored in file ofile. Eventual logging information (such as the one produced by option -v) is sent to file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. When the proper libraries have been included at compile time, gord can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -copt Choose default ordering strategy according to one or several options among: b enforce load balance as much as possible. q privilege quality over speed (default). s privilege speed over quality. t enforce safety. -h Display some help. -mmfile Save column block mapping data to file mfile. Mapping data specifies, for each vertex, the index of the column block to which this vertex belongs. -ostrat Use sequential graph ordering strategy strat (see Scotch user's manual for more information). -ttfile Save partitioning tree data to file tfile. Partitioning tree data specifies, for each vertex, the index of the first vertex of the parent block of the block to which the vertex belongs. Altogether with the mapping data provided in file mfile, it allows one to rebuild the separator tree of the nested dissection process. -V Display program version and copyright. -vverb Set verbose mode to verb. It is a set of one of more characters which can be: s strategy information. t timing information. EXAMPLE Reorder matrix graph brol.grf and save the resulting ordering to file brol.ord using the default sequential graph ordering strategy: $ gord brol.grf brol.ord SEE ALSO dgord(1), gmk_hy(1), gtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gotst.1000066400000000000000000000040211514310134000240020ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gotst 1 "02 September 2020" "" "Scotch user's manual" .SH NAME \fBgomtst \fP- compute statistics on sparse matrix orderings \fB .SH SYNOPSIS .nf .fam C \fBgotst\fP [\fIoptions\fP] [\fIgfile\fP] [\fIofile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgotst\fP program computes, in a sequential way, statistics on a sparse matrix ordering, such as fill-in, operation count, and separator tree parameters: minimum, maximum, average height and variance of its leaves. .PP Source graph file \fIgfile\fP can only be a centralized graph file. File \fIofile\fP represents the ordering of the symmetric sparse matrix the pattern of which is represented by \fIgfile\fP. The resulting statistics are stored in file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .PP Since \fBgotst\fP performs sequentially the symbolic factorization of matrix \fIgfile\fP in order to compute fill-in and operation count numbers, this program can take a long time or even run out of memory, when applied to very large graphs. .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-v\fP Do not account for vertex weights when computing factorization costs. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Display statistics on ordering brol.ord of graph brol.grf: .PP .nf .fam C $ gotst brol.grf brol.ord .fam T .fi .SH SEE ALSO \fBgord\fP(1), \fBgtst\fP(1), \fBdgord\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gotst.1.txt000066400000000000000000000034311514310134000246240ustar00rootroot00000000000000NAME gomtst - compute statistics on sparse matrix orderings SYNOPSIS gotst [options] [gfile] [ofile] [lfile] DESCRIPTION The gotst program computes, in a sequential way, statistics on a sparse matrix ordering, such as fill-in, operation count, and separator tree parameters: minimum, maximum, average height and variance of its leaves. Source graph file gfile can only be a centralized graph file. File ofile represents the ordering of the symmetric sparse matrix the pattern of which is represented by gfile. The resulting statistics are stored in file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). Since gotst performs sequentially the symbolic factorization of matrix gfile in order to compute fill-in and operation count numbers, this program can take a long time or even run out of memory, when applied to very large graphs. OPTIONS -h Display some help. -v Do not account for vertex weights when computing factorization costs. -V Display program version and copyright. EXAMPLE Display statistics on ordering brol.ord of graph brol.grf: $ gotst brol.grf brol.ord SEE ALSO gord(1), gtst(1), dgord(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gout.1000066400000000000000000000115021514310134000236220ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gout 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgout \fP- output graphics from matrices and graphs \fB .SH SYNOPSIS .nf .fam C \fBgout\fP [\fIoptions\fP] [\fIgfile\fP] [\fIxfile\fP] [\fImfile\fP] [\fIvfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgout\fP program creates graphics files of various types, representing the Scotch graph and mapping data which is passed to it. .PP Source graph file \fIgfile\fP can only be a centralized graph file. File \fIxfile\fP stores its associated geometry, whenever necessary. File \fImfile\fP represents label information attached to each of the graph vertices, for instance the index of the part to which each vertex belongs in the case of a mapping file. File \fIvfile\fP is the output graphics file, the type of which may differ according to the input parameters. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-g\fP\fIgeop\fP Geometry parameters, which can be an arbitrary combination of any of the following code letters: .RS .TP .B n Do not read geometry data, when it is not available or not required, such as when using the \fB-om\fP option. .TP .B p Permute Y and Z geometry dimensions. .TP .B r Rotate geometry by 90 degrees in the (X,Y) plane. .RE .TP .B \fB-h\fP Display some help. .TP .B \fB-mn\fP Do not read mapping data, when it is not available or not required. .TP .B \fB-o\fP\fIoutp\fP Select the output file type and allows to provide additional parameters between braces and separated by commas: .RS .TP .B i OpenInventor 3D mesh file, to be viewed by means of programs such as \fBivview\fP. Additional parameters for this output file type are: .RS .TP .B c Color output. .TP .B g Gray level output. .TP .B r Remove cut edges. .TP .B v View cut edges. .RE .TP .B m PostScript matrix pattern file. Additional parameters for this output file type are: .RS .TP .B e EPSF-type output. .TP .B f Full-page output. .RE .TP .B p PostScript 2D mesh file. This output module was intended for 2D meshes; as a fallback, the Z coordinate is projected according to isometric perspective rules, but drawings of full 3D objects are most likely to be unreadable. Additional parameters for this output file type are: .RS .TP .B c Color output. .TP .B g Gray level output. .TP .B e EPSF-type output. .TP .B f Full-page output. .TP .B s Short clipping (disks excluded). .TP .B l Large clipping (disks included). .TP .B a Avoid displaying disks. .TP .B d Display disks. .TP .B r Remove cut edges. .TP .B v View cut edges. .TP .B X=\fIrat\fP Maximum x clipping ratio (in [0.0;1.0]). .TP .B x=\fIrat\fP Minimum x clipping ratio. .TP .B Y=\fIrat\fP Maximum y clipping ratio. .TP .B y=\fIrat\fP Minimum y clipping ratio. .RE .TP .B t Tulip 3D mesh file. Additional parameters for this output file type are: .RS .TP .B b Black and white output. .TP .B c Color output. .TP .B a Avoid displaying disks. .TP .B d Display disks. .TP .B r Remove cut edges. .TP .B v View cut edges. .RE .RE .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLES Build an OpenInventor file of the mapping of graph brol.grf contained in file brol.map. Vertices with no mapping information attached to them will be rendered in white, while distinct colors will be used to represent the different parts. Cut edges will be removed: .PP .nf .fam C $ gout '-oi{r}' brol.grf brol.xyz brol.map brol.iv $ ivview brol.iv .fam T .fi Build an OpenInventor file of graph brol.grf without any vertex information associated to it. Mapping data are not required and will not be read, but a file name has to be provided, hence the \(cq-': .PP .nf .fam C $ gout -oi -mn brol.grf brol.xyz - brol.iv .fam T .fi Output the pattern of matrix brol.grf on the form of a PostScript flat drawing. Geometry and mapping data are not required and will not be read, but file names have to be provided, hence the two '-'s: .PP .nf .fam C $ gout -om -gn -mn brol.grf - - brol.ps .fam T .fi Output a PostScript 2D drawing of a rectangular portion graph brol.grf, with disks representing mapping data: .PP .nf .fam C $ gout '-op{c,e,d,x=0.3,X=0.6,y=0.2,Y=0.5}' brol.grf brol.xyz brol.map brol.ps .fam T .fi .SH SEE ALSO \fBgmap\fP(1), \fBgout\fP(1), \fBgtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gout.1.txt000066400000000000000000000120661514310134000244460ustar00rootroot00000000000000NAME gout - output graphics from matrices and graphs SYNOPSIS gout [options] [gfile] [xfile] [mfile] [vfile] DESCRIPTION The gout program creates graphics files of various types, representing the Scotch graph and mapping data which is passed to it. Source graph file gfile can only be a centralized graph file. File xfile stores its associated geometry, whenever necessary. File mfile represents label information attached to each of the graph vertices, for instance the index of the part to which each vertex belongs in the case of a mapping file. File vfile is the output graphics file, the type of which may differ according to the input parameters. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -ggeop Geometry parameters, which can be an arbitrary combination of any of the following code letters: n Do not read geometry data, when it is not available or not required, such as when using the -om option. p Permute Y and Z geometry dimensions. r Rotate geometry by 90 degrees in the (X,Y) plane. -h Display some help. -mn Do not read mapping data, when it is not available or not required. -ooutp Select the output file type and allows to provide additional parameters between braces and separated by commas: i OpenInventor 3D mesh file, to be viewed by means of programs such as ivview. Additional parameters for this output file type are: c Color output. g Gray level output. r Remove cut edges. v View cut edges. m PostScript matrix pattern file. Additional parameters for this output file type are: e EPSF-type output. f Full-page output. p PostScript 2D mesh file. This output module was intended for 2D meshes; as a fallback, the Z coordinate is projected according to isometric perspective rules, but drawings of full 3D objects are most likely to be unreadable. Additional parameters for this output file type are: c Color output. g Gray level output. e EPSF-type output. f Full-page output. s Short clipping (disks excluded). l Large clipping (disks included). a Avoid displaying disks. d Display disks. r Remove cut edges. v View cut edges. X=rat Maximum x clipping ratio (in [0.0;1.0]). x=rat Minimum x clipping ratio. Y=rat Maximum y clipping ratio. y=rat Minimum y clipping ratio. t Tulip 3D mesh file. Additional parameters for this output file type are: b Black and white output. c Color output. a Avoid displaying disks. d Display disks. r Remove cut edges. v View cut edges. -V Display program version and copyright. EXAMPLES Build an OpenInventor file of the mapping of graph brol.grf contained in file brol.map. Vertices with no mapping information attached to them will be rendered in white, while distinct colors will be used to represent the different parts. Cut edges will be removed: $ gout '-oi{r}' brol.grf brol.xyz brol.map brol.iv $ ivview brol.iv Build an OpenInventor file of graph brol.grf without any vertex information associated to it. Mapping data are not required and will not be read, but a file name has to be provided, hence the '-': $ gout -oi -mn brol.grf brol.xyz - brol.iv Output the pattern of matrix brol.grf on the form of a PostScript flat drawing. Geometry and mapping data are not required and will not be read, but file names have to be provided, hence the two '-'s: $ gout -om -gn -mn brol.grf - - brol.ps Output a PostScript 2D drawing of a rectangular portion graph brol.grf, with disks representing mapping data: $ gout '-op{c,e,d,x=0.3,X=0.6,y=0.2,Y=0.5}' brol.grf brol.xyz brol.map brol.ps SEE ALSO gmap(1), gout(1), gtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gtst.1000066400000000000000000000033131514310134000236260ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH gtst 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBgtst \fP- test the consistency of source graphs \fB .SH SYNOPSIS .nf .fam C \fBgtst\fP [\fIoptions\fP] [\fIgfile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBgtst\fP program checks, in a sequential way, the consistency of a Scotch source graph and, in case of success, outputs some statistics regarding edge weights, vertex weights, and vertex degrees. .PP It produces the very same results as the \fBdgtst\fP(1) program of the PT-Scotch parallel distribution, but unlike this latter it cannot handle distributed graphs. .PP Source graph file \fIgfile\fP can only be a centralized graph file. The resulting statistics are stored in file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBgtst\fP can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Test the consistency of graph brol.grf: .PP .nf .fam C $ gtst brol.grf .fam T .fi .SH SEE ALSO \fBdgtst\fP(1), \fBgbase\fP(1), \fBgmap\fP(1), \fBgord\fP(1), \fBgout\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/gtst.1.txt000066400000000000000000000027261514310134000244530ustar00rootroot00000000000000NAME gtst - test the consistency of source graphs SYNOPSIS gtst [options] [gfile] [lfile] DESCRIPTION The gtst program checks, in a sequential way, the consistency of a Scotch source graph and, in case of success, outputs some statistics regarding edge weights, vertex weights, and vertex degrees. It produces the very same results as the dgtst(1) program of the PT-Scotch parallel distribution, but unlike this latter it cannot handle distributed graphs. Source graph file gfile can only be a centralized graph file. The resulting statistics are stored in file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, gtst can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLE Test the consistency of graph brol.grf: $ gtst brol.grf SEE ALSO dgtst(1), gbase(1), gmap(1), gord(1), gout(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mcv.1000066400000000000000000000040161514310134000234330ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH mcv 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBmcv \fP- mesh file converter \fB .SH SYNOPSIS .nf .fam C \fBmcv\fP [\fIoptions\fP] [\fIimfile\fP] [\fIomfile\fP] [\fIoxfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBmcv\fP program converts Scotch mesh files from and to other external file formats. .PP File \fIimfile\fP is converted into mesh file \fIomfile\fP, with optional geometry data being put in geometry file \fIoxfile\fP, if it is available. .PP When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBmcv\fP can directly handle compressed meshes, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-i\fP\fIifmt\fP Set format of input mesh file, which can be: .RS .TP .B b\fInum\fP Boeing-Harwell format. This is an elemental matrix format. Only square matrices are supported. In case the file contains several matrices, the \fInum\fP parameter allow the user to provide the index of the matrix to convert, starting from 0. When the \fInum\fP parameter is not set, it is assumed to be 0. .TP .B s Scotch mesh format. .RE .TP .B \fB-o\fP\fIofmt\fP Set format of output mesh file, which can be: .RS .TP .B s Scotch mesh format. This is the only possible choice at the time being. .RE .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Convert a Harwell-Boeing elemental mesh into a Scotch mesh. .PP .nf .fam C $ mcv -ib brol.hb brol.msh .fam T .fi .SH SEE ALSO \fBmtst\fP(1), \fBmord\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mcv.1.txt000066400000000000000000000036011514310134000242500ustar00rootroot00000000000000NAME mcv - mesh file converter SYNOPSIS mcv [options] [imfile] [omfile] [oxfile] DESCRIPTION The mcv program converts Scotch mesh files from and to other external file formats. File imfile is converted into mesh file omfile, with optional geometry data being put in geometry file oxfile, if it is available. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, mcv can directly handle compressed meshes, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -iifmt Set format of input mesh file, which can be: bnum Boeing-Harwell format. This is an elemental matrix format. Only square matrices are supported. In case the file contains several matrices, the num parameter allow the user to provide the index of the matrix to convert, starting from 0. When the num parameter is not set, it is assumed to be 0. s Scotch mesh format. -oofmt Set format of output mesh file, which can be: s Scotch mesh format. This is the only possible choice at the time being. -V Display program version and copyright. EXAMPLE Convert a Harwell-Boeing elemental mesh into a Scotch mesh. $ mcv -ib brol.hb brol.msh SEE ALSO mtst(1), mord(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mmk_m2.1000066400000000000000000000030311514310134000240240ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH mmk_m2 1 "02 April 2021" "" "Scotch user's manual" .SH NAME \fBmmk_m2, mmk_m3 \fP- create source meshes \fB .SH SYNOPSIS .nf .fam C \fBmmk_m2\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP [\fIofile\fP] \fBmmk_m3\fP [\fIoptions\fP] [\fB-g\fP\fIcfile\fP] \fIdimX\fP \fIdimY\fP \fIdimZ\fP [\fIofile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBmmk_\fP* programs create source mesh files for some common, regular topologies. .PP \fBmmk_m2\fP creates a 2D regular grid mesh of \fIdimX\fP times \fIdimY\fP elements and (\fIdimX\fP+1) times (\fIdimY\fP+1) nodes, such that element (i,j) is connected to nodes (i,j), (i,j+1), (i+1,j) and (i+1,j+1). .PP \fBmmk_m3\fP creates a 3D regular grid mesh of \fIdimX\fP times \fIdimY\fP times \fIdimZ\fP elements and (\fIdimX\fP+1) times (\fIdimY\fP+1) times (\fIdimZ\fP+1) nodes, such that element (i,j,k) is connected to nodes (i,j,k), (i,j,k+1), (i,j+1,k), (i,j+1,k+1), (i+1,j,k), (i+1,j,k+1), (i+1,j+1,k) and (i+1,j+1,k+1). .SH OPTIONS .TP .B \fB-g\fP\fIcfile\fP Output graph vertex coordinates (that is, geometry data to be used by \fBgout\fP(1)) in file \fIcfile\fP. .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Create a mesh of 5x7 elements, along with its geometry: .PP .nf .fam C $ mmk_m2 5 7 -g/tmp/m5x7.xyz /tmp/m5x7.msh .fam T .fi .SH SEE ALSO \fBmord\fP(1), \fBmtst\fP(1), \fBgmk_msh\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mmk_m2.1.txt000066400000000000000000000022331514310134000246450ustar00rootroot00000000000000NAME mmk_m2, mmk_m3 - create source meshes SYNOPSIS mmk_m2 [options] [-gcfile] dimX dimY [ofile] mmk_m3 [options] [-gcfile] dimX dimY dimZ [ofile] DESCRIPTION The mmk_* programs create source mesh files for some common, regular topologies. mmk_m2 creates a 2D regular grid mesh of dimX times dimY elements and (dimX+1) times (dimY+1) nodes, such that element (i,j) is connected to nodes (i,j), (i,j+1), (i+1,j) and (i+1,j+1). mmk_m3 creates a 3D regular grid mesh of dimX times dimY times dimZ elements and (dimX+1) times (dimY+1) times (dimZ+1) nodes, such that element (i,j,k) is connected to nodes (i,j,k), (i,j,k+1), (i,j+1,k), (i,j+1,k+1), (i+1,j,k), (i+1,j,k+1), (i+1,j+1,k) and (i+1,j+1,k+1). OPTIONS -gcfile Output graph vertex coordinates (that is, geometry data to be used by gout(1)) in file cfile. -h Display some help. -V Display program version and copyright. EXAMPLE Create a mesh of 5x7 elements, along with its geometry: $ mmk_m2 5 7 -g/tmp/m5x7.xyz /tmp/m5x7.msh SEE ALSO mord(1), mtst(1), gmk_msh(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mord.1000066400000000000000000000057441514310134000236200ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH mord 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBmord \fP- compute sparse matrix orderings of meshes \fB .SH SYNOPSIS .nf .fam C \fBmord\fP [\fIoptions\fP] [\fImfile\fP] [\fIofile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBmord\fP program computes, in a sequential way, an ordering of a Scotch source mesh representing the pattern of some symmetric sparse matrix. Only nodes of the mesh are effectively ordered. Elements provide connectivity information, such that every node is considered to be linked to all of the nodes which share at least an element with it. .PP Source mesh file \fImfile\fP can only be a centralized mesh file. The resulting ordering is stored in file \fIofile\fP. Eventual logging information (such as the one produced by option \fB-v\fP) is sent to file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. .PP When the proper libraries have been included at compile time, gord can directly handle compressed meshes, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-c\fPopt Choose default ordering strategy according to one or several \fIoptions\fP among: .RS .TP .B b enforce load balance as much as possible. .TP .B q privilege quality over speed (default). .TP .B s privilege speed over quality. .TP .B t enforce safety. .RE .TP .B \fB-h\fP Display some help. .TP .B \fB-m\fP\fImfile\fP Save column block mapping data to file \fImfile\fP. Mapping data specifies, for each node vertex, the index of the column block to which this node vertex belongs. .TP .B \fB-o\fP\fIstrat\fP Use sequential mesh ordering strategy \fIstrat\fP (see Scotch user's manual for more information). .TP .B \fB-t\fP\fItfile\fP Save partitioning tree data to file \fItfile\fP. Partitioning tree data specifies, for each node vertex, the index of the first node vertex of the parent block of the block to which the node vertex belongs. Altogether with the mapping data provided in file \fImfile\fP, it allows one to rebuild the separator tree of the nested dissection process. .TP .B \fB-V\fP Display program version and copyright. .TP .B \fB-v\fP\fIverb\fP Set verbose mode to \fIverb\fP. It is a set of one of more characters which can be: .RS .TP .B s strategy information. .TP .B t timing information. .SH EXAMPLE Reorder matrix mesh brol.msh and save the resulting ordering to file brol.ord using the default sequential mesh ordering strategy: .PP .nf .fam C $ mord brol.msh brol.ord .fam T .fi .SH SEE ALSO \fBgmk_msh\fP(1), \fBgotst\fP(1), \fBmtst\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mord.1.txt000066400000000000000000000055131514310134000244300ustar00rootroot00000000000000NAME mord - compute sparse matrix orderings of meshes SYNOPSIS mord [options] [mfile] [ofile] [lfile] DESCRIPTION The mord program computes, in a sequential way, an ordering of a Scotch source mesh representing the pattern of some symmetric sparse matrix. Only nodes of the mesh are effectively ordered. Elements provide connectivity information, such that every node is considered to be linked to all of the nodes which share at least an element with it. Source mesh file mfile can only be a centralized mesh file. The resulting ordering is stored in file ofile. Eventual logging information (such as the one produced by option -v) is sent to file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. When the proper libraries have been included at compile time, gord can directly handle compressed meshes, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -copt Choose default ordering strategy according to one or several options among: b enforce load balance as much as possible. q privilege quality over speed (default). s privilege speed over quality. t enforce safety. -h Display some help. -mmfile Save column block mapping data to file mfile. Mapping data specifies, for each node vertex, the index of the column block to which this node vertex belongs. -ostrat Use sequential mesh ordering strategy strat (see Scotch user's manual for more information). -ttfile Save partitioning tree data to file tfile. Partitioning tree data specifies, for each node vertex, the index of the first node vertex of the parent block of the block to which the node vertex belongs. Altogether with the mapping data provided in file mfile, it allows one to rebuild the separator tree of the nested dissection process. -V Display program version and copyright. -vverb Set verbose mode to verb. It is a set of one of more characters which can be: s strategy information. t timing information. EXAMPLE Reorder matrix mesh brol.msh and save the resulting ordering to file brol.ord using the default sequential mesh ordering strategy: $ mord brol.msh brol.ord SEE ALSO gmk_msh(1), gotst(1), mtst(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mtst.1000066400000000000000000000030431514310134000236340ustar00rootroot00000000000000.\" Text automatically generated by txt2man .TH mtst 1 "23 November 2019" "" "Scotch user's manual" .SH NAME \fBmtst \fP- test the consistency of source meshes \fB .SH SYNOPSIS .nf .fam C \fBmtst\fP [\fIoptions\fP] [\fImfile\fP] [\fIlfile\fP] .fam T .fi .fam T .fi .SH DESCRIPTION The \fBmtst\fP program checks, in a sequential way, the consistency of a Scotch source mesh and, in case of success, outputs some statistics regarding edge weights, node and element vertex weights, and node and element vertex degrees. .PP Source mesh file \fImfile\fP can only be a centralized mesh file. The resulting statistics are stored in file \fIlfile\fP. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. .PP When the proper libraries have been included at compile time, \fBmtst\fP can directly handle compressed meshes, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). .SH OPTIONS .TP .B \fB-h\fP Display some help. .TP .B \fB-V\fP Display program version and copyright. .SH EXAMPLE Test the consistency of mesh brol.msh: .PP .nf .fam C $ mtst brol.msh .fam T .fi .SH SEE ALSO \fBmcv\fP(1), \fBmord\fP(1), \fBgmk_msh\fP(1). .PP Scotch user's manual. .SH AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/man/man1/mtst.1.txt000066400000000000000000000024771514310134000244640ustar00rootroot00000000000000NAME mtst - test the consistency of source meshes SYNOPSIS mtst [options] [mfile] [lfile] DESCRIPTION The mtst program checks, in a sequential way, the consistency of a Scotch source mesh and, in case of success, outputs some statistics regarding edge weights, node and element vertex weights, and node and element vertex degrees. Source mesh file mfile can only be a centralized mesh file. The resulting statistics are stored in file lfile. When file names are not specified, data is read from standard input and written to standard output. Standard streams can also be explicitly represented by a dash '-'. When the proper libraries have been included at compile time, mtst can directly handle compressed meshes, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension, such as in 'brol.msh.bz2' or '-.gz'. The compression formats which can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). OPTIONS -h Display some help. -V Display program version and copyright. EXAMPLE Test the consistency of mesh brol.msh: $ mtst brol.msh SEE ALSO mcv(1), mord(1), gmk_msh(1). Scotch user's manual. AUTHOR Francois Pellegrini scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/000077500000000000000000000000001514310134000217435ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/CMakeLists.txt000066400000000000000000000204051514310134000245040ustar00rootroot00000000000000## Copyright 2014-2016,2021-2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Marc FUENTES ## ## Florent PRUVOST ## ## Cedric LACHAT (v6.0) ## ## Amaury JACQUES (v6.0) ## ## Clement BARTHELEMY ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 28 aug 2025 ## ## ## ############################################################ # Add general compiler options add_definitions(-Drestrict=__restrict -DSCOTCH_RENAME) set(dev_null /dev/null) # Add OS-specific compiler options if(APPLE) add_definitions(-DCOMMON_OS_MACOS -D_DARWIN_C_SOURCE) endif(APPLE) if(MINGW OR MSYS OR WIN32) add_definitions(-DCOMMON_OS_WINDOWS) set(dev_null NUL) endif(MINGW OR MSYS OR WIN32) if(MSVC) add_definitions(-D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS) endif(MSVC) # Detect FreeBSD if(${CMAKE_HOST_SYSTEM_NAME}} MATCHES "^.*FreeBSD.*$") set(OS_IS_FREEBSD ON) message(STATUS "OS is FreeBSD") endif() # Manage suffixes if (USE_SUFFIX) add_definitions(-DSCOTCH_RENAME_ALL -DSCOTCH_NAME_SUFFIX=${SCOTCH_NAME_SUFFIX}) endif() ################### # Prerequisites # ################### # Bison find_package(BISON) if(NOT BISON_FOUND) message(WARNING "Compiling with a default version of parser files. Install Bison >= 3.8.2 if it does not work") else() message(STATUS "Bison found here: ${BISON_EXECUTABLE}") endif() # Flex find_package(FLEX) if (FLEX_VERSION VERSION_EQUAL "2.6.1") message(WARNING "Flex 2.6.1 is bogus") set(FLEX_FOUND FALSE) endif() if(NOT FLEX_FOUND) message(WARNING "Compiling with a default version of lexer files. Install Flex >= 2.6.4 if it does not work") else() message(STATUS "Flex found here: ${FLEX_EXECUTABLE}") endif() ############# # Options # ############# # Set integer size if(NOT INTSIZE STREQUAL "") if(INTSIZE STREQUAL "32") message(STATUS "Integer size is 32 bits") add_definitions(-DINTSIZE32) elseif(INTSIZE STREQUAL "64") message(STATUS "Integer size is 64 bits") add_definitions(-DINTSIZE64) else() message(FATAL_ERROR "Invalid integer size value") endif() endif() # Set index size if(NOT IDXSIZE STREQUAL "") if(IDXSIZE STREQUAL "32") message(STATUS "Index size is 32 bits") add_definitions(-DIDXSIZE32) elseif(IDXSIZE STREQUAL "64") message(STATUS "Index size is 64 bits") add_definitions(-DIDXSIZE64) else() message(FATAL_ERROR "Invalid integer size value") endif() endif() # Thread support in Scotch if(THREADS) find_package(Threads) if(Threads_FOUND) add_definitions(-DCOMMON_PTHREAD -DSCOTCH_PTHREAD) endif() if(CMAKE_USE_WIN32_THREADS_INIT) add_definitions(-DCOMMON_THREAD_WIN32) endif() include(CheckPthreadAffinity) if(PTHREAD_AFFINITY_LINUX_OK) add_definitions(-DCOMMON_PTHREAD_AFFINITY_LINUX) endif() endif() # Detect and remove GCC _FORTIFY_SOURCE if(CMAKE_C_COMPILER_ID STREQUAL "GNU") message(WARNING "GCC _FORTIFY_SOURCE is known to cause problem with Scotch and is disabled by default") set(CMAKE_C_FLAGS "-U_FORTIFY_SOURCE ${CMAKE_C_FLAGS}") endif() # Decompression libs if(USE_ZLIB) find_package(ZLIB) endif(USE_ZLIB) if (USE_BZ2) find_package(BZip2) endif (USE_BZ2) if (USE_LZMA) find_package(LibLZMA) endif(USE_LZMA) # MPI if(BUILD_PTSCOTCH) set(MPI_DETERMINE_LIBRARY_VERSION ON) find_package(MPI COMPONENTS ${MPI_COMPONENTS}) if(NOT MPI_C_FOUND) message(FATAL_ERROR "MPI required to compile PT-Scotch\n Rerun cmake with -DBUILD_PTSCOTCH=OFF") else() string(REGEX MATCHALL "\( Open MPI \)+" found_suite ${MPI_C_LIBRARY_VERSION_STRING}) if(NOT ${found_suite} STREQUAL "") message(STATUS "Found OpenMPI: using '--oversubscribe' policy for testing") set(MPIEXEC_PREFLAGS ${MPIEXEC_PREFLAGS} --oversubscribe) endif() string(REGEX MATCHALL "\(Intel\)+" found_suite ${MPI_C_LIBRARY_VERSION_STRING}) if(NOT ${found_suite} STREQUAL "") message(STATUS "Found Intel MPI: using '-genv=I_MPI_PIN_DOMAIN=core' for testing") set(MPIEXEC_PREFLAGS ${MPIEXEC_PREFLAGS} -genv=I_MPI_PIN_DOMAIN=core) endif() endif() if(MPI_THREAD_MULTIPLE) if(Threads_FOUND) include(CheckMpiThreadMultiple) if(MPI_THREAD_MULTIPLE_OK) message(STATUS "MPI implementation DOES support MPI_THREAD_MULTIPLE") add_definitions(-DSCOTCH_PTHREAD_MPI) else() message(STATUS "MPI implementation does NOT support MPI_THREAD_MULTIPLE") endif() endif() endif() endif(BUILD_PTSCOTCH) # Put libraries in the lib subdirectory set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # Put executables in the bin subdirectory set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # Set variables for include directories set(GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include) set(LIBSCOTCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libscotch) file(MAKE_DIRECTORY ${GENERATED_INCLUDE_DIR}) # Build Scotch and PT-Scotch libraries add_subdirectory(libscotch) # Build Scotch executables add_subdirectory(scotch) # Build EsMUMPS library if(BUILD_LIBESMUMPS AND NOT USE_SUFFIX) add_subdirectory(esmumps) endif(BUILD_LIBESMUMPS AND NOT USE_SUFFIX) # Build ScotchMeTiS library if(BUILD_LIBSCOTCHMETIS) add_subdirectory(libscotchmetis) endif(BUILD_LIBSCOTCHMETIS) # Testing if(ENABLE_TESTS) add_subdirectory(check) endif(ENABLE_TESTS) #################### # Export targets # #################### # See https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html include(CMakePackageConfigHelpers) configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/SCOTCHConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/SCOTCHConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR) write_basic_package_version_file(SCOTCHConfigVersion.cmake VERSION ${SCOTCH_VERSION_LONG} COMPATIBILITY AnyNewerVersion) # Install config files install(FILES ${CMAKE_CURRENT_BINARY_DIR}/SCOTCHConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/SCOTCHConfigVersion.cmake COMPONENT libscotch DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/000077500000000000000000000000001514310134000233705ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.alpha_dec_osf1000066400000000000000000000006021514310134000304250ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = ruv CAT = cat CCS = cc CCP = mpicc CCD = mpicc FCS = fc CFLAGS = -v -O3 -omp -ansi_alias -ansi_args -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_mac_darwin10000066400000000000000000000007431514310134000306240ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_OS_MACOS -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lz -lm -lpthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.i686_mac_darwin10.icc000066400000000000000000000007061514310134000313010ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = icc CCP = mpicc CCD = icc FCS = ifx CFLAGS = -O3 -restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_OS_MACOS -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lz -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_mac_darwin8000066400000000000000000000006751514310134000305570ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = mpicc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_OS_MACOS -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_pc_freebsd000066400000000000000000000013251514310134000304500ustar00rootroot00000000000000# -Dcpu_set_t=cpuset_t is self-explanatory # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259787#c3 # -D__BSD_VISIBLE to have access to _SC_NPROCESSORS_ONLN # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259787#c3 EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -ruv CAT = cat CCS = cc CCP = mpicc CCD = mpicc FCS = gfortran CFLAGS += -std=c99 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -Dcpu_set_t=cpuset_t -D__BSD_VISIBLE CLIBFLAGS = LDFLAGS += -lz -lm -lpthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.i686_pc_haiku.shlib000066400000000000000000000010471514310134000311610ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .so OBJ = .o MAKE = make AR = gcc ARFLAGS = -shared -o CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ -DCOMMON_FILE_COMPRESS_LZMA -DCOMMON_PTHREAD_FILE -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = -shared -fPIC LDFLAGS = -lz -llzma -lbz2 -lm -Xlinker --no-as-needed CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = echo BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_pc_linux2000066400000000000000000000007341514310134000302620ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lz -lm -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_pc_linux2.c99000066400000000000000000000007741514310134000306710ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -std=c99 -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER CLIBFLAGS = LDFLAGS = -lz -lm -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.i686_pc_linux2.debug000066400000000000000000000010141514310134000312600ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -g -O0 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -g -lz -lm -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.i686_pc_linux2.nothreads000066400000000000000000000006051514310134000321660ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lz -lm -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.i686_pc_linux2.prof000066400000000000000000000007401514310134000311450ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -pg -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lz -lm -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.i686_pc_linux2.shlib000066400000000000000000000010101514310134000312670ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .so OBJ = .o MAKE = make AR = gcc ARFLAGS = -shared -o CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = -shared -fPIC LDFLAGS = -lz -lm -pthread -Xlinker --no-as-needed CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = echo BISON = bison Makefile.inc.i686_pc_linux2.shlib.debug000066400000000000000000000010701514310134000323620ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .so OBJ = .o MAKE = make AR = gcc ARFLAGS = -shared -o CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -g -O0 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME CLIBFLAGS = -shared -fPIC LDFLAGS = -g -lz -lm -pthread -Xlinker --no-as-needed CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = echo BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_pc_linux3000066400000000000000000000007751514310134000302700ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER CLIBFLAGS = LDFLAGS = -lz -lpthread -lm -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_pc_mingw32000066400000000000000000000041171514310134000303260ustar00rootroot00000000000000# This make include file is intended for building under MinGW32. As is, # it relies on : # - pthread-win32 (http://sourceware.org/pthreads-win32/), # - zlib (http://www.zlib.net/) # - mpich2 (http://www.mcs.anl.gov/research/projects/mpich2/). # It must be adapted to reflect your environment, in particular # installation root directories, include path and library name. # Since all files are linked with the MPI libraries, this file is # for compiling PT-Scotch only. To compile Scotch, remove the # -DSCOTCH_PTSCOTCH flag, as well as all references to MPI in the # CFLAGS and CLIBFLAGS = LDFLAGS variables. EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = gcc CCD = gcc FCS = gfortran #--- Compiler/loader flags CFLAGS_CPL = -O0 -g3 -fPIC -U_FORTIFY_SOURCE CFLAGS_INC = CFLAGS_DEF = -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_STUB_FORK -DCOMMON_STUB_WAITPID -DCOMMON_WINDOWS -DSCOTCH_PTSCOTCH -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = PGMFILES=$(PROGRAMFILES) #--- MPI MPI_ROOTDIR = $(PGMFILES)/MPICH2 CFLAGS_INC += -I$(MPI_ROOTDIR)/include #--- Comment/Uncomment for threaded MPI CLIBFLAGS = LDFLAGS += -L$(MPI_ROOTDIR)/lib -lm -lmpi #CLIBFLAGS = LDFLAGS += -L$(MPI_ROOTDIR)/lib -lm -lmpich2mt #--- Pthread : Uncomment for pthread support #PTHREAD_ROOTDIR = $(PGMFILES)/pthread-win32 #CFLAGS_INC += -I$(PTHREAD_ROOTDIR)/include #CLIBFLAGS = LDFLAGS += -L$(PTHREAD_ROOTDIR)/lib -lpthreadGC2 #--- zlib: Uncomment for compressed files #ZLIB_ROOTDIR = $(PGMFILES)/zlib-1.2.3 #CFLAGS_INC += -I$(ZLIB_ROOTDIR)/include #CLIBFLAGS = LDFLAGS += -L$(ZLIB_ROOTDIR)/lib -lzdll #--- COMMON_PTHREAD: Uncomment for compressed files #CFLAGS_DEF += -DCOMMON_PTHREAD -DCOMMON_FILE_COMPRESS_GZ #--- SCOTCH_PTHREAD: Uncomment for threads (save for MPI) #CFLAGS_DEF += -DSCOTCH_PTHREAD #--- SCOTCH_PTHREAD: Uncomment for threaded MPI (with SCOTCH_PTHREAD on) #CFLAGS_DEF += -DSCOTCH_PTHREAD_MPI CFLAGS = $(CFLAGS_CPL) $(CFLAGS_INC) $(CFLAGS_DEF) CP = cp FLEX = flex LN = cp MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.i686_sun_solaris5000066400000000000000000000006351514310134000310050ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = cc CCP = mpicc CCD = mpicc FCS = fc CFLAGS = -m64 -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -Du_int32_t=uint32_t -Du_int64_t=uint64_t CLIBFLAGS = LDFLAGS = -lz -lm -lrt CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.mips_sgi_irix6000066400000000000000000000005431514310134000305340ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = ruv CAT = cat CCS = xlc CCP = mpicc CCD = mpicc FCS = xlf CFLAGS = -n32 -xansi -fullwarn -O2 -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.pa11_hp_ux10000066400000000000000000000005651514310134000277130ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = ruv CAT = cat CCS = cc CCP = mpicc CCD = mpicc FCS = fc CFLAGS = -Aa -z +DA1.1 +w1 +O4 +Onoinitcheck +Onolimit -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME CLIBFLAGS = LDFLAGS = -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.power3_ibm_aix5000066400000000000000000000007341514310134000305770ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -X64 -ruv CAT = cat CCS = xlc_r CCP = mpcc_r CCD = xlc_r -I/usr/lpp/ppe.poe/include FCS = xlf CFLAGS = -ma -q64 -qarch=auto -O3 -qstrict -qtune=pwr3 -qlanglvl=extc99 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -D_ALL_SOURCE CLIBFLAGS = LDFLAGS = -bmaxdata:0x80000000 -lpthread -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.power6_ibm_aix5000066400000000000000000000007371514310134000306050ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -X64 -ruv CAT = cat CCS = xlc_r CCP = mpcc_r CCD = xlc_r -I/usr/lpp/ppe.poe/include FCS = xlf CFLAGS = -ma -q64 -qarch=auto -O3 -qstrict -qtune=pwr6 -qlanglvl=extc99 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_RENAME -D_ALL_SOURCE CLIBFLAGS = LDFLAGS = -lpthread -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.ppc450_ibm_bgp000066400000000000000000000010211514310134000302630ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -ruv CAT = cat CCS = /bgsys/drivers/ppcfloor/comm/bin/mpixlc_r CCP = /bgsys/drivers/ppcfloor/comm/bin/mpixlc_r CCD = xlc_r -I/bgsys/drivers/ppcfloor/comm/include FCS = xlf CFLAGS = -O3 -qstrict -qlanglvl=extc99 -qarch=450d -qtune=450 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_DETERMINISTIC -D_ALL_SOURCE CLIBFLAGS = LDFLAGS = -lpthread -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.ppca2_ibm_bgq000066400000000000000000000010031514310134000302560ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -ruv CAT = cat CCS = /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlc_r CCP = /bgsys/drivers/ppcfloor/comm/xl/bin/mpixlc_r CCD = xlc_r -I/bgsys/drivers/ppcfloor/comm/xl/include FCS = xlf CFLAGS = -O3 -qstrict -qlanglvl=extc99 -s -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_DETERMINISTIC -D_ALL_SOURCE CLIBFLAGS = LDFLAGS = -lpthread -lm CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_cray-xt4_linux2000066400000000000000000000006131514310134000314300ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -ruv CAT = cat CCS = cc CCP = cc CCD = cc FCS = fc CFLAGS = -O3 -c99 -fast -fastsse -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = LDFLAGS = -lm -lrt CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.x86-64_pc_freebsd000066400000000000000000000013311514310134000306250ustar00rootroot00000000000000# -Dcpu_set_t=cpuset_t is self-explanatory # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259787#c3 # -D__BSD_VISIBLE to have access to _SC_NPROCESSORS_ONLN # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259787#c3 EXE = LIB = .a OBJ = .o MAKE = gmake AR = ar ARFLAGS = -ruv CAT = cat CCS = cc CCP = mpicc CCD = cc FCS = gfortran CFLAGS += -std -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER -DIDXSIZE64 -Dcpu_set_t=cpuset_t -D__BSD_VISIBLE CLIBFLAGS = LDFLAGS += -lz -lm -lthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_pc_haiku.shlib000066400000000000000000000010631514310134000313370ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .so OBJ = .o MAKE = make AR = gcc ARFLAGS = -shared -o CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ -DCOMMON_FILE_COMPRESS_LZMA -DCOMMON_PTHREAD_FILE -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = -shared -fPIC LDFLAGS = -lz -llzma -lbz2 -lm -Xlinker --no-as-needed CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = echo BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/Makefile.inc.x86-64_pc_linux2000066400000000000000000000007551514310134000304450ustar00rootroot00000000000000EXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = LDFLAGS = -lz -lm -lrt -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_pc_linux2.icc000066400000000000000000000007321514310134000311160ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = icc CCP = mpicc CCD = icc FCS = ifx CFLAGS = -O3 -restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = LDFLAGS = -lz -lm -lrt -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_pc_linux2.icc.debug000066400000000000000000000011041514310134000321750ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = icc CCP = mpicc CCD = icc FCS = ifx CFLAGS = -g -O0 -restrict -fp-model strict -traceback -check-uninit -fp-stack-check -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = LDFLAGS = -g -lz -lm -lrt -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_pc_linux2.icc.impi000066400000000000000000000010641514310134000320520ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = icc CCP = mpiicc MPI_INC = $(shell mpiicc -show | sed -e 's/.*\(\-I.*include\).*/\1/') CCD = icc $(MPI_INC) FCS = ifx CFLAGS = -O3 -restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = LDFLAGS = -lz -lm -lrt -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_pc_linux2.icc.impi.debug000066400000000000000000000012201514310134000331310ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .a OBJ = .o MAKE = make AR = ar ARFLAGS = -ruv CAT = cat CCS = icc CCP = mpiicc MPI_INC = $(shell mpiicc -show | sed -e 's/.*\(\-I.*include\).*/\1/') CCD = icc $(MPI_INC) FCS = ifx CFLAGS = -g -O0 -restrict -fp-model strict -traceback -fp-stack-check -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_DEBUG_ALL -DSCOTCH_DETERMINISTIC -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = LDFLAGS = -g -lz -lm -lrt -pthread CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = ranlib BISON = bison Makefile.inc.x86-64_pc_linux2.shlib000066400000000000000000000010311514310134000314520ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.incEXE = LIB = .so OBJ = .o MAKE = make AR = gcc ARFLAGS = -shared -o CAT = cat CCS = gcc CCP = mpicc CCD = gcc FCS = gfortran CFLAGS = -O3 -fPIC -U_FORTIFY_SOURCE -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_AFFINITY_LINUX -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_MPI_ASYNC_COLL -DSCOTCH_PTHREAD -DSCOTCH_PTHREAD_MPI -DSCOTCH_RENAME -DIDXSIZE64 CLIBFLAGS = -shared -fPIC LDFLAGS = -lz -lm -lrt -pthread -Xlinker --no-as-needed CP = cp FLEX = flex LN = ln MKDIR = mkdir -p MV = mv RANLIB = echo BISON = bison scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/mingw32/000077500000000000000000000000001514310134000246565ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/mingw32/README.txt000066400000000000000000000011631514310134000263550ustar00rootroot00000000000000These three script files can be used to create a Windows DLL from the PT-Scotch library on a MinGW32 system. They are intended to be called directly from the src/Make.inc/mingw32 directory and produce results in the lib directory. The first two ones must be called from a Unix-like shell window. The last one must be called from a MSDOS-like command window. These scripts are intended only as examples. They must be adapted to reflect your environment, in particular library path and library name. They have been provided by Yves Secretan (yves.secretan@ete.inrs.ca) and are licensed under the CeCILL-C libre/free license. scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/mingw32/gendll_0.sh000077500000000000000000000015701514310134000267040ustar00rootroot00000000000000#! /bin/sh # (C) 2008 Yves Secretan (yves.secretan@ete.inrs.ca) # This software is governed by the CeCILL-C license under French law # and abiding by the rules of distribution of free software. You can # use, modify and/or redistribute the software under the terms of the # CeCILL-C license as circulated by CEA, CNRS and INRIA at the following # URL: "http://www.cecill.info". # # To be executed in a MSYS window. # # This file will link the PT-Scotch DLL. It must be adapted to reflect # your environment, in particular library path and library name. export OBJS="../../libscotch/lib*.o" export LDFLAGS="--shared -Wl,--allow-multiple-definition" export PGMFILES="/l" export LDPATH="-L../../../lib -L$PGMFILES/MPICH2/lib -L$PGMFILES/pthread-win32/lib" export LDLIBS="-lptscotch -lptscotcherr -lmpi -lpthreadGC2" gcc --output ../../../lib/libptscotch.dll $LDFLAGS $LDPATH $OBJS $LDLIBS scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/mingw32/gendll_1.sh000077500000000000000000000013351514310134000267040ustar00rootroot00000000000000#! /bin/sh # (C) 2008 Yves Secretan (yves.secretan@ete.inrs.ca) # This software is governed by the CeCILL-C license under French law # and abiding by the rules of distribution of free software. You can # use, modify and/or redistribute the software under the terms of the # CeCILL-C license as circulated by CEA, CNRS and INRIA at the following # URL: "http://www.cecill.info". # # To be executed in a MSYS window. # # This file creates the Exports definition file from the PT-Scotch DLL. # It must be adapted to reflect your environment, in particular library # path and library name. echo EXPORTS > ../../../lib/libptscotch.def nm ../../../lib/libptscotch.a | grep ' T _SCOTCH_' | sed 's/.* T _//' >> ../../../lib/libptscotch.def scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Make.inc/mingw32/gendll_2.bat000077500000000000000000000013771514310134000270470ustar00rootroot00000000000000REM (C) 2008 Yves Secretan (yves.secretan@ete.inrs.ca) REM This software is governed by the CeCILL-C license under French law REM and abiding by the rules of distribution of free software. You can REM use, modify and/or redistribute the software under the terms of the REM CeCILL-C license as circulated by CEA, CNRS and INRIA at the following REM URL: "http://www.cecill.info". REM REM To be executed in a DOS window. REM REM This file will create the PT-Scotch DLL. It must be adapted to reflect REM your environment, in particular library path and library name. REM set VC_PATH="C:\Program Files\Microsoft Visual Studio .NET\VC7\BIN" %VC_PATH%\vcvars32.bat && %VC_PATH%\lib.exe /def:..\..\..\lib\libptscotch.def /out:..\..\..\lib\libptscotch.dll scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/Makefile000066400000000000000000000131761514310134000234130ustar00rootroot00000000000000## Copyright 2004,2007,2008,2010-2012,2014,2018-2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## VERSION = 7 RELEASE = 0 PATCHLEVEL = 11 CODENAME = "Sankara" .PHONY : clean default install ptscotch realclean required scotch default : scotch required : Makefile.inc ../bin ../include ../lib Makefile.inc : @echo "#####################################################################" @echo "BEFORE COMPILING Scotch OR PT-Scotch, YOU SHOULD HAVE AN APPROPRIATE" @echo "Makefile.inc FILE IN THIS DIRECTORY. PLEASE LOOK INTO DIRECTORY" @echo " ./Make.inc FOR AN EXISTING Makefile.inc FILE THAT FITS YOUR NEED, OR" @echo "USE THEM AS MODELS IN CASE YOU NEED TO BUILD A NEW ONE FOR YOUR" @echo "PARTICULAR PLATFORM." @echo "#####################################################################" @echo "Then, type \"make scotch\" (default) for the sequential library" @echo "and software, or \"make ptscotch\" for the parallel library and" @echo "software." @exit 1 include Makefile.inc prefix ?= /usr/local bindir ?= $(prefix)/bin includedir ?= $(prefix)/include includestub ?= include_stub includestubdir ?= $(prefix)/$(includestub) libdir ?= $(prefix)/lib datarootdir ?= $(prefix)/share mandir ?= $(datarootdir)/man ../bin : -$(MKDIR) ../bin ../include : -$(MKDIR) ../include ../lib : -$(MKDIR) ../lib $(bindir) : -$(MKDIR) $(bindir) $(datarootdir) : -$(MKDIR) $(datarootdir) $(includedir) : -$(MKDIR) $(includedir) -$(MKDIR) $(includestubdir) $(libdir) : -$(MKDIR) $(libdir) $(mandir) : $(datarootdir) -$(MKDIR) $(mandir) $(mandir)/man1 : $(mandir) -$(MKDIR) $(mandir)/man1 libscotch : required (cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install) scotch : libscotch (cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) CODENAME=$(CODENAME) scotch && $(MAKE) install) (cd libscotchmetis ; $(MAKE) scotch && $(MAKE) install) libptscotch : libscotch (cd libscotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall) ptscotch : libptscotch (cd scotch ; $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) CODENAME=$(CODENAME) ptscotch && $(MAKE) ptinstall) (cd libscotchmetis ; $(MAKE) ptscotch && $(MAKE) ptinstall) check : scotch (cd check ; $(MAKE) check) check_full : scotch (cd check ; $(MAKE) check_full) ptcheck : scotch ptscotch (cd check ; $(MAKE) ptcheck) ptcheck_full : ptscotch (cd check ; $(MAKE) ptcheck_full) esmumps : scotch (cd esmumps ; $(MAKE) scotch && $(MAKE) install) escheck : esmumps (cd check ; $(MAKE) escheck) ptesmumps : scotch ptscotch (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall) install : required $(bindir) $(includedir) $(libdir) $(mandir)/man1 -$(CP) -f ../bin/[agm]*$(EXE) $(bindir) -$(CP) -f ../bin/d[agm]*$(EXE) $(bindir) -$(CP) -f ../include/*esmumps*.h $(includedir) -$(CP) -f ../include/*scotch*.h $(includedir) -$(CP) -f ../lib/*esmumps*$(LIB) $(libdir) -$(CP) -f ../lib/*scotch*$(LIB) $(libdir) -$(CP) -f ../man/man1/*[.]1 $(mandir)/man1 installstub : required $(includedir) -$(CP) -f ../include/*metis*.h $(includestubdir) clean : required (cd libscotch ; $(MAKE) clean) (cd scotch ; $(MAKE) clean) (cd libscotchmetis ; $(MAKE) clean) (cd check ; $(MAKE) clean) (cd esmumps ; $(MAKE) clean) realclean : required (cd libscotch ; $(MAKE) realclean) (cd scotch ; $(MAKE) realclean) (cd libscotchmetis ; $(MAKE) realclean) (cd check ; $(MAKE) realclean) (cd esmumps ; $(MAKE) realclean) -$(RM) ../bin/* ../include/* ../lib/* scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/000077500000000000000000000000001514310134000230205ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/CMakeLists.txt000066400000000000000000001000751514310134000255630ustar00rootroot00000000000000## Copyright 2014-2016,2021,2022,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Marc FUENTES ## ## Florent PRUVOST ## ## Cedric LACHAT ## ## Amaury JACQUES ## ## Xavier MULLER ## ## Francois PELLEGRINI ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 18 jul 2025 ## ## ## ############################################################ # Set directory aliases set(dat ${CMAKE_CURRENT_SOURCE_DIR}/data) set(tgt ${PROJECT_SOURCE_DIR}/tgt) # Macro to add quickly a Scotch test executable function(add_test_scotch) add_executable(${ARGV0} ${ARGV0}.c) set_target_properties(${ARGV0} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(${ARGV0} PRIVATE scotch scotcherr) if(CMAKE_BUILD_TYPE STREQUAL Debug) target_compile_definitions(${ARGV0} PRIVATE SCOTCH_DEBUG_ALL) endif() if(${ARGC} GREATER_EQUAL 2) add_test(NAME ${ARGV0} COMMAND ${ARGV0}) endif() endfunction(add_test_scotch) # Macro to suffix a fortran test file function(suffix_fortran_file src) get_filename_component(file_we ${src} NAME_WLE) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file_we}.tmp COMMAND $ "-s${SCOTCH_NAME_SUFFIX}" ${CMAKE_CURRENT_SOURCE_DIR}/${file_we}.in ${CMAKE_CURRENT_BINARY_DIR}/${file_we}.tmp DEPENDS dummysizes DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMENT "Generate ${file}.f90") add_custom_target(${file_we}_tmp ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${file_we}.tmp") file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cmake_sed_${file_we}.cmake" " file(READ \"${file_we}.tmp\" FILE_CONTENTS) string(REGEX REPLACE \"SCOTCHMETISNAMEFU[ \\t\\r\\n]*\\\\(([A-Za-z0-9_]*)\\\\)\" \"${SCOTCH_METIS_PREFIXFU}\\\\1\" FILE_CONTENTS \"\${FILE_CONTENTS}\") file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/${file_we}\" \"\${FILE_CONTENTS}\") " ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file_we} COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cmake_sed_${file_we}.cmake DEPENDS ${file_we}_tmp ) add_custom_target(${file_we}_src ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${file_we}) endfunction(suffix_fortran_file) # Bash needed for running some tests include(FindUnixCommands) ####################################### # Tests of the sequential libraries # ####################################### # test_common_file_compress add_test_scotch(test_common_file_compress) set(_map_bz2 "BZIP2") set(_map_gz "ZLIB") set(_map_lzma "LIBLZMA") foreach(ext "bz2" "gz" "lzma") if(${_map_${ext}}_FOUND) set(cur ${CMAKE_CURRENT_BINARY_DIR}) add_test(NAME test_common_file_compress_${ext} COMMAND ${BASH} -c "'$' ${dat}/bump_b1.grf ${cur}/bump_b1.grf.${ext} && \ '$' ${cur}/bump_b1.grf.${ext} ${cur}/bump_b1_from_${ext}.grf && \ '${CMAKE_COMMAND}' -E compare_files ${cur}/bump_b1_from_${ext}.grf ${dat}/bump_b1.grf") endif(${_map_${ext}}_FOUND) endforeach() # test_common_random add_test_scotch(test_common_random) add_test(NAME test_common_random COMMAND ${BASH} -c "'$' ${CMAKE_CURRENT_BINARY_DIR}/rand.dat 0 && \ '$' ${CMAKE_CURRENT_BINARY_DIR}/rand.dat 1") # test_common_thread add_test_scotch(test_common_thread 1) # test_fibo add_test_scotch(test_fibo 1) # Test EsMumps if(BUILD_LIBESMUMPS AND NOT USE_SUFFIX) add_executable(test_libesmumps test_libesmumps.c) add_dependencies(test_libesmumps esmumps_h) set_target_properties(test_libesmumps PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(test_libesmumps PRIVATE ${GENERATED_INCLUDE_DIR}) target_link_libraries(test_libesmumps scotch esmumps scotcherr) add_test(NAME test_libesmumps_1 COMMAND $ ${dat}/bump.grf) add_test(NAME test_libesmumps_2 COMMAND $ ${dat}/bump_imbal_32.grf) endif(BUILD_LIBESMUMPS AND NOT USE_SUFFIX) # Test libScotchMeTiS if(BUILD_LIBSCOTCHMETIS) # manage prefix if(NOT SCOTCH_METIS_PREFIXFU) if(NOT SCOTCH_METIS_PREFIX) set(SCOTCH_METIS_PREFIXFU "") else() set(SCOTCH_METIS_PREFIXFU "SCOTCHF") endif(NOT SCOTCH_METIS_PREFIX) endif(NOT SCOTCH_METIS_PREFIXFU) suffix_fortran_file(test_libmetis_dual_f.f90.in) foreach(version 3 5) add_executable(test_libmetisv${version} test_libmetis.c) set_target_properties(test_libmetisv${version} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_compile_definitions(test_libmetisv${version} PRIVATE SCOTCH_METIS_VERSION=${version}) target_include_directories(test_libmetisv${version} PRIVATE ${GENERATED_INCLUDE_DIR}) target_link_libraries(test_libmetisv${version} scotchmetisv${version} scotch scotcherr) add_test(NAME test_libmetisv${version}_1 COMMAND $ ${dat}/bump.grf) add_test(NAME test_libmetisv${version}_2 COMMAND $ ${dat}/bump_b1.grf) add_test(NAME test_libmetisv${version}_3 COMMAND $ ${dat}/bump_imbal_32.grf) add_executable(test_libmetis_dualv${version} test_libmetis_dual.c) target_compile_definitions(test_libmetis_dualv${version} PRIVATE SCOTCH_METIS_VERSION=${version}) target_include_directories(test_libmetis_dualv${version} PRIVATE ${GENERATED_INCLUDE_DIR}) target_link_libraries(test_libmetis_dualv${version} scotchmetisv${version} scotch scotcherr) add_test(NAME test_libmetis_dualv${version} COMMAND test_libmetis_dualv${version}) add_test(NAME test_libmetis_dualv${version}_2 COMMAND test_libmetis_dualv${version} 1) if(BUILD_FORTRAN) add_executable(test_libmetis_dual_f_v${version} ${CMAKE_CURRENT_BINARY_DIR}/test_libmetis_dual_f.f90) target_compile_definitions(test_libmetis_dual_f_v${version} PRIVATE SCOTCH_METIS_VERSION=${version}) target_include_directories(test_libmetis_dual_f_v${version} PRIVATE ${GENERATED_INCLUDE_DIR}) target_link_libraries(test_libmetis_dual_f_v${version} scotch scotchmetisv${version} scotcherr) add_test(NAME test_libmetis_dual_f_v${version} COMMAND test_libmetis_dual_f_v${version}) endif() endforeach(version 3 5) endif(BUILD_LIBSCOTCHMETIS) # test_scotch_arch add_test_scotch(test_scotch_arch) add_test(NAME test_scotch_arch COMMAND test_scotch_arch arch.tgt) # test_scotch_arch_deco add_test_scotch(test_scotch_arch_deco) add_test(NAME test_scotch_arch_deco COMMAND test_scotch_arch_deco ${dat}/m4x4.grf arch2.tgt) # test_scotch_context add_test_scotch(test_scotch_context) add_test(NAME test_scotch_context COMMAND test_scotch_context ${dat}/bump_b1.grf) if(Threads_FOUND) target_link_libraries(test_scotch_context PRIVATE Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) endif(Threads_FOUND) # test_graph_coarsen add_test_scotch(test_scotch_graph_coarsen) add_test(NAME test_scotch_graph_coarsen_1 COMMAND test_scotch_graph_coarsen ${dat}/bump.grf) add_test(NAME test_scotch_graph_coarsen_2 COMMAND test_scotch_graph_coarsen ${dat}/bump_b100000.grf) # test_graph_color add_test_scotch(test_scotch_graph_color) add_test(NAME test_scotch_graph_color_1 COMMAND test_scotch_graph_color ${dat}/bump.grf) add_test(NAME test_scotch_graph_color_2 COMMAND test_scotch_graph_color ${dat}/bump_b100000.grf) # test_graph_diam add_test_scotch(test_scotch_graph_diam) add_test(NAME test_scotch_graph_diam_1 COMMAND test_scotch_graph_diam ${dat}/bump.grf) add_test(NAME test_scotch_graph_diam_2 COMMAND test_scotch_graph_diam ${dat}/m16x16_b1.grf) add_test(NAME test_scotch_graph_diam_3 COMMAND test_scotch_graph_diam ${dat}/p2-p2.grf) add_test(NAME test_scotch_graph_diam_4 COMMAND test_scotch_graph_diam ${dat}/bump_b100000.grf) # test_graph_dump add_custom_command(OUTPUT m16x16_b1.c COMMAND $ -ptest ${dat}/m16x16_b1.grf ${CMAKE_CURRENT_BINARY_DIR}/m16x16_b1.c) add_custom_command(OUTPUT test_scotch_graph_dump2.c COMMAND ${CMAKE_COMMAND} -E cat ${CMAKE_CURRENT_SOURCE_DIR}/test_scotch_graph_dump.c m16x16_b1.c > test_scotch_graph_dump2.c DEPENDS m16x16_b1.c) add_test_scotch(test_scotch_graph_dump2) add_test(NAME test_scotch_graph_dump COMMAND ${BASH} -c "'$' 'm16x16_b1_dump2.grf' && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m16x16_b1.grf' m16x16_b1_dump2.grf") # test_graph_induce add_test_scotch(test_scotch_graph_induce) add_test(NAME test_scotch_graph_induce_1 COMMAND test_scotch_graph_induce ${dat}/bump.grf) add_test(NAME test_scotch_graph_induce_2 COMMAND test_scotch_graph_induce ${dat}/bump_b100000.grf) # test_scotch_graph_map add_test_scotch(test_scotch_graph_map) add_test(NAME test_scotch_graph_1 COMMAND test_scotch_graph_map ${dat}/m4x4.grf) add_test(NAME test_scotch_graph_2 COMMAND test_scotch_graph_map ${dat}/m4x4_b100000.grf) add_test(NAME test_scotch_graph_3 COMMAND test_scotch_graph_map ${dat}/m16x16.grf) add_test(NAME test_scotch_graph_4 COMMAND test_scotch_graph_map ${dat}/m16x16_b100000.grf) # test_scotch_graph_map_copy add_test_scotch(test_scotch_graph_map_copy) add_test(NAME test_scotch_graph_map_copy_1 COMMAND test_scotch_graph_map_copy ${dat}/bump.grf) add_test(NAME test_scotch_graph_map_copy_2 COMMAND test_scotch_graph_map_copy ${dat}/bump_b100000.grf) # test_scotch_graph_order add_test_scotch(test_scotch_graph_order) add_test(NAME test_scotch_graph_order_1 COMMAND test_scotch_graph_order ${dat}/bump.grf) add_test(NAME test_scotch_graph_order_2 COMMAND test_scotch_graph_order ${dat}/bump_b100000.grf) # test_scotch_graph_part_ovl add_test_scotch(test_scotch_graph_part_ovl) add_test(NAME test_scotch_graph_part_ovl_1 COMMAND test_scotch_graph_part_ovl 4 ${dat}/m16x16.grf ${dev_null}) add_test(NAME test_scotch_graph_part_ovl_2 COMMAND test_scotch_graph_part_ovl 4 ${dat}/m16x16_b100000.grf ${dev_null}) # test_scotch_mesh_graph add_test_scotch(test_scotch_mesh_graph) add_test(NAME test_scotch_mesh_graph COMMAND test_scotch_mesh_graph ${dat}/ship001.msh) # test_strat_seq add_test_scotch(test_strat_seq 1) ##################################### # Tests of the parallel libraries # ##################################### if(BUILD_PTSCOTCH) # Macro to add quickly a PT-Scotch test executable function(add_exec_ptscotch) add_executable(${ARGV0} ${ARGV0}.c) set_target_properties(${ARGV0} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(${ARGV0} ptscotch ptscotcherr) endfunction(add_exec_ptscotch) function(add_test_ptscotch) set(args ${ARGV}) list(REMOVE_AT args 0) # in place of POP_FRONT which is available only for cmake >3.15 string(REGEX REPLACE "^(.+)/data/(.+)\\.grf" "\\2" arg_ext ${args}) add_test(NAME ${ARGV0}_${arg_ext} COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 $ ${args}) endfunction(add_test_ptscotch) # test_strat_par add_exec_ptscotch(test_strat_par) add_test(NAME test_strat_par COMMAND test_strat_par) # test_scotch_dgraph_band add_exec_ptscotch(test_scotch_dgraph_band) add_test_ptscotch(test_scotch_dgraph_band ${dat}/bump.grf test_scotch_dgraph_band_bump.map) add_test_ptscotch(test_scotch_dgraph_band ${dat}/bump_b100000.grf test_scotch_dgraph_band_bump_b100000.map) # test_scotch_dgraph_coarsen add_exec_ptscotch(test_scotch_dgraph_coarsen) add_test_ptscotch(test_scotch_dgraph_coarsen ${dat}/bump.grf) add_test_ptscotch(test_scotch_dgraph_coarsen ${dat}/bump_b100000.grf) add_test_ptscotch(test_scotch_dgraph_coarsen ${dat}/m4x4_b1.grf) # test_scotch_dgraph_order add_exec_ptscotch(test_scotch_dgraph_order) add_test_ptscotch(test_scotch_dgraph_order ${dat}/bump.grf) add_test_ptscotch(test_scotch_dgraph_order ${dat}/bump_b100000.grf) add_test_ptscotch(test_scotch_dgraph_order ${dat}/m4x4_b1.grf) # test_scotch_dgraph_check add_exec_ptscotch(test_scotch_dgraph_check) add_test_ptscotch(test_scotch_dgraph_check ${dat}/bump.grf) add_test_ptscotch(test_scotch_dgraph_check ${dat}/bump_b100000.grf) # test_scotch_dgraph_grow add_exec_ptscotch(test_scotch_dgraph_grow) add_test_ptscotch(test_scotch_dgraph_grow ${dat}/bump.grf test_scotch_dgraph_grow.map) add_test_ptscotch(test_scotch_dgraph_grow ${dat}/bump_b100000.grf test_scotch_dgraph_grow_bump_b100000.map) # test_scotch_dgraph_induce add_exec_ptscotch(test_scotch_dgraph_induce) add_test_ptscotch(test_scotch_dgraph_induce ${dat}/bump.grf) add_test_ptscotch(test_scotch_dgraph_induce ${dat}/bump_b100000.grf) # test_scotch_dgraph_redist add_exec_ptscotch(test_scotch_dgraph_redist) add_test_ptscotch(test_scotch_dgraph_redist ${dat}/bump.grf) add_test_ptscotch(test_scotch_dgraph_redist ${dat}/bump_b100000.grf) if(BUILD_LIBSCOTCHMETIS) set(version 3) # Small test (procnbr, baseval, noconbr) = (3, 1, 2) add_test(NAME parmetis_mesh2dual_small COMMAND ${BASH} -c "${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 $ -c2 '${dat}/small3-%r.adm' small3-%r.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/small3-0.dgr' small3-0.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/small3-1.dgr' small3-1.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/small3-2.dgr' small3-2.dgr") # Larger test (procnbr, baseval, noconbr) = (4, 0, 3) add_test(NAME parmetis_mesh2dual_larger COMMAND ${BASH} -c "${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 4 $ -c3 '${dat}/ship001-%r.adm' ship001-%r.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/ship001-0.dgr' ship001-0.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/ship001-1.dgr' ship001-1.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/ship001-2.dgr' ship001-2.dgr && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/ship001-3.dgr' ship001-3.dgr") endif(BUILD_LIBSCOTCHMETIS) endif(BUILD_PTSCOTCH) ###################################### # Tests of the sequential programs # ###################################### # check_prog_acpl add_test(NAME amk_acpl COMMAND ${BASH} -c "'$' 5 12 | '$' | '$'") # check_prog_amk add_test(NAME amk_ccc COMMAND $ 5 ${dev_null}) add_test(NAME amk_fft2 COMMAND $ 5 ${dev_null}) add_test(NAME amk_hy COMMAND $ 5 ${dev_null}) add_test(NAME amk_m2 COMMAND $ 5 12 ${dev_null}) add_test(NAME amk_m2_mo COMMAND $ -mo 5 12 ${dev_null}) add_test(NAME amk_p2 COMMAND $ 5 7 ${dev_null}) # check_prog_amk_grf add_test(NAME amk_grf_m16x16 COMMAND $ ${dat}/m16x16.grf ${dev_null}) add_test(NAME amk_grf_m16x16_2 COMMAND $ -2 ${dat}/m16x16.grf ${dev_null}) add_test(NAME amk_grf_m4x4 COMMAND $ -l${dat}/m4x4_vertlist.txt ${dat}/m4x4.grf ${dev_null}) add_test(NAME amk_grf_m4x4_2 COMMAND $ -l${dat}/m4x4_vertlist.txt -2 ${dat}/m4x4.grf ${dev_null}) # check_prog_atst add_test(NAME atst_4x4x4 COMMAND $ ${tgt}/t4x4x4.tgt) # check_prog_gbase add_test(NAME test_gbase COMMAND ${BASH} -c "'$' 1 '${dat}/m4x4.grf' m4x4_b1.grf && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m4x4_b1.grf' m4x4_b1.grf && \ '$' 1 '${dat}/m4x4_b1.grf' m4x4_b1.grf && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m4x4_b1.grf' m4x4_b1.grf && \ '$' 0 '${dat}/m4x4_b1.grf' m4x4.grf && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m4x4.grf' m4x4.grf") # check_prog_gmk add_test(NAME gmk_hy COMMAND ${BASH} -c "'$' 5 | '$'") add_test(NAME gmk_m2 COMMAND ${BASH} -c "'$' 5 1 | '$'") add_test(NAME gmk_m2_b1 COMMAND ${BASH} -c "'$' -b1 5 4 -g${dev_null} | '$'") add_test(NAME gmk_m2_t COMMAND ${BASH} -c "'$' -t 5 4 | '$'") add_test(NAME gmk_m2_b1_t COMMAND ${BASH} -c "'$' -b1 -t 5 1 | '$'") add_test(NAME gmk_m3 COMMAND ${BASH} -c "'$' -b1 5 4 3 -g${dev_null} | '$'") add_test(NAME gmk_ub2 COMMAND ${BASH} -c "'$' 5 | '$'") # check_prog_mmk add_test(NAME mmk_m2_5_1 COMMAND ${BASH} -c "'$' 5 1 m2_5_1.msh && '$' m2_5_1.msh") add_test(NAME mmk_m2_5_4 COMMAND ${BASH} -c "'$' 5 4 m2_5_4.msh && '$' m2_5_4.msh") add_test(NAME mmk_m3_5_4_3 COMMAND ${BASH} -c "'$' 5 4 3 m3_5_4_3.msh && '$' m3_5_4_3.msh") set_tests_properties(mmk_m2_5_1 mmk_m2_5_4 mmk_m3_5_4_3 PROPERTIES FIXTURES_SETUP MMK_MESHES) # check_prog_gmk_msh foreach(mmk_msh m2_5_1 m2_5_4 m3_5_4_3) add_test(NAME gmk_msh_${mmk_msh} COMMAND ${BASH} -c "'$' ${mmk_msh}.msh ${mmk_msh}.grf && '$' ${mmk_msh}.grf") set_tests_properties(gmk_msh_${mmk_msh} PROPERTIES FIXTURES_REQUIRED MMK_MESHES FIXTURES_SETUP GMK_GRAPHS) endforeach() add_test(NAME gmk_msh_ship001 COMMAND ${BASH} -c "'$' ${dat}/ship001.msh ship001.grf && '$' ship001.grf") set_tests_properties(gmk_msh_ship001 PROPERTIES FIXTURES_SETUP GMK_GRAPHS) foreach(i RANGE 1 2) add_test(NAME gmk_msh_dual_${i} COMMAND ${BASH} -c "'$' '${dat}/small2.msh' small2_d${i}.grf -d${i} && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/small2_d${i}.grf' small2_d${i}.grf") set_tests_properties(gmk_msh_dual_${i} PROPERTIES FIXTURES_SETUP GMK_GRAPHS) endforeach() add_test(NAME gmk_msh_dual_3 COMMAND ${BASH} -c "'$' '${dat}/small2.msh' small2_d3.grf -d3 && \ '${CMAKE_COMMAND}' -E compare_files '${dat}/small2_d2.grf' small2_d3.grf") set_tests_properties(gmk_msh_dual_3 PROPERTIES FIXTURES_SETUP GMK_GRAPHS) # check_prog_mcv foreach(mmk_msh m2_5_1 m2_5_4 m3_5_4_3) add_test(NAME mcv_msh_${mmk_msh} COMMAND ${BASH} -c "'$' ${mmk_msh}.msh output_${mmk_msh}.msh -is -os && \ '${CMAKE_COMMAND}' -E compare_files ${mmk_msh}.msh output_${mmk_msh}.msh") set_tests_properties(mcv_msh_${mmk_msh} PROPERTIES FIXTURES_REQUIRED MMK_MESHES) endforeach() # check_prog_mord foreach(mmk_msh m2_5_1 m2_5_4 m3_5_4_3) add_test(NAME mord_${mmk_msh} COMMAND ${BASH} -c "'$' ${mmk_msh}.msh | '$' ${mmk_msh}.grf") set_tests_properties(mord_${mmk_msh} PROPERTIES FIXTURES_REQUIRED MMK_MESHES) endforeach() add_test(NAME mord_ship001 COMMAND ${BASH} -c "'$' ${dat}/ship001.msh | '$' ship001.grf") set_tests_properties(mord_ship001 PROPERTIES FIXTURES_REQUIRED GMK_GRAPHS) # check_prog_gmap add_test(NAME gmap_bump COMMAND $ ${dat}/bump.grf ${tgt}/h3.tgt bump_h3.map -vmt) add_test(NAME gmap_small COMMAND $ ${dat}/small1.grf ${tgt}/m11x13.tgt small1_m11x13.map -vmt) # check_prog_gord add_test(NAME gord_bump COMMAND $ ${dat}/bump.grf bump.ord -vt) add_test(NAME gord_bump_b100000 COMMAND $ ${dat}/bump_b100000.grf bump_b100000.ord -vt) add_test(NAME gord_bump_b1 COMMAND ${BASH} -c "'$' '${dat}/bump_b1.grf' '-On{sep=(/((vert)>(240))?(e{strat=g}|g|h);),ole=d{cmin=15,cmax=100000,frat=0},ose=g{pass=3}}' bump_b1.ord -vt") add_test(NAME gord_bump_imbal COMMAND $ ${dat}/bump_imbal_32.grf bump_imbal_32.ord -vt) add_test(NAME gord_ship001 COMMAND $ ship001.grf ship001.ord -vt) set_tests_properties(gord_ship001 PROPERTIES FIXTURES_REQUIRED GMK_GRAPHS) add_test(NAME gord_nocoarsen COMMAND $ ${dat}/nocoarsen.grf nocoarsen.ord -vt) add_test(NAME gord_compress-coarsen COMMAND $ ${dat}/compress-coarsen.grf compress-coarsen.ord -vt) set_tests_properties(gord_bump gord_bump_b100000 gord_ship001 gord_bump_b1 gord_bump_imbal gord_nocoarsen gord_compress-coarsen PROPERTIES FIXTURES_SETUP GORD_DEPS) # check_prog_gotst foreach(grf bump bump_b1 bump_imbal_32 nocoarsen compress-coarsen) add_test(NAME gotst_${grf} COMMAND $ ${dat}/${grf}.grf ${CMAKE_CURRENT_BINARY_DIR}/${grf}.ord) set_tests_properties(gotst_${grf} PROPERTIES FIXTURES_REQUIRED GORD_DEPS) endforeach() add_test(NAME gotst_ship001 COMMAND $ ${CMAKE_CURRENT_BINARY_DIR}/ship001.grf ${CMAKE_CURRENT_BINARY_DIR}/ship001.ord) set_tests_properties(gotst_ship001 PROPERTIES FIXTURES_REQUIRED GORD_DEPS) # check_prog_gord_block add_test(NAME gord_block_1 COMMAND $ ${dat}/m4x4_b1_ev.grf m4x4_b1.ord '-ob{cmin=3,strat=s}') add_test(NAME gord_block_2 COMMAND $ ${dat}/m4x4_b1_ev.grf m4x4_b1_ev.ord '-ob{cmin=2,strat=s}') add_test(NAME gord_block_3 COMMAND $ ${dat}/m4x4_b1_ev.grf m4x4_b1_ev.ord '-ob{cmin=1,strat=s}') # check_prog_gpart add_test(NAME gpart_1 COMMAND $ 9 ${dat}/bump.grf bump_k9.map -vmt) add_test(NAME gpart_2 COMMAND $ 9 ${dat}/bump_b100000.grf bump_k9_b100000.map -vmt) add_test(NAME gpart_3 COMMAND $ 9 ${dat}/nocoarsen.grf nocoarsen_k9.map -vmt) add_test(NAME gpart_4 COMMAND $ 5 ${dat}/bump_b100000.grf bump_k5.map -vmt -Mr{bal=0.05,sep=m{vert=120,low=h{pass=10}f{bal=0.05,move=120},asc=b{bnd=f{bal=0.05,move=120},org=f{bal=0.05,move=120}}}}|m{vert=1000,low=r{bal=0.05,sep=m{vert=120,low=h{pass=10}f{bal=0.05,move=120},asc=b{bnd=f{bal=0.05,move=120},org=f{bal=0.05,move=120}}}},asc=b{bnd=f{bal=0.05,move=120},org=f{bal=0.05,move=120}}}) set_tests_properties(gpart_1 gpart_2 gpart_3 gpart_4 PROPERTIES FIXTURES_SETUP GPART_DEPS) # check_prog_gout add_test(NAME gout_1 COMMAND ${BASH} -c "'$' '-Oi{c,r}' '${dat}/bump.grf' '${dat}/bump.xyz' bump_k9.map bump_k9.iv") set_tests_properties(gout_1 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_2 COMMAND ${BASH} -c "'$' '-Oi{g,r}' '${dat}/bump_b100000.grf' '${dat}/bump_b100000.xyz' bump_k9_b100000.map bump_k9_b100000.iv") set_tests_properties(gout_2 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_3 COMMAND ${BASH} -c "'$' '-Om{e}' -gn '${dat}/bump.grf' ${dev_null} bump.ord bump_ord.eps") set_tests_properties(gout_3 PROPERTIES FIXTURES_REQUIRED GORD_DEPS) add_test(NAME gout_4 COMMAND ${BASH} -c "'$' '-Om{e}' -gn '${dat}/bump_b100000.grf' ${dev_null} bump_b100000.ord bump_ord_b100000.eps") set_tests_properties(gout_4 PROPERTIES FIXTURES_REQUIRED GORD_DEPS) add_test(NAME gout_5 COMMAND ${BASH} -c "'$' '-Op{d,e,g,r,s}' '${dat}/bump.grf' '${dat}/bump.xyz' bump_k9.map bump_k9.eps") set_tests_properties(gout_5 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_6 COMMAND ${BASH} -c "'$' '-Op{a,e,c,d,l}' '${dat}/bump_b100000.grf' '${dat}/bump_b100000.xyz' bump_k9_b100000.map bump_k9_b100000.eps") set_tests_properties(gout_6 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_7 COMMAND ${BASH} -c "'$' '-Ot{c,d,v}' -mn '${dat}/bump.grf' '${dat}/bump.xyz' ${dev_null} bump_k9.tlp") set_tests_properties(gout_7 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_8 COMMAND ${BASH} -c "'$' '-Ot{b,a,r}' '${dat}/bump_b100000.grf' '${dat}/bump_b100000.xyz' bump_k9_b100000.map bump_k9_b100000.tlp") set_tests_properties(gout_8 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_9 COMMAND ${BASH} -c "'$' '-Ov{r}' '${dat}/bump.grf' '${dat}/bump.xyz' bump_k9.map bump_k9.vtk") set_tests_properties(gout_9 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) add_test(NAME gout_10 COMMAND ${BASH} -c "'$' '-Ov{v}' '${dat}/bump_b100000.grf' '${dat}/bump_b100000.xyz' bump_k9_b100000.map bump_k9_b100000.vtk") set_tests_properties(gout_10 PROPERTIES FIXTURES_REQUIRED GPART_DEPS) # check_prog_gpart_clustering add_test(NAME gpart_cluster_1 COMMAND ${BASH} -c "'$' -q 1 '${dat}/bump.grf' bump_part_cls_9.map -vmt && \ '$' -q 1 '${dat}/bump_b100000.grf' bump_b100000_part_cls_9.map -vmt && \ '$' '${dat}/bump_b100000.grf' '${tgt}/vcmplt.tgt' bump_b100000_part_cls_9.map") add_test(NAME gpart_cluster_2 COMMAND ${BASH} -c "'$' -q 1 '${dat}/bump_imbal_32.grf' bump_imbal_32_part_cls_32.map -vmt && \ '$' '${dat}/bump_imbal_32.grf' '${tgt}/vhcub.tgt' bump_imbal_32_part_cls_32.map") # check_prog_gpart_overlap add_test(NAME gpart_overlap_1 COMMAND ${BASH} -c "'$' -o 9 '${dat}/bump.grf' bump_part_ovl_9.map -vmt && \ '$' -o 9 '${dat}/bump_b100000.grf' bump_b100000_part_ovl_9.map -vmt && \ '$' -o '${dat}/bump_b100000.grf' '${tgt}/k9.tgt' bump_b100000_part_ovl_9.map") add_test(NAME gpart_overlap_2 COMMAND ${BASH} -c "'$' -o 32 '${dat}/bump_imbal_32.grf' bump_imbal_32_part_ovl_32.map -vmt && \ '$' '${dat}/bump_imbal_32.grf' '${tgt}/k32.tgt' bump_imbal_32_part_ovl_32.map") add_test(NAME gpart_overlap_3 COMMAND ${BASH} -c "'$' -o 6 '${dat}/bump_imbal_32.grf' bump_imbal_32_part_ovl_32_6.map '-me{strat=m{asc=b{width=3,bnd=d{pass=40,dif=1,rem=0}f{move=80,pass=-1,bal=0.01},org=f{move=80,pass=-1,bal=0.01}},low=r{job=t,bal=0.01,map=t,poli=S,sep=(m{asc=b{bnd=f{move=120,pass=-1,bal=0.01,type=b},org=f{move=120,pass=-1,bal=0.01,type=b},width=3},low=h{pass=10}f{move=120,pass=-1,bal=0.01,type=b},vert=120,rat=0.8}|m{asc=b{bnd=f{move=120,pass=-1,bal=0.01,type=b},org=f{move=120,pass=-1,bal=0.01,type=b},width=3},low=h{pass=10}f{move=120,pass=-1,bal=0.01,type=b},vert=120,rat=0.8})},vert=10000,rat=0.8,type=h}}f' -vmt") add_test(NAME gpart_overlap_4 COMMAND ${BASH} -c "'$' -o 24 '${dat}/m4x4.grf' bump_m4x4_part_ovl_24.map -vmt && \ '$' -o '${dat}/m4x4.grf' '${tgt}/k24.tgt' bump_m4x4_part_ovl_24.map") # check_prog_gpart_remap add_test(NAME gpart_remap COMMAND $ 32 ${dat}/bump_imbal_32.grf ${dev_null} -ro${dat}/bump_old.map -vmt) # check_prog_gscat add_test(NAME gscat_1 COMMAND $ 4 ${dat}/small1.grf small1-%r.grf) add_test(NAME gscat_2 COMMAND $ 4 -i1 ${dat}/bump.grf bump4-%r.grf) # check_prog_gtst add_test(NAME gtst COMMAND ${BASH} -c "'$' '${dat}/m4x4_b1_ev.grf' gtst_ev.txt && \ '$' '${dat}/m4x4_b1_elv.grf' gtst_elv.txt && \ '${CMAKE_COMMAND}' -E compare_files gtst_ev.txt gtst_elv.txt" ) #check_prog_full add_test(NAME prg_full_1 COMMAND $ ${dat}/bump.grf bump_f.ord -vt) add_test(NAME prg_full_2 COMMAND $ 3 ${dat}/bump.grf bump_f.map -vt) add_test(NAME prg_full_3 COMMAND $ -o 3 ${dat}/bump.grf bump_fo.map -vt) #################################### # Tests of the parallel programs # #################################### if(BUILD_PTSCOTCH) # check_prog_dgord add_test(NAME dgord_1 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 $ ${dat}/bump.grf ${dev_null} -vt) add_test(NAME dgord_2 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 $ ${dat}/bump_b100000.grf ${dev_null} -vt) add_test(NAME dgord_3 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 4 $ ${dat}/small1-%r.grf small1.ord -vt) # check_prog_dgpart add_test(NAME dgpart_1 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 $ 9 ${dat}/bump.grf ${dev_null} -vmt) add_test(NAME dgpart_2 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 $ 9 ${dat}/bump_b100000.grf ${dev_null} -vmt) add_test(NAME dgpart_3 COMMAND ${BASH} -c "'${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 4 '$' 50 '${dat}/small1-%r.grf' ${dev_null} -vmt") # check_prog_dgscat-dggath add_test(NAME test_dgscat COMMAND ${BASH} -c "'${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 '$' \ -r1 -c '${dat}/m16x16.grf' out_dgscat-%r.grf ; \ '${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 '$' \ -r1 -c out_dgscat-%r.grf out_dggat.grf ; \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m16x16.grf' out_dggat.grf") add_test(NAME test_dgscat_b100000 COMMAND ${BASH} -c "'${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 '$' \ -c '${dat}/m16x16_b100000.grf' out_b100000_dgscat-%r.grf ; \ '${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 '$' \ -c out_b100000_dgscat-%r.grf out_b100000_ddgat.grf ; \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m16x16_b100000.grf' out_b100000_ddgat.grf") add_test(NAME test_dgscat_b1 COMMAND ${BASH} -c "'${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 '$' \ -c '${dat}/m4x4_b1_elv.grf' out_m1elv_dgscat-%r.grf ; \ '${MPIEXEC_EXECUTABLE}' ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 3 '$' \ -c out_m1elv_dgscat-%r.grf out_m1elv_ddgat.grf ; \ '${CMAKE_COMMAND}' -E compare_files '${dat}/m4x4_b1_elv.grf' out_m1elv_ddgat.grf") # check_prog_dgtst add_test(NAME dgtst COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 4 $ ${dat}/small1-%r.grf) # check_prog_dfull add_test(NAME dfull_1 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 4 $ ${dat}/bump.grf bump_f.ord -vt) add_test(NAME dfull_2 COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} 4 $ 3 ${dat}/bump.grf bump_f.map -vmt) endif(BUILD_PTSCOTCH) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/Makefile000066400000000000000000000766031514310134000244740ustar00rootroot00000000000000## Copyright 2011,2012,2014-2016,2018-2021,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## TMPDIR ?= /tmp SCOTCHBINDIR ?= ../../bin SCOTCHINCLUDEDIR ?= ../../include SCOTCHLIBDIR ?= ../../lib SCOTCHTGTDIR ?= ../../tgt LIBESMUMPS = -lesmumps -lscotch -lscotcherr LIBPTSCOTCH = -lptscotch -lscotch -lptscotcherr LIBSCOTCH = -lscotch -lscotcherr include ../Makefile.inc ifeq ($(strip $(SCOTCH_NAME_SUFFIX)),) ifneq ($(findstring -DSCOTCH_NAME_SUFFIX=,$(CFLAGS)),) scotch_name_suffix_defs = $(filter -DSCOTCH_NAME_SUFFIX=%,$(CFLAGS)) scotch_name_suffix_def = $(lastword $(scotch_name_suffix_defs)) export SCOTCH_NAME_SUFFIX = $(subst -DSCOTCH_NAME_SUFFIX=,,$(scotch_name_suffix_def)) endif endif ifneq ($(strip $(SCOTCH_NAME_SUFFIX)),) $(info Using suffix "$(SCOTCH_NAME_SUFFIX)") ifeq ($(findstring -DSCOTCH_NAME_SUFFIX=,$(CFLAGS)),) CFLAGS += -DSCOTCH_NAME_SUFFIX=$(SCOTCH_NAME_SUFFIX) endif ifeq ($(findstring -DSCOTCH_NAME_SUFFIX=,$(CCDFLAGS)),) CCDFLAGS += -DSCOTCH_NAME_SUFFIX=$(SCOTCH_NAME_SUFFIX) endif endif ifeq ($(strip $(SCOTCH_METIS_PREFIXFU)),) ifneq ($(findstring -DSCOTCH_METIS_PREFIXFU=,$(CFLAGS)),) scotch_metis_prefixfu_defs = $(filter -DSCOTCH_METIS_PREFIXFU=%,$(CFLAGS)) scotch_metis_prefixfu_def = $(lastword $(scotch_metis_prefixfu_defs)) export SCOTCH_METIS_PREFIXFU = $(subst -DSCOTCH_METIS_PREFIXFU=,,$(scotch_metis_prefixfu_def)) endif endif ifeq ($(strip $(SCOTCH_METIS_PREFIXFU)),) ifeq ($(findstring -DSCOTCH_METIS_PREFIX,$(CFLAGS)),) export SCOTCH_METIS_PREFIXFU = else export SCOTCH_METIS_PREFIXFU = SCOTCHF endif endif ifneq ($(strip $(SCOTCH_METIS_PREFIXFU)),) $(info Using MeTiS uppercase Fortran prefix "$(SCOTCH_METIS_PREFIXFU)") endif EXECPPROG ?= mpirun EXECPFLAGS ?= $(if $(findstring Open,$(shell $(EXECPPROG) --version)),--oversubscribe) # EXECPFLAGS += valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes EXECS ?= # EXECS += valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes EXECP3 ?= $(EXECPPROG) -n 3 $(EXECPFLAGS) EXECP4 ?= $(EXECPPROG) -n 4 $(EXECPFLAGS) PROGDIFF ?= diff -q PROGSED ?= sed ## ## General inference rules. ## %$(OBJ) : %.c $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(SCOTCHINCLUDEDIR) -c $(<) -o $(@) %_v3$(EXE) : %.c $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) -lscotchmetisv3 $(SCOTCHLIBS) $(LDFLAGS) %_v5$(EXE) : %.c $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) -lscotchmetisv5 $(SCOTCHLIBS) $(LDFLAGS) %$(EXE) : %.c $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) $(SCOTCHLIBS) $(LDFLAGS) %.f90 : %.f90.in ../libscotch/dummysizes$(EXE) -s$(SCOTCH_NAME_SUFFIX) $(<) $(@).tmp $(PROGSED) -e 's/SCOTCHMETISNAMEFU[[:space:]]*(\([A-Za-z0-9_]*\))/'"$(SCOTCH_METIS_PREFIXFU)"'\1/g' $(@).tmp > $(@) %_v3$(EXE): %.f90 $(FC) $(FFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) -lscotchmetisv3 $(SCOTCHLIBS) $(LDFLAGS) %_v5$(EXE): %.f90 $(FC) $(FFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) -lscotchmetisv5 $(SCOTCHLIBS) $(LDFLAGS) ## ## Project rules. ## .PHONY : check ptcheck clean realclean nothing nothing : check : realclean $(MAKE) CC="$(CCS)" CCD="$(CCS)" SCOTCHLIBS="$(LIBSCOTCH)" $(CHECKSCOTCH) $(MAKE) CC="$(CCS)" CCD="$(CCS)" FC="$(FCS)" SCOTCHLIBS="$(LIBSCOTCH)" $(CHECKSCOTCHF) check_full : realclean $(MAKE) CC="$(CCS) -DSCOTCH_DEBUG_FULL" CCD="$(CCS)" SCOTCHLIBS="$(LIBSCOTCH)" check_prog_full ptcheck : realclean $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC="$(CCP)" SCOTCHLIBS="$(LIBPTSCOTCH)" $(CHECKPTSCOTCH) ptcheck_full : realclean $(MAKE) CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" CC="$(CCP)" SCOTCHLIBS="$(LIBPTSCOTCH)" check_prog_dfull escheck : realclean $(MAKE) CFLAGS="$(CFLAGS)" CC="$(CCP)" SCOTCHLIBS="$(LIBESMUMPS)" $(CHECKESMUMPS) clean : -$(RM) *~ *$(OBJ) realclean : clean -$(RM) \ test_common_file_compress \ test_common_random \ test_common_thread \ test_fibo \ test_libesmumps \ test_libmetis_v3 \ test_libmetis_v5 \ test_libmetis_dual_v3 \ test_libmetis_dual_v5 \ test_libmetis_dual_f.f90 \ test_libmetis_dual_f.f90.tmp \ test_libmetis_dual_f_v3 \ test_libmetis_dual_f_v5 \ test_scotch_arch \ test_scotch_arch_deco \ test_scotch_context \ test_scotch_graph_coarsen \ test_scotch_graph_color \ test_scotch_graph_diam \ test_scotch_graph_dump2 \ test_scotch_graph_dump2.c \ test_scotch_graph_induce \ test_scotch_graph_map \ test_scotch_graph_map_copy \ test_scotch_graph_order \ test_scotch_graph_part_ovl \ test_scotch_dgraph_band \ test_scotch_dgraph_check \ test_scotch_dgraph_coarsen \ test_scotch_dgraph_order \ test_scotch_dgraph_grow \ test_scotch_dgraph_induce \ test_scotch_dgraph_redist \ test_scotch_mesh_graph \ test_strat_par \ test_strat_seq ## ## Test cases dependencies. ## CHECKSCOTCH = check_common_file_compress \ check_common_random \ check_common_thread \ check_fibo \ check_strat_seq \ check_scotch_arch \ check_scotch_arch_deco \ check_scotch_context \ check_scotch_graph_coarsen \ check_scotch_graph_color \ check_scotch_graph_diam \ check_scotch_graph_dump \ check_scotch_graph_induce \ check_scotch_graph_map \ check_scotch_graph_map_copy \ check_scotch_graph_order \ check_scotch_graph_part_ovl \ check_scotch_mesh_graph \ check_libmetis_v3 \ check_libmetis_v5 \ check_libmetis_dual_v3 \ check_libmetis_dual_v5 \ check_prog_amk \ check_prog_amk_grf \ check_prog_acpl \ check_prog_gbase \ check_prog_gmap \ check_prog_gmk \ check_prog_gmk_msh \ check_prog_gord \ check_prog_gord_block \ check_prog_gotst \ check_prog_gout \ check_prog_gpart \ check_prog_gpart_clustering \ check_prog_gpart_overlap \ check_prog_gpart_remap \ check_prog_gscat \ check_prog_gtst \ check_prog_mmk \ check_prog_mord CHECKSCOTCHF = check_libmetis_dual_f_v3 \ check_libmetis_dual_f_v5 ifeq ($(strip $(FCS)),) CHECKSCOTCHF = nothing endif CHECKPTSCOTCH = check_strat_par \ check_scotch_dgraph_check \ check_scotch_dgraph_band \ check_scotch_dgraph_coarsen \ check_scotch_dgraph_order \ check_scotch_dgraph_grow \ check_scotch_dgraph_induce \ check_scotch_dgraph_redist \ check_libparmetis_dual \ check_prog_dgord \ check_prog_dgpart \ check_prog_dgscat-dggath \ check_prog_dgtst CHECKESMUMPS = check_libesmumps ## ## Sequential library tests. ## check_common_file_compress : test_common_file_compress -cp "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf" $(EXECS) ./test_common_file_compress "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf.gz" $(EXECS) ./test_common_file_compress "$(TMPDIR)/bump_b1.grf.gz" "$(TMPDIR)/bump_b1.grf" $(PROGDIFF) "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf" -cp "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf" $(EXECS) ./test_common_file_compress "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf.bz2" $(EXECS) ./test_common_file_compress "$(TMPDIR)/bump_b1.grf.bz2" "$(TMPDIR)/bump_b1.grf" $(PROGDIFF) "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf" -cp "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf" $(EXECS) ./test_common_file_compress "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf.lzma" $(EXECS) ./test_common_file_compress "$(TMPDIR)/bump_b1.grf.lzma" "$(TMPDIR)/bump_b1.grf" $(PROGDIFF) "data/bump_b1.grf" "$(TMPDIR)/bump_b1.grf" test_common_file_compress : test_common_file_compress.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_common_random : test_common_random $(EXECS) ./test_common_random "$(TMPDIR)/rand.dat" 0 $(EXECS) ./test_common_random "$(TMPDIR)/rand.dat" 1 test_common_random : test_common_random.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_common_thread : test_common_thread $(EXECS) ./test_common_thread test_common_thread : test_common_thread.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_fibo : test_fibo $(EXECS) ./test_fibo test_fibo : test_fibo.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_libesmumps : test_libesmumps $(EXECS) ./test_libesmumps data/bump.grf $(EXECS) ./test_libesmumps data/bump_imbal_32.grf test_libesmumps : test_libesmumps.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libesmumps$(LIB) ## check_libmetis_v3 : test_libmetis_v3 $(EXECS) ./test_libmetis_v3 data/bump.grf $(EXECS) ./test_libmetis_v3 data/bump_b1.grf $(EXECS) ./test_libmetis_v3 data/bump_imbal_32.grf test_libmetis_v3 : test_libmetis.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotchmetisv3$(LIB) check_libmetis_v5 : test_libmetis_v5 $(EXECS) ./test_libmetis_v5 data/bump.grf $(EXECS) ./test_libmetis_v5 data/bump_b1.grf $(EXECS) ./test_libmetis_v5 data/bump_imbal_32.grf test_libmetis_v5 : test_libmetis.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotchmetisv5$(LIB) ## check_libmetis_dual_v3 : test_libmetis_dual_v3 $(EXECS) ./test_libmetis_dual_v3 $(EXECS) ./test_libmetis_dual_v3 1 test_libmetis_dual_v3 : test_libmetis_dual.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotchmetisv3$(LIB) check_libmetis_dual_v5 : test_libmetis_dual_v5 $(EXECS) ./test_libmetis_dual_v5 $(EXECS) ./test_libmetis_dual_v5 1 test_libmetis_dual_v5 : test_libmetis_dual.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotchmetisv5$(LIB) ## check_libmetis_dual_f_v3 : test_libmetis_dual_f_v3 $(EXECS) ./test_libmetis_dual_f_v3 test_libmetis_dual_f_v3 : test_libmetis_dual_f.f90 \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotchmetisv3$(LIB) check_libmetis_dual_f_v5 : test_libmetis_dual_f_v5 $(EXECS) ./test_libmetis_dual_f_v5 test_libmetis_dual_f_v5 : test_libmetis_dual_f.f90 \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotchmetisv5$(LIB) # libparmetis check_libparmetis_dual : $(SCOTCHBINDIR)/adm2dgr$(EXE) $(EXECP3) $(SCOTCHBINDIR)/adm2dgr -c2 data/small3-%r.adm $(TMPDIR)/small3-%r.dgr $(PROGDIFF) "data/small3-0.dgr" "$(TMPDIR)/small3-0.dgr" $(PROGDIFF) "data/small3-1.dgr" "$(TMPDIR)/small3-1.dgr" $(PROGDIFF) "data/small3-2.dgr" "$(TMPDIR)/small3-2.dgr" $(EXECP4) $(SCOTCHBINDIR)/adm2dgr -c3 data/ship001-%r.adm $(TMPDIR)/ship001-%r.dgr $(PROGDIFF) "data/ship001-0.dgr" "$(TMPDIR)/ship001-0.dgr" $(PROGDIFF) "data/ship001-1.dgr" "$(TMPDIR)/ship001-1.dgr" $(PROGDIFF) "data/ship001-2.dgr" "$(TMPDIR)/ship001-2.dgr" $(PROGDIFF) "data/ship001-3.dgr" "$(TMPDIR)/ship001-3.dgr" ## check_scotch_arch : test_scotch_arch $(EXECS) ./test_scotch_arch "$(TMPDIR)/arch.tgt" test_scotch_arch : test_scotch_arch.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_arch_deco : test_scotch_arch_deco $(EXECS) ./test_scotch_arch_deco data/m4x4.grf "$(TMPDIR)/arch2.tgt" # $(EXECS) ./test_scotch_arch_deco data/m4x4_b100000.grf "$(TMPDIR)/arch2.tgt" test_scotch_arch_deco : test_scotch_arch_deco.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_context : test_scotch_context $(EXECS) ./test_scotch_context data/bump_b1.grf test_scotch_context : test_scotch_context.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_coarsen : test_scotch_graph_coarsen $(EXECS) ./test_scotch_graph_coarsen data/bump.grf $(EXECS) ./test_scotch_graph_coarsen data/bump_b100000.grf test_scotch_graph_coarsen : test_scotch_graph_coarsen.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_color : test_scotch_graph_color $(EXECS) ./test_scotch_graph_color data/bump.grf $(EXECS) ./test_scotch_graph_color data/bump_b100000.grf test_scotch_graph_color : test_scotch_graph_color.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_diam : test_scotch_graph_diam $(EXECS) ./test_scotch_graph_diam data/bump_b100000.grf $(EXECS) ./test_scotch_graph_diam data/m16x16_b100000.grf $(EXECS) ./test_scotch_graph_diam data/p2-p2.grf test_scotch_graph_diam : test_scotch_graph_diam.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_dump : test_scotch_graph_dump2 $(EXECS) ./test_scotch_graph_dump2 $(TMPDIR)/m16x16_b1.grf $(PROGDIFF) "data/m16x16_b1.grf" "$(TMPDIR)/m16x16_b1.grf" test_scotch_graph_dump2 : test_scotch_graph_dump2.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) test_scotch_graph_dump2.c : test_scotch_graph_dump.c $(EXECS) $(SCOTCHBINDIR)/gdump -ptest data/m16x16_b1.grf $(TMPDIR)/m16x16_b1.c $(CAT) test_scotch_graph_dump.c $(TMPDIR)/m16x16_b1.c > $(@) ## check_scotch_graph_induce : test_scotch_graph_induce $(EXECS) ./test_scotch_graph_induce data/bump.grf $(EXECS) ./test_scotch_graph_induce data/bump_b100000.grf test_scotch_graph_induce : test_scotch_graph_induce.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_map : test_scotch_graph_map $(EXECS) ./test_scotch_graph_map data/m4x4.grf $(EXECS) ./test_scotch_graph_map data/m4x4_b100000.grf $(EXECS) ./test_scotch_graph_map data/m16x16.grf $(EXECS) ./test_scotch_graph_map data/m16x16_b100000.grf test_scotch_graph_map : test_scotch_graph_map.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_map_copy : test_scotch_graph_map_copy $(EXECS) ./test_scotch_graph_map_copy data/bump.grf $(EXECS) ./test_scotch_graph_map_copy data/bump_b100000.grf test_scotch_graph_map_copy : test_scotch_graph_map_copy.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_order : test_scotch_graph_order $(EXECS) ./test_scotch_graph_order data/bump.grf $(EXECS) ./test_scotch_graph_order data/bump_b100000.grf test_scotch_graph_order : test_scotch_graph_order.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_graph_part_ovl : test_scotch_graph_part_ovl $(EXECS) ./test_scotch_graph_part_ovl 4 data/m16x16.grf /dev/null $(EXECS) ./test_scotch_graph_part_ovl 4 data/m16x16_b100000.grf /dev/null test_scotch_graph_part_ovl : test_scotch_graph_part_ovl.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_scotch_mesh_graph : test_scotch_mesh_graph $(EXECS) ./test_scotch_mesh_graph data/ship001.msh test_scotch_mesh_graph : test_scotch_mesh_graph.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## check_strat_seq : test_strat_seq $(EXECS) ./test_strat_seq test_strat_seq : test_strat_seq.c \ $(SCOTCHLIBDIR)/libscotch$(LIB) ## ## Parallel library tests. ## check_strat_par : test_strat_par $(EXECS) ./test_strat_par test_strat_par : test_strat_par.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_band : test_scotch_dgraph_band $(EXECP3) ./test_scotch_dgraph_band data/bump.grf $(TMPDIR)/test_scotch_dgraph_band.map $(EXECP3) ./test_scotch_dgraph_band data/bump_b100000.grf $(TMPDIR)/test_scotch_dgraph_band.map test_scotch_dgraph_band : test_scotch_dgraph_band.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_coarsen : test_scotch_dgraph_coarsen $(EXECP3) ./test_scotch_dgraph_coarsen data/bump.grf $(EXECP3) ./test_scotch_dgraph_coarsen data/bump_b100000.grf $(EXECP3) ./test_scotch_dgraph_coarsen data/m4x4_b1.grf test_scotch_dgraph_coarsen : test_scotch_dgraph_coarsen.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_order : test_scotch_dgraph_order $(EXECP3) ./test_scotch_dgraph_order data/bump.grf $(EXECP3) ./test_scotch_dgraph_order data/bump_b100000.grf $(EXECP3) ./test_scotch_dgraph_order data/m4x4_b1.grf test_scotch_dgraph_order : test_scotch_dgraph_order.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_check : test_scotch_dgraph_check $(EXECP3) ./test_scotch_dgraph_check data/bump.grf $(EXECP3) ./test_scotch_dgraph_check data/bump_b100000.grf test_scotch_dgraph_check : test_scotch_dgraph_check.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_grow : test_scotch_dgraph_grow $(EXECP3) ./test_scotch_dgraph_grow data/bump.grf $(TMPDIR)/test_scotch_dgraph_grow.map $(EXECP3) ./test_scotch_dgraph_grow data/bump_b100000.grf $(TMPDIR)/test_scotch_dgraph_grow.map test_scotch_dgraph_grow : test_scotch_dgraph_grow.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_induce : test_scotch_dgraph_induce $(EXECP3) ./test_scotch_dgraph_induce data/bump.grf $(EXECP3) ./test_scotch_dgraph_induce data/bump_b100000.grf test_scotch_dgraph_induce : test_scotch_dgraph_induce.c \ $(SCOTCHLIBDIR)/libptscotch$(LIB) ## check_scotch_dgraph_redist : test_scotch_dgraph_redist $(EXECP3) ./test_scotch_dgraph_redist data/bump.grf $(EXECP3) ./test_scotch_dgraph_redist data/bump_b100000.grf test_scotch_dgraph_redist : test_scotch_dgraph_redist.c ## ## Sequential program tests. ## check_prog_acpl : check_prog_amk $(EXECS) $(SCOTCHBINDIR)/amk_m2 5 12 | $(SCOTCHBINDIR)/acpl | $(SCOTCHBINDIR)/atst check_prog_amk : check_prog_atst $(EXECS) $(SCOTCHBINDIR)/amk_ccc 5 | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_fft2 5 | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_hy 5 | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_m2 5 12 | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_m2 -mo 5 12 | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_p2 5 7 | $(SCOTCHBINDIR)/atst check_prog_amk_grf : check_prog_atst $(EXECS) $(SCOTCHBINDIR)/amk_grf data/m16x16.grf | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_grf -2 data/m16x16.grf | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_grf -ldata/m4x4_vertlist.txt data/m4x4.grf | $(SCOTCHBINDIR)/atst $(EXECS) $(SCOTCHBINDIR)/amk_grf -ldata/m4x4_vertlist.txt -2 data/m4x4.grf | $(SCOTCHBINDIR)/atst check_prog_atst : $(EXECS) $(SCOTCHBINDIR)/atst $(SCOTCHTGTDIR)/t4x4x4.tgt check_prog_gbase : $(EXECS) $(SCOTCHBINDIR)/gbase 1 data/m4x4.grf $(TMPDIR)/m4x4_b1.grf $(PROGDIFF) "data/m4x4_b1.grf" "$(TMPDIR)/m4x4_b1.grf" $(EXECS) $(SCOTCHBINDIR)/gbase 1 data/m4x4_b1.grf $(TMPDIR)/m4x4_b1.grf $(PROGDIFF) "data/m4x4_b1.grf" "$(TMPDIR)/m4x4_b1.grf" $(EXECS) $(SCOTCHBINDIR)/gbase 0 data/m4x4_b1.grf $(TMPDIR)/m4x4.grf $(PROGDIFF) "data/m4x4.grf" "$(TMPDIR)/m4x4.grf" check_prog_gmk : $(EXECS) $(SCOTCHBINDIR)/gmk_hy 5 | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_m2 5 1 | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_m2 -b1 -e 5 4 -g/dev/null | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_m2 -t 5 4 | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_m2 -b1 -e -t 5 2 | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_m2 -b1 -e -t 5 1 | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_m3 -b1 5 4 3 -g/dev/null | $(SCOTCHBINDIR)/gtst $(EXECS) $(SCOTCHBINDIR)/gmk_ub2 5 | $(SCOTCHBINDIR)/gtst check_prog_gmk_msh : check_prog_mmk $(EXECS) $(SCOTCHBINDIR)/gmk_msh $(TMPDIR)/m2_5_1.msh $(TMPDIR)/m2_5_1.grf $(EXECS) $(SCOTCHBINDIR)/gtst $(TMPDIR)/m2_5_1.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh $(TMPDIR)/m2_5_4.msh $(TMPDIR)/m2_5_4.grf $(EXECS) $(SCOTCHBINDIR)/gtst $(TMPDIR)/m2_5_4.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh $(TMPDIR)/m2_5_4_3.msh $(TMPDIR)/m2_5_4_3.grf $(EXECS) $(SCOTCHBINDIR)/gtst $(TMPDIR)/m2_5_4_3.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh data/ship001.msh $(TMPDIR)/ship001.grf $(EXECS) $(SCOTCHBINDIR)/gtst $(TMPDIR)/ship001.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh "data/small2.msh" $(TMPDIR)/small2_d1.grf -d1 $(PROGDIFF) "data/small2_d1.grf" $(TMPDIR)/small2_d1.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh "data/small2.msh" $(TMPDIR)/small2_d2.grf -d2 $(PROGDIFF) "data/small2_d2.grf" $(TMPDIR)/small2_d2.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh "data/small2.msh" $(TMPDIR)/small2_d3.grf -d3 $(PROGDIFF) "data/small2_d2.grf" $(TMPDIR)/small2_d3.grf $(EXECS) $(SCOTCHBINDIR)/gmk_msh "data/cube_8.msh" $(TMPDIR)/cube_8_d3.grf -d3 $(PROGDIFF) "data/cube_8_d3.grf" $(TMPDIR)/cube_8_d3.grf check_prog_mmk : $(EXECS) $(SCOTCHBINDIR)/mmk_m2 5 1 $(TMPDIR)/m2_5_1.msh $(EXECS) $(SCOTCHBINDIR)/mmk_m2 5 4 $(TMPDIR)/m2_5_4.msh $(EXECS) $(SCOTCHBINDIR)/mmk_m3 5 4 3 $(TMPDIR)/m2_5_4_3.msh $(EXECS) $(SCOTCHBINDIR)/mtst $(TMPDIR)/m2_5_1.msh $(EXECS) $(SCOTCHBINDIR)/mtst $(TMPDIR)/m2_5_4.msh $(EXECS) $(SCOTCHBINDIR)/mtst $(TMPDIR)/m2_5_4_3.msh check_prog_mcv : check_prog_mmk $(EXECS) $(SCOTCHBINDIR)/mcv $(TMPDIR)/m2_5_1.msh $(TMPDIR)/output_m2_5_1.msh -is -os $(EXECS) $(SCOTCHBINDIR)/mcv $(TMPDIR)/m2_5_4.msh $(TMPDIR)/output_m2_5_4.msh -is -os $(EXECS) $(SCOTCHBINDIR)/mcv $(TMPDIR)/m2_5_4_3.msh $(TMPDIR)/output_m2_5_4_3.msh -is -os $(PROGDIFF) $(TMPDIR)/m2_5_1.msh $(TMPDIR)/output_m2_5_1.msh $(PROGDIFF) $(TMPDIR)/m2_5_4.msh $(TMPDIR)/output_m2_5_4.msh $(PROGDIFF) $(TMPDIR)/m2_5_4_3.msh $(TMPDIR)/output_m2_5_4_3.msh check_prog_mord : check_prog_gmk_msh $(EXECS) $(SCOTCHBINDIR)/mord $(TMPDIR)/m2_5_1.msh | $(SCOTCHBINDIR)/gotst $(TMPDIR)/m2_5_1.grf $(EXECS) $(SCOTCHBINDIR)/mord $(TMPDIR)/m2_5_4.msh | $(SCOTCHBINDIR)/gotst $(TMPDIR)/m2_5_4.grf $(EXECS) $(SCOTCHBINDIR)/mord $(TMPDIR)/m2_5_4_3.msh | $(SCOTCHBINDIR)/gotst $(TMPDIR)/m2_5_4_3.grf $(EXECS) $(SCOTCHBINDIR)/mord data/ship001.msh | $(SCOTCHBINDIR)/gotst $(TMPDIR)/ship001.grf check_prog_gmap : $(EXECS) $(SCOTCHBINDIR)/gmap data/bump.grf $(SCOTCHTGTDIR)/h3.tgt $(TMPDIR)/bump_h3.map -vmt $(EXECS) $(SCOTCHBINDIR)/gmap data/small1.grf $(SCOTCHTGTDIR)/m11x13.tgt $(TMPDIR)/small1_m11x13.map -vmt check_prog_gord : check_prog_gmk_msh $(EXECS) $(SCOTCHBINDIR)/gord data/bump.grf $(TMPDIR)/bump.ord -Cu -vt $(EXECS) $(SCOTCHBINDIR)/gord data/bump_b100000.grf $(TMPDIR)/bump_b100000.ord -Cd -vt $(EXECS) $(SCOTCHBINDIR)/gord data/bump_b1.grf '-On{sep=(/((vert)>(240))?(e{strat=g}|g|h);),ole=d{cmin=15,cmax=100000,frat=0},ose=g{pass=3}}' $(TMPDIR)/bump_b1.ord -Cr -vt $(EXECS) $(SCOTCHBINDIR)/gord data/m16x16_b100000_v.grf '-On{sep=(/((vert)>(20))?h;),ole=b{cmin=100},ose=b{cmin=3}}' $(TMPDIR)/m16x16_b100000_v.ord -vt $(EXECS) $(SCOTCHBINDIR)/gord data/bump_imbal_32.grf $(TMPDIR)/bump_imbal_32.ord -Cf -vt $(EXECS) $(SCOTCHBINDIR)/gord data/nocoarsen.grf $(TMPDIR)/nocoarsen.ord -vt $(EXECS) $(SCOTCHBINDIR)/gord data/compress-coarsen.grf $(TMPDIR)/compress-coarsen.ord -vt $(EXECS) $(SCOTCHBINDIR)/gord $(TMPDIR)/ship001.grf $(TMPDIR)/ship001.ord -vt check_prog_gotst : check_prog_gord $(EXECS) $(SCOTCHBINDIR)/gotst data/bump.grf $(TMPDIR)/bump.ord $(EXECS) $(SCOTCHBINDIR)/gotst data/bump_b100000.grf $(TMPDIR)/bump_b100000.ord $(EXECS) $(SCOTCHBINDIR)/gotst data/bump_imbal_32.grf $(TMPDIR)/bump_imbal_32.ord $(EXECS) $(SCOTCHBINDIR)/gotst data/nocoarsen.grf $(TMPDIR)/nocoarsen.ord $(EXECS) $(SCOTCHBINDIR)/gotst data/compress-coarsen.grf $(TMPDIR)/compress-coarsen.ord $(EXECS) $(SCOTCHBINDIR)/gotst $(TMPDIR)/ship001.grf $(TMPDIR)/ship001.ord check_prog_gord_block : check_prog_gord $(EXECS) $(SCOTCHBINDIR)/gord data/m4x4_b1_ev.grf $(TMPDIR)/m4x4_b1.ord '-ob{cmin=3,strat=s}' $(EXECS) $(SCOTCHBINDIR)/gord data/m4x4_b1_ev.grf $(TMPDIR)/m4x4_b1_ev.ord '-ob{cmin=2,strat=s}' $(EXECS) $(SCOTCHBINDIR)/gord data/m4x4_b1_ev.grf $(TMPDIR)/m4x4_b1_ev.ord '-ob{cmin=1,strat=s}' check_prog_gout : check_prog_gord \ check_prog_gpart $(EXECS) $(SCOTCHBINDIR)/gout '-Oi{c,r}' data/bump.grf data/bump.xyz $(TMPDIR)/bump_k9.map $(TMPDIR)/bump_k9.iv $(EXECS) $(SCOTCHBINDIR)/gout '-Oi{g,r}' data/bump_b100000.grf data/bump_b100000.xyz $(TMPDIR)/bump_k9_b100000.map $(TMPDIR)/bump_k9_b100000.iv $(EXECS) $(SCOTCHBINDIR)/gout '-Om{e}' -gn data/bump.grf /dev/null $(TMPDIR)/bump.ord $(TMPDIR)/bump_ord.eps $(EXECS) $(SCOTCHBINDIR)/gout '-Om{e}' -gn data/bump_b100000.grf /dev/null $(TMPDIR)/bump_b100000.ord $(TMPDIR)/bump_ord_b100000.eps $(EXECS) $(SCOTCHBINDIR)/gout '-Op{d,e,g,r,s}' data/bump.grf data/bump.xyz $(TMPDIR)/bump_k9.map $(TMPDIR)/bump_k9.eps $(EXECS) $(SCOTCHBINDIR)/gout '-Op{a,e,c,d,l}' data/bump_b100000.grf data/bump_b100000.xyz $(TMPDIR)/bump_k9_b100000.map $(TMPDIR)/bump_k9_b100000.eps $(EXECS) $(SCOTCHBINDIR)/gout '-Ot{c,d,v}' -mn data/bump.grf data/bump.xyz /dev/null $(TMPDIR)/bump_k9.tlp $(EXECS) $(SCOTCHBINDIR)/gout '-Ot{b,a,r}' data/bump_b100000.grf data/bump_b100000.xyz $(TMPDIR)/bump_k9_b100000.map $(TMPDIR)/bump_k9_b100000.tlp $(EXECS) $(SCOTCHBINDIR)/gout '-Ov{r}' data/bump.grf data/bump.xyz $(TMPDIR)/bump_k9.map $(TMPDIR)/bump_k9.vtk $(EXECS) $(SCOTCHBINDIR)/gout '-Ov{v}' data/bump_b100000.grf data/bump_b100000.xyz $(TMPDIR)/bump_k9_b100000.map $(TMPDIR)/bump_k9_b100000.vtk check_prog_gpart : $(EXECS) $(SCOTCHBINDIR)/gpart 9 data/bump.grf $(TMPDIR)/bump_k9.map -Cd -vmt $(EXECS) $(SCOTCHBINDIR)/gpart 9 data/bump_b100000.grf $(TMPDIR)/bump_k9_b100000.map -Cu -vmt $(EXECS) $(SCOTCHBINDIR)/gpart 9 data/nocoarsen.grf $(TMPDIR)/nocoarsen_k9.map -Cr -vmt $(EXECS) $(SCOTCHBINDIR)/gpart 5 data/bump_b100000.grf $(TMPDIR)/bump_k5.map -Cf -vmt '-Mr{bal=0.05,sep=m{vert=120,low=(h{pass=10}|a)f{bal=0.05,move=120},asc=b{bnd=f{bal=0.05,move=120},org=f{bal=0.05,move=120}}}}|m{vert=1000,low=r{bal=0.05,sep=m{vert=120,low=(h{pass=10}|a)f{bal=0.05,move=120},asc=b{bnd=f{bal=0.05,move=120},org=f{bal=0.05,move=120}}}},asc=b{bnd=f{bal=0.05,move=120},org=f{bal=0.05,move=120}}}' check_prog_gpart_clustering : $(EXECS) $(SCOTCHBINDIR)/gpart -q 1 data/bump.grf $(TMPDIR)/bump_part_cls_9.map -vmt $(EXECS) $(SCOTCHBINDIR)/gpart -q 1 data/bump_b100000.grf $(TMPDIR)/bump_b100000_part_cls_9.map -vmt $(EXECS) $(SCOTCHBINDIR)/gmtst data/bump_b100000.grf $(SCOTCHTGTDIR)/vcmplt.tgt $(TMPDIR)/bump_b100000_part_cls_9.map $(EXECS) $(SCOTCHBINDIR)/gpart -q 1 data/bump_imbal_32.grf $(TMPDIR)/bump_imbal_32_part_cls_32.map -vmt $(EXECS) $(SCOTCHBINDIR)/gmtst data/bump_imbal_32.grf $(SCOTCHTGTDIR)/vhcub.tgt $(TMPDIR)/bump_imbal_32_part_cls_32.map check_prog_gpart_overlap : $(EXECS) $(SCOTCHBINDIR)/gpart -o 9 data/bump.grf $(TMPDIR)/bump_part_ovl_9.map -vmt $(EXECS) $(SCOTCHBINDIR)/gpart -o 9 data/bump_b100000.grf $(TMPDIR)/bump_b100000_part_ovl_9.map -vmt $(EXECS) $(SCOTCHBINDIR)/gmtst -o data/bump_b100000.grf $(SCOTCHTGTDIR)/k9.tgt $(TMPDIR)/bump_b100000_part_ovl_9.map $(EXECS) $(SCOTCHBINDIR)/gpart -o 32 data/bump_imbal_32.grf $(TMPDIR)/bump_imbal_32_part_ovl_32.map -vmt $(EXECS) $(SCOTCHBINDIR)/gmtst -o data/bump_imbal_32.grf $(SCOTCHTGTDIR)/k32.tgt $(TMPDIR)/bump_imbal_32_part_ovl_32.map $(EXECS) $(SCOTCHBINDIR)/gpart -o 6 data/bump_imbal_32.grf $(TMPDIR)/bump_imbal_32_part_ovl_32_6.map '-me{strat=m{asc=b{width=3,bnd=d{pass=40,dif=1,rem=0}f{move=80,pass=-1,bal=0.01},org=f{move=80,pass=-1,bal=0.01}},low=r{job=t,bal=0.01,map=t,poli=S,sep=(m{asc=b{bnd=f{move=120,pass=-1,bal=0.01,type=b},org=f{move=120,pass=-1,bal=0.01,type=b},width=3},low=h{pass=10}f{move=120,pass=-1,bal=0.01,type=b},vert=120,rat=0.8}|m{asc=b{bnd=f{move=120,pass=-1,bal=0.01,type=b},org=f{move=120,pass=-1,bal=0.01,type=b},width=3},low=h{pass=10}f{move=120,pass=-1,bal=0.01,type=b},vert=120,rat=0.8})},vert=10000,rat=0.8,type=h}}f' -vmt $(EXECS) $(SCOTCHBINDIR)/gpart -o 24 data/m4x4.grf $(TMPDIR)/bump_m4x4_part_ovl_24.map -vmt $(EXECS) $(SCOTCHBINDIR)/gmtst -o data/m4x4.grf $(SCOTCHTGTDIR)/k24.tgt $(TMPDIR)/bump_m4x4_part_ovl_24.map check_prog_gpart_remap : $(EXECS) $(SCOTCHBINDIR)/gpart 32 data/bump_imbal_32.grf /dev/null -rodata/bump_old.map -vmt check_prog_gscat : $(EXECS) $(SCOTCHBINDIR)/gscat 4 data/small1.grf $(TMPDIR)/small1-%r.grf $(EXECS) $(SCOTCHBINDIR)/gscat 4 -i1 data/bump.grf $(TMPDIR)/bump4-%r.grf check_prog_gtst : $(EXECS) $(SCOTCHBINDIR)/gtst data/m4x4_b1_ev.grf $(TMPDIR)/gtst_ev.txt $(EXECS) $(SCOTCHBINDIR)/gtst data/m4x4_b1_elv.grf $(TMPDIR)/gtst_elv.txt $(PROGDIFF) "$(TMPDIR)/gtst_ev.txt" "$(TMPDIR)/gtst_elv.txt" ## check_prog_full : $(EXECS) $(SCOTCHBINDIR)/gord data/bump.grf $(TMPDIR)/bump_f.ord -vt $(EXECS) $(SCOTCHBINDIR)/gpart 3 data/bump.grf $(TMPDIR)/bump_f.map -vt $(EXECS) $(SCOTCHBINDIR)/gpart -o 3 data/bump.grf $(TMPDIR)/bump_fo.map -vt ## ## Parallel program tests. ## check_prog_dgord : $(EXECP3) $(SCOTCHBINDIR)/dgord data/bump.grf /dev/null -Cu -vt $(EXECP3) $(SCOTCHBINDIR)/dgord data/bump_b100000.grf /dev/null -Cd -vt $(EXECP4) $(SCOTCHBINDIR)/dgord data/small1-%r.grf $(TMPDIR)/small1.ord -vt check_prog_dgpart : $(EXECP3) $(SCOTCHBINDIR)/dgpart 9 data/bump.grf /dev/null -Cu -vmt $(EXECP3) $(SCOTCHBINDIR)/dgpart 9 data/bump_b100000.grf /dev/null -Cd -vmt $(EXECP4) $(SCOTCHBINDIR)/dgpart 50 data/small1-%r.grf /dev/null -vmt check_prog_dgscat-dggath : TMP := $(shell mktemp -u) check_prog_dgscat-dggath : $(EXECP3) $(SCOTCHBINDIR)/dgscat -r1 -c data/m16x16.grf "$(TMP)1-%r.grf" $(EXECP3) $(SCOTCHBINDIR)/dggath -r1 -c "$(TMP)1-%r.grf" "$(TMP)1.grf" $(PROGDIFF) data/m16x16.grf "$(TMP)1.grf" $(EXECP3) $(SCOTCHBINDIR)/dgscat -c data/m16x16_b100000.grf "$(TMP)2-%r.grf" $(EXECP3) $(SCOTCHBINDIR)/dggath -c "$(TMP)2-%r.grf" "$(TMP)2.grf" $(PROGDIFF) data/m16x16_b100000.grf "$(TMP)2.grf" $(EXECP3) $(SCOTCHBINDIR)/dgscat -c data/m4x4_b1_elv.grf "$(TMP)3-%r.grf" $(EXECP3) $(SCOTCHBINDIR)/dggath -c "$(TMP)3-%r.grf" "$(TMP)3.grf" $(PROGDIFF) data/m4x4_b1_elv.grf "$(TMP)3.grf" check_prog_dgtst : TMP := $(shell mktemp -u) check_prog_dgtst : $(EXECP4) $(SCOTCHBINDIR)/dgtst data/small1-%r.grf $(EXECP3) $(SCOTCHBINDIR)/dgscat data/m4x4_b1_elv.grf "$(TMP)1-%r.grf" $(EXECP3) $(SCOTCHBINDIR)/dgtst "$(TMP)1-%r.grf" "$(TMP)1.txt" $(EXECS) $(SCOTCHBINDIR)/gtst data/m4x4_b1_elv.grf "$(TMP)2.txt" $(PROGDIFF) "$(TMP)1.txt" "$(TMP)2.txt" ## check_prog_dfull : $(EXECP4) $(SCOTCHBINDIR)/dgord data/bump.grf $(TMPDIR)/bump_f.ord -vt $(EXECP4) $(SCOTCHBINDIR)/dgpart 3 data/bump.grf $(TMPDIR)/bump_f.map -vmt scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/000077500000000000000000000000001514310134000237315ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump.grf000066400000000000000000011214351514310134000254030ustar00rootroot000000000000000 9800 57978 0 000 3 413 407 6 4 9771 43 9772 44 4 76 1474 1475 77 3 1242 147 148 3 693 206 207 3 521 348 349 4 7 412 413 0 4 6 412 8 647 4 9 3238 647 7 4 3235 3238 8 10 4 11 3233 3235 9 4 3234 3233 10 12 4 3684 3234 11 13 4 14 418 3684 12 4 15 417 418 13 4 14 417 16 3088 4 17 3086 3088 15 4 16 3086 3087 18 4 3087 17 3095 19 4 3095 18 3096 20 4 21 414 3096 19 4 20 414 1171 22 4 1171 21 1172 23 4 1172 22 1173 24 4 1173 23 1526 25 4 1526 24 26 9781 4 27 3852 9781 25 4 28 2179 3852 26 4 27 2179 2180 29 4 2180 28 30 2503 4 31 2505 2503 29 4 2508 2505 30 32 4 3330 2508 33 31 4 3330 32 3331 34 4 35 2248 3331 33 4 34 2248 2249 36 4 2249 35 2250 37 4 38 416 2250 36 4 39 415 416 37 4 38 415 2194 40 4 2194 39 2195 41 4 2195 40 2196 42 3 2196 41 43 4 42 2196 9771 1 4 9769 9772 1 45 4 46 9768 9769 44 4 47 427 9768 45 4 48 426 427 46 4 47 426 49 411 4 50 410 411 48 4 49 410 51 421 4 50 421 422 52 4 422 51 4650 53 4 4650 52 4651 54 4 4657 4651 53 55 4 5380 4657 54 56 4 57 430 5380 55 4 56 430 429 58 4 59 408 429 57 4 58 408 2218 60 4 2218 59 2219 61 4 2219 60 2220 62 4 2220 61 2221 63 4 2221 62 2222 64 4 6701 2222 63 65 4 6701 64 6703 66 4 6703 65 3505 67 4 68 3452 3505 66 4 69 3451 3452 67 4 3441 3451 68 70 4 71 2491 3441 69 4 70 2491 2492 72 4 73 409 2492 71 4 72 409 74 428 4 73 428 75 1603 4 74 1603 1604 76 4 2 1474 1604 75 4 1475 2 1476 78 4 1476 77 1477 79 4 1477 78 1478 80 4 1478 79 1479 81 4 1479 80 1480 82 4 1480 81 1481 83 4 1481 82 1482 84 4 1482 83 1483 85 4 86 1160 1483 84 4 85 1160 1161 87 4 1161 86 1162 88 4 1162 87 1163 89 4 1163 88 1186 90 4 1186 89 1185 91 4 1185 90 1187 92 4 1187 91 1188 93 4 1188 92 1189 94 4 1189 93 1190 95 4 1190 94 1191 96 4 1191 95 1192 97 4 1192 96 1193 98 4 1193 97 1194 99 4 1194 98 1195 100 4 1195 99 1196 101 4 1196 100 1197 102 4 1197 101 1198 103 4 1198 102 1199 104 4 1199 103 1200 105 4 1200 104 1201 106 4 1201 105 1202 107 4 1202 106 1203 108 4 1203 107 1204 109 4 1204 108 1205 110 4 1205 109 1206 111 4 1206 110 1207 112 4 1207 111 1208 113 4 1208 112 1209 114 4 1209 113 1210 115 4 1210 114 1211 116 4 1211 115 1212 117 4 1212 116 1213 118 4 1213 117 1214 119 4 1214 118 1215 120 4 1215 119 1216 121 4 1216 120 1217 122 4 1217 121 1218 123 4 1218 122 1219 124 4 1219 123 1220 125 4 1220 124 1221 126 4 1221 125 1222 127 4 1222 126 1223 128 4 1223 127 1224 129 4 1224 128 1225 130 4 1225 129 1226 131 4 1226 130 1227 132 4 1227 131 1228 133 4 1228 132 1229 134 4 1229 133 1230 135 4 1230 134 1231 136 4 1231 135 1232 137 4 1232 136 1233 138 4 1233 137 1234 139 4 1234 138 1235 140 4 1235 139 1236 141 4 1236 140 1237 142 4 1237 141 1238 143 4 1238 142 1239 144 4 1239 143 1240 145 4 1240 144 1241 146 4 1241 145 1242 147 3 1242 146 3 4 1242 3 1243 149 4 1243 148 1244 150 4 1244 149 1245 151 4 1245 150 1246 152 4 1246 151 1247 153 4 1247 152 1248 154 4 155 923 1248 153 4 154 923 924 156 4 924 155 925 157 4 925 156 926 158 4 926 157 927 159 4 927 158 928 160 4 928 159 929 161 4 929 160 930 162 4 930 161 931 163 4 164 651 931 162 4 163 651 652 165 4 652 164 653 166 4 653 165 654 167 4 654 166 655 168 4 655 167 656 169 4 656 168 657 170 4 657 169 658 171 4 658 170 659 172 4 659 171 660 173 4 660 172 661 174 4 661 173 662 175 4 662 174 663 176 4 663 175 664 177 4 664 176 665 178 4 665 177 666 179 4 666 178 667 180 4 667 179 668 181 4 668 180 669 182 4 669 181 670 183 4 670 182 671 184 4 671 183 672 185 4 672 184 673 186 4 673 185 674 187 4 674 186 675 188 4 675 187 676 189 4 676 188 677 190 4 677 189 678 191 4 678 190 679 192 4 679 191 680 193 4 680 192 681 194 4 681 193 682 195 4 682 194 683 196 4 683 195 684 197 4 684 196 685 198 4 685 197 686 199 4 686 198 687 200 4 687 199 688 201 4 688 200 689 202 4 689 201 690 203 4 690 202 691 204 4 691 203 692 205 3 692 204 206 4 692 205 693 4 3 693 4 208 4 693 207 694 209 4 694 208 695 210 4 695 209 696 211 4 696 210 697 212 4 697 211 698 213 4 698 212 699 214 4 699 213 700 215 4 700 214 701 216 4 701 215 702 217 4 702 216 703 218 4 703 217 704 219 4 704 218 705 220 4 705 219 706 221 4 706 220 707 222 4 707 221 708 223 4 708 222 709 224 4 709 223 710 225 4 710 224 711 226 4 711 225 712 227 4 712 226 713 228 4 713 227 714 229 4 714 228 715 230 4 715 229 716 231 4 716 230 717 232 4 717 231 718 233 4 718 232 719 234 4 719 233 720 235 4 720 234 721 236 4 721 235 722 237 4 722 236 723 238 4 723 237 724 239 4 724 238 725 240 4 725 239 726 241 4 726 240 727 242 4 727 241 728 243 4 728 242 729 244 4 729 243 730 245 4 730 244 731 246 4 731 245 732 247 4 732 246 733 248 4 733 247 734 249 4 734 248 735 250 4 735 249 736 251 4 736 250 737 252 4 737 251 738 253 4 738 252 739 254 4 739 253 740 255 4 740 254 741 256 4 741 255 742 257 4 258 431 742 256 4 257 431 432 259 4 432 258 433 260 4 433 259 434 261 4 434 260 435 262 4 435 261 436 263 4 436 262 437 264 4 437 263 438 265 4 438 264 439 266 4 439 265 440 267 4 440 266 441 268 4 441 267 442 269 4 442 268 443 270 4 443 269 444 271 4 444 270 445 272 4 445 271 446 273 4 446 272 447 274 4 447 273 448 275 4 448 274 449 276 4 449 275 450 277 4 450 276 451 278 4 451 277 452 279 4 452 278 453 280 4 453 279 454 281 4 454 280 455 282 4 455 281 456 283 4 456 282 457 284 4 457 283 458 285 4 458 284 459 286 4 459 285 460 287 4 460 286 461 288 4 461 287 462 289 4 462 288 463 290 4 463 289 464 291 4 464 290 465 292 4 465 291 466 293 4 466 292 467 294 4 467 293 468 295 4 468 294 469 296 4 469 295 470 297 4 470 296 471 298 4 471 297 472 299 4 472 298 473 300 4 473 299 474 301 4 474 300 475 302 4 475 301 476 303 4 476 302 477 304 4 477 303 478 305 4 478 304 479 306 4 479 305 480 307 4 480 306 481 308 4 481 307 482 309 4 482 308 483 310 4 483 309 484 311 4 484 310 485 312 4 485 311 486 313 4 486 312 487 314 4 487 313 488 315 4 488 314 489 316 4 489 315 490 317 4 490 316 491 318 4 491 317 492 319 4 492 318 493 320 4 493 319 494 321 4 494 320 495 322 4 495 321 496 323 4 496 322 497 324 4 497 323 498 325 4 498 324 499 326 4 499 325 500 327 4 500 326 501 328 4 501 327 502 329 4 502 328 503 330 4 503 329 504 331 4 504 330 505 332 4 505 331 506 333 4 506 332 507 334 4 507 333 508 335 4 508 334 509 336 4 509 335 510 337 4 510 336 511 338 4 511 337 512 339 4 512 338 513 340 4 513 339 514 341 4 514 340 515 342 4 515 341 516 343 4 516 342 517 344 4 517 343 518 345 4 518 344 519 346 4 519 345 520 347 4 520 346 521 348 3 521 347 5 4 521 5 522 350 4 522 349 523 351 4 523 350 524 352 4 524 351 525 353 4 525 352 526 354 4 526 353 527 355 4 527 354 528 356 4 528 355 529 357 4 529 356 530 358 4 530 357 531 359 4 531 358 532 360 4 532 359 533 361 4 533 360 534 362 4 534 361 535 363 4 535 362 536 364 4 536 363 537 365 4 537 364 538 366 4 538 365 539 367 4 539 366 540 368 4 540 367 541 369 4 541 368 542 370 4 542 369 543 371 4 543 370 544 372 4 544 371 545 373 4 545 372 546 374 4 546 373 547 375 4 550 547 374 376 4 550 375 551 377 4 551 376 552 378 4 552 377 553 379 4 556 553 378 380 4 566 556 379 381 4 566 380 567 382 4 567 381 568 383 4 568 382 569 384 4 569 383 570 385 4 425 570 386 384 4 387 423 425 385 4 386 423 424 388 4 579 424 389 387 4 584 579 388 390 4 584 389 585 391 4 585 390 586 392 4 586 391 420 393 4 394 419 420 392 4 393 419 594 395 4 396 596 594 394 4 622 596 395 397 4 622 396 623 398 4 623 397 624 399 4 398 624 626 400 4 626 399 628 401 4 630 628 402 400 4 630 401 631 403 4 402 631 2097 404 4 405 649 2097 403 4 648 649 404 406 4 648 405 413 407 3 413 406 0 6 58 59 429 2218 2545 2841 6 72 73 2492 2493 1606 428 6 49 50 411 4521 4515 421 6 49 410 48 426 4514 4515 6 6 7 413 647 646 648 6 6 412 648 406 407 0 6 20 21 1171 3882 3128 3096 6 38 39 416 2194 2252 9704 6 38 415 37 2250 2251 2252 6 14 15 418 3088 3098 3099 6 14 417 13 3099 3100 3684 6 393 394 420 593 588 594 6 393 419 586 392 587 588 6 50 51 422 5237 4521 410 6 421 51 52 4650 9684 5237 6 386 387 424 425 577 575 6 423 387 577 578 579 388 6 386 423 572 570 385 575 6 47 48 427 411 4514 5612 6 47 426 46 5612 7500 9768 6 73 74 1603 1605 1606 409 6 58 408 430 57 2841 9690 6 56 57 429 9689 5380 9690 6 257 258 432 742 743 744 6 431 258 259 433 744 745 6 432 259 260 434 745 746 6 433 260 261 435 746 747 6 434 261 262 436 747 748 6 435 262 263 437 748 749 6 436 263 264 438 749 750 6 437 264 265 439 750 751 6 438 265 266 440 751 752 6 439 266 267 441 752 753 6 440 267 268 442 753 754 6 441 268 269 443 754 755 6 442 269 270 444 755 756 6 443 270 271 445 756 757 6 444 271 272 446 757 758 6 445 272 273 447 758 759 6 446 273 274 448 759 760 6 447 274 275 449 760 761 6 448 275 276 450 761 762 6 449 276 277 451 762 763 6 450 277 278 452 763 764 6 451 278 279 453 764 765 6 452 279 280 454 765 766 6 453 280 281 455 766 767 6 454 281 282 456 767 768 6 455 282 283 457 768 769 6 456 283 284 458 769 770 6 457 284 285 459 770 771 6 458 285 286 460 771 772 6 459 286 287 461 772 773 6 460 287 288 462 773 774 6 461 288 289 463 774 775 6 462 289 290 464 775 776 6 463 290 291 465 776 777 6 464 291 292 466 777 778 6 465 292 293 467 778 779 6 466 293 294 468 779 780 6 467 294 295 469 780 781 6 468 295 296 470 781 782 6 469 296 297 471 782 783 6 470 297 298 472 783 784 6 471 298 299 473 784 785 6 472 299 300 474 785 786 6 473 300 301 475 786 787 6 474 301 302 476 787 788 6 475 302 303 477 788 789 6 476 303 304 478 789 790 6 477 304 305 479 790 791 6 478 305 306 480 791 792 6 479 306 307 481 792 793 6 480 307 308 482 793 794 6 481 308 309 483 794 795 6 482 309 310 484 795 796 6 483 310 311 485 796 797 6 484 311 312 486 797 798 6 485 312 313 487 798 799 6 486 313 314 488 799 800 6 487 314 315 489 800 801 6 488 315 316 490 801 802 6 489 316 317 491 802 803 6 490 317 318 492 803 804 6 491 318 319 493 804 805 6 492 319 320 494 805 806 6 493 320 321 495 806 807 6 494 321 322 496 807 808 6 495 322 323 497 808 809 6 496 323 324 498 809 810 6 497 324 325 499 810 811 6 498 325 326 500 811 812 6 499 326 327 501 812 813 6 500 327 328 502 813 814 6 501 328 329 503 814 815 6 502 329 330 504 815 816 6 503 330 331 505 816 817 6 504 331 332 506 817 818 6 505 332 333 507 818 819 6 506 333 334 508 819 820 6 507 334 335 509 820 821 6 508 335 336 510 821 822 6 509 336 337 511 822 823 6 510 337 338 512 823 824 6 511 338 339 513 824 825 6 512 339 340 514 825 826 6 513 340 341 515 826 827 6 514 341 342 516 827 828 6 515 342 343 517 828 829 6 516 343 344 518 829 830 6 517 344 345 519 830 831 6 518 345 346 520 831 832 6 519 346 347 521 832 833 7 520 347 348 5 349 522 833 6 521 349 350 523 833 834 5 522 350 351 524 834 6 523 351 352 525 834 835 6 524 352 353 526 835 836 6 525 353 354 527 836 837 6 526 354 355 528 837 838 6 527 355 356 529 838 839 6 528 356 357 530 839 840 6 529 357 358 531 840 841 6 530 358 359 532 841 842 6 531 359 360 533 842 843 6 532 360 361 534 843 844 6 533 361 362 535 844 845 6 534 362 363 536 845 846 6 535 363 364 537 846 847 6 536 364 365 538 847 848 6 537 365 366 539 848 849 6 538 366 367 540 849 850 6 539 367 368 541 853 850 6 540 368 369 542 855 853 6 541 369 370 543 855 856 6 542 370 371 544 856 857 6 543 371 372 545 857 858 6 544 372 373 546 858 859 6 545 373 374 547 548 859 6 546 374 548 549 550 375 6 546 547 549 859 860 861 6 548 547 550 861 862 863 6 549 547 375 376 551 863 6 550 376 377 552 863 864 6 551 377 378 553 554 864 6 552 378 554 555 556 379 6 552 553 555 557 864 865 6 554 553 556 557 558 565 6 555 553 379 565 566 380 6 554 555 558 559 865 866 6 557 555 559 560 561 565 6 557 558 560 866 867 868 6 559 558 561 562 922 868 6 560 558 562 563 564 565 6 560 561 563 921 920 922 6 562 561 564 9743 921 9744 6 563 561 565 566 9744 567 6 564 561 558 555 556 566 6 565 556 380 381 567 564 6 566 381 382 568 9744 564 6 567 382 383 569 9744 9739 6 568 383 384 570 571 9739 6 569 384 571 572 425 385 6 569 570 572 573 9739 9740 6 571 570 425 573 574 575 6 571 572 574 9740 9741 916 6 573 572 575 576 916 915 6 574 572 425 576 577 423 6 574 575 577 915 2474 1515 6 576 575 423 424 578 1515 6 577 424 579 580 581 1515 6 578 424 388 580 584 389 6 578 579 581 582 583 584 6 578 580 582 1515 1516 1517 6 581 580 583 1517 1508 1506 6 582 580 584 585 589 1506 6 583 580 579 389 390 585 6 584 390 391 586 589 583 6 585 391 392 420 587 589 6 586 420 588 589 590 591 6 587 420 591 592 593 419 6 586 587 590 585 583 1506 6 589 587 591 1506 1507 1514 6 590 587 588 592 599 1514 6 591 588 593 597 598 599 6 592 588 419 594 595 597 6 593 419 394 595 596 395 6 593 594 596 597 621 606 6 595 594 621 622 396 395 6 593 595 592 598 605 606 6 592 597 599 600 604 605 6 592 598 600 601 1514 591 6 599 598 601 602 603 604 6 599 600 602 1513 1514 1539 6 601 600 603 1539 1540 1583 6 602 600 604 1602 1583 608 6 603 600 598 605 607 608 6 604 598 597 606 607 614 6 605 597 621 620 595 614 6 604 605 608 609 610 614 6 604 607 609 1602 603 1600 6 608 607 610 611 1599 1600 6 609 607 611 612 613 614 6 609 610 612 6557 1598 1599 6 611 610 613 615 3764 6557 6 612 610 614 615 616 620 6 613 610 620 606 605 607 6 612 613 616 617 3760 3764 6 615 613 617 618 619 620 6 615 616 618 3760 3761 625 6 617 616 619 623 624 625 6 618 616 620 621 623 622 6 619 616 613 614 621 606 6 619 620 606 595 596 622 6 621 596 396 397 623 619 6 622 397 398 624 618 619 6 623 398 618 625 626 399 6 618 624 626 627 3761 617 6 625 624 627 628 399 400 6 625 626 628 629 3761 3762 6 627 626 629 630 401 400 6 627 628 630 635 3762 632 6 629 628 401 402 631 632 6 630 402 632 633 403 2097 6 630 631 633 634 635 629 6 632 631 634 2097 650 641 6 632 633 635 636 637 641 6 632 634 636 3217 3762 629 6 635 634 637 638 3217 3218 6 636 634 638 639 640 641 6 636 637 639 3218 3219 3220 6 638 637 640 3220 3239 3240 6 639 637 641 642 643 3239 6 640 637 642 633 650 634 6 640 641 643 644 645 650 6 640 642 644 3237 3236 3239 6 643 642 645 646 647 3237 6 644 642 646 648 649 650 5 644 645 647 412 648 7 644 646 412 8 3238 3237 7 7 412 646 645 649 405 406 413 6 648 645 650 405 404 2097 6 649 645 633 2097 641 642 6 163 164 652 931 932 933 6 651 164 165 653 933 934 6 652 165 166 654 934 935 6 653 166 167 655 935 936 6 654 167 168 656 936 937 6 655 168 169 657 937 938 6 656 169 170 658 938 939 6 657 170 171 659 939 940 6 658 171 172 660 940 941 6 659 172 173 661 941 942 6 660 173 174 662 942 943 6 661 174 175 663 943 944 6 662 175 176 664 944 945 6 663 176 177 665 945 946 6 664 177 178 666 946 947 6 665 178 179 667 947 948 6 666 179 180 668 948 949 6 667 180 181 669 949 950 6 668 181 182 670 950 951 6 669 182 183 671 951 952 6 670 183 184 672 952 953 6 671 184 185 673 953 954 6 672 185 186 674 954 955 6 673 186 187 675 955 956 6 674 187 188 676 956 957 6 675 188 189 677 957 958 6 676 189 190 678 958 959 6 677 190 191 679 959 960 6 678 191 192 680 960 961 6 679 192 193 681 961 962 6 680 193 194 682 962 963 6 681 194 195 683 963 964 6 682 195 196 684 964 965 6 683 196 197 685 965 966 6 684 197 198 686 966 967 6 685 198 199 687 967 968 6 686 199 200 688 968 969 6 687 200 201 689 969 970 6 688 201 202 690 970 971 6 689 202 203 691 971 972 6 690 203 204 692 972 973 7 691 204 205 206 693 973 694 6 692 206 4 207 208 694 7 693 208 209 695 973 692 974 6 694 209 210 696 974 975 6 695 210 211 697 975 976 6 696 211 212 698 976 977 6 697 212 213 699 977 978 6 698 213 214 700 978 979 6 699 214 215 701 979 980 6 700 215 216 702 980 981 6 701 216 217 703 981 982 6 702 217 218 704 982 983 6 703 218 219 705 983 984 6 704 219 220 706 984 985 6 705 220 221 707 985 986 6 706 221 222 708 986 987 6 707 222 223 709 987 988 6 708 223 224 710 988 989 6 709 224 225 711 989 990 6 710 225 226 712 990 991 6 711 226 227 713 991 992 6 712 227 228 714 992 993 6 713 228 229 715 993 994 6 714 229 230 716 994 995 6 715 230 231 717 995 996 6 716 231 232 718 996 997 6 717 232 233 719 997 998 6 718 233 234 720 998 999 6 719 234 235 721 999 1000 6 720 235 236 722 1000 1001 6 721 236 237 723 1001 1002 6 722 237 238 724 1002 1003 6 723 238 239 725 1003 1004 6 724 239 240 726 1004 1005 6 725 240 241 727 1005 1006 6 726 241 242 728 1006 1007 6 727 242 243 729 1007 1008 6 728 243 244 730 1008 1009 6 729 244 245 731 1009 1010 6 730 245 246 732 1010 1011 6 731 246 247 733 1011 1012 6 732 247 248 734 1012 1013 6 733 248 249 735 1016 1013 6 734 249 250 736 1016 1017 6 735 250 251 737 1017 1018 6 736 251 252 738 1018 1019 6 737 252 253 739 1019 1020 6 738 253 254 740 1020 1021 6 739 254 255 741 1021 1022 6 740 255 256 742 1022 1023 6 741 256 257 431 743 1023 6 742 431 744 1023 1024 1025 6 743 431 432 745 1025 1026 6 744 432 433 746 1026 1027 6 745 433 434 747 1027 1028 6 746 434 435 748 1028 1029 6 747 435 436 749 1029 1030 6 748 436 437 750 1030 1031 6 749 437 438 751 1031 1032 6 750 438 439 752 1032 1033 6 751 439 440 753 1033 1034 6 752 440 441 754 1034 1035 6 753 441 442 755 1035 1036 6 754 442 443 756 1036 1037 6 755 443 444 757 1037 1038 6 756 444 445 758 1038 1039 6 757 445 446 759 1039 1040 6 758 446 447 760 1040 1041 6 759 447 448 761 1041 1042 6 760 448 449 762 1042 1043 6 761 449 450 763 1043 1044 6 762 450 451 764 1044 1045 6 763 451 452 765 1045 1046 6 764 452 453 766 1046 1047 6 765 453 454 767 1047 1048 6 766 454 455 768 1048 1049 6 767 455 456 769 1049 1050 6 768 456 457 770 1050 1051 6 769 457 458 771 1051 1052 6 770 458 459 772 1052 1053 6 771 459 460 773 1053 1054 6 772 460 461 774 1054 1055 6 773 461 462 775 1055 1056 6 774 462 463 776 1056 1057 6 775 463 464 777 1057 1058 6 776 464 465 778 1058 1059 6 777 465 466 779 1059 1060 6 778 466 467 780 1060 1061 6 779 467 468 781 1061 1062 6 780 468 469 782 1062 1063 6 781 469 470 783 1063 1064 6 782 470 471 784 1064 1065 6 783 471 472 785 1065 1066 6 784 472 473 786 1066 1067 6 785 473 474 787 1067 1068 6 786 474 475 788 1068 1069 6 787 475 476 789 1069 1070 6 788 476 477 790 1070 1071 6 789 477 478 791 1071 1072 6 790 478 479 792 1072 1073 6 791 479 480 793 1073 1074 6 792 480 481 794 1074 1075 6 793 481 482 795 1075 1076 6 794 482 483 796 1076 1077 6 795 483 484 797 1077 1078 6 796 484 485 798 1078 1079 6 797 485 486 799 1079 1080 6 798 486 487 800 1080 1081 6 799 487 488 801 1081 1082 6 800 488 489 802 1082 1083 6 801 489 490 803 1083 1084 6 802 490 491 804 1084 1085 6 803 491 492 805 1085 1086 6 804 492 493 806 1086 1087 6 805 493 494 807 1087 1088 6 806 494 495 808 1088 1089 6 807 495 496 809 1089 1090 6 808 496 497 810 1090 1091 6 809 497 498 811 1091 1092 6 810 498 499 812 1092 1093 6 811 499 500 813 1093 1094 6 812 500 501 814 1094 1095 6 813 501 502 815 1095 1096 6 814 502 503 816 1096 1097 6 815 503 504 817 1097 1098 6 816 504 505 818 1098 1099 6 817 505 506 819 1099 1100 6 818 506 507 820 1100 1101 6 819 507 508 821 1101 1102 6 820 508 509 822 1102 1103 6 821 509 510 823 1103 1104 6 822 510 511 824 1104 1105 6 823 511 512 825 1105 1106 6 824 512 513 826 1106 1107 6 825 513 514 827 1107 1108 6 826 514 515 828 1108 1109 6 827 515 516 829 1109 1110 6 828 516 517 830 1110 1111 6 829 517 518 831 1111 1112 6 830 518 519 832 1112 1113 6 831 519 520 833 1113 1114 6 832 520 521 522 834 1114 6 833 522 523 524 835 1114 7 834 524 525 836 1114 1115 1116 6 835 525 526 837 1116 1117 6 836 526 527 838 1117 1118 6 837 527 528 839 1118 1119 6 838 528 529 840 1119 1120 6 839 529 530 841 1120 1121 6 840 530 531 842 1121 1122 6 841 531 532 843 1122 1123 6 842 532 533 844 1123 1124 6 843 533 534 845 1124 1125 6 844 534 535 846 1125 1126 6 845 535 536 847 1126 1127 6 846 536 537 848 1127 1128 6 847 537 538 849 1128 1129 6 848 538 539 850 851 1129 6 849 539 851 852 853 540 6 849 850 852 1129 1130 1131 6 851 850 853 854 1131 1132 6 852 850 854 855 541 540 6 852 853 855 1132 1133 1134 6 854 853 541 542 856 1134 6 855 542 543 857 1134 1135 6 856 543 544 858 1135 1136 6 857 544 545 859 1136 1137 6 858 545 546 548 860 1137 6 859 548 861 1137 1138 1139 6 860 548 549 862 1139 1140 6 861 549 863 1140 1141 1142 6 862 549 550 551 864 1142 6 863 551 552 554 865 1142 6 864 554 557 866 1142 1143 6 865 557 559 867 1143 1144 6 866 559 868 869 1144 1145 6 867 559 869 870 922 560 6 867 868 870 871 1145 1146 6 869 868 871 872 873 922 6 869 870 872 1146 1147 1148 6 871 870 873 874 1151 1148 6 872 870 874 875 922 920 6 872 873 875 876 1170 1151 6 874 873 876 877 919 920 6 874 875 877 878 879 1170 6 876 875 878 918 882 919 6 876 877 879 880 881 882 6 876 878 880 884 886 1170 6 879 878 881 884 885 891 6 880 878 882 883 891 892 6 881 878 883 917 918 877 6 881 882 912 892 913 917 6 879 880 885 886 887 888 6 884 880 888 889 890 891 6 879 884 887 1964 1169 1170 6 886 884 888 1965 1964 2075 6 887 884 885 889 2075 2076 6 888 885 890 2076 2077 2081 6 889 885 891 893 894 2081 6 890 885 880 881 892 893 6 891 881 893 896 912 883 6 891 892 890 894 895 896 6 890 893 895 897 898 2081 6 894 893 896 897 909 910 6 895 893 892 910 911 912 6 894 895 898 899 900 909 6 894 897 899 901 2081 2080 6 898 897 900 901 902 906 6 899 897 906 907 908 909 6 898 899 902 903 2080 2082 6 901 899 903 904 905 906 6 901 902 904 2082 2083 2084 6 903 902 905 2084 2085 1565 6 904 902 906 1563 1564 1565 6 905 902 899 900 907 1563 6 906 900 908 1543 1563 1536 6 907 900 909 1522 1523 1536 6 908 900 897 895 910 1522 6 909 895 896 911 1520 1522 6 910 896 912 1521 1520 914 6 911 896 892 883 913 914 6 912 883 914 915 916 917 6 912 913 915 2474 1521 911 6 914 913 916 574 576 2474 6 915 913 917 9741 573 574 6 916 913 883 882 918 9741 6 917 882 877 919 9742 9741 6 918 877 875 920 921 9742 6 919 875 921 562 922 873 6 919 920 562 9743 9742 563 6 562 920 873 870 868 560 6 154 155 924 1248 1249 1250 6 923 155 156 925 1250 1251 6 924 156 157 926 1251 1252 6 925 157 158 927 1252 1253 6 926 158 159 928 1253 1254 6 927 159 160 929 1254 1255 6 928 160 161 930 1255 1256 6 929 161 162 931 1256 1257 6 930 162 163 651 932 1257 6 931 651 933 1257 1258 1259 6 932 651 652 934 1259 1260 6 933 652 653 935 1260 1261 6 934 653 654 936 1261 1262 6 935 654 655 937 1262 1263 6 936 655 656 938 1263 1264 6 937 656 657 939 1264 1265 6 938 657 658 940 1265 1266 6 939 658 659 941 1266 1267 6 940 659 660 942 1267 1268 6 941 660 661 943 1268 1269 6 942 661 662 944 1269 1270 6 943 662 663 945 1270 1271 6 944 663 664 946 1271 1272 6 945 664 665 947 1272 1273 6 946 665 666 948 1273 1274 6 947 666 667 949 1274 1275 6 948 667 668 950 1275 1276 6 949 668 669 951 1276 1277 6 950 669 670 952 1277 1278 6 951 670 671 953 1278 1279 6 952 671 672 954 1279 1280 6 953 672 673 955 1280 1281 6 954 673 674 956 1281 1282 6 955 674 675 957 1282 1283 6 956 675 676 958 1283 1284 6 957 676 677 959 1284 1285 6 958 677 678 960 1285 1286 6 959 678 679 961 1286 1287 6 960 679 680 962 1287 1288 6 961 680 681 963 1288 1289 6 962 681 682 964 1289 1290 6 963 682 683 965 1290 1291 6 964 683 684 966 1291 1292 6 965 684 685 967 1292 1293 6 966 685 686 968 1293 1294 6 967 686 687 969 1294 1295 6 968 687 688 970 1295 1296 6 969 688 689 971 1296 1297 6 970 689 690 972 1297 1298 6 971 690 691 973 1298 1299 6 972 691 692 694 974 1299 5 973 694 695 975 1299 6 974 695 696 976 1299 1300 6 975 696 697 977 1300 1301 6 976 697 698 978 1301 1302 6 977 698 699 979 1302 1303 6 978 699 700 980 1303 1304 6 979 700 701 981 1304 1305 6 980 701 702 982 1305 1306 6 981 702 703 983 1306 1307 6 982 703 704 984 1307 1308 6 983 704 705 985 1308 1309 6 984 705 706 986 1309 1310 6 985 706 707 987 1310 1311 6 986 707 708 988 1311 1312 6 987 708 709 989 1312 1313 6 988 709 710 990 1313 1314 6 989 710 711 991 1314 1315 6 990 711 712 992 1315 1316 6 991 712 713 993 1316 1317 6 992 713 714 994 1317 1318 6 993 714 715 995 1318 1319 6 994 715 716 996 1319 1320 6 995 716 717 997 1320 1321 6 996 717 718 998 1321 1322 6 997 718 719 999 1322 1323 6 998 719 720 1000 1323 1324 6 999 720 721 1001 1324 1325 6 1000 721 722 1002 1325 1326 6 1001 722 723 1003 1326 1327 6 1002 723 724 1004 1327 1328 6 1003 724 725 1005 1328 1329 6 1004 725 726 1006 1329 1330 6 1005 726 727 1007 1330 1331 6 1006 727 728 1008 1331 1332 6 1007 728 729 1009 1332 1333 6 1008 729 730 1010 1333 1334 6 1009 730 731 1011 1334 1335 6 1010 731 732 1012 1335 1336 6 1011 732 733 1013 1014 1336 6 1012 733 1014 1015 1016 734 6 1012 1013 1015 1336 1337 1338 6 1014 1013 1016 1338 1339 1340 6 1015 1013 734 735 1017 1340 6 1016 735 736 1018 1340 1341 6 1017 736 737 1019 1341 1342 6 1018 737 738 1020 1342 1343 6 1019 738 739 1021 1343 1344 6 1020 739 740 1022 1344 1345 6 1021 740 741 1023 1345 1346 6 1022 741 742 743 1024 1346 6 1023 743 1025 1346 1347 1348 6 1024 743 744 1026 1348 1349 6 1025 744 745 1027 1349 1350 6 1026 745 746 1028 1350 1351 6 1027 746 747 1029 1351 1352 6 1028 747 748 1030 1352 1353 6 1029 748 749 1031 1353 1354 6 1030 749 750 1032 1354 1355 6 1031 750 751 1033 1355 1356 6 1032 751 752 1034 1356 1357 6 1033 752 753 1035 1357 1358 6 1034 753 754 1036 1358 1359 6 1035 754 755 1037 1359 1360 6 1036 755 756 1038 1360 1361 6 1037 756 757 1039 1361 1362 6 1038 757 758 1040 1362 1363 6 1039 758 759 1041 1363 1364 6 1040 759 760 1042 1364 1365 6 1041 760 761 1043 1365 1366 6 1042 761 762 1044 1366 1367 6 1043 762 763 1045 1367 1368 6 1044 763 764 1046 1368 1369 6 1045 764 765 1047 1369 1370 6 1046 765 766 1048 1370 1371 6 1047 766 767 1049 1371 1372 6 1048 767 768 1050 1372 1373 6 1049 768 769 1051 1373 1374 6 1050 769 770 1052 1374 1375 6 1051 770 771 1053 1375 1376 6 1052 771 772 1054 1376 1377 6 1053 772 773 1055 1377 1378 6 1054 773 774 1056 1378 1379 6 1055 774 775 1057 1379 1380 6 1056 775 776 1058 1380 1381 6 1057 776 777 1059 1381 1382 6 1058 777 778 1060 1382 1383 6 1059 778 779 1061 1383 1384 6 1060 779 780 1062 1384 1385 6 1061 780 781 1063 1385 1386 6 1062 781 782 1064 1386 1387 6 1063 782 783 1065 1387 1388 6 1064 783 784 1066 1388 1389 6 1065 784 785 1067 1389 1390 6 1066 785 786 1068 1390 1391 6 1067 786 787 1069 1391 1392 6 1068 787 788 1070 1392 1393 6 1069 788 789 1071 1393 1394 6 1070 789 790 1072 1394 1395 6 1071 790 791 1073 1395 1396 6 1072 791 792 1074 1396 1397 6 1073 792 793 1075 1397 1398 6 1074 793 794 1076 1398 1399 6 1075 794 795 1077 1399 1400 6 1076 795 796 1078 1400 1401 6 1077 796 797 1079 1401 1402 6 1078 797 798 1080 1402 1403 6 1079 798 799 1081 1403 1404 6 1080 799 800 1082 1404 1405 6 1081 800 801 1083 1405 1406 6 1082 801 802 1084 1406 1407 6 1083 802 803 1085 1407 1408 6 1084 803 804 1086 1408 1409 6 1085 804 805 1087 1409 1410 6 1086 805 806 1088 1410 1411 6 1087 806 807 1089 1411 1412 6 1088 807 808 1090 1412 1413 6 1089 808 809 1091 1413 1414 6 1090 809 810 1092 1414 1415 6 1091 810 811 1093 1415 1416 6 1092 811 812 1094 1416 1417 6 1093 812 813 1095 1417 1418 6 1094 813 814 1096 1418 1419 6 1095 814 815 1097 1419 1420 6 1096 815 816 1098 1420 1421 6 1097 816 817 1099 1421 1422 6 1098 817 818 1100 1422 1423 6 1099 818 819 1101 1423 1424 6 1100 819 820 1102 1424 1425 6 1101 820 821 1103 1425 1426 6 1102 821 822 1104 1426 1427 6 1103 822 823 1105 1427 1428 6 1104 823 824 1106 1428 1429 6 1105 824 825 1107 1429 1430 6 1106 825 826 1108 1430 1431 6 1107 826 827 1109 1431 1432 6 1108 827 828 1110 1432 1433 6 1109 828 829 1111 1433 1434 6 1110 829 830 1112 1434 1435 6 1111 830 831 1113 1435 1436 6 1112 831 832 1114 1436 1115 6 1113 832 833 834 835 1115 6 1114 835 1116 1436 1113 1437 5 1115 835 836 1117 1437 6 1116 836 837 1118 1437 1438 6 1117 837 838 1119 1438 1439 6 1118 838 839 1120 1439 1440 6 1119 839 840 1121 1440 1441 6 1120 840 841 1122 1441 1442 6 1121 841 842 1123 1442 1443 6 1122 842 843 1124 1443 1444 6 1123 843 844 1125 1444 1445 6 1124 844 845 1126 1445 1446 6 1125 845 846 1127 1446 1447 6 1126 846 847 1128 1447 1448 6 1127 847 848 1129 1448 1449 6 1128 848 849 851 1130 1449 6 1129 851 1131 1449 1450 1451 6 1130 851 852 1132 1451 1452 6 1131 852 854 1133 1452 1453 6 1132 854 1134 1456 1453 1152 6 1133 854 855 856 1135 1152 6 1134 856 857 1136 1152 1153 6 1135 857 858 1137 1153 1154 6 1136 858 859 860 1138 1154 6 1137 860 1139 1154 1155 1156 6 1138 860 861 1140 1156 1157 6 1139 861 862 1141 1157 1158 6 1140 862 1142 1158 1159 1143 6 1141 862 863 864 865 1143 6 1142 865 866 1144 1159 1141 6 1143 866 867 1145 1498 1159 6 1144 867 869 1146 1498 1499 6 1145 869 871 1147 1164 1499 6 1146 871 1148 1149 1164 1165 6 1147 871 1149 1150 1151 872 6 1147 1148 1150 1165 1166 1167 6 1149 1148 1151 1167 1168 1169 6 1150 1148 872 1169 1170 874 6 1134 1135 1153 1473 1456 1133 6 1152 1135 1136 1154 1473 1490 6 1153 1136 1137 1138 1155 1490 6 1154 1138 1156 1490 1491 1492 6 1155 1138 1139 1157 1492 1493 6 1156 1139 1140 1158 1493 1494 6 1157 1140 1141 1159 1497 1494 6 1158 1141 1143 1144 1498 1497 6 85 86 1161 1483 1484 1488 6 1160 86 87 1162 1174 1488 6 1161 87 88 1163 1174 1175 6 1162 88 89 1175 1177 1186 6 1146 1147 1165 1499 1527 1528 6 1164 1147 1149 1166 1528 1533 6 1165 1149 1167 1535 1533 1541 6 1166 1149 1150 1168 1541 1962 6 1167 1150 1169 1962 1963 1964 6 1168 1150 1151 1170 886 1964 6 1169 1151 874 886 879 876 6 414 21 22 1172 3337 3882 6 1171 22 23 1173 1524 3337 6 1172 23 24 1524 1525 1526 6 1161 1162 1175 1176 1488 1489 6 1174 1162 1176 1163 1177 1178 6 1174 1175 1489 1642 1643 1178 6 1175 1163 1178 1179 1186 1183 6 1175 1177 1179 1180 1643 1176 6 1178 1177 1180 1181 1182 1183 6 1178 1179 1181 1643 1644 1645 6 1180 1179 1182 1645 1646 1647 6 1181 1179 1183 1184 3097 1647 6 1182 1179 1184 1185 1186 1177 6 1182 1183 1185 3097 2241 1187 6 1184 1183 1186 90 91 1187 6 1185 1183 1177 1163 89 90 6 1185 91 92 1188 2241 1184 6 1187 92 93 1189 2241 1659 6 1188 93 94 1190 1660 1659 6 1189 94 95 1191 1662 1660 6 1190 95 96 1192 1670 1662 6 1191 96 97 1193 1670 1671 6 1192 97 98 1194 1671 1672 6 1193 98 99 1195 1672 1673 6 1194 99 100 1196 1673 1674 6 1195 100 101 1197 1674 1675 6 1196 101 102 1198 1500 1675 6 1197 102 103 1199 1457 1500 6 1198 103 104 1200 1457 1458 6 1199 104 105 1201 1458 1459 6 1200 105 106 1202 1459 1460 6 1201 106 107 1203 1460 1685 6 1202 107 108 1204 1687 1685 6 1203 108 109 1205 1687 1688 6 1204 109 110 1206 1688 1689 6 1205 110 111 1207 1689 1690 6 1206 111 112 1208 1693 1690 6 1207 112 113 1209 1693 1694 6 1208 113 114 1210 1694 1695 6 1209 114 115 1211 1556 1695 6 1210 115 116 1212 1546 1556 6 1211 116 117 1213 1546 1547 6 1212 117 118 1214 1547 1548 6 1213 118 119 1215 1548 1549 6 1214 119 120 1216 1549 1550 6 1215 120 121 1217 1553 1550 6 1216 121 122 1218 1555 1553 6 1217 122 123 1219 1716 1555 6 1218 123 124 1220 1716 1717 6 1219 124 125 1221 1717 1718 6 1220 125 126 1222 1718 1719 6 1221 126 127 1223 1719 1720 6 1222 127 128 1224 1720 1721 6 1223 128 129 1225 1721 1722 6 1224 129 130 1226 1722 1723 6 1225 130 131 1227 1726 1723 6 1226 131 132 1228 1726 1727 6 1227 132 133 1229 1727 1728 6 1228 133 134 1230 1728 1729 6 1229 134 135 1231 1729 1730 6 1230 135 136 1232 1733 1730 6 1231 136 137 1233 1733 1734 6 1232 137 138 1234 1734 1735 6 1233 138 139 1235 1735 1736 6 1234 139 140 1236 1736 1737 6 1235 140 141 1237 1737 1738 6 1236 141 142 1238 1738 1739 6 1237 142 143 1239 1739 1740 6 1238 143 144 1240 1740 1741 6 1239 144 145 1241 1741 1742 6 1240 145 146 1242 1742 1743 7 1241 146 147 3 148 1243 1743 5 1242 148 149 1244 1743 6 1243 149 150 1245 1743 1744 6 1244 150 151 1246 1744 1745 6 1245 151 152 1247 1745 1746 6 1246 152 153 1248 1746 1747 6 1247 153 154 923 1249 1747 6 1248 923 1250 1747 1748 1749 6 1249 923 924 1251 1749 1750 6 1250 924 925 1252 1750 1751 6 1251 925 926 1253 1751 1752 6 1252 926 927 1254 1752 1753 6 1253 927 928 1255 1753 1754 6 1254 928 929 1256 1754 1755 6 1255 929 930 1257 1755 1756 6 1256 930 931 932 1258 1756 6 1257 932 1259 1756 1757 1758 6 1258 932 933 1260 1758 1759 6 1259 933 934 1261 1759 1760 6 1260 934 935 1262 1760 1761 6 1261 935 936 1263 1761 1762 6 1262 936 937 1264 1762 1763 6 1263 937 938 1265 1763 1764 6 1264 938 939 1266 1764 1765 6 1265 939 940 1267 1765 1766 6 1266 940 941 1268 1766 1767 6 1267 941 942 1269 1767 1768 6 1268 942 943 1270 1768 1769 6 1269 943 944 1271 1769 1770 6 1270 944 945 1272 1770 1771 6 1271 945 946 1273 1771 1772 6 1272 946 947 1274 1772 1773 6 1273 947 948 1275 1773 1774 6 1274 948 949 1276 1774 1775 6 1275 949 950 1277 1775 1776 6 1276 950 951 1278 1776 1777 6 1277 951 952 1279 1777 1778 6 1278 952 953 1280 1778 1779 6 1279 953 954 1281 1779 1780 6 1280 954 955 1282 1780 1781 6 1281 955 956 1283 1781 1782 6 1282 956 957 1284 1782 1783 6 1283 957 958 1285 1783 1784 6 1284 958 959 1286 1784 1785 6 1285 959 960 1287 1785 1786 6 1286 960 961 1288 1786 1787 6 1287 961 962 1289 1787 1788 6 1288 962 963 1290 1788 1789 6 1289 963 964 1291 1789 1790 6 1290 964 965 1292 1790 1791 6 1291 965 966 1293 1791 1792 6 1292 966 967 1294 1792 1793 6 1293 967 968 1295 1793 1794 6 1294 968 969 1296 1794 1795 6 1295 969 970 1297 1795 1796 6 1296 970 971 1298 1796 1797 6 1297 971 972 1299 1797 1300 6 1298 972 973 974 975 1300 7 1299 975 976 1301 1797 1298 2100 6 1300 976 977 1302 2100 2101 6 1301 977 978 1303 2101 2102 6 1302 978 979 1304 2102 2103 6 1303 979 980 1305 2103 2104 6 1304 980 981 1306 2104 2105 6 1305 981 982 1307 2105 2106 6 1306 982 983 1308 1798 2106 6 1307 983 984 1309 1798 1799 6 1308 984 985 1310 1799 1800 6 1309 985 986 1311 1800 1801 6 1310 986 987 1312 1801 1802 6 1311 987 988 1313 1802 1803 6 1312 988 989 1314 1803 1804 6 1313 989 990 1315 1804 1805 6 1314 990 991 1316 1805 1806 6 1315 991 992 1317 1806 1807 6 1316 992 993 1318 1807 1808 6 1317 993 994 1319 1808 1809 6 1318 994 995 1320 1809 1810 6 1319 995 996 1321 1810 1811 6 1320 996 997 1322 1811 1812 6 1321 997 998 1323 1812 1813 6 1322 998 999 1324 1813 1814 6 1323 999 1000 1325 1814 1815 6 1324 1000 1001 1326 1815 1816 6 1325 1001 1002 1327 1816 1817 6 1326 1002 1003 1328 1817 1818 6 1327 1003 1004 1329 1818 1819 6 1328 1004 1005 1330 1819 1820 6 1329 1005 1006 1331 1820 1821 6 1330 1006 1007 1332 1821 1822 6 1331 1007 1008 1333 1822 1823 6 1332 1008 1009 1334 1823 1824 6 1333 1009 1010 1335 1824 1825 6 1334 1010 1011 1336 1825 1826 6 1335 1011 1012 1014 1337 1826 6 1336 1014 1338 1826 1827 1828 6 1337 1014 1015 1339 1828 1829 6 1338 1015 1340 1829 1830 1831 6 1339 1015 1016 1017 1341 1831 6 1340 1017 1018 1342 1831 1832 6 1341 1018 1019 1343 1832 1833 6 1342 1019 1020 1344 1833 1834 6 1343 1020 1021 1345 1834 1835 6 1344 1021 1022 1346 1835 1836 6 1345 1022 1023 1024 1347 1836 6 1346 1024 1348 1836 1837 1838 6 1347 1024 1025 1349 1838 1839 6 1348 1025 1026 1350 1839 1840 6 1349 1026 1027 1351 1840 1841 6 1350 1027 1028 1352 1841 1842 6 1351 1028 1029 1353 1842 1843 6 1352 1029 1030 1354 1843 1844 6 1353 1030 1031 1355 1844 1845 6 1354 1031 1032 1356 1845 1846 6 1355 1032 1033 1357 1846 1847 6 1356 1033 1034 1358 1847 1848 6 1357 1034 1035 1359 1848 1849 6 1358 1035 1036 1360 1849 1850 6 1359 1036 1037 1361 1850 1851 6 1360 1037 1038 1362 1851 1852 6 1361 1038 1039 1363 1852 1853 6 1362 1039 1040 1364 1853 1854 6 1363 1040 1041 1365 1854 1855 6 1364 1041 1042 1366 1855 1856 6 1365 1042 1043 1367 1856 1857 6 1366 1043 1044 1368 1857 1858 6 1367 1044 1045 1369 1858 1859 6 1368 1045 1046 1370 1859 1860 6 1369 1046 1047 1371 1860 1861 6 1370 1047 1048 1372 1861 1862 6 1371 1048 1049 1373 1862 1863 6 1372 1049 1050 1374 1863 1864 6 1373 1050 1051 1375 1864 1865 6 1374 1051 1052 1376 1865 1866 6 1375 1052 1053 1377 1866 1867 6 1376 1053 1054 1378 1867 1868 6 1377 1054 1055 1379 1868 1869 6 1378 1055 1056 1380 1869 1870 6 1379 1056 1057 1381 1870 1871 6 1380 1057 1058 1382 1871 1872 6 1381 1058 1059 1383 1872 1873 6 1382 1059 1060 1384 1873 1874 6 1383 1060 1061 1385 1874 1875 6 1384 1061 1062 1386 1875 1876 6 1385 1062 1063 1387 1876 1877 6 1386 1063 1064 1388 1877 1878 6 1387 1064 1065 1389 1878 1879 6 1388 1065 1066 1390 1879 1880 6 1389 1066 1067 1391 1880 1881 6 1390 1067 1068 1392 1881 1882 6 1391 1068 1069 1393 1882 1883 6 1392 1069 1070 1394 1883 1884 6 1393 1070 1071 1395 1884 1885 6 1394 1071 1072 1396 1885 1886 6 1395 1072 1073 1397 1886 1887 6 1396 1073 1074 1398 1887 1888 6 1397 1074 1075 1399 1888 1889 6 1398 1075 1076 1400 1889 1890 6 1399 1076 1077 1401 1890 1891 6 1400 1077 1078 1402 1891 1892 6 1401 1078 1079 1403 1892 1893 6 1402 1079 1080 1404 1893 1894 6 1403 1080 1081 1405 1894 1895 6 1404 1081 1082 1406 1895 1896 6 1405 1082 1083 1407 1896 1897 6 1406 1083 1084 1408 1897 1898 6 1407 1084 1085 1409 1898 1899 6 1408 1085 1086 1410 1899 1900 6 1409 1086 1087 1411 1900 1901 6 1410 1087 1088 1412 1901 1902 6 1411 1088 1089 1413 1902 1903 6 1412 1089 1090 1414 1903 1904 6 1413 1090 1091 1415 1904 1905 6 1414 1091 1092 1416 1905 1906 6 1415 1092 1093 1417 1906 1907 6 1416 1093 1094 1418 1907 1908 6 1417 1094 1095 1419 1908 1909 6 1418 1095 1096 1420 1909 1910 6 1419 1096 1097 1421 1910 1911 6 1420 1097 1098 1422 1911 1912 6 1421 1098 1099 1423 1912 1913 6 1422 1099 1100 1424 1913 1914 6 1423 1100 1101 1425 1914 1915 6 1424 1101 1102 1426 1915 1916 6 1425 1102 1103 1427 1916 1917 6 1426 1103 1104 1428 1917 1918 6 1427 1104 1105 1429 1918 1919 6 1428 1105 1106 1430 1919 1920 6 1429 1106 1107 1431 1920 1921 6 1430 1107 1108 1432 1921 1922 6 1431 1108 1109 1433 1922 1923 6 1432 1109 1110 1434 1923 1924 6 1433 1110 1111 1435 1924 1925 6 1434 1111 1112 1436 1925 1926 6 1435 1112 1113 1115 1437 1926 6 1436 1115 1116 1117 1438 1926 6 1437 1117 1118 1439 1926 1927 6 1438 1118 1119 1440 1927 1928 6 1439 1119 1120 1441 1928 1929 6 1440 1120 1121 1442 1929 1930 6 1441 1121 1122 1443 1930 1931 6 1442 1122 1123 1444 1931 1932 6 1443 1123 1124 1445 1461 1932 6 1444 1124 1125 1446 1461 1462 6 1445 1125 1126 1447 1462 1463 6 1446 1126 1127 1448 1463 1464 6 1447 1127 1128 1449 1464 1465 6 1448 1128 1129 1130 1450 1465 6 1449 1130 1451 1465 1466 1467 6 1450 1130 1131 1452 1467 1468 6 1451 1131 1132 1453 1454 1468 6 1452 1132 1454 1455 1456 1133 6 1452 1453 1455 1468 1469 1470 6 1454 1453 1456 1470 1471 1472 6 1455 1453 1133 1472 1473 1152 6 1198 1199 1458 1500 1501 1679 6 1457 1199 1200 1459 1679 1680 6 1458 1200 1201 1460 1680 1681 6 1459 1201 1202 1681 1684 1685 6 1444 1445 1462 1932 1933 1934 6 1461 1445 1446 1463 1934 1935 6 1462 1446 1447 1464 1935 1936 6 1463 1447 1448 1465 1936 1937 6 1464 1448 1449 1450 1466 1937 6 1465 1450 1467 1937 1938 1939 6 1466 1450 1451 1468 1939 1940 6 1467 1451 1452 1454 1469 1940 6 1468 1454 1470 1940 1941 1942 6 1469 1454 1455 1471 1942 1943 6 1470 1455 1472 1943 1944 1945 6 1471 1455 1456 1473 1945 1946 6 1472 1456 1152 1153 1490 1946 7 76 2 1475 1608 1604 1609 1618 6 1474 2 77 1476 1620 1618 6 1475 77 78 1477 1620 1621 6 1476 78 79 1478 1621 1622 6 1477 79 80 1479 1630 1622 6 1478 80 81 1480 1630 1631 6 1479 81 82 1481 1631 1632 6 1480 82 83 1482 1635 1632 6 1481 83 84 1483 1485 1635 6 1482 84 85 1160 1484 1485 6 1483 1160 1485 1486 1487 1488 6 1483 1484 1486 1502 1635 1482 6 1485 1484 1487 1502 1503 1504 6 1486 1484 1488 1504 1505 1489 6 1487 1484 1160 1161 1174 1489 6 1488 1174 1176 1505 1487 1642 6 1473 1153 1154 1155 1491 1946 6 1490 1155 1492 1946 1947 1948 6 1491 1155 1156 1493 1948 1949 6 1492 1156 1157 1494 1495 1949 6 1493 1157 1495 1496 1497 1158 6 1493 1494 1496 1951 1949 1952 6 1495 1494 1497 1952 1530 1529 6 1496 1494 1158 1159 1498 1529 6 1144 1145 1499 1159 1497 1529 6 1498 1145 1146 1164 1527 1529 6 1197 1198 1457 1501 1675 1676 6 1500 1457 1676 1677 1678 1679 6 1485 1486 1503 1637 1634 1635 6 1502 1486 1504 1637 1638 1639 6 1503 1486 1487 1505 1639 1640 6 1504 1487 1489 1640 1641 1642 6 583 589 590 1507 1508 582 6 1506 590 1508 1509 1513 1514 6 1506 1507 1509 1510 1517 582 6 1508 1507 1510 1511 1512 1513 6 1508 1509 1511 1517 1518 1519 6 1510 1509 1512 1523 1519 1537 6 1511 1509 1513 1537 1538 1539 6 1512 1509 1507 1514 601 1539 6 1513 1507 601 599 591 590 6 577 578 581 1516 2474 576 6 1515 581 1517 1518 1521 2474 6 1516 581 582 1508 1510 1518 6 1517 1510 1519 1520 1521 1516 6 1518 1510 1520 1522 1523 1511 6 1518 1519 1521 911 910 1522 6 1518 1520 911 1516 2474 914 6 910 1520 1519 1523 908 909 6 1522 1519 1511 908 1536 1537 6 1172 1173 1525 3337 3338 4250 6 1524 1173 1526 3130 2205 4250 6 1525 1173 24 25 3130 9781 6 1499 1164 1528 1529 1530 1531 6 1527 1164 1165 1531 1532 1533 6 1497 1498 1499 1527 1530 1496 6 1529 1527 1531 1952 1496 1953 6 1530 1527 1528 1532 1953 1954 6 1531 1528 1533 1534 1954 1955 6 1532 1528 1534 1535 1166 1165 6 1532 1533 1535 1955 1956 1957 6 1534 1533 1166 1541 1960 1957 6 908 1523 1537 1542 1543 907 6 1536 1523 1511 1512 1538 1542 6 1537 1512 1539 1540 1545 1542 6 1538 1512 1513 601 602 1540 6 1539 602 1538 1582 1545 1583 6 1535 1166 1167 1960 1961 1962 6 1536 1537 1543 1544 1545 1538 6 1536 1542 1544 1562 1563 907 6 1543 1542 1545 1562 1580 1577 6 1544 1542 1538 1582 1580 1540 6 1211 1212 1547 1556 1557 1558 6 1546 1212 1213 1548 1561 1558 6 1547 1213 1214 1549 1710 1561 6 1548 1214 1215 1550 1551 1710 6 1549 1215 1551 1552 1553 1216 6 1549 1550 1552 1710 1711 1712 6 1551 1550 1553 1554 1712 1713 6 1552 1550 1554 1555 1217 1216 6 1552 1553 1555 1713 1714 1715 6 1554 1553 1217 1715 1716 1218 6 1210 1211 1546 1557 1695 1696 6 1556 1546 1558 1559 1696 1697 6 1557 1546 1559 1560 1561 1547 6 1557 1558 1560 1697 1698 1699 6 1559 1558 1561 1699 1700 1709 6 1560 1558 1547 1709 1710 1548 6 1543 1544 1563 1564 1576 1577 6 1543 1562 1564 905 907 906 6 1563 1562 905 1565 1566 1576 6 905 1564 1566 1567 2085 904 6 1565 1564 1567 1568 1569 1576 6 1565 1566 1568 2085 3766 3767 6 1567 1566 1569 1570 1571 3767 6 1568 1566 1570 1574 1575 1576 6 1568 1569 1571 1572 1573 1574 7 1568 1570 1572 3769 3767 6317 6319 5 1571 1570 1573 6319 6320 7 1572 1570 1574 6320 6361 6360 2475 6 1573 1570 1569 1575 1578 2475 6 1574 1569 1576 1577 1578 1579 6 1575 1569 1566 1564 1562 1577 6 1576 1562 1575 1579 1580 1544 6 1574 1575 1579 1586 1587 2475 6 1578 1575 1577 1580 1581 1586 6 1579 1577 1544 1581 1582 1545 6 1579 1580 1582 1584 1585 1586 6 1581 1580 1545 1540 1583 1584 6 1582 1540 1584 1602 603 602 6 1582 1583 1581 1585 1601 1602 6 1581 1584 1586 1591 1588 1601 6 1581 1585 1579 1578 1587 1588 6 1578 1586 1588 1589 2475 2476 6 1587 1586 1589 1590 1591 1585 6 1587 1588 1590 6354 6353 2476 6 1589 1588 1591 1592 1594 6354 6 1590 1588 1585 1592 1593 1601 6 1590 1591 1593 1594 1595 1596 6 1592 1591 1599 1596 1600 1601 6 1590 1592 1595 6358 6356 6354 6 1594 1592 1596 1597 3970 6358 6 1595 1592 1597 1598 1599 1593 6 1595 1596 1598 3970 3969 6556 6 1597 1596 1599 6556 6557 611 6 1598 1596 1593 1600 611 609 6 1599 1593 1601 1602 608 609 6 1600 1593 1591 1585 1584 1602 6 1600 1601 1584 1583 603 608 6 74 75 1604 428 1605 1608 5 1603 75 76 1608 1474 6 428 1603 1606 1607 1608 3519 6 428 1605 1607 2493 409 3516 6 1606 1605 3518 3516 1613 3519 7 1605 1603 1604 1474 1609 1610 3519 5 1608 1474 1610 1611 1618 6 1608 1609 1611 1612 1613 3519 6 1610 1609 1612 1616 1617 1618 6 1610 1611 1613 1614 1615 1616 7 1610 1612 1614 3518 1607 3519 3523 6 1613 1612 1615 3523 3524 3528 6 1614 1612 1616 3093 3544 3528 6 1615 1612 1611 1617 3093 3094 6 1616 1611 1618 1619 3094 1624 7 1617 1611 1619 1620 1475 1609 1474 6 1617 1618 1620 1621 1623 1624 5 1619 1618 1475 1476 1621 6 1620 1476 1477 1622 1623 1619 6 1621 1477 1623 1629 1630 1478 6 1621 1622 1619 1624 1625 1629 7 1619 1623 1625 1626 1617 3094 4367 6 1624 1623 1626 1627 1628 1629 5 1624 1625 1627 4376 4367 7 1626 1625 1628 4377 4376 2862 7215 6 1627 1625 1629 2861 1633 2862 6 1628 1625 1623 1622 1630 2861 6 1629 1622 1478 1479 1631 2861 6 1630 1479 1480 1632 1633 2861 6 1631 1480 1633 1634 1635 1481 7 1631 1632 1634 1636 2861 1628 2862 6 1633 1632 1635 1636 1637 1502 6 1634 1632 1481 1502 1485 1482 5 1633 1634 1637 2862 2863 7 1636 1634 1502 1503 1638 2863 2864 5 1637 1503 1639 2864 2865 6 1638 1503 1504 1640 2865 2866 6 1639 1504 1505 1641 2866 2867 6 1640 1505 1642 2479 2490 2867 6 1641 1505 1489 1176 1643 2479 6 1642 1176 1178 1180 1644 2479 6 1643 1180 1645 2479 2480 2481 6 1644 1180 1181 1646 2481 1650 6 1645 1181 1647 1648 1649 1650 6 1646 1181 1648 1655 3097 1182 6 1646 1647 1649 1653 1654 1655 6 1646 1648 1650 1651 1652 1653 6 1646 1649 1651 2481 1645 2495 6 1650 1649 1652 2495 2496 2497 6 1651 1649 1653 2497 2498 2499 6 1652 1649 1648 1654 2499 2500 6 1653 1648 1655 1656 2500 2501 6 1654 1648 1647 1656 1657 3097 6 1654 1655 1657 1658 2501 2812 6 1656 1655 1658 1659 2241 3097 6 1656 1657 1659 1660 1661 2812 6 1658 1657 1660 1189 1188 2241 6 1658 1659 1661 1662 1190 1189 6 1658 1660 1662 1663 1664 2812 6 1661 1660 1663 1670 1191 1190 6 1661 1662 1664 1665 1669 1670 6 1661 1663 1665 1666 2812 2811 6 1664 1663 1666 1667 1668 1669 6 1664 1665 1667 2811 2813 2814 6 1666 1665 1668 2814 2815 2816 6 1667 1665 1669 2816 2821 2822 6 1668 1665 1663 1670 1671 2822 6 1669 1663 1662 1191 1192 1671 6 1670 1192 1193 1672 2822 1669 6 1671 1193 1194 1673 2823 2822 6 1672 1194 1195 1674 3147 2823 6 1673 1195 1196 1675 3147 3412 6 1674 1196 1197 1500 1676 3412 6 1675 1500 1501 1677 3412 3413 6 1676 1501 1678 3413 3414 3415 6 1677 1501 1679 3415 5381 5382 6 1678 1501 1457 1458 1680 5381 6 1679 1458 1459 1681 1682 5381 6 1680 1459 1460 1682 1683 1684 6 1680 1681 1683 3774 5383 5381 6 1682 1681 1684 3774 3775 3776 6 1683 1681 1460 1685 1686 3776 6 1684 1460 1686 1687 1203 1202 6 1684 1685 1687 3776 3777 3781 6 1686 1685 1203 1204 1688 3781 6 1687 1204 1205 1689 3781 3782 6 1688 1205 1206 1690 1691 3782 6 1689 1206 1691 1692 1693 1207 6 1689 1690 1692 3782 3783 3784 6 1691 1690 1693 3784 3785 3786 6 1692 1690 1207 1208 1694 3786 6 1693 1208 1209 1695 3786 3416 6 1694 1209 1210 1556 1696 3416 6 1695 1556 1557 1697 3416 3417 6 1696 1557 1559 1698 3417 3418 6 1697 1559 1699 1703 2223 3418 6 1698 1559 1560 1700 1701 1703 6 1699 1560 1701 1702 1708 1709 6 1699 1700 1702 1703 1704 1705 6 1701 1700 1705 1706 1707 1708 6 1699 1701 1704 1698 2223 2224 6 1703 1701 1705 2224 2225 2226 6 1704 1701 1702 1706 2226 2227 6 1705 1702 1707 2227 2228 2229 6 1706 1702 1708 2229 2230 2231 6 1707 1702 1700 1709 1711 2231 6 1708 1700 1560 1561 1710 1711 6 1709 1561 1548 1549 1551 1711 6 1710 1551 1712 2231 1708 1709 6 1711 1551 1552 1713 2232 2231 6 1712 1552 1554 1714 2240 2232 6 1713 1554 1715 2240 2560 2564 6 1714 1554 1555 1716 2564 2565 6 1715 1555 1218 1219 1717 2565 6 1716 1219 1220 1718 2565 2566 6 1717 1220 1221 1719 2569 2566 6 1718 1221 1222 1720 3463 2569 6 1719 1222 1223 1721 3462 3463 6 1720 1223 1224 1722 3469 3462 6 1721 1224 1225 1723 1724 3469 6 1722 1225 1724 1725 1726 1226 6 1722 1723 1725 2172 3467 3469 6 1724 1723 1726 2172 2173 2174 6 1725 1723 1226 1227 1727 2174 6 1726 1227 1228 1728 2174 2175 6 1727 1228 1229 1729 2175 2176 6 1728 1229 1230 1730 1731 2176 6 1729 1230 1731 1732 1733 1231 6 1729 1730 1732 2178 2176 2808 6 1731 1730 1733 3404 2808 3405 6 1732 1730 1231 1232 1734 3405 6 1733 1232 1233 1735 3405 3406 6 1734 1233 1234 1736 3406 3407 6 1735 1234 1235 1737 3407 3408 6 1736 1235 1236 1738 3408 3409 6 1737 1236 1237 1739 3409 3410 6 1738 1237 1238 1740 3410 3411 6 1739 1238 1239 1741 3197 3411 6 1740 1239 1240 1742 3191 3197 6 1741 1240 1241 1743 3191 1744 6 1742 1241 1242 1243 1244 1744 7 1743 1244 1245 1745 3191 1742 3199 6 1744 1245 1246 1746 2893 3199 6 1745 1246 1247 1747 2751 2893 6 1746 1247 1248 1249 1748 2751 6 1747 1249 1749 2233 2751 2752 6 1748 1249 1250 1750 2233 2234 6 1749 1250 1251 1751 2237 2234 6 1750 1251 1252 1752 2247 2237 6 1751 1252 1253 1753 2247 2253 6 1752 1253 1254 1754 2253 2254 6 1753 1254 1255 1755 2254 2255 6 1754 1255 1256 1756 2255 2256 6 1755 1256 1257 1258 1757 2256 6 1756 1258 1758 2256 2257 2258 6 1757 1258 1259 1759 2258 2259 6 1758 1259 1260 1760 2259 2260 6 1759 1260 1261 1761 2260 2261 6 1760 1261 1262 1762 2261 2262 6 1761 1262 1263 1763 2262 2263 6 1762 1263 1264 1764 2263 2264 6 1763 1264 1265 1765 2264 2265 6 1764 1265 1266 1766 2265 2266 6 1765 1266 1267 1767 2266 2267 6 1766 1267 1268 1768 2267 2268 6 1767 1268 1269 1769 2268 2269 6 1768 1269 1270 1770 2269 2270 6 1769 1270 1271 1771 2270 2271 6 1770 1271 1272 1772 2271 2272 6 1771 1272 1273 1773 2272 2273 6 1772 1273 1274 1774 2273 2274 6 1773 1274 1275 1775 2274 2275 6 1774 1275 1276 1776 2275 2276 6 1775 1276 1277 1777 2276 2277 6 1776 1277 1278 1778 2277 2278 6 1777 1278 1279 1779 2278 2279 6 1778 1279 1280 1780 2279 2280 6 1779 1280 1281 1781 2280 2281 6 1780 1281 1282 1782 2281 2282 6 1781 1282 1283 1783 2282 2283 6 1782 1283 1284 1784 2283 2284 6 1783 1284 1285 1785 2284 2285 6 1784 1285 1286 1786 2285 2286 6 1785 1286 1287 1787 2286 2287 6 1786 1287 1288 1788 2287 2288 6 1787 1288 1289 1789 2288 2289 6 1788 1289 1290 1790 2289 2290 6 1789 1290 1291 1791 2290 2291 6 1790 1291 1292 1792 2291 2292 6 1791 1292 1293 1793 2292 2293 6 1792 1293 1294 1794 2293 2294 6 1793 1294 1295 1795 2294 2295 6 1794 1295 1296 1796 2098 2295 6 1795 1296 1297 1797 2098 2099 6 1796 1297 1298 1300 2099 2100 6 1307 1308 1799 2106 2107 2108 6 1798 1308 1309 1800 2108 2109 6 1799 1309 1310 1801 2109 2110 6 1800 1310 1311 1802 2110 2111 6 1801 1311 1312 1803 2111 2112 6 1802 1312 1313 1804 2112 2113 6 1803 1313 1314 1805 2113 2114 6 1804 1314 1315 1806 2114 2115 6 1805 1315 1316 1807 2115 2116 6 1806 1316 1317 1808 2116 2117 6 1807 1317 1318 1809 2117 2118 6 1808 1318 1319 1810 2118 2119 6 1809 1319 1320 1811 2119 2120 6 1810 1320 1321 1812 2120 2121 6 1811 1321 1322 1813 2121 2122 6 1812 1322 1323 1814 2122 2123 6 1813 1323 1324 1815 2123 2124 6 1814 1324 1325 1816 2124 2125 6 1815 1325 1326 1817 2125 2126 6 1816 1326 1327 1818 2126 2127 6 1817 1327 1328 1819 2127 2128 6 1818 1328 1329 1820 2128 2129 6 1819 1329 1330 1821 2129 2130 6 1820 1330 1331 1822 2130 2131 6 1821 1331 1332 1823 2131 2132 6 1822 1332 1333 1824 2132 2133 6 1823 1333 1334 1825 2133 2134 6 1824 1334 1335 1826 2134 2135 6 1825 1335 1336 1337 1827 2135 6 1826 1337 1828 2135 2136 2137 6 1827 1337 1338 1829 2137 2138 6 1828 1338 1339 1830 2138 2139 6 1829 1339 1831 2139 2140 2141 6 1830 1339 1340 1341 1832 2141 6 1831 1341 1342 1833 2141 2142 6 1832 1342 1343 1834 2142 2143 6 1833 1343 1344 1835 2143 2144 6 1834 1344 1345 1836 2144 2145 6 1835 1345 1346 1347 1837 2145 6 1836 1347 1838 2150 2145 2165 6 1837 1347 1348 1839 2165 2166 6 1838 1348 1349 1840 2166 2167 6 1839 1349 1350 1841 2167 2168 6 1840 1350 1351 1842 2171 2168 6 1841 1351 1352 1843 2349 2171 6 1842 1352 1353 1844 2349 2350 6 1843 1353 1354 1845 2350 2351 6 1844 1354 1355 1846 2351 2352 6 1845 1355 1356 1847 2352 2353 6 1846 1356 1357 1848 2353 2354 6 1847 1357 1358 1849 2354 2355 6 1848 1358 1359 1850 2355 2356 6 1849 1359 1360 1851 2356 2357 6 1850 1360 1361 1852 2357 2358 6 1851 1361 1362 1853 2358 2359 6 1852 1362 1363 1854 2359 2360 6 1853 1363 1364 1855 2360 2361 6 1854 1364 1365 1856 1966 2361 6 1855 1365 1366 1857 1966 1967 6 1856 1366 1367 1858 1967 1968 6 1857 1367 1368 1859 1968 1969 6 1858 1368 1369 1860 1969 1970 6 1859 1369 1370 1861 1970 1971 6 1860 1370 1371 1862 1971 1972 6 1861 1371 1372 1863 1972 1973 6 1862 1372 1373 1864 1973 1974 6 1863 1373 1374 1865 1974 1975 6 1864 1374 1375 1866 1975 1976 6 1865 1375 1376 1867 1976 1977 6 1866 1376 1377 1868 1977 1978 6 1867 1377 1378 1869 1978 1979 6 1868 1378 1379 1870 1979 1980 6 1869 1379 1380 1871 1980 1981 6 1870 1380 1381 1872 1981 1982 6 1871 1381 1382 1873 1982 1983 6 1872 1382 1383 1874 1983 1984 6 1873 1383 1384 1875 1984 1985 6 1874 1384 1385 1876 1985 1986 6 1875 1385 1386 1877 1986 1987 6 1876 1386 1387 1878 1987 1988 6 1877 1387 1388 1879 1988 1989 6 1878 1388 1389 1880 1989 1990 6 1879 1389 1390 1881 1990 1991 6 1880 1390 1391 1882 1991 1992 6 1881 1391 1392 1883 1992 1993 6 1882 1392 1393 1884 1993 1994 6 1883 1393 1394 1885 1994 1995 6 1884 1394 1395 1886 1995 1996 6 1885 1395 1396 1887 1996 1997 6 1886 1396 1397 1888 1997 1998 6 1887 1397 1398 1889 1998 1999 6 1888 1398 1399 1890 1999 2000 6 1889 1399 1400 1891 2000 2001 6 1890 1400 1401 1892 2001 2002 6 1891 1401 1402 1893 2002 2003 6 1892 1402 1403 1894 2003 2004 6 1893 1403 1404 1895 2004 2005 6 1894 1404 1405 1896 2005 2006 6 1895 1405 1406 1897 2006 2007 6 1896 1406 1407 1898 2007 2008 6 1897 1407 1408 1899 2008 2009 6 1898 1408 1409 1900 2009 2010 6 1899 1409 1410 1901 2010 2011 6 1900 1410 1411 1902 2011 2012 6 1901 1411 1412 1903 2012 2013 6 1902 1412 1413 1904 2013 2014 6 1903 1413 1414 1905 2014 2015 6 1904 1414 1415 1906 2015 2016 6 1905 1415 1416 1907 2016 2017 6 1906 1416 1417 1908 2017 2018 6 1907 1417 1418 1909 2018 2019 6 1908 1418 1419 1910 2019 2020 6 1909 1419 1420 1911 2020 2021 6 1910 1420 1421 1912 2021 2022 6 1911 1421 1422 1913 2022 2023 6 1912 1422 1423 1914 2023 2024 6 1913 1423 1424 1915 2024 2025 6 1914 1424 1425 1916 2025 2026 6 1915 1425 1426 1917 2026 2027 6 1916 1426 1427 1918 2027 2028 6 1917 1427 1428 1919 2028 2029 6 1918 1428 1429 1920 2029 2030 6 1919 1429 1430 1921 2030 2031 6 1920 1430 1431 1922 2031 2032 6 1921 1431 1432 1923 2032 2033 6 1922 1432 1433 1924 2033 2034 6 1923 1433 1434 1925 2034 2035 6 1924 1434 1435 1926 2035 1927 6 1925 1435 1436 1437 1438 1927 7 1926 1438 1439 1928 2035 1925 2036 6 1927 1439 1440 1929 2036 2037 6 1928 1440 1441 1930 2037 2038 6 1929 1441 1442 1931 2038 2039 6 1930 1442 1443 1932 2039 2040 7 1931 1443 1444 1461 1933 2040 2041 5 1932 1461 1934 2041 2042 6 1933 1461 1462 1935 2042 2043 6 1934 1462 1463 1936 2043 2044 6 1935 1463 1464 1937 2044 2045 6 1936 1464 1465 1466 1938 2045 6 1937 1466 1939 2045 2046 2047 6 1938 1466 1467 1940 2047 2048 6 1939 1467 1468 1469 1941 2048 6 1940 1469 1942 2048 2049 2050 6 1941 1469 1470 1943 2050 2051 6 1942 1470 1471 1944 2051 2052 6 1943 1471 1945 2052 2053 2054 6 1944 1471 1472 1946 2054 1947 6 1945 1472 1473 1490 1491 1947 6 1946 1491 1948 2054 1945 2055 6 1947 1491 1492 1949 1950 2055 6 1948 1492 1950 1951 1495 1493 6 1948 1949 1951 2055 2056 2057 6 1950 1949 1495 1952 2057 2058 6 1951 1495 1496 1530 1953 2058 6 1952 1530 1531 1954 2058 2059 6 1953 1531 1532 1955 2059 2060 6 1954 1532 1534 1956 2060 2061 6 1955 1534 1957 1958 2061 2062 6 1956 1534 1958 1959 1960 1535 6 1956 1957 1959 2062 2063 2064 6 1958 1957 1960 2064 2065 2066 6 1959 1957 1535 1541 1961 2066 6 1960 1541 1962 2066 2067 2068 6 1961 1541 1167 1168 1963 2068 6 1962 1168 1964 1965 2070 2068 6 1963 1168 1965 887 886 1169 6 1963 1964 887 2072 2070 2075 6 1855 1856 1967 2361 2362 2363 6 1966 1856 1857 1968 2363 2364 6 1967 1857 1858 1969 2364 2365 6 1968 1858 1859 1970 2365 2366 6 1969 1859 1860 1971 2366 2367 6 1970 1860 1861 1972 2367 2368 6 1971 1861 1862 1973 2368 2369 6 1972 1862 1863 1974 2369 2370 6 1973 1863 1864 1975 2370 2371 6 1974 1864 1865 1976 2371 2372 6 1975 1865 1866 1977 2372 2373 6 1976 1866 1867 1978 2373 2374 6 1977 1867 1868 1979 2374 2375 6 1978 1868 1869 1980 2375 2376 6 1979 1869 1870 1981 2376 2377 6 1980 1870 1871 1982 2377 2378 6 1981 1871 1872 1983 2378 2379 6 1982 1872 1873 1984 2379 2380 6 1983 1873 1874 1985 2380 2381 6 1984 1874 1875 1986 2381 2382 6 1985 1875 1876 1987 2382 2383 6 1986 1876 1877 1988 2383 2384 6 1987 1877 1878 1989 2384 2385 6 1988 1878 1879 1990 2385 2386 6 1989 1879 1880 1991 2386 2387 6 1990 1880 1881 1992 2387 2388 6 1991 1881 1882 1993 2388 2389 6 1992 1882 1883 1994 2389 2390 6 1993 1883 1884 1995 2390 2391 6 1994 1884 1885 1996 2391 2392 6 1995 1885 1886 1997 2392 2393 6 1996 1886 1887 1998 2393 2394 6 1997 1887 1888 1999 2394 2395 6 1998 1888 1889 2000 2395 2396 6 1999 1889 1890 2001 2396 2397 6 2000 1890 1891 2002 2397 2398 6 2001 1891 1892 2003 2398 2399 6 2002 1892 1893 2004 2399 2400 6 2003 1893 1894 2005 2400 2401 6 2004 1894 1895 2006 2401 2402 6 2005 1895 1896 2007 2402 2403 6 2006 1896 1897 2008 2403 2404 6 2007 1897 1898 2009 2404 2405 6 2008 1898 1899 2010 2405 2406 6 2009 1899 1900 2011 2406 2407 6 2010 1900 1901 2012 2407 2408 6 2011 1901 1902 2013 2408 2409 6 2012 1902 1903 2014 2409 2410 6 2013 1903 1904 2015 2410 2411 6 2014 1904 1905 2016 2411 2412 6 2015 1905 1906 2017 2412 2413 6 2016 1906 1907 2018 2413 2414 6 2017 1907 1908 2019 2414 2415 6 2018 1908 1909 2020 2415 2416 6 2019 1909 1910 2021 2416 2417 6 2020 1910 1911 2022 2417 2418 6 2021 1911 1912 2023 2418 2419 6 2022 1912 1913 2024 2419 2420 6 2023 1913 1914 2025 2420 2421 6 2024 1914 1915 2026 2421 2422 6 2025 1915 1916 2027 2422 2423 6 2026 1916 1917 2028 2423 2424 6 2027 1917 1918 2029 2424 2425 6 2028 1918 1919 2030 2425 2426 6 2029 1919 1920 2031 2426 2427 6 2030 1920 1921 2032 2427 2428 6 2031 1921 1922 2033 2428 2429 6 2032 1922 1923 2034 2429 2430 6 2033 1923 1924 2035 2430 2431 6 2034 1924 1925 1927 2036 2431 5 2035 1927 1928 2037 2431 6 2036 1928 1929 2038 2431 2432 6 2037 1929 1930 2039 2432 2433 6 2038 1930 1931 2040 2433 2434 7 2039 1931 1932 2041 2434 2435 2436 5 2040 1932 1933 2042 2436 7 2041 1933 1934 2043 2436 2437 2438 6 2042 1934 1935 2044 2438 2439 6 2043 1935 1936 2045 2439 2440 6 2044 1936 1937 1938 2046 2440 6 2045 1938 2047 2440 2441 2442 6 2046 1938 1939 2048 2442 2443 6 2047 1939 1940 1941 2049 2443 6 2048 1941 2050 2443 2444 2448 6 2049 1941 1942 2051 2448 2449 6 2050 1942 1943 2052 2449 2450 6 2051 1943 1944 2053 2450 2451 6 2052 1944 2054 2451 2452 2453 6 2053 1944 1945 1947 2055 2453 6 2054 1947 1948 1950 2056 2453 6 2055 1950 2057 2453 2454 2455 6 2056 1950 1951 2058 2455 2456 6 2057 1951 1952 1953 2059 2456 6 2058 1953 1954 2060 2456 2457 6 2059 1954 1955 2061 2457 2458 6 2060 1955 1956 2062 2458 2459 6 2061 1956 1958 2063 2459 2460 6 2062 1958 2064 2460 2461 2462 6 2063 1958 1959 2065 2462 2463 6 2064 1959 2066 2463 2464 2465 6 2065 1959 1960 1961 2067 2465 6 2066 1961 2068 2069 2465 2466 6 2067 1961 1962 2069 2070 1963 6 2067 2068 2070 2071 2466 2469 6 2069 2068 1963 2071 2072 1965 6 2069 2070 2072 2073 2469 2470 6 2071 2070 1965 2073 2074 2075 6 2071 2072 2074 2473 2470 2086 6 2073 2072 2075 2076 2078 2086 6 2074 2072 1965 887 888 2076 6 2075 888 889 2077 2078 2074 6 2076 889 2078 2079 2080 2081 6 2076 2077 2079 2074 2086 2087 6 2078 2077 2080 2096 2087 2082 6 2079 2077 2081 898 901 2082 6 2080 2077 889 890 894 898 6 2080 901 903 2083 2096 2079 6 2082 903 2084 2096 2095 9776 6 2083 903 904 2085 6093 9776 6 2084 904 1565 1567 3766 6093 6 2074 2078 2087 2088 2473 2073 6 2086 2078 2088 2089 2096 2079 6 2086 2087 2089 2090 2091 2473 6 2088 2087 2090 2094 2095 2096 6 2088 2089 2091 2092 2093 2094 6 2088 2090 2092 2489 2472 2473 6 2091 2090 2093 2489 5947 5948 6 2092 2090 2094 3135 5947 3132 6 2093 2090 2089 2095 3131 3132 6 2094 2089 2096 3131 2083 9776 6 2095 2089 2087 2079 2082 2083 6 631 403 633 650 649 404 6 1795 1796 2099 2295 2296 2297 6 2098 1796 1797 2100 2297 2101 5 2099 1797 1300 1301 2101 6 2100 1301 1302 2102 2297 2099 6 2101 1302 1303 2103 2297 2298 6 2102 1303 1304 2104 2298 2299 6 2103 1304 1305 2105 2299 2300 6 2104 1305 1306 2106 2300 2301 7 2105 1306 1307 1798 2107 2301 2302 5 2106 1798 2108 2302 2303 6 2107 1798 1799 2109 2303 2304 6 2108 1799 1800 2110 2304 2305 6 2109 1800 1801 2111 2305 2306 6 2110 1801 1802 2112 2306 2307 6 2111 1802 1803 2113 2307 2308 6 2112 1803 1804 2114 2308 2309 6 2113 1804 1805 2115 2309 2310 6 2114 1805 1806 2116 2310 2311 6 2115 1806 1807 2117 2311 2312 6 2116 1807 1808 2118 2312 2313 6 2117 1808 1809 2119 2313 2314 6 2118 1809 1810 2120 2314 2315 6 2119 1810 1811 2121 2315 2316 6 2120 1811 1812 2122 2316 2317 6 2121 1812 1813 2123 2317 2318 6 2122 1813 1814 2124 2318 2319 6 2123 1814 1815 2125 2319 2320 6 2124 1815 1816 2126 2320 2321 6 2125 1816 1817 2127 2321 2322 6 2126 1817 1818 2128 2322 2323 6 2127 1818 1819 2129 2323 2324 6 2128 1819 1820 2130 2324 2325 6 2129 1820 1821 2131 2325 2326 6 2130 1821 1822 2132 2326 2327 6 2131 1822 1823 2133 2151 2327 6 2132 1823 1824 2134 2151 2152 6 2133 1824 1825 2135 2152 2153 6 2134 1825 1826 1827 2136 2153 6 2135 1827 2137 2153 2154 2155 6 2136 1827 1828 2138 2155 2156 6 2137 1828 1829 2139 2156 2157 6 2138 1829 1830 2140 2157 2158 6 2139 1830 2141 2146 2158 2159 6 2140 1830 1831 1832 2142 2146 6 2141 1832 1833 2143 2146 2147 6 2142 1833 1834 2144 2147 2148 6 2143 1834 1835 2145 2148 2149 6 2144 1835 1836 2149 2150 1837 6 2140 2141 2142 2147 2159 2160 6 2146 2142 2143 2148 2160 2161 6 2147 2143 2144 2149 2161 2162 6 2148 2144 2145 2150 2162 2163 6 2149 2145 1837 2163 2164 2165 6 2132 2133 2152 2327 2328 2329 6 2151 2133 2134 2153 2329 2330 6 2152 2134 2135 2136 2154 2330 6 2153 2136 2155 2330 2331 2332 6 2154 2136 2137 2156 2332 2333 6 2155 2137 2138 2157 2333 2334 6 2156 2138 2139 2158 2334 2335 6 2157 2139 2140 2159 2335 2336 6 2158 2140 2146 2160 2336 2337 6 2159 2146 2147 2161 2337 2338 6 2160 2147 2148 2162 2338 2339 6 2161 2148 2149 2163 2339 2340 6 2162 2149 2150 2164 2340 2341 6 2163 2150 2165 2341 2342 2343 6 2164 2150 1837 1838 2166 2343 6 2165 1838 1839 2167 2343 2344 6 2166 1839 1840 2168 2169 2344 6 2167 1840 2169 2170 2171 1841 6 2167 2168 2170 2344 2345 2346 6 2169 2168 2171 2346 2347 2348 6 2170 2168 1841 2348 2349 1842 6 1724 1725 2173 3468 3467 4747 6 2172 1725 2174 2804 3395 4747 6 2173 1725 1726 1727 2175 2804 6 2174 1727 1728 2176 2177 2804 6 2175 1728 2177 2178 1731 1729 6 2175 2176 2178 2804 2805 2806 6 2177 2176 1731 2806 2807 2808 6 27 28 2180 2181 3851 3852 6 2179 28 29 2181 2182 2503 6 2179 2180 2182 2183 2199 3851 6 2181 2180 2183 2184 2502 2503 6 2181 2182 2184 2185 2198 2199 6 2183 2182 2185 2186 2193 2502 6 2183 2184 2186 2187 2197 2198 6 2185 2184 2187 2188 2192 2193 6 2185 2186 2188 2189 2197 9713 6 2187 2186 2189 2190 2191 2192 7 2187 2188 2190 9709 9708 9712 9713 5 2189 2188 2191 9710 9709 6 2190 2188 2192 2510 2512 9710 6 2191 2188 2186 2193 2510 2506 6 2192 2186 2184 2502 2504 2506 6 415 39 40 2195 9704 6488 6 2194 40 41 2196 6488 9705 7 2195 41 42 9705 43 9771 9773 6 2185 2187 2198 9713 9714 9720 6 2185 2197 2183 2199 2200 9720 6 2183 2198 2200 2201 2181 3851 6 2199 2198 2201 2202 9720 2217 6 2199 2200 2202 2203 3129 3851 6 2201 2200 2203 2204 2217 2208 6 2201 2202 2204 2205 3129 3130 6 2203 2202 2205 2206 2207 2208 6 2203 2204 2206 3130 1525 4250 6 2205 2204 2207 3343 3341 4250 6 2206 2204 2208 2209 3343 3344 6 2207 2204 2209 2210 2217 2202 6 2207 2208 2210 2211 3344 3345 6 2209 2208 2211 2212 2216 2217 6 2209 2210 2212 2213 3348 3345 6 2211 2210 2213 2214 2215 2216 6 2211 2212 2214 6522 6523 3348 6 2213 2212 2215 9716 9719 6522 6 2214 2212 2216 9716 9715 9714 6 2215 2212 2210 2217 9714 9720 6 2216 2210 2208 2202 9720 2200 6 408 59 60 2219 2545 2546 6 2218 60 61 2220 2549 2546 6 2219 61 62 2221 2549 2551 6 2220 62 63 2222 2551 6702 6 2221 63 6701 6700 6702 64 6 1698 1703 2224 3418 3419 3420 6 2223 1703 1704 2225 3420 3421 6 2224 1704 2226 3421 3422 3426 6 2225 1704 1705 2227 3426 3427 6 2226 1705 1706 2228 3427 3428 6 2227 1706 2229 3428 3429 3430 6 2228 1706 1707 2230 2238 3430 6 2229 1707 2231 2232 2238 2239 6 2230 1707 2232 1712 1711 1708 6 2230 2231 1712 2239 2240 1713 6 1748 1749 2234 2235 2242 2752 6 2233 1749 2235 2236 2237 1750 6 2233 2234 2236 2242 2243 2244 6 2235 2234 2237 2244 2245 2246 6 2236 2234 1750 2246 2247 1751 6 2229 2230 2239 3430 3431 3435 6 2238 2230 2232 2240 3435 2561 6 2239 2232 1713 1714 2560 2561 6 1187 1188 1659 1657 3097 1184 6 2233 2235 2243 2752 2753 2754 6 2242 2235 2244 2754 2755 2756 6 2243 2235 2236 2245 2756 2757 6 2244 2236 2246 2757 2758 2759 6 2245 2236 2237 2247 2759 2760 6 2246 2237 1751 1752 2253 2760 6 34 35 2249 3331 3332 3333 6 2248 35 36 2250 3336 3333 6 2249 36 37 416 2251 3336 7 2250 416 2252 6490 6491 9706 3336 5 2251 416 415 6490 9704 6 2247 1752 1753 2254 2760 2761 6 2253 1753 1754 2255 2761 2762 6 2254 1754 1755 2256 2762 2763 6 2255 1755 1756 1757 2257 2763 6 2256 1757 2258 2763 2764 2765 6 2257 1757 1758 2259 2765 2766 6 2258 1758 1759 2260 2766 2767 6 2259 1759 1760 2261 2767 2768 6 2260 1760 1761 2262 2768 2769 6 2261 1761 1762 2263 2571 2769 6 2262 1762 1763 2264 2571 2572 6 2263 1763 1764 2265 2572 2573 6 2264 1764 1765 2266 2573 2574 6 2265 1765 1766 2267 2574 2575 6 2266 1766 1767 2268 2575 2576 6 2267 1767 1768 2269 2576 2577 6 2268 1768 1769 2270 2577 2578 6 2269 1769 1770 2271 2578 2579 6 2270 1770 1771 2272 2579 2580 6 2271 1771 1772 2273 2580 2581 6 2272 1772 1773 2274 2581 2582 6 2273 1773 1774 2275 2582 2583 6 2274 1774 1775 2276 2583 2584 6 2275 1775 1776 2277 2584 2585 6 2276 1776 1777 2278 2585 2586 6 2277 1777 1778 2279 2586 2587 6 2278 1778 1779 2280 2587 2588 6 2279 1779 1780 2281 2588 2589 6 2280 1780 1781 2282 2589 2590 6 2281 1781 1782 2283 2590 2591 6 2282 1782 1783 2284 2591 2592 6 2283 1783 1784 2285 2592 2593 6 2284 1784 1785 2286 2593 2594 6 2285 1785 1786 2287 2594 2595 6 2286 1786 1787 2288 2595 2596 6 2287 1787 1788 2289 2596 2597 6 2288 1788 1789 2290 2597 2598 6 2289 1789 1790 2291 2598 2599 6 2290 1790 1791 2292 2599 2600 6 2291 1791 1792 2293 2600 2601 6 2292 1792 1793 2294 2601 2602 6 2293 1793 1794 2295 2602 2603 6 2294 1794 1795 2098 2296 2603 6 2295 2098 2297 2603 2604 2605 7 2296 2098 2099 2101 2102 2298 2605 6 2297 2102 2103 2299 2605 2606 6 2298 2103 2104 2300 2606 2607 6 2299 2104 2105 2301 2607 2608 6 2300 2105 2106 2302 2608 2609 6 2301 2106 2107 2303 2609 2610 6 2302 2107 2108 2304 2610 2611 6 2303 2108 2109 2305 2611 2612 6 2304 2109 2110 2306 2612 2613 6 2305 2110 2111 2307 2613 2614 6 2306 2111 2112 2308 2614 2615 6 2307 2112 2113 2309 2615 2616 6 2308 2113 2114 2310 2619 2616 6 2309 2114 2115 2311 2619 2620 6 2310 2115 2116 2312 2620 2621 6 2311 2116 2117 2313 2621 2622 6 2312 2117 2118 2314 2622 2623 6 2313 2118 2119 2315 2623 2624 6 2314 2119 2120 2316 2624 2625 6 2315 2120 2121 2317 2625 2626 6 2316 2121 2122 2318 2626 2627 6 2317 2122 2123 2319 2627 2628 6 2318 2123 2124 2320 2628 2629 6 2319 2124 2125 2321 2629 2630 6 2320 2125 2126 2322 2630 2631 6 2321 2126 2127 2323 2631 2632 6 2322 2127 2128 2324 2632 2633 6 2323 2128 2129 2325 2633 2634 6 2324 2129 2130 2326 2634 2635 6 2325 2130 2131 2327 2635 2636 6 2326 2131 2132 2151 2328 2636 6 2327 2151 2329 2636 2637 2638 6 2328 2151 2152 2330 2641 2638 6 2329 2152 2153 2154 2331 2641 6 2330 2154 2332 2642 2641 2643 6 2331 2154 2155 2333 2643 2644 6 2332 2155 2156 2334 2644 2645 6 2333 2156 2157 2335 2645 2646 6 2334 2157 2158 2336 2646 2647 6 2335 2158 2159 2337 2647 2648 6 2336 2159 2160 2338 2648 2649 6 2337 2160 2161 2339 2649 2650 6 2338 2161 2162 2340 2650 2651 6 2339 2162 2163 2341 2651 2652 6 2340 2163 2164 2342 2652 2653 6 2341 2164 2343 2653 2654 2655 6 2342 2164 2165 2166 2344 2655 6 2343 2166 2167 2169 2345 2655 6 2344 2169 2346 2655 2656 2657 6 2345 2169 2170 2347 2657 2658 6 2346 2170 2348 2658 2659 2660 6 2347 2170 2171 2349 2660 2661 6 2348 2171 1842 1843 2350 2661 6 2349 1843 1844 2351 2661 2662 6 2350 1844 1845 2352 2662 2663 6 2351 1845 1846 2353 2663 2664 6 2352 1846 1847 2354 2664 2665 6 2353 1847 1848 2355 2665 2666 6 2354 1848 1849 2356 2666 2667 6 2355 1849 1850 2357 2667 2668 6 2356 1850 1851 2358 2668 2669 6 2357 1851 1852 2359 2669 2670 6 2358 1852 1853 2360 2670 2671 6 2359 1853 1854 2361 2671 2672 6 2360 1854 1855 1966 2362 2672 6 2361 1966 2363 2672 2673 2674 6 2362 1966 1967 2364 2674 2675 6 2363 1967 1968 2365 2675 2676 6 2364 1968 1969 2366 2676 2677 6 2365 1969 1970 2367 2677 2678 6 2366 1970 1971 2368 2678 2679 6 2367 1971 1972 2369 2679 2680 6 2368 1972 1973 2370 2680 2681 6 2369 1973 1974 2371 2681 2682 6 2370 1974 1975 2372 2682 2683 6 2371 1975 1976 2373 2683 2684 6 2372 1976 1977 2374 2684 2685 6 2373 1977 1978 2375 2685 2686 6 2374 1978 1979 2376 2686 2687 6 2375 1979 1980 2377 2687 2688 6 2376 1980 1981 2378 2688 2689 6 2377 1981 1982 2379 2689 2690 6 2378 1982 1983 2380 2690 2691 6 2379 1983 1984 2381 2691 2692 6 2380 1984 1985 2382 2692 2693 6 2381 1985 1986 2383 2693 2694 6 2382 1986 1987 2384 2694 2695 6 2383 1987 1988 2385 2695 2696 6 2384 1988 1989 2386 2696 2697 6 2385 1989 1990 2387 2697 2698 6 2386 1990 1991 2388 2698 2699 6 2387 1991 1992 2389 2699 2700 6 2388 1992 1993 2390 2700 2701 6 2389 1993 1994 2391 2701 2702 6 2390 1994 1995 2392 2702 2703 6 2391 1995 1996 2393 2703 2704 6 2392 1996 1997 2394 2704 2705 6 2393 1997 1998 2395 2705 2706 6 2394 1998 1999 2396 2706 2707 6 2395 1999 2000 2397 2707 2708 6 2396 2000 2001 2398 2708 2709 6 2397 2001 2002 2399 2513 2709 6 2398 2002 2003 2400 2513 2514 6 2399 2003 2004 2401 2514 2515 6 2400 2004 2005 2402 2515 2516 6 2401 2005 2006 2403 2516 2517 6 2402 2006 2007 2404 2517 2518 6 2403 2007 2008 2405 2518 2519 6 2404 2008 2009 2406 2519 2520 6 2405 2009 2010 2407 2520 2521 6 2406 2010 2011 2408 2521 2522 6 2407 2011 2012 2409 2522 2523 6 2408 2012 2013 2410 2523 2524 6 2409 2013 2014 2411 2524 2525 6 2410 2014 2015 2412 2525 2526 6 2411 2015 2016 2413 2526 2527 6 2412 2016 2017 2414 2527 2528 6 2413 2017 2018 2415 2528 2529 6 2414 2018 2019 2416 2529 2530 6 2415 2019 2020 2417 2530 2531 6 2416 2020 2021 2418 2531 2532 6 2417 2021 2022 2419 2532 2533 6 2418 2022 2023 2420 2533 2534 6 2419 2023 2024 2421 2534 2535 6 2420 2024 2025 2422 2535 2536 6 2421 2025 2026 2423 2536 2537 6 2422 2026 2027 2424 2537 2538 6 2423 2027 2028 2425 2538 2539 6 2424 2028 2029 2426 2539 2540 6 2425 2029 2030 2427 2540 2541 6 2426 2030 2031 2428 2541 2542 6 2427 2031 2032 2429 2542 2543 6 2428 2032 2033 2430 2543 2544 6 2429 2033 2034 2431 2544 2432 6 2430 2034 2035 2036 2037 2432 7 2431 2037 2038 2433 2544 2430 2556 6 2432 2038 2039 2434 2556 2557 6 2433 2039 2040 2435 2557 2558 6 2434 2040 2436 2558 2559 2437 5 2435 2040 2041 2042 2437 6 2436 2042 2438 2559 2435 2745 6 2437 2042 2043 2439 2745 2746 7 2438 2043 2044 2440 2746 2747 2748 6 2439 2044 2045 2046 2441 2748 6 2440 2046 2442 2748 2749 2750 6 2441 2046 2047 2443 2750 2445 6 2442 2047 2048 2049 2444 2445 6 2443 2049 2445 2446 2447 2448 6 2443 2444 2446 2750 2442 3060 6 2445 2444 2447 3060 3061 3062 6 2446 2444 2448 3062 3063 3064 6 2447 2444 2049 2050 2449 3064 6 2448 2050 2051 2450 3064 3065 6 2449 2051 2052 2451 3065 3066 6 2450 2052 2053 2452 3066 3067 6 2451 2053 2453 3067 3068 2454 6 2452 2053 2054 2055 2056 2454 6 2453 2056 2455 3068 2452 3074 6 2454 2056 2057 2456 3074 3075 6 2455 2057 2058 2059 2457 3075 6 2456 2059 2060 2458 3075 3076 6 2457 2060 2061 2459 3076 3077 6 2458 2061 2062 2460 3077 3078 6 2459 2062 2063 2461 3078 3079 6 2460 2063 2462 3079 3080 3081 6 2461 2063 2064 2463 3081 3082 6 2462 2064 2065 2464 3082 3083 6 2463 2065 2465 2467 2482 3083 6 2464 2065 2066 2067 2466 2467 6 2465 2067 2069 2467 2468 2469 6 2465 2466 2468 2464 2482 2483 6 2467 2466 2469 2471 2477 2483 6 2468 2466 2069 2071 2470 2471 6 2469 2071 2471 2472 2473 2073 6 2469 2470 2472 2468 2477 2478 6 2471 2470 2473 2489 2478 2091 6 2472 2470 2073 2091 2088 2086 6 1516 1521 914 915 576 1515 6 1578 1587 2476 1574 6361 1573 6 2475 1587 1589 6353 6359 6361 6 2468 2471 2478 2483 2484 2485 6 2477 2471 2485 2488 2489 2472 6 1642 1643 1644 2480 1641 2490 6 2479 1644 2481 2490 2494 2869 6 2480 1644 1645 1650 2494 2495 6 2464 2467 2483 3085 3083 3926 6 2482 2467 2468 2477 2484 3926 6 2483 2477 2485 2486 3926 3150 6 2484 2477 2478 2486 2487 2488 6 2484 2485 2487 3148 3149 3150 6 2486 2485 2488 3148 3967 3161 6 2487 2485 2478 2489 5948 3967 6 2488 2478 2472 2091 2092 5948 6 1641 2479 2480 2867 2868 2869 6 70 71 2492 3436 3437 3441 6 2491 71 72 409 2493 3436 6 2492 409 1606 3515 3436 3516 6 2480 2481 2495 2869 2870 2871 6 2494 2481 1650 1651 2496 2871 6 2495 1651 2497 2871 2872 2882 6 2496 1651 1652 2498 2882 2883 6 2497 1652 2499 2883 4092 4093 6 2498 1652 1653 2500 2809 4093 6 2499 1653 1654 2501 2809 2810 6 2500 1654 1656 2810 2811 2812 6 2184 2182 2503 2193 2504 2505 6 2502 2182 30 2505 29 2180 6 2193 2502 2505 2506 2507 2508 6 2504 2502 2508 31 30 2503 6 2193 2504 2507 2509 2510 2192 6 2506 2504 2508 2509 3330 3880 6 2507 2504 2505 31 3330 32 6 2506 2507 2510 2511 3880 3881 6 2506 2509 2511 2512 2191 2192 6 2510 2509 2512 6499 6498 3881 6 2510 2511 2191 6498 6500 9710 6 2398 2399 2514 2709 2710 2711 6 2513 2399 2400 2515 2711 2712 6 2514 2400 2401 2516 2712 2713 6 2515 2401 2402 2517 2713 2714 6 2516 2402 2403 2518 2714 2715 6 2517 2403 2404 2519 2715 2716 6 2518 2404 2405 2520 2716 2717 6 2519 2405 2406 2521 2717 2718 6 2520 2406 2407 2522 2718 2719 6 2521 2407 2408 2523 2719 2720 6 2522 2408 2409 2524 2720 2721 6 2523 2409 2410 2525 2721 2722 6 2524 2410 2411 2526 2722 2723 6 2525 2411 2412 2527 2723 2724 6 2526 2412 2413 2528 2724 2725 6 2527 2413 2414 2529 2725 2726 6 2528 2414 2415 2530 2726 2727 6 2529 2415 2416 2531 2727 2728 6 2530 2416 2417 2532 2728 2729 6 2531 2417 2418 2533 2729 2730 6 2532 2418 2419 2534 2730 2731 6 2533 2419 2420 2535 2731 2732 6 2534 2420 2421 2536 2732 2733 6 2535 2421 2422 2537 2733 2734 6 2536 2422 2423 2538 2734 2735 6 2537 2423 2424 2539 2735 2736 6 2538 2424 2425 2540 2736 2737 6 2539 2425 2426 2541 2552 2737 6 2540 2426 2427 2542 2552 2553 6 2541 2427 2428 2543 2553 2554 6 2542 2428 2429 2544 2554 2555 6 2543 2429 2430 2432 2555 2556 6 408 2218 2546 2547 2841 2842 6 2545 2218 2547 2548 2549 2219 6 2545 2546 2548 2842 2845 2846 6 2547 2546 2549 2550 2857 2846 6 2548 2546 2219 2220 2550 2551 6 2548 2549 2551 6691 2856 2857 7 2550 2549 2220 2221 6702 6690 6691 6 2540 2541 2553 2737 2738 2739 6 2552 2541 2542 2554 2739 2740 6 2553 2542 2543 2555 2570 2740 6 2554 2543 2544 2556 2570 2557 5 2555 2544 2432 2433 2557 7 2556 2433 2434 2558 2570 2555 2742 5 2557 2434 2435 2559 2742 7 2558 2435 2437 2742 2743 2744 2745 6 2240 1714 2561 2562 2563 2564 6 2240 2560 2562 3435 2239 3446 6 2561 2560 2563 3446 3447 3448 6 2562 2560 2564 3448 3449 2567 6 2563 2560 1714 1715 2565 2567 6 2564 1715 1716 1717 2566 2567 6 2565 1717 2567 2568 2569 1718 6 2565 2566 2568 3449 2563 2564 6 2567 2566 2569 3458 3455 3449 6 2568 2566 1718 3463 3458 1719 6 2554 2555 2557 2740 2741 2742 6 2262 2263 2572 2769 2770 2771 6 2571 2263 2264 2573 2771 2772 6 2572 2264 2265 2574 2772 2773 6 2573 2265 2266 2575 2773 2774 6 2574 2266 2267 2576 2774 2775 6 2575 2267 2268 2577 2775 2776 6 2576 2268 2269 2578 2776 2777 6 2577 2269 2270 2579 2777 2778 6 2578 2270 2271 2580 2778 2779 6 2579 2271 2272 2581 2779 2780 6 2580 2272 2273 2582 2780 2781 6 2581 2273 2274 2583 2781 2782 6 2582 2274 2275 2584 2782 2783 6 2583 2275 2276 2585 2783 2784 6 2584 2276 2277 2586 2784 2785 6 2585 2277 2278 2587 2785 2786 6 2586 2278 2279 2588 2786 2787 6 2587 2279 2280 2589 2787 2788 6 2588 2280 2281 2590 2788 2789 6 2589 2281 2282 2591 2789 2790 6 2590 2282 2283 2592 2790 2791 6 2591 2283 2284 2593 2791 2792 6 2592 2284 2285 2594 2792 2793 6 2593 2285 2286 2595 2793 2794 6 2594 2286 2287 2596 2794 2795 6 2595 2287 2288 2597 2795 2796 6 2596 2288 2289 2598 2796 2797 6 2597 2289 2290 2599 2797 2798 6 2598 2290 2291 2600 2798 2799 6 2599 2291 2292 2601 2799 2800 6 2600 2292 2293 2602 2800 2801 6 2601 2293 2294 2603 2801 2802 6 2602 2294 2295 2296 2604 2802 6 2603 2296 2605 2802 2803 2606 5 2604 2296 2297 2298 2606 7 2605 2298 2299 2607 2803 2604 2826 5 2606 2299 2300 2608 2826 7 2607 2300 2301 2609 2826 2827 2828 6 2608 2301 2302 2610 2828 2829 6 2609 2302 2303 2611 2829 2830 6 2610 2303 2304 2612 2830 2831 6 2611 2304 2305 2613 2831 2832 6 2612 2305 2306 2614 2832 2833 6 2613 2306 2307 2615 2833 2834 6 2614 2307 2308 2616 2617 2834 6 2615 2308 2617 2618 2619 2309 6 2615 2616 2618 2834 2835 2836 6 2617 2616 2619 2836 2837 2838 6 2618 2616 2309 2310 2620 2838 6 2619 2310 2311 2621 2840 2838 6 2620 2311 2312 2622 2959 2840 6 2621 2312 2313 2623 2959 2960 6 2622 2313 2314 2624 2960 2961 6 2623 2314 2315 2625 2961 2962 6 2624 2315 2316 2626 2962 2963 6 2625 2316 2317 2627 2966 2963 6 2626 2317 2318 2628 2966 2967 6 2627 2318 2319 2629 2967 2968 6 2628 2319 2320 2630 2968 2969 6 2629 2320 2321 2631 2969 2970 6 2630 2321 2322 2632 2970 2971 6 2631 2322 2323 2633 2971 2972 6 2632 2323 2324 2634 2972 2973 6 2633 2324 2325 2635 2973 2974 6 2634 2325 2326 2636 2974 2975 6 2635 2326 2327 2328 2637 2975 6 2636 2328 2638 2639 2975 2976 6 2637 2328 2639 2640 2641 2329 6 2637 2638 2640 2976 2977 2978 6 2639 2638 2641 2642 2978 2979 6 2640 2638 2642 2331 2330 2329 6 2640 2641 2331 2643 2979 2980 6 2642 2331 2332 2644 2980 2981 6 2643 2332 2333 2645 2981 2982 6 2644 2333 2334 2646 2982 2983 6 2645 2334 2335 2647 2983 2984 6 2646 2335 2336 2648 2984 2985 6 2647 2336 2337 2649 2985 2986 6 2648 2337 2338 2650 2986 2987 6 2649 2338 2339 2651 2987 2988 6 2650 2339 2340 2652 2988 2989 6 2651 2340 2341 2653 2989 2990 6 2652 2341 2342 2654 2990 2991 6 2653 2342 2655 2991 2992 2656 6 2654 2342 2343 2344 2345 2656 6 2655 2345 2657 2992 2654 2993 6 2656 2345 2346 2658 2993 2994 6 2657 2346 2347 2659 2994 2995 6 2658 2347 2660 2995 2996 2997 6 2659 2347 2348 2661 2997 2998 6 2660 2348 2349 2350 2662 2998 6 2661 2350 2351 2663 2998 2999 6 2662 2351 2352 2664 2999 3000 6 2663 2352 2353 2665 3000 3001 6 2664 2353 2354 2666 3001 3002 6 2665 2354 2355 2667 3002 3565 6 2666 2355 2356 2668 3565 3566 6 2667 2356 2357 2669 3566 3567 6 2668 2357 2358 2670 3567 3568 6 2669 2358 2359 2671 3568 3569 6 2670 2359 2360 2672 3569 3570 6 2671 2360 2361 2362 2673 3570 6 2672 2362 2674 3570 3571 3572 6 2673 2362 2363 2675 3572 3573 6 2674 2363 2364 2676 3391 3573 6 2675 2364 2365 2677 3391 3392 6 2676 2365 2366 2678 3392 3393 6 2677 2366 2367 2679 3393 3394 6 2678 2367 2368 2680 3394 3579 6 2679 2368 2369 2681 3579 3580 6 2680 2369 2370 2682 3580 3581 6 2681 2370 2371 2683 3581 3582 6 2682 2371 2372 2684 3582 3583 6 2683 2372 2373 2685 3583 3584 6 2684 2373 2374 2686 3584 3585 6 2685 2374 2375 2687 3585 3586 6 2686 2375 2376 2688 3586 3587 6 2687 2376 2377 2689 3587 3588 6 2688 2377 2378 2690 3278 3588 6 2689 2378 2379 2691 3278 3279 6 2690 2379 2380 2692 3279 3280 6 2691 2380 2381 2693 3280 3281 6 2692 2381 2382 2694 3281 3282 6 2693 2382 2383 2695 3282 3283 6 2694 2383 2384 2696 3283 3284 6 2695 2384 2385 2697 3284 3285 6 2696 2385 2386 2698 3285 3286 6 2697 2386 2387 2699 3286 3287 6 2698 2387 2388 2700 3287 3288 6 2699 2388 2389 2701 3288 3289 6 2700 2389 2390 2702 3289 3290 6 2701 2390 2391 2703 3003 3290 6 2702 2391 2392 2704 3003 3004 6 2703 2392 2393 2705 3004 3005 6 2704 2393 2394 2706 3005 3006 6 2705 2394 2395 2707 3006 3007 6 2706 2395 2396 2708 3007 3008 6 2707 2396 2397 2709 3008 3009 6 2708 2397 2398 2513 2710 3009 6 2709 2513 2711 3009 3010 3011 6 2710 2513 2514 2712 3011 3012 6 2711 2514 2515 2713 3012 3013 6 2712 2515 2516 2714 3013 3014 6 2713 2516 2517 2715 3014 3015 6 2714 2517 2518 2716 3015 3016 6 2715 2518 2519 2717 3016 3017 6 2716 2519 2520 2718 3017 3018 6 2717 2520 2521 2719 3018 3019 6 2718 2521 2522 2720 3019 3020 6 2719 2522 2523 2721 3020 3021 6 2720 2523 2524 2722 3021 3022 6 2721 2524 2525 2723 3022 3023 6 2722 2525 2526 2724 3023 3024 6 2723 2526 2527 2725 3024 3025 6 2724 2527 2528 2726 3025 3026 6 2725 2528 2529 2727 3026 3027 6 2726 2529 2530 2728 3027 3028 6 2727 2530 2531 2729 3028 3029 6 2728 2531 2532 2730 3029 3030 6 2729 2532 2533 2731 3030 3031 6 2730 2533 2534 2732 3031 3032 6 2731 2534 2535 2733 3032 3033 6 2732 2535 2536 2734 3033 3034 6 2733 2536 2537 2735 3034 3035 6 2734 2537 2538 2736 3035 3036 6 2735 2538 2539 2737 3036 3037 6 2736 2539 2540 2552 2738 3037 6 2737 2552 2739 3037 3038 3039 6 2738 2552 2553 2740 3039 3040 6 2739 2553 2554 2570 2741 3040 6 2740 2570 2742 3040 3041 2743 6 2741 2570 2557 2558 2559 2743 6 2742 2559 2744 3041 2741 3049 5 2743 2559 2745 3049 3050 6 2744 2559 2437 2438 2746 3050 6 2745 2438 2439 2747 3050 3051 6 2746 2439 2748 3051 3052 2749 5 2747 2439 2440 2441 2749 6 2748 2441 2750 3052 2747 3058 7 2749 2441 2442 2445 3058 3059 3060 6 1746 1747 1748 2752 2893 2894 6 2751 1748 2233 2242 2753 2894 6 2752 2242 2754 2894 2895 2896 6 2753 2242 2243 2755 2896 2897 6 2754 2243 2756 2897 2898 2899 6 2755 2243 2244 2757 2899 2900 6 2756 2244 2245 2758 2900 2901 6 2757 2245 2759 2901 2902 2903 6 2758 2245 2246 2760 2903 2904 6 2759 2246 2247 2253 2761 2904 6 2760 2253 2254 2762 2904 2905 6 2761 2254 2255 2763 2905 2906 6 2762 2255 2256 2257 2764 2906 6 2763 2257 2765 2906 2907 2908 6 2764 2257 2258 2766 2908 2909 6 2765 2258 2259 2767 2909 2910 6 2766 2259 2260 2768 2910 2911 6 2767 2260 2261 2769 2911 2912 6 2768 2261 2262 2571 2770 2912 6 2769 2571 2771 2912 2913 2914 6 2770 2571 2572 2772 2914 2915 6 2771 2572 2573 2773 2915 2916 6 2772 2573 2574 2774 2916 2917 6 2773 2574 2575 2775 2917 2918 6 2774 2575 2576 2776 2918 2919 6 2775 2576 2577 2777 2919 2920 6 2776 2577 2578 2778 2920 2921 6 2777 2578 2579 2779 2921 2922 6 2778 2579 2580 2780 2922 2923 6 2779 2580 2581 2781 2923 2924 6 2780 2581 2582 2782 2924 2925 6 2781 2582 2583 2783 2925 2926 6 2782 2583 2584 2784 2926 2927 6 2783 2584 2585 2785 2927 2928 6 2784 2585 2586 2786 2928 2929 6 2785 2586 2587 2787 2929 2930 6 2786 2587 2588 2788 2930 2931 6 2787 2588 2589 2789 2931 2932 6 2788 2589 2590 2790 2932 2933 6 2789 2590 2591 2791 2933 2934 6 2790 2591 2592 2792 2934 2935 6 2791 2592 2593 2793 2935 2936 6 2792 2593 2594 2794 2936 2937 6 2793 2594 2595 2795 2937 2938 6 2794 2595 2596 2796 2938 2939 6 2795 2596 2597 2797 2939 2940 6 2796 2597 2598 2798 2940 2941 6 2797 2598 2599 2799 2941 2942 6 2798 2599 2600 2800 2942 2943 6 2799 2600 2601 2801 2943 2944 6 2800 2601 2602 2802 2944 2824 6 2801 2602 2603 2604 2803 2824 6 2802 2604 2606 2824 2825 2826 6 2173 2174 2175 2177 2805 3395 6 2804 2177 2806 3395 3396 3400 6 2805 2177 2178 2807 3400 3401 6 2806 2178 2808 3401 3402 3403 6 2807 2178 1731 3403 3404 1732 6 2499 2500 2810 4095 4093 4388 6 2809 2500 2501 2811 4388 2813 6 2810 2501 2812 1664 1666 2813 6 2811 2501 1656 1658 1661 1664 6 2811 1666 2814 3139 4388 2810 6 2813 1666 1667 2815 2817 3139 6 2814 1667 2816 2817 2818 2819 6 2815 1667 1668 2819 2820 2821 6 2814 2815 2818 3139 3140 3141 6 2817 2815 2819 3141 3142 3143 6 2818 2815 2816 2820 3143 3144 6 2819 2816 2821 3144 3145 3146 6 2820 2816 1668 2822 2823 3146 6 2821 1668 2823 1672 1671 1669 6 2821 2822 1672 3146 3147 1673 6 2802 2803 2825 2944 2801 2945 6 2824 2803 2826 2945 2946 2827 6 2825 2803 2606 2607 2608 2827 6 2826 2608 2828 2946 2825 2947 5 2827 2608 2609 2829 2947 6 2828 2609 2610 2830 2947 2948 6 2829 2610 2611 2831 2948 2949 6 2830 2611 2612 2832 2949 2950 6 2831 2612 2613 2833 2950 2951 6 2832 2613 2614 2834 2951 2952 7 2833 2614 2615 2617 2835 2952 2953 5 2834 2617 2836 2953 2954 6 2835 2617 2618 2837 2954 2955 6 2836 2618 2838 2839 2955 2956 6 2837 2618 2839 2840 2620 2619 6 2837 2838 2840 2956 2957 2958 6 2839 2838 2620 2958 2959 2621 6 408 2545 2842 2843 9690 429 6 2841 2545 2843 2844 2547 2845 6 2841 2842 2844 3168 9688 9690 6 2843 2842 3168 3165 3162 2845 6 2842 2547 2846 2847 3162 2844 6 2845 2547 2847 2848 2548 2857 6 2845 2846 2848 2849 3162 3163 6 2847 2846 2849 2850 2851 2857 6 2847 2848 2850 2852 2858 3163 6 2849 2848 2851 2852 2853 2854 6 2850 2848 2854 2855 2856 2857 6 2849 2850 2853 2858 2859 2860 5 2852 2850 2854 2860 6676 7 2853 2850 2851 2855 6676 6677 6678 7 2854 2851 2856 6689 6686 6680 6678 6 2855 2851 2857 6691 6689 2550 6 2856 2851 2848 2550 2548 2846 6 2849 2852 2859 3180 3163 6661 7 2858 2852 2860 6661 6674 6666 6662 6 2859 2852 2853 6675 6674 6676 5 1631 1633 1628 1629 1630 6 1628 1633 1636 2863 1627 7215 7 2862 1636 1637 2864 7216 7215 7217 5 2863 1637 1638 2865 7217 7 2864 1638 1639 2866 7217 7218 7219 7 2865 1639 1640 2867 3189 3214 7219 6 2866 1640 1641 2490 2868 3189 6 2867 2490 2869 3189 3190 3181 6 2868 2490 2480 2494 2870 3181 6 2869 2494 2871 2873 2884 3181 6 2870 2494 2495 2496 2872 2873 6 2871 2496 2873 2874 2881 2882 6 2871 2872 2874 2875 2870 2884 6 2873 2872 2875 2876 2880 2881 6 2873 2874 2876 2877 2884 2885 6 2875 2874 2877 2878 2879 2880 6 2875 2876 2878 2885 2886 2887 6 2877 2876 2879 2887 2888 2889 6 2878 2876 2880 2892 2889 7600 6 2879 2876 2874 2881 4086 7600 6 2880 2874 2872 2882 4086 4087 6 2881 2872 2496 2497 2883 4087 6 2882 2497 2498 4087 4088 4092 6 2870 2873 2875 2885 3181 3182 6 2884 2875 2877 2886 3182 3183 6 2885 2877 2887 3183 3184 3185 6 2886 2877 2878 2888 3188 3185 6 2887 2878 2889 2890 3959 3188 6 2888 2878 2890 2891 2892 2879 6 2888 2889 2891 3961 3959 7592 6 2890 2889 2892 7592 7593 7594 6 2891 2889 2879 7600 7597 7594 6 1745 1746 2751 2894 3199 3198 6 2893 2751 2752 2753 2895 3198 6 2894 2753 2896 3198 3200 3201 6 2895 2753 2754 2897 3201 3202 6 2896 2754 2755 2898 3202 3203 6 2897 2755 2899 3203 3204 3205 6 2898 2755 2756 2900 3205 3206 6 2899 2756 2757 2901 3206 3207 6 2900 2757 2758 2902 3207 3208 6 2901 2758 2903 3208 3209 3210 6 2902 2758 2759 2904 3213 3210 6 2903 2759 2760 2761 2905 3213 6 2904 2761 2762 2906 3483 3213 6 2905 2762 2763 2764 2907 3483 6 2906 2764 2908 3482 3212 3483 7 2907 2764 2765 2909 3500 3482 3697 6 2908 2765 2766 2910 3697 3698 6 2909 2766 2767 2911 3698 3699 6 2910 2767 2768 2912 3699 3700 6 2911 2768 2769 2770 2913 3700 6 2912 2770 2914 3700 3701 3702 6 2913 2770 2771 2915 3702 3703 6 2914 2771 2772 2916 3703 3704 6 2915 2772 2773 2917 3704 3705 6 2916 2773 2774 2918 3705 3706 6 2917 2774 2775 2919 3706 3707 6 2918 2775 2776 2920 3707 3708 6 2919 2776 2777 2921 3708 3709 6 2920 2777 2778 2922 3709 3710 6 2921 2778 2779 2923 3710 3711 6 2922 2779 2780 2924 3711 3712 6 2923 2780 2781 2925 3712 3713 6 2924 2781 2782 2926 3713 3714 6 2925 2782 2783 2927 3714 3715 6 2926 2783 2784 2928 3715 3716 6 2927 2784 2785 2929 3716 3717 6 2928 2785 2786 2930 3717 3718 6 2929 2786 2787 2931 3718 3719 6 2930 2787 2788 2932 3719 3720 6 2931 2788 2789 2933 3720 3721 6 2932 2789 2790 2934 3721 3722 6 2933 2790 2791 2935 3722 3723 6 2934 2791 2792 2936 3723 3724 6 2935 2792 2793 2937 3724 3725 6 2936 2793 2794 2938 3725 3726 6 2937 2794 2795 2939 3726 3727 6 2938 2795 2796 2940 3727 3728 6 2939 2796 2797 2941 3728 3729 6 2940 2797 2798 2942 3729 3730 6 2941 2798 2799 2943 3730 3731 6 2942 2799 2800 2944 3731 3732 6 2943 2800 2801 2824 2945 3732 6 2944 2824 2825 2946 3732 3733 6 2945 2825 2827 2947 3733 3734 6 2946 2827 2828 2829 2948 3734 7 2947 2829 2830 2949 3734 3735 3736 6 2948 2830 2831 2950 3242 3736 6 2949 2831 2832 2951 3242 3243 6 2950 2832 2833 2952 3243 3244 6 2951 2833 2834 2953 3244 3245 5 2952 2834 2835 2954 3245 7 2953 2835 2836 2955 3245 3246 3247 6 2954 2836 2837 2956 3247 3248 6 2955 2837 2839 2957 3248 3249 6 2956 2839 2958 3249 3250 3251 6 2957 2839 2840 2959 3251 3252 6 2958 2840 2621 2622 2960 3252 6 2959 2622 2623 2961 3254 3252 6 2960 2623 2624 2962 3254 3255 6 2961 2624 2625 2963 2964 3255 6 2962 2625 2964 2965 2966 2626 6 2962 2963 2965 3255 3256 3257 6 2964 2963 2966 3257 3258 3259 6 2965 2963 2626 2627 2967 3259 6 2966 2627 2628 2968 3259 3260 6 2967 2628 2629 2969 3260 3261 6 2968 2629 2630 2970 3261 3262 6 2969 2630 2631 2971 3262 3263 6 2970 2631 2632 2972 3263 3264 6 2971 2632 2633 2973 3264 3265 6 2972 2633 2634 2974 3265 3266 6 2973 2634 2635 2975 3266 3267 6 2974 2635 2636 2637 2976 3267 6 2975 2637 2639 2977 3267 3268 6 2976 2639 2978 3268 3269 3270 6 2977 2639 2640 2979 3270 3271 6 2978 2640 2642 2980 3271 3272 6 2979 2642 2643 2981 3272 3273 6 2980 2643 2644 2982 3273 3274 6 2981 2644 2645 2983 3274 3275 6 2982 2645 2646 2984 3275 3276 6 2983 2646 2647 2985 3276 3277 6 2984 2647 2648 2986 3277 3824 6 2985 2648 2649 2987 3545 3824 6 2986 2649 2650 2988 3545 3546 6 2987 2650 2651 2989 3546 3547 6 2988 2651 2652 2990 3547 3548 6 2989 2652 2653 2991 3548 3549 6 2990 2653 2654 2992 3549 3550 6 2991 2654 2656 2993 3550 3551 6 2992 2656 2657 2994 3551 3552 6 2993 2657 2658 2995 3552 3553 6 2994 2658 2659 2996 3553 3554 6 2995 2659 2997 3554 3555 3556 6 2996 2659 2660 2998 3556 3557 6 2997 2660 2661 2662 2999 3557 6 2998 2662 2663 3000 3557 3558 6 2999 2663 2664 3001 3558 3559 6 3000 2664 2665 3002 3559 3560 6 3001 2665 2666 3560 3561 3565 6 2702 2703 3004 3290 3291 3292 6 3003 2703 2704 3005 3292 3293 6 3004 2704 2705 3006 3293 3294 6 3005 2705 2706 3007 3294 3295 6 3006 2706 2707 3008 3295 3296 6 3007 2707 2708 3009 3296 3297 6 3008 2708 2709 2710 3010 3297 6 3009 2710 3011 3297 3298 3299 6 3010 2710 2711 3012 3299 3300 6 3011 2711 2712 3013 3300 3301 6 3012 2712 2713 3014 3301 3302 6 3013 2713 2714 3015 3302 3303 6 3014 2714 2715 3016 3303 3304 6 3015 2715 2716 3017 3304 3305 6 3016 2716 2717 3018 3305 3306 6 3017 2717 2718 3019 3306 3307 6 3018 2718 2719 3020 3307 3308 6 3019 2719 2720 3021 3308 3309 6 3020 2720 2721 3022 3309 3310 6 3021 2721 2722 3023 3310 3311 6 3022 2722 2723 3024 3311 3312 6 3023 2723 2724 3025 3312 3313 6 3024 2724 2725 3026 3313 3314 6 3025 2725 2726 3027 3314 3315 6 3026 2726 2727 3028 3315 3316 6 3027 2727 2728 3029 3316 3317 6 3028 2728 2729 3030 3317 3318 6 3029 2729 2730 3031 3318 3319 6 3030 2730 2731 3032 3319 3320 6 3031 2731 2732 3033 3320 3321 6 3032 2732 2733 3034 3321 3322 6 3033 2733 2734 3035 3042 3322 6 3034 2734 2735 3036 3042 3043 6 3035 2735 2736 3037 3043 3044 6 3036 2736 2737 2738 3038 3044 6 3037 2738 3039 3044 3045 3046 6 3038 2738 2739 3040 3046 3047 6 3039 2739 2740 2741 3041 3047 6 3040 2741 2743 3047 3048 3049 6 3034 3035 3043 3322 3323 3324 6 3042 3035 3036 3044 3324 3325 6 3043 3036 3037 3038 3045 3325 6 3044 3038 3046 3325 3326 3327 6 3045 3038 3039 3047 3053 3327 6 3046 3039 3040 3041 3048 3053 6 3047 3041 3049 3053 3054 3055 6 3048 3041 2743 2744 3050 3055 6 3049 2744 2745 2746 3051 3055 6 3050 2746 2747 3052 3055 3056 6 3051 2747 2749 3056 3057 3058 6 3046 3047 3048 3054 3327 3328 6 3053 3048 3055 3328 3329 3056 6 3054 3048 3049 3050 3051 3056 7 3055 3051 3052 3057 3329 3054 3641 5 3056 3052 3058 3641 3642 7 3057 3052 2749 2750 3059 3642 3643 6 3058 2750 3060 3643 3644 3061 5 3059 2750 2445 2446 3061 6 3060 2446 3062 3644 3059 3910 6 3061 2446 2447 3063 3910 3911 6 3062 2447 3064 3069 3911 3912 6 3063 2447 2448 2449 3065 3069 6 3064 2449 2450 3066 3069 3070 6 3065 2450 2451 3067 3070 3071 6 3066 2451 2452 3068 3071 3072 6 3067 2452 2454 3072 3073 3074 6 3063 3064 3065 3070 3912 3913 6 3069 3065 3066 3071 3913 3914 6 3070 3066 3067 3072 3914 3915 6 3071 3067 3068 3073 3915 3916 6 3072 3068 3074 3916 3917 3918 6 3073 3068 2454 2455 3075 3918 6 3074 2455 2456 2457 3076 3918 6 3075 2457 2458 3077 3349 3918 6 3076 2458 2459 3078 3349 3350 6 3077 2459 2460 3079 3107 3350 6 3078 2460 2461 3080 3107 3108 6 3079 2461 3081 3091 3108 3109 6 3080 2461 2462 3082 3091 3092 6 3081 2462 2463 3083 3084 3092 6 3082 2463 3084 3085 2482 2464 6 3082 3083 3085 3092 3112 3359 6 3084 3083 2482 3926 3152 3359 6 16 17 3087 3088 3089 3090 6 3086 17 18 3095 3126 3090 6 16 3086 3089 3098 417 15 6 3088 3086 3090 3098 3103 3104 6 3089 3086 3104 3105 3087 3126 6 3080 3081 3092 3109 3110 3111 6 3091 3081 3082 3084 3111 3112 5 1615 1616 3094 4099 3544 6 3093 1616 1617 4367 4099 1624 6 3087 18 19 3096 3125 3126 6 3095 19 20 3125 3128 414 6 2241 1657 1655 1647 1182 1184 6 3088 3089 417 3099 3102 3103 6 417 3098 418 3100 3101 3102 6 418 3099 3101 3228 3229 3684 6 3100 3099 3102 3226 3228 3498 7 3101 3099 3098 3103 3113 3498 3497 6 3102 3098 3089 3104 3113 3114 6 3103 3089 3090 3105 3106 3114 6 3104 3090 3106 3126 3124 3118 6 3104 3105 3116 3114 3117 3118 6 3078 3079 3108 3350 3351 3352 6 3107 3079 3080 3109 3352 3353 6 3108 3080 3091 3110 3353 3354 6 3109 3091 3111 3354 3355 3356 6 3110 3091 3092 3112 3356 3357 6 3111 3092 3084 3357 3358 3359 5 3102 3103 3114 3115 3497 6 3113 3103 3115 3116 3106 3104 7 3113 3114 3116 3497 3504 3501 3495 6 3115 3114 3106 3117 6712 3504 6 3116 3106 3118 3119 6712 6711 6 3117 3106 3119 3120 3124 3105 6 3117 3118 3120 3121 6711 6713 6 3119 3118 3121 3122 3123 3124 6 3119 3120 3122 3884 3887 6713 6 3121 3120 3123 3127 3883 3884 6 3122 3120 3124 3125 3127 3128 6 3123 3120 3118 3125 3126 3105 6 3123 3124 3126 3128 3095 3096 6 3125 3124 3105 3095 3087 3090 6 3122 3123 3128 3882 3339 3883 6 3127 3123 3125 414 3882 3096 6 2201 2203 3130 3851 3852 9781 6 3129 2203 2205 1525 1526 9781 6 2094 2095 3132 3133 9776 3138 6 2094 3131 3133 3134 3135 2093 6 3132 3131 3134 3136 3137 3138 6 3132 3133 3135 3136 5946 5945 6 3132 3134 5945 5943 5947 2093 6 3134 3133 3137 6090 6091 5946 6 3136 3133 3138 6090 6089 6092 6 3137 3133 6092 6093 9776 3131 6 2813 2814 2817 3140 4388 4386 6 3139 2817 3141 4385 4384 4386 6 3140 2817 2818 3142 4390 4385 6 3141 2818 3143 7767 4390 7768 6 3142 2818 2819 3144 7774 7768 6 3143 2819 2820 3145 7774 7775 6 3144 2820 3146 4231 7775 9791 6 3145 2820 2821 2823 3147 4231 6 3146 2823 1673 1674 3412 4231 6 2486 2487 3149 3156 3157 3161 6 2486 3148 3150 3151 3155 3156 6 2486 3149 3151 3152 3926 2484 6 3150 3149 3152 3153 3154 3155 6 3150 3151 3153 3926 3085 3359 6 3152 3151 3154 3358 3359 3360 6 3153 3151 3155 3360 3361 3362 6 3154 3151 3149 3156 3677 3362 6 3155 3149 3148 3157 3158 3677 6 3156 3148 3158 3159 3160 3161 6 3156 3157 3159 3676 3677 3945 6 3158 3157 3160 3945 3946 3962 6 3159 3157 3161 3962 3963 3964 6 3160 3157 3148 3967 3964 2487 6 2845 2847 3163 3164 3165 2844 6 3162 2847 3164 3180 2858 2849 6 3162 3163 3165 3166 3177 3180 6 3162 3164 3166 3167 3168 2844 6 3165 3164 3167 3177 3174 3171 6 3165 3166 3168 3169 3170 3171 6 3165 3167 3169 2843 2844 9688 6 3168 3167 3170 9687 9686 9688 5 3169 3167 3171 3172 9687 6 3170 3167 3172 3173 3174 3166 6 3170 3171 3173 9691 9687 6653 7 3172 3171 3174 3175 6654 6652 6653 6 3173 3171 3175 3176 3177 3166 5 3173 3174 3176 3450 6654 6 3175 3174 3177 3178 3179 3450 6 3176 3174 3178 3166 3164 3180 6 3176 3177 3179 3180 6660 6661 6 3176 3178 3450 6657 6659 6660 6 3177 3164 3178 3163 2858 6661 6 2869 2870 2884 3182 3190 2868 6 3181 2884 2885 3183 3216 3190 6 3182 2885 2886 3184 3193 3216 6 3183 2886 3185 3186 3192 3193 6 3184 2886 3186 3187 3188 2887 6 3184 3185 3187 3192 3196 7584 6 3186 3185 3188 3958 7586 7584 6 3187 3185 2887 3958 3959 2888 6 2867 2868 3190 2866 3214 3215 6 3189 2868 3181 3215 3216 3182 6 1741 1742 1744 3197 3198 3199 6 3184 3186 3193 3194 3195 3196 6 3184 3192 3194 7222 3216 3183 7 3193 3192 3195 7222 7221 7204 7203 6 3194 3192 3196 7196 7197 7203 6 3195 3192 3186 7583 7196 7584 6 1740 1741 3191 3198 3411 3200 7 3197 3191 3199 2893 2894 2895 3200 5 3198 3191 1744 1745 2893 6 3198 2895 3201 3411 3197 9751 6 3200 2895 2896 3202 3470 9751 6 3201 2896 2897 3203 3470 3471 6 3202 2897 2898 3204 3471 3472 6 3203 2898 3205 3472 3473 3474 6 3204 2898 2899 3206 3474 3475 6 3205 2899 2900 3207 3475 3476 6 3206 2900 2901 3208 3476 3477 6 3207 2901 2902 3209 3477 3478 6 3208 2902 3210 3211 3478 3479 6 3209 2902 3211 3212 3213 2903 6 3209 3210 3212 3479 3480 3481 7 3211 3210 3213 3481 3482 2907 3483 6 3212 3210 2903 3483 2905 2904 6 2866 3189 3215 7220 7219 7221 6 3214 3189 3190 3216 7221 7222 6 3215 3190 3182 7222 3193 3183 6 635 636 3218 4040 3763 3762 6 3217 636 638 3219 3484 4040 6 3218 638 3220 3221 3222 3484 6 3219 638 639 3221 3240 3241 6 3219 3220 3222 3223 3224 3241 6 3219 3221 3223 3484 3485 3486 6 3222 3221 3224 3225 3486 3487 6 3223 3221 3225 3226 3227 3241 6 3223 3224 3226 3493 3487 3494 7 3225 3224 3227 3228 3101 3494 3498 6 3226 3224 3228 3229 3230 3241 5 3226 3227 3101 3100 3229 6 3100 3228 3227 3230 3231 3684 6 3229 3227 3231 3232 3241 3240 6 3229 3230 3232 3233 3234 3684 6 3231 3230 3233 3240 3239 3236 7 3231 3232 3234 11 10 3235 3236 5 3231 3233 11 3684 12 6 10 3233 3236 3237 3238 9 6 3235 3233 3237 643 3239 3232 6 3235 3236 3238 647 644 643 5 3235 3237 9 8 647 6 643 3236 640 639 3240 3232 6 639 3239 3220 3241 3230 3232 6 3220 3240 3221 3224 3227 3230 6 2949 2950 3243 3736 3737 3738 6 3242 2950 2951 3244 3738 3739 6 3243 2951 2952 3245 3739 3740 7 3244 2952 2953 2954 3246 3740 3741 5 3245 2954 3247 3741 3742 6 3246 2954 2955 3248 3742 3743 6 3247 2955 2956 3249 3743 3744 6 3248 2956 2957 3250 3744 3745 6 3249 2957 3251 3745 3746 3747 6 3250 2957 2958 3252 3253 3747 6 3251 2958 3253 3254 2960 2959 6 3251 3252 3254 3747 3748 3749 6 3253 3252 2960 2961 3255 3749 6 3254 2961 2962 2964 3256 3749 6 3255 2964 3257 3749 3750 3751 6 3256 2964 2965 3258 3751 3752 6 3257 2965 3259 3752 3753 3754 6 3258 2965 2966 2967 3260 3754 6 3259 2967 2968 3261 3754 3755 6 3260 2968 2969 3262 3755 3756 6 3261 2969 2970 3263 3756 3757 6 3262 2970 2971 3264 3757 3758 6 3263 2971 2972 3265 3758 3759 7 3264 2972 2973 3266 3759 4054 4051 5 3265 2973 2974 3267 4054 6 3266 2974 2975 2976 3268 4054 7 3267 2976 2977 3269 4054 4053 4055 5 3268 2977 3270 4055 4056 6 3269 2977 2978 3271 4056 4057 6 3270 2978 2979 3272 4057 4058 6 3271 2979 2980 3273 4058 4059 6 3272 2980 2981 3274 4059 4060 6 3273 2981 2982 3275 4060 4061 6 3274 2982 2983 3276 4064 4061 6 3275 2983 2984 3277 4064 4065 6 3276 2984 2985 3826 4065 3824 6 2689 2690 3279 3588 3589 3590 6 3278 2690 2691 3280 3590 3591 6 3279 2691 2692 3281 3591 3592 6 3280 2692 2693 3282 3592 3593 6 3281 2693 2694 3283 3593 3594 6 3282 2694 2695 3284 3594 3595 6 3283 2695 2696 3285 3595 3596 6 3284 2696 2697 3286 3596 3597 6 3285 2697 2698 3287 3597 3598 6 3286 2698 2699 3288 3598 3599 6 3287 2699 2700 3289 3599 3600 6 3288 2700 2701 3290 3600 3601 6 3289 2701 2702 3003 3291 3601 6 3290 3003 3292 3601 3602 3603 6 3291 3003 3004 3293 3603 3604 6 3292 3004 3005 3294 3604 3605 6 3293 3005 3006 3295 3605 3606 6 3294 3006 3007 3296 3606 3607 6 3295 3007 3008 3297 3607 3608 6 3296 3008 3009 3010 3298 3608 6 3297 3010 3299 3608 3609 3610 6 3298 3010 3011 3300 3610 3611 6 3299 3011 3012 3301 3611 3612 6 3300 3012 3013 3302 3612 3613 6 3301 3013 3014 3303 3613 3614 6 3302 3014 3015 3304 3614 3615 6 3303 3015 3016 3305 3615 3616 6 3304 3016 3017 3306 3616 3617 6 3305 3017 3018 3307 3617 3618 6 3306 3018 3019 3308 3618 3619 6 3307 3019 3020 3309 3619 3620 6 3308 3020 3021 3310 3620 3621 6 3309 3021 3022 3311 3621 3622 6 3310 3022 3023 3312 3622 3623 6 3311 3023 3024 3313 3623 3624 6 3312 3024 3025 3314 3624 3625 6 3313 3025 3026 3315 3625 3626 6 3314 3026 3027 3316 3626 3627 6 3315 3027 3028 3317 3627 3628 6 3316 3028 3029 3318 3628 3629 6 3317 3029 3030 3319 3629 3630 6 3318 3030 3031 3320 3630 3631 6 3319 3031 3032 3321 3631 3632 6 3320 3032 3033 3322 3632 3633 6 3321 3033 3034 3042 3323 3633 6 3322 3042 3324 3633 3634 3635 6 3323 3042 3043 3325 3635 3636 6 3324 3043 3044 3045 3326 3636 6 3325 3045 3327 3636 3637 3638 6 3326 3045 3046 3053 3328 3638 6 3327 3053 3054 3329 3638 3639 6 3328 3054 3056 3639 3640 3641 6 2507 2508 32 33 3331 3880 6 3330 33 34 2248 3332 3880 6 3331 2248 3333 3334 3880 3881 6 3332 2248 3334 3335 3336 2249 6 3332 3333 3335 9707 6499 3881 6 3334 3333 3336 9706 6492 9707 6 3335 3333 2249 2250 2251 9706 6 1171 1172 1524 3338 3339 3882 6 3337 1524 3339 3340 3341 4250 6 3337 3338 3340 3882 3127 3883 6 3339 3338 3341 3342 3885 3883 6 3340 3338 3342 3343 2206 4250 6 3340 3341 3343 3861 6717 3885 6 3342 3341 2206 2207 3344 3861 6 3343 2207 2209 3345 3346 3861 6 3344 2209 3346 3347 3348 2211 6 3344 3345 3347 3861 3862 3863 6 3346 3345 3348 6532 3863 6524 6 3347 3345 2211 2213 6523 6524 6 3076 3077 3350 3918 3917 3919 6 3349 3077 3078 3107 3351 3919 6 3350 3107 3352 3919 3920 3921 6 3351 3107 3108 3353 3921 3922 6 3352 3108 3109 3354 3922 3923 6 3353 3109 3110 3355 3923 3924 6 3354 3110 3356 3924 3925 3374 6 3355 3110 3111 3357 3368 3374 6 3356 3111 3112 3358 3367 3368 6 3357 3112 3359 3153 3360 3367 6 3358 3112 3153 3085 3152 3084 6 3358 3153 3154 3361 3363 3367 6 3360 3154 3362 3363 3364 3678 6 3361 3154 3155 3677 3675 3678 6 3360 3361 3364 3365 3366 3367 6 3363 3361 3365 3678 3667 3668 6 3363 3364 3366 3373 3370 3668 6 3363 3365 3367 3368 3369 3370 6 3363 3366 3368 3360 3358 3357 6 3367 3366 3369 3357 3356 3374 6 3368 3366 3370 3371 3374 3375 6 3369 3366 3371 3372 3373 3365 6 3369 3370 3372 3375 3376 3377 6 3371 3370 3373 3377 3378 3379 6 3372 3370 3365 3379 3380 3668 6 3356 3368 3369 3375 3925 3355 7 3374 3369 3371 3376 3943 3925 4342 5 3375 3371 3377 4342 4343 6 3376 3371 3372 3378 4343 4344 6 3377 3372 3379 3645 4347 4344 6 3378 3372 3373 3380 3381 3645 6 3379 3373 3381 3382 3668 3656 6 3379 3380 3382 3383 3384 3645 6 3381 3380 3383 3390 3387 3656 6 3381 3382 3384 3385 3386 3387 6 3381 3383 3385 3645 3646 3647 6 3384 3383 3386 3647 3648 3649 6 3385 3383 3387 3388 3649 3650 6 3386 3383 3388 3389 3390 3382 6 3386 3387 3389 3650 3651 3652 6 3388 3387 3390 3652 3653 3654 6 3389 3387 3382 3654 3655 3656 6 2675 2676 3392 3573 3574 3575 6 3391 2676 2677 3393 3575 3576 6 3392 2677 2678 3394 3576 3577 6 3393 2678 2679 3577 3578 3579 6 2173 2804 2805 3396 3397 4747 6 3395 2805 3397 3398 3399 3400 6 3395 3396 3398 3892 4747 4746 6 3397 3396 3399 3892 3893 3894 6 3398 3396 3400 3894 3895 3896 6 3399 3396 2805 2806 3401 3896 6 3400 2806 2807 3402 3896 3897 6 3401 2807 3403 3897 3898 3899 6 3402 2807 2808 3404 3899 3900 6 3403 2808 1732 3405 3679 3900 6 3404 1732 1733 1734 3406 3679 6 3405 1734 1735 3407 3679 3680 6 3406 1735 1736 3408 3680 3681 6 3407 1736 1737 3409 3683 3681 6 3408 1737 1738 3410 3470 3683 6 3409 1738 1739 3411 9751 3470 6 3410 1739 1740 3197 3200 9751 6 3147 1674 1675 1676 3413 4231 6 3412 1676 1677 3414 9791 4231 6 3413 1677 3415 7778 7776 9791 6 3414 1677 1678 7778 7779 5382 6 1695 1696 3417 3786 1694 3787 6 3416 1696 1697 3418 3787 3789 6 3417 1697 1698 2223 3419 3789 6 3418 2223 3420 3789 3790 3791 6 3419 2223 2224 3421 3791 3792 6 3420 2224 2225 3422 3423 3792 6 3421 2225 3423 3424 3425 3426 6 3421 3422 3424 3794 3792 3795 6 3423 3422 3425 3795 3796 3797 6 3424 3422 3426 3797 3798 3799 6 3425 3422 2225 2226 3427 3799 6 3426 2226 2227 3428 3799 3800 6 3427 2227 2228 3429 3800 3801 6 3428 2228 3430 3801 3802 3432 6 3429 2228 2229 2238 3431 3432 6 3430 2238 3432 3433 3434 3435 6 3430 3431 3433 3442 3802 3429 6 3432 3431 3434 3442 3443 3444 6 3433 3431 3435 3444 3445 3446 6 3434 3431 2238 2239 2561 3446 6 2491 2492 3437 3438 3515 2493 6 2491 3436 3438 3439 3440 3441 6 3437 3436 3439 3513 3514 3515 6 3437 3438 3440 3508 3509 3513 6 3437 3439 3441 3451 3453 3508 6 3437 3440 2491 70 3451 69 6 3432 3433 3443 3802 3803 3804 6 3442 3433 3444 3804 3805 3806 6 3443 3433 3434 3445 3806 3807 6 3444 3434 3446 3807 3808 3447 6 3445 3434 3435 2561 2562 3447 6 3446 2562 3448 3808 3445 4107 6 3447 2562 2563 3449 3454 4107 6 3448 2563 2567 3454 3455 2568 7 3175 3176 3179 6655 6654 6656 6657 6 3441 3440 69 68 3452 3453 6 68 3451 3453 67 3505 3506 6 3452 3451 3440 3506 3507 3508 6 3448 3449 3455 3456 4107 4108 6 3454 3449 3456 3457 3458 2568 6 3454 3455 3457 3464 4110 4108 6 3456 3455 3458 3459 3460 3464 6 3457 3455 3459 3463 2569 2568 6 3457 3458 3460 3461 3462 3463 6 3457 3459 3461 3464 3465 3466 6 3460 3459 3462 3466 3467 3469 6 3461 3459 3463 1721 3469 1720 6 3462 3459 3458 2569 1720 1719 6 3456 3457 3460 3465 4394 4110 6 3464 3460 3466 4404 4394 4745 6 3465 3460 3461 3467 3468 4745 6 3466 3461 3468 2172 1724 3469 6 3466 3467 2172 4745 4746 4747 6 1724 3467 1722 1721 3462 3461 7 3201 3202 3471 9751 3410 3409 3683 6 3470 3202 3203 3472 3681 3683 6 3471 3203 3204 3473 3682 3681 6 3472 3204 3474 3685 3902 3682 6 3473 3204 3205 3475 3685 3686 6 3474 3205 3206 3476 3686 3687 6 3475 3206 3207 3477 3687 3688 6 3476 3207 3208 3478 3688 3689 6 3477 3208 3209 3479 3689 3690 6 3478 3209 3211 3480 3690 3691 6 3479 3211 3481 3499 3694 3691 6 3480 3211 3212 3482 3499 3500 5 3481 3212 2907 3500 2908 5 2907 3212 3213 2905 2906 6 3218 3219 3222 3485 4039 4040 6 3484 3222 3486 3489 3968 4039 6 3485 3222 3223 3487 3488 3489 6 3486 3223 3488 3492 3493 3225 6 3486 3487 3489 3490 3491 3492 6 3486 3488 3490 3485 3968 3969 6 3489 3488 3491 3969 3970 3971 6 3490 3488 3492 3971 9747 6555 6 3491 3488 3487 3493 3496 9747 6 3492 3487 3225 3494 3495 3496 6 3493 3225 3226 3495 3497 3498 6 3493 3494 3496 3497 3501 3115 6 3493 3495 3492 3501 3502 9747 6 3495 3494 3498 3102 3113 3115 5 3497 3494 3226 3101 3102 6 3480 3481 3500 3694 3695 3696 6 3499 3481 3482 2908 3696 3697 6 3496 3495 3502 3503 3504 3115 6 3496 3501 3503 9747 6706 9748 6 3502 3501 3504 6712 6710 9748 5 3503 3501 3115 6712 3116 6 67 3452 3506 6697 6703 66 6 3505 3452 3453 3507 6697 6704 6 3506 3453 3508 3510 4522 6704 6 3507 3453 3440 3439 3509 3510 6 3508 3439 3510 3511 3512 3513 6 3508 3509 3511 3770 3507 4522 6 3510 3509 3512 3770 3771 3772 6 3511 3509 3513 3772 3773 3520 6 3512 3509 3439 3438 3514 3520 6 3513 3438 3515 3520 3521 3517 6 3514 3438 3436 2493 3516 3517 6 3515 2493 3517 3518 1607 1606 6 3515 3516 3518 3521 3514 3522 6 3517 3516 1607 1613 3522 3523 5 1613 1607 1605 1608 1610 6 3513 3514 3521 3773 3512 4531 6 3520 3514 3517 3522 4116 4531 6 3521 3517 3518 3523 3525 4116 6 3522 3518 1613 1614 3524 3525 6 3523 1614 3525 3526 3527 3528 6 3523 3524 3526 3522 4116 4117 6 3525 3524 3527 3529 4117 4118 6 3526 3524 3528 3529 3530 3543 6 3527 3524 1614 3543 3544 1615 6 3526 3527 3530 3531 4118 9786 6 3529 3527 3531 3532 3542 3543 6 3529 3530 3532 3533 9786 9787 6 3531 3530 3533 3534 3541 3542 6 3531 3532 3534 3535 9787 9788 6 3533 3532 3535 3536 3540 3541 6 3533 3534 3536 3537 9788 7178 6 3535 3534 3537 3538 3539 3540 6 3535 3536 3538 7182 7179 7178 6 3537 3536 3539 7182 7183 7184 6 3538 3536 3540 7184 7185 7212 6 3539 3536 3534 3541 7212 4372 6 3540 3534 3532 3542 4372 4097 6 3541 3532 3530 3543 4096 4097 6 3542 3530 3527 3528 3544 4096 6 3543 3528 1615 4099 4096 3093 6 2986 2987 3546 3824 3825 3829 6 3545 2987 2988 3547 3829 3830 6 3546 2988 2989 3548 3830 3831 6 3547 2989 2990 3549 3831 3832 6 3548 2990 2991 3550 3832 3833 6 3549 2991 2992 3551 3809 3833 6 3550 2992 2993 3552 3809 3810 6 3551 2993 2994 3553 3810 3811 6 3552 2994 2995 3554 3811 3812 6 3553 2995 2996 3555 3812 3813 6 3554 2996 3556 3813 3814 3815 6 3555 2996 2997 3557 3815 3816 6 3556 2997 2998 2999 3558 3816 6 3557 2999 3000 3559 3816 3817 6 3558 3000 3001 3560 3817 3818 6 3559 3001 3002 3561 3562 3818 6 3560 3002 3562 3563 3564 3565 6 3560 3561 3563 3818 3819 3820 6 3562 3561 3564 3820 3821 3822 6 3563 3561 3565 3822 3823 3566 6 3564 3561 3002 2666 2667 3566 6 3565 2667 2668 3567 3823 3564 6 3566 2668 2669 3568 3850 3823 6 3567 2669 2670 3569 3879 3850 6 3568 2670 2671 3570 3891 3879 6 3569 2671 2672 2673 3571 3891 6 3570 2673 3572 4237 3891 4257 6 3571 2673 2674 3573 4257 4258 6 3572 2674 2675 3391 3574 4258 6 3573 3391 3575 4258 4259 4263 6 3574 3391 3392 3576 4263 4264 6 3575 3392 3393 3577 4264 4265 6 3576 3393 3394 3578 4265 4266 6 3577 3394 3579 4266 4267 4268 6 3578 3394 2679 2680 3580 4268 6 3579 2680 2681 3581 4141 4268 6 3580 2681 2682 3582 4141 4142 6 3581 2682 2683 3583 4142 4143 6 3582 2683 2684 3584 4143 4144 6 3583 2684 2685 3585 4144 4145 6 3584 2685 2686 3586 4145 4146 6 3585 2686 2687 3587 4146 4147 6 3586 2687 2688 3588 4147 4148 6 3587 2688 2689 3278 3589 4148 6 3588 3278 3590 4148 4149 4150 6 3589 3278 3279 3591 4150 4151 6 3590 3279 3280 3592 4151 4152 6 3591 3280 3281 3593 4152 4153 6 3592 3281 3282 3594 4153 4154 6 3593 3282 3283 3595 4154 4155 6 3594 3283 3284 3596 4155 4156 6 3595 3284 3285 3597 4156 4157 6 3596 3285 3286 3598 4157 4158 6 3597 3286 3287 3599 4158 4159 6 3598 3287 3288 3600 4159 4160 6 3599 3288 3289 3601 4160 4161 6 3600 3289 3290 3291 3602 4161 6 3601 3291 3603 4161 4162 4163 6 3602 3291 3292 3604 4163 4164 6 3603 3292 3293 3605 4164 4165 6 3604 3293 3294 3606 4165 4166 6 3605 3294 3295 3607 4166 4167 6 3606 3295 3296 3608 4167 4168 6 3607 3296 3297 3298 3609 4168 6 3608 3298 3610 4168 4169 4170 6 3609 3298 3299 3611 4170 4171 6 3610 3299 3300 3612 4171 4172 6 3611 3300 3301 3613 4172 4173 6 3612 3301 3302 3614 4173 4174 6 3613 3302 3303 3615 4174 4175 6 3614 3303 3304 3616 4175 4176 6 3615 3304 3305 3617 4176 4177 6 3616 3305 3306 3618 4177 4178 6 3617 3306 3307 3619 4178 4179 6 3618 3307 3308 3620 4179 4180 6 3619 3308 3309 3621 4180 4181 6 3620 3309 3310 3622 4181 4182 6 3621 3310 3311 3623 4182 4183 6 3622 3311 3312 3624 4183 4184 6 3623 3312 3313 3625 4184 4185 6 3624 3313 3314 3626 4185 4186 6 3625 3314 3315 3627 4186 4187 6 3626 3315 3316 3628 4187 4188 6 3627 3316 3317 3629 4188 4189 6 3628 3317 3318 3630 4189 4190 6 3629 3318 3319 3631 4190 4191 6 3630 3319 3320 3632 4191 4192 6 3631 3320 3321 3633 4192 4193 6 3632 3321 3322 3323 3634 4193 6 3633 3323 3635 3903 4193 4194 6 3634 3323 3324 3636 3903 3904 6 3635 3324 3325 3326 3637 3904 6 3636 3326 3638 3904 3905 3906 6 3637 3326 3327 3328 3639 3906 6 3638 3328 3329 3640 3906 3907 6 3639 3329 3641 3907 3908 3642 5 3640 3329 3056 3057 3642 7 3641 3057 3058 3643 3908 3640 3927 6 3642 3058 3059 3644 3909 3927 5 3643 3059 3061 3909 3910 6 3381 3384 3646 3379 3378 4347 6 3645 3384 3647 4347 4348 4349 6 3646 3384 3385 3648 4352 4349 6 3647 3385 3649 3657 4352 4353 6 3648 3385 3386 3650 3657 3658 6 3649 3386 3388 3651 3658 3659 6 3650 3388 3652 3659 3660 3661 6 3651 3388 3389 3653 3661 3662 6 3652 3389 3654 3662 3663 3664 6 3653 3389 3390 3655 3664 3665 6 3654 3390 3656 3665 3666 3667 6 3655 3390 3382 3667 3668 3380 6 3648 3649 3658 4353 4354 4358 6 3657 3649 3650 3659 4371 4358 6 3658 3650 3651 3660 9793 4371 6 3659 3651 3661 4906 4908 9793 6 3660 3651 3652 3662 3669 4906 6 3661 3652 3653 3663 3669 3670 6 3662 3653 3664 3670 3671 3672 6 3663 3653 3654 3665 3672 3673 6 3664 3654 3655 3666 3673 3674 6 3665 3655 3667 3674 3675 3678 6 3666 3655 3656 3668 3364 3678 6 3667 3656 3380 3364 3365 3373 6 3661 3662 3670 4903 4905 4906 6 3669 3662 3663 3671 4902 4903 6 3670 3663 3672 5918 4902 3951 6 3671 3663 3664 3673 3950 3951 6 3672 3664 3665 3674 3944 3950 6 3673 3665 3666 3675 3676 3944 6 3674 3666 3676 3677 3362 3678 6 3674 3675 3677 3158 3944 3945 6 3676 3675 3158 3156 3155 3362 6 3362 3675 3361 3364 3667 3666 6 3404 3405 3406 3680 3900 3901 6 3679 3406 3407 3681 3682 3901 7 3680 3407 3682 3472 3471 3683 3408 6 3680 3681 3472 3901 3902 3473 5 3471 3681 3408 3409 3470 7 418 3100 3229 3231 3234 12 13 7 3473 3474 3686 3902 4665 4664 4688 5 3685 3474 3475 3687 4688 7 3686 3475 3476 3688 4688 4689 4690 6 3687 3476 3477 3689 4690 4691 6 3688 3477 3478 3690 4691 4692 6 3689 3478 3479 3691 3692 4692 6 3690 3479 3692 3693 3694 3480 6 3690 3691 3693 4692 4693 4694 6 3692 3691 3694 4694 4695 4696 6 3693 3691 3480 3499 3695 4696 6 3694 3499 3696 4696 4697 4698 6 3695 3499 3500 3697 4698 4699 6 3696 3500 2908 2909 3698 4699 6 3697 2909 2910 3699 3972 4699 6 3698 2910 2911 3700 3972 3973 6 3699 2911 2912 2913 3701 3973 6 3700 2913 3702 3973 3974 3975 6 3701 2913 2914 3703 3975 3976 6 3702 2914 2915 3704 3976 3977 6 3703 2915 2916 3705 3977 3978 6 3704 2916 2917 3706 3978 3979 6 3705 2917 2918 3707 3979 3980 6 3706 2918 2919 3708 3980 3981 6 3707 2919 2920 3709 3981 3982 6 3708 2920 2921 3710 3982 3983 6 3709 2921 2922 3711 3983 3984 6 3710 2922 2923 3712 3984 3985 6 3711 2923 2924 3713 3985 3986 6 3712 2924 2925 3714 3986 3987 6 3713 2925 2926 3715 3987 3988 6 3714 2926 2927 3716 3988 3989 6 3715 2927 2928 3717 3989 3990 6 3716 2928 2929 3718 3990 3991 6 3717 2929 2930 3719 3991 3992 6 3718 2930 2931 3720 3992 3993 6 3719 2931 2932 3721 3993 3994 6 3720 2932 2933 3722 3994 3995 6 3721 2933 2934 3723 3995 3996 6 3722 2934 2935 3724 3996 3997 6 3723 2935 2936 3725 3997 3998 6 3724 2936 2937 3726 3998 3999 6 3725 2937 2938 3727 3999 4000 6 3726 2938 2939 3728 4000 4001 6 3727 2939 2940 3729 4001 4002 6 3728 2940 2941 3730 4002 4003 6 3729 2941 2942 3731 4003 4004 6 3730 2942 2943 3732 4004 4005 6 3731 2943 2944 2945 3733 4005 6 3732 2945 2946 3734 4005 4006 6 3733 2946 2947 2948 3735 4006 6 3734 2948 3736 4006 4007 3737 5 3735 2948 2949 3242 3737 6 3736 3242 3738 4007 3735 4012 6 3737 3242 3243 3739 4012 4013 6 3738 3243 3244 3740 4013 4014 6 3739 3244 3245 3741 4014 4015 6 3740 3245 3246 3742 4015 4016 6 3741 3246 3247 3743 4016 4017 6 3742 3247 3248 3744 4017 4018 6 3743 3248 3249 3745 4018 4019 6 3744 3249 3250 3746 4019 4020 6 3745 3250 3747 4020 4021 4022 6 3746 3250 3251 3253 3748 4022 6 3747 3253 3749 4022 4023 4024 7 3748 3253 3254 3255 3256 3750 4024 5 3749 3256 3751 4024 4025 6 3750 3256 3257 3752 4025 4026 6 3751 3257 3258 3753 4029 4026 7 3752 3258 3754 4037 4029 4046 3755 5 3753 3258 3259 3260 3755 6 3754 3260 3261 3756 4046 3753 6 3755 3261 3262 3757 4046 4047 6 3756 3262 3263 3758 4047 4048 6 3757 3263 3264 3759 4048 4049 6 3758 3264 3265 4049 4050 4051 6 615 617 3761 3764 3765 3763 6 3760 617 625 627 3762 3763 6 3761 627 3763 3217 635 629 6 3761 3762 3765 3760 4040 3217 6 615 3760 3765 4038 6557 612 6 3764 3760 3763 4038 4039 4040 5 2085 1567 3767 3768 6093 6 3766 1567 3768 3769 1571 1568 6 3766 3767 3769 6092 6093 6094 7 3768 3767 1571 6094 6088 6317 6318 6 3510 3511 3771 4522 4523 4524 6 3770 3511 3772 4524 4525 4528 6 3771 3511 3512 3773 4528 4529 6 3772 3512 3520 4529 4530 4531 6 1682 1683 3775 5391 5385 5383 6 3774 1683 3776 5620 5391 3778 6 3775 1683 1684 1686 3777 3778 6 3776 1686 3778 3779 3780 3781 6 3776 3777 3779 7791 5620 3775 6 3778 3777 3780 7798 7792 7791 6 3779 3777 3781 7798 3783 3782 6 3780 3777 1686 1687 1688 3782 6 3781 1688 1689 1691 3783 3780 6 3782 1691 3784 7798 3780 7799 6 3783 1691 1692 3785 7799 7800 6 3784 1692 3786 3787 3788 7800 6 3785 1692 1693 1694 3416 3787 6 3786 3416 3417 3785 3788 3789 6 3785 3787 3789 7800 7801 3790 6 3788 3787 3417 3418 3419 3790 6 3789 3419 3791 7801 3788 7802 6 3790 3419 3420 3792 3793 7802 6 3791 3420 3793 3794 3423 3421 6 3791 3792 3794 7802 7803 7804 6 3793 3792 3423 3795 7804 7805 6 3794 3423 3424 3796 7809 7805 6 3795 3424 3797 3952 7809 7810 6 3796 3424 3425 3798 3952 3953 6 3797 3425 3799 3953 3954 3955 6 3798 3425 3426 3427 3800 3955 6 3799 3427 3428 3801 3955 3956 6 3800 3428 3429 3802 3956 3957 6 3801 3429 3432 3442 3803 3957 6 3802 3442 3804 3957 4100 4239 6 3803 3442 3443 3805 4100 4101 6 3804 3443 3806 4101 4102 4103 6 3805 3443 3444 3807 4103 4104 6 3806 3444 3445 3808 4104 4105 6 3807 3445 3447 4105 4106 4107 6 3550 3551 3810 3833 3834 3835 6 3809 3551 3552 3811 3835 3836 6 3810 3552 3553 3812 3836 3837 6 3811 3553 3554 3813 3837 3838 6 3812 3554 3555 3814 3838 3839 6 3813 3555 3815 3839 3840 3841 6 3814 3555 3556 3816 3841 3842 6 3815 3556 3557 3558 3817 3842 6 3816 3558 3559 3818 3842 3843 6 3817 3559 3560 3562 3819 3843 6 3818 3562 3820 3843 3844 3845 6 3819 3562 3563 3821 3845 3846 6 3820 3563 3822 3846 3847 3848 6 3821 3563 3564 3823 3848 3849 6 3822 3564 3566 3849 3850 3567 6 2986 3545 3825 3826 3277 2985 6 3824 3545 3826 3827 3828 3829 6 3824 3825 3827 4069 4065 3277 6 3826 3825 3828 4756 4069 4763 6 3827 3825 3829 4763 4764 4765 6 3828 3825 3545 3546 3830 4765 6 3829 3546 3547 3831 4765 4766 6 3830 3547 3548 3832 4766 4767 6 3831 3548 3549 3833 4770 4767 6 3832 3549 3550 3809 3834 4770 6 3833 3809 3835 5016 4770 5024 6 3834 3809 3810 3836 5024 5025 6 3835 3810 3811 3837 5025 5026 6 3836 3811 3812 3838 4405 5026 6 3837 3812 3813 3839 3864 4405 6 3838 3813 3814 3840 3864 3865 6 3839 3814 3841 3865 3866 3867 6 3840 3814 3815 3842 3853 3867 6 3841 3815 3816 3817 3843 3853 6 3842 3817 3818 3819 3844 3853 6 3843 3819 3845 3853 3854 3855 6 3844 3819 3820 3846 3855 3856 6 3845 3820 3821 3847 3856 3857 6 3846 3821 3848 3860 3857 3876 6 3847 3821 3822 3849 3876 3877 6 3848 3822 3823 3850 3877 3878 6 3849 3823 3567 3878 3879 3568 6 2181 2199 2179 3852 2201 3129 6 2179 3851 27 26 3129 9781 6 3841 3842 3843 3844 3854 3867 6 3853 3844 3855 3867 3868 3869 6 3854 3844 3845 3856 3869 3870 6 3855 3845 3846 3857 3858 3870 6 3856 3846 3858 3859 3860 3847 6 3856 3857 3859 3870 3871 3872 6 3858 3857 3860 3872 3873 3874 6 3859 3857 3847 3874 3875 3876 6 3343 3344 3346 3862 6717 3342 6 3861 3346 3863 6716 6715 6717 7 3862 3346 6532 6531 3347 6533 6716 6 3838 3839 3865 4405 4406 4407 6 3864 3839 3840 3866 4407 4408 6 3865 3840 3867 4408 4409 3868 6 3866 3840 3841 3853 3854 3868 6 3867 3854 3869 4409 3866 4420 6 3868 3854 3855 3870 4420 4421 6 3869 3855 3856 3858 3871 4421 6 3870 3858 3872 4421 4422 4423 6 3871 3858 3859 3873 4423 4424 6 3872 3859 3874 4424 4425 4426 6 3873 3859 3860 3875 4426 4427 6 3874 3860 3876 4427 4428 3888 6 3875 3860 3847 3848 3877 3888 6 3876 3848 3849 3878 3888 3889 6 3877 3849 3850 3879 3889 3890 6 3878 3850 3568 3890 3891 3569 6 2507 3330 2509 3881 3331 3332 6 2509 3880 3334 6499 2511 3332 6 3337 3339 3127 1171 414 3128 6 3127 3339 3122 3884 3885 3340 6 3122 3883 3885 3886 3887 3121 6 3884 3883 3886 3342 6717 3340 6 3884 3885 3887 6538 6715 6717 6 3884 3886 3121 6713 6714 6538 6 3876 3877 3889 4428 3875 4251 6 3888 3877 3878 3890 4236 4251 6 3889 3878 3879 3891 4236 4237 6 3890 3879 3569 4237 3571 3570 6 3397 3398 3893 4746 4744 4743 6 3892 3398 3894 4743 4748 4749 6 3893 3398 3399 3895 4752 4749 6 3894 3399 3896 4661 4758 4752 6 3895 3399 3400 3401 3897 4661 6 3896 3401 3402 3898 4661 4662 6 3897 3402 3899 4662 4663 4664 6 3898 3402 3403 3900 4664 4665 6 3899 3403 3404 3679 3901 4665 6 3900 3679 3680 3682 3902 4665 5 3901 3682 3473 4665 3685 6 3634 3635 3904 4194 4195 4196 6 3903 3635 3636 3637 3905 4196 6 3904 3637 3906 4196 4197 4198 6 3905 3637 3638 3639 3907 4198 6 3906 3639 3640 3908 4198 4199 6 3907 3640 3642 3927 4199 4200 5 3643 3644 3910 3927 3928 7 3909 3644 3061 3062 3911 3928 3929 7 3910 3062 3063 3912 3929 3930 3931 6 3911 3063 3069 3913 3931 3932 6 3912 3069 3070 3914 3932 3933 6 3913 3070 3071 3915 3933 3934 6 3914 3071 3072 3916 3934 3935 6 3915 3072 3073 3917 3935 3936 6 3916 3073 3918 3349 3919 3936 6 3917 3073 3074 3075 3076 3349 6 3917 3349 3350 3351 3920 3936 6 3919 3351 3921 3936 3937 3938 6 3920 3351 3352 3922 3938 3939 6 3921 3352 3353 3923 3939 3940 6 3922 3353 3354 3924 3940 3941 6 3923 3354 3355 3925 3941 3942 6 3924 3355 3374 3942 3943 3375 6 3085 2482 2483 2484 3150 3152 6 3908 3642 3643 3909 3928 4200 6 3927 3909 3910 3929 4200 4201 6 3928 3910 3911 3930 4201 4202 6 3929 3911 3931 4202 4203 4204 5 3930 3911 3912 3932 4204 6 3931 3912 3913 3933 4204 4205 6 3932 3913 3914 3934 4205 4206 6 3933 3914 3915 3935 4206 4207 6 3934 3915 3916 3936 4207 3937 6 3935 3916 3917 3919 3920 3937 6 3936 3920 3938 4207 3935 4335 6 3937 3920 3921 3939 4335 4336 6 3938 3921 3922 3940 4336 4337 6 3939 3922 3923 3941 4337 4338 6 3940 3923 3924 3942 4338 4339 6 3941 3924 3925 3943 4339 4340 6 3942 3925 3375 4340 4341 4342 6 3673 3674 3676 3945 3950 3947 6 3944 3676 3158 3159 3946 3947 6 3945 3159 3947 3948 5922 3962 6 3945 3946 3948 3949 3950 3944 6 3947 3946 3949 5920 5921 5922 6 3947 3948 3950 3951 5919 5920 6 3947 3949 3951 3672 3673 3944 6 3950 3949 3672 5918 3671 5919 6 3796 3797 3953 7810 7811 7812 6 3952 3797 3798 3954 7812 7813 6 3953 3798 3955 7813 7814 7815 6 3954 3798 3799 3800 3956 7815 6 3955 3800 3801 3957 4238 7815 6 3956 3801 3802 3803 4238 4239 6 3187 3188 3959 3960 7588 7586 6 3958 3188 3960 3961 2890 2888 6 3958 3959 3961 7588 7589 7590 6 3960 3959 2890 7590 7591 7592 6 3159 3160 3963 5922 3946 5923 6 3962 3160 3964 3965 5923 5924 6 3963 3160 3965 3966 3967 3161 6 3963 3964 3966 5924 5942 5943 6 3965 3964 3967 5943 5948 5947 6 3966 3964 3161 5948 2488 2487 6 3485 3489 3969 6556 4038 4039 6 3968 3489 3490 3970 1597 6556 6 3969 3490 3971 6358 1595 1597 6 3970 3490 3491 6555 6357 6358 6 3698 3699 3973 4699 4700 4701 6 3972 3699 3700 3701 3974 4701 6 3973 3701 3975 4701 4702 4703 6 3974 3701 3702 3976 4703 4704 6 3975 3702 3703 3977 4704 4705 6 3976 3703 3704 3978 4705 4706 6 3977 3704 3705 3979 4706 4707 6 3978 3705 3706 3980 4707 4708 6 3979 3706 3707 3981 4708 4709 6 3980 3707 3708 3982 4709 4710 6 3981 3708 3709 3983 4710 4711 6 3982 3709 3710 3984 4711 4712 6 3983 3710 3711 3985 4712 4713 6 3984 3711 3712 3986 4713 4714 6 3985 3712 3713 3987 4714 4715 6 3986 3713 3714 3988 4715 4716 6 3987 3714 3715 3989 4716 4717 6 3988 3715 3716 3990 4717 4718 6 3989 3716 3717 3991 4718 4719 6 3990 3717 3718 3992 4719 4720 6 3991 3718 3719 3993 4720 4721 6 3992 3719 3720 3994 4439 4721 6 3993 3720 3721 3995 4439 4440 6 3994 3721 3722 3996 4440 4441 6 3995 3722 3723 3997 4441 4442 6 3996 3723 3724 3998 4442 4443 6 3997 3724 3725 3999 4443 4444 6 3998 3725 3726 4000 4444 4445 6 3999 3726 3727 4001 4445 4446 6 4000 3727 3728 4002 4070 4446 6 4001 3728 3729 4003 4008 4070 6 4002 3729 3730 4004 4008 4009 6 4003 3730 3731 4005 4009 4010 6 4004 3731 3732 3733 4006 4010 6 4005 3733 3734 3735 4007 4010 6 4006 3735 3737 4010 4011 4012 6 4002 4003 4009 4070 4071 4072 6 4008 4003 4004 4010 4072 4011 6 4009 4004 4005 4006 4007 4011 6 4010 4007 4012 4072 4009 4073 6 4011 4007 3737 3738 4013 4073 6 4012 3738 3739 4014 4073 4074 7 4013 3739 3740 4015 4074 4075 4076 6 4014 3740 3741 4016 4076 4077 6 4015 3741 3742 4017 4077 4078 6 4016 3742 3743 4018 4078 4079 6 4017 3743 3744 4019 4079 4080 6 4018 3744 3745 4020 4080 4081 6 4019 3745 3746 4021 4081 4082 6 4020 3746 4022 4030 4082 4083 6 4021 3746 3747 3748 4023 4030 6 4022 3748 4024 4030 4031 4032 6 4023 3748 3749 3750 4025 4032 6 4024 3750 3751 4026 4027 4032 6 4025 3751 4027 4028 4029 3752 6 4025 4026 4028 4032 4033 4034 6 4027 4026 4029 4034 4035 4036 6 4028 4026 3752 4036 4037 3753 6 4021 4022 4023 4031 4083 4084 6 4030 4023 4032 4084 4085 4033 6 4031 4023 4024 4025 4027 4033 6 4032 4027 4034 4085 4031 4462 6 4033 4027 4028 4035 4041 4462 6 4034 4028 4036 4041 4042 4043 6 4035 4028 4029 4037 4043 4044 6 4036 4029 3753 4044 4045 4046 6 3764 3765 4039 6556 6557 3968 6 4038 3765 4040 3968 3485 3484 6 4039 3765 3763 3217 3484 3218 6 4034 4035 4042 4462 4463 4464 6 4041 4035 4043 4464 4465 4466 6 4042 4035 4036 4044 4466 4467 6 4043 4036 4037 4045 4467 4468 6 4044 4037 4046 4468 4469 4047 6 4045 4037 3753 3755 3756 4047 6 4046 3756 3757 4048 4469 4045 6 4047 3757 3758 4049 4469 4470 6 4048 3758 3759 4050 4470 4209 6 4049 3759 4051 4052 4208 4209 6 4050 3759 4052 4053 4054 3265 6 4050 4051 4053 4208 4221 4222 6 4052 4051 4054 3268 4055 4222 6 4053 4051 3265 3266 3267 3268 5 4053 3268 3269 4056 4222 7 4055 3269 3270 4057 4222 4223 4224 7 4056 3270 3271 4058 4224 4225 4226 6 4057 3271 3272 4059 4226 4227 6 4058 3272 3273 4060 4227 4228 6 4059 3273 3274 4061 4062 4228 6 4060 3274 4062 4063 4064 3275 6 4060 4061 4063 4230 4228 4502 6 4062 4061 4064 4066 4067 4502 6 4063 4061 3275 3276 4065 4066 6 4064 3276 4066 4069 3826 3277 6 4064 4065 4063 4067 4068 4069 6 4063 4066 4068 4513 4502 4754 6 4067 4066 4069 4754 4755 4756 6 4068 4066 4065 3826 4756 3827 6 4001 4002 4008 4071 4446 4447 6 4070 4008 4072 4447 4448 4449 6 4071 4008 4009 4011 4073 4449 6 4072 4011 4012 4013 4074 4449 6 4073 4013 4014 4075 4449 4450 6 4074 4014 4076 4450 4451 4452 5 4075 4014 4015 4077 4452 6 4076 4015 4016 4078 4452 4453 6 4077 4016 4017 4079 4453 4454 6 4078 4017 4018 4080 4454 4455 6 4079 4018 4019 4081 4455 4456 6 4080 4019 4020 4082 4456 4457 6 4081 4020 4021 4083 4457 4458 6 4082 4021 4030 4084 4458 4459 6 4083 4030 4031 4085 4459 4460 6 4084 4031 4033 4460 4461 4462 6 2880 2881 4087 4089 7599 7600 6 4086 2881 2882 2883 4088 4089 6 4087 2883 4089 4090 4091 4092 7 4087 4088 4090 7598 7599 4086 7751 6 4089 4088 4091 7751 7753 4379 6 4090 4088 4092 4094 4378 4379 6 4091 4088 2883 2498 4093 4094 6 4092 2498 4094 4095 2809 2499 6 4092 4093 4095 4091 4378 4387 6 4094 4093 2809 4387 4386 4388 6 3542 3543 4097 4098 4099 3544 6 3542 4096 4098 4365 4372 3541 6 4097 4096 4099 4365 4366 4367 6 4098 4096 3544 4367 3094 3093 6 3803 3804 4101 4239 4240 4241 6 4100 3804 3805 4102 4241 4242 6 4101 3805 4103 4242 4243 4244 6 4102 3805 3806 4104 4111 4244 6 4103 3806 3807 4105 4111 4112 6 4104 3807 3808 4106 4112 4113 6 4105 3808 4107 4108 4109 4113 6 4106 3808 3447 3448 3454 4108 6 4107 3454 4106 4109 4110 3456 6 4106 4108 4110 4113 4114 4115 6 4109 4108 3456 4115 4394 3464 6 4103 4104 4112 4244 4245 4246 6 4111 4104 4105 4113 4249 4246 6 4112 4105 4106 4109 4114 4249 6 4113 4109 4115 4249 4391 4392 6 4114 4109 4110 4392 4393 4394 7 3522 3525 4117 4530 4531 3521 4119 5 4116 3525 3526 4118 4119 6 4117 3526 4119 4120 3529 9786 7 4117 4118 4120 4121 9784 4530 4116 6 4119 4118 4121 4122 9786 9789 6 4119 4120 4122 4123 4395 9784 6 4121 4120 4123 4124 9789 7172 6 4121 4122 4124 4125 4126 4395 6 4123 4122 4125 7171 4140 7172 6 4123 4124 4126 4127 4128 4140 6 4123 4125 4127 4395 4396 4397 6 4126 4125 4128 4129 4130 4397 6 4127 4125 4129 4136 4139 4140 6 4127 4128 4130 4131 4135 4136 6 4127 4129 4131 4132 4397 4398 6 4130 4129 4132 4133 4134 4135 6 4130 4131 4133 4401 4398 4410 6 4132 4131 4134 4410 4411 4412 6 4133 4131 4135 4412 4413 7164 6 4134 4131 4129 4136 4137 7164 6 4135 4129 4128 4137 4138 4139 6 4135 4136 4138 7163 7161 7164 6 4137 4136 4139 7168 7163 7169 6 4138 4136 4128 4140 7169 7170 6 4139 4128 4125 7170 7171 4124 6 3580 3581 4142 4268 4269 4270 6 4141 3581 3582 4143 4270 4271 6 4142 3582 3583 4144 4271 4272 6 4143 3583 3584 4145 4272 4273 6 4144 3584 3585 4146 4273 4274 6 4145 3585 3586 4147 4274 4275 6 4146 3586 3587 4148 4275 4276 6 4147 3587 3588 3589 4149 4276 6 4148 3589 4150 4276 4277 4278 6 4149 3589 3590 4151 4278 4279 6 4150 3590 3591 4152 4279 4280 6 4151 3591 3592 4153 4280 4281 6 4152 3592 3593 4154 4281 4282 6 4153 3593 3594 4155 4282 4283 6 4154 3594 3595 4156 4283 4284 6 4155 3595 3596 4157 4284 4285 6 4156 3596 3597 4158 4285 4286 6 4157 3597 3598 4159 4286 4287 6 4158 3598 3599 4160 4287 4288 6 4159 3599 3600 4161 4288 4289 6 4160 3600 3601 3602 4162 4289 6 4161 3602 4163 4289 4290 4291 6 4162 3602 3603 4164 4291 4292 6 4163 3603 3604 4165 4292 4293 6 4164 3604 3605 4166 4293 4294 6 4165 3605 3606 4167 4294 4295 6 4166 3606 3607 4168 4295 4296 6 4167 3607 3608 3609 4169 4296 6 4168 3609 4170 4296 4297 4298 6 4169 3609 3610 4171 4298 4299 6 4170 3610 3611 4172 4299 4300 6 4171 3611 3612 4173 4300 4301 6 4172 3612 3613 4174 4301 4302 6 4173 3613 3614 4175 4302 4303 6 4174 3614 3615 4176 4303 4304 6 4175 3615 3616 4177 4304 4305 6 4176 3616 3617 4178 4305 4306 6 4177 3617 3618 4179 4306 4307 6 4178 3618 3619 4180 4307 4308 6 4179 3619 3620 4181 4308 4309 6 4180 3620 3621 4182 4309 4310 6 4181 3621 3622 4183 4310 4311 6 4182 3622 3623 4184 4311 4312 6 4183 3623 3624 4185 4312 4313 6 4184 3624 3625 4186 4313 4314 6 4185 3625 3626 4187 4314 4315 6 4186 3626 3627 4188 4315 4316 6 4187 3627 3628 4189 4316 4317 6 4188 3628 3629 4190 4317 4318 6 4189 3629 3630 4191 4318 4319 6 4190 3630 3631 4192 4319 4320 6 4191 3631 3632 4193 4320 4321 6 4192 3632 3633 3634 4194 4321 6 4193 3634 3903 4195 4321 4322 6 4194 3903 4196 4322 4323 4324 6 4195 3903 3904 3905 4197 4324 6 4196 3905 4198 4324 4325 4326 6 4197 3905 3906 3907 4199 4326 6 4198 3907 3908 4200 4326 4327 6 4199 3908 3927 3928 4201 4327 6 4200 3928 3929 4202 4327 4328 6 4201 3929 3930 4203 4328 4329 6 4202 3930 4204 4329 4330 4331 6 4203 3930 3931 3932 4205 4331 6 4204 3932 3933 4206 4331 4332 6 4205 3933 3934 4207 4332 4333 7 4206 3934 3935 3937 4333 4334 4335 6 4050 4052 4209 4210 4211 4221 6 4050 4208 4210 4470 4049 4477 6 4209 4208 4211 4212 4477 4478 6 4210 4208 4212 4213 4220 4221 6 4210 4211 4213 4214 4478 4479 6 4212 4211 4214 4215 4216 4220 6 4212 4213 4215 4479 4480 4481 6 4214 4213 4216 4217 4481 4482 6 4215 4213 4217 4218 4219 4220 6 4215 4216 4218 4232 4482 4483 6 4217 4216 4219 4232 4233 4234 6 4218 4216 4220 4224 4234 4223 6 4219 4216 4213 4211 4221 4223 6 4220 4211 4208 4052 4222 4223 6 4221 4052 4053 4055 4056 4223 6 4222 4056 4224 4221 4220 4219 6 4223 4056 4057 4225 4234 4219 6 4224 4057 4226 4235 4234 4488 5 4225 4057 4058 4227 4488 7 4226 4058 4059 4228 4229 4487 4488 6 4227 4059 4229 4230 4062 4060 6 4227 4228 4230 4489 4487 4500 6 4229 4228 4062 4500 4501 4502 6 3147 3412 3146 3145 9791 3413 6 4217 4218 4233 4483 4484 4485 6 4232 4218 4234 4235 4485 4486 6 4233 4218 4235 4225 4224 4219 6 4233 4234 4225 4486 4487 4488 6 3889 3890 4237 4251 4252 4256 6 4236 3890 3891 3571 4256 4257 6 3956 3957 4239 7815 7816 4503 6 4238 3957 3803 4100 4240 4503 6 4239 4100 4241 4503 4504 4505 6 4240 4100 4101 4242 4505 4506 6 4241 4101 4102 4243 4416 4506 6 4242 4102 4244 4416 4417 4418 6 4243 4102 4103 4111 4245 4418 6 4244 4111 4246 4247 4418 4419 6 4245 4111 4247 4248 4249 4112 6 4245 4246 4248 4419 7829 7830 6 4247 4246 4249 4391 4739 7830 6 4248 4246 4112 4113 4114 4391 6 3341 3338 1524 1525 2205 2206 6 3889 4236 4252 4253 4428 3888 6 4251 4236 4253 4254 4255 4256 6 4251 4252 4254 4647 4428 6892 6 4253 4252 4255 4729 4730 6892 6 4254 4252 4256 4729 4261 4260 6 4255 4252 4236 4237 4257 4260 6 4256 4237 3571 3572 4258 4260 6 4257 3572 3573 3574 4259 4260 6 4258 3574 4260 4261 4262 4263 6 4258 4259 4261 4256 4257 4255 6 4260 4259 4262 4732 4729 4255 6 4261 4259 4263 6901 4732 6902 6 4262 4259 3574 3575 4264 6902 6 4263 3575 3576 4265 5231 6902 6 4264 3576 3577 4266 5231 5232 6 4265 3577 3578 4267 5232 5233 6 4266 3578 4268 5233 5234 4269 6 4267 3578 3579 3580 4141 4269 6 4268 4141 4270 5234 4267 5451 6 4269 4141 4142 4271 5451 5452 6 4270 4142 4143 4272 5452 5453 6 4271 4143 4144 4273 5453 5454 6 4272 4144 4145 4274 5457 5454 6 4273 4145 4146 4275 5469 5457 6 4274 4146 4147 4276 5469 5470 6 4275 4147 4148 4149 4277 5470 6 4276 4149 4278 5470 5471 5472 6 4277 4149 4150 4279 5472 5473 6 4278 4150 4151 4280 5473 5474 6 4279 4151 4152 4281 5046 5474 6 4280 4152 4153 4282 5046 5047 6 4281 4153 4154 4283 5047 5048 6 4282 4154 4155 4284 5048 5049 6 4283 4155 4156 4285 5049 5050 6 4284 4156 4157 4286 5050 5051 6 4285 4157 4158 4287 5051 5052 6 4286 4158 4159 4288 4923 5052 6 4287 4159 4160 4289 4923 4924 6 4288 4160 4161 4162 4290 4924 6 4289 4162 4291 4924 4925 4926 6 4290 4162 4163 4292 4926 4927 6 4291 4163 4164 4293 4927 4928 6 4292 4164 4165 4294 4928 4929 6 4293 4165 4166 4295 4929 4930 6 4294 4166 4167 4296 4930 4931 6 4295 4167 4168 4169 4297 4931 6 4296 4169 4298 4771 4931 4932 6 4297 4169 4170 4299 4771 4772 6 4298 4170 4171 4300 4772 4773 6 4299 4171 4172 4301 4773 4774 6 4300 4172 4173 4302 4774 4775 6 4301 4173 4174 4303 4775 4776 6 4302 4174 4175 4304 4776 4777 6 4303 4175 4176 4305 4777 4778 6 4304 4176 4177 4306 4778 4779 6 4305 4177 4178 4307 4779 4780 6 4306 4178 4179 4308 4780 4781 6 4307 4179 4180 4309 4781 4782 6 4308 4180 4181 4310 4566 4782 6 4309 4181 4182 4311 4566 4567 6 4310 4182 4183 4312 4567 4568 6 4311 4183 4184 4313 4568 4569 6 4312 4184 4185 4314 4569 4570 6 4313 4185 4186 4315 4570 4571 6 4314 4186 4187 4316 4571 4572 6 4315 4187 4188 4317 4572 4573 6 4316 4188 4189 4318 4573 4574 6 4317 4189 4190 4319 4574 4575 6 4318 4190 4191 4320 4575 4576 6 4319 4191 4192 4321 4576 4577 6 4320 4192 4193 4194 4322 4577 6 4321 4194 4195 4323 4577 4578 6 4322 4195 4324 4578 4579 4580 6 4323 4195 4196 4197 4325 4580 6 4324 4197 4326 4580 4581 4582 6 4325 4197 4198 4199 4327 4582 6 4326 4199 4200 4201 4328 4582 6 4327 4201 4202 4329 4582 4583 6 4328 4202 4203 4330 4583 4584 6 4329 4203 4331 4584 4585 4589 7 4330 4203 4204 4205 4332 4589 4590 6 4331 4205 4206 4333 4590 4591 6 4332 4206 4207 4334 4591 4592 6 4333 4207 4335 4336 4429 4592 5 4334 4207 3937 3938 4336 6 4335 3938 3939 4337 4334 4429 6 4336 3939 3940 4338 4429 4430 6 4337 3940 3941 4339 4430 4431 6 4338 3941 3942 4340 4431 4432 6 4339 3942 3943 4341 4432 4433 6 4340 3943 4342 4433 4434 4435 6 4341 3943 3375 3376 4343 4435 6 4342 3376 3377 4344 4345 4435 6 4343 3377 4345 4346 4347 3378 6 4343 4344 4346 4435 4436 4437 6 4345 4344 4347 4437 4438 4348 6 4346 4344 3378 3645 3646 4348 6 4347 3646 4349 4350 4438 4346 6 4348 3646 4350 4351 4352 3647 6 4348 4349 4351 4601 4438 4602 6 4350 4349 4352 4602 4603 4604 6 4351 4349 3647 3648 4353 4604 6 4352 3648 3657 4354 4355 4604 6 4353 3657 4355 4356 4357 4358 6 4353 4354 4356 4604 4605 4606 6 4355 4354 4357 4361 4362 4606 6 4356 4354 4358 4359 4360 4361 6 4357 4354 4359 4371 3658 3657 6 4357 4358 4360 4368 4369 4371 6 4357 4359 4361 4364 4368 4614 6 4357 4360 4356 4362 4363 4364 6 4356 4361 4363 4606 4607 4608 6 4362 4361 4364 4611 4608 4612 6 4363 4361 4360 4612 4613 4614 6 4097 4098 4366 4372 4373 4374 6 4365 4098 4367 4374 4375 4376 7 4366 4098 4099 3094 4376 1626 1624 6 4360 4359 4369 4370 4614 4615 6 4368 4359 4370 4371 9794 9793 6 4368 4369 9794 4642 4637 4615 6 4369 4359 4358 3658 9793 3659 6 4097 4365 4373 7212 3540 3541 6 4372 4365 4374 7212 7210 7209 6 4373 4365 4366 4375 7209 7213 6 4374 4366 4376 4377 7213 7214 6 4375 4366 4367 4377 1627 1626 5 4375 4376 1627 7214 7215 6 4091 4094 4379 4380 4381 4387 7 4091 4378 4380 7753 4090 7752 7754 6 4379 4378 4381 4382 7754 7755 6 4380 4378 4382 4383 4384 4387 6 4380 4381 4383 7755 7756 7764 6 4382 4381 4384 4385 4389 7764 6 4383 4381 4385 3140 4386 4387 6 4383 4384 3140 4389 4390 3141 6 3140 4384 4387 4095 4388 3139 6 4386 4384 4381 4378 4094 4095 6 4386 4095 2809 2810 2813 3139 6 4383 4385 4390 7764 7765 7766 6 4389 4385 3141 7766 7767 3142 6 4249 4114 4392 4248 4739 4740 6 4391 4114 4115 4393 4402 4740 6 4392 4115 4394 4402 4403 4404 6 4393 4115 4110 3464 4404 3465 5 4121 4123 4126 4396 9784 7 4395 4126 4397 4399 4528 4529 9784 6 4396 4126 4127 4130 4398 4399 6 4397 4130 4399 4400 4401 4132 6 4397 4398 4400 4525 4528 4396 5 4399 4398 4401 4527 4525 7 4400 4398 4132 4410 4534 4527 4535 6 4392 4393 4403 4740 4741 4742 6 4402 4393 4404 4742 4743 4744 6 4403 4393 4394 3465 4744 4745 6 3837 3838 3864 4406 5026 5027 6 4405 3864 4407 5027 5028 5029 6 4406 3864 3865 4408 5029 5030 6 4407 3865 3866 4409 5030 5031 6 4408 3866 3868 4420 5031 5032 6 4401 4132 4133 4411 4535 4536 6 4410 4133 4412 4545 4539 4536 6 4411 4133 4134 4413 4414 4545 6 4412 4134 4414 4415 7164 7165 6 4412 4413 4415 4545 4544 4648 6 4414 4413 4649 4648 7165 7166 6 4242 4243 4417 4506 4507 4508 6 4416 4243 4418 4508 4509 4510 6 4417 4243 4244 4245 4419 4510 6 4418 4245 4247 7828 4510 7829 6 4409 3868 3869 4421 5032 5033 6 4420 3869 3870 3871 4422 5033 6 4421 3871 4423 5033 5034 5035 6 4422 3871 3872 4424 5035 5036 6 4423 3872 3873 4425 4643 5036 6 4424 3873 4426 4643 4644 4645 6 4425 3873 3874 4427 4645 4646 6 4426 3874 3875 4428 4646 4647 6 4427 3875 3888 4647 4253 4251 6 4334 4336 4337 4430 4592 4593 6 4429 4337 4338 4431 4593 4594 6 4430 4338 4339 4432 4594 4595 6 4431 4339 4340 4433 4595 4596 6 4432 4340 4341 4434 4596 4597 6 4433 4341 4435 4597 4598 4436 6 4434 4341 4342 4343 4345 4436 6 4435 4345 4437 4598 4434 4599 6 4436 4345 4346 4438 4599 4600 6 4437 4346 4348 4600 4601 4350 6 3993 3994 4440 4721 4722 4723 6 4439 3994 3995 4441 4723 4724 6 4440 3995 3996 4442 4724 4725 6 4441 3996 3997 4443 4725 4726 6 4442 3997 3998 4444 4726 4727 6 4443 3998 3999 4445 4727 4728 6 4444 3999 4000 4446 4728 4658 6 4445 4000 4001 4070 4447 4658 6 4446 4070 4071 4448 4658 4659 6 4447 4071 4449 4659 4660 4450 6 4448 4071 4072 4073 4074 4450 6 4449 4074 4075 4451 4660 4448 6 4450 4075 4452 4669 4738 4660 6 4451 4075 4076 4077 4453 4669 6 4452 4077 4078 4454 4669 4670 6 4453 4078 4079 4455 4670 4671 6 4454 4079 4080 4456 4671 4672 6 4455 4080 4081 4457 4672 4673 6 4456 4081 4082 4458 4673 4674 6 4457 4082 4083 4459 4674 4675 6 4458 4083 4084 4460 4675 4676 6 4459 4084 4085 4461 4676 4677 6 4460 4085 4462 4677 4678 4679 7 4461 4085 4033 4034 4041 4463 4679 5 4462 4041 4464 4679 4680 6 4463 4041 4042 4465 4471 4680 6 4464 4042 4466 4471 4472 4473 6 4465 4042 4043 4467 4473 4474 6 4466 4043 4044 4468 4474 4475 6 4467 4044 4045 4469 4475 4476 6 4468 4045 4047 4048 4470 4476 6 4469 4048 4049 4209 4476 4477 6 4464 4465 4472 4680 4681 4682 6 4471 4465 4473 4682 4683 4684 6 4472 4465 4466 4474 4684 4685 6 4473 4466 4467 4475 4685 4686 6 4474 4467 4468 4476 4686 4687 6 4475 4468 4469 4470 4477 4687 6 4476 4470 4209 4210 4478 4687 6 4477 4210 4212 4479 4687 5213 6 4478 4212 4214 4480 5213 5214 6 4479 4214 4481 5214 5215 5216 6 4480 4214 4215 4482 4490 5216 6 4481 4215 4217 4483 4490 4491 6 4482 4217 4232 4484 4491 4492 6 4483 4232 4485 4492 4493 4494 6 4484 4232 4233 4486 4494 4495 6 4485 4233 4235 4487 4489 4495 6 4486 4235 4488 4227 4489 4229 5 4487 4235 4227 4226 4225 6 4486 4487 4229 4495 4496 4500 6 4481 4482 4491 4981 4989 5216 6 4490 4482 4483 4492 4981 4982 6 4491 4483 4484 4493 4982 4983 6 4492 4484 4494 4983 4984 4985 6 4493 4484 4485 4495 4985 4497 6 4494 4485 4486 4489 4496 4497 6 4495 4489 4497 4498 4499 4500 6 4495 4496 4498 4985 4494 4986 6 4497 4496 4499 4986 4987 4988 5 4498 4496 4500 4988 4511 7 4499 4496 4489 4229 4230 4501 4511 6 4500 4230 4502 4511 4512 4513 6 4501 4230 4062 4513 4067 4063 6 4239 4240 4504 7816 4238 7817 6 4503 4240 4505 7817 7818 7819 6 4504 4240 4241 4506 7819 7820 6 4505 4241 4242 4416 4507 7820 6 4506 4416 4508 7820 7821 7822 6 4507 4416 4417 4509 7822 7823 6 4508 4417 4510 7823 7824 7825 6 4509 4417 4418 7825 7828 4419 7 4500 4501 4512 4988 4499 5002 4999 6 4511 4501 4513 4754 4759 5002 5 4512 4501 4502 4067 4754 6 426 411 4515 4516 5611 5612 6 4514 411 4516 4517 4521 410 6 4514 4515 4517 4518 5611 5615 6 4516 4515 4518 4519 4520 4521 6 4516 4517 4519 9734 7508 5615 6 4518 4517 4520 5235 9734 9678 6 4519 4517 4521 5235 5236 5237 6 4520 4517 4515 410 5237 421 7 3507 3510 3770 4523 6693 6695 6704 6 4522 3770 4524 6694 6693 4532 6 4523 3770 3771 4525 4526 4532 7 4524 3771 4526 4527 4400 4399 4528 6 4524 4525 4527 4532 4533 4534 5 4526 4525 4400 4534 4401 6 4399 4525 3771 3772 4529 4396 6 4528 3772 3773 4530 4396 9784 6 4529 3773 4531 4116 4119 9784 5 4530 3773 4116 3521 3520 6 4524 4526 4533 5156 4523 6694 6 4532 4526 4534 5156 5157 4666 6 4533 4526 4527 4401 4535 4666 6 4534 4401 4410 4536 4537 4666 6 4535 4410 4537 4538 4539 4411 6 4535 4536 4538 4666 4667 4668 6 4537 4536 4539 4540 4546 4668 6 4538 4536 4540 4541 4545 4411 6 4538 4539 4541 4542 4546 4547 6 4540 4539 4542 4543 4544 4545 6 4540 4541 4543 4550 4547 4551 6 4542 4541 4544 4551 4552 4553 6 4543 4541 4545 4414 4648 4553 6 4544 4541 4539 4411 4412 4414 6 4538 4540 4547 4548 9762 4668 6 4546 4540 4548 4549 4550 4542 6 4546 4547 4549 4557 4560 9762 6 4548 4547 4550 4557 4558 4559 6 4549 4547 4542 4551 6763 4559 6 4550 4542 4543 4552 7144 6763 6 4551 4543 4553 4554 7145 7144 6 4552 4543 4554 4555 4544 4648 6 4552 4553 4555 4556 7145 7146 6 4554 4553 4556 4648 4649 7153 6 4554 4555 7146 7148 7149 7153 6 4548 4549 4558 4560 4561 4562 6 4557 4549 4559 4565 4562 6764 6 4558 4549 6763 6762 6764 4550 7 4548 4557 4561 9762 9761 6675 9792 6 4560 4557 4562 4563 6674 6675 6 4561 4557 4563 4564 4565 4558 6 4561 4562 4564 6665 6666 6674 6 4563 4562 4565 6673 6665 6790 6 4564 4562 4558 6764 6765 6790 6 4309 4310 4567 4782 4783 4784 6 4566 4310 4311 4568 4784 4785 6 4567 4311 4312 4569 4785 4786 6 4568 4312 4313 4570 4786 4787 6 4569 4313 4314 4571 4787 4788 6 4570 4314 4315 4572 4788 4789 6 4571 4315 4316 4573 4789 4790 6 4572 4316 4317 4574 4790 4791 6 4573 4317 4318 4575 4791 4792 6 4574 4318 4319 4576 4792 4793 6 4575 4319 4320 4577 4793 4794 6 4576 4320 4321 4322 4578 4794 6 4577 4322 4323 4579 4794 4795 6 4578 4323 4580 4795 4796 4797 6 4579 4323 4324 4325 4581 4797 6 4580 4325 4582 4797 4798 4583 6 4581 4325 4326 4327 4328 4583 6 4582 4328 4329 4584 4798 4581 7 4583 4329 4330 4585 4586 4804 4798 6 4584 4330 4586 4587 4588 4589 5 4584 4585 4587 4804 4805 6 4586 4585 4588 4805 4806 4807 6 4587 4585 4589 4807 4808 4809 6 4588 4585 4330 4331 4590 4809 5 4589 4331 4332 4591 4809 6 4590 4332 4333 4592 4809 4810 6 4591 4333 4334 4429 4593 4810 6 4592 4429 4430 4594 4810 4811 6 4593 4430 4431 4595 4811 4812 6 4594 4431 4432 4596 4812 4813 6 4595 4432 4433 4597 4813 4814 6 4596 4433 4434 4598 4814 4815 6 4597 4434 4436 4599 4815 4816 6 4598 4436 4437 4600 4816 4817 6 4599 4437 4438 4601 4817 4818 6 4600 4438 4350 4602 4821 4818 6 4601 4350 4351 4603 4821 4822 6 4602 4351 4604 4825 4822 4826 7 4603 4351 4352 4353 4355 4605 4826 5 4604 4355 4606 4826 4827 6 4605 4355 4356 4362 4607 4827 5 4606 4362 4608 4609 4827 6 4607 4362 4609 4610 4611 4363 7 4607 4608 4610 4827 4828 4829 4830 6 4609 4608 4611 4830 4831 4832 6 4610 4608 4363 4612 4832 4834 6 4611 4363 4364 4613 4837 4834 6 4612 4364 4614 4616 4617 4837 6 4613 4364 4360 4368 4615 4616 7 4614 4368 4616 4637 4634 4619 4370 6 4614 4615 4613 4617 4618 4619 6 4613 4616 4618 4837 4622 4838 6 4617 4616 4619 4620 4621 4622 6 4618 4616 4620 4633 4634 4615 6 4618 4619 4621 4628 4629 4633 6 4618 4620 4622 4623 4624 4628 6 4618 4621 4623 4840 4838 4617 6 4622 4621 4624 4625 4840 4841 6 4623 4621 4625 4626 4627 4628 6 4623 4624 4626 4841 4860 4853 6 4625 4624 4627 4860 4861 4862 6 4626 4624 4628 4862 4863 4630 6 4627 4624 4621 4620 4629 4630 6 4628 4620 4630 4631 4632 4633 6 4628 4629 4631 4863 4627 4864 6 4630 4629 4632 4638 4868 4864 6 4631 4629 4633 4638 4639 4635 6 4632 4629 4620 4619 4634 4635 6 4633 4619 4635 4636 4637 4615 6 4633 4634 4636 4639 4632 4640 6 4635 4634 4637 4640 4641 4642 5 4636 4634 4615 4642 4370 6 4631 4632 4639 4868 4912 9760 6 4638 4632 4635 4640 4912 4913 6 4639 4635 4636 4641 4916 4913 6 4640 4636 4642 4910 4916 4909 7 4641 4636 4637 4908 4909 9794 4370 6 4424 4425 4644 5036 5037 5044 6 4643 4425 4645 5045 5044 6889 6 4644 4425 4426 4646 6890 6889 6 4645 4426 4427 4647 6890 6891 6 4646 4427 4428 4253 6891 6892 6 4544 4414 4553 4555 4649 4415 6 4555 4648 4415 7166 7154 7153 6 422 52 53 4651 4652 9684 6 4650 53 4652 4653 4657 54 6 4650 4651 4653 4654 9683 9684 6 4652 4651 4654 4655 4656 4657 6 4652 4653 4655 9682 9680 9683 6 4654 4653 4656 9682 9685 9686 7 4655 4653 4657 5380 9688 9686 9689 6 4656 4653 4651 54 5380 55 6 4446 4447 4659 4728 4445 4736 6 4658 4447 4448 4660 4736 4737 6 4659 4448 4450 4737 4738 4451 6 3895 3896 3897 4662 7841 4758 6 4661 3897 3898 4663 7841 7842 6 4662 3898 4664 7842 4689 4688 6 4663 3898 3899 4665 3685 4688 6 4664 3899 3900 3901 3902 3685 6 4534 4535 4537 4667 5157 4533 6 4666 4537 4668 9750 5157 9761 6 4667 4537 4538 9761 9762 4546 7 4451 4452 4453 4670 4980 4738 5194 6 4669 4453 4454 4671 5194 5195 6 4670 4454 4455 4672 5195 5196 6 4671 4455 4456 4673 5196 5197 6 4672 4456 4457 4674 5197 5198 6 4673 4457 4458 4675 5198 5199 6 4674 4458 4459 4676 5199 5200 6 4675 4459 4460 4677 5200 5201 6 4676 4460 4461 4678 5201 5202 6 4677 4461 4679 5202 5203 5204 6 4678 4461 4462 4463 4680 5204 7 4679 4463 4464 4471 4681 5204 5205 5 4680 4471 4682 5205 5206 7 4681 4471 4472 4683 5206 5207 5208 5 4682 4472 4684 5208 5209 7 4683 4472 4473 4685 5209 5210 5211 6 4684 4473 4474 4686 5211 5212 6 4685 4474 4475 4687 5212 5213 6 4686 4475 4476 4477 4478 5213 6 4664 3685 3686 3687 4689 4663 6 4688 3687 4690 7842 4663 7843 6 4689 3687 3688 4691 7843 7844 6 4690 3688 3689 4692 5158 7844 6 4691 3689 3690 3692 4693 5158 6 4692 3692 4694 5158 5159 5160 6 4693 3692 3693 4695 5160 5161 6 4694 3693 4696 5161 5162 5163 6 4695 3693 3694 3695 4697 5163 6 4696 3695 4698 5163 5164 5165 6 4697 3695 3696 4699 5165 4700 6 4698 3696 3697 3698 3972 4700 6 4699 3972 4701 5165 4698 7854 6 4700 3972 3973 3974 4702 7854 6 4701 3974 4703 7308 7854 7855 6 4702 3974 3975 4704 7308 7309 6 4703 3975 3976 4705 7309 7310 6 4704 3976 3977 4706 7310 7311 6 4705 3977 3978 4707 7311 7312 6 4706 3978 3979 4708 5170 7312 6 4707 3979 3980 4709 5170 5171 6 4708 3980 3981 4710 5171 5172 6 4709 3981 3982 4711 5172 5173 6 4710 3982 3983 4712 5173 5174 6 4711 3983 3984 4713 5174 5175 6 4712 3984 3985 4714 5175 5176 6 4713 3985 3986 4715 5176 5177 6 4714 3986 3987 4716 4965 5177 6 4715 3987 3988 4717 4965 4966 6 4716 3988 3989 4718 4966 4967 6 4717 3989 3990 4719 4967 4968 6 4718 3990 3991 4720 4968 4969 6 4719 3991 3992 4721 4969 4970 6 4720 3992 3993 4439 4722 4970 6 4721 4439 4723 4970 4971 4972 6 4722 4439 4440 4724 4972 4973 6 4723 4440 4441 4725 4973 4974 6 4724 4441 4442 4726 4733 4974 6 4725 4442 4443 4727 4733 4734 6 4726 4443 4444 4728 4734 4735 6 4727 4444 4445 4658 4735 4736 6 4254 4255 4730 4731 4732 4261 6 4254 4729 4731 6892 6893 6894 6 4730 4729 4732 6894 6895 6896 6 4731 4729 4261 6896 6901 4262 6 4725 4726 4734 4974 4975 4976 6 4733 4726 4727 4735 4976 4977 6 4734 4727 4728 4736 4977 4978 6 4735 4728 4658 4659 4737 4978 6 4736 4659 4660 4738 4978 4979 6 4737 4660 4451 4979 4980 4669 6 4248 4391 4740 5003 7830 7831 6 4739 4391 4392 4402 4741 5003 6 4740 4402 4742 4753 5003 5004 6 4741 4402 4403 4743 4753 4748 6 4742 4403 4744 3892 3893 4748 6 4743 4403 4404 4745 4746 3892 6 4744 4404 3465 3466 3468 4746 6 4745 3468 4747 3397 3892 4744 6 4746 3468 2172 2173 3395 3397 6 4743 3893 4749 4750 4753 4742 6 4748 3893 4750 4751 4752 3894 6 4748 4749 4751 5005 4753 7837 6 4750 4749 4752 4757 7837 7838 6 4751 4749 3894 4757 4758 3895 6 4741 4742 4748 5004 5005 4750 7 4513 4067 4068 4755 4512 4759 4760 5 4754 4068 4756 4760 4761 7 4755 4068 4069 3827 4761 4762 4763 6 4751 4752 4758 7838 7839 7840 6 4757 4752 3895 7840 7841 4661 6 4512 4754 4760 5006 5002 5001 5 4759 4754 4755 4761 5006 7 4760 4755 4756 4762 5006 5007 5008 6 4761 4756 4763 5008 5009 5010 6 4762 4756 3827 3828 4764 5010 6 4763 3828 4765 5010 5011 5012 6 4764 3828 3829 3830 4766 5012 6 4765 3830 3831 4767 4768 5012 6 4766 3831 4768 4769 4770 3832 7 4766 4767 4769 5012 5011 5013 5014 6 4768 4767 4770 5014 5015 5016 6 4769 4767 3832 5016 3834 3833 6 4297 4298 4772 4932 4933 4934 6 4771 4298 4299 4773 4934 4935 6 4772 4299 4300 4774 4935 4936 6 4773 4300 4301 4775 4936 4937 6 4774 4301 4302 4776 4937 4938 6 4775 4302 4303 4777 4938 4939 6 4776 4303 4304 4778 4939 4940 6 4777 4304 4305 4779 4940 4941 6 4778 4305 4306 4780 4941 4942 6 4779 4306 4307 4781 4942 4943 6 4780 4307 4308 4782 4943 4944 6 4781 4308 4309 4566 4783 4944 6 4782 4566 4784 4944 4945 4946 6 4783 4566 4567 4785 4946 4947 6 4784 4567 4568 4786 4947 4948 6 4785 4568 4569 4787 4948 4949 6 4786 4569 4570 4788 4949 4950 6 4787 4570 4571 4789 4950 4951 6 4788 4571 4572 4790 4951 4952 6 4789 4572 4573 4791 4952 4953 6 4790 4573 4574 4792 4953 4954 6 4791 4574 4575 4793 4799 4954 6 4792 4575 4576 4794 4799 4800 6 4793 4576 4577 4578 4795 4800 6 4794 4578 4579 4796 4800 4801 6 4795 4579 4797 4801 4802 4803 6 4796 4579 4580 4581 4798 4803 6 4797 4581 4583 4803 4804 4584 6 4792 4793 4800 4954 4955 4956 6 4799 4793 4794 4795 4801 4956 6 4800 4795 4796 4802 4956 4957 6 4801 4796 4803 4957 4958 4959 6 4802 4796 4797 4798 4804 4959 6 4803 4798 4584 4586 4805 4959 6 4804 4586 4587 4806 4918 4959 6 4805 4587 4807 4918 4919 4920 6 4806 4587 4588 4808 4920 4921 6 4807 4588 4809 4921 4922 4810 6 4808 4588 4589 4590 4591 4810 7 4809 4591 4592 4593 4811 4922 4808 5 4810 4593 4594 4812 4922 6 4811 4594 4595 4813 4964 4922 6 4812 4595 4596 4814 5093 4964 6 4813 4596 4597 4815 5093 5094 6 4814 4597 4598 4816 5094 5095 6 4815 4598 4599 4817 5095 5096 6 4816 4599 4600 4818 4819 5096 6 4817 4600 4819 4820 4821 4601 6 4817 4818 4820 5096 5097 5098 6 4819 4818 4821 5098 5099 4823 6 4820 4818 4601 4602 4822 4823 6 4821 4602 4823 4824 4825 4603 6 4821 4822 4824 5099 4820 5100 6 4823 4822 4825 5100 5101 5102 6 4824 4822 4603 4826 5102 5103 6 4825 4603 4604 4605 4827 5103 7 4826 4605 4606 4607 4609 4828 5103 6 4827 4609 4829 5103 5102 5104 6 4828 4609 4830 5104 5105 5106 6 4829 4609 4610 4831 5106 5107 6 4830 4610 4832 4833 5113 5107 5 4831 4610 4611 4833 4834 6 4831 4832 4834 4835 5113 5114 7 4833 4832 4611 4835 4836 4837 4612 6 4833 4834 4836 5114 4845 4844 6 4835 4834 4837 4838 4839 4844 6 4836 4834 4612 4613 4617 4838 6 4836 4837 4839 4840 4622 4617 6 4836 4838 4840 4842 4843 4844 6 4839 4838 4622 4623 4841 4842 6 4840 4623 4842 4625 4852 4853 6 4840 4841 4839 4843 4852 4850 6 4839 4842 4844 4845 4846 4850 5 4839 4843 4845 4835 4836 7 4844 4843 4846 4847 5114 4835 5115 6 4845 4843 4847 4848 4849 4850 6 4845 4846 4848 5117 5115 5118 6 4847 4846 4849 5118 5119 5120 6 4848 4846 4850 4851 5120 5121 6 4849 4846 4851 4852 4842 4843 6 4849 4850 4852 4854 4855 5121 6 4851 4850 4842 4841 4853 4854 6 4852 4841 4854 4857 4860 4625 6 4851 4852 4853 4855 4856 4857 6 4851 4854 4856 5121 5122 5123 6 4855 4854 4857 4858 5123 5124 6 4856 4854 4853 4858 4859 4860 6 4856 4857 4859 5124 5125 5129 6 4858 4857 4860 5129 5130 4861 6 4859 4857 4853 4625 4626 4861 6 4860 4626 4862 5130 4859 5131 6 4861 4626 4627 4863 4865 5131 6 4862 4627 4630 4864 4865 4866 6 4863 4630 4866 4867 4868 4631 6 4862 4863 4866 5131 5132 5136 6 4865 4863 4864 4867 5136 5137 6 4866 4864 4868 4869 4870 5137 6 4867 4864 4631 4638 4869 9760 6 4867 4868 4870 4871 4872 9760 6 4867 4869 4871 5137 5138 5139 6 4870 4869 4872 4873 5150 5139 6 4871 4869 4873 4874 4875 9760 6 4871 4872 4874 5149 5147 5150 6 4873 4872 4875 4876 4877 5149 6 4874 4872 4876 9760 4912 4914 6 4874 4875 4877 4878 4879 4914 6 4874 4876 4878 5155 5149 4882 6 4877 4876 4879 4880 4881 4882 6 4878 4876 4880 4914 4915 9753 7 4878 4879 4881 9753 9754 9756 9757 6 4878 4880 4882 4883 4884 9757 6 4878 4881 4883 5155 4877 5369 6 4882 4881 4884 4885 5369 5370 6 4883 4881 4885 4886 9757 4895 6 4883 4884 4886 4887 4888 5370 6 4885 4884 4887 4894 4891 4895 6 4885 4886 4888 4889 4890 4891 6 4885 4887 4889 5372 5370 5899 6 4888 4887 4890 5898 5896 5899 6 4889 4887 4891 4892 5898 5901 6 4890 4887 4892 4893 4894 4886 6 4890 4891 4893 5901 5902 5903 6 4892 4891 4894 5912 5903 5913 6 4893 4891 4886 4895 4896 5913 7 4894 4886 4896 4897 9757 9756 4884 6 4894 4895 4897 4898 4899 5913 5 4896 4895 4898 9756 9759 6 4896 4897 4899 4900 4901 9759 6 4896 4898 4900 5913 5914 5917 6 4899 4898 4901 4902 5917 5918 6 4900 4898 4902 4903 4904 9759 6 4900 4901 4903 5918 3671 3670 6 4902 4901 4904 4905 3669 3670 6 4903 4901 4905 9754 4911 9759 6 4903 4904 3669 4906 4907 4911 6 3669 4905 4907 4908 3661 3660 6 4906 4905 4908 4909 4910 4911 7 4906 4907 4909 4642 3660 9793 9794 5 4908 4907 4910 4642 4641 6 4909 4907 4911 4917 4916 4641 6 4910 4907 4905 9754 4917 4904 6 4638 4639 4913 4914 9760 4875 6 4912 4639 4914 4915 4916 4640 6 4912 4913 4915 4875 4876 4879 6 4914 4913 4916 4917 9753 4879 6 4915 4913 4917 4910 4641 4640 6 4915 4916 4910 9753 9754 4911 6 4805 4806 4919 4959 4958 4960 6 4918 4806 4920 4960 4961 4962 6 4919 4806 4807 4921 4962 4963 6 4920 4807 4808 4922 4963 4964 6 4921 4808 4810 4964 4812 4811 6 4287 4288 4924 5052 5053 5054 6 4923 4288 4289 4290 4925 5054 6 4924 4290 4926 5054 5055 5056 6 4925 4290 4291 4927 5056 5057 6 4926 4291 4292 4928 5057 5058 6 4927 4292 4293 4929 5058 5059 6 4928 4293 4294 4930 5059 5060 6 4929 4294 4295 4931 5060 5061 6 4930 4295 4296 4297 4932 5061 6 4931 4297 4771 4933 5061 5062 6 4932 4771 4934 5062 5063 5064 6 4933 4771 4772 4935 5064 5065 6 4934 4772 4773 4936 5065 5066 6 4935 4773 4774 4937 5066 5067 6 4936 4774 4775 4938 5067 5068 6 4937 4775 4776 4939 5068 5069 6 4938 4776 4777 4940 5069 5070 6 4939 4777 4778 4941 5070 5071 6 4940 4778 4779 4942 5071 5072 6 4941 4779 4780 4943 5072 5073 6 4942 4780 4781 4944 5073 5074 6 4943 4781 4782 4783 4945 5074 6 4944 4783 4946 5074 5075 5076 6 4945 4783 4784 4947 5076 5077 6 4946 4784 4785 4948 5077 5078 6 4947 4785 4786 4949 5078 5079 6 4948 4786 4787 4950 5079 5080 6 4949 4787 4788 4951 5080 5081 6 4950 4788 4789 4952 5081 5082 6 4951 4789 4790 4953 5082 5083 6 4952 4790 4791 4954 5083 5084 6 4953 4791 4792 4799 4955 5084 6 4954 4799 4956 5084 5085 5086 6 4955 4799 4800 4801 4957 5086 6 4956 4801 4802 4958 5088 5086 6 4957 4802 4959 4918 4960 5088 6 4958 4802 4803 4804 4805 4918 6 4958 4918 4919 4961 5088 5089 6 4960 4919 4962 5089 5090 5091 6 4961 4919 4920 4963 5091 5092 6 4962 4920 4921 4964 5092 5093 6 4963 4921 4922 4812 5093 4813 6 4715 4716 4966 5177 5178 5179 6 4965 4716 4717 4967 5179 5180 6 4966 4717 4718 4968 5180 5181 6 4967 4718 4719 4969 5181 5182 6 4968 4719 4720 4970 5182 5183 6 4969 4720 4721 4722 4971 5183 6 4970 4722 4972 5183 5184 5185 6 4971 4722 4723 4973 5185 5186 6 4972 4723 4724 4974 5186 5187 6 4973 4724 4725 4733 4975 5187 6 4974 4733 4976 5187 5188 5189 6 4975 4733 4734 4977 5189 5190 6 4976 4734 4735 4978 5190 5191 6 4977 4735 4736 4737 4979 5191 6 4978 4737 4738 4980 5191 5192 6 4979 4738 4669 5192 5193 5194 6 4490 4491 4982 4989 4990 4991 6 4981 4491 4492 4983 4991 4992 6 4982 4492 4493 4984 4992 4993 6 4983 4493 4985 4993 4994 4995 6 4984 4493 4494 4497 4986 4995 6 4985 4497 4498 4987 4995 4996 6 4986 4498 4988 4996 4997 4998 6 4987 4498 4499 4511 4998 4999 6 4490 4981 4990 5216 5217 5218 6 4989 4981 4991 5218 5219 5220 6 4990 4981 4982 4992 5220 5221 6 4991 4982 4983 4993 5221 5222 6 4992 4983 4984 4994 5222 5223 6 4993 4984 4995 5223 5224 5225 6 4994 4984 4985 4986 4996 5225 6 4995 4986 4987 4997 5225 5226 6 4996 4987 4998 5226 5227 5228 6 4997 4987 4988 4999 5000 5228 6 4998 4988 5000 5001 5002 4511 6 4998 4999 5001 5228 5229 5230 7 5000 4999 5002 4759 5006 5166 5230 5 5001 4999 4511 4512 4759 6 4739 4740 4741 5004 7831 7834 6 5003 4741 4753 5005 7834 7835 6 5004 4753 4750 7835 7836 7837 7 4759 4760 4761 5007 5021 5001 5166 6 5006 4761 5008 5021 5022 5023 6 5007 4761 4762 5009 5023 5018 6 5008 4762 5010 5011 5017 5018 5 5009 4762 4763 4764 5011 7 5010 4764 5012 4768 5013 5009 5017 5 5011 4764 4765 4766 4768 6 5011 4768 5014 5020 5017 5241 6 5013 4768 4769 5015 5241 5242 6 5014 4769 5016 5242 5243 5024 5 5015 4769 4770 3834 5024 6 5009 5011 5018 5019 5020 5013 7 5009 5017 5019 5023 5008 5238 6833 6 5018 5017 5020 5238 5239 5240 5 5019 5017 5013 5240 5241 5 5006 5007 5022 5166 5167 6 5021 5007 5023 5167 5168 5169 6 5022 5007 5008 5018 5169 6833 7 5016 3834 3835 5025 5243 5015 5244 6 5024 3835 3836 5026 5244 5245 6 5025 3836 3837 4405 5027 5245 6 5026 4405 4406 5028 5245 5246 6 5027 4406 5029 5249 5246 6844 6 5028 4406 4407 5030 6844 6845 6 5029 4407 4408 5031 6845 6846 6 5030 4408 4409 5032 6849 6846 6 5031 4409 4420 5033 6849 6850 6 5032 4420 4421 4422 5034 6850 6 5033 4422 5035 6850 6851 6852 6 5034 4422 4423 5036 6852 5038 6 5035 4423 4424 4643 5037 5038 6 5036 4643 5038 5039 5040 5044 6 5036 5037 5039 6852 5035 6853 6 5038 5037 5040 5041 6856 6853 6 5039 5037 5041 5042 5043 5044 6 5039 5040 5042 6858 6856 6863 6 5041 5040 5043 6878 6879 6863 6 5042 5040 5044 5045 6880 6878 6 5043 5040 5045 4644 4643 5037 6 5043 5044 4644 6880 6881 6889 6 4280 4281 5047 5474 5475 5476 6 5046 4281 4282 5048 5476 5477 6 5047 4282 4283 5049 5477 5478 6 5048 4283 4284 5050 5478 5479 6 5049 4284 4285 5051 5479 5480 6 5050 4285 4286 5052 5480 5481 6 5051 4286 4287 4923 5053 5481 6 5052 4923 5054 5481 5482 5483 6 5053 4923 4924 4925 5055 5483 6 5054 4925 5056 5483 5484 5485 6 5055 4925 4926 5057 5485 5486 6 5056 4926 4927 5058 5486 5487 6 5057 4927 4928 5059 5487 5488 6 5058 4928 4929 5060 5488 5489 6 5059 4929 4930 5061 5489 5490 6 5060 4930 4931 4932 5062 5490 6 5061 4932 4933 5063 5490 5491 6 5062 4933 5064 5250 5491 5492 6 5063 4933 4934 5065 5250 5251 6 5064 4934 4935 5066 5251 5252 6 5065 4935 4936 5067 5252 5253 6 5066 4936 4937 5068 5253 5254 6 5067 4937 4938 5069 5254 5255 6 5068 4938 4939 5070 5255 5256 6 5069 4939 4940 5071 5256 5257 6 5070 4940 4941 5072 5257 5258 6 5071 4941 4942 5073 5258 5259 6 5072 4942 4943 5074 5259 5260 6 5073 4943 4944 4945 5075 5260 6 5074 4945 5076 5260 5261 5262 6 5075 4945 4946 5077 5262 5263 6 5076 4946 4947 5078 5263 5264 6 5077 4947 4948 5079 5264 5265 6 5078 4948 4949 5080 5265 5266 6 5079 4949 4950 5081 5266 5267 6 5080 4950 4951 5082 5267 5268 6 5081 4951 4952 5083 5268 5269 6 5082 4952 4953 5084 5269 5270 6 5083 4953 4954 4955 5085 5270 6 5084 4955 5086 5087 5270 5271 6 5085 4955 4956 5087 5088 4957 6 5085 5086 5088 5271 5272 5089 6 5087 5086 4957 4958 4960 5089 6 5088 4960 4961 5090 5272 5087 6 5089 4961 5091 5272 5273 5274 6 5090 4961 4962 5092 5274 5275 6 5091 4962 4963 5093 5275 5276 7 5092 4963 4964 4813 4814 5094 5276 6 5093 4814 4815 5095 5276 5277 6 5094 4815 4816 5096 5277 5278 6 5095 4816 4817 4819 5097 5278 6 5096 4819 5098 5278 5279 5280 6 5097 4819 4820 5099 5280 5281 6 5098 4820 4823 5100 5281 5282 6 5099 4823 4824 5101 5282 5152 6 5100 4824 5102 5104 5151 5152 6 5101 4824 4825 5103 4828 5104 5 5102 4825 4826 4827 4828 6 5102 4828 4829 5105 5101 5151 7 5104 4829 5106 5154 5151 5287 5288 6 5105 4829 4830 5107 5108 5288 6 5106 4830 5108 5109 5113 4831 6 5106 5107 5109 5110 5288 5289 6 5108 5107 5110 5111 5112 5113 6 5108 5109 5111 5289 5290 5294 6 5110 5109 5112 5294 5295 5116 6 5111 5109 5113 5114 5115 5116 6 5112 5109 5107 4831 4833 5114 6 5113 4833 4835 4845 5115 5112 6 5114 4845 5112 5116 5117 4847 6 5112 5115 5117 5295 5111 5296 6 5116 5115 4847 5118 5299 5296 6 5117 4847 4848 5119 5299 5300 6 5118 4848 5120 5300 5301 5302 5 5119 4848 4849 5121 5302 6 5120 4849 4851 4855 5122 5302 6 5121 4855 5123 5318 5302 5319 6 5122 4855 4856 5124 5321 5319 6 5123 4856 4858 5125 5126 5321 6 5124 4858 5126 5127 5128 5129 6 5124 5125 5127 5322 5321 5323 6 5126 5125 5128 5323 5324 5328 6 5127 5125 5129 5336 5328 5337 6 5128 5125 4858 4859 5130 5337 6 5129 4859 4861 5131 5337 5338 7 5130 4861 4862 4865 5132 5133 5338 6 5131 4865 5133 5134 5135 5136 5 5131 5132 5134 5338 5339 6 5133 5132 5135 5339 5340 5341 6 5134 5132 5136 5346 5344 5341 6 5135 5132 4865 4866 5137 5346 6 5136 4866 4867 4870 5138 5346 6 5137 4870 5139 5140 5344 5346 6 5138 4870 5140 5141 4871 5150 6 5138 5139 5141 5142 5345 5344 6 5140 5139 5142 5143 5144 5150 6 5140 5141 5143 5345 5360 5359 7 5142 5141 5144 5145 5360 5357 5361 6 5143 5141 5145 5146 5147 5150 6 5143 5144 5146 5361 5362 5366 5 5145 5144 5147 5148 5366 6 5146 5144 5148 5149 4873 5150 7 5146 5147 5149 5155 5366 5367 5368 6 5148 5147 4873 5155 4877 4874 6 4873 5147 4871 5139 5141 5144 6 5101 5104 5152 5153 5154 5105 6 5101 5151 5153 5282 5100 5283 6 5152 5151 5154 5283 5284 5285 6 5153 5151 5105 5285 5286 5287 6 5148 5149 4877 4882 5368 5369 7 4532 4533 5157 6682 6683 6684 6694 6 5156 4533 4666 6682 9750 4667 5 4691 4692 4693 5159 7844 7 5158 4693 5160 7844 7845 7846 7847 6 5159 4693 4694 5161 7847 7848 6 5160 4694 4695 5162 7848 7849 6 5161 4695 5163 7849 7850 7851 6 5162 4695 4696 4697 5164 7851 6 5163 4697 5165 7851 7852 7853 6 5164 4697 4698 4700 7853 7854 5 5001 5006 5021 5167 5230 8 5166 5021 5022 5168 5229 5230 6826 6824 6 5167 5022 5169 6826 6827 6830 7 5168 5022 5023 6830 6831 6832 6833 6 4707 4708 5171 7312 7313 7314 6 5170 4708 4709 5172 7314 7315 6 5171 4709 4710 5173 7315 7316 6 5172 4710 4711 5174 7316 7317 6 5173 4711 4712 5175 7317 7318 6 5174 4712 4713 5176 7318 7319 6 5175 4713 4714 5177 7319 7320 6 5176 4714 4715 4965 5178 7320 6 5177 4965 5179 7320 7321 7322 6 5178 4965 4966 5180 7322 7323 6 5179 4966 4967 5181 5411 7323 6 5180 4967 4968 5182 5411 5412 6 5181 4968 4969 5183 5412 5413 6 5182 4969 4970 4971 5184 5413 6 5183 4971 5185 5413 5414 5415 6 5184 4971 4972 5186 5403 5415 6 5185 4972 4973 5187 5403 5404 6 5186 4973 4974 4975 5188 5404 6 5187 4975 5189 5404 5405 5406 6 5188 4975 4976 5190 5406 5407 6 5189 4976 4977 5191 5407 5408 6 5190 4977 4978 4979 5192 5408 6 5191 4979 4980 5193 5408 5409 6 5192 4980 5194 5409 5410 5195 5 5193 4980 4669 4670 5195 6 5194 4670 4671 5196 5410 5193 7 5195 4671 4672 5197 5423 5410 5431 5 5196 4672 4673 5198 5431 7 5197 4673 4674 5199 5431 5432 5433 6 5198 4674 4675 5200 5433 5434 6 5199 4675 4676 5201 5434 5435 6 5200 4676 4677 5202 5435 5436 6 5201 4677 4678 5203 5436 5437 6 5202 4678 5204 5437 5438 5439 6 5203 4678 4679 4680 5205 5439 5 5204 4680 4681 5206 5439 7 5205 4681 4682 5207 5439 5440 5441 6 5206 4682 5208 5441 5442 5443 6 5207 4682 4683 5209 5424 5443 7 5208 4683 4684 5210 5424 5425 5426 5 5209 4684 5211 5426 5427 7 5210 4684 4685 5212 5427 5215 5214 5 5211 4685 4686 5213 5214 6 5212 4686 4687 4478 4479 5214 6 5213 4479 4480 5215 5211 5212 6 5214 4480 5216 5427 5211 5217 6 5215 4480 4481 4490 4989 5217 7 5216 4989 5218 5447 5427 5215 6810 6 5217 4989 4990 5219 6810 6811 6 5218 4990 5220 6811 6812 6813 6 5219 4990 4991 5221 6813 6814 5 5220 4991 4992 5222 6814 7 5221 4992 4993 5223 6814 6815 6816 5 5222 4993 4994 5224 6816 7 5223 4994 5225 6816 6817 6818 6819 6 5224 4994 4995 4996 5226 6819 6 5225 4996 4997 5227 6819 6820 6 5226 4997 5228 6820 6821 6822 6 5227 4997 4998 5000 5229 6822 7 5228 5000 5230 5167 6822 6823 6824 5 5229 5000 5167 5166 5001 6 4264 4265 5232 6902 6903 5458 6 5231 4265 4266 5233 5448 5458 6 5232 4266 4267 5234 5448 5449 6 5233 4267 4269 5449 5450 5451 6 4519 4520 5236 9677 9678 9679 6 5235 4520 5237 9679 9683 9684 6 5236 4520 4521 422 9684 421 6 5018 5019 5239 6832 6833 6834 6 5238 5019 5240 5648 6834 6835 6 5239 5019 5020 5241 5648 5649 7 5240 5020 5013 5014 5242 5649 5650 5 5241 5014 5015 5243 5650 7 5242 5015 5024 5244 5652 5650 5653 6 5243 5024 5025 5245 5653 5247 6 5244 5025 5026 5027 5246 5247 6 5245 5027 5247 5248 5249 5028 6 5245 5246 5248 5653 5244 6840 6 5247 5246 5249 6841 6840 6842 6 5248 5246 5028 6842 6843 6844 6 5063 5064 5251 5492 5493 5494 6 5250 5064 5065 5252 5494 5495 6 5251 5065 5066 5253 5495 5496 6 5252 5066 5067 5254 5496 5497 6 5253 5067 5068 5255 5497 5498 6 5254 5068 5069 5256 5498 5499 6 5255 5069 5070 5257 5499 5500 6 5256 5070 5071 5258 5500 5501 6 5257 5071 5072 5259 5501 5502 6 5258 5072 5073 5260 5502 5503 6 5259 5073 5074 5075 5261 5503 6 5260 5075 5262 5503 5504 5505 6 5261 5075 5076 5263 5505 5506 6 5262 5076 5077 5264 5506 5507 6 5263 5077 5078 5265 5507 5508 6 5264 5078 5079 5266 5508 5509 6 5265 5079 5080 5267 5509 5510 6 5266 5080 5081 5268 5510 5511 6 5267 5081 5082 5269 5511 5512 6 5268 5082 5083 5270 5512 5513 6 5269 5083 5084 5085 5271 5513 6 5270 5085 5087 5272 5513 5514 6 5271 5087 5089 5090 5273 5514 6 5272 5090 5274 5514 5515 5516 6 5273 5090 5091 5275 5519 5516 6 5274 5091 5092 5276 5519 5277 5 5275 5092 5093 5094 5277 6 5276 5094 5095 5278 5519 5275 6 5277 5095 5096 5097 5279 5519 6 5278 5097 5280 5519 5518 5520 6 5279 5097 5098 5281 5520 5377 6 5280 5098 5099 5282 5376 5377 6 5281 5099 5100 5152 5283 5376 6 5282 5152 5153 5284 5379 5376 6 5283 5153 5285 5524 5379 5525 6 5284 5153 5154 5286 5525 5526 6 5285 5154 5287 5526 5527 5291 6 5286 5154 5105 5288 5291 5289 5 5287 5105 5106 5108 5289 6 5288 5108 5110 5290 5291 5287 6 5289 5110 5291 5292 5293 5294 7 5289 5290 5292 5527 5286 5287 5528 6 5291 5290 5293 5528 5529 5533 5 5292 5290 5294 5533 5534 6 5293 5290 5110 5111 5295 5534 6 5294 5111 5116 5296 5297 5534 6 5295 5116 5297 5298 5299 5117 6 5295 5296 5298 5534 5535 5542 6 5297 5296 5299 5542 5543 5544 6 5298 5296 5117 5118 5300 5544 6 5299 5118 5119 5301 5304 5544 6 5300 5119 5302 5303 5304 5305 7 5301 5119 5303 5318 5122 5120 5121 6 5301 5302 5308 5305 5309 5318 6 5300 5301 5305 5306 5543 5544 6 5304 5301 5306 5307 5308 5303 6 5304 5305 5307 5543 5545 5546 6 5306 5305 5308 5311 5312 5546 6 5307 5305 5303 5309 5310 5311 6 5308 5303 5310 5316 5317 5318 6 5308 5309 5311 5314 5315 5316 6 5308 5310 5307 5312 5313 5314 6 5307 5311 5313 5546 5547 5548 6 5312 5311 5314 5548 5549 5550 6 5313 5311 5310 5315 5553 5550 6 5314 5310 5316 5555 5553 5558 6 5315 5310 5309 5317 5558 5559 6 5316 5309 5318 5319 5320 5559 6 5317 5309 5303 5302 5122 5319 6 5318 5122 5317 5320 5321 5123 6 5317 5319 5321 5322 5559 5560 6 5320 5319 5322 5126 5124 5123 6 5320 5321 5126 5323 5560 5561 6 5322 5126 5127 5324 5325 5561 6 5323 5127 5325 5326 5327 5328 6 5323 5324 5326 5561 5562 5563 6 5325 5324 5327 5572 5563 5573 6 5326 5324 5328 5329 5330 5573 6 5327 5324 5329 5336 5128 5127 6 5327 5328 5330 5331 5332 5336 6 5327 5329 5331 5573 5574 5575 6 5330 5329 5332 5333 5575 5576 6 5331 5329 5333 5334 5335 5336 6 5331 5332 5334 5576 5577 5578 6 5333 5332 5335 5578 5340 5339 6 5334 5332 5336 5337 5338 5339 6 5335 5332 5329 5328 5128 5337 6 5336 5128 5129 5130 5335 5338 6 5335 5337 5130 5131 5133 5339 6 5338 5133 5134 5340 5334 5335 6 5339 5134 5341 5342 5578 5334 6 5340 5134 5342 5343 5344 5135 6 5340 5341 5343 5348 5349 5578 6 5342 5341 5344 5345 5347 5348 7 5343 5341 5345 5140 5138 5346 5135 6 5343 5344 5140 5142 5347 5359 5 5138 5344 5135 5136 5137 6 5343 5345 5348 5351 5352 5359 6 5343 5347 5342 5349 5350 5351 6 5342 5348 5350 5578 5577 5579 6 5349 5348 5351 5579 5580 5584 6 5350 5348 5347 5352 5353 5584 6 5351 5347 5353 5354 5355 5359 6 5351 5352 5354 5608 5584 5609 6 5353 5352 5355 5356 5807 5609 6 5354 5352 5356 5357 5359 5360 6 5354 5355 5357 5358 5807 5808 6 5356 5355 5358 5360 5143 5361 7 5356 5357 5808 5809 5810 5363 5361 6 5355 5352 5347 5360 5142 5345 5 5355 5359 5142 5143 5357 6 5357 5143 5145 5362 5363 5358 6 5361 5145 5363 5364 5365 5366 5 5361 5362 5364 5810 5358 6 5363 5362 5365 5810 5811 5402 7 5364 5362 5366 5402 5401 5367 5375 6 5365 5362 5145 5146 5148 5367 6 5366 5148 5368 5374 5365 5375 6 5367 5148 5155 5369 5371 5374 6 5368 5155 4882 4883 5370 5371 6 5369 4883 5371 5372 4888 4885 6 5369 5370 5372 5373 5374 5368 6 5371 5370 5373 4888 5393 5899 6 5371 5372 5374 5375 5392 5393 5 5371 5373 5375 5368 5367 6 5374 5373 5392 5365 5367 5401 6 5281 5282 5377 5378 5379 5283 6 5281 5376 5378 5520 5280 5521 6 5377 5376 5379 5521 5522 5523 6 5378 5376 5283 5523 5524 5284 6 4656 4657 55 9689 430 56 6 1679 1680 1678 5382 5383 1682 6 1678 5381 5383 5384 7779 3415 6 5382 5381 5384 5385 3774 1682 6 5382 5383 5385 5386 7779 7780 6 5384 5383 5386 5387 5391 3774 6 5384 5385 5387 5388 7780 7781 6 5386 5385 5388 5389 5390 5391 6 5386 5387 5389 5616 7781 7782 6 5388 5387 5390 5616 5617 5618 6 5389 5387 5391 5618 5619 5620 6 5390 5387 5385 3774 5620 3775 6 5375 5373 5393 5394 5401 5398 6 5392 5373 5394 5372 5395 5899 6 5392 5393 5395 5396 5397 5398 5 5394 5393 5396 5899 5894 6 5394 5395 5397 5893 5890 5894 6 5394 5396 5398 5399 5889 5890 6 5394 5397 5399 5400 5401 5392 6 5398 5397 5400 5880 5888 5889 7 5398 5399 5401 5402 5887 5881 5880 6 5398 5400 5402 5365 5375 5392 6 5401 5400 5887 5811 5364 5365 6 5185 5186 5404 5415 5416 5417 6 5403 5186 5187 5188 5405 5417 6 5404 5188 5406 5417 5418 5419 6 5405 5188 5189 5407 5419 5420 6 5406 5189 5190 5408 5420 5421 6 5407 5190 5191 5192 5409 5421 6 5408 5192 5193 5410 5421 5422 6 5409 5193 5195 5422 5423 5196 6 5180 5181 5412 7323 7324 7325 6 5411 5181 5182 5413 7325 7326 6 5412 5182 5183 5184 5414 7326 6 5413 5184 5415 7326 7327 7328 6 5414 5184 5185 5403 5416 7328 6 5415 5403 5417 7328 7329 7330 6 5416 5403 5404 5405 5418 7330 6 5417 5405 5419 6791 7330 7331 6 5418 5405 5406 5420 6791 6792 6 5419 5406 5407 5421 5428 6792 6 5420 5407 5408 5409 5422 5428 6 5421 5409 5410 5423 5428 5429 6 5422 5410 5196 5429 5430 5431 6 5208 5209 5425 5443 5444 5445 6 5424 5209 5426 5445 5446 5447 5 5425 5209 5210 5427 5447 6 5426 5210 5211 5215 5447 5217 6 5420 5421 5422 5429 6792 6793 6 5428 5422 5423 5430 6793 6794 6 5429 5423 5431 6794 6795 5432 6 5430 5423 5196 5197 5198 5432 5 5431 5198 5433 6795 5430 6 5432 5198 5199 5434 6795 6796 6 5433 5199 5200 5435 6796 6797 6 5434 5200 5201 5436 6797 6798 6 5435 5201 5202 5437 6798 6799 6 5436 5202 5203 5438 6799 6800 6 5437 5203 5439 6800 6801 6802 7 5438 5203 5204 5205 5206 5440 6802 5 5439 5206 5441 6802 6803 6 5440 5206 5207 5442 6803 6804 6 5441 5207 5443 6804 6805 5444 5 5442 5207 5208 5424 5444 6 5443 5424 5445 6805 5442 6806 6 5444 5424 5425 5446 6806 6807 6 5445 5425 5447 6807 6808 6809 7 5446 5425 5426 5427 5217 6809 6810 6 5232 5233 5449 5458 5459 5460 6 5448 5233 5234 5450 5460 5461 6 5449 5234 5451 5461 5462 5463 6 5450 5234 4269 4270 5452 5463 6 5451 4270 4271 5453 5463 5464 6 5452 4271 4272 5454 5455 5464 6 5453 4272 5455 5456 5457 4273 6 5453 5454 5456 5464 5465 5466 6 5455 5454 5457 5466 5467 5468 6 5456 5454 4273 5468 5469 4274 6 5232 5448 5459 6903 5231 6904 6 5458 5448 5460 6904 6905 6906 6 5459 5448 5449 5461 6906 6907 6 5460 5449 5450 5462 6907 6908 6 5461 5450 5463 6908 6909 6910 6 5462 5450 5451 5452 5464 6910 6 5463 5452 5453 5455 5465 6910 6 5464 5455 5466 6910 6911 6912 6 5465 5455 5456 5467 6912 6913 6 5466 5456 5468 6913 6914 6915 6 5467 5456 5457 5469 6915 6916 6 5468 5457 4274 4275 5470 6916 6 5469 4275 4276 4277 5471 6916 6 5470 4277 5472 6916 6917 6918 6 5471 4277 4278 5473 6918 6919 6 5472 4278 4279 5474 6919 6920 6 5473 4279 4280 5046 5475 6920 6 5474 5046 5476 6920 6921 6922 6 5475 5046 5047 5477 6922 6923 6 5476 5047 5048 5478 6923 6924 6 5477 5048 5049 5479 6924 6925 6 5478 5049 5050 5480 6925 6926 6 5479 5050 5051 5481 5654 6926 6 5480 5051 5052 5053 5482 5654 6 5481 5053 5483 5654 5655 5656 6 5482 5053 5054 5055 5484 5656 6 5483 5055 5485 5656 5657 5658 6 5484 5055 5056 5486 5658 5659 6 5485 5056 5057 5487 5659 5660 6 5486 5057 5058 5488 5660 5661 6 5487 5058 5059 5489 5621 5661 6 5488 5059 5060 5490 5621 5622 6 5489 5060 5061 5062 5491 5622 6 5490 5062 5063 5492 5622 5623 6 5491 5063 5250 5493 5623 5624 6 5492 5250 5494 5624 5625 5626 6 5493 5250 5251 5495 5626 5627 6 5494 5251 5252 5496 5627 5628 6 5495 5252 5253 5497 5628 5629 6 5496 5253 5254 5498 5629 5630 6 5497 5254 5255 5499 5630 5631 6 5498 5255 5256 5500 5631 5632 6 5499 5256 5257 5501 5632 5633 6 5500 5257 5258 5502 5633 5634 6 5501 5258 5259 5503 5634 5635 6 5502 5259 5260 5261 5504 5635 6 5503 5261 5505 5635 5636 5637 6 5504 5261 5262 5506 5637 5638 6 5505 5262 5263 5507 5638 5639 6 5506 5263 5264 5508 5639 5640 6 5507 5264 5265 5509 5640 5641 6 5508 5265 5266 5510 5641 5642 6 5509 5266 5267 5511 5642 5643 6 5510 5267 5268 5512 5643 5644 6 5511 5268 5269 5513 5644 5645 6 5512 5269 5270 5271 5514 5645 6 5513 5271 5272 5273 5515 5645 6 5514 5273 5516 5517 5645 5646 6 5515 5273 5517 5518 5519 5274 6 5515 5516 5518 5646 5647 5520 5 5517 5516 5519 5279 5520 7 5518 5516 5274 5275 5277 5278 5279 7 5518 5279 5280 5377 5521 5647 5517 5 5520 5377 5378 5522 5647 7 5521 5378 5523 5685 5647 5684 5686 6 5522 5378 5379 5524 5687 5686 6 5523 5379 5284 5525 5687 5688 6 5524 5284 5285 5526 5688 5689 6 5525 5285 5286 5527 5689 5690 6 5526 5286 5291 5528 5690 5691 6 5527 5291 5292 5529 5530 5691 6 5528 5292 5530 5531 5532 5533 5 5528 5529 5531 5691 5692 6 5530 5529 5532 5692 5693 5694 7 5531 5529 5533 5694 5695 5538 5536 6 5532 5529 5292 5293 5534 5536 7 5533 5293 5294 5295 5297 5535 5536 6 5534 5297 5536 5537 5541 5542 6 5534 5535 5537 5538 5532 5533 6 5536 5535 5538 5539 5540 5541 6 5536 5537 5539 5695 5532 5696 6 5538 5537 5540 5696 5697 5698 7 5539 5537 5541 5698 5699 5700 9795 5 5540 5537 5535 5542 9795 6 5541 5535 5297 5298 5543 9795 7 5542 5298 5544 5304 5306 5545 9795 5 5543 5298 5304 5300 5299 6 5543 5306 5546 5701 5700 9795 6 5545 5306 5307 5312 5547 5701 6 5546 5312 5548 5701 5702 5703 6 5547 5312 5313 5549 5703 5704 6 5548 5313 5550 5551 5704 5705 6 5549 5313 5551 5552 5553 5314 6 5549 5550 5552 5705 5706 5707 6 5551 5550 5553 5554 5707 5708 6 5552 5550 5314 5554 5555 5315 6 5552 5553 5555 5556 5708 5709 6 5554 5553 5315 5556 5557 5558 6 5554 5555 5557 5709 5710 5711 6 5556 5555 5558 5714 5711 5715 6 5557 5555 5315 5316 5559 5715 6 5558 5316 5317 5320 5560 5715 6 5559 5320 5322 5561 5716 5715 6 5560 5322 5323 5325 5562 5716 6 5561 5325 5563 5564 5717 5716 6 5562 5325 5564 5565 5572 5326 6 5562 5563 5565 5566 5717 5713 6 5564 5563 5566 5567 5571 5572 6 5564 5565 5567 5568 5753 5713 6 5566 5565 5568 5569 5570 5571 6 5566 5567 5569 5752 5753 5754 6 5568 5567 5570 5754 5755 5770 6 5569 5567 5571 5769 5767 5770 6 5570 5567 5565 5572 5769 5771 6 5571 5565 5563 5326 5573 5771 6 5572 5326 5327 5330 5574 5771 6 5573 5330 5575 5771 5772 5773 6 5574 5330 5331 5576 5773 5594 7 5575 5331 5333 5577 5594 5589 5774 6 5576 5333 5578 5349 5579 5774 6 5577 5333 5334 5340 5342 5349 6 5577 5349 5350 5580 5581 5774 6 5579 5350 5581 5582 5583 5584 6 5579 5580 5582 5585 5586 5774 6 5581 5580 5583 5585 5605 5606 6 5582 5580 5584 5606 5607 5608 6 5583 5580 5350 5351 5608 5353 6 5581 5582 5586 5587 5605 5597 6 5581 5585 5587 5588 5589 5774 6 5586 5585 5588 5595 5596 5597 6 5586 5587 5589 5590 5591 5595 6 5586 5588 5590 5594 5576 5774 6 5589 5588 5591 5592 5594 5773 6 5590 5588 5592 5593 5595 5778 6 5590 5591 5593 5773 5772 5775 6 5592 5591 5775 5776 5777 5778 5 5589 5590 5773 5575 5576 6 5591 5588 5587 5596 5778 5779 6 5595 5587 5597 5598 5599 5779 6 5596 5587 5598 5602 5605 5585 6 5596 5597 5599 5600 5601 5602 6 5596 5598 5600 5779 5780 5781 6 5599 5598 5601 5781 5789 5790 6 5600 5598 5602 5603 5790 5791 6 5601 5598 5603 5604 5597 5605 6 5601 5602 5604 5794 5791 5795 6 5603 5602 5795 5796 5606 5605 6 5602 5597 5585 5582 5606 5604 6 5605 5582 5583 5607 5796 5604 6 5606 5583 5608 5610 5798 5796 6 5607 5583 5584 5353 5609 5610 7 5608 5353 5610 5800 5806 5807 5354 5 5608 5609 5607 5800 5798 6 4514 4516 5612 5613 5614 5615 6 4514 5611 5613 427 426 7500 6 5612 5611 5614 7500 7501 7505 6 5613 5611 5615 7505 7506 7507 6 5614 5611 4516 7507 7508 4518 6 5388 5389 5617 7782 7783 7784 6 5616 5389 5618 7784 7785 7786 6 5617 5389 5390 5619 7786 7789 6 5618 5390 5620 7789 7790 7791 6 5619 5390 5391 3775 3778 7791 6 5488 5489 5622 5661 5662 5663 6 5621 5489 5490 5491 5623 5663 6 5622 5491 5492 5624 5663 5664 6 5623 5492 5493 5625 5664 5665 6 5624 5493 5626 5665 5666 5667 6 5625 5493 5494 5627 5667 5668 6 5626 5494 5495 5628 5668 5669 6 5627 5495 5496 5629 5669 5670 6 5628 5496 5497 5630 5670 5671 6 5629 5497 5498 5631 5671 5672 6 5630 5498 5499 5632 5672 5673 6 5631 5499 5500 5633 5673 5674 6 5632 5500 5501 5634 5674 5675 6 5633 5501 5502 5635 5675 5676 6 5634 5502 5503 5504 5636 5676 6 5635 5504 5637 5676 5677 5678 6 5636 5504 5505 5638 5678 5679 6 5637 5505 5506 5639 5679 5680 6 5638 5506 5507 5640 5680 5681 6 5639 5507 5508 5641 5681 5682 6 5640 5508 5509 5642 5682 5683 6 5641 5509 5510 5643 5683 5684 6 5642 5510 5511 5644 5684 5685 6 5643 5511 5512 5645 5685 5646 6 5644 5512 5513 5514 5515 5646 6 5645 5515 5517 5647 5685 5644 6 5646 5517 5520 5685 5522 5521 6 5239 5240 5649 6835 6836 6837 6 5648 5240 5241 5650 5651 6837 6 5649 5241 5651 5652 5243 5242 6 5649 5650 5652 6837 6838 6839 6 5651 5650 5243 5653 6839 6840 5 5652 5243 5244 5247 6840 6 5480 5481 5482 5655 6926 6927 6 5654 5482 5656 6927 6928 6929 6 5655 5482 5483 5484 5657 6929 6 5656 5484 5658 6929 6930 6931 6 5657 5484 5485 5659 5831 6931 6 5658 5485 5486 5660 5831 5832 6 5659 5486 5487 5661 5832 5833 6 5660 5487 5488 5621 5662 5833 6 5661 5621 5663 5833 5834 5835 6 5662 5621 5622 5623 5664 5835 6 5663 5623 5624 5665 5835 5813 6 5664 5624 5625 5666 5812 5813 6 5665 5625 5667 5812 5816 5817 6 5666 5625 5626 5668 5859 5817 6 5667 5626 5627 5669 5859 5860 6 5668 5627 5628 5670 5860 5861 6 5669 5628 5629 5671 5861 5862 6 5670 5629 5630 5672 5862 5863 6 5671 5630 5631 5673 5863 5864 6 5672 5631 5632 5674 5864 5865 6 5673 5632 5633 5675 5865 5866 6 5674 5633 5634 5676 5866 5867 6 5675 5634 5635 5636 5677 5867 6 5676 5636 5678 5867 5868 5693 6 5677 5636 5637 5679 5693 5869 6 5678 5637 5638 5680 5869 5870 6 5679 5638 5639 5681 5870 5871 6 5680 5639 5640 5682 5871 5688 6 5681 5640 5641 5683 5688 5687 6 5682 5641 5642 5684 5686 5687 6 5683 5642 5643 5685 5522 5686 6 5684 5643 5644 5646 5647 5522 5 5684 5522 5683 5687 5523 6 5683 5686 5523 5524 5688 5682 7 5687 5524 5525 5689 5871 5681 5682 5 5688 5525 5526 5690 5871 7 5689 5526 5527 5691 5871 5870 5692 5 5690 5527 5528 5530 5692 7 5691 5530 5531 5693 5870 5690 5869 7 5692 5531 5694 5868 5677 5678 5869 6 5693 5531 5532 5695 9698 5868 6 5694 5532 5538 5696 9699 9698 6 5695 5538 5539 5697 5718 9699 6 5696 5539 5698 5718 5719 5720 6 5697 5539 5540 5699 5720 5721 6 5698 5540 5700 5701 5721 5722 5 5699 5540 5701 5545 9795 7 5699 5700 5545 5546 5547 5702 5722 6 5701 5547 5703 5722 5723 5727 6 5702 5547 5548 5704 5727 5728 6 5703 5548 5549 5705 5728 5729 6 5704 5549 5551 5706 5732 5729 6 5705 5551 5707 5732 5733 5734 6 5706 5551 5552 5708 5737 5734 6 5707 5552 5554 5709 5737 5738 6 5708 5554 5556 5710 5747 5738 6 5709 5556 5711 5712 5747 5748 6 5710 5556 5712 5713 5714 5557 6 5710 5711 5713 5748 5749 5753 7 5712 5711 5714 5717 5564 5753 5566 6 5713 5711 5557 5715 5716 5717 6 5714 5557 5716 5560 5559 5558 6 5714 5715 5717 5562 5561 5560 5 5714 5716 5562 5564 5713 7 5696 5697 5719 9696 5865 9697 9699 6 5718 5697 5720 9696 9695 9700 6 5719 5697 5698 5721 9700 9701 7 5720 5698 5699 5722 5723 5724 9701 5 5721 5699 5701 5702 5723 7 5722 5702 5721 5724 5725 5726 5727 6 5721 5723 5725 6095 9701 9702 6 5724 5723 5726 6095 6096 6097 6 5725 5723 5727 6097 5730 5728 5 5726 5723 5702 5703 5728 6 5727 5703 5704 5729 5730 5726 6 5728 5704 5730 5731 5732 5705 7 5728 5729 5731 6097 5726 6098 6099 6 5730 5729 5732 6099 6100 6101 6 5731 5729 5705 5706 5733 6101 6 5732 5706 5734 5735 6101 6102 6 5733 5706 5735 5736 5737 5707 6 5733 5734 5736 6105 6102 6106 6 5735 5734 5737 6106 6107 5739 6 5736 5734 5707 5708 5738 5739 6 5737 5708 5739 5740 5747 5709 6 5737 5738 5740 5741 6107 5736 6 5739 5738 5741 5742 5746 5747 6 5739 5740 5742 5743 6107 6108 6 5741 5740 5743 5744 5745 5746 6 5741 5742 5744 6111 6108 6112 6 5743 5742 5745 6112 6113 6114 6 5744 5742 5746 5750 6121 6114 6 5745 5742 5740 5747 5748 5750 6 5746 5740 5738 5709 5710 5748 6 5747 5710 5712 5749 5746 5750 6 5748 5712 5750 5751 5752 5753 6 5746 5748 5745 5749 5751 6121 5 5750 5749 5752 6121 5949 6 5751 5749 5753 5568 5754 5949 6 5752 5749 5712 5713 5568 5566 6 5752 5568 5569 5755 5756 5949 6 5754 5569 5756 5757 5758 5770 6 5754 5755 5757 5949 5950 5951 6 5756 5755 5758 5759 5951 5952 6 5757 5755 5759 5760 5761 5770 6 5757 5758 5760 5952 5953 5957 6 5759 5758 5761 5762 5763 5957 6 5760 5758 5762 5766 5767 5770 6 5760 5761 5763 5764 5765 5766 6 5760 5762 5764 5957 5958 5988 6 5763 5762 5765 5989 5988 5990 6 5764 5762 5766 5990 5991 5776 6 5765 5762 5761 5767 5768 5776 6 5766 5761 5768 5769 5570 5770 6 5766 5767 5769 5772 5775 5776 6 5768 5767 5570 5571 5771 5772 6 5570 5767 5569 5761 5755 5758 6 5769 5571 5572 5573 5574 5772 7 5771 5574 5773 5592 5775 5769 5768 6 5772 5574 5575 5594 5590 5592 6 5589 5576 5586 5581 5579 5577 5 5772 5592 5593 5776 5768 7 5775 5593 5777 5991 5765 5768 5766 6 5776 5593 5778 5992 5991 5782 6 5777 5593 5591 5595 5779 5782 6 5778 5595 5596 5599 5780 5782 6 5779 5599 5781 5782 5783 5784 6 5780 5599 5600 5784 5785 5789 6 5779 5780 5783 5992 5777 5778 6 5782 5780 5784 5993 5992 5996 7 5783 5780 5781 5785 5786 5996 5997 6 5784 5781 5786 5787 5788 5789 6 5784 5785 5787 5997 5998 5999 6 5786 5785 5788 6002 5999 6003 6 5787 5785 5789 6009 6003 6199 6 5788 5785 5781 5600 5790 6199 6 5789 5600 5601 5791 5792 6199 6 5790 5601 5792 5793 5794 5603 6 5790 5791 5793 6198 6199 6197 6 5792 5791 5794 6197 6200 6221 6 5793 5791 5603 5795 6221 6219 6 5794 5603 5604 5796 5797 6219 6 5795 5604 5797 5798 5607 5606 6 5795 5796 5798 5799 6218 6219 6 5797 5796 5607 5799 5800 5610 6 5797 5798 5800 5801 5802 6218 7 5799 5798 5610 5609 5801 5805 5806 6 5799 5800 5802 5803 5804 5805 6 5799 5801 5803 6217 6209 6218 6 5802 5801 5804 5823 5824 6217 6 5803 5801 5805 5823 5830 5839 6 5804 5801 5800 5806 5808 5839 5 5805 5800 5609 5807 5808 5 5806 5609 5354 5356 5808 7 5807 5356 5358 5809 5839 5805 5806 6 5808 5358 5810 5838 5839 5886 7 5809 5358 5363 5364 5811 5885 5886 6 5810 5364 5884 5885 5887 5402 6 5665 5666 5813 5814 5815 5816 6 5665 5812 5814 5835 5664 5842 6 5813 5812 5815 5842 5843 5844 6 5814 5812 5816 5819 5820 5844 6 5815 5812 5666 5817 5818 5819 6 5816 5666 5818 5859 5857 5667 6 5816 5817 5819 5822 5857 5854 6 5816 5818 5815 5820 5821 5822 6 5815 5819 5821 5844 5845 5846 6 5820 5819 5822 5852 5849 5846 6 5821 5819 5818 5852 5853 5854 6 5803 5804 5824 5825 5826 5830 5 5803 5823 5825 6216 6217 7 5824 5823 5826 5827 6216 6215 6021 6 5825 5823 5827 5828 5829 5830 6 5825 5826 5828 6019 6020 6021 6 5827 5826 5829 5836 5872 6019 6 5828 5826 5830 5836 5837 5838 6 5829 5826 5823 5804 5838 5839 6 5658 5659 5832 6931 6932 6933 6 5831 5659 5660 5833 5840 6933 6 5832 5660 5661 5662 5834 5840 6 5833 5662 5835 5840 5841 5842 6 5834 5662 5663 5664 5813 5842 6 5828 5829 5837 5872 5873 5883 6 5836 5829 5838 5885 5883 5886 6 5837 5829 5830 5839 5809 5886 6 5838 5830 5809 5808 5805 5804 6 5832 5833 5834 5841 6933 6934 6 5840 5834 5842 6934 6935 5843 6 5841 5834 5835 5813 5814 5843 6 5842 5814 5844 6018 6935 5841 6 5843 5814 5815 5820 5845 6018 6 5844 5820 5846 5847 6018 6940 6 5845 5820 5847 5848 5849 5821 6 5845 5846 5848 6940 6941 6942 6 5847 5846 5849 5850 6945 6942 6 5848 5846 5850 5851 5852 5821 5 5848 5849 5851 6945 6385 6 5850 5849 5852 6103 6104 6385 6 5851 5849 5821 5822 5853 6103 6 5852 5822 5854 5855 6100 6103 6 5853 5822 5855 5856 5857 5818 6 5853 5854 5856 6098 6099 6100 6 5855 5854 5857 5858 6384 6098 6 5856 5854 5858 5859 5817 5818 6 5856 5857 5859 5860 6383 6384 6 5858 5857 5817 5667 5668 5860 6 5859 5668 5669 5861 6383 5858 6 5860 5669 5670 5862 9703 6383 6 5861 5670 5671 5863 9694 9703 6 5862 5671 5672 5864 9694 9695 6 5863 5672 5673 5865 9695 9696 7 5864 5673 5674 5866 9696 5718 9697 5 5865 5674 5675 5867 9697 7 5866 5675 5676 5677 5868 9697 9698 5 5867 5677 5693 5694 9698 5 5693 5678 5679 5870 5692 6 5869 5679 5680 5871 5690 5692 6 5870 5680 5681 5688 5689 5690 6 5828 5836 5873 5874 9736 6019 6 5872 5836 5874 5875 5882 5883 6 5872 5873 5875 5876 9736 6041 6 5874 5873 5876 5877 5878 5882 6 5874 5875 5877 6048 6041 6042 6 5876 5875 5878 5879 6049 6048 6 5877 5875 5879 5880 5881 5882 6 5877 5878 5880 6049 6050 5888 6 5879 5878 5881 5400 5399 5888 6 5880 5878 5882 5884 5887 5400 6 5881 5878 5875 5873 5883 5884 6 5882 5873 5836 5884 5885 5837 6 5882 5883 5885 5811 5881 5887 6 5884 5883 5837 5811 5810 5886 5 5810 5885 5837 5838 5809 5 5881 5884 5811 5402 5400 6 5880 5399 5889 6053 6050 5879 6 5888 5399 5397 5890 5891 6053 6 5889 5397 5891 5892 5893 5396 6 5889 5890 5892 6056 6053 6057 6 5891 5890 5893 6057 6058 6059 6 5892 5890 5396 5894 5895 6059 6 5893 5396 5895 5896 5899 5395 6 5893 5894 5896 5897 6059 6061 6 5895 5894 5897 5898 4889 5899 6 5895 5896 5898 5900 6061 6062 6 5897 5896 4889 4890 5900 5901 7 4889 5896 5894 5395 5393 5372 4888 6 5897 5898 5901 6065 6062 6066 6 5900 5898 4890 4892 5902 6066 6 5901 4892 5903 5904 5905 6066 6 5902 4892 5904 5911 5912 4893 6 5902 5903 5905 5906 5907 5911 6 5902 5904 5906 6066 6070 6067 7 5905 5904 5907 5908 6075 6072 6070 6 5906 5904 5908 5909 5910 5911 5 5906 5907 5909 5934 6075 7 5908 5907 5910 5932 5929 5933 5934 6 5909 5907 5911 5932 9752 5915 6 5910 5907 5904 5903 5912 5915 6 5911 5903 4893 5913 5914 5915 6 5912 4893 4894 4896 4899 5914 6 5913 4899 5912 5915 5916 5917 6 5912 5914 5916 5911 9752 5910 6 5915 5914 5917 9752 9755 9758 6 5916 5914 4899 4900 5918 9758 7 5917 4900 4902 3671 3951 5919 9758 6 5918 3951 3949 5920 9755 9758 5 5919 3949 3948 5921 9755 6 5920 3948 5922 5930 5931 9755 6 5921 3948 3946 3962 5923 5930 6 5922 3962 3963 5924 5925 5930 6 5923 3963 3965 5925 5926 5942 6 5923 5924 5926 5927 5929 5930 6 5925 5924 5927 5928 5941 5942 5 5925 5926 5928 5929 5933 7 5927 5926 5935 5933 5936 5940 5941 7 5925 5927 5930 5931 5932 5909 5933 6 5925 5929 5931 5923 5922 5921 6 5930 5929 5921 5932 9752 9755 5 5931 5929 5909 5910 9752 6 5909 5929 5934 5935 5928 5927 6 5909 5933 5935 6074 6075 5908 6 5934 5933 5928 5936 5937 6074 6 5935 5928 5937 5938 5939 5940 5 5935 5936 5938 6074 6076 6 5937 5936 5939 6076 6077 6086 6 5938 5936 5940 6087 6086 6091 7 5939 5936 5928 5941 5944 6091 5946 5 5940 5928 5926 5942 5944 6 5941 5926 5924 3965 5943 5944 7 5942 3965 3966 5944 5945 3135 5947 6 5942 5943 5941 5940 5945 5946 5 5944 5943 5946 3134 3135 6 5944 5945 3134 6091 5940 3136 6 3135 5943 2093 2092 5948 3966 6 2092 5947 3966 3967 2488 2489 6 5754 5756 5950 5752 5751 6121 6 5949 5756 5951 6166 6120 6121 6 5950 5756 5757 5952 6166 6164 6 5951 5757 5759 5953 5954 6164 6 5952 5759 5954 5955 5956 5957 6 5952 5953 5955 6162 6161 6164 6 5954 5953 5956 5960 5967 6162 6 5955 5953 5957 5958 5959 5960 6 5956 5953 5759 5760 5763 5958 6 5957 5763 5956 5959 5963 5988 6 5956 5958 5960 5961 5962 5963 6 5956 5959 5961 5964 5967 5955 6 5960 5959 5962 5964 5965 5982 6 5961 5959 5963 5983 5982 5984 6 5962 5959 5958 5987 5984 5988 6 5960 5961 5965 5966 5967 5968 6 5964 5961 5966 5982 5980 5971 6 5964 5965 5968 5969 5970 5971 6 5960 5964 5955 5968 6163 6162 7 5967 5964 5966 5969 6156 6157 6163 6 5968 5966 5970 6447 6445 6156 6 5969 5966 5971 5972 6447 6448 6 5970 5966 5972 5973 5965 5980 6 5970 5971 5973 5974 5975 6448 6 5972 5971 5974 5978 5979 5980 6 5972 5973 5975 5976 5977 5978 6 5972 5974 5976 6448 6449 6450 6 5975 5974 5977 6450 6608 6609 6 5976 5974 5978 6609 6612 6613 6 5977 5974 5973 5979 6613 6614 6 5978 5973 5980 5981 6640 6614 6 5979 5973 5981 5982 5965 5971 6 5979 5980 5982 5983 6640 6641 6 5981 5980 5983 5962 5961 5965 6 5981 5982 5962 5984 5985 6641 6 5983 5962 5985 5986 5987 5963 6 5983 5984 5986 6643 6641 6168 6 5985 5984 5987 5994 6167 6168 6 5986 5984 5963 5988 5989 5994 6 5987 5963 5958 5989 5764 5763 6 5987 5988 5764 5990 5993 5994 6 5989 5764 5765 5991 5992 5993 5 5990 5765 5992 5777 5776 6 5990 5991 5777 5993 5783 5782 7 5990 5992 5783 5989 5994 5995 5996 6 5989 5993 5995 5986 5987 6167 6 5994 5993 5996 5997 5998 6167 5 5995 5993 5783 5784 5997 5 5995 5996 5998 5784 5786 7 5995 5997 5786 5999 6000 6169 6167 6 5998 5786 6000 6001 6002 5787 5 5998 5999 6001 6169 6170 6 6000 5999 6002 6170 6171 6005 6 6001 5999 5787 6003 6004 6005 6 6002 5787 6004 6008 6009 5788 6 6002 6003 6005 6006 6007 6008 6 6002 6004 6006 6171 6001 6172 6 6005 6004 6007 6010 6172 6173 6 6006 6004 6008 6010 6011 6015 6 6007 6004 6003 6009 6017 6015 6 6008 6003 5788 6198 6017 6199 6 6006 6007 6011 6012 6179 6173 6 6010 6007 6012 6013 6014 6015 6 6010 6011 6013 6180 6179 6186 6 6012 6011 6014 6190 6187 6186 6 6013 6011 6015 6016 6190 6191 6 6014 6011 6016 6017 6008 6007 6 6014 6015 6017 6191 6194 6195 6 6016 6015 6008 6198 6195 6009 6 5843 5844 5845 6937 6935 6940 6 5827 5828 6020 9736 6038 5872 6 5827 6019 6021 6022 6023 6038 6 5827 6020 6022 6215 5825 6222 6 6021 6020 6023 6024 6025 6222 6 6022 6020 6024 6037 6028 6038 6 6022 6023 6025 6026 6027 6028 6 6022 6024 6026 6222 6225 6223 6 6025 6024 6027 6225 6226 6032 6 6026 6024 6028 6029 6031 6032 6 6027 6024 6029 6030 6037 6023 6 6027 6028 6030 6031 6033 6034 6 6029 6028 6034 6035 6036 6037 6 6027 6029 6032 6033 6247 6239 6 6027 6031 6226 6026 6227 6239 6 6031 6029 6034 6247 6246 6248 6 6033 6029 6030 6035 6248 6249 6 6034 6030 6036 6249 6263 6264 6 6035 6030 6037 6039 6040 6264 6 6036 6030 6028 6023 6038 6039 6 6037 6023 6039 9736 6019 6020 6 6037 6038 6036 6040 6041 9736 7 6036 6039 6041 6042 6043 6265 6264 6 6040 6039 6042 9736 5874 5876 6 6040 6041 6043 6044 6048 5876 5 6040 6042 6044 6045 6265 6 6043 6042 6045 6046 6047 6048 7 6043 6044 6046 6262 6265 6261 6266 6 6045 6044 6047 6269 6266 6280 6 6046 6044 6048 6049 6051 6280 6 6047 6044 6042 6049 5877 5876 6 6047 6048 5877 5879 6050 6051 6 6049 5879 6051 6052 6053 5888 6 6049 6050 6052 6054 6280 6047 6 6051 6050 6053 6054 6055 6056 6 6052 6050 5888 5889 6056 5891 7 6051 6052 6055 6279 6280 6278 6281 6 6054 6052 6056 6283 6281 6284 6 6055 6052 6053 5891 6057 6284 6 6056 5891 5892 6058 6060 6284 6 6057 5892 6059 6060 6287 6288 6 6058 5892 5893 5895 6061 6288 6 6057 6058 6284 6285 6286 6287 6 6059 5895 5897 6062 6063 6288 6 6061 5897 6063 6064 6065 5900 7 6061 6062 6064 6288 6291 6289 6292 5 6063 6062 6065 6292 6068 6 6064 6062 5900 6066 6067 6068 6 6065 5900 5901 5902 5905 6067 6 6065 6066 6068 6069 6070 5905 7 6065 6067 6069 6292 6064 6293 6294 5 6068 6067 6070 6071 6294 6 6069 6067 5905 6071 6072 5906 7 6069 6070 6072 6073 6296 6294 6297 6 6071 6070 6073 6074 6075 5906 6 6071 6072 6074 6297 6078 6076 7 6073 6072 6075 5934 5935 5937 6076 5 6074 6072 5934 5908 5906 6 6074 5937 5938 6077 6078 6073 6 6076 5938 6078 6079 6086 6083 6 6076 6077 6079 6080 6297 6073 6 6078 6077 6080 6081 6082 6083 6 6078 6079 6081 6297 6298 6301 6 6080 6079 6082 6301 6302 6314 6 6081 6079 6083 6084 6313 6314 6 6082 6079 6084 6085 6086 6077 7 6082 6083 6085 6088 6313 6315 6318 6 6084 6083 6086 6087 6088 6089 6 6085 6083 6087 5939 5938 6077 6 6085 6086 5939 6089 6090 6091 6 6084 6085 6089 6094 3769 6318 7 6088 6085 6087 6090 3137 6092 6094 5 6089 6087 6091 3136 3137 6 6090 6087 5939 5940 5946 3136 6 6089 3137 3138 6093 3768 6094 7 6092 3138 3768 3766 2085 2084 9776 5 6092 3768 3769 6088 6089 6 5724 5725 6096 6383 9702 9703 6 6095 5725 6097 6098 6383 6384 5 6096 5725 5726 5730 6098 7 6096 6097 5730 6099 6384 5856 5855 5 6098 5730 5731 6100 5855 7 6099 5731 6101 6102 6103 5855 5853 5 6100 5731 5732 5733 6102 7 6101 5733 6100 6103 6104 6105 5735 6 6100 6102 6104 5853 5852 5851 6 6103 6102 6105 5851 6385 6386 5 6104 6102 5735 6106 6386 7 6105 5735 5736 6107 6386 6387 6109 6 6106 5736 5739 5741 6108 6109 6 6107 5741 6109 6110 6111 5743 6 6107 6108 6110 6387 6106 6388 6 6109 6108 6111 6388 6389 6390 6 6110 6108 5743 6112 6393 6390 6 6111 5743 5744 6113 6115 6393 6 6112 5744 6114 6115 6116 6117 6 6113 5744 6120 6117 6121 5745 6 6112 6113 6116 6393 9737 9738 6 6115 6113 6117 6118 6122 9738 6 6116 6113 6118 6119 6120 6114 6 6116 6117 6119 6122 6123 6165 5 6118 6117 6120 6166 6165 6 6119 6117 6114 6121 6166 5950 7 6120 6114 5745 5750 5751 5949 5950 6 6116 6118 6123 6124 6131 9738 6 6122 6118 6124 6125 6165 6160 6 6122 6123 6125 6126 6127 6131 6 6124 6123 6126 6152 6160 6158 6 6124 6125 6127 6128 6151 6152 6 6124 6126 6128 6129 6130 6131 6 6127 6126 6129 6150 6149 6151 6 6127 6128 6130 6150 6137 6134 6 6127 6129 6131 6132 6133 6134 6 6127 6130 6132 9738 6122 6124 6 6131 6130 6133 6398 9737 9738 6 6132 6130 6134 6135 6397 6398 6 6133 6130 6135 6136 6137 6129 6 6133 6134 6136 6397 6399 6400 6 6135 6134 6137 6138 6400 6401 6 6136 6134 6138 6139 6150 6129 6 6136 6137 6139 6140 6401 6402 6 6138 6137 6140 6141 6148 6150 6 6138 6139 6141 6142 6402 6403 6 6140 6139 6142 6143 6144 6148 6 6140 6141 6143 6403 6404 6405 6 6142 6141 6144 6145 6405 6436 6 6143 6141 6145 6146 6147 6148 6 6143 6144 6146 6437 6436 6438 6 6145 6144 6147 6438 6439 6440 6 6146 6144 6148 6149 6440 6441 6 6147 6144 6141 6139 6149 6150 6 6147 6148 6150 6128 6151 6441 6 6149 6148 6139 6137 6129 6128 6 6149 6128 6126 6152 6153 6441 6 6151 6126 6125 6153 6154 6158 6 6151 6152 6154 6155 6441 6442 6 6153 6152 6155 6156 6157 6158 6 6153 6154 6156 6444 6442 6445 6 6155 6154 6157 5969 6445 5968 6 6156 6154 6158 6159 5968 6163 6 6157 6154 6152 6159 6160 6125 6 6157 6158 6160 6161 6162 6163 6 6159 6158 6125 6161 6123 6165 6 6159 6160 6162 5954 6164 6165 6 6159 6161 6163 5967 5955 5954 5 6159 6162 5967 6157 5968 6 5954 6161 6165 6166 5951 5952 7 6164 6161 6166 6119 6118 6123 6160 6 6164 6165 6119 6120 5950 5951 6 5994 5995 5986 6168 6169 5998 6 5986 6167 6169 6643 5985 9783 6 6168 6167 5998 6000 6170 9783 7 6169 6000 6001 6171 6789 9783 9782 7 6170 6001 6005 6172 6788 6786 6789 6 6171 6005 6006 6173 6174 6788 6 6172 6006 6174 6175 6010 6179 6 6172 6173 6175 6176 6784 6788 6 6174 6173 6176 6177 6178 6179 6 6174 6175 6177 6782 6781 6784 6 6176 6175 6178 9796 6782 9797 6 6177 6175 6179 6180 6181 9796 6 6178 6175 6180 6012 6010 6173 6 6178 6179 6181 6182 6186 6012 6 6178 6180 6182 6183 9796 9799 6 6181 6180 6183 6184 6185 6186 6 6181 6182 6184 6362 6645 9799 6 6183 6182 6185 6362 6363 6367 6 6184 6182 6186 6187 6188 6367 6 6185 6182 6180 6187 6012 6013 6 6185 6186 6188 6189 6190 6013 6 6185 6187 6189 6367 6368 6369 6 6188 6187 6190 6369 6372 6192 6 6189 6187 6013 6014 6191 6192 6 6190 6014 6016 6192 6193 6194 6 6190 6191 6193 6372 6189 6373 6 6192 6191 6194 6382 6373 6203 6 6193 6191 6016 6195 6196 6203 6 6194 6016 6196 6197 6198 6017 6 6194 6195 6197 6200 6201 6203 6 6196 6195 6198 5792 5793 6200 6 6197 6195 6017 6009 6199 5792 6 6198 6009 5792 5790 5789 5788 6 6197 5793 6196 6201 6202 6221 6 6196 6200 6202 6203 6204 6205 6 6201 6200 6205 6206 6220 6221 6 6196 6201 6204 6382 6193 6194 6 6203 6201 6205 6382 6459 6381 6 6204 6201 6202 6206 6207 6459 6 6205 6202 6207 6208 6209 6220 6 6205 6206 6208 6210 6211 6459 6 6207 6206 6209 6210 6214 6217 6 6208 6206 5802 6217 6218 6220 6 6207 6208 6211 6212 6213 6214 6 6207 6210 6212 6456 6458 6459 7 6211 6210 6213 6223 6224 6454 6456 5 6212 6210 6214 6215 6223 6 6213 6210 6208 6215 6216 6217 7 6213 6214 6216 5825 6021 6222 6223 5 6215 6214 6217 5824 5825 7 6216 6214 5824 5803 5802 6209 6208 6 5802 6209 5799 5797 6219 6220 6 5797 6218 6220 6221 5794 5795 6 6219 6218 6209 6206 6202 6221 6 6219 6220 6202 6200 5793 5794 5 6215 6021 6022 6025 6223 7 6215 6222 6213 6212 6224 6225 6025 7 6212 6223 6225 6454 6231 6226 6228 5 6224 6223 6025 6026 6226 6 6225 6026 6032 6227 6228 6224 6 6226 6032 6228 6229 6238 6239 6 6226 6227 6229 6230 6231 6224 6 6228 6227 6230 6237 6234 6238 6 6228 6229 6231 6232 6233 6234 6 6228 6230 6232 6454 6224 6455 6 6231 6230 6233 6455 6460 6461 6 6232 6230 6234 6235 6461 6462 6 6233 6230 6235 6236 6237 6229 6 6233 6234 6236 6462 6463 6471 6 6235 6234 6237 6473 6471 6476 6 6236 6234 6229 6238 6476 6241 6 6237 6229 6227 6239 6240 6241 6 6238 6227 6240 6247 6031 6032 6 6238 6239 6241 6242 6243 6247 6 6238 6240 6242 6476 6237 6477 6 6241 6240 6243 6244 6477 6479 6 6242 6240 6244 6245 6246 6247 6 6242 6243 6245 6481 6479 6482 6 6244 6243 6246 6482 6253 6251 6 6245 6243 6247 6033 6248 6251 6 6246 6243 6240 6239 6031 6033 6 6246 6033 6034 6249 6250 6251 6 6248 6034 6035 6250 6263 6255 6 6248 6249 6251 6252 6254 6255 6 6248 6250 6252 6253 6245 6246 6 6251 6250 6253 6254 6484 6485 6 6251 6252 6482 6245 6483 6484 6 6252 6250 6255 6256 6257 6485 6 6254 6250 6256 6263 6260 6249 6 6254 6255 6257 6258 6259 6260 6 6254 6256 6258 6485 6493 6494 6 6257 6256 6259 6494 6495 6496 7 6258 6256 6260 6261 6496 6273 6267 6 6259 6256 6261 6262 6263 6255 6 6259 6260 6262 6045 6266 6267 6 6261 6260 6263 6264 6265 6045 6 6262 6260 6264 6255 6249 6035 6 6262 6263 6265 6035 6040 6036 5 6262 6264 6045 6043 6040 6 6045 6261 6267 6268 6269 6046 6 6261 6266 6268 6272 6273 6259 6 6267 6266 6269 6270 6271 6272 6 6268 6266 6046 6270 6279 6280 6 6268 6269 6271 6277 6278 6279 6 6268 6270 6272 6275 6276 6277 6 6268 6271 6267 6273 6274 6275 6 6267 6272 6274 6496 6259 6497 6 6273 6272 6275 6500 6497 6501 6 6274 6272 6271 6276 6501 6502 6 6275 6271 6277 6502 6503 6504 6 6276 6271 6270 6278 6504 6505 7 6277 6270 6279 6054 6281 6282 6505 5 6278 6270 6269 6280 6054 6 6279 6269 6046 6054 6051 6047 5 6278 6054 6282 6283 6055 6 6278 6281 6283 6506 6505 6507 6 6282 6281 6055 6284 6507 6285 6 6283 6055 6056 6057 6060 6285 6 6284 6060 6286 6507 6283 6508 7 6285 6060 6287 6508 6328 6511 6290 6 6286 6060 6058 6288 6289 6290 6 6287 6058 6059 6061 6063 6289 5 6287 6288 6290 6291 6063 5 6287 6289 6291 6328 6286 7 6290 6289 6063 6292 6326 6327 6328 6 6291 6063 6064 6068 6293 6326 6 6292 6068 6294 6295 6325 6326 6 6293 6068 6069 6295 6296 6071 6 6293 6294 6296 6299 6324 6325 6 6295 6294 6071 6297 6298 6299 6 6296 6071 6073 6078 6080 6298 6 6297 6080 6296 6299 6300 6301 5 6296 6298 6300 6324 6295 6 6299 6298 6301 6303 6323 6324 6 6300 6298 6080 6081 6302 6303 6 6301 6081 6303 6304 6308 6314 6 6301 6302 6304 6305 6323 6300 6 6303 6302 6305 6306 6307 6308 6 6303 6304 6306 6323 6337 6338 6 6305 6304 6307 6338 6341 6342 6 6306 6304 6308 6309 6342 6343 6 6307 6304 6302 6309 6310 6314 6 6307 6308 6310 6311 6343 6346 6 6309 6308 6311 6312 6313 6314 6 6309 6310 6312 6321 6322 6346 6 6311 6310 6313 6315 6316 6321 6 6312 6310 6314 6082 6084 6315 6 6313 6310 6082 6081 6302 6308 6 6313 6084 6312 6316 6317 6318 6 6312 6315 6317 6319 6320 6321 6 6316 6315 6318 3769 1571 6319 5 6317 6315 3769 6084 6088 5 6317 1571 1572 6320 6316 7 6319 1572 1573 6316 6321 6322 6360 5 6316 6320 6322 6312 6311 7 6321 6320 6311 6347 6346 6348 6360 6 6303 6305 6300 6324 6335 6337 7 6300 6323 6299 6295 6325 6336 6335 6 6295 6324 6293 6326 6336 6331 6 6293 6325 6292 6291 6327 6331 6 6291 6326 6328 6329 6330 6331 6 6291 6327 6329 6511 6286 6290 6 6328 6327 6330 6510 6511 6519 7 6329 6327 6331 6332 6333 6519 6518 6 6330 6327 6332 6336 6325 6326 6 6330 6331 6333 6334 6335 6336 5 6330 6332 6334 6518 6520 6 6333 6332 6335 6520 6528 6529 7 6334 6332 6336 6324 6323 6337 6529 5 6335 6332 6331 6325 6324 6 6335 6323 6305 6338 6339 6529 6 6337 6305 6306 6339 6340 6341 6 6337 6338 6340 6530 6527 6529 5 6339 6338 6341 6545 6530 6 6340 6338 6306 6342 6546 6545 6 6341 6306 6307 6343 6344 6546 6 6342 6307 6344 6345 6346 6309 6 6342 6343 6345 6546 6543 6547 6 6344 6343 6346 6347 6549 6547 6 6345 6343 6347 6322 6311 6309 6 6345 6346 6322 6348 6349 6549 6 6347 6322 6349 6350 6359 6360 6 6347 6348 6350 6351 6550 6549 6 6349 6348 6351 6352 6353 6359 6 6349 6350 6352 6552 6550 6553 6 6351 6350 6353 6354 6355 6553 6 6352 6350 6354 1589 2476 6359 7 6352 6353 6355 6356 1594 1590 1589 6 6352 6354 6356 6357 6553 6554 5 6355 6354 6357 6358 1594 6 6355 6356 6358 6554 6555 3971 6 6357 6356 1594 3971 3970 1595 6 2476 6353 6350 6348 6360 6361 6 6359 6348 6361 1573 6320 6322 5 6359 6360 1573 2475 2476 6 6183 6184 6363 6364 6644 6645 6 6362 6184 6364 6365 6366 6367 6 6362 6363 6365 6644 6648 6649 6 6364 6363 6366 9727 9673 6649 6 6365 6363 6367 9727 9728 6368 6 6366 6363 6184 6185 6188 6368 6 6367 6188 6369 6370 9728 6366 6 6368 6188 6189 6370 6371 6372 6 6368 6369 6371 9728 9729 9730 6 6370 6369 6372 6374 6375 9730 6 6371 6369 6189 6192 6373 6374 6 6372 6192 6374 6382 6380 6193 6 6372 6373 6371 6375 6376 6380 6 6371 6374 6376 6377 6467 9730 6 6375 6374 6377 6378 6379 6380 5 6375 6376 6378 9693 6467 7 6377 6376 6379 6457 6455 6460 9693 6 6378 6376 6380 6381 6457 6458 6 6379 6376 6381 6382 6373 6374 6 6379 6380 6382 6459 6458 6204 6 6381 6380 6373 6193 6203 6204 7 6095 6096 6384 9703 5861 5860 5858 5 6383 6096 6098 5856 5858 6 5851 6104 6386 6945 5850 6946 7 6385 6104 6105 6106 6387 6946 6947 5 6386 6106 6109 6388 6947 6 6387 6109 6110 6389 6947 6948 6 6388 6110 6390 6391 6948 6949 6 6389 6110 6391 6392 6393 6111 6 6389 6390 6392 6394 6395 6949 6 6391 6390 6393 6394 9737 6398 6 6392 6390 6111 6112 6115 9737 6 6391 6392 6395 6396 6397 6398 6 6391 6394 6396 6949 6950 6951 6 6395 6394 6397 6951 6952 6399 6 6396 6394 6398 6133 6135 6399 6 6397 6394 6133 6132 9737 6392 6 6397 6135 6400 6952 6396 6953 6 6399 6135 6136 6401 6953 6954 6 6400 6136 6138 6402 6954 6960 6 6401 6138 6140 6403 6960 6410 6 6402 6140 6142 6404 6408 6410 6 6403 6142 6405 6406 6407 6408 6 6404 6142 6143 6406 6436 6434 6 6404 6405 6407 6431 6429 6434 6 6404 6406 6408 6409 6428 6429 6 6404 6407 6409 6403 6410 6411 6 6408 6407 6411 6412 6413 6428 6 6403 6408 6411 6959 6960 6402 6 6410 6408 6409 6412 6959 6961 6 6411 6409 6413 6414 6963 6961 6 6412 6409 6414 6415 6427 6428 6 6412 6413 6415 6416 6963 6964 6 6414 6413 6416 6417 6418 6427 6 6414 6415 6417 6558 6559 6964 6 6416 6415 6418 6419 6558 6565 6 6417 6415 6419 6420 6427 6424 6 6417 6418 6420 6421 6573 6565 6 6419 6418 6421 6422 6423 6424 6 6419 6420 6422 6573 6572 6574 6 6421 6420 6423 6580 6577 6574 6 6422 6420 6424 6425 6580 6581 6 6423 6420 6425 6426 6427 6418 6 6423 6424 6426 6584 6581 6430 6 6425 6424 6427 6428 6429 6430 6 6426 6424 6418 6415 6413 6428 6 6427 6413 6409 6407 6426 6429 6 6426 6428 6407 6430 6431 6406 6 6426 6429 6431 6432 6584 6425 6 6430 6429 6406 6432 6433 6434 6 6430 6431 6433 6584 6585 6586 6 6432 6431 6434 6435 6589 6586 6 6433 6431 6435 6436 6405 6406 6 6433 6434 6436 6437 6589 6590 6 6435 6434 6405 6437 6145 6143 6 6435 6436 6145 6438 6590 6591 6 6437 6145 6146 6439 6591 6592 6 6438 6146 6440 6595 6592 6443 6 6439 6146 6147 6441 6442 6443 6 6440 6147 6149 6151 6153 6442 6 6441 6153 6440 6443 6444 6155 6 6440 6442 6444 6595 6439 6453 6 6443 6442 6155 6445 6446 6453 6 6444 6155 6446 6447 5969 6156 6 6444 6445 6447 6449 6452 6453 6 6446 6445 5969 5970 6448 6449 5 6447 5970 5972 5975 6449 7 6448 5975 6447 6450 6451 6452 6446 7 6449 5975 5976 6451 6607 6598 6608 6 6449 6450 6452 6596 6597 6598 5 6449 6451 6446 6453 6596 6 6446 6452 6595 6443 6444 6596 5 6212 6224 6231 6455 6456 7 6454 6231 6456 6457 6378 6232 6460 6 6454 6455 6457 6458 6211 6212 5 6456 6455 6378 6379 6458 6 6457 6379 6456 6211 6459 6381 6 6211 6458 6207 6381 6204 6205 5 6455 6232 6461 9693 6378 6 6460 6232 6233 6462 6465 9693 6 6461 6233 6235 6463 6464 6465 6 6462 6235 6464 6469 6470 6471 6 6462 6463 6465 6466 6468 6469 6 6462 6464 6461 6466 6467 9693 6 6465 6464 6467 6468 9731 9732 7 6465 6466 9693 6377 6375 9730 9731 6 6466 6464 6469 7509 7510 9732 7 6468 6464 6463 6470 7507 7509 7506 6 6469 6463 6471 6472 7506 7505 6 6470 6463 6235 6472 6473 6236 6 6470 6471 6473 6474 7504 7505 6 6472 6471 6236 6474 6475 6476 7 6472 6473 6475 7503 7504 9692 9780 6 6474 6473 6476 6477 6478 9692 6 6475 6473 6236 6237 6241 6477 6 6476 6241 6242 6475 6478 6479 7 6475 6477 6479 6480 9692 9778 9779 6 6478 6477 6242 6480 6481 6244 6 6478 6479 6481 6487 9705 9778 6 6480 6479 6244 6482 6486 6487 6 6481 6244 6245 6253 6483 6486 5 6482 6253 6484 6486 6489 7 6483 6253 6252 6485 6489 6490 6491 7 6484 6252 6254 6257 6491 6492 6493 6 6482 6483 6481 6487 6488 6489 5 6481 6486 6488 9705 6480 7 6487 6486 6489 9704 2194 2195 9705 6 6488 6486 6483 6484 6490 9704 6 6489 6484 6491 2251 2252 9704 6 6490 6484 6485 6492 2251 9706 6 6491 6485 6493 9706 3335 9707 5 6492 6485 6257 6494 9707 6 6493 6257 6258 6495 9707 6499 6 6494 6258 6496 6497 6498 6499 5 6495 6258 6259 6273 6497 6 6496 6273 6495 6498 6500 6274 6 6495 6497 6499 2511 2512 6500 7 6495 6498 2511 3334 9707 3881 6494 6 2512 6498 6497 6274 6501 9710 6 6500 6274 6275 6502 9709 9710 6 6501 6275 6276 6503 9708 9709 6 6502 6276 6504 6512 9708 9711 6 6503 6276 6277 6505 6506 6512 5 6504 6277 6506 6282 6278 7 6504 6505 6282 6507 6512 6513 6509 6 6506 6282 6283 6285 6508 6509 6 6507 6285 6286 6509 6510 6511 6 6507 6508 6510 6513 6506 6514 7 6509 6508 6511 6329 6514 6515 6519 5 6510 6508 6329 6328 6286 6 6503 6504 6506 6513 9711 9717 5 6512 6506 6509 6514 9717 7 6513 6509 6510 6515 6516 9717 9718 6 6514 6510 6516 6517 6518 6519 6 6514 6515 6517 9718 9719 6522 6 6516 6515 6518 6520 6521 6522 6 6517 6515 6519 6330 6333 6520 5 6518 6515 6510 6329 6330 7 6518 6333 6334 6517 6521 6525 6528 6 6517 6520 6522 6523 6524 6525 7 6517 6521 6523 2214 9719 6516 2213 5 6522 6521 6524 2213 3348 7 6523 6521 6525 6526 3348 3347 6532 6 6524 6521 6520 6526 6527 6528 6 6524 6525 6527 6530 6531 6532 6 6526 6525 6528 6530 6339 6529 5 6527 6525 6520 6334 6529 6 6528 6334 6335 6339 6527 6337 7 6526 6527 6531 6340 6545 6339 6534 6 6526 6530 6532 3863 6533 6534 5 6526 6531 3863 3347 6524 6 3863 6531 6534 6535 6536 6716 6 6533 6531 6535 6544 6545 6530 6 6533 6534 6536 6537 6544 6541 6 6533 6535 6537 6538 6715 6716 6 6536 6535 6538 6539 6540 6541 7 6536 6537 6539 6714 3887 3886 6715 6 6538 6537 6540 6714 6718 6719 6 6539 6537 6541 6542 6719 6708 6 6540 6537 6542 6543 6544 6535 6 6540 6541 6543 6547 6548 6708 6 6542 6541 6544 6546 6344 6547 6 6543 6541 6535 6534 6545 6546 6 6544 6534 6546 6341 6340 6530 6 6544 6545 6543 6341 6342 6344 6 6543 6344 6542 6548 6549 6345 6 6542 6547 6549 6550 6551 6708 6 6548 6547 6345 6347 6550 6349 6 6548 6549 6551 6552 6351 6349 6 6548 6550 6552 6705 6707 6708 6 6551 6550 6351 6553 6554 6705 5 6552 6351 6352 6355 6554 6 6553 6355 6357 6555 6552 6705 7 6554 6357 3971 6705 6706 9747 3491 6 3969 1597 1598 6557 4038 3968 6 6556 1598 4038 3764 612 611 6 6416 6417 6559 6560 6564 6565 6 6416 6558 6560 6561 6964 6965 6 6559 6558 6561 6562 6563 6564 6 6559 6560 6562 6965 6966 6967 6 6561 6560 6563 6985 6983 6967 6 6562 6560 6564 6985 6986 6567 6 6563 6560 6558 6565 6566 6567 6 6564 6558 6417 6566 6573 6419 6 6564 6565 6567 6568 6569 6573 6 6564 6566 6568 6986 6563 6987 6 6567 6566 6569 6570 6990 6987 6 6568 6566 6570 6571 6572 6573 6 6568 6569 6571 6997 6990 6998 6 6570 6569 6572 6575 7001 6998 6 6571 6569 6573 6421 6574 6575 6 6572 6569 6566 6565 6419 6421 6 6572 6421 6575 6576 6577 6422 6 6572 6574 6576 7003 7001 6571 6 6575 6574 6577 6578 7003 7004 6 6576 6574 6578 6579 6580 6422 6 6576 6577 6579 7004 7005 7006 6 6578 6577 6580 7006 7007 6582 6 6579 6577 6422 6423 6581 6582 6 6580 6423 6582 6583 6584 6425 6 6580 6581 6583 7007 6579 7008 6 6582 6581 6584 6720 7008 6585 6 6583 6581 6425 6430 6432 6585 6 6584 6432 6586 6587 6720 6583 6 6585 6432 6587 6588 6589 6433 6 6585 6586 6588 6720 6721 6728 6 6587 6586 6589 6728 6729 6730 6 6588 6586 6433 6435 6590 6730 6 6589 6435 6437 6591 6730 6731 6 6590 6437 6438 6592 6593 6731 6 6591 6438 6593 6594 6595 6439 6 6591 6592 6594 6731 6732 6733 7 6593 6592 6595 6600 6733 6597 6596 6 6594 6592 6439 6443 6453 6596 6 6595 6453 6452 6451 6597 6594 6 6596 6451 6598 6599 6600 6594 6 6597 6451 6599 6606 6607 6450 6 6597 6598 6600 6601 6602 6606 5 6597 6599 6601 6733 6594 6 6600 6599 6602 6603 6734 6733 6 6601 6599 6603 6604 6605 6606 7 6601 6602 6604 6734 6735 6736 6737 5 6603 6602 6605 6737 6738 7 6604 6602 6606 6738 6739 6748 6745 6 6605 6602 6599 6598 6607 6748 6 6606 6598 6450 6608 6747 6748 6 6607 6450 5976 6609 6610 6747 6 6608 5976 5977 6610 6611 6612 6 6608 6609 6611 6747 6746 6749 6 6610 6609 6612 6619 6620 6749 6 6611 6609 5977 6613 6616 6619 6 6612 5977 5978 6614 6615 6616 6 6613 5978 6615 6639 6640 5979 6 6613 6614 6616 6617 6638 6639 6 6613 6615 6617 6618 6619 6612 6 6616 6615 6618 6636 6637 6638 6 6616 6617 6619 6621 6622 6636 6 6616 6618 6612 6611 6620 6621 6 6611 6619 6621 6750 6749 6626 6 6620 6619 6618 6622 6623 6626 6 6621 6618 6623 6624 6635 6636 6 6621 6622 6624 6625 6626 6627 6 6623 6622 6625 6633 6634 6635 6 6623 6624 6627 6628 6632 6633 6 6621 6623 6627 6750 6620 6751 6 6626 6623 6625 6628 6629 6751 6 6627 6625 6629 6630 6631 6632 6 6627 6628 6630 6756 6753 6751 6 6629 6628 6631 6756 6757 6758 6 6630 6628 6632 6758 6766 6767 6 6631 6628 6625 6633 6767 6768 6 6632 6625 6624 6634 6768 6769 6 6633 6624 6635 6769 6770 6771 6 6634 6624 6622 6636 9785 6771 6 6635 6622 6618 6617 6637 9785 6 6636 6617 6638 6785 6783 9785 6 6637 6617 6615 6639 9777 6785 6 6638 6615 6614 6640 9777 6642 6 6639 6614 5979 5981 6641 6642 6 6640 5981 5983 6642 6643 5985 7 6640 6641 6643 9777 6639 6787 9782 6 6642 6641 5985 6168 9782 9783 6 6362 6364 6645 6646 6647 6648 6 6362 6644 6183 6646 9724 9799 6 6645 6644 6647 9723 9724 6655 6 6646 6644 6648 6652 6654 6655 6 6647 6644 6364 6649 6650 6652 6 6648 6364 6650 6651 9673 6365 6 6648 6649 6651 6652 6653 9670 6 6650 6649 9670 9671 9672 9673 6 6648 6650 6653 6647 6654 3173 6 6652 6650 9670 9691 3172 3173 6 6647 6652 3173 6655 3450 3175 6 6647 6654 3450 6656 9723 6646 6 6655 3450 6657 6658 9721 9723 6 6656 3450 6658 3179 6659 6667 6 6656 6657 6667 6668 6669 9721 6 6657 3179 6660 6663 6664 6667 6 6659 3179 3178 6661 6662 6663 6 6660 3178 3180 2858 2859 6662 5 6660 6661 6663 6666 2859 6 6660 6662 6659 6664 6665 6666 6 6659 6663 6665 6667 6668 6672 7 6664 6663 6666 6672 6673 4564 4563 6 6665 6663 6662 4563 6674 2859 5 6659 6664 6668 6658 6657 7 6667 6664 6658 6669 6670 6671 6672 6 6658 6668 6670 6774 6775 9721 6 6669 6668 6671 6773 6772 6774 6 6670 6668 6672 6673 6790 6773 5 6671 6668 6664 6665 6673 5 6672 6665 4564 6671 6790 6 4563 6666 4561 6675 2860 2859 6 4561 6674 2860 6676 4560 9792 6 6675 2860 2853 2854 6677 9792 6 6676 2854 6678 6679 6681 9792 5 6677 2854 6679 6680 2855 6 6677 6678 6680 6681 6682 6683 6 6679 6678 6685 6683 6686 2855 6 6677 6679 6682 9750 9761 9792 6 6681 6679 6683 5156 5157 9750 6 6682 6679 5156 6684 6685 6680 6 5156 6683 6685 6692 6693 6694 6 6684 6683 6680 6686 6687 6692 6 6685 6680 6687 6688 6689 2855 6 6685 6686 6688 6692 6696 6699 6 6687 6686 6689 6690 6699 6700 6 6688 6686 6690 6691 2856 2855 6 6688 6689 6691 6700 6702 2551 5 6690 6689 2856 2550 2551 6 6685 6687 6684 6693 6695 6696 6 6684 6692 6694 4523 4522 6695 5 6684 6693 4523 4532 5156 6 4522 6693 6692 6696 6697 6704 6 6695 6692 6687 6697 6698 6699 7 6695 6696 6698 6703 3505 3506 6704 6 6697 6696 6699 6700 6701 6703 5 6698 6696 6687 6688 6700 7 6699 6688 6690 6698 6701 2222 6702 6 6698 6700 2222 64 65 6703 5 2222 6700 6690 2551 2221 6 6698 6701 65 66 6697 3505 5 6697 3506 3507 4522 6695 7 6552 6554 6555 6706 6551 6707 9749 6 6705 6555 9747 3502 9748 9749 6 6551 6705 6708 6709 6710 9749 7 6551 6707 6709 6719 6540 6548 6542 6 6708 6707 6710 6711 6718 6719 7 6709 6707 6711 6712 3503 9748 9749 7 6709 6710 6712 3117 3119 6713 6718 6 6711 6710 3503 3504 3116 3117 6 6711 3119 3121 3887 6714 6718 5 6713 3887 6538 6539 6718 6 6538 3886 6536 6716 3862 6717 5 6536 6715 6533 3863 3862 6 3862 6715 3861 3342 3885 3886 6 6714 6539 6713 6711 6709 6719 5 6718 6539 6540 6709 6708 6 6585 6587 6721 6722 7008 6583 6 6720 6587 6722 6723 6727 6728 6 6720 6721 6723 6724 7009 7008 6 6722 6721 6724 6725 6726 6727 6 6722 6723 6725 7009 7010 7011 6 6724 6723 6726 7022 7011 7023 6 6725 6723 6727 7023 7026 7027 6 6726 6723 6721 6728 7027 7030 6 6727 6721 6587 6588 6729 7030 6 6728 6588 6730 7030 7031 7032 6 6729 6588 6589 6590 6731 7032 6 6730 6590 6591 6593 6732 7032 6 6731 6593 6733 6734 7032 7033 6 6732 6593 6734 6601 6600 6594 6 6732 6733 6601 6603 6735 7033 6 6734 6603 6736 7033 7034 7035 6 6735 6603 6737 6740 7035 7036 5 6736 6603 6604 6738 6740 7 6737 6604 6605 6739 6740 6741 6742 6 6738 6605 6742 6743 6744 6745 6 6736 6737 6738 6741 7036 7037 6 6740 6738 6742 7037 7038 7039 6 6741 6738 6739 6743 7039 7040 7 6742 6739 6744 7040 7041 6754 7042 5 6743 6739 6745 6746 7042 6 6744 6739 6746 6747 6748 6605 7 6744 6745 6747 6610 6749 6750 7042 6 6746 6745 6748 6607 6608 6610 5 6747 6745 6607 6605 6606 5 6746 6610 6750 6620 6611 7 6746 6749 6620 6626 6751 6752 7042 6 6750 6626 6752 6753 6629 6627 5 6750 6751 6753 6754 7042 6 6752 6751 6754 6755 6756 6629 7 6752 6753 6755 7041 6743 7042 7141 5 6754 6753 6756 7141 6759 6 6755 6753 6629 6630 6757 6759 6 6756 6630 6758 6759 6760 6761 6 6757 6630 6631 6761 6762 6766 6 6756 6757 6760 7141 6755 7142 6 6759 6757 6761 7142 7143 7144 6 6760 6757 6758 6762 6763 7144 6 6761 6758 6763 4559 6764 6766 6 6761 6762 4559 4551 7144 4550 6 4559 6762 4558 4565 6765 6766 5 4565 6764 6766 6790 6767 6 6765 6764 6762 6758 6631 6767 6 6766 6631 6632 6768 6790 6765 6 6767 6632 6633 6769 6773 6790 6 6768 6633 6634 6770 6772 6773 6 6769 6634 6771 6772 6777 6778 6 6770 6634 6778 6779 6635 9785 6 6769 6770 6773 6670 6774 6777 6 6769 6772 6670 6671 6790 6768 6 6670 6772 6669 6775 6776 6777 6 6669 6774 6776 9721 9722 9798 7 6775 6774 6777 6778 6780 9797 9798 5 6776 6774 6772 6770 6778 6 6777 6770 6771 6779 6780 6776 6 6778 6771 6780 6781 6783 9785 6 6778 6779 6781 6782 6776 9797 6 6780 6779 6782 6176 6783 6784 5 6780 6781 6176 6177 9797 6 6781 6779 6784 6785 6637 9785 7 6781 6783 6176 6174 6785 6786 6788 7 6784 6783 6786 6787 9777 6638 6637 6 6784 6785 6787 6788 6171 6789 6 6786 6785 9777 6642 9782 6789 5 6784 6786 6171 6172 6174 5 6171 6786 6170 6787 9782 8 6671 6673 6773 4564 4565 6765 6768 6767 6 5418 5419 6792 7331 7332 7333 6 6791 5419 5420 5428 6793 7333 6 6792 5428 5429 6794 7333 7334 6 6793 5429 5430 6795 7334 7335 6 6794 5430 5432 5433 6796 7335 6 6795 5433 5434 6797 7335 7336 6 6796 5434 5435 6798 7336 7337 6 6797 5435 5436 6799 7337 7338 6 6798 5436 5437 6800 7338 7339 6 6799 5437 5438 6801 7339 7340 6 6800 5438 6802 7340 7341 7342 6 6801 5438 5439 5440 6803 7342 6 6802 5440 5441 6804 7342 7343 6 6803 5441 5442 6805 7343 7344 6 6804 5442 5444 6806 7344 7345 6 6805 5444 5445 6807 7345 7346 6 6806 5445 5446 6808 7346 7347 6 6807 5446 6809 7347 7348 7349 6 6808 5446 5447 6810 7349 6811 5 6809 5447 5217 5218 6811 6 6810 5218 5219 6812 7349 6809 5 6811 5219 6813 7349 7350 6 6812 5219 5220 6814 7350 7351 7 6813 5220 5221 5222 6815 7351 7352 5 6814 5222 6816 7352 7353 7 6815 5222 5223 5224 6817 7353 7354 5 6816 5224 6818 7354 7355 6 6817 5224 6819 7355 7356 7357 6 6818 5224 5225 5226 6820 7357 5 6819 5226 5227 6821 7357 6 6820 5227 6822 7357 7358 7359 7 6821 5227 5228 5229 6823 7359 7360 5 6822 5229 6824 6825 7360 5 6823 5229 6825 6826 5167 7 6823 6824 6826 6827 6828 7362 7360 5 6825 6824 5167 5168 6827 6 6826 5168 6825 6828 6829 6830 6 6825 6827 6829 7362 7363 7364 6 6828 6827 6830 7364 7365 7366 6 6829 6827 5168 5169 6831 7366 7 6830 5169 6832 7366 7367 7368 6834 5 6831 5169 6833 5238 6834 5 6832 5169 5238 5018 5023 6 6832 5238 5239 6835 7368 6831 6 6834 5239 5648 6836 7375 7368 7 6835 5648 6837 7375 7374 7376 7377 6 6836 5648 5649 5651 6838 7377 6 6837 5651 6839 7377 7378 7379 6 6838 5651 5652 6840 6841 7379 6 6839 5652 5653 5247 6841 5248 6 6839 6840 5248 6842 7379 7380 6 6841 5248 5249 6843 7380 7381 6 6842 5249 6844 7381 7382 7383 6 6843 5249 5028 5029 6845 7383 6 6844 5029 5030 6846 6847 7383 6 6845 5030 6847 6848 6849 5031 6 6845 6846 6848 7384 7383 7385 6 6847 6846 6849 7385 7386 7387 6 6848 6846 5031 5032 6850 7387 6 6849 5032 5033 5034 6851 7387 6 6850 5034 6852 7387 7388 6854 6 6851 5034 5035 5038 6853 6854 6 6852 5038 6854 6855 6856 5039 6 6852 6853 6855 7388 6851 7389 6 6854 6853 6856 6857 6859 7389 6 6855 6853 5039 6857 6858 5041 6 6855 6856 6858 6859 6860 6861 6 6857 6856 5041 6861 6862 6863 6 6855 6857 6860 7389 7390 7397 6 6859 6857 6861 7397 7398 7399 6 6860 6857 6858 6862 7399 7400 6 6861 6858 6863 6864 6865 7400 6 6862 6858 6864 5042 6879 5041 6 6862 6863 6865 6866 6879 6873 6 6862 6864 6866 6867 7400 7401 6 6865 6864 6867 6868 6872 6873 6 6865 6866 6868 6869 7401 7402 6 6867 6866 6869 6870 6871 6872 6 6867 6868 6870 7405 7402 7406 6 6869 6868 6871 7412 7406 7413 6 6870 6868 6872 7419 7416 7413 6 6871 6868 6866 6873 6874 7419 6 6872 6866 6874 6875 6864 6879 6 6872 6873 6875 6876 7419 7418 6 6874 6873 6876 6877 6878 6879 6 6874 6875 6877 6883 6884 7418 6 6876 6875 6878 6880 6882 6883 6 6877 6875 6879 6880 5043 5042 6 6878 6875 5042 6863 6864 6873 6 6877 6878 5043 5045 6881 6882 6 6880 5045 6882 6887 6888 6889 6 6880 6881 6877 6883 6886 6887 6 6877 6882 6876 6884 6885 6886 6 6876 6883 6885 7418 7420 7426 6 6884 6883 6886 7426 7427 7428 6 6885 6883 6882 6887 7428 7429 6 6886 6882 6881 6888 7429 7430 6 6887 6881 6889 6890 7430 7433 6 6888 6881 5045 6890 4645 4644 6 6888 6889 4645 4646 6891 7433 6 6890 4646 4647 6892 7433 6893 6 6891 4647 4253 4254 4730 6893 6 6892 4730 6894 7433 6891 7432 6 6893 4730 4731 6895 6897 7432 6 6894 4731 6896 6897 6898 6899 6 6895 4731 4732 6899 6900 6901 6 6894 6895 6898 7432 7431 7434 6 6897 6895 6899 7434 7435 7436 6 6898 6895 6896 6900 7436 7437 6 6899 6896 6901 7437 6904 6903 6 6900 6896 4732 4262 6902 6903 6 6901 4262 4263 4264 5231 6903 6 6902 5231 5458 6904 6900 6901 6 6903 5458 5459 6905 7437 6900 6 6904 5459 6906 7437 7438 7439 6 6905 5459 5460 6907 7439 7440 6 6906 5460 5461 6908 7262 7440 6 6907 5461 5462 6909 7262 7263 6 6908 5462 6910 7263 7264 6911 6 6909 5462 5463 5464 5465 6911 6 6910 5465 6912 7264 6909 7265 6 6911 5465 5466 6913 7265 7266 6 6912 5466 5467 6914 7266 7267 6 6913 5467 6915 7267 7268 7269 6 6914 5467 5468 6916 6917 7269 6 6915 5468 5469 5470 5471 6917 6 6915 6916 5471 6918 7269 7270 6 6917 5471 5472 6919 7270 7271 6 6918 5472 5473 6920 7271 7272 6 6919 5473 5474 5475 6921 7272 6 6920 5475 6922 7274 7272 7275 6 6921 5475 5476 6923 7275 7276 6 6922 5476 5477 6924 7276 7277 6 6923 5477 5478 6925 7277 7278 6 6924 5478 5479 6926 7278 7279 6 6925 5479 5480 5654 6927 7279 6 6926 5654 5655 6928 7281 7279 6 6927 5655 6929 7281 7282 7283 6 6928 5655 5656 5657 6930 7283 6 6929 5657 6931 7283 7284 7285 6 6930 5657 5658 5831 6932 7285 6 6931 5831 6933 7285 7286 7287 6 6932 5831 5832 5840 6934 7287 6 6933 5840 5841 6935 6936 7287 6 6934 5841 5843 6936 6937 6018 6 6934 6935 6937 6938 7287 7288 6 6936 6935 6018 6938 6939 6940 6 6936 6937 6939 7288 7289 7290 6 6938 6937 6940 7290 7291 6941 6 6939 6937 6018 5845 5847 6941 6 6940 5847 6942 6943 7291 6939 6 6941 5847 6943 6944 6945 5848 6 6941 6942 6944 7291 7292 7293 6 6943 6942 6945 7293 7294 7295 7 6944 6942 5848 5850 6385 6946 7295 6 6945 6385 6386 6947 7295 7296 6 6946 6386 6387 6388 6948 7296 6 6947 6388 6389 6949 7296 7297 7 6948 6389 6391 6395 6950 7297 7298 6 6949 6395 6951 7298 7300 7301 6 6950 6395 6396 6952 7043 7301 6 6951 6396 6399 6953 7043 7044 6 6952 6399 6400 6954 6955 7044 6 6953 6400 6401 6955 6956 6960 6 6953 6954 6956 6957 7044 7045 6 6955 6954 6957 6958 6959 6960 6 6955 6956 6958 7045 7048 7049 6 6957 6956 6959 6961 6962 7049 6 6958 6956 6960 6410 6411 6961 6 6959 6956 6954 6401 6402 6410 6 6959 6411 6958 6962 6963 6412 6 6958 6961 6963 7051 7049 7052 6 6962 6961 6412 6414 6964 7052 6 6963 6414 6416 6559 6965 7052 6 6964 6559 6561 6966 7052 6971 6 6965 6561 6967 6968 6970 6971 6 6966 6561 6968 6969 6562 6983 6 6966 6967 6969 6970 6974 6975 6 6968 6967 6981 6975 6982 6983 6 6966 6968 6971 6972 6973 6974 6 6966 6970 6972 7052 6965 7051 6 6971 6970 6973 7051 7050 7053 6 6972 6970 6974 7062 7053 7063 6 6973 6970 6968 6975 6976 7063 6 6974 6968 6976 6977 6981 6969 6 6974 6975 6977 6978 7063 7064 6 6976 6975 6978 6979 6980 6981 6 6976 6977 6979 7064 7065 7066 6 6978 6977 6980 7066 7067 7071 6 6979 6977 6981 7071 7072 7073 6 6980 6977 6975 6969 6982 7073 6 6981 6969 6983 6984 7073 7074 6 6982 6969 6984 6985 6562 6967 6 6982 6983 6985 7074 7075 7076 6 6984 6983 6562 6563 6986 7076 6 6985 6563 6567 6987 6988 7076 6 6986 6567 6988 6989 6990 6568 6 6986 6987 6989 6991 7076 7077 6 6988 6987 6990 6991 6992 6996 6 6989 6987 6996 6997 6570 6568 6 6988 6989 6992 6993 7077 7078 6 6991 6989 6993 6994 6995 6996 6 6991 6992 6994 7078 7081 7082 6 6993 6992 6995 7082 7085 7086 6 6994 6992 6996 7086 7087 7088 6 6995 6992 6989 6990 6997 7088 6 6996 6990 6570 6998 6999 7088 6 6997 6570 6999 7000 7001 6571 6 6997 6998 7000 7088 7089 7092 6 6999 6998 7001 7002 7092 7093 6 7000 6998 7002 7003 6575 6571 6 7000 7001 7003 7093 7094 7095 6 7002 7001 6575 6576 7004 7095 6 7003 6576 6578 7005 7095 7096 6 7004 6578 7006 7096 7097 7098 6 7005 6578 6579 7007 7012 7098 6 7006 6579 6582 7008 7009 7012 6 7007 6582 7009 6722 6720 6583 6 7007 7008 6722 6724 7010 7012 6 7009 6724 7011 7012 7013 7014 6 7010 6724 7022 7020 7014 6725 6 7009 7010 7007 7006 7013 7098 6 7012 7010 7014 7015 7098 7099 6 7013 7010 7015 7016 7020 7011 6 7013 7014 7016 7017 7099 7100 6 7015 7014 7017 7018 7019 7020 6 7015 7016 7018 7107 7100 7113 6 7017 7016 7019 7114 7113 7115 6 7018 7016 7020 7021 7115 7116 6 7019 7016 7014 7021 7022 7011 6 7019 7020 7022 7024 7116 7117 6 7021 7020 7011 6725 7023 7024 6 7022 6725 6726 7024 7025 7026 6 7021 7022 7023 7025 7117 7118 6 7024 7023 7026 7118 7119 7120 6 7025 7023 6726 7027 7028 7120 6 7026 6726 6727 7028 7029 7030 6 7026 7027 7029 7122 7120 7123 6 7028 7027 7030 7123 7034 7031 6 7029 7027 6727 6728 6729 7031 6 7030 6729 7032 7034 7029 7033 6 7031 6729 6730 6731 6732 7033 6 7032 6732 6734 6735 7034 7031 6 7033 6735 7035 7123 7029 7031 5 7034 6735 6736 7036 7123 6 7035 6736 6740 7037 7123 7122 7 7036 6740 6741 7038 7122 7124 7125 6 7037 6741 7039 7135 7125 7136 6 7038 6741 6742 7040 7136 7137 6 7039 6742 6743 7041 7137 7138 5 7040 6743 6754 7141 7138 6 6754 6743 6744 6746 6750 6752 6 6951 6952 7044 7301 7302 7046 6 7043 6952 6953 6955 7045 7046 6 7044 6955 6957 7046 7047 7048 6 7044 7045 7047 7302 7043 7303 6 7046 7045 7048 7303 7056 7054 6 7047 7045 6957 7049 7050 7054 6 7048 6957 7050 7051 6962 6958 6 7048 7049 7051 6972 7053 7054 6 7050 7049 6962 7052 6971 6972 6 7051 6962 6963 6964 6965 6971 6 7050 6972 7054 7055 7062 6973 6 7050 7053 7055 7056 7047 7048 6 7054 7053 7056 7057 7058 7062 6 7054 7055 7057 7303 7047 7304 6 7056 7055 7058 7059 7307 7304 6 7057 7055 7059 7060 7061 7062 6 7057 7058 7060 7307 7476 7477 6 7059 7058 7061 7477 7478 7479 6 7060 7058 7062 7063 7064 7479 6 7061 7058 7055 7053 6973 7063 6 7062 6973 6974 6976 7061 7064 6 7061 7063 6976 6978 7065 7479 6 7064 6978 7066 7479 7480 7481 6 7065 6978 6979 7067 7068 7481 6 7066 6979 7068 7069 7070 7071 6 7066 7067 7069 7483 7481 7462 6 7068 7067 7070 7462 7484 7485 6 7069 7067 7071 7485 7486 7487 6 7070 7067 6979 6980 7072 7487 6 7071 6980 7073 7487 7488 7492 6 7072 6980 6981 6982 7074 7492 6 7073 6982 6984 7075 7493 7492 6 7074 6984 7076 7493 7079 7077 6 7075 6984 6985 6986 6988 7077 6 7076 6988 6991 7078 7079 7075 6 7077 6991 6993 7079 7080 7081 6 7077 7078 7080 7691 7493 7075 6 7079 7078 7081 7223 7224 7691 6 7080 7078 6993 7082 7083 7223 6 7081 6993 6994 7083 7084 7085 6 7081 7082 7084 7226 7223 7227 6 7083 7082 7085 7227 7228 7229 6 7084 7082 6994 7086 7232 7229 6 7085 6994 6995 7087 7232 7233 6 7086 6995 7088 7089 7090 7233 6 7087 6995 6996 6997 6999 7089 6 7088 6999 7087 7090 7091 7092 6 7087 7089 7091 7233 7234 7235 6 7090 7089 7092 7235 7236 7237 6 7091 7089 6999 7000 7093 7237 6 7092 7000 7002 7094 7237 7238 6 7093 7002 7095 7238 7239 7103 6 7094 7002 7003 7004 7096 7103 6 7095 7004 7005 7097 7102 7103 6 7096 7005 7098 7099 7101 7102 6 7097 7005 7006 7012 7013 7099 6 7098 7013 7015 7100 7101 7097 6 7099 7015 7101 7106 7107 7017 6 7099 7100 7097 7102 7105 7106 6 7097 7101 7096 7103 7104 7105 6 7096 7102 7104 7239 7094 7095 6 7103 7102 7105 7241 7239 7242 6 7104 7102 7101 7106 7242 7243 6 7105 7101 7100 7107 7108 7243 6 7106 7100 7017 7108 7109 7113 6 7106 7107 7109 7110 7243 7244 6 7108 7107 7110 7111 7112 7113 6 7108 7109 7111 7247 7244 7248 6 7110 7109 7112 7248 7249 7250 6 7111 7109 7113 7114 7250 7251 6 7112 7109 7114 7018 7017 7107 6 7112 7113 7018 7115 7251 7254 6 7114 7018 7019 7116 7254 7255 6 7115 7019 7021 7117 7258 7255 6 7116 7021 7024 7118 7258 7259 6 7117 7024 7025 7119 7259 7128 6 7118 7025 7120 7121 7127 7128 6 7119 7025 7121 7122 7028 7026 6 7119 7120 7122 7124 7126 7127 7 7121 7120 7028 7123 7036 7037 7124 6 7122 7028 7029 7034 7035 7036 5 7122 7037 7125 7126 7121 5 7124 7037 7126 7135 7038 7 7124 7125 7121 7127 7130 7131 7135 6 7121 7126 7119 7128 7129 7130 6 7119 7127 7129 7261 7259 7118 6 7128 7127 7130 7261 7532 7530 6 7129 7127 7126 7131 7132 7532 6 7130 7126 7132 7133 7134 7135 6 7130 7131 7133 7532 7531 7533 6 7132 7131 7134 7533 7534 7535 6 7133 7131 7135 7535 7536 7136 6 7134 7131 7126 7125 7038 7136 6 7135 7038 7039 7137 7536 7134 6 7136 7039 7040 7138 7139 7536 6 7137 7040 7139 7140 7141 7041 6 7137 7138 7140 7148 7150 7536 6 7139 7138 7141 7142 7147 7148 7 7140 7138 7041 6754 6755 6759 7142 6 7140 7141 6759 6760 7143 7147 6 7142 6760 7144 7145 7146 7147 7 7143 6760 7145 4552 4551 6763 6761 5 7143 7144 4552 4554 7146 6 7145 4554 4556 7143 7147 7148 5 7143 7146 7148 7140 7142 7 7147 7146 4556 7140 7139 7149 7150 6 7148 4556 7150 7151 7152 7153 6 7148 7149 7139 7151 7536 7535 6 7150 7149 7152 7535 7534 7537 6 7151 7149 7153 7154 7155 7537 6 7152 7149 7154 4649 4555 4556 6 7152 7153 7155 7156 7166 4649 6 7152 7154 7156 7157 7537 7538 6 7155 7154 7157 7158 7159 7166 6 7155 7156 7158 7538 7539 7554 6 7157 7156 7159 7160 7554 7555 6 7158 7156 7160 7161 7162 7166 6 7158 7159 7161 7163 7167 7555 6 7160 7159 7162 7163 4137 7164 5 7161 7159 7164 7165 7166 6 7160 7161 4137 7167 7168 4138 7 4137 7161 7162 7165 4413 4134 4135 5 7164 7162 4413 4415 7166 7 4415 7165 7162 7159 7156 7154 4649 6 7160 7163 7168 7555 7556 7560 7 7167 7163 4138 7169 7560 7561 7562 5 7168 4138 4139 7170 7562 7 7169 4139 4140 7171 7562 7563 7564 6 7170 4140 4124 7172 7173 7564 6 7171 4124 7173 7174 4122 9789 6 7171 7172 7174 7175 7176 7564 6 7173 7172 7175 9788 9787 9789 6 7173 7174 7176 7177 7178 9788 7 7173 7175 7177 7564 7563 7568 7569 6 7176 7175 7178 7179 7180 7569 6 7177 7175 7179 9788 3535 3537 6 7177 7178 7180 7181 7182 3537 6 7177 7179 7181 7570 7569 7571 6 7180 7179 7182 7571 7572 7573 6 7181 7179 3537 3538 7183 7573 6 7182 3538 7184 7575 7573 7187 6 7183 3538 3539 7185 7186 7187 6 7184 3539 7186 7211 7210 7212 6 7184 7185 7187 7188 7211 7192 6 7184 7186 7188 7189 7575 7183 6 7187 7186 7189 7190 7191 7192 6 7187 7188 7190 7575 7576 7579 6 7189 7188 7191 7193 7579 7580 6 7190 7188 7192 7193 7194 7198 6 7191 7188 7198 7199 7211 7186 6 7190 7191 7194 7195 7580 7581 6 7193 7191 7195 7196 7197 7198 6 7193 7194 7196 7581 7582 7583 6 7195 7194 7197 7583 3196 3195 6 7196 7194 7198 3195 7200 7203 6 7197 7194 7191 7192 7199 7200 6 7198 7192 7200 7201 7211 7208 6 7198 7199 7201 7202 7203 7197 6 7200 7199 7202 7206 7207 7208 6 7200 7201 7203 7204 7205 7206 6 7200 7202 7204 3194 3195 7197 6 7203 7202 7205 7220 7221 3194 6 7204 7202 7206 9745 7218 7220 6 7205 7202 7201 7207 9745 9746 6 7206 7201 7208 7209 9746 7213 6 7207 7201 7209 7210 7211 7199 6 7207 7208 7210 4373 4374 7213 6 7209 7208 7211 7185 7212 4373 6 7210 7208 7199 7192 7186 7185 6 7210 7185 3539 3540 4372 4373 6 7209 4374 4375 7214 9746 7207 6 7213 4375 4377 7215 7216 9746 6 7214 4377 7216 2863 1627 2862 6 7214 7215 2863 7217 9745 9746 6 7216 2863 2864 2865 7218 9745 6 7217 2865 7219 7220 7205 9745 5 7218 2865 7220 3214 2866 6 7218 7219 3214 7221 7205 7204 6 7220 3214 3215 7222 3194 7204 5 7221 3215 3216 3193 3194 6 7080 7081 7224 7225 7226 7083 6 7080 7223 7225 7691 7690 7692 6 7224 7223 7226 7692 7693 7674 6 7225 7223 7083 7227 7674 7694 6 7226 7083 7084 7228 7694 7695 6 7227 7084 7229 7230 7695 7696 6 7228 7084 7230 7231 7232 7085 6 7228 7229 7231 7696 7697 7701 6 7230 7229 7232 7701 7702 7703 6 7231 7229 7085 7086 7233 7703 6 7232 7086 7087 7090 7234 7703 6 7233 7090 7235 7718 7704 7703 6 7234 7090 7091 7236 7718 7717 6 7235 7091 7237 7717 7719 7720 6 7236 7091 7092 7093 7238 7720 6 7237 7093 7094 7239 7240 7720 6 7238 7094 7103 7240 7241 7104 6 7238 7239 7241 7720 7721 7722 6 7240 7239 7104 7242 7722 7725 6 7241 7104 7105 7243 7245 7725 6 7242 7105 7106 7108 7244 7245 6 7243 7108 7245 7246 7247 7110 6 7243 7244 7246 7728 7725 7242 6 7245 7244 7247 7964 7728 7965 6 7246 7244 7110 7248 7965 7966 6 7247 7110 7111 7249 7966 7967 6 7248 7111 7250 7511 7967 7968 6 7249 7111 7112 7251 7252 7511 6 7250 7112 7114 7252 7253 7254 6 7250 7251 7253 7511 7512 7516 6 7252 7251 7254 7256 9775 7516 6 7253 7251 7114 7115 7255 7256 6 7254 7115 7256 7257 7258 7116 6 7254 7255 7257 7523 7253 9775 6 7256 7255 7258 7260 7524 7523 6 7257 7255 7116 7117 7259 7260 6 7258 7117 7118 7260 7261 7128 6 7258 7259 7261 7529 7524 7257 6 7260 7259 7128 7129 7530 7529 6 6907 6908 7263 7440 7442 7443 6 7262 6908 6909 7264 7443 7444 6 7263 6909 6911 7265 7444 7445 6 7264 6911 6912 7266 7445 7446 6 7265 6912 6913 7267 7449 7446 6 7266 6913 6914 7268 7449 7450 6 7267 6914 7269 7450 7451 7452 6 7268 6914 6915 6917 7270 7452 6 7269 6917 6918 7271 7452 7453 6 7270 6918 6919 7272 7273 7453 6 7271 6919 7273 7274 6921 6920 6 7271 7272 7274 7453 7454 7455 6 7273 7272 6921 7275 7455 7456 6 7274 6921 6922 7276 7456 7457 6 7275 6922 6923 7277 7457 7458 6 7276 6923 6924 7278 7458 7459 6 7277 6924 6925 7279 7280 7459 6 7278 6925 7280 7281 6927 6926 6 7278 7279 7281 7459 7460 7464 6 7280 7279 6927 6928 7282 7464 6 7281 6928 7283 7464 7465 7466 6 7282 6928 6929 6930 7284 7466 6 7283 6930 7285 7466 7467 7468 6 7284 6930 6931 6932 7286 7468 6 7285 6932 7287 7468 7469 7288 6 7286 6932 6933 6934 6936 7288 6 7287 6936 6938 7289 7469 7286 6 7288 6938 7290 7469 7470 7471 6 7289 6938 6939 7291 7471 7472 6 7290 6939 6941 6943 7292 7472 6 7291 6943 7293 7472 7473 7474 6 7292 6943 6944 7294 7474 7299 6 7293 6944 7295 7297 7298 7299 6 7294 6944 6945 6946 7296 7297 5 7295 6946 6947 6948 7297 6 7296 6948 6949 7295 7294 7298 6 7294 7297 6949 6950 7299 7300 5 7294 7298 7300 7474 7293 7 7299 7298 6950 7301 7474 7305 7302 5 7300 6950 6951 7043 7302 6 7301 7043 7046 7303 7305 7300 6 7302 7046 7047 7056 7304 7305 6 7303 7056 7305 7306 7307 7057 6 7303 7304 7306 7474 7300 7302 6 7305 7304 7307 7474 7473 7475 6 7306 7304 7057 7059 7475 7476 5 4702 4703 7309 7855 7856 6 7308 4703 4704 7310 7856 7857 6 7309 4704 4705 7311 7857 7858 6 7310 4705 4706 7312 7858 7859 6 7311 4706 4707 5170 7313 7859 6 7312 5170 7314 7859 7860 7861 6 7313 5170 5171 7315 7861 7862 6 7314 5171 5172 7316 7862 7863 6 7315 5172 5173 7317 7863 7864 6 7316 5173 5174 7318 7864 7865 6 7317 5174 5175 7319 7865 7866 6 7318 5175 5176 7320 7866 7867 6 7319 5176 5177 5178 7321 7867 6 7320 5178 7322 7867 7868 7869 6 7321 5178 5179 7323 7869 7870 6 7322 5179 5180 5411 7324 7870 6 7323 5411 7325 7870 7871 7872 6 7324 5411 5412 7326 7872 7873 6 7325 5412 5413 5414 7327 7873 6 7326 5414 7328 7873 7874 7875 6 7327 5414 5415 5416 7329 7875 6 7328 5416 7330 7875 7876 7877 6 7329 5416 5417 5418 7331 7877 6 7330 5418 6791 7332 7877 7878 6 7331 6791 7333 7878 7879 7880 6 7332 6791 6792 6793 7334 7880 6 7333 6793 6794 7335 7880 7881 6 7334 6794 6795 6796 7336 7881 6 7335 6796 6797 7337 7881 7882 6 7336 6797 6798 7338 7882 7883 6 7337 6798 6799 7339 7883 7884 6 7338 6799 6800 7340 7884 7885 6 7339 6800 6801 7341 7885 7886 6 7340 6801 7342 7886 7887 7888 6 7341 6801 6802 6803 7343 7888 6 7342 6803 6804 7344 7888 7889 6 7343 6804 6805 7345 7889 7890 6 7344 6805 6806 7346 7890 7891 6 7345 6806 6807 7347 7891 7892 6 7346 6807 6808 7348 7892 7893 6 7347 6808 7349 7893 7894 7895 7 7348 6808 6809 6811 6812 7350 7895 6 7349 6812 6813 7351 7895 7896 6 7350 6813 6814 7352 7896 7897 5 7351 6814 6815 7353 7897 7 7352 6815 6816 7354 7897 7898 7899 5 7353 6816 6817 7355 7899 7 7354 6817 6818 7356 7899 7900 7901 6 7355 6818 7357 7901 7902 7903 7 7356 6818 6819 6820 6821 7358 7903 6 7357 6821 7359 7903 7904 7905 6 7358 6821 6822 7360 7361 7905 6 7359 6822 6823 7361 7362 6825 6 7359 7360 7362 7905 7906 7907 6 7361 7360 6825 6828 7363 7907 6 7362 6828 7364 7907 7908 7909 5 7363 6828 6829 7365 7909 7 7364 6829 7366 7369 7371 7909 7910 6 7365 6829 6830 6831 7367 7369 6 7366 6831 7368 7369 7370 7375 5 7367 6831 7375 6835 6834 6 7366 7367 7370 7365 7371 7372 6 7369 7367 7372 7373 7374 7375 6 7365 7369 7372 7910 7911 7912 6 7371 7369 7370 7373 7912 7913 6 7372 7370 7374 7913 7914 7915 6 7373 7370 7375 6836 7376 7915 6 7374 7370 7367 7368 6835 6836 6 7374 6836 7377 7915 7916 7917 6 7376 6836 6837 6838 7378 7917 5 7377 6838 7379 7601 7917 6 7378 6838 6839 6841 7380 7601 6 7379 6841 6842 7381 7601 7602 6 7380 6842 6843 7382 7605 7602 6 7381 6843 7383 7384 7605 7606 6 7382 6843 7384 6847 6845 6844 6 7382 7383 6847 7385 7606 7607 6 7384 6847 6848 7386 7607 7392 6 7385 6848 7387 7388 7391 7392 6 7386 6848 6849 6850 6851 7388 6 7387 6851 6854 7389 7391 7386 6 7388 6854 6855 6859 7390 7391 6 7389 6859 7391 7396 7393 7397 6 7389 7390 7388 7386 7392 7393 6 7386 7391 7393 7394 7607 7385 6 7392 7391 7394 7395 7396 7390 6 7392 7393 7395 7607 7608 7611 6 7394 7393 7396 7611 7612 7622 6 7395 7393 7390 7397 7622 7623 6 7396 7390 6859 6860 7398 7623 5 7397 6860 7399 7623 7624 6 7398 6860 6861 7400 7624 7625 7 7399 6861 6862 6865 7401 7625 7626 6 7400 6865 6867 7402 7403 7626 6 7401 6867 7403 7404 7405 6869 6 7401 7402 7404 7626 7627 7628 6 7403 7402 7405 7408 7628 7629 6 7404 7402 6869 7406 7407 7408 6 7405 6869 7407 7411 7412 6870 6 7405 7406 7408 7409 7410 7411 6 7405 7407 7404 7409 7632 7629 6 7408 7407 7410 7632 7633 7634 6 7409 7407 7411 7634 7635 7642 6 7410 7407 7406 7412 7642 7643 6 7411 7406 6870 7413 7414 7643 6 7412 6870 7414 7415 7416 6871 6 7412 7413 7415 7643 7644 7645 6 7414 7413 7416 7417 7645 7646 6 7415 7413 7417 7418 7419 6871 6 7415 7416 7418 7420 7421 7646 7 7417 7416 7419 6874 6876 6884 7420 5 7418 7416 6871 6872 6874 6 7418 6884 7417 7421 7422 7426 6 7417 7420 7422 7423 7646 7647 6 7421 7420 7423 7424 7425 7426 6 7421 7422 7424 7647 7648 7649 6 7423 7422 7425 7649 7650 7651 6 7424 7422 7426 7651 7652 7427 6 7425 7422 7420 6884 6885 7427 6 7426 6885 7428 7652 7425 7653 6 7427 6885 6886 7429 7653 7654 6 7428 6886 6887 7430 7431 7654 6 7429 6887 6888 7431 7432 7433 6 7429 7430 7432 6897 7434 7654 6 7431 7430 7433 6893 6894 6897 6 7432 7430 6888 6890 6891 6893 6 7431 6897 6898 7435 7655 7654 6 7434 6898 7436 7655 7656 7660 6 7435 6898 6899 7437 7660 7438 6 7436 6899 6900 6904 6905 7438 6 7437 6905 7439 7660 7436 7661 6 7438 6905 6906 7440 7441 7661 6 7439 6906 6907 7262 7441 7442 6 7439 7440 7442 7661 7662 7663 6 7441 7440 7262 7443 7663 7664 6 7442 7262 7263 7444 7664 7665 6 7443 7263 7264 7445 7665 7666 6 7444 7264 7265 7446 7447 7666 6 7445 7265 7447 7448 7449 7266 6 7445 7446 7448 7668 7666 7671 6 7447 7446 7449 7671 7676 7673 6 7448 7446 7266 7267 7450 7676 6 7449 7267 7268 7451 7676 7677 6 7450 7268 7452 7677 7678 7682 6 7451 7268 7269 7270 7453 7682 6 7452 7270 7271 7273 7454 7682 6 7453 7273 7455 7682 7681 7683 6 7454 7273 7274 7456 7686 7683 6 7455 7274 7275 7457 7686 7687 6 7456 7275 7276 7458 7687 7688 6 7457 7276 7277 7459 7688 7461 6 7458 7277 7278 7280 7460 7461 6 7459 7280 7461 7462 7463 7464 6 7459 7460 7462 7688 7458 7484 7 7461 7460 7463 7483 7068 7069 7484 6 7462 7460 7464 7483 7482 7465 6 7463 7460 7280 7281 7282 7465 6 7464 7282 7466 7482 7463 7494 6 7465 7282 7283 7284 7467 7494 6 7466 7284 7468 7494 7495 7496 6 7467 7284 7285 7286 7469 7496 6 7468 7286 7288 7289 7470 7496 6 7469 7289 7471 7496 7497 7498 6 7470 7289 7290 7472 7498 7475 6 7471 7290 7291 7292 7473 7475 5 7472 7292 7474 7306 7475 7 7473 7292 7293 7299 7300 7305 7306 7 7473 7306 7307 7476 7498 7471 7472 5 7475 7307 7059 7477 7498 6 7476 7059 7060 7478 7497 7498 7 7477 7060 7479 7480 7497 7495 7499 6 7478 7060 7061 7064 7065 7480 6 7478 7479 7065 7481 7482 7499 6 7480 7065 7482 7483 7068 7066 7 7480 7481 7483 7463 7465 7494 7499 5 7482 7481 7068 7462 7463 5 7462 7069 7485 7688 7461 6 7484 7069 7070 7486 7687 7688 6 7485 7070 7487 7686 7687 7685 7 7486 7070 7071 7072 7488 7489 7685 6 7487 7072 7489 7490 7491 7492 5 7487 7488 7490 7685 7684 6 7489 7488 7491 7684 7689 7690 6 7490 7488 7492 7493 7690 7691 6 7491 7488 7493 7074 7073 7072 6 7491 7492 7074 7075 7691 7079 6 7482 7465 7466 7467 7495 7499 6 7494 7467 7496 7497 7478 7499 6 7495 7467 7468 7469 7470 7497 6 7496 7470 7498 7477 7478 7495 6 7497 7470 7471 7477 7476 7475 5 7495 7478 7480 7482 7494 6 427 5612 5613 7501 7502 9768 6 7500 5613 7502 7503 7504 7505 6 7500 7501 7503 9768 9769 9770 6 7502 7501 7504 6474 9770 9780 5 7503 7501 6474 6472 7505 7 6472 7504 7501 5613 5614 7506 6470 5 7505 5614 7507 6469 6470 6 7506 5614 5615 7508 7509 6469 6 7507 5615 7509 7510 9734 4518 5 7507 7508 7510 6469 6468 6 7509 7508 6468 9732 9733 9734 6 7249 7250 7252 7512 7513 7968 6 7511 7252 7513 7514 7515 7516 6 7511 7512 7514 7968 7969 7970 6 7513 7512 7515 7970 7971 7972 6 7514 7512 7516 7517 7518 7972 6 7515 7512 7252 7517 9775 7253 6 7515 7516 7518 7519 7520 9775 6 7515 7517 7519 7972 7973 7977 6 7518 7517 7520 7521 7977 7978 6 7519 7517 7521 7522 7523 9775 6 7519 7520 7522 7989 7978 7526 6 7521 7520 7523 7524 7525 7526 6 7522 7520 7524 7256 7257 9775 6 7522 7523 7525 7260 7529 7257 6 7522 7524 7526 7527 7528 7529 6 7522 7525 7527 7989 7521 7990 6 7526 7525 7528 7990 7546 7545 6 7527 7525 7529 7530 7531 7545 6 7528 7525 7530 7261 7260 7524 6 7528 7529 7261 7531 7532 7129 7 7528 7530 7532 7132 7533 7543 7545 5 7531 7530 7129 7130 7132 6 7531 7132 7133 7534 7544 7543 6 7533 7133 7535 7151 7537 7544 6 7534 7133 7134 7536 7150 7151 6 7535 7134 7136 7137 7139 7150 6 7534 7151 7152 7155 7538 7544 6 7537 7155 7157 7539 7540 7544 6 7538 7157 7540 7541 7553 7554 6 7538 7539 7541 7542 7543 7544 6 7540 7539 7542 7547 7553 7550 6 7540 7541 7543 7545 7546 7547 6 7540 7542 7544 7533 7531 7545 6 7540 7543 7533 7534 7537 7538 6 7531 7543 7542 7546 7527 7528 6 7545 7542 7547 7548 7990 7527 6 7546 7542 7541 7548 7549 7550 6 7546 7547 7549 7990 7989 7991 6 7548 7547 7550 7551 7991 7992 6 7549 7547 7551 7552 7553 7541 6 7549 7550 7552 7992 7994 7995 7 7551 7550 7553 7557 7556 7558 7995 6 7552 7550 7541 7539 7554 7557 6 7553 7539 7157 7158 7555 7557 6 7554 7158 7160 7167 7556 7557 7 7555 7167 7557 7552 7558 7559 7560 5 7555 7556 7554 7553 7552 5 7552 7556 7559 7995 7996 7 7558 7556 7560 7996 7999 7566 7561 5 7559 7556 7167 7168 7561 6 7560 7168 7562 7565 7566 7559 6 7561 7168 7169 7170 7563 7565 6 7562 7170 7564 7176 7565 7568 5 7563 7170 7171 7173 7176 6 7562 7563 7561 7566 7567 7568 6 7561 7565 7567 7999 7559 8000 6 7566 7565 7568 7569 7570 8000 5 7567 7565 7563 7176 7569 6 7568 7176 7567 7570 7180 7177 6 7567 7569 7180 7571 8000 8001 6 7570 7180 7181 7572 8001 8002 6 7571 7181 7573 7574 8002 8003 6 7572 7181 7574 7575 7183 7182 6 7572 7573 7575 7576 7577 8003 6 7574 7573 7183 7187 7189 7576 6 7575 7189 7574 7577 7578 7579 6 7574 7576 7578 8003 8004 8005 6 7577 7576 7579 8005 8006 8007 6 7578 7576 7189 7190 7580 8007 6 7579 7190 7193 7581 8007 8008 6 7580 7193 7195 7582 8008 8009 6 7581 7195 7583 7585 8012 8009 6 7582 7195 7196 3196 7584 7585 6 7583 3196 3186 7585 7586 3187 6 7583 7584 7586 7587 7582 8012 6 7585 7584 7587 7588 3958 3187 6 7585 7586 7588 7729 8013 8012 6 7587 7586 3958 3960 7589 7729 6 7588 3960 7590 7729 7730 7731 6 7589 3960 3961 7591 7731 7732 6 7590 3961 7592 7738 7732 7739 6 7591 3961 2890 2891 7593 7739 6 7592 2891 7594 7595 7739 7740 6 7593 2891 7595 7596 7597 2892 6 7593 7594 7596 7740 7741 7745 6 7595 7594 7597 7598 7745 7746 6 7596 7594 7598 7599 7600 2892 6 7596 7597 7599 4089 7746 7751 5 7598 7597 7600 4089 4086 6 7599 7597 4086 2880 2879 2892 7 7378 7379 7380 7602 7603 7917 7918 6 7601 7380 7603 7604 7605 7381 6 7601 7602 7604 7926 7920 7918 5 7603 7602 7605 7926 7927 7 7604 7602 7381 7382 7606 7609 7927 6 7605 7382 7384 7607 7608 7609 6 7606 7384 7385 7392 7394 7608 6 7607 7394 7606 7609 7610 7611 6 7606 7608 7610 7929 7927 7605 6 7609 7608 7611 7613 7616 7929 6 7610 7608 7394 7395 7612 7613 6 7611 7395 7613 7614 7621 7622 6 7611 7612 7614 7615 7616 7610 6 7613 7612 7615 7619 7620 7621 6 7613 7614 7616 7617 7618 7619 6 7613 7615 7617 8157 7929 7610 6 7616 7615 7618 8155 8157 8156 6 7617 7615 7619 8156 8158 8159 6 7618 7615 7614 7620 8159 8160 6 7619 7614 7621 8160 8161 8162 6 7620 7614 7612 7622 8162 8163 6 7621 7612 7395 7396 7623 8163 6 7622 7396 7397 7398 7624 8163 6 7623 7398 7399 7625 8163 8164 6 7624 7399 7400 7626 8164 7627 5 7625 7400 7401 7403 7627 6 7626 7403 7628 8164 7625 8165 6 7627 7403 7404 7629 7630 8165 6 7628 7404 7630 7631 7632 7408 6 7628 7629 7631 8165 8166 8167 6 7630 7629 7632 8170 8167 8171 6 7631 7629 7408 7409 7633 8171 6 7632 7409 7634 8173 8171 8174 6 7633 7409 7410 7635 7636 8174 6 7634 7410 7636 7637 7641 7642 6 7634 7635 7637 7638 8174 8175 6 7636 7635 7638 7639 7640 7641 6 7636 7637 7639 8175 8176 8177 6 7638 7637 7640 8177 8178 8179 6 7639 7637 7641 8179 8180 8181 6 7640 7637 7635 7642 8181 8182 6 7641 7635 7410 7411 7643 8182 6 7642 7411 7412 7414 7644 8182 6 7643 7414 7645 8183 8182 8184 6 7644 7414 7415 7646 8184 8185 6 7645 7415 7417 7421 7647 8185 6 7646 7421 7423 7648 8185 8186 6 7647 7423 7649 8186 8187 8188 6 7648 7423 7424 7650 8188 8189 6 7649 7424 7651 8189 8190 8191 6 7650 7424 7425 7652 8191 8192 6 7651 7425 7427 7653 8192 7657 6 7652 7427 7428 7654 7655 7657 6 7653 7428 7429 7655 7434 7431 6 7653 7654 7434 7435 7656 7657 6 7655 7435 7657 7658 7659 7660 6 7655 7656 7658 8192 7652 7653 6 7657 7656 7659 8192 8193 8194 6 7658 7656 7660 8194 7662 7661 6 7659 7656 7435 7436 7438 7661 6 7660 7438 7439 7441 7662 7659 6 7661 7441 7663 8194 7659 8195 6 7662 7441 7442 7664 8208 8195 6 7663 7442 7443 7665 8208 8207 6 7664 7443 7444 7666 7667 8207 6 7665 7444 7667 7668 7447 7445 6 7665 7666 7668 7669 8206 8207 6 7667 7666 7447 7669 7670 7671 6 7667 7668 7670 7698 8206 9790 6 7669 7668 7671 7672 7695 9790 6 7670 7668 7447 7448 7672 7673 6 7670 7671 7673 7674 7695 7694 6 7672 7671 7674 7675 7676 7448 7 7672 7673 7675 7693 7225 7226 7694 6 7674 7673 7676 7677 7679 7693 6 7675 7673 7448 7449 7450 7677 6 7676 7450 7451 7678 7679 7675 6 7677 7451 7679 7680 7681 7682 7 7677 7678 7680 7675 7693 7692 7689 5 7679 7678 7681 7689 7684 6 7680 7678 7682 7454 7683 7684 6 7681 7678 7451 7452 7453 7454 6 7681 7454 7684 7685 7686 7455 7 7681 7683 7685 7489 7490 7689 7680 6 7684 7683 7686 7486 7487 7489 6 7685 7683 7455 7456 7687 7486 6 7686 7456 7457 7486 7485 7688 6 7485 7687 7457 7458 7461 7484 6 7684 7490 7690 7692 7679 7680 6 7689 7490 7491 7691 7224 7692 6 7690 7491 7493 7079 7080 7224 6 7690 7224 7225 7693 7679 7689 5 7692 7225 7674 7675 7679 5 7674 7226 7227 7695 7672 7 7694 7227 7228 7696 7670 7672 9790 6 7695 7228 7230 7697 7698 9790 6 7696 7230 7698 7699 7700 7701 6 7696 7697 7699 8206 7669 9790 6 7698 7697 7700 8205 8203 8206 6 7699 7697 7701 8318 8205 7707 6 7700 7697 7230 7231 7702 7707 6 7701 7231 7703 7704 7705 7707 6 7702 7231 7704 7234 7233 7232 6 7702 7703 7705 7706 7718 7234 6 7702 7704 7706 7707 7708 7709 6 7705 7704 7709 7710 7711 7718 6 7702 7705 7708 8318 7700 7701 6 7707 7705 7709 8318 8481 8317 6 7708 7705 7706 7710 8481 8482 6 7709 7706 7711 7712 7713 8482 6 7710 7706 7712 7716 7717 7718 6 7710 7711 7713 7714 7715 7716 6 7710 7712 7714 8482 8483 8484 6 7713 7712 7715 8484 9765 8486 6 7714 7712 7716 9765 7723 9767 6 7715 7712 7711 7717 9767 7719 6 7716 7711 7718 7235 7236 7719 6 7717 7711 7706 7704 7234 7235 6 7717 7236 7720 9767 7716 7721 6 7719 7236 7237 7238 7240 7721 6 7720 7240 7722 7723 9767 7719 6 7721 7240 7241 7723 7724 7725 7 7721 7722 7724 7726 9765 7715 9767 6 7723 7722 7725 7726 7727 7728 6 7724 7722 7728 7245 7242 7241 6 7723 7724 7727 7962 9765 9764 6 7726 7724 7728 7962 7963 7964 6 7727 7724 7725 7245 7964 7246 6 7587 7588 7589 7730 8013 8014 6 7729 7589 7731 8014 8015 7734 6 7730 7589 7590 7732 7733 7734 6 7731 7590 7733 7737 7738 7591 6 7731 7732 7734 7735 7736 7737 6 7731 7733 7735 8015 7730 8016 6 7734 7733 7736 8016 8017 8018 6 7735 7733 7737 8018 8019 8020 6 7736 7733 7732 7738 8020 8021 6 7737 7732 7591 7739 9766 8021 6 7738 7591 7592 7593 7740 9766 6 7739 7593 7595 7741 7742 9766 6 7740 7595 7742 7743 7744 7745 6 7740 7741 7743 8025 8023 9766 6 7742 7741 7744 8025 8026 8027 6 7743 7741 7745 7747 7748 8027 6 7744 7741 7595 7596 7746 7747 6 7745 7596 7598 7747 7750 7751 6 7745 7746 7744 7748 7749 7750 6 7744 7747 7749 8027 8031 8032 6 7748 7747 7750 8032 8036 7759 6 7749 7747 7746 7751 7752 7759 7 7750 7746 7598 4089 4090 7752 7753 7 7750 7751 7753 4379 7754 7758 7759 4 7752 7751 4090 4379 5 7752 4379 4380 7755 7758 6 7754 4380 4382 7756 7757 7758 6 7755 4382 7757 7762 7763 7764 6 7755 7756 7758 7760 7761 7762 6 7755 7757 7754 7752 7759 7760 6 7752 7758 7760 8036 7749 7750 5 7759 7758 7757 7761 8036 7 7760 7757 7762 8036 8640 8635 8035 7 7761 7757 7756 7763 8852 8639 8640 6 7762 7756 7764 7765 8852 8853 6 7763 7756 4382 4383 4389 7765 6 7763 7764 4389 7766 8319 8853 6 7765 4389 4390 7767 8319 8320 6 7766 4390 3142 7768 7769 8320 6 7767 3142 7769 7770 7774 3143 6 7767 7768 7770 7771 8322 8320 6 7769 7768 7771 7772 7773 7774 6 7769 7770 7772 8322 8323 8324 6 7771 7770 7773 8324 8325 7777 6 7772 7770 7774 7775 7776 7777 6 7773 7770 7768 3143 3144 7775 6 7774 3144 7773 7776 3145 9791 6 7773 7775 7777 7778 3414 9791 6 7773 7776 7778 8325 7772 8326 6 7777 7776 3414 3415 7779 8326 6 7778 3415 5382 5384 7780 8326 6 7779 5384 5386 7781 8326 8327 6 7780 5386 5388 7782 8329 8327 6 7781 5388 5616 7783 8329 8330 6 7782 5616 7784 8330 8331 8332 6 7783 5616 5617 7785 8037 8332 6 7784 5617 7786 7787 8037 8038 6 7785 5617 5618 7787 7788 7789 6 7785 7786 7788 8038 8039 8040 6 7787 7786 7789 8045 8040 7794 6 7788 7786 5618 5619 7790 7794 6 7789 5619 7791 7792 7793 7794 6 7790 5619 7792 3779 3778 5620 6 7790 7791 7793 7797 7798 3779 6 7790 7792 7794 7795 7796 7797 6 7790 7793 7795 8045 7788 7789 6 7794 7793 7796 8045 8046 8047 6 7795 7793 7797 8048 8047 8049 6 7796 7793 7792 7798 8049 7799 6 7797 7792 3779 3780 3783 7799 6 7798 3783 3784 7800 8049 7797 6 7799 3784 3785 3788 7801 8049 6 7800 3788 3790 7802 8048 8049 6 7801 3790 3791 3793 7803 8048 6 7802 3793 7804 7806 8047 8048 6 7803 3793 3794 7805 7806 7807 6 7804 3794 7807 7808 7809 3795 6 7803 7804 7807 8046 8047 8343 6 7806 7804 7805 7808 8344 8343 6 7807 7805 7809 8344 8345 7930 6 7808 7805 3795 3796 7810 7930 6 7809 3796 3952 7811 7930 7931 6 7810 3952 7812 7931 7932 7936 6 7811 3952 3953 7813 7936 7937 6 7812 3953 3954 7814 7937 7938 6 7813 3954 7815 7938 7939 7816 6 7814 3954 3955 3956 4238 7816 6 7815 4238 4503 7817 7939 7814 6 7816 4503 4504 7818 7939 7940 6 7817 4504 7819 7940 7941 7942 6 7818 4504 4505 7820 7942 7943 6 7819 4505 4506 4507 7821 7943 6 7820 4507 7822 7943 7944 7945 6 7821 4507 4508 7823 7945 7946 6 7822 4508 4509 7824 7946 7947 6 7823 4509 7825 7826 7947 7948 6 7824 4509 4510 7826 7827 7828 6 7824 7825 7827 7948 7949 7950 6 7826 7825 7828 7950 7951 7952 6 7827 7825 4510 4419 7829 7952 6 7828 4419 4247 7830 7952 7832 6 7829 4247 4248 4739 7831 7832 6 7830 4739 5003 7832 7833 7834 6 7830 7831 7833 7952 7829 7953 6 7832 7831 7834 7953 7954 7955 6 7833 7831 5003 5004 7835 7955 6 7834 5004 5005 7836 7955 7956 6 7835 5005 7837 7956 7957 7958 6 7836 5005 4750 4751 7838 7958 6 7837 4751 4757 7839 7958 7959 6 7838 4757 7840 7959 7960 7846 6 7839 4757 4758 7841 7846 7961 6 7840 4758 4661 4662 7842 7961 6 7841 4662 4663 4689 7843 7961 6 7842 4689 4690 7844 7961 7845 6 7843 4690 4691 5158 5159 7845 5 7844 5159 7846 7961 7843 7 7845 5159 7847 7960 7839 7840 7961 6 7846 5159 5160 7848 8082 7960 6 7847 5160 5161 7849 8082 8083 6 7848 5161 5162 7850 8083 8084 6 7849 5162 7851 8084 8085 8086 6 7850 5162 5163 5164 7852 8086 6 7851 5164 7853 8086 8087 8088 6 7852 5164 5165 7854 8088 8089 7 7853 5165 4700 4701 4702 7855 8089 5 7854 4702 7308 7856 8089 7 7855 7308 7309 7857 8089 8090 8091 7 7856 7309 7310 7858 8091 8092 8093 6 7857 7310 7311 7859 8093 8094 6 7858 7311 7312 7313 7860 8094 6 7859 7313 7861 8094 8095 8096 6 7860 7313 7314 7862 8096 8097 6 7861 7314 7315 7863 8097 8098 6 7862 7315 7316 7864 8098 8099 6 7863 7316 7317 7865 8099 8100 6 7864 7317 7318 7866 8100 8101 6 7865 7318 7319 7867 8101 8102 6 7866 7319 7320 7321 7868 8102 6 7867 7321 7869 8102 8103 8104 6 7868 7321 7322 7870 8104 8105 6 7869 7322 7323 7324 7871 8105 6 7870 7324 7872 8105 8106 8107 6 7871 7324 7325 7873 8107 8108 6 7872 7325 7326 7327 7874 8108 6 7873 7327 7875 8108 8109 8110 6 7874 7327 7328 7329 7876 8110 6 7875 7329 7877 8110 8111 8112 6 7876 7329 7330 7331 7878 8112 6 7877 7331 7332 7879 8112 8113 6 7878 7332 7880 8113 8114 8115 6 7879 7332 7333 7334 7881 8115 6 7880 7334 7335 7336 7882 8115 6 7881 7336 7337 7883 8115 8116 7 7882 7337 7338 7884 8116 8117 8118 6 7883 7338 7339 7885 8118 8119 6 7884 7339 7340 7886 8119 8120 6 7885 7340 7341 7887 8120 8121 6 7886 7341 7888 8121 8122 8123 6 7887 7341 7342 7343 7889 8123 6 7888 7343 7344 7890 8123 8124 6 7889 7344 7345 7891 8124 8125 6 7890 7345 7346 7892 8125 8126 6 7891 7346 7347 7893 8126 8127 6 7892 7347 7348 7894 8127 8128 6 7893 7348 7895 8128 8129 8130 6 7894 7348 7349 7350 7896 8130 6 7895 7350 7351 7897 8130 8131 7 7896 7351 7352 7353 7898 8131 8132 5 7897 7353 7899 8132 8133 7 7898 7353 7354 7355 7900 8133 8134 6 7899 7355 7901 8134 8135 8136 5 7900 7355 7356 7902 8136 7 7901 7356 7903 8136 8137 8138 7904 5 7902 7356 7357 7358 7904 6 7903 7358 7905 8138 7902 8139 6 7904 7358 7359 7361 7906 8139 6 7905 7361 7907 8139 8140 8141 6 7906 7361 7362 7363 7908 8141 6 7907 7363 7909 8141 8142 8143 6 7908 7363 7364 7365 7910 8143 6 7909 7365 7371 7911 8143 8144 6 7910 7371 7912 8144 8145 8146 5 7911 7371 7372 7913 8146 7 7912 7372 7373 7914 8146 8147 8148 6 7913 7373 7915 8148 8149 8150 6 7914 7373 7374 7376 7916 8150 6 7915 7376 7917 7918 7919 8150 6 7916 7376 7377 7378 7601 7918 6 7917 7601 7916 7919 7920 7603 6 7916 7918 7920 7921 7922 8150 6 7919 7918 7921 7925 7926 7603 6 7919 7920 7922 7923 7924 7925 6 7919 7921 7923 8150 8151 8149 6 7922 7921 7924 8151 8152 8153 6 7923 7921 7925 8153 8154 8155 6 7924 7921 7920 7926 8155 7928 6 7925 7920 7603 7604 7927 7928 6 7926 7604 7928 7929 7609 7605 6 7926 7927 7929 8155 7925 8157 6 7928 7927 7609 8157 7616 7610 6 7809 7810 7931 8050 8345 7808 6 7930 7810 7811 7932 7933 8050 6 7931 7811 7933 7934 7935 7936 6 7931 7932 7934 8050 8051 8052 6 7933 7932 7935 8052 8053 8057 6 7934 7932 7936 8059 8057 8060 6 7935 7932 7811 7812 7937 8060 6 7936 7812 7813 7938 8060 8061 6 7937 7813 7814 7939 8061 8062 6 7938 7814 7816 7817 7940 8062 6 7939 7817 7818 7941 8062 8063 6 7940 7818 7942 8063 8064 8065 6 7941 7818 7819 7943 8065 8066 6 7942 7819 7820 7821 7944 8066 6 7943 7821 7945 8066 8067 8068 6 7944 7821 7822 7946 8068 8069 6 7945 7822 7823 7947 8069 8070 6 7946 7823 7824 7948 8070 8071 6 7947 7824 7826 7949 8071 8072 6 7948 7826 7950 8072 8073 8074 6 7949 7826 7827 7951 8074 8075 6 7950 7827 7952 8075 8076 7953 6 7951 7827 7828 7829 7832 7953 6 7952 7832 7833 7954 8076 7951 6 7953 7833 7955 8076 8077 8078 6 7954 7833 7834 7835 7956 8078 6 7955 7835 7836 7957 8078 8079 6 7956 7836 7958 8079 8080 8081 6 7957 7836 7837 7838 7959 8081 6 7958 7838 7839 7960 8081 8082 5 7959 7839 7846 8082 7847 6 7846 7840 7841 7842 7843 7845 6 7726 7727 7963 8466 8468 9764 6 7962 7727 7964 8466 8487 8488 6 7963 7727 7728 7246 7965 8488 6 7964 7246 7247 7966 8488 8489 6 7965 7247 7248 7967 8489 8490 6 7966 7248 7249 7968 8490 8491 6 7967 7249 7511 7513 7969 8491 6 7968 7513 7970 8493 8491 8494 6 7969 7513 7514 7971 8494 8495 6 7970 7514 7972 8495 8496 7974 6 7971 7514 7515 7518 7973 7974 6 7972 7518 7974 7975 7976 7977 6 7972 7973 7975 8496 7971 8497 6 7974 7973 7976 8500 8497 7981 6 7975 7973 7977 7979 7980 7981 6 7976 7973 7518 7519 7978 7979 6 7977 7519 7979 7988 7989 7521 6 7977 7978 7976 7980 7987 7988 6 7976 7979 7981 7982 7986 7987 6 7976 7980 7982 7983 8500 7975 6 7981 7980 7983 7984 7985 7986 6 7981 7982 7984 8500 8501 8502 6 7983 7982 7985 8502 8503 8504 6 7984 7982 7986 8504 8505 8506 6 7985 7982 7980 7987 8506 7993 7 7986 7980 7979 7988 7991 7992 7993 5 7987 7979 7978 7989 7991 7 7988 7978 7521 7526 7990 7548 7991 5 7989 7526 7527 7546 7548 6 7989 7548 7549 7992 7987 7988 6 7991 7549 7551 7987 7993 7994 6 7987 7992 7994 8506 7986 8507 6 7993 7992 7551 8507 7997 7995 6 7551 7552 7558 7996 7997 7994 6 7995 7558 7559 7997 7998 7999 6 7995 7996 7998 8507 7994 8508 6 7997 7996 7999 8508 8509 8510 6 7998 7996 7559 7566 8000 8510 6 7999 7566 7567 7570 8001 8510 7 8000 7570 7571 8002 8510 8522 8511 6 8001 7571 7572 8003 8522 8523 7 8002 7572 7574 7577 8004 8520 8523 7 8003 7577 8005 8519 8517 8520 8541 5 8004 7577 7578 8006 8541 6 8005 7578 8007 8610 8540 8541 6 8006 7578 7579 7580 8008 8610 6 8007 7580 7581 8009 8010 8610 6 8008 7581 8010 8011 8012 7582 8 8008 8009 8011 8609 8537 8538 8540 8610 5 8010 8009 8012 8013 8609 6 8011 8009 8013 7587 7582 7585 7 8011 8012 7587 7729 8014 8608 8609 6 8013 7729 7730 8015 8607 8608 6 8014 7730 7734 8016 8611 8607 6 8015 7734 7735 8017 8611 8612 6 8016 7735 8018 8612 8613 8614 6 8017 7735 7736 8019 8614 8615 6 8018 7736 8020 8615 8618 8619 6 8019 7736 7737 8021 8022 8619 6 8020 7737 8022 8023 9766 7738 6 8020 8021 8023 8024 8619 8620 6 8022 8021 8024 8025 7742 9766 6 8022 8023 8025 8620 8621 8028 6 8024 8023 7742 7743 8026 8028 6 8025 7743 8027 8028 8029 8030 6 8026 7743 7744 7748 8030 8031 6 8025 8026 8029 8621 8024 8622 6 8028 8026 8030 8628 8622 8629 6 8029 8026 8027 8031 8033 8629 6 8030 8027 7748 8032 8033 8034 6 8031 7748 7749 8034 8035 8036 6 8030 8031 8034 8629 8630 8631 6 8033 8031 8032 8035 8631 8632 6 8034 8032 8036 7761 8635 8632 6 8035 8032 7749 7759 7760 7761 6 7784 7785 8038 8332 8333 8334 6 8037 7785 7787 8039 8041 8334 6 8038 7787 8040 8041 8042 8043 6 8039 7787 8043 8044 8045 7788 6 8038 8039 8042 8334 8335 8336 6 8041 8039 8043 8336 8337 8341 6 8042 8039 8040 8044 8341 8342 6 8043 8040 8045 8342 8343 8046 6 8044 8040 7788 7794 7795 8046 6 8045 7795 8047 7806 8343 8044 6 8046 7795 7806 7803 8048 7796 6 7803 8047 7796 7802 7801 8049 6 7801 8048 7796 7797 7799 7800 6 7930 7931 7933 8051 8345 8346 6 8050 7933 8052 8346 8347 8348 6 8051 7933 7934 8053 8054 8348 6 8052 7934 8054 8055 8056 8057 6 8052 8053 8055 8348 8349 8350 6 8054 8053 8056 8350 8351 8352 6 8055 8053 8057 8058 8352 8353 6 8056 8053 8058 8059 7935 7934 6 8056 8057 8059 8353 8354 8355 6 8058 8057 7935 8060 8355 8356 6 8059 7935 7936 7937 8061 8356 6 8060 7937 7938 8062 8356 8358 6 8061 7938 7939 7940 8063 8358 6 8062 7940 7941 8064 8359 8358 6 8063 7941 8065 8359 8360 8361 6 8064 7941 7942 8066 8361 8362 6 8065 7942 7943 7944 8067 8362 6 8066 7944 8068 8362 8363 8364 6 8067 7944 7945 8069 8364 8365 6 8068 7945 7946 8070 8365 8366 6 8069 7946 7947 8071 8366 8367 6 8070 7947 7948 8072 8367 8368 6 8071 7948 7949 8073 8368 8369 6 8072 7949 8074 8369 8370 8371 6 8073 7949 7950 8075 8371 8372 6 8074 7950 7951 8076 8372 8373 6 8075 7951 7953 7954 8077 8373 6 8076 7954 8078 8375 8373 8376 6 8077 7954 7955 7956 8079 8376 6 8078 7956 7957 8080 8376 8377 6 8079 7957 8081 8209 8377 8378 6 8080 7957 7958 7959 8082 8209 7 8081 7959 7960 7847 7848 8083 8209 6 8082 7848 7849 8084 8209 8210 6 8083 7849 7850 8085 8210 8211 6 8084 7850 8086 8211 8212 8213 6 8085 7850 7851 7852 8087 8213 6 8086 7852 8088 8213 8214 8215 6 8087 7852 7853 8089 8215 8090 6 8088 7853 7854 7855 7856 8090 5 8089 7856 8091 8215 8088 7 8090 7856 7857 8092 8215 8216 8217 5 8091 7857 8093 8217 8218 6 8092 7857 7858 8094 8218 8219 6 8093 7858 7859 7860 8095 8219 6 8094 7860 8096 8219 8220 8221 6 8095 7860 7861 8097 8221 8222 6 8096 7861 7862 8098 8222 8223 6 8097 7862 7863 8099 8223 8224 6 8098 7863 7864 8100 8224 8225 6 8099 7864 7865 8101 8225 8226 6 8100 7865 7866 8102 8226 8227 6 8101 7866 7867 7868 8103 8227 6 8102 7868 8104 8227 8228 8229 6 8103 7868 7869 8105 8229 8230 6 8104 7869 7870 7871 8106 8230 6 8105 7871 8107 8230 8231 8232 6 8106 7871 7872 8108 8232 8233 6 8107 7872 7873 7874 8109 8233 6 8108 7874 8110 8233 8234 8235 6 8109 7874 7875 7876 8111 8235 6 8110 7876 8112 8235 8236 8237 6 8111 7876 7877 7878 8113 8237 6 8112 7878 7879 8114 8237 8238 6 8113 7879 8115 8238 8239 8116 6 8114 7879 7880 7881 7882 8116 6 8115 7882 7883 8117 8239 8114 6 8116 7883 8118 8239 8240 8241 5 8117 7883 7884 8119 8241 6 8118 7884 7885 8120 8241 8242 6 8119 7885 7886 8121 8242 8243 6 8120 7886 7887 8122 8243 8244 6 8121 7887 8123 8244 8245 8246 6 8122 7887 7888 7889 8124 8246 6 8123 7889 7890 8125 8246 8247 6 8124 7890 7891 8126 8247 8248 6 8125 7891 7892 8127 8248 8249 6 8126 7892 7893 8128 8249 8250 6 8127 7893 7894 8129 8250 8251 6 8128 7894 8130 8251 8252 8253 6 8129 7894 7895 7896 8131 8253 6 8130 7896 7897 8132 8253 8254 5 8131 7897 7898 8133 8254 7 8132 7898 7899 8134 8254 8255 8256 5 8133 7899 7900 8135 8256 7 8134 7900 8136 8256 8257 8258 8259 6 8135 7900 7901 7902 8137 8259 6 8136 7902 8138 8259 8260 8261 6 8137 7902 7904 8139 8261 8262 6 8138 7904 7905 7906 8140 8262 6 8139 7906 8141 8262 8263 8264 6 8140 7906 7907 7908 8142 8264 6 8141 7908 8143 8264 8265 8266 6 8142 7908 7909 7910 8144 8266 6 8143 7910 7911 8145 8266 8267 6 8144 7911 8146 8267 8268 8269 6 8145 7911 7912 7913 8147 8269 6 8146 7913 8148 8269 8270 8271 6 8147 7913 7914 8149 8151 8271 5 8148 7914 8150 8151 7922 6 8149 7914 7915 7916 7919 7922 7 8148 8149 7922 7923 8152 8271 8272 5 8151 7923 8153 8272 8273 7 8152 7923 7924 8154 8273 8274 8275 6 8153 7924 8155 8156 8275 8276 7 8154 7924 8156 7925 7928 8157 7617 6 8154 8155 7617 7618 8158 8276 5 8155 7928 7929 7616 7617 6 8156 7618 8159 8276 8277 8278 6 8158 7618 7619 8160 8278 8279 7 8159 7619 7620 8161 8279 8280 8281 5 8160 7620 8162 8281 8282 7 8161 7620 7621 8163 8282 8283 8164 6 8162 7621 7622 7623 7624 8164 7 8163 7624 7625 7627 8165 8283 8162 6 8164 7627 7628 7630 8166 8283 6 8165 7630 8167 8168 8283 8282 6 8166 7630 8168 8169 8170 7631 6 8166 8167 8169 8282 8284 8285 6 8168 8167 8170 8285 8286 8287 6 8169 8167 7631 8171 8172 8287 6 8170 7631 8172 8173 7633 7632 6 8170 8171 8173 8287 8288 8289 6 8172 8171 7633 8174 8289 8290 6 8173 7633 7634 7636 8175 8290 6 8174 7636 7638 8176 8290 8291 6 8175 7638 8177 8291 8292 8293 6 8176 7638 7639 8178 8293 8294 6 8177 7639 8179 8294 8295 8296 6 8178 7639 7640 8180 8296 8297 6 8179 7640 8181 8307 8297 8308 6 8180 7640 7641 8182 8183 8308 6 8181 7641 8183 7644 7643 7642 6 8181 8182 7644 8184 8308 8309 6 8183 7644 7645 8185 8309 8310 7 8184 7645 7646 7647 8186 8310 8311 6 8185 7647 7648 8187 8311 8312 6 8186 7648 8188 8312 8313 8314 6 8187 7648 7649 8189 8314 8315 6 8188 7649 7650 8190 8315 8200 6 8189 7650 8191 8197 8199 8200 6 8190 7650 7651 8192 8197 8193 6 8191 7651 7652 7657 7658 8193 6 8192 7658 8194 8196 8197 8191 6 8193 7658 7659 7662 8195 8196 6 8194 7662 8196 8208 8204 7663 6 8194 8195 8193 8197 8198 8204 6 8193 8196 8198 8199 8190 8191 6 8197 8196 8199 8202 8203 8204 6 8197 8198 8190 8200 8201 8202 6 8190 8199 8201 8315 8189 8316 6 8200 8199 8202 8316 8317 8318 6 8201 8199 8198 8203 8205 8318 6 8202 8198 8204 8205 7699 8206 7 8203 8198 8206 8207 8208 8195 8196 5 8202 8203 7699 8318 7700 7 7699 8203 8204 7698 7669 7667 8207 6 7667 8206 8204 8208 7664 7665 5 8207 8204 8195 7663 7664 6 8080 8081 8082 8083 8210 8378 5 8209 8083 8084 8211 8378 6 8210 8084 8085 8212 8378 8379 6 8211 8085 8213 8379 8380 8381 6 8212 8085 8086 8087 8214 8381 6 8213 8087 8215 8381 8382 8216 6 8214 8087 8088 8090 8091 8216 6 8215 8091 8217 8382 8214 8383 6 8216 8091 8092 8218 8383 8384 6 8217 8092 8093 8219 8384 8385 6 8218 8093 8094 8095 8220 8385 5 8219 8095 8221 8385 8386 6 8220 8095 8096 8222 8386 8387 6 8221 8096 8097 8223 8387 8388 6 8222 8097 8098 8224 8388 8389 6 8223 8098 8099 8225 8389 8390 6 8224 8099 8100 8226 8390 8391 6 8225 8100 8101 8227 8391 8392 6 8226 8101 8102 8103 8228 8392 6 8227 8103 8229 8392 8393 8394 6 8228 8103 8104 8230 8394 8395 6 8229 8104 8105 8106 8231 8395 6 8230 8106 8232 8395 8396 8397 6 8231 8106 8107 8233 8397 8398 6 8232 8107 8108 8109 8234 8398 6 8233 8109 8235 8398 8399 8400 6 8234 8109 8110 8111 8236 8400 6 8235 8111 8237 8400 8401 8402 6 8236 8111 8112 8113 8238 8402 6 8237 8113 8114 8239 8402 8403 6 8238 8114 8116 8117 8240 8403 6 8239 8117 8241 8403 8404 8405 6 8240 8117 8118 8119 8242 8405 6 8241 8119 8120 8243 8405 8406 6 8242 8120 8121 8244 8406 8407 6 8243 8121 8122 8245 8407 8408 6 8244 8122 8246 8408 8409 8410 6 8245 8122 8123 8124 8247 8410 6 8246 8124 8125 8248 8410 8411 6 8247 8125 8126 8249 8411 8412 6 8248 8126 8127 8250 8412 8413 6 8249 8127 8128 8251 8413 8414 6 8250 8128 8129 8252 8414 8415 6 8251 8129 8253 8415 8416 8417 6 8252 8129 8130 8131 8254 8417 7 8253 8131 8132 8133 8255 8417 8418 5 8254 8133 8256 8418 8419 7 8255 8133 8134 8135 8257 8419 8420 5 8256 8135 8258 8420 8421 6 8257 8135 8259 8421 8422 8260 5 8258 8135 8136 8137 8260 6 8259 8137 8261 8422 8258 8423 6 8260 8137 8138 8262 8423 8424 6 8261 8138 8139 8140 8263 8424 6 8262 8140 8264 8424 8425 8426 6 8263 8140 8141 8142 8265 8426 6 8264 8142 8266 8426 8427 8428 7 8265 8142 8143 8144 8267 8428 8429 6 8266 8144 8145 8268 8429 8430 6 8267 8145 8269 8430 8431 8432 6 8268 8145 8146 8147 8270 8432 6 8269 8147 8271 8432 8433 8434 6 8270 8147 8148 8151 8272 8434 5 8271 8151 8152 8273 8434 7 8272 8152 8153 8274 8434 8435 8436 6 8273 8153 8275 8436 8437 8438 6 8274 8153 8154 8276 8438 8277 5 8275 8154 8156 8158 8277 6 8276 8158 8278 8438 8275 8439 6 8277 8158 8159 8279 8439 8440 7 8278 8159 8160 8280 8440 8441 8445 6 8279 8160 8281 8445 8446 8284 5 8280 8160 8161 8282 8284 7 8281 8161 8162 8283 8166 8168 8284 5 8282 8162 8164 8165 8166 6 8282 8168 8285 8446 8280 8281 6 8284 8168 8169 8286 8446 8447 6 8285 8169 8287 8447 8449 8450 6 8286 8169 8170 8172 8288 8450 6 8287 8172 8289 8450 8451 8452 6 8288 8172 8173 8290 8452 8453 6 8289 8173 8174 8175 8291 8453 6 8290 8175 8176 8292 8453 8454 6 8291 8176 8293 8454 8455 8456 6 8292 8176 8177 8294 8456 8457 6 8293 8177 8178 8295 8457 8458 6 8294 8178 8296 8461 8458 8299 6 8295 8178 8179 8297 8298 8299 6 8296 8179 8298 8307 8305 8180 6 8296 8297 8299 8300 8301 8305 6 8296 8298 8300 8461 8295 8462 6 8299 8298 8301 8302 8462 8463 6 8300 8298 8302 8303 8304 8305 6 8300 8301 8303 8463 8464 8465 6 8302 8301 8304 8465 8466 8467 6 8303 8301 8305 8306 8470 8467 6 8304 8301 8298 8306 8307 8297 6 8304 8305 8307 8470 8471 8472 6 8306 8305 8297 8180 8308 8472 6 8307 8180 8181 8183 8309 8472 6 8308 8183 8184 8310 8472 8473 6 8309 8184 8185 8311 8473 8474 5 8310 8185 8186 8312 8474 6 8311 8186 8187 8313 8474 8475 6 8312 8187 8314 8478 8475 8479 6 8313 8187 8188 8315 8479 8480 6 8314 8188 8189 8200 8316 8480 5 8315 8200 8201 8317 8480 6 8316 8201 8318 8480 8481 7708 7 8317 8201 8202 8205 7700 7707 7708 6 7765 7766 8320 8321 8853 8854 6 8319 7766 7767 8321 8322 7769 7 8319 8320 8322 8854 8855 8856 8323 5 8321 8320 7769 7771 8323 6 8322 7771 8324 8856 8321 8857 6 8323 7771 7772 8325 8857 8328 6 8324 7772 7777 8326 8327 8328 6 8325 7777 7778 7779 7780 8327 6 8326 7780 8325 8328 8329 7781 6 8325 8327 8329 8857 8324 8858 6 8328 8327 7781 7782 8330 8858 6 8329 7782 7783 8331 8858 8859 6 8330 7783 8332 8865 8862 8859 6 8331 7783 7784 8037 8333 8865 6 8332 8037 8334 8866 8865 8867 6 8333 8037 8038 8041 8335 8867 6 8334 8041 8336 8867 8868 8869 6 8335 8041 8042 8337 8338 8869 6 8336 8042 8338 8339 8340 8341 6 8336 8337 8339 8869 8870 8874 6 8338 8337 8340 8874 8875 8347 6 8339 8337 8341 8347 8346 8876 6 8340 8337 8042 8043 8342 8876 6 8341 8043 8044 8343 8344 8876 6 8342 8044 8344 7807 7806 8046 6 8342 8343 7807 7808 8345 8876 6 8344 7808 7930 8050 8346 8876 6 8345 8050 8051 8347 8340 8876 6 8346 8051 8348 8875 8339 8340 6 8347 8051 8052 8054 8349 8875 6 8348 8054 8350 8902 8875 8901 6 8349 8054 8055 8351 8901 8903 6 8350 8055 8352 8903 8904 8905 6 8351 8055 8056 8353 8905 8906 6 8352 8056 8058 8354 8906 8907 6 8353 8058 8355 8907 8908 8909 6 8354 8058 8059 8356 8357 8909 6 8355 8059 8060 8061 8357 8358 6 8355 8356 8358 8359 8909 8910 6 8357 8356 8061 8062 8359 8063 6 8357 8358 8063 8064 8360 8910 6 8359 8064 8361 8912 8910 8913 6 8360 8064 8065 8362 8913 8914 6 8361 8065 8066 8067 8363 8914 6 8362 8067 8364 8916 8914 8917 6 8363 8067 8068 8365 8917 8918 6 8364 8068 8069 8366 8918 8919 6 8365 8069 8070 8367 8919 8920 6 8366 8070 8071 8368 8920 8921 6 8367 8071 8072 8369 8921 8922 6 8368 8072 8073 8370 8922 8923 6 8369 8073 8371 8923 8924 8925 6 8370 8073 8074 8372 8925 8926 6 8371 8074 8075 8373 8374 8926 6 8372 8075 8076 8374 8375 8077 6 8372 8373 8375 8926 8927 8928 6 8374 8373 8077 8376 8928 8929 6 8375 8077 8078 8079 8377 8929 6 8376 8079 8080 8378 8929 8379 6 8377 8080 8209 8210 8211 8379 7 8378 8211 8212 8380 8929 8377 8930 5 8379 8212 8381 8930 8931 7 8380 8212 8213 8214 8382 8743 8931 6 8381 8214 8216 8383 8641 8743 6 8382 8216 8217 8384 8641 8642 6 8383 8217 8218 8385 8642 8643 6 8384 8218 8219 8220 8386 8643 7 8385 8220 8221 8387 8643 8644 8645 6 8386 8221 8222 8388 8645 8646 6 8387 8222 8223 8389 8646 8647 6 8388 8223 8224 8390 8647 8648 7 8389 8224 8225 8391 8648 8649 8650 6 8390 8225 8226 8392 8650 8651 6 8391 8226 8227 8228 8393 8651 6 8392 8228 8394 8651 8652 8653 6 8393 8228 8229 8395 8653 8654 6 8394 8229 8230 8231 8396 8654 5 8395 8231 8397 8654 8655 6 8396 8231 8232 8398 8655 8656 7 8397 8232 8233 8234 8399 8656 8657 5 8398 8234 8400 8657 8658 7 8399 8234 8235 8236 8401 8658 8659 5 8400 8236 8402 8659 8660 6 8401 8236 8237 8238 8403 8660 6 8402 8238 8239 8240 8404 8660 6 8403 8240 8405 8660 8661 8662 6 8404 8240 8241 8242 8406 8662 6 8405 8242 8243 8407 8662 8663 7 8406 8243 8244 8408 8663 8664 8665 6 8407 8244 8245 8409 8665 8666 6 8408 8245 8410 8666 8667 8668 6 8409 8245 8246 8247 8411 8668 6 8410 8247 8248 8412 8668 8669 6 8411 8248 8249 8413 8669 8670 6 8412 8249 8250 8414 8670 8671 6 8413 8250 8251 8415 8671 8672 6 8414 8251 8252 8416 8672 8673 6 8415 8252 8417 8673 8674 8675 6 8416 8252 8253 8254 8418 8675 6 8417 8254 8255 8419 8675 8676 6 8418 8255 8256 8420 8676 8677 6 8419 8256 8257 8421 8677 8678 6 8420 8257 8258 8422 8678 8679 6 8421 8258 8260 8423 8679 8680 7 8422 8260 8261 8424 8680 8681 8682 6 8423 8261 8262 8263 8425 8682 6 8424 8263 8426 8682 8683 8687 6 8425 8263 8264 8265 8427 8687 6 8426 8265 8428 8687 8688 8689 6 8427 8265 8266 8429 8689 8690 5 8428 8266 8267 8430 8690 6 8429 8267 8268 8431 8542 8690 6 8430 8268 8432 8542 8543 8544 6 8431 8268 8269 8270 8433 8544 6 8432 8270 8434 8544 8545 8546 7 8433 8270 8271 8272 8273 8435 8546 6 8434 8273 8436 8546 8547 8548 6 8435 8273 8274 8437 8548 8549 6 8436 8274 8438 8549 8550 8439 5 8437 8274 8275 8277 8439 7 8438 8277 8278 8440 8550 8437 8551 6 8439 8278 8279 8441 8442 8551 6 8440 8279 8442 8443 8444 8445 6 8440 8441 8443 8551 8552 8553 6 8442 8441 8444 8553 8554 8555 7 8443 8441 8445 8446 8447 8448 8555 5 8444 8441 8279 8280 8446 6 8445 8280 8284 8285 8447 8444 6 8446 8285 8286 8444 8448 8449 5 8444 8447 8449 8555 8556 6 8448 8447 8286 8450 8556 8557 7 8449 8286 8287 8288 8451 8557 8558 6 8450 8288 8452 8558 8559 8560 6 8451 8288 8289 8453 8560 8561 6 8452 8289 8290 8291 8454 8561 6 8453 8291 8292 8455 8561 8562 6 8454 8292 8456 8562 8563 8564 6 8455 8292 8293 8457 8564 8565 6 8456 8293 8294 8458 8459 8565 6 8457 8294 8459 8460 8461 8295 6 8457 8458 8460 8565 8566 8567 6 8459 8458 8461 8567 8568 8569 6 8460 8458 8295 8299 8462 8569 6 8461 8299 8300 8463 8569 8570 6 8462 8300 8302 8464 8570 8571 6 8463 8302 8465 8571 8572 8573 6 8464 8302 8303 8466 8573 8487 7 8465 8303 8467 8468 7962 7963 8487 6 8466 8303 8468 8469 8470 8304 6 8466 8467 8469 7962 9763 9764 7 8468 8467 8470 9094 8485 9763 8486 6 8469 8467 8304 8306 8471 9094 6 8470 8306 8472 8476 9094 8473 6 8471 8306 8307 8308 8309 8473 6 8472 8309 8310 8474 8476 8471 6 8473 8310 8311 8312 8475 8476 6 8474 8312 8476 8477 8478 8313 7 8474 8475 8477 8485 9094 8471 8473 6 8476 8475 8478 8483 8484 8485 6 8477 8475 8313 8479 8483 8482 6 8478 8313 8314 8480 8482 8481 6 8479 8314 8315 8316 8317 8481 6 8480 8317 7708 7709 8482 8479 7 8481 7709 7710 7713 8483 8478 8479 5 8482 7713 8484 8477 8478 6 8483 7713 7714 8477 8485 8486 6 8477 8484 8486 8469 9094 8476 6 8485 8484 9765 9763 8469 7714 5 8466 7963 8488 8573 8465 7 8487 7963 7964 7965 8489 8573 8574 5 8488 7965 7966 8490 8574 7 8489 7966 7967 8491 8492 8574 8575 6 8490 7967 8492 8493 7969 7968 5 8490 8491 8493 8575 8576 6 8492 8491 7969 8494 8576 8577 6 8493 7969 7970 8495 8577 8578 6 8494 7970 7971 8496 8578 8579 6 8495 7971 7974 8497 8498 8579 6 8496 7974 8498 8499 8500 7975 6 8496 8497 8499 8579 8580 8581 6 8498 8497 8500 8581 8582 8501 6 8499 8497 7975 7981 7983 8501 6 8500 7983 8502 8582 8499 8583 6 8501 7983 7984 8503 8586 8583 6 8502 7984 8504 8527 8586 8526 6 8503 7984 7985 8505 8526 8588 6 8504 7985 8506 8588 8513 8589 6 8505 7985 7986 7993 8507 8589 6 8506 7993 7994 7997 8508 8589 6 8507 7997 7998 8509 8513 8589 6 8508 7998 8510 8511 8512 8513 6 8509 7998 7999 8000 8001 8511 6 8509 8510 8512 8521 8522 8001 6 8509 8511 8513 8514 8515 8521 7 8509 8512 8514 8588 8505 8589 8508 6 8513 8512 8515 8516 8526 8588 6 8514 8512 8516 8517 8520 8521 6 8514 8515 8517 8518 8524 8526 6 8516 8515 8518 8519 8004 8520 6 8516 8517 8519 8524 8525 8531 6 8518 8517 8004 8541 8539 8531 6 8004 8517 8003 8515 8521 8523 6 8520 8515 8512 8511 8522 8523 5 8521 8511 8001 8002 8523 5 8522 8002 8521 8520 8003 6 8516 8518 8525 8526 8527 8528 6 8524 8518 8528 8529 8530 8531 7 8516 8524 8527 8503 8504 8588 8514 5 8526 8524 8528 8586 8503 6 8527 8524 8525 8529 8587 8586 6 8528 8525 8530 8602 8587 8603 6 8529 8525 8531 8532 8533 8603 6 8530 8525 8532 8519 8539 8518 6 8530 8531 8533 8534 8538 8539 6 8530 8532 8534 8535 8603 8604 6 8533 8532 8535 8536 8537 8538 6 8533 8534 8536 8604 8605 8606 6 8535 8534 8537 8606 8607 8608 6 8536 8534 8538 8608 8609 8010 6 8537 8534 8532 8539 8540 8010 6 8538 8532 8540 8541 8519 8531 6 8538 8539 8541 8010 8610 8006 6 8540 8539 8519 8006 8005 8004 6 8430 8431 8543 8690 8691 8692 6 8542 8431 8544 8692 8693 8694 6 8543 8431 8432 8433 8545 8694 6 8544 8433 8546 8694 8695 8547 5 8545 8433 8434 8435 8547 6 8546 8435 8548 8695 8545 8696 6 8547 8435 8436 8549 8696 8697 6 8548 8436 8437 8550 8697 8698 6 8549 8437 8439 8551 8698 8552 5 8550 8439 8440 8442 8552 7 8551 8442 8553 8698 8550 8699 8700 6 8552 8442 8443 8554 8700 8701 6 8553 8443 8555 8701 8702 8703 6 8554 8443 8444 8448 8556 8703 6 8555 8448 8449 8557 8703 8704 6 8556 8449 8450 8558 8704 8705 6 8557 8450 8451 8559 8705 8706 6 8558 8451 8560 8706 8707 8708 5 8559 8451 8452 8561 8708 6 8560 8452 8453 8454 8562 8708 6 8561 8454 8455 8563 8708 8709 6 8562 8455 8564 8709 8710 8711 6 8563 8455 8456 8565 8711 8712 7 8564 8456 8457 8459 8566 8712 8713 5 8565 8459 8567 8713 8714 6 8566 8459 8460 8568 8714 8715 6 8567 8460 8569 8715 8716 8717 6 8568 8460 8461 8462 8570 8717 7 8569 8462 8463 8571 8590 8592 8717 5 8570 8463 8464 8572 8590 7 8571 8464 8573 8574 8575 8576 8590 6 8572 8464 8465 8487 8488 8574 6 8573 8488 8489 8490 8575 8572 5 8574 8490 8492 8576 8572 7 8575 8492 8493 8577 8572 8590 8591 6 8576 8493 8494 8578 8594 8591 6 8577 8494 8495 8579 8594 8595 6 8578 8495 8496 8498 8580 8595 6 8579 8498 8581 8595 8596 8597 6 8580 8498 8499 8582 8597 8598 6 8581 8499 8501 8583 8584 8598 6 8582 8501 8584 8585 8586 8502 6 8582 8583 8585 8598 8599 8600 6 8584 8583 8586 8587 8600 8601 7 8585 8583 8587 8528 8527 8503 8502 6 8585 8586 8528 8601 8602 8529 5 8526 8504 8505 8513 8514 5 8513 8505 8506 8508 8507 6 8572 8576 8591 8571 8570 8592 6 8590 8576 8592 8593 8594 8577 5 8570 8590 8591 8593 8717 7 8592 8591 8594 8717 8716 8718 8719 6 8593 8591 8577 8578 8595 8719 7 8594 8578 8579 8580 8596 8719 8720 6 8595 8580 8597 8720 8721 8722 6 8596 8580 8581 8598 8722 8723 6 8597 8581 8582 8584 8599 8723 6 8598 8584 8600 8723 8724 8725 6 8599 8584 8585 8601 8725 8726 6 8600 8585 8587 8602 8726 8727 5 8601 8587 8529 8603 8727 6 8602 8529 8530 8533 8604 8727 6 8603 8533 8535 8605 8727 8728 6 8604 8535 8606 8728 8731 8732 6 8605 8535 8536 8607 8611 8732 6 8606 8536 8608 8611 8015 8014 6 8607 8536 8537 8609 8014 8013 5 8608 8537 8010 8013 8011 5 8010 8540 8008 8007 8006 6 8606 8607 8015 8016 8612 8732 6 8611 8016 8017 8613 8732 8733 6 8612 8017 8614 8733 8734 8735 6 8613 8017 8018 8615 8616 8735 6 8614 8018 8019 8616 8617 8618 6 8614 8615 8617 8735 8736 8737 6 8616 8615 8618 8737 8738 8739 6 8617 8615 8019 8619 8739 8742 6 8618 8019 8020 8022 8620 8742 6 8619 8022 8024 8621 8624 8742 6 8620 8024 8028 8622 8623 8624 6 8621 8028 8623 8627 8628 8029 6 8621 8622 8624 8625 8626 8627 6 8621 8623 8625 8741 8742 8620 6 8624 8623 8626 8837 8741 8838 6 8625 8623 8627 8838 8839 8840 6 8626 8623 8622 8628 8840 8841 6 8627 8622 8029 8629 8841 8842 6 8628 8029 8030 8033 8630 8842 6 8629 8033 8631 8842 8843 8844 6 8630 8033 8034 8632 8633 8844 6 8631 8034 8633 8634 8635 8035 6 8631 8632 8634 8844 8845 8846 6 8633 8632 8635 8636 8637 8846 6 8634 8632 8636 8640 7761 8035 6 8634 8635 8637 8638 8639 8640 6 8634 8636 8638 8846 8848 8849 6 8637 8636 8639 8849 8850 8851 6 8638 8636 8640 8851 8852 7762 5 8639 8636 8635 7761 7762 6 8382 8383 8642 8743 8744 8745 6 8641 8383 8384 8643 8745 8746 6 8642 8384 8385 8386 8644 8746 6 8643 8386 8645 8746 8747 8748 6 8644 8386 8387 8646 8748 8749 6 8645 8387 8388 8647 8749 8750 6 8646 8388 8389 8648 8750 8751 6 8647 8389 8390 8649 8751 8752 6 8648 8390 8650 8752 8753 8754 5 8649 8390 8391 8651 8754 6 8650 8391 8392 8393 8652 8754 6 8651 8393 8653 8754 8755 8756 6 8652 8393 8394 8654 8756 8757 6 8653 8394 8395 8396 8655 8757 6 8654 8396 8397 8656 8757 8758 7 8655 8397 8398 8657 8758 8759 8760 5 8656 8398 8399 8658 8760 7 8657 8399 8400 8659 8760 8761 8762 5 8658 8400 8401 8660 8762 8 8659 8401 8402 8403 8404 8661 8762 8763 5 8660 8404 8662 8763 8764 6 8661 8404 8405 8406 8663 8764 6 8662 8406 8407 8664 8764 8765 6 8663 8407 8665 8765 8766 8767 5 8664 8407 8408 8666 8767 6 8665 8408 8409 8667 8767 8768 6 8666 8409 8668 8768 8769 8770 6 8667 8409 8410 8411 8669 8770 6 8668 8411 8412 8670 8770 8771 6 8669 8412 8413 8671 8771 8772 6 8670 8413 8414 8672 8772 8773 6 8671 8414 8415 8673 8773 8774 6 8672 8415 8416 8674 8774 8775 6 8673 8416 8675 8775 8776 8777 6 8674 8416 8417 8418 8676 8777 6 8675 8418 8419 8677 8777 8778 6 8676 8419 8420 8678 8778 8779 6 8677 8420 8421 8679 8779 8780 6 8678 8421 8422 8680 8780 8781 6 8679 8422 8423 8681 8781 8782 6 8680 8423 8682 8782 8783 8684 6 8681 8423 8424 8425 8683 8684 6 8682 8425 8684 8685 8686 8687 5 8682 8683 8685 8783 8681 6 8684 8683 8686 8783 8784 8785 6 8685 8683 8687 8785 8786 8787 7 8686 8683 8425 8426 8427 8688 8787 5 8687 8427 8689 8787 8788 6 8688 8427 8428 8690 8788 8789 7 8689 8428 8429 8430 8542 8691 8789 6 8690 8542 8692 8789 8790 8791 5 8691 8542 8543 8693 8791 7 8692 8543 8694 8791 8792 8793 8794 6 8693 8543 8544 8545 8695 8794 6 8694 8545 8547 8696 8794 8795 7 8695 8547 8548 8697 8795 8796 8797 6 8696 8548 8549 8698 8797 8798 6 8697 8549 8550 8552 8699 8798 6 8698 8552 8700 8798 8799 8800 6 8699 8552 8553 8701 8800 8803 6 8700 8553 8554 8702 8803 8804 6 8701 8554 8703 8804 8805 8806 6 8702 8554 8555 8556 8704 8806 6 8703 8556 8557 8705 8806 8807 6 8704 8557 8558 8706 8807 8808 6 8705 8558 8559 8707 8808 8809 6 8706 8559 8708 8809 8810 8811 7 8707 8559 8560 8561 8562 8709 8811 5 8708 8562 8563 8710 8811 7 8709 8563 8711 8811 8812 8813 8814 6 8710 8563 8564 8712 8814 8815 6 8711 8564 8565 8713 8815 8816 5 8712 8565 8566 8714 8816 7 8713 8566 8567 8715 8816 8817 8818 6 8714 8567 8568 8716 8818 8819 6 8715 8568 8717 8593 8718 8819 6 8716 8568 8569 8570 8592 8593 6 8716 8593 8719 8819 8820 8720 5 8718 8593 8594 8595 8720 6 8719 8595 8596 8721 8820 8718 6 8720 8596 8722 8820 8821 8822 5 8721 8596 8597 8723 8822 6 8722 8597 8598 8599 8724 8822 6 8723 8599 8725 8822 8823 8824 6 8724 8599 8600 8726 8824 8825 6 8725 8600 8601 8727 8825 8729 7 8726 8601 8602 8603 8604 8728 8729 6 8727 8604 8605 8729 8730 8731 5 8727 8728 8730 8825 8726 6 8729 8728 8731 8825 8827 8828 6 8730 8728 8605 8732 8828 8829 7 8731 8605 8606 8611 8612 8733 8829 6 8732 8612 8613 8734 8830 8829 6 8733 8613 8735 8830 8831 8736 5 8734 8613 8614 8616 8736 6 8735 8616 8737 8831 8734 8832 6 8736 8616 8617 8738 8832 8833 6 8737 8617 8739 8740 8833 8834 6 8738 8617 8618 8740 8741 8742 6 8738 8739 8741 8834 8835 8836 7 8740 8739 8742 8624 8836 8837 8625 6 8741 8739 8624 8620 8619 8618 6 8381 8382 8641 8744 8931 8932 5 8743 8641 8745 8932 8933 6 8744 8641 8642 8746 8933 8934 6 8745 8642 8643 8644 8747 8934 6 8746 8644 8748 8934 8935 8936 6 8747 8644 8645 8749 8936 8937 6 8748 8645 8646 8750 8937 8938 6 8749 8646 8647 8751 8938 8939 6 8750 8647 8648 8752 8939 8940 6 8751 8648 8649 8753 8940 8941 6 8752 8649 8754 8941 8942 8943 7 8753 8649 8650 8651 8652 8755 8943 5 8754 8652 8756 8943 8944 6 8755 8652 8653 8757 8944 8945 6 8756 8653 8654 8655 8758 8945 7 8757 8655 8656 8759 8945 8946 8947 5 8758 8656 8760 8947 8948 6 8759 8656 8657 8658 8761 8948 6 8760 8658 8762 8948 8949 8950 6 8761 8658 8659 8660 8763 8950 5 8762 8660 8661 8764 8950 7 8763 8661 8662 8663 8765 8950 8951 6 8764 8663 8664 8766 8951 8952 6 8765 8664 8767 8952 8953 8954 6 8766 8664 8665 8666 8768 8954 6 8767 8666 8667 8769 8954 8955 6 8768 8667 8770 8955 8956 8957 6 8769 8667 8668 8669 8771 8957 6 8770 8669 8670 8772 8957 8958 6 8771 8670 8671 8773 8958 8959 6 8772 8671 8672 8774 8959 8960 6 8773 8672 8673 8775 8960 8961 6 8774 8673 8674 8776 8961 8962 6 8775 8674 8777 8962 8963 8964 6 8776 8674 8675 8676 8778 8964 6 8777 8676 8677 8779 8964 8965 6 8778 8677 8678 8780 8965 8966 6 8779 8678 8679 8781 8966 8967 6 8780 8679 8680 8782 8967 8968 6 8781 8680 8681 8783 8968 8969 6 8782 8681 8684 8685 8784 8969 6 8783 8685 8785 8969 8970 8971 6 8784 8685 8686 8786 8971 8972 6 8785 8686 8787 8972 8973 8974 6 8786 8686 8687 8688 8788 8974 6 8787 8688 8689 8789 8974 8975 6 8788 8689 8690 8691 8790 8975 6 8789 8691 8791 8975 8976 8977 6 8790 8691 8692 8693 8792 8977 6 8791 8693 8793 8977 8978 8979 6 8792 8693 8794 8979 8980 8795 5 8793 8693 8694 8695 8795 6 8794 8695 8696 8796 8980 8793 6 8795 8696 8797 8980 8981 8982 6 8796 8696 8697 8798 8982 8799 5 8797 8697 8698 8699 8799 6 8798 8699 8800 8801 8982 8797 6 8799 8699 8700 8801 8802 8803 6 8799 8800 8802 8982 8983 8984 6 8801 8800 8803 8984 8985 8986 6 8802 8800 8700 8701 8804 8986 6 8803 8701 8702 8805 8986 8987 6 8804 8702 8806 8987 8988 8989 6 8805 8702 8703 8704 8807 8989 6 8806 8704 8705 8808 8989 8990 7 8807 8705 8706 8809 8992 8990 8993 5 8808 8706 8707 8810 8993 6 8809 8707 8811 8993 8994 8812 6 8810 8707 8708 8709 8710 8812 6 8811 8710 8813 8994 8810 8995 6 8812 8710 8814 8995 8996 8997 6 8813 8710 8711 8815 8997 8998 5 8814 8711 8712 8816 8998 7 8815 8712 8713 8714 8817 8998 8999 6 8816 8714 8818 8999 9000 9001 6 8817 8714 8715 8819 9001 9002 6 8818 8715 8716 8718 8820 9002 6 8819 8718 8720 8721 8821 9002 6 8820 8721 8822 9002 9003 8823 6 8821 8721 8722 8723 8724 8823 6 8822 8724 8824 9003 8821 9004 6 8823 8724 8725 8825 8826 9004 7 8824 8725 8726 8729 8730 8826 8827 6 8824 8825 8827 9004 9005 9006 6 8826 8825 8730 8828 9012 9006 6 8827 8730 8731 8829 8830 9012 5 8828 8731 8830 8733 8732 7 8828 8829 8733 8734 8831 9011 9012 6 8830 8734 8736 8832 9013 9011 7 8831 8736 8737 8833 9013 9014 9015 6 8832 8737 8738 8834 9015 9016 6 8833 8738 8740 8835 9016 9017 6 8834 8740 8836 9017 9018 9019 6 8835 8740 8741 8837 9019 9020 5 8836 8741 8625 8838 9020 6 8837 8625 8626 8839 9020 9021 6 8838 8626 8840 9021 9022 9023 6 8839 8626 8627 8841 9023 9024 6 8840 8627 8628 8842 9024 9025 6 8841 8628 8629 8630 8843 9025 6 8842 8630 8844 9025 9026 9030 6 8843 8630 8631 8633 8845 9030 6 8844 8633 8846 8847 9031 9030 6 8845 8633 8634 8637 8847 8848 6 8845 8846 8848 9031 9032 9033 6 8847 8846 8637 8849 9042 9033 6 8848 8637 8638 8850 9043 9042 6 8849 8638 8851 9043 9044 9045 6 8850 8638 8639 8852 9045 9048 6 8851 8639 7762 7763 8853 9048 6 8852 7763 7765 8319 8854 9048 6 8853 8319 8321 8855 9047 9048 6 8854 8321 8856 9047 9049 9050 5 8855 8321 8323 8857 9050 7 8856 8323 8324 8328 8858 9050 8860 6 8857 8328 8329 8330 8859 8860 6 8858 8330 8860 8861 8862 8331 6 8858 8859 8861 9050 8857 9051 6 8860 8859 8862 8863 9051 9052 6 8861 8859 8863 8864 8865 8331 6 8861 8862 8864 8877 9058 9052 6 8863 8862 8865 8866 8877 8878 6 8864 8862 8866 8333 8332 8331 6 8864 8865 8333 8867 8878 8879 6 8866 8333 8334 8335 8868 8879 6 8867 8335 8869 8879 8880 8871 6 8868 8335 8336 8338 8870 8871 6 8869 8338 8871 8872 8873 8874 6 8869 8870 8872 8894 8880 8868 6 8871 8870 8873 8896 8894 8897 6 8872 8870 8874 8897 8898 8902 6 8873 8870 8338 8339 8875 8902 6 8874 8339 8347 8902 8349 8348 6 8346 8340 8341 8342 8344 8345 5 8863 8864 8878 9058 8882 6 8877 8864 8866 8879 8881 8882 6 8878 8866 8867 8868 8880 8881 6 8879 8868 8881 8893 8894 8871 6 8879 8880 8878 8882 8883 8893 6 8878 8881 8883 8884 9058 8877 6 8882 8881 8884 8885 8892 8893 6 8882 8883 8885 8886 8887 9058 6 8884 8883 8886 8890 8891 8892 6 8884 8885 8887 8888 8889 8890 6 8884 8886 8888 9058 9057 9059 6 8887 8886 8889 9059 9060 9061 6 8888 8886 8890 9061 9062 9063 6 8889 8886 8885 8891 9063 9064 6 8890 8885 8892 9064 9065 9066 6 8891 8885 8883 8893 9066 8895 6 8892 8883 8881 8880 8894 8895 6 8893 8880 8895 8896 8872 8871 6 8893 8894 8896 9066 8892 9067 6 8895 8894 8872 8897 9067 9068 6 8896 8872 8873 8898 8899 9068 6 8897 8873 8899 8900 8901 8902 6 8897 8898 8900 9068 9069 9070 6 8899 8898 8901 9070 9071 8903 6 8900 8898 8902 8349 8350 8903 6 8901 8898 8873 8874 8875 8349 6 8901 8350 8351 8904 9071 8900 6 8903 8351 8905 9071 9072 9073 6 8904 8351 8352 8906 9073 9074 6 8905 8352 8353 8907 9074 9075 6 8906 8353 8354 8908 9075 9076 6 8907 8354 8909 9076 9077 8911 6 8908 8354 8355 8357 8910 8911 6 8909 8357 8911 8912 8360 8359 6 8909 8910 8912 9077 8908 9078 6 8911 8910 8360 8913 9078 9079 6 8912 8360 8361 8914 8915 9079 6 8913 8361 8362 8915 8916 8363 6 8913 8914 8916 9079 9080 9081 6 8915 8914 8363 8917 9081 9082 6 8916 8363 8364 8918 9082 9083 6 8917 8364 8365 8919 9083 9084 6 8918 8365 8366 8920 9093 9084 6 8919 8366 8367 8921 9093 9100 6 8920 8367 8368 8922 9100 9101 6 8921 8368 8369 8923 9101 9102 6 8922 8369 8370 8924 9102 9103 6 8923 8370 8925 9103 9104 9105 6 8924 8370 8371 8926 9105 9106 6 8925 8371 8372 8374 8927 9106 6 8926 8374 8928 9106 9107 8931 6 8927 8374 8375 8929 8931 8930 6 8928 8375 8376 8377 8379 8930 5 8929 8379 8380 8931 8928 8 8930 8380 8381 8743 8932 9107 8927 8928 5 8931 8743 8744 8933 9107 8 8932 8744 8745 8934 9107 9106 9105 9108 6 8933 8745 8746 8747 8935 9108 6 8934 8747 8936 9108 9109 9110 6 8935 8747 8748 8937 9110 9111 6 8936 8748 8749 8938 9111 9112 6 8937 8749 8750 8939 9112 9113 6 8938 8750 8751 8940 9113 9114 6 8939 8751 8752 8941 9114 9115 6 8940 8752 8753 8942 9115 9116 6 8941 8753 8943 9116 9117 8944 5 8942 8753 8754 8755 8944 7 8943 8755 8756 8945 9117 8942 9118 7 8944 8756 8757 8758 8946 9118 9119 5 8945 8758 8947 9119 9120 6 8946 8758 8759 8948 9120 9121 7 8947 8759 8760 8761 8949 9121 9122 6 8948 8761 8950 9122 9123 8951 6 8949 8761 8762 8763 8764 8951 6 8950 8764 8765 8952 9123 8949 6 8951 8765 8766 8953 9123 9124 6 8952 8766 8954 9124 9125 9126 6 8953 8766 8767 8768 8955 9126 6 8954 8768 8769 8956 9126 9127 6 8955 8769 8957 9127 9128 9129 6 8956 8769 8770 8771 8958 9129 6 8957 8771 8772 8959 9129 9130 6 8958 8772 8773 8960 9130 9131 6 8959 8773 8774 8961 9131 9132 6 8960 8774 8775 8962 9132 9133 6 8961 8775 8776 8963 9133 9134 6 8962 8776 8964 9134 9135 9136 6 8963 8776 8777 8778 8965 9136 6 8964 8778 8779 8966 9136 9137 6 8965 8779 8780 8967 9137 9138 6 8966 8780 8781 8968 9138 9139 6 8967 8781 8782 8969 9139 9140 7 8968 8782 8783 8784 8970 9140 9141 5 8969 8784 8971 9141 9142 7 8970 8784 8785 8972 9142 9143 9144 6 8971 8785 8786 8973 9144 9145 6 8972 8786 8974 9145 9146 9147 6 8973 8786 8787 8788 8975 9147 6 8974 8788 8789 8790 8976 9147 6 8975 8790 8977 9147 9148 9149 6 8976 8790 8791 8792 8978 9149 6 8977 8792 8979 9149 9150 9151 6 8978 8792 8793 8980 9151 9152 6 8979 8793 8795 8796 8981 9152 6 8980 8796 8982 9152 9153 8983 6 8981 8796 8797 8799 8801 8983 6 8982 8801 8984 9153 8981 9154 6 8983 8801 8802 8985 9154 9155 6 8984 8802 8986 9155 9156 9157 7 8985 8802 8803 8804 8987 9157 9158 5 8986 8804 8805 8988 9158 7 8987 8805 8989 8990 8991 9158 9159 5 8988 8805 8806 8807 8990 6 8989 8807 8988 8991 8992 8808 6 8988 8990 8992 9159 9160 9161 6 8991 8990 8808 8993 9164 9161 6 8992 8808 8809 8810 8994 9164 6 8993 8810 8812 8995 9164 9165 7 8994 8812 8813 8996 9165 9167 9168 5 8995 8813 8997 9168 9169 6 8996 8813 8814 8998 9169 9170 7 8997 8814 8815 8816 8999 9170 9171 5 8998 8816 8817 9000 9171 6 8999 8817 9001 9171 9172 9173 6 9000 8817 8818 9002 9173 9003 6 9001 8818 8819 8820 8821 9003 6 9002 8821 8823 9004 9173 9001 6 9003 8823 8824 8826 9005 9173 6 9004 8826 9006 9007 9008 9173 6 9005 8826 9007 9011 9012 8827 6 9005 9006 9008 9009 9010 9011 6 9005 9007 9009 9173 9172 9174 5 9008 9007 9010 9174 9177 6 9009 9007 9011 9013 9177 9014 7 9010 9007 9006 9012 9013 8831 8830 5 9011 9006 8830 8828 8827 5 9010 9011 8831 8832 9014 6 9013 8832 9015 9177 9010 9178 6 9014 8832 8833 9016 9181 9178 5 9015 8833 8834 9017 9181 7 9016 8834 8835 9018 9181 9182 9188 6 9017 8835 9019 9188 9189 9190 6 9018 8835 8836 9020 9190 9191 6 9019 8836 8837 8838 9021 9191 6 9020 8838 8839 9022 9191 9192 6 9021 8839 9023 9192 9195 9196 6 9022 8839 8840 9024 9196 9197 6 9023 8840 8841 9025 9197 9027 6 9024 8841 8842 8843 9026 9027 6 9025 8843 9027 9028 9029 9030 6 9025 9026 9028 9197 9024 9198 6 9027 9026 9029 9198 9199 9203 5 9028 9026 9030 9031 9203 6 9029 9026 8843 9031 8845 8844 7 9029 9030 8845 8847 9032 9203 9204 6 9031 8847 9033 9034 9204 9205 6 9032 8847 9034 9035 9042 8848 6 9032 9033 9035 9036 9037 9205 6 9034 9033 9036 9040 9041 9042 6 9034 9035 9037 9038 9039 9040 6 9034 9036 9038 9205 9206 9207 6 9037 9036 9039 9207 9208 9209 6 9038 9036 9040 9209 9062 9061 6 9039 9036 9035 9041 9061 9060 6 9040 9035 9042 9043 9060 9210 6 9041 9035 9033 8848 9043 8849 6 9041 9042 8849 8850 9044 9210 7 9043 8850 9045 9046 9055 9056 9210 6 9044 8850 8851 9046 9047 9048 6 9044 9045 9047 9053 9055 9049 6 9046 9045 9048 8854 8855 9049 6 9047 9045 8851 8854 8853 8852 6 9047 8855 9050 9051 9053 9046 6 9049 8855 8856 8857 8860 9051 6 9050 8860 8861 9052 9053 9049 6 9051 8861 9053 9054 9058 8863 6 9051 9052 9054 9055 9046 9049 6 9053 9052 9055 9056 9057 9058 5 9053 9054 9046 9044 9056 6 9044 9055 9054 9057 9059 9210 5 9056 9054 9058 8887 9059 8 9057 9054 9052 8863 8877 8882 8884 8887 6 9057 8887 8888 9060 9210 9056 6 9059 8888 9061 9040 9041 9210 6 9060 8888 8889 9062 9039 9040 6 9061 8889 9063 9209 9039 9211 6 9062 8889 8890 9064 9211 9212 6 9063 8890 8891 9065 9212 9213 6 9064 8891 9066 9213 9214 9215 6 9065 8891 8892 8895 9067 9215 6 9066 8895 8896 9068 9215 9216 6 9067 8896 8897 8899 9069 9216 6 9068 8899 9070 9216 9217 9218 6 9069 8899 8900 9071 9218 9219 7 9070 8900 8903 8904 9072 9219 9220 5 9071 8904 9073 9220 9221 7 9072 8904 8905 9074 9221 9222 9223 6 9073 8905 8906 9075 9223 9225 6 9074 8906 8907 9076 9225 9226 5 9075 8907 8908 9077 9226 7 9076 8908 8911 9078 9226 9227 9228 5 9077 8911 8912 9079 9228 6 9078 8912 8913 8915 9080 9228 6 9079 8915 9081 9228 9229 9230 6 9080 8915 8916 9082 9230 9231 6 9081 8916 8917 9083 9231 9232 6 9082 8917 8918 9084 9085 9232 6 9083 8918 9085 9086 9093 8919 6 9083 9084 9086 9087 9232 9233 6 9085 9084 9087 9088 9092 9093 6 9085 9086 9088 9089 9233 9234 6 9087 9086 9089 9090 9091 9092 6 9087 9088 9090 9095 9234 9235 6 9089 9088 9091 9095 9096 9097 6 9090 9088 9092 9097 9098 9099 6 9091 9088 9086 9093 9099 9100 6 9092 9086 9084 8919 8920 9100 5 8469 8470 8485 8476 8471 6 9089 9090 9096 9235 9236 9237 6 9095 9090 9097 9237 9238 9239 6 9096 9090 9091 9098 9239 9240 6 9097 9091 9099 9240 9241 9242 6 9098 9091 9092 9100 9242 9101 6 9099 9092 9093 8920 8921 9101 6 9100 8921 8922 9102 9242 9099 6 9101 8922 8923 9103 9242 9243 6 9102 8923 8924 9104 9243 9244 6 9103 8924 9105 9109 9244 9108 6 9104 8924 8925 9106 8933 9108 6 9105 8925 8926 8927 9107 8933 5 9106 8927 8931 8932 8933 6 9105 8933 8934 8935 9109 9104 5 9108 8935 9110 9244 9104 7 9109 8935 8936 9111 9245 9244 9348 6 9110 8936 8937 9112 9350 9348 5 9111 8937 8938 9113 9350 6 9112 8938 8939 9114 9350 9351 6 9113 8939 8940 9115 9351 9352 6 9114 8940 8941 9116 9352 9353 6 9115 8941 8942 9117 9246 9353 6 9116 8942 8944 9118 9246 9247 6 9117 8944 8945 9119 9247 9248 5 9118 8945 8946 9120 9248 7 9119 8946 8947 9121 9248 9249 9250 6 9120 8947 8948 9122 9250 9251 5 9121 8948 8949 9123 9251 6 9122 8949 8951 8952 9124 9251 6 9123 8952 8953 9125 9251 9252 6 9124 8953 9126 9252 9253 9254 6 9125 8953 8954 8955 9127 9254 6 9126 8955 8956 9128 9254 9255 6 9127 8956 9129 9255 9256 9257 6 9128 8956 8957 8958 9130 9257 6 9129 8958 8959 9131 9257 9258 6 9130 8959 8960 9132 9258 9259 6 9131 8960 8961 9133 9259 9260 6 9132 8961 8962 9134 9260 9261 6 9133 8962 8963 9135 9261 9262 6 9134 8963 9136 9262 9263 9264 6 9135 8963 8964 8965 9137 9264 6 9136 8965 8966 9138 9264 9265 6 9137 8966 8967 9139 9265 9266 6 9138 8967 8968 9140 9266 9267 6 9139 8968 8969 9141 9267 9268 5 9140 8969 8970 9142 9268 7 9141 8970 8971 9143 9268 9269 9270 6 9142 8971 9144 9270 9271 9272 5 9143 8971 8972 9145 9272 6 9144 8972 8973 9146 9272 9273 6 9145 8973 9147 9273 9274 9148 6 9146 8973 8974 8975 8976 9148 6 9147 8976 9149 9274 9146 9275 6 9148 8976 8977 8978 9150 9275 6 9149 8978 9151 9275 9276 9277 6 9150 8978 8979 9152 9277 9278 7 9151 8979 8980 8981 9153 9278 9279 6 9152 8981 8983 9154 9279 9280 6 9153 8983 8984 9155 9280 9281 6 9154 8984 8985 9156 9281 9282 6 9155 8985 9157 9282 9283 9284 6 9156 8985 8986 9158 9284 9285 6 9157 8986 8987 8988 9159 9285 6 9158 8988 8991 9160 9285 9286 6 9159 8991 9161 9162 9286 9287 6 9160 8991 9162 9163 9164 8992 6 9160 9161 9163 9287 9288 9289 6 9162 9161 9164 9165 9166 9289 6 9163 9161 8992 8993 8994 9165 6 9164 8994 8995 9163 9166 9167 6 9163 9165 9167 9289 9290 9186 6 9166 9165 8995 9168 9186 9185 6 9167 8995 8996 9169 9185 9184 7 9168 8996 8997 9170 9184 9179 9176 6 9169 8997 8998 9171 9176 9175 6 9170 8998 8999 9000 9172 9175 6 9171 9000 9173 9008 9174 9175 7 9172 9000 9001 9003 9004 9005 9008 6 9172 9008 9009 9175 9176 9177 5 9172 9174 9176 9170 9171 6 9175 9174 9177 9179 9169 9170 7 9176 9174 9009 9010 9014 9178 9179 6 9177 9014 9179 9180 9181 9015 6 9177 9178 9180 9184 9169 9176 6 9179 9178 9181 9182 9183 9184 6 9180 9178 9015 9016 9017 9182 6 9181 9017 9180 9183 9187 9188 6 9180 9182 9184 9185 9186 9187 6 9180 9183 9185 9168 9169 9179 5 9184 9183 9186 9167 9168 6 9185 9183 9187 9290 9166 9167 6 9186 9183 9182 9188 9290 9291 6 9187 9182 9017 9018 9189 9291 5 9188 9018 9190 9291 9292 6 9189 9018 9019 9191 9292 9193 6 9190 9019 9020 9021 9192 9193 6 9191 9021 9022 9193 9194 9195 6 9191 9192 9194 9292 9190 9293 6 9193 9192 9195 9293 9294 9295 6 9194 9192 9022 9196 9295 9296 6 9195 9022 9023 9197 9302 9296 7 9196 9023 9024 9027 9198 9302 9303 6 9197 9027 9028 9199 9200 9303 6 9198 9028 9200 9201 9202 9203 6 9198 9199 9201 9303 9301 9304 6 9200 9199 9202 9304 9305 9306 6 9201 9199 9203 9306 9307 9204 6 9202 9199 9028 9029 9031 9204 7 9203 9031 9032 9205 9307 9202 9206 5 9204 9032 9034 9037 9206 6 9205 9037 9207 9307 9204 9308 6 9206 9037 9038 9208 9308 9309 6 9207 9038 9209 9309 9310 9314 6 9208 9038 9039 9062 9211 9314 6 9060 9041 9043 9059 9056 9044 6 9209 9062 9063 9212 9314 9315 6 9211 9063 9064 9213 9315 9316 6 9212 9064 9065 9214 9319 9316 6 9213 9065 9215 9319 9320 9321 6 9214 9065 9066 9067 9216 9321 6 9215 9067 9068 9069 9217 9321 7 9216 9069 9218 9321 9320 9322 9323 5 9217 9069 9070 9219 9323 7 9218 9070 9071 9220 9323 9324 9325 5 9219 9071 9072 9221 9325 7 9220 9072 9073 9222 9325 9326 9327 6 9221 9073 9223 9224 9327 9328 5 9222 9073 9074 9224 9225 6 9222 9223 9225 9328 9329 9330 6 9224 9223 9074 9075 9226 9330 7 9225 9075 9076 9077 9227 9330 9331 6 9226 9077 9228 9331 9332 9229 6 9227 9077 9078 9079 9080 9229 7 9228 9080 9230 9332 9227 9333 9334 6 9229 9080 9081 9231 9334 9335 6 9230 9081 9082 9232 9335 9336 7 9231 9082 9083 9085 9233 9336 9337 5 9232 9085 9087 9234 9337 7 9233 9087 9089 9235 9337 9338 9339 5 9234 9089 9095 9236 9339 7 9235 9095 9237 9339 9340 9341 9342 6 9236 9095 9096 9238 9342 9343 6 9237 9096 9239 9343 9344 9345 6 9238 9096 9097 9240 9345 9346 6 9239 9097 9098 9241 9346 9347 6 9240 9098 9242 9347 9245 9243 6 9241 9098 9099 9101 9102 9243 6 9242 9102 9103 9244 9245 9241 6 9243 9103 9245 9110 9109 9104 6 9243 9244 9110 9347 9241 9348 6 9116 9117 9247 9353 9354 9355 6 9246 9117 9118 9248 9355 9356 6 9247 9118 9119 9120 9249 9356 6 9248 9120 9250 9356 9357 9358 6 9249 9120 9121 9251 9358 9252 6 9250 9121 9122 9123 9124 9252 7 9251 9124 9125 9253 9358 9250 9359 5 9252 9125 9254 9359 9360 7 9253 9125 9126 9127 9255 9360 9361 6 9254 9127 9128 9256 9361 9362 6 9255 9128 9257 9362 9363 9364 6 9256 9128 9129 9130 9258 9364 7 9257 9130 9131 9259 9364 9365 9366 6 9258 9131 9132 9260 9366 9367 6 9259 9132 9133 9261 9367 9368 6 9260 9133 9134 9262 9368 9369 6 9261 9134 9135 9263 9369 9370 6 9262 9135 9264 9370 9371 9372 6 9263 9135 9136 9137 9265 9372 6 9264 9137 9138 9266 9372 9373 6 9265 9138 9139 9267 9373 9374 6 9266 9139 9140 9268 9374 9375 7 9267 9140 9141 9142 9269 9375 9376 5 9268 9142 9270 9376 9377 6 9269 9142 9143 9271 9377 9381 6 9270 9143 9272 9381 9382 9383 6 9271 9143 9144 9145 9273 9383 6 9272 9145 9146 9274 9383 9384 6 9273 9146 9148 9275 9384 9385 7 9274 9148 9149 9150 9276 9385 9386 5 9275 9150 9277 9386 9388 6 9276 9150 9151 9278 9388 9389 6 9277 9151 9152 9279 9389 9390 6 9278 9152 9153 9280 9390 9391 5 9279 9153 9154 9281 9391 6 9280 9154 9155 9282 9393 9391 6 9281 9155 9156 9283 9393 9394 6 9282 9156 9284 9394 9395 9396 6 9283 9156 9157 9285 9396 9397 6 9284 9157 9158 9159 9286 9397 6 9285 9159 9160 9287 9397 9398 5 9286 9160 9162 9288 9398 7 9287 9162 9289 9398 9399 9400 9401 6 9288 9162 9163 9166 9290 9401 7 9289 9166 9186 9187 9291 9402 9401 6 9290 9187 9188 9189 9292 9402 7 9291 9189 9190 9193 9293 9402 9400 6 9292 9193 9194 9294 9400 9403 6 9293 9194 9295 9403 9404 9405 6 9294 9194 9195 9296 9297 9405 6 9295 9195 9297 9298 9302 9196 6 9295 9296 9298 9299 9405 9406 6 9297 9296 9299 9300 9301 9302 6 9297 9298 9300 9409 9406 9410 6 9299 9298 9301 9410 9411 9412 7 9300 9298 9302 9303 9200 9304 9412 6 9301 9298 9296 9196 9197 9303 5 9302 9197 9198 9200 9301 5 9301 9200 9201 9305 9412 7 9304 9201 9306 9412 9413 9414 9418 5 9305 9201 9202 9307 9418 6 9306 9202 9204 9206 9308 9418 6 9307 9206 9207 9309 9417 9418 6 9308 9207 9208 9310 9311 9417 6 9309 9208 9311 9312 9313 9314 6 9309 9310 9312 9416 9417 9419 6 9311 9310 9313 9419 9420 9424 7 9312 9310 9314 9424 9425 9317 9315 6 9313 9310 9208 9209 9211 9315 6 9314 9211 9212 9316 9317 9313 6 9315 9212 9317 9318 9319 9213 6 9315 9316 9318 9425 9313 9426 6 9317 9316 9319 9426 9427 9428 6 9318 9316 9213 9214 9320 9428 6 9319 9214 9321 9217 9322 9428 5 9320 9214 9215 9216 9217 6 9320 9217 9323 9428 9429 9430 6 9322 9217 9218 9219 9324 9430 6 9323 9219 9325 9430 9431 9432 6 9324 9219 9220 9221 9326 9432 6 9325 9221 9327 9432 9433 9434 6 9326 9221 9222 9328 9434 9435 5 9327 9222 9224 9329 9435 7 9328 9224 9330 9435 9436 9437 9438 6 9329 9224 9225 9226 9331 9438 6 9330 9226 9227 9332 9438 9439 6 9331 9227 9229 9333 9442 9439 6 9332 9229 9334 9442 9443 9446 5 9333 9229 9230 9335 9446 6 9334 9230 9231 9336 9446 9447 6 9335 9231 9232 9337 9447 9448 6 9336 9232 9233 9234 9338 9448 6 9337 9234 9339 9448 9449 9450 6 9338 9234 9235 9236 9340 9450 6 9339 9236 9341 9450 9451 9452 6 9340 9236 9342 9452 9453 9454 6 9341 9236 9237 9343 9454 9455 5 9342 9237 9238 9344 9455 7 9343 9238 9345 9455 9456 9457 9458 6 9344 9238 9239 9346 9458 9349 5 9345 9239 9240 9347 9349 6 9346 9240 9241 9245 9348 9349 6 9347 9245 9349 9350 9111 9110 7 9347 9348 9350 9458 9345 9346 9351 6 9349 9348 9111 9112 9113 9351 7 9350 9113 9114 9352 9458 9349 9459 6 9351 9114 9115 9353 9459 9460 6 9352 9115 9116 9246 9354 9460 6 9353 9246 9355 9460 9461 9462 6 9354 9246 9247 9356 9462 9463 6 9355 9247 9248 9249 9357 9463 6 9356 9249 9358 9463 9464 9465 6 9357 9249 9250 9252 9359 9465 5 9358 9252 9253 9360 9465 7 9359 9253 9254 9361 9465 9466 9467 5 9360 9254 9255 9362 9467 6 9361 9255 9256 9363 9467 9468 6 9362 9256 9364 9468 9469 9470 6 9363 9256 9257 9258 9365 9470 6 9364 9258 9366 9470 9471 9472 5 9365 9258 9259 9367 9472 6 9366 9259 9260 9368 9472 9473 6 9367 9260 9261 9369 9473 9474 6 9368 9261 9262 9370 9474 9475 6 9369 9262 9263 9371 9475 9476 6 9370 9263 9372 9476 9477 9478 6 9371 9263 9264 9265 9373 9478 6 9372 9265 9266 9374 9478 9479 6 9373 9266 9267 9375 9479 9480 6 9374 9267 9268 9376 9480 9481 6 9375 9268 9269 9377 9378 9481 7 9376 9269 9270 9378 9379 9380 9381 5 9376 9377 9379 9481 9482 6 9378 9377 9380 9482 9483 9484 6 9379 9377 9381 9484 9485 9382 5 9380 9377 9270 9271 9382 6 9381 9271 9383 9485 9380 9486 7 9382 9271 9272 9273 9384 9486 9487 6 9383 9273 9274 9385 9487 9488 6 9384 9274 9275 9386 9387 9488 5 9385 9275 9276 9387 9388 6 9385 9386 9388 9488 9489 9490 7 9387 9386 9276 9277 9389 9490 9491 6 9388 9277 9278 9390 9491 9492 6 9389 9278 9279 9391 9392 9492 6 9390 9279 9392 9393 9281 9280 6 9390 9391 9393 9492 9493 9494 6 9392 9391 9281 9282 9394 9494 6 9393 9282 9283 9395 9494 9495 6 9394 9283 9396 9495 9496 9497 6 9395 9283 9284 9397 9498 9497 6 9396 9284 9285 9286 9398 9498 6 9397 9286 9287 9288 9399 9498 6 9398 9288 9400 9498 9404 9403 7 9399 9288 9401 9402 9292 9293 9403 5 9400 9288 9402 9290 9289 5 9400 9401 9290 9291 9292 5 9400 9293 9294 9404 9399 6 9403 9294 9405 9498 9399 9407 6 9404 9294 9295 9297 9406 9407 6 9405 9297 9407 9408 9409 9299 6 9405 9406 9408 9497 9498 9404 6 9407 9406 9409 9496 9497 9499 6 9408 9406 9299 9410 9499 9500 6 9409 9299 9300 9411 9500 9501 6 9410 9300 9412 9501 9502 9413 6 9411 9300 9301 9304 9305 9413 6 9412 9305 9414 9415 9502 9411 6 9413 9305 9415 9416 9417 9418 6 9413 9414 9416 9502 9503 9504 6 9415 9414 9417 9311 9419 9504 6 9416 9414 9418 9308 9309 9311 6 9417 9414 9308 9307 9306 9305 6 9416 9311 9312 9420 9421 9504 6 9419 9312 9421 9422 9423 9424 6 9419 9420 9422 9504 9505 9506 6 9421 9420 9423 9506 9507 9508 6 9422 9420 9424 9511 9508 9512 6 9423 9420 9312 9313 9425 9512 5 9424 9313 9317 9426 9512 6 9425 9317 9318 9427 9512 9513 6 9426 9318 9428 9513 9514 9429 6 9427 9318 9319 9320 9322 9429 6 9428 9322 9430 9517 9514 9427 6 9429 9322 9323 9324 9431 9517 6 9430 9324 9432 9524 9517 9525 6 9431 9324 9325 9326 9433 9525 6 9432 9326 9434 9525 9526 9527 6 9433 9326 9327 9435 9527 9528 6 9434 9327 9328 9329 9436 9528 6 9435 9329 9437 9528 9530 9531 6 9436 9329 9438 9531 9532 9440 6 9437 9329 9330 9331 9439 9440 6 9438 9331 9440 9441 9442 9332 5 9438 9439 9441 9532 9437 7 9440 9439 9442 9443 9444 9532 9533 5 9441 9439 9332 9333 9443 6 9442 9333 9441 9444 9445 9446 5 9441 9443 9445 9533 9534 6 9444 9443 9446 9534 9535 9536 7 9445 9443 9333 9334 9335 9447 9536 6 9446 9335 9336 9448 9536 9537 6 9447 9336 9337 9338 9449 9537 6 9448 9338 9450 9537 9538 9451 5 9449 9338 9339 9340 9451 7 9450 9340 9452 9538 9449 9539 9540 6 9451 9340 9341 9453 9540 9541 6 9452 9341 9454 9541 9542 9543 6 9453 9341 9342 9455 9543 9544 6 9454 9342 9343 9344 9456 9544 6 9455 9344 9457 9544 9545 9461 6 9456 9344 9458 9461 9460 9459 6 9457 9344 9345 9349 9351 9459 5 9458 9351 9352 9460 9457 6 9459 9352 9353 9354 9461 9457 6 9460 9354 9462 9545 9456 9457 5 9461 9354 9355 9463 9545 7 9462 9355 9356 9357 9464 9545 9546 6 9463 9357 9465 9546 9547 9548 7 9464 9357 9358 9359 9360 9466 9548 6 9465 9360 9467 9548 9549 9550 6 9466 9360 9361 9362 9468 9550 6 9467 9362 9363 9469 9550 9551 6 9468 9363 9470 9551 9552 9553 6 9469 9363 9364 9365 9471 9553 6 9470 9365 9472 9553 9554 9555 6 9471 9365 9366 9367 9473 9555 6 9472 9367 9368 9474 9555 9556 6 9473 9368 9369 9475 9556 9557 6 9474 9369 9370 9476 9557 9558 6 9475 9370 9371 9477 9558 9559 6 9476 9371 9478 9559 9560 9561 6 9477 9371 9372 9373 9479 9561 6 9478 9373 9374 9480 9561 9562 6 9479 9374 9375 9481 9562 9563 6 9480 9375 9376 9378 9482 9563 6 9481 9378 9379 9483 9563 9564 6 9482 9379 9484 9564 9565 9566 6 9483 9379 9380 9485 9566 9567 6 9484 9380 9382 9486 9567 9568 6 9485 9382 9383 9487 9568 9569 6 9486 9383 9384 9488 9569 9570 6 9487 9384 9385 9387 9489 9570 6 9488 9387 9490 9570 9571 9572 6 9489 9387 9388 9491 9572 9573 6 9490 9388 9389 9492 9573 9574 6 9491 9389 9390 9392 9493 9574 6 9492 9392 9494 9574 9575 9576 6 9493 9392 9393 9394 9495 9576 6 9494 9394 9395 9496 9576 9577 6 9495 9395 9497 9408 9499 9577 6 9496 9395 9408 9407 9498 9396 7 9407 9497 9396 9397 9398 9399 9404 5 9496 9408 9409 9500 9577 7 9499 9409 9410 9501 9577 9578 9579 6 9500 9410 9411 9502 9579 9580 6 9501 9411 9413 9415 9503 9580 6 9502 9415 9504 9580 9581 9582 7 9503 9415 9416 9419 9421 9505 9582 5 9504 9421 9506 9582 9583 6 9505 9421 9422 9507 9583 9584 6 9506 9422 9508 9509 9584 9585 6 9507 9422 9509 9510 9511 9423 6 9507 9508 9510 9585 9586 9587 6 9509 9508 9511 9518 9587 9521 6 9510 9508 9423 9512 9518 9519 7 9511 9423 9424 9425 9426 9513 9519 6 9512 9426 9427 9514 9515 9519 6 9513 9427 9515 9516 9517 9429 6 9513 9514 9516 9519 9518 9520 6 9515 9514 9517 9523 9520 9524 6 9516 9514 9429 9430 9524 9431 6 9510 9511 9519 9515 9520 9521 5 9518 9511 9512 9513 9515 6 9518 9515 9521 9522 9523 9516 6 9518 9520 9522 9587 9510 9588 6 9521 9520 9523 9588 9589 9590 6 9522 9520 9516 9524 9590 9591 6 9523 9516 9517 9431 9525 9591 7 9524 9431 9432 9433 9526 9591 9592 5 9525 9433 9527 9592 9593 6 9526 9433 9434 9528 9529 9593 6 9527 9434 9435 9436 9529 9530 6 9527 9528 9530 9593 9594 9595 6 9529 9528 9436 9531 9595 9596 6 9530 9436 9437 9532 9596 9597 7 9531 9437 9440 9441 9533 9597 9598 5 9532 9441 9444 9534 9598 7 9533 9444 9445 9535 9598 9599 9600 6 9534 9445 9536 9600 9601 9602 7 9535 9445 9446 9447 9537 9602 9603 6 9536 9447 9448 9449 9538 9603 6 9537 9449 9451 9539 9603 9604 6 9538 9451 9540 9604 9605 9606 6 9539 9451 9452 9541 9606 9607 5 9540 9452 9453 9542 9607 7 9541 9453 9543 9607 9608 9609 9610 5 9542 9453 9454 9544 9610 7 9543 9454 9455 9456 9545 9610 9546 6 9544 9456 9461 9462 9463 9546 6 9545 9463 9464 9547 9610 9544 6 9546 9464 9548 9610 9609 9549 5 9547 9464 9465 9466 9549 6 9548 9466 9550 9609 9547 9611 6 9549 9466 9467 9468 9551 9611 6 9550 9468 9469 9552 9611 9612 6 9551 9469 9553 9612 9613 9614 6 9552 9469 9470 9471 9554 9614 6 9553 9471 9555 9614 9615 9616 6 9554 9471 9472 9473 9556 9616 6 9555 9473 9474 9557 9616 9617 6 9556 9474 9475 9558 9617 9618 6 9557 9475 9476 9559 9618 9619 6 9558 9476 9477 9560 9619 9620 6 9559 9477 9561 9620 9621 9622 6 9560 9477 9478 9479 9562 9622 6 9561 9479 9480 9563 9622 9623 6 9562 9480 9481 9482 9564 9623 6 9563 9482 9483 9565 9623 9624 6 9564 9483 9566 9624 9625 9626 6 9565 9483 9484 9567 9626 9627 6 9566 9484 9485 9568 9627 9628 7 9567 9485 9486 9569 9628 9629 9630 6 9568 9486 9487 9570 9630 9631 6 9569 9487 9488 9489 9571 9631 6 9570 9489 9572 9631 9632 9633 6 9571 9489 9490 9573 9633 9634 6 9572 9490 9491 9574 9634 9635 6 9573 9491 9492 9493 9575 9635 6 9574 9493 9576 9635 9636 9578 6 9575 9493 9494 9495 9577 9578 6 9576 9495 9496 9499 9500 9578 6 9577 9500 9579 9636 9575 9576 6 9578 9500 9501 9580 9636 9581 5 9579 9501 9502 9503 9581 6 9580 9503 9582 9636 9579 9637 6 9581 9503 9504 9505 9583 9637 6 9582 9505 9506 9584 9637 9638 6 9583 9506 9507 9585 9638 9633 6 9584 9507 9509 9586 9633 9632 6 9585 9509 9587 9632 9639 9629 6 9586 9509 9510 9521 9588 9629 6 9587 9521 9522 9589 9629 9628 6 9588 9522 9590 9628 9627 9640 6 9589 9522 9523 9591 9640 9641 6 9590 9523 9524 9525 9592 9641 6 9591 9525 9526 9593 9641 9642 7 9592 9526 9527 9529 9594 9642 9643 5 9593 9529 9595 9643 9644 6 9594 9529 9530 9596 9644 9645 6 9595 9530 9531 9597 9645 9646 6 9596 9531 9532 9598 9646 9647 6 9597 9532 9533 9534 9599 9647 5 9598 9534 9600 9647 9648 7 9599 9534 9535 9601 9648 9649 9650 5 9600 9535 9602 9650 9651 6 9601 9535 9536 9603 9651 9604 5 9602 9536 9537 9538 9604 6 9603 9538 9539 9605 9651 9602 6 9604 9539 9606 9651 9652 9653 6 9605 9539 9540 9607 9653 9613 6 9606 9540 9541 9542 9608 9613 6 9607 9542 9609 9613 9612 9611 6 9608 9542 9610 9547 9549 9611 6 9609 9542 9543 9544 9546 9547 6 9609 9549 9550 9551 9612 9608 5 9611 9551 9552 9613 9608 7 9612 9552 9614 9653 9606 9607 9608 6 9613 9552 9553 9554 9615 9653 6 9614 9554 9616 9653 9652 9654 6 9615 9554 9555 9556 9617 9654 6 9616 9556 9557 9618 9654 9655 6 9617 9557 9558 9619 9655 9656 6 9618 9558 9559 9620 9656 9657 6 9619 9559 9560 9621 9657 9658 6 9620 9560 9622 9658 9659 9660 6 9621 9560 9561 9562 9623 9660 6 9622 9562 9563 9564 9624 9660 7 9623 9564 9565 9625 9660 9661 9662 5 9624 9565 9626 9662 9663 7 9625 9565 9566 9627 9663 9664 9640 6 9626 9566 9567 9628 9589 9640 6 9627 9567 9568 9629 9588 9589 7 9628 9568 9630 9639 9586 9587 9588 5 9629 9568 9569 9631 9639 6 9630 9569 9570 9571 9632 9639 6 9631 9571 9633 9585 9586 9639 7 9632 9571 9572 9634 9638 9584 9585 6 9633 9572 9573 9635 9637 9638 6 9634 9573 9574 9575 9636 9637 6 9635 9575 9578 9579 9581 9637 7 9636 9581 9582 9583 9638 9635 9634 5 9637 9583 9584 9633 9634 5 9632 9586 9629 9630 9631 6 9627 9589 9590 9641 9664 9626 6 9640 9590 9591 9592 9642 9664 6 9641 9592 9593 9643 9664 9663 6 9642 9593 9594 9644 9663 9662 7 9643 9594 9595 9645 9662 9661 9665 7 9644 9595 9596 9646 9665 9659 9666 6 9645 9596 9597 9647 9666 9667 6 9646 9597 9598 9599 9648 9667 6 9647 9599 9600 9649 9667 9668 6 9648 9600 9650 9668 9656 9655 6 9649 9600 9601 9651 9655 9669 7 9650 9601 9602 9604 9605 9652 9669 6 9651 9605 9653 9615 9654 9669 6 9652 9605 9606 9613 9614 9615 6 9652 9615 9616 9617 9655 9669 7 9654 9617 9618 9656 9649 9650 9669 6 9655 9618 9619 9657 9668 9649 5 9656 9619 9620 9658 9668 6 9657 9620 9621 9659 9668 9666 6 9658 9621 9660 9665 9645 9666 7 9659 9621 9622 9623 9624 9661 9665 5 9660 9624 9662 9644 9665 6 9661 9624 9625 9663 9643 9644 6 9662 9625 9626 9664 9642 9643 5 9663 9626 9640 9641 9642 5 9661 9644 9645 9659 9660 6 9659 9645 9646 9667 9668 9658 5 9666 9646 9647 9648 9668 7 9667 9648 9649 9656 9657 9658 9666 5 9655 9650 9651 9652 9654 6 6653 6650 6651 9671 9691 9681 6 9670 6651 9672 9676 9680 9681 6 9671 6651 9673 9674 9675 9676 6 9672 6651 9674 6649 9727 6365 6 9672 9673 9675 9725 9726 9727 6 9672 9674 9676 9677 9678 9725 6 9672 9675 9677 9679 9680 9671 5 9676 9675 9678 5235 9679 7 9677 9675 5235 9734 4519 9725 9733 6 9677 5235 5236 9676 9680 9683 7 9676 9679 9671 9681 9682 4654 9683 6 9671 9680 9682 9691 9670 9685 5 9681 9680 4654 4655 9685 6 4654 9680 9679 5236 4652 9684 6 4652 9683 4650 422 5237 5236 6 9682 4655 9686 9687 9691 9681 6 9685 4655 9687 3169 9688 4656 6 9685 9686 3169 3170 9691 3172 7 3169 9686 4656 9689 3168 2843 9690 5 9688 4656 5380 430 9690 6 2843 9688 9689 430 2841 429 6 9685 9687 3172 6653 9670 9681 6 6475 6478 6474 9779 9774 9780 6 6460 6461 6465 6467 6377 6378 6 5862 5863 9695 9702 9703 9700 6 9694 5863 5864 9696 5719 9700 5 9695 5864 5865 5718 5719 6 5718 5865 5866 5867 9698 9699 6 9697 5867 9699 5695 5694 5868 5 9697 9698 5695 5696 5718 6 9695 5719 5720 9701 9702 9694 5 9700 5720 5721 5724 9702 6 9701 5724 6095 9703 9694 9700 6 9702 6095 6383 9694 5862 5861 6 6490 2252 415 2194 6488 6489 7 6488 2195 6487 6480 2196 9773 9778 5 2251 6491 3336 6492 3335 6 3335 6492 3334 6499 6493 6494 6 6502 6503 9709 2189 9711 9712 6 6502 9708 2189 6501 9710 2190 6 6501 9709 6500 2190 2191 2512 7 9708 6503 6512 9712 9715 9716 9717 5 9708 9711 2189 9713 9715 6 2189 9712 2187 2197 9714 9715 6 2197 9713 9715 2215 2216 9720 6 9714 9713 9712 9711 9716 2215 7 9715 9711 9717 9718 9719 2214 2215 6 9716 9711 6512 6513 6514 9718 5 9717 6514 6516 9719 9716 5 9718 6516 9716 2214 6522 6 9714 2216 2217 2200 2198 2197 6 6669 6775 9722 9723 6656 6658 5 9721 6775 9723 9724 9798 6 9721 9722 9724 6646 6656 6655 6 9723 9722 6646 6645 9799 9798 6 9675 9674 9726 9678 9733 9735 6 9725 9674 9727 9729 9735 9728 6 9726 9674 9673 6365 6366 9728 6 9727 6366 6368 6370 9729 9726 6 9728 6370 9730 9731 9735 9726 6 9729 6370 6371 6375 6467 9731 6 9730 6467 6466 9732 9735 9729 6 9731 6466 6468 7510 9733 9735 6 9732 7510 9734 9735 9678 9725 6 9733 7510 7508 4518 4519 9678 6 9732 9733 9731 9729 9726 9725 6 6041 6039 6038 6019 5872 5874 6 6132 6398 6392 6393 6115 9738 6 9737 6115 6116 6132 6131 6122 6 569 571 9740 9744 568 9743 6 9739 571 573 9741 9742 9743 6 9740 573 916 917 9742 918 6 9740 9741 918 9743 921 919 6 9740 9742 921 563 9744 9739 6 9743 563 564 567 568 9739 6 7205 7206 9746 7218 7217 7216 6 9745 7206 7207 7213 7216 7214 6 3491 3492 3496 3502 6706 6555 5 6706 3502 9749 3503 6710 5 6706 9748 6710 6707 6705 5 6682 5157 4667 6681 9761 5 3201 3470 3410 3200 3411 6 5932 5910 5915 5916 9755 5931 5 4915 4917 9754 4880 4879 7 9753 4917 4911 4880 9756 4904 9759 7 9752 5916 5931 5921 5920 5919 9758 6 4880 9754 9757 4895 4897 9759 5 4880 9756 4895 4884 4881 5 5919 9755 5918 5916 5917 6 9754 4904 4901 4898 4897 9756 6 4638 4912 4875 4872 4869 4868 7 6681 9750 4667 4668 9762 4560 9792 5 9761 4668 4546 4548 4560 5 8468 8469 9764 9765 8486 5 8468 9763 9765 7726 7962 7 9764 9763 8486 7714 7715 7723 7726 6 8023 8021 7738 7739 7740 7742 5 7723 7715 7716 7719 7721 6 427 7500 7502 9769 46 45 6 9768 7502 9770 9772 44 45 7 9769 7502 7503 9771 9772 9774 9780 7 2196 43 1 9772 9770 9773 9774 5 9771 1 9770 9769 44 6 2196 9771 9774 9705 9778 9779 6 9773 9771 9770 9779 9692 9780 6 7253 7256 7523 7520 7517 7516 6 2095 2083 2084 6093 3138 3131 5 6638 6639 6642 6787 6785 5 9705 9773 9779 6478 6480 5 9778 9773 9774 9692 6478 5 9692 9774 6474 9770 7503 6 3852 3129 26 25 1526 3130 6 6787 6642 6643 9783 6789 6170 5 9782 6643 6168 6169 6170 6 4396 4529 4395 4121 4119 4530 6 6637 6783 6779 6636 6635 6771 6 4118 3529 3531 9787 9789 4120 6 9786 3531 3533 9788 7174 9789 6 9787 3533 3535 7178 7175 7174 6 9787 7174 9786 4120 4122 7172 5 7670 7695 7696 7698 7669 6 7775 3145 4231 3413 3414 7776 6 4560 6675 6676 6677 6681 9761 6 3659 3660 4908 9794 4369 4371 5 9793 4908 4642 4370 4369 6 5543 5545 5700 5540 5541 5542 6 6177 6178 9797 9798 6181 9799 6 6782 6177 9796 9798 6776 6780 7 9797 9796 6776 9799 9724 9722 6775 6 9796 6181 6183 6645 9724 9798 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump.xyz000066400000000000000000015100211514310134000254500ustar00rootroot000000000000002 9800 0 -1.4167000000e+00 -1.2834000000e-07 1 -8.3333000000e-02 -1.2834000000e-07 2 1.0833000000e+00 -1.2834000000e-07 3 3.5833000000e+00 -1.2834000000e-07 4 3.5833000000e+00 2.0730000000e+00 5 -1.4167000000e+00 2.0730000000e+00 6 -1.3817000000e+00 -1.2834000000e-07 7 -1.3467000000e+00 -1.2834000000e-07 8 -1.3117000000e+00 -1.2834000000e-07 9 -1.2767000000e+00 -1.2834000000e-07 10 -1.2417000000e+00 -1.2834000000e-07 11 -1.2067000000e+00 -1.2834000000e-07 12 -1.1717000000e+00 -1.2834000000e-07 13 -1.1367000000e+00 -1.2834000000e-07 14 -1.1017000000e+00 -1.2834000000e-07 15 -1.0667000000e+00 -1.2834000000e-07 16 -1.0317000000e+00 -1.2834000000e-07 17 -9.9667000000e-01 -1.2834000000e-07 18 -9.6167000000e-01 -1.2834000000e-07 19 -9.2667000000e-01 -1.2834000000e-07 20 -8.9167000000e-01 -1.2834000000e-07 21 -8.5667000000e-01 -1.2834000000e-07 22 -8.2167000000e-01 -1.2834000000e-07 23 -7.8667000000e-01 -1.2834000000e-07 24 -7.5167000000e-01 -1.2834000000e-07 25 -7.1667000000e-01 -1.2834000000e-07 26 -6.8167000000e-01 -1.2834000000e-07 27 -6.4667000000e-01 -1.2834000000e-07 28 -6.1167000000e-01 -1.2834000000e-07 29 -5.7667000000e-01 -1.2834000000e-07 30 -5.4167000000e-01 -1.2834000000e-07 31 -5.0667000000e-01 -1.2834000000e-07 32 -4.7167000000e-01 -1.2834000000e-07 33 -4.3667000000e-01 -1.2834000000e-07 34 -4.0167000000e-01 -1.2834000000e-07 35 -3.6667000000e-01 -1.2834000000e-07 36 -3.3167000000e-01 -1.2834000000e-07 37 -2.9667000000e-01 -1.2834000000e-07 38 -2.6167000000e-01 -1.2834000000e-07 39 -2.2667000000e-01 -1.2834000000e-07 40 -1.9167000000e-01 -1.2834000000e-07 41 -1.5667000000e-01 -1.2834000000e-07 42 -1.3222000000e-01 -1.2834000000e-07 43 -1.0778000000e-01 -1.2834000000e-07 44 -4.8292000000e-02 7.9126000000e-04 45 -1.3298000000e-02 2.0746000000e-03 46 2.1603000000e-02 4.3415000000e-03 47 5.6371000000e-02 8.0227000000e-03 48 9.1037000000e-02 1.2827000000e-02 49 1.2568000000e-01 1.7993000000e-02 50 1.6037000000e-01 2.2756000000e-02 51 1.9515000000e-01 2.6690000000e-02 52 2.3000000000e-01 2.9943000000e-02 53 2.6489000000e-01 3.2721000000e-02 54 2.9981000000e-01 3.5192000000e-02 55 3.3475000000e-01 3.7348000000e-02 56 3.6970000000e-01 3.9131000000e-02 57 4.0467000000e-01 4.0488000000e-02 58 4.3966000000e-01 4.1403000000e-02 59 4.7466000000e-01 4.1896000000e-02 60 5.0967000000e-01 4.1985000000e-02 61 5.4467000000e-01 4.1675000000e-02 62 5.7966000000e-01 4.0951000000e-02 63 6.1464000000e-01 3.9794000000e-02 64 6.4961000000e-01 3.8196000000e-02 65 6.8455000000e-01 3.6199000000e-02 66 7.1948000000e-01 3.3862000000e-02 67 7.5438000000e-01 3.1234000000e-02 68 7.8926000000e-01 2.8218000000e-02 69 8.2407000000e-01 2.4615000000e-02 70 8.5880000000e-01 2.0220000000e-02 71 8.9346000000e-01 1.5141000000e-02 72 9.2810000000e-01 1.0080000000e-02 73 9.6281000000e-01 5.8049000000e-03 74 9.9766000000e-01 2.9386000000e-03 75 1.0262000000e+00 1.5138000000e-03 76 1.0547000000e+00 6.2324000000e-04 77 1.1183000000e+00 -1.2834000000e-07 78 1.1533000000e+00 -1.2834000000e-07 79 1.1883000000e+00 -1.2834000000e-07 80 1.2233000000e+00 -1.2834000000e-07 81 1.2583000000e+00 -1.2834000000e-07 82 1.2933000000e+00 -1.2834000000e-07 83 1.3283000000e+00 -1.2834000000e-07 84 1.3633000000e+00 -1.2834000000e-07 85 1.3983000000e+00 -1.2834000000e-07 86 1.4333000000e+00 -1.2834000000e-07 87 1.4683000000e+00 -1.2834000000e-07 88 1.5033000000e+00 -1.2834000000e-07 89 1.5383000000e+00 -1.2834000000e-07 90 1.5733000000e+00 -1.2834000000e-07 91 1.6083000000e+00 -1.2834000000e-07 92 1.6433000000e+00 -1.2834000000e-07 93 1.6783000000e+00 -1.2834000000e-07 94 1.7133000000e+00 -1.2834000000e-07 95 1.7483000000e+00 -1.2834000000e-07 96 1.7833000000e+00 -1.2834000000e-07 97 1.8183000000e+00 -1.2834000000e-07 98 1.8533000000e+00 -1.2834000000e-07 99 1.8883000000e+00 -1.2834000000e-07 100 1.9233000000e+00 -1.2834000000e-07 101 1.9583000000e+00 -1.2834000000e-07 102 1.9933000000e+00 -1.2834000000e-07 103 2.0283000000e+00 -1.2834000000e-07 104 2.0633000000e+00 -1.2834000000e-07 105 2.0983000000e+00 -1.2834000000e-07 106 2.1333000000e+00 -1.2834000000e-07 107 2.1683000000e+00 -1.2834000000e-07 108 2.2033000000e+00 -1.2834000000e-07 109 2.2383000000e+00 -1.2834000000e-07 110 2.2733000000e+00 -1.2834000000e-07 111 2.3083000000e+00 -1.2834000000e-07 112 2.3433000000e+00 -1.2834000000e-07 113 2.3783000000e+00 -1.2834000000e-07 114 2.4133000000e+00 -1.2834000000e-07 115 2.4483000000e+00 -1.2834000000e-07 116 2.4833000000e+00 -1.2834000000e-07 117 2.5183000000e+00 -1.2834000000e-07 118 2.5533000000e+00 -1.2834000000e-07 119 2.5883000000e+00 -1.2834000000e-07 120 2.6233000000e+00 -1.2834000000e-07 121 2.6583000000e+00 -1.2834000000e-07 122 2.6933000000e+00 -1.2834000000e-07 123 2.7283000000e+00 -1.2834000000e-07 124 2.7633000000e+00 -1.2834000000e-07 125 2.7983000000e+00 -1.2834000000e-07 126 2.8333000000e+00 -1.2834000000e-07 127 2.8683000000e+00 -1.2834000000e-07 128 2.9033000000e+00 -1.2834000000e-07 129 2.9383000000e+00 -1.2834000000e-07 130 2.9733000000e+00 -1.2834000000e-07 131 3.0083000000e+00 -1.2834000000e-07 132 3.0433000000e+00 -1.2834000000e-07 133 3.0783000000e+00 -1.2834000000e-07 134 3.1133000000e+00 -1.2834000000e-07 135 3.1483000000e+00 -1.2834000000e-07 136 3.1833000000e+00 -1.2834000000e-07 137 3.2183000000e+00 -1.2834000000e-07 138 3.2533000000e+00 -1.2834000000e-07 139 3.2883000000e+00 -1.2834000000e-07 140 3.3233000000e+00 -1.2834000000e-07 141 3.3583000000e+00 -1.2834000000e-07 142 3.3933000000e+00 -1.2834000000e-07 143 3.4283000000e+00 -1.2834000000e-07 144 3.4633000000e+00 -1.2834000000e-07 145 3.4983000000e+00 -1.2834000000e-07 146 3.5267000000e+00 -1.2834000000e-07 147 3.5550000000e+00 -1.2834000000e-07 148 3.5833000000e+00 3.5000000000e-02 149 3.5833000000e+00 7.0000000000e-02 150 3.5833000000e+00 1.0500000000e-01 151 3.5833000000e+00 1.4000000000e-01 152 3.5833000000e+00 1.7500000000e-01 153 3.5833000000e+00 2.1000000000e-01 154 3.5833000000e+00 2.4500000000e-01 155 3.5833000000e+00 2.8000000000e-01 156 3.5833000000e+00 3.1500000000e-01 157 3.5833000000e+00 3.5000000000e-01 158 3.5833000000e+00 3.8500000000e-01 159 3.5833000000e+00 4.2000000000e-01 160 3.5833000000e+00 4.5500000000e-01 161 3.5833000000e+00 4.9000000000e-01 162 3.5833000000e+00 5.2500000000e-01 163 3.5833000000e+00 5.6000000000e-01 164 3.5833000000e+00 5.9500000000e-01 165 3.5833000000e+00 6.3000000000e-01 166 3.5833000000e+00 6.6500000000e-01 167 3.5833000000e+00 7.0000000000e-01 168 3.5833000000e+00 7.3500000000e-01 169 3.5833000000e+00 7.7000000000e-01 170 3.5833000000e+00 8.0500000000e-01 171 3.5833000000e+00 8.4000000000e-01 172 3.5833000000e+00 8.7500000000e-01 173 3.5833000000e+00 9.1000000000e-01 174 3.5833000000e+00 9.4500000000e-01 175 3.5833000000e+00 9.8000000000e-01 176 3.5833000000e+00 1.0150000000e+00 177 3.5833000000e+00 1.0500000000e+00 178 3.5833000000e+00 1.0850000000e+00 179 3.5833000000e+00 1.1200000000e+00 180 3.5833000000e+00 1.1550000000e+00 181 3.5833000000e+00 1.1900000000e+00 182 3.5833000000e+00 1.2250000000e+00 183 3.5833000000e+00 1.2600000000e+00 184 3.5833000000e+00 1.2950000000e+00 185 3.5833000000e+00 1.3300000000e+00 186 3.5833000000e+00 1.3650000000e+00 187 3.5833000000e+00 1.4000000000e+00 188 3.5833000000e+00 1.4350000000e+00 189 3.5833000000e+00 1.4700000000e+00 190 3.5833000000e+00 1.5050000000e+00 191 3.5833000000e+00 1.5400000000e+00 192 3.5833000000e+00 1.5750000000e+00 193 3.5833000000e+00 1.6100000000e+00 194 3.5833000000e+00 1.6450000000e+00 195 3.5833000000e+00 1.6800000000e+00 196 3.5833000000e+00 1.7150000000e+00 197 3.5833000000e+00 1.7500000000e+00 198 3.5833000000e+00 1.7850000000e+00 199 3.5833000000e+00 1.8200000000e+00 200 3.5833000000e+00 1.8550000000e+00 201 3.5833000000e+00 1.8900000000e+00 202 3.5833000000e+00 1.9250000000e+00 203 3.5833000000e+00 1.9600000000e+00 204 3.5833000000e+00 1.9950000000e+00 205 3.5833000000e+00 2.0210000000e+00 206 3.5833000000e+00 2.0470000000e+00 207 3.5483000000e+00 2.0730000000e+00 208 3.5133000000e+00 2.0730000000e+00 209 3.4783000000e+00 2.0730000000e+00 210 3.4433000000e+00 2.0730000000e+00 211 3.4083000000e+00 2.0730000000e+00 212 3.3733000000e+00 2.0730000000e+00 213 3.3383000000e+00 2.0730000000e+00 214 3.3033000000e+00 2.0730000000e+00 215 3.2683000000e+00 2.0730000000e+00 216 3.2333000000e+00 2.0730000000e+00 217 3.1983000000e+00 2.0730000000e+00 218 3.1633000000e+00 2.0730000000e+00 219 3.1283000000e+00 2.0730000000e+00 220 3.0933000000e+00 2.0730000000e+00 221 3.0583000000e+00 2.0730000000e+00 222 3.0233000000e+00 2.0730000000e+00 223 2.9883000000e+00 2.0730000000e+00 224 2.9533000000e+00 2.0730000000e+00 225 2.9183000000e+00 2.0730000000e+00 226 2.8833000000e+00 2.0730000000e+00 227 2.8483000000e+00 2.0730000000e+00 228 2.8133000000e+00 2.0730000000e+00 229 2.7783000000e+00 2.0730000000e+00 230 2.7433000000e+00 2.0730000000e+00 231 2.7083000000e+00 2.0730000000e+00 232 2.6733000000e+00 2.0730000000e+00 233 2.6383000000e+00 2.0730000000e+00 234 2.6033000000e+00 2.0730000000e+00 235 2.5683000000e+00 2.0730000000e+00 236 2.5333000000e+00 2.0730000000e+00 237 2.4983000000e+00 2.0730000000e+00 238 2.4633000000e+00 2.0730000000e+00 239 2.4283000000e+00 2.0730000000e+00 240 2.3933000000e+00 2.0730000000e+00 241 2.3583000000e+00 2.0730000000e+00 242 2.3233000000e+00 2.0730000000e+00 243 2.2883000000e+00 2.0730000000e+00 244 2.2533000000e+00 2.0730000000e+00 245 2.2183000000e+00 2.0730000000e+00 246 2.1833000000e+00 2.0730000000e+00 247 2.1483000000e+00 2.0730000000e+00 248 2.1133000000e+00 2.0730000000e+00 249 2.0783000000e+00 2.0730000000e+00 250 2.0433000000e+00 2.0730000000e+00 251 2.0083000000e+00 2.0730000000e+00 252 1.9733000000e+00 2.0730000000e+00 253 1.9383000000e+00 2.0730000000e+00 254 1.9033000000e+00 2.0730000000e+00 255 1.8683000000e+00 2.0730000000e+00 256 1.8333000000e+00 2.0730000000e+00 257 1.7983000000e+00 2.0730000000e+00 258 1.7633000000e+00 2.0730000000e+00 259 1.7283000000e+00 2.0730000000e+00 260 1.6933000000e+00 2.0730000000e+00 261 1.6583000000e+00 2.0730000000e+00 262 1.6233000000e+00 2.0730000000e+00 263 1.5883000000e+00 2.0730000000e+00 264 1.5533000000e+00 2.0730000000e+00 265 1.5183000000e+00 2.0730000000e+00 266 1.4833000000e+00 2.0730000000e+00 267 1.4483000000e+00 2.0730000000e+00 268 1.4133000000e+00 2.0730000000e+00 269 1.3783000000e+00 2.0730000000e+00 270 1.3433000000e+00 2.0730000000e+00 271 1.3083000000e+00 2.0730000000e+00 272 1.2733000000e+00 2.0730000000e+00 273 1.2383000000e+00 2.0730000000e+00 274 1.2033000000e+00 2.0730000000e+00 275 1.1683000000e+00 2.0730000000e+00 276 1.1333000000e+00 2.0730000000e+00 277 1.0983000000e+00 2.0730000000e+00 278 1.0633000000e+00 2.0730000000e+00 279 1.0283000000e+00 2.0730000000e+00 280 9.9333000000e-01 2.0730000000e+00 281 9.5833000000e-01 2.0730000000e+00 282 9.2333000000e-01 2.0730000000e+00 283 8.8833000000e-01 2.0730000000e+00 284 8.5333000000e-01 2.0730000000e+00 285 8.1833000000e-01 2.0730000000e+00 286 7.8333000000e-01 2.0730000000e+00 287 7.4833000000e-01 2.0730000000e+00 288 7.1333000000e-01 2.0730000000e+00 289 6.7833000000e-01 2.0730000000e+00 290 6.4333000000e-01 2.0730000000e+00 291 6.0834000000e-01 2.0730000000e+00 292 5.7334000000e-01 2.0730000000e+00 293 5.3834000000e-01 2.0730000000e+00 294 5.0334000000e-01 2.0730000000e+00 295 4.6834000000e-01 2.0730000000e+00 296 4.3334000000e-01 2.0730000000e+00 297 3.9834000000e-01 2.0730000000e+00 298 3.6334000000e-01 2.0730000000e+00 299 3.2834000000e-01 2.0730000000e+00 300 2.9334000000e-01 2.0730000000e+00 301 2.5834000000e-01 2.0730000000e+00 302 2.2334000000e-01 2.0730000000e+00 303 1.8834000000e-01 2.0730000000e+00 304 1.5334000000e-01 2.0730000000e+00 305 1.1834000000e-01 2.0730000000e+00 306 8.3336000000e-02 2.0730000000e+00 307 4.8336000000e-02 2.0730000000e+00 308 1.3336000000e-02 2.0730000000e+00 309 -2.1664000000e-02 2.0730000000e+00 310 -5.6664000000e-02 2.0730000000e+00 311 -9.1664000000e-02 2.0730000000e+00 312 -1.2666000000e-01 2.0730000000e+00 313 -1.6166000000e-01 2.0730000000e+00 314 -1.9666000000e-01 2.0730000000e+00 315 -2.3166000000e-01 2.0730000000e+00 316 -2.6666000000e-01 2.0730000000e+00 317 -3.0166000000e-01 2.0730000000e+00 318 -3.3666000000e-01 2.0730000000e+00 319 -3.7166000000e-01 2.0730000000e+00 320 -4.0666000000e-01 2.0730000000e+00 321 -4.4166000000e-01 2.0730000000e+00 322 -4.7666000000e-01 2.0730000000e+00 323 -5.1166000000e-01 2.0730000000e+00 324 -5.4666000000e-01 2.0730000000e+00 325 -5.8166000000e-01 2.0730000000e+00 326 -6.1666000000e-01 2.0730000000e+00 327 -6.5166000000e-01 2.0730000000e+00 328 -6.8666000000e-01 2.0730000000e+00 329 -7.2166000000e-01 2.0730000000e+00 330 -7.5666000000e-01 2.0730000000e+00 331 -7.9166000000e-01 2.0730000000e+00 332 -8.2666000000e-01 2.0730000000e+00 333 -8.6166000000e-01 2.0730000000e+00 334 -8.9666000000e-01 2.0730000000e+00 335 -9.3166000000e-01 2.0730000000e+00 336 -9.6666000000e-01 2.0730000000e+00 337 -1.0017000000e+00 2.0730000000e+00 338 -1.0367000000e+00 2.0730000000e+00 339 -1.0717000000e+00 2.0730000000e+00 340 -1.1067000000e+00 2.0730000000e+00 341 -1.1417000000e+00 2.0730000000e+00 342 -1.1767000000e+00 2.0730000000e+00 343 -1.2117000000e+00 2.0730000000e+00 344 -1.2467000000e+00 2.0730000000e+00 345 -1.2817000000e+00 2.0730000000e+00 346 -1.3167000000e+00 2.0730000000e+00 347 -1.3517000000e+00 2.0730000000e+00 348 -1.3842000000e+00 2.0730000000e+00 349 -1.4167000000e+00 2.0380000000e+00 350 -1.4167000000e+00 2.0030000000e+00 351 -1.4167000000e+00 1.9680000000e+00 352 -1.4167000000e+00 1.9330000000e+00 353 -1.4167000000e+00 1.8980000000e+00 354 -1.4167000000e+00 1.8630000000e+00 355 -1.4167000000e+00 1.8280000000e+00 356 -1.4167000000e+00 1.7930000000e+00 357 -1.4167000000e+00 1.7580000000e+00 358 -1.4167000000e+00 1.7230000000e+00 359 -1.4167000000e+00 1.6880000000e+00 360 -1.4167000000e+00 1.6530000000e+00 361 -1.4167000000e+00 1.6180000000e+00 362 -1.4167000000e+00 1.5830000000e+00 363 -1.4167000000e+00 1.5480000000e+00 364 -1.4167000000e+00 1.5130000000e+00 365 -1.4167000000e+00 1.4780000000e+00 366 -1.4167000000e+00 1.4430000000e+00 367 -1.4167000000e+00 1.4080000000e+00 368 -1.4167000000e+00 1.3730000000e+00 369 -1.4167000000e+00 1.3380000000e+00 370 -1.4167000000e+00 1.3030000000e+00 371 -1.4167000000e+00 1.2680000000e+00 372 -1.4167000000e+00 1.2330000000e+00 373 -1.4167000000e+00 1.1980000000e+00 374 -1.4167000000e+00 1.1630000000e+00 375 -1.4167000000e+00 1.1280000000e+00 376 -1.4167000000e+00 1.0930000000e+00 377 -1.4167000000e+00 1.0580000000e+00 378 -1.4167000000e+00 1.0230000000e+00 379 -1.4167000000e+00 9.8800000000e-01 380 -1.4167000000e+00 9.5300000000e-01 381 -1.4167000000e+00 9.1800000000e-01 382 -1.4167000000e+00 8.8300000000e-01 383 -1.4167000000e+00 8.4800000000e-01 384 -1.4167000000e+00 8.1300000000e-01 385 -1.4167000000e+00 7.7800000000e-01 386 -1.4167000000e+00 7.4300000000e-01 387 -1.4167000000e+00 7.0800000000e-01 388 -1.4167000000e+00 6.7300000000e-01 389 -1.4167000000e+00 6.3800000000e-01 390 -1.4167000000e+00 6.0300000000e-01 391 -1.4167000000e+00 5.6800000000e-01 392 -1.4167000000e+00 5.3300000000e-01 393 -1.4167000000e+00 4.9800000000e-01 394 -1.4167000000e+00 4.6300000000e-01 395 -1.4167000000e+00 4.2800000000e-01 396 -1.4167000000e+00 3.9300000000e-01 397 -1.4167000000e+00 3.5800000000e-01 398 -1.4167000000e+00 3.2300000000e-01 399 -1.4167000000e+00 2.8800000000e-01 400 -1.4167000000e+00 2.5300000000e-01 401 -1.4167000000e+00 2.1800000000e-01 402 -1.4167000000e+00 1.8300000000e-01 403 -1.4167000000e+00 1.4800000000e-01 404 -1.4167000000e+00 1.1300000000e-01 405 -1.4167000000e+00 7.8000000000e-02 406 -1.4167000000e+00 5.2000000000e-02 407 -1.4167000000e+00 2.6000000000e-02 408 4.5682000000e-01 7.1432000000e-02 409 9.4888000000e-01 3.8131000000e-02 410 1.3947000000e-01 5.0119000000e-02 411 1.0493000000e-01 4.5357000000e-02 412 -1.3641000000e+00 2.8405000000e-02 413 -1.3965000000e+00 2.7631000000e-02 414 -8.7380000000e-01 3.0574000000e-02 415 -2.4670000000e-01 2.9431000000e-02 416 -2.7979000000e-01 2.9463000000e-02 417 -1.0834000000e+00 3.2532000000e-02 418 -1.1192000000e+00 3.3911000000e-02 419 -1.3862000000e+00 4.8053000000e-01 420 -1.3863000000e+00 5.1552000000e-01 421 1.7419000000e-01 5.4628000000e-02 422 2.0914000000e-01 5.8724000000e-02 423 -1.3863000000e+00 7.2549000000e-01 424 -1.3863000000e+00 6.9049000000e-01 425 -1.3863000000e+00 7.6049000000e-01 426 7.0500000000e-02 4.0750000000e-02 427 3.6054000000e-02 3.6682000000e-02 428 9.8256000000e-01 3.3813000000e-02 429 4.2160000000e-01 7.0588000000e-02 430 3.8721000000e-01 6.9159000000e-02 431 1.7809000000e+00 2.0427000000e+00 432 1.7459000000e+00 2.0427000000e+00 433 1.7109000000e+00 2.0427000000e+00 434 1.6759000000e+00 2.0427000000e+00 435 1.6409000000e+00 2.0427000000e+00 436 1.6059000000e+00 2.0427000000e+00 437 1.5709000000e+00 2.0427000000e+00 438 1.5359000000e+00 2.0427000000e+00 439 1.5008000000e+00 2.0427000000e+00 440 1.4658000000e+00 2.0427000000e+00 441 1.4308000000e+00 2.0427000000e+00 442 1.3958000000e+00 2.0427000000e+00 443 1.3608000000e+00 2.0427000000e+00 444 1.3258000000e+00 2.0427000000e+00 445 1.2908000000e+00 2.0427000000e+00 446 1.2558000000e+00 2.0427000000e+00 447 1.2208000000e+00 2.0427000000e+00 448 1.1858000000e+00 2.0427000000e+00 449 1.1508000000e+00 2.0427000000e+00 450 1.1158000000e+00 2.0427000000e+00 451 1.0808000000e+00 2.0427000000e+00 452 1.0458000000e+00 2.0427000000e+00 453 1.0108000000e+00 2.0427000000e+00 454 9.7585000000e-01 2.0427000000e+00 455 9.4085000000e-01 2.0427000000e+00 456 9.0585000000e-01 2.0427000000e+00 457 8.7085000000e-01 2.0427000000e+00 458 8.3585000000e-01 2.0427000000e+00 459 8.0085000000e-01 2.0427000000e+00 460 7.6584000000e-01 2.0427000000e+00 461 7.3084000000e-01 2.0427000000e+00 462 6.9584000000e-01 2.0427000000e+00 463 6.6084000000e-01 2.0427000000e+00 464 6.2584000000e-01 2.0427000000e+00 465 5.9084000000e-01 2.0427000000e+00 466 5.5584000000e-01 2.0427000000e+00 467 5.2084000000e-01 2.0427000000e+00 468 4.8584000000e-01 2.0427000000e+00 469 4.5084000000e-01 2.0427000000e+00 470 4.1584000000e-01 2.0427000000e+00 471 3.8084000000e-01 2.0427000000e+00 472 3.4584000000e-01 2.0427000000e+00 473 3.1084000000e-01 2.0427000000e+00 474 2.7584000000e-01 2.0427000000e+00 475 2.4084000000e-01 2.0427000000e+00 476 2.0584000000e-01 2.0427000000e+00 477 1.7084000000e-01 2.0427000000e+00 478 1.3584000000e-01 2.0427000000e+00 479 1.0084000000e-01 2.0427000000e+00 480 6.5839000000e-02 2.0427000000e+00 481 3.0838000000e-02 2.0427000000e+00 482 -4.1615000000e-03 2.0427000000e+00 483 -3.9161000000e-02 2.0427000000e+00 484 -7.4161000000e-02 2.0427000000e+00 485 -1.0916000000e-01 2.0427000000e+00 486 -1.4416000000e-01 2.0427000000e+00 487 -1.7916000000e-01 2.0427000000e+00 488 -2.1416000000e-01 2.0427000000e+00 489 -2.4916000000e-01 2.0427000000e+00 490 -2.8416000000e-01 2.0427000000e+00 491 -3.1916000000e-01 2.0427000000e+00 492 -3.5416000000e-01 2.0427000000e+00 493 -3.8916000000e-01 2.0427000000e+00 494 -4.2416000000e-01 2.0427000000e+00 495 -4.5916000000e-01 2.0427000000e+00 496 -4.9416000000e-01 2.0427000000e+00 497 -5.2916000000e-01 2.0427000000e+00 498 -5.6416000000e-01 2.0427000000e+00 499 -5.9916000000e-01 2.0427000000e+00 500 -6.3416000000e-01 2.0427000000e+00 501 -6.6916000000e-01 2.0427000000e+00 502 -7.0416000000e-01 2.0427000000e+00 503 -7.3917000000e-01 2.0427000000e+00 504 -7.7417000000e-01 2.0426000000e+00 505 -8.0918000000e-01 2.0426000000e+00 506 -8.4419000000e-01 2.0426000000e+00 507 -8.7920000000e-01 2.0425000000e+00 508 -9.1423000000e-01 2.0425000000e+00 509 -9.4927000000e-01 2.0424000000e+00 510 -9.8433000000e-01 2.0423000000e+00 511 -1.0194000000e+00 2.0422000000e+00 512 -1.0545000000e+00 2.0421000000e+00 513 -1.0897000000e+00 2.0419000000e+00 514 -1.1248000000e+00 2.0418000000e+00 515 -1.1601000000e+00 2.0417000000e+00 516 -1.1953000000e+00 2.0416000000e+00 517 -1.2305000000e+00 2.0417000000e+00 518 -1.2658000000e+00 2.0418000000e+00 519 -1.3012000000e+00 2.0421000000e+00 520 -1.3376000000e+00 2.0429000000e+00 521 -1.3790000000e+00 2.0461000000e+00 522 -1.3897000000e+00 2.0106000000e+00 523 -1.3974000000e+00 1.9836000000e+00 524 -1.3917000000e+00 1.9552000000e+00 525 -1.3886000000e+00 1.9206000000e+00 526 -1.3878000000e+00 1.8853000000e+00 527 -1.3868000000e+00 1.8503000000e+00 528 -1.3858000000e+00 1.8151000000e+00 529 -1.3850000000e+00 1.7797000000e+00 530 -1.3844000000e+00 1.7441000000e+00 531 -1.3841000000e+00 1.7084000000e+00 532 -1.3841000000e+00 1.6728000000e+00 533 -1.3843000000e+00 1.6372000000e+00 534 -1.3845000000e+00 1.6018000000e+00 535 -1.3848000000e+00 1.5665000000e+00 536 -1.3851000000e+00 1.5313000000e+00 537 -1.3853000000e+00 1.4961000000e+00 538 -1.3855000000e+00 1.4610000000e+00 539 -1.3857000000e+00 1.4259000000e+00 540 -1.3858000000e+00 1.3908000000e+00 541 -1.3859000000e+00 1.3557000000e+00 542 -1.3860000000e+00 1.3207000000e+00 543 -1.3861000000e+00 1.2856000000e+00 544 -1.3862000000e+00 1.2506000000e+00 545 -1.3862000000e+00 1.2156000000e+00 546 -1.3863000000e+00 1.1806000000e+00 547 -1.3863000000e+00 1.1455000000e+00 548 -1.3559000000e+00 1.1631000000e+00 549 -1.3559000000e+00 1.1281000000e+00 550 -1.3863000000e+00 1.1105000000e+00 551 -1.3863000000e+00 1.0755000000e+00 552 -1.3863000000e+00 1.0405000000e+00 553 -1.3864000000e+00 1.0055000000e+00 554 -1.3560000000e+00 1.0230000000e+00 555 -1.3560000000e+00 9.8803000000e-01 556 -1.3864000000e+00 9.7051000000e-01 557 -1.3257000000e+00 1.0055000000e+00 558 -1.3257000000e+00 9.7054000000e-01 559 -1.2954000000e+00 9.8806000000e-01 560 -1.2954000000e+00 9.5304000000e-01 561 -1.3257000000e+00 9.3553000000e-01 562 -1.2954000000e+00 9.1803000000e-01 563 -1.3257000000e+00 9.0051000000e-01 564 -1.3560000000e+00 9.1801000000e-01 565 -1.3560000000e+00 9.5302000000e-01 566 -1.3864000000e+00 9.3551000000e-01 567 -1.3864000000e+00 9.0050000000e-01 568 -1.3863000000e+00 8.6550000000e-01 569 -1.3863000000e+00 8.3050000000e-01 570 -1.3863000000e+00 7.9549000000e-01 571 -1.3560000000e+00 8.1299000000e-01 572 -1.3560000000e+00 7.7799000000e-01 573 -1.3257000000e+00 7.9548000000e-01 574 -1.3257000000e+00 7.6047000000e-01 575 -1.3560000000e+00 7.4298000000e-01 576 -1.3256000000e+00 7.2546000000e-01 577 -1.3560000000e+00 7.0798000000e-01 578 -1.3560000000e+00 6.7298000000e-01 579 -1.3863000000e+00 6.5549000000e-01 580 -1.3559000000e+00 6.3798000000e-01 581 -1.3256000000e+00 6.5547000000e-01 582 -1.3256000000e+00 6.2048000000e-01 583 -1.3559000000e+00 6.0299000000e-01 584 -1.3863000000e+00 6.2049000000e-01 585 -1.3863000000e+00 5.8550000000e-01 586 -1.3863000000e+00 5.5051000000e-01 587 -1.3559000000e+00 5.3302000000e-01 588 -1.3558000000e+00 4.9804000000e-01 589 -1.3559000000e+00 5.6801000000e-01 590 -1.3255000000e+00 5.5052000000e-01 591 -1.3255000000e+00 5.1555000000e-01 592 -1.3254000000e+00 4.8058000000e-01 593 -1.3558000000e+00 4.6307000000e-01 594 -1.3862000000e+00 4.4554000000e-01 595 -1.3558000000e+00 4.2809000000e-01 596 -1.3862000000e+00 4.1055000000e-01 597 -1.3253000000e+00 4.4562000000e-01 598 -1.2949000000e+00 4.6314000000e-01 599 -1.2950000000e+00 4.9809000000e-01 600 -1.2646000000e+00 4.8064000000e-01 601 -1.2647000000e+00 5.1557000000e-01 602 -1.2342000000e+00 4.9811000000e-01 603 -1.2341000000e+00 4.6321000000e-01 604 -1.2645000000e+00 4.4572000000e-01 605 -1.2949000000e+00 4.2820000000e-01 606 -1.3253000000e+00 4.1067000000e-01 607 -1.2643000000e+00 4.1081000000e-01 608 -1.2340000000e+00 4.2832000000e-01 609 -1.2338000000e+00 3.9345000000e-01 610 -1.2642000000e+00 3.7590000000e-01 611 -1.2336000000e+00 3.5859000000e-01 612 -1.2639000000e+00 3.4098000000e-01 613 -1.2946000000e+00 3.5832000000e-01 614 -1.2947000000e+00 3.9327000000e-01 615 -1.2943000000e+00 3.2336000000e-01 616 -1.3250000000e+00 3.4074000000e-01 617 -1.3248000000e+00 3.0576000000e-01 618 -1.3555000000e+00 3.2316000000e-01 619 -1.3556000000e+00 3.5814000000e-01 620 -1.3251000000e+00 3.7571000000e-01 621 -1.3557000000e+00 3.9312000000e-01 622 -1.3862000000e+00 3.7556000000e-01 623 -1.3861000000e+00 3.4057000000e-01 624 -1.3861000000e+00 3.0558000000e-01 625 -1.3554000000e+00 2.8817000000e-01 626 -1.3860000000e+00 2.7059000000e-01 627 -1.3552000000e+00 2.5319000000e-01 628 -1.3859000000e+00 2.3561000000e-01 629 -1.3551000000e+00 2.1824000000e-01 630 -1.3858000000e+00 2.0066000000e-01 631 -1.3857000000e+00 1.6576000000e-01 632 -1.3549000000e+00 1.8335000000e-01 633 -1.3546000000e+00 1.4862000000e-01 634 -1.3239000000e+00 1.6601000000e-01 635 -1.3241000000e+00 2.0084000000e-01 636 -1.2931000000e+00 1.8334000000e-01 637 -1.2928000000e+00 1.4847000000e-01 638 -1.2620000000e+00 1.6564000000e-01 639 -1.2616000000e+00 1.3054000000e-01 640 -1.2926000000e+00 1.1386000000e-01 641 -1.3235000000e+00 1.3144000000e-01 642 -1.3233000000e+00 9.7488000000e-02 643 -1.2928000000e+00 7.9829000000e-02 644 -1.3233000000e+00 6.4800000000e-02 645 -1.3531000000e+00 8.0789000000e-02 646 -1.3500000000e+00 5.2798000000e-02 647 -1.3265000000e+00 3.0618000000e-02 648 -1.3831000000e+00 5.9382000000e-02 649 -1.3849000000e+00 9.6055000000e-02 650 -1.3541000000e+00 1.1422000000e-01 651 3.5529000000e+00 5.7694000000e-01 652 3.5528000000e+00 6.1203000000e-01 653 3.5528000000e+00 6.4713000000e-01 654 3.5528000000e+00 6.8222000000e-01 655 3.5528000000e+00 7.1729000000e-01 656 3.5528000000e+00 7.5234000000e-01 657 3.5529000000e+00 7.8739000000e-01 658 3.5529000000e+00 8.2242000000e-01 659 3.5529000000e+00 8.5745000000e-01 660 3.5530000000e+00 8.9247000000e-01 661 3.5530000000e+00 9.2748000000e-01 662 3.5530000000e+00 9.6250000000e-01 663 3.5530000000e+00 9.9750000000e-01 664 3.5530000000e+00 1.0325000000e+00 665 3.5530000000e+00 1.0675000000e+00 666 3.5530000000e+00 1.1025000000e+00 667 3.5530000000e+00 1.1375000000e+00 668 3.5530000000e+00 1.1725000000e+00 669 3.5530000000e+00 1.2075000000e+00 670 3.5530000000e+00 1.2425000000e+00 671 3.5530000000e+00 1.2775000000e+00 672 3.5530000000e+00 1.3125000000e+00 673 3.5530000000e+00 1.3475000000e+00 674 3.5530000000e+00 1.3825000000e+00 675 3.5529000000e+00 1.4176000000e+00 676 3.5529000000e+00 1.4526000000e+00 677 3.5529000000e+00 1.4876000000e+00 678 3.5528000000e+00 1.5227000000e+00 679 3.5528000000e+00 1.5577000000e+00 680 3.5527000000e+00 1.5928000000e+00 681 3.5526000000e+00 1.6279000000e+00 682 3.5525000000e+00 1.6630000000e+00 683 3.5524000000e+00 1.6981000000e+00 684 3.5522000000e+00 1.7333000000e+00 685 3.5520000000e+00 1.7685000000e+00 686 3.5518000000e+00 1.8037000000e+00 687 3.5516000000e+00 1.8390000000e+00 688 3.5513000000e+00 1.8744000000e+00 689 3.5511000000e+00 1.9099000000e+00 690 3.5510000000e+00 1.9454000000e+00 691 3.5513000000e+00 1.9814000000e+00 692 3.5539000000e+00 2.0202000000e+00 693 3.5487000000e+00 2.0544000000e+00 694 3.5097000000e+00 2.0403000000e+00 695 3.4681000000e+00 2.0428000000e+00 696 3.4325000000e+00 2.0417000000e+00 697 3.3969000000e+00 2.0409000000e+00 698 3.3612000000e+00 2.0404000000e+00 699 3.3256000000e+00 2.0399000000e+00 700 3.2900000000e+00 2.0396000000e+00 701 3.2543000000e+00 2.0393000000e+00 702 3.2186000000e+00 2.0393000000e+00 703 3.1830000000e+00 2.0396000000e+00 704 3.1475000000e+00 2.0401000000e+00 705 3.1123000000e+00 2.0406000000e+00 706 3.0773000000e+00 2.0409000000e+00 707 3.0422000000e+00 2.0411000000e+00 708 3.0071000000e+00 2.0412000000e+00 709 2.9720000000e+00 2.0413000000e+00 710 2.9369000000e+00 2.0414000000e+00 711 2.9017000000e+00 2.0415000000e+00 712 2.8666000000e+00 2.0416000000e+00 713 2.8315000000e+00 2.0417000000e+00 714 2.7963000000e+00 2.0418000000e+00 715 2.7612000000e+00 2.0420000000e+00 716 2.7261000000e+00 2.0421000000e+00 717 2.6911000000e+00 2.0422000000e+00 718 2.6561000000e+00 2.0424000000e+00 719 2.6210000000e+00 2.0425000000e+00 720 2.5860000000e+00 2.0425000000e+00 721 2.5510000000e+00 2.0426000000e+00 722 2.5160000000e+00 2.0426000000e+00 723 2.4810000000e+00 2.0427000000e+00 724 2.4460000000e+00 2.0427000000e+00 725 2.4110000000e+00 2.0427000000e+00 726 2.3761000000e+00 2.0428000000e+00 727 2.3411000000e+00 2.0428000000e+00 728 2.3061000000e+00 2.0427000000e+00 729 2.2711000000e+00 2.0427000000e+00 730 2.2361000000e+00 2.0427000000e+00 731 2.2011000000e+00 2.0427000000e+00 732 2.1661000000e+00 2.0426000000e+00 733 2.1311000000e+00 2.0426000000e+00 734 2.0960000000e+00 2.0426000000e+00 735 2.0610000000e+00 2.0426000000e+00 736 2.0260000000e+00 2.0426000000e+00 737 1.9910000000e+00 2.0426000000e+00 738 1.9559000000e+00 2.0426000000e+00 739 1.9209000000e+00 2.0426000000e+00 740 1.8859000000e+00 2.0427000000e+00 741 1.8509000000e+00 2.0427000000e+00 742 1.8159000000e+00 2.0427000000e+00 743 1.7985000000e+00 2.0123000000e+00 744 1.7635000000e+00 2.0123000000e+00 745 1.7284000000e+00 2.0123000000e+00 746 1.6934000000e+00 2.0123000000e+00 747 1.6584000000e+00 2.0123000000e+00 748 1.6234000000e+00 2.0123000000e+00 749 1.5884000000e+00 2.0123000000e+00 750 1.5534000000e+00 2.0123000000e+00 751 1.5184000000e+00 2.0123000000e+00 752 1.4834000000e+00 2.0123000000e+00 753 1.4483000000e+00 2.0123000000e+00 754 1.4133000000e+00 2.0123000000e+00 755 1.3783000000e+00 2.0123000000e+00 756 1.3433000000e+00 2.0123000000e+00 757 1.3083000000e+00 2.0123000000e+00 758 1.2733000000e+00 2.0123000000e+00 759 1.2383000000e+00 2.0123000000e+00 760 1.2033000000e+00 2.0123000000e+00 761 1.1683000000e+00 2.0123000000e+00 762 1.1333000000e+00 2.0123000000e+00 763 1.0983000000e+00 2.0123000000e+00 764 1.0634000000e+00 2.0123000000e+00 765 1.0284000000e+00 2.0123000000e+00 766 9.9336000000e-01 2.0123000000e+00 767 9.5836000000e-01 2.0123000000e+00 768 9.2336000000e-01 2.0123000000e+00 769 8.8836000000e-01 2.0123000000e+00 770 8.5336000000e-01 2.0123000000e+00 771 8.1836000000e-01 2.0124000000e+00 772 7.8336000000e-01 2.0124000000e+00 773 7.4835000000e-01 2.0124000000e+00 774 7.1335000000e-01 2.0124000000e+00 775 6.7835000000e-01 2.0124000000e+00 776 6.4335000000e-01 2.0124000000e+00 777 6.0835000000e-01 2.0124000000e+00 778 5.7335000000e-01 2.0124000000e+00 779 5.3835000000e-01 2.0124000000e+00 780 5.0335000000e-01 2.0124000000e+00 781 4.6835000000e-01 2.0124000000e+00 782 4.3335000000e-01 2.0124000000e+00 783 3.9835000000e-01 2.0124000000e+00 784 3.6335000000e-01 2.0124000000e+00 785 3.2835000000e-01 2.0124000000e+00 786 2.9335000000e-01 2.0124000000e+00 787 2.5835000000e-01 2.0124000000e+00 788 2.2335000000e-01 2.0124000000e+00 789 1.8834000000e-01 2.0124000000e+00 790 1.5334000000e-01 2.0124000000e+00 791 1.1834000000e-01 2.0124000000e+00 792 8.3342000000e-02 2.0124000000e+00 793 4.8341000000e-02 2.0124000000e+00 794 1.3341000000e-02 2.0124000000e+00 795 -2.1659000000e-02 2.0124000000e+00 796 -5.6659000000e-02 2.0124000000e+00 797 -9.1659000000e-02 2.0124000000e+00 798 -1.2666000000e-01 2.0124000000e+00 799 -1.6166000000e-01 2.0124000000e+00 800 -1.9666000000e-01 2.0124000000e+00 801 -2.3166000000e-01 2.0124000000e+00 802 -2.6666000000e-01 2.0124000000e+00 803 -3.0166000000e-01 2.0124000000e+00 804 -3.3666000000e-01 2.0124000000e+00 805 -3.7165000000e-01 2.0124000000e+00 806 -4.0665000000e-01 2.0124000000e+00 807 -4.4165000000e-01 2.0124000000e+00 808 -4.7665000000e-01 2.0124000000e+00 809 -5.1165000000e-01 2.0124000000e+00 810 -5.4665000000e-01 2.0124000000e+00 811 -5.8166000000e-01 2.0124000000e+00 812 -6.1666000000e-01 2.0124000000e+00 813 -6.5166000000e-01 2.0124000000e+00 814 -6.8666000000e-01 2.0124000000e+00 815 -7.2167000000e-01 2.0123000000e+00 816 -7.5667000000e-01 2.0123000000e+00 817 -7.9168000000e-01 2.0123000000e+00 818 -8.2670000000e-01 2.0122000000e+00 819 -8.6172000000e-01 2.0121000000e+00 820 -8.9676000000e-01 2.0120000000e+00 821 -9.3183000000e-01 2.0119000000e+00 822 -9.6692000000e-01 2.0117000000e+00 823 -1.0021000000e+00 2.0115000000e+00 824 -1.0372000000e+00 2.0112000000e+00 825 -1.0725000000e+00 2.0110000000e+00 826 -1.1078000000e+00 2.0107000000e+00 827 -1.1432000000e+00 2.0104000000e+00 828 -1.1787000000e+00 2.0102000000e+00 829 -1.2142000000e+00 2.0102000000e+00 830 -1.2497000000e+00 2.0104000000e+00 831 -1.2850000000e+00 2.0107000000e+00 832 -1.3205000000e+00 2.0112000000e+00 833 -1.3563000000e+00 2.0119000000e+00 834 -1.3721000000e+00 1.9810000000e+00 835 -1.3586000000e+00 1.9451000000e+00 836 -1.3601000000e+00 1.9070000000e+00 837 -1.3581000000e+00 1.8727000000e+00 838 -1.3558000000e+00 1.8377000000e+00 839 -1.3539000000e+00 1.8020000000e+00 840 -1.3526000000e+00 1.7658000000e+00 841 -1.3516000000e+00 1.7295000000e+00 842 -1.3513000000e+00 1.6931000000e+00 843 -1.3515000000e+00 1.6568000000e+00 844 -1.3521000000e+00 1.6209000000e+00 845 -1.3527000000e+00 1.5852000000e+00 846 -1.3533000000e+00 1.5498000000e+00 847 -1.3537000000e+00 1.5144000000e+00 848 -1.3541000000e+00 1.4791000000e+00 849 -1.3545000000e+00 1.4438000000e+00 850 -1.3548000000e+00 1.4086000000e+00 851 -1.3236000000e+00 1.4266000000e+00 852 -1.3241000000e+00 1.3913000000e+00 853 -1.3551000000e+00 1.3735000000e+00 854 -1.3244000000e+00 1.3561000000e+00 855 -1.3553000000e+00 1.3384000000e+00 856 -1.3554000000e+00 1.3033000000e+00 857 -1.3556000000e+00 1.2682000000e+00 858 -1.3557000000e+00 1.2332000000e+00 859 -1.3558000000e+00 1.1981000000e+00 860 -1.3254000000e+00 1.1807000000e+00 861 -1.3255000000e+00 1.1456000000e+00 862 -1.3256000000e+00 1.1106000000e+00 863 -1.3560000000e+00 1.0931000000e+00 864 -1.3560000000e+00 1.0580000000e+00 865 -1.3257000000e+00 1.0406000000e+00 866 -1.2954000000e+00 1.0231000000e+00 867 -1.2651000000e+00 1.0056000000e+00 868 -1.2651000000e+00 9.7057000000e-01 869 -1.2348000000e+00 9.8809000000e-01 870 -1.2348000000e+00 9.5306000000e-01 871 -1.2045000000e+00 9.7059000000e-01 872 -1.2045000000e+00 9.3555000000e-01 873 -1.2348000000e+00 9.1803000000e-01 874 -1.2044000000e+00 9.0051000000e-01 875 -1.2347000000e+00 8.8300000000e-01 876 -1.2044000000e+00 8.6547000000e-01 877 -1.2347000000e+00 8.4797000000e-01 878 -1.2044000000e+00 8.3042000000e-01 879 -1.1740000000e+00 8.4791000000e-01 880 -1.1740000000e+00 8.1285000000e-01 881 -1.2043000000e+00 7.9537000000e-01 882 -1.2347000000e+00 8.1293000000e-01 883 -1.2346000000e+00 7.7790000000e-01 884 -1.1437000000e+00 8.3033000000e-01 885 -1.1436000000e+00 7.9524000000e-01 886 -1.1437000000e+00 8.6541000000e-01 887 -1.1134000000e+00 8.4782000000e-01 888 -1.1133000000e+00 8.1272000000e-01 889 -1.1132000000e+00 7.7760000000e-01 890 -1.1435000000e+00 7.6015000000e-01 891 -1.1739000000e+00 7.7778000000e-01 892 -1.2042000000e+00 7.6032000000e-01 893 -1.1738000000e+00 7.4272000000e-01 894 -1.1434000000e+00 7.2506000000e-01 895 -1.1738000000e+00 7.0767000000e-01 896 -1.2042000000e+00 7.2529000000e-01 897 -1.1434000000e+00 6.9000000000e-01 898 -1.1130000000e+00 7.0734000000e-01 899 -1.1130000000e+00 6.7225000000e-01 900 -1.1433000000e+00 6.5499000000e-01 901 -1.0825000000e+00 6.8950000000e-01 902 -1.0826000000e+00 6.5437000000e-01 903 -1.0519000000e+00 6.7141000000e-01 904 -1.0523000000e+00 6.3625000000e-01 905 -1.0828000000e+00 6.1952000000e-01 906 -1.1130000000e+00 6.3728000000e-01 907 -1.1433000000e+00 6.2006000000e-01 908 -1.1737000000e+00 6.3767000000e-01 909 -1.1737000000e+00 6.7265000000e-01 910 -1.2041000000e+00 6.9026000000e-01 911 -1.2345000000e+00 7.0785000000e-01 912 -1.2346000000e+00 7.4287000000e-01 913 -1.2650000000e+00 7.6042000000e-01 914 -1.2649000000e+00 7.2541000000e-01 915 -1.2953000000e+00 7.4294000000e-01 916 -1.2953000000e+00 7.7796000000e-01 917 -1.2650000000e+00 7.9544000000e-01 918 -1.2650000000e+00 8.3047000000e-01 919 -1.2651000000e+00 8.6549000000e-01 920 -1.2651000000e+00 9.0052000000e-01 921 -1.2954000000e+00 8.8301000000e-01 922 -1.2651000000e+00 9.3554000000e-01 923 3.5530000000e+00 2.6265000000e-01 924 3.5532000000e+00 2.9775000000e-01 925 3.5534000000e+00 3.3273000000e-01 926 3.5536000000e+00 3.6760000000e-01 927 3.5536000000e+00 4.0239000000e-01 928 3.5536000000e+00 4.3717000000e-01 929 3.5534000000e+00 4.7199000000e-01 930 3.5532000000e+00 5.0689000000e-01 931 3.5530000000e+00 5.4188000000e-01 932 3.5225000000e+00 5.5875000000e-01 933 3.5223000000e+00 5.9394000000e-01 934 3.5222000000e+00 6.2915000000e-01 935 3.5222000000e+00 6.6435000000e-01 936 3.5222000000e+00 6.9951000000e-01 937 3.5223000000e+00 7.3464000000e-01 938 3.5223000000e+00 7.6973000000e-01 939 3.5224000000e+00 8.0481000000e-01 940 3.5225000000e+00 8.3987000000e-01 941 3.5225000000e+00 8.7492000000e-01 942 3.5226000000e+00 9.0995000000e-01 943 3.5226000000e+00 9.4498000000e-01 944 3.5227000000e+00 9.8000000000e-01 945 3.5227000000e+00 1.0150000000e+00 946 3.5227000000e+00 1.0500000000e+00 947 3.5227000000e+00 1.0850000000e+00 948 3.5227000000e+00 1.1200000000e+00 949 3.5227000000e+00 1.1550000000e+00 950 3.5227000000e+00 1.1900000000e+00 951 3.5227000000e+00 1.2250000000e+00 952 3.5227000000e+00 1.2600000000e+00 953 3.5227000000e+00 1.2950000000e+00 954 3.5226000000e+00 1.3301000000e+00 955 3.5226000000e+00 1.3651000000e+00 956 3.5226000000e+00 1.4001000000e+00 957 3.5225000000e+00 1.4352000000e+00 958 3.5224000000e+00 1.4702000000e+00 959 3.5224000000e+00 1.5053000000e+00 960 3.5223000000e+00 1.5404000000e+00 961 3.5221000000e+00 1.5755000000e+00 962 3.5220000000e+00 1.6107000000e+00 963 3.5218000000e+00 1.6458000000e+00 964 3.5216000000e+00 1.6811000000e+00 965 3.5213000000e+00 1.7164000000e+00 966 3.5209000000e+00 1.7517000000e+00 967 3.5205000000e+00 1.7872000000e+00 968 3.5201000000e+00 1.8228000000e+00 969 3.5196000000e+00 1.8584000000e+00 970 3.5191000000e+00 1.8942000000e+00 971 3.5185000000e+00 1.9302000000e+00 972 3.5182000000e+00 1.9662000000e+00 973 3.5178000000e+00 2.0020000000e+00 974 3.4877000000e+00 2.0168000000e+00 975 3.4572000000e+00 2.0119000000e+00 976 3.4212000000e+00 2.0089000000e+00 977 3.3845000000e+00 2.0082000000e+00 978 3.3485000000e+00 2.0073000000e+00 979 3.3123000000e+00 2.0065000000e+00 980 3.2761000000e+00 2.0058000000e+00 981 3.2396000000e+00 2.0053000000e+00 982 3.2030000000e+00 2.0056000000e+00 983 3.1669000000e+00 2.0067000000e+00 984 3.1314000000e+00 2.0079000000e+00 985 3.0962000000e+00 2.0087000000e+00 986 3.0612000000e+00 2.0091000000e+00 987 3.0260000000e+00 2.0093000000e+00 988 2.9908000000e+00 2.0095000000e+00 989 2.9556000000e+00 2.0097000000e+00 990 2.9203000000e+00 2.0098000000e+00 991 2.8850000000e+00 2.0100000000e+00 992 2.8497000000e+00 2.0102000000e+00 993 2.8145000000e+00 2.0105000000e+00 994 2.7792000000e+00 2.0108000000e+00 995 2.7440000000e+00 2.0111000000e+00 996 2.7089000000e+00 2.0114000000e+00 997 2.6738000000e+00 2.0116000000e+00 998 2.6388000000e+00 2.0118000000e+00 999 2.6038000000e+00 2.0120000000e+00 1000 2.5688000000e+00 2.0121000000e+00 1001 2.5337000000e+00 2.0122000000e+00 1002 2.4987000000e+00 2.0123000000e+00 1003 2.4637000000e+00 2.0124000000e+00 1004 2.4287000000e+00 2.0124000000e+00 1005 2.3938000000e+00 2.0125000000e+00 1006 2.3588000000e+00 2.0125000000e+00 1007 2.3239000000e+00 2.0125000000e+00 1008 2.2889000000e+00 2.0125000000e+00 1009 2.2539000000e+00 2.0124000000e+00 1010 2.2189000000e+00 2.0124000000e+00 1011 2.1839000000e+00 2.0123000000e+00 1012 2.1488000000e+00 2.0123000000e+00 1013 2.1138000000e+00 2.0122000000e+00 1014 2.1316000000e+00 1.9818000000e+00 1015 2.0965000000e+00 1.9818000000e+00 1016 2.0787000000e+00 2.0122000000e+00 1017 2.0437000000e+00 2.0122000000e+00 1018 2.0086000000e+00 2.0122000000e+00 1019 1.9736000000e+00 2.0123000000e+00 1020 1.9385000000e+00 2.0123000000e+00 1021 1.9035000000e+00 2.0123000000e+00 1022 1.8685000000e+00 2.0123000000e+00 1023 1.8335000000e+00 2.0123000000e+00 1024 1.8161000000e+00 1.9820000000e+00 1025 1.7810000000e+00 1.9820000000e+00 1026 1.7460000000e+00 1.9820000000e+00 1027 1.7110000000e+00 1.9820000000e+00 1028 1.6760000000e+00 1.9820000000e+00 1029 1.6409000000e+00 1.9820000000e+00 1030 1.6059000000e+00 1.9820000000e+00 1031 1.5709000000e+00 1.9820000000e+00 1032 1.5359000000e+00 1.9820000000e+00 1033 1.5009000000e+00 1.9820000000e+00 1034 1.4659000000e+00 1.9820000000e+00 1035 1.4309000000e+00 1.9820000000e+00 1036 1.3958000000e+00 1.9820000000e+00 1037 1.3608000000e+00 1.9820000000e+00 1038 1.3258000000e+00 1.9820000000e+00 1039 1.2908000000e+00 1.9820000000e+00 1040 1.2558000000e+00 1.9820000000e+00 1041 1.2208000000e+00 1.9820000000e+00 1042 1.1858000000e+00 1.9820000000e+00 1043 1.1508000000e+00 1.9820000000e+00 1044 1.1159000000e+00 1.9820000000e+00 1045 1.0809000000e+00 1.9820000000e+00 1046 1.0459000000e+00 1.9820000000e+00 1047 1.0109000000e+00 1.9820000000e+00 1048 9.7587000000e-01 1.9820000000e+00 1049 9.4087000000e-01 1.9820000000e+00 1050 9.0587000000e-01 1.9820000000e+00 1051 8.7087000000e-01 1.9820000000e+00 1052 8.3587000000e-01 1.9820000000e+00 1053 8.0087000000e-01 1.9820000000e+00 1054 7.6587000000e-01 1.9820000000e+00 1055 7.3087000000e-01 1.9820000000e+00 1056 6.9586000000e-01 1.9820000000e+00 1057 6.6086000000e-01 1.9820000000e+00 1058 6.2586000000e-01 1.9820000000e+00 1059 5.9086000000e-01 1.9821000000e+00 1060 5.5586000000e-01 1.9821000000e+00 1061 5.2086000000e-01 1.9821000000e+00 1062 4.8586000000e-01 1.9821000000e+00 1063 4.5086000000e-01 1.9821000000e+00 1064 4.1586000000e-01 1.9821000000e+00 1065 3.8086000000e-01 1.9821000000e+00 1066 3.4586000000e-01 1.9821000000e+00 1067 3.1086000000e-01 1.9821000000e+00 1068 2.7586000000e-01 1.9821000000e+00 1069 2.4085000000e-01 1.9821000000e+00 1070 2.0585000000e-01 1.9821000000e+00 1071 1.7085000000e-01 1.9821000000e+00 1072 1.3585000000e-01 1.9821000000e+00 1073 1.0085000000e-01 1.9821000000e+00 1074 6.5844000000e-02 1.9821000000e+00 1075 3.0843000000e-02 1.9821000000e+00 1076 -4.1569000000e-03 1.9821000000e+00 1077 -3.9157000000e-02 1.9821000000e+00 1078 -7.4157000000e-02 1.9821000000e+00 1079 -1.0916000000e-01 1.9821000000e+00 1080 -1.4416000000e-01 1.9821000000e+00 1081 -1.7916000000e-01 1.9821000000e+00 1082 -2.1415000000e-01 1.9821000000e+00 1083 -2.4915000000e-01 1.9821000000e+00 1084 -2.8415000000e-01 1.9821000000e+00 1085 -3.1915000000e-01 1.9821000000e+00 1086 -3.5415000000e-01 1.9821000000e+00 1087 -3.8915000000e-01 1.9821000000e+00 1088 -4.2415000000e-01 1.9821000000e+00 1089 -4.5915000000e-01 1.9821000000e+00 1090 -4.9415000000e-01 1.9821000000e+00 1091 -5.2915000000e-01 1.9821000000e+00 1092 -5.6415000000e-01 1.9821000000e+00 1093 -5.9915000000e-01 1.9821000000e+00 1094 -6.3415000000e-01 1.9821000000e+00 1095 -6.6916000000e-01 1.9820000000e+00 1096 -7.0416000000e-01 1.9820000000e+00 1097 -7.3917000000e-01 1.9820000000e+00 1098 -7.7418000000e-01 1.9819000000e+00 1099 -8.0920000000e-01 1.9819000000e+00 1100 -8.4423000000e-01 1.9818000000e+00 1101 -8.7928000000e-01 1.9816000000e+00 1102 -9.1435000000e-01 1.9815000000e+00 1103 -9.4946000000e-01 1.9812000000e+00 1104 -9.8462000000e-01 1.9809000000e+00 1105 -1.0198000000e+00 1.9805000000e+00 1106 -1.0552000000e+00 1.9801000000e+00 1107 -1.0906000000e+00 1.9797000000e+00 1108 -1.1262000000e+00 1.9792000000e+00 1109 -1.1619000000e+00 1.9788000000e+00 1110 -1.1976000000e+00 1.9786000000e+00 1111 -1.2334000000e+00 1.9786000000e+00 1112 -1.2690000000e+00 1.9791000000e+00 1113 -1.3041000000e+00 1.9797000000e+00 1114 -1.3390000000e+00 1.9797000000e+00 1115 -1.3225000000e+00 1.9493000000e+00 1116 -1.3363000000e+00 1.9232000000e+00 1117 -1.3315000000e+00 1.8949000000e+00 1118 -1.3267000000e+00 1.8609000000e+00 1119 -1.3234000000e+00 1.8250000000e+00 1120 -1.3211000000e+00 1.7884000000e+00 1121 -1.3193000000e+00 1.7514000000e+00 1122 -1.3182000000e+00 1.7141000000e+00 1123 -1.3182000000e+00 1.6768000000e+00 1124 -1.3192000000e+00 1.6401000000e+00 1125 -1.3204000000e+00 1.6040000000e+00 1126 -1.3213000000e+00 1.5683000000e+00 1127 -1.3220000000e+00 1.5328000000e+00 1128 -1.3226000000e+00 1.4973000000e+00 1129 -1.3232000000e+00 1.4619000000e+00 1130 -1.2923000000e+00 1.4446000000e+00 1131 -1.2929000000e+00 1.4092000000e+00 1132 -1.2934000000e+00 1.3740000000e+00 1133 -1.2939000000e+00 1.3387000000e+00 1134 -1.3247000000e+00 1.3210000000e+00 1135 -1.3249000000e+00 1.2859000000e+00 1136 -1.3251000000e+00 1.2508000000e+00 1137 -1.3253000000e+00 1.2157000000e+00 1138 -1.2949000000e+00 1.1983000000e+00 1139 -1.2951000000e+00 1.1632000000e+00 1140 -1.2952000000e+00 1.1282000000e+00 1141 -1.2953000000e+00 1.0931000000e+00 1142 -1.3257000000e+00 1.0756000000e+00 1143 -1.2953000000e+00 1.0581000000e+00 1144 -1.2650000000e+00 1.0406000000e+00 1145 -1.2347000000e+00 1.0231000000e+00 1146 -1.2044000000e+00 1.0056000000e+00 1147 -1.1741000000e+00 9.8813000000e-01 1148 -1.1741000000e+00 9.5308000000e-01 1149 -1.1438000000e+00 9.7062000000e-01 1150 -1.1438000000e+00 9.3555000000e-01 1151 -1.1741000000e+00 9.1803000000e-01 1152 -1.2942000000e+00 1.3036000000e+00 1153 -1.2945000000e+00 1.2684000000e+00 1154 -1.2947000000e+00 1.2333000000e+00 1155 -1.2643000000e+00 1.2159000000e+00 1156 -1.2646000000e+00 1.1808000000e+00 1157 -1.2647000000e+00 1.1457000000e+00 1158 -1.2649000000e+00 1.1107000000e+00 1159 -1.2650000000e+00 1.0756000000e+00 1160 1.4147000000e+00 3.0942000000e-02 1161 1.4500000000e+00 3.0943000000e-02 1162 1.4853000000e+00 3.0893000000e-02 1163 1.5205000000e+00 3.0808000000e-02 1164 -1.1741000000e+00 1.0232000000e+00 1165 -1.1438000000e+00 1.0057000000e+00 1166 -1.1135000000e+00 9.8816000000e-01 1167 -1.1135000000e+00 9.5308000000e-01 1168 -1.1135000000e+00 9.1800000000e-01 1169 -1.1438000000e+00 9.0048000000e-01 1170 -1.1741000000e+00 8.8297000000e-01 1171 -8.3884000000e-01 3.0505000000e-02 1172 -8.0387000000e-01 3.0450000000e-02 1173 -7.6891000000e-01 3.0412000000e-02 1174 1.4670000000e+00 6.1888000000e-02 1175 1.5025000000e+00 6.1734000000e-02 1176 1.4843000000e+00 9.2812000000e-02 1177 1.5378000000e+00 6.1533000000e-02 1178 1.5199000000e+00 9.2499000000e-02 1179 1.5554000000e+00 9.2167000000e-02 1180 1.5376000000e+00 1.2316000000e-01 1181 1.5731000000e+00 1.2271000000e-01 1182 1.5907000000e+00 9.1844000000e-02 1183 1.5731000000e+00 6.1320000000e-02 1184 1.6083000000e+00 6.1107000000e-02 1185 1.5908000000e+00 3.0601000000e-02 1186 1.5556000000e+00 3.0707000000e-02 1187 1.6259000000e+00 3.0496000000e-02 1188 1.6609000000e+00 3.0391000000e-02 1189 1.6960000000e+00 3.0287000000e-02 1190 1.7310000000e+00 3.0186000000e-02 1191 1.7660000000e+00 3.0092000000e-02 1192 1.8009000000e+00 3.0011000000e-02 1193 1.8359000000e+00 2.9949000000e-02 1194 1.8708000000e+00 2.9912000000e-02 1195 1.9057000000e+00 2.9904000000e-02 1196 1.9407000000e+00 2.9923000000e-02 1197 1.9756000000e+00 2.9964000000e-02 1198 2.0106000000e+00 3.0018000000e-02 1199 2.0456000000e+00 3.0074000000e-02 1200 2.0806000000e+00 3.0125000000e-02 1201 2.1156000000e+00 3.0167000000e-02 1202 2.1506000000e+00 3.0200000000e-02 1203 2.1857000000e+00 3.0224000000e-02 1204 2.2207000000e+00 3.0243000000e-02 1205 2.2557000000e+00 3.0256000000e-02 1206 2.2907000000e+00 3.0266000000e-02 1207 2.3258000000e+00 3.0274000000e-02 1208 2.3608000000e+00 3.0281000000e-02 1209 2.3958000000e+00 3.0286000000e-02 1210 2.4308000000e+00 3.0290000000e-02 1211 2.4658000000e+00 3.0294000000e-02 1212 2.5008000000e+00 3.0297000000e-02 1213 2.5358000000e+00 3.0300000000e-02 1214 2.5708000000e+00 3.0303000000e-02 1215 2.6058000000e+00 3.0306000000e-02 1216 2.6408000000e+00 3.0309000000e-02 1217 2.6758000000e+00 3.0313000000e-02 1218 2.7108000000e+00 3.0318000000e-02 1219 2.7458000000e+00 3.0323000000e-02 1220 2.7809000000e+00 3.0329000000e-02 1221 2.8159000000e+00 3.0335000000e-02 1222 2.8509000000e+00 3.0342000000e-02 1223 2.8859000000e+00 3.0350000000e-02 1224 2.9209000000e+00 3.0358000000e-02 1225 2.9559000000e+00 3.0367000000e-02 1226 2.9910000000e+00 3.0374000000e-02 1227 3.0260000000e+00 3.0382000000e-02 1228 3.0610000000e+00 3.0392000000e-02 1229 3.0960000000e+00 3.0408000000e-02 1230 3.1310000000e+00 3.0437000000e-02 1231 3.1660000000e+00 3.0492000000e-02 1232 3.2011000000e+00 3.0577000000e-02 1233 3.2362000000e+00 3.0654000000e-02 1234 3.2713000000e+00 3.0604000000e-02 1235 3.3063000000e+00 3.0357000000e-02 1236 3.3411000000e+00 3.0068000000e-02 1237 3.3756000000e+00 2.9965000000e-02 1238 3.4102000000e+00 3.0190000000e-02 1239 3.4451000000e+00 3.0613000000e-02 1240 3.4802000000e+00 3.0719000000e-02 1241 3.5146000000e+00 2.9544000000e-02 1242 3.5511000000e+00 2.5456000000e-02 1243 3.5613000000e+00 5.4739000000e-02 1244 3.5555000000e+00 8.4325000000e-02 1245 3.5526000000e+00 1.2007000000e-01 1246 3.5526000000e+00 1.5636000000e-01 1247 3.5527000000e+00 1.9198000000e-01 1248 3.5528000000e+00 2.2740000000e-01 1249 3.5224000000e+00 2.4520000000e-01 1250 3.5229000000e+00 2.8053000000e-01 1251 3.5233000000e+00 3.1559000000e-01 1252 3.5237000000e+00 3.5040000000e-01 1253 3.5240000000e+00 3.8503000000e-01 1254 3.5240000000e+00 4.1955000000e-01 1255 3.5237000000e+00 4.5409000000e-01 1256 3.5233000000e+00 4.8877000000e-01 1257 3.5229000000e+00 5.2367000000e-01 1258 3.4922000000e+00 5.4037000000e-01 1259 3.4918000000e+00 5.7567000000e-01 1260 3.4916000000e+00 6.1104000000e-01 1261 3.4915000000e+00 6.4639000000e-01 1262 3.4916000000e+00 6.8166000000e-01 1263 3.4916000000e+00 7.1687000000e-01 1264 3.4918000000e+00 7.5203000000e-01 1265 3.4919000000e+00 7.8715000000e-01 1266 3.4920000000e+00 8.2225000000e-01 1267 3.4921000000e+00 8.5733000000e-01 1268 3.4922000000e+00 8.9239000000e-01 1269 3.4922000000e+00 9.2744000000e-01 1270 3.4923000000e+00 9.6248000000e-01 1271 3.4923000000e+00 9.9750000000e-01 1272 3.4924000000e+00 1.0325000000e+00 1273 3.4924000000e+00 1.0675000000e+00 1274 3.4924000000e+00 1.1025000000e+00 1275 3.4924000000e+00 1.1375000000e+00 1276 3.4924000000e+00 1.1725000000e+00 1277 3.4924000000e+00 1.2075000000e+00 1278 3.4924000000e+00 1.2425000000e+00 1279 3.4923000000e+00 1.2776000000e+00 1280 3.4923000000e+00 1.3126000000e+00 1281 3.4922000000e+00 1.3476000000e+00 1282 3.4922000000e+00 1.3827000000e+00 1283 3.4921000000e+00 1.4177000000e+00 1284 3.4920000000e+00 1.4528000000e+00 1285 3.4919000000e+00 1.4879000000e+00 1286 3.4918000000e+00 1.5230000000e+00 1287 3.4916000000e+00 1.5582000000e+00 1288 3.4914000000e+00 1.5934000000e+00 1289 3.4912000000e+00 1.6286000000e+00 1290 3.4908000000e+00 1.6639000000e+00 1291 3.4905000000e+00 1.6993000000e+00 1292 3.4900000000e+00 1.7348000000e+00 1293 3.4894000000e+00 1.7704000000e+00 1294 3.4888000000e+00 1.8062000000e+00 1295 3.4880000000e+00 1.8421000000e+00 1296 3.4873000000e+00 1.8782000000e+00 1297 3.4865000000e+00 1.9144000000e+00 1298 3.4852000000e+00 1.9510000000e+00 1299 3.4857000000e+00 1.9870000000e+00 1300 3.4481000000e+00 1.9742000000e+00 1301 3.4078000000e+00 1.9768000000e+00 1302 3.3717000000e+00 1.9752000000e+00 1303 3.3352000000e+00 1.9737000000e+00 1304 3.2986000000e+00 1.9726000000e+00 1305 3.2617000000e+00 1.9715000000e+00 1306 3.2239000000e+00 1.9706000000e+00 1307 3.1862000000e+00 1.9721000000e+00 1308 3.1501000000e+00 1.9750000000e+00 1309 3.1151000000e+00 1.9765000000e+00 1310 3.0802000000e+00 1.9771000000e+00 1311 3.0451000000e+00 1.9774000000e+00 1312 3.0099000000e+00 1.9776000000e+00 1313 2.9745000000e+00 1.9779000000e+00 1314 2.9391000000e+00 1.9781000000e+00 1315 2.9037000000e+00 1.9783000000e+00 1316 2.8682000000e+00 1.9786000000e+00 1317 2.8328000000e+00 1.9789000000e+00 1318 2.7973000000e+00 1.9793000000e+00 1319 2.7620000000e+00 1.9798000000e+00 1320 2.7267000000e+00 1.9803000000e+00 1321 2.6915000000e+00 1.9807000000e+00 1322 2.6565000000e+00 1.9811000000e+00 1323 2.6215000000e+00 1.9814000000e+00 1324 2.5865000000e+00 1.9816000000e+00 1325 2.5515000000e+00 1.9818000000e+00 1326 2.5165000000e+00 1.9819000000e+00 1327 2.4814000000e+00 1.9820000000e+00 1328 2.4464000000e+00 1.9821000000e+00 1329 2.4114000000e+00 1.9822000000e+00 1330 2.3765000000e+00 1.9823000000e+00 1331 2.3416000000e+00 1.9823000000e+00 1332 2.3067000000e+00 1.9823000000e+00 1333 2.2718000000e+00 1.9822000000e+00 1334 2.2368000000e+00 1.9821000000e+00 1335 2.2017000000e+00 1.9820000000e+00 1336 2.1667000000e+00 1.9819000000e+00 1337 2.1494000000e+00 1.9515000000e+00 1338 2.1143000000e+00 1.9514000000e+00 1339 2.0791000000e+00 1.9514000000e+00 1340 2.0614000000e+00 1.9818000000e+00 1341 2.0263000000e+00 1.9818000000e+00 1342 1.9912000000e+00 1.9819000000e+00 1343 1.9562000000e+00 1.9819000000e+00 1344 1.9211000000e+00 1.9819000000e+00 1345 1.8861000000e+00 1.9820000000e+00 1346 1.8511000000e+00 1.9820000000e+00 1347 1.8337000000e+00 1.9517000000e+00 1348 1.7987000000e+00 1.9517000000e+00 1349 1.7636000000e+00 1.9517000000e+00 1350 1.7286000000e+00 1.9517000000e+00 1351 1.6936000000e+00 1.9517000000e+00 1352 1.6585000000e+00 1.9517000000e+00 1353 1.6235000000e+00 1.9517000000e+00 1354 1.5884000000e+00 1.9517000000e+00 1355 1.5534000000e+00 1.9517000000e+00 1356 1.5184000000e+00 1.9517000000e+00 1357 1.4834000000e+00 1.9517000000e+00 1358 1.4484000000e+00 1.9517000000e+00 1359 1.4134000000e+00 1.9517000000e+00 1360 1.3784000000e+00 1.9517000000e+00 1361 1.3433000000e+00 1.9517000000e+00 1362 1.3083000000e+00 1.9517000000e+00 1363 1.2733000000e+00 1.9517000000e+00 1364 1.2383000000e+00 1.9517000000e+00 1365 1.2033000000e+00 1.9517000000e+00 1366 1.1684000000e+00 1.9517000000e+00 1367 1.1334000000e+00 1.9517000000e+00 1368 1.0984000000e+00 1.9517000000e+00 1369 1.0634000000e+00 1.9517000000e+00 1370 1.0284000000e+00 1.9517000000e+00 1371 9.9339000000e-01 1.9517000000e+00 1372 9.5839000000e-01 1.9517000000e+00 1373 9.2339000000e-01 1.9517000000e+00 1374 8.8839000000e-01 1.9517000000e+00 1375 8.5339000000e-01 1.9517000000e+00 1376 8.1839000000e-01 1.9517000000e+00 1377 7.8338000000e-01 1.9517000000e+00 1378 7.4838000000e-01 1.9517000000e+00 1379 7.1338000000e-01 1.9517000000e+00 1380 6.7837000000e-01 1.9517000000e+00 1381 6.4337000000e-01 1.9517000000e+00 1382 6.0837000000e-01 1.9517000000e+00 1383 5.7337000000e-01 1.9517000000e+00 1384 5.3838000000e-01 1.9517000000e+00 1385 5.0338000000e-01 1.9517000000e+00 1386 4.6838000000e-01 1.9517000000e+00 1387 4.3338000000e-01 1.9517000000e+00 1388 3.9838000000e-01 1.9517000000e+00 1389 3.6338000000e-01 1.9517000000e+00 1390 3.2837000000e-01 1.9517000000e+00 1391 2.9337000000e-01 1.9517000000e+00 1392 2.5836000000e-01 1.9517000000e+00 1393 2.2336000000e-01 1.9517000000e+00 1394 1.8836000000e-01 1.9517000000e+00 1395 1.5335000000e-01 1.9517000000e+00 1396 1.1835000000e-01 1.9517000000e+00 1397 8.3348000000e-02 1.9517000000e+00 1398 4.8346000000e-02 1.9517000000e+00 1399 1.3345000000e-02 1.9517000000e+00 1400 -2.1655000000e-02 1.9517000000e+00 1401 -5.6655000000e-02 1.9517000000e+00 1402 -9.1655000000e-02 1.9517000000e+00 1403 -1.2665000000e-01 1.9517000000e+00 1404 -1.6165000000e-01 1.9517000000e+00 1405 -1.9665000000e-01 1.9517000000e+00 1406 -2.3165000000e-01 1.9517000000e+00 1407 -2.6665000000e-01 1.9517000000e+00 1408 -3.0165000000e-01 1.9517000000e+00 1409 -3.3664000000e-01 1.9518000000e+00 1410 -3.7164000000e-01 1.9518000000e+00 1411 -4.0664000000e-01 1.9518000000e+00 1412 -4.4164000000e-01 1.9518000000e+00 1413 -4.7664000000e-01 1.9518000000e+00 1414 -5.1164000000e-01 1.9518000000e+00 1415 -5.4664000000e-01 1.9518000000e+00 1416 -5.8164000000e-01 1.9517000000e+00 1417 -6.1665000000e-01 1.9517000000e+00 1418 -6.5165000000e-01 1.9517000000e+00 1419 -6.8666000000e-01 1.9517000000e+00 1420 -7.2167000000e-01 1.9517000000e+00 1421 -7.5668000000e-01 1.9516000000e+00 1422 -7.9170000000e-01 1.9515000000e+00 1423 -8.2673000000e-01 1.9514000000e+00 1424 -8.6177000000e-01 1.9513000000e+00 1425 -8.9684000000e-01 1.9511000000e+00 1426 -9.3195000000e-01 1.9508000000e+00 1427 -9.6711000000e-01 1.9504000000e+00 1428 -1.0024000000e+00 1.9500000000e+00 1429 -1.0377000000e+00 1.9494000000e+00 1430 -1.0732000000e+00 1.9488000000e+00 1431 -1.1089000000e+00 1.9481000000e+00 1432 -1.1447000000e+00 1.9474000000e+00 1433 -1.1807000000e+00 1.9469000000e+00 1434 -1.2170000000e+00 1.9465000000e+00 1435 -1.2532000000e+00 1.9469000000e+00 1436 -1.2886000000e+00 1.9483000000e+00 1437 -1.3087000000e+00 1.9195000000e+00 1438 -1.2989000000e+00 1.8860000000e+00 1439 -1.2929000000e+00 1.8492000000e+00 1440 -1.2900000000e+00 1.8117000000e+00 1441 -1.2872000000e+00 1.7743000000e+00 1442 -1.2850000000e+00 1.7362000000e+00 1443 -1.2838000000e+00 1.6974000000e+00 1444 -1.2852000000e+00 1.6593000000e+00 1445 -1.2877000000e+00 1.6227000000e+00 1446 -1.2891000000e+00 1.5870000000e+00 1447 -1.2900000000e+00 1.5513000000e+00 1448 -1.2909000000e+00 1.5156000000e+00 1449 -1.2916000000e+00 1.4800000000e+00 1450 -1.2609000000e+00 1.4626000000e+00 1451 -1.2617000000e+00 1.4272000000e+00 1452 -1.2623000000e+00 1.3918000000e+00 1453 -1.2629000000e+00 1.3566000000e+00 1454 -1.2318000000e+00 1.3744000000e+00 1455 -1.2324000000e+00 1.3391000000e+00 1456 -1.2634000000e+00 1.3213000000e+00 1457 2.0278000000e+00 6.0100000000e-02 1458 2.0628000000e+00 6.0212000000e-02 1459 2.0978000000e+00 6.0307000000e-02 1460 2.1329000000e+00 6.0381000000e-02 1461 -1.2554000000e+00 1.6404000000e+00 1462 -1.2572000000e+00 1.6055000000e+00 1463 -1.2580000000e+00 1.5699000000e+00 1464 -1.2590000000e+00 1.5340000000e+00 1465 -1.2599000000e+00 1.4982000000e+00 1466 -1.2292000000e+00 1.4807000000e+00 1467 -1.2303000000e+00 1.4451000000e+00 1468 -1.2311000000e+00 1.4097000000e+00 1469 -1.2007000000e+00 1.3923000000e+00 1470 -1.2014000000e+00 1.3570000000e+00 1471 -1.2020000000e+00 1.3217000000e+00 1472 -1.2329000000e+00 1.3039000000e+00 1473 -1.2637000000e+00 1.2861000000e+00 1474 1.0697000000e+00 3.5895000000e-02 1475 1.1064000000e+00 3.0569000000e-02 1476 1.1391000000e+00 2.7429000000e-02 1477 1.1721000000e+00 2.7376000000e-02 1478 1.2058000000e+00 2.7488000000e-02 1479 1.2395000000e+00 2.8056000000e-02 1480 1.2737000000e+00 2.9263000000e-02 1481 1.3087000000e+00 3.0256000000e-02 1482 1.3441000000e+00 3.0703000000e-02 1483 1.3794000000e+00 3.0882000000e-02 1484 1.3959000000e+00 6.1887000000e-02 1485 1.3602000000e+00 6.1761000000e-02 1486 1.3768000000e+00 9.2798000000e-02 1487 1.4126000000e+00 9.3001000000e-02 1488 1.4315000000e+00 6.1945000000e-02 1489 1.4485000000e+00 9.3023000000e-02 1490 -1.2641000000e+00 1.2510000000e+00 1491 -1.2337000000e+00 1.2335000000e+00 1492 -1.2340000000e+00 1.1984000000e+00 1493 -1.2342000000e+00 1.1633000000e+00 1494 -1.2344000000e+00 1.1282000000e+00 1495 -1.2039000000e+00 1.1458000000e+00 1496 -1.2041000000e+00 1.1108000000e+00 1497 -1.2346000000e+00 1.0932000000e+00 1498 -1.2347000000e+00 1.0582000000e+00 1499 -1.2044000000e+00 1.0407000000e+00 1500 1.9928000000e+00 5.9981000000e-02 1501 2.0100000000e+00 9.0073000000e-02 1502 1.3407000000e+00 9.2971000000e-02 1503 1.3580000000e+00 1.2320000000e-01 1504 1.3933000000e+00 1.2397000000e-01 1505 1.4296000000e+00 1.2440000000e-01 1506 -1.3255000000e+00 5.8549000000e-01 1507 -1.2951000000e+00 5.6800000000e-01 1508 -1.2952000000e+00 6.0297000000e-01 1509 -1.2648000000e+00 5.8546000000e-01 1510 -1.2648000000e+00 6.2042000000e-01 1511 -1.2344000000e+00 6.0290000000e-01 1512 -1.2344000000e+00 5.6795000000e-01 1513 -1.2647000000e+00 5.5051000000e-01 1514 -1.2951000000e+00 5.3304000000e-01 1515 -1.3256000000e+00 6.9046000000e-01 1516 -1.2952000000e+00 6.7294000000e-01 1517 -1.2952000000e+00 6.3795000000e-01 1518 -1.2648000000e+00 6.5540000000e-01 1519 -1.2345000000e+00 6.3786000000e-01 1520 -1.2345000000e+00 6.7284000000e-01 1521 -1.2649000000e+00 6.9040000000e-01 1522 -1.2041000000e+00 6.5527000000e-01 1523 -1.2041000000e+00 6.2031000000e-01 1524 -7.8612000000e-01 6.0847000000e-02 1525 -7.5120000000e-01 6.0790000000e-02 1526 -7.3395000000e-01 3.0386000000e-02 1527 -1.1740000000e+00 1.0582000000e+00 1528 -1.1437000000e+00 1.0407000000e+00 1529 -1.2043000000e+00 1.0757000000e+00 1530 -1.1738000000e+00 1.0933000000e+00 1531 -1.1435000000e+00 1.0758000000e+00 1532 -1.1133000000e+00 1.0583000000e+00 1533 -1.1134000000e+00 1.0232000000e+00 1534 -1.0830000000e+00 1.0408000000e+00 1535 -1.0831000000e+00 1.0057000000e+00 1536 -1.1737000000e+00 6.0275000000e-01 1537 -1.2040000000e+00 5.8537000000e-01 1538 -1.2039000000e+00 5.5046000000e-01 1539 -1.2343000000e+00 5.3303000000e-01 1540 -1.2039000000e+00 5.1556000000e-01 1541 -1.0832000000e+00 9.7062000000e-01 1542 -1.1736000000e+00 5.6785000000e-01 1543 -1.1433000000e+00 5.8519000000e-01 1544 -1.1432000000e+00 5.5036000000e-01 1545 -1.1735000000e+00 5.3298000000e-01 1546 2.4833000000e+00 6.0591000000e-02 1547 2.5183000000e+00 6.0597000000e-02 1548 2.5533000000e+00 6.0603000000e-02 1549 2.5883000000e+00 6.0609000000e-02 1550 2.6233000000e+00 6.0615000000e-02 1551 2.6058000000e+00 9.0917000000e-02 1552 2.6408000000e+00 9.0928000000e-02 1553 2.6583000000e+00 6.0623000000e-02 1554 2.6758000000e+00 9.0940000000e-02 1555 2.6933000000e+00 6.0631000000e-02 1556 2.4483000000e+00 6.0584000000e-02 1557 2.4658000000e+00 9.0881000000e-02 1558 2.5008000000e+00 9.0890000000e-02 1559 2.4832000000e+00 1.2118000000e-01 1560 2.5183000000e+00 1.2119000000e-01 1561 2.5358000000e+00 9.0898000000e-02 1562 -1.1130000000e+00 5.6768000000e-01 1563 -1.1130000000e+00 6.0245000000e-01 1564 -1.0828000000e+00 5.8491000000e-01 1565 -1.0529000000e+00 6.0185000000e-01 1566 -1.0527000000e+00 5.6768000000e-01 1567 -1.0241000000e+00 5.8498000000e-01 1568 -1.0219000000e+00 5.5106000000e-01 1569 -1.0520000000e+00 5.3300000000e-01 1570 -1.0211000000e+00 5.1584000000e-01 1571 -9.8788000000e-01 5.3354000000e-01 1572 -9.9523000000e-01 5.0188000000e-01 1573 -1.0180000000e+00 4.7784000000e-01 1574 -1.0514000000e+00 4.9768000000e-01 1575 -1.0823000000e+00 5.1544000000e-01 1576 -1.0826000000e+00 5.5027000000e-01 1577 -1.1128000000e+00 5.3290000000e-01 1578 -1.0824000000e+00 4.8069000000e-01 1579 -1.1127000000e+00 4.9810000000e-01 1580 -1.1431000000e+00 5.1552000000e-01 1581 -1.1430000000e+00 4.8069000000e-01 1582 -1.1734000000e+00 4.9811000000e-01 1583 -1.2038000000e+00 4.8067000000e-01 1584 -1.1733000000e+00 4.6325000000e-01 1585 -1.1429000000e+00 4.4584000000e-01 1586 -1.1126000000e+00 4.6333000000e-01 1587 -1.0825000000e+00 4.4626000000e-01 1588 -1.1124000000e+00 4.2844000000e-01 1589 -1.0815000000e+00 4.1127000000e-01 1590 -1.1120000000e+00 3.9301000000e-01 1591 -1.1427000000e+00 4.1092000000e-01 1592 -1.1428000000e+00 3.7623000000e-01 1593 -1.1731000000e+00 3.9360000000e-01 1594 -1.1135000000e+00 3.5879000000e-01 1595 -1.1427000000e+00 3.4212000000e-01 1596 -1.1729000000e+00 3.5898000000e-01 1597 -1.1723000000e+00 3.2441000000e-01 1598 -1.2030000000e+00 3.4139000000e-01 1599 -1.2033000000e+00 3.7616000000e-01 1600 -1.2035000000e+00 4.1095000000e-01 1601 -1.1732000000e+00 4.2839000000e-01 1602 -1.2037000000e+00 4.4580000000e-01 1603 1.0143000000e+00 3.0083000000e-02 1604 1.0403000000e+00 2.4993000000e-02 1605 1.0022000000e+00 6.0385000000e-02 1606 9.6955000000e-01 6.5528000000e-02 1607 9.9094000000e-01 9.2055000000e-02 1608 1.0368000000e+00 5.6843000000e-02 1609 1.0661000000e+00 7.0336000000e-02 1610 1.0459000000e+00 9.2211000000e-02 1611 1.0785000000e+00 9.8825000000e-02 1612 1.0565000000e+00 1.2492000000e-01 1613 1.0185000000e+00 1.1833000000e-01 1614 1.0368000000e+00 1.5378000000e-01 1615 1.0699000000e+00 1.5539000000e-01 1616 1.0893000000e+00 1.3093000000e-01 1617 1.1133000000e+00 1.0662000000e-01 1618 1.0999000000e+00 6.7878000000e-02 1619 1.1375000000e+00 8.0663000000e-02 1620 1.1279000000e+00 5.2196000000e-02 1621 1.1565000000e+00 5.4414000000e-02 1622 1.1895000000e+00 5.4910000000e-02 1623 1.1732000000e+00 8.3874000000e-02 1624 1.1539000000e+00 1.1895000000e-01 1625 1.1943000000e+00 1.1255000000e-01 1626 1.1831000000e+00 1.4187000000e-01 1627 1.2186000000e+00 1.4278000000e-01 1628 1.2296000000e+00 1.0607000000e-01 1629 1.2074000000e+00 8.1705000000e-02 1630 1.2220000000e+00 5.4568000000e-02 1631 1.2541000000e+00 5.7005000000e-02 1632 1.2884000000e+00 6.0245000000e-02 1633 1.2651000000e+00 9.1662000000e-02 1634 1.3044000000e+00 9.1943000000e-02 1635 1.3244000000e+00 6.1316000000e-02 1636 1.2870000000e+00 1.1864000000e-01 1637 1.3205000000e+00 1.2680000000e-01 1638 1.3438000000e+00 1.4862000000e-01 1639 1.3729000000e+00 1.5401000000e-01 1640 1.4098000000e+00 1.5641000000e-01 1641 1.4473000000e+00 1.5588000000e-01 1642 1.4659000000e+00 1.2412000000e-01 1643 1.5019000000e+00 1.2364000000e-01 1644 1.5198000000e+00 1.5430000000e-01 1645 1.5554000000e+00 1.5370000000e-01 1646 1.5909000000e+00 1.5318000000e-01 1647 1.6085000000e+00 1.2229000000e-01 1648 1.6263000000e+00 1.5270000000e-01 1649 1.6088000000e+00 1.8364000000e-01 1650 1.5734000000e+00 1.8416000000e-01 1651 1.5913000000e+00 2.1466000000e-01 1652 1.6269000000e+00 2.1418000000e-01 1653 1.6443000000e+00 1.8310000000e-01 1654 1.6616000000e+00 1.5219000000e-01 1655 1.6438000000e+00 1.2188000000e-01 1656 1.6790000000e+00 1.2146000000e-01 1657 1.6612000000e+00 9.1215000000e-02 1658 1.6963000000e+00 9.0897000000e-02 1659 1.6786000000e+00 6.0687000000e-02 1660 1.7136000000e+00 6.0479000000e-02 1661 1.7313000000e+00 9.0581000000e-02 1662 1.7486000000e+00 6.0279000000e-02 1663 1.7663000000e+00 9.0278000000e-02 1664 1.7491000000e+00 1.2059000000e-01 1665 1.7840000000e+00 1.2017000000e-01 1666 1.7669000000e+00 1.5048000000e-01 1667 1.8017000000e+00 1.4994000000e-01 1668 1.8188000000e+00 1.1982000000e-01 1669 1.8012000000e+00 9.0009000000e-02 1670 1.7836000000e+00 6.0096000000e-02 1671 1.8185000000e+00 5.9945000000e-02 1672 1.8534000000e+00 5.9840000000e-02 1673 1.8882000000e+00 5.9793000000e-02 1674 1.9231000000e+00 5.9808000000e-02 1675 1.9579000000e+00 5.9876000000e-02 1676 1.9751000000e+00 8.9881000000e-02 1677 1.9922000000e+00 1.1998000000e-01 1678 2.0271000000e+00 1.2027000000e-01 1679 2.0450000000e+00 9.0263000000e-02 1680 2.0800000000e+00 9.0425000000e-02 1681 2.1151000000e+00 9.0550000000e-02 1682 2.0973000000e+00 1.2072000000e-01 1683 2.1324000000e+00 1.2085000000e-01 1684 2.1502000000e+00 9.0641000000e-02 1685 2.1680000000e+00 6.0435000000e-02 1686 2.1853000000e+00 9.0705000000e-02 1687 2.2030000000e+00 6.0475000000e-02 1688 2.2381000000e+00 6.0505000000e-02 1689 2.2731000000e+00 6.0527000000e-02 1690 2.3082000000e+00 6.0544000000e-02 1691 2.2906000000e+00 9.0810000000e-02 1692 2.3256000000e+00 9.0831000000e-02 1693 2.3432000000e+00 6.0557000000e-02 1694 2.3782000000e+00 6.0568000000e-02 1695 2.4133000000e+00 6.0577000000e-02 1696 2.4307000000e+00 9.0872000000e-02 1697 2.4482000000e+00 1.2117000000e-01 1698 2.4657000000e+00 1.5147000000e-01 1699 2.5007000000e+00 1.5148000000e-01 1700 2.5358000000e+00 1.5149000000e-01 1701 2.5182000000e+00 1.8177000000e-01 1702 2.5532000000e+00 1.8179000000e-01 1703 2.4832000000e+00 1.8176000000e-01 1704 2.5007000000e+00 2.1205000000e-01 1705 2.5357000000e+00 2.1206000000e-01 1706 2.5707000000e+00 2.1209000000e-01 1707 2.5882000000e+00 1.8181000000e-01 1708 2.5708000000e+00 1.5150000000e-01 1709 2.5533000000e+00 1.2120000000e-01 1710 2.5708000000e+00 9.0907000000e-02 1711 2.5883000000e+00 1.2121000000e-01 1712 2.6233000000e+00 1.2123000000e-01 1713 2.6583000000e+00 1.2124000000e-01 1714 2.6933000000e+00 1.2126000000e-01 1715 2.7108000000e+00 9.0955000000e-02 1716 2.7283000000e+00 6.0641000000e-02 1717 2.7634000000e+00 6.0652000000e-02 1718 2.7984000000e+00 6.0665000000e-02 1719 2.8334000000e+00 6.0679000000e-02 1720 2.8684000000e+00 6.0694000000e-02 1721 2.9035000000e+00 6.0711000000e-02 1722 2.9385000000e+00 6.0728000000e-02 1723 2.9736000000e+00 6.0743000000e-02 1724 2.9561000000e+00 9.1110000000e-02 1725 2.9912000000e+00 9.1132000000e-02 1726 3.0086000000e+00 6.0758000000e-02 1727 3.0436000000e+00 6.0773000000e-02 1728 3.0787000000e+00 6.0792000000e-02 1729 3.1137000000e+00 6.0826000000e-02 1730 3.1487000000e+00 6.0898000000e-02 1731 3.1313000000e+00 9.1235000000e-02 1732 3.1663000000e+00 9.1353000000e-02 1733 3.1837000000e+00 6.1040000000e-02 1734 3.2188000000e+00 6.1272000000e-02 1735 3.2542000000e+00 6.1471000000e-02 1736 3.2895000000e+00 6.1135000000e-02 1737 3.3243000000e+00 6.0333000000e-02 1738 3.3585000000e+00 5.9749000000e-02 1739 3.3924000000e+00 5.9778000000e-02 1740 3.4266000000e+00 6.0783000000e-02 1741 3.4619000000e+00 6.1981000000e-02 1742 3.4980000000e+00 6.2174000000e-02 1743 3.5333000000e+00 5.8912000000e-02 1744 3.5192000000e+00 9.7229000000e-02 1745 3.5219000000e+00 1.3750000000e-01 1746 3.5219000000e+00 1.7360000000e-01 1747 3.5220000000e+00 2.0954000000e-01 1748 3.4915000000e+00 2.2766000000e-01 1749 3.4923000000e+00 2.6337000000e-01 1750 3.4930000000e+00 2.9862000000e-01 1751 3.4938000000e+00 3.3347000000e-01 1752 3.4943000000e+00 3.6798000000e-01 1753 3.4945000000e+00 4.0221000000e-01 1754 3.4943000000e+00 4.3635000000e-01 1755 3.4937000000e+00 4.7065000000e-01 1756 3.4929000000e+00 5.0531000000e-01 1757 3.4620000000e+00 5.2164000000e-01 1758 3.4612000000e+00 5.5711000000e-01 1759 3.4608000000e+00 5.9274000000e-01 1760 3.4607000000e+00 6.2830000000e-01 1761 3.4608000000e+00 6.6374000000e-01 1762 3.4610000000e+00 6.9905000000e-01 1763 3.4611000000e+00 7.3428000000e-01 1764 3.4613000000e+00 7.6945000000e-01 1765 3.4614000000e+00 8.0459000000e-01 1766 3.4616000000e+00 8.3971000000e-01 1767 3.4617000000e+00 8.7480000000e-01 1768 3.4618000000e+00 9.0988000000e-01 1769 3.4619000000e+00 9.4494000000e-01 1770 3.4620000000e+00 9.7998000000e-01 1771 3.4620000000e+00 1.0150000000e+00 1772 3.4621000000e+00 1.0500000000e+00 1773 3.4621000000e+00 1.0850000000e+00 1774 3.4621000000e+00 1.1200000000e+00 1775 3.4621000000e+00 1.1550000000e+00 1776 3.4621000000e+00 1.1900000000e+00 1777 3.4621000000e+00 1.2251000000e+00 1778 3.4620000000e+00 1.2601000000e+00 1779 3.4620000000e+00 1.2951000000e+00 1780 3.4619000000e+00 1.3301000000e+00 1781 3.4618000000e+00 1.3652000000e+00 1782 3.4617000000e+00 1.4003000000e+00 1783 3.4616000000e+00 1.4354000000e+00 1784 3.4615000000e+00 1.4705000000e+00 1785 3.4613000000e+00 1.5057000000e+00 1786 3.4611000000e+00 1.5409000000e+00 1787 3.4609000000e+00 1.5761000000e+00 1788 3.4606000000e+00 1.6114000000e+00 1789 3.4602000000e+00 1.6467000000e+00 1790 3.4597000000e+00 1.6822000000e+00 1791 3.4592000000e+00 1.7177000000e+00 1792 3.4585000000e+00 1.7534000000e+00 1793 3.4577000000e+00 1.7893000000e+00 1794 3.4567000000e+00 1.8254000000e+00 1795 3.4556000000e+00 1.8618000000e+00 1796 3.4548000000e+00 1.8983000000e+00 1797 3.4539000000e+00 1.9344000000e+00 1798 3.1677000000e+00 1.9422000000e+00 1799 3.1336000000e+00 1.9447000000e+00 1800 3.0992000000e+00 1.9455000000e+00 1801 3.0644000000e+00 1.9457000000e+00 1802 3.0291000000e+00 1.9458000000e+00 1803 2.9937000000e+00 1.9460000000e+00 1804 2.9582000000e+00 1.9462000000e+00 1805 2.9226000000e+00 1.9465000000e+00 1806 2.8870000000e+00 1.9468000000e+00 1807 2.8513000000e+00 1.9472000000e+00 1808 2.8157000000e+00 1.9477000000e+00 1809 2.7801000000e+00 1.9483000000e+00 1810 2.7446000000e+00 1.9489000000e+00 1811 2.7093000000e+00 1.9496000000e+00 1812 2.6742000000e+00 1.9503000000e+00 1813 2.6392000000e+00 1.9508000000e+00 1814 2.6043000000e+00 1.9511000000e+00 1815 2.5693000000e+00 1.9513000000e+00 1816 2.5342000000e+00 1.9514000000e+00 1817 2.4992000000e+00 1.9515000000e+00 1818 2.4641000000e+00 1.9517000000e+00 1819 2.4291000000e+00 1.9519000000e+00 1820 2.3942000000e+00 1.9521000000e+00 1821 2.3594000000e+00 1.9521000000e+00 1822 2.3245000000e+00 1.9521000000e+00 1823 2.2897000000e+00 1.9520000000e+00 1824 2.2547000000e+00 1.9518000000e+00 1825 2.2196000000e+00 1.9517000000e+00 1826 2.1846000000e+00 1.9515000000e+00 1827 2.1674000000e+00 1.9211000000e+00 1828 2.1322000000e+00 1.9210000000e+00 1829 2.0970000000e+00 1.9209000000e+00 1830 2.0618000000e+00 1.9209000000e+00 1831 2.0440000000e+00 1.9514000000e+00 1832 2.0089000000e+00 1.9514000000e+00 1833 1.9738000000e+00 1.9515000000e+00 1834 1.9388000000e+00 1.9515000000e+00 1835 1.9037000000e+00 1.9516000000e+00 1836 1.8687000000e+00 1.9516000000e+00 1837 1.8513000000e+00 1.9213000000e+00 1838 1.8163000000e+00 1.9213000000e+00 1839 1.7813000000e+00 1.9213000000e+00 1840 1.7462000000e+00 1.9213000000e+00 1841 1.7112000000e+00 1.9213000000e+00 1842 1.6761000000e+00 1.9213000000e+00 1843 1.6411000000e+00 1.9213000000e+00 1844 1.6060000000e+00 1.9213000000e+00 1845 1.5710000000e+00 1.9213000000e+00 1846 1.5359000000e+00 1.9213000000e+00 1847 1.5009000000e+00 1.9213000000e+00 1848 1.4659000000e+00 1.9213000000e+00 1849 1.4309000000e+00 1.9213000000e+00 1850 1.3959000000e+00 1.9213000000e+00 1851 1.3609000000e+00 1.9213000000e+00 1852 1.3259000000e+00 1.9213000000e+00 1853 1.2908000000e+00 1.9213000000e+00 1854 1.2558000000e+00 1.9213000000e+00 1855 1.2208000000e+00 1.9213000000e+00 1856 1.1859000000e+00 1.9213000000e+00 1857 1.1509000000e+00 1.9213000000e+00 1858 1.1159000000e+00 1.9213000000e+00 1859 1.0809000000e+00 1.9213000000e+00 1860 1.0459000000e+00 1.9213000000e+00 1861 1.0109000000e+00 1.9213000000e+00 1862 9.7591000000e-01 1.9213000000e+00 1863 9.4091000000e-01 1.9213000000e+00 1864 9.0592000000e-01 1.9213000000e+00 1865 8.7091000000e-01 1.9213000000e+00 1866 8.3591000000e-01 1.9213000000e+00 1867 8.0090000000e-01 1.9213000000e+00 1868 7.6590000000e-01 1.9214000000e+00 1869 7.3089000000e-01 1.9214000000e+00 1870 6.9589000000e-01 1.9214000000e+00 1871 6.6089000000e-01 1.9214000000e+00 1872 6.2589000000e-01 1.9214000000e+00 1873 5.9089000000e-01 1.9214000000e+00 1874 5.5589000000e-01 1.9214000000e+00 1875 5.2089000000e-01 1.9214000000e+00 1876 4.8590000000e-01 1.9214000000e+00 1877 4.5090000000e-01 1.9214000000e+00 1878 4.1590000000e-01 1.9214000000e+00 1879 3.8089000000e-01 1.9214000000e+00 1880 3.4589000000e-01 1.9214000000e+00 1881 3.1088000000e-01 1.9214000000e+00 1882 2.7588000000e-01 1.9214000000e+00 1883 2.4087000000e-01 1.9214000000e+00 1884 2.0587000000e-01 1.9214000000e+00 1885 1.7086000000e-01 1.9214000000e+00 1886 1.3586000000e-01 1.9214000000e+00 1887 1.0085000000e-01 1.9214000000e+00 1888 6.5850000000e-02 1.9214000000e+00 1889 3.0847000000e-02 1.9214000000e+00 1890 -4.1538000000e-03 1.9214000000e+00 1891 -3.9154000000e-02 1.9214000000e+00 1892 -7.4154000000e-02 1.9214000000e+00 1893 -1.0915000000e-01 1.9214000000e+00 1894 -1.4415000000e-01 1.9214000000e+00 1895 -1.7915000000e-01 1.9214000000e+00 1896 -2.1415000000e-01 1.9214000000e+00 1897 -2.4914000000e-01 1.9214000000e+00 1898 -2.8414000000e-01 1.9214000000e+00 1899 -3.1914000000e-01 1.9214000000e+00 1900 -3.5414000000e-01 1.9214000000e+00 1901 -3.8913000000e-01 1.9214000000e+00 1902 -4.2413000000e-01 1.9214000000e+00 1903 -4.5913000000e-01 1.9214000000e+00 1904 -4.9413000000e-01 1.9214000000e+00 1905 -5.2913000000e-01 1.9214000000e+00 1906 -5.6413000000e-01 1.9214000000e+00 1907 -5.9914000000e-01 1.9214000000e+00 1908 -6.3414000000e-01 1.9214000000e+00 1909 -6.6915000000e-01 1.9214000000e+00 1910 -7.0416000000e-01 1.9214000000e+00 1911 -7.3917000000e-01 1.9213000000e+00 1912 -7.7419000000e-01 1.9212000000e+00 1913 -8.0922000000e-01 1.9211000000e+00 1914 -8.4426000000e-01 1.9210000000e+00 1915 -8.7932000000e-01 1.9207000000e+00 1916 -9.1442000000e-01 1.9204000000e+00 1917 -9.4957000000e-01 1.9200000000e+00 1918 -9.8479000000e-01 1.9195000000e+00 1919 -1.0201000000e+00 1.9188000000e+00 1920 -1.0556000000e+00 1.9181000000e+00 1921 -1.0913000000e+00 1.9171000000e+00 1922 -1.1273000000e+00 1.9162000000e+00 1923 -1.1635000000e+00 1.9153000000e+00 1924 -1.1999000000e+00 1.9145000000e+00 1925 -1.2371000000e+00 1.9136000000e+00 1926 -1.2743000000e+00 1.9151000000e+00 1927 -1.2592000000e+00 1.8764000000e+00 1928 -1.2595000000e+00 1.8352000000e+00 1929 -1.2559000000e+00 1.7981000000e+00 1930 -1.2523000000e+00 1.7598000000e+00 1931 -1.2493000000e+00 1.7201000000e+00 1932 -1.2470000000e+00 1.6780000000e+00 1933 -1.2286000000e+00 1.6527000000e+00 1934 -1.2266000000e+00 1.6243000000e+00 1935 -1.2261000000e+00 1.5889000000e+00 1936 -1.2268000000e+00 1.5526000000e+00 1937 -1.2280000000e+00 1.5165000000e+00 1938 -1.1974000000e+00 1.4986000000e+00 1939 -1.1987000000e+00 1.4630000000e+00 1940 -1.1998000000e+00 1.4276000000e+00 1941 -1.1695000000e+00 1.4102000000e+00 1942 -1.1703000000e+00 1.3749000000e+00 1943 -1.1709000000e+00 1.3396000000e+00 1944 -1.1715000000e+00 1.3043000000e+00 1945 -1.2025000000e+00 1.2865000000e+00 1946 -1.2333000000e+00 1.2687000000e+00 1947 -1.2029000000e+00 1.2512000000e+00 1948 -1.2033000000e+00 1.2161000000e+00 1949 -1.2036000000e+00 1.1809000000e+00 1950 -1.1729000000e+00 1.1986000000e+00 1951 -1.1733000000e+00 1.1634000000e+00 1952 -1.1736000000e+00 1.1283000000e+00 1953 -1.1433000000e+00 1.1108000000e+00 1954 -1.1131000000e+00 1.0933000000e+00 1955 -1.0829000000e+00 1.0758000000e+00 1956 -1.0526000000e+00 1.0583000000e+00 1957 -1.0528000000e+00 1.0233000000e+00 1958 -1.0224000000e+00 1.0408000000e+00 1959 -1.0225000000e+00 1.0057000000e+00 1960 -1.0529000000e+00 9.8817000000e-01 1961 -1.0529000000e+00 9.5306000000e-01 1962 -1.0832000000e+00 9.3553000000e-01 1963 -1.0832000000e+00 9.0042000000e-01 1964 -1.1134000000e+00 8.8291000000e-01 1965 -1.0831000000e+00 8.6532000000e-01 1966 1.2034000000e+00 1.8910000000e+00 1967 1.1684000000e+00 1.8910000000e+00 1968 1.1334000000e+00 1.8910000000e+00 1969 1.0984000000e+00 1.8910000000e+00 1970 1.0634000000e+00 1.8910000000e+00 1971 1.0284000000e+00 1.8910000000e+00 1972 9.9343000000e-01 1.8910000000e+00 1973 9.5844000000e-01 1.8910000000e+00 1974 9.2344000000e-01 1.8910000000e+00 1975 8.8844000000e-01 1.8910000000e+00 1976 8.5344000000e-01 1.8910000000e+00 1977 8.1843000000e-01 1.8910000000e+00 1978 7.8342000000e-01 1.8910000000e+00 1979 7.4841000000e-01 1.8910000000e+00 1980 7.1340000000e-01 1.8910000000e+00 1981 6.7840000000e-01 1.8911000000e+00 1982 6.4340000000e-01 1.8911000000e+00 1983 6.0840000000e-01 1.8911000000e+00 1984 5.7341000000e-01 1.8911000000e+00 1985 5.3841000000e-01 1.8911000000e+00 1986 5.0342000000e-01 1.8911000000e+00 1987 4.6842000000e-01 1.8911000000e+00 1988 4.3342000000e-01 1.8911000000e+00 1989 3.9842000000e-01 1.8911000000e+00 1990 3.6342000000e-01 1.8911000000e+00 1991 3.2841000000e-01 1.8911000000e+00 1992 2.9340000000e-01 1.8911000000e+00 1993 2.5839000000e-01 1.8911000000e+00 1994 2.2338000000e-01 1.8911000000e+00 1995 1.8837000000e-01 1.8911000000e+00 1996 1.5337000000e-01 1.8911000000e+00 1997 1.1836000000e-01 1.8911000000e+00 1998 8.3354000000e-02 1.8911000000e+00 1999 4.8350000000e-02 1.8911000000e+00 2000 1.3348000000e-02 1.8911000000e+00 2001 -2.1653000000e-02 1.8911000000e+00 2002 -5.6653000000e-02 1.8911000000e+00 2003 -9.1652000000e-02 1.8911000000e+00 2004 -1.2665000000e-01 1.8911000000e+00 2005 -1.6165000000e-01 1.8911000000e+00 2006 -1.9664000000e-01 1.8911000000e+00 2007 -2.3164000000e-01 1.8911000000e+00 2008 -2.6663000000e-01 1.8911000000e+00 2009 -3.0163000000e-01 1.8911000000e+00 2010 -3.3663000000e-01 1.8911000000e+00 2011 -3.7162000000e-01 1.8911000000e+00 2012 -4.0662000000e-01 1.8911000000e+00 2013 -4.4162000000e-01 1.8911000000e+00 2014 -4.7662000000e-01 1.8911000000e+00 2015 -5.1162000000e-01 1.8911000000e+00 2016 -5.4662000000e-01 1.8911000000e+00 2017 -5.8162000000e-01 1.8911000000e+00 2018 -6.1663000000e-01 1.8911000000e+00 2019 -6.5164000000e-01 1.8911000000e+00 2020 -6.8665000000e-01 1.8911000000e+00 2021 -7.2167000000e-01 1.8910000000e+00 2022 -7.5669000000e-01 1.8909000000e+00 2023 -7.9171000000e-01 1.8908000000e+00 2024 -8.2675000000e-01 1.8907000000e+00 2025 -8.6180000000e-01 1.8905000000e+00 2026 -8.9688000000e-01 1.8901000000e+00 2027 -9.3200000000e-01 1.8897000000e+00 2028 -9.6718000000e-01 1.8892000000e+00 2029 -1.0025000000e+00 1.8884000000e+00 2030 -1.0379000000e+00 1.8875000000e+00 2031 -1.0735000000e+00 1.8864000000e+00 2032 -1.1095000000e+00 1.8851000000e+00 2033 -1.1458000000e+00 1.8838000000e+00 2034 -1.1824000000e+00 1.8828000000e+00 2035 -1.2189000000e+00 1.8819000000e+00 2036 -1.2331000000e+00 1.8533000000e+00 2037 -1.2261000000e+00 1.8225000000e+00 2038 -1.2203000000e+00 1.7848000000e+00 2039 -1.2165000000e+00 1.7453000000e+00 2040 -1.2110000000e+00 1.7038000000e+00 2041 -1.2157000000e+00 1.6722000000e+00 2042 -1.1984000000e+00 1.6483000000e+00 2043 -1.1941000000e+00 1.6096000000e+00 2044 -1.1938000000e+00 1.5716000000e+00 2045 -1.1958000000e+00 1.5346000000e+00 2046 -1.1653000000e+00 1.5164000000e+00 2047 -1.1670000000e+00 1.4808000000e+00 2048 -1.1685000000e+00 1.4454000000e+00 2049 -1.1385000000e+00 1.4280000000e+00 2050 -1.1392000000e+00 1.3929000000e+00 2051 -1.1398000000e+00 1.3576000000e+00 2052 -1.1404000000e+00 1.3222000000e+00 2053 -1.1410000000e+00 1.2868000000e+00 2054 -1.1720000000e+00 1.2690000000e+00 2055 -1.1725000000e+00 1.2338000000e+00 2056 -1.1421000000e+00 1.2162000000e+00 2057 -1.1426000000e+00 1.1810000000e+00 2058 -1.1430000000e+00 1.1459000000e+00 2059 -1.1128000000e+00 1.1284000000e+00 2060 -1.0826000000e+00 1.1109000000e+00 2061 -1.0524000000e+00 1.0934000000e+00 2062 -1.0223000000e+00 1.0759000000e+00 2063 -9.9207000000e-01 1.0584000000e+00 2064 -9.9217000000e-01 1.0233000000e+00 2065 -9.9225000000e-01 9.8815000000e-01 2066 -1.0226000000e+00 9.7060000000e-01 2067 -1.0226000000e+00 9.3546000000e-01 2068 -1.0529000000e+00 9.1794000000e-01 2069 -1.0226000000e+00 9.0032000000e-01 2070 -1.0528000000e+00 8.8282000000e-01 2071 -1.0225000000e+00 8.6517000000e-01 2072 -1.0527000000e+00 8.4769000000e-01 2073 -1.0224000000e+00 8.3002000000e-01 2074 -1.0526000000e+00 8.1255000000e-01 2075 -1.0830000000e+00 8.3020000000e-01 2076 -1.0829000000e+00 7.9507000000e-01 2077 -1.0827000000e+00 7.5991000000e-01 2078 -1.0524000000e+00 7.7739000000e-01 2079 -1.0522000000e+00 7.4218000000e-01 2080 -1.0826000000e+00 7.2471000000e-01 2081 -1.1130000000e+00 7.4247000000e-01 2082 -1.0520000000e+00 7.0685000000e-01 2083 -1.0211000000e+00 6.8883000000e-01 2084 -1.0209000000e+00 6.5260000000e-01 2085 -1.0230000000e+00 6.1774000000e-01 2086 -1.0222000000e+00 7.9488000000e-01 2087 -1.0219000000e+00 7.5971000000e-01 2088 -9.9182000000e-01 7.7721000000e-01 2089 -9.9150000000e-01 7.4213000000e-01 2090 -9.6158000000e-01 7.5958000000e-01 2091 -9.6171000000e-01 7.9459000000e-01 2092 -9.3147000000e-01 7.7667000000e-01 2093 -9.3173000000e-01 7.4196000000e-01 2094 -9.6124000000e-01 7.2488000000e-01 2095 -9.9085000000e-01 7.0689000000e-01 2096 -1.0216000000e+00 7.2444000000e-01 2097 -1.3854000000e+00 1.3094000000e-01 2098 3.4224000000e+00 1.8822000000e+00 2099 3.4229000000e+00 1.9190000000e+00 2100 3.4256000000e+00 1.9497000000e+00 2101 3.3954000000e+00 1.9444000000e+00 2102 3.3588000000e+00 1.9408000000e+00 2103 3.3214000000e+00 1.9398000000e+00 2104 3.2846000000e+00 1.9385000000e+00 2105 3.2471000000e+00 1.9363000000e+00 2106 3.2058000000e+00 1.9327000000e+00 2107 3.1791000000e+00 1.9142000000e+00 2108 3.1511000000e+00 1.9147000000e+00 2109 3.1183000000e+00 1.9146000000e+00 2110 3.0839000000e+00 1.9142000000e+00 2111 3.0487000000e+00 1.9139000000e+00 2112 3.0131000000e+00 1.9139000000e+00 2113 2.9775000000e+00 1.9142000000e+00 2114 2.9418000000e+00 1.9146000000e+00 2115 2.9060000000e+00 1.9149000000e+00 2116 2.8702000000e+00 1.9153000000e+00 2117 2.8343000000e+00 1.9157000000e+00 2118 2.7984000000e+00 1.9164000000e+00 2119 2.7626000000e+00 1.9173000000e+00 2120 2.7271000000e+00 1.9182000000e+00 2121 2.6919000000e+00 1.9192000000e+00 2122 2.6569000000e+00 1.9200000000e+00 2123 2.6220000000e+00 1.9205000000e+00 2124 2.5871000000e+00 1.9208000000e+00 2125 2.5521000000e+00 1.9209000000e+00 2126 2.5170000000e+00 1.9210000000e+00 2127 2.4818000000e+00 1.9212000000e+00 2128 2.4467000000e+00 1.9215000000e+00 2129 2.4118000000e+00 1.9218000000e+00 2130 2.3771000000e+00 1.9220000000e+00 2131 2.3424000000e+00 1.9220000000e+00 2132 2.3076000000e+00 1.9219000000e+00 2133 2.2727000000e+00 1.9217000000e+00 2134 2.2377000000e+00 1.9214000000e+00 2135 2.2026000000e+00 1.9212000000e+00 2136 2.1855000000e+00 1.8906000000e+00 2137 2.1502000000e+00 1.8905000000e+00 2138 2.1150000000e+00 1.8904000000e+00 2139 2.0797000000e+00 1.8904000000e+00 2140 2.0445000000e+00 1.8904000000e+00 2141 2.0267000000e+00 1.9210000000e+00 2142 1.9915000000e+00 1.9210000000e+00 2143 1.9565000000e+00 1.9211000000e+00 2144 1.9214000000e+00 1.9212000000e+00 2145 1.8864000000e+00 1.9213000000e+00 2146 2.0093000000e+00 1.8905000000e+00 2147 1.9742000000e+00 1.8907000000e+00 2148 1.9391000000e+00 1.8908000000e+00 2149 1.9040000000e+00 1.8909000000e+00 2150 1.8690000000e+00 1.8909000000e+00 2151 2.2908000000e+00 1.8916000000e+00 2152 2.2558000000e+00 1.8912000000e+00 2153 2.2207000000e+00 1.8909000000e+00 2154 2.2038000000e+00 1.8602000000e+00 2155 2.1684000000e+00 1.8600000000e+00 2156 2.1331000000e+00 1.8598000000e+00 2157 2.0977000000e+00 1.8598000000e+00 2158 2.0624000000e+00 1.8598000000e+00 2159 2.0271000000e+00 1.8600000000e+00 2160 1.9919000000e+00 1.8601000000e+00 2161 1.9568000000e+00 1.8603000000e+00 2162 1.9217000000e+00 1.8604000000e+00 2163 1.8867000000e+00 1.8605000000e+00 2164 1.8517000000e+00 1.8606000000e+00 2165 1.8340000000e+00 1.8910000000e+00 2166 1.7989000000e+00 1.8910000000e+00 2167 1.7639000000e+00 1.8910000000e+00 2168 1.7288000000e+00 1.8910000000e+00 2169 1.7465000000e+00 1.8606000000e+00 2170 1.7114000000e+00 1.8606000000e+00 2171 1.6938000000e+00 1.8910000000e+00 2172 2.9738000000e+00 1.2151000000e-01 2173 3.0089000000e+00 1.2153000000e-01 2174 3.0263000000e+00 9.1151000000e-02 2175 3.0613000000e+00 9.1167000000e-02 2176 3.0964000000e+00 9.1189000000e-02 2177 3.0790000000e+00 1.2155000000e-01 2178 3.1141000000e+00 1.2156000000e-01 2179 -6.2907000000e-01 3.0318000000e-02 2180 -5.9415000000e-01 3.0291000000e-02 2181 -6.1151000000e-01 6.0604000000e-02 2182 -5.7672000000e-01 6.0536000000e-02 2183 -5.9398000000e-01 9.0831000000e-02 2184 -5.5938000000e-01 9.0658000000e-02 2185 -5.7638000000e-01 1.2095000000e-01 2186 -5.4216000000e-01 1.2043000000e-01 2187 -5.5841000000e-01 1.5099000000e-01 2188 -5.2512000000e-01 1.4900000000e-01 2189 -5.3823000000e-01 1.8259000000e-01 2190 -5.0938000000e-01 1.7106000000e-01 2191 -4.9391000000e-01 1.4865000000e-01 2192 -5.0867000000e-01 1.2030000000e-01 2193 -5.2504000000e-01 9.0660000000e-02 2194 -2.1210000000e-01 3.2696000000e-02 2195 -1.7421000000e-01 3.4118000000e-02 2196 -1.3347000000e-01 2.9529000000e-02 2197 -5.9329000000e-01 1.5151000000e-01 2198 -6.1112000000e-01 1.2127000000e-01 2199 -6.2878000000e-01 9.0980000000e-02 2200 -6.4603000000e-01 1.2144000000e-01 2201 -6.6368000000e-01 9.1071000000e-02 2202 -6.8097000000e-01 1.2150000000e-01 2203 -6.9861000000e-01 9.1116000000e-02 2204 -7.1589000000e-01 1.2151000000e-01 2205 -7.3352000000e-01 9.1148000000e-02 2206 -7.5076000000e-01 1.2153000000e-01 2207 -7.3318000000e-01 1.5187000000e-01 2208 -6.9831000000e-01 1.5191000000e-01 2209 -7.1567000000e-01 1.8224000000e-01 2210 -6.8080000000e-01 1.8240000000e-01 2211 -6.9829000000e-01 2.1253000000e-01 2212 -6.6352000000e-01 2.1312000000e-01 2213 -6.8150000000e-01 2.4261000000e-01 2214 -6.4710000000e-01 2.4431000000e-01 2215 -6.2780000000e-01 2.1421000000e-01 2216 -6.4566000000e-01 1.8268000000e-01 2217 -6.6334000000e-01 1.5197000000e-01 2218 4.9215000000e-01 7.1785000000e-02 2219 5.2758000000e-01 7.1790000000e-02 2220 5.6330000000e-01 7.1405000000e-02 2221 5.9795000000e-01 6.9222000000e-02 2222 6.3131000000e-01 6.8197000000e-02 2223 2.4481000000e+00 1.8175000000e-01 2224 2.4656000000e+00 2.1204000000e-01 2225 2.4831000000e+00 2.4232000000e-01 2226 2.5181000000e+00 2.4233000000e-01 2227 2.5531000000e+00 2.4235000000e-01 2228 2.5882000000e+00 2.4238000000e-01 2229 2.6057000000e+00 2.1211000000e-01 2230 2.6233000000e+00 1.8183000000e-01 2231 2.6058000000e+00 1.5152000000e-01 2232 2.6408000000e+00 1.5154000000e-01 2233 3.4612000000e+00 2.4632000000e-01 2234 3.4624000000e+00 2.8185000000e-01 2235 3.4314000000e+00 2.6534000000e-01 2236 3.4330000000e+00 3.0055000000e-01 2237 3.4636000000e+00 3.1685000000e-01 2238 2.6407000000e+00 2.1215000000e-01 2239 2.6583000000e+00 1.8186000000e-01 2240 2.6758000000e+00 1.5157000000e-01 2241 1.6435000000e+00 6.0897000000e-02 2242 3.4297000000e+00 2.2956000000e-01 2243 3.4000000000e+00 2.4916000000e-01 2244 3.4020000000e+00 2.8456000000e-01 2245 3.4041000000e+00 3.1945000000e-01 2246 3.4345000000e+00 3.3520000000e-01 2247 3.4646000000e+00 3.5135000000e-01 2248 -3.8395000000e-01 3.0581000000e-02 2249 -3.4906000000e-01 3.0252000000e-02 2250 -3.1409000000e-01 3.0501000000e-02 2251 -2.9541000000e-01 6.3460000000e-02 2252 -2.6422000000e-01 5.3361000000e-02 2253 3.4653000000e+00 3.8536000000e-01 2254 3.4654000000e+00 4.1897000000e-01 2255 3.4647000000e+00 4.5257000000e-01 2256 3.4633000000e+00 4.8672000000e-01 2257 3.4321000000e+00 5.0223000000e-01 2258 3.4304000000e+00 5.3801000000e-01 2259 3.4298000000e+00 5.7416000000e-01 2260 3.4298000000e+00 6.1009000000e-01 2261 3.4299000000e+00 6.4575000000e-01 2262 3.4301000000e+00 6.8119000000e-01 2263 3.4304000000e+00 7.1649000000e-01 2264 3.4306000000e+00 7.5171000000e-01 2265 3.4308000000e+00 7.8688000000e-01 2266 3.4310000000e+00 8.2203000000e-01 2267 3.4312000000e+00 8.5716000000e-01 2268 3.4313000000e+00 8.9227000000e-01 2269 3.4314000000e+00 9.2736000000e-01 2270 3.4316000000e+00 9.6243000000e-01 2271 3.4317000000e+00 9.9748000000e-01 2272 3.4317000000e+00 1.0325000000e+00 2273 3.4318000000e+00 1.0675000000e+00 2274 3.4318000000e+00 1.1025000000e+00 2275 3.4318000000e+00 1.1375000000e+00 2276 3.4318000000e+00 1.1725000000e+00 2277 3.4317000000e+00 1.2076000000e+00 2278 3.4317000000e+00 1.2426000000e+00 2279 3.4316000000e+00 1.2776000000e+00 2280 3.4316000000e+00 1.3127000000e+00 2281 3.4315000000e+00 1.3477000000e+00 2282 3.4313000000e+00 1.3828000000e+00 2283 3.4312000000e+00 1.4179000000e+00 2284 3.4310000000e+00 1.4531000000e+00 2285 3.4308000000e+00 1.4883000000e+00 2286 3.4306000000e+00 1.5235000000e+00 2287 3.4303000000e+00 1.5588000000e+00 2288 3.4300000000e+00 1.5941000000e+00 2289 3.4296000000e+00 1.6295000000e+00 2290 3.4291000000e+00 1.6650000000e+00 2291 3.4285000000e+00 1.7006000000e+00 2292 3.4277000000e+00 1.7363000000e+00 2293 3.4268000000e+00 1.7723000000e+00 2294 3.4257000000e+00 1.8084000000e+00 2295 3.4243000000e+00 1.8449000000e+00 2296 3.3915000000e+00 1.8642000000e+00 2297 3.3853000000e+00 1.9052000000e+00 2298 3.3437000000e+00 1.9070000000e+00 2299 3.3070000000e+00 1.9067000000e+00 2300 3.2715000000e+00 1.9046000000e+00 2301 3.2353000000e+00 1.9000000000e+00 2302 3.2011000000e+00 1.8937000000e+00 2303 3.1700000000e+00 1.8876000000e+00 2304 3.1379000000e+00 1.8852000000e+00 2305 3.1040000000e+00 1.8835000000e+00 2306 3.0689000000e+00 1.8823000000e+00 2307 3.0330000000e+00 1.8817000000e+00 2308 2.9970000000e+00 1.8820000000e+00 2309 2.9612000000e+00 1.8826000000e+00 2310 2.9254000000e+00 1.8830000000e+00 2311 2.8895000000e+00 1.8832000000e+00 2312 2.8533000000e+00 1.8836000000e+00 2313 2.8170000000e+00 1.8841000000e+00 2314 2.7808000000e+00 1.8851000000e+00 2315 2.7449000000e+00 1.8864000000e+00 2316 2.7094000000e+00 1.8878000000e+00 2317 2.6744000000e+00 1.8891000000e+00 2318 2.6397000000e+00 1.8900000000e+00 2319 2.6050000000e+00 1.8904000000e+00 2320 2.5702000000e+00 1.8904000000e+00 2321 2.5350000000e+00 1.8904000000e+00 2322 2.4996000000e+00 1.8904000000e+00 2323 2.4642000000e+00 1.8908000000e+00 2324 2.4292000000e+00 1.8914000000e+00 2325 2.3946000000e+00 1.8920000000e+00 2326 2.3601000000e+00 1.8921000000e+00 2327 2.3256000000e+00 1.8919000000e+00 2328 2.3091000000e+00 1.8617000000e+00 2329 2.2742000000e+00 1.8611000000e+00 2330 2.2391000000e+00 1.8606000000e+00 2331 2.2223000000e+00 1.8299000000e+00 2332 2.1868000000e+00 1.8294000000e+00 2333 2.1513000000e+00 1.8292000000e+00 2334 2.1158000000e+00 1.8291000000e+00 2335 2.0804000000e+00 1.8292000000e+00 2336 2.0450000000e+00 1.8293000000e+00 2337 2.0097000000e+00 1.8295000000e+00 2338 1.9745000000e+00 1.8298000000e+00 2339 1.9395000000e+00 1.8300000000e+00 2340 1.9045000000e+00 1.8301000000e+00 2341 1.8695000000e+00 1.8302000000e+00 2342 1.8345000000e+00 1.8302000000e+00 2343 1.8167000000e+00 1.8606000000e+00 2344 1.7816000000e+00 1.8606000000e+00 2345 1.7643000000e+00 1.8302000000e+00 2346 1.7292000000e+00 1.8301000000e+00 2347 1.6941000000e+00 1.8301000000e+00 2348 1.6763000000e+00 1.8606000000e+00 2349 1.6587000000e+00 1.8910000000e+00 2350 1.6236000000e+00 1.8910000000e+00 2351 1.5885000000e+00 1.8910000000e+00 2352 1.5535000000e+00 1.8910000000e+00 2353 1.5185000000e+00 1.8910000000e+00 2354 1.4834000000e+00 1.8910000000e+00 2355 1.4484000000e+00 1.8910000000e+00 2356 1.4134000000e+00 1.8910000000e+00 2357 1.3784000000e+00 1.8910000000e+00 2358 1.3434000000e+00 1.8910000000e+00 2359 1.3084000000e+00 1.8910000000e+00 2360 1.2734000000e+00 1.8910000000e+00 2361 1.2383000000e+00 1.8910000000e+00 2362 1.2209000000e+00 1.8606000000e+00 2363 1.1859000000e+00 1.8606000000e+00 2364 1.1509000000e+00 1.8606000000e+00 2365 1.1159000000e+00 1.8606000000e+00 2366 1.0809000000e+00 1.8606000000e+00 2367 1.0459000000e+00 1.8606000000e+00 2368 1.0109000000e+00 1.8606000000e+00 2369 9.7597000000e-01 1.8606000000e+00 2370 9.4098000000e-01 1.8606000000e+00 2371 9.0598000000e-01 1.8606000000e+00 2372 8.7098000000e-01 1.8606000000e+00 2373 8.3597000000e-01 1.8606000000e+00 2374 8.0095000000e-01 1.8606000000e+00 2375 7.6594000000e-01 1.8606000000e+00 2376 7.3092000000e-01 1.8607000000e+00 2377 6.9591000000e-01 1.8607000000e+00 2378 6.6091000000e-01 1.8607000000e+00 2379 6.2591000000e-01 1.8607000000e+00 2380 5.9092000000e-01 1.8608000000e+00 2381 5.5593000000e-01 1.8608000000e+00 2382 5.2094000000e-01 1.8608000000e+00 2383 4.8595000000e-01 1.8608000000e+00 2384 4.5096000000e-01 1.8608000000e+00 2385 4.1596000000e-01 1.8608000000e+00 2386 3.8095000000e-01 1.8608000000e+00 2387 3.4594000000e-01 1.8608000000e+00 2388 3.1093000000e-01 1.8608000000e+00 2389 2.7592000000e-01 1.8608000000e+00 2390 2.4090000000e-01 1.8608000000e+00 2391 2.0589000000e-01 1.8608000000e+00 2392 1.7088000000e-01 1.8608000000e+00 2393 1.3587000000e-01 1.8608000000e+00 2394 1.0086000000e-01 1.8608000000e+00 2395 6.5855000000e-02 1.8608000000e+00 2396 3.0850000000e-02 1.8608000000e+00 2397 -4.1533000000e-03 1.8608000000e+00 2398 -3.9154000000e-02 1.8608000000e+00 2399 -7.4153000000e-02 1.8608000000e+00 2400 -1.0915000000e-01 1.8608000000e+00 2401 -1.4415000000e-01 1.8608000000e+00 2402 -1.7914000000e-01 1.8608000000e+00 2403 -2.1413000000e-01 1.8608000000e+00 2404 -2.4913000000e-01 1.8608000000e+00 2405 -2.8412000000e-01 1.8608000000e+00 2406 -3.1912000000e-01 1.8608000000e+00 2407 -3.5411000000e-01 1.8608000000e+00 2408 -3.8911000000e-01 1.8608000000e+00 2409 -4.2410000000e-01 1.8608000000e+00 2410 -4.5910000000e-01 1.8608000000e+00 2411 -4.9410000000e-01 1.8608000000e+00 2412 -5.2910000000e-01 1.8608000000e+00 2413 -5.6411000000e-01 1.8608000000e+00 2414 -5.9911000000e-01 1.8608000000e+00 2415 -6.3412000000e-01 1.8608000000e+00 2416 -6.6914000000e-01 1.8608000000e+00 2417 -7.0416000000e-01 1.8607000000e+00 2418 -7.3918000000e-01 1.8607000000e+00 2419 -7.7421000000e-01 1.8606000000e+00 2420 -8.0924000000e-01 1.8604000000e+00 2421 -8.4429000000e-01 1.8602000000e+00 2422 -8.7935000000e-01 1.8599000000e+00 2423 -9.1444000000e-01 1.8595000000e+00 2424 -9.4957000000e-01 1.8589000000e+00 2425 -9.8478000000e-01 1.8582000000e+00 2426 -1.0201000000e+00 1.8572000000e+00 2427 -1.0556000000e+00 1.8560000000e+00 2428 -1.0914000000e+00 1.8545000000e+00 2429 -1.1276000000e+00 1.8526000000e+00 2430 -1.1648000000e+00 1.8504000000e+00 2431 -1.2018000000e+00 1.8506000000e+00 2432 -1.1859000000e+00 1.8126000000e+00 2433 -1.1850000000e+00 1.7702000000e+00 2434 -1.1812000000e+00 1.7327000000e+00 2435 -1.1741000000e+00 1.6995000000e+00 2436 -1.1933000000e+00 1.6784000000e+00 2437 -1.1673000000e+00 1.6680000000e+00 2438 -1.1634000000e+00 1.6327000000e+00 2439 -1.1564000000e+00 1.5917000000e+00 2440 -1.1633000000e+00 1.5521000000e+00 2441 -1.1337000000e+00 1.5338000000e+00 2442 -1.1347000000e+00 1.4983000000e+00 2443 -1.1372000000e+00 1.4629000000e+00 2444 -1.1080000000e+00 1.4456000000e+00 2445 -1.1064000000e+00 1.4794000000e+00 2446 -1.0794000000e+00 1.4628000000e+00 2447 -1.0780000000e+00 1.4296000000e+00 2448 -1.1084000000e+00 1.4110000000e+00 2449 -1.1087000000e+00 1.3757000000e+00 2450 -1.1092000000e+00 1.3403000000e+00 2451 -1.1098000000e+00 1.3047000000e+00 2452 -1.1105000000e+00 1.2692000000e+00 2453 -1.1416000000e+00 1.2515000000e+00 2454 -1.1112000000e+00 1.2339000000e+00 2455 -1.1118000000e+00 1.1986000000e+00 2456 -1.1123000000e+00 1.1635000000e+00 2457 -1.0822000000e+00 1.1459000000e+00 2458 -1.0521000000e+00 1.1284000000e+00 2459 -1.0220000000e+00 1.1109000000e+00 2460 -9.9191000000e-01 1.0934000000e+00 2461 -9.6174000000e-01 1.0761000000e+00 2462 -9.6181000000e-01 1.0409000000e+00 2463 -9.6190000000e-01 1.0057000000e+00 2464 -9.6198000000e-01 9.7051000000e-01 2465 -9.9230000000e-01 9.5298000000e-01 2466 -9.9230000000e-01 9.1781000000e-01 2467 -9.6203000000e-01 9.3531000000e-01 2468 -9.6203000000e-01 9.0012000000e-01 2469 -9.9225000000e-01 8.8265000000e-01 2470 -9.9215000000e-01 8.4748000000e-01 2471 -9.6196000000e-01 8.6494000000e-01 2472 -9.6185000000e-01 8.2975000000e-01 2473 -9.9201000000e-01 8.1233000000e-01 2474 -1.2953000000e+00 7.0794000000e-01 2475 -1.0528000000e+00 4.6330000000e-01 2476 -1.0532000000e+00 4.3052000000e-01 2477 -9.3179000000e-01 8.8239000000e-01 2478 -9.3169000000e-01 8.4718000000e-01 2479 1.4839000000e+00 1.5504000000e-01 2480 1.5021000000e+00 1.8558000000e-01 2481 1.5378000000e+00 1.8476000000e-01 2482 -9.3173000000e-01 9.5280000000e-01 2483 -9.3180000000e-01 9.1759000000e-01 2484 -9.0164000000e-01 8.9983000000e-01 2485 -9.0159000000e-01 8.6466000000e-01 2486 -8.7158000000e-01 8.8209000000e-01 2487 -8.7143000000e-01 8.4700000000e-01 2488 -9.0140000000e-01 8.2940000000e-01 2489 -9.3154000000e-01 8.1192000000e-01 2490 1.4660000000e+00 1.8676000000e-01 2491 8.8002000000e-01 4.7902000000e-02 2492 9.1458000000e-01 4.2927000000e-02 2493 9.3569000000e-01 7.0631000000e-02 2494 1.5204000000e+00 2.1581000000e-01 2495 1.5558000000e+00 2.1514000000e-01 2496 1.5737000000e+00 2.4562000000e-01 2497 1.6093000000e+00 2.4537000000e-01 2498 1.6450000000e+00 2.4489000000e-01 2499 1.6624000000e+00 2.1354000000e-01 2500 1.6796000000e+00 1.8247000000e-01 2501 1.6968000000e+00 1.5164000000e-01 2502 -5.4202000000e-01 6.0547000000e-02 2503 -5.5927000000e-01 3.0289000000e-02 2504 -5.0734000000e-01 6.0777000000e-02 2505 -5.2441000000e-01 3.0358000000e-02 2506 -4.9070000000e-01 9.1242000000e-02 2507 -4.7241000000e-01 6.1308000000e-02 2508 -4.8948000000e-01 3.0536000000e-02 2509 -4.5565000000e-01 9.2605000000e-02 2510 -4.7511000000e-01 1.2179000000e-01 2511 -4.3973000000e-01 1.2522000000e-01 2512 -4.6202000000e-01 1.5271000000e-01 2513 -5.6656000000e-02 1.8305000000e+00 2514 -9.1653000000e-02 1.8305000000e+00 2515 -1.2665000000e-01 1.8305000000e+00 2516 -1.6164000000e-01 1.8305000000e+00 2517 -1.9663000000e-01 1.8305000000e+00 2518 -2.3162000000e-01 1.8305000000e+00 2519 -2.6661000000e-01 1.8305000000e+00 2520 -3.0160000000e-01 1.8305000000e+00 2521 -3.3659000000e-01 1.8305000000e+00 2522 -3.7159000000e-01 1.8305000000e+00 2523 -4.0658000000e-01 1.8305000000e+00 2524 -4.4158000000e-01 1.8305000000e+00 2525 -4.7658000000e-01 1.8305000000e+00 2526 -5.1158000000e-01 1.8305000000e+00 2527 -5.4658000000e-01 1.8305000000e+00 2528 -5.8159000000e-01 1.8305000000e+00 2529 -6.1660000000e-01 1.8305000000e+00 2530 -6.5162000000e-01 1.8305000000e+00 2531 -6.8664000000e-01 1.8304000000e+00 2532 -7.2167000000e-01 1.8304000000e+00 2533 -7.5670000000e-01 1.8303000000e+00 2534 -7.9174000000e-01 1.8301000000e+00 2535 -8.2679000000e-01 1.8299000000e+00 2536 -8.6184000000e-01 1.8297000000e+00 2537 -8.9690000000e-01 1.8293000000e+00 2538 -9.3198000000e-01 1.8288000000e+00 2539 -9.6711000000e-01 1.8280000000e+00 2540 -1.0023000000e+00 1.8271000000e+00 2541 -1.0377000000e+00 1.8258000000e+00 2542 -1.0733000000e+00 1.8242000000e+00 2543 -1.1091000000e+00 1.8222000000e+00 2544 -1.1453000000e+00 1.8196000000e+00 2545 4.7430000000e-01 1.0171000000e-01 2546 5.0991000000e-01 1.0189000000e-01 2547 4.9209000000e-01 1.3203000000e-01 2548 5.2758000000e-01 1.3205000000e-01 2549 5.4579000000e-01 1.0200000000e-01 2550 5.6228000000e-01 1.3206000000e-01 2551 5.8416000000e-01 1.0280000000e-01 2552 -1.0198000000e+00 1.7959000000e+00 2553 -1.0551000000e+00 1.7943000000e+00 2554 -1.0907000000e+00 1.7923000000e+00 2555 -1.1265000000e+00 1.7900000000e+00 2556 -1.1581000000e+00 1.7897000000e+00 2557 -1.1479000000e+00 1.7559000000e+00 2558 -1.1530000000e+00 1.7215000000e+00 2559 -1.1387000000e+00 1.6925000000e+00 2560 2.7108000000e+00 1.5159000000e-01 2561 2.6933000000e+00 1.8190000000e-01 2562 2.7284000000e+00 1.8194000000e-01 2563 2.7459000000e+00 1.5163000000e-01 2564 2.7284000000e+00 1.2129000000e-01 2565 2.7459000000e+00 9.0971000000e-02 2566 2.7809000000e+00 9.0990000000e-02 2567 2.7634000000e+00 1.2131000000e-01 2568 2.7984000000e+00 1.2134000000e-01 2569 2.8159000000e+00 9.1011000000e-02 2570 -1.1082000000e+00 1.7599000000e+00 2571 3.3996000000e+00 6.9868000000e-01 2572 3.3999000000e+00 7.3393000000e-01 2573 3.4001000000e+00 7.6913000000e-01 2574 3.4004000000e+00 8.0430000000e-01 2575 3.4006000000e+00 8.3947000000e-01 2576 3.4008000000e+00 8.7462000000e-01 2577 3.4009000000e+00 9.0974000000e-01 2578 3.4011000000e+00 9.4485000000e-01 2579 3.4012000000e+00 9.7992000000e-01 2580 3.4013000000e+00 1.0150000000e+00 2581 3.4014000000e+00 1.0500000000e+00 2582 3.4014000000e+00 1.0850000000e+00 2583 3.4015000000e+00 1.1200000000e+00 2584 3.4015000000e+00 1.1550000000e+00 2585 3.4014000000e+00 1.1901000000e+00 2586 3.4014000000e+00 1.2251000000e+00 2587 3.4013000000e+00 1.2601000000e+00 2588 3.4012000000e+00 1.2952000000e+00 2589 3.4011000000e+00 1.3302000000e+00 2590 3.4010000000e+00 1.3654000000e+00 2591 3.4008000000e+00 1.4005000000e+00 2592 3.4006000000e+00 1.4357000000e+00 2593 3.4004000000e+00 1.4709000000e+00 2594 3.4001000000e+00 1.5061000000e+00 2595 3.3998000000e+00 1.5415000000e+00 2596 3.3994000000e+00 1.5768000000e+00 2597 3.3990000000e+00 1.6123000000e+00 2598 3.3985000000e+00 1.6478000000e+00 2599 3.3979000000e+00 1.6834000000e+00 2600 3.3971000000e+00 1.7192000000e+00 2601 3.3961000000e+00 1.7551000000e+00 2602 3.3949000000e+00 1.7912000000e+00 2603 3.3935000000e+00 1.8276000000e+00 2604 3.3614000000e+00 1.8470000000e+00 2605 3.3620000000e+00 1.8788000000e+00 2606 3.3278000000e+00 1.8709000000e+00 2607 3.2931000000e+00 1.8793000000e+00 2608 3.2618000000e+00 1.8669000000e+00 2609 3.2244000000e+00 1.8663000000e+00 2610 3.1917000000e+00 1.8613000000e+00 2611 3.1589000000e+00 1.8569000000e+00 2612 3.1251000000e+00 1.8539000000e+00 2613 3.0901000000e+00 1.8512000000e+00 2614 3.0537000000e+00 1.8490000000e+00 2615 3.0168000000e+00 1.8491000000e+00 2616 2.9807000000e+00 1.8506000000e+00 2617 2.9995000000e+00 1.8189000000e+00 2618 2.9649000000e+00 1.8197000000e+00 2619 2.9451000000e+00 1.8511000000e+00 2620 2.9092000000e+00 1.8512000000e+00 2621 2.8729000000e+00 1.8512000000e+00 2622 2.8363000000e+00 1.8515000000e+00 2623 2.7994000000e+00 1.8524000000e+00 2624 2.7628000000e+00 1.8539000000e+00 2625 2.7268000000e+00 1.8559000000e+00 2626 2.6916000000e+00 1.8579000000e+00 2627 2.6571000000e+00 1.8595000000e+00 2628 2.6229000000e+00 1.8602000000e+00 2629 2.5884000000e+00 1.8602000000e+00 2630 2.5535000000e+00 1.8599000000e+00 2631 2.5179000000e+00 1.8595000000e+00 2632 2.4819000000e+00 1.8596000000e+00 2633 2.4463000000e+00 1.8606000000e+00 2634 2.4116000000e+00 1.8619000000e+00 2635 2.3777000000e+00 1.8625000000e+00 2636 2.3436000000e+00 1.8622000000e+00 2637 2.3275000000e+00 1.8320000000e+00 2638 2.2928000000e+00 1.8312000000e+00 2639 2.3116000000e+00 1.8015000000e+00 2640 2.2766000000e+00 1.8004000000e+00 2641 2.2577000000e+00 1.8304000000e+00 2642 2.2412000000e+00 1.7995000000e+00 2643 2.2055000000e+00 1.7989000000e+00 2644 2.1698000000e+00 1.7985000000e+00 2645 2.1341000000e+00 1.7984000000e+00 2646 2.0985000000e+00 1.7983000000e+00 2647 2.0630000000e+00 1.7985000000e+00 2648 2.0275000000e+00 1.7988000000e+00 2649 1.9923000000e+00 1.7991000000e+00 2650 1.9572000000e+00 1.7995000000e+00 2651 1.9222000000e+00 1.7997000000e+00 2652 1.8873000000e+00 1.7998000000e+00 2653 1.8523000000e+00 1.7999000000e+00 2654 1.8173000000e+00 1.7998000000e+00 2655 1.7994000000e+00 1.8302000000e+00 2656 1.7823000000e+00 1.7997000000e+00 2657 1.7471000000e+00 1.7997000000e+00 2658 1.7119000000e+00 1.7996000000e+00 2659 1.6767000000e+00 1.7997000000e+00 2660 1.6589000000e+00 1.8301000000e+00 2661 1.6412000000e+00 1.8606000000e+00 2662 1.6061000000e+00 1.8606000000e+00 2663 1.5711000000e+00 1.8606000000e+00 2664 1.5360000000e+00 1.8606000000e+00 2665 1.5010000000e+00 1.8606000000e+00 2666 1.4659000000e+00 1.8606000000e+00 2667 1.4309000000e+00 1.8606000000e+00 2668 1.3959000000e+00 1.8606000000e+00 2669 1.3609000000e+00 1.8606000000e+00 2670 1.3259000000e+00 1.8606000000e+00 2671 1.2909000000e+00 1.8606000000e+00 2672 1.2559000000e+00 1.8606000000e+00 2673 1.2384000000e+00 1.8302000000e+00 2674 1.2033000000e+00 1.8302000000e+00 2675 1.1684000000e+00 1.8302000000e+00 2676 1.1334000000e+00 1.8302000000e+00 2677 1.0984000000e+00 1.8303000000e+00 2678 1.0634000000e+00 1.8303000000e+00 2679 1.0285000000e+00 1.8303000000e+00 2680 9.9349000000e-01 1.8303000000e+00 2681 9.5851000000e-01 1.8303000000e+00 2682 9.2352000000e-01 1.8303000000e+00 2683 8.8852000000e-01 1.8303000000e+00 2684 8.5351000000e-01 1.8302000000e+00 2685 8.1849000000e-01 1.8302000000e+00 2686 7.8347000000e-01 1.8303000000e+00 2687 7.4845000000e-01 1.8303000000e+00 2688 7.1343000000e-01 1.8303000000e+00 2689 6.7842000000e-01 1.8304000000e+00 2690 6.4343000000e-01 1.8304000000e+00 2691 6.0844000000e-01 1.8304000000e+00 2692 5.7345000000e-01 1.8305000000e+00 2693 5.3847000000e-01 1.8305000000e+00 2694 5.0349000000e-01 1.8305000000e+00 2695 4.6850000000e-01 1.8305000000e+00 2696 4.3350000000e-01 1.8305000000e+00 2697 3.9850000000e-01 1.8305000000e+00 2698 3.6349000000e-01 1.8305000000e+00 2699 3.2847000000e-01 1.8305000000e+00 2700 2.9345000000e-01 1.8305000000e+00 2701 2.5844000000e-01 1.8305000000e+00 2702 2.2342000000e-01 1.8305000000e+00 2703 1.8840000000e-01 1.8305000000e+00 2704 1.5339000000e-01 1.8305000000e+00 2705 1.1837000000e-01 1.8304000000e+00 2706 8.3361000000e-02 1.8304000000e+00 2707 4.8353000000e-02 1.8305000000e+00 2708 1.3347000000e-02 1.8305000000e+00 2709 -2.1656000000e-02 1.8305000000e+00 2710 -3.9160000000e-02 1.8001000000e+00 2711 -7.4158000000e-02 1.8001000000e+00 2712 -1.0915000000e-01 1.8001000000e+00 2713 -1.4414000000e-01 1.8002000000e+00 2714 -1.7913000000e-01 1.8002000000e+00 2715 -2.1412000000e-01 1.8002000000e+00 2716 -2.4910000000e-01 1.8002000000e+00 2717 -2.8409000000e-01 1.8002000000e+00 2718 -3.1907000000e-01 1.8002000000e+00 2719 -3.5406000000e-01 1.8002000000e+00 2720 -3.8905000000e-01 1.8002000000e+00 2721 -4.2405000000e-01 1.8002000000e+00 2722 -4.5904000000e-01 1.8002000000e+00 2723 -4.9404000000e-01 1.8002000000e+00 2724 -5.2905000000e-01 1.8002000000e+00 2725 -5.6405000000e-01 1.8002000000e+00 2726 -5.9907000000e-01 1.8002000000e+00 2727 -6.3409000000e-01 1.8002000000e+00 2728 -6.6911000000e-01 1.8002000000e+00 2729 -7.0415000000e-01 1.8001000000e+00 2730 -7.3919000000e-01 1.8000000000e+00 2731 -7.7424000000e-01 1.7999000000e+00 2732 -8.0929000000e-01 1.7997000000e+00 2733 -8.4434000000e-01 1.7995000000e+00 2734 -8.7939000000e-01 1.7991000000e+00 2735 -9.1444000000e-01 1.7986000000e+00 2736 -9.4950000000e-01 1.7980000000e+00 2737 -9.8459000000e-01 1.7971000000e+00 2738 -1.0020000000e+00 1.7662000000e+00 2739 -1.0370000000e+00 1.7647000000e+00 2740 -1.0722000000e+00 1.7627000000e+00 2741 -1.0885000000e+00 1.7312000000e+00 2742 -1.1233000000e+00 1.7269000000e+00 2743 -1.1034000000e+00 1.7004000000e+00 2744 -1.1138000000e+00 1.6743000000e+00 2745 -1.1361000000e+00 1.6563000000e+00 2746 -1.1283000000e+00 1.6223000000e+00 2747 -1.1165000000e+00 1.5888000000e+00 2748 -1.1350000000e+00 1.5644000000e+00 2749 -1.1052000000e+00 1.5555000000e+00 2750 -1.0985000000e+00 1.5164000000e+00 2751 3.4909000000e+00 1.9140000000e-01 2752 3.4600000000e+00 2.1012000000e-01 2753 3.4279000000e+00 1.9310000000e-01 2754 3.3978000000e+00 2.1328000000e-01 2755 3.3682000000e+00 2.3333000000e-01 2756 3.3706000000e+00 2.6882000000e-01 2757 3.3731000000e+00 3.0395000000e-01 2758 3.3756000000e+00 3.3865000000e-01 2759 3.4061000000e+00 3.5375000000e-01 2760 3.4359000000e+00 3.6920000000e-01 2761 3.4368000000e+00 4.0236000000e-01 2762 3.4366000000e+00 4.3488000000e-01 2763 3.4346000000e+00 4.6781000000e-01 2764 3.4029000000e+00 4.8144000000e-01 2765 3.3991000000e+00 5.1770000000e-01 2766 3.3983000000e+00 5.5513000000e-01 2767 3.3984000000e+00 5.9175000000e-01 2768 3.3988000000e+00 6.2774000000e-01 2769 3.3992000000e+00 6.6333000000e-01 2770 3.3687000000e+00 6.8092000000e-01 2771 3.3691000000e+00 7.1613000000e-01 2772 3.3694000000e+00 7.5132000000e-01 2773 3.3697000000e+00 7.8651000000e-01 2774 3.3699000000e+00 8.2171000000e-01 2775 3.3701000000e+00 8.5690000000e-01 2776 3.3704000000e+00 8.9207000000e-01 2777 3.3706000000e+00 9.2722000000e-01 2778 3.3707000000e+00 9.6233000000e-01 2779 3.3709000000e+00 9.9741000000e-01 2780 3.3710000000e+00 1.0325000000e+00 2781 3.3711000000e+00 1.0675000000e+00 2782 3.3711000000e+00 1.1025000000e+00 2783 3.3711000000e+00 1.1375000000e+00 2784 3.3711000000e+00 1.1725000000e+00 2785 3.3710000000e+00 1.2076000000e+00 2786 3.3710000000e+00 1.2426000000e+00 2787 3.3709000000e+00 1.2777000000e+00 2788 3.3707000000e+00 1.3128000000e+00 2789 3.3706000000e+00 1.3479000000e+00 2790 3.3704000000e+00 1.3830000000e+00 2791 3.3702000000e+00 1.4182000000e+00 2792 3.3699000000e+00 1.4535000000e+00 2793 3.3696000000e+00 1.4888000000e+00 2794 3.3693000000e+00 1.5241000000e+00 2795 3.3689000000e+00 1.5596000000e+00 2796 3.3684000000e+00 1.5951000000e+00 2797 3.3679000000e+00 1.6306000000e+00 2798 3.3673000000e+00 1.6663000000e+00 2799 3.3665000000e+00 1.7020000000e+00 2800 3.3656000000e+00 1.7379000000e+00 2801 3.3643000000e+00 1.7740000000e+00 2802 3.3629000000e+00 1.8104000000e+00 2803 3.3304000000e+00 1.8300000000e+00 2804 3.0440000000e+00 1.2155000000e-01 2805 3.0617000000e+00 1.5195000000e-01 2806 3.0968000000e+00 1.5192000000e-01 2807 3.1318000000e+00 1.5186000000e-01 2808 3.1490000000e+00 1.2158000000e-01 2809 1.6978000000e+00 2.1272000000e-01 2810 1.7148000000e+00 1.8175000000e-01 2811 1.7319000000e+00 1.5106000000e-01 2812 1.7141000000e+00 1.2102000000e-01 2813 1.7499000000e+00 1.8099000000e-01 2814 1.7848000000e+00 1.8023000000e-01 2815 1.8194000000e+00 1.7952000000e-01 2816 1.8363000000e+00 1.4949000000e-01 2817 1.8027000000e+00 2.0977000000e-01 2818 1.8371000000e+00 2.0885000000e-01 2819 1.8538000000e+00 1.7897000000e-01 2820 1.8708000000e+00 1.4921000000e-01 2821 1.8535000000e+00 1.1956000000e-01 2822 1.8360000000e+00 8.9799000000e-02 2823 1.8708000000e+00 8.9674000000e-02 2824 3.3324000000e+00 1.7929000000e+00 2825 3.3004000000e+00 1.8115000000e+00 2826 3.2971000000e+00 1.8479000000e+00 2827 3.2688000000e+00 1.8290000000e+00 2828 3.2421000000e+00 1.8418000000e+00 2829 3.2145000000e+00 1.8346000000e+00 2830 3.1814000000e+00 1.8288000000e+00 2831 3.1472000000e+00 1.8252000000e+00 2832 3.1126000000e+00 1.8213000000e+00 2833 3.0765000000e+00 1.8173000000e+00 2834 3.0370000000e+00 1.8125000000e+00 2835 3.0131000000e+00 1.7920000000e+00 2836 2.9848000000e+00 1.7896000000e+00 2837 2.9501000000e+00 1.7885000000e+00 2838 2.9294000000e+00 1.8195000000e+00 2839 2.9142000000e+00 1.7873000000e+00 2840 2.8932000000e+00 1.8191000000e+00 2841 4.3855000000e-01 1.0120000000e-01 2842 4.5633000000e-01 1.3192000000e-01 2843 4.1958000000e-01 1.3172000000e-01 2844 4.3897000000e-01 1.6255000000e-01 2845 4.7453000000e-01 1.6232000000e-01 2846 5.1000000000e-01 1.6229000000e-01 2847 4.9246000000e-01 1.9257000000e-01 2848 5.2798000000e-01 1.9273000000e-01 2849 5.0997000000e-01 2.2304000000e-01 2850 5.4527000000e-01 2.2359000000e-01 2851 5.6478000000e-01 1.9285000000e-01 2852 5.2723000000e-01 2.5336000000e-01 2853 5.5764000000e-01 2.5089000000e-01 2854 5.8411000000e-01 2.2867000000e-01 2855 6.0582000000e-01 1.8987000000e-01 2856 5.8015000000e-01 1.6025000000e-01 2857 5.4545000000e-01 1.6204000000e-01 2858 4.9200000000e-01 2.5341000000e-01 2859 5.0959000000e-01 2.8860000000e-01 2860 5.4896000000e-01 2.8062000000e-01 2861 1.2356000000e+00 7.8209000000e-02 2862 1.2565000000e+00 1.2947000000e-01 2863 1.2884000000e+00 1.5330000000e-01 2864 1.3215000000e+00 1.5886000000e-01 2865 1.3458000000e+00 1.8023000000e-01 2866 1.3869000000e+00 1.9166000000e-01 2867 1.4288000000e+00 1.8857000000e-01 2868 1.4492000000e+00 2.1869000000e-01 2869 1.4849000000e+00 2.1689000000e-01 2870 1.5031000000e+00 2.4667000000e-01 2871 1.5383000000e+00 2.4596000000e-01 2872 1.5559000000e+00 2.7624000000e-01 2873 1.5209000000e+00 2.7645000000e-01 2874 1.5382000000e+00 3.0632000000e-01 2875 1.5036000000e+00 3.0656000000e-01 2876 1.5207000000e+00 3.3603000000e-01 2877 1.4863000000e+00 3.3650000000e-01 2878 1.5035000000e+00 3.6590000000e-01 2879 1.5376000000e+00 3.6509000000e-01 2880 1.5549000000e+00 3.3599000000e-01 2881 1.5731000000e+00 3.0679000000e-01 2882 1.5914000000e+00 2.7647000000e-01 2883 1.6274000000e+00 2.7656000000e-01 2884 1.4862000000e+00 2.7711000000e-01 2885 1.4692000000e+00 3.0708000000e-01 2886 1.4518000000e+00 3.3690000000e-01 2887 1.4690000000e+00 3.6666000000e-01 2888 1.4865000000e+00 3.9632000000e-01 2889 1.5211000000e+00 3.9501000000e-01 2890 1.5045000000e+00 4.2578000000e-01 2891 1.5392000000e+00 4.2380000000e-01 2892 1.5550000000e+00 3.9333000000e-01 2893 3.4910000000e+00 1.5479000000e-01 2894 3.4590000000e+00 1.7266000000e-01 2895 3.4254000000e+00 1.5589000000e-01 2896 3.3952000000e+00 1.7704000000e-01 2897 3.3655000000e+00 1.9746000000e-01 2898 3.3362000000e+00 2.1790000000e-01 2899 3.3389000000e+00 2.5331000000e-01 2900 3.3416000000e+00 2.8855000000e-01 2901 3.3444000000e+00 3.2357000000e-01 2902 3.3474000000e+00 3.5831000000e-01 2903 3.3783000000e+00 3.7280000000e-01 2904 3.4081000000e+00 3.8709000000e-01 2905 3.4097000000e+00 4.1858000000e-01 2906 3.4082000000e+00 4.4891000000e-01 2907 3.3783000000e+00 4.5823000000e-01 2908 3.3651000000e+00 4.9364000000e-01 2909 3.3657000000e+00 5.3563000000e-01 2910 3.3665000000e+00 5.7343000000e-01 2911 3.3673000000e+00 6.0986000000e-01 2912 3.3681000000e+00 6.4557000000e-01 2913 3.3377000000e+00 6.6334000000e-01 2914 3.3383000000e+00 6.9838000000e-01 2915 3.3386000000e+00 7.3347000000e-01 2916 3.3389000000e+00 7.6864000000e-01 2917 3.3392000000e+00 8.0386000000e-01 2918 3.3394000000e+00 8.3910000000e-01 2919 3.3397000000e+00 8.7433000000e-01 2920 3.3399000000e+00 9.0954000000e-01 2921 3.3402000000e+00 9.4471000000e-01 2922 3.3404000000e+00 9.7983000000e-01 2923 3.3405000000e+00 1.0149000000e+00 2924 3.3407000000e+00 1.0500000000e+00 2925 3.3407000000e+00 1.0850000000e+00 2926 3.3408000000e+00 1.1200000000e+00 2927 3.3407000000e+00 1.1550000000e+00 2928 3.3407000000e+00 1.1901000000e+00 2929 3.3406000000e+00 1.2251000000e+00 2930 3.3405000000e+00 1.2602000000e+00 2931 3.3404000000e+00 1.2953000000e+00 2932 3.3402000000e+00 1.3304000000e+00 2933 3.3400000000e+00 1.3656000000e+00 2934 3.3397000000e+00 1.4008000000e+00 2935 3.3394000000e+00 1.4361000000e+00 2936 3.3391000000e+00 1.4714000000e+00 2937 3.3387000000e+00 1.5068000000e+00 2938 3.3383000000e+00 1.5423000000e+00 2939 3.3378000000e+00 1.5779000000e+00 2940 3.3373000000e+00 1.6135000000e+00 2941 3.3367000000e+00 1.6492000000e+00 2942 3.3360000000e+00 1.6849000000e+00 2943 3.3351000000e+00 1.7207000000e+00 2944 3.3340000000e+00 1.7567000000e+00 2945 3.3023000000e+00 1.7754000000e+00 2946 3.2709000000e+00 1.7939000000e+00 2947 3.2406000000e+00 1.8123000000e+00 2948 3.2065000000e+00 1.7976000000e+00 2949 3.1694000000e+00 1.7974000000e+00 2950 3.1359000000e+00 1.7929000000e+00 2951 3.1009000000e+00 1.7876000000e+00 2952 3.0647000000e+00 1.7824000000e+00 2953 3.0348000000e+00 1.7787000000e+00 2954 3.0097000000e+00 1.7603000000e+00 2955 2.9717000000e+00 1.7583000000e+00 2956 2.9358000000e+00 1.7564000000e+00 2957 2.8994000000e+00 1.7544000000e+00 2958 2.8774000000e+00 1.7862000000e+00 2959 2.8563000000e+00 1.8187000000e+00 2960 2.8188000000e+00 1.8189000000e+00 2961 2.7811000000e+00 1.8203000000e+00 2962 2.7441000000e+00 1.8230000000e+00 2963 2.7083000000e+00 1.8262000000e+00 2964 2.7243000000e+00 1.7934000000e+00 2965 2.6892000000e+00 1.7976000000e+00 2966 2.6738000000e+00 1.8289000000e+00 2967 2.6403000000e+00 1.8305000000e+00 2968 2.6068000000e+00 1.8305000000e+00 2969 2.5724000000e+00 1.8297000000e+00 2970 2.5369000000e+00 1.8287000000e+00 2971 2.5005000000e+00 1.8281000000e+00 2972 2.4632000000e+00 1.8282000000e+00 2973 2.4275000000e+00 1.8313000000e+00 2974 2.3947000000e+00 1.8337000000e+00 2975 2.3617000000e+00 1.8330000000e+00 2976 2.3464000000e+00 1.8024000000e+00 2977 2.3305000000e+00 1.7725000000e+00 2978 2.2961000000e+00 1.7706000000e+00 2979 2.2605000000e+00 1.7690000000e+00 2980 2.2245000000e+00 1.7682000000e+00 2981 2.1885000000e+00 1.7677000000e+00 2982 2.1526000000e+00 1.7675000000e+00 2983 2.1168000000e+00 1.7674000000e+00 2984 2.0811000000e+00 1.7675000000e+00 2985 2.0454000000e+00 1.7678000000e+00 2986 2.0100000000e+00 1.7683000000e+00 2987 1.9748000000e+00 1.7688000000e+00 2988 1.9399000000e+00 1.7693000000e+00 2989 1.9050000000e+00 1.7695000000e+00 2990 1.8702000000e+00 1.7696000000e+00 2991 1.8353000000e+00 1.7695000000e+00 2992 1.8003000000e+00 1.7693000000e+00 2993 1.7651000000e+00 1.7692000000e+00 2994 1.7298000000e+00 1.7691000000e+00 2995 1.6945000000e+00 1.7691000000e+00 2996 1.6592000000e+00 1.7692000000e+00 2997 1.6415000000e+00 1.7997000000e+00 2998 1.6238000000e+00 1.8302000000e+00 2999 1.5887000000e+00 1.8302000000e+00 3000 1.5536000000e+00 1.8302000000e+00 3001 1.5185000000e+00 1.8302000000e+00 3002 1.4835000000e+00 1.8302000000e+00 3003 2.0593000000e-01 1.8001000000e+00 3004 1.7091000000e-01 1.8001000000e+00 3005 1.3589000000e-01 1.8001000000e+00 3006 1.0087000000e-01 1.8001000000e+00 3007 6.5859000000e-02 1.8001000000e+00 3008 3.0848000000e-02 1.8001000000e+00 3009 -4.1582000000e-03 1.8001000000e+00 3010 -2.1667000000e-02 1.7698000000e+00 3011 -5.6667000000e-02 1.7698000000e+00 3012 -9.1661000000e-02 1.7698000000e+00 3013 -1.2665000000e-01 1.7698000000e+00 3014 -1.6163000000e-01 1.7698000000e+00 3015 -1.9661000000e-01 1.7698000000e+00 3016 -2.3159000000e-01 1.7699000000e+00 3017 -2.6657000000e-01 1.7699000000e+00 3018 -3.0155000000e-01 1.7699000000e+00 3019 -3.3653000000e-01 1.7699000000e+00 3020 -3.7152000000e-01 1.7699000000e+00 3021 -4.0651000000e-01 1.7699000000e+00 3022 -4.4150000000e-01 1.7699000000e+00 3023 -4.7650000000e-01 1.7699000000e+00 3024 -5.1150000000e-01 1.7699000000e+00 3025 -5.4651000000e-01 1.7699000000e+00 3026 -5.8152000000e-01 1.7699000000e+00 3027 -6.1654000000e-01 1.7699000000e+00 3028 -6.5157000000e-01 1.7699000000e+00 3029 -6.8661000000e-01 1.7698000000e+00 3030 -7.2167000000e-01 1.7697000000e+00 3031 -7.5673000000e-01 1.7696000000e+00 3032 -7.9180000000e-01 1.7695000000e+00 3033 -8.2687000000e-01 1.7693000000e+00 3034 -8.6192000000e-01 1.7690000000e+00 3035 -8.9696000000e-01 1.7686000000e+00 3036 -9.3198000000e-01 1.7680000000e+00 3037 -9.6697000000e-01 1.7672000000e+00 3038 -9.8437000000e-01 1.7365000000e+00 3039 -1.0192000000e+00 1.7353000000e+00 3040 -1.0539000000e+00 1.7337000000e+00 3041 -1.0702000000e+00 1.7031000000e+00 3042 -8.7954000000e-01 1.7385000000e+00 3043 -9.1455000000e-01 1.7380000000e+00 3044 -9.4950000000e-01 1.7374000000e+00 3045 -9.6700000000e-01 1.7068000000e+00 3046 -1.0017000000e+00 1.7059000000e+00 3047 -1.0362000000e+00 1.7047000000e+00 3048 -1.0532000000e+00 1.6745000000e+00 3049 -1.0861000000e+00 1.6742000000e+00 3050 -1.1047000000e+00 1.6481000000e+00 3051 -1.0928000000e+00 1.6162000000e+00 3052 -1.0812000000e+00 1.5827000000e+00 3053 -1.0190000000e+00 1.6754000000e+00 3054 -1.0365000000e+00 1.6446000000e+00 3055 -1.0714000000e+00 1.6447000000e+00 3056 -1.0548000000e+00 1.6105000000e+00 3057 -1.0519000000e+00 1.5782000000e+00 3058 -1.0661000000e+00 1.5470000000e+00 3059 -1.0627000000e+00 1.5104000000e+00 3060 -1.0805000000e+00 1.4902000000e+00 3061 -1.0552000000e+00 1.4820000000e+00 3062 -1.0484000000e+00 1.4502000000e+00 3063 -1.0460000000e+00 1.4136000000e+00 3064 -1.0776000000e+00 1.3942000000e+00 3065 -1.0780000000e+00 1.3585000000e+00 3066 -1.0785000000e+00 1.3228000000e+00 3067 -1.0792000000e+00 1.2871000000e+00 3068 -1.0800000000e+00 1.2515000000e+00 3069 -1.0466000000e+00 1.3771000000e+00 3070 -1.0470000000e+00 1.3411000000e+00 3071 -1.0475000000e+00 1.3051000000e+00 3072 -1.0485000000e+00 1.2692000000e+00 3073 -1.0496000000e+00 1.2336000000e+00 3074 -1.0808000000e+00 1.2162000000e+00 3075 -1.0816000000e+00 1.1810000000e+00 3076 -1.0515000000e+00 1.1634000000e+00 3077 -1.0216000000e+00 1.1458000000e+00 3078 -9.9166000000e-01 1.1283000000e+00 3079 -9.6167000000e-01 1.1110000000e+00 3080 -9.3145000000e-01 1.0938000000e+00 3081 -9.3142000000e-01 1.0586000000e+00 3082 -9.3149000000e-01 1.0233000000e+00 3083 -9.3161000000e-01 9.8805000000e-01 3084 -9.0115000000e-01 1.0056000000e+00 3085 -9.0137000000e-01 9.7026000000e-01 3086 -1.0134000000e+00 3.1057000000e-02 3087 -9.7860000000e-01 3.0810000000e-02 3088 -1.0483000000e+00 3.1648000000e-02 3089 -1.0298000000e+00 6.2256000000e-02 3090 -9.9539000000e-01 6.1627000000e-02 3091 -9.0097000000e-01 1.0765000000e+00 3092 -9.0098000000e-01 1.0410000000e+00 3093 1.0967000000e+00 1.5734000000e-01 3094 1.1209000000e+00 1.4242000000e-01 3095 -9.4372000000e-01 3.0715000000e-02 3096 -9.0877000000e-01 3.0647000000e-02 3097 1.6260000000e+00 9.1529000000e-02 3098 -1.0646000000e+00 6.4047000000e-02 3099 -1.0998000000e+00 6.5588000000e-02 3100 -1.1344000000e+00 6.7772000000e-02 3101 -1.1164000000e+00 9.6089000000e-02 3102 -1.0808000000e+00 9.9185000000e-02 3103 -1.0453000000e+00 9.3079000000e-02 3104 -1.0120000000e+00 9.2080000000e-02 3105 -9.7778000000e-01 9.2097000000e-02 3106 -9.9513000000e-01 1.2216000000e-01 3107 -9.6153000000e-01 1.1458000000e+00 3108 -9.3160000000e-01 1.1287000000e+00 3109 -9.0124000000e-01 1.1118000000e+00 3110 -8.7037000000e-01 1.0946000000e+00 3111 -8.7026000000e-01 1.0588000000e+00 3112 -8.7052000000e-01 1.0232000000e+00 3113 -1.0564000000e+00 1.1965000000e-01 3114 -1.0283000000e+00 1.2126000000e-01 3115 -1.0480000000e+00 1.5015000000e-01 3116 -1.0132000000e+00 1.5042000000e-01 3117 -9.7900000000e-01 1.5405000000e-01 3118 -9.6045000000e-01 1.2308000000e-01 3119 -9.4259000000e-01 1.5498000000e-01 3120 -9.2516000000e-01 1.2300000000e-01 3121 -9.0682000000e-01 1.5334000000e-01 3122 -8.9005000000e-01 1.2245000000e-01 3123 -9.0801000000e-01 9.1984000000e-02 3124 -9.4300000000e-01 9.2165000000e-02 3125 -9.2586000000e-01 6.1367000000e-02 3126 -9.6073000000e-01 6.1464000000e-02 3127 -8.7305000000e-01 9.1704000000e-02 3128 -8.9091000000e-01 6.1224000000e-02 3129 -6.8132000000e-01 6.0720000000e-02 3130 -7.1626000000e-01 6.0753000000e-02 3131 -9.6009000000e-01 6.9030000000e-01 3132 -9.3174000000e-01 7.0836000000e-01 3133 -9.3004000000e-01 6.7561000000e-01 3134 -9.0414000000e-01 6.9319000000e-01 3135 -9.0325000000e-01 7.2416000000e-01 3136 -9.0164000000e-01 6.6306000000e-01 3137 -9.2553000000e-01 6.4342000000e-01 3138 -9.5713000000e-01 6.5530000000e-01 3139 1.7679000000e+00 2.1076000000e-01 3140 1.7861000000e+00 2.4034000000e-01 3141 1.8208000000e+00 2.3906000000e-01 3142 1.8549000000e+00 2.3777000000e-01 3143 1.8712000000e+00 2.0814000000e-01 3144 1.8880000000e+00 1.7869000000e-01 3145 1.9052000000e+00 1.4916000000e-01 3146 1.8881000000e+00 1.1945000000e-01 3147 1.9055000000e+00 8.9651000000e-02 3148 -8.4167000000e-01 8.6448000000e-01 3149 -8.4160000000e-01 8.9937000000e-01 3150 -8.7149000000e-01 9.1718000000e-01 3151 -8.4129000000e-01 9.3438000000e-01 3152 -8.7124000000e-01 9.5236000000e-01 3153 -8.4080000000e-01 9.6958000000e-01 3154 -8.1096000000e-01 9.5137000000e-01 3155 -8.1159000000e-01 9.1638000000e-01 3156 -8.1199000000e-01 8.8164000000e-01 3157 -8.1203000000e-01 8.4713000000e-01 3158 -7.8277000000e-01 8.6405000000e-01 3159 -7.8286000000e-01 8.3017000000e-01 3160 -8.1149000000e-01 8.1280000000e-01 3161 -8.4135000000e-01 8.2962000000e-01 3162 4.5740000000e-01 1.9252000000e-01 3163 4.7496000000e-01 2.2255000000e-01 3164 4.4063000000e-01 2.2213000000e-01 3165 4.2293000000e-01 1.9298000000e-01 3166 4.0726000000e-01 2.2219000000e-01 3167 3.9026000000e-01 1.9468000000e-01 3168 4.0315000000e-01 1.6381000000e-01 3169 3.6943000000e-01 1.6991000000e-01 3170 3.6388000000e-01 1.9715000000e-01 3171 3.7503000000e-01 2.2202000000e-01 3172 3.4409000000e-01 2.1546000000e-01 3173 3.5389000000e-01 2.5213000000e-01 3174 3.9089000000e-01 2.5047000000e-01 3175 3.7810000000e-01 2.7649000000e-01 3176 4.0723000000e-01 2.7908000000e-01 3177 4.2391000000e-01 2.5085000000e-01 3178 4.4013000000e-01 2.7959000000e-01 3179 4.2385000000e-01 3.0759000000e-01 3180 4.5741000000e-01 2.5164000000e-01 3181 1.4682000000e+00 2.4790000000e-01 3182 1.4520000000e+00 2.7813000000e-01 3183 1.4352000000e+00 3.0742000000e-01 3184 1.4172000000e+00 3.3674000000e-01 3185 1.4341000000e+00 3.6712000000e-01 3186 1.3988000000e+00 3.6719000000e-01 3187 1.4161000000e+00 3.9802000000e-01 3188 1.4515000000e+00 3.9733000000e-01 3189 1.4133000000e+00 2.2210000000e-01 3190 1.4339000000e+00 2.5000000000e-01 3191 3.4790000000e+00 9.4652000000e-02 3192 1.3817000000e+00 3.3547000000e-01 3193 1.4016000000e+00 3.0643000000e-01 3194 1.3647000000e+00 2.9942000000e-01 3195 1.3450000000e+00 3.3572000000e-01 3196 1.3631000000e+00 3.6739000000e-01 3197 3.4423000000e+00 9.2942000000e-02 3198 3.4586000000e+00 1.3062000000e-01 3199 3.4939000000e+00 1.2296000000e-01 3200 3.4196000000e+00 1.2042000000e-01 3201 3.3923000000e+00 1.4147000000e-01 3202 3.3626000000e+00 1.6102000000e-01 3203 3.3330000000e+00 1.8214000000e-01 3204 3.3042000000e+00 2.0307000000e-01 3205 3.3072000000e+00 2.3804000000e-01 3206 3.3098000000e+00 2.7317000000e-01 3207 3.3127000000e+00 3.0844000000e-01 3208 3.3160000000e+00 3.4343000000e-01 3209 3.3193000000e+00 3.7817000000e-01 3210 3.3510000000e+00 3.9314000000e-01 3211 3.3225000000e+00 4.1323000000e-01 3212 3.3564000000e+00 4.3045000000e-01 3213 3.3817000000e+00 4.0576000000e-01 3214 1.3798000000e+00 2.2977000000e-01 3215 1.4014000000e+00 2.5392000000e-01 3216 1.4193000000e+00 2.7934000000e-01 3217 -1.2935000000e+00 2.1832000000e-01 3218 -1.2624000000e+00 2.0077000000e-01 3219 -1.2313000000e+00 1.8306000000e-01 3220 -1.2308000000e+00 1.4771000000e-01 3221 -1.2000000000e+00 1.6517000000e-01 3222 -1.2006000000e+00 2.0073000000e-01 3223 -1.1694000000e+00 1.8297000000e-01 3224 -1.1685000000e+00 1.4693000000e-01 3225 -1.1380000000e+00 1.6524000000e-01 3226 -1.1353000000e+00 1.2674000000e-01 3227 -1.1688000000e+00 1.1182000000e-01 3228 -1.1444000000e+00 9.5981000000e-02 3229 -1.1669000000e+00 7.7498000000e-02 3230 -1.1984000000e+00 9.4119000000e-02 3231 -1.1957000000e+00 5.7737000000e-02 3232 -1.2292000000e+00 7.5817000000e-02 3233 -1.2277000000e+00 3.5303000000e-02 3234 -1.1922000000e+00 2.6122000000e-02 3235 -1.2662000000e+00 2.7297000000e-02 3236 -1.2619000000e+00 6.0154000000e-02 3237 -1.2943000000e+00 4.7288000000e-02 3238 -1.2951000000e+00 2.1040000000e-02 3239 -1.2614000000e+00 9.5398000000e-02 3240 -1.2301000000e+00 1.1220000000e-01 3241 -1.1995000000e+00 1.2965000000e-01 3242 3.1591000000e+00 1.7669000000e+00 3243 3.1261000000e+00 1.7593000000e+00 3244 3.0899000000e+00 1.7523000000e+00 3245 3.0494000000e+00 1.7465000000e+00 3246 3.0218000000e+00 1.7288000000e+00 3247 2.9923000000e+00 1.7286000000e+00 3248 2.9578000000e+00 1.7262000000e+00 3249 2.9221000000e+00 1.7234000000e+00 3250 2.8854000000e+00 1.7205000000e+00 3251 2.8620000000e+00 1.7523000000e+00 3252 2.8396000000e+00 1.7853000000e+00 3253 2.8228000000e+00 1.7502000000e+00 3254 2.8004000000e+00 1.7851000000e+00 3255 2.7613000000e+00 1.7882000000e+00 3256 2.7393000000e+00 1.7596000000e+00 3257 2.7038000000e+00 1.7652000000e+00 3258 2.6691000000e+00 1.7706000000e+00 3259 2.6563000000e+00 1.8013000000e+00 3260 2.6249000000e+00 1.8021000000e+00 3261 2.5919000000e+00 1.8002000000e+00 3262 2.5569000000e+00 1.7984000000e+00 3263 2.5205000000e+00 1.7967000000e+00 3264 2.4826000000e+00 1.7953000000e+00 3265 2.4402000000e+00 1.7942000000e+00 3266 2.4092000000e+00 1.8089000000e+00 3267 2.3804000000e+00 1.8048000000e+00 3268 2.3668000000e+00 1.7707000000e+00 3269 2.3454000000e+00 1.7482000000e+00 3270 2.3169000000e+00 1.7417000000e+00 3271 2.2807000000e+00 1.7383000000e+00 3272 2.2440000000e+00 1.7373000000e+00 3273 2.2076000000e+00 1.7366000000e+00 3274 2.1712000000e+00 1.7364000000e+00 3275 2.1352000000e+00 1.7364000000e+00 3276 2.0993000000e+00 1.7364000000e+00 3277 2.0635000000e+00 1.7366000000e+00 3278 6.6093000000e-01 1.8000000000e+00 3279 6.2594000000e-01 1.8001000000e+00 3280 5.9097000000e-01 1.8001000000e+00 3281 5.5599000000e-01 1.8002000000e+00 3282 5.2102000000e-01 1.8002000000e+00 3283 4.8605000000e-01 1.8002000000e+00 3284 4.5106000000e-01 1.8002000000e+00 3285 4.1606000000e-01 1.8002000000e+00 3286 3.8105000000e-01 1.8002000000e+00 3287 3.4603000000e-01 1.8001000000e+00 3288 3.1101000000e-01 1.8001000000e+00 3289 2.7598000000e-01 1.8001000000e+00 3290 2.4096000000e-01 1.8001000000e+00 3291 2.2348000000e-01 1.7698000000e+00 3292 1.8844000000e-01 1.7698000000e+00 3293 1.5342000000e-01 1.7698000000e+00 3294 1.1839000000e-01 1.7698000000e+00 3295 8.3369000000e-02 1.7698000000e+00 3296 4.8352000000e-02 1.7698000000e+00 3297 1.3339000000e-02 1.7698000000e+00 3298 -4.1746000000e-03 1.7394000000e+00 3299 -3.9180000000e-02 1.7394000000e+00 3300 -7.4176000000e-02 1.7395000000e+00 3301 -1.0916000000e-01 1.7395000000e+00 3302 -1.4414000000e-01 1.7395000000e+00 3303 -1.7911000000e-01 1.7395000000e+00 3304 -2.1408000000e-01 1.7395000000e+00 3305 -2.4905000000e-01 1.7396000000e+00 3306 -2.8402000000e-01 1.7396000000e+00 3307 -3.1900000000e-01 1.7396000000e+00 3308 -3.5398000000e-01 1.7396000000e+00 3309 -3.8896000000e-01 1.7396000000e+00 3310 -4.2395000000e-01 1.7396000000e+00 3311 -4.5894000000e-01 1.7396000000e+00 3312 -4.9394000000e-01 1.7397000000e+00 3313 -5.2894000000e-01 1.7397000000e+00 3314 -5.6395000000e-01 1.7397000000e+00 3315 -5.9898000000e-01 1.7396000000e+00 3316 -6.3401000000e-01 1.7396000000e+00 3317 -6.6906000000e-01 1.7396000000e+00 3318 -7.0412000000e-01 1.7395000000e+00 3319 -7.3920000000e-01 1.7394000000e+00 3320 -7.7430000000e-01 1.7392000000e+00 3321 -8.0939000000e-01 1.7390000000e+00 3322 -8.4448000000e-01 1.7388000000e+00 3323 -8.6216000000e-01 1.7083000000e+00 3324 -8.9721000000e-01 1.7080000000e+00 3325 -9.3217000000e-01 1.7075000000e+00 3326 -9.4984000000e-01 1.6771000000e+00 3327 -9.8450000000e-01 1.6764000000e+00 3328 -1.0020000000e+00 1.6462000000e+00 3329 -1.0188000000e+00 1.6163000000e+00 3330 -4.5439000000e-01 3.0767000000e-02 3331 -4.1914000000e-01 3.0842000000e-02 3332 -4.0119000000e-01 6.1780000000e-02 3333 -3.6601000000e-01 6.0600000000e-02 3334 -3.8209000000e-01 9.2582000000e-02 3335 -3.4782000000e-01 8.8560000000e-02 3336 -3.3198000000e-01 5.9811000000e-02 3337 -8.2104000000e-01 6.0939000000e-02 3338 -8.0328000000e-01 9.1298000000e-02 3339 -8.3815000000e-01 9.1465000000e-02 3340 -8.2037000000e-01 1.2175000000e-01 3341 -7.8558000000e-01 1.2159000000e-01 3342 -8.0268000000e-01 1.5191000000e-01 3343 -7.6798000000e-01 1.5185000000e-01 3344 -7.5050000000e-01 1.8221000000e-01 3345 -7.3294000000e-01 2.1251000000e-01 3346 -7.6806000000e-01 2.1275000000e-01 3347 -7.4982000000e-01 2.4305000000e-01 3348 -7.1534000000e-01 2.4231000000e-01 3349 -1.0208000000e+00 1.1806000000e+00 3350 -9.9119000000e-01 1.1630000000e+00 3351 -9.6115000000e-01 1.1801000000e+00 3352 -9.3181000000e-01 1.1632000000e+00 3353 -9.0185000000e-01 1.1467000000e+00 3354 -8.7111000000e-01 1.1302000000e+00 3355 -8.3947000000e-01 1.1133000000e+00 3356 -8.3911000000e-01 1.0769000000e+00 3357 -8.3956000000e-01 1.0408000000e+00 3358 -8.4020000000e-01 1.0050000000e+00 3359 -8.7089000000e-01 9.8767000000e-01 3360 -8.1016000000e-01 9.8662000000e-01 3361 -7.8045000000e-01 9.6810000000e-01 3362 -7.8142000000e-01 9.3309000000e-01 3363 -7.7930000000e-01 1.0034000000e+00 3364 -7.4978000000e-01 9.8456000000e-01 3365 -7.4834000000e-01 1.0197000000e+00 3366 -7.7784000000e-01 1.0390000000e+00 3367 -8.0919000000e-01 1.0222000000e+00 3368 -8.0805000000e-01 1.0583000000e+00 3369 -7.7563000000e-01 1.0755000000e+00 3370 -7.4647000000e-01 1.0549000000e+00 3371 -7.4354000000e-01 1.0893000000e+00 3372 -7.1590000000e-01 1.0699000000e+00 3373 -7.1755000000e-01 1.0356000000e+00 3374 -8.0689000000e-01 1.0955000000e+00 3375 -7.7091000000e-01 1.1158000000e+00 3376 -7.3797000000e-01 1.1170000000e+00 3377 -7.1432000000e-01 1.1023000000e+00 3378 -6.8635000000e-01 1.0856000000e+00 3379 -6.8714000000e-01 1.0516000000e+00 3380 -6.8833000000e-01 1.0169000000e+00 3381 -6.5770000000e-01 1.0333000000e+00 3382 -6.5884000000e-01 9.9827000000e-01 3383 -6.2788000000e-01 1.0148000000e+00 3384 -6.2694000000e-01 1.0502000000e+00 3385 -5.9669000000e-01 1.0316000000e+00 3386 -5.9793000000e-01 9.9604000000e-01 3387 -6.2914000000e-01 9.7945000000e-01 3388 -5.9925000000e-01 9.6046000000e-01 3389 -6.3063000000e-01 9.4397000000e-01 3390 -6.6024000000e-01 9.6306000000e-01 3391 1.1509000000e+00 1.7998000000e+00 3392 1.1159000000e+00 1.7999000000e+00 3393 1.0809000000e+00 1.7999000000e+00 3394 1.0460000000e+00 1.7999000000e+00 3395 3.0266000000e+00 1.5195000000e-01 3396 3.0444000000e+00 1.8238000000e-01 3397 3.0093000000e+00 1.8237000000e-01 3398 3.0271000000e+00 2.1284000000e-01 3399 3.0623000000e+00 2.1284000000e-01 3400 3.0796000000e+00 1.8235000000e-01 3401 3.1147000000e+00 1.8226000000e-01 3402 3.1497000000e+00 1.8207000000e-01 3403 3.1667000000e+00 1.5177000000e-01 3404 3.1838000000e+00 1.2172000000e-01 3405 3.2013000000e+00 9.1642000000e-02 3406 3.2366000000e+00 9.2240000000e-02 3407 3.2727000000e+00 9.2911000000e-02 3408 3.3083000000e+00 9.1127000000e-02 3409 3.3422000000e+00 8.9553000000e-02 3410 3.3753000000e+00 8.8788000000e-02 3411 3.4079000000e+00 8.9185000000e-02 3412 1.9403000000e+00 8.9728000000e-02 3413 1.9574000000e+00 1.1969000000e-01 3414 1.9743000000e+00 1.4976000000e-01 3415 2.0091000000e+00 1.5022000000e-01 3416 2.3957000000e+00 9.0861000000e-02 3417 2.4132000000e+00 1.2116000000e-01 3418 2.4307000000e+00 1.5145000000e-01 3419 2.4131000000e+00 1.8174000000e-01 3420 2.4306000000e+00 2.1203000000e-01 3421 2.4480000000e+00 2.4232000000e-01 3422 2.4655000000e+00 2.7259000000e-01 3423 2.4304000000e+00 2.7260000000e-01 3424 2.4479000000e+00 3.0286000000e-01 3425 2.4830000000e+00 3.0283000000e-01 3426 2.5006000000e+00 2.7259000000e-01 3427 2.5356000000e+00 2.7260000000e-01 3428 2.5706000000e+00 2.7263000000e-01 3429 2.6056000000e+00 2.7268000000e-01 3430 2.6232000000e+00 2.4242000000e-01 3431 2.6582000000e+00 2.4248000000e-01 3432 2.6406000000e+00 2.7274000000e-01 3433 2.6757000000e+00 2.7281000000e-01 3434 2.6933000000e+00 2.4253000000e-01 3435 2.6758000000e+00 2.1219000000e-01 3436 9.0133000000e-01 7.5679000000e-02 3437 8.6670000000e-01 8.0729000000e-02 3438 8.8830000000e-01 1.0851000000e-01 3439 8.5356000000e-01 1.1388000000e-01 3440 8.3172000000e-01 8.5694000000e-02 3441 8.4527000000e-01 5.2719000000e-02 3442 2.6581000000e+00 3.0308000000e-01 3443 2.6931000000e+00 3.0317000000e-01 3444 2.7107000000e+00 2.7289000000e-01 3445 2.7283000000e+00 2.4260000000e-01 3446 2.7108000000e+00 2.1224000000e-01 3447 2.7459000000e+00 2.1229000000e-01 3448 2.7634000000e+00 1.8198000000e-01 3449 2.7809000000e+00 1.5166000000e-01 3450 3.8660000000e-01 3.0943000000e-01 3451 8.1029000000e-01 5.7161000000e-02 3452 7.7506000000e-01 6.1304000000e-02 3453 7.9639000000e-01 9.0425000000e-02 3454 2.7985000000e+00 1.8203000000e-01 3455 2.8160000000e+00 1.5170000000e-01 3456 2.8336000000e+00 1.8208000000e-01 3457 2.8511000000e+00 1.5175000000e-01 3458 2.8335000000e+00 1.2137000000e-01 3459 2.8685000000e+00 1.2140000000e-01 3460 2.8862000000e+00 1.5179000000e-01 3461 2.9036000000e+00 1.2144000000e-01 3462 2.8860000000e+00 9.1059000000e-02 3463 2.8510000000e+00 9.1034000000e-02 3464 2.8687000000e+00 1.8214000000e-01 3465 2.9038000000e+00 1.8221000000e-01 3466 2.9213000000e+00 1.5184000000e-01 3467 2.9387000000e+00 1.2148000000e-01 3468 2.9564000000e+00 1.5189000000e-01 3469 2.9211000000e+00 9.1085000000e-02 3470 3.3599000000e+00 1.2206000000e-01 3471 3.3294000000e+00 1.4592000000e-01 3472 3.3000000000e+00 1.6745000000e-01 3473 3.2726000000e+00 1.8957000000e-01 3474 3.2760000000e+00 2.2325000000e-01 3475 3.2782000000e+00 2.5749000000e-01 3476 3.2800000000e+00 2.9310000000e-01 3477 3.2842000000e+00 3.2876000000e-01 3478 3.2879000000e+00 3.6327000000e-01 3479 3.2909000000e+00 3.9758000000e-01 3480 3.2932000000e+00 4.3210000000e-01 3481 3.3242000000e+00 4.4784000000e-01 3482 3.3503000000e+00 4.6243000000e-01 3483 3.3869000000e+00 4.3240000000e-01 3484 -1.2318000000e+00 2.1836000000e-01 3485 -1.2012000000e+00 2.3617000000e-01 3486 -1.1700000000e+00 2.1867000000e-01 3487 -1.1389000000e+00 2.0110000000e-01 3488 -1.1392000000e+00 2.3685000000e-01 3489 -1.1706000000e+00 2.5422000000e-01 3490 -1.1399000000e+00 2.7270000000e-01 3491 -1.1073000000e+00 2.5544000000e-01 3492 -1.1083000000e+00 2.1896000000e-01 3493 -1.1085000000e+00 1.8390000000e-01 3494 -1.1073000000e+00 1.4984000000e-01 3495 -1.0790000000e+00 1.6732000000e-01 3496 -1.0792000000e+00 2.0095000000e-01 3497 -1.0792000000e+00 1.3457000000e-01 3498 -1.1038000000e+00 1.2128000000e-01 3499 3.2954000000e+00 4.6687000000e-01 3500 3.3274000000e+00 4.8189000000e-01 3501 -1.0519000000e+00 1.8453000000e-01 3502 -1.0508000000e+00 2.1544000000e-01 3503 -1.0259000000e+00 1.9998000000e-01 3504 -1.0280000000e+00 1.7333000000e-01 3505 7.3907000000e-01 6.5635000000e-02 3506 7.6096000000e-01 9.5168000000e-02 3507 7.8219000000e-01 1.2398000000e-01 3508 8.1812000000e-01 1.1927000000e-01 3509 8.4079000000e-01 1.4769000000e-01 3510 8.0408000000e-01 1.5396000000e-01 3511 8.2889000000e-01 1.8276000000e-01 3512 8.6438000000e-01 1.7486000000e-01 3513 8.7573000000e-01 1.4142000000e-01 3514 9.0978000000e-01 1.3600000000e-01 3515 9.2271000000e-01 1.0338000000e-01 3516 9.5707000000e-01 9.8141000000e-02 3517 9.4408000000e-01 1.3129000000e-01 3518 9.7948000000e-01 1.2595000000e-01 3519 1.0189000000e+00 8.3970000000e-02 3520 8.9756000000e-01 1.6760000000e-01 3521 9.3032000000e-01 1.6381000000e-01 3522 9.6509000000e-01 1.6047000000e-01 3523 1.0012000000e+00 1.5540000000e-01 3524 1.0207000000e+00 1.8511000000e-01 3525 9.8647000000e-01 1.8871000000e-01 3526 1.0063000000e+00 2.1572000000e-01 3527 1.0393000000e+00 2.1350000000e-01 3528 1.0542000000e+00 1.8347000000e-01 3529 1.0243000000e+00 2.4387000000e-01 3530 1.0580000000e+00 2.4162000000e-01 3531 1.0432000000e+00 2.7252000000e-01 3532 1.0772000000e+00 2.6989000000e-01 3533 1.0624000000e+00 3.0124000000e-01 3534 1.0966000000e+00 2.9836000000e-01 3535 1.0819000000e+00 3.3001000000e-01 3536 1.1163000000e+00 3.2688000000e-01 3537 1.1017000000e+00 3.5873000000e-01 3538 1.1361000000e+00 3.5534000000e-01 3539 1.1506000000e+00 3.2355000000e-01 3540 1.1309000000e+00 2.9519000000e-01 3541 1.1112000000e+00 2.6682000000e-01 3542 1.0916000000e+00 2.3871000000e-01 3543 1.0724000000e+00 2.1113000000e-01 3544 1.0860000000e+00 1.8184000000e-01 3545 1.9923000000e+00 1.7380000000e+00 3546 1.9574000000e+00 1.7388000000e+00 3547 1.9227000000e+00 1.7392000000e+00 3548 1.8881000000e+00 1.7393000000e+00 3549 1.8534000000e+00 1.7393000000e+00 3550 1.8185000000e+00 1.7390000000e+00 3551 1.7834000000e+00 1.7386000000e+00 3552 1.7480000000e+00 1.7384000000e+00 3553 1.7125000000e+00 1.7384000000e+00 3554 1.6770000000e+00 1.7386000000e+00 3555 1.6417000000e+00 1.7387000000e+00 3556 1.6240000000e+00 1.7693000000e+00 3557 1.6063000000e+00 1.7998000000e+00 3558 1.5712000000e+00 1.7998000000e+00 3559 1.5361000000e+00 1.7998000000e+00 3560 1.5010000000e+00 1.7998000000e+00 3561 1.4660000000e+00 1.7998000000e+00 3562 1.4836000000e+00 1.7694000000e+00 3563 1.4485000000e+00 1.7694000000e+00 3564 1.4310000000e+00 1.7998000000e+00 3565 1.4485000000e+00 1.8302000000e+00 3566 1.4134000000e+00 1.8302000000e+00 3567 1.3784000000e+00 1.8302000000e+00 3568 1.3434000000e+00 1.8302000000e+00 3569 1.3084000000e+00 1.8302000000e+00 3570 1.2734000000e+00 1.8302000000e+00 3571 1.2559000000e+00 1.7998000000e+00 3572 1.2208000000e+00 1.7998000000e+00 3573 1.1858000000e+00 1.7998000000e+00 3574 1.1683000000e+00 1.7694000000e+00 3575 1.1334000000e+00 1.7694000000e+00 3576 1.0984000000e+00 1.7695000000e+00 3577 1.0635000000e+00 1.7695000000e+00 3578 1.0285000000e+00 1.7695000000e+00 3579 1.0110000000e+00 1.7999000000e+00 3580 9.7605000000e-01 1.7999000000e+00 3581 9.4108000000e-01 1.7999000000e+00 3582 9.0608000000e-01 1.7999000000e+00 3583 8.7107000000e-01 1.7998000000e+00 3584 8.3605000000e-01 1.7998000000e+00 3585 8.0101000000e-01 1.7999000000e+00 3586 7.6598000000e-01 1.7999000000e+00 3587 7.3095000000e-01 1.7999000000e+00 3588 6.9594000000e-01 1.8000000000e+00 3589 6.7843000000e-01 1.7696000000e+00 3590 6.4344000000e-01 1.7697000000e+00 3591 6.0847000000e-01 1.7698000000e+00 3592 5.7351000000e-01 1.7698000000e+00 3593 5.3856000000e-01 1.7699000000e+00 3594 5.0360000000e-01 1.7699000000e+00 3595 4.6863000000e-01 1.7699000000e+00 3596 4.3364000000e-01 1.7699000000e+00 3597 3.9863000000e-01 1.7698000000e+00 3598 3.6361000000e-01 1.7698000000e+00 3599 3.2858000000e-01 1.7698000000e+00 3600 2.9355000000e-01 1.7698000000e+00 3601 2.5851000000e-01 1.7698000000e+00 3602 2.4104000000e-01 1.7394000000e+00 3603 2.0599000000e-01 1.7394000000e+00 3604 1.7095000000e-01 1.7394000000e+00 3605 1.3592000000e-01 1.7394000000e+00 3606 1.0089000000e-01 1.7394000000e+00 3607 6.5860000000e-02 1.7394000000e+00 3608 3.0839000000e-02 1.7394000000e+00 3609 1.3318000000e-02 1.7090000000e+00 3610 -2.1696000000e-02 1.7091000000e+00 3611 -5.6698000000e-02 1.7091000000e+00 3612 -9.1686000000e-02 1.7091000000e+00 3613 -1.2666000000e-01 1.7091000000e+00 3614 -1.6163000000e-01 1.7092000000e+00 3615 -1.9658000000e-01 1.7092000000e+00 3616 -2.3154000000e-01 1.7092000000e+00 3617 -2.6650000000e-01 1.7092000000e+00 3618 -3.0146000000e-01 1.7093000000e+00 3619 -3.3642000000e-01 1.7093000000e+00 3620 -3.7140000000e-01 1.7093000000e+00 3621 -4.0638000000e-01 1.7093000000e+00 3622 -4.4137000000e-01 1.7093000000e+00 3623 -4.7636000000e-01 1.7094000000e+00 3624 -5.1136000000e-01 1.7094000000e+00 3625 -5.4637000000e-01 1.7094000000e+00 3626 -5.8139000000e-01 1.7094000000e+00 3627 -6.1642000000e-01 1.7093000000e+00 3628 -6.5148000000e-01 1.7093000000e+00 3629 -6.8655000000e-01 1.7092000000e+00 3630 -7.2165000000e-01 1.7091000000e+00 3631 -7.5677000000e-01 1.7090000000e+00 3632 -7.9191000000e-01 1.7088000000e+00 3633 -8.2704000000e-01 1.7086000000e+00 3634 -8.4478000000e-01 1.6781000000e+00 3635 -8.7993000000e-01 1.6779000000e+00 3636 -9.1497000000e-01 1.6775000000e+00 3637 -9.3286000000e-01 1.6472000000e+00 3638 -9.6757000000e-01 1.6469000000e+00 3639 -9.8533000000e-01 1.6171000000e+00 3640 -1.0033000000e+00 1.5884000000e+00 3641 -1.0310000000e+00 1.5907000000e+00 3642 -1.0263000000e+00 1.5599000000e+00 3643 -1.0367000000e+00 1.5259000000e+00 3644 -1.0391000000e+00 1.5007000000e+00 3645 -6.5697000000e-01 1.0681000000e+00 3646 -6.2663000000e-01 1.0854000000e+00 3647 -5.9574000000e-01 1.0675000000e+00 3648 -5.6500000000e-01 1.0486000000e+00 3649 -5.6659000000e-01 1.0127000000e+00 3650 -5.6794000000e-01 9.7713000000e-01 3651 -5.6905000000e-01 9.4143000000e-01 3652 -6.0072000000e-01 9.2470000000e-01 3653 -6.3242000000e-01 9.0835000000e-01 3654 -6.6189000000e-01 9.2779000000e-01 3655 -6.9118000000e-01 9.4690000000e-01 3656 -6.8969000000e-01 9.8196000000e-01 3657 -5.3509000000e-01 1.0291000000e+00 3658 -5.3684000000e-01 9.9369000000e-01 3659 -5.3791000000e-01 9.5842000000e-01 3660 -5.3803000000e-01 9.2249000000e-01 3661 -5.7032000000e-01 9.0533000000e-01 3662 -6.0254000000e-01 8.8865000000e-01 3663 -6.3473000000e-01 8.7245000000e-01 3664 -6.6394000000e-01 8.9250000000e-01 3665 -6.9288000000e-01 9.1192000000e-01 3666 -7.2187000000e-01 9.3085000000e-01 3667 -7.2044000000e-01 9.6577000000e-01 3668 -7.1903000000e-01 1.0008000000e+00 3669 -5.7215000000e-01 8.6887000000e-01 3670 -6.0478000000e-01 8.5215000000e-01 3671 -6.3789000000e-01 8.3577000000e-01 3672 -6.6668000000e-01 8.5724000000e-01 3673 -6.9493000000e-01 8.7722000000e-01 3674 -7.2338000000e-01 8.9621000000e-01 3675 -7.5222000000e-01 9.1474000000e-01 3676 -7.5331000000e-01 8.8036000000e-01 3677 -7.8222000000e-01 8.9838000000e-01 3678 -7.5104000000e-01 9.4953000000e-01 3679 3.2185000000e+00 1.2222000000e-01 3680 3.2539000000e+00 1.2391000000e-01 3681 3.2940000000e+00 1.2757000000e-01 3682 3.2670000000e+00 1.5639000000e-01 3683 3.3268000000e+00 1.1525000000e-01 3684 -1.1595000000e+00 3.7576000000e-02 3685 3.2417000000e+00 2.0958000000e-01 3686 3.2523000000e+00 2.4170000000e-01 3687 3.2437000000e+00 2.7565000000e-01 3688 3.2516000000e+00 3.1504000000e-01 3689 3.2570000000e+00 3.4918000000e-01 3690 3.2602000000e+00 3.8240000000e-01 3691 3.2622000000e+00 4.1620000000e-01 3692 3.2321000000e+00 4.0009000000e-01 3693 3.2330000000e+00 4.3415000000e-01 3694 3.2639000000e+00 4.5078000000e-01 3695 3.2656000000e+00 4.8610000000e-01 3696 3.2980000000e+00 5.0239000000e-01 3697 3.3317000000e+00 5.1806000000e-01 3698 3.3337000000e+00 5.5571000000e-01 3699 3.3353000000e+00 5.9239000000e-01 3700 3.3367000000e+00 6.2814000000e-01 3701 3.3068000000e+00 6.4617000000e-01 3702 3.3076000000e+00 6.8073000000e-01 3703 3.3079000000e+00 7.1556000000e-01 3704 3.3082000000e+00 7.5066000000e-01 3705 3.3084000000e+00 7.8590000000e-01 3706 3.3087000000e+00 8.2120000000e-01 3707 3.3089000000e+00 8.5650000000e-01 3708 3.3092000000e+00 8.9178000000e-01 3709 3.3095000000e+00 9.2702000000e-01 3710 3.3098000000e+00 9.6221000000e-01 3711 3.3100000000e+00 9.9733000000e-01 3712 3.3102000000e+00 1.0324000000e+00 3713 3.3103000000e+00 1.0674000000e+00 3714 3.3104000000e+00 1.1025000000e+00 3715 3.3104000000e+00 1.1375000000e+00 3716 3.3103000000e+00 1.1725000000e+00 3717 3.3102000000e+00 1.2076000000e+00 3718 3.3101000000e+00 1.2427000000e+00 3719 3.3100000000e+00 1.2778000000e+00 3720 3.3098000000e+00 1.3130000000e+00 3721 3.3095000000e+00 1.3481000000e+00 3722 3.3093000000e+00 1.3834000000e+00 3723 3.3089000000e+00 1.4187000000e+00 3724 3.3086000000e+00 1.4540000000e+00 3725 3.3081000000e+00 1.4895000000e+00 3726 3.3076000000e+00 1.5250000000e+00 3727 3.3071000000e+00 1.5607000000e+00 3728 3.3066000000e+00 1.5964000000e+00 3729 3.3060000000e+00 1.6321000000e+00 3730 3.3054000000e+00 1.6679000000e+00 3731 3.3047000000e+00 1.7037000000e+00 3732 3.3037000000e+00 1.7395000000e+00 3733 3.2723000000e+00 1.7583000000e+00 3734 3.2409000000e+00 1.7772000000e+00 3735 3.2122000000e+00 1.7600000000e+00 3736 3.1863000000e+00 1.7733000000e+00 3737 3.1842000000e+00 1.7450000000e+00 3738 3.1529000000e+00 1.7336000000e+00 3739 3.1178000000e+00 1.7230000000e+00 3740 3.0802000000e+00 1.7151000000e+00 3741 3.0450000000e+00 1.7077000000e+00 3742 3.0129000000e+00 1.7010000000e+00 3743 2.9799000000e+00 1.6972000000e+00 3744 2.9451000000e+00 1.6935000000e+00 3745 2.9092000000e+00 1.6897000000e+00 3746 2.8724000000e+00 1.6858000000e+00 3747 2.8476000000e+00 1.7173000000e+00 3748 2.8086000000e+00 1.7134000000e+00 3749 2.7789000000e+00 1.7477000000e+00 3750 2.7489000000e+00 1.7300000000e+00 3751 2.7186000000e+00 1.7329000000e+00 3752 2.6827000000e+00 1.7369000000e+00 3753 2.6417000000e+00 1.7440000000e+00 3754 2.6410000000e+00 1.7780000000e+00 3755 2.6130000000e+00 1.7719000000e+00 3756 2.5779000000e+00 1.7685000000e+00 3757 2.5416000000e+00 1.7660000000e+00 3758 2.5046000000e+00 1.7638000000e+00 3759 2.4666000000e+00 1.7608000000e+00 3760 -1.2941000000e+00 2.8837000000e-01 3761 -1.3246000000e+00 2.7077000000e-01 3762 -1.3244000000e+00 2.3578000000e-01 3763 -1.2938000000e+00 2.5335000000e-01 3764 -1.2636000000e+00 3.0601000000e-01 3765 -1.2632000000e+00 2.7098000000e-01 3766 -1.0001000000e+00 6.0017000000e-01 3767 -9.9390000000e-01 5.7134000000e-01 3768 -9.7204000000e-01 5.9622000000e-01 3769 -9.5746000000e-01 5.6205000000e-01 3770 7.9172000000e-01 1.9048000000e-01 3771 8.1778000000e-01 2.1959000000e-01 3772 8.5462000000e-01 2.1003000000e-01 3773 8.8871000000e-01 1.9970000000e-01 3774 2.1145000000e+00 1.5109000000e-01 3775 2.1497000000e+00 1.5120000000e-01 3776 2.1675000000e+00 1.2094000000e-01 3777 2.2027000000e+00 1.2100000000e-01 3778 2.1849000000e+00 1.5127000000e-01 3779 2.2201000000e+00 1.5132000000e-01 3780 2.2378000000e+00 1.2105000000e-01 3781 2.2204000000e+00 9.0750000000e-02 3782 2.2555000000e+00 9.0784000000e-02 3783 2.2729000000e+00 1.2108000000e-01 3784 2.3080000000e+00 1.2110000000e-01 3785 2.3431000000e+00 1.2113000000e-01 3786 2.3607000000e+00 9.0847000000e-02 3787 2.3781000000e+00 1.2114000000e-01 3788 2.3605000000e+00 1.5143000000e-01 3789 2.3956000000e+00 1.5144000000e-01 3790 2.3780000000e+00 1.8173000000e-01 3791 2.3955000000e+00 2.1203000000e-01 3792 2.4130000000e+00 2.4232000000e-01 3793 2.3778000000e+00 2.4232000000e-01 3794 2.3953000000e+00 2.7261000000e-01 3795 2.4128000000e+00 3.0289000000e-01 3796 2.4303000000e+00 3.3314000000e-01 3797 2.4654000000e+00 3.3308000000e-01 3798 2.5004000000e+00 3.3305000000e-01 3799 2.5180000000e+00 3.0283000000e-01 3800 2.5530000000e+00 3.0286000000e-01 3801 2.5880000000e+00 3.0291000000e-01 3802 2.6230000000e+00 3.0299000000e-01 3803 2.6404000000e+00 3.3331000000e-01 3804 2.6755000000e+00 3.3344000000e-01 3805 2.7106000000e+00 3.3357000000e-01 3806 2.7282000000e+00 3.0328000000e-01 3807 2.7458000000e+00 2.7298000000e-01 3808 2.7634000000e+00 2.4267000000e-01 3809 1.8021000000e+00 1.7081000000e+00 3810 1.7665000000e+00 1.7075000000e+00 3811 1.7306000000e+00 1.7076000000e+00 3812 1.6950000000e+00 1.7078000000e+00 3813 1.6595000000e+00 1.7080000000e+00 3814 1.6242000000e+00 1.7082000000e+00 3815 1.6065000000e+00 1.7388000000e+00 3816 1.5888000000e+00 1.7693000000e+00 3817 1.5537000000e+00 1.7694000000e+00 3818 1.5186000000e+00 1.7694000000e+00 3819 1.5011000000e+00 1.7390000000e+00 3820 1.4661000000e+00 1.7390000000e+00 3821 1.4311000000e+00 1.7390000000e+00 3822 1.4135000000e+00 1.7694000000e+00 3823 1.3959000000e+00 1.7998000000e+00 3824 2.0277000000e+00 1.7371000000e+00 3825 2.0096000000e+00 1.7067000000e+00 3826 2.0456000000e+00 1.7053000000e+00 3827 2.0268000000e+00 1.6738000000e+00 3828 1.9907000000e+00 1.6775000000e+00 3829 1.9745000000e+00 1.7083000000e+00 3830 1.9403000000e+00 1.7091000000e+00 3831 1.9059000000e+00 1.7091000000e+00 3832 1.8713000000e+00 1.7092000000e+00 3833 1.8369000000e+00 1.7090000000e+00 3834 1.8214000000e+00 1.6784000000e+00 3835 1.7860000000e+00 1.6760000000e+00 3836 1.7491000000e+00 1.6763000000e+00 3837 1.7130000000e+00 1.6768000000e+00 3838 1.6773000000e+00 1.6772000000e+00 3839 1.6419000000e+00 1.6775000000e+00 3840 1.6066000000e+00 1.6778000000e+00 3841 1.5890000000e+00 1.7084000000e+00 3842 1.5713000000e+00 1.7389000000e+00 3843 1.5362000000e+00 1.7390000000e+00 3844 1.5187000000e+00 1.7085000000e+00 3845 1.4837000000e+00 1.7085000000e+00 3846 1.4487000000e+00 1.7085000000e+00 3847 1.4136000000e+00 1.7085000000e+00 3848 1.3960000000e+00 1.7389000000e+00 3849 1.3785000000e+00 1.7694000000e+00 3850 1.3609000000e+00 1.7998000000e+00 3851 -6.4640000000e-01 6.0672000000e-02 3852 -6.6402000000e-01 3.0345000000e-02 3853 1.5538000000e+00 1.7085000000e+00 3854 1.5363000000e+00 1.6780000000e+00 3855 1.5013000000e+00 1.6781000000e+00 3856 1.4663000000e+00 1.6781000000e+00 3857 1.4312000000e+00 1.6780000000e+00 3858 1.4489000000e+00 1.6476000000e+00 3859 1.4139000000e+00 1.6475000000e+00 3860 1.3962000000e+00 1.6779000000e+00 3861 -7.8518000000e-01 1.8203000000e-01 3862 -8.0233000000e-01 2.1144000000e-01 3863 -7.8757000000e-01 2.4529000000e-01 3864 1.6596000000e+00 1.6468000000e+00 3865 1.6243000000e+00 1.6471000000e+00 3866 1.5890000000e+00 1.6473000000e+00 3867 1.5714000000e+00 1.6779000000e+00 3868 1.5539000000e+00 1.6475000000e+00 3869 1.5189000000e+00 1.6476000000e+00 3870 1.4839000000e+00 1.6477000000e+00 3871 1.4665000000e+00 1.6172000000e+00 3872 1.4316000000e+00 1.6171000000e+00 3873 1.3966000000e+00 1.6169000000e+00 3874 1.3788000000e+00 1.6473000000e+00 3875 1.3612000000e+00 1.6778000000e+00 3876 1.3786000000e+00 1.7084000000e+00 3877 1.3610000000e+00 1.7389000000e+00 3878 1.3434000000e+00 1.7693000000e+00 3879 1.3259000000e+00 1.7998000000e+00 3880 -4.3696000000e-01 6.1910000000e-02 3881 -4.1902000000e-01 9.4137000000e-02 3882 -8.5597000000e-01 6.1069000000e-02 3883 -8.5518000000e-01 1.2203000000e-01 3884 -8.7208000000e-01 1.5261000000e-01 3885 -8.3737000000e-01 1.5221000000e-01 3886 -8.5435000000e-01 1.8294000000e-01 3887 -8.8871000000e-01 1.8270000000e-01 3888 1.3435000000e+00 1.7083000000e+00 3889 1.3259000000e+00 1.7388000000e+00 3890 1.3084000000e+00 1.7693000000e+00 3891 1.2909000000e+00 1.7998000000e+00 3892 2.9919000000e+00 2.1280000000e-01 3893 3.0097000000e+00 2.4332000000e-01 3894 3.0450000000e+00 2.4337000000e-01 3895 3.0803000000e+00 2.4335000000e-01 3896 3.0975000000e+00 2.1276000000e-01 3897 3.1327000000e+00 2.1257000000e-01 3898 3.1678000000e+00 2.1225000000e-01 3899 3.1846000000e+00 1.8169000000e-01 3900 3.2011000000e+00 1.5171000000e-01 3901 3.2343000000e+00 1.5211000000e-01 3902 3.2469000000e+00 1.7768000000e-01 3903 -8.6265000000e-01 1.6476000000e+00 3904 -8.9786000000e-01 1.6474000000e+00 3905 -9.1602000000e-01 1.6171000000e+00 3906 -9.5096000000e-01 1.6172000000e+00 3907 -9.6944000000e-01 1.5877000000e+00 3908 -9.8875000000e-01 1.5587000000e+00 3909 -1.0195000000e+00 1.5072000000e+00 3910 -1.0213000000e+00 1.4778000000e+00 3911 -1.0101000000e+00 1.4353000000e+00 3912 -1.0151000000e+00 1.3953000000e+00 3913 -1.0156000000e+00 1.3596000000e+00 3914 -1.0156000000e+00 1.3234000000e+00 3915 -1.0164000000e+00 1.2869000000e+00 3916 -1.0180000000e+00 1.2509000000e+00 3917 -1.0197000000e+00 1.2156000000e+00 3918 -1.0507000000e+00 1.1984000000e+00 3919 -9.9026000000e-01 1.1976000000e+00 3920 -9.6012000000e-01 1.2139000000e+00 3921 -9.3188000000e-01 1.1969000000e+00 3922 -9.0273000000e-01 1.1809000000e+00 3923 -8.7251000000e-01 1.1652000000e+00 3924 -8.4114000000e-01 1.1494000000e+00 3925 -8.0814000000e-01 1.1332000000e+00 3926 -9.0155000000e-01 9.3501000000e-01 3927 -1.0064000000e+00 1.5303000000e+00 3928 -9.9385000000e-01 1.5014000000e+00 3929 -9.8314000000e-01 1.4679000000e+00 3930 -9.6901000000e-01 1.4335000000e+00 3931 -9.8733000000e-01 1.4084000000e+00 3932 -9.8524000000e-01 1.3781000000e+00 3933 -9.8380000000e-01 1.3425000000e+00 3934 -9.8325000000e-01 1.3050000000e+00 3935 -9.8521000000e-01 1.2678000000e+00 3936 -9.8845000000e-01 1.2322000000e+00 3937 -9.5730000000e-01 1.2473000000e+00 3938 -9.3157000000e-01 1.2291000000e+00 3939 -9.0384000000e-01 1.2140000000e+00 3940 -8.7441000000e-01 1.1992000000e+00 3941 -8.4374000000e-01 1.1845000000e+00 3942 -8.1183000000e-01 1.1698000000e+00 3943 -7.7856000000e-01 1.1554000000e+00 3944 -7.2502000000e-01 8.6215000000e-01 3945 -7.5420000000e-01 8.4661000000e-01 3946 -7.5449000000e-01 8.1370000000e-01 3947 -7.2669000000e-01 8.2922000000e-01 3948 -7.2761000000e-01 7.9817000000e-01 3949 -7.0117000000e-01 8.1143000000e-01 3950 -6.9758000000e-01 8.4326000000e-01 3951 -6.7092000000e-01 8.2226000000e-01 3952 2.4478000000e+00 3.6333000000e-01 3953 2.4828000000e+00 3.6325000000e-01 3954 2.5178000000e+00 3.6323000000e-01 3955 2.5354000000e+00 3.3306000000e-01 3956 2.5704000000e+00 3.3311000000e-01 3957 2.6054000000e+00 3.3320000000e-01 3958 1.4338000000e+00 4.2864000000e-01 3959 1.4694000000e+00 4.2738000000e-01 3960 1.4522000000e+00 4.5910000000e-01 3961 1.4878000000e+00 4.5725000000e-01 3962 -7.8213000000e-01 7.9667000000e-01 3963 -8.1013000000e-01 7.7861000000e-01 3964 -8.4046000000e-01 7.9459000000e-01 3965 -8.3857000000e-01 7.5923000000e-01 3966 -8.7024000000e-01 7.7559000000e-01 3967 -8.7100000000e-01 8.1169000000e-01 3968 -1.2018000000e+00 2.7145000000e-01 3969 -1.1714000000e+00 2.8953000000e-01 3970 -1.1415000000e+00 3.0790000000e-01 3971 -1.1093000000e+00 2.9227000000e-01 3972 3.3027000000e+00 5.7568000000e-01 3973 3.3050000000e+00 6.1140000000e-01 3974 3.2762000000e+00 6.2997000000e-01 3975 3.2774000000e+00 6.6334000000e-01 3976 3.2774000000e+00 6.9751000000e-01 3977 3.2774000000e+00 7.3249000000e-01 3978 3.2776000000e+00 7.6779000000e-01 3979 3.2778000000e+00 8.0317000000e-01 3980 3.2781000000e+00 8.3856000000e-01 3981 3.2784000000e+00 8.7394000000e-01 3982 3.2787000000e+00 9.0927000000e-01 3983 3.2791000000e+00 9.4455000000e-01 3984 3.2794000000e+00 9.7973000000e-01 3985 3.2797000000e+00 1.0148000000e+00 3986 3.2799000000e+00 1.0499000000e+00 3987 3.2800000000e+00 1.0849000000e+00 3988 3.2800000000e+00 1.1199000000e+00 3989 3.2799000000e+00 1.1550000000e+00 3990 3.2798000000e+00 1.1900000000e+00 3991 3.2797000000e+00 1.2252000000e+00 3992 3.2795000000e+00 1.2603000000e+00 3993 3.2793000000e+00 1.2955000000e+00 3994 3.2791000000e+00 1.3307000000e+00 3995 3.2788000000e+00 1.3660000000e+00 3996 3.2784000000e+00 1.4013000000e+00 3997 3.2780000000e+00 1.4367000000e+00 3998 3.2775000000e+00 1.4721000000e+00 3999 3.2769000000e+00 1.5077000000e+00 4000 3.2763000000e+00 1.5434000000e+00 4001 3.2757000000e+00 1.5793000000e+00 4002 3.2752000000e+00 1.6152000000e+00 4003 3.2747000000e+00 1.6511000000e+00 4004 3.2742000000e+00 1.6869000000e+00 4005 3.2734000000e+00 1.7226000000e+00 4006 3.2425000000e+00 1.7416000000e+00 4007 3.2127000000e+00 1.7256000000e+00 4008 3.2437000000e+00 1.6343000000e+00 4009 3.2434000000e+00 1.6704000000e+00 4010 3.2431000000e+00 1.7061000000e+00 4011 3.2122000000e+00 1.6902000000e+00 4012 3.1818000000e+00 1.7109000000e+00 4013 3.1482000000e+00 1.6969000000e+00 4014 3.1095000000e+00 1.6812000000e+00 4015 3.0697000000e+00 1.6803000000e+00 4016 3.0361000000e+00 1.6747000000e+00 4017 3.0027000000e+00 1.6692000000e+00 4018 2.9685000000e+00 1.6645000000e+00 4019 2.9334000000e+00 1.6599000000e+00 4020 2.8973000000e+00 1.6553000000e+00 4021 2.8603000000e+00 1.6503000000e+00 4022 2.8346000000e+00 1.6814000000e+00 4023 2.7966000000e+00 1.6764000000e+00 4024 2.7713000000e+00 1.7070000000e+00 4025 2.7365000000e+00 1.7025000000e+00 4026 2.7006000000e+00 1.7031000000e+00 4027 2.7209000000e+00 1.6698000000e+00 4028 2.6825000000e+00 1.6705000000e+00 4029 2.6625000000e+00 1.7055000000e+00 4030 2.8225000000e+00 1.6451000000e+00 4031 2.7839000000e+00 1.6398000000e+00 4032 2.7588000000e+00 1.6719000000e+00 4033 2.7439000000e+00 1.6354000000e+00 4034 2.7034000000e+00 1.6351000000e+00 4035 2.6641000000e+00 1.6375000000e+00 4036 2.6441000000e+00 1.6719000000e+00 4037 2.6233000000e+00 1.7061000000e+00 4038 -1.2328000000e+00 2.8871000000e-01 4039 -1.2323000000e+00 2.5359000000e-01 4040 -1.2628000000e+00 2.3589000000e-01 4041 2.6831000000e+00 1.6028000000e+00 4042 2.6453000000e+00 1.6056000000e+00 4043 2.6261000000e+00 1.6391000000e+00 4044 2.6061000000e+00 1.6722000000e+00 4045 2.5851000000e+00 1.7045000000e+00 4046 2.6007000000e+00 1.7385000000e+00 4047 2.5633000000e+00 1.7356000000e+00 4048 2.5265000000e+00 1.7331000000e+00 4049 2.4898000000e+00 1.7302000000e+00 4050 2.4533000000e+00 1.7262000000e+00 4051 2.4293000000e+00 1.7550000000e+00 4052 2.4177000000e+00 1.7210000000e+00 4053 2.3946000000e+00 1.7471000000e+00 4054 2.4034000000e+00 1.7801000000e+00 4055 2.3671000000e+00 1.7397000000e+00 4056 2.3456000000e+00 1.7161000000e+00 4057 2.3030000000e+00 1.7045000000e+00 4058 2.2638000000e+00 1.7065000000e+00 4059 2.2272000000e+00 1.7050000000e+00 4060 2.1900000000e+00 1.7050000000e+00 4061 2.1536000000e+00 1.7054000000e+00 4062 2.1716000000e+00 1.6741000000e+00 4063 2.1361000000e+00 1.6749000000e+00 4064 2.1178000000e+00 1.7054000000e+00 4065 2.0819000000e+00 1.7051000000e+00 4066 2.1009000000e+00 1.6742000000e+00 4067 2.1199000000e+00 1.6451000000e+00 4068 2.0854000000e+00 1.6422000000e+00 4069 2.0643000000e+00 1.6727000000e+00 4070 3.2442000000e+00 1.5982000000e+00 4071 3.2124000000e+00 1.6175000000e+00 4072 3.2120000000e+00 1.6540000000e+00 4073 3.1803000000e+00 1.6746000000e+00 4074 3.1470000000e+00 1.6584000000e+00 4075 3.1157000000e+00 1.6402000000e+00 4076 3.0879000000e+00 1.6548000000e+00 4077 3.0595000000e+00 1.6484000000e+00 4078 3.0266000000e+00 1.6420000000e+00 4079 2.9925000000e+00 1.6363000000e+00 4080 2.9577000000e+00 1.6310000000e+00 4081 2.9224000000e+00 1.6257000000e+00 4082 2.8862000000e+00 1.6201000000e+00 4083 2.8490000000e+00 1.6143000000e+00 4084 2.8108000000e+00 1.6081000000e+00 4085 2.7709000000e+00 1.6016000000e+00 4086 1.5890000000e+00 3.3747000000e-01 4087 1.6091000000e+00 3.0844000000e-01 4088 1.6461000000e+00 3.0850000000e-01 4089 1.6273000000e+00 3.4506000000e-01 4090 1.6667000000e+00 3.3848000000e-01 4091 1.6826000000e+00 3.0683000000e-01 4092 1.6635000000e+00 2.7585000000e-01 4093 1.6807000000e+00 2.4404000000e-01 4094 1.6993000000e+00 2.7449000000e-01 4095 1.7161000000e+00 2.4288000000e-01 4096 1.1054000000e+00 2.0757000000e-01 4097 1.1256000000e+00 2.3515000000e-01 4098 1.1397000000e+00 2.0245000000e-01 4099 1.1173000000e+00 1.7605000000e-01 4100 2.6578000000e+00 3.6367000000e-01 4101 2.6929000000e+00 3.6383000000e-01 4102 2.7280000000e+00 3.6400000000e-01 4103 2.7457000000e+00 3.3370000000e-01 4104 2.7634000000e+00 3.0339000000e-01 4105 2.7809000000e+00 2.7307000000e-01 4106 2.7985000000e+00 2.4275000000e-01 4107 2.7809000000e+00 2.1235000000e-01 4108 2.8160000000e+00 2.1242000000e-01 4109 2.8336000000e+00 2.4284000000e-01 4110 2.8512000000e+00 2.1249000000e-01 4111 2.7809000000e+00 3.3384000000e-01 4112 2.7985000000e+00 3.0351000000e-01 4113 2.8161000000e+00 2.7318000000e-01 4114 2.8512000000e+00 2.7329000000e-01 4115 2.8688000000e+00 2.4293000000e-01 4116 9.4898000000e-01 1.9764000000e-01 4117 9.7661000000e-01 2.1791000000e-01 4118 9.9018000000e-01 2.4515000000e-01 4119 9.5115000000e-01 2.4231000000e-01 4120 9.7384000000e-01 2.7641000000e-01 4121 9.3903000000e-01 2.8109000000e-01 4122 9.5988000000e-01 3.0909000000e-01 4123 9.2684000000e-01 3.1270000000e-01 4124 9.4616000000e-01 3.4060000000e-01 4125 9.1250000000e-01 3.4330000000e-01 4126 8.9368000000e-01 3.1362000000e-01 4127 8.7792000000e-01 3.4537000000e-01 4128 8.9792000000e-01 3.7506000000e-01 4129 8.6287000000e-01 3.7803000000e-01 4130 8.4241000000e-01 3.4776000000e-01 4131 8.2715000000e-01 3.8097000000e-01 4132 8.0619000000e-01 3.5010000000e-01 4133 7.9126000000e-01 3.8397000000e-01 4134 8.1202000000e-01 4.1443000000e-01 4135 8.4809000000e-01 4.1157000000e-01 4136 8.8373000000e-01 4.0745000000e-01 4137 8.7025000000e-01 4.4076000000e-01 4138 9.0523000000e-01 4.3549000000e-01 4139 9.1803000000e-01 4.0381000000e-01 4140 9.3249000000e-01 3.7243000000e-01 4141 9.5863000000e-01 1.7695000000e+00 4142 9.2365000000e-01 1.7695000000e+00 4143 8.8865000000e-01 1.7694000000e+00 4144 8.5362000000e-01 1.7694000000e+00 4145 8.1857000000e-01 1.7694000000e+00 4146 7.8352000000e-01 1.7694000000e+00 4147 7.4848000000e-01 1.7695000000e+00 4148 7.1344000000e-01 1.7695000000e+00 4149 6.9592000000e-01 1.7392000000e+00 4150 6.6091000000e-01 1.7393000000e+00 4151 6.2594000000e-01 1.7394000000e+00 4152 5.9100000000e-01 1.7395000000e+00 4153 5.5608000000e-01 1.7396000000e+00 4154 5.2115000000e-01 1.7396000000e+00 4155 4.8620000000e-01 1.7396000000e+00 4156 4.5123000000e-01 1.7396000000e+00 4157 4.1624000000e-01 1.7395000000e+00 4158 3.8122000000e-01 1.7395000000e+00 4159 3.4618000000e-01 1.7395000000e+00 4160 3.1113000000e-01 1.7394000000e+00 4161 2.7609000000e-01 1.7394000000e+00 4162 2.5863000000e-01 1.7091000000e+00 4163 2.2357000000e-01 1.7091000000e+00 4164 1.8851000000e-01 1.7090000000e+00 4165 1.5346000000e-01 1.7090000000e+00 4166 1.1842000000e-01 1.7090000000e+00 4167 8.3377000000e-02 1.7090000000e+00 4168 4.8343000000e-02 1.7090000000e+00 4169 3.0815000000e-02 1.6786000000e+00 4170 -4.2139000000e-03 1.6787000000e+00 4171 -3.9227000000e-02 1.6787000000e+00 4172 -7.4221000000e-02 1.6787000000e+00 4173 -1.0920000000e-01 1.6788000000e+00 4174 -1.4415000000e-01 1.6788000000e+00 4175 -1.7910000000e-01 1.6789000000e+00 4176 -2.1403000000e-01 1.6789000000e+00 4177 -2.4897000000e-01 1.6789000000e+00 4178 -2.8391000000e-01 1.6790000000e+00 4179 -3.1886000000e-01 1.6790000000e+00 4180 -3.5382000000e-01 1.6790000000e+00 4181 -3.8879000000e-01 1.6790000000e+00 4182 -4.2377000000e-01 1.6791000000e+00 4183 -4.5876000000e-01 1.6791000000e+00 4184 -4.9376000000e-01 1.6791000000e+00 4185 -5.2876000000e-01 1.6791000000e+00 4186 -5.6378000000e-01 1.6791000000e+00 4187 -5.9881000000e-01 1.6791000000e+00 4188 -6.3387000000e-01 1.6790000000e+00 4189 -6.6894000000e-01 1.6790000000e+00 4190 -7.0406000000e-01 1.6789000000e+00 4191 -7.3920000000e-01 1.6787000000e+00 4192 -7.7438000000e-01 1.6785000000e+00 4193 -8.0958000000e-01 1.6783000000e+00 4194 -8.2736000000e-01 1.6478000000e+00 4195 -8.4529000000e-01 1.6172000000e+00 4196 -8.8074000000e-01 1.6171000000e+00 4197 -8.9917000000e-01 1.5866000000e+00 4198 -9.3458000000e-01 1.5870000000e+00 4199 -9.5373000000e-01 1.5574000000e+00 4200 -9.7336000000e-01 1.5284000000e+00 4201 -9.5933000000e-01 1.4966000000e+00 4202 -9.4521000000e-01 1.4628000000e+00 4203 -9.3115000000e-01 1.4271000000e+00 4204 -9.5712000000e-01 1.3996000000e+00 4205 -9.5236000000e-01 1.3632000000e+00 4206 -9.5062000000e-01 1.3254000000e+00 4207 -9.4777000000e-01 1.2842000000e+00 4208 2.4404000000e+00 1.6930000000e+00 4209 2.4759000000e+00 1.6971000000e+00 4210 2.4626000000e+00 1.6645000000e+00 4211 2.4277000000e+00 1.6604000000e+00 4212 2.4499000000e+00 1.6323000000e+00 4213 2.4152000000e+00 1.6280000000e+00 4214 2.4376000000e+00 1.5999000000e+00 4215 2.4028000000e+00 1.5957000000e+00 4216 2.3806000000e+00 1.6236000000e+00 4217 2.3684000000e+00 1.5916000000e+00 4218 2.3466000000e+00 1.6188000000e+00 4219 2.3579000000e+00 1.6510000000e+00 4220 2.3927000000e+00 1.6560000000e+00 4221 2.4052000000e+00 1.6885000000e+00 4222 2.3833000000e+00 1.7162000000e+00 4223 2.3697000000e+00 1.6844000000e+00 4224 2.3337000000e+00 1.6782000000e+00 4225 2.3017000000e+00 1.6682000000e+00 4226 2.2789000000e+00 1.6822000000e+00 4227 2.2491000000e+00 1.6719000000e+00 4228 2.2088000000e+00 1.6727000000e+00 4229 2.2265000000e+00 1.6390000000e+00 4230 2.1883000000e+00 1.6412000000e+00 4231 1.9227000000e+00 1.1950000000e-01 4232 2.3347000000e+00 1.5874000000e+00 4233 2.3134000000e+00 1.6140000000e+00 4234 2.3244000000e+00 1.6449000000e+00 4235 2.2931000000e+00 1.6392000000e+00 4236 1.2909000000e+00 1.7388000000e+00 4237 1.2734000000e+00 1.7693000000e+00 4238 2.5877000000e+00 3.6337000000e-01 4239 2.6227000000e+00 3.6351000000e-01 4240 2.6400000000e+00 3.9386000000e-01 4241 2.6751000000e+00 3.9408000000e-01 4242 2.7103000000e+00 3.9429000000e-01 4243 2.7455000000e+00 3.9449000000e-01 4244 2.7632000000e+00 3.6417000000e-01 4245 2.7984000000e+00 3.6434000000e-01 4246 2.8161000000e+00 3.3399000000e-01 4247 2.8337000000e+00 3.6451000000e-01 4248 2.8513000000e+00 3.3415000000e-01 4249 2.8337000000e+00 3.0364000000e-01 4250 -7.6841000000e-01 9.1199000000e-02 4251 1.3085000000e+00 1.7083000000e+00 4252 1.2734000000e+00 1.7083000000e+00 4253 1.2909000000e+00 1.6777000000e+00 4254 1.2558000000e+00 1.6777000000e+00 4255 1.2383000000e+00 1.7083000000e+00 4256 1.2558000000e+00 1.7388000000e+00 4257 1.2383000000e+00 1.7693000000e+00 4258 1.2033000000e+00 1.7693000000e+00 4259 1.1858000000e+00 1.7389000000e+00 4260 1.2208000000e+00 1.7389000000e+00 4261 1.2032000000e+00 1.7084000000e+00 4262 1.1682000000e+00 1.7085000000e+00 4263 1.1508000000e+00 1.7390000000e+00 4264 1.1158000000e+00 1.7391000000e+00 4265 1.0809000000e+00 1.7391000000e+00 4266 1.0460000000e+00 1.7392000000e+00 4267 1.0111000000e+00 1.7392000000e+00 4268 9.9358000000e-01 1.7695000000e+00 4269 9.7618000000e-01 1.7391000000e+00 4270 9.4123000000e-01 1.7391000000e+00 4271 9.0624000000e-01 1.7390000000e+00 4272 8.7122000000e-01 1.7390000000e+00 4273 8.3616000000e-01 1.7390000000e+00 4274 8.0109000000e-01 1.7390000000e+00 4275 7.6601000000e-01 1.7390000000e+00 4276 7.3095000000e-01 1.7391000000e+00 4277 7.1339000000e-01 1.7087000000e+00 4278 6.7836000000e-01 1.7088000000e+00 4279 6.4339000000e-01 1.7090000000e+00 4280 6.0846000000e-01 1.7092000000e+00 4281 5.7356000000e-01 1.7093000000e+00 4282 5.3868000000e-01 1.7093000000e+00 4283 5.0378000000e-01 1.7093000000e+00 4284 4.6885000000e-01 1.7093000000e+00 4285 4.3387000000e-01 1.7092000000e+00 4286 3.9885000000e-01 1.7092000000e+00 4287 3.6381000000e-01 1.7091000000e+00 4288 3.2875000000e-01 1.7091000000e+00 4289 2.9369000000e-01 1.7091000000e+00 4290 2.7624000000e-01 1.6787000000e+00 4291 2.4116000000e-01 1.6787000000e+00 4292 2.0609000000e-01 1.6787000000e+00 4293 1.7102000000e-01 1.6786000000e+00 4294 1.3596000000e-01 1.6786000000e+00 4295 1.0091000000e-01 1.6786000000e+00 4296 6.5857000000e-02 1.6786000000e+00 4297 4.8322000000e-02 1.6482000000e+00 4298 1.3271000000e-02 1.6482000000e+00 4299 -2.1762000000e-02 1.6483000000e+00 4300 -5.6770000000e-02 1.6483000000e+00 4301 -9.1750000000e-02 1.6484000000e+00 4302 -1.2670000000e-01 1.6484000000e+00 4303 -1.6163000000e-01 1.6485000000e+00 4304 -1.9654000000e-01 1.6486000000e+00 4305 -2.3145000000e-01 1.6486000000e+00 4306 -2.6637000000e-01 1.6486000000e+00 4307 -3.0130000000e-01 1.6487000000e+00 4308 -3.3624000000e-01 1.6487000000e+00 4309 -3.7119000000e-01 1.6487000000e+00 4310 -4.0616000000e-01 1.6488000000e+00 4311 -4.4114000000e-01 1.6488000000e+00 4312 -4.7613000000e-01 1.6488000000e+00 4313 -5.1113000000e-01 1.6489000000e+00 4314 -5.4614000000e-01 1.6489000000e+00 4315 -5.8117000000e-01 1.6488000000e+00 4316 -6.1622000000e-01 1.6488000000e+00 4317 -6.5130000000e-01 1.6487000000e+00 4318 -6.8641000000e-01 1.6486000000e+00 4319 -7.2157000000e-01 1.6485000000e+00 4320 -7.5679000000e-01 1.6483000000e+00 4321 -7.9205000000e-01 1.6480000000e+00 4322 -8.0982000000e-01 1.6174000000e+00 4323 -8.2772000000e-01 1.5867000000e+00 4324 -8.6347000000e-01 1.5865000000e+00 4325 -8.8207000000e-01 1.5555000000e+00 4326 -9.1818000000e-01 1.5562000000e+00 4327 -9.3807000000e-01 1.5260000000e+00 4328 -9.2235000000e-01 1.4932000000e+00 4329 -9.0621000000e-01 1.4583000000e+00 4330 -8.9176000000e-01 1.4216000000e+00 4331 -9.1755000000e-01 1.3869000000e+00 4332 -9.1975000000e-01 1.3468000000e+00 4333 -9.1668000000e-01 1.3106000000e+00 4334 -9.1064000000e-01 1.2766000000e+00 4335 -9.3059000000e-01 1.2566000000e+00 4336 -9.0557000000e-01 1.2456000000e+00 4337 -8.7679000000e-01 1.2322000000e+00 4338 -8.4679000000e-01 1.2184000000e+00 4339 -8.1572000000e-01 1.2047000000e+00 4340 -7.8364000000e-01 1.1912000000e+00 4341 -7.5119000000e-01 1.1782000000e+00 4342 -7.4559000000e-01 1.1443000000e+00 4343 -7.1546000000e-01 1.1334000000e+00 4344 -6.8668000000e-01 1.1188000000e+00 4345 -6.8871000000e-01 1.1520000000e+00 4346 -6.5821000000e-01 1.1369000000e+00 4347 -6.5703000000e-01 1.1026000000e+00 4348 -6.2730000000e-01 1.1206000000e+00 4349 -5.9574000000e-01 1.1036000000e+00 4350 -5.9716000000e-01 1.1395000000e+00 4351 -5.6420000000e-01 1.1227000000e+00 4352 -5.6340000000e-01 1.0854000000e+00 4353 -5.3245000000e-01 1.0652000000e+00 4354 -5.0371000000e-01 1.0445000000e+00 4355 -5.0025000000e-01 1.0785000000e+00 4356 -4.7338000000e-01 1.0591000000e+00 4357 -4.7516000000e-01 1.0253000000e+00 4358 -5.0589000000e-01 1.0097000000e+00 4359 -4.7698000000e-01 9.9073000000e-01 4360 -4.4587000000e-01 1.0066000000e+00 4361 -4.4508000000e-01 1.0414000000e+00 4362 -4.4505000000e-01 1.0741000000e+00 4363 -4.1606000000e-01 1.0590000000e+00 4364 -4.1491000000e-01 1.0241000000e+00 4365 1.1600000000e+00 2.3170000000e-01 4366 1.1753000000e+00 1.9961000000e-01 4367 1.1549000000e+00 1.6456000000e-01 4368 -4.4800000000e-01 9.7066000000e-01 4369 -4.7936000000e-01 9.5698000000e-01 4370 -4.5392000000e-01 9.3669000000e-01 4371 -5.0751000000e-01 9.7505000000e-01 4372 1.1454000000e+00 2.6352000000e-01 4373 1.1796000000e+00 2.6031000000e-01 4374 1.1942000000e+00 2.2904000000e-01 4375 1.2091000000e+00 1.9932000000e-01 4376 1.1939000000e+00 1.7047000000e-01 4377 1.2225000000e+00 1.7459000000e-01 4378 1.7181000000e+00 3.0469000000e-01 4379 1.7017000000e+00 3.3914000000e-01 4380 1.7373000000e+00 3.3272000000e-01 4381 1.7532000000e+00 3.0230000000e-01 4382 1.7713000000e+00 3.3165000000e-01 4383 1.7882000000e+00 3.0081000000e-01 4384 1.7696000000e+00 2.7125000000e-01 4385 1.8045000000e+00 2.6973000000e-01 4386 1.7512000000e+00 2.4161000000e-01 4387 1.7346000000e+00 2.7284000000e-01 4388 1.7330000000e+00 2.1176000000e-01 4389 1.8234000000e+00 2.9911000000e-01 4390 1.8392000000e+00 2.6800000000e-01 4391 2.8689000000e+00 3.0378000000e-01 4392 2.8864000000e+00 2.7341000000e-01 4393 2.9040000000e+00 2.4303000000e-01 4394 2.8863000000e+00 2.1257000000e-01 4395 9.0982000000e-01 2.8848000000e-01 4396 8.7686000000e-01 2.7746000000e-01 4397 8.5813000000e-01 3.1445000000e-01 4398 8.2221000000e-01 3.1768000000e-01 4399 8.3572000000e-01 2.8487000000e-01 4400 8.0634000000e-01 2.9248000000e-01 4401 7.8443000000e-01 3.1645000000e-01 4402 2.9217000000e+00 2.7354000000e-01 4403 2.9392000000e+00 2.4314000000e-01 4404 2.9215000000e+00 2.1265000000e-01 4405 1.6951000000e+00 1.6463000000e+00 4406 1.6773000000e+00 1.6160000000e+00 4407 1.6419000000e+00 1.6163000000e+00 4408 1.6066000000e+00 1.6167000000e+00 4409 1.5714000000e+00 1.6169000000e+00 4410 7.6963000000e-01 3.5382000000e-01 4411 7.5575000000e-01 3.8779000000e-01 4412 7.7676000000e-01 4.1679000000e-01 4413 7.9636000000e-01 4.4548000000e-01 4414 7.6291000000e-01 4.4855000000e-01 4415 7.8337000000e-01 4.7552000000e-01 4416 2.7277000000e+00 4.2481000000e-01 4417 2.7630000000e+00 4.2504000000e-01 4418 2.7808000000e+00 3.9468000000e-01 4419 2.8160000000e+00 3.9488000000e-01 4420 1.5364000000e+00 1.6171000000e+00 4421 1.5014000000e+00 1.6172000000e+00 4422 1.4841000000e+00 1.5869000000e+00 4423 1.4493000000e+00 1.5867000000e+00 4424 1.4144000000e+00 1.5865000000e+00 4425 1.3793000000e+00 1.5861000000e+00 4426 1.3615000000e+00 1.6166000000e+00 4427 1.3437000000e+00 1.6472000000e+00 4428 1.3261000000e+00 1.6778000000e+00 4429 -8.7990000000e-01 1.2646000000e+00 4430 -8.5014000000e-01 1.2513000000e+00 4431 -8.1989000000e-01 1.2384000000e+00 4432 -7.8840000000e-01 1.2258000000e+00 4433 -7.5609000000e-01 1.2129000000e+00 4434 -7.2378000000e-01 1.1997000000e+00 4435 -7.1945000000e-01 1.1656000000e+00 4436 -6.9194000000e-01 1.1859000000e+00 4437 -6.6048000000e-01 1.1713000000e+00 4438 -6.2902000000e-01 1.1557000000e+00 4439 3.2486000000e+00 1.3133000000e+00 4440 3.2483000000e+00 1.3486000000e+00 4441 3.2479000000e+00 1.3839000000e+00 4442 3.2475000000e+00 1.4193000000e+00 4443 3.2469000000e+00 1.4548000000e+00 4444 3.2463000000e+00 1.4904000000e+00 4445 3.2456000000e+00 1.5262000000e+00 4446 3.2448000000e+00 1.5621000000e+00 4447 3.2130000000e+00 1.5811000000e+00 4448 3.1809000000e+00 1.6005000000e+00 4449 3.1802000000e+00 1.6375000000e+00 4450 3.1482000000e+00 1.6204000000e+00 4451 3.1160000000e+00 1.6028000000e+00 4452 3.0852000000e+00 1.6242000000e+00 4453 3.0517000000e+00 1.6148000000e+00 4454 3.0169000000e+00 1.6086000000e+00 4455 2.9823000000e+00 1.6028000000e+00 4456 2.9476000000e+00 1.5971000000e+00 4457 2.9123000000e+00 1.5909000000e+00 4458 2.8760000000e+00 1.5843000000e+00 4459 2.8385000000e+00 1.5776000000e+00 4460 2.8002000000e+00 1.5703000000e+00 4461 2.7607000000e+00 1.5618000000e+00 4462 2.7258000000e+00 1.5941000000e+00 4463 2.6961000000e+00 1.5716000000e+00 4464 2.6638000000e+00 1.5724000000e+00 4465 2.6271000000e+00 1.5742000000e+00 4466 2.6081000000e+00 1.6071000000e+00 4467 2.5890000000e+00 1.6398000000e+00 4468 2.5690000000e+00 1.6716000000e+00 4469 2.5481000000e+00 1.7026000000e+00 4470 2.5118000000e+00 1.7002000000e+00 4471 2.6463000000e+00 1.5417000000e+00 4472 2.6096000000e+00 1.5426000000e+00 4473 2.5897000000e+00 1.5753000000e+00 4474 2.5716000000e+00 1.6085000000e+00 4475 2.5531000000e+00 1.6399000000e+00 4476 2.5330000000e+00 1.6702000000e+00 4477 2.4977000000e+00 1.6679000000e+00 4478 2.4843000000e+00 1.6362000000e+00 4479 2.4722000000e+00 1.6044000000e+00 4480 2.4607000000e+00 1.5715000000e+00 4481 2.4251000000e+00 1.5673000000e+00 4482 2.3901000000e+00 1.5638000000e+00 4483 2.3560000000e+00 1.5603000000e+00 4484 2.3224000000e+00 1.5564000000e+00 4485 2.3013000000e+00 1.5834000000e+00 4486 2.2805000000e+00 1.6103000000e+00 4487 2.2620000000e+00 1.6380000000e+00 4488 2.2769000000e+00 1.6599000000e+00 4489 2.2458000000e+00 1.6075000000e+00 4490 2.4115000000e+00 1.5351000000e+00 4491 2.3769000000e+00 1.5326000000e+00 4492 2.3435000000e+00 1.5294000000e+00 4493 2.3103000000e+00 1.5256000000e+00 4494 2.2890000000e+00 1.5525000000e+00 4495 2.2676000000e+00 1.5795000000e+00 4496 2.2335000000e+00 1.5751000000e+00 4497 2.2556000000e+00 1.5484000000e+00 4498 2.2228000000e+00 1.5443000000e+00 4499 2.2044000000e+00 1.5680000000e+00 4500 2.2050000000e+00 1.6028000000e+00 4501 2.1654000000e+00 1.6134000000e+00 4502 2.1530000000e+00 1.6451000000e+00 4503 2.6050000000e+00 3.9365000000e-01 4504 2.6222000000e+00 4.2398000000e-01 4505 2.6573000000e+00 4.2428000000e-01 4506 2.6924000000e+00 4.2456000000e-01 4507 2.7098000000e+00 4.5514000000e-01 4508 2.7451000000e+00 4.5541000000e-01 4509 2.7805000000e+00 4.5565000000e-01 4510 2.7983000000e+00 4.2526000000e-01 4511 2.1710000000e+00 1.5754000000e+00 4512 2.1384000000e+00 1.5942000000e+00 4513 2.1367000000e+00 1.6220000000e+00 4514 8.4356000000e-02 7.2869000000e-02 4515 1.1856000000e-01 7.7559000000e-02 4516 9.7714000000e-02 1.0463000000e-01 4517 1.3179000000e-01 1.0993000000e-01 4518 1.1009000000e-01 1.3650000000e-01 4519 1.4476000000e-01 1.4336000000e-01 4520 1.6653000000e-01 1.1509000000e-01 4521 1.5308000000e-01 8.2403000000e-02 4522 7.6279000000e-01 1.5965000000e-01 4523 7.5614000000e-01 1.9988000000e-01 4524 7.8064000000e-01 2.2708000000e-01 4525 8.0534000000e-01 2.5942000000e-01 4526 7.6747000000e-01 2.6015000000e-01 4527 7.8398000000e-01 2.8404000000e-01 4528 8.4547000000e-01 2.4780000000e-01 4529 8.8252000000e-01 2.3549000000e-01 4530 9.1675000000e-01 2.2042000000e-01 4531 9.1646000000e-01 1.8983000000e-01 4532 7.4543000000e-01 2.3305000000e-01 4533 7.3311000000e-01 2.6561000000e-01 4534 7.5630000000e-01 2.9175000000e-01 4535 7.4632000000e-01 3.2536000000e-01 4536 7.3381000000e-01 3.5930000000e-01 4537 7.1123000000e-01 3.3191000000e-01 4538 6.9907000000e-01 3.6461000000e-01 4539 7.2080000000e-01 3.9239000000e-01 4540 6.8626000000e-01 3.9711000000e-01 4541 7.0769000000e-01 4.2505000000e-01 4542 6.7307000000e-01 4.2990000000e-01 4543 6.9481000000e-01 4.5762000000e-01 4544 7.2891000000e-01 4.5275000000e-01 4545 7.4215000000e-01 4.2055000000e-01 4546 6.6528000000e-01 3.6945000000e-01 4547 6.5154000000e-01 4.0133000000e-01 4548 6.3078000000e-01 3.7162000000e-01 4549 6.1590000000e-01 4.0528000000e-01 4550 6.3784000000e-01 4.3463000000e-01 4551 6.6012000000e-01 4.6367000000e-01 4552 6.8296000000e-01 4.8983000000e-01 4553 7.1598000000e-01 4.8456000000e-01 4554 7.0308000000e-01 5.1483000000e-01 4555 7.3614000000e-01 5.1212000000e-01 4556 7.2015000000e-01 5.4377000000e-01 4557 5.9342000000e-01 3.7476000000e-01 4558 5.7953000000e-01 4.1040000000e-01 4559 6.0217000000e-01 4.3898000000e-01 4560 6.1145000000e-01 3.3444000000e-01 4561 5.6765000000e-01 3.4470000000e-01 4562 5.5514000000e-01 3.8213000000e-01 4563 5.2914000000e-01 3.5420000000e-01 4564 5.1795000000e-01 3.9091000000e-01 4565 5.4308000000e-01 4.1781000000e-01 4566 -3.8853000000e-01 1.6185000000e+00 4567 -4.2350000000e-01 1.6185000000e+00 4568 -4.5848000000e-01 1.6186000000e+00 4569 -4.9347000000e-01 1.6186000000e+00 4570 -5.2847000000e-01 1.6186000000e+00 4571 -5.6349000000e-01 1.6186000000e+00 4572 -5.9853000000e-01 1.6186000000e+00 4573 -6.3361000000e-01 1.6185000000e+00 4574 -6.6872000000e-01 1.6184000000e+00 4575 -7.0388000000e-01 1.6182000000e+00 4576 -7.3911000000e-01 1.6180000000e+00 4577 -7.7442000000e-01 1.6177000000e+00 4578 -7.9210000000e-01 1.5870000000e+00 4579 -8.0984000000e-01 1.5561000000e+00 4580 -8.4584000000e-01 1.5556000000e+00 4581 -8.6434000000e-01 1.5238000000e+00 4582 -9.0146000000e-01 1.5243000000e+00 4583 -8.8377000000e-01 1.4909000000e+00 4584 -8.6299000000e-01 1.4539000000e+00 4585 -8.5528000000e-01 1.4155000000e+00 4586 -8.3417000000e-01 1.4359000000e+00 4587 -8.2265000000e-01 1.4101000000e+00 4588 -8.4272000000e-01 1.3837000000e+00 4589 -8.7736000000e-01 1.3877000000e+00 4590 -8.9326000000e-01 1.3621000000e+00 4591 -8.8798000000e-01 1.3324000000e+00 4592 -8.8326000000e-01 1.2980000000e+00 4593 -8.5297000000e-01 1.2837000000e+00 4594 -8.2445000000e-01 1.2703000000e+00 4595 -7.9380000000e-01 1.2595000000e+00 4596 -7.6123000000e-01 1.2478000000e+00 4597 -7.2828000000e-01 1.2346000000e+00 4598 -6.9571000000e-01 1.2207000000e+00 4599 -6.6350000000e-01 1.2061000000e+00 4600 -6.3149000000e-01 1.1909000000e+00 4601 -5.9948000000e-01 1.1751000000e+00 4602 -5.6721000000e-01 1.1591000000e+00 4603 -5.3442000000e-01 1.1438000000e+00 4604 -5.2723000000e-01 1.1049000000e+00 4605 -4.9370000000e-01 1.1063000000e+00 4606 -4.7101000000e-01 1.0908000000e+00 4607 -4.4585000000e-01 1.1022000000e+00 4608 -4.1891000000e-01 1.0923000000e+00 4609 -4.2646000000e-01 1.1292000000e+00 4610 -3.9186000000e-01 1.1111000000e+00 4611 -3.8819000000e-01 1.0782000000e+00 4612 -3.8427000000e-01 1.0436000000e+00 4613 -3.8305000000e-01 1.0068000000e+00 4614 -4.1508000000e-01 9.8718000000e-01 4615 -4.1669000000e-01 9.4582000000e-01 4616 -3.8190000000e-01 9.6919000000e-01 4617 -3.5045000000e-01 9.8992000000e-01 4618 -3.4792000000e-01 9.5355000000e-01 4619 -3.7816000000e-01 9.3189000000e-01 4620 -3.4415000000e-01 9.1766000000e-01 4621 -3.1481000000e-01 9.3857000000e-01 4622 -3.1799000000e-01 9.7405000000e-01 4623 -2.8563000000e-01 9.5917000000e-01 4624 -2.8193000000e-01 9.2386000000e-01 4625 -2.5293000000e-01 9.4488000000e-01 4626 -2.4866000000e-01 9.0914000000e-01 4627 -2.7831000000e-01 8.8827000000e-01 4628 -3.1116000000e-01 9.0315000000e-01 4629 -3.4003000000e-01 8.8248000000e-01 4630 -3.0765000000e-01 8.6805000000e-01 4631 -3.3624000000e-01 8.4790000000e-01 4632 -3.6818000000e-01 8.6183000000e-01 4633 -3.7269000000e-01 8.9630000000e-01 4634 -4.0549000000e-01 9.0881000000e-01 4635 -4.0000000000e-01 8.7511000000e-01 4636 -4.3111000000e-01 8.8750000000e-01 4637 -4.3416000000e-01 9.1625000000e-01 4638 -3.6426000000e-01 8.2770000000e-01 4639 -3.9571000000e-01 8.4145000000e-01 4640 -4.2663000000e-01 8.5473000000e-01 4641 -4.5670000000e-01 8.6763000000e-01 4642 -4.6350000000e-01 9.0241000000e-01 4643 1.3973000000e+00 1.5557000000e+00 4644 1.3622000000e+00 1.5552000000e+00 4645 1.3442000000e+00 1.5858000000e+00 4646 1.3263000000e+00 1.6164000000e+00 4647 1.3086000000e+00 1.6471000000e+00 4648 7.4980000000e-01 4.8024000000e-01 4649 7.7133000000e-01 5.0795000000e-01 4650 2.4437000000e-01 6.2460000000e-02 4651 2.8006000000e-01 6.5984000000e-02 4652 2.5891000000e-01 9.5823000000e-02 4653 2.9563000000e-01 1.0042000000e-01 4654 2.7297000000e-01 1.2920000000e-01 4655 3.0747000000e-01 1.3509000000e-01 4656 3.3759000000e-01 1.0713000000e-01 4657 3.1679000000e-01 6.9275000000e-02 4658 3.2139000000e+00 1.5449000000e+00 4659 3.1819000000e+00 1.5638000000e+00 4660 3.1493000000e+00 1.5830000000e+00 4661 3.1155000000e+00 2.4319000000e-01 4662 3.1507000000e+00 2.4290000000e-01 4663 3.1860000000e+00 2.4268000000e-01 4664 3.2034000000e+00 2.1157000000e-01 4665 3.2187000000e+00 1.8073000000e-01 4666 7.2251000000e-01 2.9898000000e-01 4667 6.8865000000e-01 3.0567000000e-01 4668 6.7696000000e-01 3.3758000000e-01 4669 3.0802000000e+00 1.5845000000e+00 4670 3.0416000000e+00 1.5814000000e+00 4671 3.0070000000e+00 1.5745000000e+00 4672 2.9722000000e+00 1.5693000000e+00 4673 2.9384000000e+00 1.5632000000e+00 4674 2.9034000000e+00 1.5552000000e+00 4675 2.8664000000e+00 1.5480000000e+00 4676 2.8290000000e+00 1.5404000000e+00 4677 2.7912000000e+00 1.5321000000e+00 4678 2.7534000000e+00 1.5225000000e+00 4679 2.7229000000e+00 1.5501000000e+00 4680 2.6850000000e+00 1.5383000000e+00 4681 2.6626000000e+00 1.5149000000e+00 4682 2.6301000000e+00 1.5079000000e+00 4683 2.5956000000e+00 1.5154000000e+00 4684 2.5690000000e+00 1.5404000000e+00 4685 2.5528000000e+00 1.5785000000e+00 4686 2.5374000000e+00 1.6100000000e+00 4687 2.5184000000e+00 1.6389000000e+00 4688 3.2218000000e+00 2.4249000000e-01 4689 3.2037000000e+00 2.7371000000e-01 4690 3.2179000000e+00 3.0594000000e-01 4691 3.2268000000e+00 3.3754000000e-01 4692 3.2310000000e+00 3.6799000000e-01 4693 3.2034000000e+00 3.8293000000e-01 4694 3.2027000000e+00 4.1682000000e-01 4695 3.2030000000e+00 4.5176000000e-01 4696 3.2340000000e+00 4.6916000000e-01 4697 3.2349000000e+00 5.0498000000e-01 4698 3.2672000000e+00 5.2235000000e-01 4699 3.3004000000e+00 5.3898000000e-01 4700 3.2690000000e+00 5.5958000000e-01 4701 3.2725000000e+00 5.9593000000e-01 4702 3.2467000000e+00 6.1633000000e-01 4703 3.2489000000e+00 6.4657000000e-01 4704 3.2475000000e+00 6.7898000000e-01 4705 3.2466000000e+00 7.1388000000e-01 4706 3.2467000000e+00 7.4943000000e-01 4707 3.2469000000e+00 7.8498000000e-01 4708 3.2472000000e+00 8.2048000000e-01 4709 3.2475000000e+00 8.5597000000e-01 4710 3.2478000000e+00 8.9144000000e-01 4711 3.2482000000e+00 9.2684000000e-01 4712 3.2487000000e+00 9.6212000000e-01 4713 3.2490000000e+00 9.9729000000e-01 4714 3.2493000000e+00 1.0324000000e+00 4715 3.2495000000e+00 1.0674000000e+00 4716 3.2496000000e+00 1.1024000000e+00 4717 3.2495000000e+00 1.1374000000e+00 4718 3.2494000000e+00 1.1725000000e+00 4719 3.2493000000e+00 1.2076000000e+00 4720 3.2491000000e+00 1.2428000000e+00 4721 3.2489000000e+00 1.2780000000e+00 4722 3.2181000000e+00 1.2958000000e+00 4723 3.2178000000e+00 1.3312000000e+00 4724 3.2174000000e+00 1.3666000000e+00 4725 3.2170000000e+00 1.4020000000e+00 4726 3.2164000000e+00 1.4375000000e+00 4727 3.2157000000e+00 1.4731000000e+00 4728 3.2148000000e+00 1.5088000000e+00 4729 1.2207000000e+00 1.6778000000e+00 4730 1.2382000000e+00 1.6471000000e+00 4731 1.2030000000e+00 1.6472000000e+00 4732 1.1856000000e+00 1.6779000000e+00 4733 3.1859000000e+00 1.4202000000e+00 4734 3.1851000000e+00 1.4558000000e+00 4735 3.1842000000e+00 1.4915000000e+00 4736 3.1831000000e+00 1.5275000000e+00 4737 3.1508000000e+00 1.5462000000e+00 4738 3.1176000000e+00 1.5650000000e+00 4739 2.8866000000e+00 3.3432000000e-01 4740 2.9041000000e+00 3.0393000000e-01 4741 2.9394000000e+00 3.0409000000e-01 4742 2.9569000000e+00 2.7367000000e-01 4743 2.9744000000e+00 2.4323000000e-01 4744 2.9567000000e+00 2.1273000000e-01 4745 2.9389000000e+00 1.8227000000e-01 4746 2.9741000000e+00 1.8233000000e-01 4747 2.9915000000e+00 1.5193000000e-01 4748 2.9923000000e+00 2.7379000000e-01 4749 3.0276000000e+00 2.7390000000e-01 4750 3.0101000000e+00 3.0441000000e-01 4751 3.0456000000e+00 3.0455000000e-01 4752 3.0630000000e+00 2.7397000000e-01 4753 2.9748000000e+00 3.0426000000e-01 4754 2.1073000000e+00 1.6120000000e+00 4755 2.0747000000e+00 1.6138000000e+00 4756 2.0456000000e+00 1.6354000000e+00 4757 3.0811000000e+00 3.0471000000e-01 4758 3.0984000000e+00 2.7396000000e-01 4759 2.1112000000e+00 1.5767000000e+00 4760 2.0848000000e+00 1.5899000000e+00 4761 2.0504000000e+00 1.5897000000e+00 4762 2.0125000000e+00 1.6101000000e+00 4763 2.0050000000e+00 1.6453000000e+00 4764 1.9712000000e+00 1.6506000000e+00 4765 1.9571000000e+00 1.6799000000e+00 4766 1.9240000000e+00 1.6791000000e+00 4767 1.8892000000e+00 1.6785000000e+00 4768 1.9096000000e+00 1.6432000000e+00 4769 1.8697000000e+00 1.6500000000e+00 4770 1.8547000000e+00 1.6801000000e+00 4771 3.0765000000e-02 1.6177000000e+00 4772 -4.2988000000e-03 1.6178000000e+00 4773 -3.9333000000e-02 1.6179000000e+00 4774 -7.4328000000e-02 1.6179000000e+00 4775 -1.0928000000e-01 1.6180000000e+00 4776 -1.4420000000e-01 1.6181000000e+00 4777 -1.7908000000e-01 1.6182000000e+00 4778 -2.1396000000e-01 1.6183000000e+00 4779 -2.4883000000e-01 1.6183000000e+00 4780 -2.8372000000e-01 1.6184000000e+00 4781 -3.1864000000e-01 1.6184000000e+00 4782 -3.5357000000e-01 1.6184000000e+00 4783 -3.7086000000e-01 1.5882000000e+00 4784 -4.0582000000e-01 1.5882000000e+00 4785 -4.4080000000e-01 1.5883000000e+00 4786 -4.7578000000e-01 1.5883000000e+00 4787 -5.1077000000e-01 1.5884000000e+00 4788 -5.4578000000e-01 1.5884000000e+00 4789 -5.8081000000e-01 1.5884000000e+00 4790 -6.1587000000e-01 1.5883000000e+00 4791 -6.5098000000e-01 1.5882000000e+00 4792 -6.8613000000e-01 1.5880000000e+00 4793 -7.2135000000e-01 1.5878000000e+00 4794 -7.5666000000e-01 1.5874000000e+00 4795 -7.7419000000e-01 1.5567000000e+00 4796 -7.9162000000e-01 1.5258000000e+00 4797 -8.2760000000e-01 1.5247000000e+00 4798 -8.4530000000e-01 1.4919000000e+00 4799 -7.0352000000e-01 1.5576000000e+00 4800 -7.3878000000e-01 1.5573000000e+00 4801 -7.5614000000e-01 1.5267000000e+00 4802 -7.7328000000e-01 1.4961000000e+00 4803 -8.0868000000e-01 1.4946000000e+00 4804 -8.2442000000e-01 1.4632000000e+00 4805 -8.0550000000e-01 1.4367000000e+00 4806 -7.8968000000e-01 1.4083000000e+00 4807 -8.0853000000e-01 1.3802000000e+00 4808 -8.2888000000e-01 1.3518000000e+00 4809 -8.6359000000e-01 1.3563000000e+00 4810 -8.5130000000e-01 1.3202000000e+00 4811 -8.2871000000e-01 1.2974000000e+00 4812 -8.0115000000e-01 1.2914000000e+00 4813 -7.6766000000e-01 1.2829000000e+00 4814 -7.3312000000e-01 1.2706000000e+00 4815 -6.9977000000e-01 1.2560000000e+00 4816 -6.6696000000e-01 1.2414000000e+00 4817 -6.3440000000e-01 1.2263000000e+00 4818 -6.0206000000e-01 1.2106000000e+00 4819 -6.0476000000e-01 1.2464000000e+00 4820 -5.7233000000e-01 1.2302000000e+00 4821 -5.6992000000e-01 1.1947000000e+00 4822 -5.3810000000e-01 1.1789000000e+00 4823 -5.4035000000e-01 1.2139000000e+00 4824 -5.0911000000e-01 1.1975000000e+00 4825 -5.0761000000e-01 1.1642000000e+00 4826 -5.0216000000e-01 1.1327000000e+00 4827 -4.6784000000e-01 1.1246000000e+00 4828 -4.5355000000e-01 1.1586000000e+00 4829 -4.1785000000e-01 1.1702000000e+00 4830 -3.8942000000e-01 1.1456000000e+00 4831 -3.6192000000e-01 1.1247000000e+00 4832 -3.6630000000e-01 1.0965000000e+00 4833 -3.3786000000e-01 1.1019000000e+00 4834 -3.5174000000e-01 1.0668000000e+00 4835 -3.1360000000e-01 1.0771000000e+00 4836 -3.2032000000e-01 1.0438000000e+00 4837 -3.5166000000e-01 1.0267000000e+00 4838 -3.2016000000e-01 1.0093000000e+00 4839 -2.9159000000e-01 1.0272000000e+00 4840 -2.8896000000e-01 9.9388000000e-01 4841 -2.5715000000e-01 9.7980000000e-01 4842 -2.6123000000e-01 1.0138000000e+00 4843 -2.6571000000e-01 1.0470000000e+00 4844 -2.9320000000e-01 1.0557000000e+00 4845 -2.7485000000e-01 1.0834000000e+00 4846 -2.3898000000e-01 1.0677000000e+00 4847 -2.3978000000e-01 1.1022000000e+00 4848 -2.1072000000e-01 1.0851000000e+00 4849 -2.0848000000e-01 1.0541000000e+00 4850 -2.3446000000e-01 1.0342000000e+00 4851 -2.0289000000e-01 1.0221000000e+00 4852 -2.2956000000e-01 1.0007000000e+00 4853 -2.2461000000e-01 9.6635000000e-01 4854 -1.9709000000e-01 9.8827000000e-01 4855 -1.7029000000e-01 1.0108000000e+00 4856 -1.6388000000e-01 9.7617000000e-01 4857 -1.9138000000e-01 9.5346000000e-01 4858 -1.5765000000e-01 9.4114000000e-01 4859 -1.8550000000e-01 9.1793000000e-01 4860 -2.1957000000e-01 9.3101000000e-01 4861 -2.1432000000e-01 8.9436000000e-01 4862 -2.4486000000e-01 8.7250000000e-01 4863 -2.7550000000e-01 8.5295000000e-01 4864 -3.0451000000e-01 8.3356000000e-01 4865 -2.4393000000e-01 8.3648000000e-01 4866 -2.7361000000e-01 8.1883000000e-01 4867 -3.0129000000e-01 7.9989000000e-01 4868 -3.3261000000e-01 8.1374000000e-01 4869 -3.2867000000e-01 7.7977000000e-01 4870 -2.9687000000e-01 7.6672000000e-01 4871 -3.2398000000e-01 7.4554000000e-01 4872 -3.5654000000e-01 7.5913000000e-01 4873 -3.5202000000e-01 7.2401000000e-01 4874 -3.8515000000e-01 7.3835000000e-01 4875 -3.8870000000e-01 7.7343000000e-01 4876 -4.1763000000e-01 7.5368000000e-01 4877 -4.1477000000e-01 7.1795000000e-01 4878 -4.4790000000e-01 7.3451000000e-01 4879 -4.4894000000e-01 7.6967000000e-01 4880 -4.8362000000e-01 7.5306000000e-01 4881 -4.7726000000e-01 7.1438000000e-01 4882 -4.4494000000e-01 6.9821000000e-01 4883 -4.7481000000e-01 6.7878000000e-01 4884 -5.0642000000e-01 6.9539000000e-01 4885 -5.0484000000e-01 6.5910000000e-01 4886 -5.3743000000e-01 6.7674000000e-01 4887 -5.3577000000e-01 6.3898000000e-01 4888 -5.0213000000e-01 6.2162000000e-01 4889 -5.3405000000e-01 6.0082000000e-01 4890 -5.6734000000e-01 6.1913000000e-01 4891 -5.6864000000e-01 6.5641000000e-01 4892 -5.9981000000e-01 6.3678000000e-01 4893 -6.0095000000e-01 6.7331000000e-01 4894 -5.7041000000e-01 6.9348000000e-01 4895 -5.3834000000e-01 7.1698000000e-01 4896 -5.7418000000e-01 7.2854000000e-01 4897 -5.5165000000e-01 7.4694000000e-01 4898 -5.7675000000e-01 7.6154000000e-01 4899 -6.0505000000e-01 7.4336000000e-01 4900 -6.0726000000e-01 7.7828000000e-01 4901 -5.7580000000e-01 7.9588000000e-01 4902 -6.0716000000e-01 8.1497000000e-01 4903 -5.7411000000e-01 8.3218000000e-01 4904 -5.4298000000e-01 8.1208000000e-01 4905 -5.4166000000e-01 8.4910000000e-01 4906 -5.3933000000e-01 8.8579000000e-01 4907 -5.1022000000e-01 8.6569000000e-01 4908 -5.0346000000e-01 9.0323000000e-01 4909 -4.8329000000e-01 8.7750000000e-01 4910 -4.8241000000e-01 8.4852000000e-01 4911 -5.1101000000e-01 8.2997000000e-01 4912 -3.9207000000e-01 8.0766000000e-01 4913 -4.2296000000e-01 8.2162000000e-01 4914 -4.2007000000e-01 7.8812000000e-01 4915 -4.4992000000e-01 8.0262000000e-01 4916 -4.5313000000e-01 8.3506000000e-01 4917 -4.7994000000e-01 8.1522000000e-01 4918 -7.7222000000e-01 1.4370000000e+00 4919 -7.5536000000e-01 1.4073000000e+00 4920 -7.7380000000e-01 1.3781000000e+00 4921 -7.9346000000e-01 1.3492000000e+00 4922 -8.1368000000e-01 1.3212000000e+00 4923 3.4641000000e-01 1.6787000000e+00 4924 3.1133000000e-01 1.6787000000e+00 4925 2.9389000000e-01 1.6483000000e+00 4926 2.5879000000e-01 1.6483000000e+00 4927 2.2369000000e-01 1.6483000000e+00 4928 1.8861000000e-01 1.6482000000e+00 4929 1.5353000000e-01 1.6482000000e+00 4930 1.1846000000e-01 1.6482000000e+00 4931 8.3386000000e-02 1.6482000000e+00 4932 6.5848000000e-02 1.6177000000e+00 4933 4.8283000000e-02 1.5872000000e+00 4934 1.3173000000e-02 1.5872000000e+00 4935 -2.1905000000e-02 1.5873000000e+00 4936 -5.6933000000e-02 1.5875000000e+00 4937 -9.1901000000e-02 1.5876000000e+00 4938 -1.2681000000e-01 1.5877000000e+00 4939 -1.6167000000e-01 1.5879000000e+00 4940 -1.9649000000e-01 1.5880000000e+00 4941 -2.3132000000e-01 1.5880000000e+00 4942 -2.6616000000e-01 1.5881000000e+00 4943 -3.0102000000e-01 1.5881000000e+00 4944 -3.3593000000e-01 1.5881000000e+00 4945 -3.5316000000e-01 1.5579000000e+00 4946 -3.8811000000e-01 1.5579000000e+00 4947 -4.2309000000e-01 1.5580000000e+00 4948 -4.5807000000e-01 1.5581000000e+00 4949 -4.9305000000e-01 1.5581000000e+00 4950 -5.2803000000e-01 1.5582000000e+00 4951 -5.6304000000e-01 1.5582000000e+00 4952 -5.9809000000e-01 1.5581000000e+00 4953 -6.3318000000e-01 1.5580000000e+00 4954 -6.6833000000e-01 1.5579000000e+00 4955 -6.8565000000e-01 1.5275000000e+00 4956 -7.2086000000e-01 1.5272000000e+00 4957 -7.3812000000e-01 1.4968000000e+00 4958 -7.5524000000e-01 1.4666000000e+00 4959 -7.8989000000e-01 1.4657000000e+00 4960 -7.3765000000e-01 1.4369000000e+00 4961 -7.2029000000e-01 1.4067000000e+00 4962 -7.3850000000e-01 1.3768000000e+00 4963 -7.5729000000e-01 1.3464000000e+00 4964 -7.7856000000e-01 1.3170000000e+00 4965 3.2191000000e+00 1.0848000000e+00 4966 3.2191000000e+00 1.1198000000e+00 4967 3.2190000000e+00 1.1549000000e+00 4968 3.2188000000e+00 1.1900000000e+00 4969 3.2186000000e+00 1.2252000000e+00 4970 3.2183000000e+00 1.2605000000e+00 4971 3.1875000000e+00 1.2784000000e+00 4972 3.1872000000e+00 1.3138000000e+00 4973 3.1869000000e+00 1.3492000000e+00 4974 3.1864000000e+00 1.3847000000e+00 4975 3.1553000000e+00 1.4030000000e+00 4976 3.1547000000e+00 1.4386000000e+00 4977 3.1537000000e+00 1.4742000000e+00 4978 3.1525000000e+00 1.5100000000e+00 4979 3.1205000000e+00 1.5283000000e+00 4980 3.0885000000e+00 1.5457000000e+00 4981 2.3968000000e+00 1.5046000000e+00 4982 2.3638000000e+00 1.5024000000e+00 4983 2.3314000000e+00 1.4988000000e+00 4984 2.2987000000e+00 1.4946000000e+00 4985 2.2771000000e+00 1.5215000000e+00 4986 2.2437000000e+00 1.5175000000e+00 4987 2.2100000000e+00 1.5142000000e+00 4988 2.1898000000e+00 1.5424000000e+00 4989 2.4319000000e+00 1.5049000000e+00 4990 2.4144000000e+00 1.4761000000e+00 4991 2.3826000000e+00 1.4762000000e+00 4992 2.3519000000e+00 1.4727000000e+00 4993 2.3204000000e+00 1.4682000000e+00 4994 2.2878000000e+00 1.4631000000e+00 4995 2.2654000000e+00 1.4902000000e+00 4996 2.2315000000e+00 1.4865000000e+00 4997 2.1970000000e+00 1.4829000000e+00 4998 2.1753000000e+00 1.5116000000e+00 4999 2.1553000000e+00 1.5410000000e+00 5000 2.1396000000e+00 1.5100000000e+00 5001 2.1178000000e+00 1.5410000000e+00 5002 2.1387000000e+00 1.5657000000e+00 5003 2.9219000000e+00 3.3451000000e-01 5004 2.9572000000e+00 3.3471000000e-01 5005 2.9926000000e+00 3.3491000000e-01 5006 2.0806000000e+00 1.5573000000e+00 5007 2.0432000000e+00 1.5492000000e+00 5008 2.0116000000e+00 1.5719000000e+00 5009 1.9794000000e+00 1.5939000000e+00 5010 1.9834000000e+00 1.6243000000e+00 5011 1.9492000000e+00 1.6215000000e+00 5012 1.9422000000e+00 1.6549000000e+00 5013 1.9137000000e+00 1.6019000000e+00 5014 1.8793000000e+00 1.6161000000e+00 5015 1.8454000000e+00 1.6266000000e+00 5016 1.8400000000e+00 1.6553000000e+00 5017 1.9450000000e+00 1.5818000000e+00 5018 1.9747000000e+00 1.5537000000e+00 5019 1.9368000000e+00 1.5489000000e+00 5020 1.9163000000e+00 1.5710000000e+00 5021 2.0666000000e+00 1.5283000000e+00 5022 2.0406000000e+00 1.5136000000e+00 5023 2.0097000000e+00 1.5345000000e+00 5024 1.8091000000e+00 1.6415000000e+00 5025 1.7677000000e+00 1.6442000000e+00 5026 1.7309000000e+00 1.6456000000e+00 5027 1.7126000000e+00 1.6154000000e+00 5028 1.6949000000e+00 1.5853000000e+00 5029 1.6596000000e+00 1.5855000000e+00 5030 1.6242000000e+00 1.5859000000e+00 5031 1.5889000000e+00 1.5863000000e+00 5032 1.5539000000e+00 1.5866000000e+00 5033 1.5190000000e+00 1.5868000000e+00 5034 1.5017000000e+00 1.5566000000e+00 5035 1.4670000000e+00 1.5565000000e+00 5036 1.4322000000e+00 1.5562000000e+00 5037 1.4154000000e+00 1.5255000000e+00 5038 1.4501000000e+00 1.5261000000e+00 5039 1.4336000000e+00 1.4956000000e+00 5040 1.3988000000e+00 1.4947000000e+00 5041 1.4175000000e+00 1.4648000000e+00 5042 1.3825000000e+00 1.4635000000e+00 5043 1.3637000000e+00 1.4936000000e+00 5044 1.3804000000e+00 1.5248000000e+00 5045 1.3451000000e+00 1.5241000000e+00 5046 5.9099000000e-01 1.6790000000e+00 5047 5.5618000000e-01 1.6791000000e+00 5048 5.2135000000e-01 1.6791000000e+00 5049 4.8648000000e-01 1.6790000000e+00 5050 4.5154000000e-01 1.6789000000e+00 5051 4.1653000000e-01 1.6788000000e+00 5052 3.8148000000e-01 1.6788000000e+00 5053 3.6411000000e-01 1.6484000000e+00 5054 3.2900000000e-01 1.6483000000e+00 5055 3.1158000000e-01 1.6179000000e+00 5056 2.7645000000e-01 1.6179000000e+00 5057 2.4133000000e-01 1.6178000000e+00 5058 2.0622000000e-01 1.6178000000e+00 5059 1.7113000000e-01 1.6178000000e+00 5060 1.3603000000e-01 1.6178000000e+00 5061 1.0094000000e-01 1.6177000000e+00 5062 8.3405000000e-02 1.5872000000e+00 5063 6.5842000000e-02 1.5566000000e+00 5064 3.0673000000e-02 1.5566000000e+00 5065 -4.4739000000e-03 1.5567000000e+00 5066 -3.9564000000e-02 1.5569000000e+00 5067 -7.4572000000e-02 1.5571000000e+00 5068 -1.0949000000e-01 1.5573000000e+00 5069 -1.4432000000e-01 1.5575000000e+00 5070 -1.7909000000e-01 1.5576000000e+00 5071 -2.1384000000e-01 1.5577000000e+00 5072 -2.4860000000e-01 1.5578000000e+00 5073 -2.8341000000e-01 1.5578000000e+00 5074 -3.1826000000e-01 1.5578000000e+00 5075 -3.3543000000e-01 1.5276000000e+00 5076 -3.7035000000e-01 1.5276000000e+00 5077 -4.0534000000e-01 1.5277000000e+00 5078 -4.4034000000e-01 1.5278000000e+00 5079 -4.7532000000e-01 1.5279000000e+00 5080 -5.1027000000e-01 1.5280000000e+00 5081 -5.4524000000e-01 1.5280000000e+00 5082 -5.8026000000e-01 1.5279000000e+00 5083 -6.1534000000e-01 1.5278000000e+00 5084 -6.5048000000e-01 1.5277000000e+00 5085 -6.6777000000e-01 1.4974000000e+00 5086 -7.0296000000e-01 1.4972000000e+00 5087 -6.8509000000e-01 1.4671000000e+00 5088 -7.2027000000e-01 1.4669000000e+00 5089 -7.0254000000e-01 1.4368000000e+00 5090 -6.8475000000e-01 1.4063000000e+00 5091 -7.0294000000e-01 1.3760000000e+00 5092 -7.2133000000e-01 1.3460000000e+00 5093 -7.3809000000e-01 1.3108000000e+00 5094 -7.0371000000e-01 1.2913000000e+00 5095 -6.7080000000e-01 1.2770000000e+00 5096 -6.3761000000e-01 1.2622000000e+00 5097 -6.0751000000e-01 1.2827000000e+00 5098 -5.7462000000e-01 1.2662000000e+00 5099 -5.4230000000e-01 1.2495000000e+00 5100 -5.1030000000e-01 1.2326000000e+00 5101 -4.7861000000e-01 1.2150000000e+00 5102 -4.7972000000e-01 1.1804000000e+00 5103 -4.8217000000e-01 1.1521000000e+00 5104 -4.4727000000e-01 1.1949000000e+00 5105 -4.0811000000e-01 1.2120000000e+00 5106 -3.8232000000e-01 1.1810000000e+00 5107 -3.5616000000e-01 1.1577000000e+00 5108 -3.4978000000e-01 1.1907000000e+00 5109 -3.2362000000e-01 1.1690000000e+00 5110 -3.1822000000e-01 1.2029000000e+00 5111 -2.9090000000e-01 1.1812000000e+00 5112 -2.9678000000e-01 1.1464000000e+00 5113 -3.2999000000e-01 1.1351000000e+00 5114 -3.0368000000e-01 1.1112000000e+00 5115 -2.6910000000e-01 1.1231000000e+00 5116 -2.6346000000e-01 1.1587000000e+00 5117 -2.3618000000e-01 1.1368000000e+00 5118 -2.0896000000e-01 1.1171000000e+00 5119 -1.8181000000e-01 1.0986000000e+00 5120 -1.8640000000e-01 1.0713000000e+00 5121 -1.7754000000e-01 1.0445000000e+00 5122 -1.4372000000e-01 1.0349000000e+00 5123 -1.3670000000e-01 9.9921000000e-01 5124 -1.3027000000e-01 9.6417000000e-01 5125 -1.2376000000e-01 9.2928000000e-01 5126 -9.6684000000e-02 9.5233000000e-01 5127 -8.9923000000e-02 9.1780000000e-01 5128 -1.1693000000e-01 8.9443000000e-01 5129 -1.5114000000e-01 9.0592000000e-01 5130 -1.7895000000e-01 8.8178000000e-01 5131 -2.0833000000e-01 8.5385000000e-01 5132 -2.1613000000e-01 8.1740000000e-01 5133 -1.8971000000e-01 8.2675000000e-01 5134 -1.9027000000e-01 7.9894000000e-01 5135 -2.1941000000e-01 7.8502000000e-01 5136 -2.4502000000e-01 8.0339000000e-01 5137 -2.7125000000e-01 7.8670000000e-01 5138 -2.6486000000e-01 7.5547000000e-01 5139 -2.9094000000e-01 7.3290000000e-01 5140 -2.5672000000e-01 7.2166000000e-01 5141 -2.8441000000e-01 6.9734000000e-01 5142 -2.5006000000e-01 6.8621000000e-01 5143 -2.7658000000e-01 6.5717000000e-01 5144 -3.1332000000e-01 6.7540000000e-01 5145 -3.1381000000e-01 6.3995000000e-01 5146 -3.3964000000e-01 6.5866000000e-01 5147 -3.4666000000e-01 6.8856000000e-01 5148 -3.7515000000e-01 6.6074000000e-01 5149 -3.8097000000e-01 7.0180000000e-01 5150 -3.1859000000e-01 7.1064000000e-01 5151 -4.4584000000e-01 1.2332000000e+00 5152 -4.7945000000e-01 1.2514000000e+00 5153 -4.4828000000e-01 1.2713000000e+00 5154 -4.1333000000e-01 1.2546000000e+00 5155 -4.1182000000e-01 6.8107000000e-01 5156 7.0754000000e-01 2.3614000000e-01 5157 6.9940000000e-01 2.7368000000e-01 5158 3.2067000000e+00 3.5574000000e-01 5159 3.1754000000e+00 3.5895000000e-01 5160 3.1725000000e+00 3.9795000000e-01 5161 3.1723000000e+00 4.3396000000e-01 5162 3.1727000000e+00 4.6928000000e-01 5163 3.2035000000e+00 4.8715000000e-01 5164 3.2037000000e+00 5.2304000000e-01 5165 3.2356000000e+00 5.4198000000e-01 5166 2.0905000000e+00 1.5263000000e+00 5167 2.0783000000e+00 1.4950000000e+00 5168 2.0414000000e+00 1.4780000000e+00 5169 2.0046000000e+00 1.4966000000e+00 5170 3.2162000000e+00 8.0225000000e-01 5171 3.2164000000e+00 8.3785000000e-01 5172 3.2167000000e+00 8.7348000000e-01 5173 3.2172000000e+00 9.0907000000e-01 5174 3.2177000000e+00 9.4451000000e-01 5175 3.2183000000e+00 9.7978000000e-01 5176 3.2187000000e+00 1.0149000000e+00 5177 3.2190000000e+00 1.0499000000e+00 5178 3.1887000000e+00 1.0673000000e+00 5179 3.1887000000e+00 1.1022000000e+00 5180 3.1885000000e+00 1.1372000000e+00 5181 3.1883000000e+00 1.1724000000e+00 5182 3.1880000000e+00 1.2077000000e+00 5183 3.1877000000e+00 1.2430000000e+00 5184 3.1568000000e+00 1.2609000000e+00 5185 3.1565000000e+00 1.2965000000e+00 5186 3.1562000000e+00 1.3320000000e+00 5187 3.1558000000e+00 1.3675000000e+00 5188 3.1247000000e+00 1.3860000000e+00 5189 3.1242000000e+00 1.4215000000e+00 5190 3.1234000000e+00 1.4570000000e+00 5191 3.1223000000e+00 1.4926000000e+00 5192 3.0910000000e+00 1.5107000000e+00 5193 3.0609000000e+00 1.5284000000e+00 5194 3.0608000000e+00 1.5577000000e+00 5195 3.0328000000e+00 1.5487000000e+00 5196 2.9961000000e+00 1.5368000000e+00 5197 2.9617000000e+00 1.5415000000e+00 5198 2.9333000000e+00 1.5255000000e+00 5199 2.8942000000e+00 1.5192000000e+00 5200 2.8574000000e+00 1.5115000000e+00 5201 2.8205000000e+00 1.5031000000e+00 5202 2.7833000000e+00 1.4941000000e+00 5203 2.7459000000e+00 1.4844000000e+00 5204 2.7167000000e+00 1.5123000000e+00 5205 2.6870000000e+00 1.5044000000e+00 5206 2.6645000000e+00 1.4821000000e+00 5207 2.6304000000e+00 1.4714000000e+00 5208 2.6019000000e+00 1.4868000000e+00 5209 2.5676000000e+00 1.4992000000e+00 5210 2.5420000000e+00 1.5204000000e+00 5211 2.5258000000e+00 1.5514000000e+00 5212 2.5233000000e+00 1.5853000000e+00 5213 2.5052000000e+00 1.6087000000e+00 5214 2.4955000000e+00 1.5773000000e+00 5215 2.4858000000e+00 1.5425000000e+00 5216 2.4480000000e+00 1.5373000000e+00 5217 2.4732000000e+00 1.5023000000e+00 5218 2.4476000000e+00 1.4737000000e+00 5219 2.4294000000e+00 1.4480000000e+00 5220 2.3982000000e+00 1.4493000000e+00 5221 2.3708000000e+00 1.4517000000e+00 5222 2.3428000000e+00 1.4387000000e+00 5223 2.3096000000e+00 1.4410000000e+00 5224 2.2793000000e+00 1.4266000000e+00 5225 2.2538000000e+00 1.4582000000e+00 5226 2.2193000000e+00 1.4556000000e+00 5227 2.1856000000e+00 1.4505000000e+00 5228 2.1605000000e+00 1.4789000000e+00 5229 2.1195000000e+00 1.4777000000e+00 5230 2.1091000000e+00 1.5100000000e+00 5231 1.0983000000e+00 1.7087000000e+00 5232 1.0634000000e+00 1.7088000000e+00 5233 1.0286000000e+00 1.7088000000e+00 5234 9.9372000000e-01 1.7088000000e+00 5235 1.8003000000e-01 1.4779000000e-01 5236 2.0157000000e-01 1.1993000000e-01 5237 1.8795000000e-01 8.7058000000e-02 5238 1.9567000000e+00 1.5232000000e+00 5239 1.9252000000e+00 1.5184000000e+00 5240 1.9034000000e+00 1.5448000000e+00 5241 1.8829000000e+00 1.5774000000e+00 5242 1.8545000000e+00 1.5976000000e+00 5243 1.8201000000e+00 1.5988000000e+00 5244 1.7833000000e+00 1.6111000000e+00 5245 1.7479000000e+00 1.6143000000e+00 5246 1.7298000000e+00 1.5851000000e+00 5247 1.7633000000e+00 1.5845000000e+00 5248 1.7474000000e+00 1.5558000000e+00 5249 1.7129000000e+00 1.5549000000e+00 5250 4.8231000000e-02 1.5259000000e+00 5251 1.2988000000e-02 1.5260000000e+00 5252 -2.2208000000e-02 1.5262000000e+00 5253 -5.7299000000e-02 1.5265000000e+00 5254 -9.2253000000e-02 1.5268000000e+00 5255 -1.2707000000e-01 1.5271000000e+00 5256 -1.6179000000e-01 1.5273000000e+00 5257 -1.9643000000e-01 1.5275000000e+00 5258 -2.3109000000e-01 1.5275000000e+00 5259 -2.6580000000e-01 1.5276000000e+00 5260 -3.0058000000e-01 1.5276000000e+00 5261 -3.1766000000e-01 1.4973000000e+00 5262 -3.5251000000e-01 1.4973000000e+00 5263 -3.8750000000e-01 1.4973000000e+00 5264 -4.2257000000e-01 1.4974000000e+00 5265 -4.5760000000e-01 1.4976000000e+00 5266 -4.9252000000e-01 1.4978000000e+00 5267 -5.2741000000e-01 1.4979000000e+00 5268 -5.6237000000e-01 1.4978000000e+00 5269 -5.9743000000e-01 1.4977000000e+00 5270 -6.3257000000e-01 1.4975000000e+00 5271 -6.4983000000e-01 1.4672000000e+00 5272 -6.6717000000e-01 1.4368000000e+00 5273 -6.4902000000e-01 1.4062000000e+00 5274 -6.6655000000e-01 1.3749000000e+00 5275 -6.8621000000e-01 1.3450000000e+00 5276 -7.0497000000e-01 1.3211000000e+00 5277 -6.7549000000e-01 1.3122000000e+00 5278 -6.4126000000e-01 1.2989000000e+00 5279 -6.1016000000e-01 1.3196000000e+00 5280 -5.7662000000e-01 1.3029000000e+00 5281 -5.4420000000e-01 1.2853000000e+00 5282 -5.1201000000e-01 1.2684000000e+00 5283 -4.8169000000e-01 1.2878000000e+00 5284 -4.5164000000e-01 1.3080000000e+00 5285 -4.1775000000e-01 1.2926000000e+00 5286 -3.8251000000e-01 1.2781000000e+00 5287 -3.7752000000e-01 1.2404000000e+00 5288 -3.7268000000e-01 1.2096000000e+00 5289 -3.4573000000e-01 1.2240000000e+00 5290 -3.1343000000e-01 1.2368000000e+00 5291 -3.4283000000e-01 1.2639000000e+00 5292 -3.0346000000e-01 1.2689000000e+00 5293 -2.8447000000e-01 1.2455000000e+00 5294 -2.8596000000e-01 1.2158000000e+00 5295 -2.5745000000e-01 1.1943000000e+00 5296 -2.3048000000e-01 1.1706000000e+00 5297 -2.2266000000e-01 1.2050000000e+00 5298 -1.9781000000e-01 1.1802000000e+00 5299 -2.0543000000e-01 1.1490000000e+00 5300 -1.7995000000e-01 1.1309000000e+00 5301 -1.5141000000e-01 1.1135000000e+00 5302 -1.5358000000e-01 1.0739000000e+00 5303 -1.1913000000e-01 1.0962000000e+00 5304 -1.5287000000e-01 1.1485000000e+00 5305 -1.2125000000e-01 1.1330000000e+00 5306 -1.2450000000e-01 1.1694000000e+00 5307 -9.1320000000e-02 1.1535000000e+00 5308 -8.8442000000e-02 1.1171000000e+00 5309 -8.5073000000e-02 1.0807000000e+00 5310 -5.5404000000e-02 1.1018000000e+00 5311 -5.8619000000e-02 1.1377000000e+00 5312 -6.1356000000e-02 1.1736000000e+00 5313 -2.9272000000e-02 1.1580000000e+00 5314 -2.6068000000e-02 1.1225000000e+00 5315 -2.2643000000e-02 1.0868000000e+00 5316 -5.1728000000e-02 1.0660000000e+00 5317 -8.0683000000e-02 1.0446000000e+00 5318 -1.1519000000e-01 1.0588000000e+00 5319 -1.0912000000e-01 1.0223000000e+00 5320 -7.5528000000e-02 1.0093000000e+00 5321 -1.0300000000e-01 9.8702000000e-01 5322 -6.9842000000e-02 9.7490000000e-01 5323 -6.3391000000e-02 9.4093000000e-01 5324 -5.6097000000e-02 9.0684000000e-01 5325 -3.0376000000e-02 9.3046000000e-01 5326 -2.1983000000e-02 8.9672000000e-01 5327 -4.8230000000e-02 8.7213000000e-01 5328 -8.2743000000e-02 8.8309000000e-01 5329 -7.5376000000e-02 8.4787000000e-01 5330 -4.0168000000e-02 8.3668000000e-01 5331 -6.7857000000e-02 8.1153000000e-01 5332 -1.0333000000e-01 8.2432000000e-01 5333 -9.7631000000e-02 7.8776000000e-01 5334 -1.3195000000e-01 8.0247000000e-01 5335 -1.3717000000e-01 8.3682000000e-01 5336 -1.0994000000e-01 8.5958000000e-01 5337 -1.4407000000e-01 8.7102000000e-01 5338 -1.7029000000e-01 8.4768000000e-01 5339 -1.6343000000e-01 8.1593000000e-01 5340 -1.6109000000e-01 7.8300000000e-01 5341 -1.9171000000e-01 7.6558000000e-01 5342 -1.6009000000e-01 7.4807000000e-01 5343 -1.9176000000e-01 7.2959000000e-01 5344 -2.2752000000e-01 7.4890000000e-01 5345 -2.2233000000e-01 7.0908000000e-01 5346 -2.4564000000e-01 7.7589000000e-01 5347 -1.8958000000e-01 6.9356000000e-01 5348 -1.5914000000e-01 7.1234000000e-01 5349 -1.2776000000e-01 7.3091000000e-01 5350 -1.2738000000e-01 6.9504000000e-01 5351 -1.5810000000e-01 6.7692000000e-01 5352 -1.8789000000e-01 6.5893000000e-01 5353 -1.5731000000e-01 6.4174000000e-01 5354 -1.8729000000e-01 6.2503000000e-01 5355 -2.1676000000e-01 6.4182000000e-01 5356 -2.1683000000e-01 6.0739000000e-01 5357 -2.4825000000e-01 6.2752000000e-01 5358 -2.5313000000e-01 5.8499000000e-01 5359 -2.1813000000e-01 6.7452000000e-01 5360 -2.4199000000e-01 6.5745000000e-01 5361 -2.8401000000e-01 6.1620000000e-01 5362 -3.2001000000e-01 6.0360000000e-01 5363 -2.9212000000e-01 5.8385000000e-01 5364 -3.2085000000e-01 5.6607000000e-01 5365 -3.5998000000e-01 5.8687000000e-01 5366 -3.4907000000e-01 6.2854000000e-01 5367 -3.8563000000e-01 6.2131000000e-01 5368 -4.1200000000e-01 6.4511000000e-01 5369 -4.4285000000e-01 6.6247000000e-01 5370 -4.7232000000e-01 6.4301000000e-01 5371 -4.4102000000e-01 6.2856000000e-01 5372 -4.6805000000e-01 6.0741000000e-01 5373 -4.3543000000e-01 5.9683000000e-01 5374 -4.1527000000e-01 6.1640000000e-01 5375 -4.0211000000e-01 5.9008000000e-01 5376 -5.1410000000e-01 1.3040000000e+00 5377 -5.4556000000e-01 1.3207000000e+00 5378 -5.1648000000e-01 1.3386000000e+00 5379 -4.8467000000e-01 1.3234000000e+00 5380 3.5294000000e-01 6.9565000000e-02 5381 2.0621000000e+00 1.2053000000e-01 5382 2.0442000000e+00 1.5062000000e-01 5383 2.0793000000e+00 1.5091000000e-01 5384 2.0612000000e+00 1.8114000000e-01 5385 2.0965000000e+00 1.8139000000e-01 5386 2.0784000000e+00 2.1181000000e-01 5387 2.1139000000e+00 2.1193000000e-01 5388 2.0958000000e+00 2.4252000000e-01 5389 2.1314000000e+00 2.4243000000e-01 5390 2.1492000000e+00 2.1195000000e-01 5391 2.1318000000e+00 1.8152000000e-01 5392 -4.2629000000e-01 5.6443000000e-01 5393 -4.5966000000e-01 5.7399000000e-01 5394 -4.5178000000e-01 5.4215000000e-01 5395 -4.7864000000e-01 5.5268000000e-01 5396 -4.7848000000e-01 5.2424000000e-01 5397 -4.4870000000e-01 5.0850000000e-01 5398 -4.1877000000e-01 5.2894000000e-01 5399 -4.1628000000e-01 4.9141000000e-01 5400 -3.7959000000e-01 5.1250000000e-01 5401 -3.8984000000e-01 5.5447000000e-01 5402 -3.5214000000e-01 5.4387000000e-01 5403 3.1254000000e+00 1.3148000000e+00 5404 3.1251000000e+00 1.3504000000e+00 5405 3.0940000000e+00 1.3691000000e+00 5406 3.0937000000e+00 1.4047000000e+00 5407 3.0931000000e+00 1.4402000000e+00 5408 3.0922000000e+00 1.4756000000e+00 5409 3.0613000000e+00 1.4943000000e+00 5410 3.0304000000e+00 1.5139000000e+00 5411 3.1577000000e+00 1.1547000000e+00 5412 3.1574000000e+00 1.1900000000e+00 5413 3.1570000000e+00 1.2254000000e+00 5414 3.1259000000e+00 1.2434000000e+00 5415 3.1257000000e+00 1.2791000000e+00 5416 3.0944000000e+00 1.2976000000e+00 5417 3.0943000000e+00 1.3334000000e+00 5418 3.0631000000e+00 1.3524000000e+00 5419 3.0629000000e+00 1.3881000000e+00 5420 3.0627000000e+00 1.4237000000e+00 5421 3.0621000000e+00 1.4591000000e+00 5422 3.0312000000e+00 1.4782000000e+00 5423 3.0000000000e+00 1.4973000000e+00 5424 2.5809000000e+00 1.4656000000e+00 5425 2.5481000000e+00 1.4692000000e+00 5426 2.5359000000e+00 1.4959000000e+00 5427 2.5121000000e+00 1.5148000000e+00 5428 3.0319000000e+00 1.4429000000e+00 5429 3.0015000000e+00 1.4622000000e+00 5430 2.9722000000e+00 1.4804000000e+00 5431 2.9685000000e+00 1.5128000000e+00 5432 2.9475000000e+00 1.4955000000e+00 5433 2.9195000000e+00 1.4915000000e+00 5434 2.8851000000e+00 1.4837000000e+00 5435 2.8493000000e+00 1.4749000000e+00 5436 2.8127000000e+00 1.4659000000e+00 5437 2.7761000000e+00 1.4566000000e+00 5438 2.7399000000e+00 1.4468000000e+00 5439 2.7061000000e+00 1.4740000000e+00 5440 2.6817000000e+00 1.4530000000e+00 5441 2.6542000000e+00 1.4486000000e+00 5442 2.6250000000e+00 1.4418000000e+00 5443 2.6068000000e+00 1.4608000000e+00 5444 2.5962000000e+00 1.4384000000e+00 5445 2.5647000000e+00 1.4387000000e+00 5446 2.5299000000e+00 1.4401000000e+00 5447 2.5099000000e+00 1.4757000000e+00 5448 1.0460000000e+00 1.6785000000e+00 5449 1.0112000000e+00 1.6785000000e+00 5450 9.7640000000e-01 1.6784000000e+00 5451 9.5882000000e-01 1.7087000000e+00 5452 9.2386000000e-01 1.7086000000e+00 5453 8.8885000000e-01 1.7085000000e+00 5454 8.5378000000e-01 1.7085000000e+00 5455 8.7145000000e-01 1.6780000000e+00 5456 8.3631000000e-01 1.6779000000e+00 5457 8.1868000000e-01 1.7084000000e+00 5458 1.0808000000e+00 1.6784000000e+00 5459 1.0633000000e+00 1.6481000000e+00 5460 1.0286000000e+00 1.6482000000e+00 5461 9.9394000000e-01 1.6481000000e+00 5462 9.5916000000e-01 1.6479000000e+00 5463 9.4150000000e-01 1.6782000000e+00 5464 9.0652000000e-01 1.6781000000e+00 5465 8.8919000000e-01 1.6475000000e+00 5466 8.5402000000e-01 1.6473000000e+00 5467 8.1879000000e-01 1.6472000000e+00 5468 8.0115000000e-01 1.6779000000e+00 5469 7.8356000000e-01 1.7085000000e+00 5470 7.4846000000e-01 1.7086000000e+00 5471 7.3087000000e-01 1.6781000000e+00 5472 6.9579000000e-01 1.6783000000e+00 5473 6.6078000000e-01 1.6785000000e+00 5474 6.2585000000e-01 1.6788000000e+00 5475 6.0832000000e-01 1.6486000000e+00 5476 5.7358000000e-01 1.6488000000e+00 5477 5.3888000000e-01 1.6489000000e+00 5478 5.0412000000e-01 1.6488000000e+00 5479 4.6925000000e-01 1.6487000000e+00 5480 4.3427000000e-01 1.6485000000e+00 5481 3.9921000000e-01 1.6484000000e+00 5482 3.8188000000e-01 1.6180000000e+00 5483 3.4673000000e-01 1.6179000000e+00 5484 3.2931000000e-01 1.5874000000e+00 5485 2.9414000000e-01 1.5874000000e+00 5486 2.5899000000e-01 1.5874000000e+00 5487 2.2387000000e-01 1.5874000000e+00 5488 1.8875000000e-01 1.5873000000e+00 5489 1.5364000000e-01 1.5873000000e+00 5490 1.1853000000e-01 1.5872000000e+00 5491 1.0101000000e-01 1.5567000000e+00 5492 8.3468000000e-02 1.5260000000e+00 5493 6.5890000000e-02 1.4952000000e+00 5494 3.0532000000e-02 1.4952000000e+00 5495 -4.8266000000e-03 1.4953000000e+00 5496 -4.0077000000e-02 1.4957000000e+00 5497 -7.5127000000e-02 1.4962000000e+00 5498 -1.0997000000e-01 1.4966000000e+00 5499 -1.4464000000e-01 1.4970000000e+00 5500 -1.7916000000e-01 1.4972000000e+00 5501 -2.1364000000e-01 1.4973000000e+00 5502 -2.4820000000e-01 1.4973000000e+00 5503 -2.8289000000e-01 1.4973000000e+00 5504 -2.9990000000e-01 1.4672000000e+00 5505 -3.3460000000e-01 1.4671000000e+00 5506 -3.6950000000e-01 1.4670000000e+00 5507 -4.0469000000e-01 1.4669000000e+00 5508 -4.3991000000e-01 1.4672000000e+00 5509 -4.7486000000e-01 1.4676000000e+00 5510 -5.0960000000e-01 1.4678000000e+00 5511 -5.4440000000e-01 1.4677000000e+00 5512 -5.7942000000e-01 1.4675000000e+00 5513 -6.1458000000e-01 1.4673000000e+00 5514 -6.3176000000e-01 1.4369000000e+00 5515 -6.1351000000e-01 1.4066000000e+00 5516 -6.3037000000e-01 1.3758000000e+00 5517 -5.9526000000e-01 1.3765000000e+00 5518 -6.1189000000e-01 1.3509000000e+00 5519 -6.4599000000e-01 1.3396000000e+00 5520 -5.7767000000e-01 1.3425000000e+00 5521 -5.4426000000e-01 1.3507000000e+00 5522 -5.2163000000e-01 1.3750000000e+00 5523 -4.8866000000e-01 1.3576000000e+00 5524 -4.5544000000e-01 1.3442000000e+00 5525 -4.2202000000e-01 1.3289000000e+00 5526 -3.8876000000e-01 1.3147000000e+00 5527 -3.5492000000e-01 1.3026000000e+00 5528 -3.2227000000e-01 1.2963000000e+00 5529 -2.8965000000e-01 1.2999000000e+00 5530 -3.0964000000e-01 1.3203000000e+00 5531 -2.8408000000e-01 1.3337000000e+00 5532 -2.5027000000e-01 1.3090000000e+00 5533 -2.6822000000e-01 1.2714000000e+00 5534 -2.5137000000e-01 1.2344000000e+00 5535 -2.1081000000e-01 1.2384000000e+00 5536 -2.3016000000e-01 1.2705000000e+00 5537 -1.9229000000e-01 1.2681000000e+00 5538 -2.0809000000e-01 1.3018000000e+00 5539 -1.7052000000e-01 1.2971000000e+00 5540 -1.5391000000e-01 1.2605000000e+00 5541 -1.8034000000e-01 1.2405000000e+00 5542 -1.8817000000e-01 1.2122000000e+00 5543 -1.6088000000e-01 1.1855000000e+00 5544 -1.7936000000e-01 1.1588000000e+00 5545 -1.2696000000e-01 1.2059000000e+00 5546 -9.3893000000e-02 1.1903000000e+00 5547 -6.3115000000e-02 1.2093000000e+00 5548 -3.2063000000e-02 1.1929000000e+00 5549 -5.9613000000e-04 1.1782000000e+00 5550 2.9331000000e-03 1.1431000000e+00 5551 3.1508000000e-02 1.1640000000e+00 5552 3.5442000000e-02 1.1285000000e+00 5553 6.4516000000e-03 1.1076000000e+00 5554 3.9051000000e-02 1.0927000000e+00 5555 9.8558000000e-03 1.0719000000e+00 5556 4.2310000000e-02 1.0566000000e+00 5557 1.2939000000e-02 1.0364000000e+00 5558 -1.9114000000e-02 1.0514000000e+00 5559 -4.7601000000e-02 1.0308000000e+00 5560 -4.3044000000e-02 9.9654000000e-01 5561 -3.7512000000e-02 9.6337000000e-01 5562 -6.2681000000e-03 9.5336000000e-01 5563 2.9013000000e-03 9.2164000000e-01 5564 2.5781000000e-02 9.4741000000e-01 5565 3.7271000000e-02 9.1438000000e-01 5566 6.0601000000e-02 9.4218000000e-01 5567 7.2643000000e-02 9.0767000000e-01 5568 9.6110000000e-02 9.3492000000e-01 5569 1.0812000000e-01 9.0143000000e-01 5570 8.4946000000e-02 8.7339000000e-01 5571 4.8713000000e-02 8.7983000000e-01 5572 1.2889000000e-02 8.8765000000e-01 5573 -1.3055000000e-02 8.6172000000e-01 5574 -4.2973000000e-03 8.2553000000e-01 5575 -3.2208000000e-02 8.0138000000e-01 5576 -5.8411000000e-02 7.7124000000e-01 5577 -9.5210000000e-02 7.5005000000e-01 5578 -1.2897000000e-01 7.6703000000e-01 5579 -9.5688000000e-02 7.1296000000e-01 5580 -9.6309000000e-02 6.7727000000e-01 5581 -6.4663000000e-02 6.9412000000e-01 5582 -6.5995000000e-02 6.5901000000e-01 5583 -9.6897000000e-02 6.4265000000e-01 5584 -1.2714000000e-01 6.5988000000e-01 5585 -3.4545000000e-02 6.7510000000e-01 5586 -3.2653000000e-02 7.0999000000e-01 5587 -3.1172000000e-03 6.9086000000e-01 5588 -1.2313000000e-03 7.2494000000e-01 5589 -2.9600000000e-02 7.4454000000e-01 5590 1.0579000000e-03 7.5770000000e-01 5591 2.9147000000e-02 7.4009000000e-01 5592 3.0553000000e-02 7.7334000000e-01 5593 5.8798000000e-02 7.5560000000e-01 5594 -2.3615000000e-02 7.7303000000e-01 5595 2.7800000000e-02 7.0656000000e-01 5596 2.6629000000e-02 6.7236000000e-01 5597 -4.6703000000e-03 6.5631000000e-01 5598 2.5379000000e-02 6.3768000000e-01 5599 5.6923000000e-02 6.5415000000e-01 5600 5.5737000000e-02 6.1906000000e-01 5601 2.3892000000e-02 6.0275000000e-01 5602 -6.2183000000e-03 6.2159000000e-01 5603 -7.9220000000e-03 5.8672000000e-01 5604 -3.7843000000e-02 6.0580000000e-01 5605 -3.6115000000e-02 6.4039000000e-01 5606 -6.7364000000e-02 6.2463000000e-01 5607 -9.7770000000e-02 6.0945000000e-01 5608 -1.2671000000e-01 6.2570000000e-01 5609 -1.5661000000e-01 6.0400000000e-01 5610 -1.2443000000e-01 5.9648000000e-01 5611 6.4185000000e-02 1.0015000000e-01 5612 5.0246000000e-02 6.8718000000e-02 5613 3.0295000000e-02 9.6855000000e-02 5614 4.5173000000e-02 1.2705000000e-01 5615 7.7310000000e-02 1.3073000000e-01 5616 2.1135000000e+00 2.7308000000e-01 5617 2.1489000000e+00 2.7282000000e-01 5618 2.1667000000e+00 2.4234000000e-01 5619 2.1845000000e+00 2.1195000000e-01 5620 2.1671000000e+00 1.8158000000e-01 5621 1.7128000000e-01 1.5568000000e+00 5622 1.3616000000e-01 1.5567000000e+00 5623 1.1867000000e-01 1.5261000000e+00 5624 1.0118000000e-01 1.4954000000e+00 5625 8.3693000000e-02 1.4645000000e+00 5626 4.8243000000e-02 1.4642000000e+00 5627 1.2670000000e-02 1.4642000000e+00 5628 -2.2872000000e-02 1.4646000000e+00 5629 -5.8144000000e-02 1.4654000000e+00 5630 -9.3038000000e-02 1.4661000000e+00 5631 -1.2769000000e-01 1.4666000000e+00 5632 -1.6216000000e-01 1.4670000000e+00 5633 -1.9634000000e-01 1.4673000000e+00 5634 -2.3059000000e-01 1.4672000000e+00 5635 -2.6519000000e-01 1.4671000000e+00 5636 -2.8230000000e-01 1.4369000000e+00 5637 -3.1675000000e-01 1.4372000000e+00 5638 -3.5124000000e-01 1.4369000000e+00 5639 -3.8644000000e-01 1.4362000000e+00 5640 -4.2218000000e-01 1.4363000000e+00 5641 -4.5752000000e-01 1.4373000000e+00 5642 -4.9199000000e-01 1.4381000000e+00 5643 -5.2634000000e-01 1.4378000000e+00 5644 -5.6124000000e-01 1.4374000000e+00 5645 -5.9645000000e-01 1.4371000000e+00 5646 -5.7817000000e-01 1.4069000000e+00 5647 -5.5993000000e-01 1.3765000000e+00 5648 1.8910000000e+00 1.5120000000e+00 5649 1.8684000000e+00 1.5412000000e+00 5650 1.8451000000e+00 1.5691000000e+00 5651 1.8333000000e+00 1.5363000000e+00 5652 1.8116000000e+00 1.5628000000e+00 5653 1.7916000000e+00 1.5830000000e+00 5654 4.1702000000e-01 1.6181000000e+00 5655 3.9974000000e-01 1.5875000000e+00 5656 3.6452000000e-01 1.5874000000e+00 5657 3.4709000000e-01 1.5569000000e+00 5658 3.1186000000e-01 1.5569000000e+00 5659 2.7668000000e-01 1.5569000000e+00 5660 2.4153000000e-01 1.5569000000e+00 5661 2.0641000000e-01 1.5569000000e+00 5662 1.8896000000e-01 1.5263000000e+00 5663 1.5383000000e-01 1.5262000000e+00 5664 1.3640000000e-01 1.4956000000e+00 5665 1.1900000000e-01 1.4648000000e+00 5666 1.0165000000e-01 1.4338000000e+00 5667 6.6205000000e-02 1.4333000000e+00 5668 3.0469000000e-02 1.4329000000e+00 5669 -5.5336000000e-03 1.4330000000e+00 5670 -4.1340000000e-02 1.4341000000e+00 5671 -7.6428000000e-02 1.4355000000e+00 5672 -1.1089000000e-01 1.4364000000e+00 5673 -1.4550000000e-01 1.4364000000e+00 5674 -1.7961000000e-01 1.4375000000e+00 5675 -2.1290000000e-01 1.4376000000e+00 5676 -2.4726000000e-01 1.4365000000e+00 5677 -2.6514000000e-01 1.4063000000e+00 5678 -2.9954000000e-01 1.4074000000e+00 5679 -3.3291000000e-01 1.4079000000e+00 5680 -3.6723000000e-01 1.4060000000e+00 5681 -4.0374000000e-01 1.4044000000e+00 5682 -4.4075000000e-01 1.4057000000e+00 5683 -4.7537000000e-01 1.4090000000e+00 5684 -5.0821000000e-01 1.4088000000e+00 5685 -5.4259000000e-01 1.4071000000e+00 5686 -4.9127000000e-01 1.3858000000e+00 5687 -4.6245000000e-01 1.3785000000e+00 5688 -4.2320000000e-01 1.3687000000e+00 5689 -3.9533000000e-01 1.3453000000e+00 5690 -3.6004000000e-01 1.3407000000e+00 5691 -3.3318000000e-01 1.3220000000e+00 5692 -3.1906000000e-01 1.3499000000e+00 5693 -2.8381000000e-01 1.3730000000e+00 5694 -2.5207000000e-01 1.3501000000e+00 5695 -2.1975000000e-01 1.3360000000e+00 5696 -1.8561000000e-01 1.3302000000e+00 5697 -1.5032000000e-01 1.3273000000e+00 5698 -1.3303000000e-01 1.2946000000e+00 5699 -1.1497000000e-01 1.2631000000e+00 5700 -1.2972000000e-01 1.2366000000e+00 5701 -9.6246000000e-02 1.2300000000e+00 5702 -6.1219000000e-02 1.2432000000e+00 5703 -3.4045000000e-02 1.2261000000e+00 5704 -4.1223000000e-03 1.2124000000e+00 5705 2.7314000000e-02 1.1988000000e+00 5706 5.9559000000e-02 1.1854000000e+00 5707 6.4277000000e-02 1.1499000000e+00 5708 6.8308000000e-02 1.1138000000e+00 5709 7.1809000000e-02 1.0776000000e+00 5710 7.5028000000e-02 1.0413000000e+00 5711 4.5049000000e-02 1.0201000000e+00 5712 7.8521000000e-02 1.0048000000e+00 5713 4.6322000000e-02 9.7977000000e-01 5714 1.5046000000e-02 1.0017000000e+00 5715 -1.5649000000e-02 1.0168000000e+00 5716 -1.2259000000e-02 9.8416000000e-01 5717 1.3745000000e-02 9.7326000000e-01 5718 -1.6660000000e-01 1.3626000000e+00 5719 -1.3067000000e-01 1.3546000000e+00 5720 -1.1557000000e-01 1.3249000000e+00 5721 -9.2996000000e-02 1.2949000000e+00 5722 -8.3998000000e-02 1.2619000000e+00 5723 -5.4659000000e-02 1.2784000000e+00 5724 -6.1415000000e-02 1.3150000000e+00 5725 -2.9249000000e-02 1.3051000000e+00 5726 -1.8487000000e-02 1.2752000000e+00 5727 -3.5365000000e-02 1.2536000000e+00 5728 -8.5067000000e-03 1.2453000000e+00 5729 2.3050000000e-02 1.2333000000e+00 5730 1.7830000000e-02 1.2710000000e+00 5731 5.1308000000e-02 1.2529000000e+00 5732 5.4381000000e-02 1.2194000000e+00 5733 8.6785000000e-02 1.2082000000e+00 5734 9.2997000000e-02 1.1724000000e+00 5735 1.2160000000e-01 1.1965000000e+00 5736 1.2793000000e-01 1.1586000000e+00 5737 9.7743000000e-02 1.1357000000e+00 5738 1.0141000000e-01 1.0989000000e+00 5739 1.3144000000e-01 1.1205000000e+00 5740 1.3445000000e-01 1.0833000000e+00 5741 1.6466000000e-01 1.1043000000e+00 5742 1.6725000000e-01 1.0672000000e+00 5743 1.9737000000e-01 1.0879000000e+00 5744 1.9998000000e-01 1.0512000000e+00 5745 1.6977000000e-01 1.0300000000e+00 5746 1.3722000000e-01 1.0467000000e+00 5747 1.0463000000e-01 1.0623000000e+00 5748 1.0774000000e-01 1.0264000000e+00 5749 1.1150000000e-01 9.9225000000e-01 5750 1.3941000000e-01 1.0111000000e+00 5751 1.3872000000e-01 9.8184000000e-01 5752 1.1910000000e-01 9.6048000000e-01 5753 8.5377000000e-02 9.6905000000e-01 5754 1.3071000000e-01 9.2879000000e-01 5755 1.4336000000e-01 8.9597000000e-01 5756 1.6542000000e-01 9.2389000000e-01 5757 1.7856000000e-01 8.9093000000e-01 5758 1.5637000000e-01 8.6291000000e-01 5759 1.9160000000e-01 8.5794000000e-01 5760 1.6956000000e-01 8.3005000000e-01 5761 1.3420000000e-01 8.3468000000e-01 5762 1.4785000000e-01 8.0211000000e-01 5763 1.8272000000e-01 7.9756000000e-01 5764 1.6115000000e-01 7.7015000000e-01 5765 1.2719000000e-01 7.7450000000e-01 5766 1.1224000000e-01 8.0580000000e-01 5767 9.8198000000e-02 8.3933000000e-01 5768 7.5813000000e-02 8.0999000000e-01 5769 6.1042000000e-02 8.4427000000e-01 5770 1.2088000000e-01 8.6794000000e-01 5771 2.3409000000e-02 8.5172000000e-01 5772 3.5108000000e-02 8.1143000000e-01 5773 1.1012000000e-03 7.9038000000e-01 5774 -6.2715000000e-02 7.3047000000e-01 5775 5.8089000000e-02 7.8491000000e-01 5776 9.0146000000e-02 7.7430000000e-01 5777 8.6925000000e-02 7.3858000000e-01 5778 5.7906000000e-02 7.2251000000e-01 5779 5.7475000000e-02 6.8874000000e-01 5780 8.8309000000e-02 6.7135000000e-01 5781 8.8008000000e-02 6.3584000000e-01 5782 8.7280000000e-02 7.0561000000e-01 5783 1.1757000000e-01 6.8984000000e-01 5784 1.2258000000e-01 6.5405000000e-01 5785 1.1839000000e-01 6.1636000000e-01 5786 1.5016000000e-01 6.3041000000e-01 5787 1.4745000000e-01 5.9674000000e-01 5788 1.1602000000e-01 5.8109000000e-01 5789 8.6094000000e-02 6.0018000000e-01 5790 5.4124000000e-02 5.8387000000e-01 5791 2.2259000000e-02 5.6768000000e-01 5792 5.2487000000e-02 5.4874000000e-01 5793 2.0671000000e-02 5.3249000000e-01 5794 -9.7015000000e-03 5.5161000000e-01 5795 -3.9900000000e-02 5.7101000000e-01 5796 -6.9495000000e-02 5.9056000000e-01 5797 -7.2402000000e-02 5.5582000000e-01 5798 -1.0164000000e-01 5.7670000000e-01 5799 -1.0630000000e-01 5.4133000000e-01 5800 -1.3934000000e-01 5.6657000000e-01 5801 -1.4042000000e-01 5.2571000000e-01 5802 -1.0893000000e-01 5.0349000000e-01 5803 -1.4212000000e-01 4.8882000000e-01 5804 -1.7278000000e-01 5.0851000000e-01 5805 -1.7302000000e-01 5.4551000000e-01 5806 -1.7289000000e-01 5.7621000000e-01 5807 -1.8819000000e-01 5.9627000000e-01 5808 -2.0720000000e-01 5.6866000000e-01 5809 -2.4085000000e-01 5.4285000000e-01 5810 -2.8244000000e-01 5.4831000000e-01 5811 -3.1822000000e-01 5.2976000000e-01 5812 1.3691000000e-01 1.4343000000e+00 5813 1.5418000000e-01 1.4651000000e+00 5814 1.7201000000e-01 1.4347000000e+00 5815 1.5488000000e-01 1.4039000000e+00 5816 1.1974000000e-01 1.4033000000e+00 5817 8.4383000000e-02 1.4026000000e+00 5818 1.0268000000e-01 1.3721000000e+00 5819 1.3797000000e-01 1.3730000000e+00 5820 1.7285000000e-01 1.3739000000e+00 5821 1.5640000000e-01 1.3433000000e+00 5822 1.2129000000e-01 1.3417000000e+00 5823 -1.7221000000e-01 4.7282000000e-01 5824 -1.4553000000e-01 4.5931000000e-01 5825 -1.6690000000e-01 4.3464000000e-01 5826 -2.0236000000e-01 4.5476000000e-01 5827 -2.0355000000e-01 4.1840000000e-01 5828 -2.3433000000e-01 4.3842000000e-01 5829 -2.3364000000e-01 4.7340000000e-01 5830 -2.0352000000e-01 4.9075000000e-01 5831 2.9438000000e-01 1.5264000000e+00 5832 2.5921000000e-01 1.5264000000e+00 5833 2.2408000000e-01 1.5264000000e+00 5834 2.0666000000e-01 1.4959000000e+00 5835 1.7155000000e-01 1.4957000000e+00 5836 -2.6405000000e-01 4.5765000000e-01 5837 -2.6279000000e-01 4.9104000000e-01 5838 -2.3473000000e-01 5.0759000000e-01 5839 -2.0536000000e-01 5.2733000000e-01 5840 2.4176000000e-01 1.4959000000e+00 5841 2.2434000000e-01 1.4654000000e+00 5842 1.8928000000e-01 1.4653000000e+00 5843 2.0701000000e-01 1.4349000000e+00 5844 1.8981000000e-01 1.4044000000e+00 5845 2.0748000000e-01 1.3743000000e+00 5846 1.9061000000e-01 1.3442000000e+00 5847 2.2483000000e-01 1.3442000000e+00 5848 2.0740000000e-01 1.3146000000e+00 5849 1.7473000000e-01 1.3150000000e+00 5850 1.9076000000e-01 1.2911000000e+00 5851 1.6232000000e-01 1.2846000000e+00 5852 1.4093000000e-01 1.3118000000e+00 5853 1.0430000000e-01 1.3089000000e+00 5854 8.5452000000e-02 1.3407000000e+00 5855 6.7125000000e-02 1.3093000000e+00 5856 5.0066000000e-02 1.3407000000e+00 5857 6.7230000000e-02 1.3714000000e+00 5858 3.1997000000e-02 1.3702000000e+00 5859 4.8788000000e-02 1.4019000000e+00 5860 1.2432000000e-02 1.4007000000e+00 5861 -2.4580000000e-02 1.4014000000e+00 5862 -6.0512000000e-02 1.4045000000e+00 5863 -9.4677000000e-02 1.4067000000e+00 5864 -1.2804000000e-01 1.4074000000e+00 5865 -1.6464000000e-01 1.4033000000e+00 5866 -1.9616000000e-01 1.4134000000e+00 5867 -2.2746000000e-01 1.4039000000e+00 5868 -2.5051000000e-01 1.3804000000e+00 5869 -3.1634000000e-01 1.3830000000e+00 5870 -3.4637000000e-01 1.3768000000e+00 5871 -3.8265000000e-01 1.3737000000e+00 5872 -2.6599000000e-01 4.2304000000e-01 5873 -2.9502000000e-01 4.4290000000e-01 5874 -2.9770000000e-01 4.0811000000e-01 5875 -3.2647000000e-01 4.2848000000e-01 5876 -3.2937000000e-01 3.9364000000e-01 5877 -3.5811000000e-01 4.1386000000e-01 5878 -3.5520000000e-01 4.4915000000e-01 5879 -3.8747000000e-01 4.3414000000e-01 5880 -3.8457000000e-01 4.7098000000e-01 5881 -3.5115000000e-01 4.8426000000e-01 5882 -3.2338000000e-01 4.6304000000e-01 5883 -2.9248000000e-01 4.7693000000e-01 5884 -3.1987000000e-01 4.9632000000e-01 5885 -2.8967000000e-01 5.1043000000e-01 5886 -2.6212000000e-01 5.2007000000e-01 5887 -3.4422000000e-01 5.1337000000e-01 5888 -4.1763000000e-01 4.5424000000e-01 5889 -4.4831000000e-01 4.7319000000e-01 5890 -4.7846000000e-01 4.9091000000e-01 5891 -4.7919000000e-01 4.5640000000e-01 5892 -5.0841000000e-01 4.7450000000e-01 5893 -5.0754000000e-01 5.0853000000e-01 5894 -5.0561000000e-01 5.4259000000e-01 5895 -5.3669000000e-01 5.2674000000e-01 5896 -5.3463000000e-01 5.6293000000e-01 5897 -5.6702000000e-01 5.4516000000e-01 5898 -5.6673000000e-01 5.8186000000e-01 5899 -4.9757000000e-01 5.8031000000e-01 5900 -5.9827000000e-01 5.6317000000e-01 5901 -5.9893000000e-01 5.9988000000e-01 5902 -6.3119000000e-01 6.1764000000e-01 5903 -6.3171000000e-01 6.5429000000e-01 5904 -6.6348000000e-01 6.3595000000e-01 5905 -6.6302000000e-01 5.9825000000e-01 5906 -6.9893000000e-01 6.1764000000e-01 5907 -6.9349000000e-01 6.5576000000e-01 5908 -7.1916000000e-01 6.4334000000e-01 5909 -7.2532000000e-01 6.7551000000e-01 5910 -6.9155000000e-01 6.9002000000e-01 5911 -6.6247000000e-01 6.7210000000e-01 5912 -6.3228000000e-01 6.8996000000e-01 5913 -6.0275000000e-01 7.0887000000e-01 5914 -6.3349000000e-01 7.2453000000e-01 5915 -6.6223000000e-01 7.0661000000e-01 5916 -6.6283000000e-01 7.3999000000e-01 5917 -6.3572000000e-01 7.5838000000e-01 5918 -6.4297000000e-01 7.9551000000e-01 5919 -6.7916000000e-01 7.9031000000e-01 5920 -7.0501000000e-01 7.8533000000e-01 5921 -7.2487000000e-01 7.6797000000e-01 5922 -7.5339000000e-01 7.8136000000e-01 5923 -7.8042000000e-01 7.6336000000e-01 5924 -8.0767000000e-01 7.4497000000e-01 5925 -7.7839000000e-01 7.3026000000e-01 5926 -8.0474000000e-01 7.1286000000e-01 5927 -7.7919000000e-01 7.0148000000e-01 5928 -8.0180000000e-01 6.7756000000e-01 5929 -7.4750000000e-01 7.1065000000e-01 5930 -7.5080000000e-01 7.4826000000e-01 5931 -7.2019000000e-01 7.3596000000e-01 5932 -7.1505000000e-01 7.0704000000e-01 5933 -7.6354000000e-01 6.7605000000e-01 5934 -7.4694000000e-01 6.4574000000e-01 5935 -7.8049000000e-01 6.4537000000e-01 5936 -8.1454000000e-01 6.4142000000e-01 5937 -7.9413000000e-01 6.1934000000e-01 5938 -8.2093000000e-01 6.0812000000e-01 5939 -8.4741000000e-01 6.2980000000e-01 5940 -8.4250000000e-01 6.6835000000e-01 5941 -8.2761000000e-01 6.9736000000e-01 5942 -8.3382000000e-01 7.2550000000e-01 5943 -8.6912000000e-01 7.3606000000e-01 5944 -8.5521000000e-01 7.0254000000e-01 5945 -8.8165000000e-01 7.0731000000e-01 5946 -8.7659000000e-01 6.8061000000e-01 5947 -9.0115000000e-01 7.5806000000e-01 5948 -9.0113000000e-01 7.9390000000e-01 5949 1.5209000000e-01 9.5613000000e-01 5950 1.8702000000e-01 9.5250000000e-01 5951 2.0070000000e-01 9.1908000000e-01 5952 2.1386000000e-01 8.8583000000e-01 5953 2.2659000000e-01 8.5277000000e-01 5954 2.4890000000e-01 8.8008000000e-01 5955 2.6116000000e-01 8.4745000000e-01 5956 2.3940000000e-01 8.2017000000e-01 5957 2.0457000000e-01 8.2519000000e-01 5958 2.1750000000e-01 7.9267000000e-01 5959 2.5228000000e-01 7.8766000000e-01 5960 2.7424000000e-01 8.1528000000e-01 5961 2.8729000000e-01 7.8254000000e-01 5962 2.6493000000e-01 7.5502000000e-01 5963 2.3028000000e-01 7.6028000000e-01 5964 3.0988000000e-01 8.1090000000e-01 5965 3.2253000000e-01 7.7696000000e-01 5966 3.4595000000e-01 8.0452000000e-01 5967 2.9537000000e-01 8.4294000000e-01 5968 3.3386000000e-01 8.4314000000e-01 5969 3.7206000000e-01 8.2943000000e-01 5970 3.7998000000e-01 7.9587000000e-01 5971 3.5736000000e-01 7.7074000000e-01 5972 3.9101000000e-01 7.6515000000e-01 5973 3.6979000000e-01 7.3824000000e-01 5974 4.0503000000e-01 7.3392000000e-01 5975 4.2559000000e-01 7.6366000000e-01 5976 4.4185000000e-01 7.3007000000e-01 5977 4.1882000000e-01 7.0082000000e-01 5978 3.8301000000e-01 7.0551000000e-01 5979 3.4742000000e-01 7.1041000000e-01 5980 3.3483000000e-01 7.4364000000e-01 5981 3.1199000000e-01 7.1601000000e-01 5982 2.9979000000e-01 7.4940000000e-01 5983 2.7709000000e-01 7.2219000000e-01 5984 2.4279000000e-01 7.2805000000e-01 5985 2.5451000000e-01 6.9614000000e-01 5986 2.2133000000e-01 7.0165000000e-01 5987 2.0850000000e-01 7.3306000000e-01 5988 1.9564000000e-01 7.6522000000e-01 5989 1.7362000000e-01 7.3764000000e-01 5990 1.3979000000e-01 7.4395000000e-01 5991 1.1191000000e-01 7.5080000000e-01 5992 1.1548000000e-01 7.2276000000e-01 5993 1.4934000000e-01 7.0791000000e-01 5994 1.8726000000e-01 7.0560000000e-01 5995 1.6922000000e-01 6.7826000000e-01 5996 1.4239000000e-01 6.7745000000e-01 5997 1.5320000000e-01 6.5727000000e-01 5998 1.8160000000e-01 6.4627000000e-01 5999 1.7768000000e-01 6.1187000000e-01 6000 2.0329000000e-01 6.2390000000e-01 6001 2.0681000000e-01 5.9551000000e-01 6002 1.7672000000e-01 5.7850000000e-01 6003 1.4567000000e-01 5.6230000000e-01 6004 1.7549000000e-01 5.4391000000e-01 6005 2.0714000000e-01 5.6075000000e-01 6006 2.0532000000e-01 5.2550000000e-01 6007 1.7393000000e-01 5.0901000000e-01 6008 1.4408000000e-01 5.2751000000e-01 6009 1.1421000000e-01 5.4614000000e-01 6010 2.0375000000e-01 4.9059000000e-01 6011 1.7239000000e-01 4.7405000000e-01 6012 2.0233000000e-01 4.5557000000e-01 6013 1.7083000000e-01 4.3898000000e-01 6014 1.4092000000e-01 4.5763000000e-01 6015 1.4251000000e-01 4.9259000000e-01 6016 1.1105000000e-01 4.7626000000e-01 6017 1.1260000000e-01 5.1120000000e-01 6018 2.2466000000e-01 1.4046000000e+00 6019 -2.3636000000e-01 4.0313000000e-01 6020 -2.0701000000e-01 3.8301000000e-01 6021 -1.7438000000e-01 3.9629000000e-01 6022 -1.7948000000e-01 3.6333000000e-01 6023 -2.0951000000e-01 3.4878000000e-01 6024 -1.8093000000e-01 3.3087000000e-01 6025 -1.5245000000e-01 3.4625000000e-01 6026 -1.5280000000e-01 3.1462000000e-01 6027 -1.8092000000e-01 2.9747000000e-01 6028 -2.1047000000e-01 3.1459000000e-01 6029 -2.1032000000e-01 2.7994000000e-01 6030 -2.4079000000e-01 2.9753000000e-01 6031 -1.7999000000e-01 2.6311000000e-01 6032 -1.5110000000e-01 2.8150000000e-01 6033 -2.0944000000e-01 2.4475000000e-01 6034 -2.4037000000e-01 2.6201000000e-01 6035 -2.7132000000e-01 2.7992000000e-01 6036 -2.7188000000e-01 3.1575000000e-01 6037 -2.4041000000e-01 3.3278000000e-01 6038 -2.3880000000e-01 3.6794000000e-01 6039 -2.7107000000e-01 3.5191000000e-01 6040 -3.0603000000e-01 3.3441000000e-01 6041 -3.0088000000e-01 3.7260000000e-01 6042 -3.3262000000e-01 3.5953000000e-01 6043 -3.3717000000e-01 3.3192000000e-01 6044 -3.6184000000e-01 3.4535000000e-01 6045 -3.5840000000e-01 3.0899000000e-01 6046 -3.9145000000e-01 3.2889000000e-01 6047 -3.9099000000e-01 3.6352000000e-01 6048 -3.6044000000e-01 3.7909000000e-01 6049 -3.8966000000e-01 3.9845000000e-01 6050 -4.1956000000e-01 4.1801000000e-01 6051 -4.2139000000e-01 3.8195000000e-01 6052 -4.5162000000e-01 4.0160000000e-01 6053 -4.4952000000e-01 4.3754000000e-01 6054 -4.5536000000e-01 3.6274000000e-01 6055 -4.8315000000e-01 3.8753000000e-01 6056 -4.8074000000e-01 4.2168000000e-01 6057 -5.0963000000e-01 4.4045000000e-01 6058 -5.3806000000e-01 4.5851000000e-01 6059 -5.3750000000e-01 4.9209000000e-01 6060 -5.4007000000e-01 4.2505000000e-01 6061 -5.6773000000e-01 5.0909000000e-01 6062 -5.9800000000e-01 5.2715000000e-01 6063 -6.0063000000e-01 4.8825000000e-01 6064 -6.2549000000e-01 5.1297000000e-01 6065 -6.2875000000e-01 5.4424000000e-01 6066 -6.3013000000e-01 5.8067000000e-01 6067 -6.6057000000e-01 5.6080000000e-01 6068 -6.6001000000e-01 5.2067000000e-01 6069 -6.8765000000e-01 5.4420000000e-01 6070 -6.9379000000e-01 5.7679000000e-01 6071 -7.2409000000e-01 5.4844000000e-01 6072 -7.2844000000e-01 5.9139000000e-01 6073 -7.6069000000e-01 5.7130000000e-01 6074 -7.6206000000e-01 6.1212000000e-01 6075 -7.3111000000e-01 6.2204000000e-01 6076 -7.9264000000e-01 5.8969000000e-01 6077 -8.2416000000e-01 5.7366000000e-01 6078 -7.9394000000e-01 5.5360000000e-01 6079 -8.2687000000e-01 5.3733000000e-01 6080 -7.9637000000e-01 5.1703000000e-01 6081 -8.2866000000e-01 5.0072000000e-01 6082 -8.6030000000e-01 5.2057000000e-01 6083 -8.5787000000e-01 5.5840000000e-01 6084 -8.9607000000e-01 5.4186000000e-01 6085 -8.8711000000e-01 5.8214000000e-01 6086 -8.5279000000e-01 5.9484000000e-01 6087 -8.7933000000e-01 6.1690000000e-01 6088 -9.2154000000e-01 5.7177000000e-01 6089 -9.1514000000e-01 6.0911000000e-01 6090 -8.9920000000e-01 6.3633000000e-01 6091 -8.7444000000e-01 6.4918000000e-01 6092 -9.5009000000e-01 6.2111000000e-01 6093 -9.8753000000e-01 6.3056000000e-01 6094 -9.4324000000e-01 5.9205000000e-01 6095 -3.5916000000e-02 1.3383000000e+00 6096 -4.0302000000e-03 1.3263000000e+00 6097 -1.0643000000e-03 1.2975000000e+00 6098 2.8552000000e-02 1.3101000000e+00 6099 4.9867000000e-02 1.2832000000e+00 6100 8.4470000000e-02 1.2725000000e+00 6101 7.8183000000e-02 1.2381000000e+00 6102 1.1391000000e-01 1.2373000000e+00 6103 1.2653000000e-01 1.2776000000e+00 6104 1.5324000000e-01 1.2503000000e+00 6105 1.4653000000e-01 1.2182000000e+00 6106 1.6140000000e-01 1.1843000000e+00 6107 1.6235000000e-01 1.1422000000e+00 6108 1.9506000000e-01 1.1247000000e+00 6109 1.9356000000e-01 1.1609000000e+00 6110 2.2501000000e-01 1.1444000000e+00 6111 2.2739000000e-01 1.1083000000e+00 6112 2.2980000000e-01 1.0719000000e+00 6113 2.3245000000e-01 1.0358000000e+00 6114 2.0320000000e-01 1.0145000000e+00 6115 2.6190000000e-01 1.0560000000e+00 6116 2.6408000000e-01 1.0203000000e+00 6117 2.3569000000e-01 1.0012000000e+00 6118 2.6544000000e-01 9.8519000000e-01 6119 2.3908000000e-01 9.7184000000e-01 6120 2.0984000000e-01 9.7942000000e-01 6121 1.7145000000e-01 9.8934000000e-01 6122 2.9537000000e-01 1.0040000000e+00 6123 2.9656000000e-01 9.6759000000e-01 6124 3.2720000000e-01 9.8765000000e-01 6125 3.2964000000e-01 9.5169000000e-01 6126 3.5930000000e-01 9.7173000000e-01 6127 3.5704000000e-01 1.0074000000e+00 6128 3.8880000000e-01 9.9142000000e-01 6129 3.8662000000e-01 1.0269000000e+00 6130 3.5504000000e-01 1.0430000000e+00 6131 3.2528000000e-01 1.0235000000e+00 6132 3.2344000000e-01 1.0593000000e+00 6133 3.5325000000e-01 1.0786000000e+00 6134 3.8464000000e-01 1.0622000000e+00 6135 3.8287000000e-01 1.0975000000e+00 6136 4.1403000000e-01 1.0814000000e+00 6137 4.1604000000e-01 1.0462000000e+00 6138 4.4530000000e-01 1.0654000000e+00 6139 4.4748000000e-01 1.0303000000e+00 6140 4.7666000000e-01 1.0497000000e+00 6141 4.7898000000e-01 1.0146000000e+00 6142 5.0811000000e-01 1.0340000000e+00 6143 5.1054000000e-01 9.9887000000e-01 6144 4.8138000000e-01 9.7931000000e-01 6145 5.1306000000e-01 9.6358000000e-01 6146 4.8382000000e-01 9.4393000000e-01 6147 4.5214000000e-01 9.5980000000e-01 6148 4.4977000000e-01 9.9509000000e-01 6149 4.2050000000e-01 9.7560000000e-01 6150 4.1820000000e-01 1.0109000000e+00 6151 3.9120000000e-01 9.5601000000e-01 6152 3.6193000000e-01 9.3621000000e-01 6153 3.9379000000e-01 9.2072000000e-01 6154 3.6471000000e-01 9.0091000000e-01 6155 3.9655000000e-01 8.8560000000e-01 6156 3.6719000000e-01 8.6524000000e-01 6157 3.3585000000e-01 8.8149000000e-01 6158 3.3296000000e-01 9.1618000000e-01 6159 3.0573000000e-01 8.9601000000e-01 6160 2.9989000000e-01 9.3075000000e-01 6161 2.7259000000e-01 9.0678000000e-01 6162 2.8241000000e-01 8.7345000000e-01 6163 3.1065000000e-01 8.6741000000e-01 6164 2.3675000000e-01 9.1419000000e-01 6165 2.6184000000e-01 9.4622000000e-01 6166 2.2255000000e-01 9.4720000000e-01 6167 2.0149000000e-01 6.7514000000e-01 6168 2.3335000000e-01 6.7195000000e-01 6169 2.1611000000e-01 6.4717000000e-01 6170 2.3417000000e-01 6.1873000000e-01 6171 2.4181000000e-01 5.7942000000e-01 6172 2.3664000000e-01 5.4171000000e-01 6173 2.3490000000e-01 5.0712000000e-01 6174 2.6577000000e-01 5.2359000000e-01 6175 2.6426000000e-01 4.8907000000e-01 6176 2.9444000000e-01 5.0511000000e-01 6177 2.9318000000e-01 4.7187000000e-01 6178 2.6365000000e-01 4.5441000000e-01 6179 2.3357000000e-01 4.7232000000e-01 6180 2.3247000000e-01 4.3721000000e-01 6181 2.6317000000e-01 4.1892000000e-01 6182 2.3119000000e-01 4.0171000000e-01 6183 2.6177000000e-01 3.8295000000e-01 6184 2.2957000000e-01 3.6596000000e-01 6185 1.9925000000e-01 3.8487000000e-01 6186 2.0088000000e-01 4.2035000000e-01 6187 1.6914000000e-01 4.0376000000e-01 6188 1.6724000000e-01 3.6832000000e-01 6189 1.3733000000e-01 3.8747000000e-01 6190 1.3924000000e-01 4.2260000000e-01 6191 1.0946000000e-01 4.4135000000e-01 6192 1.0770000000e-01 4.0647000000e-01 6193 7.8158000000e-02 4.2521000000e-01 6194 7.9646000000e-02 4.5998000000e-01 6195 8.1092000000e-02 4.9490000000e-01 6196 4.9625000000e-02 4.7856000000e-01 6197 5.0971000000e-02 5.1362000000e-01 6198 8.2611000000e-02 5.2991000000e-01 6199 8.4263000000e-02 5.6497000000e-01 6200 1.9300000000e-02 4.9722000000e-01 6201 1.8261000000e-02 4.6202000000e-01 6202 -1.2455000000e-02 4.8054000000e-01 6203 4.8425000000e-02 4.4367000000e-01 6204 1.7560000000e-02 4.2717000000e-01 6205 -1.2949000000e-02 4.4503000000e-01 6206 -4.4394000000e-02 4.6326000000e-01 6207 -4.3975000000e-02 4.2716000000e-01 6208 -7.6467000000e-02 4.4490000000e-01 6209 -7.6884000000e-02 4.8233000000e-01 6210 -7.4635000000e-02 4.0841000000e-01 6211 -4.2715000000e-02 3.9126000000e-01 6212 -7.5839000000e-02 3.6814000000e-01 6213 -1.0273000000e-01 3.9376000000e-01 6214 -1.0615000000e-01 4.2516000000e-01 6215 -1.3668000000e-01 4.0360000000e-01 6216 -1.3361000000e-01 4.3716000000e-01 6217 -1.1281000000e-01 4.6304000000e-01 6218 -7.5036000000e-02 5.1970000000e-01 6219 -4.2006000000e-02 5.3564000000e-01 6220 -4.3678000000e-02 4.9960000000e-01 6221 -1.1308000000e-02 5.1617000000e-01 6222 -1.5267000000e-01 3.7460000000e-01 6223 -1.2040000000e-01 3.6344000000e-01 6224 -9.3970000000e-02 3.2706000000e-01 6225 -1.2851000000e-01 3.3049000000e-01 6226 -1.2297000000e-01 3.0097000000e-01 6227 -1.2046000000e-01 2.6589000000e-01 6228 -9.1091000000e-02 2.8609000000e-01 6229 -8.9350000000e-02 2.4957000000e-01 6230 -5.9713000000e-02 2.6852000000e-01 6231 -6.0170000000e-02 3.0436000000e-01 6232 -3.0359000000e-02 2.8620000000e-01 6233 -2.9120000000e-02 2.5191000000e-01 6234 -5.8274000000e-02 2.3286000000e-01 6235 -2.7049000000e-02 2.1657000000e-01 6236 -5.6638000000e-02 1.9687000000e-01 6237 -8.7850000000e-02 2.1359000000e-01 6238 -1.1880000000e-01 2.3032000000e-01 6239 -1.4952000000e-01 2.4676000000e-01 6240 -1.4813000000e-01 2.1147000000e-01 6241 -1.1754000000e-01 1.9450000000e-01 6242 -1.4709000000e-01 1.7608000000e-01 6243 -1.7723000000e-01 1.9295000000e-01 6244 -1.7585000000e-01 1.5849000000e-01 6245 -2.0572000000e-01 1.7414000000e-01 6246 -2.0796000000e-01 2.0925000000e-01 6247 -1.7870000000e-01 2.2808000000e-01 6248 -2.3938000000e-01 2.2597000000e-01 6249 -2.7104000000e-01 2.4375000000e-01 6250 -2.7016000000e-01 2.0644000000e-01 6251 -2.3736000000e-01 1.8947000000e-01 6252 -2.6782000000e-01 1.6730000000e-01 6253 -2.3317000000e-01 1.5354000000e-01 6254 -3.0262000000e-01 1.8659000000e-01 6255 -3.0281000000e-01 2.2541000000e-01 6256 -3.3578000000e-01 2.0720000000e-01 6257 -3.3542000000e-01 1.6972000000e-01 6258 -3.6630000000e-01 1.8813000000e-01 6259 -3.7251000000e-01 2.2744000000e-01 6260 -3.3506000000e-01 2.4578000000e-01 6261 -3.6546000000e-01 2.6930000000e-01 6262 -3.3163000000e-01 2.8262000000e-01 6263 -3.0225000000e-01 2.6257000000e-01 6264 -3.0168000000e-01 2.9777000000e-01 6265 -3.2698000000e-01 3.1117000000e-01 6266 -3.9428000000e-01 2.9349000000e-01 6267 -4.0093000000e-01 2.5736000000e-01 6268 -4.2742000000e-01 2.8171000000e-01 6269 -4.2208000000e-01 3.1458000000e-01 6270 -4.5255000000e-01 3.0423000000e-01 6271 -4.5967000000e-01 2.7209000000e-01 6272 -4.3503000000e-01 2.4843000000e-01 6273 -4.1095000000e-01 2.2370000000e-01 6274 -4.4362000000e-01 2.1599000000e-01 6275 -4.6761000000e-01 2.3961000000e-01 6276 -4.9196000000e-01 2.6322000000e-01 6277 -4.8352000000e-01 2.9527000000e-01 6278 -4.7700000000e-01 3.2990000000e-01 6279 -4.4562000000e-01 3.3176000000e-01 6280 -4.2115000000e-01 3.4726000000e-01 6281 -4.8754000000e-01 3.5908000000e-01 6282 -5.0987000000e-01 3.4168000000e-01 6283 -5.1234000000e-01 3.7350000000e-01 6284 -5.1126000000e-01 4.0649000000e-01 6285 -5.4160000000e-01 3.9064000000e-01 6286 -5.7359000000e-01 4.1026000000e-01 6287 -5.6626000000e-01 4.4387000000e-01 6288 -5.6645000000e-01 4.7508000000e-01 6289 -5.8848000000e-01 4.5863000000e-01 6290 -5.9086000000e-01 4.3564000000e-01 6291 -6.1818000000e-01 4.5029000000e-01 6292 -6.4003000000e-01 4.8454000000e-01 6293 -6.7774000000e-01 4.8366000000e-01 6294 -6.9980000000e-01 5.1431000000e-01 6295 -7.1400000000e-01 4.8035000000e-01 6296 -7.3533000000e-01 5.0854000000e-01 6297 -7.6298000000e-01 5.3261000000e-01 6298 -7.6749000000e-01 4.9676000000e-01 6299 -7.4363000000e-01 4.7881000000e-01 6300 -7.6836000000e-01 4.6239000000e-01 6301 -7.9833000000e-01 4.8120000000e-01 6302 -8.2974000000e-01 4.6470000000e-01 6303 -7.9945000000e-01 4.4564000000e-01 6304 -8.3073000000e-01 4.2932000000e-01 6305 -8.0126000000e-01 4.1036000000e-01 6306 -8.3178000000e-01 3.9493000000e-01 6307 -8.6136000000e-01 4.1258000000e-01 6308 -8.6088000000e-01 4.4777000000e-01 6309 -8.9185000000e-01 4.3062000000e-01 6310 -8.9124000000e-01 4.6591000000e-01 6311 -9.2197000000e-01 4.4934000000e-01 6312 -9.2042000000e-01 4.8258000000e-01 6313 -8.9197000000e-01 5.0161000000e-01 6314 -8.6045000000e-01 4.8354000000e-01 6315 -9.2345000000e-01 5.1519000000e-01 6316 -9.4862000000e-01 4.9563000000e-01 6317 -9.5334000000e-01 5.2606000000e-01 6318 -9.3035000000e-01 5.4338000000e-01 6319 -9.7237000000e-01 5.0654000000e-01 6320 -9.7687000000e-01 4.7562000000e-01 6321 -9.4538000000e-01 4.6781000000e-01 6322 -9.5910000000e-01 4.3586000000e-01 6323 -7.6832000000e-01 4.2590000000e-01 6324 -7.3301000000e-01 4.4606000000e-01 6325 -6.9450000000e-01 4.5076000000e-01 6326 -6.5811000000e-01 4.5136000000e-01 6327 -6.4138000000e-01 4.1845000000e-01 6328 -6.0774000000e-01 4.1514000000e-01 6329 -6.2550000000e-01 3.8773000000e-01 6330 -6.6193000000e-01 3.8569000000e-01 6331 -6.7681000000e-01 4.2051000000e-01 6332 -6.9759000000e-01 3.9420000000e-01 6333 -6.8809000000e-01 3.6682000000e-01 6334 -7.1645000000e-01 3.6796000000e-01 6335 -7.3491000000e-01 4.0162000000e-01 6336 -7.0736000000e-01 4.2262000000e-01 6337 -7.7300000000e-01 3.8935000000e-01 6338 -8.0434000000e-01 3.7705000000e-01 6339 -7.8053000000e-01 3.5594000000e-01 6340 -8.0754000000e-01 3.4944000000e-01 6341 -8.3200000000e-01 3.6233000000e-01 6342 -8.6109000000e-01 3.7795000000e-01 6343 -8.9188000000e-01 3.9487000000e-01 6344 -8.9047000000e-01 3.5910000000e-01 6345 -9.2270000000e-01 3.7571000000e-01 6346 -9.2389000000e-01 4.1327000000e-01 6347 -9.5593000000e-01 3.9324000000e-01 6348 -9.9029000000e-01 4.0800000000e-01 6349 -9.8608000000e-01 3.7143000000e-01 6350 -1.0179000000e+00 3.8514000000e-01 6351 -1.0142000000e+00 3.5190000000e-01 6352 -1.0437000000e+00 3.6398000000e-01 6353 -1.0498000000e+00 3.9698000000e-01 6354 -1.0793000000e+00 3.7241000000e-01 6355 -1.0638000000e+00 3.4032000000e-01 6356 -1.0905000000e+00 3.4255000000e-01 6357 -1.0828000000e+00 3.1482000000e-01 6358 -1.1134000000e+00 3.2640000000e-01 6359 -1.0233000000e+00 4.1853000000e-01 6360 -9.9948000000e-01 4.4377000000e-01 6361 -1.0294000000e+00 4.4679000000e-01 6362 2.5996000000e-01 3.4699000000e-01 6363 2.2781000000e-01 3.3006000000e-01 6364 2.5827000000e-01 3.1102000000e-01 6365 2.2609000000e-01 2.9400000000e-01 6366 1.9555000000e-01 3.1319000000e-01 6367 1.9743000000e-01 3.4916000000e-01 6368 1.6514000000e-01 3.3257000000e-01 6369 1.3507000000e-01 3.5211000000e-01 6370 1.3245000000e-01 3.1624000000e-01 6371 1.0268000000e-01 3.3645000000e-01 6372 1.0554000000e-01 3.7159000000e-01 6373 7.6402000000e-02 3.9067000000e-01 6374 7.3991000000e-02 3.5636000000e-01 6375 7.0222000000e-02 3.2214000000e-01 6376 4.3313000000e-02 3.4207000000e-01 6377 4.1857000000e-02 3.1318000000e-01 6378 1.1872000000e-02 3.2532000000e-01 6379 1.6143000000e-02 3.6012000000e-01 6380 4.5706000000e-02 3.7524000000e-01 6381 1.7069000000e-02 3.9307000000e-01 6382 4.7233000000e-02 4.0917000000e-01 6383 -6.5753000000e-03 1.3645000000e+00 6384 2.0010000000e-02 1.3423000000e+00 6385 1.8771000000e-01 1.2617000000e+00 6386 1.8245000000e-01 1.2226000000e+00 6387 1.9533000000e-01 1.1913000000e+00 6388 2.2216000000e-01 1.1786000000e+00 6389 2.5442000000e-01 1.1655000000e+00 6390 2.5742000000e-01 1.1287000000e+00 6391 2.8813000000e-01 1.1497000000e+00 6392 2.8986000000e-01 1.1122000000e+00 6393 2.5968000000e-01 1.0921000000e+00 6394 3.2048000000e-01 1.1315000000e+00 6395 3.2040000000e-01 1.1683000000e+00 6396 3.5098000000e-01 1.1494000000e+00 6397 3.5179000000e-01 1.1141000000e+00 6398 3.2176000000e-01 1.0952000000e+00 6399 3.8141000000e-01 1.1325000000e+00 6400 4.1216000000e-01 1.1163000000e+00 6401 4.4319000000e-01 1.1004000000e+00 6402 4.7441000000e-01 1.0847000000e+00 6403 5.0575000000e-01 1.0691000000e+00 6404 5.3716000000e-01 1.0535000000e+00 6405 5.3960000000e-01 1.0184000000e+00 6406 5.6860000000e-01 1.0380000000e+00 6407 5.6617000000e-01 1.0730000000e+00 6408 5.3477000000e-01 1.0885000000e+00 6409 5.6377000000e-01 1.1079000000e+00 6410 5.0343000000e-01 1.1040000000e+00 6411 5.3239000000e-01 1.1234000000e+00 6412 5.6137000000e-01 1.1428000000e+00 6413 5.9278000000e-01 1.1274000000e+00 6414 5.9039000000e-01 1.1623000000e+00 6415 6.2183000000e-01 1.1469000000e+00 6416 6.1947000000e-01 1.1819000000e+00 6417 6.5093000000e-01 1.1664000000e+00 6418 6.5325000000e-01 1.1314000000e+00 6419 6.8234000000e-01 1.1509000000e+00 6420 6.8465000000e-01 1.1159000000e+00 6421 7.1372000000e-01 1.1354000000e+00 6422 7.1602000000e-01 1.1005000000e+00 6423 6.8698000000e-01 1.0810000000e+00 6424 6.5560000000e-01 1.0964000000e+00 6425 6.5796000000e-01 1.0615000000e+00 6426 6.2657000000e-01 1.0770000000e+00 6427 6.2420000000e-01 1.1119000000e+00 6428 5.9517000000e-01 1.0924000000e+00 6429 5.9758000000e-01 1.0575000000e+00 6430 6.2898000000e-01 1.0420000000e+00 6431 6.0004000000e-01 1.0225000000e+00 6432 6.3143000000e-01 1.0071000000e+00 6433 6.0258000000e-01 9.8757000000e-01 6434 5.7111000000e-01 1.0030000000e+00 6435 5.7375000000e-01 9.6790000000e-01 6436 5.4214000000e-01 9.8330000000e-01 6437 5.4485000000e-01 9.4803000000e-01 6438 5.1570000000e-01 9.2800000000e-01 6439 4.8616000000e-01 9.0832000000e-01 6440 4.5452000000e-01 9.2452000000e-01 6441 4.2292000000e-01 9.4032000000e-01 6442 4.2542000000e-01 9.0522000000e-01 6443 4.5668000000e-01 8.8948000000e-01 6444 4.2807000000e-01 8.7063000000e-01 6445 4.0012000000e-01 8.5080000000e-01 6446 4.3158000000e-01 8.3690000000e-01 6447 4.0523000000e-01 8.1695000000e-01 6448 4.0824000000e-01 7.8838000000e-01 6449 4.3934000000e-01 8.0021000000e-01 6450 4.6797000000e-01 7.6411000000e-01 6451 4.7812000000e-01 8.0438000000e-01 6452 4.5861000000e-01 8.2701000000e-01 6453 4.5810000000e-01 8.5571000000e-01 6454 -5.8915000000e-02 3.3582000000e-01 6455 -2.7065000000e-02 3.2236000000e-01 6456 -3.7606000000e-02 3.5711000000e-01 6457 -9.6284000000e-03 3.4833000000e-01 6458 -1.1567000000e-02 3.7666000000e-01 6459 -1.2750000000e-02 4.1006000000e-01 6460 -4.7532000000e-03 2.9929000000e-01 6461 -1.4232000000e-03 2.7066000000e-01 6462 2.0144000000e-03 2.3654000000e-01 6463 4.8060000000e-03 2.0049000000e-01 6464 3.4336000000e-02 2.2145000000e-01 6465 3.0463000000e-02 2.5805000000e-01 6466 6.3972000000e-02 2.4324000000e-01 6467 6.0677000000e-02 2.8449000000e-01 6468 6.6084000000e-02 2.0733000000e-01 6469 3.8618000000e-02 1.8293000000e-01 6470 6.0108000000e-03 1.6469000000e-01 6471 -2.5153000000e-02 1.8063000000e-01 6472 -2.3115000000e-02 1.4486000000e-01 6473 -5.4987000000e-02 1.6016000000e-01 6474 -5.2822000000e-02 1.2089000000e-01 6475 -8.5669000000e-02 1.4031000000e-01 6476 -8.6578000000e-02 1.7727000000e-01 6477 -1.1685000000e-01 1.5808000000e-01 6478 -1.1727000000e-01 1.1930000000e-01 6479 -1.4699000000e-01 1.4088000000e-01 6480 -1.4964000000e-01 1.0747000000e-01 6481 -1.7532000000e-01 1.2572000000e-01 6482 -2.0279000000e-01 1.4103000000e-01 6483 -2.2551000000e-01 1.2482000000e-01 6484 -2.5988000000e-01 1.2435000000e-01 6485 -3.0377000000e-01 1.4333000000e-01 6486 -2.0121000000e-01 1.0933000000e-01 6487 -1.7550000000e-01 9.7010000000e-02 6488 -1.9759000000e-01 7.1560000000e-02 6489 -2.3056000000e-01 9.5759000000e-02 6490 -2.6345000000e-01 8.3373000000e-02 6491 -2.9489000000e-01 1.0220000000e-01 6492 -3.2739000000e-01 1.1319000000e-01 6493 -3.3844000000e-01 1.3982000000e-01 6494 -3.6567000000e-01 1.5314000000e-01 6495 -3.9536000000e-01 1.7071000000e-01 6496 -3.9312000000e-01 2.0050000000e-01 6497 -4.2053000000e-01 1.9241000000e-01 6498 -4.2805000000e-01 1.5933000000e-01 6499 -3.9855000000e-01 1.3069000000e-01 6500 -4.5215000000e-01 1.8418000000e-01 6501 -4.7550000000e-01 2.0754000000e-01 6502 -4.9995000000e-01 2.3036000000e-01 6503 -5.2565000000e-01 2.5427000000e-01 6504 -5.1537000000e-01 2.8768000000e-01 6505 -5.0457000000e-01 3.1443000000e-01 6506 -5.3713000000e-01 3.1756000000e-01 6507 -5.4062000000e-01 3.5553000000e-01 6508 -5.7166000000e-01 3.7299000000e-01 6509 -5.7114000000e-01 3.3679000000e-01 6510 -6.0609000000e-01 3.5624000000e-01 6511 -5.9692000000e-01 3.8847000000e-01 6512 -5.4941000000e-01 2.8129000000e-01 6513 -5.6895000000e-01 3.0553000000e-01 6514 -6.0241000000e-01 3.1287000000e-01 6515 -6.3604000000e-01 3.3242000000e-01 6516 -6.3660000000e-01 2.9813000000e-01 6517 -6.6699000000e-01 3.1513000000e-01 6518 -6.6521000000e-01 3.4981000000e-01 6519 -6.3895000000e-01 3.6237000000e-01 6520 -6.9928000000e-01 3.3645000000e-01 6521 -6.9858000000e-01 2.9759000000e-01 6522 -6.6625000000e-01 2.7640000000e-01 6523 -6.9852000000e-01 2.6701000000e-01 6524 -7.3096000000e-01 2.7616000000e-01 6525 -7.2949000000e-01 3.1441000000e-01 6526 -7.6091000000e-01 2.9950000000e-01 6527 -7.5706000000e-01 3.3330000000e-01 6528 -7.3019000000e-01 3.4347000000e-01 6529 -7.4868000000e-01 3.6527000000e-01 6530 -7.9262000000e-01 3.2124000000e-01 6531 -7.9124000000e-01 2.8261000000e-01 6532 -7.6410000000e-01 2.6932000000e-01 6533 -8.1937000000e-01 2.6307000000e-01 6534 -8.2290000000e-01 2.9723000000e-01 6535 -8.5072000000e-01 2.7586000000e-01 6536 -8.4574000000e-01 2.4262000000e-01 6537 -8.7788000000e-01 2.5389000000e-01 6538 -8.7290000000e-01 2.1636000000e-01 6539 -9.0437000000e-01 2.3398000000e-01 6540 -9.1041000000e-01 2.6608000000e-01 6541 -8.8316000000e-01 2.8843000000e-01 6542 -9.1710000000e-01 3.0127000000e-01 6543 -8.8760000000e-01 3.2355000000e-01 6544 -8.5528000000e-01 3.0994000000e-01 6545 -8.2823000000e-01 3.3068000000e-01 6546 -8.5910000000e-01 3.4392000000e-01 6547 -9.2053000000e-01 3.3861000000e-01 6548 -9.5178000000e-01 3.1688000000e-01 6549 -9.5358000000e-01 3.5517000000e-01 6550 -9.8455000000e-01 3.3515000000e-01 6551 -9.8575000000e-01 2.9698000000e-01 6552 -1.0159000000e+00 3.1854000000e-01 6553 -1.0374000000e+00 3.3716000000e-01 6554 -1.0491000000e+00 3.1103000000e-01 6555 -1.0706000000e+00 2.7634000000e-01 6556 -1.2024000000e+00 3.0653000000e-01 6557 -1.2332000000e+00 3.2370000000e-01 6558 6.4863000000e-01 1.2014000000e+00 6559 6.1710000000e-01 1.2169000000e+00 6560 6.4635000000e-01 1.2365000000e+00 6561 6.1472000000e-01 1.2521000000e+00 6562 6.4409000000e-01 1.2718000000e+00 6563 6.7568000000e-01 1.2561000000e+00 6564 6.7785000000e-01 1.2209000000e+00 6565 6.8008000000e-01 1.1859000000e+00 6566 7.0925000000e-01 1.2053000000e+00 6567 7.0711000000e-01 1.2404000000e+00 6568 7.3844000000e-01 1.2247000000e+00 6569 7.4058000000e-01 1.1898000000e+00 6570 7.6969000000e-01 1.2092000000e+00 6571 7.7187000000e-01 1.1743000000e+00 6572 7.4280000000e-01 1.1549000000e+00 6573 7.1146000000e-01 1.1704000000e+00 6574 7.4508000000e-01 1.1200000000e+00 6575 7.7413000000e-01 1.1395000000e+00 6576 7.7645000000e-01 1.1046000000e+00 6577 7.4740000000e-01 1.0851000000e+00 6578 7.7880000000e-01 1.0697000000e+00 6579 7.4974000000e-01 1.0502000000e+00 6580 7.1836000000e-01 1.0656000000e+00 6581 6.8933000000e-01 1.0461000000e+00 6582 7.2070000000e-01 1.0306000000e+00 6583 6.9170000000e-01 1.0112000000e+00 6584 6.6036000000e-01 1.0266000000e+00 6585 6.6277000000e-01 9.9171000000e-01 6586 6.3394000000e-01 9.7224000000e-01 6587 6.6517000000e-01 9.5688000000e-01 6588 6.3649000000e-01 9.3751000000e-01 6589 6.0524000000e-01 9.5268000000e-01 6590 5.7662000000e-01 9.3284000000e-01 6591 5.4787000000e-01 9.1251000000e-01 6592 5.1846000000e-01 8.9156000000e-01 6593 5.5168000000e-01 8.7666000000e-01 6594 5.2158000000e-01 8.5144000000e-01 6595 4.8781000000e-01 8.7239000000e-01 6596 4.8587000000e-01 8.3777000000e-01 6597 5.1101000000e-01 8.1563000000e-01 6598 5.0585000000e-01 7.8146000000e-01 6599 5.3644000000e-01 7.9542000000e-01 6600 5.3815000000e-01 8.2323000000e-01 6601 5.6362000000e-01 8.1087000000e-01 6602 5.6447000000e-01 7.7838000000e-01 6603 5.9532000000e-01 7.9498000000e-01 6604 5.8956000000e-01 7.6458000000e-01 6605 5.6629000000e-01 7.4147000000e-01 6606 5.3550000000e-01 7.6287000000e-01 6607 5.0601000000e-01 7.4626000000e-01 6608 4.7897000000e-01 7.2260000000e-01 6609 4.5461000000e-01 6.9523000000e-01 6610 4.8948000000e-01 6.8758000000e-01 6611 4.6644000000e-01 6.6255000000e-01 6612 4.3195000000e-01 6.6763000000e-01 6613 3.9637000000e-01 6.7244000000e-01 6614 3.6054000000e-01 6.7716000000e-01 6615 3.7392000000e-01 6.4401000000e-01 6616 4.0987000000e-01 6.3944000000e-01 6617 3.8753000000e-01 6.1067000000e-01 6618 4.2387000000e-01 6.0662000000e-01 6619 4.4542000000e-01 6.3519000000e-01 6620 4.8053000000e-01 6.3177000000e-01 6621 4.5968000000e-01 6.0303000000e-01 6622 4.3844000000e-01 5.7395000000e-01 6623 4.7411000000e-01 5.7062000000e-01 6624 4.5317000000e-01 5.4142000000e-01 6625 4.8852000000e-01 5.3812000000e-01 6626 4.9552000000e-01 5.9995000000e-01 6627 5.0912000000e-01 5.6714000000e-01 6628 5.2334000000e-01 5.3530000000e-01 6629 5.4296000000e-01 5.6375000000e-01 6630 5.5739000000e-01 5.3324000000e-01 6631 5.3846000000e-01 5.0392000000e-01 6632 5.0342000000e-01 5.0551000000e-01 6633 4.6778000000e-01 5.0865000000e-01 6634 4.3248000000e-01 5.1252000000e-01 6635 4.1751000000e-01 5.4459000000e-01 6636 4.0215000000e-01 5.7732000000e-01 6637 3.6429000000e-01 5.8092000000e-01 6638 3.5092000000e-01 6.1561000000e-01 6639 3.3814000000e-01 6.4865000000e-01 6640 3.2426000000e-01 6.8186000000e-01 6641 2.8847000000e-01 6.8852000000e-01 6642 2.9891000000e-01 6.5037000000e-01 6643 2.6394000000e-01 6.6453000000e-01 6644 2.9028000000e-01 3.2808000000e-01 6645 2.9204000000e-01 3.6389000000e-01 6646 3.2173000000e-01 3.4508000000e-01 6647 3.2083000000e-01 3.0946000000e-01 6648 2.8885000000e-01 2.9203000000e-01 6649 2.5663000000e-01 2.7492000000e-01 6650 2.8713000000e-01 2.5583000000e-01 6651 2.5498000000e-01 2.3880000000e-01 6652 3.1998000000e-01 2.7285000000e-01 6653 3.1733000000e-01 2.3631000000e-01 6654 3.5193000000e-01 2.9129000000e-01 6655 3.5223000000e-01 3.2736000000e-01 6656 3.8107000000e-01 3.4719000000e-01 6657 4.1186000000e-01 3.3699000000e-01 6658 4.0700000000e-01 3.6774000000e-01 6659 4.4177000000e-01 3.3338000000e-01 6660 4.5554000000e-01 3.0704000000e-01 6661 4.7289000000e-01 2.8129000000e-01 6662 4.8276000000e-01 3.0742000000e-01 6663 4.7189000000e-01 3.3292000000e-01 6664 4.5662000000e-01 3.5912000000e-01 6665 4.9073000000e-01 3.6333000000e-01 6666 5.0392000000e-01 3.2722000000e-01 6667 4.3088000000e-01 3.5656000000e-01 6668 4.3713000000e-01 3.8556000000e-01 6669 4.0356000000e-01 4.0015000000e-01 6670 4.3069000000e-01 4.2171000000e-01 6671 4.6381000000e-01 4.1063000000e-01 6672 4.6731000000e-01 3.8293000000e-01 6673 4.8824000000e-01 3.9596000000e-01 6674 5.3942000000e-01 3.1687000000e-01 6675 5.7727000000e-01 3.0585000000e-01 6676 5.8266000000e-01 2.6820000000e-01 6677 6.1452000000e-01 2.5291000000e-01 6678 6.1810000000e-01 2.2245000000e-01 6679 6.4423000000e-01 2.3702000000e-01 6680 6.4187000000e-01 2.0378000000e-01 6681 6.4456000000e-01 2.7088000000e-01 6682 6.7333000000e-01 2.5320000000e-01 6683 6.7301000000e-01 2.1897000000e-01 6684 7.0083000000e-01 1.9901000000e-01 6685 6.7027000000e-01 1.8475000000e-01 6686 6.3984000000e-01 1.6968000000e-01 6687 6.6816000000e-01 1.5192000000e-01 6688 6.4097000000e-01 1.3632000000e-01 6689 6.1199000000e-01 1.5147000000e-01 6690 6.1458000000e-01 1.1953000000e-01 6691 5.9062000000e-01 1.3322000000e-01 6692 6.9795000000e-01 1.6517000000e-01 6693 7.2857000000e-01 1.7957000000e-01 6694 7.2770000000e-01 2.0952000000e-01 6695 7.2603000000e-01 1.4426000000e-01 6696 6.9385000000e-01 1.3155000000e-01 6697 7.2223000000e-01 1.0424000000e-01 6698 6.8260000000e-01 9.9613000000e-02 6699 6.6614000000e-01 1.2412000000e-01 6700 6.4516000000e-01 1.0122000000e-01 6701 6.6592000000e-01 6.8571000000e-02 6702 6.1462000000e-01 9.2191000000e-02 6703 7.0230000000e-01 6.8017000000e-02 6704 7.5084000000e-01 1.2545000000e-01 6705 -1.0244000000e+00 2.7901000000e-01 6706 -1.0443000000e+00 2.4624000000e-01 6707 -9.8875000000e-01 2.5825000000e-01 6708 -9.4918000000e-01 2.7407000000e-01 6709 -9.5968000000e-01 2.3414000000e-01 6710 -9.9717000000e-01 2.1959000000e-01 6711 -9.6173000000e-01 1.9209000000e-01 6712 -1.0008000000e+00 1.8158000000e-01 6713 -9.2234000000e-01 1.8430000000e-01 6714 -9.0375000000e-01 2.0667000000e-01 6715 -8.3550000000e-01 2.1170000000e-01 6716 -8.1810000000e-01 2.3482000000e-01 6717 -8.1957000000e-01 1.8204000000e-01 6718 -9.3045000000e-01 2.1601000000e-01 6719 -9.3082000000e-01 2.4486000000e-01 6720 6.9405000000e-01 9.7626000000e-01 6721 6.9633000000e-01 9.4138000000e-01 6722 7.2534000000e-01 9.6075000000e-01 6723 7.2754000000e-01 9.2573000000e-01 6724 7.5670000000e-01 9.4521000000e-01 6725 7.5892000000e-01 9.1004000000e-01 6726 7.2955000000e-01 8.9052000000e-01 6727 6.9841000000e-01 9.0649000000e-01 6728 6.6749000000e-01 9.2218000000e-01 6729 6.3905000000e-01 9.0310000000e-01 6730 6.0809000000e-01 9.1798000000e-01 6731 5.7994000000e-01 8.9793000000e-01 6732 5.8415000000e-01 8.6371000000e-01 6733 5.5806000000e-01 8.4273000000e-01 6734 5.8920000000e-01 8.3040000000e-01 6735 6.1924000000e-01 8.1936000000e-01 6736 6.2854000000e-01 7.9111000000e-01 6737 6.1250000000e-01 7.7006000000e-01 6738 6.0915000000e-01 7.3793000000e-01 6739 5.8370000000e-01 7.0445000000e-01 6740 6.3986000000e-01 7.6166000000e-01 6741 6.4958000000e-01 7.2633000000e-01 6742 6.2241000000e-01 6.9687000000e-01 6743 5.9470000000e-01 6.6297000000e-01 6744 5.6180000000e-01 6.7958000000e-01 6745 5.4767000000e-01 7.0783000000e-01 6746 5.2646000000e-01 6.7497000000e-01 6747 5.1377000000e-01 7.1225000000e-01 6748 5.3387000000e-01 7.3415000000e-01 6749 4.9651000000e-01 6.5780000000e-01 6750 5.1946000000e-01 6.3201000000e-01 6751 5.3004000000e-01 5.9503000000e-01 6752 5.5063000000e-01 6.1684000000e-01 6753 5.6236000000e-01 5.9037000000e-01 6754 5.8476000000e-01 6.1913000000e-01 6755 5.9028000000e-01 5.8604000000e-01 6756 5.7529000000e-01 5.6134000000e-01 6757 5.9115000000e-01 5.3235000000e-01 6758 5.7293000000e-01 5.0274000000e-01 6759 6.0735000000e-01 5.6221000000e-01 6760 6.2545000000e-01 5.3292000000e-01 6761 6.0829000000e-01 5.0161000000e-01 6762 5.8816000000e-01 4.7153000000e-01 6763 6.2409000000e-01 4.6864000000e-01 6764 5.6735000000e-01 4.4341000000e-01 6765 5.3707000000e-01 4.4798000000e-01 6766 5.5394000000e-01 4.7375000000e-01 6767 5.1952000000e-01 4.7289000000e-01 6768 4.8274000000e-01 4.7413000000e-01 6769 4.4620000000e-01 4.8012000000e-01 6770 4.1249000000e-01 4.8507000000e-01 6771 3.9758000000e-01 5.1519000000e-01 6772 4.2351000000e-01 4.5469000000e-01 6773 4.5806000000e-01 4.4555000000e-01 6774 3.9801000000e-01 4.3363000000e-01 6775 3.7100000000e-01 4.1226000000e-01 6776 3.6376000000e-01 4.5088000000e-01 6777 3.9548000000e-01 4.6202000000e-01 6778 3.7955000000e-01 4.8579000000e-01 6779 3.6225000000e-01 5.1604000000e-01 6780 3.4566000000e-01 4.8546000000e-01 6781 3.2691000000e-01 5.1443000000e-01 6782 3.1695000000e-01 4.8707000000e-01 6783 3.4258000000e-01 5.4828000000e-01 6784 2.9947000000e-01 5.4462000000e-01 6785 3.2135000000e-01 5.8654000000e-01 6786 2.8030000000e-01 5.8041000000e-01 6787 2.9154000000e-01 6.1304000000e-01 6788 2.6481000000e-01 5.5395000000e-01 6789 2.6271000000e-01 6.0494000000e-01 6790 5.0133000000e-01 4.3199000000e-01 6791 3.0319000000e+00 1.3718000000e+00 6792 3.0320000000e+00 1.4075000000e+00 6793 3.0014000000e+00 1.4273000000e+00 6794 2.9717000000e+00 1.4472000000e+00 6795 2.9441000000e+00 1.4676000000e+00 6796 2.9125000000e+00 1.4576000000e+00 6797 2.8780000000e+00 1.4474000000e+00 6798 2.8419000000e+00 1.4377000000e+00 6799 2.8054000000e+00 1.4287000000e+00 6800 2.7695000000e+00 1.4199000000e+00 6801 2.7350000000e+00 1.4105000000e+00 6802 2.7069000000e+00 1.4351000000e+00 6803 2.6770000000e+00 1.4250000000e+00 6804 2.6467000000e+00 1.4182000000e+00 6805 2.6158000000e+00 1.4131000000e+00 6806 2.5839000000e+00 1.4101000000e+00 6807 2.5498000000e+00 1.4086000000e+00 6808 2.5132000000e+00 1.4076000000e+00 6809 2.4936000000e+00 1.4403000000e+00 6810 2.4769000000e+00 1.4671000000e+00 6811 2.4602000000e+00 1.4433000000e+00 6812 2.4421000000e+00 1.4233000000e+00 6813 2.4140000000e+00 1.4218000000e+00 6814 2.3784000000e+00 1.4217000000e+00 6815 2.3508000000e+00 1.4070000000e+00 6816 2.3179000000e+00 1.4083000000e+00 6817 2.2890000000e+00 1.3935000000e+00 6818 2.2578000000e+00 1.3949000000e+00 6819 2.2394000000e+00 1.4268000000e+00 6820 2.2088000000e+00 1.4290000000e+00 6821 2.1820000000e+00 1.4158000000e+00 6822 2.1463000000e+00 1.4405000000e+00 6823 2.1109000000e+00 1.4462000000e+00 6824 2.0916000000e+00 1.4631000000e+00 6825 2.0817000000e+00 1.4339000000e+00 6826 2.0678000000e+00 1.4627000000e+00 6827 2.0460000000e+00 1.4436000000e+00 6828 2.0536000000e+00 1.4102000000e+00 6829 2.0202000000e+00 1.4203000000e+00 6830 2.0114000000e+00 1.4565000000e+00 6831 1.9725000000e+00 1.4700000000e+00 6832 1.9729000000e+00 1.5013000000e+00 6833 1.9837000000e+00 1.5219000000e+00 6834 1.9471000000e+00 1.4948000000e+00 6835 1.9160000000e+00 1.4868000000e+00 6836 1.8786000000e+00 1.4729000000e+00 6837 1.8548000000e+00 1.5074000000e+00 6838 1.8201000000e+00 1.5054000000e+00 6839 1.7999000000e+00 1.5318000000e+00 6840 1.7801000000e+00 1.5576000000e+00 6841 1.7666000000e+00 1.5277000000e+00 6842 1.7320000000e+00 1.5248000000e+00 6843 1.6961000000e+00 1.5234000000e+00 6844 1.6775000000e+00 1.5546000000e+00 6845 1.6418000000e+00 1.5549000000e+00 6846 1.6064000000e+00 1.5555000000e+00 6847 1.6238000000e+00 1.5243000000e+00 6848 1.5884000000e+00 1.5253000000e+00 6849 1.5712000000e+00 1.5560000000e+00 6850 1.5364000000e+00 1.5565000000e+00 6851 1.5190000000e+00 1.5265000000e+00 6852 1.4846000000e+00 1.5265000000e+00 6853 1.4679000000e+00 1.4964000000e+00 6854 1.5020000000e+00 1.4967000000e+00 6855 1.4856000000e+00 1.4672000000e+00 6856 1.4519000000e+00 1.4662000000e+00 6857 1.4702000000e+00 1.4376000000e+00 6858 1.4365000000e+00 1.4354000000e+00 6859 1.5027000000e+00 1.4390000000e+00 6860 1.4884000000e+00 1.4113000000e+00 6861 1.4565000000e+00 1.4067000000e+00 6862 1.4214000000e+00 1.4035000000e+00 6863 1.4016000000e+00 1.4336000000e+00 6864 1.3856000000e+00 1.4024000000e+00 6865 1.4044000000e+00 1.3721000000e+00 6866 1.3692000000e+00 1.3721000000e+00 6867 1.3864000000e+00 1.3426000000e+00 6868 1.3524000000e+00 1.3431000000e+00 6869 1.3690000000e+00 1.3135000000e+00 6870 1.3346000000e+00 1.3144000000e+00 6871 1.3193000000e+00 1.3443000000e+00 6872 1.3357000000e+00 1.3715000000e+00 6873 1.3506000000e+00 1.4011000000e+00 6874 1.3160000000e+00 1.3981000000e+00 6875 1.3309000000e+00 1.4302000000e+00 6876 1.2944000000e+00 1.4271000000e+00 6877 1.3112000000e+00 1.4605000000e+00 6878 1.3471000000e+00 1.4621000000e+00 6879 1.3664000000e+00 1.4322000000e+00 6880 1.3281000000e+00 1.4926000000e+00 6881 1.3095000000e+00 1.5235000000e+00 6882 1.2921000000e+00 1.4918000000e+00 6883 1.2744000000e+00 1.4593000000e+00 6884 1.2559000000e+00 1.4257000000e+00 6885 1.2372000000e+00 1.4594000000e+00 6886 1.2557000000e+00 1.4915000000e+00 6887 1.2737000000e+00 1.5231000000e+00 6888 1.2914000000e+00 1.5545000000e+00 6889 1.3269000000e+00 1.5548000000e+00 6890 1.3089000000e+00 1.5855000000e+00 6891 1.2911000000e+00 1.6163000000e+00 6892 1.2734000000e+00 1.6470000000e+00 6893 1.2558000000e+00 1.6163000000e+00 6894 1.2205000000e+00 1.6164000000e+00 6895 1.1853000000e+00 1.6167000000e+00 6896 1.1680000000e+00 1.6474000000e+00 6897 1.2026000000e+00 1.5858000000e+00 6898 1.1673000000e+00 1.5862000000e+00 6899 1.1502000000e+00 1.6170000000e+00 6900 1.1330000000e+00 1.6477000000e+00 6901 1.1506000000e+00 1.6781000000e+00 6902 1.1332000000e+00 1.7086000000e+00 6903 1.1157000000e+00 1.6782000000e+00 6904 1.0981000000e+00 1.6479000000e+00 6905 1.0805000000e+00 1.6178000000e+00 6906 1.0459000000e+00 1.6180000000e+00 6907 1.0114000000e+00 1.6180000000e+00 6908 9.7682000000e-01 1.6177000000e+00 6909 9.4205000000e-01 1.6174000000e+00 6910 9.2425000000e-01 1.6477000000e+00 6911 9.0704000000e-01 1.6170000000e+00 6912 8.7184000000e-01 1.6167000000e+00 6913 8.3652000000e-01 1.6165000000e+00 6914 8.0117000000e-01 1.6165000000e+00 6915 7.8355000000e-01 1.6473000000e+00 6916 7.6599000000e-01 1.6780000000e+00 6917 7.4834000000e-01 1.6474000000e+00 6918 7.1319000000e-01 1.6477000000e+00 6919 6.7812000000e-01 1.6480000000e+00 6920 6.4316000000e-01 1.6483000000e+00 6921 6.2549000000e-01 1.6182000000e+00 6922 5.9082000000e-01 1.6187000000e+00 6923 5.5630000000e-01 1.6189000000e+00 6924 5.2175000000e-01 1.6188000000e+00 6925 4.8702000000e-01 1.6185000000e+00 6926 4.5208000000e-01 1.6182000000e+00 6927 4.3494000000e-01 1.5877000000e+00 6928 4.1772000000e-01 1.5570000000e+00 6929 3.8238000000e-01 1.5569000000e+00 6930 3.6491000000e-01 1.5263000000e+00 6931 3.2961000000e-01 1.5264000000e+00 6932 3.1208000000e-01 1.4959000000e+00 6933 2.7689000000e-01 1.4959000000e+00 6934 2.5941000000e-01 1.4655000000e+00 6935 2.4199000000e-01 1.4350000000e+00 6936 2.7700000000e-01 1.4350000000e+00 6937 2.5953000000e-01 1.4047000000e+00 6938 2.9449000000e-01 1.4045000000e+00 6939 2.7695000000e-01 1.3743000000e+00 6940 2.4216000000e-01 1.3744000000e+00 6941 2.5953000000e-01 1.3441000000e+00 6942 2.4184000000e-01 1.3134000000e+00 6943 2.7716000000e-01 1.3141000000e+00 6944 2.6054000000e-01 1.2834000000e+00 6945 2.2163000000e-01 1.2798000000e+00 6946 2.1584000000e-01 1.2420000000e+00 6947 2.1705000000e-01 1.2100000000e+00 6948 2.4760000000e-01 1.1996000000e+00 6949 2.8619000000e-01 1.1918000000e+00 6950 3.2508000000e-01 1.2043000000e+00 6951 3.5154000000e-01 1.1833000000e+00 6952 3.8028000000e-01 1.1667000000e+00 6953 4.1038000000e-01 1.1508000000e+00 6954 4.4112000000e-01 1.1351000000e+00 6955 4.3893000000e-01 1.1696000000e+00 6956 4.6989000000e-01 1.1542000000e+00 6957 4.6742000000e-01 1.1888000000e+00 6958 4.9864000000e-01 1.1736000000e+00 6959 5.0108000000e-01 1.1388000000e+00 6960 4.7218000000e-01 1.1196000000e+00 6961 5.2998000000e-01 1.1582000000e+00 6962 5.2747000000e-01 1.1931000000e+00 6963 5.5893000000e-01 1.1777000000e+00 6964 5.8796000000e-01 1.1973000000e+00 6965 5.8548000000e-01 1.2324000000e+00 6966 5.8294000000e-01 1.2676000000e+00 6967 6.1231000000e-01 1.2875000000e+00 6968 5.8031000000e-01 1.3030000000e+00 6969 6.0990000000e-01 1.3231000000e+00 6970 5.5100000000e-01 1.2830000000e+00 6971 5.5377000000e-01 1.2478000000e+00 6972 5.2197000000e-01 1.2629000000e+00 6973 5.1891000000e-01 1.2981000000e+00 6974 5.4807000000e-01 1.3184000000e+00 6975 5.7759000000e-01 1.3388000000e+00 6976 5.4500000000e-01 1.3542000000e+00 6977 5.7474000000e-01 1.3748000000e+00 6978 5.4185000000e-01 1.3901000000e+00 6979 5.7155000000e-01 1.4110000000e+00 6980 6.0494000000e-01 1.3956000000e+00 6981 6.0747000000e-01 1.3591000000e+00 6982 6.3977000000e-01 1.3430000000e+00 6983 6.4189000000e-01 1.3072000000e+00 6984 6.7163000000e-01 1.3268000000e+00 6985 6.7359000000e-01 1.2913000000e+00 6986 7.0506000000e-01 1.2755000000e+00 6987 7.3639000000e-01 1.2597000000e+00 6988 7.3446000000e-01 1.2948000000e+00 6989 7.6564000000e-01 1.2790000000e+00 6990 7.6762000000e-01 1.2441000000e+00 6991 7.6379000000e-01 1.3139000000e+00 6992 7.9484000000e-01 1.2981000000e+00 6993 7.9300000000e-01 1.3329000000e+00 6994 8.2395000000e-01 1.3173000000e+00 6995 8.2586000000e-01 1.2825000000e+00 6996 7.9676000000e-01 1.2633000000e+00 6997 7.9877000000e-01 1.2285000000e+00 6998 8.0090000000e-01 1.1937000000e+00 6999 8.2987000000e-01 1.2131000000e+00 7000 8.3207000000e-01 1.1784000000e+00 7001 8.0314000000e-01 1.1590000000e+00 7002 8.3443000000e-01 1.1438000000e+00 7003 8.0547000000e-01 1.1242000000e+00 7004 8.0785000000e-01 1.0893000000e+00 7005 8.1024000000e-01 1.0544000000e+00 7006 7.8116000000e-01 1.0348000000e+00 7007 7.5209000000e-01 1.0152000000e+00 7008 7.2304000000e-01 9.9571000000e-01 7009 7.5441000000e-01 9.8025000000e-01 7010 7.8584000000e-01 9.6481000000e-01 7011 7.8816000000e-01 9.2971000000e-01 7012 7.8351000000e-01 9.9983000000e-01 7013 8.1497000000e-01 9.8447000000e-01 7014 8.1733000000e-01 9.4942000000e-01 7015 8.4647000000e-01 9.6915000000e-01 7016 8.4884000000e-01 9.3411000000e-01 7017 8.7797000000e-01 9.5389000000e-01 7018 8.8034000000e-01 9.1888000000e-01 7019 8.5126000000e-01 8.9904000000e-01 7020 8.1971000000e-01 9.1431000000e-01 7021 8.2216000000e-01 8.7915000000e-01 7022 7.9050000000e-01 8.9449000000e-01 7023 7.6111000000e-01 8.7464000000e-01 7024 7.9296000000e-01 8.5913000000e-01 7025 7.6343000000e-01 8.3885000000e-01 7026 7.3129000000e-01 8.5479000000e-01 7027 7.0003000000e-01 8.7142000000e-01 7028 7.0061000000e-01 8.3542000000e-01 7029 6.7078000000e-01 8.5362000000e-01 7030 6.6954000000e-01 8.8771000000e-01 7031 6.4146000000e-01 8.6941000000e-01 7032 6.1124000000e-01 8.8381000000e-01 7033 6.1478000000e-01 8.5070000000e-01 7034 6.4335000000e-01 8.3747000000e-01 7035 6.4418000000e-01 8.1146000000e-01 7036 6.6008000000e-01 7.8907000000e-01 7037 6.7923000000e-01 7.5539000000e-01 7038 6.8581000000e-01 7.1675000000e-01 7039 6.6084000000e-01 6.8930000000e-01 7040 6.3635000000e-01 6.6015000000e-01 7041 6.1734000000e-01 6.3293000000e-01 7042 5.5633000000e-01 6.4760000000e-01 7043 3.7895000000e-01 1.1994000000e+00 7044 4.0841000000e-01 1.1847000000e+00 7045 4.3638000000e-01 1.2037000000e+00 7046 4.0554000000e-01 1.2182000000e+00 7047 4.3332000000e-01 1.2378000000e+00 7048 4.6466000000e-01 1.2232000000e+00 7049 4.9603000000e-01 1.2082000000e+00 7050 4.9320000000e-01 1.2430000000e+00 7051 5.2481000000e-01 1.2279000000e+00 7052 5.5640000000e-01 1.2127000000e+00 7053 4.9011000000e-01 1.2778000000e+00 7054 4.6160000000e-01 1.2577000000e+00 7055 4.5826000000e-01 1.2923000000e+00 7056 4.3001000000e-01 1.2721000000e+00 7057 4.2672000000e-01 1.3063000000e+00 7058 4.5444000000e-01 1.3269000000e+00 7059 4.2302000000e-01 1.3394000000e+00 7060 4.4918000000e-01 1.3622000000e+00 7061 4.8275000000e-01 1.3483000000e+00 7062 4.8668000000e-01 1.3128000000e+00 7063 5.1560000000e-01 1.3335000000e+00 7064 5.1212000000e-01 1.3694000000e+00 7065 5.0905000000e-01 1.4055000000e+00 7066 5.3859000000e-01 1.4257000000e+00 7067 5.6731000000e-01 1.4467000000e+00 7068 5.3498000000e-01 1.4602000000e+00 7069 5.6159000000e-01 1.4807000000e+00 7070 5.9528000000e-01 1.4698000000e+00 7071 6.0183000000e-01 1.4331000000e+00 7072 6.3620000000e-01 1.4167000000e+00 7073 6.3782000000e-01 1.3792000000e+00 7074 6.6989000000e-01 1.3625000000e+00 7075 7.0144000000e-01 1.3460000000e+00 7076 7.0315000000e-01 1.3107000000e+00 7077 7.3269000000e-01 1.3298000000e+00 7078 7.6210000000e-01 1.3488000000e+00 7079 7.3117000000e-01 1.3649000000e+00 7080 7.6066000000e-01 1.3835000000e+00 7081 7.9128000000e-01 1.3676000000e+00 7082 8.2203000000e-01 1.3520000000e+00 7083 8.2008000000e-01 1.3864000000e+00 7084 8.5085000000e-01 1.3712000000e+00 7085 8.5299000000e-01 1.3365000000e+00 7086 8.5496000000e-01 1.3016000000e+00 7087 8.5686000000e-01 1.2669000000e+00 7088 8.2782000000e-01 1.2477000000e+00 7089 8.5878000000e-01 1.2322000000e+00 7090 8.8773000000e-01 1.2512000000e+00 7091 8.8957000000e-01 1.2168000000e+00 7092 8.6088000000e-01 1.1978000000e+00 7093 8.6324000000e-01 1.1633000000e+00 7094 8.6581000000e-01 1.1287000000e+00 7095 8.3688000000e-01 1.1090000000e+00 7096 8.3933000000e-01 1.0741000000e+00 7097 8.4174000000e-01 1.0392000000e+00 7098 8.1262000000e-01 1.0195000000e+00 7099 8.4412000000e-01 1.0042000000e+00 7100 8.7563000000e-01 9.8890000000e-01 7101 8.7330000000e-01 1.0239000000e+00 7102 8.7091000000e-01 1.0590000000e+00 7103 8.6840000000e-01 1.0939000000e+00 7104 9.0013000000e-01 1.0789000000e+00 7105 9.0257000000e-01 1.0438000000e+00 7106 9.0486000000e-01 1.0087000000e+00 7107 9.0712000000e-01 9.7365000000e-01 7108 9.3634000000e-01 9.9334000000e-01 7109 9.3852000000e-01 9.5843000000e-01 7110 9.6764000000e-01 9.7803000000e-01 7111 9.6982000000e-01 9.4334000000e-01 7112 9.4082000000e-01 9.2355000000e-01 7113 9.0942000000e-01 9.3868000000e-01 7114 9.1179000000e-01 9.0371000000e-01 7115 8.8277000000e-01 8.8385000000e-01 7116 8.5377000000e-01 8.6396000000e-01 7117 8.2477000000e-01 8.4397000000e-01 7118 7.9574000000e-01 8.2372000000e-01 7119 7.6651000000e-01 8.0287000000e-01 7120 7.3297000000e-01 8.1792000000e-01 7121 7.3703000000e-01 7.8112000000e-01 7122 6.9890000000e-01 7.9447000000e-01 7123 6.6966000000e-01 8.2026000000e-01 7124 7.1264000000e-01 7.6212000000e-01 7125 7.0764000000e-01 7.3732000000e-01 7126 7.4032000000e-01 7.4226000000e-01 7127 7.7076000000e-01 7.6704000000e-01 7128 7.9910000000e-01 7.8859000000e-01 7129 8.0326000000e-01 7.5472000000e-01 7130 7.7825000000e-01 7.3266000000e-01 7131 7.5571000000e-01 7.0550000000e-01 7132 7.9177000000e-01 7.0060000000e-01 7133 7.7016000000e-01 6.7124000000e-01 7134 7.3356000000e-01 6.7619000000e-01 7135 7.2009000000e-01 7.1003000000e-01 7136 6.9736000000e-01 6.8212000000e-01 7137 6.7339000000e-01 6.5351000000e-01 7138 6.4924000000e-01 6.2525000000e-01 7139 6.8600000000e-01 6.1735000000e-01 7140 6.6069000000e-01 5.9040000000e-01 7141 6.2145000000e-01 5.9707000000e-01 7142 6.4027000000e-01 5.6350000000e-01 7143 6.5760000000e-01 5.3642000000e-01 7144 6.4779000000e-01 5.0143000000e-01 7145 6.7578000000e-01 5.1687000000e-01 7146 6.8730000000e-01 5.4186000000e-01 7147 6.6884000000e-01 5.6190000000e-01 7148 6.9814000000e-01 5.7732000000e-01 7149 7.3975000000e-01 5.7518000000e-01 7150 7.2402000000e-01 6.1072000000e-01 7151 7.6218000000e-01 6.0625000000e-01 7152 7.7749000000e-01 5.7166000000e-01 7153 7.5634000000e-01 5.4134000000e-01 7154 7.9300000000e-01 5.3738000000e-01 7155 8.1416000000e-01 5.6783000000e-01 7156 8.2936000000e-01 5.3439000000e-01 7157 8.4985000000e-01 5.6413000000e-01 7158 8.6448000000e-01 5.3226000000e-01 7159 8.4537000000e-01 5.0359000000e-01 7160 8.7921000000e-01 5.0108000000e-01 7161 8.5865000000e-01 4.7353000000e-01 7162 8.3125000000e-01 4.7917000000e-01 7163 8.9329000000e-01 4.6873000000e-01 7164 8.3246000000e-01 4.4782000000e-01 7165 8.1054000000e-01 4.6982000000e-01 7166 8.0919000000e-01 5.0112000000e-01 7167 9.1447000000e-01 4.9838000000e-01 7168 9.3190000000e-01 4.6309000000e-01 7169 9.3421000000e-01 4.2909000000e-01 7170 9.5457000000e-01 4.0332000000e-01 7171 9.6579000000e-01 3.6849000000e-01 7172 9.7951000000e-01 3.3758000000e-01 7173 9.9816000000e-01 3.6594000000e-01 7174 1.0132000000e+00 3.3518000000e-01 7175 1.0320000000e+00 3.6477000000e-01 7176 1.0146000000e+00 3.9857000000e-01 7177 1.0520000000e+00 3.9415000000e-01 7178 1.0670000000e+00 3.6190000000e-01 7179 1.0871000000e+00 3.9082000000e-01 7180 1.0726000000e+00 4.2296000000e-01 7181 1.1074000000e+00 4.1970000000e-01 7182 1.1218000000e+00 3.8737000000e-01 7183 1.1562000000e+00 3.8363000000e-01 7184 1.1704000000e+00 3.5179000000e-01 7185 1.1848000000e+00 3.2011000000e-01 7186 1.2045000000e+00 3.4822000000e-01 7187 1.1903000000e+00 3.7977000000e-01 7188 1.2241000000e+00 3.7617000000e-01 7189 1.2099000000e+00 4.0721000000e-01 7190 1.2430000000e+00 4.0386000000e-01 7191 1.2579000000e+00 3.7309000000e-01 7192 1.2387000000e+00 3.4480000000e-01 7193 1.2764000000e+00 4.0157000000e-01 7194 1.2923000000e+00 3.7053000000e-01 7195 1.3104000000e+00 4.0001000000e-01 7196 1.3274000000e+00 3.6852000000e-01 7197 1.3084000000e+00 3.3845000000e-01 7198 1.2732000000e+00 3.4155000000e-01 7199 1.2534000000e+00 3.1307000000e-01 7200 1.2883000000e+00 3.0931000000e-01 7201 1.2678000000e+00 2.8107000000e-01 7202 1.3026000000e+00 2.7660000000e-01 7203 1.3245000000e+00 3.0508000000e-01 7204 1.3377000000e+00 2.7095000000e-01 7205 1.3157000000e+00 2.4412000000e-01 7206 1.2817000000e+00 2.4904000000e-01 7207 1.2476000000e+00 2.5338000000e-01 7208 1.2335000000e+00 2.8497000000e-01 7209 1.2136000000e+00 2.5707000000e-01 7210 1.1993000000e+00 2.8851000000e-01 7211 1.2190000000e+00 3.1663000000e-01 7212 1.1651000000e+00 2.9188000000e-01 7213 1.2278000000e+00 2.2613000000e-01 7214 1.2408000000e+00 1.9600000000e-01 7215 1.2501000000e+00 1.6431000000e-01 7216 1.2741000000e+00 1.8967000000e-01 7217 1.3089000000e+00 1.8530000000e-01 7218 1.3286000000e+00 2.1261000000e-01 7219 1.3579000000e+00 2.1053000000e-01 7220 1.3484000000e+00 2.3835000000e-01 7221 1.3706000000e+00 2.6211000000e-01 7222 1.3915000000e+00 2.8024000000e-01 7223 7.8976000000e-01 1.4020000000e+00 7224 7.5960000000e-01 1.4181000000e+00 7225 7.8861000000e-01 1.4359000000e+00 7226 8.1827000000e-01 1.4203000000e+00 7227 8.4828000000e-01 1.4055000000e+00 7228 8.7966000000e-01 1.3912000000e+00 7229 8.8203000000e-01 1.3559000000e+00 7230 9.1110000000e-01 1.3753000000e+00 7231 9.1340000000e-01 1.3402000000e+00 7232 8.8412000000e-01 1.3209000000e+00 7233 8.8599000000e-01 1.2859000000e+00 7234 9.1690000000e-01 1.2700000000e+00 7235 9.1829000000e-01 1.2355000000e+00 7236 9.1994000000e-01 1.2017000000e+00 7237 8.9179000000e-01 1.1827000000e+00 7238 8.9451000000e-01 1.1485000000e+00 7239 8.9742000000e-01 1.1139000000e+00 7240 9.2620000000e-01 1.1343000000e+00 7241 9.2949000000e-01 1.0992000000e+00 7242 9.3203000000e-01 1.0638000000e+00 7243 9.3423000000e-01 1.0284000000e+00 7244 9.6572000000e-01 1.0129000000e+00 7245 9.6390000000e-01 1.0481000000e+00 7246 9.9545000000e-01 1.0320000000e+00 7247 9.9677000000e-01 9.9726000000e-01 7248 9.9871000000e-01 9.6295000000e-01 7249 1.0011000000e+00 9.2848000000e-01 7250 9.7217000000e-01 9.0854000000e-01 7251 9.4320000000e-01 8.8861000000e-01 7252 9.7462000000e-01 8.7357000000e-01 7253 9.4562000000e-01 8.5357000000e-01 7254 9.1421000000e-01 8.6871000000e-01 7255 8.8526000000e-01 8.4884000000e-01 7256 9.1664000000e-01 8.3369000000e-01 7257 8.8777000000e-01 8.1388000000e-01 7258 8.5638000000e-01 8.2894000000e-01 7259 8.2763000000e-01 8.0893000000e-01 7260 8.5907000000e-01 7.9408000000e-01 7261 8.3065000000e-01 7.7427000000e-01 7262 9.9441000000e-01 1.5878000000e+00 7263 9.5994000000e-01 1.5872000000e+00 7264 9.2504000000e-01 1.5866000000e+00 7265 8.8982000000e-01 1.5861000000e+00 7266 8.5441000000e-01 1.5858000000e+00 7267 8.1889000000e-01 1.5856000000e+00 7268 7.8338000000e-01 1.5857000000e+00 7269 7.6584000000e-01 1.6167000000e+00 7270 7.3059000000e-01 1.6169000000e+00 7271 6.9543000000e-01 1.6173000000e+00 7272 6.6037000000e-01 1.6177000000e+00 7273 6.7753000000e-01 1.5869000000e+00 7274 6.4246000000e-01 1.5876000000e+00 7275 6.0776000000e-01 1.5885000000e+00 7276 5.7347000000e-01 1.5890000000e+00 7277 5.3930000000e-01 1.5889000000e+00 7278 5.0486000000e-01 1.5885000000e+00 7279 4.7003000000e-01 1.5880000000e+00 7280 4.8824000000e-01 1.5579000000e+00 7281 4.5306000000e-01 1.5573000000e+00 7282 4.3588000000e-01 1.5263000000e+00 7283 4.0032000000e-01 1.5263000000e+00 7284 3.8274000000e-01 1.4957000000e+00 7285 3.4736000000e-01 1.4958000000e+00 7286 3.2975000000e-01 1.4653000000e+00 7287 2.9453000000e-01 1.4654000000e+00 7288 3.1211000000e-01 1.4349000000e+00 7289 3.2957000000e-01 1.4042000000e+00 7290 3.1177000000e-01 1.3741000000e+00 7291 2.9424000000e-01 1.3442000000e+00 7292 3.1155000000e-01 1.3146000000e+00 7293 2.9529000000e-01 1.2851000000e+00 7294 2.8005000000e-01 1.2558000000e+00 7295 2.4730000000e-01 1.2521000000e+00 7296 2.3892000000e-01 1.2259000000e+00 7297 2.6683000000e-01 1.2258000000e+00 7298 3.0091000000e-01 1.2296000000e+00 7299 3.0943000000e-01 1.2590000000e+00 7300 3.3788000000e-01 1.2408000000e+00 7301 3.5357000000e-01 1.2118000000e+00 7302 3.7441000000e-01 1.2314000000e+00 7303 4.0175000000e-01 1.2520000000e+00 7304 3.9843000000e-01 1.2866000000e+00 7305 3.6877000000e-01 1.2661000000e+00 7306 3.6715000000e-01 1.3023000000e+00 7307 3.9617000000e-01 1.3206000000e+00 7308 3.2263000000e+00 6.3223000000e-01 7309 3.2190000000e+00 6.5849000000e-01 7310 3.2154000000e+00 6.9403000000e-01 7311 3.2155000000e+00 7.3075000000e-01 7312 3.2159000000e+00 7.6665000000e-01 7313 3.1853000000e+00 7.8397000000e-01 7314 3.1854000000e+00 8.1954000000e-01 7315 3.1855000000e+00 8.5533000000e-01 7316 3.1859000000e+00 8.9118000000e-01 7317 3.1865000000e+00 9.2689000000e-01 7318 3.1873000000e+00 9.6233000000e-01 7319 3.1880000000e+00 9.9749000000e-01 7320 3.1885000000e+00 1.0324000000e+00 7321 3.1584000000e+00 1.0499000000e+00 7322 3.1584000000e+00 1.0847000000e+00 7323 3.1581000000e+00 1.1196000000e+00 7324 3.1273000000e+00 1.1368000000e+00 7325 3.1267000000e+00 1.1722000000e+00 7326 3.1262000000e+00 1.2077000000e+00 7327 3.0948000000e+00 1.2258000000e+00 7328 3.0946000000e+00 1.2617000000e+00 7329 3.0632000000e+00 1.2804000000e+00 7330 3.0632000000e+00 1.3165000000e+00 7331 3.0319000000e+00 1.3358000000e+00 7332 3.0005000000e+00 1.3556000000e+00 7333 3.0010000000e+00 1.3917000000e+00 7334 2.9704000000e+00 1.4123000000e+00 7335 2.9407000000e+00 1.4340000000e+00 7336 2.9074000000e+00 1.4216000000e+00 7337 2.8717000000e+00 1.4094000000e+00 7338 2.8343000000e+00 1.3999000000e+00 7339 2.7977000000e+00 1.3925000000e+00 7340 2.7627000000e+00 1.3842000000e+00 7341 2.7287000000e+00 1.3757000000e+00 7342 2.7022000000e+00 1.4013000000e+00 7343 2.6702000000e+00 1.3934000000e+00 7344 2.6381000000e+00 1.3872000000e+00 7345 2.6054000000e+00 1.3825000000e+00 7346 2.5715000000e+00 1.3790000000e+00 7347 2.5359000000e+00 1.3761000000e+00 7348 2.4983000000e+00 1.3732000000e+00 7349 2.4718000000e+00 1.4075000000e+00 7350 2.4353000000e+00 1.3960000000e+00 7351 2.4008000000e+00 1.3922000000e+00 7352 2.3714000000e+00 1.3911000000e+00 7353 2.3439000000e+00 1.3751000000e+00 7354 2.3101000000e+00 1.3761000000e+00 7355 2.2802000000e+00 1.3617000000e+00 7356 2.2415000000e+00 1.3643000000e+00 7357 2.2177000000e+00 1.3963000000e+00 7358 2.1837000000e+00 1.3800000000e+00 7359 2.1502000000e+00 1.3986000000e+00 7360 2.1158000000e+00 1.4156000000e+00 7361 2.1198000000e+00 1.3785000000e+00 7362 2.0862000000e+00 1.3956000000e+00 7363 2.0573000000e+00 1.3764000000e+00 7364 2.0306000000e+00 1.3915000000e+00 7365 1.9958000000e+00 1.3892000000e+00 7366 1.9840000000e+00 1.4303000000e+00 7367 1.9480000000e+00 1.4409000000e+00 7368 1.9397000000e+00 1.4692000000e+00 7369 1.9562000000e+00 1.4048000000e+00 7370 1.9210000000e+00 1.4178000000e+00 7371 1.9610000000e+00 1.3684000000e+00 7372 1.9277000000e+00 1.3821000000e+00 7373 1.8931000000e+00 1.3943000000e+00 7374 1.8860000000e+00 1.4315000000e+00 7375 1.9149000000e+00 1.4532000000e+00 7376 1.8501000000e+00 1.4429000000e+00 7377 1.8376000000e+00 1.4766000000e+00 7378 1.8076000000e+00 1.4796000000e+00 7379 1.7876000000e+00 1.5007000000e+00 7380 1.7531000000e+00 1.4952000000e+00 7381 1.7161000000e+00 1.4919000000e+00 7382 1.6783000000e+00 1.4909000000e+00 7383 1.6598000000e+00 1.5234000000e+00 7384 1.6411000000e+00 1.4925000000e+00 7385 1.6053000000e+00 1.4942000000e+00 7386 1.5703000000e+00 1.4955000000e+00 7387 1.5535000000e+00 1.5260000000e+00 7388 1.5360000000e+00 1.4964000000e+00 7389 1.5189000000e+00 1.4674000000e+00 7390 1.5348000000e+00 1.4384000000e+00 7391 1.5524000000e+00 1.4665000000e+00 7392 1.5865000000e+00 1.4648000000e+00 7393 1.5678000000e+00 1.4363000000e+00 7394 1.6019000000e+00 1.4337000000e+00 7395 1.5823000000e+00 1.4055000000e+00 7396 1.5491000000e+00 1.4090000000e+00 7397 1.5181000000e+00 1.4120000000e+00 7398 1.5041000000e+00 1.3905000000e+00 7399 1.4790000000e+00 1.3819000000e+00 7400 1.4437000000e+00 1.3705000000e+00 7401 1.4204000000e+00 1.3417000000e+00 7402 1.4031000000e+00 1.3132000000e+00 7403 1.4361000000e+00 1.3134000000e+00 7404 1.4207000000e+00 1.2843000000e+00 7405 1.3863000000e+00 1.2838000000e+00 7406 1.3514000000e+00 1.2840000000e+00 7407 1.3691000000e+00 1.2536000000e+00 7408 1.4044000000e+00 1.2541000000e+00 7409 1.3876000000e+00 1.2232000000e+00 7410 1.3516000000e+00 1.2228000000e+00 7411 1.3334000000e+00 1.2538000000e+00 7412 1.3160000000e+00 1.2850000000e+00 7413 1.2999000000e+00 1.3167000000e+00 7414 1.2796000000e+00 1.2868000000e+00 7415 1.2636000000e+00 1.3205000000e+00 7416 1.2862000000e+00 1.3494000000e+00 7417 1.2497000000e+00 1.3562000000e+00 7418 1.2777000000e+00 1.3885000000e+00 7419 1.3070000000e+00 1.3704000000e+00 7420 1.2347000000e+00 1.3926000000e+00 7421 1.2110000000e+00 1.3614000000e+00 7422 1.1962000000e+00 1.3963000000e+00 7423 1.1739000000e+00 1.3667000000e+00 7424 1.1597000000e+00 1.4001000000e+00 7425 1.1803000000e+00 1.4299000000e+00 7426 1.2174000000e+00 1.4274000000e+00 7427 1.2002000000e+00 1.4606000000e+00 7428 1.2193000000e+00 1.4919000000e+00 7429 1.2377000000e+00 1.5232000000e+00 7430 1.2557000000e+00 1.5544000000e+00 7431 1.2201000000e+00 1.5546000000e+00 7432 1.2380000000e+00 1.5855000000e+00 7433 1.2735000000e+00 1.5854000000e+00 7434 1.1845000000e+00 1.5551000000e+00 7435 1.1492000000e+00 1.5558000000e+00 7436 1.1322000000e+00 1.5867000000e+00 7437 1.1152000000e+00 1.6174000000e+00 7438 1.0974000000e+00 1.5873000000e+00 7439 1.0628000000e+00 1.5878000000e+00 7440 1.0286000000e+00 1.5880000000e+00 7441 1.0453000000e+00 1.5582000000e+00 7442 1.0117000000e+00 1.5584000000e+00 7443 9.7794000000e-01 1.5575000000e+00 7444 9.4332000000e-01 1.5563000000e+00 7445 9.0806000000e-01 1.5555000000e+00 7446 8.7252000000e-01 1.5550000000e+00 7447 8.9091000000e-01 1.5243000000e+00 7448 8.5507000000e-01 1.5236000000e+00 7449 8.3682000000e-01 1.5546000000e+00 7450 8.0100000000e-01 1.5545000000e+00 7451 7.6533000000e-01 1.5549000000e+00 7452 7.4799000000e-01 1.5860000000e+00 7453 7.1273000000e-01 1.5864000000e+00 7454 6.9479000000e-01 1.5559000000e+00 7455 6.5935000000e-01 1.5566000000e+00 7456 6.2425000000e-01 1.5579000000e+00 7457 5.9004000000e-01 1.5593000000e+00 7458 5.5656000000e-01 1.5597000000e+00 7459 5.2284000000e-01 1.5589000000e+00 7460 5.0711000000e-01 1.5278000000e+00 7461 5.4096000000e-01 1.5305000000e+00 7462 5.2858000000e-01 1.4964000000e+00 7463 4.9050000000e-01 1.4963000000e+00 7464 4.7153000000e-01 1.5268000000e+00 7465 4.5440000000e-01 1.4951000000e+00 7466 4.1828000000e-01 1.4955000000e+00 7467 4.0052000000e-01 1.4649000000e+00 7468 3.6508000000e-01 1.4651000000e+00 7469 3.4735000000e-01 1.4346000000e+00 7470 3.6481000000e-01 1.4039000000e+00 7471 3.4693000000e-01 1.3732000000e+00 7472 3.2850000000e-01 1.3438000000e+00 7473 3.4112000000e-01 1.3168000000e+00 7474 3.3303000000e-01 1.2835000000e+00 7475 3.6539000000e-01 1.3399000000e+00 7476 3.9629000000e-01 1.3490000000e+00 7477 4.1530000000e-01 1.3716000000e+00 7478 4.4110000000e-01 1.4021000000e+00 7479 4.7845000000e-01 1.3849000000e+00 7480 4.7649000000e-01 1.4218000000e+00 7481 5.0675000000e-01 1.4408000000e+00 7482 4.7432000000e-01 1.4609000000e+00 7483 5.0703000000e-01 1.4709000000e+00 7484 5.5787000000e-01 1.5084000000e+00 7485 5.8547000000e-01 1.5027000000e+00 7486 6.1982000000e-01 1.4968000000e+00 7487 6.3563000000e-01 1.4587000000e+00 7488 6.6831000000e-01 1.4348000000e+00 7489 6.7120000000e-01 1.4659000000e+00 7490 6.9896000000e-01 1.4521000000e+00 7491 6.9923000000e-01 1.4170000000e+00 7492 6.6859000000e-01 1.3986000000e+00 7493 7.0007000000e-01 1.3815000000e+00 7494 4.3585000000e-01 1.4646000000e+00 7495 4.1836000000e-01 1.4344000000e+00 7496 3.8279000000e-01 1.4344000000e+00 7497 4.0065000000e-01 1.4033000000e+00 7498 3.8156000000e-01 1.3735000000e+00 7499 4.4923000000e-01 1.4368000000e+00 7500 1.6074000000e-02 6.4949000000e-02 7501 -3.2786000000e-03 9.2627000000e-02 7502 -1.8415000000e-02 6.1480000000e-02 7503 -3.5865000000e-02 8.9702000000e-02 7504 -2.1140000000e-02 1.1514000000e-01 7505 9.3557000000e-03 1.2755000000e-01 7506 3.1509000000e-02 1.5154000000e-01 7507 5.8357000000e-02 1.5541000000e-01 7508 8.8331000000e-02 1.6055000000e-01 7509 6.9171000000e-02 1.7953000000e-01 7510 9.4435000000e-02 1.9134000000e-01 7511 1.0035000000e+00 8.9369000000e-01 7512 1.0061000000e+00 8.5857000000e-01 7513 1.0351000000e+00 8.7902000000e-01 7514 1.0379000000e+00 8.4355000000e-01 7515 1.0086000000e+00 8.2314000000e-01 7516 9.7705000000e-01 8.3839000000e-01 7517 9.7934000000e-01 8.0305000000e-01 7518 1.0108000000e+00 7.8749000000e-01 7519 9.8141000000e-01 7.6758000000e-01 7520 9.5018000000e-01 7.8320000000e-01 7521 9.5213000000e-01 7.4761000000e-01 7522 9.2123000000e-01 7.6381000000e-01 7523 9.1901000000e-01 7.9868000000e-01 7524 8.9026000000e-01 7.7907000000e-01 7525 8.9276000000e-01 7.4460000000e-01 7526 9.2304000000e-01 7.2965000000e-01 7527 8.9608000000e-01 7.1144000000e-01 7528 8.6422000000e-01 7.2422000000e-01 7529 8.6169000000e-01 7.5936000000e-01 7530 8.3314000000e-01 7.3993000000e-01 7531 8.3136000000e-01 7.0117000000e-01 7532 8.0757000000e-01 7.2582000000e-01 7533 8.0749000000e-01 6.6719000000e-01 7534 7.8477000000e-01 6.3664000000e-01 7535 7.4753000000e-01 6.4132000000e-01 7536 7.1034000000e-01 6.4687000000e-01 7537 7.9937000000e-01 6.0195000000e-01 7538 8.3576000000e-01 5.9744000000e-01 7539 8.7122000000e-01 5.9252000000e-01 7540 8.5808000000e-01 6.2633000000e-01 7541 8.9356000000e-01 6.2032000000e-01 7542 8.8107000000e-01 6.5423000000e-01 7543 8.4501000000e-01 6.6160000000e-01 7544 8.2176000000e-01 6.3186000000e-01 7545 8.7024000000e-01 6.8879000000e-01 7546 9.0366000000e-01 6.8006000000e-01 7547 9.1579000000e-01 6.4822000000e-01 7548 9.3623000000e-01 6.7631000000e-01 7549 9.5094000000e-01 6.4424000000e-01 7550 9.2927000000e-01 6.1410000000e-01 7551 9.6600000000e-01 6.1019000000e-01 7552 9.4339000000e-01 5.7506000000e-01 7553 9.0592000000e-01 5.8650000000e-01 7554 8.8407000000e-01 5.6035000000e-01 7555 8.9895000000e-01 5.3000000000e-01 7556 9.3749000000e-01 5.3125000000e-01 7557 9.1397000000e-01 5.5664000000e-01 7558 9.6822000000e-01 5.4891000000e-01 7559 9.7742000000e-01 5.1362000000e-01 7560 9.4600000000e-01 4.9610000000e-01 7561 9.6873000000e-01 4.7412000000e-01 7562 9.6135000000e-01 4.3970000000e-01 7563 9.8631000000e-01 4.1867000000e-01 7564 9.8387000000e-01 3.9101000000e-01 7565 9.9241000000e-01 4.4984000000e-01 7566 1.0033000000e+00 4.8229000000e-01 7567 1.0237000000e+00 4.5469000000e-01 7568 1.0111000000e+00 4.2953000000e-01 7569 1.0386000000e+00 4.2581000000e-01 7570 1.0576000000e+00 4.5491000000e-01 7571 1.0929000000e+00 4.5226000000e-01 7572 1.1281000000e+00 4.4878000000e-01 7573 1.1422000000e+00 4.1590000000e-01 7574 1.1632000000e+00 4.4433000000e-01 7575 1.1764000000e+00 4.1152000000e-01 7576 1.1970000000e+00 4.3820000000e-01 7577 1.1863000000e+00 4.7019000000e-01 7578 1.2168000000e+00 4.6223000000e-01 7579 1.2290000000e+00 4.3366000000e-01 7580 1.2610000000e+00 4.3142000000e-01 7581 1.2937000000e+00 4.3050000000e-01 7582 1.3274000000e+00 4.2993000000e-01 7583 1.3452000000e+00 3.9900000000e-01 7584 1.3806000000e+00 3.9846000000e-01 7585 1.3622000000e+00 4.2975000000e-01 7586 1.3979000000e+00 4.2949000000e-01 7587 1.3789000000e+00 4.6150000000e-01 7588 1.4159000000e+00 4.6063000000e-01 7589 1.4349000000e+00 4.9154000000e-01 7590 1.4711000000e+00 4.8931000000e-01 7591 1.5068000000e+00 4.8698000000e-01 7592 1.5231000000e+00 4.5512000000e-01 7593 1.5580000000e+00 4.5260000000e-01 7594 1.5735000000e+00 4.2116000000e-01 7595 1.5929000000e+00 4.4951000000e-01 7596 1.6078000000e+00 4.1720000000e-01 7597 1.5879000000e+00 3.9070000000e-01 7598 1.6210000000e+00 3.8396000000e-01 7599 1.5992000000e+00 3.6429000000e-01 7600 1.5706000000e+00 3.6444000000e-01 7601 1.7782000000e+00 1.4640000000e+00 7602 1.7381000000e+00 1.4622000000e+00 7603 1.7560000000e+00 1.4325000000e+00 7604 1.7266000000e+00 1.4348000000e+00 7605 1.6991000000e+00 1.4546000000e+00 7606 1.6581000000e+00 1.4595000000e+00 7607 1.6216000000e+00 1.4625000000e+00 7608 1.6367000000e+00 1.4305000000e+00 7609 1.6718000000e+00 1.4258000000e+00 7610 1.6504000000e+00 1.3989000000e+00 7611 1.6165000000e+00 1.4023000000e+00 7612 1.5967000000e+00 1.3740000000e+00 7613 1.6312000000e+00 1.3714000000e+00 7614 1.6125000000e+00 1.3422000000e+00 7615 1.6476000000e+00 1.3416000000e+00 7616 1.6639000000e+00 1.3696000000e+00 7617 1.6809000000e+00 1.3430000000e+00 7618 1.6665000000e+00 1.3132000000e+00 7619 1.6305000000e+00 1.3104000000e+00 7620 1.5930000000e+00 1.3111000000e+00 7621 1.5757000000e+00 1.3444000000e+00 7622 1.5620000000e+00 1.3779000000e+00 7623 1.5296000000e+00 1.3839000000e+00 7624 1.5057000000e+00 1.3634000000e+00 7625 1.4755000000e+00 1.3492000000e+00 7626 1.4489000000e+00 1.3383000000e+00 7627 1.4687000000e+00 1.3168000000e+00 7628 1.4549000000e+00 1.2861000000e+00 7629 1.4395000000e+00 1.2554000000e+00 7630 1.4748000000e+00 1.2576000000e+00 7631 1.4592000000e+00 1.2258000000e+00 7632 1.4234000000e+00 1.2242000000e+00 7633 1.4066000000e+00 1.1928000000e+00 7634 1.3704000000e+00 1.1920000000e+00 7635 1.3341000000e+00 1.1914000000e+00 7636 1.3532000000e+00 1.1604000000e+00 7637 1.3166000000e+00 1.1596000000e+00 7638 1.3360000000e+00 1.1284000000e+00 7639 1.2991000000e+00 1.1274000000e+00 7640 1.2797000000e+00 1.1590000000e+00 7641 1.2974000000e+00 1.1910000000e+00 7642 1.3154000000e+00 1.2227000000e+00 7643 1.2971000000e+00 1.2544000000e+00 7644 1.2598000000e+00 1.2551000000e+00 7645 1.2412000000e+00 1.2889000000e+00 7646 1.2250000000e+00 1.3249000000e+00 7647 1.1867000000e+00 1.3314000000e+00 7648 1.1511000000e+00 1.3392000000e+00 7649 1.1388000000e+00 1.3718000000e+00 7650 1.1248000000e+00 1.4033000000e+00 7651 1.1444000000e+00 1.4323000000e+00 7652 1.1639000000e+00 1.4623000000e+00 7653 1.1831000000e+00 1.4929000000e+00 7654 1.2018000000e+00 1.5237000000e+00 7655 1.1661000000e+00 1.5245000000e+00 7656 1.1307000000e+00 1.5256000000e+00 7657 1.1473000000e+00 1.4941000000e+00 7658 1.1119000000e+00 1.4955000000e+00 7659 1.0956000000e+00 1.5267000000e+00 7660 1.1141000000e+00 1.5566000000e+00 7661 1.0794000000e+00 1.5575000000e+00 7662 1.0611000000e+00 1.5281000000e+00 7663 1.0280000000e+00 1.5297000000e+00 7664 9.9599000000e-01 1.5289000000e+00 7665 9.6223000000e-01 1.5263000000e+00 7666 9.2668000000e-01 1.5249000000e+00 7667 9.4612000000e-01 1.4934000000e+00 7668 9.0938000000e-01 1.4935000000e+00 7669 9.2682000000e-01 1.4625000000e+00 7670 8.9204000000e-01 1.4631000000e+00 7671 8.7368000000e-01 1.4930000000e+00 7672 8.5716000000e-01 1.4615000000e+00 7673 8.3748000000e-01 1.4917000000e+00 7674 8.1892000000e-01 1.4573000000e+00 7675 8.0100000000e-01 1.4917000000e+00 7676 8.1900000000e-01 1.5232000000e+00 7677 7.8256000000e-01 1.5231000000e+00 7678 7.4697000000e-01 1.5247000000e+00 7679 7.6204000000e-01 1.4895000000e+00 7680 7.2940000000e-01 1.4998000000e+00 7681 7.1238000000e-01 1.5251000000e+00 7682 7.3004000000e-01 1.5555000000e+00 7683 6.7667000000e-01 1.5247000000e+00 7684 6.9637000000e-01 1.4902000000e+00 7685 6.5669000000e-01 1.4938000000e+00 7686 6.4038000000e-01 1.5265000000e+00 7687 6.0546000000e-01 1.5291000000e+00 7688 5.7273000000e-01 1.5316000000e+00 7689 7.2922000000e-01 1.4698000000e+00 7690 7.2937000000e-01 1.4348000000e+00 7691 7.3002000000e-01 1.4000000000e+00 7692 7.5914000000e-01 1.4522000000e+00 7693 7.8595000000e-01 1.4653000000e+00 7694 8.4391000000e-01 1.4348000000e+00 7695 8.7688000000e-01 1.4293000000e+00 7696 9.0879000000e-01 1.4099000000e+00 7697 9.3997000000e-01 1.3950000000e+00 7698 9.3682000000e-01 1.4296000000e+00 7699 9.6877000000e-01 1.4149000000e+00 7700 9.7155000000e-01 1.3801000000e+00 7701 9.4273000000e-01 1.3599000000e+00 7702 9.4505000000e-01 1.3244000000e+00 7703 9.1534000000e-01 1.3050000000e+00 7704 9.4656000000e-01 1.2888000000e+00 7705 9.7691000000e-01 1.3078000000e+00 7706 9.7768000000e-01 1.2717000000e+00 7707 9.7530000000e-01 1.3445000000e+00 7708 1.0077000000e+00 1.3274000000e+00 7709 1.0091000000e+00 1.2901000000e+00 7710 1.0086000000e+00 1.2532000000e+00 7711 9.7737000000e-01 1.2366000000e+00 7712 1.0060000000e+00 1.2179000000e+00 7713 1.0367000000e+00 1.2329000000e+00 7714 1.0343000000e+00 1.1982000000e+00 7715 1.0027000000e+00 1.1834000000e+00 7716 9.7637000000e-01 1.2033000000e+00 7717 9.4813000000e-01 1.2196000000e+00 7718 9.4749000000e-01 1.2537000000e+00 7719 9.4929000000e-01 1.1872000000e+00 7720 9.2261000000e-01 1.1683000000e+00 7721 9.5395000000e-01 1.1552000000e+00 7722 9.5929000000e-01 1.1206000000e+00 7723 9.9155000000e-01 1.1459000000e+00 7724 9.9265000000e-01 1.1047000000e+00 7725 9.6191000000e-01 1.0840000000e+00 7726 1.0244000000e+00 1.1228000000e+00 7727 1.0247000000e+00 1.0870000000e+00 7728 9.9412000000e-01 1.0678000000e+00 7729 1.3975000000e+00 4.9362000000e-01 7730 1.4180000000e+00 5.2478000000e-01 7731 1.4546000000e+00 5.2190000000e-01 7732 1.4904000000e+00 5.1922000000e-01 7733 1.4744000000e+00 5.5169000000e-01 7734 1.4386000000e+00 5.5497000000e-01 7735 1.4589000000e+00 5.8417000000e-01 7736 1.4938000000e+00 5.8107000000e-01 7737 1.5098000000e+00 5.4894000000e-01 7738 1.5260000000e+00 5.1665000000e-01 7739 1.5421000000e+00 4.8448000000e-01 7740 1.5773000000e+00 4.8172000000e-01 7741 1.6126000000e+00 4.7867000000e-01 7742 1.5968000000e+00 5.1122000000e-01 7743 1.6322000000e+00 5.0829000000e-01 7744 1.6480000000e+00 4.7555000000e-01 7745 1.6281000000e+00 4.4592000000e-01 7746 1.6436000000e+00 4.1220000000e-01 7747 1.6638000000e+00 4.4260000000e-01 7748 1.6835000000e+00 4.7267000000e-01 7749 1.6994000000e+00 4.4028000000e-01 7750 1.6804000000e+00 4.0918000000e-01 7751 1.6602000000e+00 3.7452000000e-01 7752 1.7000000000e+00 3.7603000000e-01 7753 1.6821000000e+00 3.5700000000e-01 7754 1.7254000000e+00 3.5848000000e-01 7755 1.7539000000e+00 3.6027000000e-01 7756 1.7886000000e+00 3.6302000000e-01 7757 1.7666000000e+00 3.9155000000e-01 7758 1.7343000000e+00 3.8441000000e-01 7759 1.7154000000e+00 4.0969000000e-01 7760 1.7444000000e+00 4.1065000000e-01 7761 1.7717000000e+00 4.2997000000e-01 7762 1.8064000000e+00 4.0114000000e-01 7763 1.8264000000e+00 3.6273000000e-01 7764 1.8069000000e+00 3.3099000000e-01 7765 1.8432000000e+00 3.2877000000e-01 7766 1.8584000000e+00 2.9652000000e-01 7767 1.8730000000e+00 2.6595000000e-01 7768 1.8883000000e+00 2.3676000000e-01 7769 1.9048000000e+00 2.6407000000e-01 7770 1.9210000000e+00 2.3681000000e-01 7771 1.9354000000e+00 2.6525000000e-01 7772 1.9540000000e+00 2.3847000000e-01 7773 1.9385000000e+00 2.0848000000e-01 7774 1.9048000000e+00 2.0793000000e-01 7775 1.9221000000e+00 1.7881000000e-01 7776 1.9564000000e+00 1.7934000000e-01 7777 1.9727000000e+00 2.0962000000e-01 7778 1.9910000000e+00 1.8005000000e-01 7779 2.0260000000e+00 1.8070000000e-01 7780 2.0429000000e+00 2.1148000000e-01 7781 2.0601000000e+00 2.4249000000e-01 7782 2.0778000000e+00 2.7343000000e-01 7783 2.0958000000e+00 3.0397000000e-01 7784 2.1313000000e+00 3.0337000000e-01 7785 2.1665000000e+00 3.0305000000e-01 7786 2.1842000000e+00 2.7266000000e-01 7787 2.2017000000e+00 3.0292000000e-01 7788 2.2194000000e+00 2.7260000000e-01 7789 2.2020000000e+00 2.4229000000e-01 7790 2.2197000000e+00 2.1195000000e-01 7791 2.2023000000e+00 1.8161000000e-01 7792 2.2375000000e+00 1.8164000000e-01 7793 2.2549000000e+00 2.1197000000e-01 7794 2.2372000000e+00 2.4228000000e-01 7795 2.2724000000e+00 2.4228000000e-01 7796 2.2901000000e+00 2.1198000000e-01 7797 2.2727000000e+00 1.8167000000e-01 7798 2.2552000000e+00 1.5135000000e-01 7799 2.2903000000e+00 1.5138000000e-01 7800 2.3254000000e+00 1.5141000000e-01 7801 2.3429000000e+00 1.8171000000e-01 7802 2.3604000000e+00 2.1202000000e-01 7803 2.3427000000e+00 2.4231000000e-01 7804 2.3602000000e+00 2.7262000000e-01 7805 2.3777000000e+00 3.0292000000e-01 7806 2.3250000000e+00 2.7262000000e-01 7807 2.3425000000e+00 3.0294000000e-01 7808 2.3600000000e+00 3.3326000000e-01 7809 2.3952000000e+00 3.3321000000e-01 7810 2.4127000000e+00 3.6345000000e-01 7811 2.4302000000e+00 3.9363000000e-01 7812 2.4653000000e+00 3.9346000000e-01 7813 2.5002000000e+00 3.9337000000e-01 7814 2.5351000000e+00 3.9337000000e-01 7815 2.5528000000e+00 3.6327000000e-01 7816 2.5700000000e+00 3.9347000000e-01 7817 2.5872000000e+00 4.2370000000e-01 7818 2.6042000000e+00 4.5400000000e-01 7819 2.6393000000e+00 4.5442000000e-01 7820 2.6745000000e+00 4.5481000000e-01 7821 2.6917000000e+00 4.8548000000e-01 7822 2.7272000000e+00 4.8581000000e-01 7823 2.7626000000e+00 4.8607000000e-01 7824 2.7981000000e+00 4.8632000000e-01 7825 2.8160000000e+00 4.5589000000e-01 7826 2.8337000000e+00 4.8658000000e-01 7827 2.8514000000e+00 4.5615000000e-01 7828 2.8337000000e+00 4.2548000000e-01 7829 2.8514000000e+00 3.9509000000e-01 7830 2.8690000000e+00 3.6471000000e-01 7831 2.9043000000e+00 3.6492000000e-01 7832 2.8867000000e+00 3.9532000000e-01 7833 2.9221000000e+00 3.9558000000e-01 7834 2.9397000000e+00 3.6515000000e-01 7835 2.9751000000e+00 3.6540000000e-01 7836 3.0105000000e+00 3.6565000000e-01 7837 3.0281000000e+00 3.3510000000e-01 7838 3.0636000000e+00 3.3526000000e-01 7839 3.0991000000e+00 3.3551000000e-01 7840 3.1170000000e+00 3.0499000000e-01 7841 3.1337000000e+00 2.7358000000e-01 7842 3.1684000000e+00 2.7310000000e-01 7843 3.1847000000e+00 3.0239000000e-01 7844 3.1968000000e+00 3.3126000000e-01 7845 3.1693000000e+00 3.2696000000e-01 7846 3.1380000000e+00 3.3886000000e-01 7847 3.1407000000e+00 3.7888000000e-01 7848 3.1407000000e+00 4.1613000000e-01 7849 3.1423000000e+00 4.5180000000e-01 7850 3.1423000000e+00 4.8638000000e-01 7851 3.1727000000e+00 5.0460000000e-01 7852 3.1724000000e+00 5.4016000000e-01 7853 3.2032000000e+00 5.5935000000e-01 7854 3.2354000000e+00 5.8250000000e-01 7855 3.2209000000e+00 6.1072000000e-01 7856 3.1960000000e+00 6.2897000000e-01 7857 3.1802000000e+00 6.7008000000e-01 7858 3.1834000000e+00 7.1197000000e-01 7859 3.1848000000e+00 7.4845000000e-01 7860 3.1548000000e+00 7.6590000000e-01 7861 3.1545000000e+00 8.0099000000e-01 7862 3.1542000000e+00 8.3683000000e-01 7863 3.1543000000e+00 8.7305000000e-01 7864 3.1549000000e+00 9.0923000000e-01 7865 3.1560000000e+00 9.4501000000e-01 7866 3.1571000000e+00 9.8030000000e-01 7867 3.1579000000e+00 1.0152000000e+00 7868 3.1281000000e+00 1.0328000000e+00 7869 3.1283000000e+00 1.0672000000e+00 7870 3.1279000000e+00 1.1018000000e+00 7871 3.0970000000e+00 1.1187000000e+00 7872 3.0959000000e+00 1.1541000000e+00 7873 3.0952000000e+00 1.1899000000e+00 7874 3.0634000000e+00 1.2080000000e+00 7875 3.0633000000e+00 1.2443000000e+00 7876 3.0317000000e+00 1.2632000000e+00 7877 3.0318000000e+00 1.2996000000e+00 7878 3.0003000000e+00 1.3192000000e+00 7879 2.9686000000e+00 1.3394000000e+00 7880 2.9692000000e+00 1.3762000000e+00 7881 2.9380000000e+00 1.3979000000e+00 7882 2.9036000000e+00 1.3833000000e+00 7883 2.8647000000e+00 1.3666000000e+00 7884 2.8244000000e+00 1.3647000000e+00 7885 2.7899000000e+00 1.3575000000e+00 7886 2.7557000000e+00 1.3492000000e+00 7887 2.7214000000e+00 1.3412000000e+00 7888 2.6953000000e+00 1.3678000000e+00 7889 2.6621000000e+00 1.3609000000e+00 7890 2.6287000000e+00 1.3551000000e+00 7891 2.5946000000e+00 1.3503000000e+00 7892 2.5594000000e+00 1.3460000000e+00 7893 2.5231000000e+00 1.3419000000e+00 7894 2.4858000000e+00 1.3374000000e+00 7895 2.4603000000e+00 1.3682000000e+00 7896 2.4229000000e+00 1.3627000000e+00 7897 2.3831000000e+00 1.3595000000e+00 7898 2.3548000000e+00 1.3418000000e+00 7899 2.3196000000e+00 1.3417000000e+00 7900 2.2856000000e+00 1.3236000000e+00 7901 2.2577000000e+00 1.3379000000e+00 7902 2.2250000000e+00 1.3314000000e+00 7903 2.2111000000e+00 1.3634000000e+00 7904 2.1875000000e+00 1.3446000000e+00 7905 2.1537000000e+00 1.3612000000e+00 7906 2.1234000000e+00 1.3411000000e+00 7907 2.0894000000e+00 1.3588000000e+00 7908 2.0580000000e+00 1.3404000000e+00 7909 2.0263000000e+00 1.3614000000e+00 7910 1.9924000000e+00 1.3476000000e+00 7911 1.9593000000e+00 1.3337000000e+00 7912 1.9349000000e+00 1.3526000000e+00 7913 1.9004000000e+00 1.3543000000e+00 7914 1.8651000000e+00 1.3728000000e+00 7915 1.8588000000e+00 1.4073000000e+00 7916 1.8248000000e+00 1.4176000000e+00 7917 1.8148000000e+00 1.4512000000e+00 7918 1.7904000000e+00 1.4265000000e+00 7919 1.8013000000e+00 1.3929000000e+00 7920 1.7676000000e+00 1.4003000000e+00 7921 1.7787000000e+00 1.3672000000e+00 7922 1.8123000000e+00 1.3607000000e+00 7923 1.7915000000e+00 1.3341000000e+00 7924 1.7555000000e+00 1.3402000000e+00 7925 1.7443000000e+00 1.3749000000e+00 7926 1.7352000000e+00 1.4074000000e+00 7927 1.7045000000e+00 1.4170000000e+00 7928 1.7123000000e+00 1.3851000000e+00 7929 1.6824000000e+00 1.3941000000e+00 7930 2.3775000000e+00 3.6357000000e-01 7931 2.3950000000e+00 3.9383000000e-01 7932 2.4127000000e+00 4.2400000000e-01 7933 2.3774000000e+00 4.2434000000e-01 7934 2.3952000000e+00 4.5454000000e-01 7935 2.4304000000e+00 4.5399000000e-01 7936 2.4478000000e+00 4.2368000000e-01 7937 2.4827000000e+00 4.2347000000e-01 7938 2.5175000000e+00 4.2341000000e-01 7939 2.5523000000e+00 4.2349000000e-01 7940 2.5694000000e+00 4.5363000000e-01 7941 2.5862000000e+00 4.8386000000e-01 7942 2.6211000000e+00 4.8447000000e-01 7943 2.6563000000e+00 4.8503000000e-01 7944 2.6734000000e+00 5.1587000000e-01 7945 2.7090000000e+00 5.1630000000e-01 7946 2.7446000000e+00 5.1657000000e-01 7947 2.7802000000e+00 5.1678000000e-01 7948 2.8158000000e+00 5.1703000000e-01 7949 2.8514000000e+00 5.1733000000e-01 7950 2.8692000000e+00 4.8688000000e-01 7951 2.8869000000e+00 4.5643000000e-01 7952 2.8691000000e+00 4.2573000000e-01 7953 2.9045000000e+00 4.2600000000e-01 7954 2.9400000000e+00 4.2630000000e-01 7955 2.9575000000e+00 3.9586000000e-01 7956 2.9929000000e+00 3.9616000000e-01 7957 3.0284000000e+00 3.9649000000e-01 7958 3.0461000000e+00 3.6587000000e-01 7959 3.0818000000e+00 3.6582000000e-01 7960 3.1128000000e+00 3.6341000000e-01 7961 3.1519000000e+00 3.0332000000e-01 7962 1.0540000000e+00 1.1057000000e+00 7963 1.0565000000e+00 1.0704000000e+00 7964 1.0262000000e+00 1.0507000000e+00 7965 1.0260000000e+00 1.0155000000e+00 7966 1.0271000000e+00 9.8215000000e-01 7967 1.0299000000e+00 9.4843000000e-01 7968 1.0322000000e+00 9.1390000000e-01 7969 1.0636000000e+00 8.9989000000e-01 7970 1.0672000000e+00 8.6446000000e-01 7971 1.0701000000e+00 8.2830000000e-01 7972 1.0404000000e+00 8.0770000000e-01 7973 1.0425000000e+00 7.7167000000e-01 7974 1.0724000000e+00 7.9194000000e-01 7975 1.0743000000e+00 7.5556000000e-01 7976 1.0441000000e+00 7.3547000000e-01 7977 1.0127000000e+00 7.5176000000e-01 7978 9.8335000000e-01 7.3229000000e-01 7979 1.0138000000e+00 7.1597000000e-01 7980 1.0454000000e+00 6.9860000000e-01 7981 1.0761000000e+00 7.1914000000e-01 7982 1.0783000000e+00 6.8300000000e-01 7983 1.1083000000e+00 7.0283000000e-01 7984 1.1097000000e+00 6.6701000000e-01 7985 1.0811000000e+00 6.4839000000e-01 7986 1.0492000000e+00 6.6193000000e-01 7987 1.0110000000e+00 6.7597000000e-01 7988 9.8652000000e-01 7.0165000000e-01 7989 9.5353000000e-01 7.0910000000e-01 7990 9.2251000000e-01 7.0132000000e-01 7991 9.7093000000e-01 6.7484000000e-01 7992 9.8739000000e-01 6.4174000000e-01 7993 1.0235000000e+00 6.3694000000e-01 7994 1.0021000000e+00 6.0818000000e-01 7995 9.8289000000e-01 5.7774000000e-01 7996 9.9994000000e-01 5.4683000000e-01 7997 1.0177000000e+00 5.7722000000e-01 7998 1.0351000000e+00 5.4767000000e-01 7999 1.0183000000e+00 5.1575000000e-01 8000 1.0394000000e+00 4.8567000000e-01 8001 1.0786000000e+00 4.8799000000e-01 8002 1.1133000000e+00 4.7910000000e-01 8003 1.1496000000e+00 4.8133000000e-01 8004 1.1833000000e+00 5.0766000000e-01 8005 1.2081000000e+00 4.8730000000e-01 8006 1.2342000000e+00 4.8498000000e-01 8007 1.2465000000e+00 4.5899000000e-01 8008 1.2772000000e+00 4.5990000000e-01 8009 1.3098000000e+00 4.6020000000e-01 8010 1.2919000000e+00 4.9654000000e-01 8011 1.3254000000e+00 4.8417000000e-01 8012 1.3434000000e+00 4.6016000000e-01 8013 1.3565000000e+00 4.9545000000e-01 8014 1.3806000000e+00 5.2792000000e-01 8015 1.4022000000e+00 5.5881000000e-01 8016 1.4236000000e+00 5.8856000000e-01 8017 1.4448000000e+00 6.1629000000e-01 8018 1.4783000000e+00 6.1249000000e-01 8019 1.5125000000e+00 6.1050000000e-01 8020 1.5290000000e+00 5.7870000000e-01 8021 1.5452000000e+00 5.4640000000e-01 8022 1.5645000000e+00 5.7642000000e-01 8023 1.5808000000e+00 5.4379000000e-01 8024 1.6003000000e+00 5.7382000000e-01 8025 1.6163000000e+00 5.4099000000e-01 8026 1.6519000000e+00 5.3810000000e-01 8027 1.6677000000e+00 5.0537000000e-01 8028 1.6360000000e+00 5.7091000000e-01 8029 1.6715000000e+00 5.6794000000e-01 8030 1.6874000000e+00 5.3522000000e-01 8031 1.7032000000e+00 5.0253000000e-01 8032 1.7189000000e+00 4.6990000000e-01 8033 1.7228000000e+00 5.3246000000e-01 8034 1.7387000000e+00 4.9975000000e-01 8035 1.7546000000e+00 4.6654000000e-01 8036 1.7341000000e+00 4.3781000000e-01 8037 2.1489000000e+00 3.3340000000e-01 8038 2.1839000000e+00 3.3318000000e-01 8039 2.2190000000e+00 3.3315000000e-01 8040 2.2368000000e+00 3.0289000000e-01 8041 2.2012000000e+00 3.6330000000e-01 8042 2.2363000000e+00 3.6342000000e-01 8043 2.2542000000e+00 3.3319000000e-01 8044 2.2720000000e+00 3.0291000000e-01 8045 2.2546000000e+00 2.7259000000e-01 8046 2.2898000000e+00 2.7260000000e-01 8047 2.3076000000e+00 2.4230000000e-01 8048 2.3253000000e+00 2.1200000000e-01 8049 2.3078000000e+00 1.8169000000e-01 8050 2.3597000000e+00 3.9401000000e-01 8051 2.3419000000e+00 4.2459000000e-01 8052 2.3597000000e+00 4.5508000000e-01 8053 2.3778000000e+00 4.8540000000e-01 8054 2.3419000000e+00 4.8622000000e-01 8055 2.3605000000e+00 5.1683000000e-01 8056 2.3962000000e+00 5.1529000000e-01 8057 2.4131000000e+00 4.8447000000e-01 8058 2.4312000000e+00 5.1395000000e-01 8059 2.4480000000e+00 4.8371000000e-01 8060 2.4652000000e+00 4.5357000000e-01 8061 2.5000000000e+00 4.5336000000e-01 8062 2.5346000000e+00 4.5339000000e-01 8063 2.5515000000e+00 4.8335000000e-01 8064 2.5680000000e+00 5.1340000000e-01 8065 2.6027000000e+00 5.1432000000e-01 8066 2.6379000000e+00 5.1521000000e-01 8067 2.6548000000e+00 5.4634000000e-01 8068 2.6907000000e+00 5.4694000000e-01 8069 2.7265000000e+00 5.4720000000e-01 8070 2.7622000000e+00 5.4733000000e-01 8071 2.7979000000e+00 5.4750000000e-01 8072 2.8335000000e+00 5.4777000000e-01 8073 2.8692000000e+00 5.4818000000e-01 8074 2.8872000000e+00 5.1770000000e-01 8075 2.9049000000e+00 4.8721000000e-01 8076 2.9224000000e+00 4.5674000000e-01 8077 2.9579000000e+00 4.5708000000e-01 8078 2.9753000000e+00 4.2664000000e-01 8079 3.0107000000e+00 4.2703000000e-01 8080 3.0458000000e+00 4.2730000000e-01 8081 3.0645000000e+00 3.9695000000e-01 8082 3.1046000000e+00 3.9796000000e-01 8083 3.1120000000e+00 4.3623000000e-01 8084 3.1138000000e+00 4.6879000000e-01 8085 3.1113000000e+00 5.0221000000e-01 8086 3.1414000000e+00 5.2157000000e-01 8087 3.1412000000e+00 5.5755000000e-01 8088 3.1722000000e+00 5.7483000000e-01 8089 3.2001000000e+00 5.9353000000e-01 8090 3.1729000000e+00 6.0477000000e-01 8091 3.1525000000e+00 6.3291000000e-01 8092 3.1440000000e+00 6.6717000000e-01 8093 3.1508000000e+00 6.9703000000e-01 8094 3.1539000000e+00 7.3144000000e-01 8095 3.1256000000e+00 7.4853000000e-01 8096 3.1243000000e+00 7.8204000000e-01 8097 3.1231000000e+00 8.1768000000e-01 8098 3.1223000000e+00 8.5437000000e-01 8099 3.1226000000e+00 8.9139000000e-01 8100 3.1241000000e+00 9.2788000000e-01 8101 3.1259000000e+00 9.6346000000e-01 8102 3.1273000000e+00 9.9833000000e-01 8103 3.0980000000e+00 1.0162000000e+00 8104 3.0985000000e+00 1.0501000000e+00 8105 3.0981000000e+00 1.0841000000e+00 8106 3.0673000000e+00 1.1003000000e+00 8107 3.0651000000e+00 1.1354000000e+00 8108 3.0638000000e+00 1.1717000000e+00 8109 3.0315000000e+00 1.1901000000e+00 8110 3.0316000000e+00 1.2268000000e+00 8111 3.0000000000e+00 1.2461000000e+00 8112 3.0002000000e+00 1.2826000000e+00 8113 2.9685000000e+00 1.3024000000e+00 8114 2.9363000000e+00 1.3228000000e+00 8115 2.9365000000e+00 1.3606000000e+00 8116 2.9029000000e+00 1.3441000000e+00 8117 2.8720000000e+00 1.3257000000e+00 8118 2.8440000000e+00 1.3397000000e+00 8119 2.8159000000e+00 1.3319000000e+00 8120 2.7829000000e+00 1.3226000000e+00 8121 2.7483000000e+00 1.3139000000e+00 8122 2.7133000000e+00 1.3065000000e+00 8123 2.6873000000e+00 1.3340000000e+00 8124 2.6532000000e+00 1.3277000000e+00 8125 2.6188000000e+00 1.3220000000e+00 8126 2.5838000000e+00 1.3168000000e+00 8127 2.5480000000e+00 1.3119000000e+00 8128 2.5113000000e+00 1.3069000000e+00 8129 2.4739000000e+00 1.3017000000e+00 8130 2.4480000000e+00 1.3324000000e+00 8131 2.4100000000e+00 1.3280000000e+00 8132 2.3780000000e+00 1.3256000000e+00 8133 2.3496000000e+00 1.3072000000e+00 8134 2.3135000000e+00 1.3060000000e+00 8135 2.2864000000e+00 1.2857000000e+00 8136 2.2562000000e+00 1.3086000000e+00 8137 2.2277000000e+00 1.2926000000e+00 8138 2.1937000000e+00 1.3079000000e+00 8139 2.1582000000e+00 1.3239000000e+00 8140 2.1274000000e+00 1.3029000000e+00 8141 2.0920000000e+00 1.3210000000e+00 8142 2.0588000000e+00 1.3010000000e+00 8143 2.0241000000e+00 1.3232000000e+00 8144 1.9882000000e+00 1.3095000000e+00 8145 1.9529000000e+00 1.2995000000e+00 8146 1.9263000000e+00 1.3243000000e+00 8147 1.8918000000e+00 1.3153000000e+00 8148 1.8639000000e+00 1.3387000000e+00 8149 1.8406000000e+00 1.3571000000e+00 8150 1.8338000000e+00 1.3848000000e+00 8151 1.8282000000e+00 1.3282000000e+00 8152 1.8042000000e+00 1.3065000000e+00 8153 1.7699000000e+00 1.3019000000e+00 8154 1.7322000000e+00 1.3141000000e+00 8155 1.7165000000e+00 1.3489000000e+00 8156 1.6996000000e+00 1.3168000000e+00 8157 1.6912000000e+00 1.3681000000e+00 8158 1.6875000000e+00 1.2876000000e+00 8159 1.6529000000e+00 1.2798000000e+00 8160 1.6109000000e+00 1.2746000000e+00 8161 1.5770000000e+00 1.2847000000e+00 8162 1.5517000000e+00 1.3104000000e+00 8163 1.5386000000e+00 1.3507000000e+00 8164 1.5073000000e+00 1.3243000000e+00 8165 1.4895000000e+00 1.2894000000e+00 8166 1.5102000000e+00 1.2608000000e+00 8167 1.4953000000e+00 1.2283000000e+00 8168 1.5318000000e+00 1.2319000000e+00 8169 1.5166000000e+00 1.1983000000e+00 8170 1.4796000000e+00 1.1955000000e+00 8171 1.4429000000e+00 1.1939000000e+00 8172 1.4627000000e+00 1.1629000000e+00 8173 1.4259000000e+00 1.1621000000e+00 8174 1.3896000000e+00 1.1613000000e+00 8175 1.3726000000e+00 1.1295000000e+00 8176 1.3558000000e+00 1.0974000000e+00 8177 1.3188000000e+00 1.0960000000e+00 8178 1.2815000000e+00 1.0949000000e+00 8179 1.2619000000e+00 1.1266000000e+00 8180 1.2426000000e+00 1.1583000000e+00 8181 1.2605000000e+00 1.1906000000e+00 8182 1.2786000000e+00 1.2228000000e+00 8183 1.2412000000e+00 1.2226000000e+00 8184 1.2214000000e+00 1.2553000000e+00 8185 1.1980000000e+00 1.2908000000e+00 8186 1.1612000000e+00 1.3057000000e+00 8187 1.1281000000e+00 1.3139000000e+00 8188 1.1177000000e+00 1.3455000000e+00 8189 1.1056000000e+00 1.3759000000e+00 8190 1.0909000000e+00 1.4054000000e+00 8191 1.1092000000e+00 1.4343000000e+00 8192 1.1282000000e+00 1.4640000000e+00 8193 1.0927000000e+00 1.4656000000e+00 8194 1.0765000000e+00 1.4971000000e+00 8195 1.0415000000e+00 1.4994000000e+00 8196 1.0562000000e+00 1.4670000000e+00 8197 1.0741000000e+00 1.4354000000e+00 8198 1.0379000000e+00 1.4348000000e+00 8199 1.0575000000e+00 1.4052000000e+00 8200 1.0744000000e+00 1.3782000000e+00 8201 1.0438000000e+00 1.3755000000e+00 8202 1.0239000000e+00 1.4019000000e+00 8203 1.0013000000e+00 1.4295000000e+00 8204 1.0145000000e+00 1.4699000000e+00 8205 9.9467000000e-01 1.3988000000e+00 8206 9.6824000000e-01 1.4567000000e+00 8207 9.8330000000e-01 1.4967000000e+00 8208 1.0127000000e+00 1.5049000000e+00 8209 3.0800000000e+00 4.2830000000e-01 8210 3.0905000000e+00 4.5440000000e-01 8211 3.0841000000e+00 4.8176000000e-01 8212 3.0781000000e+00 5.1629000000e-01 8213 3.1084000000e+00 5.3851000000e-01 8214 3.1091000000e+00 5.7668000000e-01 8215 3.1436000000e+00 5.9359000000e-01 8216 3.1140000000e+00 6.1479000000e-01 8217 3.1169000000e+00 6.5105000000e-01 8218 3.1195000000e+00 6.8476000000e-01 8219 3.1240000000e+00 7.1676000000e-01 8220 3.1011000000e+00 7.3332000000e-01 8221 3.0955000000e+00 7.6177000000e-01 8222 3.0925000000e+00 7.9740000000e-01 8223 3.0905000000e+00 8.3450000000e-01 8224 3.0892000000e+00 8.7282000000e-01 8225 3.0908000000e+00 9.1100000000e-01 8226 3.0943000000e+00 9.4726000000e-01 8227 3.0966000000e+00 9.8205000000e-01 8228 3.0680000000e+00 1.0004000000e+00 8229 3.0693000000e+00 1.0337000000e+00 8230 3.0691000000e+00 1.0666000000e+00 8231 3.0397000000e+00 1.0814000000e+00 8232 3.0345000000e+00 1.1155000000e+00 8233 3.0317000000e+00 1.1527000000e+00 8234 2.9990000000e+00 1.1721000000e+00 8235 2.9991000000e+00 1.2093000000e+00 8236 2.9684000000e+00 1.2295000000e+00 8237 2.9686000000e+00 1.2655000000e+00 8238 2.9367000000e+00 1.2851000000e+00 8239 2.9043000000e+00 1.3056000000e+00 8240 2.8729000000e+00 1.2890000000e+00 8241 2.8429000000e+00 1.3097000000e+00 8242 2.8112000000e+00 1.2975000000e+00 8243 2.7765000000e+00 1.2861000000e+00 8244 2.7400000000e+00 1.2779000000e+00 8245 2.7041000000e+00 1.2722000000e+00 8246 2.6785000000e+00 1.3001000000e+00 8247 2.6438000000e+00 1.2940000000e+00 8248 2.6088000000e+00 1.2882000000e+00 8249 2.5732000000e+00 1.2825000000e+00 8250 2.5371000000e+00 1.2770000000e+00 8251 2.5003000000e+00 1.2714000000e+00 8252 2.4629000000e+00 1.2656000000e+00 8253 2.4354000000e+00 1.2963000000e+00 8254 2.3926000000e+00 1.2912000000e+00 8255 2.3623000000e+00 1.2723000000e+00 8256 2.3265000000e+00 1.2716000000e+00 8257 2.2984000000e+00 1.2547000000e+00 8258 2.2697000000e+00 1.2552000000e+00 8259 2.2552000000e+00 1.2801000000e+00 8260 2.2362000000e+00 1.2581000000e+00 8261 2.2002000000e+00 1.2694000000e+00 8262 2.1635000000e+00 1.2856000000e+00 8263 2.1322000000e+00 1.2636000000e+00 8264 2.0954000000e+00 1.2818000000e+00 8265 2.0625000000e+00 1.2603000000e+00 8266 2.0209000000e+00 1.2791000000e+00 8267 1.9798000000e+00 1.2737000000e+00 8268 1.9452000000e+00 1.2654000000e+00 8269 1.9187000000e+00 1.2901000000e+00 8270 1.8843000000e+00 1.2798000000e+00 8271 1.8572000000e+00 1.3041000000e+00 8272 1.8280000000e+00 1.2957000000e+00 8273 1.8035000000e+00 1.2724000000e+00 8274 1.7644000000e+00 1.2633000000e+00 8275 1.7380000000e+00 1.2828000000e+00 8276 1.7138000000e+00 1.2938000000e+00 8277 1.7117000000e+00 1.2677000000e+00 8278 1.6809000000e+00 1.2540000000e+00 8279 1.6411000000e+00 1.2390000000e+00 8280 1.6009000000e+00 1.2376000000e+00 8281 1.5809000000e+00 1.2597000000e+00 8282 1.5486000000e+00 1.2674000000e+00 8283 1.5214000000e+00 1.2905000000e+00 8284 1.5671000000e+00 1.2342000000e+00 8285 1.5529000000e+00 1.2022000000e+00 8286 1.5391000000e+00 1.1680000000e+00 8287 1.5008000000e+00 1.1638000000e+00 8288 1.4820000000e+00 1.1306000000e+00 8289 1.4449000000e+00 1.1313000000e+00 8290 1.4088000000e+00 1.1307000000e+00 8291 1.3922000000e+00 1.0990000000e+00 8292 1.3762000000e+00 1.0667000000e+00 8293 1.3391000000e+00 1.0645000000e+00 8294 1.3015000000e+00 1.0631000000e+00 8295 1.2639000000e+00 1.0620000000e+00 8296 1.2441000000e+00 1.0940000000e+00 8297 1.2247000000e+00 1.1259000000e+00 8298 1.2066000000e+00 1.0934000000e+00 8299 1.2260000000e+00 1.0611000000e+00 8300 1.1883000000e+00 1.0608000000e+00 8301 1.1692000000e+00 1.0931000000e+00 8302 1.1511000000e+00 1.0606000000e+00 8303 1.1314000000e+00 1.0927000000e+00 8304 1.1504000000e+00 1.1253000000e+00 8305 1.1875000000e+00 1.1254000000e+00 8306 1.1688000000e+00 1.1571000000e+00 8307 1.2055000000e+00 1.1577000000e+00 8308 1.2233000000e+00 1.1900000000e+00 8309 1.2039000000e+00 1.2217000000e+00 8310 1.1842000000e+00 1.2527000000e+00 8311 1.1660000000e+00 1.2765000000e+00 8312 1.1375000000e+00 1.2823000000e+00 8313 1.1051000000e+00 1.2895000000e+00 8314 1.0959000000e+00 1.3213000000e+00 8315 1.0868000000e+00 1.3511000000e+00 8316 1.0617000000e+00 1.3558000000e+00 8317 1.0377000000e+00 1.3444000000e+00 8318 1.0078000000e+00 1.3675000000e+00 8319 1.8796000000e+00 3.2474000000e-01 8320 1.8921000000e+00 2.9272000000e-01 8321 1.9179000000e+00 3.1810000000e-01 8322 1.9191000000e+00 2.8704000000e-01 8323 1.9454000000e+00 2.9519000000e-01 8324 1.9681000000e+00 2.7007000000e-01 8325 1.9885000000e+00 2.4070000000e-01 8326 2.0075000000e+00 2.1076000000e-01 8327 2.0241000000e+00 2.4206000000e-01 8328 2.0043000000e+00 2.7334000000e-01 8329 2.0415000000e+00 2.7369000000e-01 8330 2.0599000000e+00 3.0488000000e-01 8331 2.0787000000e+00 3.3516000000e-01 8332 2.1139000000e+00 3.3398000000e-01 8333 2.1315000000e+00 3.6357000000e-01 8334 2.1663000000e+00 3.6328000000e-01 8335 2.1833000000e+00 3.9324000000e-01 8336 2.2183000000e+00 3.9353000000e-01 8337 2.2535000000e+00 3.9383000000e-01 8338 2.2353000000e+00 4.2400000000e-01 8339 2.2707000000e+00 4.2444000000e-01 8340 2.2889000000e+00 3.9403000000e-01 8341 2.2716000000e+00 3.6356000000e-01 8342 2.2895000000e+00 3.3325000000e-01 8343 2.3073000000e+00 3.0293000000e-01 8344 2.3247000000e+00 3.3328000000e-01 8345 2.3422000000e+00 3.6364000000e-01 8346 2.3243000000e+00 3.9409000000e-01 8347 2.3063000000e+00 4.2465000000e-01 8348 2.3239000000e+00 4.5540000000e-01 8349 2.3056000000e+00 4.8658000000e-01 8350 2.3239000000e+00 5.1809000000e-01 8351 2.3432000000e+00 5.4927000000e-01 8352 2.3797000000e+00 5.4678000000e-01 8353 2.4149000000e+00 5.4439000000e-01 8354 2.4490000000e+00 5.4284000000e-01 8355 2.4655000000e+00 5.1307000000e-01 8356 2.4826000000e+00 4.8324000000e-01 8357 2.4996000000e+00 5.1266000000e-01 8358 2.5170000000e+00 4.8312000000e-01 8359 2.5337000000e+00 5.1277000000e-01 8360 2.5497000000e+00 5.4237000000e-01 8361 2.5839000000e+00 5.4381000000e-01 8362 2.6191000000e+00 5.4527000000e-01 8363 2.6356000000e+00 5.7695000000e-01 8364 2.6720000000e+00 5.7790000000e-01 8365 2.7083000000e+00 5.7812000000e-01 8366 2.7443000000e+00 5.7805000000e-01 8367 2.7799000000e+00 5.7802000000e-01 8368 2.8155000000e+00 5.7819000000e-01 8369 2.8512000000e+00 5.7857000000e-01 8370 2.8870000000e+00 5.7917000000e-01 8371 2.9052000000e+00 5.4866000000e-01 8372 2.9230000000e+00 5.1807000000e-01 8373 2.9405000000e+00 4.8754000000e-01 8374 2.9589000000e+00 5.1839000000e-01 8375 2.9760000000e+00 4.8788000000e-01 8376 2.9932000000e+00 4.5749000000e-01 8377 3.0286000000e+00 4.5815000000e-01 8378 3.0628000000e+00 4.5697000000e-01 8379 3.0481000000e+00 4.9193000000e-01 8380 3.0479000000e+00 5.2661000000e-01 8381 3.0691000000e+00 5.5679000000e-01 8382 3.0781000000e+00 5.9891000000e-01 8383 3.0837000000e+00 6.3562000000e-01 8384 3.0879000000e+00 6.7109000000e-01 8385 3.0932000000e+00 7.0553000000e-01 8386 3.0673000000e+00 7.3406000000e-01 8387 3.0622000000e+00 7.7533000000e-01 8388 3.0593000000e+00 8.1320000000e-01 8389 3.0563000000e+00 8.5160000000e-01 8390 3.0523000000e+00 8.9419000000e-01 8391 3.0621000000e+00 9.3255000000e-01 8392 3.0658000000e+00 9.6673000000e-01 8393 3.0381000000e+00 9.8554000000e-01 8394 3.0401000000e+00 1.0185000000e+00 8395 3.0417000000e+00 1.0503000000e+00 8396 3.0182000000e+00 1.0644000000e+00 8397 3.0072000000e+00 1.0919000000e+00 8398 2.9958000000e+00 1.1315000000e+00 8399 2.9715000000e+00 1.1579000000e+00 8400 2.9639000000e+00 1.1916000000e+00 8401 2.9410000000e+00 1.2172000000e+00 8402 2.9374000000e+00 1.2478000000e+00 8403 2.9047000000e+00 1.2670000000e+00 8404 2.8720000000e+00 1.2521000000e+00 8405 2.8411000000e+00 1.2744000000e+00 8406 2.8076000000e+00 1.2602000000e+00 8407 2.7689000000e+00 1.2445000000e+00 8408 2.7290000000e+00 1.2440000000e+00 8409 2.6945000000e+00 1.2386000000e+00 8410 2.6692000000e+00 1.2661000000e+00 8411 2.6342000000e+00 1.2599000000e+00 8412 2.5989000000e+00 1.2537000000e+00 8413 2.5630000000e+00 1.2477000000e+00 8414 2.5266000000e+00 1.2417000000e+00 8415 2.4899000000e+00 1.2356000000e+00 8416 2.4530000000e+00 1.2292000000e+00 8417 2.4248000000e+00 1.2591000000e+00 8418 2.3886000000e+00 1.2500000000e+00 8419 2.3543000000e+00 1.2414000000e+00 8420 2.3210000000e+00 1.2337000000e+00 8421 2.2886000000e+00 1.2273000000e+00 8422 2.2536000000e+00 1.2254000000e+00 8423 2.2108000000e+00 1.2258000000e+00 8424 2.1695000000e+00 1.2459000000e+00 8425 2.1373000000e+00 1.2237000000e+00 8426 2.0999000000e+00 1.2415000000e+00 8427 2.0681000000e+00 1.2213000000e+00 8428 2.0321000000e+00 1.2371000000e+00 8429 2.0008000000e+00 1.2486000000e+00 8430 1.9709000000e+00 1.2401000000e+00 8431 1.9375000000e+00 1.2322000000e+00 8432 1.9118000000e+00 1.2562000000e+00 8433 1.8795000000e+00 1.2459000000e+00 8434 1.8471000000e+00 1.2670000000e+00 8435 1.8238000000e+00 1.2367000000e+00 8436 1.7872000000e+00 1.2352000000e+00 8437 1.7517000000e+00 1.2318000000e+00 8438 1.7360000000e+00 1.2556000000e+00 8439 1.7143000000e+00 1.2324000000e+00 8440 1.6780000000e+00 1.2174000000e+00 8441 1.6464000000e+00 1.1980000000e+00 8442 1.6799000000e+00 1.1811000000e+00 8443 1.6490000000e+00 1.1611000000e+00 8444 1.6127000000e+00 1.1777000000e+00 8445 1.6178000000e+00 1.2117000000e+00 8446 1.5877000000e+00 1.2063000000e+00 8447 1.5750000000e+00 1.1745000000e+00 8448 1.5930000000e+00 1.1514000000e+00 8449 1.5644000000e+00 1.1416000000e+00 8450 1.5251000000e+00 1.1274000000e+00 8451 1.4964000000e+00 1.0971000000e+00 8452 1.4623000000e+00 1.1011000000e+00 8453 1.4279000000e+00 1.1005000000e+00 8454 1.4123000000e+00 1.0693000000e+00 8455 1.3974000000e+00 1.0368000000e+00 8456 1.3602000000e+00 1.0329000000e+00 8457 1.3220000000e+00 1.0308000000e+00 8458 1.2841000000e+00 1.0300000000e+00 8459 1.3041000000e+00 9.9866000000e-01 8460 1.2670000000e+00 9.9689000000e-01 8461 1.2460000000e+00 1.0287000000e+00 8462 1.2072000000e+00 1.0275000000e+00 8463 1.1695000000e+00 1.0286000000e+00 8464 1.1337000000e+00 1.0288000000e+00 8465 1.1148000000e+00 1.0596000000e+00 8466 1.0902000000e+00 1.0913000000e+00 8467 1.1129000000e+00 1.1261000000e+00 8468 1.0778000000e+00 1.1286000000e+00 8469 1.0948000000e+00 1.1614000000e+00 8470 1.1327000000e+00 1.1571000000e+00 8471 1.1500000000e+00 1.1879000000e+00 8472 1.1864000000e+00 1.1891000000e+00 8473 1.1667000000e+00 1.2203000000e+00 8474 1.1493000000e+00 1.2512000000e+00 8475 1.1151000000e+00 1.2567000000e+00 8476 1.1263000000e+00 1.2190000000e+00 8477 1.0906000000e+00 1.2329000000e+00 8478 1.0818000000e+00 1.2650000000e+00 8479 1.0720000000e+00 1.2977000000e+00 8480 1.0656000000e+00 1.3301000000e+00 8481 1.0394000000e+00 1.3100000000e+00 8482 1.0445000000e+00 1.2703000000e+00 8483 1.0634000000e+00 1.2431000000e+00 8484 1.0637000000e+00 1.2145000000e+00 8485 1.0931000000e+00 1.1990000000e+00 8486 1.0638000000e+00 1.1810000000e+00 8487 1.0840000000e+00 1.0562000000e+00 8488 1.0602000000e+00 1.0313000000e+00 8489 1.0507000000e+00 9.9944000000e-01 8490 1.0604000000e+00 9.6923000000e-01 8491 1.0601000000e+00 9.3379000000e-01 8492 1.0837000000e+00 9.4950000000e-01 8493 1.0907000000e+00 9.2171000000e-01 8494 1.0962000000e+00 8.8633000000e-01 8495 1.1002000000e+00 8.4954000000e-01 8496 1.1027000000e+00 8.1250000000e-01 8497 1.1046000000e+00 7.7577000000e-01 8498 1.1350000000e+00 7.9585000000e-01 8499 1.1365000000e+00 7.5937000000e-01 8500 1.1064000000e+00 7.3927000000e-01 8501 1.1386000000e+00 7.2283000000e-01 8502 1.1406000000e+00 6.8560000000e-01 8503 1.1399000000e+00 6.4915000000e-01 8504 1.1101000000e+00 6.3296000000e-01 8505 1.0837000000e+00 6.1674000000e-01 8506 1.0558000000e+00 6.2860000000e-01 8507 1.0353000000e+00 6.0516000000e-01 8508 1.0508000000e+00 5.7765000000e-01 8509 1.0693000000e+00 5.5018000000e-01 8510 1.0547000000e+00 5.1832000000e-01 8511 1.0878000000e+00 5.2256000000e-01 8512 1.1025000000e+00 5.5151000000e-01 8513 1.0852000000e+00 5.8327000000e-01 8514 1.1205000000e+00 5.7958000000e-01 8515 1.1349000000e+00 5.4914000000e-01 8516 1.1543000000e+00 5.7706000000e-01 8517 1.1685000000e+00 5.4435000000e-01 8518 1.1886000000e+00 5.7313000000e-01 8519 1.2037000000e+00 5.4101000000e-01 8520 1.1466000000e+00 5.1799000000e-01 8521 1.1171000000e+00 5.2424000000e-01 8522 1.1046000000e+00 5.0303000000e-01 8523 1.1262000000e+00 5.0115000000e-01 8524 1.1746000000e+00 6.0457000000e-01 8525 1.2079000000e+00 6.0131000000e-01 8526 1.1388000000e+00 6.1154000000e-01 8527 1.1645000000e+00 6.3248000000e-01 8528 1.1937000000e+00 6.3180000000e-01 8529 1.2261000000e+00 6.2862000000e-01 8530 1.2413000000e+00 5.9932000000e-01 8531 1.2229000000e+00 5.7037000000e-01 8532 1.2575000000e+00 5.6826000000e-01 8533 1.2756000000e+00 5.9857000000e-01 8534 1.2927000000e+00 5.6664000000e-01 8535 1.3114000000e+00 5.9817000000e-01 8536 1.3286000000e+00 5.6522000000e-01 8537 1.3095000000e+00 5.3412000000e-01 8538 1.2739000000e+00 5.3549000000e-01 8539 1.2385000000e+00 5.3913000000e-01 8540 1.2532000000e+00 5.0821000000e-01 8541 1.2201000000e+00 5.1139000000e-01 8542 1.9619000000e+00 1.2076000000e+00 8543 1.9299000000e+00 1.2003000000e+00 8544 1.9054000000e+00 1.2235000000e+00 8545 1.8748000000e+00 1.2143000000e+00 8546 1.8537000000e+00 1.2342000000e+00 8547 1.8432000000e+00 1.2070000000e+00 8548 1.8081000000e+00 1.2042000000e+00 8549 1.7719000000e+00 1.2030000000e+00 8550 1.7363000000e+00 1.2009000000e+00 8551 1.7053000000e+00 1.1996000000e+00 8552 1.7179000000e+00 1.1661000000e+00 8553 1.6829000000e+00 1.1442000000e+00 8554 1.6517000000e+00 1.1250000000e+00 8555 1.6203000000e+00 1.1408000000e+00 8556 1.5927000000e+00 1.1225000000e+00 8557 1.5619000000e+00 1.1057000000e+00 8558 1.5308000000e+00 1.0852000000e+00 8559 1.5025000000e+00 1.0632000000e+00 8560 1.4758000000e+00 1.0752000000e+00 8561 1.4470000000e+00 1.0717000000e+00 8562 1.4330000000e+00 1.0408000000e+00 8563 1.4199000000e+00 1.0084000000e+00 8564 1.3833000000e+00 1.0029000000e+00 8565 1.3433000000e+00 9.9535000000e-01 8566 1.3192000000e+00 9.7196000000e-01 8567 1.2888000000e+00 9.6666000000e-01 8568 1.2509000000e+00 9.6269000000e-01 8569 1.2280000000e+00 9.9434000000e-01 8570 1.1853000000e+00 9.9127000000e-01 8571 1.1512000000e+00 1.0027000000e+00 8572 1.1172000000e+00 9.9322000000e-01 8573 1.0982000000e+00 1.0280000000e+00 8574 1.0797000000e+00 9.9894000000e-01 8575 1.0914000000e+00 9.7228000000e-01 8576 1.1160000000e+00 9.5037000000e-01 8577 1.1247000000e+00 9.1023000000e-01 8578 1.1309000000e+00 8.7201000000e-01 8579 1.1341000000e+00 8.3346000000e-01 8580 1.1661000000e+00 8.1486000000e-01 8581 1.1661000000e+00 7.7896000000e-01 8582 1.1683000000e+00 7.4335000000e-01 8583 1.1716000000e+00 7.0640000000e-01 8584 1.2006000000e+00 7.2871000000e-01 8585 1.2057000000e+00 6.9252000000e-01 8586 1.1756000000e+00 6.6523000000e-01 8587 1.2136000000e+00 6.5849000000e-01 8588 1.1077000000e+00 6.0484000000e-01 8589 1.0622000000e+00 6.0230000000e-01 8590 1.1505000000e+00 9.7124000000e-01 8591 1.1540000000e+00 9.3425000000e-01 8592 1.1790000000e+00 9.5544000000e-01 8593 1.1932000000e+00 9.2148000000e-01 8594 1.1605000000e+00 8.9654000000e-01 8595 1.1697000000e+00 8.5580000000e-01 8596 1.1973000000e+00 8.2839000000e-01 8597 1.1942000000e+00 7.9651000000e-01 8598 1.1965000000e+00 7.6364000000e-01 8599 1.2281000000e+00 7.5069000000e-01 8600 1.2337000000e+00 7.1552000000e-01 8601 1.2389000000e+00 6.8065000000e-01 8602 1.2417000000e+00 6.5199000000e-01 8603 1.2582000000e+00 6.2871000000e-01 8604 1.2927000000e+00 6.3024000000e-01 8605 1.3297000000e+00 6.3087000000e-01 8606 1.3488000000e+00 5.9747000000e-01 8607 1.3652000000e+00 5.6263000000e-01 8608 1.3443000000e+00 5.3230000000e-01 8609 1.3255000000e+00 5.0851000000e-01 8610 1.2606000000e+00 4.8173000000e-01 8611 1.3868000000e+00 5.9407000000e-01 8612 1.4103000000e+00 6.2308000000e-01 8613 1.4337000000e+00 6.4748000000e-01 8614 1.4640000000e+00 6.4200000000e-01 8615 1.4958000000e+00 6.4093000000e-01 8616 1.4786000000e+00 6.6875000000e-01 8617 1.5113000000e+00 6.7101000000e-01 8618 1.5303000000e+00 6.4086000000e-01 8619 1.5478000000e+00 6.0900000000e-01 8620 1.5839000000e+00 6.0694000000e-01 8621 1.6200000000e+00 6.0397000000e-01 8622 1.6557000000e+00 6.0074000000e-01 8623 1.6400000000e+00 6.3359000000e-01 8624 1.6040000000e+00 6.3787000000e-01 8625 1.6252000000e+00 6.6607000000e-01 8626 1.6596000000e+00 6.6252000000e-01 8627 1.6755000000e+00 6.3040000000e-01 8628 1.6912000000e+00 5.9772000000e-01 8629 1.7070000000e+00 5.6507000000e-01 8630 1.7423000000e+00 5.6240000000e-01 8631 1.7582000000e+00 5.2995000000e-01 8632 1.7742000000e+00 4.9724000000e-01 8633 1.7938000000e+00 5.2773000000e-01 8634 1.8095000000e+00 4.9484000000e-01 8635 1.7900000000e+00 4.6478000000e-01 8636 1.8244000000e+00 4.6267000000e-01 8637 1.8451000000e+00 4.9162000000e-01 8638 1.8596000000e+00 4.5795000000e-01 8639 1.8364000000e+00 4.2940000000e-01 8640 1.8058000000e+00 4.3756000000e-01 8641 3.0506000000e+00 6.2155000000e-01 8642 3.0548000000e+00 6.5642000000e-01 8643 3.0595000000e+00 6.9326000000e-01 8644 3.0289000000e+00 7.1539000000e-01 8645 3.0303000000e+00 7.5395000000e-01 8646 3.0285000000e+00 7.9169000000e-01 8647 3.0255000000e+00 8.2879000000e-01 8648 3.0211000000e+00 8.6621000000e-01 8649 3.0132000000e+00 9.0176000000e-01 8650 3.0335000000e+00 9.2358000000e-01 8651 3.0355000000e+00 9.5268000000e-01 8652 3.0087000000e+00 9.7097000000e-01 8653 3.0101000000e+00 1.0041000000e+00 8654 3.0133000000e+00 1.0372000000e+00 8655 2.9888000000e+00 1.0614000000e+00 8656 2.9659000000e+00 1.0972000000e+00 8657 2.9606000000e+00 1.1337000000e+00 8658 2.9377000000e+00 1.1608000000e+00 8659 2.9304000000e+00 1.1947000000e+00 8660 2.9046000000e+00 1.2226000000e+00 8661 2.8681000000e+00 1.2219000000e+00 8662 2.8402000000e+00 1.2380000000e+00 8663 2.8072000000e+00 1.2211000000e+00 8664 2.7748000000e+00 1.2038000000e+00 8665 2.7473000000e+00 1.2188000000e+00 8666 2.7189000000e+00 1.2124000000e+00 8667 2.6858000000e+00 1.2049000000e+00 8668 2.6600000000e+00 1.2320000000e+00 8669 2.6248000000e+00 1.2253000000e+00 8670 2.5891000000e+00 1.2187000000e+00 8671 2.5530000000e+00 1.2124000000e+00 8672 2.5165000000e+00 1.2061000000e+00 8673 2.4800000000e+00 1.1998000000e+00 8674 2.4438000000e+00 1.1932000000e+00 8675 2.4165000000e+00 1.2220000000e+00 8676 2.3810000000e+00 1.2142000000e+00 8677 2.3464000000e+00 1.2067000000e+00 8678 2.3120000000e+00 1.2001000000e+00 8679 2.2769000000e+00 1.1949000000e+00 8680 2.2397000000e+00 1.1907000000e+00 8681 2.2031000000e+00 1.1841000000e+00 8682 2.1733000000e+00 1.2070000000e+00 8683 2.1450000000e+00 1.1862000000e+00 8684 2.1744000000e+00 1.1762000000e+00 8685 2.1581000000e+00 1.1529000000e+00 8686 2.1226000000e+00 1.1592000000e+00 8687 2.1042000000e+00 1.1979000000e+00 8688 2.0701000000e+00 1.1901000000e+00 8689 2.0399000000e+00 1.2005000000e+00 8690 2.0004000000e+00 1.2125000000e+00 8691 1.9810000000e+00 1.1792000000e+00 8692 1.9514000000e+00 1.1811000000e+00 8693 1.9242000000e+00 1.1650000000e+00 8694 1.8990000000e+00 1.1919000000e+00 8695 1.8679000000e+00 1.1829000000e+00 8696 1.8313000000e+00 1.1695000000e+00 8697 1.7912000000e+00 1.1734000000e+00 8698 1.7569000000e+00 1.1722000000e+00 8699 1.7484000000e+00 1.1398000000e+00 8700 1.7158000000e+00 1.1247000000e+00 8701 1.6833000000e+00 1.1069000000e+00 8702 1.6525000000e+00 1.0902000000e+00 8703 1.6225000000e+00 1.1069000000e+00 8704 1.5939000000e+00 1.0887000000e+00 8705 1.5645000000e+00 1.0685000000e+00 8706 1.5346000000e+00 1.0490000000e+00 8707 1.5064000000e+00 1.0293000000e+00 8708 1.4708000000e+00 1.0430000000e+00 8709 1.4504000000e+00 1.0154000000e+00 8710 1.4484000000e+00 9.7924000000e-01 8711 1.4071000000e+00 9.7485000000e-01 8712 1.3718000000e+00 9.6879000000e-01 8713 1.3426000000e+00 9.6120000000e-01 8714 1.3173000000e+00 9.3769000000e-01 8715 1.2747000000e+00 9.3183000000e-01 8716 1.2352000000e+00 9.2736000000e-01 8717 1.2119000000e+00 9.5880000000e-01 8718 1.2215000000e+00 8.9240000000e-01 8719 1.1907000000e+00 8.8526000000e-01 8720 1.2085000000e+00 8.5985000000e-01 8721 1.2285000000e+00 8.3348000000e-01 8722 1.2170000000e+00 8.0957000000e-01 8723 1.2221000000e+00 7.8343000000e-01 8724 1.2535000000e+00 7.7410000000e-01 8725 1.2620000000e+00 7.3854000000e-01 8726 1.2670000000e+00 7.0182000000e-01 8727 1.2719000000e+00 6.6341000000e-01 8728 1.3098000000e+00 6.6163000000e-01 8729 1.2948000000e+00 6.8871000000e-01 8730 1.3249000000e+00 6.9266000000e-01 8731 1.3447000000e+00 6.6381000000e-01 8732 1.3709000000e+00 6.3385000000e-01 8733 1.4021000000e+00 6.5824000000e-01 8734 1.4285000000e+00 6.7917000000e-01 8735 1.4525000000e+00 6.6608000000e-01 8736 1.4576000000e+00 6.9294000000e-01 8737 1.4905000000e+00 6.9951000000e-01 8738 1.5255000000e+00 7.0287000000e-01 8739 1.5471000000e+00 6.7309000000e-01 8740 1.5611000000e+00 7.0710000000e-01 8741 1.5879000000e+00 6.7607000000e-01 8742 1.5669000000e+00 6.4063000000e-01 8743 3.0423000000e+00 5.8809000000e-01 8744 3.0230000000e+00 6.1044000000e-01 8745 3.0219000000e+00 6.3993000000e-01 8746 3.0250000000e+00 6.7718000000e-01 8747 2.9942000000e+00 6.9839000000e-01 8748 2.9970000000e+00 7.3562000000e-01 8749 2.9978000000e+00 7.7178000000e-01 8750 2.9958000000e+00 8.0729000000e-01 8751 2.9920000000e+00 8.4292000000e-01 8752 2.9869000000e+00 8.7818000000e-01 8753 2.9809000000e+00 9.1170000000e-01 8754 3.0044000000e+00 9.3689000000e-01 8755 2.9841000000e+00 9.5912000000e-01 8756 2.9798000000e+00 9.8772000000e-01 8757 2.9804000000e+00 1.0249000000e+00 8758 2.9473000000e+00 1.0531000000e+00 8759 2.9293000000e+00 1.0876000000e+00 8760 2.9317000000e+00 1.1213000000e+00 8761 2.9014000000e+00 1.1450000000e+00 8762 2.9043000000e+00 1.1818000000e+00 8763 2.8789000000e+00 1.1987000000e+00 8764 2.8446000000e+00 1.1984000000e+00 8765 2.8071000000e+00 1.1821000000e+00 8766 2.7734000000e+00 1.1672000000e+00 8767 2.7445000000e+00 1.1892000000e+00 8768 2.7122000000e+00 1.1790000000e+00 8769 2.6779000000e+00 1.1701000000e+00 8770 2.6511000000e+00 1.1973000000e+00 8771 2.6156000000e+00 1.1901000000e+00 8772 2.5794000000e+00 1.1832000000e+00 8773 2.5430000000e+00 1.1768000000e+00 8774 2.5066000000e+00 1.1706000000e+00 8775 2.4704000000e+00 1.1643000000e+00 8776 2.4346000000e+00 1.1577000000e+00 8777 2.4079000000e+00 1.1861000000e+00 8778 2.3726000000e+00 1.1790000000e+00 8779 2.3374000000e+00 1.1721000000e+00 8780 2.3019000000e+00 1.1658000000e+00 8781 2.2655000000e+00 1.1599000000e+00 8782 2.2283000000e+00 1.1541000000e+00 8783 2.1923000000e+00 1.1506000000e+00 8784 2.1753000000e+00 1.1205000000e+00 8785 2.1392000000e+00 1.1244000000e+00 8786 2.1030000000e+00 1.1300000000e+00 8787 2.0865000000e+00 1.1632000000e+00 8788 2.0519000000e+00 1.1672000000e+00 8789 2.0166000000e+00 1.1743000000e+00 8790 1.9954000000e+00 1.1462000000e+00 8791 1.9603000000e+00 1.1529000000e+00 8792 1.9365000000e+00 1.1272000000e+00 8793 1.9007000000e+00 1.1363000000e+00 8794 1.8918000000e+00 1.1651000000e+00 8795 1.8672000000e+00 1.1490000000e+00 8796 1.8378000000e+00 1.1281000000e+00 8797 1.8036000000e+00 1.1415000000e+00 8798 1.7755000000e+00 1.1497000000e+00 8799 1.7772000000e+00 1.1216000000e+00 8800 1.7473000000e+00 1.1045000000e+00 8801 1.7794000000e+00 1.0871000000e+00 8802 1.7484000000e+00 1.0671000000e+00 8803 1.7148000000e+00 1.0864000000e+00 8804 1.6818000000e+00 1.0710000000e+00 8805 1.6515000000e+00 1.0572000000e+00 8806 1.6240000000e+00 1.0739000000e+00 8807 1.5976000000e+00 1.0545000000e+00 8808 1.5684000000e+00 1.0282000000e+00 8809 1.5351000000e+00 1.0192000000e+00 8810 1.5154000000e+00 9.9621000000e-01 8811 1.4803000000e+00 1.0053000000e+00 8812 1.4906000000e+00 9.6820000000e-01 8813 1.4644000000e+00 9.3905000000e-01 8814 1.4258000000e+00 9.4337000000e-01 8815 1.3933000000e+00 9.4620000000e-01 8816 1.3615000000e+00 9.3199000000e-01 8817 1.3366000000e+00 9.0028000000e-01 8818 1.2976000000e+00 8.9960000000e-01 8819 1.2586000000e+00 8.9669000000e-01 8820 1.2431000000e+00 8.6354000000e-01 8821 1.2617000000e+00 8.3344000000e-01 8822 1.2433000000e+00 8.0585000000e-01 8823 1.2768000000e+00 8.0085000000e-01 8824 1.2890000000e+00 7.6500000000e-01 8825 1.3007000000e+00 7.2394000000e-01 8826 1.3267000000e+00 7.5736000000e-01 8827 1.3408000000e+00 7.2330000000e-01 8828 1.3585000000e+00 6.9441000000e-01 8829 1.3742000000e+00 6.6936000000e-01 8830 1.3950000000e+00 6.9644000000e-01 8831 1.4301000000e+00 7.1380000000e-01 8832 1.4656000000e+00 7.3027000000e-01 8833 1.5045000000e+00 7.3113000000e-01 8834 1.5383000000e+00 7.3531000000e-01 8835 1.5724000000e+00 7.4123000000e-01 8836 1.5950000000e+00 7.1396000000e-01 8837 1.6158000000e+00 6.9370000000e-01 8838 1.6441000000e+00 6.9267000000e-01 8839 1.6778000000e+00 6.9208000000e-01 8840 1.6950000000e+00 6.6032000000e-01 8841 1.7111000000e+00 6.2750000000e-01 8842 1.7266000000e+00 5.9477000000e-01 8843 1.7614000000e+00 5.9197000000e-01 8844 1.7775000000e+00 5.6026000000e-01 8845 1.8136000000e+00 5.5910000000e-01 8846 1.8297000000e+00 5.2513000000e-01 8847 1.8505000000e+00 5.5607000000e-01 8848 1.8658000000e+00 5.2153000000e-01 8849 1.8813000000e+00 4.8770000000e-01 8850 1.8970000000e+00 4.5309000000e-01 8851 1.8733000000e+00 4.2336000000e-01 8852 1.8490000000e+00 3.9392000000e-01 8853 1.8645000000e+00 3.5869000000e-01 8854 1.9016000000e+00 3.5380000000e-01 8855 1.9370000000e+00 3.5014000000e-01 8856 1.9505000000e+00 3.2323000000e-01 8857 1.9812000000e+00 3.0755000000e-01 8858 2.0227000000e+00 3.0604000000e-01 8859 2.0429000000e+00 3.3706000000e-01 8860 2.0062000000e+00 3.3984000000e-01 8861 2.0274000000e+00 3.6986000000e-01 8862 2.0625000000e+00 3.6667000000e-01 8863 2.0479000000e+00 3.9917000000e-01 8864 2.0812000000e+00 3.9433000000e-01 8865 2.0971000000e+00 3.6448000000e-01 8866 2.1145000000e+00 3.9323000000e-01 8867 2.1486000000e+00 3.9307000000e-01 8868 2.1653000000e+00 4.2285000000e-01 8869 2.2002000000e+00 4.2343000000e-01 8870 2.2168000000e+00 4.5398000000e-01 8871 2.1818000000e+00 4.5302000000e-01 8872 2.1981000000e+00 4.8360000000e-01 8873 2.2334000000e+00 4.8504000000e-01 8874 2.2523000000e+00 4.5482000000e-01 8875 2.2881000000e+00 4.5534000000e-01 8876 2.3069000000e+00 3.6364000000e-01 8877 2.0680000000e+00 4.2081000000e-01 8878 2.0975000000e+00 4.2171000000e-01 8879 2.1310000000e+00 4.2230000000e-01 8880 2.1472000000e+00 4.5206000000e-01 8881 2.1127000000e+00 4.5094000000e-01 8882 2.0776000000e+00 4.4867000000e-01 8883 2.0940000000e+00 4.7990000000e-01 8884 2.0578000000e+00 4.7845000000e-01 8885 2.0762000000e+00 5.1006000000e-01 8886 2.0412000000e+00 5.1096000000e-01 8887 2.0223000000e+00 4.8095000000e-01 8888 2.0066000000e+00 5.1286000000e-01 8889 2.0249000000e+00 5.4253000000e-01 8890 2.0596000000e+00 5.4098000000e-01 8891 2.0939000000e+00 5.3987000000e-01 8892 2.1109000000e+00 5.1025000000e-01 8893 2.1288000000e+00 4.8107000000e-01 8894 2.1633000000e+00 4.8223000000e-01 8895 2.1450000000e+00 5.1106000000e-01 8896 2.1791000000e+00 5.1261000000e-01 8897 2.2139000000e+00 5.1474000000e-01 8898 2.2498000000e+00 5.1696000000e-01 8899 2.2290000000e+00 5.4694000000e-01 8900 2.2663000000e+00 5.5064000000e-01 8901 2.2867000000e+00 5.1830000000e-01 8902 2.2693000000e+00 4.8617000000e-01 8903 2.3052000000e+00 5.5141000000e-01 8904 2.3262000000e+00 5.8300000000e-01 8905 2.3638000000e+00 5.7960000000e-01 8906 2.3997000000e+00 5.7538000000e-01 8907 2.4334000000e+00 5.7219000000e-01 8908 2.4664000000e+00 5.7151000000e-01 8909 2.4827000000e+00 5.4207000000e-01 8910 2.5161000000e+00 5.4175000000e-01 8911 2.4993000000e+00 5.7066000000e-01 8912 2.5316000000e+00 5.7008000000e-01 8913 2.5646000000e+00 5.7252000000e-01 8914 2.5995000000e+00 5.7507000000e-01 8915 2.5786000000e+00 6.0432000000e-01 8916 2.6152000000e+00 6.0769000000e-01 8917 2.6527000000e+00 6.0951000000e-01 8918 2.6899000000e+00 6.0966000000e-01 8919 2.7263000000e+00 6.0910000000e-01 8920 2.7621000000e+00 6.0866000000e-01 8921 2.7976000000e+00 6.0856000000e-01 8922 2.8330000000e+00 6.0884000000e-01 8923 2.8686000000e+00 6.0945000000e-01 8924 2.9046000000e+00 6.1042000000e-01 8925 2.9235000000e+00 5.7993000000e-01 8926 2.9415000000e+00 5.4907000000e-01 8927 2.9779000000e+00 5.4928000000e-01 8928 2.9947000000e+00 5.1863000000e-01 8929 3.0108000000e+00 4.8826000000e-01 8930 3.0243000000e+00 5.1557000000e-01 8931 3.0201000000e+00 5.5252000000e-01 8932 3.0129000000e+00 5.8843000000e-01 8933 2.9873000000e+00 6.1430000000e-01 8934 2.9908000000e+00 6.5984000000e-01 8935 2.9604000000e+00 6.8283000000e-01 8936 2.9634000000e+00 7.1965000000e-01 8937 2.9676000000e+00 7.5477000000e-01 8938 2.9675000000e+00 7.8755000000e-01 8939 2.9636000000e+00 8.2118000000e-01 8940 2.9592000000e+00 8.5608000000e-01 8941 2.9549000000e+00 8.9062000000e-01 8942 2.9512000000e+00 9.2429000000e-01 8943 2.9747000000e+00 9.3867000000e-01 8944 2.9526000000e+00 9.6155000000e-01 8945 2.9428000000e+00 1.0060000000e+00 8946 2.9170000000e+00 1.0319000000e+00 8947 2.9065000000e+00 1.0632000000e+00 8948 2.8950000000e+00 1.1037000000e+00 8949 2.8668000000e+00 1.1334000000e+00 8950 2.8724000000e+00 1.1692000000e+00 8951 2.8382000000e+00 1.1581000000e+00 8952 2.8039000000e+00 1.1442000000e+00 8953 2.7699000000e+00 1.1300000000e+00 8954 2.7401000000e+00 1.1542000000e+00 8955 2.7057000000e+00 1.1434000000e+00 8956 2.6701000000e+00 1.1342000000e+00 8957 2.6425000000e+00 1.1619000000e+00 8958 2.6063000000e+00 1.1542000000e+00 8959 2.5695000000e+00 1.1472000000e+00 8960 2.5328000000e+00 1.1413000000e+00 8961 2.4966000000e+00 1.1355000000e+00 8962 2.4609000000e+00 1.1293000000e+00 8963 2.4254000000e+00 1.1226000000e+00 8964 2.3990000000e+00 1.1508000000e+00 8965 2.3636000000e+00 1.1439000000e+00 8966 2.3280000000e+00 1.1371000000e+00 8967 2.2918000000e+00 1.1304000000e+00 8968 2.2546000000e+00 1.1236000000e+00 8969 2.2145000000e+00 1.1155000000e+00 8970 2.1907000000e+00 1.0924000000e+00 8971 2.1572000000e+00 1.0870000000e+00 8972 2.1189000000e+00 1.0967000000e+00 8973 2.0834000000e+00 1.1014000000e+00 8974 2.0672000000e+00 1.1347000000e+00 8975 2.0313000000e+00 1.1400000000e+00 8976 2.0100000000e+00 1.1115000000e+00 8977 1.9732000000e+00 1.1186000000e+00 8978 1.9495000000e+00 1.0908000000e+00 8979 1.9112000000e+00 1.0994000000e+00 8980 1.8735000000e+00 1.1119000000e+00 8981 1.8427000000e+00 1.0900000000e+00 8982 1.8088000000e+00 1.1066000000e+00 8983 1.8119000000e+00 1.0711000000e+00 8984 1.7827000000e+00 1.0514000000e+00 8985 1.7534000000e+00 1.0289000000e+00 8986 1.7125000000e+00 1.0440000000e+00 8987 1.6763000000e+00 1.0409000000e+00 8988 1.6482000000e+00 1.0212000000e+00 8989 1.6260000000e+00 1.0457000000e+00 8990 1.6089000000e+00 1.0217000000e+00 8991 1.6253000000e+00 9.8856000000e-01 8992 1.5876000000e+00 9.9167000000e-01 8993 1.5507000000e+00 9.9296000000e-01 8994 1.5296000000e+00 9.6216000000e-01 8995 1.5054000000e+00 9.2703000000e-01 8996 1.4746000000e+00 9.0734000000e-01 8997 1.4417000000e+00 9.0889000000e-01 8998 1.4003000000e+00 9.1175000000e-01 8999 1.3687000000e+00 8.9772000000e-01 9000 1.3560000000e+00 8.6869000000e-01 9001 1.3186000000e+00 8.6570000000e-01 9002 1.2797000000e+00 8.6512000000e-01 9003 1.2990000000e+00 8.3151000000e-01 9004 1.3144000000e+00 7.9498000000e-01 9005 1.3521000000e+00 7.8624000000e-01 9006 1.3630000000e+00 7.5049000000e-01 9007 1.3868000000e+00 7.7592000000e-01 9008 1.3793000000e+00 8.0976000000e-01 9009 1.4064000000e+00 7.9778000000e-01 9010 1.4199000000e+00 7.7188000000e-01 9011 1.4000000000e+00 7.3917000000e-01 9012 1.3714000000e+00 7.2079000000e-01 9013 1.4339000000e+00 7.4470000000e-01 9014 1.4541000000e+00 7.6823000000e-01 9015 1.4888000000e+00 7.6147000000e-01 9016 1.5184000000e+00 7.5726000000e-01 9017 1.5479000000e+00 7.7215000000e-01 9018 1.5859000000e+00 7.7287000000e-01 9019 1.6063000000e+00 7.4586000000e-01 9020 1.6267000000e+00 7.1971000000e-01 9021 1.6593000000e+00 7.2188000000e-01 9022 1.6942000000e+00 7.2337000000e-01 9023 1.7143000000e+00 6.9164000000e-01 9024 1.7317000000e+00 6.5779000000e-01 9025 1.7463000000e+00 6.2402000000e-01 9026 1.7798000000e+00 6.1994000000e-01 9027 1.7674000000e+00 6.5217000000e-01 9028 1.7998000000e+00 6.4423000000e-01 9029 1.8081000000e+00 6.1676000000e-01 9030 1.7958000000e+00 5.9050000000e-01 9031 1.8342000000e+00 5.9501000000e-01 9032 1.8733000000e+00 5.8476000000e-01 9033 1.8865000000e+00 5.5094000000e-01 9034 1.9063000000e+00 5.7816000000e-01 9035 1.9211000000e+00 5.4732000000e-01 9036 1.9392000000e+00 5.7615000000e-01 9037 1.9228000000e+00 6.0518000000e-01 9038 1.9559000000e+00 6.0571000000e-01 9039 1.9734000000e+00 5.7518000000e-01 9040 1.9556000000e+00 5.4540000000e-01 9041 1.9374000000e+00 5.1547000000e-01 9042 1.9017000000e+00 5.1786000000e-01 9043 1.9184000000e+00 4.8426000000e-01 9044 1.9383000000e+00 4.4783000000e-01 9045 1.9108000000e+00 4.1758000000e-01 9046 1.9459000000e+00 4.1006000000e-01 9047 1.9234000000e+00 3.8291000000e-01 9048 1.8871000000e+00 3.8835000000e-01 9049 1.9580000000e+00 3.7767000000e-01 9050 1.9709000000e+00 3.4528000000e-01 9051 1.9923000000e+00 3.7335000000e-01 9052 2.0128000000e+00 4.0318000000e-01 9053 1.9784000000e+00 4.0439000000e-01 9054 1.9952000000e+00 4.3212000000e-01 9055 1.9665000000e+00 4.3009000000e-01 9056 1.9745000000e+00 4.5615000000e-01 9057 2.0033000000e+00 4.5877000000e-01 9058 2.0356000000e+00 4.4025000000e-01 9059 1.9890000000e+00 4.8445000000e-01 9060 1.9723000000e+00 5.1432000000e-01 9061 1.9902000000e+00 5.4405000000e-01 9062 2.0083000000e+00 5.7405000000e-01 9063 2.0433000000e+00 5.7231000000e-01 9064 2.0779000000e+00 5.7018000000e-01 9065 2.1113000000e+00 5.6824000000e-01 9066 2.1274000000e+00 5.3957000000e-01 9067 2.1604000000e+00 5.4070000000e-01 9068 2.1940000000e+00 5.4336000000e-01 9069 2.2072000000e+00 5.7493000000e-01 9070 2.2428000000e+00 5.8108000000e-01 9071 2.2845000000e+00 5.8926000000e-01 9072 2.3126000000e+00 6.1213000000e-01 9073 2.3479000000e+00 6.1646000000e-01 9074 2.3857000000e+00 6.0686000000e-01 9075 2.4203000000e+00 6.0262000000e-01 9076 2.4501000000e+00 5.9652000000e-01 9077 2.4835000000e+00 6.0490000000e-01 9078 2.5155000000e+00 5.9376000000e-01 9079 2.5441000000e+00 5.9955000000e-01 9080 2.5551000000e+00 6.3303000000e-01 9081 2.5929000000e+00 6.3819000000e-01 9082 2.6319000000e+00 6.4224000000e-01 9083 2.6712000000e+00 6.4275000000e-01 9084 2.7087000000e+00 6.4075000000e-01 9085 2.6923000000e+00 6.7317000000e-01 9086 2.7279000000e+00 6.7049000000e-01 9087 2.7124000000e+00 7.0137000000e-01 9088 2.7465000000e+00 6.9922000000e-01 9089 2.7310000000e+00 7.2890000000e-01 9090 2.7642000000e+00 7.2738000000e-01 9091 2.7804000000e+00 6.9822000000e-01 9092 2.7628000000e+00 6.6915000000e-01 9093 2.7447000000e+00 6.3948000000e-01 9094 1.1194000000e+00 1.1849000000e+00 9095 2.7485000000e+00 7.5621000000e-01 9096 2.7814000000e+00 7.5519000000e-01 9097 2.7973000000e+00 7.2674000000e-01 9098 2.8142000000e+00 6.9829000000e-01 9099 2.7974000000e+00 6.6875000000e-01 9100 2.7800000000e+00 6.3889000000e-01 9101 2.8151000000e+00 6.3893000000e-01 9102 2.8503000000e+00 6.3950000000e-01 9103 2.8856000000e+00 6.4038000000e-01 9104 2.9206000000e+00 6.4161000000e-01 9105 2.9420000000e+00 6.1216000000e-01 9106 2.9607000000e+00 5.8025000000e-01 9107 2.9918000000e+00 5.7693000000e-01 9108 2.9557000000e+00 6.4661000000e-01 9109 2.9330000000e+00 6.6911000000e-01 9110 2.9255000000e+00 7.0354000000e-01 9111 2.9356000000e+00 7.4297000000e-01 9112 2.9442000000e+00 7.7123000000e-01 9113 2.9362000000e+00 7.9928000000e-01 9114 2.9305000000e+00 8.3421000000e-01 9115 2.9273000000e+00 8.6961000000e-01 9116 2.9236000000e+00 9.0411000000e-01 9117 2.9201000000e+00 9.3936000000e-01 9118 2.9151000000e+00 9.7601000000e-01 9119 2.9074000000e+00 1.0068000000e+00 9120 2.8808000000e+00 1.0309000000e+00 9121 2.8691000000e+00 1.0722000000e+00 9122 2.8597000000e+00 1.1033000000e+00 9123 2.8339000000e+00 1.1217000000e+00 9124 2.8009000000e+00 1.1061000000e+00 9125 2.7658000000e+00 1.0918000000e+00 9126 2.7348000000e+00 1.1167000000e+00 9127 2.6984000000e+00 1.1063000000e+00 9128 2.6619000000e+00 1.0980000000e+00 9129 2.6339000000e+00 1.1256000000e+00 9130 2.5966000000e+00 1.1171000000e+00 9131 2.5588000000e+00 1.1110000000e+00 9132 2.5221000000e+00 1.1066000000e+00 9133 2.4867000000e+00 1.1010000000e+00 9134 2.4516000000e+00 1.0946000000e+00 9135 2.4163000000e+00 1.0877000000e+00 9136 2.3900000000e+00 1.1157000000e+00 9137 2.3544000000e+00 1.1087000000e+00 9138 2.3185000000e+00 1.1017000000e+00 9139 2.2821000000e+00 1.0944000000e+00 9140 2.2454000000e+00 1.0869000000e+00 9141 2.2151000000e+00 1.0805000000e+00 9142 2.1913000000e+00 1.0583000000e+00 9143 2.1546000000e+00 1.0483000000e+00 9144 2.1304000000e+00 1.0681000000e+00 9145 2.1002000000e+00 1.0691000000e+00 9146 2.0640000000e+00 1.0716000000e+00 9147 2.0469000000e+00 1.1059000000e+00 9148 2.0257000000e+00 1.0757000000e+00 9149 1.9873000000e+00 1.0824000000e+00 9150 1.9635000000e+00 1.0550000000e+00 9151 1.9255000000e+00 1.0617000000e+00 9152 1.8812000000e+00 1.0681000000e+00 9153 1.8430000000e+00 1.0536000000e+00 9154 1.8145000000e+00 1.0374000000e+00 9155 1.7887000000e+00 1.0164000000e+00 9156 1.7627000000e+00 9.9186000000e-01 9157 1.7253000000e+00 1.0025000000e+00 9158 1.6873000000e+00 1.0111000000e+00 9159 1.6624000000e+00 9.8311000000e-01 9160 1.6400000000e+00 9.5522000000e-01 9161 1.6047000000e+00 9.5824000000e-01 9162 1.6218000000e+00 9.2618000000e-01 9163 1.5857000000e+00 9.2745000000e-01 9164 1.5677000000e+00 9.6015000000e-01 9165 1.5480000000e+00 9.2818000000e-01 9166 1.5678000000e+00 8.9604000000e-01 9167 1.5318000000e+00 8.9601000000e-01 9168 1.4988000000e+00 8.8803000000e-01 9169 1.4626000000e+00 8.7347000000e-01 9170 1.4225000000e+00 8.7810000000e-01 9171 1.3891000000e+00 8.7567000000e-01 9172 1.3802000000e+00 8.4378000000e-01 9173 1.3428000000e+00 8.2871000000e-01 9174 1.4076000000e+00 8.2590000000e-01 9175 1.4067000000e+00 8.5370000000e-01 9176 1.4345000000e+00 8.4484000000e-01 9177 1.4384000000e+00 8.0526000000e-01 9178 1.4777000000e+00 7.9564000000e-01 9179 1.4690000000e+00 8.3234000000e-01 9180 1.5037000000e+00 8.2020000000e-01 9181 1.5123000000e+00 7.8611000000e-01 9182 1.5374000000e+00 8.0977000000e-01 9183 1.5284000000e+00 8.4268000000e-01 9184 1.4973000000e+00 8.5444000000e-01 9185 1.5212000000e+00 8.6965000000e-01 9186 1.5496000000e+00 8.6689000000e-01 9187 1.5612000000e+00 8.3492000000e-01 9188 1.5709000000e+00 8.0234000000e-01 9189 1.5993000000e+00 7.9833000000e-01 9190 1.6184000000e+00 7.7717000000e-01 9191 1.6394000000e+00 7.5008000000e-01 9192 1.6736000000e+00 7.5326000000e-01 9193 1.6521000000e+00 7.8244000000e-01 9194 1.6874000000e+00 7.8562000000e-01 9195 1.7091000000e+00 7.5606000000e-01 9196 1.7311000000e+00 7.2520000000e-01 9197 1.7558000000e+00 6.9104000000e-01 9198 1.7910000000e+00 6.7598000000e-01 9199 1.8218000000e+00 6.6638000000e-01 9200 1.8140000000e+00 6.9697000000e-01 9201 1.8428000000e+00 6.8834000000e-01 9202 1.8524000000e+00 6.5860000000e-01 9203 1.8307000000e+00 6.3413000000e-01 9204 1.8675000000e+00 6.2377000000e-01 9205 1.8947000000e+00 6.0467000000e-01 9206 1.9037000000e+00 6.3149000000e-01 9207 1.9370000000e+00 6.3489000000e-01 9208 1.9721000000e+00 6.3710000000e-01 9209 1.9910000000e+00 6.0576000000e-01 9210 1.9550000000e+00 4.8373000000e-01 9211 2.0270000000e+00 6.0451000000e-01 9212 2.0625000000e+00 6.0166000000e-01 9213 2.0967000000e+00 5.9808000000e-01 9214 2.1289000000e+00 5.9442000000e-01 9215 2.1430000000e+00 5.6735000000e-01 9216 2.1741000000e+00 5.7032000000e-01 9217 2.1841000000e+00 6.0472000000e-01 9218 2.2190000000e+00 6.0324000000e-01 9219 2.2507000000e+00 6.2155000000e-01 9220 2.2878000000e+00 6.2511000000e-01 9221 2.3162000000e+00 6.4695000000e-01 9222 2.3548000000e+00 6.5297000000e-01 9223 2.3762000000e+00 6.3393000000e-01 9224 2.3864000000e+00 6.6016000000e-01 9225 2.4061000000e+00 6.3335000000e-01 9226 2.4467000000e+00 6.3155000000e-01 9227 2.4877000000e+00 6.4672000000e-01 9228 2.5189000000e+00 6.2374000000e-01 9229 2.5272000000e+00 6.6466000000e-01 9230 2.5688000000e+00 6.6789000000e-01 9231 2.6077000000e+00 6.7414000000e-01 9232 2.6517000000e+00 6.8132000000e-01 9233 2.6817000000e+00 7.0250000000e-01 9234 2.6947000000e+00 7.3412000000e-01 9235 2.7197000000e+00 7.5533000000e-01 9236 2.7287000000e+00 7.8694000000e-01 9237 2.7659000000e+00 7.8372000000e-01 9238 2.7987000000e+00 7.8298000000e-01 9239 2.8137000000e+00 7.5433000000e-01 9240 2.8297000000e+00 7.2724000000e-01 9241 2.8484000000e+00 6.9978000000e-01 9242 2.8321000000e+00 6.6923000000e-01 9243 2.8672000000e+00 6.7034000000e-01 9244 2.9027000000e+00 6.7116000000e-01 9245 2.8842000000e+00 7.0221000000e-01 9246 2.8919000000e+00 9.1756000000e-01 9247 2.8862000000e+00 9.5291000000e-01 9248 2.8809000000e+00 9.8969000000e-01 9249 2.8452000000e+00 1.0060000000e+00 9250 2.8390000000e+00 1.0467000000e+00 9251 2.8335000000e+00 1.0856000000e+00 9252 2.7978000000e+00 1.0638000000e+00 9253 2.7620000000e+00 1.0595000000e+00 9254 2.7287000000e+00 1.0749000000e+00 9255 2.6890000000e+00 1.0711000000e+00 9256 2.6544000000e+00 1.0625000000e+00 9257 2.6254000000e+00 1.0884000000e+00 9258 2.5855000000e+00 1.0764000000e+00 9259 2.5460000000e+00 1.0778000000e+00 9260 2.5116000000e+00 1.0732000000e+00 9261 2.4772000000e+00 1.0670000000e+00 9262 2.4425000000e+00 1.0601000000e+00 9263 2.4074000000e+00 1.0529000000e+00 9264 2.3810000000e+00 1.0806000000e+00 9265 2.3454000000e+00 1.0734000000e+00 9266 2.3094000000e+00 1.0660000000e+00 9267 2.2728000000e+00 1.0581000000e+00 9268 2.2333000000e+00 1.0491000000e+00 9269 2.2085000000e+00 1.0274000000e+00 9270 2.1798000000e+00 1.0232000000e+00 9271 2.1477000000e+00 1.0139000000e+00 9272 2.1210000000e+00 1.0393000000e+00 9273 2.0838000000e+00 1.0372000000e+00 9274 2.0440000000e+00 1.0399000000e+00 9275 2.0019000000e+00 1.0425000000e+00 9276 1.9736000000e+00 1.0255000000e+00 9277 1.9429000000e+00 1.0268000000e+00 9278 1.9047000000e+00 1.0300000000e+00 9279 1.8679000000e+00 1.0294000000e+00 9280 1.8398000000e+00 1.0255000000e+00 9281 1.8210000000e+00 1.0063000000e+00 9282 1.7981000000e+00 9.8234000000e-01 9283 1.7739000000e+00 9.5591000000e-01 9284 1.7367000000e+00 9.6473000000e-01 9285 1.6993000000e+00 9.7437000000e-01 9286 1.6740000000e+00 9.4803000000e-01 9287 1.6520000000e+00 9.2696000000e-01 9288 1.6438000000e+00 8.9332000000e-01 9289 1.6044000000e+00 8.9567000000e-01 9290 1.5874000000e+00 8.6180000000e-01 9291 1.5936000000e+00 8.2582000000e-01 9292 1.6275000000e+00 8.1329000000e-01 9293 1.6662000000e+00 8.1507000000e-01 9294 1.7007000000e+00 8.1750000000e-01 9295 1.7227000000e+00 7.8919000000e-01 9296 1.7452000000e+00 7.5955000000e-01 9297 1.7585000000e+00 7.9355000000e-01 9298 1.7818000000e+00 7.6375000000e-01 9299 1.7944000000e+00 7.9859000000e-01 9300 1.8182000000e+00 7.6961000000e-01 9301 1.8066000000e+00 7.3165000000e-01 9302 1.7680000000e+00 7.2939000000e-01 9303 1.7871000000e+00 7.0502000000e-01 9304 1.8344000000e+00 7.1436000000e-01 9305 1.8660000000e+00 7.1244000000e-01 9306 1.8678000000e+00 6.8119000000e-01 9307 1.8836000000e+00 6.5775000000e-01 9308 1.9162000000e+00 6.6265000000e-01 9309 1.9510000000e+00 6.6720000000e-01 9310 1.9884000000e+00 6.7101000000e-01 9311 1.9642000000e+00 7.0175000000e-01 9312 2.0021000000e+00 7.0728000000e-01 9313 2.0311000000e+00 6.7463000000e-01 9314 2.0095000000e+00 6.3804000000e-01 9315 2.0471000000e+00 6.3523000000e-01 9316 2.0828000000e+00 6.2971000000e-01 9317 2.0698000000e+00 6.6283000000e-01 9318 2.1042000000e+00 6.5620000000e-01 9319 2.1167000000e+00 6.2431000000e-01 9320 2.1495000000e+00 6.1769000000e-01 9321 2.1559000000e+00 5.9089000000e-01 9322 2.1732000000e+00 6.4208000000e-01 9323 2.2100000000e+00 6.3401000000e-01 9324 2.2356000000e+00 6.6252000000e-01 9325 2.2750000000e+00 6.5580000000e-01 9326 2.2993000000e+00 6.8538000000e-01 9327 2.3359000000e+00 6.8100000000e-01 9328 2.3658000000e+00 6.7952000000e-01 9329 2.3945000000e+00 6.9618000000e-01 9330 2.4209000000e+00 6.6521000000e-01 9331 2.4579000000e+00 6.7173000000e-01 9332 2.4918000000e+00 6.8393000000e-01 9333 2.5194000000e+00 7.0344000000e-01 9334 2.5488000000e+00 6.9409000000e-01 9335 2.5807000000e+00 7.0343000000e-01 9336 2.6198000000e+00 7.1197000000e-01 9337 2.6572000000e+00 7.2269000000e-01 9338 2.6651000000e+00 7.5757000000e-01 9339 2.6956000000e+00 7.7068000000e-01 9340 2.6943000000e+00 8.0392000000e-01 9341 2.7220000000e+00 8.2463000000e-01 9342 2.7547000000e+00 8.1436000000e-01 9343 2.7831000000e+00 8.0687000000e-01 9344 2.8152000000e+00 8.1686000000e-01 9345 2.8330000000e+00 7.8114000000e-01 9346 2.8422000000e+00 7.5292000000e-01 9347 2.8626000000e+00 7.3159000000e-01 9348 2.8990000000e+00 7.3707000000e-01 9349 2.8720000000e+00 7.7052000000e-01 9350 2.9141000000e+00 7.7180000000e-01 9351 2.8973000000e+00 8.0995000000e-01 9352 2.8991000000e+00 8.4941000000e-01 9353 2.8963000000e+00 8.8351000000e-01 9354 2.8659000000e+00 8.9643000000e-01 9355 2.8587000000e+00 9.2930000000e-01 9356 2.8504000000e+00 9.6584000000e-01 9357 2.8125000000e+00 9.8106000000e-01 9358 2.8072000000e+00 1.0219000000e+00 9359 2.7761000000e+00 1.0352000000e+00 9360 2.7413000000e+00 1.0323000000e+00 9361 2.7094000000e+00 1.0467000000e+00 9362 2.6808000000e+00 1.0384000000e+00 9363 2.6489000000e+00 1.0279000000e+00 9364 2.6200000000e+00 1.0513000000e+00 9365 2.5884000000e+00 1.0370000000e+00 9366 2.5628000000e+00 1.0524000000e+00 9367 2.5349000000e+00 1.0471000000e+00 9368 2.5023000000e+00 1.0402000000e+00 9369 2.4683000000e+00 1.0329000000e+00 9370 2.4337000000e+00 1.0255000000e+00 9371 2.3988000000e+00 1.0180000000e+00 9372 2.3722000000e+00 1.0455000000e+00 9373 2.3367000000e+00 1.0380000000e+00 9374 2.3010000000e+00 1.0303000000e+00 9375 2.2657000000e+00 1.0220000000e+00 9376 2.2341000000e+00 1.0108000000e+00 9377 2.2040000000e+00 9.9539000000e-01 9378 2.2329000000e+00 9.8271000000e-01 9379 2.2168000000e+00 9.6083000000e-01 9380 2.1831000000e+00 9.6714000000e-01 9381 2.1726000000e+00 9.9557000000e-01 9382 2.1486000000e+00 9.7812000000e-01 9383 2.1093000000e+00 9.9879000000e-01 9384 2.0639000000e+00 1.0040000000e+00 9385 2.0249000000e+00 1.0084000000e+00 9386 1.9941000000e+00 1.0100000000e+00 9387 2.0041000000e+00 9.8031000000e-01 9388 1.9658000000e+00 9.9284000000e-01 9389 1.9240000000e+00 9.9533000000e-01 9390 1.8865000000e+00 9.9824000000e-01 9391 1.8524000000e+00 1.0006000000e+00 9392 1.8667000000e+00 9.6925000000e-01 9393 1.8322000000e+00 9.7482000000e-01 9394 1.8099000000e+00 9.4842000000e-01 9395 1.7870000000e+00 9.2084000000e-01 9396 1.7489000000e+00 9.2695000000e-01 9397 1.7099000000e+00 9.3646000000e-01 9398 1.6802000000e+00 9.1183000000e-01 9399 1.6808000000e+00 8.7336000000e-01 9400 1.6478000000e+00 8.4996000000e-01 9401 1.6197000000e+00 8.6899000000e-01 9402 1.6152000000e+00 8.4401000000e-01 9403 1.6813000000e+00 8.4139000000e-01 9404 1.7112000000e+00 8.5085000000e-01 9405 1.7354000000e+00 8.2267000000e-01 9406 1.7712000000e+00 8.2736000000e-01 9407 1.7480000000e+00 8.5734000000e-01 9408 1.7844000000e+00 8.5946000000e-01 9409 1.8063000000e+00 8.3227000000e-01 9410 1.8301000000e+00 8.0478000000e-01 9411 1.8534000000e+00 7.7637000000e-01 9412 1.8427000000e+00 7.4231000000e-01 9413 1.8774000000e+00 7.4926000000e-01 9414 1.9029000000e+00 7.2272000000e-01 9415 1.9125000000e+00 7.5862000000e-01 9416 1.9392000000e+00 7.3138000000e-01 9417 1.9280000000e+00 6.9576000000e-01 9418 1.8941000000e+00 6.8877000000e-01 9419 1.9766000000e+00 7.3779000000e-01 9420 2.0134000000e+00 7.4324000000e-01 9421 1.9898000000e+00 7.7149000000e-01 9422 2.0239000000e+00 7.7718000000e-01 9423 2.0488000000e+00 7.5043000000e-01 9424 2.0390000000e+00 7.1521000000e-01 9425 2.0618000000e+00 6.9279000000e-01 9426 2.0918000000e+00 6.8841000000e-01 9427 2.1255000000e+00 6.8221000000e-01 9428 2.1383000000e+00 6.4979000000e-01 9429 2.1603000000e+00 6.7631000000e-01 9430 2.1970000000e+00 6.7002000000e-01 9431 2.2206000000e+00 7.0041000000e-01 9432 2.2605000000e+00 6.9347000000e-01 9433 2.2858000000e+00 7.2134000000e-01 9434 2.3220000000e+00 7.1389000000e-01 9435 2.3572000000e+00 7.0751000000e-01 9436 2.3804000000e+00 7.3392000000e-01 9437 2.4168000000e+00 7.2871000000e-01 9438 2.4339000000e+00 6.9854000000e-01 9439 2.4661000000e+00 7.0469000000e-01 9440 2.4467000000e+00 7.2498000000e-01 9441 2.4744000000e+00 7.3664000000e-01 9442 2.4920000000e+00 7.1258000000e-01 9443 2.5083000000e+00 7.3445000000e-01 9444 2.4937000000e+00 7.5800000000e-01 9445 2.5222000000e+00 7.6510000000e-01 9446 2.5478000000e+00 7.3121000000e-01 9447 2.5913000000e+00 7.4151000000e-01 9448 2.6301000000e+00 7.4890000000e-01 9449 2.6415000000e+00 7.8281000000e-01 9450 2.6709000000e+00 7.8643000000e-01 9451 2.6580000000e+00 8.1738000000e-01 9452 2.6905000000e+00 8.3772000000e-01 9453 2.7162000000e+00 8.5746000000e-01 9454 2.7476000000e+00 8.4759000000e-01 9455 2.7807000000e+00 8.3666000000e-01 9456 2.8106000000e+00 8.5774000000e-01 9457 2.8441000000e+00 8.4343000000e-01 9458 2.8558000000e+00 8.0948000000e-01 9459 2.8732000000e+00 8.3525000000e-01 9460 2.8698000000e+00 8.6418000000e-01 9461 2.8399000000e+00 8.7735000000e-01 9462 2.8388000000e+00 9.0697000000e-01 9463 2.8188000000e+00 9.3640000000e-01 9464 2.7810000000e+00 9.5764000000e-01 9465 2.7720000000e+00 9.9890000000e-01 9466 2.7332000000e+00 9.9404000000e-01 9467 2.7070000000e+00 1.0168000000e+00 9468 2.6757000000e+00 1.0058000000e+00 9469 2.6449000000e+00 9.9397000000e-01 9470 2.6170000000e+00 1.0156000000e+00 9471 2.5856000000e+00 1.0027000000e+00 9472 2.5589000000e+00 1.0241000000e+00 9473 2.5274000000e+00 1.0149000000e+00 9474 2.4941000000e+00 1.0064000000e+00 9475 2.4597000000e+00 9.9855000000e-01 9476 2.4251000000e+00 9.9095000000e-01 9477 2.3903000000e+00 9.8307000000e-01 9478 2.3636000000e+00 1.0103000000e+00 9479 2.3281000000e+00 1.0025000000e+00 9480 2.2930000000e+00 9.9517000000e-01 9481 2.2598000000e+00 9.8832000000e-01 9482 2.2496000000e+00 9.5820000000e-01 9483 2.2339000000e+00 9.2879000000e-01 9484 2.1972000000e+00 9.3274000000e-01 9485 2.1589000000e+00 9.4011000000e-01 9486 2.1197000000e+00 9.5305000000e-01 9487 2.0803000000e+00 9.6579000000e-01 9488 2.0412000000e+00 9.7347000000e-01 9489 2.0184000000e+00 9.4453000000e-01 9490 1.9803000000e+00 9.5228000000e-01 9491 1.9413000000e+00 9.5932000000e-01 9492 1.9030000000e+00 9.6443000000e-01 9493 1.8810000000e+00 9.3529000000e-01 9494 1.8452000000e+00 9.4169000000e-01 9495 1.8228000000e+00 9.1459000000e-01 9496 1.8014000000e+00 8.8794000000e-01 9497 1.7651000000e+00 8.9090000000e-01 9498 1.7206000000e+00 8.9257000000e-01 9499 1.8141000000e+00 8.6067000000e-01 9500 1.8434000000e+00 8.4252000000e-01 9501 1.8650000000e+00 8.0912000000e-01 9502 1.8867000000e+00 7.8293000000e-01 9503 1.9178000000e+00 7.9375000000e-01 9504 1.9509000000e+00 7.7152000000e-01 9505 1.9730000000e+00 7.9639000000e-01 9506 2.0007000000e+00 8.0268000000e-01 9507 2.0329000000e+00 8.1048000000e-01 9508 2.0575000000e+00 7.8465000000e-01 9509 2.0665000000e+00 8.1836000000e-01 9510 2.0909000000e+00 7.9201000000e-01 9511 2.0817000000e+00 7.5937000000e-01 9512 2.0769000000e+00 7.2286000000e-01 9513 2.1124000000e+00 7.1362000000e-01 9514 2.1460000000e+00 7.0896000000e-01 9515 2.1310000000e+00 7.3909000000e-01 9516 2.1650000000e+00 7.3766000000e-01 9517 2.1819000000e+00 7.0491000000e-01 9518 2.1130000000e+00 7.6602000000e-01 9519 2.1030000000e+00 7.4019000000e-01 9520 2.1462000000e+00 7.6814000000e-01 9521 2.1251000000e+00 7.9735000000e-01 9522 2.1610000000e+00 7.9998000000e-01 9523 2.1820000000e+00 7.6878000000e-01 9524 2.2025000000e+00 7.3617000000e-01 9525 2.2461000000e+00 7.3554000000e-01 9526 2.2781000000e+00 7.5248000000e-01 9527 2.3091000000e+00 7.4753000000e-01 9528 2.3443000000e+00 7.4081000000e-01 9529 2.3307000000e+00 7.7400000000e-01 9530 2.3663000000e+00 7.6825000000e-01 9531 2.4029000000e+00 7.6236000000e-01 9532 2.4420000000e+00 7.5659000000e-01 9533 2.4718000000e+00 7.6552000000e-01 9534 2.4916000000e+00 7.8857000000e-01 9535 2.5282000000e+00 8.0190000000e-01 9536 2.5635000000e+00 7.7675000000e-01 9537 2.6057000000e+00 7.7708000000e-01 9538 2.6189000000e+00 8.0977000000e-01 9539 2.6276000000e+00 8.4484000000e-01 9540 2.6621000000e+00 8.5640000000e-01 9541 2.6898000000e+00 8.6678000000e-01 9542 2.7090000000e+00 8.9238000000e-01 9543 2.7382000000e+00 8.7590000000e-01 9544 2.7732000000e+00 8.7677000000e-01 9545 2.8102000000e+00 8.9561000000e-01 9546 2.7798000000e+00 9.1870000000e-01 9547 2.7502000000e+00 9.4051000000e-01 9548 2.7524000000e+00 9.7054000000e-01 9549 2.7250000000e+00 9.6181000000e-01 9550 2.7012000000e+00 9.8413000000e-01 9551 2.6712000000e+00 9.7378000000e-01 9552 2.6425000000e+00 9.6021000000e-01 9553 2.6139000000e+00 9.8084000000e-01 9554 2.5816000000e+00 9.6785000000e-01 9555 2.5537000000e+00 9.9097000000e-01 9556 2.5204000000e+00 9.8066000000e-01 9557 2.4858000000e+00 9.7165000000e-01 9558 2.4509000000e+00 9.6409000000e-01 9559 2.4167000000e+00 9.5671000000e-01 9560 2.3825000000e+00 9.4796000000e-01 9561 2.3552000000e+00 9.7477000000e-01 9562 2.3193000000e+00 9.6694000000e-01 9563 2.2836000000e+00 9.6106000000e-01 9564 2.2706000000e+00 9.2757000000e-01 9565 2.2535000000e+00 8.9581000000e-01 9566 2.2154000000e+00 8.9765000000e-01 9567 2.1752000000e+00 9.0189000000e-01 9568 2.1296000000e+00 9.0765000000e-01 9569 2.0916000000e+00 9.2767000000e-01 9570 2.0556000000e+00 9.3754000000e-01 9571 2.0336000000e+00 9.0883000000e-01 9572 1.9954000000e+00 9.1444000000e-01 9573 1.9566000000e+00 9.2191000000e-01 9574 1.9182000000e+00 9.2879000000e-01 9575 1.8946000000e+00 8.9981000000e-01 9576 1.8582000000e+00 9.0743000000e-01 9577 1.8350000000e+00 8.8091000000e-01 9578 1.8702000000e+00 8.7199000000e-01 9579 1.8827000000e+00 8.3758000000e-01 9580 1.8937000000e+00 8.1030000000e-01 9581 1.9161000000e+00 8.2791000000e-01 9582 1.9471000000e+00 8.1101000000e-01 9583 1.9766000000e+00 8.2513000000e-01 9584 2.0078000000e+00 8.3524000000e-01 9585 2.0411000000e+00 8.4464000000e-01 9586 2.0754000000e+00 8.5203000000e-01 9587 2.1012000000e+00 8.2625000000e-01 9588 2.1382000000e+00 8.3169000000e-01 9589 2.1768000000e+00 8.3296000000e-01 9590 2.1976000000e+00 8.0099000000e-01 9591 2.2194000000e+00 7.6984000000e-01 9592 2.2557000000e+00 7.7523000000e-01 9593 2.2934000000e+00 7.8292000000e-01 9594 2.3199000000e+00 8.0278000000e-01 9595 2.3511000000e+00 8.0198000000e-01 9596 2.3880000000e+00 7.9674000000e-01 9597 2.4239000000e+00 7.9022000000e-01 9598 2.4570000000e+00 7.8805000000e-01 9599 2.4699000000e+00 8.1221000000e-01 9600 2.4977000000e+00 8.2961000000e-01 9601 2.5331000000e+00 8.3394000000e-01 9602 2.5608000000e+00 8.1775000000e-01 9603 2.5883000000e+00 8.0298000000e-01 9604 2.5923000000e+00 8.3378000000e-01 9605 2.5985000000e+00 8.7018000000e-01 9606 2.6352000000e+00 8.8181000000e-01 9607 2.6711000000e+00 8.9016000000e-01 9608 2.6844000000e+00 9.2201000000e-01 9609 2.7181000000e+00 9.2913000000e-01 9610 2.7448000000e+00 9.0552000000e-01 9611 2.6947000000e+00 9.5278000000e-01 9612 2.6677000000e+00 9.4607000000e-01 9613 2.6455000000e+00 9.2181000000e-01 9614 2.6111000000e+00 9.4502000000e-01 9615 2.5766000000e+00 9.3195000000e-01 9616 2.5480000000e+00 9.5589000000e-01 9617 2.5130000000e+00 9.4445000000e-01 9618 2.4766000000e+00 9.3600000000e-01 9619 2.4415000000e+00 9.3096000000e-01 9620 2.4094000000e+00 9.2351000000e-01 9621 2.3765000000e+00 9.1190000000e-01 9622 2.3469000000e+00 9.3803000000e-01 9623 2.3089000000e+00 9.3024000000e-01 9624 2.2941000000e+00 8.9141000000e-01 9625 2.2697000000e+00 8.6842000000e-01 9626 2.2370000000e+00 8.6116000000e-01 9627 2.1954000000e+00 8.6553000000e-01 9628 2.1544000000e+00 8.6762000000e-01 9629 2.1108000000e+00 8.6599000000e-01 9630 2.0962000000e+00 8.9712000000e-01 9631 2.0683000000e+00 9.0469000000e-01 9632 2.0519000000e+00 8.7734000000e-01 9633 2.0121000000e+00 8.7421000000e-01 9634 1.9713000000e+00 8.8463000000e-01 9635 1.9327000000e+00 8.9167000000e-01 9636 1.9074000000e+00 8.6340000000e-01 9637 1.9478000000e+00 8.5116000000e-01 9638 1.9831000000e+00 8.5411000000e-01 9639 2.0805000000e+00 8.7946000000e-01 9640 2.2137000000e+00 8.3197000000e-01 9641 2.2324000000e+00 8.0249000000e-01 9642 2.2646000000e+00 8.0829000000e-01 9643 2.2952000000e+00 8.2041000000e-01 9644 2.3291000000e+00 8.3483000000e-01 9645 2.3725000000e+00 8.3554000000e-01 9646 2.4109000000e+00 8.2242000000e-01 9647 2.4425000000e+00 8.1551000000e-01 9648 2.4607000000e+00 8.3958000000e-01 9649 2.4810000000e+00 8.6813000000e-01 9650 2.5192000000e+00 8.6327000000e-01 9651 2.5591000000e+00 8.5745000000e-01 9652 2.5704000000e+00 8.9576000000e-01 9653 2.6063000000e+00 9.0771000000e-01 9654 2.5421000000e+00 9.1977000000e-01 9655 2.5049000000e+00 9.0303000000e-01 9656 2.4628000000e+00 9.0214000000e-01 9657 2.4322000000e+00 9.0361000000e-01 9658 2.4066000000e+00 8.9023000000e-01 9659 2.3746000000e+00 8.7531000000e-01 9660 2.3385000000e+00 8.9660000000e-01 9661 2.3211000000e+00 8.6767000000e-01 9662 2.2962000000e+00 8.5377000000e-01 9663 2.2677000000e+00 8.4011000000e-01 9664 2.2431000000e+00 8.2878000000e-01 9665 2.3472000000e+00 8.6194000000e-01 9666 2.4062000000e+00 8.5593000000e-01 9667 2.4322000000e+00 8.4092000000e-01 9668 2.4403000000e+00 8.7145000000e-01 9669 2.5392000000e+00 8.8780000000e-01 9670 2.8509000000e-01 2.2002000000e-01 9671 2.5352000000e-01 2.0244000000e-01 9672 2.2306000000e-01 2.2174000000e-01 9673 2.2448000000e-01 2.5782000000e-01 9674 1.9235000000e-01 2.4049000000e-01 9675 1.9162000000e-01 2.0442000000e-01 9676 2.2146000000e-01 1.8639000000e-01 9677 1.9341000000e-01 1.7449000000e-01 9678 1.5955000000e-01 1.8108000000e-01 9679 2.1441000000e-01 1.5274000000e-01 9680 2.5275000000e-01 1.6248000000e-01 9681 2.8383000000e-01 1.8517000000e-01 9682 2.8580000000e-01 1.5609000000e-01 9683 2.3730000000e-01 1.2529000000e-01 9684 2.2320000000e-01 9.1552000000e-02 9685 3.1206000000e-01 1.6845000000e-01 9686 3.4083000000e-01 1.4920000000e-01 9687 3.4067000000e-01 1.8362000000e-01 9688 3.7784000000e-01 1.3100000000e-01 9689 3.7166000000e-01 9.5340000000e-02 9690 4.0273000000e-01 9.9837000000e-02 9691 3.1383000000e-01 2.0151000000e-01 9692 -8.5560000000e-02 1.0604000000e-01 9693 2.3130000000e-02 2.9185000000e-01 9694 -8.0099000000e-02 1.3769000000e+00 9695 -1.1214000000e-01 1.3798000000e+00 9696 -1.4041000000e-01 1.3815000000e+00 9697 -1.9622000000e-01 1.3847000000e+00 9698 -2.2407000000e-01 1.3686000000e+00 9699 -1.9844000000e-01 1.3564000000e+00 9700 -9.9026000000e-02 1.3516000000e+00 9701 -8.7448000000e-02 1.3266000000e+00 9702 -6.8304000000e-02 1.3467000000e+00 9703 -4.5989000000e-02 1.3720000000e+00 9704 -2.3577000000e-01 6.1039000000e-02 9705 -1.5379000000e-01 7.0890000000e-02 9706 -3.1949000000e-01 8.5454000000e-02 9707 -3.5999000000e-01 1.1968000000e-01 9708 -5.3256000000e-01 2.1948000000e-01 9709 -5.0647000000e-01 1.9801000000e-01 9710 -4.8323000000e-01 1.7703000000e-01 9711 -5.6471000000e-01 2.4356000000e-01 9712 -5.6040000000e-01 2.0806000000e-01 9713 -5.7530000000e-01 1.8148000000e-01 9714 -6.1026000000e-01 1.8249000000e-01 9715 -5.9125000000e-01 2.1321000000e-01 9716 -6.0906000000e-01 2.4948000000e-01 9717 -5.8466000000e-01 2.7911000000e-01 9718 -6.1344000000e-01 2.8192000000e-01 9719 -6.3449000000e-01 2.7004000000e-01 9720 -6.2828000000e-01 1.5189000000e-01 9721 3.7750000000e-01 3.7992000000e-01 9722 3.5112000000e-01 3.9047000000e-01 9723 3.5124000000e-01 3.6167000000e-01 9724 3.2381000000e-01 3.7997000000e-01 9725 1.5992000000e-01 2.2228000000e-01 9726 1.6124000000e-01 2.5972000000e-01 9727 1.9379000000e-01 2.7694000000e-01 9728 1.6304000000e-01 2.9638000000e-01 9729 1.3002000000e-01 2.7963000000e-01 9730 9.8732000000e-02 3.0026000000e-01 9731 9.6282000000e-02 2.6260000000e-01 9732 9.5931000000e-02 2.2542000000e-01 9733 1.2646000000e-01 2.0540000000e-01 9734 1.2061000000e-01 1.6972000000e-01 9735 1.2831000000e-01 2.4252000000e-01 9736 -2.6847000000e-01 3.8782000000e-01 9737 2.9171000000e-01 1.0758000000e+00 9738 2.9363000000e-01 1.0398000000e+00 9739 -1.3560000000e+00 8.4800000000e-01 9740 -1.3257000000e+00 8.3049000000e-01 9741 -1.2953000000e+00 8.1297000000e-01 9742 -1.2954000000e+00 8.4799000000e-01 9743 -1.3257000000e+00 8.6550000000e-01 9744 -1.3560000000e+00 8.8301000000e-01 9745 1.2950000000e+00 2.1712000000e-01 9746 1.2612000000e+00 2.2190000000e-01 9747 -1.0768000000e+00 2.3556000000e-01 9748 -1.0269000000e+00 2.2539000000e-01 9749 -1.0163000000e+00 2.4570000000e-01 9750 6.7129000000e-01 2.8256000000e-01 9751 3.3910000000e+00 1.1239000000e-01 9752 -6.9069000000e-01 7.2306000000e-01 9753 -4.7426000000e-01 7.8595000000e-01 9754 -5.0869000000e-01 7.8914000000e-01 9755 -6.9220000000e-01 7.5875000000e-01 9756 -5.2243000000e-01 7.5144000000e-01 9757 -5.0565000000e-01 7.2626000000e-01 9758 -6.6259000000e-01 7.6859000000e-01 9759 -5.4641000000e-01 7.7618000000e-01 9760 -3.6051000000e-01 7.9358000000e-01 9761 6.5049000000e-01 3.0940000000e-01 9762 6.4700000000e-01 3.4449000000e-01 9763 1.0640000000e+00 1.1529000000e+00 9764 1.0507000000e+00 1.1340000000e+00 9765 1.0331000000e+00 1.1598000000e+00 9766 1.5614000000e+00 5.1401000000e-01 9767 9.7477000000e-01 1.1750000000e+00 9768 1.5269000000e-03 3.3282000000e-02 9769 -3.2863000000e-02 3.0137000000e-02 9770 -5.6096000000e-02 5.8130000000e-02 9771 -9.2488000000e-02 3.6114000000e-02 9772 -6.2614000000e-02 2.5039000000e-02 9773 -1.1715000000e-01 6.5550000000e-02 9774 -8.6987000000e-02 7.4509000000e-02 9775 9.4797000000e-01 8.1843000000e-01 9776 -9.8960000000e-01 6.7075000000e-01 9777 3.2019000000e-01 6.2285000000e-01 9778 -1.2900000000e-01 9.0912000000e-02 9779 -1.0719000000e-01 9.1278000000e-02 9780 -6.3461000000e-02 8.9868000000e-02 9781 -6.9898000000e-01 3.0367000000e-02 9782 2.6567000000e-01 6.3311000000e-01 9783 2.4266000000e-01 6.4709000000e-01 9784 9.1268000000e-01 2.5754000000e-01 9785 3.8108000000e-01 5.4707000000e-01 9786 1.0089000000e+00 2.7465000000e-01 9787 1.0282000000e+00 3.0377000000e-01 9788 1.0474000000e+00 3.3283000000e-01 9789 9.9392000000e-01 3.0612000000e-01 9790 9.0828000000e-01 1.4389000000e+00 9791 1.9397000000e+00 1.4936000000e-01 9792 6.1349000000e-01 2.9027000000e-01 9793 -5.0801000000e-01 9.4070000000e-01 9794 -4.8167000000e-01 9.2801000000e-01 9795 -1.5664000000e-01 1.2235000000e+00 9796 2.9520000000e-01 4.3706000000e-01 9797 3.2447000000e-01 4.5847000000e-01 9798 3.3201000000e-01 4.1848000000e-01 9799 2.9467000000e-01 4.0022000000e-01 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump_b1.grf000066400000000000000000011214531514310134000257650ustar00rootroot000000000000000 9800 57978 1 000 3 414 408 7 4 9772 44 9773 45 4 77 1475 1476 78 3 1243 148 149 3 694 207 208 3 522 349 350 4 8 413 414 1 4 7 413 9 648 4 10 3239 648 8 4 3236 3239 9 11 4 12 3234 3236 10 4 3235 3234 11 13 4 3685 3235 12 14 4 15 419 3685 13 4 16 418 419 14 4 15 418 17 3089 4 18 3087 3089 16 4 17 3087 3088 19 4 3088 18 3096 20 4 3096 19 3097 21 4 22 415 3097 20 4 21 415 1172 23 4 1172 22 1173 24 4 1173 23 1174 25 4 1174 24 1527 26 4 1527 25 27 9782 4 28 3853 9782 26 4 29 2180 3853 27 4 28 2180 2181 30 4 2181 29 31 2504 4 32 2506 2504 30 4 2509 2506 31 33 4 3331 2509 34 32 4 3331 33 3332 35 4 36 2249 3332 34 4 35 2249 2250 37 4 2250 36 2251 38 4 39 417 2251 37 4 40 416 417 38 4 39 416 2195 41 4 2195 40 2196 42 4 2196 41 2197 43 3 2197 42 44 4 43 2197 9772 2 4 9770 9773 2 46 4 47 9769 9770 45 4 48 428 9769 46 4 49 427 428 47 4 48 427 50 412 4 51 411 412 49 4 50 411 52 422 4 51 422 423 53 4 423 52 4651 54 4 4651 53 4652 55 4 4658 4652 54 56 4 5381 4658 55 57 4 58 431 5381 56 4 57 431 430 59 4 60 409 430 58 4 59 409 2219 61 4 2219 60 2220 62 4 2220 61 2221 63 4 2221 62 2222 64 4 2222 63 2223 65 4 6702 2223 64 66 4 6702 65 6704 67 4 6704 66 3506 68 4 69 3453 3506 67 4 70 3452 3453 68 4 3442 3452 69 71 4 72 2492 3442 70 4 71 2492 2493 73 4 74 410 2493 72 4 73 410 75 429 4 74 429 76 1604 4 75 1604 1605 77 4 3 1475 1605 76 4 1476 3 1477 79 4 1477 78 1478 80 4 1478 79 1479 81 4 1479 80 1480 82 4 1480 81 1481 83 4 1481 82 1482 84 4 1482 83 1483 85 4 1483 84 1484 86 4 87 1161 1484 85 4 86 1161 1162 88 4 1162 87 1163 89 4 1163 88 1164 90 4 1164 89 1187 91 4 1187 90 1186 92 4 1186 91 1188 93 4 1188 92 1189 94 4 1189 93 1190 95 4 1190 94 1191 96 4 1191 95 1192 97 4 1192 96 1193 98 4 1193 97 1194 99 4 1194 98 1195 100 4 1195 99 1196 101 4 1196 100 1197 102 4 1197 101 1198 103 4 1198 102 1199 104 4 1199 103 1200 105 4 1200 104 1201 106 4 1201 105 1202 107 4 1202 106 1203 108 4 1203 107 1204 109 4 1204 108 1205 110 4 1205 109 1206 111 4 1206 110 1207 112 4 1207 111 1208 113 4 1208 112 1209 114 4 1209 113 1210 115 4 1210 114 1211 116 4 1211 115 1212 117 4 1212 116 1213 118 4 1213 117 1214 119 4 1214 118 1215 120 4 1215 119 1216 121 4 1216 120 1217 122 4 1217 121 1218 123 4 1218 122 1219 124 4 1219 123 1220 125 4 1220 124 1221 126 4 1221 125 1222 127 4 1222 126 1223 128 4 1223 127 1224 129 4 1224 128 1225 130 4 1225 129 1226 131 4 1226 130 1227 132 4 1227 131 1228 133 4 1228 132 1229 134 4 1229 133 1230 135 4 1230 134 1231 136 4 1231 135 1232 137 4 1232 136 1233 138 4 1233 137 1234 139 4 1234 138 1235 140 4 1235 139 1236 141 4 1236 140 1237 142 4 1237 141 1238 143 4 1238 142 1239 144 4 1239 143 1240 145 4 1240 144 1241 146 4 1241 145 1242 147 4 1242 146 1243 148 3 1243 147 4 4 1243 4 1244 150 4 1244 149 1245 151 4 1245 150 1246 152 4 1246 151 1247 153 4 1247 152 1248 154 4 1248 153 1249 155 4 156 924 1249 154 4 155 924 925 157 4 925 156 926 158 4 926 157 927 159 4 927 158 928 160 4 928 159 929 161 4 929 160 930 162 4 930 161 931 163 4 931 162 932 164 4 165 652 932 163 4 164 652 653 166 4 653 165 654 167 4 654 166 655 168 4 655 167 656 169 4 656 168 657 170 4 657 169 658 171 4 658 170 659 172 4 659 171 660 173 4 660 172 661 174 4 661 173 662 175 4 662 174 663 176 4 663 175 664 177 4 664 176 665 178 4 665 177 666 179 4 666 178 667 180 4 667 179 668 181 4 668 180 669 182 4 669 181 670 183 4 670 182 671 184 4 671 183 672 185 4 672 184 673 186 4 673 185 674 187 4 674 186 675 188 4 675 187 676 189 4 676 188 677 190 4 677 189 678 191 4 678 190 679 192 4 679 191 680 193 4 680 192 681 194 4 681 193 682 195 4 682 194 683 196 4 683 195 684 197 4 684 196 685 198 4 685 197 686 199 4 686 198 687 200 4 687 199 688 201 4 688 200 689 202 4 689 201 690 203 4 690 202 691 204 4 691 203 692 205 4 692 204 693 206 3 693 205 207 4 693 206 694 5 3 694 5 209 4 694 208 695 210 4 695 209 696 211 4 696 210 697 212 4 697 211 698 213 4 698 212 699 214 4 699 213 700 215 4 700 214 701 216 4 701 215 702 217 4 702 216 703 218 4 703 217 704 219 4 704 218 705 220 4 705 219 706 221 4 706 220 707 222 4 707 221 708 223 4 708 222 709 224 4 709 223 710 225 4 710 224 711 226 4 711 225 712 227 4 712 226 713 228 4 713 227 714 229 4 714 228 715 230 4 715 229 716 231 4 716 230 717 232 4 717 231 718 233 4 718 232 719 234 4 719 233 720 235 4 720 234 721 236 4 721 235 722 237 4 722 236 723 238 4 723 237 724 239 4 724 238 725 240 4 725 239 726 241 4 726 240 727 242 4 727 241 728 243 4 728 242 729 244 4 729 243 730 245 4 730 244 731 246 4 731 245 732 247 4 732 246 733 248 4 733 247 734 249 4 734 248 735 250 4 735 249 736 251 4 736 250 737 252 4 737 251 738 253 4 738 252 739 254 4 739 253 740 255 4 740 254 741 256 4 741 255 742 257 4 742 256 743 258 4 259 432 743 257 4 258 432 433 260 4 433 259 434 261 4 434 260 435 262 4 435 261 436 263 4 436 262 437 264 4 437 263 438 265 4 438 264 439 266 4 439 265 440 267 4 440 266 441 268 4 441 267 442 269 4 442 268 443 270 4 443 269 444 271 4 444 270 445 272 4 445 271 446 273 4 446 272 447 274 4 447 273 448 275 4 448 274 449 276 4 449 275 450 277 4 450 276 451 278 4 451 277 452 279 4 452 278 453 280 4 453 279 454 281 4 454 280 455 282 4 455 281 456 283 4 456 282 457 284 4 457 283 458 285 4 458 284 459 286 4 459 285 460 287 4 460 286 461 288 4 461 287 462 289 4 462 288 463 290 4 463 289 464 291 4 464 290 465 292 4 465 291 466 293 4 466 292 467 294 4 467 293 468 295 4 468 294 469 296 4 469 295 470 297 4 470 296 471 298 4 471 297 472 299 4 472 298 473 300 4 473 299 474 301 4 474 300 475 302 4 475 301 476 303 4 476 302 477 304 4 477 303 478 305 4 478 304 479 306 4 479 305 480 307 4 480 306 481 308 4 481 307 482 309 4 482 308 483 310 4 483 309 484 311 4 484 310 485 312 4 485 311 486 313 4 486 312 487 314 4 487 313 488 315 4 488 314 489 316 4 489 315 490 317 4 490 316 491 318 4 491 317 492 319 4 492 318 493 320 4 493 319 494 321 4 494 320 495 322 4 495 321 496 323 4 496 322 497 324 4 497 323 498 325 4 498 324 499 326 4 499 325 500 327 4 500 326 501 328 4 501 327 502 329 4 502 328 503 330 4 503 329 504 331 4 504 330 505 332 4 505 331 506 333 4 506 332 507 334 4 507 333 508 335 4 508 334 509 336 4 509 335 510 337 4 510 336 511 338 4 511 337 512 339 4 512 338 513 340 4 513 339 514 341 4 514 340 515 342 4 515 341 516 343 4 516 342 517 344 4 517 343 518 345 4 518 344 519 346 4 519 345 520 347 4 520 346 521 348 4 521 347 522 349 3 522 348 6 4 522 6 523 351 4 523 350 524 352 4 524 351 525 353 4 525 352 526 354 4 526 353 527 355 4 527 354 528 356 4 528 355 529 357 4 529 356 530 358 4 530 357 531 359 4 531 358 532 360 4 532 359 533 361 4 533 360 534 362 4 534 361 535 363 4 535 362 536 364 4 536 363 537 365 4 537 364 538 366 4 538 365 539 367 4 539 366 540 368 4 540 367 541 369 4 541 368 542 370 4 542 369 543 371 4 543 370 544 372 4 544 371 545 373 4 545 372 546 374 4 546 373 547 375 4 547 374 548 376 4 551 548 375 377 4 551 376 552 378 4 552 377 553 379 4 553 378 554 380 4 557 554 379 381 4 567 557 380 382 4 567 381 568 383 4 568 382 569 384 4 569 383 570 385 4 570 384 571 386 4 426 571 387 385 4 388 424 426 386 4 387 424 425 389 4 580 425 390 388 4 585 580 389 391 4 585 390 586 392 4 586 391 587 393 4 587 392 421 394 4 395 420 421 393 4 394 420 595 396 4 397 597 595 395 4 623 597 396 398 4 623 397 624 399 4 624 398 625 400 4 399 625 627 401 4 627 400 629 402 4 631 629 403 401 4 631 402 632 404 4 403 632 2098 405 4 406 650 2098 404 4 649 650 405 407 4 649 406 414 408 3 414 407 1 6 59 60 430 2219 2546 2842 6 73 74 2493 2494 1607 429 6 50 51 412 4522 4516 422 6 50 411 49 427 4515 4516 6 7 8 414 648 647 649 6 7 413 649 407 408 1 6 21 22 1172 3883 3129 3097 6 39 40 417 2195 2253 9705 6 39 416 38 2251 2252 2253 6 15 16 419 3089 3099 3100 6 15 418 14 3100 3101 3685 6 394 395 421 594 589 595 6 394 420 587 393 588 589 6 51 52 423 5238 4522 411 6 422 52 53 4651 9685 5238 6 387 388 425 426 578 576 6 424 388 578 579 580 389 6 387 424 573 571 386 576 6 48 49 428 412 4515 5613 6 48 427 47 5613 7501 9769 6 74 75 1604 1606 1607 410 6 59 409 431 58 2842 9691 6 57 58 430 9690 5381 9691 6 258 259 433 743 744 745 6 432 259 260 434 745 746 6 433 260 261 435 746 747 6 434 261 262 436 747 748 6 435 262 263 437 748 749 6 436 263 264 438 749 750 6 437 264 265 439 750 751 6 438 265 266 440 751 752 6 439 266 267 441 752 753 6 440 267 268 442 753 754 6 441 268 269 443 754 755 6 442 269 270 444 755 756 6 443 270 271 445 756 757 6 444 271 272 446 757 758 6 445 272 273 447 758 759 6 446 273 274 448 759 760 6 447 274 275 449 760 761 6 448 275 276 450 761 762 6 449 276 277 451 762 763 6 450 277 278 452 763 764 6 451 278 279 453 764 765 6 452 279 280 454 765 766 6 453 280 281 455 766 767 6 454 281 282 456 767 768 6 455 282 283 457 768 769 6 456 283 284 458 769 770 6 457 284 285 459 770 771 6 458 285 286 460 771 772 6 459 286 287 461 772 773 6 460 287 288 462 773 774 6 461 288 289 463 774 775 6 462 289 290 464 775 776 6 463 290 291 465 776 777 6 464 291 292 466 777 778 6 465 292 293 467 778 779 6 466 293 294 468 779 780 6 467 294 295 469 780 781 6 468 295 296 470 781 782 6 469 296 297 471 782 783 6 470 297 298 472 783 784 6 471 298 299 473 784 785 6 472 299 300 474 785 786 6 473 300 301 475 786 787 6 474 301 302 476 787 788 6 475 302 303 477 788 789 6 476 303 304 478 789 790 6 477 304 305 479 790 791 6 478 305 306 480 791 792 6 479 306 307 481 792 793 6 480 307 308 482 793 794 6 481 308 309 483 794 795 6 482 309 310 484 795 796 6 483 310 311 485 796 797 6 484 311 312 486 797 798 6 485 312 313 487 798 799 6 486 313 314 488 799 800 6 487 314 315 489 800 801 6 488 315 316 490 801 802 6 489 316 317 491 802 803 6 490 317 318 492 803 804 6 491 318 319 493 804 805 6 492 319 320 494 805 806 6 493 320 321 495 806 807 6 494 321 322 496 807 808 6 495 322 323 497 808 809 6 496 323 324 498 809 810 6 497 324 325 499 810 811 6 498 325 326 500 811 812 6 499 326 327 501 812 813 6 500 327 328 502 813 814 6 501 328 329 503 814 815 6 502 329 330 504 815 816 6 503 330 331 505 816 817 6 504 331 332 506 817 818 6 505 332 333 507 818 819 6 506 333 334 508 819 820 6 507 334 335 509 820 821 6 508 335 336 510 821 822 6 509 336 337 511 822 823 6 510 337 338 512 823 824 6 511 338 339 513 824 825 6 512 339 340 514 825 826 6 513 340 341 515 826 827 6 514 341 342 516 827 828 6 515 342 343 517 828 829 6 516 343 344 518 829 830 6 517 344 345 519 830 831 6 518 345 346 520 831 832 6 519 346 347 521 832 833 6 520 347 348 522 833 834 7 521 348 349 6 350 523 834 6 522 350 351 524 834 835 5 523 351 352 525 835 6 524 352 353 526 835 836 6 525 353 354 527 836 837 6 526 354 355 528 837 838 6 527 355 356 529 838 839 6 528 356 357 530 839 840 6 529 357 358 531 840 841 6 530 358 359 532 841 842 6 531 359 360 533 842 843 6 532 360 361 534 843 844 6 533 361 362 535 844 845 6 534 362 363 536 845 846 6 535 363 364 537 846 847 6 536 364 365 538 847 848 6 537 365 366 539 848 849 6 538 366 367 540 849 850 6 539 367 368 541 850 851 6 540 368 369 542 854 851 6 541 369 370 543 856 854 6 542 370 371 544 856 857 6 543 371 372 545 857 858 6 544 372 373 546 858 859 6 545 373 374 547 859 860 6 546 374 375 548 549 860 6 547 375 549 550 551 376 6 547 548 550 860 861 862 6 549 548 551 862 863 864 6 550 548 376 377 552 864 6 551 377 378 553 864 865 6 552 378 379 554 555 865 6 553 379 555 556 557 380 6 553 554 556 558 865 866 6 555 554 557 558 559 566 6 556 554 380 566 567 381 6 555 556 559 560 866 867 6 558 556 560 561 562 566 6 558 559 561 867 868 869 6 560 559 562 563 923 869 6 561 559 563 564 565 566 6 561 562 564 922 921 923 6 563 562 565 9744 922 9745 6 564 562 566 567 9745 568 6 565 562 559 556 557 567 6 566 557 381 382 568 565 6 567 382 383 569 9745 565 6 568 383 384 570 9745 9740 6 569 384 385 571 572 9740 6 570 385 572 573 426 386 6 570 571 573 574 9740 9741 6 572 571 426 574 575 576 6 572 573 575 9741 9742 917 6 574 573 576 577 917 916 6 575 573 426 577 578 424 6 575 576 578 916 2475 1516 6 577 576 424 425 579 1516 6 578 425 580 581 582 1516 6 579 425 389 581 585 390 6 579 580 582 583 584 585 6 579 581 583 1516 1517 1518 6 582 581 584 1518 1509 1507 6 583 581 585 586 590 1507 6 584 581 580 390 391 586 6 585 391 392 587 590 584 6 586 392 393 421 588 590 6 587 421 589 590 591 592 6 588 421 592 593 594 420 6 587 588 591 586 584 1507 6 590 588 592 1507 1508 1515 6 591 588 589 593 600 1515 6 592 589 594 598 599 600 6 593 589 420 595 596 598 6 594 420 395 596 597 396 6 594 595 597 598 622 607 6 596 595 622 623 397 396 6 594 596 593 599 606 607 6 593 598 600 601 605 606 6 593 599 601 602 1515 592 6 600 599 602 603 604 605 6 600 601 603 1514 1515 1540 6 602 601 604 1540 1541 1584 6 603 601 605 1603 1584 609 6 604 601 599 606 608 609 6 605 599 598 607 608 615 6 606 598 622 621 596 615 6 605 606 609 610 611 615 6 605 608 610 1603 604 1601 6 609 608 611 612 1600 1601 6 610 608 612 613 614 615 6 610 611 613 6558 1599 1600 6 612 611 614 616 3765 6558 6 613 611 615 616 617 621 6 614 611 621 607 606 608 6 613 614 617 618 3761 3765 6 616 614 618 619 620 621 6 616 617 619 3761 3762 626 6 618 617 620 624 625 626 6 619 617 621 622 624 623 6 620 617 614 615 622 607 6 620 621 607 596 597 623 6 622 597 397 398 624 620 6 623 398 399 625 619 620 6 624 399 619 626 627 400 6 619 625 627 628 3762 618 6 626 625 628 629 400 401 6 626 627 629 630 3762 3763 6 628 627 630 631 402 401 6 628 629 631 636 3763 633 6 630 629 402 403 632 633 6 631 403 633 634 404 2098 6 631 632 634 635 636 630 6 633 632 635 2098 651 642 6 633 634 636 637 638 642 6 633 635 637 3218 3763 630 6 636 635 638 639 3218 3219 6 637 635 639 640 641 642 6 637 638 640 3219 3220 3221 6 639 638 641 3221 3240 3241 6 640 638 642 643 644 3240 6 641 638 643 634 651 635 6 641 642 644 645 646 651 6 641 643 645 3238 3237 3240 6 644 643 646 647 648 3238 6 645 643 647 649 650 651 5 645 646 648 413 649 7 645 647 413 9 3239 3238 8 7 413 647 646 650 406 407 414 6 649 646 651 406 405 2098 6 650 646 634 2098 642 643 6 164 165 653 932 933 934 6 652 165 166 654 934 935 6 653 166 167 655 935 936 6 654 167 168 656 936 937 6 655 168 169 657 937 938 6 656 169 170 658 938 939 6 657 170 171 659 939 940 6 658 171 172 660 940 941 6 659 172 173 661 941 942 6 660 173 174 662 942 943 6 661 174 175 663 943 944 6 662 175 176 664 944 945 6 663 176 177 665 945 946 6 664 177 178 666 946 947 6 665 178 179 667 947 948 6 666 179 180 668 948 949 6 667 180 181 669 949 950 6 668 181 182 670 950 951 6 669 182 183 671 951 952 6 670 183 184 672 952 953 6 671 184 185 673 953 954 6 672 185 186 674 954 955 6 673 186 187 675 955 956 6 674 187 188 676 956 957 6 675 188 189 677 957 958 6 676 189 190 678 958 959 6 677 190 191 679 959 960 6 678 191 192 680 960 961 6 679 192 193 681 961 962 6 680 193 194 682 962 963 6 681 194 195 683 963 964 6 682 195 196 684 964 965 6 683 196 197 685 965 966 6 684 197 198 686 966 967 6 685 198 199 687 967 968 6 686 199 200 688 968 969 6 687 200 201 689 969 970 6 688 201 202 690 970 971 6 689 202 203 691 971 972 6 690 203 204 692 972 973 6 691 204 205 693 973 974 7 692 205 206 207 694 974 695 6 693 207 5 208 209 695 7 694 209 210 696 974 693 975 6 695 210 211 697 975 976 6 696 211 212 698 976 977 6 697 212 213 699 977 978 6 698 213 214 700 978 979 6 699 214 215 701 979 980 6 700 215 216 702 980 981 6 701 216 217 703 981 982 6 702 217 218 704 982 983 6 703 218 219 705 983 984 6 704 219 220 706 984 985 6 705 220 221 707 985 986 6 706 221 222 708 986 987 6 707 222 223 709 987 988 6 708 223 224 710 988 989 6 709 224 225 711 989 990 6 710 225 226 712 990 991 6 711 226 227 713 991 992 6 712 227 228 714 992 993 6 713 228 229 715 993 994 6 714 229 230 716 994 995 6 715 230 231 717 995 996 6 716 231 232 718 996 997 6 717 232 233 719 997 998 6 718 233 234 720 998 999 6 719 234 235 721 999 1000 6 720 235 236 722 1000 1001 6 721 236 237 723 1001 1002 6 722 237 238 724 1002 1003 6 723 238 239 725 1003 1004 6 724 239 240 726 1004 1005 6 725 240 241 727 1005 1006 6 726 241 242 728 1006 1007 6 727 242 243 729 1007 1008 6 728 243 244 730 1008 1009 6 729 244 245 731 1009 1010 6 730 245 246 732 1010 1011 6 731 246 247 733 1011 1012 6 732 247 248 734 1012 1013 6 733 248 249 735 1013 1014 6 734 249 250 736 1017 1014 6 735 250 251 737 1017 1018 6 736 251 252 738 1018 1019 6 737 252 253 739 1019 1020 6 738 253 254 740 1020 1021 6 739 254 255 741 1021 1022 6 740 255 256 742 1022 1023 6 741 256 257 743 1023 1024 6 742 257 258 432 744 1024 6 743 432 745 1024 1025 1026 6 744 432 433 746 1026 1027 6 745 433 434 747 1027 1028 6 746 434 435 748 1028 1029 6 747 435 436 749 1029 1030 6 748 436 437 750 1030 1031 6 749 437 438 751 1031 1032 6 750 438 439 752 1032 1033 6 751 439 440 753 1033 1034 6 752 440 441 754 1034 1035 6 753 441 442 755 1035 1036 6 754 442 443 756 1036 1037 6 755 443 444 757 1037 1038 6 756 444 445 758 1038 1039 6 757 445 446 759 1039 1040 6 758 446 447 760 1040 1041 6 759 447 448 761 1041 1042 6 760 448 449 762 1042 1043 6 761 449 450 763 1043 1044 6 762 450 451 764 1044 1045 6 763 451 452 765 1045 1046 6 764 452 453 766 1046 1047 6 765 453 454 767 1047 1048 6 766 454 455 768 1048 1049 6 767 455 456 769 1049 1050 6 768 456 457 770 1050 1051 6 769 457 458 771 1051 1052 6 770 458 459 772 1052 1053 6 771 459 460 773 1053 1054 6 772 460 461 774 1054 1055 6 773 461 462 775 1055 1056 6 774 462 463 776 1056 1057 6 775 463 464 777 1057 1058 6 776 464 465 778 1058 1059 6 777 465 466 779 1059 1060 6 778 466 467 780 1060 1061 6 779 467 468 781 1061 1062 6 780 468 469 782 1062 1063 6 781 469 470 783 1063 1064 6 782 470 471 784 1064 1065 6 783 471 472 785 1065 1066 6 784 472 473 786 1066 1067 6 785 473 474 787 1067 1068 6 786 474 475 788 1068 1069 6 787 475 476 789 1069 1070 6 788 476 477 790 1070 1071 6 789 477 478 791 1071 1072 6 790 478 479 792 1072 1073 6 791 479 480 793 1073 1074 6 792 480 481 794 1074 1075 6 793 481 482 795 1075 1076 6 794 482 483 796 1076 1077 6 795 483 484 797 1077 1078 6 796 484 485 798 1078 1079 6 797 485 486 799 1079 1080 6 798 486 487 800 1080 1081 6 799 487 488 801 1081 1082 6 800 488 489 802 1082 1083 6 801 489 490 803 1083 1084 6 802 490 491 804 1084 1085 6 803 491 492 805 1085 1086 6 804 492 493 806 1086 1087 6 805 493 494 807 1087 1088 6 806 494 495 808 1088 1089 6 807 495 496 809 1089 1090 6 808 496 497 810 1090 1091 6 809 497 498 811 1091 1092 6 810 498 499 812 1092 1093 6 811 499 500 813 1093 1094 6 812 500 501 814 1094 1095 6 813 501 502 815 1095 1096 6 814 502 503 816 1096 1097 6 815 503 504 817 1097 1098 6 816 504 505 818 1098 1099 6 817 505 506 819 1099 1100 6 818 506 507 820 1100 1101 6 819 507 508 821 1101 1102 6 820 508 509 822 1102 1103 6 821 509 510 823 1103 1104 6 822 510 511 824 1104 1105 6 823 511 512 825 1105 1106 6 824 512 513 826 1106 1107 6 825 513 514 827 1107 1108 6 826 514 515 828 1108 1109 6 827 515 516 829 1109 1110 6 828 516 517 830 1110 1111 6 829 517 518 831 1111 1112 6 830 518 519 832 1112 1113 6 831 519 520 833 1113 1114 6 832 520 521 834 1114 1115 6 833 521 522 523 835 1115 6 834 523 524 525 836 1115 7 835 525 526 837 1115 1116 1117 6 836 526 527 838 1117 1118 6 837 527 528 839 1118 1119 6 838 528 529 840 1119 1120 6 839 529 530 841 1120 1121 6 840 530 531 842 1121 1122 6 841 531 532 843 1122 1123 6 842 532 533 844 1123 1124 6 843 533 534 845 1124 1125 6 844 534 535 846 1125 1126 6 845 535 536 847 1126 1127 6 846 536 537 848 1127 1128 6 847 537 538 849 1128 1129 6 848 538 539 850 1129 1130 6 849 539 540 851 852 1130 6 850 540 852 853 854 541 6 850 851 853 1130 1131 1132 6 852 851 854 855 1132 1133 6 853 851 855 856 542 541 6 853 854 856 1133 1134 1135 6 855 854 542 543 857 1135 6 856 543 544 858 1135 1136 6 857 544 545 859 1136 1137 6 858 545 546 860 1137 1138 6 859 546 547 549 861 1138 6 860 549 862 1138 1139 1140 6 861 549 550 863 1140 1141 6 862 550 864 1141 1142 1143 6 863 550 551 552 865 1143 6 864 552 553 555 866 1143 6 865 555 558 867 1143 1144 6 866 558 560 868 1144 1145 6 867 560 869 870 1145 1146 6 868 560 870 871 923 561 6 868 869 871 872 1146 1147 6 870 869 872 873 874 923 6 870 871 873 1147 1148 1149 6 872 871 874 875 1152 1149 6 873 871 875 876 923 921 6 873 874 876 877 1171 1152 6 875 874 877 878 920 921 6 875 876 878 879 880 1171 6 877 876 879 919 883 920 6 877 878 880 881 882 883 6 877 879 881 885 887 1171 6 880 879 882 885 886 892 6 881 879 883 884 892 893 6 882 879 884 918 919 878 6 882 883 913 893 914 918 6 880 881 886 887 888 889 6 885 881 889 890 891 892 6 880 885 888 1965 1170 1171 6 887 885 889 1966 1965 2076 6 888 885 886 890 2076 2077 6 889 886 891 2077 2078 2082 6 890 886 892 894 895 2082 6 891 886 881 882 893 894 6 892 882 894 897 913 884 6 892 893 891 895 896 897 6 891 894 896 898 899 2082 6 895 894 897 898 910 911 6 896 894 893 911 912 913 6 895 896 899 900 901 910 6 895 898 900 902 2082 2081 6 899 898 901 902 903 907 6 900 898 907 908 909 910 6 899 900 903 904 2081 2083 6 902 900 904 905 906 907 6 902 903 905 2083 2084 2085 6 904 903 906 2085 2086 1566 6 905 903 907 1564 1565 1566 6 906 903 900 901 908 1564 6 907 901 909 1544 1564 1537 6 908 901 910 1523 1524 1537 6 909 901 898 896 911 1523 6 910 896 897 912 1521 1523 6 911 897 913 1522 1521 915 6 912 897 893 884 914 915 6 913 884 915 916 917 918 6 913 914 916 2475 1522 912 6 915 914 917 575 577 2475 6 916 914 918 9742 574 575 6 917 914 884 883 919 9742 6 918 883 878 920 9743 9742 6 919 878 876 921 922 9743 6 920 876 922 563 923 874 6 920 921 563 9744 9743 564 6 563 921 874 871 869 561 6 155 156 925 1249 1250 1251 6 924 156 157 926 1251 1252 6 925 157 158 927 1252 1253 6 926 158 159 928 1253 1254 6 927 159 160 929 1254 1255 6 928 160 161 930 1255 1256 6 929 161 162 931 1256 1257 6 930 162 163 932 1257 1258 6 931 163 164 652 933 1258 6 932 652 934 1258 1259 1260 6 933 652 653 935 1260 1261 6 934 653 654 936 1261 1262 6 935 654 655 937 1262 1263 6 936 655 656 938 1263 1264 6 937 656 657 939 1264 1265 6 938 657 658 940 1265 1266 6 939 658 659 941 1266 1267 6 940 659 660 942 1267 1268 6 941 660 661 943 1268 1269 6 942 661 662 944 1269 1270 6 943 662 663 945 1270 1271 6 944 663 664 946 1271 1272 6 945 664 665 947 1272 1273 6 946 665 666 948 1273 1274 6 947 666 667 949 1274 1275 6 948 667 668 950 1275 1276 6 949 668 669 951 1276 1277 6 950 669 670 952 1277 1278 6 951 670 671 953 1278 1279 6 952 671 672 954 1279 1280 6 953 672 673 955 1280 1281 6 954 673 674 956 1281 1282 6 955 674 675 957 1282 1283 6 956 675 676 958 1283 1284 6 957 676 677 959 1284 1285 6 958 677 678 960 1285 1286 6 959 678 679 961 1286 1287 6 960 679 680 962 1287 1288 6 961 680 681 963 1288 1289 6 962 681 682 964 1289 1290 6 963 682 683 965 1290 1291 6 964 683 684 966 1291 1292 6 965 684 685 967 1292 1293 6 966 685 686 968 1293 1294 6 967 686 687 969 1294 1295 6 968 687 688 970 1295 1296 6 969 688 689 971 1296 1297 6 970 689 690 972 1297 1298 6 971 690 691 973 1298 1299 6 972 691 692 974 1299 1300 6 973 692 693 695 975 1300 5 974 695 696 976 1300 6 975 696 697 977 1300 1301 6 976 697 698 978 1301 1302 6 977 698 699 979 1302 1303 6 978 699 700 980 1303 1304 6 979 700 701 981 1304 1305 6 980 701 702 982 1305 1306 6 981 702 703 983 1306 1307 6 982 703 704 984 1307 1308 6 983 704 705 985 1308 1309 6 984 705 706 986 1309 1310 6 985 706 707 987 1310 1311 6 986 707 708 988 1311 1312 6 987 708 709 989 1312 1313 6 988 709 710 990 1313 1314 6 989 710 711 991 1314 1315 6 990 711 712 992 1315 1316 6 991 712 713 993 1316 1317 6 992 713 714 994 1317 1318 6 993 714 715 995 1318 1319 6 994 715 716 996 1319 1320 6 995 716 717 997 1320 1321 6 996 717 718 998 1321 1322 6 997 718 719 999 1322 1323 6 998 719 720 1000 1323 1324 6 999 720 721 1001 1324 1325 6 1000 721 722 1002 1325 1326 6 1001 722 723 1003 1326 1327 6 1002 723 724 1004 1327 1328 6 1003 724 725 1005 1328 1329 6 1004 725 726 1006 1329 1330 6 1005 726 727 1007 1330 1331 6 1006 727 728 1008 1331 1332 6 1007 728 729 1009 1332 1333 6 1008 729 730 1010 1333 1334 6 1009 730 731 1011 1334 1335 6 1010 731 732 1012 1335 1336 6 1011 732 733 1013 1336 1337 6 1012 733 734 1014 1015 1337 6 1013 734 1015 1016 1017 735 6 1013 1014 1016 1337 1338 1339 6 1015 1014 1017 1339 1340 1341 6 1016 1014 735 736 1018 1341 6 1017 736 737 1019 1341 1342 6 1018 737 738 1020 1342 1343 6 1019 738 739 1021 1343 1344 6 1020 739 740 1022 1344 1345 6 1021 740 741 1023 1345 1346 6 1022 741 742 1024 1346 1347 6 1023 742 743 744 1025 1347 6 1024 744 1026 1347 1348 1349 6 1025 744 745 1027 1349 1350 6 1026 745 746 1028 1350 1351 6 1027 746 747 1029 1351 1352 6 1028 747 748 1030 1352 1353 6 1029 748 749 1031 1353 1354 6 1030 749 750 1032 1354 1355 6 1031 750 751 1033 1355 1356 6 1032 751 752 1034 1356 1357 6 1033 752 753 1035 1357 1358 6 1034 753 754 1036 1358 1359 6 1035 754 755 1037 1359 1360 6 1036 755 756 1038 1360 1361 6 1037 756 757 1039 1361 1362 6 1038 757 758 1040 1362 1363 6 1039 758 759 1041 1363 1364 6 1040 759 760 1042 1364 1365 6 1041 760 761 1043 1365 1366 6 1042 761 762 1044 1366 1367 6 1043 762 763 1045 1367 1368 6 1044 763 764 1046 1368 1369 6 1045 764 765 1047 1369 1370 6 1046 765 766 1048 1370 1371 6 1047 766 767 1049 1371 1372 6 1048 767 768 1050 1372 1373 6 1049 768 769 1051 1373 1374 6 1050 769 770 1052 1374 1375 6 1051 770 771 1053 1375 1376 6 1052 771 772 1054 1376 1377 6 1053 772 773 1055 1377 1378 6 1054 773 774 1056 1378 1379 6 1055 774 775 1057 1379 1380 6 1056 775 776 1058 1380 1381 6 1057 776 777 1059 1381 1382 6 1058 777 778 1060 1382 1383 6 1059 778 779 1061 1383 1384 6 1060 779 780 1062 1384 1385 6 1061 780 781 1063 1385 1386 6 1062 781 782 1064 1386 1387 6 1063 782 783 1065 1387 1388 6 1064 783 784 1066 1388 1389 6 1065 784 785 1067 1389 1390 6 1066 785 786 1068 1390 1391 6 1067 786 787 1069 1391 1392 6 1068 787 788 1070 1392 1393 6 1069 788 789 1071 1393 1394 6 1070 789 790 1072 1394 1395 6 1071 790 791 1073 1395 1396 6 1072 791 792 1074 1396 1397 6 1073 792 793 1075 1397 1398 6 1074 793 794 1076 1398 1399 6 1075 794 795 1077 1399 1400 6 1076 795 796 1078 1400 1401 6 1077 796 797 1079 1401 1402 6 1078 797 798 1080 1402 1403 6 1079 798 799 1081 1403 1404 6 1080 799 800 1082 1404 1405 6 1081 800 801 1083 1405 1406 6 1082 801 802 1084 1406 1407 6 1083 802 803 1085 1407 1408 6 1084 803 804 1086 1408 1409 6 1085 804 805 1087 1409 1410 6 1086 805 806 1088 1410 1411 6 1087 806 807 1089 1411 1412 6 1088 807 808 1090 1412 1413 6 1089 808 809 1091 1413 1414 6 1090 809 810 1092 1414 1415 6 1091 810 811 1093 1415 1416 6 1092 811 812 1094 1416 1417 6 1093 812 813 1095 1417 1418 6 1094 813 814 1096 1418 1419 6 1095 814 815 1097 1419 1420 6 1096 815 816 1098 1420 1421 6 1097 816 817 1099 1421 1422 6 1098 817 818 1100 1422 1423 6 1099 818 819 1101 1423 1424 6 1100 819 820 1102 1424 1425 6 1101 820 821 1103 1425 1426 6 1102 821 822 1104 1426 1427 6 1103 822 823 1105 1427 1428 6 1104 823 824 1106 1428 1429 6 1105 824 825 1107 1429 1430 6 1106 825 826 1108 1430 1431 6 1107 826 827 1109 1431 1432 6 1108 827 828 1110 1432 1433 6 1109 828 829 1111 1433 1434 6 1110 829 830 1112 1434 1435 6 1111 830 831 1113 1435 1436 6 1112 831 832 1114 1436 1437 6 1113 832 833 1115 1437 1116 6 1114 833 834 835 836 1116 6 1115 836 1117 1437 1114 1438 5 1116 836 837 1118 1438 6 1117 837 838 1119 1438 1439 6 1118 838 839 1120 1439 1440 6 1119 839 840 1121 1440 1441 6 1120 840 841 1122 1441 1442 6 1121 841 842 1123 1442 1443 6 1122 842 843 1124 1443 1444 6 1123 843 844 1125 1444 1445 6 1124 844 845 1126 1445 1446 6 1125 845 846 1127 1446 1447 6 1126 846 847 1128 1447 1448 6 1127 847 848 1129 1448 1449 6 1128 848 849 1130 1449 1450 6 1129 849 850 852 1131 1450 6 1130 852 1132 1450 1451 1452 6 1131 852 853 1133 1452 1453 6 1132 853 855 1134 1453 1454 6 1133 855 1135 1457 1454 1153 6 1134 855 856 857 1136 1153 6 1135 857 858 1137 1153 1154 6 1136 858 859 1138 1154 1155 6 1137 859 860 861 1139 1155 6 1138 861 1140 1155 1156 1157 6 1139 861 862 1141 1157 1158 6 1140 862 863 1142 1158 1159 6 1141 863 1143 1159 1160 1144 6 1142 863 864 865 866 1144 6 1143 866 867 1145 1160 1142 6 1144 867 868 1146 1499 1160 6 1145 868 870 1147 1499 1500 6 1146 870 872 1148 1165 1500 6 1147 872 1149 1150 1165 1166 6 1148 872 1150 1151 1152 873 6 1148 1149 1151 1166 1167 1168 6 1150 1149 1152 1168 1169 1170 6 1151 1149 873 1170 1171 875 6 1135 1136 1154 1474 1457 1134 6 1153 1136 1137 1155 1474 1491 6 1154 1137 1138 1139 1156 1491 6 1155 1139 1157 1491 1492 1493 6 1156 1139 1140 1158 1493 1494 6 1157 1140 1141 1159 1494 1495 6 1158 1141 1142 1160 1498 1495 6 1159 1142 1144 1145 1499 1498 6 86 87 1162 1484 1485 1489 6 1161 87 88 1163 1175 1489 6 1162 88 89 1164 1175 1176 6 1163 89 90 1176 1178 1187 6 1147 1148 1166 1500 1528 1529 6 1165 1148 1150 1167 1529 1534 6 1166 1150 1168 1536 1534 1542 6 1167 1150 1151 1169 1542 1963 6 1168 1151 1170 1963 1964 1965 6 1169 1151 1152 1171 887 1965 6 1170 1152 875 887 880 877 6 415 22 23 1173 3338 3883 6 1172 23 24 1174 1525 3338 6 1173 24 25 1525 1526 1527 6 1162 1163 1176 1177 1489 1490 6 1175 1163 1177 1164 1178 1179 6 1175 1176 1490 1643 1644 1179 6 1176 1164 1179 1180 1187 1184 6 1176 1178 1180 1181 1644 1177 6 1179 1178 1181 1182 1183 1184 6 1179 1180 1182 1644 1645 1646 6 1181 1180 1183 1646 1647 1648 6 1182 1180 1184 1185 3098 1648 6 1183 1180 1185 1186 1187 1178 6 1183 1184 1186 3098 2242 1188 6 1185 1184 1187 91 92 1188 6 1186 1184 1178 1164 90 91 6 1186 92 93 1189 2242 1185 6 1188 93 94 1190 2242 1660 6 1189 94 95 1191 1661 1660 6 1190 95 96 1192 1663 1661 6 1191 96 97 1193 1671 1663 6 1192 97 98 1194 1671 1672 6 1193 98 99 1195 1672 1673 6 1194 99 100 1196 1673 1674 6 1195 100 101 1197 1674 1675 6 1196 101 102 1198 1675 1676 6 1197 102 103 1199 1501 1676 6 1198 103 104 1200 1458 1501 6 1199 104 105 1201 1458 1459 6 1200 105 106 1202 1459 1460 6 1201 106 107 1203 1460 1461 6 1202 107 108 1204 1461 1686 6 1203 108 109 1205 1688 1686 6 1204 109 110 1206 1688 1689 6 1205 110 111 1207 1689 1690 6 1206 111 112 1208 1690 1691 6 1207 112 113 1209 1694 1691 6 1208 113 114 1210 1694 1695 6 1209 114 115 1211 1695 1696 6 1210 115 116 1212 1557 1696 6 1211 116 117 1213 1547 1557 6 1212 117 118 1214 1547 1548 6 1213 118 119 1215 1548 1549 6 1214 119 120 1216 1549 1550 6 1215 120 121 1217 1550 1551 6 1216 121 122 1218 1554 1551 6 1217 122 123 1219 1556 1554 6 1218 123 124 1220 1717 1556 6 1219 124 125 1221 1717 1718 6 1220 125 126 1222 1718 1719 6 1221 126 127 1223 1719 1720 6 1222 127 128 1224 1720 1721 6 1223 128 129 1225 1721 1722 6 1224 129 130 1226 1722 1723 6 1225 130 131 1227 1723 1724 6 1226 131 132 1228 1727 1724 6 1227 132 133 1229 1727 1728 6 1228 133 134 1230 1728 1729 6 1229 134 135 1231 1729 1730 6 1230 135 136 1232 1730 1731 6 1231 136 137 1233 1734 1731 6 1232 137 138 1234 1734 1735 6 1233 138 139 1235 1735 1736 6 1234 139 140 1236 1736 1737 6 1235 140 141 1237 1737 1738 6 1236 141 142 1238 1738 1739 6 1237 142 143 1239 1739 1740 6 1238 143 144 1240 1740 1741 6 1239 144 145 1241 1741 1742 6 1240 145 146 1242 1742 1743 6 1241 146 147 1243 1743 1744 7 1242 147 148 4 149 1244 1744 5 1243 149 150 1245 1744 6 1244 150 151 1246 1744 1745 6 1245 151 152 1247 1745 1746 6 1246 152 153 1248 1746 1747 6 1247 153 154 1249 1747 1748 6 1248 154 155 924 1250 1748 6 1249 924 1251 1748 1749 1750 6 1250 924 925 1252 1750 1751 6 1251 925 926 1253 1751 1752 6 1252 926 927 1254 1752 1753 6 1253 927 928 1255 1753 1754 6 1254 928 929 1256 1754 1755 6 1255 929 930 1257 1755 1756 6 1256 930 931 1258 1756 1757 6 1257 931 932 933 1259 1757 6 1258 933 1260 1757 1758 1759 6 1259 933 934 1261 1759 1760 6 1260 934 935 1262 1760 1761 6 1261 935 936 1263 1761 1762 6 1262 936 937 1264 1762 1763 6 1263 937 938 1265 1763 1764 6 1264 938 939 1266 1764 1765 6 1265 939 940 1267 1765 1766 6 1266 940 941 1268 1766 1767 6 1267 941 942 1269 1767 1768 6 1268 942 943 1270 1768 1769 6 1269 943 944 1271 1769 1770 6 1270 944 945 1272 1770 1771 6 1271 945 946 1273 1771 1772 6 1272 946 947 1274 1772 1773 6 1273 947 948 1275 1773 1774 6 1274 948 949 1276 1774 1775 6 1275 949 950 1277 1775 1776 6 1276 950 951 1278 1776 1777 6 1277 951 952 1279 1777 1778 6 1278 952 953 1280 1778 1779 6 1279 953 954 1281 1779 1780 6 1280 954 955 1282 1780 1781 6 1281 955 956 1283 1781 1782 6 1282 956 957 1284 1782 1783 6 1283 957 958 1285 1783 1784 6 1284 958 959 1286 1784 1785 6 1285 959 960 1287 1785 1786 6 1286 960 961 1288 1786 1787 6 1287 961 962 1289 1787 1788 6 1288 962 963 1290 1788 1789 6 1289 963 964 1291 1789 1790 6 1290 964 965 1292 1790 1791 6 1291 965 966 1293 1791 1792 6 1292 966 967 1294 1792 1793 6 1293 967 968 1295 1793 1794 6 1294 968 969 1296 1794 1795 6 1295 969 970 1297 1795 1796 6 1296 970 971 1298 1796 1797 6 1297 971 972 1299 1797 1798 6 1298 972 973 1300 1798 1301 6 1299 973 974 975 976 1301 7 1300 976 977 1302 1798 1299 2101 6 1301 977 978 1303 2101 2102 6 1302 978 979 1304 2102 2103 6 1303 979 980 1305 2103 2104 6 1304 980 981 1306 2104 2105 6 1305 981 982 1307 2105 2106 6 1306 982 983 1308 2106 2107 6 1307 983 984 1309 1799 2107 6 1308 984 985 1310 1799 1800 6 1309 985 986 1311 1800 1801 6 1310 986 987 1312 1801 1802 6 1311 987 988 1313 1802 1803 6 1312 988 989 1314 1803 1804 6 1313 989 990 1315 1804 1805 6 1314 990 991 1316 1805 1806 6 1315 991 992 1317 1806 1807 6 1316 992 993 1318 1807 1808 6 1317 993 994 1319 1808 1809 6 1318 994 995 1320 1809 1810 6 1319 995 996 1321 1810 1811 6 1320 996 997 1322 1811 1812 6 1321 997 998 1323 1812 1813 6 1322 998 999 1324 1813 1814 6 1323 999 1000 1325 1814 1815 6 1324 1000 1001 1326 1815 1816 6 1325 1001 1002 1327 1816 1817 6 1326 1002 1003 1328 1817 1818 6 1327 1003 1004 1329 1818 1819 6 1328 1004 1005 1330 1819 1820 6 1329 1005 1006 1331 1820 1821 6 1330 1006 1007 1332 1821 1822 6 1331 1007 1008 1333 1822 1823 6 1332 1008 1009 1334 1823 1824 6 1333 1009 1010 1335 1824 1825 6 1334 1010 1011 1336 1825 1826 6 1335 1011 1012 1337 1826 1827 6 1336 1012 1013 1015 1338 1827 6 1337 1015 1339 1827 1828 1829 6 1338 1015 1016 1340 1829 1830 6 1339 1016 1341 1830 1831 1832 6 1340 1016 1017 1018 1342 1832 6 1341 1018 1019 1343 1832 1833 6 1342 1019 1020 1344 1833 1834 6 1343 1020 1021 1345 1834 1835 6 1344 1021 1022 1346 1835 1836 6 1345 1022 1023 1347 1836 1837 6 1346 1023 1024 1025 1348 1837 6 1347 1025 1349 1837 1838 1839 6 1348 1025 1026 1350 1839 1840 6 1349 1026 1027 1351 1840 1841 6 1350 1027 1028 1352 1841 1842 6 1351 1028 1029 1353 1842 1843 6 1352 1029 1030 1354 1843 1844 6 1353 1030 1031 1355 1844 1845 6 1354 1031 1032 1356 1845 1846 6 1355 1032 1033 1357 1846 1847 6 1356 1033 1034 1358 1847 1848 6 1357 1034 1035 1359 1848 1849 6 1358 1035 1036 1360 1849 1850 6 1359 1036 1037 1361 1850 1851 6 1360 1037 1038 1362 1851 1852 6 1361 1038 1039 1363 1852 1853 6 1362 1039 1040 1364 1853 1854 6 1363 1040 1041 1365 1854 1855 6 1364 1041 1042 1366 1855 1856 6 1365 1042 1043 1367 1856 1857 6 1366 1043 1044 1368 1857 1858 6 1367 1044 1045 1369 1858 1859 6 1368 1045 1046 1370 1859 1860 6 1369 1046 1047 1371 1860 1861 6 1370 1047 1048 1372 1861 1862 6 1371 1048 1049 1373 1862 1863 6 1372 1049 1050 1374 1863 1864 6 1373 1050 1051 1375 1864 1865 6 1374 1051 1052 1376 1865 1866 6 1375 1052 1053 1377 1866 1867 6 1376 1053 1054 1378 1867 1868 6 1377 1054 1055 1379 1868 1869 6 1378 1055 1056 1380 1869 1870 6 1379 1056 1057 1381 1870 1871 6 1380 1057 1058 1382 1871 1872 6 1381 1058 1059 1383 1872 1873 6 1382 1059 1060 1384 1873 1874 6 1383 1060 1061 1385 1874 1875 6 1384 1061 1062 1386 1875 1876 6 1385 1062 1063 1387 1876 1877 6 1386 1063 1064 1388 1877 1878 6 1387 1064 1065 1389 1878 1879 6 1388 1065 1066 1390 1879 1880 6 1389 1066 1067 1391 1880 1881 6 1390 1067 1068 1392 1881 1882 6 1391 1068 1069 1393 1882 1883 6 1392 1069 1070 1394 1883 1884 6 1393 1070 1071 1395 1884 1885 6 1394 1071 1072 1396 1885 1886 6 1395 1072 1073 1397 1886 1887 6 1396 1073 1074 1398 1887 1888 6 1397 1074 1075 1399 1888 1889 6 1398 1075 1076 1400 1889 1890 6 1399 1076 1077 1401 1890 1891 6 1400 1077 1078 1402 1891 1892 6 1401 1078 1079 1403 1892 1893 6 1402 1079 1080 1404 1893 1894 6 1403 1080 1081 1405 1894 1895 6 1404 1081 1082 1406 1895 1896 6 1405 1082 1083 1407 1896 1897 6 1406 1083 1084 1408 1897 1898 6 1407 1084 1085 1409 1898 1899 6 1408 1085 1086 1410 1899 1900 6 1409 1086 1087 1411 1900 1901 6 1410 1087 1088 1412 1901 1902 6 1411 1088 1089 1413 1902 1903 6 1412 1089 1090 1414 1903 1904 6 1413 1090 1091 1415 1904 1905 6 1414 1091 1092 1416 1905 1906 6 1415 1092 1093 1417 1906 1907 6 1416 1093 1094 1418 1907 1908 6 1417 1094 1095 1419 1908 1909 6 1418 1095 1096 1420 1909 1910 6 1419 1096 1097 1421 1910 1911 6 1420 1097 1098 1422 1911 1912 6 1421 1098 1099 1423 1912 1913 6 1422 1099 1100 1424 1913 1914 6 1423 1100 1101 1425 1914 1915 6 1424 1101 1102 1426 1915 1916 6 1425 1102 1103 1427 1916 1917 6 1426 1103 1104 1428 1917 1918 6 1427 1104 1105 1429 1918 1919 6 1428 1105 1106 1430 1919 1920 6 1429 1106 1107 1431 1920 1921 6 1430 1107 1108 1432 1921 1922 6 1431 1108 1109 1433 1922 1923 6 1432 1109 1110 1434 1923 1924 6 1433 1110 1111 1435 1924 1925 6 1434 1111 1112 1436 1925 1926 6 1435 1112 1113 1437 1926 1927 6 1436 1113 1114 1116 1438 1927 6 1437 1116 1117 1118 1439 1927 6 1438 1118 1119 1440 1927 1928 6 1439 1119 1120 1441 1928 1929 6 1440 1120 1121 1442 1929 1930 6 1441 1121 1122 1443 1930 1931 6 1442 1122 1123 1444 1931 1932 6 1443 1123 1124 1445 1932 1933 6 1444 1124 1125 1446 1462 1933 6 1445 1125 1126 1447 1462 1463 6 1446 1126 1127 1448 1463 1464 6 1447 1127 1128 1449 1464 1465 6 1448 1128 1129 1450 1465 1466 6 1449 1129 1130 1131 1451 1466 6 1450 1131 1452 1466 1467 1468 6 1451 1131 1132 1453 1468 1469 6 1452 1132 1133 1454 1455 1469 6 1453 1133 1455 1456 1457 1134 6 1453 1454 1456 1469 1470 1471 6 1455 1454 1457 1471 1472 1473 6 1456 1454 1134 1473 1474 1153 6 1199 1200 1459 1501 1502 1680 6 1458 1200 1201 1460 1680 1681 6 1459 1201 1202 1461 1681 1682 6 1460 1202 1203 1682 1685 1686 6 1445 1446 1463 1933 1934 1935 6 1462 1446 1447 1464 1935 1936 6 1463 1447 1448 1465 1936 1937 6 1464 1448 1449 1466 1937 1938 6 1465 1449 1450 1451 1467 1938 6 1466 1451 1468 1938 1939 1940 6 1467 1451 1452 1469 1940 1941 6 1468 1452 1453 1455 1470 1941 6 1469 1455 1471 1941 1942 1943 6 1470 1455 1456 1472 1943 1944 6 1471 1456 1473 1944 1945 1946 6 1472 1456 1457 1474 1946 1947 6 1473 1457 1153 1154 1491 1947 7 77 3 1476 1609 1605 1610 1619 6 1475 3 78 1477 1621 1619 6 1476 78 79 1478 1621 1622 6 1477 79 80 1479 1622 1623 6 1478 80 81 1480 1631 1623 6 1479 81 82 1481 1631 1632 6 1480 82 83 1482 1632 1633 6 1481 83 84 1483 1636 1633 6 1482 84 85 1484 1486 1636 6 1483 85 86 1161 1485 1486 6 1484 1161 1486 1487 1488 1489 6 1484 1485 1487 1503 1636 1483 6 1486 1485 1488 1503 1504 1505 6 1487 1485 1489 1505 1506 1490 6 1488 1485 1161 1162 1175 1490 6 1489 1175 1177 1506 1488 1643 6 1474 1154 1155 1156 1492 1947 6 1491 1156 1493 1947 1948 1949 6 1492 1156 1157 1494 1949 1950 6 1493 1157 1158 1495 1496 1950 6 1494 1158 1496 1497 1498 1159 6 1494 1495 1497 1952 1950 1953 6 1496 1495 1498 1953 1531 1530 6 1497 1495 1159 1160 1499 1530 6 1145 1146 1500 1160 1498 1530 6 1499 1146 1147 1165 1528 1530 6 1198 1199 1458 1502 1676 1677 6 1501 1458 1677 1678 1679 1680 6 1486 1487 1504 1638 1635 1636 6 1503 1487 1505 1638 1639 1640 6 1504 1487 1488 1506 1640 1641 6 1505 1488 1490 1641 1642 1643 6 584 590 591 1508 1509 583 6 1507 591 1509 1510 1514 1515 6 1507 1508 1510 1511 1518 583 6 1509 1508 1511 1512 1513 1514 6 1509 1510 1512 1518 1519 1520 6 1511 1510 1513 1524 1520 1538 6 1512 1510 1514 1538 1539 1540 6 1513 1510 1508 1515 602 1540 6 1514 1508 602 600 592 591 6 578 579 582 1517 2475 577 6 1516 582 1518 1519 1522 2475 6 1517 582 583 1509 1511 1519 6 1518 1511 1520 1521 1522 1517 6 1519 1511 1521 1523 1524 1512 6 1519 1520 1522 912 911 1523 6 1519 1521 912 1517 2475 915 6 911 1521 1520 1524 909 910 6 1523 1520 1512 909 1537 1538 6 1173 1174 1526 3338 3339 4251 6 1525 1174 1527 3131 2206 4251 6 1526 1174 25 26 3131 9782 6 1500 1165 1529 1530 1531 1532 6 1528 1165 1166 1532 1533 1534 6 1498 1499 1500 1528 1531 1497 6 1530 1528 1532 1953 1497 1954 6 1531 1528 1529 1533 1954 1955 6 1532 1529 1534 1535 1955 1956 6 1533 1529 1535 1536 1167 1166 6 1533 1534 1536 1956 1957 1958 6 1535 1534 1167 1542 1961 1958 6 909 1524 1538 1543 1544 908 6 1537 1524 1512 1513 1539 1543 6 1538 1513 1540 1541 1546 1543 6 1539 1513 1514 602 603 1541 6 1540 603 1539 1583 1546 1584 6 1536 1167 1168 1961 1962 1963 6 1537 1538 1544 1545 1546 1539 6 1537 1543 1545 1563 1564 908 6 1544 1543 1546 1563 1581 1578 6 1545 1543 1539 1583 1581 1541 6 1212 1213 1548 1557 1558 1559 6 1547 1213 1214 1549 1562 1559 6 1548 1214 1215 1550 1711 1562 6 1549 1215 1216 1551 1552 1711 6 1550 1216 1552 1553 1554 1217 6 1550 1551 1553 1711 1712 1713 6 1552 1551 1554 1555 1713 1714 6 1553 1551 1555 1556 1218 1217 6 1553 1554 1556 1714 1715 1716 6 1555 1554 1218 1716 1717 1219 6 1211 1212 1547 1558 1696 1697 6 1557 1547 1559 1560 1697 1698 6 1558 1547 1560 1561 1562 1548 6 1558 1559 1561 1698 1699 1700 6 1560 1559 1562 1700 1701 1710 6 1561 1559 1548 1710 1711 1549 6 1544 1545 1564 1565 1577 1578 6 1544 1563 1565 906 908 907 6 1564 1563 906 1566 1567 1577 6 906 1565 1567 1568 2086 905 6 1566 1565 1568 1569 1570 1577 6 1566 1567 1569 2086 3767 3768 6 1568 1567 1570 1571 1572 3768 6 1569 1567 1571 1575 1576 1577 6 1569 1570 1572 1573 1574 1575 7 1569 1571 1573 3770 3768 6318 6320 5 1572 1571 1574 6320 6321 7 1573 1571 1575 6321 6362 6361 2476 6 1574 1571 1570 1576 1579 2476 6 1575 1570 1577 1578 1579 1580 6 1576 1570 1567 1565 1563 1578 6 1577 1563 1576 1580 1581 1545 6 1575 1576 1580 1587 1588 2476 6 1579 1576 1578 1581 1582 1587 6 1580 1578 1545 1582 1583 1546 6 1580 1581 1583 1585 1586 1587 6 1582 1581 1546 1541 1584 1585 6 1583 1541 1585 1603 604 603 6 1583 1584 1582 1586 1602 1603 6 1582 1585 1587 1592 1589 1602 6 1582 1586 1580 1579 1588 1589 6 1579 1587 1589 1590 2476 2477 6 1588 1587 1590 1591 1592 1586 6 1588 1589 1591 6355 6354 2477 6 1590 1589 1592 1593 1595 6355 6 1591 1589 1586 1593 1594 1602 6 1591 1592 1594 1595 1596 1597 6 1593 1592 1600 1597 1601 1602 6 1591 1593 1596 6359 6357 6355 6 1595 1593 1597 1598 3971 6359 6 1596 1593 1598 1599 1600 1594 6 1596 1597 1599 3971 3970 6557 6 1598 1597 1600 6557 6558 612 6 1599 1597 1594 1601 612 610 6 1600 1594 1602 1603 609 610 6 1601 1594 1592 1586 1585 1603 6 1601 1602 1585 1584 604 609 6 75 76 1605 429 1606 1609 5 1604 76 77 1609 1475 6 429 1604 1607 1608 1609 3520 6 429 1606 1608 2494 410 3517 6 1607 1606 3519 3517 1614 3520 7 1606 1604 1605 1475 1610 1611 3520 5 1609 1475 1611 1612 1619 6 1609 1610 1612 1613 1614 3520 6 1611 1610 1613 1617 1618 1619 6 1611 1612 1614 1615 1616 1617 7 1611 1613 1615 3519 1608 3520 3524 6 1614 1613 1616 3524 3525 3529 6 1615 1613 1617 3094 3545 3529 6 1616 1613 1612 1618 3094 3095 6 1617 1612 1619 1620 3095 1625 7 1618 1612 1620 1621 1476 1610 1475 6 1618 1619 1621 1622 1624 1625 5 1620 1619 1476 1477 1622 6 1621 1477 1478 1623 1624 1620 6 1622 1478 1624 1630 1631 1479 6 1622 1623 1620 1625 1626 1630 7 1620 1624 1626 1627 1618 3095 4368 6 1625 1624 1627 1628 1629 1630 5 1625 1626 1628 4377 4368 7 1627 1626 1629 4378 4377 2863 7216 6 1628 1626 1630 2862 1634 2863 6 1629 1626 1624 1623 1631 2862 6 1630 1623 1479 1480 1632 2862 6 1631 1480 1481 1633 1634 2862 6 1632 1481 1634 1635 1636 1482 7 1632 1633 1635 1637 2862 1629 2863 6 1634 1633 1636 1637 1638 1503 6 1635 1633 1482 1503 1486 1483 5 1634 1635 1638 2863 2864 7 1637 1635 1503 1504 1639 2864 2865 5 1638 1504 1640 2865 2866 6 1639 1504 1505 1641 2866 2867 6 1640 1505 1506 1642 2867 2868 6 1641 1506 1643 2480 2491 2868 6 1642 1506 1490 1177 1644 2480 6 1643 1177 1179 1181 1645 2480 6 1644 1181 1646 2480 2481 2482 6 1645 1181 1182 1647 2482 1651 6 1646 1182 1648 1649 1650 1651 6 1647 1182 1649 1656 3098 1183 6 1647 1648 1650 1654 1655 1656 6 1647 1649 1651 1652 1653 1654 6 1647 1650 1652 2482 1646 2496 6 1651 1650 1653 2496 2497 2498 6 1652 1650 1654 2498 2499 2500 6 1653 1650 1649 1655 2500 2501 6 1654 1649 1656 1657 2501 2502 6 1655 1649 1648 1657 1658 3098 6 1655 1656 1658 1659 2502 2813 6 1657 1656 1659 1660 2242 3098 6 1657 1658 1660 1661 1662 2813 6 1659 1658 1661 1190 1189 2242 6 1659 1660 1662 1663 1191 1190 6 1659 1661 1663 1664 1665 2813 6 1662 1661 1664 1671 1192 1191 6 1662 1663 1665 1666 1670 1671 6 1662 1664 1666 1667 2813 2812 6 1665 1664 1667 1668 1669 1670 6 1665 1666 1668 2812 2814 2815 6 1667 1666 1669 2815 2816 2817 6 1668 1666 1670 2817 2822 2823 6 1669 1666 1664 1671 1672 2823 6 1670 1664 1663 1192 1193 1672 6 1671 1193 1194 1673 2823 1670 6 1672 1194 1195 1674 2824 2823 6 1673 1195 1196 1675 3148 2824 6 1674 1196 1197 1676 3148 3413 6 1675 1197 1198 1501 1677 3413 6 1676 1501 1502 1678 3413 3414 6 1677 1502 1679 3414 3415 3416 6 1678 1502 1680 3416 5382 5383 6 1679 1502 1458 1459 1681 5382 6 1680 1459 1460 1682 1683 5382 6 1681 1460 1461 1683 1684 1685 6 1681 1682 1684 3775 5384 5382 6 1683 1682 1685 3775 3776 3777 6 1684 1682 1461 1686 1687 3777 6 1685 1461 1687 1688 1204 1203 6 1685 1686 1688 3777 3778 3782 6 1687 1686 1204 1205 1689 3782 6 1688 1205 1206 1690 3782 3783 6 1689 1206 1207 1691 1692 3783 6 1690 1207 1692 1693 1694 1208 6 1690 1691 1693 3783 3784 3785 6 1692 1691 1694 3785 3786 3787 6 1693 1691 1208 1209 1695 3787 6 1694 1209 1210 1696 3787 3417 6 1695 1210 1211 1557 1697 3417 6 1696 1557 1558 1698 3417 3418 6 1697 1558 1560 1699 3418 3419 6 1698 1560 1700 1704 2224 3419 6 1699 1560 1561 1701 1702 1704 6 1700 1561 1702 1703 1709 1710 6 1700 1701 1703 1704 1705 1706 6 1702 1701 1706 1707 1708 1709 6 1700 1702 1705 1699 2224 2225 6 1704 1702 1706 2225 2226 2227 6 1705 1702 1703 1707 2227 2228 6 1706 1703 1708 2228 2229 2230 6 1707 1703 1709 2230 2231 2232 6 1708 1703 1701 1710 1712 2232 6 1709 1701 1561 1562 1711 1712 6 1710 1562 1549 1550 1552 1712 6 1711 1552 1713 2232 1709 1710 6 1712 1552 1553 1714 2233 2232 6 1713 1553 1555 1715 2241 2233 6 1714 1555 1716 2241 2561 2565 6 1715 1555 1556 1717 2565 2566 6 1716 1556 1219 1220 1718 2566 6 1717 1220 1221 1719 2566 2567 6 1718 1221 1222 1720 2570 2567 6 1719 1222 1223 1721 3464 2570 6 1720 1223 1224 1722 3463 3464 6 1721 1224 1225 1723 3470 3463 6 1722 1225 1226 1724 1725 3470 6 1723 1226 1725 1726 1727 1227 6 1723 1724 1726 2173 3468 3470 6 1725 1724 1727 2173 2174 2175 6 1726 1724 1227 1228 1728 2175 6 1727 1228 1229 1729 2175 2176 6 1728 1229 1230 1730 2176 2177 6 1729 1230 1231 1731 1732 2177 6 1730 1231 1732 1733 1734 1232 6 1730 1731 1733 2179 2177 2809 6 1732 1731 1734 3405 2809 3406 6 1733 1731 1232 1233 1735 3406 6 1734 1233 1234 1736 3406 3407 6 1735 1234 1235 1737 3407 3408 6 1736 1235 1236 1738 3408 3409 6 1737 1236 1237 1739 3409 3410 6 1738 1237 1238 1740 3410 3411 6 1739 1238 1239 1741 3411 3412 6 1740 1239 1240 1742 3198 3412 6 1741 1240 1241 1743 3192 3198 6 1742 1241 1242 1744 3192 1745 6 1743 1242 1243 1244 1245 1745 7 1744 1245 1246 1746 3192 1743 3200 6 1745 1246 1247 1747 2894 3200 6 1746 1247 1248 1748 2752 2894 6 1747 1248 1249 1250 1749 2752 6 1748 1250 1750 2234 2752 2753 6 1749 1250 1251 1751 2234 2235 6 1750 1251 1252 1752 2238 2235 6 1751 1252 1253 1753 2248 2238 6 1752 1253 1254 1754 2248 2254 6 1753 1254 1255 1755 2254 2255 6 1754 1255 1256 1756 2255 2256 6 1755 1256 1257 1757 2256 2257 6 1756 1257 1258 1259 1758 2257 6 1757 1259 1759 2257 2258 2259 6 1758 1259 1260 1760 2259 2260 6 1759 1260 1261 1761 2260 2261 6 1760 1261 1262 1762 2261 2262 6 1761 1262 1263 1763 2262 2263 6 1762 1263 1264 1764 2263 2264 6 1763 1264 1265 1765 2264 2265 6 1764 1265 1266 1766 2265 2266 6 1765 1266 1267 1767 2266 2267 6 1766 1267 1268 1768 2267 2268 6 1767 1268 1269 1769 2268 2269 6 1768 1269 1270 1770 2269 2270 6 1769 1270 1271 1771 2270 2271 6 1770 1271 1272 1772 2271 2272 6 1771 1272 1273 1773 2272 2273 6 1772 1273 1274 1774 2273 2274 6 1773 1274 1275 1775 2274 2275 6 1774 1275 1276 1776 2275 2276 6 1775 1276 1277 1777 2276 2277 6 1776 1277 1278 1778 2277 2278 6 1777 1278 1279 1779 2278 2279 6 1778 1279 1280 1780 2279 2280 6 1779 1280 1281 1781 2280 2281 6 1780 1281 1282 1782 2281 2282 6 1781 1282 1283 1783 2282 2283 6 1782 1283 1284 1784 2283 2284 6 1783 1284 1285 1785 2284 2285 6 1784 1285 1286 1786 2285 2286 6 1785 1286 1287 1787 2286 2287 6 1786 1287 1288 1788 2287 2288 6 1787 1288 1289 1789 2288 2289 6 1788 1289 1290 1790 2289 2290 6 1789 1290 1291 1791 2290 2291 6 1790 1291 1292 1792 2291 2292 6 1791 1292 1293 1793 2292 2293 6 1792 1293 1294 1794 2293 2294 6 1793 1294 1295 1795 2294 2295 6 1794 1295 1296 1796 2295 2296 6 1795 1296 1297 1797 2099 2296 6 1796 1297 1298 1798 2099 2100 6 1797 1298 1299 1301 2100 2101 6 1308 1309 1800 2107 2108 2109 6 1799 1309 1310 1801 2109 2110 6 1800 1310 1311 1802 2110 2111 6 1801 1311 1312 1803 2111 2112 6 1802 1312 1313 1804 2112 2113 6 1803 1313 1314 1805 2113 2114 6 1804 1314 1315 1806 2114 2115 6 1805 1315 1316 1807 2115 2116 6 1806 1316 1317 1808 2116 2117 6 1807 1317 1318 1809 2117 2118 6 1808 1318 1319 1810 2118 2119 6 1809 1319 1320 1811 2119 2120 6 1810 1320 1321 1812 2120 2121 6 1811 1321 1322 1813 2121 2122 6 1812 1322 1323 1814 2122 2123 6 1813 1323 1324 1815 2123 2124 6 1814 1324 1325 1816 2124 2125 6 1815 1325 1326 1817 2125 2126 6 1816 1326 1327 1818 2126 2127 6 1817 1327 1328 1819 2127 2128 6 1818 1328 1329 1820 2128 2129 6 1819 1329 1330 1821 2129 2130 6 1820 1330 1331 1822 2130 2131 6 1821 1331 1332 1823 2131 2132 6 1822 1332 1333 1824 2132 2133 6 1823 1333 1334 1825 2133 2134 6 1824 1334 1335 1826 2134 2135 6 1825 1335 1336 1827 2135 2136 6 1826 1336 1337 1338 1828 2136 6 1827 1338 1829 2136 2137 2138 6 1828 1338 1339 1830 2138 2139 6 1829 1339 1340 1831 2139 2140 6 1830 1340 1832 2140 2141 2142 6 1831 1340 1341 1342 1833 2142 6 1832 1342 1343 1834 2142 2143 6 1833 1343 1344 1835 2143 2144 6 1834 1344 1345 1836 2144 2145 6 1835 1345 1346 1837 2145 2146 6 1836 1346 1347 1348 1838 2146 6 1837 1348 1839 2151 2146 2166 6 1838 1348 1349 1840 2166 2167 6 1839 1349 1350 1841 2167 2168 6 1840 1350 1351 1842 2168 2169 6 1841 1351 1352 1843 2172 2169 6 1842 1352 1353 1844 2350 2172 6 1843 1353 1354 1845 2350 2351 6 1844 1354 1355 1846 2351 2352 6 1845 1355 1356 1847 2352 2353 6 1846 1356 1357 1848 2353 2354 6 1847 1357 1358 1849 2354 2355 6 1848 1358 1359 1850 2355 2356 6 1849 1359 1360 1851 2356 2357 6 1850 1360 1361 1852 2357 2358 6 1851 1361 1362 1853 2358 2359 6 1852 1362 1363 1854 2359 2360 6 1853 1363 1364 1855 2360 2361 6 1854 1364 1365 1856 2361 2362 6 1855 1365 1366 1857 1967 2362 6 1856 1366 1367 1858 1967 1968 6 1857 1367 1368 1859 1968 1969 6 1858 1368 1369 1860 1969 1970 6 1859 1369 1370 1861 1970 1971 6 1860 1370 1371 1862 1971 1972 6 1861 1371 1372 1863 1972 1973 6 1862 1372 1373 1864 1973 1974 6 1863 1373 1374 1865 1974 1975 6 1864 1374 1375 1866 1975 1976 6 1865 1375 1376 1867 1976 1977 6 1866 1376 1377 1868 1977 1978 6 1867 1377 1378 1869 1978 1979 6 1868 1378 1379 1870 1979 1980 6 1869 1379 1380 1871 1980 1981 6 1870 1380 1381 1872 1981 1982 6 1871 1381 1382 1873 1982 1983 6 1872 1382 1383 1874 1983 1984 6 1873 1383 1384 1875 1984 1985 6 1874 1384 1385 1876 1985 1986 6 1875 1385 1386 1877 1986 1987 6 1876 1386 1387 1878 1987 1988 6 1877 1387 1388 1879 1988 1989 6 1878 1388 1389 1880 1989 1990 6 1879 1389 1390 1881 1990 1991 6 1880 1390 1391 1882 1991 1992 6 1881 1391 1392 1883 1992 1993 6 1882 1392 1393 1884 1993 1994 6 1883 1393 1394 1885 1994 1995 6 1884 1394 1395 1886 1995 1996 6 1885 1395 1396 1887 1996 1997 6 1886 1396 1397 1888 1997 1998 6 1887 1397 1398 1889 1998 1999 6 1888 1398 1399 1890 1999 2000 6 1889 1399 1400 1891 2000 2001 6 1890 1400 1401 1892 2001 2002 6 1891 1401 1402 1893 2002 2003 6 1892 1402 1403 1894 2003 2004 6 1893 1403 1404 1895 2004 2005 6 1894 1404 1405 1896 2005 2006 6 1895 1405 1406 1897 2006 2007 6 1896 1406 1407 1898 2007 2008 6 1897 1407 1408 1899 2008 2009 6 1898 1408 1409 1900 2009 2010 6 1899 1409 1410 1901 2010 2011 6 1900 1410 1411 1902 2011 2012 6 1901 1411 1412 1903 2012 2013 6 1902 1412 1413 1904 2013 2014 6 1903 1413 1414 1905 2014 2015 6 1904 1414 1415 1906 2015 2016 6 1905 1415 1416 1907 2016 2017 6 1906 1416 1417 1908 2017 2018 6 1907 1417 1418 1909 2018 2019 6 1908 1418 1419 1910 2019 2020 6 1909 1419 1420 1911 2020 2021 6 1910 1420 1421 1912 2021 2022 6 1911 1421 1422 1913 2022 2023 6 1912 1422 1423 1914 2023 2024 6 1913 1423 1424 1915 2024 2025 6 1914 1424 1425 1916 2025 2026 6 1915 1425 1426 1917 2026 2027 6 1916 1426 1427 1918 2027 2028 6 1917 1427 1428 1919 2028 2029 6 1918 1428 1429 1920 2029 2030 6 1919 1429 1430 1921 2030 2031 6 1920 1430 1431 1922 2031 2032 6 1921 1431 1432 1923 2032 2033 6 1922 1432 1433 1924 2033 2034 6 1923 1433 1434 1925 2034 2035 6 1924 1434 1435 1926 2035 2036 6 1925 1435 1436 1927 2036 1928 6 1926 1436 1437 1438 1439 1928 7 1927 1439 1440 1929 2036 1926 2037 6 1928 1440 1441 1930 2037 2038 6 1929 1441 1442 1931 2038 2039 6 1930 1442 1443 1932 2039 2040 6 1931 1443 1444 1933 2040 2041 7 1932 1444 1445 1462 1934 2041 2042 5 1933 1462 1935 2042 2043 6 1934 1462 1463 1936 2043 2044 6 1935 1463 1464 1937 2044 2045 6 1936 1464 1465 1938 2045 2046 6 1937 1465 1466 1467 1939 2046 6 1938 1467 1940 2046 2047 2048 6 1939 1467 1468 1941 2048 2049 6 1940 1468 1469 1470 1942 2049 6 1941 1470 1943 2049 2050 2051 6 1942 1470 1471 1944 2051 2052 6 1943 1471 1472 1945 2052 2053 6 1944 1472 1946 2053 2054 2055 6 1945 1472 1473 1947 2055 1948 6 1946 1473 1474 1491 1492 1948 6 1947 1492 1949 2055 1946 2056 6 1948 1492 1493 1950 1951 2056 6 1949 1493 1951 1952 1496 1494 6 1949 1950 1952 2056 2057 2058 6 1951 1950 1496 1953 2058 2059 6 1952 1496 1497 1531 1954 2059 6 1953 1531 1532 1955 2059 2060 6 1954 1532 1533 1956 2060 2061 6 1955 1533 1535 1957 2061 2062 6 1956 1535 1958 1959 2062 2063 6 1957 1535 1959 1960 1961 1536 6 1957 1958 1960 2063 2064 2065 6 1959 1958 1961 2065 2066 2067 6 1960 1958 1536 1542 1962 2067 6 1961 1542 1963 2067 2068 2069 6 1962 1542 1168 1169 1964 2069 6 1963 1169 1965 1966 2071 2069 6 1964 1169 1966 888 887 1170 6 1964 1965 888 2073 2071 2076 6 1856 1857 1968 2362 2363 2364 6 1967 1857 1858 1969 2364 2365 6 1968 1858 1859 1970 2365 2366 6 1969 1859 1860 1971 2366 2367 6 1970 1860 1861 1972 2367 2368 6 1971 1861 1862 1973 2368 2369 6 1972 1862 1863 1974 2369 2370 6 1973 1863 1864 1975 2370 2371 6 1974 1864 1865 1976 2371 2372 6 1975 1865 1866 1977 2372 2373 6 1976 1866 1867 1978 2373 2374 6 1977 1867 1868 1979 2374 2375 6 1978 1868 1869 1980 2375 2376 6 1979 1869 1870 1981 2376 2377 6 1980 1870 1871 1982 2377 2378 6 1981 1871 1872 1983 2378 2379 6 1982 1872 1873 1984 2379 2380 6 1983 1873 1874 1985 2380 2381 6 1984 1874 1875 1986 2381 2382 6 1985 1875 1876 1987 2382 2383 6 1986 1876 1877 1988 2383 2384 6 1987 1877 1878 1989 2384 2385 6 1988 1878 1879 1990 2385 2386 6 1989 1879 1880 1991 2386 2387 6 1990 1880 1881 1992 2387 2388 6 1991 1881 1882 1993 2388 2389 6 1992 1882 1883 1994 2389 2390 6 1993 1883 1884 1995 2390 2391 6 1994 1884 1885 1996 2391 2392 6 1995 1885 1886 1997 2392 2393 6 1996 1886 1887 1998 2393 2394 6 1997 1887 1888 1999 2394 2395 6 1998 1888 1889 2000 2395 2396 6 1999 1889 1890 2001 2396 2397 6 2000 1890 1891 2002 2397 2398 6 2001 1891 1892 2003 2398 2399 6 2002 1892 1893 2004 2399 2400 6 2003 1893 1894 2005 2400 2401 6 2004 1894 1895 2006 2401 2402 6 2005 1895 1896 2007 2402 2403 6 2006 1896 1897 2008 2403 2404 6 2007 1897 1898 2009 2404 2405 6 2008 1898 1899 2010 2405 2406 6 2009 1899 1900 2011 2406 2407 6 2010 1900 1901 2012 2407 2408 6 2011 1901 1902 2013 2408 2409 6 2012 1902 1903 2014 2409 2410 6 2013 1903 1904 2015 2410 2411 6 2014 1904 1905 2016 2411 2412 6 2015 1905 1906 2017 2412 2413 6 2016 1906 1907 2018 2413 2414 6 2017 1907 1908 2019 2414 2415 6 2018 1908 1909 2020 2415 2416 6 2019 1909 1910 2021 2416 2417 6 2020 1910 1911 2022 2417 2418 6 2021 1911 1912 2023 2418 2419 6 2022 1912 1913 2024 2419 2420 6 2023 1913 1914 2025 2420 2421 6 2024 1914 1915 2026 2421 2422 6 2025 1915 1916 2027 2422 2423 6 2026 1916 1917 2028 2423 2424 6 2027 1917 1918 2029 2424 2425 6 2028 1918 1919 2030 2425 2426 6 2029 1919 1920 2031 2426 2427 6 2030 1920 1921 2032 2427 2428 6 2031 1921 1922 2033 2428 2429 6 2032 1922 1923 2034 2429 2430 6 2033 1923 1924 2035 2430 2431 6 2034 1924 1925 2036 2431 2432 6 2035 1925 1926 1928 2037 2432 5 2036 1928 1929 2038 2432 6 2037 1929 1930 2039 2432 2433 6 2038 1930 1931 2040 2433 2434 6 2039 1931 1932 2041 2434 2435 7 2040 1932 1933 2042 2435 2436 2437 5 2041 1933 1934 2043 2437 7 2042 1934 1935 2044 2437 2438 2439 6 2043 1935 1936 2045 2439 2440 6 2044 1936 1937 2046 2440 2441 6 2045 1937 1938 1939 2047 2441 6 2046 1939 2048 2441 2442 2443 6 2047 1939 1940 2049 2443 2444 6 2048 1940 1941 1942 2050 2444 6 2049 1942 2051 2444 2445 2449 6 2050 1942 1943 2052 2449 2450 6 2051 1943 1944 2053 2450 2451 6 2052 1944 1945 2054 2451 2452 6 2053 1945 2055 2452 2453 2454 6 2054 1945 1946 1948 2056 2454 6 2055 1948 1949 1951 2057 2454 6 2056 1951 2058 2454 2455 2456 6 2057 1951 1952 2059 2456 2457 6 2058 1952 1953 1954 2060 2457 6 2059 1954 1955 2061 2457 2458 6 2060 1955 1956 2062 2458 2459 6 2061 1956 1957 2063 2459 2460 6 2062 1957 1959 2064 2460 2461 6 2063 1959 2065 2461 2462 2463 6 2064 1959 1960 2066 2463 2464 6 2065 1960 2067 2464 2465 2466 6 2066 1960 1961 1962 2068 2466 6 2067 1962 2069 2070 2466 2467 6 2068 1962 1963 2070 2071 1964 6 2068 2069 2071 2072 2467 2470 6 2070 2069 1964 2072 2073 1966 6 2070 2071 2073 2074 2470 2471 6 2072 2071 1966 2074 2075 2076 6 2072 2073 2075 2474 2471 2087 6 2074 2073 2076 2077 2079 2087 6 2075 2073 1966 888 889 2077 6 2076 889 890 2078 2079 2075 6 2077 890 2079 2080 2081 2082 6 2077 2078 2080 2075 2087 2088 6 2079 2078 2081 2097 2088 2083 6 2080 2078 2082 899 902 2083 6 2081 2078 890 891 895 899 6 2081 902 904 2084 2097 2080 6 2083 904 2085 2097 2096 9777 6 2084 904 905 2086 6094 9777 6 2085 905 1566 1568 3767 6094 6 2075 2079 2088 2089 2474 2074 6 2087 2079 2089 2090 2097 2080 6 2087 2088 2090 2091 2092 2474 6 2089 2088 2091 2095 2096 2097 6 2089 2090 2092 2093 2094 2095 6 2089 2091 2093 2490 2473 2474 6 2092 2091 2094 2490 5948 5949 6 2093 2091 2095 3136 5948 3133 6 2094 2091 2090 2096 3132 3133 6 2095 2090 2097 3132 2084 9777 6 2096 2090 2088 2080 2083 2084 6 632 404 634 651 650 405 6 1796 1797 2100 2296 2297 2298 6 2099 1797 1798 2101 2298 2102 5 2100 1798 1301 1302 2102 6 2101 1302 1303 2103 2298 2100 6 2102 1303 1304 2104 2298 2299 6 2103 1304 1305 2105 2299 2300 6 2104 1305 1306 2106 2300 2301 6 2105 1306 1307 2107 2301 2302 7 2106 1307 1308 1799 2108 2302 2303 5 2107 1799 2109 2303 2304 6 2108 1799 1800 2110 2304 2305 6 2109 1800 1801 2111 2305 2306 6 2110 1801 1802 2112 2306 2307 6 2111 1802 1803 2113 2307 2308 6 2112 1803 1804 2114 2308 2309 6 2113 1804 1805 2115 2309 2310 6 2114 1805 1806 2116 2310 2311 6 2115 1806 1807 2117 2311 2312 6 2116 1807 1808 2118 2312 2313 6 2117 1808 1809 2119 2313 2314 6 2118 1809 1810 2120 2314 2315 6 2119 1810 1811 2121 2315 2316 6 2120 1811 1812 2122 2316 2317 6 2121 1812 1813 2123 2317 2318 6 2122 1813 1814 2124 2318 2319 6 2123 1814 1815 2125 2319 2320 6 2124 1815 1816 2126 2320 2321 6 2125 1816 1817 2127 2321 2322 6 2126 1817 1818 2128 2322 2323 6 2127 1818 1819 2129 2323 2324 6 2128 1819 1820 2130 2324 2325 6 2129 1820 1821 2131 2325 2326 6 2130 1821 1822 2132 2326 2327 6 2131 1822 1823 2133 2327 2328 6 2132 1823 1824 2134 2152 2328 6 2133 1824 1825 2135 2152 2153 6 2134 1825 1826 2136 2153 2154 6 2135 1826 1827 1828 2137 2154 6 2136 1828 2138 2154 2155 2156 6 2137 1828 1829 2139 2156 2157 6 2138 1829 1830 2140 2157 2158 6 2139 1830 1831 2141 2158 2159 6 2140 1831 2142 2147 2159 2160 6 2141 1831 1832 1833 2143 2147 6 2142 1833 1834 2144 2147 2148 6 2143 1834 1835 2145 2148 2149 6 2144 1835 1836 2146 2149 2150 6 2145 1836 1837 2150 2151 1838 6 2141 2142 2143 2148 2160 2161 6 2147 2143 2144 2149 2161 2162 6 2148 2144 2145 2150 2162 2163 6 2149 2145 2146 2151 2163 2164 6 2150 2146 1838 2164 2165 2166 6 2133 2134 2153 2328 2329 2330 6 2152 2134 2135 2154 2330 2331 6 2153 2135 2136 2137 2155 2331 6 2154 2137 2156 2331 2332 2333 6 2155 2137 2138 2157 2333 2334 6 2156 2138 2139 2158 2334 2335 6 2157 2139 2140 2159 2335 2336 6 2158 2140 2141 2160 2336 2337 6 2159 2141 2147 2161 2337 2338 6 2160 2147 2148 2162 2338 2339 6 2161 2148 2149 2163 2339 2340 6 2162 2149 2150 2164 2340 2341 6 2163 2150 2151 2165 2341 2342 6 2164 2151 2166 2342 2343 2344 6 2165 2151 1838 1839 2167 2344 6 2166 1839 1840 2168 2344 2345 6 2167 1840 1841 2169 2170 2345 6 2168 1841 2170 2171 2172 1842 6 2168 2169 2171 2345 2346 2347 6 2170 2169 2172 2347 2348 2349 6 2171 2169 1842 2349 2350 1843 6 1725 1726 2174 3469 3468 4748 6 2173 1726 2175 2805 3396 4748 6 2174 1726 1727 1728 2176 2805 6 2175 1728 1729 2177 2178 2805 6 2176 1729 2178 2179 1732 1730 6 2176 2177 2179 2805 2806 2807 6 2178 2177 1732 2807 2808 2809 6 28 29 2181 2182 3852 3853 6 2180 29 30 2182 2183 2504 6 2180 2181 2183 2184 2200 3852 6 2182 2181 2184 2185 2503 2504 6 2182 2183 2185 2186 2199 2200 6 2184 2183 2186 2187 2194 2503 6 2184 2185 2187 2188 2198 2199 6 2186 2185 2188 2189 2193 2194 6 2186 2187 2189 2190 2198 9714 6 2188 2187 2190 2191 2192 2193 7 2188 2189 2191 9710 9709 9713 9714 5 2190 2189 2192 9711 9710 6 2191 2189 2193 2511 2513 9711 6 2192 2189 2187 2194 2511 2507 6 2193 2187 2185 2503 2505 2507 6 416 40 41 2196 9705 6489 6 2195 41 42 2197 6489 9706 7 2196 42 43 9706 44 9772 9774 6 2186 2188 2199 9714 9715 9721 6 2186 2198 2184 2200 2201 9721 6 2184 2199 2201 2202 2182 3852 6 2200 2199 2202 2203 9721 2218 6 2200 2201 2203 2204 3130 3852 6 2202 2201 2204 2205 2218 2209 6 2202 2203 2205 2206 3130 3131 6 2204 2203 2206 2207 2208 2209 6 2204 2205 2207 3131 1526 4251 6 2206 2205 2208 3344 3342 4251 6 2207 2205 2209 2210 3344 3345 6 2208 2205 2210 2211 2218 2203 6 2208 2209 2211 2212 3345 3346 6 2210 2209 2212 2213 2217 2218 6 2210 2211 2213 2214 3349 3346 6 2212 2211 2214 2215 2216 2217 6 2212 2213 2215 6523 6524 3349 6 2214 2213 2216 9717 9720 6523 6 2215 2213 2217 9717 9716 9715 6 2216 2213 2211 2218 9715 9721 6 2217 2211 2209 2203 9721 2201 6 409 60 61 2220 2546 2547 6 2219 61 62 2221 2550 2547 6 2220 62 63 2222 2550 2552 6 2221 63 64 2223 2552 6703 6 2222 64 6702 6701 6703 65 6 1699 1704 2225 3419 3420 3421 6 2224 1704 1705 2226 3421 3422 6 2225 1705 2227 3422 3423 3427 6 2226 1705 1706 2228 3427 3428 6 2227 1706 1707 2229 3428 3429 6 2228 1707 2230 3429 3430 3431 6 2229 1707 1708 2231 2239 3431 6 2230 1708 2232 2233 2239 2240 6 2231 1708 2233 1713 1712 1709 6 2231 2232 1713 2240 2241 1714 6 1749 1750 2235 2236 2243 2753 6 2234 1750 2236 2237 2238 1751 6 2234 2235 2237 2243 2244 2245 6 2236 2235 2238 2245 2246 2247 6 2237 2235 1751 2247 2248 1752 6 2230 2231 2240 3431 3432 3436 6 2239 2231 2233 2241 3436 2562 6 2240 2233 1714 1715 2561 2562 6 1188 1189 1660 1658 3098 1185 6 2234 2236 2244 2753 2754 2755 6 2243 2236 2245 2755 2756 2757 6 2244 2236 2237 2246 2757 2758 6 2245 2237 2247 2758 2759 2760 6 2246 2237 2238 2248 2760 2761 6 2247 2238 1752 1753 2254 2761 6 35 36 2250 3332 3333 3334 6 2249 36 37 2251 3337 3334 6 2250 37 38 417 2252 3337 7 2251 417 2253 6491 6492 9707 3337 5 2252 417 416 6491 9705 6 2248 1753 1754 2255 2761 2762 6 2254 1754 1755 2256 2762 2763 6 2255 1755 1756 2257 2763 2764 6 2256 1756 1757 1758 2258 2764 6 2257 1758 2259 2764 2765 2766 6 2258 1758 1759 2260 2766 2767 6 2259 1759 1760 2261 2767 2768 6 2260 1760 1761 2262 2768 2769 6 2261 1761 1762 2263 2769 2770 6 2262 1762 1763 2264 2572 2770 6 2263 1763 1764 2265 2572 2573 6 2264 1764 1765 2266 2573 2574 6 2265 1765 1766 2267 2574 2575 6 2266 1766 1767 2268 2575 2576 6 2267 1767 1768 2269 2576 2577 6 2268 1768 1769 2270 2577 2578 6 2269 1769 1770 2271 2578 2579 6 2270 1770 1771 2272 2579 2580 6 2271 1771 1772 2273 2580 2581 6 2272 1772 1773 2274 2581 2582 6 2273 1773 1774 2275 2582 2583 6 2274 1774 1775 2276 2583 2584 6 2275 1775 1776 2277 2584 2585 6 2276 1776 1777 2278 2585 2586 6 2277 1777 1778 2279 2586 2587 6 2278 1778 1779 2280 2587 2588 6 2279 1779 1780 2281 2588 2589 6 2280 1780 1781 2282 2589 2590 6 2281 1781 1782 2283 2590 2591 6 2282 1782 1783 2284 2591 2592 6 2283 1783 1784 2285 2592 2593 6 2284 1784 1785 2286 2593 2594 6 2285 1785 1786 2287 2594 2595 6 2286 1786 1787 2288 2595 2596 6 2287 1787 1788 2289 2596 2597 6 2288 1788 1789 2290 2597 2598 6 2289 1789 1790 2291 2598 2599 6 2290 1790 1791 2292 2599 2600 6 2291 1791 1792 2293 2600 2601 6 2292 1792 1793 2294 2601 2602 6 2293 1793 1794 2295 2602 2603 6 2294 1794 1795 2296 2603 2604 6 2295 1795 1796 2099 2297 2604 6 2296 2099 2298 2604 2605 2606 7 2297 2099 2100 2102 2103 2299 2606 6 2298 2103 2104 2300 2606 2607 6 2299 2104 2105 2301 2607 2608 6 2300 2105 2106 2302 2608 2609 6 2301 2106 2107 2303 2609 2610 6 2302 2107 2108 2304 2610 2611 6 2303 2108 2109 2305 2611 2612 6 2304 2109 2110 2306 2612 2613 6 2305 2110 2111 2307 2613 2614 6 2306 2111 2112 2308 2614 2615 6 2307 2112 2113 2309 2615 2616 6 2308 2113 2114 2310 2616 2617 6 2309 2114 2115 2311 2620 2617 6 2310 2115 2116 2312 2620 2621 6 2311 2116 2117 2313 2621 2622 6 2312 2117 2118 2314 2622 2623 6 2313 2118 2119 2315 2623 2624 6 2314 2119 2120 2316 2624 2625 6 2315 2120 2121 2317 2625 2626 6 2316 2121 2122 2318 2626 2627 6 2317 2122 2123 2319 2627 2628 6 2318 2123 2124 2320 2628 2629 6 2319 2124 2125 2321 2629 2630 6 2320 2125 2126 2322 2630 2631 6 2321 2126 2127 2323 2631 2632 6 2322 2127 2128 2324 2632 2633 6 2323 2128 2129 2325 2633 2634 6 2324 2129 2130 2326 2634 2635 6 2325 2130 2131 2327 2635 2636 6 2326 2131 2132 2328 2636 2637 6 2327 2132 2133 2152 2329 2637 6 2328 2152 2330 2637 2638 2639 6 2329 2152 2153 2331 2642 2639 6 2330 2153 2154 2155 2332 2642 6 2331 2155 2333 2643 2642 2644 6 2332 2155 2156 2334 2644 2645 6 2333 2156 2157 2335 2645 2646 6 2334 2157 2158 2336 2646 2647 6 2335 2158 2159 2337 2647 2648 6 2336 2159 2160 2338 2648 2649 6 2337 2160 2161 2339 2649 2650 6 2338 2161 2162 2340 2650 2651 6 2339 2162 2163 2341 2651 2652 6 2340 2163 2164 2342 2652 2653 6 2341 2164 2165 2343 2653 2654 6 2342 2165 2344 2654 2655 2656 6 2343 2165 2166 2167 2345 2656 6 2344 2167 2168 2170 2346 2656 6 2345 2170 2347 2656 2657 2658 6 2346 2170 2171 2348 2658 2659 6 2347 2171 2349 2659 2660 2661 6 2348 2171 2172 2350 2661 2662 6 2349 2172 1843 1844 2351 2662 6 2350 1844 1845 2352 2662 2663 6 2351 1845 1846 2353 2663 2664 6 2352 1846 1847 2354 2664 2665 6 2353 1847 1848 2355 2665 2666 6 2354 1848 1849 2356 2666 2667 6 2355 1849 1850 2357 2667 2668 6 2356 1850 1851 2358 2668 2669 6 2357 1851 1852 2359 2669 2670 6 2358 1852 1853 2360 2670 2671 6 2359 1853 1854 2361 2671 2672 6 2360 1854 1855 2362 2672 2673 6 2361 1855 1856 1967 2363 2673 6 2362 1967 2364 2673 2674 2675 6 2363 1967 1968 2365 2675 2676 6 2364 1968 1969 2366 2676 2677 6 2365 1969 1970 2367 2677 2678 6 2366 1970 1971 2368 2678 2679 6 2367 1971 1972 2369 2679 2680 6 2368 1972 1973 2370 2680 2681 6 2369 1973 1974 2371 2681 2682 6 2370 1974 1975 2372 2682 2683 6 2371 1975 1976 2373 2683 2684 6 2372 1976 1977 2374 2684 2685 6 2373 1977 1978 2375 2685 2686 6 2374 1978 1979 2376 2686 2687 6 2375 1979 1980 2377 2687 2688 6 2376 1980 1981 2378 2688 2689 6 2377 1981 1982 2379 2689 2690 6 2378 1982 1983 2380 2690 2691 6 2379 1983 1984 2381 2691 2692 6 2380 1984 1985 2382 2692 2693 6 2381 1985 1986 2383 2693 2694 6 2382 1986 1987 2384 2694 2695 6 2383 1987 1988 2385 2695 2696 6 2384 1988 1989 2386 2696 2697 6 2385 1989 1990 2387 2697 2698 6 2386 1990 1991 2388 2698 2699 6 2387 1991 1992 2389 2699 2700 6 2388 1992 1993 2390 2700 2701 6 2389 1993 1994 2391 2701 2702 6 2390 1994 1995 2392 2702 2703 6 2391 1995 1996 2393 2703 2704 6 2392 1996 1997 2394 2704 2705 6 2393 1997 1998 2395 2705 2706 6 2394 1998 1999 2396 2706 2707 6 2395 1999 2000 2397 2707 2708 6 2396 2000 2001 2398 2708 2709 6 2397 2001 2002 2399 2709 2710 6 2398 2002 2003 2400 2514 2710 6 2399 2003 2004 2401 2514 2515 6 2400 2004 2005 2402 2515 2516 6 2401 2005 2006 2403 2516 2517 6 2402 2006 2007 2404 2517 2518 6 2403 2007 2008 2405 2518 2519 6 2404 2008 2009 2406 2519 2520 6 2405 2009 2010 2407 2520 2521 6 2406 2010 2011 2408 2521 2522 6 2407 2011 2012 2409 2522 2523 6 2408 2012 2013 2410 2523 2524 6 2409 2013 2014 2411 2524 2525 6 2410 2014 2015 2412 2525 2526 6 2411 2015 2016 2413 2526 2527 6 2412 2016 2017 2414 2527 2528 6 2413 2017 2018 2415 2528 2529 6 2414 2018 2019 2416 2529 2530 6 2415 2019 2020 2417 2530 2531 6 2416 2020 2021 2418 2531 2532 6 2417 2021 2022 2419 2532 2533 6 2418 2022 2023 2420 2533 2534 6 2419 2023 2024 2421 2534 2535 6 2420 2024 2025 2422 2535 2536 6 2421 2025 2026 2423 2536 2537 6 2422 2026 2027 2424 2537 2538 6 2423 2027 2028 2425 2538 2539 6 2424 2028 2029 2426 2539 2540 6 2425 2029 2030 2427 2540 2541 6 2426 2030 2031 2428 2541 2542 6 2427 2031 2032 2429 2542 2543 6 2428 2032 2033 2430 2543 2544 6 2429 2033 2034 2431 2544 2545 6 2430 2034 2035 2432 2545 2433 6 2431 2035 2036 2037 2038 2433 7 2432 2038 2039 2434 2545 2431 2557 6 2433 2039 2040 2435 2557 2558 6 2434 2040 2041 2436 2558 2559 6 2435 2041 2437 2559 2560 2438 5 2436 2041 2042 2043 2438 6 2437 2043 2439 2560 2436 2746 6 2438 2043 2044 2440 2746 2747 7 2439 2044 2045 2441 2747 2748 2749 6 2440 2045 2046 2047 2442 2749 6 2441 2047 2443 2749 2750 2751 6 2442 2047 2048 2444 2751 2446 6 2443 2048 2049 2050 2445 2446 6 2444 2050 2446 2447 2448 2449 6 2444 2445 2447 2751 2443 3061 6 2446 2445 2448 3061 3062 3063 6 2447 2445 2449 3063 3064 3065 6 2448 2445 2050 2051 2450 3065 6 2449 2051 2052 2451 3065 3066 6 2450 2052 2053 2452 3066 3067 6 2451 2053 2054 2453 3067 3068 6 2452 2054 2454 3068 3069 2455 6 2453 2054 2055 2056 2057 2455 6 2454 2057 2456 3069 2453 3075 6 2455 2057 2058 2457 3075 3076 6 2456 2058 2059 2060 2458 3076 6 2457 2060 2061 2459 3076 3077 6 2458 2061 2062 2460 3077 3078 6 2459 2062 2063 2461 3078 3079 6 2460 2063 2064 2462 3079 3080 6 2461 2064 2463 3080 3081 3082 6 2462 2064 2065 2464 3082 3083 6 2463 2065 2066 2465 3083 3084 6 2464 2066 2466 2468 2483 3084 6 2465 2066 2067 2068 2467 2468 6 2466 2068 2070 2468 2469 2470 6 2466 2467 2469 2465 2483 2484 6 2468 2467 2470 2472 2478 2484 6 2469 2467 2070 2072 2471 2472 6 2470 2072 2472 2473 2474 2074 6 2470 2471 2473 2469 2478 2479 6 2472 2471 2474 2490 2479 2092 6 2473 2471 2074 2092 2089 2087 6 1517 1522 915 916 577 1516 6 1579 1588 2477 1575 6362 1574 6 2476 1588 1590 6354 6360 6362 6 2469 2472 2479 2484 2485 2486 6 2478 2472 2486 2489 2490 2473 6 1643 1644 1645 2481 1642 2491 6 2480 1645 2482 2491 2495 2870 6 2481 1645 1646 1651 2495 2496 6 2465 2468 2484 3086 3084 3927 6 2483 2468 2469 2478 2485 3927 6 2484 2478 2486 2487 3927 3151 6 2485 2478 2479 2487 2488 2489 6 2485 2486 2488 3149 3150 3151 6 2487 2486 2489 3149 3968 3162 6 2488 2486 2479 2490 5949 3968 6 2489 2479 2473 2092 2093 5949 6 1642 2480 2481 2868 2869 2870 6 71 72 2493 3437 3438 3442 6 2492 72 73 410 2494 3437 6 2493 410 1607 3516 3437 3517 6 2481 2482 2496 2870 2871 2872 6 2495 2482 1651 1652 2497 2872 6 2496 1652 2498 2872 2873 2883 6 2497 1652 1653 2499 2883 2884 6 2498 1653 2500 2884 4093 4094 6 2499 1653 1654 2501 2810 4094 6 2500 1654 1655 2502 2810 2811 6 2501 1655 1657 2811 2812 2813 6 2185 2183 2504 2194 2505 2506 6 2503 2183 31 2506 30 2181 6 2194 2503 2506 2507 2508 2509 6 2505 2503 2509 32 31 2504 6 2194 2505 2508 2510 2511 2193 6 2507 2505 2509 2510 3331 3881 6 2508 2505 2506 32 3331 33 6 2507 2508 2511 2512 3881 3882 6 2507 2510 2512 2513 2192 2193 6 2511 2510 2513 6500 6499 3882 6 2511 2512 2192 6499 6501 9711 6 2399 2400 2515 2710 2711 2712 6 2514 2400 2401 2516 2712 2713 6 2515 2401 2402 2517 2713 2714 6 2516 2402 2403 2518 2714 2715 6 2517 2403 2404 2519 2715 2716 6 2518 2404 2405 2520 2716 2717 6 2519 2405 2406 2521 2717 2718 6 2520 2406 2407 2522 2718 2719 6 2521 2407 2408 2523 2719 2720 6 2522 2408 2409 2524 2720 2721 6 2523 2409 2410 2525 2721 2722 6 2524 2410 2411 2526 2722 2723 6 2525 2411 2412 2527 2723 2724 6 2526 2412 2413 2528 2724 2725 6 2527 2413 2414 2529 2725 2726 6 2528 2414 2415 2530 2726 2727 6 2529 2415 2416 2531 2727 2728 6 2530 2416 2417 2532 2728 2729 6 2531 2417 2418 2533 2729 2730 6 2532 2418 2419 2534 2730 2731 6 2533 2419 2420 2535 2731 2732 6 2534 2420 2421 2536 2732 2733 6 2535 2421 2422 2537 2733 2734 6 2536 2422 2423 2538 2734 2735 6 2537 2423 2424 2539 2735 2736 6 2538 2424 2425 2540 2736 2737 6 2539 2425 2426 2541 2737 2738 6 2540 2426 2427 2542 2553 2738 6 2541 2427 2428 2543 2553 2554 6 2542 2428 2429 2544 2554 2555 6 2543 2429 2430 2545 2555 2556 6 2544 2430 2431 2433 2556 2557 6 409 2219 2547 2548 2842 2843 6 2546 2219 2548 2549 2550 2220 6 2546 2547 2549 2843 2846 2847 6 2548 2547 2550 2551 2858 2847 6 2549 2547 2220 2221 2551 2552 6 2549 2550 2552 6692 2857 2858 7 2551 2550 2221 2222 6703 6691 6692 6 2541 2542 2554 2738 2739 2740 6 2553 2542 2543 2555 2740 2741 6 2554 2543 2544 2556 2571 2741 6 2555 2544 2545 2557 2571 2558 5 2556 2545 2433 2434 2558 7 2557 2434 2435 2559 2571 2556 2743 5 2558 2435 2436 2560 2743 7 2559 2436 2438 2743 2744 2745 2746 6 2241 1715 2562 2563 2564 2565 6 2241 2561 2563 3436 2240 3447 6 2562 2561 2564 3447 3448 3449 6 2563 2561 2565 3449 3450 2568 6 2564 2561 1715 1716 2566 2568 6 2565 1716 1717 1718 2567 2568 6 2566 1718 2568 2569 2570 1719 6 2566 2567 2569 3450 2564 2565 6 2568 2567 2570 3459 3456 3450 6 2569 2567 1719 3464 3459 1720 6 2555 2556 2558 2741 2742 2743 6 2263 2264 2573 2770 2771 2772 6 2572 2264 2265 2574 2772 2773 6 2573 2265 2266 2575 2773 2774 6 2574 2266 2267 2576 2774 2775 6 2575 2267 2268 2577 2775 2776 6 2576 2268 2269 2578 2776 2777 6 2577 2269 2270 2579 2777 2778 6 2578 2270 2271 2580 2778 2779 6 2579 2271 2272 2581 2779 2780 6 2580 2272 2273 2582 2780 2781 6 2581 2273 2274 2583 2781 2782 6 2582 2274 2275 2584 2782 2783 6 2583 2275 2276 2585 2783 2784 6 2584 2276 2277 2586 2784 2785 6 2585 2277 2278 2587 2785 2786 6 2586 2278 2279 2588 2786 2787 6 2587 2279 2280 2589 2787 2788 6 2588 2280 2281 2590 2788 2789 6 2589 2281 2282 2591 2789 2790 6 2590 2282 2283 2592 2790 2791 6 2591 2283 2284 2593 2791 2792 6 2592 2284 2285 2594 2792 2793 6 2593 2285 2286 2595 2793 2794 6 2594 2286 2287 2596 2794 2795 6 2595 2287 2288 2597 2795 2796 6 2596 2288 2289 2598 2796 2797 6 2597 2289 2290 2599 2797 2798 6 2598 2290 2291 2600 2798 2799 6 2599 2291 2292 2601 2799 2800 6 2600 2292 2293 2602 2800 2801 6 2601 2293 2294 2603 2801 2802 6 2602 2294 2295 2604 2802 2803 6 2603 2295 2296 2297 2605 2803 6 2604 2297 2606 2803 2804 2607 5 2605 2297 2298 2299 2607 7 2606 2299 2300 2608 2804 2605 2827 5 2607 2300 2301 2609 2827 7 2608 2301 2302 2610 2827 2828 2829 6 2609 2302 2303 2611 2829 2830 6 2610 2303 2304 2612 2830 2831 6 2611 2304 2305 2613 2831 2832 6 2612 2305 2306 2614 2832 2833 6 2613 2306 2307 2615 2833 2834 6 2614 2307 2308 2616 2834 2835 6 2615 2308 2309 2617 2618 2835 6 2616 2309 2618 2619 2620 2310 6 2616 2617 2619 2835 2836 2837 6 2618 2617 2620 2837 2838 2839 6 2619 2617 2310 2311 2621 2839 6 2620 2311 2312 2622 2841 2839 6 2621 2312 2313 2623 2960 2841 6 2622 2313 2314 2624 2960 2961 6 2623 2314 2315 2625 2961 2962 6 2624 2315 2316 2626 2962 2963 6 2625 2316 2317 2627 2963 2964 6 2626 2317 2318 2628 2967 2964 6 2627 2318 2319 2629 2967 2968 6 2628 2319 2320 2630 2968 2969 6 2629 2320 2321 2631 2969 2970 6 2630 2321 2322 2632 2970 2971 6 2631 2322 2323 2633 2971 2972 6 2632 2323 2324 2634 2972 2973 6 2633 2324 2325 2635 2973 2974 6 2634 2325 2326 2636 2974 2975 6 2635 2326 2327 2637 2975 2976 6 2636 2327 2328 2329 2638 2976 6 2637 2329 2639 2640 2976 2977 6 2638 2329 2640 2641 2642 2330 6 2638 2639 2641 2977 2978 2979 6 2640 2639 2642 2643 2979 2980 6 2641 2639 2643 2332 2331 2330 6 2641 2642 2332 2644 2980 2981 6 2643 2332 2333 2645 2981 2982 6 2644 2333 2334 2646 2982 2983 6 2645 2334 2335 2647 2983 2984 6 2646 2335 2336 2648 2984 2985 6 2647 2336 2337 2649 2985 2986 6 2648 2337 2338 2650 2986 2987 6 2649 2338 2339 2651 2987 2988 6 2650 2339 2340 2652 2988 2989 6 2651 2340 2341 2653 2989 2990 6 2652 2341 2342 2654 2990 2991 6 2653 2342 2343 2655 2991 2992 6 2654 2343 2656 2992 2993 2657 6 2655 2343 2344 2345 2346 2657 6 2656 2346 2658 2993 2655 2994 6 2657 2346 2347 2659 2994 2995 6 2658 2347 2348 2660 2995 2996 6 2659 2348 2661 2996 2997 2998 6 2660 2348 2349 2662 2998 2999 6 2661 2349 2350 2351 2663 2999 6 2662 2351 2352 2664 2999 3000 6 2663 2352 2353 2665 3000 3001 6 2664 2353 2354 2666 3001 3002 6 2665 2354 2355 2667 3002 3003 6 2666 2355 2356 2668 3003 3566 6 2667 2356 2357 2669 3566 3567 6 2668 2357 2358 2670 3567 3568 6 2669 2358 2359 2671 3568 3569 6 2670 2359 2360 2672 3569 3570 6 2671 2360 2361 2673 3570 3571 6 2672 2361 2362 2363 2674 3571 6 2673 2363 2675 3571 3572 3573 6 2674 2363 2364 2676 3573 3574 6 2675 2364 2365 2677 3392 3574 6 2676 2365 2366 2678 3392 3393 6 2677 2366 2367 2679 3393 3394 6 2678 2367 2368 2680 3394 3395 6 2679 2368 2369 2681 3395 3580 6 2680 2369 2370 2682 3580 3581 6 2681 2370 2371 2683 3581 3582 6 2682 2371 2372 2684 3582 3583 6 2683 2372 2373 2685 3583 3584 6 2684 2373 2374 2686 3584 3585 6 2685 2374 2375 2687 3585 3586 6 2686 2375 2376 2688 3586 3587 6 2687 2376 2377 2689 3587 3588 6 2688 2377 2378 2690 3588 3589 6 2689 2378 2379 2691 3279 3589 6 2690 2379 2380 2692 3279 3280 6 2691 2380 2381 2693 3280 3281 6 2692 2381 2382 2694 3281 3282 6 2693 2382 2383 2695 3282 3283 6 2694 2383 2384 2696 3283 3284 6 2695 2384 2385 2697 3284 3285 6 2696 2385 2386 2698 3285 3286 6 2697 2386 2387 2699 3286 3287 6 2698 2387 2388 2700 3287 3288 6 2699 2388 2389 2701 3288 3289 6 2700 2389 2390 2702 3289 3290 6 2701 2390 2391 2703 3290 3291 6 2702 2391 2392 2704 3004 3291 6 2703 2392 2393 2705 3004 3005 6 2704 2393 2394 2706 3005 3006 6 2705 2394 2395 2707 3006 3007 6 2706 2395 2396 2708 3007 3008 6 2707 2396 2397 2709 3008 3009 6 2708 2397 2398 2710 3009 3010 6 2709 2398 2399 2514 2711 3010 6 2710 2514 2712 3010 3011 3012 6 2711 2514 2515 2713 3012 3013 6 2712 2515 2516 2714 3013 3014 6 2713 2516 2517 2715 3014 3015 6 2714 2517 2518 2716 3015 3016 6 2715 2518 2519 2717 3016 3017 6 2716 2519 2520 2718 3017 3018 6 2717 2520 2521 2719 3018 3019 6 2718 2521 2522 2720 3019 3020 6 2719 2522 2523 2721 3020 3021 6 2720 2523 2524 2722 3021 3022 6 2721 2524 2525 2723 3022 3023 6 2722 2525 2526 2724 3023 3024 6 2723 2526 2527 2725 3024 3025 6 2724 2527 2528 2726 3025 3026 6 2725 2528 2529 2727 3026 3027 6 2726 2529 2530 2728 3027 3028 6 2727 2530 2531 2729 3028 3029 6 2728 2531 2532 2730 3029 3030 6 2729 2532 2533 2731 3030 3031 6 2730 2533 2534 2732 3031 3032 6 2731 2534 2535 2733 3032 3033 6 2732 2535 2536 2734 3033 3034 6 2733 2536 2537 2735 3034 3035 6 2734 2537 2538 2736 3035 3036 6 2735 2538 2539 2737 3036 3037 6 2736 2539 2540 2738 3037 3038 6 2737 2540 2541 2553 2739 3038 6 2738 2553 2740 3038 3039 3040 6 2739 2553 2554 2741 3040 3041 6 2740 2554 2555 2571 2742 3041 6 2741 2571 2743 3041 3042 2744 6 2742 2571 2558 2559 2560 2744 6 2743 2560 2745 3042 2742 3050 5 2744 2560 2746 3050 3051 6 2745 2560 2438 2439 2747 3051 6 2746 2439 2440 2748 3051 3052 6 2747 2440 2749 3052 3053 2750 5 2748 2440 2441 2442 2750 6 2749 2442 2751 3053 2748 3059 7 2750 2442 2443 2446 3059 3060 3061 6 1747 1748 1749 2753 2894 2895 6 2752 1749 2234 2243 2754 2895 6 2753 2243 2755 2895 2896 2897 6 2754 2243 2244 2756 2897 2898 6 2755 2244 2757 2898 2899 2900 6 2756 2244 2245 2758 2900 2901 6 2757 2245 2246 2759 2901 2902 6 2758 2246 2760 2902 2903 2904 6 2759 2246 2247 2761 2904 2905 6 2760 2247 2248 2254 2762 2905 6 2761 2254 2255 2763 2905 2906 6 2762 2255 2256 2764 2906 2907 6 2763 2256 2257 2258 2765 2907 6 2764 2258 2766 2907 2908 2909 6 2765 2258 2259 2767 2909 2910 6 2766 2259 2260 2768 2910 2911 6 2767 2260 2261 2769 2911 2912 6 2768 2261 2262 2770 2912 2913 6 2769 2262 2263 2572 2771 2913 6 2770 2572 2772 2913 2914 2915 6 2771 2572 2573 2773 2915 2916 6 2772 2573 2574 2774 2916 2917 6 2773 2574 2575 2775 2917 2918 6 2774 2575 2576 2776 2918 2919 6 2775 2576 2577 2777 2919 2920 6 2776 2577 2578 2778 2920 2921 6 2777 2578 2579 2779 2921 2922 6 2778 2579 2580 2780 2922 2923 6 2779 2580 2581 2781 2923 2924 6 2780 2581 2582 2782 2924 2925 6 2781 2582 2583 2783 2925 2926 6 2782 2583 2584 2784 2926 2927 6 2783 2584 2585 2785 2927 2928 6 2784 2585 2586 2786 2928 2929 6 2785 2586 2587 2787 2929 2930 6 2786 2587 2588 2788 2930 2931 6 2787 2588 2589 2789 2931 2932 6 2788 2589 2590 2790 2932 2933 6 2789 2590 2591 2791 2933 2934 6 2790 2591 2592 2792 2934 2935 6 2791 2592 2593 2793 2935 2936 6 2792 2593 2594 2794 2936 2937 6 2793 2594 2595 2795 2937 2938 6 2794 2595 2596 2796 2938 2939 6 2795 2596 2597 2797 2939 2940 6 2796 2597 2598 2798 2940 2941 6 2797 2598 2599 2799 2941 2942 6 2798 2599 2600 2800 2942 2943 6 2799 2600 2601 2801 2943 2944 6 2800 2601 2602 2802 2944 2945 6 2801 2602 2603 2803 2945 2825 6 2802 2603 2604 2605 2804 2825 6 2803 2605 2607 2825 2826 2827 6 2174 2175 2176 2178 2806 3396 6 2805 2178 2807 3396 3397 3401 6 2806 2178 2179 2808 3401 3402 6 2807 2179 2809 3402 3403 3404 6 2808 2179 1732 3404 3405 1733 6 2500 2501 2811 4096 4094 4389 6 2810 2501 2502 2812 4389 2814 6 2811 2502 2813 1665 1667 2814 6 2812 2502 1657 1659 1662 1665 6 2812 1667 2815 3140 4389 2811 6 2814 1667 1668 2816 2818 3140 6 2815 1668 2817 2818 2819 2820 6 2816 1668 1669 2820 2821 2822 6 2815 2816 2819 3140 3141 3142 6 2818 2816 2820 3142 3143 3144 6 2819 2816 2817 2821 3144 3145 6 2820 2817 2822 3145 3146 3147 6 2821 2817 1669 2823 2824 3147 6 2822 1669 2824 1673 1672 1670 6 2822 2823 1673 3147 3148 1674 6 2803 2804 2826 2945 2802 2946 6 2825 2804 2827 2946 2947 2828 6 2826 2804 2607 2608 2609 2828 6 2827 2609 2829 2947 2826 2948 5 2828 2609 2610 2830 2948 6 2829 2610 2611 2831 2948 2949 6 2830 2611 2612 2832 2949 2950 6 2831 2612 2613 2833 2950 2951 6 2832 2613 2614 2834 2951 2952 6 2833 2614 2615 2835 2952 2953 7 2834 2615 2616 2618 2836 2953 2954 5 2835 2618 2837 2954 2955 6 2836 2618 2619 2838 2955 2956 6 2837 2619 2839 2840 2956 2957 6 2838 2619 2840 2841 2621 2620 6 2838 2839 2841 2957 2958 2959 6 2840 2839 2621 2959 2960 2622 6 409 2546 2843 2844 9691 430 6 2842 2546 2844 2845 2548 2846 6 2842 2843 2845 3169 9689 9691 6 2844 2843 3169 3166 3163 2846 6 2843 2548 2847 2848 3163 2845 6 2846 2548 2848 2849 2549 2858 6 2846 2847 2849 2850 3163 3164 6 2848 2847 2850 2851 2852 2858 6 2848 2849 2851 2853 2859 3164 6 2850 2849 2852 2853 2854 2855 6 2851 2849 2855 2856 2857 2858 6 2850 2851 2854 2859 2860 2861 5 2853 2851 2855 2861 6677 7 2854 2851 2852 2856 6677 6678 6679 7 2855 2852 2857 6690 6687 6681 6679 6 2856 2852 2858 6692 6690 2551 6 2857 2852 2849 2551 2549 2847 6 2850 2853 2860 3181 3164 6662 7 2859 2853 2861 6662 6675 6667 6663 6 2860 2853 2854 6676 6675 6677 5 1632 1634 1629 1630 1631 6 1629 1634 1637 2864 1628 7216 7 2863 1637 1638 2865 7217 7216 7218 5 2864 1638 1639 2866 7218 7 2865 1639 1640 2867 7218 7219 7220 7 2866 1640 1641 2868 3190 3215 7220 6 2867 1641 1642 2491 2869 3190 6 2868 2491 2870 3190 3191 3182 6 2869 2491 2481 2495 2871 3182 6 2870 2495 2872 2874 2885 3182 6 2871 2495 2496 2497 2873 2874 6 2872 2497 2874 2875 2882 2883 6 2872 2873 2875 2876 2871 2885 6 2874 2873 2876 2877 2881 2882 6 2874 2875 2877 2878 2885 2886 6 2876 2875 2878 2879 2880 2881 6 2876 2877 2879 2886 2887 2888 6 2878 2877 2880 2888 2889 2890 6 2879 2877 2881 2893 2890 7601 6 2880 2877 2875 2882 4087 7601 6 2881 2875 2873 2883 4087 4088 6 2882 2873 2497 2498 2884 4088 6 2883 2498 2499 4088 4089 4093 6 2871 2874 2876 2886 3182 3183 6 2885 2876 2878 2887 3183 3184 6 2886 2878 2888 3184 3185 3186 6 2887 2878 2879 2889 3189 3186 6 2888 2879 2890 2891 3960 3189 6 2889 2879 2891 2892 2893 2880 6 2889 2890 2892 3962 3960 7593 6 2891 2890 2893 7593 7594 7595 6 2892 2890 2880 7601 7598 7595 6 1746 1747 2752 2895 3200 3199 6 2894 2752 2753 2754 2896 3199 6 2895 2754 2897 3199 3201 3202 6 2896 2754 2755 2898 3202 3203 6 2897 2755 2756 2899 3203 3204 6 2898 2756 2900 3204 3205 3206 6 2899 2756 2757 2901 3206 3207 6 2900 2757 2758 2902 3207 3208 6 2901 2758 2759 2903 3208 3209 6 2902 2759 2904 3209 3210 3211 6 2903 2759 2760 2905 3214 3211 6 2904 2760 2761 2762 2906 3214 6 2905 2762 2763 2907 3484 3214 6 2906 2763 2764 2765 2908 3484 6 2907 2765 2909 3483 3213 3484 7 2908 2765 2766 2910 3501 3483 3698 6 2909 2766 2767 2911 3698 3699 6 2910 2767 2768 2912 3699 3700 6 2911 2768 2769 2913 3700 3701 6 2912 2769 2770 2771 2914 3701 6 2913 2771 2915 3701 3702 3703 6 2914 2771 2772 2916 3703 3704 6 2915 2772 2773 2917 3704 3705 6 2916 2773 2774 2918 3705 3706 6 2917 2774 2775 2919 3706 3707 6 2918 2775 2776 2920 3707 3708 6 2919 2776 2777 2921 3708 3709 6 2920 2777 2778 2922 3709 3710 6 2921 2778 2779 2923 3710 3711 6 2922 2779 2780 2924 3711 3712 6 2923 2780 2781 2925 3712 3713 6 2924 2781 2782 2926 3713 3714 6 2925 2782 2783 2927 3714 3715 6 2926 2783 2784 2928 3715 3716 6 2927 2784 2785 2929 3716 3717 6 2928 2785 2786 2930 3717 3718 6 2929 2786 2787 2931 3718 3719 6 2930 2787 2788 2932 3719 3720 6 2931 2788 2789 2933 3720 3721 6 2932 2789 2790 2934 3721 3722 6 2933 2790 2791 2935 3722 3723 6 2934 2791 2792 2936 3723 3724 6 2935 2792 2793 2937 3724 3725 6 2936 2793 2794 2938 3725 3726 6 2937 2794 2795 2939 3726 3727 6 2938 2795 2796 2940 3727 3728 6 2939 2796 2797 2941 3728 3729 6 2940 2797 2798 2942 3729 3730 6 2941 2798 2799 2943 3730 3731 6 2942 2799 2800 2944 3731 3732 6 2943 2800 2801 2945 3732 3733 6 2944 2801 2802 2825 2946 3733 6 2945 2825 2826 2947 3733 3734 6 2946 2826 2828 2948 3734 3735 6 2947 2828 2829 2830 2949 3735 7 2948 2830 2831 2950 3735 3736 3737 6 2949 2831 2832 2951 3243 3737 6 2950 2832 2833 2952 3243 3244 6 2951 2833 2834 2953 3244 3245 6 2952 2834 2835 2954 3245 3246 5 2953 2835 2836 2955 3246 7 2954 2836 2837 2956 3246 3247 3248 6 2955 2837 2838 2957 3248 3249 6 2956 2838 2840 2958 3249 3250 6 2957 2840 2959 3250 3251 3252 6 2958 2840 2841 2960 3252 3253 6 2959 2841 2622 2623 2961 3253 6 2960 2623 2624 2962 3255 3253 6 2961 2624 2625 2963 3255 3256 6 2962 2625 2626 2964 2965 3256 6 2963 2626 2965 2966 2967 2627 6 2963 2964 2966 3256 3257 3258 6 2965 2964 2967 3258 3259 3260 6 2966 2964 2627 2628 2968 3260 6 2967 2628 2629 2969 3260 3261 6 2968 2629 2630 2970 3261 3262 6 2969 2630 2631 2971 3262 3263 6 2970 2631 2632 2972 3263 3264 6 2971 2632 2633 2973 3264 3265 6 2972 2633 2634 2974 3265 3266 6 2973 2634 2635 2975 3266 3267 6 2974 2635 2636 2976 3267 3268 6 2975 2636 2637 2638 2977 3268 6 2976 2638 2640 2978 3268 3269 6 2977 2640 2979 3269 3270 3271 6 2978 2640 2641 2980 3271 3272 6 2979 2641 2643 2981 3272 3273 6 2980 2643 2644 2982 3273 3274 6 2981 2644 2645 2983 3274 3275 6 2982 2645 2646 2984 3275 3276 6 2983 2646 2647 2985 3276 3277 6 2984 2647 2648 2986 3277 3278 6 2985 2648 2649 2987 3278 3825 6 2986 2649 2650 2988 3546 3825 6 2987 2650 2651 2989 3546 3547 6 2988 2651 2652 2990 3547 3548 6 2989 2652 2653 2991 3548 3549 6 2990 2653 2654 2992 3549 3550 6 2991 2654 2655 2993 3550 3551 6 2992 2655 2657 2994 3551 3552 6 2993 2657 2658 2995 3552 3553 6 2994 2658 2659 2996 3553 3554 6 2995 2659 2660 2997 3554 3555 6 2996 2660 2998 3555 3556 3557 6 2997 2660 2661 2999 3557 3558 6 2998 2661 2662 2663 3000 3558 6 2999 2663 2664 3001 3558 3559 6 3000 2664 2665 3002 3559 3560 6 3001 2665 2666 3003 3560 3561 6 3002 2666 2667 3561 3562 3566 6 2703 2704 3005 3291 3292 3293 6 3004 2704 2705 3006 3293 3294 6 3005 2705 2706 3007 3294 3295 6 3006 2706 2707 3008 3295 3296 6 3007 2707 2708 3009 3296 3297 6 3008 2708 2709 3010 3297 3298 6 3009 2709 2710 2711 3011 3298 6 3010 2711 3012 3298 3299 3300 6 3011 2711 2712 3013 3300 3301 6 3012 2712 2713 3014 3301 3302 6 3013 2713 2714 3015 3302 3303 6 3014 2714 2715 3016 3303 3304 6 3015 2715 2716 3017 3304 3305 6 3016 2716 2717 3018 3305 3306 6 3017 2717 2718 3019 3306 3307 6 3018 2718 2719 3020 3307 3308 6 3019 2719 2720 3021 3308 3309 6 3020 2720 2721 3022 3309 3310 6 3021 2721 2722 3023 3310 3311 6 3022 2722 2723 3024 3311 3312 6 3023 2723 2724 3025 3312 3313 6 3024 2724 2725 3026 3313 3314 6 3025 2725 2726 3027 3314 3315 6 3026 2726 2727 3028 3315 3316 6 3027 2727 2728 3029 3316 3317 6 3028 2728 2729 3030 3317 3318 6 3029 2729 2730 3031 3318 3319 6 3030 2730 2731 3032 3319 3320 6 3031 2731 2732 3033 3320 3321 6 3032 2732 2733 3034 3321 3322 6 3033 2733 2734 3035 3322 3323 6 3034 2734 2735 3036 3043 3323 6 3035 2735 2736 3037 3043 3044 6 3036 2736 2737 3038 3044 3045 6 3037 2737 2738 2739 3039 3045 6 3038 2739 3040 3045 3046 3047 6 3039 2739 2740 3041 3047 3048 6 3040 2740 2741 2742 3042 3048 6 3041 2742 2744 3048 3049 3050 6 3035 3036 3044 3323 3324 3325 6 3043 3036 3037 3045 3325 3326 6 3044 3037 3038 3039 3046 3326 6 3045 3039 3047 3326 3327 3328 6 3046 3039 3040 3048 3054 3328 6 3047 3040 3041 3042 3049 3054 6 3048 3042 3050 3054 3055 3056 6 3049 3042 2744 2745 3051 3056 6 3050 2745 2746 2747 3052 3056 6 3051 2747 2748 3053 3056 3057 6 3052 2748 2750 3057 3058 3059 6 3047 3048 3049 3055 3328 3329 6 3054 3049 3056 3329 3330 3057 6 3055 3049 3050 3051 3052 3057 7 3056 3052 3053 3058 3330 3055 3642 5 3057 3053 3059 3642 3643 7 3058 3053 2750 2751 3060 3643 3644 6 3059 2751 3061 3644 3645 3062 5 3060 2751 2446 2447 3062 6 3061 2447 3063 3645 3060 3911 6 3062 2447 2448 3064 3911 3912 6 3063 2448 3065 3070 3912 3913 6 3064 2448 2449 2450 3066 3070 6 3065 2450 2451 3067 3070 3071 6 3066 2451 2452 3068 3071 3072 6 3067 2452 2453 3069 3072 3073 6 3068 2453 2455 3073 3074 3075 6 3064 3065 3066 3071 3913 3914 6 3070 3066 3067 3072 3914 3915 6 3071 3067 3068 3073 3915 3916 6 3072 3068 3069 3074 3916 3917 6 3073 3069 3075 3917 3918 3919 6 3074 3069 2455 2456 3076 3919 6 3075 2456 2457 2458 3077 3919 6 3076 2458 2459 3078 3350 3919 6 3077 2459 2460 3079 3350 3351 6 3078 2460 2461 3080 3108 3351 6 3079 2461 2462 3081 3108 3109 6 3080 2462 3082 3092 3109 3110 6 3081 2462 2463 3083 3092 3093 6 3082 2463 2464 3084 3085 3093 6 3083 2464 3085 3086 2483 2465 6 3083 3084 3086 3093 3113 3360 6 3085 3084 2483 3927 3153 3360 6 17 18 3088 3089 3090 3091 6 3087 18 19 3096 3127 3091 6 17 3087 3090 3099 418 16 6 3089 3087 3091 3099 3104 3105 6 3090 3087 3105 3106 3088 3127 6 3081 3082 3093 3110 3111 3112 6 3092 3082 3083 3085 3112 3113 5 1616 1617 3095 4100 3545 6 3094 1617 1618 4368 4100 1625 6 3088 19 20 3097 3126 3127 6 3096 20 21 3126 3129 415 6 2242 1658 1656 1648 1183 1185 6 3089 3090 418 3100 3103 3104 6 418 3099 419 3101 3102 3103 6 419 3100 3102 3229 3230 3685 6 3101 3100 3103 3227 3229 3499 7 3102 3100 3099 3104 3114 3499 3498 6 3103 3099 3090 3105 3114 3115 6 3104 3090 3091 3106 3107 3115 6 3105 3091 3107 3127 3125 3119 6 3105 3106 3117 3115 3118 3119 6 3079 3080 3109 3351 3352 3353 6 3108 3080 3081 3110 3353 3354 6 3109 3081 3092 3111 3354 3355 6 3110 3092 3112 3355 3356 3357 6 3111 3092 3093 3113 3357 3358 6 3112 3093 3085 3358 3359 3360 5 3103 3104 3115 3116 3498 6 3114 3104 3116 3117 3107 3105 7 3114 3115 3117 3498 3505 3502 3496 6 3116 3115 3107 3118 6713 3505 6 3117 3107 3119 3120 6713 6712 6 3118 3107 3120 3121 3125 3106 6 3118 3119 3121 3122 6712 6714 6 3120 3119 3122 3123 3124 3125 6 3120 3121 3123 3885 3888 6714 6 3122 3121 3124 3128 3884 3885 6 3123 3121 3125 3126 3128 3129 6 3124 3121 3119 3126 3127 3106 6 3124 3125 3127 3129 3096 3097 6 3126 3125 3106 3096 3088 3091 6 3123 3124 3129 3883 3340 3884 6 3128 3124 3126 415 3883 3097 6 2202 2204 3131 3852 3853 9782 6 3130 2204 2206 1526 1527 9782 6 2095 2096 3133 3134 9777 3139 6 2095 3132 3134 3135 3136 2094 6 3133 3132 3135 3137 3138 3139 6 3133 3134 3136 3137 5947 5946 6 3133 3135 5946 5944 5948 2094 6 3135 3134 3138 6091 6092 5947 6 3137 3134 3139 6091 6090 6093 6 3138 3134 6093 6094 9777 3132 6 2814 2815 2818 3141 4389 4387 6 3140 2818 3142 4386 4385 4387 6 3141 2818 2819 3143 4391 4386 6 3142 2819 3144 7768 4391 7769 6 3143 2819 2820 3145 7775 7769 6 3144 2820 2821 3146 7775 7776 6 3145 2821 3147 4232 7776 9792 6 3146 2821 2822 2824 3148 4232 6 3147 2824 1674 1675 3413 4232 6 2487 2488 3150 3157 3158 3162 6 2487 3149 3151 3152 3156 3157 6 2487 3150 3152 3153 3927 2485 6 3151 3150 3153 3154 3155 3156 6 3151 3152 3154 3927 3086 3360 6 3153 3152 3155 3359 3360 3361 6 3154 3152 3156 3361 3362 3363 6 3155 3152 3150 3157 3678 3363 6 3156 3150 3149 3158 3159 3678 6 3157 3149 3159 3160 3161 3162 6 3157 3158 3160 3677 3678 3946 6 3159 3158 3161 3946 3947 3963 6 3160 3158 3162 3963 3964 3965 6 3161 3158 3149 3968 3965 2488 6 2846 2848 3164 3165 3166 2845 6 3163 2848 3165 3181 2859 2850 6 3163 3164 3166 3167 3178 3181 6 3163 3165 3167 3168 3169 2845 6 3166 3165 3168 3178 3175 3172 6 3166 3167 3169 3170 3171 3172 6 3166 3168 3170 2844 2845 9689 6 3169 3168 3171 9688 9687 9689 5 3170 3168 3172 3173 9688 6 3171 3168 3173 3174 3175 3167 6 3171 3172 3174 9692 9688 6654 7 3173 3172 3175 3176 6655 6653 6654 6 3174 3172 3176 3177 3178 3167 5 3174 3175 3177 3451 6655 6 3176 3175 3178 3179 3180 3451 6 3177 3175 3179 3167 3165 3181 6 3177 3178 3180 3181 6661 6662 6 3177 3179 3451 6658 6660 6661 6 3178 3165 3179 3164 2859 6662 6 2870 2871 2885 3183 3191 2869 6 3182 2885 2886 3184 3217 3191 6 3183 2886 2887 3185 3194 3217 6 3184 2887 3186 3187 3193 3194 6 3185 2887 3187 3188 3189 2888 6 3185 3186 3188 3193 3197 7585 6 3187 3186 3189 3959 7587 7585 6 3188 3186 2888 3959 3960 2889 6 2868 2869 3191 2867 3215 3216 6 3190 2869 3182 3216 3217 3183 6 1742 1743 1745 3198 3199 3200 6 3185 3187 3194 3195 3196 3197 6 3185 3193 3195 7223 3217 3184 7 3194 3193 3196 7223 7222 7205 7204 6 3195 3193 3197 7197 7198 7204 6 3196 3193 3187 7584 7197 7585 6 1741 1742 3192 3199 3412 3201 7 3198 3192 3200 2894 2895 2896 3201 5 3199 3192 1745 1746 2894 6 3199 2896 3202 3412 3198 9752 6 3201 2896 2897 3203 3471 9752 6 3202 2897 2898 3204 3471 3472 6 3203 2898 2899 3205 3472 3473 6 3204 2899 3206 3473 3474 3475 6 3205 2899 2900 3207 3475 3476 6 3206 2900 2901 3208 3476 3477 6 3207 2901 2902 3209 3477 3478 6 3208 2902 2903 3210 3478 3479 6 3209 2903 3211 3212 3479 3480 6 3210 2903 3212 3213 3214 2904 6 3210 3211 3213 3480 3481 3482 7 3212 3211 3214 3482 3483 2908 3484 6 3213 3211 2904 3484 2906 2905 6 2867 3190 3216 7221 7220 7222 6 3215 3190 3191 3217 7222 7223 6 3216 3191 3183 7223 3194 3184 6 636 637 3219 4041 3764 3763 6 3218 637 639 3220 3485 4041 6 3219 639 3221 3222 3223 3485 6 3220 639 640 3222 3241 3242 6 3220 3221 3223 3224 3225 3242 6 3220 3222 3224 3485 3486 3487 6 3223 3222 3225 3226 3487 3488 6 3224 3222 3226 3227 3228 3242 6 3224 3225 3227 3494 3488 3495 7 3226 3225 3228 3229 3102 3495 3499 6 3227 3225 3229 3230 3231 3242 5 3227 3228 3102 3101 3230 6 3101 3229 3228 3231 3232 3685 6 3230 3228 3232 3233 3242 3241 6 3230 3231 3233 3234 3235 3685 6 3232 3231 3234 3241 3240 3237 7 3232 3233 3235 12 11 3236 3237 5 3232 3234 12 3685 13 6 11 3234 3237 3238 3239 10 6 3236 3234 3238 644 3240 3233 6 3236 3237 3239 648 645 644 5 3236 3238 10 9 648 6 644 3237 641 640 3241 3233 6 640 3240 3221 3242 3231 3233 6 3221 3241 3222 3225 3228 3231 6 2950 2951 3244 3737 3738 3739 6 3243 2951 2952 3245 3739 3740 6 3244 2952 2953 3246 3740 3741 7 3245 2953 2954 2955 3247 3741 3742 5 3246 2955 3248 3742 3743 6 3247 2955 2956 3249 3743 3744 6 3248 2956 2957 3250 3744 3745 6 3249 2957 2958 3251 3745 3746 6 3250 2958 3252 3746 3747 3748 6 3251 2958 2959 3253 3254 3748 6 3252 2959 3254 3255 2961 2960 6 3252 3253 3255 3748 3749 3750 6 3254 3253 2961 2962 3256 3750 6 3255 2962 2963 2965 3257 3750 6 3256 2965 3258 3750 3751 3752 6 3257 2965 2966 3259 3752 3753 6 3258 2966 3260 3753 3754 3755 6 3259 2966 2967 2968 3261 3755 6 3260 2968 2969 3262 3755 3756 6 3261 2969 2970 3263 3756 3757 6 3262 2970 2971 3264 3757 3758 6 3263 2971 2972 3265 3758 3759 6 3264 2972 2973 3266 3759 3760 7 3265 2973 2974 3267 3760 4055 4052 5 3266 2974 2975 3268 4055 6 3267 2975 2976 2977 3269 4055 7 3268 2977 2978 3270 4055 4054 4056 5 3269 2978 3271 4056 4057 6 3270 2978 2979 3272 4057 4058 6 3271 2979 2980 3273 4058 4059 6 3272 2980 2981 3274 4059 4060 6 3273 2981 2982 3275 4060 4061 6 3274 2982 2983 3276 4061 4062 6 3275 2983 2984 3277 4065 4062 6 3276 2984 2985 3278 4065 4066 6 3277 2985 2986 3827 4066 3825 6 2690 2691 3280 3589 3590 3591 6 3279 2691 2692 3281 3591 3592 6 3280 2692 2693 3282 3592 3593 6 3281 2693 2694 3283 3593 3594 6 3282 2694 2695 3284 3594 3595 6 3283 2695 2696 3285 3595 3596 6 3284 2696 2697 3286 3596 3597 6 3285 2697 2698 3287 3597 3598 6 3286 2698 2699 3288 3598 3599 6 3287 2699 2700 3289 3599 3600 6 3288 2700 2701 3290 3600 3601 6 3289 2701 2702 3291 3601 3602 6 3290 2702 2703 3004 3292 3602 6 3291 3004 3293 3602 3603 3604 6 3292 3004 3005 3294 3604 3605 6 3293 3005 3006 3295 3605 3606 6 3294 3006 3007 3296 3606 3607 6 3295 3007 3008 3297 3607 3608 6 3296 3008 3009 3298 3608 3609 6 3297 3009 3010 3011 3299 3609 6 3298 3011 3300 3609 3610 3611 6 3299 3011 3012 3301 3611 3612 6 3300 3012 3013 3302 3612 3613 6 3301 3013 3014 3303 3613 3614 6 3302 3014 3015 3304 3614 3615 6 3303 3015 3016 3305 3615 3616 6 3304 3016 3017 3306 3616 3617 6 3305 3017 3018 3307 3617 3618 6 3306 3018 3019 3308 3618 3619 6 3307 3019 3020 3309 3619 3620 6 3308 3020 3021 3310 3620 3621 6 3309 3021 3022 3311 3621 3622 6 3310 3022 3023 3312 3622 3623 6 3311 3023 3024 3313 3623 3624 6 3312 3024 3025 3314 3624 3625 6 3313 3025 3026 3315 3625 3626 6 3314 3026 3027 3316 3626 3627 6 3315 3027 3028 3317 3627 3628 6 3316 3028 3029 3318 3628 3629 6 3317 3029 3030 3319 3629 3630 6 3318 3030 3031 3320 3630 3631 6 3319 3031 3032 3321 3631 3632 6 3320 3032 3033 3322 3632 3633 6 3321 3033 3034 3323 3633 3634 6 3322 3034 3035 3043 3324 3634 6 3323 3043 3325 3634 3635 3636 6 3324 3043 3044 3326 3636 3637 6 3325 3044 3045 3046 3327 3637 6 3326 3046 3328 3637 3638 3639 6 3327 3046 3047 3054 3329 3639 6 3328 3054 3055 3330 3639 3640 6 3329 3055 3057 3640 3641 3642 6 2508 2509 33 34 3332 3881 6 3331 34 35 2249 3333 3881 6 3332 2249 3334 3335 3881 3882 6 3333 2249 3335 3336 3337 2250 6 3333 3334 3336 9708 6500 3882 6 3335 3334 3337 9707 6493 9708 6 3336 3334 2250 2251 2252 9707 6 1172 1173 1525 3339 3340 3883 6 3338 1525 3340 3341 3342 4251 6 3338 3339 3341 3883 3128 3884 6 3340 3339 3342 3343 3886 3884 6 3341 3339 3343 3344 2207 4251 6 3341 3342 3344 3862 6718 3886 6 3343 3342 2207 2208 3345 3862 6 3344 2208 2210 3346 3347 3862 6 3345 2210 3347 3348 3349 2212 6 3345 3346 3348 3862 3863 3864 6 3347 3346 3349 6533 3864 6525 6 3348 3346 2212 2214 6524 6525 6 3077 3078 3351 3919 3918 3920 6 3350 3078 3079 3108 3352 3920 6 3351 3108 3353 3920 3921 3922 6 3352 3108 3109 3354 3922 3923 6 3353 3109 3110 3355 3923 3924 6 3354 3110 3111 3356 3924 3925 6 3355 3111 3357 3925 3926 3375 6 3356 3111 3112 3358 3369 3375 6 3357 3112 3113 3359 3368 3369 6 3358 3113 3360 3154 3361 3368 6 3359 3113 3154 3086 3153 3085 6 3359 3154 3155 3362 3364 3368 6 3361 3155 3363 3364 3365 3679 6 3362 3155 3156 3678 3676 3679 6 3361 3362 3365 3366 3367 3368 6 3364 3362 3366 3679 3668 3669 6 3364 3365 3367 3374 3371 3669 6 3364 3366 3368 3369 3370 3371 6 3364 3367 3369 3361 3359 3358 6 3368 3367 3370 3358 3357 3375 6 3369 3367 3371 3372 3375 3376 6 3370 3367 3372 3373 3374 3366 6 3370 3371 3373 3376 3377 3378 6 3372 3371 3374 3378 3379 3380 6 3373 3371 3366 3380 3381 3669 6 3357 3369 3370 3376 3926 3356 7 3375 3370 3372 3377 3944 3926 4343 5 3376 3372 3378 4343 4344 6 3377 3372 3373 3379 4344 4345 6 3378 3373 3380 3646 4348 4345 6 3379 3373 3374 3381 3382 3646 6 3380 3374 3382 3383 3669 3657 6 3380 3381 3383 3384 3385 3646 6 3382 3381 3384 3391 3388 3657 6 3382 3383 3385 3386 3387 3388 6 3382 3384 3386 3646 3647 3648 6 3385 3384 3387 3648 3649 3650 6 3386 3384 3388 3389 3650 3651 6 3387 3384 3389 3390 3391 3383 6 3387 3388 3390 3651 3652 3653 6 3389 3388 3391 3653 3654 3655 6 3390 3388 3383 3655 3656 3657 6 2676 2677 3393 3574 3575 3576 6 3392 2677 2678 3394 3576 3577 6 3393 2678 2679 3395 3577 3578 6 3394 2679 2680 3578 3579 3580 6 2174 2805 2806 3397 3398 4748 6 3396 2806 3398 3399 3400 3401 6 3396 3397 3399 3893 4748 4747 6 3398 3397 3400 3893 3894 3895 6 3399 3397 3401 3895 3896 3897 6 3400 3397 2806 2807 3402 3897 6 3401 2807 2808 3403 3897 3898 6 3402 2808 3404 3898 3899 3900 6 3403 2808 2809 3405 3900 3901 6 3404 2809 1733 3406 3680 3901 6 3405 1733 1734 1735 3407 3680 6 3406 1735 1736 3408 3680 3681 6 3407 1736 1737 3409 3681 3682 6 3408 1737 1738 3410 3684 3682 6 3409 1738 1739 3411 3471 3684 6 3410 1739 1740 3412 9752 3471 6 3411 1740 1741 3198 3201 9752 6 3148 1675 1676 1677 3414 4232 6 3413 1677 1678 3415 9792 4232 6 3414 1678 3416 7779 7777 9792 6 3415 1678 1679 7779 7780 5383 6 1696 1697 3418 3787 1695 3788 6 3417 1697 1698 3419 3788 3790 6 3418 1698 1699 2224 3420 3790 6 3419 2224 3421 3790 3791 3792 6 3420 2224 2225 3422 3792 3793 6 3421 2225 2226 3423 3424 3793 6 3422 2226 3424 3425 3426 3427 6 3422 3423 3425 3795 3793 3796 6 3424 3423 3426 3796 3797 3798 6 3425 3423 3427 3798 3799 3800 6 3426 3423 2226 2227 3428 3800 6 3427 2227 2228 3429 3800 3801 6 3428 2228 2229 3430 3801 3802 6 3429 2229 3431 3802 3803 3433 6 3430 2229 2230 2239 3432 3433 6 3431 2239 3433 3434 3435 3436 6 3431 3432 3434 3443 3803 3430 6 3433 3432 3435 3443 3444 3445 6 3434 3432 3436 3445 3446 3447 6 3435 3432 2239 2240 2562 3447 6 2492 2493 3438 3439 3516 2494 6 2492 3437 3439 3440 3441 3442 6 3438 3437 3440 3514 3515 3516 6 3438 3439 3441 3509 3510 3514 6 3438 3440 3442 3452 3454 3509 6 3438 3441 2492 71 3452 70 6 3433 3434 3444 3803 3804 3805 6 3443 3434 3445 3805 3806 3807 6 3444 3434 3435 3446 3807 3808 6 3445 3435 3447 3808 3809 3448 6 3446 3435 3436 2562 2563 3448 6 3447 2563 3449 3809 3446 4108 6 3448 2563 2564 3450 3455 4108 6 3449 2564 2568 3455 3456 2569 7 3176 3177 3180 6656 6655 6657 6658 6 3442 3441 70 69 3453 3454 6 69 3452 3454 68 3506 3507 6 3453 3452 3441 3507 3508 3509 6 3449 3450 3456 3457 4108 4109 6 3455 3450 3457 3458 3459 2569 6 3455 3456 3458 3465 4111 4109 6 3457 3456 3459 3460 3461 3465 6 3458 3456 3460 3464 2570 2569 6 3458 3459 3461 3462 3463 3464 6 3458 3460 3462 3465 3466 3467 6 3461 3460 3463 3467 3468 3470 6 3462 3460 3464 1722 3470 1721 6 3463 3460 3459 2570 1721 1720 6 3457 3458 3461 3466 4395 4111 6 3465 3461 3467 4405 4395 4746 6 3466 3461 3462 3468 3469 4746 6 3467 3462 3469 2173 1725 3470 6 3467 3468 2173 4746 4747 4748 6 1725 3468 1723 1722 3463 3462 7 3202 3203 3472 9752 3411 3410 3684 6 3471 3203 3204 3473 3682 3684 6 3472 3204 3205 3474 3683 3682 6 3473 3205 3475 3686 3903 3683 6 3474 3205 3206 3476 3686 3687 6 3475 3206 3207 3477 3687 3688 6 3476 3207 3208 3478 3688 3689 6 3477 3208 3209 3479 3689 3690 6 3478 3209 3210 3480 3690 3691 6 3479 3210 3212 3481 3691 3692 6 3480 3212 3482 3500 3695 3692 6 3481 3212 3213 3483 3500 3501 5 3482 3213 2908 3501 2909 5 2908 3213 3214 2906 2907 6 3219 3220 3223 3486 4040 4041 6 3485 3223 3487 3490 3969 4040 6 3486 3223 3224 3488 3489 3490 6 3487 3224 3489 3493 3494 3226 6 3487 3488 3490 3491 3492 3493 6 3487 3489 3491 3486 3969 3970 6 3490 3489 3492 3970 3971 3972 6 3491 3489 3493 3972 9748 6556 6 3492 3489 3488 3494 3497 9748 6 3493 3488 3226 3495 3496 3497 6 3494 3226 3227 3496 3498 3499 6 3494 3495 3497 3498 3502 3116 6 3494 3496 3493 3502 3503 9748 6 3496 3495 3499 3103 3114 3116 5 3498 3495 3227 3102 3103 6 3481 3482 3501 3695 3696 3697 6 3500 3482 3483 2909 3697 3698 6 3497 3496 3503 3504 3505 3116 6 3497 3502 3504 9748 6707 9749 6 3503 3502 3505 6713 6711 9749 5 3504 3502 3116 6713 3117 6 68 3453 3507 6698 6704 67 6 3506 3453 3454 3508 6698 6705 6 3507 3454 3509 3511 4523 6705 6 3508 3454 3441 3440 3510 3511 6 3509 3440 3511 3512 3513 3514 6 3509 3510 3512 3771 3508 4523 6 3511 3510 3513 3771 3772 3773 6 3512 3510 3514 3773 3774 3521 6 3513 3510 3440 3439 3515 3521 6 3514 3439 3516 3521 3522 3518 6 3515 3439 3437 2494 3517 3518 6 3516 2494 3518 3519 1608 1607 6 3516 3517 3519 3522 3515 3523 6 3518 3517 1608 1614 3523 3524 5 1614 1608 1606 1609 1611 6 3514 3515 3522 3774 3513 4532 6 3521 3515 3518 3523 4117 4532 6 3522 3518 3519 3524 3526 4117 6 3523 3519 1614 1615 3525 3526 6 3524 1615 3526 3527 3528 3529 6 3524 3525 3527 3523 4117 4118 6 3526 3525 3528 3530 4118 4119 6 3527 3525 3529 3530 3531 3544 6 3528 3525 1615 3544 3545 1616 6 3527 3528 3531 3532 4119 9787 6 3530 3528 3532 3533 3543 3544 6 3530 3531 3533 3534 9787 9788 6 3532 3531 3534 3535 3542 3543 6 3532 3533 3535 3536 9788 9789 6 3534 3533 3536 3537 3541 3542 6 3534 3535 3537 3538 9789 7179 6 3536 3535 3538 3539 3540 3541 6 3536 3537 3539 7183 7180 7179 6 3538 3537 3540 7183 7184 7185 6 3539 3537 3541 7185 7186 7213 6 3540 3537 3535 3542 7213 4373 6 3541 3535 3533 3543 4373 4098 6 3542 3533 3531 3544 4097 4098 6 3543 3531 3528 3529 3545 4097 6 3544 3529 1616 4100 4097 3094 6 2987 2988 3547 3825 3826 3830 6 3546 2988 2989 3548 3830 3831 6 3547 2989 2990 3549 3831 3832 6 3548 2990 2991 3550 3832 3833 6 3549 2991 2992 3551 3833 3834 6 3550 2992 2993 3552 3810 3834 6 3551 2993 2994 3553 3810 3811 6 3552 2994 2995 3554 3811 3812 6 3553 2995 2996 3555 3812 3813 6 3554 2996 2997 3556 3813 3814 6 3555 2997 3557 3814 3815 3816 6 3556 2997 2998 3558 3816 3817 6 3557 2998 2999 3000 3559 3817 6 3558 3000 3001 3560 3817 3818 6 3559 3001 3002 3561 3818 3819 6 3560 3002 3003 3562 3563 3819 6 3561 3003 3563 3564 3565 3566 6 3561 3562 3564 3819 3820 3821 6 3563 3562 3565 3821 3822 3823 6 3564 3562 3566 3823 3824 3567 6 3565 3562 3003 2667 2668 3567 6 3566 2668 2669 3568 3824 3565 6 3567 2669 2670 3569 3851 3824 6 3568 2670 2671 3570 3880 3851 6 3569 2671 2672 3571 3892 3880 6 3570 2672 2673 2674 3572 3892 6 3571 2674 3573 4238 3892 4258 6 3572 2674 2675 3574 4258 4259 6 3573 2675 2676 3392 3575 4259 6 3574 3392 3576 4259 4260 4264 6 3575 3392 3393 3577 4264 4265 6 3576 3393 3394 3578 4265 4266 6 3577 3394 3395 3579 4266 4267 6 3578 3395 3580 4267 4268 4269 6 3579 3395 2680 2681 3581 4269 6 3580 2681 2682 3582 4142 4269 6 3581 2682 2683 3583 4142 4143 6 3582 2683 2684 3584 4143 4144 6 3583 2684 2685 3585 4144 4145 6 3584 2685 2686 3586 4145 4146 6 3585 2686 2687 3587 4146 4147 6 3586 2687 2688 3588 4147 4148 6 3587 2688 2689 3589 4148 4149 6 3588 2689 2690 3279 3590 4149 6 3589 3279 3591 4149 4150 4151 6 3590 3279 3280 3592 4151 4152 6 3591 3280 3281 3593 4152 4153 6 3592 3281 3282 3594 4153 4154 6 3593 3282 3283 3595 4154 4155 6 3594 3283 3284 3596 4155 4156 6 3595 3284 3285 3597 4156 4157 6 3596 3285 3286 3598 4157 4158 6 3597 3286 3287 3599 4158 4159 6 3598 3287 3288 3600 4159 4160 6 3599 3288 3289 3601 4160 4161 6 3600 3289 3290 3602 4161 4162 6 3601 3290 3291 3292 3603 4162 6 3602 3292 3604 4162 4163 4164 6 3603 3292 3293 3605 4164 4165 6 3604 3293 3294 3606 4165 4166 6 3605 3294 3295 3607 4166 4167 6 3606 3295 3296 3608 4167 4168 6 3607 3296 3297 3609 4168 4169 6 3608 3297 3298 3299 3610 4169 6 3609 3299 3611 4169 4170 4171 6 3610 3299 3300 3612 4171 4172 6 3611 3300 3301 3613 4172 4173 6 3612 3301 3302 3614 4173 4174 6 3613 3302 3303 3615 4174 4175 6 3614 3303 3304 3616 4175 4176 6 3615 3304 3305 3617 4176 4177 6 3616 3305 3306 3618 4177 4178 6 3617 3306 3307 3619 4178 4179 6 3618 3307 3308 3620 4179 4180 6 3619 3308 3309 3621 4180 4181 6 3620 3309 3310 3622 4181 4182 6 3621 3310 3311 3623 4182 4183 6 3622 3311 3312 3624 4183 4184 6 3623 3312 3313 3625 4184 4185 6 3624 3313 3314 3626 4185 4186 6 3625 3314 3315 3627 4186 4187 6 3626 3315 3316 3628 4187 4188 6 3627 3316 3317 3629 4188 4189 6 3628 3317 3318 3630 4189 4190 6 3629 3318 3319 3631 4190 4191 6 3630 3319 3320 3632 4191 4192 6 3631 3320 3321 3633 4192 4193 6 3632 3321 3322 3634 4193 4194 6 3633 3322 3323 3324 3635 4194 6 3634 3324 3636 3904 4194 4195 6 3635 3324 3325 3637 3904 3905 6 3636 3325 3326 3327 3638 3905 6 3637 3327 3639 3905 3906 3907 6 3638 3327 3328 3329 3640 3907 6 3639 3329 3330 3641 3907 3908 6 3640 3330 3642 3908 3909 3643 5 3641 3330 3057 3058 3643 7 3642 3058 3059 3644 3909 3641 3928 6 3643 3059 3060 3645 3910 3928 5 3644 3060 3062 3910 3911 6 3382 3385 3647 3380 3379 4348 6 3646 3385 3648 4348 4349 4350 6 3647 3385 3386 3649 4353 4350 6 3648 3386 3650 3658 4353 4354 6 3649 3386 3387 3651 3658 3659 6 3650 3387 3389 3652 3659 3660 6 3651 3389 3653 3660 3661 3662 6 3652 3389 3390 3654 3662 3663 6 3653 3390 3655 3663 3664 3665 6 3654 3390 3391 3656 3665 3666 6 3655 3391 3657 3666 3667 3668 6 3656 3391 3383 3668 3669 3381 6 3649 3650 3659 4354 4355 4359 6 3658 3650 3651 3660 4372 4359 6 3659 3651 3652 3661 9794 4372 6 3660 3652 3662 4907 4909 9794 6 3661 3652 3653 3663 3670 4907 6 3662 3653 3654 3664 3670 3671 6 3663 3654 3665 3671 3672 3673 6 3664 3654 3655 3666 3673 3674 6 3665 3655 3656 3667 3674 3675 6 3666 3656 3668 3675 3676 3679 6 3667 3656 3657 3669 3365 3679 6 3668 3657 3381 3365 3366 3374 6 3662 3663 3671 4904 4906 4907 6 3670 3663 3664 3672 4903 4904 6 3671 3664 3673 5919 4903 3952 6 3672 3664 3665 3674 3951 3952 6 3673 3665 3666 3675 3945 3951 6 3674 3666 3667 3676 3677 3945 6 3675 3667 3677 3678 3363 3679 6 3675 3676 3678 3159 3945 3946 6 3677 3676 3159 3157 3156 3363 6 3363 3676 3362 3365 3668 3667 6 3405 3406 3407 3681 3901 3902 6 3680 3407 3408 3682 3683 3902 7 3681 3408 3683 3473 3472 3684 3409 6 3681 3682 3473 3902 3903 3474 5 3472 3682 3409 3410 3471 7 419 3101 3230 3232 3235 13 14 7 3474 3475 3687 3903 4666 4665 4689 5 3686 3475 3476 3688 4689 7 3687 3476 3477 3689 4689 4690 4691 6 3688 3477 3478 3690 4691 4692 6 3689 3478 3479 3691 4692 4693 6 3690 3479 3480 3692 3693 4693 6 3691 3480 3693 3694 3695 3481 6 3691 3692 3694 4693 4694 4695 6 3693 3692 3695 4695 4696 4697 6 3694 3692 3481 3500 3696 4697 6 3695 3500 3697 4697 4698 4699 6 3696 3500 3501 3698 4699 4700 6 3697 3501 2909 2910 3699 4700 6 3698 2910 2911 3700 3973 4700 6 3699 2911 2912 3701 3973 3974 6 3700 2912 2913 2914 3702 3974 6 3701 2914 3703 3974 3975 3976 6 3702 2914 2915 3704 3976 3977 6 3703 2915 2916 3705 3977 3978 6 3704 2916 2917 3706 3978 3979 6 3705 2917 2918 3707 3979 3980 6 3706 2918 2919 3708 3980 3981 6 3707 2919 2920 3709 3981 3982 6 3708 2920 2921 3710 3982 3983 6 3709 2921 2922 3711 3983 3984 6 3710 2922 2923 3712 3984 3985 6 3711 2923 2924 3713 3985 3986 6 3712 2924 2925 3714 3986 3987 6 3713 2925 2926 3715 3987 3988 6 3714 2926 2927 3716 3988 3989 6 3715 2927 2928 3717 3989 3990 6 3716 2928 2929 3718 3990 3991 6 3717 2929 2930 3719 3991 3992 6 3718 2930 2931 3720 3992 3993 6 3719 2931 2932 3721 3993 3994 6 3720 2932 2933 3722 3994 3995 6 3721 2933 2934 3723 3995 3996 6 3722 2934 2935 3724 3996 3997 6 3723 2935 2936 3725 3997 3998 6 3724 2936 2937 3726 3998 3999 6 3725 2937 2938 3727 3999 4000 6 3726 2938 2939 3728 4000 4001 6 3727 2939 2940 3729 4001 4002 6 3728 2940 2941 3730 4002 4003 6 3729 2941 2942 3731 4003 4004 6 3730 2942 2943 3732 4004 4005 6 3731 2943 2944 3733 4005 4006 6 3732 2944 2945 2946 3734 4006 6 3733 2946 2947 3735 4006 4007 6 3734 2947 2948 2949 3736 4007 6 3735 2949 3737 4007 4008 3738 5 3736 2949 2950 3243 3738 6 3737 3243 3739 4008 3736 4013 6 3738 3243 3244 3740 4013 4014 6 3739 3244 3245 3741 4014 4015 6 3740 3245 3246 3742 4015 4016 6 3741 3246 3247 3743 4016 4017 6 3742 3247 3248 3744 4017 4018 6 3743 3248 3249 3745 4018 4019 6 3744 3249 3250 3746 4019 4020 6 3745 3250 3251 3747 4020 4021 6 3746 3251 3748 4021 4022 4023 6 3747 3251 3252 3254 3749 4023 6 3748 3254 3750 4023 4024 4025 7 3749 3254 3255 3256 3257 3751 4025 5 3750 3257 3752 4025 4026 6 3751 3257 3258 3753 4026 4027 6 3752 3258 3259 3754 4030 4027 7 3753 3259 3755 4038 4030 4047 3756 5 3754 3259 3260 3261 3756 6 3755 3261 3262 3757 4047 3754 6 3756 3262 3263 3758 4047 4048 6 3757 3263 3264 3759 4048 4049 6 3758 3264 3265 3760 4049 4050 6 3759 3265 3266 4050 4051 4052 6 616 618 3762 3765 3766 3764 6 3761 618 626 628 3763 3764 6 3762 628 3764 3218 636 630 6 3762 3763 3766 3761 4041 3218 6 616 3761 3766 4039 6558 613 6 3765 3761 3764 4039 4040 4041 5 2086 1568 3768 3769 6094 6 3767 1568 3769 3770 1572 1569 6 3767 3768 3770 6093 6094 6095 7 3769 3768 1572 6095 6089 6318 6319 6 3511 3512 3772 4523 4524 4525 6 3771 3512 3773 4525 4526 4529 6 3772 3512 3513 3774 4529 4530 6 3773 3513 3521 4530 4531 4532 6 1683 1684 3776 5392 5386 5384 6 3775 1684 3777 5621 5392 3779 6 3776 1684 1685 1687 3778 3779 6 3777 1687 3779 3780 3781 3782 6 3777 3778 3780 7792 5621 3776 6 3779 3778 3781 7799 7793 7792 6 3780 3778 3782 7799 3784 3783 6 3781 3778 1687 1688 1689 3783 6 3782 1689 1690 1692 3784 3781 6 3783 1692 3785 7799 3781 7800 6 3784 1692 1693 3786 7800 7801 6 3785 1693 3787 3788 3789 7801 6 3786 1693 1694 1695 3417 3788 6 3787 3417 3418 3786 3789 3790 6 3786 3788 3790 7801 7802 3791 6 3789 3788 3418 3419 3420 3791 6 3790 3420 3792 7802 3789 7803 6 3791 3420 3421 3793 3794 7803 6 3792 3421 3794 3795 3424 3422 6 3792 3793 3795 7803 7804 7805 6 3794 3793 3424 3796 7805 7806 6 3795 3424 3425 3797 7810 7806 6 3796 3425 3798 3953 7810 7811 6 3797 3425 3426 3799 3953 3954 6 3798 3426 3800 3954 3955 3956 6 3799 3426 3427 3428 3801 3956 6 3800 3428 3429 3802 3956 3957 6 3801 3429 3430 3803 3957 3958 6 3802 3430 3433 3443 3804 3958 6 3803 3443 3805 3958 4101 4240 6 3804 3443 3444 3806 4101 4102 6 3805 3444 3807 4102 4103 4104 6 3806 3444 3445 3808 4104 4105 6 3807 3445 3446 3809 4105 4106 6 3808 3446 3448 4106 4107 4108 6 3551 3552 3811 3834 3835 3836 6 3810 3552 3553 3812 3836 3837 6 3811 3553 3554 3813 3837 3838 6 3812 3554 3555 3814 3838 3839 6 3813 3555 3556 3815 3839 3840 6 3814 3556 3816 3840 3841 3842 6 3815 3556 3557 3817 3842 3843 6 3816 3557 3558 3559 3818 3843 6 3817 3559 3560 3819 3843 3844 6 3818 3560 3561 3563 3820 3844 6 3819 3563 3821 3844 3845 3846 6 3820 3563 3564 3822 3846 3847 6 3821 3564 3823 3847 3848 3849 6 3822 3564 3565 3824 3849 3850 6 3823 3565 3567 3850 3851 3568 6 2987 3546 3826 3827 3278 2986 6 3825 3546 3827 3828 3829 3830 6 3825 3826 3828 4070 4066 3278 6 3827 3826 3829 4757 4070 4764 6 3828 3826 3830 4764 4765 4766 6 3829 3826 3546 3547 3831 4766 6 3830 3547 3548 3832 4766 4767 6 3831 3548 3549 3833 4767 4768 6 3832 3549 3550 3834 4771 4768 6 3833 3550 3551 3810 3835 4771 6 3834 3810 3836 5017 4771 5025 6 3835 3810 3811 3837 5025 5026 6 3836 3811 3812 3838 5026 5027 6 3837 3812 3813 3839 4406 5027 6 3838 3813 3814 3840 3865 4406 6 3839 3814 3815 3841 3865 3866 6 3840 3815 3842 3866 3867 3868 6 3841 3815 3816 3843 3854 3868 6 3842 3816 3817 3818 3844 3854 6 3843 3818 3819 3820 3845 3854 6 3844 3820 3846 3854 3855 3856 6 3845 3820 3821 3847 3856 3857 6 3846 3821 3822 3848 3857 3858 6 3847 3822 3849 3861 3858 3877 6 3848 3822 3823 3850 3877 3878 6 3849 3823 3824 3851 3878 3879 6 3850 3824 3568 3879 3880 3569 6 2182 2200 2180 3853 2202 3130 6 2180 3852 28 27 3130 9782 6 3842 3843 3844 3845 3855 3868 6 3854 3845 3856 3868 3869 3870 6 3855 3845 3846 3857 3870 3871 6 3856 3846 3847 3858 3859 3871 6 3857 3847 3859 3860 3861 3848 6 3857 3858 3860 3871 3872 3873 6 3859 3858 3861 3873 3874 3875 6 3860 3858 3848 3875 3876 3877 6 3344 3345 3347 3863 6718 3343 6 3862 3347 3864 6717 6716 6718 7 3863 3347 6533 6532 3348 6534 6717 6 3839 3840 3866 4406 4407 4408 6 3865 3840 3841 3867 4408 4409 6 3866 3841 3868 4409 4410 3869 6 3867 3841 3842 3854 3855 3869 6 3868 3855 3870 4410 3867 4421 6 3869 3855 3856 3871 4421 4422 6 3870 3856 3857 3859 3872 4422 6 3871 3859 3873 4422 4423 4424 6 3872 3859 3860 3874 4424 4425 6 3873 3860 3875 4425 4426 4427 6 3874 3860 3861 3876 4427 4428 6 3875 3861 3877 4428 4429 3889 6 3876 3861 3848 3849 3878 3889 6 3877 3849 3850 3879 3889 3890 6 3878 3850 3851 3880 3890 3891 6 3879 3851 3569 3891 3892 3570 6 2508 3331 2510 3882 3332 3333 6 2510 3881 3335 6500 2512 3333 6 3338 3340 3128 1172 415 3129 6 3128 3340 3123 3885 3886 3341 6 3123 3884 3886 3887 3888 3122 6 3885 3884 3887 3343 6718 3341 6 3885 3886 3888 6539 6716 6718 6 3885 3887 3122 6714 6715 6539 6 3877 3878 3890 4429 3876 4252 6 3889 3878 3879 3891 4237 4252 6 3890 3879 3880 3892 4237 4238 6 3891 3880 3570 4238 3572 3571 6 3398 3399 3894 4747 4745 4744 6 3893 3399 3895 4744 4749 4750 6 3894 3399 3400 3896 4753 4750 6 3895 3400 3897 4662 4759 4753 6 3896 3400 3401 3402 3898 4662 6 3897 3402 3403 3899 4662 4663 6 3898 3403 3900 4663 4664 4665 6 3899 3403 3404 3901 4665 4666 6 3900 3404 3405 3680 3902 4666 6 3901 3680 3681 3683 3903 4666 5 3902 3683 3474 4666 3686 6 3635 3636 3905 4195 4196 4197 6 3904 3636 3637 3638 3906 4197 6 3905 3638 3907 4197 4198 4199 6 3906 3638 3639 3640 3908 4199 6 3907 3640 3641 3909 4199 4200 6 3908 3641 3643 3928 4200 4201 5 3644 3645 3911 3928 3929 7 3910 3645 3062 3063 3912 3929 3930 7 3911 3063 3064 3913 3930 3931 3932 6 3912 3064 3070 3914 3932 3933 6 3913 3070 3071 3915 3933 3934 6 3914 3071 3072 3916 3934 3935 6 3915 3072 3073 3917 3935 3936 6 3916 3073 3074 3918 3936 3937 6 3917 3074 3919 3350 3920 3937 6 3918 3074 3075 3076 3077 3350 6 3918 3350 3351 3352 3921 3937 6 3920 3352 3922 3937 3938 3939 6 3921 3352 3353 3923 3939 3940 6 3922 3353 3354 3924 3940 3941 6 3923 3354 3355 3925 3941 3942 6 3924 3355 3356 3926 3942 3943 6 3925 3356 3375 3943 3944 3376 6 3086 2483 2484 2485 3151 3153 6 3909 3643 3644 3910 3929 4201 6 3928 3910 3911 3930 4201 4202 6 3929 3911 3912 3931 4202 4203 6 3930 3912 3932 4203 4204 4205 5 3931 3912 3913 3933 4205 6 3932 3913 3914 3934 4205 4206 6 3933 3914 3915 3935 4206 4207 6 3934 3915 3916 3936 4207 4208 6 3935 3916 3917 3937 4208 3938 6 3936 3917 3918 3920 3921 3938 6 3937 3921 3939 4208 3936 4336 6 3938 3921 3922 3940 4336 4337 6 3939 3922 3923 3941 4337 4338 6 3940 3923 3924 3942 4338 4339 6 3941 3924 3925 3943 4339 4340 6 3942 3925 3926 3944 4340 4341 6 3943 3926 3376 4341 4342 4343 6 3674 3675 3677 3946 3951 3948 6 3945 3677 3159 3160 3947 3948 6 3946 3160 3948 3949 5923 3963 6 3946 3947 3949 3950 3951 3945 6 3948 3947 3950 5921 5922 5923 6 3948 3949 3951 3952 5920 5921 6 3948 3950 3952 3673 3674 3945 6 3951 3950 3673 5919 3672 5920 6 3797 3798 3954 7811 7812 7813 6 3953 3798 3799 3955 7813 7814 6 3954 3799 3956 7814 7815 7816 6 3955 3799 3800 3801 3957 7816 6 3956 3801 3802 3958 4239 7816 6 3957 3802 3803 3804 4239 4240 6 3188 3189 3960 3961 7589 7587 6 3959 3189 3961 3962 2891 2889 6 3959 3960 3962 7589 7590 7591 6 3961 3960 2891 7591 7592 7593 6 3160 3161 3964 5923 3947 5924 6 3963 3161 3965 3966 5924 5925 6 3964 3161 3966 3967 3968 3162 6 3964 3965 3967 5925 5943 5944 6 3966 3965 3968 5944 5949 5948 6 3967 3965 3162 5949 2489 2488 6 3486 3490 3970 6557 4039 4040 6 3969 3490 3491 3971 1598 6557 6 3970 3491 3972 6359 1596 1598 6 3971 3491 3492 6556 6358 6359 6 3699 3700 3974 4700 4701 4702 6 3973 3700 3701 3702 3975 4702 6 3974 3702 3976 4702 4703 4704 6 3975 3702 3703 3977 4704 4705 6 3976 3703 3704 3978 4705 4706 6 3977 3704 3705 3979 4706 4707 6 3978 3705 3706 3980 4707 4708 6 3979 3706 3707 3981 4708 4709 6 3980 3707 3708 3982 4709 4710 6 3981 3708 3709 3983 4710 4711 6 3982 3709 3710 3984 4711 4712 6 3983 3710 3711 3985 4712 4713 6 3984 3711 3712 3986 4713 4714 6 3985 3712 3713 3987 4714 4715 6 3986 3713 3714 3988 4715 4716 6 3987 3714 3715 3989 4716 4717 6 3988 3715 3716 3990 4717 4718 6 3989 3716 3717 3991 4718 4719 6 3990 3717 3718 3992 4719 4720 6 3991 3718 3719 3993 4720 4721 6 3992 3719 3720 3994 4721 4722 6 3993 3720 3721 3995 4440 4722 6 3994 3721 3722 3996 4440 4441 6 3995 3722 3723 3997 4441 4442 6 3996 3723 3724 3998 4442 4443 6 3997 3724 3725 3999 4443 4444 6 3998 3725 3726 4000 4444 4445 6 3999 3726 3727 4001 4445 4446 6 4000 3727 3728 4002 4446 4447 6 4001 3728 3729 4003 4071 4447 6 4002 3729 3730 4004 4009 4071 6 4003 3730 3731 4005 4009 4010 6 4004 3731 3732 4006 4010 4011 6 4005 3732 3733 3734 4007 4011 6 4006 3734 3735 3736 4008 4011 6 4007 3736 3738 4011 4012 4013 6 4003 4004 4010 4071 4072 4073 6 4009 4004 4005 4011 4073 4012 6 4010 4005 4006 4007 4008 4012 6 4011 4008 4013 4073 4010 4074 6 4012 4008 3738 3739 4014 4074 6 4013 3739 3740 4015 4074 4075 7 4014 3740 3741 4016 4075 4076 4077 6 4015 3741 3742 4017 4077 4078 6 4016 3742 3743 4018 4078 4079 6 4017 3743 3744 4019 4079 4080 6 4018 3744 3745 4020 4080 4081 6 4019 3745 3746 4021 4081 4082 6 4020 3746 3747 4022 4082 4083 6 4021 3747 4023 4031 4083 4084 6 4022 3747 3748 3749 4024 4031 6 4023 3749 4025 4031 4032 4033 6 4024 3749 3750 3751 4026 4033 6 4025 3751 3752 4027 4028 4033 6 4026 3752 4028 4029 4030 3753 6 4026 4027 4029 4033 4034 4035 6 4028 4027 4030 4035 4036 4037 6 4029 4027 3753 4037 4038 3754 6 4022 4023 4024 4032 4084 4085 6 4031 4024 4033 4085 4086 4034 6 4032 4024 4025 4026 4028 4034 6 4033 4028 4035 4086 4032 4463 6 4034 4028 4029 4036 4042 4463 6 4035 4029 4037 4042 4043 4044 6 4036 4029 4030 4038 4044 4045 6 4037 4030 3754 4045 4046 4047 6 3765 3766 4040 6557 6558 3969 6 4039 3766 4041 3969 3486 3485 6 4040 3766 3764 3218 3485 3219 6 4035 4036 4043 4463 4464 4465 6 4042 4036 4044 4465 4466 4467 6 4043 4036 4037 4045 4467 4468 6 4044 4037 4038 4046 4468 4469 6 4045 4038 4047 4469 4470 4048 6 4046 4038 3754 3756 3757 4048 6 4047 3757 3758 4049 4470 4046 6 4048 3758 3759 4050 4470 4471 6 4049 3759 3760 4051 4471 4210 6 4050 3760 4052 4053 4209 4210 6 4051 3760 4053 4054 4055 3266 6 4051 4052 4054 4209 4222 4223 6 4053 4052 4055 3269 4056 4223 6 4054 4052 3266 3267 3268 3269 5 4054 3269 3270 4057 4223 7 4056 3270 3271 4058 4223 4224 4225 7 4057 3271 3272 4059 4225 4226 4227 6 4058 3272 3273 4060 4227 4228 6 4059 3273 3274 4061 4228 4229 6 4060 3274 3275 4062 4063 4229 6 4061 3275 4063 4064 4065 3276 6 4061 4062 4064 4231 4229 4503 6 4063 4062 4065 4067 4068 4503 6 4064 4062 3276 3277 4066 4067 6 4065 3277 4067 4070 3827 3278 6 4065 4066 4064 4068 4069 4070 6 4064 4067 4069 4514 4503 4755 6 4068 4067 4070 4755 4756 4757 6 4069 4067 4066 3827 4757 3828 6 4002 4003 4009 4072 4447 4448 6 4071 4009 4073 4448 4449 4450 6 4072 4009 4010 4012 4074 4450 6 4073 4012 4013 4014 4075 4450 6 4074 4014 4015 4076 4450 4451 6 4075 4015 4077 4451 4452 4453 5 4076 4015 4016 4078 4453 6 4077 4016 4017 4079 4453 4454 6 4078 4017 4018 4080 4454 4455 6 4079 4018 4019 4081 4455 4456 6 4080 4019 4020 4082 4456 4457 6 4081 4020 4021 4083 4457 4458 6 4082 4021 4022 4084 4458 4459 6 4083 4022 4031 4085 4459 4460 6 4084 4031 4032 4086 4460 4461 6 4085 4032 4034 4461 4462 4463 6 2881 2882 4088 4090 7600 7601 6 4087 2882 2883 2884 4089 4090 6 4088 2884 4090 4091 4092 4093 7 4088 4089 4091 7599 7600 4087 7752 6 4090 4089 4092 7752 7754 4380 6 4091 4089 4093 4095 4379 4380 6 4092 4089 2884 2499 4094 4095 6 4093 2499 4095 4096 2810 2500 6 4093 4094 4096 4092 4379 4388 6 4095 4094 2810 4388 4387 4389 6 3543 3544 4098 4099 4100 3545 6 3543 4097 4099 4366 4373 3542 6 4098 4097 4100 4366 4367 4368 6 4099 4097 3545 4368 3095 3094 6 3804 3805 4102 4240 4241 4242 6 4101 3805 3806 4103 4242 4243 6 4102 3806 4104 4243 4244 4245 6 4103 3806 3807 4105 4112 4245 6 4104 3807 3808 4106 4112 4113 6 4105 3808 3809 4107 4113 4114 6 4106 3809 4108 4109 4110 4114 6 4107 3809 3448 3449 3455 4109 6 4108 3455 4107 4110 4111 3457 6 4107 4109 4111 4114 4115 4116 6 4110 4109 3457 4116 4395 3465 6 4104 4105 4113 4245 4246 4247 6 4112 4105 4106 4114 4250 4247 6 4113 4106 4107 4110 4115 4250 6 4114 4110 4116 4250 4392 4393 6 4115 4110 4111 4393 4394 4395 7 3523 3526 4118 4531 4532 3522 4120 5 4117 3526 3527 4119 4120 6 4118 3527 4120 4121 3530 9787 7 4118 4119 4121 4122 9785 4531 4117 6 4120 4119 4122 4123 9787 9790 6 4120 4121 4123 4124 4396 9785 6 4122 4121 4124 4125 9790 7173 6 4122 4123 4125 4126 4127 4396 6 4124 4123 4126 7172 4141 7173 6 4124 4125 4127 4128 4129 4141 6 4124 4126 4128 4396 4397 4398 6 4127 4126 4129 4130 4131 4398 6 4128 4126 4130 4137 4140 4141 6 4128 4129 4131 4132 4136 4137 6 4128 4130 4132 4133 4398 4399 6 4131 4130 4133 4134 4135 4136 6 4131 4132 4134 4402 4399 4411 6 4133 4132 4135 4411 4412 4413 6 4134 4132 4136 4413 4414 7165 6 4135 4132 4130 4137 4138 7165 6 4136 4130 4129 4138 4139 4140 6 4136 4137 4139 7164 7162 7165 6 4138 4137 4140 7169 7164 7170 6 4139 4137 4129 4141 7170 7171 6 4140 4129 4126 7171 7172 4125 6 3581 3582 4143 4269 4270 4271 6 4142 3582 3583 4144 4271 4272 6 4143 3583 3584 4145 4272 4273 6 4144 3584 3585 4146 4273 4274 6 4145 3585 3586 4147 4274 4275 6 4146 3586 3587 4148 4275 4276 6 4147 3587 3588 4149 4276 4277 6 4148 3588 3589 3590 4150 4277 6 4149 3590 4151 4277 4278 4279 6 4150 3590 3591 4152 4279 4280 6 4151 3591 3592 4153 4280 4281 6 4152 3592 3593 4154 4281 4282 6 4153 3593 3594 4155 4282 4283 6 4154 3594 3595 4156 4283 4284 6 4155 3595 3596 4157 4284 4285 6 4156 3596 3597 4158 4285 4286 6 4157 3597 3598 4159 4286 4287 6 4158 3598 3599 4160 4287 4288 6 4159 3599 3600 4161 4288 4289 6 4160 3600 3601 4162 4289 4290 6 4161 3601 3602 3603 4163 4290 6 4162 3603 4164 4290 4291 4292 6 4163 3603 3604 4165 4292 4293 6 4164 3604 3605 4166 4293 4294 6 4165 3605 3606 4167 4294 4295 6 4166 3606 3607 4168 4295 4296 6 4167 3607 3608 4169 4296 4297 6 4168 3608 3609 3610 4170 4297 6 4169 3610 4171 4297 4298 4299 6 4170 3610 3611 4172 4299 4300 6 4171 3611 3612 4173 4300 4301 6 4172 3612 3613 4174 4301 4302 6 4173 3613 3614 4175 4302 4303 6 4174 3614 3615 4176 4303 4304 6 4175 3615 3616 4177 4304 4305 6 4176 3616 3617 4178 4305 4306 6 4177 3617 3618 4179 4306 4307 6 4178 3618 3619 4180 4307 4308 6 4179 3619 3620 4181 4308 4309 6 4180 3620 3621 4182 4309 4310 6 4181 3621 3622 4183 4310 4311 6 4182 3622 3623 4184 4311 4312 6 4183 3623 3624 4185 4312 4313 6 4184 3624 3625 4186 4313 4314 6 4185 3625 3626 4187 4314 4315 6 4186 3626 3627 4188 4315 4316 6 4187 3627 3628 4189 4316 4317 6 4188 3628 3629 4190 4317 4318 6 4189 3629 3630 4191 4318 4319 6 4190 3630 3631 4192 4319 4320 6 4191 3631 3632 4193 4320 4321 6 4192 3632 3633 4194 4321 4322 6 4193 3633 3634 3635 4195 4322 6 4194 3635 3904 4196 4322 4323 6 4195 3904 4197 4323 4324 4325 6 4196 3904 3905 3906 4198 4325 6 4197 3906 4199 4325 4326 4327 6 4198 3906 3907 3908 4200 4327 6 4199 3908 3909 4201 4327 4328 6 4200 3909 3928 3929 4202 4328 6 4201 3929 3930 4203 4328 4329 6 4202 3930 3931 4204 4329 4330 6 4203 3931 4205 4330 4331 4332 6 4204 3931 3932 3933 4206 4332 6 4205 3933 3934 4207 4332 4333 6 4206 3934 3935 4208 4333 4334 7 4207 3935 3936 3938 4334 4335 4336 6 4051 4053 4210 4211 4212 4222 6 4051 4209 4211 4471 4050 4478 6 4210 4209 4212 4213 4478 4479 6 4211 4209 4213 4214 4221 4222 6 4211 4212 4214 4215 4479 4480 6 4213 4212 4215 4216 4217 4221 6 4213 4214 4216 4480 4481 4482 6 4215 4214 4217 4218 4482 4483 6 4216 4214 4218 4219 4220 4221 6 4216 4217 4219 4233 4483 4484 6 4218 4217 4220 4233 4234 4235 6 4219 4217 4221 4225 4235 4224 6 4220 4217 4214 4212 4222 4224 6 4221 4212 4209 4053 4223 4224 6 4222 4053 4054 4056 4057 4224 6 4223 4057 4225 4222 4221 4220 6 4224 4057 4058 4226 4235 4220 6 4225 4058 4227 4236 4235 4489 5 4226 4058 4059 4228 4489 7 4227 4059 4060 4229 4230 4488 4489 6 4228 4060 4230 4231 4063 4061 6 4228 4229 4231 4490 4488 4501 6 4230 4229 4063 4501 4502 4503 6 3148 3413 3147 3146 9792 3414 6 4218 4219 4234 4484 4485 4486 6 4233 4219 4235 4236 4486 4487 6 4234 4219 4236 4226 4225 4220 6 4234 4235 4226 4487 4488 4489 6 3890 3891 4238 4252 4253 4257 6 4237 3891 3892 3572 4257 4258 6 3957 3958 4240 7816 7817 4504 6 4239 3958 3804 4101 4241 4504 6 4240 4101 4242 4504 4505 4506 6 4241 4101 4102 4243 4506 4507 6 4242 4102 4103 4244 4417 4507 6 4243 4103 4245 4417 4418 4419 6 4244 4103 4104 4112 4246 4419 6 4245 4112 4247 4248 4419 4420 6 4246 4112 4248 4249 4250 4113 6 4246 4247 4249 4420 7830 7831 6 4248 4247 4250 4392 4740 7831 6 4249 4247 4113 4114 4115 4392 6 3342 3339 1525 1526 2206 2207 6 3890 4237 4253 4254 4429 3889 6 4252 4237 4254 4255 4256 4257 6 4252 4253 4255 4648 4429 6893 6 4254 4253 4256 4730 4731 6893 6 4255 4253 4257 4730 4262 4261 6 4256 4253 4237 4238 4258 4261 6 4257 4238 3572 3573 4259 4261 6 4258 3573 3574 3575 4260 4261 6 4259 3575 4261 4262 4263 4264 6 4259 4260 4262 4257 4258 4256 6 4261 4260 4263 4733 4730 4256 6 4262 4260 4264 6902 4733 6903 6 4263 4260 3575 3576 4265 6903 6 4264 3576 3577 4266 5232 6903 6 4265 3577 3578 4267 5232 5233 6 4266 3578 3579 4268 5233 5234 6 4267 3579 4269 5234 5235 4270 6 4268 3579 3580 3581 4142 4270 6 4269 4142 4271 5235 4268 5452 6 4270 4142 4143 4272 5452 5453 6 4271 4143 4144 4273 5453 5454 6 4272 4144 4145 4274 5454 5455 6 4273 4145 4146 4275 5458 5455 6 4274 4146 4147 4276 5470 5458 6 4275 4147 4148 4277 5470 5471 6 4276 4148 4149 4150 4278 5471 6 4277 4150 4279 5471 5472 5473 6 4278 4150 4151 4280 5473 5474 6 4279 4151 4152 4281 5474 5475 6 4280 4152 4153 4282 5047 5475 6 4281 4153 4154 4283 5047 5048 6 4282 4154 4155 4284 5048 5049 6 4283 4155 4156 4285 5049 5050 6 4284 4156 4157 4286 5050 5051 6 4285 4157 4158 4287 5051 5052 6 4286 4158 4159 4288 5052 5053 6 4287 4159 4160 4289 4924 5053 6 4288 4160 4161 4290 4924 4925 6 4289 4161 4162 4163 4291 4925 6 4290 4163 4292 4925 4926 4927 6 4291 4163 4164 4293 4927 4928 6 4292 4164 4165 4294 4928 4929 6 4293 4165 4166 4295 4929 4930 6 4294 4166 4167 4296 4930 4931 6 4295 4167 4168 4297 4931 4932 6 4296 4168 4169 4170 4298 4932 6 4297 4170 4299 4772 4932 4933 6 4298 4170 4171 4300 4772 4773 6 4299 4171 4172 4301 4773 4774 6 4300 4172 4173 4302 4774 4775 6 4301 4173 4174 4303 4775 4776 6 4302 4174 4175 4304 4776 4777 6 4303 4175 4176 4305 4777 4778 6 4304 4176 4177 4306 4778 4779 6 4305 4177 4178 4307 4779 4780 6 4306 4178 4179 4308 4780 4781 6 4307 4179 4180 4309 4781 4782 6 4308 4180 4181 4310 4782 4783 6 4309 4181 4182 4311 4567 4783 6 4310 4182 4183 4312 4567 4568 6 4311 4183 4184 4313 4568 4569 6 4312 4184 4185 4314 4569 4570 6 4313 4185 4186 4315 4570 4571 6 4314 4186 4187 4316 4571 4572 6 4315 4187 4188 4317 4572 4573 6 4316 4188 4189 4318 4573 4574 6 4317 4189 4190 4319 4574 4575 6 4318 4190 4191 4320 4575 4576 6 4319 4191 4192 4321 4576 4577 6 4320 4192 4193 4322 4577 4578 6 4321 4193 4194 4195 4323 4578 6 4322 4195 4196 4324 4578 4579 6 4323 4196 4325 4579 4580 4581 6 4324 4196 4197 4198 4326 4581 6 4325 4198 4327 4581 4582 4583 6 4326 4198 4199 4200 4328 4583 6 4327 4200 4201 4202 4329 4583 6 4328 4202 4203 4330 4583 4584 6 4329 4203 4204 4331 4584 4585 6 4330 4204 4332 4585 4586 4590 7 4331 4204 4205 4206 4333 4590 4591 6 4332 4206 4207 4334 4591 4592 6 4333 4207 4208 4335 4592 4593 6 4334 4208 4336 4337 4430 4593 5 4335 4208 3938 3939 4337 6 4336 3939 3940 4338 4335 4430 6 4337 3940 3941 4339 4430 4431 6 4338 3941 3942 4340 4431 4432 6 4339 3942 3943 4341 4432 4433 6 4340 3943 3944 4342 4433 4434 6 4341 3944 4343 4434 4435 4436 6 4342 3944 3376 3377 4344 4436 6 4343 3377 3378 4345 4346 4436 6 4344 3378 4346 4347 4348 3379 6 4344 4345 4347 4436 4437 4438 6 4346 4345 4348 4438 4439 4349 6 4347 4345 3379 3646 3647 4349 6 4348 3647 4350 4351 4439 4347 6 4349 3647 4351 4352 4353 3648 6 4349 4350 4352 4602 4439 4603 6 4351 4350 4353 4603 4604 4605 6 4352 4350 3648 3649 4354 4605 6 4353 3649 3658 4355 4356 4605 6 4354 3658 4356 4357 4358 4359 6 4354 4355 4357 4605 4606 4607 6 4356 4355 4358 4362 4363 4607 6 4357 4355 4359 4360 4361 4362 6 4358 4355 4360 4372 3659 3658 6 4358 4359 4361 4369 4370 4372 6 4358 4360 4362 4365 4369 4615 6 4358 4361 4357 4363 4364 4365 6 4357 4362 4364 4607 4608 4609 6 4363 4362 4365 4612 4609 4613 6 4364 4362 4361 4613 4614 4615 6 4098 4099 4367 4373 4374 4375 6 4366 4099 4368 4375 4376 4377 7 4367 4099 4100 3095 4377 1627 1625 6 4361 4360 4370 4371 4615 4616 6 4369 4360 4371 4372 9795 9794 6 4369 4370 9795 4643 4638 4616 6 4370 4360 4359 3659 9794 3660 6 4098 4366 4374 7213 3541 3542 6 4373 4366 4375 7213 7211 7210 6 4374 4366 4367 4376 7210 7214 6 4375 4367 4377 4378 7214 7215 6 4376 4367 4368 4378 1628 1627 5 4376 4377 1628 7215 7216 6 4092 4095 4380 4381 4382 4388 7 4092 4379 4381 7754 4091 7753 7755 6 4380 4379 4382 4383 7755 7756 6 4381 4379 4383 4384 4385 4388 6 4381 4382 4384 7756 7757 7765 6 4383 4382 4385 4386 4390 7765 6 4384 4382 4386 3141 4387 4388 6 4384 4385 3141 4390 4391 3142 6 3141 4385 4388 4096 4389 3140 6 4387 4385 4382 4379 4095 4096 6 4387 4096 2810 2811 2814 3140 6 4384 4386 4391 7765 7766 7767 6 4390 4386 3142 7767 7768 3143 6 4250 4115 4393 4249 4740 4741 6 4392 4115 4116 4394 4403 4741 6 4393 4116 4395 4403 4404 4405 6 4394 4116 4111 3465 4405 3466 5 4122 4124 4127 4397 9785 7 4396 4127 4398 4400 4529 4530 9785 6 4397 4127 4128 4131 4399 4400 6 4398 4131 4400 4401 4402 4133 6 4398 4399 4401 4526 4529 4397 5 4400 4399 4402 4528 4526 7 4401 4399 4133 4411 4535 4528 4536 6 4393 4394 4404 4741 4742 4743 6 4403 4394 4405 4743 4744 4745 6 4404 4394 4395 3466 4745 4746 6 3838 3839 3865 4407 5027 5028 6 4406 3865 4408 5028 5029 5030 6 4407 3865 3866 4409 5030 5031 6 4408 3866 3867 4410 5031 5032 6 4409 3867 3869 4421 5032 5033 6 4402 4133 4134 4412 4536 4537 6 4411 4134 4413 4546 4540 4537 6 4412 4134 4135 4414 4415 4546 6 4413 4135 4415 4416 7165 7166 6 4413 4414 4416 4546 4545 4649 6 4415 4414 4650 4649 7166 7167 6 4243 4244 4418 4507 4508 4509 6 4417 4244 4419 4509 4510 4511 6 4418 4244 4245 4246 4420 4511 6 4419 4246 4248 7829 4511 7830 6 4410 3869 3870 4422 5033 5034 6 4421 3870 3871 3872 4423 5034 6 4422 3872 4424 5034 5035 5036 6 4423 3872 3873 4425 5036 5037 6 4424 3873 3874 4426 4644 5037 6 4425 3874 4427 4644 4645 4646 6 4426 3874 3875 4428 4646 4647 6 4427 3875 3876 4429 4647 4648 6 4428 3876 3889 4648 4254 4252 6 4335 4337 4338 4431 4593 4594 6 4430 4338 4339 4432 4594 4595 6 4431 4339 4340 4433 4595 4596 6 4432 4340 4341 4434 4596 4597 6 4433 4341 4342 4435 4597 4598 6 4434 4342 4436 4598 4599 4437 6 4435 4342 4343 4344 4346 4437 6 4436 4346 4438 4599 4435 4600 6 4437 4346 4347 4439 4600 4601 6 4438 4347 4349 4601 4602 4351 6 3994 3995 4441 4722 4723 4724 6 4440 3995 3996 4442 4724 4725 6 4441 3996 3997 4443 4725 4726 6 4442 3997 3998 4444 4726 4727 6 4443 3998 3999 4445 4727 4728 6 4444 3999 4000 4446 4728 4729 6 4445 4000 4001 4447 4729 4659 6 4446 4001 4002 4071 4448 4659 6 4447 4071 4072 4449 4659 4660 6 4448 4072 4450 4660 4661 4451 6 4449 4072 4073 4074 4075 4451 6 4450 4075 4076 4452 4661 4449 6 4451 4076 4453 4670 4739 4661 6 4452 4076 4077 4078 4454 4670 6 4453 4078 4079 4455 4670 4671 6 4454 4079 4080 4456 4671 4672 6 4455 4080 4081 4457 4672 4673 6 4456 4081 4082 4458 4673 4674 6 4457 4082 4083 4459 4674 4675 6 4458 4083 4084 4460 4675 4676 6 4459 4084 4085 4461 4676 4677 6 4460 4085 4086 4462 4677 4678 6 4461 4086 4463 4678 4679 4680 7 4462 4086 4034 4035 4042 4464 4680 5 4463 4042 4465 4680 4681 6 4464 4042 4043 4466 4472 4681 6 4465 4043 4467 4472 4473 4474 6 4466 4043 4044 4468 4474 4475 6 4467 4044 4045 4469 4475 4476 6 4468 4045 4046 4470 4476 4477 6 4469 4046 4048 4049 4471 4477 6 4470 4049 4050 4210 4477 4478 6 4465 4466 4473 4681 4682 4683 6 4472 4466 4474 4683 4684 4685 6 4473 4466 4467 4475 4685 4686 6 4474 4467 4468 4476 4686 4687 6 4475 4468 4469 4477 4687 4688 6 4476 4469 4470 4471 4478 4688 6 4477 4471 4210 4211 4479 4688 6 4478 4211 4213 4480 4688 5214 6 4479 4213 4215 4481 5214 5215 6 4480 4215 4482 5215 5216 5217 6 4481 4215 4216 4483 4491 5217 6 4482 4216 4218 4484 4491 4492 6 4483 4218 4233 4485 4492 4493 6 4484 4233 4486 4493 4494 4495 6 4485 4233 4234 4487 4495 4496 6 4486 4234 4236 4488 4490 4496 6 4487 4236 4489 4228 4490 4230 5 4488 4236 4228 4227 4226 6 4487 4488 4230 4496 4497 4501 6 4482 4483 4492 4982 4990 5217 6 4491 4483 4484 4493 4982 4983 6 4492 4484 4485 4494 4983 4984 6 4493 4485 4495 4984 4985 4986 6 4494 4485 4486 4496 4986 4498 6 4495 4486 4487 4490 4497 4498 6 4496 4490 4498 4499 4500 4501 6 4496 4497 4499 4986 4495 4987 6 4498 4497 4500 4987 4988 4989 5 4499 4497 4501 4989 4512 7 4500 4497 4490 4230 4231 4502 4512 6 4501 4231 4503 4512 4513 4514 6 4502 4231 4063 4514 4068 4064 6 4240 4241 4505 7817 4239 7818 6 4504 4241 4506 7818 7819 7820 6 4505 4241 4242 4507 7820 7821 6 4506 4242 4243 4417 4508 7821 6 4507 4417 4509 7821 7822 7823 6 4508 4417 4418 4510 7823 7824 6 4509 4418 4511 7824 7825 7826 6 4510 4418 4419 7826 7829 4420 7 4501 4502 4513 4989 4500 5003 5000 6 4512 4502 4514 4755 4760 5003 5 4513 4502 4503 4068 4755 6 427 412 4516 4517 5612 5613 6 4515 412 4517 4518 4522 411 6 4515 4516 4518 4519 5612 5616 6 4517 4516 4519 4520 4521 4522 6 4517 4518 4520 9735 7509 5616 6 4519 4518 4521 5236 9735 9679 6 4520 4518 4522 5236 5237 5238 6 4521 4518 4516 411 5238 422 7 3508 3511 3771 4524 6694 6696 6705 6 4523 3771 4525 6695 6694 4533 6 4524 3771 3772 4526 4527 4533 7 4525 3772 4527 4528 4401 4400 4529 6 4525 4526 4528 4533 4534 4535 5 4527 4526 4401 4535 4402 6 4400 4526 3772 3773 4530 4397 6 4529 3773 3774 4531 4397 9785 6 4530 3774 4532 4117 4120 9785 5 4531 3774 4117 3522 3521 6 4525 4527 4534 5157 4524 6695 6 4533 4527 4535 5157 5158 4667 6 4534 4527 4528 4402 4536 4667 6 4535 4402 4411 4537 4538 4667 6 4536 4411 4538 4539 4540 4412 6 4536 4537 4539 4667 4668 4669 6 4538 4537 4540 4541 4547 4669 6 4539 4537 4541 4542 4546 4412 6 4539 4540 4542 4543 4547 4548 6 4541 4540 4543 4544 4545 4546 6 4541 4542 4544 4551 4548 4552 6 4543 4542 4545 4552 4553 4554 6 4544 4542 4546 4415 4649 4554 6 4545 4542 4540 4412 4413 4415 6 4539 4541 4548 4549 9763 4669 6 4547 4541 4549 4550 4551 4543 6 4547 4548 4550 4558 4561 9763 6 4549 4548 4551 4558 4559 4560 6 4550 4548 4543 4552 6764 4560 6 4551 4543 4544 4553 7145 6764 6 4552 4544 4554 4555 7146 7145 6 4553 4544 4555 4556 4545 4649 6 4553 4554 4556 4557 7146 7147 6 4555 4554 4557 4649 4650 7154 6 4555 4556 7147 7149 7150 7154 6 4549 4550 4559 4561 4562 4563 6 4558 4550 4560 4566 4563 6765 6 4559 4550 6764 6763 6765 4551 7 4549 4558 4562 9763 9762 6676 9793 6 4561 4558 4563 4564 6675 6676 6 4562 4558 4564 4565 4566 4559 6 4562 4563 4565 6666 6667 6675 6 4564 4563 4566 6674 6666 6791 6 4565 4563 4559 6765 6766 6791 6 4310 4311 4568 4783 4784 4785 6 4567 4311 4312 4569 4785 4786 6 4568 4312 4313 4570 4786 4787 6 4569 4313 4314 4571 4787 4788 6 4570 4314 4315 4572 4788 4789 6 4571 4315 4316 4573 4789 4790 6 4572 4316 4317 4574 4790 4791 6 4573 4317 4318 4575 4791 4792 6 4574 4318 4319 4576 4792 4793 6 4575 4319 4320 4577 4793 4794 6 4576 4320 4321 4578 4794 4795 6 4577 4321 4322 4323 4579 4795 6 4578 4323 4324 4580 4795 4796 6 4579 4324 4581 4796 4797 4798 6 4580 4324 4325 4326 4582 4798 6 4581 4326 4583 4798 4799 4584 6 4582 4326 4327 4328 4329 4584 6 4583 4329 4330 4585 4799 4582 7 4584 4330 4331 4586 4587 4805 4799 6 4585 4331 4587 4588 4589 4590 5 4585 4586 4588 4805 4806 6 4587 4586 4589 4806 4807 4808 6 4588 4586 4590 4808 4809 4810 6 4589 4586 4331 4332 4591 4810 5 4590 4332 4333 4592 4810 6 4591 4333 4334 4593 4810 4811 6 4592 4334 4335 4430 4594 4811 6 4593 4430 4431 4595 4811 4812 6 4594 4431 4432 4596 4812 4813 6 4595 4432 4433 4597 4813 4814 6 4596 4433 4434 4598 4814 4815 6 4597 4434 4435 4599 4815 4816 6 4598 4435 4437 4600 4816 4817 6 4599 4437 4438 4601 4817 4818 6 4600 4438 4439 4602 4818 4819 6 4601 4439 4351 4603 4822 4819 6 4602 4351 4352 4604 4822 4823 6 4603 4352 4605 4826 4823 4827 7 4604 4352 4353 4354 4356 4606 4827 5 4605 4356 4607 4827 4828 6 4606 4356 4357 4363 4608 4828 5 4607 4363 4609 4610 4828 6 4608 4363 4610 4611 4612 4364 7 4608 4609 4611 4828 4829 4830 4831 6 4610 4609 4612 4831 4832 4833 6 4611 4609 4364 4613 4833 4835 6 4612 4364 4365 4614 4838 4835 6 4613 4365 4615 4617 4618 4838 6 4614 4365 4361 4369 4616 4617 7 4615 4369 4617 4638 4635 4620 4371 6 4615 4616 4614 4618 4619 4620 6 4614 4617 4619 4838 4623 4839 6 4618 4617 4620 4621 4622 4623 6 4619 4617 4621 4634 4635 4616 6 4619 4620 4622 4629 4630 4634 6 4619 4621 4623 4624 4625 4629 6 4619 4622 4624 4841 4839 4618 6 4623 4622 4625 4626 4841 4842 6 4624 4622 4626 4627 4628 4629 6 4624 4625 4627 4842 4861 4854 6 4626 4625 4628 4861 4862 4863 6 4627 4625 4629 4863 4864 4631 6 4628 4625 4622 4621 4630 4631 6 4629 4621 4631 4632 4633 4634 6 4629 4630 4632 4864 4628 4865 6 4631 4630 4633 4639 4869 4865 6 4632 4630 4634 4639 4640 4636 6 4633 4630 4621 4620 4635 4636 6 4634 4620 4636 4637 4638 4616 6 4634 4635 4637 4640 4633 4641 6 4636 4635 4638 4641 4642 4643 5 4637 4635 4616 4643 4371 6 4632 4633 4640 4869 4913 9761 6 4639 4633 4636 4641 4913 4914 6 4640 4636 4637 4642 4917 4914 6 4641 4637 4643 4911 4917 4910 7 4642 4637 4638 4909 4910 9795 4371 6 4425 4426 4645 5037 5038 5045 6 4644 4426 4646 5046 5045 6890 6 4645 4426 4427 4647 6891 6890 6 4646 4427 4428 4648 6891 6892 6 4647 4428 4429 4254 6892 6893 6 4545 4415 4554 4556 4650 4416 6 4556 4649 4416 7167 7155 7154 6 423 53 54 4652 4653 9685 6 4651 54 4653 4654 4658 55 6 4651 4652 4654 4655 9684 9685 6 4653 4652 4655 4656 4657 4658 6 4653 4654 4656 9683 9681 9684 6 4655 4654 4657 9683 9686 9687 7 4656 4654 4658 5381 9689 9687 9690 6 4657 4654 4652 55 5381 56 6 4447 4448 4660 4729 4446 4737 6 4659 4448 4449 4661 4737 4738 6 4660 4449 4451 4738 4739 4452 6 3896 3897 3898 4663 7842 4759 6 4662 3898 3899 4664 7842 7843 6 4663 3899 4665 7843 4690 4689 6 4664 3899 3900 4666 3686 4689 6 4665 3900 3901 3902 3903 3686 6 4535 4536 4538 4668 5158 4534 6 4667 4538 4669 9751 5158 9762 6 4668 4538 4539 9762 9763 4547 7 4452 4453 4454 4671 4981 4739 5195 6 4670 4454 4455 4672 5195 5196 6 4671 4455 4456 4673 5196 5197 6 4672 4456 4457 4674 5197 5198 6 4673 4457 4458 4675 5198 5199 6 4674 4458 4459 4676 5199 5200 6 4675 4459 4460 4677 5200 5201 6 4676 4460 4461 4678 5201 5202 6 4677 4461 4462 4679 5202 5203 6 4678 4462 4680 5203 5204 5205 6 4679 4462 4463 4464 4681 5205 7 4680 4464 4465 4472 4682 5205 5206 5 4681 4472 4683 5206 5207 7 4682 4472 4473 4684 5207 5208 5209 5 4683 4473 4685 5209 5210 7 4684 4473 4474 4686 5210 5211 5212 6 4685 4474 4475 4687 5212 5213 6 4686 4475 4476 4688 5213 5214 6 4687 4476 4477 4478 4479 5214 6 4665 3686 3687 3688 4690 4664 6 4689 3688 4691 7843 4664 7844 6 4690 3688 3689 4692 7844 7845 6 4691 3689 3690 4693 5159 7845 6 4692 3690 3691 3693 4694 5159 6 4693 3693 4695 5159 5160 5161 6 4694 3693 3694 4696 5161 5162 6 4695 3694 4697 5162 5163 5164 6 4696 3694 3695 3696 4698 5164 6 4697 3696 4699 5164 5165 5166 6 4698 3696 3697 4700 5166 4701 6 4699 3697 3698 3699 3973 4701 6 4700 3973 4702 5166 4699 7855 6 4701 3973 3974 3975 4703 7855 6 4702 3975 4704 7309 7855 7856 6 4703 3975 3976 4705 7309 7310 6 4704 3976 3977 4706 7310 7311 6 4705 3977 3978 4707 7311 7312 6 4706 3978 3979 4708 7312 7313 6 4707 3979 3980 4709 5171 7313 6 4708 3980 3981 4710 5171 5172 6 4709 3981 3982 4711 5172 5173 6 4710 3982 3983 4712 5173 5174 6 4711 3983 3984 4713 5174 5175 6 4712 3984 3985 4714 5175 5176 6 4713 3985 3986 4715 5176 5177 6 4714 3986 3987 4716 5177 5178 6 4715 3987 3988 4717 4966 5178 6 4716 3988 3989 4718 4966 4967 6 4717 3989 3990 4719 4967 4968 6 4718 3990 3991 4720 4968 4969 6 4719 3991 3992 4721 4969 4970 6 4720 3992 3993 4722 4970 4971 6 4721 3993 3994 4440 4723 4971 6 4722 4440 4724 4971 4972 4973 6 4723 4440 4441 4725 4973 4974 6 4724 4441 4442 4726 4974 4975 6 4725 4442 4443 4727 4734 4975 6 4726 4443 4444 4728 4734 4735 6 4727 4444 4445 4729 4735 4736 6 4728 4445 4446 4659 4736 4737 6 4255 4256 4731 4732 4733 4262 6 4255 4730 4732 6893 6894 6895 6 4731 4730 4733 6895 6896 6897 6 4732 4730 4262 6897 6902 4263 6 4726 4727 4735 4975 4976 4977 6 4734 4727 4728 4736 4977 4978 6 4735 4728 4729 4737 4978 4979 6 4736 4729 4659 4660 4738 4979 6 4737 4660 4661 4739 4979 4980 6 4738 4661 4452 4980 4981 4670 6 4249 4392 4741 5004 7831 7832 6 4740 4392 4393 4403 4742 5004 6 4741 4403 4743 4754 5004 5005 6 4742 4403 4404 4744 4754 4749 6 4743 4404 4745 3893 3894 4749 6 4744 4404 4405 4746 4747 3893 6 4745 4405 3466 3467 3469 4747 6 4746 3469 4748 3398 3893 4745 6 4747 3469 2173 2174 3396 3398 6 4744 3894 4750 4751 4754 4743 6 4749 3894 4751 4752 4753 3895 6 4749 4750 4752 5006 4754 7838 6 4751 4750 4753 4758 7838 7839 6 4752 4750 3895 4758 4759 3896 6 4742 4743 4749 5005 5006 4751 7 4514 4068 4069 4756 4513 4760 4761 5 4755 4069 4757 4761 4762 7 4756 4069 4070 3828 4762 4763 4764 6 4752 4753 4759 7839 7840 7841 6 4758 4753 3896 7841 7842 4662 6 4513 4755 4761 5007 5003 5002 5 4760 4755 4756 4762 5007 7 4761 4756 4757 4763 5007 5008 5009 6 4762 4757 4764 5009 5010 5011 6 4763 4757 3828 3829 4765 5011 6 4764 3829 4766 5011 5012 5013 6 4765 3829 3830 3831 4767 5013 6 4766 3831 3832 4768 4769 5013 6 4767 3832 4769 4770 4771 3833 7 4767 4768 4770 5013 5012 5014 5015 6 4769 4768 4771 5015 5016 5017 6 4770 4768 3833 5017 3835 3834 6 4298 4299 4773 4933 4934 4935 6 4772 4299 4300 4774 4935 4936 6 4773 4300 4301 4775 4936 4937 6 4774 4301 4302 4776 4937 4938 6 4775 4302 4303 4777 4938 4939 6 4776 4303 4304 4778 4939 4940 6 4777 4304 4305 4779 4940 4941 6 4778 4305 4306 4780 4941 4942 6 4779 4306 4307 4781 4942 4943 6 4780 4307 4308 4782 4943 4944 6 4781 4308 4309 4783 4944 4945 6 4782 4309 4310 4567 4784 4945 6 4783 4567 4785 4945 4946 4947 6 4784 4567 4568 4786 4947 4948 6 4785 4568 4569 4787 4948 4949 6 4786 4569 4570 4788 4949 4950 6 4787 4570 4571 4789 4950 4951 6 4788 4571 4572 4790 4951 4952 6 4789 4572 4573 4791 4952 4953 6 4790 4573 4574 4792 4953 4954 6 4791 4574 4575 4793 4954 4955 6 4792 4575 4576 4794 4800 4955 6 4793 4576 4577 4795 4800 4801 6 4794 4577 4578 4579 4796 4801 6 4795 4579 4580 4797 4801 4802 6 4796 4580 4798 4802 4803 4804 6 4797 4580 4581 4582 4799 4804 6 4798 4582 4584 4804 4805 4585 6 4793 4794 4801 4955 4956 4957 6 4800 4794 4795 4796 4802 4957 6 4801 4796 4797 4803 4957 4958 6 4802 4797 4804 4958 4959 4960 6 4803 4797 4798 4799 4805 4960 6 4804 4799 4585 4587 4806 4960 6 4805 4587 4588 4807 4919 4960 6 4806 4588 4808 4919 4920 4921 6 4807 4588 4589 4809 4921 4922 6 4808 4589 4810 4922 4923 4811 6 4809 4589 4590 4591 4592 4811 7 4810 4592 4593 4594 4812 4923 4809 5 4811 4594 4595 4813 4923 6 4812 4595 4596 4814 4965 4923 6 4813 4596 4597 4815 5094 4965 6 4814 4597 4598 4816 5094 5095 6 4815 4598 4599 4817 5095 5096 6 4816 4599 4600 4818 5096 5097 6 4817 4600 4601 4819 4820 5097 6 4818 4601 4820 4821 4822 4602 6 4818 4819 4821 5097 5098 5099 6 4820 4819 4822 5099 5100 4824 6 4821 4819 4602 4603 4823 4824 6 4822 4603 4824 4825 4826 4604 6 4822 4823 4825 5100 4821 5101 6 4824 4823 4826 5101 5102 5103 6 4825 4823 4604 4827 5103 5104 6 4826 4604 4605 4606 4828 5104 7 4827 4606 4607 4608 4610 4829 5104 6 4828 4610 4830 5104 5103 5105 6 4829 4610 4831 5105 5106 5107 6 4830 4610 4611 4832 5107 5108 6 4831 4611 4833 4834 5114 5108 5 4832 4611 4612 4834 4835 6 4832 4833 4835 4836 5114 5115 7 4834 4833 4612 4836 4837 4838 4613 6 4834 4835 4837 5115 4846 4845 6 4836 4835 4838 4839 4840 4845 6 4837 4835 4613 4614 4618 4839 6 4837 4838 4840 4841 4623 4618 6 4837 4839 4841 4843 4844 4845 6 4840 4839 4623 4624 4842 4843 6 4841 4624 4843 4626 4853 4854 6 4841 4842 4840 4844 4853 4851 6 4840 4843 4845 4846 4847 4851 5 4840 4844 4846 4836 4837 7 4845 4844 4847 4848 5115 4836 5116 6 4846 4844 4848 4849 4850 4851 6 4846 4847 4849 5118 5116 5119 6 4848 4847 4850 5119 5120 5121 6 4849 4847 4851 4852 5121 5122 6 4850 4847 4852 4853 4843 4844 6 4850 4851 4853 4855 4856 5122 6 4852 4851 4843 4842 4854 4855 6 4853 4842 4855 4858 4861 4626 6 4852 4853 4854 4856 4857 4858 6 4852 4855 4857 5122 5123 5124 6 4856 4855 4858 4859 5124 5125 6 4857 4855 4854 4859 4860 4861 6 4857 4858 4860 5125 5126 5130 6 4859 4858 4861 5130 5131 4862 6 4860 4858 4854 4626 4627 4862 6 4861 4627 4863 5131 4860 5132 6 4862 4627 4628 4864 4866 5132 6 4863 4628 4631 4865 4866 4867 6 4864 4631 4867 4868 4869 4632 6 4863 4864 4867 5132 5133 5137 6 4866 4864 4865 4868 5137 5138 6 4867 4865 4869 4870 4871 5138 6 4868 4865 4632 4639 4870 9761 6 4868 4869 4871 4872 4873 9761 6 4868 4870 4872 5138 5139 5140 6 4871 4870 4873 4874 5151 5140 6 4872 4870 4874 4875 4876 9761 6 4872 4873 4875 5150 5148 5151 6 4874 4873 4876 4877 4878 5150 6 4875 4873 4877 9761 4913 4915 6 4875 4876 4878 4879 4880 4915 6 4875 4877 4879 5156 5150 4883 6 4878 4877 4880 4881 4882 4883 6 4879 4877 4881 4915 4916 9754 7 4879 4880 4882 9754 9755 9757 9758 6 4879 4881 4883 4884 4885 9758 6 4879 4882 4884 5156 4878 5370 6 4883 4882 4885 4886 5370 5371 6 4884 4882 4886 4887 9758 4896 6 4884 4885 4887 4888 4889 5371 6 4886 4885 4888 4895 4892 4896 6 4886 4887 4889 4890 4891 4892 6 4886 4888 4890 5373 5371 5900 6 4889 4888 4891 5899 5897 5900 6 4890 4888 4892 4893 5899 5902 6 4891 4888 4893 4894 4895 4887 6 4891 4892 4894 5902 5903 5904 6 4893 4892 4895 5913 5904 5914 6 4894 4892 4887 4896 4897 5914 7 4895 4887 4897 4898 9758 9757 4885 6 4895 4896 4898 4899 4900 5914 5 4897 4896 4899 9757 9760 6 4897 4898 4900 4901 4902 9760 6 4897 4899 4901 5914 5915 5918 6 4900 4899 4902 4903 5918 5919 6 4901 4899 4903 4904 4905 9760 6 4901 4902 4904 5919 3672 3671 6 4903 4902 4905 4906 3670 3671 6 4904 4902 4906 9755 4912 9760 6 4904 4905 3670 4907 4908 4912 6 3670 4906 4908 4909 3662 3661 6 4907 4906 4909 4910 4911 4912 7 4907 4908 4910 4643 3661 9794 9795 5 4909 4908 4911 4643 4642 6 4910 4908 4912 4918 4917 4642 6 4911 4908 4906 9755 4918 4905 6 4639 4640 4914 4915 9761 4876 6 4913 4640 4915 4916 4917 4641 6 4913 4914 4916 4876 4877 4880 6 4915 4914 4917 4918 9754 4880 6 4916 4914 4918 4911 4642 4641 6 4916 4917 4911 9754 9755 4912 6 4806 4807 4920 4960 4959 4961 6 4919 4807 4921 4961 4962 4963 6 4920 4807 4808 4922 4963 4964 6 4921 4808 4809 4923 4964 4965 6 4922 4809 4811 4965 4813 4812 6 4288 4289 4925 5053 5054 5055 6 4924 4289 4290 4291 4926 5055 6 4925 4291 4927 5055 5056 5057 6 4926 4291 4292 4928 5057 5058 6 4927 4292 4293 4929 5058 5059 6 4928 4293 4294 4930 5059 5060 6 4929 4294 4295 4931 5060 5061 6 4930 4295 4296 4932 5061 5062 6 4931 4296 4297 4298 4933 5062 6 4932 4298 4772 4934 5062 5063 6 4933 4772 4935 5063 5064 5065 6 4934 4772 4773 4936 5065 5066 6 4935 4773 4774 4937 5066 5067 6 4936 4774 4775 4938 5067 5068 6 4937 4775 4776 4939 5068 5069 6 4938 4776 4777 4940 5069 5070 6 4939 4777 4778 4941 5070 5071 6 4940 4778 4779 4942 5071 5072 6 4941 4779 4780 4943 5072 5073 6 4942 4780 4781 4944 5073 5074 6 4943 4781 4782 4945 5074 5075 6 4944 4782 4783 4784 4946 5075 6 4945 4784 4947 5075 5076 5077 6 4946 4784 4785 4948 5077 5078 6 4947 4785 4786 4949 5078 5079 6 4948 4786 4787 4950 5079 5080 6 4949 4787 4788 4951 5080 5081 6 4950 4788 4789 4952 5081 5082 6 4951 4789 4790 4953 5082 5083 6 4952 4790 4791 4954 5083 5084 6 4953 4791 4792 4955 5084 5085 6 4954 4792 4793 4800 4956 5085 6 4955 4800 4957 5085 5086 5087 6 4956 4800 4801 4802 4958 5087 6 4957 4802 4803 4959 5089 5087 6 4958 4803 4960 4919 4961 5089 6 4959 4803 4804 4805 4806 4919 6 4959 4919 4920 4962 5089 5090 6 4961 4920 4963 5090 5091 5092 6 4962 4920 4921 4964 5092 5093 6 4963 4921 4922 4965 5093 5094 6 4964 4922 4923 4813 5094 4814 6 4716 4717 4967 5178 5179 5180 6 4966 4717 4718 4968 5180 5181 6 4967 4718 4719 4969 5181 5182 6 4968 4719 4720 4970 5182 5183 6 4969 4720 4721 4971 5183 5184 6 4970 4721 4722 4723 4972 5184 6 4971 4723 4973 5184 5185 5186 6 4972 4723 4724 4974 5186 5187 6 4973 4724 4725 4975 5187 5188 6 4974 4725 4726 4734 4976 5188 6 4975 4734 4977 5188 5189 5190 6 4976 4734 4735 4978 5190 5191 6 4977 4735 4736 4979 5191 5192 6 4978 4736 4737 4738 4980 5192 6 4979 4738 4739 4981 5192 5193 6 4980 4739 4670 5193 5194 5195 6 4491 4492 4983 4990 4991 4992 6 4982 4492 4493 4984 4992 4993 6 4983 4493 4494 4985 4993 4994 6 4984 4494 4986 4994 4995 4996 6 4985 4494 4495 4498 4987 4996 6 4986 4498 4499 4988 4996 4997 6 4987 4499 4989 4997 4998 4999 6 4988 4499 4500 4512 4999 5000 6 4491 4982 4991 5217 5218 5219 6 4990 4982 4992 5219 5220 5221 6 4991 4982 4983 4993 5221 5222 6 4992 4983 4984 4994 5222 5223 6 4993 4984 4985 4995 5223 5224 6 4994 4985 4996 5224 5225 5226 6 4995 4985 4986 4987 4997 5226 6 4996 4987 4988 4998 5226 5227 6 4997 4988 4999 5227 5228 5229 6 4998 4988 4989 5000 5001 5229 6 4999 4989 5001 5002 5003 4512 6 4999 5000 5002 5229 5230 5231 7 5001 5000 5003 4760 5007 5167 5231 5 5002 5000 4512 4513 4760 6 4740 4741 4742 5005 7832 7835 6 5004 4742 4754 5006 7835 7836 6 5005 4754 4751 7836 7837 7838 7 4760 4761 4762 5008 5022 5002 5167 6 5007 4762 5009 5022 5023 5024 6 5008 4762 4763 5010 5024 5019 6 5009 4763 5011 5012 5018 5019 5 5010 4763 4764 4765 5012 7 5011 4765 5013 4769 5014 5010 5018 5 5012 4765 4766 4767 4769 6 5012 4769 5015 5021 5018 5242 6 5014 4769 4770 5016 5242 5243 6 5015 4770 5017 5243 5244 5025 5 5016 4770 4771 3835 5025 6 5010 5012 5019 5020 5021 5014 7 5010 5018 5020 5024 5009 5239 6834 6 5019 5018 5021 5239 5240 5241 5 5020 5018 5014 5241 5242 5 5007 5008 5023 5167 5168 6 5022 5008 5024 5168 5169 5170 6 5023 5008 5009 5019 5170 6834 7 5017 3835 3836 5026 5244 5016 5245 6 5025 3836 3837 5027 5245 5246 6 5026 3837 3838 4406 5028 5246 6 5027 4406 4407 5029 5246 5247 6 5028 4407 5030 5250 5247 6845 6 5029 4407 4408 5031 6845 6846 6 5030 4408 4409 5032 6846 6847 6 5031 4409 4410 5033 6850 6847 6 5032 4410 4421 5034 6850 6851 6 5033 4421 4422 4423 5035 6851 6 5034 4423 5036 6851 6852 6853 6 5035 4423 4424 5037 6853 5039 6 5036 4424 4425 4644 5038 5039 6 5037 4644 5039 5040 5041 5045 6 5037 5038 5040 6853 5036 6854 6 5039 5038 5041 5042 6857 6854 6 5040 5038 5042 5043 5044 5045 6 5040 5041 5043 6859 6857 6864 6 5042 5041 5044 6879 6880 6864 6 5043 5041 5045 5046 6881 6879 6 5044 5041 5046 4645 4644 5038 6 5044 5045 4645 6881 6882 6890 6 4281 4282 5048 5475 5476 5477 6 5047 4282 4283 5049 5477 5478 6 5048 4283 4284 5050 5478 5479 6 5049 4284 4285 5051 5479 5480 6 5050 4285 4286 5052 5480 5481 6 5051 4286 4287 5053 5481 5482 6 5052 4287 4288 4924 5054 5482 6 5053 4924 5055 5482 5483 5484 6 5054 4924 4925 4926 5056 5484 6 5055 4926 5057 5484 5485 5486 6 5056 4926 4927 5058 5486 5487 6 5057 4927 4928 5059 5487 5488 6 5058 4928 4929 5060 5488 5489 6 5059 4929 4930 5061 5489 5490 6 5060 4930 4931 5062 5490 5491 6 5061 4931 4932 4933 5063 5491 6 5062 4933 4934 5064 5491 5492 6 5063 4934 5065 5251 5492 5493 6 5064 4934 4935 5066 5251 5252 6 5065 4935 4936 5067 5252 5253 6 5066 4936 4937 5068 5253 5254 6 5067 4937 4938 5069 5254 5255 6 5068 4938 4939 5070 5255 5256 6 5069 4939 4940 5071 5256 5257 6 5070 4940 4941 5072 5257 5258 6 5071 4941 4942 5073 5258 5259 6 5072 4942 4943 5074 5259 5260 6 5073 4943 4944 5075 5260 5261 6 5074 4944 4945 4946 5076 5261 6 5075 4946 5077 5261 5262 5263 6 5076 4946 4947 5078 5263 5264 6 5077 4947 4948 5079 5264 5265 6 5078 4948 4949 5080 5265 5266 6 5079 4949 4950 5081 5266 5267 6 5080 4950 4951 5082 5267 5268 6 5081 4951 4952 5083 5268 5269 6 5082 4952 4953 5084 5269 5270 6 5083 4953 4954 5085 5270 5271 6 5084 4954 4955 4956 5086 5271 6 5085 4956 5087 5088 5271 5272 6 5086 4956 4957 5088 5089 4958 6 5086 5087 5089 5272 5273 5090 6 5088 5087 4958 4959 4961 5090 6 5089 4961 4962 5091 5273 5088 6 5090 4962 5092 5273 5274 5275 6 5091 4962 4963 5093 5275 5276 6 5092 4963 4964 5094 5276 5277 7 5093 4964 4965 4814 4815 5095 5277 6 5094 4815 4816 5096 5277 5278 6 5095 4816 4817 5097 5278 5279 6 5096 4817 4818 4820 5098 5279 6 5097 4820 5099 5279 5280 5281 6 5098 4820 4821 5100 5281 5282 6 5099 4821 4824 5101 5282 5283 6 5100 4824 4825 5102 5283 5153 6 5101 4825 5103 5105 5152 5153 6 5102 4825 4826 5104 4829 5105 5 5103 4826 4827 4828 4829 6 5103 4829 4830 5106 5102 5152 7 5105 4830 5107 5155 5152 5288 5289 6 5106 4830 4831 5108 5109 5289 6 5107 4831 5109 5110 5114 4832 6 5107 5108 5110 5111 5289 5290 6 5109 5108 5111 5112 5113 5114 6 5109 5110 5112 5290 5291 5295 6 5111 5110 5113 5295 5296 5117 6 5112 5110 5114 5115 5116 5117 6 5113 5110 5108 4832 4834 5115 6 5114 4834 4836 4846 5116 5113 6 5115 4846 5113 5117 5118 4848 6 5113 5116 5118 5296 5112 5297 6 5117 5116 4848 5119 5300 5297 6 5118 4848 4849 5120 5300 5301 6 5119 4849 5121 5301 5302 5303 5 5120 4849 4850 5122 5303 6 5121 4850 4852 4856 5123 5303 6 5122 4856 5124 5319 5303 5320 6 5123 4856 4857 5125 5322 5320 6 5124 4857 4859 5126 5127 5322 6 5125 4859 5127 5128 5129 5130 6 5125 5126 5128 5323 5322 5324 6 5127 5126 5129 5324 5325 5329 6 5128 5126 5130 5337 5329 5338 6 5129 5126 4859 4860 5131 5338 6 5130 4860 4862 5132 5338 5339 7 5131 4862 4863 4866 5133 5134 5339 6 5132 4866 5134 5135 5136 5137 5 5132 5133 5135 5339 5340 6 5134 5133 5136 5340 5341 5342 6 5135 5133 5137 5347 5345 5342 6 5136 5133 4866 4867 5138 5347 6 5137 4867 4868 4871 5139 5347 6 5138 4871 5140 5141 5345 5347 6 5139 4871 5141 5142 4872 5151 6 5139 5140 5142 5143 5346 5345 6 5141 5140 5143 5144 5145 5151 6 5141 5142 5144 5346 5361 5360 7 5143 5142 5145 5146 5361 5358 5362 6 5144 5142 5146 5147 5148 5151 6 5144 5145 5147 5362 5363 5367 5 5146 5145 5148 5149 5367 6 5147 5145 5149 5150 4874 5151 7 5147 5148 5150 5156 5367 5368 5369 6 5149 5148 4874 5156 4878 4875 6 4874 5148 4872 5140 5142 5145 6 5102 5105 5153 5154 5155 5106 6 5102 5152 5154 5283 5101 5284 6 5153 5152 5155 5284 5285 5286 6 5154 5152 5106 5286 5287 5288 6 5149 5150 4878 4883 5369 5370 7 4533 4534 5158 6683 6684 6685 6695 6 5157 4534 4667 6683 9751 4668 5 4692 4693 4694 5160 7845 7 5159 4694 5161 7845 7846 7847 7848 6 5160 4694 4695 5162 7848 7849 6 5161 4695 4696 5163 7849 7850 6 5162 4696 5164 7850 7851 7852 6 5163 4696 4697 4698 5165 7852 6 5164 4698 5166 7852 7853 7854 6 5165 4698 4699 4701 7854 7855 5 5002 5007 5022 5168 5231 8 5167 5022 5023 5169 5230 5231 6827 6825 6 5168 5023 5170 6827 6828 6831 7 5169 5023 5024 6831 6832 6833 6834 6 4708 4709 5172 7313 7314 7315 6 5171 4709 4710 5173 7315 7316 6 5172 4710 4711 5174 7316 7317 6 5173 4711 4712 5175 7317 7318 6 5174 4712 4713 5176 7318 7319 6 5175 4713 4714 5177 7319 7320 6 5176 4714 4715 5178 7320 7321 6 5177 4715 4716 4966 5179 7321 6 5178 4966 5180 7321 7322 7323 6 5179 4966 4967 5181 7323 7324 6 5180 4967 4968 5182 5412 7324 6 5181 4968 4969 5183 5412 5413 6 5182 4969 4970 5184 5413 5414 6 5183 4970 4971 4972 5185 5414 6 5184 4972 5186 5414 5415 5416 6 5185 4972 4973 5187 5404 5416 6 5186 4973 4974 5188 5404 5405 6 5187 4974 4975 4976 5189 5405 6 5188 4976 5190 5405 5406 5407 6 5189 4976 4977 5191 5407 5408 6 5190 4977 4978 5192 5408 5409 6 5191 4978 4979 4980 5193 5409 6 5192 4980 4981 5194 5409 5410 6 5193 4981 5195 5410 5411 5196 5 5194 4981 4670 4671 5196 6 5195 4671 4672 5197 5411 5194 7 5196 4672 4673 5198 5424 5411 5432 5 5197 4673 4674 5199 5432 7 5198 4674 4675 5200 5432 5433 5434 6 5199 4675 4676 5201 5434 5435 6 5200 4676 4677 5202 5435 5436 6 5201 4677 4678 5203 5436 5437 6 5202 4678 4679 5204 5437 5438 6 5203 4679 5205 5438 5439 5440 6 5204 4679 4680 4681 5206 5440 5 5205 4681 4682 5207 5440 7 5206 4682 4683 5208 5440 5441 5442 6 5207 4683 5209 5442 5443 5444 6 5208 4683 4684 5210 5425 5444 7 5209 4684 4685 5211 5425 5426 5427 5 5210 4685 5212 5427 5428 7 5211 4685 4686 5213 5428 5216 5215 5 5212 4686 4687 5214 5215 6 5213 4687 4688 4479 4480 5215 6 5214 4480 4481 5216 5212 5213 6 5215 4481 5217 5428 5212 5218 6 5216 4481 4482 4491 4990 5218 7 5217 4990 5219 5448 5428 5216 6811 6 5218 4990 4991 5220 6811 6812 6 5219 4991 5221 6812 6813 6814 6 5220 4991 4992 5222 6814 6815 5 5221 4992 4993 5223 6815 7 5222 4993 4994 5224 6815 6816 6817 5 5223 4994 4995 5225 6817 7 5224 4995 5226 6817 6818 6819 6820 6 5225 4995 4996 4997 5227 6820 6 5226 4997 4998 5228 6820 6821 6 5227 4998 5229 6821 6822 6823 6 5228 4998 4999 5001 5230 6823 7 5229 5001 5231 5168 6823 6824 6825 5 5230 5001 5168 5167 5002 6 4265 4266 5233 6903 6904 5459 6 5232 4266 4267 5234 5449 5459 6 5233 4267 4268 5235 5449 5450 6 5234 4268 4270 5450 5451 5452 6 4520 4521 5237 9678 9679 9680 6 5236 4521 5238 9680 9684 9685 6 5237 4521 4522 423 9685 422 6 5019 5020 5240 6833 6834 6835 6 5239 5020 5241 5649 6835 6836 6 5240 5020 5021 5242 5649 5650 7 5241 5021 5014 5015 5243 5650 5651 5 5242 5015 5016 5244 5651 7 5243 5016 5025 5245 5653 5651 5654 6 5244 5025 5026 5246 5654 5248 6 5245 5026 5027 5028 5247 5248 6 5246 5028 5248 5249 5250 5029 6 5246 5247 5249 5654 5245 6841 6 5248 5247 5250 6842 6841 6843 6 5249 5247 5029 6843 6844 6845 6 5064 5065 5252 5493 5494 5495 6 5251 5065 5066 5253 5495 5496 6 5252 5066 5067 5254 5496 5497 6 5253 5067 5068 5255 5497 5498 6 5254 5068 5069 5256 5498 5499 6 5255 5069 5070 5257 5499 5500 6 5256 5070 5071 5258 5500 5501 6 5257 5071 5072 5259 5501 5502 6 5258 5072 5073 5260 5502 5503 6 5259 5073 5074 5261 5503 5504 6 5260 5074 5075 5076 5262 5504 6 5261 5076 5263 5504 5505 5506 6 5262 5076 5077 5264 5506 5507 6 5263 5077 5078 5265 5507 5508 6 5264 5078 5079 5266 5508 5509 6 5265 5079 5080 5267 5509 5510 6 5266 5080 5081 5268 5510 5511 6 5267 5081 5082 5269 5511 5512 6 5268 5082 5083 5270 5512 5513 6 5269 5083 5084 5271 5513 5514 6 5270 5084 5085 5086 5272 5514 6 5271 5086 5088 5273 5514 5515 6 5272 5088 5090 5091 5274 5515 6 5273 5091 5275 5515 5516 5517 6 5274 5091 5092 5276 5520 5517 6 5275 5092 5093 5277 5520 5278 5 5276 5093 5094 5095 5278 6 5277 5095 5096 5279 5520 5276 6 5278 5096 5097 5098 5280 5520 6 5279 5098 5281 5520 5519 5521 6 5280 5098 5099 5282 5521 5378 6 5281 5099 5100 5283 5377 5378 6 5282 5100 5101 5153 5284 5377 6 5283 5153 5154 5285 5380 5377 6 5284 5154 5286 5525 5380 5526 6 5285 5154 5155 5287 5526 5527 6 5286 5155 5288 5527 5528 5292 6 5287 5155 5106 5289 5292 5290 5 5288 5106 5107 5109 5290 6 5289 5109 5111 5291 5292 5288 6 5290 5111 5292 5293 5294 5295 7 5290 5291 5293 5528 5287 5288 5529 6 5292 5291 5294 5529 5530 5534 5 5293 5291 5295 5534 5535 6 5294 5291 5111 5112 5296 5535 6 5295 5112 5117 5297 5298 5535 6 5296 5117 5298 5299 5300 5118 6 5296 5297 5299 5535 5536 5543 6 5298 5297 5300 5543 5544 5545 6 5299 5297 5118 5119 5301 5545 6 5300 5119 5120 5302 5305 5545 6 5301 5120 5303 5304 5305 5306 7 5302 5120 5304 5319 5123 5121 5122 6 5302 5303 5309 5306 5310 5319 6 5301 5302 5306 5307 5544 5545 6 5305 5302 5307 5308 5309 5304 6 5305 5306 5308 5544 5546 5547 6 5307 5306 5309 5312 5313 5547 6 5308 5306 5304 5310 5311 5312 6 5309 5304 5311 5317 5318 5319 6 5309 5310 5312 5315 5316 5317 6 5309 5311 5308 5313 5314 5315 6 5308 5312 5314 5547 5548 5549 6 5313 5312 5315 5549 5550 5551 6 5314 5312 5311 5316 5554 5551 6 5315 5311 5317 5556 5554 5559 6 5316 5311 5310 5318 5559 5560 6 5317 5310 5319 5320 5321 5560 6 5318 5310 5304 5303 5123 5320 6 5319 5123 5318 5321 5322 5124 6 5318 5320 5322 5323 5560 5561 6 5321 5320 5323 5127 5125 5124 6 5321 5322 5127 5324 5561 5562 6 5323 5127 5128 5325 5326 5562 6 5324 5128 5326 5327 5328 5329 6 5324 5325 5327 5562 5563 5564 6 5326 5325 5328 5573 5564 5574 6 5327 5325 5329 5330 5331 5574 6 5328 5325 5330 5337 5129 5128 6 5328 5329 5331 5332 5333 5337 6 5328 5330 5332 5574 5575 5576 6 5331 5330 5333 5334 5576 5577 6 5332 5330 5334 5335 5336 5337 6 5332 5333 5335 5577 5578 5579 6 5334 5333 5336 5579 5341 5340 6 5335 5333 5337 5338 5339 5340 6 5336 5333 5330 5329 5129 5338 6 5337 5129 5130 5131 5336 5339 6 5336 5338 5131 5132 5134 5340 6 5339 5134 5135 5341 5335 5336 6 5340 5135 5342 5343 5579 5335 6 5341 5135 5343 5344 5345 5136 6 5341 5342 5344 5349 5350 5579 6 5343 5342 5345 5346 5348 5349 7 5344 5342 5346 5141 5139 5347 5136 6 5344 5345 5141 5143 5348 5360 5 5139 5345 5136 5137 5138 6 5344 5346 5349 5352 5353 5360 6 5344 5348 5343 5350 5351 5352 6 5343 5349 5351 5579 5578 5580 6 5350 5349 5352 5580 5581 5585 6 5351 5349 5348 5353 5354 5585 6 5352 5348 5354 5355 5356 5360 6 5352 5353 5355 5609 5585 5610 6 5354 5353 5356 5357 5808 5610 6 5355 5353 5357 5358 5360 5361 6 5355 5356 5358 5359 5808 5809 6 5357 5356 5359 5361 5144 5362 7 5357 5358 5809 5810 5811 5364 5362 6 5356 5353 5348 5361 5143 5346 5 5356 5360 5143 5144 5358 6 5358 5144 5146 5363 5364 5359 6 5362 5146 5364 5365 5366 5367 5 5362 5363 5365 5811 5359 6 5364 5363 5366 5811 5812 5403 7 5365 5363 5367 5403 5402 5368 5376 6 5366 5363 5146 5147 5149 5368 6 5367 5149 5369 5375 5366 5376 6 5368 5149 5156 5370 5372 5375 6 5369 5156 4883 4884 5371 5372 6 5370 4884 5372 5373 4889 4886 6 5370 5371 5373 5374 5375 5369 6 5372 5371 5374 4889 5394 5900 6 5372 5373 5375 5376 5393 5394 5 5372 5374 5376 5369 5368 6 5375 5374 5393 5366 5368 5402 6 5282 5283 5378 5379 5380 5284 6 5282 5377 5379 5521 5281 5522 6 5378 5377 5380 5522 5523 5524 6 5379 5377 5284 5524 5525 5285 6 4657 4658 56 9690 431 57 6 1680 1681 1679 5383 5384 1683 6 1679 5382 5384 5385 7780 3416 6 5383 5382 5385 5386 3775 1683 6 5383 5384 5386 5387 7780 7781 6 5385 5384 5387 5388 5392 3775 6 5385 5386 5388 5389 7781 7782 6 5387 5386 5389 5390 5391 5392 6 5387 5388 5390 5617 7782 7783 6 5389 5388 5391 5617 5618 5619 6 5390 5388 5392 5619 5620 5621 6 5391 5388 5386 3775 5621 3776 6 5376 5374 5394 5395 5402 5399 6 5393 5374 5395 5373 5396 5900 6 5393 5394 5396 5397 5398 5399 5 5395 5394 5397 5900 5895 6 5395 5396 5398 5894 5891 5895 6 5395 5397 5399 5400 5890 5891 6 5395 5398 5400 5401 5402 5393 6 5399 5398 5401 5881 5889 5890 7 5399 5400 5402 5403 5888 5882 5881 6 5399 5401 5403 5366 5376 5393 6 5402 5401 5888 5812 5365 5366 6 5186 5187 5405 5416 5417 5418 6 5404 5187 5188 5189 5406 5418 6 5405 5189 5407 5418 5419 5420 6 5406 5189 5190 5408 5420 5421 6 5407 5190 5191 5409 5421 5422 6 5408 5191 5192 5193 5410 5422 6 5409 5193 5194 5411 5422 5423 6 5410 5194 5196 5423 5424 5197 6 5181 5182 5413 7324 7325 7326 6 5412 5182 5183 5414 7326 7327 6 5413 5183 5184 5185 5415 7327 6 5414 5185 5416 7327 7328 7329 6 5415 5185 5186 5404 5417 7329 6 5416 5404 5418 7329 7330 7331 6 5417 5404 5405 5406 5419 7331 6 5418 5406 5420 6792 7331 7332 6 5419 5406 5407 5421 6792 6793 6 5420 5407 5408 5422 5429 6793 6 5421 5408 5409 5410 5423 5429 6 5422 5410 5411 5424 5429 5430 6 5423 5411 5197 5430 5431 5432 6 5209 5210 5426 5444 5445 5446 6 5425 5210 5427 5446 5447 5448 5 5426 5210 5211 5428 5448 6 5427 5211 5212 5216 5448 5218 6 5421 5422 5423 5430 6793 6794 6 5429 5423 5424 5431 6794 6795 6 5430 5424 5432 6795 6796 5433 6 5431 5424 5197 5198 5199 5433 5 5432 5199 5434 6796 5431 6 5433 5199 5200 5435 6796 6797 6 5434 5200 5201 5436 6797 6798 6 5435 5201 5202 5437 6798 6799 6 5436 5202 5203 5438 6799 6800 6 5437 5203 5204 5439 6800 6801 6 5438 5204 5440 6801 6802 6803 7 5439 5204 5205 5206 5207 5441 6803 5 5440 5207 5442 6803 6804 6 5441 5207 5208 5443 6804 6805 6 5442 5208 5444 6805 6806 5445 5 5443 5208 5209 5425 5445 6 5444 5425 5446 6806 5443 6807 6 5445 5425 5426 5447 6807 6808 6 5446 5426 5448 6808 6809 6810 7 5447 5426 5427 5428 5218 6810 6811 6 5233 5234 5450 5459 5460 5461 6 5449 5234 5235 5451 5461 5462 6 5450 5235 5452 5462 5463 5464 6 5451 5235 4270 4271 5453 5464 6 5452 4271 4272 5454 5464 5465 6 5453 4272 4273 5455 5456 5465 6 5454 4273 5456 5457 5458 4274 6 5454 5455 5457 5465 5466 5467 6 5456 5455 5458 5467 5468 5469 6 5457 5455 4274 5469 5470 4275 6 5233 5449 5460 6904 5232 6905 6 5459 5449 5461 6905 6906 6907 6 5460 5449 5450 5462 6907 6908 6 5461 5450 5451 5463 6908 6909 6 5462 5451 5464 6909 6910 6911 6 5463 5451 5452 5453 5465 6911 6 5464 5453 5454 5456 5466 6911 6 5465 5456 5467 6911 6912 6913 6 5466 5456 5457 5468 6913 6914 6 5467 5457 5469 6914 6915 6916 6 5468 5457 5458 5470 6916 6917 6 5469 5458 4275 4276 5471 6917 6 5470 4276 4277 4278 5472 6917 6 5471 4278 5473 6917 6918 6919 6 5472 4278 4279 5474 6919 6920 6 5473 4279 4280 5475 6920 6921 6 5474 4280 4281 5047 5476 6921 6 5475 5047 5477 6921 6922 6923 6 5476 5047 5048 5478 6923 6924 6 5477 5048 5049 5479 6924 6925 6 5478 5049 5050 5480 6925 6926 6 5479 5050 5051 5481 6926 6927 6 5480 5051 5052 5482 5655 6927 6 5481 5052 5053 5054 5483 5655 6 5482 5054 5484 5655 5656 5657 6 5483 5054 5055 5056 5485 5657 6 5484 5056 5486 5657 5658 5659 6 5485 5056 5057 5487 5659 5660 6 5486 5057 5058 5488 5660 5661 6 5487 5058 5059 5489 5661 5662 6 5488 5059 5060 5490 5622 5662 6 5489 5060 5061 5491 5622 5623 6 5490 5061 5062 5063 5492 5623 6 5491 5063 5064 5493 5623 5624 6 5492 5064 5251 5494 5624 5625 6 5493 5251 5495 5625 5626 5627 6 5494 5251 5252 5496 5627 5628 6 5495 5252 5253 5497 5628 5629 6 5496 5253 5254 5498 5629 5630 6 5497 5254 5255 5499 5630 5631 6 5498 5255 5256 5500 5631 5632 6 5499 5256 5257 5501 5632 5633 6 5500 5257 5258 5502 5633 5634 6 5501 5258 5259 5503 5634 5635 6 5502 5259 5260 5504 5635 5636 6 5503 5260 5261 5262 5505 5636 6 5504 5262 5506 5636 5637 5638 6 5505 5262 5263 5507 5638 5639 6 5506 5263 5264 5508 5639 5640 6 5507 5264 5265 5509 5640 5641 6 5508 5265 5266 5510 5641 5642 6 5509 5266 5267 5511 5642 5643 6 5510 5267 5268 5512 5643 5644 6 5511 5268 5269 5513 5644 5645 6 5512 5269 5270 5514 5645 5646 6 5513 5270 5271 5272 5515 5646 6 5514 5272 5273 5274 5516 5646 6 5515 5274 5517 5518 5646 5647 6 5516 5274 5518 5519 5520 5275 6 5516 5517 5519 5647 5648 5521 5 5518 5517 5520 5280 5521 7 5519 5517 5275 5276 5278 5279 5280 7 5519 5280 5281 5378 5522 5648 5518 5 5521 5378 5379 5523 5648 7 5522 5379 5524 5686 5648 5685 5687 6 5523 5379 5380 5525 5688 5687 6 5524 5380 5285 5526 5688 5689 6 5525 5285 5286 5527 5689 5690 6 5526 5286 5287 5528 5690 5691 6 5527 5287 5292 5529 5691 5692 6 5528 5292 5293 5530 5531 5692 6 5529 5293 5531 5532 5533 5534 5 5529 5530 5532 5692 5693 6 5531 5530 5533 5693 5694 5695 7 5532 5530 5534 5695 5696 5539 5537 6 5533 5530 5293 5294 5535 5537 7 5534 5294 5295 5296 5298 5536 5537 6 5535 5298 5537 5538 5542 5543 6 5535 5536 5538 5539 5533 5534 6 5537 5536 5539 5540 5541 5542 6 5537 5538 5540 5696 5533 5697 6 5539 5538 5541 5697 5698 5699 7 5540 5538 5542 5699 5700 5701 9796 5 5541 5538 5536 5543 9796 6 5542 5536 5298 5299 5544 9796 7 5543 5299 5545 5305 5307 5546 9796 5 5544 5299 5305 5301 5300 6 5544 5307 5547 5702 5701 9796 6 5546 5307 5308 5313 5548 5702 6 5547 5313 5549 5702 5703 5704 6 5548 5313 5314 5550 5704 5705 6 5549 5314 5551 5552 5705 5706 6 5550 5314 5552 5553 5554 5315 6 5550 5551 5553 5706 5707 5708 6 5552 5551 5554 5555 5708 5709 6 5553 5551 5315 5555 5556 5316 6 5553 5554 5556 5557 5709 5710 6 5555 5554 5316 5557 5558 5559 6 5555 5556 5558 5710 5711 5712 6 5557 5556 5559 5715 5712 5716 6 5558 5556 5316 5317 5560 5716 6 5559 5317 5318 5321 5561 5716 6 5560 5321 5323 5562 5717 5716 6 5561 5323 5324 5326 5563 5717 6 5562 5326 5564 5565 5718 5717 6 5563 5326 5565 5566 5573 5327 6 5563 5564 5566 5567 5718 5714 6 5565 5564 5567 5568 5572 5573 6 5565 5566 5568 5569 5754 5714 6 5567 5566 5569 5570 5571 5572 6 5567 5568 5570 5753 5754 5755 6 5569 5568 5571 5755 5756 5771 6 5570 5568 5572 5770 5768 5771 6 5571 5568 5566 5573 5770 5772 6 5572 5566 5564 5327 5574 5772 6 5573 5327 5328 5331 5575 5772 6 5574 5331 5576 5772 5773 5774 6 5575 5331 5332 5577 5774 5595 7 5576 5332 5334 5578 5595 5590 5775 6 5577 5334 5579 5350 5580 5775 6 5578 5334 5335 5341 5343 5350 6 5578 5350 5351 5581 5582 5775 6 5580 5351 5582 5583 5584 5585 6 5580 5581 5583 5586 5587 5775 6 5582 5581 5584 5586 5606 5607 6 5583 5581 5585 5607 5608 5609 6 5584 5581 5351 5352 5609 5354 6 5582 5583 5587 5588 5606 5598 6 5582 5586 5588 5589 5590 5775 6 5587 5586 5589 5596 5597 5598 6 5587 5588 5590 5591 5592 5596 6 5587 5589 5591 5595 5577 5775 6 5590 5589 5592 5593 5595 5774 6 5591 5589 5593 5594 5596 5779 6 5591 5592 5594 5774 5773 5776 6 5593 5592 5776 5777 5778 5779 5 5590 5591 5774 5576 5577 6 5592 5589 5588 5597 5779 5780 6 5596 5588 5598 5599 5600 5780 6 5597 5588 5599 5603 5606 5586 6 5597 5598 5600 5601 5602 5603 6 5597 5599 5601 5780 5781 5782 6 5600 5599 5602 5782 5790 5791 6 5601 5599 5603 5604 5791 5792 6 5602 5599 5604 5605 5598 5606 6 5602 5603 5605 5795 5792 5796 6 5604 5603 5796 5797 5607 5606 6 5603 5598 5586 5583 5607 5605 6 5606 5583 5584 5608 5797 5605 6 5607 5584 5609 5611 5799 5797 6 5608 5584 5585 5354 5610 5611 7 5609 5354 5611 5801 5807 5808 5355 5 5609 5610 5608 5801 5799 6 4515 4517 5613 5614 5615 5616 6 4515 5612 5614 428 427 7501 6 5613 5612 5615 7501 7502 7506 6 5614 5612 5616 7506 7507 7508 6 5615 5612 4517 7508 7509 4519 6 5389 5390 5618 7783 7784 7785 6 5617 5390 5619 7785 7786 7787 6 5618 5390 5391 5620 7787 7790 6 5619 5391 5621 7790 7791 7792 6 5620 5391 5392 3776 3779 7792 6 5489 5490 5623 5662 5663 5664 6 5622 5490 5491 5492 5624 5664 6 5623 5492 5493 5625 5664 5665 6 5624 5493 5494 5626 5665 5666 6 5625 5494 5627 5666 5667 5668 6 5626 5494 5495 5628 5668 5669 6 5627 5495 5496 5629 5669 5670 6 5628 5496 5497 5630 5670 5671 6 5629 5497 5498 5631 5671 5672 6 5630 5498 5499 5632 5672 5673 6 5631 5499 5500 5633 5673 5674 6 5632 5500 5501 5634 5674 5675 6 5633 5501 5502 5635 5675 5676 6 5634 5502 5503 5636 5676 5677 6 5635 5503 5504 5505 5637 5677 6 5636 5505 5638 5677 5678 5679 6 5637 5505 5506 5639 5679 5680 6 5638 5506 5507 5640 5680 5681 6 5639 5507 5508 5641 5681 5682 6 5640 5508 5509 5642 5682 5683 6 5641 5509 5510 5643 5683 5684 6 5642 5510 5511 5644 5684 5685 6 5643 5511 5512 5645 5685 5686 6 5644 5512 5513 5646 5686 5647 6 5645 5513 5514 5515 5516 5647 6 5646 5516 5518 5648 5686 5645 6 5647 5518 5521 5686 5523 5522 6 5240 5241 5650 6836 6837 6838 6 5649 5241 5242 5651 5652 6838 6 5650 5242 5652 5653 5244 5243 6 5650 5651 5653 6838 6839 6840 6 5652 5651 5244 5654 6840 6841 5 5653 5244 5245 5248 6841 6 5481 5482 5483 5656 6927 6928 6 5655 5483 5657 6928 6929 6930 6 5656 5483 5484 5485 5658 6930 6 5657 5485 5659 6930 6931 6932 6 5658 5485 5486 5660 5832 6932 6 5659 5486 5487 5661 5832 5833 6 5660 5487 5488 5662 5833 5834 6 5661 5488 5489 5622 5663 5834 6 5662 5622 5664 5834 5835 5836 6 5663 5622 5623 5624 5665 5836 6 5664 5624 5625 5666 5836 5814 6 5665 5625 5626 5667 5813 5814 6 5666 5626 5668 5813 5817 5818 6 5667 5626 5627 5669 5860 5818 6 5668 5627 5628 5670 5860 5861 6 5669 5628 5629 5671 5861 5862 6 5670 5629 5630 5672 5862 5863 6 5671 5630 5631 5673 5863 5864 6 5672 5631 5632 5674 5864 5865 6 5673 5632 5633 5675 5865 5866 6 5674 5633 5634 5676 5866 5867 6 5675 5634 5635 5677 5867 5868 6 5676 5635 5636 5637 5678 5868 6 5677 5637 5679 5868 5869 5694 6 5678 5637 5638 5680 5694 5870 6 5679 5638 5639 5681 5870 5871 6 5680 5639 5640 5682 5871 5872 6 5681 5640 5641 5683 5872 5689 6 5682 5641 5642 5684 5689 5688 6 5683 5642 5643 5685 5687 5688 6 5684 5643 5644 5686 5523 5687 6 5685 5644 5645 5647 5648 5523 5 5685 5523 5684 5688 5524 6 5684 5687 5524 5525 5689 5683 7 5688 5525 5526 5690 5872 5682 5683 5 5689 5526 5527 5691 5872 7 5690 5527 5528 5692 5872 5871 5693 5 5691 5528 5529 5531 5693 7 5692 5531 5532 5694 5871 5691 5870 7 5693 5532 5695 5869 5678 5679 5870 6 5694 5532 5533 5696 9699 5869 6 5695 5533 5539 5697 9700 9699 6 5696 5539 5540 5698 5719 9700 6 5697 5540 5699 5719 5720 5721 6 5698 5540 5541 5700 5721 5722 6 5699 5541 5701 5702 5722 5723 5 5700 5541 5702 5546 9796 7 5700 5701 5546 5547 5548 5703 5723 6 5702 5548 5704 5723 5724 5728 6 5703 5548 5549 5705 5728 5729 6 5704 5549 5550 5706 5729 5730 6 5705 5550 5552 5707 5733 5730 6 5706 5552 5708 5733 5734 5735 6 5707 5552 5553 5709 5738 5735 6 5708 5553 5555 5710 5738 5739 6 5709 5555 5557 5711 5748 5739 6 5710 5557 5712 5713 5748 5749 6 5711 5557 5713 5714 5715 5558 6 5711 5712 5714 5749 5750 5754 7 5713 5712 5715 5718 5565 5754 5567 6 5714 5712 5558 5716 5717 5718 6 5715 5558 5717 5561 5560 5559 6 5715 5716 5718 5563 5562 5561 5 5715 5717 5563 5565 5714 7 5697 5698 5720 9697 5866 9698 9700 6 5719 5698 5721 9697 9696 9701 6 5720 5698 5699 5722 9701 9702 7 5721 5699 5700 5723 5724 5725 9702 5 5722 5700 5702 5703 5724 7 5723 5703 5722 5725 5726 5727 5728 6 5722 5724 5726 6096 9702 9703 6 5725 5724 5727 6096 6097 6098 6 5726 5724 5728 6098 5731 5729 5 5727 5724 5703 5704 5729 6 5728 5704 5705 5730 5731 5727 6 5729 5705 5731 5732 5733 5706 7 5729 5730 5732 6098 5727 6099 6100 6 5731 5730 5733 6100 6101 6102 6 5732 5730 5706 5707 5734 6102 6 5733 5707 5735 5736 6102 6103 6 5734 5707 5736 5737 5738 5708 6 5734 5735 5737 6106 6103 6107 6 5736 5735 5738 6107 6108 5740 6 5737 5735 5708 5709 5739 5740 6 5738 5709 5740 5741 5748 5710 6 5738 5739 5741 5742 6108 5737 6 5740 5739 5742 5743 5747 5748 6 5740 5741 5743 5744 6108 6109 6 5742 5741 5744 5745 5746 5747 6 5742 5743 5745 6112 6109 6113 6 5744 5743 5746 6113 6114 6115 6 5745 5743 5747 5751 6122 6115 6 5746 5743 5741 5748 5749 5751 6 5747 5741 5739 5710 5711 5749 6 5748 5711 5713 5750 5747 5751 6 5749 5713 5751 5752 5753 5754 6 5747 5749 5746 5750 5752 6122 5 5751 5750 5753 6122 5950 6 5752 5750 5754 5569 5755 5950 6 5753 5750 5713 5714 5569 5567 6 5753 5569 5570 5756 5757 5950 6 5755 5570 5757 5758 5759 5771 6 5755 5756 5758 5950 5951 5952 6 5757 5756 5759 5760 5952 5953 6 5758 5756 5760 5761 5762 5771 6 5758 5759 5761 5953 5954 5958 6 5760 5759 5762 5763 5764 5958 6 5761 5759 5763 5767 5768 5771 6 5761 5762 5764 5765 5766 5767 6 5761 5763 5765 5958 5959 5989 6 5764 5763 5766 5990 5989 5991 6 5765 5763 5767 5991 5992 5777 6 5766 5763 5762 5768 5769 5777 6 5767 5762 5769 5770 5571 5771 6 5767 5768 5770 5773 5776 5777 6 5769 5768 5571 5572 5772 5773 6 5571 5768 5570 5762 5756 5759 6 5770 5572 5573 5574 5575 5773 7 5772 5575 5774 5593 5776 5770 5769 6 5773 5575 5576 5595 5591 5593 6 5590 5577 5587 5582 5580 5578 5 5773 5593 5594 5777 5769 7 5776 5594 5778 5992 5766 5769 5767 6 5777 5594 5779 5993 5992 5783 6 5778 5594 5592 5596 5780 5783 6 5779 5596 5597 5600 5781 5783 6 5780 5600 5782 5783 5784 5785 6 5781 5600 5601 5785 5786 5790 6 5780 5781 5784 5993 5778 5779 6 5783 5781 5785 5994 5993 5997 7 5784 5781 5782 5786 5787 5997 5998 6 5785 5782 5787 5788 5789 5790 6 5785 5786 5788 5998 5999 6000 6 5787 5786 5789 6003 6000 6004 6 5788 5786 5790 6010 6004 6200 6 5789 5786 5782 5601 5791 6200 6 5790 5601 5602 5792 5793 6200 6 5791 5602 5793 5794 5795 5604 6 5791 5792 5794 6199 6200 6198 6 5793 5792 5795 6198 6201 6222 6 5794 5792 5604 5796 6222 6220 6 5795 5604 5605 5797 5798 6220 6 5796 5605 5798 5799 5608 5607 6 5796 5797 5799 5800 6219 6220 6 5798 5797 5608 5800 5801 5611 6 5798 5799 5801 5802 5803 6219 7 5800 5799 5611 5610 5802 5806 5807 6 5800 5801 5803 5804 5805 5806 6 5800 5802 5804 6218 6210 6219 6 5803 5802 5805 5824 5825 6218 6 5804 5802 5806 5824 5831 5840 6 5805 5802 5801 5807 5809 5840 5 5806 5801 5610 5808 5809 5 5807 5610 5355 5357 5809 7 5808 5357 5359 5810 5840 5806 5807 6 5809 5359 5811 5839 5840 5887 7 5810 5359 5364 5365 5812 5886 5887 6 5811 5365 5885 5886 5888 5403 6 5666 5667 5814 5815 5816 5817 6 5666 5813 5815 5836 5665 5843 6 5814 5813 5816 5843 5844 5845 6 5815 5813 5817 5820 5821 5845 6 5816 5813 5667 5818 5819 5820 6 5817 5667 5819 5860 5858 5668 6 5817 5818 5820 5823 5858 5855 6 5817 5819 5816 5821 5822 5823 6 5816 5820 5822 5845 5846 5847 6 5821 5820 5823 5853 5850 5847 6 5822 5820 5819 5853 5854 5855 6 5804 5805 5825 5826 5827 5831 5 5804 5824 5826 6217 6218 7 5825 5824 5827 5828 6217 6216 6022 6 5826 5824 5828 5829 5830 5831 6 5826 5827 5829 6020 6021 6022 6 5828 5827 5830 5837 5873 6020 6 5829 5827 5831 5837 5838 5839 6 5830 5827 5824 5805 5839 5840 6 5659 5660 5833 6932 6933 6934 6 5832 5660 5661 5834 5841 6934 6 5833 5661 5662 5663 5835 5841 6 5834 5663 5836 5841 5842 5843 6 5835 5663 5664 5665 5814 5843 6 5829 5830 5838 5873 5874 5884 6 5837 5830 5839 5886 5884 5887 6 5838 5830 5831 5840 5810 5887 6 5839 5831 5810 5809 5806 5805 6 5833 5834 5835 5842 6934 6935 6 5841 5835 5843 6935 6936 5844 6 5842 5835 5836 5814 5815 5844 6 5843 5815 5845 6019 6936 5842 6 5844 5815 5816 5821 5846 6019 6 5845 5821 5847 5848 6019 6941 6 5846 5821 5848 5849 5850 5822 6 5846 5847 5849 6941 6942 6943 6 5848 5847 5850 5851 6946 6943 6 5849 5847 5851 5852 5853 5822 5 5849 5850 5852 6946 6386 6 5851 5850 5853 6104 6105 6386 6 5852 5850 5822 5823 5854 6104 6 5853 5823 5855 5856 6101 6104 6 5854 5823 5856 5857 5858 5819 6 5854 5855 5857 6099 6100 6101 6 5856 5855 5858 5859 6385 6099 6 5857 5855 5859 5860 5818 5819 6 5857 5858 5860 5861 6384 6385 6 5859 5858 5818 5668 5669 5861 6 5860 5669 5670 5862 6384 5859 6 5861 5670 5671 5863 9704 6384 6 5862 5671 5672 5864 9695 9704 6 5863 5672 5673 5865 9695 9696 6 5864 5673 5674 5866 9696 9697 7 5865 5674 5675 5867 9697 5719 9698 5 5866 5675 5676 5868 9698 7 5867 5676 5677 5678 5869 9698 9699 5 5868 5678 5694 5695 9699 5 5694 5679 5680 5871 5693 6 5870 5680 5681 5872 5691 5693 6 5871 5681 5682 5689 5690 5691 6 5829 5837 5874 5875 9737 6020 6 5873 5837 5875 5876 5883 5884 6 5873 5874 5876 5877 9737 6042 6 5875 5874 5877 5878 5879 5883 6 5875 5876 5878 6049 6042 6043 6 5877 5876 5879 5880 6050 6049 6 5878 5876 5880 5881 5882 5883 6 5878 5879 5881 6050 6051 5889 6 5880 5879 5882 5401 5400 5889 6 5881 5879 5883 5885 5888 5401 6 5882 5879 5876 5874 5884 5885 6 5883 5874 5837 5885 5886 5838 6 5883 5884 5886 5812 5882 5888 6 5885 5884 5838 5812 5811 5887 5 5811 5886 5838 5839 5810 5 5882 5885 5812 5403 5401 6 5881 5400 5890 6054 6051 5880 6 5889 5400 5398 5891 5892 6054 6 5890 5398 5892 5893 5894 5397 6 5890 5891 5893 6057 6054 6058 6 5892 5891 5894 6058 6059 6060 6 5893 5891 5397 5895 5896 6060 6 5894 5397 5896 5897 5900 5396 6 5894 5895 5897 5898 6060 6062 6 5896 5895 5898 5899 4890 5900 6 5896 5897 5899 5901 6062 6063 6 5898 5897 4890 4891 5901 5902 7 4890 5897 5895 5396 5394 5373 4889 6 5898 5899 5902 6066 6063 6067 6 5901 5899 4891 4893 5903 6067 6 5902 4893 5904 5905 5906 6067 6 5903 4893 5905 5912 5913 4894 6 5903 5904 5906 5907 5908 5912 6 5903 5905 5907 6067 6071 6068 7 5906 5905 5908 5909 6076 6073 6071 6 5907 5905 5909 5910 5911 5912 5 5907 5908 5910 5935 6076 7 5909 5908 5911 5933 5930 5934 5935 6 5910 5908 5912 5933 9753 5916 6 5911 5908 5905 5904 5913 5916 6 5912 5904 4894 5914 5915 5916 6 5913 4894 4895 4897 4900 5915 6 5914 4900 5913 5916 5917 5918 6 5913 5915 5917 5912 9753 5911 6 5916 5915 5918 9753 9756 9759 6 5917 5915 4900 4901 5919 9759 7 5918 4901 4903 3672 3952 5920 9759 6 5919 3952 3950 5921 9756 9759 5 5920 3950 3949 5922 9756 6 5921 3949 5923 5931 5932 9756 6 5922 3949 3947 3963 5924 5931 6 5923 3963 3964 5925 5926 5931 6 5924 3964 3966 5926 5927 5943 6 5924 5925 5927 5928 5930 5931 6 5926 5925 5928 5929 5942 5943 5 5926 5927 5929 5930 5934 7 5928 5927 5936 5934 5937 5941 5942 7 5926 5928 5931 5932 5933 5910 5934 6 5926 5930 5932 5924 5923 5922 6 5931 5930 5922 5933 9753 9756 5 5932 5930 5910 5911 9753 6 5910 5930 5935 5936 5929 5928 6 5910 5934 5936 6075 6076 5909 6 5935 5934 5929 5937 5938 6075 6 5936 5929 5938 5939 5940 5941 5 5936 5937 5939 6075 6077 6 5938 5937 5940 6077 6078 6087 6 5939 5937 5941 6088 6087 6092 7 5940 5937 5929 5942 5945 6092 5947 5 5941 5929 5927 5943 5945 6 5942 5927 5925 3966 5944 5945 7 5943 3966 3967 5945 5946 3136 5948 6 5943 5944 5942 5941 5946 5947 5 5945 5944 5947 3135 3136 6 5945 5946 3135 6092 5941 3137 6 3136 5944 2094 2093 5949 3967 6 2093 5948 3967 3968 2489 2490 6 5755 5757 5951 5753 5752 6122 6 5950 5757 5952 6167 6121 6122 6 5951 5757 5758 5953 6167 6165 6 5952 5758 5760 5954 5955 6165 6 5953 5760 5955 5956 5957 5958 6 5953 5954 5956 6163 6162 6165 6 5955 5954 5957 5961 5968 6163 6 5956 5954 5958 5959 5960 5961 6 5957 5954 5760 5761 5764 5959 6 5958 5764 5957 5960 5964 5989 6 5957 5959 5961 5962 5963 5964 6 5957 5960 5962 5965 5968 5956 6 5961 5960 5963 5965 5966 5983 6 5962 5960 5964 5984 5983 5985 6 5963 5960 5959 5988 5985 5989 6 5961 5962 5966 5967 5968 5969 6 5965 5962 5967 5983 5981 5972 6 5965 5966 5969 5970 5971 5972 6 5961 5965 5956 5969 6164 6163 7 5968 5965 5967 5970 6157 6158 6164 6 5969 5967 5971 6448 6446 6157 6 5970 5967 5972 5973 6448 6449 6 5971 5967 5973 5974 5966 5981 6 5971 5972 5974 5975 5976 6449 6 5973 5972 5975 5979 5980 5981 6 5973 5974 5976 5977 5978 5979 6 5973 5975 5977 6449 6450 6451 6 5976 5975 5978 6451 6609 6610 6 5977 5975 5979 6610 6613 6614 6 5978 5975 5974 5980 6614 6615 6 5979 5974 5981 5982 6641 6615 6 5980 5974 5982 5983 5966 5972 6 5980 5981 5983 5984 6641 6642 6 5982 5981 5984 5963 5962 5966 6 5982 5983 5963 5985 5986 6642 6 5984 5963 5986 5987 5988 5964 6 5984 5985 5987 6644 6642 6169 6 5986 5985 5988 5995 6168 6169 6 5987 5985 5964 5989 5990 5995 6 5988 5964 5959 5990 5765 5764 6 5988 5989 5765 5991 5994 5995 6 5990 5765 5766 5992 5993 5994 5 5991 5766 5993 5778 5777 6 5991 5992 5778 5994 5784 5783 7 5991 5993 5784 5990 5995 5996 5997 6 5990 5994 5996 5987 5988 6168 6 5995 5994 5997 5998 5999 6168 5 5996 5994 5784 5785 5998 5 5996 5997 5999 5785 5787 7 5996 5998 5787 6000 6001 6170 6168 6 5999 5787 6001 6002 6003 5788 5 5999 6000 6002 6170 6171 6 6001 6000 6003 6171 6172 6006 6 6002 6000 5788 6004 6005 6006 6 6003 5788 6005 6009 6010 5789 6 6003 6004 6006 6007 6008 6009 6 6003 6005 6007 6172 6002 6173 6 6006 6005 6008 6011 6173 6174 6 6007 6005 6009 6011 6012 6016 6 6008 6005 6004 6010 6018 6016 6 6009 6004 5789 6199 6018 6200 6 6007 6008 6012 6013 6180 6174 6 6011 6008 6013 6014 6015 6016 6 6011 6012 6014 6181 6180 6187 6 6013 6012 6015 6191 6188 6187 6 6014 6012 6016 6017 6191 6192 6 6015 6012 6017 6018 6009 6008 6 6015 6016 6018 6192 6195 6196 6 6017 6016 6009 6199 6196 6010 6 5844 5845 5846 6938 6936 6941 6 5828 5829 6021 9737 6039 5873 6 5828 6020 6022 6023 6024 6039 6 5828 6021 6023 6216 5826 6223 6 6022 6021 6024 6025 6026 6223 6 6023 6021 6025 6038 6029 6039 6 6023 6024 6026 6027 6028 6029 6 6023 6025 6027 6223 6226 6224 6 6026 6025 6028 6226 6227 6033 6 6027 6025 6029 6030 6032 6033 6 6028 6025 6030 6031 6038 6024 6 6028 6029 6031 6032 6034 6035 6 6030 6029 6035 6036 6037 6038 6 6028 6030 6033 6034 6248 6240 6 6028 6032 6227 6027 6228 6240 6 6032 6030 6035 6248 6247 6249 6 6034 6030 6031 6036 6249 6250 6 6035 6031 6037 6250 6264 6265 6 6036 6031 6038 6040 6041 6265 6 6037 6031 6029 6024 6039 6040 6 6038 6024 6040 9737 6020 6021 6 6038 6039 6037 6041 6042 9737 7 6037 6040 6042 6043 6044 6266 6265 6 6041 6040 6043 9737 5875 5877 6 6041 6042 6044 6045 6049 5877 5 6041 6043 6045 6046 6266 6 6044 6043 6046 6047 6048 6049 7 6044 6045 6047 6263 6266 6262 6267 6 6046 6045 6048 6270 6267 6281 6 6047 6045 6049 6050 6052 6281 6 6048 6045 6043 6050 5878 5877 6 6048 6049 5878 5880 6051 6052 6 6050 5880 6052 6053 6054 5889 6 6050 6051 6053 6055 6281 6048 6 6052 6051 6054 6055 6056 6057 6 6053 6051 5889 5890 6057 5892 7 6052 6053 6056 6280 6281 6279 6282 6 6055 6053 6057 6284 6282 6285 6 6056 6053 6054 5892 6058 6285 6 6057 5892 5893 6059 6061 6285 6 6058 5893 6060 6061 6288 6289 6 6059 5893 5894 5896 6062 6289 6 6058 6059 6285 6286 6287 6288 6 6060 5896 5898 6063 6064 6289 6 6062 5898 6064 6065 6066 5901 7 6062 6063 6065 6289 6292 6290 6293 5 6064 6063 6066 6293 6069 6 6065 6063 5901 6067 6068 6069 6 6066 5901 5902 5903 5906 6068 6 6066 6067 6069 6070 6071 5906 7 6066 6068 6070 6293 6065 6294 6295 5 6069 6068 6071 6072 6295 6 6070 6068 5906 6072 6073 5907 7 6070 6071 6073 6074 6297 6295 6298 6 6072 6071 6074 6075 6076 5907 6 6072 6073 6075 6298 6079 6077 7 6074 6073 6076 5935 5936 5938 6077 5 6075 6073 5935 5909 5907 6 6075 5938 5939 6078 6079 6074 6 6077 5939 6079 6080 6087 6084 6 6077 6078 6080 6081 6298 6074 6 6079 6078 6081 6082 6083 6084 6 6079 6080 6082 6298 6299 6302 6 6081 6080 6083 6302 6303 6315 6 6082 6080 6084 6085 6314 6315 6 6083 6080 6085 6086 6087 6078 7 6083 6084 6086 6089 6314 6316 6319 6 6085 6084 6087 6088 6089 6090 6 6086 6084 6088 5940 5939 6078 6 6086 6087 5940 6090 6091 6092 6 6085 6086 6090 6095 3770 6319 7 6089 6086 6088 6091 3138 6093 6095 5 6090 6088 6092 3137 3138 6 6091 6088 5940 5941 5947 3137 6 6090 3138 3139 6094 3769 6095 7 6093 3139 3769 3767 2086 2085 9777 5 6093 3769 3770 6089 6090 6 5725 5726 6097 6384 9703 9704 6 6096 5726 6098 6099 6384 6385 5 6097 5726 5727 5731 6099 7 6097 6098 5731 6100 6385 5857 5856 5 6099 5731 5732 6101 5856 7 6100 5732 6102 6103 6104 5856 5854 5 6101 5732 5733 5734 6103 7 6102 5734 6101 6104 6105 6106 5736 6 6101 6103 6105 5854 5853 5852 6 6104 6103 6106 5852 6386 6387 5 6105 6103 5736 6107 6387 7 6106 5736 5737 6108 6387 6388 6110 6 6107 5737 5740 5742 6109 6110 6 6108 5742 6110 6111 6112 5744 6 6108 6109 6111 6388 6107 6389 6 6110 6109 6112 6389 6390 6391 6 6111 6109 5744 6113 6394 6391 6 6112 5744 5745 6114 6116 6394 6 6113 5745 6115 6116 6117 6118 6 6114 5745 6121 6118 6122 5746 6 6113 6114 6117 6394 9738 9739 6 6116 6114 6118 6119 6123 9739 6 6117 6114 6119 6120 6121 6115 6 6117 6118 6120 6123 6124 6166 5 6119 6118 6121 6167 6166 6 6120 6118 6115 6122 6167 5951 7 6121 6115 5746 5751 5752 5950 5951 6 6117 6119 6124 6125 6132 9739 6 6123 6119 6125 6126 6166 6161 6 6123 6124 6126 6127 6128 6132 6 6125 6124 6127 6153 6161 6159 6 6125 6126 6128 6129 6152 6153 6 6125 6127 6129 6130 6131 6132 6 6128 6127 6130 6151 6150 6152 6 6128 6129 6131 6151 6138 6135 6 6128 6130 6132 6133 6134 6135 6 6128 6131 6133 9739 6123 6125 6 6132 6131 6134 6399 9738 9739 6 6133 6131 6135 6136 6398 6399 6 6134 6131 6136 6137 6138 6130 6 6134 6135 6137 6398 6400 6401 6 6136 6135 6138 6139 6401 6402 6 6137 6135 6139 6140 6151 6130 6 6137 6138 6140 6141 6402 6403 6 6139 6138 6141 6142 6149 6151 6 6139 6140 6142 6143 6403 6404 6 6141 6140 6143 6144 6145 6149 6 6141 6142 6144 6404 6405 6406 6 6143 6142 6145 6146 6406 6437 6 6144 6142 6146 6147 6148 6149 6 6144 6145 6147 6438 6437 6439 6 6146 6145 6148 6439 6440 6441 6 6147 6145 6149 6150 6441 6442 6 6148 6145 6142 6140 6150 6151 6 6148 6149 6151 6129 6152 6442 6 6150 6149 6140 6138 6130 6129 6 6150 6129 6127 6153 6154 6442 6 6152 6127 6126 6154 6155 6159 6 6152 6153 6155 6156 6442 6443 6 6154 6153 6156 6157 6158 6159 6 6154 6155 6157 6445 6443 6446 6 6156 6155 6158 5970 6446 5969 6 6157 6155 6159 6160 5969 6164 6 6158 6155 6153 6160 6161 6126 6 6158 6159 6161 6162 6163 6164 6 6160 6159 6126 6162 6124 6166 6 6160 6161 6163 5955 6165 6166 6 6160 6162 6164 5968 5956 5955 5 6160 6163 5968 6158 5969 6 5955 6162 6166 6167 5952 5953 7 6165 6162 6167 6120 6119 6124 6161 6 6165 6166 6120 6121 5951 5952 6 5995 5996 5987 6169 6170 5999 6 5987 6168 6170 6644 5986 9784 6 6169 6168 5999 6001 6171 9784 7 6170 6001 6002 6172 6790 9784 9783 7 6171 6002 6006 6173 6789 6787 6790 6 6172 6006 6007 6174 6175 6789 6 6173 6007 6175 6176 6011 6180 6 6173 6174 6176 6177 6785 6789 6 6175 6174 6177 6178 6179 6180 6 6175 6176 6178 6783 6782 6785 6 6177 6176 6179 9797 6783 9798 6 6178 6176 6180 6181 6182 9797 6 6179 6176 6181 6013 6011 6174 6 6179 6180 6182 6183 6187 6013 6 6179 6181 6183 6184 9797 9800 6 6182 6181 6184 6185 6186 6187 6 6182 6183 6185 6363 6646 9800 6 6184 6183 6186 6363 6364 6368 6 6185 6183 6187 6188 6189 6368 6 6186 6183 6181 6188 6013 6014 6 6186 6187 6189 6190 6191 6014 6 6186 6188 6190 6368 6369 6370 6 6189 6188 6191 6370 6373 6193 6 6190 6188 6014 6015 6192 6193 6 6191 6015 6017 6193 6194 6195 6 6191 6192 6194 6373 6190 6374 6 6193 6192 6195 6383 6374 6204 6 6194 6192 6017 6196 6197 6204 6 6195 6017 6197 6198 6199 6018 6 6195 6196 6198 6201 6202 6204 6 6197 6196 6199 5793 5794 6201 6 6198 6196 6018 6010 6200 5793 6 6199 6010 5793 5791 5790 5789 6 6198 5794 6197 6202 6203 6222 6 6197 6201 6203 6204 6205 6206 6 6202 6201 6206 6207 6221 6222 6 6197 6202 6205 6383 6194 6195 6 6204 6202 6206 6383 6460 6382 6 6205 6202 6203 6207 6208 6460 6 6206 6203 6208 6209 6210 6221 6 6206 6207 6209 6211 6212 6460 6 6208 6207 6210 6211 6215 6218 6 6209 6207 5803 6218 6219 6221 6 6208 6209 6212 6213 6214 6215 6 6208 6211 6213 6457 6459 6460 7 6212 6211 6214 6224 6225 6455 6457 5 6213 6211 6215 6216 6224 6 6214 6211 6209 6216 6217 6218 7 6214 6215 6217 5826 6022 6223 6224 5 6216 6215 6218 5825 5826 7 6217 6215 5825 5804 5803 6210 6209 6 5803 6210 5800 5798 6220 6221 6 5798 6219 6221 6222 5795 5796 6 6220 6219 6210 6207 6203 6222 6 6220 6221 6203 6201 5794 5795 5 6216 6022 6023 6026 6224 7 6216 6223 6214 6213 6225 6226 6026 7 6213 6224 6226 6455 6232 6227 6229 5 6225 6224 6026 6027 6227 6 6226 6027 6033 6228 6229 6225 6 6227 6033 6229 6230 6239 6240 6 6227 6228 6230 6231 6232 6225 6 6229 6228 6231 6238 6235 6239 6 6229 6230 6232 6233 6234 6235 6 6229 6231 6233 6455 6225 6456 6 6232 6231 6234 6456 6461 6462 6 6233 6231 6235 6236 6462 6463 6 6234 6231 6236 6237 6238 6230 6 6234 6235 6237 6463 6464 6472 6 6236 6235 6238 6474 6472 6477 6 6237 6235 6230 6239 6477 6242 6 6238 6230 6228 6240 6241 6242 6 6239 6228 6241 6248 6032 6033 6 6239 6240 6242 6243 6244 6248 6 6239 6241 6243 6477 6238 6478 6 6242 6241 6244 6245 6478 6480 6 6243 6241 6245 6246 6247 6248 6 6243 6244 6246 6482 6480 6483 6 6245 6244 6247 6483 6254 6252 6 6246 6244 6248 6034 6249 6252 6 6247 6244 6241 6240 6032 6034 6 6247 6034 6035 6250 6251 6252 6 6249 6035 6036 6251 6264 6256 6 6249 6250 6252 6253 6255 6256 6 6249 6251 6253 6254 6246 6247 6 6252 6251 6254 6255 6485 6486 6 6252 6253 6483 6246 6484 6485 6 6253 6251 6256 6257 6258 6486 6 6255 6251 6257 6264 6261 6250 6 6255 6256 6258 6259 6260 6261 6 6255 6257 6259 6486 6494 6495 6 6258 6257 6260 6495 6496 6497 7 6259 6257 6261 6262 6497 6274 6268 6 6260 6257 6262 6263 6264 6256 6 6260 6261 6263 6046 6267 6268 6 6262 6261 6264 6265 6266 6046 6 6263 6261 6265 6256 6250 6036 6 6263 6264 6266 6036 6041 6037 5 6263 6265 6046 6044 6041 6 6046 6262 6268 6269 6270 6047 6 6262 6267 6269 6273 6274 6260 6 6268 6267 6270 6271 6272 6273 6 6269 6267 6047 6271 6280 6281 6 6269 6270 6272 6278 6279 6280 6 6269 6271 6273 6276 6277 6278 6 6269 6272 6268 6274 6275 6276 6 6268 6273 6275 6497 6260 6498 6 6274 6273 6276 6501 6498 6502 6 6275 6273 6272 6277 6502 6503 6 6276 6272 6278 6503 6504 6505 6 6277 6272 6271 6279 6505 6506 7 6278 6271 6280 6055 6282 6283 6506 5 6279 6271 6270 6281 6055 6 6280 6270 6047 6055 6052 6048 5 6279 6055 6283 6284 6056 6 6279 6282 6284 6507 6506 6508 6 6283 6282 6056 6285 6508 6286 6 6284 6056 6057 6058 6061 6286 6 6285 6061 6287 6508 6284 6509 7 6286 6061 6288 6509 6329 6512 6291 6 6287 6061 6059 6289 6290 6291 6 6288 6059 6060 6062 6064 6290 5 6288 6289 6291 6292 6064 5 6288 6290 6292 6329 6287 7 6291 6290 6064 6293 6327 6328 6329 6 6292 6064 6065 6069 6294 6327 6 6293 6069 6295 6296 6326 6327 6 6294 6069 6070 6296 6297 6072 6 6294 6295 6297 6300 6325 6326 6 6296 6295 6072 6298 6299 6300 6 6297 6072 6074 6079 6081 6299 6 6298 6081 6297 6300 6301 6302 5 6297 6299 6301 6325 6296 6 6300 6299 6302 6304 6324 6325 6 6301 6299 6081 6082 6303 6304 6 6302 6082 6304 6305 6309 6315 6 6302 6303 6305 6306 6324 6301 6 6304 6303 6306 6307 6308 6309 6 6304 6305 6307 6324 6338 6339 6 6306 6305 6308 6339 6342 6343 6 6307 6305 6309 6310 6343 6344 6 6308 6305 6303 6310 6311 6315 6 6308 6309 6311 6312 6344 6347 6 6310 6309 6312 6313 6314 6315 6 6310 6311 6313 6322 6323 6347 6 6312 6311 6314 6316 6317 6322 6 6313 6311 6315 6083 6085 6316 6 6314 6311 6083 6082 6303 6309 6 6314 6085 6313 6317 6318 6319 6 6313 6316 6318 6320 6321 6322 6 6317 6316 6319 3770 1572 6320 5 6318 6316 3770 6085 6089 5 6318 1572 1573 6321 6317 7 6320 1573 1574 6317 6322 6323 6361 5 6317 6321 6323 6313 6312 7 6322 6321 6312 6348 6347 6349 6361 6 6304 6306 6301 6325 6336 6338 7 6301 6324 6300 6296 6326 6337 6336 6 6296 6325 6294 6327 6337 6332 6 6294 6326 6293 6292 6328 6332 6 6292 6327 6329 6330 6331 6332 6 6292 6328 6330 6512 6287 6291 6 6329 6328 6331 6511 6512 6520 7 6330 6328 6332 6333 6334 6520 6519 6 6331 6328 6333 6337 6326 6327 6 6331 6332 6334 6335 6336 6337 5 6331 6333 6335 6519 6521 6 6334 6333 6336 6521 6529 6530 7 6335 6333 6337 6325 6324 6338 6530 5 6336 6333 6332 6326 6325 6 6336 6324 6306 6339 6340 6530 6 6338 6306 6307 6340 6341 6342 6 6338 6339 6341 6531 6528 6530 5 6340 6339 6342 6546 6531 6 6341 6339 6307 6343 6547 6546 6 6342 6307 6308 6344 6345 6547 6 6343 6308 6345 6346 6347 6310 6 6343 6344 6346 6547 6544 6548 6 6345 6344 6347 6348 6550 6548 6 6346 6344 6348 6323 6312 6310 6 6346 6347 6323 6349 6350 6550 6 6348 6323 6350 6351 6360 6361 6 6348 6349 6351 6352 6551 6550 6 6350 6349 6352 6353 6354 6360 6 6350 6351 6353 6553 6551 6554 6 6352 6351 6354 6355 6356 6554 6 6353 6351 6355 1590 2477 6360 7 6353 6354 6356 6357 1595 1591 1590 6 6353 6355 6357 6358 6554 6555 5 6356 6355 6358 6359 1595 6 6356 6357 6359 6555 6556 3972 6 6358 6357 1595 3972 3971 1596 6 2477 6354 6351 6349 6361 6362 6 6360 6349 6362 1574 6321 6323 5 6360 6361 1574 2476 2477 6 6184 6185 6364 6365 6645 6646 6 6363 6185 6365 6366 6367 6368 6 6363 6364 6366 6645 6649 6650 6 6365 6364 6367 9728 9674 6650 6 6366 6364 6368 9728 9729 6369 6 6367 6364 6185 6186 6189 6369 6 6368 6189 6370 6371 9729 6367 6 6369 6189 6190 6371 6372 6373 6 6369 6370 6372 9729 9730 9731 6 6371 6370 6373 6375 6376 9731 6 6372 6370 6190 6193 6374 6375 6 6373 6193 6375 6383 6381 6194 6 6373 6374 6372 6376 6377 6381 6 6372 6375 6377 6378 6468 9731 6 6376 6375 6378 6379 6380 6381 5 6376 6377 6379 9694 6468 7 6378 6377 6380 6458 6456 6461 9694 6 6379 6377 6381 6382 6458 6459 6 6380 6377 6382 6383 6374 6375 6 6380 6381 6383 6460 6459 6205 6 6382 6381 6374 6194 6204 6205 7 6096 6097 6385 9704 5862 5861 5859 5 6384 6097 6099 5857 5859 6 5852 6105 6387 6946 5851 6947 7 6386 6105 6106 6107 6388 6947 6948 5 6387 6107 6110 6389 6948 6 6388 6110 6111 6390 6948 6949 6 6389 6111 6391 6392 6949 6950 6 6390 6111 6392 6393 6394 6112 6 6390 6391 6393 6395 6396 6950 6 6392 6391 6394 6395 9738 6399 6 6393 6391 6112 6113 6116 9738 6 6392 6393 6396 6397 6398 6399 6 6392 6395 6397 6950 6951 6952 6 6396 6395 6398 6952 6953 6400 6 6397 6395 6399 6134 6136 6400 6 6398 6395 6134 6133 9738 6393 6 6398 6136 6401 6953 6397 6954 6 6400 6136 6137 6402 6954 6955 6 6401 6137 6139 6403 6955 6961 6 6402 6139 6141 6404 6961 6411 6 6403 6141 6143 6405 6409 6411 6 6404 6143 6406 6407 6408 6409 6 6405 6143 6144 6407 6437 6435 6 6405 6406 6408 6432 6430 6435 6 6405 6407 6409 6410 6429 6430 6 6405 6408 6410 6404 6411 6412 6 6409 6408 6412 6413 6414 6429 6 6404 6409 6412 6960 6961 6403 6 6411 6409 6410 6413 6960 6962 6 6412 6410 6414 6415 6964 6962 6 6413 6410 6415 6416 6428 6429 6 6413 6414 6416 6417 6964 6965 6 6415 6414 6417 6418 6419 6428 6 6415 6416 6418 6559 6560 6965 6 6417 6416 6419 6420 6559 6566 6 6418 6416 6420 6421 6428 6425 6 6418 6419 6421 6422 6574 6566 6 6420 6419 6422 6423 6424 6425 6 6420 6421 6423 6574 6573 6575 6 6422 6421 6424 6581 6578 6575 6 6423 6421 6425 6426 6581 6582 6 6424 6421 6426 6427 6428 6419 6 6424 6425 6427 6585 6582 6431 6 6426 6425 6428 6429 6430 6431 6 6427 6425 6419 6416 6414 6429 6 6428 6414 6410 6408 6427 6430 6 6427 6429 6408 6431 6432 6407 6 6427 6430 6432 6433 6585 6426 6 6431 6430 6407 6433 6434 6435 6 6431 6432 6434 6585 6586 6587 6 6433 6432 6435 6436 6590 6587 6 6434 6432 6436 6437 6406 6407 6 6434 6435 6437 6438 6590 6591 6 6436 6435 6406 6438 6146 6144 6 6436 6437 6146 6439 6591 6592 6 6438 6146 6147 6440 6592 6593 6 6439 6147 6441 6596 6593 6444 6 6440 6147 6148 6442 6443 6444 6 6441 6148 6150 6152 6154 6443 6 6442 6154 6441 6444 6445 6156 6 6441 6443 6445 6596 6440 6454 6 6444 6443 6156 6446 6447 6454 6 6445 6156 6447 6448 5970 6157 6 6445 6446 6448 6450 6453 6454 6 6447 6446 5970 5971 6449 6450 5 6448 5971 5973 5976 6450 7 6449 5976 6448 6451 6452 6453 6447 7 6450 5976 5977 6452 6608 6599 6609 6 6450 6451 6453 6597 6598 6599 5 6450 6452 6447 6454 6597 6 6447 6453 6596 6444 6445 6597 5 6213 6225 6232 6456 6457 7 6455 6232 6457 6458 6379 6233 6461 6 6455 6456 6458 6459 6212 6213 5 6457 6456 6379 6380 6459 6 6458 6380 6457 6212 6460 6382 6 6212 6459 6208 6382 6205 6206 5 6456 6233 6462 9694 6379 6 6461 6233 6234 6463 6466 9694 6 6462 6234 6236 6464 6465 6466 6 6463 6236 6465 6470 6471 6472 6 6463 6464 6466 6467 6469 6470 6 6463 6465 6462 6467 6468 9694 6 6466 6465 6468 6469 9732 9733 7 6466 6467 9694 6378 6376 9731 9732 6 6467 6465 6470 7510 7511 9733 7 6469 6465 6464 6471 7508 7510 7507 6 6470 6464 6472 6473 7507 7506 6 6471 6464 6236 6473 6474 6237 6 6471 6472 6474 6475 7505 7506 6 6473 6472 6237 6475 6476 6477 7 6473 6474 6476 7504 7505 9693 9781 6 6475 6474 6477 6478 6479 9693 6 6476 6474 6237 6238 6242 6478 6 6477 6242 6243 6476 6479 6480 7 6476 6478 6480 6481 9693 9779 9780 6 6479 6478 6243 6481 6482 6245 6 6479 6480 6482 6488 9706 9779 6 6481 6480 6245 6483 6487 6488 6 6482 6245 6246 6254 6484 6487 5 6483 6254 6485 6487 6490 7 6484 6254 6253 6486 6490 6491 6492 7 6485 6253 6255 6258 6492 6493 6494 6 6483 6484 6482 6488 6489 6490 5 6482 6487 6489 9706 6481 7 6488 6487 6490 9705 2195 2196 9706 6 6489 6487 6484 6485 6491 9705 6 6490 6485 6492 2252 2253 9705 6 6491 6485 6486 6493 2252 9707 6 6492 6486 6494 9707 3336 9708 5 6493 6486 6258 6495 9708 6 6494 6258 6259 6496 9708 6500 6 6495 6259 6497 6498 6499 6500 5 6496 6259 6260 6274 6498 6 6497 6274 6496 6499 6501 6275 6 6496 6498 6500 2512 2513 6501 7 6496 6499 2512 3335 9708 3882 6495 6 2513 6499 6498 6275 6502 9711 6 6501 6275 6276 6503 9710 9711 6 6502 6276 6277 6504 9709 9710 6 6503 6277 6505 6513 9709 9712 6 6504 6277 6278 6506 6507 6513 5 6505 6278 6507 6283 6279 7 6505 6506 6283 6508 6513 6514 6510 6 6507 6283 6284 6286 6509 6510 6 6508 6286 6287 6510 6511 6512 6 6508 6509 6511 6514 6507 6515 7 6510 6509 6512 6330 6515 6516 6520 5 6511 6509 6330 6329 6287 6 6504 6505 6507 6514 9712 9718 5 6513 6507 6510 6515 9718 7 6514 6510 6511 6516 6517 9718 9719 6 6515 6511 6517 6518 6519 6520 6 6515 6516 6518 9719 9720 6523 6 6517 6516 6519 6521 6522 6523 6 6518 6516 6520 6331 6334 6521 5 6519 6516 6511 6330 6331 7 6519 6334 6335 6518 6522 6526 6529 6 6518 6521 6523 6524 6525 6526 7 6518 6522 6524 2215 9720 6517 2214 5 6523 6522 6525 2214 3349 7 6524 6522 6526 6527 3349 3348 6533 6 6525 6522 6521 6527 6528 6529 6 6525 6526 6528 6531 6532 6533 6 6527 6526 6529 6531 6340 6530 5 6528 6526 6521 6335 6530 6 6529 6335 6336 6340 6528 6338 7 6527 6528 6532 6341 6546 6340 6535 6 6527 6531 6533 3864 6534 6535 5 6527 6532 3864 3348 6525 6 3864 6532 6535 6536 6537 6717 6 6534 6532 6536 6545 6546 6531 6 6534 6535 6537 6538 6545 6542 6 6534 6536 6538 6539 6716 6717 6 6537 6536 6539 6540 6541 6542 7 6537 6538 6540 6715 3888 3887 6716 6 6539 6538 6541 6715 6719 6720 6 6540 6538 6542 6543 6720 6709 6 6541 6538 6543 6544 6545 6536 6 6541 6542 6544 6548 6549 6709 6 6543 6542 6545 6547 6345 6548 6 6544 6542 6536 6535 6546 6547 6 6545 6535 6547 6342 6341 6531 6 6545 6546 6544 6342 6343 6345 6 6544 6345 6543 6549 6550 6346 6 6543 6548 6550 6551 6552 6709 6 6549 6548 6346 6348 6551 6350 6 6549 6550 6552 6553 6352 6350 6 6549 6551 6553 6706 6708 6709 6 6552 6551 6352 6554 6555 6706 5 6553 6352 6353 6356 6555 6 6554 6356 6358 6556 6553 6706 7 6555 6358 3972 6706 6707 9748 3492 6 3970 1598 1599 6558 4039 3969 6 6557 1599 4039 3765 613 612 6 6417 6418 6560 6561 6565 6566 6 6417 6559 6561 6562 6965 6966 6 6560 6559 6562 6563 6564 6565 6 6560 6561 6563 6966 6967 6968 6 6562 6561 6564 6986 6984 6968 6 6563 6561 6565 6986 6987 6568 6 6564 6561 6559 6566 6567 6568 6 6565 6559 6418 6567 6574 6420 6 6565 6566 6568 6569 6570 6574 6 6565 6567 6569 6987 6564 6988 6 6568 6567 6570 6571 6991 6988 6 6569 6567 6571 6572 6573 6574 6 6569 6570 6572 6998 6991 6999 6 6571 6570 6573 6576 7002 6999 6 6572 6570 6574 6422 6575 6576 6 6573 6570 6567 6566 6420 6422 6 6573 6422 6576 6577 6578 6423 6 6573 6575 6577 7004 7002 6572 6 6576 6575 6578 6579 7004 7005 6 6577 6575 6579 6580 6581 6423 6 6577 6578 6580 7005 7006 7007 6 6579 6578 6581 7007 7008 6583 6 6580 6578 6423 6424 6582 6583 6 6581 6424 6583 6584 6585 6426 6 6581 6582 6584 7008 6580 7009 6 6583 6582 6585 6721 7009 6586 6 6584 6582 6426 6431 6433 6586 6 6585 6433 6587 6588 6721 6584 6 6586 6433 6588 6589 6590 6434 6 6586 6587 6589 6721 6722 6729 6 6588 6587 6590 6729 6730 6731 6 6589 6587 6434 6436 6591 6731 6 6590 6436 6438 6592 6731 6732 6 6591 6438 6439 6593 6594 6732 6 6592 6439 6594 6595 6596 6440 6 6592 6593 6595 6732 6733 6734 7 6594 6593 6596 6601 6734 6598 6597 6 6595 6593 6440 6444 6454 6597 6 6596 6454 6453 6452 6598 6595 6 6597 6452 6599 6600 6601 6595 6 6598 6452 6600 6607 6608 6451 6 6598 6599 6601 6602 6603 6607 5 6598 6600 6602 6734 6595 6 6601 6600 6603 6604 6735 6734 6 6602 6600 6604 6605 6606 6607 7 6602 6603 6605 6735 6736 6737 6738 5 6604 6603 6606 6738 6739 7 6605 6603 6607 6739 6740 6749 6746 6 6606 6603 6600 6599 6608 6749 6 6607 6599 6451 6609 6748 6749 6 6608 6451 5977 6610 6611 6748 6 6609 5977 5978 6611 6612 6613 6 6609 6610 6612 6748 6747 6750 6 6611 6610 6613 6620 6621 6750 6 6612 6610 5978 6614 6617 6620 6 6613 5978 5979 6615 6616 6617 6 6614 5979 6616 6640 6641 5980 6 6614 6615 6617 6618 6639 6640 6 6614 6616 6618 6619 6620 6613 6 6617 6616 6619 6637 6638 6639 6 6617 6618 6620 6622 6623 6637 6 6617 6619 6613 6612 6621 6622 6 6612 6620 6622 6751 6750 6627 6 6621 6620 6619 6623 6624 6627 6 6622 6619 6624 6625 6636 6637 6 6622 6623 6625 6626 6627 6628 6 6624 6623 6626 6634 6635 6636 6 6624 6625 6628 6629 6633 6634 6 6622 6624 6628 6751 6621 6752 6 6627 6624 6626 6629 6630 6752 6 6628 6626 6630 6631 6632 6633 6 6628 6629 6631 6757 6754 6752 6 6630 6629 6632 6757 6758 6759 6 6631 6629 6633 6759 6767 6768 6 6632 6629 6626 6634 6768 6769 6 6633 6626 6625 6635 6769 6770 6 6634 6625 6636 6770 6771 6772 6 6635 6625 6623 6637 9786 6772 6 6636 6623 6619 6618 6638 9786 6 6637 6618 6639 6786 6784 9786 6 6638 6618 6616 6640 9778 6786 6 6639 6616 6615 6641 9778 6643 6 6640 6615 5980 5982 6642 6643 6 6641 5982 5984 6643 6644 5986 7 6641 6642 6644 9778 6640 6788 9783 6 6643 6642 5986 6169 9783 9784 6 6363 6365 6646 6647 6648 6649 6 6363 6645 6184 6647 9725 9800 6 6646 6645 6648 9724 9725 6656 6 6647 6645 6649 6653 6655 6656 6 6648 6645 6365 6650 6651 6653 6 6649 6365 6651 6652 9674 6366 6 6649 6650 6652 6653 6654 9671 6 6651 6650 9671 9672 9673 9674 6 6649 6651 6654 6648 6655 3174 6 6653 6651 9671 9692 3173 3174 6 6648 6653 3174 6656 3451 3176 6 6648 6655 3451 6657 9724 6647 6 6656 3451 6658 6659 9722 9724 6 6657 3451 6659 3180 6660 6668 6 6657 6658 6668 6669 6670 9722 6 6658 3180 6661 6664 6665 6668 6 6660 3180 3179 6662 6663 6664 6 6661 3179 3181 2859 2860 6663 5 6661 6662 6664 6667 2860 6 6661 6663 6660 6665 6666 6667 6 6660 6664 6666 6668 6669 6673 7 6665 6664 6667 6673 6674 4565 4564 6 6666 6664 6663 4564 6675 2860 5 6660 6665 6669 6659 6658 7 6668 6665 6659 6670 6671 6672 6673 6 6659 6669 6671 6775 6776 9722 6 6670 6669 6672 6774 6773 6775 6 6671 6669 6673 6674 6791 6774 5 6672 6669 6665 6666 6674 5 6673 6666 4565 6672 6791 6 4564 6667 4562 6676 2861 2860 6 4562 6675 2861 6677 4561 9793 6 6676 2861 2854 2855 6678 9793 6 6677 2855 6679 6680 6682 9793 5 6678 2855 6680 6681 2856 6 6678 6679 6681 6682 6683 6684 6 6680 6679 6686 6684 6687 2856 6 6678 6680 6683 9751 9762 9793 6 6682 6680 6684 5157 5158 9751 6 6683 6680 5157 6685 6686 6681 6 5157 6684 6686 6693 6694 6695 6 6685 6684 6681 6687 6688 6693 6 6686 6681 6688 6689 6690 2856 6 6686 6687 6689 6693 6697 6700 6 6688 6687 6690 6691 6700 6701 6 6689 6687 6691 6692 2857 2856 6 6689 6690 6692 6701 6703 2552 5 6691 6690 2857 2551 2552 6 6686 6688 6685 6694 6696 6697 6 6685 6693 6695 4524 4523 6696 5 6685 6694 4524 4533 5157 6 4523 6694 6693 6697 6698 6705 6 6696 6693 6688 6698 6699 6700 7 6696 6697 6699 6704 3506 3507 6705 6 6698 6697 6700 6701 6702 6704 5 6699 6697 6688 6689 6701 7 6700 6689 6691 6699 6702 2223 6703 6 6699 6701 2223 65 66 6704 5 2223 6701 6691 2552 2222 6 6699 6702 66 67 6698 3506 5 6698 3507 3508 4523 6696 7 6553 6555 6556 6707 6552 6708 9750 6 6706 6556 9748 3503 9749 9750 6 6552 6706 6709 6710 6711 9750 7 6552 6708 6710 6720 6541 6549 6543 6 6709 6708 6711 6712 6719 6720 7 6710 6708 6712 6713 3504 9749 9750 7 6710 6711 6713 3118 3120 6714 6719 6 6712 6711 3504 3505 3117 3118 6 6712 3120 3122 3888 6715 6719 5 6714 3888 6539 6540 6719 6 6539 3887 6537 6717 3863 6718 5 6537 6716 6534 3864 3863 6 3863 6716 3862 3343 3886 3887 6 6715 6540 6714 6712 6710 6720 5 6719 6540 6541 6710 6709 6 6586 6588 6722 6723 7009 6584 6 6721 6588 6723 6724 6728 6729 6 6721 6722 6724 6725 7010 7009 6 6723 6722 6725 6726 6727 6728 6 6723 6724 6726 7010 7011 7012 6 6725 6724 6727 7023 7012 7024 6 6726 6724 6728 7024 7027 7028 6 6727 6724 6722 6729 7028 7031 6 6728 6722 6588 6589 6730 7031 6 6729 6589 6731 7031 7032 7033 6 6730 6589 6590 6591 6732 7033 6 6731 6591 6592 6594 6733 7033 6 6732 6594 6734 6735 7033 7034 6 6733 6594 6735 6602 6601 6595 6 6733 6734 6602 6604 6736 7034 6 6735 6604 6737 7034 7035 7036 6 6736 6604 6738 6741 7036 7037 5 6737 6604 6605 6739 6741 7 6738 6605 6606 6740 6741 6742 6743 6 6739 6606 6743 6744 6745 6746 6 6737 6738 6739 6742 7037 7038 6 6741 6739 6743 7038 7039 7040 6 6742 6739 6740 6744 7040 7041 7 6743 6740 6745 7041 7042 6755 7043 5 6744 6740 6746 6747 7043 6 6745 6740 6747 6748 6749 6606 7 6745 6746 6748 6611 6750 6751 7043 6 6747 6746 6749 6608 6609 6611 5 6748 6746 6608 6606 6607 5 6747 6611 6751 6621 6612 7 6747 6750 6621 6627 6752 6753 7043 6 6751 6627 6753 6754 6630 6628 5 6751 6752 6754 6755 7043 6 6753 6752 6755 6756 6757 6630 7 6753 6754 6756 7042 6744 7043 7142 5 6755 6754 6757 7142 6760 6 6756 6754 6630 6631 6758 6760 6 6757 6631 6759 6760 6761 6762 6 6758 6631 6632 6762 6763 6767 6 6757 6758 6761 7142 6756 7143 6 6760 6758 6762 7143 7144 7145 6 6761 6758 6759 6763 6764 7145 6 6762 6759 6764 4560 6765 6767 6 6762 6763 4560 4552 7145 4551 6 4560 6763 4559 4566 6766 6767 5 4566 6765 6767 6791 6768 6 6766 6765 6763 6759 6632 6768 6 6767 6632 6633 6769 6791 6766 6 6768 6633 6634 6770 6774 6791 6 6769 6634 6635 6771 6773 6774 6 6770 6635 6772 6773 6778 6779 6 6771 6635 6779 6780 6636 9786 6 6770 6771 6774 6671 6775 6778 6 6770 6773 6671 6672 6791 6769 6 6671 6773 6670 6776 6777 6778 6 6670 6775 6777 9722 9723 9799 7 6776 6775 6778 6779 6781 9798 9799 5 6777 6775 6773 6771 6779 6 6778 6771 6772 6780 6781 6777 6 6779 6772 6781 6782 6784 9786 6 6779 6780 6782 6783 6777 9798 6 6781 6780 6783 6177 6784 6785 5 6781 6782 6177 6178 9798 6 6782 6780 6785 6786 6638 9786 7 6782 6784 6177 6175 6786 6787 6789 7 6785 6784 6787 6788 9778 6639 6638 6 6785 6786 6788 6789 6172 6790 6 6787 6786 9778 6643 9783 6790 5 6785 6787 6172 6173 6175 5 6172 6787 6171 6788 9783 8 6672 6674 6774 4565 4566 6766 6769 6768 6 5419 5420 6793 7332 7333 7334 6 6792 5420 5421 5429 6794 7334 6 6793 5429 5430 6795 7334 7335 6 6794 5430 5431 6796 7335 7336 6 6795 5431 5433 5434 6797 7336 6 6796 5434 5435 6798 7336 7337 6 6797 5435 5436 6799 7337 7338 6 6798 5436 5437 6800 7338 7339 6 6799 5437 5438 6801 7339 7340 6 6800 5438 5439 6802 7340 7341 6 6801 5439 6803 7341 7342 7343 6 6802 5439 5440 5441 6804 7343 6 6803 5441 5442 6805 7343 7344 6 6804 5442 5443 6806 7344 7345 6 6805 5443 5445 6807 7345 7346 6 6806 5445 5446 6808 7346 7347 6 6807 5446 5447 6809 7347 7348 6 6808 5447 6810 7348 7349 7350 6 6809 5447 5448 6811 7350 6812 5 6810 5448 5218 5219 6812 6 6811 5219 5220 6813 7350 6810 5 6812 5220 6814 7350 7351 6 6813 5220 5221 6815 7351 7352 7 6814 5221 5222 5223 6816 7352 7353 5 6815 5223 6817 7353 7354 7 6816 5223 5224 5225 6818 7354 7355 5 6817 5225 6819 7355 7356 6 6818 5225 6820 7356 7357 7358 6 6819 5225 5226 5227 6821 7358 5 6820 5227 5228 6822 7358 6 6821 5228 6823 7358 7359 7360 7 6822 5228 5229 5230 6824 7360 7361 5 6823 5230 6825 6826 7361 5 6824 5230 6826 6827 5168 7 6824 6825 6827 6828 6829 7363 7361 5 6826 6825 5168 5169 6828 6 6827 5169 6826 6829 6830 6831 6 6826 6828 6830 7363 7364 7365 6 6829 6828 6831 7365 7366 7367 6 6830 6828 5169 5170 6832 7367 7 6831 5170 6833 7367 7368 7369 6835 5 6832 5170 6834 5239 6835 5 6833 5170 5239 5019 5024 6 6833 5239 5240 6836 7369 6832 6 6835 5240 5649 6837 7376 7369 7 6836 5649 6838 7376 7375 7377 7378 6 6837 5649 5650 5652 6839 7378 6 6838 5652 6840 7378 7379 7380 6 6839 5652 5653 6841 6842 7380 6 6840 5653 5654 5248 6842 5249 6 6840 6841 5249 6843 7380 7381 6 6842 5249 5250 6844 7381 7382 6 6843 5250 6845 7382 7383 7384 6 6844 5250 5029 5030 6846 7384 6 6845 5030 5031 6847 6848 7384 6 6846 5031 6848 6849 6850 5032 6 6846 6847 6849 7385 7384 7386 6 6848 6847 6850 7386 7387 7388 6 6849 6847 5032 5033 6851 7388 6 6850 5033 5034 5035 6852 7388 6 6851 5035 6853 7388 7389 6855 6 6852 5035 5036 5039 6854 6855 6 6853 5039 6855 6856 6857 5040 6 6853 6854 6856 7389 6852 7390 6 6855 6854 6857 6858 6860 7390 6 6856 6854 5040 6858 6859 5042 6 6856 6857 6859 6860 6861 6862 6 6858 6857 5042 6862 6863 6864 6 6856 6858 6861 7390 7391 7398 6 6860 6858 6862 7398 7399 7400 6 6861 6858 6859 6863 7400 7401 6 6862 6859 6864 6865 6866 7401 6 6863 6859 6865 5043 6880 5042 6 6863 6864 6866 6867 6880 6874 6 6863 6865 6867 6868 7401 7402 6 6866 6865 6868 6869 6873 6874 6 6866 6867 6869 6870 7402 7403 6 6868 6867 6870 6871 6872 6873 6 6868 6869 6871 7406 7403 7407 6 6870 6869 6872 7413 7407 7414 6 6871 6869 6873 7420 7417 7414 6 6872 6869 6867 6874 6875 7420 6 6873 6867 6875 6876 6865 6880 6 6873 6874 6876 6877 7420 7419 6 6875 6874 6877 6878 6879 6880 6 6875 6876 6878 6884 6885 7419 6 6877 6876 6879 6881 6883 6884 6 6878 6876 6880 6881 5044 5043 6 6879 6876 5043 6864 6865 6874 6 6878 6879 5044 5046 6882 6883 6 6881 5046 6883 6888 6889 6890 6 6881 6882 6878 6884 6887 6888 6 6878 6883 6877 6885 6886 6887 6 6877 6884 6886 7419 7421 7427 6 6885 6884 6887 7427 7428 7429 6 6886 6884 6883 6888 7429 7430 6 6887 6883 6882 6889 7430 7431 6 6888 6882 6890 6891 7431 7434 6 6889 6882 5046 6891 4646 4645 6 6889 6890 4646 4647 6892 7434 6 6891 4647 4648 6893 7434 6894 6 6892 4648 4254 4255 4731 6894 6 6893 4731 6895 7434 6892 7433 6 6894 4731 4732 6896 6898 7433 6 6895 4732 6897 6898 6899 6900 6 6896 4732 4733 6900 6901 6902 6 6895 6896 6899 7433 7432 7435 6 6898 6896 6900 7435 7436 7437 6 6899 6896 6897 6901 7437 7438 6 6900 6897 6902 7438 6905 6904 6 6901 6897 4733 4263 6903 6904 6 6902 4263 4264 4265 5232 6904 6 6903 5232 5459 6905 6901 6902 6 6904 5459 5460 6906 7438 6901 6 6905 5460 6907 7438 7439 7440 6 6906 5460 5461 6908 7440 7441 6 6907 5461 5462 6909 7263 7441 6 6908 5462 5463 6910 7263 7264 6 6909 5463 6911 7264 7265 6912 6 6910 5463 5464 5465 5466 6912 6 6911 5466 6913 7265 6910 7266 6 6912 5466 5467 6914 7266 7267 6 6913 5467 5468 6915 7267 7268 6 6914 5468 6916 7268 7269 7270 6 6915 5468 5469 6917 6918 7270 6 6916 5469 5470 5471 5472 6918 6 6916 6917 5472 6919 7270 7271 6 6918 5472 5473 6920 7271 7272 6 6919 5473 5474 6921 7272 7273 6 6920 5474 5475 5476 6922 7273 6 6921 5476 6923 7275 7273 7276 6 6922 5476 5477 6924 7276 7277 6 6923 5477 5478 6925 7277 7278 6 6924 5478 5479 6926 7278 7279 6 6925 5479 5480 6927 7279 7280 6 6926 5480 5481 5655 6928 7280 6 6927 5655 5656 6929 7282 7280 6 6928 5656 6930 7282 7283 7284 6 6929 5656 5657 5658 6931 7284 6 6930 5658 6932 7284 7285 7286 6 6931 5658 5659 5832 6933 7286 6 6932 5832 6934 7286 7287 7288 6 6933 5832 5833 5841 6935 7288 6 6934 5841 5842 6936 6937 7288 6 6935 5842 5844 6937 6938 6019 6 6935 6936 6938 6939 7288 7289 6 6937 6936 6019 6939 6940 6941 6 6937 6938 6940 7289 7290 7291 6 6939 6938 6941 7291 7292 6942 6 6940 6938 6019 5846 5848 6942 6 6941 5848 6943 6944 7292 6940 6 6942 5848 6944 6945 6946 5849 6 6942 6943 6945 7292 7293 7294 6 6944 6943 6946 7294 7295 7296 7 6945 6943 5849 5851 6386 6947 7296 6 6946 6386 6387 6948 7296 7297 6 6947 6387 6388 6389 6949 7297 6 6948 6389 6390 6950 7297 7298 7 6949 6390 6392 6396 6951 7298 7299 6 6950 6396 6952 7299 7301 7302 6 6951 6396 6397 6953 7044 7302 6 6952 6397 6400 6954 7044 7045 6 6953 6400 6401 6955 6956 7045 6 6954 6401 6402 6956 6957 6961 6 6954 6955 6957 6958 7045 7046 6 6956 6955 6958 6959 6960 6961 6 6956 6957 6959 7046 7049 7050 6 6958 6957 6960 6962 6963 7050 6 6959 6957 6961 6411 6412 6962 6 6960 6957 6955 6402 6403 6411 6 6960 6412 6959 6963 6964 6413 6 6959 6962 6964 7052 7050 7053 6 6963 6962 6413 6415 6965 7053 6 6964 6415 6417 6560 6966 7053 6 6965 6560 6562 6967 7053 6972 6 6966 6562 6968 6969 6971 6972 6 6967 6562 6969 6970 6563 6984 6 6967 6968 6970 6971 6975 6976 6 6969 6968 6982 6976 6983 6984 6 6967 6969 6972 6973 6974 6975 6 6967 6971 6973 7053 6966 7052 6 6972 6971 6974 7052 7051 7054 6 6973 6971 6975 7063 7054 7064 6 6974 6971 6969 6976 6977 7064 6 6975 6969 6977 6978 6982 6970 6 6975 6976 6978 6979 7064 7065 6 6977 6976 6979 6980 6981 6982 6 6977 6978 6980 7065 7066 7067 6 6979 6978 6981 7067 7068 7072 6 6980 6978 6982 7072 7073 7074 6 6981 6978 6976 6970 6983 7074 6 6982 6970 6984 6985 7074 7075 6 6983 6970 6985 6986 6563 6968 6 6983 6984 6986 7075 7076 7077 6 6985 6984 6563 6564 6987 7077 6 6986 6564 6568 6988 6989 7077 6 6987 6568 6989 6990 6991 6569 6 6987 6988 6990 6992 7077 7078 6 6989 6988 6991 6992 6993 6997 6 6990 6988 6997 6998 6571 6569 6 6989 6990 6993 6994 7078 7079 6 6992 6990 6994 6995 6996 6997 6 6992 6993 6995 7079 7082 7083 6 6994 6993 6996 7083 7086 7087 6 6995 6993 6997 7087 7088 7089 6 6996 6993 6990 6991 6998 7089 6 6997 6991 6571 6999 7000 7089 6 6998 6571 7000 7001 7002 6572 6 6998 6999 7001 7089 7090 7093 6 7000 6999 7002 7003 7093 7094 6 7001 6999 7003 7004 6576 6572 6 7001 7002 7004 7094 7095 7096 6 7003 7002 6576 6577 7005 7096 6 7004 6577 6579 7006 7096 7097 6 7005 6579 7007 7097 7098 7099 6 7006 6579 6580 7008 7013 7099 6 7007 6580 6583 7009 7010 7013 6 7008 6583 7010 6723 6721 6584 6 7008 7009 6723 6725 7011 7013 6 7010 6725 7012 7013 7014 7015 6 7011 6725 7023 7021 7015 6726 6 7010 7011 7008 7007 7014 7099 6 7013 7011 7015 7016 7099 7100 6 7014 7011 7016 7017 7021 7012 6 7014 7015 7017 7018 7100 7101 6 7016 7015 7018 7019 7020 7021 6 7016 7017 7019 7108 7101 7114 6 7018 7017 7020 7115 7114 7116 6 7019 7017 7021 7022 7116 7117 6 7020 7017 7015 7022 7023 7012 6 7020 7021 7023 7025 7117 7118 6 7022 7021 7012 6726 7024 7025 6 7023 6726 6727 7025 7026 7027 6 7022 7023 7024 7026 7118 7119 6 7025 7024 7027 7119 7120 7121 6 7026 7024 6727 7028 7029 7121 6 7027 6727 6728 7029 7030 7031 6 7027 7028 7030 7123 7121 7124 6 7029 7028 7031 7124 7035 7032 6 7030 7028 6728 6729 6730 7032 6 7031 6730 7033 7035 7030 7034 6 7032 6730 6731 6732 6733 7034 6 7033 6733 6735 6736 7035 7032 6 7034 6736 7036 7124 7030 7032 5 7035 6736 6737 7037 7124 6 7036 6737 6741 7038 7124 7123 7 7037 6741 6742 7039 7123 7125 7126 6 7038 6742 7040 7136 7126 7137 6 7039 6742 6743 7041 7137 7138 6 7040 6743 6744 7042 7138 7139 5 7041 6744 6755 7142 7139 6 6755 6744 6745 6747 6751 6753 6 6952 6953 7045 7302 7303 7047 6 7044 6953 6954 6956 7046 7047 6 7045 6956 6958 7047 7048 7049 6 7045 7046 7048 7303 7044 7304 6 7047 7046 7049 7304 7057 7055 6 7048 7046 6958 7050 7051 7055 6 7049 6958 7051 7052 6963 6959 6 7049 7050 7052 6973 7054 7055 6 7051 7050 6963 7053 6972 6973 6 7052 6963 6964 6965 6966 6972 6 7051 6973 7055 7056 7063 6974 6 7051 7054 7056 7057 7048 7049 6 7055 7054 7057 7058 7059 7063 6 7055 7056 7058 7304 7048 7305 6 7057 7056 7059 7060 7308 7305 6 7058 7056 7060 7061 7062 7063 6 7058 7059 7061 7308 7477 7478 6 7060 7059 7062 7478 7479 7480 6 7061 7059 7063 7064 7065 7480 6 7062 7059 7056 7054 6974 7064 6 7063 6974 6975 6977 7062 7065 6 7062 7064 6977 6979 7066 7480 6 7065 6979 7067 7480 7481 7482 6 7066 6979 6980 7068 7069 7482 6 7067 6980 7069 7070 7071 7072 6 7067 7068 7070 7484 7482 7463 6 7069 7068 7071 7463 7485 7486 6 7070 7068 7072 7486 7487 7488 6 7071 7068 6980 6981 7073 7488 6 7072 6981 7074 7488 7489 7493 6 7073 6981 6982 6983 7075 7493 6 7074 6983 6985 7076 7494 7493 6 7075 6985 7077 7494 7080 7078 6 7076 6985 6986 6987 6989 7078 6 7077 6989 6992 7079 7080 7076 6 7078 6992 6994 7080 7081 7082 6 7078 7079 7081 7692 7494 7076 6 7080 7079 7082 7224 7225 7692 6 7081 7079 6994 7083 7084 7224 6 7082 6994 6995 7084 7085 7086 6 7082 7083 7085 7227 7224 7228 6 7084 7083 7086 7228 7229 7230 6 7085 7083 6995 7087 7233 7230 6 7086 6995 6996 7088 7233 7234 6 7087 6996 7089 7090 7091 7234 6 7088 6996 6997 6998 7000 7090 6 7089 7000 7088 7091 7092 7093 6 7088 7090 7092 7234 7235 7236 6 7091 7090 7093 7236 7237 7238 6 7092 7090 7000 7001 7094 7238 6 7093 7001 7003 7095 7238 7239 6 7094 7003 7096 7239 7240 7104 6 7095 7003 7004 7005 7097 7104 6 7096 7005 7006 7098 7103 7104 6 7097 7006 7099 7100 7102 7103 6 7098 7006 7007 7013 7014 7100 6 7099 7014 7016 7101 7102 7098 6 7100 7016 7102 7107 7108 7018 6 7100 7101 7098 7103 7106 7107 6 7098 7102 7097 7104 7105 7106 6 7097 7103 7105 7240 7095 7096 6 7104 7103 7106 7242 7240 7243 6 7105 7103 7102 7107 7243 7244 6 7106 7102 7101 7108 7109 7244 6 7107 7101 7018 7109 7110 7114 6 7107 7108 7110 7111 7244 7245 6 7109 7108 7111 7112 7113 7114 6 7109 7110 7112 7248 7245 7249 6 7111 7110 7113 7249 7250 7251 6 7112 7110 7114 7115 7251 7252 6 7113 7110 7115 7019 7018 7108 6 7113 7114 7019 7116 7252 7255 6 7115 7019 7020 7117 7255 7256 6 7116 7020 7022 7118 7259 7256 6 7117 7022 7025 7119 7259 7260 6 7118 7025 7026 7120 7260 7129 6 7119 7026 7121 7122 7128 7129 6 7120 7026 7122 7123 7029 7027 6 7120 7121 7123 7125 7127 7128 7 7122 7121 7029 7124 7037 7038 7125 6 7123 7029 7030 7035 7036 7037 5 7123 7038 7126 7127 7122 5 7125 7038 7127 7136 7039 7 7125 7126 7122 7128 7131 7132 7136 6 7122 7127 7120 7129 7130 7131 6 7120 7128 7130 7262 7260 7119 6 7129 7128 7131 7262 7533 7531 6 7130 7128 7127 7132 7133 7533 6 7131 7127 7133 7134 7135 7136 6 7131 7132 7134 7533 7532 7534 6 7133 7132 7135 7534 7535 7536 6 7134 7132 7136 7536 7537 7137 6 7135 7132 7127 7126 7039 7137 6 7136 7039 7040 7138 7537 7135 6 7137 7040 7041 7139 7140 7537 6 7138 7041 7140 7141 7142 7042 6 7138 7139 7141 7149 7151 7537 6 7140 7139 7142 7143 7148 7149 7 7141 7139 7042 6755 6756 6760 7143 6 7141 7142 6760 6761 7144 7148 6 7143 6761 7145 7146 7147 7148 7 7144 6761 7146 4553 4552 6764 6762 5 7144 7145 4553 4555 7147 6 7146 4555 4557 7144 7148 7149 5 7144 7147 7149 7141 7143 7 7148 7147 4557 7141 7140 7150 7151 6 7149 4557 7151 7152 7153 7154 6 7149 7150 7140 7152 7537 7536 6 7151 7150 7153 7536 7535 7538 6 7152 7150 7154 7155 7156 7538 6 7153 7150 7155 4650 4556 4557 6 7153 7154 7156 7157 7167 4650 6 7153 7155 7157 7158 7538 7539 6 7156 7155 7158 7159 7160 7167 6 7156 7157 7159 7539 7540 7555 6 7158 7157 7160 7161 7555 7556 6 7159 7157 7161 7162 7163 7167 6 7159 7160 7162 7164 7168 7556 6 7161 7160 7163 7164 4138 7165 5 7162 7160 7165 7166 7167 6 7161 7162 4138 7168 7169 4139 7 4138 7162 7163 7166 4414 4135 4136 5 7165 7163 4414 4416 7167 7 4416 7166 7163 7160 7157 7155 4650 6 7161 7164 7169 7556 7557 7561 7 7168 7164 4139 7170 7561 7562 7563 5 7169 4139 4140 7171 7563 7 7170 4140 4141 7172 7563 7564 7565 6 7171 4141 4125 7173 7174 7565 6 7172 4125 7174 7175 4123 9790 6 7172 7173 7175 7176 7177 7565 6 7174 7173 7176 9789 9788 9790 6 7174 7175 7177 7178 7179 9789 7 7174 7176 7178 7565 7564 7569 7570 6 7177 7176 7179 7180 7181 7570 6 7178 7176 7180 9789 3536 3538 6 7178 7179 7181 7182 7183 3538 6 7178 7180 7182 7571 7570 7572 6 7181 7180 7183 7572 7573 7574 6 7182 7180 3538 3539 7184 7574 6 7183 3539 7185 7576 7574 7188 6 7184 3539 3540 7186 7187 7188 6 7185 3540 7187 7212 7211 7213 6 7185 7186 7188 7189 7212 7193 6 7185 7187 7189 7190 7576 7184 6 7188 7187 7190 7191 7192 7193 6 7188 7189 7191 7576 7577 7580 6 7190 7189 7192 7194 7580 7581 6 7191 7189 7193 7194 7195 7199 6 7192 7189 7199 7200 7212 7187 6 7191 7192 7195 7196 7581 7582 6 7194 7192 7196 7197 7198 7199 6 7194 7195 7197 7582 7583 7584 6 7196 7195 7198 7584 3197 3196 6 7197 7195 7199 3196 7201 7204 6 7198 7195 7192 7193 7200 7201 6 7199 7193 7201 7202 7212 7209 6 7199 7200 7202 7203 7204 7198 6 7201 7200 7203 7207 7208 7209 6 7201 7202 7204 7205 7206 7207 6 7201 7203 7205 3195 3196 7198 6 7204 7203 7206 7221 7222 3195 6 7205 7203 7207 9746 7219 7221 6 7206 7203 7202 7208 9746 9747 6 7207 7202 7209 7210 9747 7214 6 7208 7202 7210 7211 7212 7200 6 7208 7209 7211 4374 4375 7214 6 7210 7209 7212 7186 7213 4374 6 7211 7209 7200 7193 7187 7186 6 7211 7186 3540 3541 4373 4374 6 7210 4375 4376 7215 9747 7208 6 7214 4376 4378 7216 7217 9747 6 7215 4378 7217 2864 1628 2863 6 7215 7216 2864 7218 9746 9747 6 7217 2864 2865 2866 7219 9746 6 7218 2866 7220 7221 7206 9746 5 7219 2866 7221 3215 2867 6 7219 7220 3215 7222 7206 7205 6 7221 3215 3216 7223 3195 7205 5 7222 3216 3217 3194 3195 6 7081 7082 7225 7226 7227 7084 6 7081 7224 7226 7692 7691 7693 6 7225 7224 7227 7693 7694 7675 6 7226 7224 7084 7228 7675 7695 6 7227 7084 7085 7229 7695 7696 6 7228 7085 7230 7231 7696 7697 6 7229 7085 7231 7232 7233 7086 6 7229 7230 7232 7697 7698 7702 6 7231 7230 7233 7702 7703 7704 6 7232 7230 7086 7087 7234 7704 6 7233 7087 7088 7091 7235 7704 6 7234 7091 7236 7719 7705 7704 6 7235 7091 7092 7237 7719 7718 6 7236 7092 7238 7718 7720 7721 6 7237 7092 7093 7094 7239 7721 6 7238 7094 7095 7240 7241 7721 6 7239 7095 7104 7241 7242 7105 6 7239 7240 7242 7721 7722 7723 6 7241 7240 7105 7243 7723 7726 6 7242 7105 7106 7244 7246 7726 6 7243 7106 7107 7109 7245 7246 6 7244 7109 7246 7247 7248 7111 6 7244 7245 7247 7729 7726 7243 6 7246 7245 7248 7965 7729 7966 6 7247 7245 7111 7249 7966 7967 6 7248 7111 7112 7250 7967 7968 6 7249 7112 7251 7512 7968 7969 6 7250 7112 7113 7252 7253 7512 6 7251 7113 7115 7253 7254 7255 6 7251 7252 7254 7512 7513 7517 6 7253 7252 7255 7257 9776 7517 6 7254 7252 7115 7116 7256 7257 6 7255 7116 7257 7258 7259 7117 6 7255 7256 7258 7524 7254 9776 6 7257 7256 7259 7261 7525 7524 6 7258 7256 7117 7118 7260 7261 6 7259 7118 7119 7261 7262 7129 6 7259 7260 7262 7530 7525 7258 6 7261 7260 7129 7130 7531 7530 6 6908 6909 7264 7441 7443 7444 6 7263 6909 6910 7265 7444 7445 6 7264 6910 6912 7266 7445 7446 6 7265 6912 6913 7267 7446 7447 6 7266 6913 6914 7268 7450 7447 6 7267 6914 6915 7269 7450 7451 6 7268 6915 7270 7451 7452 7453 6 7269 6915 6916 6918 7271 7453 6 7270 6918 6919 7272 7453 7454 6 7271 6919 6920 7273 7274 7454 6 7272 6920 7274 7275 6922 6921 6 7272 7273 7275 7454 7455 7456 6 7274 7273 6922 7276 7456 7457 6 7275 6922 6923 7277 7457 7458 6 7276 6923 6924 7278 7458 7459 6 7277 6924 6925 7279 7459 7460 6 7278 6925 6926 7280 7281 7460 6 7279 6926 7281 7282 6928 6927 6 7279 7280 7282 7460 7461 7465 6 7281 7280 6928 6929 7283 7465 6 7282 6929 7284 7465 7466 7467 6 7283 6929 6930 6931 7285 7467 6 7284 6931 7286 7467 7468 7469 6 7285 6931 6932 6933 7287 7469 6 7286 6933 7288 7469 7470 7289 6 7287 6933 6934 6935 6937 7289 6 7288 6937 6939 7290 7470 7287 6 7289 6939 7291 7470 7471 7472 6 7290 6939 6940 7292 7472 7473 6 7291 6940 6942 6944 7293 7473 6 7292 6944 7294 7473 7474 7475 6 7293 6944 6945 7295 7475 7300 6 7294 6945 7296 7298 7299 7300 6 7295 6945 6946 6947 7297 7298 5 7296 6947 6948 6949 7298 6 7297 6949 6950 7296 7295 7299 6 7295 7298 6950 6951 7300 7301 5 7295 7299 7301 7475 7294 7 7300 7299 6951 7302 7475 7306 7303 5 7301 6951 6952 7044 7303 6 7302 7044 7047 7304 7306 7301 6 7303 7047 7048 7057 7305 7306 6 7304 7057 7306 7307 7308 7058 6 7304 7305 7307 7475 7301 7303 6 7306 7305 7308 7475 7474 7476 6 7307 7305 7058 7060 7476 7477 5 4703 4704 7310 7856 7857 6 7309 4704 4705 7311 7857 7858 6 7310 4705 4706 7312 7858 7859 6 7311 4706 4707 7313 7859 7860 6 7312 4707 4708 5171 7314 7860 6 7313 5171 7315 7860 7861 7862 6 7314 5171 5172 7316 7862 7863 6 7315 5172 5173 7317 7863 7864 6 7316 5173 5174 7318 7864 7865 6 7317 5174 5175 7319 7865 7866 6 7318 5175 5176 7320 7866 7867 6 7319 5176 5177 7321 7867 7868 6 7320 5177 5178 5179 7322 7868 6 7321 5179 7323 7868 7869 7870 6 7322 5179 5180 7324 7870 7871 6 7323 5180 5181 5412 7325 7871 6 7324 5412 7326 7871 7872 7873 6 7325 5412 5413 7327 7873 7874 6 7326 5413 5414 5415 7328 7874 6 7327 5415 7329 7874 7875 7876 6 7328 5415 5416 5417 7330 7876 6 7329 5417 7331 7876 7877 7878 6 7330 5417 5418 5419 7332 7878 6 7331 5419 6792 7333 7878 7879 6 7332 6792 7334 7879 7880 7881 6 7333 6792 6793 6794 7335 7881 6 7334 6794 6795 7336 7881 7882 6 7335 6795 6796 6797 7337 7882 6 7336 6797 6798 7338 7882 7883 6 7337 6798 6799 7339 7883 7884 6 7338 6799 6800 7340 7884 7885 6 7339 6800 6801 7341 7885 7886 6 7340 6801 6802 7342 7886 7887 6 7341 6802 7343 7887 7888 7889 6 7342 6802 6803 6804 7344 7889 6 7343 6804 6805 7345 7889 7890 6 7344 6805 6806 7346 7890 7891 6 7345 6806 6807 7347 7891 7892 6 7346 6807 6808 7348 7892 7893 6 7347 6808 6809 7349 7893 7894 6 7348 6809 7350 7894 7895 7896 7 7349 6809 6810 6812 6813 7351 7896 6 7350 6813 6814 7352 7896 7897 6 7351 6814 6815 7353 7897 7898 5 7352 6815 6816 7354 7898 7 7353 6816 6817 7355 7898 7899 7900 5 7354 6817 6818 7356 7900 7 7355 6818 6819 7357 7900 7901 7902 6 7356 6819 7358 7902 7903 7904 7 7357 6819 6820 6821 6822 7359 7904 6 7358 6822 7360 7904 7905 7906 6 7359 6822 6823 7361 7362 7906 6 7360 6823 6824 7362 7363 6826 6 7360 7361 7363 7906 7907 7908 6 7362 7361 6826 6829 7364 7908 6 7363 6829 7365 7908 7909 7910 5 7364 6829 6830 7366 7910 7 7365 6830 7367 7370 7372 7910 7911 6 7366 6830 6831 6832 7368 7370 6 7367 6832 7369 7370 7371 7376 5 7368 6832 7376 6836 6835 6 7367 7368 7371 7366 7372 7373 6 7370 7368 7373 7374 7375 7376 6 7366 7370 7373 7911 7912 7913 6 7372 7370 7371 7374 7913 7914 6 7373 7371 7375 7914 7915 7916 6 7374 7371 7376 6837 7377 7916 6 7375 7371 7368 7369 6836 6837 6 7375 6837 7378 7916 7917 7918 6 7377 6837 6838 6839 7379 7918 5 7378 6839 7380 7602 7918 6 7379 6839 6840 6842 7381 7602 6 7380 6842 6843 7382 7602 7603 6 7381 6843 6844 7383 7606 7603 6 7382 6844 7384 7385 7606 7607 6 7383 6844 7385 6848 6846 6845 6 7383 7384 6848 7386 7607 7608 6 7385 6848 6849 7387 7608 7393 6 7386 6849 7388 7389 7392 7393 6 7387 6849 6850 6851 6852 7389 6 7388 6852 6855 7390 7392 7387 6 7389 6855 6856 6860 7391 7392 6 7390 6860 7392 7397 7394 7398 6 7390 7391 7389 7387 7393 7394 6 7387 7392 7394 7395 7608 7386 6 7393 7392 7395 7396 7397 7391 6 7393 7394 7396 7608 7609 7612 6 7395 7394 7397 7612 7613 7623 6 7396 7394 7391 7398 7623 7624 6 7397 7391 6860 6861 7399 7624 5 7398 6861 7400 7624 7625 6 7399 6861 6862 7401 7625 7626 7 7400 6862 6863 6866 7402 7626 7627 6 7401 6866 6868 7403 7404 7627 6 7402 6868 7404 7405 7406 6870 6 7402 7403 7405 7627 7628 7629 6 7404 7403 7406 7409 7629 7630 6 7405 7403 6870 7407 7408 7409 6 7406 6870 7408 7412 7413 6871 6 7406 7407 7409 7410 7411 7412 6 7406 7408 7405 7410 7633 7630 6 7409 7408 7411 7633 7634 7635 6 7410 7408 7412 7635 7636 7643 6 7411 7408 7407 7413 7643 7644 6 7412 7407 6871 7414 7415 7644 6 7413 6871 7415 7416 7417 6872 6 7413 7414 7416 7644 7645 7646 6 7415 7414 7417 7418 7646 7647 6 7416 7414 7418 7419 7420 6872 6 7416 7417 7419 7421 7422 7647 7 7418 7417 7420 6875 6877 6885 7421 5 7419 7417 6872 6873 6875 6 7419 6885 7418 7422 7423 7427 6 7418 7421 7423 7424 7647 7648 6 7422 7421 7424 7425 7426 7427 6 7422 7423 7425 7648 7649 7650 6 7424 7423 7426 7650 7651 7652 6 7425 7423 7427 7652 7653 7428 6 7426 7423 7421 6885 6886 7428 6 7427 6886 7429 7653 7426 7654 6 7428 6886 6887 7430 7654 7655 6 7429 6887 6888 7431 7432 7655 6 7430 6888 6889 7432 7433 7434 6 7430 7431 7433 6898 7435 7655 6 7432 7431 7434 6894 6895 6898 6 7433 7431 6889 6891 6892 6894 6 7432 6898 6899 7436 7656 7655 6 7435 6899 7437 7656 7657 7661 6 7436 6899 6900 7438 7661 7439 6 7437 6900 6901 6905 6906 7439 6 7438 6906 7440 7661 7437 7662 6 7439 6906 6907 7441 7442 7662 6 7440 6907 6908 7263 7442 7443 6 7440 7441 7443 7662 7663 7664 6 7442 7441 7263 7444 7664 7665 6 7443 7263 7264 7445 7665 7666 6 7444 7264 7265 7446 7666 7667 6 7445 7265 7266 7447 7448 7667 6 7446 7266 7448 7449 7450 7267 6 7446 7447 7449 7669 7667 7672 6 7448 7447 7450 7672 7677 7674 6 7449 7447 7267 7268 7451 7677 6 7450 7268 7269 7452 7677 7678 6 7451 7269 7453 7678 7679 7683 6 7452 7269 7270 7271 7454 7683 6 7453 7271 7272 7274 7455 7683 6 7454 7274 7456 7683 7682 7684 6 7455 7274 7275 7457 7687 7684 6 7456 7275 7276 7458 7687 7688 6 7457 7276 7277 7459 7688 7689 6 7458 7277 7278 7460 7689 7462 6 7459 7278 7279 7281 7461 7462 6 7460 7281 7462 7463 7464 7465 6 7460 7461 7463 7689 7459 7485 7 7462 7461 7464 7484 7069 7070 7485 6 7463 7461 7465 7484 7483 7466 6 7464 7461 7281 7282 7283 7466 6 7465 7283 7467 7483 7464 7495 6 7466 7283 7284 7285 7468 7495 6 7467 7285 7469 7495 7496 7497 6 7468 7285 7286 7287 7470 7497 6 7469 7287 7289 7290 7471 7497 6 7470 7290 7472 7497 7498 7499 6 7471 7290 7291 7473 7499 7476 6 7472 7291 7292 7293 7474 7476 5 7473 7293 7475 7307 7476 7 7474 7293 7294 7300 7301 7306 7307 7 7474 7307 7308 7477 7499 7472 7473 5 7476 7308 7060 7478 7499 6 7477 7060 7061 7479 7498 7499 7 7478 7061 7480 7481 7498 7496 7500 6 7479 7061 7062 7065 7066 7481 6 7479 7480 7066 7482 7483 7500 6 7481 7066 7483 7484 7069 7067 7 7481 7482 7484 7464 7466 7495 7500 5 7483 7482 7069 7463 7464 5 7463 7070 7486 7689 7462 6 7485 7070 7071 7487 7688 7689 6 7486 7071 7488 7687 7688 7686 7 7487 7071 7072 7073 7489 7490 7686 6 7488 7073 7490 7491 7492 7493 5 7488 7489 7491 7686 7685 6 7490 7489 7492 7685 7690 7691 6 7491 7489 7493 7494 7691 7692 6 7492 7489 7494 7075 7074 7073 6 7492 7493 7075 7076 7692 7080 6 7483 7466 7467 7468 7496 7500 6 7495 7468 7497 7498 7479 7500 6 7496 7468 7469 7470 7471 7498 6 7497 7471 7499 7478 7479 7496 6 7498 7471 7472 7478 7477 7476 5 7496 7479 7481 7483 7495 6 428 5613 5614 7502 7503 9769 6 7501 5614 7503 7504 7505 7506 6 7501 7502 7504 9769 9770 9771 6 7503 7502 7505 6475 9771 9781 5 7504 7502 6475 6473 7506 7 6473 7505 7502 5614 5615 7507 6471 5 7506 5615 7508 6470 6471 6 7507 5615 5616 7509 7510 6470 6 7508 5616 7510 7511 9735 4519 5 7508 7509 7511 6470 6469 6 7510 7509 6469 9733 9734 9735 6 7250 7251 7253 7513 7514 7969 6 7512 7253 7514 7515 7516 7517 6 7512 7513 7515 7969 7970 7971 6 7514 7513 7516 7971 7972 7973 6 7515 7513 7517 7518 7519 7973 6 7516 7513 7253 7518 9776 7254 6 7516 7517 7519 7520 7521 9776 6 7516 7518 7520 7973 7974 7978 6 7519 7518 7521 7522 7978 7979 6 7520 7518 7522 7523 7524 9776 6 7520 7521 7523 7990 7979 7527 6 7522 7521 7524 7525 7526 7527 6 7523 7521 7525 7257 7258 9776 6 7523 7524 7526 7261 7530 7258 6 7523 7525 7527 7528 7529 7530 6 7523 7526 7528 7990 7522 7991 6 7527 7526 7529 7991 7547 7546 6 7528 7526 7530 7531 7532 7546 6 7529 7526 7531 7262 7261 7525 6 7529 7530 7262 7532 7533 7130 7 7529 7531 7533 7133 7534 7544 7546 5 7532 7531 7130 7131 7133 6 7532 7133 7134 7535 7545 7544 6 7534 7134 7536 7152 7538 7545 6 7535 7134 7135 7537 7151 7152 6 7536 7135 7137 7138 7140 7151 6 7535 7152 7153 7156 7539 7545 6 7538 7156 7158 7540 7541 7545 6 7539 7158 7541 7542 7554 7555 6 7539 7540 7542 7543 7544 7545 6 7541 7540 7543 7548 7554 7551 6 7541 7542 7544 7546 7547 7548 6 7541 7543 7545 7534 7532 7546 6 7541 7544 7534 7535 7538 7539 6 7532 7544 7543 7547 7528 7529 6 7546 7543 7548 7549 7991 7528 6 7547 7543 7542 7549 7550 7551 6 7547 7548 7550 7991 7990 7992 6 7549 7548 7551 7552 7992 7993 6 7550 7548 7552 7553 7554 7542 6 7550 7551 7553 7993 7995 7996 7 7552 7551 7554 7558 7557 7559 7996 6 7553 7551 7542 7540 7555 7558 6 7554 7540 7158 7159 7556 7558 6 7555 7159 7161 7168 7557 7558 7 7556 7168 7558 7553 7559 7560 7561 5 7556 7557 7555 7554 7553 5 7553 7557 7560 7996 7997 7 7559 7557 7561 7997 8000 7567 7562 5 7560 7557 7168 7169 7562 6 7561 7169 7563 7566 7567 7560 6 7562 7169 7170 7171 7564 7566 6 7563 7171 7565 7177 7566 7569 5 7564 7171 7172 7174 7177 6 7563 7564 7562 7567 7568 7569 6 7562 7566 7568 8000 7560 8001 6 7567 7566 7569 7570 7571 8001 5 7568 7566 7564 7177 7570 6 7569 7177 7568 7571 7181 7178 6 7568 7570 7181 7572 8001 8002 6 7571 7181 7182 7573 8002 8003 6 7572 7182 7574 7575 8003 8004 6 7573 7182 7575 7576 7184 7183 6 7573 7574 7576 7577 7578 8004 6 7575 7574 7184 7188 7190 7577 6 7576 7190 7575 7578 7579 7580 6 7575 7577 7579 8004 8005 8006 6 7578 7577 7580 8006 8007 8008 6 7579 7577 7190 7191 7581 8008 6 7580 7191 7194 7582 8008 8009 6 7581 7194 7196 7583 8009 8010 6 7582 7196 7584 7586 8013 8010 6 7583 7196 7197 3197 7585 7586 6 7584 3197 3187 7586 7587 3188 6 7584 7585 7587 7588 7583 8013 6 7586 7585 7588 7589 3959 3188 6 7586 7587 7589 7730 8014 8013 6 7588 7587 3959 3961 7590 7730 6 7589 3961 7591 7730 7731 7732 6 7590 3961 3962 7592 7732 7733 6 7591 3962 7593 7739 7733 7740 6 7592 3962 2891 2892 7594 7740 6 7593 2892 7595 7596 7740 7741 6 7594 2892 7596 7597 7598 2893 6 7594 7595 7597 7741 7742 7746 6 7596 7595 7598 7599 7746 7747 6 7597 7595 7599 7600 7601 2893 6 7597 7598 7600 4090 7747 7752 5 7599 7598 7601 4090 4087 6 7600 7598 4087 2881 2880 2893 7 7379 7380 7381 7603 7604 7918 7919 6 7602 7381 7604 7605 7606 7382 6 7602 7603 7605 7927 7921 7919 5 7604 7603 7606 7927 7928 7 7605 7603 7382 7383 7607 7610 7928 6 7606 7383 7385 7608 7609 7610 6 7607 7385 7386 7393 7395 7609 6 7608 7395 7607 7610 7611 7612 6 7607 7609 7611 7930 7928 7606 6 7610 7609 7612 7614 7617 7930 6 7611 7609 7395 7396 7613 7614 6 7612 7396 7614 7615 7622 7623 6 7612 7613 7615 7616 7617 7611 6 7614 7613 7616 7620 7621 7622 6 7614 7615 7617 7618 7619 7620 6 7614 7616 7618 8158 7930 7611 6 7617 7616 7619 8156 8158 8157 6 7618 7616 7620 8157 8159 8160 6 7619 7616 7615 7621 8160 8161 6 7620 7615 7622 8161 8162 8163 6 7621 7615 7613 7623 8163 8164 6 7622 7613 7396 7397 7624 8164 6 7623 7397 7398 7399 7625 8164 6 7624 7399 7400 7626 8164 8165 6 7625 7400 7401 7627 8165 7628 5 7626 7401 7402 7404 7628 6 7627 7404 7629 8165 7626 8166 6 7628 7404 7405 7630 7631 8166 6 7629 7405 7631 7632 7633 7409 6 7629 7630 7632 8166 8167 8168 6 7631 7630 7633 8171 8168 8172 6 7632 7630 7409 7410 7634 8172 6 7633 7410 7635 8174 8172 8175 6 7634 7410 7411 7636 7637 8175 6 7635 7411 7637 7638 7642 7643 6 7635 7636 7638 7639 8175 8176 6 7637 7636 7639 7640 7641 7642 6 7637 7638 7640 8176 8177 8178 6 7639 7638 7641 8178 8179 8180 6 7640 7638 7642 8180 8181 8182 6 7641 7638 7636 7643 8182 8183 6 7642 7636 7411 7412 7644 8183 6 7643 7412 7413 7415 7645 8183 6 7644 7415 7646 8184 8183 8185 6 7645 7415 7416 7647 8185 8186 6 7646 7416 7418 7422 7648 8186 6 7647 7422 7424 7649 8186 8187 6 7648 7424 7650 8187 8188 8189 6 7649 7424 7425 7651 8189 8190 6 7650 7425 7652 8190 8191 8192 6 7651 7425 7426 7653 8192 8193 6 7652 7426 7428 7654 8193 7658 6 7653 7428 7429 7655 7656 7658 6 7654 7429 7430 7656 7435 7432 6 7654 7655 7435 7436 7657 7658 6 7656 7436 7658 7659 7660 7661 6 7656 7657 7659 8193 7653 7654 6 7658 7657 7660 8193 8194 8195 6 7659 7657 7661 8195 7663 7662 6 7660 7657 7436 7437 7439 7662 6 7661 7439 7440 7442 7663 7660 6 7662 7442 7664 8195 7660 8196 6 7663 7442 7443 7665 8209 8196 6 7664 7443 7444 7666 8209 8208 6 7665 7444 7445 7667 7668 8208 6 7666 7445 7668 7669 7448 7446 6 7666 7667 7669 7670 8207 8208 6 7668 7667 7448 7670 7671 7672 6 7668 7669 7671 7699 8207 9791 6 7670 7669 7672 7673 7696 9791 6 7671 7669 7448 7449 7673 7674 6 7671 7672 7674 7675 7696 7695 6 7673 7672 7675 7676 7677 7449 7 7673 7674 7676 7694 7226 7227 7695 6 7675 7674 7677 7678 7680 7694 6 7676 7674 7449 7450 7451 7678 6 7677 7451 7452 7679 7680 7676 6 7678 7452 7680 7681 7682 7683 7 7678 7679 7681 7676 7694 7693 7690 5 7680 7679 7682 7690 7685 6 7681 7679 7683 7455 7684 7685 6 7682 7679 7452 7453 7454 7455 6 7682 7455 7685 7686 7687 7456 7 7682 7684 7686 7490 7491 7690 7681 6 7685 7684 7687 7487 7488 7490 6 7686 7684 7456 7457 7688 7487 6 7687 7457 7458 7487 7486 7689 6 7486 7688 7458 7459 7462 7485 6 7685 7491 7691 7693 7680 7681 6 7690 7491 7492 7692 7225 7693 6 7691 7492 7494 7080 7081 7225 6 7691 7225 7226 7694 7680 7690 5 7693 7226 7675 7676 7680 5 7675 7227 7228 7696 7673 7 7695 7228 7229 7697 7671 7673 9791 6 7696 7229 7231 7698 7699 9791 6 7697 7231 7699 7700 7701 7702 6 7697 7698 7700 8207 7670 9791 6 7699 7698 7701 8206 8204 8207 6 7700 7698 7702 8319 8206 7708 6 7701 7698 7231 7232 7703 7708 6 7702 7232 7704 7705 7706 7708 6 7703 7232 7705 7235 7234 7233 6 7703 7704 7706 7707 7719 7235 6 7703 7705 7707 7708 7709 7710 6 7706 7705 7710 7711 7712 7719 6 7703 7706 7709 8319 7701 7702 6 7708 7706 7710 8319 8482 8318 6 7709 7706 7707 7711 8482 8483 6 7710 7707 7712 7713 7714 8483 6 7711 7707 7713 7717 7718 7719 6 7711 7712 7714 7715 7716 7717 6 7711 7713 7715 8483 8484 8485 6 7714 7713 7716 8485 9766 8487 6 7715 7713 7717 9766 7724 9768 6 7716 7713 7712 7718 9768 7720 6 7717 7712 7719 7236 7237 7720 6 7718 7712 7707 7705 7235 7236 6 7718 7237 7721 9768 7717 7722 6 7720 7237 7238 7239 7241 7722 6 7721 7241 7723 7724 9768 7720 6 7722 7241 7242 7724 7725 7726 7 7722 7723 7725 7727 9766 7716 9768 6 7724 7723 7726 7727 7728 7729 6 7725 7723 7729 7246 7243 7242 6 7724 7725 7728 7963 9766 9765 6 7727 7725 7729 7963 7964 7965 6 7728 7725 7726 7246 7965 7247 6 7588 7589 7590 7731 8014 8015 6 7730 7590 7732 8015 8016 7735 6 7731 7590 7591 7733 7734 7735 6 7732 7591 7734 7738 7739 7592 6 7732 7733 7735 7736 7737 7738 6 7732 7734 7736 8016 7731 8017 6 7735 7734 7737 8017 8018 8019 6 7736 7734 7738 8019 8020 8021 6 7737 7734 7733 7739 8021 8022 6 7738 7733 7592 7740 9767 8022 6 7739 7592 7593 7594 7741 9767 6 7740 7594 7596 7742 7743 9767 6 7741 7596 7743 7744 7745 7746 6 7741 7742 7744 8026 8024 9767 6 7743 7742 7745 8026 8027 8028 6 7744 7742 7746 7748 7749 8028 6 7745 7742 7596 7597 7747 7748 6 7746 7597 7599 7748 7751 7752 6 7746 7747 7745 7749 7750 7751 6 7745 7748 7750 8028 8032 8033 6 7749 7748 7751 8033 8037 7760 6 7750 7748 7747 7752 7753 7760 7 7751 7747 7599 4090 4091 7753 7754 7 7751 7752 7754 4380 7755 7759 7760 4 7753 7752 4091 4380 5 7753 4380 4381 7756 7759 6 7755 4381 4383 7757 7758 7759 6 7756 4383 7758 7763 7764 7765 6 7756 7757 7759 7761 7762 7763 6 7756 7758 7755 7753 7760 7761 6 7753 7759 7761 8037 7750 7751 5 7760 7759 7758 7762 8037 7 7761 7758 7763 8037 8641 8636 8036 7 7762 7758 7757 7764 8853 8640 8641 6 7763 7757 7765 7766 8853 8854 6 7764 7757 4383 4384 4390 7766 6 7764 7765 4390 7767 8320 8854 6 7766 4390 4391 7768 8320 8321 6 7767 4391 3143 7769 7770 8321 6 7768 3143 7770 7771 7775 3144 6 7768 7769 7771 7772 8323 8321 6 7770 7769 7772 7773 7774 7775 6 7770 7771 7773 8323 8324 8325 6 7772 7771 7774 8325 8326 7778 6 7773 7771 7775 7776 7777 7778 6 7774 7771 7769 3144 3145 7776 6 7775 3145 7774 7777 3146 9792 6 7774 7776 7778 7779 3415 9792 6 7774 7777 7779 8326 7773 8327 6 7778 7777 3415 3416 7780 8327 6 7779 3416 5383 5385 7781 8327 6 7780 5385 5387 7782 8327 8328 6 7781 5387 5389 7783 8330 8328 6 7782 5389 5617 7784 8330 8331 6 7783 5617 7785 8331 8332 8333 6 7784 5617 5618 7786 8038 8333 6 7785 5618 7787 7788 8038 8039 6 7786 5618 5619 7788 7789 7790 6 7786 7787 7789 8039 8040 8041 6 7788 7787 7790 8046 8041 7795 6 7789 7787 5619 5620 7791 7795 6 7790 5620 7792 7793 7794 7795 6 7791 5620 7793 3780 3779 5621 6 7791 7792 7794 7798 7799 3780 6 7791 7793 7795 7796 7797 7798 6 7791 7794 7796 8046 7789 7790 6 7795 7794 7797 8046 8047 8048 6 7796 7794 7798 8049 8048 8050 6 7797 7794 7793 7799 8050 7800 6 7798 7793 3780 3781 3784 7800 6 7799 3784 3785 7801 8050 7798 6 7800 3785 3786 3789 7802 8050 6 7801 3789 3791 7803 8049 8050 6 7802 3791 3792 3794 7804 8049 6 7803 3794 7805 7807 8048 8049 6 7804 3794 3795 7806 7807 7808 6 7805 3795 7808 7809 7810 3796 6 7804 7805 7808 8047 8048 8344 6 7807 7805 7806 7809 8345 8344 6 7808 7806 7810 8345 8346 7931 6 7809 7806 3796 3797 7811 7931 6 7810 3797 3953 7812 7931 7932 6 7811 3953 7813 7932 7933 7937 6 7812 3953 3954 7814 7937 7938 6 7813 3954 3955 7815 7938 7939 6 7814 3955 7816 7939 7940 7817 6 7815 3955 3956 3957 4239 7817 6 7816 4239 4504 7818 7940 7815 6 7817 4504 4505 7819 7940 7941 6 7818 4505 7820 7941 7942 7943 6 7819 4505 4506 7821 7943 7944 6 7820 4506 4507 4508 7822 7944 6 7821 4508 7823 7944 7945 7946 6 7822 4508 4509 7824 7946 7947 6 7823 4509 4510 7825 7947 7948 6 7824 4510 7826 7827 7948 7949 6 7825 4510 4511 7827 7828 7829 6 7825 7826 7828 7949 7950 7951 6 7827 7826 7829 7951 7952 7953 6 7828 7826 4511 4420 7830 7953 6 7829 4420 4248 7831 7953 7833 6 7830 4248 4249 4740 7832 7833 6 7831 4740 5004 7833 7834 7835 6 7831 7832 7834 7953 7830 7954 6 7833 7832 7835 7954 7955 7956 6 7834 7832 5004 5005 7836 7956 6 7835 5005 5006 7837 7956 7957 6 7836 5006 7838 7957 7958 7959 6 7837 5006 4751 4752 7839 7959 6 7838 4752 4758 7840 7959 7960 6 7839 4758 7841 7960 7961 7847 6 7840 4758 4759 7842 7847 7962 6 7841 4759 4662 4663 7843 7962 6 7842 4663 4664 4690 7844 7962 6 7843 4690 4691 7845 7962 7846 6 7844 4691 4692 5159 5160 7846 5 7845 5160 7847 7962 7844 7 7846 5160 7848 7961 7840 7841 7962 6 7847 5160 5161 7849 8083 7961 6 7848 5161 5162 7850 8083 8084 6 7849 5162 5163 7851 8084 8085 6 7850 5163 7852 8085 8086 8087 6 7851 5163 5164 5165 7853 8087 6 7852 5165 7854 8087 8088 8089 6 7853 5165 5166 7855 8089 8090 7 7854 5166 4701 4702 4703 7856 8090 5 7855 4703 7309 7857 8090 7 7856 7309 7310 7858 8090 8091 8092 7 7857 7310 7311 7859 8092 8093 8094 6 7858 7311 7312 7860 8094 8095 6 7859 7312 7313 7314 7861 8095 6 7860 7314 7862 8095 8096 8097 6 7861 7314 7315 7863 8097 8098 6 7862 7315 7316 7864 8098 8099 6 7863 7316 7317 7865 8099 8100 6 7864 7317 7318 7866 8100 8101 6 7865 7318 7319 7867 8101 8102 6 7866 7319 7320 7868 8102 8103 6 7867 7320 7321 7322 7869 8103 6 7868 7322 7870 8103 8104 8105 6 7869 7322 7323 7871 8105 8106 6 7870 7323 7324 7325 7872 8106 6 7871 7325 7873 8106 8107 8108 6 7872 7325 7326 7874 8108 8109 6 7873 7326 7327 7328 7875 8109 6 7874 7328 7876 8109 8110 8111 6 7875 7328 7329 7330 7877 8111 6 7876 7330 7878 8111 8112 8113 6 7877 7330 7331 7332 7879 8113 6 7878 7332 7333 7880 8113 8114 6 7879 7333 7881 8114 8115 8116 6 7880 7333 7334 7335 7882 8116 6 7881 7335 7336 7337 7883 8116 6 7882 7337 7338 7884 8116 8117 7 7883 7338 7339 7885 8117 8118 8119 6 7884 7339 7340 7886 8119 8120 6 7885 7340 7341 7887 8120 8121 6 7886 7341 7342 7888 8121 8122 6 7887 7342 7889 8122 8123 8124 6 7888 7342 7343 7344 7890 8124 6 7889 7344 7345 7891 8124 8125 6 7890 7345 7346 7892 8125 8126 6 7891 7346 7347 7893 8126 8127 6 7892 7347 7348 7894 8127 8128 6 7893 7348 7349 7895 8128 8129 6 7894 7349 7896 8129 8130 8131 6 7895 7349 7350 7351 7897 8131 6 7896 7351 7352 7898 8131 8132 7 7897 7352 7353 7354 7899 8132 8133 5 7898 7354 7900 8133 8134 7 7899 7354 7355 7356 7901 8134 8135 6 7900 7356 7902 8135 8136 8137 5 7901 7356 7357 7903 8137 7 7902 7357 7904 8137 8138 8139 7905 5 7903 7357 7358 7359 7905 6 7904 7359 7906 8139 7903 8140 6 7905 7359 7360 7362 7907 8140 6 7906 7362 7908 8140 8141 8142 6 7907 7362 7363 7364 7909 8142 6 7908 7364 7910 8142 8143 8144 6 7909 7364 7365 7366 7911 8144 6 7910 7366 7372 7912 8144 8145 6 7911 7372 7913 8145 8146 8147 5 7912 7372 7373 7914 8147 7 7913 7373 7374 7915 8147 8148 8149 6 7914 7374 7916 8149 8150 8151 6 7915 7374 7375 7377 7917 8151 6 7916 7377 7918 7919 7920 8151 6 7917 7377 7378 7379 7602 7919 6 7918 7602 7917 7920 7921 7604 6 7917 7919 7921 7922 7923 8151 6 7920 7919 7922 7926 7927 7604 6 7920 7921 7923 7924 7925 7926 6 7920 7922 7924 8151 8152 8150 6 7923 7922 7925 8152 8153 8154 6 7924 7922 7926 8154 8155 8156 6 7925 7922 7921 7927 8156 7929 6 7926 7921 7604 7605 7928 7929 6 7927 7605 7929 7930 7610 7606 6 7927 7928 7930 8156 7926 8158 6 7929 7928 7610 8158 7617 7611 6 7810 7811 7932 8051 8346 7809 6 7931 7811 7812 7933 7934 8051 6 7932 7812 7934 7935 7936 7937 6 7932 7933 7935 8051 8052 8053 6 7934 7933 7936 8053 8054 8058 6 7935 7933 7937 8060 8058 8061 6 7936 7933 7812 7813 7938 8061 6 7937 7813 7814 7939 8061 8062 6 7938 7814 7815 7940 8062 8063 6 7939 7815 7817 7818 7941 8063 6 7940 7818 7819 7942 8063 8064 6 7941 7819 7943 8064 8065 8066 6 7942 7819 7820 7944 8066 8067 6 7943 7820 7821 7822 7945 8067 6 7944 7822 7946 8067 8068 8069 6 7945 7822 7823 7947 8069 8070 6 7946 7823 7824 7948 8070 8071 6 7947 7824 7825 7949 8071 8072 6 7948 7825 7827 7950 8072 8073 6 7949 7827 7951 8073 8074 8075 6 7950 7827 7828 7952 8075 8076 6 7951 7828 7953 8076 8077 7954 6 7952 7828 7829 7830 7833 7954 6 7953 7833 7834 7955 8077 7952 6 7954 7834 7956 8077 8078 8079 6 7955 7834 7835 7836 7957 8079 6 7956 7836 7837 7958 8079 8080 6 7957 7837 7959 8080 8081 8082 6 7958 7837 7838 7839 7960 8082 6 7959 7839 7840 7961 8082 8083 5 7960 7840 7847 8083 7848 6 7847 7841 7842 7843 7844 7846 6 7727 7728 7964 8467 8469 9765 6 7963 7728 7965 8467 8488 8489 6 7964 7728 7729 7247 7966 8489 6 7965 7247 7248 7967 8489 8490 6 7966 7248 7249 7968 8490 8491 6 7967 7249 7250 7969 8491 8492 6 7968 7250 7512 7514 7970 8492 6 7969 7514 7971 8494 8492 8495 6 7970 7514 7515 7972 8495 8496 6 7971 7515 7973 8496 8497 7975 6 7972 7515 7516 7519 7974 7975 6 7973 7519 7975 7976 7977 7978 6 7973 7974 7976 8497 7972 8498 6 7975 7974 7977 8501 8498 7982 6 7976 7974 7978 7980 7981 7982 6 7977 7974 7519 7520 7979 7980 6 7978 7520 7980 7989 7990 7522 6 7978 7979 7977 7981 7988 7989 6 7977 7980 7982 7983 7987 7988 6 7977 7981 7983 7984 8501 7976 6 7982 7981 7984 7985 7986 7987 6 7982 7983 7985 8501 8502 8503 6 7984 7983 7986 8503 8504 8505 6 7985 7983 7987 8505 8506 8507 6 7986 7983 7981 7988 8507 7994 7 7987 7981 7980 7989 7992 7993 7994 5 7988 7980 7979 7990 7992 7 7989 7979 7522 7527 7991 7549 7992 5 7990 7527 7528 7547 7549 6 7990 7549 7550 7993 7988 7989 6 7992 7550 7552 7988 7994 7995 6 7988 7993 7995 8507 7987 8508 6 7994 7993 7552 8508 7998 7996 6 7552 7553 7559 7997 7998 7995 6 7996 7559 7560 7998 7999 8000 6 7996 7997 7999 8508 7995 8509 6 7998 7997 8000 8509 8510 8511 6 7999 7997 7560 7567 8001 8511 6 8000 7567 7568 7571 8002 8511 7 8001 7571 7572 8003 8511 8523 8512 6 8002 7572 7573 8004 8523 8524 7 8003 7573 7575 7578 8005 8521 8524 7 8004 7578 8006 8520 8518 8521 8542 5 8005 7578 7579 8007 8542 6 8006 7579 8008 8611 8541 8542 6 8007 7579 7580 7581 8009 8611 6 8008 7581 7582 8010 8011 8611 6 8009 7582 8011 8012 8013 7583 8 8009 8010 8012 8610 8538 8539 8541 8611 5 8011 8010 8013 8014 8610 6 8012 8010 8014 7588 7583 7586 7 8012 8013 7588 7730 8015 8609 8610 6 8014 7730 7731 8016 8608 8609 6 8015 7731 7735 8017 8612 8608 6 8016 7735 7736 8018 8612 8613 6 8017 7736 8019 8613 8614 8615 6 8018 7736 7737 8020 8615 8616 6 8019 7737 8021 8616 8619 8620 6 8020 7737 7738 8022 8023 8620 6 8021 7738 8023 8024 9767 7739 6 8021 8022 8024 8025 8620 8621 6 8023 8022 8025 8026 7743 9767 6 8023 8024 8026 8621 8622 8029 6 8025 8024 7743 7744 8027 8029 6 8026 7744 8028 8029 8030 8031 6 8027 7744 7745 7749 8031 8032 6 8026 8027 8030 8622 8025 8623 6 8029 8027 8031 8629 8623 8630 6 8030 8027 8028 8032 8034 8630 6 8031 8028 7749 8033 8034 8035 6 8032 7749 7750 8035 8036 8037 6 8031 8032 8035 8630 8631 8632 6 8034 8032 8033 8036 8632 8633 6 8035 8033 8037 7762 8636 8633 6 8036 8033 7750 7760 7761 7762 6 7785 7786 8039 8333 8334 8335 6 8038 7786 7788 8040 8042 8335 6 8039 7788 8041 8042 8043 8044 6 8040 7788 8044 8045 8046 7789 6 8039 8040 8043 8335 8336 8337 6 8042 8040 8044 8337 8338 8342 6 8043 8040 8041 8045 8342 8343 6 8044 8041 8046 8343 8344 8047 6 8045 8041 7789 7795 7796 8047 6 8046 7796 8048 7807 8344 8045 6 8047 7796 7807 7804 8049 7797 6 7804 8048 7797 7803 7802 8050 6 7802 8049 7797 7798 7800 7801 6 7931 7932 7934 8052 8346 8347 6 8051 7934 8053 8347 8348 8349 6 8052 7934 7935 8054 8055 8349 6 8053 7935 8055 8056 8057 8058 6 8053 8054 8056 8349 8350 8351 6 8055 8054 8057 8351 8352 8353 6 8056 8054 8058 8059 8353 8354 6 8057 8054 8059 8060 7936 7935 6 8057 8058 8060 8354 8355 8356 6 8059 8058 7936 8061 8356 8357 6 8060 7936 7937 7938 8062 8357 6 8061 7938 7939 8063 8357 8359 6 8062 7939 7940 7941 8064 8359 6 8063 7941 7942 8065 8360 8359 6 8064 7942 8066 8360 8361 8362 6 8065 7942 7943 8067 8362 8363 6 8066 7943 7944 7945 8068 8363 6 8067 7945 8069 8363 8364 8365 6 8068 7945 7946 8070 8365 8366 6 8069 7946 7947 8071 8366 8367 6 8070 7947 7948 8072 8367 8368 6 8071 7948 7949 8073 8368 8369 6 8072 7949 7950 8074 8369 8370 6 8073 7950 8075 8370 8371 8372 6 8074 7950 7951 8076 8372 8373 6 8075 7951 7952 8077 8373 8374 6 8076 7952 7954 7955 8078 8374 6 8077 7955 8079 8376 8374 8377 6 8078 7955 7956 7957 8080 8377 6 8079 7957 7958 8081 8377 8378 6 8080 7958 8082 8210 8378 8379 6 8081 7958 7959 7960 8083 8210 7 8082 7960 7961 7848 7849 8084 8210 6 8083 7849 7850 8085 8210 8211 6 8084 7850 7851 8086 8211 8212 6 8085 7851 8087 8212 8213 8214 6 8086 7851 7852 7853 8088 8214 6 8087 7853 8089 8214 8215 8216 6 8088 7853 7854 8090 8216 8091 6 8089 7854 7855 7856 7857 8091 5 8090 7857 8092 8216 8089 7 8091 7857 7858 8093 8216 8217 8218 5 8092 7858 8094 8218 8219 6 8093 7858 7859 8095 8219 8220 6 8094 7859 7860 7861 8096 8220 6 8095 7861 8097 8220 8221 8222 6 8096 7861 7862 8098 8222 8223 6 8097 7862 7863 8099 8223 8224 6 8098 7863 7864 8100 8224 8225 6 8099 7864 7865 8101 8225 8226 6 8100 7865 7866 8102 8226 8227 6 8101 7866 7867 8103 8227 8228 6 8102 7867 7868 7869 8104 8228 6 8103 7869 8105 8228 8229 8230 6 8104 7869 7870 8106 8230 8231 6 8105 7870 7871 7872 8107 8231 6 8106 7872 8108 8231 8232 8233 6 8107 7872 7873 8109 8233 8234 6 8108 7873 7874 7875 8110 8234 6 8109 7875 8111 8234 8235 8236 6 8110 7875 7876 7877 8112 8236 6 8111 7877 8113 8236 8237 8238 6 8112 7877 7878 7879 8114 8238 6 8113 7879 7880 8115 8238 8239 6 8114 7880 8116 8239 8240 8117 6 8115 7880 7881 7882 7883 8117 6 8116 7883 7884 8118 8240 8115 6 8117 7884 8119 8240 8241 8242 5 8118 7884 7885 8120 8242 6 8119 7885 7886 8121 8242 8243 6 8120 7886 7887 8122 8243 8244 6 8121 7887 7888 8123 8244 8245 6 8122 7888 8124 8245 8246 8247 6 8123 7888 7889 7890 8125 8247 6 8124 7890 7891 8126 8247 8248 6 8125 7891 7892 8127 8248 8249 6 8126 7892 7893 8128 8249 8250 6 8127 7893 7894 8129 8250 8251 6 8128 7894 7895 8130 8251 8252 6 8129 7895 8131 8252 8253 8254 6 8130 7895 7896 7897 8132 8254 6 8131 7897 7898 8133 8254 8255 5 8132 7898 7899 8134 8255 7 8133 7899 7900 8135 8255 8256 8257 5 8134 7900 7901 8136 8257 7 8135 7901 8137 8257 8258 8259 8260 6 8136 7901 7902 7903 8138 8260 6 8137 7903 8139 8260 8261 8262 6 8138 7903 7905 8140 8262 8263 6 8139 7905 7906 7907 8141 8263 6 8140 7907 8142 8263 8264 8265 6 8141 7907 7908 7909 8143 8265 6 8142 7909 8144 8265 8266 8267 6 8143 7909 7910 7911 8145 8267 6 8144 7911 7912 8146 8267 8268 6 8145 7912 8147 8268 8269 8270 6 8146 7912 7913 7914 8148 8270 6 8147 7914 8149 8270 8271 8272 6 8148 7914 7915 8150 8152 8272 5 8149 7915 8151 8152 7923 6 8150 7915 7916 7917 7920 7923 7 8149 8150 7923 7924 8153 8272 8273 5 8152 7924 8154 8273 8274 7 8153 7924 7925 8155 8274 8275 8276 6 8154 7925 8156 8157 8276 8277 7 8155 7925 8157 7926 7929 8158 7618 6 8155 8156 7618 7619 8159 8277 5 8156 7929 7930 7617 7618 6 8157 7619 8160 8277 8278 8279 6 8159 7619 7620 8161 8279 8280 7 8160 7620 7621 8162 8280 8281 8282 5 8161 7621 8163 8282 8283 7 8162 7621 7622 8164 8283 8284 8165 6 8163 7622 7623 7624 7625 8165 7 8164 7625 7626 7628 8166 8284 8163 6 8165 7628 7629 7631 8167 8284 6 8166 7631 8168 8169 8284 8283 6 8167 7631 8169 8170 8171 7632 6 8167 8168 8170 8283 8285 8286 6 8169 8168 8171 8286 8287 8288 6 8170 8168 7632 8172 8173 8288 6 8171 7632 8173 8174 7634 7633 6 8171 8172 8174 8288 8289 8290 6 8173 8172 7634 8175 8290 8291 6 8174 7634 7635 7637 8176 8291 6 8175 7637 7639 8177 8291 8292 6 8176 7639 8178 8292 8293 8294 6 8177 7639 7640 8179 8294 8295 6 8178 7640 8180 8295 8296 8297 6 8179 7640 7641 8181 8297 8298 6 8180 7641 8182 8308 8298 8309 6 8181 7641 7642 8183 8184 8309 6 8182 7642 8184 7645 7644 7643 6 8182 8183 7645 8185 8309 8310 6 8184 7645 7646 8186 8310 8311 7 8185 7646 7647 7648 8187 8311 8312 6 8186 7648 7649 8188 8312 8313 6 8187 7649 8189 8313 8314 8315 6 8188 7649 7650 8190 8315 8316 6 8189 7650 7651 8191 8316 8201 6 8190 7651 8192 8198 8200 8201 6 8191 7651 7652 8193 8198 8194 6 8192 7652 7653 7658 7659 8194 6 8193 7659 8195 8197 8198 8192 6 8194 7659 7660 7663 8196 8197 6 8195 7663 8197 8209 8205 7664 6 8195 8196 8194 8198 8199 8205 6 8194 8197 8199 8200 8191 8192 6 8198 8197 8200 8203 8204 8205 6 8198 8199 8191 8201 8202 8203 6 8191 8200 8202 8316 8190 8317 6 8201 8200 8203 8317 8318 8319 6 8202 8200 8199 8204 8206 8319 6 8203 8199 8205 8206 7700 8207 7 8204 8199 8207 8208 8209 8196 8197 5 8203 8204 7700 8319 7701 7 7700 8204 8205 7699 7670 7668 8208 6 7668 8207 8205 8209 7665 7666 5 8208 8205 8196 7664 7665 6 8081 8082 8083 8084 8211 8379 5 8210 8084 8085 8212 8379 6 8211 8085 8086 8213 8379 8380 6 8212 8086 8214 8380 8381 8382 6 8213 8086 8087 8088 8215 8382 6 8214 8088 8216 8382 8383 8217 6 8215 8088 8089 8091 8092 8217 6 8216 8092 8218 8383 8215 8384 6 8217 8092 8093 8219 8384 8385 6 8218 8093 8094 8220 8385 8386 6 8219 8094 8095 8096 8221 8386 5 8220 8096 8222 8386 8387 6 8221 8096 8097 8223 8387 8388 6 8222 8097 8098 8224 8388 8389 6 8223 8098 8099 8225 8389 8390 6 8224 8099 8100 8226 8390 8391 6 8225 8100 8101 8227 8391 8392 6 8226 8101 8102 8228 8392 8393 6 8227 8102 8103 8104 8229 8393 6 8228 8104 8230 8393 8394 8395 6 8229 8104 8105 8231 8395 8396 6 8230 8105 8106 8107 8232 8396 6 8231 8107 8233 8396 8397 8398 6 8232 8107 8108 8234 8398 8399 6 8233 8108 8109 8110 8235 8399 6 8234 8110 8236 8399 8400 8401 6 8235 8110 8111 8112 8237 8401 6 8236 8112 8238 8401 8402 8403 6 8237 8112 8113 8114 8239 8403 6 8238 8114 8115 8240 8403 8404 6 8239 8115 8117 8118 8241 8404 6 8240 8118 8242 8404 8405 8406 6 8241 8118 8119 8120 8243 8406 6 8242 8120 8121 8244 8406 8407 6 8243 8121 8122 8245 8407 8408 6 8244 8122 8123 8246 8408 8409 6 8245 8123 8247 8409 8410 8411 6 8246 8123 8124 8125 8248 8411 6 8247 8125 8126 8249 8411 8412 6 8248 8126 8127 8250 8412 8413 6 8249 8127 8128 8251 8413 8414 6 8250 8128 8129 8252 8414 8415 6 8251 8129 8130 8253 8415 8416 6 8252 8130 8254 8416 8417 8418 6 8253 8130 8131 8132 8255 8418 7 8254 8132 8133 8134 8256 8418 8419 5 8255 8134 8257 8419 8420 7 8256 8134 8135 8136 8258 8420 8421 5 8257 8136 8259 8421 8422 6 8258 8136 8260 8422 8423 8261 5 8259 8136 8137 8138 8261 6 8260 8138 8262 8423 8259 8424 6 8261 8138 8139 8263 8424 8425 6 8262 8139 8140 8141 8264 8425 6 8263 8141 8265 8425 8426 8427 6 8264 8141 8142 8143 8266 8427 6 8265 8143 8267 8427 8428 8429 7 8266 8143 8144 8145 8268 8429 8430 6 8267 8145 8146 8269 8430 8431 6 8268 8146 8270 8431 8432 8433 6 8269 8146 8147 8148 8271 8433 6 8270 8148 8272 8433 8434 8435 6 8271 8148 8149 8152 8273 8435 5 8272 8152 8153 8274 8435 7 8273 8153 8154 8275 8435 8436 8437 6 8274 8154 8276 8437 8438 8439 6 8275 8154 8155 8277 8439 8278 5 8276 8155 8157 8159 8278 6 8277 8159 8279 8439 8276 8440 6 8278 8159 8160 8280 8440 8441 7 8279 8160 8161 8281 8441 8442 8446 6 8280 8161 8282 8446 8447 8285 5 8281 8161 8162 8283 8285 7 8282 8162 8163 8284 8167 8169 8285 5 8283 8163 8165 8166 8167 6 8283 8169 8286 8447 8281 8282 6 8285 8169 8170 8287 8447 8448 6 8286 8170 8288 8448 8450 8451 6 8287 8170 8171 8173 8289 8451 6 8288 8173 8290 8451 8452 8453 6 8289 8173 8174 8291 8453 8454 6 8290 8174 8175 8176 8292 8454 6 8291 8176 8177 8293 8454 8455 6 8292 8177 8294 8455 8456 8457 6 8293 8177 8178 8295 8457 8458 6 8294 8178 8179 8296 8458 8459 6 8295 8179 8297 8462 8459 8300 6 8296 8179 8180 8298 8299 8300 6 8297 8180 8299 8308 8306 8181 6 8297 8298 8300 8301 8302 8306 6 8297 8299 8301 8462 8296 8463 6 8300 8299 8302 8303 8463 8464 6 8301 8299 8303 8304 8305 8306 6 8301 8302 8304 8464 8465 8466 6 8303 8302 8305 8466 8467 8468 6 8304 8302 8306 8307 8471 8468 6 8305 8302 8299 8307 8308 8298 6 8305 8306 8308 8471 8472 8473 6 8307 8306 8298 8181 8309 8473 6 8308 8181 8182 8184 8310 8473 6 8309 8184 8185 8311 8473 8474 6 8310 8185 8186 8312 8474 8475 5 8311 8186 8187 8313 8475 6 8312 8187 8188 8314 8475 8476 6 8313 8188 8315 8479 8476 8480 6 8314 8188 8189 8316 8480 8481 6 8315 8189 8190 8201 8317 8481 5 8316 8201 8202 8318 8481 6 8317 8202 8319 8481 8482 7709 7 8318 8202 8203 8206 7701 7708 7709 6 7766 7767 8321 8322 8854 8855 6 8320 7767 7768 8322 8323 7770 7 8320 8321 8323 8855 8856 8857 8324 5 8322 8321 7770 7772 8324 6 8323 7772 8325 8857 8322 8858 6 8324 7772 7773 8326 8858 8329 6 8325 7773 7778 8327 8328 8329 6 8326 7778 7779 7780 7781 8328 6 8327 7781 8326 8329 8330 7782 6 8326 8328 8330 8858 8325 8859 6 8329 8328 7782 7783 8331 8859 6 8330 7783 7784 8332 8859 8860 6 8331 7784 8333 8866 8863 8860 6 8332 7784 7785 8038 8334 8866 6 8333 8038 8335 8867 8866 8868 6 8334 8038 8039 8042 8336 8868 6 8335 8042 8337 8868 8869 8870 6 8336 8042 8043 8338 8339 8870 6 8337 8043 8339 8340 8341 8342 6 8337 8338 8340 8870 8871 8875 6 8339 8338 8341 8875 8876 8348 6 8340 8338 8342 8348 8347 8877 6 8341 8338 8043 8044 8343 8877 6 8342 8044 8045 8344 8345 8877 6 8343 8045 8345 7808 7807 8047 6 8343 8344 7808 7809 8346 8877 6 8345 7809 7931 8051 8347 8877 6 8346 8051 8052 8348 8341 8877 6 8347 8052 8349 8876 8340 8341 6 8348 8052 8053 8055 8350 8876 6 8349 8055 8351 8903 8876 8902 6 8350 8055 8056 8352 8902 8904 6 8351 8056 8353 8904 8905 8906 6 8352 8056 8057 8354 8906 8907 6 8353 8057 8059 8355 8907 8908 6 8354 8059 8356 8908 8909 8910 6 8355 8059 8060 8357 8358 8910 6 8356 8060 8061 8062 8358 8359 6 8356 8357 8359 8360 8910 8911 6 8358 8357 8062 8063 8360 8064 6 8358 8359 8064 8065 8361 8911 6 8360 8065 8362 8913 8911 8914 6 8361 8065 8066 8363 8914 8915 6 8362 8066 8067 8068 8364 8915 6 8363 8068 8365 8917 8915 8918 6 8364 8068 8069 8366 8918 8919 6 8365 8069 8070 8367 8919 8920 6 8366 8070 8071 8368 8920 8921 6 8367 8071 8072 8369 8921 8922 6 8368 8072 8073 8370 8922 8923 6 8369 8073 8074 8371 8923 8924 6 8370 8074 8372 8924 8925 8926 6 8371 8074 8075 8373 8926 8927 6 8372 8075 8076 8374 8375 8927 6 8373 8076 8077 8375 8376 8078 6 8373 8374 8376 8927 8928 8929 6 8375 8374 8078 8377 8929 8930 6 8376 8078 8079 8080 8378 8930 6 8377 8080 8081 8379 8930 8380 6 8378 8081 8210 8211 8212 8380 7 8379 8212 8213 8381 8930 8378 8931 5 8380 8213 8382 8931 8932 7 8381 8213 8214 8215 8383 8744 8932 6 8382 8215 8217 8384 8642 8744 6 8383 8217 8218 8385 8642 8643 6 8384 8218 8219 8386 8643 8644 6 8385 8219 8220 8221 8387 8644 7 8386 8221 8222 8388 8644 8645 8646 6 8387 8222 8223 8389 8646 8647 6 8388 8223 8224 8390 8647 8648 6 8389 8224 8225 8391 8648 8649 7 8390 8225 8226 8392 8649 8650 8651 6 8391 8226 8227 8393 8651 8652 6 8392 8227 8228 8229 8394 8652 6 8393 8229 8395 8652 8653 8654 6 8394 8229 8230 8396 8654 8655 6 8395 8230 8231 8232 8397 8655 5 8396 8232 8398 8655 8656 6 8397 8232 8233 8399 8656 8657 7 8398 8233 8234 8235 8400 8657 8658 5 8399 8235 8401 8658 8659 7 8400 8235 8236 8237 8402 8659 8660 5 8401 8237 8403 8660 8661 6 8402 8237 8238 8239 8404 8661 6 8403 8239 8240 8241 8405 8661 6 8404 8241 8406 8661 8662 8663 6 8405 8241 8242 8243 8407 8663 6 8406 8243 8244 8408 8663 8664 7 8407 8244 8245 8409 8664 8665 8666 6 8408 8245 8246 8410 8666 8667 6 8409 8246 8411 8667 8668 8669 6 8410 8246 8247 8248 8412 8669 6 8411 8248 8249 8413 8669 8670 6 8412 8249 8250 8414 8670 8671 6 8413 8250 8251 8415 8671 8672 6 8414 8251 8252 8416 8672 8673 6 8415 8252 8253 8417 8673 8674 6 8416 8253 8418 8674 8675 8676 6 8417 8253 8254 8255 8419 8676 6 8418 8255 8256 8420 8676 8677 6 8419 8256 8257 8421 8677 8678 6 8420 8257 8258 8422 8678 8679 6 8421 8258 8259 8423 8679 8680 6 8422 8259 8261 8424 8680 8681 7 8423 8261 8262 8425 8681 8682 8683 6 8424 8262 8263 8264 8426 8683 6 8425 8264 8427 8683 8684 8688 6 8426 8264 8265 8266 8428 8688 6 8427 8266 8429 8688 8689 8690 6 8428 8266 8267 8430 8690 8691 5 8429 8267 8268 8431 8691 6 8430 8268 8269 8432 8543 8691 6 8431 8269 8433 8543 8544 8545 6 8432 8269 8270 8271 8434 8545 6 8433 8271 8435 8545 8546 8547 7 8434 8271 8272 8273 8274 8436 8547 6 8435 8274 8437 8547 8548 8549 6 8436 8274 8275 8438 8549 8550 6 8437 8275 8439 8550 8551 8440 5 8438 8275 8276 8278 8440 7 8439 8278 8279 8441 8551 8438 8552 6 8440 8279 8280 8442 8443 8552 6 8441 8280 8443 8444 8445 8446 6 8441 8442 8444 8552 8553 8554 6 8443 8442 8445 8554 8555 8556 7 8444 8442 8446 8447 8448 8449 8556 5 8445 8442 8280 8281 8447 6 8446 8281 8285 8286 8448 8445 6 8447 8286 8287 8445 8449 8450 5 8445 8448 8450 8556 8557 6 8449 8448 8287 8451 8557 8558 7 8450 8287 8288 8289 8452 8558 8559 6 8451 8289 8453 8559 8560 8561 6 8452 8289 8290 8454 8561 8562 6 8453 8290 8291 8292 8455 8562 6 8454 8292 8293 8456 8562 8563 6 8455 8293 8457 8563 8564 8565 6 8456 8293 8294 8458 8565 8566 6 8457 8294 8295 8459 8460 8566 6 8458 8295 8460 8461 8462 8296 6 8458 8459 8461 8566 8567 8568 6 8460 8459 8462 8568 8569 8570 6 8461 8459 8296 8300 8463 8570 6 8462 8300 8301 8464 8570 8571 6 8463 8301 8303 8465 8571 8572 6 8464 8303 8466 8572 8573 8574 6 8465 8303 8304 8467 8574 8488 7 8466 8304 8468 8469 7963 7964 8488 6 8467 8304 8469 8470 8471 8305 6 8467 8468 8470 7963 9764 9765 7 8469 8468 8471 9095 8486 9764 8487 6 8470 8468 8305 8307 8472 9095 6 8471 8307 8473 8477 9095 8474 6 8472 8307 8308 8309 8310 8474 6 8473 8310 8311 8475 8477 8472 6 8474 8311 8312 8313 8476 8477 6 8475 8313 8477 8478 8479 8314 7 8475 8476 8478 8486 9095 8472 8474 6 8477 8476 8479 8484 8485 8486 6 8478 8476 8314 8480 8484 8483 6 8479 8314 8315 8481 8483 8482 6 8480 8315 8316 8317 8318 8482 6 8481 8318 7709 7710 8483 8480 7 8482 7710 7711 7714 8484 8479 8480 5 8483 7714 8485 8478 8479 6 8484 7714 7715 8478 8486 8487 6 8478 8485 8487 8470 9095 8477 6 8486 8485 9766 9764 8470 7715 5 8467 7964 8489 8574 8466 7 8488 7964 7965 7966 8490 8574 8575 5 8489 7966 7967 8491 8575 7 8490 7967 7968 8492 8493 8575 8576 6 8491 7968 8493 8494 7970 7969 5 8491 8492 8494 8576 8577 6 8493 8492 7970 8495 8577 8578 6 8494 7970 7971 8496 8578 8579 6 8495 7971 7972 8497 8579 8580 6 8496 7972 7975 8498 8499 8580 6 8497 7975 8499 8500 8501 7976 6 8497 8498 8500 8580 8581 8582 6 8499 8498 8501 8582 8583 8502 6 8500 8498 7976 7982 7984 8502 6 8501 7984 8503 8583 8500 8584 6 8502 7984 7985 8504 8587 8584 6 8503 7985 8505 8528 8587 8527 6 8504 7985 7986 8506 8527 8589 6 8505 7986 8507 8589 8514 8590 6 8506 7986 7987 7994 8508 8590 6 8507 7994 7995 7998 8509 8590 6 8508 7998 7999 8510 8514 8590 6 8509 7999 8511 8512 8513 8514 6 8510 7999 8000 8001 8002 8512 6 8510 8511 8513 8522 8523 8002 6 8510 8512 8514 8515 8516 8522 7 8510 8513 8515 8589 8506 8590 8509 6 8514 8513 8516 8517 8527 8589 6 8515 8513 8517 8518 8521 8522 6 8515 8516 8518 8519 8525 8527 6 8517 8516 8519 8520 8005 8521 6 8517 8518 8520 8525 8526 8532 6 8519 8518 8005 8542 8540 8532 6 8005 8518 8004 8516 8522 8524 6 8521 8516 8513 8512 8523 8524 5 8522 8512 8002 8003 8524 5 8523 8003 8522 8521 8004 6 8517 8519 8526 8527 8528 8529 6 8525 8519 8529 8530 8531 8532 7 8517 8525 8528 8504 8505 8589 8515 5 8527 8525 8529 8587 8504 6 8528 8525 8526 8530 8588 8587 6 8529 8526 8531 8603 8588 8604 6 8530 8526 8532 8533 8534 8604 6 8531 8526 8533 8520 8540 8519 6 8531 8532 8534 8535 8539 8540 6 8531 8533 8535 8536 8604 8605 6 8534 8533 8536 8537 8538 8539 6 8534 8535 8537 8605 8606 8607 6 8536 8535 8538 8607 8608 8609 6 8537 8535 8539 8609 8610 8011 6 8538 8535 8533 8540 8541 8011 6 8539 8533 8541 8542 8520 8532 6 8539 8540 8542 8011 8611 8007 6 8541 8540 8520 8007 8006 8005 6 8431 8432 8544 8691 8692 8693 6 8543 8432 8545 8693 8694 8695 6 8544 8432 8433 8434 8546 8695 6 8545 8434 8547 8695 8696 8548 5 8546 8434 8435 8436 8548 6 8547 8436 8549 8696 8546 8697 6 8548 8436 8437 8550 8697 8698 6 8549 8437 8438 8551 8698 8699 6 8550 8438 8440 8552 8699 8553 5 8551 8440 8441 8443 8553 7 8552 8443 8554 8699 8551 8700 8701 6 8553 8443 8444 8555 8701 8702 6 8554 8444 8556 8702 8703 8704 6 8555 8444 8445 8449 8557 8704 6 8556 8449 8450 8558 8704 8705 6 8557 8450 8451 8559 8705 8706 6 8558 8451 8452 8560 8706 8707 6 8559 8452 8561 8707 8708 8709 5 8560 8452 8453 8562 8709 6 8561 8453 8454 8455 8563 8709 6 8562 8455 8456 8564 8709 8710 6 8563 8456 8565 8710 8711 8712 6 8564 8456 8457 8566 8712 8713 7 8565 8457 8458 8460 8567 8713 8714 5 8566 8460 8568 8714 8715 6 8567 8460 8461 8569 8715 8716 6 8568 8461 8570 8716 8717 8718 6 8569 8461 8462 8463 8571 8718 7 8570 8463 8464 8572 8591 8593 8718 5 8571 8464 8465 8573 8591 7 8572 8465 8574 8575 8576 8577 8591 6 8573 8465 8466 8488 8489 8575 6 8574 8489 8490 8491 8576 8573 5 8575 8491 8493 8577 8573 7 8576 8493 8494 8578 8573 8591 8592 6 8577 8494 8495 8579 8595 8592 6 8578 8495 8496 8580 8595 8596 6 8579 8496 8497 8499 8581 8596 6 8580 8499 8582 8596 8597 8598 6 8581 8499 8500 8583 8598 8599 6 8582 8500 8502 8584 8585 8599 6 8583 8502 8585 8586 8587 8503 6 8583 8584 8586 8599 8600 8601 6 8585 8584 8587 8588 8601 8602 7 8586 8584 8588 8529 8528 8504 8503 6 8586 8587 8529 8602 8603 8530 5 8527 8505 8506 8514 8515 5 8514 8506 8507 8509 8508 6 8573 8577 8592 8572 8571 8593 6 8591 8577 8593 8594 8595 8578 5 8571 8591 8592 8594 8718 7 8593 8592 8595 8718 8717 8719 8720 6 8594 8592 8578 8579 8596 8720 7 8595 8579 8580 8581 8597 8720 8721 6 8596 8581 8598 8721 8722 8723 6 8597 8581 8582 8599 8723 8724 6 8598 8582 8583 8585 8600 8724 6 8599 8585 8601 8724 8725 8726 6 8600 8585 8586 8602 8726 8727 6 8601 8586 8588 8603 8727 8728 5 8602 8588 8530 8604 8728 6 8603 8530 8531 8534 8605 8728 6 8604 8534 8536 8606 8728 8729 6 8605 8536 8607 8729 8732 8733 6 8606 8536 8537 8608 8612 8733 6 8607 8537 8609 8612 8016 8015 6 8608 8537 8538 8610 8015 8014 5 8609 8538 8011 8014 8012 5 8011 8541 8009 8008 8007 6 8607 8608 8016 8017 8613 8733 6 8612 8017 8018 8614 8733 8734 6 8613 8018 8615 8734 8735 8736 6 8614 8018 8019 8616 8617 8736 6 8615 8019 8020 8617 8618 8619 6 8615 8616 8618 8736 8737 8738 6 8617 8616 8619 8738 8739 8740 6 8618 8616 8020 8620 8740 8743 6 8619 8020 8021 8023 8621 8743 6 8620 8023 8025 8622 8625 8743 6 8621 8025 8029 8623 8624 8625 6 8622 8029 8624 8628 8629 8030 6 8622 8623 8625 8626 8627 8628 6 8622 8624 8626 8742 8743 8621 6 8625 8624 8627 8838 8742 8839 6 8626 8624 8628 8839 8840 8841 6 8627 8624 8623 8629 8841 8842 6 8628 8623 8030 8630 8842 8843 6 8629 8030 8031 8034 8631 8843 6 8630 8034 8632 8843 8844 8845 6 8631 8034 8035 8633 8634 8845 6 8632 8035 8634 8635 8636 8036 6 8632 8633 8635 8845 8846 8847 6 8634 8633 8636 8637 8638 8847 6 8635 8633 8637 8641 7762 8036 6 8635 8636 8638 8639 8640 8641 6 8635 8637 8639 8847 8849 8850 6 8638 8637 8640 8850 8851 8852 6 8639 8637 8641 8852 8853 7763 5 8640 8637 8636 7762 7763 6 8383 8384 8643 8744 8745 8746 6 8642 8384 8385 8644 8746 8747 6 8643 8385 8386 8387 8645 8747 6 8644 8387 8646 8747 8748 8749 6 8645 8387 8388 8647 8749 8750 6 8646 8388 8389 8648 8750 8751 6 8647 8389 8390 8649 8751 8752 6 8648 8390 8391 8650 8752 8753 6 8649 8391 8651 8753 8754 8755 5 8650 8391 8392 8652 8755 6 8651 8392 8393 8394 8653 8755 6 8652 8394 8654 8755 8756 8757 6 8653 8394 8395 8655 8757 8758 6 8654 8395 8396 8397 8656 8758 6 8655 8397 8398 8657 8758 8759 7 8656 8398 8399 8658 8759 8760 8761 5 8657 8399 8400 8659 8761 7 8658 8400 8401 8660 8761 8762 8763 5 8659 8401 8402 8661 8763 8 8660 8402 8403 8404 8405 8662 8763 8764 5 8661 8405 8663 8764 8765 6 8662 8405 8406 8407 8664 8765 6 8663 8407 8408 8665 8765 8766 6 8664 8408 8666 8766 8767 8768 5 8665 8408 8409 8667 8768 6 8666 8409 8410 8668 8768 8769 6 8667 8410 8669 8769 8770 8771 6 8668 8410 8411 8412 8670 8771 6 8669 8412 8413 8671 8771 8772 6 8670 8413 8414 8672 8772 8773 6 8671 8414 8415 8673 8773 8774 6 8672 8415 8416 8674 8774 8775 6 8673 8416 8417 8675 8775 8776 6 8674 8417 8676 8776 8777 8778 6 8675 8417 8418 8419 8677 8778 6 8676 8419 8420 8678 8778 8779 6 8677 8420 8421 8679 8779 8780 6 8678 8421 8422 8680 8780 8781 6 8679 8422 8423 8681 8781 8782 6 8680 8423 8424 8682 8782 8783 6 8681 8424 8683 8783 8784 8685 6 8682 8424 8425 8426 8684 8685 6 8683 8426 8685 8686 8687 8688 5 8683 8684 8686 8784 8682 6 8685 8684 8687 8784 8785 8786 6 8686 8684 8688 8786 8787 8788 7 8687 8684 8426 8427 8428 8689 8788 5 8688 8428 8690 8788 8789 6 8689 8428 8429 8691 8789 8790 7 8690 8429 8430 8431 8543 8692 8790 6 8691 8543 8693 8790 8791 8792 5 8692 8543 8544 8694 8792 7 8693 8544 8695 8792 8793 8794 8795 6 8694 8544 8545 8546 8696 8795 6 8695 8546 8548 8697 8795 8796 7 8696 8548 8549 8698 8796 8797 8798 6 8697 8549 8550 8699 8798 8799 6 8698 8550 8551 8553 8700 8799 6 8699 8553 8701 8799 8800 8801 6 8700 8553 8554 8702 8801 8804 6 8701 8554 8555 8703 8804 8805 6 8702 8555 8704 8805 8806 8807 6 8703 8555 8556 8557 8705 8807 6 8704 8557 8558 8706 8807 8808 6 8705 8558 8559 8707 8808 8809 6 8706 8559 8560 8708 8809 8810 6 8707 8560 8709 8810 8811 8812 7 8708 8560 8561 8562 8563 8710 8812 5 8709 8563 8564 8711 8812 7 8710 8564 8712 8812 8813 8814 8815 6 8711 8564 8565 8713 8815 8816 6 8712 8565 8566 8714 8816 8817 5 8713 8566 8567 8715 8817 7 8714 8567 8568 8716 8817 8818 8819 6 8715 8568 8569 8717 8819 8820 6 8716 8569 8718 8594 8719 8820 6 8717 8569 8570 8571 8593 8594 6 8717 8594 8720 8820 8821 8721 5 8719 8594 8595 8596 8721 6 8720 8596 8597 8722 8821 8719 6 8721 8597 8723 8821 8822 8823 5 8722 8597 8598 8724 8823 6 8723 8598 8599 8600 8725 8823 6 8724 8600 8726 8823 8824 8825 6 8725 8600 8601 8727 8825 8826 6 8726 8601 8602 8728 8826 8730 7 8727 8602 8603 8604 8605 8729 8730 6 8728 8605 8606 8730 8731 8732 5 8728 8729 8731 8826 8727 6 8730 8729 8732 8826 8828 8829 6 8731 8729 8606 8733 8829 8830 7 8732 8606 8607 8612 8613 8734 8830 6 8733 8613 8614 8735 8831 8830 6 8734 8614 8736 8831 8832 8737 5 8735 8614 8615 8617 8737 6 8736 8617 8738 8832 8735 8833 6 8737 8617 8618 8739 8833 8834 6 8738 8618 8740 8741 8834 8835 6 8739 8618 8619 8741 8742 8743 6 8739 8740 8742 8835 8836 8837 7 8741 8740 8743 8625 8837 8838 8626 6 8742 8740 8625 8621 8620 8619 6 8382 8383 8642 8745 8932 8933 5 8744 8642 8746 8933 8934 6 8745 8642 8643 8747 8934 8935 6 8746 8643 8644 8645 8748 8935 6 8747 8645 8749 8935 8936 8937 6 8748 8645 8646 8750 8937 8938 6 8749 8646 8647 8751 8938 8939 6 8750 8647 8648 8752 8939 8940 6 8751 8648 8649 8753 8940 8941 6 8752 8649 8650 8754 8941 8942 6 8753 8650 8755 8942 8943 8944 7 8754 8650 8651 8652 8653 8756 8944 5 8755 8653 8757 8944 8945 6 8756 8653 8654 8758 8945 8946 6 8757 8654 8655 8656 8759 8946 7 8758 8656 8657 8760 8946 8947 8948 5 8759 8657 8761 8948 8949 6 8760 8657 8658 8659 8762 8949 6 8761 8659 8763 8949 8950 8951 6 8762 8659 8660 8661 8764 8951 5 8763 8661 8662 8765 8951 7 8764 8662 8663 8664 8766 8951 8952 6 8765 8664 8665 8767 8952 8953 6 8766 8665 8768 8953 8954 8955 6 8767 8665 8666 8667 8769 8955 6 8768 8667 8668 8770 8955 8956 6 8769 8668 8771 8956 8957 8958 6 8770 8668 8669 8670 8772 8958 6 8771 8670 8671 8773 8958 8959 6 8772 8671 8672 8774 8959 8960 6 8773 8672 8673 8775 8960 8961 6 8774 8673 8674 8776 8961 8962 6 8775 8674 8675 8777 8962 8963 6 8776 8675 8778 8963 8964 8965 6 8777 8675 8676 8677 8779 8965 6 8778 8677 8678 8780 8965 8966 6 8779 8678 8679 8781 8966 8967 6 8780 8679 8680 8782 8967 8968 6 8781 8680 8681 8783 8968 8969 6 8782 8681 8682 8784 8969 8970 6 8783 8682 8685 8686 8785 8970 6 8784 8686 8786 8970 8971 8972 6 8785 8686 8687 8787 8972 8973 6 8786 8687 8788 8973 8974 8975 6 8787 8687 8688 8689 8789 8975 6 8788 8689 8690 8790 8975 8976 6 8789 8690 8691 8692 8791 8976 6 8790 8692 8792 8976 8977 8978 6 8791 8692 8693 8694 8793 8978 6 8792 8694 8794 8978 8979 8980 6 8793 8694 8795 8980 8981 8796 5 8794 8694 8695 8696 8796 6 8795 8696 8697 8797 8981 8794 6 8796 8697 8798 8981 8982 8983 6 8797 8697 8698 8799 8983 8800 5 8798 8698 8699 8700 8800 6 8799 8700 8801 8802 8983 8798 6 8800 8700 8701 8802 8803 8804 6 8800 8801 8803 8983 8984 8985 6 8802 8801 8804 8985 8986 8987 6 8803 8801 8701 8702 8805 8987 6 8804 8702 8703 8806 8987 8988 6 8805 8703 8807 8988 8989 8990 6 8806 8703 8704 8705 8808 8990 6 8807 8705 8706 8809 8990 8991 7 8808 8706 8707 8810 8993 8991 8994 5 8809 8707 8708 8811 8994 6 8810 8708 8812 8994 8995 8813 6 8811 8708 8709 8710 8711 8813 6 8812 8711 8814 8995 8811 8996 6 8813 8711 8815 8996 8997 8998 6 8814 8711 8712 8816 8998 8999 5 8815 8712 8713 8817 8999 7 8816 8713 8714 8715 8818 8999 9000 6 8817 8715 8819 9000 9001 9002 6 8818 8715 8716 8820 9002 9003 6 8819 8716 8717 8719 8821 9003 6 8820 8719 8721 8722 8822 9003 6 8821 8722 8823 9003 9004 8824 6 8822 8722 8723 8724 8725 8824 6 8823 8725 8825 9004 8822 9005 6 8824 8725 8726 8826 8827 9005 7 8825 8726 8727 8730 8731 8827 8828 6 8825 8826 8828 9005 9006 9007 6 8827 8826 8731 8829 9013 9007 6 8828 8731 8732 8830 8831 9013 5 8829 8732 8831 8734 8733 7 8829 8830 8734 8735 8832 9012 9013 6 8831 8735 8737 8833 9014 9012 7 8832 8737 8738 8834 9014 9015 9016 6 8833 8738 8739 8835 9016 9017 6 8834 8739 8741 8836 9017 9018 6 8835 8741 8837 9018 9019 9020 6 8836 8741 8742 8838 9020 9021 5 8837 8742 8626 8839 9021 6 8838 8626 8627 8840 9021 9022 6 8839 8627 8841 9022 9023 9024 6 8840 8627 8628 8842 9024 9025 6 8841 8628 8629 8843 9025 9026 6 8842 8629 8630 8631 8844 9026 6 8843 8631 8845 9026 9027 9031 6 8844 8631 8632 8634 8846 9031 6 8845 8634 8847 8848 9032 9031 6 8846 8634 8635 8638 8848 8849 6 8846 8847 8849 9032 9033 9034 6 8848 8847 8638 8850 9043 9034 6 8849 8638 8639 8851 9044 9043 6 8850 8639 8852 9044 9045 9046 6 8851 8639 8640 8853 9046 9049 6 8852 8640 7763 7764 8854 9049 6 8853 7764 7766 8320 8855 9049 6 8854 8320 8322 8856 9048 9049 6 8855 8322 8857 9048 9050 9051 5 8856 8322 8324 8858 9051 7 8857 8324 8325 8329 8859 9051 8861 6 8858 8329 8330 8331 8860 8861 6 8859 8331 8861 8862 8863 8332 6 8859 8860 8862 9051 8858 9052 6 8861 8860 8863 8864 9052 9053 6 8862 8860 8864 8865 8866 8332 6 8862 8863 8865 8878 9059 9053 6 8864 8863 8866 8867 8878 8879 6 8865 8863 8867 8334 8333 8332 6 8865 8866 8334 8868 8879 8880 6 8867 8334 8335 8336 8869 8880 6 8868 8336 8870 8880 8881 8872 6 8869 8336 8337 8339 8871 8872 6 8870 8339 8872 8873 8874 8875 6 8870 8871 8873 8895 8881 8869 6 8872 8871 8874 8897 8895 8898 6 8873 8871 8875 8898 8899 8903 6 8874 8871 8339 8340 8876 8903 6 8875 8340 8348 8903 8350 8349 6 8347 8341 8342 8343 8345 8346 5 8864 8865 8879 9059 8883 6 8878 8865 8867 8880 8882 8883 6 8879 8867 8868 8869 8881 8882 6 8880 8869 8882 8894 8895 8872 6 8880 8881 8879 8883 8884 8894 6 8879 8882 8884 8885 9059 8878 6 8883 8882 8885 8886 8893 8894 6 8883 8884 8886 8887 8888 9059 6 8885 8884 8887 8891 8892 8893 6 8885 8886 8888 8889 8890 8891 6 8885 8887 8889 9059 9058 9060 6 8888 8887 8890 9060 9061 9062 6 8889 8887 8891 9062 9063 9064 6 8890 8887 8886 8892 9064 9065 6 8891 8886 8893 9065 9066 9067 6 8892 8886 8884 8894 9067 8896 6 8893 8884 8882 8881 8895 8896 6 8894 8881 8896 8897 8873 8872 6 8894 8895 8897 9067 8893 9068 6 8896 8895 8873 8898 9068 9069 6 8897 8873 8874 8899 8900 9069 6 8898 8874 8900 8901 8902 8903 6 8898 8899 8901 9069 9070 9071 6 8900 8899 8902 9071 9072 8904 6 8901 8899 8903 8350 8351 8904 6 8902 8899 8874 8875 8876 8350 6 8902 8351 8352 8905 9072 8901 6 8904 8352 8906 9072 9073 9074 6 8905 8352 8353 8907 9074 9075 6 8906 8353 8354 8908 9075 9076 6 8907 8354 8355 8909 9076 9077 6 8908 8355 8910 9077 9078 8912 6 8909 8355 8356 8358 8911 8912 6 8910 8358 8912 8913 8361 8360 6 8910 8911 8913 9078 8909 9079 6 8912 8911 8361 8914 9079 9080 6 8913 8361 8362 8915 8916 9080 6 8914 8362 8363 8916 8917 8364 6 8914 8915 8917 9080 9081 9082 6 8916 8915 8364 8918 9082 9083 6 8917 8364 8365 8919 9083 9084 6 8918 8365 8366 8920 9084 9085 6 8919 8366 8367 8921 9094 9085 6 8920 8367 8368 8922 9094 9101 6 8921 8368 8369 8923 9101 9102 6 8922 8369 8370 8924 9102 9103 6 8923 8370 8371 8925 9103 9104 6 8924 8371 8926 9104 9105 9106 6 8925 8371 8372 8927 9106 9107 6 8926 8372 8373 8375 8928 9107 6 8927 8375 8929 9107 9108 8932 6 8928 8375 8376 8930 8932 8931 6 8929 8376 8377 8378 8380 8931 5 8930 8380 8381 8932 8929 8 8931 8381 8382 8744 8933 9108 8928 8929 5 8932 8744 8745 8934 9108 8 8933 8745 8746 8935 9108 9107 9106 9109 6 8934 8746 8747 8748 8936 9109 6 8935 8748 8937 9109 9110 9111 6 8936 8748 8749 8938 9111 9112 6 8937 8749 8750 8939 9112 9113 6 8938 8750 8751 8940 9113 9114 6 8939 8751 8752 8941 9114 9115 6 8940 8752 8753 8942 9115 9116 6 8941 8753 8754 8943 9116 9117 6 8942 8754 8944 9117 9118 8945 5 8943 8754 8755 8756 8945 7 8944 8756 8757 8946 9118 8943 9119 7 8945 8757 8758 8759 8947 9119 9120 5 8946 8759 8948 9120 9121 6 8947 8759 8760 8949 9121 9122 7 8948 8760 8761 8762 8950 9122 9123 6 8949 8762 8951 9123 9124 8952 6 8950 8762 8763 8764 8765 8952 6 8951 8765 8766 8953 9124 8950 6 8952 8766 8767 8954 9124 9125 6 8953 8767 8955 9125 9126 9127 6 8954 8767 8768 8769 8956 9127 6 8955 8769 8770 8957 9127 9128 6 8956 8770 8958 9128 9129 9130 6 8957 8770 8771 8772 8959 9130 6 8958 8772 8773 8960 9130 9131 6 8959 8773 8774 8961 9131 9132 6 8960 8774 8775 8962 9132 9133 6 8961 8775 8776 8963 9133 9134 6 8962 8776 8777 8964 9134 9135 6 8963 8777 8965 9135 9136 9137 6 8964 8777 8778 8779 8966 9137 6 8965 8779 8780 8967 9137 9138 6 8966 8780 8781 8968 9138 9139 6 8967 8781 8782 8969 9139 9140 6 8968 8782 8783 8970 9140 9141 7 8969 8783 8784 8785 8971 9141 9142 5 8970 8785 8972 9142 9143 7 8971 8785 8786 8973 9143 9144 9145 6 8972 8786 8787 8974 9145 9146 6 8973 8787 8975 9146 9147 9148 6 8974 8787 8788 8789 8976 9148 6 8975 8789 8790 8791 8977 9148 6 8976 8791 8978 9148 9149 9150 6 8977 8791 8792 8793 8979 9150 6 8978 8793 8980 9150 9151 9152 6 8979 8793 8794 8981 9152 9153 6 8980 8794 8796 8797 8982 9153 6 8981 8797 8983 9153 9154 8984 6 8982 8797 8798 8800 8802 8984 6 8983 8802 8985 9154 8982 9155 6 8984 8802 8803 8986 9155 9156 6 8985 8803 8987 9156 9157 9158 7 8986 8803 8804 8805 8988 9158 9159 5 8987 8805 8806 8989 9159 7 8988 8806 8990 8991 8992 9159 9160 5 8989 8806 8807 8808 8991 6 8990 8808 8989 8992 8993 8809 6 8989 8991 8993 9160 9161 9162 6 8992 8991 8809 8994 9165 9162 6 8993 8809 8810 8811 8995 9165 6 8994 8811 8813 8996 9165 9166 7 8995 8813 8814 8997 9166 9168 9169 5 8996 8814 8998 9169 9170 6 8997 8814 8815 8999 9170 9171 7 8998 8815 8816 8817 9000 9171 9172 5 8999 8817 8818 9001 9172 6 9000 8818 9002 9172 9173 9174 6 9001 8818 8819 9003 9174 9004 6 9002 8819 8820 8821 8822 9004 6 9003 8822 8824 9005 9174 9002 6 9004 8824 8825 8827 9006 9174 6 9005 8827 9007 9008 9009 9174 6 9006 8827 9008 9012 9013 8828 6 9006 9007 9009 9010 9011 9012 6 9006 9008 9010 9174 9173 9175 5 9009 9008 9011 9175 9178 6 9010 9008 9012 9014 9178 9015 7 9011 9008 9007 9013 9014 8832 8831 5 9012 9007 8831 8829 8828 5 9011 9012 8832 8833 9015 6 9014 8833 9016 9178 9011 9179 6 9015 8833 8834 9017 9182 9179 5 9016 8834 8835 9018 9182 7 9017 8835 8836 9019 9182 9183 9189 6 9018 8836 9020 9189 9190 9191 6 9019 8836 8837 9021 9191 9192 6 9020 8837 8838 8839 9022 9192 6 9021 8839 8840 9023 9192 9193 6 9022 8840 9024 9193 9196 9197 6 9023 8840 8841 9025 9197 9198 6 9024 8841 8842 9026 9198 9028 6 9025 8842 8843 8844 9027 9028 6 9026 8844 9028 9029 9030 9031 6 9026 9027 9029 9198 9025 9199 6 9028 9027 9030 9199 9200 9204 5 9029 9027 9031 9032 9204 6 9030 9027 8844 9032 8846 8845 7 9030 9031 8846 8848 9033 9204 9205 6 9032 8848 9034 9035 9205 9206 6 9033 8848 9035 9036 9043 8849 6 9033 9034 9036 9037 9038 9206 6 9035 9034 9037 9041 9042 9043 6 9035 9036 9038 9039 9040 9041 6 9035 9037 9039 9206 9207 9208 6 9038 9037 9040 9208 9209 9210 6 9039 9037 9041 9210 9063 9062 6 9040 9037 9036 9042 9062 9061 6 9041 9036 9043 9044 9061 9211 6 9042 9036 9034 8849 9044 8850 6 9042 9043 8850 8851 9045 9211 7 9044 8851 9046 9047 9056 9057 9211 6 9045 8851 8852 9047 9048 9049 6 9045 9046 9048 9054 9056 9050 6 9047 9046 9049 8855 8856 9050 6 9048 9046 8852 8855 8854 8853 6 9048 8856 9051 9052 9054 9047 6 9050 8856 8857 8858 8861 9052 6 9051 8861 8862 9053 9054 9050 6 9052 8862 9054 9055 9059 8864 6 9052 9053 9055 9056 9047 9050 6 9054 9053 9056 9057 9058 9059 5 9054 9055 9047 9045 9057 6 9045 9056 9055 9058 9060 9211 5 9057 9055 9059 8888 9060 8 9058 9055 9053 8864 8878 8883 8885 8888 6 9058 8888 8889 9061 9211 9057 6 9060 8889 9062 9041 9042 9211 6 9061 8889 8890 9063 9040 9041 6 9062 8890 9064 9210 9040 9212 6 9063 8890 8891 9065 9212 9213 6 9064 8891 8892 9066 9213 9214 6 9065 8892 9067 9214 9215 9216 6 9066 8892 8893 8896 9068 9216 6 9067 8896 8897 9069 9216 9217 6 9068 8897 8898 8900 9070 9217 6 9069 8900 9071 9217 9218 9219 6 9070 8900 8901 9072 9219 9220 7 9071 8901 8904 8905 9073 9220 9221 5 9072 8905 9074 9221 9222 7 9073 8905 8906 9075 9222 9223 9224 6 9074 8906 8907 9076 9224 9226 6 9075 8907 8908 9077 9226 9227 5 9076 8908 8909 9078 9227 7 9077 8909 8912 9079 9227 9228 9229 5 9078 8912 8913 9080 9229 6 9079 8913 8914 8916 9081 9229 6 9080 8916 9082 9229 9230 9231 6 9081 8916 8917 9083 9231 9232 6 9082 8917 8918 9084 9232 9233 6 9083 8918 8919 9085 9086 9233 6 9084 8919 9086 9087 9094 8920 6 9084 9085 9087 9088 9233 9234 6 9086 9085 9088 9089 9093 9094 6 9086 9087 9089 9090 9234 9235 6 9088 9087 9090 9091 9092 9093 6 9088 9089 9091 9096 9235 9236 6 9090 9089 9092 9096 9097 9098 6 9091 9089 9093 9098 9099 9100 6 9092 9089 9087 9094 9100 9101 6 9093 9087 9085 8920 8921 9101 5 8470 8471 8486 8477 8472 6 9090 9091 9097 9236 9237 9238 6 9096 9091 9098 9238 9239 9240 6 9097 9091 9092 9099 9240 9241 6 9098 9092 9100 9241 9242 9243 6 9099 9092 9093 9101 9243 9102 6 9100 9093 9094 8921 8922 9102 6 9101 8922 8923 9103 9243 9100 6 9102 8923 8924 9104 9243 9244 6 9103 8924 8925 9105 9244 9245 6 9104 8925 9106 9110 9245 9109 6 9105 8925 8926 9107 8934 9109 6 9106 8926 8927 8928 9108 8934 5 9107 8928 8932 8933 8934 6 9106 8934 8935 8936 9110 9105 5 9109 8936 9111 9245 9105 7 9110 8936 8937 9112 9246 9245 9349 6 9111 8937 8938 9113 9351 9349 5 9112 8938 8939 9114 9351 6 9113 8939 8940 9115 9351 9352 6 9114 8940 8941 9116 9352 9353 6 9115 8941 8942 9117 9353 9354 6 9116 8942 8943 9118 9247 9354 6 9117 8943 8945 9119 9247 9248 6 9118 8945 8946 9120 9248 9249 5 9119 8946 8947 9121 9249 7 9120 8947 8948 9122 9249 9250 9251 6 9121 8948 8949 9123 9251 9252 5 9122 8949 8950 9124 9252 6 9123 8950 8952 8953 9125 9252 6 9124 8953 8954 9126 9252 9253 6 9125 8954 9127 9253 9254 9255 6 9126 8954 8955 8956 9128 9255 6 9127 8956 8957 9129 9255 9256 6 9128 8957 9130 9256 9257 9258 6 9129 8957 8958 8959 9131 9258 6 9130 8959 8960 9132 9258 9259 6 9131 8960 8961 9133 9259 9260 6 9132 8961 8962 9134 9260 9261 6 9133 8962 8963 9135 9261 9262 6 9134 8963 8964 9136 9262 9263 6 9135 8964 9137 9263 9264 9265 6 9136 8964 8965 8966 9138 9265 6 9137 8966 8967 9139 9265 9266 6 9138 8967 8968 9140 9266 9267 6 9139 8968 8969 9141 9267 9268 6 9140 8969 8970 9142 9268 9269 5 9141 8970 8971 9143 9269 7 9142 8971 8972 9144 9269 9270 9271 6 9143 8972 9145 9271 9272 9273 5 9144 8972 8973 9146 9273 6 9145 8973 8974 9147 9273 9274 6 9146 8974 9148 9274 9275 9149 6 9147 8974 8975 8976 8977 9149 6 9148 8977 9150 9275 9147 9276 6 9149 8977 8978 8979 9151 9276 6 9150 8979 9152 9276 9277 9278 6 9151 8979 8980 9153 9278 9279 7 9152 8980 8981 8982 9154 9279 9280 6 9153 8982 8984 9155 9280 9281 6 9154 8984 8985 9156 9281 9282 6 9155 8985 8986 9157 9282 9283 6 9156 8986 9158 9283 9284 9285 6 9157 8986 8987 9159 9285 9286 6 9158 8987 8988 8989 9160 9286 6 9159 8989 8992 9161 9286 9287 6 9160 8992 9162 9163 9287 9288 6 9161 8992 9163 9164 9165 8993 6 9161 9162 9164 9288 9289 9290 6 9163 9162 9165 9166 9167 9290 6 9164 9162 8993 8994 8995 9166 6 9165 8995 8996 9164 9167 9168 6 9164 9166 9168 9290 9291 9187 6 9167 9166 8996 9169 9187 9186 6 9168 8996 8997 9170 9186 9185 7 9169 8997 8998 9171 9185 9180 9177 6 9170 8998 8999 9172 9177 9176 6 9171 8999 9000 9001 9173 9176 6 9172 9001 9174 9009 9175 9176 7 9173 9001 9002 9004 9005 9006 9009 6 9173 9009 9010 9176 9177 9178 5 9173 9175 9177 9171 9172 6 9176 9175 9178 9180 9170 9171 7 9177 9175 9010 9011 9015 9179 9180 6 9178 9015 9180 9181 9182 9016 6 9178 9179 9181 9185 9170 9177 6 9180 9179 9182 9183 9184 9185 6 9181 9179 9016 9017 9018 9183 6 9182 9018 9181 9184 9188 9189 6 9181 9183 9185 9186 9187 9188 6 9181 9184 9186 9169 9170 9180 5 9185 9184 9187 9168 9169 6 9186 9184 9188 9291 9167 9168 6 9187 9184 9183 9189 9291 9292 6 9188 9183 9018 9019 9190 9292 5 9189 9019 9191 9292 9293 6 9190 9019 9020 9192 9293 9194 6 9191 9020 9021 9022 9193 9194 6 9192 9022 9023 9194 9195 9196 6 9192 9193 9195 9293 9191 9294 6 9194 9193 9196 9294 9295 9296 6 9195 9193 9023 9197 9296 9297 6 9196 9023 9024 9198 9303 9297 7 9197 9024 9025 9028 9199 9303 9304 6 9198 9028 9029 9200 9201 9304 6 9199 9029 9201 9202 9203 9204 6 9199 9200 9202 9304 9302 9305 6 9201 9200 9203 9305 9306 9307 6 9202 9200 9204 9307 9308 9205 6 9203 9200 9029 9030 9032 9205 7 9204 9032 9033 9206 9308 9203 9207 5 9205 9033 9035 9038 9207 6 9206 9038 9208 9308 9205 9309 6 9207 9038 9039 9209 9309 9310 6 9208 9039 9210 9310 9311 9315 6 9209 9039 9040 9063 9212 9315 6 9061 9042 9044 9060 9057 9045 6 9210 9063 9064 9213 9315 9316 6 9212 9064 9065 9214 9316 9317 6 9213 9065 9066 9215 9320 9317 6 9214 9066 9216 9320 9321 9322 6 9215 9066 9067 9068 9217 9322 6 9216 9068 9069 9070 9218 9322 7 9217 9070 9219 9322 9321 9323 9324 5 9218 9070 9071 9220 9324 7 9219 9071 9072 9221 9324 9325 9326 5 9220 9072 9073 9222 9326 7 9221 9073 9074 9223 9326 9327 9328 6 9222 9074 9224 9225 9328 9329 5 9223 9074 9075 9225 9226 6 9223 9224 9226 9329 9330 9331 6 9225 9224 9075 9076 9227 9331 7 9226 9076 9077 9078 9228 9331 9332 6 9227 9078 9229 9332 9333 9230 6 9228 9078 9079 9080 9081 9230 7 9229 9081 9231 9333 9228 9334 9335 6 9230 9081 9082 9232 9335 9336 6 9231 9082 9083 9233 9336 9337 7 9232 9083 9084 9086 9234 9337 9338 5 9233 9086 9088 9235 9338 7 9234 9088 9090 9236 9338 9339 9340 5 9235 9090 9096 9237 9340 7 9236 9096 9238 9340 9341 9342 9343 6 9237 9096 9097 9239 9343 9344 6 9238 9097 9240 9344 9345 9346 6 9239 9097 9098 9241 9346 9347 6 9240 9098 9099 9242 9347 9348 6 9241 9099 9243 9348 9246 9244 6 9242 9099 9100 9102 9103 9244 6 9243 9103 9104 9245 9246 9242 6 9244 9104 9246 9111 9110 9105 6 9244 9245 9111 9348 9242 9349 6 9117 9118 9248 9354 9355 9356 6 9247 9118 9119 9249 9356 9357 6 9248 9119 9120 9121 9250 9357 6 9249 9121 9251 9357 9358 9359 6 9250 9121 9122 9252 9359 9253 6 9251 9122 9123 9124 9125 9253 7 9252 9125 9126 9254 9359 9251 9360 5 9253 9126 9255 9360 9361 7 9254 9126 9127 9128 9256 9361 9362 6 9255 9128 9129 9257 9362 9363 6 9256 9129 9258 9363 9364 9365 6 9257 9129 9130 9131 9259 9365 7 9258 9131 9132 9260 9365 9366 9367 6 9259 9132 9133 9261 9367 9368 6 9260 9133 9134 9262 9368 9369 6 9261 9134 9135 9263 9369 9370 6 9262 9135 9136 9264 9370 9371 6 9263 9136 9265 9371 9372 9373 6 9264 9136 9137 9138 9266 9373 6 9265 9138 9139 9267 9373 9374 6 9266 9139 9140 9268 9374 9375 6 9267 9140 9141 9269 9375 9376 7 9268 9141 9142 9143 9270 9376 9377 5 9269 9143 9271 9377 9378 6 9270 9143 9144 9272 9378 9382 6 9271 9144 9273 9382 9383 9384 6 9272 9144 9145 9146 9274 9384 6 9273 9146 9147 9275 9384 9385 6 9274 9147 9149 9276 9385 9386 7 9275 9149 9150 9151 9277 9386 9387 5 9276 9151 9278 9387 9389 6 9277 9151 9152 9279 9389 9390 6 9278 9152 9153 9280 9390 9391 6 9279 9153 9154 9281 9391 9392 5 9280 9154 9155 9282 9392 6 9281 9155 9156 9283 9394 9392 6 9282 9156 9157 9284 9394 9395 6 9283 9157 9285 9395 9396 9397 6 9284 9157 9158 9286 9397 9398 6 9285 9158 9159 9160 9287 9398 6 9286 9160 9161 9288 9398 9399 5 9287 9161 9163 9289 9399 7 9288 9163 9290 9399 9400 9401 9402 6 9289 9163 9164 9167 9291 9402 7 9290 9167 9187 9188 9292 9403 9402 6 9291 9188 9189 9190 9293 9403 7 9292 9190 9191 9194 9294 9403 9401 6 9293 9194 9195 9295 9401 9404 6 9294 9195 9296 9404 9405 9406 6 9295 9195 9196 9297 9298 9406 6 9296 9196 9298 9299 9303 9197 6 9296 9297 9299 9300 9406 9407 6 9298 9297 9300 9301 9302 9303 6 9298 9299 9301 9410 9407 9411 6 9300 9299 9302 9411 9412 9413 7 9301 9299 9303 9304 9201 9305 9413 6 9302 9299 9297 9197 9198 9304 5 9303 9198 9199 9201 9302 5 9302 9201 9202 9306 9413 7 9305 9202 9307 9413 9414 9415 9419 5 9306 9202 9203 9308 9419 6 9307 9203 9205 9207 9309 9419 6 9308 9207 9208 9310 9418 9419 6 9309 9208 9209 9311 9312 9418 6 9310 9209 9312 9313 9314 9315 6 9310 9311 9313 9417 9418 9420 6 9312 9311 9314 9420 9421 9425 7 9313 9311 9315 9425 9426 9318 9316 6 9314 9311 9209 9210 9212 9316 6 9315 9212 9213 9317 9318 9314 6 9316 9213 9318 9319 9320 9214 6 9316 9317 9319 9426 9314 9427 6 9318 9317 9320 9427 9428 9429 6 9319 9317 9214 9215 9321 9429 6 9320 9215 9322 9218 9323 9429 5 9321 9215 9216 9217 9218 6 9321 9218 9324 9429 9430 9431 6 9323 9218 9219 9220 9325 9431 6 9324 9220 9326 9431 9432 9433 6 9325 9220 9221 9222 9327 9433 6 9326 9222 9328 9433 9434 9435 6 9327 9222 9223 9329 9435 9436 5 9328 9223 9225 9330 9436 7 9329 9225 9331 9436 9437 9438 9439 6 9330 9225 9226 9227 9332 9439 6 9331 9227 9228 9333 9439 9440 6 9332 9228 9230 9334 9443 9440 6 9333 9230 9335 9443 9444 9447 5 9334 9230 9231 9336 9447 6 9335 9231 9232 9337 9447 9448 6 9336 9232 9233 9338 9448 9449 6 9337 9233 9234 9235 9339 9449 6 9338 9235 9340 9449 9450 9451 6 9339 9235 9236 9237 9341 9451 6 9340 9237 9342 9451 9452 9453 6 9341 9237 9343 9453 9454 9455 6 9342 9237 9238 9344 9455 9456 5 9343 9238 9239 9345 9456 7 9344 9239 9346 9456 9457 9458 9459 6 9345 9239 9240 9347 9459 9350 5 9346 9240 9241 9348 9350 6 9347 9241 9242 9246 9349 9350 6 9348 9246 9350 9351 9112 9111 7 9348 9349 9351 9459 9346 9347 9352 6 9350 9349 9112 9113 9114 9352 7 9351 9114 9115 9353 9459 9350 9460 6 9352 9115 9116 9354 9460 9461 6 9353 9116 9117 9247 9355 9461 6 9354 9247 9356 9461 9462 9463 6 9355 9247 9248 9357 9463 9464 6 9356 9248 9249 9250 9358 9464 6 9357 9250 9359 9464 9465 9466 6 9358 9250 9251 9253 9360 9466 5 9359 9253 9254 9361 9466 7 9360 9254 9255 9362 9466 9467 9468 5 9361 9255 9256 9363 9468 6 9362 9256 9257 9364 9468 9469 6 9363 9257 9365 9469 9470 9471 6 9364 9257 9258 9259 9366 9471 6 9365 9259 9367 9471 9472 9473 5 9366 9259 9260 9368 9473 6 9367 9260 9261 9369 9473 9474 6 9368 9261 9262 9370 9474 9475 6 9369 9262 9263 9371 9475 9476 6 9370 9263 9264 9372 9476 9477 6 9371 9264 9373 9477 9478 9479 6 9372 9264 9265 9266 9374 9479 6 9373 9266 9267 9375 9479 9480 6 9374 9267 9268 9376 9480 9481 6 9375 9268 9269 9377 9481 9482 6 9376 9269 9270 9378 9379 9482 7 9377 9270 9271 9379 9380 9381 9382 5 9377 9378 9380 9482 9483 6 9379 9378 9381 9483 9484 9485 6 9380 9378 9382 9485 9486 9383 5 9381 9378 9271 9272 9383 6 9382 9272 9384 9486 9381 9487 7 9383 9272 9273 9274 9385 9487 9488 6 9384 9274 9275 9386 9488 9489 6 9385 9275 9276 9387 9388 9489 5 9386 9276 9277 9388 9389 6 9386 9387 9389 9489 9490 9491 7 9388 9387 9277 9278 9390 9491 9492 6 9389 9278 9279 9391 9492 9493 6 9390 9279 9280 9392 9393 9493 6 9391 9280 9393 9394 9282 9281 6 9391 9392 9394 9493 9494 9495 6 9393 9392 9282 9283 9395 9495 6 9394 9283 9284 9396 9495 9496 6 9395 9284 9397 9496 9497 9498 6 9396 9284 9285 9398 9499 9498 6 9397 9285 9286 9287 9399 9499 6 9398 9287 9288 9289 9400 9499 6 9399 9289 9401 9499 9405 9404 7 9400 9289 9402 9403 9293 9294 9404 5 9401 9289 9403 9291 9290 5 9401 9402 9291 9292 9293 5 9401 9294 9295 9405 9400 6 9404 9295 9406 9499 9400 9408 6 9405 9295 9296 9298 9407 9408 6 9406 9298 9408 9409 9410 9300 6 9406 9407 9409 9498 9499 9405 6 9408 9407 9410 9497 9498 9500 6 9409 9407 9300 9411 9500 9501 6 9410 9300 9301 9412 9501 9502 6 9411 9301 9413 9502 9503 9414 6 9412 9301 9302 9305 9306 9414 6 9413 9306 9415 9416 9503 9412 6 9414 9306 9416 9417 9418 9419 6 9414 9415 9417 9503 9504 9505 6 9416 9415 9418 9312 9420 9505 6 9417 9415 9419 9309 9310 9312 6 9418 9415 9309 9308 9307 9306 6 9417 9312 9313 9421 9422 9505 6 9420 9313 9422 9423 9424 9425 6 9420 9421 9423 9505 9506 9507 6 9422 9421 9424 9507 9508 9509 6 9423 9421 9425 9512 9509 9513 6 9424 9421 9313 9314 9426 9513 5 9425 9314 9318 9427 9513 6 9426 9318 9319 9428 9513 9514 6 9427 9319 9429 9514 9515 9430 6 9428 9319 9320 9321 9323 9430 6 9429 9323 9431 9518 9515 9428 6 9430 9323 9324 9325 9432 9518 6 9431 9325 9433 9525 9518 9526 6 9432 9325 9326 9327 9434 9526 6 9433 9327 9435 9526 9527 9528 6 9434 9327 9328 9436 9528 9529 6 9435 9328 9329 9330 9437 9529 6 9436 9330 9438 9529 9531 9532 6 9437 9330 9439 9532 9533 9441 6 9438 9330 9331 9332 9440 9441 6 9439 9332 9441 9442 9443 9333 5 9439 9440 9442 9533 9438 7 9441 9440 9443 9444 9445 9533 9534 5 9442 9440 9333 9334 9444 6 9443 9334 9442 9445 9446 9447 5 9442 9444 9446 9534 9535 6 9445 9444 9447 9535 9536 9537 7 9446 9444 9334 9335 9336 9448 9537 6 9447 9336 9337 9449 9537 9538 6 9448 9337 9338 9339 9450 9538 6 9449 9339 9451 9538 9539 9452 5 9450 9339 9340 9341 9452 7 9451 9341 9453 9539 9450 9540 9541 6 9452 9341 9342 9454 9541 9542 6 9453 9342 9455 9542 9543 9544 6 9454 9342 9343 9456 9544 9545 6 9455 9343 9344 9345 9457 9545 6 9456 9345 9458 9545 9546 9462 6 9457 9345 9459 9462 9461 9460 6 9458 9345 9346 9350 9352 9460 5 9459 9352 9353 9461 9458 6 9460 9353 9354 9355 9462 9458 6 9461 9355 9463 9546 9457 9458 5 9462 9355 9356 9464 9546 7 9463 9356 9357 9358 9465 9546 9547 6 9464 9358 9466 9547 9548 9549 7 9465 9358 9359 9360 9361 9467 9549 6 9466 9361 9468 9549 9550 9551 6 9467 9361 9362 9363 9469 9551 6 9468 9363 9364 9470 9551 9552 6 9469 9364 9471 9552 9553 9554 6 9470 9364 9365 9366 9472 9554 6 9471 9366 9473 9554 9555 9556 6 9472 9366 9367 9368 9474 9556 6 9473 9368 9369 9475 9556 9557 6 9474 9369 9370 9476 9557 9558 6 9475 9370 9371 9477 9558 9559 6 9476 9371 9372 9478 9559 9560 6 9477 9372 9479 9560 9561 9562 6 9478 9372 9373 9374 9480 9562 6 9479 9374 9375 9481 9562 9563 6 9480 9375 9376 9482 9563 9564 6 9481 9376 9377 9379 9483 9564 6 9482 9379 9380 9484 9564 9565 6 9483 9380 9485 9565 9566 9567 6 9484 9380 9381 9486 9567 9568 6 9485 9381 9383 9487 9568 9569 6 9486 9383 9384 9488 9569 9570 6 9487 9384 9385 9489 9570 9571 6 9488 9385 9386 9388 9490 9571 6 9489 9388 9491 9571 9572 9573 6 9490 9388 9389 9492 9573 9574 6 9491 9389 9390 9493 9574 9575 6 9492 9390 9391 9393 9494 9575 6 9493 9393 9495 9575 9576 9577 6 9494 9393 9394 9395 9496 9577 6 9495 9395 9396 9497 9577 9578 6 9496 9396 9498 9409 9500 9578 6 9497 9396 9409 9408 9499 9397 7 9408 9498 9397 9398 9399 9400 9405 5 9497 9409 9410 9501 9578 7 9500 9410 9411 9502 9578 9579 9580 6 9501 9411 9412 9503 9580 9581 6 9502 9412 9414 9416 9504 9581 6 9503 9416 9505 9581 9582 9583 7 9504 9416 9417 9420 9422 9506 9583 5 9505 9422 9507 9583 9584 6 9506 9422 9423 9508 9584 9585 6 9507 9423 9509 9510 9585 9586 6 9508 9423 9510 9511 9512 9424 6 9508 9509 9511 9586 9587 9588 6 9510 9509 9512 9519 9588 9522 6 9511 9509 9424 9513 9519 9520 7 9512 9424 9425 9426 9427 9514 9520 6 9513 9427 9428 9515 9516 9520 6 9514 9428 9516 9517 9518 9430 6 9514 9515 9517 9520 9519 9521 6 9516 9515 9518 9524 9521 9525 6 9517 9515 9430 9431 9525 9432 6 9511 9512 9520 9516 9521 9522 5 9519 9512 9513 9514 9516 6 9519 9516 9522 9523 9524 9517 6 9519 9521 9523 9588 9511 9589 6 9522 9521 9524 9589 9590 9591 6 9523 9521 9517 9525 9591 9592 6 9524 9517 9518 9432 9526 9592 7 9525 9432 9433 9434 9527 9592 9593 5 9526 9434 9528 9593 9594 6 9527 9434 9435 9529 9530 9594 6 9528 9435 9436 9437 9530 9531 6 9528 9529 9531 9594 9595 9596 6 9530 9529 9437 9532 9596 9597 6 9531 9437 9438 9533 9597 9598 7 9532 9438 9441 9442 9534 9598 9599 5 9533 9442 9445 9535 9599 7 9534 9445 9446 9536 9599 9600 9601 6 9535 9446 9537 9601 9602 9603 7 9536 9446 9447 9448 9538 9603 9604 6 9537 9448 9449 9450 9539 9604 6 9538 9450 9452 9540 9604 9605 6 9539 9452 9541 9605 9606 9607 6 9540 9452 9453 9542 9607 9608 5 9541 9453 9454 9543 9608 7 9542 9454 9544 9608 9609 9610 9611 5 9543 9454 9455 9545 9611 7 9544 9455 9456 9457 9546 9611 9547 6 9545 9457 9462 9463 9464 9547 6 9546 9464 9465 9548 9611 9545 6 9547 9465 9549 9611 9610 9550 5 9548 9465 9466 9467 9550 6 9549 9467 9551 9610 9548 9612 6 9550 9467 9468 9469 9552 9612 6 9551 9469 9470 9553 9612 9613 6 9552 9470 9554 9613 9614 9615 6 9553 9470 9471 9472 9555 9615 6 9554 9472 9556 9615 9616 9617 6 9555 9472 9473 9474 9557 9617 6 9556 9474 9475 9558 9617 9618 6 9557 9475 9476 9559 9618 9619 6 9558 9476 9477 9560 9619 9620 6 9559 9477 9478 9561 9620 9621 6 9560 9478 9562 9621 9622 9623 6 9561 9478 9479 9480 9563 9623 6 9562 9480 9481 9564 9623 9624 6 9563 9481 9482 9483 9565 9624 6 9564 9483 9484 9566 9624 9625 6 9565 9484 9567 9625 9626 9627 6 9566 9484 9485 9568 9627 9628 6 9567 9485 9486 9569 9628 9629 7 9568 9486 9487 9570 9629 9630 9631 6 9569 9487 9488 9571 9631 9632 6 9570 9488 9489 9490 9572 9632 6 9571 9490 9573 9632 9633 9634 6 9572 9490 9491 9574 9634 9635 6 9573 9491 9492 9575 9635 9636 6 9574 9492 9493 9494 9576 9636 6 9575 9494 9577 9636 9637 9579 6 9576 9494 9495 9496 9578 9579 6 9577 9496 9497 9500 9501 9579 6 9578 9501 9580 9637 9576 9577 6 9579 9501 9502 9581 9637 9582 5 9580 9502 9503 9504 9582 6 9581 9504 9583 9637 9580 9638 6 9582 9504 9505 9506 9584 9638 6 9583 9506 9507 9585 9638 9639 6 9584 9507 9508 9586 9639 9634 6 9585 9508 9510 9587 9634 9633 6 9586 9510 9588 9633 9640 9630 6 9587 9510 9511 9522 9589 9630 6 9588 9522 9523 9590 9630 9629 6 9589 9523 9591 9629 9628 9641 6 9590 9523 9524 9592 9641 9642 6 9591 9524 9525 9526 9593 9642 6 9592 9526 9527 9594 9642 9643 7 9593 9527 9528 9530 9595 9643 9644 5 9594 9530 9596 9644 9645 6 9595 9530 9531 9597 9645 9646 6 9596 9531 9532 9598 9646 9647 6 9597 9532 9533 9599 9647 9648 6 9598 9533 9534 9535 9600 9648 5 9599 9535 9601 9648 9649 7 9600 9535 9536 9602 9649 9650 9651 5 9601 9536 9603 9651 9652 6 9602 9536 9537 9604 9652 9605 5 9603 9537 9538 9539 9605 6 9604 9539 9540 9606 9652 9603 6 9605 9540 9607 9652 9653 9654 6 9606 9540 9541 9608 9654 9614 6 9607 9541 9542 9543 9609 9614 6 9608 9543 9610 9614 9613 9612 6 9609 9543 9611 9548 9550 9612 6 9610 9543 9544 9545 9547 9548 6 9610 9550 9551 9552 9613 9609 5 9612 9552 9553 9614 9609 7 9613 9553 9615 9654 9607 9608 9609 6 9614 9553 9554 9555 9616 9654 6 9615 9555 9617 9654 9653 9655 6 9616 9555 9556 9557 9618 9655 6 9617 9557 9558 9619 9655 9656 6 9618 9558 9559 9620 9656 9657 6 9619 9559 9560 9621 9657 9658 6 9620 9560 9561 9622 9658 9659 6 9621 9561 9623 9659 9660 9661 6 9622 9561 9562 9563 9624 9661 6 9623 9563 9564 9565 9625 9661 7 9624 9565 9566 9626 9661 9662 9663 5 9625 9566 9627 9663 9664 7 9626 9566 9567 9628 9664 9665 9641 6 9627 9567 9568 9629 9590 9641 6 9628 9568 9569 9630 9589 9590 7 9629 9569 9631 9640 9587 9588 9589 5 9630 9569 9570 9632 9640 6 9631 9570 9571 9572 9633 9640 6 9632 9572 9634 9586 9587 9640 7 9633 9572 9573 9635 9639 9585 9586 6 9634 9573 9574 9636 9638 9639 6 9635 9574 9575 9576 9637 9638 6 9636 9576 9579 9580 9582 9638 7 9637 9582 9583 9584 9639 9636 9635 5 9638 9584 9585 9634 9635 5 9633 9587 9630 9631 9632 6 9628 9590 9591 9642 9665 9627 6 9641 9591 9592 9593 9643 9665 6 9642 9593 9594 9644 9665 9664 6 9643 9594 9595 9645 9664 9663 7 9644 9595 9596 9646 9663 9662 9666 7 9645 9596 9597 9647 9666 9660 9667 6 9646 9597 9598 9648 9667 9668 6 9647 9598 9599 9600 9649 9668 6 9648 9600 9601 9650 9668 9669 6 9649 9601 9651 9669 9657 9656 6 9650 9601 9602 9652 9656 9670 7 9651 9602 9603 9605 9606 9653 9670 6 9652 9606 9654 9616 9655 9670 6 9653 9606 9607 9614 9615 9616 6 9653 9616 9617 9618 9656 9670 7 9655 9618 9619 9657 9650 9651 9670 6 9656 9619 9620 9658 9669 9650 5 9657 9620 9621 9659 9669 6 9658 9621 9622 9660 9669 9667 6 9659 9622 9661 9666 9646 9667 7 9660 9622 9623 9624 9625 9662 9666 5 9661 9625 9663 9645 9666 6 9662 9625 9626 9664 9644 9645 6 9663 9626 9627 9665 9643 9644 5 9664 9627 9641 9642 9643 5 9662 9645 9646 9660 9661 6 9660 9646 9647 9668 9669 9659 5 9667 9647 9648 9649 9669 7 9668 9649 9650 9657 9658 9659 9667 5 9656 9651 9652 9653 9655 6 6654 6651 6652 9672 9692 9682 6 9671 6652 9673 9677 9681 9682 6 9672 6652 9674 9675 9676 9677 6 9673 6652 9675 6650 9728 6366 6 9673 9674 9676 9726 9727 9728 6 9673 9675 9677 9678 9679 9726 6 9673 9676 9678 9680 9681 9672 5 9677 9676 9679 5236 9680 7 9678 9676 5236 9735 4520 9726 9734 6 9678 5236 5237 9677 9681 9684 7 9677 9680 9672 9682 9683 4655 9684 6 9672 9681 9683 9692 9671 9686 5 9682 9681 4655 4656 9686 6 4655 9681 9680 5237 4653 9685 6 4653 9684 4651 423 5238 5237 6 9683 4656 9687 9688 9692 9682 6 9686 4656 9688 3170 9689 4657 6 9686 9687 3170 3171 9692 3173 7 3170 9687 4657 9690 3169 2844 9691 5 9689 4657 5381 431 9691 6 2844 9689 9690 431 2842 430 6 9686 9688 3173 6654 9671 9682 6 6476 6479 6475 9780 9775 9781 6 6461 6462 6466 6468 6378 6379 6 5863 5864 9696 9703 9704 9701 6 9695 5864 5865 9697 5720 9701 5 9696 5865 5866 5719 5720 6 5719 5866 5867 5868 9699 9700 6 9698 5868 9700 5696 5695 5869 5 9698 9699 5696 5697 5719 6 9696 5720 5721 9702 9703 9695 5 9701 5721 5722 5725 9703 6 9702 5725 6096 9704 9695 9701 6 9703 6096 6384 9695 5863 5862 6 6491 2253 416 2195 6489 6490 7 6489 2196 6488 6481 2197 9774 9779 5 2252 6492 3337 6493 3336 6 3336 6493 3335 6500 6494 6495 6 6503 6504 9710 2190 9712 9713 6 6503 9709 2190 6502 9711 2191 6 6502 9710 6501 2191 2192 2513 7 9709 6504 6513 9713 9716 9717 9718 5 9709 9712 2190 9714 9716 6 2190 9713 2188 2198 9715 9716 6 2198 9714 9716 2216 2217 9721 6 9715 9714 9713 9712 9717 2216 7 9716 9712 9718 9719 9720 2215 2216 6 9717 9712 6513 6514 6515 9719 5 9718 6515 6517 9720 9717 5 9719 6517 9717 2215 6523 6 9715 2217 2218 2201 2199 2198 6 6670 6776 9723 9724 6657 6659 5 9722 6776 9724 9725 9799 6 9722 9723 9725 6647 6657 6656 6 9724 9723 6647 6646 9800 9799 6 9676 9675 9727 9679 9734 9736 6 9726 9675 9728 9730 9736 9729 6 9727 9675 9674 6366 6367 9729 6 9728 6367 6369 6371 9730 9727 6 9729 6371 9731 9732 9736 9727 6 9730 6371 6372 6376 6468 9732 6 9731 6468 6467 9733 9736 9730 6 9732 6467 6469 7511 9734 9736 6 9733 7511 9735 9736 9679 9726 6 9734 7511 7509 4519 4520 9679 6 9733 9734 9732 9730 9727 9726 6 6042 6040 6039 6020 5873 5875 6 6133 6399 6393 6394 6116 9739 6 9738 6116 6117 6133 6132 6123 6 570 572 9741 9745 569 9744 6 9740 572 574 9742 9743 9744 6 9741 574 917 918 9743 919 6 9741 9742 919 9744 922 920 6 9741 9743 922 564 9745 9740 6 9744 564 565 568 569 9740 6 7206 7207 9747 7219 7218 7217 6 9746 7207 7208 7214 7217 7215 6 3492 3493 3497 3503 6707 6556 5 6707 3503 9750 3504 6711 5 6707 9749 6711 6708 6706 5 6683 5158 4668 6682 9762 5 3202 3471 3411 3201 3412 6 5933 5911 5916 5917 9756 5932 5 4916 4918 9755 4881 4880 7 9754 4918 4912 4881 9757 4905 9760 7 9753 5917 5932 5922 5921 5920 9759 6 4881 9755 9758 4896 4898 9760 5 4881 9757 4896 4885 4882 5 5920 9756 5919 5917 5918 6 9755 4905 4902 4899 4898 9757 6 4639 4913 4876 4873 4870 4869 7 6682 9751 4668 4669 9763 4561 9793 5 9762 4669 4547 4549 4561 5 8469 8470 9765 9766 8487 5 8469 9764 9766 7727 7963 7 9765 9764 8487 7715 7716 7724 7727 6 8024 8022 7739 7740 7741 7743 5 7724 7716 7717 7720 7722 6 428 7501 7503 9770 47 46 6 9769 7503 9771 9773 45 46 7 9770 7503 7504 9772 9773 9775 9781 7 2197 44 2 9773 9771 9774 9775 5 9772 2 9771 9770 45 6 2197 9772 9775 9706 9779 9780 6 9774 9772 9771 9780 9693 9781 6 7254 7257 7524 7521 7518 7517 6 2096 2084 2085 6094 3139 3132 5 6639 6640 6643 6788 6786 5 9706 9774 9780 6479 6481 5 9779 9774 9775 9693 6479 5 9693 9775 6475 9771 7504 6 3853 3130 27 26 1527 3131 6 6788 6643 6644 9784 6790 6171 5 9783 6644 6169 6170 6171 6 4397 4530 4396 4122 4120 4531 6 6638 6784 6780 6637 6636 6772 6 4119 3530 3532 9788 9790 4121 6 9787 3532 3534 9789 7175 9790 6 9788 3534 3536 7179 7176 7175 6 9788 7175 9787 4121 4123 7173 5 7671 7696 7697 7699 7670 6 7776 3146 4232 3414 3415 7777 6 4561 6676 6677 6678 6682 9762 6 3660 3661 4909 9795 4370 4372 5 9794 4909 4643 4371 4370 6 5544 5546 5701 5541 5542 5543 6 6178 6179 9798 9799 6182 9800 6 6783 6178 9797 9799 6777 6781 7 9798 9797 6777 9800 9725 9723 6776 6 9797 6182 6184 6646 9725 9799 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump_b100000.grf000066400000000000000000014767761514310134000263720ustar00rootroot000000000000000 9800 57978 100000 000 3 100413 100407 100006 4 109771 100043 109772 100044 4 100076 101474 101475 100077 3 101242 100147 100148 3 100693 100206 100207 3 100521 100348 100349 4 100007 100412 100413 100000 4 100006 100412 100008 100647 4 100009 103238 100647 100007 4 103235 103238 100008 100010 4 100011 103233 103235 100009 4 103234 103233 100010 100012 4 103684 103234 100011 100013 4 100014 100418 103684 100012 4 100015 100417 100418 100013 4 100014 100417 100016 103088 4 100017 103086 103088 100015 4 100016 103086 103087 100018 4 103087 100017 103095 100019 4 103095 100018 103096 100020 4 100021 100414 103096 100019 4 100020 100414 101171 100022 4 101171 100021 101172 100023 4 101172 100022 101173 100024 4 101173 100023 101526 100025 4 101526 100024 100026 109781 4 100027 103852 109781 100025 4 100028 102179 103852 100026 4 100027 102179 102180 100029 4 102180 100028 100030 102503 4 100031 102505 102503 100029 4 102508 102505 100030 100032 4 103330 102508 100033 100031 4 103330 100032 103331 100034 4 100035 102248 103331 100033 4 100034 102248 102249 100036 4 102249 100035 102250 100037 4 100038 100416 102250 100036 4 100039 100415 100416 100037 4 100038 100415 102194 100040 4 102194 100039 102195 100041 4 102195 100040 102196 100042 3 102196 100041 100043 4 100042 102196 109771 100001 4 109769 109772 100001 100045 4 100046 109768 109769 100044 4 100047 100427 109768 100045 4 100048 100426 100427 100046 4 100047 100426 100049 100411 4 100050 100410 100411 100048 4 100049 100410 100051 100421 4 100050 100421 100422 100052 4 100422 100051 104650 100053 4 104650 100052 104651 100054 4 104657 104651 100053 100055 4 105380 104657 100054 100056 4 100057 100430 105380 100055 4 100056 100430 100429 100058 4 100059 100408 100429 100057 4 100058 100408 102218 100060 4 102218 100059 102219 100061 4 102219 100060 102220 100062 4 102220 100061 102221 100063 4 102221 100062 102222 100064 4 106701 102222 100063 100065 4 106701 100064 106703 100066 4 106703 100065 103505 100067 4 100068 103452 103505 100066 4 100069 103451 103452 100067 4 103441 103451 100068 100070 4 100071 102491 103441 100069 4 100070 102491 102492 100072 4 100073 100409 102492 100071 4 100072 100409 100074 100428 4 100073 100428 100075 101603 4 100074 101603 101604 100076 4 100002 101474 101604 100075 4 101475 100002 101476 100078 4 101476 100077 101477 100079 4 101477 100078 101478 100080 4 101478 100079 101479 100081 4 101479 100080 101480 100082 4 101480 100081 101481 100083 4 101481 100082 101482 100084 4 101482 100083 101483 100085 4 100086 101160 101483 100084 4 100085 101160 101161 100087 4 101161 100086 101162 100088 4 101162 100087 101163 100089 4 101163 100088 101186 100090 4 101186 100089 101185 100091 4 101185 100090 101187 100092 4 101187 100091 101188 100093 4 101188 100092 101189 100094 4 101189 100093 101190 100095 4 101190 100094 101191 100096 4 101191 100095 101192 100097 4 101192 100096 101193 100098 4 101193 100097 101194 100099 4 101194 100098 101195 100100 4 101195 100099 101196 100101 4 101196 100100 101197 100102 4 101197 100101 101198 100103 4 101198 100102 101199 100104 4 101199 100103 101200 100105 4 101200 100104 101201 100106 4 101201 100105 101202 100107 4 101202 100106 101203 100108 4 101203 100107 101204 100109 4 101204 100108 101205 100110 4 101205 100109 101206 100111 4 101206 100110 101207 100112 4 101207 100111 101208 100113 4 101208 100112 101209 100114 4 101209 100113 101210 100115 4 101210 100114 101211 100116 4 101211 100115 101212 100117 4 101212 100116 101213 100118 4 101213 100117 101214 100119 4 101214 100118 101215 100120 4 101215 100119 101216 100121 4 101216 100120 101217 100122 4 101217 100121 101218 100123 4 101218 100122 101219 100124 4 101219 100123 101220 100125 4 101220 100124 101221 100126 4 101221 100125 101222 100127 4 101222 100126 101223 100128 4 101223 100127 101224 100129 4 101224 100128 101225 100130 4 101225 100129 101226 100131 4 101226 100130 101227 100132 4 101227 100131 101228 100133 4 101228 100132 101229 100134 4 101229 100133 101230 100135 4 101230 100134 101231 100136 4 101231 100135 101232 100137 4 101232 100136 101233 100138 4 101233 100137 101234 100139 4 101234 100138 101235 100140 4 101235 100139 101236 100141 4 101236 100140 101237 100142 4 101237 100141 101238 100143 4 101238 100142 101239 100144 4 101239 100143 101240 100145 4 101240 100144 101241 100146 4 101241 100145 101242 100147 3 101242 100146 100003 4 101242 100003 101243 100149 4 101243 100148 101244 100150 4 101244 100149 101245 100151 4 101245 100150 101246 100152 4 101246 100151 101247 100153 4 101247 100152 101248 100154 4 100155 100923 101248 100153 4 100154 100923 100924 100156 4 100924 100155 100925 100157 4 100925 100156 100926 100158 4 100926 100157 100927 100159 4 100927 100158 100928 100160 4 100928 100159 100929 100161 4 100929 100160 100930 100162 4 100930 100161 100931 100163 4 100164 100651 100931 100162 4 100163 100651 100652 100165 4 100652 100164 100653 100166 4 100653 100165 100654 100167 4 100654 100166 100655 100168 4 100655 100167 100656 100169 4 100656 100168 100657 100170 4 100657 100169 100658 100171 4 100658 100170 100659 100172 4 100659 100171 100660 100173 4 100660 100172 100661 100174 4 100661 100173 100662 100175 4 100662 100174 100663 100176 4 100663 100175 100664 100177 4 100664 100176 100665 100178 4 100665 100177 100666 100179 4 100666 100178 100667 100180 4 100667 100179 100668 100181 4 100668 100180 100669 100182 4 100669 100181 100670 100183 4 100670 100182 100671 100184 4 100671 100183 100672 100185 4 100672 100184 100673 100186 4 100673 100185 100674 100187 4 100674 100186 100675 100188 4 100675 100187 100676 100189 4 100676 100188 100677 100190 4 100677 100189 100678 100191 4 100678 100190 100679 100192 4 100679 100191 100680 100193 4 100680 100192 100681 100194 4 100681 100193 100682 100195 4 100682 100194 100683 100196 4 100683 100195 100684 100197 4 100684 100196 100685 100198 4 100685 100197 100686 100199 4 100686 100198 100687 100200 4 100687 100199 100688 100201 4 100688 100200 100689 100202 4 100689 100201 100690 100203 4 100690 100202 100691 100204 4 100691 100203 100692 100205 3 100692 100204 100206 4 100692 100205 100693 100004 3 100693 100004 100208 4 100693 100207 100694 100209 4 100694 100208 100695 100210 4 100695 100209 100696 100211 4 100696 100210 100697 100212 4 100697 100211 100698 100213 4 100698 100212 100699 100214 4 100699 100213 100700 100215 4 100700 100214 100701 100216 4 100701 100215 100702 100217 4 100702 100216 100703 100218 4 100703 100217 100704 100219 4 100704 100218 100705 100220 4 100705 100219 100706 100221 4 100706 100220 100707 100222 4 100707 100221 100708 100223 4 100708 100222 100709 100224 4 100709 100223 100710 100225 4 100710 100224 100711 100226 4 100711 100225 100712 100227 4 100712 100226 100713 100228 4 100713 100227 100714 100229 4 100714 100228 100715 100230 4 100715 100229 100716 100231 4 100716 100230 100717 100232 4 100717 100231 100718 100233 4 100718 100232 100719 100234 4 100719 100233 100720 100235 4 100720 100234 100721 100236 4 100721 100235 100722 100237 4 100722 100236 100723 100238 4 100723 100237 100724 100239 4 100724 100238 100725 100240 4 100725 100239 100726 100241 4 100726 100240 100727 100242 4 100727 100241 100728 100243 4 100728 100242 100729 100244 4 100729 100243 100730 100245 4 100730 100244 100731 100246 4 100731 100245 100732 100247 4 100732 100246 100733 100248 4 100733 100247 100734 100249 4 100734 100248 100735 100250 4 100735 100249 100736 100251 4 100736 100250 100737 100252 4 100737 100251 100738 100253 4 100738 100252 100739 100254 4 100739 100253 100740 100255 4 100740 100254 100741 100256 4 100741 100255 100742 100257 4 100258 100431 100742 100256 4 100257 100431 100432 100259 4 100432 100258 100433 100260 4 100433 100259 100434 100261 4 100434 100260 100435 100262 4 100435 100261 100436 100263 4 100436 100262 100437 100264 4 100437 100263 100438 100265 4 100438 100264 100439 100266 4 100439 100265 100440 100267 4 100440 100266 100441 100268 4 100441 100267 100442 100269 4 100442 100268 100443 100270 4 100443 100269 100444 100271 4 100444 100270 100445 100272 4 100445 100271 100446 100273 4 100446 100272 100447 100274 4 100447 100273 100448 100275 4 100448 100274 100449 100276 4 100449 100275 100450 100277 4 100450 100276 100451 100278 4 100451 100277 100452 100279 4 100452 100278 100453 100280 4 100453 100279 100454 100281 4 100454 100280 100455 100282 4 100455 100281 100456 100283 4 100456 100282 100457 100284 4 100457 100283 100458 100285 4 100458 100284 100459 100286 4 100459 100285 100460 100287 4 100460 100286 100461 100288 4 100461 100287 100462 100289 4 100462 100288 100463 100290 4 100463 100289 100464 100291 4 100464 100290 100465 100292 4 100465 100291 100466 100293 4 100466 100292 100467 100294 4 100467 100293 100468 100295 4 100468 100294 100469 100296 4 100469 100295 100470 100297 4 100470 100296 100471 100298 4 100471 100297 100472 100299 4 100472 100298 100473 100300 4 100473 100299 100474 100301 4 100474 100300 100475 100302 4 100475 100301 100476 100303 4 100476 100302 100477 100304 4 100477 100303 100478 100305 4 100478 100304 100479 100306 4 100479 100305 100480 100307 4 100480 100306 100481 100308 4 100481 100307 100482 100309 4 100482 100308 100483 100310 4 100483 100309 100484 100311 4 100484 100310 100485 100312 4 100485 100311 100486 100313 4 100486 100312 100487 100314 4 100487 100313 100488 100315 4 100488 100314 100489 100316 4 100489 100315 100490 100317 4 100490 100316 100491 100318 4 100491 100317 100492 100319 4 100492 100318 100493 100320 4 100493 100319 100494 100321 4 100494 100320 100495 100322 4 100495 100321 100496 100323 4 100496 100322 100497 100324 4 100497 100323 100498 100325 4 100498 100324 100499 100326 4 100499 100325 100500 100327 4 100500 100326 100501 100328 4 100501 100327 100502 100329 4 100502 100328 100503 100330 4 100503 100329 100504 100331 4 100504 100330 100505 100332 4 100505 100331 100506 100333 4 100506 100332 100507 100334 4 100507 100333 100508 100335 4 100508 100334 100509 100336 4 100509 100335 100510 100337 4 100510 100336 100511 100338 4 100511 100337 100512 100339 4 100512 100338 100513 100340 4 100513 100339 100514 100341 4 100514 100340 100515 100342 4 100515 100341 100516 100343 4 100516 100342 100517 100344 4 100517 100343 100518 100345 4 100518 100344 100519 100346 4 100519 100345 100520 100347 4 100520 100346 100521 100348 3 100521 100347 100005 4 100521 100005 100522 100350 4 100522 100349 100523 100351 4 100523 100350 100524 100352 4 100524 100351 100525 100353 4 100525 100352 100526 100354 4 100526 100353 100527 100355 4 100527 100354 100528 100356 4 100528 100355 100529 100357 4 100529 100356 100530 100358 4 100530 100357 100531 100359 4 100531 100358 100532 100360 4 100532 100359 100533 100361 4 100533 100360 100534 100362 4 100534 100361 100535 100363 4 100535 100362 100536 100364 4 100536 100363 100537 100365 4 100537 100364 100538 100366 4 100538 100365 100539 100367 4 100539 100366 100540 100368 4 100540 100367 100541 100369 4 100541 100368 100542 100370 4 100542 100369 100543 100371 4 100543 100370 100544 100372 4 100544 100371 100545 100373 4 100545 100372 100546 100374 4 100546 100373 100547 100375 4 100550 100547 100374 100376 4 100550 100375 100551 100377 4 100551 100376 100552 100378 4 100552 100377 100553 100379 4 100556 100553 100378 100380 4 100566 100556 100379 100381 4 100566 100380 100567 100382 4 100567 100381 100568 100383 4 100568 100382 100569 100384 4 100569 100383 100570 100385 4 100425 100570 100386 100384 4 100387 100423 100425 100385 4 100386 100423 100424 100388 4 100579 100424 100389 100387 4 100584 100579 100388 100390 4 100584 100389 100585 100391 4 100585 100390 100586 100392 4 100586 100391 100420 100393 4 100394 100419 100420 100392 4 100393 100419 100594 100395 4 100396 100596 100594 100394 4 100622 100596 100395 100397 4 100622 100396 100623 100398 4 100623 100397 100624 100399 4 100398 100624 100626 100400 4 100626 100399 100628 100401 4 100630 100628 100402 100400 4 100630 100401 100631 100403 4 100402 100631 102097 100404 4 100405 100649 102097 100403 4 100648 100649 100404 100406 4 100648 100405 100413 100407 3 100413 100406 100000 6 100058 100059 100429 102218 102545 102841 6 100072 100073 102492 102493 101606 100428 6 100049 100050 100411 104521 104515 100421 6 100049 100410 100048 100426 104514 104515 6 100006 100007 100413 100647 100646 100648 6 100006 100412 100648 100406 100407 100000 6 100020 100021 101171 103882 103128 103096 6 100038 100039 100416 102194 102252 109704 6 100038 100415 100037 102250 102251 102252 6 100014 100015 100418 103088 103098 103099 6 100014 100417 100013 103099 103100 103684 6 100393 100394 100420 100593 100588 100594 6 100393 100419 100586 100392 100587 100588 6 100050 100051 100422 105237 104521 100410 6 100421 100051 100052 104650 109684 105237 6 100386 100387 100424 100425 100577 100575 6 100423 100387 100577 100578 100579 100388 6 100386 100423 100572 100570 100385 100575 6 100047 100048 100427 100411 104514 105612 6 100047 100426 100046 105612 107500 109768 6 100073 100074 101603 101605 101606 100409 6 100058 100408 100430 100057 102841 109690 6 100056 100057 100429 109689 105380 109690 6 100257 100258 100432 100742 100743 100744 6 100431 100258 100259 100433 100744 100745 6 100432 100259 100260 100434 100745 100746 6 100433 100260 100261 100435 100746 100747 6 100434 100261 100262 100436 100747 100748 6 100435 100262 100263 100437 100748 100749 6 100436 100263 100264 100438 100749 100750 6 100437 100264 100265 100439 100750 100751 6 100438 100265 100266 100440 100751 100752 6 100439 100266 100267 100441 100752 100753 6 100440 100267 100268 100442 100753 100754 6 100441 100268 100269 100443 100754 100755 6 100442 100269 100270 100444 100755 100756 6 100443 100270 100271 100445 100756 100757 6 100444 100271 100272 100446 100757 100758 6 100445 100272 100273 100447 100758 100759 6 100446 100273 100274 100448 100759 100760 6 100447 100274 100275 100449 100760 100761 6 100448 100275 100276 100450 100761 100762 6 100449 100276 100277 100451 100762 100763 6 100450 100277 100278 100452 100763 100764 6 100451 100278 100279 100453 100764 100765 6 100452 100279 100280 100454 100765 100766 6 100453 100280 100281 100455 100766 100767 6 100454 100281 100282 100456 100767 100768 6 100455 100282 100283 100457 100768 100769 6 100456 100283 100284 100458 100769 100770 6 100457 100284 100285 100459 100770 100771 6 100458 100285 100286 100460 100771 100772 6 100459 100286 100287 100461 100772 100773 6 100460 100287 100288 100462 100773 100774 6 100461 100288 100289 100463 100774 100775 6 100462 100289 100290 100464 100775 100776 6 100463 100290 100291 100465 100776 100777 6 100464 100291 100292 100466 100777 100778 6 100465 100292 100293 100467 100778 100779 6 100466 100293 100294 100468 100779 100780 6 100467 100294 100295 100469 100780 100781 6 100468 100295 100296 100470 100781 100782 6 100469 100296 100297 100471 100782 100783 6 100470 100297 100298 100472 100783 100784 6 100471 100298 100299 100473 100784 100785 6 100472 100299 100300 100474 100785 100786 6 100473 100300 100301 100475 100786 100787 6 100474 100301 100302 100476 100787 100788 6 100475 100302 100303 100477 100788 100789 6 100476 100303 100304 100478 100789 100790 6 100477 100304 100305 100479 100790 100791 6 100478 100305 100306 100480 100791 100792 6 100479 100306 100307 100481 100792 100793 6 100480 100307 100308 100482 100793 100794 6 100481 100308 100309 100483 100794 100795 6 100482 100309 100310 100484 100795 100796 6 100483 100310 100311 100485 100796 100797 6 100484 100311 100312 100486 100797 100798 6 100485 100312 100313 100487 100798 100799 6 100486 100313 100314 100488 100799 100800 6 100487 100314 100315 100489 100800 100801 6 100488 100315 100316 100490 100801 100802 6 100489 100316 100317 100491 100802 100803 6 100490 100317 100318 100492 100803 100804 6 100491 100318 100319 100493 100804 100805 6 100492 100319 100320 100494 100805 100806 6 100493 100320 100321 100495 100806 100807 6 100494 100321 100322 100496 100807 100808 6 100495 100322 100323 100497 100808 100809 6 100496 100323 100324 100498 100809 100810 6 100497 100324 100325 100499 100810 100811 6 100498 100325 100326 100500 100811 100812 6 100499 100326 100327 100501 100812 100813 6 100500 100327 100328 100502 100813 100814 6 100501 100328 100329 100503 100814 100815 6 100502 100329 100330 100504 100815 100816 6 100503 100330 100331 100505 100816 100817 6 100504 100331 100332 100506 100817 100818 6 100505 100332 100333 100507 100818 100819 6 100506 100333 100334 100508 100819 100820 6 100507 100334 100335 100509 100820 100821 6 100508 100335 100336 100510 100821 100822 6 100509 100336 100337 100511 100822 100823 6 100510 100337 100338 100512 100823 100824 6 100511 100338 100339 100513 100824 100825 6 100512 100339 100340 100514 100825 100826 6 100513 100340 100341 100515 100826 100827 6 100514 100341 100342 100516 100827 100828 6 100515 100342 100343 100517 100828 100829 6 100516 100343 100344 100518 100829 100830 6 100517 100344 100345 100519 100830 100831 6 100518 100345 100346 100520 100831 100832 6 100519 100346 100347 100521 100832 100833 7 100520 100347 100348 100005 100349 100522 100833 6 100521 100349 100350 100523 100833 100834 5 100522 100350 100351 100524 100834 6 100523 100351 100352 100525 100834 100835 6 100524 100352 100353 100526 100835 100836 6 100525 100353 100354 100527 100836 100837 6 100526 100354 100355 100528 100837 100838 6 100527 100355 100356 100529 100838 100839 6 100528 100356 100357 100530 100839 100840 6 100529 100357 100358 100531 100840 100841 6 100530 100358 100359 100532 100841 100842 6 100531 100359 100360 100533 100842 100843 6 100532 100360 100361 100534 100843 100844 6 100533 100361 100362 100535 100844 100845 6 100534 100362 100363 100536 100845 100846 6 100535 100363 100364 100537 100846 100847 6 100536 100364 100365 100538 100847 100848 6 100537 100365 100366 100539 100848 100849 6 100538 100366 100367 100540 100849 100850 6 100539 100367 100368 100541 100853 100850 6 100540 100368 100369 100542 100855 100853 6 100541 100369 100370 100543 100855 100856 6 100542 100370 100371 100544 100856 100857 6 100543 100371 100372 100545 100857 100858 6 100544 100372 100373 100546 100858 100859 6 100545 100373 100374 100547 100548 100859 6 100546 100374 100548 100549 100550 100375 6 100546 100547 100549 100859 100860 100861 6 100548 100547 100550 100861 100862 100863 6 100549 100547 100375 100376 100551 100863 6 100550 100376 100377 100552 100863 100864 6 100551 100377 100378 100553 100554 100864 6 100552 100378 100554 100555 100556 100379 6 100552 100553 100555 100557 100864 100865 6 100554 100553 100556 100557 100558 100565 6 100555 100553 100379 100565 100566 100380 6 100554 100555 100558 100559 100865 100866 6 100557 100555 100559 100560 100561 100565 6 100557 100558 100560 100866 100867 100868 6 100559 100558 100561 100562 100922 100868 6 100560 100558 100562 100563 100564 100565 6 100560 100561 100563 100921 100920 100922 6 100562 100561 100564 109743 100921 109744 6 100563 100561 100565 100566 109744 100567 6 100564 100561 100558 100555 100556 100566 6 100565 100556 100380 100381 100567 100564 6 100566 100381 100382 100568 109744 100564 6 100567 100382 100383 100569 109744 109739 6 100568 100383 100384 100570 100571 109739 6 100569 100384 100571 100572 100425 100385 6 100569 100570 100572 100573 109739 109740 6 100571 100570 100425 100573 100574 100575 6 100571 100572 100574 109740 109741 100916 6 100573 100572 100575 100576 100916 100915 6 100574 100572 100425 100576 100577 100423 6 100574 100575 100577 100915 102474 101515 6 100576 100575 100423 100424 100578 101515 6 100577 100424 100579 100580 100581 101515 6 100578 100424 100388 100580 100584 100389 6 100578 100579 100581 100582 100583 100584 6 100578 100580 100582 101515 101516 101517 6 100581 100580 100583 101517 101508 101506 6 100582 100580 100584 100585 100589 101506 6 100583 100580 100579 100389 100390 100585 6 100584 100390 100391 100586 100589 100583 6 100585 100391 100392 100420 100587 100589 6 100586 100420 100588 100589 100590 100591 6 100587 100420 100591 100592 100593 100419 6 100586 100587 100590 100585 100583 101506 6 100589 100587 100591 101506 101507 101514 6 100590 100587 100588 100592 100599 101514 6 100591 100588 100593 100597 100598 100599 6 100592 100588 100419 100594 100595 100597 6 100593 100419 100394 100595 100596 100395 6 100593 100594 100596 100597 100621 100606 6 100595 100594 100621 100622 100396 100395 6 100593 100595 100592 100598 100605 100606 6 100592 100597 100599 100600 100604 100605 6 100592 100598 100600 100601 101514 100591 6 100599 100598 100601 100602 100603 100604 6 100599 100600 100602 101513 101514 101539 6 100601 100600 100603 101539 101540 101583 6 100602 100600 100604 101602 101583 100608 6 100603 100600 100598 100605 100607 100608 6 100604 100598 100597 100606 100607 100614 6 100605 100597 100621 100620 100595 100614 6 100604 100605 100608 100609 100610 100614 6 100604 100607 100609 101602 100603 101600 6 100608 100607 100610 100611 101599 101600 6 100609 100607 100611 100612 100613 100614 6 100609 100610 100612 106557 101598 101599 6 100611 100610 100613 100615 103764 106557 6 100612 100610 100614 100615 100616 100620 6 100613 100610 100620 100606 100605 100607 6 100612 100613 100616 100617 103760 103764 6 100615 100613 100617 100618 100619 100620 6 100615 100616 100618 103760 103761 100625 6 100617 100616 100619 100623 100624 100625 6 100618 100616 100620 100621 100623 100622 6 100619 100616 100613 100614 100621 100606 6 100619 100620 100606 100595 100596 100622 6 100621 100596 100396 100397 100623 100619 6 100622 100397 100398 100624 100618 100619 6 100623 100398 100618 100625 100626 100399 6 100618 100624 100626 100627 103761 100617 6 100625 100624 100627 100628 100399 100400 6 100625 100626 100628 100629 103761 103762 6 100627 100626 100629 100630 100401 100400 6 100627 100628 100630 100635 103762 100632 6 100629 100628 100401 100402 100631 100632 6 100630 100402 100632 100633 100403 102097 6 100630 100631 100633 100634 100635 100629 6 100632 100631 100634 102097 100650 100641 6 100632 100633 100635 100636 100637 100641 6 100632 100634 100636 103217 103762 100629 6 100635 100634 100637 100638 103217 103218 6 100636 100634 100638 100639 100640 100641 6 100636 100637 100639 103218 103219 103220 6 100638 100637 100640 103220 103239 103240 6 100639 100637 100641 100642 100643 103239 6 100640 100637 100642 100633 100650 100634 6 100640 100641 100643 100644 100645 100650 6 100640 100642 100644 103237 103236 103239 6 100643 100642 100645 100646 100647 103237 6 100644 100642 100646 100648 100649 100650 5 100644 100645 100647 100412 100648 7 100644 100646 100412 100008 103238 103237 100007 7 100412 100646 100645 100649 100405 100406 100413 6 100648 100645 100650 100405 100404 102097 6 100649 100645 100633 102097 100641 100642 6 100163 100164 100652 100931 100932 100933 6 100651 100164 100165 100653 100933 100934 6 100652 100165 100166 100654 100934 100935 6 100653 100166 100167 100655 100935 100936 6 100654 100167 100168 100656 100936 100937 6 100655 100168 100169 100657 100937 100938 6 100656 100169 100170 100658 100938 100939 6 100657 100170 100171 100659 100939 100940 6 100658 100171 100172 100660 100940 100941 6 100659 100172 100173 100661 100941 100942 6 100660 100173 100174 100662 100942 100943 6 100661 100174 100175 100663 100943 100944 6 100662 100175 100176 100664 100944 100945 6 100663 100176 100177 100665 100945 100946 6 100664 100177 100178 100666 100946 100947 6 100665 100178 100179 100667 100947 100948 6 100666 100179 100180 100668 100948 100949 6 100667 100180 100181 100669 100949 100950 6 100668 100181 100182 100670 100950 100951 6 100669 100182 100183 100671 100951 100952 6 100670 100183 100184 100672 100952 100953 6 100671 100184 100185 100673 100953 100954 6 100672 100185 100186 100674 100954 100955 6 100673 100186 100187 100675 100955 100956 6 100674 100187 100188 100676 100956 100957 6 100675 100188 100189 100677 100957 100958 6 100676 100189 100190 100678 100958 100959 6 100677 100190 100191 100679 100959 100960 6 100678 100191 100192 100680 100960 100961 6 100679 100192 100193 100681 100961 100962 6 100680 100193 100194 100682 100962 100963 6 100681 100194 100195 100683 100963 100964 6 100682 100195 100196 100684 100964 100965 6 100683 100196 100197 100685 100965 100966 6 100684 100197 100198 100686 100966 100967 6 100685 100198 100199 100687 100967 100968 6 100686 100199 100200 100688 100968 100969 6 100687 100200 100201 100689 100969 100970 6 100688 100201 100202 100690 100970 100971 6 100689 100202 100203 100691 100971 100972 6 100690 100203 100204 100692 100972 100973 7 100691 100204 100205 100206 100693 100973 100694 6 100692 100206 100004 100207 100208 100694 7 100693 100208 100209 100695 100973 100692 100974 6 100694 100209 100210 100696 100974 100975 6 100695 100210 100211 100697 100975 100976 6 100696 100211 100212 100698 100976 100977 6 100697 100212 100213 100699 100977 100978 6 100698 100213 100214 100700 100978 100979 6 100699 100214 100215 100701 100979 100980 6 100700 100215 100216 100702 100980 100981 6 100701 100216 100217 100703 100981 100982 6 100702 100217 100218 100704 100982 100983 6 100703 100218 100219 100705 100983 100984 6 100704 100219 100220 100706 100984 100985 6 100705 100220 100221 100707 100985 100986 6 100706 100221 100222 100708 100986 100987 6 100707 100222 100223 100709 100987 100988 6 100708 100223 100224 100710 100988 100989 6 100709 100224 100225 100711 100989 100990 6 100710 100225 100226 100712 100990 100991 6 100711 100226 100227 100713 100991 100992 6 100712 100227 100228 100714 100992 100993 6 100713 100228 100229 100715 100993 100994 6 100714 100229 100230 100716 100994 100995 6 100715 100230 100231 100717 100995 100996 6 100716 100231 100232 100718 100996 100997 6 100717 100232 100233 100719 100997 100998 6 100718 100233 100234 100720 100998 100999 6 100719 100234 100235 100721 100999 101000 6 100720 100235 100236 100722 101000 101001 6 100721 100236 100237 100723 101001 101002 6 100722 100237 100238 100724 101002 101003 6 100723 100238 100239 100725 101003 101004 6 100724 100239 100240 100726 101004 101005 6 100725 100240 100241 100727 101005 101006 6 100726 100241 100242 100728 101006 101007 6 100727 100242 100243 100729 101007 101008 6 100728 100243 100244 100730 101008 101009 6 100729 100244 100245 100731 101009 101010 6 100730 100245 100246 100732 101010 101011 6 100731 100246 100247 100733 101011 101012 6 100732 100247 100248 100734 101012 101013 6 100733 100248 100249 100735 101016 101013 6 100734 100249 100250 100736 101016 101017 6 100735 100250 100251 100737 101017 101018 6 100736 100251 100252 100738 101018 101019 6 100737 100252 100253 100739 101019 101020 6 100738 100253 100254 100740 101020 101021 6 100739 100254 100255 100741 101021 101022 6 100740 100255 100256 100742 101022 101023 6 100741 100256 100257 100431 100743 101023 6 100742 100431 100744 101023 101024 101025 6 100743 100431 100432 100745 101025 101026 6 100744 100432 100433 100746 101026 101027 6 100745 100433 100434 100747 101027 101028 6 100746 100434 100435 100748 101028 101029 6 100747 100435 100436 100749 101029 101030 6 100748 100436 100437 100750 101030 101031 6 100749 100437 100438 100751 101031 101032 6 100750 100438 100439 100752 101032 101033 6 100751 100439 100440 100753 101033 101034 6 100752 100440 100441 100754 101034 101035 6 100753 100441 100442 100755 101035 101036 6 100754 100442 100443 100756 101036 101037 6 100755 100443 100444 100757 101037 101038 6 100756 100444 100445 100758 101038 101039 6 100757 100445 100446 100759 101039 101040 6 100758 100446 100447 100760 101040 101041 6 100759 100447 100448 100761 101041 101042 6 100760 100448 100449 100762 101042 101043 6 100761 100449 100450 100763 101043 101044 6 100762 100450 100451 100764 101044 101045 6 100763 100451 100452 100765 101045 101046 6 100764 100452 100453 100766 101046 101047 6 100765 100453 100454 100767 101047 101048 6 100766 100454 100455 100768 101048 101049 6 100767 100455 100456 100769 101049 101050 6 100768 100456 100457 100770 101050 101051 6 100769 100457 100458 100771 101051 101052 6 100770 100458 100459 100772 101052 101053 6 100771 100459 100460 100773 101053 101054 6 100772 100460 100461 100774 101054 101055 6 100773 100461 100462 100775 101055 101056 6 100774 100462 100463 100776 101056 101057 6 100775 100463 100464 100777 101057 101058 6 100776 100464 100465 100778 101058 101059 6 100777 100465 100466 100779 101059 101060 6 100778 100466 100467 100780 101060 101061 6 100779 100467 100468 100781 101061 101062 6 100780 100468 100469 100782 101062 101063 6 100781 100469 100470 100783 101063 101064 6 100782 100470 100471 100784 101064 101065 6 100783 100471 100472 100785 101065 101066 6 100784 100472 100473 100786 101066 101067 6 100785 100473 100474 100787 101067 101068 6 100786 100474 100475 100788 101068 101069 6 100787 100475 100476 100789 101069 101070 6 100788 100476 100477 100790 101070 101071 6 100789 100477 100478 100791 101071 101072 6 100790 100478 100479 100792 101072 101073 6 100791 100479 100480 100793 101073 101074 6 100792 100480 100481 100794 101074 101075 6 100793 100481 100482 100795 101075 101076 6 100794 100482 100483 100796 101076 101077 6 100795 100483 100484 100797 101077 101078 6 100796 100484 100485 100798 101078 101079 6 100797 100485 100486 100799 101079 101080 6 100798 100486 100487 100800 101080 101081 6 100799 100487 100488 100801 101081 101082 6 100800 100488 100489 100802 101082 101083 6 100801 100489 100490 100803 101083 101084 6 100802 100490 100491 100804 101084 101085 6 100803 100491 100492 100805 101085 101086 6 100804 100492 100493 100806 101086 101087 6 100805 100493 100494 100807 101087 101088 6 100806 100494 100495 100808 101088 101089 6 100807 100495 100496 100809 101089 101090 6 100808 100496 100497 100810 101090 101091 6 100809 100497 100498 100811 101091 101092 6 100810 100498 100499 100812 101092 101093 6 100811 100499 100500 100813 101093 101094 6 100812 100500 100501 100814 101094 101095 6 100813 100501 100502 100815 101095 101096 6 100814 100502 100503 100816 101096 101097 6 100815 100503 100504 100817 101097 101098 6 100816 100504 100505 100818 101098 101099 6 100817 100505 100506 100819 101099 101100 6 100818 100506 100507 100820 101100 101101 6 100819 100507 100508 100821 101101 101102 6 100820 100508 100509 100822 101102 101103 6 100821 100509 100510 100823 101103 101104 6 100822 100510 100511 100824 101104 101105 6 100823 100511 100512 100825 101105 101106 6 100824 100512 100513 100826 101106 101107 6 100825 100513 100514 100827 101107 101108 6 100826 100514 100515 100828 101108 101109 6 100827 100515 100516 100829 101109 101110 6 100828 100516 100517 100830 101110 101111 6 100829 100517 100518 100831 101111 101112 6 100830 100518 100519 100832 101112 101113 6 100831 100519 100520 100833 101113 101114 6 100832 100520 100521 100522 100834 101114 6 100833 100522 100523 100524 100835 101114 7 100834 100524 100525 100836 101114 101115 101116 6 100835 100525 100526 100837 101116 101117 6 100836 100526 100527 100838 101117 101118 6 100837 100527 100528 100839 101118 101119 6 100838 100528 100529 100840 101119 101120 6 100839 100529 100530 100841 101120 101121 6 100840 100530 100531 100842 101121 101122 6 100841 100531 100532 100843 101122 101123 6 100842 100532 100533 100844 101123 101124 6 100843 100533 100534 100845 101124 101125 6 100844 100534 100535 100846 101125 101126 6 100845 100535 100536 100847 101126 101127 6 100846 100536 100537 100848 101127 101128 6 100847 100537 100538 100849 101128 101129 6 100848 100538 100539 100850 100851 101129 6 100849 100539 100851 100852 100853 100540 6 100849 100850 100852 101129 101130 101131 6 100851 100850 100853 100854 101131 101132 6 100852 100850 100854 100855 100541 100540 6 100852 100853 100855 101132 101133 101134 6 100854 100853 100541 100542 100856 101134 6 100855 100542 100543 100857 101134 101135 6 100856 100543 100544 100858 101135 101136 6 100857 100544 100545 100859 101136 101137 6 100858 100545 100546 100548 100860 101137 6 100859 100548 100861 101137 101138 101139 6 100860 100548 100549 100862 101139 101140 6 100861 100549 100863 101140 101141 101142 6 100862 100549 100550 100551 100864 101142 6 100863 100551 100552 100554 100865 101142 6 100864 100554 100557 100866 101142 101143 6 100865 100557 100559 100867 101143 101144 6 100866 100559 100868 100869 101144 101145 6 100867 100559 100869 100870 100922 100560 6 100867 100868 100870 100871 101145 101146 6 100869 100868 100871 100872 100873 100922 6 100869 100870 100872 101146 101147 101148 6 100871 100870 100873 100874 101151 101148 6 100872 100870 100874 100875 100922 100920 6 100872 100873 100875 100876 101170 101151 6 100874 100873 100876 100877 100919 100920 6 100874 100875 100877 100878 100879 101170 6 100876 100875 100878 100918 100882 100919 6 100876 100877 100879 100880 100881 100882 6 100876 100878 100880 100884 100886 101170 6 100879 100878 100881 100884 100885 100891 6 100880 100878 100882 100883 100891 100892 6 100881 100878 100883 100917 100918 100877 6 100881 100882 100912 100892 100913 100917 6 100879 100880 100885 100886 100887 100888 6 100884 100880 100888 100889 100890 100891 6 100879 100884 100887 101964 101169 101170 6 100886 100884 100888 101965 101964 102075 6 100887 100884 100885 100889 102075 102076 6 100888 100885 100890 102076 102077 102081 6 100889 100885 100891 100893 100894 102081 6 100890 100885 100880 100881 100892 100893 6 100891 100881 100893 100896 100912 100883 6 100891 100892 100890 100894 100895 100896 6 100890 100893 100895 100897 100898 102081 6 100894 100893 100896 100897 100909 100910 6 100895 100893 100892 100910 100911 100912 6 100894 100895 100898 100899 100900 100909 6 100894 100897 100899 100901 102081 102080 6 100898 100897 100900 100901 100902 100906 6 100899 100897 100906 100907 100908 100909 6 100898 100899 100902 100903 102080 102082 6 100901 100899 100903 100904 100905 100906 6 100901 100902 100904 102082 102083 102084 6 100903 100902 100905 102084 102085 101565 6 100904 100902 100906 101563 101564 101565 6 100905 100902 100899 100900 100907 101563 6 100906 100900 100908 101543 101563 101536 6 100907 100900 100909 101522 101523 101536 6 100908 100900 100897 100895 100910 101522 6 100909 100895 100896 100911 101520 101522 6 100910 100896 100912 101521 101520 100914 6 100911 100896 100892 100883 100913 100914 6 100912 100883 100914 100915 100916 100917 6 100912 100913 100915 102474 101521 100911 6 100914 100913 100916 100574 100576 102474 6 100915 100913 100917 109741 100573 100574 6 100916 100913 100883 100882 100918 109741 6 100917 100882 100877 100919 109742 109741 6 100918 100877 100875 100920 100921 109742 6 100919 100875 100921 100562 100922 100873 6 100919 100920 100562 109743 109742 100563 6 100562 100920 100873 100870 100868 100560 6 100154 100155 100924 101248 101249 101250 6 100923 100155 100156 100925 101250 101251 6 100924 100156 100157 100926 101251 101252 6 100925 100157 100158 100927 101252 101253 6 100926 100158 100159 100928 101253 101254 6 100927 100159 100160 100929 101254 101255 6 100928 100160 100161 100930 101255 101256 6 100929 100161 100162 100931 101256 101257 6 100930 100162 100163 100651 100932 101257 6 100931 100651 100933 101257 101258 101259 6 100932 100651 100652 100934 101259 101260 6 100933 100652 100653 100935 101260 101261 6 100934 100653 100654 100936 101261 101262 6 100935 100654 100655 100937 101262 101263 6 100936 100655 100656 100938 101263 101264 6 100937 100656 100657 100939 101264 101265 6 100938 100657 100658 100940 101265 101266 6 100939 100658 100659 100941 101266 101267 6 100940 100659 100660 100942 101267 101268 6 100941 100660 100661 100943 101268 101269 6 100942 100661 100662 100944 101269 101270 6 100943 100662 100663 100945 101270 101271 6 100944 100663 100664 100946 101271 101272 6 100945 100664 100665 100947 101272 101273 6 100946 100665 100666 100948 101273 101274 6 100947 100666 100667 100949 101274 101275 6 100948 100667 100668 100950 101275 101276 6 100949 100668 100669 100951 101276 101277 6 100950 100669 100670 100952 101277 101278 6 100951 100670 100671 100953 101278 101279 6 100952 100671 100672 100954 101279 101280 6 100953 100672 100673 100955 101280 101281 6 100954 100673 100674 100956 101281 101282 6 100955 100674 100675 100957 101282 101283 6 100956 100675 100676 100958 101283 101284 6 100957 100676 100677 100959 101284 101285 6 100958 100677 100678 100960 101285 101286 6 100959 100678 100679 100961 101286 101287 6 100960 100679 100680 100962 101287 101288 6 100961 100680 100681 100963 101288 101289 6 100962 100681 100682 100964 101289 101290 6 100963 100682 100683 100965 101290 101291 6 100964 100683 100684 100966 101291 101292 6 100965 100684 100685 100967 101292 101293 6 100966 100685 100686 100968 101293 101294 6 100967 100686 100687 100969 101294 101295 6 100968 100687 100688 100970 101295 101296 6 100969 100688 100689 100971 101296 101297 6 100970 100689 100690 100972 101297 101298 6 100971 100690 100691 100973 101298 101299 6 100972 100691 100692 100694 100974 101299 5 100973 100694 100695 100975 101299 6 100974 100695 100696 100976 101299 101300 6 100975 100696 100697 100977 101300 101301 6 100976 100697 100698 100978 101301 101302 6 100977 100698 100699 100979 101302 101303 6 100978 100699 100700 100980 101303 101304 6 100979 100700 100701 100981 101304 101305 6 100980 100701 100702 100982 101305 101306 6 100981 100702 100703 100983 101306 101307 6 100982 100703 100704 100984 101307 101308 6 100983 100704 100705 100985 101308 101309 6 100984 100705 100706 100986 101309 101310 6 100985 100706 100707 100987 101310 101311 6 100986 100707 100708 100988 101311 101312 6 100987 100708 100709 100989 101312 101313 6 100988 100709 100710 100990 101313 101314 6 100989 100710 100711 100991 101314 101315 6 100990 100711 100712 100992 101315 101316 6 100991 100712 100713 100993 101316 101317 6 100992 100713 100714 100994 101317 101318 6 100993 100714 100715 100995 101318 101319 6 100994 100715 100716 100996 101319 101320 6 100995 100716 100717 100997 101320 101321 6 100996 100717 100718 100998 101321 101322 6 100997 100718 100719 100999 101322 101323 6 100998 100719 100720 101000 101323 101324 6 100999 100720 100721 101001 101324 101325 6 101000 100721 100722 101002 101325 101326 6 101001 100722 100723 101003 101326 101327 6 101002 100723 100724 101004 101327 101328 6 101003 100724 100725 101005 101328 101329 6 101004 100725 100726 101006 101329 101330 6 101005 100726 100727 101007 101330 101331 6 101006 100727 100728 101008 101331 101332 6 101007 100728 100729 101009 101332 101333 6 101008 100729 100730 101010 101333 101334 6 101009 100730 100731 101011 101334 101335 6 101010 100731 100732 101012 101335 101336 6 101011 100732 100733 101013 101014 101336 6 101012 100733 101014 101015 101016 100734 6 101012 101013 101015 101336 101337 101338 6 101014 101013 101016 101338 101339 101340 6 101015 101013 100734 100735 101017 101340 6 101016 100735 100736 101018 101340 101341 6 101017 100736 100737 101019 101341 101342 6 101018 100737 100738 101020 101342 101343 6 101019 100738 100739 101021 101343 101344 6 101020 100739 100740 101022 101344 101345 6 101021 100740 100741 101023 101345 101346 6 101022 100741 100742 100743 101024 101346 6 101023 100743 101025 101346 101347 101348 6 101024 100743 100744 101026 101348 101349 6 101025 100744 100745 101027 101349 101350 6 101026 100745 100746 101028 101350 101351 6 101027 100746 100747 101029 101351 101352 6 101028 100747 100748 101030 101352 101353 6 101029 100748 100749 101031 101353 101354 6 101030 100749 100750 101032 101354 101355 6 101031 100750 100751 101033 101355 101356 6 101032 100751 100752 101034 101356 101357 6 101033 100752 100753 101035 101357 101358 6 101034 100753 100754 101036 101358 101359 6 101035 100754 100755 101037 101359 101360 6 101036 100755 100756 101038 101360 101361 6 101037 100756 100757 101039 101361 101362 6 101038 100757 100758 101040 101362 101363 6 101039 100758 100759 101041 101363 101364 6 101040 100759 100760 101042 101364 101365 6 101041 100760 100761 101043 101365 101366 6 101042 100761 100762 101044 101366 101367 6 101043 100762 100763 101045 101367 101368 6 101044 100763 100764 101046 101368 101369 6 101045 100764 100765 101047 101369 101370 6 101046 100765 100766 101048 101370 101371 6 101047 100766 100767 101049 101371 101372 6 101048 100767 100768 101050 101372 101373 6 101049 100768 100769 101051 101373 101374 6 101050 100769 100770 101052 101374 101375 6 101051 100770 100771 101053 101375 101376 6 101052 100771 100772 101054 101376 101377 6 101053 100772 100773 101055 101377 101378 6 101054 100773 100774 101056 101378 101379 6 101055 100774 100775 101057 101379 101380 6 101056 100775 100776 101058 101380 101381 6 101057 100776 100777 101059 101381 101382 6 101058 100777 100778 101060 101382 101383 6 101059 100778 100779 101061 101383 101384 6 101060 100779 100780 101062 101384 101385 6 101061 100780 100781 101063 101385 101386 6 101062 100781 100782 101064 101386 101387 6 101063 100782 100783 101065 101387 101388 6 101064 100783 100784 101066 101388 101389 6 101065 100784 100785 101067 101389 101390 6 101066 100785 100786 101068 101390 101391 6 101067 100786 100787 101069 101391 101392 6 101068 100787 100788 101070 101392 101393 6 101069 100788 100789 101071 101393 101394 6 101070 100789 100790 101072 101394 101395 6 101071 100790 100791 101073 101395 101396 6 101072 100791 100792 101074 101396 101397 6 101073 100792 100793 101075 101397 101398 6 101074 100793 100794 101076 101398 101399 6 101075 100794 100795 101077 101399 101400 6 101076 100795 100796 101078 101400 101401 6 101077 100796 100797 101079 101401 101402 6 101078 100797 100798 101080 101402 101403 6 101079 100798 100799 101081 101403 101404 6 101080 100799 100800 101082 101404 101405 6 101081 100800 100801 101083 101405 101406 6 101082 100801 100802 101084 101406 101407 6 101083 100802 100803 101085 101407 101408 6 101084 100803 100804 101086 101408 101409 6 101085 100804 100805 101087 101409 101410 6 101086 100805 100806 101088 101410 101411 6 101087 100806 100807 101089 101411 101412 6 101088 100807 100808 101090 101412 101413 6 101089 100808 100809 101091 101413 101414 6 101090 100809 100810 101092 101414 101415 6 101091 100810 100811 101093 101415 101416 6 101092 100811 100812 101094 101416 101417 6 101093 100812 100813 101095 101417 101418 6 101094 100813 100814 101096 101418 101419 6 101095 100814 100815 101097 101419 101420 6 101096 100815 100816 101098 101420 101421 6 101097 100816 100817 101099 101421 101422 6 101098 100817 100818 101100 101422 101423 6 101099 100818 100819 101101 101423 101424 6 101100 100819 100820 101102 101424 101425 6 101101 100820 100821 101103 101425 101426 6 101102 100821 100822 101104 101426 101427 6 101103 100822 100823 101105 101427 101428 6 101104 100823 100824 101106 101428 101429 6 101105 100824 100825 101107 101429 101430 6 101106 100825 100826 101108 101430 101431 6 101107 100826 100827 101109 101431 101432 6 101108 100827 100828 101110 101432 101433 6 101109 100828 100829 101111 101433 101434 6 101110 100829 100830 101112 101434 101435 6 101111 100830 100831 101113 101435 101436 6 101112 100831 100832 101114 101436 101115 6 101113 100832 100833 100834 100835 101115 6 101114 100835 101116 101436 101113 101437 5 101115 100835 100836 101117 101437 6 101116 100836 100837 101118 101437 101438 6 101117 100837 100838 101119 101438 101439 6 101118 100838 100839 101120 101439 101440 6 101119 100839 100840 101121 101440 101441 6 101120 100840 100841 101122 101441 101442 6 101121 100841 100842 101123 101442 101443 6 101122 100842 100843 101124 101443 101444 6 101123 100843 100844 101125 101444 101445 6 101124 100844 100845 101126 101445 101446 6 101125 100845 100846 101127 101446 101447 6 101126 100846 100847 101128 101447 101448 6 101127 100847 100848 101129 101448 101449 6 101128 100848 100849 100851 101130 101449 6 101129 100851 101131 101449 101450 101451 6 101130 100851 100852 101132 101451 101452 6 101131 100852 100854 101133 101452 101453 6 101132 100854 101134 101456 101453 101152 6 101133 100854 100855 100856 101135 101152 6 101134 100856 100857 101136 101152 101153 6 101135 100857 100858 101137 101153 101154 6 101136 100858 100859 100860 101138 101154 6 101137 100860 101139 101154 101155 101156 6 101138 100860 100861 101140 101156 101157 6 101139 100861 100862 101141 101157 101158 6 101140 100862 101142 101158 101159 101143 6 101141 100862 100863 100864 100865 101143 6 101142 100865 100866 101144 101159 101141 6 101143 100866 100867 101145 101498 101159 6 101144 100867 100869 101146 101498 101499 6 101145 100869 100871 101147 101164 101499 6 101146 100871 101148 101149 101164 101165 6 101147 100871 101149 101150 101151 100872 6 101147 101148 101150 101165 101166 101167 6 101149 101148 101151 101167 101168 101169 6 101150 101148 100872 101169 101170 100874 6 101134 101135 101153 101473 101456 101133 6 101152 101135 101136 101154 101473 101490 6 101153 101136 101137 101138 101155 101490 6 101154 101138 101156 101490 101491 101492 6 101155 101138 101139 101157 101492 101493 6 101156 101139 101140 101158 101493 101494 6 101157 101140 101141 101159 101497 101494 6 101158 101141 101143 101144 101498 101497 6 100085 100086 101161 101483 101484 101488 6 101160 100086 100087 101162 101174 101488 6 101161 100087 100088 101163 101174 101175 6 101162 100088 100089 101175 101177 101186 6 101146 101147 101165 101499 101527 101528 6 101164 101147 101149 101166 101528 101533 6 101165 101149 101167 101535 101533 101541 6 101166 101149 101150 101168 101541 101962 6 101167 101150 101169 101962 101963 101964 6 101168 101150 101151 101170 100886 101964 6 101169 101151 100874 100886 100879 100876 6 100414 100021 100022 101172 103337 103882 6 101171 100022 100023 101173 101524 103337 6 101172 100023 100024 101524 101525 101526 6 101161 101162 101175 101176 101488 101489 6 101174 101162 101176 101163 101177 101178 6 101174 101175 101489 101642 101643 101178 6 101175 101163 101178 101179 101186 101183 6 101175 101177 101179 101180 101643 101176 6 101178 101177 101180 101181 101182 101183 6 101178 101179 101181 101643 101644 101645 6 101180 101179 101182 101645 101646 101647 6 101181 101179 101183 101184 103097 101647 6 101182 101179 101184 101185 101186 101177 6 101182 101183 101185 103097 102241 101187 6 101184 101183 101186 100090 100091 101187 6 101185 101183 101177 101163 100089 100090 6 101185 100091 100092 101188 102241 101184 6 101187 100092 100093 101189 102241 101659 6 101188 100093 100094 101190 101660 101659 6 101189 100094 100095 101191 101662 101660 6 101190 100095 100096 101192 101670 101662 6 101191 100096 100097 101193 101670 101671 6 101192 100097 100098 101194 101671 101672 6 101193 100098 100099 101195 101672 101673 6 101194 100099 100100 101196 101673 101674 6 101195 100100 100101 101197 101674 101675 6 101196 100101 100102 101198 101500 101675 6 101197 100102 100103 101199 101457 101500 6 101198 100103 100104 101200 101457 101458 6 101199 100104 100105 101201 101458 101459 6 101200 100105 100106 101202 101459 101460 6 101201 100106 100107 101203 101460 101685 6 101202 100107 100108 101204 101687 101685 6 101203 100108 100109 101205 101687 101688 6 101204 100109 100110 101206 101688 101689 6 101205 100110 100111 101207 101689 101690 6 101206 100111 100112 101208 101693 101690 6 101207 100112 100113 101209 101693 101694 6 101208 100113 100114 101210 101694 101695 6 101209 100114 100115 101211 101556 101695 6 101210 100115 100116 101212 101546 101556 6 101211 100116 100117 101213 101546 101547 6 101212 100117 100118 101214 101547 101548 6 101213 100118 100119 101215 101548 101549 6 101214 100119 100120 101216 101549 101550 6 101215 100120 100121 101217 101553 101550 6 101216 100121 100122 101218 101555 101553 6 101217 100122 100123 101219 101716 101555 6 101218 100123 100124 101220 101716 101717 6 101219 100124 100125 101221 101717 101718 6 101220 100125 100126 101222 101718 101719 6 101221 100126 100127 101223 101719 101720 6 101222 100127 100128 101224 101720 101721 6 101223 100128 100129 101225 101721 101722 6 101224 100129 100130 101226 101722 101723 6 101225 100130 100131 101227 101726 101723 6 101226 100131 100132 101228 101726 101727 6 101227 100132 100133 101229 101727 101728 6 101228 100133 100134 101230 101728 101729 6 101229 100134 100135 101231 101729 101730 6 101230 100135 100136 101232 101733 101730 6 101231 100136 100137 101233 101733 101734 6 101232 100137 100138 101234 101734 101735 6 101233 100138 100139 101235 101735 101736 6 101234 100139 100140 101236 101736 101737 6 101235 100140 100141 101237 101737 101738 6 101236 100141 100142 101238 101738 101739 6 101237 100142 100143 101239 101739 101740 6 101238 100143 100144 101240 101740 101741 6 101239 100144 100145 101241 101741 101742 6 101240 100145 100146 101242 101742 101743 7 101241 100146 100147 100003 100148 101243 101743 5 101242 100148 100149 101244 101743 6 101243 100149 100150 101245 101743 101744 6 101244 100150 100151 101246 101744 101745 6 101245 100151 100152 101247 101745 101746 6 101246 100152 100153 101248 101746 101747 6 101247 100153 100154 100923 101249 101747 6 101248 100923 101250 101747 101748 101749 6 101249 100923 100924 101251 101749 101750 6 101250 100924 100925 101252 101750 101751 6 101251 100925 100926 101253 101751 101752 6 101252 100926 100927 101254 101752 101753 6 101253 100927 100928 101255 101753 101754 6 101254 100928 100929 101256 101754 101755 6 101255 100929 100930 101257 101755 101756 6 101256 100930 100931 100932 101258 101756 6 101257 100932 101259 101756 101757 101758 6 101258 100932 100933 101260 101758 101759 6 101259 100933 100934 101261 101759 101760 6 101260 100934 100935 101262 101760 101761 6 101261 100935 100936 101263 101761 101762 6 101262 100936 100937 101264 101762 101763 6 101263 100937 100938 101265 101763 101764 6 101264 100938 100939 101266 101764 101765 6 101265 100939 100940 101267 101765 101766 6 101266 100940 100941 101268 101766 101767 6 101267 100941 100942 101269 101767 101768 6 101268 100942 100943 101270 101768 101769 6 101269 100943 100944 101271 101769 101770 6 101270 100944 100945 101272 101770 101771 6 101271 100945 100946 101273 101771 101772 6 101272 100946 100947 101274 101772 101773 6 101273 100947 100948 101275 101773 101774 6 101274 100948 100949 101276 101774 101775 6 101275 100949 100950 101277 101775 101776 6 101276 100950 100951 101278 101776 101777 6 101277 100951 100952 101279 101777 101778 6 101278 100952 100953 101280 101778 101779 6 101279 100953 100954 101281 101779 101780 6 101280 100954 100955 101282 101780 101781 6 101281 100955 100956 101283 101781 101782 6 101282 100956 100957 101284 101782 101783 6 101283 100957 100958 101285 101783 101784 6 101284 100958 100959 101286 101784 101785 6 101285 100959 100960 101287 101785 101786 6 101286 100960 100961 101288 101786 101787 6 101287 100961 100962 101289 101787 101788 6 101288 100962 100963 101290 101788 101789 6 101289 100963 100964 101291 101789 101790 6 101290 100964 100965 101292 101790 101791 6 101291 100965 100966 101293 101791 101792 6 101292 100966 100967 101294 101792 101793 6 101293 100967 100968 101295 101793 101794 6 101294 100968 100969 101296 101794 101795 6 101295 100969 100970 101297 101795 101796 6 101296 100970 100971 101298 101796 101797 6 101297 100971 100972 101299 101797 101300 6 101298 100972 100973 100974 100975 101300 7 101299 100975 100976 101301 101797 101298 102100 6 101300 100976 100977 101302 102100 102101 6 101301 100977 100978 101303 102101 102102 6 101302 100978 100979 101304 102102 102103 6 101303 100979 100980 101305 102103 102104 6 101304 100980 100981 101306 102104 102105 6 101305 100981 100982 101307 102105 102106 6 101306 100982 100983 101308 101798 102106 6 101307 100983 100984 101309 101798 101799 6 101308 100984 100985 101310 101799 101800 6 101309 100985 100986 101311 101800 101801 6 101310 100986 100987 101312 101801 101802 6 101311 100987 100988 101313 101802 101803 6 101312 100988 100989 101314 101803 101804 6 101313 100989 100990 101315 101804 101805 6 101314 100990 100991 101316 101805 101806 6 101315 100991 100992 101317 101806 101807 6 101316 100992 100993 101318 101807 101808 6 101317 100993 100994 101319 101808 101809 6 101318 100994 100995 101320 101809 101810 6 101319 100995 100996 101321 101810 101811 6 101320 100996 100997 101322 101811 101812 6 101321 100997 100998 101323 101812 101813 6 101322 100998 100999 101324 101813 101814 6 101323 100999 101000 101325 101814 101815 6 101324 101000 101001 101326 101815 101816 6 101325 101001 101002 101327 101816 101817 6 101326 101002 101003 101328 101817 101818 6 101327 101003 101004 101329 101818 101819 6 101328 101004 101005 101330 101819 101820 6 101329 101005 101006 101331 101820 101821 6 101330 101006 101007 101332 101821 101822 6 101331 101007 101008 101333 101822 101823 6 101332 101008 101009 101334 101823 101824 6 101333 101009 101010 101335 101824 101825 6 101334 101010 101011 101336 101825 101826 6 101335 101011 101012 101014 101337 101826 6 101336 101014 101338 101826 101827 101828 6 101337 101014 101015 101339 101828 101829 6 101338 101015 101340 101829 101830 101831 6 101339 101015 101016 101017 101341 101831 6 101340 101017 101018 101342 101831 101832 6 101341 101018 101019 101343 101832 101833 6 101342 101019 101020 101344 101833 101834 6 101343 101020 101021 101345 101834 101835 6 101344 101021 101022 101346 101835 101836 6 101345 101022 101023 101024 101347 101836 6 101346 101024 101348 101836 101837 101838 6 101347 101024 101025 101349 101838 101839 6 101348 101025 101026 101350 101839 101840 6 101349 101026 101027 101351 101840 101841 6 101350 101027 101028 101352 101841 101842 6 101351 101028 101029 101353 101842 101843 6 101352 101029 101030 101354 101843 101844 6 101353 101030 101031 101355 101844 101845 6 101354 101031 101032 101356 101845 101846 6 101355 101032 101033 101357 101846 101847 6 101356 101033 101034 101358 101847 101848 6 101357 101034 101035 101359 101848 101849 6 101358 101035 101036 101360 101849 101850 6 101359 101036 101037 101361 101850 101851 6 101360 101037 101038 101362 101851 101852 6 101361 101038 101039 101363 101852 101853 6 101362 101039 101040 101364 101853 101854 6 101363 101040 101041 101365 101854 101855 6 101364 101041 101042 101366 101855 101856 6 101365 101042 101043 101367 101856 101857 6 101366 101043 101044 101368 101857 101858 6 101367 101044 101045 101369 101858 101859 6 101368 101045 101046 101370 101859 101860 6 101369 101046 101047 101371 101860 101861 6 101370 101047 101048 101372 101861 101862 6 101371 101048 101049 101373 101862 101863 6 101372 101049 101050 101374 101863 101864 6 101373 101050 101051 101375 101864 101865 6 101374 101051 101052 101376 101865 101866 6 101375 101052 101053 101377 101866 101867 6 101376 101053 101054 101378 101867 101868 6 101377 101054 101055 101379 101868 101869 6 101378 101055 101056 101380 101869 101870 6 101379 101056 101057 101381 101870 101871 6 101380 101057 101058 101382 101871 101872 6 101381 101058 101059 101383 101872 101873 6 101382 101059 101060 101384 101873 101874 6 101383 101060 101061 101385 101874 101875 6 101384 101061 101062 101386 101875 101876 6 101385 101062 101063 101387 101876 101877 6 101386 101063 101064 101388 101877 101878 6 101387 101064 101065 101389 101878 101879 6 101388 101065 101066 101390 101879 101880 6 101389 101066 101067 101391 101880 101881 6 101390 101067 101068 101392 101881 101882 6 101391 101068 101069 101393 101882 101883 6 101392 101069 101070 101394 101883 101884 6 101393 101070 101071 101395 101884 101885 6 101394 101071 101072 101396 101885 101886 6 101395 101072 101073 101397 101886 101887 6 101396 101073 101074 101398 101887 101888 6 101397 101074 101075 101399 101888 101889 6 101398 101075 101076 101400 101889 101890 6 101399 101076 101077 101401 101890 101891 6 101400 101077 101078 101402 101891 101892 6 101401 101078 101079 101403 101892 101893 6 101402 101079 101080 101404 101893 101894 6 101403 101080 101081 101405 101894 101895 6 101404 101081 101082 101406 101895 101896 6 101405 101082 101083 101407 101896 101897 6 101406 101083 101084 101408 101897 101898 6 101407 101084 101085 101409 101898 101899 6 101408 101085 101086 101410 101899 101900 6 101409 101086 101087 101411 101900 101901 6 101410 101087 101088 101412 101901 101902 6 101411 101088 101089 101413 101902 101903 6 101412 101089 101090 101414 101903 101904 6 101413 101090 101091 101415 101904 101905 6 101414 101091 101092 101416 101905 101906 6 101415 101092 101093 101417 101906 101907 6 101416 101093 101094 101418 101907 101908 6 101417 101094 101095 101419 101908 101909 6 101418 101095 101096 101420 101909 101910 6 101419 101096 101097 101421 101910 101911 6 101420 101097 101098 101422 101911 101912 6 101421 101098 101099 101423 101912 101913 6 101422 101099 101100 101424 101913 101914 6 101423 101100 101101 101425 101914 101915 6 101424 101101 101102 101426 101915 101916 6 101425 101102 101103 101427 101916 101917 6 101426 101103 101104 101428 101917 101918 6 101427 101104 101105 101429 101918 101919 6 101428 101105 101106 101430 101919 101920 6 101429 101106 101107 101431 101920 101921 6 101430 101107 101108 101432 101921 101922 6 101431 101108 101109 101433 101922 101923 6 101432 101109 101110 101434 101923 101924 6 101433 101110 101111 101435 101924 101925 6 101434 101111 101112 101436 101925 101926 6 101435 101112 101113 101115 101437 101926 6 101436 101115 101116 101117 101438 101926 6 101437 101117 101118 101439 101926 101927 6 101438 101118 101119 101440 101927 101928 6 101439 101119 101120 101441 101928 101929 6 101440 101120 101121 101442 101929 101930 6 101441 101121 101122 101443 101930 101931 6 101442 101122 101123 101444 101931 101932 6 101443 101123 101124 101445 101461 101932 6 101444 101124 101125 101446 101461 101462 6 101445 101125 101126 101447 101462 101463 6 101446 101126 101127 101448 101463 101464 6 101447 101127 101128 101449 101464 101465 6 101448 101128 101129 101130 101450 101465 6 101449 101130 101451 101465 101466 101467 6 101450 101130 101131 101452 101467 101468 6 101451 101131 101132 101453 101454 101468 6 101452 101132 101454 101455 101456 101133 6 101452 101453 101455 101468 101469 101470 6 101454 101453 101456 101470 101471 101472 6 101455 101453 101133 101472 101473 101152 6 101198 101199 101458 101500 101501 101679 6 101457 101199 101200 101459 101679 101680 6 101458 101200 101201 101460 101680 101681 6 101459 101201 101202 101681 101684 101685 6 101444 101445 101462 101932 101933 101934 6 101461 101445 101446 101463 101934 101935 6 101462 101446 101447 101464 101935 101936 6 101463 101447 101448 101465 101936 101937 6 101464 101448 101449 101450 101466 101937 6 101465 101450 101467 101937 101938 101939 6 101466 101450 101451 101468 101939 101940 6 101467 101451 101452 101454 101469 101940 6 101468 101454 101470 101940 101941 101942 6 101469 101454 101455 101471 101942 101943 6 101470 101455 101472 101943 101944 101945 6 101471 101455 101456 101473 101945 101946 6 101472 101456 101152 101153 101490 101946 7 100076 100002 101475 101608 101604 101609 101618 6 101474 100002 100077 101476 101620 101618 6 101475 100077 100078 101477 101620 101621 6 101476 100078 100079 101478 101621 101622 6 101477 100079 100080 101479 101630 101622 6 101478 100080 100081 101480 101630 101631 6 101479 100081 100082 101481 101631 101632 6 101480 100082 100083 101482 101635 101632 6 101481 100083 100084 101483 101485 101635 6 101482 100084 100085 101160 101484 101485 6 101483 101160 101485 101486 101487 101488 6 101483 101484 101486 101502 101635 101482 6 101485 101484 101487 101502 101503 101504 6 101486 101484 101488 101504 101505 101489 6 101487 101484 101160 101161 101174 101489 6 101488 101174 101176 101505 101487 101642 6 101473 101153 101154 101155 101491 101946 6 101490 101155 101492 101946 101947 101948 6 101491 101155 101156 101493 101948 101949 6 101492 101156 101157 101494 101495 101949 6 101493 101157 101495 101496 101497 101158 6 101493 101494 101496 101951 101949 101952 6 101495 101494 101497 101952 101530 101529 6 101496 101494 101158 101159 101498 101529 6 101144 101145 101499 101159 101497 101529 6 101498 101145 101146 101164 101527 101529 6 101197 101198 101457 101501 101675 101676 6 101500 101457 101676 101677 101678 101679 6 101485 101486 101503 101637 101634 101635 6 101502 101486 101504 101637 101638 101639 6 101503 101486 101487 101505 101639 101640 6 101504 101487 101489 101640 101641 101642 6 100583 100589 100590 101507 101508 100582 6 101506 100590 101508 101509 101513 101514 6 101506 101507 101509 101510 101517 100582 6 101508 101507 101510 101511 101512 101513 6 101508 101509 101511 101517 101518 101519 6 101510 101509 101512 101523 101519 101537 6 101511 101509 101513 101537 101538 101539 6 101512 101509 101507 101514 100601 101539 6 101513 101507 100601 100599 100591 100590 6 100577 100578 100581 101516 102474 100576 6 101515 100581 101517 101518 101521 102474 6 101516 100581 100582 101508 101510 101518 6 101517 101510 101519 101520 101521 101516 6 101518 101510 101520 101522 101523 101511 6 101518 101519 101521 100911 100910 101522 6 101518 101520 100911 101516 102474 100914 6 100910 101520 101519 101523 100908 100909 6 101522 101519 101511 100908 101536 101537 6 101172 101173 101525 103337 103338 104250 6 101524 101173 101526 103130 102205 104250 6 101525 101173 100024 100025 103130 109781 6 101499 101164 101528 101529 101530 101531 6 101527 101164 101165 101531 101532 101533 6 101497 101498 101499 101527 101530 101496 6 101529 101527 101531 101952 101496 101953 6 101530 101527 101528 101532 101953 101954 6 101531 101528 101533 101534 101954 101955 6 101532 101528 101534 101535 101166 101165 6 101532 101533 101535 101955 101956 101957 6 101534 101533 101166 101541 101960 101957 6 100908 101523 101537 101542 101543 100907 6 101536 101523 101511 101512 101538 101542 6 101537 101512 101539 101540 101545 101542 6 101538 101512 101513 100601 100602 101540 6 101539 100602 101538 101582 101545 101583 6 101535 101166 101167 101960 101961 101962 6 101536 101537 101543 101544 101545 101538 6 101536 101542 101544 101562 101563 100907 6 101543 101542 101545 101562 101580 101577 6 101544 101542 101538 101582 101580 101540 6 101211 101212 101547 101556 101557 101558 6 101546 101212 101213 101548 101561 101558 6 101547 101213 101214 101549 101710 101561 6 101548 101214 101215 101550 101551 101710 6 101549 101215 101551 101552 101553 101216 6 101549 101550 101552 101710 101711 101712 6 101551 101550 101553 101554 101712 101713 6 101552 101550 101554 101555 101217 101216 6 101552 101553 101555 101713 101714 101715 6 101554 101553 101217 101715 101716 101218 6 101210 101211 101546 101557 101695 101696 6 101556 101546 101558 101559 101696 101697 6 101557 101546 101559 101560 101561 101547 6 101557 101558 101560 101697 101698 101699 6 101559 101558 101561 101699 101700 101709 6 101560 101558 101547 101709 101710 101548 6 101543 101544 101563 101564 101576 101577 6 101543 101562 101564 100905 100907 100906 6 101563 101562 100905 101565 101566 101576 6 100905 101564 101566 101567 102085 100904 6 101565 101564 101567 101568 101569 101576 6 101565 101566 101568 102085 103766 103767 6 101567 101566 101569 101570 101571 103767 6 101568 101566 101570 101574 101575 101576 6 101568 101569 101571 101572 101573 101574 7 101568 101570 101572 103769 103767 106317 106319 5 101571 101570 101573 106319 106320 7 101572 101570 101574 106320 106361 106360 102475 6 101573 101570 101569 101575 101578 102475 6 101574 101569 101576 101577 101578 101579 6 101575 101569 101566 101564 101562 101577 6 101576 101562 101575 101579 101580 101544 6 101574 101575 101579 101586 101587 102475 6 101578 101575 101577 101580 101581 101586 6 101579 101577 101544 101581 101582 101545 6 101579 101580 101582 101584 101585 101586 6 101581 101580 101545 101540 101583 101584 6 101582 101540 101584 101602 100603 100602 6 101582 101583 101581 101585 101601 101602 6 101581 101584 101586 101591 101588 101601 6 101581 101585 101579 101578 101587 101588 6 101578 101586 101588 101589 102475 102476 6 101587 101586 101589 101590 101591 101585 6 101587 101588 101590 106354 106353 102476 6 101589 101588 101591 101592 101594 106354 6 101590 101588 101585 101592 101593 101601 6 101590 101591 101593 101594 101595 101596 6 101592 101591 101599 101596 101600 101601 6 101590 101592 101595 106358 106356 106354 6 101594 101592 101596 101597 103970 106358 6 101595 101592 101597 101598 101599 101593 6 101595 101596 101598 103970 103969 106556 6 101597 101596 101599 106556 106557 100611 6 101598 101596 101593 101600 100611 100609 6 101599 101593 101601 101602 100608 100609 6 101600 101593 101591 101585 101584 101602 6 101600 101601 101584 101583 100603 100608 6 100074 100075 101604 100428 101605 101608 5 101603 100075 100076 101608 101474 6 100428 101603 101606 101607 101608 103519 6 100428 101605 101607 102493 100409 103516 6 101606 101605 103518 103516 101613 103519 7 101605 101603 101604 101474 101609 101610 103519 5 101608 101474 101610 101611 101618 6 101608 101609 101611 101612 101613 103519 6 101610 101609 101612 101616 101617 101618 6 101610 101611 101613 101614 101615 101616 7 101610 101612 101614 103518 101607 103519 103523 6 101613 101612 101615 103523 103524 103528 6 101614 101612 101616 103093 103544 103528 6 101615 101612 101611 101617 103093 103094 6 101616 101611 101618 101619 103094 101624 7 101617 101611 101619 101620 101475 101609 101474 6 101617 101618 101620 101621 101623 101624 5 101619 101618 101475 101476 101621 6 101620 101476 101477 101622 101623 101619 6 101621 101477 101623 101629 101630 101478 6 101621 101622 101619 101624 101625 101629 7 101619 101623 101625 101626 101617 103094 104367 6 101624 101623 101626 101627 101628 101629 5 101624 101625 101627 104376 104367 7 101626 101625 101628 104377 104376 102862 107215 6 101627 101625 101629 102861 101633 102862 6 101628 101625 101623 101622 101630 102861 6 101629 101622 101478 101479 101631 102861 6 101630 101479 101480 101632 101633 102861 6 101631 101480 101633 101634 101635 101481 7 101631 101632 101634 101636 102861 101628 102862 6 101633 101632 101635 101636 101637 101502 6 101634 101632 101481 101502 101485 101482 5 101633 101634 101637 102862 102863 7 101636 101634 101502 101503 101638 102863 102864 5 101637 101503 101639 102864 102865 6 101638 101503 101504 101640 102865 102866 6 101639 101504 101505 101641 102866 102867 6 101640 101505 101642 102479 102490 102867 6 101641 101505 101489 101176 101643 102479 6 101642 101176 101178 101180 101644 102479 6 101643 101180 101645 102479 102480 102481 6 101644 101180 101181 101646 102481 101650 6 101645 101181 101647 101648 101649 101650 6 101646 101181 101648 101655 103097 101182 6 101646 101647 101649 101653 101654 101655 6 101646 101648 101650 101651 101652 101653 6 101646 101649 101651 102481 101645 102495 6 101650 101649 101652 102495 102496 102497 6 101651 101649 101653 102497 102498 102499 6 101652 101649 101648 101654 102499 102500 6 101653 101648 101655 101656 102500 102501 6 101654 101648 101647 101656 101657 103097 6 101654 101655 101657 101658 102501 102812 6 101656 101655 101658 101659 102241 103097 6 101656 101657 101659 101660 101661 102812 6 101658 101657 101660 101189 101188 102241 6 101658 101659 101661 101662 101190 101189 6 101658 101660 101662 101663 101664 102812 6 101661 101660 101663 101670 101191 101190 6 101661 101662 101664 101665 101669 101670 6 101661 101663 101665 101666 102812 102811 6 101664 101663 101666 101667 101668 101669 6 101664 101665 101667 102811 102813 102814 6 101666 101665 101668 102814 102815 102816 6 101667 101665 101669 102816 102821 102822 6 101668 101665 101663 101670 101671 102822 6 101669 101663 101662 101191 101192 101671 6 101670 101192 101193 101672 102822 101669 6 101671 101193 101194 101673 102823 102822 6 101672 101194 101195 101674 103147 102823 6 101673 101195 101196 101675 103147 103412 6 101674 101196 101197 101500 101676 103412 6 101675 101500 101501 101677 103412 103413 6 101676 101501 101678 103413 103414 103415 6 101677 101501 101679 103415 105381 105382 6 101678 101501 101457 101458 101680 105381 6 101679 101458 101459 101681 101682 105381 6 101680 101459 101460 101682 101683 101684 6 101680 101681 101683 103774 105383 105381 6 101682 101681 101684 103774 103775 103776 6 101683 101681 101460 101685 101686 103776 6 101684 101460 101686 101687 101203 101202 6 101684 101685 101687 103776 103777 103781 6 101686 101685 101203 101204 101688 103781 6 101687 101204 101205 101689 103781 103782 6 101688 101205 101206 101690 101691 103782 6 101689 101206 101691 101692 101693 101207 6 101689 101690 101692 103782 103783 103784 6 101691 101690 101693 103784 103785 103786 6 101692 101690 101207 101208 101694 103786 6 101693 101208 101209 101695 103786 103416 6 101694 101209 101210 101556 101696 103416 6 101695 101556 101557 101697 103416 103417 6 101696 101557 101559 101698 103417 103418 6 101697 101559 101699 101703 102223 103418 6 101698 101559 101560 101700 101701 101703 6 101699 101560 101701 101702 101708 101709 6 101699 101700 101702 101703 101704 101705 6 101701 101700 101705 101706 101707 101708 6 101699 101701 101704 101698 102223 102224 6 101703 101701 101705 102224 102225 102226 6 101704 101701 101702 101706 102226 102227 6 101705 101702 101707 102227 102228 102229 6 101706 101702 101708 102229 102230 102231 6 101707 101702 101700 101709 101711 102231 6 101708 101700 101560 101561 101710 101711 6 101709 101561 101548 101549 101551 101711 6 101710 101551 101712 102231 101708 101709 6 101711 101551 101552 101713 102232 102231 6 101712 101552 101554 101714 102240 102232 6 101713 101554 101715 102240 102560 102564 6 101714 101554 101555 101716 102564 102565 6 101715 101555 101218 101219 101717 102565 6 101716 101219 101220 101718 102565 102566 6 101717 101220 101221 101719 102569 102566 6 101718 101221 101222 101720 103463 102569 6 101719 101222 101223 101721 103462 103463 6 101720 101223 101224 101722 103469 103462 6 101721 101224 101225 101723 101724 103469 6 101722 101225 101724 101725 101726 101226 6 101722 101723 101725 102172 103467 103469 6 101724 101723 101726 102172 102173 102174 6 101725 101723 101226 101227 101727 102174 6 101726 101227 101228 101728 102174 102175 6 101727 101228 101229 101729 102175 102176 6 101728 101229 101230 101730 101731 102176 6 101729 101230 101731 101732 101733 101231 6 101729 101730 101732 102178 102176 102808 6 101731 101730 101733 103404 102808 103405 6 101732 101730 101231 101232 101734 103405 6 101733 101232 101233 101735 103405 103406 6 101734 101233 101234 101736 103406 103407 6 101735 101234 101235 101737 103407 103408 6 101736 101235 101236 101738 103408 103409 6 101737 101236 101237 101739 103409 103410 6 101738 101237 101238 101740 103410 103411 6 101739 101238 101239 101741 103197 103411 6 101740 101239 101240 101742 103191 103197 6 101741 101240 101241 101743 103191 101744 6 101742 101241 101242 101243 101244 101744 7 101743 101244 101245 101745 103191 101742 103199 6 101744 101245 101246 101746 102893 103199 6 101745 101246 101247 101747 102751 102893 6 101746 101247 101248 101249 101748 102751 6 101747 101249 101749 102233 102751 102752 6 101748 101249 101250 101750 102233 102234 6 101749 101250 101251 101751 102237 102234 6 101750 101251 101252 101752 102247 102237 6 101751 101252 101253 101753 102247 102253 6 101752 101253 101254 101754 102253 102254 6 101753 101254 101255 101755 102254 102255 6 101754 101255 101256 101756 102255 102256 6 101755 101256 101257 101258 101757 102256 6 101756 101258 101758 102256 102257 102258 6 101757 101258 101259 101759 102258 102259 6 101758 101259 101260 101760 102259 102260 6 101759 101260 101261 101761 102260 102261 6 101760 101261 101262 101762 102261 102262 6 101761 101262 101263 101763 102262 102263 6 101762 101263 101264 101764 102263 102264 6 101763 101264 101265 101765 102264 102265 6 101764 101265 101266 101766 102265 102266 6 101765 101266 101267 101767 102266 102267 6 101766 101267 101268 101768 102267 102268 6 101767 101268 101269 101769 102268 102269 6 101768 101269 101270 101770 102269 102270 6 101769 101270 101271 101771 102270 102271 6 101770 101271 101272 101772 102271 102272 6 101771 101272 101273 101773 102272 102273 6 101772 101273 101274 101774 102273 102274 6 101773 101274 101275 101775 102274 102275 6 101774 101275 101276 101776 102275 102276 6 101775 101276 101277 101777 102276 102277 6 101776 101277 101278 101778 102277 102278 6 101777 101278 101279 101779 102278 102279 6 101778 101279 101280 101780 102279 102280 6 101779 101280 101281 101781 102280 102281 6 101780 101281 101282 101782 102281 102282 6 101781 101282 101283 101783 102282 102283 6 101782 101283 101284 101784 102283 102284 6 101783 101284 101285 101785 102284 102285 6 101784 101285 101286 101786 102285 102286 6 101785 101286 101287 101787 102286 102287 6 101786 101287 101288 101788 102287 102288 6 101787 101288 101289 101789 102288 102289 6 101788 101289 101290 101790 102289 102290 6 101789 101290 101291 101791 102290 102291 6 101790 101291 101292 101792 102291 102292 6 101791 101292 101293 101793 102292 102293 6 101792 101293 101294 101794 102293 102294 6 101793 101294 101295 101795 102294 102295 6 101794 101295 101296 101796 102098 102295 6 101795 101296 101297 101797 102098 102099 6 101796 101297 101298 101300 102099 102100 6 101307 101308 101799 102106 102107 102108 6 101798 101308 101309 101800 102108 102109 6 101799 101309 101310 101801 102109 102110 6 101800 101310 101311 101802 102110 102111 6 101801 101311 101312 101803 102111 102112 6 101802 101312 101313 101804 102112 102113 6 101803 101313 101314 101805 102113 102114 6 101804 101314 101315 101806 102114 102115 6 101805 101315 101316 101807 102115 102116 6 101806 101316 101317 101808 102116 102117 6 101807 101317 101318 101809 102117 102118 6 101808 101318 101319 101810 102118 102119 6 101809 101319 101320 101811 102119 102120 6 101810 101320 101321 101812 102120 102121 6 101811 101321 101322 101813 102121 102122 6 101812 101322 101323 101814 102122 102123 6 101813 101323 101324 101815 102123 102124 6 101814 101324 101325 101816 102124 102125 6 101815 101325 101326 101817 102125 102126 6 101816 101326 101327 101818 102126 102127 6 101817 101327 101328 101819 102127 102128 6 101818 101328 101329 101820 102128 102129 6 101819 101329 101330 101821 102129 102130 6 101820 101330 101331 101822 102130 102131 6 101821 101331 101332 101823 102131 102132 6 101822 101332 101333 101824 102132 102133 6 101823 101333 101334 101825 102133 102134 6 101824 101334 101335 101826 102134 102135 6 101825 101335 101336 101337 101827 102135 6 101826 101337 101828 102135 102136 102137 6 101827 101337 101338 101829 102137 102138 6 101828 101338 101339 101830 102138 102139 6 101829 101339 101831 102139 102140 102141 6 101830 101339 101340 101341 101832 102141 6 101831 101341 101342 101833 102141 102142 6 101832 101342 101343 101834 102142 102143 6 101833 101343 101344 101835 102143 102144 6 101834 101344 101345 101836 102144 102145 6 101835 101345 101346 101347 101837 102145 6 101836 101347 101838 102150 102145 102165 6 101837 101347 101348 101839 102165 102166 6 101838 101348 101349 101840 102166 102167 6 101839 101349 101350 101841 102167 102168 6 101840 101350 101351 101842 102171 102168 6 101841 101351 101352 101843 102349 102171 6 101842 101352 101353 101844 102349 102350 6 101843 101353 101354 101845 102350 102351 6 101844 101354 101355 101846 102351 102352 6 101845 101355 101356 101847 102352 102353 6 101846 101356 101357 101848 102353 102354 6 101847 101357 101358 101849 102354 102355 6 101848 101358 101359 101850 102355 102356 6 101849 101359 101360 101851 102356 102357 6 101850 101360 101361 101852 102357 102358 6 101851 101361 101362 101853 102358 102359 6 101852 101362 101363 101854 102359 102360 6 101853 101363 101364 101855 102360 102361 6 101854 101364 101365 101856 101966 102361 6 101855 101365 101366 101857 101966 101967 6 101856 101366 101367 101858 101967 101968 6 101857 101367 101368 101859 101968 101969 6 101858 101368 101369 101860 101969 101970 6 101859 101369 101370 101861 101970 101971 6 101860 101370 101371 101862 101971 101972 6 101861 101371 101372 101863 101972 101973 6 101862 101372 101373 101864 101973 101974 6 101863 101373 101374 101865 101974 101975 6 101864 101374 101375 101866 101975 101976 6 101865 101375 101376 101867 101976 101977 6 101866 101376 101377 101868 101977 101978 6 101867 101377 101378 101869 101978 101979 6 101868 101378 101379 101870 101979 101980 6 101869 101379 101380 101871 101980 101981 6 101870 101380 101381 101872 101981 101982 6 101871 101381 101382 101873 101982 101983 6 101872 101382 101383 101874 101983 101984 6 101873 101383 101384 101875 101984 101985 6 101874 101384 101385 101876 101985 101986 6 101875 101385 101386 101877 101986 101987 6 101876 101386 101387 101878 101987 101988 6 101877 101387 101388 101879 101988 101989 6 101878 101388 101389 101880 101989 101990 6 101879 101389 101390 101881 101990 101991 6 101880 101390 101391 101882 101991 101992 6 101881 101391 101392 101883 101992 101993 6 101882 101392 101393 101884 101993 101994 6 101883 101393 101394 101885 101994 101995 6 101884 101394 101395 101886 101995 101996 6 101885 101395 101396 101887 101996 101997 6 101886 101396 101397 101888 101997 101998 6 101887 101397 101398 101889 101998 101999 6 101888 101398 101399 101890 101999 102000 6 101889 101399 101400 101891 102000 102001 6 101890 101400 101401 101892 102001 102002 6 101891 101401 101402 101893 102002 102003 6 101892 101402 101403 101894 102003 102004 6 101893 101403 101404 101895 102004 102005 6 101894 101404 101405 101896 102005 102006 6 101895 101405 101406 101897 102006 102007 6 101896 101406 101407 101898 102007 102008 6 101897 101407 101408 101899 102008 102009 6 101898 101408 101409 101900 102009 102010 6 101899 101409 101410 101901 102010 102011 6 101900 101410 101411 101902 102011 102012 6 101901 101411 101412 101903 102012 102013 6 101902 101412 101413 101904 102013 102014 6 101903 101413 101414 101905 102014 102015 6 101904 101414 101415 101906 102015 102016 6 101905 101415 101416 101907 102016 102017 6 101906 101416 101417 101908 102017 102018 6 101907 101417 101418 101909 102018 102019 6 101908 101418 101419 101910 102019 102020 6 101909 101419 101420 101911 102020 102021 6 101910 101420 101421 101912 102021 102022 6 101911 101421 101422 101913 102022 102023 6 101912 101422 101423 101914 102023 102024 6 101913 101423 101424 101915 102024 102025 6 101914 101424 101425 101916 102025 102026 6 101915 101425 101426 101917 102026 102027 6 101916 101426 101427 101918 102027 102028 6 101917 101427 101428 101919 102028 102029 6 101918 101428 101429 101920 102029 102030 6 101919 101429 101430 101921 102030 102031 6 101920 101430 101431 101922 102031 102032 6 101921 101431 101432 101923 102032 102033 6 101922 101432 101433 101924 102033 102034 6 101923 101433 101434 101925 102034 102035 6 101924 101434 101435 101926 102035 101927 6 101925 101435 101436 101437 101438 101927 7 101926 101438 101439 101928 102035 101925 102036 6 101927 101439 101440 101929 102036 102037 6 101928 101440 101441 101930 102037 102038 6 101929 101441 101442 101931 102038 102039 6 101930 101442 101443 101932 102039 102040 7 101931 101443 101444 101461 101933 102040 102041 5 101932 101461 101934 102041 102042 6 101933 101461 101462 101935 102042 102043 6 101934 101462 101463 101936 102043 102044 6 101935 101463 101464 101937 102044 102045 6 101936 101464 101465 101466 101938 102045 6 101937 101466 101939 102045 102046 102047 6 101938 101466 101467 101940 102047 102048 6 101939 101467 101468 101469 101941 102048 6 101940 101469 101942 102048 102049 102050 6 101941 101469 101470 101943 102050 102051 6 101942 101470 101471 101944 102051 102052 6 101943 101471 101945 102052 102053 102054 6 101944 101471 101472 101946 102054 101947 6 101945 101472 101473 101490 101491 101947 6 101946 101491 101948 102054 101945 102055 6 101947 101491 101492 101949 101950 102055 6 101948 101492 101950 101951 101495 101493 6 101948 101949 101951 102055 102056 102057 6 101950 101949 101495 101952 102057 102058 6 101951 101495 101496 101530 101953 102058 6 101952 101530 101531 101954 102058 102059 6 101953 101531 101532 101955 102059 102060 6 101954 101532 101534 101956 102060 102061 6 101955 101534 101957 101958 102061 102062 6 101956 101534 101958 101959 101960 101535 6 101956 101957 101959 102062 102063 102064 6 101958 101957 101960 102064 102065 102066 6 101959 101957 101535 101541 101961 102066 6 101960 101541 101962 102066 102067 102068 6 101961 101541 101167 101168 101963 102068 6 101962 101168 101964 101965 102070 102068 6 101963 101168 101965 100887 100886 101169 6 101963 101964 100887 102072 102070 102075 6 101855 101856 101967 102361 102362 102363 6 101966 101856 101857 101968 102363 102364 6 101967 101857 101858 101969 102364 102365 6 101968 101858 101859 101970 102365 102366 6 101969 101859 101860 101971 102366 102367 6 101970 101860 101861 101972 102367 102368 6 101971 101861 101862 101973 102368 102369 6 101972 101862 101863 101974 102369 102370 6 101973 101863 101864 101975 102370 102371 6 101974 101864 101865 101976 102371 102372 6 101975 101865 101866 101977 102372 102373 6 101976 101866 101867 101978 102373 102374 6 101977 101867 101868 101979 102374 102375 6 101978 101868 101869 101980 102375 102376 6 101979 101869 101870 101981 102376 102377 6 101980 101870 101871 101982 102377 102378 6 101981 101871 101872 101983 102378 102379 6 101982 101872 101873 101984 102379 102380 6 101983 101873 101874 101985 102380 102381 6 101984 101874 101875 101986 102381 102382 6 101985 101875 101876 101987 102382 102383 6 101986 101876 101877 101988 102383 102384 6 101987 101877 101878 101989 102384 102385 6 101988 101878 101879 101990 102385 102386 6 101989 101879 101880 101991 102386 102387 6 101990 101880 101881 101992 102387 102388 6 101991 101881 101882 101993 102388 102389 6 101992 101882 101883 101994 102389 102390 6 101993 101883 101884 101995 102390 102391 6 101994 101884 101885 101996 102391 102392 6 101995 101885 101886 101997 102392 102393 6 101996 101886 101887 101998 102393 102394 6 101997 101887 101888 101999 102394 102395 6 101998 101888 101889 102000 102395 102396 6 101999 101889 101890 102001 102396 102397 6 102000 101890 101891 102002 102397 102398 6 102001 101891 101892 102003 102398 102399 6 102002 101892 101893 102004 102399 102400 6 102003 101893 101894 102005 102400 102401 6 102004 101894 101895 102006 102401 102402 6 102005 101895 101896 102007 102402 102403 6 102006 101896 101897 102008 102403 102404 6 102007 101897 101898 102009 102404 102405 6 102008 101898 101899 102010 102405 102406 6 102009 101899 101900 102011 102406 102407 6 102010 101900 101901 102012 102407 102408 6 102011 101901 101902 102013 102408 102409 6 102012 101902 101903 102014 102409 102410 6 102013 101903 101904 102015 102410 102411 6 102014 101904 101905 102016 102411 102412 6 102015 101905 101906 102017 102412 102413 6 102016 101906 101907 102018 102413 102414 6 102017 101907 101908 102019 102414 102415 6 102018 101908 101909 102020 102415 102416 6 102019 101909 101910 102021 102416 102417 6 102020 101910 101911 102022 102417 102418 6 102021 101911 101912 102023 102418 102419 6 102022 101912 101913 102024 102419 102420 6 102023 101913 101914 102025 102420 102421 6 102024 101914 101915 102026 102421 102422 6 102025 101915 101916 102027 102422 102423 6 102026 101916 101917 102028 102423 102424 6 102027 101917 101918 102029 102424 102425 6 102028 101918 101919 102030 102425 102426 6 102029 101919 101920 102031 102426 102427 6 102030 101920 101921 102032 102427 102428 6 102031 101921 101922 102033 102428 102429 6 102032 101922 101923 102034 102429 102430 6 102033 101923 101924 102035 102430 102431 6 102034 101924 101925 101927 102036 102431 5 102035 101927 101928 102037 102431 6 102036 101928 101929 102038 102431 102432 6 102037 101929 101930 102039 102432 102433 6 102038 101930 101931 102040 102433 102434 7 102039 101931 101932 102041 102434 102435 102436 5 102040 101932 101933 102042 102436 7 102041 101933 101934 102043 102436 102437 102438 6 102042 101934 101935 102044 102438 102439 6 102043 101935 101936 102045 102439 102440 6 102044 101936 101937 101938 102046 102440 6 102045 101938 102047 102440 102441 102442 6 102046 101938 101939 102048 102442 102443 6 102047 101939 101940 101941 102049 102443 6 102048 101941 102050 102443 102444 102448 6 102049 101941 101942 102051 102448 102449 6 102050 101942 101943 102052 102449 102450 6 102051 101943 101944 102053 102450 102451 6 102052 101944 102054 102451 102452 102453 6 102053 101944 101945 101947 102055 102453 6 102054 101947 101948 101950 102056 102453 6 102055 101950 102057 102453 102454 102455 6 102056 101950 101951 102058 102455 102456 6 102057 101951 101952 101953 102059 102456 6 102058 101953 101954 102060 102456 102457 6 102059 101954 101955 102061 102457 102458 6 102060 101955 101956 102062 102458 102459 6 102061 101956 101958 102063 102459 102460 6 102062 101958 102064 102460 102461 102462 6 102063 101958 101959 102065 102462 102463 6 102064 101959 102066 102463 102464 102465 6 102065 101959 101960 101961 102067 102465 6 102066 101961 102068 102069 102465 102466 6 102067 101961 101962 102069 102070 101963 6 102067 102068 102070 102071 102466 102469 6 102069 102068 101963 102071 102072 101965 6 102069 102070 102072 102073 102469 102470 6 102071 102070 101965 102073 102074 102075 6 102071 102072 102074 102473 102470 102086 6 102073 102072 102075 102076 102078 102086 6 102074 102072 101965 100887 100888 102076 6 102075 100888 100889 102077 102078 102074 6 102076 100889 102078 102079 102080 102081 6 102076 102077 102079 102074 102086 102087 6 102078 102077 102080 102096 102087 102082 6 102079 102077 102081 100898 100901 102082 6 102080 102077 100889 100890 100894 100898 6 102080 100901 100903 102083 102096 102079 6 102082 100903 102084 102096 102095 109776 6 102083 100903 100904 102085 106093 109776 6 102084 100904 101565 101567 103766 106093 6 102074 102078 102087 102088 102473 102073 6 102086 102078 102088 102089 102096 102079 6 102086 102087 102089 102090 102091 102473 6 102088 102087 102090 102094 102095 102096 6 102088 102089 102091 102092 102093 102094 6 102088 102090 102092 102489 102472 102473 6 102091 102090 102093 102489 105947 105948 6 102092 102090 102094 103135 105947 103132 6 102093 102090 102089 102095 103131 103132 6 102094 102089 102096 103131 102083 109776 6 102095 102089 102087 102079 102082 102083 6 100631 100403 100633 100650 100649 100404 6 101795 101796 102099 102295 102296 102297 6 102098 101796 101797 102100 102297 102101 5 102099 101797 101300 101301 102101 6 102100 101301 101302 102102 102297 102099 6 102101 101302 101303 102103 102297 102298 6 102102 101303 101304 102104 102298 102299 6 102103 101304 101305 102105 102299 102300 6 102104 101305 101306 102106 102300 102301 7 102105 101306 101307 101798 102107 102301 102302 5 102106 101798 102108 102302 102303 6 102107 101798 101799 102109 102303 102304 6 102108 101799 101800 102110 102304 102305 6 102109 101800 101801 102111 102305 102306 6 102110 101801 101802 102112 102306 102307 6 102111 101802 101803 102113 102307 102308 6 102112 101803 101804 102114 102308 102309 6 102113 101804 101805 102115 102309 102310 6 102114 101805 101806 102116 102310 102311 6 102115 101806 101807 102117 102311 102312 6 102116 101807 101808 102118 102312 102313 6 102117 101808 101809 102119 102313 102314 6 102118 101809 101810 102120 102314 102315 6 102119 101810 101811 102121 102315 102316 6 102120 101811 101812 102122 102316 102317 6 102121 101812 101813 102123 102317 102318 6 102122 101813 101814 102124 102318 102319 6 102123 101814 101815 102125 102319 102320 6 102124 101815 101816 102126 102320 102321 6 102125 101816 101817 102127 102321 102322 6 102126 101817 101818 102128 102322 102323 6 102127 101818 101819 102129 102323 102324 6 102128 101819 101820 102130 102324 102325 6 102129 101820 101821 102131 102325 102326 6 102130 101821 101822 102132 102326 102327 6 102131 101822 101823 102133 102151 102327 6 102132 101823 101824 102134 102151 102152 6 102133 101824 101825 102135 102152 102153 6 102134 101825 101826 101827 102136 102153 6 102135 101827 102137 102153 102154 102155 6 102136 101827 101828 102138 102155 102156 6 102137 101828 101829 102139 102156 102157 6 102138 101829 101830 102140 102157 102158 6 102139 101830 102141 102146 102158 102159 6 102140 101830 101831 101832 102142 102146 6 102141 101832 101833 102143 102146 102147 6 102142 101833 101834 102144 102147 102148 6 102143 101834 101835 102145 102148 102149 6 102144 101835 101836 102149 102150 101837 6 102140 102141 102142 102147 102159 102160 6 102146 102142 102143 102148 102160 102161 6 102147 102143 102144 102149 102161 102162 6 102148 102144 102145 102150 102162 102163 6 102149 102145 101837 102163 102164 102165 6 102132 102133 102152 102327 102328 102329 6 102151 102133 102134 102153 102329 102330 6 102152 102134 102135 102136 102154 102330 6 102153 102136 102155 102330 102331 102332 6 102154 102136 102137 102156 102332 102333 6 102155 102137 102138 102157 102333 102334 6 102156 102138 102139 102158 102334 102335 6 102157 102139 102140 102159 102335 102336 6 102158 102140 102146 102160 102336 102337 6 102159 102146 102147 102161 102337 102338 6 102160 102147 102148 102162 102338 102339 6 102161 102148 102149 102163 102339 102340 6 102162 102149 102150 102164 102340 102341 6 102163 102150 102165 102341 102342 102343 6 102164 102150 101837 101838 102166 102343 6 102165 101838 101839 102167 102343 102344 6 102166 101839 101840 102168 102169 102344 6 102167 101840 102169 102170 102171 101841 6 102167 102168 102170 102344 102345 102346 6 102169 102168 102171 102346 102347 102348 6 102170 102168 101841 102348 102349 101842 6 101724 101725 102173 103468 103467 104747 6 102172 101725 102174 102804 103395 104747 6 102173 101725 101726 101727 102175 102804 6 102174 101727 101728 102176 102177 102804 6 102175 101728 102177 102178 101731 101729 6 102175 102176 102178 102804 102805 102806 6 102177 102176 101731 102806 102807 102808 6 100027 100028 102180 102181 103851 103852 6 102179 100028 100029 102181 102182 102503 6 102179 102180 102182 102183 102199 103851 6 102181 102180 102183 102184 102502 102503 6 102181 102182 102184 102185 102198 102199 6 102183 102182 102185 102186 102193 102502 6 102183 102184 102186 102187 102197 102198 6 102185 102184 102187 102188 102192 102193 6 102185 102186 102188 102189 102197 109713 6 102187 102186 102189 102190 102191 102192 7 102187 102188 102190 109709 109708 109712 109713 5 102189 102188 102191 109710 109709 6 102190 102188 102192 102510 102512 109710 6 102191 102188 102186 102193 102510 102506 6 102192 102186 102184 102502 102504 102506 6 100415 100039 100040 102195 109704 106488 6 102194 100040 100041 102196 106488 109705 7 102195 100041 100042 109705 100043 109771 109773 6 102185 102187 102198 109713 109714 109720 6 102185 102197 102183 102199 102200 109720 6 102183 102198 102200 102201 102181 103851 6 102199 102198 102201 102202 109720 102217 6 102199 102200 102202 102203 103129 103851 6 102201 102200 102203 102204 102217 102208 6 102201 102202 102204 102205 103129 103130 6 102203 102202 102205 102206 102207 102208 6 102203 102204 102206 103130 101525 104250 6 102205 102204 102207 103343 103341 104250 6 102206 102204 102208 102209 103343 103344 6 102207 102204 102209 102210 102217 102202 6 102207 102208 102210 102211 103344 103345 6 102209 102208 102211 102212 102216 102217 6 102209 102210 102212 102213 103348 103345 6 102211 102210 102213 102214 102215 102216 6 102211 102212 102214 106522 106523 103348 6 102213 102212 102215 109716 109719 106522 6 102214 102212 102216 109716 109715 109714 6 102215 102212 102210 102217 109714 109720 6 102216 102210 102208 102202 109720 102200 6 100408 100059 100060 102219 102545 102546 6 102218 100060 100061 102220 102549 102546 6 102219 100061 100062 102221 102549 102551 6 102220 100062 100063 102222 102551 106702 6 102221 100063 106701 106700 106702 100064 6 101698 101703 102224 103418 103419 103420 6 102223 101703 101704 102225 103420 103421 6 102224 101704 102226 103421 103422 103426 6 102225 101704 101705 102227 103426 103427 6 102226 101705 101706 102228 103427 103428 6 102227 101706 102229 103428 103429 103430 6 102228 101706 101707 102230 102238 103430 6 102229 101707 102231 102232 102238 102239 6 102230 101707 102232 101712 101711 101708 6 102230 102231 101712 102239 102240 101713 6 101748 101749 102234 102235 102242 102752 6 102233 101749 102235 102236 102237 101750 6 102233 102234 102236 102242 102243 102244 6 102235 102234 102237 102244 102245 102246 6 102236 102234 101750 102246 102247 101751 6 102229 102230 102239 103430 103431 103435 6 102238 102230 102232 102240 103435 102561 6 102239 102232 101713 101714 102560 102561 6 101187 101188 101659 101657 103097 101184 6 102233 102235 102243 102752 102753 102754 6 102242 102235 102244 102754 102755 102756 6 102243 102235 102236 102245 102756 102757 6 102244 102236 102246 102757 102758 102759 6 102245 102236 102237 102247 102759 102760 6 102246 102237 101751 101752 102253 102760 6 100034 100035 102249 103331 103332 103333 6 102248 100035 100036 102250 103336 103333 6 102249 100036 100037 100416 102251 103336 7 102250 100416 102252 106490 106491 109706 103336 5 102251 100416 100415 106490 109704 6 102247 101752 101753 102254 102760 102761 6 102253 101753 101754 102255 102761 102762 6 102254 101754 101755 102256 102762 102763 6 102255 101755 101756 101757 102257 102763 6 102256 101757 102258 102763 102764 102765 6 102257 101757 101758 102259 102765 102766 6 102258 101758 101759 102260 102766 102767 6 102259 101759 101760 102261 102767 102768 6 102260 101760 101761 102262 102768 102769 6 102261 101761 101762 102263 102571 102769 6 102262 101762 101763 102264 102571 102572 6 102263 101763 101764 102265 102572 102573 6 102264 101764 101765 102266 102573 102574 6 102265 101765 101766 102267 102574 102575 6 102266 101766 101767 102268 102575 102576 6 102267 101767 101768 102269 102576 102577 6 102268 101768 101769 102270 102577 102578 6 102269 101769 101770 102271 102578 102579 6 102270 101770 101771 102272 102579 102580 6 102271 101771 101772 102273 102580 102581 6 102272 101772 101773 102274 102581 102582 6 102273 101773 101774 102275 102582 102583 6 102274 101774 101775 102276 102583 102584 6 102275 101775 101776 102277 102584 102585 6 102276 101776 101777 102278 102585 102586 6 102277 101777 101778 102279 102586 102587 6 102278 101778 101779 102280 102587 102588 6 102279 101779 101780 102281 102588 102589 6 102280 101780 101781 102282 102589 102590 6 102281 101781 101782 102283 102590 102591 6 102282 101782 101783 102284 102591 102592 6 102283 101783 101784 102285 102592 102593 6 102284 101784 101785 102286 102593 102594 6 102285 101785 101786 102287 102594 102595 6 102286 101786 101787 102288 102595 102596 6 102287 101787 101788 102289 102596 102597 6 102288 101788 101789 102290 102597 102598 6 102289 101789 101790 102291 102598 102599 6 102290 101790 101791 102292 102599 102600 6 102291 101791 101792 102293 102600 102601 6 102292 101792 101793 102294 102601 102602 6 102293 101793 101794 102295 102602 102603 6 102294 101794 101795 102098 102296 102603 6 102295 102098 102297 102603 102604 102605 7 102296 102098 102099 102101 102102 102298 102605 6 102297 102102 102103 102299 102605 102606 6 102298 102103 102104 102300 102606 102607 6 102299 102104 102105 102301 102607 102608 6 102300 102105 102106 102302 102608 102609 6 102301 102106 102107 102303 102609 102610 6 102302 102107 102108 102304 102610 102611 6 102303 102108 102109 102305 102611 102612 6 102304 102109 102110 102306 102612 102613 6 102305 102110 102111 102307 102613 102614 6 102306 102111 102112 102308 102614 102615 6 102307 102112 102113 102309 102615 102616 6 102308 102113 102114 102310 102619 102616 6 102309 102114 102115 102311 102619 102620 6 102310 102115 102116 102312 102620 102621 6 102311 102116 102117 102313 102621 102622 6 102312 102117 102118 102314 102622 102623 6 102313 102118 102119 102315 102623 102624 6 102314 102119 102120 102316 102624 102625 6 102315 102120 102121 102317 102625 102626 6 102316 102121 102122 102318 102626 102627 6 102317 102122 102123 102319 102627 102628 6 102318 102123 102124 102320 102628 102629 6 102319 102124 102125 102321 102629 102630 6 102320 102125 102126 102322 102630 102631 6 102321 102126 102127 102323 102631 102632 6 102322 102127 102128 102324 102632 102633 6 102323 102128 102129 102325 102633 102634 6 102324 102129 102130 102326 102634 102635 6 102325 102130 102131 102327 102635 102636 6 102326 102131 102132 102151 102328 102636 6 102327 102151 102329 102636 102637 102638 6 102328 102151 102152 102330 102641 102638 6 102329 102152 102153 102154 102331 102641 6 102330 102154 102332 102642 102641 102643 6 102331 102154 102155 102333 102643 102644 6 102332 102155 102156 102334 102644 102645 6 102333 102156 102157 102335 102645 102646 6 102334 102157 102158 102336 102646 102647 6 102335 102158 102159 102337 102647 102648 6 102336 102159 102160 102338 102648 102649 6 102337 102160 102161 102339 102649 102650 6 102338 102161 102162 102340 102650 102651 6 102339 102162 102163 102341 102651 102652 6 102340 102163 102164 102342 102652 102653 6 102341 102164 102343 102653 102654 102655 6 102342 102164 102165 102166 102344 102655 6 102343 102166 102167 102169 102345 102655 6 102344 102169 102346 102655 102656 102657 6 102345 102169 102170 102347 102657 102658 6 102346 102170 102348 102658 102659 102660 6 102347 102170 102171 102349 102660 102661 6 102348 102171 101842 101843 102350 102661 6 102349 101843 101844 102351 102661 102662 6 102350 101844 101845 102352 102662 102663 6 102351 101845 101846 102353 102663 102664 6 102352 101846 101847 102354 102664 102665 6 102353 101847 101848 102355 102665 102666 6 102354 101848 101849 102356 102666 102667 6 102355 101849 101850 102357 102667 102668 6 102356 101850 101851 102358 102668 102669 6 102357 101851 101852 102359 102669 102670 6 102358 101852 101853 102360 102670 102671 6 102359 101853 101854 102361 102671 102672 6 102360 101854 101855 101966 102362 102672 6 102361 101966 102363 102672 102673 102674 6 102362 101966 101967 102364 102674 102675 6 102363 101967 101968 102365 102675 102676 6 102364 101968 101969 102366 102676 102677 6 102365 101969 101970 102367 102677 102678 6 102366 101970 101971 102368 102678 102679 6 102367 101971 101972 102369 102679 102680 6 102368 101972 101973 102370 102680 102681 6 102369 101973 101974 102371 102681 102682 6 102370 101974 101975 102372 102682 102683 6 102371 101975 101976 102373 102683 102684 6 102372 101976 101977 102374 102684 102685 6 102373 101977 101978 102375 102685 102686 6 102374 101978 101979 102376 102686 102687 6 102375 101979 101980 102377 102687 102688 6 102376 101980 101981 102378 102688 102689 6 102377 101981 101982 102379 102689 102690 6 102378 101982 101983 102380 102690 102691 6 102379 101983 101984 102381 102691 102692 6 102380 101984 101985 102382 102692 102693 6 102381 101985 101986 102383 102693 102694 6 102382 101986 101987 102384 102694 102695 6 102383 101987 101988 102385 102695 102696 6 102384 101988 101989 102386 102696 102697 6 102385 101989 101990 102387 102697 102698 6 102386 101990 101991 102388 102698 102699 6 102387 101991 101992 102389 102699 102700 6 102388 101992 101993 102390 102700 102701 6 102389 101993 101994 102391 102701 102702 6 102390 101994 101995 102392 102702 102703 6 102391 101995 101996 102393 102703 102704 6 102392 101996 101997 102394 102704 102705 6 102393 101997 101998 102395 102705 102706 6 102394 101998 101999 102396 102706 102707 6 102395 101999 102000 102397 102707 102708 6 102396 102000 102001 102398 102708 102709 6 102397 102001 102002 102399 102513 102709 6 102398 102002 102003 102400 102513 102514 6 102399 102003 102004 102401 102514 102515 6 102400 102004 102005 102402 102515 102516 6 102401 102005 102006 102403 102516 102517 6 102402 102006 102007 102404 102517 102518 6 102403 102007 102008 102405 102518 102519 6 102404 102008 102009 102406 102519 102520 6 102405 102009 102010 102407 102520 102521 6 102406 102010 102011 102408 102521 102522 6 102407 102011 102012 102409 102522 102523 6 102408 102012 102013 102410 102523 102524 6 102409 102013 102014 102411 102524 102525 6 102410 102014 102015 102412 102525 102526 6 102411 102015 102016 102413 102526 102527 6 102412 102016 102017 102414 102527 102528 6 102413 102017 102018 102415 102528 102529 6 102414 102018 102019 102416 102529 102530 6 102415 102019 102020 102417 102530 102531 6 102416 102020 102021 102418 102531 102532 6 102417 102021 102022 102419 102532 102533 6 102418 102022 102023 102420 102533 102534 6 102419 102023 102024 102421 102534 102535 6 102420 102024 102025 102422 102535 102536 6 102421 102025 102026 102423 102536 102537 6 102422 102026 102027 102424 102537 102538 6 102423 102027 102028 102425 102538 102539 6 102424 102028 102029 102426 102539 102540 6 102425 102029 102030 102427 102540 102541 6 102426 102030 102031 102428 102541 102542 6 102427 102031 102032 102429 102542 102543 6 102428 102032 102033 102430 102543 102544 6 102429 102033 102034 102431 102544 102432 6 102430 102034 102035 102036 102037 102432 7 102431 102037 102038 102433 102544 102430 102556 6 102432 102038 102039 102434 102556 102557 6 102433 102039 102040 102435 102557 102558 6 102434 102040 102436 102558 102559 102437 5 102435 102040 102041 102042 102437 6 102436 102042 102438 102559 102435 102745 6 102437 102042 102043 102439 102745 102746 7 102438 102043 102044 102440 102746 102747 102748 6 102439 102044 102045 102046 102441 102748 6 102440 102046 102442 102748 102749 102750 6 102441 102046 102047 102443 102750 102445 6 102442 102047 102048 102049 102444 102445 6 102443 102049 102445 102446 102447 102448 6 102443 102444 102446 102750 102442 103060 6 102445 102444 102447 103060 103061 103062 6 102446 102444 102448 103062 103063 103064 6 102447 102444 102049 102050 102449 103064 6 102448 102050 102051 102450 103064 103065 6 102449 102051 102052 102451 103065 103066 6 102450 102052 102053 102452 103066 103067 6 102451 102053 102453 103067 103068 102454 6 102452 102053 102054 102055 102056 102454 6 102453 102056 102455 103068 102452 103074 6 102454 102056 102057 102456 103074 103075 6 102455 102057 102058 102059 102457 103075 6 102456 102059 102060 102458 103075 103076 6 102457 102060 102061 102459 103076 103077 6 102458 102061 102062 102460 103077 103078 6 102459 102062 102063 102461 103078 103079 6 102460 102063 102462 103079 103080 103081 6 102461 102063 102064 102463 103081 103082 6 102462 102064 102065 102464 103082 103083 6 102463 102065 102465 102467 102482 103083 6 102464 102065 102066 102067 102466 102467 6 102465 102067 102069 102467 102468 102469 6 102465 102466 102468 102464 102482 102483 6 102467 102466 102469 102471 102477 102483 6 102468 102466 102069 102071 102470 102471 6 102469 102071 102471 102472 102473 102073 6 102469 102470 102472 102468 102477 102478 6 102471 102470 102473 102489 102478 102091 6 102472 102470 102073 102091 102088 102086 6 101516 101521 100914 100915 100576 101515 6 101578 101587 102476 101574 106361 101573 6 102475 101587 101589 106353 106359 106361 6 102468 102471 102478 102483 102484 102485 6 102477 102471 102485 102488 102489 102472 6 101642 101643 101644 102480 101641 102490 6 102479 101644 102481 102490 102494 102869 6 102480 101644 101645 101650 102494 102495 6 102464 102467 102483 103085 103083 103926 6 102482 102467 102468 102477 102484 103926 6 102483 102477 102485 102486 103926 103150 6 102484 102477 102478 102486 102487 102488 6 102484 102485 102487 103148 103149 103150 6 102486 102485 102488 103148 103967 103161 6 102487 102485 102478 102489 105948 103967 6 102488 102478 102472 102091 102092 105948 6 101641 102479 102480 102867 102868 102869 6 100070 100071 102492 103436 103437 103441 6 102491 100071 100072 100409 102493 103436 6 102492 100409 101606 103515 103436 103516 6 102480 102481 102495 102869 102870 102871 6 102494 102481 101650 101651 102496 102871 6 102495 101651 102497 102871 102872 102882 6 102496 101651 101652 102498 102882 102883 6 102497 101652 102499 102883 104092 104093 6 102498 101652 101653 102500 102809 104093 6 102499 101653 101654 102501 102809 102810 6 102500 101654 101656 102810 102811 102812 6 102184 102182 102503 102193 102504 102505 6 102502 102182 100030 102505 100029 102180 6 102193 102502 102505 102506 102507 102508 6 102504 102502 102508 100031 100030 102503 6 102193 102504 102507 102509 102510 102192 6 102506 102504 102508 102509 103330 103880 6 102507 102504 102505 100031 103330 100032 6 102506 102507 102510 102511 103880 103881 6 102506 102509 102511 102512 102191 102192 6 102510 102509 102512 106499 106498 103881 6 102510 102511 102191 106498 106500 109710 6 102398 102399 102514 102709 102710 102711 6 102513 102399 102400 102515 102711 102712 6 102514 102400 102401 102516 102712 102713 6 102515 102401 102402 102517 102713 102714 6 102516 102402 102403 102518 102714 102715 6 102517 102403 102404 102519 102715 102716 6 102518 102404 102405 102520 102716 102717 6 102519 102405 102406 102521 102717 102718 6 102520 102406 102407 102522 102718 102719 6 102521 102407 102408 102523 102719 102720 6 102522 102408 102409 102524 102720 102721 6 102523 102409 102410 102525 102721 102722 6 102524 102410 102411 102526 102722 102723 6 102525 102411 102412 102527 102723 102724 6 102526 102412 102413 102528 102724 102725 6 102527 102413 102414 102529 102725 102726 6 102528 102414 102415 102530 102726 102727 6 102529 102415 102416 102531 102727 102728 6 102530 102416 102417 102532 102728 102729 6 102531 102417 102418 102533 102729 102730 6 102532 102418 102419 102534 102730 102731 6 102533 102419 102420 102535 102731 102732 6 102534 102420 102421 102536 102732 102733 6 102535 102421 102422 102537 102733 102734 6 102536 102422 102423 102538 102734 102735 6 102537 102423 102424 102539 102735 102736 6 102538 102424 102425 102540 102736 102737 6 102539 102425 102426 102541 102552 102737 6 102540 102426 102427 102542 102552 102553 6 102541 102427 102428 102543 102553 102554 6 102542 102428 102429 102544 102554 102555 6 102543 102429 102430 102432 102555 102556 6 100408 102218 102546 102547 102841 102842 6 102545 102218 102547 102548 102549 102219 6 102545 102546 102548 102842 102845 102846 6 102547 102546 102549 102550 102857 102846 6 102548 102546 102219 102220 102550 102551 6 102548 102549 102551 106691 102856 102857 7 102550 102549 102220 102221 106702 106690 106691 6 102540 102541 102553 102737 102738 102739 6 102552 102541 102542 102554 102739 102740 6 102553 102542 102543 102555 102570 102740 6 102554 102543 102544 102556 102570 102557 5 102555 102544 102432 102433 102557 7 102556 102433 102434 102558 102570 102555 102742 5 102557 102434 102435 102559 102742 7 102558 102435 102437 102742 102743 102744 102745 6 102240 101714 102561 102562 102563 102564 6 102240 102560 102562 103435 102239 103446 6 102561 102560 102563 103446 103447 103448 6 102562 102560 102564 103448 103449 102567 6 102563 102560 101714 101715 102565 102567 6 102564 101715 101716 101717 102566 102567 6 102565 101717 102567 102568 102569 101718 6 102565 102566 102568 103449 102563 102564 6 102567 102566 102569 103458 103455 103449 6 102568 102566 101718 103463 103458 101719 6 102554 102555 102557 102740 102741 102742 6 102262 102263 102572 102769 102770 102771 6 102571 102263 102264 102573 102771 102772 6 102572 102264 102265 102574 102772 102773 6 102573 102265 102266 102575 102773 102774 6 102574 102266 102267 102576 102774 102775 6 102575 102267 102268 102577 102775 102776 6 102576 102268 102269 102578 102776 102777 6 102577 102269 102270 102579 102777 102778 6 102578 102270 102271 102580 102778 102779 6 102579 102271 102272 102581 102779 102780 6 102580 102272 102273 102582 102780 102781 6 102581 102273 102274 102583 102781 102782 6 102582 102274 102275 102584 102782 102783 6 102583 102275 102276 102585 102783 102784 6 102584 102276 102277 102586 102784 102785 6 102585 102277 102278 102587 102785 102786 6 102586 102278 102279 102588 102786 102787 6 102587 102279 102280 102589 102787 102788 6 102588 102280 102281 102590 102788 102789 6 102589 102281 102282 102591 102789 102790 6 102590 102282 102283 102592 102790 102791 6 102591 102283 102284 102593 102791 102792 6 102592 102284 102285 102594 102792 102793 6 102593 102285 102286 102595 102793 102794 6 102594 102286 102287 102596 102794 102795 6 102595 102287 102288 102597 102795 102796 6 102596 102288 102289 102598 102796 102797 6 102597 102289 102290 102599 102797 102798 6 102598 102290 102291 102600 102798 102799 6 102599 102291 102292 102601 102799 102800 6 102600 102292 102293 102602 102800 102801 6 102601 102293 102294 102603 102801 102802 6 102602 102294 102295 102296 102604 102802 6 102603 102296 102605 102802 102803 102606 5 102604 102296 102297 102298 102606 7 102605 102298 102299 102607 102803 102604 102826 5 102606 102299 102300 102608 102826 7 102607 102300 102301 102609 102826 102827 102828 6 102608 102301 102302 102610 102828 102829 6 102609 102302 102303 102611 102829 102830 6 102610 102303 102304 102612 102830 102831 6 102611 102304 102305 102613 102831 102832 6 102612 102305 102306 102614 102832 102833 6 102613 102306 102307 102615 102833 102834 6 102614 102307 102308 102616 102617 102834 6 102615 102308 102617 102618 102619 102309 6 102615 102616 102618 102834 102835 102836 6 102617 102616 102619 102836 102837 102838 6 102618 102616 102309 102310 102620 102838 6 102619 102310 102311 102621 102840 102838 6 102620 102311 102312 102622 102959 102840 6 102621 102312 102313 102623 102959 102960 6 102622 102313 102314 102624 102960 102961 6 102623 102314 102315 102625 102961 102962 6 102624 102315 102316 102626 102962 102963 6 102625 102316 102317 102627 102966 102963 6 102626 102317 102318 102628 102966 102967 6 102627 102318 102319 102629 102967 102968 6 102628 102319 102320 102630 102968 102969 6 102629 102320 102321 102631 102969 102970 6 102630 102321 102322 102632 102970 102971 6 102631 102322 102323 102633 102971 102972 6 102632 102323 102324 102634 102972 102973 6 102633 102324 102325 102635 102973 102974 6 102634 102325 102326 102636 102974 102975 6 102635 102326 102327 102328 102637 102975 6 102636 102328 102638 102639 102975 102976 6 102637 102328 102639 102640 102641 102329 6 102637 102638 102640 102976 102977 102978 6 102639 102638 102641 102642 102978 102979 6 102640 102638 102642 102331 102330 102329 6 102640 102641 102331 102643 102979 102980 6 102642 102331 102332 102644 102980 102981 6 102643 102332 102333 102645 102981 102982 6 102644 102333 102334 102646 102982 102983 6 102645 102334 102335 102647 102983 102984 6 102646 102335 102336 102648 102984 102985 6 102647 102336 102337 102649 102985 102986 6 102648 102337 102338 102650 102986 102987 6 102649 102338 102339 102651 102987 102988 6 102650 102339 102340 102652 102988 102989 6 102651 102340 102341 102653 102989 102990 6 102652 102341 102342 102654 102990 102991 6 102653 102342 102655 102991 102992 102656 6 102654 102342 102343 102344 102345 102656 6 102655 102345 102657 102992 102654 102993 6 102656 102345 102346 102658 102993 102994 6 102657 102346 102347 102659 102994 102995 6 102658 102347 102660 102995 102996 102997 6 102659 102347 102348 102661 102997 102998 6 102660 102348 102349 102350 102662 102998 6 102661 102350 102351 102663 102998 102999 6 102662 102351 102352 102664 102999 103000 6 102663 102352 102353 102665 103000 103001 6 102664 102353 102354 102666 103001 103002 6 102665 102354 102355 102667 103002 103565 6 102666 102355 102356 102668 103565 103566 6 102667 102356 102357 102669 103566 103567 6 102668 102357 102358 102670 103567 103568 6 102669 102358 102359 102671 103568 103569 6 102670 102359 102360 102672 103569 103570 6 102671 102360 102361 102362 102673 103570 6 102672 102362 102674 103570 103571 103572 6 102673 102362 102363 102675 103572 103573 6 102674 102363 102364 102676 103391 103573 6 102675 102364 102365 102677 103391 103392 6 102676 102365 102366 102678 103392 103393 6 102677 102366 102367 102679 103393 103394 6 102678 102367 102368 102680 103394 103579 6 102679 102368 102369 102681 103579 103580 6 102680 102369 102370 102682 103580 103581 6 102681 102370 102371 102683 103581 103582 6 102682 102371 102372 102684 103582 103583 6 102683 102372 102373 102685 103583 103584 6 102684 102373 102374 102686 103584 103585 6 102685 102374 102375 102687 103585 103586 6 102686 102375 102376 102688 103586 103587 6 102687 102376 102377 102689 103587 103588 6 102688 102377 102378 102690 103278 103588 6 102689 102378 102379 102691 103278 103279 6 102690 102379 102380 102692 103279 103280 6 102691 102380 102381 102693 103280 103281 6 102692 102381 102382 102694 103281 103282 6 102693 102382 102383 102695 103282 103283 6 102694 102383 102384 102696 103283 103284 6 102695 102384 102385 102697 103284 103285 6 102696 102385 102386 102698 103285 103286 6 102697 102386 102387 102699 103286 103287 6 102698 102387 102388 102700 103287 103288 6 102699 102388 102389 102701 103288 103289 6 102700 102389 102390 102702 103289 103290 6 102701 102390 102391 102703 103003 103290 6 102702 102391 102392 102704 103003 103004 6 102703 102392 102393 102705 103004 103005 6 102704 102393 102394 102706 103005 103006 6 102705 102394 102395 102707 103006 103007 6 102706 102395 102396 102708 103007 103008 6 102707 102396 102397 102709 103008 103009 6 102708 102397 102398 102513 102710 103009 6 102709 102513 102711 103009 103010 103011 6 102710 102513 102514 102712 103011 103012 6 102711 102514 102515 102713 103012 103013 6 102712 102515 102516 102714 103013 103014 6 102713 102516 102517 102715 103014 103015 6 102714 102517 102518 102716 103015 103016 6 102715 102518 102519 102717 103016 103017 6 102716 102519 102520 102718 103017 103018 6 102717 102520 102521 102719 103018 103019 6 102718 102521 102522 102720 103019 103020 6 102719 102522 102523 102721 103020 103021 6 102720 102523 102524 102722 103021 103022 6 102721 102524 102525 102723 103022 103023 6 102722 102525 102526 102724 103023 103024 6 102723 102526 102527 102725 103024 103025 6 102724 102527 102528 102726 103025 103026 6 102725 102528 102529 102727 103026 103027 6 102726 102529 102530 102728 103027 103028 6 102727 102530 102531 102729 103028 103029 6 102728 102531 102532 102730 103029 103030 6 102729 102532 102533 102731 103030 103031 6 102730 102533 102534 102732 103031 103032 6 102731 102534 102535 102733 103032 103033 6 102732 102535 102536 102734 103033 103034 6 102733 102536 102537 102735 103034 103035 6 102734 102537 102538 102736 103035 103036 6 102735 102538 102539 102737 103036 103037 6 102736 102539 102540 102552 102738 103037 6 102737 102552 102739 103037 103038 103039 6 102738 102552 102553 102740 103039 103040 6 102739 102553 102554 102570 102741 103040 6 102740 102570 102742 103040 103041 102743 6 102741 102570 102557 102558 102559 102743 6 102742 102559 102744 103041 102741 103049 5 102743 102559 102745 103049 103050 6 102744 102559 102437 102438 102746 103050 6 102745 102438 102439 102747 103050 103051 6 102746 102439 102748 103051 103052 102749 5 102747 102439 102440 102441 102749 6 102748 102441 102750 103052 102747 103058 7 102749 102441 102442 102445 103058 103059 103060 6 101746 101747 101748 102752 102893 102894 6 102751 101748 102233 102242 102753 102894 6 102752 102242 102754 102894 102895 102896 6 102753 102242 102243 102755 102896 102897 6 102754 102243 102756 102897 102898 102899 6 102755 102243 102244 102757 102899 102900 6 102756 102244 102245 102758 102900 102901 6 102757 102245 102759 102901 102902 102903 6 102758 102245 102246 102760 102903 102904 6 102759 102246 102247 102253 102761 102904 6 102760 102253 102254 102762 102904 102905 6 102761 102254 102255 102763 102905 102906 6 102762 102255 102256 102257 102764 102906 6 102763 102257 102765 102906 102907 102908 6 102764 102257 102258 102766 102908 102909 6 102765 102258 102259 102767 102909 102910 6 102766 102259 102260 102768 102910 102911 6 102767 102260 102261 102769 102911 102912 6 102768 102261 102262 102571 102770 102912 6 102769 102571 102771 102912 102913 102914 6 102770 102571 102572 102772 102914 102915 6 102771 102572 102573 102773 102915 102916 6 102772 102573 102574 102774 102916 102917 6 102773 102574 102575 102775 102917 102918 6 102774 102575 102576 102776 102918 102919 6 102775 102576 102577 102777 102919 102920 6 102776 102577 102578 102778 102920 102921 6 102777 102578 102579 102779 102921 102922 6 102778 102579 102580 102780 102922 102923 6 102779 102580 102581 102781 102923 102924 6 102780 102581 102582 102782 102924 102925 6 102781 102582 102583 102783 102925 102926 6 102782 102583 102584 102784 102926 102927 6 102783 102584 102585 102785 102927 102928 6 102784 102585 102586 102786 102928 102929 6 102785 102586 102587 102787 102929 102930 6 102786 102587 102588 102788 102930 102931 6 102787 102588 102589 102789 102931 102932 6 102788 102589 102590 102790 102932 102933 6 102789 102590 102591 102791 102933 102934 6 102790 102591 102592 102792 102934 102935 6 102791 102592 102593 102793 102935 102936 6 102792 102593 102594 102794 102936 102937 6 102793 102594 102595 102795 102937 102938 6 102794 102595 102596 102796 102938 102939 6 102795 102596 102597 102797 102939 102940 6 102796 102597 102598 102798 102940 102941 6 102797 102598 102599 102799 102941 102942 6 102798 102599 102600 102800 102942 102943 6 102799 102600 102601 102801 102943 102944 6 102800 102601 102602 102802 102944 102824 6 102801 102602 102603 102604 102803 102824 6 102802 102604 102606 102824 102825 102826 6 102173 102174 102175 102177 102805 103395 6 102804 102177 102806 103395 103396 103400 6 102805 102177 102178 102807 103400 103401 6 102806 102178 102808 103401 103402 103403 6 102807 102178 101731 103403 103404 101732 6 102499 102500 102810 104095 104093 104388 6 102809 102500 102501 102811 104388 102813 6 102810 102501 102812 101664 101666 102813 6 102811 102501 101656 101658 101661 101664 6 102811 101666 102814 103139 104388 102810 6 102813 101666 101667 102815 102817 103139 6 102814 101667 102816 102817 102818 102819 6 102815 101667 101668 102819 102820 102821 6 102814 102815 102818 103139 103140 103141 6 102817 102815 102819 103141 103142 103143 6 102818 102815 102816 102820 103143 103144 6 102819 102816 102821 103144 103145 103146 6 102820 102816 101668 102822 102823 103146 6 102821 101668 102823 101672 101671 101669 6 102821 102822 101672 103146 103147 101673 6 102802 102803 102825 102944 102801 102945 6 102824 102803 102826 102945 102946 102827 6 102825 102803 102606 102607 102608 102827 6 102826 102608 102828 102946 102825 102947 5 102827 102608 102609 102829 102947 6 102828 102609 102610 102830 102947 102948 6 102829 102610 102611 102831 102948 102949 6 102830 102611 102612 102832 102949 102950 6 102831 102612 102613 102833 102950 102951 6 102832 102613 102614 102834 102951 102952 7 102833 102614 102615 102617 102835 102952 102953 5 102834 102617 102836 102953 102954 6 102835 102617 102618 102837 102954 102955 6 102836 102618 102838 102839 102955 102956 6 102837 102618 102839 102840 102620 102619 6 102837 102838 102840 102956 102957 102958 6 102839 102838 102620 102958 102959 102621 6 100408 102545 102842 102843 109690 100429 6 102841 102545 102843 102844 102547 102845 6 102841 102842 102844 103168 109688 109690 6 102843 102842 103168 103165 103162 102845 6 102842 102547 102846 102847 103162 102844 6 102845 102547 102847 102848 102548 102857 6 102845 102846 102848 102849 103162 103163 6 102847 102846 102849 102850 102851 102857 6 102847 102848 102850 102852 102858 103163 6 102849 102848 102851 102852 102853 102854 6 102850 102848 102854 102855 102856 102857 6 102849 102850 102853 102858 102859 102860 5 102852 102850 102854 102860 106676 7 102853 102850 102851 102855 106676 106677 106678 7 102854 102851 102856 106689 106686 106680 106678 6 102855 102851 102857 106691 106689 102550 6 102856 102851 102848 102550 102548 102846 6 102849 102852 102859 103180 103163 106661 7 102858 102852 102860 106661 106674 106666 106662 6 102859 102852 102853 106675 106674 106676 5 101631 101633 101628 101629 101630 6 101628 101633 101636 102863 101627 107215 7 102862 101636 101637 102864 107216 107215 107217 5 102863 101637 101638 102865 107217 7 102864 101638 101639 102866 107217 107218 107219 7 102865 101639 101640 102867 103189 103214 107219 6 102866 101640 101641 102490 102868 103189 6 102867 102490 102869 103189 103190 103181 6 102868 102490 102480 102494 102870 103181 6 102869 102494 102871 102873 102884 103181 6 102870 102494 102495 102496 102872 102873 6 102871 102496 102873 102874 102881 102882 6 102871 102872 102874 102875 102870 102884 6 102873 102872 102875 102876 102880 102881 6 102873 102874 102876 102877 102884 102885 6 102875 102874 102877 102878 102879 102880 6 102875 102876 102878 102885 102886 102887 6 102877 102876 102879 102887 102888 102889 6 102878 102876 102880 102892 102889 107600 6 102879 102876 102874 102881 104086 107600 6 102880 102874 102872 102882 104086 104087 6 102881 102872 102496 102497 102883 104087 6 102882 102497 102498 104087 104088 104092 6 102870 102873 102875 102885 103181 103182 6 102884 102875 102877 102886 103182 103183 6 102885 102877 102887 103183 103184 103185 6 102886 102877 102878 102888 103188 103185 6 102887 102878 102889 102890 103959 103188 6 102888 102878 102890 102891 102892 102879 6 102888 102889 102891 103961 103959 107592 6 102890 102889 102892 107592 107593 107594 6 102891 102889 102879 107600 107597 107594 6 101745 101746 102751 102894 103199 103198 6 102893 102751 102752 102753 102895 103198 6 102894 102753 102896 103198 103200 103201 6 102895 102753 102754 102897 103201 103202 6 102896 102754 102755 102898 103202 103203 6 102897 102755 102899 103203 103204 103205 6 102898 102755 102756 102900 103205 103206 6 102899 102756 102757 102901 103206 103207 6 102900 102757 102758 102902 103207 103208 6 102901 102758 102903 103208 103209 103210 6 102902 102758 102759 102904 103213 103210 6 102903 102759 102760 102761 102905 103213 6 102904 102761 102762 102906 103483 103213 6 102905 102762 102763 102764 102907 103483 6 102906 102764 102908 103482 103212 103483 7 102907 102764 102765 102909 103500 103482 103697 6 102908 102765 102766 102910 103697 103698 6 102909 102766 102767 102911 103698 103699 6 102910 102767 102768 102912 103699 103700 6 102911 102768 102769 102770 102913 103700 6 102912 102770 102914 103700 103701 103702 6 102913 102770 102771 102915 103702 103703 6 102914 102771 102772 102916 103703 103704 6 102915 102772 102773 102917 103704 103705 6 102916 102773 102774 102918 103705 103706 6 102917 102774 102775 102919 103706 103707 6 102918 102775 102776 102920 103707 103708 6 102919 102776 102777 102921 103708 103709 6 102920 102777 102778 102922 103709 103710 6 102921 102778 102779 102923 103710 103711 6 102922 102779 102780 102924 103711 103712 6 102923 102780 102781 102925 103712 103713 6 102924 102781 102782 102926 103713 103714 6 102925 102782 102783 102927 103714 103715 6 102926 102783 102784 102928 103715 103716 6 102927 102784 102785 102929 103716 103717 6 102928 102785 102786 102930 103717 103718 6 102929 102786 102787 102931 103718 103719 6 102930 102787 102788 102932 103719 103720 6 102931 102788 102789 102933 103720 103721 6 102932 102789 102790 102934 103721 103722 6 102933 102790 102791 102935 103722 103723 6 102934 102791 102792 102936 103723 103724 6 102935 102792 102793 102937 103724 103725 6 102936 102793 102794 102938 103725 103726 6 102937 102794 102795 102939 103726 103727 6 102938 102795 102796 102940 103727 103728 6 102939 102796 102797 102941 103728 103729 6 102940 102797 102798 102942 103729 103730 6 102941 102798 102799 102943 103730 103731 6 102942 102799 102800 102944 103731 103732 6 102943 102800 102801 102824 102945 103732 6 102944 102824 102825 102946 103732 103733 6 102945 102825 102827 102947 103733 103734 6 102946 102827 102828 102829 102948 103734 7 102947 102829 102830 102949 103734 103735 103736 6 102948 102830 102831 102950 103242 103736 6 102949 102831 102832 102951 103242 103243 6 102950 102832 102833 102952 103243 103244 6 102951 102833 102834 102953 103244 103245 5 102952 102834 102835 102954 103245 7 102953 102835 102836 102955 103245 103246 103247 6 102954 102836 102837 102956 103247 103248 6 102955 102837 102839 102957 103248 103249 6 102956 102839 102958 103249 103250 103251 6 102957 102839 102840 102959 103251 103252 6 102958 102840 102621 102622 102960 103252 6 102959 102622 102623 102961 103254 103252 6 102960 102623 102624 102962 103254 103255 6 102961 102624 102625 102963 102964 103255 6 102962 102625 102964 102965 102966 102626 6 102962 102963 102965 103255 103256 103257 6 102964 102963 102966 103257 103258 103259 6 102965 102963 102626 102627 102967 103259 6 102966 102627 102628 102968 103259 103260 6 102967 102628 102629 102969 103260 103261 6 102968 102629 102630 102970 103261 103262 6 102969 102630 102631 102971 103262 103263 6 102970 102631 102632 102972 103263 103264 6 102971 102632 102633 102973 103264 103265 6 102972 102633 102634 102974 103265 103266 6 102973 102634 102635 102975 103266 103267 6 102974 102635 102636 102637 102976 103267 6 102975 102637 102639 102977 103267 103268 6 102976 102639 102978 103268 103269 103270 6 102977 102639 102640 102979 103270 103271 6 102978 102640 102642 102980 103271 103272 6 102979 102642 102643 102981 103272 103273 6 102980 102643 102644 102982 103273 103274 6 102981 102644 102645 102983 103274 103275 6 102982 102645 102646 102984 103275 103276 6 102983 102646 102647 102985 103276 103277 6 102984 102647 102648 102986 103277 103824 6 102985 102648 102649 102987 103545 103824 6 102986 102649 102650 102988 103545 103546 6 102987 102650 102651 102989 103546 103547 6 102988 102651 102652 102990 103547 103548 6 102989 102652 102653 102991 103548 103549 6 102990 102653 102654 102992 103549 103550 6 102991 102654 102656 102993 103550 103551 6 102992 102656 102657 102994 103551 103552 6 102993 102657 102658 102995 103552 103553 6 102994 102658 102659 102996 103553 103554 6 102995 102659 102997 103554 103555 103556 6 102996 102659 102660 102998 103556 103557 6 102997 102660 102661 102662 102999 103557 6 102998 102662 102663 103000 103557 103558 6 102999 102663 102664 103001 103558 103559 6 103000 102664 102665 103002 103559 103560 6 103001 102665 102666 103560 103561 103565 6 102702 102703 103004 103290 103291 103292 6 103003 102703 102704 103005 103292 103293 6 103004 102704 102705 103006 103293 103294 6 103005 102705 102706 103007 103294 103295 6 103006 102706 102707 103008 103295 103296 6 103007 102707 102708 103009 103296 103297 6 103008 102708 102709 102710 103010 103297 6 103009 102710 103011 103297 103298 103299 6 103010 102710 102711 103012 103299 103300 6 103011 102711 102712 103013 103300 103301 6 103012 102712 102713 103014 103301 103302 6 103013 102713 102714 103015 103302 103303 6 103014 102714 102715 103016 103303 103304 6 103015 102715 102716 103017 103304 103305 6 103016 102716 102717 103018 103305 103306 6 103017 102717 102718 103019 103306 103307 6 103018 102718 102719 103020 103307 103308 6 103019 102719 102720 103021 103308 103309 6 103020 102720 102721 103022 103309 103310 6 103021 102721 102722 103023 103310 103311 6 103022 102722 102723 103024 103311 103312 6 103023 102723 102724 103025 103312 103313 6 103024 102724 102725 103026 103313 103314 6 103025 102725 102726 103027 103314 103315 6 103026 102726 102727 103028 103315 103316 6 103027 102727 102728 103029 103316 103317 6 103028 102728 102729 103030 103317 103318 6 103029 102729 102730 103031 103318 103319 6 103030 102730 102731 103032 103319 103320 6 103031 102731 102732 103033 103320 103321 6 103032 102732 102733 103034 103321 103322 6 103033 102733 102734 103035 103042 103322 6 103034 102734 102735 103036 103042 103043 6 103035 102735 102736 103037 103043 103044 6 103036 102736 102737 102738 103038 103044 6 103037 102738 103039 103044 103045 103046 6 103038 102738 102739 103040 103046 103047 6 103039 102739 102740 102741 103041 103047 6 103040 102741 102743 103047 103048 103049 6 103034 103035 103043 103322 103323 103324 6 103042 103035 103036 103044 103324 103325 6 103043 103036 103037 103038 103045 103325 6 103044 103038 103046 103325 103326 103327 6 103045 103038 103039 103047 103053 103327 6 103046 103039 103040 103041 103048 103053 6 103047 103041 103049 103053 103054 103055 6 103048 103041 102743 102744 103050 103055 6 103049 102744 102745 102746 103051 103055 6 103050 102746 102747 103052 103055 103056 6 103051 102747 102749 103056 103057 103058 6 103046 103047 103048 103054 103327 103328 6 103053 103048 103055 103328 103329 103056 6 103054 103048 103049 103050 103051 103056 7 103055 103051 103052 103057 103329 103054 103641 5 103056 103052 103058 103641 103642 7 103057 103052 102749 102750 103059 103642 103643 6 103058 102750 103060 103643 103644 103061 5 103059 102750 102445 102446 103061 6 103060 102446 103062 103644 103059 103910 6 103061 102446 102447 103063 103910 103911 6 103062 102447 103064 103069 103911 103912 6 103063 102447 102448 102449 103065 103069 6 103064 102449 102450 103066 103069 103070 6 103065 102450 102451 103067 103070 103071 6 103066 102451 102452 103068 103071 103072 6 103067 102452 102454 103072 103073 103074 6 103063 103064 103065 103070 103912 103913 6 103069 103065 103066 103071 103913 103914 6 103070 103066 103067 103072 103914 103915 6 103071 103067 103068 103073 103915 103916 6 103072 103068 103074 103916 103917 103918 6 103073 103068 102454 102455 103075 103918 6 103074 102455 102456 102457 103076 103918 6 103075 102457 102458 103077 103349 103918 6 103076 102458 102459 103078 103349 103350 6 103077 102459 102460 103079 103107 103350 6 103078 102460 102461 103080 103107 103108 6 103079 102461 103081 103091 103108 103109 6 103080 102461 102462 103082 103091 103092 6 103081 102462 102463 103083 103084 103092 6 103082 102463 103084 103085 102482 102464 6 103082 103083 103085 103092 103112 103359 6 103084 103083 102482 103926 103152 103359 6 100016 100017 103087 103088 103089 103090 6 103086 100017 100018 103095 103126 103090 6 100016 103086 103089 103098 100417 100015 6 103088 103086 103090 103098 103103 103104 6 103089 103086 103104 103105 103087 103126 6 103080 103081 103092 103109 103110 103111 6 103091 103081 103082 103084 103111 103112 5 101615 101616 103094 104099 103544 6 103093 101616 101617 104367 104099 101624 6 103087 100018 100019 103096 103125 103126 6 103095 100019 100020 103125 103128 100414 6 102241 101657 101655 101647 101182 101184 6 103088 103089 100417 103099 103102 103103 6 100417 103098 100418 103100 103101 103102 6 100418 103099 103101 103228 103229 103684 6 103100 103099 103102 103226 103228 103498 7 103101 103099 103098 103103 103113 103498 103497 6 103102 103098 103089 103104 103113 103114 6 103103 103089 103090 103105 103106 103114 6 103104 103090 103106 103126 103124 103118 6 103104 103105 103116 103114 103117 103118 6 103078 103079 103108 103350 103351 103352 6 103107 103079 103080 103109 103352 103353 6 103108 103080 103091 103110 103353 103354 6 103109 103091 103111 103354 103355 103356 6 103110 103091 103092 103112 103356 103357 6 103111 103092 103084 103357 103358 103359 5 103102 103103 103114 103115 103497 6 103113 103103 103115 103116 103106 103104 7 103113 103114 103116 103497 103504 103501 103495 6 103115 103114 103106 103117 106712 103504 6 103116 103106 103118 103119 106712 106711 6 103117 103106 103119 103120 103124 103105 6 103117 103118 103120 103121 106711 106713 6 103119 103118 103121 103122 103123 103124 6 103119 103120 103122 103884 103887 106713 6 103121 103120 103123 103127 103883 103884 6 103122 103120 103124 103125 103127 103128 6 103123 103120 103118 103125 103126 103105 6 103123 103124 103126 103128 103095 103096 6 103125 103124 103105 103095 103087 103090 6 103122 103123 103128 103882 103339 103883 6 103127 103123 103125 100414 103882 103096 6 102201 102203 103130 103851 103852 109781 6 103129 102203 102205 101525 101526 109781 6 102094 102095 103132 103133 109776 103138 6 102094 103131 103133 103134 103135 102093 6 103132 103131 103134 103136 103137 103138 6 103132 103133 103135 103136 105946 105945 6 103132 103134 105945 105943 105947 102093 6 103134 103133 103137 106090 106091 105946 6 103136 103133 103138 106090 106089 106092 6 103137 103133 106092 106093 109776 103131 6 102813 102814 102817 103140 104388 104386 6 103139 102817 103141 104385 104384 104386 6 103140 102817 102818 103142 104390 104385 6 103141 102818 103143 107767 104390 107768 6 103142 102818 102819 103144 107774 107768 6 103143 102819 102820 103145 107774 107775 6 103144 102820 103146 104231 107775 109791 6 103145 102820 102821 102823 103147 104231 6 103146 102823 101673 101674 103412 104231 6 102486 102487 103149 103156 103157 103161 6 102486 103148 103150 103151 103155 103156 6 102486 103149 103151 103152 103926 102484 6 103150 103149 103152 103153 103154 103155 6 103150 103151 103153 103926 103085 103359 6 103152 103151 103154 103358 103359 103360 6 103153 103151 103155 103360 103361 103362 6 103154 103151 103149 103156 103677 103362 6 103155 103149 103148 103157 103158 103677 6 103156 103148 103158 103159 103160 103161 6 103156 103157 103159 103676 103677 103945 6 103158 103157 103160 103945 103946 103962 6 103159 103157 103161 103962 103963 103964 6 103160 103157 103148 103967 103964 102487 6 102845 102847 103163 103164 103165 102844 6 103162 102847 103164 103180 102858 102849 6 103162 103163 103165 103166 103177 103180 6 103162 103164 103166 103167 103168 102844 6 103165 103164 103167 103177 103174 103171 6 103165 103166 103168 103169 103170 103171 6 103165 103167 103169 102843 102844 109688 6 103168 103167 103170 109687 109686 109688 5 103169 103167 103171 103172 109687 6 103170 103167 103172 103173 103174 103166 6 103170 103171 103173 109691 109687 106653 7 103172 103171 103174 103175 106654 106652 106653 6 103173 103171 103175 103176 103177 103166 5 103173 103174 103176 103450 106654 6 103175 103174 103177 103178 103179 103450 6 103176 103174 103178 103166 103164 103180 6 103176 103177 103179 103180 106660 106661 6 103176 103178 103450 106657 106659 106660 6 103177 103164 103178 103163 102858 106661 6 102869 102870 102884 103182 103190 102868 6 103181 102884 102885 103183 103216 103190 6 103182 102885 102886 103184 103193 103216 6 103183 102886 103185 103186 103192 103193 6 103184 102886 103186 103187 103188 102887 6 103184 103185 103187 103192 103196 107584 6 103186 103185 103188 103958 107586 107584 6 103187 103185 102887 103958 103959 102888 6 102867 102868 103190 102866 103214 103215 6 103189 102868 103181 103215 103216 103182 6 101741 101742 101744 103197 103198 103199 6 103184 103186 103193 103194 103195 103196 6 103184 103192 103194 107222 103216 103183 7 103193 103192 103195 107222 107221 107204 107203 6 103194 103192 103196 107196 107197 107203 6 103195 103192 103186 107583 107196 107584 6 101740 101741 103191 103198 103411 103200 7 103197 103191 103199 102893 102894 102895 103200 5 103198 103191 101744 101745 102893 6 103198 102895 103201 103411 103197 109751 6 103200 102895 102896 103202 103470 109751 6 103201 102896 102897 103203 103470 103471 6 103202 102897 102898 103204 103471 103472 6 103203 102898 103205 103472 103473 103474 6 103204 102898 102899 103206 103474 103475 6 103205 102899 102900 103207 103475 103476 6 103206 102900 102901 103208 103476 103477 6 103207 102901 102902 103209 103477 103478 6 103208 102902 103210 103211 103478 103479 6 103209 102902 103211 103212 103213 102903 6 103209 103210 103212 103479 103480 103481 7 103211 103210 103213 103481 103482 102907 103483 6 103212 103210 102903 103483 102905 102904 6 102866 103189 103215 107220 107219 107221 6 103214 103189 103190 103216 107221 107222 6 103215 103190 103182 107222 103193 103183 6 100635 100636 103218 104040 103763 103762 6 103217 100636 100638 103219 103484 104040 6 103218 100638 103220 103221 103222 103484 6 103219 100638 100639 103221 103240 103241 6 103219 103220 103222 103223 103224 103241 6 103219 103221 103223 103484 103485 103486 6 103222 103221 103224 103225 103486 103487 6 103223 103221 103225 103226 103227 103241 6 103223 103224 103226 103493 103487 103494 7 103225 103224 103227 103228 103101 103494 103498 6 103226 103224 103228 103229 103230 103241 5 103226 103227 103101 103100 103229 6 103100 103228 103227 103230 103231 103684 6 103229 103227 103231 103232 103241 103240 6 103229 103230 103232 103233 103234 103684 6 103231 103230 103233 103240 103239 103236 7 103231 103232 103234 100011 100010 103235 103236 5 103231 103233 100011 103684 100012 6 100010 103233 103236 103237 103238 100009 6 103235 103233 103237 100643 103239 103232 6 103235 103236 103238 100647 100644 100643 5 103235 103237 100009 100008 100647 6 100643 103236 100640 100639 103240 103232 6 100639 103239 103220 103241 103230 103232 6 103220 103240 103221 103224 103227 103230 6 102949 102950 103243 103736 103737 103738 6 103242 102950 102951 103244 103738 103739 6 103243 102951 102952 103245 103739 103740 7 103244 102952 102953 102954 103246 103740 103741 5 103245 102954 103247 103741 103742 6 103246 102954 102955 103248 103742 103743 6 103247 102955 102956 103249 103743 103744 6 103248 102956 102957 103250 103744 103745 6 103249 102957 103251 103745 103746 103747 6 103250 102957 102958 103252 103253 103747 6 103251 102958 103253 103254 102960 102959 6 103251 103252 103254 103747 103748 103749 6 103253 103252 102960 102961 103255 103749 6 103254 102961 102962 102964 103256 103749 6 103255 102964 103257 103749 103750 103751 6 103256 102964 102965 103258 103751 103752 6 103257 102965 103259 103752 103753 103754 6 103258 102965 102966 102967 103260 103754 6 103259 102967 102968 103261 103754 103755 6 103260 102968 102969 103262 103755 103756 6 103261 102969 102970 103263 103756 103757 6 103262 102970 102971 103264 103757 103758 6 103263 102971 102972 103265 103758 103759 7 103264 102972 102973 103266 103759 104054 104051 5 103265 102973 102974 103267 104054 6 103266 102974 102975 102976 103268 104054 7 103267 102976 102977 103269 104054 104053 104055 5 103268 102977 103270 104055 104056 6 103269 102977 102978 103271 104056 104057 6 103270 102978 102979 103272 104057 104058 6 103271 102979 102980 103273 104058 104059 6 103272 102980 102981 103274 104059 104060 6 103273 102981 102982 103275 104060 104061 6 103274 102982 102983 103276 104064 104061 6 103275 102983 102984 103277 104064 104065 6 103276 102984 102985 103826 104065 103824 6 102689 102690 103279 103588 103589 103590 6 103278 102690 102691 103280 103590 103591 6 103279 102691 102692 103281 103591 103592 6 103280 102692 102693 103282 103592 103593 6 103281 102693 102694 103283 103593 103594 6 103282 102694 102695 103284 103594 103595 6 103283 102695 102696 103285 103595 103596 6 103284 102696 102697 103286 103596 103597 6 103285 102697 102698 103287 103597 103598 6 103286 102698 102699 103288 103598 103599 6 103287 102699 102700 103289 103599 103600 6 103288 102700 102701 103290 103600 103601 6 103289 102701 102702 103003 103291 103601 6 103290 103003 103292 103601 103602 103603 6 103291 103003 103004 103293 103603 103604 6 103292 103004 103005 103294 103604 103605 6 103293 103005 103006 103295 103605 103606 6 103294 103006 103007 103296 103606 103607 6 103295 103007 103008 103297 103607 103608 6 103296 103008 103009 103010 103298 103608 6 103297 103010 103299 103608 103609 103610 6 103298 103010 103011 103300 103610 103611 6 103299 103011 103012 103301 103611 103612 6 103300 103012 103013 103302 103612 103613 6 103301 103013 103014 103303 103613 103614 6 103302 103014 103015 103304 103614 103615 6 103303 103015 103016 103305 103615 103616 6 103304 103016 103017 103306 103616 103617 6 103305 103017 103018 103307 103617 103618 6 103306 103018 103019 103308 103618 103619 6 103307 103019 103020 103309 103619 103620 6 103308 103020 103021 103310 103620 103621 6 103309 103021 103022 103311 103621 103622 6 103310 103022 103023 103312 103622 103623 6 103311 103023 103024 103313 103623 103624 6 103312 103024 103025 103314 103624 103625 6 103313 103025 103026 103315 103625 103626 6 103314 103026 103027 103316 103626 103627 6 103315 103027 103028 103317 103627 103628 6 103316 103028 103029 103318 103628 103629 6 103317 103029 103030 103319 103629 103630 6 103318 103030 103031 103320 103630 103631 6 103319 103031 103032 103321 103631 103632 6 103320 103032 103033 103322 103632 103633 6 103321 103033 103034 103042 103323 103633 6 103322 103042 103324 103633 103634 103635 6 103323 103042 103043 103325 103635 103636 6 103324 103043 103044 103045 103326 103636 6 103325 103045 103327 103636 103637 103638 6 103326 103045 103046 103053 103328 103638 6 103327 103053 103054 103329 103638 103639 6 103328 103054 103056 103639 103640 103641 6 102507 102508 100032 100033 103331 103880 6 103330 100033 100034 102248 103332 103880 6 103331 102248 103333 103334 103880 103881 6 103332 102248 103334 103335 103336 102249 6 103332 103333 103335 109707 106499 103881 6 103334 103333 103336 109706 106492 109707 6 103335 103333 102249 102250 102251 109706 6 101171 101172 101524 103338 103339 103882 6 103337 101524 103339 103340 103341 104250 6 103337 103338 103340 103882 103127 103883 6 103339 103338 103341 103342 103885 103883 6 103340 103338 103342 103343 102206 104250 6 103340 103341 103343 103861 106717 103885 6 103342 103341 102206 102207 103344 103861 6 103343 102207 102209 103345 103346 103861 6 103344 102209 103346 103347 103348 102211 6 103344 103345 103347 103861 103862 103863 6 103346 103345 103348 106532 103863 106524 6 103347 103345 102211 102213 106523 106524 6 103076 103077 103350 103918 103917 103919 6 103349 103077 103078 103107 103351 103919 6 103350 103107 103352 103919 103920 103921 6 103351 103107 103108 103353 103921 103922 6 103352 103108 103109 103354 103922 103923 6 103353 103109 103110 103355 103923 103924 6 103354 103110 103356 103924 103925 103374 6 103355 103110 103111 103357 103368 103374 6 103356 103111 103112 103358 103367 103368 6 103357 103112 103359 103153 103360 103367 6 103358 103112 103153 103085 103152 103084 6 103358 103153 103154 103361 103363 103367 6 103360 103154 103362 103363 103364 103678 6 103361 103154 103155 103677 103675 103678 6 103360 103361 103364 103365 103366 103367 6 103363 103361 103365 103678 103667 103668 6 103363 103364 103366 103373 103370 103668 6 103363 103365 103367 103368 103369 103370 6 103363 103366 103368 103360 103358 103357 6 103367 103366 103369 103357 103356 103374 6 103368 103366 103370 103371 103374 103375 6 103369 103366 103371 103372 103373 103365 6 103369 103370 103372 103375 103376 103377 6 103371 103370 103373 103377 103378 103379 6 103372 103370 103365 103379 103380 103668 6 103356 103368 103369 103375 103925 103355 7 103374 103369 103371 103376 103943 103925 104342 5 103375 103371 103377 104342 104343 6 103376 103371 103372 103378 104343 104344 6 103377 103372 103379 103645 104347 104344 6 103378 103372 103373 103380 103381 103645 6 103379 103373 103381 103382 103668 103656 6 103379 103380 103382 103383 103384 103645 6 103381 103380 103383 103390 103387 103656 6 103381 103382 103384 103385 103386 103387 6 103381 103383 103385 103645 103646 103647 6 103384 103383 103386 103647 103648 103649 6 103385 103383 103387 103388 103649 103650 6 103386 103383 103388 103389 103390 103382 6 103386 103387 103389 103650 103651 103652 6 103388 103387 103390 103652 103653 103654 6 103389 103387 103382 103654 103655 103656 6 102675 102676 103392 103573 103574 103575 6 103391 102676 102677 103393 103575 103576 6 103392 102677 102678 103394 103576 103577 6 103393 102678 102679 103577 103578 103579 6 102173 102804 102805 103396 103397 104747 6 103395 102805 103397 103398 103399 103400 6 103395 103396 103398 103892 104747 104746 6 103397 103396 103399 103892 103893 103894 6 103398 103396 103400 103894 103895 103896 6 103399 103396 102805 102806 103401 103896 6 103400 102806 102807 103402 103896 103897 6 103401 102807 103403 103897 103898 103899 6 103402 102807 102808 103404 103899 103900 6 103403 102808 101732 103405 103679 103900 6 103404 101732 101733 101734 103406 103679 6 103405 101734 101735 103407 103679 103680 6 103406 101735 101736 103408 103680 103681 6 103407 101736 101737 103409 103683 103681 6 103408 101737 101738 103410 103470 103683 6 103409 101738 101739 103411 109751 103470 6 103410 101739 101740 103197 103200 109751 6 103147 101674 101675 101676 103413 104231 6 103412 101676 101677 103414 109791 104231 6 103413 101677 103415 107778 107776 109791 6 103414 101677 101678 107778 107779 105382 6 101695 101696 103417 103786 101694 103787 6 103416 101696 101697 103418 103787 103789 6 103417 101697 101698 102223 103419 103789 6 103418 102223 103420 103789 103790 103791 6 103419 102223 102224 103421 103791 103792 6 103420 102224 102225 103422 103423 103792 6 103421 102225 103423 103424 103425 103426 6 103421 103422 103424 103794 103792 103795 6 103423 103422 103425 103795 103796 103797 6 103424 103422 103426 103797 103798 103799 6 103425 103422 102225 102226 103427 103799 6 103426 102226 102227 103428 103799 103800 6 103427 102227 102228 103429 103800 103801 6 103428 102228 103430 103801 103802 103432 6 103429 102228 102229 102238 103431 103432 6 103430 102238 103432 103433 103434 103435 6 103430 103431 103433 103442 103802 103429 6 103432 103431 103434 103442 103443 103444 6 103433 103431 103435 103444 103445 103446 6 103434 103431 102238 102239 102561 103446 6 102491 102492 103437 103438 103515 102493 6 102491 103436 103438 103439 103440 103441 6 103437 103436 103439 103513 103514 103515 6 103437 103438 103440 103508 103509 103513 6 103437 103439 103441 103451 103453 103508 6 103437 103440 102491 100070 103451 100069 6 103432 103433 103443 103802 103803 103804 6 103442 103433 103444 103804 103805 103806 6 103443 103433 103434 103445 103806 103807 6 103444 103434 103446 103807 103808 103447 6 103445 103434 103435 102561 102562 103447 6 103446 102562 103448 103808 103445 104107 6 103447 102562 102563 103449 103454 104107 6 103448 102563 102567 103454 103455 102568 7 103175 103176 103179 106655 106654 106656 106657 6 103441 103440 100069 100068 103452 103453 6 100068 103451 103453 100067 103505 103506 6 103452 103451 103440 103506 103507 103508 6 103448 103449 103455 103456 104107 104108 6 103454 103449 103456 103457 103458 102568 6 103454 103455 103457 103464 104110 104108 6 103456 103455 103458 103459 103460 103464 6 103457 103455 103459 103463 102569 102568 6 103457 103458 103460 103461 103462 103463 6 103457 103459 103461 103464 103465 103466 6 103460 103459 103462 103466 103467 103469 6 103461 103459 103463 101721 103469 101720 6 103462 103459 103458 102569 101720 101719 6 103456 103457 103460 103465 104394 104110 6 103464 103460 103466 104404 104394 104745 6 103465 103460 103461 103467 103468 104745 6 103466 103461 103468 102172 101724 103469 6 103466 103467 102172 104745 104746 104747 6 101724 103467 101722 101721 103462 103461 7 103201 103202 103471 109751 103410 103409 103683 6 103470 103202 103203 103472 103681 103683 6 103471 103203 103204 103473 103682 103681 6 103472 103204 103474 103685 103902 103682 6 103473 103204 103205 103475 103685 103686 6 103474 103205 103206 103476 103686 103687 6 103475 103206 103207 103477 103687 103688 6 103476 103207 103208 103478 103688 103689 6 103477 103208 103209 103479 103689 103690 6 103478 103209 103211 103480 103690 103691 6 103479 103211 103481 103499 103694 103691 6 103480 103211 103212 103482 103499 103500 5 103481 103212 102907 103500 102908 5 102907 103212 103213 102905 102906 6 103218 103219 103222 103485 104039 104040 6 103484 103222 103486 103489 103968 104039 6 103485 103222 103223 103487 103488 103489 6 103486 103223 103488 103492 103493 103225 6 103486 103487 103489 103490 103491 103492 6 103486 103488 103490 103485 103968 103969 6 103489 103488 103491 103969 103970 103971 6 103490 103488 103492 103971 109747 106555 6 103491 103488 103487 103493 103496 109747 6 103492 103487 103225 103494 103495 103496 6 103493 103225 103226 103495 103497 103498 6 103493 103494 103496 103497 103501 103115 6 103493 103495 103492 103501 103502 109747 6 103495 103494 103498 103102 103113 103115 5 103497 103494 103226 103101 103102 6 103480 103481 103500 103694 103695 103696 6 103499 103481 103482 102908 103696 103697 6 103496 103495 103502 103503 103504 103115 6 103496 103501 103503 109747 106706 109748 6 103502 103501 103504 106712 106710 109748 5 103503 103501 103115 106712 103116 6 100067 103452 103506 106697 106703 100066 6 103505 103452 103453 103507 106697 106704 6 103506 103453 103508 103510 104522 106704 6 103507 103453 103440 103439 103509 103510 6 103508 103439 103510 103511 103512 103513 6 103508 103509 103511 103770 103507 104522 6 103510 103509 103512 103770 103771 103772 6 103511 103509 103513 103772 103773 103520 6 103512 103509 103439 103438 103514 103520 6 103513 103438 103515 103520 103521 103517 6 103514 103438 103436 102493 103516 103517 6 103515 102493 103517 103518 101607 101606 6 103515 103516 103518 103521 103514 103522 6 103517 103516 101607 101613 103522 103523 5 101613 101607 101605 101608 101610 6 103513 103514 103521 103773 103512 104531 6 103520 103514 103517 103522 104116 104531 6 103521 103517 103518 103523 103525 104116 6 103522 103518 101613 101614 103524 103525 6 103523 101614 103525 103526 103527 103528 6 103523 103524 103526 103522 104116 104117 6 103525 103524 103527 103529 104117 104118 6 103526 103524 103528 103529 103530 103543 6 103527 103524 101614 103543 103544 101615 6 103526 103527 103530 103531 104118 109786 6 103529 103527 103531 103532 103542 103543 6 103529 103530 103532 103533 109786 109787 6 103531 103530 103533 103534 103541 103542 6 103531 103532 103534 103535 109787 109788 6 103533 103532 103535 103536 103540 103541 6 103533 103534 103536 103537 109788 107178 6 103535 103534 103537 103538 103539 103540 6 103535 103536 103538 107182 107179 107178 6 103537 103536 103539 107182 107183 107184 6 103538 103536 103540 107184 107185 107212 6 103539 103536 103534 103541 107212 104372 6 103540 103534 103532 103542 104372 104097 6 103541 103532 103530 103543 104096 104097 6 103542 103530 103527 103528 103544 104096 6 103543 103528 101615 104099 104096 103093 6 102986 102987 103546 103824 103825 103829 6 103545 102987 102988 103547 103829 103830 6 103546 102988 102989 103548 103830 103831 6 103547 102989 102990 103549 103831 103832 6 103548 102990 102991 103550 103832 103833 6 103549 102991 102992 103551 103809 103833 6 103550 102992 102993 103552 103809 103810 6 103551 102993 102994 103553 103810 103811 6 103552 102994 102995 103554 103811 103812 6 103553 102995 102996 103555 103812 103813 6 103554 102996 103556 103813 103814 103815 6 103555 102996 102997 103557 103815 103816 6 103556 102997 102998 102999 103558 103816 6 103557 102999 103000 103559 103816 103817 6 103558 103000 103001 103560 103817 103818 6 103559 103001 103002 103561 103562 103818 6 103560 103002 103562 103563 103564 103565 6 103560 103561 103563 103818 103819 103820 6 103562 103561 103564 103820 103821 103822 6 103563 103561 103565 103822 103823 103566 6 103564 103561 103002 102666 102667 103566 6 103565 102667 102668 103567 103823 103564 6 103566 102668 102669 103568 103850 103823 6 103567 102669 102670 103569 103879 103850 6 103568 102670 102671 103570 103891 103879 6 103569 102671 102672 102673 103571 103891 6 103570 102673 103572 104237 103891 104257 6 103571 102673 102674 103573 104257 104258 6 103572 102674 102675 103391 103574 104258 6 103573 103391 103575 104258 104259 104263 6 103574 103391 103392 103576 104263 104264 6 103575 103392 103393 103577 104264 104265 6 103576 103393 103394 103578 104265 104266 6 103577 103394 103579 104266 104267 104268 6 103578 103394 102679 102680 103580 104268 6 103579 102680 102681 103581 104141 104268 6 103580 102681 102682 103582 104141 104142 6 103581 102682 102683 103583 104142 104143 6 103582 102683 102684 103584 104143 104144 6 103583 102684 102685 103585 104144 104145 6 103584 102685 102686 103586 104145 104146 6 103585 102686 102687 103587 104146 104147 6 103586 102687 102688 103588 104147 104148 6 103587 102688 102689 103278 103589 104148 6 103588 103278 103590 104148 104149 104150 6 103589 103278 103279 103591 104150 104151 6 103590 103279 103280 103592 104151 104152 6 103591 103280 103281 103593 104152 104153 6 103592 103281 103282 103594 104153 104154 6 103593 103282 103283 103595 104154 104155 6 103594 103283 103284 103596 104155 104156 6 103595 103284 103285 103597 104156 104157 6 103596 103285 103286 103598 104157 104158 6 103597 103286 103287 103599 104158 104159 6 103598 103287 103288 103600 104159 104160 6 103599 103288 103289 103601 104160 104161 6 103600 103289 103290 103291 103602 104161 6 103601 103291 103603 104161 104162 104163 6 103602 103291 103292 103604 104163 104164 6 103603 103292 103293 103605 104164 104165 6 103604 103293 103294 103606 104165 104166 6 103605 103294 103295 103607 104166 104167 6 103606 103295 103296 103608 104167 104168 6 103607 103296 103297 103298 103609 104168 6 103608 103298 103610 104168 104169 104170 6 103609 103298 103299 103611 104170 104171 6 103610 103299 103300 103612 104171 104172 6 103611 103300 103301 103613 104172 104173 6 103612 103301 103302 103614 104173 104174 6 103613 103302 103303 103615 104174 104175 6 103614 103303 103304 103616 104175 104176 6 103615 103304 103305 103617 104176 104177 6 103616 103305 103306 103618 104177 104178 6 103617 103306 103307 103619 104178 104179 6 103618 103307 103308 103620 104179 104180 6 103619 103308 103309 103621 104180 104181 6 103620 103309 103310 103622 104181 104182 6 103621 103310 103311 103623 104182 104183 6 103622 103311 103312 103624 104183 104184 6 103623 103312 103313 103625 104184 104185 6 103624 103313 103314 103626 104185 104186 6 103625 103314 103315 103627 104186 104187 6 103626 103315 103316 103628 104187 104188 6 103627 103316 103317 103629 104188 104189 6 103628 103317 103318 103630 104189 104190 6 103629 103318 103319 103631 104190 104191 6 103630 103319 103320 103632 104191 104192 6 103631 103320 103321 103633 104192 104193 6 103632 103321 103322 103323 103634 104193 6 103633 103323 103635 103903 104193 104194 6 103634 103323 103324 103636 103903 103904 6 103635 103324 103325 103326 103637 103904 6 103636 103326 103638 103904 103905 103906 6 103637 103326 103327 103328 103639 103906 6 103638 103328 103329 103640 103906 103907 6 103639 103329 103641 103907 103908 103642 5 103640 103329 103056 103057 103642 7 103641 103057 103058 103643 103908 103640 103927 6 103642 103058 103059 103644 103909 103927 5 103643 103059 103061 103909 103910 6 103381 103384 103646 103379 103378 104347 6 103645 103384 103647 104347 104348 104349 6 103646 103384 103385 103648 104352 104349 6 103647 103385 103649 103657 104352 104353 6 103648 103385 103386 103650 103657 103658 6 103649 103386 103388 103651 103658 103659 6 103650 103388 103652 103659 103660 103661 6 103651 103388 103389 103653 103661 103662 6 103652 103389 103654 103662 103663 103664 6 103653 103389 103390 103655 103664 103665 6 103654 103390 103656 103665 103666 103667 6 103655 103390 103382 103667 103668 103380 6 103648 103649 103658 104353 104354 104358 6 103657 103649 103650 103659 104371 104358 6 103658 103650 103651 103660 109793 104371 6 103659 103651 103661 104906 104908 109793 6 103660 103651 103652 103662 103669 104906 6 103661 103652 103653 103663 103669 103670 6 103662 103653 103664 103670 103671 103672 6 103663 103653 103654 103665 103672 103673 6 103664 103654 103655 103666 103673 103674 6 103665 103655 103667 103674 103675 103678 6 103666 103655 103656 103668 103364 103678 6 103667 103656 103380 103364 103365 103373 6 103661 103662 103670 104903 104905 104906 6 103669 103662 103663 103671 104902 104903 6 103670 103663 103672 105918 104902 103951 6 103671 103663 103664 103673 103950 103951 6 103672 103664 103665 103674 103944 103950 6 103673 103665 103666 103675 103676 103944 6 103674 103666 103676 103677 103362 103678 6 103674 103675 103677 103158 103944 103945 6 103676 103675 103158 103156 103155 103362 6 103362 103675 103361 103364 103667 103666 6 103404 103405 103406 103680 103900 103901 6 103679 103406 103407 103681 103682 103901 7 103680 103407 103682 103472 103471 103683 103408 6 103680 103681 103472 103901 103902 103473 5 103471 103681 103408 103409 103470 7 100418 103100 103229 103231 103234 100012 100013 7 103473 103474 103686 103902 104665 104664 104688 5 103685 103474 103475 103687 104688 7 103686 103475 103476 103688 104688 104689 104690 6 103687 103476 103477 103689 104690 104691 6 103688 103477 103478 103690 104691 104692 6 103689 103478 103479 103691 103692 104692 6 103690 103479 103692 103693 103694 103480 6 103690 103691 103693 104692 104693 104694 6 103692 103691 103694 104694 104695 104696 6 103693 103691 103480 103499 103695 104696 6 103694 103499 103696 104696 104697 104698 6 103695 103499 103500 103697 104698 104699 6 103696 103500 102908 102909 103698 104699 6 103697 102909 102910 103699 103972 104699 6 103698 102910 102911 103700 103972 103973 6 103699 102911 102912 102913 103701 103973 6 103700 102913 103702 103973 103974 103975 6 103701 102913 102914 103703 103975 103976 6 103702 102914 102915 103704 103976 103977 6 103703 102915 102916 103705 103977 103978 6 103704 102916 102917 103706 103978 103979 6 103705 102917 102918 103707 103979 103980 6 103706 102918 102919 103708 103980 103981 6 103707 102919 102920 103709 103981 103982 6 103708 102920 102921 103710 103982 103983 6 103709 102921 102922 103711 103983 103984 6 103710 102922 102923 103712 103984 103985 6 103711 102923 102924 103713 103985 103986 6 103712 102924 102925 103714 103986 103987 6 103713 102925 102926 103715 103987 103988 6 103714 102926 102927 103716 103988 103989 6 103715 102927 102928 103717 103989 103990 6 103716 102928 102929 103718 103990 103991 6 103717 102929 102930 103719 103991 103992 6 103718 102930 102931 103720 103992 103993 6 103719 102931 102932 103721 103993 103994 6 103720 102932 102933 103722 103994 103995 6 103721 102933 102934 103723 103995 103996 6 103722 102934 102935 103724 103996 103997 6 103723 102935 102936 103725 103997 103998 6 103724 102936 102937 103726 103998 103999 6 103725 102937 102938 103727 103999 104000 6 103726 102938 102939 103728 104000 104001 6 103727 102939 102940 103729 104001 104002 6 103728 102940 102941 103730 104002 104003 6 103729 102941 102942 103731 104003 104004 6 103730 102942 102943 103732 104004 104005 6 103731 102943 102944 102945 103733 104005 6 103732 102945 102946 103734 104005 104006 6 103733 102946 102947 102948 103735 104006 6 103734 102948 103736 104006 104007 103737 5 103735 102948 102949 103242 103737 6 103736 103242 103738 104007 103735 104012 6 103737 103242 103243 103739 104012 104013 6 103738 103243 103244 103740 104013 104014 6 103739 103244 103245 103741 104014 104015 6 103740 103245 103246 103742 104015 104016 6 103741 103246 103247 103743 104016 104017 6 103742 103247 103248 103744 104017 104018 6 103743 103248 103249 103745 104018 104019 6 103744 103249 103250 103746 104019 104020 6 103745 103250 103747 104020 104021 104022 6 103746 103250 103251 103253 103748 104022 6 103747 103253 103749 104022 104023 104024 7 103748 103253 103254 103255 103256 103750 104024 5 103749 103256 103751 104024 104025 6 103750 103256 103257 103752 104025 104026 6 103751 103257 103258 103753 104029 104026 7 103752 103258 103754 104037 104029 104046 103755 5 103753 103258 103259 103260 103755 6 103754 103260 103261 103756 104046 103753 6 103755 103261 103262 103757 104046 104047 6 103756 103262 103263 103758 104047 104048 6 103757 103263 103264 103759 104048 104049 6 103758 103264 103265 104049 104050 104051 6 100615 100617 103761 103764 103765 103763 6 103760 100617 100625 100627 103762 103763 6 103761 100627 103763 103217 100635 100629 6 103761 103762 103765 103760 104040 103217 6 100615 103760 103765 104038 106557 100612 6 103764 103760 103763 104038 104039 104040 5 102085 101567 103767 103768 106093 6 103766 101567 103768 103769 101571 101568 6 103766 103767 103769 106092 106093 106094 7 103768 103767 101571 106094 106088 106317 106318 6 103510 103511 103771 104522 104523 104524 6 103770 103511 103772 104524 104525 104528 6 103771 103511 103512 103773 104528 104529 6 103772 103512 103520 104529 104530 104531 6 101682 101683 103775 105391 105385 105383 6 103774 101683 103776 105620 105391 103778 6 103775 101683 101684 101686 103777 103778 6 103776 101686 103778 103779 103780 103781 6 103776 103777 103779 107791 105620 103775 6 103778 103777 103780 107798 107792 107791 6 103779 103777 103781 107798 103783 103782 6 103780 103777 101686 101687 101688 103782 6 103781 101688 101689 101691 103783 103780 6 103782 101691 103784 107798 103780 107799 6 103783 101691 101692 103785 107799 107800 6 103784 101692 103786 103787 103788 107800 6 103785 101692 101693 101694 103416 103787 6 103786 103416 103417 103785 103788 103789 6 103785 103787 103789 107800 107801 103790 6 103788 103787 103417 103418 103419 103790 6 103789 103419 103791 107801 103788 107802 6 103790 103419 103420 103792 103793 107802 6 103791 103420 103793 103794 103423 103421 6 103791 103792 103794 107802 107803 107804 6 103793 103792 103423 103795 107804 107805 6 103794 103423 103424 103796 107809 107805 6 103795 103424 103797 103952 107809 107810 6 103796 103424 103425 103798 103952 103953 6 103797 103425 103799 103953 103954 103955 6 103798 103425 103426 103427 103800 103955 6 103799 103427 103428 103801 103955 103956 6 103800 103428 103429 103802 103956 103957 6 103801 103429 103432 103442 103803 103957 6 103802 103442 103804 103957 104100 104239 6 103803 103442 103443 103805 104100 104101 6 103804 103443 103806 104101 104102 104103 6 103805 103443 103444 103807 104103 104104 6 103806 103444 103445 103808 104104 104105 6 103807 103445 103447 104105 104106 104107 6 103550 103551 103810 103833 103834 103835 6 103809 103551 103552 103811 103835 103836 6 103810 103552 103553 103812 103836 103837 6 103811 103553 103554 103813 103837 103838 6 103812 103554 103555 103814 103838 103839 6 103813 103555 103815 103839 103840 103841 6 103814 103555 103556 103816 103841 103842 6 103815 103556 103557 103558 103817 103842 6 103816 103558 103559 103818 103842 103843 6 103817 103559 103560 103562 103819 103843 6 103818 103562 103820 103843 103844 103845 6 103819 103562 103563 103821 103845 103846 6 103820 103563 103822 103846 103847 103848 6 103821 103563 103564 103823 103848 103849 6 103822 103564 103566 103849 103850 103567 6 102986 103545 103825 103826 103277 102985 6 103824 103545 103826 103827 103828 103829 6 103824 103825 103827 104069 104065 103277 6 103826 103825 103828 104756 104069 104763 6 103827 103825 103829 104763 104764 104765 6 103828 103825 103545 103546 103830 104765 6 103829 103546 103547 103831 104765 104766 6 103830 103547 103548 103832 104766 104767 6 103831 103548 103549 103833 104770 104767 6 103832 103549 103550 103809 103834 104770 6 103833 103809 103835 105016 104770 105024 6 103834 103809 103810 103836 105024 105025 6 103835 103810 103811 103837 105025 105026 6 103836 103811 103812 103838 104405 105026 6 103837 103812 103813 103839 103864 104405 6 103838 103813 103814 103840 103864 103865 6 103839 103814 103841 103865 103866 103867 6 103840 103814 103815 103842 103853 103867 6 103841 103815 103816 103817 103843 103853 6 103842 103817 103818 103819 103844 103853 6 103843 103819 103845 103853 103854 103855 6 103844 103819 103820 103846 103855 103856 6 103845 103820 103821 103847 103856 103857 6 103846 103821 103848 103860 103857 103876 6 103847 103821 103822 103849 103876 103877 6 103848 103822 103823 103850 103877 103878 6 103849 103823 103567 103878 103879 103568 6 102181 102199 102179 103852 102201 103129 6 102179 103851 100027 100026 103129 109781 6 103841 103842 103843 103844 103854 103867 6 103853 103844 103855 103867 103868 103869 6 103854 103844 103845 103856 103869 103870 6 103855 103845 103846 103857 103858 103870 6 103856 103846 103858 103859 103860 103847 6 103856 103857 103859 103870 103871 103872 6 103858 103857 103860 103872 103873 103874 6 103859 103857 103847 103874 103875 103876 6 103343 103344 103346 103862 106717 103342 6 103861 103346 103863 106716 106715 106717 7 103862 103346 106532 106531 103347 106533 106716 6 103838 103839 103865 104405 104406 104407 6 103864 103839 103840 103866 104407 104408 6 103865 103840 103867 104408 104409 103868 6 103866 103840 103841 103853 103854 103868 6 103867 103854 103869 104409 103866 104420 6 103868 103854 103855 103870 104420 104421 6 103869 103855 103856 103858 103871 104421 6 103870 103858 103872 104421 104422 104423 6 103871 103858 103859 103873 104423 104424 6 103872 103859 103874 104424 104425 104426 6 103873 103859 103860 103875 104426 104427 6 103874 103860 103876 104427 104428 103888 6 103875 103860 103847 103848 103877 103888 6 103876 103848 103849 103878 103888 103889 6 103877 103849 103850 103879 103889 103890 6 103878 103850 103568 103890 103891 103569 6 102507 103330 102509 103881 103331 103332 6 102509 103880 103334 106499 102511 103332 6 103337 103339 103127 101171 100414 103128 6 103127 103339 103122 103884 103885 103340 6 103122 103883 103885 103886 103887 103121 6 103884 103883 103886 103342 106717 103340 6 103884 103885 103887 106538 106715 106717 6 103884 103886 103121 106713 106714 106538 6 103876 103877 103889 104428 103875 104251 6 103888 103877 103878 103890 104236 104251 6 103889 103878 103879 103891 104236 104237 6 103890 103879 103569 104237 103571 103570 6 103397 103398 103893 104746 104744 104743 6 103892 103398 103894 104743 104748 104749 6 103893 103398 103399 103895 104752 104749 6 103894 103399 103896 104661 104758 104752 6 103895 103399 103400 103401 103897 104661 6 103896 103401 103402 103898 104661 104662 6 103897 103402 103899 104662 104663 104664 6 103898 103402 103403 103900 104664 104665 6 103899 103403 103404 103679 103901 104665 6 103900 103679 103680 103682 103902 104665 5 103901 103682 103473 104665 103685 6 103634 103635 103904 104194 104195 104196 6 103903 103635 103636 103637 103905 104196 6 103904 103637 103906 104196 104197 104198 6 103905 103637 103638 103639 103907 104198 6 103906 103639 103640 103908 104198 104199 6 103907 103640 103642 103927 104199 104200 5 103643 103644 103910 103927 103928 7 103909 103644 103061 103062 103911 103928 103929 7 103910 103062 103063 103912 103929 103930 103931 6 103911 103063 103069 103913 103931 103932 6 103912 103069 103070 103914 103932 103933 6 103913 103070 103071 103915 103933 103934 6 103914 103071 103072 103916 103934 103935 6 103915 103072 103073 103917 103935 103936 6 103916 103073 103918 103349 103919 103936 6 103917 103073 103074 103075 103076 103349 6 103917 103349 103350 103351 103920 103936 6 103919 103351 103921 103936 103937 103938 6 103920 103351 103352 103922 103938 103939 6 103921 103352 103353 103923 103939 103940 6 103922 103353 103354 103924 103940 103941 6 103923 103354 103355 103925 103941 103942 6 103924 103355 103374 103942 103943 103375 6 103085 102482 102483 102484 103150 103152 6 103908 103642 103643 103909 103928 104200 6 103927 103909 103910 103929 104200 104201 6 103928 103910 103911 103930 104201 104202 6 103929 103911 103931 104202 104203 104204 5 103930 103911 103912 103932 104204 6 103931 103912 103913 103933 104204 104205 6 103932 103913 103914 103934 104205 104206 6 103933 103914 103915 103935 104206 104207 6 103934 103915 103916 103936 104207 103937 6 103935 103916 103917 103919 103920 103937 6 103936 103920 103938 104207 103935 104335 6 103937 103920 103921 103939 104335 104336 6 103938 103921 103922 103940 104336 104337 6 103939 103922 103923 103941 104337 104338 6 103940 103923 103924 103942 104338 104339 6 103941 103924 103925 103943 104339 104340 6 103942 103925 103375 104340 104341 104342 6 103673 103674 103676 103945 103950 103947 6 103944 103676 103158 103159 103946 103947 6 103945 103159 103947 103948 105922 103962 6 103945 103946 103948 103949 103950 103944 6 103947 103946 103949 105920 105921 105922 6 103947 103948 103950 103951 105919 105920 6 103947 103949 103951 103672 103673 103944 6 103950 103949 103672 105918 103671 105919 6 103796 103797 103953 107810 107811 107812 6 103952 103797 103798 103954 107812 107813 6 103953 103798 103955 107813 107814 107815 6 103954 103798 103799 103800 103956 107815 6 103955 103800 103801 103957 104238 107815 6 103956 103801 103802 103803 104238 104239 6 103187 103188 103959 103960 107588 107586 6 103958 103188 103960 103961 102890 102888 6 103958 103959 103961 107588 107589 107590 6 103960 103959 102890 107590 107591 107592 6 103159 103160 103963 105922 103946 105923 6 103962 103160 103964 103965 105923 105924 6 103963 103160 103965 103966 103967 103161 6 103963 103964 103966 105924 105942 105943 6 103965 103964 103967 105943 105948 105947 6 103966 103964 103161 105948 102488 102487 6 103485 103489 103969 106556 104038 104039 6 103968 103489 103490 103970 101597 106556 6 103969 103490 103971 106358 101595 101597 6 103970 103490 103491 106555 106357 106358 6 103698 103699 103973 104699 104700 104701 6 103972 103699 103700 103701 103974 104701 6 103973 103701 103975 104701 104702 104703 6 103974 103701 103702 103976 104703 104704 6 103975 103702 103703 103977 104704 104705 6 103976 103703 103704 103978 104705 104706 6 103977 103704 103705 103979 104706 104707 6 103978 103705 103706 103980 104707 104708 6 103979 103706 103707 103981 104708 104709 6 103980 103707 103708 103982 104709 104710 6 103981 103708 103709 103983 104710 104711 6 103982 103709 103710 103984 104711 104712 6 103983 103710 103711 103985 104712 104713 6 103984 103711 103712 103986 104713 104714 6 103985 103712 103713 103987 104714 104715 6 103986 103713 103714 103988 104715 104716 6 103987 103714 103715 103989 104716 104717 6 103988 103715 103716 103990 104717 104718 6 103989 103716 103717 103991 104718 104719 6 103990 103717 103718 103992 104719 104720 6 103991 103718 103719 103993 104720 104721 6 103992 103719 103720 103994 104439 104721 6 103993 103720 103721 103995 104439 104440 6 103994 103721 103722 103996 104440 104441 6 103995 103722 103723 103997 104441 104442 6 103996 103723 103724 103998 104442 104443 6 103997 103724 103725 103999 104443 104444 6 103998 103725 103726 104000 104444 104445 6 103999 103726 103727 104001 104445 104446 6 104000 103727 103728 104002 104070 104446 6 104001 103728 103729 104003 104008 104070 6 104002 103729 103730 104004 104008 104009 6 104003 103730 103731 104005 104009 104010 6 104004 103731 103732 103733 104006 104010 6 104005 103733 103734 103735 104007 104010 6 104006 103735 103737 104010 104011 104012 6 104002 104003 104009 104070 104071 104072 6 104008 104003 104004 104010 104072 104011 6 104009 104004 104005 104006 104007 104011 6 104010 104007 104012 104072 104009 104073 6 104011 104007 103737 103738 104013 104073 6 104012 103738 103739 104014 104073 104074 7 104013 103739 103740 104015 104074 104075 104076 6 104014 103740 103741 104016 104076 104077 6 104015 103741 103742 104017 104077 104078 6 104016 103742 103743 104018 104078 104079 6 104017 103743 103744 104019 104079 104080 6 104018 103744 103745 104020 104080 104081 6 104019 103745 103746 104021 104081 104082 6 104020 103746 104022 104030 104082 104083 6 104021 103746 103747 103748 104023 104030 6 104022 103748 104024 104030 104031 104032 6 104023 103748 103749 103750 104025 104032 6 104024 103750 103751 104026 104027 104032 6 104025 103751 104027 104028 104029 103752 6 104025 104026 104028 104032 104033 104034 6 104027 104026 104029 104034 104035 104036 6 104028 104026 103752 104036 104037 103753 6 104021 104022 104023 104031 104083 104084 6 104030 104023 104032 104084 104085 104033 6 104031 104023 104024 104025 104027 104033 6 104032 104027 104034 104085 104031 104462 6 104033 104027 104028 104035 104041 104462 6 104034 104028 104036 104041 104042 104043 6 104035 104028 104029 104037 104043 104044 6 104036 104029 103753 104044 104045 104046 6 103764 103765 104039 106556 106557 103968 6 104038 103765 104040 103968 103485 103484 6 104039 103765 103763 103217 103484 103218 6 104034 104035 104042 104462 104463 104464 6 104041 104035 104043 104464 104465 104466 6 104042 104035 104036 104044 104466 104467 6 104043 104036 104037 104045 104467 104468 6 104044 104037 104046 104468 104469 104047 6 104045 104037 103753 103755 103756 104047 6 104046 103756 103757 104048 104469 104045 6 104047 103757 103758 104049 104469 104470 6 104048 103758 103759 104050 104470 104209 6 104049 103759 104051 104052 104208 104209 6 104050 103759 104052 104053 104054 103265 6 104050 104051 104053 104208 104221 104222 6 104052 104051 104054 103268 104055 104222 6 104053 104051 103265 103266 103267 103268 5 104053 103268 103269 104056 104222 7 104055 103269 103270 104057 104222 104223 104224 7 104056 103270 103271 104058 104224 104225 104226 6 104057 103271 103272 104059 104226 104227 6 104058 103272 103273 104060 104227 104228 6 104059 103273 103274 104061 104062 104228 6 104060 103274 104062 104063 104064 103275 6 104060 104061 104063 104230 104228 104502 6 104062 104061 104064 104066 104067 104502 6 104063 104061 103275 103276 104065 104066 6 104064 103276 104066 104069 103826 103277 6 104064 104065 104063 104067 104068 104069 6 104063 104066 104068 104513 104502 104754 6 104067 104066 104069 104754 104755 104756 6 104068 104066 104065 103826 104756 103827 6 104001 104002 104008 104071 104446 104447 6 104070 104008 104072 104447 104448 104449 6 104071 104008 104009 104011 104073 104449 6 104072 104011 104012 104013 104074 104449 6 104073 104013 104014 104075 104449 104450 6 104074 104014 104076 104450 104451 104452 5 104075 104014 104015 104077 104452 6 104076 104015 104016 104078 104452 104453 6 104077 104016 104017 104079 104453 104454 6 104078 104017 104018 104080 104454 104455 6 104079 104018 104019 104081 104455 104456 6 104080 104019 104020 104082 104456 104457 6 104081 104020 104021 104083 104457 104458 6 104082 104021 104030 104084 104458 104459 6 104083 104030 104031 104085 104459 104460 6 104084 104031 104033 104460 104461 104462 6 102880 102881 104087 104089 107599 107600 6 104086 102881 102882 102883 104088 104089 6 104087 102883 104089 104090 104091 104092 7 104087 104088 104090 107598 107599 104086 107751 6 104089 104088 104091 107751 107753 104379 6 104090 104088 104092 104094 104378 104379 6 104091 104088 102883 102498 104093 104094 6 104092 102498 104094 104095 102809 102499 6 104092 104093 104095 104091 104378 104387 6 104094 104093 102809 104387 104386 104388 6 103542 103543 104097 104098 104099 103544 6 103542 104096 104098 104365 104372 103541 6 104097 104096 104099 104365 104366 104367 6 104098 104096 103544 104367 103094 103093 6 103803 103804 104101 104239 104240 104241 6 104100 103804 103805 104102 104241 104242 6 104101 103805 104103 104242 104243 104244 6 104102 103805 103806 104104 104111 104244 6 104103 103806 103807 104105 104111 104112 6 104104 103807 103808 104106 104112 104113 6 104105 103808 104107 104108 104109 104113 6 104106 103808 103447 103448 103454 104108 6 104107 103454 104106 104109 104110 103456 6 104106 104108 104110 104113 104114 104115 6 104109 104108 103456 104115 104394 103464 6 104103 104104 104112 104244 104245 104246 6 104111 104104 104105 104113 104249 104246 6 104112 104105 104106 104109 104114 104249 6 104113 104109 104115 104249 104391 104392 6 104114 104109 104110 104392 104393 104394 7 103522 103525 104117 104530 104531 103521 104119 5 104116 103525 103526 104118 104119 6 104117 103526 104119 104120 103529 109786 7 104117 104118 104120 104121 109784 104530 104116 6 104119 104118 104121 104122 109786 109789 6 104119 104120 104122 104123 104395 109784 6 104121 104120 104123 104124 109789 107172 6 104121 104122 104124 104125 104126 104395 6 104123 104122 104125 107171 104140 107172 6 104123 104124 104126 104127 104128 104140 6 104123 104125 104127 104395 104396 104397 6 104126 104125 104128 104129 104130 104397 6 104127 104125 104129 104136 104139 104140 6 104127 104128 104130 104131 104135 104136 6 104127 104129 104131 104132 104397 104398 6 104130 104129 104132 104133 104134 104135 6 104130 104131 104133 104401 104398 104410 6 104132 104131 104134 104410 104411 104412 6 104133 104131 104135 104412 104413 107164 6 104134 104131 104129 104136 104137 107164 6 104135 104129 104128 104137 104138 104139 6 104135 104136 104138 107163 107161 107164 6 104137 104136 104139 107168 107163 107169 6 104138 104136 104128 104140 107169 107170 6 104139 104128 104125 107170 107171 104124 6 103580 103581 104142 104268 104269 104270 6 104141 103581 103582 104143 104270 104271 6 104142 103582 103583 104144 104271 104272 6 104143 103583 103584 104145 104272 104273 6 104144 103584 103585 104146 104273 104274 6 104145 103585 103586 104147 104274 104275 6 104146 103586 103587 104148 104275 104276 6 104147 103587 103588 103589 104149 104276 6 104148 103589 104150 104276 104277 104278 6 104149 103589 103590 104151 104278 104279 6 104150 103590 103591 104152 104279 104280 6 104151 103591 103592 104153 104280 104281 6 104152 103592 103593 104154 104281 104282 6 104153 103593 103594 104155 104282 104283 6 104154 103594 103595 104156 104283 104284 6 104155 103595 103596 104157 104284 104285 6 104156 103596 103597 104158 104285 104286 6 104157 103597 103598 104159 104286 104287 6 104158 103598 103599 104160 104287 104288 6 104159 103599 103600 104161 104288 104289 6 104160 103600 103601 103602 104162 104289 6 104161 103602 104163 104289 104290 104291 6 104162 103602 103603 104164 104291 104292 6 104163 103603 103604 104165 104292 104293 6 104164 103604 103605 104166 104293 104294 6 104165 103605 103606 104167 104294 104295 6 104166 103606 103607 104168 104295 104296 6 104167 103607 103608 103609 104169 104296 6 104168 103609 104170 104296 104297 104298 6 104169 103609 103610 104171 104298 104299 6 104170 103610 103611 104172 104299 104300 6 104171 103611 103612 104173 104300 104301 6 104172 103612 103613 104174 104301 104302 6 104173 103613 103614 104175 104302 104303 6 104174 103614 103615 104176 104303 104304 6 104175 103615 103616 104177 104304 104305 6 104176 103616 103617 104178 104305 104306 6 104177 103617 103618 104179 104306 104307 6 104178 103618 103619 104180 104307 104308 6 104179 103619 103620 104181 104308 104309 6 104180 103620 103621 104182 104309 104310 6 104181 103621 103622 104183 104310 104311 6 104182 103622 103623 104184 104311 104312 6 104183 103623 103624 104185 104312 104313 6 104184 103624 103625 104186 104313 104314 6 104185 103625 103626 104187 104314 104315 6 104186 103626 103627 104188 104315 104316 6 104187 103627 103628 104189 104316 104317 6 104188 103628 103629 104190 104317 104318 6 104189 103629 103630 104191 104318 104319 6 104190 103630 103631 104192 104319 104320 6 104191 103631 103632 104193 104320 104321 6 104192 103632 103633 103634 104194 104321 6 104193 103634 103903 104195 104321 104322 6 104194 103903 104196 104322 104323 104324 6 104195 103903 103904 103905 104197 104324 6 104196 103905 104198 104324 104325 104326 6 104197 103905 103906 103907 104199 104326 6 104198 103907 103908 104200 104326 104327 6 104199 103908 103927 103928 104201 104327 6 104200 103928 103929 104202 104327 104328 6 104201 103929 103930 104203 104328 104329 6 104202 103930 104204 104329 104330 104331 6 104203 103930 103931 103932 104205 104331 6 104204 103932 103933 104206 104331 104332 6 104205 103933 103934 104207 104332 104333 7 104206 103934 103935 103937 104333 104334 104335 6 104050 104052 104209 104210 104211 104221 6 104050 104208 104210 104470 104049 104477 6 104209 104208 104211 104212 104477 104478 6 104210 104208 104212 104213 104220 104221 6 104210 104211 104213 104214 104478 104479 6 104212 104211 104214 104215 104216 104220 6 104212 104213 104215 104479 104480 104481 6 104214 104213 104216 104217 104481 104482 6 104215 104213 104217 104218 104219 104220 6 104215 104216 104218 104232 104482 104483 6 104217 104216 104219 104232 104233 104234 6 104218 104216 104220 104224 104234 104223 6 104219 104216 104213 104211 104221 104223 6 104220 104211 104208 104052 104222 104223 6 104221 104052 104053 104055 104056 104223 6 104222 104056 104224 104221 104220 104219 6 104223 104056 104057 104225 104234 104219 6 104224 104057 104226 104235 104234 104488 5 104225 104057 104058 104227 104488 7 104226 104058 104059 104228 104229 104487 104488 6 104227 104059 104229 104230 104062 104060 6 104227 104228 104230 104489 104487 104500 6 104229 104228 104062 104500 104501 104502 6 103147 103412 103146 103145 109791 103413 6 104217 104218 104233 104483 104484 104485 6 104232 104218 104234 104235 104485 104486 6 104233 104218 104235 104225 104224 104219 6 104233 104234 104225 104486 104487 104488 6 103889 103890 104237 104251 104252 104256 6 104236 103890 103891 103571 104256 104257 6 103956 103957 104239 107815 107816 104503 6 104238 103957 103803 104100 104240 104503 6 104239 104100 104241 104503 104504 104505 6 104240 104100 104101 104242 104505 104506 6 104241 104101 104102 104243 104416 104506 6 104242 104102 104244 104416 104417 104418 6 104243 104102 104103 104111 104245 104418 6 104244 104111 104246 104247 104418 104419 6 104245 104111 104247 104248 104249 104112 6 104245 104246 104248 104419 107829 107830 6 104247 104246 104249 104391 104739 107830 6 104248 104246 104112 104113 104114 104391 6 103341 103338 101524 101525 102205 102206 6 103889 104236 104252 104253 104428 103888 6 104251 104236 104253 104254 104255 104256 6 104251 104252 104254 104647 104428 106892 6 104253 104252 104255 104729 104730 106892 6 104254 104252 104256 104729 104261 104260 6 104255 104252 104236 104237 104257 104260 6 104256 104237 103571 103572 104258 104260 6 104257 103572 103573 103574 104259 104260 6 104258 103574 104260 104261 104262 104263 6 104258 104259 104261 104256 104257 104255 6 104260 104259 104262 104732 104729 104255 6 104261 104259 104263 106901 104732 106902 6 104262 104259 103574 103575 104264 106902 6 104263 103575 103576 104265 105231 106902 6 104264 103576 103577 104266 105231 105232 6 104265 103577 103578 104267 105232 105233 6 104266 103578 104268 105233 105234 104269 6 104267 103578 103579 103580 104141 104269 6 104268 104141 104270 105234 104267 105451 6 104269 104141 104142 104271 105451 105452 6 104270 104142 104143 104272 105452 105453 6 104271 104143 104144 104273 105453 105454 6 104272 104144 104145 104274 105457 105454 6 104273 104145 104146 104275 105469 105457 6 104274 104146 104147 104276 105469 105470 6 104275 104147 104148 104149 104277 105470 6 104276 104149 104278 105470 105471 105472 6 104277 104149 104150 104279 105472 105473 6 104278 104150 104151 104280 105473 105474 6 104279 104151 104152 104281 105046 105474 6 104280 104152 104153 104282 105046 105047 6 104281 104153 104154 104283 105047 105048 6 104282 104154 104155 104284 105048 105049 6 104283 104155 104156 104285 105049 105050 6 104284 104156 104157 104286 105050 105051 6 104285 104157 104158 104287 105051 105052 6 104286 104158 104159 104288 104923 105052 6 104287 104159 104160 104289 104923 104924 6 104288 104160 104161 104162 104290 104924 6 104289 104162 104291 104924 104925 104926 6 104290 104162 104163 104292 104926 104927 6 104291 104163 104164 104293 104927 104928 6 104292 104164 104165 104294 104928 104929 6 104293 104165 104166 104295 104929 104930 6 104294 104166 104167 104296 104930 104931 6 104295 104167 104168 104169 104297 104931 6 104296 104169 104298 104771 104931 104932 6 104297 104169 104170 104299 104771 104772 6 104298 104170 104171 104300 104772 104773 6 104299 104171 104172 104301 104773 104774 6 104300 104172 104173 104302 104774 104775 6 104301 104173 104174 104303 104775 104776 6 104302 104174 104175 104304 104776 104777 6 104303 104175 104176 104305 104777 104778 6 104304 104176 104177 104306 104778 104779 6 104305 104177 104178 104307 104779 104780 6 104306 104178 104179 104308 104780 104781 6 104307 104179 104180 104309 104781 104782 6 104308 104180 104181 104310 104566 104782 6 104309 104181 104182 104311 104566 104567 6 104310 104182 104183 104312 104567 104568 6 104311 104183 104184 104313 104568 104569 6 104312 104184 104185 104314 104569 104570 6 104313 104185 104186 104315 104570 104571 6 104314 104186 104187 104316 104571 104572 6 104315 104187 104188 104317 104572 104573 6 104316 104188 104189 104318 104573 104574 6 104317 104189 104190 104319 104574 104575 6 104318 104190 104191 104320 104575 104576 6 104319 104191 104192 104321 104576 104577 6 104320 104192 104193 104194 104322 104577 6 104321 104194 104195 104323 104577 104578 6 104322 104195 104324 104578 104579 104580 6 104323 104195 104196 104197 104325 104580 6 104324 104197 104326 104580 104581 104582 6 104325 104197 104198 104199 104327 104582 6 104326 104199 104200 104201 104328 104582 6 104327 104201 104202 104329 104582 104583 6 104328 104202 104203 104330 104583 104584 6 104329 104203 104331 104584 104585 104589 7 104330 104203 104204 104205 104332 104589 104590 6 104331 104205 104206 104333 104590 104591 6 104332 104206 104207 104334 104591 104592 6 104333 104207 104335 104336 104429 104592 5 104334 104207 103937 103938 104336 6 104335 103938 103939 104337 104334 104429 6 104336 103939 103940 104338 104429 104430 6 104337 103940 103941 104339 104430 104431 6 104338 103941 103942 104340 104431 104432 6 104339 103942 103943 104341 104432 104433 6 104340 103943 104342 104433 104434 104435 6 104341 103943 103375 103376 104343 104435 6 104342 103376 103377 104344 104345 104435 6 104343 103377 104345 104346 104347 103378 6 104343 104344 104346 104435 104436 104437 6 104345 104344 104347 104437 104438 104348 6 104346 104344 103378 103645 103646 104348 6 104347 103646 104349 104350 104438 104346 6 104348 103646 104350 104351 104352 103647 6 104348 104349 104351 104601 104438 104602 6 104350 104349 104352 104602 104603 104604 6 104351 104349 103647 103648 104353 104604 6 104352 103648 103657 104354 104355 104604 6 104353 103657 104355 104356 104357 104358 6 104353 104354 104356 104604 104605 104606 6 104355 104354 104357 104361 104362 104606 6 104356 104354 104358 104359 104360 104361 6 104357 104354 104359 104371 103658 103657 6 104357 104358 104360 104368 104369 104371 6 104357 104359 104361 104364 104368 104614 6 104357 104360 104356 104362 104363 104364 6 104356 104361 104363 104606 104607 104608 6 104362 104361 104364 104611 104608 104612 6 104363 104361 104360 104612 104613 104614 6 104097 104098 104366 104372 104373 104374 6 104365 104098 104367 104374 104375 104376 7 104366 104098 104099 103094 104376 101626 101624 6 104360 104359 104369 104370 104614 104615 6 104368 104359 104370 104371 109794 109793 6 104368 104369 109794 104642 104637 104615 6 104369 104359 104358 103658 109793 103659 6 104097 104365 104373 107212 103540 103541 6 104372 104365 104374 107212 107210 107209 6 104373 104365 104366 104375 107209 107213 6 104374 104366 104376 104377 107213 107214 6 104375 104366 104367 104377 101627 101626 5 104375 104376 101627 107214 107215 6 104091 104094 104379 104380 104381 104387 7 104091 104378 104380 107753 104090 107752 107754 6 104379 104378 104381 104382 107754 107755 6 104380 104378 104382 104383 104384 104387 6 104380 104381 104383 107755 107756 107764 6 104382 104381 104384 104385 104389 107764 6 104383 104381 104385 103140 104386 104387 6 104383 104384 103140 104389 104390 103141 6 103140 104384 104387 104095 104388 103139 6 104386 104384 104381 104378 104094 104095 6 104386 104095 102809 102810 102813 103139 6 104383 104385 104390 107764 107765 107766 6 104389 104385 103141 107766 107767 103142 6 104249 104114 104392 104248 104739 104740 6 104391 104114 104115 104393 104402 104740 6 104392 104115 104394 104402 104403 104404 6 104393 104115 104110 103464 104404 103465 5 104121 104123 104126 104396 109784 7 104395 104126 104397 104399 104528 104529 109784 6 104396 104126 104127 104130 104398 104399 6 104397 104130 104399 104400 104401 104132 6 104397 104398 104400 104525 104528 104396 5 104399 104398 104401 104527 104525 7 104400 104398 104132 104410 104534 104527 104535 6 104392 104393 104403 104740 104741 104742 6 104402 104393 104404 104742 104743 104744 6 104403 104393 104394 103465 104744 104745 6 103837 103838 103864 104406 105026 105027 6 104405 103864 104407 105027 105028 105029 6 104406 103864 103865 104408 105029 105030 6 104407 103865 103866 104409 105030 105031 6 104408 103866 103868 104420 105031 105032 6 104401 104132 104133 104411 104535 104536 6 104410 104133 104412 104545 104539 104536 6 104411 104133 104134 104413 104414 104545 6 104412 104134 104414 104415 107164 107165 6 104412 104413 104415 104545 104544 104648 6 104414 104413 104649 104648 107165 107166 6 104242 104243 104417 104506 104507 104508 6 104416 104243 104418 104508 104509 104510 6 104417 104243 104244 104245 104419 104510 6 104418 104245 104247 107828 104510 107829 6 104409 103868 103869 104421 105032 105033 6 104420 103869 103870 103871 104422 105033 6 104421 103871 104423 105033 105034 105035 6 104422 103871 103872 104424 105035 105036 6 104423 103872 103873 104425 104643 105036 6 104424 103873 104426 104643 104644 104645 6 104425 103873 103874 104427 104645 104646 6 104426 103874 103875 104428 104646 104647 6 104427 103875 103888 104647 104253 104251 6 104334 104336 104337 104430 104592 104593 6 104429 104337 104338 104431 104593 104594 6 104430 104338 104339 104432 104594 104595 6 104431 104339 104340 104433 104595 104596 6 104432 104340 104341 104434 104596 104597 6 104433 104341 104435 104597 104598 104436 6 104434 104341 104342 104343 104345 104436 6 104435 104345 104437 104598 104434 104599 6 104436 104345 104346 104438 104599 104600 6 104437 104346 104348 104600 104601 104350 6 103993 103994 104440 104721 104722 104723 6 104439 103994 103995 104441 104723 104724 6 104440 103995 103996 104442 104724 104725 6 104441 103996 103997 104443 104725 104726 6 104442 103997 103998 104444 104726 104727 6 104443 103998 103999 104445 104727 104728 6 104444 103999 104000 104446 104728 104658 6 104445 104000 104001 104070 104447 104658 6 104446 104070 104071 104448 104658 104659 6 104447 104071 104449 104659 104660 104450 6 104448 104071 104072 104073 104074 104450 6 104449 104074 104075 104451 104660 104448 6 104450 104075 104452 104669 104738 104660 6 104451 104075 104076 104077 104453 104669 6 104452 104077 104078 104454 104669 104670 6 104453 104078 104079 104455 104670 104671 6 104454 104079 104080 104456 104671 104672 6 104455 104080 104081 104457 104672 104673 6 104456 104081 104082 104458 104673 104674 6 104457 104082 104083 104459 104674 104675 6 104458 104083 104084 104460 104675 104676 6 104459 104084 104085 104461 104676 104677 6 104460 104085 104462 104677 104678 104679 7 104461 104085 104033 104034 104041 104463 104679 5 104462 104041 104464 104679 104680 6 104463 104041 104042 104465 104471 104680 6 104464 104042 104466 104471 104472 104473 6 104465 104042 104043 104467 104473 104474 6 104466 104043 104044 104468 104474 104475 6 104467 104044 104045 104469 104475 104476 6 104468 104045 104047 104048 104470 104476 6 104469 104048 104049 104209 104476 104477 6 104464 104465 104472 104680 104681 104682 6 104471 104465 104473 104682 104683 104684 6 104472 104465 104466 104474 104684 104685 6 104473 104466 104467 104475 104685 104686 6 104474 104467 104468 104476 104686 104687 6 104475 104468 104469 104470 104477 104687 6 104476 104470 104209 104210 104478 104687 6 104477 104210 104212 104479 104687 105213 6 104478 104212 104214 104480 105213 105214 6 104479 104214 104481 105214 105215 105216 6 104480 104214 104215 104482 104490 105216 6 104481 104215 104217 104483 104490 104491 6 104482 104217 104232 104484 104491 104492 6 104483 104232 104485 104492 104493 104494 6 104484 104232 104233 104486 104494 104495 6 104485 104233 104235 104487 104489 104495 6 104486 104235 104488 104227 104489 104229 5 104487 104235 104227 104226 104225 6 104486 104487 104229 104495 104496 104500 6 104481 104482 104491 104981 104989 105216 6 104490 104482 104483 104492 104981 104982 6 104491 104483 104484 104493 104982 104983 6 104492 104484 104494 104983 104984 104985 6 104493 104484 104485 104495 104985 104497 6 104494 104485 104486 104489 104496 104497 6 104495 104489 104497 104498 104499 104500 6 104495 104496 104498 104985 104494 104986 6 104497 104496 104499 104986 104987 104988 5 104498 104496 104500 104988 104511 7 104499 104496 104489 104229 104230 104501 104511 6 104500 104230 104502 104511 104512 104513 6 104501 104230 104062 104513 104067 104063 6 104239 104240 104504 107816 104238 107817 6 104503 104240 104505 107817 107818 107819 6 104504 104240 104241 104506 107819 107820 6 104505 104241 104242 104416 104507 107820 6 104506 104416 104508 107820 107821 107822 6 104507 104416 104417 104509 107822 107823 6 104508 104417 104510 107823 107824 107825 6 104509 104417 104418 107825 107828 104419 7 104500 104501 104512 104988 104499 105002 104999 6 104511 104501 104513 104754 104759 105002 5 104512 104501 104502 104067 104754 6 100426 100411 104515 104516 105611 105612 6 104514 100411 104516 104517 104521 100410 6 104514 104515 104517 104518 105611 105615 6 104516 104515 104518 104519 104520 104521 6 104516 104517 104519 109734 107508 105615 6 104518 104517 104520 105235 109734 109678 6 104519 104517 104521 105235 105236 105237 6 104520 104517 104515 100410 105237 100421 7 103507 103510 103770 104523 106693 106695 106704 6 104522 103770 104524 106694 106693 104532 6 104523 103770 103771 104525 104526 104532 7 104524 103771 104526 104527 104400 104399 104528 6 104524 104525 104527 104532 104533 104534 5 104526 104525 104400 104534 104401 6 104399 104525 103771 103772 104529 104396 6 104528 103772 103773 104530 104396 109784 6 104529 103773 104531 104116 104119 109784 5 104530 103773 104116 103521 103520 6 104524 104526 104533 105156 104523 106694 6 104532 104526 104534 105156 105157 104666 6 104533 104526 104527 104401 104535 104666 6 104534 104401 104410 104536 104537 104666 6 104535 104410 104537 104538 104539 104411 6 104535 104536 104538 104666 104667 104668 6 104537 104536 104539 104540 104546 104668 6 104538 104536 104540 104541 104545 104411 6 104538 104539 104541 104542 104546 104547 6 104540 104539 104542 104543 104544 104545 6 104540 104541 104543 104550 104547 104551 6 104542 104541 104544 104551 104552 104553 6 104543 104541 104545 104414 104648 104553 6 104544 104541 104539 104411 104412 104414 6 104538 104540 104547 104548 109762 104668 6 104546 104540 104548 104549 104550 104542 6 104546 104547 104549 104557 104560 109762 6 104548 104547 104550 104557 104558 104559 6 104549 104547 104542 104551 106763 104559 6 104550 104542 104543 104552 107144 106763 6 104551 104543 104553 104554 107145 107144 6 104552 104543 104554 104555 104544 104648 6 104552 104553 104555 104556 107145 107146 6 104554 104553 104556 104648 104649 107153 6 104554 104555 107146 107148 107149 107153 6 104548 104549 104558 104560 104561 104562 6 104557 104549 104559 104565 104562 106764 6 104558 104549 106763 106762 106764 104550 7 104548 104557 104561 109762 109761 106675 109792 6 104560 104557 104562 104563 106674 106675 6 104561 104557 104563 104564 104565 104558 6 104561 104562 104564 106665 106666 106674 6 104563 104562 104565 106673 106665 106790 6 104564 104562 104558 106764 106765 106790 6 104309 104310 104567 104782 104783 104784 6 104566 104310 104311 104568 104784 104785 6 104567 104311 104312 104569 104785 104786 6 104568 104312 104313 104570 104786 104787 6 104569 104313 104314 104571 104787 104788 6 104570 104314 104315 104572 104788 104789 6 104571 104315 104316 104573 104789 104790 6 104572 104316 104317 104574 104790 104791 6 104573 104317 104318 104575 104791 104792 6 104574 104318 104319 104576 104792 104793 6 104575 104319 104320 104577 104793 104794 6 104576 104320 104321 104322 104578 104794 6 104577 104322 104323 104579 104794 104795 6 104578 104323 104580 104795 104796 104797 6 104579 104323 104324 104325 104581 104797 6 104580 104325 104582 104797 104798 104583 6 104581 104325 104326 104327 104328 104583 6 104582 104328 104329 104584 104798 104581 7 104583 104329 104330 104585 104586 104804 104798 6 104584 104330 104586 104587 104588 104589 5 104584 104585 104587 104804 104805 6 104586 104585 104588 104805 104806 104807 6 104587 104585 104589 104807 104808 104809 6 104588 104585 104330 104331 104590 104809 5 104589 104331 104332 104591 104809 6 104590 104332 104333 104592 104809 104810 6 104591 104333 104334 104429 104593 104810 6 104592 104429 104430 104594 104810 104811 6 104593 104430 104431 104595 104811 104812 6 104594 104431 104432 104596 104812 104813 6 104595 104432 104433 104597 104813 104814 6 104596 104433 104434 104598 104814 104815 6 104597 104434 104436 104599 104815 104816 6 104598 104436 104437 104600 104816 104817 6 104599 104437 104438 104601 104817 104818 6 104600 104438 104350 104602 104821 104818 6 104601 104350 104351 104603 104821 104822 6 104602 104351 104604 104825 104822 104826 7 104603 104351 104352 104353 104355 104605 104826 5 104604 104355 104606 104826 104827 6 104605 104355 104356 104362 104607 104827 5 104606 104362 104608 104609 104827 6 104607 104362 104609 104610 104611 104363 7 104607 104608 104610 104827 104828 104829 104830 6 104609 104608 104611 104830 104831 104832 6 104610 104608 104363 104612 104832 104834 6 104611 104363 104364 104613 104837 104834 6 104612 104364 104614 104616 104617 104837 6 104613 104364 104360 104368 104615 104616 7 104614 104368 104616 104637 104634 104619 104370 6 104614 104615 104613 104617 104618 104619 6 104613 104616 104618 104837 104622 104838 6 104617 104616 104619 104620 104621 104622 6 104618 104616 104620 104633 104634 104615 6 104618 104619 104621 104628 104629 104633 6 104618 104620 104622 104623 104624 104628 6 104618 104621 104623 104840 104838 104617 6 104622 104621 104624 104625 104840 104841 6 104623 104621 104625 104626 104627 104628 6 104623 104624 104626 104841 104860 104853 6 104625 104624 104627 104860 104861 104862 6 104626 104624 104628 104862 104863 104630 6 104627 104624 104621 104620 104629 104630 6 104628 104620 104630 104631 104632 104633 6 104628 104629 104631 104863 104627 104864 6 104630 104629 104632 104638 104868 104864 6 104631 104629 104633 104638 104639 104635 6 104632 104629 104620 104619 104634 104635 6 104633 104619 104635 104636 104637 104615 6 104633 104634 104636 104639 104632 104640 6 104635 104634 104637 104640 104641 104642 5 104636 104634 104615 104642 104370 6 104631 104632 104639 104868 104912 109760 6 104638 104632 104635 104640 104912 104913 6 104639 104635 104636 104641 104916 104913 6 104640 104636 104642 104910 104916 104909 7 104641 104636 104637 104908 104909 109794 104370 6 104424 104425 104644 105036 105037 105044 6 104643 104425 104645 105045 105044 106889 6 104644 104425 104426 104646 106890 106889 6 104645 104426 104427 104647 106890 106891 6 104646 104427 104428 104253 106891 106892 6 104544 104414 104553 104555 104649 104415 6 104555 104648 104415 107166 107154 107153 6 100422 100052 100053 104651 104652 109684 6 104650 100053 104652 104653 104657 100054 6 104650 104651 104653 104654 109683 109684 6 104652 104651 104654 104655 104656 104657 6 104652 104653 104655 109682 109680 109683 6 104654 104653 104656 109682 109685 109686 7 104655 104653 104657 105380 109688 109686 109689 6 104656 104653 104651 100054 105380 100055 6 104446 104447 104659 104728 104445 104736 6 104658 104447 104448 104660 104736 104737 6 104659 104448 104450 104737 104738 104451 6 103895 103896 103897 104662 107841 104758 6 104661 103897 103898 104663 107841 107842 6 104662 103898 104664 107842 104689 104688 6 104663 103898 103899 104665 103685 104688 6 104664 103899 103900 103901 103902 103685 6 104534 104535 104537 104667 105157 104533 6 104666 104537 104668 109750 105157 109761 6 104667 104537 104538 109761 109762 104546 7 104451 104452 104453 104670 104980 104738 105194 6 104669 104453 104454 104671 105194 105195 6 104670 104454 104455 104672 105195 105196 6 104671 104455 104456 104673 105196 105197 6 104672 104456 104457 104674 105197 105198 6 104673 104457 104458 104675 105198 105199 6 104674 104458 104459 104676 105199 105200 6 104675 104459 104460 104677 105200 105201 6 104676 104460 104461 104678 105201 105202 6 104677 104461 104679 105202 105203 105204 6 104678 104461 104462 104463 104680 105204 7 104679 104463 104464 104471 104681 105204 105205 5 104680 104471 104682 105205 105206 7 104681 104471 104472 104683 105206 105207 105208 5 104682 104472 104684 105208 105209 7 104683 104472 104473 104685 105209 105210 105211 6 104684 104473 104474 104686 105211 105212 6 104685 104474 104475 104687 105212 105213 6 104686 104475 104476 104477 104478 105213 6 104664 103685 103686 103687 104689 104663 6 104688 103687 104690 107842 104663 107843 6 104689 103687 103688 104691 107843 107844 6 104690 103688 103689 104692 105158 107844 6 104691 103689 103690 103692 104693 105158 6 104692 103692 104694 105158 105159 105160 6 104693 103692 103693 104695 105160 105161 6 104694 103693 104696 105161 105162 105163 6 104695 103693 103694 103695 104697 105163 6 104696 103695 104698 105163 105164 105165 6 104697 103695 103696 104699 105165 104700 6 104698 103696 103697 103698 103972 104700 6 104699 103972 104701 105165 104698 107854 6 104700 103972 103973 103974 104702 107854 6 104701 103974 104703 107308 107854 107855 6 104702 103974 103975 104704 107308 107309 6 104703 103975 103976 104705 107309 107310 6 104704 103976 103977 104706 107310 107311 6 104705 103977 103978 104707 107311 107312 6 104706 103978 103979 104708 105170 107312 6 104707 103979 103980 104709 105170 105171 6 104708 103980 103981 104710 105171 105172 6 104709 103981 103982 104711 105172 105173 6 104710 103982 103983 104712 105173 105174 6 104711 103983 103984 104713 105174 105175 6 104712 103984 103985 104714 105175 105176 6 104713 103985 103986 104715 105176 105177 6 104714 103986 103987 104716 104965 105177 6 104715 103987 103988 104717 104965 104966 6 104716 103988 103989 104718 104966 104967 6 104717 103989 103990 104719 104967 104968 6 104718 103990 103991 104720 104968 104969 6 104719 103991 103992 104721 104969 104970 6 104720 103992 103993 104439 104722 104970 6 104721 104439 104723 104970 104971 104972 6 104722 104439 104440 104724 104972 104973 6 104723 104440 104441 104725 104973 104974 6 104724 104441 104442 104726 104733 104974 6 104725 104442 104443 104727 104733 104734 6 104726 104443 104444 104728 104734 104735 6 104727 104444 104445 104658 104735 104736 6 104254 104255 104730 104731 104732 104261 6 104254 104729 104731 106892 106893 106894 6 104730 104729 104732 106894 106895 106896 6 104731 104729 104261 106896 106901 104262 6 104725 104726 104734 104974 104975 104976 6 104733 104726 104727 104735 104976 104977 6 104734 104727 104728 104736 104977 104978 6 104735 104728 104658 104659 104737 104978 6 104736 104659 104660 104738 104978 104979 6 104737 104660 104451 104979 104980 104669 6 104248 104391 104740 105003 107830 107831 6 104739 104391 104392 104402 104741 105003 6 104740 104402 104742 104753 105003 105004 6 104741 104402 104403 104743 104753 104748 6 104742 104403 104744 103892 103893 104748 6 104743 104403 104404 104745 104746 103892 6 104744 104404 103465 103466 103468 104746 6 104745 103468 104747 103397 103892 104744 6 104746 103468 102172 102173 103395 103397 6 104743 103893 104749 104750 104753 104742 6 104748 103893 104750 104751 104752 103894 6 104748 104749 104751 105005 104753 107837 6 104750 104749 104752 104757 107837 107838 6 104751 104749 103894 104757 104758 103895 6 104741 104742 104748 105004 105005 104750 7 104513 104067 104068 104755 104512 104759 104760 5 104754 104068 104756 104760 104761 7 104755 104068 104069 103827 104761 104762 104763 6 104751 104752 104758 107838 107839 107840 6 104757 104752 103895 107840 107841 104661 6 104512 104754 104760 105006 105002 105001 5 104759 104754 104755 104761 105006 7 104760 104755 104756 104762 105006 105007 105008 6 104761 104756 104763 105008 105009 105010 6 104762 104756 103827 103828 104764 105010 6 104763 103828 104765 105010 105011 105012 6 104764 103828 103829 103830 104766 105012 6 104765 103830 103831 104767 104768 105012 6 104766 103831 104768 104769 104770 103832 7 104766 104767 104769 105012 105011 105013 105014 6 104768 104767 104770 105014 105015 105016 6 104769 104767 103832 105016 103834 103833 6 104297 104298 104772 104932 104933 104934 6 104771 104298 104299 104773 104934 104935 6 104772 104299 104300 104774 104935 104936 6 104773 104300 104301 104775 104936 104937 6 104774 104301 104302 104776 104937 104938 6 104775 104302 104303 104777 104938 104939 6 104776 104303 104304 104778 104939 104940 6 104777 104304 104305 104779 104940 104941 6 104778 104305 104306 104780 104941 104942 6 104779 104306 104307 104781 104942 104943 6 104780 104307 104308 104782 104943 104944 6 104781 104308 104309 104566 104783 104944 6 104782 104566 104784 104944 104945 104946 6 104783 104566 104567 104785 104946 104947 6 104784 104567 104568 104786 104947 104948 6 104785 104568 104569 104787 104948 104949 6 104786 104569 104570 104788 104949 104950 6 104787 104570 104571 104789 104950 104951 6 104788 104571 104572 104790 104951 104952 6 104789 104572 104573 104791 104952 104953 6 104790 104573 104574 104792 104953 104954 6 104791 104574 104575 104793 104799 104954 6 104792 104575 104576 104794 104799 104800 6 104793 104576 104577 104578 104795 104800 6 104794 104578 104579 104796 104800 104801 6 104795 104579 104797 104801 104802 104803 6 104796 104579 104580 104581 104798 104803 6 104797 104581 104583 104803 104804 104584 6 104792 104793 104800 104954 104955 104956 6 104799 104793 104794 104795 104801 104956 6 104800 104795 104796 104802 104956 104957 6 104801 104796 104803 104957 104958 104959 6 104802 104796 104797 104798 104804 104959 6 104803 104798 104584 104586 104805 104959 6 104804 104586 104587 104806 104918 104959 6 104805 104587 104807 104918 104919 104920 6 104806 104587 104588 104808 104920 104921 6 104807 104588 104809 104921 104922 104810 6 104808 104588 104589 104590 104591 104810 7 104809 104591 104592 104593 104811 104922 104808 5 104810 104593 104594 104812 104922 6 104811 104594 104595 104813 104964 104922 6 104812 104595 104596 104814 105093 104964 6 104813 104596 104597 104815 105093 105094 6 104814 104597 104598 104816 105094 105095 6 104815 104598 104599 104817 105095 105096 6 104816 104599 104600 104818 104819 105096 6 104817 104600 104819 104820 104821 104601 6 104817 104818 104820 105096 105097 105098 6 104819 104818 104821 105098 105099 104823 6 104820 104818 104601 104602 104822 104823 6 104821 104602 104823 104824 104825 104603 6 104821 104822 104824 105099 104820 105100 6 104823 104822 104825 105100 105101 105102 6 104824 104822 104603 104826 105102 105103 6 104825 104603 104604 104605 104827 105103 7 104826 104605 104606 104607 104609 104828 105103 6 104827 104609 104829 105103 105102 105104 6 104828 104609 104830 105104 105105 105106 6 104829 104609 104610 104831 105106 105107 6 104830 104610 104832 104833 105113 105107 5 104831 104610 104611 104833 104834 6 104831 104832 104834 104835 105113 105114 7 104833 104832 104611 104835 104836 104837 104612 6 104833 104834 104836 105114 104845 104844 6 104835 104834 104837 104838 104839 104844 6 104836 104834 104612 104613 104617 104838 6 104836 104837 104839 104840 104622 104617 6 104836 104838 104840 104842 104843 104844 6 104839 104838 104622 104623 104841 104842 6 104840 104623 104842 104625 104852 104853 6 104840 104841 104839 104843 104852 104850 6 104839 104842 104844 104845 104846 104850 5 104839 104843 104845 104835 104836 7 104844 104843 104846 104847 105114 104835 105115 6 104845 104843 104847 104848 104849 104850 6 104845 104846 104848 105117 105115 105118 6 104847 104846 104849 105118 105119 105120 6 104848 104846 104850 104851 105120 105121 6 104849 104846 104851 104852 104842 104843 6 104849 104850 104852 104854 104855 105121 6 104851 104850 104842 104841 104853 104854 6 104852 104841 104854 104857 104860 104625 6 104851 104852 104853 104855 104856 104857 6 104851 104854 104856 105121 105122 105123 6 104855 104854 104857 104858 105123 105124 6 104856 104854 104853 104858 104859 104860 6 104856 104857 104859 105124 105125 105129 6 104858 104857 104860 105129 105130 104861 6 104859 104857 104853 104625 104626 104861 6 104860 104626 104862 105130 104859 105131 6 104861 104626 104627 104863 104865 105131 6 104862 104627 104630 104864 104865 104866 6 104863 104630 104866 104867 104868 104631 6 104862 104863 104866 105131 105132 105136 6 104865 104863 104864 104867 105136 105137 6 104866 104864 104868 104869 104870 105137 6 104867 104864 104631 104638 104869 109760 6 104867 104868 104870 104871 104872 109760 6 104867 104869 104871 105137 105138 105139 6 104870 104869 104872 104873 105150 105139 6 104871 104869 104873 104874 104875 109760 6 104871 104872 104874 105149 105147 105150 6 104873 104872 104875 104876 104877 105149 6 104874 104872 104876 109760 104912 104914 6 104874 104875 104877 104878 104879 104914 6 104874 104876 104878 105155 105149 104882 6 104877 104876 104879 104880 104881 104882 6 104878 104876 104880 104914 104915 109753 7 104878 104879 104881 109753 109754 109756 109757 6 104878 104880 104882 104883 104884 109757 6 104878 104881 104883 105155 104877 105369 6 104882 104881 104884 104885 105369 105370 6 104883 104881 104885 104886 109757 104895 6 104883 104884 104886 104887 104888 105370 6 104885 104884 104887 104894 104891 104895 6 104885 104886 104888 104889 104890 104891 6 104885 104887 104889 105372 105370 105899 6 104888 104887 104890 105898 105896 105899 6 104889 104887 104891 104892 105898 105901 6 104890 104887 104892 104893 104894 104886 6 104890 104891 104893 105901 105902 105903 6 104892 104891 104894 105912 105903 105913 6 104893 104891 104886 104895 104896 105913 7 104894 104886 104896 104897 109757 109756 104884 6 104894 104895 104897 104898 104899 105913 5 104896 104895 104898 109756 109759 6 104896 104897 104899 104900 104901 109759 6 104896 104898 104900 105913 105914 105917 6 104899 104898 104901 104902 105917 105918 6 104900 104898 104902 104903 104904 109759 6 104900 104901 104903 105918 103671 103670 6 104902 104901 104904 104905 103669 103670 6 104903 104901 104905 109754 104911 109759 6 104903 104904 103669 104906 104907 104911 6 103669 104905 104907 104908 103661 103660 6 104906 104905 104908 104909 104910 104911 7 104906 104907 104909 104642 103660 109793 109794 5 104908 104907 104910 104642 104641 6 104909 104907 104911 104917 104916 104641 6 104910 104907 104905 109754 104917 104904 6 104638 104639 104913 104914 109760 104875 6 104912 104639 104914 104915 104916 104640 6 104912 104913 104915 104875 104876 104879 6 104914 104913 104916 104917 109753 104879 6 104915 104913 104917 104910 104641 104640 6 104915 104916 104910 109753 109754 104911 6 104805 104806 104919 104959 104958 104960 6 104918 104806 104920 104960 104961 104962 6 104919 104806 104807 104921 104962 104963 6 104920 104807 104808 104922 104963 104964 6 104921 104808 104810 104964 104812 104811 6 104287 104288 104924 105052 105053 105054 6 104923 104288 104289 104290 104925 105054 6 104924 104290 104926 105054 105055 105056 6 104925 104290 104291 104927 105056 105057 6 104926 104291 104292 104928 105057 105058 6 104927 104292 104293 104929 105058 105059 6 104928 104293 104294 104930 105059 105060 6 104929 104294 104295 104931 105060 105061 6 104930 104295 104296 104297 104932 105061 6 104931 104297 104771 104933 105061 105062 6 104932 104771 104934 105062 105063 105064 6 104933 104771 104772 104935 105064 105065 6 104934 104772 104773 104936 105065 105066 6 104935 104773 104774 104937 105066 105067 6 104936 104774 104775 104938 105067 105068 6 104937 104775 104776 104939 105068 105069 6 104938 104776 104777 104940 105069 105070 6 104939 104777 104778 104941 105070 105071 6 104940 104778 104779 104942 105071 105072 6 104941 104779 104780 104943 105072 105073 6 104942 104780 104781 104944 105073 105074 6 104943 104781 104782 104783 104945 105074 6 104944 104783 104946 105074 105075 105076 6 104945 104783 104784 104947 105076 105077 6 104946 104784 104785 104948 105077 105078 6 104947 104785 104786 104949 105078 105079 6 104948 104786 104787 104950 105079 105080 6 104949 104787 104788 104951 105080 105081 6 104950 104788 104789 104952 105081 105082 6 104951 104789 104790 104953 105082 105083 6 104952 104790 104791 104954 105083 105084 6 104953 104791 104792 104799 104955 105084 6 104954 104799 104956 105084 105085 105086 6 104955 104799 104800 104801 104957 105086 6 104956 104801 104802 104958 105088 105086 6 104957 104802 104959 104918 104960 105088 6 104958 104802 104803 104804 104805 104918 6 104958 104918 104919 104961 105088 105089 6 104960 104919 104962 105089 105090 105091 6 104961 104919 104920 104963 105091 105092 6 104962 104920 104921 104964 105092 105093 6 104963 104921 104922 104812 105093 104813 6 104715 104716 104966 105177 105178 105179 6 104965 104716 104717 104967 105179 105180 6 104966 104717 104718 104968 105180 105181 6 104967 104718 104719 104969 105181 105182 6 104968 104719 104720 104970 105182 105183 6 104969 104720 104721 104722 104971 105183 6 104970 104722 104972 105183 105184 105185 6 104971 104722 104723 104973 105185 105186 6 104972 104723 104724 104974 105186 105187 6 104973 104724 104725 104733 104975 105187 6 104974 104733 104976 105187 105188 105189 6 104975 104733 104734 104977 105189 105190 6 104976 104734 104735 104978 105190 105191 6 104977 104735 104736 104737 104979 105191 6 104978 104737 104738 104980 105191 105192 6 104979 104738 104669 105192 105193 105194 6 104490 104491 104982 104989 104990 104991 6 104981 104491 104492 104983 104991 104992 6 104982 104492 104493 104984 104992 104993 6 104983 104493 104985 104993 104994 104995 6 104984 104493 104494 104497 104986 104995 6 104985 104497 104498 104987 104995 104996 6 104986 104498 104988 104996 104997 104998 6 104987 104498 104499 104511 104998 104999 6 104490 104981 104990 105216 105217 105218 6 104989 104981 104991 105218 105219 105220 6 104990 104981 104982 104992 105220 105221 6 104991 104982 104983 104993 105221 105222 6 104992 104983 104984 104994 105222 105223 6 104993 104984 104995 105223 105224 105225 6 104994 104984 104985 104986 104996 105225 6 104995 104986 104987 104997 105225 105226 6 104996 104987 104998 105226 105227 105228 6 104997 104987 104988 104999 105000 105228 6 104998 104988 105000 105001 105002 104511 6 104998 104999 105001 105228 105229 105230 7 105000 104999 105002 104759 105006 105166 105230 5 105001 104999 104511 104512 104759 6 104739 104740 104741 105004 107831 107834 6 105003 104741 104753 105005 107834 107835 6 105004 104753 104750 107835 107836 107837 7 104759 104760 104761 105007 105021 105001 105166 6 105006 104761 105008 105021 105022 105023 6 105007 104761 104762 105009 105023 105018 6 105008 104762 105010 105011 105017 105018 5 105009 104762 104763 104764 105011 7 105010 104764 105012 104768 105013 105009 105017 5 105011 104764 104765 104766 104768 6 105011 104768 105014 105020 105017 105241 6 105013 104768 104769 105015 105241 105242 6 105014 104769 105016 105242 105243 105024 5 105015 104769 104770 103834 105024 6 105009 105011 105018 105019 105020 105013 7 105009 105017 105019 105023 105008 105238 106833 6 105018 105017 105020 105238 105239 105240 5 105019 105017 105013 105240 105241 5 105006 105007 105022 105166 105167 6 105021 105007 105023 105167 105168 105169 6 105022 105007 105008 105018 105169 106833 7 105016 103834 103835 105025 105243 105015 105244 6 105024 103835 103836 105026 105244 105245 6 105025 103836 103837 104405 105027 105245 6 105026 104405 104406 105028 105245 105246 6 105027 104406 105029 105249 105246 106844 6 105028 104406 104407 105030 106844 106845 6 105029 104407 104408 105031 106845 106846 6 105030 104408 104409 105032 106849 106846 6 105031 104409 104420 105033 106849 106850 6 105032 104420 104421 104422 105034 106850 6 105033 104422 105035 106850 106851 106852 6 105034 104422 104423 105036 106852 105038 6 105035 104423 104424 104643 105037 105038 6 105036 104643 105038 105039 105040 105044 6 105036 105037 105039 106852 105035 106853 6 105038 105037 105040 105041 106856 106853 6 105039 105037 105041 105042 105043 105044 6 105039 105040 105042 106858 106856 106863 6 105041 105040 105043 106878 106879 106863 6 105042 105040 105044 105045 106880 106878 6 105043 105040 105045 104644 104643 105037 6 105043 105044 104644 106880 106881 106889 6 104280 104281 105047 105474 105475 105476 6 105046 104281 104282 105048 105476 105477 6 105047 104282 104283 105049 105477 105478 6 105048 104283 104284 105050 105478 105479 6 105049 104284 104285 105051 105479 105480 6 105050 104285 104286 105052 105480 105481 6 105051 104286 104287 104923 105053 105481 6 105052 104923 105054 105481 105482 105483 6 105053 104923 104924 104925 105055 105483 6 105054 104925 105056 105483 105484 105485 6 105055 104925 104926 105057 105485 105486 6 105056 104926 104927 105058 105486 105487 6 105057 104927 104928 105059 105487 105488 6 105058 104928 104929 105060 105488 105489 6 105059 104929 104930 105061 105489 105490 6 105060 104930 104931 104932 105062 105490 6 105061 104932 104933 105063 105490 105491 6 105062 104933 105064 105250 105491 105492 6 105063 104933 104934 105065 105250 105251 6 105064 104934 104935 105066 105251 105252 6 105065 104935 104936 105067 105252 105253 6 105066 104936 104937 105068 105253 105254 6 105067 104937 104938 105069 105254 105255 6 105068 104938 104939 105070 105255 105256 6 105069 104939 104940 105071 105256 105257 6 105070 104940 104941 105072 105257 105258 6 105071 104941 104942 105073 105258 105259 6 105072 104942 104943 105074 105259 105260 6 105073 104943 104944 104945 105075 105260 6 105074 104945 105076 105260 105261 105262 6 105075 104945 104946 105077 105262 105263 6 105076 104946 104947 105078 105263 105264 6 105077 104947 104948 105079 105264 105265 6 105078 104948 104949 105080 105265 105266 6 105079 104949 104950 105081 105266 105267 6 105080 104950 104951 105082 105267 105268 6 105081 104951 104952 105083 105268 105269 6 105082 104952 104953 105084 105269 105270 6 105083 104953 104954 104955 105085 105270 6 105084 104955 105086 105087 105270 105271 6 105085 104955 104956 105087 105088 104957 6 105085 105086 105088 105271 105272 105089 6 105087 105086 104957 104958 104960 105089 6 105088 104960 104961 105090 105272 105087 6 105089 104961 105091 105272 105273 105274 6 105090 104961 104962 105092 105274 105275 6 105091 104962 104963 105093 105275 105276 7 105092 104963 104964 104813 104814 105094 105276 6 105093 104814 104815 105095 105276 105277 6 105094 104815 104816 105096 105277 105278 6 105095 104816 104817 104819 105097 105278 6 105096 104819 105098 105278 105279 105280 6 105097 104819 104820 105099 105280 105281 6 105098 104820 104823 105100 105281 105282 6 105099 104823 104824 105101 105282 105152 6 105100 104824 105102 105104 105151 105152 6 105101 104824 104825 105103 104828 105104 5 105102 104825 104826 104827 104828 6 105102 104828 104829 105105 105101 105151 7 105104 104829 105106 105154 105151 105287 105288 6 105105 104829 104830 105107 105108 105288 6 105106 104830 105108 105109 105113 104831 6 105106 105107 105109 105110 105288 105289 6 105108 105107 105110 105111 105112 105113 6 105108 105109 105111 105289 105290 105294 6 105110 105109 105112 105294 105295 105116 6 105111 105109 105113 105114 105115 105116 6 105112 105109 105107 104831 104833 105114 6 105113 104833 104835 104845 105115 105112 6 105114 104845 105112 105116 105117 104847 6 105112 105115 105117 105295 105111 105296 6 105116 105115 104847 105118 105299 105296 6 105117 104847 104848 105119 105299 105300 6 105118 104848 105120 105300 105301 105302 5 105119 104848 104849 105121 105302 6 105120 104849 104851 104855 105122 105302 6 105121 104855 105123 105318 105302 105319 6 105122 104855 104856 105124 105321 105319 6 105123 104856 104858 105125 105126 105321 6 105124 104858 105126 105127 105128 105129 6 105124 105125 105127 105322 105321 105323 6 105126 105125 105128 105323 105324 105328 6 105127 105125 105129 105336 105328 105337 6 105128 105125 104858 104859 105130 105337 6 105129 104859 104861 105131 105337 105338 7 105130 104861 104862 104865 105132 105133 105338 6 105131 104865 105133 105134 105135 105136 5 105131 105132 105134 105338 105339 6 105133 105132 105135 105339 105340 105341 6 105134 105132 105136 105346 105344 105341 6 105135 105132 104865 104866 105137 105346 6 105136 104866 104867 104870 105138 105346 6 105137 104870 105139 105140 105344 105346 6 105138 104870 105140 105141 104871 105150 6 105138 105139 105141 105142 105345 105344 6 105140 105139 105142 105143 105144 105150 6 105140 105141 105143 105345 105360 105359 7 105142 105141 105144 105145 105360 105357 105361 6 105143 105141 105145 105146 105147 105150 6 105143 105144 105146 105361 105362 105366 5 105145 105144 105147 105148 105366 6 105146 105144 105148 105149 104873 105150 7 105146 105147 105149 105155 105366 105367 105368 6 105148 105147 104873 105155 104877 104874 6 104873 105147 104871 105139 105141 105144 6 105101 105104 105152 105153 105154 105105 6 105101 105151 105153 105282 105100 105283 6 105152 105151 105154 105283 105284 105285 6 105153 105151 105105 105285 105286 105287 6 105148 105149 104877 104882 105368 105369 7 104532 104533 105157 106682 106683 106684 106694 6 105156 104533 104666 106682 109750 104667 5 104691 104692 104693 105159 107844 7 105158 104693 105160 107844 107845 107846 107847 6 105159 104693 104694 105161 107847 107848 6 105160 104694 104695 105162 107848 107849 6 105161 104695 105163 107849 107850 107851 6 105162 104695 104696 104697 105164 107851 6 105163 104697 105165 107851 107852 107853 6 105164 104697 104698 104700 107853 107854 5 105001 105006 105021 105167 105230 8 105166 105021 105022 105168 105229 105230 106826 106824 6 105167 105022 105169 106826 106827 106830 7 105168 105022 105023 106830 106831 106832 106833 6 104707 104708 105171 107312 107313 107314 6 105170 104708 104709 105172 107314 107315 6 105171 104709 104710 105173 107315 107316 6 105172 104710 104711 105174 107316 107317 6 105173 104711 104712 105175 107317 107318 6 105174 104712 104713 105176 107318 107319 6 105175 104713 104714 105177 107319 107320 6 105176 104714 104715 104965 105178 107320 6 105177 104965 105179 107320 107321 107322 6 105178 104965 104966 105180 107322 107323 6 105179 104966 104967 105181 105411 107323 6 105180 104967 104968 105182 105411 105412 6 105181 104968 104969 105183 105412 105413 6 105182 104969 104970 104971 105184 105413 6 105183 104971 105185 105413 105414 105415 6 105184 104971 104972 105186 105403 105415 6 105185 104972 104973 105187 105403 105404 6 105186 104973 104974 104975 105188 105404 6 105187 104975 105189 105404 105405 105406 6 105188 104975 104976 105190 105406 105407 6 105189 104976 104977 105191 105407 105408 6 105190 104977 104978 104979 105192 105408 6 105191 104979 104980 105193 105408 105409 6 105192 104980 105194 105409 105410 105195 5 105193 104980 104669 104670 105195 6 105194 104670 104671 105196 105410 105193 7 105195 104671 104672 105197 105423 105410 105431 5 105196 104672 104673 105198 105431 7 105197 104673 104674 105199 105431 105432 105433 6 105198 104674 104675 105200 105433 105434 6 105199 104675 104676 105201 105434 105435 6 105200 104676 104677 105202 105435 105436 6 105201 104677 104678 105203 105436 105437 6 105202 104678 105204 105437 105438 105439 6 105203 104678 104679 104680 105205 105439 5 105204 104680 104681 105206 105439 7 105205 104681 104682 105207 105439 105440 105441 6 105206 104682 105208 105441 105442 105443 6 105207 104682 104683 105209 105424 105443 7 105208 104683 104684 105210 105424 105425 105426 5 105209 104684 105211 105426 105427 7 105210 104684 104685 105212 105427 105215 105214 5 105211 104685 104686 105213 105214 6 105212 104686 104687 104478 104479 105214 6 105213 104479 104480 105215 105211 105212 6 105214 104480 105216 105427 105211 105217 6 105215 104480 104481 104490 104989 105217 7 105216 104989 105218 105447 105427 105215 106810 6 105217 104989 104990 105219 106810 106811 6 105218 104990 105220 106811 106812 106813 6 105219 104990 104991 105221 106813 106814 5 105220 104991 104992 105222 106814 7 105221 104992 104993 105223 106814 106815 106816 5 105222 104993 104994 105224 106816 7 105223 104994 105225 106816 106817 106818 106819 6 105224 104994 104995 104996 105226 106819 6 105225 104996 104997 105227 106819 106820 6 105226 104997 105228 106820 106821 106822 6 105227 104997 104998 105000 105229 106822 7 105228 105000 105230 105167 106822 106823 106824 5 105229 105000 105167 105166 105001 6 104264 104265 105232 106902 106903 105458 6 105231 104265 104266 105233 105448 105458 6 105232 104266 104267 105234 105448 105449 6 105233 104267 104269 105449 105450 105451 6 104519 104520 105236 109677 109678 109679 6 105235 104520 105237 109679 109683 109684 6 105236 104520 104521 100422 109684 100421 6 105018 105019 105239 106832 106833 106834 6 105238 105019 105240 105648 106834 106835 6 105239 105019 105020 105241 105648 105649 7 105240 105020 105013 105014 105242 105649 105650 5 105241 105014 105015 105243 105650 7 105242 105015 105024 105244 105652 105650 105653 6 105243 105024 105025 105245 105653 105247 6 105244 105025 105026 105027 105246 105247 6 105245 105027 105247 105248 105249 105028 6 105245 105246 105248 105653 105244 106840 6 105247 105246 105249 106841 106840 106842 6 105248 105246 105028 106842 106843 106844 6 105063 105064 105251 105492 105493 105494 6 105250 105064 105065 105252 105494 105495 6 105251 105065 105066 105253 105495 105496 6 105252 105066 105067 105254 105496 105497 6 105253 105067 105068 105255 105497 105498 6 105254 105068 105069 105256 105498 105499 6 105255 105069 105070 105257 105499 105500 6 105256 105070 105071 105258 105500 105501 6 105257 105071 105072 105259 105501 105502 6 105258 105072 105073 105260 105502 105503 6 105259 105073 105074 105075 105261 105503 6 105260 105075 105262 105503 105504 105505 6 105261 105075 105076 105263 105505 105506 6 105262 105076 105077 105264 105506 105507 6 105263 105077 105078 105265 105507 105508 6 105264 105078 105079 105266 105508 105509 6 105265 105079 105080 105267 105509 105510 6 105266 105080 105081 105268 105510 105511 6 105267 105081 105082 105269 105511 105512 6 105268 105082 105083 105270 105512 105513 6 105269 105083 105084 105085 105271 105513 6 105270 105085 105087 105272 105513 105514 6 105271 105087 105089 105090 105273 105514 6 105272 105090 105274 105514 105515 105516 6 105273 105090 105091 105275 105519 105516 6 105274 105091 105092 105276 105519 105277 5 105275 105092 105093 105094 105277 6 105276 105094 105095 105278 105519 105275 6 105277 105095 105096 105097 105279 105519 6 105278 105097 105280 105519 105518 105520 6 105279 105097 105098 105281 105520 105377 6 105280 105098 105099 105282 105376 105377 6 105281 105099 105100 105152 105283 105376 6 105282 105152 105153 105284 105379 105376 6 105283 105153 105285 105524 105379 105525 6 105284 105153 105154 105286 105525 105526 6 105285 105154 105287 105526 105527 105291 6 105286 105154 105105 105288 105291 105289 5 105287 105105 105106 105108 105289 6 105288 105108 105110 105290 105291 105287 6 105289 105110 105291 105292 105293 105294 7 105289 105290 105292 105527 105286 105287 105528 6 105291 105290 105293 105528 105529 105533 5 105292 105290 105294 105533 105534 6 105293 105290 105110 105111 105295 105534 6 105294 105111 105116 105296 105297 105534 6 105295 105116 105297 105298 105299 105117 6 105295 105296 105298 105534 105535 105542 6 105297 105296 105299 105542 105543 105544 6 105298 105296 105117 105118 105300 105544 6 105299 105118 105119 105301 105304 105544 6 105300 105119 105302 105303 105304 105305 7 105301 105119 105303 105318 105122 105120 105121 6 105301 105302 105308 105305 105309 105318 6 105300 105301 105305 105306 105543 105544 6 105304 105301 105306 105307 105308 105303 6 105304 105305 105307 105543 105545 105546 6 105306 105305 105308 105311 105312 105546 6 105307 105305 105303 105309 105310 105311 6 105308 105303 105310 105316 105317 105318 6 105308 105309 105311 105314 105315 105316 6 105308 105310 105307 105312 105313 105314 6 105307 105311 105313 105546 105547 105548 6 105312 105311 105314 105548 105549 105550 6 105313 105311 105310 105315 105553 105550 6 105314 105310 105316 105555 105553 105558 6 105315 105310 105309 105317 105558 105559 6 105316 105309 105318 105319 105320 105559 6 105317 105309 105303 105302 105122 105319 6 105318 105122 105317 105320 105321 105123 6 105317 105319 105321 105322 105559 105560 6 105320 105319 105322 105126 105124 105123 6 105320 105321 105126 105323 105560 105561 6 105322 105126 105127 105324 105325 105561 6 105323 105127 105325 105326 105327 105328 6 105323 105324 105326 105561 105562 105563 6 105325 105324 105327 105572 105563 105573 6 105326 105324 105328 105329 105330 105573 6 105327 105324 105329 105336 105128 105127 6 105327 105328 105330 105331 105332 105336 6 105327 105329 105331 105573 105574 105575 6 105330 105329 105332 105333 105575 105576 6 105331 105329 105333 105334 105335 105336 6 105331 105332 105334 105576 105577 105578 6 105333 105332 105335 105578 105340 105339 6 105334 105332 105336 105337 105338 105339 6 105335 105332 105329 105328 105128 105337 6 105336 105128 105129 105130 105335 105338 6 105335 105337 105130 105131 105133 105339 6 105338 105133 105134 105340 105334 105335 6 105339 105134 105341 105342 105578 105334 6 105340 105134 105342 105343 105344 105135 6 105340 105341 105343 105348 105349 105578 6 105342 105341 105344 105345 105347 105348 7 105343 105341 105345 105140 105138 105346 105135 6 105343 105344 105140 105142 105347 105359 5 105138 105344 105135 105136 105137 6 105343 105345 105348 105351 105352 105359 6 105343 105347 105342 105349 105350 105351 6 105342 105348 105350 105578 105577 105579 6 105349 105348 105351 105579 105580 105584 6 105350 105348 105347 105352 105353 105584 6 105351 105347 105353 105354 105355 105359 6 105351 105352 105354 105608 105584 105609 6 105353 105352 105355 105356 105807 105609 6 105354 105352 105356 105357 105359 105360 6 105354 105355 105357 105358 105807 105808 6 105356 105355 105358 105360 105143 105361 7 105356 105357 105808 105809 105810 105363 105361 6 105355 105352 105347 105360 105142 105345 5 105355 105359 105142 105143 105357 6 105357 105143 105145 105362 105363 105358 6 105361 105145 105363 105364 105365 105366 5 105361 105362 105364 105810 105358 6 105363 105362 105365 105810 105811 105402 7 105364 105362 105366 105402 105401 105367 105375 6 105365 105362 105145 105146 105148 105367 6 105366 105148 105368 105374 105365 105375 6 105367 105148 105155 105369 105371 105374 6 105368 105155 104882 104883 105370 105371 6 105369 104883 105371 105372 104888 104885 6 105369 105370 105372 105373 105374 105368 6 105371 105370 105373 104888 105393 105899 6 105371 105372 105374 105375 105392 105393 5 105371 105373 105375 105368 105367 6 105374 105373 105392 105365 105367 105401 6 105281 105282 105377 105378 105379 105283 6 105281 105376 105378 105520 105280 105521 6 105377 105376 105379 105521 105522 105523 6 105378 105376 105283 105523 105524 105284 6 104656 104657 100055 109689 100430 100056 6 101679 101680 101678 105382 105383 101682 6 101678 105381 105383 105384 107779 103415 6 105382 105381 105384 105385 103774 101682 6 105382 105383 105385 105386 107779 107780 6 105384 105383 105386 105387 105391 103774 6 105384 105385 105387 105388 107780 107781 6 105386 105385 105388 105389 105390 105391 6 105386 105387 105389 105616 107781 107782 6 105388 105387 105390 105616 105617 105618 6 105389 105387 105391 105618 105619 105620 6 105390 105387 105385 103774 105620 103775 6 105375 105373 105393 105394 105401 105398 6 105392 105373 105394 105372 105395 105899 6 105392 105393 105395 105396 105397 105398 5 105394 105393 105396 105899 105894 6 105394 105395 105397 105893 105890 105894 6 105394 105396 105398 105399 105889 105890 6 105394 105397 105399 105400 105401 105392 6 105398 105397 105400 105880 105888 105889 7 105398 105399 105401 105402 105887 105881 105880 6 105398 105400 105402 105365 105375 105392 6 105401 105400 105887 105811 105364 105365 6 105185 105186 105404 105415 105416 105417 6 105403 105186 105187 105188 105405 105417 6 105404 105188 105406 105417 105418 105419 6 105405 105188 105189 105407 105419 105420 6 105406 105189 105190 105408 105420 105421 6 105407 105190 105191 105192 105409 105421 6 105408 105192 105193 105410 105421 105422 6 105409 105193 105195 105422 105423 105196 6 105180 105181 105412 107323 107324 107325 6 105411 105181 105182 105413 107325 107326 6 105412 105182 105183 105184 105414 107326 6 105413 105184 105415 107326 107327 107328 6 105414 105184 105185 105403 105416 107328 6 105415 105403 105417 107328 107329 107330 6 105416 105403 105404 105405 105418 107330 6 105417 105405 105419 106791 107330 107331 6 105418 105405 105406 105420 106791 106792 6 105419 105406 105407 105421 105428 106792 6 105420 105407 105408 105409 105422 105428 6 105421 105409 105410 105423 105428 105429 6 105422 105410 105196 105429 105430 105431 6 105208 105209 105425 105443 105444 105445 6 105424 105209 105426 105445 105446 105447 5 105425 105209 105210 105427 105447 6 105426 105210 105211 105215 105447 105217 6 105420 105421 105422 105429 106792 106793 6 105428 105422 105423 105430 106793 106794 6 105429 105423 105431 106794 106795 105432 6 105430 105423 105196 105197 105198 105432 5 105431 105198 105433 106795 105430 6 105432 105198 105199 105434 106795 106796 6 105433 105199 105200 105435 106796 106797 6 105434 105200 105201 105436 106797 106798 6 105435 105201 105202 105437 106798 106799 6 105436 105202 105203 105438 106799 106800 6 105437 105203 105439 106800 106801 106802 7 105438 105203 105204 105205 105206 105440 106802 5 105439 105206 105441 106802 106803 6 105440 105206 105207 105442 106803 106804 6 105441 105207 105443 106804 106805 105444 5 105442 105207 105208 105424 105444 6 105443 105424 105445 106805 105442 106806 6 105444 105424 105425 105446 106806 106807 6 105445 105425 105447 106807 106808 106809 7 105446 105425 105426 105427 105217 106809 106810 6 105232 105233 105449 105458 105459 105460 6 105448 105233 105234 105450 105460 105461 6 105449 105234 105451 105461 105462 105463 6 105450 105234 104269 104270 105452 105463 6 105451 104270 104271 105453 105463 105464 6 105452 104271 104272 105454 105455 105464 6 105453 104272 105455 105456 105457 104273 6 105453 105454 105456 105464 105465 105466 6 105455 105454 105457 105466 105467 105468 6 105456 105454 104273 105468 105469 104274 6 105232 105448 105459 106903 105231 106904 6 105458 105448 105460 106904 106905 106906 6 105459 105448 105449 105461 106906 106907 6 105460 105449 105450 105462 106907 106908 6 105461 105450 105463 106908 106909 106910 6 105462 105450 105451 105452 105464 106910 6 105463 105452 105453 105455 105465 106910 6 105464 105455 105466 106910 106911 106912 6 105465 105455 105456 105467 106912 106913 6 105466 105456 105468 106913 106914 106915 6 105467 105456 105457 105469 106915 106916 6 105468 105457 104274 104275 105470 106916 6 105469 104275 104276 104277 105471 106916 6 105470 104277 105472 106916 106917 106918 6 105471 104277 104278 105473 106918 106919 6 105472 104278 104279 105474 106919 106920 6 105473 104279 104280 105046 105475 106920 6 105474 105046 105476 106920 106921 106922 6 105475 105046 105047 105477 106922 106923 6 105476 105047 105048 105478 106923 106924 6 105477 105048 105049 105479 106924 106925 6 105478 105049 105050 105480 106925 106926 6 105479 105050 105051 105481 105654 106926 6 105480 105051 105052 105053 105482 105654 6 105481 105053 105483 105654 105655 105656 6 105482 105053 105054 105055 105484 105656 6 105483 105055 105485 105656 105657 105658 6 105484 105055 105056 105486 105658 105659 6 105485 105056 105057 105487 105659 105660 6 105486 105057 105058 105488 105660 105661 6 105487 105058 105059 105489 105621 105661 6 105488 105059 105060 105490 105621 105622 6 105489 105060 105061 105062 105491 105622 6 105490 105062 105063 105492 105622 105623 6 105491 105063 105250 105493 105623 105624 6 105492 105250 105494 105624 105625 105626 6 105493 105250 105251 105495 105626 105627 6 105494 105251 105252 105496 105627 105628 6 105495 105252 105253 105497 105628 105629 6 105496 105253 105254 105498 105629 105630 6 105497 105254 105255 105499 105630 105631 6 105498 105255 105256 105500 105631 105632 6 105499 105256 105257 105501 105632 105633 6 105500 105257 105258 105502 105633 105634 6 105501 105258 105259 105503 105634 105635 6 105502 105259 105260 105261 105504 105635 6 105503 105261 105505 105635 105636 105637 6 105504 105261 105262 105506 105637 105638 6 105505 105262 105263 105507 105638 105639 6 105506 105263 105264 105508 105639 105640 6 105507 105264 105265 105509 105640 105641 6 105508 105265 105266 105510 105641 105642 6 105509 105266 105267 105511 105642 105643 6 105510 105267 105268 105512 105643 105644 6 105511 105268 105269 105513 105644 105645 6 105512 105269 105270 105271 105514 105645 6 105513 105271 105272 105273 105515 105645 6 105514 105273 105516 105517 105645 105646 6 105515 105273 105517 105518 105519 105274 6 105515 105516 105518 105646 105647 105520 5 105517 105516 105519 105279 105520 7 105518 105516 105274 105275 105277 105278 105279 7 105518 105279 105280 105377 105521 105647 105517 5 105520 105377 105378 105522 105647 7 105521 105378 105523 105685 105647 105684 105686 6 105522 105378 105379 105524 105687 105686 6 105523 105379 105284 105525 105687 105688 6 105524 105284 105285 105526 105688 105689 6 105525 105285 105286 105527 105689 105690 6 105526 105286 105291 105528 105690 105691 6 105527 105291 105292 105529 105530 105691 6 105528 105292 105530 105531 105532 105533 5 105528 105529 105531 105691 105692 6 105530 105529 105532 105692 105693 105694 7 105531 105529 105533 105694 105695 105538 105536 6 105532 105529 105292 105293 105534 105536 7 105533 105293 105294 105295 105297 105535 105536 6 105534 105297 105536 105537 105541 105542 6 105534 105535 105537 105538 105532 105533 6 105536 105535 105538 105539 105540 105541 6 105536 105537 105539 105695 105532 105696 6 105538 105537 105540 105696 105697 105698 7 105539 105537 105541 105698 105699 105700 109795 5 105540 105537 105535 105542 109795 6 105541 105535 105297 105298 105543 109795 7 105542 105298 105544 105304 105306 105545 109795 5 105543 105298 105304 105300 105299 6 105543 105306 105546 105701 105700 109795 6 105545 105306 105307 105312 105547 105701 6 105546 105312 105548 105701 105702 105703 6 105547 105312 105313 105549 105703 105704 6 105548 105313 105550 105551 105704 105705 6 105549 105313 105551 105552 105553 105314 6 105549 105550 105552 105705 105706 105707 6 105551 105550 105553 105554 105707 105708 6 105552 105550 105314 105554 105555 105315 6 105552 105553 105555 105556 105708 105709 6 105554 105553 105315 105556 105557 105558 6 105554 105555 105557 105709 105710 105711 6 105556 105555 105558 105714 105711 105715 6 105557 105555 105315 105316 105559 105715 6 105558 105316 105317 105320 105560 105715 6 105559 105320 105322 105561 105716 105715 6 105560 105322 105323 105325 105562 105716 6 105561 105325 105563 105564 105717 105716 6 105562 105325 105564 105565 105572 105326 6 105562 105563 105565 105566 105717 105713 6 105564 105563 105566 105567 105571 105572 6 105564 105565 105567 105568 105753 105713 6 105566 105565 105568 105569 105570 105571 6 105566 105567 105569 105752 105753 105754 6 105568 105567 105570 105754 105755 105770 6 105569 105567 105571 105769 105767 105770 6 105570 105567 105565 105572 105769 105771 6 105571 105565 105563 105326 105573 105771 6 105572 105326 105327 105330 105574 105771 6 105573 105330 105575 105771 105772 105773 6 105574 105330 105331 105576 105773 105594 7 105575 105331 105333 105577 105594 105589 105774 6 105576 105333 105578 105349 105579 105774 6 105577 105333 105334 105340 105342 105349 6 105577 105349 105350 105580 105581 105774 6 105579 105350 105581 105582 105583 105584 6 105579 105580 105582 105585 105586 105774 6 105581 105580 105583 105585 105605 105606 6 105582 105580 105584 105606 105607 105608 6 105583 105580 105350 105351 105608 105353 6 105581 105582 105586 105587 105605 105597 6 105581 105585 105587 105588 105589 105774 6 105586 105585 105588 105595 105596 105597 6 105586 105587 105589 105590 105591 105595 6 105586 105588 105590 105594 105576 105774 6 105589 105588 105591 105592 105594 105773 6 105590 105588 105592 105593 105595 105778 6 105590 105591 105593 105773 105772 105775 6 105592 105591 105775 105776 105777 105778 5 105589 105590 105773 105575 105576 6 105591 105588 105587 105596 105778 105779 6 105595 105587 105597 105598 105599 105779 6 105596 105587 105598 105602 105605 105585 6 105596 105597 105599 105600 105601 105602 6 105596 105598 105600 105779 105780 105781 6 105599 105598 105601 105781 105789 105790 6 105600 105598 105602 105603 105790 105791 6 105601 105598 105603 105604 105597 105605 6 105601 105602 105604 105794 105791 105795 6 105603 105602 105795 105796 105606 105605 6 105602 105597 105585 105582 105606 105604 6 105605 105582 105583 105607 105796 105604 6 105606 105583 105608 105610 105798 105796 6 105607 105583 105584 105353 105609 105610 7 105608 105353 105610 105800 105806 105807 105354 5 105608 105609 105607 105800 105798 6 104514 104516 105612 105613 105614 105615 6 104514 105611 105613 100427 100426 107500 6 105612 105611 105614 107500 107501 107505 6 105613 105611 105615 107505 107506 107507 6 105614 105611 104516 107507 107508 104518 6 105388 105389 105617 107782 107783 107784 6 105616 105389 105618 107784 107785 107786 6 105617 105389 105390 105619 107786 107789 6 105618 105390 105620 107789 107790 107791 6 105619 105390 105391 103775 103778 107791 6 105488 105489 105622 105661 105662 105663 6 105621 105489 105490 105491 105623 105663 6 105622 105491 105492 105624 105663 105664 6 105623 105492 105493 105625 105664 105665 6 105624 105493 105626 105665 105666 105667 6 105625 105493 105494 105627 105667 105668 6 105626 105494 105495 105628 105668 105669 6 105627 105495 105496 105629 105669 105670 6 105628 105496 105497 105630 105670 105671 6 105629 105497 105498 105631 105671 105672 6 105630 105498 105499 105632 105672 105673 6 105631 105499 105500 105633 105673 105674 6 105632 105500 105501 105634 105674 105675 6 105633 105501 105502 105635 105675 105676 6 105634 105502 105503 105504 105636 105676 6 105635 105504 105637 105676 105677 105678 6 105636 105504 105505 105638 105678 105679 6 105637 105505 105506 105639 105679 105680 6 105638 105506 105507 105640 105680 105681 6 105639 105507 105508 105641 105681 105682 6 105640 105508 105509 105642 105682 105683 6 105641 105509 105510 105643 105683 105684 6 105642 105510 105511 105644 105684 105685 6 105643 105511 105512 105645 105685 105646 6 105644 105512 105513 105514 105515 105646 6 105645 105515 105517 105647 105685 105644 6 105646 105517 105520 105685 105522 105521 6 105239 105240 105649 106835 106836 106837 6 105648 105240 105241 105650 105651 106837 6 105649 105241 105651 105652 105243 105242 6 105649 105650 105652 106837 106838 106839 6 105651 105650 105243 105653 106839 106840 5 105652 105243 105244 105247 106840 6 105480 105481 105482 105655 106926 106927 6 105654 105482 105656 106927 106928 106929 6 105655 105482 105483 105484 105657 106929 6 105656 105484 105658 106929 106930 106931 6 105657 105484 105485 105659 105831 106931 6 105658 105485 105486 105660 105831 105832 6 105659 105486 105487 105661 105832 105833 6 105660 105487 105488 105621 105662 105833 6 105661 105621 105663 105833 105834 105835 6 105662 105621 105622 105623 105664 105835 6 105663 105623 105624 105665 105835 105813 6 105664 105624 105625 105666 105812 105813 6 105665 105625 105667 105812 105816 105817 6 105666 105625 105626 105668 105859 105817 6 105667 105626 105627 105669 105859 105860 6 105668 105627 105628 105670 105860 105861 6 105669 105628 105629 105671 105861 105862 6 105670 105629 105630 105672 105862 105863 6 105671 105630 105631 105673 105863 105864 6 105672 105631 105632 105674 105864 105865 6 105673 105632 105633 105675 105865 105866 6 105674 105633 105634 105676 105866 105867 6 105675 105634 105635 105636 105677 105867 6 105676 105636 105678 105867 105868 105693 6 105677 105636 105637 105679 105693 105869 6 105678 105637 105638 105680 105869 105870 6 105679 105638 105639 105681 105870 105871 6 105680 105639 105640 105682 105871 105688 6 105681 105640 105641 105683 105688 105687 6 105682 105641 105642 105684 105686 105687 6 105683 105642 105643 105685 105522 105686 6 105684 105643 105644 105646 105647 105522 5 105684 105522 105683 105687 105523 6 105683 105686 105523 105524 105688 105682 7 105687 105524 105525 105689 105871 105681 105682 5 105688 105525 105526 105690 105871 7 105689 105526 105527 105691 105871 105870 105692 5 105690 105527 105528 105530 105692 7 105691 105530 105531 105693 105870 105690 105869 7 105692 105531 105694 105868 105677 105678 105869 6 105693 105531 105532 105695 109698 105868 6 105694 105532 105538 105696 109699 109698 6 105695 105538 105539 105697 105718 109699 6 105696 105539 105698 105718 105719 105720 6 105697 105539 105540 105699 105720 105721 6 105698 105540 105700 105701 105721 105722 5 105699 105540 105701 105545 109795 7 105699 105700 105545 105546 105547 105702 105722 6 105701 105547 105703 105722 105723 105727 6 105702 105547 105548 105704 105727 105728 6 105703 105548 105549 105705 105728 105729 6 105704 105549 105551 105706 105732 105729 6 105705 105551 105707 105732 105733 105734 6 105706 105551 105552 105708 105737 105734 6 105707 105552 105554 105709 105737 105738 6 105708 105554 105556 105710 105747 105738 6 105709 105556 105711 105712 105747 105748 6 105710 105556 105712 105713 105714 105557 6 105710 105711 105713 105748 105749 105753 7 105712 105711 105714 105717 105564 105753 105566 6 105713 105711 105557 105715 105716 105717 6 105714 105557 105716 105560 105559 105558 6 105714 105715 105717 105562 105561 105560 5 105714 105716 105562 105564 105713 7 105696 105697 105719 109696 105865 109697 109699 6 105718 105697 105720 109696 109695 109700 6 105719 105697 105698 105721 109700 109701 7 105720 105698 105699 105722 105723 105724 109701 5 105721 105699 105701 105702 105723 7 105722 105702 105721 105724 105725 105726 105727 6 105721 105723 105725 106095 109701 109702 6 105724 105723 105726 106095 106096 106097 6 105725 105723 105727 106097 105730 105728 5 105726 105723 105702 105703 105728 6 105727 105703 105704 105729 105730 105726 6 105728 105704 105730 105731 105732 105705 7 105728 105729 105731 106097 105726 106098 106099 6 105730 105729 105732 106099 106100 106101 6 105731 105729 105705 105706 105733 106101 6 105732 105706 105734 105735 106101 106102 6 105733 105706 105735 105736 105737 105707 6 105733 105734 105736 106105 106102 106106 6 105735 105734 105737 106106 106107 105739 6 105736 105734 105707 105708 105738 105739 6 105737 105708 105739 105740 105747 105709 6 105737 105738 105740 105741 106107 105736 6 105739 105738 105741 105742 105746 105747 6 105739 105740 105742 105743 106107 106108 6 105741 105740 105743 105744 105745 105746 6 105741 105742 105744 106111 106108 106112 6 105743 105742 105745 106112 106113 106114 6 105744 105742 105746 105750 106121 106114 6 105745 105742 105740 105747 105748 105750 6 105746 105740 105738 105709 105710 105748 6 105747 105710 105712 105749 105746 105750 6 105748 105712 105750 105751 105752 105753 6 105746 105748 105745 105749 105751 106121 5 105750 105749 105752 106121 105949 6 105751 105749 105753 105568 105754 105949 6 105752 105749 105712 105713 105568 105566 6 105752 105568 105569 105755 105756 105949 6 105754 105569 105756 105757 105758 105770 6 105754 105755 105757 105949 105950 105951 6 105756 105755 105758 105759 105951 105952 6 105757 105755 105759 105760 105761 105770 6 105757 105758 105760 105952 105953 105957 6 105759 105758 105761 105762 105763 105957 6 105760 105758 105762 105766 105767 105770 6 105760 105761 105763 105764 105765 105766 6 105760 105762 105764 105957 105958 105988 6 105763 105762 105765 105989 105988 105990 6 105764 105762 105766 105990 105991 105776 6 105765 105762 105761 105767 105768 105776 6 105766 105761 105768 105769 105570 105770 6 105766 105767 105769 105772 105775 105776 6 105768 105767 105570 105571 105771 105772 6 105570 105767 105569 105761 105755 105758 6 105769 105571 105572 105573 105574 105772 7 105771 105574 105773 105592 105775 105769 105768 6 105772 105574 105575 105594 105590 105592 6 105589 105576 105586 105581 105579 105577 5 105772 105592 105593 105776 105768 7 105775 105593 105777 105991 105765 105768 105766 6 105776 105593 105778 105992 105991 105782 6 105777 105593 105591 105595 105779 105782 6 105778 105595 105596 105599 105780 105782 6 105779 105599 105781 105782 105783 105784 6 105780 105599 105600 105784 105785 105789 6 105779 105780 105783 105992 105777 105778 6 105782 105780 105784 105993 105992 105996 7 105783 105780 105781 105785 105786 105996 105997 6 105784 105781 105786 105787 105788 105789 6 105784 105785 105787 105997 105998 105999 6 105786 105785 105788 106002 105999 106003 6 105787 105785 105789 106009 106003 106199 6 105788 105785 105781 105600 105790 106199 6 105789 105600 105601 105791 105792 106199 6 105790 105601 105792 105793 105794 105603 6 105790 105791 105793 106198 106199 106197 6 105792 105791 105794 106197 106200 106221 6 105793 105791 105603 105795 106221 106219 6 105794 105603 105604 105796 105797 106219 6 105795 105604 105797 105798 105607 105606 6 105795 105796 105798 105799 106218 106219 6 105797 105796 105607 105799 105800 105610 6 105797 105798 105800 105801 105802 106218 7 105799 105798 105610 105609 105801 105805 105806 6 105799 105800 105802 105803 105804 105805 6 105799 105801 105803 106217 106209 106218 6 105802 105801 105804 105823 105824 106217 6 105803 105801 105805 105823 105830 105839 6 105804 105801 105800 105806 105808 105839 5 105805 105800 105609 105807 105808 5 105806 105609 105354 105356 105808 7 105807 105356 105358 105809 105839 105805 105806 6 105808 105358 105810 105838 105839 105886 7 105809 105358 105363 105364 105811 105885 105886 6 105810 105364 105884 105885 105887 105402 6 105665 105666 105813 105814 105815 105816 6 105665 105812 105814 105835 105664 105842 6 105813 105812 105815 105842 105843 105844 6 105814 105812 105816 105819 105820 105844 6 105815 105812 105666 105817 105818 105819 6 105816 105666 105818 105859 105857 105667 6 105816 105817 105819 105822 105857 105854 6 105816 105818 105815 105820 105821 105822 6 105815 105819 105821 105844 105845 105846 6 105820 105819 105822 105852 105849 105846 6 105821 105819 105818 105852 105853 105854 6 105803 105804 105824 105825 105826 105830 5 105803 105823 105825 106216 106217 7 105824 105823 105826 105827 106216 106215 106021 6 105825 105823 105827 105828 105829 105830 6 105825 105826 105828 106019 106020 106021 6 105827 105826 105829 105836 105872 106019 6 105828 105826 105830 105836 105837 105838 6 105829 105826 105823 105804 105838 105839 6 105658 105659 105832 106931 106932 106933 6 105831 105659 105660 105833 105840 106933 6 105832 105660 105661 105662 105834 105840 6 105833 105662 105835 105840 105841 105842 6 105834 105662 105663 105664 105813 105842 6 105828 105829 105837 105872 105873 105883 6 105836 105829 105838 105885 105883 105886 6 105837 105829 105830 105839 105809 105886 6 105838 105830 105809 105808 105805 105804 6 105832 105833 105834 105841 106933 106934 6 105840 105834 105842 106934 106935 105843 6 105841 105834 105835 105813 105814 105843 6 105842 105814 105844 106018 106935 105841 6 105843 105814 105815 105820 105845 106018 6 105844 105820 105846 105847 106018 106940 6 105845 105820 105847 105848 105849 105821 6 105845 105846 105848 106940 106941 106942 6 105847 105846 105849 105850 106945 106942 6 105848 105846 105850 105851 105852 105821 5 105848 105849 105851 106945 106385 6 105850 105849 105852 106103 106104 106385 6 105851 105849 105821 105822 105853 106103 6 105852 105822 105854 105855 106100 106103 6 105853 105822 105855 105856 105857 105818 6 105853 105854 105856 106098 106099 106100 6 105855 105854 105857 105858 106384 106098 6 105856 105854 105858 105859 105817 105818 6 105856 105857 105859 105860 106383 106384 6 105858 105857 105817 105667 105668 105860 6 105859 105668 105669 105861 106383 105858 6 105860 105669 105670 105862 109703 106383 6 105861 105670 105671 105863 109694 109703 6 105862 105671 105672 105864 109694 109695 6 105863 105672 105673 105865 109695 109696 7 105864 105673 105674 105866 109696 105718 109697 5 105865 105674 105675 105867 109697 7 105866 105675 105676 105677 105868 109697 109698 5 105867 105677 105693 105694 109698 5 105693 105678 105679 105870 105692 6 105869 105679 105680 105871 105690 105692 6 105870 105680 105681 105688 105689 105690 6 105828 105836 105873 105874 109736 106019 6 105872 105836 105874 105875 105882 105883 6 105872 105873 105875 105876 109736 106041 6 105874 105873 105876 105877 105878 105882 6 105874 105875 105877 106048 106041 106042 6 105876 105875 105878 105879 106049 106048 6 105877 105875 105879 105880 105881 105882 6 105877 105878 105880 106049 106050 105888 6 105879 105878 105881 105400 105399 105888 6 105880 105878 105882 105884 105887 105400 6 105881 105878 105875 105873 105883 105884 6 105882 105873 105836 105884 105885 105837 6 105882 105883 105885 105811 105881 105887 6 105884 105883 105837 105811 105810 105886 5 105810 105885 105837 105838 105809 5 105881 105884 105811 105402 105400 6 105880 105399 105889 106053 106050 105879 6 105888 105399 105397 105890 105891 106053 6 105889 105397 105891 105892 105893 105396 6 105889 105890 105892 106056 106053 106057 6 105891 105890 105893 106057 106058 106059 6 105892 105890 105396 105894 105895 106059 6 105893 105396 105895 105896 105899 105395 6 105893 105894 105896 105897 106059 106061 6 105895 105894 105897 105898 104889 105899 6 105895 105896 105898 105900 106061 106062 6 105897 105896 104889 104890 105900 105901 7 104889 105896 105894 105395 105393 105372 104888 6 105897 105898 105901 106065 106062 106066 6 105900 105898 104890 104892 105902 106066 6 105901 104892 105903 105904 105905 106066 6 105902 104892 105904 105911 105912 104893 6 105902 105903 105905 105906 105907 105911 6 105902 105904 105906 106066 106070 106067 7 105905 105904 105907 105908 106075 106072 106070 6 105906 105904 105908 105909 105910 105911 5 105906 105907 105909 105934 106075 7 105908 105907 105910 105932 105929 105933 105934 6 105909 105907 105911 105932 109752 105915 6 105910 105907 105904 105903 105912 105915 6 105911 105903 104893 105913 105914 105915 6 105912 104893 104894 104896 104899 105914 6 105913 104899 105912 105915 105916 105917 6 105912 105914 105916 105911 109752 105910 6 105915 105914 105917 109752 109755 109758 6 105916 105914 104899 104900 105918 109758 7 105917 104900 104902 103671 103951 105919 109758 6 105918 103951 103949 105920 109755 109758 5 105919 103949 103948 105921 109755 6 105920 103948 105922 105930 105931 109755 6 105921 103948 103946 103962 105923 105930 6 105922 103962 103963 105924 105925 105930 6 105923 103963 103965 105925 105926 105942 6 105923 105924 105926 105927 105929 105930 6 105925 105924 105927 105928 105941 105942 5 105925 105926 105928 105929 105933 7 105927 105926 105935 105933 105936 105940 105941 7 105925 105927 105930 105931 105932 105909 105933 6 105925 105929 105931 105923 105922 105921 6 105930 105929 105921 105932 109752 109755 5 105931 105929 105909 105910 109752 6 105909 105929 105934 105935 105928 105927 6 105909 105933 105935 106074 106075 105908 6 105934 105933 105928 105936 105937 106074 6 105935 105928 105937 105938 105939 105940 5 105935 105936 105938 106074 106076 6 105937 105936 105939 106076 106077 106086 6 105938 105936 105940 106087 106086 106091 7 105939 105936 105928 105941 105944 106091 105946 5 105940 105928 105926 105942 105944 6 105941 105926 105924 103965 105943 105944 7 105942 103965 103966 105944 105945 103135 105947 6 105942 105943 105941 105940 105945 105946 5 105944 105943 105946 103134 103135 6 105944 105945 103134 106091 105940 103136 6 103135 105943 102093 102092 105948 103966 6 102092 105947 103966 103967 102488 102489 6 105754 105756 105950 105752 105751 106121 6 105949 105756 105951 106166 106120 106121 6 105950 105756 105757 105952 106166 106164 6 105951 105757 105759 105953 105954 106164 6 105952 105759 105954 105955 105956 105957 6 105952 105953 105955 106162 106161 106164 6 105954 105953 105956 105960 105967 106162 6 105955 105953 105957 105958 105959 105960 6 105956 105953 105759 105760 105763 105958 6 105957 105763 105956 105959 105963 105988 6 105956 105958 105960 105961 105962 105963 6 105956 105959 105961 105964 105967 105955 6 105960 105959 105962 105964 105965 105982 6 105961 105959 105963 105983 105982 105984 6 105962 105959 105958 105987 105984 105988 6 105960 105961 105965 105966 105967 105968 6 105964 105961 105966 105982 105980 105971 6 105964 105965 105968 105969 105970 105971 6 105960 105964 105955 105968 106163 106162 7 105967 105964 105966 105969 106156 106157 106163 6 105968 105966 105970 106447 106445 106156 6 105969 105966 105971 105972 106447 106448 6 105970 105966 105972 105973 105965 105980 6 105970 105971 105973 105974 105975 106448 6 105972 105971 105974 105978 105979 105980 6 105972 105973 105975 105976 105977 105978 6 105972 105974 105976 106448 106449 106450 6 105975 105974 105977 106450 106608 106609 6 105976 105974 105978 106609 106612 106613 6 105977 105974 105973 105979 106613 106614 6 105978 105973 105980 105981 106640 106614 6 105979 105973 105981 105982 105965 105971 6 105979 105980 105982 105983 106640 106641 6 105981 105980 105983 105962 105961 105965 6 105981 105982 105962 105984 105985 106641 6 105983 105962 105985 105986 105987 105963 6 105983 105984 105986 106643 106641 106168 6 105985 105984 105987 105994 106167 106168 6 105986 105984 105963 105988 105989 105994 6 105987 105963 105958 105989 105764 105763 6 105987 105988 105764 105990 105993 105994 6 105989 105764 105765 105991 105992 105993 5 105990 105765 105992 105777 105776 6 105990 105991 105777 105993 105783 105782 7 105990 105992 105783 105989 105994 105995 105996 6 105989 105993 105995 105986 105987 106167 6 105994 105993 105996 105997 105998 106167 5 105995 105993 105783 105784 105997 5 105995 105996 105998 105784 105786 7 105995 105997 105786 105999 106000 106169 106167 6 105998 105786 106000 106001 106002 105787 5 105998 105999 106001 106169 106170 6 106000 105999 106002 106170 106171 106005 6 106001 105999 105787 106003 106004 106005 6 106002 105787 106004 106008 106009 105788 6 106002 106003 106005 106006 106007 106008 6 106002 106004 106006 106171 106001 106172 6 106005 106004 106007 106010 106172 106173 6 106006 106004 106008 106010 106011 106015 6 106007 106004 106003 106009 106017 106015 6 106008 106003 105788 106198 106017 106199 6 106006 106007 106011 106012 106179 106173 6 106010 106007 106012 106013 106014 106015 6 106010 106011 106013 106180 106179 106186 6 106012 106011 106014 106190 106187 106186 6 106013 106011 106015 106016 106190 106191 6 106014 106011 106016 106017 106008 106007 6 106014 106015 106017 106191 106194 106195 6 106016 106015 106008 106198 106195 106009 6 105843 105844 105845 106937 106935 106940 6 105827 105828 106020 109736 106038 105872 6 105827 106019 106021 106022 106023 106038 6 105827 106020 106022 106215 105825 106222 6 106021 106020 106023 106024 106025 106222 6 106022 106020 106024 106037 106028 106038 6 106022 106023 106025 106026 106027 106028 6 106022 106024 106026 106222 106225 106223 6 106025 106024 106027 106225 106226 106032 6 106026 106024 106028 106029 106031 106032 6 106027 106024 106029 106030 106037 106023 6 106027 106028 106030 106031 106033 106034 6 106029 106028 106034 106035 106036 106037 6 106027 106029 106032 106033 106247 106239 6 106027 106031 106226 106026 106227 106239 6 106031 106029 106034 106247 106246 106248 6 106033 106029 106030 106035 106248 106249 6 106034 106030 106036 106249 106263 106264 6 106035 106030 106037 106039 106040 106264 6 106036 106030 106028 106023 106038 106039 6 106037 106023 106039 109736 106019 106020 6 106037 106038 106036 106040 106041 109736 7 106036 106039 106041 106042 106043 106265 106264 6 106040 106039 106042 109736 105874 105876 6 106040 106041 106043 106044 106048 105876 5 106040 106042 106044 106045 106265 6 106043 106042 106045 106046 106047 106048 7 106043 106044 106046 106262 106265 106261 106266 6 106045 106044 106047 106269 106266 106280 6 106046 106044 106048 106049 106051 106280 6 106047 106044 106042 106049 105877 105876 6 106047 106048 105877 105879 106050 106051 6 106049 105879 106051 106052 106053 105888 6 106049 106050 106052 106054 106280 106047 6 106051 106050 106053 106054 106055 106056 6 106052 106050 105888 105889 106056 105891 7 106051 106052 106055 106279 106280 106278 106281 6 106054 106052 106056 106283 106281 106284 6 106055 106052 106053 105891 106057 106284 6 106056 105891 105892 106058 106060 106284 6 106057 105892 106059 106060 106287 106288 6 106058 105892 105893 105895 106061 106288 6 106057 106058 106284 106285 106286 106287 6 106059 105895 105897 106062 106063 106288 6 106061 105897 106063 106064 106065 105900 7 106061 106062 106064 106288 106291 106289 106292 5 106063 106062 106065 106292 106068 6 106064 106062 105900 106066 106067 106068 6 106065 105900 105901 105902 105905 106067 6 106065 106066 106068 106069 106070 105905 7 106065 106067 106069 106292 106064 106293 106294 5 106068 106067 106070 106071 106294 6 106069 106067 105905 106071 106072 105906 7 106069 106070 106072 106073 106296 106294 106297 6 106071 106070 106073 106074 106075 105906 6 106071 106072 106074 106297 106078 106076 7 106073 106072 106075 105934 105935 105937 106076 5 106074 106072 105934 105908 105906 6 106074 105937 105938 106077 106078 106073 6 106076 105938 106078 106079 106086 106083 6 106076 106077 106079 106080 106297 106073 6 106078 106077 106080 106081 106082 106083 6 106078 106079 106081 106297 106298 106301 6 106080 106079 106082 106301 106302 106314 6 106081 106079 106083 106084 106313 106314 6 106082 106079 106084 106085 106086 106077 7 106082 106083 106085 106088 106313 106315 106318 6 106084 106083 106086 106087 106088 106089 6 106085 106083 106087 105939 105938 106077 6 106085 106086 105939 106089 106090 106091 6 106084 106085 106089 106094 103769 106318 7 106088 106085 106087 106090 103137 106092 106094 5 106089 106087 106091 103136 103137 6 106090 106087 105939 105940 105946 103136 6 106089 103137 103138 106093 103768 106094 7 106092 103138 103768 103766 102085 102084 109776 5 106092 103768 103769 106088 106089 6 105724 105725 106096 106383 109702 109703 6 106095 105725 106097 106098 106383 106384 5 106096 105725 105726 105730 106098 7 106096 106097 105730 106099 106384 105856 105855 5 106098 105730 105731 106100 105855 7 106099 105731 106101 106102 106103 105855 105853 5 106100 105731 105732 105733 106102 7 106101 105733 106100 106103 106104 106105 105735 6 106100 106102 106104 105853 105852 105851 6 106103 106102 106105 105851 106385 106386 5 106104 106102 105735 106106 106386 7 106105 105735 105736 106107 106386 106387 106109 6 106106 105736 105739 105741 106108 106109 6 106107 105741 106109 106110 106111 105743 6 106107 106108 106110 106387 106106 106388 6 106109 106108 106111 106388 106389 106390 6 106110 106108 105743 106112 106393 106390 6 106111 105743 105744 106113 106115 106393 6 106112 105744 106114 106115 106116 106117 6 106113 105744 106120 106117 106121 105745 6 106112 106113 106116 106393 109737 109738 6 106115 106113 106117 106118 106122 109738 6 106116 106113 106118 106119 106120 106114 6 106116 106117 106119 106122 106123 106165 5 106118 106117 106120 106166 106165 6 106119 106117 106114 106121 106166 105950 7 106120 106114 105745 105750 105751 105949 105950 6 106116 106118 106123 106124 106131 109738 6 106122 106118 106124 106125 106165 106160 6 106122 106123 106125 106126 106127 106131 6 106124 106123 106126 106152 106160 106158 6 106124 106125 106127 106128 106151 106152 6 106124 106126 106128 106129 106130 106131 6 106127 106126 106129 106150 106149 106151 6 106127 106128 106130 106150 106137 106134 6 106127 106129 106131 106132 106133 106134 6 106127 106130 106132 109738 106122 106124 6 106131 106130 106133 106398 109737 109738 6 106132 106130 106134 106135 106397 106398 6 106133 106130 106135 106136 106137 106129 6 106133 106134 106136 106397 106399 106400 6 106135 106134 106137 106138 106400 106401 6 106136 106134 106138 106139 106150 106129 6 106136 106137 106139 106140 106401 106402 6 106138 106137 106140 106141 106148 106150 6 106138 106139 106141 106142 106402 106403 6 106140 106139 106142 106143 106144 106148 6 106140 106141 106143 106403 106404 106405 6 106142 106141 106144 106145 106405 106436 6 106143 106141 106145 106146 106147 106148 6 106143 106144 106146 106437 106436 106438 6 106145 106144 106147 106438 106439 106440 6 106146 106144 106148 106149 106440 106441 6 106147 106144 106141 106139 106149 106150 6 106147 106148 106150 106128 106151 106441 6 106149 106148 106139 106137 106129 106128 6 106149 106128 106126 106152 106153 106441 6 106151 106126 106125 106153 106154 106158 6 106151 106152 106154 106155 106441 106442 6 106153 106152 106155 106156 106157 106158 6 106153 106154 106156 106444 106442 106445 6 106155 106154 106157 105969 106445 105968 6 106156 106154 106158 106159 105968 106163 6 106157 106154 106152 106159 106160 106125 6 106157 106158 106160 106161 106162 106163 6 106159 106158 106125 106161 106123 106165 6 106159 106160 106162 105954 106164 106165 6 106159 106161 106163 105967 105955 105954 5 106159 106162 105967 106157 105968 6 105954 106161 106165 106166 105951 105952 7 106164 106161 106166 106119 106118 106123 106160 6 106164 106165 106119 106120 105950 105951 6 105994 105995 105986 106168 106169 105998 6 105986 106167 106169 106643 105985 109783 6 106168 106167 105998 106000 106170 109783 7 106169 106000 106001 106171 106789 109783 109782 7 106170 106001 106005 106172 106788 106786 106789 6 106171 106005 106006 106173 106174 106788 6 106172 106006 106174 106175 106010 106179 6 106172 106173 106175 106176 106784 106788 6 106174 106173 106176 106177 106178 106179 6 106174 106175 106177 106782 106781 106784 6 106176 106175 106178 109796 106782 109797 6 106177 106175 106179 106180 106181 109796 6 106178 106175 106180 106012 106010 106173 6 106178 106179 106181 106182 106186 106012 6 106178 106180 106182 106183 109796 109799 6 106181 106180 106183 106184 106185 106186 6 106181 106182 106184 106362 106645 109799 6 106183 106182 106185 106362 106363 106367 6 106184 106182 106186 106187 106188 106367 6 106185 106182 106180 106187 106012 106013 6 106185 106186 106188 106189 106190 106013 6 106185 106187 106189 106367 106368 106369 6 106188 106187 106190 106369 106372 106192 6 106189 106187 106013 106014 106191 106192 6 106190 106014 106016 106192 106193 106194 6 106190 106191 106193 106372 106189 106373 6 106192 106191 106194 106382 106373 106203 6 106193 106191 106016 106195 106196 106203 6 106194 106016 106196 106197 106198 106017 6 106194 106195 106197 106200 106201 106203 6 106196 106195 106198 105792 105793 106200 6 106197 106195 106017 106009 106199 105792 6 106198 106009 105792 105790 105789 105788 6 106197 105793 106196 106201 106202 106221 6 106196 106200 106202 106203 106204 106205 6 106201 106200 106205 106206 106220 106221 6 106196 106201 106204 106382 106193 106194 6 106203 106201 106205 106382 106459 106381 6 106204 106201 106202 106206 106207 106459 6 106205 106202 106207 106208 106209 106220 6 106205 106206 106208 106210 106211 106459 6 106207 106206 106209 106210 106214 106217 6 106208 106206 105802 106217 106218 106220 6 106207 106208 106211 106212 106213 106214 6 106207 106210 106212 106456 106458 106459 7 106211 106210 106213 106223 106224 106454 106456 5 106212 106210 106214 106215 106223 6 106213 106210 106208 106215 106216 106217 7 106213 106214 106216 105825 106021 106222 106223 5 106215 106214 106217 105824 105825 7 106216 106214 105824 105803 105802 106209 106208 6 105802 106209 105799 105797 106219 106220 6 105797 106218 106220 106221 105794 105795 6 106219 106218 106209 106206 106202 106221 6 106219 106220 106202 106200 105793 105794 5 106215 106021 106022 106025 106223 7 106215 106222 106213 106212 106224 106225 106025 7 106212 106223 106225 106454 106231 106226 106228 5 106224 106223 106025 106026 106226 6 106225 106026 106032 106227 106228 106224 6 106226 106032 106228 106229 106238 106239 6 106226 106227 106229 106230 106231 106224 6 106228 106227 106230 106237 106234 106238 6 106228 106229 106231 106232 106233 106234 6 106228 106230 106232 106454 106224 106455 6 106231 106230 106233 106455 106460 106461 6 106232 106230 106234 106235 106461 106462 6 106233 106230 106235 106236 106237 106229 6 106233 106234 106236 106462 106463 106471 6 106235 106234 106237 106473 106471 106476 6 106236 106234 106229 106238 106476 106241 6 106237 106229 106227 106239 106240 106241 6 106238 106227 106240 106247 106031 106032 6 106238 106239 106241 106242 106243 106247 6 106238 106240 106242 106476 106237 106477 6 106241 106240 106243 106244 106477 106479 6 106242 106240 106244 106245 106246 106247 6 106242 106243 106245 106481 106479 106482 6 106244 106243 106246 106482 106253 106251 6 106245 106243 106247 106033 106248 106251 6 106246 106243 106240 106239 106031 106033 6 106246 106033 106034 106249 106250 106251 6 106248 106034 106035 106250 106263 106255 6 106248 106249 106251 106252 106254 106255 6 106248 106250 106252 106253 106245 106246 6 106251 106250 106253 106254 106484 106485 6 106251 106252 106482 106245 106483 106484 6 106252 106250 106255 106256 106257 106485 6 106254 106250 106256 106263 106260 106249 6 106254 106255 106257 106258 106259 106260 6 106254 106256 106258 106485 106493 106494 6 106257 106256 106259 106494 106495 106496 7 106258 106256 106260 106261 106496 106273 106267 6 106259 106256 106261 106262 106263 106255 6 106259 106260 106262 106045 106266 106267 6 106261 106260 106263 106264 106265 106045 6 106262 106260 106264 106255 106249 106035 6 106262 106263 106265 106035 106040 106036 5 106262 106264 106045 106043 106040 6 106045 106261 106267 106268 106269 106046 6 106261 106266 106268 106272 106273 106259 6 106267 106266 106269 106270 106271 106272 6 106268 106266 106046 106270 106279 106280 6 106268 106269 106271 106277 106278 106279 6 106268 106270 106272 106275 106276 106277 6 106268 106271 106267 106273 106274 106275 6 106267 106272 106274 106496 106259 106497 6 106273 106272 106275 106500 106497 106501 6 106274 106272 106271 106276 106501 106502 6 106275 106271 106277 106502 106503 106504 6 106276 106271 106270 106278 106504 106505 7 106277 106270 106279 106054 106281 106282 106505 5 106278 106270 106269 106280 106054 6 106279 106269 106046 106054 106051 106047 5 106278 106054 106282 106283 106055 6 106278 106281 106283 106506 106505 106507 6 106282 106281 106055 106284 106507 106285 6 106283 106055 106056 106057 106060 106285 6 106284 106060 106286 106507 106283 106508 7 106285 106060 106287 106508 106328 106511 106290 6 106286 106060 106058 106288 106289 106290 6 106287 106058 106059 106061 106063 106289 5 106287 106288 106290 106291 106063 5 106287 106289 106291 106328 106286 7 106290 106289 106063 106292 106326 106327 106328 6 106291 106063 106064 106068 106293 106326 6 106292 106068 106294 106295 106325 106326 6 106293 106068 106069 106295 106296 106071 6 106293 106294 106296 106299 106324 106325 6 106295 106294 106071 106297 106298 106299 6 106296 106071 106073 106078 106080 106298 6 106297 106080 106296 106299 106300 106301 5 106296 106298 106300 106324 106295 6 106299 106298 106301 106303 106323 106324 6 106300 106298 106080 106081 106302 106303 6 106301 106081 106303 106304 106308 106314 6 106301 106302 106304 106305 106323 106300 6 106303 106302 106305 106306 106307 106308 6 106303 106304 106306 106323 106337 106338 6 106305 106304 106307 106338 106341 106342 6 106306 106304 106308 106309 106342 106343 6 106307 106304 106302 106309 106310 106314 6 106307 106308 106310 106311 106343 106346 6 106309 106308 106311 106312 106313 106314 6 106309 106310 106312 106321 106322 106346 6 106311 106310 106313 106315 106316 106321 6 106312 106310 106314 106082 106084 106315 6 106313 106310 106082 106081 106302 106308 6 106313 106084 106312 106316 106317 106318 6 106312 106315 106317 106319 106320 106321 6 106316 106315 106318 103769 101571 106319 5 106317 106315 103769 106084 106088 5 106317 101571 101572 106320 106316 7 106319 101572 101573 106316 106321 106322 106360 5 106316 106320 106322 106312 106311 7 106321 106320 106311 106347 106346 106348 106360 6 106303 106305 106300 106324 106335 106337 7 106300 106323 106299 106295 106325 106336 106335 6 106295 106324 106293 106326 106336 106331 6 106293 106325 106292 106291 106327 106331 6 106291 106326 106328 106329 106330 106331 6 106291 106327 106329 106511 106286 106290 6 106328 106327 106330 106510 106511 106519 7 106329 106327 106331 106332 106333 106519 106518 6 106330 106327 106332 106336 106325 106326 6 106330 106331 106333 106334 106335 106336 5 106330 106332 106334 106518 106520 6 106333 106332 106335 106520 106528 106529 7 106334 106332 106336 106324 106323 106337 106529 5 106335 106332 106331 106325 106324 6 106335 106323 106305 106338 106339 106529 6 106337 106305 106306 106339 106340 106341 6 106337 106338 106340 106530 106527 106529 5 106339 106338 106341 106545 106530 6 106340 106338 106306 106342 106546 106545 6 106341 106306 106307 106343 106344 106546 6 106342 106307 106344 106345 106346 106309 6 106342 106343 106345 106546 106543 106547 6 106344 106343 106346 106347 106549 106547 6 106345 106343 106347 106322 106311 106309 6 106345 106346 106322 106348 106349 106549 6 106347 106322 106349 106350 106359 106360 6 106347 106348 106350 106351 106550 106549 6 106349 106348 106351 106352 106353 106359 6 106349 106350 106352 106552 106550 106553 6 106351 106350 106353 106354 106355 106553 6 106352 106350 106354 101589 102476 106359 7 106352 106353 106355 106356 101594 101590 101589 6 106352 106354 106356 106357 106553 106554 5 106355 106354 106357 106358 101594 6 106355 106356 106358 106554 106555 103971 6 106357 106356 101594 103971 103970 101595 6 102476 106353 106350 106348 106360 106361 6 106359 106348 106361 101573 106320 106322 5 106359 106360 101573 102475 102476 6 106183 106184 106363 106364 106644 106645 6 106362 106184 106364 106365 106366 106367 6 106362 106363 106365 106644 106648 106649 6 106364 106363 106366 109727 109673 106649 6 106365 106363 106367 109727 109728 106368 6 106366 106363 106184 106185 106188 106368 6 106367 106188 106369 106370 109728 106366 6 106368 106188 106189 106370 106371 106372 6 106368 106369 106371 109728 109729 109730 6 106370 106369 106372 106374 106375 109730 6 106371 106369 106189 106192 106373 106374 6 106372 106192 106374 106382 106380 106193 6 106372 106373 106371 106375 106376 106380 6 106371 106374 106376 106377 106467 109730 6 106375 106374 106377 106378 106379 106380 5 106375 106376 106378 109693 106467 7 106377 106376 106379 106457 106455 106460 109693 6 106378 106376 106380 106381 106457 106458 6 106379 106376 106381 106382 106373 106374 6 106379 106380 106382 106459 106458 106204 6 106381 106380 106373 106193 106203 106204 7 106095 106096 106384 109703 105861 105860 105858 5 106383 106096 106098 105856 105858 6 105851 106104 106386 106945 105850 106946 7 106385 106104 106105 106106 106387 106946 106947 5 106386 106106 106109 106388 106947 6 106387 106109 106110 106389 106947 106948 6 106388 106110 106390 106391 106948 106949 6 106389 106110 106391 106392 106393 106111 6 106389 106390 106392 106394 106395 106949 6 106391 106390 106393 106394 109737 106398 6 106392 106390 106111 106112 106115 109737 6 106391 106392 106395 106396 106397 106398 6 106391 106394 106396 106949 106950 106951 6 106395 106394 106397 106951 106952 106399 6 106396 106394 106398 106133 106135 106399 6 106397 106394 106133 106132 109737 106392 6 106397 106135 106400 106952 106396 106953 6 106399 106135 106136 106401 106953 106954 6 106400 106136 106138 106402 106954 106960 6 106401 106138 106140 106403 106960 106410 6 106402 106140 106142 106404 106408 106410 6 106403 106142 106405 106406 106407 106408 6 106404 106142 106143 106406 106436 106434 6 106404 106405 106407 106431 106429 106434 6 106404 106406 106408 106409 106428 106429 6 106404 106407 106409 106403 106410 106411 6 106408 106407 106411 106412 106413 106428 6 106403 106408 106411 106959 106960 106402 6 106410 106408 106409 106412 106959 106961 6 106411 106409 106413 106414 106963 106961 6 106412 106409 106414 106415 106427 106428 6 106412 106413 106415 106416 106963 106964 6 106414 106413 106416 106417 106418 106427 6 106414 106415 106417 106558 106559 106964 6 106416 106415 106418 106419 106558 106565 6 106417 106415 106419 106420 106427 106424 6 106417 106418 106420 106421 106573 106565 6 106419 106418 106421 106422 106423 106424 6 106419 106420 106422 106573 106572 106574 6 106421 106420 106423 106580 106577 106574 6 106422 106420 106424 106425 106580 106581 6 106423 106420 106425 106426 106427 106418 6 106423 106424 106426 106584 106581 106430 6 106425 106424 106427 106428 106429 106430 6 106426 106424 106418 106415 106413 106428 6 106427 106413 106409 106407 106426 106429 6 106426 106428 106407 106430 106431 106406 6 106426 106429 106431 106432 106584 106425 6 106430 106429 106406 106432 106433 106434 6 106430 106431 106433 106584 106585 106586 6 106432 106431 106434 106435 106589 106586 6 106433 106431 106435 106436 106405 106406 6 106433 106434 106436 106437 106589 106590 6 106435 106434 106405 106437 106145 106143 6 106435 106436 106145 106438 106590 106591 6 106437 106145 106146 106439 106591 106592 6 106438 106146 106440 106595 106592 106443 6 106439 106146 106147 106441 106442 106443 6 106440 106147 106149 106151 106153 106442 6 106441 106153 106440 106443 106444 106155 6 106440 106442 106444 106595 106439 106453 6 106443 106442 106155 106445 106446 106453 6 106444 106155 106446 106447 105969 106156 6 106444 106445 106447 106449 106452 106453 6 106446 106445 105969 105970 106448 106449 5 106447 105970 105972 105975 106449 7 106448 105975 106447 106450 106451 106452 106446 7 106449 105975 105976 106451 106607 106598 106608 6 106449 106450 106452 106596 106597 106598 5 106449 106451 106446 106453 106596 6 106446 106452 106595 106443 106444 106596 5 106212 106224 106231 106455 106456 7 106454 106231 106456 106457 106378 106232 106460 6 106454 106455 106457 106458 106211 106212 5 106456 106455 106378 106379 106458 6 106457 106379 106456 106211 106459 106381 6 106211 106458 106207 106381 106204 106205 5 106455 106232 106461 109693 106378 6 106460 106232 106233 106462 106465 109693 6 106461 106233 106235 106463 106464 106465 6 106462 106235 106464 106469 106470 106471 6 106462 106463 106465 106466 106468 106469 6 106462 106464 106461 106466 106467 109693 6 106465 106464 106467 106468 109731 109732 7 106465 106466 109693 106377 106375 109730 109731 6 106466 106464 106469 107509 107510 109732 7 106468 106464 106463 106470 107507 107509 107506 6 106469 106463 106471 106472 107506 107505 6 106470 106463 106235 106472 106473 106236 6 106470 106471 106473 106474 107504 107505 6 106472 106471 106236 106474 106475 106476 7 106472 106473 106475 107503 107504 109692 109780 6 106474 106473 106476 106477 106478 109692 6 106475 106473 106236 106237 106241 106477 6 106476 106241 106242 106475 106478 106479 7 106475 106477 106479 106480 109692 109778 109779 6 106478 106477 106242 106480 106481 106244 6 106478 106479 106481 106487 109705 109778 6 106480 106479 106244 106482 106486 106487 6 106481 106244 106245 106253 106483 106486 5 106482 106253 106484 106486 106489 7 106483 106253 106252 106485 106489 106490 106491 7 106484 106252 106254 106257 106491 106492 106493 6 106482 106483 106481 106487 106488 106489 5 106481 106486 106488 109705 106480 7 106487 106486 106489 109704 102194 102195 109705 6 106488 106486 106483 106484 106490 109704 6 106489 106484 106491 102251 102252 109704 6 106490 106484 106485 106492 102251 109706 6 106491 106485 106493 109706 103335 109707 5 106492 106485 106257 106494 109707 6 106493 106257 106258 106495 109707 106499 6 106494 106258 106496 106497 106498 106499 5 106495 106258 106259 106273 106497 6 106496 106273 106495 106498 106500 106274 6 106495 106497 106499 102511 102512 106500 7 106495 106498 102511 103334 109707 103881 106494 6 102512 106498 106497 106274 106501 109710 6 106500 106274 106275 106502 109709 109710 6 106501 106275 106276 106503 109708 109709 6 106502 106276 106504 106512 109708 109711 6 106503 106276 106277 106505 106506 106512 5 106504 106277 106506 106282 106278 7 106504 106505 106282 106507 106512 106513 106509 6 106506 106282 106283 106285 106508 106509 6 106507 106285 106286 106509 106510 106511 6 106507 106508 106510 106513 106506 106514 7 106509 106508 106511 106329 106514 106515 106519 5 106510 106508 106329 106328 106286 6 106503 106504 106506 106513 109711 109717 5 106512 106506 106509 106514 109717 7 106513 106509 106510 106515 106516 109717 109718 6 106514 106510 106516 106517 106518 106519 6 106514 106515 106517 109718 109719 106522 6 106516 106515 106518 106520 106521 106522 6 106517 106515 106519 106330 106333 106520 5 106518 106515 106510 106329 106330 7 106518 106333 106334 106517 106521 106525 106528 6 106517 106520 106522 106523 106524 106525 7 106517 106521 106523 102214 109719 106516 102213 5 106522 106521 106524 102213 103348 7 106523 106521 106525 106526 103348 103347 106532 6 106524 106521 106520 106526 106527 106528 6 106524 106525 106527 106530 106531 106532 6 106526 106525 106528 106530 106339 106529 5 106527 106525 106520 106334 106529 6 106528 106334 106335 106339 106527 106337 7 106526 106527 106531 106340 106545 106339 106534 6 106526 106530 106532 103863 106533 106534 5 106526 106531 103863 103347 106524 6 103863 106531 106534 106535 106536 106716 6 106533 106531 106535 106544 106545 106530 6 106533 106534 106536 106537 106544 106541 6 106533 106535 106537 106538 106715 106716 6 106536 106535 106538 106539 106540 106541 7 106536 106537 106539 106714 103887 103886 106715 6 106538 106537 106540 106714 106718 106719 6 106539 106537 106541 106542 106719 106708 6 106540 106537 106542 106543 106544 106535 6 106540 106541 106543 106547 106548 106708 6 106542 106541 106544 106546 106344 106547 6 106543 106541 106535 106534 106545 106546 6 106544 106534 106546 106341 106340 106530 6 106544 106545 106543 106341 106342 106344 6 106543 106344 106542 106548 106549 106345 6 106542 106547 106549 106550 106551 106708 6 106548 106547 106345 106347 106550 106349 6 106548 106549 106551 106552 106351 106349 6 106548 106550 106552 106705 106707 106708 6 106551 106550 106351 106553 106554 106705 5 106552 106351 106352 106355 106554 6 106553 106355 106357 106555 106552 106705 7 106554 106357 103971 106705 106706 109747 103491 6 103969 101597 101598 106557 104038 103968 6 106556 101598 104038 103764 100612 100611 6 106416 106417 106559 106560 106564 106565 6 106416 106558 106560 106561 106964 106965 6 106559 106558 106561 106562 106563 106564 6 106559 106560 106562 106965 106966 106967 6 106561 106560 106563 106985 106983 106967 6 106562 106560 106564 106985 106986 106567 6 106563 106560 106558 106565 106566 106567 6 106564 106558 106417 106566 106573 106419 6 106564 106565 106567 106568 106569 106573 6 106564 106566 106568 106986 106563 106987 6 106567 106566 106569 106570 106990 106987 6 106568 106566 106570 106571 106572 106573 6 106568 106569 106571 106997 106990 106998 6 106570 106569 106572 106575 107001 106998 6 106571 106569 106573 106421 106574 106575 6 106572 106569 106566 106565 106419 106421 6 106572 106421 106575 106576 106577 106422 6 106572 106574 106576 107003 107001 106571 6 106575 106574 106577 106578 107003 107004 6 106576 106574 106578 106579 106580 106422 6 106576 106577 106579 107004 107005 107006 6 106578 106577 106580 107006 107007 106582 6 106579 106577 106422 106423 106581 106582 6 106580 106423 106582 106583 106584 106425 6 106580 106581 106583 107007 106579 107008 6 106582 106581 106584 106720 107008 106585 6 106583 106581 106425 106430 106432 106585 6 106584 106432 106586 106587 106720 106583 6 106585 106432 106587 106588 106589 106433 6 106585 106586 106588 106720 106721 106728 6 106587 106586 106589 106728 106729 106730 6 106588 106586 106433 106435 106590 106730 6 106589 106435 106437 106591 106730 106731 6 106590 106437 106438 106592 106593 106731 6 106591 106438 106593 106594 106595 106439 6 106591 106592 106594 106731 106732 106733 7 106593 106592 106595 106600 106733 106597 106596 6 106594 106592 106439 106443 106453 106596 6 106595 106453 106452 106451 106597 106594 6 106596 106451 106598 106599 106600 106594 6 106597 106451 106599 106606 106607 106450 6 106597 106598 106600 106601 106602 106606 5 106597 106599 106601 106733 106594 6 106600 106599 106602 106603 106734 106733 6 106601 106599 106603 106604 106605 106606 7 106601 106602 106604 106734 106735 106736 106737 5 106603 106602 106605 106737 106738 7 106604 106602 106606 106738 106739 106748 106745 6 106605 106602 106599 106598 106607 106748 6 106606 106598 106450 106608 106747 106748 6 106607 106450 105976 106609 106610 106747 6 106608 105976 105977 106610 106611 106612 6 106608 106609 106611 106747 106746 106749 6 106610 106609 106612 106619 106620 106749 6 106611 106609 105977 106613 106616 106619 6 106612 105977 105978 106614 106615 106616 6 106613 105978 106615 106639 106640 105979 6 106613 106614 106616 106617 106638 106639 6 106613 106615 106617 106618 106619 106612 6 106616 106615 106618 106636 106637 106638 6 106616 106617 106619 106621 106622 106636 6 106616 106618 106612 106611 106620 106621 6 106611 106619 106621 106750 106749 106626 6 106620 106619 106618 106622 106623 106626 6 106621 106618 106623 106624 106635 106636 6 106621 106622 106624 106625 106626 106627 6 106623 106622 106625 106633 106634 106635 6 106623 106624 106627 106628 106632 106633 6 106621 106623 106627 106750 106620 106751 6 106626 106623 106625 106628 106629 106751 6 106627 106625 106629 106630 106631 106632 6 106627 106628 106630 106756 106753 106751 6 106629 106628 106631 106756 106757 106758 6 106630 106628 106632 106758 106766 106767 6 106631 106628 106625 106633 106767 106768 6 106632 106625 106624 106634 106768 106769 6 106633 106624 106635 106769 106770 106771 6 106634 106624 106622 106636 109785 106771 6 106635 106622 106618 106617 106637 109785 6 106636 106617 106638 106785 106783 109785 6 106637 106617 106615 106639 109777 106785 6 106638 106615 106614 106640 109777 106642 6 106639 106614 105979 105981 106641 106642 6 106640 105981 105983 106642 106643 105985 7 106640 106641 106643 109777 106639 106787 109782 6 106642 106641 105985 106168 109782 109783 6 106362 106364 106645 106646 106647 106648 6 106362 106644 106183 106646 109724 109799 6 106645 106644 106647 109723 109724 106655 6 106646 106644 106648 106652 106654 106655 6 106647 106644 106364 106649 106650 106652 6 106648 106364 106650 106651 109673 106365 6 106648 106649 106651 106652 106653 109670 6 106650 106649 109670 109671 109672 109673 6 106648 106650 106653 106647 106654 103173 6 106652 106650 109670 109691 103172 103173 6 106647 106652 103173 106655 103450 103175 6 106647 106654 103450 106656 109723 106646 6 106655 103450 106657 106658 109721 109723 6 106656 103450 106658 103179 106659 106667 6 106656 106657 106667 106668 106669 109721 6 106657 103179 106660 106663 106664 106667 6 106659 103179 103178 106661 106662 106663 6 106660 103178 103180 102858 102859 106662 5 106660 106661 106663 106666 102859 6 106660 106662 106659 106664 106665 106666 6 106659 106663 106665 106667 106668 106672 7 106664 106663 106666 106672 106673 104564 104563 6 106665 106663 106662 104563 106674 102859 5 106659 106664 106668 106658 106657 7 106667 106664 106658 106669 106670 106671 106672 6 106658 106668 106670 106774 106775 109721 6 106669 106668 106671 106773 106772 106774 6 106670 106668 106672 106673 106790 106773 5 106671 106668 106664 106665 106673 5 106672 106665 104564 106671 106790 6 104563 106666 104561 106675 102860 102859 6 104561 106674 102860 106676 104560 109792 6 106675 102860 102853 102854 106677 109792 6 106676 102854 106678 106679 106681 109792 5 106677 102854 106679 106680 102855 6 106677 106678 106680 106681 106682 106683 6 106679 106678 106685 106683 106686 102855 6 106677 106679 106682 109750 109761 109792 6 106681 106679 106683 105156 105157 109750 6 106682 106679 105156 106684 106685 106680 6 105156 106683 106685 106692 106693 106694 6 106684 106683 106680 106686 106687 106692 6 106685 106680 106687 106688 106689 102855 6 106685 106686 106688 106692 106696 106699 6 106687 106686 106689 106690 106699 106700 6 106688 106686 106690 106691 102856 102855 6 106688 106689 106691 106700 106702 102551 5 106690 106689 102856 102550 102551 6 106685 106687 106684 106693 106695 106696 6 106684 106692 106694 104523 104522 106695 5 106684 106693 104523 104532 105156 6 104522 106693 106692 106696 106697 106704 6 106695 106692 106687 106697 106698 106699 7 106695 106696 106698 106703 103505 103506 106704 6 106697 106696 106699 106700 106701 106703 5 106698 106696 106687 106688 106700 7 106699 106688 106690 106698 106701 102222 106702 6 106698 106700 102222 100064 100065 106703 5 102222 106700 106690 102551 102221 6 106698 106701 100065 100066 106697 103505 5 106697 103506 103507 104522 106695 7 106552 106554 106555 106706 106551 106707 109749 6 106705 106555 109747 103502 109748 109749 6 106551 106705 106708 106709 106710 109749 7 106551 106707 106709 106719 106540 106548 106542 6 106708 106707 106710 106711 106718 106719 7 106709 106707 106711 106712 103503 109748 109749 7 106709 106710 106712 103117 103119 106713 106718 6 106711 106710 103503 103504 103116 103117 6 106711 103119 103121 103887 106714 106718 5 106713 103887 106538 106539 106718 6 106538 103886 106536 106716 103862 106717 5 106536 106715 106533 103863 103862 6 103862 106715 103861 103342 103885 103886 6 106714 106539 106713 106711 106709 106719 5 106718 106539 106540 106709 106708 6 106585 106587 106721 106722 107008 106583 6 106720 106587 106722 106723 106727 106728 6 106720 106721 106723 106724 107009 107008 6 106722 106721 106724 106725 106726 106727 6 106722 106723 106725 107009 107010 107011 6 106724 106723 106726 107022 107011 107023 6 106725 106723 106727 107023 107026 107027 6 106726 106723 106721 106728 107027 107030 6 106727 106721 106587 106588 106729 107030 6 106728 106588 106730 107030 107031 107032 6 106729 106588 106589 106590 106731 107032 6 106730 106590 106591 106593 106732 107032 6 106731 106593 106733 106734 107032 107033 6 106732 106593 106734 106601 106600 106594 6 106732 106733 106601 106603 106735 107033 6 106734 106603 106736 107033 107034 107035 6 106735 106603 106737 106740 107035 107036 5 106736 106603 106604 106738 106740 7 106737 106604 106605 106739 106740 106741 106742 6 106738 106605 106742 106743 106744 106745 6 106736 106737 106738 106741 107036 107037 6 106740 106738 106742 107037 107038 107039 6 106741 106738 106739 106743 107039 107040 7 106742 106739 106744 107040 107041 106754 107042 5 106743 106739 106745 106746 107042 6 106744 106739 106746 106747 106748 106605 7 106744 106745 106747 106610 106749 106750 107042 6 106746 106745 106748 106607 106608 106610 5 106747 106745 106607 106605 106606 5 106746 106610 106750 106620 106611 7 106746 106749 106620 106626 106751 106752 107042 6 106750 106626 106752 106753 106629 106627 5 106750 106751 106753 106754 107042 6 106752 106751 106754 106755 106756 106629 7 106752 106753 106755 107041 106743 107042 107141 5 106754 106753 106756 107141 106759 6 106755 106753 106629 106630 106757 106759 6 106756 106630 106758 106759 106760 106761 6 106757 106630 106631 106761 106762 106766 6 106756 106757 106760 107141 106755 107142 6 106759 106757 106761 107142 107143 107144 6 106760 106757 106758 106762 106763 107144 6 106761 106758 106763 104559 106764 106766 6 106761 106762 104559 104551 107144 104550 6 104559 106762 104558 104565 106765 106766 5 104565 106764 106766 106790 106767 6 106765 106764 106762 106758 106631 106767 6 106766 106631 106632 106768 106790 106765 6 106767 106632 106633 106769 106773 106790 6 106768 106633 106634 106770 106772 106773 6 106769 106634 106771 106772 106777 106778 6 106770 106634 106778 106779 106635 109785 6 106769 106770 106773 106670 106774 106777 6 106769 106772 106670 106671 106790 106768 6 106670 106772 106669 106775 106776 106777 6 106669 106774 106776 109721 109722 109798 7 106775 106774 106777 106778 106780 109797 109798 5 106776 106774 106772 106770 106778 6 106777 106770 106771 106779 106780 106776 6 106778 106771 106780 106781 106783 109785 6 106778 106779 106781 106782 106776 109797 6 106780 106779 106782 106176 106783 106784 5 106780 106781 106176 106177 109797 6 106781 106779 106784 106785 106637 109785 7 106781 106783 106176 106174 106785 106786 106788 7 106784 106783 106786 106787 109777 106638 106637 6 106784 106785 106787 106788 106171 106789 6 106786 106785 109777 106642 109782 106789 5 106784 106786 106171 106172 106174 5 106171 106786 106170 106787 109782 8 106671 106673 106773 104564 104565 106765 106768 106767 6 105418 105419 106792 107331 107332 107333 6 106791 105419 105420 105428 106793 107333 6 106792 105428 105429 106794 107333 107334 6 106793 105429 105430 106795 107334 107335 6 106794 105430 105432 105433 106796 107335 6 106795 105433 105434 106797 107335 107336 6 106796 105434 105435 106798 107336 107337 6 106797 105435 105436 106799 107337 107338 6 106798 105436 105437 106800 107338 107339 6 106799 105437 105438 106801 107339 107340 6 106800 105438 106802 107340 107341 107342 6 106801 105438 105439 105440 106803 107342 6 106802 105440 105441 106804 107342 107343 6 106803 105441 105442 106805 107343 107344 6 106804 105442 105444 106806 107344 107345 6 106805 105444 105445 106807 107345 107346 6 106806 105445 105446 106808 107346 107347 6 106807 105446 106809 107347 107348 107349 6 106808 105446 105447 106810 107349 106811 5 106809 105447 105217 105218 106811 6 106810 105218 105219 106812 107349 106809 5 106811 105219 106813 107349 107350 6 106812 105219 105220 106814 107350 107351 7 106813 105220 105221 105222 106815 107351 107352 5 106814 105222 106816 107352 107353 7 106815 105222 105223 105224 106817 107353 107354 5 106816 105224 106818 107354 107355 6 106817 105224 106819 107355 107356 107357 6 106818 105224 105225 105226 106820 107357 5 106819 105226 105227 106821 107357 6 106820 105227 106822 107357 107358 107359 7 106821 105227 105228 105229 106823 107359 107360 5 106822 105229 106824 106825 107360 5 106823 105229 106825 106826 105167 7 106823 106824 106826 106827 106828 107362 107360 5 106825 106824 105167 105168 106827 6 106826 105168 106825 106828 106829 106830 6 106825 106827 106829 107362 107363 107364 6 106828 106827 106830 107364 107365 107366 6 106829 106827 105168 105169 106831 107366 7 106830 105169 106832 107366 107367 107368 106834 5 106831 105169 106833 105238 106834 5 106832 105169 105238 105018 105023 6 106832 105238 105239 106835 107368 106831 6 106834 105239 105648 106836 107375 107368 7 106835 105648 106837 107375 107374 107376 107377 6 106836 105648 105649 105651 106838 107377 6 106837 105651 106839 107377 107378 107379 6 106838 105651 105652 106840 106841 107379 6 106839 105652 105653 105247 106841 105248 6 106839 106840 105248 106842 107379 107380 6 106841 105248 105249 106843 107380 107381 6 106842 105249 106844 107381 107382 107383 6 106843 105249 105028 105029 106845 107383 6 106844 105029 105030 106846 106847 107383 6 106845 105030 106847 106848 106849 105031 6 106845 106846 106848 107384 107383 107385 6 106847 106846 106849 107385 107386 107387 6 106848 106846 105031 105032 106850 107387 6 106849 105032 105033 105034 106851 107387 6 106850 105034 106852 107387 107388 106854 6 106851 105034 105035 105038 106853 106854 6 106852 105038 106854 106855 106856 105039 6 106852 106853 106855 107388 106851 107389 6 106854 106853 106856 106857 106859 107389 6 106855 106853 105039 106857 106858 105041 6 106855 106856 106858 106859 106860 106861 6 106857 106856 105041 106861 106862 106863 6 106855 106857 106860 107389 107390 107397 6 106859 106857 106861 107397 107398 107399 6 106860 106857 106858 106862 107399 107400 6 106861 106858 106863 106864 106865 107400 6 106862 106858 106864 105042 106879 105041 6 106862 106863 106865 106866 106879 106873 6 106862 106864 106866 106867 107400 107401 6 106865 106864 106867 106868 106872 106873 6 106865 106866 106868 106869 107401 107402 6 106867 106866 106869 106870 106871 106872 6 106867 106868 106870 107405 107402 107406 6 106869 106868 106871 107412 107406 107413 6 106870 106868 106872 107419 107416 107413 6 106871 106868 106866 106873 106874 107419 6 106872 106866 106874 106875 106864 106879 6 106872 106873 106875 106876 107419 107418 6 106874 106873 106876 106877 106878 106879 6 106874 106875 106877 106883 106884 107418 6 106876 106875 106878 106880 106882 106883 6 106877 106875 106879 106880 105043 105042 6 106878 106875 105042 106863 106864 106873 6 106877 106878 105043 105045 106881 106882 6 106880 105045 106882 106887 106888 106889 6 106880 106881 106877 106883 106886 106887 6 106877 106882 106876 106884 106885 106886 6 106876 106883 106885 107418 107420 107426 6 106884 106883 106886 107426 107427 107428 6 106885 106883 106882 106887 107428 107429 6 106886 106882 106881 106888 107429 107430 6 106887 106881 106889 106890 107430 107433 6 106888 106881 105045 106890 104645 104644 6 106888 106889 104645 104646 106891 107433 6 106890 104646 104647 106892 107433 106893 6 106891 104647 104253 104254 104730 106893 6 106892 104730 106894 107433 106891 107432 6 106893 104730 104731 106895 106897 107432 6 106894 104731 106896 106897 106898 106899 6 106895 104731 104732 106899 106900 106901 6 106894 106895 106898 107432 107431 107434 6 106897 106895 106899 107434 107435 107436 6 106898 106895 106896 106900 107436 107437 6 106899 106896 106901 107437 106904 106903 6 106900 106896 104732 104262 106902 106903 6 106901 104262 104263 104264 105231 106903 6 106902 105231 105458 106904 106900 106901 6 106903 105458 105459 106905 107437 106900 6 106904 105459 106906 107437 107438 107439 6 106905 105459 105460 106907 107439 107440 6 106906 105460 105461 106908 107262 107440 6 106907 105461 105462 106909 107262 107263 6 106908 105462 106910 107263 107264 106911 6 106909 105462 105463 105464 105465 106911 6 106910 105465 106912 107264 106909 107265 6 106911 105465 105466 106913 107265 107266 6 106912 105466 105467 106914 107266 107267 6 106913 105467 106915 107267 107268 107269 6 106914 105467 105468 106916 106917 107269 6 106915 105468 105469 105470 105471 106917 6 106915 106916 105471 106918 107269 107270 6 106917 105471 105472 106919 107270 107271 6 106918 105472 105473 106920 107271 107272 6 106919 105473 105474 105475 106921 107272 6 106920 105475 106922 107274 107272 107275 6 106921 105475 105476 106923 107275 107276 6 106922 105476 105477 106924 107276 107277 6 106923 105477 105478 106925 107277 107278 6 106924 105478 105479 106926 107278 107279 6 106925 105479 105480 105654 106927 107279 6 106926 105654 105655 106928 107281 107279 6 106927 105655 106929 107281 107282 107283 6 106928 105655 105656 105657 106930 107283 6 106929 105657 106931 107283 107284 107285 6 106930 105657 105658 105831 106932 107285 6 106931 105831 106933 107285 107286 107287 6 106932 105831 105832 105840 106934 107287 6 106933 105840 105841 106935 106936 107287 6 106934 105841 105843 106936 106937 106018 6 106934 106935 106937 106938 107287 107288 6 106936 106935 106018 106938 106939 106940 6 106936 106937 106939 107288 107289 107290 6 106938 106937 106940 107290 107291 106941 6 106939 106937 106018 105845 105847 106941 6 106940 105847 106942 106943 107291 106939 6 106941 105847 106943 106944 106945 105848 6 106941 106942 106944 107291 107292 107293 6 106943 106942 106945 107293 107294 107295 7 106944 106942 105848 105850 106385 106946 107295 6 106945 106385 106386 106947 107295 107296 6 106946 106386 106387 106388 106948 107296 6 106947 106388 106389 106949 107296 107297 7 106948 106389 106391 106395 106950 107297 107298 6 106949 106395 106951 107298 107300 107301 6 106950 106395 106396 106952 107043 107301 6 106951 106396 106399 106953 107043 107044 6 106952 106399 106400 106954 106955 107044 6 106953 106400 106401 106955 106956 106960 6 106953 106954 106956 106957 107044 107045 6 106955 106954 106957 106958 106959 106960 6 106955 106956 106958 107045 107048 107049 6 106957 106956 106959 106961 106962 107049 6 106958 106956 106960 106410 106411 106961 6 106959 106956 106954 106401 106402 106410 6 106959 106411 106958 106962 106963 106412 6 106958 106961 106963 107051 107049 107052 6 106962 106961 106412 106414 106964 107052 6 106963 106414 106416 106559 106965 107052 6 106964 106559 106561 106966 107052 106971 6 106965 106561 106967 106968 106970 106971 6 106966 106561 106968 106969 106562 106983 6 106966 106967 106969 106970 106974 106975 6 106968 106967 106981 106975 106982 106983 6 106966 106968 106971 106972 106973 106974 6 106966 106970 106972 107052 106965 107051 6 106971 106970 106973 107051 107050 107053 6 106972 106970 106974 107062 107053 107063 6 106973 106970 106968 106975 106976 107063 6 106974 106968 106976 106977 106981 106969 6 106974 106975 106977 106978 107063 107064 6 106976 106975 106978 106979 106980 106981 6 106976 106977 106979 107064 107065 107066 6 106978 106977 106980 107066 107067 107071 6 106979 106977 106981 107071 107072 107073 6 106980 106977 106975 106969 106982 107073 6 106981 106969 106983 106984 107073 107074 6 106982 106969 106984 106985 106562 106967 6 106982 106983 106985 107074 107075 107076 6 106984 106983 106562 106563 106986 107076 6 106985 106563 106567 106987 106988 107076 6 106986 106567 106988 106989 106990 106568 6 106986 106987 106989 106991 107076 107077 6 106988 106987 106990 106991 106992 106996 6 106989 106987 106996 106997 106570 106568 6 106988 106989 106992 106993 107077 107078 6 106991 106989 106993 106994 106995 106996 6 106991 106992 106994 107078 107081 107082 6 106993 106992 106995 107082 107085 107086 6 106994 106992 106996 107086 107087 107088 6 106995 106992 106989 106990 106997 107088 6 106996 106990 106570 106998 106999 107088 6 106997 106570 106999 107000 107001 106571 6 106997 106998 107000 107088 107089 107092 6 106999 106998 107001 107002 107092 107093 6 107000 106998 107002 107003 106575 106571 6 107000 107001 107003 107093 107094 107095 6 107002 107001 106575 106576 107004 107095 6 107003 106576 106578 107005 107095 107096 6 107004 106578 107006 107096 107097 107098 6 107005 106578 106579 107007 107012 107098 6 107006 106579 106582 107008 107009 107012 6 107007 106582 107009 106722 106720 106583 6 107007 107008 106722 106724 107010 107012 6 107009 106724 107011 107012 107013 107014 6 107010 106724 107022 107020 107014 106725 6 107009 107010 107007 107006 107013 107098 6 107012 107010 107014 107015 107098 107099 6 107013 107010 107015 107016 107020 107011 6 107013 107014 107016 107017 107099 107100 6 107015 107014 107017 107018 107019 107020 6 107015 107016 107018 107107 107100 107113 6 107017 107016 107019 107114 107113 107115 6 107018 107016 107020 107021 107115 107116 6 107019 107016 107014 107021 107022 107011 6 107019 107020 107022 107024 107116 107117 6 107021 107020 107011 106725 107023 107024 6 107022 106725 106726 107024 107025 107026 6 107021 107022 107023 107025 107117 107118 6 107024 107023 107026 107118 107119 107120 6 107025 107023 106726 107027 107028 107120 6 107026 106726 106727 107028 107029 107030 6 107026 107027 107029 107122 107120 107123 6 107028 107027 107030 107123 107034 107031 6 107029 107027 106727 106728 106729 107031 6 107030 106729 107032 107034 107029 107033 6 107031 106729 106730 106731 106732 107033 6 107032 106732 106734 106735 107034 107031 6 107033 106735 107035 107123 107029 107031 5 107034 106735 106736 107036 107123 6 107035 106736 106740 107037 107123 107122 7 107036 106740 106741 107038 107122 107124 107125 6 107037 106741 107039 107135 107125 107136 6 107038 106741 106742 107040 107136 107137 6 107039 106742 106743 107041 107137 107138 5 107040 106743 106754 107141 107138 6 106754 106743 106744 106746 106750 106752 6 106951 106952 107044 107301 107302 107046 6 107043 106952 106953 106955 107045 107046 6 107044 106955 106957 107046 107047 107048 6 107044 107045 107047 107302 107043 107303 6 107046 107045 107048 107303 107056 107054 6 107047 107045 106957 107049 107050 107054 6 107048 106957 107050 107051 106962 106958 6 107048 107049 107051 106972 107053 107054 6 107050 107049 106962 107052 106971 106972 6 107051 106962 106963 106964 106965 106971 6 107050 106972 107054 107055 107062 106973 6 107050 107053 107055 107056 107047 107048 6 107054 107053 107056 107057 107058 107062 6 107054 107055 107057 107303 107047 107304 6 107056 107055 107058 107059 107307 107304 6 107057 107055 107059 107060 107061 107062 6 107057 107058 107060 107307 107476 107477 6 107059 107058 107061 107477 107478 107479 6 107060 107058 107062 107063 107064 107479 6 107061 107058 107055 107053 106973 107063 6 107062 106973 106974 106976 107061 107064 6 107061 107063 106976 106978 107065 107479 6 107064 106978 107066 107479 107480 107481 6 107065 106978 106979 107067 107068 107481 6 107066 106979 107068 107069 107070 107071 6 107066 107067 107069 107483 107481 107462 6 107068 107067 107070 107462 107484 107485 6 107069 107067 107071 107485 107486 107487 6 107070 107067 106979 106980 107072 107487 6 107071 106980 107073 107487 107488 107492 6 107072 106980 106981 106982 107074 107492 6 107073 106982 106984 107075 107493 107492 6 107074 106984 107076 107493 107079 107077 6 107075 106984 106985 106986 106988 107077 6 107076 106988 106991 107078 107079 107075 6 107077 106991 106993 107079 107080 107081 6 107077 107078 107080 107691 107493 107075 6 107079 107078 107081 107223 107224 107691 6 107080 107078 106993 107082 107083 107223 6 107081 106993 106994 107083 107084 107085 6 107081 107082 107084 107226 107223 107227 6 107083 107082 107085 107227 107228 107229 6 107084 107082 106994 107086 107232 107229 6 107085 106994 106995 107087 107232 107233 6 107086 106995 107088 107089 107090 107233 6 107087 106995 106996 106997 106999 107089 6 107088 106999 107087 107090 107091 107092 6 107087 107089 107091 107233 107234 107235 6 107090 107089 107092 107235 107236 107237 6 107091 107089 106999 107000 107093 107237 6 107092 107000 107002 107094 107237 107238 6 107093 107002 107095 107238 107239 107103 6 107094 107002 107003 107004 107096 107103 6 107095 107004 107005 107097 107102 107103 6 107096 107005 107098 107099 107101 107102 6 107097 107005 107006 107012 107013 107099 6 107098 107013 107015 107100 107101 107097 6 107099 107015 107101 107106 107107 107017 6 107099 107100 107097 107102 107105 107106 6 107097 107101 107096 107103 107104 107105 6 107096 107102 107104 107239 107094 107095 6 107103 107102 107105 107241 107239 107242 6 107104 107102 107101 107106 107242 107243 6 107105 107101 107100 107107 107108 107243 6 107106 107100 107017 107108 107109 107113 6 107106 107107 107109 107110 107243 107244 6 107108 107107 107110 107111 107112 107113 6 107108 107109 107111 107247 107244 107248 6 107110 107109 107112 107248 107249 107250 6 107111 107109 107113 107114 107250 107251 6 107112 107109 107114 107018 107017 107107 6 107112 107113 107018 107115 107251 107254 6 107114 107018 107019 107116 107254 107255 6 107115 107019 107021 107117 107258 107255 6 107116 107021 107024 107118 107258 107259 6 107117 107024 107025 107119 107259 107128 6 107118 107025 107120 107121 107127 107128 6 107119 107025 107121 107122 107028 107026 6 107119 107120 107122 107124 107126 107127 7 107121 107120 107028 107123 107036 107037 107124 6 107122 107028 107029 107034 107035 107036 5 107122 107037 107125 107126 107121 5 107124 107037 107126 107135 107038 7 107124 107125 107121 107127 107130 107131 107135 6 107121 107126 107119 107128 107129 107130 6 107119 107127 107129 107261 107259 107118 6 107128 107127 107130 107261 107532 107530 6 107129 107127 107126 107131 107132 107532 6 107130 107126 107132 107133 107134 107135 6 107130 107131 107133 107532 107531 107533 6 107132 107131 107134 107533 107534 107535 6 107133 107131 107135 107535 107536 107136 6 107134 107131 107126 107125 107038 107136 6 107135 107038 107039 107137 107536 107134 6 107136 107039 107040 107138 107139 107536 6 107137 107040 107139 107140 107141 107041 6 107137 107138 107140 107148 107150 107536 6 107139 107138 107141 107142 107147 107148 7 107140 107138 107041 106754 106755 106759 107142 6 107140 107141 106759 106760 107143 107147 6 107142 106760 107144 107145 107146 107147 7 107143 106760 107145 104552 104551 106763 106761 5 107143 107144 104552 104554 107146 6 107145 104554 104556 107143 107147 107148 5 107143 107146 107148 107140 107142 7 107147 107146 104556 107140 107139 107149 107150 6 107148 104556 107150 107151 107152 107153 6 107148 107149 107139 107151 107536 107535 6 107150 107149 107152 107535 107534 107537 6 107151 107149 107153 107154 107155 107537 6 107152 107149 107154 104649 104555 104556 6 107152 107153 107155 107156 107166 104649 6 107152 107154 107156 107157 107537 107538 6 107155 107154 107157 107158 107159 107166 6 107155 107156 107158 107538 107539 107554 6 107157 107156 107159 107160 107554 107555 6 107158 107156 107160 107161 107162 107166 6 107158 107159 107161 107163 107167 107555 6 107160 107159 107162 107163 104137 107164 5 107161 107159 107164 107165 107166 6 107160 107161 104137 107167 107168 104138 7 104137 107161 107162 107165 104413 104134 104135 5 107164 107162 104413 104415 107166 7 104415 107165 107162 107159 107156 107154 104649 6 107160 107163 107168 107555 107556 107560 7 107167 107163 104138 107169 107560 107561 107562 5 107168 104138 104139 107170 107562 7 107169 104139 104140 107171 107562 107563 107564 6 107170 104140 104124 107172 107173 107564 6 107171 104124 107173 107174 104122 109789 6 107171 107172 107174 107175 107176 107564 6 107173 107172 107175 109788 109787 109789 6 107173 107174 107176 107177 107178 109788 7 107173 107175 107177 107564 107563 107568 107569 6 107176 107175 107178 107179 107180 107569 6 107177 107175 107179 109788 103535 103537 6 107177 107178 107180 107181 107182 103537 6 107177 107179 107181 107570 107569 107571 6 107180 107179 107182 107571 107572 107573 6 107181 107179 103537 103538 107183 107573 6 107182 103538 107184 107575 107573 107187 6 107183 103538 103539 107185 107186 107187 6 107184 103539 107186 107211 107210 107212 6 107184 107185 107187 107188 107211 107192 6 107184 107186 107188 107189 107575 107183 6 107187 107186 107189 107190 107191 107192 6 107187 107188 107190 107575 107576 107579 6 107189 107188 107191 107193 107579 107580 6 107190 107188 107192 107193 107194 107198 6 107191 107188 107198 107199 107211 107186 6 107190 107191 107194 107195 107580 107581 6 107193 107191 107195 107196 107197 107198 6 107193 107194 107196 107581 107582 107583 6 107195 107194 107197 107583 103196 103195 6 107196 107194 107198 103195 107200 107203 6 107197 107194 107191 107192 107199 107200 6 107198 107192 107200 107201 107211 107208 6 107198 107199 107201 107202 107203 107197 6 107200 107199 107202 107206 107207 107208 6 107200 107201 107203 107204 107205 107206 6 107200 107202 107204 103194 103195 107197 6 107203 107202 107205 107220 107221 103194 6 107204 107202 107206 109745 107218 107220 6 107205 107202 107201 107207 109745 109746 6 107206 107201 107208 107209 109746 107213 6 107207 107201 107209 107210 107211 107199 6 107207 107208 107210 104373 104374 107213 6 107209 107208 107211 107185 107212 104373 6 107210 107208 107199 107192 107186 107185 6 107210 107185 103539 103540 104372 104373 6 107209 104374 104375 107214 109746 107207 6 107213 104375 104377 107215 107216 109746 6 107214 104377 107216 102863 101627 102862 6 107214 107215 102863 107217 109745 109746 6 107216 102863 102864 102865 107218 109745 6 107217 102865 107219 107220 107205 109745 5 107218 102865 107220 103214 102866 6 107218 107219 103214 107221 107205 107204 6 107220 103214 103215 107222 103194 107204 5 107221 103215 103216 103193 103194 6 107080 107081 107224 107225 107226 107083 6 107080 107223 107225 107691 107690 107692 6 107224 107223 107226 107692 107693 107674 6 107225 107223 107083 107227 107674 107694 6 107226 107083 107084 107228 107694 107695 6 107227 107084 107229 107230 107695 107696 6 107228 107084 107230 107231 107232 107085 6 107228 107229 107231 107696 107697 107701 6 107230 107229 107232 107701 107702 107703 6 107231 107229 107085 107086 107233 107703 6 107232 107086 107087 107090 107234 107703 6 107233 107090 107235 107718 107704 107703 6 107234 107090 107091 107236 107718 107717 6 107235 107091 107237 107717 107719 107720 6 107236 107091 107092 107093 107238 107720 6 107237 107093 107094 107239 107240 107720 6 107238 107094 107103 107240 107241 107104 6 107238 107239 107241 107720 107721 107722 6 107240 107239 107104 107242 107722 107725 6 107241 107104 107105 107243 107245 107725 6 107242 107105 107106 107108 107244 107245 6 107243 107108 107245 107246 107247 107110 6 107243 107244 107246 107728 107725 107242 6 107245 107244 107247 107964 107728 107965 6 107246 107244 107110 107248 107965 107966 6 107247 107110 107111 107249 107966 107967 6 107248 107111 107250 107511 107967 107968 6 107249 107111 107112 107251 107252 107511 6 107250 107112 107114 107252 107253 107254 6 107250 107251 107253 107511 107512 107516 6 107252 107251 107254 107256 109775 107516 6 107253 107251 107114 107115 107255 107256 6 107254 107115 107256 107257 107258 107116 6 107254 107255 107257 107523 107253 109775 6 107256 107255 107258 107260 107524 107523 6 107257 107255 107116 107117 107259 107260 6 107258 107117 107118 107260 107261 107128 6 107258 107259 107261 107529 107524 107257 6 107260 107259 107128 107129 107530 107529 6 106907 106908 107263 107440 107442 107443 6 107262 106908 106909 107264 107443 107444 6 107263 106909 106911 107265 107444 107445 6 107264 106911 106912 107266 107445 107446 6 107265 106912 106913 107267 107449 107446 6 107266 106913 106914 107268 107449 107450 6 107267 106914 107269 107450 107451 107452 6 107268 106914 106915 106917 107270 107452 6 107269 106917 106918 107271 107452 107453 6 107270 106918 106919 107272 107273 107453 6 107271 106919 107273 107274 106921 106920 6 107271 107272 107274 107453 107454 107455 6 107273 107272 106921 107275 107455 107456 6 107274 106921 106922 107276 107456 107457 6 107275 106922 106923 107277 107457 107458 6 107276 106923 106924 107278 107458 107459 6 107277 106924 106925 107279 107280 107459 6 107278 106925 107280 107281 106927 106926 6 107278 107279 107281 107459 107460 107464 6 107280 107279 106927 106928 107282 107464 6 107281 106928 107283 107464 107465 107466 6 107282 106928 106929 106930 107284 107466 6 107283 106930 107285 107466 107467 107468 6 107284 106930 106931 106932 107286 107468 6 107285 106932 107287 107468 107469 107288 6 107286 106932 106933 106934 106936 107288 6 107287 106936 106938 107289 107469 107286 6 107288 106938 107290 107469 107470 107471 6 107289 106938 106939 107291 107471 107472 6 107290 106939 106941 106943 107292 107472 6 107291 106943 107293 107472 107473 107474 6 107292 106943 106944 107294 107474 107299 6 107293 106944 107295 107297 107298 107299 6 107294 106944 106945 106946 107296 107297 5 107295 106946 106947 106948 107297 6 107296 106948 106949 107295 107294 107298 6 107294 107297 106949 106950 107299 107300 5 107294 107298 107300 107474 107293 7 107299 107298 106950 107301 107474 107305 107302 5 107300 106950 106951 107043 107302 6 107301 107043 107046 107303 107305 107300 6 107302 107046 107047 107056 107304 107305 6 107303 107056 107305 107306 107307 107057 6 107303 107304 107306 107474 107300 107302 6 107305 107304 107307 107474 107473 107475 6 107306 107304 107057 107059 107475 107476 5 104702 104703 107309 107855 107856 6 107308 104703 104704 107310 107856 107857 6 107309 104704 104705 107311 107857 107858 6 107310 104705 104706 107312 107858 107859 6 107311 104706 104707 105170 107313 107859 6 107312 105170 107314 107859 107860 107861 6 107313 105170 105171 107315 107861 107862 6 107314 105171 105172 107316 107862 107863 6 107315 105172 105173 107317 107863 107864 6 107316 105173 105174 107318 107864 107865 6 107317 105174 105175 107319 107865 107866 6 107318 105175 105176 107320 107866 107867 6 107319 105176 105177 105178 107321 107867 6 107320 105178 107322 107867 107868 107869 6 107321 105178 105179 107323 107869 107870 6 107322 105179 105180 105411 107324 107870 6 107323 105411 107325 107870 107871 107872 6 107324 105411 105412 107326 107872 107873 6 107325 105412 105413 105414 107327 107873 6 107326 105414 107328 107873 107874 107875 6 107327 105414 105415 105416 107329 107875 6 107328 105416 107330 107875 107876 107877 6 107329 105416 105417 105418 107331 107877 6 107330 105418 106791 107332 107877 107878 6 107331 106791 107333 107878 107879 107880 6 107332 106791 106792 106793 107334 107880 6 107333 106793 106794 107335 107880 107881 6 107334 106794 106795 106796 107336 107881 6 107335 106796 106797 107337 107881 107882 6 107336 106797 106798 107338 107882 107883 6 107337 106798 106799 107339 107883 107884 6 107338 106799 106800 107340 107884 107885 6 107339 106800 106801 107341 107885 107886 6 107340 106801 107342 107886 107887 107888 6 107341 106801 106802 106803 107343 107888 6 107342 106803 106804 107344 107888 107889 6 107343 106804 106805 107345 107889 107890 6 107344 106805 106806 107346 107890 107891 6 107345 106806 106807 107347 107891 107892 6 107346 106807 106808 107348 107892 107893 6 107347 106808 107349 107893 107894 107895 7 107348 106808 106809 106811 106812 107350 107895 6 107349 106812 106813 107351 107895 107896 6 107350 106813 106814 107352 107896 107897 5 107351 106814 106815 107353 107897 7 107352 106815 106816 107354 107897 107898 107899 5 107353 106816 106817 107355 107899 7 107354 106817 106818 107356 107899 107900 107901 6 107355 106818 107357 107901 107902 107903 7 107356 106818 106819 106820 106821 107358 107903 6 107357 106821 107359 107903 107904 107905 6 107358 106821 106822 107360 107361 107905 6 107359 106822 106823 107361 107362 106825 6 107359 107360 107362 107905 107906 107907 6 107361 107360 106825 106828 107363 107907 6 107362 106828 107364 107907 107908 107909 5 107363 106828 106829 107365 107909 7 107364 106829 107366 107369 107371 107909 107910 6 107365 106829 106830 106831 107367 107369 6 107366 106831 107368 107369 107370 107375 5 107367 106831 107375 106835 106834 6 107366 107367 107370 107365 107371 107372 6 107369 107367 107372 107373 107374 107375 6 107365 107369 107372 107910 107911 107912 6 107371 107369 107370 107373 107912 107913 6 107372 107370 107374 107913 107914 107915 6 107373 107370 107375 106836 107376 107915 6 107374 107370 107367 107368 106835 106836 6 107374 106836 107377 107915 107916 107917 6 107376 106836 106837 106838 107378 107917 5 107377 106838 107379 107601 107917 6 107378 106838 106839 106841 107380 107601 6 107379 106841 106842 107381 107601 107602 6 107380 106842 106843 107382 107605 107602 6 107381 106843 107383 107384 107605 107606 6 107382 106843 107384 106847 106845 106844 6 107382 107383 106847 107385 107606 107607 6 107384 106847 106848 107386 107607 107392 6 107385 106848 107387 107388 107391 107392 6 107386 106848 106849 106850 106851 107388 6 107387 106851 106854 107389 107391 107386 6 107388 106854 106855 106859 107390 107391 6 107389 106859 107391 107396 107393 107397 6 107389 107390 107388 107386 107392 107393 6 107386 107391 107393 107394 107607 107385 6 107392 107391 107394 107395 107396 107390 6 107392 107393 107395 107607 107608 107611 6 107394 107393 107396 107611 107612 107622 6 107395 107393 107390 107397 107622 107623 6 107396 107390 106859 106860 107398 107623 5 107397 106860 107399 107623 107624 6 107398 106860 106861 107400 107624 107625 7 107399 106861 106862 106865 107401 107625 107626 6 107400 106865 106867 107402 107403 107626 6 107401 106867 107403 107404 107405 106869 6 107401 107402 107404 107626 107627 107628 6 107403 107402 107405 107408 107628 107629 6 107404 107402 106869 107406 107407 107408 6 107405 106869 107407 107411 107412 106870 6 107405 107406 107408 107409 107410 107411 6 107405 107407 107404 107409 107632 107629 6 107408 107407 107410 107632 107633 107634 6 107409 107407 107411 107634 107635 107642 6 107410 107407 107406 107412 107642 107643 6 107411 107406 106870 107413 107414 107643 6 107412 106870 107414 107415 107416 106871 6 107412 107413 107415 107643 107644 107645 6 107414 107413 107416 107417 107645 107646 6 107415 107413 107417 107418 107419 106871 6 107415 107416 107418 107420 107421 107646 7 107417 107416 107419 106874 106876 106884 107420 5 107418 107416 106871 106872 106874 6 107418 106884 107417 107421 107422 107426 6 107417 107420 107422 107423 107646 107647 6 107421 107420 107423 107424 107425 107426 6 107421 107422 107424 107647 107648 107649 6 107423 107422 107425 107649 107650 107651 6 107424 107422 107426 107651 107652 107427 6 107425 107422 107420 106884 106885 107427 6 107426 106885 107428 107652 107425 107653 6 107427 106885 106886 107429 107653 107654 6 107428 106886 106887 107430 107431 107654 6 107429 106887 106888 107431 107432 107433 6 107429 107430 107432 106897 107434 107654 6 107431 107430 107433 106893 106894 106897 6 107432 107430 106888 106890 106891 106893 6 107431 106897 106898 107435 107655 107654 6 107434 106898 107436 107655 107656 107660 6 107435 106898 106899 107437 107660 107438 6 107436 106899 106900 106904 106905 107438 6 107437 106905 107439 107660 107436 107661 6 107438 106905 106906 107440 107441 107661 6 107439 106906 106907 107262 107441 107442 6 107439 107440 107442 107661 107662 107663 6 107441 107440 107262 107443 107663 107664 6 107442 107262 107263 107444 107664 107665 6 107443 107263 107264 107445 107665 107666 6 107444 107264 107265 107446 107447 107666 6 107445 107265 107447 107448 107449 107266 6 107445 107446 107448 107668 107666 107671 6 107447 107446 107449 107671 107676 107673 6 107448 107446 107266 107267 107450 107676 6 107449 107267 107268 107451 107676 107677 6 107450 107268 107452 107677 107678 107682 6 107451 107268 107269 107270 107453 107682 6 107452 107270 107271 107273 107454 107682 6 107453 107273 107455 107682 107681 107683 6 107454 107273 107274 107456 107686 107683 6 107455 107274 107275 107457 107686 107687 6 107456 107275 107276 107458 107687 107688 6 107457 107276 107277 107459 107688 107461 6 107458 107277 107278 107280 107460 107461 6 107459 107280 107461 107462 107463 107464 6 107459 107460 107462 107688 107458 107484 7 107461 107460 107463 107483 107068 107069 107484 6 107462 107460 107464 107483 107482 107465 6 107463 107460 107280 107281 107282 107465 6 107464 107282 107466 107482 107463 107494 6 107465 107282 107283 107284 107467 107494 6 107466 107284 107468 107494 107495 107496 6 107467 107284 107285 107286 107469 107496 6 107468 107286 107288 107289 107470 107496 6 107469 107289 107471 107496 107497 107498 6 107470 107289 107290 107472 107498 107475 6 107471 107290 107291 107292 107473 107475 5 107472 107292 107474 107306 107475 7 107473 107292 107293 107299 107300 107305 107306 7 107473 107306 107307 107476 107498 107471 107472 5 107475 107307 107059 107477 107498 6 107476 107059 107060 107478 107497 107498 7 107477 107060 107479 107480 107497 107495 107499 6 107478 107060 107061 107064 107065 107480 6 107478 107479 107065 107481 107482 107499 6 107480 107065 107482 107483 107068 107066 7 107480 107481 107483 107463 107465 107494 107499 5 107482 107481 107068 107462 107463 5 107462 107069 107485 107688 107461 6 107484 107069 107070 107486 107687 107688 6 107485 107070 107487 107686 107687 107685 7 107486 107070 107071 107072 107488 107489 107685 6 107487 107072 107489 107490 107491 107492 5 107487 107488 107490 107685 107684 6 107489 107488 107491 107684 107689 107690 6 107490 107488 107492 107493 107690 107691 6 107491 107488 107493 107074 107073 107072 6 107491 107492 107074 107075 107691 107079 6 107482 107465 107466 107467 107495 107499 6 107494 107467 107496 107497 107478 107499 6 107495 107467 107468 107469 107470 107497 6 107496 107470 107498 107477 107478 107495 6 107497 107470 107471 107477 107476 107475 5 107495 107478 107480 107482 107494 6 100427 105612 105613 107501 107502 109768 6 107500 105613 107502 107503 107504 107505 6 107500 107501 107503 109768 109769 109770 6 107502 107501 107504 106474 109770 109780 5 107503 107501 106474 106472 107505 7 106472 107504 107501 105613 105614 107506 106470 5 107505 105614 107507 106469 106470 6 107506 105614 105615 107508 107509 106469 6 107507 105615 107509 107510 109734 104518 5 107507 107508 107510 106469 106468 6 107509 107508 106468 109732 109733 109734 6 107249 107250 107252 107512 107513 107968 6 107511 107252 107513 107514 107515 107516 6 107511 107512 107514 107968 107969 107970 6 107513 107512 107515 107970 107971 107972 6 107514 107512 107516 107517 107518 107972 6 107515 107512 107252 107517 109775 107253 6 107515 107516 107518 107519 107520 109775 6 107515 107517 107519 107972 107973 107977 6 107518 107517 107520 107521 107977 107978 6 107519 107517 107521 107522 107523 109775 6 107519 107520 107522 107989 107978 107526 6 107521 107520 107523 107524 107525 107526 6 107522 107520 107524 107256 107257 109775 6 107522 107523 107525 107260 107529 107257 6 107522 107524 107526 107527 107528 107529 6 107522 107525 107527 107989 107521 107990 6 107526 107525 107528 107990 107546 107545 6 107527 107525 107529 107530 107531 107545 6 107528 107525 107530 107261 107260 107524 6 107528 107529 107261 107531 107532 107129 7 107528 107530 107532 107132 107533 107543 107545 5 107531 107530 107129 107130 107132 6 107531 107132 107133 107534 107544 107543 6 107533 107133 107535 107151 107537 107544 6 107534 107133 107134 107536 107150 107151 6 107535 107134 107136 107137 107139 107150 6 107534 107151 107152 107155 107538 107544 6 107537 107155 107157 107539 107540 107544 6 107538 107157 107540 107541 107553 107554 6 107538 107539 107541 107542 107543 107544 6 107540 107539 107542 107547 107553 107550 6 107540 107541 107543 107545 107546 107547 6 107540 107542 107544 107533 107531 107545 6 107540 107543 107533 107534 107537 107538 6 107531 107543 107542 107546 107527 107528 6 107545 107542 107547 107548 107990 107527 6 107546 107542 107541 107548 107549 107550 6 107546 107547 107549 107990 107989 107991 6 107548 107547 107550 107551 107991 107992 6 107549 107547 107551 107552 107553 107541 6 107549 107550 107552 107992 107994 107995 7 107551 107550 107553 107557 107556 107558 107995 6 107552 107550 107541 107539 107554 107557 6 107553 107539 107157 107158 107555 107557 6 107554 107158 107160 107167 107556 107557 7 107555 107167 107557 107552 107558 107559 107560 5 107555 107556 107554 107553 107552 5 107552 107556 107559 107995 107996 7 107558 107556 107560 107996 107999 107566 107561 5 107559 107556 107167 107168 107561 6 107560 107168 107562 107565 107566 107559 6 107561 107168 107169 107170 107563 107565 6 107562 107170 107564 107176 107565 107568 5 107563 107170 107171 107173 107176 6 107562 107563 107561 107566 107567 107568 6 107561 107565 107567 107999 107559 108000 6 107566 107565 107568 107569 107570 108000 5 107567 107565 107563 107176 107569 6 107568 107176 107567 107570 107180 107177 6 107567 107569 107180 107571 108000 108001 6 107570 107180 107181 107572 108001 108002 6 107571 107181 107573 107574 108002 108003 6 107572 107181 107574 107575 107183 107182 6 107572 107573 107575 107576 107577 108003 6 107574 107573 107183 107187 107189 107576 6 107575 107189 107574 107577 107578 107579 6 107574 107576 107578 108003 108004 108005 6 107577 107576 107579 108005 108006 108007 6 107578 107576 107189 107190 107580 108007 6 107579 107190 107193 107581 108007 108008 6 107580 107193 107195 107582 108008 108009 6 107581 107195 107583 107585 108012 108009 6 107582 107195 107196 103196 107584 107585 6 107583 103196 103186 107585 107586 103187 6 107583 107584 107586 107587 107582 108012 6 107585 107584 107587 107588 103958 103187 6 107585 107586 107588 107729 108013 108012 6 107587 107586 103958 103960 107589 107729 6 107588 103960 107590 107729 107730 107731 6 107589 103960 103961 107591 107731 107732 6 107590 103961 107592 107738 107732 107739 6 107591 103961 102890 102891 107593 107739 6 107592 102891 107594 107595 107739 107740 6 107593 102891 107595 107596 107597 102892 6 107593 107594 107596 107740 107741 107745 6 107595 107594 107597 107598 107745 107746 6 107596 107594 107598 107599 107600 102892 6 107596 107597 107599 104089 107746 107751 5 107598 107597 107600 104089 104086 6 107599 107597 104086 102880 102879 102892 7 107378 107379 107380 107602 107603 107917 107918 6 107601 107380 107603 107604 107605 107381 6 107601 107602 107604 107926 107920 107918 5 107603 107602 107605 107926 107927 7 107604 107602 107381 107382 107606 107609 107927 6 107605 107382 107384 107607 107608 107609 6 107606 107384 107385 107392 107394 107608 6 107607 107394 107606 107609 107610 107611 6 107606 107608 107610 107929 107927 107605 6 107609 107608 107611 107613 107616 107929 6 107610 107608 107394 107395 107612 107613 6 107611 107395 107613 107614 107621 107622 6 107611 107612 107614 107615 107616 107610 6 107613 107612 107615 107619 107620 107621 6 107613 107614 107616 107617 107618 107619 6 107613 107615 107617 108157 107929 107610 6 107616 107615 107618 108155 108157 108156 6 107617 107615 107619 108156 108158 108159 6 107618 107615 107614 107620 108159 108160 6 107619 107614 107621 108160 108161 108162 6 107620 107614 107612 107622 108162 108163 6 107621 107612 107395 107396 107623 108163 6 107622 107396 107397 107398 107624 108163 6 107623 107398 107399 107625 108163 108164 6 107624 107399 107400 107626 108164 107627 5 107625 107400 107401 107403 107627 6 107626 107403 107628 108164 107625 108165 6 107627 107403 107404 107629 107630 108165 6 107628 107404 107630 107631 107632 107408 6 107628 107629 107631 108165 108166 108167 6 107630 107629 107632 108170 108167 108171 6 107631 107629 107408 107409 107633 108171 6 107632 107409 107634 108173 108171 108174 6 107633 107409 107410 107635 107636 108174 6 107634 107410 107636 107637 107641 107642 6 107634 107635 107637 107638 108174 108175 6 107636 107635 107638 107639 107640 107641 6 107636 107637 107639 108175 108176 108177 6 107638 107637 107640 108177 108178 108179 6 107639 107637 107641 108179 108180 108181 6 107640 107637 107635 107642 108181 108182 6 107641 107635 107410 107411 107643 108182 6 107642 107411 107412 107414 107644 108182 6 107643 107414 107645 108183 108182 108184 6 107644 107414 107415 107646 108184 108185 6 107645 107415 107417 107421 107647 108185 6 107646 107421 107423 107648 108185 108186 6 107647 107423 107649 108186 108187 108188 6 107648 107423 107424 107650 108188 108189 6 107649 107424 107651 108189 108190 108191 6 107650 107424 107425 107652 108191 108192 6 107651 107425 107427 107653 108192 107657 6 107652 107427 107428 107654 107655 107657 6 107653 107428 107429 107655 107434 107431 6 107653 107654 107434 107435 107656 107657 6 107655 107435 107657 107658 107659 107660 6 107655 107656 107658 108192 107652 107653 6 107657 107656 107659 108192 108193 108194 6 107658 107656 107660 108194 107662 107661 6 107659 107656 107435 107436 107438 107661 6 107660 107438 107439 107441 107662 107659 6 107661 107441 107663 108194 107659 108195 6 107662 107441 107442 107664 108208 108195 6 107663 107442 107443 107665 108208 108207 6 107664 107443 107444 107666 107667 108207 6 107665 107444 107667 107668 107447 107445 6 107665 107666 107668 107669 108206 108207 6 107667 107666 107447 107669 107670 107671 6 107667 107668 107670 107698 108206 109790 6 107669 107668 107671 107672 107695 109790 6 107670 107668 107447 107448 107672 107673 6 107670 107671 107673 107674 107695 107694 6 107672 107671 107674 107675 107676 107448 7 107672 107673 107675 107693 107225 107226 107694 6 107674 107673 107676 107677 107679 107693 6 107675 107673 107448 107449 107450 107677 6 107676 107450 107451 107678 107679 107675 6 107677 107451 107679 107680 107681 107682 7 107677 107678 107680 107675 107693 107692 107689 5 107679 107678 107681 107689 107684 6 107680 107678 107682 107454 107683 107684 6 107681 107678 107451 107452 107453 107454 6 107681 107454 107684 107685 107686 107455 7 107681 107683 107685 107489 107490 107689 107680 6 107684 107683 107686 107486 107487 107489 6 107685 107683 107455 107456 107687 107486 6 107686 107456 107457 107486 107485 107688 6 107485 107687 107457 107458 107461 107484 6 107684 107490 107690 107692 107679 107680 6 107689 107490 107491 107691 107224 107692 6 107690 107491 107493 107079 107080 107224 6 107690 107224 107225 107693 107679 107689 5 107692 107225 107674 107675 107679 5 107674 107226 107227 107695 107672 7 107694 107227 107228 107696 107670 107672 109790 6 107695 107228 107230 107697 107698 109790 6 107696 107230 107698 107699 107700 107701 6 107696 107697 107699 108206 107669 109790 6 107698 107697 107700 108205 108203 108206 6 107699 107697 107701 108318 108205 107707 6 107700 107697 107230 107231 107702 107707 6 107701 107231 107703 107704 107705 107707 6 107702 107231 107704 107234 107233 107232 6 107702 107703 107705 107706 107718 107234 6 107702 107704 107706 107707 107708 107709 6 107705 107704 107709 107710 107711 107718 6 107702 107705 107708 108318 107700 107701 6 107707 107705 107709 108318 108481 108317 6 107708 107705 107706 107710 108481 108482 6 107709 107706 107711 107712 107713 108482 6 107710 107706 107712 107716 107717 107718 6 107710 107711 107713 107714 107715 107716 6 107710 107712 107714 108482 108483 108484 6 107713 107712 107715 108484 109765 108486 6 107714 107712 107716 109765 107723 109767 6 107715 107712 107711 107717 109767 107719 6 107716 107711 107718 107235 107236 107719 6 107717 107711 107706 107704 107234 107235 6 107717 107236 107720 109767 107716 107721 6 107719 107236 107237 107238 107240 107721 6 107720 107240 107722 107723 109767 107719 6 107721 107240 107241 107723 107724 107725 7 107721 107722 107724 107726 109765 107715 109767 6 107723 107722 107725 107726 107727 107728 6 107724 107722 107728 107245 107242 107241 6 107723 107724 107727 107962 109765 109764 6 107726 107724 107728 107962 107963 107964 6 107727 107724 107725 107245 107964 107246 6 107587 107588 107589 107730 108013 108014 6 107729 107589 107731 108014 108015 107734 6 107730 107589 107590 107732 107733 107734 6 107731 107590 107733 107737 107738 107591 6 107731 107732 107734 107735 107736 107737 6 107731 107733 107735 108015 107730 108016 6 107734 107733 107736 108016 108017 108018 6 107735 107733 107737 108018 108019 108020 6 107736 107733 107732 107738 108020 108021 6 107737 107732 107591 107739 109766 108021 6 107738 107591 107592 107593 107740 109766 6 107739 107593 107595 107741 107742 109766 6 107740 107595 107742 107743 107744 107745 6 107740 107741 107743 108025 108023 109766 6 107742 107741 107744 108025 108026 108027 6 107743 107741 107745 107747 107748 108027 6 107744 107741 107595 107596 107746 107747 6 107745 107596 107598 107747 107750 107751 6 107745 107746 107744 107748 107749 107750 6 107744 107747 107749 108027 108031 108032 6 107748 107747 107750 108032 108036 107759 6 107749 107747 107746 107751 107752 107759 7 107750 107746 107598 104089 104090 107752 107753 7 107750 107751 107753 104379 107754 107758 107759 4 107752 107751 104090 104379 5 107752 104379 104380 107755 107758 6 107754 104380 104382 107756 107757 107758 6 107755 104382 107757 107762 107763 107764 6 107755 107756 107758 107760 107761 107762 6 107755 107757 107754 107752 107759 107760 6 107752 107758 107760 108036 107749 107750 5 107759 107758 107757 107761 108036 7 107760 107757 107762 108036 108640 108635 108035 7 107761 107757 107756 107763 108852 108639 108640 6 107762 107756 107764 107765 108852 108853 6 107763 107756 104382 104383 104389 107765 6 107763 107764 104389 107766 108319 108853 6 107765 104389 104390 107767 108319 108320 6 107766 104390 103142 107768 107769 108320 6 107767 103142 107769 107770 107774 103143 6 107767 107768 107770 107771 108322 108320 6 107769 107768 107771 107772 107773 107774 6 107769 107770 107772 108322 108323 108324 6 107771 107770 107773 108324 108325 107777 6 107772 107770 107774 107775 107776 107777 6 107773 107770 107768 103143 103144 107775 6 107774 103144 107773 107776 103145 109791 6 107773 107775 107777 107778 103414 109791 6 107773 107776 107778 108325 107772 108326 6 107777 107776 103414 103415 107779 108326 6 107778 103415 105382 105384 107780 108326 6 107779 105384 105386 107781 108326 108327 6 107780 105386 105388 107782 108329 108327 6 107781 105388 105616 107783 108329 108330 6 107782 105616 107784 108330 108331 108332 6 107783 105616 105617 107785 108037 108332 6 107784 105617 107786 107787 108037 108038 6 107785 105617 105618 107787 107788 107789 6 107785 107786 107788 108038 108039 108040 6 107787 107786 107789 108045 108040 107794 6 107788 107786 105618 105619 107790 107794 6 107789 105619 107791 107792 107793 107794 6 107790 105619 107792 103779 103778 105620 6 107790 107791 107793 107797 107798 103779 6 107790 107792 107794 107795 107796 107797 6 107790 107793 107795 108045 107788 107789 6 107794 107793 107796 108045 108046 108047 6 107795 107793 107797 108048 108047 108049 6 107796 107793 107792 107798 108049 107799 6 107797 107792 103779 103780 103783 107799 6 107798 103783 103784 107800 108049 107797 6 107799 103784 103785 103788 107801 108049 6 107800 103788 103790 107802 108048 108049 6 107801 103790 103791 103793 107803 108048 6 107802 103793 107804 107806 108047 108048 6 107803 103793 103794 107805 107806 107807 6 107804 103794 107807 107808 107809 103795 6 107803 107804 107807 108046 108047 108343 6 107806 107804 107805 107808 108344 108343 6 107807 107805 107809 108344 108345 107930 6 107808 107805 103795 103796 107810 107930 6 107809 103796 103952 107811 107930 107931 6 107810 103952 107812 107931 107932 107936 6 107811 103952 103953 107813 107936 107937 6 107812 103953 103954 107814 107937 107938 6 107813 103954 107815 107938 107939 107816 6 107814 103954 103955 103956 104238 107816 6 107815 104238 104503 107817 107939 107814 6 107816 104503 104504 107818 107939 107940 6 107817 104504 107819 107940 107941 107942 6 107818 104504 104505 107820 107942 107943 6 107819 104505 104506 104507 107821 107943 6 107820 104507 107822 107943 107944 107945 6 107821 104507 104508 107823 107945 107946 6 107822 104508 104509 107824 107946 107947 6 107823 104509 107825 107826 107947 107948 6 107824 104509 104510 107826 107827 107828 6 107824 107825 107827 107948 107949 107950 6 107826 107825 107828 107950 107951 107952 6 107827 107825 104510 104419 107829 107952 6 107828 104419 104247 107830 107952 107832 6 107829 104247 104248 104739 107831 107832 6 107830 104739 105003 107832 107833 107834 6 107830 107831 107833 107952 107829 107953 6 107832 107831 107834 107953 107954 107955 6 107833 107831 105003 105004 107835 107955 6 107834 105004 105005 107836 107955 107956 6 107835 105005 107837 107956 107957 107958 6 107836 105005 104750 104751 107838 107958 6 107837 104751 104757 107839 107958 107959 6 107838 104757 107840 107959 107960 107846 6 107839 104757 104758 107841 107846 107961 6 107840 104758 104661 104662 107842 107961 6 107841 104662 104663 104689 107843 107961 6 107842 104689 104690 107844 107961 107845 6 107843 104690 104691 105158 105159 107845 5 107844 105159 107846 107961 107843 7 107845 105159 107847 107960 107839 107840 107961 6 107846 105159 105160 107848 108082 107960 6 107847 105160 105161 107849 108082 108083 6 107848 105161 105162 107850 108083 108084 6 107849 105162 107851 108084 108085 108086 6 107850 105162 105163 105164 107852 108086 6 107851 105164 107853 108086 108087 108088 6 107852 105164 105165 107854 108088 108089 7 107853 105165 104700 104701 104702 107855 108089 5 107854 104702 107308 107856 108089 7 107855 107308 107309 107857 108089 108090 108091 7 107856 107309 107310 107858 108091 108092 108093 6 107857 107310 107311 107859 108093 108094 6 107858 107311 107312 107313 107860 108094 6 107859 107313 107861 108094 108095 108096 6 107860 107313 107314 107862 108096 108097 6 107861 107314 107315 107863 108097 108098 6 107862 107315 107316 107864 108098 108099 6 107863 107316 107317 107865 108099 108100 6 107864 107317 107318 107866 108100 108101 6 107865 107318 107319 107867 108101 108102 6 107866 107319 107320 107321 107868 108102 6 107867 107321 107869 108102 108103 108104 6 107868 107321 107322 107870 108104 108105 6 107869 107322 107323 107324 107871 108105 6 107870 107324 107872 108105 108106 108107 6 107871 107324 107325 107873 108107 108108 6 107872 107325 107326 107327 107874 108108 6 107873 107327 107875 108108 108109 108110 6 107874 107327 107328 107329 107876 108110 6 107875 107329 107877 108110 108111 108112 6 107876 107329 107330 107331 107878 108112 6 107877 107331 107332 107879 108112 108113 6 107878 107332 107880 108113 108114 108115 6 107879 107332 107333 107334 107881 108115 6 107880 107334 107335 107336 107882 108115 6 107881 107336 107337 107883 108115 108116 7 107882 107337 107338 107884 108116 108117 108118 6 107883 107338 107339 107885 108118 108119 6 107884 107339 107340 107886 108119 108120 6 107885 107340 107341 107887 108120 108121 6 107886 107341 107888 108121 108122 108123 6 107887 107341 107342 107343 107889 108123 6 107888 107343 107344 107890 108123 108124 6 107889 107344 107345 107891 108124 108125 6 107890 107345 107346 107892 108125 108126 6 107891 107346 107347 107893 108126 108127 6 107892 107347 107348 107894 108127 108128 6 107893 107348 107895 108128 108129 108130 6 107894 107348 107349 107350 107896 108130 6 107895 107350 107351 107897 108130 108131 7 107896 107351 107352 107353 107898 108131 108132 5 107897 107353 107899 108132 108133 7 107898 107353 107354 107355 107900 108133 108134 6 107899 107355 107901 108134 108135 108136 5 107900 107355 107356 107902 108136 7 107901 107356 107903 108136 108137 108138 107904 5 107902 107356 107357 107358 107904 6 107903 107358 107905 108138 107902 108139 6 107904 107358 107359 107361 107906 108139 6 107905 107361 107907 108139 108140 108141 6 107906 107361 107362 107363 107908 108141 6 107907 107363 107909 108141 108142 108143 6 107908 107363 107364 107365 107910 108143 6 107909 107365 107371 107911 108143 108144 6 107910 107371 107912 108144 108145 108146 5 107911 107371 107372 107913 108146 7 107912 107372 107373 107914 108146 108147 108148 6 107913 107373 107915 108148 108149 108150 6 107914 107373 107374 107376 107916 108150 6 107915 107376 107917 107918 107919 108150 6 107916 107376 107377 107378 107601 107918 6 107917 107601 107916 107919 107920 107603 6 107916 107918 107920 107921 107922 108150 6 107919 107918 107921 107925 107926 107603 6 107919 107920 107922 107923 107924 107925 6 107919 107921 107923 108150 108151 108149 6 107922 107921 107924 108151 108152 108153 6 107923 107921 107925 108153 108154 108155 6 107924 107921 107920 107926 108155 107928 6 107925 107920 107603 107604 107927 107928 6 107926 107604 107928 107929 107609 107605 6 107926 107927 107929 108155 107925 108157 6 107928 107927 107609 108157 107616 107610 6 107809 107810 107931 108050 108345 107808 6 107930 107810 107811 107932 107933 108050 6 107931 107811 107933 107934 107935 107936 6 107931 107932 107934 108050 108051 108052 6 107933 107932 107935 108052 108053 108057 6 107934 107932 107936 108059 108057 108060 6 107935 107932 107811 107812 107937 108060 6 107936 107812 107813 107938 108060 108061 6 107937 107813 107814 107939 108061 108062 6 107938 107814 107816 107817 107940 108062 6 107939 107817 107818 107941 108062 108063 6 107940 107818 107942 108063 108064 108065 6 107941 107818 107819 107943 108065 108066 6 107942 107819 107820 107821 107944 108066 6 107943 107821 107945 108066 108067 108068 6 107944 107821 107822 107946 108068 108069 6 107945 107822 107823 107947 108069 108070 6 107946 107823 107824 107948 108070 108071 6 107947 107824 107826 107949 108071 108072 6 107948 107826 107950 108072 108073 108074 6 107949 107826 107827 107951 108074 108075 6 107950 107827 107952 108075 108076 107953 6 107951 107827 107828 107829 107832 107953 6 107952 107832 107833 107954 108076 107951 6 107953 107833 107955 108076 108077 108078 6 107954 107833 107834 107835 107956 108078 6 107955 107835 107836 107957 108078 108079 6 107956 107836 107958 108079 108080 108081 6 107957 107836 107837 107838 107959 108081 6 107958 107838 107839 107960 108081 108082 5 107959 107839 107846 108082 107847 6 107846 107840 107841 107842 107843 107845 6 107726 107727 107963 108466 108468 109764 6 107962 107727 107964 108466 108487 108488 6 107963 107727 107728 107246 107965 108488 6 107964 107246 107247 107966 108488 108489 6 107965 107247 107248 107967 108489 108490 6 107966 107248 107249 107968 108490 108491 6 107967 107249 107511 107513 107969 108491 6 107968 107513 107970 108493 108491 108494 6 107969 107513 107514 107971 108494 108495 6 107970 107514 107972 108495 108496 107974 6 107971 107514 107515 107518 107973 107974 6 107972 107518 107974 107975 107976 107977 6 107972 107973 107975 108496 107971 108497 6 107974 107973 107976 108500 108497 107981 6 107975 107973 107977 107979 107980 107981 6 107976 107973 107518 107519 107978 107979 6 107977 107519 107979 107988 107989 107521 6 107977 107978 107976 107980 107987 107988 6 107976 107979 107981 107982 107986 107987 6 107976 107980 107982 107983 108500 107975 6 107981 107980 107983 107984 107985 107986 6 107981 107982 107984 108500 108501 108502 6 107983 107982 107985 108502 108503 108504 6 107984 107982 107986 108504 108505 108506 6 107985 107982 107980 107987 108506 107993 7 107986 107980 107979 107988 107991 107992 107993 5 107987 107979 107978 107989 107991 7 107988 107978 107521 107526 107990 107548 107991 5 107989 107526 107527 107546 107548 6 107989 107548 107549 107992 107987 107988 6 107991 107549 107551 107987 107993 107994 6 107987 107992 107994 108506 107986 108507 6 107993 107992 107551 108507 107997 107995 6 107551 107552 107558 107996 107997 107994 6 107995 107558 107559 107997 107998 107999 6 107995 107996 107998 108507 107994 108508 6 107997 107996 107999 108508 108509 108510 6 107998 107996 107559 107566 108000 108510 6 107999 107566 107567 107570 108001 108510 7 108000 107570 107571 108002 108510 108522 108511 6 108001 107571 107572 108003 108522 108523 7 108002 107572 107574 107577 108004 108520 108523 7 108003 107577 108005 108519 108517 108520 108541 5 108004 107577 107578 108006 108541 6 108005 107578 108007 108610 108540 108541 6 108006 107578 107579 107580 108008 108610 6 108007 107580 107581 108009 108010 108610 6 108008 107581 108010 108011 108012 107582 8 108008 108009 108011 108609 108537 108538 108540 108610 5 108010 108009 108012 108013 108609 6 108011 108009 108013 107587 107582 107585 7 108011 108012 107587 107729 108014 108608 108609 6 108013 107729 107730 108015 108607 108608 6 108014 107730 107734 108016 108611 108607 6 108015 107734 107735 108017 108611 108612 6 108016 107735 108018 108612 108613 108614 6 108017 107735 107736 108019 108614 108615 6 108018 107736 108020 108615 108618 108619 6 108019 107736 107737 108021 108022 108619 6 108020 107737 108022 108023 109766 107738 6 108020 108021 108023 108024 108619 108620 6 108022 108021 108024 108025 107742 109766 6 108022 108023 108025 108620 108621 108028 6 108024 108023 107742 107743 108026 108028 6 108025 107743 108027 108028 108029 108030 6 108026 107743 107744 107748 108030 108031 6 108025 108026 108029 108621 108024 108622 6 108028 108026 108030 108628 108622 108629 6 108029 108026 108027 108031 108033 108629 6 108030 108027 107748 108032 108033 108034 6 108031 107748 107749 108034 108035 108036 6 108030 108031 108034 108629 108630 108631 6 108033 108031 108032 108035 108631 108632 6 108034 108032 108036 107761 108635 108632 6 108035 108032 107749 107759 107760 107761 6 107784 107785 108038 108332 108333 108334 6 108037 107785 107787 108039 108041 108334 6 108038 107787 108040 108041 108042 108043 6 108039 107787 108043 108044 108045 107788 6 108038 108039 108042 108334 108335 108336 6 108041 108039 108043 108336 108337 108341 6 108042 108039 108040 108044 108341 108342 6 108043 108040 108045 108342 108343 108046 6 108044 108040 107788 107794 107795 108046 6 108045 107795 108047 107806 108343 108044 6 108046 107795 107806 107803 108048 107796 6 107803 108047 107796 107802 107801 108049 6 107801 108048 107796 107797 107799 107800 6 107930 107931 107933 108051 108345 108346 6 108050 107933 108052 108346 108347 108348 6 108051 107933 107934 108053 108054 108348 6 108052 107934 108054 108055 108056 108057 6 108052 108053 108055 108348 108349 108350 6 108054 108053 108056 108350 108351 108352 6 108055 108053 108057 108058 108352 108353 6 108056 108053 108058 108059 107935 107934 6 108056 108057 108059 108353 108354 108355 6 108058 108057 107935 108060 108355 108356 6 108059 107935 107936 107937 108061 108356 6 108060 107937 107938 108062 108356 108358 6 108061 107938 107939 107940 108063 108358 6 108062 107940 107941 108064 108359 108358 6 108063 107941 108065 108359 108360 108361 6 108064 107941 107942 108066 108361 108362 6 108065 107942 107943 107944 108067 108362 6 108066 107944 108068 108362 108363 108364 6 108067 107944 107945 108069 108364 108365 6 108068 107945 107946 108070 108365 108366 6 108069 107946 107947 108071 108366 108367 6 108070 107947 107948 108072 108367 108368 6 108071 107948 107949 108073 108368 108369 6 108072 107949 108074 108369 108370 108371 6 108073 107949 107950 108075 108371 108372 6 108074 107950 107951 108076 108372 108373 6 108075 107951 107953 107954 108077 108373 6 108076 107954 108078 108375 108373 108376 6 108077 107954 107955 107956 108079 108376 6 108078 107956 107957 108080 108376 108377 6 108079 107957 108081 108209 108377 108378 6 108080 107957 107958 107959 108082 108209 7 108081 107959 107960 107847 107848 108083 108209 6 108082 107848 107849 108084 108209 108210 6 108083 107849 107850 108085 108210 108211 6 108084 107850 108086 108211 108212 108213 6 108085 107850 107851 107852 108087 108213 6 108086 107852 108088 108213 108214 108215 6 108087 107852 107853 108089 108215 108090 6 108088 107853 107854 107855 107856 108090 5 108089 107856 108091 108215 108088 7 108090 107856 107857 108092 108215 108216 108217 5 108091 107857 108093 108217 108218 6 108092 107857 107858 108094 108218 108219 6 108093 107858 107859 107860 108095 108219 6 108094 107860 108096 108219 108220 108221 6 108095 107860 107861 108097 108221 108222 6 108096 107861 107862 108098 108222 108223 6 108097 107862 107863 108099 108223 108224 6 108098 107863 107864 108100 108224 108225 6 108099 107864 107865 108101 108225 108226 6 108100 107865 107866 108102 108226 108227 6 108101 107866 107867 107868 108103 108227 6 108102 107868 108104 108227 108228 108229 6 108103 107868 107869 108105 108229 108230 6 108104 107869 107870 107871 108106 108230 6 108105 107871 108107 108230 108231 108232 6 108106 107871 107872 108108 108232 108233 6 108107 107872 107873 107874 108109 108233 6 108108 107874 108110 108233 108234 108235 6 108109 107874 107875 107876 108111 108235 6 108110 107876 108112 108235 108236 108237 6 108111 107876 107877 107878 108113 108237 6 108112 107878 107879 108114 108237 108238 6 108113 107879 108115 108238 108239 108116 6 108114 107879 107880 107881 107882 108116 6 108115 107882 107883 108117 108239 108114 6 108116 107883 108118 108239 108240 108241 5 108117 107883 107884 108119 108241 6 108118 107884 107885 108120 108241 108242 6 108119 107885 107886 108121 108242 108243 6 108120 107886 107887 108122 108243 108244 6 108121 107887 108123 108244 108245 108246 6 108122 107887 107888 107889 108124 108246 6 108123 107889 107890 108125 108246 108247 6 108124 107890 107891 108126 108247 108248 6 108125 107891 107892 108127 108248 108249 6 108126 107892 107893 108128 108249 108250 6 108127 107893 107894 108129 108250 108251 6 108128 107894 108130 108251 108252 108253 6 108129 107894 107895 107896 108131 108253 6 108130 107896 107897 108132 108253 108254 5 108131 107897 107898 108133 108254 7 108132 107898 107899 108134 108254 108255 108256 5 108133 107899 107900 108135 108256 7 108134 107900 108136 108256 108257 108258 108259 6 108135 107900 107901 107902 108137 108259 6 108136 107902 108138 108259 108260 108261 6 108137 107902 107904 108139 108261 108262 6 108138 107904 107905 107906 108140 108262 6 108139 107906 108141 108262 108263 108264 6 108140 107906 107907 107908 108142 108264 6 108141 107908 108143 108264 108265 108266 6 108142 107908 107909 107910 108144 108266 6 108143 107910 107911 108145 108266 108267 6 108144 107911 108146 108267 108268 108269 6 108145 107911 107912 107913 108147 108269 6 108146 107913 108148 108269 108270 108271 6 108147 107913 107914 108149 108151 108271 5 108148 107914 108150 108151 107922 6 108149 107914 107915 107916 107919 107922 7 108148 108149 107922 107923 108152 108271 108272 5 108151 107923 108153 108272 108273 7 108152 107923 107924 108154 108273 108274 108275 6 108153 107924 108155 108156 108275 108276 7 108154 107924 108156 107925 107928 108157 107617 6 108154 108155 107617 107618 108158 108276 5 108155 107928 107929 107616 107617 6 108156 107618 108159 108276 108277 108278 6 108158 107618 107619 108160 108278 108279 7 108159 107619 107620 108161 108279 108280 108281 5 108160 107620 108162 108281 108282 7 108161 107620 107621 108163 108282 108283 108164 6 108162 107621 107622 107623 107624 108164 7 108163 107624 107625 107627 108165 108283 108162 6 108164 107627 107628 107630 108166 108283 6 108165 107630 108167 108168 108283 108282 6 108166 107630 108168 108169 108170 107631 6 108166 108167 108169 108282 108284 108285 6 108168 108167 108170 108285 108286 108287 6 108169 108167 107631 108171 108172 108287 6 108170 107631 108172 108173 107633 107632 6 108170 108171 108173 108287 108288 108289 6 108172 108171 107633 108174 108289 108290 6 108173 107633 107634 107636 108175 108290 6 108174 107636 107638 108176 108290 108291 6 108175 107638 108177 108291 108292 108293 6 108176 107638 107639 108178 108293 108294 6 108177 107639 108179 108294 108295 108296 6 108178 107639 107640 108180 108296 108297 6 108179 107640 108181 108307 108297 108308 6 108180 107640 107641 108182 108183 108308 6 108181 107641 108183 107644 107643 107642 6 108181 108182 107644 108184 108308 108309 6 108183 107644 107645 108185 108309 108310 7 108184 107645 107646 107647 108186 108310 108311 6 108185 107647 107648 108187 108311 108312 6 108186 107648 108188 108312 108313 108314 6 108187 107648 107649 108189 108314 108315 6 108188 107649 107650 108190 108315 108200 6 108189 107650 108191 108197 108199 108200 6 108190 107650 107651 108192 108197 108193 6 108191 107651 107652 107657 107658 108193 6 108192 107658 108194 108196 108197 108191 6 108193 107658 107659 107662 108195 108196 6 108194 107662 108196 108208 108204 107663 6 108194 108195 108193 108197 108198 108204 6 108193 108196 108198 108199 108190 108191 6 108197 108196 108199 108202 108203 108204 6 108197 108198 108190 108200 108201 108202 6 108190 108199 108201 108315 108189 108316 6 108200 108199 108202 108316 108317 108318 6 108201 108199 108198 108203 108205 108318 6 108202 108198 108204 108205 107699 108206 7 108203 108198 108206 108207 108208 108195 108196 5 108202 108203 107699 108318 107700 7 107699 108203 108204 107698 107669 107667 108207 6 107667 108206 108204 108208 107664 107665 5 108207 108204 108195 107663 107664 6 108080 108081 108082 108083 108210 108378 5 108209 108083 108084 108211 108378 6 108210 108084 108085 108212 108378 108379 6 108211 108085 108213 108379 108380 108381 6 108212 108085 108086 108087 108214 108381 6 108213 108087 108215 108381 108382 108216 6 108214 108087 108088 108090 108091 108216 6 108215 108091 108217 108382 108214 108383 6 108216 108091 108092 108218 108383 108384 6 108217 108092 108093 108219 108384 108385 6 108218 108093 108094 108095 108220 108385 5 108219 108095 108221 108385 108386 6 108220 108095 108096 108222 108386 108387 6 108221 108096 108097 108223 108387 108388 6 108222 108097 108098 108224 108388 108389 6 108223 108098 108099 108225 108389 108390 6 108224 108099 108100 108226 108390 108391 6 108225 108100 108101 108227 108391 108392 6 108226 108101 108102 108103 108228 108392 6 108227 108103 108229 108392 108393 108394 6 108228 108103 108104 108230 108394 108395 6 108229 108104 108105 108106 108231 108395 6 108230 108106 108232 108395 108396 108397 6 108231 108106 108107 108233 108397 108398 6 108232 108107 108108 108109 108234 108398 6 108233 108109 108235 108398 108399 108400 6 108234 108109 108110 108111 108236 108400 6 108235 108111 108237 108400 108401 108402 6 108236 108111 108112 108113 108238 108402 6 108237 108113 108114 108239 108402 108403 6 108238 108114 108116 108117 108240 108403 6 108239 108117 108241 108403 108404 108405 6 108240 108117 108118 108119 108242 108405 6 108241 108119 108120 108243 108405 108406 6 108242 108120 108121 108244 108406 108407 6 108243 108121 108122 108245 108407 108408 6 108244 108122 108246 108408 108409 108410 6 108245 108122 108123 108124 108247 108410 6 108246 108124 108125 108248 108410 108411 6 108247 108125 108126 108249 108411 108412 6 108248 108126 108127 108250 108412 108413 6 108249 108127 108128 108251 108413 108414 6 108250 108128 108129 108252 108414 108415 6 108251 108129 108253 108415 108416 108417 6 108252 108129 108130 108131 108254 108417 7 108253 108131 108132 108133 108255 108417 108418 5 108254 108133 108256 108418 108419 7 108255 108133 108134 108135 108257 108419 108420 5 108256 108135 108258 108420 108421 6 108257 108135 108259 108421 108422 108260 5 108258 108135 108136 108137 108260 6 108259 108137 108261 108422 108258 108423 6 108260 108137 108138 108262 108423 108424 6 108261 108138 108139 108140 108263 108424 6 108262 108140 108264 108424 108425 108426 6 108263 108140 108141 108142 108265 108426 6 108264 108142 108266 108426 108427 108428 7 108265 108142 108143 108144 108267 108428 108429 6 108266 108144 108145 108268 108429 108430 6 108267 108145 108269 108430 108431 108432 6 108268 108145 108146 108147 108270 108432 6 108269 108147 108271 108432 108433 108434 6 108270 108147 108148 108151 108272 108434 5 108271 108151 108152 108273 108434 7 108272 108152 108153 108274 108434 108435 108436 6 108273 108153 108275 108436 108437 108438 6 108274 108153 108154 108276 108438 108277 5 108275 108154 108156 108158 108277 6 108276 108158 108278 108438 108275 108439 6 108277 108158 108159 108279 108439 108440 7 108278 108159 108160 108280 108440 108441 108445 6 108279 108160 108281 108445 108446 108284 5 108280 108160 108161 108282 108284 7 108281 108161 108162 108283 108166 108168 108284 5 108282 108162 108164 108165 108166 6 108282 108168 108285 108446 108280 108281 6 108284 108168 108169 108286 108446 108447 6 108285 108169 108287 108447 108449 108450 6 108286 108169 108170 108172 108288 108450 6 108287 108172 108289 108450 108451 108452 6 108288 108172 108173 108290 108452 108453 6 108289 108173 108174 108175 108291 108453 6 108290 108175 108176 108292 108453 108454 6 108291 108176 108293 108454 108455 108456 6 108292 108176 108177 108294 108456 108457 6 108293 108177 108178 108295 108457 108458 6 108294 108178 108296 108461 108458 108299 6 108295 108178 108179 108297 108298 108299 6 108296 108179 108298 108307 108305 108180 6 108296 108297 108299 108300 108301 108305 6 108296 108298 108300 108461 108295 108462 6 108299 108298 108301 108302 108462 108463 6 108300 108298 108302 108303 108304 108305 6 108300 108301 108303 108463 108464 108465 6 108302 108301 108304 108465 108466 108467 6 108303 108301 108305 108306 108470 108467 6 108304 108301 108298 108306 108307 108297 6 108304 108305 108307 108470 108471 108472 6 108306 108305 108297 108180 108308 108472 6 108307 108180 108181 108183 108309 108472 6 108308 108183 108184 108310 108472 108473 6 108309 108184 108185 108311 108473 108474 5 108310 108185 108186 108312 108474 6 108311 108186 108187 108313 108474 108475 6 108312 108187 108314 108478 108475 108479 6 108313 108187 108188 108315 108479 108480 6 108314 108188 108189 108200 108316 108480 5 108315 108200 108201 108317 108480 6 108316 108201 108318 108480 108481 107708 7 108317 108201 108202 108205 107700 107707 107708 6 107765 107766 108320 108321 108853 108854 6 108319 107766 107767 108321 108322 107769 7 108319 108320 108322 108854 108855 108856 108323 5 108321 108320 107769 107771 108323 6 108322 107771 108324 108856 108321 108857 6 108323 107771 107772 108325 108857 108328 6 108324 107772 107777 108326 108327 108328 6 108325 107777 107778 107779 107780 108327 6 108326 107780 108325 108328 108329 107781 6 108325 108327 108329 108857 108324 108858 6 108328 108327 107781 107782 108330 108858 6 108329 107782 107783 108331 108858 108859 6 108330 107783 108332 108865 108862 108859 6 108331 107783 107784 108037 108333 108865 6 108332 108037 108334 108866 108865 108867 6 108333 108037 108038 108041 108335 108867 6 108334 108041 108336 108867 108868 108869 6 108335 108041 108042 108337 108338 108869 6 108336 108042 108338 108339 108340 108341 6 108336 108337 108339 108869 108870 108874 6 108338 108337 108340 108874 108875 108347 6 108339 108337 108341 108347 108346 108876 6 108340 108337 108042 108043 108342 108876 6 108341 108043 108044 108343 108344 108876 6 108342 108044 108344 107807 107806 108046 6 108342 108343 107807 107808 108345 108876 6 108344 107808 107930 108050 108346 108876 6 108345 108050 108051 108347 108340 108876 6 108346 108051 108348 108875 108339 108340 6 108347 108051 108052 108054 108349 108875 6 108348 108054 108350 108902 108875 108901 6 108349 108054 108055 108351 108901 108903 6 108350 108055 108352 108903 108904 108905 6 108351 108055 108056 108353 108905 108906 6 108352 108056 108058 108354 108906 108907 6 108353 108058 108355 108907 108908 108909 6 108354 108058 108059 108356 108357 108909 6 108355 108059 108060 108061 108357 108358 6 108355 108356 108358 108359 108909 108910 6 108357 108356 108061 108062 108359 108063 6 108357 108358 108063 108064 108360 108910 6 108359 108064 108361 108912 108910 108913 6 108360 108064 108065 108362 108913 108914 6 108361 108065 108066 108067 108363 108914 6 108362 108067 108364 108916 108914 108917 6 108363 108067 108068 108365 108917 108918 6 108364 108068 108069 108366 108918 108919 6 108365 108069 108070 108367 108919 108920 6 108366 108070 108071 108368 108920 108921 6 108367 108071 108072 108369 108921 108922 6 108368 108072 108073 108370 108922 108923 6 108369 108073 108371 108923 108924 108925 6 108370 108073 108074 108372 108925 108926 6 108371 108074 108075 108373 108374 108926 6 108372 108075 108076 108374 108375 108077 6 108372 108373 108375 108926 108927 108928 6 108374 108373 108077 108376 108928 108929 6 108375 108077 108078 108079 108377 108929 6 108376 108079 108080 108378 108929 108379 6 108377 108080 108209 108210 108211 108379 7 108378 108211 108212 108380 108929 108377 108930 5 108379 108212 108381 108930 108931 7 108380 108212 108213 108214 108382 108743 108931 6 108381 108214 108216 108383 108641 108743 6 108382 108216 108217 108384 108641 108642 6 108383 108217 108218 108385 108642 108643 6 108384 108218 108219 108220 108386 108643 7 108385 108220 108221 108387 108643 108644 108645 6 108386 108221 108222 108388 108645 108646 6 108387 108222 108223 108389 108646 108647 6 108388 108223 108224 108390 108647 108648 7 108389 108224 108225 108391 108648 108649 108650 6 108390 108225 108226 108392 108650 108651 6 108391 108226 108227 108228 108393 108651 6 108392 108228 108394 108651 108652 108653 6 108393 108228 108229 108395 108653 108654 6 108394 108229 108230 108231 108396 108654 5 108395 108231 108397 108654 108655 6 108396 108231 108232 108398 108655 108656 7 108397 108232 108233 108234 108399 108656 108657 5 108398 108234 108400 108657 108658 7 108399 108234 108235 108236 108401 108658 108659 5 108400 108236 108402 108659 108660 6 108401 108236 108237 108238 108403 108660 6 108402 108238 108239 108240 108404 108660 6 108403 108240 108405 108660 108661 108662 6 108404 108240 108241 108242 108406 108662 6 108405 108242 108243 108407 108662 108663 7 108406 108243 108244 108408 108663 108664 108665 6 108407 108244 108245 108409 108665 108666 6 108408 108245 108410 108666 108667 108668 6 108409 108245 108246 108247 108411 108668 6 108410 108247 108248 108412 108668 108669 6 108411 108248 108249 108413 108669 108670 6 108412 108249 108250 108414 108670 108671 6 108413 108250 108251 108415 108671 108672 6 108414 108251 108252 108416 108672 108673 6 108415 108252 108417 108673 108674 108675 6 108416 108252 108253 108254 108418 108675 6 108417 108254 108255 108419 108675 108676 6 108418 108255 108256 108420 108676 108677 6 108419 108256 108257 108421 108677 108678 6 108420 108257 108258 108422 108678 108679 6 108421 108258 108260 108423 108679 108680 7 108422 108260 108261 108424 108680 108681 108682 6 108423 108261 108262 108263 108425 108682 6 108424 108263 108426 108682 108683 108687 6 108425 108263 108264 108265 108427 108687 6 108426 108265 108428 108687 108688 108689 6 108427 108265 108266 108429 108689 108690 5 108428 108266 108267 108430 108690 6 108429 108267 108268 108431 108542 108690 6 108430 108268 108432 108542 108543 108544 6 108431 108268 108269 108270 108433 108544 6 108432 108270 108434 108544 108545 108546 7 108433 108270 108271 108272 108273 108435 108546 6 108434 108273 108436 108546 108547 108548 6 108435 108273 108274 108437 108548 108549 6 108436 108274 108438 108549 108550 108439 5 108437 108274 108275 108277 108439 7 108438 108277 108278 108440 108550 108437 108551 6 108439 108278 108279 108441 108442 108551 6 108440 108279 108442 108443 108444 108445 6 108440 108441 108443 108551 108552 108553 6 108442 108441 108444 108553 108554 108555 7 108443 108441 108445 108446 108447 108448 108555 5 108444 108441 108279 108280 108446 6 108445 108280 108284 108285 108447 108444 6 108446 108285 108286 108444 108448 108449 5 108444 108447 108449 108555 108556 6 108448 108447 108286 108450 108556 108557 7 108449 108286 108287 108288 108451 108557 108558 6 108450 108288 108452 108558 108559 108560 6 108451 108288 108289 108453 108560 108561 6 108452 108289 108290 108291 108454 108561 6 108453 108291 108292 108455 108561 108562 6 108454 108292 108456 108562 108563 108564 6 108455 108292 108293 108457 108564 108565 6 108456 108293 108294 108458 108459 108565 6 108457 108294 108459 108460 108461 108295 6 108457 108458 108460 108565 108566 108567 6 108459 108458 108461 108567 108568 108569 6 108460 108458 108295 108299 108462 108569 6 108461 108299 108300 108463 108569 108570 6 108462 108300 108302 108464 108570 108571 6 108463 108302 108465 108571 108572 108573 6 108464 108302 108303 108466 108573 108487 7 108465 108303 108467 108468 107962 107963 108487 6 108466 108303 108468 108469 108470 108304 6 108466 108467 108469 107962 109763 109764 7 108468 108467 108470 109094 108485 109763 108486 6 108469 108467 108304 108306 108471 109094 6 108470 108306 108472 108476 109094 108473 6 108471 108306 108307 108308 108309 108473 6 108472 108309 108310 108474 108476 108471 6 108473 108310 108311 108312 108475 108476 6 108474 108312 108476 108477 108478 108313 7 108474 108475 108477 108485 109094 108471 108473 6 108476 108475 108478 108483 108484 108485 6 108477 108475 108313 108479 108483 108482 6 108478 108313 108314 108480 108482 108481 6 108479 108314 108315 108316 108317 108481 6 108480 108317 107708 107709 108482 108479 7 108481 107709 107710 107713 108483 108478 108479 5 108482 107713 108484 108477 108478 6 108483 107713 107714 108477 108485 108486 6 108477 108484 108486 108469 109094 108476 6 108485 108484 109765 109763 108469 107714 5 108466 107963 108488 108573 108465 7 108487 107963 107964 107965 108489 108573 108574 5 108488 107965 107966 108490 108574 7 108489 107966 107967 108491 108492 108574 108575 6 108490 107967 108492 108493 107969 107968 5 108490 108491 108493 108575 108576 6 108492 108491 107969 108494 108576 108577 6 108493 107969 107970 108495 108577 108578 6 108494 107970 107971 108496 108578 108579 6 108495 107971 107974 108497 108498 108579 6 108496 107974 108498 108499 108500 107975 6 108496 108497 108499 108579 108580 108581 6 108498 108497 108500 108581 108582 108501 6 108499 108497 107975 107981 107983 108501 6 108500 107983 108502 108582 108499 108583 6 108501 107983 107984 108503 108586 108583 6 108502 107984 108504 108527 108586 108526 6 108503 107984 107985 108505 108526 108588 6 108504 107985 108506 108588 108513 108589 6 108505 107985 107986 107993 108507 108589 6 108506 107993 107994 107997 108508 108589 6 108507 107997 107998 108509 108513 108589 6 108508 107998 108510 108511 108512 108513 6 108509 107998 107999 108000 108001 108511 6 108509 108510 108512 108521 108522 108001 6 108509 108511 108513 108514 108515 108521 7 108509 108512 108514 108588 108505 108589 108508 6 108513 108512 108515 108516 108526 108588 6 108514 108512 108516 108517 108520 108521 6 108514 108515 108517 108518 108524 108526 6 108516 108515 108518 108519 108004 108520 6 108516 108517 108519 108524 108525 108531 6 108518 108517 108004 108541 108539 108531 6 108004 108517 108003 108515 108521 108523 6 108520 108515 108512 108511 108522 108523 5 108521 108511 108001 108002 108523 5 108522 108002 108521 108520 108003 6 108516 108518 108525 108526 108527 108528 6 108524 108518 108528 108529 108530 108531 7 108516 108524 108527 108503 108504 108588 108514 5 108526 108524 108528 108586 108503 6 108527 108524 108525 108529 108587 108586 6 108528 108525 108530 108602 108587 108603 6 108529 108525 108531 108532 108533 108603 6 108530 108525 108532 108519 108539 108518 6 108530 108531 108533 108534 108538 108539 6 108530 108532 108534 108535 108603 108604 6 108533 108532 108535 108536 108537 108538 6 108533 108534 108536 108604 108605 108606 6 108535 108534 108537 108606 108607 108608 6 108536 108534 108538 108608 108609 108010 6 108537 108534 108532 108539 108540 108010 6 108538 108532 108540 108541 108519 108531 6 108538 108539 108541 108010 108610 108006 6 108540 108539 108519 108006 108005 108004 6 108430 108431 108543 108690 108691 108692 6 108542 108431 108544 108692 108693 108694 6 108543 108431 108432 108433 108545 108694 6 108544 108433 108546 108694 108695 108547 5 108545 108433 108434 108435 108547 6 108546 108435 108548 108695 108545 108696 6 108547 108435 108436 108549 108696 108697 6 108548 108436 108437 108550 108697 108698 6 108549 108437 108439 108551 108698 108552 5 108550 108439 108440 108442 108552 7 108551 108442 108553 108698 108550 108699 108700 6 108552 108442 108443 108554 108700 108701 6 108553 108443 108555 108701 108702 108703 6 108554 108443 108444 108448 108556 108703 6 108555 108448 108449 108557 108703 108704 6 108556 108449 108450 108558 108704 108705 6 108557 108450 108451 108559 108705 108706 6 108558 108451 108560 108706 108707 108708 5 108559 108451 108452 108561 108708 6 108560 108452 108453 108454 108562 108708 6 108561 108454 108455 108563 108708 108709 6 108562 108455 108564 108709 108710 108711 6 108563 108455 108456 108565 108711 108712 7 108564 108456 108457 108459 108566 108712 108713 5 108565 108459 108567 108713 108714 6 108566 108459 108460 108568 108714 108715 6 108567 108460 108569 108715 108716 108717 6 108568 108460 108461 108462 108570 108717 7 108569 108462 108463 108571 108590 108592 108717 5 108570 108463 108464 108572 108590 7 108571 108464 108573 108574 108575 108576 108590 6 108572 108464 108465 108487 108488 108574 6 108573 108488 108489 108490 108575 108572 5 108574 108490 108492 108576 108572 7 108575 108492 108493 108577 108572 108590 108591 6 108576 108493 108494 108578 108594 108591 6 108577 108494 108495 108579 108594 108595 6 108578 108495 108496 108498 108580 108595 6 108579 108498 108581 108595 108596 108597 6 108580 108498 108499 108582 108597 108598 6 108581 108499 108501 108583 108584 108598 6 108582 108501 108584 108585 108586 108502 6 108582 108583 108585 108598 108599 108600 6 108584 108583 108586 108587 108600 108601 7 108585 108583 108587 108528 108527 108503 108502 6 108585 108586 108528 108601 108602 108529 5 108526 108504 108505 108513 108514 5 108513 108505 108506 108508 108507 6 108572 108576 108591 108571 108570 108592 6 108590 108576 108592 108593 108594 108577 5 108570 108590 108591 108593 108717 7 108592 108591 108594 108717 108716 108718 108719 6 108593 108591 108577 108578 108595 108719 7 108594 108578 108579 108580 108596 108719 108720 6 108595 108580 108597 108720 108721 108722 6 108596 108580 108581 108598 108722 108723 6 108597 108581 108582 108584 108599 108723 6 108598 108584 108600 108723 108724 108725 6 108599 108584 108585 108601 108725 108726 6 108600 108585 108587 108602 108726 108727 5 108601 108587 108529 108603 108727 6 108602 108529 108530 108533 108604 108727 6 108603 108533 108535 108605 108727 108728 6 108604 108535 108606 108728 108731 108732 6 108605 108535 108536 108607 108611 108732 6 108606 108536 108608 108611 108015 108014 6 108607 108536 108537 108609 108014 108013 5 108608 108537 108010 108013 108011 5 108010 108540 108008 108007 108006 6 108606 108607 108015 108016 108612 108732 6 108611 108016 108017 108613 108732 108733 6 108612 108017 108614 108733 108734 108735 6 108613 108017 108018 108615 108616 108735 6 108614 108018 108019 108616 108617 108618 6 108614 108615 108617 108735 108736 108737 6 108616 108615 108618 108737 108738 108739 6 108617 108615 108019 108619 108739 108742 6 108618 108019 108020 108022 108620 108742 6 108619 108022 108024 108621 108624 108742 6 108620 108024 108028 108622 108623 108624 6 108621 108028 108623 108627 108628 108029 6 108621 108622 108624 108625 108626 108627 6 108621 108623 108625 108741 108742 108620 6 108624 108623 108626 108837 108741 108838 6 108625 108623 108627 108838 108839 108840 6 108626 108623 108622 108628 108840 108841 6 108627 108622 108029 108629 108841 108842 6 108628 108029 108030 108033 108630 108842 6 108629 108033 108631 108842 108843 108844 6 108630 108033 108034 108632 108633 108844 6 108631 108034 108633 108634 108635 108035 6 108631 108632 108634 108844 108845 108846 6 108633 108632 108635 108636 108637 108846 6 108634 108632 108636 108640 107761 108035 6 108634 108635 108637 108638 108639 108640 6 108634 108636 108638 108846 108848 108849 6 108637 108636 108639 108849 108850 108851 6 108638 108636 108640 108851 108852 107762 5 108639 108636 108635 107761 107762 6 108382 108383 108642 108743 108744 108745 6 108641 108383 108384 108643 108745 108746 6 108642 108384 108385 108386 108644 108746 6 108643 108386 108645 108746 108747 108748 6 108644 108386 108387 108646 108748 108749 6 108645 108387 108388 108647 108749 108750 6 108646 108388 108389 108648 108750 108751 6 108647 108389 108390 108649 108751 108752 6 108648 108390 108650 108752 108753 108754 5 108649 108390 108391 108651 108754 6 108650 108391 108392 108393 108652 108754 6 108651 108393 108653 108754 108755 108756 6 108652 108393 108394 108654 108756 108757 6 108653 108394 108395 108396 108655 108757 6 108654 108396 108397 108656 108757 108758 7 108655 108397 108398 108657 108758 108759 108760 5 108656 108398 108399 108658 108760 7 108657 108399 108400 108659 108760 108761 108762 5 108658 108400 108401 108660 108762 8 108659 108401 108402 108403 108404 108661 108762 108763 5 108660 108404 108662 108763 108764 6 108661 108404 108405 108406 108663 108764 6 108662 108406 108407 108664 108764 108765 6 108663 108407 108665 108765 108766 108767 5 108664 108407 108408 108666 108767 6 108665 108408 108409 108667 108767 108768 6 108666 108409 108668 108768 108769 108770 6 108667 108409 108410 108411 108669 108770 6 108668 108411 108412 108670 108770 108771 6 108669 108412 108413 108671 108771 108772 6 108670 108413 108414 108672 108772 108773 6 108671 108414 108415 108673 108773 108774 6 108672 108415 108416 108674 108774 108775 6 108673 108416 108675 108775 108776 108777 6 108674 108416 108417 108418 108676 108777 6 108675 108418 108419 108677 108777 108778 6 108676 108419 108420 108678 108778 108779 6 108677 108420 108421 108679 108779 108780 6 108678 108421 108422 108680 108780 108781 6 108679 108422 108423 108681 108781 108782 6 108680 108423 108682 108782 108783 108684 6 108681 108423 108424 108425 108683 108684 6 108682 108425 108684 108685 108686 108687 5 108682 108683 108685 108783 108681 6 108684 108683 108686 108783 108784 108785 6 108685 108683 108687 108785 108786 108787 7 108686 108683 108425 108426 108427 108688 108787 5 108687 108427 108689 108787 108788 6 108688 108427 108428 108690 108788 108789 7 108689 108428 108429 108430 108542 108691 108789 6 108690 108542 108692 108789 108790 108791 5 108691 108542 108543 108693 108791 7 108692 108543 108694 108791 108792 108793 108794 6 108693 108543 108544 108545 108695 108794 6 108694 108545 108547 108696 108794 108795 7 108695 108547 108548 108697 108795 108796 108797 6 108696 108548 108549 108698 108797 108798 6 108697 108549 108550 108552 108699 108798 6 108698 108552 108700 108798 108799 108800 6 108699 108552 108553 108701 108800 108803 6 108700 108553 108554 108702 108803 108804 6 108701 108554 108703 108804 108805 108806 6 108702 108554 108555 108556 108704 108806 6 108703 108556 108557 108705 108806 108807 6 108704 108557 108558 108706 108807 108808 6 108705 108558 108559 108707 108808 108809 6 108706 108559 108708 108809 108810 108811 7 108707 108559 108560 108561 108562 108709 108811 5 108708 108562 108563 108710 108811 7 108709 108563 108711 108811 108812 108813 108814 6 108710 108563 108564 108712 108814 108815 6 108711 108564 108565 108713 108815 108816 5 108712 108565 108566 108714 108816 7 108713 108566 108567 108715 108816 108817 108818 6 108714 108567 108568 108716 108818 108819 6 108715 108568 108717 108593 108718 108819 6 108716 108568 108569 108570 108592 108593 6 108716 108593 108719 108819 108820 108720 5 108718 108593 108594 108595 108720 6 108719 108595 108596 108721 108820 108718 6 108720 108596 108722 108820 108821 108822 5 108721 108596 108597 108723 108822 6 108722 108597 108598 108599 108724 108822 6 108723 108599 108725 108822 108823 108824 6 108724 108599 108600 108726 108824 108825 6 108725 108600 108601 108727 108825 108729 7 108726 108601 108602 108603 108604 108728 108729 6 108727 108604 108605 108729 108730 108731 5 108727 108728 108730 108825 108726 6 108729 108728 108731 108825 108827 108828 6 108730 108728 108605 108732 108828 108829 7 108731 108605 108606 108611 108612 108733 108829 6 108732 108612 108613 108734 108830 108829 6 108733 108613 108735 108830 108831 108736 5 108734 108613 108614 108616 108736 6 108735 108616 108737 108831 108734 108832 6 108736 108616 108617 108738 108832 108833 6 108737 108617 108739 108740 108833 108834 6 108738 108617 108618 108740 108741 108742 6 108738 108739 108741 108834 108835 108836 7 108740 108739 108742 108624 108836 108837 108625 6 108741 108739 108624 108620 108619 108618 6 108381 108382 108641 108744 108931 108932 5 108743 108641 108745 108932 108933 6 108744 108641 108642 108746 108933 108934 6 108745 108642 108643 108644 108747 108934 6 108746 108644 108748 108934 108935 108936 6 108747 108644 108645 108749 108936 108937 6 108748 108645 108646 108750 108937 108938 6 108749 108646 108647 108751 108938 108939 6 108750 108647 108648 108752 108939 108940 6 108751 108648 108649 108753 108940 108941 6 108752 108649 108754 108941 108942 108943 7 108753 108649 108650 108651 108652 108755 108943 5 108754 108652 108756 108943 108944 6 108755 108652 108653 108757 108944 108945 6 108756 108653 108654 108655 108758 108945 7 108757 108655 108656 108759 108945 108946 108947 5 108758 108656 108760 108947 108948 6 108759 108656 108657 108658 108761 108948 6 108760 108658 108762 108948 108949 108950 6 108761 108658 108659 108660 108763 108950 5 108762 108660 108661 108764 108950 7 108763 108661 108662 108663 108765 108950 108951 6 108764 108663 108664 108766 108951 108952 6 108765 108664 108767 108952 108953 108954 6 108766 108664 108665 108666 108768 108954 6 108767 108666 108667 108769 108954 108955 6 108768 108667 108770 108955 108956 108957 6 108769 108667 108668 108669 108771 108957 6 108770 108669 108670 108772 108957 108958 6 108771 108670 108671 108773 108958 108959 6 108772 108671 108672 108774 108959 108960 6 108773 108672 108673 108775 108960 108961 6 108774 108673 108674 108776 108961 108962 6 108775 108674 108777 108962 108963 108964 6 108776 108674 108675 108676 108778 108964 6 108777 108676 108677 108779 108964 108965 6 108778 108677 108678 108780 108965 108966 6 108779 108678 108679 108781 108966 108967 6 108780 108679 108680 108782 108967 108968 6 108781 108680 108681 108783 108968 108969 6 108782 108681 108684 108685 108784 108969 6 108783 108685 108785 108969 108970 108971 6 108784 108685 108686 108786 108971 108972 6 108785 108686 108787 108972 108973 108974 6 108786 108686 108687 108688 108788 108974 6 108787 108688 108689 108789 108974 108975 6 108788 108689 108690 108691 108790 108975 6 108789 108691 108791 108975 108976 108977 6 108790 108691 108692 108693 108792 108977 6 108791 108693 108793 108977 108978 108979 6 108792 108693 108794 108979 108980 108795 5 108793 108693 108694 108695 108795 6 108794 108695 108696 108796 108980 108793 6 108795 108696 108797 108980 108981 108982 6 108796 108696 108697 108798 108982 108799 5 108797 108697 108698 108699 108799 6 108798 108699 108800 108801 108982 108797 6 108799 108699 108700 108801 108802 108803 6 108799 108800 108802 108982 108983 108984 6 108801 108800 108803 108984 108985 108986 6 108802 108800 108700 108701 108804 108986 6 108803 108701 108702 108805 108986 108987 6 108804 108702 108806 108987 108988 108989 6 108805 108702 108703 108704 108807 108989 6 108806 108704 108705 108808 108989 108990 7 108807 108705 108706 108809 108992 108990 108993 5 108808 108706 108707 108810 108993 6 108809 108707 108811 108993 108994 108812 6 108810 108707 108708 108709 108710 108812 6 108811 108710 108813 108994 108810 108995 6 108812 108710 108814 108995 108996 108997 6 108813 108710 108711 108815 108997 108998 5 108814 108711 108712 108816 108998 7 108815 108712 108713 108714 108817 108998 108999 6 108816 108714 108818 108999 109000 109001 6 108817 108714 108715 108819 109001 109002 6 108818 108715 108716 108718 108820 109002 6 108819 108718 108720 108721 108821 109002 6 108820 108721 108822 109002 109003 108823 6 108821 108721 108722 108723 108724 108823 6 108822 108724 108824 109003 108821 109004 6 108823 108724 108725 108825 108826 109004 7 108824 108725 108726 108729 108730 108826 108827 6 108824 108825 108827 109004 109005 109006 6 108826 108825 108730 108828 109012 109006 6 108827 108730 108731 108829 108830 109012 5 108828 108731 108830 108733 108732 7 108828 108829 108733 108734 108831 109011 109012 6 108830 108734 108736 108832 109013 109011 7 108831 108736 108737 108833 109013 109014 109015 6 108832 108737 108738 108834 109015 109016 6 108833 108738 108740 108835 109016 109017 6 108834 108740 108836 109017 109018 109019 6 108835 108740 108741 108837 109019 109020 5 108836 108741 108625 108838 109020 6 108837 108625 108626 108839 109020 109021 6 108838 108626 108840 109021 109022 109023 6 108839 108626 108627 108841 109023 109024 6 108840 108627 108628 108842 109024 109025 6 108841 108628 108629 108630 108843 109025 6 108842 108630 108844 109025 109026 109030 6 108843 108630 108631 108633 108845 109030 6 108844 108633 108846 108847 109031 109030 6 108845 108633 108634 108637 108847 108848 6 108845 108846 108848 109031 109032 109033 6 108847 108846 108637 108849 109042 109033 6 108848 108637 108638 108850 109043 109042 6 108849 108638 108851 109043 109044 109045 6 108850 108638 108639 108852 109045 109048 6 108851 108639 107762 107763 108853 109048 6 108852 107763 107765 108319 108854 109048 6 108853 108319 108321 108855 109047 109048 6 108854 108321 108856 109047 109049 109050 5 108855 108321 108323 108857 109050 7 108856 108323 108324 108328 108858 109050 108860 6 108857 108328 108329 108330 108859 108860 6 108858 108330 108860 108861 108862 108331 6 108858 108859 108861 109050 108857 109051 6 108860 108859 108862 108863 109051 109052 6 108861 108859 108863 108864 108865 108331 6 108861 108862 108864 108877 109058 109052 6 108863 108862 108865 108866 108877 108878 6 108864 108862 108866 108333 108332 108331 6 108864 108865 108333 108867 108878 108879 6 108866 108333 108334 108335 108868 108879 6 108867 108335 108869 108879 108880 108871 6 108868 108335 108336 108338 108870 108871 6 108869 108338 108871 108872 108873 108874 6 108869 108870 108872 108894 108880 108868 6 108871 108870 108873 108896 108894 108897 6 108872 108870 108874 108897 108898 108902 6 108873 108870 108338 108339 108875 108902 6 108874 108339 108347 108902 108349 108348 6 108346 108340 108341 108342 108344 108345 5 108863 108864 108878 109058 108882 6 108877 108864 108866 108879 108881 108882 6 108878 108866 108867 108868 108880 108881 6 108879 108868 108881 108893 108894 108871 6 108879 108880 108878 108882 108883 108893 6 108878 108881 108883 108884 109058 108877 6 108882 108881 108884 108885 108892 108893 6 108882 108883 108885 108886 108887 109058 6 108884 108883 108886 108890 108891 108892 6 108884 108885 108887 108888 108889 108890 6 108884 108886 108888 109058 109057 109059 6 108887 108886 108889 109059 109060 109061 6 108888 108886 108890 109061 109062 109063 6 108889 108886 108885 108891 109063 109064 6 108890 108885 108892 109064 109065 109066 6 108891 108885 108883 108893 109066 108895 6 108892 108883 108881 108880 108894 108895 6 108893 108880 108895 108896 108872 108871 6 108893 108894 108896 109066 108892 109067 6 108895 108894 108872 108897 109067 109068 6 108896 108872 108873 108898 108899 109068 6 108897 108873 108899 108900 108901 108902 6 108897 108898 108900 109068 109069 109070 6 108899 108898 108901 109070 109071 108903 6 108900 108898 108902 108349 108350 108903 6 108901 108898 108873 108874 108875 108349 6 108901 108350 108351 108904 109071 108900 6 108903 108351 108905 109071 109072 109073 6 108904 108351 108352 108906 109073 109074 6 108905 108352 108353 108907 109074 109075 6 108906 108353 108354 108908 109075 109076 6 108907 108354 108909 109076 109077 108911 6 108908 108354 108355 108357 108910 108911 6 108909 108357 108911 108912 108360 108359 6 108909 108910 108912 109077 108908 109078 6 108911 108910 108360 108913 109078 109079 6 108912 108360 108361 108914 108915 109079 6 108913 108361 108362 108915 108916 108363 6 108913 108914 108916 109079 109080 109081 6 108915 108914 108363 108917 109081 109082 6 108916 108363 108364 108918 109082 109083 6 108917 108364 108365 108919 109083 109084 6 108918 108365 108366 108920 109093 109084 6 108919 108366 108367 108921 109093 109100 6 108920 108367 108368 108922 109100 109101 6 108921 108368 108369 108923 109101 109102 6 108922 108369 108370 108924 109102 109103 6 108923 108370 108925 109103 109104 109105 6 108924 108370 108371 108926 109105 109106 6 108925 108371 108372 108374 108927 109106 6 108926 108374 108928 109106 109107 108931 6 108927 108374 108375 108929 108931 108930 6 108928 108375 108376 108377 108379 108930 5 108929 108379 108380 108931 108928 8 108930 108380 108381 108743 108932 109107 108927 108928 5 108931 108743 108744 108933 109107 8 108932 108744 108745 108934 109107 109106 109105 109108 6 108933 108745 108746 108747 108935 109108 6 108934 108747 108936 109108 109109 109110 6 108935 108747 108748 108937 109110 109111 6 108936 108748 108749 108938 109111 109112 6 108937 108749 108750 108939 109112 109113 6 108938 108750 108751 108940 109113 109114 6 108939 108751 108752 108941 109114 109115 6 108940 108752 108753 108942 109115 109116 6 108941 108753 108943 109116 109117 108944 5 108942 108753 108754 108755 108944 7 108943 108755 108756 108945 109117 108942 109118 7 108944 108756 108757 108758 108946 109118 109119 5 108945 108758 108947 109119 109120 6 108946 108758 108759 108948 109120 109121 7 108947 108759 108760 108761 108949 109121 109122 6 108948 108761 108950 109122 109123 108951 6 108949 108761 108762 108763 108764 108951 6 108950 108764 108765 108952 109123 108949 6 108951 108765 108766 108953 109123 109124 6 108952 108766 108954 109124 109125 109126 6 108953 108766 108767 108768 108955 109126 6 108954 108768 108769 108956 109126 109127 6 108955 108769 108957 109127 109128 109129 6 108956 108769 108770 108771 108958 109129 6 108957 108771 108772 108959 109129 109130 6 108958 108772 108773 108960 109130 109131 6 108959 108773 108774 108961 109131 109132 6 108960 108774 108775 108962 109132 109133 6 108961 108775 108776 108963 109133 109134 6 108962 108776 108964 109134 109135 109136 6 108963 108776 108777 108778 108965 109136 6 108964 108778 108779 108966 109136 109137 6 108965 108779 108780 108967 109137 109138 6 108966 108780 108781 108968 109138 109139 6 108967 108781 108782 108969 109139 109140 7 108968 108782 108783 108784 108970 109140 109141 5 108969 108784 108971 109141 109142 7 108970 108784 108785 108972 109142 109143 109144 6 108971 108785 108786 108973 109144 109145 6 108972 108786 108974 109145 109146 109147 6 108973 108786 108787 108788 108975 109147 6 108974 108788 108789 108790 108976 109147 6 108975 108790 108977 109147 109148 109149 6 108976 108790 108791 108792 108978 109149 6 108977 108792 108979 109149 109150 109151 6 108978 108792 108793 108980 109151 109152 6 108979 108793 108795 108796 108981 109152 6 108980 108796 108982 109152 109153 108983 6 108981 108796 108797 108799 108801 108983 6 108982 108801 108984 109153 108981 109154 6 108983 108801 108802 108985 109154 109155 6 108984 108802 108986 109155 109156 109157 7 108985 108802 108803 108804 108987 109157 109158 5 108986 108804 108805 108988 109158 7 108987 108805 108989 108990 108991 109158 109159 5 108988 108805 108806 108807 108990 6 108989 108807 108988 108991 108992 108808 6 108988 108990 108992 109159 109160 109161 6 108991 108990 108808 108993 109164 109161 6 108992 108808 108809 108810 108994 109164 6 108993 108810 108812 108995 109164 109165 7 108994 108812 108813 108996 109165 109167 109168 5 108995 108813 108997 109168 109169 6 108996 108813 108814 108998 109169 109170 7 108997 108814 108815 108816 108999 109170 109171 5 108998 108816 108817 109000 109171 6 108999 108817 109001 109171 109172 109173 6 109000 108817 108818 109002 109173 109003 6 109001 108818 108819 108820 108821 109003 6 109002 108821 108823 109004 109173 109001 6 109003 108823 108824 108826 109005 109173 6 109004 108826 109006 109007 109008 109173 6 109005 108826 109007 109011 109012 108827 6 109005 109006 109008 109009 109010 109011 6 109005 109007 109009 109173 109172 109174 5 109008 109007 109010 109174 109177 6 109009 109007 109011 109013 109177 109014 7 109010 109007 109006 109012 109013 108831 108830 5 109011 109006 108830 108828 108827 5 109010 109011 108831 108832 109014 6 109013 108832 109015 109177 109010 109178 6 109014 108832 108833 109016 109181 109178 5 109015 108833 108834 109017 109181 7 109016 108834 108835 109018 109181 109182 109188 6 109017 108835 109019 109188 109189 109190 6 109018 108835 108836 109020 109190 109191 6 109019 108836 108837 108838 109021 109191 6 109020 108838 108839 109022 109191 109192 6 109021 108839 109023 109192 109195 109196 6 109022 108839 108840 109024 109196 109197 6 109023 108840 108841 109025 109197 109027 6 109024 108841 108842 108843 109026 109027 6 109025 108843 109027 109028 109029 109030 6 109025 109026 109028 109197 109024 109198 6 109027 109026 109029 109198 109199 109203 5 109028 109026 109030 109031 109203 6 109029 109026 108843 109031 108845 108844 7 109029 109030 108845 108847 109032 109203 109204 6 109031 108847 109033 109034 109204 109205 6 109032 108847 109034 109035 109042 108848 6 109032 109033 109035 109036 109037 109205 6 109034 109033 109036 109040 109041 109042 6 109034 109035 109037 109038 109039 109040 6 109034 109036 109038 109205 109206 109207 6 109037 109036 109039 109207 109208 109209 6 109038 109036 109040 109209 109062 109061 6 109039 109036 109035 109041 109061 109060 6 109040 109035 109042 109043 109060 109210 6 109041 109035 109033 108848 109043 108849 6 109041 109042 108849 108850 109044 109210 7 109043 108850 109045 109046 109055 109056 109210 6 109044 108850 108851 109046 109047 109048 6 109044 109045 109047 109053 109055 109049 6 109046 109045 109048 108854 108855 109049 6 109047 109045 108851 108854 108853 108852 6 109047 108855 109050 109051 109053 109046 6 109049 108855 108856 108857 108860 109051 6 109050 108860 108861 109052 109053 109049 6 109051 108861 109053 109054 109058 108863 6 109051 109052 109054 109055 109046 109049 6 109053 109052 109055 109056 109057 109058 5 109053 109054 109046 109044 109056 6 109044 109055 109054 109057 109059 109210 5 109056 109054 109058 108887 109059 8 109057 109054 109052 108863 108877 108882 108884 108887 6 109057 108887 108888 109060 109210 109056 6 109059 108888 109061 109040 109041 109210 6 109060 108888 108889 109062 109039 109040 6 109061 108889 109063 109209 109039 109211 6 109062 108889 108890 109064 109211 109212 6 109063 108890 108891 109065 109212 109213 6 109064 108891 109066 109213 109214 109215 6 109065 108891 108892 108895 109067 109215 6 109066 108895 108896 109068 109215 109216 6 109067 108896 108897 108899 109069 109216 6 109068 108899 109070 109216 109217 109218 6 109069 108899 108900 109071 109218 109219 7 109070 108900 108903 108904 109072 109219 109220 5 109071 108904 109073 109220 109221 7 109072 108904 108905 109074 109221 109222 109223 6 109073 108905 108906 109075 109223 109225 6 109074 108906 108907 109076 109225 109226 5 109075 108907 108908 109077 109226 7 109076 108908 108911 109078 109226 109227 109228 5 109077 108911 108912 109079 109228 6 109078 108912 108913 108915 109080 109228 6 109079 108915 109081 109228 109229 109230 6 109080 108915 108916 109082 109230 109231 6 109081 108916 108917 109083 109231 109232 6 109082 108917 108918 109084 109085 109232 6 109083 108918 109085 109086 109093 108919 6 109083 109084 109086 109087 109232 109233 6 109085 109084 109087 109088 109092 109093 6 109085 109086 109088 109089 109233 109234 6 109087 109086 109089 109090 109091 109092 6 109087 109088 109090 109095 109234 109235 6 109089 109088 109091 109095 109096 109097 6 109090 109088 109092 109097 109098 109099 6 109091 109088 109086 109093 109099 109100 6 109092 109086 109084 108919 108920 109100 5 108469 108470 108485 108476 108471 6 109089 109090 109096 109235 109236 109237 6 109095 109090 109097 109237 109238 109239 6 109096 109090 109091 109098 109239 109240 6 109097 109091 109099 109240 109241 109242 6 109098 109091 109092 109100 109242 109101 6 109099 109092 109093 108920 108921 109101 6 109100 108921 108922 109102 109242 109099 6 109101 108922 108923 109103 109242 109243 6 109102 108923 108924 109104 109243 109244 6 109103 108924 109105 109109 109244 109108 6 109104 108924 108925 109106 108933 109108 6 109105 108925 108926 108927 109107 108933 5 109106 108927 108931 108932 108933 6 109105 108933 108934 108935 109109 109104 5 109108 108935 109110 109244 109104 7 109109 108935 108936 109111 109245 109244 109348 6 109110 108936 108937 109112 109350 109348 5 109111 108937 108938 109113 109350 6 109112 108938 108939 109114 109350 109351 6 109113 108939 108940 109115 109351 109352 6 109114 108940 108941 109116 109352 109353 6 109115 108941 108942 109117 109246 109353 6 109116 108942 108944 109118 109246 109247 6 109117 108944 108945 109119 109247 109248 5 109118 108945 108946 109120 109248 7 109119 108946 108947 109121 109248 109249 109250 6 109120 108947 108948 109122 109250 109251 5 109121 108948 108949 109123 109251 6 109122 108949 108951 108952 109124 109251 6 109123 108952 108953 109125 109251 109252 6 109124 108953 109126 109252 109253 109254 6 109125 108953 108954 108955 109127 109254 6 109126 108955 108956 109128 109254 109255 6 109127 108956 109129 109255 109256 109257 6 109128 108956 108957 108958 109130 109257 6 109129 108958 108959 109131 109257 109258 6 109130 108959 108960 109132 109258 109259 6 109131 108960 108961 109133 109259 109260 6 109132 108961 108962 109134 109260 109261 6 109133 108962 108963 109135 109261 109262 6 109134 108963 109136 109262 109263 109264 6 109135 108963 108964 108965 109137 109264 6 109136 108965 108966 109138 109264 109265 6 109137 108966 108967 109139 109265 109266 6 109138 108967 108968 109140 109266 109267 6 109139 108968 108969 109141 109267 109268 5 109140 108969 108970 109142 109268 7 109141 108970 108971 109143 109268 109269 109270 6 109142 108971 109144 109270 109271 109272 5 109143 108971 108972 109145 109272 6 109144 108972 108973 109146 109272 109273 6 109145 108973 109147 109273 109274 109148 6 109146 108973 108974 108975 108976 109148 6 109147 108976 109149 109274 109146 109275 6 109148 108976 108977 108978 109150 109275 6 109149 108978 109151 109275 109276 109277 6 109150 108978 108979 109152 109277 109278 7 109151 108979 108980 108981 109153 109278 109279 6 109152 108981 108983 109154 109279 109280 6 109153 108983 108984 109155 109280 109281 6 109154 108984 108985 109156 109281 109282 6 109155 108985 109157 109282 109283 109284 6 109156 108985 108986 109158 109284 109285 6 109157 108986 108987 108988 109159 109285 6 109158 108988 108991 109160 109285 109286 6 109159 108991 109161 109162 109286 109287 6 109160 108991 109162 109163 109164 108992 6 109160 109161 109163 109287 109288 109289 6 109162 109161 109164 109165 109166 109289 6 109163 109161 108992 108993 108994 109165 6 109164 108994 108995 109163 109166 109167 6 109163 109165 109167 109289 109290 109186 6 109166 109165 108995 109168 109186 109185 6 109167 108995 108996 109169 109185 109184 7 109168 108996 108997 109170 109184 109179 109176 6 109169 108997 108998 109171 109176 109175 6 109170 108998 108999 109000 109172 109175 6 109171 109000 109173 109008 109174 109175 7 109172 109000 109001 109003 109004 109005 109008 6 109172 109008 109009 109175 109176 109177 5 109172 109174 109176 109170 109171 6 109175 109174 109177 109179 109169 109170 7 109176 109174 109009 109010 109014 109178 109179 6 109177 109014 109179 109180 109181 109015 6 109177 109178 109180 109184 109169 109176 6 109179 109178 109181 109182 109183 109184 6 109180 109178 109015 109016 109017 109182 6 109181 109017 109180 109183 109187 109188 6 109180 109182 109184 109185 109186 109187 6 109180 109183 109185 109168 109169 109179 5 109184 109183 109186 109167 109168 6 109185 109183 109187 109290 109166 109167 6 109186 109183 109182 109188 109290 109291 6 109187 109182 109017 109018 109189 109291 5 109188 109018 109190 109291 109292 6 109189 109018 109019 109191 109292 109193 6 109190 109019 109020 109021 109192 109193 6 109191 109021 109022 109193 109194 109195 6 109191 109192 109194 109292 109190 109293 6 109193 109192 109195 109293 109294 109295 6 109194 109192 109022 109196 109295 109296 6 109195 109022 109023 109197 109302 109296 7 109196 109023 109024 109027 109198 109302 109303 6 109197 109027 109028 109199 109200 109303 6 109198 109028 109200 109201 109202 109203 6 109198 109199 109201 109303 109301 109304 6 109200 109199 109202 109304 109305 109306 6 109201 109199 109203 109306 109307 109204 6 109202 109199 109028 109029 109031 109204 7 109203 109031 109032 109205 109307 109202 109206 5 109204 109032 109034 109037 109206 6 109205 109037 109207 109307 109204 109308 6 109206 109037 109038 109208 109308 109309 6 109207 109038 109209 109309 109310 109314 6 109208 109038 109039 109062 109211 109314 6 109060 109041 109043 109059 109056 109044 6 109209 109062 109063 109212 109314 109315 6 109211 109063 109064 109213 109315 109316 6 109212 109064 109065 109214 109319 109316 6 109213 109065 109215 109319 109320 109321 6 109214 109065 109066 109067 109216 109321 6 109215 109067 109068 109069 109217 109321 7 109216 109069 109218 109321 109320 109322 109323 5 109217 109069 109070 109219 109323 7 109218 109070 109071 109220 109323 109324 109325 5 109219 109071 109072 109221 109325 7 109220 109072 109073 109222 109325 109326 109327 6 109221 109073 109223 109224 109327 109328 5 109222 109073 109074 109224 109225 6 109222 109223 109225 109328 109329 109330 6 109224 109223 109074 109075 109226 109330 7 109225 109075 109076 109077 109227 109330 109331 6 109226 109077 109228 109331 109332 109229 6 109227 109077 109078 109079 109080 109229 7 109228 109080 109230 109332 109227 109333 109334 6 109229 109080 109081 109231 109334 109335 6 109230 109081 109082 109232 109335 109336 7 109231 109082 109083 109085 109233 109336 109337 5 109232 109085 109087 109234 109337 7 109233 109087 109089 109235 109337 109338 109339 5 109234 109089 109095 109236 109339 7 109235 109095 109237 109339 109340 109341 109342 6 109236 109095 109096 109238 109342 109343 6 109237 109096 109239 109343 109344 109345 6 109238 109096 109097 109240 109345 109346 6 109239 109097 109098 109241 109346 109347 6 109240 109098 109242 109347 109245 109243 6 109241 109098 109099 109101 109102 109243 6 109242 109102 109103 109244 109245 109241 6 109243 109103 109245 109110 109109 109104 6 109243 109244 109110 109347 109241 109348 6 109116 109117 109247 109353 109354 109355 6 109246 109117 109118 109248 109355 109356 6 109247 109118 109119 109120 109249 109356 6 109248 109120 109250 109356 109357 109358 6 109249 109120 109121 109251 109358 109252 6 109250 109121 109122 109123 109124 109252 7 109251 109124 109125 109253 109358 109250 109359 5 109252 109125 109254 109359 109360 7 109253 109125 109126 109127 109255 109360 109361 6 109254 109127 109128 109256 109361 109362 6 109255 109128 109257 109362 109363 109364 6 109256 109128 109129 109130 109258 109364 7 109257 109130 109131 109259 109364 109365 109366 6 109258 109131 109132 109260 109366 109367 6 109259 109132 109133 109261 109367 109368 6 109260 109133 109134 109262 109368 109369 6 109261 109134 109135 109263 109369 109370 6 109262 109135 109264 109370 109371 109372 6 109263 109135 109136 109137 109265 109372 6 109264 109137 109138 109266 109372 109373 6 109265 109138 109139 109267 109373 109374 6 109266 109139 109140 109268 109374 109375 7 109267 109140 109141 109142 109269 109375 109376 5 109268 109142 109270 109376 109377 6 109269 109142 109143 109271 109377 109381 6 109270 109143 109272 109381 109382 109383 6 109271 109143 109144 109145 109273 109383 6 109272 109145 109146 109274 109383 109384 6 109273 109146 109148 109275 109384 109385 7 109274 109148 109149 109150 109276 109385 109386 5 109275 109150 109277 109386 109388 6 109276 109150 109151 109278 109388 109389 6 109277 109151 109152 109279 109389 109390 6 109278 109152 109153 109280 109390 109391 5 109279 109153 109154 109281 109391 6 109280 109154 109155 109282 109393 109391 6 109281 109155 109156 109283 109393 109394 6 109282 109156 109284 109394 109395 109396 6 109283 109156 109157 109285 109396 109397 6 109284 109157 109158 109159 109286 109397 6 109285 109159 109160 109287 109397 109398 5 109286 109160 109162 109288 109398 7 109287 109162 109289 109398 109399 109400 109401 6 109288 109162 109163 109166 109290 109401 7 109289 109166 109186 109187 109291 109402 109401 6 109290 109187 109188 109189 109292 109402 7 109291 109189 109190 109193 109293 109402 109400 6 109292 109193 109194 109294 109400 109403 6 109293 109194 109295 109403 109404 109405 6 109294 109194 109195 109296 109297 109405 6 109295 109195 109297 109298 109302 109196 6 109295 109296 109298 109299 109405 109406 6 109297 109296 109299 109300 109301 109302 6 109297 109298 109300 109409 109406 109410 6 109299 109298 109301 109410 109411 109412 7 109300 109298 109302 109303 109200 109304 109412 6 109301 109298 109296 109196 109197 109303 5 109302 109197 109198 109200 109301 5 109301 109200 109201 109305 109412 7 109304 109201 109306 109412 109413 109414 109418 5 109305 109201 109202 109307 109418 6 109306 109202 109204 109206 109308 109418 6 109307 109206 109207 109309 109417 109418 6 109308 109207 109208 109310 109311 109417 6 109309 109208 109311 109312 109313 109314 6 109309 109310 109312 109416 109417 109419 6 109311 109310 109313 109419 109420 109424 7 109312 109310 109314 109424 109425 109317 109315 6 109313 109310 109208 109209 109211 109315 6 109314 109211 109212 109316 109317 109313 6 109315 109212 109317 109318 109319 109213 6 109315 109316 109318 109425 109313 109426 6 109317 109316 109319 109426 109427 109428 6 109318 109316 109213 109214 109320 109428 6 109319 109214 109321 109217 109322 109428 5 109320 109214 109215 109216 109217 6 109320 109217 109323 109428 109429 109430 6 109322 109217 109218 109219 109324 109430 6 109323 109219 109325 109430 109431 109432 6 109324 109219 109220 109221 109326 109432 6 109325 109221 109327 109432 109433 109434 6 109326 109221 109222 109328 109434 109435 5 109327 109222 109224 109329 109435 7 109328 109224 109330 109435 109436 109437 109438 6 109329 109224 109225 109226 109331 109438 6 109330 109226 109227 109332 109438 109439 6 109331 109227 109229 109333 109442 109439 6 109332 109229 109334 109442 109443 109446 5 109333 109229 109230 109335 109446 6 109334 109230 109231 109336 109446 109447 6 109335 109231 109232 109337 109447 109448 6 109336 109232 109233 109234 109338 109448 6 109337 109234 109339 109448 109449 109450 6 109338 109234 109235 109236 109340 109450 6 109339 109236 109341 109450 109451 109452 6 109340 109236 109342 109452 109453 109454 6 109341 109236 109237 109343 109454 109455 5 109342 109237 109238 109344 109455 7 109343 109238 109345 109455 109456 109457 109458 6 109344 109238 109239 109346 109458 109349 5 109345 109239 109240 109347 109349 6 109346 109240 109241 109245 109348 109349 6 109347 109245 109349 109350 109111 109110 7 109347 109348 109350 109458 109345 109346 109351 6 109349 109348 109111 109112 109113 109351 7 109350 109113 109114 109352 109458 109349 109459 6 109351 109114 109115 109353 109459 109460 6 109352 109115 109116 109246 109354 109460 6 109353 109246 109355 109460 109461 109462 6 109354 109246 109247 109356 109462 109463 6 109355 109247 109248 109249 109357 109463 6 109356 109249 109358 109463 109464 109465 6 109357 109249 109250 109252 109359 109465 5 109358 109252 109253 109360 109465 7 109359 109253 109254 109361 109465 109466 109467 5 109360 109254 109255 109362 109467 6 109361 109255 109256 109363 109467 109468 6 109362 109256 109364 109468 109469 109470 6 109363 109256 109257 109258 109365 109470 6 109364 109258 109366 109470 109471 109472 5 109365 109258 109259 109367 109472 6 109366 109259 109260 109368 109472 109473 6 109367 109260 109261 109369 109473 109474 6 109368 109261 109262 109370 109474 109475 6 109369 109262 109263 109371 109475 109476 6 109370 109263 109372 109476 109477 109478 6 109371 109263 109264 109265 109373 109478 6 109372 109265 109266 109374 109478 109479 6 109373 109266 109267 109375 109479 109480 6 109374 109267 109268 109376 109480 109481 6 109375 109268 109269 109377 109378 109481 7 109376 109269 109270 109378 109379 109380 109381 5 109376 109377 109379 109481 109482 6 109378 109377 109380 109482 109483 109484 6 109379 109377 109381 109484 109485 109382 5 109380 109377 109270 109271 109382 6 109381 109271 109383 109485 109380 109486 7 109382 109271 109272 109273 109384 109486 109487 6 109383 109273 109274 109385 109487 109488 6 109384 109274 109275 109386 109387 109488 5 109385 109275 109276 109387 109388 6 109385 109386 109388 109488 109489 109490 7 109387 109386 109276 109277 109389 109490 109491 6 109388 109277 109278 109390 109491 109492 6 109389 109278 109279 109391 109392 109492 6 109390 109279 109392 109393 109281 109280 6 109390 109391 109393 109492 109493 109494 6 109392 109391 109281 109282 109394 109494 6 109393 109282 109283 109395 109494 109495 6 109394 109283 109396 109495 109496 109497 6 109395 109283 109284 109397 109498 109497 6 109396 109284 109285 109286 109398 109498 6 109397 109286 109287 109288 109399 109498 6 109398 109288 109400 109498 109404 109403 7 109399 109288 109401 109402 109292 109293 109403 5 109400 109288 109402 109290 109289 5 109400 109401 109290 109291 109292 5 109400 109293 109294 109404 109399 6 109403 109294 109405 109498 109399 109407 6 109404 109294 109295 109297 109406 109407 6 109405 109297 109407 109408 109409 109299 6 109405 109406 109408 109497 109498 109404 6 109407 109406 109409 109496 109497 109499 6 109408 109406 109299 109410 109499 109500 6 109409 109299 109300 109411 109500 109501 6 109410 109300 109412 109501 109502 109413 6 109411 109300 109301 109304 109305 109413 6 109412 109305 109414 109415 109502 109411 6 109413 109305 109415 109416 109417 109418 6 109413 109414 109416 109502 109503 109504 6 109415 109414 109417 109311 109419 109504 6 109416 109414 109418 109308 109309 109311 6 109417 109414 109308 109307 109306 109305 6 109416 109311 109312 109420 109421 109504 6 109419 109312 109421 109422 109423 109424 6 109419 109420 109422 109504 109505 109506 6 109421 109420 109423 109506 109507 109508 6 109422 109420 109424 109511 109508 109512 6 109423 109420 109312 109313 109425 109512 5 109424 109313 109317 109426 109512 6 109425 109317 109318 109427 109512 109513 6 109426 109318 109428 109513 109514 109429 6 109427 109318 109319 109320 109322 109429 6 109428 109322 109430 109517 109514 109427 6 109429 109322 109323 109324 109431 109517 6 109430 109324 109432 109524 109517 109525 6 109431 109324 109325 109326 109433 109525 6 109432 109326 109434 109525 109526 109527 6 109433 109326 109327 109435 109527 109528 6 109434 109327 109328 109329 109436 109528 6 109435 109329 109437 109528 109530 109531 6 109436 109329 109438 109531 109532 109440 6 109437 109329 109330 109331 109439 109440 6 109438 109331 109440 109441 109442 109332 5 109438 109439 109441 109532 109437 7 109440 109439 109442 109443 109444 109532 109533 5 109441 109439 109332 109333 109443 6 109442 109333 109441 109444 109445 109446 5 109441 109443 109445 109533 109534 6 109444 109443 109446 109534 109535 109536 7 109445 109443 109333 109334 109335 109447 109536 6 109446 109335 109336 109448 109536 109537 6 109447 109336 109337 109338 109449 109537 6 109448 109338 109450 109537 109538 109451 5 109449 109338 109339 109340 109451 7 109450 109340 109452 109538 109449 109539 109540 6 109451 109340 109341 109453 109540 109541 6 109452 109341 109454 109541 109542 109543 6 109453 109341 109342 109455 109543 109544 6 109454 109342 109343 109344 109456 109544 6 109455 109344 109457 109544 109545 109461 6 109456 109344 109458 109461 109460 109459 6 109457 109344 109345 109349 109351 109459 5 109458 109351 109352 109460 109457 6 109459 109352 109353 109354 109461 109457 6 109460 109354 109462 109545 109456 109457 5 109461 109354 109355 109463 109545 7 109462 109355 109356 109357 109464 109545 109546 6 109463 109357 109465 109546 109547 109548 7 109464 109357 109358 109359 109360 109466 109548 6 109465 109360 109467 109548 109549 109550 6 109466 109360 109361 109362 109468 109550 6 109467 109362 109363 109469 109550 109551 6 109468 109363 109470 109551 109552 109553 6 109469 109363 109364 109365 109471 109553 6 109470 109365 109472 109553 109554 109555 6 109471 109365 109366 109367 109473 109555 6 109472 109367 109368 109474 109555 109556 6 109473 109368 109369 109475 109556 109557 6 109474 109369 109370 109476 109557 109558 6 109475 109370 109371 109477 109558 109559 6 109476 109371 109478 109559 109560 109561 6 109477 109371 109372 109373 109479 109561 6 109478 109373 109374 109480 109561 109562 6 109479 109374 109375 109481 109562 109563 6 109480 109375 109376 109378 109482 109563 6 109481 109378 109379 109483 109563 109564 6 109482 109379 109484 109564 109565 109566 6 109483 109379 109380 109485 109566 109567 6 109484 109380 109382 109486 109567 109568 6 109485 109382 109383 109487 109568 109569 6 109486 109383 109384 109488 109569 109570 6 109487 109384 109385 109387 109489 109570 6 109488 109387 109490 109570 109571 109572 6 109489 109387 109388 109491 109572 109573 6 109490 109388 109389 109492 109573 109574 6 109491 109389 109390 109392 109493 109574 6 109492 109392 109494 109574 109575 109576 6 109493 109392 109393 109394 109495 109576 6 109494 109394 109395 109496 109576 109577 6 109495 109395 109497 109408 109499 109577 6 109496 109395 109408 109407 109498 109396 7 109407 109497 109396 109397 109398 109399 109404 5 109496 109408 109409 109500 109577 7 109499 109409 109410 109501 109577 109578 109579 6 109500 109410 109411 109502 109579 109580 6 109501 109411 109413 109415 109503 109580 6 109502 109415 109504 109580 109581 109582 7 109503 109415 109416 109419 109421 109505 109582 5 109504 109421 109506 109582 109583 6 109505 109421 109422 109507 109583 109584 6 109506 109422 109508 109509 109584 109585 6 109507 109422 109509 109510 109511 109423 6 109507 109508 109510 109585 109586 109587 6 109509 109508 109511 109518 109587 109521 6 109510 109508 109423 109512 109518 109519 7 109511 109423 109424 109425 109426 109513 109519 6 109512 109426 109427 109514 109515 109519 6 109513 109427 109515 109516 109517 109429 6 109513 109514 109516 109519 109518 109520 6 109515 109514 109517 109523 109520 109524 6 109516 109514 109429 109430 109524 109431 6 109510 109511 109519 109515 109520 109521 5 109518 109511 109512 109513 109515 6 109518 109515 109521 109522 109523 109516 6 109518 109520 109522 109587 109510 109588 6 109521 109520 109523 109588 109589 109590 6 109522 109520 109516 109524 109590 109591 6 109523 109516 109517 109431 109525 109591 7 109524 109431 109432 109433 109526 109591 109592 5 109525 109433 109527 109592 109593 6 109526 109433 109434 109528 109529 109593 6 109527 109434 109435 109436 109529 109530 6 109527 109528 109530 109593 109594 109595 6 109529 109528 109436 109531 109595 109596 6 109530 109436 109437 109532 109596 109597 7 109531 109437 109440 109441 109533 109597 109598 5 109532 109441 109444 109534 109598 7 109533 109444 109445 109535 109598 109599 109600 6 109534 109445 109536 109600 109601 109602 7 109535 109445 109446 109447 109537 109602 109603 6 109536 109447 109448 109449 109538 109603 6 109537 109449 109451 109539 109603 109604 6 109538 109451 109540 109604 109605 109606 6 109539 109451 109452 109541 109606 109607 5 109540 109452 109453 109542 109607 7 109541 109453 109543 109607 109608 109609 109610 5 109542 109453 109454 109544 109610 7 109543 109454 109455 109456 109545 109610 109546 6 109544 109456 109461 109462 109463 109546 6 109545 109463 109464 109547 109610 109544 6 109546 109464 109548 109610 109609 109549 5 109547 109464 109465 109466 109549 6 109548 109466 109550 109609 109547 109611 6 109549 109466 109467 109468 109551 109611 6 109550 109468 109469 109552 109611 109612 6 109551 109469 109553 109612 109613 109614 6 109552 109469 109470 109471 109554 109614 6 109553 109471 109555 109614 109615 109616 6 109554 109471 109472 109473 109556 109616 6 109555 109473 109474 109557 109616 109617 6 109556 109474 109475 109558 109617 109618 6 109557 109475 109476 109559 109618 109619 6 109558 109476 109477 109560 109619 109620 6 109559 109477 109561 109620 109621 109622 6 109560 109477 109478 109479 109562 109622 6 109561 109479 109480 109563 109622 109623 6 109562 109480 109481 109482 109564 109623 6 109563 109482 109483 109565 109623 109624 6 109564 109483 109566 109624 109625 109626 6 109565 109483 109484 109567 109626 109627 6 109566 109484 109485 109568 109627 109628 7 109567 109485 109486 109569 109628 109629 109630 6 109568 109486 109487 109570 109630 109631 6 109569 109487 109488 109489 109571 109631 6 109570 109489 109572 109631 109632 109633 6 109571 109489 109490 109573 109633 109634 6 109572 109490 109491 109574 109634 109635 6 109573 109491 109492 109493 109575 109635 6 109574 109493 109576 109635 109636 109578 6 109575 109493 109494 109495 109577 109578 6 109576 109495 109496 109499 109500 109578 6 109577 109500 109579 109636 109575 109576 6 109578 109500 109501 109580 109636 109581 5 109579 109501 109502 109503 109581 6 109580 109503 109582 109636 109579 109637 6 109581 109503 109504 109505 109583 109637 6 109582 109505 109506 109584 109637 109638 6 109583 109506 109507 109585 109638 109633 6 109584 109507 109509 109586 109633 109632 6 109585 109509 109587 109632 109639 109629 6 109586 109509 109510 109521 109588 109629 6 109587 109521 109522 109589 109629 109628 6 109588 109522 109590 109628 109627 109640 6 109589 109522 109523 109591 109640 109641 6 109590 109523 109524 109525 109592 109641 6 109591 109525 109526 109593 109641 109642 7 109592 109526 109527 109529 109594 109642 109643 5 109593 109529 109595 109643 109644 6 109594 109529 109530 109596 109644 109645 6 109595 109530 109531 109597 109645 109646 6 109596 109531 109532 109598 109646 109647 6 109597 109532 109533 109534 109599 109647 5 109598 109534 109600 109647 109648 7 109599 109534 109535 109601 109648 109649 109650 5 109600 109535 109602 109650 109651 6 109601 109535 109536 109603 109651 109604 5 109602 109536 109537 109538 109604 6 109603 109538 109539 109605 109651 109602 6 109604 109539 109606 109651 109652 109653 6 109605 109539 109540 109607 109653 109613 6 109606 109540 109541 109542 109608 109613 6 109607 109542 109609 109613 109612 109611 6 109608 109542 109610 109547 109549 109611 6 109609 109542 109543 109544 109546 109547 6 109609 109549 109550 109551 109612 109608 5 109611 109551 109552 109613 109608 7 109612 109552 109614 109653 109606 109607 109608 6 109613 109552 109553 109554 109615 109653 6 109614 109554 109616 109653 109652 109654 6 109615 109554 109555 109556 109617 109654 6 109616 109556 109557 109618 109654 109655 6 109617 109557 109558 109619 109655 109656 6 109618 109558 109559 109620 109656 109657 6 109619 109559 109560 109621 109657 109658 6 109620 109560 109622 109658 109659 109660 6 109621 109560 109561 109562 109623 109660 6 109622 109562 109563 109564 109624 109660 7 109623 109564 109565 109625 109660 109661 109662 5 109624 109565 109626 109662 109663 7 109625 109565 109566 109627 109663 109664 109640 6 109626 109566 109567 109628 109589 109640 6 109627 109567 109568 109629 109588 109589 7 109628 109568 109630 109639 109586 109587 109588 5 109629 109568 109569 109631 109639 6 109630 109569 109570 109571 109632 109639 6 109631 109571 109633 109585 109586 109639 7 109632 109571 109572 109634 109638 109584 109585 6 109633 109572 109573 109635 109637 109638 6 109634 109573 109574 109575 109636 109637 6 109635 109575 109578 109579 109581 109637 7 109636 109581 109582 109583 109638 109635 109634 5 109637 109583 109584 109633 109634 5 109632 109586 109629 109630 109631 6 109627 109589 109590 109641 109664 109626 6 109640 109590 109591 109592 109642 109664 6 109641 109592 109593 109643 109664 109663 6 109642 109593 109594 109644 109663 109662 7 109643 109594 109595 109645 109662 109661 109665 7 109644 109595 109596 109646 109665 109659 109666 6 109645 109596 109597 109647 109666 109667 6 109646 109597 109598 109599 109648 109667 6 109647 109599 109600 109649 109667 109668 6 109648 109600 109650 109668 109656 109655 6 109649 109600 109601 109651 109655 109669 7 109650 109601 109602 109604 109605 109652 109669 6 109651 109605 109653 109615 109654 109669 6 109652 109605 109606 109613 109614 109615 6 109652 109615 109616 109617 109655 109669 7 109654 109617 109618 109656 109649 109650 109669 6 109655 109618 109619 109657 109668 109649 5 109656 109619 109620 109658 109668 6 109657 109620 109621 109659 109668 109666 6 109658 109621 109660 109665 109645 109666 7 109659 109621 109622 109623 109624 109661 109665 5 109660 109624 109662 109644 109665 6 109661 109624 109625 109663 109643 109644 6 109662 109625 109626 109664 109642 109643 5 109663 109626 109640 109641 109642 5 109661 109644 109645 109659 109660 6 109659 109645 109646 109667 109668 109658 5 109666 109646 109647 109648 109668 7 109667 109648 109649 109656 109657 109658 109666 5 109655 109650 109651 109652 109654 6 106653 106650 106651 109671 109691 109681 6 109670 106651 109672 109676 109680 109681 6 109671 106651 109673 109674 109675 109676 6 109672 106651 109674 106649 109727 106365 6 109672 109673 109675 109725 109726 109727 6 109672 109674 109676 109677 109678 109725 6 109672 109675 109677 109679 109680 109671 5 109676 109675 109678 105235 109679 7 109677 109675 105235 109734 104519 109725 109733 6 109677 105235 105236 109676 109680 109683 7 109676 109679 109671 109681 109682 104654 109683 6 109671 109680 109682 109691 109670 109685 5 109681 109680 104654 104655 109685 6 104654 109680 109679 105236 104652 109684 6 104652 109683 104650 100422 105237 105236 6 109682 104655 109686 109687 109691 109681 6 109685 104655 109687 103169 109688 104656 6 109685 109686 103169 103170 109691 103172 7 103169 109686 104656 109689 103168 102843 109690 5 109688 104656 105380 100430 109690 6 102843 109688 109689 100430 102841 100429 6 109685 109687 103172 106653 109670 109681 6 106475 106478 106474 109779 109774 109780 6 106460 106461 106465 106467 106377 106378 6 105862 105863 109695 109702 109703 109700 6 109694 105863 105864 109696 105719 109700 5 109695 105864 105865 105718 105719 6 105718 105865 105866 105867 109698 109699 6 109697 105867 109699 105695 105694 105868 5 109697 109698 105695 105696 105718 6 109695 105719 105720 109701 109702 109694 5 109700 105720 105721 105724 109702 6 109701 105724 106095 109703 109694 109700 6 109702 106095 106383 109694 105862 105861 6 106490 102252 100415 102194 106488 106489 7 106488 102195 106487 106480 102196 109773 109778 5 102251 106491 103336 106492 103335 6 103335 106492 103334 106499 106493 106494 6 106502 106503 109709 102189 109711 109712 6 106502 109708 102189 106501 109710 102190 6 106501 109709 106500 102190 102191 102512 7 109708 106503 106512 109712 109715 109716 109717 5 109708 109711 102189 109713 109715 6 102189 109712 102187 102197 109714 109715 6 102197 109713 109715 102215 102216 109720 6 109714 109713 109712 109711 109716 102215 7 109715 109711 109717 109718 109719 102214 102215 6 109716 109711 106512 106513 106514 109718 5 109717 106514 106516 109719 109716 5 109718 106516 109716 102214 106522 6 109714 102216 102217 102200 102198 102197 6 106669 106775 109722 109723 106656 106658 5 109721 106775 109723 109724 109798 6 109721 109722 109724 106646 106656 106655 6 109723 109722 106646 106645 109799 109798 6 109675 109674 109726 109678 109733 109735 6 109725 109674 109727 109729 109735 109728 6 109726 109674 109673 106365 106366 109728 6 109727 106366 106368 106370 109729 109726 6 109728 106370 109730 109731 109735 109726 6 109729 106370 106371 106375 106467 109731 6 109730 106467 106466 109732 109735 109729 6 109731 106466 106468 107510 109733 109735 6 109732 107510 109734 109735 109678 109725 6 109733 107510 107508 104518 104519 109678 6 109732 109733 109731 109729 109726 109725 6 106041 106039 106038 106019 105872 105874 6 106132 106398 106392 106393 106115 109738 6 109737 106115 106116 106132 106131 106122 6 100569 100571 109740 109744 100568 109743 6 109739 100571 100573 109741 109742 109743 6 109740 100573 100916 100917 109742 100918 6 109740 109741 100918 109743 100921 100919 6 109740 109742 100921 100563 109744 109739 6 109743 100563 100564 100567 100568 109739 6 107205 107206 109746 107218 107217 107216 6 109745 107206 107207 107213 107216 107214 6 103491 103492 103496 103502 106706 106555 5 106706 103502 109749 103503 106710 5 106706 109748 106710 106707 106705 5 106682 105157 104667 106681 109761 5 103201 103470 103410 103200 103411 6 105932 105910 105915 105916 109755 105931 5 104915 104917 109754 104880 104879 7 109753 104917 104911 104880 109756 104904 109759 7 109752 105916 105931 105921 105920 105919 109758 6 104880 109754 109757 104895 104897 109759 5 104880 109756 104895 104884 104881 5 105919 109755 105918 105916 105917 6 109754 104904 104901 104898 104897 109756 6 104638 104912 104875 104872 104869 104868 7 106681 109750 104667 104668 109762 104560 109792 5 109761 104668 104546 104548 104560 5 108468 108469 109764 109765 108486 5 108468 109763 109765 107726 107962 7 109764 109763 108486 107714 107715 107723 107726 6 108023 108021 107738 107739 107740 107742 5 107723 107715 107716 107719 107721 6 100427 107500 107502 109769 100046 100045 6 109768 107502 109770 109772 100044 100045 7 109769 107502 107503 109771 109772 109774 109780 7 102196 100043 100001 109772 109770 109773 109774 5 109771 100001 109770 109769 100044 6 102196 109771 109774 109705 109778 109779 6 109773 109771 109770 109779 109692 109780 6 107253 107256 107523 107520 107517 107516 6 102095 102083 102084 106093 103138 103131 5 106638 106639 106642 106787 106785 5 109705 109773 109779 106478 106480 5 109778 109773 109774 109692 106478 5 109692 109774 106474 109770 107503 6 103852 103129 100026 100025 101526 103130 6 106787 106642 106643 109783 106789 106170 5 109782 106643 106168 106169 106170 6 104396 104529 104395 104121 104119 104530 6 106637 106783 106779 106636 106635 106771 6 104118 103529 103531 109787 109789 104120 6 109786 103531 103533 109788 107174 109789 6 109787 103533 103535 107178 107175 107174 6 109787 107174 109786 104120 104122 107172 5 107670 107695 107696 107698 107669 6 107775 103145 104231 103413 103414 107776 6 104560 106675 106676 106677 106681 109761 6 103659 103660 104908 109794 104369 104371 5 109793 104908 104642 104370 104369 6 105543 105545 105700 105540 105541 105542 6 106177 106178 109797 109798 106181 109799 6 106782 106177 109796 109798 106776 106780 7 109797 109796 106776 109799 109724 109722 106775 6 109796 106181 106183 106645 109724 109798 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump_b100000.xyz000066400000000000000000015121471514310134000264250ustar00rootroot000000000000002 9800 100000 -1.4167000000e+00 -1.2834000000e-07 100001 -8.3333000000e-02 -1.2834000000e-07 100002 1.0833000000e+00 -1.2834000000e-07 100003 3.5833000000e+00 -1.2834000000e-07 100004 3.5833000000e+00 2.0730000000e+00 100005 -1.4167000000e+00 2.0730000000e+00 100006 -1.3817000000e+00 -1.2834000000e-07 100007 -1.3467000000e+00 -1.2834000000e-07 100008 -1.3117000000e+00 -1.2834000000e-07 100009 -1.2767000000e+00 -1.2834000000e-07 100010 -1.2417000000e+00 -1.2834000000e-07 100011 -1.2067000000e+00 -1.2834000000e-07 100012 -1.1717000000e+00 -1.2834000000e-07 100013 -1.1367000000e+00 -1.2834000000e-07 100014 -1.1017000000e+00 -1.2834000000e-07 100015 -1.0667000000e+00 -1.2834000000e-07 100016 -1.0317000000e+00 -1.2834000000e-07 100017 -9.9667000000e-01 -1.2834000000e-07 100018 -9.6167000000e-01 -1.2834000000e-07 100019 -9.2667000000e-01 -1.2834000000e-07 100020 -8.9167000000e-01 -1.2834000000e-07 100021 -8.5667000000e-01 -1.2834000000e-07 100022 -8.2167000000e-01 -1.2834000000e-07 100023 -7.8667000000e-01 -1.2834000000e-07 100024 -7.5167000000e-01 -1.2834000000e-07 100025 -7.1667000000e-01 -1.2834000000e-07 100026 -6.8167000000e-01 -1.2834000000e-07 100027 -6.4667000000e-01 -1.2834000000e-07 100028 -6.1167000000e-01 -1.2834000000e-07 100029 -5.7667000000e-01 -1.2834000000e-07 100030 -5.4167000000e-01 -1.2834000000e-07 100031 -5.0667000000e-01 -1.2834000000e-07 100032 -4.7167000000e-01 -1.2834000000e-07 100033 -4.3667000000e-01 -1.2834000000e-07 100034 -4.0167000000e-01 -1.2834000000e-07 100035 -3.6667000000e-01 -1.2834000000e-07 100036 -3.3167000000e-01 -1.2834000000e-07 100037 -2.9667000000e-01 -1.2834000000e-07 100038 -2.6167000000e-01 -1.2834000000e-07 100039 -2.2667000000e-01 -1.2834000000e-07 100040 -1.9167000000e-01 -1.2834000000e-07 100041 -1.5667000000e-01 -1.2834000000e-07 100042 -1.3222000000e-01 -1.2834000000e-07 100043 -1.0778000000e-01 -1.2834000000e-07 100044 -4.8292000000e-02 7.9126000000e-04 100045 -1.3298000000e-02 2.0746000000e-03 100046 2.1603000000e-02 4.3415000000e-03 100047 5.6371000000e-02 8.0227000000e-03 100048 9.1037000000e-02 1.2827000000e-02 100049 1.2568000000e-01 1.7993000000e-02 100050 1.6037000000e-01 2.2756000000e-02 100051 1.9515000000e-01 2.6690000000e-02 100052 2.3000000000e-01 2.9943000000e-02 100053 2.6489000000e-01 3.2721000000e-02 100054 2.9981000000e-01 3.5192000000e-02 100055 3.3475000000e-01 3.7348000000e-02 100056 3.6970000000e-01 3.9131000000e-02 100057 4.0467000000e-01 4.0488000000e-02 100058 4.3966000000e-01 4.1403000000e-02 100059 4.7466000000e-01 4.1896000000e-02 100060 5.0967000000e-01 4.1985000000e-02 100061 5.4467000000e-01 4.1675000000e-02 100062 5.7966000000e-01 4.0951000000e-02 100063 6.1464000000e-01 3.9794000000e-02 100064 6.4961000000e-01 3.8196000000e-02 100065 6.8455000000e-01 3.6199000000e-02 100066 7.1948000000e-01 3.3862000000e-02 100067 7.5438000000e-01 3.1234000000e-02 100068 7.8926000000e-01 2.8218000000e-02 100069 8.2407000000e-01 2.4615000000e-02 100070 8.5880000000e-01 2.0220000000e-02 100071 8.9346000000e-01 1.5141000000e-02 100072 9.2810000000e-01 1.0080000000e-02 100073 9.6281000000e-01 5.8049000000e-03 100074 9.9766000000e-01 2.9386000000e-03 100075 1.0262000000e+00 1.5138000000e-03 100076 1.0547000000e+00 6.2324000000e-04 100077 1.1183000000e+00 -1.2834000000e-07 100078 1.1533000000e+00 -1.2834000000e-07 100079 1.1883000000e+00 -1.2834000000e-07 100080 1.2233000000e+00 -1.2834000000e-07 100081 1.2583000000e+00 -1.2834000000e-07 100082 1.2933000000e+00 -1.2834000000e-07 100083 1.3283000000e+00 -1.2834000000e-07 100084 1.3633000000e+00 -1.2834000000e-07 100085 1.3983000000e+00 -1.2834000000e-07 100086 1.4333000000e+00 -1.2834000000e-07 100087 1.4683000000e+00 -1.2834000000e-07 100088 1.5033000000e+00 -1.2834000000e-07 100089 1.5383000000e+00 -1.2834000000e-07 100090 1.5733000000e+00 -1.2834000000e-07 100091 1.6083000000e+00 -1.2834000000e-07 100092 1.6433000000e+00 -1.2834000000e-07 100093 1.6783000000e+00 -1.2834000000e-07 100094 1.7133000000e+00 -1.2834000000e-07 100095 1.7483000000e+00 -1.2834000000e-07 100096 1.7833000000e+00 -1.2834000000e-07 100097 1.8183000000e+00 -1.2834000000e-07 100098 1.8533000000e+00 -1.2834000000e-07 100099 1.8883000000e+00 -1.2834000000e-07 100100 1.9233000000e+00 -1.2834000000e-07 100101 1.9583000000e+00 -1.2834000000e-07 100102 1.9933000000e+00 -1.2834000000e-07 100103 2.0283000000e+00 -1.2834000000e-07 100104 2.0633000000e+00 -1.2834000000e-07 100105 2.0983000000e+00 -1.2834000000e-07 100106 2.1333000000e+00 -1.2834000000e-07 100107 2.1683000000e+00 -1.2834000000e-07 100108 2.2033000000e+00 -1.2834000000e-07 100109 2.2383000000e+00 -1.2834000000e-07 100110 2.2733000000e+00 -1.2834000000e-07 100111 2.3083000000e+00 -1.2834000000e-07 100112 2.3433000000e+00 -1.2834000000e-07 100113 2.3783000000e+00 -1.2834000000e-07 100114 2.4133000000e+00 -1.2834000000e-07 100115 2.4483000000e+00 -1.2834000000e-07 100116 2.4833000000e+00 -1.2834000000e-07 100117 2.5183000000e+00 -1.2834000000e-07 100118 2.5533000000e+00 -1.2834000000e-07 100119 2.5883000000e+00 -1.2834000000e-07 100120 2.6233000000e+00 -1.2834000000e-07 100121 2.6583000000e+00 -1.2834000000e-07 100122 2.6933000000e+00 -1.2834000000e-07 100123 2.7283000000e+00 -1.2834000000e-07 100124 2.7633000000e+00 -1.2834000000e-07 100125 2.7983000000e+00 -1.2834000000e-07 100126 2.8333000000e+00 -1.2834000000e-07 100127 2.8683000000e+00 -1.2834000000e-07 100128 2.9033000000e+00 -1.2834000000e-07 100129 2.9383000000e+00 -1.2834000000e-07 100130 2.9733000000e+00 -1.2834000000e-07 100131 3.0083000000e+00 -1.2834000000e-07 100132 3.0433000000e+00 -1.2834000000e-07 100133 3.0783000000e+00 -1.2834000000e-07 100134 3.1133000000e+00 -1.2834000000e-07 100135 3.1483000000e+00 -1.2834000000e-07 100136 3.1833000000e+00 -1.2834000000e-07 100137 3.2183000000e+00 -1.2834000000e-07 100138 3.2533000000e+00 -1.2834000000e-07 100139 3.2883000000e+00 -1.2834000000e-07 100140 3.3233000000e+00 -1.2834000000e-07 100141 3.3583000000e+00 -1.2834000000e-07 100142 3.3933000000e+00 -1.2834000000e-07 100143 3.4283000000e+00 -1.2834000000e-07 100144 3.4633000000e+00 -1.2834000000e-07 100145 3.4983000000e+00 -1.2834000000e-07 100146 3.5267000000e+00 -1.2834000000e-07 100147 3.5550000000e+00 -1.2834000000e-07 100148 3.5833000000e+00 3.5000000000e-02 100149 3.5833000000e+00 7.0000000000e-02 100150 3.5833000000e+00 1.0500000000e-01 100151 3.5833000000e+00 1.4000000000e-01 100152 3.5833000000e+00 1.7500000000e-01 100153 3.5833000000e+00 2.1000000000e-01 100154 3.5833000000e+00 2.4500000000e-01 100155 3.5833000000e+00 2.8000000000e-01 100156 3.5833000000e+00 3.1500000000e-01 100157 3.5833000000e+00 3.5000000000e-01 100158 3.5833000000e+00 3.8500000000e-01 100159 3.5833000000e+00 4.2000000000e-01 100160 3.5833000000e+00 4.5500000000e-01 100161 3.5833000000e+00 4.9000000000e-01 100162 3.5833000000e+00 5.2500000000e-01 100163 3.5833000000e+00 5.6000000000e-01 100164 3.5833000000e+00 5.9500000000e-01 100165 3.5833000000e+00 6.3000000000e-01 100166 3.5833000000e+00 6.6500000000e-01 100167 3.5833000000e+00 7.0000000000e-01 100168 3.5833000000e+00 7.3500000000e-01 100169 3.5833000000e+00 7.7000000000e-01 100170 3.5833000000e+00 8.0500000000e-01 100171 3.5833000000e+00 8.4000000000e-01 100172 3.5833000000e+00 8.7500000000e-01 100173 3.5833000000e+00 9.1000000000e-01 100174 3.5833000000e+00 9.4500000000e-01 100175 3.5833000000e+00 9.8000000000e-01 100176 3.5833000000e+00 1.0150000000e+00 100177 3.5833000000e+00 1.0500000000e+00 100178 3.5833000000e+00 1.0850000000e+00 100179 3.5833000000e+00 1.1200000000e+00 100180 3.5833000000e+00 1.1550000000e+00 100181 3.5833000000e+00 1.1900000000e+00 100182 3.5833000000e+00 1.2250000000e+00 100183 3.5833000000e+00 1.2600000000e+00 100184 3.5833000000e+00 1.2950000000e+00 100185 3.5833000000e+00 1.3300000000e+00 100186 3.5833000000e+00 1.3650000000e+00 100187 3.5833000000e+00 1.4000000000e+00 100188 3.5833000000e+00 1.4350000000e+00 100189 3.5833000000e+00 1.4700000000e+00 100190 3.5833000000e+00 1.5050000000e+00 100191 3.5833000000e+00 1.5400000000e+00 100192 3.5833000000e+00 1.5750000000e+00 100193 3.5833000000e+00 1.6100000000e+00 100194 3.5833000000e+00 1.6450000000e+00 100195 3.5833000000e+00 1.6800000000e+00 100196 3.5833000000e+00 1.7150000000e+00 100197 3.5833000000e+00 1.7500000000e+00 100198 3.5833000000e+00 1.7850000000e+00 100199 3.5833000000e+00 1.8200000000e+00 100200 3.5833000000e+00 1.8550000000e+00 100201 3.5833000000e+00 1.8900000000e+00 100202 3.5833000000e+00 1.9250000000e+00 100203 3.5833000000e+00 1.9600000000e+00 100204 3.5833000000e+00 1.9950000000e+00 100205 3.5833000000e+00 2.0210000000e+00 100206 3.5833000000e+00 2.0470000000e+00 100207 3.5483000000e+00 2.0730000000e+00 100208 3.5133000000e+00 2.0730000000e+00 100209 3.4783000000e+00 2.0730000000e+00 100210 3.4433000000e+00 2.0730000000e+00 100211 3.4083000000e+00 2.0730000000e+00 100212 3.3733000000e+00 2.0730000000e+00 100213 3.3383000000e+00 2.0730000000e+00 100214 3.3033000000e+00 2.0730000000e+00 100215 3.2683000000e+00 2.0730000000e+00 100216 3.2333000000e+00 2.0730000000e+00 100217 3.1983000000e+00 2.0730000000e+00 100218 3.1633000000e+00 2.0730000000e+00 100219 3.1283000000e+00 2.0730000000e+00 100220 3.0933000000e+00 2.0730000000e+00 100221 3.0583000000e+00 2.0730000000e+00 100222 3.0233000000e+00 2.0730000000e+00 100223 2.9883000000e+00 2.0730000000e+00 100224 2.9533000000e+00 2.0730000000e+00 100225 2.9183000000e+00 2.0730000000e+00 100226 2.8833000000e+00 2.0730000000e+00 100227 2.8483000000e+00 2.0730000000e+00 100228 2.8133000000e+00 2.0730000000e+00 100229 2.7783000000e+00 2.0730000000e+00 100230 2.7433000000e+00 2.0730000000e+00 100231 2.7083000000e+00 2.0730000000e+00 100232 2.6733000000e+00 2.0730000000e+00 100233 2.6383000000e+00 2.0730000000e+00 100234 2.6033000000e+00 2.0730000000e+00 100235 2.5683000000e+00 2.0730000000e+00 100236 2.5333000000e+00 2.0730000000e+00 100237 2.4983000000e+00 2.0730000000e+00 100238 2.4633000000e+00 2.0730000000e+00 100239 2.4283000000e+00 2.0730000000e+00 100240 2.3933000000e+00 2.0730000000e+00 100241 2.3583000000e+00 2.0730000000e+00 100242 2.3233000000e+00 2.0730000000e+00 100243 2.2883000000e+00 2.0730000000e+00 100244 2.2533000000e+00 2.0730000000e+00 100245 2.2183000000e+00 2.0730000000e+00 100246 2.1833000000e+00 2.0730000000e+00 100247 2.1483000000e+00 2.0730000000e+00 100248 2.1133000000e+00 2.0730000000e+00 100249 2.0783000000e+00 2.0730000000e+00 100250 2.0433000000e+00 2.0730000000e+00 100251 2.0083000000e+00 2.0730000000e+00 100252 1.9733000000e+00 2.0730000000e+00 100253 1.9383000000e+00 2.0730000000e+00 100254 1.9033000000e+00 2.0730000000e+00 100255 1.8683000000e+00 2.0730000000e+00 100256 1.8333000000e+00 2.0730000000e+00 100257 1.7983000000e+00 2.0730000000e+00 100258 1.7633000000e+00 2.0730000000e+00 100259 1.7283000000e+00 2.0730000000e+00 100260 1.6933000000e+00 2.0730000000e+00 100261 1.6583000000e+00 2.0730000000e+00 100262 1.6233000000e+00 2.0730000000e+00 100263 1.5883000000e+00 2.0730000000e+00 100264 1.5533000000e+00 2.0730000000e+00 100265 1.5183000000e+00 2.0730000000e+00 100266 1.4833000000e+00 2.0730000000e+00 100267 1.4483000000e+00 2.0730000000e+00 100268 1.4133000000e+00 2.0730000000e+00 100269 1.3783000000e+00 2.0730000000e+00 100270 1.3433000000e+00 2.0730000000e+00 100271 1.3083000000e+00 2.0730000000e+00 100272 1.2733000000e+00 2.0730000000e+00 100273 1.2383000000e+00 2.0730000000e+00 100274 1.2033000000e+00 2.0730000000e+00 100275 1.1683000000e+00 2.0730000000e+00 100276 1.1333000000e+00 2.0730000000e+00 100277 1.0983000000e+00 2.0730000000e+00 100278 1.0633000000e+00 2.0730000000e+00 100279 1.0283000000e+00 2.0730000000e+00 100280 9.9333000000e-01 2.0730000000e+00 100281 9.5833000000e-01 2.0730000000e+00 100282 9.2333000000e-01 2.0730000000e+00 100283 8.8833000000e-01 2.0730000000e+00 100284 8.5333000000e-01 2.0730000000e+00 100285 8.1833000000e-01 2.0730000000e+00 100286 7.8333000000e-01 2.0730000000e+00 100287 7.4833000000e-01 2.0730000000e+00 100288 7.1333000000e-01 2.0730000000e+00 100289 6.7833000000e-01 2.0730000000e+00 100290 6.4333000000e-01 2.0730000000e+00 100291 6.0834000000e-01 2.0730000000e+00 100292 5.7334000000e-01 2.0730000000e+00 100293 5.3834000000e-01 2.0730000000e+00 100294 5.0334000000e-01 2.0730000000e+00 100295 4.6834000000e-01 2.0730000000e+00 100296 4.3334000000e-01 2.0730000000e+00 100297 3.9834000000e-01 2.0730000000e+00 100298 3.6334000000e-01 2.0730000000e+00 100299 3.2834000000e-01 2.0730000000e+00 100300 2.9334000000e-01 2.0730000000e+00 100301 2.5834000000e-01 2.0730000000e+00 100302 2.2334000000e-01 2.0730000000e+00 100303 1.8834000000e-01 2.0730000000e+00 100304 1.5334000000e-01 2.0730000000e+00 100305 1.1834000000e-01 2.0730000000e+00 100306 8.3336000000e-02 2.0730000000e+00 100307 4.8336000000e-02 2.0730000000e+00 100308 1.3336000000e-02 2.0730000000e+00 100309 -2.1664000000e-02 2.0730000000e+00 100310 -5.6664000000e-02 2.0730000000e+00 100311 -9.1664000000e-02 2.0730000000e+00 100312 -1.2666000000e-01 2.0730000000e+00 100313 -1.6166000000e-01 2.0730000000e+00 100314 -1.9666000000e-01 2.0730000000e+00 100315 -2.3166000000e-01 2.0730000000e+00 100316 -2.6666000000e-01 2.0730000000e+00 100317 -3.0166000000e-01 2.0730000000e+00 100318 -3.3666000000e-01 2.0730000000e+00 100319 -3.7166000000e-01 2.0730000000e+00 100320 -4.0666000000e-01 2.0730000000e+00 100321 -4.4166000000e-01 2.0730000000e+00 100322 -4.7666000000e-01 2.0730000000e+00 100323 -5.1166000000e-01 2.0730000000e+00 100324 -5.4666000000e-01 2.0730000000e+00 100325 -5.8166000000e-01 2.0730000000e+00 100326 -6.1666000000e-01 2.0730000000e+00 100327 -6.5166000000e-01 2.0730000000e+00 100328 -6.8666000000e-01 2.0730000000e+00 100329 -7.2166000000e-01 2.0730000000e+00 100330 -7.5666000000e-01 2.0730000000e+00 100331 -7.9166000000e-01 2.0730000000e+00 100332 -8.2666000000e-01 2.0730000000e+00 100333 -8.6166000000e-01 2.0730000000e+00 100334 -8.9666000000e-01 2.0730000000e+00 100335 -9.3166000000e-01 2.0730000000e+00 100336 -9.6666000000e-01 2.0730000000e+00 100337 -1.0017000000e+00 2.0730000000e+00 100338 -1.0367000000e+00 2.0730000000e+00 100339 -1.0717000000e+00 2.0730000000e+00 100340 -1.1067000000e+00 2.0730000000e+00 100341 -1.1417000000e+00 2.0730000000e+00 100342 -1.1767000000e+00 2.0730000000e+00 100343 -1.2117000000e+00 2.0730000000e+00 100344 -1.2467000000e+00 2.0730000000e+00 100345 -1.2817000000e+00 2.0730000000e+00 100346 -1.3167000000e+00 2.0730000000e+00 100347 -1.3517000000e+00 2.0730000000e+00 100348 -1.3842000000e+00 2.0730000000e+00 100349 -1.4167000000e+00 2.0380000000e+00 100350 -1.4167000000e+00 2.0030000000e+00 100351 -1.4167000000e+00 1.9680000000e+00 100352 -1.4167000000e+00 1.9330000000e+00 100353 -1.4167000000e+00 1.8980000000e+00 100354 -1.4167000000e+00 1.8630000000e+00 100355 -1.4167000000e+00 1.8280000000e+00 100356 -1.4167000000e+00 1.7930000000e+00 100357 -1.4167000000e+00 1.7580000000e+00 100358 -1.4167000000e+00 1.7230000000e+00 100359 -1.4167000000e+00 1.6880000000e+00 100360 -1.4167000000e+00 1.6530000000e+00 100361 -1.4167000000e+00 1.6180000000e+00 100362 -1.4167000000e+00 1.5830000000e+00 100363 -1.4167000000e+00 1.5480000000e+00 100364 -1.4167000000e+00 1.5130000000e+00 100365 -1.4167000000e+00 1.4780000000e+00 100366 -1.4167000000e+00 1.4430000000e+00 100367 -1.4167000000e+00 1.4080000000e+00 100368 -1.4167000000e+00 1.3730000000e+00 100369 -1.4167000000e+00 1.3380000000e+00 100370 -1.4167000000e+00 1.3030000000e+00 100371 -1.4167000000e+00 1.2680000000e+00 100372 -1.4167000000e+00 1.2330000000e+00 100373 -1.4167000000e+00 1.1980000000e+00 100374 -1.4167000000e+00 1.1630000000e+00 100375 -1.4167000000e+00 1.1280000000e+00 100376 -1.4167000000e+00 1.0930000000e+00 100377 -1.4167000000e+00 1.0580000000e+00 100378 -1.4167000000e+00 1.0230000000e+00 100379 -1.4167000000e+00 9.8800000000e-01 100380 -1.4167000000e+00 9.5300000000e-01 100381 -1.4167000000e+00 9.1800000000e-01 100382 -1.4167000000e+00 8.8300000000e-01 100383 -1.4167000000e+00 8.4800000000e-01 100384 -1.4167000000e+00 8.1300000000e-01 100385 -1.4167000000e+00 7.7800000000e-01 100386 -1.4167000000e+00 7.4300000000e-01 100387 -1.4167000000e+00 7.0800000000e-01 100388 -1.4167000000e+00 6.7300000000e-01 100389 -1.4167000000e+00 6.3800000000e-01 100390 -1.4167000000e+00 6.0300000000e-01 100391 -1.4167000000e+00 5.6800000000e-01 100392 -1.4167000000e+00 5.3300000000e-01 100393 -1.4167000000e+00 4.9800000000e-01 100394 -1.4167000000e+00 4.6300000000e-01 100395 -1.4167000000e+00 4.2800000000e-01 100396 -1.4167000000e+00 3.9300000000e-01 100397 -1.4167000000e+00 3.5800000000e-01 100398 -1.4167000000e+00 3.2300000000e-01 100399 -1.4167000000e+00 2.8800000000e-01 100400 -1.4167000000e+00 2.5300000000e-01 100401 -1.4167000000e+00 2.1800000000e-01 100402 -1.4167000000e+00 1.8300000000e-01 100403 -1.4167000000e+00 1.4800000000e-01 100404 -1.4167000000e+00 1.1300000000e-01 100405 -1.4167000000e+00 7.8000000000e-02 100406 -1.4167000000e+00 5.2000000000e-02 100407 -1.4167000000e+00 2.6000000000e-02 100408 4.5682000000e-01 7.1432000000e-02 100409 9.4888000000e-01 3.8131000000e-02 100410 1.3947000000e-01 5.0119000000e-02 100411 1.0493000000e-01 4.5357000000e-02 100412 -1.3641000000e+00 2.8405000000e-02 100413 -1.3965000000e+00 2.7631000000e-02 100414 -8.7380000000e-01 3.0574000000e-02 100415 -2.4670000000e-01 2.9431000000e-02 100416 -2.7979000000e-01 2.9463000000e-02 100417 -1.0834000000e+00 3.2532000000e-02 100418 -1.1192000000e+00 3.3911000000e-02 100419 -1.3862000000e+00 4.8053000000e-01 100420 -1.3863000000e+00 5.1552000000e-01 100421 1.7419000000e-01 5.4628000000e-02 100422 2.0914000000e-01 5.8724000000e-02 100423 -1.3863000000e+00 7.2549000000e-01 100424 -1.3863000000e+00 6.9049000000e-01 100425 -1.3863000000e+00 7.6049000000e-01 100426 7.0500000000e-02 4.0750000000e-02 100427 3.6054000000e-02 3.6682000000e-02 100428 9.8256000000e-01 3.3813000000e-02 100429 4.2160000000e-01 7.0588000000e-02 100430 3.8721000000e-01 6.9159000000e-02 100431 1.7809000000e+00 2.0427000000e+00 100432 1.7459000000e+00 2.0427000000e+00 100433 1.7109000000e+00 2.0427000000e+00 100434 1.6759000000e+00 2.0427000000e+00 100435 1.6409000000e+00 2.0427000000e+00 100436 1.6059000000e+00 2.0427000000e+00 100437 1.5709000000e+00 2.0427000000e+00 100438 1.5359000000e+00 2.0427000000e+00 100439 1.5008000000e+00 2.0427000000e+00 100440 1.4658000000e+00 2.0427000000e+00 100441 1.4308000000e+00 2.0427000000e+00 100442 1.3958000000e+00 2.0427000000e+00 100443 1.3608000000e+00 2.0427000000e+00 100444 1.3258000000e+00 2.0427000000e+00 100445 1.2908000000e+00 2.0427000000e+00 100446 1.2558000000e+00 2.0427000000e+00 100447 1.2208000000e+00 2.0427000000e+00 100448 1.1858000000e+00 2.0427000000e+00 100449 1.1508000000e+00 2.0427000000e+00 100450 1.1158000000e+00 2.0427000000e+00 100451 1.0808000000e+00 2.0427000000e+00 100452 1.0458000000e+00 2.0427000000e+00 100453 1.0108000000e+00 2.0427000000e+00 100454 9.7585000000e-01 2.0427000000e+00 100455 9.4085000000e-01 2.0427000000e+00 100456 9.0585000000e-01 2.0427000000e+00 100457 8.7085000000e-01 2.0427000000e+00 100458 8.3585000000e-01 2.0427000000e+00 100459 8.0085000000e-01 2.0427000000e+00 100460 7.6584000000e-01 2.0427000000e+00 100461 7.3084000000e-01 2.0427000000e+00 100462 6.9584000000e-01 2.0427000000e+00 100463 6.6084000000e-01 2.0427000000e+00 100464 6.2584000000e-01 2.0427000000e+00 100465 5.9084000000e-01 2.0427000000e+00 100466 5.5584000000e-01 2.0427000000e+00 100467 5.2084000000e-01 2.0427000000e+00 100468 4.8584000000e-01 2.0427000000e+00 100469 4.5084000000e-01 2.0427000000e+00 100470 4.1584000000e-01 2.0427000000e+00 100471 3.8084000000e-01 2.0427000000e+00 100472 3.4584000000e-01 2.0427000000e+00 100473 3.1084000000e-01 2.0427000000e+00 100474 2.7584000000e-01 2.0427000000e+00 100475 2.4084000000e-01 2.0427000000e+00 100476 2.0584000000e-01 2.0427000000e+00 100477 1.7084000000e-01 2.0427000000e+00 100478 1.3584000000e-01 2.0427000000e+00 100479 1.0084000000e-01 2.0427000000e+00 100480 6.5839000000e-02 2.0427000000e+00 100481 3.0838000000e-02 2.0427000000e+00 100482 -4.1615000000e-03 2.0427000000e+00 100483 -3.9161000000e-02 2.0427000000e+00 100484 -7.4161000000e-02 2.0427000000e+00 100485 -1.0916000000e-01 2.0427000000e+00 100486 -1.4416000000e-01 2.0427000000e+00 100487 -1.7916000000e-01 2.0427000000e+00 100488 -2.1416000000e-01 2.0427000000e+00 100489 -2.4916000000e-01 2.0427000000e+00 100490 -2.8416000000e-01 2.0427000000e+00 100491 -3.1916000000e-01 2.0427000000e+00 100492 -3.5416000000e-01 2.0427000000e+00 100493 -3.8916000000e-01 2.0427000000e+00 100494 -4.2416000000e-01 2.0427000000e+00 100495 -4.5916000000e-01 2.0427000000e+00 100496 -4.9416000000e-01 2.0427000000e+00 100497 -5.2916000000e-01 2.0427000000e+00 100498 -5.6416000000e-01 2.0427000000e+00 100499 -5.9916000000e-01 2.0427000000e+00 100500 -6.3416000000e-01 2.0427000000e+00 100501 -6.6916000000e-01 2.0427000000e+00 100502 -7.0416000000e-01 2.0427000000e+00 100503 -7.3917000000e-01 2.0427000000e+00 100504 -7.7417000000e-01 2.0426000000e+00 100505 -8.0918000000e-01 2.0426000000e+00 100506 -8.4419000000e-01 2.0426000000e+00 100507 -8.7920000000e-01 2.0425000000e+00 100508 -9.1423000000e-01 2.0425000000e+00 100509 -9.4927000000e-01 2.0424000000e+00 100510 -9.8433000000e-01 2.0423000000e+00 100511 -1.0194000000e+00 2.0422000000e+00 100512 -1.0545000000e+00 2.0421000000e+00 100513 -1.0897000000e+00 2.0419000000e+00 100514 -1.1248000000e+00 2.0418000000e+00 100515 -1.1601000000e+00 2.0417000000e+00 100516 -1.1953000000e+00 2.0416000000e+00 100517 -1.2305000000e+00 2.0417000000e+00 100518 -1.2658000000e+00 2.0418000000e+00 100519 -1.3012000000e+00 2.0421000000e+00 100520 -1.3376000000e+00 2.0429000000e+00 100521 -1.3790000000e+00 2.0461000000e+00 100522 -1.3897000000e+00 2.0106000000e+00 100523 -1.3974000000e+00 1.9836000000e+00 100524 -1.3917000000e+00 1.9552000000e+00 100525 -1.3886000000e+00 1.9206000000e+00 100526 -1.3878000000e+00 1.8853000000e+00 100527 -1.3868000000e+00 1.8503000000e+00 100528 -1.3858000000e+00 1.8151000000e+00 100529 -1.3850000000e+00 1.7797000000e+00 100530 -1.3844000000e+00 1.7441000000e+00 100531 -1.3841000000e+00 1.7084000000e+00 100532 -1.3841000000e+00 1.6728000000e+00 100533 -1.3843000000e+00 1.6372000000e+00 100534 -1.3845000000e+00 1.6018000000e+00 100535 -1.3848000000e+00 1.5665000000e+00 100536 -1.3851000000e+00 1.5313000000e+00 100537 -1.3853000000e+00 1.4961000000e+00 100538 -1.3855000000e+00 1.4610000000e+00 100539 -1.3857000000e+00 1.4259000000e+00 100540 -1.3858000000e+00 1.3908000000e+00 100541 -1.3859000000e+00 1.3557000000e+00 100542 -1.3860000000e+00 1.3207000000e+00 100543 -1.3861000000e+00 1.2856000000e+00 100544 -1.3862000000e+00 1.2506000000e+00 100545 -1.3862000000e+00 1.2156000000e+00 100546 -1.3863000000e+00 1.1806000000e+00 100547 -1.3863000000e+00 1.1455000000e+00 100548 -1.3559000000e+00 1.1631000000e+00 100549 -1.3559000000e+00 1.1281000000e+00 100550 -1.3863000000e+00 1.1105000000e+00 100551 -1.3863000000e+00 1.0755000000e+00 100552 -1.3863000000e+00 1.0405000000e+00 100553 -1.3864000000e+00 1.0055000000e+00 100554 -1.3560000000e+00 1.0230000000e+00 100555 -1.3560000000e+00 9.8803000000e-01 100556 -1.3864000000e+00 9.7051000000e-01 100557 -1.3257000000e+00 1.0055000000e+00 100558 -1.3257000000e+00 9.7054000000e-01 100559 -1.2954000000e+00 9.8806000000e-01 100560 -1.2954000000e+00 9.5304000000e-01 100561 -1.3257000000e+00 9.3553000000e-01 100562 -1.2954000000e+00 9.1803000000e-01 100563 -1.3257000000e+00 9.0051000000e-01 100564 -1.3560000000e+00 9.1801000000e-01 100565 -1.3560000000e+00 9.5302000000e-01 100566 -1.3864000000e+00 9.3551000000e-01 100567 -1.3864000000e+00 9.0050000000e-01 100568 -1.3863000000e+00 8.6550000000e-01 100569 -1.3863000000e+00 8.3050000000e-01 100570 -1.3863000000e+00 7.9549000000e-01 100571 -1.3560000000e+00 8.1299000000e-01 100572 -1.3560000000e+00 7.7799000000e-01 100573 -1.3257000000e+00 7.9548000000e-01 100574 -1.3257000000e+00 7.6047000000e-01 100575 -1.3560000000e+00 7.4298000000e-01 100576 -1.3256000000e+00 7.2546000000e-01 100577 -1.3560000000e+00 7.0798000000e-01 100578 -1.3560000000e+00 6.7298000000e-01 100579 -1.3863000000e+00 6.5549000000e-01 100580 -1.3559000000e+00 6.3798000000e-01 100581 -1.3256000000e+00 6.5547000000e-01 100582 -1.3256000000e+00 6.2048000000e-01 100583 -1.3559000000e+00 6.0299000000e-01 100584 -1.3863000000e+00 6.2049000000e-01 100585 -1.3863000000e+00 5.8550000000e-01 100586 -1.3863000000e+00 5.5051000000e-01 100587 -1.3559000000e+00 5.3302000000e-01 100588 -1.3558000000e+00 4.9804000000e-01 100589 -1.3559000000e+00 5.6801000000e-01 100590 -1.3255000000e+00 5.5052000000e-01 100591 -1.3255000000e+00 5.1555000000e-01 100592 -1.3254000000e+00 4.8058000000e-01 100593 -1.3558000000e+00 4.6307000000e-01 100594 -1.3862000000e+00 4.4554000000e-01 100595 -1.3558000000e+00 4.2809000000e-01 100596 -1.3862000000e+00 4.1055000000e-01 100597 -1.3253000000e+00 4.4562000000e-01 100598 -1.2949000000e+00 4.6314000000e-01 100599 -1.2950000000e+00 4.9809000000e-01 100600 -1.2646000000e+00 4.8064000000e-01 100601 -1.2647000000e+00 5.1557000000e-01 100602 -1.2342000000e+00 4.9811000000e-01 100603 -1.2341000000e+00 4.6321000000e-01 100604 -1.2645000000e+00 4.4572000000e-01 100605 -1.2949000000e+00 4.2820000000e-01 100606 -1.3253000000e+00 4.1067000000e-01 100607 -1.2643000000e+00 4.1081000000e-01 100608 -1.2340000000e+00 4.2832000000e-01 100609 -1.2338000000e+00 3.9345000000e-01 100610 -1.2642000000e+00 3.7590000000e-01 100611 -1.2336000000e+00 3.5859000000e-01 100612 -1.2639000000e+00 3.4098000000e-01 100613 -1.2946000000e+00 3.5832000000e-01 100614 -1.2947000000e+00 3.9327000000e-01 100615 -1.2943000000e+00 3.2336000000e-01 100616 -1.3250000000e+00 3.4074000000e-01 100617 -1.3248000000e+00 3.0576000000e-01 100618 -1.3555000000e+00 3.2316000000e-01 100619 -1.3556000000e+00 3.5814000000e-01 100620 -1.3251000000e+00 3.7571000000e-01 100621 -1.3557000000e+00 3.9312000000e-01 100622 -1.3862000000e+00 3.7556000000e-01 100623 -1.3861000000e+00 3.4057000000e-01 100624 -1.3861000000e+00 3.0558000000e-01 100625 -1.3554000000e+00 2.8817000000e-01 100626 -1.3860000000e+00 2.7059000000e-01 100627 -1.3552000000e+00 2.5319000000e-01 100628 -1.3859000000e+00 2.3561000000e-01 100629 -1.3551000000e+00 2.1824000000e-01 100630 -1.3858000000e+00 2.0066000000e-01 100631 -1.3857000000e+00 1.6576000000e-01 100632 -1.3549000000e+00 1.8335000000e-01 100633 -1.3546000000e+00 1.4862000000e-01 100634 -1.3239000000e+00 1.6601000000e-01 100635 -1.3241000000e+00 2.0084000000e-01 100636 -1.2931000000e+00 1.8334000000e-01 100637 -1.2928000000e+00 1.4847000000e-01 100638 -1.2620000000e+00 1.6564000000e-01 100639 -1.2616000000e+00 1.3054000000e-01 100640 -1.2926000000e+00 1.1386000000e-01 100641 -1.3235000000e+00 1.3144000000e-01 100642 -1.3233000000e+00 9.7488000000e-02 100643 -1.2928000000e+00 7.9829000000e-02 100644 -1.3233000000e+00 6.4800000000e-02 100645 -1.3531000000e+00 8.0789000000e-02 100646 -1.3500000000e+00 5.2798000000e-02 100647 -1.3265000000e+00 3.0618000000e-02 100648 -1.3831000000e+00 5.9382000000e-02 100649 -1.3849000000e+00 9.6055000000e-02 100650 -1.3541000000e+00 1.1422000000e-01 100651 3.5529000000e+00 5.7694000000e-01 100652 3.5528000000e+00 6.1203000000e-01 100653 3.5528000000e+00 6.4713000000e-01 100654 3.5528000000e+00 6.8222000000e-01 100655 3.5528000000e+00 7.1729000000e-01 100656 3.5528000000e+00 7.5234000000e-01 100657 3.5529000000e+00 7.8739000000e-01 100658 3.5529000000e+00 8.2242000000e-01 100659 3.5529000000e+00 8.5745000000e-01 100660 3.5530000000e+00 8.9247000000e-01 100661 3.5530000000e+00 9.2748000000e-01 100662 3.5530000000e+00 9.6250000000e-01 100663 3.5530000000e+00 9.9750000000e-01 100664 3.5530000000e+00 1.0325000000e+00 100665 3.5530000000e+00 1.0675000000e+00 100666 3.5530000000e+00 1.1025000000e+00 100667 3.5530000000e+00 1.1375000000e+00 100668 3.5530000000e+00 1.1725000000e+00 100669 3.5530000000e+00 1.2075000000e+00 100670 3.5530000000e+00 1.2425000000e+00 100671 3.5530000000e+00 1.2775000000e+00 100672 3.5530000000e+00 1.3125000000e+00 100673 3.5530000000e+00 1.3475000000e+00 100674 3.5530000000e+00 1.3825000000e+00 100675 3.5529000000e+00 1.4176000000e+00 100676 3.5529000000e+00 1.4526000000e+00 100677 3.5529000000e+00 1.4876000000e+00 100678 3.5528000000e+00 1.5227000000e+00 100679 3.5528000000e+00 1.5577000000e+00 100680 3.5527000000e+00 1.5928000000e+00 100681 3.5526000000e+00 1.6279000000e+00 100682 3.5525000000e+00 1.6630000000e+00 100683 3.5524000000e+00 1.6981000000e+00 100684 3.5522000000e+00 1.7333000000e+00 100685 3.5520000000e+00 1.7685000000e+00 100686 3.5518000000e+00 1.8037000000e+00 100687 3.5516000000e+00 1.8390000000e+00 100688 3.5513000000e+00 1.8744000000e+00 100689 3.5511000000e+00 1.9099000000e+00 100690 3.5510000000e+00 1.9454000000e+00 100691 3.5513000000e+00 1.9814000000e+00 100692 3.5539000000e+00 2.0202000000e+00 100693 3.5487000000e+00 2.0544000000e+00 100694 3.5097000000e+00 2.0403000000e+00 100695 3.4681000000e+00 2.0428000000e+00 100696 3.4325000000e+00 2.0417000000e+00 100697 3.3969000000e+00 2.0409000000e+00 100698 3.3612000000e+00 2.0404000000e+00 100699 3.3256000000e+00 2.0399000000e+00 100700 3.2900000000e+00 2.0396000000e+00 100701 3.2543000000e+00 2.0393000000e+00 100702 3.2186000000e+00 2.0393000000e+00 100703 3.1830000000e+00 2.0396000000e+00 100704 3.1475000000e+00 2.0401000000e+00 100705 3.1123000000e+00 2.0406000000e+00 100706 3.0773000000e+00 2.0409000000e+00 100707 3.0422000000e+00 2.0411000000e+00 100708 3.0071000000e+00 2.0412000000e+00 100709 2.9720000000e+00 2.0413000000e+00 100710 2.9369000000e+00 2.0414000000e+00 100711 2.9017000000e+00 2.0415000000e+00 100712 2.8666000000e+00 2.0416000000e+00 100713 2.8315000000e+00 2.0417000000e+00 100714 2.7963000000e+00 2.0418000000e+00 100715 2.7612000000e+00 2.0420000000e+00 100716 2.7261000000e+00 2.0421000000e+00 100717 2.6911000000e+00 2.0422000000e+00 100718 2.6561000000e+00 2.0424000000e+00 100719 2.6210000000e+00 2.0425000000e+00 100720 2.5860000000e+00 2.0425000000e+00 100721 2.5510000000e+00 2.0426000000e+00 100722 2.5160000000e+00 2.0426000000e+00 100723 2.4810000000e+00 2.0427000000e+00 100724 2.4460000000e+00 2.0427000000e+00 100725 2.4110000000e+00 2.0427000000e+00 100726 2.3761000000e+00 2.0428000000e+00 100727 2.3411000000e+00 2.0428000000e+00 100728 2.3061000000e+00 2.0427000000e+00 100729 2.2711000000e+00 2.0427000000e+00 100730 2.2361000000e+00 2.0427000000e+00 100731 2.2011000000e+00 2.0427000000e+00 100732 2.1661000000e+00 2.0426000000e+00 100733 2.1311000000e+00 2.0426000000e+00 100734 2.0960000000e+00 2.0426000000e+00 100735 2.0610000000e+00 2.0426000000e+00 100736 2.0260000000e+00 2.0426000000e+00 100737 1.9910000000e+00 2.0426000000e+00 100738 1.9559000000e+00 2.0426000000e+00 100739 1.9209000000e+00 2.0426000000e+00 100740 1.8859000000e+00 2.0427000000e+00 100741 1.8509000000e+00 2.0427000000e+00 100742 1.8159000000e+00 2.0427000000e+00 100743 1.7985000000e+00 2.0123000000e+00 100744 1.7635000000e+00 2.0123000000e+00 100745 1.7284000000e+00 2.0123000000e+00 100746 1.6934000000e+00 2.0123000000e+00 100747 1.6584000000e+00 2.0123000000e+00 100748 1.6234000000e+00 2.0123000000e+00 100749 1.5884000000e+00 2.0123000000e+00 100750 1.5534000000e+00 2.0123000000e+00 100751 1.5184000000e+00 2.0123000000e+00 100752 1.4834000000e+00 2.0123000000e+00 100753 1.4483000000e+00 2.0123000000e+00 100754 1.4133000000e+00 2.0123000000e+00 100755 1.3783000000e+00 2.0123000000e+00 100756 1.3433000000e+00 2.0123000000e+00 100757 1.3083000000e+00 2.0123000000e+00 100758 1.2733000000e+00 2.0123000000e+00 100759 1.2383000000e+00 2.0123000000e+00 100760 1.2033000000e+00 2.0123000000e+00 100761 1.1683000000e+00 2.0123000000e+00 100762 1.1333000000e+00 2.0123000000e+00 100763 1.0983000000e+00 2.0123000000e+00 100764 1.0634000000e+00 2.0123000000e+00 100765 1.0284000000e+00 2.0123000000e+00 100766 9.9336000000e-01 2.0123000000e+00 100767 9.5836000000e-01 2.0123000000e+00 100768 9.2336000000e-01 2.0123000000e+00 100769 8.8836000000e-01 2.0123000000e+00 100770 8.5336000000e-01 2.0123000000e+00 100771 8.1836000000e-01 2.0124000000e+00 100772 7.8336000000e-01 2.0124000000e+00 100773 7.4835000000e-01 2.0124000000e+00 100774 7.1335000000e-01 2.0124000000e+00 100775 6.7835000000e-01 2.0124000000e+00 100776 6.4335000000e-01 2.0124000000e+00 100777 6.0835000000e-01 2.0124000000e+00 100778 5.7335000000e-01 2.0124000000e+00 100779 5.3835000000e-01 2.0124000000e+00 100780 5.0335000000e-01 2.0124000000e+00 100781 4.6835000000e-01 2.0124000000e+00 100782 4.3335000000e-01 2.0124000000e+00 100783 3.9835000000e-01 2.0124000000e+00 100784 3.6335000000e-01 2.0124000000e+00 100785 3.2835000000e-01 2.0124000000e+00 100786 2.9335000000e-01 2.0124000000e+00 100787 2.5835000000e-01 2.0124000000e+00 100788 2.2335000000e-01 2.0124000000e+00 100789 1.8834000000e-01 2.0124000000e+00 100790 1.5334000000e-01 2.0124000000e+00 100791 1.1834000000e-01 2.0124000000e+00 100792 8.3342000000e-02 2.0124000000e+00 100793 4.8341000000e-02 2.0124000000e+00 100794 1.3341000000e-02 2.0124000000e+00 100795 -2.1659000000e-02 2.0124000000e+00 100796 -5.6659000000e-02 2.0124000000e+00 100797 -9.1659000000e-02 2.0124000000e+00 100798 -1.2666000000e-01 2.0124000000e+00 100799 -1.6166000000e-01 2.0124000000e+00 100800 -1.9666000000e-01 2.0124000000e+00 100801 -2.3166000000e-01 2.0124000000e+00 100802 -2.6666000000e-01 2.0124000000e+00 100803 -3.0166000000e-01 2.0124000000e+00 100804 -3.3666000000e-01 2.0124000000e+00 100805 -3.7165000000e-01 2.0124000000e+00 100806 -4.0665000000e-01 2.0124000000e+00 100807 -4.4165000000e-01 2.0124000000e+00 100808 -4.7665000000e-01 2.0124000000e+00 100809 -5.1165000000e-01 2.0124000000e+00 100810 -5.4665000000e-01 2.0124000000e+00 100811 -5.8166000000e-01 2.0124000000e+00 100812 -6.1666000000e-01 2.0124000000e+00 100813 -6.5166000000e-01 2.0124000000e+00 100814 -6.8666000000e-01 2.0124000000e+00 100815 -7.2167000000e-01 2.0123000000e+00 100816 -7.5667000000e-01 2.0123000000e+00 100817 -7.9168000000e-01 2.0123000000e+00 100818 -8.2670000000e-01 2.0122000000e+00 100819 -8.6172000000e-01 2.0121000000e+00 100820 -8.9676000000e-01 2.0120000000e+00 100821 -9.3183000000e-01 2.0119000000e+00 100822 -9.6692000000e-01 2.0117000000e+00 100823 -1.0021000000e+00 2.0115000000e+00 100824 -1.0372000000e+00 2.0112000000e+00 100825 -1.0725000000e+00 2.0110000000e+00 100826 -1.1078000000e+00 2.0107000000e+00 100827 -1.1432000000e+00 2.0104000000e+00 100828 -1.1787000000e+00 2.0102000000e+00 100829 -1.2142000000e+00 2.0102000000e+00 100830 -1.2497000000e+00 2.0104000000e+00 100831 -1.2850000000e+00 2.0107000000e+00 100832 -1.3205000000e+00 2.0112000000e+00 100833 -1.3563000000e+00 2.0119000000e+00 100834 -1.3721000000e+00 1.9810000000e+00 100835 -1.3586000000e+00 1.9451000000e+00 100836 -1.3601000000e+00 1.9070000000e+00 100837 -1.3581000000e+00 1.8727000000e+00 100838 -1.3558000000e+00 1.8377000000e+00 100839 -1.3539000000e+00 1.8020000000e+00 100840 -1.3526000000e+00 1.7658000000e+00 100841 -1.3516000000e+00 1.7295000000e+00 100842 -1.3513000000e+00 1.6931000000e+00 100843 -1.3515000000e+00 1.6568000000e+00 100844 -1.3521000000e+00 1.6209000000e+00 100845 -1.3527000000e+00 1.5852000000e+00 100846 -1.3533000000e+00 1.5498000000e+00 100847 -1.3537000000e+00 1.5144000000e+00 100848 -1.3541000000e+00 1.4791000000e+00 100849 -1.3545000000e+00 1.4438000000e+00 100850 -1.3548000000e+00 1.4086000000e+00 100851 -1.3236000000e+00 1.4266000000e+00 100852 -1.3241000000e+00 1.3913000000e+00 100853 -1.3551000000e+00 1.3735000000e+00 100854 -1.3244000000e+00 1.3561000000e+00 100855 -1.3553000000e+00 1.3384000000e+00 100856 -1.3554000000e+00 1.3033000000e+00 100857 -1.3556000000e+00 1.2682000000e+00 100858 -1.3557000000e+00 1.2332000000e+00 100859 -1.3558000000e+00 1.1981000000e+00 100860 -1.3254000000e+00 1.1807000000e+00 100861 -1.3255000000e+00 1.1456000000e+00 100862 -1.3256000000e+00 1.1106000000e+00 100863 -1.3560000000e+00 1.0931000000e+00 100864 -1.3560000000e+00 1.0580000000e+00 100865 -1.3257000000e+00 1.0406000000e+00 100866 -1.2954000000e+00 1.0231000000e+00 100867 -1.2651000000e+00 1.0056000000e+00 100868 -1.2651000000e+00 9.7057000000e-01 100869 -1.2348000000e+00 9.8809000000e-01 100870 -1.2348000000e+00 9.5306000000e-01 100871 -1.2045000000e+00 9.7059000000e-01 100872 -1.2045000000e+00 9.3555000000e-01 100873 -1.2348000000e+00 9.1803000000e-01 100874 -1.2044000000e+00 9.0051000000e-01 100875 -1.2347000000e+00 8.8300000000e-01 100876 -1.2044000000e+00 8.6547000000e-01 100877 -1.2347000000e+00 8.4797000000e-01 100878 -1.2044000000e+00 8.3042000000e-01 100879 -1.1740000000e+00 8.4791000000e-01 100880 -1.1740000000e+00 8.1285000000e-01 100881 -1.2043000000e+00 7.9537000000e-01 100882 -1.2347000000e+00 8.1293000000e-01 100883 -1.2346000000e+00 7.7790000000e-01 100884 -1.1437000000e+00 8.3033000000e-01 100885 -1.1436000000e+00 7.9524000000e-01 100886 -1.1437000000e+00 8.6541000000e-01 100887 -1.1134000000e+00 8.4782000000e-01 100888 -1.1133000000e+00 8.1272000000e-01 100889 -1.1132000000e+00 7.7760000000e-01 100890 -1.1435000000e+00 7.6015000000e-01 100891 -1.1739000000e+00 7.7778000000e-01 100892 -1.2042000000e+00 7.6032000000e-01 100893 -1.1738000000e+00 7.4272000000e-01 100894 -1.1434000000e+00 7.2506000000e-01 100895 -1.1738000000e+00 7.0767000000e-01 100896 -1.2042000000e+00 7.2529000000e-01 100897 -1.1434000000e+00 6.9000000000e-01 100898 -1.1130000000e+00 7.0734000000e-01 100899 -1.1130000000e+00 6.7225000000e-01 100900 -1.1433000000e+00 6.5499000000e-01 100901 -1.0825000000e+00 6.8950000000e-01 100902 -1.0826000000e+00 6.5437000000e-01 100903 -1.0519000000e+00 6.7141000000e-01 100904 -1.0523000000e+00 6.3625000000e-01 100905 -1.0828000000e+00 6.1952000000e-01 100906 -1.1130000000e+00 6.3728000000e-01 100907 -1.1433000000e+00 6.2006000000e-01 100908 -1.1737000000e+00 6.3767000000e-01 100909 -1.1737000000e+00 6.7265000000e-01 100910 -1.2041000000e+00 6.9026000000e-01 100911 -1.2345000000e+00 7.0785000000e-01 100912 -1.2346000000e+00 7.4287000000e-01 100913 -1.2650000000e+00 7.6042000000e-01 100914 -1.2649000000e+00 7.2541000000e-01 100915 -1.2953000000e+00 7.4294000000e-01 100916 -1.2953000000e+00 7.7796000000e-01 100917 -1.2650000000e+00 7.9544000000e-01 100918 -1.2650000000e+00 8.3047000000e-01 100919 -1.2651000000e+00 8.6549000000e-01 100920 -1.2651000000e+00 9.0052000000e-01 100921 -1.2954000000e+00 8.8301000000e-01 100922 -1.2651000000e+00 9.3554000000e-01 100923 3.5530000000e+00 2.6265000000e-01 100924 3.5532000000e+00 2.9775000000e-01 100925 3.5534000000e+00 3.3273000000e-01 100926 3.5536000000e+00 3.6760000000e-01 100927 3.5536000000e+00 4.0239000000e-01 100928 3.5536000000e+00 4.3717000000e-01 100929 3.5534000000e+00 4.7199000000e-01 100930 3.5532000000e+00 5.0689000000e-01 100931 3.5530000000e+00 5.4188000000e-01 100932 3.5225000000e+00 5.5875000000e-01 100933 3.5223000000e+00 5.9394000000e-01 100934 3.5222000000e+00 6.2915000000e-01 100935 3.5222000000e+00 6.6435000000e-01 100936 3.5222000000e+00 6.9951000000e-01 100937 3.5223000000e+00 7.3464000000e-01 100938 3.5223000000e+00 7.6973000000e-01 100939 3.5224000000e+00 8.0481000000e-01 100940 3.5225000000e+00 8.3987000000e-01 100941 3.5225000000e+00 8.7492000000e-01 100942 3.5226000000e+00 9.0995000000e-01 100943 3.5226000000e+00 9.4498000000e-01 100944 3.5227000000e+00 9.8000000000e-01 100945 3.5227000000e+00 1.0150000000e+00 100946 3.5227000000e+00 1.0500000000e+00 100947 3.5227000000e+00 1.0850000000e+00 100948 3.5227000000e+00 1.1200000000e+00 100949 3.5227000000e+00 1.1550000000e+00 100950 3.5227000000e+00 1.1900000000e+00 100951 3.5227000000e+00 1.2250000000e+00 100952 3.5227000000e+00 1.2600000000e+00 100953 3.5227000000e+00 1.2950000000e+00 100954 3.5226000000e+00 1.3301000000e+00 100955 3.5226000000e+00 1.3651000000e+00 100956 3.5226000000e+00 1.4001000000e+00 100957 3.5225000000e+00 1.4352000000e+00 100958 3.5224000000e+00 1.4702000000e+00 100959 3.5224000000e+00 1.5053000000e+00 100960 3.5223000000e+00 1.5404000000e+00 100961 3.5221000000e+00 1.5755000000e+00 100962 3.5220000000e+00 1.6107000000e+00 100963 3.5218000000e+00 1.6458000000e+00 100964 3.5216000000e+00 1.6811000000e+00 100965 3.5213000000e+00 1.7164000000e+00 100966 3.5209000000e+00 1.7517000000e+00 100967 3.5205000000e+00 1.7872000000e+00 100968 3.5201000000e+00 1.8228000000e+00 100969 3.5196000000e+00 1.8584000000e+00 100970 3.5191000000e+00 1.8942000000e+00 100971 3.5185000000e+00 1.9302000000e+00 100972 3.5182000000e+00 1.9662000000e+00 100973 3.5178000000e+00 2.0020000000e+00 100974 3.4877000000e+00 2.0168000000e+00 100975 3.4572000000e+00 2.0119000000e+00 100976 3.4212000000e+00 2.0089000000e+00 100977 3.3845000000e+00 2.0082000000e+00 100978 3.3485000000e+00 2.0073000000e+00 100979 3.3123000000e+00 2.0065000000e+00 100980 3.2761000000e+00 2.0058000000e+00 100981 3.2396000000e+00 2.0053000000e+00 100982 3.2030000000e+00 2.0056000000e+00 100983 3.1669000000e+00 2.0067000000e+00 100984 3.1314000000e+00 2.0079000000e+00 100985 3.0962000000e+00 2.0087000000e+00 100986 3.0612000000e+00 2.0091000000e+00 100987 3.0260000000e+00 2.0093000000e+00 100988 2.9908000000e+00 2.0095000000e+00 100989 2.9556000000e+00 2.0097000000e+00 100990 2.9203000000e+00 2.0098000000e+00 100991 2.8850000000e+00 2.0100000000e+00 100992 2.8497000000e+00 2.0102000000e+00 100993 2.8145000000e+00 2.0105000000e+00 100994 2.7792000000e+00 2.0108000000e+00 100995 2.7440000000e+00 2.0111000000e+00 100996 2.7089000000e+00 2.0114000000e+00 100997 2.6738000000e+00 2.0116000000e+00 100998 2.6388000000e+00 2.0118000000e+00 100999 2.6038000000e+00 2.0120000000e+00 101000 2.5688000000e+00 2.0121000000e+00 101001 2.5337000000e+00 2.0122000000e+00 101002 2.4987000000e+00 2.0123000000e+00 101003 2.4637000000e+00 2.0124000000e+00 101004 2.4287000000e+00 2.0124000000e+00 101005 2.3938000000e+00 2.0125000000e+00 101006 2.3588000000e+00 2.0125000000e+00 101007 2.3239000000e+00 2.0125000000e+00 101008 2.2889000000e+00 2.0125000000e+00 101009 2.2539000000e+00 2.0124000000e+00 101010 2.2189000000e+00 2.0124000000e+00 101011 2.1839000000e+00 2.0123000000e+00 101012 2.1488000000e+00 2.0123000000e+00 101013 2.1138000000e+00 2.0122000000e+00 101014 2.1316000000e+00 1.9818000000e+00 101015 2.0965000000e+00 1.9818000000e+00 101016 2.0787000000e+00 2.0122000000e+00 101017 2.0437000000e+00 2.0122000000e+00 101018 2.0086000000e+00 2.0122000000e+00 101019 1.9736000000e+00 2.0123000000e+00 101020 1.9385000000e+00 2.0123000000e+00 101021 1.9035000000e+00 2.0123000000e+00 101022 1.8685000000e+00 2.0123000000e+00 101023 1.8335000000e+00 2.0123000000e+00 101024 1.8161000000e+00 1.9820000000e+00 101025 1.7810000000e+00 1.9820000000e+00 101026 1.7460000000e+00 1.9820000000e+00 101027 1.7110000000e+00 1.9820000000e+00 101028 1.6760000000e+00 1.9820000000e+00 101029 1.6409000000e+00 1.9820000000e+00 101030 1.6059000000e+00 1.9820000000e+00 101031 1.5709000000e+00 1.9820000000e+00 101032 1.5359000000e+00 1.9820000000e+00 101033 1.5009000000e+00 1.9820000000e+00 101034 1.4659000000e+00 1.9820000000e+00 101035 1.4309000000e+00 1.9820000000e+00 101036 1.3958000000e+00 1.9820000000e+00 101037 1.3608000000e+00 1.9820000000e+00 101038 1.3258000000e+00 1.9820000000e+00 101039 1.2908000000e+00 1.9820000000e+00 101040 1.2558000000e+00 1.9820000000e+00 101041 1.2208000000e+00 1.9820000000e+00 101042 1.1858000000e+00 1.9820000000e+00 101043 1.1508000000e+00 1.9820000000e+00 101044 1.1159000000e+00 1.9820000000e+00 101045 1.0809000000e+00 1.9820000000e+00 101046 1.0459000000e+00 1.9820000000e+00 101047 1.0109000000e+00 1.9820000000e+00 101048 9.7587000000e-01 1.9820000000e+00 101049 9.4087000000e-01 1.9820000000e+00 101050 9.0587000000e-01 1.9820000000e+00 101051 8.7087000000e-01 1.9820000000e+00 101052 8.3587000000e-01 1.9820000000e+00 101053 8.0087000000e-01 1.9820000000e+00 101054 7.6587000000e-01 1.9820000000e+00 101055 7.3087000000e-01 1.9820000000e+00 101056 6.9586000000e-01 1.9820000000e+00 101057 6.6086000000e-01 1.9820000000e+00 101058 6.2586000000e-01 1.9820000000e+00 101059 5.9086000000e-01 1.9821000000e+00 101060 5.5586000000e-01 1.9821000000e+00 101061 5.2086000000e-01 1.9821000000e+00 101062 4.8586000000e-01 1.9821000000e+00 101063 4.5086000000e-01 1.9821000000e+00 101064 4.1586000000e-01 1.9821000000e+00 101065 3.8086000000e-01 1.9821000000e+00 101066 3.4586000000e-01 1.9821000000e+00 101067 3.1086000000e-01 1.9821000000e+00 101068 2.7586000000e-01 1.9821000000e+00 101069 2.4085000000e-01 1.9821000000e+00 101070 2.0585000000e-01 1.9821000000e+00 101071 1.7085000000e-01 1.9821000000e+00 101072 1.3585000000e-01 1.9821000000e+00 101073 1.0085000000e-01 1.9821000000e+00 101074 6.5844000000e-02 1.9821000000e+00 101075 3.0843000000e-02 1.9821000000e+00 101076 -4.1569000000e-03 1.9821000000e+00 101077 -3.9157000000e-02 1.9821000000e+00 101078 -7.4157000000e-02 1.9821000000e+00 101079 -1.0916000000e-01 1.9821000000e+00 101080 -1.4416000000e-01 1.9821000000e+00 101081 -1.7916000000e-01 1.9821000000e+00 101082 -2.1415000000e-01 1.9821000000e+00 101083 -2.4915000000e-01 1.9821000000e+00 101084 -2.8415000000e-01 1.9821000000e+00 101085 -3.1915000000e-01 1.9821000000e+00 101086 -3.5415000000e-01 1.9821000000e+00 101087 -3.8915000000e-01 1.9821000000e+00 101088 -4.2415000000e-01 1.9821000000e+00 101089 -4.5915000000e-01 1.9821000000e+00 101090 -4.9415000000e-01 1.9821000000e+00 101091 -5.2915000000e-01 1.9821000000e+00 101092 -5.6415000000e-01 1.9821000000e+00 101093 -5.9915000000e-01 1.9821000000e+00 101094 -6.3415000000e-01 1.9821000000e+00 101095 -6.6916000000e-01 1.9820000000e+00 101096 -7.0416000000e-01 1.9820000000e+00 101097 -7.3917000000e-01 1.9820000000e+00 101098 -7.7418000000e-01 1.9819000000e+00 101099 -8.0920000000e-01 1.9819000000e+00 101100 -8.4423000000e-01 1.9818000000e+00 101101 -8.7928000000e-01 1.9816000000e+00 101102 -9.1435000000e-01 1.9815000000e+00 101103 -9.4946000000e-01 1.9812000000e+00 101104 -9.8462000000e-01 1.9809000000e+00 101105 -1.0198000000e+00 1.9805000000e+00 101106 -1.0552000000e+00 1.9801000000e+00 101107 -1.0906000000e+00 1.9797000000e+00 101108 -1.1262000000e+00 1.9792000000e+00 101109 -1.1619000000e+00 1.9788000000e+00 101110 -1.1976000000e+00 1.9786000000e+00 101111 -1.2334000000e+00 1.9786000000e+00 101112 -1.2690000000e+00 1.9791000000e+00 101113 -1.3041000000e+00 1.9797000000e+00 101114 -1.3390000000e+00 1.9797000000e+00 101115 -1.3225000000e+00 1.9493000000e+00 101116 -1.3363000000e+00 1.9232000000e+00 101117 -1.3315000000e+00 1.8949000000e+00 101118 -1.3267000000e+00 1.8609000000e+00 101119 -1.3234000000e+00 1.8250000000e+00 101120 -1.3211000000e+00 1.7884000000e+00 101121 -1.3193000000e+00 1.7514000000e+00 101122 -1.3182000000e+00 1.7141000000e+00 101123 -1.3182000000e+00 1.6768000000e+00 101124 -1.3192000000e+00 1.6401000000e+00 101125 -1.3204000000e+00 1.6040000000e+00 101126 -1.3213000000e+00 1.5683000000e+00 101127 -1.3220000000e+00 1.5328000000e+00 101128 -1.3226000000e+00 1.4973000000e+00 101129 -1.3232000000e+00 1.4619000000e+00 101130 -1.2923000000e+00 1.4446000000e+00 101131 -1.2929000000e+00 1.4092000000e+00 101132 -1.2934000000e+00 1.3740000000e+00 101133 -1.2939000000e+00 1.3387000000e+00 101134 -1.3247000000e+00 1.3210000000e+00 101135 -1.3249000000e+00 1.2859000000e+00 101136 -1.3251000000e+00 1.2508000000e+00 101137 -1.3253000000e+00 1.2157000000e+00 101138 -1.2949000000e+00 1.1983000000e+00 101139 -1.2951000000e+00 1.1632000000e+00 101140 -1.2952000000e+00 1.1282000000e+00 101141 -1.2953000000e+00 1.0931000000e+00 101142 -1.3257000000e+00 1.0756000000e+00 101143 -1.2953000000e+00 1.0581000000e+00 101144 -1.2650000000e+00 1.0406000000e+00 101145 -1.2347000000e+00 1.0231000000e+00 101146 -1.2044000000e+00 1.0056000000e+00 101147 -1.1741000000e+00 9.8813000000e-01 101148 -1.1741000000e+00 9.5308000000e-01 101149 -1.1438000000e+00 9.7062000000e-01 101150 -1.1438000000e+00 9.3555000000e-01 101151 -1.1741000000e+00 9.1803000000e-01 101152 -1.2942000000e+00 1.3036000000e+00 101153 -1.2945000000e+00 1.2684000000e+00 101154 -1.2947000000e+00 1.2333000000e+00 101155 -1.2643000000e+00 1.2159000000e+00 101156 -1.2646000000e+00 1.1808000000e+00 101157 -1.2647000000e+00 1.1457000000e+00 101158 -1.2649000000e+00 1.1107000000e+00 101159 -1.2650000000e+00 1.0756000000e+00 101160 1.4147000000e+00 3.0942000000e-02 101161 1.4500000000e+00 3.0943000000e-02 101162 1.4853000000e+00 3.0893000000e-02 101163 1.5205000000e+00 3.0808000000e-02 101164 -1.1741000000e+00 1.0232000000e+00 101165 -1.1438000000e+00 1.0057000000e+00 101166 -1.1135000000e+00 9.8816000000e-01 101167 -1.1135000000e+00 9.5308000000e-01 101168 -1.1135000000e+00 9.1800000000e-01 101169 -1.1438000000e+00 9.0048000000e-01 101170 -1.1741000000e+00 8.8297000000e-01 101171 -8.3884000000e-01 3.0505000000e-02 101172 -8.0387000000e-01 3.0450000000e-02 101173 -7.6891000000e-01 3.0412000000e-02 101174 1.4670000000e+00 6.1888000000e-02 101175 1.5025000000e+00 6.1734000000e-02 101176 1.4843000000e+00 9.2812000000e-02 101177 1.5378000000e+00 6.1533000000e-02 101178 1.5199000000e+00 9.2499000000e-02 101179 1.5554000000e+00 9.2167000000e-02 101180 1.5376000000e+00 1.2316000000e-01 101181 1.5731000000e+00 1.2271000000e-01 101182 1.5907000000e+00 9.1844000000e-02 101183 1.5731000000e+00 6.1320000000e-02 101184 1.6083000000e+00 6.1107000000e-02 101185 1.5908000000e+00 3.0601000000e-02 101186 1.5556000000e+00 3.0707000000e-02 101187 1.6259000000e+00 3.0496000000e-02 101188 1.6609000000e+00 3.0391000000e-02 101189 1.6960000000e+00 3.0287000000e-02 101190 1.7310000000e+00 3.0186000000e-02 101191 1.7660000000e+00 3.0092000000e-02 101192 1.8009000000e+00 3.0011000000e-02 101193 1.8359000000e+00 2.9949000000e-02 101194 1.8708000000e+00 2.9912000000e-02 101195 1.9057000000e+00 2.9904000000e-02 101196 1.9407000000e+00 2.9923000000e-02 101197 1.9756000000e+00 2.9964000000e-02 101198 2.0106000000e+00 3.0018000000e-02 101199 2.0456000000e+00 3.0074000000e-02 101200 2.0806000000e+00 3.0125000000e-02 101201 2.1156000000e+00 3.0167000000e-02 101202 2.1506000000e+00 3.0200000000e-02 101203 2.1857000000e+00 3.0224000000e-02 101204 2.2207000000e+00 3.0243000000e-02 101205 2.2557000000e+00 3.0256000000e-02 101206 2.2907000000e+00 3.0266000000e-02 101207 2.3258000000e+00 3.0274000000e-02 101208 2.3608000000e+00 3.0281000000e-02 101209 2.3958000000e+00 3.0286000000e-02 101210 2.4308000000e+00 3.0290000000e-02 101211 2.4658000000e+00 3.0294000000e-02 101212 2.5008000000e+00 3.0297000000e-02 101213 2.5358000000e+00 3.0300000000e-02 101214 2.5708000000e+00 3.0303000000e-02 101215 2.6058000000e+00 3.0306000000e-02 101216 2.6408000000e+00 3.0309000000e-02 101217 2.6758000000e+00 3.0313000000e-02 101218 2.7108000000e+00 3.0318000000e-02 101219 2.7458000000e+00 3.0323000000e-02 101220 2.7809000000e+00 3.0329000000e-02 101221 2.8159000000e+00 3.0335000000e-02 101222 2.8509000000e+00 3.0342000000e-02 101223 2.8859000000e+00 3.0350000000e-02 101224 2.9209000000e+00 3.0358000000e-02 101225 2.9559000000e+00 3.0367000000e-02 101226 2.9910000000e+00 3.0374000000e-02 101227 3.0260000000e+00 3.0382000000e-02 101228 3.0610000000e+00 3.0392000000e-02 101229 3.0960000000e+00 3.0408000000e-02 101230 3.1310000000e+00 3.0437000000e-02 101231 3.1660000000e+00 3.0492000000e-02 101232 3.2011000000e+00 3.0577000000e-02 101233 3.2362000000e+00 3.0654000000e-02 101234 3.2713000000e+00 3.0604000000e-02 101235 3.3063000000e+00 3.0357000000e-02 101236 3.3411000000e+00 3.0068000000e-02 101237 3.3756000000e+00 2.9965000000e-02 101238 3.4102000000e+00 3.0190000000e-02 101239 3.4451000000e+00 3.0613000000e-02 101240 3.4802000000e+00 3.0719000000e-02 101241 3.5146000000e+00 2.9544000000e-02 101242 3.5511000000e+00 2.5456000000e-02 101243 3.5613000000e+00 5.4739000000e-02 101244 3.5555000000e+00 8.4325000000e-02 101245 3.5526000000e+00 1.2007000000e-01 101246 3.5526000000e+00 1.5636000000e-01 101247 3.5527000000e+00 1.9198000000e-01 101248 3.5528000000e+00 2.2740000000e-01 101249 3.5224000000e+00 2.4520000000e-01 101250 3.5229000000e+00 2.8053000000e-01 101251 3.5233000000e+00 3.1559000000e-01 101252 3.5237000000e+00 3.5040000000e-01 101253 3.5240000000e+00 3.8503000000e-01 101254 3.5240000000e+00 4.1955000000e-01 101255 3.5237000000e+00 4.5409000000e-01 101256 3.5233000000e+00 4.8877000000e-01 101257 3.5229000000e+00 5.2367000000e-01 101258 3.4922000000e+00 5.4037000000e-01 101259 3.4918000000e+00 5.7567000000e-01 101260 3.4916000000e+00 6.1104000000e-01 101261 3.4915000000e+00 6.4639000000e-01 101262 3.4916000000e+00 6.8166000000e-01 101263 3.4916000000e+00 7.1687000000e-01 101264 3.4918000000e+00 7.5203000000e-01 101265 3.4919000000e+00 7.8715000000e-01 101266 3.4920000000e+00 8.2225000000e-01 101267 3.4921000000e+00 8.5733000000e-01 101268 3.4922000000e+00 8.9239000000e-01 101269 3.4922000000e+00 9.2744000000e-01 101270 3.4923000000e+00 9.6248000000e-01 101271 3.4923000000e+00 9.9750000000e-01 101272 3.4924000000e+00 1.0325000000e+00 101273 3.4924000000e+00 1.0675000000e+00 101274 3.4924000000e+00 1.1025000000e+00 101275 3.4924000000e+00 1.1375000000e+00 101276 3.4924000000e+00 1.1725000000e+00 101277 3.4924000000e+00 1.2075000000e+00 101278 3.4924000000e+00 1.2425000000e+00 101279 3.4923000000e+00 1.2776000000e+00 101280 3.4923000000e+00 1.3126000000e+00 101281 3.4922000000e+00 1.3476000000e+00 101282 3.4922000000e+00 1.3827000000e+00 101283 3.4921000000e+00 1.4177000000e+00 101284 3.4920000000e+00 1.4528000000e+00 101285 3.4919000000e+00 1.4879000000e+00 101286 3.4918000000e+00 1.5230000000e+00 101287 3.4916000000e+00 1.5582000000e+00 101288 3.4914000000e+00 1.5934000000e+00 101289 3.4912000000e+00 1.6286000000e+00 101290 3.4908000000e+00 1.6639000000e+00 101291 3.4905000000e+00 1.6993000000e+00 101292 3.4900000000e+00 1.7348000000e+00 101293 3.4894000000e+00 1.7704000000e+00 101294 3.4888000000e+00 1.8062000000e+00 101295 3.4880000000e+00 1.8421000000e+00 101296 3.4873000000e+00 1.8782000000e+00 101297 3.4865000000e+00 1.9144000000e+00 101298 3.4852000000e+00 1.9510000000e+00 101299 3.4857000000e+00 1.9870000000e+00 101300 3.4481000000e+00 1.9742000000e+00 101301 3.4078000000e+00 1.9768000000e+00 101302 3.3717000000e+00 1.9752000000e+00 101303 3.3352000000e+00 1.9737000000e+00 101304 3.2986000000e+00 1.9726000000e+00 101305 3.2617000000e+00 1.9715000000e+00 101306 3.2239000000e+00 1.9706000000e+00 101307 3.1862000000e+00 1.9721000000e+00 101308 3.1501000000e+00 1.9750000000e+00 101309 3.1151000000e+00 1.9765000000e+00 101310 3.0802000000e+00 1.9771000000e+00 101311 3.0451000000e+00 1.9774000000e+00 101312 3.0099000000e+00 1.9776000000e+00 101313 2.9745000000e+00 1.9779000000e+00 101314 2.9391000000e+00 1.9781000000e+00 101315 2.9037000000e+00 1.9783000000e+00 101316 2.8682000000e+00 1.9786000000e+00 101317 2.8328000000e+00 1.9789000000e+00 101318 2.7973000000e+00 1.9793000000e+00 101319 2.7620000000e+00 1.9798000000e+00 101320 2.7267000000e+00 1.9803000000e+00 101321 2.6915000000e+00 1.9807000000e+00 101322 2.6565000000e+00 1.9811000000e+00 101323 2.6215000000e+00 1.9814000000e+00 101324 2.5865000000e+00 1.9816000000e+00 101325 2.5515000000e+00 1.9818000000e+00 101326 2.5165000000e+00 1.9819000000e+00 101327 2.4814000000e+00 1.9820000000e+00 101328 2.4464000000e+00 1.9821000000e+00 101329 2.4114000000e+00 1.9822000000e+00 101330 2.3765000000e+00 1.9823000000e+00 101331 2.3416000000e+00 1.9823000000e+00 101332 2.3067000000e+00 1.9823000000e+00 101333 2.2718000000e+00 1.9822000000e+00 101334 2.2368000000e+00 1.9821000000e+00 101335 2.2017000000e+00 1.9820000000e+00 101336 2.1667000000e+00 1.9819000000e+00 101337 2.1494000000e+00 1.9515000000e+00 101338 2.1143000000e+00 1.9514000000e+00 101339 2.0791000000e+00 1.9514000000e+00 101340 2.0614000000e+00 1.9818000000e+00 101341 2.0263000000e+00 1.9818000000e+00 101342 1.9912000000e+00 1.9819000000e+00 101343 1.9562000000e+00 1.9819000000e+00 101344 1.9211000000e+00 1.9819000000e+00 101345 1.8861000000e+00 1.9820000000e+00 101346 1.8511000000e+00 1.9820000000e+00 101347 1.8337000000e+00 1.9517000000e+00 101348 1.7987000000e+00 1.9517000000e+00 101349 1.7636000000e+00 1.9517000000e+00 101350 1.7286000000e+00 1.9517000000e+00 101351 1.6936000000e+00 1.9517000000e+00 101352 1.6585000000e+00 1.9517000000e+00 101353 1.6235000000e+00 1.9517000000e+00 101354 1.5884000000e+00 1.9517000000e+00 101355 1.5534000000e+00 1.9517000000e+00 101356 1.5184000000e+00 1.9517000000e+00 101357 1.4834000000e+00 1.9517000000e+00 101358 1.4484000000e+00 1.9517000000e+00 101359 1.4134000000e+00 1.9517000000e+00 101360 1.3784000000e+00 1.9517000000e+00 101361 1.3433000000e+00 1.9517000000e+00 101362 1.3083000000e+00 1.9517000000e+00 101363 1.2733000000e+00 1.9517000000e+00 101364 1.2383000000e+00 1.9517000000e+00 101365 1.2033000000e+00 1.9517000000e+00 101366 1.1684000000e+00 1.9517000000e+00 101367 1.1334000000e+00 1.9517000000e+00 101368 1.0984000000e+00 1.9517000000e+00 101369 1.0634000000e+00 1.9517000000e+00 101370 1.0284000000e+00 1.9517000000e+00 101371 9.9339000000e-01 1.9517000000e+00 101372 9.5839000000e-01 1.9517000000e+00 101373 9.2339000000e-01 1.9517000000e+00 101374 8.8839000000e-01 1.9517000000e+00 101375 8.5339000000e-01 1.9517000000e+00 101376 8.1839000000e-01 1.9517000000e+00 101377 7.8338000000e-01 1.9517000000e+00 101378 7.4838000000e-01 1.9517000000e+00 101379 7.1338000000e-01 1.9517000000e+00 101380 6.7837000000e-01 1.9517000000e+00 101381 6.4337000000e-01 1.9517000000e+00 101382 6.0837000000e-01 1.9517000000e+00 101383 5.7337000000e-01 1.9517000000e+00 101384 5.3838000000e-01 1.9517000000e+00 101385 5.0338000000e-01 1.9517000000e+00 101386 4.6838000000e-01 1.9517000000e+00 101387 4.3338000000e-01 1.9517000000e+00 101388 3.9838000000e-01 1.9517000000e+00 101389 3.6338000000e-01 1.9517000000e+00 101390 3.2837000000e-01 1.9517000000e+00 101391 2.9337000000e-01 1.9517000000e+00 101392 2.5836000000e-01 1.9517000000e+00 101393 2.2336000000e-01 1.9517000000e+00 101394 1.8836000000e-01 1.9517000000e+00 101395 1.5335000000e-01 1.9517000000e+00 101396 1.1835000000e-01 1.9517000000e+00 101397 8.3348000000e-02 1.9517000000e+00 101398 4.8346000000e-02 1.9517000000e+00 101399 1.3345000000e-02 1.9517000000e+00 101400 -2.1655000000e-02 1.9517000000e+00 101401 -5.6655000000e-02 1.9517000000e+00 101402 -9.1655000000e-02 1.9517000000e+00 101403 -1.2665000000e-01 1.9517000000e+00 101404 -1.6165000000e-01 1.9517000000e+00 101405 -1.9665000000e-01 1.9517000000e+00 101406 -2.3165000000e-01 1.9517000000e+00 101407 -2.6665000000e-01 1.9517000000e+00 101408 -3.0165000000e-01 1.9517000000e+00 101409 -3.3664000000e-01 1.9518000000e+00 101410 -3.7164000000e-01 1.9518000000e+00 101411 -4.0664000000e-01 1.9518000000e+00 101412 -4.4164000000e-01 1.9518000000e+00 101413 -4.7664000000e-01 1.9518000000e+00 101414 -5.1164000000e-01 1.9518000000e+00 101415 -5.4664000000e-01 1.9518000000e+00 101416 -5.8164000000e-01 1.9517000000e+00 101417 -6.1665000000e-01 1.9517000000e+00 101418 -6.5165000000e-01 1.9517000000e+00 101419 -6.8666000000e-01 1.9517000000e+00 101420 -7.2167000000e-01 1.9517000000e+00 101421 -7.5668000000e-01 1.9516000000e+00 101422 -7.9170000000e-01 1.9515000000e+00 101423 -8.2673000000e-01 1.9514000000e+00 101424 -8.6177000000e-01 1.9513000000e+00 101425 -8.9684000000e-01 1.9511000000e+00 101426 -9.3195000000e-01 1.9508000000e+00 101427 -9.6711000000e-01 1.9504000000e+00 101428 -1.0024000000e+00 1.9500000000e+00 101429 -1.0377000000e+00 1.9494000000e+00 101430 -1.0732000000e+00 1.9488000000e+00 101431 -1.1089000000e+00 1.9481000000e+00 101432 -1.1447000000e+00 1.9474000000e+00 101433 -1.1807000000e+00 1.9469000000e+00 101434 -1.2170000000e+00 1.9465000000e+00 101435 -1.2532000000e+00 1.9469000000e+00 101436 -1.2886000000e+00 1.9483000000e+00 101437 -1.3087000000e+00 1.9195000000e+00 101438 -1.2989000000e+00 1.8860000000e+00 101439 -1.2929000000e+00 1.8492000000e+00 101440 -1.2900000000e+00 1.8117000000e+00 101441 -1.2872000000e+00 1.7743000000e+00 101442 -1.2850000000e+00 1.7362000000e+00 101443 -1.2838000000e+00 1.6974000000e+00 101444 -1.2852000000e+00 1.6593000000e+00 101445 -1.2877000000e+00 1.6227000000e+00 101446 -1.2891000000e+00 1.5870000000e+00 101447 -1.2900000000e+00 1.5513000000e+00 101448 -1.2909000000e+00 1.5156000000e+00 101449 -1.2916000000e+00 1.4800000000e+00 101450 -1.2609000000e+00 1.4626000000e+00 101451 -1.2617000000e+00 1.4272000000e+00 101452 -1.2623000000e+00 1.3918000000e+00 101453 -1.2629000000e+00 1.3566000000e+00 101454 -1.2318000000e+00 1.3744000000e+00 101455 -1.2324000000e+00 1.3391000000e+00 101456 -1.2634000000e+00 1.3213000000e+00 101457 2.0278000000e+00 6.0100000000e-02 101458 2.0628000000e+00 6.0212000000e-02 101459 2.0978000000e+00 6.0307000000e-02 101460 2.1329000000e+00 6.0381000000e-02 101461 -1.2554000000e+00 1.6404000000e+00 101462 -1.2572000000e+00 1.6055000000e+00 101463 -1.2580000000e+00 1.5699000000e+00 101464 -1.2590000000e+00 1.5340000000e+00 101465 -1.2599000000e+00 1.4982000000e+00 101466 -1.2292000000e+00 1.4807000000e+00 101467 -1.2303000000e+00 1.4451000000e+00 101468 -1.2311000000e+00 1.4097000000e+00 101469 -1.2007000000e+00 1.3923000000e+00 101470 -1.2014000000e+00 1.3570000000e+00 101471 -1.2020000000e+00 1.3217000000e+00 101472 -1.2329000000e+00 1.3039000000e+00 101473 -1.2637000000e+00 1.2861000000e+00 101474 1.0697000000e+00 3.5895000000e-02 101475 1.1064000000e+00 3.0569000000e-02 101476 1.1391000000e+00 2.7429000000e-02 101477 1.1721000000e+00 2.7376000000e-02 101478 1.2058000000e+00 2.7488000000e-02 101479 1.2395000000e+00 2.8056000000e-02 101480 1.2737000000e+00 2.9263000000e-02 101481 1.3087000000e+00 3.0256000000e-02 101482 1.3441000000e+00 3.0703000000e-02 101483 1.3794000000e+00 3.0882000000e-02 101484 1.3959000000e+00 6.1887000000e-02 101485 1.3602000000e+00 6.1761000000e-02 101486 1.3768000000e+00 9.2798000000e-02 101487 1.4126000000e+00 9.3001000000e-02 101488 1.4315000000e+00 6.1945000000e-02 101489 1.4485000000e+00 9.3023000000e-02 101490 -1.2641000000e+00 1.2510000000e+00 101491 -1.2337000000e+00 1.2335000000e+00 101492 -1.2340000000e+00 1.1984000000e+00 101493 -1.2342000000e+00 1.1633000000e+00 101494 -1.2344000000e+00 1.1282000000e+00 101495 -1.2039000000e+00 1.1458000000e+00 101496 -1.2041000000e+00 1.1108000000e+00 101497 -1.2346000000e+00 1.0932000000e+00 101498 -1.2347000000e+00 1.0582000000e+00 101499 -1.2044000000e+00 1.0407000000e+00 101500 1.9928000000e+00 5.9981000000e-02 101501 2.0100000000e+00 9.0073000000e-02 101502 1.3407000000e+00 9.2971000000e-02 101503 1.3580000000e+00 1.2320000000e-01 101504 1.3933000000e+00 1.2397000000e-01 101505 1.4296000000e+00 1.2440000000e-01 101506 -1.3255000000e+00 5.8549000000e-01 101507 -1.2951000000e+00 5.6800000000e-01 101508 -1.2952000000e+00 6.0297000000e-01 101509 -1.2648000000e+00 5.8546000000e-01 101510 -1.2648000000e+00 6.2042000000e-01 101511 -1.2344000000e+00 6.0290000000e-01 101512 -1.2344000000e+00 5.6795000000e-01 101513 -1.2647000000e+00 5.5051000000e-01 101514 -1.2951000000e+00 5.3304000000e-01 101515 -1.3256000000e+00 6.9046000000e-01 101516 -1.2952000000e+00 6.7294000000e-01 101517 -1.2952000000e+00 6.3795000000e-01 101518 -1.2648000000e+00 6.5540000000e-01 101519 -1.2345000000e+00 6.3786000000e-01 101520 -1.2345000000e+00 6.7284000000e-01 101521 -1.2649000000e+00 6.9040000000e-01 101522 -1.2041000000e+00 6.5527000000e-01 101523 -1.2041000000e+00 6.2031000000e-01 101524 -7.8612000000e-01 6.0847000000e-02 101525 -7.5120000000e-01 6.0790000000e-02 101526 -7.3395000000e-01 3.0386000000e-02 101527 -1.1740000000e+00 1.0582000000e+00 101528 -1.1437000000e+00 1.0407000000e+00 101529 -1.2043000000e+00 1.0757000000e+00 101530 -1.1738000000e+00 1.0933000000e+00 101531 -1.1435000000e+00 1.0758000000e+00 101532 -1.1133000000e+00 1.0583000000e+00 101533 -1.1134000000e+00 1.0232000000e+00 101534 -1.0830000000e+00 1.0408000000e+00 101535 -1.0831000000e+00 1.0057000000e+00 101536 -1.1737000000e+00 6.0275000000e-01 101537 -1.2040000000e+00 5.8537000000e-01 101538 -1.2039000000e+00 5.5046000000e-01 101539 -1.2343000000e+00 5.3303000000e-01 101540 -1.2039000000e+00 5.1556000000e-01 101541 -1.0832000000e+00 9.7062000000e-01 101542 -1.1736000000e+00 5.6785000000e-01 101543 -1.1433000000e+00 5.8519000000e-01 101544 -1.1432000000e+00 5.5036000000e-01 101545 -1.1735000000e+00 5.3298000000e-01 101546 2.4833000000e+00 6.0591000000e-02 101547 2.5183000000e+00 6.0597000000e-02 101548 2.5533000000e+00 6.0603000000e-02 101549 2.5883000000e+00 6.0609000000e-02 101550 2.6233000000e+00 6.0615000000e-02 101551 2.6058000000e+00 9.0917000000e-02 101552 2.6408000000e+00 9.0928000000e-02 101553 2.6583000000e+00 6.0623000000e-02 101554 2.6758000000e+00 9.0940000000e-02 101555 2.6933000000e+00 6.0631000000e-02 101556 2.4483000000e+00 6.0584000000e-02 101557 2.4658000000e+00 9.0881000000e-02 101558 2.5008000000e+00 9.0890000000e-02 101559 2.4832000000e+00 1.2118000000e-01 101560 2.5183000000e+00 1.2119000000e-01 101561 2.5358000000e+00 9.0898000000e-02 101562 -1.1130000000e+00 5.6768000000e-01 101563 -1.1130000000e+00 6.0245000000e-01 101564 -1.0828000000e+00 5.8491000000e-01 101565 -1.0529000000e+00 6.0185000000e-01 101566 -1.0527000000e+00 5.6768000000e-01 101567 -1.0241000000e+00 5.8498000000e-01 101568 -1.0219000000e+00 5.5106000000e-01 101569 -1.0520000000e+00 5.3300000000e-01 101570 -1.0211000000e+00 5.1584000000e-01 101571 -9.8788000000e-01 5.3354000000e-01 101572 -9.9523000000e-01 5.0188000000e-01 101573 -1.0180000000e+00 4.7784000000e-01 101574 -1.0514000000e+00 4.9768000000e-01 101575 -1.0823000000e+00 5.1544000000e-01 101576 -1.0826000000e+00 5.5027000000e-01 101577 -1.1128000000e+00 5.3290000000e-01 101578 -1.0824000000e+00 4.8069000000e-01 101579 -1.1127000000e+00 4.9810000000e-01 101580 -1.1431000000e+00 5.1552000000e-01 101581 -1.1430000000e+00 4.8069000000e-01 101582 -1.1734000000e+00 4.9811000000e-01 101583 -1.2038000000e+00 4.8067000000e-01 101584 -1.1733000000e+00 4.6325000000e-01 101585 -1.1429000000e+00 4.4584000000e-01 101586 -1.1126000000e+00 4.6333000000e-01 101587 -1.0825000000e+00 4.4626000000e-01 101588 -1.1124000000e+00 4.2844000000e-01 101589 -1.0815000000e+00 4.1127000000e-01 101590 -1.1120000000e+00 3.9301000000e-01 101591 -1.1427000000e+00 4.1092000000e-01 101592 -1.1428000000e+00 3.7623000000e-01 101593 -1.1731000000e+00 3.9360000000e-01 101594 -1.1135000000e+00 3.5879000000e-01 101595 -1.1427000000e+00 3.4212000000e-01 101596 -1.1729000000e+00 3.5898000000e-01 101597 -1.1723000000e+00 3.2441000000e-01 101598 -1.2030000000e+00 3.4139000000e-01 101599 -1.2033000000e+00 3.7616000000e-01 101600 -1.2035000000e+00 4.1095000000e-01 101601 -1.1732000000e+00 4.2839000000e-01 101602 -1.2037000000e+00 4.4580000000e-01 101603 1.0143000000e+00 3.0083000000e-02 101604 1.0403000000e+00 2.4993000000e-02 101605 1.0022000000e+00 6.0385000000e-02 101606 9.6955000000e-01 6.5528000000e-02 101607 9.9094000000e-01 9.2055000000e-02 101608 1.0368000000e+00 5.6843000000e-02 101609 1.0661000000e+00 7.0336000000e-02 101610 1.0459000000e+00 9.2211000000e-02 101611 1.0785000000e+00 9.8825000000e-02 101612 1.0565000000e+00 1.2492000000e-01 101613 1.0185000000e+00 1.1833000000e-01 101614 1.0368000000e+00 1.5378000000e-01 101615 1.0699000000e+00 1.5539000000e-01 101616 1.0893000000e+00 1.3093000000e-01 101617 1.1133000000e+00 1.0662000000e-01 101618 1.0999000000e+00 6.7878000000e-02 101619 1.1375000000e+00 8.0663000000e-02 101620 1.1279000000e+00 5.2196000000e-02 101621 1.1565000000e+00 5.4414000000e-02 101622 1.1895000000e+00 5.4910000000e-02 101623 1.1732000000e+00 8.3874000000e-02 101624 1.1539000000e+00 1.1895000000e-01 101625 1.1943000000e+00 1.1255000000e-01 101626 1.1831000000e+00 1.4187000000e-01 101627 1.2186000000e+00 1.4278000000e-01 101628 1.2296000000e+00 1.0607000000e-01 101629 1.2074000000e+00 8.1705000000e-02 101630 1.2220000000e+00 5.4568000000e-02 101631 1.2541000000e+00 5.7005000000e-02 101632 1.2884000000e+00 6.0245000000e-02 101633 1.2651000000e+00 9.1662000000e-02 101634 1.3044000000e+00 9.1943000000e-02 101635 1.3244000000e+00 6.1316000000e-02 101636 1.2870000000e+00 1.1864000000e-01 101637 1.3205000000e+00 1.2680000000e-01 101638 1.3438000000e+00 1.4862000000e-01 101639 1.3729000000e+00 1.5401000000e-01 101640 1.4098000000e+00 1.5641000000e-01 101641 1.4473000000e+00 1.5588000000e-01 101642 1.4659000000e+00 1.2412000000e-01 101643 1.5019000000e+00 1.2364000000e-01 101644 1.5198000000e+00 1.5430000000e-01 101645 1.5554000000e+00 1.5370000000e-01 101646 1.5909000000e+00 1.5318000000e-01 101647 1.6085000000e+00 1.2229000000e-01 101648 1.6263000000e+00 1.5270000000e-01 101649 1.6088000000e+00 1.8364000000e-01 101650 1.5734000000e+00 1.8416000000e-01 101651 1.5913000000e+00 2.1466000000e-01 101652 1.6269000000e+00 2.1418000000e-01 101653 1.6443000000e+00 1.8310000000e-01 101654 1.6616000000e+00 1.5219000000e-01 101655 1.6438000000e+00 1.2188000000e-01 101656 1.6790000000e+00 1.2146000000e-01 101657 1.6612000000e+00 9.1215000000e-02 101658 1.6963000000e+00 9.0897000000e-02 101659 1.6786000000e+00 6.0687000000e-02 101660 1.7136000000e+00 6.0479000000e-02 101661 1.7313000000e+00 9.0581000000e-02 101662 1.7486000000e+00 6.0279000000e-02 101663 1.7663000000e+00 9.0278000000e-02 101664 1.7491000000e+00 1.2059000000e-01 101665 1.7840000000e+00 1.2017000000e-01 101666 1.7669000000e+00 1.5048000000e-01 101667 1.8017000000e+00 1.4994000000e-01 101668 1.8188000000e+00 1.1982000000e-01 101669 1.8012000000e+00 9.0009000000e-02 101670 1.7836000000e+00 6.0096000000e-02 101671 1.8185000000e+00 5.9945000000e-02 101672 1.8534000000e+00 5.9840000000e-02 101673 1.8882000000e+00 5.9793000000e-02 101674 1.9231000000e+00 5.9808000000e-02 101675 1.9579000000e+00 5.9876000000e-02 101676 1.9751000000e+00 8.9881000000e-02 101677 1.9922000000e+00 1.1998000000e-01 101678 2.0271000000e+00 1.2027000000e-01 101679 2.0450000000e+00 9.0263000000e-02 101680 2.0800000000e+00 9.0425000000e-02 101681 2.1151000000e+00 9.0550000000e-02 101682 2.0973000000e+00 1.2072000000e-01 101683 2.1324000000e+00 1.2085000000e-01 101684 2.1502000000e+00 9.0641000000e-02 101685 2.1680000000e+00 6.0435000000e-02 101686 2.1853000000e+00 9.0705000000e-02 101687 2.2030000000e+00 6.0475000000e-02 101688 2.2381000000e+00 6.0505000000e-02 101689 2.2731000000e+00 6.0527000000e-02 101690 2.3082000000e+00 6.0544000000e-02 101691 2.2906000000e+00 9.0810000000e-02 101692 2.3256000000e+00 9.0831000000e-02 101693 2.3432000000e+00 6.0557000000e-02 101694 2.3782000000e+00 6.0568000000e-02 101695 2.4133000000e+00 6.0577000000e-02 101696 2.4307000000e+00 9.0872000000e-02 101697 2.4482000000e+00 1.2117000000e-01 101698 2.4657000000e+00 1.5147000000e-01 101699 2.5007000000e+00 1.5148000000e-01 101700 2.5358000000e+00 1.5149000000e-01 101701 2.5182000000e+00 1.8177000000e-01 101702 2.5532000000e+00 1.8179000000e-01 101703 2.4832000000e+00 1.8176000000e-01 101704 2.5007000000e+00 2.1205000000e-01 101705 2.5357000000e+00 2.1206000000e-01 101706 2.5707000000e+00 2.1209000000e-01 101707 2.5882000000e+00 1.8181000000e-01 101708 2.5708000000e+00 1.5150000000e-01 101709 2.5533000000e+00 1.2120000000e-01 101710 2.5708000000e+00 9.0907000000e-02 101711 2.5883000000e+00 1.2121000000e-01 101712 2.6233000000e+00 1.2123000000e-01 101713 2.6583000000e+00 1.2124000000e-01 101714 2.6933000000e+00 1.2126000000e-01 101715 2.7108000000e+00 9.0955000000e-02 101716 2.7283000000e+00 6.0641000000e-02 101717 2.7634000000e+00 6.0652000000e-02 101718 2.7984000000e+00 6.0665000000e-02 101719 2.8334000000e+00 6.0679000000e-02 101720 2.8684000000e+00 6.0694000000e-02 101721 2.9035000000e+00 6.0711000000e-02 101722 2.9385000000e+00 6.0728000000e-02 101723 2.9736000000e+00 6.0743000000e-02 101724 2.9561000000e+00 9.1110000000e-02 101725 2.9912000000e+00 9.1132000000e-02 101726 3.0086000000e+00 6.0758000000e-02 101727 3.0436000000e+00 6.0773000000e-02 101728 3.0787000000e+00 6.0792000000e-02 101729 3.1137000000e+00 6.0826000000e-02 101730 3.1487000000e+00 6.0898000000e-02 101731 3.1313000000e+00 9.1235000000e-02 101732 3.1663000000e+00 9.1353000000e-02 101733 3.1837000000e+00 6.1040000000e-02 101734 3.2188000000e+00 6.1272000000e-02 101735 3.2542000000e+00 6.1471000000e-02 101736 3.2895000000e+00 6.1135000000e-02 101737 3.3243000000e+00 6.0333000000e-02 101738 3.3585000000e+00 5.9749000000e-02 101739 3.3924000000e+00 5.9778000000e-02 101740 3.4266000000e+00 6.0783000000e-02 101741 3.4619000000e+00 6.1981000000e-02 101742 3.4980000000e+00 6.2174000000e-02 101743 3.5333000000e+00 5.8912000000e-02 101744 3.5192000000e+00 9.7229000000e-02 101745 3.5219000000e+00 1.3750000000e-01 101746 3.5219000000e+00 1.7360000000e-01 101747 3.5220000000e+00 2.0954000000e-01 101748 3.4915000000e+00 2.2766000000e-01 101749 3.4923000000e+00 2.6337000000e-01 101750 3.4930000000e+00 2.9862000000e-01 101751 3.4938000000e+00 3.3347000000e-01 101752 3.4943000000e+00 3.6798000000e-01 101753 3.4945000000e+00 4.0221000000e-01 101754 3.4943000000e+00 4.3635000000e-01 101755 3.4937000000e+00 4.7065000000e-01 101756 3.4929000000e+00 5.0531000000e-01 101757 3.4620000000e+00 5.2164000000e-01 101758 3.4612000000e+00 5.5711000000e-01 101759 3.4608000000e+00 5.9274000000e-01 101760 3.4607000000e+00 6.2830000000e-01 101761 3.4608000000e+00 6.6374000000e-01 101762 3.4610000000e+00 6.9905000000e-01 101763 3.4611000000e+00 7.3428000000e-01 101764 3.4613000000e+00 7.6945000000e-01 101765 3.4614000000e+00 8.0459000000e-01 101766 3.4616000000e+00 8.3971000000e-01 101767 3.4617000000e+00 8.7480000000e-01 101768 3.4618000000e+00 9.0988000000e-01 101769 3.4619000000e+00 9.4494000000e-01 101770 3.4620000000e+00 9.7998000000e-01 101771 3.4620000000e+00 1.0150000000e+00 101772 3.4621000000e+00 1.0500000000e+00 101773 3.4621000000e+00 1.0850000000e+00 101774 3.4621000000e+00 1.1200000000e+00 101775 3.4621000000e+00 1.1550000000e+00 101776 3.4621000000e+00 1.1900000000e+00 101777 3.4621000000e+00 1.2251000000e+00 101778 3.4620000000e+00 1.2601000000e+00 101779 3.4620000000e+00 1.2951000000e+00 101780 3.4619000000e+00 1.3301000000e+00 101781 3.4618000000e+00 1.3652000000e+00 101782 3.4617000000e+00 1.4003000000e+00 101783 3.4616000000e+00 1.4354000000e+00 101784 3.4615000000e+00 1.4705000000e+00 101785 3.4613000000e+00 1.5057000000e+00 101786 3.4611000000e+00 1.5409000000e+00 101787 3.4609000000e+00 1.5761000000e+00 101788 3.4606000000e+00 1.6114000000e+00 101789 3.4602000000e+00 1.6467000000e+00 101790 3.4597000000e+00 1.6822000000e+00 101791 3.4592000000e+00 1.7177000000e+00 101792 3.4585000000e+00 1.7534000000e+00 101793 3.4577000000e+00 1.7893000000e+00 101794 3.4567000000e+00 1.8254000000e+00 101795 3.4556000000e+00 1.8618000000e+00 101796 3.4548000000e+00 1.8983000000e+00 101797 3.4539000000e+00 1.9344000000e+00 101798 3.1677000000e+00 1.9422000000e+00 101799 3.1336000000e+00 1.9447000000e+00 101800 3.0992000000e+00 1.9455000000e+00 101801 3.0644000000e+00 1.9457000000e+00 101802 3.0291000000e+00 1.9458000000e+00 101803 2.9937000000e+00 1.9460000000e+00 101804 2.9582000000e+00 1.9462000000e+00 101805 2.9226000000e+00 1.9465000000e+00 101806 2.8870000000e+00 1.9468000000e+00 101807 2.8513000000e+00 1.9472000000e+00 101808 2.8157000000e+00 1.9477000000e+00 101809 2.7801000000e+00 1.9483000000e+00 101810 2.7446000000e+00 1.9489000000e+00 101811 2.7093000000e+00 1.9496000000e+00 101812 2.6742000000e+00 1.9503000000e+00 101813 2.6392000000e+00 1.9508000000e+00 101814 2.6043000000e+00 1.9511000000e+00 101815 2.5693000000e+00 1.9513000000e+00 101816 2.5342000000e+00 1.9514000000e+00 101817 2.4992000000e+00 1.9515000000e+00 101818 2.4641000000e+00 1.9517000000e+00 101819 2.4291000000e+00 1.9519000000e+00 101820 2.3942000000e+00 1.9521000000e+00 101821 2.3594000000e+00 1.9521000000e+00 101822 2.3245000000e+00 1.9521000000e+00 101823 2.2897000000e+00 1.9520000000e+00 101824 2.2547000000e+00 1.9518000000e+00 101825 2.2196000000e+00 1.9517000000e+00 101826 2.1846000000e+00 1.9515000000e+00 101827 2.1674000000e+00 1.9211000000e+00 101828 2.1322000000e+00 1.9210000000e+00 101829 2.0970000000e+00 1.9209000000e+00 101830 2.0618000000e+00 1.9209000000e+00 101831 2.0440000000e+00 1.9514000000e+00 101832 2.0089000000e+00 1.9514000000e+00 101833 1.9738000000e+00 1.9515000000e+00 101834 1.9388000000e+00 1.9515000000e+00 101835 1.9037000000e+00 1.9516000000e+00 101836 1.8687000000e+00 1.9516000000e+00 101837 1.8513000000e+00 1.9213000000e+00 101838 1.8163000000e+00 1.9213000000e+00 101839 1.7813000000e+00 1.9213000000e+00 101840 1.7462000000e+00 1.9213000000e+00 101841 1.7112000000e+00 1.9213000000e+00 101842 1.6761000000e+00 1.9213000000e+00 101843 1.6411000000e+00 1.9213000000e+00 101844 1.6060000000e+00 1.9213000000e+00 101845 1.5710000000e+00 1.9213000000e+00 101846 1.5359000000e+00 1.9213000000e+00 101847 1.5009000000e+00 1.9213000000e+00 101848 1.4659000000e+00 1.9213000000e+00 101849 1.4309000000e+00 1.9213000000e+00 101850 1.3959000000e+00 1.9213000000e+00 101851 1.3609000000e+00 1.9213000000e+00 101852 1.3259000000e+00 1.9213000000e+00 101853 1.2908000000e+00 1.9213000000e+00 101854 1.2558000000e+00 1.9213000000e+00 101855 1.2208000000e+00 1.9213000000e+00 101856 1.1859000000e+00 1.9213000000e+00 101857 1.1509000000e+00 1.9213000000e+00 101858 1.1159000000e+00 1.9213000000e+00 101859 1.0809000000e+00 1.9213000000e+00 101860 1.0459000000e+00 1.9213000000e+00 101861 1.0109000000e+00 1.9213000000e+00 101862 9.7591000000e-01 1.9213000000e+00 101863 9.4091000000e-01 1.9213000000e+00 101864 9.0592000000e-01 1.9213000000e+00 101865 8.7091000000e-01 1.9213000000e+00 101866 8.3591000000e-01 1.9213000000e+00 101867 8.0090000000e-01 1.9213000000e+00 101868 7.6590000000e-01 1.9214000000e+00 101869 7.3089000000e-01 1.9214000000e+00 101870 6.9589000000e-01 1.9214000000e+00 101871 6.6089000000e-01 1.9214000000e+00 101872 6.2589000000e-01 1.9214000000e+00 101873 5.9089000000e-01 1.9214000000e+00 101874 5.5589000000e-01 1.9214000000e+00 101875 5.2089000000e-01 1.9214000000e+00 101876 4.8590000000e-01 1.9214000000e+00 101877 4.5090000000e-01 1.9214000000e+00 101878 4.1590000000e-01 1.9214000000e+00 101879 3.8089000000e-01 1.9214000000e+00 101880 3.4589000000e-01 1.9214000000e+00 101881 3.1088000000e-01 1.9214000000e+00 101882 2.7588000000e-01 1.9214000000e+00 101883 2.4087000000e-01 1.9214000000e+00 101884 2.0587000000e-01 1.9214000000e+00 101885 1.7086000000e-01 1.9214000000e+00 101886 1.3586000000e-01 1.9214000000e+00 101887 1.0085000000e-01 1.9214000000e+00 101888 6.5850000000e-02 1.9214000000e+00 101889 3.0847000000e-02 1.9214000000e+00 101890 -4.1538000000e-03 1.9214000000e+00 101891 -3.9154000000e-02 1.9214000000e+00 101892 -7.4154000000e-02 1.9214000000e+00 101893 -1.0915000000e-01 1.9214000000e+00 101894 -1.4415000000e-01 1.9214000000e+00 101895 -1.7915000000e-01 1.9214000000e+00 101896 -2.1415000000e-01 1.9214000000e+00 101897 -2.4914000000e-01 1.9214000000e+00 101898 -2.8414000000e-01 1.9214000000e+00 101899 -3.1914000000e-01 1.9214000000e+00 101900 -3.5414000000e-01 1.9214000000e+00 101901 -3.8913000000e-01 1.9214000000e+00 101902 -4.2413000000e-01 1.9214000000e+00 101903 -4.5913000000e-01 1.9214000000e+00 101904 -4.9413000000e-01 1.9214000000e+00 101905 -5.2913000000e-01 1.9214000000e+00 101906 -5.6413000000e-01 1.9214000000e+00 101907 -5.9914000000e-01 1.9214000000e+00 101908 -6.3414000000e-01 1.9214000000e+00 101909 -6.6915000000e-01 1.9214000000e+00 101910 -7.0416000000e-01 1.9214000000e+00 101911 -7.3917000000e-01 1.9213000000e+00 101912 -7.7419000000e-01 1.9212000000e+00 101913 -8.0922000000e-01 1.9211000000e+00 101914 -8.4426000000e-01 1.9210000000e+00 101915 -8.7932000000e-01 1.9207000000e+00 101916 -9.1442000000e-01 1.9204000000e+00 101917 -9.4957000000e-01 1.9200000000e+00 101918 -9.8479000000e-01 1.9195000000e+00 101919 -1.0201000000e+00 1.9188000000e+00 101920 -1.0556000000e+00 1.9181000000e+00 101921 -1.0913000000e+00 1.9171000000e+00 101922 -1.1273000000e+00 1.9162000000e+00 101923 -1.1635000000e+00 1.9153000000e+00 101924 -1.1999000000e+00 1.9145000000e+00 101925 -1.2371000000e+00 1.9136000000e+00 101926 -1.2743000000e+00 1.9151000000e+00 101927 -1.2592000000e+00 1.8764000000e+00 101928 -1.2595000000e+00 1.8352000000e+00 101929 -1.2559000000e+00 1.7981000000e+00 101930 -1.2523000000e+00 1.7598000000e+00 101931 -1.2493000000e+00 1.7201000000e+00 101932 -1.2470000000e+00 1.6780000000e+00 101933 -1.2286000000e+00 1.6527000000e+00 101934 -1.2266000000e+00 1.6243000000e+00 101935 -1.2261000000e+00 1.5889000000e+00 101936 -1.2268000000e+00 1.5526000000e+00 101937 -1.2280000000e+00 1.5165000000e+00 101938 -1.1974000000e+00 1.4986000000e+00 101939 -1.1987000000e+00 1.4630000000e+00 101940 -1.1998000000e+00 1.4276000000e+00 101941 -1.1695000000e+00 1.4102000000e+00 101942 -1.1703000000e+00 1.3749000000e+00 101943 -1.1709000000e+00 1.3396000000e+00 101944 -1.1715000000e+00 1.3043000000e+00 101945 -1.2025000000e+00 1.2865000000e+00 101946 -1.2333000000e+00 1.2687000000e+00 101947 -1.2029000000e+00 1.2512000000e+00 101948 -1.2033000000e+00 1.2161000000e+00 101949 -1.2036000000e+00 1.1809000000e+00 101950 -1.1729000000e+00 1.1986000000e+00 101951 -1.1733000000e+00 1.1634000000e+00 101952 -1.1736000000e+00 1.1283000000e+00 101953 -1.1433000000e+00 1.1108000000e+00 101954 -1.1131000000e+00 1.0933000000e+00 101955 -1.0829000000e+00 1.0758000000e+00 101956 -1.0526000000e+00 1.0583000000e+00 101957 -1.0528000000e+00 1.0233000000e+00 101958 -1.0224000000e+00 1.0408000000e+00 101959 -1.0225000000e+00 1.0057000000e+00 101960 -1.0529000000e+00 9.8817000000e-01 101961 -1.0529000000e+00 9.5306000000e-01 101962 -1.0832000000e+00 9.3553000000e-01 101963 -1.0832000000e+00 9.0042000000e-01 101964 -1.1134000000e+00 8.8291000000e-01 101965 -1.0831000000e+00 8.6532000000e-01 101966 1.2034000000e+00 1.8910000000e+00 101967 1.1684000000e+00 1.8910000000e+00 101968 1.1334000000e+00 1.8910000000e+00 101969 1.0984000000e+00 1.8910000000e+00 101970 1.0634000000e+00 1.8910000000e+00 101971 1.0284000000e+00 1.8910000000e+00 101972 9.9343000000e-01 1.8910000000e+00 101973 9.5844000000e-01 1.8910000000e+00 101974 9.2344000000e-01 1.8910000000e+00 101975 8.8844000000e-01 1.8910000000e+00 101976 8.5344000000e-01 1.8910000000e+00 101977 8.1843000000e-01 1.8910000000e+00 101978 7.8342000000e-01 1.8910000000e+00 101979 7.4841000000e-01 1.8910000000e+00 101980 7.1340000000e-01 1.8910000000e+00 101981 6.7840000000e-01 1.8911000000e+00 101982 6.4340000000e-01 1.8911000000e+00 101983 6.0840000000e-01 1.8911000000e+00 101984 5.7341000000e-01 1.8911000000e+00 101985 5.3841000000e-01 1.8911000000e+00 101986 5.0342000000e-01 1.8911000000e+00 101987 4.6842000000e-01 1.8911000000e+00 101988 4.3342000000e-01 1.8911000000e+00 101989 3.9842000000e-01 1.8911000000e+00 101990 3.6342000000e-01 1.8911000000e+00 101991 3.2841000000e-01 1.8911000000e+00 101992 2.9340000000e-01 1.8911000000e+00 101993 2.5839000000e-01 1.8911000000e+00 101994 2.2338000000e-01 1.8911000000e+00 101995 1.8837000000e-01 1.8911000000e+00 101996 1.5337000000e-01 1.8911000000e+00 101997 1.1836000000e-01 1.8911000000e+00 101998 8.3354000000e-02 1.8911000000e+00 101999 4.8350000000e-02 1.8911000000e+00 102000 1.3348000000e-02 1.8911000000e+00 102001 -2.1653000000e-02 1.8911000000e+00 102002 -5.6653000000e-02 1.8911000000e+00 102003 -9.1652000000e-02 1.8911000000e+00 102004 -1.2665000000e-01 1.8911000000e+00 102005 -1.6165000000e-01 1.8911000000e+00 102006 -1.9664000000e-01 1.8911000000e+00 102007 -2.3164000000e-01 1.8911000000e+00 102008 -2.6663000000e-01 1.8911000000e+00 102009 -3.0163000000e-01 1.8911000000e+00 102010 -3.3663000000e-01 1.8911000000e+00 102011 -3.7162000000e-01 1.8911000000e+00 102012 -4.0662000000e-01 1.8911000000e+00 102013 -4.4162000000e-01 1.8911000000e+00 102014 -4.7662000000e-01 1.8911000000e+00 102015 -5.1162000000e-01 1.8911000000e+00 102016 -5.4662000000e-01 1.8911000000e+00 102017 -5.8162000000e-01 1.8911000000e+00 102018 -6.1663000000e-01 1.8911000000e+00 102019 -6.5164000000e-01 1.8911000000e+00 102020 -6.8665000000e-01 1.8911000000e+00 102021 -7.2167000000e-01 1.8910000000e+00 102022 -7.5669000000e-01 1.8909000000e+00 102023 -7.9171000000e-01 1.8908000000e+00 102024 -8.2675000000e-01 1.8907000000e+00 102025 -8.6180000000e-01 1.8905000000e+00 102026 -8.9688000000e-01 1.8901000000e+00 102027 -9.3200000000e-01 1.8897000000e+00 102028 -9.6718000000e-01 1.8892000000e+00 102029 -1.0025000000e+00 1.8884000000e+00 102030 -1.0379000000e+00 1.8875000000e+00 102031 -1.0735000000e+00 1.8864000000e+00 102032 -1.1095000000e+00 1.8851000000e+00 102033 -1.1458000000e+00 1.8838000000e+00 102034 -1.1824000000e+00 1.8828000000e+00 102035 -1.2189000000e+00 1.8819000000e+00 102036 -1.2331000000e+00 1.8533000000e+00 102037 -1.2261000000e+00 1.8225000000e+00 102038 -1.2203000000e+00 1.7848000000e+00 102039 -1.2165000000e+00 1.7453000000e+00 102040 -1.2110000000e+00 1.7038000000e+00 102041 -1.2157000000e+00 1.6722000000e+00 102042 -1.1984000000e+00 1.6483000000e+00 102043 -1.1941000000e+00 1.6096000000e+00 102044 -1.1938000000e+00 1.5716000000e+00 102045 -1.1958000000e+00 1.5346000000e+00 102046 -1.1653000000e+00 1.5164000000e+00 102047 -1.1670000000e+00 1.4808000000e+00 102048 -1.1685000000e+00 1.4454000000e+00 102049 -1.1385000000e+00 1.4280000000e+00 102050 -1.1392000000e+00 1.3929000000e+00 102051 -1.1398000000e+00 1.3576000000e+00 102052 -1.1404000000e+00 1.3222000000e+00 102053 -1.1410000000e+00 1.2868000000e+00 102054 -1.1720000000e+00 1.2690000000e+00 102055 -1.1725000000e+00 1.2338000000e+00 102056 -1.1421000000e+00 1.2162000000e+00 102057 -1.1426000000e+00 1.1810000000e+00 102058 -1.1430000000e+00 1.1459000000e+00 102059 -1.1128000000e+00 1.1284000000e+00 102060 -1.0826000000e+00 1.1109000000e+00 102061 -1.0524000000e+00 1.0934000000e+00 102062 -1.0223000000e+00 1.0759000000e+00 102063 -9.9207000000e-01 1.0584000000e+00 102064 -9.9217000000e-01 1.0233000000e+00 102065 -9.9225000000e-01 9.8815000000e-01 102066 -1.0226000000e+00 9.7060000000e-01 102067 -1.0226000000e+00 9.3546000000e-01 102068 -1.0529000000e+00 9.1794000000e-01 102069 -1.0226000000e+00 9.0032000000e-01 102070 -1.0528000000e+00 8.8282000000e-01 102071 -1.0225000000e+00 8.6517000000e-01 102072 -1.0527000000e+00 8.4769000000e-01 102073 -1.0224000000e+00 8.3002000000e-01 102074 -1.0526000000e+00 8.1255000000e-01 102075 -1.0830000000e+00 8.3020000000e-01 102076 -1.0829000000e+00 7.9507000000e-01 102077 -1.0827000000e+00 7.5991000000e-01 102078 -1.0524000000e+00 7.7739000000e-01 102079 -1.0522000000e+00 7.4218000000e-01 102080 -1.0826000000e+00 7.2471000000e-01 102081 -1.1130000000e+00 7.4247000000e-01 102082 -1.0520000000e+00 7.0685000000e-01 102083 -1.0211000000e+00 6.8883000000e-01 102084 -1.0209000000e+00 6.5260000000e-01 102085 -1.0230000000e+00 6.1774000000e-01 102086 -1.0222000000e+00 7.9488000000e-01 102087 -1.0219000000e+00 7.5971000000e-01 102088 -9.9182000000e-01 7.7721000000e-01 102089 -9.9150000000e-01 7.4213000000e-01 102090 -9.6158000000e-01 7.5958000000e-01 102091 -9.6171000000e-01 7.9459000000e-01 102092 -9.3147000000e-01 7.7667000000e-01 102093 -9.3173000000e-01 7.4196000000e-01 102094 -9.6124000000e-01 7.2488000000e-01 102095 -9.9085000000e-01 7.0689000000e-01 102096 -1.0216000000e+00 7.2444000000e-01 102097 -1.3854000000e+00 1.3094000000e-01 102098 3.4224000000e+00 1.8822000000e+00 102099 3.4229000000e+00 1.9190000000e+00 102100 3.4256000000e+00 1.9497000000e+00 102101 3.3954000000e+00 1.9444000000e+00 102102 3.3588000000e+00 1.9408000000e+00 102103 3.3214000000e+00 1.9398000000e+00 102104 3.2846000000e+00 1.9385000000e+00 102105 3.2471000000e+00 1.9363000000e+00 102106 3.2058000000e+00 1.9327000000e+00 102107 3.1791000000e+00 1.9142000000e+00 102108 3.1511000000e+00 1.9147000000e+00 102109 3.1183000000e+00 1.9146000000e+00 102110 3.0839000000e+00 1.9142000000e+00 102111 3.0487000000e+00 1.9139000000e+00 102112 3.0131000000e+00 1.9139000000e+00 102113 2.9775000000e+00 1.9142000000e+00 102114 2.9418000000e+00 1.9146000000e+00 102115 2.9060000000e+00 1.9149000000e+00 102116 2.8702000000e+00 1.9153000000e+00 102117 2.8343000000e+00 1.9157000000e+00 102118 2.7984000000e+00 1.9164000000e+00 102119 2.7626000000e+00 1.9173000000e+00 102120 2.7271000000e+00 1.9182000000e+00 102121 2.6919000000e+00 1.9192000000e+00 102122 2.6569000000e+00 1.9200000000e+00 102123 2.6220000000e+00 1.9205000000e+00 102124 2.5871000000e+00 1.9208000000e+00 102125 2.5521000000e+00 1.9209000000e+00 102126 2.5170000000e+00 1.9210000000e+00 102127 2.4818000000e+00 1.9212000000e+00 102128 2.4467000000e+00 1.9215000000e+00 102129 2.4118000000e+00 1.9218000000e+00 102130 2.3771000000e+00 1.9220000000e+00 102131 2.3424000000e+00 1.9220000000e+00 102132 2.3076000000e+00 1.9219000000e+00 102133 2.2727000000e+00 1.9217000000e+00 102134 2.2377000000e+00 1.9214000000e+00 102135 2.2026000000e+00 1.9212000000e+00 102136 2.1855000000e+00 1.8906000000e+00 102137 2.1502000000e+00 1.8905000000e+00 102138 2.1150000000e+00 1.8904000000e+00 102139 2.0797000000e+00 1.8904000000e+00 102140 2.0445000000e+00 1.8904000000e+00 102141 2.0267000000e+00 1.9210000000e+00 102142 1.9915000000e+00 1.9210000000e+00 102143 1.9565000000e+00 1.9211000000e+00 102144 1.9214000000e+00 1.9212000000e+00 102145 1.8864000000e+00 1.9213000000e+00 102146 2.0093000000e+00 1.8905000000e+00 102147 1.9742000000e+00 1.8907000000e+00 102148 1.9391000000e+00 1.8908000000e+00 102149 1.9040000000e+00 1.8909000000e+00 102150 1.8690000000e+00 1.8909000000e+00 102151 2.2908000000e+00 1.8916000000e+00 102152 2.2558000000e+00 1.8912000000e+00 102153 2.2207000000e+00 1.8909000000e+00 102154 2.2038000000e+00 1.8602000000e+00 102155 2.1684000000e+00 1.8600000000e+00 102156 2.1331000000e+00 1.8598000000e+00 102157 2.0977000000e+00 1.8598000000e+00 102158 2.0624000000e+00 1.8598000000e+00 102159 2.0271000000e+00 1.8600000000e+00 102160 1.9919000000e+00 1.8601000000e+00 102161 1.9568000000e+00 1.8603000000e+00 102162 1.9217000000e+00 1.8604000000e+00 102163 1.8867000000e+00 1.8605000000e+00 102164 1.8517000000e+00 1.8606000000e+00 102165 1.8340000000e+00 1.8910000000e+00 102166 1.7989000000e+00 1.8910000000e+00 102167 1.7639000000e+00 1.8910000000e+00 102168 1.7288000000e+00 1.8910000000e+00 102169 1.7465000000e+00 1.8606000000e+00 102170 1.7114000000e+00 1.8606000000e+00 102171 1.6938000000e+00 1.8910000000e+00 102172 2.9738000000e+00 1.2151000000e-01 102173 3.0089000000e+00 1.2153000000e-01 102174 3.0263000000e+00 9.1151000000e-02 102175 3.0613000000e+00 9.1167000000e-02 102176 3.0964000000e+00 9.1189000000e-02 102177 3.0790000000e+00 1.2155000000e-01 102178 3.1141000000e+00 1.2156000000e-01 102179 -6.2907000000e-01 3.0318000000e-02 102180 -5.9415000000e-01 3.0291000000e-02 102181 -6.1151000000e-01 6.0604000000e-02 102182 -5.7672000000e-01 6.0536000000e-02 102183 -5.9398000000e-01 9.0831000000e-02 102184 -5.5938000000e-01 9.0658000000e-02 102185 -5.7638000000e-01 1.2095000000e-01 102186 -5.4216000000e-01 1.2043000000e-01 102187 -5.5841000000e-01 1.5099000000e-01 102188 -5.2512000000e-01 1.4900000000e-01 102189 -5.3823000000e-01 1.8259000000e-01 102190 -5.0938000000e-01 1.7106000000e-01 102191 -4.9391000000e-01 1.4865000000e-01 102192 -5.0867000000e-01 1.2030000000e-01 102193 -5.2504000000e-01 9.0660000000e-02 102194 -2.1210000000e-01 3.2696000000e-02 102195 -1.7421000000e-01 3.4118000000e-02 102196 -1.3347000000e-01 2.9529000000e-02 102197 -5.9329000000e-01 1.5151000000e-01 102198 -6.1112000000e-01 1.2127000000e-01 102199 -6.2878000000e-01 9.0980000000e-02 102200 -6.4603000000e-01 1.2144000000e-01 102201 -6.6368000000e-01 9.1071000000e-02 102202 -6.8097000000e-01 1.2150000000e-01 102203 -6.9861000000e-01 9.1116000000e-02 102204 -7.1589000000e-01 1.2151000000e-01 102205 -7.3352000000e-01 9.1148000000e-02 102206 -7.5076000000e-01 1.2153000000e-01 102207 -7.3318000000e-01 1.5187000000e-01 102208 -6.9831000000e-01 1.5191000000e-01 102209 -7.1567000000e-01 1.8224000000e-01 102210 -6.8080000000e-01 1.8240000000e-01 102211 -6.9829000000e-01 2.1253000000e-01 102212 -6.6352000000e-01 2.1312000000e-01 102213 -6.8150000000e-01 2.4261000000e-01 102214 -6.4710000000e-01 2.4431000000e-01 102215 -6.2780000000e-01 2.1421000000e-01 102216 -6.4566000000e-01 1.8268000000e-01 102217 -6.6334000000e-01 1.5197000000e-01 102218 4.9215000000e-01 7.1785000000e-02 102219 5.2758000000e-01 7.1790000000e-02 102220 5.6330000000e-01 7.1405000000e-02 102221 5.9795000000e-01 6.9222000000e-02 102222 6.3131000000e-01 6.8197000000e-02 102223 2.4481000000e+00 1.8175000000e-01 102224 2.4656000000e+00 2.1204000000e-01 102225 2.4831000000e+00 2.4232000000e-01 102226 2.5181000000e+00 2.4233000000e-01 102227 2.5531000000e+00 2.4235000000e-01 102228 2.5882000000e+00 2.4238000000e-01 102229 2.6057000000e+00 2.1211000000e-01 102230 2.6233000000e+00 1.8183000000e-01 102231 2.6058000000e+00 1.5152000000e-01 102232 2.6408000000e+00 1.5154000000e-01 102233 3.4612000000e+00 2.4632000000e-01 102234 3.4624000000e+00 2.8185000000e-01 102235 3.4314000000e+00 2.6534000000e-01 102236 3.4330000000e+00 3.0055000000e-01 102237 3.4636000000e+00 3.1685000000e-01 102238 2.6407000000e+00 2.1215000000e-01 102239 2.6583000000e+00 1.8186000000e-01 102240 2.6758000000e+00 1.5157000000e-01 102241 1.6435000000e+00 6.0897000000e-02 102242 3.4297000000e+00 2.2956000000e-01 102243 3.4000000000e+00 2.4916000000e-01 102244 3.4020000000e+00 2.8456000000e-01 102245 3.4041000000e+00 3.1945000000e-01 102246 3.4345000000e+00 3.3520000000e-01 102247 3.4646000000e+00 3.5135000000e-01 102248 -3.8395000000e-01 3.0581000000e-02 102249 -3.4906000000e-01 3.0252000000e-02 102250 -3.1409000000e-01 3.0501000000e-02 102251 -2.9541000000e-01 6.3460000000e-02 102252 -2.6422000000e-01 5.3361000000e-02 102253 3.4653000000e+00 3.8536000000e-01 102254 3.4654000000e+00 4.1897000000e-01 102255 3.4647000000e+00 4.5257000000e-01 102256 3.4633000000e+00 4.8672000000e-01 102257 3.4321000000e+00 5.0223000000e-01 102258 3.4304000000e+00 5.3801000000e-01 102259 3.4298000000e+00 5.7416000000e-01 102260 3.4298000000e+00 6.1009000000e-01 102261 3.4299000000e+00 6.4575000000e-01 102262 3.4301000000e+00 6.8119000000e-01 102263 3.4304000000e+00 7.1649000000e-01 102264 3.4306000000e+00 7.5171000000e-01 102265 3.4308000000e+00 7.8688000000e-01 102266 3.4310000000e+00 8.2203000000e-01 102267 3.4312000000e+00 8.5716000000e-01 102268 3.4313000000e+00 8.9227000000e-01 102269 3.4314000000e+00 9.2736000000e-01 102270 3.4316000000e+00 9.6243000000e-01 102271 3.4317000000e+00 9.9748000000e-01 102272 3.4317000000e+00 1.0325000000e+00 102273 3.4318000000e+00 1.0675000000e+00 102274 3.4318000000e+00 1.1025000000e+00 102275 3.4318000000e+00 1.1375000000e+00 102276 3.4318000000e+00 1.1725000000e+00 102277 3.4317000000e+00 1.2076000000e+00 102278 3.4317000000e+00 1.2426000000e+00 102279 3.4316000000e+00 1.2776000000e+00 102280 3.4316000000e+00 1.3127000000e+00 102281 3.4315000000e+00 1.3477000000e+00 102282 3.4313000000e+00 1.3828000000e+00 102283 3.4312000000e+00 1.4179000000e+00 102284 3.4310000000e+00 1.4531000000e+00 102285 3.4308000000e+00 1.4883000000e+00 102286 3.4306000000e+00 1.5235000000e+00 102287 3.4303000000e+00 1.5588000000e+00 102288 3.4300000000e+00 1.5941000000e+00 102289 3.4296000000e+00 1.6295000000e+00 102290 3.4291000000e+00 1.6650000000e+00 102291 3.4285000000e+00 1.7006000000e+00 102292 3.4277000000e+00 1.7363000000e+00 102293 3.4268000000e+00 1.7723000000e+00 102294 3.4257000000e+00 1.8084000000e+00 102295 3.4243000000e+00 1.8449000000e+00 102296 3.3915000000e+00 1.8642000000e+00 102297 3.3853000000e+00 1.9052000000e+00 102298 3.3437000000e+00 1.9070000000e+00 102299 3.3070000000e+00 1.9067000000e+00 102300 3.2715000000e+00 1.9046000000e+00 102301 3.2353000000e+00 1.9000000000e+00 102302 3.2011000000e+00 1.8937000000e+00 102303 3.1700000000e+00 1.8876000000e+00 102304 3.1379000000e+00 1.8852000000e+00 102305 3.1040000000e+00 1.8835000000e+00 102306 3.0689000000e+00 1.8823000000e+00 102307 3.0330000000e+00 1.8817000000e+00 102308 2.9970000000e+00 1.8820000000e+00 102309 2.9612000000e+00 1.8826000000e+00 102310 2.9254000000e+00 1.8830000000e+00 102311 2.8895000000e+00 1.8832000000e+00 102312 2.8533000000e+00 1.8836000000e+00 102313 2.8170000000e+00 1.8841000000e+00 102314 2.7808000000e+00 1.8851000000e+00 102315 2.7449000000e+00 1.8864000000e+00 102316 2.7094000000e+00 1.8878000000e+00 102317 2.6744000000e+00 1.8891000000e+00 102318 2.6397000000e+00 1.8900000000e+00 102319 2.6050000000e+00 1.8904000000e+00 102320 2.5702000000e+00 1.8904000000e+00 102321 2.5350000000e+00 1.8904000000e+00 102322 2.4996000000e+00 1.8904000000e+00 102323 2.4642000000e+00 1.8908000000e+00 102324 2.4292000000e+00 1.8914000000e+00 102325 2.3946000000e+00 1.8920000000e+00 102326 2.3601000000e+00 1.8921000000e+00 102327 2.3256000000e+00 1.8919000000e+00 102328 2.3091000000e+00 1.8617000000e+00 102329 2.2742000000e+00 1.8611000000e+00 102330 2.2391000000e+00 1.8606000000e+00 102331 2.2223000000e+00 1.8299000000e+00 102332 2.1868000000e+00 1.8294000000e+00 102333 2.1513000000e+00 1.8292000000e+00 102334 2.1158000000e+00 1.8291000000e+00 102335 2.0804000000e+00 1.8292000000e+00 102336 2.0450000000e+00 1.8293000000e+00 102337 2.0097000000e+00 1.8295000000e+00 102338 1.9745000000e+00 1.8298000000e+00 102339 1.9395000000e+00 1.8300000000e+00 102340 1.9045000000e+00 1.8301000000e+00 102341 1.8695000000e+00 1.8302000000e+00 102342 1.8345000000e+00 1.8302000000e+00 102343 1.8167000000e+00 1.8606000000e+00 102344 1.7816000000e+00 1.8606000000e+00 102345 1.7643000000e+00 1.8302000000e+00 102346 1.7292000000e+00 1.8301000000e+00 102347 1.6941000000e+00 1.8301000000e+00 102348 1.6763000000e+00 1.8606000000e+00 102349 1.6587000000e+00 1.8910000000e+00 102350 1.6236000000e+00 1.8910000000e+00 102351 1.5885000000e+00 1.8910000000e+00 102352 1.5535000000e+00 1.8910000000e+00 102353 1.5185000000e+00 1.8910000000e+00 102354 1.4834000000e+00 1.8910000000e+00 102355 1.4484000000e+00 1.8910000000e+00 102356 1.4134000000e+00 1.8910000000e+00 102357 1.3784000000e+00 1.8910000000e+00 102358 1.3434000000e+00 1.8910000000e+00 102359 1.3084000000e+00 1.8910000000e+00 102360 1.2734000000e+00 1.8910000000e+00 102361 1.2383000000e+00 1.8910000000e+00 102362 1.2209000000e+00 1.8606000000e+00 102363 1.1859000000e+00 1.8606000000e+00 102364 1.1509000000e+00 1.8606000000e+00 102365 1.1159000000e+00 1.8606000000e+00 102366 1.0809000000e+00 1.8606000000e+00 102367 1.0459000000e+00 1.8606000000e+00 102368 1.0109000000e+00 1.8606000000e+00 102369 9.7597000000e-01 1.8606000000e+00 102370 9.4098000000e-01 1.8606000000e+00 102371 9.0598000000e-01 1.8606000000e+00 102372 8.7098000000e-01 1.8606000000e+00 102373 8.3597000000e-01 1.8606000000e+00 102374 8.0095000000e-01 1.8606000000e+00 102375 7.6594000000e-01 1.8606000000e+00 102376 7.3092000000e-01 1.8607000000e+00 102377 6.9591000000e-01 1.8607000000e+00 102378 6.6091000000e-01 1.8607000000e+00 102379 6.2591000000e-01 1.8607000000e+00 102380 5.9092000000e-01 1.8608000000e+00 102381 5.5593000000e-01 1.8608000000e+00 102382 5.2094000000e-01 1.8608000000e+00 102383 4.8595000000e-01 1.8608000000e+00 102384 4.5096000000e-01 1.8608000000e+00 102385 4.1596000000e-01 1.8608000000e+00 102386 3.8095000000e-01 1.8608000000e+00 102387 3.4594000000e-01 1.8608000000e+00 102388 3.1093000000e-01 1.8608000000e+00 102389 2.7592000000e-01 1.8608000000e+00 102390 2.4090000000e-01 1.8608000000e+00 102391 2.0589000000e-01 1.8608000000e+00 102392 1.7088000000e-01 1.8608000000e+00 102393 1.3587000000e-01 1.8608000000e+00 102394 1.0086000000e-01 1.8608000000e+00 102395 6.5855000000e-02 1.8608000000e+00 102396 3.0850000000e-02 1.8608000000e+00 102397 -4.1533000000e-03 1.8608000000e+00 102398 -3.9154000000e-02 1.8608000000e+00 102399 -7.4153000000e-02 1.8608000000e+00 102400 -1.0915000000e-01 1.8608000000e+00 102401 -1.4415000000e-01 1.8608000000e+00 102402 -1.7914000000e-01 1.8608000000e+00 102403 -2.1413000000e-01 1.8608000000e+00 102404 -2.4913000000e-01 1.8608000000e+00 102405 -2.8412000000e-01 1.8608000000e+00 102406 -3.1912000000e-01 1.8608000000e+00 102407 -3.5411000000e-01 1.8608000000e+00 102408 -3.8911000000e-01 1.8608000000e+00 102409 -4.2410000000e-01 1.8608000000e+00 102410 -4.5910000000e-01 1.8608000000e+00 102411 -4.9410000000e-01 1.8608000000e+00 102412 -5.2910000000e-01 1.8608000000e+00 102413 -5.6411000000e-01 1.8608000000e+00 102414 -5.9911000000e-01 1.8608000000e+00 102415 -6.3412000000e-01 1.8608000000e+00 102416 -6.6914000000e-01 1.8608000000e+00 102417 -7.0416000000e-01 1.8607000000e+00 102418 -7.3918000000e-01 1.8607000000e+00 102419 -7.7421000000e-01 1.8606000000e+00 102420 -8.0924000000e-01 1.8604000000e+00 102421 -8.4429000000e-01 1.8602000000e+00 102422 -8.7935000000e-01 1.8599000000e+00 102423 -9.1444000000e-01 1.8595000000e+00 102424 -9.4957000000e-01 1.8589000000e+00 102425 -9.8478000000e-01 1.8582000000e+00 102426 -1.0201000000e+00 1.8572000000e+00 102427 -1.0556000000e+00 1.8560000000e+00 102428 -1.0914000000e+00 1.8545000000e+00 102429 -1.1276000000e+00 1.8526000000e+00 102430 -1.1648000000e+00 1.8504000000e+00 102431 -1.2018000000e+00 1.8506000000e+00 102432 -1.1859000000e+00 1.8126000000e+00 102433 -1.1850000000e+00 1.7702000000e+00 102434 -1.1812000000e+00 1.7327000000e+00 102435 -1.1741000000e+00 1.6995000000e+00 102436 -1.1933000000e+00 1.6784000000e+00 102437 -1.1673000000e+00 1.6680000000e+00 102438 -1.1634000000e+00 1.6327000000e+00 102439 -1.1564000000e+00 1.5917000000e+00 102440 -1.1633000000e+00 1.5521000000e+00 102441 -1.1337000000e+00 1.5338000000e+00 102442 -1.1347000000e+00 1.4983000000e+00 102443 -1.1372000000e+00 1.4629000000e+00 102444 -1.1080000000e+00 1.4456000000e+00 102445 -1.1064000000e+00 1.4794000000e+00 102446 -1.0794000000e+00 1.4628000000e+00 102447 -1.0780000000e+00 1.4296000000e+00 102448 -1.1084000000e+00 1.4110000000e+00 102449 -1.1087000000e+00 1.3757000000e+00 102450 -1.1092000000e+00 1.3403000000e+00 102451 -1.1098000000e+00 1.3047000000e+00 102452 -1.1105000000e+00 1.2692000000e+00 102453 -1.1416000000e+00 1.2515000000e+00 102454 -1.1112000000e+00 1.2339000000e+00 102455 -1.1118000000e+00 1.1986000000e+00 102456 -1.1123000000e+00 1.1635000000e+00 102457 -1.0822000000e+00 1.1459000000e+00 102458 -1.0521000000e+00 1.1284000000e+00 102459 -1.0220000000e+00 1.1109000000e+00 102460 -9.9191000000e-01 1.0934000000e+00 102461 -9.6174000000e-01 1.0761000000e+00 102462 -9.6181000000e-01 1.0409000000e+00 102463 -9.6190000000e-01 1.0057000000e+00 102464 -9.6198000000e-01 9.7051000000e-01 102465 -9.9230000000e-01 9.5298000000e-01 102466 -9.9230000000e-01 9.1781000000e-01 102467 -9.6203000000e-01 9.3531000000e-01 102468 -9.6203000000e-01 9.0012000000e-01 102469 -9.9225000000e-01 8.8265000000e-01 102470 -9.9215000000e-01 8.4748000000e-01 102471 -9.6196000000e-01 8.6494000000e-01 102472 -9.6185000000e-01 8.2975000000e-01 102473 -9.9201000000e-01 8.1233000000e-01 102474 -1.2953000000e+00 7.0794000000e-01 102475 -1.0528000000e+00 4.6330000000e-01 102476 -1.0532000000e+00 4.3052000000e-01 102477 -9.3179000000e-01 8.8239000000e-01 102478 -9.3169000000e-01 8.4718000000e-01 102479 1.4839000000e+00 1.5504000000e-01 102480 1.5021000000e+00 1.8558000000e-01 102481 1.5378000000e+00 1.8476000000e-01 102482 -9.3173000000e-01 9.5280000000e-01 102483 -9.3180000000e-01 9.1759000000e-01 102484 -9.0164000000e-01 8.9983000000e-01 102485 -9.0159000000e-01 8.6466000000e-01 102486 -8.7158000000e-01 8.8209000000e-01 102487 -8.7143000000e-01 8.4700000000e-01 102488 -9.0140000000e-01 8.2940000000e-01 102489 -9.3154000000e-01 8.1192000000e-01 102490 1.4660000000e+00 1.8676000000e-01 102491 8.8002000000e-01 4.7902000000e-02 102492 9.1458000000e-01 4.2927000000e-02 102493 9.3569000000e-01 7.0631000000e-02 102494 1.5204000000e+00 2.1581000000e-01 102495 1.5558000000e+00 2.1514000000e-01 102496 1.5737000000e+00 2.4562000000e-01 102497 1.6093000000e+00 2.4537000000e-01 102498 1.6450000000e+00 2.4489000000e-01 102499 1.6624000000e+00 2.1354000000e-01 102500 1.6796000000e+00 1.8247000000e-01 102501 1.6968000000e+00 1.5164000000e-01 102502 -5.4202000000e-01 6.0547000000e-02 102503 -5.5927000000e-01 3.0289000000e-02 102504 -5.0734000000e-01 6.0777000000e-02 102505 -5.2441000000e-01 3.0358000000e-02 102506 -4.9070000000e-01 9.1242000000e-02 102507 -4.7241000000e-01 6.1308000000e-02 102508 -4.8948000000e-01 3.0536000000e-02 102509 -4.5565000000e-01 9.2605000000e-02 102510 -4.7511000000e-01 1.2179000000e-01 102511 -4.3973000000e-01 1.2522000000e-01 102512 -4.6202000000e-01 1.5271000000e-01 102513 -5.6656000000e-02 1.8305000000e+00 102514 -9.1653000000e-02 1.8305000000e+00 102515 -1.2665000000e-01 1.8305000000e+00 102516 -1.6164000000e-01 1.8305000000e+00 102517 -1.9663000000e-01 1.8305000000e+00 102518 -2.3162000000e-01 1.8305000000e+00 102519 -2.6661000000e-01 1.8305000000e+00 102520 -3.0160000000e-01 1.8305000000e+00 102521 -3.3659000000e-01 1.8305000000e+00 102522 -3.7159000000e-01 1.8305000000e+00 102523 -4.0658000000e-01 1.8305000000e+00 102524 -4.4158000000e-01 1.8305000000e+00 102525 -4.7658000000e-01 1.8305000000e+00 102526 -5.1158000000e-01 1.8305000000e+00 102527 -5.4658000000e-01 1.8305000000e+00 102528 -5.8159000000e-01 1.8305000000e+00 102529 -6.1660000000e-01 1.8305000000e+00 102530 -6.5162000000e-01 1.8305000000e+00 102531 -6.8664000000e-01 1.8304000000e+00 102532 -7.2167000000e-01 1.8304000000e+00 102533 -7.5670000000e-01 1.8303000000e+00 102534 -7.9174000000e-01 1.8301000000e+00 102535 -8.2679000000e-01 1.8299000000e+00 102536 -8.6184000000e-01 1.8297000000e+00 102537 -8.9690000000e-01 1.8293000000e+00 102538 -9.3198000000e-01 1.8288000000e+00 102539 -9.6711000000e-01 1.8280000000e+00 102540 -1.0023000000e+00 1.8271000000e+00 102541 -1.0377000000e+00 1.8258000000e+00 102542 -1.0733000000e+00 1.8242000000e+00 102543 -1.1091000000e+00 1.8222000000e+00 102544 -1.1453000000e+00 1.8196000000e+00 102545 4.7430000000e-01 1.0171000000e-01 102546 5.0991000000e-01 1.0189000000e-01 102547 4.9209000000e-01 1.3203000000e-01 102548 5.2758000000e-01 1.3205000000e-01 102549 5.4579000000e-01 1.0200000000e-01 102550 5.6228000000e-01 1.3206000000e-01 102551 5.8416000000e-01 1.0280000000e-01 102552 -1.0198000000e+00 1.7959000000e+00 102553 -1.0551000000e+00 1.7943000000e+00 102554 -1.0907000000e+00 1.7923000000e+00 102555 -1.1265000000e+00 1.7900000000e+00 102556 -1.1581000000e+00 1.7897000000e+00 102557 -1.1479000000e+00 1.7559000000e+00 102558 -1.1530000000e+00 1.7215000000e+00 102559 -1.1387000000e+00 1.6925000000e+00 102560 2.7108000000e+00 1.5159000000e-01 102561 2.6933000000e+00 1.8190000000e-01 102562 2.7284000000e+00 1.8194000000e-01 102563 2.7459000000e+00 1.5163000000e-01 102564 2.7284000000e+00 1.2129000000e-01 102565 2.7459000000e+00 9.0971000000e-02 102566 2.7809000000e+00 9.0990000000e-02 102567 2.7634000000e+00 1.2131000000e-01 102568 2.7984000000e+00 1.2134000000e-01 102569 2.8159000000e+00 9.1011000000e-02 102570 -1.1082000000e+00 1.7599000000e+00 102571 3.3996000000e+00 6.9868000000e-01 102572 3.3999000000e+00 7.3393000000e-01 102573 3.4001000000e+00 7.6913000000e-01 102574 3.4004000000e+00 8.0430000000e-01 102575 3.4006000000e+00 8.3947000000e-01 102576 3.4008000000e+00 8.7462000000e-01 102577 3.4009000000e+00 9.0974000000e-01 102578 3.4011000000e+00 9.4485000000e-01 102579 3.4012000000e+00 9.7992000000e-01 102580 3.4013000000e+00 1.0150000000e+00 102581 3.4014000000e+00 1.0500000000e+00 102582 3.4014000000e+00 1.0850000000e+00 102583 3.4015000000e+00 1.1200000000e+00 102584 3.4015000000e+00 1.1550000000e+00 102585 3.4014000000e+00 1.1901000000e+00 102586 3.4014000000e+00 1.2251000000e+00 102587 3.4013000000e+00 1.2601000000e+00 102588 3.4012000000e+00 1.2952000000e+00 102589 3.4011000000e+00 1.3302000000e+00 102590 3.4010000000e+00 1.3654000000e+00 102591 3.4008000000e+00 1.4005000000e+00 102592 3.4006000000e+00 1.4357000000e+00 102593 3.4004000000e+00 1.4709000000e+00 102594 3.4001000000e+00 1.5061000000e+00 102595 3.3998000000e+00 1.5415000000e+00 102596 3.3994000000e+00 1.5768000000e+00 102597 3.3990000000e+00 1.6123000000e+00 102598 3.3985000000e+00 1.6478000000e+00 102599 3.3979000000e+00 1.6834000000e+00 102600 3.3971000000e+00 1.7192000000e+00 102601 3.3961000000e+00 1.7551000000e+00 102602 3.3949000000e+00 1.7912000000e+00 102603 3.3935000000e+00 1.8276000000e+00 102604 3.3614000000e+00 1.8470000000e+00 102605 3.3620000000e+00 1.8788000000e+00 102606 3.3278000000e+00 1.8709000000e+00 102607 3.2931000000e+00 1.8793000000e+00 102608 3.2618000000e+00 1.8669000000e+00 102609 3.2244000000e+00 1.8663000000e+00 102610 3.1917000000e+00 1.8613000000e+00 102611 3.1589000000e+00 1.8569000000e+00 102612 3.1251000000e+00 1.8539000000e+00 102613 3.0901000000e+00 1.8512000000e+00 102614 3.0537000000e+00 1.8490000000e+00 102615 3.0168000000e+00 1.8491000000e+00 102616 2.9807000000e+00 1.8506000000e+00 102617 2.9995000000e+00 1.8189000000e+00 102618 2.9649000000e+00 1.8197000000e+00 102619 2.9451000000e+00 1.8511000000e+00 102620 2.9092000000e+00 1.8512000000e+00 102621 2.8729000000e+00 1.8512000000e+00 102622 2.8363000000e+00 1.8515000000e+00 102623 2.7994000000e+00 1.8524000000e+00 102624 2.7628000000e+00 1.8539000000e+00 102625 2.7268000000e+00 1.8559000000e+00 102626 2.6916000000e+00 1.8579000000e+00 102627 2.6571000000e+00 1.8595000000e+00 102628 2.6229000000e+00 1.8602000000e+00 102629 2.5884000000e+00 1.8602000000e+00 102630 2.5535000000e+00 1.8599000000e+00 102631 2.5179000000e+00 1.8595000000e+00 102632 2.4819000000e+00 1.8596000000e+00 102633 2.4463000000e+00 1.8606000000e+00 102634 2.4116000000e+00 1.8619000000e+00 102635 2.3777000000e+00 1.8625000000e+00 102636 2.3436000000e+00 1.8622000000e+00 102637 2.3275000000e+00 1.8320000000e+00 102638 2.2928000000e+00 1.8312000000e+00 102639 2.3116000000e+00 1.8015000000e+00 102640 2.2766000000e+00 1.8004000000e+00 102641 2.2577000000e+00 1.8304000000e+00 102642 2.2412000000e+00 1.7995000000e+00 102643 2.2055000000e+00 1.7989000000e+00 102644 2.1698000000e+00 1.7985000000e+00 102645 2.1341000000e+00 1.7984000000e+00 102646 2.0985000000e+00 1.7983000000e+00 102647 2.0630000000e+00 1.7985000000e+00 102648 2.0275000000e+00 1.7988000000e+00 102649 1.9923000000e+00 1.7991000000e+00 102650 1.9572000000e+00 1.7995000000e+00 102651 1.9222000000e+00 1.7997000000e+00 102652 1.8873000000e+00 1.7998000000e+00 102653 1.8523000000e+00 1.7999000000e+00 102654 1.8173000000e+00 1.7998000000e+00 102655 1.7994000000e+00 1.8302000000e+00 102656 1.7823000000e+00 1.7997000000e+00 102657 1.7471000000e+00 1.7997000000e+00 102658 1.7119000000e+00 1.7996000000e+00 102659 1.6767000000e+00 1.7997000000e+00 102660 1.6589000000e+00 1.8301000000e+00 102661 1.6412000000e+00 1.8606000000e+00 102662 1.6061000000e+00 1.8606000000e+00 102663 1.5711000000e+00 1.8606000000e+00 102664 1.5360000000e+00 1.8606000000e+00 102665 1.5010000000e+00 1.8606000000e+00 102666 1.4659000000e+00 1.8606000000e+00 102667 1.4309000000e+00 1.8606000000e+00 102668 1.3959000000e+00 1.8606000000e+00 102669 1.3609000000e+00 1.8606000000e+00 102670 1.3259000000e+00 1.8606000000e+00 102671 1.2909000000e+00 1.8606000000e+00 102672 1.2559000000e+00 1.8606000000e+00 102673 1.2384000000e+00 1.8302000000e+00 102674 1.2033000000e+00 1.8302000000e+00 102675 1.1684000000e+00 1.8302000000e+00 102676 1.1334000000e+00 1.8302000000e+00 102677 1.0984000000e+00 1.8303000000e+00 102678 1.0634000000e+00 1.8303000000e+00 102679 1.0285000000e+00 1.8303000000e+00 102680 9.9349000000e-01 1.8303000000e+00 102681 9.5851000000e-01 1.8303000000e+00 102682 9.2352000000e-01 1.8303000000e+00 102683 8.8852000000e-01 1.8303000000e+00 102684 8.5351000000e-01 1.8302000000e+00 102685 8.1849000000e-01 1.8302000000e+00 102686 7.8347000000e-01 1.8303000000e+00 102687 7.4845000000e-01 1.8303000000e+00 102688 7.1343000000e-01 1.8303000000e+00 102689 6.7842000000e-01 1.8304000000e+00 102690 6.4343000000e-01 1.8304000000e+00 102691 6.0844000000e-01 1.8304000000e+00 102692 5.7345000000e-01 1.8305000000e+00 102693 5.3847000000e-01 1.8305000000e+00 102694 5.0349000000e-01 1.8305000000e+00 102695 4.6850000000e-01 1.8305000000e+00 102696 4.3350000000e-01 1.8305000000e+00 102697 3.9850000000e-01 1.8305000000e+00 102698 3.6349000000e-01 1.8305000000e+00 102699 3.2847000000e-01 1.8305000000e+00 102700 2.9345000000e-01 1.8305000000e+00 102701 2.5844000000e-01 1.8305000000e+00 102702 2.2342000000e-01 1.8305000000e+00 102703 1.8840000000e-01 1.8305000000e+00 102704 1.5339000000e-01 1.8305000000e+00 102705 1.1837000000e-01 1.8304000000e+00 102706 8.3361000000e-02 1.8304000000e+00 102707 4.8353000000e-02 1.8305000000e+00 102708 1.3347000000e-02 1.8305000000e+00 102709 -2.1656000000e-02 1.8305000000e+00 102710 -3.9160000000e-02 1.8001000000e+00 102711 -7.4158000000e-02 1.8001000000e+00 102712 -1.0915000000e-01 1.8001000000e+00 102713 -1.4414000000e-01 1.8002000000e+00 102714 -1.7913000000e-01 1.8002000000e+00 102715 -2.1412000000e-01 1.8002000000e+00 102716 -2.4910000000e-01 1.8002000000e+00 102717 -2.8409000000e-01 1.8002000000e+00 102718 -3.1907000000e-01 1.8002000000e+00 102719 -3.5406000000e-01 1.8002000000e+00 102720 -3.8905000000e-01 1.8002000000e+00 102721 -4.2405000000e-01 1.8002000000e+00 102722 -4.5904000000e-01 1.8002000000e+00 102723 -4.9404000000e-01 1.8002000000e+00 102724 -5.2905000000e-01 1.8002000000e+00 102725 -5.6405000000e-01 1.8002000000e+00 102726 -5.9907000000e-01 1.8002000000e+00 102727 -6.3409000000e-01 1.8002000000e+00 102728 -6.6911000000e-01 1.8002000000e+00 102729 -7.0415000000e-01 1.8001000000e+00 102730 -7.3919000000e-01 1.8000000000e+00 102731 -7.7424000000e-01 1.7999000000e+00 102732 -8.0929000000e-01 1.7997000000e+00 102733 -8.4434000000e-01 1.7995000000e+00 102734 -8.7939000000e-01 1.7991000000e+00 102735 -9.1444000000e-01 1.7986000000e+00 102736 -9.4950000000e-01 1.7980000000e+00 102737 -9.8459000000e-01 1.7971000000e+00 102738 -1.0020000000e+00 1.7662000000e+00 102739 -1.0370000000e+00 1.7647000000e+00 102740 -1.0722000000e+00 1.7627000000e+00 102741 -1.0885000000e+00 1.7312000000e+00 102742 -1.1233000000e+00 1.7269000000e+00 102743 -1.1034000000e+00 1.7004000000e+00 102744 -1.1138000000e+00 1.6743000000e+00 102745 -1.1361000000e+00 1.6563000000e+00 102746 -1.1283000000e+00 1.6223000000e+00 102747 -1.1165000000e+00 1.5888000000e+00 102748 -1.1350000000e+00 1.5644000000e+00 102749 -1.1052000000e+00 1.5555000000e+00 102750 -1.0985000000e+00 1.5164000000e+00 102751 3.4909000000e+00 1.9140000000e-01 102752 3.4600000000e+00 2.1012000000e-01 102753 3.4279000000e+00 1.9310000000e-01 102754 3.3978000000e+00 2.1328000000e-01 102755 3.3682000000e+00 2.3333000000e-01 102756 3.3706000000e+00 2.6882000000e-01 102757 3.3731000000e+00 3.0395000000e-01 102758 3.3756000000e+00 3.3865000000e-01 102759 3.4061000000e+00 3.5375000000e-01 102760 3.4359000000e+00 3.6920000000e-01 102761 3.4368000000e+00 4.0236000000e-01 102762 3.4366000000e+00 4.3488000000e-01 102763 3.4346000000e+00 4.6781000000e-01 102764 3.4029000000e+00 4.8144000000e-01 102765 3.3991000000e+00 5.1770000000e-01 102766 3.3983000000e+00 5.5513000000e-01 102767 3.3984000000e+00 5.9175000000e-01 102768 3.3988000000e+00 6.2774000000e-01 102769 3.3992000000e+00 6.6333000000e-01 102770 3.3687000000e+00 6.8092000000e-01 102771 3.3691000000e+00 7.1613000000e-01 102772 3.3694000000e+00 7.5132000000e-01 102773 3.3697000000e+00 7.8651000000e-01 102774 3.3699000000e+00 8.2171000000e-01 102775 3.3701000000e+00 8.5690000000e-01 102776 3.3704000000e+00 8.9207000000e-01 102777 3.3706000000e+00 9.2722000000e-01 102778 3.3707000000e+00 9.6233000000e-01 102779 3.3709000000e+00 9.9741000000e-01 102780 3.3710000000e+00 1.0325000000e+00 102781 3.3711000000e+00 1.0675000000e+00 102782 3.3711000000e+00 1.1025000000e+00 102783 3.3711000000e+00 1.1375000000e+00 102784 3.3711000000e+00 1.1725000000e+00 102785 3.3710000000e+00 1.2076000000e+00 102786 3.3710000000e+00 1.2426000000e+00 102787 3.3709000000e+00 1.2777000000e+00 102788 3.3707000000e+00 1.3128000000e+00 102789 3.3706000000e+00 1.3479000000e+00 102790 3.3704000000e+00 1.3830000000e+00 102791 3.3702000000e+00 1.4182000000e+00 102792 3.3699000000e+00 1.4535000000e+00 102793 3.3696000000e+00 1.4888000000e+00 102794 3.3693000000e+00 1.5241000000e+00 102795 3.3689000000e+00 1.5596000000e+00 102796 3.3684000000e+00 1.5951000000e+00 102797 3.3679000000e+00 1.6306000000e+00 102798 3.3673000000e+00 1.6663000000e+00 102799 3.3665000000e+00 1.7020000000e+00 102800 3.3656000000e+00 1.7379000000e+00 102801 3.3643000000e+00 1.7740000000e+00 102802 3.3629000000e+00 1.8104000000e+00 102803 3.3304000000e+00 1.8300000000e+00 102804 3.0440000000e+00 1.2155000000e-01 102805 3.0617000000e+00 1.5195000000e-01 102806 3.0968000000e+00 1.5192000000e-01 102807 3.1318000000e+00 1.5186000000e-01 102808 3.1490000000e+00 1.2158000000e-01 102809 1.6978000000e+00 2.1272000000e-01 102810 1.7148000000e+00 1.8175000000e-01 102811 1.7319000000e+00 1.5106000000e-01 102812 1.7141000000e+00 1.2102000000e-01 102813 1.7499000000e+00 1.8099000000e-01 102814 1.7848000000e+00 1.8023000000e-01 102815 1.8194000000e+00 1.7952000000e-01 102816 1.8363000000e+00 1.4949000000e-01 102817 1.8027000000e+00 2.0977000000e-01 102818 1.8371000000e+00 2.0885000000e-01 102819 1.8538000000e+00 1.7897000000e-01 102820 1.8708000000e+00 1.4921000000e-01 102821 1.8535000000e+00 1.1956000000e-01 102822 1.8360000000e+00 8.9799000000e-02 102823 1.8708000000e+00 8.9674000000e-02 102824 3.3324000000e+00 1.7929000000e+00 102825 3.3004000000e+00 1.8115000000e+00 102826 3.2971000000e+00 1.8479000000e+00 102827 3.2688000000e+00 1.8290000000e+00 102828 3.2421000000e+00 1.8418000000e+00 102829 3.2145000000e+00 1.8346000000e+00 102830 3.1814000000e+00 1.8288000000e+00 102831 3.1472000000e+00 1.8252000000e+00 102832 3.1126000000e+00 1.8213000000e+00 102833 3.0765000000e+00 1.8173000000e+00 102834 3.0370000000e+00 1.8125000000e+00 102835 3.0131000000e+00 1.7920000000e+00 102836 2.9848000000e+00 1.7896000000e+00 102837 2.9501000000e+00 1.7885000000e+00 102838 2.9294000000e+00 1.8195000000e+00 102839 2.9142000000e+00 1.7873000000e+00 102840 2.8932000000e+00 1.8191000000e+00 102841 4.3855000000e-01 1.0120000000e-01 102842 4.5633000000e-01 1.3192000000e-01 102843 4.1958000000e-01 1.3172000000e-01 102844 4.3897000000e-01 1.6255000000e-01 102845 4.7453000000e-01 1.6232000000e-01 102846 5.1000000000e-01 1.6229000000e-01 102847 4.9246000000e-01 1.9257000000e-01 102848 5.2798000000e-01 1.9273000000e-01 102849 5.0997000000e-01 2.2304000000e-01 102850 5.4527000000e-01 2.2359000000e-01 102851 5.6478000000e-01 1.9285000000e-01 102852 5.2723000000e-01 2.5336000000e-01 102853 5.5764000000e-01 2.5089000000e-01 102854 5.8411000000e-01 2.2867000000e-01 102855 6.0582000000e-01 1.8987000000e-01 102856 5.8015000000e-01 1.6025000000e-01 102857 5.4545000000e-01 1.6204000000e-01 102858 4.9200000000e-01 2.5341000000e-01 102859 5.0959000000e-01 2.8860000000e-01 102860 5.4896000000e-01 2.8062000000e-01 102861 1.2356000000e+00 7.8209000000e-02 102862 1.2565000000e+00 1.2947000000e-01 102863 1.2884000000e+00 1.5330000000e-01 102864 1.3215000000e+00 1.5886000000e-01 102865 1.3458000000e+00 1.8023000000e-01 102866 1.3869000000e+00 1.9166000000e-01 102867 1.4288000000e+00 1.8857000000e-01 102868 1.4492000000e+00 2.1869000000e-01 102869 1.4849000000e+00 2.1689000000e-01 102870 1.5031000000e+00 2.4667000000e-01 102871 1.5383000000e+00 2.4596000000e-01 102872 1.5559000000e+00 2.7624000000e-01 102873 1.5209000000e+00 2.7645000000e-01 102874 1.5382000000e+00 3.0632000000e-01 102875 1.5036000000e+00 3.0656000000e-01 102876 1.5207000000e+00 3.3603000000e-01 102877 1.4863000000e+00 3.3650000000e-01 102878 1.5035000000e+00 3.6590000000e-01 102879 1.5376000000e+00 3.6509000000e-01 102880 1.5549000000e+00 3.3599000000e-01 102881 1.5731000000e+00 3.0679000000e-01 102882 1.5914000000e+00 2.7647000000e-01 102883 1.6274000000e+00 2.7656000000e-01 102884 1.4862000000e+00 2.7711000000e-01 102885 1.4692000000e+00 3.0708000000e-01 102886 1.4518000000e+00 3.3690000000e-01 102887 1.4690000000e+00 3.6666000000e-01 102888 1.4865000000e+00 3.9632000000e-01 102889 1.5211000000e+00 3.9501000000e-01 102890 1.5045000000e+00 4.2578000000e-01 102891 1.5392000000e+00 4.2380000000e-01 102892 1.5550000000e+00 3.9333000000e-01 102893 3.4910000000e+00 1.5479000000e-01 102894 3.4590000000e+00 1.7266000000e-01 102895 3.4254000000e+00 1.5589000000e-01 102896 3.3952000000e+00 1.7704000000e-01 102897 3.3655000000e+00 1.9746000000e-01 102898 3.3362000000e+00 2.1790000000e-01 102899 3.3389000000e+00 2.5331000000e-01 102900 3.3416000000e+00 2.8855000000e-01 102901 3.3444000000e+00 3.2357000000e-01 102902 3.3474000000e+00 3.5831000000e-01 102903 3.3783000000e+00 3.7280000000e-01 102904 3.4081000000e+00 3.8709000000e-01 102905 3.4097000000e+00 4.1858000000e-01 102906 3.4082000000e+00 4.4891000000e-01 102907 3.3783000000e+00 4.5823000000e-01 102908 3.3651000000e+00 4.9364000000e-01 102909 3.3657000000e+00 5.3563000000e-01 102910 3.3665000000e+00 5.7343000000e-01 102911 3.3673000000e+00 6.0986000000e-01 102912 3.3681000000e+00 6.4557000000e-01 102913 3.3377000000e+00 6.6334000000e-01 102914 3.3383000000e+00 6.9838000000e-01 102915 3.3386000000e+00 7.3347000000e-01 102916 3.3389000000e+00 7.6864000000e-01 102917 3.3392000000e+00 8.0386000000e-01 102918 3.3394000000e+00 8.3910000000e-01 102919 3.3397000000e+00 8.7433000000e-01 102920 3.3399000000e+00 9.0954000000e-01 102921 3.3402000000e+00 9.4471000000e-01 102922 3.3404000000e+00 9.7983000000e-01 102923 3.3405000000e+00 1.0149000000e+00 102924 3.3407000000e+00 1.0500000000e+00 102925 3.3407000000e+00 1.0850000000e+00 102926 3.3408000000e+00 1.1200000000e+00 102927 3.3407000000e+00 1.1550000000e+00 102928 3.3407000000e+00 1.1901000000e+00 102929 3.3406000000e+00 1.2251000000e+00 102930 3.3405000000e+00 1.2602000000e+00 102931 3.3404000000e+00 1.2953000000e+00 102932 3.3402000000e+00 1.3304000000e+00 102933 3.3400000000e+00 1.3656000000e+00 102934 3.3397000000e+00 1.4008000000e+00 102935 3.3394000000e+00 1.4361000000e+00 102936 3.3391000000e+00 1.4714000000e+00 102937 3.3387000000e+00 1.5068000000e+00 102938 3.3383000000e+00 1.5423000000e+00 102939 3.3378000000e+00 1.5779000000e+00 102940 3.3373000000e+00 1.6135000000e+00 102941 3.3367000000e+00 1.6492000000e+00 102942 3.3360000000e+00 1.6849000000e+00 102943 3.3351000000e+00 1.7207000000e+00 102944 3.3340000000e+00 1.7567000000e+00 102945 3.3023000000e+00 1.7754000000e+00 102946 3.2709000000e+00 1.7939000000e+00 102947 3.2406000000e+00 1.8123000000e+00 102948 3.2065000000e+00 1.7976000000e+00 102949 3.1694000000e+00 1.7974000000e+00 102950 3.1359000000e+00 1.7929000000e+00 102951 3.1009000000e+00 1.7876000000e+00 102952 3.0647000000e+00 1.7824000000e+00 102953 3.0348000000e+00 1.7787000000e+00 102954 3.0097000000e+00 1.7603000000e+00 102955 2.9717000000e+00 1.7583000000e+00 102956 2.9358000000e+00 1.7564000000e+00 102957 2.8994000000e+00 1.7544000000e+00 102958 2.8774000000e+00 1.7862000000e+00 102959 2.8563000000e+00 1.8187000000e+00 102960 2.8188000000e+00 1.8189000000e+00 102961 2.7811000000e+00 1.8203000000e+00 102962 2.7441000000e+00 1.8230000000e+00 102963 2.7083000000e+00 1.8262000000e+00 102964 2.7243000000e+00 1.7934000000e+00 102965 2.6892000000e+00 1.7976000000e+00 102966 2.6738000000e+00 1.8289000000e+00 102967 2.6403000000e+00 1.8305000000e+00 102968 2.6068000000e+00 1.8305000000e+00 102969 2.5724000000e+00 1.8297000000e+00 102970 2.5369000000e+00 1.8287000000e+00 102971 2.5005000000e+00 1.8281000000e+00 102972 2.4632000000e+00 1.8282000000e+00 102973 2.4275000000e+00 1.8313000000e+00 102974 2.3947000000e+00 1.8337000000e+00 102975 2.3617000000e+00 1.8330000000e+00 102976 2.3464000000e+00 1.8024000000e+00 102977 2.3305000000e+00 1.7725000000e+00 102978 2.2961000000e+00 1.7706000000e+00 102979 2.2605000000e+00 1.7690000000e+00 102980 2.2245000000e+00 1.7682000000e+00 102981 2.1885000000e+00 1.7677000000e+00 102982 2.1526000000e+00 1.7675000000e+00 102983 2.1168000000e+00 1.7674000000e+00 102984 2.0811000000e+00 1.7675000000e+00 102985 2.0454000000e+00 1.7678000000e+00 102986 2.0100000000e+00 1.7683000000e+00 102987 1.9748000000e+00 1.7688000000e+00 102988 1.9399000000e+00 1.7693000000e+00 102989 1.9050000000e+00 1.7695000000e+00 102990 1.8702000000e+00 1.7696000000e+00 102991 1.8353000000e+00 1.7695000000e+00 102992 1.8003000000e+00 1.7693000000e+00 102993 1.7651000000e+00 1.7692000000e+00 102994 1.7298000000e+00 1.7691000000e+00 102995 1.6945000000e+00 1.7691000000e+00 102996 1.6592000000e+00 1.7692000000e+00 102997 1.6415000000e+00 1.7997000000e+00 102998 1.6238000000e+00 1.8302000000e+00 102999 1.5887000000e+00 1.8302000000e+00 103000 1.5536000000e+00 1.8302000000e+00 103001 1.5185000000e+00 1.8302000000e+00 103002 1.4835000000e+00 1.8302000000e+00 103003 2.0593000000e-01 1.8001000000e+00 103004 1.7091000000e-01 1.8001000000e+00 103005 1.3589000000e-01 1.8001000000e+00 103006 1.0087000000e-01 1.8001000000e+00 103007 6.5859000000e-02 1.8001000000e+00 103008 3.0848000000e-02 1.8001000000e+00 103009 -4.1582000000e-03 1.8001000000e+00 103010 -2.1667000000e-02 1.7698000000e+00 103011 -5.6667000000e-02 1.7698000000e+00 103012 -9.1661000000e-02 1.7698000000e+00 103013 -1.2665000000e-01 1.7698000000e+00 103014 -1.6163000000e-01 1.7698000000e+00 103015 -1.9661000000e-01 1.7698000000e+00 103016 -2.3159000000e-01 1.7699000000e+00 103017 -2.6657000000e-01 1.7699000000e+00 103018 -3.0155000000e-01 1.7699000000e+00 103019 -3.3653000000e-01 1.7699000000e+00 103020 -3.7152000000e-01 1.7699000000e+00 103021 -4.0651000000e-01 1.7699000000e+00 103022 -4.4150000000e-01 1.7699000000e+00 103023 -4.7650000000e-01 1.7699000000e+00 103024 -5.1150000000e-01 1.7699000000e+00 103025 -5.4651000000e-01 1.7699000000e+00 103026 -5.8152000000e-01 1.7699000000e+00 103027 -6.1654000000e-01 1.7699000000e+00 103028 -6.5157000000e-01 1.7699000000e+00 103029 -6.8661000000e-01 1.7698000000e+00 103030 -7.2167000000e-01 1.7697000000e+00 103031 -7.5673000000e-01 1.7696000000e+00 103032 -7.9180000000e-01 1.7695000000e+00 103033 -8.2687000000e-01 1.7693000000e+00 103034 -8.6192000000e-01 1.7690000000e+00 103035 -8.9696000000e-01 1.7686000000e+00 103036 -9.3198000000e-01 1.7680000000e+00 103037 -9.6697000000e-01 1.7672000000e+00 103038 -9.8437000000e-01 1.7365000000e+00 103039 -1.0192000000e+00 1.7353000000e+00 103040 -1.0539000000e+00 1.7337000000e+00 103041 -1.0702000000e+00 1.7031000000e+00 103042 -8.7954000000e-01 1.7385000000e+00 103043 -9.1455000000e-01 1.7380000000e+00 103044 -9.4950000000e-01 1.7374000000e+00 103045 -9.6700000000e-01 1.7068000000e+00 103046 -1.0017000000e+00 1.7059000000e+00 103047 -1.0362000000e+00 1.7047000000e+00 103048 -1.0532000000e+00 1.6745000000e+00 103049 -1.0861000000e+00 1.6742000000e+00 103050 -1.1047000000e+00 1.6481000000e+00 103051 -1.0928000000e+00 1.6162000000e+00 103052 -1.0812000000e+00 1.5827000000e+00 103053 -1.0190000000e+00 1.6754000000e+00 103054 -1.0365000000e+00 1.6446000000e+00 103055 -1.0714000000e+00 1.6447000000e+00 103056 -1.0548000000e+00 1.6105000000e+00 103057 -1.0519000000e+00 1.5782000000e+00 103058 -1.0661000000e+00 1.5470000000e+00 103059 -1.0627000000e+00 1.5104000000e+00 103060 -1.0805000000e+00 1.4902000000e+00 103061 -1.0552000000e+00 1.4820000000e+00 103062 -1.0484000000e+00 1.4502000000e+00 103063 -1.0460000000e+00 1.4136000000e+00 103064 -1.0776000000e+00 1.3942000000e+00 103065 -1.0780000000e+00 1.3585000000e+00 103066 -1.0785000000e+00 1.3228000000e+00 103067 -1.0792000000e+00 1.2871000000e+00 103068 -1.0800000000e+00 1.2515000000e+00 103069 -1.0466000000e+00 1.3771000000e+00 103070 -1.0470000000e+00 1.3411000000e+00 103071 -1.0475000000e+00 1.3051000000e+00 103072 -1.0485000000e+00 1.2692000000e+00 103073 -1.0496000000e+00 1.2336000000e+00 103074 -1.0808000000e+00 1.2162000000e+00 103075 -1.0816000000e+00 1.1810000000e+00 103076 -1.0515000000e+00 1.1634000000e+00 103077 -1.0216000000e+00 1.1458000000e+00 103078 -9.9166000000e-01 1.1283000000e+00 103079 -9.6167000000e-01 1.1110000000e+00 103080 -9.3145000000e-01 1.0938000000e+00 103081 -9.3142000000e-01 1.0586000000e+00 103082 -9.3149000000e-01 1.0233000000e+00 103083 -9.3161000000e-01 9.8805000000e-01 103084 -9.0115000000e-01 1.0056000000e+00 103085 -9.0137000000e-01 9.7026000000e-01 103086 -1.0134000000e+00 3.1057000000e-02 103087 -9.7860000000e-01 3.0810000000e-02 103088 -1.0483000000e+00 3.1648000000e-02 103089 -1.0298000000e+00 6.2256000000e-02 103090 -9.9539000000e-01 6.1627000000e-02 103091 -9.0097000000e-01 1.0765000000e+00 103092 -9.0098000000e-01 1.0410000000e+00 103093 1.0967000000e+00 1.5734000000e-01 103094 1.1209000000e+00 1.4242000000e-01 103095 -9.4372000000e-01 3.0715000000e-02 103096 -9.0877000000e-01 3.0647000000e-02 103097 1.6260000000e+00 9.1529000000e-02 103098 -1.0646000000e+00 6.4047000000e-02 103099 -1.0998000000e+00 6.5588000000e-02 103100 -1.1344000000e+00 6.7772000000e-02 103101 -1.1164000000e+00 9.6089000000e-02 103102 -1.0808000000e+00 9.9185000000e-02 103103 -1.0453000000e+00 9.3079000000e-02 103104 -1.0120000000e+00 9.2080000000e-02 103105 -9.7778000000e-01 9.2097000000e-02 103106 -9.9513000000e-01 1.2216000000e-01 103107 -9.6153000000e-01 1.1458000000e+00 103108 -9.3160000000e-01 1.1287000000e+00 103109 -9.0124000000e-01 1.1118000000e+00 103110 -8.7037000000e-01 1.0946000000e+00 103111 -8.7026000000e-01 1.0588000000e+00 103112 -8.7052000000e-01 1.0232000000e+00 103113 -1.0564000000e+00 1.1965000000e-01 103114 -1.0283000000e+00 1.2126000000e-01 103115 -1.0480000000e+00 1.5015000000e-01 103116 -1.0132000000e+00 1.5042000000e-01 103117 -9.7900000000e-01 1.5405000000e-01 103118 -9.6045000000e-01 1.2308000000e-01 103119 -9.4259000000e-01 1.5498000000e-01 103120 -9.2516000000e-01 1.2300000000e-01 103121 -9.0682000000e-01 1.5334000000e-01 103122 -8.9005000000e-01 1.2245000000e-01 103123 -9.0801000000e-01 9.1984000000e-02 103124 -9.4300000000e-01 9.2165000000e-02 103125 -9.2586000000e-01 6.1367000000e-02 103126 -9.6073000000e-01 6.1464000000e-02 103127 -8.7305000000e-01 9.1704000000e-02 103128 -8.9091000000e-01 6.1224000000e-02 103129 -6.8132000000e-01 6.0720000000e-02 103130 -7.1626000000e-01 6.0753000000e-02 103131 -9.6009000000e-01 6.9030000000e-01 103132 -9.3174000000e-01 7.0836000000e-01 103133 -9.3004000000e-01 6.7561000000e-01 103134 -9.0414000000e-01 6.9319000000e-01 103135 -9.0325000000e-01 7.2416000000e-01 103136 -9.0164000000e-01 6.6306000000e-01 103137 -9.2553000000e-01 6.4342000000e-01 103138 -9.5713000000e-01 6.5530000000e-01 103139 1.7679000000e+00 2.1076000000e-01 103140 1.7861000000e+00 2.4034000000e-01 103141 1.8208000000e+00 2.3906000000e-01 103142 1.8549000000e+00 2.3777000000e-01 103143 1.8712000000e+00 2.0814000000e-01 103144 1.8880000000e+00 1.7869000000e-01 103145 1.9052000000e+00 1.4916000000e-01 103146 1.8881000000e+00 1.1945000000e-01 103147 1.9055000000e+00 8.9651000000e-02 103148 -8.4167000000e-01 8.6448000000e-01 103149 -8.4160000000e-01 8.9937000000e-01 103150 -8.7149000000e-01 9.1718000000e-01 103151 -8.4129000000e-01 9.3438000000e-01 103152 -8.7124000000e-01 9.5236000000e-01 103153 -8.4080000000e-01 9.6958000000e-01 103154 -8.1096000000e-01 9.5137000000e-01 103155 -8.1159000000e-01 9.1638000000e-01 103156 -8.1199000000e-01 8.8164000000e-01 103157 -8.1203000000e-01 8.4713000000e-01 103158 -7.8277000000e-01 8.6405000000e-01 103159 -7.8286000000e-01 8.3017000000e-01 103160 -8.1149000000e-01 8.1280000000e-01 103161 -8.4135000000e-01 8.2962000000e-01 103162 4.5740000000e-01 1.9252000000e-01 103163 4.7496000000e-01 2.2255000000e-01 103164 4.4063000000e-01 2.2213000000e-01 103165 4.2293000000e-01 1.9298000000e-01 103166 4.0726000000e-01 2.2219000000e-01 103167 3.9026000000e-01 1.9468000000e-01 103168 4.0315000000e-01 1.6381000000e-01 103169 3.6943000000e-01 1.6991000000e-01 103170 3.6388000000e-01 1.9715000000e-01 103171 3.7503000000e-01 2.2202000000e-01 103172 3.4409000000e-01 2.1546000000e-01 103173 3.5389000000e-01 2.5213000000e-01 103174 3.9089000000e-01 2.5047000000e-01 103175 3.7810000000e-01 2.7649000000e-01 103176 4.0723000000e-01 2.7908000000e-01 103177 4.2391000000e-01 2.5085000000e-01 103178 4.4013000000e-01 2.7959000000e-01 103179 4.2385000000e-01 3.0759000000e-01 103180 4.5741000000e-01 2.5164000000e-01 103181 1.4682000000e+00 2.4790000000e-01 103182 1.4520000000e+00 2.7813000000e-01 103183 1.4352000000e+00 3.0742000000e-01 103184 1.4172000000e+00 3.3674000000e-01 103185 1.4341000000e+00 3.6712000000e-01 103186 1.3988000000e+00 3.6719000000e-01 103187 1.4161000000e+00 3.9802000000e-01 103188 1.4515000000e+00 3.9733000000e-01 103189 1.4133000000e+00 2.2210000000e-01 103190 1.4339000000e+00 2.5000000000e-01 103191 3.4790000000e+00 9.4652000000e-02 103192 1.3817000000e+00 3.3547000000e-01 103193 1.4016000000e+00 3.0643000000e-01 103194 1.3647000000e+00 2.9942000000e-01 103195 1.3450000000e+00 3.3572000000e-01 103196 1.3631000000e+00 3.6739000000e-01 103197 3.4423000000e+00 9.2942000000e-02 103198 3.4586000000e+00 1.3062000000e-01 103199 3.4939000000e+00 1.2296000000e-01 103200 3.4196000000e+00 1.2042000000e-01 103201 3.3923000000e+00 1.4147000000e-01 103202 3.3626000000e+00 1.6102000000e-01 103203 3.3330000000e+00 1.8214000000e-01 103204 3.3042000000e+00 2.0307000000e-01 103205 3.3072000000e+00 2.3804000000e-01 103206 3.3098000000e+00 2.7317000000e-01 103207 3.3127000000e+00 3.0844000000e-01 103208 3.3160000000e+00 3.4343000000e-01 103209 3.3193000000e+00 3.7817000000e-01 103210 3.3510000000e+00 3.9314000000e-01 103211 3.3225000000e+00 4.1323000000e-01 103212 3.3564000000e+00 4.3045000000e-01 103213 3.3817000000e+00 4.0576000000e-01 103214 1.3798000000e+00 2.2977000000e-01 103215 1.4014000000e+00 2.5392000000e-01 103216 1.4193000000e+00 2.7934000000e-01 103217 -1.2935000000e+00 2.1832000000e-01 103218 -1.2624000000e+00 2.0077000000e-01 103219 -1.2313000000e+00 1.8306000000e-01 103220 -1.2308000000e+00 1.4771000000e-01 103221 -1.2000000000e+00 1.6517000000e-01 103222 -1.2006000000e+00 2.0073000000e-01 103223 -1.1694000000e+00 1.8297000000e-01 103224 -1.1685000000e+00 1.4693000000e-01 103225 -1.1380000000e+00 1.6524000000e-01 103226 -1.1353000000e+00 1.2674000000e-01 103227 -1.1688000000e+00 1.1182000000e-01 103228 -1.1444000000e+00 9.5981000000e-02 103229 -1.1669000000e+00 7.7498000000e-02 103230 -1.1984000000e+00 9.4119000000e-02 103231 -1.1957000000e+00 5.7737000000e-02 103232 -1.2292000000e+00 7.5817000000e-02 103233 -1.2277000000e+00 3.5303000000e-02 103234 -1.1922000000e+00 2.6122000000e-02 103235 -1.2662000000e+00 2.7297000000e-02 103236 -1.2619000000e+00 6.0154000000e-02 103237 -1.2943000000e+00 4.7288000000e-02 103238 -1.2951000000e+00 2.1040000000e-02 103239 -1.2614000000e+00 9.5398000000e-02 103240 -1.2301000000e+00 1.1220000000e-01 103241 -1.1995000000e+00 1.2965000000e-01 103242 3.1591000000e+00 1.7669000000e+00 103243 3.1261000000e+00 1.7593000000e+00 103244 3.0899000000e+00 1.7523000000e+00 103245 3.0494000000e+00 1.7465000000e+00 103246 3.0218000000e+00 1.7288000000e+00 103247 2.9923000000e+00 1.7286000000e+00 103248 2.9578000000e+00 1.7262000000e+00 103249 2.9221000000e+00 1.7234000000e+00 103250 2.8854000000e+00 1.7205000000e+00 103251 2.8620000000e+00 1.7523000000e+00 103252 2.8396000000e+00 1.7853000000e+00 103253 2.8228000000e+00 1.7502000000e+00 103254 2.8004000000e+00 1.7851000000e+00 103255 2.7613000000e+00 1.7882000000e+00 103256 2.7393000000e+00 1.7596000000e+00 103257 2.7038000000e+00 1.7652000000e+00 103258 2.6691000000e+00 1.7706000000e+00 103259 2.6563000000e+00 1.8013000000e+00 103260 2.6249000000e+00 1.8021000000e+00 103261 2.5919000000e+00 1.8002000000e+00 103262 2.5569000000e+00 1.7984000000e+00 103263 2.5205000000e+00 1.7967000000e+00 103264 2.4826000000e+00 1.7953000000e+00 103265 2.4402000000e+00 1.7942000000e+00 103266 2.4092000000e+00 1.8089000000e+00 103267 2.3804000000e+00 1.8048000000e+00 103268 2.3668000000e+00 1.7707000000e+00 103269 2.3454000000e+00 1.7482000000e+00 103270 2.3169000000e+00 1.7417000000e+00 103271 2.2807000000e+00 1.7383000000e+00 103272 2.2440000000e+00 1.7373000000e+00 103273 2.2076000000e+00 1.7366000000e+00 103274 2.1712000000e+00 1.7364000000e+00 103275 2.1352000000e+00 1.7364000000e+00 103276 2.0993000000e+00 1.7364000000e+00 103277 2.0635000000e+00 1.7366000000e+00 103278 6.6093000000e-01 1.8000000000e+00 103279 6.2594000000e-01 1.8001000000e+00 103280 5.9097000000e-01 1.8001000000e+00 103281 5.5599000000e-01 1.8002000000e+00 103282 5.2102000000e-01 1.8002000000e+00 103283 4.8605000000e-01 1.8002000000e+00 103284 4.5106000000e-01 1.8002000000e+00 103285 4.1606000000e-01 1.8002000000e+00 103286 3.8105000000e-01 1.8002000000e+00 103287 3.4603000000e-01 1.8001000000e+00 103288 3.1101000000e-01 1.8001000000e+00 103289 2.7598000000e-01 1.8001000000e+00 103290 2.4096000000e-01 1.8001000000e+00 103291 2.2348000000e-01 1.7698000000e+00 103292 1.8844000000e-01 1.7698000000e+00 103293 1.5342000000e-01 1.7698000000e+00 103294 1.1839000000e-01 1.7698000000e+00 103295 8.3369000000e-02 1.7698000000e+00 103296 4.8352000000e-02 1.7698000000e+00 103297 1.3339000000e-02 1.7698000000e+00 103298 -4.1746000000e-03 1.7394000000e+00 103299 -3.9180000000e-02 1.7394000000e+00 103300 -7.4176000000e-02 1.7395000000e+00 103301 -1.0916000000e-01 1.7395000000e+00 103302 -1.4414000000e-01 1.7395000000e+00 103303 -1.7911000000e-01 1.7395000000e+00 103304 -2.1408000000e-01 1.7395000000e+00 103305 -2.4905000000e-01 1.7396000000e+00 103306 -2.8402000000e-01 1.7396000000e+00 103307 -3.1900000000e-01 1.7396000000e+00 103308 -3.5398000000e-01 1.7396000000e+00 103309 -3.8896000000e-01 1.7396000000e+00 103310 -4.2395000000e-01 1.7396000000e+00 103311 -4.5894000000e-01 1.7396000000e+00 103312 -4.9394000000e-01 1.7397000000e+00 103313 -5.2894000000e-01 1.7397000000e+00 103314 -5.6395000000e-01 1.7397000000e+00 103315 -5.9898000000e-01 1.7396000000e+00 103316 -6.3401000000e-01 1.7396000000e+00 103317 -6.6906000000e-01 1.7396000000e+00 103318 -7.0412000000e-01 1.7395000000e+00 103319 -7.3920000000e-01 1.7394000000e+00 103320 -7.7430000000e-01 1.7392000000e+00 103321 -8.0939000000e-01 1.7390000000e+00 103322 -8.4448000000e-01 1.7388000000e+00 103323 -8.6216000000e-01 1.7083000000e+00 103324 -8.9721000000e-01 1.7080000000e+00 103325 -9.3217000000e-01 1.7075000000e+00 103326 -9.4984000000e-01 1.6771000000e+00 103327 -9.8450000000e-01 1.6764000000e+00 103328 -1.0020000000e+00 1.6462000000e+00 103329 -1.0188000000e+00 1.6163000000e+00 103330 -4.5439000000e-01 3.0767000000e-02 103331 -4.1914000000e-01 3.0842000000e-02 103332 -4.0119000000e-01 6.1780000000e-02 103333 -3.6601000000e-01 6.0600000000e-02 103334 -3.8209000000e-01 9.2582000000e-02 103335 -3.4782000000e-01 8.8560000000e-02 103336 -3.3198000000e-01 5.9811000000e-02 103337 -8.2104000000e-01 6.0939000000e-02 103338 -8.0328000000e-01 9.1298000000e-02 103339 -8.3815000000e-01 9.1465000000e-02 103340 -8.2037000000e-01 1.2175000000e-01 103341 -7.8558000000e-01 1.2159000000e-01 103342 -8.0268000000e-01 1.5191000000e-01 103343 -7.6798000000e-01 1.5185000000e-01 103344 -7.5050000000e-01 1.8221000000e-01 103345 -7.3294000000e-01 2.1251000000e-01 103346 -7.6806000000e-01 2.1275000000e-01 103347 -7.4982000000e-01 2.4305000000e-01 103348 -7.1534000000e-01 2.4231000000e-01 103349 -1.0208000000e+00 1.1806000000e+00 103350 -9.9119000000e-01 1.1630000000e+00 103351 -9.6115000000e-01 1.1801000000e+00 103352 -9.3181000000e-01 1.1632000000e+00 103353 -9.0185000000e-01 1.1467000000e+00 103354 -8.7111000000e-01 1.1302000000e+00 103355 -8.3947000000e-01 1.1133000000e+00 103356 -8.3911000000e-01 1.0769000000e+00 103357 -8.3956000000e-01 1.0408000000e+00 103358 -8.4020000000e-01 1.0050000000e+00 103359 -8.7089000000e-01 9.8767000000e-01 103360 -8.1016000000e-01 9.8662000000e-01 103361 -7.8045000000e-01 9.6810000000e-01 103362 -7.8142000000e-01 9.3309000000e-01 103363 -7.7930000000e-01 1.0034000000e+00 103364 -7.4978000000e-01 9.8456000000e-01 103365 -7.4834000000e-01 1.0197000000e+00 103366 -7.7784000000e-01 1.0390000000e+00 103367 -8.0919000000e-01 1.0222000000e+00 103368 -8.0805000000e-01 1.0583000000e+00 103369 -7.7563000000e-01 1.0755000000e+00 103370 -7.4647000000e-01 1.0549000000e+00 103371 -7.4354000000e-01 1.0893000000e+00 103372 -7.1590000000e-01 1.0699000000e+00 103373 -7.1755000000e-01 1.0356000000e+00 103374 -8.0689000000e-01 1.0955000000e+00 103375 -7.7091000000e-01 1.1158000000e+00 103376 -7.3797000000e-01 1.1170000000e+00 103377 -7.1432000000e-01 1.1023000000e+00 103378 -6.8635000000e-01 1.0856000000e+00 103379 -6.8714000000e-01 1.0516000000e+00 103380 -6.8833000000e-01 1.0169000000e+00 103381 -6.5770000000e-01 1.0333000000e+00 103382 -6.5884000000e-01 9.9827000000e-01 103383 -6.2788000000e-01 1.0148000000e+00 103384 -6.2694000000e-01 1.0502000000e+00 103385 -5.9669000000e-01 1.0316000000e+00 103386 -5.9793000000e-01 9.9604000000e-01 103387 -6.2914000000e-01 9.7945000000e-01 103388 -5.9925000000e-01 9.6046000000e-01 103389 -6.3063000000e-01 9.4397000000e-01 103390 -6.6024000000e-01 9.6306000000e-01 103391 1.1509000000e+00 1.7998000000e+00 103392 1.1159000000e+00 1.7999000000e+00 103393 1.0809000000e+00 1.7999000000e+00 103394 1.0460000000e+00 1.7999000000e+00 103395 3.0266000000e+00 1.5195000000e-01 103396 3.0444000000e+00 1.8238000000e-01 103397 3.0093000000e+00 1.8237000000e-01 103398 3.0271000000e+00 2.1284000000e-01 103399 3.0623000000e+00 2.1284000000e-01 103400 3.0796000000e+00 1.8235000000e-01 103401 3.1147000000e+00 1.8226000000e-01 103402 3.1497000000e+00 1.8207000000e-01 103403 3.1667000000e+00 1.5177000000e-01 103404 3.1838000000e+00 1.2172000000e-01 103405 3.2013000000e+00 9.1642000000e-02 103406 3.2366000000e+00 9.2240000000e-02 103407 3.2727000000e+00 9.2911000000e-02 103408 3.3083000000e+00 9.1127000000e-02 103409 3.3422000000e+00 8.9553000000e-02 103410 3.3753000000e+00 8.8788000000e-02 103411 3.4079000000e+00 8.9185000000e-02 103412 1.9403000000e+00 8.9728000000e-02 103413 1.9574000000e+00 1.1969000000e-01 103414 1.9743000000e+00 1.4976000000e-01 103415 2.0091000000e+00 1.5022000000e-01 103416 2.3957000000e+00 9.0861000000e-02 103417 2.4132000000e+00 1.2116000000e-01 103418 2.4307000000e+00 1.5145000000e-01 103419 2.4131000000e+00 1.8174000000e-01 103420 2.4306000000e+00 2.1203000000e-01 103421 2.4480000000e+00 2.4232000000e-01 103422 2.4655000000e+00 2.7259000000e-01 103423 2.4304000000e+00 2.7260000000e-01 103424 2.4479000000e+00 3.0286000000e-01 103425 2.4830000000e+00 3.0283000000e-01 103426 2.5006000000e+00 2.7259000000e-01 103427 2.5356000000e+00 2.7260000000e-01 103428 2.5706000000e+00 2.7263000000e-01 103429 2.6056000000e+00 2.7268000000e-01 103430 2.6232000000e+00 2.4242000000e-01 103431 2.6582000000e+00 2.4248000000e-01 103432 2.6406000000e+00 2.7274000000e-01 103433 2.6757000000e+00 2.7281000000e-01 103434 2.6933000000e+00 2.4253000000e-01 103435 2.6758000000e+00 2.1219000000e-01 103436 9.0133000000e-01 7.5679000000e-02 103437 8.6670000000e-01 8.0729000000e-02 103438 8.8830000000e-01 1.0851000000e-01 103439 8.5356000000e-01 1.1388000000e-01 103440 8.3172000000e-01 8.5694000000e-02 103441 8.4527000000e-01 5.2719000000e-02 103442 2.6581000000e+00 3.0308000000e-01 103443 2.6931000000e+00 3.0317000000e-01 103444 2.7107000000e+00 2.7289000000e-01 103445 2.7283000000e+00 2.4260000000e-01 103446 2.7108000000e+00 2.1224000000e-01 103447 2.7459000000e+00 2.1229000000e-01 103448 2.7634000000e+00 1.8198000000e-01 103449 2.7809000000e+00 1.5166000000e-01 103450 3.8660000000e-01 3.0943000000e-01 103451 8.1029000000e-01 5.7161000000e-02 103452 7.7506000000e-01 6.1304000000e-02 103453 7.9639000000e-01 9.0425000000e-02 103454 2.7985000000e+00 1.8203000000e-01 103455 2.8160000000e+00 1.5170000000e-01 103456 2.8336000000e+00 1.8208000000e-01 103457 2.8511000000e+00 1.5175000000e-01 103458 2.8335000000e+00 1.2137000000e-01 103459 2.8685000000e+00 1.2140000000e-01 103460 2.8862000000e+00 1.5179000000e-01 103461 2.9036000000e+00 1.2144000000e-01 103462 2.8860000000e+00 9.1059000000e-02 103463 2.8510000000e+00 9.1034000000e-02 103464 2.8687000000e+00 1.8214000000e-01 103465 2.9038000000e+00 1.8221000000e-01 103466 2.9213000000e+00 1.5184000000e-01 103467 2.9387000000e+00 1.2148000000e-01 103468 2.9564000000e+00 1.5189000000e-01 103469 2.9211000000e+00 9.1085000000e-02 103470 3.3599000000e+00 1.2206000000e-01 103471 3.3294000000e+00 1.4592000000e-01 103472 3.3000000000e+00 1.6745000000e-01 103473 3.2726000000e+00 1.8957000000e-01 103474 3.2760000000e+00 2.2325000000e-01 103475 3.2782000000e+00 2.5749000000e-01 103476 3.2800000000e+00 2.9310000000e-01 103477 3.2842000000e+00 3.2876000000e-01 103478 3.2879000000e+00 3.6327000000e-01 103479 3.2909000000e+00 3.9758000000e-01 103480 3.2932000000e+00 4.3210000000e-01 103481 3.3242000000e+00 4.4784000000e-01 103482 3.3503000000e+00 4.6243000000e-01 103483 3.3869000000e+00 4.3240000000e-01 103484 -1.2318000000e+00 2.1836000000e-01 103485 -1.2012000000e+00 2.3617000000e-01 103486 -1.1700000000e+00 2.1867000000e-01 103487 -1.1389000000e+00 2.0110000000e-01 103488 -1.1392000000e+00 2.3685000000e-01 103489 -1.1706000000e+00 2.5422000000e-01 103490 -1.1399000000e+00 2.7270000000e-01 103491 -1.1073000000e+00 2.5544000000e-01 103492 -1.1083000000e+00 2.1896000000e-01 103493 -1.1085000000e+00 1.8390000000e-01 103494 -1.1073000000e+00 1.4984000000e-01 103495 -1.0790000000e+00 1.6732000000e-01 103496 -1.0792000000e+00 2.0095000000e-01 103497 -1.0792000000e+00 1.3457000000e-01 103498 -1.1038000000e+00 1.2128000000e-01 103499 3.2954000000e+00 4.6687000000e-01 103500 3.3274000000e+00 4.8189000000e-01 103501 -1.0519000000e+00 1.8453000000e-01 103502 -1.0508000000e+00 2.1544000000e-01 103503 -1.0259000000e+00 1.9998000000e-01 103504 -1.0280000000e+00 1.7333000000e-01 103505 7.3907000000e-01 6.5635000000e-02 103506 7.6096000000e-01 9.5168000000e-02 103507 7.8219000000e-01 1.2398000000e-01 103508 8.1812000000e-01 1.1927000000e-01 103509 8.4079000000e-01 1.4769000000e-01 103510 8.0408000000e-01 1.5396000000e-01 103511 8.2889000000e-01 1.8276000000e-01 103512 8.6438000000e-01 1.7486000000e-01 103513 8.7573000000e-01 1.4142000000e-01 103514 9.0978000000e-01 1.3600000000e-01 103515 9.2271000000e-01 1.0338000000e-01 103516 9.5707000000e-01 9.8141000000e-02 103517 9.4408000000e-01 1.3129000000e-01 103518 9.7948000000e-01 1.2595000000e-01 103519 1.0189000000e+00 8.3970000000e-02 103520 8.9756000000e-01 1.6760000000e-01 103521 9.3032000000e-01 1.6381000000e-01 103522 9.6509000000e-01 1.6047000000e-01 103523 1.0012000000e+00 1.5540000000e-01 103524 1.0207000000e+00 1.8511000000e-01 103525 9.8647000000e-01 1.8871000000e-01 103526 1.0063000000e+00 2.1572000000e-01 103527 1.0393000000e+00 2.1350000000e-01 103528 1.0542000000e+00 1.8347000000e-01 103529 1.0243000000e+00 2.4387000000e-01 103530 1.0580000000e+00 2.4162000000e-01 103531 1.0432000000e+00 2.7252000000e-01 103532 1.0772000000e+00 2.6989000000e-01 103533 1.0624000000e+00 3.0124000000e-01 103534 1.0966000000e+00 2.9836000000e-01 103535 1.0819000000e+00 3.3001000000e-01 103536 1.1163000000e+00 3.2688000000e-01 103537 1.1017000000e+00 3.5873000000e-01 103538 1.1361000000e+00 3.5534000000e-01 103539 1.1506000000e+00 3.2355000000e-01 103540 1.1309000000e+00 2.9519000000e-01 103541 1.1112000000e+00 2.6682000000e-01 103542 1.0916000000e+00 2.3871000000e-01 103543 1.0724000000e+00 2.1113000000e-01 103544 1.0860000000e+00 1.8184000000e-01 103545 1.9923000000e+00 1.7380000000e+00 103546 1.9574000000e+00 1.7388000000e+00 103547 1.9227000000e+00 1.7392000000e+00 103548 1.8881000000e+00 1.7393000000e+00 103549 1.8534000000e+00 1.7393000000e+00 103550 1.8185000000e+00 1.7390000000e+00 103551 1.7834000000e+00 1.7386000000e+00 103552 1.7480000000e+00 1.7384000000e+00 103553 1.7125000000e+00 1.7384000000e+00 103554 1.6770000000e+00 1.7386000000e+00 103555 1.6417000000e+00 1.7387000000e+00 103556 1.6240000000e+00 1.7693000000e+00 103557 1.6063000000e+00 1.7998000000e+00 103558 1.5712000000e+00 1.7998000000e+00 103559 1.5361000000e+00 1.7998000000e+00 103560 1.5010000000e+00 1.7998000000e+00 103561 1.4660000000e+00 1.7998000000e+00 103562 1.4836000000e+00 1.7694000000e+00 103563 1.4485000000e+00 1.7694000000e+00 103564 1.4310000000e+00 1.7998000000e+00 103565 1.4485000000e+00 1.8302000000e+00 103566 1.4134000000e+00 1.8302000000e+00 103567 1.3784000000e+00 1.8302000000e+00 103568 1.3434000000e+00 1.8302000000e+00 103569 1.3084000000e+00 1.8302000000e+00 103570 1.2734000000e+00 1.8302000000e+00 103571 1.2559000000e+00 1.7998000000e+00 103572 1.2208000000e+00 1.7998000000e+00 103573 1.1858000000e+00 1.7998000000e+00 103574 1.1683000000e+00 1.7694000000e+00 103575 1.1334000000e+00 1.7694000000e+00 103576 1.0984000000e+00 1.7695000000e+00 103577 1.0635000000e+00 1.7695000000e+00 103578 1.0285000000e+00 1.7695000000e+00 103579 1.0110000000e+00 1.7999000000e+00 103580 9.7605000000e-01 1.7999000000e+00 103581 9.4108000000e-01 1.7999000000e+00 103582 9.0608000000e-01 1.7999000000e+00 103583 8.7107000000e-01 1.7998000000e+00 103584 8.3605000000e-01 1.7998000000e+00 103585 8.0101000000e-01 1.7999000000e+00 103586 7.6598000000e-01 1.7999000000e+00 103587 7.3095000000e-01 1.7999000000e+00 103588 6.9594000000e-01 1.8000000000e+00 103589 6.7843000000e-01 1.7696000000e+00 103590 6.4344000000e-01 1.7697000000e+00 103591 6.0847000000e-01 1.7698000000e+00 103592 5.7351000000e-01 1.7698000000e+00 103593 5.3856000000e-01 1.7699000000e+00 103594 5.0360000000e-01 1.7699000000e+00 103595 4.6863000000e-01 1.7699000000e+00 103596 4.3364000000e-01 1.7699000000e+00 103597 3.9863000000e-01 1.7698000000e+00 103598 3.6361000000e-01 1.7698000000e+00 103599 3.2858000000e-01 1.7698000000e+00 103600 2.9355000000e-01 1.7698000000e+00 103601 2.5851000000e-01 1.7698000000e+00 103602 2.4104000000e-01 1.7394000000e+00 103603 2.0599000000e-01 1.7394000000e+00 103604 1.7095000000e-01 1.7394000000e+00 103605 1.3592000000e-01 1.7394000000e+00 103606 1.0089000000e-01 1.7394000000e+00 103607 6.5860000000e-02 1.7394000000e+00 103608 3.0839000000e-02 1.7394000000e+00 103609 1.3318000000e-02 1.7090000000e+00 103610 -2.1696000000e-02 1.7091000000e+00 103611 -5.6698000000e-02 1.7091000000e+00 103612 -9.1686000000e-02 1.7091000000e+00 103613 -1.2666000000e-01 1.7091000000e+00 103614 -1.6163000000e-01 1.7092000000e+00 103615 -1.9658000000e-01 1.7092000000e+00 103616 -2.3154000000e-01 1.7092000000e+00 103617 -2.6650000000e-01 1.7092000000e+00 103618 -3.0146000000e-01 1.7093000000e+00 103619 -3.3642000000e-01 1.7093000000e+00 103620 -3.7140000000e-01 1.7093000000e+00 103621 -4.0638000000e-01 1.7093000000e+00 103622 -4.4137000000e-01 1.7093000000e+00 103623 -4.7636000000e-01 1.7094000000e+00 103624 -5.1136000000e-01 1.7094000000e+00 103625 -5.4637000000e-01 1.7094000000e+00 103626 -5.8139000000e-01 1.7094000000e+00 103627 -6.1642000000e-01 1.7093000000e+00 103628 -6.5148000000e-01 1.7093000000e+00 103629 -6.8655000000e-01 1.7092000000e+00 103630 -7.2165000000e-01 1.7091000000e+00 103631 -7.5677000000e-01 1.7090000000e+00 103632 -7.9191000000e-01 1.7088000000e+00 103633 -8.2704000000e-01 1.7086000000e+00 103634 -8.4478000000e-01 1.6781000000e+00 103635 -8.7993000000e-01 1.6779000000e+00 103636 -9.1497000000e-01 1.6775000000e+00 103637 -9.3286000000e-01 1.6472000000e+00 103638 -9.6757000000e-01 1.6469000000e+00 103639 -9.8533000000e-01 1.6171000000e+00 103640 -1.0033000000e+00 1.5884000000e+00 103641 -1.0310000000e+00 1.5907000000e+00 103642 -1.0263000000e+00 1.5599000000e+00 103643 -1.0367000000e+00 1.5259000000e+00 103644 -1.0391000000e+00 1.5007000000e+00 103645 -6.5697000000e-01 1.0681000000e+00 103646 -6.2663000000e-01 1.0854000000e+00 103647 -5.9574000000e-01 1.0675000000e+00 103648 -5.6500000000e-01 1.0486000000e+00 103649 -5.6659000000e-01 1.0127000000e+00 103650 -5.6794000000e-01 9.7713000000e-01 103651 -5.6905000000e-01 9.4143000000e-01 103652 -6.0072000000e-01 9.2470000000e-01 103653 -6.3242000000e-01 9.0835000000e-01 103654 -6.6189000000e-01 9.2779000000e-01 103655 -6.9118000000e-01 9.4690000000e-01 103656 -6.8969000000e-01 9.8196000000e-01 103657 -5.3509000000e-01 1.0291000000e+00 103658 -5.3684000000e-01 9.9369000000e-01 103659 -5.3791000000e-01 9.5842000000e-01 103660 -5.3803000000e-01 9.2249000000e-01 103661 -5.7032000000e-01 9.0533000000e-01 103662 -6.0254000000e-01 8.8865000000e-01 103663 -6.3473000000e-01 8.7245000000e-01 103664 -6.6394000000e-01 8.9250000000e-01 103665 -6.9288000000e-01 9.1192000000e-01 103666 -7.2187000000e-01 9.3085000000e-01 103667 -7.2044000000e-01 9.6577000000e-01 103668 -7.1903000000e-01 1.0008000000e+00 103669 -5.7215000000e-01 8.6887000000e-01 103670 -6.0478000000e-01 8.5215000000e-01 103671 -6.3789000000e-01 8.3577000000e-01 103672 -6.6668000000e-01 8.5724000000e-01 103673 -6.9493000000e-01 8.7722000000e-01 103674 -7.2338000000e-01 8.9621000000e-01 103675 -7.5222000000e-01 9.1474000000e-01 103676 -7.5331000000e-01 8.8036000000e-01 103677 -7.8222000000e-01 8.9838000000e-01 103678 -7.5104000000e-01 9.4953000000e-01 103679 3.2185000000e+00 1.2222000000e-01 103680 3.2539000000e+00 1.2391000000e-01 103681 3.2940000000e+00 1.2757000000e-01 103682 3.2670000000e+00 1.5639000000e-01 103683 3.3268000000e+00 1.1525000000e-01 103684 -1.1595000000e+00 3.7576000000e-02 103685 3.2417000000e+00 2.0958000000e-01 103686 3.2523000000e+00 2.4170000000e-01 103687 3.2437000000e+00 2.7565000000e-01 103688 3.2516000000e+00 3.1504000000e-01 103689 3.2570000000e+00 3.4918000000e-01 103690 3.2602000000e+00 3.8240000000e-01 103691 3.2622000000e+00 4.1620000000e-01 103692 3.2321000000e+00 4.0009000000e-01 103693 3.2330000000e+00 4.3415000000e-01 103694 3.2639000000e+00 4.5078000000e-01 103695 3.2656000000e+00 4.8610000000e-01 103696 3.2980000000e+00 5.0239000000e-01 103697 3.3317000000e+00 5.1806000000e-01 103698 3.3337000000e+00 5.5571000000e-01 103699 3.3353000000e+00 5.9239000000e-01 103700 3.3367000000e+00 6.2814000000e-01 103701 3.3068000000e+00 6.4617000000e-01 103702 3.3076000000e+00 6.8073000000e-01 103703 3.3079000000e+00 7.1556000000e-01 103704 3.3082000000e+00 7.5066000000e-01 103705 3.3084000000e+00 7.8590000000e-01 103706 3.3087000000e+00 8.2120000000e-01 103707 3.3089000000e+00 8.5650000000e-01 103708 3.3092000000e+00 8.9178000000e-01 103709 3.3095000000e+00 9.2702000000e-01 103710 3.3098000000e+00 9.6221000000e-01 103711 3.3100000000e+00 9.9733000000e-01 103712 3.3102000000e+00 1.0324000000e+00 103713 3.3103000000e+00 1.0674000000e+00 103714 3.3104000000e+00 1.1025000000e+00 103715 3.3104000000e+00 1.1375000000e+00 103716 3.3103000000e+00 1.1725000000e+00 103717 3.3102000000e+00 1.2076000000e+00 103718 3.3101000000e+00 1.2427000000e+00 103719 3.3100000000e+00 1.2778000000e+00 103720 3.3098000000e+00 1.3130000000e+00 103721 3.3095000000e+00 1.3481000000e+00 103722 3.3093000000e+00 1.3834000000e+00 103723 3.3089000000e+00 1.4187000000e+00 103724 3.3086000000e+00 1.4540000000e+00 103725 3.3081000000e+00 1.4895000000e+00 103726 3.3076000000e+00 1.5250000000e+00 103727 3.3071000000e+00 1.5607000000e+00 103728 3.3066000000e+00 1.5964000000e+00 103729 3.3060000000e+00 1.6321000000e+00 103730 3.3054000000e+00 1.6679000000e+00 103731 3.3047000000e+00 1.7037000000e+00 103732 3.3037000000e+00 1.7395000000e+00 103733 3.2723000000e+00 1.7583000000e+00 103734 3.2409000000e+00 1.7772000000e+00 103735 3.2122000000e+00 1.7600000000e+00 103736 3.1863000000e+00 1.7733000000e+00 103737 3.1842000000e+00 1.7450000000e+00 103738 3.1529000000e+00 1.7336000000e+00 103739 3.1178000000e+00 1.7230000000e+00 103740 3.0802000000e+00 1.7151000000e+00 103741 3.0450000000e+00 1.7077000000e+00 103742 3.0129000000e+00 1.7010000000e+00 103743 2.9799000000e+00 1.6972000000e+00 103744 2.9451000000e+00 1.6935000000e+00 103745 2.9092000000e+00 1.6897000000e+00 103746 2.8724000000e+00 1.6858000000e+00 103747 2.8476000000e+00 1.7173000000e+00 103748 2.8086000000e+00 1.7134000000e+00 103749 2.7789000000e+00 1.7477000000e+00 103750 2.7489000000e+00 1.7300000000e+00 103751 2.7186000000e+00 1.7329000000e+00 103752 2.6827000000e+00 1.7369000000e+00 103753 2.6417000000e+00 1.7440000000e+00 103754 2.6410000000e+00 1.7780000000e+00 103755 2.6130000000e+00 1.7719000000e+00 103756 2.5779000000e+00 1.7685000000e+00 103757 2.5416000000e+00 1.7660000000e+00 103758 2.5046000000e+00 1.7638000000e+00 103759 2.4666000000e+00 1.7608000000e+00 103760 -1.2941000000e+00 2.8837000000e-01 103761 -1.3246000000e+00 2.7077000000e-01 103762 -1.3244000000e+00 2.3578000000e-01 103763 -1.2938000000e+00 2.5335000000e-01 103764 -1.2636000000e+00 3.0601000000e-01 103765 -1.2632000000e+00 2.7098000000e-01 103766 -1.0001000000e+00 6.0017000000e-01 103767 -9.9390000000e-01 5.7134000000e-01 103768 -9.7204000000e-01 5.9622000000e-01 103769 -9.5746000000e-01 5.6205000000e-01 103770 7.9172000000e-01 1.9048000000e-01 103771 8.1778000000e-01 2.1959000000e-01 103772 8.5462000000e-01 2.1003000000e-01 103773 8.8871000000e-01 1.9970000000e-01 103774 2.1145000000e+00 1.5109000000e-01 103775 2.1497000000e+00 1.5120000000e-01 103776 2.1675000000e+00 1.2094000000e-01 103777 2.2027000000e+00 1.2100000000e-01 103778 2.1849000000e+00 1.5127000000e-01 103779 2.2201000000e+00 1.5132000000e-01 103780 2.2378000000e+00 1.2105000000e-01 103781 2.2204000000e+00 9.0750000000e-02 103782 2.2555000000e+00 9.0784000000e-02 103783 2.2729000000e+00 1.2108000000e-01 103784 2.3080000000e+00 1.2110000000e-01 103785 2.3431000000e+00 1.2113000000e-01 103786 2.3607000000e+00 9.0847000000e-02 103787 2.3781000000e+00 1.2114000000e-01 103788 2.3605000000e+00 1.5143000000e-01 103789 2.3956000000e+00 1.5144000000e-01 103790 2.3780000000e+00 1.8173000000e-01 103791 2.3955000000e+00 2.1203000000e-01 103792 2.4130000000e+00 2.4232000000e-01 103793 2.3778000000e+00 2.4232000000e-01 103794 2.3953000000e+00 2.7261000000e-01 103795 2.4128000000e+00 3.0289000000e-01 103796 2.4303000000e+00 3.3314000000e-01 103797 2.4654000000e+00 3.3308000000e-01 103798 2.5004000000e+00 3.3305000000e-01 103799 2.5180000000e+00 3.0283000000e-01 103800 2.5530000000e+00 3.0286000000e-01 103801 2.5880000000e+00 3.0291000000e-01 103802 2.6230000000e+00 3.0299000000e-01 103803 2.6404000000e+00 3.3331000000e-01 103804 2.6755000000e+00 3.3344000000e-01 103805 2.7106000000e+00 3.3357000000e-01 103806 2.7282000000e+00 3.0328000000e-01 103807 2.7458000000e+00 2.7298000000e-01 103808 2.7634000000e+00 2.4267000000e-01 103809 1.8021000000e+00 1.7081000000e+00 103810 1.7665000000e+00 1.7075000000e+00 103811 1.7306000000e+00 1.7076000000e+00 103812 1.6950000000e+00 1.7078000000e+00 103813 1.6595000000e+00 1.7080000000e+00 103814 1.6242000000e+00 1.7082000000e+00 103815 1.6065000000e+00 1.7388000000e+00 103816 1.5888000000e+00 1.7693000000e+00 103817 1.5537000000e+00 1.7694000000e+00 103818 1.5186000000e+00 1.7694000000e+00 103819 1.5011000000e+00 1.7390000000e+00 103820 1.4661000000e+00 1.7390000000e+00 103821 1.4311000000e+00 1.7390000000e+00 103822 1.4135000000e+00 1.7694000000e+00 103823 1.3959000000e+00 1.7998000000e+00 103824 2.0277000000e+00 1.7371000000e+00 103825 2.0096000000e+00 1.7067000000e+00 103826 2.0456000000e+00 1.7053000000e+00 103827 2.0268000000e+00 1.6738000000e+00 103828 1.9907000000e+00 1.6775000000e+00 103829 1.9745000000e+00 1.7083000000e+00 103830 1.9403000000e+00 1.7091000000e+00 103831 1.9059000000e+00 1.7091000000e+00 103832 1.8713000000e+00 1.7092000000e+00 103833 1.8369000000e+00 1.7090000000e+00 103834 1.8214000000e+00 1.6784000000e+00 103835 1.7860000000e+00 1.6760000000e+00 103836 1.7491000000e+00 1.6763000000e+00 103837 1.7130000000e+00 1.6768000000e+00 103838 1.6773000000e+00 1.6772000000e+00 103839 1.6419000000e+00 1.6775000000e+00 103840 1.6066000000e+00 1.6778000000e+00 103841 1.5890000000e+00 1.7084000000e+00 103842 1.5713000000e+00 1.7389000000e+00 103843 1.5362000000e+00 1.7390000000e+00 103844 1.5187000000e+00 1.7085000000e+00 103845 1.4837000000e+00 1.7085000000e+00 103846 1.4487000000e+00 1.7085000000e+00 103847 1.4136000000e+00 1.7085000000e+00 103848 1.3960000000e+00 1.7389000000e+00 103849 1.3785000000e+00 1.7694000000e+00 103850 1.3609000000e+00 1.7998000000e+00 103851 -6.4640000000e-01 6.0672000000e-02 103852 -6.6402000000e-01 3.0345000000e-02 103853 1.5538000000e+00 1.7085000000e+00 103854 1.5363000000e+00 1.6780000000e+00 103855 1.5013000000e+00 1.6781000000e+00 103856 1.4663000000e+00 1.6781000000e+00 103857 1.4312000000e+00 1.6780000000e+00 103858 1.4489000000e+00 1.6476000000e+00 103859 1.4139000000e+00 1.6475000000e+00 103860 1.3962000000e+00 1.6779000000e+00 103861 -7.8518000000e-01 1.8203000000e-01 103862 -8.0233000000e-01 2.1144000000e-01 103863 -7.8757000000e-01 2.4529000000e-01 103864 1.6596000000e+00 1.6468000000e+00 103865 1.6243000000e+00 1.6471000000e+00 103866 1.5890000000e+00 1.6473000000e+00 103867 1.5714000000e+00 1.6779000000e+00 103868 1.5539000000e+00 1.6475000000e+00 103869 1.5189000000e+00 1.6476000000e+00 103870 1.4839000000e+00 1.6477000000e+00 103871 1.4665000000e+00 1.6172000000e+00 103872 1.4316000000e+00 1.6171000000e+00 103873 1.3966000000e+00 1.6169000000e+00 103874 1.3788000000e+00 1.6473000000e+00 103875 1.3612000000e+00 1.6778000000e+00 103876 1.3786000000e+00 1.7084000000e+00 103877 1.3610000000e+00 1.7389000000e+00 103878 1.3434000000e+00 1.7693000000e+00 103879 1.3259000000e+00 1.7998000000e+00 103880 -4.3696000000e-01 6.1910000000e-02 103881 -4.1902000000e-01 9.4137000000e-02 103882 -8.5597000000e-01 6.1069000000e-02 103883 -8.5518000000e-01 1.2203000000e-01 103884 -8.7208000000e-01 1.5261000000e-01 103885 -8.3737000000e-01 1.5221000000e-01 103886 -8.5435000000e-01 1.8294000000e-01 103887 -8.8871000000e-01 1.8270000000e-01 103888 1.3435000000e+00 1.7083000000e+00 103889 1.3259000000e+00 1.7388000000e+00 103890 1.3084000000e+00 1.7693000000e+00 103891 1.2909000000e+00 1.7998000000e+00 103892 2.9919000000e+00 2.1280000000e-01 103893 3.0097000000e+00 2.4332000000e-01 103894 3.0450000000e+00 2.4337000000e-01 103895 3.0803000000e+00 2.4335000000e-01 103896 3.0975000000e+00 2.1276000000e-01 103897 3.1327000000e+00 2.1257000000e-01 103898 3.1678000000e+00 2.1225000000e-01 103899 3.1846000000e+00 1.8169000000e-01 103900 3.2011000000e+00 1.5171000000e-01 103901 3.2343000000e+00 1.5211000000e-01 103902 3.2469000000e+00 1.7768000000e-01 103903 -8.6265000000e-01 1.6476000000e+00 103904 -8.9786000000e-01 1.6474000000e+00 103905 -9.1602000000e-01 1.6171000000e+00 103906 -9.5096000000e-01 1.6172000000e+00 103907 -9.6944000000e-01 1.5877000000e+00 103908 -9.8875000000e-01 1.5587000000e+00 103909 -1.0195000000e+00 1.5072000000e+00 103910 -1.0213000000e+00 1.4778000000e+00 103911 -1.0101000000e+00 1.4353000000e+00 103912 -1.0151000000e+00 1.3953000000e+00 103913 -1.0156000000e+00 1.3596000000e+00 103914 -1.0156000000e+00 1.3234000000e+00 103915 -1.0164000000e+00 1.2869000000e+00 103916 -1.0180000000e+00 1.2509000000e+00 103917 -1.0197000000e+00 1.2156000000e+00 103918 -1.0507000000e+00 1.1984000000e+00 103919 -9.9026000000e-01 1.1976000000e+00 103920 -9.6012000000e-01 1.2139000000e+00 103921 -9.3188000000e-01 1.1969000000e+00 103922 -9.0273000000e-01 1.1809000000e+00 103923 -8.7251000000e-01 1.1652000000e+00 103924 -8.4114000000e-01 1.1494000000e+00 103925 -8.0814000000e-01 1.1332000000e+00 103926 -9.0155000000e-01 9.3501000000e-01 103927 -1.0064000000e+00 1.5303000000e+00 103928 -9.9385000000e-01 1.5014000000e+00 103929 -9.8314000000e-01 1.4679000000e+00 103930 -9.6901000000e-01 1.4335000000e+00 103931 -9.8733000000e-01 1.4084000000e+00 103932 -9.8524000000e-01 1.3781000000e+00 103933 -9.8380000000e-01 1.3425000000e+00 103934 -9.8325000000e-01 1.3050000000e+00 103935 -9.8521000000e-01 1.2678000000e+00 103936 -9.8845000000e-01 1.2322000000e+00 103937 -9.5730000000e-01 1.2473000000e+00 103938 -9.3157000000e-01 1.2291000000e+00 103939 -9.0384000000e-01 1.2140000000e+00 103940 -8.7441000000e-01 1.1992000000e+00 103941 -8.4374000000e-01 1.1845000000e+00 103942 -8.1183000000e-01 1.1698000000e+00 103943 -7.7856000000e-01 1.1554000000e+00 103944 -7.2502000000e-01 8.6215000000e-01 103945 -7.5420000000e-01 8.4661000000e-01 103946 -7.5449000000e-01 8.1370000000e-01 103947 -7.2669000000e-01 8.2922000000e-01 103948 -7.2761000000e-01 7.9817000000e-01 103949 -7.0117000000e-01 8.1143000000e-01 103950 -6.9758000000e-01 8.4326000000e-01 103951 -6.7092000000e-01 8.2226000000e-01 103952 2.4478000000e+00 3.6333000000e-01 103953 2.4828000000e+00 3.6325000000e-01 103954 2.5178000000e+00 3.6323000000e-01 103955 2.5354000000e+00 3.3306000000e-01 103956 2.5704000000e+00 3.3311000000e-01 103957 2.6054000000e+00 3.3320000000e-01 103958 1.4338000000e+00 4.2864000000e-01 103959 1.4694000000e+00 4.2738000000e-01 103960 1.4522000000e+00 4.5910000000e-01 103961 1.4878000000e+00 4.5725000000e-01 103962 -7.8213000000e-01 7.9667000000e-01 103963 -8.1013000000e-01 7.7861000000e-01 103964 -8.4046000000e-01 7.9459000000e-01 103965 -8.3857000000e-01 7.5923000000e-01 103966 -8.7024000000e-01 7.7559000000e-01 103967 -8.7100000000e-01 8.1169000000e-01 103968 -1.2018000000e+00 2.7145000000e-01 103969 -1.1714000000e+00 2.8953000000e-01 103970 -1.1415000000e+00 3.0790000000e-01 103971 -1.1093000000e+00 2.9227000000e-01 103972 3.3027000000e+00 5.7568000000e-01 103973 3.3050000000e+00 6.1140000000e-01 103974 3.2762000000e+00 6.2997000000e-01 103975 3.2774000000e+00 6.6334000000e-01 103976 3.2774000000e+00 6.9751000000e-01 103977 3.2774000000e+00 7.3249000000e-01 103978 3.2776000000e+00 7.6779000000e-01 103979 3.2778000000e+00 8.0317000000e-01 103980 3.2781000000e+00 8.3856000000e-01 103981 3.2784000000e+00 8.7394000000e-01 103982 3.2787000000e+00 9.0927000000e-01 103983 3.2791000000e+00 9.4455000000e-01 103984 3.2794000000e+00 9.7973000000e-01 103985 3.2797000000e+00 1.0148000000e+00 103986 3.2799000000e+00 1.0499000000e+00 103987 3.2800000000e+00 1.0849000000e+00 103988 3.2800000000e+00 1.1199000000e+00 103989 3.2799000000e+00 1.1550000000e+00 103990 3.2798000000e+00 1.1900000000e+00 103991 3.2797000000e+00 1.2252000000e+00 103992 3.2795000000e+00 1.2603000000e+00 103993 3.2793000000e+00 1.2955000000e+00 103994 3.2791000000e+00 1.3307000000e+00 103995 3.2788000000e+00 1.3660000000e+00 103996 3.2784000000e+00 1.4013000000e+00 103997 3.2780000000e+00 1.4367000000e+00 103998 3.2775000000e+00 1.4721000000e+00 103999 3.2769000000e+00 1.5077000000e+00 104000 3.2763000000e+00 1.5434000000e+00 104001 3.2757000000e+00 1.5793000000e+00 104002 3.2752000000e+00 1.6152000000e+00 104003 3.2747000000e+00 1.6511000000e+00 104004 3.2742000000e+00 1.6869000000e+00 104005 3.2734000000e+00 1.7226000000e+00 104006 3.2425000000e+00 1.7416000000e+00 104007 3.2127000000e+00 1.7256000000e+00 104008 3.2437000000e+00 1.6343000000e+00 104009 3.2434000000e+00 1.6704000000e+00 104010 3.2431000000e+00 1.7061000000e+00 104011 3.2122000000e+00 1.6902000000e+00 104012 3.1818000000e+00 1.7109000000e+00 104013 3.1482000000e+00 1.6969000000e+00 104014 3.1095000000e+00 1.6812000000e+00 104015 3.0697000000e+00 1.6803000000e+00 104016 3.0361000000e+00 1.6747000000e+00 104017 3.0027000000e+00 1.6692000000e+00 104018 2.9685000000e+00 1.6645000000e+00 104019 2.9334000000e+00 1.6599000000e+00 104020 2.8973000000e+00 1.6553000000e+00 104021 2.8603000000e+00 1.6503000000e+00 104022 2.8346000000e+00 1.6814000000e+00 104023 2.7966000000e+00 1.6764000000e+00 104024 2.7713000000e+00 1.7070000000e+00 104025 2.7365000000e+00 1.7025000000e+00 104026 2.7006000000e+00 1.7031000000e+00 104027 2.7209000000e+00 1.6698000000e+00 104028 2.6825000000e+00 1.6705000000e+00 104029 2.6625000000e+00 1.7055000000e+00 104030 2.8225000000e+00 1.6451000000e+00 104031 2.7839000000e+00 1.6398000000e+00 104032 2.7588000000e+00 1.6719000000e+00 104033 2.7439000000e+00 1.6354000000e+00 104034 2.7034000000e+00 1.6351000000e+00 104035 2.6641000000e+00 1.6375000000e+00 104036 2.6441000000e+00 1.6719000000e+00 104037 2.6233000000e+00 1.7061000000e+00 104038 -1.2328000000e+00 2.8871000000e-01 104039 -1.2323000000e+00 2.5359000000e-01 104040 -1.2628000000e+00 2.3589000000e-01 104041 2.6831000000e+00 1.6028000000e+00 104042 2.6453000000e+00 1.6056000000e+00 104043 2.6261000000e+00 1.6391000000e+00 104044 2.6061000000e+00 1.6722000000e+00 104045 2.5851000000e+00 1.7045000000e+00 104046 2.6007000000e+00 1.7385000000e+00 104047 2.5633000000e+00 1.7356000000e+00 104048 2.5265000000e+00 1.7331000000e+00 104049 2.4898000000e+00 1.7302000000e+00 104050 2.4533000000e+00 1.7262000000e+00 104051 2.4293000000e+00 1.7550000000e+00 104052 2.4177000000e+00 1.7210000000e+00 104053 2.3946000000e+00 1.7471000000e+00 104054 2.4034000000e+00 1.7801000000e+00 104055 2.3671000000e+00 1.7397000000e+00 104056 2.3456000000e+00 1.7161000000e+00 104057 2.3030000000e+00 1.7045000000e+00 104058 2.2638000000e+00 1.7065000000e+00 104059 2.2272000000e+00 1.7050000000e+00 104060 2.1900000000e+00 1.7050000000e+00 104061 2.1536000000e+00 1.7054000000e+00 104062 2.1716000000e+00 1.6741000000e+00 104063 2.1361000000e+00 1.6749000000e+00 104064 2.1178000000e+00 1.7054000000e+00 104065 2.0819000000e+00 1.7051000000e+00 104066 2.1009000000e+00 1.6742000000e+00 104067 2.1199000000e+00 1.6451000000e+00 104068 2.0854000000e+00 1.6422000000e+00 104069 2.0643000000e+00 1.6727000000e+00 104070 3.2442000000e+00 1.5982000000e+00 104071 3.2124000000e+00 1.6175000000e+00 104072 3.2120000000e+00 1.6540000000e+00 104073 3.1803000000e+00 1.6746000000e+00 104074 3.1470000000e+00 1.6584000000e+00 104075 3.1157000000e+00 1.6402000000e+00 104076 3.0879000000e+00 1.6548000000e+00 104077 3.0595000000e+00 1.6484000000e+00 104078 3.0266000000e+00 1.6420000000e+00 104079 2.9925000000e+00 1.6363000000e+00 104080 2.9577000000e+00 1.6310000000e+00 104081 2.9224000000e+00 1.6257000000e+00 104082 2.8862000000e+00 1.6201000000e+00 104083 2.8490000000e+00 1.6143000000e+00 104084 2.8108000000e+00 1.6081000000e+00 104085 2.7709000000e+00 1.6016000000e+00 104086 1.5890000000e+00 3.3747000000e-01 104087 1.6091000000e+00 3.0844000000e-01 104088 1.6461000000e+00 3.0850000000e-01 104089 1.6273000000e+00 3.4506000000e-01 104090 1.6667000000e+00 3.3848000000e-01 104091 1.6826000000e+00 3.0683000000e-01 104092 1.6635000000e+00 2.7585000000e-01 104093 1.6807000000e+00 2.4404000000e-01 104094 1.6993000000e+00 2.7449000000e-01 104095 1.7161000000e+00 2.4288000000e-01 104096 1.1054000000e+00 2.0757000000e-01 104097 1.1256000000e+00 2.3515000000e-01 104098 1.1397000000e+00 2.0245000000e-01 104099 1.1173000000e+00 1.7605000000e-01 104100 2.6578000000e+00 3.6367000000e-01 104101 2.6929000000e+00 3.6383000000e-01 104102 2.7280000000e+00 3.6400000000e-01 104103 2.7457000000e+00 3.3370000000e-01 104104 2.7634000000e+00 3.0339000000e-01 104105 2.7809000000e+00 2.7307000000e-01 104106 2.7985000000e+00 2.4275000000e-01 104107 2.7809000000e+00 2.1235000000e-01 104108 2.8160000000e+00 2.1242000000e-01 104109 2.8336000000e+00 2.4284000000e-01 104110 2.8512000000e+00 2.1249000000e-01 104111 2.7809000000e+00 3.3384000000e-01 104112 2.7985000000e+00 3.0351000000e-01 104113 2.8161000000e+00 2.7318000000e-01 104114 2.8512000000e+00 2.7329000000e-01 104115 2.8688000000e+00 2.4293000000e-01 104116 9.4898000000e-01 1.9764000000e-01 104117 9.7661000000e-01 2.1791000000e-01 104118 9.9018000000e-01 2.4515000000e-01 104119 9.5115000000e-01 2.4231000000e-01 104120 9.7384000000e-01 2.7641000000e-01 104121 9.3903000000e-01 2.8109000000e-01 104122 9.5988000000e-01 3.0909000000e-01 104123 9.2684000000e-01 3.1270000000e-01 104124 9.4616000000e-01 3.4060000000e-01 104125 9.1250000000e-01 3.4330000000e-01 104126 8.9368000000e-01 3.1362000000e-01 104127 8.7792000000e-01 3.4537000000e-01 104128 8.9792000000e-01 3.7506000000e-01 104129 8.6287000000e-01 3.7803000000e-01 104130 8.4241000000e-01 3.4776000000e-01 104131 8.2715000000e-01 3.8097000000e-01 104132 8.0619000000e-01 3.5010000000e-01 104133 7.9126000000e-01 3.8397000000e-01 104134 8.1202000000e-01 4.1443000000e-01 104135 8.4809000000e-01 4.1157000000e-01 104136 8.8373000000e-01 4.0745000000e-01 104137 8.7025000000e-01 4.4076000000e-01 104138 9.0523000000e-01 4.3549000000e-01 104139 9.1803000000e-01 4.0381000000e-01 104140 9.3249000000e-01 3.7243000000e-01 104141 9.5863000000e-01 1.7695000000e+00 104142 9.2365000000e-01 1.7695000000e+00 104143 8.8865000000e-01 1.7694000000e+00 104144 8.5362000000e-01 1.7694000000e+00 104145 8.1857000000e-01 1.7694000000e+00 104146 7.8352000000e-01 1.7694000000e+00 104147 7.4848000000e-01 1.7695000000e+00 104148 7.1344000000e-01 1.7695000000e+00 104149 6.9592000000e-01 1.7392000000e+00 104150 6.6091000000e-01 1.7393000000e+00 104151 6.2594000000e-01 1.7394000000e+00 104152 5.9100000000e-01 1.7395000000e+00 104153 5.5608000000e-01 1.7396000000e+00 104154 5.2115000000e-01 1.7396000000e+00 104155 4.8620000000e-01 1.7396000000e+00 104156 4.5123000000e-01 1.7396000000e+00 104157 4.1624000000e-01 1.7395000000e+00 104158 3.8122000000e-01 1.7395000000e+00 104159 3.4618000000e-01 1.7395000000e+00 104160 3.1113000000e-01 1.7394000000e+00 104161 2.7609000000e-01 1.7394000000e+00 104162 2.5863000000e-01 1.7091000000e+00 104163 2.2357000000e-01 1.7091000000e+00 104164 1.8851000000e-01 1.7090000000e+00 104165 1.5346000000e-01 1.7090000000e+00 104166 1.1842000000e-01 1.7090000000e+00 104167 8.3377000000e-02 1.7090000000e+00 104168 4.8343000000e-02 1.7090000000e+00 104169 3.0815000000e-02 1.6786000000e+00 104170 -4.2139000000e-03 1.6787000000e+00 104171 -3.9227000000e-02 1.6787000000e+00 104172 -7.4221000000e-02 1.6787000000e+00 104173 -1.0920000000e-01 1.6788000000e+00 104174 -1.4415000000e-01 1.6788000000e+00 104175 -1.7910000000e-01 1.6789000000e+00 104176 -2.1403000000e-01 1.6789000000e+00 104177 -2.4897000000e-01 1.6789000000e+00 104178 -2.8391000000e-01 1.6790000000e+00 104179 -3.1886000000e-01 1.6790000000e+00 104180 -3.5382000000e-01 1.6790000000e+00 104181 -3.8879000000e-01 1.6790000000e+00 104182 -4.2377000000e-01 1.6791000000e+00 104183 -4.5876000000e-01 1.6791000000e+00 104184 -4.9376000000e-01 1.6791000000e+00 104185 -5.2876000000e-01 1.6791000000e+00 104186 -5.6378000000e-01 1.6791000000e+00 104187 -5.9881000000e-01 1.6791000000e+00 104188 -6.3387000000e-01 1.6790000000e+00 104189 -6.6894000000e-01 1.6790000000e+00 104190 -7.0406000000e-01 1.6789000000e+00 104191 -7.3920000000e-01 1.6787000000e+00 104192 -7.7438000000e-01 1.6785000000e+00 104193 -8.0958000000e-01 1.6783000000e+00 104194 -8.2736000000e-01 1.6478000000e+00 104195 -8.4529000000e-01 1.6172000000e+00 104196 -8.8074000000e-01 1.6171000000e+00 104197 -8.9917000000e-01 1.5866000000e+00 104198 -9.3458000000e-01 1.5870000000e+00 104199 -9.5373000000e-01 1.5574000000e+00 104200 -9.7336000000e-01 1.5284000000e+00 104201 -9.5933000000e-01 1.4966000000e+00 104202 -9.4521000000e-01 1.4628000000e+00 104203 -9.3115000000e-01 1.4271000000e+00 104204 -9.5712000000e-01 1.3996000000e+00 104205 -9.5236000000e-01 1.3632000000e+00 104206 -9.5062000000e-01 1.3254000000e+00 104207 -9.4777000000e-01 1.2842000000e+00 104208 2.4404000000e+00 1.6930000000e+00 104209 2.4759000000e+00 1.6971000000e+00 104210 2.4626000000e+00 1.6645000000e+00 104211 2.4277000000e+00 1.6604000000e+00 104212 2.4499000000e+00 1.6323000000e+00 104213 2.4152000000e+00 1.6280000000e+00 104214 2.4376000000e+00 1.5999000000e+00 104215 2.4028000000e+00 1.5957000000e+00 104216 2.3806000000e+00 1.6236000000e+00 104217 2.3684000000e+00 1.5916000000e+00 104218 2.3466000000e+00 1.6188000000e+00 104219 2.3579000000e+00 1.6510000000e+00 104220 2.3927000000e+00 1.6560000000e+00 104221 2.4052000000e+00 1.6885000000e+00 104222 2.3833000000e+00 1.7162000000e+00 104223 2.3697000000e+00 1.6844000000e+00 104224 2.3337000000e+00 1.6782000000e+00 104225 2.3017000000e+00 1.6682000000e+00 104226 2.2789000000e+00 1.6822000000e+00 104227 2.2491000000e+00 1.6719000000e+00 104228 2.2088000000e+00 1.6727000000e+00 104229 2.2265000000e+00 1.6390000000e+00 104230 2.1883000000e+00 1.6412000000e+00 104231 1.9227000000e+00 1.1950000000e-01 104232 2.3347000000e+00 1.5874000000e+00 104233 2.3134000000e+00 1.6140000000e+00 104234 2.3244000000e+00 1.6449000000e+00 104235 2.2931000000e+00 1.6392000000e+00 104236 1.2909000000e+00 1.7388000000e+00 104237 1.2734000000e+00 1.7693000000e+00 104238 2.5877000000e+00 3.6337000000e-01 104239 2.6227000000e+00 3.6351000000e-01 104240 2.6400000000e+00 3.9386000000e-01 104241 2.6751000000e+00 3.9408000000e-01 104242 2.7103000000e+00 3.9429000000e-01 104243 2.7455000000e+00 3.9449000000e-01 104244 2.7632000000e+00 3.6417000000e-01 104245 2.7984000000e+00 3.6434000000e-01 104246 2.8161000000e+00 3.3399000000e-01 104247 2.8337000000e+00 3.6451000000e-01 104248 2.8513000000e+00 3.3415000000e-01 104249 2.8337000000e+00 3.0364000000e-01 104250 -7.6841000000e-01 9.1199000000e-02 104251 1.3085000000e+00 1.7083000000e+00 104252 1.2734000000e+00 1.7083000000e+00 104253 1.2909000000e+00 1.6777000000e+00 104254 1.2558000000e+00 1.6777000000e+00 104255 1.2383000000e+00 1.7083000000e+00 104256 1.2558000000e+00 1.7388000000e+00 104257 1.2383000000e+00 1.7693000000e+00 104258 1.2033000000e+00 1.7693000000e+00 104259 1.1858000000e+00 1.7389000000e+00 104260 1.2208000000e+00 1.7389000000e+00 104261 1.2032000000e+00 1.7084000000e+00 104262 1.1682000000e+00 1.7085000000e+00 104263 1.1508000000e+00 1.7390000000e+00 104264 1.1158000000e+00 1.7391000000e+00 104265 1.0809000000e+00 1.7391000000e+00 104266 1.0460000000e+00 1.7392000000e+00 104267 1.0111000000e+00 1.7392000000e+00 104268 9.9358000000e-01 1.7695000000e+00 104269 9.7618000000e-01 1.7391000000e+00 104270 9.4123000000e-01 1.7391000000e+00 104271 9.0624000000e-01 1.7390000000e+00 104272 8.7122000000e-01 1.7390000000e+00 104273 8.3616000000e-01 1.7390000000e+00 104274 8.0109000000e-01 1.7390000000e+00 104275 7.6601000000e-01 1.7390000000e+00 104276 7.3095000000e-01 1.7391000000e+00 104277 7.1339000000e-01 1.7087000000e+00 104278 6.7836000000e-01 1.7088000000e+00 104279 6.4339000000e-01 1.7090000000e+00 104280 6.0846000000e-01 1.7092000000e+00 104281 5.7356000000e-01 1.7093000000e+00 104282 5.3868000000e-01 1.7093000000e+00 104283 5.0378000000e-01 1.7093000000e+00 104284 4.6885000000e-01 1.7093000000e+00 104285 4.3387000000e-01 1.7092000000e+00 104286 3.9885000000e-01 1.7092000000e+00 104287 3.6381000000e-01 1.7091000000e+00 104288 3.2875000000e-01 1.7091000000e+00 104289 2.9369000000e-01 1.7091000000e+00 104290 2.7624000000e-01 1.6787000000e+00 104291 2.4116000000e-01 1.6787000000e+00 104292 2.0609000000e-01 1.6787000000e+00 104293 1.7102000000e-01 1.6786000000e+00 104294 1.3596000000e-01 1.6786000000e+00 104295 1.0091000000e-01 1.6786000000e+00 104296 6.5857000000e-02 1.6786000000e+00 104297 4.8322000000e-02 1.6482000000e+00 104298 1.3271000000e-02 1.6482000000e+00 104299 -2.1762000000e-02 1.6483000000e+00 104300 -5.6770000000e-02 1.6483000000e+00 104301 -9.1750000000e-02 1.6484000000e+00 104302 -1.2670000000e-01 1.6484000000e+00 104303 -1.6163000000e-01 1.6485000000e+00 104304 -1.9654000000e-01 1.6486000000e+00 104305 -2.3145000000e-01 1.6486000000e+00 104306 -2.6637000000e-01 1.6486000000e+00 104307 -3.0130000000e-01 1.6487000000e+00 104308 -3.3624000000e-01 1.6487000000e+00 104309 -3.7119000000e-01 1.6487000000e+00 104310 -4.0616000000e-01 1.6488000000e+00 104311 -4.4114000000e-01 1.6488000000e+00 104312 -4.7613000000e-01 1.6488000000e+00 104313 -5.1113000000e-01 1.6489000000e+00 104314 -5.4614000000e-01 1.6489000000e+00 104315 -5.8117000000e-01 1.6488000000e+00 104316 -6.1622000000e-01 1.6488000000e+00 104317 -6.5130000000e-01 1.6487000000e+00 104318 -6.8641000000e-01 1.6486000000e+00 104319 -7.2157000000e-01 1.6485000000e+00 104320 -7.5679000000e-01 1.6483000000e+00 104321 -7.9205000000e-01 1.6480000000e+00 104322 -8.0982000000e-01 1.6174000000e+00 104323 -8.2772000000e-01 1.5867000000e+00 104324 -8.6347000000e-01 1.5865000000e+00 104325 -8.8207000000e-01 1.5555000000e+00 104326 -9.1818000000e-01 1.5562000000e+00 104327 -9.3807000000e-01 1.5260000000e+00 104328 -9.2235000000e-01 1.4932000000e+00 104329 -9.0621000000e-01 1.4583000000e+00 104330 -8.9176000000e-01 1.4216000000e+00 104331 -9.1755000000e-01 1.3869000000e+00 104332 -9.1975000000e-01 1.3468000000e+00 104333 -9.1668000000e-01 1.3106000000e+00 104334 -9.1064000000e-01 1.2766000000e+00 104335 -9.3059000000e-01 1.2566000000e+00 104336 -9.0557000000e-01 1.2456000000e+00 104337 -8.7679000000e-01 1.2322000000e+00 104338 -8.4679000000e-01 1.2184000000e+00 104339 -8.1572000000e-01 1.2047000000e+00 104340 -7.8364000000e-01 1.1912000000e+00 104341 -7.5119000000e-01 1.1782000000e+00 104342 -7.4559000000e-01 1.1443000000e+00 104343 -7.1546000000e-01 1.1334000000e+00 104344 -6.8668000000e-01 1.1188000000e+00 104345 -6.8871000000e-01 1.1520000000e+00 104346 -6.5821000000e-01 1.1369000000e+00 104347 -6.5703000000e-01 1.1026000000e+00 104348 -6.2730000000e-01 1.1206000000e+00 104349 -5.9574000000e-01 1.1036000000e+00 104350 -5.9716000000e-01 1.1395000000e+00 104351 -5.6420000000e-01 1.1227000000e+00 104352 -5.6340000000e-01 1.0854000000e+00 104353 -5.3245000000e-01 1.0652000000e+00 104354 -5.0371000000e-01 1.0445000000e+00 104355 -5.0025000000e-01 1.0785000000e+00 104356 -4.7338000000e-01 1.0591000000e+00 104357 -4.7516000000e-01 1.0253000000e+00 104358 -5.0589000000e-01 1.0097000000e+00 104359 -4.7698000000e-01 9.9073000000e-01 104360 -4.4587000000e-01 1.0066000000e+00 104361 -4.4508000000e-01 1.0414000000e+00 104362 -4.4505000000e-01 1.0741000000e+00 104363 -4.1606000000e-01 1.0590000000e+00 104364 -4.1491000000e-01 1.0241000000e+00 104365 1.1600000000e+00 2.3170000000e-01 104366 1.1753000000e+00 1.9961000000e-01 104367 1.1549000000e+00 1.6456000000e-01 104368 -4.4800000000e-01 9.7066000000e-01 104369 -4.7936000000e-01 9.5698000000e-01 104370 -4.5392000000e-01 9.3669000000e-01 104371 -5.0751000000e-01 9.7505000000e-01 104372 1.1454000000e+00 2.6352000000e-01 104373 1.1796000000e+00 2.6031000000e-01 104374 1.1942000000e+00 2.2904000000e-01 104375 1.2091000000e+00 1.9932000000e-01 104376 1.1939000000e+00 1.7047000000e-01 104377 1.2225000000e+00 1.7459000000e-01 104378 1.7181000000e+00 3.0469000000e-01 104379 1.7017000000e+00 3.3914000000e-01 104380 1.7373000000e+00 3.3272000000e-01 104381 1.7532000000e+00 3.0230000000e-01 104382 1.7713000000e+00 3.3165000000e-01 104383 1.7882000000e+00 3.0081000000e-01 104384 1.7696000000e+00 2.7125000000e-01 104385 1.8045000000e+00 2.6973000000e-01 104386 1.7512000000e+00 2.4161000000e-01 104387 1.7346000000e+00 2.7284000000e-01 104388 1.7330000000e+00 2.1176000000e-01 104389 1.8234000000e+00 2.9911000000e-01 104390 1.8392000000e+00 2.6800000000e-01 104391 2.8689000000e+00 3.0378000000e-01 104392 2.8864000000e+00 2.7341000000e-01 104393 2.9040000000e+00 2.4303000000e-01 104394 2.8863000000e+00 2.1257000000e-01 104395 9.0982000000e-01 2.8848000000e-01 104396 8.7686000000e-01 2.7746000000e-01 104397 8.5813000000e-01 3.1445000000e-01 104398 8.2221000000e-01 3.1768000000e-01 104399 8.3572000000e-01 2.8487000000e-01 104400 8.0634000000e-01 2.9248000000e-01 104401 7.8443000000e-01 3.1645000000e-01 104402 2.9217000000e+00 2.7354000000e-01 104403 2.9392000000e+00 2.4314000000e-01 104404 2.9215000000e+00 2.1265000000e-01 104405 1.6951000000e+00 1.6463000000e+00 104406 1.6773000000e+00 1.6160000000e+00 104407 1.6419000000e+00 1.6163000000e+00 104408 1.6066000000e+00 1.6167000000e+00 104409 1.5714000000e+00 1.6169000000e+00 104410 7.6963000000e-01 3.5382000000e-01 104411 7.5575000000e-01 3.8779000000e-01 104412 7.7676000000e-01 4.1679000000e-01 104413 7.9636000000e-01 4.4548000000e-01 104414 7.6291000000e-01 4.4855000000e-01 104415 7.8337000000e-01 4.7552000000e-01 104416 2.7277000000e+00 4.2481000000e-01 104417 2.7630000000e+00 4.2504000000e-01 104418 2.7808000000e+00 3.9468000000e-01 104419 2.8160000000e+00 3.9488000000e-01 104420 1.5364000000e+00 1.6171000000e+00 104421 1.5014000000e+00 1.6172000000e+00 104422 1.4841000000e+00 1.5869000000e+00 104423 1.4493000000e+00 1.5867000000e+00 104424 1.4144000000e+00 1.5865000000e+00 104425 1.3793000000e+00 1.5861000000e+00 104426 1.3615000000e+00 1.6166000000e+00 104427 1.3437000000e+00 1.6472000000e+00 104428 1.3261000000e+00 1.6778000000e+00 104429 -8.7990000000e-01 1.2646000000e+00 104430 -8.5014000000e-01 1.2513000000e+00 104431 -8.1989000000e-01 1.2384000000e+00 104432 -7.8840000000e-01 1.2258000000e+00 104433 -7.5609000000e-01 1.2129000000e+00 104434 -7.2378000000e-01 1.1997000000e+00 104435 -7.1945000000e-01 1.1656000000e+00 104436 -6.9194000000e-01 1.1859000000e+00 104437 -6.6048000000e-01 1.1713000000e+00 104438 -6.2902000000e-01 1.1557000000e+00 104439 3.2486000000e+00 1.3133000000e+00 104440 3.2483000000e+00 1.3486000000e+00 104441 3.2479000000e+00 1.3839000000e+00 104442 3.2475000000e+00 1.4193000000e+00 104443 3.2469000000e+00 1.4548000000e+00 104444 3.2463000000e+00 1.4904000000e+00 104445 3.2456000000e+00 1.5262000000e+00 104446 3.2448000000e+00 1.5621000000e+00 104447 3.2130000000e+00 1.5811000000e+00 104448 3.1809000000e+00 1.6005000000e+00 104449 3.1802000000e+00 1.6375000000e+00 104450 3.1482000000e+00 1.6204000000e+00 104451 3.1160000000e+00 1.6028000000e+00 104452 3.0852000000e+00 1.6242000000e+00 104453 3.0517000000e+00 1.6148000000e+00 104454 3.0169000000e+00 1.6086000000e+00 104455 2.9823000000e+00 1.6028000000e+00 104456 2.9476000000e+00 1.5971000000e+00 104457 2.9123000000e+00 1.5909000000e+00 104458 2.8760000000e+00 1.5843000000e+00 104459 2.8385000000e+00 1.5776000000e+00 104460 2.8002000000e+00 1.5703000000e+00 104461 2.7607000000e+00 1.5618000000e+00 104462 2.7258000000e+00 1.5941000000e+00 104463 2.6961000000e+00 1.5716000000e+00 104464 2.6638000000e+00 1.5724000000e+00 104465 2.6271000000e+00 1.5742000000e+00 104466 2.6081000000e+00 1.6071000000e+00 104467 2.5890000000e+00 1.6398000000e+00 104468 2.5690000000e+00 1.6716000000e+00 104469 2.5481000000e+00 1.7026000000e+00 104470 2.5118000000e+00 1.7002000000e+00 104471 2.6463000000e+00 1.5417000000e+00 104472 2.6096000000e+00 1.5426000000e+00 104473 2.5897000000e+00 1.5753000000e+00 104474 2.5716000000e+00 1.6085000000e+00 104475 2.5531000000e+00 1.6399000000e+00 104476 2.5330000000e+00 1.6702000000e+00 104477 2.4977000000e+00 1.6679000000e+00 104478 2.4843000000e+00 1.6362000000e+00 104479 2.4722000000e+00 1.6044000000e+00 104480 2.4607000000e+00 1.5715000000e+00 104481 2.4251000000e+00 1.5673000000e+00 104482 2.3901000000e+00 1.5638000000e+00 104483 2.3560000000e+00 1.5603000000e+00 104484 2.3224000000e+00 1.5564000000e+00 104485 2.3013000000e+00 1.5834000000e+00 104486 2.2805000000e+00 1.6103000000e+00 104487 2.2620000000e+00 1.6380000000e+00 104488 2.2769000000e+00 1.6599000000e+00 104489 2.2458000000e+00 1.6075000000e+00 104490 2.4115000000e+00 1.5351000000e+00 104491 2.3769000000e+00 1.5326000000e+00 104492 2.3435000000e+00 1.5294000000e+00 104493 2.3103000000e+00 1.5256000000e+00 104494 2.2890000000e+00 1.5525000000e+00 104495 2.2676000000e+00 1.5795000000e+00 104496 2.2335000000e+00 1.5751000000e+00 104497 2.2556000000e+00 1.5484000000e+00 104498 2.2228000000e+00 1.5443000000e+00 104499 2.2044000000e+00 1.5680000000e+00 104500 2.2050000000e+00 1.6028000000e+00 104501 2.1654000000e+00 1.6134000000e+00 104502 2.1530000000e+00 1.6451000000e+00 104503 2.6050000000e+00 3.9365000000e-01 104504 2.6222000000e+00 4.2398000000e-01 104505 2.6573000000e+00 4.2428000000e-01 104506 2.6924000000e+00 4.2456000000e-01 104507 2.7098000000e+00 4.5514000000e-01 104508 2.7451000000e+00 4.5541000000e-01 104509 2.7805000000e+00 4.5565000000e-01 104510 2.7983000000e+00 4.2526000000e-01 104511 2.1710000000e+00 1.5754000000e+00 104512 2.1384000000e+00 1.5942000000e+00 104513 2.1367000000e+00 1.6220000000e+00 104514 8.4356000000e-02 7.2869000000e-02 104515 1.1856000000e-01 7.7559000000e-02 104516 9.7714000000e-02 1.0463000000e-01 104517 1.3179000000e-01 1.0993000000e-01 104518 1.1009000000e-01 1.3650000000e-01 104519 1.4476000000e-01 1.4336000000e-01 104520 1.6653000000e-01 1.1509000000e-01 104521 1.5308000000e-01 8.2403000000e-02 104522 7.6279000000e-01 1.5965000000e-01 104523 7.5614000000e-01 1.9988000000e-01 104524 7.8064000000e-01 2.2708000000e-01 104525 8.0534000000e-01 2.5942000000e-01 104526 7.6747000000e-01 2.6015000000e-01 104527 7.8398000000e-01 2.8404000000e-01 104528 8.4547000000e-01 2.4780000000e-01 104529 8.8252000000e-01 2.3549000000e-01 104530 9.1675000000e-01 2.2042000000e-01 104531 9.1646000000e-01 1.8983000000e-01 104532 7.4543000000e-01 2.3305000000e-01 104533 7.3311000000e-01 2.6561000000e-01 104534 7.5630000000e-01 2.9175000000e-01 104535 7.4632000000e-01 3.2536000000e-01 104536 7.3381000000e-01 3.5930000000e-01 104537 7.1123000000e-01 3.3191000000e-01 104538 6.9907000000e-01 3.6461000000e-01 104539 7.2080000000e-01 3.9239000000e-01 104540 6.8626000000e-01 3.9711000000e-01 104541 7.0769000000e-01 4.2505000000e-01 104542 6.7307000000e-01 4.2990000000e-01 104543 6.9481000000e-01 4.5762000000e-01 104544 7.2891000000e-01 4.5275000000e-01 104545 7.4215000000e-01 4.2055000000e-01 104546 6.6528000000e-01 3.6945000000e-01 104547 6.5154000000e-01 4.0133000000e-01 104548 6.3078000000e-01 3.7162000000e-01 104549 6.1590000000e-01 4.0528000000e-01 104550 6.3784000000e-01 4.3463000000e-01 104551 6.6012000000e-01 4.6367000000e-01 104552 6.8296000000e-01 4.8983000000e-01 104553 7.1598000000e-01 4.8456000000e-01 104554 7.0308000000e-01 5.1483000000e-01 104555 7.3614000000e-01 5.1212000000e-01 104556 7.2015000000e-01 5.4377000000e-01 104557 5.9342000000e-01 3.7476000000e-01 104558 5.7953000000e-01 4.1040000000e-01 104559 6.0217000000e-01 4.3898000000e-01 104560 6.1145000000e-01 3.3444000000e-01 104561 5.6765000000e-01 3.4470000000e-01 104562 5.5514000000e-01 3.8213000000e-01 104563 5.2914000000e-01 3.5420000000e-01 104564 5.1795000000e-01 3.9091000000e-01 104565 5.4308000000e-01 4.1781000000e-01 104566 -3.8853000000e-01 1.6185000000e+00 104567 -4.2350000000e-01 1.6185000000e+00 104568 -4.5848000000e-01 1.6186000000e+00 104569 -4.9347000000e-01 1.6186000000e+00 104570 -5.2847000000e-01 1.6186000000e+00 104571 -5.6349000000e-01 1.6186000000e+00 104572 -5.9853000000e-01 1.6186000000e+00 104573 -6.3361000000e-01 1.6185000000e+00 104574 -6.6872000000e-01 1.6184000000e+00 104575 -7.0388000000e-01 1.6182000000e+00 104576 -7.3911000000e-01 1.6180000000e+00 104577 -7.7442000000e-01 1.6177000000e+00 104578 -7.9210000000e-01 1.5870000000e+00 104579 -8.0984000000e-01 1.5561000000e+00 104580 -8.4584000000e-01 1.5556000000e+00 104581 -8.6434000000e-01 1.5238000000e+00 104582 -9.0146000000e-01 1.5243000000e+00 104583 -8.8377000000e-01 1.4909000000e+00 104584 -8.6299000000e-01 1.4539000000e+00 104585 -8.5528000000e-01 1.4155000000e+00 104586 -8.3417000000e-01 1.4359000000e+00 104587 -8.2265000000e-01 1.4101000000e+00 104588 -8.4272000000e-01 1.3837000000e+00 104589 -8.7736000000e-01 1.3877000000e+00 104590 -8.9326000000e-01 1.3621000000e+00 104591 -8.8798000000e-01 1.3324000000e+00 104592 -8.8326000000e-01 1.2980000000e+00 104593 -8.5297000000e-01 1.2837000000e+00 104594 -8.2445000000e-01 1.2703000000e+00 104595 -7.9380000000e-01 1.2595000000e+00 104596 -7.6123000000e-01 1.2478000000e+00 104597 -7.2828000000e-01 1.2346000000e+00 104598 -6.9571000000e-01 1.2207000000e+00 104599 -6.6350000000e-01 1.2061000000e+00 104600 -6.3149000000e-01 1.1909000000e+00 104601 -5.9948000000e-01 1.1751000000e+00 104602 -5.6721000000e-01 1.1591000000e+00 104603 -5.3442000000e-01 1.1438000000e+00 104604 -5.2723000000e-01 1.1049000000e+00 104605 -4.9370000000e-01 1.1063000000e+00 104606 -4.7101000000e-01 1.0908000000e+00 104607 -4.4585000000e-01 1.1022000000e+00 104608 -4.1891000000e-01 1.0923000000e+00 104609 -4.2646000000e-01 1.1292000000e+00 104610 -3.9186000000e-01 1.1111000000e+00 104611 -3.8819000000e-01 1.0782000000e+00 104612 -3.8427000000e-01 1.0436000000e+00 104613 -3.8305000000e-01 1.0068000000e+00 104614 -4.1508000000e-01 9.8718000000e-01 104615 -4.1669000000e-01 9.4582000000e-01 104616 -3.8190000000e-01 9.6919000000e-01 104617 -3.5045000000e-01 9.8992000000e-01 104618 -3.4792000000e-01 9.5355000000e-01 104619 -3.7816000000e-01 9.3189000000e-01 104620 -3.4415000000e-01 9.1766000000e-01 104621 -3.1481000000e-01 9.3857000000e-01 104622 -3.1799000000e-01 9.7405000000e-01 104623 -2.8563000000e-01 9.5917000000e-01 104624 -2.8193000000e-01 9.2386000000e-01 104625 -2.5293000000e-01 9.4488000000e-01 104626 -2.4866000000e-01 9.0914000000e-01 104627 -2.7831000000e-01 8.8827000000e-01 104628 -3.1116000000e-01 9.0315000000e-01 104629 -3.4003000000e-01 8.8248000000e-01 104630 -3.0765000000e-01 8.6805000000e-01 104631 -3.3624000000e-01 8.4790000000e-01 104632 -3.6818000000e-01 8.6183000000e-01 104633 -3.7269000000e-01 8.9630000000e-01 104634 -4.0549000000e-01 9.0881000000e-01 104635 -4.0000000000e-01 8.7511000000e-01 104636 -4.3111000000e-01 8.8750000000e-01 104637 -4.3416000000e-01 9.1625000000e-01 104638 -3.6426000000e-01 8.2770000000e-01 104639 -3.9571000000e-01 8.4145000000e-01 104640 -4.2663000000e-01 8.5473000000e-01 104641 -4.5670000000e-01 8.6763000000e-01 104642 -4.6350000000e-01 9.0241000000e-01 104643 1.3973000000e+00 1.5557000000e+00 104644 1.3622000000e+00 1.5552000000e+00 104645 1.3442000000e+00 1.5858000000e+00 104646 1.3263000000e+00 1.6164000000e+00 104647 1.3086000000e+00 1.6471000000e+00 104648 7.4980000000e-01 4.8024000000e-01 104649 7.7133000000e-01 5.0795000000e-01 104650 2.4437000000e-01 6.2460000000e-02 104651 2.8006000000e-01 6.5984000000e-02 104652 2.5891000000e-01 9.5823000000e-02 104653 2.9563000000e-01 1.0042000000e-01 104654 2.7297000000e-01 1.2920000000e-01 104655 3.0747000000e-01 1.3509000000e-01 104656 3.3759000000e-01 1.0713000000e-01 104657 3.1679000000e-01 6.9275000000e-02 104658 3.2139000000e+00 1.5449000000e+00 104659 3.1819000000e+00 1.5638000000e+00 104660 3.1493000000e+00 1.5830000000e+00 104661 3.1155000000e+00 2.4319000000e-01 104662 3.1507000000e+00 2.4290000000e-01 104663 3.1860000000e+00 2.4268000000e-01 104664 3.2034000000e+00 2.1157000000e-01 104665 3.2187000000e+00 1.8073000000e-01 104666 7.2251000000e-01 2.9898000000e-01 104667 6.8865000000e-01 3.0567000000e-01 104668 6.7696000000e-01 3.3758000000e-01 104669 3.0802000000e+00 1.5845000000e+00 104670 3.0416000000e+00 1.5814000000e+00 104671 3.0070000000e+00 1.5745000000e+00 104672 2.9722000000e+00 1.5693000000e+00 104673 2.9384000000e+00 1.5632000000e+00 104674 2.9034000000e+00 1.5552000000e+00 104675 2.8664000000e+00 1.5480000000e+00 104676 2.8290000000e+00 1.5404000000e+00 104677 2.7912000000e+00 1.5321000000e+00 104678 2.7534000000e+00 1.5225000000e+00 104679 2.7229000000e+00 1.5501000000e+00 104680 2.6850000000e+00 1.5383000000e+00 104681 2.6626000000e+00 1.5149000000e+00 104682 2.6301000000e+00 1.5079000000e+00 104683 2.5956000000e+00 1.5154000000e+00 104684 2.5690000000e+00 1.5404000000e+00 104685 2.5528000000e+00 1.5785000000e+00 104686 2.5374000000e+00 1.6100000000e+00 104687 2.5184000000e+00 1.6389000000e+00 104688 3.2218000000e+00 2.4249000000e-01 104689 3.2037000000e+00 2.7371000000e-01 104690 3.2179000000e+00 3.0594000000e-01 104691 3.2268000000e+00 3.3754000000e-01 104692 3.2310000000e+00 3.6799000000e-01 104693 3.2034000000e+00 3.8293000000e-01 104694 3.2027000000e+00 4.1682000000e-01 104695 3.2030000000e+00 4.5176000000e-01 104696 3.2340000000e+00 4.6916000000e-01 104697 3.2349000000e+00 5.0498000000e-01 104698 3.2672000000e+00 5.2235000000e-01 104699 3.3004000000e+00 5.3898000000e-01 104700 3.2690000000e+00 5.5958000000e-01 104701 3.2725000000e+00 5.9593000000e-01 104702 3.2467000000e+00 6.1633000000e-01 104703 3.2489000000e+00 6.4657000000e-01 104704 3.2475000000e+00 6.7898000000e-01 104705 3.2466000000e+00 7.1388000000e-01 104706 3.2467000000e+00 7.4943000000e-01 104707 3.2469000000e+00 7.8498000000e-01 104708 3.2472000000e+00 8.2048000000e-01 104709 3.2475000000e+00 8.5597000000e-01 104710 3.2478000000e+00 8.9144000000e-01 104711 3.2482000000e+00 9.2684000000e-01 104712 3.2487000000e+00 9.6212000000e-01 104713 3.2490000000e+00 9.9729000000e-01 104714 3.2493000000e+00 1.0324000000e+00 104715 3.2495000000e+00 1.0674000000e+00 104716 3.2496000000e+00 1.1024000000e+00 104717 3.2495000000e+00 1.1374000000e+00 104718 3.2494000000e+00 1.1725000000e+00 104719 3.2493000000e+00 1.2076000000e+00 104720 3.2491000000e+00 1.2428000000e+00 104721 3.2489000000e+00 1.2780000000e+00 104722 3.2181000000e+00 1.2958000000e+00 104723 3.2178000000e+00 1.3312000000e+00 104724 3.2174000000e+00 1.3666000000e+00 104725 3.2170000000e+00 1.4020000000e+00 104726 3.2164000000e+00 1.4375000000e+00 104727 3.2157000000e+00 1.4731000000e+00 104728 3.2148000000e+00 1.5088000000e+00 104729 1.2207000000e+00 1.6778000000e+00 104730 1.2382000000e+00 1.6471000000e+00 104731 1.2030000000e+00 1.6472000000e+00 104732 1.1856000000e+00 1.6779000000e+00 104733 3.1859000000e+00 1.4202000000e+00 104734 3.1851000000e+00 1.4558000000e+00 104735 3.1842000000e+00 1.4915000000e+00 104736 3.1831000000e+00 1.5275000000e+00 104737 3.1508000000e+00 1.5462000000e+00 104738 3.1176000000e+00 1.5650000000e+00 104739 2.8866000000e+00 3.3432000000e-01 104740 2.9041000000e+00 3.0393000000e-01 104741 2.9394000000e+00 3.0409000000e-01 104742 2.9569000000e+00 2.7367000000e-01 104743 2.9744000000e+00 2.4323000000e-01 104744 2.9567000000e+00 2.1273000000e-01 104745 2.9389000000e+00 1.8227000000e-01 104746 2.9741000000e+00 1.8233000000e-01 104747 2.9915000000e+00 1.5193000000e-01 104748 2.9923000000e+00 2.7379000000e-01 104749 3.0276000000e+00 2.7390000000e-01 104750 3.0101000000e+00 3.0441000000e-01 104751 3.0456000000e+00 3.0455000000e-01 104752 3.0630000000e+00 2.7397000000e-01 104753 2.9748000000e+00 3.0426000000e-01 104754 2.1073000000e+00 1.6120000000e+00 104755 2.0747000000e+00 1.6138000000e+00 104756 2.0456000000e+00 1.6354000000e+00 104757 3.0811000000e+00 3.0471000000e-01 104758 3.0984000000e+00 2.7396000000e-01 104759 2.1112000000e+00 1.5767000000e+00 104760 2.0848000000e+00 1.5899000000e+00 104761 2.0504000000e+00 1.5897000000e+00 104762 2.0125000000e+00 1.6101000000e+00 104763 2.0050000000e+00 1.6453000000e+00 104764 1.9712000000e+00 1.6506000000e+00 104765 1.9571000000e+00 1.6799000000e+00 104766 1.9240000000e+00 1.6791000000e+00 104767 1.8892000000e+00 1.6785000000e+00 104768 1.9096000000e+00 1.6432000000e+00 104769 1.8697000000e+00 1.6500000000e+00 104770 1.8547000000e+00 1.6801000000e+00 104771 3.0765000000e-02 1.6177000000e+00 104772 -4.2988000000e-03 1.6178000000e+00 104773 -3.9333000000e-02 1.6179000000e+00 104774 -7.4328000000e-02 1.6179000000e+00 104775 -1.0928000000e-01 1.6180000000e+00 104776 -1.4420000000e-01 1.6181000000e+00 104777 -1.7908000000e-01 1.6182000000e+00 104778 -2.1396000000e-01 1.6183000000e+00 104779 -2.4883000000e-01 1.6183000000e+00 104780 -2.8372000000e-01 1.6184000000e+00 104781 -3.1864000000e-01 1.6184000000e+00 104782 -3.5357000000e-01 1.6184000000e+00 104783 -3.7086000000e-01 1.5882000000e+00 104784 -4.0582000000e-01 1.5882000000e+00 104785 -4.4080000000e-01 1.5883000000e+00 104786 -4.7578000000e-01 1.5883000000e+00 104787 -5.1077000000e-01 1.5884000000e+00 104788 -5.4578000000e-01 1.5884000000e+00 104789 -5.8081000000e-01 1.5884000000e+00 104790 -6.1587000000e-01 1.5883000000e+00 104791 -6.5098000000e-01 1.5882000000e+00 104792 -6.8613000000e-01 1.5880000000e+00 104793 -7.2135000000e-01 1.5878000000e+00 104794 -7.5666000000e-01 1.5874000000e+00 104795 -7.7419000000e-01 1.5567000000e+00 104796 -7.9162000000e-01 1.5258000000e+00 104797 -8.2760000000e-01 1.5247000000e+00 104798 -8.4530000000e-01 1.4919000000e+00 104799 -7.0352000000e-01 1.5576000000e+00 104800 -7.3878000000e-01 1.5573000000e+00 104801 -7.5614000000e-01 1.5267000000e+00 104802 -7.7328000000e-01 1.4961000000e+00 104803 -8.0868000000e-01 1.4946000000e+00 104804 -8.2442000000e-01 1.4632000000e+00 104805 -8.0550000000e-01 1.4367000000e+00 104806 -7.8968000000e-01 1.4083000000e+00 104807 -8.0853000000e-01 1.3802000000e+00 104808 -8.2888000000e-01 1.3518000000e+00 104809 -8.6359000000e-01 1.3563000000e+00 104810 -8.5130000000e-01 1.3202000000e+00 104811 -8.2871000000e-01 1.2974000000e+00 104812 -8.0115000000e-01 1.2914000000e+00 104813 -7.6766000000e-01 1.2829000000e+00 104814 -7.3312000000e-01 1.2706000000e+00 104815 -6.9977000000e-01 1.2560000000e+00 104816 -6.6696000000e-01 1.2414000000e+00 104817 -6.3440000000e-01 1.2263000000e+00 104818 -6.0206000000e-01 1.2106000000e+00 104819 -6.0476000000e-01 1.2464000000e+00 104820 -5.7233000000e-01 1.2302000000e+00 104821 -5.6992000000e-01 1.1947000000e+00 104822 -5.3810000000e-01 1.1789000000e+00 104823 -5.4035000000e-01 1.2139000000e+00 104824 -5.0911000000e-01 1.1975000000e+00 104825 -5.0761000000e-01 1.1642000000e+00 104826 -5.0216000000e-01 1.1327000000e+00 104827 -4.6784000000e-01 1.1246000000e+00 104828 -4.5355000000e-01 1.1586000000e+00 104829 -4.1785000000e-01 1.1702000000e+00 104830 -3.8942000000e-01 1.1456000000e+00 104831 -3.6192000000e-01 1.1247000000e+00 104832 -3.6630000000e-01 1.0965000000e+00 104833 -3.3786000000e-01 1.1019000000e+00 104834 -3.5174000000e-01 1.0668000000e+00 104835 -3.1360000000e-01 1.0771000000e+00 104836 -3.2032000000e-01 1.0438000000e+00 104837 -3.5166000000e-01 1.0267000000e+00 104838 -3.2016000000e-01 1.0093000000e+00 104839 -2.9159000000e-01 1.0272000000e+00 104840 -2.8896000000e-01 9.9388000000e-01 104841 -2.5715000000e-01 9.7980000000e-01 104842 -2.6123000000e-01 1.0138000000e+00 104843 -2.6571000000e-01 1.0470000000e+00 104844 -2.9320000000e-01 1.0557000000e+00 104845 -2.7485000000e-01 1.0834000000e+00 104846 -2.3898000000e-01 1.0677000000e+00 104847 -2.3978000000e-01 1.1022000000e+00 104848 -2.1072000000e-01 1.0851000000e+00 104849 -2.0848000000e-01 1.0541000000e+00 104850 -2.3446000000e-01 1.0342000000e+00 104851 -2.0289000000e-01 1.0221000000e+00 104852 -2.2956000000e-01 1.0007000000e+00 104853 -2.2461000000e-01 9.6635000000e-01 104854 -1.9709000000e-01 9.8827000000e-01 104855 -1.7029000000e-01 1.0108000000e+00 104856 -1.6388000000e-01 9.7617000000e-01 104857 -1.9138000000e-01 9.5346000000e-01 104858 -1.5765000000e-01 9.4114000000e-01 104859 -1.8550000000e-01 9.1793000000e-01 104860 -2.1957000000e-01 9.3101000000e-01 104861 -2.1432000000e-01 8.9436000000e-01 104862 -2.4486000000e-01 8.7250000000e-01 104863 -2.7550000000e-01 8.5295000000e-01 104864 -3.0451000000e-01 8.3356000000e-01 104865 -2.4393000000e-01 8.3648000000e-01 104866 -2.7361000000e-01 8.1883000000e-01 104867 -3.0129000000e-01 7.9989000000e-01 104868 -3.3261000000e-01 8.1374000000e-01 104869 -3.2867000000e-01 7.7977000000e-01 104870 -2.9687000000e-01 7.6672000000e-01 104871 -3.2398000000e-01 7.4554000000e-01 104872 -3.5654000000e-01 7.5913000000e-01 104873 -3.5202000000e-01 7.2401000000e-01 104874 -3.8515000000e-01 7.3835000000e-01 104875 -3.8870000000e-01 7.7343000000e-01 104876 -4.1763000000e-01 7.5368000000e-01 104877 -4.1477000000e-01 7.1795000000e-01 104878 -4.4790000000e-01 7.3451000000e-01 104879 -4.4894000000e-01 7.6967000000e-01 104880 -4.8362000000e-01 7.5306000000e-01 104881 -4.7726000000e-01 7.1438000000e-01 104882 -4.4494000000e-01 6.9821000000e-01 104883 -4.7481000000e-01 6.7878000000e-01 104884 -5.0642000000e-01 6.9539000000e-01 104885 -5.0484000000e-01 6.5910000000e-01 104886 -5.3743000000e-01 6.7674000000e-01 104887 -5.3577000000e-01 6.3898000000e-01 104888 -5.0213000000e-01 6.2162000000e-01 104889 -5.3405000000e-01 6.0082000000e-01 104890 -5.6734000000e-01 6.1913000000e-01 104891 -5.6864000000e-01 6.5641000000e-01 104892 -5.9981000000e-01 6.3678000000e-01 104893 -6.0095000000e-01 6.7331000000e-01 104894 -5.7041000000e-01 6.9348000000e-01 104895 -5.3834000000e-01 7.1698000000e-01 104896 -5.7418000000e-01 7.2854000000e-01 104897 -5.5165000000e-01 7.4694000000e-01 104898 -5.7675000000e-01 7.6154000000e-01 104899 -6.0505000000e-01 7.4336000000e-01 104900 -6.0726000000e-01 7.7828000000e-01 104901 -5.7580000000e-01 7.9588000000e-01 104902 -6.0716000000e-01 8.1497000000e-01 104903 -5.7411000000e-01 8.3218000000e-01 104904 -5.4298000000e-01 8.1208000000e-01 104905 -5.4166000000e-01 8.4910000000e-01 104906 -5.3933000000e-01 8.8579000000e-01 104907 -5.1022000000e-01 8.6569000000e-01 104908 -5.0346000000e-01 9.0323000000e-01 104909 -4.8329000000e-01 8.7750000000e-01 104910 -4.8241000000e-01 8.4852000000e-01 104911 -5.1101000000e-01 8.2997000000e-01 104912 -3.9207000000e-01 8.0766000000e-01 104913 -4.2296000000e-01 8.2162000000e-01 104914 -4.2007000000e-01 7.8812000000e-01 104915 -4.4992000000e-01 8.0262000000e-01 104916 -4.5313000000e-01 8.3506000000e-01 104917 -4.7994000000e-01 8.1522000000e-01 104918 -7.7222000000e-01 1.4370000000e+00 104919 -7.5536000000e-01 1.4073000000e+00 104920 -7.7380000000e-01 1.3781000000e+00 104921 -7.9346000000e-01 1.3492000000e+00 104922 -8.1368000000e-01 1.3212000000e+00 104923 3.4641000000e-01 1.6787000000e+00 104924 3.1133000000e-01 1.6787000000e+00 104925 2.9389000000e-01 1.6483000000e+00 104926 2.5879000000e-01 1.6483000000e+00 104927 2.2369000000e-01 1.6483000000e+00 104928 1.8861000000e-01 1.6482000000e+00 104929 1.5353000000e-01 1.6482000000e+00 104930 1.1846000000e-01 1.6482000000e+00 104931 8.3386000000e-02 1.6482000000e+00 104932 6.5848000000e-02 1.6177000000e+00 104933 4.8283000000e-02 1.5872000000e+00 104934 1.3173000000e-02 1.5872000000e+00 104935 -2.1905000000e-02 1.5873000000e+00 104936 -5.6933000000e-02 1.5875000000e+00 104937 -9.1901000000e-02 1.5876000000e+00 104938 -1.2681000000e-01 1.5877000000e+00 104939 -1.6167000000e-01 1.5879000000e+00 104940 -1.9649000000e-01 1.5880000000e+00 104941 -2.3132000000e-01 1.5880000000e+00 104942 -2.6616000000e-01 1.5881000000e+00 104943 -3.0102000000e-01 1.5881000000e+00 104944 -3.3593000000e-01 1.5881000000e+00 104945 -3.5316000000e-01 1.5579000000e+00 104946 -3.8811000000e-01 1.5579000000e+00 104947 -4.2309000000e-01 1.5580000000e+00 104948 -4.5807000000e-01 1.5581000000e+00 104949 -4.9305000000e-01 1.5581000000e+00 104950 -5.2803000000e-01 1.5582000000e+00 104951 -5.6304000000e-01 1.5582000000e+00 104952 -5.9809000000e-01 1.5581000000e+00 104953 -6.3318000000e-01 1.5580000000e+00 104954 -6.6833000000e-01 1.5579000000e+00 104955 -6.8565000000e-01 1.5275000000e+00 104956 -7.2086000000e-01 1.5272000000e+00 104957 -7.3812000000e-01 1.4968000000e+00 104958 -7.5524000000e-01 1.4666000000e+00 104959 -7.8989000000e-01 1.4657000000e+00 104960 -7.3765000000e-01 1.4369000000e+00 104961 -7.2029000000e-01 1.4067000000e+00 104962 -7.3850000000e-01 1.3768000000e+00 104963 -7.5729000000e-01 1.3464000000e+00 104964 -7.7856000000e-01 1.3170000000e+00 104965 3.2191000000e+00 1.0848000000e+00 104966 3.2191000000e+00 1.1198000000e+00 104967 3.2190000000e+00 1.1549000000e+00 104968 3.2188000000e+00 1.1900000000e+00 104969 3.2186000000e+00 1.2252000000e+00 104970 3.2183000000e+00 1.2605000000e+00 104971 3.1875000000e+00 1.2784000000e+00 104972 3.1872000000e+00 1.3138000000e+00 104973 3.1869000000e+00 1.3492000000e+00 104974 3.1864000000e+00 1.3847000000e+00 104975 3.1553000000e+00 1.4030000000e+00 104976 3.1547000000e+00 1.4386000000e+00 104977 3.1537000000e+00 1.4742000000e+00 104978 3.1525000000e+00 1.5100000000e+00 104979 3.1205000000e+00 1.5283000000e+00 104980 3.0885000000e+00 1.5457000000e+00 104981 2.3968000000e+00 1.5046000000e+00 104982 2.3638000000e+00 1.5024000000e+00 104983 2.3314000000e+00 1.4988000000e+00 104984 2.2987000000e+00 1.4946000000e+00 104985 2.2771000000e+00 1.5215000000e+00 104986 2.2437000000e+00 1.5175000000e+00 104987 2.2100000000e+00 1.5142000000e+00 104988 2.1898000000e+00 1.5424000000e+00 104989 2.4319000000e+00 1.5049000000e+00 104990 2.4144000000e+00 1.4761000000e+00 104991 2.3826000000e+00 1.4762000000e+00 104992 2.3519000000e+00 1.4727000000e+00 104993 2.3204000000e+00 1.4682000000e+00 104994 2.2878000000e+00 1.4631000000e+00 104995 2.2654000000e+00 1.4902000000e+00 104996 2.2315000000e+00 1.4865000000e+00 104997 2.1970000000e+00 1.4829000000e+00 104998 2.1753000000e+00 1.5116000000e+00 104999 2.1553000000e+00 1.5410000000e+00 105000 2.1396000000e+00 1.5100000000e+00 105001 2.1178000000e+00 1.5410000000e+00 105002 2.1387000000e+00 1.5657000000e+00 105003 2.9219000000e+00 3.3451000000e-01 105004 2.9572000000e+00 3.3471000000e-01 105005 2.9926000000e+00 3.3491000000e-01 105006 2.0806000000e+00 1.5573000000e+00 105007 2.0432000000e+00 1.5492000000e+00 105008 2.0116000000e+00 1.5719000000e+00 105009 1.9794000000e+00 1.5939000000e+00 105010 1.9834000000e+00 1.6243000000e+00 105011 1.9492000000e+00 1.6215000000e+00 105012 1.9422000000e+00 1.6549000000e+00 105013 1.9137000000e+00 1.6019000000e+00 105014 1.8793000000e+00 1.6161000000e+00 105015 1.8454000000e+00 1.6266000000e+00 105016 1.8400000000e+00 1.6553000000e+00 105017 1.9450000000e+00 1.5818000000e+00 105018 1.9747000000e+00 1.5537000000e+00 105019 1.9368000000e+00 1.5489000000e+00 105020 1.9163000000e+00 1.5710000000e+00 105021 2.0666000000e+00 1.5283000000e+00 105022 2.0406000000e+00 1.5136000000e+00 105023 2.0097000000e+00 1.5345000000e+00 105024 1.8091000000e+00 1.6415000000e+00 105025 1.7677000000e+00 1.6442000000e+00 105026 1.7309000000e+00 1.6456000000e+00 105027 1.7126000000e+00 1.6154000000e+00 105028 1.6949000000e+00 1.5853000000e+00 105029 1.6596000000e+00 1.5855000000e+00 105030 1.6242000000e+00 1.5859000000e+00 105031 1.5889000000e+00 1.5863000000e+00 105032 1.5539000000e+00 1.5866000000e+00 105033 1.5190000000e+00 1.5868000000e+00 105034 1.5017000000e+00 1.5566000000e+00 105035 1.4670000000e+00 1.5565000000e+00 105036 1.4322000000e+00 1.5562000000e+00 105037 1.4154000000e+00 1.5255000000e+00 105038 1.4501000000e+00 1.5261000000e+00 105039 1.4336000000e+00 1.4956000000e+00 105040 1.3988000000e+00 1.4947000000e+00 105041 1.4175000000e+00 1.4648000000e+00 105042 1.3825000000e+00 1.4635000000e+00 105043 1.3637000000e+00 1.4936000000e+00 105044 1.3804000000e+00 1.5248000000e+00 105045 1.3451000000e+00 1.5241000000e+00 105046 5.9099000000e-01 1.6790000000e+00 105047 5.5618000000e-01 1.6791000000e+00 105048 5.2135000000e-01 1.6791000000e+00 105049 4.8648000000e-01 1.6790000000e+00 105050 4.5154000000e-01 1.6789000000e+00 105051 4.1653000000e-01 1.6788000000e+00 105052 3.8148000000e-01 1.6788000000e+00 105053 3.6411000000e-01 1.6484000000e+00 105054 3.2900000000e-01 1.6483000000e+00 105055 3.1158000000e-01 1.6179000000e+00 105056 2.7645000000e-01 1.6179000000e+00 105057 2.4133000000e-01 1.6178000000e+00 105058 2.0622000000e-01 1.6178000000e+00 105059 1.7113000000e-01 1.6178000000e+00 105060 1.3603000000e-01 1.6178000000e+00 105061 1.0094000000e-01 1.6177000000e+00 105062 8.3405000000e-02 1.5872000000e+00 105063 6.5842000000e-02 1.5566000000e+00 105064 3.0673000000e-02 1.5566000000e+00 105065 -4.4739000000e-03 1.5567000000e+00 105066 -3.9564000000e-02 1.5569000000e+00 105067 -7.4572000000e-02 1.5571000000e+00 105068 -1.0949000000e-01 1.5573000000e+00 105069 -1.4432000000e-01 1.5575000000e+00 105070 -1.7909000000e-01 1.5576000000e+00 105071 -2.1384000000e-01 1.5577000000e+00 105072 -2.4860000000e-01 1.5578000000e+00 105073 -2.8341000000e-01 1.5578000000e+00 105074 -3.1826000000e-01 1.5578000000e+00 105075 -3.3543000000e-01 1.5276000000e+00 105076 -3.7035000000e-01 1.5276000000e+00 105077 -4.0534000000e-01 1.5277000000e+00 105078 -4.4034000000e-01 1.5278000000e+00 105079 -4.7532000000e-01 1.5279000000e+00 105080 -5.1027000000e-01 1.5280000000e+00 105081 -5.4524000000e-01 1.5280000000e+00 105082 -5.8026000000e-01 1.5279000000e+00 105083 -6.1534000000e-01 1.5278000000e+00 105084 -6.5048000000e-01 1.5277000000e+00 105085 -6.6777000000e-01 1.4974000000e+00 105086 -7.0296000000e-01 1.4972000000e+00 105087 -6.8509000000e-01 1.4671000000e+00 105088 -7.2027000000e-01 1.4669000000e+00 105089 -7.0254000000e-01 1.4368000000e+00 105090 -6.8475000000e-01 1.4063000000e+00 105091 -7.0294000000e-01 1.3760000000e+00 105092 -7.2133000000e-01 1.3460000000e+00 105093 -7.3809000000e-01 1.3108000000e+00 105094 -7.0371000000e-01 1.2913000000e+00 105095 -6.7080000000e-01 1.2770000000e+00 105096 -6.3761000000e-01 1.2622000000e+00 105097 -6.0751000000e-01 1.2827000000e+00 105098 -5.7462000000e-01 1.2662000000e+00 105099 -5.4230000000e-01 1.2495000000e+00 105100 -5.1030000000e-01 1.2326000000e+00 105101 -4.7861000000e-01 1.2150000000e+00 105102 -4.7972000000e-01 1.1804000000e+00 105103 -4.8217000000e-01 1.1521000000e+00 105104 -4.4727000000e-01 1.1949000000e+00 105105 -4.0811000000e-01 1.2120000000e+00 105106 -3.8232000000e-01 1.1810000000e+00 105107 -3.5616000000e-01 1.1577000000e+00 105108 -3.4978000000e-01 1.1907000000e+00 105109 -3.2362000000e-01 1.1690000000e+00 105110 -3.1822000000e-01 1.2029000000e+00 105111 -2.9090000000e-01 1.1812000000e+00 105112 -2.9678000000e-01 1.1464000000e+00 105113 -3.2999000000e-01 1.1351000000e+00 105114 -3.0368000000e-01 1.1112000000e+00 105115 -2.6910000000e-01 1.1231000000e+00 105116 -2.6346000000e-01 1.1587000000e+00 105117 -2.3618000000e-01 1.1368000000e+00 105118 -2.0896000000e-01 1.1171000000e+00 105119 -1.8181000000e-01 1.0986000000e+00 105120 -1.8640000000e-01 1.0713000000e+00 105121 -1.7754000000e-01 1.0445000000e+00 105122 -1.4372000000e-01 1.0349000000e+00 105123 -1.3670000000e-01 9.9921000000e-01 105124 -1.3027000000e-01 9.6417000000e-01 105125 -1.2376000000e-01 9.2928000000e-01 105126 -9.6684000000e-02 9.5233000000e-01 105127 -8.9923000000e-02 9.1780000000e-01 105128 -1.1693000000e-01 8.9443000000e-01 105129 -1.5114000000e-01 9.0592000000e-01 105130 -1.7895000000e-01 8.8178000000e-01 105131 -2.0833000000e-01 8.5385000000e-01 105132 -2.1613000000e-01 8.1740000000e-01 105133 -1.8971000000e-01 8.2675000000e-01 105134 -1.9027000000e-01 7.9894000000e-01 105135 -2.1941000000e-01 7.8502000000e-01 105136 -2.4502000000e-01 8.0339000000e-01 105137 -2.7125000000e-01 7.8670000000e-01 105138 -2.6486000000e-01 7.5547000000e-01 105139 -2.9094000000e-01 7.3290000000e-01 105140 -2.5672000000e-01 7.2166000000e-01 105141 -2.8441000000e-01 6.9734000000e-01 105142 -2.5006000000e-01 6.8621000000e-01 105143 -2.7658000000e-01 6.5717000000e-01 105144 -3.1332000000e-01 6.7540000000e-01 105145 -3.1381000000e-01 6.3995000000e-01 105146 -3.3964000000e-01 6.5866000000e-01 105147 -3.4666000000e-01 6.8856000000e-01 105148 -3.7515000000e-01 6.6074000000e-01 105149 -3.8097000000e-01 7.0180000000e-01 105150 -3.1859000000e-01 7.1064000000e-01 105151 -4.4584000000e-01 1.2332000000e+00 105152 -4.7945000000e-01 1.2514000000e+00 105153 -4.4828000000e-01 1.2713000000e+00 105154 -4.1333000000e-01 1.2546000000e+00 105155 -4.1182000000e-01 6.8107000000e-01 105156 7.0754000000e-01 2.3614000000e-01 105157 6.9940000000e-01 2.7368000000e-01 105158 3.2067000000e+00 3.5574000000e-01 105159 3.1754000000e+00 3.5895000000e-01 105160 3.1725000000e+00 3.9795000000e-01 105161 3.1723000000e+00 4.3396000000e-01 105162 3.1727000000e+00 4.6928000000e-01 105163 3.2035000000e+00 4.8715000000e-01 105164 3.2037000000e+00 5.2304000000e-01 105165 3.2356000000e+00 5.4198000000e-01 105166 2.0905000000e+00 1.5263000000e+00 105167 2.0783000000e+00 1.4950000000e+00 105168 2.0414000000e+00 1.4780000000e+00 105169 2.0046000000e+00 1.4966000000e+00 105170 3.2162000000e+00 8.0225000000e-01 105171 3.2164000000e+00 8.3785000000e-01 105172 3.2167000000e+00 8.7348000000e-01 105173 3.2172000000e+00 9.0907000000e-01 105174 3.2177000000e+00 9.4451000000e-01 105175 3.2183000000e+00 9.7978000000e-01 105176 3.2187000000e+00 1.0149000000e+00 105177 3.2190000000e+00 1.0499000000e+00 105178 3.1887000000e+00 1.0673000000e+00 105179 3.1887000000e+00 1.1022000000e+00 105180 3.1885000000e+00 1.1372000000e+00 105181 3.1883000000e+00 1.1724000000e+00 105182 3.1880000000e+00 1.2077000000e+00 105183 3.1877000000e+00 1.2430000000e+00 105184 3.1568000000e+00 1.2609000000e+00 105185 3.1565000000e+00 1.2965000000e+00 105186 3.1562000000e+00 1.3320000000e+00 105187 3.1558000000e+00 1.3675000000e+00 105188 3.1247000000e+00 1.3860000000e+00 105189 3.1242000000e+00 1.4215000000e+00 105190 3.1234000000e+00 1.4570000000e+00 105191 3.1223000000e+00 1.4926000000e+00 105192 3.0910000000e+00 1.5107000000e+00 105193 3.0609000000e+00 1.5284000000e+00 105194 3.0608000000e+00 1.5577000000e+00 105195 3.0328000000e+00 1.5487000000e+00 105196 2.9961000000e+00 1.5368000000e+00 105197 2.9617000000e+00 1.5415000000e+00 105198 2.9333000000e+00 1.5255000000e+00 105199 2.8942000000e+00 1.5192000000e+00 105200 2.8574000000e+00 1.5115000000e+00 105201 2.8205000000e+00 1.5031000000e+00 105202 2.7833000000e+00 1.4941000000e+00 105203 2.7459000000e+00 1.4844000000e+00 105204 2.7167000000e+00 1.5123000000e+00 105205 2.6870000000e+00 1.5044000000e+00 105206 2.6645000000e+00 1.4821000000e+00 105207 2.6304000000e+00 1.4714000000e+00 105208 2.6019000000e+00 1.4868000000e+00 105209 2.5676000000e+00 1.4992000000e+00 105210 2.5420000000e+00 1.5204000000e+00 105211 2.5258000000e+00 1.5514000000e+00 105212 2.5233000000e+00 1.5853000000e+00 105213 2.5052000000e+00 1.6087000000e+00 105214 2.4955000000e+00 1.5773000000e+00 105215 2.4858000000e+00 1.5425000000e+00 105216 2.4480000000e+00 1.5373000000e+00 105217 2.4732000000e+00 1.5023000000e+00 105218 2.4476000000e+00 1.4737000000e+00 105219 2.4294000000e+00 1.4480000000e+00 105220 2.3982000000e+00 1.4493000000e+00 105221 2.3708000000e+00 1.4517000000e+00 105222 2.3428000000e+00 1.4387000000e+00 105223 2.3096000000e+00 1.4410000000e+00 105224 2.2793000000e+00 1.4266000000e+00 105225 2.2538000000e+00 1.4582000000e+00 105226 2.2193000000e+00 1.4556000000e+00 105227 2.1856000000e+00 1.4505000000e+00 105228 2.1605000000e+00 1.4789000000e+00 105229 2.1195000000e+00 1.4777000000e+00 105230 2.1091000000e+00 1.5100000000e+00 105231 1.0983000000e+00 1.7087000000e+00 105232 1.0634000000e+00 1.7088000000e+00 105233 1.0286000000e+00 1.7088000000e+00 105234 9.9372000000e-01 1.7088000000e+00 105235 1.8003000000e-01 1.4779000000e-01 105236 2.0157000000e-01 1.1993000000e-01 105237 1.8795000000e-01 8.7058000000e-02 105238 1.9567000000e+00 1.5232000000e+00 105239 1.9252000000e+00 1.5184000000e+00 105240 1.9034000000e+00 1.5448000000e+00 105241 1.8829000000e+00 1.5774000000e+00 105242 1.8545000000e+00 1.5976000000e+00 105243 1.8201000000e+00 1.5988000000e+00 105244 1.7833000000e+00 1.6111000000e+00 105245 1.7479000000e+00 1.6143000000e+00 105246 1.7298000000e+00 1.5851000000e+00 105247 1.7633000000e+00 1.5845000000e+00 105248 1.7474000000e+00 1.5558000000e+00 105249 1.7129000000e+00 1.5549000000e+00 105250 4.8231000000e-02 1.5259000000e+00 105251 1.2988000000e-02 1.5260000000e+00 105252 -2.2208000000e-02 1.5262000000e+00 105253 -5.7299000000e-02 1.5265000000e+00 105254 -9.2253000000e-02 1.5268000000e+00 105255 -1.2707000000e-01 1.5271000000e+00 105256 -1.6179000000e-01 1.5273000000e+00 105257 -1.9643000000e-01 1.5275000000e+00 105258 -2.3109000000e-01 1.5275000000e+00 105259 -2.6580000000e-01 1.5276000000e+00 105260 -3.0058000000e-01 1.5276000000e+00 105261 -3.1766000000e-01 1.4973000000e+00 105262 -3.5251000000e-01 1.4973000000e+00 105263 -3.8750000000e-01 1.4973000000e+00 105264 -4.2257000000e-01 1.4974000000e+00 105265 -4.5760000000e-01 1.4976000000e+00 105266 -4.9252000000e-01 1.4978000000e+00 105267 -5.2741000000e-01 1.4979000000e+00 105268 -5.6237000000e-01 1.4978000000e+00 105269 -5.9743000000e-01 1.4977000000e+00 105270 -6.3257000000e-01 1.4975000000e+00 105271 -6.4983000000e-01 1.4672000000e+00 105272 -6.6717000000e-01 1.4368000000e+00 105273 -6.4902000000e-01 1.4062000000e+00 105274 -6.6655000000e-01 1.3749000000e+00 105275 -6.8621000000e-01 1.3450000000e+00 105276 -7.0497000000e-01 1.3211000000e+00 105277 -6.7549000000e-01 1.3122000000e+00 105278 -6.4126000000e-01 1.2989000000e+00 105279 -6.1016000000e-01 1.3196000000e+00 105280 -5.7662000000e-01 1.3029000000e+00 105281 -5.4420000000e-01 1.2853000000e+00 105282 -5.1201000000e-01 1.2684000000e+00 105283 -4.8169000000e-01 1.2878000000e+00 105284 -4.5164000000e-01 1.3080000000e+00 105285 -4.1775000000e-01 1.2926000000e+00 105286 -3.8251000000e-01 1.2781000000e+00 105287 -3.7752000000e-01 1.2404000000e+00 105288 -3.7268000000e-01 1.2096000000e+00 105289 -3.4573000000e-01 1.2240000000e+00 105290 -3.1343000000e-01 1.2368000000e+00 105291 -3.4283000000e-01 1.2639000000e+00 105292 -3.0346000000e-01 1.2689000000e+00 105293 -2.8447000000e-01 1.2455000000e+00 105294 -2.8596000000e-01 1.2158000000e+00 105295 -2.5745000000e-01 1.1943000000e+00 105296 -2.3048000000e-01 1.1706000000e+00 105297 -2.2266000000e-01 1.2050000000e+00 105298 -1.9781000000e-01 1.1802000000e+00 105299 -2.0543000000e-01 1.1490000000e+00 105300 -1.7995000000e-01 1.1309000000e+00 105301 -1.5141000000e-01 1.1135000000e+00 105302 -1.5358000000e-01 1.0739000000e+00 105303 -1.1913000000e-01 1.0962000000e+00 105304 -1.5287000000e-01 1.1485000000e+00 105305 -1.2125000000e-01 1.1330000000e+00 105306 -1.2450000000e-01 1.1694000000e+00 105307 -9.1320000000e-02 1.1535000000e+00 105308 -8.8442000000e-02 1.1171000000e+00 105309 -8.5073000000e-02 1.0807000000e+00 105310 -5.5404000000e-02 1.1018000000e+00 105311 -5.8619000000e-02 1.1377000000e+00 105312 -6.1356000000e-02 1.1736000000e+00 105313 -2.9272000000e-02 1.1580000000e+00 105314 -2.6068000000e-02 1.1225000000e+00 105315 -2.2643000000e-02 1.0868000000e+00 105316 -5.1728000000e-02 1.0660000000e+00 105317 -8.0683000000e-02 1.0446000000e+00 105318 -1.1519000000e-01 1.0588000000e+00 105319 -1.0912000000e-01 1.0223000000e+00 105320 -7.5528000000e-02 1.0093000000e+00 105321 -1.0300000000e-01 9.8702000000e-01 105322 -6.9842000000e-02 9.7490000000e-01 105323 -6.3391000000e-02 9.4093000000e-01 105324 -5.6097000000e-02 9.0684000000e-01 105325 -3.0376000000e-02 9.3046000000e-01 105326 -2.1983000000e-02 8.9672000000e-01 105327 -4.8230000000e-02 8.7213000000e-01 105328 -8.2743000000e-02 8.8309000000e-01 105329 -7.5376000000e-02 8.4787000000e-01 105330 -4.0168000000e-02 8.3668000000e-01 105331 -6.7857000000e-02 8.1153000000e-01 105332 -1.0333000000e-01 8.2432000000e-01 105333 -9.7631000000e-02 7.8776000000e-01 105334 -1.3195000000e-01 8.0247000000e-01 105335 -1.3717000000e-01 8.3682000000e-01 105336 -1.0994000000e-01 8.5958000000e-01 105337 -1.4407000000e-01 8.7102000000e-01 105338 -1.7029000000e-01 8.4768000000e-01 105339 -1.6343000000e-01 8.1593000000e-01 105340 -1.6109000000e-01 7.8300000000e-01 105341 -1.9171000000e-01 7.6558000000e-01 105342 -1.6009000000e-01 7.4807000000e-01 105343 -1.9176000000e-01 7.2959000000e-01 105344 -2.2752000000e-01 7.4890000000e-01 105345 -2.2233000000e-01 7.0908000000e-01 105346 -2.4564000000e-01 7.7589000000e-01 105347 -1.8958000000e-01 6.9356000000e-01 105348 -1.5914000000e-01 7.1234000000e-01 105349 -1.2776000000e-01 7.3091000000e-01 105350 -1.2738000000e-01 6.9504000000e-01 105351 -1.5810000000e-01 6.7692000000e-01 105352 -1.8789000000e-01 6.5893000000e-01 105353 -1.5731000000e-01 6.4174000000e-01 105354 -1.8729000000e-01 6.2503000000e-01 105355 -2.1676000000e-01 6.4182000000e-01 105356 -2.1683000000e-01 6.0739000000e-01 105357 -2.4825000000e-01 6.2752000000e-01 105358 -2.5313000000e-01 5.8499000000e-01 105359 -2.1813000000e-01 6.7452000000e-01 105360 -2.4199000000e-01 6.5745000000e-01 105361 -2.8401000000e-01 6.1620000000e-01 105362 -3.2001000000e-01 6.0360000000e-01 105363 -2.9212000000e-01 5.8385000000e-01 105364 -3.2085000000e-01 5.6607000000e-01 105365 -3.5998000000e-01 5.8687000000e-01 105366 -3.4907000000e-01 6.2854000000e-01 105367 -3.8563000000e-01 6.2131000000e-01 105368 -4.1200000000e-01 6.4511000000e-01 105369 -4.4285000000e-01 6.6247000000e-01 105370 -4.7232000000e-01 6.4301000000e-01 105371 -4.4102000000e-01 6.2856000000e-01 105372 -4.6805000000e-01 6.0741000000e-01 105373 -4.3543000000e-01 5.9683000000e-01 105374 -4.1527000000e-01 6.1640000000e-01 105375 -4.0211000000e-01 5.9008000000e-01 105376 -5.1410000000e-01 1.3040000000e+00 105377 -5.4556000000e-01 1.3207000000e+00 105378 -5.1648000000e-01 1.3386000000e+00 105379 -4.8467000000e-01 1.3234000000e+00 105380 3.5294000000e-01 6.9565000000e-02 105381 2.0621000000e+00 1.2053000000e-01 105382 2.0442000000e+00 1.5062000000e-01 105383 2.0793000000e+00 1.5091000000e-01 105384 2.0612000000e+00 1.8114000000e-01 105385 2.0965000000e+00 1.8139000000e-01 105386 2.0784000000e+00 2.1181000000e-01 105387 2.1139000000e+00 2.1193000000e-01 105388 2.0958000000e+00 2.4252000000e-01 105389 2.1314000000e+00 2.4243000000e-01 105390 2.1492000000e+00 2.1195000000e-01 105391 2.1318000000e+00 1.8152000000e-01 105392 -4.2629000000e-01 5.6443000000e-01 105393 -4.5966000000e-01 5.7399000000e-01 105394 -4.5178000000e-01 5.4215000000e-01 105395 -4.7864000000e-01 5.5268000000e-01 105396 -4.7848000000e-01 5.2424000000e-01 105397 -4.4870000000e-01 5.0850000000e-01 105398 -4.1877000000e-01 5.2894000000e-01 105399 -4.1628000000e-01 4.9141000000e-01 105400 -3.7959000000e-01 5.1250000000e-01 105401 -3.8984000000e-01 5.5447000000e-01 105402 -3.5214000000e-01 5.4387000000e-01 105403 3.1254000000e+00 1.3148000000e+00 105404 3.1251000000e+00 1.3504000000e+00 105405 3.0940000000e+00 1.3691000000e+00 105406 3.0937000000e+00 1.4047000000e+00 105407 3.0931000000e+00 1.4402000000e+00 105408 3.0922000000e+00 1.4756000000e+00 105409 3.0613000000e+00 1.4943000000e+00 105410 3.0304000000e+00 1.5139000000e+00 105411 3.1577000000e+00 1.1547000000e+00 105412 3.1574000000e+00 1.1900000000e+00 105413 3.1570000000e+00 1.2254000000e+00 105414 3.1259000000e+00 1.2434000000e+00 105415 3.1257000000e+00 1.2791000000e+00 105416 3.0944000000e+00 1.2976000000e+00 105417 3.0943000000e+00 1.3334000000e+00 105418 3.0631000000e+00 1.3524000000e+00 105419 3.0629000000e+00 1.3881000000e+00 105420 3.0627000000e+00 1.4237000000e+00 105421 3.0621000000e+00 1.4591000000e+00 105422 3.0312000000e+00 1.4782000000e+00 105423 3.0000000000e+00 1.4973000000e+00 105424 2.5809000000e+00 1.4656000000e+00 105425 2.5481000000e+00 1.4692000000e+00 105426 2.5359000000e+00 1.4959000000e+00 105427 2.5121000000e+00 1.5148000000e+00 105428 3.0319000000e+00 1.4429000000e+00 105429 3.0015000000e+00 1.4622000000e+00 105430 2.9722000000e+00 1.4804000000e+00 105431 2.9685000000e+00 1.5128000000e+00 105432 2.9475000000e+00 1.4955000000e+00 105433 2.9195000000e+00 1.4915000000e+00 105434 2.8851000000e+00 1.4837000000e+00 105435 2.8493000000e+00 1.4749000000e+00 105436 2.8127000000e+00 1.4659000000e+00 105437 2.7761000000e+00 1.4566000000e+00 105438 2.7399000000e+00 1.4468000000e+00 105439 2.7061000000e+00 1.4740000000e+00 105440 2.6817000000e+00 1.4530000000e+00 105441 2.6542000000e+00 1.4486000000e+00 105442 2.6250000000e+00 1.4418000000e+00 105443 2.6068000000e+00 1.4608000000e+00 105444 2.5962000000e+00 1.4384000000e+00 105445 2.5647000000e+00 1.4387000000e+00 105446 2.5299000000e+00 1.4401000000e+00 105447 2.5099000000e+00 1.4757000000e+00 105448 1.0460000000e+00 1.6785000000e+00 105449 1.0112000000e+00 1.6785000000e+00 105450 9.7640000000e-01 1.6784000000e+00 105451 9.5882000000e-01 1.7087000000e+00 105452 9.2386000000e-01 1.7086000000e+00 105453 8.8885000000e-01 1.7085000000e+00 105454 8.5378000000e-01 1.7085000000e+00 105455 8.7145000000e-01 1.6780000000e+00 105456 8.3631000000e-01 1.6779000000e+00 105457 8.1868000000e-01 1.7084000000e+00 105458 1.0808000000e+00 1.6784000000e+00 105459 1.0633000000e+00 1.6481000000e+00 105460 1.0286000000e+00 1.6482000000e+00 105461 9.9394000000e-01 1.6481000000e+00 105462 9.5916000000e-01 1.6479000000e+00 105463 9.4150000000e-01 1.6782000000e+00 105464 9.0652000000e-01 1.6781000000e+00 105465 8.8919000000e-01 1.6475000000e+00 105466 8.5402000000e-01 1.6473000000e+00 105467 8.1879000000e-01 1.6472000000e+00 105468 8.0115000000e-01 1.6779000000e+00 105469 7.8356000000e-01 1.7085000000e+00 105470 7.4846000000e-01 1.7086000000e+00 105471 7.3087000000e-01 1.6781000000e+00 105472 6.9579000000e-01 1.6783000000e+00 105473 6.6078000000e-01 1.6785000000e+00 105474 6.2585000000e-01 1.6788000000e+00 105475 6.0832000000e-01 1.6486000000e+00 105476 5.7358000000e-01 1.6488000000e+00 105477 5.3888000000e-01 1.6489000000e+00 105478 5.0412000000e-01 1.6488000000e+00 105479 4.6925000000e-01 1.6487000000e+00 105480 4.3427000000e-01 1.6485000000e+00 105481 3.9921000000e-01 1.6484000000e+00 105482 3.8188000000e-01 1.6180000000e+00 105483 3.4673000000e-01 1.6179000000e+00 105484 3.2931000000e-01 1.5874000000e+00 105485 2.9414000000e-01 1.5874000000e+00 105486 2.5899000000e-01 1.5874000000e+00 105487 2.2387000000e-01 1.5874000000e+00 105488 1.8875000000e-01 1.5873000000e+00 105489 1.5364000000e-01 1.5873000000e+00 105490 1.1853000000e-01 1.5872000000e+00 105491 1.0101000000e-01 1.5567000000e+00 105492 8.3468000000e-02 1.5260000000e+00 105493 6.5890000000e-02 1.4952000000e+00 105494 3.0532000000e-02 1.4952000000e+00 105495 -4.8266000000e-03 1.4953000000e+00 105496 -4.0077000000e-02 1.4957000000e+00 105497 -7.5127000000e-02 1.4962000000e+00 105498 -1.0997000000e-01 1.4966000000e+00 105499 -1.4464000000e-01 1.4970000000e+00 105500 -1.7916000000e-01 1.4972000000e+00 105501 -2.1364000000e-01 1.4973000000e+00 105502 -2.4820000000e-01 1.4973000000e+00 105503 -2.8289000000e-01 1.4973000000e+00 105504 -2.9990000000e-01 1.4672000000e+00 105505 -3.3460000000e-01 1.4671000000e+00 105506 -3.6950000000e-01 1.4670000000e+00 105507 -4.0469000000e-01 1.4669000000e+00 105508 -4.3991000000e-01 1.4672000000e+00 105509 -4.7486000000e-01 1.4676000000e+00 105510 -5.0960000000e-01 1.4678000000e+00 105511 -5.4440000000e-01 1.4677000000e+00 105512 -5.7942000000e-01 1.4675000000e+00 105513 -6.1458000000e-01 1.4673000000e+00 105514 -6.3176000000e-01 1.4369000000e+00 105515 -6.1351000000e-01 1.4066000000e+00 105516 -6.3037000000e-01 1.3758000000e+00 105517 -5.9526000000e-01 1.3765000000e+00 105518 -6.1189000000e-01 1.3509000000e+00 105519 -6.4599000000e-01 1.3396000000e+00 105520 -5.7767000000e-01 1.3425000000e+00 105521 -5.4426000000e-01 1.3507000000e+00 105522 -5.2163000000e-01 1.3750000000e+00 105523 -4.8866000000e-01 1.3576000000e+00 105524 -4.5544000000e-01 1.3442000000e+00 105525 -4.2202000000e-01 1.3289000000e+00 105526 -3.8876000000e-01 1.3147000000e+00 105527 -3.5492000000e-01 1.3026000000e+00 105528 -3.2227000000e-01 1.2963000000e+00 105529 -2.8965000000e-01 1.2999000000e+00 105530 -3.0964000000e-01 1.3203000000e+00 105531 -2.8408000000e-01 1.3337000000e+00 105532 -2.5027000000e-01 1.3090000000e+00 105533 -2.6822000000e-01 1.2714000000e+00 105534 -2.5137000000e-01 1.2344000000e+00 105535 -2.1081000000e-01 1.2384000000e+00 105536 -2.3016000000e-01 1.2705000000e+00 105537 -1.9229000000e-01 1.2681000000e+00 105538 -2.0809000000e-01 1.3018000000e+00 105539 -1.7052000000e-01 1.2971000000e+00 105540 -1.5391000000e-01 1.2605000000e+00 105541 -1.8034000000e-01 1.2405000000e+00 105542 -1.8817000000e-01 1.2122000000e+00 105543 -1.6088000000e-01 1.1855000000e+00 105544 -1.7936000000e-01 1.1588000000e+00 105545 -1.2696000000e-01 1.2059000000e+00 105546 -9.3893000000e-02 1.1903000000e+00 105547 -6.3115000000e-02 1.2093000000e+00 105548 -3.2063000000e-02 1.1929000000e+00 105549 -5.9613000000e-04 1.1782000000e+00 105550 2.9331000000e-03 1.1431000000e+00 105551 3.1508000000e-02 1.1640000000e+00 105552 3.5442000000e-02 1.1285000000e+00 105553 6.4516000000e-03 1.1076000000e+00 105554 3.9051000000e-02 1.0927000000e+00 105555 9.8558000000e-03 1.0719000000e+00 105556 4.2310000000e-02 1.0566000000e+00 105557 1.2939000000e-02 1.0364000000e+00 105558 -1.9114000000e-02 1.0514000000e+00 105559 -4.7601000000e-02 1.0308000000e+00 105560 -4.3044000000e-02 9.9654000000e-01 105561 -3.7512000000e-02 9.6337000000e-01 105562 -6.2681000000e-03 9.5336000000e-01 105563 2.9013000000e-03 9.2164000000e-01 105564 2.5781000000e-02 9.4741000000e-01 105565 3.7271000000e-02 9.1438000000e-01 105566 6.0601000000e-02 9.4218000000e-01 105567 7.2643000000e-02 9.0767000000e-01 105568 9.6110000000e-02 9.3492000000e-01 105569 1.0812000000e-01 9.0143000000e-01 105570 8.4946000000e-02 8.7339000000e-01 105571 4.8713000000e-02 8.7983000000e-01 105572 1.2889000000e-02 8.8765000000e-01 105573 -1.3055000000e-02 8.6172000000e-01 105574 -4.2973000000e-03 8.2553000000e-01 105575 -3.2208000000e-02 8.0138000000e-01 105576 -5.8411000000e-02 7.7124000000e-01 105577 -9.5210000000e-02 7.5005000000e-01 105578 -1.2897000000e-01 7.6703000000e-01 105579 -9.5688000000e-02 7.1296000000e-01 105580 -9.6309000000e-02 6.7727000000e-01 105581 -6.4663000000e-02 6.9412000000e-01 105582 -6.5995000000e-02 6.5901000000e-01 105583 -9.6897000000e-02 6.4265000000e-01 105584 -1.2714000000e-01 6.5988000000e-01 105585 -3.4545000000e-02 6.7510000000e-01 105586 -3.2653000000e-02 7.0999000000e-01 105587 -3.1172000000e-03 6.9086000000e-01 105588 -1.2313000000e-03 7.2494000000e-01 105589 -2.9600000000e-02 7.4454000000e-01 105590 1.0579000000e-03 7.5770000000e-01 105591 2.9147000000e-02 7.4009000000e-01 105592 3.0553000000e-02 7.7334000000e-01 105593 5.8798000000e-02 7.5560000000e-01 105594 -2.3615000000e-02 7.7303000000e-01 105595 2.7800000000e-02 7.0656000000e-01 105596 2.6629000000e-02 6.7236000000e-01 105597 -4.6703000000e-03 6.5631000000e-01 105598 2.5379000000e-02 6.3768000000e-01 105599 5.6923000000e-02 6.5415000000e-01 105600 5.5737000000e-02 6.1906000000e-01 105601 2.3892000000e-02 6.0275000000e-01 105602 -6.2183000000e-03 6.2159000000e-01 105603 -7.9220000000e-03 5.8672000000e-01 105604 -3.7843000000e-02 6.0580000000e-01 105605 -3.6115000000e-02 6.4039000000e-01 105606 -6.7364000000e-02 6.2463000000e-01 105607 -9.7770000000e-02 6.0945000000e-01 105608 -1.2671000000e-01 6.2570000000e-01 105609 -1.5661000000e-01 6.0400000000e-01 105610 -1.2443000000e-01 5.9648000000e-01 105611 6.4185000000e-02 1.0015000000e-01 105612 5.0246000000e-02 6.8718000000e-02 105613 3.0295000000e-02 9.6855000000e-02 105614 4.5173000000e-02 1.2705000000e-01 105615 7.7310000000e-02 1.3073000000e-01 105616 2.1135000000e+00 2.7308000000e-01 105617 2.1489000000e+00 2.7282000000e-01 105618 2.1667000000e+00 2.4234000000e-01 105619 2.1845000000e+00 2.1195000000e-01 105620 2.1671000000e+00 1.8158000000e-01 105621 1.7128000000e-01 1.5568000000e+00 105622 1.3616000000e-01 1.5567000000e+00 105623 1.1867000000e-01 1.5261000000e+00 105624 1.0118000000e-01 1.4954000000e+00 105625 8.3693000000e-02 1.4645000000e+00 105626 4.8243000000e-02 1.4642000000e+00 105627 1.2670000000e-02 1.4642000000e+00 105628 -2.2872000000e-02 1.4646000000e+00 105629 -5.8144000000e-02 1.4654000000e+00 105630 -9.3038000000e-02 1.4661000000e+00 105631 -1.2769000000e-01 1.4666000000e+00 105632 -1.6216000000e-01 1.4670000000e+00 105633 -1.9634000000e-01 1.4673000000e+00 105634 -2.3059000000e-01 1.4672000000e+00 105635 -2.6519000000e-01 1.4671000000e+00 105636 -2.8230000000e-01 1.4369000000e+00 105637 -3.1675000000e-01 1.4372000000e+00 105638 -3.5124000000e-01 1.4369000000e+00 105639 -3.8644000000e-01 1.4362000000e+00 105640 -4.2218000000e-01 1.4363000000e+00 105641 -4.5752000000e-01 1.4373000000e+00 105642 -4.9199000000e-01 1.4381000000e+00 105643 -5.2634000000e-01 1.4378000000e+00 105644 -5.6124000000e-01 1.4374000000e+00 105645 -5.9645000000e-01 1.4371000000e+00 105646 -5.7817000000e-01 1.4069000000e+00 105647 -5.5993000000e-01 1.3765000000e+00 105648 1.8910000000e+00 1.5120000000e+00 105649 1.8684000000e+00 1.5412000000e+00 105650 1.8451000000e+00 1.5691000000e+00 105651 1.8333000000e+00 1.5363000000e+00 105652 1.8116000000e+00 1.5628000000e+00 105653 1.7916000000e+00 1.5830000000e+00 105654 4.1702000000e-01 1.6181000000e+00 105655 3.9974000000e-01 1.5875000000e+00 105656 3.6452000000e-01 1.5874000000e+00 105657 3.4709000000e-01 1.5569000000e+00 105658 3.1186000000e-01 1.5569000000e+00 105659 2.7668000000e-01 1.5569000000e+00 105660 2.4153000000e-01 1.5569000000e+00 105661 2.0641000000e-01 1.5569000000e+00 105662 1.8896000000e-01 1.5263000000e+00 105663 1.5383000000e-01 1.5262000000e+00 105664 1.3640000000e-01 1.4956000000e+00 105665 1.1900000000e-01 1.4648000000e+00 105666 1.0165000000e-01 1.4338000000e+00 105667 6.6205000000e-02 1.4333000000e+00 105668 3.0469000000e-02 1.4329000000e+00 105669 -5.5336000000e-03 1.4330000000e+00 105670 -4.1340000000e-02 1.4341000000e+00 105671 -7.6428000000e-02 1.4355000000e+00 105672 -1.1089000000e-01 1.4364000000e+00 105673 -1.4550000000e-01 1.4364000000e+00 105674 -1.7961000000e-01 1.4375000000e+00 105675 -2.1290000000e-01 1.4376000000e+00 105676 -2.4726000000e-01 1.4365000000e+00 105677 -2.6514000000e-01 1.4063000000e+00 105678 -2.9954000000e-01 1.4074000000e+00 105679 -3.3291000000e-01 1.4079000000e+00 105680 -3.6723000000e-01 1.4060000000e+00 105681 -4.0374000000e-01 1.4044000000e+00 105682 -4.4075000000e-01 1.4057000000e+00 105683 -4.7537000000e-01 1.4090000000e+00 105684 -5.0821000000e-01 1.4088000000e+00 105685 -5.4259000000e-01 1.4071000000e+00 105686 -4.9127000000e-01 1.3858000000e+00 105687 -4.6245000000e-01 1.3785000000e+00 105688 -4.2320000000e-01 1.3687000000e+00 105689 -3.9533000000e-01 1.3453000000e+00 105690 -3.6004000000e-01 1.3407000000e+00 105691 -3.3318000000e-01 1.3220000000e+00 105692 -3.1906000000e-01 1.3499000000e+00 105693 -2.8381000000e-01 1.3730000000e+00 105694 -2.5207000000e-01 1.3501000000e+00 105695 -2.1975000000e-01 1.3360000000e+00 105696 -1.8561000000e-01 1.3302000000e+00 105697 -1.5032000000e-01 1.3273000000e+00 105698 -1.3303000000e-01 1.2946000000e+00 105699 -1.1497000000e-01 1.2631000000e+00 105700 -1.2972000000e-01 1.2366000000e+00 105701 -9.6246000000e-02 1.2300000000e+00 105702 -6.1219000000e-02 1.2432000000e+00 105703 -3.4045000000e-02 1.2261000000e+00 105704 -4.1223000000e-03 1.2124000000e+00 105705 2.7314000000e-02 1.1988000000e+00 105706 5.9559000000e-02 1.1854000000e+00 105707 6.4277000000e-02 1.1499000000e+00 105708 6.8308000000e-02 1.1138000000e+00 105709 7.1809000000e-02 1.0776000000e+00 105710 7.5028000000e-02 1.0413000000e+00 105711 4.5049000000e-02 1.0201000000e+00 105712 7.8521000000e-02 1.0048000000e+00 105713 4.6322000000e-02 9.7977000000e-01 105714 1.5046000000e-02 1.0017000000e+00 105715 -1.5649000000e-02 1.0168000000e+00 105716 -1.2259000000e-02 9.8416000000e-01 105717 1.3745000000e-02 9.7326000000e-01 105718 -1.6660000000e-01 1.3626000000e+00 105719 -1.3067000000e-01 1.3546000000e+00 105720 -1.1557000000e-01 1.3249000000e+00 105721 -9.2996000000e-02 1.2949000000e+00 105722 -8.3998000000e-02 1.2619000000e+00 105723 -5.4659000000e-02 1.2784000000e+00 105724 -6.1415000000e-02 1.3150000000e+00 105725 -2.9249000000e-02 1.3051000000e+00 105726 -1.8487000000e-02 1.2752000000e+00 105727 -3.5365000000e-02 1.2536000000e+00 105728 -8.5067000000e-03 1.2453000000e+00 105729 2.3050000000e-02 1.2333000000e+00 105730 1.7830000000e-02 1.2710000000e+00 105731 5.1308000000e-02 1.2529000000e+00 105732 5.4381000000e-02 1.2194000000e+00 105733 8.6785000000e-02 1.2082000000e+00 105734 9.2997000000e-02 1.1724000000e+00 105735 1.2160000000e-01 1.1965000000e+00 105736 1.2793000000e-01 1.1586000000e+00 105737 9.7743000000e-02 1.1357000000e+00 105738 1.0141000000e-01 1.0989000000e+00 105739 1.3144000000e-01 1.1205000000e+00 105740 1.3445000000e-01 1.0833000000e+00 105741 1.6466000000e-01 1.1043000000e+00 105742 1.6725000000e-01 1.0672000000e+00 105743 1.9737000000e-01 1.0879000000e+00 105744 1.9998000000e-01 1.0512000000e+00 105745 1.6977000000e-01 1.0300000000e+00 105746 1.3722000000e-01 1.0467000000e+00 105747 1.0463000000e-01 1.0623000000e+00 105748 1.0774000000e-01 1.0264000000e+00 105749 1.1150000000e-01 9.9225000000e-01 105750 1.3941000000e-01 1.0111000000e+00 105751 1.3872000000e-01 9.8184000000e-01 105752 1.1910000000e-01 9.6048000000e-01 105753 8.5377000000e-02 9.6905000000e-01 105754 1.3071000000e-01 9.2879000000e-01 105755 1.4336000000e-01 8.9597000000e-01 105756 1.6542000000e-01 9.2389000000e-01 105757 1.7856000000e-01 8.9093000000e-01 105758 1.5637000000e-01 8.6291000000e-01 105759 1.9160000000e-01 8.5794000000e-01 105760 1.6956000000e-01 8.3005000000e-01 105761 1.3420000000e-01 8.3468000000e-01 105762 1.4785000000e-01 8.0211000000e-01 105763 1.8272000000e-01 7.9756000000e-01 105764 1.6115000000e-01 7.7015000000e-01 105765 1.2719000000e-01 7.7450000000e-01 105766 1.1224000000e-01 8.0580000000e-01 105767 9.8198000000e-02 8.3933000000e-01 105768 7.5813000000e-02 8.0999000000e-01 105769 6.1042000000e-02 8.4427000000e-01 105770 1.2088000000e-01 8.6794000000e-01 105771 2.3409000000e-02 8.5172000000e-01 105772 3.5108000000e-02 8.1143000000e-01 105773 1.1012000000e-03 7.9038000000e-01 105774 -6.2715000000e-02 7.3047000000e-01 105775 5.8089000000e-02 7.8491000000e-01 105776 9.0146000000e-02 7.7430000000e-01 105777 8.6925000000e-02 7.3858000000e-01 105778 5.7906000000e-02 7.2251000000e-01 105779 5.7475000000e-02 6.8874000000e-01 105780 8.8309000000e-02 6.7135000000e-01 105781 8.8008000000e-02 6.3584000000e-01 105782 8.7280000000e-02 7.0561000000e-01 105783 1.1757000000e-01 6.8984000000e-01 105784 1.2258000000e-01 6.5405000000e-01 105785 1.1839000000e-01 6.1636000000e-01 105786 1.5016000000e-01 6.3041000000e-01 105787 1.4745000000e-01 5.9674000000e-01 105788 1.1602000000e-01 5.8109000000e-01 105789 8.6094000000e-02 6.0018000000e-01 105790 5.4124000000e-02 5.8387000000e-01 105791 2.2259000000e-02 5.6768000000e-01 105792 5.2487000000e-02 5.4874000000e-01 105793 2.0671000000e-02 5.3249000000e-01 105794 -9.7015000000e-03 5.5161000000e-01 105795 -3.9900000000e-02 5.7101000000e-01 105796 -6.9495000000e-02 5.9056000000e-01 105797 -7.2402000000e-02 5.5582000000e-01 105798 -1.0164000000e-01 5.7670000000e-01 105799 -1.0630000000e-01 5.4133000000e-01 105800 -1.3934000000e-01 5.6657000000e-01 105801 -1.4042000000e-01 5.2571000000e-01 105802 -1.0893000000e-01 5.0349000000e-01 105803 -1.4212000000e-01 4.8882000000e-01 105804 -1.7278000000e-01 5.0851000000e-01 105805 -1.7302000000e-01 5.4551000000e-01 105806 -1.7289000000e-01 5.7621000000e-01 105807 -1.8819000000e-01 5.9627000000e-01 105808 -2.0720000000e-01 5.6866000000e-01 105809 -2.4085000000e-01 5.4285000000e-01 105810 -2.8244000000e-01 5.4831000000e-01 105811 -3.1822000000e-01 5.2976000000e-01 105812 1.3691000000e-01 1.4343000000e+00 105813 1.5418000000e-01 1.4651000000e+00 105814 1.7201000000e-01 1.4347000000e+00 105815 1.5488000000e-01 1.4039000000e+00 105816 1.1974000000e-01 1.4033000000e+00 105817 8.4383000000e-02 1.4026000000e+00 105818 1.0268000000e-01 1.3721000000e+00 105819 1.3797000000e-01 1.3730000000e+00 105820 1.7285000000e-01 1.3739000000e+00 105821 1.5640000000e-01 1.3433000000e+00 105822 1.2129000000e-01 1.3417000000e+00 105823 -1.7221000000e-01 4.7282000000e-01 105824 -1.4553000000e-01 4.5931000000e-01 105825 -1.6690000000e-01 4.3464000000e-01 105826 -2.0236000000e-01 4.5476000000e-01 105827 -2.0355000000e-01 4.1840000000e-01 105828 -2.3433000000e-01 4.3842000000e-01 105829 -2.3364000000e-01 4.7340000000e-01 105830 -2.0352000000e-01 4.9075000000e-01 105831 2.9438000000e-01 1.5264000000e+00 105832 2.5921000000e-01 1.5264000000e+00 105833 2.2408000000e-01 1.5264000000e+00 105834 2.0666000000e-01 1.4959000000e+00 105835 1.7155000000e-01 1.4957000000e+00 105836 -2.6405000000e-01 4.5765000000e-01 105837 -2.6279000000e-01 4.9104000000e-01 105838 -2.3473000000e-01 5.0759000000e-01 105839 -2.0536000000e-01 5.2733000000e-01 105840 2.4176000000e-01 1.4959000000e+00 105841 2.2434000000e-01 1.4654000000e+00 105842 1.8928000000e-01 1.4653000000e+00 105843 2.0701000000e-01 1.4349000000e+00 105844 1.8981000000e-01 1.4044000000e+00 105845 2.0748000000e-01 1.3743000000e+00 105846 1.9061000000e-01 1.3442000000e+00 105847 2.2483000000e-01 1.3442000000e+00 105848 2.0740000000e-01 1.3146000000e+00 105849 1.7473000000e-01 1.3150000000e+00 105850 1.9076000000e-01 1.2911000000e+00 105851 1.6232000000e-01 1.2846000000e+00 105852 1.4093000000e-01 1.3118000000e+00 105853 1.0430000000e-01 1.3089000000e+00 105854 8.5452000000e-02 1.3407000000e+00 105855 6.7125000000e-02 1.3093000000e+00 105856 5.0066000000e-02 1.3407000000e+00 105857 6.7230000000e-02 1.3714000000e+00 105858 3.1997000000e-02 1.3702000000e+00 105859 4.8788000000e-02 1.4019000000e+00 105860 1.2432000000e-02 1.4007000000e+00 105861 -2.4580000000e-02 1.4014000000e+00 105862 -6.0512000000e-02 1.4045000000e+00 105863 -9.4677000000e-02 1.4067000000e+00 105864 -1.2804000000e-01 1.4074000000e+00 105865 -1.6464000000e-01 1.4033000000e+00 105866 -1.9616000000e-01 1.4134000000e+00 105867 -2.2746000000e-01 1.4039000000e+00 105868 -2.5051000000e-01 1.3804000000e+00 105869 -3.1634000000e-01 1.3830000000e+00 105870 -3.4637000000e-01 1.3768000000e+00 105871 -3.8265000000e-01 1.3737000000e+00 105872 -2.6599000000e-01 4.2304000000e-01 105873 -2.9502000000e-01 4.4290000000e-01 105874 -2.9770000000e-01 4.0811000000e-01 105875 -3.2647000000e-01 4.2848000000e-01 105876 -3.2937000000e-01 3.9364000000e-01 105877 -3.5811000000e-01 4.1386000000e-01 105878 -3.5520000000e-01 4.4915000000e-01 105879 -3.8747000000e-01 4.3414000000e-01 105880 -3.8457000000e-01 4.7098000000e-01 105881 -3.5115000000e-01 4.8426000000e-01 105882 -3.2338000000e-01 4.6304000000e-01 105883 -2.9248000000e-01 4.7693000000e-01 105884 -3.1987000000e-01 4.9632000000e-01 105885 -2.8967000000e-01 5.1043000000e-01 105886 -2.6212000000e-01 5.2007000000e-01 105887 -3.4422000000e-01 5.1337000000e-01 105888 -4.1763000000e-01 4.5424000000e-01 105889 -4.4831000000e-01 4.7319000000e-01 105890 -4.7846000000e-01 4.9091000000e-01 105891 -4.7919000000e-01 4.5640000000e-01 105892 -5.0841000000e-01 4.7450000000e-01 105893 -5.0754000000e-01 5.0853000000e-01 105894 -5.0561000000e-01 5.4259000000e-01 105895 -5.3669000000e-01 5.2674000000e-01 105896 -5.3463000000e-01 5.6293000000e-01 105897 -5.6702000000e-01 5.4516000000e-01 105898 -5.6673000000e-01 5.8186000000e-01 105899 -4.9757000000e-01 5.8031000000e-01 105900 -5.9827000000e-01 5.6317000000e-01 105901 -5.9893000000e-01 5.9988000000e-01 105902 -6.3119000000e-01 6.1764000000e-01 105903 -6.3171000000e-01 6.5429000000e-01 105904 -6.6348000000e-01 6.3595000000e-01 105905 -6.6302000000e-01 5.9825000000e-01 105906 -6.9893000000e-01 6.1764000000e-01 105907 -6.9349000000e-01 6.5576000000e-01 105908 -7.1916000000e-01 6.4334000000e-01 105909 -7.2532000000e-01 6.7551000000e-01 105910 -6.9155000000e-01 6.9002000000e-01 105911 -6.6247000000e-01 6.7210000000e-01 105912 -6.3228000000e-01 6.8996000000e-01 105913 -6.0275000000e-01 7.0887000000e-01 105914 -6.3349000000e-01 7.2453000000e-01 105915 -6.6223000000e-01 7.0661000000e-01 105916 -6.6283000000e-01 7.3999000000e-01 105917 -6.3572000000e-01 7.5838000000e-01 105918 -6.4297000000e-01 7.9551000000e-01 105919 -6.7916000000e-01 7.9031000000e-01 105920 -7.0501000000e-01 7.8533000000e-01 105921 -7.2487000000e-01 7.6797000000e-01 105922 -7.5339000000e-01 7.8136000000e-01 105923 -7.8042000000e-01 7.6336000000e-01 105924 -8.0767000000e-01 7.4497000000e-01 105925 -7.7839000000e-01 7.3026000000e-01 105926 -8.0474000000e-01 7.1286000000e-01 105927 -7.7919000000e-01 7.0148000000e-01 105928 -8.0180000000e-01 6.7756000000e-01 105929 -7.4750000000e-01 7.1065000000e-01 105930 -7.5080000000e-01 7.4826000000e-01 105931 -7.2019000000e-01 7.3596000000e-01 105932 -7.1505000000e-01 7.0704000000e-01 105933 -7.6354000000e-01 6.7605000000e-01 105934 -7.4694000000e-01 6.4574000000e-01 105935 -7.8049000000e-01 6.4537000000e-01 105936 -8.1454000000e-01 6.4142000000e-01 105937 -7.9413000000e-01 6.1934000000e-01 105938 -8.2093000000e-01 6.0812000000e-01 105939 -8.4741000000e-01 6.2980000000e-01 105940 -8.4250000000e-01 6.6835000000e-01 105941 -8.2761000000e-01 6.9736000000e-01 105942 -8.3382000000e-01 7.2550000000e-01 105943 -8.6912000000e-01 7.3606000000e-01 105944 -8.5521000000e-01 7.0254000000e-01 105945 -8.8165000000e-01 7.0731000000e-01 105946 -8.7659000000e-01 6.8061000000e-01 105947 -9.0115000000e-01 7.5806000000e-01 105948 -9.0113000000e-01 7.9390000000e-01 105949 1.5209000000e-01 9.5613000000e-01 105950 1.8702000000e-01 9.5250000000e-01 105951 2.0070000000e-01 9.1908000000e-01 105952 2.1386000000e-01 8.8583000000e-01 105953 2.2659000000e-01 8.5277000000e-01 105954 2.4890000000e-01 8.8008000000e-01 105955 2.6116000000e-01 8.4745000000e-01 105956 2.3940000000e-01 8.2017000000e-01 105957 2.0457000000e-01 8.2519000000e-01 105958 2.1750000000e-01 7.9267000000e-01 105959 2.5228000000e-01 7.8766000000e-01 105960 2.7424000000e-01 8.1528000000e-01 105961 2.8729000000e-01 7.8254000000e-01 105962 2.6493000000e-01 7.5502000000e-01 105963 2.3028000000e-01 7.6028000000e-01 105964 3.0988000000e-01 8.1090000000e-01 105965 3.2253000000e-01 7.7696000000e-01 105966 3.4595000000e-01 8.0452000000e-01 105967 2.9537000000e-01 8.4294000000e-01 105968 3.3386000000e-01 8.4314000000e-01 105969 3.7206000000e-01 8.2943000000e-01 105970 3.7998000000e-01 7.9587000000e-01 105971 3.5736000000e-01 7.7074000000e-01 105972 3.9101000000e-01 7.6515000000e-01 105973 3.6979000000e-01 7.3824000000e-01 105974 4.0503000000e-01 7.3392000000e-01 105975 4.2559000000e-01 7.6366000000e-01 105976 4.4185000000e-01 7.3007000000e-01 105977 4.1882000000e-01 7.0082000000e-01 105978 3.8301000000e-01 7.0551000000e-01 105979 3.4742000000e-01 7.1041000000e-01 105980 3.3483000000e-01 7.4364000000e-01 105981 3.1199000000e-01 7.1601000000e-01 105982 2.9979000000e-01 7.4940000000e-01 105983 2.7709000000e-01 7.2219000000e-01 105984 2.4279000000e-01 7.2805000000e-01 105985 2.5451000000e-01 6.9614000000e-01 105986 2.2133000000e-01 7.0165000000e-01 105987 2.0850000000e-01 7.3306000000e-01 105988 1.9564000000e-01 7.6522000000e-01 105989 1.7362000000e-01 7.3764000000e-01 105990 1.3979000000e-01 7.4395000000e-01 105991 1.1191000000e-01 7.5080000000e-01 105992 1.1548000000e-01 7.2276000000e-01 105993 1.4934000000e-01 7.0791000000e-01 105994 1.8726000000e-01 7.0560000000e-01 105995 1.6922000000e-01 6.7826000000e-01 105996 1.4239000000e-01 6.7745000000e-01 105997 1.5320000000e-01 6.5727000000e-01 105998 1.8160000000e-01 6.4627000000e-01 105999 1.7768000000e-01 6.1187000000e-01 106000 2.0329000000e-01 6.2390000000e-01 106001 2.0681000000e-01 5.9551000000e-01 106002 1.7672000000e-01 5.7850000000e-01 106003 1.4567000000e-01 5.6230000000e-01 106004 1.7549000000e-01 5.4391000000e-01 106005 2.0714000000e-01 5.6075000000e-01 106006 2.0532000000e-01 5.2550000000e-01 106007 1.7393000000e-01 5.0901000000e-01 106008 1.4408000000e-01 5.2751000000e-01 106009 1.1421000000e-01 5.4614000000e-01 106010 2.0375000000e-01 4.9059000000e-01 106011 1.7239000000e-01 4.7405000000e-01 106012 2.0233000000e-01 4.5557000000e-01 106013 1.7083000000e-01 4.3898000000e-01 106014 1.4092000000e-01 4.5763000000e-01 106015 1.4251000000e-01 4.9259000000e-01 106016 1.1105000000e-01 4.7626000000e-01 106017 1.1260000000e-01 5.1120000000e-01 106018 2.2466000000e-01 1.4046000000e+00 106019 -2.3636000000e-01 4.0313000000e-01 106020 -2.0701000000e-01 3.8301000000e-01 106021 -1.7438000000e-01 3.9629000000e-01 106022 -1.7948000000e-01 3.6333000000e-01 106023 -2.0951000000e-01 3.4878000000e-01 106024 -1.8093000000e-01 3.3087000000e-01 106025 -1.5245000000e-01 3.4625000000e-01 106026 -1.5280000000e-01 3.1462000000e-01 106027 -1.8092000000e-01 2.9747000000e-01 106028 -2.1047000000e-01 3.1459000000e-01 106029 -2.1032000000e-01 2.7994000000e-01 106030 -2.4079000000e-01 2.9753000000e-01 106031 -1.7999000000e-01 2.6311000000e-01 106032 -1.5110000000e-01 2.8150000000e-01 106033 -2.0944000000e-01 2.4475000000e-01 106034 -2.4037000000e-01 2.6201000000e-01 106035 -2.7132000000e-01 2.7992000000e-01 106036 -2.7188000000e-01 3.1575000000e-01 106037 -2.4041000000e-01 3.3278000000e-01 106038 -2.3880000000e-01 3.6794000000e-01 106039 -2.7107000000e-01 3.5191000000e-01 106040 -3.0603000000e-01 3.3441000000e-01 106041 -3.0088000000e-01 3.7260000000e-01 106042 -3.3262000000e-01 3.5953000000e-01 106043 -3.3717000000e-01 3.3192000000e-01 106044 -3.6184000000e-01 3.4535000000e-01 106045 -3.5840000000e-01 3.0899000000e-01 106046 -3.9145000000e-01 3.2889000000e-01 106047 -3.9099000000e-01 3.6352000000e-01 106048 -3.6044000000e-01 3.7909000000e-01 106049 -3.8966000000e-01 3.9845000000e-01 106050 -4.1956000000e-01 4.1801000000e-01 106051 -4.2139000000e-01 3.8195000000e-01 106052 -4.5162000000e-01 4.0160000000e-01 106053 -4.4952000000e-01 4.3754000000e-01 106054 -4.5536000000e-01 3.6274000000e-01 106055 -4.8315000000e-01 3.8753000000e-01 106056 -4.8074000000e-01 4.2168000000e-01 106057 -5.0963000000e-01 4.4045000000e-01 106058 -5.3806000000e-01 4.5851000000e-01 106059 -5.3750000000e-01 4.9209000000e-01 106060 -5.4007000000e-01 4.2505000000e-01 106061 -5.6773000000e-01 5.0909000000e-01 106062 -5.9800000000e-01 5.2715000000e-01 106063 -6.0063000000e-01 4.8825000000e-01 106064 -6.2549000000e-01 5.1297000000e-01 106065 -6.2875000000e-01 5.4424000000e-01 106066 -6.3013000000e-01 5.8067000000e-01 106067 -6.6057000000e-01 5.6080000000e-01 106068 -6.6001000000e-01 5.2067000000e-01 106069 -6.8765000000e-01 5.4420000000e-01 106070 -6.9379000000e-01 5.7679000000e-01 106071 -7.2409000000e-01 5.4844000000e-01 106072 -7.2844000000e-01 5.9139000000e-01 106073 -7.6069000000e-01 5.7130000000e-01 106074 -7.6206000000e-01 6.1212000000e-01 106075 -7.3111000000e-01 6.2204000000e-01 106076 -7.9264000000e-01 5.8969000000e-01 106077 -8.2416000000e-01 5.7366000000e-01 106078 -7.9394000000e-01 5.5360000000e-01 106079 -8.2687000000e-01 5.3733000000e-01 106080 -7.9637000000e-01 5.1703000000e-01 106081 -8.2866000000e-01 5.0072000000e-01 106082 -8.6030000000e-01 5.2057000000e-01 106083 -8.5787000000e-01 5.5840000000e-01 106084 -8.9607000000e-01 5.4186000000e-01 106085 -8.8711000000e-01 5.8214000000e-01 106086 -8.5279000000e-01 5.9484000000e-01 106087 -8.7933000000e-01 6.1690000000e-01 106088 -9.2154000000e-01 5.7177000000e-01 106089 -9.1514000000e-01 6.0911000000e-01 106090 -8.9920000000e-01 6.3633000000e-01 106091 -8.7444000000e-01 6.4918000000e-01 106092 -9.5009000000e-01 6.2111000000e-01 106093 -9.8753000000e-01 6.3056000000e-01 106094 -9.4324000000e-01 5.9205000000e-01 106095 -3.5916000000e-02 1.3383000000e+00 106096 -4.0302000000e-03 1.3263000000e+00 106097 -1.0643000000e-03 1.2975000000e+00 106098 2.8552000000e-02 1.3101000000e+00 106099 4.9867000000e-02 1.2832000000e+00 106100 8.4470000000e-02 1.2725000000e+00 106101 7.8183000000e-02 1.2381000000e+00 106102 1.1391000000e-01 1.2373000000e+00 106103 1.2653000000e-01 1.2776000000e+00 106104 1.5324000000e-01 1.2503000000e+00 106105 1.4653000000e-01 1.2182000000e+00 106106 1.6140000000e-01 1.1843000000e+00 106107 1.6235000000e-01 1.1422000000e+00 106108 1.9506000000e-01 1.1247000000e+00 106109 1.9356000000e-01 1.1609000000e+00 106110 2.2501000000e-01 1.1444000000e+00 106111 2.2739000000e-01 1.1083000000e+00 106112 2.2980000000e-01 1.0719000000e+00 106113 2.3245000000e-01 1.0358000000e+00 106114 2.0320000000e-01 1.0145000000e+00 106115 2.6190000000e-01 1.0560000000e+00 106116 2.6408000000e-01 1.0203000000e+00 106117 2.3569000000e-01 1.0012000000e+00 106118 2.6544000000e-01 9.8519000000e-01 106119 2.3908000000e-01 9.7184000000e-01 106120 2.0984000000e-01 9.7942000000e-01 106121 1.7145000000e-01 9.8934000000e-01 106122 2.9537000000e-01 1.0040000000e+00 106123 2.9656000000e-01 9.6759000000e-01 106124 3.2720000000e-01 9.8765000000e-01 106125 3.2964000000e-01 9.5169000000e-01 106126 3.5930000000e-01 9.7173000000e-01 106127 3.5704000000e-01 1.0074000000e+00 106128 3.8880000000e-01 9.9142000000e-01 106129 3.8662000000e-01 1.0269000000e+00 106130 3.5504000000e-01 1.0430000000e+00 106131 3.2528000000e-01 1.0235000000e+00 106132 3.2344000000e-01 1.0593000000e+00 106133 3.5325000000e-01 1.0786000000e+00 106134 3.8464000000e-01 1.0622000000e+00 106135 3.8287000000e-01 1.0975000000e+00 106136 4.1403000000e-01 1.0814000000e+00 106137 4.1604000000e-01 1.0462000000e+00 106138 4.4530000000e-01 1.0654000000e+00 106139 4.4748000000e-01 1.0303000000e+00 106140 4.7666000000e-01 1.0497000000e+00 106141 4.7898000000e-01 1.0146000000e+00 106142 5.0811000000e-01 1.0340000000e+00 106143 5.1054000000e-01 9.9887000000e-01 106144 4.8138000000e-01 9.7931000000e-01 106145 5.1306000000e-01 9.6358000000e-01 106146 4.8382000000e-01 9.4393000000e-01 106147 4.5214000000e-01 9.5980000000e-01 106148 4.4977000000e-01 9.9509000000e-01 106149 4.2050000000e-01 9.7560000000e-01 106150 4.1820000000e-01 1.0109000000e+00 106151 3.9120000000e-01 9.5601000000e-01 106152 3.6193000000e-01 9.3621000000e-01 106153 3.9379000000e-01 9.2072000000e-01 106154 3.6471000000e-01 9.0091000000e-01 106155 3.9655000000e-01 8.8560000000e-01 106156 3.6719000000e-01 8.6524000000e-01 106157 3.3585000000e-01 8.8149000000e-01 106158 3.3296000000e-01 9.1618000000e-01 106159 3.0573000000e-01 8.9601000000e-01 106160 2.9989000000e-01 9.3075000000e-01 106161 2.7259000000e-01 9.0678000000e-01 106162 2.8241000000e-01 8.7345000000e-01 106163 3.1065000000e-01 8.6741000000e-01 106164 2.3675000000e-01 9.1419000000e-01 106165 2.6184000000e-01 9.4622000000e-01 106166 2.2255000000e-01 9.4720000000e-01 106167 2.0149000000e-01 6.7514000000e-01 106168 2.3335000000e-01 6.7195000000e-01 106169 2.1611000000e-01 6.4717000000e-01 106170 2.3417000000e-01 6.1873000000e-01 106171 2.4181000000e-01 5.7942000000e-01 106172 2.3664000000e-01 5.4171000000e-01 106173 2.3490000000e-01 5.0712000000e-01 106174 2.6577000000e-01 5.2359000000e-01 106175 2.6426000000e-01 4.8907000000e-01 106176 2.9444000000e-01 5.0511000000e-01 106177 2.9318000000e-01 4.7187000000e-01 106178 2.6365000000e-01 4.5441000000e-01 106179 2.3357000000e-01 4.7232000000e-01 106180 2.3247000000e-01 4.3721000000e-01 106181 2.6317000000e-01 4.1892000000e-01 106182 2.3119000000e-01 4.0171000000e-01 106183 2.6177000000e-01 3.8295000000e-01 106184 2.2957000000e-01 3.6596000000e-01 106185 1.9925000000e-01 3.8487000000e-01 106186 2.0088000000e-01 4.2035000000e-01 106187 1.6914000000e-01 4.0376000000e-01 106188 1.6724000000e-01 3.6832000000e-01 106189 1.3733000000e-01 3.8747000000e-01 106190 1.3924000000e-01 4.2260000000e-01 106191 1.0946000000e-01 4.4135000000e-01 106192 1.0770000000e-01 4.0647000000e-01 106193 7.8158000000e-02 4.2521000000e-01 106194 7.9646000000e-02 4.5998000000e-01 106195 8.1092000000e-02 4.9490000000e-01 106196 4.9625000000e-02 4.7856000000e-01 106197 5.0971000000e-02 5.1362000000e-01 106198 8.2611000000e-02 5.2991000000e-01 106199 8.4263000000e-02 5.6497000000e-01 106200 1.9300000000e-02 4.9722000000e-01 106201 1.8261000000e-02 4.6202000000e-01 106202 -1.2455000000e-02 4.8054000000e-01 106203 4.8425000000e-02 4.4367000000e-01 106204 1.7560000000e-02 4.2717000000e-01 106205 -1.2949000000e-02 4.4503000000e-01 106206 -4.4394000000e-02 4.6326000000e-01 106207 -4.3975000000e-02 4.2716000000e-01 106208 -7.6467000000e-02 4.4490000000e-01 106209 -7.6884000000e-02 4.8233000000e-01 106210 -7.4635000000e-02 4.0841000000e-01 106211 -4.2715000000e-02 3.9126000000e-01 106212 -7.5839000000e-02 3.6814000000e-01 106213 -1.0273000000e-01 3.9376000000e-01 106214 -1.0615000000e-01 4.2516000000e-01 106215 -1.3668000000e-01 4.0360000000e-01 106216 -1.3361000000e-01 4.3716000000e-01 106217 -1.1281000000e-01 4.6304000000e-01 106218 -7.5036000000e-02 5.1970000000e-01 106219 -4.2006000000e-02 5.3564000000e-01 106220 -4.3678000000e-02 4.9960000000e-01 106221 -1.1308000000e-02 5.1617000000e-01 106222 -1.5267000000e-01 3.7460000000e-01 106223 -1.2040000000e-01 3.6344000000e-01 106224 -9.3970000000e-02 3.2706000000e-01 106225 -1.2851000000e-01 3.3049000000e-01 106226 -1.2297000000e-01 3.0097000000e-01 106227 -1.2046000000e-01 2.6589000000e-01 106228 -9.1091000000e-02 2.8609000000e-01 106229 -8.9350000000e-02 2.4957000000e-01 106230 -5.9713000000e-02 2.6852000000e-01 106231 -6.0170000000e-02 3.0436000000e-01 106232 -3.0359000000e-02 2.8620000000e-01 106233 -2.9120000000e-02 2.5191000000e-01 106234 -5.8274000000e-02 2.3286000000e-01 106235 -2.7049000000e-02 2.1657000000e-01 106236 -5.6638000000e-02 1.9687000000e-01 106237 -8.7850000000e-02 2.1359000000e-01 106238 -1.1880000000e-01 2.3032000000e-01 106239 -1.4952000000e-01 2.4676000000e-01 106240 -1.4813000000e-01 2.1147000000e-01 106241 -1.1754000000e-01 1.9450000000e-01 106242 -1.4709000000e-01 1.7608000000e-01 106243 -1.7723000000e-01 1.9295000000e-01 106244 -1.7585000000e-01 1.5849000000e-01 106245 -2.0572000000e-01 1.7414000000e-01 106246 -2.0796000000e-01 2.0925000000e-01 106247 -1.7870000000e-01 2.2808000000e-01 106248 -2.3938000000e-01 2.2597000000e-01 106249 -2.7104000000e-01 2.4375000000e-01 106250 -2.7016000000e-01 2.0644000000e-01 106251 -2.3736000000e-01 1.8947000000e-01 106252 -2.6782000000e-01 1.6730000000e-01 106253 -2.3317000000e-01 1.5354000000e-01 106254 -3.0262000000e-01 1.8659000000e-01 106255 -3.0281000000e-01 2.2541000000e-01 106256 -3.3578000000e-01 2.0720000000e-01 106257 -3.3542000000e-01 1.6972000000e-01 106258 -3.6630000000e-01 1.8813000000e-01 106259 -3.7251000000e-01 2.2744000000e-01 106260 -3.3506000000e-01 2.4578000000e-01 106261 -3.6546000000e-01 2.6930000000e-01 106262 -3.3163000000e-01 2.8262000000e-01 106263 -3.0225000000e-01 2.6257000000e-01 106264 -3.0168000000e-01 2.9777000000e-01 106265 -3.2698000000e-01 3.1117000000e-01 106266 -3.9428000000e-01 2.9349000000e-01 106267 -4.0093000000e-01 2.5736000000e-01 106268 -4.2742000000e-01 2.8171000000e-01 106269 -4.2208000000e-01 3.1458000000e-01 106270 -4.5255000000e-01 3.0423000000e-01 106271 -4.5967000000e-01 2.7209000000e-01 106272 -4.3503000000e-01 2.4843000000e-01 106273 -4.1095000000e-01 2.2370000000e-01 106274 -4.4362000000e-01 2.1599000000e-01 106275 -4.6761000000e-01 2.3961000000e-01 106276 -4.9196000000e-01 2.6322000000e-01 106277 -4.8352000000e-01 2.9527000000e-01 106278 -4.7700000000e-01 3.2990000000e-01 106279 -4.4562000000e-01 3.3176000000e-01 106280 -4.2115000000e-01 3.4726000000e-01 106281 -4.8754000000e-01 3.5908000000e-01 106282 -5.0987000000e-01 3.4168000000e-01 106283 -5.1234000000e-01 3.7350000000e-01 106284 -5.1126000000e-01 4.0649000000e-01 106285 -5.4160000000e-01 3.9064000000e-01 106286 -5.7359000000e-01 4.1026000000e-01 106287 -5.6626000000e-01 4.4387000000e-01 106288 -5.6645000000e-01 4.7508000000e-01 106289 -5.8848000000e-01 4.5863000000e-01 106290 -5.9086000000e-01 4.3564000000e-01 106291 -6.1818000000e-01 4.5029000000e-01 106292 -6.4003000000e-01 4.8454000000e-01 106293 -6.7774000000e-01 4.8366000000e-01 106294 -6.9980000000e-01 5.1431000000e-01 106295 -7.1400000000e-01 4.8035000000e-01 106296 -7.3533000000e-01 5.0854000000e-01 106297 -7.6298000000e-01 5.3261000000e-01 106298 -7.6749000000e-01 4.9676000000e-01 106299 -7.4363000000e-01 4.7881000000e-01 106300 -7.6836000000e-01 4.6239000000e-01 106301 -7.9833000000e-01 4.8120000000e-01 106302 -8.2974000000e-01 4.6470000000e-01 106303 -7.9945000000e-01 4.4564000000e-01 106304 -8.3073000000e-01 4.2932000000e-01 106305 -8.0126000000e-01 4.1036000000e-01 106306 -8.3178000000e-01 3.9493000000e-01 106307 -8.6136000000e-01 4.1258000000e-01 106308 -8.6088000000e-01 4.4777000000e-01 106309 -8.9185000000e-01 4.3062000000e-01 106310 -8.9124000000e-01 4.6591000000e-01 106311 -9.2197000000e-01 4.4934000000e-01 106312 -9.2042000000e-01 4.8258000000e-01 106313 -8.9197000000e-01 5.0161000000e-01 106314 -8.6045000000e-01 4.8354000000e-01 106315 -9.2345000000e-01 5.1519000000e-01 106316 -9.4862000000e-01 4.9563000000e-01 106317 -9.5334000000e-01 5.2606000000e-01 106318 -9.3035000000e-01 5.4338000000e-01 106319 -9.7237000000e-01 5.0654000000e-01 106320 -9.7687000000e-01 4.7562000000e-01 106321 -9.4538000000e-01 4.6781000000e-01 106322 -9.5910000000e-01 4.3586000000e-01 106323 -7.6832000000e-01 4.2590000000e-01 106324 -7.3301000000e-01 4.4606000000e-01 106325 -6.9450000000e-01 4.5076000000e-01 106326 -6.5811000000e-01 4.5136000000e-01 106327 -6.4138000000e-01 4.1845000000e-01 106328 -6.0774000000e-01 4.1514000000e-01 106329 -6.2550000000e-01 3.8773000000e-01 106330 -6.6193000000e-01 3.8569000000e-01 106331 -6.7681000000e-01 4.2051000000e-01 106332 -6.9759000000e-01 3.9420000000e-01 106333 -6.8809000000e-01 3.6682000000e-01 106334 -7.1645000000e-01 3.6796000000e-01 106335 -7.3491000000e-01 4.0162000000e-01 106336 -7.0736000000e-01 4.2262000000e-01 106337 -7.7300000000e-01 3.8935000000e-01 106338 -8.0434000000e-01 3.7705000000e-01 106339 -7.8053000000e-01 3.5594000000e-01 106340 -8.0754000000e-01 3.4944000000e-01 106341 -8.3200000000e-01 3.6233000000e-01 106342 -8.6109000000e-01 3.7795000000e-01 106343 -8.9188000000e-01 3.9487000000e-01 106344 -8.9047000000e-01 3.5910000000e-01 106345 -9.2270000000e-01 3.7571000000e-01 106346 -9.2389000000e-01 4.1327000000e-01 106347 -9.5593000000e-01 3.9324000000e-01 106348 -9.9029000000e-01 4.0800000000e-01 106349 -9.8608000000e-01 3.7143000000e-01 106350 -1.0179000000e+00 3.8514000000e-01 106351 -1.0142000000e+00 3.5190000000e-01 106352 -1.0437000000e+00 3.6398000000e-01 106353 -1.0498000000e+00 3.9698000000e-01 106354 -1.0793000000e+00 3.7241000000e-01 106355 -1.0638000000e+00 3.4032000000e-01 106356 -1.0905000000e+00 3.4255000000e-01 106357 -1.0828000000e+00 3.1482000000e-01 106358 -1.1134000000e+00 3.2640000000e-01 106359 -1.0233000000e+00 4.1853000000e-01 106360 -9.9948000000e-01 4.4377000000e-01 106361 -1.0294000000e+00 4.4679000000e-01 106362 2.5996000000e-01 3.4699000000e-01 106363 2.2781000000e-01 3.3006000000e-01 106364 2.5827000000e-01 3.1102000000e-01 106365 2.2609000000e-01 2.9400000000e-01 106366 1.9555000000e-01 3.1319000000e-01 106367 1.9743000000e-01 3.4916000000e-01 106368 1.6514000000e-01 3.3257000000e-01 106369 1.3507000000e-01 3.5211000000e-01 106370 1.3245000000e-01 3.1624000000e-01 106371 1.0268000000e-01 3.3645000000e-01 106372 1.0554000000e-01 3.7159000000e-01 106373 7.6402000000e-02 3.9067000000e-01 106374 7.3991000000e-02 3.5636000000e-01 106375 7.0222000000e-02 3.2214000000e-01 106376 4.3313000000e-02 3.4207000000e-01 106377 4.1857000000e-02 3.1318000000e-01 106378 1.1872000000e-02 3.2532000000e-01 106379 1.6143000000e-02 3.6012000000e-01 106380 4.5706000000e-02 3.7524000000e-01 106381 1.7069000000e-02 3.9307000000e-01 106382 4.7233000000e-02 4.0917000000e-01 106383 -6.5753000000e-03 1.3645000000e+00 106384 2.0010000000e-02 1.3423000000e+00 106385 1.8771000000e-01 1.2617000000e+00 106386 1.8245000000e-01 1.2226000000e+00 106387 1.9533000000e-01 1.1913000000e+00 106388 2.2216000000e-01 1.1786000000e+00 106389 2.5442000000e-01 1.1655000000e+00 106390 2.5742000000e-01 1.1287000000e+00 106391 2.8813000000e-01 1.1497000000e+00 106392 2.8986000000e-01 1.1122000000e+00 106393 2.5968000000e-01 1.0921000000e+00 106394 3.2048000000e-01 1.1315000000e+00 106395 3.2040000000e-01 1.1683000000e+00 106396 3.5098000000e-01 1.1494000000e+00 106397 3.5179000000e-01 1.1141000000e+00 106398 3.2176000000e-01 1.0952000000e+00 106399 3.8141000000e-01 1.1325000000e+00 106400 4.1216000000e-01 1.1163000000e+00 106401 4.4319000000e-01 1.1004000000e+00 106402 4.7441000000e-01 1.0847000000e+00 106403 5.0575000000e-01 1.0691000000e+00 106404 5.3716000000e-01 1.0535000000e+00 106405 5.3960000000e-01 1.0184000000e+00 106406 5.6860000000e-01 1.0380000000e+00 106407 5.6617000000e-01 1.0730000000e+00 106408 5.3477000000e-01 1.0885000000e+00 106409 5.6377000000e-01 1.1079000000e+00 106410 5.0343000000e-01 1.1040000000e+00 106411 5.3239000000e-01 1.1234000000e+00 106412 5.6137000000e-01 1.1428000000e+00 106413 5.9278000000e-01 1.1274000000e+00 106414 5.9039000000e-01 1.1623000000e+00 106415 6.2183000000e-01 1.1469000000e+00 106416 6.1947000000e-01 1.1819000000e+00 106417 6.5093000000e-01 1.1664000000e+00 106418 6.5325000000e-01 1.1314000000e+00 106419 6.8234000000e-01 1.1509000000e+00 106420 6.8465000000e-01 1.1159000000e+00 106421 7.1372000000e-01 1.1354000000e+00 106422 7.1602000000e-01 1.1005000000e+00 106423 6.8698000000e-01 1.0810000000e+00 106424 6.5560000000e-01 1.0964000000e+00 106425 6.5796000000e-01 1.0615000000e+00 106426 6.2657000000e-01 1.0770000000e+00 106427 6.2420000000e-01 1.1119000000e+00 106428 5.9517000000e-01 1.0924000000e+00 106429 5.9758000000e-01 1.0575000000e+00 106430 6.2898000000e-01 1.0420000000e+00 106431 6.0004000000e-01 1.0225000000e+00 106432 6.3143000000e-01 1.0071000000e+00 106433 6.0258000000e-01 9.8757000000e-01 106434 5.7111000000e-01 1.0030000000e+00 106435 5.7375000000e-01 9.6790000000e-01 106436 5.4214000000e-01 9.8330000000e-01 106437 5.4485000000e-01 9.4803000000e-01 106438 5.1570000000e-01 9.2800000000e-01 106439 4.8616000000e-01 9.0832000000e-01 106440 4.5452000000e-01 9.2452000000e-01 106441 4.2292000000e-01 9.4032000000e-01 106442 4.2542000000e-01 9.0522000000e-01 106443 4.5668000000e-01 8.8948000000e-01 106444 4.2807000000e-01 8.7063000000e-01 106445 4.0012000000e-01 8.5080000000e-01 106446 4.3158000000e-01 8.3690000000e-01 106447 4.0523000000e-01 8.1695000000e-01 106448 4.0824000000e-01 7.8838000000e-01 106449 4.3934000000e-01 8.0021000000e-01 106450 4.6797000000e-01 7.6411000000e-01 106451 4.7812000000e-01 8.0438000000e-01 106452 4.5861000000e-01 8.2701000000e-01 106453 4.5810000000e-01 8.5571000000e-01 106454 -5.8915000000e-02 3.3582000000e-01 106455 -2.7065000000e-02 3.2236000000e-01 106456 -3.7606000000e-02 3.5711000000e-01 106457 -9.6284000000e-03 3.4833000000e-01 106458 -1.1567000000e-02 3.7666000000e-01 106459 -1.2750000000e-02 4.1006000000e-01 106460 -4.7532000000e-03 2.9929000000e-01 106461 -1.4232000000e-03 2.7066000000e-01 106462 2.0144000000e-03 2.3654000000e-01 106463 4.8060000000e-03 2.0049000000e-01 106464 3.4336000000e-02 2.2145000000e-01 106465 3.0463000000e-02 2.5805000000e-01 106466 6.3972000000e-02 2.4324000000e-01 106467 6.0677000000e-02 2.8449000000e-01 106468 6.6084000000e-02 2.0733000000e-01 106469 3.8618000000e-02 1.8293000000e-01 106470 6.0108000000e-03 1.6469000000e-01 106471 -2.5153000000e-02 1.8063000000e-01 106472 -2.3115000000e-02 1.4486000000e-01 106473 -5.4987000000e-02 1.6016000000e-01 106474 -5.2822000000e-02 1.2089000000e-01 106475 -8.5669000000e-02 1.4031000000e-01 106476 -8.6578000000e-02 1.7727000000e-01 106477 -1.1685000000e-01 1.5808000000e-01 106478 -1.1727000000e-01 1.1930000000e-01 106479 -1.4699000000e-01 1.4088000000e-01 106480 -1.4964000000e-01 1.0747000000e-01 106481 -1.7532000000e-01 1.2572000000e-01 106482 -2.0279000000e-01 1.4103000000e-01 106483 -2.2551000000e-01 1.2482000000e-01 106484 -2.5988000000e-01 1.2435000000e-01 106485 -3.0377000000e-01 1.4333000000e-01 106486 -2.0121000000e-01 1.0933000000e-01 106487 -1.7550000000e-01 9.7010000000e-02 106488 -1.9759000000e-01 7.1560000000e-02 106489 -2.3056000000e-01 9.5759000000e-02 106490 -2.6345000000e-01 8.3373000000e-02 106491 -2.9489000000e-01 1.0220000000e-01 106492 -3.2739000000e-01 1.1319000000e-01 106493 -3.3844000000e-01 1.3982000000e-01 106494 -3.6567000000e-01 1.5314000000e-01 106495 -3.9536000000e-01 1.7071000000e-01 106496 -3.9312000000e-01 2.0050000000e-01 106497 -4.2053000000e-01 1.9241000000e-01 106498 -4.2805000000e-01 1.5933000000e-01 106499 -3.9855000000e-01 1.3069000000e-01 106500 -4.5215000000e-01 1.8418000000e-01 106501 -4.7550000000e-01 2.0754000000e-01 106502 -4.9995000000e-01 2.3036000000e-01 106503 -5.2565000000e-01 2.5427000000e-01 106504 -5.1537000000e-01 2.8768000000e-01 106505 -5.0457000000e-01 3.1443000000e-01 106506 -5.3713000000e-01 3.1756000000e-01 106507 -5.4062000000e-01 3.5553000000e-01 106508 -5.7166000000e-01 3.7299000000e-01 106509 -5.7114000000e-01 3.3679000000e-01 106510 -6.0609000000e-01 3.5624000000e-01 106511 -5.9692000000e-01 3.8847000000e-01 106512 -5.4941000000e-01 2.8129000000e-01 106513 -5.6895000000e-01 3.0553000000e-01 106514 -6.0241000000e-01 3.1287000000e-01 106515 -6.3604000000e-01 3.3242000000e-01 106516 -6.3660000000e-01 2.9813000000e-01 106517 -6.6699000000e-01 3.1513000000e-01 106518 -6.6521000000e-01 3.4981000000e-01 106519 -6.3895000000e-01 3.6237000000e-01 106520 -6.9928000000e-01 3.3645000000e-01 106521 -6.9858000000e-01 2.9759000000e-01 106522 -6.6625000000e-01 2.7640000000e-01 106523 -6.9852000000e-01 2.6701000000e-01 106524 -7.3096000000e-01 2.7616000000e-01 106525 -7.2949000000e-01 3.1441000000e-01 106526 -7.6091000000e-01 2.9950000000e-01 106527 -7.5706000000e-01 3.3330000000e-01 106528 -7.3019000000e-01 3.4347000000e-01 106529 -7.4868000000e-01 3.6527000000e-01 106530 -7.9262000000e-01 3.2124000000e-01 106531 -7.9124000000e-01 2.8261000000e-01 106532 -7.6410000000e-01 2.6932000000e-01 106533 -8.1937000000e-01 2.6307000000e-01 106534 -8.2290000000e-01 2.9723000000e-01 106535 -8.5072000000e-01 2.7586000000e-01 106536 -8.4574000000e-01 2.4262000000e-01 106537 -8.7788000000e-01 2.5389000000e-01 106538 -8.7290000000e-01 2.1636000000e-01 106539 -9.0437000000e-01 2.3398000000e-01 106540 -9.1041000000e-01 2.6608000000e-01 106541 -8.8316000000e-01 2.8843000000e-01 106542 -9.1710000000e-01 3.0127000000e-01 106543 -8.8760000000e-01 3.2355000000e-01 106544 -8.5528000000e-01 3.0994000000e-01 106545 -8.2823000000e-01 3.3068000000e-01 106546 -8.5910000000e-01 3.4392000000e-01 106547 -9.2053000000e-01 3.3861000000e-01 106548 -9.5178000000e-01 3.1688000000e-01 106549 -9.5358000000e-01 3.5517000000e-01 106550 -9.8455000000e-01 3.3515000000e-01 106551 -9.8575000000e-01 2.9698000000e-01 106552 -1.0159000000e+00 3.1854000000e-01 106553 -1.0374000000e+00 3.3716000000e-01 106554 -1.0491000000e+00 3.1103000000e-01 106555 -1.0706000000e+00 2.7634000000e-01 106556 -1.2024000000e+00 3.0653000000e-01 106557 -1.2332000000e+00 3.2370000000e-01 106558 6.4863000000e-01 1.2014000000e+00 106559 6.1710000000e-01 1.2169000000e+00 106560 6.4635000000e-01 1.2365000000e+00 106561 6.1472000000e-01 1.2521000000e+00 106562 6.4409000000e-01 1.2718000000e+00 106563 6.7568000000e-01 1.2561000000e+00 106564 6.7785000000e-01 1.2209000000e+00 106565 6.8008000000e-01 1.1859000000e+00 106566 7.0925000000e-01 1.2053000000e+00 106567 7.0711000000e-01 1.2404000000e+00 106568 7.3844000000e-01 1.2247000000e+00 106569 7.4058000000e-01 1.1898000000e+00 106570 7.6969000000e-01 1.2092000000e+00 106571 7.7187000000e-01 1.1743000000e+00 106572 7.4280000000e-01 1.1549000000e+00 106573 7.1146000000e-01 1.1704000000e+00 106574 7.4508000000e-01 1.1200000000e+00 106575 7.7413000000e-01 1.1395000000e+00 106576 7.7645000000e-01 1.1046000000e+00 106577 7.4740000000e-01 1.0851000000e+00 106578 7.7880000000e-01 1.0697000000e+00 106579 7.4974000000e-01 1.0502000000e+00 106580 7.1836000000e-01 1.0656000000e+00 106581 6.8933000000e-01 1.0461000000e+00 106582 7.2070000000e-01 1.0306000000e+00 106583 6.9170000000e-01 1.0112000000e+00 106584 6.6036000000e-01 1.0266000000e+00 106585 6.6277000000e-01 9.9171000000e-01 106586 6.3394000000e-01 9.7224000000e-01 106587 6.6517000000e-01 9.5688000000e-01 106588 6.3649000000e-01 9.3751000000e-01 106589 6.0524000000e-01 9.5268000000e-01 106590 5.7662000000e-01 9.3284000000e-01 106591 5.4787000000e-01 9.1251000000e-01 106592 5.1846000000e-01 8.9156000000e-01 106593 5.5168000000e-01 8.7666000000e-01 106594 5.2158000000e-01 8.5144000000e-01 106595 4.8781000000e-01 8.7239000000e-01 106596 4.8587000000e-01 8.3777000000e-01 106597 5.1101000000e-01 8.1563000000e-01 106598 5.0585000000e-01 7.8146000000e-01 106599 5.3644000000e-01 7.9542000000e-01 106600 5.3815000000e-01 8.2323000000e-01 106601 5.6362000000e-01 8.1087000000e-01 106602 5.6447000000e-01 7.7838000000e-01 106603 5.9532000000e-01 7.9498000000e-01 106604 5.8956000000e-01 7.6458000000e-01 106605 5.6629000000e-01 7.4147000000e-01 106606 5.3550000000e-01 7.6287000000e-01 106607 5.0601000000e-01 7.4626000000e-01 106608 4.7897000000e-01 7.2260000000e-01 106609 4.5461000000e-01 6.9523000000e-01 106610 4.8948000000e-01 6.8758000000e-01 106611 4.6644000000e-01 6.6255000000e-01 106612 4.3195000000e-01 6.6763000000e-01 106613 3.9637000000e-01 6.7244000000e-01 106614 3.6054000000e-01 6.7716000000e-01 106615 3.7392000000e-01 6.4401000000e-01 106616 4.0987000000e-01 6.3944000000e-01 106617 3.8753000000e-01 6.1067000000e-01 106618 4.2387000000e-01 6.0662000000e-01 106619 4.4542000000e-01 6.3519000000e-01 106620 4.8053000000e-01 6.3177000000e-01 106621 4.5968000000e-01 6.0303000000e-01 106622 4.3844000000e-01 5.7395000000e-01 106623 4.7411000000e-01 5.7062000000e-01 106624 4.5317000000e-01 5.4142000000e-01 106625 4.8852000000e-01 5.3812000000e-01 106626 4.9552000000e-01 5.9995000000e-01 106627 5.0912000000e-01 5.6714000000e-01 106628 5.2334000000e-01 5.3530000000e-01 106629 5.4296000000e-01 5.6375000000e-01 106630 5.5739000000e-01 5.3324000000e-01 106631 5.3846000000e-01 5.0392000000e-01 106632 5.0342000000e-01 5.0551000000e-01 106633 4.6778000000e-01 5.0865000000e-01 106634 4.3248000000e-01 5.1252000000e-01 106635 4.1751000000e-01 5.4459000000e-01 106636 4.0215000000e-01 5.7732000000e-01 106637 3.6429000000e-01 5.8092000000e-01 106638 3.5092000000e-01 6.1561000000e-01 106639 3.3814000000e-01 6.4865000000e-01 106640 3.2426000000e-01 6.8186000000e-01 106641 2.8847000000e-01 6.8852000000e-01 106642 2.9891000000e-01 6.5037000000e-01 106643 2.6394000000e-01 6.6453000000e-01 106644 2.9028000000e-01 3.2808000000e-01 106645 2.9204000000e-01 3.6389000000e-01 106646 3.2173000000e-01 3.4508000000e-01 106647 3.2083000000e-01 3.0946000000e-01 106648 2.8885000000e-01 2.9203000000e-01 106649 2.5663000000e-01 2.7492000000e-01 106650 2.8713000000e-01 2.5583000000e-01 106651 2.5498000000e-01 2.3880000000e-01 106652 3.1998000000e-01 2.7285000000e-01 106653 3.1733000000e-01 2.3631000000e-01 106654 3.5193000000e-01 2.9129000000e-01 106655 3.5223000000e-01 3.2736000000e-01 106656 3.8107000000e-01 3.4719000000e-01 106657 4.1186000000e-01 3.3699000000e-01 106658 4.0700000000e-01 3.6774000000e-01 106659 4.4177000000e-01 3.3338000000e-01 106660 4.5554000000e-01 3.0704000000e-01 106661 4.7289000000e-01 2.8129000000e-01 106662 4.8276000000e-01 3.0742000000e-01 106663 4.7189000000e-01 3.3292000000e-01 106664 4.5662000000e-01 3.5912000000e-01 106665 4.9073000000e-01 3.6333000000e-01 106666 5.0392000000e-01 3.2722000000e-01 106667 4.3088000000e-01 3.5656000000e-01 106668 4.3713000000e-01 3.8556000000e-01 106669 4.0356000000e-01 4.0015000000e-01 106670 4.3069000000e-01 4.2171000000e-01 106671 4.6381000000e-01 4.1063000000e-01 106672 4.6731000000e-01 3.8293000000e-01 106673 4.8824000000e-01 3.9596000000e-01 106674 5.3942000000e-01 3.1687000000e-01 106675 5.7727000000e-01 3.0585000000e-01 106676 5.8266000000e-01 2.6820000000e-01 106677 6.1452000000e-01 2.5291000000e-01 106678 6.1810000000e-01 2.2245000000e-01 106679 6.4423000000e-01 2.3702000000e-01 106680 6.4187000000e-01 2.0378000000e-01 106681 6.4456000000e-01 2.7088000000e-01 106682 6.7333000000e-01 2.5320000000e-01 106683 6.7301000000e-01 2.1897000000e-01 106684 7.0083000000e-01 1.9901000000e-01 106685 6.7027000000e-01 1.8475000000e-01 106686 6.3984000000e-01 1.6968000000e-01 106687 6.6816000000e-01 1.5192000000e-01 106688 6.4097000000e-01 1.3632000000e-01 106689 6.1199000000e-01 1.5147000000e-01 106690 6.1458000000e-01 1.1953000000e-01 106691 5.9062000000e-01 1.3322000000e-01 106692 6.9795000000e-01 1.6517000000e-01 106693 7.2857000000e-01 1.7957000000e-01 106694 7.2770000000e-01 2.0952000000e-01 106695 7.2603000000e-01 1.4426000000e-01 106696 6.9385000000e-01 1.3155000000e-01 106697 7.2223000000e-01 1.0424000000e-01 106698 6.8260000000e-01 9.9613000000e-02 106699 6.6614000000e-01 1.2412000000e-01 106700 6.4516000000e-01 1.0122000000e-01 106701 6.6592000000e-01 6.8571000000e-02 106702 6.1462000000e-01 9.2191000000e-02 106703 7.0230000000e-01 6.8017000000e-02 106704 7.5084000000e-01 1.2545000000e-01 106705 -1.0244000000e+00 2.7901000000e-01 106706 -1.0443000000e+00 2.4624000000e-01 106707 -9.8875000000e-01 2.5825000000e-01 106708 -9.4918000000e-01 2.7407000000e-01 106709 -9.5968000000e-01 2.3414000000e-01 106710 -9.9717000000e-01 2.1959000000e-01 106711 -9.6173000000e-01 1.9209000000e-01 106712 -1.0008000000e+00 1.8158000000e-01 106713 -9.2234000000e-01 1.8430000000e-01 106714 -9.0375000000e-01 2.0667000000e-01 106715 -8.3550000000e-01 2.1170000000e-01 106716 -8.1810000000e-01 2.3482000000e-01 106717 -8.1957000000e-01 1.8204000000e-01 106718 -9.3045000000e-01 2.1601000000e-01 106719 -9.3082000000e-01 2.4486000000e-01 106720 6.9405000000e-01 9.7626000000e-01 106721 6.9633000000e-01 9.4138000000e-01 106722 7.2534000000e-01 9.6075000000e-01 106723 7.2754000000e-01 9.2573000000e-01 106724 7.5670000000e-01 9.4521000000e-01 106725 7.5892000000e-01 9.1004000000e-01 106726 7.2955000000e-01 8.9052000000e-01 106727 6.9841000000e-01 9.0649000000e-01 106728 6.6749000000e-01 9.2218000000e-01 106729 6.3905000000e-01 9.0310000000e-01 106730 6.0809000000e-01 9.1798000000e-01 106731 5.7994000000e-01 8.9793000000e-01 106732 5.8415000000e-01 8.6371000000e-01 106733 5.5806000000e-01 8.4273000000e-01 106734 5.8920000000e-01 8.3040000000e-01 106735 6.1924000000e-01 8.1936000000e-01 106736 6.2854000000e-01 7.9111000000e-01 106737 6.1250000000e-01 7.7006000000e-01 106738 6.0915000000e-01 7.3793000000e-01 106739 5.8370000000e-01 7.0445000000e-01 106740 6.3986000000e-01 7.6166000000e-01 106741 6.4958000000e-01 7.2633000000e-01 106742 6.2241000000e-01 6.9687000000e-01 106743 5.9470000000e-01 6.6297000000e-01 106744 5.6180000000e-01 6.7958000000e-01 106745 5.4767000000e-01 7.0783000000e-01 106746 5.2646000000e-01 6.7497000000e-01 106747 5.1377000000e-01 7.1225000000e-01 106748 5.3387000000e-01 7.3415000000e-01 106749 4.9651000000e-01 6.5780000000e-01 106750 5.1946000000e-01 6.3201000000e-01 106751 5.3004000000e-01 5.9503000000e-01 106752 5.5063000000e-01 6.1684000000e-01 106753 5.6236000000e-01 5.9037000000e-01 106754 5.8476000000e-01 6.1913000000e-01 106755 5.9028000000e-01 5.8604000000e-01 106756 5.7529000000e-01 5.6134000000e-01 106757 5.9115000000e-01 5.3235000000e-01 106758 5.7293000000e-01 5.0274000000e-01 106759 6.0735000000e-01 5.6221000000e-01 106760 6.2545000000e-01 5.3292000000e-01 106761 6.0829000000e-01 5.0161000000e-01 106762 5.8816000000e-01 4.7153000000e-01 106763 6.2409000000e-01 4.6864000000e-01 106764 5.6735000000e-01 4.4341000000e-01 106765 5.3707000000e-01 4.4798000000e-01 106766 5.5394000000e-01 4.7375000000e-01 106767 5.1952000000e-01 4.7289000000e-01 106768 4.8274000000e-01 4.7413000000e-01 106769 4.4620000000e-01 4.8012000000e-01 106770 4.1249000000e-01 4.8507000000e-01 106771 3.9758000000e-01 5.1519000000e-01 106772 4.2351000000e-01 4.5469000000e-01 106773 4.5806000000e-01 4.4555000000e-01 106774 3.9801000000e-01 4.3363000000e-01 106775 3.7100000000e-01 4.1226000000e-01 106776 3.6376000000e-01 4.5088000000e-01 106777 3.9548000000e-01 4.6202000000e-01 106778 3.7955000000e-01 4.8579000000e-01 106779 3.6225000000e-01 5.1604000000e-01 106780 3.4566000000e-01 4.8546000000e-01 106781 3.2691000000e-01 5.1443000000e-01 106782 3.1695000000e-01 4.8707000000e-01 106783 3.4258000000e-01 5.4828000000e-01 106784 2.9947000000e-01 5.4462000000e-01 106785 3.2135000000e-01 5.8654000000e-01 106786 2.8030000000e-01 5.8041000000e-01 106787 2.9154000000e-01 6.1304000000e-01 106788 2.6481000000e-01 5.5395000000e-01 106789 2.6271000000e-01 6.0494000000e-01 106790 5.0133000000e-01 4.3199000000e-01 106791 3.0319000000e+00 1.3718000000e+00 106792 3.0320000000e+00 1.4075000000e+00 106793 3.0014000000e+00 1.4273000000e+00 106794 2.9717000000e+00 1.4472000000e+00 106795 2.9441000000e+00 1.4676000000e+00 106796 2.9125000000e+00 1.4576000000e+00 106797 2.8780000000e+00 1.4474000000e+00 106798 2.8419000000e+00 1.4377000000e+00 106799 2.8054000000e+00 1.4287000000e+00 106800 2.7695000000e+00 1.4199000000e+00 106801 2.7350000000e+00 1.4105000000e+00 106802 2.7069000000e+00 1.4351000000e+00 106803 2.6770000000e+00 1.4250000000e+00 106804 2.6467000000e+00 1.4182000000e+00 106805 2.6158000000e+00 1.4131000000e+00 106806 2.5839000000e+00 1.4101000000e+00 106807 2.5498000000e+00 1.4086000000e+00 106808 2.5132000000e+00 1.4076000000e+00 106809 2.4936000000e+00 1.4403000000e+00 106810 2.4769000000e+00 1.4671000000e+00 106811 2.4602000000e+00 1.4433000000e+00 106812 2.4421000000e+00 1.4233000000e+00 106813 2.4140000000e+00 1.4218000000e+00 106814 2.3784000000e+00 1.4217000000e+00 106815 2.3508000000e+00 1.4070000000e+00 106816 2.3179000000e+00 1.4083000000e+00 106817 2.2890000000e+00 1.3935000000e+00 106818 2.2578000000e+00 1.3949000000e+00 106819 2.2394000000e+00 1.4268000000e+00 106820 2.2088000000e+00 1.4290000000e+00 106821 2.1820000000e+00 1.4158000000e+00 106822 2.1463000000e+00 1.4405000000e+00 106823 2.1109000000e+00 1.4462000000e+00 106824 2.0916000000e+00 1.4631000000e+00 106825 2.0817000000e+00 1.4339000000e+00 106826 2.0678000000e+00 1.4627000000e+00 106827 2.0460000000e+00 1.4436000000e+00 106828 2.0536000000e+00 1.4102000000e+00 106829 2.0202000000e+00 1.4203000000e+00 106830 2.0114000000e+00 1.4565000000e+00 106831 1.9725000000e+00 1.4700000000e+00 106832 1.9729000000e+00 1.5013000000e+00 106833 1.9837000000e+00 1.5219000000e+00 106834 1.9471000000e+00 1.4948000000e+00 106835 1.9160000000e+00 1.4868000000e+00 106836 1.8786000000e+00 1.4729000000e+00 106837 1.8548000000e+00 1.5074000000e+00 106838 1.8201000000e+00 1.5054000000e+00 106839 1.7999000000e+00 1.5318000000e+00 106840 1.7801000000e+00 1.5576000000e+00 106841 1.7666000000e+00 1.5277000000e+00 106842 1.7320000000e+00 1.5248000000e+00 106843 1.6961000000e+00 1.5234000000e+00 106844 1.6775000000e+00 1.5546000000e+00 106845 1.6418000000e+00 1.5549000000e+00 106846 1.6064000000e+00 1.5555000000e+00 106847 1.6238000000e+00 1.5243000000e+00 106848 1.5884000000e+00 1.5253000000e+00 106849 1.5712000000e+00 1.5560000000e+00 106850 1.5364000000e+00 1.5565000000e+00 106851 1.5190000000e+00 1.5265000000e+00 106852 1.4846000000e+00 1.5265000000e+00 106853 1.4679000000e+00 1.4964000000e+00 106854 1.5020000000e+00 1.4967000000e+00 106855 1.4856000000e+00 1.4672000000e+00 106856 1.4519000000e+00 1.4662000000e+00 106857 1.4702000000e+00 1.4376000000e+00 106858 1.4365000000e+00 1.4354000000e+00 106859 1.5027000000e+00 1.4390000000e+00 106860 1.4884000000e+00 1.4113000000e+00 106861 1.4565000000e+00 1.4067000000e+00 106862 1.4214000000e+00 1.4035000000e+00 106863 1.4016000000e+00 1.4336000000e+00 106864 1.3856000000e+00 1.4024000000e+00 106865 1.4044000000e+00 1.3721000000e+00 106866 1.3692000000e+00 1.3721000000e+00 106867 1.3864000000e+00 1.3426000000e+00 106868 1.3524000000e+00 1.3431000000e+00 106869 1.3690000000e+00 1.3135000000e+00 106870 1.3346000000e+00 1.3144000000e+00 106871 1.3193000000e+00 1.3443000000e+00 106872 1.3357000000e+00 1.3715000000e+00 106873 1.3506000000e+00 1.4011000000e+00 106874 1.3160000000e+00 1.3981000000e+00 106875 1.3309000000e+00 1.4302000000e+00 106876 1.2944000000e+00 1.4271000000e+00 106877 1.3112000000e+00 1.4605000000e+00 106878 1.3471000000e+00 1.4621000000e+00 106879 1.3664000000e+00 1.4322000000e+00 106880 1.3281000000e+00 1.4926000000e+00 106881 1.3095000000e+00 1.5235000000e+00 106882 1.2921000000e+00 1.4918000000e+00 106883 1.2744000000e+00 1.4593000000e+00 106884 1.2559000000e+00 1.4257000000e+00 106885 1.2372000000e+00 1.4594000000e+00 106886 1.2557000000e+00 1.4915000000e+00 106887 1.2737000000e+00 1.5231000000e+00 106888 1.2914000000e+00 1.5545000000e+00 106889 1.3269000000e+00 1.5548000000e+00 106890 1.3089000000e+00 1.5855000000e+00 106891 1.2911000000e+00 1.6163000000e+00 106892 1.2734000000e+00 1.6470000000e+00 106893 1.2558000000e+00 1.6163000000e+00 106894 1.2205000000e+00 1.6164000000e+00 106895 1.1853000000e+00 1.6167000000e+00 106896 1.1680000000e+00 1.6474000000e+00 106897 1.2026000000e+00 1.5858000000e+00 106898 1.1673000000e+00 1.5862000000e+00 106899 1.1502000000e+00 1.6170000000e+00 106900 1.1330000000e+00 1.6477000000e+00 106901 1.1506000000e+00 1.6781000000e+00 106902 1.1332000000e+00 1.7086000000e+00 106903 1.1157000000e+00 1.6782000000e+00 106904 1.0981000000e+00 1.6479000000e+00 106905 1.0805000000e+00 1.6178000000e+00 106906 1.0459000000e+00 1.6180000000e+00 106907 1.0114000000e+00 1.6180000000e+00 106908 9.7682000000e-01 1.6177000000e+00 106909 9.4205000000e-01 1.6174000000e+00 106910 9.2425000000e-01 1.6477000000e+00 106911 9.0704000000e-01 1.6170000000e+00 106912 8.7184000000e-01 1.6167000000e+00 106913 8.3652000000e-01 1.6165000000e+00 106914 8.0117000000e-01 1.6165000000e+00 106915 7.8355000000e-01 1.6473000000e+00 106916 7.6599000000e-01 1.6780000000e+00 106917 7.4834000000e-01 1.6474000000e+00 106918 7.1319000000e-01 1.6477000000e+00 106919 6.7812000000e-01 1.6480000000e+00 106920 6.4316000000e-01 1.6483000000e+00 106921 6.2549000000e-01 1.6182000000e+00 106922 5.9082000000e-01 1.6187000000e+00 106923 5.5630000000e-01 1.6189000000e+00 106924 5.2175000000e-01 1.6188000000e+00 106925 4.8702000000e-01 1.6185000000e+00 106926 4.5208000000e-01 1.6182000000e+00 106927 4.3494000000e-01 1.5877000000e+00 106928 4.1772000000e-01 1.5570000000e+00 106929 3.8238000000e-01 1.5569000000e+00 106930 3.6491000000e-01 1.5263000000e+00 106931 3.2961000000e-01 1.5264000000e+00 106932 3.1208000000e-01 1.4959000000e+00 106933 2.7689000000e-01 1.4959000000e+00 106934 2.5941000000e-01 1.4655000000e+00 106935 2.4199000000e-01 1.4350000000e+00 106936 2.7700000000e-01 1.4350000000e+00 106937 2.5953000000e-01 1.4047000000e+00 106938 2.9449000000e-01 1.4045000000e+00 106939 2.7695000000e-01 1.3743000000e+00 106940 2.4216000000e-01 1.3744000000e+00 106941 2.5953000000e-01 1.3441000000e+00 106942 2.4184000000e-01 1.3134000000e+00 106943 2.7716000000e-01 1.3141000000e+00 106944 2.6054000000e-01 1.2834000000e+00 106945 2.2163000000e-01 1.2798000000e+00 106946 2.1584000000e-01 1.2420000000e+00 106947 2.1705000000e-01 1.2100000000e+00 106948 2.4760000000e-01 1.1996000000e+00 106949 2.8619000000e-01 1.1918000000e+00 106950 3.2508000000e-01 1.2043000000e+00 106951 3.5154000000e-01 1.1833000000e+00 106952 3.8028000000e-01 1.1667000000e+00 106953 4.1038000000e-01 1.1508000000e+00 106954 4.4112000000e-01 1.1351000000e+00 106955 4.3893000000e-01 1.1696000000e+00 106956 4.6989000000e-01 1.1542000000e+00 106957 4.6742000000e-01 1.1888000000e+00 106958 4.9864000000e-01 1.1736000000e+00 106959 5.0108000000e-01 1.1388000000e+00 106960 4.7218000000e-01 1.1196000000e+00 106961 5.2998000000e-01 1.1582000000e+00 106962 5.2747000000e-01 1.1931000000e+00 106963 5.5893000000e-01 1.1777000000e+00 106964 5.8796000000e-01 1.1973000000e+00 106965 5.8548000000e-01 1.2324000000e+00 106966 5.8294000000e-01 1.2676000000e+00 106967 6.1231000000e-01 1.2875000000e+00 106968 5.8031000000e-01 1.3030000000e+00 106969 6.0990000000e-01 1.3231000000e+00 106970 5.5100000000e-01 1.2830000000e+00 106971 5.5377000000e-01 1.2478000000e+00 106972 5.2197000000e-01 1.2629000000e+00 106973 5.1891000000e-01 1.2981000000e+00 106974 5.4807000000e-01 1.3184000000e+00 106975 5.7759000000e-01 1.3388000000e+00 106976 5.4500000000e-01 1.3542000000e+00 106977 5.7474000000e-01 1.3748000000e+00 106978 5.4185000000e-01 1.3901000000e+00 106979 5.7155000000e-01 1.4110000000e+00 106980 6.0494000000e-01 1.3956000000e+00 106981 6.0747000000e-01 1.3591000000e+00 106982 6.3977000000e-01 1.3430000000e+00 106983 6.4189000000e-01 1.3072000000e+00 106984 6.7163000000e-01 1.3268000000e+00 106985 6.7359000000e-01 1.2913000000e+00 106986 7.0506000000e-01 1.2755000000e+00 106987 7.3639000000e-01 1.2597000000e+00 106988 7.3446000000e-01 1.2948000000e+00 106989 7.6564000000e-01 1.2790000000e+00 106990 7.6762000000e-01 1.2441000000e+00 106991 7.6379000000e-01 1.3139000000e+00 106992 7.9484000000e-01 1.2981000000e+00 106993 7.9300000000e-01 1.3329000000e+00 106994 8.2395000000e-01 1.3173000000e+00 106995 8.2586000000e-01 1.2825000000e+00 106996 7.9676000000e-01 1.2633000000e+00 106997 7.9877000000e-01 1.2285000000e+00 106998 8.0090000000e-01 1.1937000000e+00 106999 8.2987000000e-01 1.2131000000e+00 107000 8.3207000000e-01 1.1784000000e+00 107001 8.0314000000e-01 1.1590000000e+00 107002 8.3443000000e-01 1.1438000000e+00 107003 8.0547000000e-01 1.1242000000e+00 107004 8.0785000000e-01 1.0893000000e+00 107005 8.1024000000e-01 1.0544000000e+00 107006 7.8116000000e-01 1.0348000000e+00 107007 7.5209000000e-01 1.0152000000e+00 107008 7.2304000000e-01 9.9571000000e-01 107009 7.5441000000e-01 9.8025000000e-01 107010 7.8584000000e-01 9.6481000000e-01 107011 7.8816000000e-01 9.2971000000e-01 107012 7.8351000000e-01 9.9983000000e-01 107013 8.1497000000e-01 9.8447000000e-01 107014 8.1733000000e-01 9.4942000000e-01 107015 8.4647000000e-01 9.6915000000e-01 107016 8.4884000000e-01 9.3411000000e-01 107017 8.7797000000e-01 9.5389000000e-01 107018 8.8034000000e-01 9.1888000000e-01 107019 8.5126000000e-01 8.9904000000e-01 107020 8.1971000000e-01 9.1431000000e-01 107021 8.2216000000e-01 8.7915000000e-01 107022 7.9050000000e-01 8.9449000000e-01 107023 7.6111000000e-01 8.7464000000e-01 107024 7.9296000000e-01 8.5913000000e-01 107025 7.6343000000e-01 8.3885000000e-01 107026 7.3129000000e-01 8.5479000000e-01 107027 7.0003000000e-01 8.7142000000e-01 107028 7.0061000000e-01 8.3542000000e-01 107029 6.7078000000e-01 8.5362000000e-01 107030 6.6954000000e-01 8.8771000000e-01 107031 6.4146000000e-01 8.6941000000e-01 107032 6.1124000000e-01 8.8381000000e-01 107033 6.1478000000e-01 8.5070000000e-01 107034 6.4335000000e-01 8.3747000000e-01 107035 6.4418000000e-01 8.1146000000e-01 107036 6.6008000000e-01 7.8907000000e-01 107037 6.7923000000e-01 7.5539000000e-01 107038 6.8581000000e-01 7.1675000000e-01 107039 6.6084000000e-01 6.8930000000e-01 107040 6.3635000000e-01 6.6015000000e-01 107041 6.1734000000e-01 6.3293000000e-01 107042 5.5633000000e-01 6.4760000000e-01 107043 3.7895000000e-01 1.1994000000e+00 107044 4.0841000000e-01 1.1847000000e+00 107045 4.3638000000e-01 1.2037000000e+00 107046 4.0554000000e-01 1.2182000000e+00 107047 4.3332000000e-01 1.2378000000e+00 107048 4.6466000000e-01 1.2232000000e+00 107049 4.9603000000e-01 1.2082000000e+00 107050 4.9320000000e-01 1.2430000000e+00 107051 5.2481000000e-01 1.2279000000e+00 107052 5.5640000000e-01 1.2127000000e+00 107053 4.9011000000e-01 1.2778000000e+00 107054 4.6160000000e-01 1.2577000000e+00 107055 4.5826000000e-01 1.2923000000e+00 107056 4.3001000000e-01 1.2721000000e+00 107057 4.2672000000e-01 1.3063000000e+00 107058 4.5444000000e-01 1.3269000000e+00 107059 4.2302000000e-01 1.3394000000e+00 107060 4.4918000000e-01 1.3622000000e+00 107061 4.8275000000e-01 1.3483000000e+00 107062 4.8668000000e-01 1.3128000000e+00 107063 5.1560000000e-01 1.3335000000e+00 107064 5.1212000000e-01 1.3694000000e+00 107065 5.0905000000e-01 1.4055000000e+00 107066 5.3859000000e-01 1.4257000000e+00 107067 5.6731000000e-01 1.4467000000e+00 107068 5.3498000000e-01 1.4602000000e+00 107069 5.6159000000e-01 1.4807000000e+00 107070 5.9528000000e-01 1.4698000000e+00 107071 6.0183000000e-01 1.4331000000e+00 107072 6.3620000000e-01 1.4167000000e+00 107073 6.3782000000e-01 1.3792000000e+00 107074 6.6989000000e-01 1.3625000000e+00 107075 7.0144000000e-01 1.3460000000e+00 107076 7.0315000000e-01 1.3107000000e+00 107077 7.3269000000e-01 1.3298000000e+00 107078 7.6210000000e-01 1.3488000000e+00 107079 7.3117000000e-01 1.3649000000e+00 107080 7.6066000000e-01 1.3835000000e+00 107081 7.9128000000e-01 1.3676000000e+00 107082 8.2203000000e-01 1.3520000000e+00 107083 8.2008000000e-01 1.3864000000e+00 107084 8.5085000000e-01 1.3712000000e+00 107085 8.5299000000e-01 1.3365000000e+00 107086 8.5496000000e-01 1.3016000000e+00 107087 8.5686000000e-01 1.2669000000e+00 107088 8.2782000000e-01 1.2477000000e+00 107089 8.5878000000e-01 1.2322000000e+00 107090 8.8773000000e-01 1.2512000000e+00 107091 8.8957000000e-01 1.2168000000e+00 107092 8.6088000000e-01 1.1978000000e+00 107093 8.6324000000e-01 1.1633000000e+00 107094 8.6581000000e-01 1.1287000000e+00 107095 8.3688000000e-01 1.1090000000e+00 107096 8.3933000000e-01 1.0741000000e+00 107097 8.4174000000e-01 1.0392000000e+00 107098 8.1262000000e-01 1.0195000000e+00 107099 8.4412000000e-01 1.0042000000e+00 107100 8.7563000000e-01 9.8890000000e-01 107101 8.7330000000e-01 1.0239000000e+00 107102 8.7091000000e-01 1.0590000000e+00 107103 8.6840000000e-01 1.0939000000e+00 107104 9.0013000000e-01 1.0789000000e+00 107105 9.0257000000e-01 1.0438000000e+00 107106 9.0486000000e-01 1.0087000000e+00 107107 9.0712000000e-01 9.7365000000e-01 107108 9.3634000000e-01 9.9334000000e-01 107109 9.3852000000e-01 9.5843000000e-01 107110 9.6764000000e-01 9.7803000000e-01 107111 9.6982000000e-01 9.4334000000e-01 107112 9.4082000000e-01 9.2355000000e-01 107113 9.0942000000e-01 9.3868000000e-01 107114 9.1179000000e-01 9.0371000000e-01 107115 8.8277000000e-01 8.8385000000e-01 107116 8.5377000000e-01 8.6396000000e-01 107117 8.2477000000e-01 8.4397000000e-01 107118 7.9574000000e-01 8.2372000000e-01 107119 7.6651000000e-01 8.0287000000e-01 107120 7.3297000000e-01 8.1792000000e-01 107121 7.3703000000e-01 7.8112000000e-01 107122 6.9890000000e-01 7.9447000000e-01 107123 6.6966000000e-01 8.2026000000e-01 107124 7.1264000000e-01 7.6212000000e-01 107125 7.0764000000e-01 7.3732000000e-01 107126 7.4032000000e-01 7.4226000000e-01 107127 7.7076000000e-01 7.6704000000e-01 107128 7.9910000000e-01 7.8859000000e-01 107129 8.0326000000e-01 7.5472000000e-01 107130 7.7825000000e-01 7.3266000000e-01 107131 7.5571000000e-01 7.0550000000e-01 107132 7.9177000000e-01 7.0060000000e-01 107133 7.7016000000e-01 6.7124000000e-01 107134 7.3356000000e-01 6.7619000000e-01 107135 7.2009000000e-01 7.1003000000e-01 107136 6.9736000000e-01 6.8212000000e-01 107137 6.7339000000e-01 6.5351000000e-01 107138 6.4924000000e-01 6.2525000000e-01 107139 6.8600000000e-01 6.1735000000e-01 107140 6.6069000000e-01 5.9040000000e-01 107141 6.2145000000e-01 5.9707000000e-01 107142 6.4027000000e-01 5.6350000000e-01 107143 6.5760000000e-01 5.3642000000e-01 107144 6.4779000000e-01 5.0143000000e-01 107145 6.7578000000e-01 5.1687000000e-01 107146 6.8730000000e-01 5.4186000000e-01 107147 6.6884000000e-01 5.6190000000e-01 107148 6.9814000000e-01 5.7732000000e-01 107149 7.3975000000e-01 5.7518000000e-01 107150 7.2402000000e-01 6.1072000000e-01 107151 7.6218000000e-01 6.0625000000e-01 107152 7.7749000000e-01 5.7166000000e-01 107153 7.5634000000e-01 5.4134000000e-01 107154 7.9300000000e-01 5.3738000000e-01 107155 8.1416000000e-01 5.6783000000e-01 107156 8.2936000000e-01 5.3439000000e-01 107157 8.4985000000e-01 5.6413000000e-01 107158 8.6448000000e-01 5.3226000000e-01 107159 8.4537000000e-01 5.0359000000e-01 107160 8.7921000000e-01 5.0108000000e-01 107161 8.5865000000e-01 4.7353000000e-01 107162 8.3125000000e-01 4.7917000000e-01 107163 8.9329000000e-01 4.6873000000e-01 107164 8.3246000000e-01 4.4782000000e-01 107165 8.1054000000e-01 4.6982000000e-01 107166 8.0919000000e-01 5.0112000000e-01 107167 9.1447000000e-01 4.9838000000e-01 107168 9.3190000000e-01 4.6309000000e-01 107169 9.3421000000e-01 4.2909000000e-01 107170 9.5457000000e-01 4.0332000000e-01 107171 9.6579000000e-01 3.6849000000e-01 107172 9.7951000000e-01 3.3758000000e-01 107173 9.9816000000e-01 3.6594000000e-01 107174 1.0132000000e+00 3.3518000000e-01 107175 1.0320000000e+00 3.6477000000e-01 107176 1.0146000000e+00 3.9857000000e-01 107177 1.0520000000e+00 3.9415000000e-01 107178 1.0670000000e+00 3.6190000000e-01 107179 1.0871000000e+00 3.9082000000e-01 107180 1.0726000000e+00 4.2296000000e-01 107181 1.1074000000e+00 4.1970000000e-01 107182 1.1218000000e+00 3.8737000000e-01 107183 1.1562000000e+00 3.8363000000e-01 107184 1.1704000000e+00 3.5179000000e-01 107185 1.1848000000e+00 3.2011000000e-01 107186 1.2045000000e+00 3.4822000000e-01 107187 1.1903000000e+00 3.7977000000e-01 107188 1.2241000000e+00 3.7617000000e-01 107189 1.2099000000e+00 4.0721000000e-01 107190 1.2430000000e+00 4.0386000000e-01 107191 1.2579000000e+00 3.7309000000e-01 107192 1.2387000000e+00 3.4480000000e-01 107193 1.2764000000e+00 4.0157000000e-01 107194 1.2923000000e+00 3.7053000000e-01 107195 1.3104000000e+00 4.0001000000e-01 107196 1.3274000000e+00 3.6852000000e-01 107197 1.3084000000e+00 3.3845000000e-01 107198 1.2732000000e+00 3.4155000000e-01 107199 1.2534000000e+00 3.1307000000e-01 107200 1.2883000000e+00 3.0931000000e-01 107201 1.2678000000e+00 2.8107000000e-01 107202 1.3026000000e+00 2.7660000000e-01 107203 1.3245000000e+00 3.0508000000e-01 107204 1.3377000000e+00 2.7095000000e-01 107205 1.3157000000e+00 2.4412000000e-01 107206 1.2817000000e+00 2.4904000000e-01 107207 1.2476000000e+00 2.5338000000e-01 107208 1.2335000000e+00 2.8497000000e-01 107209 1.2136000000e+00 2.5707000000e-01 107210 1.1993000000e+00 2.8851000000e-01 107211 1.2190000000e+00 3.1663000000e-01 107212 1.1651000000e+00 2.9188000000e-01 107213 1.2278000000e+00 2.2613000000e-01 107214 1.2408000000e+00 1.9600000000e-01 107215 1.2501000000e+00 1.6431000000e-01 107216 1.2741000000e+00 1.8967000000e-01 107217 1.3089000000e+00 1.8530000000e-01 107218 1.3286000000e+00 2.1261000000e-01 107219 1.3579000000e+00 2.1053000000e-01 107220 1.3484000000e+00 2.3835000000e-01 107221 1.3706000000e+00 2.6211000000e-01 107222 1.3915000000e+00 2.8024000000e-01 107223 7.8976000000e-01 1.4020000000e+00 107224 7.5960000000e-01 1.4181000000e+00 107225 7.8861000000e-01 1.4359000000e+00 107226 8.1827000000e-01 1.4203000000e+00 107227 8.4828000000e-01 1.4055000000e+00 107228 8.7966000000e-01 1.3912000000e+00 107229 8.8203000000e-01 1.3559000000e+00 107230 9.1110000000e-01 1.3753000000e+00 107231 9.1340000000e-01 1.3402000000e+00 107232 8.8412000000e-01 1.3209000000e+00 107233 8.8599000000e-01 1.2859000000e+00 107234 9.1690000000e-01 1.2700000000e+00 107235 9.1829000000e-01 1.2355000000e+00 107236 9.1994000000e-01 1.2017000000e+00 107237 8.9179000000e-01 1.1827000000e+00 107238 8.9451000000e-01 1.1485000000e+00 107239 8.9742000000e-01 1.1139000000e+00 107240 9.2620000000e-01 1.1343000000e+00 107241 9.2949000000e-01 1.0992000000e+00 107242 9.3203000000e-01 1.0638000000e+00 107243 9.3423000000e-01 1.0284000000e+00 107244 9.6572000000e-01 1.0129000000e+00 107245 9.6390000000e-01 1.0481000000e+00 107246 9.9545000000e-01 1.0320000000e+00 107247 9.9677000000e-01 9.9726000000e-01 107248 9.9871000000e-01 9.6295000000e-01 107249 1.0011000000e+00 9.2848000000e-01 107250 9.7217000000e-01 9.0854000000e-01 107251 9.4320000000e-01 8.8861000000e-01 107252 9.7462000000e-01 8.7357000000e-01 107253 9.4562000000e-01 8.5357000000e-01 107254 9.1421000000e-01 8.6871000000e-01 107255 8.8526000000e-01 8.4884000000e-01 107256 9.1664000000e-01 8.3369000000e-01 107257 8.8777000000e-01 8.1388000000e-01 107258 8.5638000000e-01 8.2894000000e-01 107259 8.2763000000e-01 8.0893000000e-01 107260 8.5907000000e-01 7.9408000000e-01 107261 8.3065000000e-01 7.7427000000e-01 107262 9.9441000000e-01 1.5878000000e+00 107263 9.5994000000e-01 1.5872000000e+00 107264 9.2504000000e-01 1.5866000000e+00 107265 8.8982000000e-01 1.5861000000e+00 107266 8.5441000000e-01 1.5858000000e+00 107267 8.1889000000e-01 1.5856000000e+00 107268 7.8338000000e-01 1.5857000000e+00 107269 7.6584000000e-01 1.6167000000e+00 107270 7.3059000000e-01 1.6169000000e+00 107271 6.9543000000e-01 1.6173000000e+00 107272 6.6037000000e-01 1.6177000000e+00 107273 6.7753000000e-01 1.5869000000e+00 107274 6.4246000000e-01 1.5876000000e+00 107275 6.0776000000e-01 1.5885000000e+00 107276 5.7347000000e-01 1.5890000000e+00 107277 5.3930000000e-01 1.5889000000e+00 107278 5.0486000000e-01 1.5885000000e+00 107279 4.7003000000e-01 1.5880000000e+00 107280 4.8824000000e-01 1.5579000000e+00 107281 4.5306000000e-01 1.5573000000e+00 107282 4.3588000000e-01 1.5263000000e+00 107283 4.0032000000e-01 1.5263000000e+00 107284 3.8274000000e-01 1.4957000000e+00 107285 3.4736000000e-01 1.4958000000e+00 107286 3.2975000000e-01 1.4653000000e+00 107287 2.9453000000e-01 1.4654000000e+00 107288 3.1211000000e-01 1.4349000000e+00 107289 3.2957000000e-01 1.4042000000e+00 107290 3.1177000000e-01 1.3741000000e+00 107291 2.9424000000e-01 1.3442000000e+00 107292 3.1155000000e-01 1.3146000000e+00 107293 2.9529000000e-01 1.2851000000e+00 107294 2.8005000000e-01 1.2558000000e+00 107295 2.4730000000e-01 1.2521000000e+00 107296 2.3892000000e-01 1.2259000000e+00 107297 2.6683000000e-01 1.2258000000e+00 107298 3.0091000000e-01 1.2296000000e+00 107299 3.0943000000e-01 1.2590000000e+00 107300 3.3788000000e-01 1.2408000000e+00 107301 3.5357000000e-01 1.2118000000e+00 107302 3.7441000000e-01 1.2314000000e+00 107303 4.0175000000e-01 1.2520000000e+00 107304 3.9843000000e-01 1.2866000000e+00 107305 3.6877000000e-01 1.2661000000e+00 107306 3.6715000000e-01 1.3023000000e+00 107307 3.9617000000e-01 1.3206000000e+00 107308 3.2263000000e+00 6.3223000000e-01 107309 3.2190000000e+00 6.5849000000e-01 107310 3.2154000000e+00 6.9403000000e-01 107311 3.2155000000e+00 7.3075000000e-01 107312 3.2159000000e+00 7.6665000000e-01 107313 3.1853000000e+00 7.8397000000e-01 107314 3.1854000000e+00 8.1954000000e-01 107315 3.1855000000e+00 8.5533000000e-01 107316 3.1859000000e+00 8.9118000000e-01 107317 3.1865000000e+00 9.2689000000e-01 107318 3.1873000000e+00 9.6233000000e-01 107319 3.1880000000e+00 9.9749000000e-01 107320 3.1885000000e+00 1.0324000000e+00 107321 3.1584000000e+00 1.0499000000e+00 107322 3.1584000000e+00 1.0847000000e+00 107323 3.1581000000e+00 1.1196000000e+00 107324 3.1273000000e+00 1.1368000000e+00 107325 3.1267000000e+00 1.1722000000e+00 107326 3.1262000000e+00 1.2077000000e+00 107327 3.0948000000e+00 1.2258000000e+00 107328 3.0946000000e+00 1.2617000000e+00 107329 3.0632000000e+00 1.2804000000e+00 107330 3.0632000000e+00 1.3165000000e+00 107331 3.0319000000e+00 1.3358000000e+00 107332 3.0005000000e+00 1.3556000000e+00 107333 3.0010000000e+00 1.3917000000e+00 107334 2.9704000000e+00 1.4123000000e+00 107335 2.9407000000e+00 1.4340000000e+00 107336 2.9074000000e+00 1.4216000000e+00 107337 2.8717000000e+00 1.4094000000e+00 107338 2.8343000000e+00 1.3999000000e+00 107339 2.7977000000e+00 1.3925000000e+00 107340 2.7627000000e+00 1.3842000000e+00 107341 2.7287000000e+00 1.3757000000e+00 107342 2.7022000000e+00 1.4013000000e+00 107343 2.6702000000e+00 1.3934000000e+00 107344 2.6381000000e+00 1.3872000000e+00 107345 2.6054000000e+00 1.3825000000e+00 107346 2.5715000000e+00 1.3790000000e+00 107347 2.5359000000e+00 1.3761000000e+00 107348 2.4983000000e+00 1.3732000000e+00 107349 2.4718000000e+00 1.4075000000e+00 107350 2.4353000000e+00 1.3960000000e+00 107351 2.4008000000e+00 1.3922000000e+00 107352 2.3714000000e+00 1.3911000000e+00 107353 2.3439000000e+00 1.3751000000e+00 107354 2.3101000000e+00 1.3761000000e+00 107355 2.2802000000e+00 1.3617000000e+00 107356 2.2415000000e+00 1.3643000000e+00 107357 2.2177000000e+00 1.3963000000e+00 107358 2.1837000000e+00 1.3800000000e+00 107359 2.1502000000e+00 1.3986000000e+00 107360 2.1158000000e+00 1.4156000000e+00 107361 2.1198000000e+00 1.3785000000e+00 107362 2.0862000000e+00 1.3956000000e+00 107363 2.0573000000e+00 1.3764000000e+00 107364 2.0306000000e+00 1.3915000000e+00 107365 1.9958000000e+00 1.3892000000e+00 107366 1.9840000000e+00 1.4303000000e+00 107367 1.9480000000e+00 1.4409000000e+00 107368 1.9397000000e+00 1.4692000000e+00 107369 1.9562000000e+00 1.4048000000e+00 107370 1.9210000000e+00 1.4178000000e+00 107371 1.9610000000e+00 1.3684000000e+00 107372 1.9277000000e+00 1.3821000000e+00 107373 1.8931000000e+00 1.3943000000e+00 107374 1.8860000000e+00 1.4315000000e+00 107375 1.9149000000e+00 1.4532000000e+00 107376 1.8501000000e+00 1.4429000000e+00 107377 1.8376000000e+00 1.4766000000e+00 107378 1.8076000000e+00 1.4796000000e+00 107379 1.7876000000e+00 1.5007000000e+00 107380 1.7531000000e+00 1.4952000000e+00 107381 1.7161000000e+00 1.4919000000e+00 107382 1.6783000000e+00 1.4909000000e+00 107383 1.6598000000e+00 1.5234000000e+00 107384 1.6411000000e+00 1.4925000000e+00 107385 1.6053000000e+00 1.4942000000e+00 107386 1.5703000000e+00 1.4955000000e+00 107387 1.5535000000e+00 1.5260000000e+00 107388 1.5360000000e+00 1.4964000000e+00 107389 1.5189000000e+00 1.4674000000e+00 107390 1.5348000000e+00 1.4384000000e+00 107391 1.5524000000e+00 1.4665000000e+00 107392 1.5865000000e+00 1.4648000000e+00 107393 1.5678000000e+00 1.4363000000e+00 107394 1.6019000000e+00 1.4337000000e+00 107395 1.5823000000e+00 1.4055000000e+00 107396 1.5491000000e+00 1.4090000000e+00 107397 1.5181000000e+00 1.4120000000e+00 107398 1.5041000000e+00 1.3905000000e+00 107399 1.4790000000e+00 1.3819000000e+00 107400 1.4437000000e+00 1.3705000000e+00 107401 1.4204000000e+00 1.3417000000e+00 107402 1.4031000000e+00 1.3132000000e+00 107403 1.4361000000e+00 1.3134000000e+00 107404 1.4207000000e+00 1.2843000000e+00 107405 1.3863000000e+00 1.2838000000e+00 107406 1.3514000000e+00 1.2840000000e+00 107407 1.3691000000e+00 1.2536000000e+00 107408 1.4044000000e+00 1.2541000000e+00 107409 1.3876000000e+00 1.2232000000e+00 107410 1.3516000000e+00 1.2228000000e+00 107411 1.3334000000e+00 1.2538000000e+00 107412 1.3160000000e+00 1.2850000000e+00 107413 1.2999000000e+00 1.3167000000e+00 107414 1.2796000000e+00 1.2868000000e+00 107415 1.2636000000e+00 1.3205000000e+00 107416 1.2862000000e+00 1.3494000000e+00 107417 1.2497000000e+00 1.3562000000e+00 107418 1.2777000000e+00 1.3885000000e+00 107419 1.3070000000e+00 1.3704000000e+00 107420 1.2347000000e+00 1.3926000000e+00 107421 1.2110000000e+00 1.3614000000e+00 107422 1.1962000000e+00 1.3963000000e+00 107423 1.1739000000e+00 1.3667000000e+00 107424 1.1597000000e+00 1.4001000000e+00 107425 1.1803000000e+00 1.4299000000e+00 107426 1.2174000000e+00 1.4274000000e+00 107427 1.2002000000e+00 1.4606000000e+00 107428 1.2193000000e+00 1.4919000000e+00 107429 1.2377000000e+00 1.5232000000e+00 107430 1.2557000000e+00 1.5544000000e+00 107431 1.2201000000e+00 1.5546000000e+00 107432 1.2380000000e+00 1.5855000000e+00 107433 1.2735000000e+00 1.5854000000e+00 107434 1.1845000000e+00 1.5551000000e+00 107435 1.1492000000e+00 1.5558000000e+00 107436 1.1322000000e+00 1.5867000000e+00 107437 1.1152000000e+00 1.6174000000e+00 107438 1.0974000000e+00 1.5873000000e+00 107439 1.0628000000e+00 1.5878000000e+00 107440 1.0286000000e+00 1.5880000000e+00 107441 1.0453000000e+00 1.5582000000e+00 107442 1.0117000000e+00 1.5584000000e+00 107443 9.7794000000e-01 1.5575000000e+00 107444 9.4332000000e-01 1.5563000000e+00 107445 9.0806000000e-01 1.5555000000e+00 107446 8.7252000000e-01 1.5550000000e+00 107447 8.9091000000e-01 1.5243000000e+00 107448 8.5507000000e-01 1.5236000000e+00 107449 8.3682000000e-01 1.5546000000e+00 107450 8.0100000000e-01 1.5545000000e+00 107451 7.6533000000e-01 1.5549000000e+00 107452 7.4799000000e-01 1.5860000000e+00 107453 7.1273000000e-01 1.5864000000e+00 107454 6.9479000000e-01 1.5559000000e+00 107455 6.5935000000e-01 1.5566000000e+00 107456 6.2425000000e-01 1.5579000000e+00 107457 5.9004000000e-01 1.5593000000e+00 107458 5.5656000000e-01 1.5597000000e+00 107459 5.2284000000e-01 1.5589000000e+00 107460 5.0711000000e-01 1.5278000000e+00 107461 5.4096000000e-01 1.5305000000e+00 107462 5.2858000000e-01 1.4964000000e+00 107463 4.9050000000e-01 1.4963000000e+00 107464 4.7153000000e-01 1.5268000000e+00 107465 4.5440000000e-01 1.4951000000e+00 107466 4.1828000000e-01 1.4955000000e+00 107467 4.0052000000e-01 1.4649000000e+00 107468 3.6508000000e-01 1.4651000000e+00 107469 3.4735000000e-01 1.4346000000e+00 107470 3.6481000000e-01 1.4039000000e+00 107471 3.4693000000e-01 1.3732000000e+00 107472 3.2850000000e-01 1.3438000000e+00 107473 3.4112000000e-01 1.3168000000e+00 107474 3.3303000000e-01 1.2835000000e+00 107475 3.6539000000e-01 1.3399000000e+00 107476 3.9629000000e-01 1.3490000000e+00 107477 4.1530000000e-01 1.3716000000e+00 107478 4.4110000000e-01 1.4021000000e+00 107479 4.7845000000e-01 1.3849000000e+00 107480 4.7649000000e-01 1.4218000000e+00 107481 5.0675000000e-01 1.4408000000e+00 107482 4.7432000000e-01 1.4609000000e+00 107483 5.0703000000e-01 1.4709000000e+00 107484 5.5787000000e-01 1.5084000000e+00 107485 5.8547000000e-01 1.5027000000e+00 107486 6.1982000000e-01 1.4968000000e+00 107487 6.3563000000e-01 1.4587000000e+00 107488 6.6831000000e-01 1.4348000000e+00 107489 6.7120000000e-01 1.4659000000e+00 107490 6.9896000000e-01 1.4521000000e+00 107491 6.9923000000e-01 1.4170000000e+00 107492 6.6859000000e-01 1.3986000000e+00 107493 7.0007000000e-01 1.3815000000e+00 107494 4.3585000000e-01 1.4646000000e+00 107495 4.1836000000e-01 1.4344000000e+00 107496 3.8279000000e-01 1.4344000000e+00 107497 4.0065000000e-01 1.4033000000e+00 107498 3.8156000000e-01 1.3735000000e+00 107499 4.4923000000e-01 1.4368000000e+00 107500 1.6074000000e-02 6.4949000000e-02 107501 -3.2786000000e-03 9.2627000000e-02 107502 -1.8415000000e-02 6.1480000000e-02 107503 -3.5865000000e-02 8.9702000000e-02 107504 -2.1140000000e-02 1.1514000000e-01 107505 9.3557000000e-03 1.2755000000e-01 107506 3.1509000000e-02 1.5154000000e-01 107507 5.8357000000e-02 1.5541000000e-01 107508 8.8331000000e-02 1.6055000000e-01 107509 6.9171000000e-02 1.7953000000e-01 107510 9.4435000000e-02 1.9134000000e-01 107511 1.0035000000e+00 8.9369000000e-01 107512 1.0061000000e+00 8.5857000000e-01 107513 1.0351000000e+00 8.7902000000e-01 107514 1.0379000000e+00 8.4355000000e-01 107515 1.0086000000e+00 8.2314000000e-01 107516 9.7705000000e-01 8.3839000000e-01 107517 9.7934000000e-01 8.0305000000e-01 107518 1.0108000000e+00 7.8749000000e-01 107519 9.8141000000e-01 7.6758000000e-01 107520 9.5018000000e-01 7.8320000000e-01 107521 9.5213000000e-01 7.4761000000e-01 107522 9.2123000000e-01 7.6381000000e-01 107523 9.1901000000e-01 7.9868000000e-01 107524 8.9026000000e-01 7.7907000000e-01 107525 8.9276000000e-01 7.4460000000e-01 107526 9.2304000000e-01 7.2965000000e-01 107527 8.9608000000e-01 7.1144000000e-01 107528 8.6422000000e-01 7.2422000000e-01 107529 8.6169000000e-01 7.5936000000e-01 107530 8.3314000000e-01 7.3993000000e-01 107531 8.3136000000e-01 7.0117000000e-01 107532 8.0757000000e-01 7.2582000000e-01 107533 8.0749000000e-01 6.6719000000e-01 107534 7.8477000000e-01 6.3664000000e-01 107535 7.4753000000e-01 6.4132000000e-01 107536 7.1034000000e-01 6.4687000000e-01 107537 7.9937000000e-01 6.0195000000e-01 107538 8.3576000000e-01 5.9744000000e-01 107539 8.7122000000e-01 5.9252000000e-01 107540 8.5808000000e-01 6.2633000000e-01 107541 8.9356000000e-01 6.2032000000e-01 107542 8.8107000000e-01 6.5423000000e-01 107543 8.4501000000e-01 6.6160000000e-01 107544 8.2176000000e-01 6.3186000000e-01 107545 8.7024000000e-01 6.8879000000e-01 107546 9.0366000000e-01 6.8006000000e-01 107547 9.1579000000e-01 6.4822000000e-01 107548 9.3623000000e-01 6.7631000000e-01 107549 9.5094000000e-01 6.4424000000e-01 107550 9.2927000000e-01 6.1410000000e-01 107551 9.6600000000e-01 6.1019000000e-01 107552 9.4339000000e-01 5.7506000000e-01 107553 9.0592000000e-01 5.8650000000e-01 107554 8.8407000000e-01 5.6035000000e-01 107555 8.9895000000e-01 5.3000000000e-01 107556 9.3749000000e-01 5.3125000000e-01 107557 9.1397000000e-01 5.5664000000e-01 107558 9.6822000000e-01 5.4891000000e-01 107559 9.7742000000e-01 5.1362000000e-01 107560 9.4600000000e-01 4.9610000000e-01 107561 9.6873000000e-01 4.7412000000e-01 107562 9.6135000000e-01 4.3970000000e-01 107563 9.8631000000e-01 4.1867000000e-01 107564 9.8387000000e-01 3.9101000000e-01 107565 9.9241000000e-01 4.4984000000e-01 107566 1.0033000000e+00 4.8229000000e-01 107567 1.0237000000e+00 4.5469000000e-01 107568 1.0111000000e+00 4.2953000000e-01 107569 1.0386000000e+00 4.2581000000e-01 107570 1.0576000000e+00 4.5491000000e-01 107571 1.0929000000e+00 4.5226000000e-01 107572 1.1281000000e+00 4.4878000000e-01 107573 1.1422000000e+00 4.1590000000e-01 107574 1.1632000000e+00 4.4433000000e-01 107575 1.1764000000e+00 4.1152000000e-01 107576 1.1970000000e+00 4.3820000000e-01 107577 1.1863000000e+00 4.7019000000e-01 107578 1.2168000000e+00 4.6223000000e-01 107579 1.2290000000e+00 4.3366000000e-01 107580 1.2610000000e+00 4.3142000000e-01 107581 1.2937000000e+00 4.3050000000e-01 107582 1.3274000000e+00 4.2993000000e-01 107583 1.3452000000e+00 3.9900000000e-01 107584 1.3806000000e+00 3.9846000000e-01 107585 1.3622000000e+00 4.2975000000e-01 107586 1.3979000000e+00 4.2949000000e-01 107587 1.3789000000e+00 4.6150000000e-01 107588 1.4159000000e+00 4.6063000000e-01 107589 1.4349000000e+00 4.9154000000e-01 107590 1.4711000000e+00 4.8931000000e-01 107591 1.5068000000e+00 4.8698000000e-01 107592 1.5231000000e+00 4.5512000000e-01 107593 1.5580000000e+00 4.5260000000e-01 107594 1.5735000000e+00 4.2116000000e-01 107595 1.5929000000e+00 4.4951000000e-01 107596 1.6078000000e+00 4.1720000000e-01 107597 1.5879000000e+00 3.9070000000e-01 107598 1.6210000000e+00 3.8396000000e-01 107599 1.5992000000e+00 3.6429000000e-01 107600 1.5706000000e+00 3.6444000000e-01 107601 1.7782000000e+00 1.4640000000e+00 107602 1.7381000000e+00 1.4622000000e+00 107603 1.7560000000e+00 1.4325000000e+00 107604 1.7266000000e+00 1.4348000000e+00 107605 1.6991000000e+00 1.4546000000e+00 107606 1.6581000000e+00 1.4595000000e+00 107607 1.6216000000e+00 1.4625000000e+00 107608 1.6367000000e+00 1.4305000000e+00 107609 1.6718000000e+00 1.4258000000e+00 107610 1.6504000000e+00 1.3989000000e+00 107611 1.6165000000e+00 1.4023000000e+00 107612 1.5967000000e+00 1.3740000000e+00 107613 1.6312000000e+00 1.3714000000e+00 107614 1.6125000000e+00 1.3422000000e+00 107615 1.6476000000e+00 1.3416000000e+00 107616 1.6639000000e+00 1.3696000000e+00 107617 1.6809000000e+00 1.3430000000e+00 107618 1.6665000000e+00 1.3132000000e+00 107619 1.6305000000e+00 1.3104000000e+00 107620 1.5930000000e+00 1.3111000000e+00 107621 1.5757000000e+00 1.3444000000e+00 107622 1.5620000000e+00 1.3779000000e+00 107623 1.5296000000e+00 1.3839000000e+00 107624 1.5057000000e+00 1.3634000000e+00 107625 1.4755000000e+00 1.3492000000e+00 107626 1.4489000000e+00 1.3383000000e+00 107627 1.4687000000e+00 1.3168000000e+00 107628 1.4549000000e+00 1.2861000000e+00 107629 1.4395000000e+00 1.2554000000e+00 107630 1.4748000000e+00 1.2576000000e+00 107631 1.4592000000e+00 1.2258000000e+00 107632 1.4234000000e+00 1.2242000000e+00 107633 1.4066000000e+00 1.1928000000e+00 107634 1.3704000000e+00 1.1920000000e+00 107635 1.3341000000e+00 1.1914000000e+00 107636 1.3532000000e+00 1.1604000000e+00 107637 1.3166000000e+00 1.1596000000e+00 107638 1.3360000000e+00 1.1284000000e+00 107639 1.2991000000e+00 1.1274000000e+00 107640 1.2797000000e+00 1.1590000000e+00 107641 1.2974000000e+00 1.1910000000e+00 107642 1.3154000000e+00 1.2227000000e+00 107643 1.2971000000e+00 1.2544000000e+00 107644 1.2598000000e+00 1.2551000000e+00 107645 1.2412000000e+00 1.2889000000e+00 107646 1.2250000000e+00 1.3249000000e+00 107647 1.1867000000e+00 1.3314000000e+00 107648 1.1511000000e+00 1.3392000000e+00 107649 1.1388000000e+00 1.3718000000e+00 107650 1.1248000000e+00 1.4033000000e+00 107651 1.1444000000e+00 1.4323000000e+00 107652 1.1639000000e+00 1.4623000000e+00 107653 1.1831000000e+00 1.4929000000e+00 107654 1.2018000000e+00 1.5237000000e+00 107655 1.1661000000e+00 1.5245000000e+00 107656 1.1307000000e+00 1.5256000000e+00 107657 1.1473000000e+00 1.4941000000e+00 107658 1.1119000000e+00 1.4955000000e+00 107659 1.0956000000e+00 1.5267000000e+00 107660 1.1141000000e+00 1.5566000000e+00 107661 1.0794000000e+00 1.5575000000e+00 107662 1.0611000000e+00 1.5281000000e+00 107663 1.0280000000e+00 1.5297000000e+00 107664 9.9599000000e-01 1.5289000000e+00 107665 9.6223000000e-01 1.5263000000e+00 107666 9.2668000000e-01 1.5249000000e+00 107667 9.4612000000e-01 1.4934000000e+00 107668 9.0938000000e-01 1.4935000000e+00 107669 9.2682000000e-01 1.4625000000e+00 107670 8.9204000000e-01 1.4631000000e+00 107671 8.7368000000e-01 1.4930000000e+00 107672 8.5716000000e-01 1.4615000000e+00 107673 8.3748000000e-01 1.4917000000e+00 107674 8.1892000000e-01 1.4573000000e+00 107675 8.0100000000e-01 1.4917000000e+00 107676 8.1900000000e-01 1.5232000000e+00 107677 7.8256000000e-01 1.5231000000e+00 107678 7.4697000000e-01 1.5247000000e+00 107679 7.6204000000e-01 1.4895000000e+00 107680 7.2940000000e-01 1.4998000000e+00 107681 7.1238000000e-01 1.5251000000e+00 107682 7.3004000000e-01 1.5555000000e+00 107683 6.7667000000e-01 1.5247000000e+00 107684 6.9637000000e-01 1.4902000000e+00 107685 6.5669000000e-01 1.4938000000e+00 107686 6.4038000000e-01 1.5265000000e+00 107687 6.0546000000e-01 1.5291000000e+00 107688 5.7273000000e-01 1.5316000000e+00 107689 7.2922000000e-01 1.4698000000e+00 107690 7.2937000000e-01 1.4348000000e+00 107691 7.3002000000e-01 1.4000000000e+00 107692 7.5914000000e-01 1.4522000000e+00 107693 7.8595000000e-01 1.4653000000e+00 107694 8.4391000000e-01 1.4348000000e+00 107695 8.7688000000e-01 1.4293000000e+00 107696 9.0879000000e-01 1.4099000000e+00 107697 9.3997000000e-01 1.3950000000e+00 107698 9.3682000000e-01 1.4296000000e+00 107699 9.6877000000e-01 1.4149000000e+00 107700 9.7155000000e-01 1.3801000000e+00 107701 9.4273000000e-01 1.3599000000e+00 107702 9.4505000000e-01 1.3244000000e+00 107703 9.1534000000e-01 1.3050000000e+00 107704 9.4656000000e-01 1.2888000000e+00 107705 9.7691000000e-01 1.3078000000e+00 107706 9.7768000000e-01 1.2717000000e+00 107707 9.7530000000e-01 1.3445000000e+00 107708 1.0077000000e+00 1.3274000000e+00 107709 1.0091000000e+00 1.2901000000e+00 107710 1.0086000000e+00 1.2532000000e+00 107711 9.7737000000e-01 1.2366000000e+00 107712 1.0060000000e+00 1.2179000000e+00 107713 1.0367000000e+00 1.2329000000e+00 107714 1.0343000000e+00 1.1982000000e+00 107715 1.0027000000e+00 1.1834000000e+00 107716 9.7637000000e-01 1.2033000000e+00 107717 9.4813000000e-01 1.2196000000e+00 107718 9.4749000000e-01 1.2537000000e+00 107719 9.4929000000e-01 1.1872000000e+00 107720 9.2261000000e-01 1.1683000000e+00 107721 9.5395000000e-01 1.1552000000e+00 107722 9.5929000000e-01 1.1206000000e+00 107723 9.9155000000e-01 1.1459000000e+00 107724 9.9265000000e-01 1.1047000000e+00 107725 9.6191000000e-01 1.0840000000e+00 107726 1.0244000000e+00 1.1228000000e+00 107727 1.0247000000e+00 1.0870000000e+00 107728 9.9412000000e-01 1.0678000000e+00 107729 1.3975000000e+00 4.9362000000e-01 107730 1.4180000000e+00 5.2478000000e-01 107731 1.4546000000e+00 5.2190000000e-01 107732 1.4904000000e+00 5.1922000000e-01 107733 1.4744000000e+00 5.5169000000e-01 107734 1.4386000000e+00 5.5497000000e-01 107735 1.4589000000e+00 5.8417000000e-01 107736 1.4938000000e+00 5.8107000000e-01 107737 1.5098000000e+00 5.4894000000e-01 107738 1.5260000000e+00 5.1665000000e-01 107739 1.5421000000e+00 4.8448000000e-01 107740 1.5773000000e+00 4.8172000000e-01 107741 1.6126000000e+00 4.7867000000e-01 107742 1.5968000000e+00 5.1122000000e-01 107743 1.6322000000e+00 5.0829000000e-01 107744 1.6480000000e+00 4.7555000000e-01 107745 1.6281000000e+00 4.4592000000e-01 107746 1.6436000000e+00 4.1220000000e-01 107747 1.6638000000e+00 4.4260000000e-01 107748 1.6835000000e+00 4.7267000000e-01 107749 1.6994000000e+00 4.4028000000e-01 107750 1.6804000000e+00 4.0918000000e-01 107751 1.6602000000e+00 3.7452000000e-01 107752 1.7000000000e+00 3.7603000000e-01 107753 1.6821000000e+00 3.5700000000e-01 107754 1.7254000000e+00 3.5848000000e-01 107755 1.7539000000e+00 3.6027000000e-01 107756 1.7886000000e+00 3.6302000000e-01 107757 1.7666000000e+00 3.9155000000e-01 107758 1.7343000000e+00 3.8441000000e-01 107759 1.7154000000e+00 4.0969000000e-01 107760 1.7444000000e+00 4.1065000000e-01 107761 1.7717000000e+00 4.2997000000e-01 107762 1.8064000000e+00 4.0114000000e-01 107763 1.8264000000e+00 3.6273000000e-01 107764 1.8069000000e+00 3.3099000000e-01 107765 1.8432000000e+00 3.2877000000e-01 107766 1.8584000000e+00 2.9652000000e-01 107767 1.8730000000e+00 2.6595000000e-01 107768 1.8883000000e+00 2.3676000000e-01 107769 1.9048000000e+00 2.6407000000e-01 107770 1.9210000000e+00 2.3681000000e-01 107771 1.9354000000e+00 2.6525000000e-01 107772 1.9540000000e+00 2.3847000000e-01 107773 1.9385000000e+00 2.0848000000e-01 107774 1.9048000000e+00 2.0793000000e-01 107775 1.9221000000e+00 1.7881000000e-01 107776 1.9564000000e+00 1.7934000000e-01 107777 1.9727000000e+00 2.0962000000e-01 107778 1.9910000000e+00 1.8005000000e-01 107779 2.0260000000e+00 1.8070000000e-01 107780 2.0429000000e+00 2.1148000000e-01 107781 2.0601000000e+00 2.4249000000e-01 107782 2.0778000000e+00 2.7343000000e-01 107783 2.0958000000e+00 3.0397000000e-01 107784 2.1313000000e+00 3.0337000000e-01 107785 2.1665000000e+00 3.0305000000e-01 107786 2.1842000000e+00 2.7266000000e-01 107787 2.2017000000e+00 3.0292000000e-01 107788 2.2194000000e+00 2.7260000000e-01 107789 2.2020000000e+00 2.4229000000e-01 107790 2.2197000000e+00 2.1195000000e-01 107791 2.2023000000e+00 1.8161000000e-01 107792 2.2375000000e+00 1.8164000000e-01 107793 2.2549000000e+00 2.1197000000e-01 107794 2.2372000000e+00 2.4228000000e-01 107795 2.2724000000e+00 2.4228000000e-01 107796 2.2901000000e+00 2.1198000000e-01 107797 2.2727000000e+00 1.8167000000e-01 107798 2.2552000000e+00 1.5135000000e-01 107799 2.2903000000e+00 1.5138000000e-01 107800 2.3254000000e+00 1.5141000000e-01 107801 2.3429000000e+00 1.8171000000e-01 107802 2.3604000000e+00 2.1202000000e-01 107803 2.3427000000e+00 2.4231000000e-01 107804 2.3602000000e+00 2.7262000000e-01 107805 2.3777000000e+00 3.0292000000e-01 107806 2.3250000000e+00 2.7262000000e-01 107807 2.3425000000e+00 3.0294000000e-01 107808 2.3600000000e+00 3.3326000000e-01 107809 2.3952000000e+00 3.3321000000e-01 107810 2.4127000000e+00 3.6345000000e-01 107811 2.4302000000e+00 3.9363000000e-01 107812 2.4653000000e+00 3.9346000000e-01 107813 2.5002000000e+00 3.9337000000e-01 107814 2.5351000000e+00 3.9337000000e-01 107815 2.5528000000e+00 3.6327000000e-01 107816 2.5700000000e+00 3.9347000000e-01 107817 2.5872000000e+00 4.2370000000e-01 107818 2.6042000000e+00 4.5400000000e-01 107819 2.6393000000e+00 4.5442000000e-01 107820 2.6745000000e+00 4.5481000000e-01 107821 2.6917000000e+00 4.8548000000e-01 107822 2.7272000000e+00 4.8581000000e-01 107823 2.7626000000e+00 4.8607000000e-01 107824 2.7981000000e+00 4.8632000000e-01 107825 2.8160000000e+00 4.5589000000e-01 107826 2.8337000000e+00 4.8658000000e-01 107827 2.8514000000e+00 4.5615000000e-01 107828 2.8337000000e+00 4.2548000000e-01 107829 2.8514000000e+00 3.9509000000e-01 107830 2.8690000000e+00 3.6471000000e-01 107831 2.9043000000e+00 3.6492000000e-01 107832 2.8867000000e+00 3.9532000000e-01 107833 2.9221000000e+00 3.9558000000e-01 107834 2.9397000000e+00 3.6515000000e-01 107835 2.9751000000e+00 3.6540000000e-01 107836 3.0105000000e+00 3.6565000000e-01 107837 3.0281000000e+00 3.3510000000e-01 107838 3.0636000000e+00 3.3526000000e-01 107839 3.0991000000e+00 3.3551000000e-01 107840 3.1170000000e+00 3.0499000000e-01 107841 3.1337000000e+00 2.7358000000e-01 107842 3.1684000000e+00 2.7310000000e-01 107843 3.1847000000e+00 3.0239000000e-01 107844 3.1968000000e+00 3.3126000000e-01 107845 3.1693000000e+00 3.2696000000e-01 107846 3.1380000000e+00 3.3886000000e-01 107847 3.1407000000e+00 3.7888000000e-01 107848 3.1407000000e+00 4.1613000000e-01 107849 3.1423000000e+00 4.5180000000e-01 107850 3.1423000000e+00 4.8638000000e-01 107851 3.1727000000e+00 5.0460000000e-01 107852 3.1724000000e+00 5.4016000000e-01 107853 3.2032000000e+00 5.5935000000e-01 107854 3.2354000000e+00 5.8250000000e-01 107855 3.2209000000e+00 6.1072000000e-01 107856 3.1960000000e+00 6.2897000000e-01 107857 3.1802000000e+00 6.7008000000e-01 107858 3.1834000000e+00 7.1197000000e-01 107859 3.1848000000e+00 7.4845000000e-01 107860 3.1548000000e+00 7.6590000000e-01 107861 3.1545000000e+00 8.0099000000e-01 107862 3.1542000000e+00 8.3683000000e-01 107863 3.1543000000e+00 8.7305000000e-01 107864 3.1549000000e+00 9.0923000000e-01 107865 3.1560000000e+00 9.4501000000e-01 107866 3.1571000000e+00 9.8030000000e-01 107867 3.1579000000e+00 1.0152000000e+00 107868 3.1281000000e+00 1.0328000000e+00 107869 3.1283000000e+00 1.0672000000e+00 107870 3.1279000000e+00 1.1018000000e+00 107871 3.0970000000e+00 1.1187000000e+00 107872 3.0959000000e+00 1.1541000000e+00 107873 3.0952000000e+00 1.1899000000e+00 107874 3.0634000000e+00 1.2080000000e+00 107875 3.0633000000e+00 1.2443000000e+00 107876 3.0317000000e+00 1.2632000000e+00 107877 3.0318000000e+00 1.2996000000e+00 107878 3.0003000000e+00 1.3192000000e+00 107879 2.9686000000e+00 1.3394000000e+00 107880 2.9692000000e+00 1.3762000000e+00 107881 2.9380000000e+00 1.3979000000e+00 107882 2.9036000000e+00 1.3833000000e+00 107883 2.8647000000e+00 1.3666000000e+00 107884 2.8244000000e+00 1.3647000000e+00 107885 2.7899000000e+00 1.3575000000e+00 107886 2.7557000000e+00 1.3492000000e+00 107887 2.7214000000e+00 1.3412000000e+00 107888 2.6953000000e+00 1.3678000000e+00 107889 2.6621000000e+00 1.3609000000e+00 107890 2.6287000000e+00 1.3551000000e+00 107891 2.5946000000e+00 1.3503000000e+00 107892 2.5594000000e+00 1.3460000000e+00 107893 2.5231000000e+00 1.3419000000e+00 107894 2.4858000000e+00 1.3374000000e+00 107895 2.4603000000e+00 1.3682000000e+00 107896 2.4229000000e+00 1.3627000000e+00 107897 2.3831000000e+00 1.3595000000e+00 107898 2.3548000000e+00 1.3418000000e+00 107899 2.3196000000e+00 1.3417000000e+00 107900 2.2856000000e+00 1.3236000000e+00 107901 2.2577000000e+00 1.3379000000e+00 107902 2.2250000000e+00 1.3314000000e+00 107903 2.2111000000e+00 1.3634000000e+00 107904 2.1875000000e+00 1.3446000000e+00 107905 2.1537000000e+00 1.3612000000e+00 107906 2.1234000000e+00 1.3411000000e+00 107907 2.0894000000e+00 1.3588000000e+00 107908 2.0580000000e+00 1.3404000000e+00 107909 2.0263000000e+00 1.3614000000e+00 107910 1.9924000000e+00 1.3476000000e+00 107911 1.9593000000e+00 1.3337000000e+00 107912 1.9349000000e+00 1.3526000000e+00 107913 1.9004000000e+00 1.3543000000e+00 107914 1.8651000000e+00 1.3728000000e+00 107915 1.8588000000e+00 1.4073000000e+00 107916 1.8248000000e+00 1.4176000000e+00 107917 1.8148000000e+00 1.4512000000e+00 107918 1.7904000000e+00 1.4265000000e+00 107919 1.8013000000e+00 1.3929000000e+00 107920 1.7676000000e+00 1.4003000000e+00 107921 1.7787000000e+00 1.3672000000e+00 107922 1.8123000000e+00 1.3607000000e+00 107923 1.7915000000e+00 1.3341000000e+00 107924 1.7555000000e+00 1.3402000000e+00 107925 1.7443000000e+00 1.3749000000e+00 107926 1.7352000000e+00 1.4074000000e+00 107927 1.7045000000e+00 1.4170000000e+00 107928 1.7123000000e+00 1.3851000000e+00 107929 1.6824000000e+00 1.3941000000e+00 107930 2.3775000000e+00 3.6357000000e-01 107931 2.3950000000e+00 3.9383000000e-01 107932 2.4127000000e+00 4.2400000000e-01 107933 2.3774000000e+00 4.2434000000e-01 107934 2.3952000000e+00 4.5454000000e-01 107935 2.4304000000e+00 4.5399000000e-01 107936 2.4478000000e+00 4.2368000000e-01 107937 2.4827000000e+00 4.2347000000e-01 107938 2.5175000000e+00 4.2341000000e-01 107939 2.5523000000e+00 4.2349000000e-01 107940 2.5694000000e+00 4.5363000000e-01 107941 2.5862000000e+00 4.8386000000e-01 107942 2.6211000000e+00 4.8447000000e-01 107943 2.6563000000e+00 4.8503000000e-01 107944 2.6734000000e+00 5.1587000000e-01 107945 2.7090000000e+00 5.1630000000e-01 107946 2.7446000000e+00 5.1657000000e-01 107947 2.7802000000e+00 5.1678000000e-01 107948 2.8158000000e+00 5.1703000000e-01 107949 2.8514000000e+00 5.1733000000e-01 107950 2.8692000000e+00 4.8688000000e-01 107951 2.8869000000e+00 4.5643000000e-01 107952 2.8691000000e+00 4.2573000000e-01 107953 2.9045000000e+00 4.2600000000e-01 107954 2.9400000000e+00 4.2630000000e-01 107955 2.9575000000e+00 3.9586000000e-01 107956 2.9929000000e+00 3.9616000000e-01 107957 3.0284000000e+00 3.9649000000e-01 107958 3.0461000000e+00 3.6587000000e-01 107959 3.0818000000e+00 3.6582000000e-01 107960 3.1128000000e+00 3.6341000000e-01 107961 3.1519000000e+00 3.0332000000e-01 107962 1.0540000000e+00 1.1057000000e+00 107963 1.0565000000e+00 1.0704000000e+00 107964 1.0262000000e+00 1.0507000000e+00 107965 1.0260000000e+00 1.0155000000e+00 107966 1.0271000000e+00 9.8215000000e-01 107967 1.0299000000e+00 9.4843000000e-01 107968 1.0322000000e+00 9.1390000000e-01 107969 1.0636000000e+00 8.9989000000e-01 107970 1.0672000000e+00 8.6446000000e-01 107971 1.0701000000e+00 8.2830000000e-01 107972 1.0404000000e+00 8.0770000000e-01 107973 1.0425000000e+00 7.7167000000e-01 107974 1.0724000000e+00 7.9194000000e-01 107975 1.0743000000e+00 7.5556000000e-01 107976 1.0441000000e+00 7.3547000000e-01 107977 1.0127000000e+00 7.5176000000e-01 107978 9.8335000000e-01 7.3229000000e-01 107979 1.0138000000e+00 7.1597000000e-01 107980 1.0454000000e+00 6.9860000000e-01 107981 1.0761000000e+00 7.1914000000e-01 107982 1.0783000000e+00 6.8300000000e-01 107983 1.1083000000e+00 7.0283000000e-01 107984 1.1097000000e+00 6.6701000000e-01 107985 1.0811000000e+00 6.4839000000e-01 107986 1.0492000000e+00 6.6193000000e-01 107987 1.0110000000e+00 6.7597000000e-01 107988 9.8652000000e-01 7.0165000000e-01 107989 9.5353000000e-01 7.0910000000e-01 107990 9.2251000000e-01 7.0132000000e-01 107991 9.7093000000e-01 6.7484000000e-01 107992 9.8739000000e-01 6.4174000000e-01 107993 1.0235000000e+00 6.3694000000e-01 107994 1.0021000000e+00 6.0818000000e-01 107995 9.8289000000e-01 5.7774000000e-01 107996 9.9994000000e-01 5.4683000000e-01 107997 1.0177000000e+00 5.7722000000e-01 107998 1.0351000000e+00 5.4767000000e-01 107999 1.0183000000e+00 5.1575000000e-01 108000 1.0394000000e+00 4.8567000000e-01 108001 1.0786000000e+00 4.8799000000e-01 108002 1.1133000000e+00 4.7910000000e-01 108003 1.1496000000e+00 4.8133000000e-01 108004 1.1833000000e+00 5.0766000000e-01 108005 1.2081000000e+00 4.8730000000e-01 108006 1.2342000000e+00 4.8498000000e-01 108007 1.2465000000e+00 4.5899000000e-01 108008 1.2772000000e+00 4.5990000000e-01 108009 1.3098000000e+00 4.6020000000e-01 108010 1.2919000000e+00 4.9654000000e-01 108011 1.3254000000e+00 4.8417000000e-01 108012 1.3434000000e+00 4.6016000000e-01 108013 1.3565000000e+00 4.9545000000e-01 108014 1.3806000000e+00 5.2792000000e-01 108015 1.4022000000e+00 5.5881000000e-01 108016 1.4236000000e+00 5.8856000000e-01 108017 1.4448000000e+00 6.1629000000e-01 108018 1.4783000000e+00 6.1249000000e-01 108019 1.5125000000e+00 6.1050000000e-01 108020 1.5290000000e+00 5.7870000000e-01 108021 1.5452000000e+00 5.4640000000e-01 108022 1.5645000000e+00 5.7642000000e-01 108023 1.5808000000e+00 5.4379000000e-01 108024 1.6003000000e+00 5.7382000000e-01 108025 1.6163000000e+00 5.4099000000e-01 108026 1.6519000000e+00 5.3810000000e-01 108027 1.6677000000e+00 5.0537000000e-01 108028 1.6360000000e+00 5.7091000000e-01 108029 1.6715000000e+00 5.6794000000e-01 108030 1.6874000000e+00 5.3522000000e-01 108031 1.7032000000e+00 5.0253000000e-01 108032 1.7189000000e+00 4.6990000000e-01 108033 1.7228000000e+00 5.3246000000e-01 108034 1.7387000000e+00 4.9975000000e-01 108035 1.7546000000e+00 4.6654000000e-01 108036 1.7341000000e+00 4.3781000000e-01 108037 2.1489000000e+00 3.3340000000e-01 108038 2.1839000000e+00 3.3318000000e-01 108039 2.2190000000e+00 3.3315000000e-01 108040 2.2368000000e+00 3.0289000000e-01 108041 2.2012000000e+00 3.6330000000e-01 108042 2.2363000000e+00 3.6342000000e-01 108043 2.2542000000e+00 3.3319000000e-01 108044 2.2720000000e+00 3.0291000000e-01 108045 2.2546000000e+00 2.7259000000e-01 108046 2.2898000000e+00 2.7260000000e-01 108047 2.3076000000e+00 2.4230000000e-01 108048 2.3253000000e+00 2.1200000000e-01 108049 2.3078000000e+00 1.8169000000e-01 108050 2.3597000000e+00 3.9401000000e-01 108051 2.3419000000e+00 4.2459000000e-01 108052 2.3597000000e+00 4.5508000000e-01 108053 2.3778000000e+00 4.8540000000e-01 108054 2.3419000000e+00 4.8622000000e-01 108055 2.3605000000e+00 5.1683000000e-01 108056 2.3962000000e+00 5.1529000000e-01 108057 2.4131000000e+00 4.8447000000e-01 108058 2.4312000000e+00 5.1395000000e-01 108059 2.4480000000e+00 4.8371000000e-01 108060 2.4652000000e+00 4.5357000000e-01 108061 2.5000000000e+00 4.5336000000e-01 108062 2.5346000000e+00 4.5339000000e-01 108063 2.5515000000e+00 4.8335000000e-01 108064 2.5680000000e+00 5.1340000000e-01 108065 2.6027000000e+00 5.1432000000e-01 108066 2.6379000000e+00 5.1521000000e-01 108067 2.6548000000e+00 5.4634000000e-01 108068 2.6907000000e+00 5.4694000000e-01 108069 2.7265000000e+00 5.4720000000e-01 108070 2.7622000000e+00 5.4733000000e-01 108071 2.7979000000e+00 5.4750000000e-01 108072 2.8335000000e+00 5.4777000000e-01 108073 2.8692000000e+00 5.4818000000e-01 108074 2.8872000000e+00 5.1770000000e-01 108075 2.9049000000e+00 4.8721000000e-01 108076 2.9224000000e+00 4.5674000000e-01 108077 2.9579000000e+00 4.5708000000e-01 108078 2.9753000000e+00 4.2664000000e-01 108079 3.0107000000e+00 4.2703000000e-01 108080 3.0458000000e+00 4.2730000000e-01 108081 3.0645000000e+00 3.9695000000e-01 108082 3.1046000000e+00 3.9796000000e-01 108083 3.1120000000e+00 4.3623000000e-01 108084 3.1138000000e+00 4.6879000000e-01 108085 3.1113000000e+00 5.0221000000e-01 108086 3.1414000000e+00 5.2157000000e-01 108087 3.1412000000e+00 5.5755000000e-01 108088 3.1722000000e+00 5.7483000000e-01 108089 3.2001000000e+00 5.9353000000e-01 108090 3.1729000000e+00 6.0477000000e-01 108091 3.1525000000e+00 6.3291000000e-01 108092 3.1440000000e+00 6.6717000000e-01 108093 3.1508000000e+00 6.9703000000e-01 108094 3.1539000000e+00 7.3144000000e-01 108095 3.1256000000e+00 7.4853000000e-01 108096 3.1243000000e+00 7.8204000000e-01 108097 3.1231000000e+00 8.1768000000e-01 108098 3.1223000000e+00 8.5437000000e-01 108099 3.1226000000e+00 8.9139000000e-01 108100 3.1241000000e+00 9.2788000000e-01 108101 3.1259000000e+00 9.6346000000e-01 108102 3.1273000000e+00 9.9833000000e-01 108103 3.0980000000e+00 1.0162000000e+00 108104 3.0985000000e+00 1.0501000000e+00 108105 3.0981000000e+00 1.0841000000e+00 108106 3.0673000000e+00 1.1003000000e+00 108107 3.0651000000e+00 1.1354000000e+00 108108 3.0638000000e+00 1.1717000000e+00 108109 3.0315000000e+00 1.1901000000e+00 108110 3.0316000000e+00 1.2268000000e+00 108111 3.0000000000e+00 1.2461000000e+00 108112 3.0002000000e+00 1.2826000000e+00 108113 2.9685000000e+00 1.3024000000e+00 108114 2.9363000000e+00 1.3228000000e+00 108115 2.9365000000e+00 1.3606000000e+00 108116 2.9029000000e+00 1.3441000000e+00 108117 2.8720000000e+00 1.3257000000e+00 108118 2.8440000000e+00 1.3397000000e+00 108119 2.8159000000e+00 1.3319000000e+00 108120 2.7829000000e+00 1.3226000000e+00 108121 2.7483000000e+00 1.3139000000e+00 108122 2.7133000000e+00 1.3065000000e+00 108123 2.6873000000e+00 1.3340000000e+00 108124 2.6532000000e+00 1.3277000000e+00 108125 2.6188000000e+00 1.3220000000e+00 108126 2.5838000000e+00 1.3168000000e+00 108127 2.5480000000e+00 1.3119000000e+00 108128 2.5113000000e+00 1.3069000000e+00 108129 2.4739000000e+00 1.3017000000e+00 108130 2.4480000000e+00 1.3324000000e+00 108131 2.4100000000e+00 1.3280000000e+00 108132 2.3780000000e+00 1.3256000000e+00 108133 2.3496000000e+00 1.3072000000e+00 108134 2.3135000000e+00 1.3060000000e+00 108135 2.2864000000e+00 1.2857000000e+00 108136 2.2562000000e+00 1.3086000000e+00 108137 2.2277000000e+00 1.2926000000e+00 108138 2.1937000000e+00 1.3079000000e+00 108139 2.1582000000e+00 1.3239000000e+00 108140 2.1274000000e+00 1.3029000000e+00 108141 2.0920000000e+00 1.3210000000e+00 108142 2.0588000000e+00 1.3010000000e+00 108143 2.0241000000e+00 1.3232000000e+00 108144 1.9882000000e+00 1.3095000000e+00 108145 1.9529000000e+00 1.2995000000e+00 108146 1.9263000000e+00 1.3243000000e+00 108147 1.8918000000e+00 1.3153000000e+00 108148 1.8639000000e+00 1.3387000000e+00 108149 1.8406000000e+00 1.3571000000e+00 108150 1.8338000000e+00 1.3848000000e+00 108151 1.8282000000e+00 1.3282000000e+00 108152 1.8042000000e+00 1.3065000000e+00 108153 1.7699000000e+00 1.3019000000e+00 108154 1.7322000000e+00 1.3141000000e+00 108155 1.7165000000e+00 1.3489000000e+00 108156 1.6996000000e+00 1.3168000000e+00 108157 1.6912000000e+00 1.3681000000e+00 108158 1.6875000000e+00 1.2876000000e+00 108159 1.6529000000e+00 1.2798000000e+00 108160 1.6109000000e+00 1.2746000000e+00 108161 1.5770000000e+00 1.2847000000e+00 108162 1.5517000000e+00 1.3104000000e+00 108163 1.5386000000e+00 1.3507000000e+00 108164 1.5073000000e+00 1.3243000000e+00 108165 1.4895000000e+00 1.2894000000e+00 108166 1.5102000000e+00 1.2608000000e+00 108167 1.4953000000e+00 1.2283000000e+00 108168 1.5318000000e+00 1.2319000000e+00 108169 1.5166000000e+00 1.1983000000e+00 108170 1.4796000000e+00 1.1955000000e+00 108171 1.4429000000e+00 1.1939000000e+00 108172 1.4627000000e+00 1.1629000000e+00 108173 1.4259000000e+00 1.1621000000e+00 108174 1.3896000000e+00 1.1613000000e+00 108175 1.3726000000e+00 1.1295000000e+00 108176 1.3558000000e+00 1.0974000000e+00 108177 1.3188000000e+00 1.0960000000e+00 108178 1.2815000000e+00 1.0949000000e+00 108179 1.2619000000e+00 1.1266000000e+00 108180 1.2426000000e+00 1.1583000000e+00 108181 1.2605000000e+00 1.1906000000e+00 108182 1.2786000000e+00 1.2228000000e+00 108183 1.2412000000e+00 1.2226000000e+00 108184 1.2214000000e+00 1.2553000000e+00 108185 1.1980000000e+00 1.2908000000e+00 108186 1.1612000000e+00 1.3057000000e+00 108187 1.1281000000e+00 1.3139000000e+00 108188 1.1177000000e+00 1.3455000000e+00 108189 1.1056000000e+00 1.3759000000e+00 108190 1.0909000000e+00 1.4054000000e+00 108191 1.1092000000e+00 1.4343000000e+00 108192 1.1282000000e+00 1.4640000000e+00 108193 1.0927000000e+00 1.4656000000e+00 108194 1.0765000000e+00 1.4971000000e+00 108195 1.0415000000e+00 1.4994000000e+00 108196 1.0562000000e+00 1.4670000000e+00 108197 1.0741000000e+00 1.4354000000e+00 108198 1.0379000000e+00 1.4348000000e+00 108199 1.0575000000e+00 1.4052000000e+00 108200 1.0744000000e+00 1.3782000000e+00 108201 1.0438000000e+00 1.3755000000e+00 108202 1.0239000000e+00 1.4019000000e+00 108203 1.0013000000e+00 1.4295000000e+00 108204 1.0145000000e+00 1.4699000000e+00 108205 9.9467000000e-01 1.3988000000e+00 108206 9.6824000000e-01 1.4567000000e+00 108207 9.8330000000e-01 1.4967000000e+00 108208 1.0127000000e+00 1.5049000000e+00 108209 3.0800000000e+00 4.2830000000e-01 108210 3.0905000000e+00 4.5440000000e-01 108211 3.0841000000e+00 4.8176000000e-01 108212 3.0781000000e+00 5.1629000000e-01 108213 3.1084000000e+00 5.3851000000e-01 108214 3.1091000000e+00 5.7668000000e-01 108215 3.1436000000e+00 5.9359000000e-01 108216 3.1140000000e+00 6.1479000000e-01 108217 3.1169000000e+00 6.5105000000e-01 108218 3.1195000000e+00 6.8476000000e-01 108219 3.1240000000e+00 7.1676000000e-01 108220 3.1011000000e+00 7.3332000000e-01 108221 3.0955000000e+00 7.6177000000e-01 108222 3.0925000000e+00 7.9740000000e-01 108223 3.0905000000e+00 8.3450000000e-01 108224 3.0892000000e+00 8.7282000000e-01 108225 3.0908000000e+00 9.1100000000e-01 108226 3.0943000000e+00 9.4726000000e-01 108227 3.0966000000e+00 9.8205000000e-01 108228 3.0680000000e+00 1.0004000000e+00 108229 3.0693000000e+00 1.0337000000e+00 108230 3.0691000000e+00 1.0666000000e+00 108231 3.0397000000e+00 1.0814000000e+00 108232 3.0345000000e+00 1.1155000000e+00 108233 3.0317000000e+00 1.1527000000e+00 108234 2.9990000000e+00 1.1721000000e+00 108235 2.9991000000e+00 1.2093000000e+00 108236 2.9684000000e+00 1.2295000000e+00 108237 2.9686000000e+00 1.2655000000e+00 108238 2.9367000000e+00 1.2851000000e+00 108239 2.9043000000e+00 1.3056000000e+00 108240 2.8729000000e+00 1.2890000000e+00 108241 2.8429000000e+00 1.3097000000e+00 108242 2.8112000000e+00 1.2975000000e+00 108243 2.7765000000e+00 1.2861000000e+00 108244 2.7400000000e+00 1.2779000000e+00 108245 2.7041000000e+00 1.2722000000e+00 108246 2.6785000000e+00 1.3001000000e+00 108247 2.6438000000e+00 1.2940000000e+00 108248 2.6088000000e+00 1.2882000000e+00 108249 2.5732000000e+00 1.2825000000e+00 108250 2.5371000000e+00 1.2770000000e+00 108251 2.5003000000e+00 1.2714000000e+00 108252 2.4629000000e+00 1.2656000000e+00 108253 2.4354000000e+00 1.2963000000e+00 108254 2.3926000000e+00 1.2912000000e+00 108255 2.3623000000e+00 1.2723000000e+00 108256 2.3265000000e+00 1.2716000000e+00 108257 2.2984000000e+00 1.2547000000e+00 108258 2.2697000000e+00 1.2552000000e+00 108259 2.2552000000e+00 1.2801000000e+00 108260 2.2362000000e+00 1.2581000000e+00 108261 2.2002000000e+00 1.2694000000e+00 108262 2.1635000000e+00 1.2856000000e+00 108263 2.1322000000e+00 1.2636000000e+00 108264 2.0954000000e+00 1.2818000000e+00 108265 2.0625000000e+00 1.2603000000e+00 108266 2.0209000000e+00 1.2791000000e+00 108267 1.9798000000e+00 1.2737000000e+00 108268 1.9452000000e+00 1.2654000000e+00 108269 1.9187000000e+00 1.2901000000e+00 108270 1.8843000000e+00 1.2798000000e+00 108271 1.8572000000e+00 1.3041000000e+00 108272 1.8280000000e+00 1.2957000000e+00 108273 1.8035000000e+00 1.2724000000e+00 108274 1.7644000000e+00 1.2633000000e+00 108275 1.7380000000e+00 1.2828000000e+00 108276 1.7138000000e+00 1.2938000000e+00 108277 1.7117000000e+00 1.2677000000e+00 108278 1.6809000000e+00 1.2540000000e+00 108279 1.6411000000e+00 1.2390000000e+00 108280 1.6009000000e+00 1.2376000000e+00 108281 1.5809000000e+00 1.2597000000e+00 108282 1.5486000000e+00 1.2674000000e+00 108283 1.5214000000e+00 1.2905000000e+00 108284 1.5671000000e+00 1.2342000000e+00 108285 1.5529000000e+00 1.2022000000e+00 108286 1.5391000000e+00 1.1680000000e+00 108287 1.5008000000e+00 1.1638000000e+00 108288 1.4820000000e+00 1.1306000000e+00 108289 1.4449000000e+00 1.1313000000e+00 108290 1.4088000000e+00 1.1307000000e+00 108291 1.3922000000e+00 1.0990000000e+00 108292 1.3762000000e+00 1.0667000000e+00 108293 1.3391000000e+00 1.0645000000e+00 108294 1.3015000000e+00 1.0631000000e+00 108295 1.2639000000e+00 1.0620000000e+00 108296 1.2441000000e+00 1.0940000000e+00 108297 1.2247000000e+00 1.1259000000e+00 108298 1.2066000000e+00 1.0934000000e+00 108299 1.2260000000e+00 1.0611000000e+00 108300 1.1883000000e+00 1.0608000000e+00 108301 1.1692000000e+00 1.0931000000e+00 108302 1.1511000000e+00 1.0606000000e+00 108303 1.1314000000e+00 1.0927000000e+00 108304 1.1504000000e+00 1.1253000000e+00 108305 1.1875000000e+00 1.1254000000e+00 108306 1.1688000000e+00 1.1571000000e+00 108307 1.2055000000e+00 1.1577000000e+00 108308 1.2233000000e+00 1.1900000000e+00 108309 1.2039000000e+00 1.2217000000e+00 108310 1.1842000000e+00 1.2527000000e+00 108311 1.1660000000e+00 1.2765000000e+00 108312 1.1375000000e+00 1.2823000000e+00 108313 1.1051000000e+00 1.2895000000e+00 108314 1.0959000000e+00 1.3213000000e+00 108315 1.0868000000e+00 1.3511000000e+00 108316 1.0617000000e+00 1.3558000000e+00 108317 1.0377000000e+00 1.3444000000e+00 108318 1.0078000000e+00 1.3675000000e+00 108319 1.8796000000e+00 3.2474000000e-01 108320 1.8921000000e+00 2.9272000000e-01 108321 1.9179000000e+00 3.1810000000e-01 108322 1.9191000000e+00 2.8704000000e-01 108323 1.9454000000e+00 2.9519000000e-01 108324 1.9681000000e+00 2.7007000000e-01 108325 1.9885000000e+00 2.4070000000e-01 108326 2.0075000000e+00 2.1076000000e-01 108327 2.0241000000e+00 2.4206000000e-01 108328 2.0043000000e+00 2.7334000000e-01 108329 2.0415000000e+00 2.7369000000e-01 108330 2.0599000000e+00 3.0488000000e-01 108331 2.0787000000e+00 3.3516000000e-01 108332 2.1139000000e+00 3.3398000000e-01 108333 2.1315000000e+00 3.6357000000e-01 108334 2.1663000000e+00 3.6328000000e-01 108335 2.1833000000e+00 3.9324000000e-01 108336 2.2183000000e+00 3.9353000000e-01 108337 2.2535000000e+00 3.9383000000e-01 108338 2.2353000000e+00 4.2400000000e-01 108339 2.2707000000e+00 4.2444000000e-01 108340 2.2889000000e+00 3.9403000000e-01 108341 2.2716000000e+00 3.6356000000e-01 108342 2.2895000000e+00 3.3325000000e-01 108343 2.3073000000e+00 3.0293000000e-01 108344 2.3247000000e+00 3.3328000000e-01 108345 2.3422000000e+00 3.6364000000e-01 108346 2.3243000000e+00 3.9409000000e-01 108347 2.3063000000e+00 4.2465000000e-01 108348 2.3239000000e+00 4.5540000000e-01 108349 2.3056000000e+00 4.8658000000e-01 108350 2.3239000000e+00 5.1809000000e-01 108351 2.3432000000e+00 5.4927000000e-01 108352 2.3797000000e+00 5.4678000000e-01 108353 2.4149000000e+00 5.4439000000e-01 108354 2.4490000000e+00 5.4284000000e-01 108355 2.4655000000e+00 5.1307000000e-01 108356 2.4826000000e+00 4.8324000000e-01 108357 2.4996000000e+00 5.1266000000e-01 108358 2.5170000000e+00 4.8312000000e-01 108359 2.5337000000e+00 5.1277000000e-01 108360 2.5497000000e+00 5.4237000000e-01 108361 2.5839000000e+00 5.4381000000e-01 108362 2.6191000000e+00 5.4527000000e-01 108363 2.6356000000e+00 5.7695000000e-01 108364 2.6720000000e+00 5.7790000000e-01 108365 2.7083000000e+00 5.7812000000e-01 108366 2.7443000000e+00 5.7805000000e-01 108367 2.7799000000e+00 5.7802000000e-01 108368 2.8155000000e+00 5.7819000000e-01 108369 2.8512000000e+00 5.7857000000e-01 108370 2.8870000000e+00 5.7917000000e-01 108371 2.9052000000e+00 5.4866000000e-01 108372 2.9230000000e+00 5.1807000000e-01 108373 2.9405000000e+00 4.8754000000e-01 108374 2.9589000000e+00 5.1839000000e-01 108375 2.9760000000e+00 4.8788000000e-01 108376 2.9932000000e+00 4.5749000000e-01 108377 3.0286000000e+00 4.5815000000e-01 108378 3.0628000000e+00 4.5697000000e-01 108379 3.0481000000e+00 4.9193000000e-01 108380 3.0479000000e+00 5.2661000000e-01 108381 3.0691000000e+00 5.5679000000e-01 108382 3.0781000000e+00 5.9891000000e-01 108383 3.0837000000e+00 6.3562000000e-01 108384 3.0879000000e+00 6.7109000000e-01 108385 3.0932000000e+00 7.0553000000e-01 108386 3.0673000000e+00 7.3406000000e-01 108387 3.0622000000e+00 7.7533000000e-01 108388 3.0593000000e+00 8.1320000000e-01 108389 3.0563000000e+00 8.5160000000e-01 108390 3.0523000000e+00 8.9419000000e-01 108391 3.0621000000e+00 9.3255000000e-01 108392 3.0658000000e+00 9.6673000000e-01 108393 3.0381000000e+00 9.8554000000e-01 108394 3.0401000000e+00 1.0185000000e+00 108395 3.0417000000e+00 1.0503000000e+00 108396 3.0182000000e+00 1.0644000000e+00 108397 3.0072000000e+00 1.0919000000e+00 108398 2.9958000000e+00 1.1315000000e+00 108399 2.9715000000e+00 1.1579000000e+00 108400 2.9639000000e+00 1.1916000000e+00 108401 2.9410000000e+00 1.2172000000e+00 108402 2.9374000000e+00 1.2478000000e+00 108403 2.9047000000e+00 1.2670000000e+00 108404 2.8720000000e+00 1.2521000000e+00 108405 2.8411000000e+00 1.2744000000e+00 108406 2.8076000000e+00 1.2602000000e+00 108407 2.7689000000e+00 1.2445000000e+00 108408 2.7290000000e+00 1.2440000000e+00 108409 2.6945000000e+00 1.2386000000e+00 108410 2.6692000000e+00 1.2661000000e+00 108411 2.6342000000e+00 1.2599000000e+00 108412 2.5989000000e+00 1.2537000000e+00 108413 2.5630000000e+00 1.2477000000e+00 108414 2.5266000000e+00 1.2417000000e+00 108415 2.4899000000e+00 1.2356000000e+00 108416 2.4530000000e+00 1.2292000000e+00 108417 2.4248000000e+00 1.2591000000e+00 108418 2.3886000000e+00 1.2500000000e+00 108419 2.3543000000e+00 1.2414000000e+00 108420 2.3210000000e+00 1.2337000000e+00 108421 2.2886000000e+00 1.2273000000e+00 108422 2.2536000000e+00 1.2254000000e+00 108423 2.2108000000e+00 1.2258000000e+00 108424 2.1695000000e+00 1.2459000000e+00 108425 2.1373000000e+00 1.2237000000e+00 108426 2.0999000000e+00 1.2415000000e+00 108427 2.0681000000e+00 1.2213000000e+00 108428 2.0321000000e+00 1.2371000000e+00 108429 2.0008000000e+00 1.2486000000e+00 108430 1.9709000000e+00 1.2401000000e+00 108431 1.9375000000e+00 1.2322000000e+00 108432 1.9118000000e+00 1.2562000000e+00 108433 1.8795000000e+00 1.2459000000e+00 108434 1.8471000000e+00 1.2670000000e+00 108435 1.8238000000e+00 1.2367000000e+00 108436 1.7872000000e+00 1.2352000000e+00 108437 1.7517000000e+00 1.2318000000e+00 108438 1.7360000000e+00 1.2556000000e+00 108439 1.7143000000e+00 1.2324000000e+00 108440 1.6780000000e+00 1.2174000000e+00 108441 1.6464000000e+00 1.1980000000e+00 108442 1.6799000000e+00 1.1811000000e+00 108443 1.6490000000e+00 1.1611000000e+00 108444 1.6127000000e+00 1.1777000000e+00 108445 1.6178000000e+00 1.2117000000e+00 108446 1.5877000000e+00 1.2063000000e+00 108447 1.5750000000e+00 1.1745000000e+00 108448 1.5930000000e+00 1.1514000000e+00 108449 1.5644000000e+00 1.1416000000e+00 108450 1.5251000000e+00 1.1274000000e+00 108451 1.4964000000e+00 1.0971000000e+00 108452 1.4623000000e+00 1.1011000000e+00 108453 1.4279000000e+00 1.1005000000e+00 108454 1.4123000000e+00 1.0693000000e+00 108455 1.3974000000e+00 1.0368000000e+00 108456 1.3602000000e+00 1.0329000000e+00 108457 1.3220000000e+00 1.0308000000e+00 108458 1.2841000000e+00 1.0300000000e+00 108459 1.3041000000e+00 9.9866000000e-01 108460 1.2670000000e+00 9.9689000000e-01 108461 1.2460000000e+00 1.0287000000e+00 108462 1.2072000000e+00 1.0275000000e+00 108463 1.1695000000e+00 1.0286000000e+00 108464 1.1337000000e+00 1.0288000000e+00 108465 1.1148000000e+00 1.0596000000e+00 108466 1.0902000000e+00 1.0913000000e+00 108467 1.1129000000e+00 1.1261000000e+00 108468 1.0778000000e+00 1.1286000000e+00 108469 1.0948000000e+00 1.1614000000e+00 108470 1.1327000000e+00 1.1571000000e+00 108471 1.1500000000e+00 1.1879000000e+00 108472 1.1864000000e+00 1.1891000000e+00 108473 1.1667000000e+00 1.2203000000e+00 108474 1.1493000000e+00 1.2512000000e+00 108475 1.1151000000e+00 1.2567000000e+00 108476 1.1263000000e+00 1.2190000000e+00 108477 1.0906000000e+00 1.2329000000e+00 108478 1.0818000000e+00 1.2650000000e+00 108479 1.0720000000e+00 1.2977000000e+00 108480 1.0656000000e+00 1.3301000000e+00 108481 1.0394000000e+00 1.3100000000e+00 108482 1.0445000000e+00 1.2703000000e+00 108483 1.0634000000e+00 1.2431000000e+00 108484 1.0637000000e+00 1.2145000000e+00 108485 1.0931000000e+00 1.1990000000e+00 108486 1.0638000000e+00 1.1810000000e+00 108487 1.0840000000e+00 1.0562000000e+00 108488 1.0602000000e+00 1.0313000000e+00 108489 1.0507000000e+00 9.9944000000e-01 108490 1.0604000000e+00 9.6923000000e-01 108491 1.0601000000e+00 9.3379000000e-01 108492 1.0837000000e+00 9.4950000000e-01 108493 1.0907000000e+00 9.2171000000e-01 108494 1.0962000000e+00 8.8633000000e-01 108495 1.1002000000e+00 8.4954000000e-01 108496 1.1027000000e+00 8.1250000000e-01 108497 1.1046000000e+00 7.7577000000e-01 108498 1.1350000000e+00 7.9585000000e-01 108499 1.1365000000e+00 7.5937000000e-01 108500 1.1064000000e+00 7.3927000000e-01 108501 1.1386000000e+00 7.2283000000e-01 108502 1.1406000000e+00 6.8560000000e-01 108503 1.1399000000e+00 6.4915000000e-01 108504 1.1101000000e+00 6.3296000000e-01 108505 1.0837000000e+00 6.1674000000e-01 108506 1.0558000000e+00 6.2860000000e-01 108507 1.0353000000e+00 6.0516000000e-01 108508 1.0508000000e+00 5.7765000000e-01 108509 1.0693000000e+00 5.5018000000e-01 108510 1.0547000000e+00 5.1832000000e-01 108511 1.0878000000e+00 5.2256000000e-01 108512 1.1025000000e+00 5.5151000000e-01 108513 1.0852000000e+00 5.8327000000e-01 108514 1.1205000000e+00 5.7958000000e-01 108515 1.1349000000e+00 5.4914000000e-01 108516 1.1543000000e+00 5.7706000000e-01 108517 1.1685000000e+00 5.4435000000e-01 108518 1.1886000000e+00 5.7313000000e-01 108519 1.2037000000e+00 5.4101000000e-01 108520 1.1466000000e+00 5.1799000000e-01 108521 1.1171000000e+00 5.2424000000e-01 108522 1.1046000000e+00 5.0303000000e-01 108523 1.1262000000e+00 5.0115000000e-01 108524 1.1746000000e+00 6.0457000000e-01 108525 1.2079000000e+00 6.0131000000e-01 108526 1.1388000000e+00 6.1154000000e-01 108527 1.1645000000e+00 6.3248000000e-01 108528 1.1937000000e+00 6.3180000000e-01 108529 1.2261000000e+00 6.2862000000e-01 108530 1.2413000000e+00 5.9932000000e-01 108531 1.2229000000e+00 5.7037000000e-01 108532 1.2575000000e+00 5.6826000000e-01 108533 1.2756000000e+00 5.9857000000e-01 108534 1.2927000000e+00 5.6664000000e-01 108535 1.3114000000e+00 5.9817000000e-01 108536 1.3286000000e+00 5.6522000000e-01 108537 1.3095000000e+00 5.3412000000e-01 108538 1.2739000000e+00 5.3549000000e-01 108539 1.2385000000e+00 5.3913000000e-01 108540 1.2532000000e+00 5.0821000000e-01 108541 1.2201000000e+00 5.1139000000e-01 108542 1.9619000000e+00 1.2076000000e+00 108543 1.9299000000e+00 1.2003000000e+00 108544 1.9054000000e+00 1.2235000000e+00 108545 1.8748000000e+00 1.2143000000e+00 108546 1.8537000000e+00 1.2342000000e+00 108547 1.8432000000e+00 1.2070000000e+00 108548 1.8081000000e+00 1.2042000000e+00 108549 1.7719000000e+00 1.2030000000e+00 108550 1.7363000000e+00 1.2009000000e+00 108551 1.7053000000e+00 1.1996000000e+00 108552 1.7179000000e+00 1.1661000000e+00 108553 1.6829000000e+00 1.1442000000e+00 108554 1.6517000000e+00 1.1250000000e+00 108555 1.6203000000e+00 1.1408000000e+00 108556 1.5927000000e+00 1.1225000000e+00 108557 1.5619000000e+00 1.1057000000e+00 108558 1.5308000000e+00 1.0852000000e+00 108559 1.5025000000e+00 1.0632000000e+00 108560 1.4758000000e+00 1.0752000000e+00 108561 1.4470000000e+00 1.0717000000e+00 108562 1.4330000000e+00 1.0408000000e+00 108563 1.4199000000e+00 1.0084000000e+00 108564 1.3833000000e+00 1.0029000000e+00 108565 1.3433000000e+00 9.9535000000e-01 108566 1.3192000000e+00 9.7196000000e-01 108567 1.2888000000e+00 9.6666000000e-01 108568 1.2509000000e+00 9.6269000000e-01 108569 1.2280000000e+00 9.9434000000e-01 108570 1.1853000000e+00 9.9127000000e-01 108571 1.1512000000e+00 1.0027000000e+00 108572 1.1172000000e+00 9.9322000000e-01 108573 1.0982000000e+00 1.0280000000e+00 108574 1.0797000000e+00 9.9894000000e-01 108575 1.0914000000e+00 9.7228000000e-01 108576 1.1160000000e+00 9.5037000000e-01 108577 1.1247000000e+00 9.1023000000e-01 108578 1.1309000000e+00 8.7201000000e-01 108579 1.1341000000e+00 8.3346000000e-01 108580 1.1661000000e+00 8.1486000000e-01 108581 1.1661000000e+00 7.7896000000e-01 108582 1.1683000000e+00 7.4335000000e-01 108583 1.1716000000e+00 7.0640000000e-01 108584 1.2006000000e+00 7.2871000000e-01 108585 1.2057000000e+00 6.9252000000e-01 108586 1.1756000000e+00 6.6523000000e-01 108587 1.2136000000e+00 6.5849000000e-01 108588 1.1077000000e+00 6.0484000000e-01 108589 1.0622000000e+00 6.0230000000e-01 108590 1.1505000000e+00 9.7124000000e-01 108591 1.1540000000e+00 9.3425000000e-01 108592 1.1790000000e+00 9.5544000000e-01 108593 1.1932000000e+00 9.2148000000e-01 108594 1.1605000000e+00 8.9654000000e-01 108595 1.1697000000e+00 8.5580000000e-01 108596 1.1973000000e+00 8.2839000000e-01 108597 1.1942000000e+00 7.9651000000e-01 108598 1.1965000000e+00 7.6364000000e-01 108599 1.2281000000e+00 7.5069000000e-01 108600 1.2337000000e+00 7.1552000000e-01 108601 1.2389000000e+00 6.8065000000e-01 108602 1.2417000000e+00 6.5199000000e-01 108603 1.2582000000e+00 6.2871000000e-01 108604 1.2927000000e+00 6.3024000000e-01 108605 1.3297000000e+00 6.3087000000e-01 108606 1.3488000000e+00 5.9747000000e-01 108607 1.3652000000e+00 5.6263000000e-01 108608 1.3443000000e+00 5.3230000000e-01 108609 1.3255000000e+00 5.0851000000e-01 108610 1.2606000000e+00 4.8173000000e-01 108611 1.3868000000e+00 5.9407000000e-01 108612 1.4103000000e+00 6.2308000000e-01 108613 1.4337000000e+00 6.4748000000e-01 108614 1.4640000000e+00 6.4200000000e-01 108615 1.4958000000e+00 6.4093000000e-01 108616 1.4786000000e+00 6.6875000000e-01 108617 1.5113000000e+00 6.7101000000e-01 108618 1.5303000000e+00 6.4086000000e-01 108619 1.5478000000e+00 6.0900000000e-01 108620 1.5839000000e+00 6.0694000000e-01 108621 1.6200000000e+00 6.0397000000e-01 108622 1.6557000000e+00 6.0074000000e-01 108623 1.6400000000e+00 6.3359000000e-01 108624 1.6040000000e+00 6.3787000000e-01 108625 1.6252000000e+00 6.6607000000e-01 108626 1.6596000000e+00 6.6252000000e-01 108627 1.6755000000e+00 6.3040000000e-01 108628 1.6912000000e+00 5.9772000000e-01 108629 1.7070000000e+00 5.6507000000e-01 108630 1.7423000000e+00 5.6240000000e-01 108631 1.7582000000e+00 5.2995000000e-01 108632 1.7742000000e+00 4.9724000000e-01 108633 1.7938000000e+00 5.2773000000e-01 108634 1.8095000000e+00 4.9484000000e-01 108635 1.7900000000e+00 4.6478000000e-01 108636 1.8244000000e+00 4.6267000000e-01 108637 1.8451000000e+00 4.9162000000e-01 108638 1.8596000000e+00 4.5795000000e-01 108639 1.8364000000e+00 4.2940000000e-01 108640 1.8058000000e+00 4.3756000000e-01 108641 3.0506000000e+00 6.2155000000e-01 108642 3.0548000000e+00 6.5642000000e-01 108643 3.0595000000e+00 6.9326000000e-01 108644 3.0289000000e+00 7.1539000000e-01 108645 3.0303000000e+00 7.5395000000e-01 108646 3.0285000000e+00 7.9169000000e-01 108647 3.0255000000e+00 8.2879000000e-01 108648 3.0211000000e+00 8.6621000000e-01 108649 3.0132000000e+00 9.0176000000e-01 108650 3.0335000000e+00 9.2358000000e-01 108651 3.0355000000e+00 9.5268000000e-01 108652 3.0087000000e+00 9.7097000000e-01 108653 3.0101000000e+00 1.0041000000e+00 108654 3.0133000000e+00 1.0372000000e+00 108655 2.9888000000e+00 1.0614000000e+00 108656 2.9659000000e+00 1.0972000000e+00 108657 2.9606000000e+00 1.1337000000e+00 108658 2.9377000000e+00 1.1608000000e+00 108659 2.9304000000e+00 1.1947000000e+00 108660 2.9046000000e+00 1.2226000000e+00 108661 2.8681000000e+00 1.2219000000e+00 108662 2.8402000000e+00 1.2380000000e+00 108663 2.8072000000e+00 1.2211000000e+00 108664 2.7748000000e+00 1.2038000000e+00 108665 2.7473000000e+00 1.2188000000e+00 108666 2.7189000000e+00 1.2124000000e+00 108667 2.6858000000e+00 1.2049000000e+00 108668 2.6600000000e+00 1.2320000000e+00 108669 2.6248000000e+00 1.2253000000e+00 108670 2.5891000000e+00 1.2187000000e+00 108671 2.5530000000e+00 1.2124000000e+00 108672 2.5165000000e+00 1.2061000000e+00 108673 2.4800000000e+00 1.1998000000e+00 108674 2.4438000000e+00 1.1932000000e+00 108675 2.4165000000e+00 1.2220000000e+00 108676 2.3810000000e+00 1.2142000000e+00 108677 2.3464000000e+00 1.2067000000e+00 108678 2.3120000000e+00 1.2001000000e+00 108679 2.2769000000e+00 1.1949000000e+00 108680 2.2397000000e+00 1.1907000000e+00 108681 2.2031000000e+00 1.1841000000e+00 108682 2.1733000000e+00 1.2070000000e+00 108683 2.1450000000e+00 1.1862000000e+00 108684 2.1744000000e+00 1.1762000000e+00 108685 2.1581000000e+00 1.1529000000e+00 108686 2.1226000000e+00 1.1592000000e+00 108687 2.1042000000e+00 1.1979000000e+00 108688 2.0701000000e+00 1.1901000000e+00 108689 2.0399000000e+00 1.2005000000e+00 108690 2.0004000000e+00 1.2125000000e+00 108691 1.9810000000e+00 1.1792000000e+00 108692 1.9514000000e+00 1.1811000000e+00 108693 1.9242000000e+00 1.1650000000e+00 108694 1.8990000000e+00 1.1919000000e+00 108695 1.8679000000e+00 1.1829000000e+00 108696 1.8313000000e+00 1.1695000000e+00 108697 1.7912000000e+00 1.1734000000e+00 108698 1.7569000000e+00 1.1722000000e+00 108699 1.7484000000e+00 1.1398000000e+00 108700 1.7158000000e+00 1.1247000000e+00 108701 1.6833000000e+00 1.1069000000e+00 108702 1.6525000000e+00 1.0902000000e+00 108703 1.6225000000e+00 1.1069000000e+00 108704 1.5939000000e+00 1.0887000000e+00 108705 1.5645000000e+00 1.0685000000e+00 108706 1.5346000000e+00 1.0490000000e+00 108707 1.5064000000e+00 1.0293000000e+00 108708 1.4708000000e+00 1.0430000000e+00 108709 1.4504000000e+00 1.0154000000e+00 108710 1.4484000000e+00 9.7924000000e-01 108711 1.4071000000e+00 9.7485000000e-01 108712 1.3718000000e+00 9.6879000000e-01 108713 1.3426000000e+00 9.6120000000e-01 108714 1.3173000000e+00 9.3769000000e-01 108715 1.2747000000e+00 9.3183000000e-01 108716 1.2352000000e+00 9.2736000000e-01 108717 1.2119000000e+00 9.5880000000e-01 108718 1.2215000000e+00 8.9240000000e-01 108719 1.1907000000e+00 8.8526000000e-01 108720 1.2085000000e+00 8.5985000000e-01 108721 1.2285000000e+00 8.3348000000e-01 108722 1.2170000000e+00 8.0957000000e-01 108723 1.2221000000e+00 7.8343000000e-01 108724 1.2535000000e+00 7.7410000000e-01 108725 1.2620000000e+00 7.3854000000e-01 108726 1.2670000000e+00 7.0182000000e-01 108727 1.2719000000e+00 6.6341000000e-01 108728 1.3098000000e+00 6.6163000000e-01 108729 1.2948000000e+00 6.8871000000e-01 108730 1.3249000000e+00 6.9266000000e-01 108731 1.3447000000e+00 6.6381000000e-01 108732 1.3709000000e+00 6.3385000000e-01 108733 1.4021000000e+00 6.5824000000e-01 108734 1.4285000000e+00 6.7917000000e-01 108735 1.4525000000e+00 6.6608000000e-01 108736 1.4576000000e+00 6.9294000000e-01 108737 1.4905000000e+00 6.9951000000e-01 108738 1.5255000000e+00 7.0287000000e-01 108739 1.5471000000e+00 6.7309000000e-01 108740 1.5611000000e+00 7.0710000000e-01 108741 1.5879000000e+00 6.7607000000e-01 108742 1.5669000000e+00 6.4063000000e-01 108743 3.0423000000e+00 5.8809000000e-01 108744 3.0230000000e+00 6.1044000000e-01 108745 3.0219000000e+00 6.3993000000e-01 108746 3.0250000000e+00 6.7718000000e-01 108747 2.9942000000e+00 6.9839000000e-01 108748 2.9970000000e+00 7.3562000000e-01 108749 2.9978000000e+00 7.7178000000e-01 108750 2.9958000000e+00 8.0729000000e-01 108751 2.9920000000e+00 8.4292000000e-01 108752 2.9869000000e+00 8.7818000000e-01 108753 2.9809000000e+00 9.1170000000e-01 108754 3.0044000000e+00 9.3689000000e-01 108755 2.9841000000e+00 9.5912000000e-01 108756 2.9798000000e+00 9.8772000000e-01 108757 2.9804000000e+00 1.0249000000e+00 108758 2.9473000000e+00 1.0531000000e+00 108759 2.9293000000e+00 1.0876000000e+00 108760 2.9317000000e+00 1.1213000000e+00 108761 2.9014000000e+00 1.1450000000e+00 108762 2.9043000000e+00 1.1818000000e+00 108763 2.8789000000e+00 1.1987000000e+00 108764 2.8446000000e+00 1.1984000000e+00 108765 2.8071000000e+00 1.1821000000e+00 108766 2.7734000000e+00 1.1672000000e+00 108767 2.7445000000e+00 1.1892000000e+00 108768 2.7122000000e+00 1.1790000000e+00 108769 2.6779000000e+00 1.1701000000e+00 108770 2.6511000000e+00 1.1973000000e+00 108771 2.6156000000e+00 1.1901000000e+00 108772 2.5794000000e+00 1.1832000000e+00 108773 2.5430000000e+00 1.1768000000e+00 108774 2.5066000000e+00 1.1706000000e+00 108775 2.4704000000e+00 1.1643000000e+00 108776 2.4346000000e+00 1.1577000000e+00 108777 2.4079000000e+00 1.1861000000e+00 108778 2.3726000000e+00 1.1790000000e+00 108779 2.3374000000e+00 1.1721000000e+00 108780 2.3019000000e+00 1.1658000000e+00 108781 2.2655000000e+00 1.1599000000e+00 108782 2.2283000000e+00 1.1541000000e+00 108783 2.1923000000e+00 1.1506000000e+00 108784 2.1753000000e+00 1.1205000000e+00 108785 2.1392000000e+00 1.1244000000e+00 108786 2.1030000000e+00 1.1300000000e+00 108787 2.0865000000e+00 1.1632000000e+00 108788 2.0519000000e+00 1.1672000000e+00 108789 2.0166000000e+00 1.1743000000e+00 108790 1.9954000000e+00 1.1462000000e+00 108791 1.9603000000e+00 1.1529000000e+00 108792 1.9365000000e+00 1.1272000000e+00 108793 1.9007000000e+00 1.1363000000e+00 108794 1.8918000000e+00 1.1651000000e+00 108795 1.8672000000e+00 1.1490000000e+00 108796 1.8378000000e+00 1.1281000000e+00 108797 1.8036000000e+00 1.1415000000e+00 108798 1.7755000000e+00 1.1497000000e+00 108799 1.7772000000e+00 1.1216000000e+00 108800 1.7473000000e+00 1.1045000000e+00 108801 1.7794000000e+00 1.0871000000e+00 108802 1.7484000000e+00 1.0671000000e+00 108803 1.7148000000e+00 1.0864000000e+00 108804 1.6818000000e+00 1.0710000000e+00 108805 1.6515000000e+00 1.0572000000e+00 108806 1.6240000000e+00 1.0739000000e+00 108807 1.5976000000e+00 1.0545000000e+00 108808 1.5684000000e+00 1.0282000000e+00 108809 1.5351000000e+00 1.0192000000e+00 108810 1.5154000000e+00 9.9621000000e-01 108811 1.4803000000e+00 1.0053000000e+00 108812 1.4906000000e+00 9.6820000000e-01 108813 1.4644000000e+00 9.3905000000e-01 108814 1.4258000000e+00 9.4337000000e-01 108815 1.3933000000e+00 9.4620000000e-01 108816 1.3615000000e+00 9.3199000000e-01 108817 1.3366000000e+00 9.0028000000e-01 108818 1.2976000000e+00 8.9960000000e-01 108819 1.2586000000e+00 8.9669000000e-01 108820 1.2431000000e+00 8.6354000000e-01 108821 1.2617000000e+00 8.3344000000e-01 108822 1.2433000000e+00 8.0585000000e-01 108823 1.2768000000e+00 8.0085000000e-01 108824 1.2890000000e+00 7.6500000000e-01 108825 1.3007000000e+00 7.2394000000e-01 108826 1.3267000000e+00 7.5736000000e-01 108827 1.3408000000e+00 7.2330000000e-01 108828 1.3585000000e+00 6.9441000000e-01 108829 1.3742000000e+00 6.6936000000e-01 108830 1.3950000000e+00 6.9644000000e-01 108831 1.4301000000e+00 7.1380000000e-01 108832 1.4656000000e+00 7.3027000000e-01 108833 1.5045000000e+00 7.3113000000e-01 108834 1.5383000000e+00 7.3531000000e-01 108835 1.5724000000e+00 7.4123000000e-01 108836 1.5950000000e+00 7.1396000000e-01 108837 1.6158000000e+00 6.9370000000e-01 108838 1.6441000000e+00 6.9267000000e-01 108839 1.6778000000e+00 6.9208000000e-01 108840 1.6950000000e+00 6.6032000000e-01 108841 1.7111000000e+00 6.2750000000e-01 108842 1.7266000000e+00 5.9477000000e-01 108843 1.7614000000e+00 5.9197000000e-01 108844 1.7775000000e+00 5.6026000000e-01 108845 1.8136000000e+00 5.5910000000e-01 108846 1.8297000000e+00 5.2513000000e-01 108847 1.8505000000e+00 5.5607000000e-01 108848 1.8658000000e+00 5.2153000000e-01 108849 1.8813000000e+00 4.8770000000e-01 108850 1.8970000000e+00 4.5309000000e-01 108851 1.8733000000e+00 4.2336000000e-01 108852 1.8490000000e+00 3.9392000000e-01 108853 1.8645000000e+00 3.5869000000e-01 108854 1.9016000000e+00 3.5380000000e-01 108855 1.9370000000e+00 3.5014000000e-01 108856 1.9505000000e+00 3.2323000000e-01 108857 1.9812000000e+00 3.0755000000e-01 108858 2.0227000000e+00 3.0604000000e-01 108859 2.0429000000e+00 3.3706000000e-01 108860 2.0062000000e+00 3.3984000000e-01 108861 2.0274000000e+00 3.6986000000e-01 108862 2.0625000000e+00 3.6667000000e-01 108863 2.0479000000e+00 3.9917000000e-01 108864 2.0812000000e+00 3.9433000000e-01 108865 2.0971000000e+00 3.6448000000e-01 108866 2.1145000000e+00 3.9323000000e-01 108867 2.1486000000e+00 3.9307000000e-01 108868 2.1653000000e+00 4.2285000000e-01 108869 2.2002000000e+00 4.2343000000e-01 108870 2.2168000000e+00 4.5398000000e-01 108871 2.1818000000e+00 4.5302000000e-01 108872 2.1981000000e+00 4.8360000000e-01 108873 2.2334000000e+00 4.8504000000e-01 108874 2.2523000000e+00 4.5482000000e-01 108875 2.2881000000e+00 4.5534000000e-01 108876 2.3069000000e+00 3.6364000000e-01 108877 2.0680000000e+00 4.2081000000e-01 108878 2.0975000000e+00 4.2171000000e-01 108879 2.1310000000e+00 4.2230000000e-01 108880 2.1472000000e+00 4.5206000000e-01 108881 2.1127000000e+00 4.5094000000e-01 108882 2.0776000000e+00 4.4867000000e-01 108883 2.0940000000e+00 4.7990000000e-01 108884 2.0578000000e+00 4.7845000000e-01 108885 2.0762000000e+00 5.1006000000e-01 108886 2.0412000000e+00 5.1096000000e-01 108887 2.0223000000e+00 4.8095000000e-01 108888 2.0066000000e+00 5.1286000000e-01 108889 2.0249000000e+00 5.4253000000e-01 108890 2.0596000000e+00 5.4098000000e-01 108891 2.0939000000e+00 5.3987000000e-01 108892 2.1109000000e+00 5.1025000000e-01 108893 2.1288000000e+00 4.8107000000e-01 108894 2.1633000000e+00 4.8223000000e-01 108895 2.1450000000e+00 5.1106000000e-01 108896 2.1791000000e+00 5.1261000000e-01 108897 2.2139000000e+00 5.1474000000e-01 108898 2.2498000000e+00 5.1696000000e-01 108899 2.2290000000e+00 5.4694000000e-01 108900 2.2663000000e+00 5.5064000000e-01 108901 2.2867000000e+00 5.1830000000e-01 108902 2.2693000000e+00 4.8617000000e-01 108903 2.3052000000e+00 5.5141000000e-01 108904 2.3262000000e+00 5.8300000000e-01 108905 2.3638000000e+00 5.7960000000e-01 108906 2.3997000000e+00 5.7538000000e-01 108907 2.4334000000e+00 5.7219000000e-01 108908 2.4664000000e+00 5.7151000000e-01 108909 2.4827000000e+00 5.4207000000e-01 108910 2.5161000000e+00 5.4175000000e-01 108911 2.4993000000e+00 5.7066000000e-01 108912 2.5316000000e+00 5.7008000000e-01 108913 2.5646000000e+00 5.7252000000e-01 108914 2.5995000000e+00 5.7507000000e-01 108915 2.5786000000e+00 6.0432000000e-01 108916 2.6152000000e+00 6.0769000000e-01 108917 2.6527000000e+00 6.0951000000e-01 108918 2.6899000000e+00 6.0966000000e-01 108919 2.7263000000e+00 6.0910000000e-01 108920 2.7621000000e+00 6.0866000000e-01 108921 2.7976000000e+00 6.0856000000e-01 108922 2.8330000000e+00 6.0884000000e-01 108923 2.8686000000e+00 6.0945000000e-01 108924 2.9046000000e+00 6.1042000000e-01 108925 2.9235000000e+00 5.7993000000e-01 108926 2.9415000000e+00 5.4907000000e-01 108927 2.9779000000e+00 5.4928000000e-01 108928 2.9947000000e+00 5.1863000000e-01 108929 3.0108000000e+00 4.8826000000e-01 108930 3.0243000000e+00 5.1557000000e-01 108931 3.0201000000e+00 5.5252000000e-01 108932 3.0129000000e+00 5.8843000000e-01 108933 2.9873000000e+00 6.1430000000e-01 108934 2.9908000000e+00 6.5984000000e-01 108935 2.9604000000e+00 6.8283000000e-01 108936 2.9634000000e+00 7.1965000000e-01 108937 2.9676000000e+00 7.5477000000e-01 108938 2.9675000000e+00 7.8755000000e-01 108939 2.9636000000e+00 8.2118000000e-01 108940 2.9592000000e+00 8.5608000000e-01 108941 2.9549000000e+00 8.9062000000e-01 108942 2.9512000000e+00 9.2429000000e-01 108943 2.9747000000e+00 9.3867000000e-01 108944 2.9526000000e+00 9.6155000000e-01 108945 2.9428000000e+00 1.0060000000e+00 108946 2.9170000000e+00 1.0319000000e+00 108947 2.9065000000e+00 1.0632000000e+00 108948 2.8950000000e+00 1.1037000000e+00 108949 2.8668000000e+00 1.1334000000e+00 108950 2.8724000000e+00 1.1692000000e+00 108951 2.8382000000e+00 1.1581000000e+00 108952 2.8039000000e+00 1.1442000000e+00 108953 2.7699000000e+00 1.1300000000e+00 108954 2.7401000000e+00 1.1542000000e+00 108955 2.7057000000e+00 1.1434000000e+00 108956 2.6701000000e+00 1.1342000000e+00 108957 2.6425000000e+00 1.1619000000e+00 108958 2.6063000000e+00 1.1542000000e+00 108959 2.5695000000e+00 1.1472000000e+00 108960 2.5328000000e+00 1.1413000000e+00 108961 2.4966000000e+00 1.1355000000e+00 108962 2.4609000000e+00 1.1293000000e+00 108963 2.4254000000e+00 1.1226000000e+00 108964 2.3990000000e+00 1.1508000000e+00 108965 2.3636000000e+00 1.1439000000e+00 108966 2.3280000000e+00 1.1371000000e+00 108967 2.2918000000e+00 1.1304000000e+00 108968 2.2546000000e+00 1.1236000000e+00 108969 2.2145000000e+00 1.1155000000e+00 108970 2.1907000000e+00 1.0924000000e+00 108971 2.1572000000e+00 1.0870000000e+00 108972 2.1189000000e+00 1.0967000000e+00 108973 2.0834000000e+00 1.1014000000e+00 108974 2.0672000000e+00 1.1347000000e+00 108975 2.0313000000e+00 1.1400000000e+00 108976 2.0100000000e+00 1.1115000000e+00 108977 1.9732000000e+00 1.1186000000e+00 108978 1.9495000000e+00 1.0908000000e+00 108979 1.9112000000e+00 1.0994000000e+00 108980 1.8735000000e+00 1.1119000000e+00 108981 1.8427000000e+00 1.0900000000e+00 108982 1.8088000000e+00 1.1066000000e+00 108983 1.8119000000e+00 1.0711000000e+00 108984 1.7827000000e+00 1.0514000000e+00 108985 1.7534000000e+00 1.0289000000e+00 108986 1.7125000000e+00 1.0440000000e+00 108987 1.6763000000e+00 1.0409000000e+00 108988 1.6482000000e+00 1.0212000000e+00 108989 1.6260000000e+00 1.0457000000e+00 108990 1.6089000000e+00 1.0217000000e+00 108991 1.6253000000e+00 9.8856000000e-01 108992 1.5876000000e+00 9.9167000000e-01 108993 1.5507000000e+00 9.9296000000e-01 108994 1.5296000000e+00 9.6216000000e-01 108995 1.5054000000e+00 9.2703000000e-01 108996 1.4746000000e+00 9.0734000000e-01 108997 1.4417000000e+00 9.0889000000e-01 108998 1.4003000000e+00 9.1175000000e-01 108999 1.3687000000e+00 8.9772000000e-01 109000 1.3560000000e+00 8.6869000000e-01 109001 1.3186000000e+00 8.6570000000e-01 109002 1.2797000000e+00 8.6512000000e-01 109003 1.2990000000e+00 8.3151000000e-01 109004 1.3144000000e+00 7.9498000000e-01 109005 1.3521000000e+00 7.8624000000e-01 109006 1.3630000000e+00 7.5049000000e-01 109007 1.3868000000e+00 7.7592000000e-01 109008 1.3793000000e+00 8.0976000000e-01 109009 1.4064000000e+00 7.9778000000e-01 109010 1.4199000000e+00 7.7188000000e-01 109011 1.4000000000e+00 7.3917000000e-01 109012 1.3714000000e+00 7.2079000000e-01 109013 1.4339000000e+00 7.4470000000e-01 109014 1.4541000000e+00 7.6823000000e-01 109015 1.4888000000e+00 7.6147000000e-01 109016 1.5184000000e+00 7.5726000000e-01 109017 1.5479000000e+00 7.7215000000e-01 109018 1.5859000000e+00 7.7287000000e-01 109019 1.6063000000e+00 7.4586000000e-01 109020 1.6267000000e+00 7.1971000000e-01 109021 1.6593000000e+00 7.2188000000e-01 109022 1.6942000000e+00 7.2337000000e-01 109023 1.7143000000e+00 6.9164000000e-01 109024 1.7317000000e+00 6.5779000000e-01 109025 1.7463000000e+00 6.2402000000e-01 109026 1.7798000000e+00 6.1994000000e-01 109027 1.7674000000e+00 6.5217000000e-01 109028 1.7998000000e+00 6.4423000000e-01 109029 1.8081000000e+00 6.1676000000e-01 109030 1.7958000000e+00 5.9050000000e-01 109031 1.8342000000e+00 5.9501000000e-01 109032 1.8733000000e+00 5.8476000000e-01 109033 1.8865000000e+00 5.5094000000e-01 109034 1.9063000000e+00 5.7816000000e-01 109035 1.9211000000e+00 5.4732000000e-01 109036 1.9392000000e+00 5.7615000000e-01 109037 1.9228000000e+00 6.0518000000e-01 109038 1.9559000000e+00 6.0571000000e-01 109039 1.9734000000e+00 5.7518000000e-01 109040 1.9556000000e+00 5.4540000000e-01 109041 1.9374000000e+00 5.1547000000e-01 109042 1.9017000000e+00 5.1786000000e-01 109043 1.9184000000e+00 4.8426000000e-01 109044 1.9383000000e+00 4.4783000000e-01 109045 1.9108000000e+00 4.1758000000e-01 109046 1.9459000000e+00 4.1006000000e-01 109047 1.9234000000e+00 3.8291000000e-01 109048 1.8871000000e+00 3.8835000000e-01 109049 1.9580000000e+00 3.7767000000e-01 109050 1.9709000000e+00 3.4528000000e-01 109051 1.9923000000e+00 3.7335000000e-01 109052 2.0128000000e+00 4.0318000000e-01 109053 1.9784000000e+00 4.0439000000e-01 109054 1.9952000000e+00 4.3212000000e-01 109055 1.9665000000e+00 4.3009000000e-01 109056 1.9745000000e+00 4.5615000000e-01 109057 2.0033000000e+00 4.5877000000e-01 109058 2.0356000000e+00 4.4025000000e-01 109059 1.9890000000e+00 4.8445000000e-01 109060 1.9723000000e+00 5.1432000000e-01 109061 1.9902000000e+00 5.4405000000e-01 109062 2.0083000000e+00 5.7405000000e-01 109063 2.0433000000e+00 5.7231000000e-01 109064 2.0779000000e+00 5.7018000000e-01 109065 2.1113000000e+00 5.6824000000e-01 109066 2.1274000000e+00 5.3957000000e-01 109067 2.1604000000e+00 5.4070000000e-01 109068 2.1940000000e+00 5.4336000000e-01 109069 2.2072000000e+00 5.7493000000e-01 109070 2.2428000000e+00 5.8108000000e-01 109071 2.2845000000e+00 5.8926000000e-01 109072 2.3126000000e+00 6.1213000000e-01 109073 2.3479000000e+00 6.1646000000e-01 109074 2.3857000000e+00 6.0686000000e-01 109075 2.4203000000e+00 6.0262000000e-01 109076 2.4501000000e+00 5.9652000000e-01 109077 2.4835000000e+00 6.0490000000e-01 109078 2.5155000000e+00 5.9376000000e-01 109079 2.5441000000e+00 5.9955000000e-01 109080 2.5551000000e+00 6.3303000000e-01 109081 2.5929000000e+00 6.3819000000e-01 109082 2.6319000000e+00 6.4224000000e-01 109083 2.6712000000e+00 6.4275000000e-01 109084 2.7087000000e+00 6.4075000000e-01 109085 2.6923000000e+00 6.7317000000e-01 109086 2.7279000000e+00 6.7049000000e-01 109087 2.7124000000e+00 7.0137000000e-01 109088 2.7465000000e+00 6.9922000000e-01 109089 2.7310000000e+00 7.2890000000e-01 109090 2.7642000000e+00 7.2738000000e-01 109091 2.7804000000e+00 6.9822000000e-01 109092 2.7628000000e+00 6.6915000000e-01 109093 2.7447000000e+00 6.3948000000e-01 109094 1.1194000000e+00 1.1849000000e+00 109095 2.7485000000e+00 7.5621000000e-01 109096 2.7814000000e+00 7.5519000000e-01 109097 2.7973000000e+00 7.2674000000e-01 109098 2.8142000000e+00 6.9829000000e-01 109099 2.7974000000e+00 6.6875000000e-01 109100 2.7800000000e+00 6.3889000000e-01 109101 2.8151000000e+00 6.3893000000e-01 109102 2.8503000000e+00 6.3950000000e-01 109103 2.8856000000e+00 6.4038000000e-01 109104 2.9206000000e+00 6.4161000000e-01 109105 2.9420000000e+00 6.1216000000e-01 109106 2.9607000000e+00 5.8025000000e-01 109107 2.9918000000e+00 5.7693000000e-01 109108 2.9557000000e+00 6.4661000000e-01 109109 2.9330000000e+00 6.6911000000e-01 109110 2.9255000000e+00 7.0354000000e-01 109111 2.9356000000e+00 7.4297000000e-01 109112 2.9442000000e+00 7.7123000000e-01 109113 2.9362000000e+00 7.9928000000e-01 109114 2.9305000000e+00 8.3421000000e-01 109115 2.9273000000e+00 8.6961000000e-01 109116 2.9236000000e+00 9.0411000000e-01 109117 2.9201000000e+00 9.3936000000e-01 109118 2.9151000000e+00 9.7601000000e-01 109119 2.9074000000e+00 1.0068000000e+00 109120 2.8808000000e+00 1.0309000000e+00 109121 2.8691000000e+00 1.0722000000e+00 109122 2.8597000000e+00 1.1033000000e+00 109123 2.8339000000e+00 1.1217000000e+00 109124 2.8009000000e+00 1.1061000000e+00 109125 2.7658000000e+00 1.0918000000e+00 109126 2.7348000000e+00 1.1167000000e+00 109127 2.6984000000e+00 1.1063000000e+00 109128 2.6619000000e+00 1.0980000000e+00 109129 2.6339000000e+00 1.1256000000e+00 109130 2.5966000000e+00 1.1171000000e+00 109131 2.5588000000e+00 1.1110000000e+00 109132 2.5221000000e+00 1.1066000000e+00 109133 2.4867000000e+00 1.1010000000e+00 109134 2.4516000000e+00 1.0946000000e+00 109135 2.4163000000e+00 1.0877000000e+00 109136 2.3900000000e+00 1.1157000000e+00 109137 2.3544000000e+00 1.1087000000e+00 109138 2.3185000000e+00 1.1017000000e+00 109139 2.2821000000e+00 1.0944000000e+00 109140 2.2454000000e+00 1.0869000000e+00 109141 2.2151000000e+00 1.0805000000e+00 109142 2.1913000000e+00 1.0583000000e+00 109143 2.1546000000e+00 1.0483000000e+00 109144 2.1304000000e+00 1.0681000000e+00 109145 2.1002000000e+00 1.0691000000e+00 109146 2.0640000000e+00 1.0716000000e+00 109147 2.0469000000e+00 1.1059000000e+00 109148 2.0257000000e+00 1.0757000000e+00 109149 1.9873000000e+00 1.0824000000e+00 109150 1.9635000000e+00 1.0550000000e+00 109151 1.9255000000e+00 1.0617000000e+00 109152 1.8812000000e+00 1.0681000000e+00 109153 1.8430000000e+00 1.0536000000e+00 109154 1.8145000000e+00 1.0374000000e+00 109155 1.7887000000e+00 1.0164000000e+00 109156 1.7627000000e+00 9.9186000000e-01 109157 1.7253000000e+00 1.0025000000e+00 109158 1.6873000000e+00 1.0111000000e+00 109159 1.6624000000e+00 9.8311000000e-01 109160 1.6400000000e+00 9.5522000000e-01 109161 1.6047000000e+00 9.5824000000e-01 109162 1.6218000000e+00 9.2618000000e-01 109163 1.5857000000e+00 9.2745000000e-01 109164 1.5677000000e+00 9.6015000000e-01 109165 1.5480000000e+00 9.2818000000e-01 109166 1.5678000000e+00 8.9604000000e-01 109167 1.5318000000e+00 8.9601000000e-01 109168 1.4988000000e+00 8.8803000000e-01 109169 1.4626000000e+00 8.7347000000e-01 109170 1.4225000000e+00 8.7810000000e-01 109171 1.3891000000e+00 8.7567000000e-01 109172 1.3802000000e+00 8.4378000000e-01 109173 1.3428000000e+00 8.2871000000e-01 109174 1.4076000000e+00 8.2590000000e-01 109175 1.4067000000e+00 8.5370000000e-01 109176 1.4345000000e+00 8.4484000000e-01 109177 1.4384000000e+00 8.0526000000e-01 109178 1.4777000000e+00 7.9564000000e-01 109179 1.4690000000e+00 8.3234000000e-01 109180 1.5037000000e+00 8.2020000000e-01 109181 1.5123000000e+00 7.8611000000e-01 109182 1.5374000000e+00 8.0977000000e-01 109183 1.5284000000e+00 8.4268000000e-01 109184 1.4973000000e+00 8.5444000000e-01 109185 1.5212000000e+00 8.6965000000e-01 109186 1.5496000000e+00 8.6689000000e-01 109187 1.5612000000e+00 8.3492000000e-01 109188 1.5709000000e+00 8.0234000000e-01 109189 1.5993000000e+00 7.9833000000e-01 109190 1.6184000000e+00 7.7717000000e-01 109191 1.6394000000e+00 7.5008000000e-01 109192 1.6736000000e+00 7.5326000000e-01 109193 1.6521000000e+00 7.8244000000e-01 109194 1.6874000000e+00 7.8562000000e-01 109195 1.7091000000e+00 7.5606000000e-01 109196 1.7311000000e+00 7.2520000000e-01 109197 1.7558000000e+00 6.9104000000e-01 109198 1.7910000000e+00 6.7598000000e-01 109199 1.8218000000e+00 6.6638000000e-01 109200 1.8140000000e+00 6.9697000000e-01 109201 1.8428000000e+00 6.8834000000e-01 109202 1.8524000000e+00 6.5860000000e-01 109203 1.8307000000e+00 6.3413000000e-01 109204 1.8675000000e+00 6.2377000000e-01 109205 1.8947000000e+00 6.0467000000e-01 109206 1.9037000000e+00 6.3149000000e-01 109207 1.9370000000e+00 6.3489000000e-01 109208 1.9721000000e+00 6.3710000000e-01 109209 1.9910000000e+00 6.0576000000e-01 109210 1.9550000000e+00 4.8373000000e-01 109211 2.0270000000e+00 6.0451000000e-01 109212 2.0625000000e+00 6.0166000000e-01 109213 2.0967000000e+00 5.9808000000e-01 109214 2.1289000000e+00 5.9442000000e-01 109215 2.1430000000e+00 5.6735000000e-01 109216 2.1741000000e+00 5.7032000000e-01 109217 2.1841000000e+00 6.0472000000e-01 109218 2.2190000000e+00 6.0324000000e-01 109219 2.2507000000e+00 6.2155000000e-01 109220 2.2878000000e+00 6.2511000000e-01 109221 2.3162000000e+00 6.4695000000e-01 109222 2.3548000000e+00 6.5297000000e-01 109223 2.3762000000e+00 6.3393000000e-01 109224 2.3864000000e+00 6.6016000000e-01 109225 2.4061000000e+00 6.3335000000e-01 109226 2.4467000000e+00 6.3155000000e-01 109227 2.4877000000e+00 6.4672000000e-01 109228 2.5189000000e+00 6.2374000000e-01 109229 2.5272000000e+00 6.6466000000e-01 109230 2.5688000000e+00 6.6789000000e-01 109231 2.6077000000e+00 6.7414000000e-01 109232 2.6517000000e+00 6.8132000000e-01 109233 2.6817000000e+00 7.0250000000e-01 109234 2.6947000000e+00 7.3412000000e-01 109235 2.7197000000e+00 7.5533000000e-01 109236 2.7287000000e+00 7.8694000000e-01 109237 2.7659000000e+00 7.8372000000e-01 109238 2.7987000000e+00 7.8298000000e-01 109239 2.8137000000e+00 7.5433000000e-01 109240 2.8297000000e+00 7.2724000000e-01 109241 2.8484000000e+00 6.9978000000e-01 109242 2.8321000000e+00 6.6923000000e-01 109243 2.8672000000e+00 6.7034000000e-01 109244 2.9027000000e+00 6.7116000000e-01 109245 2.8842000000e+00 7.0221000000e-01 109246 2.8919000000e+00 9.1756000000e-01 109247 2.8862000000e+00 9.5291000000e-01 109248 2.8809000000e+00 9.8969000000e-01 109249 2.8452000000e+00 1.0060000000e+00 109250 2.8390000000e+00 1.0467000000e+00 109251 2.8335000000e+00 1.0856000000e+00 109252 2.7978000000e+00 1.0638000000e+00 109253 2.7620000000e+00 1.0595000000e+00 109254 2.7287000000e+00 1.0749000000e+00 109255 2.6890000000e+00 1.0711000000e+00 109256 2.6544000000e+00 1.0625000000e+00 109257 2.6254000000e+00 1.0884000000e+00 109258 2.5855000000e+00 1.0764000000e+00 109259 2.5460000000e+00 1.0778000000e+00 109260 2.5116000000e+00 1.0732000000e+00 109261 2.4772000000e+00 1.0670000000e+00 109262 2.4425000000e+00 1.0601000000e+00 109263 2.4074000000e+00 1.0529000000e+00 109264 2.3810000000e+00 1.0806000000e+00 109265 2.3454000000e+00 1.0734000000e+00 109266 2.3094000000e+00 1.0660000000e+00 109267 2.2728000000e+00 1.0581000000e+00 109268 2.2333000000e+00 1.0491000000e+00 109269 2.2085000000e+00 1.0274000000e+00 109270 2.1798000000e+00 1.0232000000e+00 109271 2.1477000000e+00 1.0139000000e+00 109272 2.1210000000e+00 1.0393000000e+00 109273 2.0838000000e+00 1.0372000000e+00 109274 2.0440000000e+00 1.0399000000e+00 109275 2.0019000000e+00 1.0425000000e+00 109276 1.9736000000e+00 1.0255000000e+00 109277 1.9429000000e+00 1.0268000000e+00 109278 1.9047000000e+00 1.0300000000e+00 109279 1.8679000000e+00 1.0294000000e+00 109280 1.8398000000e+00 1.0255000000e+00 109281 1.8210000000e+00 1.0063000000e+00 109282 1.7981000000e+00 9.8234000000e-01 109283 1.7739000000e+00 9.5591000000e-01 109284 1.7367000000e+00 9.6473000000e-01 109285 1.6993000000e+00 9.7437000000e-01 109286 1.6740000000e+00 9.4803000000e-01 109287 1.6520000000e+00 9.2696000000e-01 109288 1.6438000000e+00 8.9332000000e-01 109289 1.6044000000e+00 8.9567000000e-01 109290 1.5874000000e+00 8.6180000000e-01 109291 1.5936000000e+00 8.2582000000e-01 109292 1.6275000000e+00 8.1329000000e-01 109293 1.6662000000e+00 8.1507000000e-01 109294 1.7007000000e+00 8.1750000000e-01 109295 1.7227000000e+00 7.8919000000e-01 109296 1.7452000000e+00 7.5955000000e-01 109297 1.7585000000e+00 7.9355000000e-01 109298 1.7818000000e+00 7.6375000000e-01 109299 1.7944000000e+00 7.9859000000e-01 109300 1.8182000000e+00 7.6961000000e-01 109301 1.8066000000e+00 7.3165000000e-01 109302 1.7680000000e+00 7.2939000000e-01 109303 1.7871000000e+00 7.0502000000e-01 109304 1.8344000000e+00 7.1436000000e-01 109305 1.8660000000e+00 7.1244000000e-01 109306 1.8678000000e+00 6.8119000000e-01 109307 1.8836000000e+00 6.5775000000e-01 109308 1.9162000000e+00 6.6265000000e-01 109309 1.9510000000e+00 6.6720000000e-01 109310 1.9884000000e+00 6.7101000000e-01 109311 1.9642000000e+00 7.0175000000e-01 109312 2.0021000000e+00 7.0728000000e-01 109313 2.0311000000e+00 6.7463000000e-01 109314 2.0095000000e+00 6.3804000000e-01 109315 2.0471000000e+00 6.3523000000e-01 109316 2.0828000000e+00 6.2971000000e-01 109317 2.0698000000e+00 6.6283000000e-01 109318 2.1042000000e+00 6.5620000000e-01 109319 2.1167000000e+00 6.2431000000e-01 109320 2.1495000000e+00 6.1769000000e-01 109321 2.1559000000e+00 5.9089000000e-01 109322 2.1732000000e+00 6.4208000000e-01 109323 2.2100000000e+00 6.3401000000e-01 109324 2.2356000000e+00 6.6252000000e-01 109325 2.2750000000e+00 6.5580000000e-01 109326 2.2993000000e+00 6.8538000000e-01 109327 2.3359000000e+00 6.8100000000e-01 109328 2.3658000000e+00 6.7952000000e-01 109329 2.3945000000e+00 6.9618000000e-01 109330 2.4209000000e+00 6.6521000000e-01 109331 2.4579000000e+00 6.7173000000e-01 109332 2.4918000000e+00 6.8393000000e-01 109333 2.5194000000e+00 7.0344000000e-01 109334 2.5488000000e+00 6.9409000000e-01 109335 2.5807000000e+00 7.0343000000e-01 109336 2.6198000000e+00 7.1197000000e-01 109337 2.6572000000e+00 7.2269000000e-01 109338 2.6651000000e+00 7.5757000000e-01 109339 2.6956000000e+00 7.7068000000e-01 109340 2.6943000000e+00 8.0392000000e-01 109341 2.7220000000e+00 8.2463000000e-01 109342 2.7547000000e+00 8.1436000000e-01 109343 2.7831000000e+00 8.0687000000e-01 109344 2.8152000000e+00 8.1686000000e-01 109345 2.8330000000e+00 7.8114000000e-01 109346 2.8422000000e+00 7.5292000000e-01 109347 2.8626000000e+00 7.3159000000e-01 109348 2.8990000000e+00 7.3707000000e-01 109349 2.8720000000e+00 7.7052000000e-01 109350 2.9141000000e+00 7.7180000000e-01 109351 2.8973000000e+00 8.0995000000e-01 109352 2.8991000000e+00 8.4941000000e-01 109353 2.8963000000e+00 8.8351000000e-01 109354 2.8659000000e+00 8.9643000000e-01 109355 2.8587000000e+00 9.2930000000e-01 109356 2.8504000000e+00 9.6584000000e-01 109357 2.8125000000e+00 9.8106000000e-01 109358 2.8072000000e+00 1.0219000000e+00 109359 2.7761000000e+00 1.0352000000e+00 109360 2.7413000000e+00 1.0323000000e+00 109361 2.7094000000e+00 1.0467000000e+00 109362 2.6808000000e+00 1.0384000000e+00 109363 2.6489000000e+00 1.0279000000e+00 109364 2.6200000000e+00 1.0513000000e+00 109365 2.5884000000e+00 1.0370000000e+00 109366 2.5628000000e+00 1.0524000000e+00 109367 2.5349000000e+00 1.0471000000e+00 109368 2.5023000000e+00 1.0402000000e+00 109369 2.4683000000e+00 1.0329000000e+00 109370 2.4337000000e+00 1.0255000000e+00 109371 2.3988000000e+00 1.0180000000e+00 109372 2.3722000000e+00 1.0455000000e+00 109373 2.3367000000e+00 1.0380000000e+00 109374 2.3010000000e+00 1.0303000000e+00 109375 2.2657000000e+00 1.0220000000e+00 109376 2.2341000000e+00 1.0108000000e+00 109377 2.2040000000e+00 9.9539000000e-01 109378 2.2329000000e+00 9.8271000000e-01 109379 2.2168000000e+00 9.6083000000e-01 109380 2.1831000000e+00 9.6714000000e-01 109381 2.1726000000e+00 9.9557000000e-01 109382 2.1486000000e+00 9.7812000000e-01 109383 2.1093000000e+00 9.9879000000e-01 109384 2.0639000000e+00 1.0040000000e+00 109385 2.0249000000e+00 1.0084000000e+00 109386 1.9941000000e+00 1.0100000000e+00 109387 2.0041000000e+00 9.8031000000e-01 109388 1.9658000000e+00 9.9284000000e-01 109389 1.9240000000e+00 9.9533000000e-01 109390 1.8865000000e+00 9.9824000000e-01 109391 1.8524000000e+00 1.0006000000e+00 109392 1.8667000000e+00 9.6925000000e-01 109393 1.8322000000e+00 9.7482000000e-01 109394 1.8099000000e+00 9.4842000000e-01 109395 1.7870000000e+00 9.2084000000e-01 109396 1.7489000000e+00 9.2695000000e-01 109397 1.7099000000e+00 9.3646000000e-01 109398 1.6802000000e+00 9.1183000000e-01 109399 1.6808000000e+00 8.7336000000e-01 109400 1.6478000000e+00 8.4996000000e-01 109401 1.6197000000e+00 8.6899000000e-01 109402 1.6152000000e+00 8.4401000000e-01 109403 1.6813000000e+00 8.4139000000e-01 109404 1.7112000000e+00 8.5085000000e-01 109405 1.7354000000e+00 8.2267000000e-01 109406 1.7712000000e+00 8.2736000000e-01 109407 1.7480000000e+00 8.5734000000e-01 109408 1.7844000000e+00 8.5946000000e-01 109409 1.8063000000e+00 8.3227000000e-01 109410 1.8301000000e+00 8.0478000000e-01 109411 1.8534000000e+00 7.7637000000e-01 109412 1.8427000000e+00 7.4231000000e-01 109413 1.8774000000e+00 7.4926000000e-01 109414 1.9029000000e+00 7.2272000000e-01 109415 1.9125000000e+00 7.5862000000e-01 109416 1.9392000000e+00 7.3138000000e-01 109417 1.9280000000e+00 6.9576000000e-01 109418 1.8941000000e+00 6.8877000000e-01 109419 1.9766000000e+00 7.3779000000e-01 109420 2.0134000000e+00 7.4324000000e-01 109421 1.9898000000e+00 7.7149000000e-01 109422 2.0239000000e+00 7.7718000000e-01 109423 2.0488000000e+00 7.5043000000e-01 109424 2.0390000000e+00 7.1521000000e-01 109425 2.0618000000e+00 6.9279000000e-01 109426 2.0918000000e+00 6.8841000000e-01 109427 2.1255000000e+00 6.8221000000e-01 109428 2.1383000000e+00 6.4979000000e-01 109429 2.1603000000e+00 6.7631000000e-01 109430 2.1970000000e+00 6.7002000000e-01 109431 2.2206000000e+00 7.0041000000e-01 109432 2.2605000000e+00 6.9347000000e-01 109433 2.2858000000e+00 7.2134000000e-01 109434 2.3220000000e+00 7.1389000000e-01 109435 2.3572000000e+00 7.0751000000e-01 109436 2.3804000000e+00 7.3392000000e-01 109437 2.4168000000e+00 7.2871000000e-01 109438 2.4339000000e+00 6.9854000000e-01 109439 2.4661000000e+00 7.0469000000e-01 109440 2.4467000000e+00 7.2498000000e-01 109441 2.4744000000e+00 7.3664000000e-01 109442 2.4920000000e+00 7.1258000000e-01 109443 2.5083000000e+00 7.3445000000e-01 109444 2.4937000000e+00 7.5800000000e-01 109445 2.5222000000e+00 7.6510000000e-01 109446 2.5478000000e+00 7.3121000000e-01 109447 2.5913000000e+00 7.4151000000e-01 109448 2.6301000000e+00 7.4890000000e-01 109449 2.6415000000e+00 7.8281000000e-01 109450 2.6709000000e+00 7.8643000000e-01 109451 2.6580000000e+00 8.1738000000e-01 109452 2.6905000000e+00 8.3772000000e-01 109453 2.7162000000e+00 8.5746000000e-01 109454 2.7476000000e+00 8.4759000000e-01 109455 2.7807000000e+00 8.3666000000e-01 109456 2.8106000000e+00 8.5774000000e-01 109457 2.8441000000e+00 8.4343000000e-01 109458 2.8558000000e+00 8.0948000000e-01 109459 2.8732000000e+00 8.3525000000e-01 109460 2.8698000000e+00 8.6418000000e-01 109461 2.8399000000e+00 8.7735000000e-01 109462 2.8388000000e+00 9.0697000000e-01 109463 2.8188000000e+00 9.3640000000e-01 109464 2.7810000000e+00 9.5764000000e-01 109465 2.7720000000e+00 9.9890000000e-01 109466 2.7332000000e+00 9.9404000000e-01 109467 2.7070000000e+00 1.0168000000e+00 109468 2.6757000000e+00 1.0058000000e+00 109469 2.6449000000e+00 9.9397000000e-01 109470 2.6170000000e+00 1.0156000000e+00 109471 2.5856000000e+00 1.0027000000e+00 109472 2.5589000000e+00 1.0241000000e+00 109473 2.5274000000e+00 1.0149000000e+00 109474 2.4941000000e+00 1.0064000000e+00 109475 2.4597000000e+00 9.9855000000e-01 109476 2.4251000000e+00 9.9095000000e-01 109477 2.3903000000e+00 9.8307000000e-01 109478 2.3636000000e+00 1.0103000000e+00 109479 2.3281000000e+00 1.0025000000e+00 109480 2.2930000000e+00 9.9517000000e-01 109481 2.2598000000e+00 9.8832000000e-01 109482 2.2496000000e+00 9.5820000000e-01 109483 2.2339000000e+00 9.2879000000e-01 109484 2.1972000000e+00 9.3274000000e-01 109485 2.1589000000e+00 9.4011000000e-01 109486 2.1197000000e+00 9.5305000000e-01 109487 2.0803000000e+00 9.6579000000e-01 109488 2.0412000000e+00 9.7347000000e-01 109489 2.0184000000e+00 9.4453000000e-01 109490 1.9803000000e+00 9.5228000000e-01 109491 1.9413000000e+00 9.5932000000e-01 109492 1.9030000000e+00 9.6443000000e-01 109493 1.8810000000e+00 9.3529000000e-01 109494 1.8452000000e+00 9.4169000000e-01 109495 1.8228000000e+00 9.1459000000e-01 109496 1.8014000000e+00 8.8794000000e-01 109497 1.7651000000e+00 8.9090000000e-01 109498 1.7206000000e+00 8.9257000000e-01 109499 1.8141000000e+00 8.6067000000e-01 109500 1.8434000000e+00 8.4252000000e-01 109501 1.8650000000e+00 8.0912000000e-01 109502 1.8867000000e+00 7.8293000000e-01 109503 1.9178000000e+00 7.9375000000e-01 109504 1.9509000000e+00 7.7152000000e-01 109505 1.9730000000e+00 7.9639000000e-01 109506 2.0007000000e+00 8.0268000000e-01 109507 2.0329000000e+00 8.1048000000e-01 109508 2.0575000000e+00 7.8465000000e-01 109509 2.0665000000e+00 8.1836000000e-01 109510 2.0909000000e+00 7.9201000000e-01 109511 2.0817000000e+00 7.5937000000e-01 109512 2.0769000000e+00 7.2286000000e-01 109513 2.1124000000e+00 7.1362000000e-01 109514 2.1460000000e+00 7.0896000000e-01 109515 2.1310000000e+00 7.3909000000e-01 109516 2.1650000000e+00 7.3766000000e-01 109517 2.1819000000e+00 7.0491000000e-01 109518 2.1130000000e+00 7.6602000000e-01 109519 2.1030000000e+00 7.4019000000e-01 109520 2.1462000000e+00 7.6814000000e-01 109521 2.1251000000e+00 7.9735000000e-01 109522 2.1610000000e+00 7.9998000000e-01 109523 2.1820000000e+00 7.6878000000e-01 109524 2.2025000000e+00 7.3617000000e-01 109525 2.2461000000e+00 7.3554000000e-01 109526 2.2781000000e+00 7.5248000000e-01 109527 2.3091000000e+00 7.4753000000e-01 109528 2.3443000000e+00 7.4081000000e-01 109529 2.3307000000e+00 7.7400000000e-01 109530 2.3663000000e+00 7.6825000000e-01 109531 2.4029000000e+00 7.6236000000e-01 109532 2.4420000000e+00 7.5659000000e-01 109533 2.4718000000e+00 7.6552000000e-01 109534 2.4916000000e+00 7.8857000000e-01 109535 2.5282000000e+00 8.0190000000e-01 109536 2.5635000000e+00 7.7675000000e-01 109537 2.6057000000e+00 7.7708000000e-01 109538 2.6189000000e+00 8.0977000000e-01 109539 2.6276000000e+00 8.4484000000e-01 109540 2.6621000000e+00 8.5640000000e-01 109541 2.6898000000e+00 8.6678000000e-01 109542 2.7090000000e+00 8.9238000000e-01 109543 2.7382000000e+00 8.7590000000e-01 109544 2.7732000000e+00 8.7677000000e-01 109545 2.8102000000e+00 8.9561000000e-01 109546 2.7798000000e+00 9.1870000000e-01 109547 2.7502000000e+00 9.4051000000e-01 109548 2.7524000000e+00 9.7054000000e-01 109549 2.7250000000e+00 9.6181000000e-01 109550 2.7012000000e+00 9.8413000000e-01 109551 2.6712000000e+00 9.7378000000e-01 109552 2.6425000000e+00 9.6021000000e-01 109553 2.6139000000e+00 9.8084000000e-01 109554 2.5816000000e+00 9.6785000000e-01 109555 2.5537000000e+00 9.9097000000e-01 109556 2.5204000000e+00 9.8066000000e-01 109557 2.4858000000e+00 9.7165000000e-01 109558 2.4509000000e+00 9.6409000000e-01 109559 2.4167000000e+00 9.5671000000e-01 109560 2.3825000000e+00 9.4796000000e-01 109561 2.3552000000e+00 9.7477000000e-01 109562 2.3193000000e+00 9.6694000000e-01 109563 2.2836000000e+00 9.6106000000e-01 109564 2.2706000000e+00 9.2757000000e-01 109565 2.2535000000e+00 8.9581000000e-01 109566 2.2154000000e+00 8.9765000000e-01 109567 2.1752000000e+00 9.0189000000e-01 109568 2.1296000000e+00 9.0765000000e-01 109569 2.0916000000e+00 9.2767000000e-01 109570 2.0556000000e+00 9.3754000000e-01 109571 2.0336000000e+00 9.0883000000e-01 109572 1.9954000000e+00 9.1444000000e-01 109573 1.9566000000e+00 9.2191000000e-01 109574 1.9182000000e+00 9.2879000000e-01 109575 1.8946000000e+00 8.9981000000e-01 109576 1.8582000000e+00 9.0743000000e-01 109577 1.8350000000e+00 8.8091000000e-01 109578 1.8702000000e+00 8.7199000000e-01 109579 1.8827000000e+00 8.3758000000e-01 109580 1.8937000000e+00 8.1030000000e-01 109581 1.9161000000e+00 8.2791000000e-01 109582 1.9471000000e+00 8.1101000000e-01 109583 1.9766000000e+00 8.2513000000e-01 109584 2.0078000000e+00 8.3524000000e-01 109585 2.0411000000e+00 8.4464000000e-01 109586 2.0754000000e+00 8.5203000000e-01 109587 2.1012000000e+00 8.2625000000e-01 109588 2.1382000000e+00 8.3169000000e-01 109589 2.1768000000e+00 8.3296000000e-01 109590 2.1976000000e+00 8.0099000000e-01 109591 2.2194000000e+00 7.6984000000e-01 109592 2.2557000000e+00 7.7523000000e-01 109593 2.2934000000e+00 7.8292000000e-01 109594 2.3199000000e+00 8.0278000000e-01 109595 2.3511000000e+00 8.0198000000e-01 109596 2.3880000000e+00 7.9674000000e-01 109597 2.4239000000e+00 7.9022000000e-01 109598 2.4570000000e+00 7.8805000000e-01 109599 2.4699000000e+00 8.1221000000e-01 109600 2.4977000000e+00 8.2961000000e-01 109601 2.5331000000e+00 8.3394000000e-01 109602 2.5608000000e+00 8.1775000000e-01 109603 2.5883000000e+00 8.0298000000e-01 109604 2.5923000000e+00 8.3378000000e-01 109605 2.5985000000e+00 8.7018000000e-01 109606 2.6352000000e+00 8.8181000000e-01 109607 2.6711000000e+00 8.9016000000e-01 109608 2.6844000000e+00 9.2201000000e-01 109609 2.7181000000e+00 9.2913000000e-01 109610 2.7448000000e+00 9.0552000000e-01 109611 2.6947000000e+00 9.5278000000e-01 109612 2.6677000000e+00 9.4607000000e-01 109613 2.6455000000e+00 9.2181000000e-01 109614 2.6111000000e+00 9.4502000000e-01 109615 2.5766000000e+00 9.3195000000e-01 109616 2.5480000000e+00 9.5589000000e-01 109617 2.5130000000e+00 9.4445000000e-01 109618 2.4766000000e+00 9.3600000000e-01 109619 2.4415000000e+00 9.3096000000e-01 109620 2.4094000000e+00 9.2351000000e-01 109621 2.3765000000e+00 9.1190000000e-01 109622 2.3469000000e+00 9.3803000000e-01 109623 2.3089000000e+00 9.3024000000e-01 109624 2.2941000000e+00 8.9141000000e-01 109625 2.2697000000e+00 8.6842000000e-01 109626 2.2370000000e+00 8.6116000000e-01 109627 2.1954000000e+00 8.6553000000e-01 109628 2.1544000000e+00 8.6762000000e-01 109629 2.1108000000e+00 8.6599000000e-01 109630 2.0962000000e+00 8.9712000000e-01 109631 2.0683000000e+00 9.0469000000e-01 109632 2.0519000000e+00 8.7734000000e-01 109633 2.0121000000e+00 8.7421000000e-01 109634 1.9713000000e+00 8.8463000000e-01 109635 1.9327000000e+00 8.9167000000e-01 109636 1.9074000000e+00 8.6340000000e-01 109637 1.9478000000e+00 8.5116000000e-01 109638 1.9831000000e+00 8.5411000000e-01 109639 2.0805000000e+00 8.7946000000e-01 109640 2.2137000000e+00 8.3197000000e-01 109641 2.2324000000e+00 8.0249000000e-01 109642 2.2646000000e+00 8.0829000000e-01 109643 2.2952000000e+00 8.2041000000e-01 109644 2.3291000000e+00 8.3483000000e-01 109645 2.3725000000e+00 8.3554000000e-01 109646 2.4109000000e+00 8.2242000000e-01 109647 2.4425000000e+00 8.1551000000e-01 109648 2.4607000000e+00 8.3958000000e-01 109649 2.4810000000e+00 8.6813000000e-01 109650 2.5192000000e+00 8.6327000000e-01 109651 2.5591000000e+00 8.5745000000e-01 109652 2.5704000000e+00 8.9576000000e-01 109653 2.6063000000e+00 9.0771000000e-01 109654 2.5421000000e+00 9.1977000000e-01 109655 2.5049000000e+00 9.0303000000e-01 109656 2.4628000000e+00 9.0214000000e-01 109657 2.4322000000e+00 9.0361000000e-01 109658 2.4066000000e+00 8.9023000000e-01 109659 2.3746000000e+00 8.7531000000e-01 109660 2.3385000000e+00 8.9660000000e-01 109661 2.3211000000e+00 8.6767000000e-01 109662 2.2962000000e+00 8.5377000000e-01 109663 2.2677000000e+00 8.4011000000e-01 109664 2.2431000000e+00 8.2878000000e-01 109665 2.3472000000e+00 8.6194000000e-01 109666 2.4062000000e+00 8.5593000000e-01 109667 2.4322000000e+00 8.4092000000e-01 109668 2.4403000000e+00 8.7145000000e-01 109669 2.5392000000e+00 8.8780000000e-01 109670 2.8509000000e-01 2.2002000000e-01 109671 2.5352000000e-01 2.0244000000e-01 109672 2.2306000000e-01 2.2174000000e-01 109673 2.2448000000e-01 2.5782000000e-01 109674 1.9235000000e-01 2.4049000000e-01 109675 1.9162000000e-01 2.0442000000e-01 109676 2.2146000000e-01 1.8639000000e-01 109677 1.9341000000e-01 1.7449000000e-01 109678 1.5955000000e-01 1.8108000000e-01 109679 2.1441000000e-01 1.5274000000e-01 109680 2.5275000000e-01 1.6248000000e-01 109681 2.8383000000e-01 1.8517000000e-01 109682 2.8580000000e-01 1.5609000000e-01 109683 2.3730000000e-01 1.2529000000e-01 109684 2.2320000000e-01 9.1552000000e-02 109685 3.1206000000e-01 1.6845000000e-01 109686 3.4083000000e-01 1.4920000000e-01 109687 3.4067000000e-01 1.8362000000e-01 109688 3.7784000000e-01 1.3100000000e-01 109689 3.7166000000e-01 9.5340000000e-02 109690 4.0273000000e-01 9.9837000000e-02 109691 3.1383000000e-01 2.0151000000e-01 109692 -8.5560000000e-02 1.0604000000e-01 109693 2.3130000000e-02 2.9185000000e-01 109694 -8.0099000000e-02 1.3769000000e+00 109695 -1.1214000000e-01 1.3798000000e+00 109696 -1.4041000000e-01 1.3815000000e+00 109697 -1.9622000000e-01 1.3847000000e+00 109698 -2.2407000000e-01 1.3686000000e+00 109699 -1.9844000000e-01 1.3564000000e+00 109700 -9.9026000000e-02 1.3516000000e+00 109701 -8.7448000000e-02 1.3266000000e+00 109702 -6.8304000000e-02 1.3467000000e+00 109703 -4.5989000000e-02 1.3720000000e+00 109704 -2.3577000000e-01 6.1039000000e-02 109705 -1.5379000000e-01 7.0890000000e-02 109706 -3.1949000000e-01 8.5454000000e-02 109707 -3.5999000000e-01 1.1968000000e-01 109708 -5.3256000000e-01 2.1948000000e-01 109709 -5.0647000000e-01 1.9801000000e-01 109710 -4.8323000000e-01 1.7703000000e-01 109711 -5.6471000000e-01 2.4356000000e-01 109712 -5.6040000000e-01 2.0806000000e-01 109713 -5.7530000000e-01 1.8148000000e-01 109714 -6.1026000000e-01 1.8249000000e-01 109715 -5.9125000000e-01 2.1321000000e-01 109716 -6.0906000000e-01 2.4948000000e-01 109717 -5.8466000000e-01 2.7911000000e-01 109718 -6.1344000000e-01 2.8192000000e-01 109719 -6.3449000000e-01 2.7004000000e-01 109720 -6.2828000000e-01 1.5189000000e-01 109721 3.7750000000e-01 3.7992000000e-01 109722 3.5112000000e-01 3.9047000000e-01 109723 3.5124000000e-01 3.6167000000e-01 109724 3.2381000000e-01 3.7997000000e-01 109725 1.5992000000e-01 2.2228000000e-01 109726 1.6124000000e-01 2.5972000000e-01 109727 1.9379000000e-01 2.7694000000e-01 109728 1.6304000000e-01 2.9638000000e-01 109729 1.3002000000e-01 2.7963000000e-01 109730 9.8732000000e-02 3.0026000000e-01 109731 9.6282000000e-02 2.6260000000e-01 109732 9.5931000000e-02 2.2542000000e-01 109733 1.2646000000e-01 2.0540000000e-01 109734 1.2061000000e-01 1.6972000000e-01 109735 1.2831000000e-01 2.4252000000e-01 109736 -2.6847000000e-01 3.8782000000e-01 109737 2.9171000000e-01 1.0758000000e+00 109738 2.9363000000e-01 1.0398000000e+00 109739 -1.3560000000e+00 8.4800000000e-01 109740 -1.3257000000e+00 8.3049000000e-01 109741 -1.2953000000e+00 8.1297000000e-01 109742 -1.2954000000e+00 8.4799000000e-01 109743 -1.3257000000e+00 8.6550000000e-01 109744 -1.3560000000e+00 8.8301000000e-01 109745 1.2950000000e+00 2.1712000000e-01 109746 1.2612000000e+00 2.2190000000e-01 109747 -1.0768000000e+00 2.3556000000e-01 109748 -1.0269000000e+00 2.2539000000e-01 109749 -1.0163000000e+00 2.4570000000e-01 109750 6.7129000000e-01 2.8256000000e-01 109751 3.3910000000e+00 1.1239000000e-01 109752 -6.9069000000e-01 7.2306000000e-01 109753 -4.7426000000e-01 7.8595000000e-01 109754 -5.0869000000e-01 7.8914000000e-01 109755 -6.9220000000e-01 7.5875000000e-01 109756 -5.2243000000e-01 7.5144000000e-01 109757 -5.0565000000e-01 7.2626000000e-01 109758 -6.6259000000e-01 7.6859000000e-01 109759 -5.4641000000e-01 7.7618000000e-01 109760 -3.6051000000e-01 7.9358000000e-01 109761 6.5049000000e-01 3.0940000000e-01 109762 6.4700000000e-01 3.4449000000e-01 109763 1.0640000000e+00 1.1529000000e+00 109764 1.0507000000e+00 1.1340000000e+00 109765 1.0331000000e+00 1.1598000000e+00 109766 1.5614000000e+00 5.1401000000e-01 109767 9.7477000000e-01 1.1750000000e+00 109768 1.5269000000e-03 3.3282000000e-02 109769 -3.2863000000e-02 3.0137000000e-02 109770 -5.6096000000e-02 5.8130000000e-02 109771 -9.2488000000e-02 3.6114000000e-02 109772 -6.2614000000e-02 2.5039000000e-02 109773 -1.1715000000e-01 6.5550000000e-02 109774 -8.6987000000e-02 7.4509000000e-02 109775 9.4797000000e-01 8.1843000000e-01 109776 -9.8960000000e-01 6.7075000000e-01 109777 3.2019000000e-01 6.2285000000e-01 109778 -1.2900000000e-01 9.0912000000e-02 109779 -1.0719000000e-01 9.1278000000e-02 109780 -6.3461000000e-02 8.9868000000e-02 109781 -6.9898000000e-01 3.0367000000e-02 109782 2.6567000000e-01 6.3311000000e-01 109783 2.4266000000e-01 6.4709000000e-01 109784 9.1268000000e-01 2.5754000000e-01 109785 3.8108000000e-01 5.4707000000e-01 109786 1.0089000000e+00 2.7465000000e-01 109787 1.0282000000e+00 3.0377000000e-01 109788 1.0474000000e+00 3.3283000000e-01 109789 9.9392000000e-01 3.0612000000e-01 109790 9.0828000000e-01 1.4389000000e+00 109791 1.9397000000e+00 1.4936000000e-01 109792 6.1349000000e-01 2.9027000000e-01 109793 -5.0801000000e-01 9.4070000000e-01 109794 -4.8167000000e-01 9.2801000000e-01 109795 -1.5664000000e-01 1.2235000000e+00 109796 2.9520000000e-01 4.3706000000e-01 109797 3.2447000000e-01 4.5847000000e-01 109798 3.3201000000e-01 4.1848000000e-01 109799 2.9467000000e-01 4.0022000000e-01 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump_imbal_32.grf000066400000000000000000011676551514310134000270710ustar00rootroot000000000000000 9800 57978 0 001 1 3 413 407 6 1 4 9771 43 9772 44 2 4 76 1474 1475 77 1 3 1242 147 148 1 3 693 206 207 1 3 521 348 349 1 4 7 412 413 0 1 4 6 412 8 647 1 4 9 3238 647 7 1 4 3235 3238 8 10 1 4 11 3233 3235 9 1 4 3234 3233 10 12 1 4 3684 3234 11 13 1 4 14 418 3684 12 1 4 15 417 418 13 1 4 14 417 16 3088 1 4 17 3086 3088 15 1 4 16 3086 3087 18 1 4 3087 17 3095 19 1 4 3095 18 3096 20 1 4 21 414 3096 19 1 4 20 414 1171 22 1 4 1171 21 1172 23 1 4 1172 22 1173 24 1 4 1173 23 1526 25 1 4 1526 24 26 9781 1 4 27 3852 9781 25 1 4 28 2179 3852 26 1 4 27 2179 2180 29 1 4 2180 28 30 2503 1 4 31 2505 2503 29 1 4 2508 2505 30 32 1 4 3330 2508 33 31 1 4 3330 32 3331 34 1 4 35 2248 3331 33 1 4 34 2248 2249 36 1 4 2249 35 2250 37 1 4 38 416 2250 36 1 4 39 415 416 37 1 4 38 415 2194 40 1 4 2194 39 2195 41 1 4 2195 40 2196 42 1 3 2196 41 43 1 4 42 2196 9771 1 1 4 9769 9772 1 45 1 4 46 9768 9769 44 1 4 47 427 9768 45 1 4 48 426 427 46 1 4 47 426 49 411 1 4 50 410 411 48 1 4 49 410 51 421 1 4 50 421 422 52 1 4 422 51 4650 53 1 4 4650 52 4651 54 1 4 4657 4651 53 55 1 4 5380 4657 54 56 1 4 57 430 5380 55 1 4 56 430 429 58 1 4 59 408 429 57 1 4 58 408 2218 60 1 4 2218 59 2219 61 1 4 2219 60 2220 62 1 4 2220 61 2221 63 1 4 2221 62 2222 64 1 4 6701 2222 63 65 1 4 6701 64 6703 66 1 4 6703 65 3505 67 1 4 68 3452 3505 66 1 4 69 3451 3452 67 1 4 3441 3451 68 70 2 4 71 2491 3441 69 2 4 70 2491 2492 72 2 4 73 409 2492 71 2 4 72 409 74 428 2 4 73 428 75 1603 2 4 74 1603 1604 76 2 4 2 1474 1604 75 2 4 1475 2 1476 78 2 4 1476 77 1477 79 2 4 1477 78 1478 80 2 4 1478 79 1479 81 2 4 1479 80 1480 82 2 4 1480 81 1481 83 2 4 1481 82 1482 84 2 4 1482 83 1483 85 2 4 86 1160 1483 84 2 4 85 1160 1161 87 2 4 1161 86 1162 88 2 4 1162 87 1163 89 2 4 1163 88 1186 90 2 4 1186 89 1185 91 2 4 1185 90 1187 92 2 4 1187 91 1188 93 2 4 1188 92 1189 94 2 4 1189 93 1190 95 2 4 1190 94 1191 96 2 4 1191 95 1192 97 2 4 1192 96 1193 98 2 4 1193 97 1194 99 2 4 1194 98 1195 100 2 4 1195 99 1196 101 2 4 1196 100 1197 102 2 4 1197 101 1198 103 2 4 1198 102 1199 104 2 4 1199 103 1200 105 2 4 1200 104 1201 106 2 4 1201 105 1202 107 2 4 1202 106 1203 108 2 4 1203 107 1204 109 2 4 1204 108 1205 110 2 4 1205 109 1206 111 2 4 1206 110 1207 112 2 4 1207 111 1208 113 1 4 1208 112 1209 114 1 4 1209 113 1210 115 1 4 1210 114 1211 116 1 4 1211 115 1212 117 1 4 1212 116 1213 118 1 4 1213 117 1214 119 1 4 1214 118 1215 120 1 4 1215 119 1216 121 1 4 1216 120 1217 122 1 4 1217 121 1218 123 1 4 1218 122 1219 124 1 4 1219 123 1220 125 1 4 1220 124 1221 126 1 4 1221 125 1222 127 1 4 1222 126 1223 128 1 4 1223 127 1224 129 1 4 1224 128 1225 130 1 4 1225 129 1226 131 1 4 1226 130 1227 132 1 4 1227 131 1228 133 1 4 1228 132 1229 134 1 4 1229 133 1230 135 1 4 1230 134 1231 136 1 4 1231 135 1232 137 1 4 1232 136 1233 138 1 4 1233 137 1234 139 1 4 1234 138 1235 140 1 4 1235 139 1236 141 1 4 1236 140 1237 142 1 4 1237 141 1238 143 1 4 1238 142 1239 144 1 4 1239 143 1240 145 1 4 1240 144 1241 146 1 4 1241 145 1242 147 1 3 1242 146 3 1 4 1242 3 1243 149 1 4 1243 148 1244 150 1 4 1244 149 1245 151 1 4 1245 150 1246 152 1 4 1246 151 1247 153 1 4 1247 152 1248 154 1 4 155 923 1248 153 1 4 154 923 924 156 1 4 924 155 925 157 1 4 925 156 926 158 1 4 926 157 927 159 1 4 927 158 928 160 1 4 928 159 929 161 1 4 929 160 930 162 1 4 930 161 931 163 1 4 164 651 931 162 1 4 163 651 652 165 1 4 652 164 653 166 1 4 653 165 654 167 1 4 654 166 655 168 1 4 655 167 656 169 1 4 656 168 657 170 1 4 657 169 658 171 1 4 658 170 659 172 1 4 659 171 660 173 1 4 660 172 661 174 1 4 661 173 662 175 1 4 662 174 663 176 1 4 663 175 664 177 1 4 664 176 665 178 1 4 665 177 666 179 1 4 666 178 667 180 1 4 667 179 668 181 1 4 668 180 669 182 1 4 669 181 670 183 1 4 670 182 671 184 1 4 671 183 672 185 1 4 672 184 673 186 1 4 673 185 674 187 1 4 674 186 675 188 1 4 675 187 676 189 1 4 676 188 677 190 1 4 677 189 678 191 1 4 678 190 679 192 1 4 679 191 680 193 1 4 680 192 681 194 1 4 681 193 682 195 1 4 682 194 683 196 1 4 683 195 684 197 1 4 684 196 685 198 1 4 685 197 686 199 1 4 686 198 687 200 1 4 687 199 688 201 1 4 688 200 689 202 1 4 689 201 690 203 1 4 690 202 691 204 1 4 691 203 692 205 1 3 692 204 206 1 4 692 205 693 4 1 3 693 4 208 1 4 693 207 694 209 1 4 694 208 695 210 1 4 695 209 696 211 1 4 696 210 697 212 1 4 697 211 698 213 1 4 698 212 699 214 1 4 699 213 700 215 1 4 700 214 701 216 1 4 701 215 702 217 1 4 702 216 703 218 1 4 703 217 704 219 1 4 704 218 705 220 1 4 705 219 706 221 1 4 706 220 707 222 1 4 707 221 708 223 1 4 708 222 709 224 1 4 709 223 710 225 1 4 710 224 711 226 1 4 711 225 712 227 1 4 712 226 713 228 1 4 713 227 714 229 1 4 714 228 715 230 1 4 715 229 716 231 1 4 716 230 717 232 1 4 717 231 718 233 1 4 718 232 719 234 1 4 719 233 720 235 1 4 720 234 721 236 1 4 721 235 722 237 1 4 722 236 723 238 1 4 723 237 724 239 1 4 724 238 725 240 1 4 725 239 726 241 1 4 726 240 727 242 1 4 727 241 728 243 1 4 728 242 729 244 1 4 729 243 730 245 1 4 730 244 731 246 1 4 731 245 732 247 2 4 732 246 733 248 2 4 733 247 734 249 2 4 734 248 735 250 2 4 735 249 736 251 2 4 736 250 737 252 2 4 737 251 738 253 2 4 738 252 739 254 2 4 739 253 740 255 2 4 740 254 741 256 2 4 741 255 742 257 2 4 258 431 742 256 2 4 257 431 432 259 2 4 432 258 433 260 2 4 433 259 434 261 2 4 434 260 435 262 2 4 435 261 436 263 2 4 436 262 437 264 2 4 437 263 438 265 2 4 438 264 439 266 2 4 439 265 440 267 2 4 440 266 441 268 2 4 441 267 442 269 2 4 442 268 443 270 2 4 443 269 444 271 2 4 444 270 445 272 1 4 445 271 446 273 1 4 446 272 447 274 1 4 447 273 448 275 1 4 448 274 449 276 1 4 449 275 450 277 1 4 450 276 451 278 1 4 451 277 452 279 1 4 452 278 453 280 1 4 453 279 454 281 1 4 454 280 455 282 1 4 455 281 456 283 1 4 456 282 457 284 1 4 457 283 458 285 1 4 458 284 459 286 1 4 459 285 460 287 1 4 460 286 461 288 1 4 461 287 462 289 1 4 462 288 463 290 1 4 463 289 464 291 1 4 464 290 465 292 1 4 465 291 466 293 1 4 466 292 467 294 1 4 467 293 468 295 1 4 468 294 469 296 1 4 469 295 470 297 1 4 470 296 471 298 1 4 471 297 472 299 1 4 472 298 473 300 1 4 473 299 474 301 1 4 474 300 475 302 1 4 475 301 476 303 1 4 476 302 477 304 1 4 477 303 478 305 1 4 478 304 479 306 1 4 479 305 480 307 1 4 480 306 481 308 1 4 481 307 482 309 1 4 482 308 483 310 1 4 483 309 484 311 1 4 484 310 485 312 1 4 485 311 486 313 1 4 486 312 487 314 1 4 487 313 488 315 1 4 488 314 489 316 1 4 489 315 490 317 1 4 490 316 491 318 1 4 491 317 492 319 1 4 492 318 493 320 1 4 493 319 494 321 1 4 494 320 495 322 1 4 495 321 496 323 1 4 496 322 497 324 1 4 497 323 498 325 1 4 498 324 499 326 1 4 499 325 500 327 1 4 500 326 501 328 1 4 501 327 502 329 1 4 502 328 503 330 1 4 503 329 504 331 1 4 504 330 505 332 1 4 505 331 506 333 1 4 506 332 507 334 1 4 507 333 508 335 1 4 508 334 509 336 1 4 509 335 510 337 1 4 510 336 511 338 1 4 511 337 512 339 1 4 512 338 513 340 1 4 513 339 514 341 1 4 514 340 515 342 1 4 515 341 516 343 1 4 516 342 517 344 1 4 517 343 518 345 1 4 518 344 519 346 1 4 519 345 520 347 1 4 520 346 521 348 1 3 521 347 5 1 4 521 5 522 350 1 4 522 349 523 351 1 4 523 350 524 352 1 4 524 351 525 353 1 4 525 352 526 354 1 4 526 353 527 355 1 4 527 354 528 356 1 4 528 355 529 357 1 4 529 356 530 358 1 4 530 357 531 359 1 4 531 358 532 360 1 4 532 359 533 361 1 4 533 360 534 362 1 4 534 361 535 363 1 4 535 362 536 364 1 4 536 363 537 365 1 4 537 364 538 366 1 4 538 365 539 367 1 4 539 366 540 368 1 4 540 367 541 369 1 4 541 368 542 370 1 4 542 369 543 371 1 4 543 370 544 372 1 4 544 371 545 373 1 4 545 372 546 374 1 4 546 373 547 375 1 4 550 547 374 376 1 4 550 375 551 377 1 4 551 376 552 378 1 4 552 377 553 379 1 4 556 553 378 380 1 4 566 556 379 381 1 4 566 380 567 382 1 4 567 381 568 383 1 4 568 382 569 384 1 4 569 383 570 385 1 4 425 570 386 384 1 4 387 423 425 385 1 4 386 423 424 388 1 4 579 424 389 387 1 4 584 579 388 390 1 4 584 389 585 391 1 4 585 390 586 392 1 4 586 391 420 393 1 4 394 419 420 392 1 4 393 419 594 395 1 4 396 596 594 394 1 4 622 596 395 397 1 4 622 396 623 398 1 4 623 397 624 399 1 4 398 624 626 400 1 4 626 399 628 401 1 4 630 628 402 400 1 4 630 401 631 403 1 4 402 631 2097 404 1 4 405 649 2097 403 1 4 648 649 404 406 1 4 648 405 413 407 1 3 413 406 0 1 6 58 59 429 2218 2545 2841 2 6 72 73 2492 2493 1606 428 1 6 49 50 411 4521 4515 421 1 6 49 410 48 426 4514 4515 1 6 6 7 413 647 646 648 1 6 6 412 648 406 407 0 1 6 20 21 1171 3882 3128 3096 1 6 38 39 416 2194 2252 9704 1 6 38 415 37 2250 2251 2252 1 6 14 15 418 3088 3098 3099 1 6 14 417 13 3099 3100 3684 1 6 393 394 420 593 588 594 1 6 393 419 586 392 587 588 1 6 50 51 422 5237 4521 410 1 6 421 51 52 4650 9684 5237 1 6 386 387 424 425 577 575 1 6 423 387 577 578 579 388 1 6 386 423 572 570 385 575 1 6 47 48 427 411 4514 5612 1 6 47 426 46 5612 7500 9768 2 6 73 74 1603 1605 1606 409 1 6 58 408 430 57 2841 9690 1 6 56 57 429 9689 5380 9690 2 6 257 258 432 742 743 744 2 6 431 258 259 433 744 745 2 6 432 259 260 434 745 746 2 6 433 260 261 435 746 747 2 6 434 261 262 436 747 748 2 6 435 262 263 437 748 749 2 6 436 263 264 438 749 750 2 6 437 264 265 439 750 751 2 6 438 265 266 440 751 752 2 6 439 266 267 441 752 753 2 6 440 267 268 442 753 754 2 6 441 268 269 443 754 755 2 6 442 269 270 444 755 756 2 6 443 270 271 445 756 757 2 6 444 271 272 446 757 758 1 6 445 272 273 447 758 759 1 6 446 273 274 448 759 760 1 6 447 274 275 449 760 761 1 6 448 275 276 450 761 762 1 6 449 276 277 451 762 763 1 6 450 277 278 452 763 764 1 6 451 278 279 453 764 765 1 6 452 279 280 454 765 766 1 6 453 280 281 455 766 767 1 6 454 281 282 456 767 768 1 6 455 282 283 457 768 769 1 6 456 283 284 458 769 770 1 6 457 284 285 459 770 771 1 6 458 285 286 460 771 772 1 6 459 286 287 461 772 773 1 6 460 287 288 462 773 774 1 6 461 288 289 463 774 775 1 6 462 289 290 464 775 776 1 6 463 290 291 465 776 777 1 6 464 291 292 466 777 778 1 6 465 292 293 467 778 779 1 6 466 293 294 468 779 780 1 6 467 294 295 469 780 781 1 6 468 295 296 470 781 782 1 6 469 296 297 471 782 783 1 6 470 297 298 472 783 784 1 6 471 298 299 473 784 785 1 6 472 299 300 474 785 786 1 6 473 300 301 475 786 787 1 6 474 301 302 476 787 788 1 6 475 302 303 477 788 789 1 6 476 303 304 478 789 790 1 6 477 304 305 479 790 791 1 6 478 305 306 480 791 792 1 6 479 306 307 481 792 793 1 6 480 307 308 482 793 794 1 6 481 308 309 483 794 795 1 6 482 309 310 484 795 796 1 6 483 310 311 485 796 797 1 6 484 311 312 486 797 798 1 6 485 312 313 487 798 799 1 6 486 313 314 488 799 800 1 6 487 314 315 489 800 801 1 6 488 315 316 490 801 802 1 6 489 316 317 491 802 803 1 6 490 317 318 492 803 804 1 6 491 318 319 493 804 805 1 6 492 319 320 494 805 806 1 6 493 320 321 495 806 807 1 6 494 321 322 496 807 808 1 6 495 322 323 497 808 809 1 6 496 323 324 498 809 810 1 6 497 324 325 499 810 811 1 6 498 325 326 500 811 812 1 6 499 326 327 501 812 813 1 6 500 327 328 502 813 814 1 6 501 328 329 503 814 815 1 6 502 329 330 504 815 816 1 6 503 330 331 505 816 817 1 6 504 331 332 506 817 818 1 6 505 332 333 507 818 819 1 6 506 333 334 508 819 820 1 6 507 334 335 509 820 821 1 6 508 335 336 510 821 822 1 6 509 336 337 511 822 823 1 6 510 337 338 512 823 824 1 6 511 338 339 513 824 825 1 6 512 339 340 514 825 826 1 6 513 340 341 515 826 827 1 6 514 341 342 516 827 828 1 6 515 342 343 517 828 829 1 6 516 343 344 518 829 830 1 6 517 344 345 519 830 831 1 6 518 345 346 520 831 832 1 6 519 346 347 521 832 833 1 7 520 347 348 5 349 522 833 1 6 521 349 350 523 833 834 1 5 522 350 351 524 834 1 6 523 351 352 525 834 835 1 6 524 352 353 526 835 836 1 6 525 353 354 527 836 837 1 6 526 354 355 528 837 838 1 6 527 355 356 529 838 839 1 6 528 356 357 530 839 840 1 6 529 357 358 531 840 841 1 6 530 358 359 532 841 842 1 6 531 359 360 533 842 843 1 6 532 360 361 534 843 844 1 6 533 361 362 535 844 845 1 6 534 362 363 536 845 846 1 6 535 363 364 537 846 847 1 6 536 364 365 538 847 848 1 6 537 365 366 539 848 849 1 6 538 366 367 540 849 850 1 6 539 367 368 541 853 850 1 6 540 368 369 542 855 853 1 6 541 369 370 543 855 856 1 6 542 370 371 544 856 857 1 6 543 371 372 545 857 858 1 6 544 372 373 546 858 859 1 6 545 373 374 547 548 859 1 6 546 374 548 549 550 375 1 6 546 547 549 859 860 861 1 6 548 547 550 861 862 863 1 6 549 547 375 376 551 863 1 6 550 376 377 552 863 864 1 6 551 377 378 553 554 864 1 6 552 378 554 555 556 379 1 6 552 553 555 557 864 865 1 6 554 553 556 557 558 565 1 6 555 553 379 565 566 380 1 6 554 555 558 559 865 866 1 6 557 555 559 560 561 565 1 6 557 558 560 866 867 868 1 6 559 558 561 562 922 868 1 6 560 558 562 563 564 565 1 6 560 561 563 921 920 922 1 6 562 561 564 9743 921 9744 1 6 563 561 565 566 9744 567 1 6 564 561 558 555 556 566 1 6 565 556 380 381 567 564 1 6 566 381 382 568 9744 564 1 6 567 382 383 569 9744 9739 1 6 568 383 384 570 571 9739 1 6 569 384 571 572 425 385 1 6 569 570 572 573 9739 9740 1 6 571 570 425 573 574 575 1 6 571 572 574 9740 9741 916 1 6 573 572 575 576 916 915 1 6 574 572 425 576 577 423 1 6 574 575 577 915 2474 1515 1 6 576 575 423 424 578 1515 1 6 577 424 579 580 581 1515 1 6 578 424 388 580 584 389 1 6 578 579 581 582 583 584 1 6 578 580 582 1515 1516 1517 1 6 581 580 583 1517 1508 1506 1 6 582 580 584 585 589 1506 1 6 583 580 579 389 390 585 1 6 584 390 391 586 589 583 1 6 585 391 392 420 587 589 1 6 586 420 588 589 590 591 1 6 587 420 591 592 593 419 1 6 586 587 590 585 583 1506 1 6 589 587 591 1506 1507 1514 1 6 590 587 588 592 599 1514 1 6 591 588 593 597 598 599 1 6 592 588 419 594 595 597 1 6 593 419 394 595 596 395 1 6 593 594 596 597 621 606 1 6 595 594 621 622 396 395 1 6 593 595 592 598 605 606 1 6 592 597 599 600 604 605 1 6 592 598 600 601 1514 591 1 6 599 598 601 602 603 604 1 6 599 600 602 1513 1514 1539 1 6 601 600 603 1539 1540 1583 1 6 602 600 604 1602 1583 608 1 6 603 600 598 605 607 608 1 6 604 598 597 606 607 614 1 6 605 597 621 620 595 614 1 6 604 605 608 609 610 614 1 6 604 607 609 1602 603 1600 1 6 608 607 610 611 1599 1600 1 6 609 607 611 612 613 614 1 6 609 610 612 6557 1598 1599 1 6 611 610 613 615 3764 6557 1 6 612 610 614 615 616 620 1 6 613 610 620 606 605 607 1 6 612 613 616 617 3760 3764 1 6 615 613 617 618 619 620 1 6 615 616 618 3760 3761 625 1 6 617 616 619 623 624 625 1 6 618 616 620 621 623 622 1 6 619 616 613 614 621 606 1 6 619 620 606 595 596 622 1 6 621 596 396 397 623 619 1 6 622 397 398 624 618 619 1 6 623 398 618 625 626 399 1 6 618 624 626 627 3761 617 1 6 625 624 627 628 399 400 1 6 625 626 628 629 3761 3762 1 6 627 626 629 630 401 400 1 6 627 628 630 635 3762 632 1 6 629 628 401 402 631 632 1 6 630 402 632 633 403 2097 1 6 630 631 633 634 635 629 1 6 632 631 634 2097 650 641 1 6 632 633 635 636 637 641 1 6 632 634 636 3217 3762 629 1 6 635 634 637 638 3217 3218 1 6 636 634 638 639 640 641 1 6 636 637 639 3218 3219 3220 1 6 638 637 640 3220 3239 3240 1 6 639 637 641 642 643 3239 1 6 640 637 642 633 650 634 1 6 640 641 643 644 645 650 1 6 640 642 644 3237 3236 3239 1 6 643 642 645 646 647 3237 1 6 644 642 646 648 649 650 1 5 644 645 647 412 648 1 7 644 646 412 8 3238 3237 7 1 7 412 646 645 649 405 406 413 1 6 648 645 650 405 404 2097 1 6 649 645 633 2097 641 642 1 6 163 164 652 931 932 933 1 6 651 164 165 653 933 934 1 6 652 165 166 654 934 935 1 6 653 166 167 655 935 936 1 6 654 167 168 656 936 937 1 6 655 168 169 657 937 938 1 6 656 169 170 658 938 939 1 6 657 170 171 659 939 940 1 6 658 171 172 660 940 941 1 6 659 172 173 661 941 942 1 6 660 173 174 662 942 943 1 6 661 174 175 663 943 944 1 6 662 175 176 664 944 945 1 6 663 176 177 665 945 946 1 6 664 177 178 666 946 947 1 6 665 178 179 667 947 948 1 6 666 179 180 668 948 949 1 6 667 180 181 669 949 950 1 6 668 181 182 670 950 951 1 6 669 182 183 671 951 952 1 6 670 183 184 672 952 953 1 6 671 184 185 673 953 954 1 6 672 185 186 674 954 955 1 6 673 186 187 675 955 956 1 6 674 187 188 676 956 957 1 6 675 188 189 677 957 958 1 6 676 189 190 678 958 959 1 6 677 190 191 679 959 960 1 6 678 191 192 680 960 961 1 6 679 192 193 681 961 962 1 6 680 193 194 682 962 963 1 6 681 194 195 683 963 964 1 6 682 195 196 684 964 965 1 6 683 196 197 685 965 966 1 6 684 197 198 686 966 967 1 6 685 198 199 687 967 968 1 6 686 199 200 688 968 969 1 6 687 200 201 689 969 970 1 6 688 201 202 690 970 971 1 6 689 202 203 691 971 972 1 6 690 203 204 692 972 973 1 7 691 204 205 206 693 973 694 1 6 692 206 4 207 208 694 1 7 693 208 209 695 973 692 974 1 6 694 209 210 696 974 975 1 6 695 210 211 697 975 976 1 6 696 211 212 698 976 977 1 6 697 212 213 699 977 978 1 6 698 213 214 700 978 979 1 6 699 214 215 701 979 980 1 6 700 215 216 702 980 981 1 6 701 216 217 703 981 982 1 6 702 217 218 704 982 983 1 6 703 218 219 705 983 984 1 6 704 219 220 706 984 985 1 6 705 220 221 707 985 986 1 6 706 221 222 708 986 987 1 6 707 222 223 709 987 988 1 6 708 223 224 710 988 989 1 6 709 224 225 711 989 990 1 6 710 225 226 712 990 991 1 6 711 226 227 713 991 992 1 6 712 227 228 714 992 993 1 6 713 228 229 715 993 994 1 6 714 229 230 716 994 995 1 6 715 230 231 717 995 996 1 6 716 231 232 718 996 997 1 6 717 232 233 719 997 998 1 6 718 233 234 720 998 999 1 6 719 234 235 721 999 1000 1 6 720 235 236 722 1000 1001 1 6 721 236 237 723 1001 1002 1 6 722 237 238 724 1002 1003 1 6 723 238 239 725 1003 1004 1 6 724 239 240 726 1004 1005 1 6 725 240 241 727 1005 1006 1 6 726 241 242 728 1006 1007 1 6 727 242 243 729 1007 1008 1 6 728 243 244 730 1008 1009 1 6 729 244 245 731 1009 1010 1 6 730 245 246 732 1010 1011 2 6 731 246 247 733 1011 1012 2 6 732 247 248 734 1012 1013 2 6 733 248 249 735 1016 1013 2 6 734 249 250 736 1016 1017 2 6 735 250 251 737 1017 1018 2 6 736 251 252 738 1018 1019 2 6 737 252 253 739 1019 1020 2 6 738 253 254 740 1020 1021 2 6 739 254 255 741 1021 1022 2 6 740 255 256 742 1022 1023 2 6 741 256 257 431 743 1023 2 6 742 431 744 1023 1024 1025 2 6 743 431 432 745 1025 1026 2 6 744 432 433 746 1026 1027 2 6 745 433 434 747 1027 1028 2 6 746 434 435 748 1028 1029 2 6 747 435 436 749 1029 1030 2 6 748 436 437 750 1030 1031 2 6 749 437 438 751 1031 1032 2 6 750 438 439 752 1032 1033 2 6 751 439 440 753 1033 1034 2 6 752 440 441 754 1034 1035 2 6 753 441 442 755 1035 1036 2 6 754 442 443 756 1036 1037 2 6 755 443 444 757 1037 1038 2 6 756 444 445 758 1038 1039 1 6 757 445 446 759 1039 1040 1 6 758 446 447 760 1040 1041 1 6 759 447 448 761 1041 1042 1 6 760 448 449 762 1042 1043 1 6 761 449 450 763 1043 1044 1 6 762 450 451 764 1044 1045 1 6 763 451 452 765 1045 1046 1 6 764 452 453 766 1046 1047 1 6 765 453 454 767 1047 1048 1 6 766 454 455 768 1048 1049 1 6 767 455 456 769 1049 1050 1 6 768 456 457 770 1050 1051 1 6 769 457 458 771 1051 1052 1 6 770 458 459 772 1052 1053 1 6 771 459 460 773 1053 1054 1 6 772 460 461 774 1054 1055 1 6 773 461 462 775 1055 1056 1 6 774 462 463 776 1056 1057 1 6 775 463 464 777 1057 1058 1 6 776 464 465 778 1058 1059 1 6 777 465 466 779 1059 1060 1 6 778 466 467 780 1060 1061 1 6 779 467 468 781 1061 1062 1 6 780 468 469 782 1062 1063 1 6 781 469 470 783 1063 1064 1 6 782 470 471 784 1064 1065 1 6 783 471 472 785 1065 1066 1 6 784 472 473 786 1066 1067 1 6 785 473 474 787 1067 1068 1 6 786 474 475 788 1068 1069 1 6 787 475 476 789 1069 1070 1 6 788 476 477 790 1070 1071 1 6 789 477 478 791 1071 1072 1 6 790 478 479 792 1072 1073 1 6 791 479 480 793 1073 1074 1 6 792 480 481 794 1074 1075 1 6 793 481 482 795 1075 1076 1 6 794 482 483 796 1076 1077 1 6 795 483 484 797 1077 1078 1 6 796 484 485 798 1078 1079 1 6 797 485 486 799 1079 1080 1 6 798 486 487 800 1080 1081 1 6 799 487 488 801 1081 1082 1 6 800 488 489 802 1082 1083 1 6 801 489 490 803 1083 1084 1 6 802 490 491 804 1084 1085 1 6 803 491 492 805 1085 1086 1 6 804 492 493 806 1086 1087 1 6 805 493 494 807 1087 1088 1 6 806 494 495 808 1088 1089 1 6 807 495 496 809 1089 1090 1 6 808 496 497 810 1090 1091 1 6 809 497 498 811 1091 1092 1 6 810 498 499 812 1092 1093 1 6 811 499 500 813 1093 1094 1 6 812 500 501 814 1094 1095 1 6 813 501 502 815 1095 1096 1 6 814 502 503 816 1096 1097 1 6 815 503 504 817 1097 1098 1 6 816 504 505 818 1098 1099 1 6 817 505 506 819 1099 1100 1 6 818 506 507 820 1100 1101 1 6 819 507 508 821 1101 1102 1 6 820 508 509 822 1102 1103 1 6 821 509 510 823 1103 1104 1 6 822 510 511 824 1104 1105 1 6 823 511 512 825 1105 1106 1 6 824 512 513 826 1106 1107 1 6 825 513 514 827 1107 1108 1 6 826 514 515 828 1108 1109 1 6 827 515 516 829 1109 1110 1 6 828 516 517 830 1110 1111 1 6 829 517 518 831 1111 1112 1 6 830 518 519 832 1112 1113 1 6 831 519 520 833 1113 1114 1 6 832 520 521 522 834 1114 1 6 833 522 523 524 835 1114 1 7 834 524 525 836 1114 1115 1116 1 6 835 525 526 837 1116 1117 1 6 836 526 527 838 1117 1118 1 6 837 527 528 839 1118 1119 1 6 838 528 529 840 1119 1120 1 6 839 529 530 841 1120 1121 1 6 840 530 531 842 1121 1122 1 6 841 531 532 843 1122 1123 1 6 842 532 533 844 1123 1124 1 6 843 533 534 845 1124 1125 1 6 844 534 535 846 1125 1126 1 6 845 535 536 847 1126 1127 1 6 846 536 537 848 1127 1128 1 6 847 537 538 849 1128 1129 1 6 848 538 539 850 851 1129 1 6 849 539 851 852 853 540 1 6 849 850 852 1129 1130 1131 1 6 851 850 853 854 1131 1132 1 6 852 850 854 855 541 540 1 6 852 853 855 1132 1133 1134 1 6 854 853 541 542 856 1134 1 6 855 542 543 857 1134 1135 1 6 856 543 544 858 1135 1136 1 6 857 544 545 859 1136 1137 1 6 858 545 546 548 860 1137 1 6 859 548 861 1137 1138 1139 1 6 860 548 549 862 1139 1140 1 6 861 549 863 1140 1141 1142 1 6 862 549 550 551 864 1142 1 6 863 551 552 554 865 1142 1 6 864 554 557 866 1142 1143 1 6 865 557 559 867 1143 1144 1 6 866 559 868 869 1144 1145 1 6 867 559 869 870 922 560 1 6 867 868 870 871 1145 1146 1 6 869 868 871 872 873 922 1 6 869 870 872 1146 1147 1148 1 6 871 870 873 874 1151 1148 1 6 872 870 874 875 922 920 1 6 872 873 875 876 1170 1151 1 6 874 873 876 877 919 920 1 6 874 875 877 878 879 1170 1 6 876 875 878 918 882 919 1 6 876 877 879 880 881 882 1 6 876 878 880 884 886 1170 1 6 879 878 881 884 885 891 1 6 880 878 882 883 891 892 1 6 881 878 883 917 918 877 1 6 881 882 912 892 913 917 1 6 879 880 885 886 887 888 1 6 884 880 888 889 890 891 1 6 879 884 887 1964 1169 1170 1 6 886 884 888 1965 1964 2075 1 6 887 884 885 889 2075 2076 1 6 888 885 890 2076 2077 2081 1 6 889 885 891 893 894 2081 1 6 890 885 880 881 892 893 1 6 891 881 893 896 912 883 1 6 891 892 890 894 895 896 1 6 890 893 895 897 898 2081 1 6 894 893 896 897 909 910 1 6 895 893 892 910 911 912 1 6 894 895 898 899 900 909 1 6 894 897 899 901 2081 2080 1 6 898 897 900 901 902 906 1 6 899 897 906 907 908 909 1 6 898 899 902 903 2080 2082 1 6 901 899 903 904 905 906 1 6 901 902 904 2082 2083 2084 1 6 903 902 905 2084 2085 1565 1 6 904 902 906 1563 1564 1565 1 6 905 902 899 900 907 1563 1 6 906 900 908 1543 1563 1536 1 6 907 900 909 1522 1523 1536 1 6 908 900 897 895 910 1522 1 6 909 895 896 911 1520 1522 1 6 910 896 912 1521 1520 914 1 6 911 896 892 883 913 914 1 6 912 883 914 915 916 917 1 6 912 913 915 2474 1521 911 1 6 914 913 916 574 576 2474 1 6 915 913 917 9741 573 574 1 6 916 913 883 882 918 9741 1 6 917 882 877 919 9742 9741 1 6 918 877 875 920 921 9742 1 6 919 875 921 562 922 873 1 6 919 920 562 9743 9742 563 1 6 562 920 873 870 868 560 1 6 154 155 924 1248 1249 1250 1 6 923 155 156 925 1250 1251 1 6 924 156 157 926 1251 1252 1 6 925 157 158 927 1252 1253 1 6 926 158 159 928 1253 1254 1 6 927 159 160 929 1254 1255 1 6 928 160 161 930 1255 1256 1 6 929 161 162 931 1256 1257 1 6 930 162 163 651 932 1257 1 6 931 651 933 1257 1258 1259 1 6 932 651 652 934 1259 1260 1 6 933 652 653 935 1260 1261 1 6 934 653 654 936 1261 1262 1 6 935 654 655 937 1262 1263 1 6 936 655 656 938 1263 1264 1 6 937 656 657 939 1264 1265 1 6 938 657 658 940 1265 1266 1 6 939 658 659 941 1266 1267 1 6 940 659 660 942 1267 1268 1 6 941 660 661 943 1268 1269 1 6 942 661 662 944 1269 1270 1 6 943 662 663 945 1270 1271 1 6 944 663 664 946 1271 1272 1 6 945 664 665 947 1272 1273 1 6 946 665 666 948 1273 1274 1 6 947 666 667 949 1274 1275 1 6 948 667 668 950 1275 1276 1 6 949 668 669 951 1276 1277 1 6 950 669 670 952 1277 1278 1 6 951 670 671 953 1278 1279 1 6 952 671 672 954 1279 1280 1 6 953 672 673 955 1280 1281 1 6 954 673 674 956 1281 1282 1 6 955 674 675 957 1282 1283 1 6 956 675 676 958 1283 1284 1 6 957 676 677 959 1284 1285 1 6 958 677 678 960 1285 1286 1 6 959 678 679 961 1286 1287 1 6 960 679 680 962 1287 1288 1 6 961 680 681 963 1288 1289 1 6 962 681 682 964 1289 1290 1 6 963 682 683 965 1290 1291 1 6 964 683 684 966 1291 1292 1 6 965 684 685 967 1292 1293 1 6 966 685 686 968 1293 1294 1 6 967 686 687 969 1294 1295 1 6 968 687 688 970 1295 1296 1 6 969 688 689 971 1296 1297 1 6 970 689 690 972 1297 1298 1 6 971 690 691 973 1298 1299 1 6 972 691 692 694 974 1299 1 5 973 694 695 975 1299 1 6 974 695 696 976 1299 1300 1 6 975 696 697 977 1300 1301 1 6 976 697 698 978 1301 1302 1 6 977 698 699 979 1302 1303 1 6 978 699 700 980 1303 1304 1 6 979 700 701 981 1304 1305 1 6 980 701 702 982 1305 1306 1 6 981 702 703 983 1306 1307 1 6 982 703 704 984 1307 1308 1 6 983 704 705 985 1308 1309 1 6 984 705 706 986 1309 1310 1 6 985 706 707 987 1310 1311 1 6 986 707 708 988 1311 1312 1 6 987 708 709 989 1312 1313 1 6 988 709 710 990 1313 1314 1 6 989 710 711 991 1314 1315 1 6 990 711 712 992 1315 1316 1 6 991 712 713 993 1316 1317 1 6 992 713 714 994 1317 1318 1 6 993 714 715 995 1318 1319 1 6 994 715 716 996 1319 1320 1 6 995 716 717 997 1320 1321 1 6 996 717 718 998 1321 1322 1 6 997 718 719 999 1322 1323 1 6 998 719 720 1000 1323 1324 1 6 999 720 721 1001 1324 1325 1 6 1000 721 722 1002 1325 1326 1 6 1001 722 723 1003 1326 1327 1 6 1002 723 724 1004 1327 1328 1 6 1003 724 725 1005 1328 1329 1 6 1004 725 726 1006 1329 1330 1 6 1005 726 727 1007 1330 1331 1 6 1006 727 728 1008 1331 1332 1 6 1007 728 729 1009 1332 1333 1 6 1008 729 730 1010 1333 1334 1 6 1009 730 731 1011 1334 1335 2 6 1010 731 732 1012 1335 1336 2 6 1011 732 733 1013 1014 1336 2 6 1012 733 1014 1015 1016 734 2 6 1012 1013 1015 1336 1337 1338 2 6 1014 1013 1016 1338 1339 1340 2 6 1015 1013 734 735 1017 1340 2 6 1016 735 736 1018 1340 1341 2 6 1017 736 737 1019 1341 1342 2 6 1018 737 738 1020 1342 1343 2 6 1019 738 739 1021 1343 1344 2 6 1020 739 740 1022 1344 1345 2 6 1021 740 741 1023 1345 1346 2 6 1022 741 742 743 1024 1346 2 6 1023 743 1025 1346 1347 1348 2 6 1024 743 744 1026 1348 1349 2 6 1025 744 745 1027 1349 1350 2 6 1026 745 746 1028 1350 1351 2 6 1027 746 747 1029 1351 1352 2 6 1028 747 748 1030 1352 1353 2 6 1029 748 749 1031 1353 1354 2 6 1030 749 750 1032 1354 1355 2 6 1031 750 751 1033 1355 1356 2 6 1032 751 752 1034 1356 1357 2 6 1033 752 753 1035 1357 1358 2 6 1034 753 754 1036 1358 1359 2 6 1035 754 755 1037 1359 1360 2 6 1036 755 756 1038 1360 1361 2 6 1037 756 757 1039 1361 1362 1 6 1038 757 758 1040 1362 1363 1 6 1039 758 759 1041 1363 1364 1 6 1040 759 760 1042 1364 1365 1 6 1041 760 761 1043 1365 1366 1 6 1042 761 762 1044 1366 1367 1 6 1043 762 763 1045 1367 1368 1 6 1044 763 764 1046 1368 1369 1 6 1045 764 765 1047 1369 1370 1 6 1046 765 766 1048 1370 1371 1 6 1047 766 767 1049 1371 1372 1 6 1048 767 768 1050 1372 1373 1 6 1049 768 769 1051 1373 1374 1 6 1050 769 770 1052 1374 1375 1 6 1051 770 771 1053 1375 1376 1 6 1052 771 772 1054 1376 1377 1 6 1053 772 773 1055 1377 1378 1 6 1054 773 774 1056 1378 1379 1 6 1055 774 775 1057 1379 1380 1 6 1056 775 776 1058 1380 1381 1 6 1057 776 777 1059 1381 1382 1 6 1058 777 778 1060 1382 1383 1 6 1059 778 779 1061 1383 1384 1 6 1060 779 780 1062 1384 1385 1 6 1061 780 781 1063 1385 1386 1 6 1062 781 782 1064 1386 1387 1 6 1063 782 783 1065 1387 1388 1 6 1064 783 784 1066 1388 1389 1 6 1065 784 785 1067 1389 1390 1 6 1066 785 786 1068 1390 1391 1 6 1067 786 787 1069 1391 1392 1 6 1068 787 788 1070 1392 1393 1 6 1069 788 789 1071 1393 1394 1 6 1070 789 790 1072 1394 1395 1 6 1071 790 791 1073 1395 1396 1 6 1072 791 792 1074 1396 1397 1 6 1073 792 793 1075 1397 1398 1 6 1074 793 794 1076 1398 1399 1 6 1075 794 795 1077 1399 1400 1 6 1076 795 796 1078 1400 1401 1 6 1077 796 797 1079 1401 1402 1 6 1078 797 798 1080 1402 1403 1 6 1079 798 799 1081 1403 1404 1 6 1080 799 800 1082 1404 1405 1 6 1081 800 801 1083 1405 1406 1 6 1082 801 802 1084 1406 1407 1 6 1083 802 803 1085 1407 1408 1 6 1084 803 804 1086 1408 1409 1 6 1085 804 805 1087 1409 1410 1 6 1086 805 806 1088 1410 1411 1 6 1087 806 807 1089 1411 1412 1 6 1088 807 808 1090 1412 1413 1 6 1089 808 809 1091 1413 1414 1 6 1090 809 810 1092 1414 1415 1 6 1091 810 811 1093 1415 1416 1 6 1092 811 812 1094 1416 1417 1 6 1093 812 813 1095 1417 1418 1 6 1094 813 814 1096 1418 1419 1 6 1095 814 815 1097 1419 1420 1 6 1096 815 816 1098 1420 1421 1 6 1097 816 817 1099 1421 1422 1 6 1098 817 818 1100 1422 1423 1 6 1099 818 819 1101 1423 1424 1 6 1100 819 820 1102 1424 1425 1 6 1101 820 821 1103 1425 1426 1 6 1102 821 822 1104 1426 1427 1 6 1103 822 823 1105 1427 1428 1 6 1104 823 824 1106 1428 1429 1 6 1105 824 825 1107 1429 1430 1 6 1106 825 826 1108 1430 1431 1 6 1107 826 827 1109 1431 1432 1 6 1108 827 828 1110 1432 1433 1 6 1109 828 829 1111 1433 1434 1 6 1110 829 830 1112 1434 1435 1 6 1111 830 831 1113 1435 1436 1 6 1112 831 832 1114 1436 1115 1 6 1113 832 833 834 835 1115 1 6 1114 835 1116 1436 1113 1437 1 5 1115 835 836 1117 1437 1 6 1116 836 837 1118 1437 1438 1 6 1117 837 838 1119 1438 1439 1 6 1118 838 839 1120 1439 1440 1 6 1119 839 840 1121 1440 1441 1 6 1120 840 841 1122 1441 1442 1 6 1121 841 842 1123 1442 1443 1 6 1122 842 843 1124 1443 1444 1 6 1123 843 844 1125 1444 1445 1 6 1124 844 845 1126 1445 1446 1 6 1125 845 846 1127 1446 1447 1 6 1126 846 847 1128 1447 1448 1 6 1127 847 848 1129 1448 1449 1 6 1128 848 849 851 1130 1449 1 6 1129 851 1131 1449 1450 1451 1 6 1130 851 852 1132 1451 1452 1 6 1131 852 854 1133 1452 1453 1 6 1132 854 1134 1456 1453 1152 1 6 1133 854 855 856 1135 1152 1 6 1134 856 857 1136 1152 1153 1 6 1135 857 858 1137 1153 1154 1 6 1136 858 859 860 1138 1154 1 6 1137 860 1139 1154 1155 1156 1 6 1138 860 861 1140 1156 1157 1 6 1139 861 862 1141 1157 1158 1 6 1140 862 1142 1158 1159 1143 1 6 1141 862 863 864 865 1143 1 6 1142 865 866 1144 1159 1141 1 6 1143 866 867 1145 1498 1159 1 6 1144 867 869 1146 1498 1499 1 6 1145 869 871 1147 1164 1499 1 6 1146 871 1148 1149 1164 1165 1 6 1147 871 1149 1150 1151 872 1 6 1147 1148 1150 1165 1166 1167 1 6 1149 1148 1151 1167 1168 1169 1 6 1150 1148 872 1169 1170 874 1 6 1134 1135 1153 1473 1456 1133 1 6 1152 1135 1136 1154 1473 1490 1 6 1153 1136 1137 1138 1155 1490 1 6 1154 1138 1156 1490 1491 1492 1 6 1155 1138 1139 1157 1492 1493 1 6 1156 1139 1140 1158 1493 1494 1 6 1157 1140 1141 1159 1497 1494 1 6 1158 1141 1143 1144 1498 1497 2 6 85 86 1161 1483 1484 1488 2 6 1160 86 87 1162 1174 1488 2 6 1161 87 88 1163 1174 1175 2 6 1162 88 89 1175 1177 1186 1 6 1146 1147 1165 1499 1527 1528 1 6 1164 1147 1149 1166 1528 1533 1 6 1165 1149 1167 1535 1533 1541 1 6 1166 1149 1150 1168 1541 1962 1 6 1167 1150 1169 1962 1963 1964 1 6 1168 1150 1151 1170 886 1964 1 6 1169 1151 874 886 879 876 1 6 414 21 22 1172 3337 3882 1 6 1171 22 23 1173 1524 3337 1 6 1172 23 24 1524 1525 1526 2 6 1161 1162 1175 1176 1488 1489 2 6 1174 1162 1176 1163 1177 1178 2 6 1174 1175 1489 1642 1643 1178 2 6 1175 1163 1178 1179 1186 1183 2 6 1175 1177 1179 1180 1643 1176 2 6 1178 1177 1180 1181 1182 1183 2 6 1178 1179 1181 1643 1644 1645 2 6 1180 1179 1182 1645 1646 1647 2 6 1181 1179 1183 1184 3097 1647 2 6 1182 1179 1184 1185 1186 1177 2 6 1182 1183 1185 3097 2241 1187 2 6 1184 1183 1186 90 91 1187 2 6 1185 1183 1177 1163 89 90 2 6 1185 91 92 1188 2241 1184 2 6 1187 92 93 1189 2241 1659 2 6 1188 93 94 1190 1660 1659 2 6 1189 94 95 1191 1662 1660 2 6 1190 95 96 1192 1670 1662 2 6 1191 96 97 1193 1670 1671 2 6 1192 97 98 1194 1671 1672 2 6 1193 98 99 1195 1672 1673 2 6 1194 99 100 1196 1673 1674 2 6 1195 100 101 1197 1674 1675 2 6 1196 101 102 1198 1500 1675 2 6 1197 102 103 1199 1457 1500 2 6 1198 103 104 1200 1457 1458 2 6 1199 104 105 1201 1458 1459 2 6 1200 105 106 1202 1459 1460 2 6 1201 106 107 1203 1460 1685 2 6 1202 107 108 1204 1687 1685 2 6 1203 108 109 1205 1687 1688 2 6 1204 109 110 1206 1688 1689 2 6 1205 110 111 1207 1689 1690 2 6 1206 111 112 1208 1693 1690 1 6 1207 112 113 1209 1693 1694 1 6 1208 113 114 1210 1694 1695 1 6 1209 114 115 1211 1556 1695 1 6 1210 115 116 1212 1546 1556 1 6 1211 116 117 1213 1546 1547 1 6 1212 117 118 1214 1547 1548 1 6 1213 118 119 1215 1548 1549 1 6 1214 119 120 1216 1549 1550 1 6 1215 120 121 1217 1553 1550 1 6 1216 121 122 1218 1555 1553 1 6 1217 122 123 1219 1716 1555 1 6 1218 123 124 1220 1716 1717 1 6 1219 124 125 1221 1717 1718 1 6 1220 125 126 1222 1718 1719 1 6 1221 126 127 1223 1719 1720 1 6 1222 127 128 1224 1720 1721 1 6 1223 128 129 1225 1721 1722 1 6 1224 129 130 1226 1722 1723 1 6 1225 130 131 1227 1726 1723 1 6 1226 131 132 1228 1726 1727 1 6 1227 132 133 1229 1727 1728 1 6 1228 133 134 1230 1728 1729 1 6 1229 134 135 1231 1729 1730 1 6 1230 135 136 1232 1733 1730 1 6 1231 136 137 1233 1733 1734 1 6 1232 137 138 1234 1734 1735 1 6 1233 138 139 1235 1735 1736 1 6 1234 139 140 1236 1736 1737 1 6 1235 140 141 1237 1737 1738 1 6 1236 141 142 1238 1738 1739 1 6 1237 142 143 1239 1739 1740 1 6 1238 143 144 1240 1740 1741 1 6 1239 144 145 1241 1741 1742 1 6 1240 145 146 1242 1742 1743 1 7 1241 146 147 3 148 1243 1743 1 5 1242 148 149 1244 1743 1 6 1243 149 150 1245 1743 1744 1 6 1244 150 151 1246 1744 1745 1 6 1245 151 152 1247 1745 1746 1 6 1246 152 153 1248 1746 1747 1 6 1247 153 154 923 1249 1747 1 6 1248 923 1250 1747 1748 1749 1 6 1249 923 924 1251 1749 1750 1 6 1250 924 925 1252 1750 1751 1 6 1251 925 926 1253 1751 1752 1 6 1252 926 927 1254 1752 1753 1 6 1253 927 928 1255 1753 1754 1 6 1254 928 929 1256 1754 1755 1 6 1255 929 930 1257 1755 1756 1 6 1256 930 931 932 1258 1756 1 6 1257 932 1259 1756 1757 1758 1 6 1258 932 933 1260 1758 1759 1 6 1259 933 934 1261 1759 1760 1 6 1260 934 935 1262 1760 1761 1 6 1261 935 936 1263 1761 1762 1 6 1262 936 937 1264 1762 1763 1 6 1263 937 938 1265 1763 1764 1 6 1264 938 939 1266 1764 1765 1 6 1265 939 940 1267 1765 1766 1 6 1266 940 941 1268 1766 1767 1 6 1267 941 942 1269 1767 1768 1 6 1268 942 943 1270 1768 1769 1 6 1269 943 944 1271 1769 1770 1 6 1270 944 945 1272 1770 1771 1 6 1271 945 946 1273 1771 1772 1 6 1272 946 947 1274 1772 1773 1 6 1273 947 948 1275 1773 1774 1 6 1274 948 949 1276 1774 1775 1 6 1275 949 950 1277 1775 1776 1 6 1276 950 951 1278 1776 1777 1 6 1277 951 952 1279 1777 1778 1 6 1278 952 953 1280 1778 1779 1 6 1279 953 954 1281 1779 1780 1 6 1280 954 955 1282 1780 1781 1 6 1281 955 956 1283 1781 1782 1 6 1282 956 957 1284 1782 1783 1 6 1283 957 958 1285 1783 1784 1 6 1284 958 959 1286 1784 1785 1 6 1285 959 960 1287 1785 1786 1 6 1286 960 961 1288 1786 1787 1 6 1287 961 962 1289 1787 1788 1 6 1288 962 963 1290 1788 1789 1 6 1289 963 964 1291 1789 1790 1 6 1290 964 965 1292 1790 1791 1 6 1291 965 966 1293 1791 1792 1 6 1292 966 967 1294 1792 1793 1 6 1293 967 968 1295 1793 1794 1 6 1294 968 969 1296 1794 1795 1 6 1295 969 970 1297 1795 1796 1 6 1296 970 971 1298 1796 1797 1 6 1297 971 972 1299 1797 1300 1 6 1298 972 973 974 975 1300 1 7 1299 975 976 1301 1797 1298 2100 1 6 1300 976 977 1302 2100 2101 1 6 1301 977 978 1303 2101 2102 1 6 1302 978 979 1304 2102 2103 1 6 1303 979 980 1305 2103 2104 1 6 1304 980 981 1306 2104 2105 1 6 1305 981 982 1307 2105 2106 1 6 1306 982 983 1308 1798 2106 1 6 1307 983 984 1309 1798 1799 1 6 1308 984 985 1310 1799 1800 1 6 1309 985 986 1311 1800 1801 1 6 1310 986 987 1312 1801 1802 1 6 1311 987 988 1313 1802 1803 1 6 1312 988 989 1314 1803 1804 1 6 1313 989 990 1315 1804 1805 1 6 1314 990 991 1316 1805 1806 1 6 1315 991 992 1317 1806 1807 1 6 1316 992 993 1318 1807 1808 1 6 1317 993 994 1319 1808 1809 1 6 1318 994 995 1320 1809 1810 1 6 1319 995 996 1321 1810 1811 1 6 1320 996 997 1322 1811 1812 1 6 1321 997 998 1323 1812 1813 1 6 1322 998 999 1324 1813 1814 1 6 1323 999 1000 1325 1814 1815 1 6 1324 1000 1001 1326 1815 1816 1 6 1325 1001 1002 1327 1816 1817 1 6 1326 1002 1003 1328 1817 1818 1 6 1327 1003 1004 1329 1818 1819 1 6 1328 1004 1005 1330 1819 1820 1 6 1329 1005 1006 1331 1820 1821 1 6 1330 1006 1007 1332 1821 1822 1 6 1331 1007 1008 1333 1822 1823 1 6 1332 1008 1009 1334 1823 1824 1 6 1333 1009 1010 1335 1824 1825 1 6 1334 1010 1011 1336 1825 1826 2 6 1335 1011 1012 1014 1337 1826 2 6 1336 1014 1338 1826 1827 1828 2 6 1337 1014 1015 1339 1828 1829 2 6 1338 1015 1340 1829 1830 1831 2 6 1339 1015 1016 1017 1341 1831 2 6 1340 1017 1018 1342 1831 1832 2 6 1341 1018 1019 1343 1832 1833 2 6 1342 1019 1020 1344 1833 1834 2 6 1343 1020 1021 1345 1834 1835 2 6 1344 1021 1022 1346 1835 1836 2 6 1345 1022 1023 1024 1347 1836 2 6 1346 1024 1348 1836 1837 1838 2 6 1347 1024 1025 1349 1838 1839 2 6 1348 1025 1026 1350 1839 1840 2 6 1349 1026 1027 1351 1840 1841 2 6 1350 1027 1028 1352 1841 1842 2 6 1351 1028 1029 1353 1842 1843 2 6 1352 1029 1030 1354 1843 1844 2 6 1353 1030 1031 1355 1844 1845 2 6 1354 1031 1032 1356 1845 1846 2 6 1355 1032 1033 1357 1846 1847 2 6 1356 1033 1034 1358 1847 1848 2 6 1357 1034 1035 1359 1848 1849 2 6 1358 1035 1036 1360 1849 1850 2 6 1359 1036 1037 1361 1850 1851 2 6 1360 1037 1038 1362 1851 1852 2 6 1361 1038 1039 1363 1852 1853 1 6 1362 1039 1040 1364 1853 1854 1 6 1363 1040 1041 1365 1854 1855 1 6 1364 1041 1042 1366 1855 1856 1 6 1365 1042 1043 1367 1856 1857 1 6 1366 1043 1044 1368 1857 1858 1 6 1367 1044 1045 1369 1858 1859 1 6 1368 1045 1046 1370 1859 1860 1 6 1369 1046 1047 1371 1860 1861 1 6 1370 1047 1048 1372 1861 1862 1 6 1371 1048 1049 1373 1862 1863 1 6 1372 1049 1050 1374 1863 1864 1 6 1373 1050 1051 1375 1864 1865 1 6 1374 1051 1052 1376 1865 1866 1 6 1375 1052 1053 1377 1866 1867 1 6 1376 1053 1054 1378 1867 1868 1 6 1377 1054 1055 1379 1868 1869 1 6 1378 1055 1056 1380 1869 1870 1 6 1379 1056 1057 1381 1870 1871 1 6 1380 1057 1058 1382 1871 1872 1 6 1381 1058 1059 1383 1872 1873 1 6 1382 1059 1060 1384 1873 1874 1 6 1383 1060 1061 1385 1874 1875 1 6 1384 1061 1062 1386 1875 1876 1 6 1385 1062 1063 1387 1876 1877 1 6 1386 1063 1064 1388 1877 1878 1 6 1387 1064 1065 1389 1878 1879 1 6 1388 1065 1066 1390 1879 1880 1 6 1389 1066 1067 1391 1880 1881 1 6 1390 1067 1068 1392 1881 1882 1 6 1391 1068 1069 1393 1882 1883 1 6 1392 1069 1070 1394 1883 1884 1 6 1393 1070 1071 1395 1884 1885 1 6 1394 1071 1072 1396 1885 1886 1 6 1395 1072 1073 1397 1886 1887 1 6 1396 1073 1074 1398 1887 1888 1 6 1397 1074 1075 1399 1888 1889 1 6 1398 1075 1076 1400 1889 1890 1 6 1399 1076 1077 1401 1890 1891 1 6 1400 1077 1078 1402 1891 1892 1 6 1401 1078 1079 1403 1892 1893 1 6 1402 1079 1080 1404 1893 1894 1 6 1403 1080 1081 1405 1894 1895 1 6 1404 1081 1082 1406 1895 1896 1 6 1405 1082 1083 1407 1896 1897 1 6 1406 1083 1084 1408 1897 1898 1 6 1407 1084 1085 1409 1898 1899 1 6 1408 1085 1086 1410 1899 1900 1 6 1409 1086 1087 1411 1900 1901 1 6 1410 1087 1088 1412 1901 1902 1 6 1411 1088 1089 1413 1902 1903 1 6 1412 1089 1090 1414 1903 1904 1 6 1413 1090 1091 1415 1904 1905 1 6 1414 1091 1092 1416 1905 1906 1 6 1415 1092 1093 1417 1906 1907 1 6 1416 1093 1094 1418 1907 1908 1 6 1417 1094 1095 1419 1908 1909 1 6 1418 1095 1096 1420 1909 1910 1 6 1419 1096 1097 1421 1910 1911 1 6 1420 1097 1098 1422 1911 1912 1 6 1421 1098 1099 1423 1912 1913 1 6 1422 1099 1100 1424 1913 1914 1 6 1423 1100 1101 1425 1914 1915 1 6 1424 1101 1102 1426 1915 1916 1 6 1425 1102 1103 1427 1916 1917 1 6 1426 1103 1104 1428 1917 1918 1 6 1427 1104 1105 1429 1918 1919 1 6 1428 1105 1106 1430 1919 1920 1 6 1429 1106 1107 1431 1920 1921 1 6 1430 1107 1108 1432 1921 1922 1 6 1431 1108 1109 1433 1922 1923 1 6 1432 1109 1110 1434 1923 1924 1 6 1433 1110 1111 1435 1924 1925 1 6 1434 1111 1112 1436 1925 1926 1 6 1435 1112 1113 1115 1437 1926 1 6 1436 1115 1116 1117 1438 1926 1 6 1437 1117 1118 1439 1926 1927 1 6 1438 1118 1119 1440 1927 1928 1 6 1439 1119 1120 1441 1928 1929 1 6 1440 1120 1121 1442 1929 1930 1 6 1441 1121 1122 1443 1930 1931 1 6 1442 1122 1123 1444 1931 1932 1 6 1443 1123 1124 1445 1461 1932 1 6 1444 1124 1125 1446 1461 1462 1 6 1445 1125 1126 1447 1462 1463 1 6 1446 1126 1127 1448 1463 1464 1 6 1447 1127 1128 1449 1464 1465 1 6 1448 1128 1129 1130 1450 1465 1 6 1449 1130 1451 1465 1466 1467 1 6 1450 1130 1131 1452 1467 1468 1 6 1451 1131 1132 1453 1454 1468 1 6 1452 1132 1454 1455 1456 1133 1 6 1452 1453 1455 1468 1469 1470 1 6 1454 1453 1456 1470 1471 1472 1 6 1455 1453 1133 1472 1473 1152 2 6 1198 1199 1458 1500 1501 1679 2 6 1457 1199 1200 1459 1679 1680 2 6 1458 1200 1201 1460 1680 1681 2 6 1459 1201 1202 1681 1684 1685 1 6 1444 1445 1462 1932 1933 1934 1 6 1461 1445 1446 1463 1934 1935 1 6 1462 1446 1447 1464 1935 1936 1 6 1463 1447 1448 1465 1936 1937 1 6 1464 1448 1449 1450 1466 1937 1 6 1465 1450 1467 1937 1938 1939 1 6 1466 1450 1451 1468 1939 1940 1 6 1467 1451 1452 1454 1469 1940 1 6 1468 1454 1470 1940 1941 1942 1 6 1469 1454 1455 1471 1942 1943 1 6 1470 1455 1472 1943 1944 1945 1 6 1471 1455 1456 1473 1945 1946 1 6 1472 1456 1152 1153 1490 1946 2 7 76 2 1475 1608 1604 1609 1618 2 6 1474 2 77 1476 1620 1618 2 6 1475 77 78 1477 1620 1621 2 6 1476 78 79 1478 1621 1622 2 6 1477 79 80 1479 1630 1622 2 6 1478 80 81 1480 1630 1631 2 6 1479 81 82 1481 1631 1632 2 6 1480 82 83 1482 1635 1632 2 6 1481 83 84 1483 1485 1635 2 6 1482 84 85 1160 1484 1485 2 6 1483 1160 1485 1486 1487 1488 2 6 1483 1484 1486 1502 1635 1482 2 6 1485 1484 1487 1502 1503 1504 2 6 1486 1484 1488 1504 1505 1489 2 6 1487 1484 1160 1161 1174 1489 2 6 1488 1174 1176 1505 1487 1642 1 6 1473 1153 1154 1155 1491 1946 1 6 1490 1155 1492 1946 1947 1948 1 6 1491 1155 1156 1493 1948 1949 1 6 1492 1156 1157 1494 1495 1949 1 6 1493 1157 1495 1496 1497 1158 1 6 1493 1494 1496 1951 1949 1952 1 6 1495 1494 1497 1952 1530 1529 1 6 1496 1494 1158 1159 1498 1529 1 6 1144 1145 1499 1159 1497 1529 1 6 1498 1145 1146 1164 1527 1529 2 6 1197 1198 1457 1501 1675 1676 2 6 1500 1457 1676 1677 1678 1679 2 6 1485 1486 1503 1637 1634 1635 2 6 1502 1486 1504 1637 1638 1639 2 6 1503 1486 1487 1505 1639 1640 2 6 1504 1487 1489 1640 1641 1642 1 6 583 589 590 1507 1508 582 1 6 1506 590 1508 1509 1513 1514 1 6 1506 1507 1509 1510 1517 582 1 6 1508 1507 1510 1511 1512 1513 1 6 1508 1509 1511 1517 1518 1519 1 6 1510 1509 1512 1523 1519 1537 1 6 1511 1509 1513 1537 1538 1539 1 6 1512 1509 1507 1514 601 1539 1 6 1513 1507 601 599 591 590 1 6 577 578 581 1516 2474 576 1 6 1515 581 1517 1518 1521 2474 1 6 1516 581 582 1508 1510 1518 1 6 1517 1510 1519 1520 1521 1516 1 6 1518 1510 1520 1522 1523 1511 1 6 1518 1519 1521 911 910 1522 1 6 1518 1520 911 1516 2474 914 1 6 910 1520 1519 1523 908 909 1 6 1522 1519 1511 908 1536 1537 1 6 1172 1173 1525 3337 3338 4250 1 6 1524 1173 1526 3130 2205 4250 1 6 1525 1173 24 25 3130 9781 1 6 1499 1164 1528 1529 1530 1531 1 6 1527 1164 1165 1531 1532 1533 1 6 1497 1498 1499 1527 1530 1496 1 6 1529 1527 1531 1952 1496 1953 1 6 1530 1527 1528 1532 1953 1954 1 6 1531 1528 1533 1534 1954 1955 1 6 1532 1528 1534 1535 1166 1165 1 6 1532 1533 1535 1955 1956 1957 1 6 1534 1533 1166 1541 1960 1957 1 6 908 1523 1537 1542 1543 907 1 6 1536 1523 1511 1512 1538 1542 1 6 1537 1512 1539 1540 1545 1542 1 6 1538 1512 1513 601 602 1540 1 6 1539 602 1538 1582 1545 1583 1 6 1535 1166 1167 1960 1961 1962 1 6 1536 1537 1543 1544 1545 1538 1 6 1536 1542 1544 1562 1563 907 1 6 1543 1542 1545 1562 1580 1577 1 6 1544 1542 1538 1582 1580 1540 1 6 1211 1212 1547 1556 1557 1558 1 6 1546 1212 1213 1548 1561 1558 1 6 1547 1213 1214 1549 1710 1561 1 6 1548 1214 1215 1550 1551 1710 1 6 1549 1215 1551 1552 1553 1216 1 6 1549 1550 1552 1710 1711 1712 1 6 1551 1550 1553 1554 1712 1713 1 6 1552 1550 1554 1555 1217 1216 1 6 1552 1553 1555 1713 1714 1715 1 6 1554 1553 1217 1715 1716 1218 1 6 1210 1211 1546 1557 1695 1696 1 6 1556 1546 1558 1559 1696 1697 1 6 1557 1546 1559 1560 1561 1547 1 6 1557 1558 1560 1697 1698 1699 1 6 1559 1558 1561 1699 1700 1709 1 6 1560 1558 1547 1709 1710 1548 1 6 1543 1544 1563 1564 1576 1577 1 6 1543 1562 1564 905 907 906 1 6 1563 1562 905 1565 1566 1576 1 6 905 1564 1566 1567 2085 904 1 6 1565 1564 1567 1568 1569 1576 1 6 1565 1566 1568 2085 3766 3767 1 6 1567 1566 1569 1570 1571 3767 1 6 1568 1566 1570 1574 1575 1576 1 6 1568 1569 1571 1572 1573 1574 1 7 1568 1570 1572 3769 3767 6317 6319 1 5 1571 1570 1573 6319 6320 1 7 1572 1570 1574 6320 6361 6360 2475 1 6 1573 1570 1569 1575 1578 2475 1 6 1574 1569 1576 1577 1578 1579 1 6 1575 1569 1566 1564 1562 1577 1 6 1576 1562 1575 1579 1580 1544 1 6 1574 1575 1579 1586 1587 2475 1 6 1578 1575 1577 1580 1581 1586 1 6 1579 1577 1544 1581 1582 1545 1 6 1579 1580 1582 1584 1585 1586 1 6 1581 1580 1545 1540 1583 1584 1 6 1582 1540 1584 1602 603 602 1 6 1582 1583 1581 1585 1601 1602 1 6 1581 1584 1586 1591 1588 1601 1 6 1581 1585 1579 1578 1587 1588 1 6 1578 1586 1588 1589 2475 2476 1 6 1587 1586 1589 1590 1591 1585 1 6 1587 1588 1590 6354 6353 2476 1 6 1589 1588 1591 1592 1594 6354 1 6 1590 1588 1585 1592 1593 1601 1 6 1590 1591 1593 1594 1595 1596 1 6 1592 1591 1599 1596 1600 1601 1 6 1590 1592 1595 6358 6356 6354 1 6 1594 1592 1596 1597 3970 6358 1 6 1595 1592 1597 1598 1599 1593 1 6 1595 1596 1598 3970 3969 6556 1 6 1597 1596 1599 6556 6557 611 1 6 1598 1596 1593 1600 611 609 1 6 1599 1593 1601 1602 608 609 1 6 1600 1593 1591 1585 1584 1602 1 6 1600 1601 1584 1583 603 608 2 6 74 75 1604 428 1605 1608 2 5 1603 75 76 1608 1474 2 6 428 1603 1606 1607 1608 3519 2 6 428 1605 1607 2493 409 3516 2 6 1606 1605 3518 3516 1613 3519 2 7 1605 1603 1604 1474 1609 1610 3519 2 5 1608 1474 1610 1611 1618 2 6 1608 1609 1611 1612 1613 3519 2 6 1610 1609 1612 1616 1617 1618 2 6 1610 1611 1613 1614 1615 1616 2 7 1610 1612 1614 3518 1607 3519 3523 2 6 1613 1612 1615 3523 3524 3528 2 6 1614 1612 1616 3093 3544 3528 2 6 1615 1612 1611 1617 3093 3094 2 6 1616 1611 1618 1619 3094 1624 2 7 1617 1611 1619 1620 1475 1609 1474 2 6 1617 1618 1620 1621 1623 1624 2 5 1619 1618 1475 1476 1621 2 6 1620 1476 1477 1622 1623 1619 2 6 1621 1477 1623 1629 1630 1478 2 6 1621 1622 1619 1624 1625 1629 2 7 1619 1623 1625 1626 1617 3094 4367 2 6 1624 1623 1626 1627 1628 1629 2 5 1624 1625 1627 4376 4367 2 7 1626 1625 1628 4377 4376 2862 7215 2 6 1627 1625 1629 2861 1633 2862 2 6 1628 1625 1623 1622 1630 2861 2 6 1629 1622 1478 1479 1631 2861 2 6 1630 1479 1480 1632 1633 2861 2 6 1631 1480 1633 1634 1635 1481 2 7 1631 1632 1634 1636 2861 1628 2862 2 6 1633 1632 1635 1636 1637 1502 2 6 1634 1632 1481 1502 1485 1482 2 5 1633 1634 1637 2862 2863 2 7 1636 1634 1502 1503 1638 2863 2864 2 5 1637 1503 1639 2864 2865 2 6 1638 1503 1504 1640 2865 2866 2 6 1639 1504 1505 1641 2866 2867 2 6 1640 1505 1642 2479 2490 2867 2 6 1641 1505 1489 1176 1643 2479 2 6 1642 1176 1178 1180 1644 2479 2 6 1643 1180 1645 2479 2480 2481 2 6 1644 1180 1181 1646 2481 1650 2 6 1645 1181 1647 1648 1649 1650 2 6 1646 1181 1648 1655 3097 1182 2 6 1646 1647 1649 1653 1654 1655 2 6 1646 1648 1650 1651 1652 1653 2 6 1646 1649 1651 2481 1645 2495 2 6 1650 1649 1652 2495 2496 2497 2 6 1651 1649 1653 2497 2498 2499 2 6 1652 1649 1648 1654 2499 2500 2 6 1653 1648 1655 1656 2500 2501 2 6 1654 1648 1647 1656 1657 3097 2 6 1654 1655 1657 1658 2501 2812 2 6 1656 1655 1658 1659 2241 3097 2 6 1656 1657 1659 1660 1661 2812 2 6 1658 1657 1660 1189 1188 2241 2 6 1658 1659 1661 1662 1190 1189 2 6 1658 1660 1662 1663 1664 2812 2 6 1661 1660 1663 1670 1191 1190 2 6 1661 1662 1664 1665 1669 1670 2 6 1661 1663 1665 1666 2812 2811 2 6 1664 1663 1666 1667 1668 1669 2 6 1664 1665 1667 2811 2813 2814 2 6 1666 1665 1668 2814 2815 2816 2 6 1667 1665 1669 2816 2821 2822 2 6 1668 1665 1663 1670 1671 2822 2 6 1669 1663 1662 1191 1192 1671 2 6 1670 1192 1193 1672 2822 1669 2 6 1671 1193 1194 1673 2823 2822 2 6 1672 1194 1195 1674 3147 2823 2 6 1673 1195 1196 1675 3147 3412 2 6 1674 1196 1197 1500 1676 3412 2 6 1675 1500 1501 1677 3412 3413 2 6 1676 1501 1678 3413 3414 3415 2 6 1677 1501 1679 3415 5381 5382 2 6 1678 1501 1457 1458 1680 5381 2 6 1679 1458 1459 1681 1682 5381 2 6 1680 1459 1460 1682 1683 1684 2 6 1680 1681 1683 3774 5383 5381 2 6 1682 1681 1684 3774 3775 3776 2 6 1683 1681 1460 1685 1686 3776 2 6 1684 1460 1686 1687 1203 1202 2 6 1684 1685 1687 3776 3777 3781 2 6 1686 1685 1203 1204 1688 3781 2 6 1687 1204 1205 1689 3781 3782 2 6 1688 1205 1206 1690 1691 3782 2 6 1689 1206 1691 1692 1693 1207 2 6 1689 1690 1692 3782 3783 3784 2 6 1691 1690 1693 3784 3785 3786 2 6 1692 1690 1207 1208 1694 3786 1 6 1693 1208 1209 1695 3786 3416 1 6 1694 1209 1210 1556 1696 3416 1 6 1695 1556 1557 1697 3416 3417 1 6 1696 1557 1559 1698 3417 3418 1 6 1697 1559 1699 1703 2223 3418 1 6 1698 1559 1560 1700 1701 1703 1 6 1699 1560 1701 1702 1708 1709 1 6 1699 1700 1702 1703 1704 1705 1 6 1701 1700 1705 1706 1707 1708 1 6 1699 1701 1704 1698 2223 2224 1 6 1703 1701 1705 2224 2225 2226 1 6 1704 1701 1702 1706 2226 2227 1 6 1705 1702 1707 2227 2228 2229 1 6 1706 1702 1708 2229 2230 2231 1 6 1707 1702 1700 1709 1711 2231 1 6 1708 1700 1560 1561 1710 1711 1 6 1709 1561 1548 1549 1551 1711 1 6 1710 1551 1712 2231 1708 1709 1 6 1711 1551 1552 1713 2232 2231 1 6 1712 1552 1554 1714 2240 2232 1 6 1713 1554 1715 2240 2560 2564 1 6 1714 1554 1555 1716 2564 2565 1 6 1715 1555 1218 1219 1717 2565 1 6 1716 1219 1220 1718 2565 2566 1 6 1717 1220 1221 1719 2569 2566 1 6 1718 1221 1222 1720 3463 2569 1 6 1719 1222 1223 1721 3462 3463 1 6 1720 1223 1224 1722 3469 3462 1 6 1721 1224 1225 1723 1724 3469 1 6 1722 1225 1724 1725 1726 1226 1 6 1722 1723 1725 2172 3467 3469 1 6 1724 1723 1726 2172 2173 2174 1 6 1725 1723 1226 1227 1727 2174 1 6 1726 1227 1228 1728 2174 2175 1 6 1727 1228 1229 1729 2175 2176 1 6 1728 1229 1230 1730 1731 2176 1 6 1729 1230 1731 1732 1733 1231 1 6 1729 1730 1732 2178 2176 2808 1 6 1731 1730 1733 3404 2808 3405 1 6 1732 1730 1231 1232 1734 3405 1 6 1733 1232 1233 1735 3405 3406 1 6 1734 1233 1234 1736 3406 3407 1 6 1735 1234 1235 1737 3407 3408 1 6 1736 1235 1236 1738 3408 3409 1 6 1737 1236 1237 1739 3409 3410 1 6 1738 1237 1238 1740 3410 3411 1 6 1739 1238 1239 1741 3197 3411 1 6 1740 1239 1240 1742 3191 3197 1 6 1741 1240 1241 1743 3191 1744 1 6 1742 1241 1242 1243 1244 1744 1 7 1743 1244 1245 1745 3191 1742 3199 1 6 1744 1245 1246 1746 2893 3199 1 6 1745 1246 1247 1747 2751 2893 1 6 1746 1247 1248 1249 1748 2751 1 6 1747 1249 1749 2233 2751 2752 1 6 1748 1249 1250 1750 2233 2234 1 6 1749 1250 1251 1751 2237 2234 1 6 1750 1251 1252 1752 2247 2237 1 6 1751 1252 1253 1753 2247 2253 1 6 1752 1253 1254 1754 2253 2254 1 6 1753 1254 1255 1755 2254 2255 1 6 1754 1255 1256 1756 2255 2256 1 6 1755 1256 1257 1258 1757 2256 1 6 1756 1258 1758 2256 2257 2258 1 6 1757 1258 1259 1759 2258 2259 1 6 1758 1259 1260 1760 2259 2260 1 6 1759 1260 1261 1761 2260 2261 1 6 1760 1261 1262 1762 2261 2262 1 6 1761 1262 1263 1763 2262 2263 1 6 1762 1263 1264 1764 2263 2264 1 6 1763 1264 1265 1765 2264 2265 1 6 1764 1265 1266 1766 2265 2266 1 6 1765 1266 1267 1767 2266 2267 1 6 1766 1267 1268 1768 2267 2268 1 6 1767 1268 1269 1769 2268 2269 1 6 1768 1269 1270 1770 2269 2270 1 6 1769 1270 1271 1771 2270 2271 1 6 1770 1271 1272 1772 2271 2272 1 6 1771 1272 1273 1773 2272 2273 1 6 1772 1273 1274 1774 2273 2274 1 6 1773 1274 1275 1775 2274 2275 1 6 1774 1275 1276 1776 2275 2276 1 6 1775 1276 1277 1777 2276 2277 1 6 1776 1277 1278 1778 2277 2278 1 6 1777 1278 1279 1779 2278 2279 1 6 1778 1279 1280 1780 2279 2280 1 6 1779 1280 1281 1781 2280 2281 1 6 1780 1281 1282 1782 2281 2282 1 6 1781 1282 1283 1783 2282 2283 1 6 1782 1283 1284 1784 2283 2284 1 6 1783 1284 1285 1785 2284 2285 1 6 1784 1285 1286 1786 2285 2286 1 6 1785 1286 1287 1787 2286 2287 1 6 1786 1287 1288 1788 2287 2288 1 6 1787 1288 1289 1789 2288 2289 1 6 1788 1289 1290 1790 2289 2290 1 6 1789 1290 1291 1791 2290 2291 1 6 1790 1291 1292 1792 2291 2292 1 6 1791 1292 1293 1793 2292 2293 1 6 1792 1293 1294 1794 2293 2294 1 6 1793 1294 1295 1795 2294 2295 1 6 1794 1295 1296 1796 2098 2295 1 6 1795 1296 1297 1797 2098 2099 1 6 1796 1297 1298 1300 2099 2100 1 6 1307 1308 1799 2106 2107 2108 1 6 1798 1308 1309 1800 2108 2109 1 6 1799 1309 1310 1801 2109 2110 1 6 1800 1310 1311 1802 2110 2111 1 6 1801 1311 1312 1803 2111 2112 1 6 1802 1312 1313 1804 2112 2113 1 6 1803 1313 1314 1805 2113 2114 1 6 1804 1314 1315 1806 2114 2115 1 6 1805 1315 1316 1807 2115 2116 1 6 1806 1316 1317 1808 2116 2117 1 6 1807 1317 1318 1809 2117 2118 1 6 1808 1318 1319 1810 2118 2119 1 6 1809 1319 1320 1811 2119 2120 1 6 1810 1320 1321 1812 2120 2121 1 6 1811 1321 1322 1813 2121 2122 1 6 1812 1322 1323 1814 2122 2123 1 6 1813 1323 1324 1815 2123 2124 1 6 1814 1324 1325 1816 2124 2125 1 6 1815 1325 1326 1817 2125 2126 1 6 1816 1326 1327 1818 2126 2127 1 6 1817 1327 1328 1819 2127 2128 1 6 1818 1328 1329 1820 2128 2129 1 6 1819 1329 1330 1821 2129 2130 1 6 1820 1330 1331 1822 2130 2131 1 6 1821 1331 1332 1823 2131 2132 1 6 1822 1332 1333 1824 2132 2133 1 6 1823 1333 1334 1825 2133 2134 1 6 1824 1334 1335 1826 2134 2135 2 6 1825 1335 1336 1337 1827 2135 2 6 1826 1337 1828 2135 2136 2137 2 6 1827 1337 1338 1829 2137 2138 2 6 1828 1338 1339 1830 2138 2139 2 6 1829 1339 1831 2139 2140 2141 2 6 1830 1339 1340 1341 1832 2141 2 6 1831 1341 1342 1833 2141 2142 2 6 1832 1342 1343 1834 2142 2143 2 6 1833 1343 1344 1835 2143 2144 2 6 1834 1344 1345 1836 2144 2145 2 6 1835 1345 1346 1347 1837 2145 2 6 1836 1347 1838 2150 2145 2165 2 6 1837 1347 1348 1839 2165 2166 2 6 1838 1348 1349 1840 2166 2167 2 6 1839 1349 1350 1841 2167 2168 2 6 1840 1350 1351 1842 2171 2168 2 6 1841 1351 1352 1843 2349 2171 2 6 1842 1352 1353 1844 2349 2350 2 6 1843 1353 1354 1845 2350 2351 2 6 1844 1354 1355 1846 2351 2352 2 6 1845 1355 1356 1847 2352 2353 2 6 1846 1356 1357 1848 2353 2354 2 6 1847 1357 1358 1849 2354 2355 2 6 1848 1358 1359 1850 2355 2356 2 6 1849 1359 1360 1851 2356 2357 2 6 1850 1360 1361 1852 2357 2358 2 6 1851 1361 1362 1853 2358 2359 2 6 1852 1362 1363 1854 2359 2360 1 6 1853 1363 1364 1855 2360 2361 1 6 1854 1364 1365 1856 1966 2361 1 6 1855 1365 1366 1857 1966 1967 1 6 1856 1366 1367 1858 1967 1968 1 6 1857 1367 1368 1859 1968 1969 1 6 1858 1368 1369 1860 1969 1970 1 6 1859 1369 1370 1861 1970 1971 1 6 1860 1370 1371 1862 1971 1972 1 6 1861 1371 1372 1863 1972 1973 1 6 1862 1372 1373 1864 1973 1974 1 6 1863 1373 1374 1865 1974 1975 1 6 1864 1374 1375 1866 1975 1976 1 6 1865 1375 1376 1867 1976 1977 1 6 1866 1376 1377 1868 1977 1978 1 6 1867 1377 1378 1869 1978 1979 1 6 1868 1378 1379 1870 1979 1980 1 6 1869 1379 1380 1871 1980 1981 1 6 1870 1380 1381 1872 1981 1982 1 6 1871 1381 1382 1873 1982 1983 1 6 1872 1382 1383 1874 1983 1984 1 6 1873 1383 1384 1875 1984 1985 1 6 1874 1384 1385 1876 1985 1986 1 6 1875 1385 1386 1877 1986 1987 1 6 1876 1386 1387 1878 1987 1988 1 6 1877 1387 1388 1879 1988 1989 1 6 1878 1388 1389 1880 1989 1990 1 6 1879 1389 1390 1881 1990 1991 1 6 1880 1390 1391 1882 1991 1992 1 6 1881 1391 1392 1883 1992 1993 1 6 1882 1392 1393 1884 1993 1994 1 6 1883 1393 1394 1885 1994 1995 1 6 1884 1394 1395 1886 1995 1996 1 6 1885 1395 1396 1887 1996 1997 1 6 1886 1396 1397 1888 1997 1998 1 6 1887 1397 1398 1889 1998 1999 1 6 1888 1398 1399 1890 1999 2000 1 6 1889 1399 1400 1891 2000 2001 1 6 1890 1400 1401 1892 2001 2002 1 6 1891 1401 1402 1893 2002 2003 1 6 1892 1402 1403 1894 2003 2004 1 6 1893 1403 1404 1895 2004 2005 1 6 1894 1404 1405 1896 2005 2006 1 6 1895 1405 1406 1897 2006 2007 1 6 1896 1406 1407 1898 2007 2008 1 6 1897 1407 1408 1899 2008 2009 1 6 1898 1408 1409 1900 2009 2010 1 6 1899 1409 1410 1901 2010 2011 1 6 1900 1410 1411 1902 2011 2012 1 6 1901 1411 1412 1903 2012 2013 1 6 1902 1412 1413 1904 2013 2014 1 6 1903 1413 1414 1905 2014 2015 1 6 1904 1414 1415 1906 2015 2016 1 6 1905 1415 1416 1907 2016 2017 1 6 1906 1416 1417 1908 2017 2018 1 6 1907 1417 1418 1909 2018 2019 1 6 1908 1418 1419 1910 2019 2020 1 6 1909 1419 1420 1911 2020 2021 1 6 1910 1420 1421 1912 2021 2022 1 6 1911 1421 1422 1913 2022 2023 1 6 1912 1422 1423 1914 2023 2024 1 6 1913 1423 1424 1915 2024 2025 1 6 1914 1424 1425 1916 2025 2026 1 6 1915 1425 1426 1917 2026 2027 1 6 1916 1426 1427 1918 2027 2028 1 6 1917 1427 1428 1919 2028 2029 1 6 1918 1428 1429 1920 2029 2030 1 6 1919 1429 1430 1921 2030 2031 1 6 1920 1430 1431 1922 2031 2032 1 6 1921 1431 1432 1923 2032 2033 1 6 1922 1432 1433 1924 2033 2034 1 6 1923 1433 1434 1925 2034 2035 1 6 1924 1434 1435 1926 2035 1927 1 6 1925 1435 1436 1437 1438 1927 1 7 1926 1438 1439 1928 2035 1925 2036 1 6 1927 1439 1440 1929 2036 2037 1 6 1928 1440 1441 1930 2037 2038 1 6 1929 1441 1442 1931 2038 2039 1 6 1930 1442 1443 1932 2039 2040 1 7 1931 1443 1444 1461 1933 2040 2041 1 5 1932 1461 1934 2041 2042 1 6 1933 1461 1462 1935 2042 2043 1 6 1934 1462 1463 1936 2043 2044 1 6 1935 1463 1464 1937 2044 2045 1 6 1936 1464 1465 1466 1938 2045 1 6 1937 1466 1939 2045 2046 2047 1 6 1938 1466 1467 1940 2047 2048 1 6 1939 1467 1468 1469 1941 2048 1 6 1940 1469 1942 2048 2049 2050 1 6 1941 1469 1470 1943 2050 2051 1 6 1942 1470 1471 1944 2051 2052 1 6 1943 1471 1945 2052 2053 2054 1 6 1944 1471 1472 1946 2054 1947 1 6 1945 1472 1473 1490 1491 1947 1 6 1946 1491 1948 2054 1945 2055 1 6 1947 1491 1492 1949 1950 2055 1 6 1948 1492 1950 1951 1495 1493 1 6 1948 1949 1951 2055 2056 2057 1 6 1950 1949 1495 1952 2057 2058 1 6 1951 1495 1496 1530 1953 2058 1 6 1952 1530 1531 1954 2058 2059 1 6 1953 1531 1532 1955 2059 2060 1 6 1954 1532 1534 1956 2060 2061 1 6 1955 1534 1957 1958 2061 2062 1 6 1956 1534 1958 1959 1960 1535 1 6 1956 1957 1959 2062 2063 2064 1 6 1958 1957 1960 2064 2065 2066 1 6 1959 1957 1535 1541 1961 2066 1 6 1960 1541 1962 2066 2067 2068 1 6 1961 1541 1167 1168 1963 2068 1 6 1962 1168 1964 1965 2070 2068 1 6 1963 1168 1965 887 886 1169 1 6 1963 1964 887 2072 2070 2075 1 6 1855 1856 1967 2361 2362 2363 1 6 1966 1856 1857 1968 2363 2364 1 6 1967 1857 1858 1969 2364 2365 1 6 1968 1858 1859 1970 2365 2366 1 6 1969 1859 1860 1971 2366 2367 1 6 1970 1860 1861 1972 2367 2368 1 6 1971 1861 1862 1973 2368 2369 1 6 1972 1862 1863 1974 2369 2370 1 6 1973 1863 1864 1975 2370 2371 1 6 1974 1864 1865 1976 2371 2372 1 6 1975 1865 1866 1977 2372 2373 1 6 1976 1866 1867 1978 2373 2374 1 6 1977 1867 1868 1979 2374 2375 1 6 1978 1868 1869 1980 2375 2376 1 6 1979 1869 1870 1981 2376 2377 1 6 1980 1870 1871 1982 2377 2378 1 6 1981 1871 1872 1983 2378 2379 1 6 1982 1872 1873 1984 2379 2380 1 6 1983 1873 1874 1985 2380 2381 1 6 1984 1874 1875 1986 2381 2382 1 6 1985 1875 1876 1987 2382 2383 1 6 1986 1876 1877 1988 2383 2384 1 6 1987 1877 1878 1989 2384 2385 1 6 1988 1878 1879 1990 2385 2386 1 6 1989 1879 1880 1991 2386 2387 1 6 1990 1880 1881 1992 2387 2388 1 6 1991 1881 1882 1993 2388 2389 1 6 1992 1882 1883 1994 2389 2390 1 6 1993 1883 1884 1995 2390 2391 1 6 1994 1884 1885 1996 2391 2392 1 6 1995 1885 1886 1997 2392 2393 1 6 1996 1886 1887 1998 2393 2394 1 6 1997 1887 1888 1999 2394 2395 1 6 1998 1888 1889 2000 2395 2396 1 6 1999 1889 1890 2001 2396 2397 1 6 2000 1890 1891 2002 2397 2398 1 6 2001 1891 1892 2003 2398 2399 1 6 2002 1892 1893 2004 2399 2400 1 6 2003 1893 1894 2005 2400 2401 1 6 2004 1894 1895 2006 2401 2402 1 6 2005 1895 1896 2007 2402 2403 1 6 2006 1896 1897 2008 2403 2404 1 6 2007 1897 1898 2009 2404 2405 1 6 2008 1898 1899 2010 2405 2406 1 6 2009 1899 1900 2011 2406 2407 1 6 2010 1900 1901 2012 2407 2408 1 6 2011 1901 1902 2013 2408 2409 1 6 2012 1902 1903 2014 2409 2410 1 6 2013 1903 1904 2015 2410 2411 1 6 2014 1904 1905 2016 2411 2412 1 6 2015 1905 1906 2017 2412 2413 1 6 2016 1906 1907 2018 2413 2414 1 6 2017 1907 1908 2019 2414 2415 1 6 2018 1908 1909 2020 2415 2416 1 6 2019 1909 1910 2021 2416 2417 1 6 2020 1910 1911 2022 2417 2418 1 6 2021 1911 1912 2023 2418 2419 1 6 2022 1912 1913 2024 2419 2420 1 6 2023 1913 1914 2025 2420 2421 1 6 2024 1914 1915 2026 2421 2422 1 6 2025 1915 1916 2027 2422 2423 1 6 2026 1916 1917 2028 2423 2424 1 6 2027 1917 1918 2029 2424 2425 1 6 2028 1918 1919 2030 2425 2426 1 6 2029 1919 1920 2031 2426 2427 1 6 2030 1920 1921 2032 2427 2428 1 6 2031 1921 1922 2033 2428 2429 1 6 2032 1922 1923 2034 2429 2430 1 6 2033 1923 1924 2035 2430 2431 1 6 2034 1924 1925 1927 2036 2431 1 5 2035 1927 1928 2037 2431 1 6 2036 1928 1929 2038 2431 2432 1 6 2037 1929 1930 2039 2432 2433 1 6 2038 1930 1931 2040 2433 2434 1 7 2039 1931 1932 2041 2434 2435 2436 1 5 2040 1932 1933 2042 2436 1 7 2041 1933 1934 2043 2436 2437 2438 1 6 2042 1934 1935 2044 2438 2439 1 6 2043 1935 1936 2045 2439 2440 1 6 2044 1936 1937 1938 2046 2440 1 6 2045 1938 2047 2440 2441 2442 1 6 2046 1938 1939 2048 2442 2443 1 6 2047 1939 1940 1941 2049 2443 1 6 2048 1941 2050 2443 2444 2448 1 6 2049 1941 1942 2051 2448 2449 1 6 2050 1942 1943 2052 2449 2450 1 6 2051 1943 1944 2053 2450 2451 1 6 2052 1944 2054 2451 2452 2453 1 6 2053 1944 1945 1947 2055 2453 1 6 2054 1947 1948 1950 2056 2453 1 6 2055 1950 2057 2453 2454 2455 1 6 2056 1950 1951 2058 2455 2456 1 6 2057 1951 1952 1953 2059 2456 1 6 2058 1953 1954 2060 2456 2457 1 6 2059 1954 1955 2061 2457 2458 1 6 2060 1955 1956 2062 2458 2459 1 6 2061 1956 1958 2063 2459 2460 1 6 2062 1958 2064 2460 2461 2462 1 6 2063 1958 1959 2065 2462 2463 1 6 2064 1959 2066 2463 2464 2465 1 6 2065 1959 1960 1961 2067 2465 1 6 2066 1961 2068 2069 2465 2466 1 6 2067 1961 1962 2069 2070 1963 1 6 2067 2068 2070 2071 2466 2469 1 6 2069 2068 1963 2071 2072 1965 1 6 2069 2070 2072 2073 2469 2470 1 6 2071 2070 1965 2073 2074 2075 1 6 2071 2072 2074 2473 2470 2086 1 6 2073 2072 2075 2076 2078 2086 1 6 2074 2072 1965 887 888 2076 1 6 2075 888 889 2077 2078 2074 1 6 2076 889 2078 2079 2080 2081 1 6 2076 2077 2079 2074 2086 2087 1 6 2078 2077 2080 2096 2087 2082 1 6 2079 2077 2081 898 901 2082 1 6 2080 2077 889 890 894 898 1 6 2080 901 903 2083 2096 2079 1 6 2082 903 2084 2096 2095 9776 1 6 2083 903 904 2085 6093 9776 1 6 2084 904 1565 1567 3766 6093 1 6 2074 2078 2087 2088 2473 2073 1 6 2086 2078 2088 2089 2096 2079 1 6 2086 2087 2089 2090 2091 2473 1 6 2088 2087 2090 2094 2095 2096 1 6 2088 2089 2091 2092 2093 2094 1 6 2088 2090 2092 2489 2472 2473 1 6 2091 2090 2093 2489 5947 5948 1 6 2092 2090 2094 3135 5947 3132 1 6 2093 2090 2089 2095 3131 3132 1 6 2094 2089 2096 3131 2083 9776 1 6 2095 2089 2087 2079 2082 2083 1 6 631 403 633 650 649 404 1 6 1795 1796 2099 2295 2296 2297 1 6 2098 1796 1797 2100 2297 2101 1 5 2099 1797 1300 1301 2101 1 6 2100 1301 1302 2102 2297 2099 1 6 2101 1302 1303 2103 2297 2298 1 6 2102 1303 1304 2104 2298 2299 1 6 2103 1304 1305 2105 2299 2300 1 6 2104 1305 1306 2106 2300 2301 1 7 2105 1306 1307 1798 2107 2301 2302 1 5 2106 1798 2108 2302 2303 1 6 2107 1798 1799 2109 2303 2304 1 6 2108 1799 1800 2110 2304 2305 1 6 2109 1800 1801 2111 2305 2306 1 6 2110 1801 1802 2112 2306 2307 1 6 2111 1802 1803 2113 2307 2308 1 6 2112 1803 1804 2114 2308 2309 1 6 2113 1804 1805 2115 2309 2310 1 6 2114 1805 1806 2116 2310 2311 1 6 2115 1806 1807 2117 2311 2312 1 6 2116 1807 1808 2118 2312 2313 1 6 2117 1808 1809 2119 2313 2314 1 6 2118 1809 1810 2120 2314 2315 1 6 2119 1810 1811 2121 2315 2316 1 6 2120 1811 1812 2122 2316 2317 1 6 2121 1812 1813 2123 2317 2318 1 6 2122 1813 1814 2124 2318 2319 1 6 2123 1814 1815 2125 2319 2320 1 6 2124 1815 1816 2126 2320 2321 1 6 2125 1816 1817 2127 2321 2322 1 6 2126 1817 1818 2128 2322 2323 1 6 2127 1818 1819 2129 2323 2324 1 6 2128 1819 1820 2130 2324 2325 1 6 2129 1820 1821 2131 2325 2326 1 6 2130 1821 1822 2132 2326 2327 1 6 2131 1822 1823 2133 2151 2327 1 6 2132 1823 1824 2134 2151 2152 1 6 2133 1824 1825 2135 2152 2153 1 6 2134 1825 1826 1827 2136 2153 2 6 2135 1827 2137 2153 2154 2155 2 6 2136 1827 1828 2138 2155 2156 2 6 2137 1828 1829 2139 2156 2157 2 6 2138 1829 1830 2140 2157 2158 2 6 2139 1830 2141 2146 2158 2159 2 6 2140 1830 1831 1832 2142 2146 2 6 2141 1832 1833 2143 2146 2147 2 6 2142 1833 1834 2144 2147 2148 2 6 2143 1834 1835 2145 2148 2149 2 6 2144 1835 1836 2149 2150 1837 2 6 2140 2141 2142 2147 2159 2160 2 6 2146 2142 2143 2148 2160 2161 2 6 2147 2143 2144 2149 2161 2162 2 6 2148 2144 2145 2150 2162 2163 2 6 2149 2145 1837 2163 2164 2165 1 6 2132 2133 2152 2327 2328 2329 1 6 2151 2133 2134 2153 2329 2330 1 6 2152 2134 2135 2136 2154 2330 2 6 2153 2136 2155 2330 2331 2332 2 6 2154 2136 2137 2156 2332 2333 2 6 2155 2137 2138 2157 2333 2334 2 6 2156 2138 2139 2158 2334 2335 2 6 2157 2139 2140 2159 2335 2336 2 6 2158 2140 2146 2160 2336 2337 2 6 2159 2146 2147 2161 2337 2338 2 6 2160 2147 2148 2162 2338 2339 2 6 2161 2148 2149 2163 2339 2340 2 6 2162 2149 2150 2164 2340 2341 2 6 2163 2150 2165 2341 2342 2343 2 6 2164 2150 1837 1838 2166 2343 2 6 2165 1838 1839 2167 2343 2344 2 6 2166 1839 1840 2168 2169 2344 2 6 2167 1840 2169 2170 2171 1841 2 6 2167 2168 2170 2344 2345 2346 2 6 2169 2168 2171 2346 2347 2348 2 6 2170 2168 1841 2348 2349 1842 1 6 1724 1725 2173 3468 3467 4747 1 6 2172 1725 2174 2804 3395 4747 1 6 2173 1725 1726 1727 2175 2804 1 6 2174 1727 1728 2176 2177 2804 1 6 2175 1728 2177 2178 1731 1729 1 6 2175 2176 2178 2804 2805 2806 1 6 2177 2176 1731 2806 2807 2808 1 6 27 28 2180 2181 3851 3852 1 6 2179 28 29 2181 2182 2503 1 6 2179 2180 2182 2183 2199 3851 1 6 2181 2180 2183 2184 2502 2503 1 6 2181 2182 2184 2185 2198 2199 1 6 2183 2182 2185 2186 2193 2502 1 6 2183 2184 2186 2187 2197 2198 1 6 2185 2184 2187 2188 2192 2193 1 6 2185 2186 2188 2189 2197 9713 1 6 2187 2186 2189 2190 2191 2192 1 7 2187 2188 2190 9709 9708 9712 9713 1 5 2189 2188 2191 9710 9709 1 6 2190 2188 2192 2510 2512 9710 1 6 2191 2188 2186 2193 2510 2506 1 6 2192 2186 2184 2502 2504 2506 1 6 415 39 40 2195 9704 6488 1 6 2194 40 41 2196 6488 9705 1 7 2195 41 42 9705 43 9771 9773 1 6 2185 2187 2198 9713 9714 9720 1 6 2185 2197 2183 2199 2200 9720 1 6 2183 2198 2200 2201 2181 3851 1 6 2199 2198 2201 2202 9720 2217 1 6 2199 2200 2202 2203 3129 3851 1 6 2201 2200 2203 2204 2217 2208 1 6 2201 2202 2204 2205 3129 3130 1 6 2203 2202 2205 2206 2207 2208 1 6 2203 2204 2206 3130 1525 4250 1 6 2205 2204 2207 3343 3341 4250 1 6 2206 2204 2208 2209 3343 3344 1 6 2207 2204 2209 2210 2217 2202 1 6 2207 2208 2210 2211 3344 3345 1 6 2209 2208 2211 2212 2216 2217 1 6 2209 2210 2212 2213 3348 3345 1 6 2211 2210 2213 2214 2215 2216 1 6 2211 2212 2214 6522 6523 3348 1 6 2213 2212 2215 9716 9719 6522 1 6 2214 2212 2216 9716 9715 9714 1 6 2215 2212 2210 2217 9714 9720 1 6 2216 2210 2208 2202 9720 2200 1 6 408 59 60 2219 2545 2546 1 6 2218 60 61 2220 2549 2546 1 6 2219 61 62 2221 2549 2551 1 6 2220 62 63 2222 2551 6702 1 6 2221 63 6701 6700 6702 64 1 6 1698 1703 2224 3418 3419 3420 1 6 2223 1703 1704 2225 3420 3421 1 6 2224 1704 2226 3421 3422 3426 1 6 2225 1704 1705 2227 3426 3427 1 6 2226 1705 1706 2228 3427 3428 1 6 2227 1706 2229 3428 3429 3430 1 6 2228 1706 1707 2230 2238 3430 1 6 2229 1707 2231 2232 2238 2239 1 6 2230 1707 2232 1712 1711 1708 1 6 2230 2231 1712 2239 2240 1713 1 6 1748 1749 2234 2235 2242 2752 1 6 2233 1749 2235 2236 2237 1750 1 6 2233 2234 2236 2242 2243 2244 1 6 2235 2234 2237 2244 2245 2246 1 6 2236 2234 1750 2246 2247 1751 1 6 2229 2230 2239 3430 3431 3435 1 6 2238 2230 2232 2240 3435 2561 1 6 2239 2232 1713 1714 2560 2561 2 6 1187 1188 1659 1657 3097 1184 1 6 2233 2235 2243 2752 2753 2754 1 6 2242 2235 2244 2754 2755 2756 1 6 2243 2235 2236 2245 2756 2757 1 6 2244 2236 2246 2757 2758 2759 1 6 2245 2236 2237 2247 2759 2760 1 6 2246 2237 1751 1752 2253 2760 1 6 34 35 2249 3331 3332 3333 1 6 2248 35 36 2250 3336 3333 1 6 2249 36 37 416 2251 3336 1 7 2250 416 2252 6490 6491 9706 3336 1 5 2251 416 415 6490 9704 1 6 2247 1752 1753 2254 2760 2761 1 6 2253 1753 1754 2255 2761 2762 1 6 2254 1754 1755 2256 2762 2763 1 6 2255 1755 1756 1757 2257 2763 1 6 2256 1757 2258 2763 2764 2765 1 6 2257 1757 1758 2259 2765 2766 1 6 2258 1758 1759 2260 2766 2767 1 6 2259 1759 1760 2261 2767 2768 1 6 2260 1760 1761 2262 2768 2769 1 6 2261 1761 1762 2263 2571 2769 1 6 2262 1762 1763 2264 2571 2572 1 6 2263 1763 1764 2265 2572 2573 1 6 2264 1764 1765 2266 2573 2574 1 6 2265 1765 1766 2267 2574 2575 1 6 2266 1766 1767 2268 2575 2576 1 6 2267 1767 1768 2269 2576 2577 1 6 2268 1768 1769 2270 2577 2578 1 6 2269 1769 1770 2271 2578 2579 1 6 2270 1770 1771 2272 2579 2580 1 6 2271 1771 1772 2273 2580 2581 1 6 2272 1772 1773 2274 2581 2582 1 6 2273 1773 1774 2275 2582 2583 1 6 2274 1774 1775 2276 2583 2584 1 6 2275 1775 1776 2277 2584 2585 1 6 2276 1776 1777 2278 2585 2586 1 6 2277 1777 1778 2279 2586 2587 1 6 2278 1778 1779 2280 2587 2588 1 6 2279 1779 1780 2281 2588 2589 1 6 2280 1780 1781 2282 2589 2590 1 6 2281 1781 1782 2283 2590 2591 1 6 2282 1782 1783 2284 2591 2592 1 6 2283 1783 1784 2285 2592 2593 1 6 2284 1784 1785 2286 2593 2594 1 6 2285 1785 1786 2287 2594 2595 1 6 2286 1786 1787 2288 2595 2596 1 6 2287 1787 1788 2289 2596 2597 1 6 2288 1788 1789 2290 2597 2598 1 6 2289 1789 1790 2291 2598 2599 1 6 2290 1790 1791 2292 2599 2600 1 6 2291 1791 1792 2293 2600 2601 1 6 2292 1792 1793 2294 2601 2602 1 6 2293 1793 1794 2295 2602 2603 1 6 2294 1794 1795 2098 2296 2603 1 6 2295 2098 2297 2603 2604 2605 1 7 2296 2098 2099 2101 2102 2298 2605 1 6 2297 2102 2103 2299 2605 2606 1 6 2298 2103 2104 2300 2606 2607 1 6 2299 2104 2105 2301 2607 2608 1 6 2300 2105 2106 2302 2608 2609 1 6 2301 2106 2107 2303 2609 2610 1 6 2302 2107 2108 2304 2610 2611 1 6 2303 2108 2109 2305 2611 2612 1 6 2304 2109 2110 2306 2612 2613 1 6 2305 2110 2111 2307 2613 2614 1 6 2306 2111 2112 2308 2614 2615 1 6 2307 2112 2113 2309 2615 2616 1 6 2308 2113 2114 2310 2619 2616 1 6 2309 2114 2115 2311 2619 2620 1 6 2310 2115 2116 2312 2620 2621 1 6 2311 2116 2117 2313 2621 2622 1 6 2312 2117 2118 2314 2622 2623 1 6 2313 2118 2119 2315 2623 2624 1 6 2314 2119 2120 2316 2624 2625 1 6 2315 2120 2121 2317 2625 2626 1 6 2316 2121 2122 2318 2626 2627 1 6 2317 2122 2123 2319 2627 2628 1 6 2318 2123 2124 2320 2628 2629 1 6 2319 2124 2125 2321 2629 2630 1 6 2320 2125 2126 2322 2630 2631 1 6 2321 2126 2127 2323 2631 2632 1 6 2322 2127 2128 2324 2632 2633 1 6 2323 2128 2129 2325 2633 2634 1 6 2324 2129 2130 2326 2634 2635 1 6 2325 2130 2131 2327 2635 2636 1 6 2326 2131 2132 2151 2328 2636 1 6 2327 2151 2329 2636 2637 2638 1 6 2328 2151 2152 2330 2641 2638 1 6 2329 2152 2153 2154 2331 2641 2 6 2330 2154 2332 2642 2641 2643 2 6 2331 2154 2155 2333 2643 2644 2 6 2332 2155 2156 2334 2644 2645 2 6 2333 2156 2157 2335 2645 2646 2 6 2334 2157 2158 2336 2646 2647 2 6 2335 2158 2159 2337 2647 2648 2 6 2336 2159 2160 2338 2648 2649 2 6 2337 2160 2161 2339 2649 2650 2 6 2338 2161 2162 2340 2650 2651 2 6 2339 2162 2163 2341 2651 2652 2 6 2340 2163 2164 2342 2652 2653 2 6 2341 2164 2343 2653 2654 2655 2 6 2342 2164 2165 2166 2344 2655 2 6 2343 2166 2167 2169 2345 2655 2 6 2344 2169 2346 2655 2656 2657 2 6 2345 2169 2170 2347 2657 2658 2 6 2346 2170 2348 2658 2659 2660 2 6 2347 2170 2171 2349 2660 2661 2 6 2348 2171 1842 1843 2350 2661 2 6 2349 1843 1844 2351 2661 2662 2 6 2350 1844 1845 2352 2662 2663 2 6 2351 1845 1846 2353 2663 2664 2 6 2352 1846 1847 2354 2664 2665 2 6 2353 1847 1848 2355 2665 2666 2 6 2354 1848 1849 2356 2666 2667 2 6 2355 1849 1850 2357 2667 2668 2 6 2356 1850 1851 2358 2668 2669 2 6 2357 1851 1852 2359 2669 2670 2 6 2358 1852 1853 2360 2670 2671 2 6 2359 1853 1854 2361 2671 2672 1 6 2360 1854 1855 1966 2362 2672 1 6 2361 1966 2363 2672 2673 2674 1 6 2362 1966 1967 2364 2674 2675 1 6 2363 1967 1968 2365 2675 2676 1 6 2364 1968 1969 2366 2676 2677 1 6 2365 1969 1970 2367 2677 2678 1 6 2366 1970 1971 2368 2678 2679 1 6 2367 1971 1972 2369 2679 2680 1 6 2368 1972 1973 2370 2680 2681 1 6 2369 1973 1974 2371 2681 2682 1 6 2370 1974 1975 2372 2682 2683 1 6 2371 1975 1976 2373 2683 2684 1 6 2372 1976 1977 2374 2684 2685 1 6 2373 1977 1978 2375 2685 2686 1 6 2374 1978 1979 2376 2686 2687 1 6 2375 1979 1980 2377 2687 2688 1 6 2376 1980 1981 2378 2688 2689 1 6 2377 1981 1982 2379 2689 2690 1 6 2378 1982 1983 2380 2690 2691 1 6 2379 1983 1984 2381 2691 2692 1 6 2380 1984 1985 2382 2692 2693 1 6 2381 1985 1986 2383 2693 2694 1 6 2382 1986 1987 2384 2694 2695 1 6 2383 1987 1988 2385 2695 2696 1 6 2384 1988 1989 2386 2696 2697 1 6 2385 1989 1990 2387 2697 2698 1 6 2386 1990 1991 2388 2698 2699 1 6 2387 1991 1992 2389 2699 2700 1 6 2388 1992 1993 2390 2700 2701 1 6 2389 1993 1994 2391 2701 2702 1 6 2390 1994 1995 2392 2702 2703 1 6 2391 1995 1996 2393 2703 2704 1 6 2392 1996 1997 2394 2704 2705 1 6 2393 1997 1998 2395 2705 2706 1 6 2394 1998 1999 2396 2706 2707 1 6 2395 1999 2000 2397 2707 2708 1 6 2396 2000 2001 2398 2708 2709 1 6 2397 2001 2002 2399 2513 2709 1 6 2398 2002 2003 2400 2513 2514 1 6 2399 2003 2004 2401 2514 2515 1 6 2400 2004 2005 2402 2515 2516 1 6 2401 2005 2006 2403 2516 2517 1 6 2402 2006 2007 2404 2517 2518 1 6 2403 2007 2008 2405 2518 2519 1 6 2404 2008 2009 2406 2519 2520 1 6 2405 2009 2010 2407 2520 2521 1 6 2406 2010 2011 2408 2521 2522 1 6 2407 2011 2012 2409 2522 2523 1 6 2408 2012 2013 2410 2523 2524 1 6 2409 2013 2014 2411 2524 2525 1 6 2410 2014 2015 2412 2525 2526 1 6 2411 2015 2016 2413 2526 2527 1 6 2412 2016 2017 2414 2527 2528 1 6 2413 2017 2018 2415 2528 2529 1 6 2414 2018 2019 2416 2529 2530 1 6 2415 2019 2020 2417 2530 2531 1 6 2416 2020 2021 2418 2531 2532 1 6 2417 2021 2022 2419 2532 2533 1 6 2418 2022 2023 2420 2533 2534 1 6 2419 2023 2024 2421 2534 2535 1 6 2420 2024 2025 2422 2535 2536 1 6 2421 2025 2026 2423 2536 2537 1 6 2422 2026 2027 2424 2537 2538 1 6 2423 2027 2028 2425 2538 2539 1 6 2424 2028 2029 2426 2539 2540 1 6 2425 2029 2030 2427 2540 2541 1 6 2426 2030 2031 2428 2541 2542 1 6 2427 2031 2032 2429 2542 2543 1 6 2428 2032 2033 2430 2543 2544 1 6 2429 2033 2034 2431 2544 2432 1 6 2430 2034 2035 2036 2037 2432 1 7 2431 2037 2038 2433 2544 2430 2556 1 6 2432 2038 2039 2434 2556 2557 1 6 2433 2039 2040 2435 2557 2558 1 6 2434 2040 2436 2558 2559 2437 1 5 2435 2040 2041 2042 2437 1 6 2436 2042 2438 2559 2435 2745 1 6 2437 2042 2043 2439 2745 2746 1 7 2438 2043 2044 2440 2746 2747 2748 1 6 2439 2044 2045 2046 2441 2748 1 6 2440 2046 2442 2748 2749 2750 1 6 2441 2046 2047 2443 2750 2445 1 6 2442 2047 2048 2049 2444 2445 1 6 2443 2049 2445 2446 2447 2448 1 6 2443 2444 2446 2750 2442 3060 1 6 2445 2444 2447 3060 3061 3062 1 6 2446 2444 2448 3062 3063 3064 1 6 2447 2444 2049 2050 2449 3064 1 6 2448 2050 2051 2450 3064 3065 1 6 2449 2051 2052 2451 3065 3066 1 6 2450 2052 2053 2452 3066 3067 1 6 2451 2053 2453 3067 3068 2454 1 6 2452 2053 2054 2055 2056 2454 1 6 2453 2056 2455 3068 2452 3074 1 6 2454 2056 2057 2456 3074 3075 1 6 2455 2057 2058 2059 2457 3075 1 6 2456 2059 2060 2458 3075 3076 1 6 2457 2060 2061 2459 3076 3077 1 6 2458 2061 2062 2460 3077 3078 1 6 2459 2062 2063 2461 3078 3079 1 6 2460 2063 2462 3079 3080 3081 1 6 2461 2063 2064 2463 3081 3082 1 6 2462 2064 2065 2464 3082 3083 1 6 2463 2065 2465 2467 2482 3083 1 6 2464 2065 2066 2067 2466 2467 1 6 2465 2067 2069 2467 2468 2469 1 6 2465 2466 2468 2464 2482 2483 1 6 2467 2466 2469 2471 2477 2483 1 6 2468 2466 2069 2071 2470 2471 1 6 2469 2071 2471 2472 2473 2073 1 6 2469 2470 2472 2468 2477 2478 1 6 2471 2470 2473 2489 2478 2091 1 6 2472 2470 2073 2091 2088 2086 1 6 1516 1521 914 915 576 1515 1 6 1578 1587 2476 1574 6361 1573 1 6 2475 1587 1589 6353 6359 6361 1 6 2468 2471 2478 2483 2484 2485 1 6 2477 2471 2485 2488 2489 2472 2 6 1642 1643 1644 2480 1641 2490 2 6 2479 1644 2481 2490 2494 2869 2 6 2480 1644 1645 1650 2494 2495 1 6 2464 2467 2483 3085 3083 3926 1 6 2482 2467 2468 2477 2484 3926 1 6 2483 2477 2485 2486 3926 3150 1 6 2484 2477 2478 2486 2487 2488 1 6 2484 2485 2487 3148 3149 3150 1 6 2486 2485 2488 3148 3967 3161 1 6 2487 2485 2478 2489 5948 3967 1 6 2488 2478 2472 2091 2092 5948 2 6 1641 2479 2480 2867 2868 2869 2 6 70 71 2492 3436 3437 3441 2 6 2491 71 72 409 2493 3436 2 6 2492 409 1606 3515 3436 3516 2 6 2480 2481 2495 2869 2870 2871 2 6 2494 2481 1650 1651 2496 2871 2 6 2495 1651 2497 2871 2872 2882 2 6 2496 1651 1652 2498 2882 2883 2 6 2497 1652 2499 2883 4092 4093 2 6 2498 1652 1653 2500 2809 4093 2 6 2499 1653 1654 2501 2809 2810 2 6 2500 1654 1656 2810 2811 2812 1 6 2184 2182 2503 2193 2504 2505 1 6 2502 2182 30 2505 29 2180 1 6 2193 2502 2505 2506 2507 2508 1 6 2504 2502 2508 31 30 2503 1 6 2193 2504 2507 2509 2510 2192 1 6 2506 2504 2508 2509 3330 3880 1 6 2507 2504 2505 31 3330 32 1 6 2506 2507 2510 2511 3880 3881 1 6 2506 2509 2511 2512 2191 2192 1 6 2510 2509 2512 6499 6498 3881 1 6 2510 2511 2191 6498 6500 9710 1 6 2398 2399 2514 2709 2710 2711 1 6 2513 2399 2400 2515 2711 2712 1 6 2514 2400 2401 2516 2712 2713 1 6 2515 2401 2402 2517 2713 2714 1 6 2516 2402 2403 2518 2714 2715 1 6 2517 2403 2404 2519 2715 2716 1 6 2518 2404 2405 2520 2716 2717 1 6 2519 2405 2406 2521 2717 2718 1 6 2520 2406 2407 2522 2718 2719 1 6 2521 2407 2408 2523 2719 2720 1 6 2522 2408 2409 2524 2720 2721 1 6 2523 2409 2410 2525 2721 2722 1 6 2524 2410 2411 2526 2722 2723 1 6 2525 2411 2412 2527 2723 2724 1 6 2526 2412 2413 2528 2724 2725 1 6 2527 2413 2414 2529 2725 2726 1 6 2528 2414 2415 2530 2726 2727 1 6 2529 2415 2416 2531 2727 2728 1 6 2530 2416 2417 2532 2728 2729 1 6 2531 2417 2418 2533 2729 2730 1 6 2532 2418 2419 2534 2730 2731 1 6 2533 2419 2420 2535 2731 2732 1 6 2534 2420 2421 2536 2732 2733 1 6 2535 2421 2422 2537 2733 2734 1 6 2536 2422 2423 2538 2734 2735 1 6 2537 2423 2424 2539 2735 2736 1 6 2538 2424 2425 2540 2736 2737 1 6 2539 2425 2426 2541 2552 2737 1 6 2540 2426 2427 2542 2552 2553 1 6 2541 2427 2428 2543 2553 2554 1 6 2542 2428 2429 2544 2554 2555 1 6 2543 2429 2430 2432 2555 2556 1 6 408 2218 2546 2547 2841 2842 1 6 2545 2218 2547 2548 2549 2219 1 6 2545 2546 2548 2842 2845 2846 1 6 2547 2546 2549 2550 2857 2846 1 6 2548 2546 2219 2220 2550 2551 1 6 2548 2549 2551 6691 2856 2857 1 7 2550 2549 2220 2221 6702 6690 6691 1 6 2540 2541 2553 2737 2738 2739 1 6 2552 2541 2542 2554 2739 2740 1 6 2553 2542 2543 2555 2570 2740 1 6 2554 2543 2544 2556 2570 2557 1 5 2555 2544 2432 2433 2557 1 7 2556 2433 2434 2558 2570 2555 2742 1 5 2557 2434 2435 2559 2742 1 7 2558 2435 2437 2742 2743 2744 2745 1 6 2240 1714 2561 2562 2563 2564 1 6 2240 2560 2562 3435 2239 3446 1 6 2561 2560 2563 3446 3447 3448 1 6 2562 2560 2564 3448 3449 2567 1 6 2563 2560 1714 1715 2565 2567 1 6 2564 1715 1716 1717 2566 2567 1 6 2565 1717 2567 2568 2569 1718 1 6 2565 2566 2568 3449 2563 2564 1 6 2567 2566 2569 3458 3455 3449 1 6 2568 2566 1718 3463 3458 1719 1 6 2554 2555 2557 2740 2741 2742 1 6 2262 2263 2572 2769 2770 2771 1 6 2571 2263 2264 2573 2771 2772 1 6 2572 2264 2265 2574 2772 2773 1 6 2573 2265 2266 2575 2773 2774 1 6 2574 2266 2267 2576 2774 2775 1 6 2575 2267 2268 2577 2775 2776 1 6 2576 2268 2269 2578 2776 2777 1 6 2577 2269 2270 2579 2777 2778 1 6 2578 2270 2271 2580 2778 2779 1 6 2579 2271 2272 2581 2779 2780 1 6 2580 2272 2273 2582 2780 2781 1 6 2581 2273 2274 2583 2781 2782 1 6 2582 2274 2275 2584 2782 2783 1 6 2583 2275 2276 2585 2783 2784 1 6 2584 2276 2277 2586 2784 2785 1 6 2585 2277 2278 2587 2785 2786 1 6 2586 2278 2279 2588 2786 2787 1 6 2587 2279 2280 2589 2787 2788 1 6 2588 2280 2281 2590 2788 2789 1 6 2589 2281 2282 2591 2789 2790 1 6 2590 2282 2283 2592 2790 2791 1 6 2591 2283 2284 2593 2791 2792 1 6 2592 2284 2285 2594 2792 2793 1 6 2593 2285 2286 2595 2793 2794 1 6 2594 2286 2287 2596 2794 2795 1 6 2595 2287 2288 2597 2795 2796 1 6 2596 2288 2289 2598 2796 2797 1 6 2597 2289 2290 2599 2797 2798 1 6 2598 2290 2291 2600 2798 2799 1 6 2599 2291 2292 2601 2799 2800 1 6 2600 2292 2293 2602 2800 2801 1 6 2601 2293 2294 2603 2801 2802 1 6 2602 2294 2295 2296 2604 2802 1 6 2603 2296 2605 2802 2803 2606 1 5 2604 2296 2297 2298 2606 1 7 2605 2298 2299 2607 2803 2604 2826 1 5 2606 2299 2300 2608 2826 1 7 2607 2300 2301 2609 2826 2827 2828 1 6 2608 2301 2302 2610 2828 2829 1 6 2609 2302 2303 2611 2829 2830 1 6 2610 2303 2304 2612 2830 2831 1 6 2611 2304 2305 2613 2831 2832 1 6 2612 2305 2306 2614 2832 2833 1 6 2613 2306 2307 2615 2833 2834 1 6 2614 2307 2308 2616 2617 2834 1 6 2615 2308 2617 2618 2619 2309 1 6 2615 2616 2618 2834 2835 2836 1 6 2617 2616 2619 2836 2837 2838 1 6 2618 2616 2309 2310 2620 2838 1 6 2619 2310 2311 2621 2840 2838 1 6 2620 2311 2312 2622 2959 2840 1 6 2621 2312 2313 2623 2959 2960 1 6 2622 2313 2314 2624 2960 2961 1 6 2623 2314 2315 2625 2961 2962 1 6 2624 2315 2316 2626 2962 2963 1 6 2625 2316 2317 2627 2966 2963 1 6 2626 2317 2318 2628 2966 2967 1 6 2627 2318 2319 2629 2967 2968 1 6 2628 2319 2320 2630 2968 2969 1 6 2629 2320 2321 2631 2969 2970 1 6 2630 2321 2322 2632 2970 2971 1 6 2631 2322 2323 2633 2971 2972 1 6 2632 2323 2324 2634 2972 2973 1 6 2633 2324 2325 2635 2973 2974 1 6 2634 2325 2326 2636 2974 2975 1 6 2635 2326 2327 2328 2637 2975 1 6 2636 2328 2638 2639 2975 2976 1 6 2637 2328 2639 2640 2641 2329 1 6 2637 2638 2640 2976 2977 2978 1 6 2639 2638 2641 2642 2978 2979 1 6 2640 2638 2642 2331 2330 2329 2 6 2640 2641 2331 2643 2979 2980 2 6 2642 2331 2332 2644 2980 2981 2 6 2643 2332 2333 2645 2981 2982 2 6 2644 2333 2334 2646 2982 2983 2 6 2645 2334 2335 2647 2983 2984 2 6 2646 2335 2336 2648 2984 2985 2 6 2647 2336 2337 2649 2985 2986 2 6 2648 2337 2338 2650 2986 2987 2 6 2649 2338 2339 2651 2987 2988 2 6 2650 2339 2340 2652 2988 2989 2 6 2651 2340 2341 2653 2989 2990 2 6 2652 2341 2342 2654 2990 2991 2 6 2653 2342 2655 2991 2992 2656 2 6 2654 2342 2343 2344 2345 2656 2 6 2655 2345 2657 2992 2654 2993 2 6 2656 2345 2346 2658 2993 2994 2 6 2657 2346 2347 2659 2994 2995 2 6 2658 2347 2660 2995 2996 2997 2 6 2659 2347 2348 2661 2997 2998 2 6 2660 2348 2349 2350 2662 2998 2 6 2661 2350 2351 2663 2998 2999 2 6 2662 2351 2352 2664 2999 3000 2 6 2663 2352 2353 2665 3000 3001 2 6 2664 2353 2354 2666 3001 3002 2 6 2665 2354 2355 2667 3002 3565 2 6 2666 2355 2356 2668 3565 3566 2 6 2667 2356 2357 2669 3566 3567 2 6 2668 2357 2358 2670 3567 3568 2 6 2669 2358 2359 2671 3568 3569 2 6 2670 2359 2360 2672 3569 3570 2 6 2671 2360 2361 2362 2673 3570 2 6 2672 2362 2674 3570 3571 3572 1 6 2673 2362 2363 2675 3572 3573 1 6 2674 2363 2364 2676 3391 3573 1 6 2675 2364 2365 2677 3391 3392 1 6 2676 2365 2366 2678 3392 3393 1 6 2677 2366 2367 2679 3393 3394 1 6 2678 2367 2368 2680 3394 3579 1 6 2679 2368 2369 2681 3579 3580 1 6 2680 2369 2370 2682 3580 3581 1 6 2681 2370 2371 2683 3581 3582 1 6 2682 2371 2372 2684 3582 3583 1 6 2683 2372 2373 2685 3583 3584 1 6 2684 2373 2374 2686 3584 3585 1 6 2685 2374 2375 2687 3585 3586 1 6 2686 2375 2376 2688 3586 3587 1 6 2687 2376 2377 2689 3587 3588 1 6 2688 2377 2378 2690 3278 3588 1 6 2689 2378 2379 2691 3278 3279 1 6 2690 2379 2380 2692 3279 3280 1 6 2691 2380 2381 2693 3280 3281 1 6 2692 2381 2382 2694 3281 3282 1 6 2693 2382 2383 2695 3282 3283 1 6 2694 2383 2384 2696 3283 3284 1 6 2695 2384 2385 2697 3284 3285 1 6 2696 2385 2386 2698 3285 3286 1 6 2697 2386 2387 2699 3286 3287 1 6 2698 2387 2388 2700 3287 3288 1 6 2699 2388 2389 2701 3288 3289 1 6 2700 2389 2390 2702 3289 3290 1 6 2701 2390 2391 2703 3003 3290 1 6 2702 2391 2392 2704 3003 3004 1 6 2703 2392 2393 2705 3004 3005 1 6 2704 2393 2394 2706 3005 3006 1 6 2705 2394 2395 2707 3006 3007 1 6 2706 2395 2396 2708 3007 3008 1 6 2707 2396 2397 2709 3008 3009 1 6 2708 2397 2398 2513 2710 3009 1 6 2709 2513 2711 3009 3010 3011 1 6 2710 2513 2514 2712 3011 3012 1 6 2711 2514 2515 2713 3012 3013 1 6 2712 2515 2516 2714 3013 3014 1 6 2713 2516 2517 2715 3014 3015 1 6 2714 2517 2518 2716 3015 3016 1 6 2715 2518 2519 2717 3016 3017 1 6 2716 2519 2520 2718 3017 3018 1 6 2717 2520 2521 2719 3018 3019 1 6 2718 2521 2522 2720 3019 3020 1 6 2719 2522 2523 2721 3020 3021 1 6 2720 2523 2524 2722 3021 3022 1 6 2721 2524 2525 2723 3022 3023 1 6 2722 2525 2526 2724 3023 3024 1 6 2723 2526 2527 2725 3024 3025 1 6 2724 2527 2528 2726 3025 3026 1 6 2725 2528 2529 2727 3026 3027 1 6 2726 2529 2530 2728 3027 3028 1 6 2727 2530 2531 2729 3028 3029 1 6 2728 2531 2532 2730 3029 3030 1 6 2729 2532 2533 2731 3030 3031 1 6 2730 2533 2534 2732 3031 3032 1 6 2731 2534 2535 2733 3032 3033 1 6 2732 2535 2536 2734 3033 3034 1 6 2733 2536 2537 2735 3034 3035 1 6 2734 2537 2538 2736 3035 3036 1 6 2735 2538 2539 2737 3036 3037 1 6 2736 2539 2540 2552 2738 3037 1 6 2737 2552 2739 3037 3038 3039 1 6 2738 2552 2553 2740 3039 3040 1 6 2739 2553 2554 2570 2741 3040 1 6 2740 2570 2742 3040 3041 2743 1 6 2741 2570 2557 2558 2559 2743 1 6 2742 2559 2744 3041 2741 3049 1 5 2743 2559 2745 3049 3050 1 6 2744 2559 2437 2438 2746 3050 1 6 2745 2438 2439 2747 3050 3051 1 6 2746 2439 2748 3051 3052 2749 1 5 2747 2439 2440 2441 2749 1 6 2748 2441 2750 3052 2747 3058 1 7 2749 2441 2442 2445 3058 3059 3060 1 6 1746 1747 1748 2752 2893 2894 1 6 2751 1748 2233 2242 2753 2894 1 6 2752 2242 2754 2894 2895 2896 1 6 2753 2242 2243 2755 2896 2897 1 6 2754 2243 2756 2897 2898 2899 1 6 2755 2243 2244 2757 2899 2900 1 6 2756 2244 2245 2758 2900 2901 1 6 2757 2245 2759 2901 2902 2903 1 6 2758 2245 2246 2760 2903 2904 1 6 2759 2246 2247 2253 2761 2904 1 6 2760 2253 2254 2762 2904 2905 1 6 2761 2254 2255 2763 2905 2906 1 6 2762 2255 2256 2257 2764 2906 1 6 2763 2257 2765 2906 2907 2908 1 6 2764 2257 2258 2766 2908 2909 1 6 2765 2258 2259 2767 2909 2910 1 6 2766 2259 2260 2768 2910 2911 1 6 2767 2260 2261 2769 2911 2912 1 6 2768 2261 2262 2571 2770 2912 1 6 2769 2571 2771 2912 2913 2914 1 6 2770 2571 2572 2772 2914 2915 1 6 2771 2572 2573 2773 2915 2916 1 6 2772 2573 2574 2774 2916 2917 1 6 2773 2574 2575 2775 2917 2918 1 6 2774 2575 2576 2776 2918 2919 1 6 2775 2576 2577 2777 2919 2920 1 6 2776 2577 2578 2778 2920 2921 1 6 2777 2578 2579 2779 2921 2922 1 6 2778 2579 2580 2780 2922 2923 1 6 2779 2580 2581 2781 2923 2924 1 6 2780 2581 2582 2782 2924 2925 1 6 2781 2582 2583 2783 2925 2926 1 6 2782 2583 2584 2784 2926 2927 1 6 2783 2584 2585 2785 2927 2928 1 6 2784 2585 2586 2786 2928 2929 1 6 2785 2586 2587 2787 2929 2930 1 6 2786 2587 2588 2788 2930 2931 1 6 2787 2588 2589 2789 2931 2932 1 6 2788 2589 2590 2790 2932 2933 1 6 2789 2590 2591 2791 2933 2934 1 6 2790 2591 2592 2792 2934 2935 1 6 2791 2592 2593 2793 2935 2936 1 6 2792 2593 2594 2794 2936 2937 1 6 2793 2594 2595 2795 2937 2938 1 6 2794 2595 2596 2796 2938 2939 1 6 2795 2596 2597 2797 2939 2940 1 6 2796 2597 2598 2798 2940 2941 1 6 2797 2598 2599 2799 2941 2942 1 6 2798 2599 2600 2800 2942 2943 1 6 2799 2600 2601 2801 2943 2944 1 6 2800 2601 2602 2802 2944 2824 1 6 2801 2602 2603 2604 2803 2824 1 6 2802 2604 2606 2824 2825 2826 1 6 2173 2174 2175 2177 2805 3395 1 6 2804 2177 2806 3395 3396 3400 1 6 2805 2177 2178 2807 3400 3401 1 6 2806 2178 2808 3401 3402 3403 1 6 2807 2178 1731 3403 3404 1732 2 6 2499 2500 2810 4095 4093 4388 2 6 2809 2500 2501 2811 4388 2813 2 6 2810 2501 2812 1664 1666 2813 2 6 2811 2501 1656 1658 1661 1664 2 6 2811 1666 2814 3139 4388 2810 2 6 2813 1666 1667 2815 2817 3139 2 6 2814 1667 2816 2817 2818 2819 2 6 2815 1667 1668 2819 2820 2821 2 6 2814 2815 2818 3139 3140 3141 2 6 2817 2815 2819 3141 3142 3143 2 6 2818 2815 2816 2820 3143 3144 2 6 2819 2816 2821 3144 3145 3146 2 6 2820 2816 1668 2822 2823 3146 2 6 2821 1668 2823 1672 1671 1669 2 6 2821 2822 1672 3146 3147 1673 1 6 2802 2803 2825 2944 2801 2945 1 6 2824 2803 2826 2945 2946 2827 1 6 2825 2803 2606 2607 2608 2827 1 6 2826 2608 2828 2946 2825 2947 1 5 2827 2608 2609 2829 2947 1 6 2828 2609 2610 2830 2947 2948 1 6 2829 2610 2611 2831 2948 2949 1 6 2830 2611 2612 2832 2949 2950 1 6 2831 2612 2613 2833 2950 2951 1 6 2832 2613 2614 2834 2951 2952 1 7 2833 2614 2615 2617 2835 2952 2953 1 5 2834 2617 2836 2953 2954 1 6 2835 2617 2618 2837 2954 2955 1 6 2836 2618 2838 2839 2955 2956 1 6 2837 2618 2839 2840 2620 2619 1 6 2837 2838 2840 2956 2957 2958 1 6 2839 2838 2620 2958 2959 2621 1 6 408 2545 2842 2843 9690 429 1 6 2841 2545 2843 2844 2547 2845 1 6 2841 2842 2844 3168 9688 9690 1 6 2843 2842 3168 3165 3162 2845 1 6 2842 2547 2846 2847 3162 2844 1 6 2845 2547 2847 2848 2548 2857 1 6 2845 2846 2848 2849 3162 3163 1 6 2847 2846 2849 2850 2851 2857 1 6 2847 2848 2850 2852 2858 3163 1 6 2849 2848 2851 2852 2853 2854 1 6 2850 2848 2854 2855 2856 2857 1 6 2849 2850 2853 2858 2859 2860 1 5 2852 2850 2854 2860 6676 1 7 2853 2850 2851 2855 6676 6677 6678 1 7 2854 2851 2856 6689 6686 6680 6678 1 6 2855 2851 2857 6691 6689 2550 1 6 2856 2851 2848 2550 2548 2846 1 6 2849 2852 2859 3180 3163 6661 1 7 2858 2852 2860 6661 6674 6666 6662 1 6 2859 2852 2853 6675 6674 6676 2 5 1631 1633 1628 1629 1630 2 6 1628 1633 1636 2863 1627 7215 2 7 2862 1636 1637 2864 7216 7215 7217 2 5 2863 1637 1638 2865 7217 2 7 2864 1638 1639 2866 7217 7218 7219 2 7 2865 1639 1640 2867 3189 3214 7219 2 6 2866 1640 1641 2490 2868 3189 2 6 2867 2490 2869 3189 3190 3181 2 6 2868 2490 2480 2494 2870 3181 2 6 2869 2494 2871 2873 2884 3181 2 6 2870 2494 2495 2496 2872 2873 2 6 2871 2496 2873 2874 2881 2882 2 6 2871 2872 2874 2875 2870 2884 2 6 2873 2872 2875 2876 2880 2881 2 6 2873 2874 2876 2877 2884 2885 2 6 2875 2874 2877 2878 2879 2880 2 6 2875 2876 2878 2885 2886 2887 2 6 2877 2876 2879 2887 2888 2889 2 6 2878 2876 2880 2892 2889 7600 2 6 2879 2876 2874 2881 4086 7600 2 6 2880 2874 2872 2882 4086 4087 2 6 2881 2872 2496 2497 2883 4087 2 6 2882 2497 2498 4087 4088 4092 2 6 2870 2873 2875 2885 3181 3182 2 6 2884 2875 2877 2886 3182 3183 2 6 2885 2877 2887 3183 3184 3185 2 6 2886 2877 2878 2888 3188 3185 2 6 2887 2878 2889 2890 3959 3188 2 6 2888 2878 2890 2891 2892 2879 2 6 2888 2889 2891 3961 3959 7592 2 6 2890 2889 2892 7592 7593 7594 2 6 2891 2889 2879 7600 7597 7594 1 6 1745 1746 2751 2894 3199 3198 1 6 2893 2751 2752 2753 2895 3198 1 6 2894 2753 2896 3198 3200 3201 1 6 2895 2753 2754 2897 3201 3202 1 6 2896 2754 2755 2898 3202 3203 1 6 2897 2755 2899 3203 3204 3205 1 6 2898 2755 2756 2900 3205 3206 1 6 2899 2756 2757 2901 3206 3207 1 6 2900 2757 2758 2902 3207 3208 1 6 2901 2758 2903 3208 3209 3210 1 6 2902 2758 2759 2904 3213 3210 1 6 2903 2759 2760 2761 2905 3213 1 6 2904 2761 2762 2906 3483 3213 1 6 2905 2762 2763 2764 2907 3483 1 6 2906 2764 2908 3482 3212 3483 1 7 2907 2764 2765 2909 3500 3482 3697 1 6 2908 2765 2766 2910 3697 3698 1 6 2909 2766 2767 2911 3698 3699 1 6 2910 2767 2768 2912 3699 3700 1 6 2911 2768 2769 2770 2913 3700 1 6 2912 2770 2914 3700 3701 3702 1 6 2913 2770 2771 2915 3702 3703 1 6 2914 2771 2772 2916 3703 3704 1 6 2915 2772 2773 2917 3704 3705 1 6 2916 2773 2774 2918 3705 3706 1 6 2917 2774 2775 2919 3706 3707 1 6 2918 2775 2776 2920 3707 3708 1 6 2919 2776 2777 2921 3708 3709 1 6 2920 2777 2778 2922 3709 3710 1 6 2921 2778 2779 2923 3710 3711 1 6 2922 2779 2780 2924 3711 3712 1 6 2923 2780 2781 2925 3712 3713 1 6 2924 2781 2782 2926 3713 3714 1 6 2925 2782 2783 2927 3714 3715 1 6 2926 2783 2784 2928 3715 3716 1 6 2927 2784 2785 2929 3716 3717 1 6 2928 2785 2786 2930 3717 3718 1 6 2929 2786 2787 2931 3718 3719 1 6 2930 2787 2788 2932 3719 3720 1 6 2931 2788 2789 2933 3720 3721 1 6 2932 2789 2790 2934 3721 3722 1 6 2933 2790 2791 2935 3722 3723 1 6 2934 2791 2792 2936 3723 3724 1 6 2935 2792 2793 2937 3724 3725 1 6 2936 2793 2794 2938 3725 3726 1 6 2937 2794 2795 2939 3726 3727 1 6 2938 2795 2796 2940 3727 3728 1 6 2939 2796 2797 2941 3728 3729 1 6 2940 2797 2798 2942 3729 3730 1 6 2941 2798 2799 2943 3730 3731 1 6 2942 2799 2800 2944 3731 3732 1 6 2943 2800 2801 2824 2945 3732 1 6 2944 2824 2825 2946 3732 3733 1 6 2945 2825 2827 2947 3733 3734 1 6 2946 2827 2828 2829 2948 3734 1 7 2947 2829 2830 2949 3734 3735 3736 1 6 2948 2830 2831 2950 3242 3736 1 6 2949 2831 2832 2951 3242 3243 1 6 2950 2832 2833 2952 3243 3244 1 6 2951 2833 2834 2953 3244 3245 1 5 2952 2834 2835 2954 3245 1 7 2953 2835 2836 2955 3245 3246 3247 1 6 2954 2836 2837 2956 3247 3248 1 6 2955 2837 2839 2957 3248 3249 1 6 2956 2839 2958 3249 3250 3251 1 6 2957 2839 2840 2959 3251 3252 1 6 2958 2840 2621 2622 2960 3252 1 6 2959 2622 2623 2961 3254 3252 1 6 2960 2623 2624 2962 3254 3255 1 6 2961 2624 2625 2963 2964 3255 1 6 2962 2625 2964 2965 2966 2626 1 6 2962 2963 2965 3255 3256 3257 1 6 2964 2963 2966 3257 3258 3259 1 6 2965 2963 2626 2627 2967 3259 1 6 2966 2627 2628 2968 3259 3260 1 6 2967 2628 2629 2969 3260 3261 1 6 2968 2629 2630 2970 3261 3262 1 6 2969 2630 2631 2971 3262 3263 1 6 2970 2631 2632 2972 3263 3264 1 6 2971 2632 2633 2973 3264 3265 1 6 2972 2633 2634 2974 3265 3266 1 6 2973 2634 2635 2975 3266 3267 1 6 2974 2635 2636 2637 2976 3267 1 6 2975 2637 2639 2977 3267 3268 1 6 2976 2639 2978 3268 3269 3270 1 6 2977 2639 2640 2979 3270 3271 2 6 2978 2640 2642 2980 3271 3272 2 6 2979 2642 2643 2981 3272 3273 2 6 2980 2643 2644 2982 3273 3274 2 6 2981 2644 2645 2983 3274 3275 2 6 2982 2645 2646 2984 3275 3276 2 6 2983 2646 2647 2985 3276 3277 2 6 2984 2647 2648 2986 3277 3824 2 6 2985 2648 2649 2987 3545 3824 2 6 2986 2649 2650 2988 3545 3546 2 6 2987 2650 2651 2989 3546 3547 2 6 2988 2651 2652 2990 3547 3548 2 6 2989 2652 2653 2991 3548 3549 2 6 2990 2653 2654 2992 3549 3550 2 6 2991 2654 2656 2993 3550 3551 2 6 2992 2656 2657 2994 3551 3552 2 6 2993 2657 2658 2995 3552 3553 2 6 2994 2658 2659 2996 3553 3554 2 6 2995 2659 2997 3554 3555 3556 2 6 2996 2659 2660 2998 3556 3557 2 6 2997 2660 2661 2662 2999 3557 2 6 2998 2662 2663 3000 3557 3558 2 6 2999 2663 2664 3001 3558 3559 2 6 3000 2664 2665 3002 3559 3560 2 6 3001 2665 2666 3560 3561 3565 1 6 2702 2703 3004 3290 3291 3292 1 6 3003 2703 2704 3005 3292 3293 1 6 3004 2704 2705 3006 3293 3294 1 6 3005 2705 2706 3007 3294 3295 1 6 3006 2706 2707 3008 3295 3296 1 6 3007 2707 2708 3009 3296 3297 1 6 3008 2708 2709 2710 3010 3297 1 6 3009 2710 3011 3297 3298 3299 1 6 3010 2710 2711 3012 3299 3300 1 6 3011 2711 2712 3013 3300 3301 1 6 3012 2712 2713 3014 3301 3302 1 6 3013 2713 2714 3015 3302 3303 1 6 3014 2714 2715 3016 3303 3304 1 6 3015 2715 2716 3017 3304 3305 1 6 3016 2716 2717 3018 3305 3306 1 6 3017 2717 2718 3019 3306 3307 1 6 3018 2718 2719 3020 3307 3308 1 6 3019 2719 2720 3021 3308 3309 1 6 3020 2720 2721 3022 3309 3310 1 6 3021 2721 2722 3023 3310 3311 1 6 3022 2722 2723 3024 3311 3312 1 6 3023 2723 2724 3025 3312 3313 1 6 3024 2724 2725 3026 3313 3314 1 6 3025 2725 2726 3027 3314 3315 1 6 3026 2726 2727 3028 3315 3316 1 6 3027 2727 2728 3029 3316 3317 1 6 3028 2728 2729 3030 3317 3318 1 6 3029 2729 2730 3031 3318 3319 1 6 3030 2730 2731 3032 3319 3320 1 6 3031 2731 2732 3033 3320 3321 1 6 3032 2732 2733 3034 3321 3322 1 6 3033 2733 2734 3035 3042 3322 1 6 3034 2734 2735 3036 3042 3043 1 6 3035 2735 2736 3037 3043 3044 1 6 3036 2736 2737 2738 3038 3044 1 6 3037 2738 3039 3044 3045 3046 1 6 3038 2738 2739 3040 3046 3047 1 6 3039 2739 2740 2741 3041 3047 1 6 3040 2741 2743 3047 3048 3049 1 6 3034 3035 3043 3322 3323 3324 1 6 3042 3035 3036 3044 3324 3325 1 6 3043 3036 3037 3038 3045 3325 1 6 3044 3038 3046 3325 3326 3327 1 6 3045 3038 3039 3047 3053 3327 1 6 3046 3039 3040 3041 3048 3053 1 6 3047 3041 3049 3053 3054 3055 1 6 3048 3041 2743 2744 3050 3055 1 6 3049 2744 2745 2746 3051 3055 1 6 3050 2746 2747 3052 3055 3056 1 6 3051 2747 2749 3056 3057 3058 1 6 3046 3047 3048 3054 3327 3328 1 6 3053 3048 3055 3328 3329 3056 1 6 3054 3048 3049 3050 3051 3056 1 7 3055 3051 3052 3057 3329 3054 3641 1 5 3056 3052 3058 3641 3642 1 7 3057 3052 2749 2750 3059 3642 3643 1 6 3058 2750 3060 3643 3644 3061 1 5 3059 2750 2445 2446 3061 1 6 3060 2446 3062 3644 3059 3910 1 6 3061 2446 2447 3063 3910 3911 1 6 3062 2447 3064 3069 3911 3912 1 6 3063 2447 2448 2449 3065 3069 1 6 3064 2449 2450 3066 3069 3070 1 6 3065 2450 2451 3067 3070 3071 1 6 3066 2451 2452 3068 3071 3072 1 6 3067 2452 2454 3072 3073 3074 1 6 3063 3064 3065 3070 3912 3913 1 6 3069 3065 3066 3071 3913 3914 1 6 3070 3066 3067 3072 3914 3915 1 6 3071 3067 3068 3073 3915 3916 1 6 3072 3068 3074 3916 3917 3918 1 6 3073 3068 2454 2455 3075 3918 1 6 3074 2455 2456 2457 3076 3918 1 6 3075 2457 2458 3077 3349 3918 1 6 3076 2458 2459 3078 3349 3350 1 6 3077 2459 2460 3079 3107 3350 1 6 3078 2460 2461 3080 3107 3108 1 6 3079 2461 3081 3091 3108 3109 1 6 3080 2461 2462 3082 3091 3092 1 6 3081 2462 2463 3083 3084 3092 1 6 3082 2463 3084 3085 2482 2464 1 6 3082 3083 3085 3092 3112 3359 1 6 3084 3083 2482 3926 3152 3359 1 6 16 17 3087 3088 3089 3090 1 6 3086 17 18 3095 3126 3090 1 6 16 3086 3089 3098 417 15 1 6 3088 3086 3090 3098 3103 3104 1 6 3089 3086 3104 3105 3087 3126 1 6 3080 3081 3092 3109 3110 3111 1 6 3091 3081 3082 3084 3111 3112 2 5 1615 1616 3094 4099 3544 2 6 3093 1616 1617 4367 4099 1624 1 6 3087 18 19 3096 3125 3126 1 6 3095 19 20 3125 3128 414 2 6 2241 1657 1655 1647 1182 1184 1 6 3088 3089 417 3099 3102 3103 1 6 417 3098 418 3100 3101 3102 1 6 418 3099 3101 3228 3229 3684 1 6 3100 3099 3102 3226 3228 3498 1 7 3101 3099 3098 3103 3113 3498 3497 1 6 3102 3098 3089 3104 3113 3114 1 6 3103 3089 3090 3105 3106 3114 1 6 3104 3090 3106 3126 3124 3118 1 6 3104 3105 3116 3114 3117 3118 1 6 3078 3079 3108 3350 3351 3352 1 6 3107 3079 3080 3109 3352 3353 1 6 3108 3080 3091 3110 3353 3354 1 6 3109 3091 3111 3354 3355 3356 1 6 3110 3091 3092 3112 3356 3357 1 6 3111 3092 3084 3357 3358 3359 1 5 3102 3103 3114 3115 3497 1 6 3113 3103 3115 3116 3106 3104 1 7 3113 3114 3116 3497 3504 3501 3495 1 6 3115 3114 3106 3117 6712 3504 1 6 3116 3106 3118 3119 6712 6711 1 6 3117 3106 3119 3120 3124 3105 1 6 3117 3118 3120 3121 6711 6713 1 6 3119 3118 3121 3122 3123 3124 1 6 3119 3120 3122 3884 3887 6713 1 6 3121 3120 3123 3127 3883 3884 1 6 3122 3120 3124 3125 3127 3128 1 6 3123 3120 3118 3125 3126 3105 1 6 3123 3124 3126 3128 3095 3096 1 6 3125 3124 3105 3095 3087 3090 1 6 3122 3123 3128 3882 3339 3883 1 6 3127 3123 3125 414 3882 3096 1 6 2201 2203 3130 3851 3852 9781 1 6 3129 2203 2205 1525 1526 9781 1 6 2094 2095 3132 3133 9776 3138 1 6 2094 3131 3133 3134 3135 2093 1 6 3132 3131 3134 3136 3137 3138 1 6 3132 3133 3135 3136 5946 5945 1 6 3132 3134 5945 5943 5947 2093 1 6 3134 3133 3137 6090 6091 5946 1 6 3136 3133 3138 6090 6089 6092 1 6 3137 3133 6092 6093 9776 3131 2 6 2813 2814 2817 3140 4388 4386 2 6 3139 2817 3141 4385 4384 4386 2 6 3140 2817 2818 3142 4390 4385 2 6 3141 2818 3143 7767 4390 7768 2 6 3142 2818 2819 3144 7774 7768 2 6 3143 2819 2820 3145 7774 7775 2 6 3144 2820 3146 4231 7775 9791 2 6 3145 2820 2821 2823 3147 4231 2 6 3146 2823 1673 1674 3412 4231 1 6 2486 2487 3149 3156 3157 3161 1 6 2486 3148 3150 3151 3155 3156 1 6 2486 3149 3151 3152 3926 2484 1 6 3150 3149 3152 3153 3154 3155 1 6 3150 3151 3153 3926 3085 3359 1 6 3152 3151 3154 3358 3359 3360 1 6 3153 3151 3155 3360 3361 3362 1 6 3154 3151 3149 3156 3677 3362 1 6 3155 3149 3148 3157 3158 3677 1 6 3156 3148 3158 3159 3160 3161 1 6 3156 3157 3159 3676 3677 3945 1 6 3158 3157 3160 3945 3946 3962 1 6 3159 3157 3161 3962 3963 3964 1 6 3160 3157 3148 3967 3964 2487 1 6 2845 2847 3163 3164 3165 2844 1 6 3162 2847 3164 3180 2858 2849 1 6 3162 3163 3165 3166 3177 3180 1 6 3162 3164 3166 3167 3168 2844 1 6 3165 3164 3167 3177 3174 3171 1 6 3165 3166 3168 3169 3170 3171 1 6 3165 3167 3169 2843 2844 9688 1 6 3168 3167 3170 9687 9686 9688 1 5 3169 3167 3171 3172 9687 1 6 3170 3167 3172 3173 3174 3166 1 6 3170 3171 3173 9691 9687 6653 1 7 3172 3171 3174 3175 6654 6652 6653 1 6 3173 3171 3175 3176 3177 3166 1 5 3173 3174 3176 3450 6654 1 6 3175 3174 3177 3178 3179 3450 1 6 3176 3174 3178 3166 3164 3180 1 6 3176 3177 3179 3180 6660 6661 1 6 3176 3178 3450 6657 6659 6660 1 6 3177 3164 3178 3163 2858 6661 2 6 2869 2870 2884 3182 3190 2868 2 6 3181 2884 2885 3183 3216 3190 2 6 3182 2885 2886 3184 3193 3216 2 6 3183 2886 3185 3186 3192 3193 2 6 3184 2886 3186 3187 3188 2887 2 6 3184 3185 3187 3192 3196 7584 2 6 3186 3185 3188 3958 7586 7584 2 6 3187 3185 2887 3958 3959 2888 2 6 2867 2868 3190 2866 3214 3215 2 6 3189 2868 3181 3215 3216 3182 1 6 1741 1742 1744 3197 3198 3199 2 6 3184 3186 3193 3194 3195 3196 2 6 3184 3192 3194 7222 3216 3183 2 7 3193 3192 3195 7222 7221 7204 7203 2 6 3194 3192 3196 7196 7197 7203 2 6 3195 3192 3186 7583 7196 7584 1 6 1740 1741 3191 3198 3411 3200 1 7 3197 3191 3199 2893 2894 2895 3200 1 5 3198 3191 1744 1745 2893 1 6 3198 2895 3201 3411 3197 9751 1 6 3200 2895 2896 3202 3470 9751 1 6 3201 2896 2897 3203 3470 3471 1 6 3202 2897 2898 3204 3471 3472 1 6 3203 2898 3205 3472 3473 3474 1 6 3204 2898 2899 3206 3474 3475 1 6 3205 2899 2900 3207 3475 3476 1 6 3206 2900 2901 3208 3476 3477 1 6 3207 2901 2902 3209 3477 3478 1 6 3208 2902 3210 3211 3478 3479 1 6 3209 2902 3211 3212 3213 2903 1 6 3209 3210 3212 3479 3480 3481 1 7 3211 3210 3213 3481 3482 2907 3483 1 6 3212 3210 2903 3483 2905 2904 2 6 2866 3189 3215 7220 7219 7221 2 6 3214 3189 3190 3216 7221 7222 2 6 3215 3190 3182 7222 3193 3183 1 6 635 636 3218 4040 3763 3762 1 6 3217 636 638 3219 3484 4040 1 6 3218 638 3220 3221 3222 3484 1 6 3219 638 639 3221 3240 3241 1 6 3219 3220 3222 3223 3224 3241 1 6 3219 3221 3223 3484 3485 3486 1 6 3222 3221 3224 3225 3486 3487 1 6 3223 3221 3225 3226 3227 3241 1 6 3223 3224 3226 3493 3487 3494 1 7 3225 3224 3227 3228 3101 3494 3498 1 6 3226 3224 3228 3229 3230 3241 1 5 3226 3227 3101 3100 3229 1 6 3100 3228 3227 3230 3231 3684 1 6 3229 3227 3231 3232 3241 3240 1 6 3229 3230 3232 3233 3234 3684 1 6 3231 3230 3233 3240 3239 3236 1 7 3231 3232 3234 11 10 3235 3236 1 5 3231 3233 11 3684 12 1 6 10 3233 3236 3237 3238 9 1 6 3235 3233 3237 643 3239 3232 1 6 3235 3236 3238 647 644 643 1 5 3235 3237 9 8 647 1 6 643 3236 640 639 3240 3232 1 6 639 3239 3220 3241 3230 3232 1 6 3220 3240 3221 3224 3227 3230 1 6 2949 2950 3243 3736 3737 3738 1 6 3242 2950 2951 3244 3738 3739 1 6 3243 2951 2952 3245 3739 3740 1 7 3244 2952 2953 2954 3246 3740 3741 1 5 3245 2954 3247 3741 3742 1 6 3246 2954 2955 3248 3742 3743 1 6 3247 2955 2956 3249 3743 3744 1 6 3248 2956 2957 3250 3744 3745 1 6 3249 2957 3251 3745 3746 3747 1 6 3250 2957 2958 3252 3253 3747 1 6 3251 2958 3253 3254 2960 2959 1 6 3251 3252 3254 3747 3748 3749 1 6 3253 3252 2960 2961 3255 3749 1 6 3254 2961 2962 2964 3256 3749 1 6 3255 2964 3257 3749 3750 3751 1 6 3256 2964 2965 3258 3751 3752 1 6 3257 2965 3259 3752 3753 3754 1 6 3258 2965 2966 2967 3260 3754 1 6 3259 2967 2968 3261 3754 3755 1 6 3260 2968 2969 3262 3755 3756 1 6 3261 2969 2970 3263 3756 3757 1 6 3262 2970 2971 3264 3757 3758 1 6 3263 2971 2972 3265 3758 3759 1 7 3264 2972 2973 3266 3759 4054 4051 1 5 3265 2973 2974 3267 4054 1 6 3266 2974 2975 2976 3268 4054 1 7 3267 2976 2977 3269 4054 4053 4055 1 5 3268 2977 3270 4055 4056 1 6 3269 2977 2978 3271 4056 4057 2 6 3270 2978 2979 3272 4057 4058 2 6 3271 2979 2980 3273 4058 4059 2 6 3272 2980 2981 3274 4059 4060 2 6 3273 2981 2982 3275 4060 4061 2 6 3274 2982 2983 3276 4064 4061 2 6 3275 2983 2984 3277 4064 4065 2 6 3276 2984 2985 3826 4065 3824 1 6 2689 2690 3279 3588 3589 3590 1 6 3278 2690 2691 3280 3590 3591 1 6 3279 2691 2692 3281 3591 3592 1 6 3280 2692 2693 3282 3592 3593 1 6 3281 2693 2694 3283 3593 3594 1 6 3282 2694 2695 3284 3594 3595 1 6 3283 2695 2696 3285 3595 3596 1 6 3284 2696 2697 3286 3596 3597 1 6 3285 2697 2698 3287 3597 3598 1 6 3286 2698 2699 3288 3598 3599 1 6 3287 2699 2700 3289 3599 3600 1 6 3288 2700 2701 3290 3600 3601 1 6 3289 2701 2702 3003 3291 3601 1 6 3290 3003 3292 3601 3602 3603 1 6 3291 3003 3004 3293 3603 3604 1 6 3292 3004 3005 3294 3604 3605 1 6 3293 3005 3006 3295 3605 3606 1 6 3294 3006 3007 3296 3606 3607 1 6 3295 3007 3008 3297 3607 3608 1 6 3296 3008 3009 3010 3298 3608 1 6 3297 3010 3299 3608 3609 3610 1 6 3298 3010 3011 3300 3610 3611 1 6 3299 3011 3012 3301 3611 3612 1 6 3300 3012 3013 3302 3612 3613 1 6 3301 3013 3014 3303 3613 3614 1 6 3302 3014 3015 3304 3614 3615 1 6 3303 3015 3016 3305 3615 3616 1 6 3304 3016 3017 3306 3616 3617 1 6 3305 3017 3018 3307 3617 3618 1 6 3306 3018 3019 3308 3618 3619 1 6 3307 3019 3020 3309 3619 3620 1 6 3308 3020 3021 3310 3620 3621 1 6 3309 3021 3022 3311 3621 3622 1 6 3310 3022 3023 3312 3622 3623 1 6 3311 3023 3024 3313 3623 3624 1 6 3312 3024 3025 3314 3624 3625 1 6 3313 3025 3026 3315 3625 3626 1 6 3314 3026 3027 3316 3626 3627 1 6 3315 3027 3028 3317 3627 3628 1 6 3316 3028 3029 3318 3628 3629 1 6 3317 3029 3030 3319 3629 3630 1 6 3318 3030 3031 3320 3630 3631 1 6 3319 3031 3032 3321 3631 3632 1 6 3320 3032 3033 3322 3632 3633 1 6 3321 3033 3034 3042 3323 3633 1 6 3322 3042 3324 3633 3634 3635 1 6 3323 3042 3043 3325 3635 3636 1 6 3324 3043 3044 3045 3326 3636 1 6 3325 3045 3327 3636 3637 3638 1 6 3326 3045 3046 3053 3328 3638 1 6 3327 3053 3054 3329 3638 3639 1 6 3328 3054 3056 3639 3640 3641 1 6 2507 2508 32 33 3331 3880 1 6 3330 33 34 2248 3332 3880 1 6 3331 2248 3333 3334 3880 3881 1 6 3332 2248 3334 3335 3336 2249 1 6 3332 3333 3335 9707 6499 3881 1 6 3334 3333 3336 9706 6492 9707 1 6 3335 3333 2249 2250 2251 9706 1 6 1171 1172 1524 3338 3339 3882 1 6 3337 1524 3339 3340 3341 4250 1 6 3337 3338 3340 3882 3127 3883 1 6 3339 3338 3341 3342 3885 3883 1 6 3340 3338 3342 3343 2206 4250 1 6 3340 3341 3343 3861 6717 3885 1 6 3342 3341 2206 2207 3344 3861 1 6 3343 2207 2209 3345 3346 3861 1 6 3344 2209 3346 3347 3348 2211 1 6 3344 3345 3347 3861 3862 3863 1 6 3346 3345 3348 6532 3863 6524 1 6 3347 3345 2211 2213 6523 6524 1 6 3076 3077 3350 3918 3917 3919 1 6 3349 3077 3078 3107 3351 3919 1 6 3350 3107 3352 3919 3920 3921 1 6 3351 3107 3108 3353 3921 3922 1 6 3352 3108 3109 3354 3922 3923 1 6 3353 3109 3110 3355 3923 3924 1 6 3354 3110 3356 3924 3925 3374 1 6 3355 3110 3111 3357 3368 3374 1 6 3356 3111 3112 3358 3367 3368 1 6 3357 3112 3359 3153 3360 3367 1 6 3358 3112 3153 3085 3152 3084 1 6 3358 3153 3154 3361 3363 3367 1 6 3360 3154 3362 3363 3364 3678 1 6 3361 3154 3155 3677 3675 3678 1 6 3360 3361 3364 3365 3366 3367 1 6 3363 3361 3365 3678 3667 3668 1 6 3363 3364 3366 3373 3370 3668 1 6 3363 3365 3367 3368 3369 3370 1 6 3363 3366 3368 3360 3358 3357 1 6 3367 3366 3369 3357 3356 3374 1 6 3368 3366 3370 3371 3374 3375 1 6 3369 3366 3371 3372 3373 3365 1 6 3369 3370 3372 3375 3376 3377 1 6 3371 3370 3373 3377 3378 3379 1 6 3372 3370 3365 3379 3380 3668 1 6 3356 3368 3369 3375 3925 3355 1 7 3374 3369 3371 3376 3943 3925 4342 1 5 3375 3371 3377 4342 4343 1 6 3376 3371 3372 3378 4343 4344 1 6 3377 3372 3379 3645 4347 4344 1 6 3378 3372 3373 3380 3381 3645 1 6 3379 3373 3381 3382 3668 3656 1 6 3379 3380 3382 3383 3384 3645 1 6 3381 3380 3383 3390 3387 3656 1 6 3381 3382 3384 3385 3386 3387 1 6 3381 3383 3385 3645 3646 3647 1 6 3384 3383 3386 3647 3648 3649 1 6 3385 3383 3387 3388 3649 3650 1 6 3386 3383 3388 3389 3390 3382 1 6 3386 3387 3389 3650 3651 3652 1 6 3388 3387 3390 3652 3653 3654 1 6 3389 3387 3382 3654 3655 3656 1 6 2675 2676 3392 3573 3574 3575 1 6 3391 2676 2677 3393 3575 3576 1 6 3392 2677 2678 3394 3576 3577 1 6 3393 2678 2679 3577 3578 3579 1 6 2173 2804 2805 3396 3397 4747 1 6 3395 2805 3397 3398 3399 3400 1 6 3395 3396 3398 3892 4747 4746 1 6 3397 3396 3399 3892 3893 3894 1 6 3398 3396 3400 3894 3895 3896 1 6 3399 3396 2805 2806 3401 3896 1 6 3400 2806 2807 3402 3896 3897 1 6 3401 2807 3403 3897 3898 3899 1 6 3402 2807 2808 3404 3899 3900 1 6 3403 2808 1732 3405 3679 3900 1 6 3404 1732 1733 1734 3406 3679 1 6 3405 1734 1735 3407 3679 3680 1 6 3406 1735 1736 3408 3680 3681 1 6 3407 1736 1737 3409 3683 3681 1 6 3408 1737 1738 3410 3470 3683 1 6 3409 1738 1739 3411 9751 3470 1 6 3410 1739 1740 3197 3200 9751 2 6 3147 1674 1675 1676 3413 4231 2 6 3412 1676 1677 3414 9791 4231 2 6 3413 1677 3415 7778 7776 9791 2 6 3414 1677 1678 7778 7779 5382 1 6 1695 1696 3417 3786 1694 3787 1 6 3416 1696 1697 3418 3787 3789 1 6 3417 1697 1698 2223 3419 3789 1 6 3418 2223 3420 3789 3790 3791 1 6 3419 2223 2224 3421 3791 3792 1 6 3420 2224 2225 3422 3423 3792 1 6 3421 2225 3423 3424 3425 3426 1 6 3421 3422 3424 3794 3792 3795 1 6 3423 3422 3425 3795 3796 3797 1 6 3424 3422 3426 3797 3798 3799 1 6 3425 3422 2225 2226 3427 3799 1 6 3426 2226 2227 3428 3799 3800 1 6 3427 2227 2228 3429 3800 3801 1 6 3428 2228 3430 3801 3802 3432 1 6 3429 2228 2229 2238 3431 3432 1 6 3430 2238 3432 3433 3434 3435 1 6 3430 3431 3433 3442 3802 3429 1 6 3432 3431 3434 3442 3443 3444 1 6 3433 3431 3435 3444 3445 3446 1 6 3434 3431 2238 2239 2561 3446 2 6 2491 2492 3437 3438 3515 2493 2 6 2491 3436 3438 3439 3440 3441 2 6 3437 3436 3439 3513 3514 3515 2 6 3437 3438 3440 3508 3509 3513 2 6 3437 3439 3441 3451 3453 3508 2 6 3437 3440 2491 70 3451 69 1 6 3432 3433 3443 3802 3803 3804 1 6 3442 3433 3444 3804 3805 3806 1 6 3443 3433 3434 3445 3806 3807 1 6 3444 3434 3446 3807 3808 3447 1 6 3445 3434 3435 2561 2562 3447 1 6 3446 2562 3448 3808 3445 4107 1 6 3447 2562 2563 3449 3454 4107 1 6 3448 2563 2567 3454 3455 2568 1 7 3175 3176 3179 6655 6654 6656 6657 1 6 3441 3440 69 68 3452 3453 1 6 68 3451 3453 67 3505 3506 1 6 3452 3451 3440 3506 3507 3508 1 6 3448 3449 3455 3456 4107 4108 1 6 3454 3449 3456 3457 3458 2568 1 6 3454 3455 3457 3464 4110 4108 1 6 3456 3455 3458 3459 3460 3464 1 6 3457 3455 3459 3463 2569 2568 1 6 3457 3458 3460 3461 3462 3463 1 6 3457 3459 3461 3464 3465 3466 1 6 3460 3459 3462 3466 3467 3469 1 6 3461 3459 3463 1721 3469 1720 1 6 3462 3459 3458 2569 1720 1719 1 6 3456 3457 3460 3465 4394 4110 1 6 3464 3460 3466 4404 4394 4745 1 6 3465 3460 3461 3467 3468 4745 1 6 3466 3461 3468 2172 1724 3469 1 6 3466 3467 2172 4745 4746 4747 1 6 1724 3467 1722 1721 3462 3461 1 7 3201 3202 3471 9751 3410 3409 3683 1 6 3470 3202 3203 3472 3681 3683 1 6 3471 3203 3204 3473 3682 3681 1 6 3472 3204 3474 3685 3902 3682 1 6 3473 3204 3205 3475 3685 3686 1 6 3474 3205 3206 3476 3686 3687 1 6 3475 3206 3207 3477 3687 3688 1 6 3476 3207 3208 3478 3688 3689 1 6 3477 3208 3209 3479 3689 3690 1 6 3478 3209 3211 3480 3690 3691 1 6 3479 3211 3481 3499 3694 3691 1 6 3480 3211 3212 3482 3499 3500 1 5 3481 3212 2907 3500 2908 1 5 2907 3212 3213 2905 2906 1 6 3218 3219 3222 3485 4039 4040 1 6 3484 3222 3486 3489 3968 4039 1 6 3485 3222 3223 3487 3488 3489 1 6 3486 3223 3488 3492 3493 3225 1 6 3486 3487 3489 3490 3491 3492 1 6 3486 3488 3490 3485 3968 3969 1 6 3489 3488 3491 3969 3970 3971 1 6 3490 3488 3492 3971 9747 6555 1 6 3491 3488 3487 3493 3496 9747 1 6 3492 3487 3225 3494 3495 3496 1 6 3493 3225 3226 3495 3497 3498 1 6 3493 3494 3496 3497 3501 3115 1 6 3493 3495 3492 3501 3502 9747 1 6 3495 3494 3498 3102 3113 3115 1 5 3497 3494 3226 3101 3102 1 6 3480 3481 3500 3694 3695 3696 1 6 3499 3481 3482 2908 3696 3697 1 6 3496 3495 3502 3503 3504 3115 1 6 3496 3501 3503 9747 6706 9748 1 6 3502 3501 3504 6712 6710 9748 1 5 3503 3501 3115 6712 3116 1 6 67 3452 3506 6697 6703 66 1 6 3505 3452 3453 3507 6697 6704 1 6 3506 3453 3508 3510 4522 6704 2 6 3507 3453 3440 3439 3509 3510 2 6 3508 3439 3510 3511 3512 3513 2 6 3508 3509 3511 3770 3507 4522 2 6 3510 3509 3512 3770 3771 3772 2 6 3511 3509 3513 3772 3773 3520 2 6 3512 3509 3439 3438 3514 3520 2 6 3513 3438 3515 3520 3521 3517 2 6 3514 3438 3436 2493 3516 3517 2 6 3515 2493 3517 3518 1607 1606 2 6 3515 3516 3518 3521 3514 3522 2 6 3517 3516 1607 1613 3522 3523 2 5 1613 1607 1605 1608 1610 2 6 3513 3514 3521 3773 3512 4531 2 6 3520 3514 3517 3522 4116 4531 2 6 3521 3517 3518 3523 3525 4116 2 6 3522 3518 1613 1614 3524 3525 2 6 3523 1614 3525 3526 3527 3528 2 6 3523 3524 3526 3522 4116 4117 2 6 3525 3524 3527 3529 4117 4118 2 6 3526 3524 3528 3529 3530 3543 2 6 3527 3524 1614 3543 3544 1615 2 6 3526 3527 3530 3531 4118 9786 2 6 3529 3527 3531 3532 3542 3543 2 6 3529 3530 3532 3533 9786 9787 2 6 3531 3530 3533 3534 3541 3542 2 6 3531 3532 3534 3535 9787 9788 2 6 3533 3532 3535 3536 3540 3541 2 6 3533 3534 3536 3537 9788 7178 2 6 3535 3534 3537 3538 3539 3540 2 6 3535 3536 3538 7182 7179 7178 2 6 3537 3536 3539 7182 7183 7184 2 6 3538 3536 3540 7184 7185 7212 2 6 3539 3536 3534 3541 7212 4372 2 6 3540 3534 3532 3542 4372 4097 2 6 3541 3532 3530 3543 4096 4097 2 6 3542 3530 3527 3528 3544 4096 2 6 3543 3528 1615 4099 4096 3093 2 6 2986 2987 3546 3824 3825 3829 2 6 3545 2987 2988 3547 3829 3830 2 6 3546 2988 2989 3548 3830 3831 2 6 3547 2989 2990 3549 3831 3832 2 6 3548 2990 2991 3550 3832 3833 2 6 3549 2991 2992 3551 3809 3833 2 6 3550 2992 2993 3552 3809 3810 2 6 3551 2993 2994 3553 3810 3811 2 6 3552 2994 2995 3554 3811 3812 2 6 3553 2995 2996 3555 3812 3813 2 6 3554 2996 3556 3813 3814 3815 2 6 3555 2996 2997 3557 3815 3816 2 6 3556 2997 2998 2999 3558 3816 2 6 3557 2999 3000 3559 3816 3817 2 6 3558 3000 3001 3560 3817 3818 2 6 3559 3001 3002 3561 3562 3818 2 6 3560 3002 3562 3563 3564 3565 2 6 3560 3561 3563 3818 3819 3820 2 6 3562 3561 3564 3820 3821 3822 2 6 3563 3561 3565 3822 3823 3566 2 6 3564 3561 3002 2666 2667 3566 2 6 3565 2667 2668 3567 3823 3564 2 6 3566 2668 2669 3568 3850 3823 2 6 3567 2669 2670 3569 3879 3850 2 6 3568 2670 2671 3570 3891 3879 2 6 3569 2671 2672 2673 3571 3891 2 6 3570 2673 3572 4237 3891 4257 2 6 3571 2673 2674 3573 4257 4258 1 6 3572 2674 2675 3391 3574 4258 1 6 3573 3391 3575 4258 4259 4263 1 6 3574 3391 3392 3576 4263 4264 1 6 3575 3392 3393 3577 4264 4265 1 6 3576 3393 3394 3578 4265 4266 1 6 3577 3394 3579 4266 4267 4268 1 6 3578 3394 2679 2680 3580 4268 1 6 3579 2680 2681 3581 4141 4268 1 6 3580 2681 2682 3582 4141 4142 1 6 3581 2682 2683 3583 4142 4143 1 6 3582 2683 2684 3584 4143 4144 1 6 3583 2684 2685 3585 4144 4145 1 6 3584 2685 2686 3586 4145 4146 1 6 3585 2686 2687 3587 4146 4147 1 6 3586 2687 2688 3588 4147 4148 1 6 3587 2688 2689 3278 3589 4148 1 6 3588 3278 3590 4148 4149 4150 1 6 3589 3278 3279 3591 4150 4151 1 6 3590 3279 3280 3592 4151 4152 1 6 3591 3280 3281 3593 4152 4153 1 6 3592 3281 3282 3594 4153 4154 1 6 3593 3282 3283 3595 4154 4155 1 6 3594 3283 3284 3596 4155 4156 1 6 3595 3284 3285 3597 4156 4157 1 6 3596 3285 3286 3598 4157 4158 1 6 3597 3286 3287 3599 4158 4159 1 6 3598 3287 3288 3600 4159 4160 1 6 3599 3288 3289 3601 4160 4161 1 6 3600 3289 3290 3291 3602 4161 1 6 3601 3291 3603 4161 4162 4163 1 6 3602 3291 3292 3604 4163 4164 1 6 3603 3292 3293 3605 4164 4165 1 6 3604 3293 3294 3606 4165 4166 1 6 3605 3294 3295 3607 4166 4167 1 6 3606 3295 3296 3608 4167 4168 1 6 3607 3296 3297 3298 3609 4168 1 6 3608 3298 3610 4168 4169 4170 1 6 3609 3298 3299 3611 4170 4171 1 6 3610 3299 3300 3612 4171 4172 1 6 3611 3300 3301 3613 4172 4173 1 6 3612 3301 3302 3614 4173 4174 1 6 3613 3302 3303 3615 4174 4175 1 6 3614 3303 3304 3616 4175 4176 1 6 3615 3304 3305 3617 4176 4177 1 6 3616 3305 3306 3618 4177 4178 1 6 3617 3306 3307 3619 4178 4179 1 6 3618 3307 3308 3620 4179 4180 1 6 3619 3308 3309 3621 4180 4181 1 6 3620 3309 3310 3622 4181 4182 1 6 3621 3310 3311 3623 4182 4183 1 6 3622 3311 3312 3624 4183 4184 1 6 3623 3312 3313 3625 4184 4185 1 6 3624 3313 3314 3626 4185 4186 1 6 3625 3314 3315 3627 4186 4187 1 6 3626 3315 3316 3628 4187 4188 1 6 3627 3316 3317 3629 4188 4189 1 6 3628 3317 3318 3630 4189 4190 1 6 3629 3318 3319 3631 4190 4191 1 6 3630 3319 3320 3632 4191 4192 1 6 3631 3320 3321 3633 4192 4193 1 6 3632 3321 3322 3323 3634 4193 1 6 3633 3323 3635 3903 4193 4194 1 6 3634 3323 3324 3636 3903 3904 1 6 3635 3324 3325 3326 3637 3904 1 6 3636 3326 3638 3904 3905 3906 1 6 3637 3326 3327 3328 3639 3906 1 6 3638 3328 3329 3640 3906 3907 1 6 3639 3329 3641 3907 3908 3642 1 5 3640 3329 3056 3057 3642 1 7 3641 3057 3058 3643 3908 3640 3927 1 6 3642 3058 3059 3644 3909 3927 1 5 3643 3059 3061 3909 3910 1 6 3381 3384 3646 3379 3378 4347 1 6 3645 3384 3647 4347 4348 4349 1 6 3646 3384 3385 3648 4352 4349 1 6 3647 3385 3649 3657 4352 4353 1 6 3648 3385 3386 3650 3657 3658 1 6 3649 3386 3388 3651 3658 3659 1 6 3650 3388 3652 3659 3660 3661 1 6 3651 3388 3389 3653 3661 3662 1 6 3652 3389 3654 3662 3663 3664 1 6 3653 3389 3390 3655 3664 3665 1 6 3654 3390 3656 3665 3666 3667 1 6 3655 3390 3382 3667 3668 3380 1 6 3648 3649 3658 4353 4354 4358 1 6 3657 3649 3650 3659 4371 4358 1 6 3658 3650 3651 3660 9793 4371 1 6 3659 3651 3661 4906 4908 9793 1 6 3660 3651 3652 3662 3669 4906 1 6 3661 3652 3653 3663 3669 3670 1 6 3662 3653 3664 3670 3671 3672 1 6 3663 3653 3654 3665 3672 3673 1 6 3664 3654 3655 3666 3673 3674 1 6 3665 3655 3667 3674 3675 3678 1 6 3666 3655 3656 3668 3364 3678 1 6 3667 3656 3380 3364 3365 3373 1 6 3661 3662 3670 4903 4905 4906 1 6 3669 3662 3663 3671 4902 4903 1 6 3670 3663 3672 5918 4902 3951 1 6 3671 3663 3664 3673 3950 3951 1 6 3672 3664 3665 3674 3944 3950 1 6 3673 3665 3666 3675 3676 3944 1 6 3674 3666 3676 3677 3362 3678 1 6 3674 3675 3677 3158 3944 3945 1 6 3676 3675 3158 3156 3155 3362 1 6 3362 3675 3361 3364 3667 3666 1 6 3404 3405 3406 3680 3900 3901 1 6 3679 3406 3407 3681 3682 3901 1 7 3680 3407 3682 3472 3471 3683 3408 1 6 3680 3681 3472 3901 3902 3473 1 5 3471 3681 3408 3409 3470 1 7 418 3100 3229 3231 3234 12 13 1 7 3473 3474 3686 3902 4665 4664 4688 1 5 3685 3474 3475 3687 4688 1 7 3686 3475 3476 3688 4688 4689 4690 1 6 3687 3476 3477 3689 4690 4691 1 6 3688 3477 3478 3690 4691 4692 1 6 3689 3478 3479 3691 3692 4692 1 6 3690 3479 3692 3693 3694 3480 1 6 3690 3691 3693 4692 4693 4694 1 6 3692 3691 3694 4694 4695 4696 1 6 3693 3691 3480 3499 3695 4696 1 6 3694 3499 3696 4696 4697 4698 1 6 3695 3499 3500 3697 4698 4699 1 6 3696 3500 2908 2909 3698 4699 1 6 3697 2909 2910 3699 3972 4699 1 6 3698 2910 2911 3700 3972 3973 1 6 3699 2911 2912 2913 3701 3973 1 6 3700 2913 3702 3973 3974 3975 1 6 3701 2913 2914 3703 3975 3976 1 6 3702 2914 2915 3704 3976 3977 1 6 3703 2915 2916 3705 3977 3978 1 6 3704 2916 2917 3706 3978 3979 1 6 3705 2917 2918 3707 3979 3980 1 6 3706 2918 2919 3708 3980 3981 1 6 3707 2919 2920 3709 3981 3982 1 6 3708 2920 2921 3710 3982 3983 1 6 3709 2921 2922 3711 3983 3984 1 6 3710 2922 2923 3712 3984 3985 1 6 3711 2923 2924 3713 3985 3986 1 6 3712 2924 2925 3714 3986 3987 1 6 3713 2925 2926 3715 3987 3988 1 6 3714 2926 2927 3716 3988 3989 1 6 3715 2927 2928 3717 3989 3990 1 6 3716 2928 2929 3718 3990 3991 1 6 3717 2929 2930 3719 3991 3992 1 6 3718 2930 2931 3720 3992 3993 1 6 3719 2931 2932 3721 3993 3994 1 6 3720 2932 2933 3722 3994 3995 1 6 3721 2933 2934 3723 3995 3996 1 6 3722 2934 2935 3724 3996 3997 1 6 3723 2935 2936 3725 3997 3998 1 6 3724 2936 2937 3726 3998 3999 1 6 3725 2937 2938 3727 3999 4000 1 6 3726 2938 2939 3728 4000 4001 1 6 3727 2939 2940 3729 4001 4002 1 6 3728 2940 2941 3730 4002 4003 1 6 3729 2941 2942 3731 4003 4004 1 6 3730 2942 2943 3732 4004 4005 1 6 3731 2943 2944 2945 3733 4005 1 6 3732 2945 2946 3734 4005 4006 1 6 3733 2946 2947 2948 3735 4006 1 6 3734 2948 3736 4006 4007 3737 1 5 3735 2948 2949 3242 3737 1 6 3736 3242 3738 4007 3735 4012 1 6 3737 3242 3243 3739 4012 4013 1 6 3738 3243 3244 3740 4013 4014 1 6 3739 3244 3245 3741 4014 4015 1 6 3740 3245 3246 3742 4015 4016 1 6 3741 3246 3247 3743 4016 4017 1 6 3742 3247 3248 3744 4017 4018 1 6 3743 3248 3249 3745 4018 4019 1 6 3744 3249 3250 3746 4019 4020 1 6 3745 3250 3747 4020 4021 4022 1 6 3746 3250 3251 3253 3748 4022 1 6 3747 3253 3749 4022 4023 4024 1 7 3748 3253 3254 3255 3256 3750 4024 1 5 3749 3256 3751 4024 4025 1 6 3750 3256 3257 3752 4025 4026 1 6 3751 3257 3258 3753 4029 4026 1 7 3752 3258 3754 4037 4029 4046 3755 1 5 3753 3258 3259 3260 3755 1 6 3754 3260 3261 3756 4046 3753 1 6 3755 3261 3262 3757 4046 4047 1 6 3756 3262 3263 3758 4047 4048 1 6 3757 3263 3264 3759 4048 4049 1 6 3758 3264 3265 4049 4050 4051 1 6 615 617 3761 3764 3765 3763 1 6 3760 617 625 627 3762 3763 1 6 3761 627 3763 3217 635 629 1 6 3761 3762 3765 3760 4040 3217 1 6 615 3760 3765 4038 6557 612 1 6 3764 3760 3763 4038 4039 4040 1 5 2085 1567 3767 3768 6093 1 6 3766 1567 3768 3769 1571 1568 1 6 3766 3767 3769 6092 6093 6094 1 7 3768 3767 1571 6094 6088 6317 6318 1 6 3510 3511 3771 4522 4523 4524 1 6 3770 3511 3772 4524 4525 4528 2 6 3771 3511 3512 3773 4528 4529 2 6 3772 3512 3520 4529 4530 4531 2 6 1682 1683 3775 5391 5385 5383 2 6 3774 1683 3776 5620 5391 3778 2 6 3775 1683 1684 1686 3777 3778 2 6 3776 1686 3778 3779 3780 3781 2 6 3776 3777 3779 7791 5620 3775 2 6 3778 3777 3780 7798 7792 7791 2 6 3779 3777 3781 7798 3783 3782 2 6 3780 3777 1686 1687 1688 3782 2 6 3781 1688 1689 1691 3783 3780 2 6 3782 1691 3784 7798 3780 7799 2 6 3783 1691 1692 3785 7799 7800 2 6 3784 1692 3786 3787 3788 7800 1 6 3785 1692 1693 1694 3416 3787 1 6 3786 3416 3417 3785 3788 3789 2 6 3785 3787 3789 7800 7801 3790 1 6 3788 3787 3417 3418 3419 3790 2 6 3789 3419 3791 7801 3788 7802 1 6 3790 3419 3420 3792 3793 7802 1 6 3791 3420 3793 3794 3423 3421 1 6 3791 3792 3794 7802 7803 7804 1 6 3793 3792 3423 3795 7804 7805 1 6 3794 3423 3424 3796 7809 7805 1 6 3795 3424 3797 3952 7809 7810 1 6 3796 3424 3425 3798 3952 3953 1 6 3797 3425 3799 3953 3954 3955 1 6 3798 3425 3426 3427 3800 3955 1 6 3799 3427 3428 3801 3955 3956 1 6 3800 3428 3429 3802 3956 3957 1 6 3801 3429 3432 3442 3803 3957 1 6 3802 3442 3804 3957 4100 4239 1 6 3803 3442 3443 3805 4100 4101 1 6 3804 3443 3806 4101 4102 4103 1 6 3805 3443 3444 3807 4103 4104 1 6 3806 3444 3445 3808 4104 4105 1 6 3807 3445 3447 4105 4106 4107 2 6 3550 3551 3810 3833 3834 3835 2 6 3809 3551 3552 3811 3835 3836 2 6 3810 3552 3553 3812 3836 3837 2 6 3811 3553 3554 3813 3837 3838 2 6 3812 3554 3555 3814 3838 3839 2 6 3813 3555 3815 3839 3840 3841 2 6 3814 3555 3556 3816 3841 3842 2 6 3815 3556 3557 3558 3817 3842 2 6 3816 3558 3559 3818 3842 3843 2 6 3817 3559 3560 3562 3819 3843 2 6 3818 3562 3820 3843 3844 3845 2 6 3819 3562 3563 3821 3845 3846 2 6 3820 3563 3822 3846 3847 3848 2 6 3821 3563 3564 3823 3848 3849 2 6 3822 3564 3566 3849 3850 3567 2 6 2986 3545 3825 3826 3277 2985 2 6 3824 3545 3826 3827 3828 3829 2 6 3824 3825 3827 4069 4065 3277 2 6 3826 3825 3828 4756 4069 4763 2 6 3827 3825 3829 4763 4764 4765 2 6 3828 3825 3545 3546 3830 4765 2 6 3829 3546 3547 3831 4765 4766 2 6 3830 3547 3548 3832 4766 4767 2 6 3831 3548 3549 3833 4770 4767 2 6 3832 3549 3550 3809 3834 4770 2 6 3833 3809 3835 5016 4770 5024 2 6 3834 3809 3810 3836 5024 5025 2 6 3835 3810 3811 3837 5025 5026 2 6 3836 3811 3812 3838 4405 5026 2 6 3837 3812 3813 3839 3864 4405 2 6 3838 3813 3814 3840 3864 3865 2 6 3839 3814 3841 3865 3866 3867 2 6 3840 3814 3815 3842 3853 3867 2 6 3841 3815 3816 3817 3843 3853 2 6 3842 3817 3818 3819 3844 3853 2 6 3843 3819 3845 3853 3854 3855 2 6 3844 3819 3820 3846 3855 3856 2 6 3845 3820 3821 3847 3856 3857 2 6 3846 3821 3848 3860 3857 3876 2 6 3847 3821 3822 3849 3876 3877 2 6 3848 3822 3823 3850 3877 3878 2 6 3849 3823 3567 3878 3879 3568 1 6 2181 2199 2179 3852 2201 3129 1 6 2179 3851 27 26 3129 9781 2 6 3841 3842 3843 3844 3854 3867 2 6 3853 3844 3855 3867 3868 3869 2 6 3854 3844 3845 3856 3869 3870 2 6 3855 3845 3846 3857 3858 3870 2 6 3856 3846 3858 3859 3860 3847 2 6 3856 3857 3859 3870 3871 3872 2 6 3858 3857 3860 3872 3873 3874 2 6 3859 3857 3847 3874 3875 3876 1 6 3343 3344 3346 3862 6717 3342 1 6 3861 3346 3863 6716 6715 6717 1 7 3862 3346 6532 6531 3347 6533 6716 2 6 3838 3839 3865 4405 4406 4407 2 6 3864 3839 3840 3866 4407 4408 2 6 3865 3840 3867 4408 4409 3868 2 6 3866 3840 3841 3853 3854 3868 2 6 3867 3854 3869 4409 3866 4420 2 6 3868 3854 3855 3870 4420 4421 2 6 3869 3855 3856 3858 3871 4421 2 6 3870 3858 3872 4421 4422 4423 2 6 3871 3858 3859 3873 4423 4424 2 6 3872 3859 3874 4424 4425 4426 2 6 3873 3859 3860 3875 4426 4427 2 6 3874 3860 3876 4427 4428 3888 2 6 3875 3860 3847 3848 3877 3888 2 6 3876 3848 3849 3878 3888 3889 2 6 3877 3849 3850 3879 3889 3890 2 6 3878 3850 3568 3890 3891 3569 1 6 2507 3330 2509 3881 3331 3332 1 6 2509 3880 3334 6499 2511 3332 1 6 3337 3339 3127 1171 414 3128 1 6 3127 3339 3122 3884 3885 3340 1 6 3122 3883 3885 3886 3887 3121 1 6 3884 3883 3886 3342 6717 3340 1 6 3884 3885 3887 6538 6715 6717 1 6 3884 3886 3121 6713 6714 6538 2 6 3876 3877 3889 4428 3875 4251 2 6 3888 3877 3878 3890 4236 4251 2 6 3889 3878 3879 3891 4236 4237 2 6 3890 3879 3569 4237 3571 3570 1 6 3397 3398 3893 4746 4744 4743 1 6 3892 3398 3894 4743 4748 4749 1 6 3893 3398 3399 3895 4752 4749 1 6 3894 3399 3896 4661 4758 4752 1 6 3895 3399 3400 3401 3897 4661 1 6 3896 3401 3402 3898 4661 4662 1 6 3897 3402 3899 4662 4663 4664 1 6 3898 3402 3403 3900 4664 4665 1 6 3899 3403 3404 3679 3901 4665 1 6 3900 3679 3680 3682 3902 4665 1 5 3901 3682 3473 4665 3685 1 6 3634 3635 3904 4194 4195 4196 1 6 3903 3635 3636 3637 3905 4196 1 6 3904 3637 3906 4196 4197 4198 1 6 3905 3637 3638 3639 3907 4198 1 6 3906 3639 3640 3908 4198 4199 1 6 3907 3640 3642 3927 4199 4200 1 5 3643 3644 3910 3927 3928 1 7 3909 3644 3061 3062 3911 3928 3929 1 7 3910 3062 3063 3912 3929 3930 3931 1 6 3911 3063 3069 3913 3931 3932 1 6 3912 3069 3070 3914 3932 3933 1 6 3913 3070 3071 3915 3933 3934 1 6 3914 3071 3072 3916 3934 3935 1 6 3915 3072 3073 3917 3935 3936 1 6 3916 3073 3918 3349 3919 3936 1 6 3917 3073 3074 3075 3076 3349 1 6 3917 3349 3350 3351 3920 3936 1 6 3919 3351 3921 3936 3937 3938 1 6 3920 3351 3352 3922 3938 3939 1 6 3921 3352 3353 3923 3939 3940 1 6 3922 3353 3354 3924 3940 3941 1 6 3923 3354 3355 3925 3941 3942 1 6 3924 3355 3374 3942 3943 3375 1 6 3085 2482 2483 2484 3150 3152 1 6 3908 3642 3643 3909 3928 4200 1 6 3927 3909 3910 3929 4200 4201 1 6 3928 3910 3911 3930 4201 4202 1 6 3929 3911 3931 4202 4203 4204 1 5 3930 3911 3912 3932 4204 1 6 3931 3912 3913 3933 4204 4205 1 6 3932 3913 3914 3934 4205 4206 1 6 3933 3914 3915 3935 4206 4207 1 6 3934 3915 3916 3936 4207 3937 1 6 3935 3916 3917 3919 3920 3937 1 6 3936 3920 3938 4207 3935 4335 1 6 3937 3920 3921 3939 4335 4336 1 6 3938 3921 3922 3940 4336 4337 1 6 3939 3922 3923 3941 4337 4338 1 6 3940 3923 3924 3942 4338 4339 1 6 3941 3924 3925 3943 4339 4340 1 6 3942 3925 3375 4340 4341 4342 1 6 3673 3674 3676 3945 3950 3947 1 6 3944 3676 3158 3159 3946 3947 1 6 3945 3159 3947 3948 5922 3962 1 6 3945 3946 3948 3949 3950 3944 1 6 3947 3946 3949 5920 5921 5922 1 6 3947 3948 3950 3951 5919 5920 1 6 3947 3949 3951 3672 3673 3944 1 6 3950 3949 3672 5918 3671 5919 1 6 3796 3797 3953 7810 7811 7812 1 6 3952 3797 3798 3954 7812 7813 1 6 3953 3798 3955 7813 7814 7815 1 6 3954 3798 3799 3800 3956 7815 1 6 3955 3800 3801 3957 4238 7815 1 6 3956 3801 3802 3803 4238 4239 2 6 3187 3188 3959 3960 7588 7586 2 6 3958 3188 3960 3961 2890 2888 2 6 3958 3959 3961 7588 7589 7590 2 6 3960 3959 2890 7590 7591 7592 1 6 3159 3160 3963 5922 3946 5923 1 6 3962 3160 3964 3965 5923 5924 1 6 3963 3160 3965 3966 3967 3161 1 6 3963 3964 3966 5924 5942 5943 1 6 3965 3964 3967 5943 5948 5947 1 6 3966 3964 3161 5948 2488 2487 1 6 3485 3489 3969 6556 4038 4039 1 6 3968 3489 3490 3970 1597 6556 1 6 3969 3490 3971 6358 1595 1597 1 6 3970 3490 3491 6555 6357 6358 1 6 3698 3699 3973 4699 4700 4701 1 6 3972 3699 3700 3701 3974 4701 1 6 3973 3701 3975 4701 4702 4703 1 6 3974 3701 3702 3976 4703 4704 1 6 3975 3702 3703 3977 4704 4705 1 6 3976 3703 3704 3978 4705 4706 1 6 3977 3704 3705 3979 4706 4707 1 6 3978 3705 3706 3980 4707 4708 1 6 3979 3706 3707 3981 4708 4709 1 6 3980 3707 3708 3982 4709 4710 1 6 3981 3708 3709 3983 4710 4711 1 6 3982 3709 3710 3984 4711 4712 1 6 3983 3710 3711 3985 4712 4713 1 6 3984 3711 3712 3986 4713 4714 1 6 3985 3712 3713 3987 4714 4715 1 6 3986 3713 3714 3988 4715 4716 1 6 3987 3714 3715 3989 4716 4717 1 6 3988 3715 3716 3990 4717 4718 1 6 3989 3716 3717 3991 4718 4719 1 6 3990 3717 3718 3992 4719 4720 1 6 3991 3718 3719 3993 4720 4721 1 6 3992 3719 3720 3994 4439 4721 1 6 3993 3720 3721 3995 4439 4440 1 6 3994 3721 3722 3996 4440 4441 1 6 3995 3722 3723 3997 4441 4442 1 6 3996 3723 3724 3998 4442 4443 1 6 3997 3724 3725 3999 4443 4444 1 6 3998 3725 3726 4000 4444 4445 1 6 3999 3726 3727 4001 4445 4446 1 6 4000 3727 3728 4002 4070 4446 1 6 4001 3728 3729 4003 4008 4070 1 6 4002 3729 3730 4004 4008 4009 1 6 4003 3730 3731 4005 4009 4010 1 6 4004 3731 3732 3733 4006 4010 1 6 4005 3733 3734 3735 4007 4010 1 6 4006 3735 3737 4010 4011 4012 1 6 4002 4003 4009 4070 4071 4072 1 6 4008 4003 4004 4010 4072 4011 1 6 4009 4004 4005 4006 4007 4011 1 6 4010 4007 4012 4072 4009 4073 1 6 4011 4007 3737 3738 4013 4073 1 6 4012 3738 3739 4014 4073 4074 1 7 4013 3739 3740 4015 4074 4075 4076 1 6 4014 3740 3741 4016 4076 4077 1 6 4015 3741 3742 4017 4077 4078 1 6 4016 3742 3743 4018 4078 4079 1 6 4017 3743 3744 4019 4079 4080 1 6 4018 3744 3745 4020 4080 4081 1 6 4019 3745 3746 4021 4081 4082 1 6 4020 3746 4022 4030 4082 4083 1 6 4021 3746 3747 3748 4023 4030 1 6 4022 3748 4024 4030 4031 4032 1 6 4023 3748 3749 3750 4025 4032 1 6 4024 3750 3751 4026 4027 4032 1 6 4025 3751 4027 4028 4029 3752 1 6 4025 4026 4028 4032 4033 4034 1 6 4027 4026 4029 4034 4035 4036 1 6 4028 4026 3752 4036 4037 3753 1 6 4021 4022 4023 4031 4083 4084 1 6 4030 4023 4032 4084 4085 4033 1 6 4031 4023 4024 4025 4027 4033 1 6 4032 4027 4034 4085 4031 4462 1 6 4033 4027 4028 4035 4041 4462 1 6 4034 4028 4036 4041 4042 4043 1 6 4035 4028 4029 4037 4043 4044 1 6 4036 4029 3753 4044 4045 4046 1 6 3764 3765 4039 6556 6557 3968 1 6 4038 3765 4040 3968 3485 3484 1 6 4039 3765 3763 3217 3484 3218 1 6 4034 4035 4042 4462 4463 4464 1 6 4041 4035 4043 4464 4465 4466 1 6 4042 4035 4036 4044 4466 4467 1 6 4043 4036 4037 4045 4467 4468 1 6 4044 4037 4046 4468 4469 4047 1 6 4045 4037 3753 3755 3756 4047 1 6 4046 3756 3757 4048 4469 4045 1 6 4047 3757 3758 4049 4469 4470 1 6 4048 3758 3759 4050 4470 4209 1 6 4049 3759 4051 4052 4208 4209 1 6 4050 3759 4052 4053 4054 3265 1 6 4050 4051 4053 4208 4221 4222 1 6 4052 4051 4054 3268 4055 4222 1 6 4053 4051 3265 3266 3267 3268 1 5 4053 3268 3269 4056 4222 1 7 4055 3269 3270 4057 4222 4223 4224 2 7 4056 3270 3271 4058 4224 4225 4226 2 6 4057 3271 3272 4059 4226 4227 2 6 4058 3272 3273 4060 4227 4228 2 6 4059 3273 3274 4061 4062 4228 2 6 4060 3274 4062 4063 4064 3275 2 6 4060 4061 4063 4230 4228 4502 2 6 4062 4061 4064 4066 4067 4502 2 6 4063 4061 3275 3276 4065 4066 2 6 4064 3276 4066 4069 3826 3277 2 6 4064 4065 4063 4067 4068 4069 2 6 4063 4066 4068 4513 4502 4754 2 6 4067 4066 4069 4754 4755 4756 2 6 4068 4066 4065 3826 4756 3827 1 6 4001 4002 4008 4071 4446 4447 1 6 4070 4008 4072 4447 4448 4449 1 6 4071 4008 4009 4011 4073 4449 1 6 4072 4011 4012 4013 4074 4449 1 6 4073 4013 4014 4075 4449 4450 1 6 4074 4014 4076 4450 4451 4452 1 5 4075 4014 4015 4077 4452 1 6 4076 4015 4016 4078 4452 4453 1 6 4077 4016 4017 4079 4453 4454 1 6 4078 4017 4018 4080 4454 4455 1 6 4079 4018 4019 4081 4455 4456 1 6 4080 4019 4020 4082 4456 4457 1 6 4081 4020 4021 4083 4457 4458 1 6 4082 4021 4030 4084 4458 4459 1 6 4083 4030 4031 4085 4459 4460 1 6 4084 4031 4033 4460 4461 4462 2 6 2880 2881 4087 4089 7599 7600 2 6 4086 2881 2882 2883 4088 4089 2 6 4087 2883 4089 4090 4091 4092 2 7 4087 4088 4090 7598 7599 4086 7751 2 6 4089 4088 4091 7751 7753 4379 2 6 4090 4088 4092 4094 4378 4379 2 6 4091 4088 2883 2498 4093 4094 2 6 4092 2498 4094 4095 2809 2499 2 6 4092 4093 4095 4091 4378 4387 2 6 4094 4093 2809 4387 4386 4388 2 6 3542 3543 4097 4098 4099 3544 2 6 3542 4096 4098 4365 4372 3541 2 6 4097 4096 4099 4365 4366 4367 2 6 4098 4096 3544 4367 3094 3093 1 6 3803 3804 4101 4239 4240 4241 1 6 4100 3804 3805 4102 4241 4242 1 6 4101 3805 4103 4242 4243 4244 1 6 4102 3805 3806 4104 4111 4244 1 6 4103 3806 3807 4105 4111 4112 1 6 4104 3807 3808 4106 4112 4113 1 6 4105 3808 4107 4108 4109 4113 1 6 4106 3808 3447 3448 3454 4108 1 6 4107 3454 4106 4109 4110 3456 1 6 4106 4108 4110 4113 4114 4115 1 6 4109 4108 3456 4115 4394 3464 1 6 4103 4104 4112 4244 4245 4246 1 6 4111 4104 4105 4113 4249 4246 1 6 4112 4105 4106 4109 4114 4249 1 6 4113 4109 4115 4249 4391 4392 1 6 4114 4109 4110 4392 4393 4394 2 7 3522 3525 4117 4530 4531 3521 4119 2 5 4116 3525 3526 4118 4119 2 6 4117 3526 4119 4120 3529 9786 2 7 4117 4118 4120 4121 9784 4530 4116 2 6 4119 4118 4121 4122 9786 9789 2 6 4119 4120 4122 4123 4395 9784 2 6 4121 4120 4123 4124 9789 7172 2 6 4121 4122 4124 4125 4126 4395 2 6 4123 4122 4125 7171 4140 7172 2 6 4123 4124 4126 4127 4128 4140 2 6 4123 4125 4127 4395 4396 4397 1 6 4126 4125 4128 4129 4130 4397 1 6 4127 4125 4129 4136 4139 4140 1 6 4127 4128 4130 4131 4135 4136 1 6 4127 4129 4131 4132 4397 4398 1 6 4130 4129 4132 4133 4134 4135 1 6 4130 4131 4133 4401 4398 4410 1 6 4132 4131 4134 4410 4411 4412 1 6 4133 4131 4135 4412 4413 7164 1 6 4134 4131 4129 4136 4137 7164 1 6 4135 4129 4128 4137 4138 4139 1 6 4135 4136 4138 7163 7161 7164 1 6 4137 4136 4139 7168 7163 7169 1 6 4138 4136 4128 4140 7169 7170 2 6 4139 4128 4125 7170 7171 4124 1 6 3580 3581 4142 4268 4269 4270 1 6 4141 3581 3582 4143 4270 4271 1 6 4142 3582 3583 4144 4271 4272 1 6 4143 3583 3584 4145 4272 4273 1 6 4144 3584 3585 4146 4273 4274 1 6 4145 3585 3586 4147 4274 4275 1 6 4146 3586 3587 4148 4275 4276 1 6 4147 3587 3588 3589 4149 4276 1 6 4148 3589 4150 4276 4277 4278 1 6 4149 3589 3590 4151 4278 4279 1 6 4150 3590 3591 4152 4279 4280 1 6 4151 3591 3592 4153 4280 4281 1 6 4152 3592 3593 4154 4281 4282 1 6 4153 3593 3594 4155 4282 4283 1 6 4154 3594 3595 4156 4283 4284 1 6 4155 3595 3596 4157 4284 4285 1 6 4156 3596 3597 4158 4285 4286 1 6 4157 3597 3598 4159 4286 4287 1 6 4158 3598 3599 4160 4287 4288 1 6 4159 3599 3600 4161 4288 4289 1 6 4160 3600 3601 3602 4162 4289 1 6 4161 3602 4163 4289 4290 4291 1 6 4162 3602 3603 4164 4291 4292 1 6 4163 3603 3604 4165 4292 4293 1 6 4164 3604 3605 4166 4293 4294 1 6 4165 3605 3606 4167 4294 4295 1 6 4166 3606 3607 4168 4295 4296 1 6 4167 3607 3608 3609 4169 4296 1 6 4168 3609 4170 4296 4297 4298 1 6 4169 3609 3610 4171 4298 4299 1 6 4170 3610 3611 4172 4299 4300 1 6 4171 3611 3612 4173 4300 4301 1 6 4172 3612 3613 4174 4301 4302 1 6 4173 3613 3614 4175 4302 4303 1 6 4174 3614 3615 4176 4303 4304 1 6 4175 3615 3616 4177 4304 4305 1 6 4176 3616 3617 4178 4305 4306 1 6 4177 3617 3618 4179 4306 4307 1 6 4178 3618 3619 4180 4307 4308 1 6 4179 3619 3620 4181 4308 4309 1 6 4180 3620 3621 4182 4309 4310 1 6 4181 3621 3622 4183 4310 4311 1 6 4182 3622 3623 4184 4311 4312 1 6 4183 3623 3624 4185 4312 4313 1 6 4184 3624 3625 4186 4313 4314 1 6 4185 3625 3626 4187 4314 4315 1 6 4186 3626 3627 4188 4315 4316 1 6 4187 3627 3628 4189 4316 4317 1 6 4188 3628 3629 4190 4317 4318 1 6 4189 3629 3630 4191 4318 4319 1 6 4190 3630 3631 4192 4319 4320 1 6 4191 3631 3632 4193 4320 4321 1 6 4192 3632 3633 3634 4194 4321 1 6 4193 3634 3903 4195 4321 4322 1 6 4194 3903 4196 4322 4323 4324 1 6 4195 3903 3904 3905 4197 4324 1 6 4196 3905 4198 4324 4325 4326 1 6 4197 3905 3906 3907 4199 4326 1 6 4198 3907 3908 4200 4326 4327 1 6 4199 3908 3927 3928 4201 4327 1 6 4200 3928 3929 4202 4327 4328 1 6 4201 3929 3930 4203 4328 4329 1 6 4202 3930 4204 4329 4330 4331 1 6 4203 3930 3931 3932 4205 4331 1 6 4204 3932 3933 4206 4331 4332 1 6 4205 3933 3934 4207 4332 4333 1 7 4206 3934 3935 3937 4333 4334 4335 1 6 4050 4052 4209 4210 4211 4221 1 6 4050 4208 4210 4470 4049 4477 1 6 4209 4208 4211 4212 4477 4478 1 6 4210 4208 4212 4213 4220 4221 1 6 4210 4211 4213 4214 4478 4479 1 6 4212 4211 4214 4215 4216 4220 1 6 4212 4213 4215 4479 4480 4481 1 6 4214 4213 4216 4217 4481 4482 1 6 4215 4213 4217 4218 4219 4220 1 6 4215 4216 4218 4232 4482 4483 1 6 4217 4216 4219 4232 4233 4234 1 6 4218 4216 4220 4224 4234 4223 1 6 4219 4216 4213 4211 4221 4223 1 6 4220 4211 4208 4052 4222 4223 1 6 4221 4052 4053 4055 4056 4223 1 6 4222 4056 4224 4221 4220 4219 2 6 4223 4056 4057 4225 4234 4219 2 6 4224 4057 4226 4235 4234 4488 2 5 4225 4057 4058 4227 4488 2 7 4226 4058 4059 4228 4229 4487 4488 2 6 4227 4059 4229 4230 4062 4060 2 6 4227 4228 4230 4489 4487 4500 2 6 4229 4228 4062 4500 4501 4502 2 6 3147 3412 3146 3145 9791 3413 1 6 4217 4218 4233 4483 4484 4485 2 6 4232 4218 4234 4235 4485 4486 2 6 4233 4218 4235 4225 4224 4219 2 6 4233 4234 4225 4486 4487 4488 2 6 3889 3890 4237 4251 4252 4256 2 6 4236 3890 3891 3571 4256 4257 1 6 3956 3957 4239 7815 7816 4503 1 6 4238 3957 3803 4100 4240 4503 1 6 4239 4100 4241 4503 4504 4505 1 6 4240 4100 4101 4242 4505 4506 1 6 4241 4101 4102 4243 4416 4506 1 6 4242 4102 4244 4416 4417 4418 1 6 4243 4102 4103 4111 4245 4418 1 6 4244 4111 4246 4247 4418 4419 1 6 4245 4111 4247 4248 4249 4112 1 6 4245 4246 4248 4419 7829 7830 1 6 4247 4246 4249 4391 4739 7830 1 6 4248 4246 4112 4113 4114 4391 1 6 3341 3338 1524 1525 2205 2206 2 6 3889 4236 4252 4253 4428 3888 2 6 4251 4236 4253 4254 4255 4256 2 6 4251 4252 4254 4647 4428 6892 2 6 4253 4252 4255 4729 4730 6892 2 6 4254 4252 4256 4729 4261 4260 2 6 4255 4252 4236 4237 4257 4260 2 6 4256 4237 3571 3572 4258 4260 2 6 4257 3572 3573 3574 4259 4260 2 6 4258 3574 4260 4261 4262 4263 2 6 4258 4259 4261 4256 4257 4255 2 6 4260 4259 4262 4732 4729 4255 2 6 4261 4259 4263 6901 4732 6902 1 6 4262 4259 3574 3575 4264 6902 1 6 4263 3575 3576 4265 5231 6902 1 6 4264 3576 3577 4266 5231 5232 1 6 4265 3577 3578 4267 5232 5233 1 6 4266 3578 4268 5233 5234 4269 1 6 4267 3578 3579 3580 4141 4269 1 6 4268 4141 4270 5234 4267 5451 1 6 4269 4141 4142 4271 5451 5452 1 6 4270 4142 4143 4272 5452 5453 1 6 4271 4143 4144 4273 5453 5454 1 6 4272 4144 4145 4274 5457 5454 1 6 4273 4145 4146 4275 5469 5457 1 6 4274 4146 4147 4276 5469 5470 1 6 4275 4147 4148 4149 4277 5470 1 6 4276 4149 4278 5470 5471 5472 1 6 4277 4149 4150 4279 5472 5473 1 6 4278 4150 4151 4280 5473 5474 1 6 4279 4151 4152 4281 5046 5474 1 6 4280 4152 4153 4282 5046 5047 1 6 4281 4153 4154 4283 5047 5048 1 6 4282 4154 4155 4284 5048 5049 1 6 4283 4155 4156 4285 5049 5050 1 6 4284 4156 4157 4286 5050 5051 1 6 4285 4157 4158 4287 5051 5052 1 6 4286 4158 4159 4288 4923 5052 1 6 4287 4159 4160 4289 4923 4924 1 6 4288 4160 4161 4162 4290 4924 1 6 4289 4162 4291 4924 4925 4926 1 6 4290 4162 4163 4292 4926 4927 1 6 4291 4163 4164 4293 4927 4928 1 6 4292 4164 4165 4294 4928 4929 1 6 4293 4165 4166 4295 4929 4930 1 6 4294 4166 4167 4296 4930 4931 1 6 4295 4167 4168 4169 4297 4931 1 6 4296 4169 4298 4771 4931 4932 1 6 4297 4169 4170 4299 4771 4772 1 6 4298 4170 4171 4300 4772 4773 1 6 4299 4171 4172 4301 4773 4774 1 6 4300 4172 4173 4302 4774 4775 1 6 4301 4173 4174 4303 4775 4776 1 6 4302 4174 4175 4304 4776 4777 1 6 4303 4175 4176 4305 4777 4778 1 6 4304 4176 4177 4306 4778 4779 1 6 4305 4177 4178 4307 4779 4780 1 6 4306 4178 4179 4308 4780 4781 1 6 4307 4179 4180 4309 4781 4782 1 6 4308 4180 4181 4310 4566 4782 1 6 4309 4181 4182 4311 4566 4567 1 6 4310 4182 4183 4312 4567 4568 1 6 4311 4183 4184 4313 4568 4569 1 6 4312 4184 4185 4314 4569 4570 1 6 4313 4185 4186 4315 4570 4571 1 6 4314 4186 4187 4316 4571 4572 1 6 4315 4187 4188 4317 4572 4573 1 6 4316 4188 4189 4318 4573 4574 1 6 4317 4189 4190 4319 4574 4575 1 6 4318 4190 4191 4320 4575 4576 1 6 4319 4191 4192 4321 4576 4577 1 6 4320 4192 4193 4194 4322 4577 1 6 4321 4194 4195 4323 4577 4578 1 6 4322 4195 4324 4578 4579 4580 1 6 4323 4195 4196 4197 4325 4580 1 6 4324 4197 4326 4580 4581 4582 1 6 4325 4197 4198 4199 4327 4582 1 6 4326 4199 4200 4201 4328 4582 1 6 4327 4201 4202 4329 4582 4583 1 6 4328 4202 4203 4330 4583 4584 1 6 4329 4203 4331 4584 4585 4589 1 7 4330 4203 4204 4205 4332 4589 4590 1 6 4331 4205 4206 4333 4590 4591 1 6 4332 4206 4207 4334 4591 4592 1 6 4333 4207 4335 4336 4429 4592 1 5 4334 4207 3937 3938 4336 1 6 4335 3938 3939 4337 4334 4429 1 6 4336 3939 3940 4338 4429 4430 1 6 4337 3940 3941 4339 4430 4431 1 6 4338 3941 3942 4340 4431 4432 1 6 4339 3942 3943 4341 4432 4433 1 6 4340 3943 4342 4433 4434 4435 1 6 4341 3943 3375 3376 4343 4435 1 6 4342 3376 3377 4344 4345 4435 1 6 4343 3377 4345 4346 4347 3378 1 6 4343 4344 4346 4435 4436 4437 1 6 4345 4344 4347 4437 4438 4348 1 6 4346 4344 3378 3645 3646 4348 1 6 4347 3646 4349 4350 4438 4346 1 6 4348 3646 4350 4351 4352 3647 1 6 4348 4349 4351 4601 4438 4602 1 6 4350 4349 4352 4602 4603 4604 1 6 4351 4349 3647 3648 4353 4604 1 6 4352 3648 3657 4354 4355 4604 1 6 4353 3657 4355 4356 4357 4358 1 6 4353 4354 4356 4604 4605 4606 1 6 4355 4354 4357 4361 4362 4606 1 6 4356 4354 4358 4359 4360 4361 1 6 4357 4354 4359 4371 3658 3657 1 6 4357 4358 4360 4368 4369 4371 1 6 4357 4359 4361 4364 4368 4614 1 6 4357 4360 4356 4362 4363 4364 1 6 4356 4361 4363 4606 4607 4608 1 6 4362 4361 4364 4611 4608 4612 1 6 4363 4361 4360 4612 4613 4614 2 6 4097 4098 4366 4372 4373 4374 2 6 4365 4098 4367 4374 4375 4376 2 7 4366 4098 4099 3094 4376 1626 1624 1 6 4360 4359 4369 4370 4614 4615 1 6 4368 4359 4370 4371 9794 9793 1 6 4368 4369 9794 4642 4637 4615 1 6 4369 4359 4358 3658 9793 3659 2 6 4097 4365 4373 7212 3540 3541 2 6 4372 4365 4374 7212 7210 7209 2 6 4373 4365 4366 4375 7209 7213 2 6 4374 4366 4376 4377 7213 7214 2 6 4375 4366 4367 4377 1627 1626 2 5 4375 4376 1627 7214 7215 2 6 4091 4094 4379 4380 4381 4387 2 7 4091 4378 4380 7753 4090 7752 7754 2 6 4379 4378 4381 4382 7754 7755 2 6 4380 4378 4382 4383 4384 4387 2 6 4380 4381 4383 7755 7756 7764 2 6 4382 4381 4384 4385 4389 7764 2 6 4383 4381 4385 3140 4386 4387 2 6 4383 4384 3140 4389 4390 3141 2 6 3140 4384 4387 4095 4388 3139 2 6 4386 4384 4381 4378 4094 4095 2 6 4386 4095 2809 2810 2813 3139 2 6 4383 4385 4390 7764 7765 7766 2 6 4389 4385 3141 7766 7767 3142 1 6 4249 4114 4392 4248 4739 4740 1 6 4391 4114 4115 4393 4402 4740 1 6 4392 4115 4394 4402 4403 4404 1 6 4393 4115 4110 3464 4404 3465 2 5 4121 4123 4126 4396 9784 2 7 4395 4126 4397 4399 4528 4529 9784 1 6 4396 4126 4127 4130 4398 4399 1 6 4397 4130 4399 4400 4401 4132 1 6 4397 4398 4400 4525 4528 4396 1 5 4399 4398 4401 4527 4525 1 7 4400 4398 4132 4410 4534 4527 4535 1 6 4392 4393 4403 4740 4741 4742 1 6 4402 4393 4404 4742 4743 4744 1 6 4403 4393 4394 3465 4744 4745 2 6 3837 3838 3864 4406 5026 5027 2 6 4405 3864 4407 5027 5028 5029 2 6 4406 3864 3865 4408 5029 5030 2 6 4407 3865 3866 4409 5030 5031 2 6 4408 3866 3868 4420 5031 5032 1 6 4401 4132 4133 4411 4535 4536 1 6 4410 4133 4412 4545 4539 4536 1 6 4411 4133 4134 4413 4414 4545 1 6 4412 4134 4414 4415 7164 7165 1 6 4412 4413 4415 4545 4544 4648 1 6 4414 4413 4649 4648 7165 7166 1 6 4242 4243 4417 4506 4507 4508 1 6 4416 4243 4418 4508 4509 4510 1 6 4417 4243 4244 4245 4419 4510 1 6 4418 4245 4247 7828 4510 7829 2 6 4409 3868 3869 4421 5032 5033 2 6 4420 3869 3870 3871 4422 5033 2 6 4421 3871 4423 5033 5034 5035 2 6 4422 3871 3872 4424 5035 5036 2 6 4423 3872 3873 4425 4643 5036 2 6 4424 3873 4426 4643 4644 4645 2 6 4425 3873 3874 4427 4645 4646 2 6 4426 3874 3875 4428 4646 4647 2 6 4427 3875 3888 4647 4253 4251 1 6 4334 4336 4337 4430 4592 4593 1 6 4429 4337 4338 4431 4593 4594 1 6 4430 4338 4339 4432 4594 4595 1 6 4431 4339 4340 4433 4595 4596 1 6 4432 4340 4341 4434 4596 4597 1 6 4433 4341 4435 4597 4598 4436 1 6 4434 4341 4342 4343 4345 4436 1 6 4435 4345 4437 4598 4434 4599 1 6 4436 4345 4346 4438 4599 4600 1 6 4437 4346 4348 4600 4601 4350 1 6 3993 3994 4440 4721 4722 4723 1 6 4439 3994 3995 4441 4723 4724 1 6 4440 3995 3996 4442 4724 4725 1 6 4441 3996 3997 4443 4725 4726 1 6 4442 3997 3998 4444 4726 4727 1 6 4443 3998 3999 4445 4727 4728 1 6 4444 3999 4000 4446 4728 4658 1 6 4445 4000 4001 4070 4447 4658 1 6 4446 4070 4071 4448 4658 4659 1 6 4447 4071 4449 4659 4660 4450 1 6 4448 4071 4072 4073 4074 4450 1 6 4449 4074 4075 4451 4660 4448 1 6 4450 4075 4452 4669 4738 4660 1 6 4451 4075 4076 4077 4453 4669 1 6 4452 4077 4078 4454 4669 4670 1 6 4453 4078 4079 4455 4670 4671 1 6 4454 4079 4080 4456 4671 4672 1 6 4455 4080 4081 4457 4672 4673 1 6 4456 4081 4082 4458 4673 4674 1 6 4457 4082 4083 4459 4674 4675 1 6 4458 4083 4084 4460 4675 4676 1 6 4459 4084 4085 4461 4676 4677 1 6 4460 4085 4462 4677 4678 4679 1 7 4461 4085 4033 4034 4041 4463 4679 1 5 4462 4041 4464 4679 4680 1 6 4463 4041 4042 4465 4471 4680 1 6 4464 4042 4466 4471 4472 4473 1 6 4465 4042 4043 4467 4473 4474 1 6 4466 4043 4044 4468 4474 4475 1 6 4467 4044 4045 4469 4475 4476 1 6 4468 4045 4047 4048 4470 4476 1 6 4469 4048 4049 4209 4476 4477 1 6 4464 4465 4472 4680 4681 4682 1 6 4471 4465 4473 4682 4683 4684 1 6 4472 4465 4466 4474 4684 4685 1 6 4473 4466 4467 4475 4685 4686 1 6 4474 4467 4468 4476 4686 4687 1 6 4475 4468 4469 4470 4477 4687 1 6 4476 4470 4209 4210 4478 4687 1 6 4477 4210 4212 4479 4687 5213 1 6 4478 4212 4214 4480 5213 5214 1 6 4479 4214 4481 5214 5215 5216 1 6 4480 4214 4215 4482 4490 5216 1 6 4481 4215 4217 4483 4490 4491 1 6 4482 4217 4232 4484 4491 4492 1 6 4483 4232 4485 4492 4493 4494 2 6 4484 4232 4233 4486 4494 4495 2 6 4485 4233 4235 4487 4489 4495 2 6 4486 4235 4488 4227 4489 4229 2 5 4487 4235 4227 4226 4225 2 6 4486 4487 4229 4495 4496 4500 1 6 4481 4482 4491 4981 4989 5216 1 6 4490 4482 4483 4492 4981 4982 1 6 4491 4483 4484 4493 4982 4983 1 6 4492 4484 4494 4983 4984 4985 2 6 4493 4484 4485 4495 4985 4497 2 6 4494 4485 4486 4489 4496 4497 2 6 4495 4489 4497 4498 4499 4500 2 6 4495 4496 4498 4985 4494 4986 2 6 4497 4496 4499 4986 4987 4988 2 5 4498 4496 4500 4988 4511 2 7 4499 4496 4489 4229 4230 4501 4511 2 6 4500 4230 4502 4511 4512 4513 2 6 4501 4230 4062 4513 4067 4063 1 6 4239 4240 4504 7816 4238 7817 1 6 4503 4240 4505 7817 7818 7819 1 6 4504 4240 4241 4506 7819 7820 1 6 4505 4241 4242 4416 4507 7820 1 6 4506 4416 4508 7820 7821 7822 1 6 4507 4416 4417 4509 7822 7823 1 6 4508 4417 4510 7823 7824 7825 1 6 4509 4417 4418 7825 7828 4419 2 7 4500 4501 4512 4988 4499 5002 4999 2 6 4511 4501 4513 4754 4759 5002 2 5 4512 4501 4502 4067 4754 1 6 426 411 4515 4516 5611 5612 1 6 4514 411 4516 4517 4521 410 1 6 4514 4515 4517 4518 5611 5615 1 6 4516 4515 4518 4519 4520 4521 1 6 4516 4517 4519 9734 7508 5615 1 6 4518 4517 4520 5235 9734 9678 1 6 4519 4517 4521 5235 5236 5237 1 6 4520 4517 4515 410 5237 421 1 7 3507 3510 3770 4523 6693 6695 6704 1 6 4522 3770 4524 6694 6693 4532 1 6 4523 3770 3771 4525 4526 4532 1 7 4524 3771 4526 4527 4400 4399 4528 1 6 4524 4525 4527 4532 4533 4534 1 5 4526 4525 4400 4534 4401 1 6 4399 4525 3771 3772 4529 4396 2 6 4528 3772 3773 4530 4396 9784 2 6 4529 3773 4531 4116 4119 9784 2 5 4530 3773 4116 3521 3520 1 6 4524 4526 4533 5156 4523 6694 1 6 4532 4526 4534 5156 5157 4666 1 6 4533 4526 4527 4401 4535 4666 1 6 4534 4401 4410 4536 4537 4666 1 6 4535 4410 4537 4538 4539 4411 1 6 4535 4536 4538 4666 4667 4668 1 6 4537 4536 4539 4540 4546 4668 1 6 4538 4536 4540 4541 4545 4411 1 6 4538 4539 4541 4542 4546 4547 1 6 4540 4539 4542 4543 4544 4545 1 6 4540 4541 4543 4550 4547 4551 1 6 4542 4541 4544 4551 4552 4553 1 6 4543 4541 4545 4414 4648 4553 1 6 4544 4541 4539 4411 4412 4414 1 6 4538 4540 4547 4548 9762 4668 1 6 4546 4540 4548 4549 4550 4542 1 6 4546 4547 4549 4557 4560 9762 1 6 4548 4547 4550 4557 4558 4559 1 6 4549 4547 4542 4551 6763 4559 1 6 4550 4542 4543 4552 7144 6763 1 6 4551 4543 4553 4554 7145 7144 1 6 4552 4543 4554 4555 4544 4648 1 6 4552 4553 4555 4556 7145 7146 1 6 4554 4553 4556 4648 4649 7153 1 6 4554 4555 7146 7148 7149 7153 1 6 4548 4549 4558 4560 4561 4562 1 6 4557 4549 4559 4565 4562 6764 1 6 4558 4549 6763 6762 6764 4550 1 7 4548 4557 4561 9762 9761 6675 9792 1 6 4560 4557 4562 4563 6674 6675 1 6 4561 4557 4563 4564 4565 4558 1 6 4561 4562 4564 6665 6666 6674 1 6 4563 4562 4565 6673 6665 6790 1 6 4564 4562 4558 6764 6765 6790 1 6 4309 4310 4567 4782 4783 4784 1 6 4566 4310 4311 4568 4784 4785 1 6 4567 4311 4312 4569 4785 4786 1 6 4568 4312 4313 4570 4786 4787 1 6 4569 4313 4314 4571 4787 4788 1 6 4570 4314 4315 4572 4788 4789 1 6 4571 4315 4316 4573 4789 4790 1 6 4572 4316 4317 4574 4790 4791 1 6 4573 4317 4318 4575 4791 4792 1 6 4574 4318 4319 4576 4792 4793 1 6 4575 4319 4320 4577 4793 4794 1 6 4576 4320 4321 4322 4578 4794 1 6 4577 4322 4323 4579 4794 4795 1 6 4578 4323 4580 4795 4796 4797 1 6 4579 4323 4324 4325 4581 4797 1 6 4580 4325 4582 4797 4798 4583 1 6 4581 4325 4326 4327 4328 4583 1 6 4582 4328 4329 4584 4798 4581 1 7 4583 4329 4330 4585 4586 4804 4798 1 6 4584 4330 4586 4587 4588 4589 1 5 4584 4585 4587 4804 4805 1 6 4586 4585 4588 4805 4806 4807 1 6 4587 4585 4589 4807 4808 4809 1 6 4588 4585 4330 4331 4590 4809 1 5 4589 4331 4332 4591 4809 1 6 4590 4332 4333 4592 4809 4810 1 6 4591 4333 4334 4429 4593 4810 1 6 4592 4429 4430 4594 4810 4811 1 6 4593 4430 4431 4595 4811 4812 1 6 4594 4431 4432 4596 4812 4813 1 6 4595 4432 4433 4597 4813 4814 1 6 4596 4433 4434 4598 4814 4815 1 6 4597 4434 4436 4599 4815 4816 1 6 4598 4436 4437 4600 4816 4817 1 6 4599 4437 4438 4601 4817 4818 1 6 4600 4438 4350 4602 4821 4818 1 6 4601 4350 4351 4603 4821 4822 1 6 4602 4351 4604 4825 4822 4826 1 7 4603 4351 4352 4353 4355 4605 4826 1 5 4604 4355 4606 4826 4827 1 6 4605 4355 4356 4362 4607 4827 1 5 4606 4362 4608 4609 4827 1 6 4607 4362 4609 4610 4611 4363 1 7 4607 4608 4610 4827 4828 4829 4830 1 6 4609 4608 4611 4830 4831 4832 1 6 4610 4608 4363 4612 4832 4834 1 6 4611 4363 4364 4613 4837 4834 1 6 4612 4364 4614 4616 4617 4837 1 6 4613 4364 4360 4368 4615 4616 1 7 4614 4368 4616 4637 4634 4619 4370 1 6 4614 4615 4613 4617 4618 4619 1 6 4613 4616 4618 4837 4622 4838 1 6 4617 4616 4619 4620 4621 4622 1 6 4618 4616 4620 4633 4634 4615 1 6 4618 4619 4621 4628 4629 4633 1 6 4618 4620 4622 4623 4624 4628 1 6 4618 4621 4623 4840 4838 4617 1 6 4622 4621 4624 4625 4840 4841 1 6 4623 4621 4625 4626 4627 4628 1 6 4623 4624 4626 4841 4860 4853 1 6 4625 4624 4627 4860 4861 4862 1 6 4626 4624 4628 4862 4863 4630 1 6 4627 4624 4621 4620 4629 4630 1 6 4628 4620 4630 4631 4632 4633 1 6 4628 4629 4631 4863 4627 4864 1 6 4630 4629 4632 4638 4868 4864 1 6 4631 4629 4633 4638 4639 4635 1 6 4632 4629 4620 4619 4634 4635 1 6 4633 4619 4635 4636 4637 4615 1 6 4633 4634 4636 4639 4632 4640 1 6 4635 4634 4637 4640 4641 4642 1 5 4636 4634 4615 4642 4370 1 6 4631 4632 4639 4868 4912 9760 1 6 4638 4632 4635 4640 4912 4913 1 6 4639 4635 4636 4641 4916 4913 1 6 4640 4636 4642 4910 4916 4909 1 7 4641 4636 4637 4908 4909 9794 4370 2 6 4424 4425 4644 5036 5037 5044 2 6 4643 4425 4645 5045 5044 6889 2 6 4644 4425 4426 4646 6890 6889 2 6 4645 4426 4427 4647 6890 6891 2 6 4646 4427 4428 4253 6891 6892 1 6 4544 4414 4553 4555 4649 4415 1 6 4555 4648 4415 7166 7154 7153 1 6 422 52 53 4651 4652 9684 1 6 4650 53 4652 4653 4657 54 1 6 4650 4651 4653 4654 9683 9684 1 6 4652 4651 4654 4655 4656 4657 1 6 4652 4653 4655 9682 9680 9683 1 6 4654 4653 4656 9682 9685 9686 1 7 4655 4653 4657 5380 9688 9686 9689 1 6 4656 4653 4651 54 5380 55 1 6 4446 4447 4659 4728 4445 4736 1 6 4658 4447 4448 4660 4736 4737 1 6 4659 4448 4450 4737 4738 4451 1 6 3895 3896 3897 4662 7841 4758 1 6 4661 3897 3898 4663 7841 7842 1 6 4662 3898 4664 7842 4689 4688 1 6 4663 3898 3899 4665 3685 4688 1 6 4664 3899 3900 3901 3902 3685 1 6 4534 4535 4537 4667 5157 4533 1 6 4666 4537 4668 9750 5157 9761 1 6 4667 4537 4538 9761 9762 4546 1 7 4451 4452 4453 4670 4980 4738 5194 1 6 4669 4453 4454 4671 5194 5195 1 6 4670 4454 4455 4672 5195 5196 1 6 4671 4455 4456 4673 5196 5197 1 6 4672 4456 4457 4674 5197 5198 1 6 4673 4457 4458 4675 5198 5199 1 6 4674 4458 4459 4676 5199 5200 1 6 4675 4459 4460 4677 5200 5201 1 6 4676 4460 4461 4678 5201 5202 1 6 4677 4461 4679 5202 5203 5204 1 6 4678 4461 4462 4463 4680 5204 1 7 4679 4463 4464 4471 4681 5204 5205 1 5 4680 4471 4682 5205 5206 1 7 4681 4471 4472 4683 5206 5207 5208 1 5 4682 4472 4684 5208 5209 1 7 4683 4472 4473 4685 5209 5210 5211 1 6 4684 4473 4474 4686 5211 5212 1 6 4685 4474 4475 4687 5212 5213 1 6 4686 4475 4476 4477 4478 5213 1 6 4664 3685 3686 3687 4689 4663 1 6 4688 3687 4690 7842 4663 7843 1 6 4689 3687 3688 4691 7843 7844 1 6 4690 3688 3689 4692 5158 7844 1 6 4691 3689 3690 3692 4693 5158 1 6 4692 3692 4694 5158 5159 5160 1 6 4693 3692 3693 4695 5160 5161 1 6 4694 3693 4696 5161 5162 5163 1 6 4695 3693 3694 3695 4697 5163 1 6 4696 3695 4698 5163 5164 5165 1 6 4697 3695 3696 4699 5165 4700 1 6 4698 3696 3697 3698 3972 4700 1 6 4699 3972 4701 5165 4698 7854 1 6 4700 3972 3973 3974 4702 7854 1 6 4701 3974 4703 7308 7854 7855 1 6 4702 3974 3975 4704 7308 7309 1 6 4703 3975 3976 4705 7309 7310 1 6 4704 3976 3977 4706 7310 7311 1 6 4705 3977 3978 4707 7311 7312 1 6 4706 3978 3979 4708 5170 7312 1 6 4707 3979 3980 4709 5170 5171 1 6 4708 3980 3981 4710 5171 5172 1 6 4709 3981 3982 4711 5172 5173 1 6 4710 3982 3983 4712 5173 5174 1 6 4711 3983 3984 4713 5174 5175 1 6 4712 3984 3985 4714 5175 5176 1 6 4713 3985 3986 4715 5176 5177 1 6 4714 3986 3987 4716 4965 5177 1 6 4715 3987 3988 4717 4965 4966 1 6 4716 3988 3989 4718 4966 4967 1 6 4717 3989 3990 4719 4967 4968 1 6 4718 3990 3991 4720 4968 4969 1 6 4719 3991 3992 4721 4969 4970 1 6 4720 3992 3993 4439 4722 4970 1 6 4721 4439 4723 4970 4971 4972 1 6 4722 4439 4440 4724 4972 4973 1 6 4723 4440 4441 4725 4973 4974 1 6 4724 4441 4442 4726 4733 4974 1 6 4725 4442 4443 4727 4733 4734 1 6 4726 4443 4444 4728 4734 4735 1 6 4727 4444 4445 4658 4735 4736 2 6 4254 4255 4730 4731 4732 4261 2 6 4254 4729 4731 6892 6893 6894 2 6 4730 4729 4732 6894 6895 6896 2 6 4731 4729 4261 6896 6901 4262 1 6 4725 4726 4734 4974 4975 4976 1 6 4733 4726 4727 4735 4976 4977 1 6 4734 4727 4728 4736 4977 4978 1 6 4735 4728 4658 4659 4737 4978 1 6 4736 4659 4660 4738 4978 4979 1 6 4737 4660 4451 4979 4980 4669 1 6 4248 4391 4740 5003 7830 7831 1 6 4739 4391 4392 4402 4741 5003 1 6 4740 4402 4742 4753 5003 5004 1 6 4741 4402 4403 4743 4753 4748 1 6 4742 4403 4744 3892 3893 4748 1 6 4743 4403 4404 4745 4746 3892 1 6 4744 4404 3465 3466 3468 4746 1 6 4745 3468 4747 3397 3892 4744 1 6 4746 3468 2172 2173 3395 3397 1 6 4743 3893 4749 4750 4753 4742 1 6 4748 3893 4750 4751 4752 3894 1 6 4748 4749 4751 5005 4753 7837 1 6 4750 4749 4752 4757 7837 7838 1 6 4751 4749 3894 4757 4758 3895 1 6 4741 4742 4748 5004 5005 4750 2 7 4513 4067 4068 4755 4512 4759 4760 2 5 4754 4068 4756 4760 4761 2 7 4755 4068 4069 3827 4761 4762 4763 1 6 4751 4752 4758 7838 7839 7840 1 6 4757 4752 3895 7840 7841 4661 2 6 4512 4754 4760 5006 5002 5001 2 5 4759 4754 4755 4761 5006 2 7 4760 4755 4756 4762 5006 5007 5008 2 6 4761 4756 4763 5008 5009 5010 2 6 4762 4756 3827 3828 4764 5010 2 6 4763 3828 4765 5010 5011 5012 2 6 4764 3828 3829 3830 4766 5012 2 6 4765 3830 3831 4767 4768 5012 2 6 4766 3831 4768 4769 4770 3832 2 7 4766 4767 4769 5012 5011 5013 5014 2 6 4768 4767 4770 5014 5015 5016 2 6 4769 4767 3832 5016 3834 3833 1 6 4297 4298 4772 4932 4933 4934 1 6 4771 4298 4299 4773 4934 4935 1 6 4772 4299 4300 4774 4935 4936 1 6 4773 4300 4301 4775 4936 4937 1 6 4774 4301 4302 4776 4937 4938 1 6 4775 4302 4303 4777 4938 4939 1 6 4776 4303 4304 4778 4939 4940 1 6 4777 4304 4305 4779 4940 4941 1 6 4778 4305 4306 4780 4941 4942 1 6 4779 4306 4307 4781 4942 4943 1 6 4780 4307 4308 4782 4943 4944 1 6 4781 4308 4309 4566 4783 4944 1 6 4782 4566 4784 4944 4945 4946 1 6 4783 4566 4567 4785 4946 4947 1 6 4784 4567 4568 4786 4947 4948 1 6 4785 4568 4569 4787 4948 4949 1 6 4786 4569 4570 4788 4949 4950 1 6 4787 4570 4571 4789 4950 4951 1 6 4788 4571 4572 4790 4951 4952 1 6 4789 4572 4573 4791 4952 4953 1 6 4790 4573 4574 4792 4953 4954 1 6 4791 4574 4575 4793 4799 4954 1 6 4792 4575 4576 4794 4799 4800 1 6 4793 4576 4577 4578 4795 4800 1 6 4794 4578 4579 4796 4800 4801 1 6 4795 4579 4797 4801 4802 4803 1 6 4796 4579 4580 4581 4798 4803 1 6 4797 4581 4583 4803 4804 4584 1 6 4792 4793 4800 4954 4955 4956 1 6 4799 4793 4794 4795 4801 4956 1 6 4800 4795 4796 4802 4956 4957 1 6 4801 4796 4803 4957 4958 4959 1 6 4802 4796 4797 4798 4804 4959 1 6 4803 4798 4584 4586 4805 4959 1 6 4804 4586 4587 4806 4918 4959 1 6 4805 4587 4807 4918 4919 4920 1 6 4806 4587 4588 4808 4920 4921 1 6 4807 4588 4809 4921 4922 4810 1 6 4808 4588 4589 4590 4591 4810 1 7 4809 4591 4592 4593 4811 4922 4808 1 5 4810 4593 4594 4812 4922 1 6 4811 4594 4595 4813 4964 4922 1 6 4812 4595 4596 4814 5093 4964 1 6 4813 4596 4597 4815 5093 5094 1 6 4814 4597 4598 4816 5094 5095 1 6 4815 4598 4599 4817 5095 5096 1 6 4816 4599 4600 4818 4819 5096 1 6 4817 4600 4819 4820 4821 4601 1 6 4817 4818 4820 5096 5097 5098 1 6 4819 4818 4821 5098 5099 4823 1 6 4820 4818 4601 4602 4822 4823 1 6 4821 4602 4823 4824 4825 4603 1 6 4821 4822 4824 5099 4820 5100 1 6 4823 4822 4825 5100 5101 5102 1 6 4824 4822 4603 4826 5102 5103 1 6 4825 4603 4604 4605 4827 5103 1 7 4826 4605 4606 4607 4609 4828 5103 1 6 4827 4609 4829 5103 5102 5104 1 6 4828 4609 4830 5104 5105 5106 1 6 4829 4609 4610 4831 5106 5107 1 6 4830 4610 4832 4833 5113 5107 1 5 4831 4610 4611 4833 4834 1 6 4831 4832 4834 4835 5113 5114 1 7 4833 4832 4611 4835 4836 4837 4612 1 6 4833 4834 4836 5114 4845 4844 1 6 4835 4834 4837 4838 4839 4844 1 6 4836 4834 4612 4613 4617 4838 1 6 4836 4837 4839 4840 4622 4617 1 6 4836 4838 4840 4842 4843 4844 1 6 4839 4838 4622 4623 4841 4842 1 6 4840 4623 4842 4625 4852 4853 1 6 4840 4841 4839 4843 4852 4850 1 6 4839 4842 4844 4845 4846 4850 1 5 4839 4843 4845 4835 4836 1 7 4844 4843 4846 4847 5114 4835 5115 1 6 4845 4843 4847 4848 4849 4850 1 6 4845 4846 4848 5117 5115 5118 1 6 4847 4846 4849 5118 5119 5120 1 6 4848 4846 4850 4851 5120 5121 1 6 4849 4846 4851 4852 4842 4843 1 6 4849 4850 4852 4854 4855 5121 1 6 4851 4850 4842 4841 4853 4854 1 6 4852 4841 4854 4857 4860 4625 1 6 4851 4852 4853 4855 4856 4857 1 6 4851 4854 4856 5121 5122 5123 1 6 4855 4854 4857 4858 5123 5124 1 6 4856 4854 4853 4858 4859 4860 1 6 4856 4857 4859 5124 5125 5129 1 6 4858 4857 4860 5129 5130 4861 1 6 4859 4857 4853 4625 4626 4861 1 6 4860 4626 4862 5130 4859 5131 1 6 4861 4626 4627 4863 4865 5131 1 6 4862 4627 4630 4864 4865 4866 1 6 4863 4630 4866 4867 4868 4631 1 6 4862 4863 4866 5131 5132 5136 1 6 4865 4863 4864 4867 5136 5137 1 6 4866 4864 4868 4869 4870 5137 1 6 4867 4864 4631 4638 4869 9760 1 6 4867 4868 4870 4871 4872 9760 1 6 4867 4869 4871 5137 5138 5139 1 6 4870 4869 4872 4873 5150 5139 1 6 4871 4869 4873 4874 4875 9760 1 6 4871 4872 4874 5149 5147 5150 1 6 4873 4872 4875 4876 4877 5149 1 6 4874 4872 4876 9760 4912 4914 1 6 4874 4875 4877 4878 4879 4914 1 6 4874 4876 4878 5155 5149 4882 1 6 4877 4876 4879 4880 4881 4882 1 6 4878 4876 4880 4914 4915 9753 1 7 4878 4879 4881 9753 9754 9756 9757 1 6 4878 4880 4882 4883 4884 9757 1 6 4878 4881 4883 5155 4877 5369 1 6 4882 4881 4884 4885 5369 5370 1 6 4883 4881 4885 4886 9757 4895 1 6 4883 4884 4886 4887 4888 5370 1 6 4885 4884 4887 4894 4891 4895 1 6 4885 4886 4888 4889 4890 4891 1 6 4885 4887 4889 5372 5370 5899 1 6 4888 4887 4890 5898 5896 5899 1 6 4889 4887 4891 4892 5898 5901 1 6 4890 4887 4892 4893 4894 4886 1 6 4890 4891 4893 5901 5902 5903 1 6 4892 4891 4894 5912 5903 5913 1 6 4893 4891 4886 4895 4896 5913 1 7 4894 4886 4896 4897 9757 9756 4884 1 6 4894 4895 4897 4898 4899 5913 1 5 4896 4895 4898 9756 9759 1 6 4896 4897 4899 4900 4901 9759 1 6 4896 4898 4900 5913 5914 5917 1 6 4899 4898 4901 4902 5917 5918 1 6 4900 4898 4902 4903 4904 9759 1 6 4900 4901 4903 5918 3671 3670 1 6 4902 4901 4904 4905 3669 3670 1 6 4903 4901 4905 9754 4911 9759 1 6 4903 4904 3669 4906 4907 4911 1 6 3669 4905 4907 4908 3661 3660 1 6 4906 4905 4908 4909 4910 4911 1 7 4906 4907 4909 4642 3660 9793 9794 1 5 4908 4907 4910 4642 4641 1 6 4909 4907 4911 4917 4916 4641 1 6 4910 4907 4905 9754 4917 4904 1 6 4638 4639 4913 4914 9760 4875 1 6 4912 4639 4914 4915 4916 4640 1 6 4912 4913 4915 4875 4876 4879 1 6 4914 4913 4916 4917 9753 4879 1 6 4915 4913 4917 4910 4641 4640 1 6 4915 4916 4910 9753 9754 4911 1 6 4805 4806 4919 4959 4958 4960 1 6 4918 4806 4920 4960 4961 4962 1 6 4919 4806 4807 4921 4962 4963 1 6 4920 4807 4808 4922 4963 4964 1 6 4921 4808 4810 4964 4812 4811 1 6 4287 4288 4924 5052 5053 5054 1 6 4923 4288 4289 4290 4925 5054 1 6 4924 4290 4926 5054 5055 5056 1 6 4925 4290 4291 4927 5056 5057 1 6 4926 4291 4292 4928 5057 5058 1 6 4927 4292 4293 4929 5058 5059 1 6 4928 4293 4294 4930 5059 5060 1 6 4929 4294 4295 4931 5060 5061 1 6 4930 4295 4296 4297 4932 5061 1 6 4931 4297 4771 4933 5061 5062 1 6 4932 4771 4934 5062 5063 5064 1 6 4933 4771 4772 4935 5064 5065 1 6 4934 4772 4773 4936 5065 5066 1 6 4935 4773 4774 4937 5066 5067 1 6 4936 4774 4775 4938 5067 5068 1 6 4937 4775 4776 4939 5068 5069 1 6 4938 4776 4777 4940 5069 5070 1 6 4939 4777 4778 4941 5070 5071 1 6 4940 4778 4779 4942 5071 5072 1 6 4941 4779 4780 4943 5072 5073 1 6 4942 4780 4781 4944 5073 5074 1 6 4943 4781 4782 4783 4945 5074 1 6 4944 4783 4946 5074 5075 5076 1 6 4945 4783 4784 4947 5076 5077 1 6 4946 4784 4785 4948 5077 5078 1 6 4947 4785 4786 4949 5078 5079 1 6 4948 4786 4787 4950 5079 5080 1 6 4949 4787 4788 4951 5080 5081 1 6 4950 4788 4789 4952 5081 5082 1 6 4951 4789 4790 4953 5082 5083 1 6 4952 4790 4791 4954 5083 5084 1 6 4953 4791 4792 4799 4955 5084 1 6 4954 4799 4956 5084 5085 5086 1 6 4955 4799 4800 4801 4957 5086 1 6 4956 4801 4802 4958 5088 5086 1 6 4957 4802 4959 4918 4960 5088 1 6 4958 4802 4803 4804 4805 4918 1 6 4958 4918 4919 4961 5088 5089 1 6 4960 4919 4962 5089 5090 5091 1 6 4961 4919 4920 4963 5091 5092 1 6 4962 4920 4921 4964 5092 5093 1 6 4963 4921 4922 4812 5093 4813 1 6 4715 4716 4966 5177 5178 5179 1 6 4965 4716 4717 4967 5179 5180 1 6 4966 4717 4718 4968 5180 5181 1 6 4967 4718 4719 4969 5181 5182 1 6 4968 4719 4720 4970 5182 5183 1 6 4969 4720 4721 4722 4971 5183 1 6 4970 4722 4972 5183 5184 5185 1 6 4971 4722 4723 4973 5185 5186 1 6 4972 4723 4724 4974 5186 5187 1 6 4973 4724 4725 4733 4975 5187 1 6 4974 4733 4976 5187 5188 5189 1 6 4975 4733 4734 4977 5189 5190 1 6 4976 4734 4735 4978 5190 5191 1 6 4977 4735 4736 4737 4979 5191 1 6 4978 4737 4738 4980 5191 5192 1 6 4979 4738 4669 5192 5193 5194 1 6 4490 4491 4982 4989 4990 4991 1 6 4981 4491 4492 4983 4991 4992 1 6 4982 4492 4493 4984 4992 4993 1 6 4983 4493 4985 4993 4994 4995 2 6 4984 4493 4494 4497 4986 4995 2 6 4985 4497 4498 4987 4995 4996 2 6 4986 4498 4988 4996 4997 4998 2 6 4987 4498 4499 4511 4998 4999 1 6 4490 4981 4990 5216 5217 5218 1 6 4989 4981 4991 5218 5219 5220 1 6 4990 4981 4982 4992 5220 5221 1 6 4991 4982 4983 4993 5221 5222 1 6 4992 4983 4984 4994 5222 5223 1 6 4993 4984 4995 5223 5224 5225 2 6 4994 4984 4985 4986 4996 5225 2 6 4995 4986 4987 4997 5225 5226 2 6 4996 4987 4998 5226 5227 5228 2 6 4997 4987 4988 4999 5000 5228 2 6 4998 4988 5000 5001 5002 4511 2 6 4998 4999 5001 5228 5229 5230 2 7 5000 4999 5002 4759 5006 5166 5230 2 5 5001 4999 4511 4512 4759 1 6 4739 4740 4741 5004 7831 7834 1 6 5003 4741 4753 5005 7834 7835 1 6 5004 4753 4750 7835 7836 7837 2 7 4759 4760 4761 5007 5021 5001 5166 2 6 5006 4761 5008 5021 5022 5023 2 6 5007 4761 4762 5009 5023 5018 2 6 5008 4762 5010 5011 5017 5018 2 5 5009 4762 4763 4764 5011 2 7 5010 4764 5012 4768 5013 5009 5017 2 5 5011 4764 4765 4766 4768 2 6 5011 4768 5014 5020 5017 5241 2 6 5013 4768 4769 5015 5241 5242 2 6 5014 4769 5016 5242 5243 5024 2 5 5015 4769 4770 3834 5024 2 6 5009 5011 5018 5019 5020 5013 2 7 5009 5017 5019 5023 5008 5238 6833 2 6 5018 5017 5020 5238 5239 5240 2 5 5019 5017 5013 5240 5241 2 5 5006 5007 5022 5166 5167 2 6 5021 5007 5023 5167 5168 5169 2 6 5022 5007 5008 5018 5169 6833 2 7 5016 3834 3835 5025 5243 5015 5244 2 6 5024 3835 3836 5026 5244 5245 2 6 5025 3836 3837 4405 5027 5245 2 6 5026 4405 4406 5028 5245 5246 2 6 5027 4406 5029 5249 5246 6844 2 6 5028 4406 4407 5030 6844 6845 2 6 5029 4407 4408 5031 6845 6846 2 6 5030 4408 4409 5032 6849 6846 2 6 5031 4409 4420 5033 6849 6850 2 6 5032 4420 4421 4422 5034 6850 2 6 5033 4422 5035 6850 6851 6852 2 6 5034 4422 4423 5036 6852 5038 2 6 5035 4423 4424 4643 5037 5038 2 6 5036 4643 5038 5039 5040 5044 2 6 5036 5037 5039 6852 5035 6853 2 6 5038 5037 5040 5041 6856 6853 2 6 5039 5037 5041 5042 5043 5044 2 6 5039 5040 5042 6858 6856 6863 2 6 5041 5040 5043 6878 6879 6863 2 6 5042 5040 5044 5045 6880 6878 2 6 5043 5040 5045 4644 4643 5037 2 6 5043 5044 4644 6880 6881 6889 1 6 4280 4281 5047 5474 5475 5476 1 6 5046 4281 4282 5048 5476 5477 1 6 5047 4282 4283 5049 5477 5478 1 6 5048 4283 4284 5050 5478 5479 1 6 5049 4284 4285 5051 5479 5480 1 6 5050 4285 4286 5052 5480 5481 1 6 5051 4286 4287 4923 5053 5481 1 6 5052 4923 5054 5481 5482 5483 1 6 5053 4923 4924 4925 5055 5483 1 6 5054 4925 5056 5483 5484 5485 1 6 5055 4925 4926 5057 5485 5486 1 6 5056 4926 4927 5058 5486 5487 1 6 5057 4927 4928 5059 5487 5488 1 6 5058 4928 4929 5060 5488 5489 1 6 5059 4929 4930 5061 5489 5490 1 6 5060 4930 4931 4932 5062 5490 1 6 5061 4932 4933 5063 5490 5491 1 6 5062 4933 5064 5250 5491 5492 1 6 5063 4933 4934 5065 5250 5251 1 6 5064 4934 4935 5066 5251 5252 1 6 5065 4935 4936 5067 5252 5253 1 6 5066 4936 4937 5068 5253 5254 1 6 5067 4937 4938 5069 5254 5255 1 6 5068 4938 4939 5070 5255 5256 1 6 5069 4939 4940 5071 5256 5257 1 6 5070 4940 4941 5072 5257 5258 1 6 5071 4941 4942 5073 5258 5259 1 6 5072 4942 4943 5074 5259 5260 1 6 5073 4943 4944 4945 5075 5260 1 6 5074 4945 5076 5260 5261 5262 1 6 5075 4945 4946 5077 5262 5263 1 6 5076 4946 4947 5078 5263 5264 1 6 5077 4947 4948 5079 5264 5265 1 6 5078 4948 4949 5080 5265 5266 1 6 5079 4949 4950 5081 5266 5267 1 6 5080 4950 4951 5082 5267 5268 1 6 5081 4951 4952 5083 5268 5269 1 6 5082 4952 4953 5084 5269 5270 1 6 5083 4953 4954 4955 5085 5270 1 6 5084 4955 5086 5087 5270 5271 1 6 5085 4955 4956 5087 5088 4957 1 6 5085 5086 5088 5271 5272 5089 1 6 5087 5086 4957 4958 4960 5089 1 6 5088 4960 4961 5090 5272 5087 1 6 5089 4961 5091 5272 5273 5274 1 6 5090 4961 4962 5092 5274 5275 1 6 5091 4962 4963 5093 5275 5276 1 7 5092 4963 4964 4813 4814 5094 5276 1 6 5093 4814 4815 5095 5276 5277 1 6 5094 4815 4816 5096 5277 5278 1 6 5095 4816 4817 4819 5097 5278 1 6 5096 4819 5098 5278 5279 5280 1 6 5097 4819 4820 5099 5280 5281 1 6 5098 4820 4823 5100 5281 5282 1 6 5099 4823 4824 5101 5282 5152 1 6 5100 4824 5102 5104 5151 5152 1 6 5101 4824 4825 5103 4828 5104 1 5 5102 4825 4826 4827 4828 1 6 5102 4828 4829 5105 5101 5151 1 7 5104 4829 5106 5154 5151 5287 5288 1 6 5105 4829 4830 5107 5108 5288 1 6 5106 4830 5108 5109 5113 4831 1 6 5106 5107 5109 5110 5288 5289 1 6 5108 5107 5110 5111 5112 5113 1 6 5108 5109 5111 5289 5290 5294 1 6 5110 5109 5112 5294 5295 5116 1 6 5111 5109 5113 5114 5115 5116 1 6 5112 5109 5107 4831 4833 5114 1 6 5113 4833 4835 4845 5115 5112 1 6 5114 4845 5112 5116 5117 4847 1 6 5112 5115 5117 5295 5111 5296 1 6 5116 5115 4847 5118 5299 5296 1 6 5117 4847 4848 5119 5299 5300 1 6 5118 4848 5120 5300 5301 5302 1 5 5119 4848 4849 5121 5302 1 6 5120 4849 4851 4855 5122 5302 1 6 5121 4855 5123 5318 5302 5319 1 6 5122 4855 4856 5124 5321 5319 1 6 5123 4856 4858 5125 5126 5321 1 6 5124 4858 5126 5127 5128 5129 1 6 5124 5125 5127 5322 5321 5323 1 6 5126 5125 5128 5323 5324 5328 1 6 5127 5125 5129 5336 5328 5337 1 6 5128 5125 4858 4859 5130 5337 1 6 5129 4859 4861 5131 5337 5338 1 7 5130 4861 4862 4865 5132 5133 5338 1 6 5131 4865 5133 5134 5135 5136 1 5 5131 5132 5134 5338 5339 1 6 5133 5132 5135 5339 5340 5341 1 6 5134 5132 5136 5346 5344 5341 1 6 5135 5132 4865 4866 5137 5346 1 6 5136 4866 4867 4870 5138 5346 1 6 5137 4870 5139 5140 5344 5346 1 6 5138 4870 5140 5141 4871 5150 1 6 5138 5139 5141 5142 5345 5344 1 6 5140 5139 5142 5143 5144 5150 1 6 5140 5141 5143 5345 5360 5359 1 7 5142 5141 5144 5145 5360 5357 5361 1 6 5143 5141 5145 5146 5147 5150 1 6 5143 5144 5146 5361 5362 5366 1 5 5145 5144 5147 5148 5366 1 6 5146 5144 5148 5149 4873 5150 1 7 5146 5147 5149 5155 5366 5367 5368 1 6 5148 5147 4873 5155 4877 4874 1 6 4873 5147 4871 5139 5141 5144 1 6 5101 5104 5152 5153 5154 5105 1 6 5101 5151 5153 5282 5100 5283 1 6 5152 5151 5154 5283 5284 5285 1 6 5153 5151 5105 5285 5286 5287 1 6 5148 5149 4877 4882 5368 5369 1 7 4532 4533 5157 6682 6683 6684 6694 1 6 5156 4533 4666 6682 9750 4667 1 5 4691 4692 4693 5159 7844 1 7 5158 4693 5160 7844 7845 7846 7847 1 6 5159 4693 4694 5161 7847 7848 1 6 5160 4694 4695 5162 7848 7849 1 6 5161 4695 5163 7849 7850 7851 1 6 5162 4695 4696 4697 5164 7851 1 6 5163 4697 5165 7851 7852 7853 1 6 5164 4697 4698 4700 7853 7854 2 5 5001 5006 5021 5167 5230 2 8 5166 5021 5022 5168 5229 5230 6826 6824 2 6 5167 5022 5169 6826 6827 6830 2 7 5168 5022 5023 6830 6831 6832 6833 1 6 4707 4708 5171 7312 7313 7314 1 6 5170 4708 4709 5172 7314 7315 1 6 5171 4709 4710 5173 7315 7316 1 6 5172 4710 4711 5174 7316 7317 1 6 5173 4711 4712 5175 7317 7318 1 6 5174 4712 4713 5176 7318 7319 1 6 5175 4713 4714 5177 7319 7320 1 6 5176 4714 4715 4965 5178 7320 1 6 5177 4965 5179 7320 7321 7322 1 6 5178 4965 4966 5180 7322 7323 1 6 5179 4966 4967 5181 5411 7323 1 6 5180 4967 4968 5182 5411 5412 1 6 5181 4968 4969 5183 5412 5413 1 6 5182 4969 4970 4971 5184 5413 1 6 5183 4971 5185 5413 5414 5415 1 6 5184 4971 4972 5186 5403 5415 1 6 5185 4972 4973 5187 5403 5404 1 6 5186 4973 4974 4975 5188 5404 1 6 5187 4975 5189 5404 5405 5406 1 6 5188 4975 4976 5190 5406 5407 1 6 5189 4976 4977 5191 5407 5408 1 6 5190 4977 4978 4979 5192 5408 1 6 5191 4979 4980 5193 5408 5409 1 6 5192 4980 5194 5409 5410 5195 1 5 5193 4980 4669 4670 5195 1 6 5194 4670 4671 5196 5410 5193 1 7 5195 4671 4672 5197 5423 5410 5431 1 5 5196 4672 4673 5198 5431 1 7 5197 4673 4674 5199 5431 5432 5433 1 6 5198 4674 4675 5200 5433 5434 1 6 5199 4675 4676 5201 5434 5435 1 6 5200 4676 4677 5202 5435 5436 1 6 5201 4677 4678 5203 5436 5437 1 6 5202 4678 5204 5437 5438 5439 1 6 5203 4678 4679 4680 5205 5439 1 5 5204 4680 4681 5206 5439 1 7 5205 4681 4682 5207 5439 5440 5441 1 6 5206 4682 5208 5441 5442 5443 1 6 5207 4682 4683 5209 5424 5443 1 7 5208 4683 4684 5210 5424 5425 5426 1 5 5209 4684 5211 5426 5427 1 7 5210 4684 4685 5212 5427 5215 5214 1 5 5211 4685 4686 5213 5214 1 6 5212 4686 4687 4478 4479 5214 1 6 5213 4479 4480 5215 5211 5212 1 6 5214 4480 5216 5427 5211 5217 1 6 5215 4480 4481 4490 4989 5217 1 7 5216 4989 5218 5447 5427 5215 6810 1 6 5217 4989 4990 5219 6810 6811 1 6 5218 4990 5220 6811 6812 6813 1 6 5219 4990 4991 5221 6813 6814 1 5 5220 4991 4992 5222 6814 1 7 5221 4992 4993 5223 6814 6815 6816 1 5 5222 4993 4994 5224 6816 1 7 5223 4994 5225 6816 6817 6818 6819 2 6 5224 4994 4995 4996 5226 6819 2 6 5225 4996 4997 5227 6819 6820 2 6 5226 4997 5228 6820 6821 6822 2 6 5227 4997 4998 5000 5229 6822 2 7 5228 5000 5230 5167 6822 6823 6824 2 5 5229 5000 5167 5166 5001 1 6 4264 4265 5232 6902 6903 5458 1 6 5231 4265 4266 5233 5448 5458 1 6 5232 4266 4267 5234 5448 5449 1 6 5233 4267 4269 5449 5450 5451 1 6 4519 4520 5236 9677 9678 9679 1 6 5235 4520 5237 9679 9683 9684 1 6 5236 4520 4521 422 9684 421 2 6 5018 5019 5239 6832 6833 6834 2 6 5238 5019 5240 5648 6834 6835 2 6 5239 5019 5020 5241 5648 5649 2 7 5240 5020 5013 5014 5242 5649 5650 2 5 5241 5014 5015 5243 5650 2 7 5242 5015 5024 5244 5652 5650 5653 2 6 5243 5024 5025 5245 5653 5247 2 6 5244 5025 5026 5027 5246 5247 2 6 5245 5027 5247 5248 5249 5028 2 6 5245 5246 5248 5653 5244 6840 2 6 5247 5246 5249 6841 6840 6842 2 6 5248 5246 5028 6842 6843 6844 1 6 5063 5064 5251 5492 5493 5494 1 6 5250 5064 5065 5252 5494 5495 1 6 5251 5065 5066 5253 5495 5496 1 6 5252 5066 5067 5254 5496 5497 1 6 5253 5067 5068 5255 5497 5498 1 6 5254 5068 5069 5256 5498 5499 1 6 5255 5069 5070 5257 5499 5500 1 6 5256 5070 5071 5258 5500 5501 1 6 5257 5071 5072 5259 5501 5502 1 6 5258 5072 5073 5260 5502 5503 1 6 5259 5073 5074 5075 5261 5503 1 6 5260 5075 5262 5503 5504 5505 1 6 5261 5075 5076 5263 5505 5506 1 6 5262 5076 5077 5264 5506 5507 1 6 5263 5077 5078 5265 5507 5508 1 6 5264 5078 5079 5266 5508 5509 1 6 5265 5079 5080 5267 5509 5510 1 6 5266 5080 5081 5268 5510 5511 1 6 5267 5081 5082 5269 5511 5512 1 6 5268 5082 5083 5270 5512 5513 1 6 5269 5083 5084 5085 5271 5513 1 6 5270 5085 5087 5272 5513 5514 1 6 5271 5087 5089 5090 5273 5514 1 6 5272 5090 5274 5514 5515 5516 1 6 5273 5090 5091 5275 5519 5516 1 6 5274 5091 5092 5276 5519 5277 1 5 5275 5092 5093 5094 5277 1 6 5276 5094 5095 5278 5519 5275 1 6 5277 5095 5096 5097 5279 5519 1 6 5278 5097 5280 5519 5518 5520 1 6 5279 5097 5098 5281 5520 5377 1 6 5280 5098 5099 5282 5376 5377 1 6 5281 5099 5100 5152 5283 5376 1 6 5282 5152 5153 5284 5379 5376 1 6 5283 5153 5285 5524 5379 5525 1 6 5284 5153 5154 5286 5525 5526 1 6 5285 5154 5287 5526 5527 5291 1 6 5286 5154 5105 5288 5291 5289 1 5 5287 5105 5106 5108 5289 1 6 5288 5108 5110 5290 5291 5287 1 6 5289 5110 5291 5292 5293 5294 1 7 5289 5290 5292 5527 5286 5287 5528 1 6 5291 5290 5293 5528 5529 5533 1 5 5292 5290 5294 5533 5534 1 6 5293 5290 5110 5111 5295 5534 1 6 5294 5111 5116 5296 5297 5534 1 6 5295 5116 5297 5298 5299 5117 1 6 5295 5296 5298 5534 5535 5542 1 6 5297 5296 5299 5542 5543 5544 1 6 5298 5296 5117 5118 5300 5544 1 6 5299 5118 5119 5301 5304 5544 1 6 5300 5119 5302 5303 5304 5305 1 7 5301 5119 5303 5318 5122 5120 5121 1 6 5301 5302 5308 5305 5309 5318 1 6 5300 5301 5305 5306 5543 5544 1 6 5304 5301 5306 5307 5308 5303 1 6 5304 5305 5307 5543 5545 5546 1 6 5306 5305 5308 5311 5312 5546 1 6 5307 5305 5303 5309 5310 5311 1 6 5308 5303 5310 5316 5317 5318 1 6 5308 5309 5311 5314 5315 5316 1 6 5308 5310 5307 5312 5313 5314 1 6 5307 5311 5313 5546 5547 5548 1 6 5312 5311 5314 5548 5549 5550 1 6 5313 5311 5310 5315 5553 5550 1 6 5314 5310 5316 5555 5553 5558 1 6 5315 5310 5309 5317 5558 5559 1 6 5316 5309 5318 5319 5320 5559 1 6 5317 5309 5303 5302 5122 5319 1 6 5318 5122 5317 5320 5321 5123 1 6 5317 5319 5321 5322 5559 5560 1 6 5320 5319 5322 5126 5124 5123 1 6 5320 5321 5126 5323 5560 5561 1 6 5322 5126 5127 5324 5325 5561 1 6 5323 5127 5325 5326 5327 5328 1 6 5323 5324 5326 5561 5562 5563 1 6 5325 5324 5327 5572 5563 5573 1 6 5326 5324 5328 5329 5330 5573 1 6 5327 5324 5329 5336 5128 5127 1 6 5327 5328 5330 5331 5332 5336 1 6 5327 5329 5331 5573 5574 5575 1 6 5330 5329 5332 5333 5575 5576 1 6 5331 5329 5333 5334 5335 5336 1 6 5331 5332 5334 5576 5577 5578 1 6 5333 5332 5335 5578 5340 5339 1 6 5334 5332 5336 5337 5338 5339 1 6 5335 5332 5329 5328 5128 5337 1 6 5336 5128 5129 5130 5335 5338 1 6 5335 5337 5130 5131 5133 5339 1 6 5338 5133 5134 5340 5334 5335 1 6 5339 5134 5341 5342 5578 5334 1 6 5340 5134 5342 5343 5344 5135 1 6 5340 5341 5343 5348 5349 5578 1 6 5342 5341 5344 5345 5347 5348 1 7 5343 5341 5345 5140 5138 5346 5135 1 6 5343 5344 5140 5142 5347 5359 1 5 5138 5344 5135 5136 5137 1 6 5343 5345 5348 5351 5352 5359 1 6 5343 5347 5342 5349 5350 5351 1 6 5342 5348 5350 5578 5577 5579 1 6 5349 5348 5351 5579 5580 5584 1 6 5350 5348 5347 5352 5353 5584 1 6 5351 5347 5353 5354 5355 5359 1 6 5351 5352 5354 5608 5584 5609 1 6 5353 5352 5355 5356 5807 5609 1 6 5354 5352 5356 5357 5359 5360 1 6 5354 5355 5357 5358 5807 5808 1 6 5356 5355 5358 5360 5143 5361 1 7 5356 5357 5808 5809 5810 5363 5361 1 6 5355 5352 5347 5360 5142 5345 1 5 5355 5359 5142 5143 5357 1 6 5357 5143 5145 5362 5363 5358 1 6 5361 5145 5363 5364 5365 5366 1 5 5361 5362 5364 5810 5358 1 6 5363 5362 5365 5810 5811 5402 1 7 5364 5362 5366 5402 5401 5367 5375 1 6 5365 5362 5145 5146 5148 5367 1 6 5366 5148 5368 5374 5365 5375 1 6 5367 5148 5155 5369 5371 5374 1 6 5368 5155 4882 4883 5370 5371 1 6 5369 4883 5371 5372 4888 4885 1 6 5369 5370 5372 5373 5374 5368 1 6 5371 5370 5373 4888 5393 5899 1 6 5371 5372 5374 5375 5392 5393 1 5 5371 5373 5375 5368 5367 1 6 5374 5373 5392 5365 5367 5401 1 6 5281 5282 5377 5378 5379 5283 1 6 5281 5376 5378 5520 5280 5521 1 6 5377 5376 5379 5521 5522 5523 1 6 5378 5376 5283 5523 5524 5284 1 6 4656 4657 55 9689 430 56 2 6 1679 1680 1678 5382 5383 1682 2 6 1678 5381 5383 5384 7779 3415 2 6 5382 5381 5384 5385 3774 1682 2 6 5382 5383 5385 5386 7779 7780 2 6 5384 5383 5386 5387 5391 3774 2 6 5384 5385 5387 5388 7780 7781 2 6 5386 5385 5388 5389 5390 5391 2 6 5386 5387 5389 5616 7781 7782 2 6 5388 5387 5390 5616 5617 5618 2 6 5389 5387 5391 5618 5619 5620 2 6 5390 5387 5385 3774 5620 3775 1 6 5375 5373 5393 5394 5401 5398 1 6 5392 5373 5394 5372 5395 5899 1 6 5392 5393 5395 5396 5397 5398 1 5 5394 5393 5396 5899 5894 1 6 5394 5395 5397 5893 5890 5894 1 6 5394 5396 5398 5399 5889 5890 1 6 5394 5397 5399 5400 5401 5392 1 6 5398 5397 5400 5880 5888 5889 1 7 5398 5399 5401 5402 5887 5881 5880 1 6 5398 5400 5402 5365 5375 5392 1 6 5401 5400 5887 5811 5364 5365 1 6 5185 5186 5404 5415 5416 5417 1 6 5403 5186 5187 5188 5405 5417 1 6 5404 5188 5406 5417 5418 5419 1 6 5405 5188 5189 5407 5419 5420 1 6 5406 5189 5190 5408 5420 5421 1 6 5407 5190 5191 5192 5409 5421 1 6 5408 5192 5193 5410 5421 5422 1 6 5409 5193 5195 5422 5423 5196 1 6 5180 5181 5412 7323 7324 7325 1 6 5411 5181 5182 5413 7325 7326 1 6 5412 5182 5183 5184 5414 7326 1 6 5413 5184 5415 7326 7327 7328 1 6 5414 5184 5185 5403 5416 7328 1 6 5415 5403 5417 7328 7329 7330 1 6 5416 5403 5404 5405 5418 7330 1 6 5417 5405 5419 6791 7330 7331 1 6 5418 5405 5406 5420 6791 6792 1 6 5419 5406 5407 5421 5428 6792 1 6 5420 5407 5408 5409 5422 5428 1 6 5421 5409 5410 5423 5428 5429 1 6 5422 5410 5196 5429 5430 5431 1 6 5208 5209 5425 5443 5444 5445 1 6 5424 5209 5426 5445 5446 5447 1 5 5425 5209 5210 5427 5447 1 6 5426 5210 5211 5215 5447 5217 1 6 5420 5421 5422 5429 6792 6793 1 6 5428 5422 5423 5430 6793 6794 1 6 5429 5423 5431 6794 6795 5432 1 6 5430 5423 5196 5197 5198 5432 1 5 5431 5198 5433 6795 5430 1 6 5432 5198 5199 5434 6795 6796 1 6 5433 5199 5200 5435 6796 6797 1 6 5434 5200 5201 5436 6797 6798 1 6 5435 5201 5202 5437 6798 6799 1 6 5436 5202 5203 5438 6799 6800 1 6 5437 5203 5439 6800 6801 6802 1 7 5438 5203 5204 5205 5206 5440 6802 1 5 5439 5206 5441 6802 6803 1 6 5440 5206 5207 5442 6803 6804 1 6 5441 5207 5443 6804 6805 5444 1 5 5442 5207 5208 5424 5444 1 6 5443 5424 5445 6805 5442 6806 1 6 5444 5424 5425 5446 6806 6807 1 6 5445 5425 5447 6807 6808 6809 1 7 5446 5425 5426 5427 5217 6809 6810 1 6 5232 5233 5449 5458 5459 5460 1 6 5448 5233 5234 5450 5460 5461 1 6 5449 5234 5451 5461 5462 5463 1 6 5450 5234 4269 4270 5452 5463 1 6 5451 4270 4271 5453 5463 5464 1 6 5452 4271 4272 5454 5455 5464 1 6 5453 4272 5455 5456 5457 4273 1 6 5453 5454 5456 5464 5465 5466 1 6 5455 5454 5457 5466 5467 5468 1 6 5456 5454 4273 5468 5469 4274 1 6 5232 5448 5459 6903 5231 6904 1 6 5458 5448 5460 6904 6905 6906 1 6 5459 5448 5449 5461 6906 6907 1 6 5460 5449 5450 5462 6907 6908 1 6 5461 5450 5463 6908 6909 6910 1 6 5462 5450 5451 5452 5464 6910 1 6 5463 5452 5453 5455 5465 6910 1 6 5464 5455 5466 6910 6911 6912 1 6 5465 5455 5456 5467 6912 6913 1 6 5466 5456 5468 6913 6914 6915 1 6 5467 5456 5457 5469 6915 6916 1 6 5468 5457 4274 4275 5470 6916 1 6 5469 4275 4276 4277 5471 6916 1 6 5470 4277 5472 6916 6917 6918 1 6 5471 4277 4278 5473 6918 6919 1 6 5472 4278 4279 5474 6919 6920 1 6 5473 4279 4280 5046 5475 6920 1 6 5474 5046 5476 6920 6921 6922 1 6 5475 5046 5047 5477 6922 6923 1 6 5476 5047 5048 5478 6923 6924 1 6 5477 5048 5049 5479 6924 6925 1 6 5478 5049 5050 5480 6925 6926 1 6 5479 5050 5051 5481 5654 6926 1 6 5480 5051 5052 5053 5482 5654 1 6 5481 5053 5483 5654 5655 5656 1 6 5482 5053 5054 5055 5484 5656 1 6 5483 5055 5485 5656 5657 5658 1 6 5484 5055 5056 5486 5658 5659 1 6 5485 5056 5057 5487 5659 5660 1 6 5486 5057 5058 5488 5660 5661 1 6 5487 5058 5059 5489 5621 5661 1 6 5488 5059 5060 5490 5621 5622 1 6 5489 5060 5061 5062 5491 5622 1 6 5490 5062 5063 5492 5622 5623 1 6 5491 5063 5250 5493 5623 5624 1 6 5492 5250 5494 5624 5625 5626 1 6 5493 5250 5251 5495 5626 5627 1 6 5494 5251 5252 5496 5627 5628 1 6 5495 5252 5253 5497 5628 5629 1 6 5496 5253 5254 5498 5629 5630 1 6 5497 5254 5255 5499 5630 5631 1 6 5498 5255 5256 5500 5631 5632 1 6 5499 5256 5257 5501 5632 5633 1 6 5500 5257 5258 5502 5633 5634 1 6 5501 5258 5259 5503 5634 5635 1 6 5502 5259 5260 5261 5504 5635 1 6 5503 5261 5505 5635 5636 5637 1 6 5504 5261 5262 5506 5637 5638 1 6 5505 5262 5263 5507 5638 5639 1 6 5506 5263 5264 5508 5639 5640 1 6 5507 5264 5265 5509 5640 5641 1 6 5508 5265 5266 5510 5641 5642 1 6 5509 5266 5267 5511 5642 5643 1 6 5510 5267 5268 5512 5643 5644 1 6 5511 5268 5269 5513 5644 5645 1 6 5512 5269 5270 5271 5514 5645 1 6 5513 5271 5272 5273 5515 5645 1 6 5514 5273 5516 5517 5645 5646 1 6 5515 5273 5517 5518 5519 5274 1 6 5515 5516 5518 5646 5647 5520 1 5 5517 5516 5519 5279 5520 1 7 5518 5516 5274 5275 5277 5278 5279 1 7 5518 5279 5280 5377 5521 5647 5517 1 5 5520 5377 5378 5522 5647 1 7 5521 5378 5523 5685 5647 5684 5686 1 6 5522 5378 5379 5524 5687 5686 1 6 5523 5379 5284 5525 5687 5688 1 6 5524 5284 5285 5526 5688 5689 1 6 5525 5285 5286 5527 5689 5690 1 6 5526 5286 5291 5528 5690 5691 1 6 5527 5291 5292 5529 5530 5691 1 6 5528 5292 5530 5531 5532 5533 1 5 5528 5529 5531 5691 5692 1 6 5530 5529 5532 5692 5693 5694 1 7 5531 5529 5533 5694 5695 5538 5536 1 6 5532 5529 5292 5293 5534 5536 1 7 5533 5293 5294 5295 5297 5535 5536 1 6 5534 5297 5536 5537 5541 5542 1 6 5534 5535 5537 5538 5532 5533 1 6 5536 5535 5538 5539 5540 5541 1 6 5536 5537 5539 5695 5532 5696 1 6 5538 5537 5540 5696 5697 5698 1 7 5539 5537 5541 5698 5699 5700 9795 1 5 5540 5537 5535 5542 9795 1 6 5541 5535 5297 5298 5543 9795 1 7 5542 5298 5544 5304 5306 5545 9795 1 5 5543 5298 5304 5300 5299 1 6 5543 5306 5546 5701 5700 9795 1 6 5545 5306 5307 5312 5547 5701 1 6 5546 5312 5548 5701 5702 5703 1 6 5547 5312 5313 5549 5703 5704 1 6 5548 5313 5550 5551 5704 5705 1 6 5549 5313 5551 5552 5553 5314 1 6 5549 5550 5552 5705 5706 5707 1 6 5551 5550 5553 5554 5707 5708 1 6 5552 5550 5314 5554 5555 5315 1 6 5552 5553 5555 5556 5708 5709 1 6 5554 5553 5315 5556 5557 5558 1 6 5554 5555 5557 5709 5710 5711 1 6 5556 5555 5558 5714 5711 5715 1 6 5557 5555 5315 5316 5559 5715 1 6 5558 5316 5317 5320 5560 5715 1 6 5559 5320 5322 5561 5716 5715 1 6 5560 5322 5323 5325 5562 5716 1 6 5561 5325 5563 5564 5717 5716 1 6 5562 5325 5564 5565 5572 5326 1 6 5562 5563 5565 5566 5717 5713 1 6 5564 5563 5566 5567 5571 5572 1 6 5564 5565 5567 5568 5753 5713 1 6 5566 5565 5568 5569 5570 5571 1 6 5566 5567 5569 5752 5753 5754 1 6 5568 5567 5570 5754 5755 5770 1 6 5569 5567 5571 5769 5767 5770 1 6 5570 5567 5565 5572 5769 5771 1 6 5571 5565 5563 5326 5573 5771 1 6 5572 5326 5327 5330 5574 5771 1 6 5573 5330 5575 5771 5772 5773 1 6 5574 5330 5331 5576 5773 5594 1 7 5575 5331 5333 5577 5594 5589 5774 1 6 5576 5333 5578 5349 5579 5774 1 6 5577 5333 5334 5340 5342 5349 1 6 5577 5349 5350 5580 5581 5774 1 6 5579 5350 5581 5582 5583 5584 1 6 5579 5580 5582 5585 5586 5774 1 6 5581 5580 5583 5585 5605 5606 1 6 5582 5580 5584 5606 5607 5608 1 6 5583 5580 5350 5351 5608 5353 1 6 5581 5582 5586 5587 5605 5597 1 6 5581 5585 5587 5588 5589 5774 1 6 5586 5585 5588 5595 5596 5597 1 6 5586 5587 5589 5590 5591 5595 1 6 5586 5588 5590 5594 5576 5774 1 6 5589 5588 5591 5592 5594 5773 1 6 5590 5588 5592 5593 5595 5778 1 6 5590 5591 5593 5773 5772 5775 1 6 5592 5591 5775 5776 5777 5778 1 5 5589 5590 5773 5575 5576 1 6 5591 5588 5587 5596 5778 5779 1 6 5595 5587 5597 5598 5599 5779 1 6 5596 5587 5598 5602 5605 5585 1 6 5596 5597 5599 5600 5601 5602 1 6 5596 5598 5600 5779 5780 5781 1 6 5599 5598 5601 5781 5789 5790 1 6 5600 5598 5602 5603 5790 5791 1 6 5601 5598 5603 5604 5597 5605 1 6 5601 5602 5604 5794 5791 5795 1 6 5603 5602 5795 5796 5606 5605 1 6 5602 5597 5585 5582 5606 5604 1 6 5605 5582 5583 5607 5796 5604 1 6 5606 5583 5608 5610 5798 5796 1 6 5607 5583 5584 5353 5609 5610 1 7 5608 5353 5610 5800 5806 5807 5354 1 5 5608 5609 5607 5800 5798 1 6 4514 4516 5612 5613 5614 5615 1 6 4514 5611 5613 427 426 7500 1 6 5612 5611 5614 7500 7501 7505 1 6 5613 5611 5615 7505 7506 7507 1 6 5614 5611 4516 7507 7508 4518 2 6 5388 5389 5617 7782 7783 7784 2 6 5616 5389 5618 7784 7785 7786 2 6 5617 5389 5390 5619 7786 7789 2 6 5618 5390 5620 7789 7790 7791 2 6 5619 5390 5391 3775 3778 7791 1 6 5488 5489 5622 5661 5662 5663 1 6 5621 5489 5490 5491 5623 5663 1 6 5622 5491 5492 5624 5663 5664 1 6 5623 5492 5493 5625 5664 5665 1 6 5624 5493 5626 5665 5666 5667 1 6 5625 5493 5494 5627 5667 5668 1 6 5626 5494 5495 5628 5668 5669 1 6 5627 5495 5496 5629 5669 5670 1 6 5628 5496 5497 5630 5670 5671 1 6 5629 5497 5498 5631 5671 5672 1 6 5630 5498 5499 5632 5672 5673 1 6 5631 5499 5500 5633 5673 5674 1 6 5632 5500 5501 5634 5674 5675 1 6 5633 5501 5502 5635 5675 5676 1 6 5634 5502 5503 5504 5636 5676 1 6 5635 5504 5637 5676 5677 5678 1 6 5636 5504 5505 5638 5678 5679 1 6 5637 5505 5506 5639 5679 5680 1 6 5638 5506 5507 5640 5680 5681 1 6 5639 5507 5508 5641 5681 5682 1 6 5640 5508 5509 5642 5682 5683 1 6 5641 5509 5510 5643 5683 5684 1 6 5642 5510 5511 5644 5684 5685 1 6 5643 5511 5512 5645 5685 5646 1 6 5644 5512 5513 5514 5515 5646 1 6 5645 5515 5517 5647 5685 5644 1 6 5646 5517 5520 5685 5522 5521 2 6 5239 5240 5649 6835 6836 6837 2 6 5648 5240 5241 5650 5651 6837 2 6 5649 5241 5651 5652 5243 5242 2 6 5649 5650 5652 6837 6838 6839 2 6 5651 5650 5243 5653 6839 6840 2 5 5652 5243 5244 5247 6840 1 6 5480 5481 5482 5655 6926 6927 1 6 5654 5482 5656 6927 6928 6929 1 6 5655 5482 5483 5484 5657 6929 1 6 5656 5484 5658 6929 6930 6931 1 6 5657 5484 5485 5659 5831 6931 1 6 5658 5485 5486 5660 5831 5832 1 6 5659 5486 5487 5661 5832 5833 1 6 5660 5487 5488 5621 5662 5833 1 6 5661 5621 5663 5833 5834 5835 1 6 5662 5621 5622 5623 5664 5835 1 6 5663 5623 5624 5665 5835 5813 1 6 5664 5624 5625 5666 5812 5813 1 6 5665 5625 5667 5812 5816 5817 1 6 5666 5625 5626 5668 5859 5817 1 6 5667 5626 5627 5669 5859 5860 1 6 5668 5627 5628 5670 5860 5861 1 6 5669 5628 5629 5671 5861 5862 1 6 5670 5629 5630 5672 5862 5863 1 6 5671 5630 5631 5673 5863 5864 1 6 5672 5631 5632 5674 5864 5865 1 6 5673 5632 5633 5675 5865 5866 1 6 5674 5633 5634 5676 5866 5867 1 6 5675 5634 5635 5636 5677 5867 1 6 5676 5636 5678 5867 5868 5693 1 6 5677 5636 5637 5679 5693 5869 1 6 5678 5637 5638 5680 5869 5870 1 6 5679 5638 5639 5681 5870 5871 1 6 5680 5639 5640 5682 5871 5688 1 6 5681 5640 5641 5683 5688 5687 1 6 5682 5641 5642 5684 5686 5687 1 6 5683 5642 5643 5685 5522 5686 1 6 5684 5643 5644 5646 5647 5522 1 5 5684 5522 5683 5687 5523 1 6 5683 5686 5523 5524 5688 5682 1 7 5687 5524 5525 5689 5871 5681 5682 1 5 5688 5525 5526 5690 5871 1 7 5689 5526 5527 5691 5871 5870 5692 1 5 5690 5527 5528 5530 5692 1 7 5691 5530 5531 5693 5870 5690 5869 1 7 5692 5531 5694 5868 5677 5678 5869 1 6 5693 5531 5532 5695 9698 5868 1 6 5694 5532 5538 5696 9699 9698 1 6 5695 5538 5539 5697 5718 9699 1 6 5696 5539 5698 5718 5719 5720 1 6 5697 5539 5540 5699 5720 5721 1 6 5698 5540 5700 5701 5721 5722 1 5 5699 5540 5701 5545 9795 1 7 5699 5700 5545 5546 5547 5702 5722 1 6 5701 5547 5703 5722 5723 5727 1 6 5702 5547 5548 5704 5727 5728 1 6 5703 5548 5549 5705 5728 5729 1 6 5704 5549 5551 5706 5732 5729 1 6 5705 5551 5707 5732 5733 5734 1 6 5706 5551 5552 5708 5737 5734 1 6 5707 5552 5554 5709 5737 5738 1 6 5708 5554 5556 5710 5747 5738 1 6 5709 5556 5711 5712 5747 5748 1 6 5710 5556 5712 5713 5714 5557 1 6 5710 5711 5713 5748 5749 5753 1 7 5712 5711 5714 5717 5564 5753 5566 1 6 5713 5711 5557 5715 5716 5717 1 6 5714 5557 5716 5560 5559 5558 1 6 5714 5715 5717 5562 5561 5560 1 5 5714 5716 5562 5564 5713 1 7 5696 5697 5719 9696 5865 9697 9699 1 6 5718 5697 5720 9696 9695 9700 1 6 5719 5697 5698 5721 9700 9701 1 7 5720 5698 5699 5722 5723 5724 9701 1 5 5721 5699 5701 5702 5723 1 7 5722 5702 5721 5724 5725 5726 5727 1 6 5721 5723 5725 6095 9701 9702 1 6 5724 5723 5726 6095 6096 6097 1 6 5725 5723 5727 6097 5730 5728 1 5 5726 5723 5702 5703 5728 1 6 5727 5703 5704 5729 5730 5726 1 6 5728 5704 5730 5731 5732 5705 1 7 5728 5729 5731 6097 5726 6098 6099 1 6 5730 5729 5732 6099 6100 6101 1 6 5731 5729 5705 5706 5733 6101 1 6 5732 5706 5734 5735 6101 6102 1 6 5733 5706 5735 5736 5737 5707 1 6 5733 5734 5736 6105 6102 6106 1 6 5735 5734 5737 6106 6107 5739 1 6 5736 5734 5707 5708 5738 5739 1 6 5737 5708 5739 5740 5747 5709 1 6 5737 5738 5740 5741 6107 5736 1 6 5739 5738 5741 5742 5746 5747 1 6 5739 5740 5742 5743 6107 6108 1 6 5741 5740 5743 5744 5745 5746 1 6 5741 5742 5744 6111 6108 6112 1 6 5743 5742 5745 6112 6113 6114 1 6 5744 5742 5746 5750 6121 6114 1 6 5745 5742 5740 5747 5748 5750 1 6 5746 5740 5738 5709 5710 5748 1 6 5747 5710 5712 5749 5746 5750 1 6 5748 5712 5750 5751 5752 5753 1 6 5746 5748 5745 5749 5751 6121 1 5 5750 5749 5752 6121 5949 1 6 5751 5749 5753 5568 5754 5949 1 6 5752 5749 5712 5713 5568 5566 1 6 5752 5568 5569 5755 5756 5949 1 6 5754 5569 5756 5757 5758 5770 1 6 5754 5755 5757 5949 5950 5951 1 6 5756 5755 5758 5759 5951 5952 1 6 5757 5755 5759 5760 5761 5770 1 6 5757 5758 5760 5952 5953 5957 1 6 5759 5758 5761 5762 5763 5957 1 6 5760 5758 5762 5766 5767 5770 1 6 5760 5761 5763 5764 5765 5766 1 6 5760 5762 5764 5957 5958 5988 1 6 5763 5762 5765 5989 5988 5990 1 6 5764 5762 5766 5990 5991 5776 1 6 5765 5762 5761 5767 5768 5776 1 6 5766 5761 5768 5769 5570 5770 1 6 5766 5767 5769 5772 5775 5776 1 6 5768 5767 5570 5571 5771 5772 1 6 5570 5767 5569 5761 5755 5758 1 6 5769 5571 5572 5573 5574 5772 1 7 5771 5574 5773 5592 5775 5769 5768 1 6 5772 5574 5575 5594 5590 5592 1 6 5589 5576 5586 5581 5579 5577 1 5 5772 5592 5593 5776 5768 1 7 5775 5593 5777 5991 5765 5768 5766 1 6 5776 5593 5778 5992 5991 5782 1 6 5777 5593 5591 5595 5779 5782 1 6 5778 5595 5596 5599 5780 5782 1 6 5779 5599 5781 5782 5783 5784 1 6 5780 5599 5600 5784 5785 5789 1 6 5779 5780 5783 5992 5777 5778 1 6 5782 5780 5784 5993 5992 5996 1 7 5783 5780 5781 5785 5786 5996 5997 1 6 5784 5781 5786 5787 5788 5789 1 6 5784 5785 5787 5997 5998 5999 1 6 5786 5785 5788 6002 5999 6003 1 6 5787 5785 5789 6009 6003 6199 1 6 5788 5785 5781 5600 5790 6199 1 6 5789 5600 5601 5791 5792 6199 1 6 5790 5601 5792 5793 5794 5603 1 6 5790 5791 5793 6198 6199 6197 1 6 5792 5791 5794 6197 6200 6221 1 6 5793 5791 5603 5795 6221 6219 1 6 5794 5603 5604 5796 5797 6219 1 6 5795 5604 5797 5798 5607 5606 1 6 5795 5796 5798 5799 6218 6219 1 6 5797 5796 5607 5799 5800 5610 1 6 5797 5798 5800 5801 5802 6218 1 7 5799 5798 5610 5609 5801 5805 5806 1 6 5799 5800 5802 5803 5804 5805 1 6 5799 5801 5803 6217 6209 6218 1 6 5802 5801 5804 5823 5824 6217 1 6 5803 5801 5805 5823 5830 5839 1 6 5804 5801 5800 5806 5808 5839 1 5 5805 5800 5609 5807 5808 1 5 5806 5609 5354 5356 5808 1 7 5807 5356 5358 5809 5839 5805 5806 1 6 5808 5358 5810 5838 5839 5886 1 7 5809 5358 5363 5364 5811 5885 5886 1 6 5810 5364 5884 5885 5887 5402 1 6 5665 5666 5813 5814 5815 5816 1 6 5665 5812 5814 5835 5664 5842 1 6 5813 5812 5815 5842 5843 5844 1 6 5814 5812 5816 5819 5820 5844 1 6 5815 5812 5666 5817 5818 5819 1 6 5816 5666 5818 5859 5857 5667 1 6 5816 5817 5819 5822 5857 5854 1 6 5816 5818 5815 5820 5821 5822 1 6 5815 5819 5821 5844 5845 5846 1 6 5820 5819 5822 5852 5849 5846 1 6 5821 5819 5818 5852 5853 5854 1 6 5803 5804 5824 5825 5826 5830 1 5 5803 5823 5825 6216 6217 1 7 5824 5823 5826 5827 6216 6215 6021 1 6 5825 5823 5827 5828 5829 5830 1 6 5825 5826 5828 6019 6020 6021 1 6 5827 5826 5829 5836 5872 6019 1 6 5828 5826 5830 5836 5837 5838 1 6 5829 5826 5823 5804 5838 5839 1 6 5658 5659 5832 6931 6932 6933 1 6 5831 5659 5660 5833 5840 6933 1 6 5832 5660 5661 5662 5834 5840 1 6 5833 5662 5835 5840 5841 5842 1 6 5834 5662 5663 5664 5813 5842 1 6 5828 5829 5837 5872 5873 5883 1 6 5836 5829 5838 5885 5883 5886 1 6 5837 5829 5830 5839 5809 5886 1 6 5838 5830 5809 5808 5805 5804 1 6 5832 5833 5834 5841 6933 6934 1 6 5840 5834 5842 6934 6935 5843 1 6 5841 5834 5835 5813 5814 5843 1 6 5842 5814 5844 6018 6935 5841 1 6 5843 5814 5815 5820 5845 6018 1 6 5844 5820 5846 5847 6018 6940 1 6 5845 5820 5847 5848 5849 5821 1 6 5845 5846 5848 6940 6941 6942 1 6 5847 5846 5849 5850 6945 6942 1 6 5848 5846 5850 5851 5852 5821 1 5 5848 5849 5851 6945 6385 1 6 5850 5849 5852 6103 6104 6385 1 6 5851 5849 5821 5822 5853 6103 1 6 5852 5822 5854 5855 6100 6103 1 6 5853 5822 5855 5856 5857 5818 1 6 5853 5854 5856 6098 6099 6100 1 6 5855 5854 5857 5858 6384 6098 1 6 5856 5854 5858 5859 5817 5818 1 6 5856 5857 5859 5860 6383 6384 1 6 5858 5857 5817 5667 5668 5860 1 6 5859 5668 5669 5861 6383 5858 1 6 5860 5669 5670 5862 9703 6383 1 6 5861 5670 5671 5863 9694 9703 1 6 5862 5671 5672 5864 9694 9695 1 6 5863 5672 5673 5865 9695 9696 1 7 5864 5673 5674 5866 9696 5718 9697 1 5 5865 5674 5675 5867 9697 1 7 5866 5675 5676 5677 5868 9697 9698 1 5 5867 5677 5693 5694 9698 1 5 5693 5678 5679 5870 5692 1 6 5869 5679 5680 5871 5690 5692 1 6 5870 5680 5681 5688 5689 5690 1 6 5828 5836 5873 5874 9736 6019 1 6 5872 5836 5874 5875 5882 5883 1 6 5872 5873 5875 5876 9736 6041 1 6 5874 5873 5876 5877 5878 5882 1 6 5874 5875 5877 6048 6041 6042 1 6 5876 5875 5878 5879 6049 6048 1 6 5877 5875 5879 5880 5881 5882 1 6 5877 5878 5880 6049 6050 5888 1 6 5879 5878 5881 5400 5399 5888 1 6 5880 5878 5882 5884 5887 5400 1 6 5881 5878 5875 5873 5883 5884 1 6 5882 5873 5836 5884 5885 5837 1 6 5882 5883 5885 5811 5881 5887 1 6 5884 5883 5837 5811 5810 5886 1 5 5810 5885 5837 5838 5809 1 5 5881 5884 5811 5402 5400 1 6 5880 5399 5889 6053 6050 5879 1 6 5888 5399 5397 5890 5891 6053 1 6 5889 5397 5891 5892 5893 5396 1 6 5889 5890 5892 6056 6053 6057 1 6 5891 5890 5893 6057 6058 6059 1 6 5892 5890 5396 5894 5895 6059 1 6 5893 5396 5895 5896 5899 5395 1 6 5893 5894 5896 5897 6059 6061 1 6 5895 5894 5897 5898 4889 5899 1 6 5895 5896 5898 5900 6061 6062 1 6 5897 5896 4889 4890 5900 5901 1 7 4889 5896 5894 5395 5393 5372 4888 1 6 5897 5898 5901 6065 6062 6066 1 6 5900 5898 4890 4892 5902 6066 1 6 5901 4892 5903 5904 5905 6066 1 6 5902 4892 5904 5911 5912 4893 1 6 5902 5903 5905 5906 5907 5911 1 6 5902 5904 5906 6066 6070 6067 1 7 5905 5904 5907 5908 6075 6072 6070 1 6 5906 5904 5908 5909 5910 5911 1 5 5906 5907 5909 5934 6075 1 7 5908 5907 5910 5932 5929 5933 5934 1 6 5909 5907 5911 5932 9752 5915 1 6 5910 5907 5904 5903 5912 5915 1 6 5911 5903 4893 5913 5914 5915 1 6 5912 4893 4894 4896 4899 5914 1 6 5913 4899 5912 5915 5916 5917 1 6 5912 5914 5916 5911 9752 5910 1 6 5915 5914 5917 9752 9755 9758 1 6 5916 5914 4899 4900 5918 9758 1 7 5917 4900 4902 3671 3951 5919 9758 1 6 5918 3951 3949 5920 9755 9758 1 5 5919 3949 3948 5921 9755 1 6 5920 3948 5922 5930 5931 9755 1 6 5921 3948 3946 3962 5923 5930 1 6 5922 3962 3963 5924 5925 5930 1 6 5923 3963 3965 5925 5926 5942 1 6 5923 5924 5926 5927 5929 5930 1 6 5925 5924 5927 5928 5941 5942 1 5 5925 5926 5928 5929 5933 1 7 5927 5926 5935 5933 5936 5940 5941 1 7 5925 5927 5930 5931 5932 5909 5933 1 6 5925 5929 5931 5923 5922 5921 1 6 5930 5929 5921 5932 9752 9755 1 5 5931 5929 5909 5910 9752 1 6 5909 5929 5934 5935 5928 5927 1 6 5909 5933 5935 6074 6075 5908 1 6 5934 5933 5928 5936 5937 6074 1 6 5935 5928 5937 5938 5939 5940 1 5 5935 5936 5938 6074 6076 1 6 5937 5936 5939 6076 6077 6086 1 6 5938 5936 5940 6087 6086 6091 1 7 5939 5936 5928 5941 5944 6091 5946 1 5 5940 5928 5926 5942 5944 1 6 5941 5926 5924 3965 5943 5944 1 7 5942 3965 3966 5944 5945 3135 5947 1 6 5942 5943 5941 5940 5945 5946 1 5 5944 5943 5946 3134 3135 1 6 5944 5945 3134 6091 5940 3136 1 6 3135 5943 2093 2092 5948 3966 1 6 2092 5947 3966 3967 2488 2489 1 6 5754 5756 5950 5752 5751 6121 1 6 5949 5756 5951 6166 6120 6121 1 6 5950 5756 5757 5952 6166 6164 1 6 5951 5757 5759 5953 5954 6164 1 6 5952 5759 5954 5955 5956 5957 1 6 5952 5953 5955 6162 6161 6164 1 6 5954 5953 5956 5960 5967 6162 1 6 5955 5953 5957 5958 5959 5960 1 6 5956 5953 5759 5760 5763 5958 1 6 5957 5763 5956 5959 5963 5988 1 6 5956 5958 5960 5961 5962 5963 1 6 5956 5959 5961 5964 5967 5955 1 6 5960 5959 5962 5964 5965 5982 1 6 5961 5959 5963 5983 5982 5984 1 6 5962 5959 5958 5987 5984 5988 1 6 5960 5961 5965 5966 5967 5968 1 6 5964 5961 5966 5982 5980 5971 1 6 5964 5965 5968 5969 5970 5971 1 6 5960 5964 5955 5968 6163 6162 1 7 5967 5964 5966 5969 6156 6157 6163 1 6 5968 5966 5970 6447 6445 6156 1 6 5969 5966 5971 5972 6447 6448 1 6 5970 5966 5972 5973 5965 5980 1 6 5970 5971 5973 5974 5975 6448 1 6 5972 5971 5974 5978 5979 5980 1 6 5972 5973 5975 5976 5977 5978 1 6 5972 5974 5976 6448 6449 6450 1 6 5975 5974 5977 6450 6608 6609 1 6 5976 5974 5978 6609 6612 6613 1 6 5977 5974 5973 5979 6613 6614 1 6 5978 5973 5980 5981 6640 6614 1 6 5979 5973 5981 5982 5965 5971 1 6 5979 5980 5982 5983 6640 6641 1 6 5981 5980 5983 5962 5961 5965 1 6 5981 5982 5962 5984 5985 6641 1 6 5983 5962 5985 5986 5987 5963 1 6 5983 5984 5986 6643 6641 6168 1 6 5985 5984 5987 5994 6167 6168 1 6 5986 5984 5963 5988 5989 5994 1 6 5987 5963 5958 5989 5764 5763 1 6 5987 5988 5764 5990 5993 5994 1 6 5989 5764 5765 5991 5992 5993 1 5 5990 5765 5992 5777 5776 1 6 5990 5991 5777 5993 5783 5782 1 7 5990 5992 5783 5989 5994 5995 5996 1 6 5989 5993 5995 5986 5987 6167 1 6 5994 5993 5996 5997 5998 6167 1 5 5995 5993 5783 5784 5997 1 5 5995 5996 5998 5784 5786 1 7 5995 5997 5786 5999 6000 6169 6167 1 6 5998 5786 6000 6001 6002 5787 1 5 5998 5999 6001 6169 6170 1 6 6000 5999 6002 6170 6171 6005 1 6 6001 5999 5787 6003 6004 6005 1 6 6002 5787 6004 6008 6009 5788 1 6 6002 6003 6005 6006 6007 6008 1 6 6002 6004 6006 6171 6001 6172 1 6 6005 6004 6007 6010 6172 6173 1 6 6006 6004 6008 6010 6011 6015 1 6 6007 6004 6003 6009 6017 6015 1 6 6008 6003 5788 6198 6017 6199 1 6 6006 6007 6011 6012 6179 6173 1 6 6010 6007 6012 6013 6014 6015 1 6 6010 6011 6013 6180 6179 6186 1 6 6012 6011 6014 6190 6187 6186 1 6 6013 6011 6015 6016 6190 6191 1 6 6014 6011 6016 6017 6008 6007 1 6 6014 6015 6017 6191 6194 6195 1 6 6016 6015 6008 6198 6195 6009 1 6 5843 5844 5845 6937 6935 6940 1 6 5827 5828 6020 9736 6038 5872 1 6 5827 6019 6021 6022 6023 6038 1 6 5827 6020 6022 6215 5825 6222 1 6 6021 6020 6023 6024 6025 6222 1 6 6022 6020 6024 6037 6028 6038 1 6 6022 6023 6025 6026 6027 6028 1 6 6022 6024 6026 6222 6225 6223 1 6 6025 6024 6027 6225 6226 6032 1 6 6026 6024 6028 6029 6031 6032 1 6 6027 6024 6029 6030 6037 6023 1 6 6027 6028 6030 6031 6033 6034 1 6 6029 6028 6034 6035 6036 6037 1 6 6027 6029 6032 6033 6247 6239 1 6 6027 6031 6226 6026 6227 6239 1 6 6031 6029 6034 6247 6246 6248 1 6 6033 6029 6030 6035 6248 6249 1 6 6034 6030 6036 6249 6263 6264 1 6 6035 6030 6037 6039 6040 6264 1 6 6036 6030 6028 6023 6038 6039 1 6 6037 6023 6039 9736 6019 6020 1 6 6037 6038 6036 6040 6041 9736 1 7 6036 6039 6041 6042 6043 6265 6264 1 6 6040 6039 6042 9736 5874 5876 1 6 6040 6041 6043 6044 6048 5876 1 5 6040 6042 6044 6045 6265 1 6 6043 6042 6045 6046 6047 6048 1 7 6043 6044 6046 6262 6265 6261 6266 1 6 6045 6044 6047 6269 6266 6280 1 6 6046 6044 6048 6049 6051 6280 1 6 6047 6044 6042 6049 5877 5876 1 6 6047 6048 5877 5879 6050 6051 1 6 6049 5879 6051 6052 6053 5888 1 6 6049 6050 6052 6054 6280 6047 1 6 6051 6050 6053 6054 6055 6056 1 6 6052 6050 5888 5889 6056 5891 1 7 6051 6052 6055 6279 6280 6278 6281 1 6 6054 6052 6056 6283 6281 6284 1 6 6055 6052 6053 5891 6057 6284 1 6 6056 5891 5892 6058 6060 6284 1 6 6057 5892 6059 6060 6287 6288 1 6 6058 5892 5893 5895 6061 6288 1 6 6057 6058 6284 6285 6286 6287 1 6 6059 5895 5897 6062 6063 6288 1 6 6061 5897 6063 6064 6065 5900 1 7 6061 6062 6064 6288 6291 6289 6292 1 5 6063 6062 6065 6292 6068 1 6 6064 6062 5900 6066 6067 6068 1 6 6065 5900 5901 5902 5905 6067 1 6 6065 6066 6068 6069 6070 5905 1 7 6065 6067 6069 6292 6064 6293 6294 1 5 6068 6067 6070 6071 6294 1 6 6069 6067 5905 6071 6072 5906 1 7 6069 6070 6072 6073 6296 6294 6297 1 6 6071 6070 6073 6074 6075 5906 1 6 6071 6072 6074 6297 6078 6076 1 7 6073 6072 6075 5934 5935 5937 6076 1 5 6074 6072 5934 5908 5906 1 6 6074 5937 5938 6077 6078 6073 1 6 6076 5938 6078 6079 6086 6083 1 6 6076 6077 6079 6080 6297 6073 1 6 6078 6077 6080 6081 6082 6083 1 6 6078 6079 6081 6297 6298 6301 1 6 6080 6079 6082 6301 6302 6314 1 6 6081 6079 6083 6084 6313 6314 1 6 6082 6079 6084 6085 6086 6077 1 7 6082 6083 6085 6088 6313 6315 6318 1 6 6084 6083 6086 6087 6088 6089 1 6 6085 6083 6087 5939 5938 6077 1 6 6085 6086 5939 6089 6090 6091 1 6 6084 6085 6089 6094 3769 6318 1 7 6088 6085 6087 6090 3137 6092 6094 1 5 6089 6087 6091 3136 3137 1 6 6090 6087 5939 5940 5946 3136 1 6 6089 3137 3138 6093 3768 6094 1 7 6092 3138 3768 3766 2085 2084 9776 1 5 6092 3768 3769 6088 6089 1 6 5724 5725 6096 6383 9702 9703 1 6 6095 5725 6097 6098 6383 6384 1 5 6096 5725 5726 5730 6098 1 7 6096 6097 5730 6099 6384 5856 5855 1 5 6098 5730 5731 6100 5855 1 7 6099 5731 6101 6102 6103 5855 5853 1 5 6100 5731 5732 5733 6102 1 7 6101 5733 6100 6103 6104 6105 5735 1 6 6100 6102 6104 5853 5852 5851 1 6 6103 6102 6105 5851 6385 6386 1 5 6104 6102 5735 6106 6386 1 7 6105 5735 5736 6107 6386 6387 6109 1 6 6106 5736 5739 5741 6108 6109 1 6 6107 5741 6109 6110 6111 5743 1 6 6107 6108 6110 6387 6106 6388 1 6 6109 6108 6111 6388 6389 6390 1 6 6110 6108 5743 6112 6393 6390 1 6 6111 5743 5744 6113 6115 6393 1 6 6112 5744 6114 6115 6116 6117 1 6 6113 5744 6120 6117 6121 5745 1 6 6112 6113 6116 6393 9737 9738 1 6 6115 6113 6117 6118 6122 9738 1 6 6116 6113 6118 6119 6120 6114 1 6 6116 6117 6119 6122 6123 6165 1 5 6118 6117 6120 6166 6165 1 6 6119 6117 6114 6121 6166 5950 1 7 6120 6114 5745 5750 5751 5949 5950 1 6 6116 6118 6123 6124 6131 9738 1 6 6122 6118 6124 6125 6165 6160 1 6 6122 6123 6125 6126 6127 6131 1 6 6124 6123 6126 6152 6160 6158 1 6 6124 6125 6127 6128 6151 6152 1 6 6124 6126 6128 6129 6130 6131 1 6 6127 6126 6129 6150 6149 6151 1 6 6127 6128 6130 6150 6137 6134 1 6 6127 6129 6131 6132 6133 6134 1 6 6127 6130 6132 9738 6122 6124 1 6 6131 6130 6133 6398 9737 9738 1 6 6132 6130 6134 6135 6397 6398 1 6 6133 6130 6135 6136 6137 6129 1 6 6133 6134 6136 6397 6399 6400 1 6 6135 6134 6137 6138 6400 6401 1 6 6136 6134 6138 6139 6150 6129 1 6 6136 6137 6139 6140 6401 6402 1 6 6138 6137 6140 6141 6148 6150 1 6 6138 6139 6141 6142 6402 6403 1 6 6140 6139 6142 6143 6144 6148 1 6 6140 6141 6143 6403 6404 6405 1 6 6142 6141 6144 6145 6405 6436 1 6 6143 6141 6145 6146 6147 6148 1 6 6143 6144 6146 6437 6436 6438 1 6 6145 6144 6147 6438 6439 6440 1 6 6146 6144 6148 6149 6440 6441 1 6 6147 6144 6141 6139 6149 6150 1 6 6147 6148 6150 6128 6151 6441 1 6 6149 6148 6139 6137 6129 6128 1 6 6149 6128 6126 6152 6153 6441 1 6 6151 6126 6125 6153 6154 6158 1 6 6151 6152 6154 6155 6441 6442 1 6 6153 6152 6155 6156 6157 6158 1 6 6153 6154 6156 6444 6442 6445 1 6 6155 6154 6157 5969 6445 5968 1 6 6156 6154 6158 6159 5968 6163 1 6 6157 6154 6152 6159 6160 6125 1 6 6157 6158 6160 6161 6162 6163 1 6 6159 6158 6125 6161 6123 6165 1 6 6159 6160 6162 5954 6164 6165 1 6 6159 6161 6163 5967 5955 5954 1 5 6159 6162 5967 6157 5968 1 6 5954 6161 6165 6166 5951 5952 1 7 6164 6161 6166 6119 6118 6123 6160 1 6 6164 6165 6119 6120 5950 5951 1 6 5994 5995 5986 6168 6169 5998 1 6 5986 6167 6169 6643 5985 9783 1 6 6168 6167 5998 6000 6170 9783 1 7 6169 6000 6001 6171 6789 9783 9782 1 7 6170 6001 6005 6172 6788 6786 6789 1 6 6171 6005 6006 6173 6174 6788 1 6 6172 6006 6174 6175 6010 6179 1 6 6172 6173 6175 6176 6784 6788 1 6 6174 6173 6176 6177 6178 6179 1 6 6174 6175 6177 6782 6781 6784 1 6 6176 6175 6178 9796 6782 9797 1 6 6177 6175 6179 6180 6181 9796 1 6 6178 6175 6180 6012 6010 6173 1 6 6178 6179 6181 6182 6186 6012 1 6 6178 6180 6182 6183 9796 9799 1 6 6181 6180 6183 6184 6185 6186 1 6 6181 6182 6184 6362 6645 9799 1 6 6183 6182 6185 6362 6363 6367 1 6 6184 6182 6186 6187 6188 6367 1 6 6185 6182 6180 6187 6012 6013 1 6 6185 6186 6188 6189 6190 6013 1 6 6185 6187 6189 6367 6368 6369 1 6 6188 6187 6190 6369 6372 6192 1 6 6189 6187 6013 6014 6191 6192 1 6 6190 6014 6016 6192 6193 6194 1 6 6190 6191 6193 6372 6189 6373 1 6 6192 6191 6194 6382 6373 6203 1 6 6193 6191 6016 6195 6196 6203 1 6 6194 6016 6196 6197 6198 6017 1 6 6194 6195 6197 6200 6201 6203 1 6 6196 6195 6198 5792 5793 6200 1 6 6197 6195 6017 6009 6199 5792 1 6 6198 6009 5792 5790 5789 5788 1 6 6197 5793 6196 6201 6202 6221 1 6 6196 6200 6202 6203 6204 6205 1 6 6201 6200 6205 6206 6220 6221 1 6 6196 6201 6204 6382 6193 6194 1 6 6203 6201 6205 6382 6459 6381 1 6 6204 6201 6202 6206 6207 6459 1 6 6205 6202 6207 6208 6209 6220 1 6 6205 6206 6208 6210 6211 6459 1 6 6207 6206 6209 6210 6214 6217 1 6 6208 6206 5802 6217 6218 6220 1 6 6207 6208 6211 6212 6213 6214 1 6 6207 6210 6212 6456 6458 6459 1 7 6211 6210 6213 6223 6224 6454 6456 1 5 6212 6210 6214 6215 6223 1 6 6213 6210 6208 6215 6216 6217 1 7 6213 6214 6216 5825 6021 6222 6223 1 5 6215 6214 6217 5824 5825 1 7 6216 6214 5824 5803 5802 6209 6208 1 6 5802 6209 5799 5797 6219 6220 1 6 5797 6218 6220 6221 5794 5795 1 6 6219 6218 6209 6206 6202 6221 1 6 6219 6220 6202 6200 5793 5794 1 5 6215 6021 6022 6025 6223 1 7 6215 6222 6213 6212 6224 6225 6025 1 7 6212 6223 6225 6454 6231 6226 6228 1 5 6224 6223 6025 6026 6226 1 6 6225 6026 6032 6227 6228 6224 1 6 6226 6032 6228 6229 6238 6239 1 6 6226 6227 6229 6230 6231 6224 1 6 6228 6227 6230 6237 6234 6238 1 6 6228 6229 6231 6232 6233 6234 1 6 6228 6230 6232 6454 6224 6455 1 6 6231 6230 6233 6455 6460 6461 1 6 6232 6230 6234 6235 6461 6462 1 6 6233 6230 6235 6236 6237 6229 1 6 6233 6234 6236 6462 6463 6471 1 6 6235 6234 6237 6473 6471 6476 1 6 6236 6234 6229 6238 6476 6241 1 6 6237 6229 6227 6239 6240 6241 1 6 6238 6227 6240 6247 6031 6032 1 6 6238 6239 6241 6242 6243 6247 1 6 6238 6240 6242 6476 6237 6477 1 6 6241 6240 6243 6244 6477 6479 1 6 6242 6240 6244 6245 6246 6247 1 6 6242 6243 6245 6481 6479 6482 1 6 6244 6243 6246 6482 6253 6251 1 6 6245 6243 6247 6033 6248 6251 1 6 6246 6243 6240 6239 6031 6033 1 6 6246 6033 6034 6249 6250 6251 1 6 6248 6034 6035 6250 6263 6255 1 6 6248 6249 6251 6252 6254 6255 1 6 6248 6250 6252 6253 6245 6246 1 6 6251 6250 6253 6254 6484 6485 1 6 6251 6252 6482 6245 6483 6484 1 6 6252 6250 6255 6256 6257 6485 1 6 6254 6250 6256 6263 6260 6249 1 6 6254 6255 6257 6258 6259 6260 1 6 6254 6256 6258 6485 6493 6494 1 6 6257 6256 6259 6494 6495 6496 1 7 6258 6256 6260 6261 6496 6273 6267 1 6 6259 6256 6261 6262 6263 6255 1 6 6259 6260 6262 6045 6266 6267 1 6 6261 6260 6263 6264 6265 6045 1 6 6262 6260 6264 6255 6249 6035 1 6 6262 6263 6265 6035 6040 6036 1 5 6262 6264 6045 6043 6040 1 6 6045 6261 6267 6268 6269 6046 1 6 6261 6266 6268 6272 6273 6259 1 6 6267 6266 6269 6270 6271 6272 1 6 6268 6266 6046 6270 6279 6280 1 6 6268 6269 6271 6277 6278 6279 1 6 6268 6270 6272 6275 6276 6277 1 6 6268 6271 6267 6273 6274 6275 1 6 6267 6272 6274 6496 6259 6497 1 6 6273 6272 6275 6500 6497 6501 1 6 6274 6272 6271 6276 6501 6502 1 6 6275 6271 6277 6502 6503 6504 1 6 6276 6271 6270 6278 6504 6505 1 7 6277 6270 6279 6054 6281 6282 6505 1 5 6278 6270 6269 6280 6054 1 6 6279 6269 6046 6054 6051 6047 1 5 6278 6054 6282 6283 6055 1 6 6278 6281 6283 6506 6505 6507 1 6 6282 6281 6055 6284 6507 6285 1 6 6283 6055 6056 6057 6060 6285 1 6 6284 6060 6286 6507 6283 6508 1 7 6285 6060 6287 6508 6328 6511 6290 1 6 6286 6060 6058 6288 6289 6290 1 6 6287 6058 6059 6061 6063 6289 1 5 6287 6288 6290 6291 6063 1 5 6287 6289 6291 6328 6286 1 7 6290 6289 6063 6292 6326 6327 6328 1 6 6291 6063 6064 6068 6293 6326 1 6 6292 6068 6294 6295 6325 6326 1 6 6293 6068 6069 6295 6296 6071 1 6 6293 6294 6296 6299 6324 6325 1 6 6295 6294 6071 6297 6298 6299 1 6 6296 6071 6073 6078 6080 6298 1 6 6297 6080 6296 6299 6300 6301 1 5 6296 6298 6300 6324 6295 1 6 6299 6298 6301 6303 6323 6324 1 6 6300 6298 6080 6081 6302 6303 1 6 6301 6081 6303 6304 6308 6314 1 6 6301 6302 6304 6305 6323 6300 1 6 6303 6302 6305 6306 6307 6308 1 6 6303 6304 6306 6323 6337 6338 1 6 6305 6304 6307 6338 6341 6342 1 6 6306 6304 6308 6309 6342 6343 1 6 6307 6304 6302 6309 6310 6314 1 6 6307 6308 6310 6311 6343 6346 1 6 6309 6308 6311 6312 6313 6314 1 6 6309 6310 6312 6321 6322 6346 1 6 6311 6310 6313 6315 6316 6321 1 6 6312 6310 6314 6082 6084 6315 1 6 6313 6310 6082 6081 6302 6308 1 6 6313 6084 6312 6316 6317 6318 1 6 6312 6315 6317 6319 6320 6321 1 6 6316 6315 6318 3769 1571 6319 1 5 6317 6315 3769 6084 6088 1 5 6317 1571 1572 6320 6316 1 7 6319 1572 1573 6316 6321 6322 6360 1 5 6316 6320 6322 6312 6311 1 7 6321 6320 6311 6347 6346 6348 6360 1 6 6303 6305 6300 6324 6335 6337 1 7 6300 6323 6299 6295 6325 6336 6335 1 6 6295 6324 6293 6326 6336 6331 1 6 6293 6325 6292 6291 6327 6331 1 6 6291 6326 6328 6329 6330 6331 1 6 6291 6327 6329 6511 6286 6290 1 6 6328 6327 6330 6510 6511 6519 1 7 6329 6327 6331 6332 6333 6519 6518 1 6 6330 6327 6332 6336 6325 6326 1 6 6330 6331 6333 6334 6335 6336 1 5 6330 6332 6334 6518 6520 1 6 6333 6332 6335 6520 6528 6529 1 7 6334 6332 6336 6324 6323 6337 6529 1 5 6335 6332 6331 6325 6324 1 6 6335 6323 6305 6338 6339 6529 1 6 6337 6305 6306 6339 6340 6341 1 6 6337 6338 6340 6530 6527 6529 1 5 6339 6338 6341 6545 6530 1 6 6340 6338 6306 6342 6546 6545 1 6 6341 6306 6307 6343 6344 6546 1 6 6342 6307 6344 6345 6346 6309 1 6 6342 6343 6345 6546 6543 6547 1 6 6344 6343 6346 6347 6549 6547 1 6 6345 6343 6347 6322 6311 6309 1 6 6345 6346 6322 6348 6349 6549 1 6 6347 6322 6349 6350 6359 6360 1 6 6347 6348 6350 6351 6550 6549 1 6 6349 6348 6351 6352 6353 6359 1 6 6349 6350 6352 6552 6550 6553 1 6 6351 6350 6353 6354 6355 6553 1 6 6352 6350 6354 1589 2476 6359 1 7 6352 6353 6355 6356 1594 1590 1589 1 6 6352 6354 6356 6357 6553 6554 1 5 6355 6354 6357 6358 1594 1 6 6355 6356 6358 6554 6555 3971 1 6 6357 6356 1594 3971 3970 1595 1 6 2476 6353 6350 6348 6360 6361 1 6 6359 6348 6361 1573 6320 6322 1 5 6359 6360 1573 2475 2476 1 6 6183 6184 6363 6364 6644 6645 1 6 6362 6184 6364 6365 6366 6367 1 6 6362 6363 6365 6644 6648 6649 1 6 6364 6363 6366 9727 9673 6649 1 6 6365 6363 6367 9727 9728 6368 1 6 6366 6363 6184 6185 6188 6368 1 6 6367 6188 6369 6370 9728 6366 1 6 6368 6188 6189 6370 6371 6372 1 6 6368 6369 6371 9728 9729 9730 1 6 6370 6369 6372 6374 6375 9730 1 6 6371 6369 6189 6192 6373 6374 1 6 6372 6192 6374 6382 6380 6193 1 6 6372 6373 6371 6375 6376 6380 1 6 6371 6374 6376 6377 6467 9730 1 6 6375 6374 6377 6378 6379 6380 1 5 6375 6376 6378 9693 6467 1 7 6377 6376 6379 6457 6455 6460 9693 1 6 6378 6376 6380 6381 6457 6458 1 6 6379 6376 6381 6382 6373 6374 1 6 6379 6380 6382 6459 6458 6204 1 6 6381 6380 6373 6193 6203 6204 1 7 6095 6096 6384 9703 5861 5860 5858 1 5 6383 6096 6098 5856 5858 1 6 5851 6104 6386 6945 5850 6946 1 7 6385 6104 6105 6106 6387 6946 6947 1 5 6386 6106 6109 6388 6947 1 6 6387 6109 6110 6389 6947 6948 1 6 6388 6110 6390 6391 6948 6949 1 6 6389 6110 6391 6392 6393 6111 1 6 6389 6390 6392 6394 6395 6949 1 6 6391 6390 6393 6394 9737 6398 1 6 6392 6390 6111 6112 6115 9737 1 6 6391 6392 6395 6396 6397 6398 1 6 6391 6394 6396 6949 6950 6951 1 6 6395 6394 6397 6951 6952 6399 1 6 6396 6394 6398 6133 6135 6399 1 6 6397 6394 6133 6132 9737 6392 1 6 6397 6135 6400 6952 6396 6953 1 6 6399 6135 6136 6401 6953 6954 1 6 6400 6136 6138 6402 6954 6960 1 6 6401 6138 6140 6403 6960 6410 1 6 6402 6140 6142 6404 6408 6410 1 6 6403 6142 6405 6406 6407 6408 1 6 6404 6142 6143 6406 6436 6434 1 6 6404 6405 6407 6431 6429 6434 1 6 6404 6406 6408 6409 6428 6429 1 6 6404 6407 6409 6403 6410 6411 1 6 6408 6407 6411 6412 6413 6428 1 6 6403 6408 6411 6959 6960 6402 1 6 6410 6408 6409 6412 6959 6961 1 6 6411 6409 6413 6414 6963 6961 1 6 6412 6409 6414 6415 6427 6428 1 6 6412 6413 6415 6416 6963 6964 1 6 6414 6413 6416 6417 6418 6427 1 6 6414 6415 6417 6558 6559 6964 1 6 6416 6415 6418 6419 6558 6565 1 6 6417 6415 6419 6420 6427 6424 1 6 6417 6418 6420 6421 6573 6565 1 6 6419 6418 6421 6422 6423 6424 1 6 6419 6420 6422 6573 6572 6574 1 6 6421 6420 6423 6580 6577 6574 1 6 6422 6420 6424 6425 6580 6581 1 6 6423 6420 6425 6426 6427 6418 1 6 6423 6424 6426 6584 6581 6430 1 6 6425 6424 6427 6428 6429 6430 1 6 6426 6424 6418 6415 6413 6428 1 6 6427 6413 6409 6407 6426 6429 1 6 6426 6428 6407 6430 6431 6406 1 6 6426 6429 6431 6432 6584 6425 1 6 6430 6429 6406 6432 6433 6434 1 6 6430 6431 6433 6584 6585 6586 1 6 6432 6431 6434 6435 6589 6586 1 6 6433 6431 6435 6436 6405 6406 1 6 6433 6434 6436 6437 6589 6590 1 6 6435 6434 6405 6437 6145 6143 1 6 6435 6436 6145 6438 6590 6591 1 6 6437 6145 6146 6439 6591 6592 1 6 6438 6146 6440 6595 6592 6443 1 6 6439 6146 6147 6441 6442 6443 1 6 6440 6147 6149 6151 6153 6442 1 6 6441 6153 6440 6443 6444 6155 1 6 6440 6442 6444 6595 6439 6453 1 6 6443 6442 6155 6445 6446 6453 1 6 6444 6155 6446 6447 5969 6156 1 6 6444 6445 6447 6449 6452 6453 1 6 6446 6445 5969 5970 6448 6449 1 5 6447 5970 5972 5975 6449 1 7 6448 5975 6447 6450 6451 6452 6446 1 7 6449 5975 5976 6451 6607 6598 6608 1 6 6449 6450 6452 6596 6597 6598 1 5 6449 6451 6446 6453 6596 1 6 6446 6452 6595 6443 6444 6596 1 5 6212 6224 6231 6455 6456 1 7 6454 6231 6456 6457 6378 6232 6460 1 6 6454 6455 6457 6458 6211 6212 1 5 6456 6455 6378 6379 6458 1 6 6457 6379 6456 6211 6459 6381 1 6 6211 6458 6207 6381 6204 6205 1 5 6455 6232 6461 9693 6378 1 6 6460 6232 6233 6462 6465 9693 1 6 6461 6233 6235 6463 6464 6465 1 6 6462 6235 6464 6469 6470 6471 1 6 6462 6463 6465 6466 6468 6469 1 6 6462 6464 6461 6466 6467 9693 1 6 6465 6464 6467 6468 9731 9732 1 7 6465 6466 9693 6377 6375 9730 9731 1 6 6466 6464 6469 7509 7510 9732 1 7 6468 6464 6463 6470 7507 7509 7506 1 6 6469 6463 6471 6472 7506 7505 1 6 6470 6463 6235 6472 6473 6236 1 6 6470 6471 6473 6474 7504 7505 1 6 6472 6471 6236 6474 6475 6476 1 7 6472 6473 6475 7503 7504 9692 9780 1 6 6474 6473 6476 6477 6478 9692 1 6 6475 6473 6236 6237 6241 6477 1 6 6476 6241 6242 6475 6478 6479 1 7 6475 6477 6479 6480 9692 9778 9779 1 6 6478 6477 6242 6480 6481 6244 1 6 6478 6479 6481 6487 9705 9778 1 6 6480 6479 6244 6482 6486 6487 1 6 6481 6244 6245 6253 6483 6486 1 5 6482 6253 6484 6486 6489 1 7 6483 6253 6252 6485 6489 6490 6491 1 7 6484 6252 6254 6257 6491 6492 6493 1 6 6482 6483 6481 6487 6488 6489 1 5 6481 6486 6488 9705 6480 1 7 6487 6486 6489 9704 2194 2195 9705 1 6 6488 6486 6483 6484 6490 9704 1 6 6489 6484 6491 2251 2252 9704 1 6 6490 6484 6485 6492 2251 9706 1 6 6491 6485 6493 9706 3335 9707 1 5 6492 6485 6257 6494 9707 1 6 6493 6257 6258 6495 9707 6499 1 6 6494 6258 6496 6497 6498 6499 1 5 6495 6258 6259 6273 6497 1 6 6496 6273 6495 6498 6500 6274 1 6 6495 6497 6499 2511 2512 6500 1 7 6495 6498 2511 3334 9707 3881 6494 1 6 2512 6498 6497 6274 6501 9710 1 6 6500 6274 6275 6502 9709 9710 1 6 6501 6275 6276 6503 9708 9709 1 6 6502 6276 6504 6512 9708 9711 1 6 6503 6276 6277 6505 6506 6512 1 5 6504 6277 6506 6282 6278 1 7 6504 6505 6282 6507 6512 6513 6509 1 6 6506 6282 6283 6285 6508 6509 1 6 6507 6285 6286 6509 6510 6511 1 6 6507 6508 6510 6513 6506 6514 1 7 6509 6508 6511 6329 6514 6515 6519 1 5 6510 6508 6329 6328 6286 1 6 6503 6504 6506 6513 9711 9717 1 5 6512 6506 6509 6514 9717 1 7 6513 6509 6510 6515 6516 9717 9718 1 6 6514 6510 6516 6517 6518 6519 1 6 6514 6515 6517 9718 9719 6522 1 6 6516 6515 6518 6520 6521 6522 1 6 6517 6515 6519 6330 6333 6520 1 5 6518 6515 6510 6329 6330 1 7 6518 6333 6334 6517 6521 6525 6528 1 6 6517 6520 6522 6523 6524 6525 1 7 6517 6521 6523 2214 9719 6516 2213 1 5 6522 6521 6524 2213 3348 1 7 6523 6521 6525 6526 3348 3347 6532 1 6 6524 6521 6520 6526 6527 6528 1 6 6524 6525 6527 6530 6531 6532 1 6 6526 6525 6528 6530 6339 6529 1 5 6527 6525 6520 6334 6529 1 6 6528 6334 6335 6339 6527 6337 1 7 6526 6527 6531 6340 6545 6339 6534 1 6 6526 6530 6532 3863 6533 6534 1 5 6526 6531 3863 3347 6524 1 6 3863 6531 6534 6535 6536 6716 1 6 6533 6531 6535 6544 6545 6530 1 6 6533 6534 6536 6537 6544 6541 1 6 6533 6535 6537 6538 6715 6716 1 6 6536 6535 6538 6539 6540 6541 1 7 6536 6537 6539 6714 3887 3886 6715 1 6 6538 6537 6540 6714 6718 6719 1 6 6539 6537 6541 6542 6719 6708 1 6 6540 6537 6542 6543 6544 6535 1 6 6540 6541 6543 6547 6548 6708 1 6 6542 6541 6544 6546 6344 6547 1 6 6543 6541 6535 6534 6545 6546 1 6 6544 6534 6546 6341 6340 6530 1 6 6544 6545 6543 6341 6342 6344 1 6 6543 6344 6542 6548 6549 6345 1 6 6542 6547 6549 6550 6551 6708 1 6 6548 6547 6345 6347 6550 6349 1 6 6548 6549 6551 6552 6351 6349 1 6 6548 6550 6552 6705 6707 6708 1 6 6551 6550 6351 6553 6554 6705 1 5 6552 6351 6352 6355 6554 1 6 6553 6355 6357 6555 6552 6705 1 7 6554 6357 3971 6705 6706 9747 3491 1 6 3969 1597 1598 6557 4038 3968 1 6 6556 1598 4038 3764 612 611 1 6 6416 6417 6559 6560 6564 6565 1 6 6416 6558 6560 6561 6964 6965 1 6 6559 6558 6561 6562 6563 6564 1 6 6559 6560 6562 6965 6966 6967 1 6 6561 6560 6563 6985 6983 6967 1 6 6562 6560 6564 6985 6986 6567 1 6 6563 6560 6558 6565 6566 6567 1 6 6564 6558 6417 6566 6573 6419 1 6 6564 6565 6567 6568 6569 6573 1 6 6564 6566 6568 6986 6563 6987 1 6 6567 6566 6569 6570 6990 6987 1 6 6568 6566 6570 6571 6572 6573 1 6 6568 6569 6571 6997 6990 6998 1 6 6570 6569 6572 6575 7001 6998 1 6 6571 6569 6573 6421 6574 6575 1 6 6572 6569 6566 6565 6419 6421 1 6 6572 6421 6575 6576 6577 6422 1 6 6572 6574 6576 7003 7001 6571 1 6 6575 6574 6577 6578 7003 7004 1 6 6576 6574 6578 6579 6580 6422 1 6 6576 6577 6579 7004 7005 7006 1 6 6578 6577 6580 7006 7007 6582 1 6 6579 6577 6422 6423 6581 6582 1 6 6580 6423 6582 6583 6584 6425 1 6 6580 6581 6583 7007 6579 7008 1 6 6582 6581 6584 6720 7008 6585 1 6 6583 6581 6425 6430 6432 6585 1 6 6584 6432 6586 6587 6720 6583 1 6 6585 6432 6587 6588 6589 6433 1 6 6585 6586 6588 6720 6721 6728 1 6 6587 6586 6589 6728 6729 6730 1 6 6588 6586 6433 6435 6590 6730 1 6 6589 6435 6437 6591 6730 6731 1 6 6590 6437 6438 6592 6593 6731 1 6 6591 6438 6593 6594 6595 6439 1 6 6591 6592 6594 6731 6732 6733 1 7 6593 6592 6595 6600 6733 6597 6596 1 6 6594 6592 6439 6443 6453 6596 1 6 6595 6453 6452 6451 6597 6594 1 6 6596 6451 6598 6599 6600 6594 1 6 6597 6451 6599 6606 6607 6450 1 6 6597 6598 6600 6601 6602 6606 1 5 6597 6599 6601 6733 6594 1 6 6600 6599 6602 6603 6734 6733 1 6 6601 6599 6603 6604 6605 6606 1 7 6601 6602 6604 6734 6735 6736 6737 1 5 6603 6602 6605 6737 6738 1 7 6604 6602 6606 6738 6739 6748 6745 1 6 6605 6602 6599 6598 6607 6748 1 6 6606 6598 6450 6608 6747 6748 1 6 6607 6450 5976 6609 6610 6747 1 6 6608 5976 5977 6610 6611 6612 1 6 6608 6609 6611 6747 6746 6749 1 6 6610 6609 6612 6619 6620 6749 1 6 6611 6609 5977 6613 6616 6619 1 6 6612 5977 5978 6614 6615 6616 1 6 6613 5978 6615 6639 6640 5979 1 6 6613 6614 6616 6617 6638 6639 1 6 6613 6615 6617 6618 6619 6612 1 6 6616 6615 6618 6636 6637 6638 1 6 6616 6617 6619 6621 6622 6636 1 6 6616 6618 6612 6611 6620 6621 1 6 6611 6619 6621 6750 6749 6626 1 6 6620 6619 6618 6622 6623 6626 1 6 6621 6618 6623 6624 6635 6636 1 6 6621 6622 6624 6625 6626 6627 1 6 6623 6622 6625 6633 6634 6635 1 6 6623 6624 6627 6628 6632 6633 1 6 6621 6623 6627 6750 6620 6751 1 6 6626 6623 6625 6628 6629 6751 1 6 6627 6625 6629 6630 6631 6632 1 6 6627 6628 6630 6756 6753 6751 1 6 6629 6628 6631 6756 6757 6758 1 6 6630 6628 6632 6758 6766 6767 1 6 6631 6628 6625 6633 6767 6768 1 6 6632 6625 6624 6634 6768 6769 1 6 6633 6624 6635 6769 6770 6771 1 6 6634 6624 6622 6636 9785 6771 1 6 6635 6622 6618 6617 6637 9785 1 6 6636 6617 6638 6785 6783 9785 1 6 6637 6617 6615 6639 9777 6785 1 6 6638 6615 6614 6640 9777 6642 1 6 6639 6614 5979 5981 6641 6642 1 6 6640 5981 5983 6642 6643 5985 1 7 6640 6641 6643 9777 6639 6787 9782 1 6 6642 6641 5985 6168 9782 9783 1 6 6362 6364 6645 6646 6647 6648 1 6 6362 6644 6183 6646 9724 9799 1 6 6645 6644 6647 9723 9724 6655 1 6 6646 6644 6648 6652 6654 6655 1 6 6647 6644 6364 6649 6650 6652 1 6 6648 6364 6650 6651 9673 6365 1 6 6648 6649 6651 6652 6653 9670 1 6 6650 6649 9670 9671 9672 9673 1 6 6648 6650 6653 6647 6654 3173 1 6 6652 6650 9670 9691 3172 3173 1 6 6647 6652 3173 6655 3450 3175 1 6 6647 6654 3450 6656 9723 6646 1 6 6655 3450 6657 6658 9721 9723 1 6 6656 3450 6658 3179 6659 6667 1 6 6656 6657 6667 6668 6669 9721 1 6 6657 3179 6660 6663 6664 6667 1 6 6659 3179 3178 6661 6662 6663 1 6 6660 3178 3180 2858 2859 6662 1 5 6660 6661 6663 6666 2859 1 6 6660 6662 6659 6664 6665 6666 1 6 6659 6663 6665 6667 6668 6672 1 7 6664 6663 6666 6672 6673 4564 4563 1 6 6665 6663 6662 4563 6674 2859 1 5 6659 6664 6668 6658 6657 1 7 6667 6664 6658 6669 6670 6671 6672 1 6 6658 6668 6670 6774 6775 9721 1 6 6669 6668 6671 6773 6772 6774 1 6 6670 6668 6672 6673 6790 6773 1 5 6671 6668 6664 6665 6673 1 5 6672 6665 4564 6671 6790 1 6 4563 6666 4561 6675 2860 2859 1 6 4561 6674 2860 6676 4560 9792 1 6 6675 2860 2853 2854 6677 9792 1 6 6676 2854 6678 6679 6681 9792 1 5 6677 2854 6679 6680 2855 1 6 6677 6678 6680 6681 6682 6683 1 6 6679 6678 6685 6683 6686 2855 1 6 6677 6679 6682 9750 9761 9792 1 6 6681 6679 6683 5156 5157 9750 1 6 6682 6679 5156 6684 6685 6680 1 6 5156 6683 6685 6692 6693 6694 1 6 6684 6683 6680 6686 6687 6692 1 6 6685 6680 6687 6688 6689 2855 1 6 6685 6686 6688 6692 6696 6699 1 6 6687 6686 6689 6690 6699 6700 1 6 6688 6686 6690 6691 2856 2855 1 6 6688 6689 6691 6700 6702 2551 1 5 6690 6689 2856 2550 2551 1 6 6685 6687 6684 6693 6695 6696 1 6 6684 6692 6694 4523 4522 6695 1 5 6684 6693 4523 4532 5156 1 6 4522 6693 6692 6696 6697 6704 1 6 6695 6692 6687 6697 6698 6699 1 7 6695 6696 6698 6703 3505 3506 6704 1 6 6697 6696 6699 6700 6701 6703 1 5 6698 6696 6687 6688 6700 1 7 6699 6688 6690 6698 6701 2222 6702 1 6 6698 6700 2222 64 65 6703 1 5 2222 6700 6690 2551 2221 1 6 6698 6701 65 66 6697 3505 1 5 6697 3506 3507 4522 6695 1 7 6552 6554 6555 6706 6551 6707 9749 1 6 6705 6555 9747 3502 9748 9749 1 6 6551 6705 6708 6709 6710 9749 1 7 6551 6707 6709 6719 6540 6548 6542 1 6 6708 6707 6710 6711 6718 6719 1 7 6709 6707 6711 6712 3503 9748 9749 1 7 6709 6710 6712 3117 3119 6713 6718 1 6 6711 6710 3503 3504 3116 3117 1 6 6711 3119 3121 3887 6714 6718 1 5 6713 3887 6538 6539 6718 1 6 6538 3886 6536 6716 3862 6717 1 5 6536 6715 6533 3863 3862 1 6 3862 6715 3861 3342 3885 3886 1 6 6714 6539 6713 6711 6709 6719 1 5 6718 6539 6540 6709 6708 1 6 6585 6587 6721 6722 7008 6583 1 6 6720 6587 6722 6723 6727 6728 1 6 6720 6721 6723 6724 7009 7008 1 6 6722 6721 6724 6725 6726 6727 1 6 6722 6723 6725 7009 7010 7011 1 6 6724 6723 6726 7022 7011 7023 1 6 6725 6723 6727 7023 7026 7027 1 6 6726 6723 6721 6728 7027 7030 1 6 6727 6721 6587 6588 6729 7030 1 6 6728 6588 6730 7030 7031 7032 1 6 6729 6588 6589 6590 6731 7032 1 6 6730 6590 6591 6593 6732 7032 1 6 6731 6593 6733 6734 7032 7033 1 6 6732 6593 6734 6601 6600 6594 1 6 6732 6733 6601 6603 6735 7033 1 6 6734 6603 6736 7033 7034 7035 1 6 6735 6603 6737 6740 7035 7036 1 5 6736 6603 6604 6738 6740 1 7 6737 6604 6605 6739 6740 6741 6742 1 6 6738 6605 6742 6743 6744 6745 1 6 6736 6737 6738 6741 7036 7037 1 6 6740 6738 6742 7037 7038 7039 1 6 6741 6738 6739 6743 7039 7040 1 7 6742 6739 6744 7040 7041 6754 7042 1 5 6743 6739 6745 6746 7042 1 6 6744 6739 6746 6747 6748 6605 1 7 6744 6745 6747 6610 6749 6750 7042 1 6 6746 6745 6748 6607 6608 6610 1 5 6747 6745 6607 6605 6606 1 5 6746 6610 6750 6620 6611 1 7 6746 6749 6620 6626 6751 6752 7042 1 6 6750 6626 6752 6753 6629 6627 1 5 6750 6751 6753 6754 7042 1 6 6752 6751 6754 6755 6756 6629 1 7 6752 6753 6755 7041 6743 7042 7141 1 5 6754 6753 6756 7141 6759 1 6 6755 6753 6629 6630 6757 6759 1 6 6756 6630 6758 6759 6760 6761 1 6 6757 6630 6631 6761 6762 6766 1 6 6756 6757 6760 7141 6755 7142 1 6 6759 6757 6761 7142 7143 7144 1 6 6760 6757 6758 6762 6763 7144 1 6 6761 6758 6763 4559 6764 6766 1 6 6761 6762 4559 4551 7144 4550 1 6 4559 6762 4558 4565 6765 6766 1 5 4565 6764 6766 6790 6767 1 6 6765 6764 6762 6758 6631 6767 1 6 6766 6631 6632 6768 6790 6765 1 6 6767 6632 6633 6769 6773 6790 1 6 6768 6633 6634 6770 6772 6773 1 6 6769 6634 6771 6772 6777 6778 1 6 6770 6634 6778 6779 6635 9785 1 6 6769 6770 6773 6670 6774 6777 1 6 6769 6772 6670 6671 6790 6768 1 6 6670 6772 6669 6775 6776 6777 1 6 6669 6774 6776 9721 9722 9798 1 7 6775 6774 6777 6778 6780 9797 9798 1 5 6776 6774 6772 6770 6778 1 6 6777 6770 6771 6779 6780 6776 1 6 6778 6771 6780 6781 6783 9785 1 6 6778 6779 6781 6782 6776 9797 1 6 6780 6779 6782 6176 6783 6784 1 5 6780 6781 6176 6177 9797 1 6 6781 6779 6784 6785 6637 9785 1 7 6781 6783 6176 6174 6785 6786 6788 1 7 6784 6783 6786 6787 9777 6638 6637 1 6 6784 6785 6787 6788 6171 6789 1 6 6786 6785 9777 6642 9782 6789 1 5 6784 6786 6171 6172 6174 1 5 6171 6786 6170 6787 9782 1 8 6671 6673 6773 4564 4565 6765 6768 6767 1 6 5418 5419 6792 7331 7332 7333 1 6 6791 5419 5420 5428 6793 7333 1 6 6792 5428 5429 6794 7333 7334 1 6 6793 5429 5430 6795 7334 7335 1 6 6794 5430 5432 5433 6796 7335 1 6 6795 5433 5434 6797 7335 7336 1 6 6796 5434 5435 6798 7336 7337 1 6 6797 5435 5436 6799 7337 7338 1 6 6798 5436 5437 6800 7338 7339 1 6 6799 5437 5438 6801 7339 7340 1 6 6800 5438 6802 7340 7341 7342 1 6 6801 5438 5439 5440 6803 7342 1 6 6802 5440 5441 6804 7342 7343 1 6 6803 5441 5442 6805 7343 7344 1 6 6804 5442 5444 6806 7344 7345 1 6 6805 5444 5445 6807 7345 7346 1 6 6806 5445 5446 6808 7346 7347 1 6 6807 5446 6809 7347 7348 7349 1 6 6808 5446 5447 6810 7349 6811 1 5 6809 5447 5217 5218 6811 1 6 6810 5218 5219 6812 7349 6809 1 5 6811 5219 6813 7349 7350 1 6 6812 5219 5220 6814 7350 7351 1 7 6813 5220 5221 5222 6815 7351 7352 1 5 6814 5222 6816 7352 7353 1 7 6815 5222 5223 5224 6817 7353 7354 1 5 6816 5224 6818 7354 7355 2 6 6817 5224 6819 7355 7356 7357 2 6 6818 5224 5225 5226 6820 7357 2 5 6819 5226 5227 6821 7357 2 6 6820 5227 6822 7357 7358 7359 2 7 6821 5227 5228 5229 6823 7359 7360 2 5 6822 5229 6824 6825 7360 2 5 6823 5229 6825 6826 5167 2 7 6823 6824 6826 6827 6828 7362 7360 2 5 6825 6824 5167 5168 6827 2 6 6826 5168 6825 6828 6829 6830 2 6 6825 6827 6829 7362 7363 7364 2 6 6828 6827 6830 7364 7365 7366 2 6 6829 6827 5168 5169 6831 7366 2 7 6830 5169 6832 7366 7367 7368 6834 2 5 6831 5169 6833 5238 6834 2 5 6832 5169 5238 5018 5023 2 6 6832 5238 5239 6835 7368 6831 2 6 6834 5239 5648 6836 7375 7368 2 7 6835 5648 6837 7375 7374 7376 7377 2 6 6836 5648 5649 5651 6838 7377 2 6 6837 5651 6839 7377 7378 7379 2 6 6838 5651 5652 6840 6841 7379 2 6 6839 5652 5653 5247 6841 5248 2 6 6839 6840 5248 6842 7379 7380 2 6 6841 5248 5249 6843 7380 7381 2 6 6842 5249 6844 7381 7382 7383 2 6 6843 5249 5028 5029 6845 7383 2 6 6844 5029 5030 6846 6847 7383 2 6 6845 5030 6847 6848 6849 5031 2 6 6845 6846 6848 7384 7383 7385 2 6 6847 6846 6849 7385 7386 7387 2 6 6848 6846 5031 5032 6850 7387 2 6 6849 5032 5033 5034 6851 7387 2 6 6850 5034 6852 7387 7388 6854 2 6 6851 5034 5035 5038 6853 6854 2 6 6852 5038 6854 6855 6856 5039 2 6 6852 6853 6855 7388 6851 7389 2 6 6854 6853 6856 6857 6859 7389 2 6 6855 6853 5039 6857 6858 5041 2 6 6855 6856 6858 6859 6860 6861 2 6 6857 6856 5041 6861 6862 6863 2 6 6855 6857 6860 7389 7390 7397 2 6 6859 6857 6861 7397 7398 7399 2 6 6860 6857 6858 6862 7399 7400 2 6 6861 6858 6863 6864 6865 7400 2 6 6862 6858 6864 5042 6879 5041 2 6 6862 6863 6865 6866 6879 6873 2 6 6862 6864 6866 6867 7400 7401 2 6 6865 6864 6867 6868 6872 6873 2 6 6865 6866 6868 6869 7401 7402 2 6 6867 6866 6869 6870 6871 6872 2 6 6867 6868 6870 7405 7402 7406 2 6 6869 6868 6871 7412 7406 7413 2 6 6870 6868 6872 7419 7416 7413 2 6 6871 6868 6866 6873 6874 7419 2 6 6872 6866 6874 6875 6864 6879 2 6 6872 6873 6875 6876 7419 7418 2 6 6874 6873 6876 6877 6878 6879 2 6 6874 6875 6877 6883 6884 7418 2 6 6876 6875 6878 6880 6882 6883 2 6 6877 6875 6879 6880 5043 5042 2 6 6878 6875 5042 6863 6864 6873 2 6 6877 6878 5043 5045 6881 6882 2 6 6880 5045 6882 6887 6888 6889 2 6 6880 6881 6877 6883 6886 6887 2 6 6877 6882 6876 6884 6885 6886 2 6 6876 6883 6885 7418 7420 7426 2 6 6884 6883 6886 7426 7427 7428 2 6 6885 6883 6882 6887 7428 7429 2 6 6886 6882 6881 6888 7429 7430 2 6 6887 6881 6889 6890 7430 7433 2 6 6888 6881 5045 6890 4645 4644 2 6 6888 6889 4645 4646 6891 7433 2 6 6890 4646 4647 6892 7433 6893 2 6 6891 4647 4253 4254 4730 6893 2 6 6892 4730 6894 7433 6891 7432 2 6 6893 4730 4731 6895 6897 7432 2 6 6894 4731 6896 6897 6898 6899 2 6 6895 4731 4732 6899 6900 6901 2 6 6894 6895 6898 7432 7431 7434 2 6 6897 6895 6899 7434 7435 7436 2 6 6898 6895 6896 6900 7436 7437 1 6 6899 6896 6901 7437 6904 6903 2 6 6900 6896 4732 4262 6902 6903 1 6 6901 4262 4263 4264 5231 6903 1 6 6902 5231 5458 6904 6900 6901 1 6 6903 5458 5459 6905 7437 6900 1 6 6904 5459 6906 7437 7438 7439 1 6 6905 5459 5460 6907 7439 7440 1 6 6906 5460 5461 6908 7262 7440 1 6 6907 5461 5462 6909 7262 7263 1 6 6908 5462 6910 7263 7264 6911 1 6 6909 5462 5463 5464 5465 6911 1 6 6910 5465 6912 7264 6909 7265 1 6 6911 5465 5466 6913 7265 7266 1 6 6912 5466 5467 6914 7266 7267 1 6 6913 5467 6915 7267 7268 7269 1 6 6914 5467 5468 6916 6917 7269 1 6 6915 5468 5469 5470 5471 6917 1 6 6915 6916 5471 6918 7269 7270 1 6 6917 5471 5472 6919 7270 7271 1 6 6918 5472 5473 6920 7271 7272 1 6 6919 5473 5474 5475 6921 7272 1 6 6920 5475 6922 7274 7272 7275 1 6 6921 5475 5476 6923 7275 7276 1 6 6922 5476 5477 6924 7276 7277 1 6 6923 5477 5478 6925 7277 7278 1 6 6924 5478 5479 6926 7278 7279 1 6 6925 5479 5480 5654 6927 7279 1 6 6926 5654 5655 6928 7281 7279 1 6 6927 5655 6929 7281 7282 7283 1 6 6928 5655 5656 5657 6930 7283 1 6 6929 5657 6931 7283 7284 7285 1 6 6930 5657 5658 5831 6932 7285 1 6 6931 5831 6933 7285 7286 7287 1 6 6932 5831 5832 5840 6934 7287 1 6 6933 5840 5841 6935 6936 7287 1 6 6934 5841 5843 6936 6937 6018 1 6 6934 6935 6937 6938 7287 7288 1 6 6936 6935 6018 6938 6939 6940 1 6 6936 6937 6939 7288 7289 7290 1 6 6938 6937 6940 7290 7291 6941 1 6 6939 6937 6018 5845 5847 6941 1 6 6940 5847 6942 6943 7291 6939 1 6 6941 5847 6943 6944 6945 5848 1 6 6941 6942 6944 7291 7292 7293 1 6 6943 6942 6945 7293 7294 7295 1 7 6944 6942 5848 5850 6385 6946 7295 1 6 6945 6385 6386 6947 7295 7296 1 6 6946 6386 6387 6388 6948 7296 1 6 6947 6388 6389 6949 7296 7297 1 7 6948 6389 6391 6395 6950 7297 7298 1 6 6949 6395 6951 7298 7300 7301 1 6 6950 6395 6396 6952 7043 7301 1 6 6951 6396 6399 6953 7043 7044 1 6 6952 6399 6400 6954 6955 7044 1 6 6953 6400 6401 6955 6956 6960 1 6 6953 6954 6956 6957 7044 7045 1 6 6955 6954 6957 6958 6959 6960 1 6 6955 6956 6958 7045 7048 7049 1 6 6957 6956 6959 6961 6962 7049 1 6 6958 6956 6960 6410 6411 6961 1 6 6959 6956 6954 6401 6402 6410 1 6 6959 6411 6958 6962 6963 6412 1 6 6958 6961 6963 7051 7049 7052 1 6 6962 6961 6412 6414 6964 7052 1 6 6963 6414 6416 6559 6965 7052 1 6 6964 6559 6561 6966 7052 6971 1 6 6965 6561 6967 6968 6970 6971 1 6 6966 6561 6968 6969 6562 6983 1 6 6966 6967 6969 6970 6974 6975 1 6 6968 6967 6981 6975 6982 6983 1 6 6966 6968 6971 6972 6973 6974 1 6 6966 6970 6972 7052 6965 7051 1 6 6971 6970 6973 7051 7050 7053 1 6 6972 6970 6974 7062 7053 7063 1 6 6973 6970 6968 6975 6976 7063 1 6 6974 6968 6976 6977 6981 6969 1 6 6974 6975 6977 6978 7063 7064 1 6 6976 6975 6978 6979 6980 6981 1 6 6976 6977 6979 7064 7065 7066 1 6 6978 6977 6980 7066 7067 7071 1 6 6979 6977 6981 7071 7072 7073 1 6 6980 6977 6975 6969 6982 7073 1 6 6981 6969 6983 6984 7073 7074 1 6 6982 6969 6984 6985 6562 6967 1 6 6982 6983 6985 7074 7075 7076 1 6 6984 6983 6562 6563 6986 7076 1 6 6985 6563 6567 6987 6988 7076 1 6 6986 6567 6988 6989 6990 6568 1 6 6986 6987 6989 6991 7076 7077 1 6 6988 6987 6990 6991 6992 6996 1 6 6989 6987 6996 6997 6570 6568 1 6 6988 6989 6992 6993 7077 7078 1 6 6991 6989 6993 6994 6995 6996 1 6 6991 6992 6994 7078 7081 7082 1 6 6993 6992 6995 7082 7085 7086 1 6 6994 6992 6996 7086 7087 7088 1 6 6995 6992 6989 6990 6997 7088 1 6 6996 6990 6570 6998 6999 7088 1 6 6997 6570 6999 7000 7001 6571 1 6 6997 6998 7000 7088 7089 7092 1 6 6999 6998 7001 7002 7092 7093 1 6 7000 6998 7002 7003 6575 6571 1 6 7000 7001 7003 7093 7094 7095 1 6 7002 7001 6575 6576 7004 7095 1 6 7003 6576 6578 7005 7095 7096 1 6 7004 6578 7006 7096 7097 7098 1 6 7005 6578 6579 7007 7012 7098 1 6 7006 6579 6582 7008 7009 7012 1 6 7007 6582 7009 6722 6720 6583 1 6 7007 7008 6722 6724 7010 7012 1 6 7009 6724 7011 7012 7013 7014 1 6 7010 6724 7022 7020 7014 6725 1 6 7009 7010 7007 7006 7013 7098 1 6 7012 7010 7014 7015 7098 7099 1 6 7013 7010 7015 7016 7020 7011 1 6 7013 7014 7016 7017 7099 7100 1 6 7015 7014 7017 7018 7019 7020 1 6 7015 7016 7018 7107 7100 7113 1 6 7017 7016 7019 7114 7113 7115 1 6 7018 7016 7020 7021 7115 7116 1 6 7019 7016 7014 7021 7022 7011 1 6 7019 7020 7022 7024 7116 7117 1 6 7021 7020 7011 6725 7023 7024 1 6 7022 6725 6726 7024 7025 7026 1 6 7021 7022 7023 7025 7117 7118 1 6 7024 7023 7026 7118 7119 7120 1 6 7025 7023 6726 7027 7028 7120 1 6 7026 6726 6727 7028 7029 7030 1 6 7026 7027 7029 7122 7120 7123 1 6 7028 7027 7030 7123 7034 7031 1 6 7029 7027 6727 6728 6729 7031 1 6 7030 6729 7032 7034 7029 7033 1 6 7031 6729 6730 6731 6732 7033 1 6 7032 6732 6734 6735 7034 7031 1 6 7033 6735 7035 7123 7029 7031 1 5 7034 6735 6736 7036 7123 1 6 7035 6736 6740 7037 7123 7122 1 7 7036 6740 6741 7038 7122 7124 7125 1 6 7037 6741 7039 7135 7125 7136 1 6 7038 6741 6742 7040 7136 7137 1 6 7039 6742 6743 7041 7137 7138 1 5 7040 6743 6754 7141 7138 1 6 6754 6743 6744 6746 6750 6752 1 6 6951 6952 7044 7301 7302 7046 1 6 7043 6952 6953 6955 7045 7046 1 6 7044 6955 6957 7046 7047 7048 1 6 7044 7045 7047 7302 7043 7303 1 6 7046 7045 7048 7303 7056 7054 1 6 7047 7045 6957 7049 7050 7054 1 6 7048 6957 7050 7051 6962 6958 1 6 7048 7049 7051 6972 7053 7054 1 6 7050 7049 6962 7052 6971 6972 1 6 7051 6962 6963 6964 6965 6971 1 6 7050 6972 7054 7055 7062 6973 1 6 7050 7053 7055 7056 7047 7048 1 6 7054 7053 7056 7057 7058 7062 1 6 7054 7055 7057 7303 7047 7304 1 6 7056 7055 7058 7059 7307 7304 1 6 7057 7055 7059 7060 7061 7062 1 6 7057 7058 7060 7307 7476 7477 1 6 7059 7058 7061 7477 7478 7479 1 6 7060 7058 7062 7063 7064 7479 1 6 7061 7058 7055 7053 6973 7063 1 6 7062 6973 6974 6976 7061 7064 1 6 7061 7063 6976 6978 7065 7479 1 6 7064 6978 7066 7479 7480 7481 1 6 7065 6978 6979 7067 7068 7481 1 6 7066 6979 7068 7069 7070 7071 1 6 7066 7067 7069 7483 7481 7462 1 6 7068 7067 7070 7462 7484 7485 1 6 7069 7067 7071 7485 7486 7487 1 6 7070 7067 6979 6980 7072 7487 1 6 7071 6980 7073 7487 7488 7492 1 6 7072 6980 6981 6982 7074 7492 1 6 7073 6982 6984 7075 7493 7492 1 6 7074 6984 7076 7493 7079 7077 1 6 7075 6984 6985 6986 6988 7077 1 6 7076 6988 6991 7078 7079 7075 1 6 7077 6991 6993 7079 7080 7081 1 6 7077 7078 7080 7691 7493 7075 1 6 7079 7078 7081 7223 7224 7691 1 6 7080 7078 6993 7082 7083 7223 1 6 7081 6993 6994 7083 7084 7085 1 6 7081 7082 7084 7226 7223 7227 1 6 7083 7082 7085 7227 7228 7229 1 6 7084 7082 6994 7086 7232 7229 1 6 7085 6994 6995 7087 7232 7233 1 6 7086 6995 7088 7089 7090 7233 1 6 7087 6995 6996 6997 6999 7089 1 6 7088 6999 7087 7090 7091 7092 1 6 7087 7089 7091 7233 7234 7235 1 6 7090 7089 7092 7235 7236 7237 1 6 7091 7089 6999 7000 7093 7237 1 6 7092 7000 7002 7094 7237 7238 1 6 7093 7002 7095 7238 7239 7103 1 6 7094 7002 7003 7004 7096 7103 1 6 7095 7004 7005 7097 7102 7103 1 6 7096 7005 7098 7099 7101 7102 1 6 7097 7005 7006 7012 7013 7099 1 6 7098 7013 7015 7100 7101 7097 1 6 7099 7015 7101 7106 7107 7017 1 6 7099 7100 7097 7102 7105 7106 1 6 7097 7101 7096 7103 7104 7105 1 6 7096 7102 7104 7239 7094 7095 1 6 7103 7102 7105 7241 7239 7242 1 6 7104 7102 7101 7106 7242 7243 1 6 7105 7101 7100 7107 7108 7243 1 6 7106 7100 7017 7108 7109 7113 1 6 7106 7107 7109 7110 7243 7244 1 6 7108 7107 7110 7111 7112 7113 1 6 7108 7109 7111 7247 7244 7248 1 6 7110 7109 7112 7248 7249 7250 1 6 7111 7109 7113 7114 7250 7251 1 6 7112 7109 7114 7018 7017 7107 1 6 7112 7113 7018 7115 7251 7254 1 6 7114 7018 7019 7116 7254 7255 1 6 7115 7019 7021 7117 7258 7255 1 6 7116 7021 7024 7118 7258 7259 1 6 7117 7024 7025 7119 7259 7128 1 6 7118 7025 7120 7121 7127 7128 1 6 7119 7025 7121 7122 7028 7026 1 6 7119 7120 7122 7124 7126 7127 1 7 7121 7120 7028 7123 7036 7037 7124 1 6 7122 7028 7029 7034 7035 7036 1 5 7122 7037 7125 7126 7121 1 5 7124 7037 7126 7135 7038 1 7 7124 7125 7121 7127 7130 7131 7135 1 6 7121 7126 7119 7128 7129 7130 1 6 7119 7127 7129 7261 7259 7118 1 6 7128 7127 7130 7261 7532 7530 1 6 7129 7127 7126 7131 7132 7532 1 6 7130 7126 7132 7133 7134 7135 1 6 7130 7131 7133 7532 7531 7533 1 6 7132 7131 7134 7533 7534 7535 1 6 7133 7131 7135 7535 7536 7136 1 6 7134 7131 7126 7125 7038 7136 1 6 7135 7038 7039 7137 7536 7134 1 6 7136 7039 7040 7138 7139 7536 1 6 7137 7040 7139 7140 7141 7041 1 6 7137 7138 7140 7148 7150 7536 1 6 7139 7138 7141 7142 7147 7148 1 7 7140 7138 7041 6754 6755 6759 7142 1 6 7140 7141 6759 6760 7143 7147 1 6 7142 6760 7144 7145 7146 7147 1 7 7143 6760 7145 4552 4551 6763 6761 1 5 7143 7144 4552 4554 7146 1 6 7145 4554 4556 7143 7147 7148 1 5 7143 7146 7148 7140 7142 1 7 7147 7146 4556 7140 7139 7149 7150 1 6 7148 4556 7150 7151 7152 7153 1 6 7148 7149 7139 7151 7536 7535 1 6 7150 7149 7152 7535 7534 7537 1 6 7151 7149 7153 7154 7155 7537 1 6 7152 7149 7154 4649 4555 4556 1 6 7152 7153 7155 7156 7166 4649 1 6 7152 7154 7156 7157 7537 7538 1 6 7155 7154 7157 7158 7159 7166 1 6 7155 7156 7158 7538 7539 7554 1 6 7157 7156 7159 7160 7554 7555 1 6 7158 7156 7160 7161 7162 7166 1 6 7158 7159 7161 7163 7167 7555 1 6 7160 7159 7162 7163 4137 7164 1 5 7161 7159 7164 7165 7166 1 6 7160 7161 4137 7167 7168 4138 1 7 4137 7161 7162 7165 4413 4134 4135 1 5 7164 7162 4413 4415 7166 1 7 4415 7165 7162 7159 7156 7154 4649 1 6 7160 7163 7168 7555 7556 7560 1 7 7167 7163 4138 7169 7560 7561 7562 1 5 7168 4138 4139 7170 7562 2 7 7169 4139 4140 7171 7562 7563 7564 2 6 7170 4140 4124 7172 7173 7564 2 6 7171 4124 7173 7174 4122 9789 2 6 7171 7172 7174 7175 7176 7564 2 6 7173 7172 7175 9788 9787 9789 2 6 7173 7174 7176 7177 7178 9788 2 7 7173 7175 7177 7564 7563 7568 7569 2 6 7176 7175 7178 7179 7180 7569 2 6 7177 7175 7179 9788 3535 3537 2 6 7177 7178 7180 7181 7182 3537 2 6 7177 7179 7181 7570 7569 7571 2 6 7180 7179 7182 7571 7572 7573 2 6 7181 7179 3537 3538 7183 7573 2 6 7182 3538 7184 7575 7573 7187 2 6 7183 3538 3539 7185 7186 7187 2 6 7184 3539 7186 7211 7210 7212 2 6 7184 7185 7187 7188 7211 7192 2 6 7184 7186 7188 7189 7575 7183 2 6 7187 7186 7189 7190 7191 7192 2 6 7187 7188 7190 7575 7576 7579 2 6 7189 7188 7191 7193 7579 7580 2 6 7190 7188 7192 7193 7194 7198 2 6 7191 7188 7198 7199 7211 7186 2 6 7190 7191 7194 7195 7580 7581 2 6 7193 7191 7195 7196 7197 7198 2 6 7193 7194 7196 7581 7582 7583 2 6 7195 7194 7197 7583 3196 3195 2 6 7196 7194 7198 3195 7200 7203 2 6 7197 7194 7191 7192 7199 7200 2 6 7198 7192 7200 7201 7211 7208 2 6 7198 7199 7201 7202 7203 7197 2 6 7200 7199 7202 7206 7207 7208 2 6 7200 7201 7203 7204 7205 7206 2 6 7200 7202 7204 3194 3195 7197 2 6 7203 7202 7205 7220 7221 3194 2 6 7204 7202 7206 9745 7218 7220 2 6 7205 7202 7201 7207 9745 9746 2 6 7206 7201 7208 7209 9746 7213 2 6 7207 7201 7209 7210 7211 7199 2 6 7207 7208 7210 4373 4374 7213 2 6 7209 7208 7211 7185 7212 4373 2 6 7210 7208 7199 7192 7186 7185 2 6 7210 7185 3539 3540 4372 4373 2 6 7209 4374 4375 7214 9746 7207 2 6 7213 4375 4377 7215 7216 9746 2 6 7214 4377 7216 2863 1627 2862 2 6 7214 7215 2863 7217 9745 9746 2 6 7216 2863 2864 2865 7218 9745 2 6 7217 2865 7219 7220 7205 9745 2 5 7218 2865 7220 3214 2866 2 6 7218 7219 3214 7221 7205 7204 2 6 7220 3214 3215 7222 3194 7204 2 5 7221 3215 3216 3193 3194 1 6 7080 7081 7224 7225 7226 7083 1 6 7080 7223 7225 7691 7690 7692 1 6 7224 7223 7226 7692 7693 7674 1 6 7225 7223 7083 7227 7674 7694 1 6 7226 7083 7084 7228 7694 7695 1 6 7227 7084 7229 7230 7695 7696 1 6 7228 7084 7230 7231 7232 7085 1 6 7228 7229 7231 7696 7697 7701 1 6 7230 7229 7232 7701 7702 7703 1 6 7231 7229 7085 7086 7233 7703 1 6 7232 7086 7087 7090 7234 7703 1 6 7233 7090 7235 7718 7704 7703 1 6 7234 7090 7091 7236 7718 7717 1 6 7235 7091 7237 7717 7719 7720 1 6 7236 7091 7092 7093 7238 7720 1 6 7237 7093 7094 7239 7240 7720 1 6 7238 7094 7103 7240 7241 7104 1 6 7238 7239 7241 7720 7721 7722 1 6 7240 7239 7104 7242 7722 7725 1 6 7241 7104 7105 7243 7245 7725 1 6 7242 7105 7106 7108 7244 7245 1 6 7243 7108 7245 7246 7247 7110 1 6 7243 7244 7246 7728 7725 7242 1 6 7245 7244 7247 7964 7728 7965 1 6 7246 7244 7110 7248 7965 7966 1 6 7247 7110 7111 7249 7966 7967 1 6 7248 7111 7250 7511 7967 7968 1 6 7249 7111 7112 7251 7252 7511 1 6 7250 7112 7114 7252 7253 7254 1 6 7250 7251 7253 7511 7512 7516 1 6 7252 7251 7254 7256 9775 7516 1 6 7253 7251 7114 7115 7255 7256 1 6 7254 7115 7256 7257 7258 7116 1 6 7254 7255 7257 7523 7253 9775 1 6 7256 7255 7258 7260 7524 7523 1 6 7257 7255 7116 7117 7259 7260 1 6 7258 7117 7118 7260 7261 7128 1 6 7258 7259 7261 7529 7524 7257 1 6 7260 7259 7128 7129 7530 7529 1 6 6907 6908 7263 7440 7442 7443 1 6 7262 6908 6909 7264 7443 7444 1 6 7263 6909 6911 7265 7444 7445 1 6 7264 6911 6912 7266 7445 7446 1 6 7265 6912 6913 7267 7449 7446 1 6 7266 6913 6914 7268 7449 7450 1 6 7267 6914 7269 7450 7451 7452 1 6 7268 6914 6915 6917 7270 7452 1 6 7269 6917 6918 7271 7452 7453 1 6 7270 6918 6919 7272 7273 7453 1 6 7271 6919 7273 7274 6921 6920 1 6 7271 7272 7274 7453 7454 7455 1 6 7273 7272 6921 7275 7455 7456 1 6 7274 6921 6922 7276 7456 7457 1 6 7275 6922 6923 7277 7457 7458 1 6 7276 6923 6924 7278 7458 7459 1 6 7277 6924 6925 7279 7280 7459 1 6 7278 6925 7280 7281 6927 6926 1 6 7278 7279 7281 7459 7460 7464 1 6 7280 7279 6927 6928 7282 7464 1 6 7281 6928 7283 7464 7465 7466 1 6 7282 6928 6929 6930 7284 7466 1 6 7283 6930 7285 7466 7467 7468 1 6 7284 6930 6931 6932 7286 7468 1 6 7285 6932 7287 7468 7469 7288 1 6 7286 6932 6933 6934 6936 7288 1 6 7287 6936 6938 7289 7469 7286 1 6 7288 6938 7290 7469 7470 7471 1 6 7289 6938 6939 7291 7471 7472 1 6 7290 6939 6941 6943 7292 7472 1 6 7291 6943 7293 7472 7473 7474 1 6 7292 6943 6944 7294 7474 7299 1 6 7293 6944 7295 7297 7298 7299 1 6 7294 6944 6945 6946 7296 7297 1 5 7295 6946 6947 6948 7297 1 6 7296 6948 6949 7295 7294 7298 1 6 7294 7297 6949 6950 7299 7300 1 5 7294 7298 7300 7474 7293 1 7 7299 7298 6950 7301 7474 7305 7302 1 5 7300 6950 6951 7043 7302 1 6 7301 7043 7046 7303 7305 7300 1 6 7302 7046 7047 7056 7304 7305 1 6 7303 7056 7305 7306 7307 7057 1 6 7303 7304 7306 7474 7300 7302 1 6 7305 7304 7307 7474 7473 7475 1 6 7306 7304 7057 7059 7475 7476 1 5 4702 4703 7309 7855 7856 1 6 7308 4703 4704 7310 7856 7857 1 6 7309 4704 4705 7311 7857 7858 1 6 7310 4705 4706 7312 7858 7859 1 6 7311 4706 4707 5170 7313 7859 1 6 7312 5170 7314 7859 7860 7861 1 6 7313 5170 5171 7315 7861 7862 1 6 7314 5171 5172 7316 7862 7863 1 6 7315 5172 5173 7317 7863 7864 1 6 7316 5173 5174 7318 7864 7865 1 6 7317 5174 5175 7319 7865 7866 1 6 7318 5175 5176 7320 7866 7867 1 6 7319 5176 5177 5178 7321 7867 1 6 7320 5178 7322 7867 7868 7869 1 6 7321 5178 5179 7323 7869 7870 1 6 7322 5179 5180 5411 7324 7870 1 6 7323 5411 7325 7870 7871 7872 1 6 7324 5411 5412 7326 7872 7873 1 6 7325 5412 5413 5414 7327 7873 1 6 7326 5414 7328 7873 7874 7875 1 6 7327 5414 5415 5416 7329 7875 1 6 7328 5416 7330 7875 7876 7877 1 6 7329 5416 5417 5418 7331 7877 1 6 7330 5418 6791 7332 7877 7878 1 6 7331 6791 7333 7878 7879 7880 1 6 7332 6791 6792 6793 7334 7880 1 6 7333 6793 6794 7335 7880 7881 1 6 7334 6794 6795 6796 7336 7881 1 6 7335 6796 6797 7337 7881 7882 1 6 7336 6797 6798 7338 7882 7883 1 6 7337 6798 6799 7339 7883 7884 1 6 7338 6799 6800 7340 7884 7885 1 6 7339 6800 6801 7341 7885 7886 1 6 7340 6801 7342 7886 7887 7888 1 6 7341 6801 6802 6803 7343 7888 1 6 7342 6803 6804 7344 7888 7889 1 6 7343 6804 6805 7345 7889 7890 1 6 7344 6805 6806 7346 7890 7891 1 6 7345 6806 6807 7347 7891 7892 1 6 7346 6807 6808 7348 7892 7893 1 6 7347 6808 7349 7893 7894 7895 1 7 7348 6808 6809 6811 6812 7350 7895 1 6 7349 6812 6813 7351 7895 7896 1 6 7350 6813 6814 7352 7896 7897 1 5 7351 6814 6815 7353 7897 1 7 7352 6815 6816 7354 7897 7898 7899 1 5 7353 6816 6817 7355 7899 2 7 7354 6817 6818 7356 7899 7900 7901 2 6 7355 6818 7357 7901 7902 7903 2 7 7356 6818 6819 6820 6821 7358 7903 2 6 7357 6821 7359 7903 7904 7905 2 6 7358 6821 6822 7360 7361 7905 2 6 7359 6822 6823 7361 7362 6825 2 6 7359 7360 7362 7905 7906 7907 2 6 7361 7360 6825 6828 7363 7907 2 6 7362 6828 7364 7907 7908 7909 2 5 7363 6828 6829 7365 7909 2 7 7364 6829 7366 7369 7371 7909 7910 2 6 7365 6829 6830 6831 7367 7369 2 6 7366 6831 7368 7369 7370 7375 2 5 7367 6831 7375 6835 6834 2 6 7366 7367 7370 7365 7371 7372 2 6 7369 7367 7372 7373 7374 7375 2 6 7365 7369 7372 7910 7911 7912 2 6 7371 7369 7370 7373 7912 7913 2 6 7372 7370 7374 7913 7914 7915 2 6 7373 7370 7375 6836 7376 7915 2 6 7374 7370 7367 7368 6835 6836 2 6 7374 6836 7377 7915 7916 7917 2 6 7376 6836 6837 6838 7378 7917 2 5 7377 6838 7379 7601 7917 2 6 7378 6838 6839 6841 7380 7601 2 6 7379 6841 6842 7381 7601 7602 2 6 7380 6842 6843 7382 7605 7602 2 6 7381 6843 7383 7384 7605 7606 2 6 7382 6843 7384 6847 6845 6844 2 6 7382 7383 6847 7385 7606 7607 2 6 7384 6847 6848 7386 7607 7392 2 6 7385 6848 7387 7388 7391 7392 2 6 7386 6848 6849 6850 6851 7388 2 6 7387 6851 6854 7389 7391 7386 2 6 7388 6854 6855 6859 7390 7391 2 6 7389 6859 7391 7396 7393 7397 2 6 7389 7390 7388 7386 7392 7393 2 6 7386 7391 7393 7394 7607 7385 2 6 7392 7391 7394 7395 7396 7390 2 6 7392 7393 7395 7607 7608 7611 2 6 7394 7393 7396 7611 7612 7622 2 6 7395 7393 7390 7397 7622 7623 2 6 7396 7390 6859 6860 7398 7623 2 5 7397 6860 7399 7623 7624 2 6 7398 6860 6861 7400 7624 7625 2 7 7399 6861 6862 6865 7401 7625 7626 2 6 7400 6865 6867 7402 7403 7626 2 6 7401 6867 7403 7404 7405 6869 2 6 7401 7402 7404 7626 7627 7628 2 6 7403 7402 7405 7408 7628 7629 2 6 7404 7402 6869 7406 7407 7408 2 6 7405 6869 7407 7411 7412 6870 2 6 7405 7406 7408 7409 7410 7411 2 6 7405 7407 7404 7409 7632 7629 2 6 7408 7407 7410 7632 7633 7634 2 6 7409 7407 7411 7634 7635 7642 2 6 7410 7407 7406 7412 7642 7643 2 6 7411 7406 6870 7413 7414 7643 2 6 7412 6870 7414 7415 7416 6871 2 6 7412 7413 7415 7643 7644 7645 2 6 7414 7413 7416 7417 7645 7646 2 6 7415 7413 7417 7418 7419 6871 2 6 7415 7416 7418 7420 7421 7646 2 7 7417 7416 7419 6874 6876 6884 7420 2 5 7418 7416 6871 6872 6874 2 6 7418 6884 7417 7421 7422 7426 2 6 7417 7420 7422 7423 7646 7647 2 6 7421 7420 7423 7424 7425 7426 1 6 7421 7422 7424 7647 7648 7649 1 6 7423 7422 7425 7649 7650 7651 2 6 7424 7422 7426 7651 7652 7427 2 6 7425 7422 7420 6884 6885 7427 2 6 7426 6885 7428 7652 7425 7653 2 6 7427 6885 6886 7429 7653 7654 2 6 7428 6886 6887 7430 7431 7654 2 6 7429 6887 6888 7431 7432 7433 2 6 7429 7430 7432 6897 7434 7654 2 6 7431 7430 7433 6893 6894 6897 2 6 7432 7430 6888 6890 6891 6893 2 6 7431 6897 6898 7435 7655 7654 2 6 7434 6898 7436 7655 7656 7660 1 6 7435 6898 6899 7437 7660 7438 1 6 7436 6899 6900 6904 6905 7438 1 6 7437 6905 7439 7660 7436 7661 1 6 7438 6905 6906 7440 7441 7661 1 6 7439 6906 6907 7262 7441 7442 1 6 7439 7440 7442 7661 7662 7663 1 6 7441 7440 7262 7443 7663 7664 1 6 7442 7262 7263 7444 7664 7665 1 6 7443 7263 7264 7445 7665 7666 1 6 7444 7264 7265 7446 7447 7666 1 6 7445 7265 7447 7448 7449 7266 1 6 7445 7446 7448 7668 7666 7671 1 6 7447 7446 7449 7671 7676 7673 1 6 7448 7446 7266 7267 7450 7676 1 6 7449 7267 7268 7451 7676 7677 1 6 7450 7268 7452 7677 7678 7682 1 6 7451 7268 7269 7270 7453 7682 1 6 7452 7270 7271 7273 7454 7682 1 6 7453 7273 7455 7682 7681 7683 1 6 7454 7273 7274 7456 7686 7683 1 6 7455 7274 7275 7457 7686 7687 1 6 7456 7275 7276 7458 7687 7688 1 6 7457 7276 7277 7459 7688 7461 1 6 7458 7277 7278 7280 7460 7461 1 6 7459 7280 7461 7462 7463 7464 1 6 7459 7460 7462 7688 7458 7484 1 7 7461 7460 7463 7483 7068 7069 7484 1 6 7462 7460 7464 7483 7482 7465 1 6 7463 7460 7280 7281 7282 7465 1 6 7464 7282 7466 7482 7463 7494 1 6 7465 7282 7283 7284 7467 7494 1 6 7466 7284 7468 7494 7495 7496 1 6 7467 7284 7285 7286 7469 7496 1 6 7468 7286 7288 7289 7470 7496 1 6 7469 7289 7471 7496 7497 7498 1 6 7470 7289 7290 7472 7498 7475 1 6 7471 7290 7291 7292 7473 7475 1 5 7472 7292 7474 7306 7475 1 7 7473 7292 7293 7299 7300 7305 7306 1 7 7473 7306 7307 7476 7498 7471 7472 1 5 7475 7307 7059 7477 7498 1 6 7476 7059 7060 7478 7497 7498 1 7 7477 7060 7479 7480 7497 7495 7499 1 6 7478 7060 7061 7064 7065 7480 1 6 7478 7479 7065 7481 7482 7499 1 6 7480 7065 7482 7483 7068 7066 1 7 7480 7481 7483 7463 7465 7494 7499 1 5 7482 7481 7068 7462 7463 1 5 7462 7069 7485 7688 7461 1 6 7484 7069 7070 7486 7687 7688 1 6 7485 7070 7487 7686 7687 7685 1 7 7486 7070 7071 7072 7488 7489 7685 1 6 7487 7072 7489 7490 7491 7492 1 5 7487 7488 7490 7685 7684 1 6 7489 7488 7491 7684 7689 7690 1 6 7490 7488 7492 7493 7690 7691 1 6 7491 7488 7493 7074 7073 7072 1 6 7491 7492 7074 7075 7691 7079 1 6 7482 7465 7466 7467 7495 7499 1 6 7494 7467 7496 7497 7478 7499 1 6 7495 7467 7468 7469 7470 7497 1 6 7496 7470 7498 7477 7478 7495 1 6 7497 7470 7471 7477 7476 7475 1 5 7495 7478 7480 7482 7494 1 6 427 5612 5613 7501 7502 9768 1 6 7500 5613 7502 7503 7504 7505 1 6 7500 7501 7503 9768 9769 9770 1 6 7502 7501 7504 6474 9770 9780 1 5 7503 7501 6474 6472 7505 1 7 6472 7504 7501 5613 5614 7506 6470 1 5 7505 5614 7507 6469 6470 1 6 7506 5614 5615 7508 7509 6469 1 6 7507 5615 7509 7510 9734 4518 1 5 7507 7508 7510 6469 6468 1 6 7509 7508 6468 9732 9733 9734 1 6 7249 7250 7252 7512 7513 7968 1 6 7511 7252 7513 7514 7515 7516 1 6 7511 7512 7514 7968 7969 7970 1 6 7513 7512 7515 7970 7971 7972 1 6 7514 7512 7516 7517 7518 7972 1 6 7515 7512 7252 7517 9775 7253 1 6 7515 7516 7518 7519 7520 9775 1 6 7515 7517 7519 7972 7973 7977 1 6 7518 7517 7520 7521 7977 7978 1 6 7519 7517 7521 7522 7523 9775 1 6 7519 7520 7522 7989 7978 7526 1 6 7521 7520 7523 7524 7525 7526 1 6 7522 7520 7524 7256 7257 9775 1 6 7522 7523 7525 7260 7529 7257 1 6 7522 7524 7526 7527 7528 7529 1 6 7522 7525 7527 7989 7521 7990 1 6 7526 7525 7528 7990 7546 7545 1 6 7527 7525 7529 7530 7531 7545 1 6 7528 7525 7530 7261 7260 7524 1 6 7528 7529 7261 7531 7532 7129 1 7 7528 7530 7532 7132 7533 7543 7545 1 5 7531 7530 7129 7130 7132 1 6 7531 7132 7133 7534 7544 7543 1 6 7533 7133 7535 7151 7537 7544 1 6 7534 7133 7134 7536 7150 7151 1 6 7535 7134 7136 7137 7139 7150 1 6 7534 7151 7152 7155 7538 7544 1 6 7537 7155 7157 7539 7540 7544 1 6 7538 7157 7540 7541 7553 7554 1 6 7538 7539 7541 7542 7543 7544 1 6 7540 7539 7542 7547 7553 7550 1 6 7540 7541 7543 7545 7546 7547 1 6 7540 7542 7544 7533 7531 7545 1 6 7540 7543 7533 7534 7537 7538 1 6 7531 7543 7542 7546 7527 7528 1 6 7545 7542 7547 7548 7990 7527 1 6 7546 7542 7541 7548 7549 7550 1 6 7546 7547 7549 7990 7989 7991 1 6 7548 7547 7550 7551 7991 7992 1 6 7549 7547 7551 7552 7553 7541 1 6 7549 7550 7552 7992 7994 7995 1 7 7551 7550 7553 7557 7556 7558 7995 1 6 7552 7550 7541 7539 7554 7557 1 6 7553 7539 7157 7158 7555 7557 1 6 7554 7158 7160 7167 7556 7557 1 7 7555 7167 7557 7552 7558 7559 7560 1 5 7555 7556 7554 7553 7552 2 5 7552 7556 7559 7995 7996 2 7 7558 7556 7560 7996 7999 7566 7561 1 5 7559 7556 7167 7168 7561 2 6 7560 7168 7562 7565 7566 7559 2 6 7561 7168 7169 7170 7563 7565 2 6 7562 7170 7564 7176 7565 7568 2 5 7563 7170 7171 7173 7176 2 6 7562 7563 7561 7566 7567 7568 2 6 7561 7565 7567 7999 7559 8000 2 6 7566 7565 7568 7569 7570 8000 2 5 7567 7565 7563 7176 7569 2 6 7568 7176 7567 7570 7180 7177 2 6 7567 7569 7180 7571 8000 8001 2 6 7570 7180 7181 7572 8001 8002 2 6 7571 7181 7573 7574 8002 8003 2 6 7572 7181 7574 7575 7183 7182 2 6 7572 7573 7575 7576 7577 8003 2 6 7574 7573 7183 7187 7189 7576 2 6 7575 7189 7574 7577 7578 7579 2 6 7574 7576 7578 8003 8004 8005 2 6 7577 7576 7579 8005 8006 8007 2 6 7578 7576 7189 7190 7580 8007 2 6 7579 7190 7193 7581 8007 8008 2 6 7580 7193 7195 7582 8008 8009 2 6 7581 7195 7583 7585 8012 8009 2 6 7582 7195 7196 3196 7584 7585 2 6 7583 3196 3186 7585 7586 3187 2 6 7583 7584 7586 7587 7582 8012 2 6 7585 7584 7587 7588 3958 3187 2 6 7585 7586 7588 7729 8013 8012 2 6 7587 7586 3958 3960 7589 7729 2 6 7588 3960 7590 7729 7730 7731 2 6 7589 3960 3961 7591 7731 7732 2 6 7590 3961 7592 7738 7732 7739 2 6 7591 3961 2890 2891 7593 7739 2 6 7592 2891 7594 7595 7739 7740 2 6 7593 2891 7595 7596 7597 2892 2 6 7593 7594 7596 7740 7741 7745 2 6 7595 7594 7597 7598 7745 7746 2 6 7596 7594 7598 7599 7600 2892 2 6 7596 7597 7599 4089 7746 7751 2 5 7598 7597 7600 4089 4086 2 6 7599 7597 4086 2880 2879 2892 2 7 7378 7379 7380 7602 7603 7917 7918 2 6 7601 7380 7603 7604 7605 7381 2 6 7601 7602 7604 7926 7920 7918 2 5 7603 7602 7605 7926 7927 2 7 7604 7602 7381 7382 7606 7609 7927 2 6 7605 7382 7384 7607 7608 7609 2 6 7606 7384 7385 7392 7394 7608 2 6 7607 7394 7606 7609 7610 7611 2 6 7606 7608 7610 7929 7927 7605 2 6 7609 7608 7611 7613 7616 7929 2 6 7610 7608 7394 7395 7612 7613 2 6 7611 7395 7613 7614 7621 7622 2 6 7611 7612 7614 7615 7616 7610 2 6 7613 7612 7615 7619 7620 7621 2 6 7613 7614 7616 7617 7618 7619 2 6 7613 7615 7617 8157 7929 7610 2 6 7616 7615 7618 8155 8157 8156 2 6 7617 7615 7619 8156 8158 8159 2 6 7618 7615 7614 7620 8159 8160 2 6 7619 7614 7621 8160 8161 8162 2 6 7620 7614 7612 7622 8162 8163 2 6 7621 7612 7395 7396 7623 8163 2 6 7622 7396 7397 7398 7624 8163 2 6 7623 7398 7399 7625 8163 8164 2 6 7624 7399 7400 7626 8164 7627 2 5 7625 7400 7401 7403 7627 2 6 7626 7403 7628 8164 7625 8165 2 6 7627 7403 7404 7629 7630 8165 2 6 7628 7404 7630 7631 7632 7408 2 6 7628 7629 7631 8165 8166 8167 2 6 7630 7629 7632 8170 8167 8171 2 6 7631 7629 7408 7409 7633 8171 2 6 7632 7409 7634 8173 8171 8174 2 6 7633 7409 7410 7635 7636 8174 2 6 7634 7410 7636 7637 7641 7642 2 6 7634 7635 7637 7638 8174 8175 2 6 7636 7635 7638 7639 7640 7641 2 6 7636 7637 7639 8175 8176 8177 2 6 7638 7637 7640 8177 8178 8179 2 6 7639 7637 7641 8179 8180 8181 2 6 7640 7637 7635 7642 8181 8182 2 6 7641 7635 7410 7411 7643 8182 2 6 7642 7411 7412 7414 7644 8182 2 6 7643 7414 7645 8183 8182 8184 2 6 7644 7414 7415 7646 8184 8185 2 6 7645 7415 7417 7421 7647 8185 1 6 7646 7421 7423 7648 8185 8186 1 6 7647 7423 7649 8186 8187 8188 1 6 7648 7423 7424 7650 8188 8189 1 6 7649 7424 7651 8189 8190 8191 1 6 7650 7424 7425 7652 8191 8192 2 6 7651 7425 7427 7653 8192 7657 2 6 7652 7427 7428 7654 7655 7657 2 6 7653 7428 7429 7655 7434 7431 2 6 7653 7654 7434 7435 7656 7657 2 6 7655 7435 7657 7658 7659 7660 2 6 7655 7656 7658 8192 7652 7653 1 6 7657 7656 7659 8192 8193 8194 1 6 7658 7656 7660 8194 7662 7661 1 6 7659 7656 7435 7436 7438 7661 1 6 7660 7438 7439 7441 7662 7659 1 6 7661 7441 7663 8194 7659 8195 1 6 7662 7441 7442 7664 8208 8195 1 6 7663 7442 7443 7665 8208 8207 1 6 7664 7443 7444 7666 7667 8207 1 6 7665 7444 7667 7668 7447 7445 1 6 7665 7666 7668 7669 8206 8207 1 6 7667 7666 7447 7669 7670 7671 1 6 7667 7668 7670 7698 8206 9790 1 6 7669 7668 7671 7672 7695 9790 1 6 7670 7668 7447 7448 7672 7673 1 6 7670 7671 7673 7674 7695 7694 1 6 7672 7671 7674 7675 7676 7448 1 7 7672 7673 7675 7693 7225 7226 7694 1 6 7674 7673 7676 7677 7679 7693 1 6 7675 7673 7448 7449 7450 7677 1 6 7676 7450 7451 7678 7679 7675 1 6 7677 7451 7679 7680 7681 7682 1 7 7677 7678 7680 7675 7693 7692 7689 1 5 7679 7678 7681 7689 7684 1 6 7680 7678 7682 7454 7683 7684 1 6 7681 7678 7451 7452 7453 7454 1 6 7681 7454 7684 7685 7686 7455 1 7 7681 7683 7685 7489 7490 7689 7680 1 6 7684 7683 7686 7486 7487 7489 1 6 7685 7683 7455 7456 7687 7486 1 6 7686 7456 7457 7486 7485 7688 1 6 7485 7687 7457 7458 7461 7484 1 6 7684 7490 7690 7692 7679 7680 1 6 7689 7490 7491 7691 7224 7692 1 6 7690 7491 7493 7079 7080 7224 1 6 7690 7224 7225 7693 7679 7689 1 5 7692 7225 7674 7675 7679 1 5 7674 7226 7227 7695 7672 1 7 7694 7227 7228 7696 7670 7672 9790 1 6 7695 7228 7230 7697 7698 9790 1 6 7696 7230 7698 7699 7700 7701 1 6 7696 7697 7699 8206 7669 9790 1 6 7698 7697 7700 8205 8203 8206 1 6 7699 7697 7701 8318 8205 7707 1 6 7700 7697 7230 7231 7702 7707 1 6 7701 7231 7703 7704 7705 7707 1 6 7702 7231 7704 7234 7233 7232 1 6 7702 7703 7705 7706 7718 7234 1 6 7702 7704 7706 7707 7708 7709 1 6 7705 7704 7709 7710 7711 7718 1 6 7702 7705 7708 8318 7700 7701 1 6 7707 7705 7709 8318 8481 8317 1 6 7708 7705 7706 7710 8481 8482 1 6 7709 7706 7711 7712 7713 8482 1 6 7710 7706 7712 7716 7717 7718 1 6 7710 7711 7713 7714 7715 7716 1 6 7710 7712 7714 8482 8483 8484 1 6 7713 7712 7715 8484 9765 8486 1 6 7714 7712 7716 9765 7723 9767 1 6 7715 7712 7711 7717 9767 7719 1 6 7716 7711 7718 7235 7236 7719 1 6 7717 7711 7706 7704 7234 7235 1 6 7717 7236 7720 9767 7716 7721 1 6 7719 7236 7237 7238 7240 7721 1 6 7720 7240 7722 7723 9767 7719 1 6 7721 7240 7241 7723 7724 7725 1 7 7721 7722 7724 7726 9765 7715 9767 1 6 7723 7722 7725 7726 7727 7728 1 6 7724 7722 7728 7245 7242 7241 1 6 7723 7724 7727 7962 9765 9764 1 6 7726 7724 7728 7962 7963 7964 1 6 7727 7724 7725 7245 7964 7246 2 6 7587 7588 7589 7730 8013 8014 2 6 7729 7589 7731 8014 8015 7734 2 6 7730 7589 7590 7732 7733 7734 2 6 7731 7590 7733 7737 7738 7591 2 6 7731 7732 7734 7735 7736 7737 2 6 7731 7733 7735 8015 7730 8016 2 6 7734 7733 7736 8016 8017 8018 2 6 7735 7733 7737 8018 8019 8020 2 6 7736 7733 7732 7738 8020 8021 2 6 7737 7732 7591 7739 9766 8021 2 6 7738 7591 7592 7593 7740 9766 2 6 7739 7593 7595 7741 7742 9766 2 6 7740 7595 7742 7743 7744 7745 2 6 7740 7741 7743 8025 8023 9766 2 6 7742 7741 7744 8025 8026 8027 2 6 7743 7741 7745 7747 7748 8027 2 6 7744 7741 7595 7596 7746 7747 2 6 7745 7596 7598 7747 7750 7751 2 6 7745 7746 7744 7748 7749 7750 2 6 7744 7747 7749 8027 8031 8032 2 6 7748 7747 7750 8032 8036 7759 2 6 7749 7747 7746 7751 7752 7759 2 7 7750 7746 7598 4089 4090 7752 7753 2 7 7750 7751 7753 4379 7754 7758 7759 2 4 7752 7751 4090 4379 2 5 7752 4379 4380 7755 7758 2 6 7754 4380 4382 7756 7757 7758 2 6 7755 4382 7757 7762 7763 7764 2 6 7755 7756 7758 7760 7761 7762 2 6 7755 7757 7754 7752 7759 7760 2 6 7752 7758 7760 8036 7749 7750 2 5 7759 7758 7757 7761 8036 2 7 7760 7757 7762 8036 8640 8635 8035 2 7 7761 7757 7756 7763 8852 8639 8640 2 6 7762 7756 7764 7765 8852 8853 2 6 7763 7756 4382 4383 4389 7765 2 6 7763 7764 4389 7766 8319 8853 2 6 7765 4389 4390 7767 8319 8320 2 6 7766 4390 3142 7768 7769 8320 2 6 7767 3142 7769 7770 7774 3143 2 6 7767 7768 7770 7771 8322 8320 2 6 7769 7768 7771 7772 7773 7774 2 6 7769 7770 7772 8322 8323 8324 2 6 7771 7770 7773 8324 8325 7777 2 6 7772 7770 7774 7775 7776 7777 2 6 7773 7770 7768 3143 3144 7775 2 6 7774 3144 7773 7776 3145 9791 2 6 7773 7775 7777 7778 3414 9791 2 6 7773 7776 7778 8325 7772 8326 2 6 7777 7776 3414 3415 7779 8326 2 6 7778 3415 5382 5384 7780 8326 2 6 7779 5384 5386 7781 8326 8327 2 6 7780 5386 5388 7782 8329 8327 2 6 7781 5388 5616 7783 8329 8330 2 6 7782 5616 7784 8330 8331 8332 2 6 7783 5616 5617 7785 8037 8332 2 6 7784 5617 7786 7787 8037 8038 2 6 7785 5617 5618 7787 7788 7789 2 6 7785 7786 7788 8038 8039 8040 2 6 7787 7786 7789 8045 8040 7794 2 6 7788 7786 5618 5619 7790 7794 2 6 7789 5619 7791 7792 7793 7794 2 6 7790 5619 7792 3779 3778 5620 2 6 7790 7791 7793 7797 7798 3779 2 6 7790 7792 7794 7795 7796 7797 2 6 7790 7793 7795 8045 7788 7789 2 6 7794 7793 7796 8045 8046 8047 2 6 7795 7793 7797 8048 8047 8049 2 6 7796 7793 7792 7798 8049 7799 2 6 7797 7792 3779 3780 3783 7799 2 6 7798 3783 3784 7800 8049 7797 2 6 7799 3784 3785 3788 7801 8049 2 6 7800 3788 3790 7802 8048 8049 2 6 7801 3790 3791 3793 7803 8048 2 6 7802 3793 7804 7806 8047 8048 2 6 7803 3793 3794 7805 7806 7807 2 6 7804 3794 7807 7808 7809 3795 2 6 7803 7804 7807 8046 8047 8343 2 6 7806 7804 7805 7808 8344 8343 2 6 7807 7805 7809 8344 8345 7930 2 6 7808 7805 3795 3796 7810 7930 1 6 7809 3796 3952 7811 7930 7931 1 6 7810 3952 7812 7931 7932 7936 1 6 7811 3952 3953 7813 7936 7937 1 6 7812 3953 3954 7814 7937 7938 1 6 7813 3954 7815 7938 7939 7816 1 6 7814 3954 3955 3956 4238 7816 1 6 7815 4238 4503 7817 7939 7814 1 6 7816 4503 4504 7818 7939 7940 1 6 7817 4504 7819 7940 7941 7942 1 6 7818 4504 4505 7820 7942 7943 1 6 7819 4505 4506 4507 7821 7943 1 6 7820 4507 7822 7943 7944 7945 1 6 7821 4507 4508 7823 7945 7946 1 6 7822 4508 4509 7824 7946 7947 1 6 7823 4509 7825 7826 7947 7948 1 6 7824 4509 4510 7826 7827 7828 1 6 7824 7825 7827 7948 7949 7950 1 6 7826 7825 7828 7950 7951 7952 1 6 7827 7825 4510 4419 7829 7952 1 6 7828 4419 4247 7830 7952 7832 1 6 7829 4247 4248 4739 7831 7832 1 6 7830 4739 5003 7832 7833 7834 1 6 7830 7831 7833 7952 7829 7953 1 6 7832 7831 7834 7953 7954 7955 1 6 7833 7831 5003 5004 7835 7955 1 6 7834 5004 5005 7836 7955 7956 1 6 7835 5005 7837 7956 7957 7958 1 6 7836 5005 4750 4751 7838 7958 1 6 7837 4751 4757 7839 7958 7959 1 6 7838 4757 7840 7959 7960 7846 1 6 7839 4757 4758 7841 7846 7961 1 6 7840 4758 4661 4662 7842 7961 1 6 7841 4662 4663 4689 7843 7961 1 6 7842 4689 4690 7844 7961 7845 1 6 7843 4690 4691 5158 5159 7845 1 5 7844 5159 7846 7961 7843 1 7 7845 5159 7847 7960 7839 7840 7961 1 6 7846 5159 5160 7848 8082 7960 1 6 7847 5160 5161 7849 8082 8083 1 6 7848 5161 5162 7850 8083 8084 1 6 7849 5162 7851 8084 8085 8086 1 6 7850 5162 5163 5164 7852 8086 1 6 7851 5164 7853 8086 8087 8088 1 6 7852 5164 5165 7854 8088 8089 1 7 7853 5165 4700 4701 4702 7855 8089 1 5 7854 4702 7308 7856 8089 1 7 7855 7308 7309 7857 8089 8090 8091 1 7 7856 7309 7310 7858 8091 8092 8093 1 6 7857 7310 7311 7859 8093 8094 1 6 7858 7311 7312 7313 7860 8094 1 6 7859 7313 7861 8094 8095 8096 1 6 7860 7313 7314 7862 8096 8097 1 6 7861 7314 7315 7863 8097 8098 1 6 7862 7315 7316 7864 8098 8099 1 6 7863 7316 7317 7865 8099 8100 1 6 7864 7317 7318 7866 8100 8101 1 6 7865 7318 7319 7867 8101 8102 1 6 7866 7319 7320 7321 7868 8102 1 6 7867 7321 7869 8102 8103 8104 1 6 7868 7321 7322 7870 8104 8105 1 6 7869 7322 7323 7324 7871 8105 1 6 7870 7324 7872 8105 8106 8107 1 6 7871 7324 7325 7873 8107 8108 1 6 7872 7325 7326 7327 7874 8108 1 6 7873 7327 7875 8108 8109 8110 1 6 7874 7327 7328 7329 7876 8110 1 6 7875 7329 7877 8110 8111 8112 1 6 7876 7329 7330 7331 7878 8112 1 6 7877 7331 7332 7879 8112 8113 1 6 7878 7332 7880 8113 8114 8115 1 6 7879 7332 7333 7334 7881 8115 1 6 7880 7334 7335 7336 7882 8115 1 6 7881 7336 7337 7883 8115 8116 1 7 7882 7337 7338 7884 8116 8117 8118 1 6 7883 7338 7339 7885 8118 8119 1 6 7884 7339 7340 7886 8119 8120 1 6 7885 7340 7341 7887 8120 8121 1 6 7886 7341 7888 8121 8122 8123 1 6 7887 7341 7342 7343 7889 8123 1 6 7888 7343 7344 7890 8123 8124 1 6 7889 7344 7345 7891 8124 8125 1 6 7890 7345 7346 7892 8125 8126 1 6 7891 7346 7347 7893 8126 8127 1 6 7892 7347 7348 7894 8127 8128 1 6 7893 7348 7895 8128 8129 8130 1 6 7894 7348 7349 7350 7896 8130 1 6 7895 7350 7351 7897 8130 8131 1 7 7896 7351 7352 7353 7898 8131 8132 1 5 7897 7353 7899 8132 8133 1 7 7898 7353 7354 7355 7900 8133 8134 2 6 7899 7355 7901 8134 8135 8136 2 5 7900 7355 7356 7902 8136 2 7 7901 7356 7903 8136 8137 8138 7904 2 5 7902 7356 7357 7358 7904 2 6 7903 7358 7905 8138 7902 8139 2 6 7904 7358 7359 7361 7906 8139 2 6 7905 7361 7907 8139 8140 8141 2 6 7906 7361 7362 7363 7908 8141 2 6 7907 7363 7909 8141 8142 8143 2 6 7908 7363 7364 7365 7910 8143 2 6 7909 7365 7371 7911 8143 8144 2 6 7910 7371 7912 8144 8145 8146 2 5 7911 7371 7372 7913 8146 2 7 7912 7372 7373 7914 8146 8147 8148 2 6 7913 7373 7915 8148 8149 8150 2 6 7914 7373 7374 7376 7916 8150 2 6 7915 7376 7917 7918 7919 8150 2 6 7916 7376 7377 7378 7601 7918 2 6 7917 7601 7916 7919 7920 7603 2 6 7916 7918 7920 7921 7922 8150 2 6 7919 7918 7921 7925 7926 7603 2 6 7919 7920 7922 7923 7924 7925 2 6 7919 7921 7923 8150 8151 8149 2 6 7922 7921 7924 8151 8152 8153 2 6 7923 7921 7925 8153 8154 8155 2 6 7924 7921 7920 7926 8155 7928 2 6 7925 7920 7603 7604 7927 7928 2 6 7926 7604 7928 7929 7609 7605 2 6 7926 7927 7929 8155 7925 8157 2 6 7928 7927 7609 8157 7616 7610 2 6 7809 7810 7931 8050 8345 7808 1 6 7930 7810 7811 7932 7933 8050 1 6 7931 7811 7933 7934 7935 7936 1 6 7931 7932 7934 8050 8051 8052 1 6 7933 7932 7935 8052 8053 8057 1 6 7934 7932 7936 8059 8057 8060 1 6 7935 7932 7811 7812 7937 8060 1 6 7936 7812 7813 7938 8060 8061 1 6 7937 7813 7814 7939 8061 8062 1 6 7938 7814 7816 7817 7940 8062 1 6 7939 7817 7818 7941 8062 8063 1 6 7940 7818 7942 8063 8064 8065 1 6 7941 7818 7819 7943 8065 8066 1 6 7942 7819 7820 7821 7944 8066 1 6 7943 7821 7945 8066 8067 8068 1 6 7944 7821 7822 7946 8068 8069 1 6 7945 7822 7823 7947 8069 8070 1 6 7946 7823 7824 7948 8070 8071 1 6 7947 7824 7826 7949 8071 8072 1 6 7948 7826 7950 8072 8073 8074 1 6 7949 7826 7827 7951 8074 8075 1 6 7950 7827 7952 8075 8076 7953 1 6 7951 7827 7828 7829 7832 7953 1 6 7952 7832 7833 7954 8076 7951 1 6 7953 7833 7955 8076 8077 8078 1 6 7954 7833 7834 7835 7956 8078 1 6 7955 7835 7836 7957 8078 8079 1 6 7956 7836 7958 8079 8080 8081 1 6 7957 7836 7837 7838 7959 8081 1 6 7958 7838 7839 7960 8081 8082 1 5 7959 7839 7846 8082 7847 1 6 7846 7840 7841 7842 7843 7845 1 6 7726 7727 7963 8466 8468 9764 1 6 7962 7727 7964 8466 8487 8488 1 6 7963 7727 7728 7246 7965 8488 1 6 7964 7246 7247 7966 8488 8489 1 6 7965 7247 7248 7967 8489 8490 1 6 7966 7248 7249 7968 8490 8491 1 6 7967 7249 7511 7513 7969 8491 2 6 7968 7513 7970 8493 8491 8494 2 6 7969 7513 7514 7971 8494 8495 2 6 7970 7514 7972 8495 8496 7974 1 6 7971 7514 7515 7518 7973 7974 1 6 7972 7518 7974 7975 7976 7977 2 6 7972 7973 7975 8496 7971 8497 2 6 7974 7973 7976 8500 8497 7981 2 6 7975 7973 7977 7979 7980 7981 1 6 7976 7973 7518 7519 7978 7979 1 6 7977 7519 7979 7988 7989 7521 1 6 7977 7978 7976 7980 7987 7988 2 6 7976 7979 7981 7982 7986 7987 2 6 7976 7980 7982 7983 8500 7975 2 6 7981 7980 7983 7984 7985 7986 2 6 7981 7982 7984 8500 8501 8502 2 6 7983 7982 7985 8502 8503 8504 2 6 7984 7982 7986 8504 8505 8506 2 6 7985 7982 7980 7987 8506 7993 1 7 7986 7980 7979 7988 7991 7992 7993 1 5 7987 7979 7978 7989 7991 1 7 7988 7978 7521 7526 7990 7548 7991 1 5 7989 7526 7527 7546 7548 1 6 7989 7548 7549 7992 7987 7988 1 6 7991 7549 7551 7987 7993 7994 2 6 7987 7992 7994 8506 7986 8507 2 6 7993 7992 7551 8507 7997 7995 2 6 7551 7552 7558 7996 7997 7994 2 6 7995 7558 7559 7997 7998 7999 2 6 7995 7996 7998 8507 7994 8508 2 6 7997 7996 7999 8508 8509 8510 2 6 7998 7996 7559 7566 8000 8510 2 6 7999 7566 7567 7570 8001 8510 2 7 8000 7570 7571 8002 8510 8522 8511 2 6 8001 7571 7572 8003 8522 8523 2 7 8002 7572 7574 7577 8004 8520 8523 2 7 8003 7577 8005 8519 8517 8520 8541 2 5 8004 7577 7578 8006 8541 2 6 8005 7578 8007 8610 8540 8541 2 6 8006 7578 7579 7580 8008 8610 2 6 8007 7580 7581 8009 8010 8610 2 6 8008 7581 8010 8011 8012 7582 2 8 8008 8009 8011 8609 8537 8538 8540 8610 2 5 8010 8009 8012 8013 8609 2 6 8011 8009 8013 7587 7582 7585 2 7 8011 8012 7587 7729 8014 8608 8609 2 6 8013 7729 7730 8015 8607 8608 2 6 8014 7730 7734 8016 8611 8607 2 6 8015 7734 7735 8017 8611 8612 2 6 8016 7735 8018 8612 8613 8614 2 6 8017 7735 7736 8019 8614 8615 2 6 8018 7736 8020 8615 8618 8619 2 6 8019 7736 7737 8021 8022 8619 2 6 8020 7737 8022 8023 9766 7738 2 6 8020 8021 8023 8024 8619 8620 2 6 8022 8021 8024 8025 7742 9766 2 6 8022 8023 8025 8620 8621 8028 2 6 8024 8023 7742 7743 8026 8028 2 6 8025 7743 8027 8028 8029 8030 2 6 8026 7743 7744 7748 8030 8031 2 6 8025 8026 8029 8621 8024 8622 2 6 8028 8026 8030 8628 8622 8629 2 6 8029 8026 8027 8031 8033 8629 2 6 8030 8027 7748 8032 8033 8034 2 6 8031 7748 7749 8034 8035 8036 2 6 8030 8031 8034 8629 8630 8631 2 6 8033 8031 8032 8035 8631 8632 2 6 8034 8032 8036 7761 8635 8632 2 6 8035 8032 7749 7759 7760 7761 2 6 7784 7785 8038 8332 8333 8334 2 6 8037 7785 7787 8039 8041 8334 2 6 8038 7787 8040 8041 8042 8043 2 6 8039 7787 8043 8044 8045 7788 2 6 8038 8039 8042 8334 8335 8336 2 6 8041 8039 8043 8336 8337 8341 2 6 8042 8039 8040 8044 8341 8342 2 6 8043 8040 8045 8342 8343 8046 2 6 8044 8040 7788 7794 7795 8046 2 6 8045 7795 8047 7806 8343 8044 2 6 8046 7795 7806 7803 8048 7796 2 6 7803 8047 7796 7802 7801 8049 2 6 7801 8048 7796 7797 7799 7800 2 6 7930 7931 7933 8051 8345 8346 2 6 8050 7933 8052 8346 8347 8348 1 6 8051 7933 7934 8053 8054 8348 1 6 8052 7934 8054 8055 8056 8057 2 6 8052 8053 8055 8348 8349 8350 2 6 8054 8053 8056 8350 8351 8352 1 6 8055 8053 8057 8058 8352 8353 1 6 8056 8053 8058 8059 7935 7934 1 6 8056 8057 8059 8353 8354 8355 1 6 8058 8057 7935 8060 8355 8356 1 6 8059 7935 7936 7937 8061 8356 1 6 8060 7937 7938 8062 8356 8358 1 6 8061 7938 7939 7940 8063 8358 1 6 8062 7940 7941 8064 8359 8358 1 6 8063 7941 8065 8359 8360 8361 1 6 8064 7941 7942 8066 8361 8362 1 6 8065 7942 7943 7944 8067 8362 1 6 8066 7944 8068 8362 8363 8364 1 6 8067 7944 7945 8069 8364 8365 1 6 8068 7945 7946 8070 8365 8366 1 6 8069 7946 7947 8071 8366 8367 1 6 8070 7947 7948 8072 8367 8368 1 6 8071 7948 7949 8073 8368 8369 1 6 8072 7949 8074 8369 8370 8371 1 6 8073 7949 7950 8075 8371 8372 1 6 8074 7950 7951 8076 8372 8373 1 6 8075 7951 7953 7954 8077 8373 1 6 8076 7954 8078 8375 8373 8376 1 6 8077 7954 7955 7956 8079 8376 1 6 8078 7956 7957 8080 8376 8377 1 6 8079 7957 8081 8209 8377 8378 1 6 8080 7957 7958 7959 8082 8209 1 7 8081 7959 7960 7847 7848 8083 8209 1 6 8082 7848 7849 8084 8209 8210 1 6 8083 7849 7850 8085 8210 8211 1 6 8084 7850 8086 8211 8212 8213 1 6 8085 7850 7851 7852 8087 8213 1 6 8086 7852 8088 8213 8214 8215 1 6 8087 7852 7853 8089 8215 8090 1 6 8088 7853 7854 7855 7856 8090 1 5 8089 7856 8091 8215 8088 1 7 8090 7856 7857 8092 8215 8216 8217 1 5 8091 7857 8093 8217 8218 1 6 8092 7857 7858 8094 8218 8219 1 6 8093 7858 7859 7860 8095 8219 1 6 8094 7860 8096 8219 8220 8221 1 6 8095 7860 7861 8097 8221 8222 1 6 8096 7861 7862 8098 8222 8223 1 6 8097 7862 7863 8099 8223 8224 1 6 8098 7863 7864 8100 8224 8225 1 6 8099 7864 7865 8101 8225 8226 1 6 8100 7865 7866 8102 8226 8227 1 6 8101 7866 7867 7868 8103 8227 1 6 8102 7868 8104 8227 8228 8229 1 6 8103 7868 7869 8105 8229 8230 1 6 8104 7869 7870 7871 8106 8230 1 6 8105 7871 8107 8230 8231 8232 1 6 8106 7871 7872 8108 8232 8233 1 6 8107 7872 7873 7874 8109 8233 1 6 8108 7874 8110 8233 8234 8235 1 6 8109 7874 7875 7876 8111 8235 1 6 8110 7876 8112 8235 8236 8237 1 6 8111 7876 7877 7878 8113 8237 1 6 8112 7878 7879 8114 8237 8238 1 6 8113 7879 8115 8238 8239 8116 1 6 8114 7879 7880 7881 7882 8116 1 6 8115 7882 7883 8117 8239 8114 1 6 8116 7883 8118 8239 8240 8241 1 5 8117 7883 7884 8119 8241 1 6 8118 7884 7885 8120 8241 8242 1 6 8119 7885 7886 8121 8242 8243 1 6 8120 7886 7887 8122 8243 8244 1 6 8121 7887 8123 8244 8245 8246 1 6 8122 7887 7888 7889 8124 8246 1 6 8123 7889 7890 8125 8246 8247 1 6 8124 7890 7891 8126 8247 8248 1 6 8125 7891 7892 8127 8248 8249 1 6 8126 7892 7893 8128 8249 8250 1 6 8127 7893 7894 8129 8250 8251 1 6 8128 7894 8130 8251 8252 8253 1 6 8129 7894 7895 7896 8131 8253 1 6 8130 7896 7897 8132 8253 8254 1 5 8131 7897 7898 8133 8254 1 7 8132 7898 7899 8134 8254 8255 8256 2 5 8133 7899 7900 8135 8256 2 7 8134 7900 8136 8256 8257 8258 8259 2 6 8135 7900 7901 7902 8137 8259 2 6 8136 7902 8138 8259 8260 8261 2 6 8137 7902 7904 8139 8261 8262 2 6 8138 7904 7905 7906 8140 8262 2 6 8139 7906 8141 8262 8263 8264 2 6 8140 7906 7907 7908 8142 8264 2 6 8141 7908 8143 8264 8265 8266 2 6 8142 7908 7909 7910 8144 8266 2 6 8143 7910 7911 8145 8266 8267 2 6 8144 7911 8146 8267 8268 8269 2 6 8145 7911 7912 7913 8147 8269 2 6 8146 7913 8148 8269 8270 8271 2 6 8147 7913 7914 8149 8151 8271 2 5 8148 7914 8150 8151 7922 2 6 8149 7914 7915 7916 7919 7922 2 7 8148 8149 7922 7923 8152 8271 8272 2 5 8151 7923 8153 8272 8273 2 7 8152 7923 7924 8154 8273 8274 8275 2 6 8153 7924 8155 8156 8275 8276 2 7 8154 7924 8156 7925 7928 8157 7617 2 6 8154 8155 7617 7618 8158 8276 2 5 8155 7928 7929 7616 7617 2 6 8156 7618 8159 8276 8277 8278 2 6 8158 7618 7619 8160 8278 8279 2 7 8159 7619 7620 8161 8279 8280 8281 2 5 8160 7620 8162 8281 8282 2 7 8161 7620 7621 8163 8282 8283 8164 2 6 8162 7621 7622 7623 7624 8164 2 7 8163 7624 7625 7627 8165 8283 8162 2 6 8164 7627 7628 7630 8166 8283 2 6 8165 7630 8167 8168 8283 8282 2 6 8166 7630 8168 8169 8170 7631 2 6 8166 8167 8169 8282 8284 8285 2 6 8168 8167 8170 8285 8286 8287 2 6 8169 8167 7631 8171 8172 8287 2 6 8170 7631 8172 8173 7633 7632 2 6 8170 8171 8173 8287 8288 8289 2 6 8172 8171 7633 8174 8289 8290 2 6 8173 7633 7634 7636 8175 8290 2 6 8174 7636 7638 8176 8290 8291 2 6 8175 7638 8177 8291 8292 8293 2 6 8176 7638 7639 8178 8293 8294 2 6 8177 7639 8179 8294 8295 8296 2 6 8178 7639 7640 8180 8296 8297 2 6 8179 7640 8181 8307 8297 8308 2 6 8180 7640 7641 8182 8183 8308 2 6 8181 7641 8183 7644 7643 7642 2 6 8181 8182 7644 8184 8308 8309 2 6 8183 7644 7645 8185 8309 8310 2 7 8184 7645 7646 7647 8186 8310 8311 1 6 8185 7647 7648 8187 8311 8312 1 6 8186 7648 8188 8312 8313 8314 1 6 8187 7648 7649 8189 8314 8315 1 6 8188 7649 7650 8190 8315 8200 1 6 8189 7650 8191 8197 8199 8200 1 6 8190 7650 7651 8192 8197 8193 1 6 8191 7651 7652 7657 7658 8193 1 6 8192 7658 8194 8196 8197 8191 1 6 8193 7658 7659 7662 8195 8196 1 6 8194 7662 8196 8208 8204 7663 1 6 8194 8195 8193 8197 8198 8204 1 6 8193 8196 8198 8199 8190 8191 1 6 8197 8196 8199 8202 8203 8204 1 6 8197 8198 8190 8200 8201 8202 1 6 8190 8199 8201 8315 8189 8316 1 6 8200 8199 8202 8316 8317 8318 1 6 8201 8199 8198 8203 8205 8318 1 6 8202 8198 8204 8205 7699 8206 1 7 8203 8198 8206 8207 8208 8195 8196 1 5 8202 8203 7699 8318 7700 1 7 7699 8203 8204 7698 7669 7667 8207 1 6 7667 8206 8204 8208 7664 7665 1 5 8207 8204 8195 7663 7664 1 6 8080 8081 8082 8083 8210 8378 1 5 8209 8083 8084 8211 8378 1 6 8210 8084 8085 8212 8378 8379 1 6 8211 8085 8213 8379 8380 8381 1 6 8212 8085 8086 8087 8214 8381 1 6 8213 8087 8215 8381 8382 8216 1 6 8214 8087 8088 8090 8091 8216 1 6 8215 8091 8217 8382 8214 8383 1 6 8216 8091 8092 8218 8383 8384 1 6 8217 8092 8093 8219 8384 8385 1 6 8218 8093 8094 8095 8220 8385 1 5 8219 8095 8221 8385 8386 1 6 8220 8095 8096 8222 8386 8387 1 6 8221 8096 8097 8223 8387 8388 1 6 8222 8097 8098 8224 8388 8389 1 6 8223 8098 8099 8225 8389 8390 1 6 8224 8099 8100 8226 8390 8391 1 6 8225 8100 8101 8227 8391 8392 1 6 8226 8101 8102 8103 8228 8392 1 6 8227 8103 8229 8392 8393 8394 1 6 8228 8103 8104 8230 8394 8395 1 6 8229 8104 8105 8106 8231 8395 1 6 8230 8106 8232 8395 8396 8397 1 6 8231 8106 8107 8233 8397 8398 1 6 8232 8107 8108 8109 8234 8398 1 6 8233 8109 8235 8398 8399 8400 1 6 8234 8109 8110 8111 8236 8400 1 6 8235 8111 8237 8400 8401 8402 1 6 8236 8111 8112 8113 8238 8402 1 6 8237 8113 8114 8239 8402 8403 1 6 8238 8114 8116 8117 8240 8403 1 6 8239 8117 8241 8403 8404 8405 1 6 8240 8117 8118 8119 8242 8405 1 6 8241 8119 8120 8243 8405 8406 1 6 8242 8120 8121 8244 8406 8407 1 6 8243 8121 8122 8245 8407 8408 1 6 8244 8122 8246 8408 8409 8410 1 6 8245 8122 8123 8124 8247 8410 1 6 8246 8124 8125 8248 8410 8411 1 6 8247 8125 8126 8249 8411 8412 1 6 8248 8126 8127 8250 8412 8413 1 6 8249 8127 8128 8251 8413 8414 1 6 8250 8128 8129 8252 8414 8415 1 6 8251 8129 8253 8415 8416 8417 1 6 8252 8129 8130 8131 8254 8417 1 7 8253 8131 8132 8133 8255 8417 8418 1 5 8254 8133 8256 8418 8419 2 7 8255 8133 8134 8135 8257 8419 8420 2 5 8256 8135 8258 8420 8421 2 6 8257 8135 8259 8421 8422 8260 2 5 8258 8135 8136 8137 8260 2 6 8259 8137 8261 8422 8258 8423 2 6 8260 8137 8138 8262 8423 8424 2 6 8261 8138 8139 8140 8263 8424 2 6 8262 8140 8264 8424 8425 8426 2 6 8263 8140 8141 8142 8265 8426 2 6 8264 8142 8266 8426 8427 8428 2 7 8265 8142 8143 8144 8267 8428 8429 2 6 8266 8144 8145 8268 8429 8430 2 6 8267 8145 8269 8430 8431 8432 2 6 8268 8145 8146 8147 8270 8432 2 6 8269 8147 8271 8432 8433 8434 2 6 8270 8147 8148 8151 8272 8434 2 5 8271 8151 8152 8273 8434 2 7 8272 8152 8153 8274 8434 8435 8436 2 6 8273 8153 8275 8436 8437 8438 2 6 8274 8153 8154 8276 8438 8277 2 5 8275 8154 8156 8158 8277 2 6 8276 8158 8278 8438 8275 8439 2 6 8277 8158 8159 8279 8439 8440 2 7 8278 8159 8160 8280 8440 8441 8445 2 6 8279 8160 8281 8445 8446 8284 2 5 8280 8160 8161 8282 8284 2 7 8281 8161 8162 8283 8166 8168 8284 2 5 8282 8162 8164 8165 8166 2 6 8282 8168 8285 8446 8280 8281 2 6 8284 8168 8169 8286 8446 8447 2 6 8285 8169 8287 8447 8449 8450 2 6 8286 8169 8170 8172 8288 8450 2 6 8287 8172 8289 8450 8451 8452 2 6 8288 8172 8173 8290 8452 8453 2 6 8289 8173 8174 8175 8291 8453 2 6 8290 8175 8176 8292 8453 8454 2 6 8291 8176 8293 8454 8455 8456 2 6 8292 8176 8177 8294 8456 8457 2 6 8293 8177 8178 8295 8457 8458 2 6 8294 8178 8296 8461 8458 8299 2 6 8295 8178 8179 8297 8298 8299 2 6 8296 8179 8298 8307 8305 8180 2 6 8296 8297 8299 8300 8301 8305 2 6 8296 8298 8300 8461 8295 8462 2 6 8299 8298 8301 8302 8462 8463 2 6 8300 8298 8302 8303 8304 8305 2 6 8300 8301 8303 8463 8464 8465 2 6 8302 8301 8304 8465 8466 8467 2 6 8303 8301 8305 8306 8470 8467 2 6 8304 8301 8298 8306 8307 8297 2 6 8304 8305 8307 8470 8471 8472 2 6 8306 8305 8297 8180 8308 8472 2 6 8307 8180 8181 8183 8309 8472 2 6 8308 8183 8184 8310 8472 8473 2 6 8309 8184 8185 8311 8473 8474 1 5 8310 8185 8186 8312 8474 1 6 8311 8186 8187 8313 8474 8475 1 6 8312 8187 8314 8478 8475 8479 1 6 8313 8187 8188 8315 8479 8480 1 6 8314 8188 8189 8200 8316 8480 1 5 8315 8200 8201 8317 8480 1 6 8316 8201 8318 8480 8481 7708 1 7 8317 8201 8202 8205 7700 7707 7708 2 6 7765 7766 8320 8321 8853 8854 2 6 8319 7766 7767 8321 8322 7769 2 7 8319 8320 8322 8854 8855 8856 8323 2 5 8321 8320 7769 7771 8323 2 6 8322 7771 8324 8856 8321 8857 2 6 8323 7771 7772 8325 8857 8328 2 6 8324 7772 7777 8326 8327 8328 2 6 8325 7777 7778 7779 7780 8327 2 6 8326 7780 8325 8328 8329 7781 2 6 8325 8327 8329 8857 8324 8858 2 6 8328 8327 7781 7782 8330 8858 2 6 8329 7782 7783 8331 8858 8859 2 6 8330 7783 8332 8865 8862 8859 2 6 8331 7783 7784 8037 8333 8865 2 6 8332 8037 8334 8866 8865 8867 2 6 8333 8037 8038 8041 8335 8867 2 6 8334 8041 8336 8867 8868 8869 2 6 8335 8041 8042 8337 8338 8869 2 6 8336 8042 8338 8339 8340 8341 2 6 8336 8337 8339 8869 8870 8874 2 6 8338 8337 8340 8874 8875 8347 2 6 8339 8337 8341 8347 8346 8876 2 6 8340 8337 8042 8043 8342 8876 2 6 8341 8043 8044 8343 8344 8876 2 6 8342 8044 8344 7807 7806 8046 2 6 8342 8343 7807 7808 8345 8876 2 6 8344 7808 7930 8050 8346 8876 2 6 8345 8050 8051 8347 8340 8876 2 6 8346 8051 8348 8875 8339 8340 2 6 8347 8051 8052 8054 8349 8875 2 6 8348 8054 8350 8902 8875 8901 2 6 8349 8054 8055 8351 8901 8903 2 6 8350 8055 8352 8903 8904 8905 1 6 8351 8055 8056 8353 8905 8906 1 6 8352 8056 8058 8354 8906 8907 1 6 8353 8058 8355 8907 8908 8909 1 6 8354 8058 8059 8356 8357 8909 1 6 8355 8059 8060 8061 8357 8358 1 6 8355 8356 8358 8359 8909 8910 1 6 8357 8356 8061 8062 8359 8063 1 6 8357 8358 8063 8064 8360 8910 1 6 8359 8064 8361 8912 8910 8913 1 6 8360 8064 8065 8362 8913 8914 1 6 8361 8065 8066 8067 8363 8914 1 6 8362 8067 8364 8916 8914 8917 1 6 8363 8067 8068 8365 8917 8918 1 6 8364 8068 8069 8366 8918 8919 1 6 8365 8069 8070 8367 8919 8920 1 6 8366 8070 8071 8368 8920 8921 1 6 8367 8071 8072 8369 8921 8922 1 6 8368 8072 8073 8370 8922 8923 1 6 8369 8073 8371 8923 8924 8925 1 6 8370 8073 8074 8372 8925 8926 1 6 8371 8074 8075 8373 8374 8926 1 6 8372 8075 8076 8374 8375 8077 1 6 8372 8373 8375 8926 8927 8928 1 6 8374 8373 8077 8376 8928 8929 1 6 8375 8077 8078 8079 8377 8929 1 6 8376 8079 8080 8378 8929 8379 1 6 8377 8080 8209 8210 8211 8379 1 7 8378 8211 8212 8380 8929 8377 8930 1 5 8379 8212 8381 8930 8931 1 7 8380 8212 8213 8214 8382 8743 8931 1 6 8381 8214 8216 8383 8641 8743 1 6 8382 8216 8217 8384 8641 8642 1 6 8383 8217 8218 8385 8642 8643 1 6 8384 8218 8219 8220 8386 8643 1 7 8385 8220 8221 8387 8643 8644 8645 1 6 8386 8221 8222 8388 8645 8646 1 6 8387 8222 8223 8389 8646 8647 1 6 8388 8223 8224 8390 8647 8648 1 7 8389 8224 8225 8391 8648 8649 8650 1 6 8390 8225 8226 8392 8650 8651 1 6 8391 8226 8227 8228 8393 8651 1 6 8392 8228 8394 8651 8652 8653 1 6 8393 8228 8229 8395 8653 8654 1 6 8394 8229 8230 8231 8396 8654 1 5 8395 8231 8397 8654 8655 1 6 8396 8231 8232 8398 8655 8656 1 7 8397 8232 8233 8234 8399 8656 8657 1 5 8398 8234 8400 8657 8658 1 7 8399 8234 8235 8236 8401 8658 8659 1 5 8400 8236 8402 8659 8660 1 6 8401 8236 8237 8238 8403 8660 1 6 8402 8238 8239 8240 8404 8660 1 6 8403 8240 8405 8660 8661 8662 1 6 8404 8240 8241 8242 8406 8662 1 6 8405 8242 8243 8407 8662 8663 1 7 8406 8243 8244 8408 8663 8664 8665 1 6 8407 8244 8245 8409 8665 8666 1 6 8408 8245 8410 8666 8667 8668 1 6 8409 8245 8246 8247 8411 8668 1 6 8410 8247 8248 8412 8668 8669 1 6 8411 8248 8249 8413 8669 8670 1 6 8412 8249 8250 8414 8670 8671 1 6 8413 8250 8251 8415 8671 8672 1 6 8414 8251 8252 8416 8672 8673 1 6 8415 8252 8417 8673 8674 8675 1 6 8416 8252 8253 8254 8418 8675 1 6 8417 8254 8255 8419 8675 8676 2 6 8418 8255 8256 8420 8676 8677 2 6 8419 8256 8257 8421 8677 8678 2 6 8420 8257 8258 8422 8678 8679 2 6 8421 8258 8260 8423 8679 8680 2 7 8422 8260 8261 8424 8680 8681 8682 2 6 8423 8261 8262 8263 8425 8682 2 6 8424 8263 8426 8682 8683 8687 2 6 8425 8263 8264 8265 8427 8687 2 6 8426 8265 8428 8687 8688 8689 2 6 8427 8265 8266 8429 8689 8690 2 5 8428 8266 8267 8430 8690 2 6 8429 8267 8268 8431 8542 8690 2 6 8430 8268 8432 8542 8543 8544 2 6 8431 8268 8269 8270 8433 8544 2 6 8432 8270 8434 8544 8545 8546 2 7 8433 8270 8271 8272 8273 8435 8546 2 6 8434 8273 8436 8546 8547 8548 2 6 8435 8273 8274 8437 8548 8549 2 6 8436 8274 8438 8549 8550 8439 2 5 8437 8274 8275 8277 8439 2 7 8438 8277 8278 8440 8550 8437 8551 2 6 8439 8278 8279 8441 8442 8551 2 6 8440 8279 8442 8443 8444 8445 2 6 8440 8441 8443 8551 8552 8553 2 6 8442 8441 8444 8553 8554 8555 2 7 8443 8441 8445 8446 8447 8448 8555 2 5 8444 8441 8279 8280 8446 2 6 8445 8280 8284 8285 8447 8444 2 6 8446 8285 8286 8444 8448 8449 2 5 8444 8447 8449 8555 8556 2 6 8448 8447 8286 8450 8556 8557 2 7 8449 8286 8287 8288 8451 8557 8558 2 6 8450 8288 8452 8558 8559 8560 2 6 8451 8288 8289 8453 8560 8561 2 6 8452 8289 8290 8291 8454 8561 2 6 8453 8291 8292 8455 8561 8562 2 6 8454 8292 8456 8562 8563 8564 2 6 8455 8292 8293 8457 8564 8565 2 6 8456 8293 8294 8458 8459 8565 2 6 8457 8294 8459 8460 8461 8295 2 6 8457 8458 8460 8565 8566 8567 2 6 8459 8458 8461 8567 8568 8569 2 6 8460 8458 8295 8299 8462 8569 2 6 8461 8299 8300 8463 8569 8570 2 6 8462 8300 8302 8464 8570 8571 2 6 8463 8302 8465 8571 8572 8573 2 6 8464 8302 8303 8466 8573 8487 2 7 8465 8303 8467 8468 7962 7963 8487 2 6 8466 8303 8468 8469 8470 8304 1 6 8466 8467 8469 7962 9763 9764 1 7 8468 8467 8470 9094 8485 9763 8486 2 6 8469 8467 8304 8306 8471 9094 2 6 8470 8306 8472 8476 9094 8473 2 6 8471 8306 8307 8308 8309 8473 2 6 8472 8309 8310 8474 8476 8471 1 6 8473 8310 8311 8312 8475 8476 1 6 8474 8312 8476 8477 8478 8313 1 7 8474 8475 8477 8485 9094 8471 8473 1 6 8476 8475 8478 8483 8484 8485 1 6 8477 8475 8313 8479 8483 8482 1 6 8478 8313 8314 8480 8482 8481 1 6 8479 8314 8315 8316 8317 8481 1 6 8480 8317 7708 7709 8482 8479 1 7 8481 7709 7710 7713 8483 8478 8479 1 5 8482 7713 8484 8477 8478 1 6 8483 7713 7714 8477 8485 8486 1 6 8477 8484 8486 8469 9094 8476 1 6 8485 8484 9765 9763 8469 7714 2 5 8466 7963 8488 8573 8465 2 7 8487 7963 7964 7965 8489 8573 8574 2 5 8488 7965 7966 8490 8574 2 7 8489 7966 7967 8491 8492 8574 8575 2 6 8490 7967 8492 8493 7969 7968 2 5 8490 8491 8493 8575 8576 2 6 8492 8491 7969 8494 8576 8577 2 6 8493 7969 7970 8495 8577 8578 2 6 8494 7970 7971 8496 8578 8579 2 6 8495 7971 7974 8497 8498 8579 2 6 8496 7974 8498 8499 8500 7975 2 6 8496 8497 8499 8579 8580 8581 2 6 8498 8497 8500 8581 8582 8501 2 6 8499 8497 7975 7981 7983 8501 2 6 8500 7983 8502 8582 8499 8583 2 6 8501 7983 7984 8503 8586 8583 2 6 8502 7984 8504 8527 8586 8526 2 6 8503 7984 7985 8505 8526 8588 2 6 8504 7985 8506 8588 8513 8589 2 6 8505 7985 7986 7993 8507 8589 2 6 8506 7993 7994 7997 8508 8589 2 6 8507 7997 7998 8509 8513 8589 2 6 8508 7998 8510 8511 8512 8513 2 6 8509 7998 7999 8000 8001 8511 2 6 8509 8510 8512 8521 8522 8001 2 6 8509 8511 8513 8514 8515 8521 2 7 8509 8512 8514 8588 8505 8589 8508 2 6 8513 8512 8515 8516 8526 8588 2 6 8514 8512 8516 8517 8520 8521 2 6 8514 8515 8517 8518 8524 8526 2 6 8516 8515 8518 8519 8004 8520 2 6 8516 8517 8519 8524 8525 8531 2 6 8518 8517 8004 8541 8539 8531 2 6 8004 8517 8003 8515 8521 8523 2 6 8520 8515 8512 8511 8522 8523 2 5 8521 8511 8001 8002 8523 2 5 8522 8002 8521 8520 8003 2 6 8516 8518 8525 8526 8527 8528 2 6 8524 8518 8528 8529 8530 8531 2 7 8516 8524 8527 8503 8504 8588 8514 2 5 8526 8524 8528 8586 8503 2 6 8527 8524 8525 8529 8587 8586 2 6 8528 8525 8530 8602 8587 8603 2 6 8529 8525 8531 8532 8533 8603 2 6 8530 8525 8532 8519 8539 8518 2 6 8530 8531 8533 8534 8538 8539 2 6 8530 8532 8534 8535 8603 8604 2 6 8533 8532 8535 8536 8537 8538 2 6 8533 8534 8536 8604 8605 8606 2 6 8535 8534 8537 8606 8607 8608 2 6 8536 8534 8538 8608 8609 8010 2 6 8537 8534 8532 8539 8540 8010 2 6 8538 8532 8540 8541 8519 8531 2 6 8538 8539 8541 8010 8610 8006 2 6 8540 8539 8519 8006 8005 8004 2 6 8430 8431 8543 8690 8691 8692 2 6 8542 8431 8544 8692 8693 8694 2 6 8543 8431 8432 8433 8545 8694 2 6 8544 8433 8546 8694 8695 8547 2 5 8545 8433 8434 8435 8547 2 6 8546 8435 8548 8695 8545 8696 2 6 8547 8435 8436 8549 8696 8697 2 6 8548 8436 8437 8550 8697 8698 2 6 8549 8437 8439 8551 8698 8552 2 5 8550 8439 8440 8442 8552 2 7 8551 8442 8553 8698 8550 8699 8700 2 6 8552 8442 8443 8554 8700 8701 2 6 8553 8443 8555 8701 8702 8703 2 6 8554 8443 8444 8448 8556 8703 2 6 8555 8448 8449 8557 8703 8704 2 6 8556 8449 8450 8558 8704 8705 2 6 8557 8450 8451 8559 8705 8706 2 6 8558 8451 8560 8706 8707 8708 2 5 8559 8451 8452 8561 8708 2 6 8560 8452 8453 8454 8562 8708 2 6 8561 8454 8455 8563 8708 8709 2 6 8562 8455 8564 8709 8710 8711 2 6 8563 8455 8456 8565 8711 8712 2 7 8564 8456 8457 8459 8566 8712 8713 2 5 8565 8459 8567 8713 8714 2 6 8566 8459 8460 8568 8714 8715 2 6 8567 8460 8569 8715 8716 8717 2 6 8568 8460 8461 8462 8570 8717 2 7 8569 8462 8463 8571 8590 8592 8717 2 5 8570 8463 8464 8572 8590 2 7 8571 8464 8573 8574 8575 8576 8590 2 6 8572 8464 8465 8487 8488 8574 2 6 8573 8488 8489 8490 8575 8572 2 5 8574 8490 8492 8576 8572 2 7 8575 8492 8493 8577 8572 8590 8591 2 6 8576 8493 8494 8578 8594 8591 2 6 8577 8494 8495 8579 8594 8595 2 6 8578 8495 8496 8498 8580 8595 2 6 8579 8498 8581 8595 8596 8597 2 6 8580 8498 8499 8582 8597 8598 2 6 8581 8499 8501 8583 8584 8598 2 6 8582 8501 8584 8585 8586 8502 2 6 8582 8583 8585 8598 8599 8600 2 6 8584 8583 8586 8587 8600 8601 2 7 8585 8583 8587 8528 8527 8503 8502 2 6 8585 8586 8528 8601 8602 8529 2 5 8526 8504 8505 8513 8514 2 5 8513 8505 8506 8508 8507 2 6 8572 8576 8591 8571 8570 8592 2 6 8590 8576 8592 8593 8594 8577 2 5 8570 8590 8591 8593 8717 2 7 8592 8591 8594 8717 8716 8718 8719 2 6 8593 8591 8577 8578 8595 8719 2 7 8594 8578 8579 8580 8596 8719 8720 2 6 8595 8580 8597 8720 8721 8722 2 6 8596 8580 8581 8598 8722 8723 2 6 8597 8581 8582 8584 8599 8723 2 6 8598 8584 8600 8723 8724 8725 2 6 8599 8584 8585 8601 8725 8726 2 6 8600 8585 8587 8602 8726 8727 2 5 8601 8587 8529 8603 8727 2 6 8602 8529 8530 8533 8604 8727 2 6 8603 8533 8535 8605 8727 8728 2 6 8604 8535 8606 8728 8731 8732 2 6 8605 8535 8536 8607 8611 8732 2 6 8606 8536 8608 8611 8015 8014 2 6 8607 8536 8537 8609 8014 8013 2 5 8608 8537 8010 8013 8011 2 5 8010 8540 8008 8007 8006 2 6 8606 8607 8015 8016 8612 8732 2 6 8611 8016 8017 8613 8732 8733 2 6 8612 8017 8614 8733 8734 8735 2 6 8613 8017 8018 8615 8616 8735 2 6 8614 8018 8019 8616 8617 8618 2 6 8614 8615 8617 8735 8736 8737 2 6 8616 8615 8618 8737 8738 8739 2 6 8617 8615 8019 8619 8739 8742 2 6 8618 8019 8020 8022 8620 8742 2 6 8619 8022 8024 8621 8624 8742 2 6 8620 8024 8028 8622 8623 8624 2 6 8621 8028 8623 8627 8628 8029 2 6 8621 8622 8624 8625 8626 8627 2 6 8621 8623 8625 8741 8742 8620 2 6 8624 8623 8626 8837 8741 8838 2 6 8625 8623 8627 8838 8839 8840 2 6 8626 8623 8622 8628 8840 8841 2 6 8627 8622 8029 8629 8841 8842 2 6 8628 8029 8030 8033 8630 8842 2 6 8629 8033 8631 8842 8843 8844 2 6 8630 8033 8034 8632 8633 8844 2 6 8631 8034 8633 8634 8635 8035 2 6 8631 8632 8634 8844 8845 8846 2 6 8633 8632 8635 8636 8637 8846 2 6 8634 8632 8636 8640 7761 8035 2 6 8634 8635 8637 8638 8639 8640 2 6 8634 8636 8638 8846 8848 8849 2 6 8637 8636 8639 8849 8850 8851 2 6 8638 8636 8640 8851 8852 7762 2 5 8639 8636 8635 7761 7762 1 6 8382 8383 8642 8743 8744 8745 1 6 8641 8383 8384 8643 8745 8746 1 6 8642 8384 8385 8386 8644 8746 1 6 8643 8386 8645 8746 8747 8748 1 6 8644 8386 8387 8646 8748 8749 1 6 8645 8387 8388 8647 8749 8750 1 6 8646 8388 8389 8648 8750 8751 1 6 8647 8389 8390 8649 8751 8752 1 6 8648 8390 8650 8752 8753 8754 1 5 8649 8390 8391 8651 8754 1 6 8650 8391 8392 8393 8652 8754 1 6 8651 8393 8653 8754 8755 8756 1 6 8652 8393 8394 8654 8756 8757 1 6 8653 8394 8395 8396 8655 8757 1 6 8654 8396 8397 8656 8757 8758 1 7 8655 8397 8398 8657 8758 8759 8760 1 5 8656 8398 8399 8658 8760 1 7 8657 8399 8400 8659 8760 8761 8762 1 5 8658 8400 8401 8660 8762 1 8 8659 8401 8402 8403 8404 8661 8762 8763 1 5 8660 8404 8662 8763 8764 1 6 8661 8404 8405 8406 8663 8764 1 6 8662 8406 8407 8664 8764 8765 1 6 8663 8407 8665 8765 8766 8767 1 5 8664 8407 8408 8666 8767 1 6 8665 8408 8409 8667 8767 8768 1 6 8666 8409 8668 8768 8769 8770 1 6 8667 8409 8410 8411 8669 8770 1 6 8668 8411 8412 8670 8770 8771 1 6 8669 8412 8413 8671 8771 8772 1 6 8670 8413 8414 8672 8772 8773 1 6 8671 8414 8415 8673 8773 8774 1 6 8672 8415 8416 8674 8774 8775 1 6 8673 8416 8675 8775 8776 8777 1 6 8674 8416 8417 8418 8676 8777 1 6 8675 8418 8419 8677 8777 8778 2 6 8676 8419 8420 8678 8778 8779 2 6 8677 8420 8421 8679 8779 8780 2 6 8678 8421 8422 8680 8780 8781 2 6 8679 8422 8423 8681 8781 8782 2 6 8680 8423 8682 8782 8783 8684 2 6 8681 8423 8424 8425 8683 8684 2 6 8682 8425 8684 8685 8686 8687 2 5 8682 8683 8685 8783 8681 2 6 8684 8683 8686 8783 8784 8785 2 6 8685 8683 8687 8785 8786 8787 2 7 8686 8683 8425 8426 8427 8688 8787 2 5 8687 8427 8689 8787 8788 2 6 8688 8427 8428 8690 8788 8789 2 7 8689 8428 8429 8430 8542 8691 8789 2 6 8690 8542 8692 8789 8790 8791 2 5 8691 8542 8543 8693 8791 2 7 8692 8543 8694 8791 8792 8793 8794 2 6 8693 8543 8544 8545 8695 8794 2 6 8694 8545 8547 8696 8794 8795 2 7 8695 8547 8548 8697 8795 8796 8797 2 6 8696 8548 8549 8698 8797 8798 2 6 8697 8549 8550 8552 8699 8798 2 6 8698 8552 8700 8798 8799 8800 2 6 8699 8552 8553 8701 8800 8803 2 6 8700 8553 8554 8702 8803 8804 2 6 8701 8554 8703 8804 8805 8806 2 6 8702 8554 8555 8556 8704 8806 2 6 8703 8556 8557 8705 8806 8807 2 6 8704 8557 8558 8706 8807 8808 2 6 8705 8558 8559 8707 8808 8809 2 6 8706 8559 8708 8809 8810 8811 2 7 8707 8559 8560 8561 8562 8709 8811 2 5 8708 8562 8563 8710 8811 2 7 8709 8563 8711 8811 8812 8813 8814 2 6 8710 8563 8564 8712 8814 8815 2 6 8711 8564 8565 8713 8815 8816 2 5 8712 8565 8566 8714 8816 2 7 8713 8566 8567 8715 8816 8817 8818 2 6 8714 8567 8568 8716 8818 8819 2 6 8715 8568 8717 8593 8718 8819 2 6 8716 8568 8569 8570 8592 8593 2 6 8716 8593 8719 8819 8820 8720 2 5 8718 8593 8594 8595 8720 2 6 8719 8595 8596 8721 8820 8718 2 6 8720 8596 8722 8820 8821 8822 2 5 8721 8596 8597 8723 8822 2 6 8722 8597 8598 8599 8724 8822 2 6 8723 8599 8725 8822 8823 8824 2 6 8724 8599 8600 8726 8824 8825 2 6 8725 8600 8601 8727 8825 8729 2 7 8726 8601 8602 8603 8604 8728 8729 2 6 8727 8604 8605 8729 8730 8731 2 5 8727 8728 8730 8825 8726 2 6 8729 8728 8731 8825 8827 8828 2 6 8730 8728 8605 8732 8828 8829 2 7 8731 8605 8606 8611 8612 8733 8829 2 6 8732 8612 8613 8734 8830 8829 2 6 8733 8613 8735 8830 8831 8736 2 5 8734 8613 8614 8616 8736 2 6 8735 8616 8737 8831 8734 8832 2 6 8736 8616 8617 8738 8832 8833 2 6 8737 8617 8739 8740 8833 8834 2 6 8738 8617 8618 8740 8741 8742 2 6 8738 8739 8741 8834 8835 8836 2 7 8740 8739 8742 8624 8836 8837 8625 2 6 8741 8739 8624 8620 8619 8618 1 6 8381 8382 8641 8744 8931 8932 1 5 8743 8641 8745 8932 8933 1 6 8744 8641 8642 8746 8933 8934 1 6 8745 8642 8643 8644 8747 8934 1 6 8746 8644 8748 8934 8935 8936 1 6 8747 8644 8645 8749 8936 8937 1 6 8748 8645 8646 8750 8937 8938 1 6 8749 8646 8647 8751 8938 8939 1 6 8750 8647 8648 8752 8939 8940 1 6 8751 8648 8649 8753 8940 8941 1 6 8752 8649 8754 8941 8942 8943 1 7 8753 8649 8650 8651 8652 8755 8943 1 5 8754 8652 8756 8943 8944 1 6 8755 8652 8653 8757 8944 8945 1 6 8756 8653 8654 8655 8758 8945 1 7 8757 8655 8656 8759 8945 8946 8947 1 5 8758 8656 8760 8947 8948 1 6 8759 8656 8657 8658 8761 8948 1 6 8760 8658 8762 8948 8949 8950 1 6 8761 8658 8659 8660 8763 8950 1 5 8762 8660 8661 8764 8950 1 7 8763 8661 8662 8663 8765 8950 8951 1 6 8764 8663 8664 8766 8951 8952 1 6 8765 8664 8767 8952 8953 8954 1 6 8766 8664 8665 8666 8768 8954 1 6 8767 8666 8667 8769 8954 8955 1 6 8768 8667 8770 8955 8956 8957 1 6 8769 8667 8668 8669 8771 8957 1 6 8770 8669 8670 8772 8957 8958 1 6 8771 8670 8671 8773 8958 8959 1 6 8772 8671 8672 8774 8959 8960 1 6 8773 8672 8673 8775 8960 8961 1 6 8774 8673 8674 8776 8961 8962 1 6 8775 8674 8777 8962 8963 8964 1 6 8776 8674 8675 8676 8778 8964 1 6 8777 8676 8677 8779 8964 8965 2 6 8778 8677 8678 8780 8965 8966 2 6 8779 8678 8679 8781 8966 8967 2 6 8780 8679 8680 8782 8967 8968 2 6 8781 8680 8681 8783 8968 8969 2 6 8782 8681 8684 8685 8784 8969 2 6 8783 8685 8785 8969 8970 8971 2 6 8784 8685 8686 8786 8971 8972 2 6 8785 8686 8787 8972 8973 8974 2 6 8786 8686 8687 8688 8788 8974 2 6 8787 8688 8689 8789 8974 8975 2 6 8788 8689 8690 8691 8790 8975 2 6 8789 8691 8791 8975 8976 8977 2 6 8790 8691 8692 8693 8792 8977 2 6 8791 8693 8793 8977 8978 8979 2 6 8792 8693 8794 8979 8980 8795 2 5 8793 8693 8694 8695 8795 2 6 8794 8695 8696 8796 8980 8793 2 6 8795 8696 8797 8980 8981 8982 2 6 8796 8696 8697 8798 8982 8799 2 5 8797 8697 8698 8699 8799 2 6 8798 8699 8800 8801 8982 8797 2 6 8799 8699 8700 8801 8802 8803 2 6 8799 8800 8802 8982 8983 8984 2 6 8801 8800 8803 8984 8985 8986 2 6 8802 8800 8700 8701 8804 8986 2 6 8803 8701 8702 8805 8986 8987 2 6 8804 8702 8806 8987 8988 8989 2 6 8805 8702 8703 8704 8807 8989 2 6 8806 8704 8705 8808 8989 8990 2 7 8807 8705 8706 8809 8992 8990 8993 2 5 8808 8706 8707 8810 8993 2 6 8809 8707 8811 8993 8994 8812 2 6 8810 8707 8708 8709 8710 8812 2 6 8811 8710 8813 8994 8810 8995 2 6 8812 8710 8814 8995 8996 8997 2 6 8813 8710 8711 8815 8997 8998 2 5 8814 8711 8712 8816 8998 2 7 8815 8712 8713 8714 8817 8998 8999 2 6 8816 8714 8818 8999 9000 9001 2 6 8817 8714 8715 8819 9001 9002 2 6 8818 8715 8716 8718 8820 9002 2 6 8819 8718 8720 8721 8821 9002 2 6 8820 8721 8822 9002 9003 8823 2 6 8821 8721 8722 8723 8724 8823 2 6 8822 8724 8824 9003 8821 9004 2 6 8823 8724 8725 8825 8826 9004 2 7 8824 8725 8726 8729 8730 8826 8827 2 6 8824 8825 8827 9004 9005 9006 2 6 8826 8825 8730 8828 9012 9006 2 6 8827 8730 8731 8829 8830 9012 2 5 8828 8731 8830 8733 8732 2 7 8828 8829 8733 8734 8831 9011 9012 2 6 8830 8734 8736 8832 9013 9011 2 7 8831 8736 8737 8833 9013 9014 9015 2 6 8832 8737 8738 8834 9015 9016 2 6 8833 8738 8740 8835 9016 9017 2 6 8834 8740 8836 9017 9018 9019 2 6 8835 8740 8741 8837 9019 9020 2 5 8836 8741 8625 8838 9020 2 6 8837 8625 8626 8839 9020 9021 2 6 8838 8626 8840 9021 9022 9023 2 6 8839 8626 8627 8841 9023 9024 2 6 8840 8627 8628 8842 9024 9025 2 6 8841 8628 8629 8630 8843 9025 2 6 8842 8630 8844 9025 9026 9030 2 6 8843 8630 8631 8633 8845 9030 2 6 8844 8633 8846 8847 9031 9030 2 6 8845 8633 8634 8637 8847 8848 2 6 8845 8846 8848 9031 9032 9033 2 6 8847 8846 8637 8849 9042 9033 2 6 8848 8637 8638 8850 9043 9042 2 6 8849 8638 8851 9043 9044 9045 2 6 8850 8638 8639 8852 9045 9048 2 6 8851 8639 7762 7763 8853 9048 2 6 8852 7763 7765 8319 8854 9048 2 6 8853 8319 8321 8855 9047 9048 2 6 8854 8321 8856 9047 9049 9050 2 5 8855 8321 8323 8857 9050 2 7 8856 8323 8324 8328 8858 9050 8860 2 6 8857 8328 8329 8330 8859 8860 2 6 8858 8330 8860 8861 8862 8331 2 6 8858 8859 8861 9050 8857 9051 2 6 8860 8859 8862 8863 9051 9052 2 6 8861 8859 8863 8864 8865 8331 2 6 8861 8862 8864 8877 9058 9052 2 6 8863 8862 8865 8866 8877 8878 2 6 8864 8862 8866 8333 8332 8331 2 6 8864 8865 8333 8867 8878 8879 2 6 8866 8333 8334 8335 8868 8879 2 6 8867 8335 8869 8879 8880 8871 2 6 8868 8335 8336 8338 8870 8871 2 6 8869 8338 8871 8872 8873 8874 2 6 8869 8870 8872 8894 8880 8868 2 6 8871 8870 8873 8896 8894 8897 2 6 8872 8870 8874 8897 8898 8902 2 6 8873 8870 8338 8339 8875 8902 2 6 8874 8339 8347 8902 8349 8348 2 6 8346 8340 8341 8342 8344 8345 2 5 8863 8864 8878 9058 8882 2 6 8877 8864 8866 8879 8881 8882 2 6 8878 8866 8867 8868 8880 8881 2 6 8879 8868 8881 8893 8894 8871 2 6 8879 8880 8878 8882 8883 8893 2 6 8878 8881 8883 8884 9058 8877 2 6 8882 8881 8884 8885 8892 8893 2 6 8882 8883 8885 8886 8887 9058 2 6 8884 8883 8886 8890 8891 8892 2 6 8884 8885 8887 8888 8889 8890 2 6 8884 8886 8888 9058 9057 9059 2 6 8887 8886 8889 9059 9060 9061 2 6 8888 8886 8890 9061 9062 9063 2 6 8889 8886 8885 8891 9063 9064 2 6 8890 8885 8892 9064 9065 9066 2 6 8891 8885 8883 8893 9066 8895 2 6 8892 8883 8881 8880 8894 8895 2 6 8893 8880 8895 8896 8872 8871 2 6 8893 8894 8896 9066 8892 9067 2 6 8895 8894 8872 8897 9067 9068 2 6 8896 8872 8873 8898 8899 9068 2 6 8897 8873 8899 8900 8901 8902 2 6 8897 8898 8900 9068 9069 9070 2 6 8899 8898 8901 9070 9071 8903 2 6 8900 8898 8902 8349 8350 8903 2 6 8901 8898 8873 8874 8875 8349 2 6 8901 8350 8351 8904 9071 8900 2 6 8903 8351 8905 9071 9072 9073 1 6 8904 8351 8352 8906 9073 9074 1 6 8905 8352 8353 8907 9074 9075 1 6 8906 8353 8354 8908 9075 9076 1 6 8907 8354 8909 9076 9077 8911 1 6 8908 8354 8355 8357 8910 8911 1 6 8909 8357 8911 8912 8360 8359 1 6 8909 8910 8912 9077 8908 9078 1 6 8911 8910 8360 8913 9078 9079 1 6 8912 8360 8361 8914 8915 9079 1 6 8913 8361 8362 8915 8916 8363 1 6 8913 8914 8916 9079 9080 9081 1 6 8915 8914 8363 8917 9081 9082 1 6 8916 8363 8364 8918 9082 9083 1 6 8917 8364 8365 8919 9083 9084 1 6 8918 8365 8366 8920 9093 9084 1 6 8919 8366 8367 8921 9093 9100 1 6 8920 8367 8368 8922 9100 9101 1 6 8921 8368 8369 8923 9101 9102 1 6 8922 8369 8370 8924 9102 9103 1 6 8923 8370 8925 9103 9104 9105 1 6 8924 8370 8371 8926 9105 9106 1 6 8925 8371 8372 8374 8927 9106 1 6 8926 8374 8928 9106 9107 8931 1 6 8927 8374 8375 8929 8931 8930 1 6 8928 8375 8376 8377 8379 8930 1 5 8929 8379 8380 8931 8928 1 8 8930 8380 8381 8743 8932 9107 8927 8928 1 5 8931 8743 8744 8933 9107 1 8 8932 8744 8745 8934 9107 9106 9105 9108 1 6 8933 8745 8746 8747 8935 9108 1 6 8934 8747 8936 9108 9109 9110 1 6 8935 8747 8748 8937 9110 9111 1 6 8936 8748 8749 8938 9111 9112 1 6 8937 8749 8750 8939 9112 9113 1 6 8938 8750 8751 8940 9113 9114 1 6 8939 8751 8752 8941 9114 9115 1 6 8940 8752 8753 8942 9115 9116 1 6 8941 8753 8943 9116 9117 8944 1 5 8942 8753 8754 8755 8944 1 7 8943 8755 8756 8945 9117 8942 9118 1 7 8944 8756 8757 8758 8946 9118 9119 1 5 8945 8758 8947 9119 9120 1 6 8946 8758 8759 8948 9120 9121 1 7 8947 8759 8760 8761 8949 9121 9122 1 6 8948 8761 8950 9122 9123 8951 1 6 8949 8761 8762 8763 8764 8951 1 6 8950 8764 8765 8952 9123 8949 1 6 8951 8765 8766 8953 9123 9124 1 6 8952 8766 8954 9124 9125 9126 1 6 8953 8766 8767 8768 8955 9126 1 6 8954 8768 8769 8956 9126 9127 1 6 8955 8769 8957 9127 9128 9129 1 6 8956 8769 8770 8771 8958 9129 1 6 8957 8771 8772 8959 9129 9130 1 6 8958 8772 8773 8960 9130 9131 1 6 8959 8773 8774 8961 9131 9132 1 6 8960 8774 8775 8962 9132 9133 1 6 8961 8775 8776 8963 9133 9134 1 6 8962 8776 8964 9134 9135 9136 1 6 8963 8776 8777 8778 8965 9136 1 6 8964 8778 8779 8966 9136 9137 2 6 8965 8779 8780 8967 9137 9138 2 6 8966 8780 8781 8968 9138 9139 2 6 8967 8781 8782 8969 9139 9140 2 7 8968 8782 8783 8784 8970 9140 9141 2 5 8969 8784 8971 9141 9142 2 7 8970 8784 8785 8972 9142 9143 9144 2 6 8971 8785 8786 8973 9144 9145 2 6 8972 8786 8974 9145 9146 9147 2 6 8973 8786 8787 8788 8975 9147 2 6 8974 8788 8789 8790 8976 9147 2 6 8975 8790 8977 9147 9148 9149 2 6 8976 8790 8791 8792 8978 9149 2 6 8977 8792 8979 9149 9150 9151 2 6 8978 8792 8793 8980 9151 9152 2 6 8979 8793 8795 8796 8981 9152 2 6 8980 8796 8982 9152 9153 8983 2 6 8981 8796 8797 8799 8801 8983 2 6 8982 8801 8984 9153 8981 9154 2 6 8983 8801 8802 8985 9154 9155 2 6 8984 8802 8986 9155 9156 9157 2 7 8985 8802 8803 8804 8987 9157 9158 2 5 8986 8804 8805 8988 9158 2 7 8987 8805 8989 8990 8991 9158 9159 2 5 8988 8805 8806 8807 8990 2 6 8989 8807 8988 8991 8992 8808 2 6 8988 8990 8992 9159 9160 9161 2 6 8991 8990 8808 8993 9164 9161 2 6 8992 8808 8809 8810 8994 9164 2 6 8993 8810 8812 8995 9164 9165 2 7 8994 8812 8813 8996 9165 9167 9168 2 5 8995 8813 8997 9168 9169 2 6 8996 8813 8814 8998 9169 9170 2 7 8997 8814 8815 8816 8999 9170 9171 2 5 8998 8816 8817 9000 9171 2 6 8999 8817 9001 9171 9172 9173 2 6 9000 8817 8818 9002 9173 9003 2 6 9001 8818 8819 8820 8821 9003 2 6 9002 8821 8823 9004 9173 9001 2 6 9003 8823 8824 8826 9005 9173 2 6 9004 8826 9006 9007 9008 9173 2 6 9005 8826 9007 9011 9012 8827 2 6 9005 9006 9008 9009 9010 9011 2 6 9005 9007 9009 9173 9172 9174 2 5 9008 9007 9010 9174 9177 2 6 9009 9007 9011 9013 9177 9014 2 7 9010 9007 9006 9012 9013 8831 8830 2 5 9011 9006 8830 8828 8827 2 5 9010 9011 8831 8832 9014 2 6 9013 8832 9015 9177 9010 9178 2 6 9014 8832 8833 9016 9181 9178 2 5 9015 8833 8834 9017 9181 2 7 9016 8834 8835 9018 9181 9182 9188 2 6 9017 8835 9019 9188 9189 9190 2 6 9018 8835 8836 9020 9190 9191 2 6 9019 8836 8837 8838 9021 9191 2 6 9020 8838 8839 9022 9191 9192 2 6 9021 8839 9023 9192 9195 9196 2 6 9022 8839 8840 9024 9196 9197 2 6 9023 8840 8841 9025 9197 9027 2 6 9024 8841 8842 8843 9026 9027 2 6 9025 8843 9027 9028 9029 9030 2 6 9025 9026 9028 9197 9024 9198 2 6 9027 9026 9029 9198 9199 9203 2 5 9028 9026 9030 9031 9203 2 6 9029 9026 8843 9031 8845 8844 2 7 9029 9030 8845 8847 9032 9203 9204 2 6 9031 8847 9033 9034 9204 9205 2 6 9032 8847 9034 9035 9042 8848 2 6 9032 9033 9035 9036 9037 9205 2 6 9034 9033 9036 9040 9041 9042 2 6 9034 9035 9037 9038 9039 9040 2 6 9034 9036 9038 9205 9206 9207 2 6 9037 9036 9039 9207 9208 9209 2 6 9038 9036 9040 9209 9062 9061 2 6 9039 9036 9035 9041 9061 9060 2 6 9040 9035 9042 9043 9060 9210 2 6 9041 9035 9033 8848 9043 8849 2 6 9041 9042 8849 8850 9044 9210 2 7 9043 8850 9045 9046 9055 9056 9210 2 6 9044 8850 8851 9046 9047 9048 2 6 9044 9045 9047 9053 9055 9049 2 6 9046 9045 9048 8854 8855 9049 2 6 9047 9045 8851 8854 8853 8852 2 6 9047 8855 9050 9051 9053 9046 2 6 9049 8855 8856 8857 8860 9051 2 6 9050 8860 8861 9052 9053 9049 2 6 9051 8861 9053 9054 9058 8863 2 6 9051 9052 9054 9055 9046 9049 2 6 9053 9052 9055 9056 9057 9058 2 5 9053 9054 9046 9044 9056 2 6 9044 9055 9054 9057 9059 9210 2 5 9056 9054 9058 8887 9059 2 8 9057 9054 9052 8863 8877 8882 8884 8887 2 6 9057 8887 8888 9060 9210 9056 2 6 9059 8888 9061 9040 9041 9210 2 6 9060 8888 8889 9062 9039 9040 2 6 9061 8889 9063 9209 9039 9211 2 6 9062 8889 8890 9064 9211 9212 2 6 9063 8890 8891 9065 9212 9213 2 6 9064 8891 9066 9213 9214 9215 2 6 9065 8891 8892 8895 9067 9215 2 6 9066 8895 8896 9068 9215 9216 2 6 9067 8896 8897 8899 9069 9216 2 6 9068 8899 9070 9216 9217 9218 2 6 9069 8899 8900 9071 9218 9219 2 7 9070 8900 8903 8904 9072 9219 9220 2 5 9071 8904 9073 9220 9221 1 7 9072 8904 8905 9074 9221 9222 9223 1 6 9073 8905 8906 9075 9223 9225 1 6 9074 8906 8907 9076 9225 9226 1 5 9075 8907 8908 9077 9226 1 7 9076 8908 8911 9078 9226 9227 9228 1 5 9077 8911 8912 9079 9228 1 6 9078 8912 8913 8915 9080 9228 1 6 9079 8915 9081 9228 9229 9230 1 6 9080 8915 8916 9082 9230 9231 1 6 9081 8916 8917 9083 9231 9232 1 6 9082 8917 8918 9084 9085 9232 1 6 9083 8918 9085 9086 9093 8919 1 6 9083 9084 9086 9087 9232 9233 1 6 9085 9084 9087 9088 9092 9093 1 6 9085 9086 9088 9089 9233 9234 1 6 9087 9086 9089 9090 9091 9092 1 6 9087 9088 9090 9095 9234 9235 1 6 9089 9088 9091 9095 9096 9097 1 6 9090 9088 9092 9097 9098 9099 1 6 9091 9088 9086 9093 9099 9100 1 6 9092 9086 9084 8919 8920 9100 1 5 8469 8470 8485 8476 8471 1 6 9089 9090 9096 9235 9236 9237 1 6 9095 9090 9097 9237 9238 9239 1 6 9096 9090 9091 9098 9239 9240 1 6 9097 9091 9099 9240 9241 9242 1 6 9098 9091 9092 9100 9242 9101 1 6 9099 9092 9093 8920 8921 9101 1 6 9100 8921 8922 9102 9242 9099 1 6 9101 8922 8923 9103 9242 9243 1 6 9102 8923 8924 9104 9243 9244 1 6 9103 8924 9105 9109 9244 9108 1 6 9104 8924 8925 9106 8933 9108 1 6 9105 8925 8926 8927 9107 8933 1 5 9106 8927 8931 8932 8933 1 6 9105 8933 8934 8935 9109 9104 1 5 9108 8935 9110 9244 9104 1 7 9109 8935 8936 9111 9245 9244 9348 1 6 9110 8936 8937 9112 9350 9348 1 5 9111 8937 8938 9113 9350 1 6 9112 8938 8939 9114 9350 9351 1 6 9113 8939 8940 9115 9351 9352 1 6 9114 8940 8941 9116 9352 9353 1 6 9115 8941 8942 9117 9246 9353 1 6 9116 8942 8944 9118 9246 9247 1 6 9117 8944 8945 9119 9247 9248 1 5 9118 8945 8946 9120 9248 1 7 9119 8946 8947 9121 9248 9249 9250 1 6 9120 8947 8948 9122 9250 9251 1 5 9121 8948 8949 9123 9251 1 6 9122 8949 8951 8952 9124 9251 1 6 9123 8952 8953 9125 9251 9252 1 6 9124 8953 9126 9252 9253 9254 1 6 9125 8953 8954 8955 9127 9254 1 6 9126 8955 8956 9128 9254 9255 1 6 9127 8956 9129 9255 9256 9257 1 6 9128 8956 8957 8958 9130 9257 1 6 9129 8958 8959 9131 9257 9258 1 6 9130 8959 8960 9132 9258 9259 1 6 9131 8960 8961 9133 9259 9260 1 6 9132 8961 8962 9134 9260 9261 1 6 9133 8962 8963 9135 9261 9262 1 6 9134 8963 9136 9262 9263 9264 1 6 9135 8963 8964 8965 9137 9264 1 6 9136 8965 8966 9138 9264 9265 2 6 9137 8966 8967 9139 9265 9266 2 6 9138 8967 8968 9140 9266 9267 2 6 9139 8968 8969 9141 9267 9268 2 5 9140 8969 8970 9142 9268 2 7 9141 8970 8971 9143 9268 9269 9270 2 6 9142 8971 9144 9270 9271 9272 2 5 9143 8971 8972 9145 9272 2 6 9144 8972 8973 9146 9272 9273 2 6 9145 8973 9147 9273 9274 9148 2 6 9146 8973 8974 8975 8976 9148 2 6 9147 8976 9149 9274 9146 9275 2 6 9148 8976 8977 8978 9150 9275 2 6 9149 8978 9151 9275 9276 9277 2 6 9150 8978 8979 9152 9277 9278 2 7 9151 8979 8980 8981 9153 9278 9279 2 6 9152 8981 8983 9154 9279 9280 2 6 9153 8983 8984 9155 9280 9281 2 6 9154 8984 8985 9156 9281 9282 2 6 9155 8985 9157 9282 9283 9284 2 6 9156 8985 8986 9158 9284 9285 2 6 9157 8986 8987 8988 9159 9285 2 6 9158 8988 8991 9160 9285 9286 2 6 9159 8991 9161 9162 9286 9287 2 6 9160 8991 9162 9163 9164 8992 2 6 9160 9161 9163 9287 9288 9289 2 6 9162 9161 9164 9165 9166 9289 2 6 9163 9161 8992 8993 8994 9165 2 6 9164 8994 8995 9163 9166 9167 2 6 9163 9165 9167 9289 9290 9186 2 6 9166 9165 8995 9168 9186 9185 2 6 9167 8995 8996 9169 9185 9184 2 7 9168 8996 8997 9170 9184 9179 9176 2 6 9169 8997 8998 9171 9176 9175 2 6 9170 8998 8999 9000 9172 9175 2 6 9171 9000 9173 9008 9174 9175 2 7 9172 9000 9001 9003 9004 9005 9008 2 6 9172 9008 9009 9175 9176 9177 2 5 9172 9174 9176 9170 9171 2 6 9175 9174 9177 9179 9169 9170 2 7 9176 9174 9009 9010 9014 9178 9179 2 6 9177 9014 9179 9180 9181 9015 2 6 9177 9178 9180 9184 9169 9176 2 6 9179 9178 9181 9182 9183 9184 2 6 9180 9178 9015 9016 9017 9182 2 6 9181 9017 9180 9183 9187 9188 2 6 9180 9182 9184 9185 9186 9187 2 6 9180 9183 9185 9168 9169 9179 2 5 9184 9183 9186 9167 9168 2 6 9185 9183 9187 9290 9166 9167 2 6 9186 9183 9182 9188 9290 9291 2 6 9187 9182 9017 9018 9189 9291 2 5 9188 9018 9190 9291 9292 2 6 9189 9018 9019 9191 9292 9193 2 6 9190 9019 9020 9021 9192 9193 2 6 9191 9021 9022 9193 9194 9195 2 6 9191 9192 9194 9292 9190 9293 2 6 9193 9192 9195 9293 9294 9295 2 6 9194 9192 9022 9196 9295 9296 2 6 9195 9022 9023 9197 9302 9296 2 7 9196 9023 9024 9027 9198 9302 9303 2 6 9197 9027 9028 9199 9200 9303 2 6 9198 9028 9200 9201 9202 9203 2 6 9198 9199 9201 9303 9301 9304 2 6 9200 9199 9202 9304 9305 9306 2 6 9201 9199 9203 9306 9307 9204 2 6 9202 9199 9028 9029 9031 9204 2 7 9203 9031 9032 9205 9307 9202 9206 2 5 9204 9032 9034 9037 9206 2 6 9205 9037 9207 9307 9204 9308 2 6 9206 9037 9038 9208 9308 9309 2 6 9207 9038 9209 9309 9310 9314 2 6 9208 9038 9039 9062 9211 9314 2 6 9060 9041 9043 9059 9056 9044 2 6 9209 9062 9063 9212 9314 9315 2 6 9211 9063 9064 9213 9315 9316 2 6 9212 9064 9065 9214 9319 9316 2 6 9213 9065 9215 9319 9320 9321 2 6 9214 9065 9066 9067 9216 9321 2 6 9215 9067 9068 9069 9217 9321 2 7 9216 9069 9218 9321 9320 9322 9323 2 5 9217 9069 9070 9219 9323 2 7 9218 9070 9071 9220 9323 9324 9325 2 5 9219 9071 9072 9221 9325 2 7 9220 9072 9073 9222 9325 9326 9327 1 6 9221 9073 9223 9224 9327 9328 1 5 9222 9073 9074 9224 9225 1 6 9222 9223 9225 9328 9329 9330 1 6 9224 9223 9074 9075 9226 9330 1 7 9225 9075 9076 9077 9227 9330 9331 1 6 9226 9077 9228 9331 9332 9229 1 6 9227 9077 9078 9079 9080 9229 1 7 9228 9080 9230 9332 9227 9333 9334 1 6 9229 9080 9081 9231 9334 9335 1 6 9230 9081 9082 9232 9335 9336 1 7 9231 9082 9083 9085 9233 9336 9337 1 5 9232 9085 9087 9234 9337 1 7 9233 9087 9089 9235 9337 9338 9339 1 5 9234 9089 9095 9236 9339 1 7 9235 9095 9237 9339 9340 9341 9342 1 6 9236 9095 9096 9238 9342 9343 1 6 9237 9096 9239 9343 9344 9345 1 6 9238 9096 9097 9240 9345 9346 1 6 9239 9097 9098 9241 9346 9347 1 6 9240 9098 9242 9347 9245 9243 1 6 9241 9098 9099 9101 9102 9243 1 6 9242 9102 9103 9244 9245 9241 1 6 9243 9103 9245 9110 9109 9104 1 6 9243 9244 9110 9347 9241 9348 1 6 9116 9117 9247 9353 9354 9355 1 6 9246 9117 9118 9248 9355 9356 1 6 9247 9118 9119 9120 9249 9356 1 6 9248 9120 9250 9356 9357 9358 1 6 9249 9120 9121 9251 9358 9252 1 6 9250 9121 9122 9123 9124 9252 1 7 9251 9124 9125 9253 9358 9250 9359 1 5 9252 9125 9254 9359 9360 1 7 9253 9125 9126 9127 9255 9360 9361 1 6 9254 9127 9128 9256 9361 9362 1 6 9255 9128 9257 9362 9363 9364 1 6 9256 9128 9129 9130 9258 9364 1 7 9257 9130 9131 9259 9364 9365 9366 1 6 9258 9131 9132 9260 9366 9367 1 6 9259 9132 9133 9261 9367 9368 1 6 9260 9133 9134 9262 9368 9369 1 6 9261 9134 9135 9263 9369 9370 1 6 9262 9135 9264 9370 9371 9372 1 6 9263 9135 9136 9137 9265 9372 1 6 9264 9137 9138 9266 9372 9373 2 6 9265 9138 9139 9267 9373 9374 2 6 9266 9139 9140 9268 9374 9375 2 7 9267 9140 9141 9142 9269 9375 9376 2 5 9268 9142 9270 9376 9377 2 6 9269 9142 9143 9271 9377 9381 2 6 9270 9143 9272 9381 9382 9383 2 6 9271 9143 9144 9145 9273 9383 2 6 9272 9145 9146 9274 9383 9384 2 6 9273 9146 9148 9275 9384 9385 2 7 9274 9148 9149 9150 9276 9385 9386 2 5 9275 9150 9277 9386 9388 2 6 9276 9150 9151 9278 9388 9389 2 6 9277 9151 9152 9279 9389 9390 2 6 9278 9152 9153 9280 9390 9391 2 5 9279 9153 9154 9281 9391 2 6 9280 9154 9155 9282 9393 9391 2 6 9281 9155 9156 9283 9393 9394 2 6 9282 9156 9284 9394 9395 9396 2 6 9283 9156 9157 9285 9396 9397 2 6 9284 9157 9158 9159 9286 9397 2 6 9285 9159 9160 9287 9397 9398 2 5 9286 9160 9162 9288 9398 2 7 9287 9162 9289 9398 9399 9400 9401 2 6 9288 9162 9163 9166 9290 9401 2 7 9289 9166 9186 9187 9291 9402 9401 2 6 9290 9187 9188 9189 9292 9402 2 7 9291 9189 9190 9193 9293 9402 9400 2 6 9292 9193 9194 9294 9400 9403 2 6 9293 9194 9295 9403 9404 9405 2 6 9294 9194 9195 9296 9297 9405 2 6 9295 9195 9297 9298 9302 9196 2 6 9295 9296 9298 9299 9405 9406 2 6 9297 9296 9299 9300 9301 9302 2 6 9297 9298 9300 9409 9406 9410 2 6 9299 9298 9301 9410 9411 9412 2 7 9300 9298 9302 9303 9200 9304 9412 2 6 9301 9298 9296 9196 9197 9303 2 5 9302 9197 9198 9200 9301 2 5 9301 9200 9201 9305 9412 2 7 9304 9201 9306 9412 9413 9414 9418 2 5 9305 9201 9202 9307 9418 2 6 9306 9202 9204 9206 9308 9418 2 6 9307 9206 9207 9309 9417 9418 2 6 9308 9207 9208 9310 9311 9417 2 6 9309 9208 9311 9312 9313 9314 2 6 9309 9310 9312 9416 9417 9419 2 6 9311 9310 9313 9419 9420 9424 2 7 9312 9310 9314 9424 9425 9317 9315 2 6 9313 9310 9208 9209 9211 9315 2 6 9314 9211 9212 9316 9317 9313 2 6 9315 9212 9317 9318 9319 9213 2 6 9315 9316 9318 9425 9313 9426 2 6 9317 9316 9319 9426 9427 9428 2 6 9318 9316 9213 9214 9320 9428 2 6 9319 9214 9321 9217 9322 9428 2 5 9320 9214 9215 9216 9217 2 6 9320 9217 9323 9428 9429 9430 2 6 9322 9217 9218 9219 9324 9430 2 6 9323 9219 9325 9430 9431 9432 2 6 9324 9219 9220 9221 9326 9432 2 6 9325 9221 9327 9432 9433 9434 2 6 9326 9221 9222 9328 9434 9435 1 5 9327 9222 9224 9329 9435 1 7 9328 9224 9330 9435 9436 9437 9438 1 6 9329 9224 9225 9226 9331 9438 1 6 9330 9226 9227 9332 9438 9439 1 6 9331 9227 9229 9333 9442 9439 1 6 9332 9229 9334 9442 9443 9446 1 5 9333 9229 9230 9335 9446 1 6 9334 9230 9231 9336 9446 9447 1 6 9335 9231 9232 9337 9447 9448 1 6 9336 9232 9233 9234 9338 9448 1 6 9337 9234 9339 9448 9449 9450 1 6 9338 9234 9235 9236 9340 9450 1 6 9339 9236 9341 9450 9451 9452 1 6 9340 9236 9342 9452 9453 9454 1 6 9341 9236 9237 9343 9454 9455 1 5 9342 9237 9238 9344 9455 1 7 9343 9238 9345 9455 9456 9457 9458 1 6 9344 9238 9239 9346 9458 9349 1 5 9345 9239 9240 9347 9349 1 6 9346 9240 9241 9245 9348 9349 1 6 9347 9245 9349 9350 9111 9110 1 7 9347 9348 9350 9458 9345 9346 9351 1 6 9349 9348 9111 9112 9113 9351 1 7 9350 9113 9114 9352 9458 9349 9459 1 6 9351 9114 9115 9353 9459 9460 1 6 9352 9115 9116 9246 9354 9460 1 6 9353 9246 9355 9460 9461 9462 1 6 9354 9246 9247 9356 9462 9463 1 6 9355 9247 9248 9249 9357 9463 1 6 9356 9249 9358 9463 9464 9465 1 6 9357 9249 9250 9252 9359 9465 1 5 9358 9252 9253 9360 9465 1 7 9359 9253 9254 9361 9465 9466 9467 1 5 9360 9254 9255 9362 9467 1 6 9361 9255 9256 9363 9467 9468 1 6 9362 9256 9364 9468 9469 9470 1 6 9363 9256 9257 9258 9365 9470 1 6 9364 9258 9366 9470 9471 9472 1 5 9365 9258 9259 9367 9472 1 6 9366 9259 9260 9368 9472 9473 1 6 9367 9260 9261 9369 9473 9474 1 6 9368 9261 9262 9370 9474 9475 1 6 9369 9262 9263 9371 9475 9476 1 6 9370 9263 9372 9476 9477 9478 1 6 9371 9263 9264 9265 9373 9478 1 6 9372 9265 9266 9374 9478 9479 2 6 9373 9266 9267 9375 9479 9480 2 6 9374 9267 9268 9376 9480 9481 2 6 9375 9268 9269 9377 9378 9481 2 7 9376 9269 9270 9378 9379 9380 9381 2 5 9376 9377 9379 9481 9482 2 6 9378 9377 9380 9482 9483 9484 2 6 9379 9377 9381 9484 9485 9382 2 5 9380 9377 9270 9271 9382 2 6 9381 9271 9383 9485 9380 9486 2 7 9382 9271 9272 9273 9384 9486 9487 2 6 9383 9273 9274 9385 9487 9488 2 6 9384 9274 9275 9386 9387 9488 2 5 9385 9275 9276 9387 9388 2 6 9385 9386 9388 9488 9489 9490 2 7 9387 9386 9276 9277 9389 9490 9491 2 6 9388 9277 9278 9390 9491 9492 2 6 9389 9278 9279 9391 9392 9492 2 6 9390 9279 9392 9393 9281 9280 2 6 9390 9391 9393 9492 9493 9494 2 6 9392 9391 9281 9282 9394 9494 2 6 9393 9282 9283 9395 9494 9495 2 6 9394 9283 9396 9495 9496 9497 2 6 9395 9283 9284 9397 9498 9497 2 6 9396 9284 9285 9286 9398 9498 2 6 9397 9286 9287 9288 9399 9498 2 6 9398 9288 9400 9498 9404 9403 2 7 9399 9288 9401 9402 9292 9293 9403 2 5 9400 9288 9402 9290 9289 2 5 9400 9401 9290 9291 9292 2 5 9400 9293 9294 9404 9399 2 6 9403 9294 9405 9498 9399 9407 2 6 9404 9294 9295 9297 9406 9407 2 6 9405 9297 9407 9408 9409 9299 2 6 9405 9406 9408 9497 9498 9404 2 6 9407 9406 9409 9496 9497 9499 2 6 9408 9406 9299 9410 9499 9500 2 6 9409 9299 9300 9411 9500 9501 2 6 9410 9300 9412 9501 9502 9413 2 6 9411 9300 9301 9304 9305 9413 2 6 9412 9305 9414 9415 9502 9411 2 6 9413 9305 9415 9416 9417 9418 2 6 9413 9414 9416 9502 9503 9504 2 6 9415 9414 9417 9311 9419 9504 2 6 9416 9414 9418 9308 9309 9311 2 6 9417 9414 9308 9307 9306 9305 2 6 9416 9311 9312 9420 9421 9504 2 6 9419 9312 9421 9422 9423 9424 2 6 9419 9420 9422 9504 9505 9506 2 6 9421 9420 9423 9506 9507 9508 2 6 9422 9420 9424 9511 9508 9512 2 6 9423 9420 9312 9313 9425 9512 2 5 9424 9313 9317 9426 9512 2 6 9425 9317 9318 9427 9512 9513 2 6 9426 9318 9428 9513 9514 9429 2 6 9427 9318 9319 9320 9322 9429 2 6 9428 9322 9430 9517 9514 9427 2 6 9429 9322 9323 9324 9431 9517 2 6 9430 9324 9432 9524 9517 9525 2 6 9431 9324 9325 9326 9433 9525 2 6 9432 9326 9434 9525 9526 9527 2 6 9433 9326 9327 9435 9527 9528 2 6 9434 9327 9328 9329 9436 9528 2 6 9435 9329 9437 9528 9530 9531 1 6 9436 9329 9438 9531 9532 9440 1 6 9437 9329 9330 9331 9439 9440 1 6 9438 9331 9440 9441 9442 9332 1 5 9438 9439 9441 9532 9437 1 7 9440 9439 9442 9443 9444 9532 9533 1 5 9441 9439 9332 9333 9443 1 6 9442 9333 9441 9444 9445 9446 1 5 9441 9443 9445 9533 9534 1 6 9444 9443 9446 9534 9535 9536 1 7 9445 9443 9333 9334 9335 9447 9536 1 6 9446 9335 9336 9448 9536 9537 1 6 9447 9336 9337 9338 9449 9537 1 6 9448 9338 9450 9537 9538 9451 1 5 9449 9338 9339 9340 9451 1 7 9450 9340 9452 9538 9449 9539 9540 1 6 9451 9340 9341 9453 9540 9541 1 6 9452 9341 9454 9541 9542 9543 1 6 9453 9341 9342 9455 9543 9544 1 6 9454 9342 9343 9344 9456 9544 1 6 9455 9344 9457 9544 9545 9461 1 6 9456 9344 9458 9461 9460 9459 1 6 9457 9344 9345 9349 9351 9459 1 5 9458 9351 9352 9460 9457 1 6 9459 9352 9353 9354 9461 9457 1 6 9460 9354 9462 9545 9456 9457 1 5 9461 9354 9355 9463 9545 1 7 9462 9355 9356 9357 9464 9545 9546 1 6 9463 9357 9465 9546 9547 9548 1 7 9464 9357 9358 9359 9360 9466 9548 1 6 9465 9360 9467 9548 9549 9550 1 6 9466 9360 9361 9362 9468 9550 1 6 9467 9362 9363 9469 9550 9551 1 6 9468 9363 9470 9551 9552 9553 1 6 9469 9363 9364 9365 9471 9553 1 6 9470 9365 9472 9553 9554 9555 1 6 9471 9365 9366 9367 9473 9555 1 6 9472 9367 9368 9474 9555 9556 1 6 9473 9368 9369 9475 9556 9557 1 6 9474 9369 9370 9476 9557 9558 1 6 9475 9370 9371 9477 9558 9559 1 6 9476 9371 9478 9559 9560 9561 1 6 9477 9371 9372 9373 9479 9561 1 6 9478 9373 9374 9480 9561 9562 2 6 9479 9374 9375 9481 9562 9563 2 6 9480 9375 9376 9378 9482 9563 2 6 9481 9378 9379 9483 9563 9564 2 6 9482 9379 9484 9564 9565 9566 2 6 9483 9379 9380 9485 9566 9567 2 6 9484 9380 9382 9486 9567 9568 2 6 9485 9382 9383 9487 9568 9569 2 6 9486 9383 9384 9488 9569 9570 2 6 9487 9384 9385 9387 9489 9570 2 6 9488 9387 9490 9570 9571 9572 2 6 9489 9387 9388 9491 9572 9573 2 6 9490 9388 9389 9492 9573 9574 2 6 9491 9389 9390 9392 9493 9574 2 6 9492 9392 9494 9574 9575 9576 2 6 9493 9392 9393 9394 9495 9576 2 6 9494 9394 9395 9496 9576 9577 2 6 9495 9395 9497 9408 9499 9577 2 6 9496 9395 9408 9407 9498 9396 2 7 9407 9497 9396 9397 9398 9399 9404 2 5 9496 9408 9409 9500 9577 2 7 9499 9409 9410 9501 9577 9578 9579 2 6 9500 9410 9411 9502 9579 9580 2 6 9501 9411 9413 9415 9503 9580 2 6 9502 9415 9504 9580 9581 9582 2 7 9503 9415 9416 9419 9421 9505 9582 2 5 9504 9421 9506 9582 9583 2 6 9505 9421 9422 9507 9583 9584 2 6 9506 9422 9508 9509 9584 9585 2 6 9507 9422 9509 9510 9511 9423 2 6 9507 9508 9510 9585 9586 9587 2 6 9509 9508 9511 9518 9587 9521 2 6 9510 9508 9423 9512 9518 9519 2 7 9511 9423 9424 9425 9426 9513 9519 2 6 9512 9426 9427 9514 9515 9519 2 6 9513 9427 9515 9516 9517 9429 2 6 9513 9514 9516 9519 9518 9520 2 6 9515 9514 9517 9523 9520 9524 2 6 9516 9514 9429 9430 9524 9431 2 6 9510 9511 9519 9515 9520 9521 2 5 9518 9511 9512 9513 9515 2 6 9518 9515 9521 9522 9523 9516 2 6 9518 9520 9522 9587 9510 9588 2 6 9521 9520 9523 9588 9589 9590 2 6 9522 9520 9516 9524 9590 9591 2 6 9523 9516 9517 9431 9525 9591 2 7 9524 9431 9432 9433 9526 9591 9592 2 5 9525 9433 9527 9592 9593 2 6 9526 9433 9434 9528 9529 9593 2 6 9527 9434 9435 9436 9529 9530 2 6 9527 9528 9530 9593 9594 9595 2 6 9529 9528 9436 9531 9595 9596 2 6 9530 9436 9437 9532 9596 9597 1 7 9531 9437 9440 9441 9533 9597 9598 1 5 9532 9441 9444 9534 9598 1 7 9533 9444 9445 9535 9598 9599 9600 1 6 9534 9445 9536 9600 9601 9602 1 7 9535 9445 9446 9447 9537 9602 9603 1 6 9536 9447 9448 9449 9538 9603 1 6 9537 9449 9451 9539 9603 9604 1 6 9538 9451 9540 9604 9605 9606 1 6 9539 9451 9452 9541 9606 9607 1 5 9540 9452 9453 9542 9607 1 7 9541 9453 9543 9607 9608 9609 9610 1 5 9542 9453 9454 9544 9610 1 7 9543 9454 9455 9456 9545 9610 9546 1 6 9544 9456 9461 9462 9463 9546 1 6 9545 9463 9464 9547 9610 9544 1 6 9546 9464 9548 9610 9609 9549 1 5 9547 9464 9465 9466 9549 1 6 9548 9466 9550 9609 9547 9611 1 6 9549 9466 9467 9468 9551 9611 1 6 9550 9468 9469 9552 9611 9612 1 6 9551 9469 9553 9612 9613 9614 1 6 9552 9469 9470 9471 9554 9614 1 6 9553 9471 9555 9614 9615 9616 1 6 9554 9471 9472 9473 9556 9616 1 6 9555 9473 9474 9557 9616 9617 1 6 9556 9474 9475 9558 9617 9618 1 6 9557 9475 9476 9559 9618 9619 1 6 9558 9476 9477 9560 9619 9620 1 6 9559 9477 9561 9620 9621 9622 1 6 9560 9477 9478 9479 9562 9622 1 6 9561 9479 9480 9563 9622 9623 2 6 9562 9480 9481 9482 9564 9623 2 6 9563 9482 9483 9565 9623 9624 2 6 9564 9483 9566 9624 9625 9626 2 6 9565 9483 9484 9567 9626 9627 2 6 9566 9484 9485 9568 9627 9628 2 7 9567 9485 9486 9569 9628 9629 9630 2 6 9568 9486 9487 9570 9630 9631 2 6 9569 9487 9488 9489 9571 9631 2 6 9570 9489 9572 9631 9632 9633 2 6 9571 9489 9490 9573 9633 9634 2 6 9572 9490 9491 9574 9634 9635 2 6 9573 9491 9492 9493 9575 9635 2 6 9574 9493 9576 9635 9636 9578 2 6 9575 9493 9494 9495 9577 9578 2 6 9576 9495 9496 9499 9500 9578 2 6 9577 9500 9579 9636 9575 9576 2 6 9578 9500 9501 9580 9636 9581 2 5 9579 9501 9502 9503 9581 2 6 9580 9503 9582 9636 9579 9637 2 6 9581 9503 9504 9505 9583 9637 2 6 9582 9505 9506 9584 9637 9638 2 6 9583 9506 9507 9585 9638 9633 2 6 9584 9507 9509 9586 9633 9632 2 6 9585 9509 9587 9632 9639 9629 2 6 9586 9509 9510 9521 9588 9629 2 6 9587 9521 9522 9589 9629 9628 2 6 9588 9522 9590 9628 9627 9640 2 6 9589 9522 9523 9591 9640 9641 2 6 9590 9523 9524 9525 9592 9641 2 6 9591 9525 9526 9593 9641 9642 2 7 9592 9526 9527 9529 9594 9642 9643 2 5 9593 9529 9595 9643 9644 2 6 9594 9529 9530 9596 9644 9645 2 6 9595 9530 9531 9597 9645 9646 1 6 9596 9531 9532 9598 9646 9647 1 6 9597 9532 9533 9534 9599 9647 1 5 9598 9534 9600 9647 9648 1 7 9599 9534 9535 9601 9648 9649 9650 1 5 9600 9535 9602 9650 9651 1 6 9601 9535 9536 9603 9651 9604 1 5 9602 9536 9537 9538 9604 1 6 9603 9538 9539 9605 9651 9602 1 6 9604 9539 9606 9651 9652 9653 1 6 9605 9539 9540 9607 9653 9613 1 6 9606 9540 9541 9542 9608 9613 1 6 9607 9542 9609 9613 9612 9611 1 6 9608 9542 9610 9547 9549 9611 1 6 9609 9542 9543 9544 9546 9547 1 6 9609 9549 9550 9551 9612 9608 1 5 9611 9551 9552 9613 9608 1 7 9612 9552 9614 9653 9606 9607 9608 1 6 9613 9552 9553 9554 9615 9653 1 6 9614 9554 9616 9653 9652 9654 1 6 9615 9554 9555 9556 9617 9654 1 6 9616 9556 9557 9618 9654 9655 1 6 9617 9557 9558 9619 9655 9656 1 6 9618 9558 9559 9620 9656 9657 1 6 9619 9559 9560 9621 9657 9658 1 6 9620 9560 9622 9658 9659 9660 1 6 9621 9560 9561 9562 9623 9660 2 6 9622 9562 9563 9564 9624 9660 2 7 9623 9564 9565 9625 9660 9661 9662 2 5 9624 9565 9626 9662 9663 2 7 9625 9565 9566 9627 9663 9664 9640 2 6 9626 9566 9567 9628 9589 9640 2 6 9627 9567 9568 9629 9588 9589 2 7 9628 9568 9630 9639 9586 9587 9588 2 5 9629 9568 9569 9631 9639 2 6 9630 9569 9570 9571 9632 9639 2 6 9631 9571 9633 9585 9586 9639 2 7 9632 9571 9572 9634 9638 9584 9585 2 6 9633 9572 9573 9635 9637 9638 2 6 9634 9573 9574 9575 9636 9637 2 6 9635 9575 9578 9579 9581 9637 2 7 9636 9581 9582 9583 9638 9635 9634 2 5 9637 9583 9584 9633 9634 2 5 9632 9586 9629 9630 9631 2 6 9627 9589 9590 9641 9664 9626 2 6 9640 9590 9591 9592 9642 9664 2 6 9641 9592 9593 9643 9664 9663 2 6 9642 9593 9594 9644 9663 9662 2 7 9643 9594 9595 9645 9662 9661 9665 2 7 9644 9595 9596 9646 9665 9659 9666 1 6 9645 9596 9597 9647 9666 9667 1 6 9646 9597 9598 9599 9648 9667 1 6 9647 9599 9600 9649 9667 9668 1 6 9648 9600 9650 9668 9656 9655 1 6 9649 9600 9601 9651 9655 9669 1 7 9650 9601 9602 9604 9605 9652 9669 1 6 9651 9605 9653 9615 9654 9669 1 6 9652 9605 9606 9613 9614 9615 1 6 9652 9615 9616 9617 9655 9669 1 7 9654 9617 9618 9656 9649 9650 9669 1 6 9655 9618 9619 9657 9668 9649 1 5 9656 9619 9620 9658 9668 1 6 9657 9620 9621 9659 9668 9666 1 6 9658 9621 9660 9665 9645 9666 2 7 9659 9621 9622 9623 9624 9661 9665 2 5 9660 9624 9662 9644 9665 2 6 9661 9624 9625 9663 9643 9644 2 6 9662 9625 9626 9664 9642 9643 2 5 9663 9626 9640 9641 9642 2 5 9661 9644 9645 9659 9660 1 6 9659 9645 9646 9667 9668 9658 1 5 9666 9646 9647 9648 9668 1 7 9667 9648 9649 9656 9657 9658 9666 1 5 9655 9650 9651 9652 9654 1 6 6653 6650 6651 9671 9691 9681 1 6 9670 6651 9672 9676 9680 9681 1 6 9671 6651 9673 9674 9675 9676 1 6 9672 6651 9674 6649 9727 6365 1 6 9672 9673 9675 9725 9726 9727 1 6 9672 9674 9676 9677 9678 9725 1 6 9672 9675 9677 9679 9680 9671 1 5 9676 9675 9678 5235 9679 1 7 9677 9675 5235 9734 4519 9725 9733 1 6 9677 5235 5236 9676 9680 9683 1 7 9676 9679 9671 9681 9682 4654 9683 1 6 9671 9680 9682 9691 9670 9685 1 5 9681 9680 4654 4655 9685 1 6 4654 9680 9679 5236 4652 9684 1 6 4652 9683 4650 422 5237 5236 1 6 9682 4655 9686 9687 9691 9681 1 6 9685 4655 9687 3169 9688 4656 1 6 9685 9686 3169 3170 9691 3172 1 7 3169 9686 4656 9689 3168 2843 9690 1 5 9688 4656 5380 430 9690 1 6 2843 9688 9689 430 2841 429 1 6 9685 9687 3172 6653 9670 9681 1 6 6475 6478 6474 9779 9774 9780 1 6 6460 6461 6465 6467 6377 6378 1 6 5862 5863 9695 9702 9703 9700 1 6 9694 5863 5864 9696 5719 9700 1 5 9695 5864 5865 5718 5719 1 6 5718 5865 5866 5867 9698 9699 1 6 9697 5867 9699 5695 5694 5868 1 5 9697 9698 5695 5696 5718 1 6 9695 5719 5720 9701 9702 9694 1 5 9700 5720 5721 5724 9702 1 6 9701 5724 6095 9703 9694 9700 1 6 9702 6095 6383 9694 5862 5861 1 6 6490 2252 415 2194 6488 6489 1 7 6488 2195 6487 6480 2196 9773 9778 1 5 2251 6491 3336 6492 3335 1 6 3335 6492 3334 6499 6493 6494 1 6 6502 6503 9709 2189 9711 9712 1 6 6502 9708 2189 6501 9710 2190 1 6 6501 9709 6500 2190 2191 2512 1 7 9708 6503 6512 9712 9715 9716 9717 1 5 9708 9711 2189 9713 9715 1 6 2189 9712 2187 2197 9714 9715 1 6 2197 9713 9715 2215 2216 9720 1 6 9714 9713 9712 9711 9716 2215 1 7 9715 9711 9717 9718 9719 2214 2215 1 6 9716 9711 6512 6513 6514 9718 1 5 9717 6514 6516 9719 9716 1 5 9718 6516 9716 2214 6522 1 6 9714 2216 2217 2200 2198 2197 1 6 6669 6775 9722 9723 6656 6658 1 5 9721 6775 9723 9724 9798 1 6 9721 9722 9724 6646 6656 6655 1 6 9723 9722 6646 6645 9799 9798 1 6 9675 9674 9726 9678 9733 9735 1 6 9725 9674 9727 9729 9735 9728 1 6 9726 9674 9673 6365 6366 9728 1 6 9727 6366 6368 6370 9729 9726 1 6 9728 6370 9730 9731 9735 9726 1 6 9729 6370 6371 6375 6467 9731 1 6 9730 6467 6466 9732 9735 9729 1 6 9731 6466 6468 7510 9733 9735 1 6 9732 7510 9734 9735 9678 9725 1 6 9733 7510 7508 4518 4519 9678 1 6 9732 9733 9731 9729 9726 9725 1 6 6041 6039 6038 6019 5872 5874 1 6 6132 6398 6392 6393 6115 9738 1 6 9737 6115 6116 6132 6131 6122 1 6 569 571 9740 9744 568 9743 1 6 9739 571 573 9741 9742 9743 1 6 9740 573 916 917 9742 918 1 6 9740 9741 918 9743 921 919 1 6 9740 9742 921 563 9744 9739 1 6 9743 563 564 567 568 9739 2 6 7205 7206 9746 7218 7217 7216 2 6 9745 7206 7207 7213 7216 7214 1 6 3491 3492 3496 3502 6706 6555 1 5 6706 3502 9749 3503 6710 1 5 6706 9748 6710 6707 6705 1 5 6682 5157 4667 6681 9761 1 5 3201 3470 3410 3200 3411 1 6 5932 5910 5915 5916 9755 5931 1 5 4915 4917 9754 4880 4879 1 7 9753 4917 4911 4880 9756 4904 9759 1 7 9752 5916 5931 5921 5920 5919 9758 1 6 4880 9754 9757 4895 4897 9759 1 5 4880 9756 4895 4884 4881 1 5 5919 9755 5918 5916 5917 1 6 9754 4904 4901 4898 4897 9756 1 6 4638 4912 4875 4872 4869 4868 1 7 6681 9750 4667 4668 9762 4560 9792 1 5 9761 4668 4546 4548 4560 1 5 8468 8469 9764 9765 8486 1 5 8468 9763 9765 7726 7962 1 7 9764 9763 8486 7714 7715 7723 7726 2 6 8023 8021 7738 7739 7740 7742 1 5 7723 7715 7716 7719 7721 1 6 427 7500 7502 9769 46 45 1 6 9768 7502 9770 9772 44 45 1 7 9769 7502 7503 9771 9772 9774 9780 1 7 2196 43 1 9772 9770 9773 9774 1 5 9771 1 9770 9769 44 1 6 2196 9771 9774 9705 9778 9779 1 6 9773 9771 9770 9779 9692 9780 1 6 7253 7256 7523 7520 7517 7516 1 6 2095 2083 2084 6093 3138 3131 1 5 6638 6639 6642 6787 6785 1 5 9705 9773 9779 6478 6480 1 5 9778 9773 9774 9692 6478 1 5 9692 9774 6474 9770 7503 1 6 3852 3129 26 25 1526 3130 1 6 6787 6642 6643 9783 6789 6170 1 5 9782 6643 6168 6169 6170 2 6 4396 4529 4395 4121 4119 4530 1 6 6637 6783 6779 6636 6635 6771 2 6 4118 3529 3531 9787 9789 4120 2 6 9786 3531 3533 9788 7174 9789 2 6 9787 3533 3535 7178 7175 7174 2 6 9787 7174 9786 4120 4122 7172 1 5 7670 7695 7696 7698 7669 2 6 7775 3145 4231 3413 3414 7776 1 6 4560 6675 6676 6677 6681 9761 1 6 3659 3660 4908 9794 4369 4371 1 5 9793 4908 4642 4370 4369 1 6 5543 5545 5700 5540 5541 5542 1 6 6177 6178 9797 9798 6181 9799 1 6 6782 6177 9796 9798 6776 6780 1 7 9797 9796 6776 9799 9724 9722 6775 1 6 9796 6181 6183 6645 9724 9798 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/bump_old.map000066400000000000000000002207711514310134000262420ustar00rootroot000000000000009800 0 24 1 18 2 0 3 14 4 11 5 30 6 24 7 24 8 24 9 24 10 24 11 24 12 24 13 24 14 24 15 27 16 27 17 27 18 27 19 27 20 27 21 27 22 27 23 27 24 27 25 27 26 27 27 27 28 27 29 27 30 27 31 27 32 27 33 27 34 27 35 27 36 27 37 18 38 18 39 18 40 18 41 18 42 18 43 18 44 18 45 18 46 18 47 18 48 18 49 18 50 18 51 18 52 16 53 16 54 16 55 16 56 16 57 16 58 16 59 16 60 16 61 16 62 16 63 16 64 16 65 16 66 16 67 16 68 16 69 16 70 0 71 0 72 0 73 0 74 0 75 0 76 0 77 0 78 0 79 0 80 0 81 0 82 0 83 0 84 2 85 2 86 2 87 2 88 2 89 2 90 2 91 2 92 2 93 2 94 2 95 2 96 3 97 3 98 3 99 3 100 3 101 3 102 3 103 3 104 3 105 3 106 3 107 3 108 3 109 3 110 3 111 3 112 3 113 13 114 13 115 13 116 13 117 13 118 13 119 13 120 13 121 13 122 13 123 13 124 14 125 14 126 14 127 14 128 14 129 14 130 14 131 14 132 14 133 14 134 14 135 14 136 14 137 14 138 14 139 14 140 14 141 14 142 14 143 14 144 14 145 14 146 14 147 14 148 14 149 14 150 14 151 14 152 14 153 14 154 14 155 14 156 14 157 15 158 15 159 15 160 15 161 15 162 15 163 15 164 15 165 15 166 15 167 15 168 15 169 15 170 15 171 15 172 15 173 15 174 15 175 15 176 8 177 8 178 8 179 8 180 8 181 8 182 8 183 8 184 8 185 8 186 8 187 8 188 11 189 11 190 11 191 11 192 11 193 11 194 11 195 11 196 11 197 11 198 11 199 11 200 11 201 11 202 11 203 11 204 11 205 11 206 11 207 11 208 11 209 11 210 11 211 11 212 11 213 11 214 11 215 11 216 11 217 11 218 11 219 11 220 11 221 11 222 11 223 11 224 10 225 10 226 10 227 10 228 10 229 10 230 10 231 10 232 10 233 10 234 10 235 10 236 10 237 10 238 10 239 10 240 10 241 10 242 10 243 10 244 10 245 10 246 10 247 4 248 4 249 4 250 4 251 4 252 4 253 4 254 4 255 4 256 4 257 4 258 5 259 5 260 5 261 5 262 5 263 5 264 5 265 5 266 5 267 5 268 5 269 5 270 5 271 5 272 20 273 20 274 20 275 20 276 20 277 20 278 20 279 20 280 20 281 20 282 20 283 20 284 20 285 20 286 20 287 20 288 20 289 22 290 22 291 22 292 22 293 22 294 22 295 22 296 22 297 22 298 22 299 22 300 22 301 22 302 22 303 22 304 22 305 22 306 22 307 22 308 22 309 22 310 22 311 22 312 22 313 22 314 28 315 28 316 28 317 28 318 28 319 28 320 28 321 28 322 28 323 28 324 30 325 30 326 30 327 30 328 30 329 30 330 30 331 30 332 30 333 30 334 30 335 30 336 30 337 30 338 30 339 30 340 30 341 30 342 30 343 30 344 30 345 30 346 30 347 30 348 30 349 30 350 30 351 30 352 30 353 30 354 30 355 30 356 31 357 31 358 31 359 31 360 31 361 31 362 31 363 31 364 31 365 31 366 31 367 31 368 31 369 31 370 31 371 31 372 25 373 25 374 25 375 25 376 25 377 25 378 25 379 25 380 25 381 25 382 25 383 25 384 25 385 25 386 24 387 24 388 24 389 24 390 24 391 24 392 24 393 24 394 24 395 24 396 24 397 24 398 24 399 24 400 24 401 24 402 24 403 24 404 24 405 24 406 24 407 24 408 16 409 0 410 18 411 18 412 24 413 24 414 27 415 18 416 18 417 24 418 24 419 24 420 24 421 18 422 18 423 24 424 24 425 25 426 18 427 18 428 0 429 16 430 16 431 4 432 5 433 5 434 5 435 5 436 5 437 5 438 5 439 5 440 5 441 5 442 5 443 5 444 5 445 5 446 20 447 20 448 20 449 20 450 20 451 20 452 20 453 20 454 20 455 20 456 20 457 20 458 20 459 20 460 20 461 20 462 22 463 22 464 22 465 22 466 22 467 22 468 22 469 22 470 22 471 22 472 22 473 22 474 22 475 22 476 22 477 22 478 22 479 22 480 22 481 22 482 22 483 22 484 22 485 22 486 22 487 28 488 28 489 28 490 28 491 28 492 28 493 28 494 28 495 28 496 28 497 28 498 30 499 30 500 30 501 30 502 30 503 30 504 30 505 30 506 30 507 30 508 30 509 30 510 30 511 30 512 30 513 30 514 30 515 30 516 30 517 30 518 30 519 30 520 30 521 30 522 30 523 30 524 30 525 30 526 30 527 30 528 30 529 31 530 31 531 31 532 31 533 31 534 31 535 31 536 31 537 31 538 31 539 31 540 31 541 31 542 31 543 31 544 31 545 25 546 25 547 25 548 25 549 25 550 25 551 25 552 25 553 25 554 25 555 25 556 25 557 25 558 25 559 25 560 25 561 25 562 25 563 25 564 25 565 25 566 25 567 25 568 25 569 25 570 25 571 25 572 25 573 25 574 25 575 24 576 24 577 24 578 24 579 24 580 24 581 24 582 24 583 24 584 24 585 24 586 24 587 24 588 24 589 24 590 24 591 24 592 24 593 24 594 24 595 24 596 24 597 24 598 24 599 24 600 24 601 24 602 24 603 24 604 24 605 24 606 24 607 24 608 24 609 24 610 24 611 24 612 24 613 24 614 24 615 24 616 24 617 24 618 24 619 24 620 24 621 24 622 24 623 24 624 24 625 24 626 24 627 24 628 24 629 24 630 24 631 24 632 24 633 24 634 24 635 24 636 24 637 24 638 24 639 24 640 24 641 24 642 24 643 24 644 24 645 24 646 24 647 24 648 24 649 24 650 24 651 15 652 15 653 15 654 15 655 15 656 15 657 15 658 15 659 15 660 15 661 15 662 15 663 15 664 8 665 8 666 8 667 8 668 8 669 8 670 8 671 8 672 8 673 8 674 8 675 11 676 11 677 11 678 11 679 11 680 11 681 11 682 11 683 11 684 11 685 11 686 11 687 11 688 11 689 11 690 11 691 11 692 11 693 11 694 11 695 11 696 11 697 11 698 11 699 11 700 11 701 11 702 11 703 11 704 11 705 11 706 11 707 11 708 11 709 10 710 10 711 10 712 10 713 10 714 10 715 10 716 10 717 10 718 10 719 10 720 10 721 10 722 10 723 10 724 10 725 10 726 10 727 10 728 10 729 10 730 10 731 10 732 4 733 4 734 4 735 4 736 4 737 4 738 4 739 4 740 4 741 4 742 4 743 4 744 4 745 5 746 5 747 5 748 5 749 5 750 5 751 5 752 5 753 5 754 5 755 5 756 5 757 5 758 20 759 20 760 20 761 20 762 20 763 20 764 20 765 20 766 20 767 20 768 20 769 20 770 20 771 20 772 20 773 20 774 20 775 22 776 22 777 22 778 22 779 22 780 22 781 22 782 22 783 22 784 22 785 22 786 22 787 22 788 22 789 22 790 22 791 22 792 22 793 22 794 22 795 22 796 22 797 22 798 22 799 28 800 28 801 28 802 28 803 28 804 28 805 28 806 28 807 28 808 28 809 28 810 28 811 30 812 30 813 30 814 30 815 30 816 30 817 30 818 30 819 30 820 30 821 30 822 30 823 30 824 30 825 30 826 30 827 30 828 30 829 30 830 30 831 30 832 30 833 30 834 30 835 30 836 30 837 30 838 30 839 30 840 31 841 31 842 31 843 31 844 31 845 31 846 31 847 31 848 31 849 31 850 31 851 31 852 31 853 31 854 31 855 31 856 31 857 31 858 31 859 25 860 25 861 25 862 25 863 25 864 25 865 25 866 25 867 25 868 25 869 25 870 25 871 25 872 25 873 25 874 25 875 25 876 25 877 25 878 25 879 25 880 25 881 25 882 25 883 25 884 25 885 25 886 25 887 25 888 25 889 25 890 25 891 25 892 25 893 25 894 25 895 24 896 24 897 24 898 25 899 24 900 24 901 25 902 24 903 25 904 24 905 24 906 24 907 24 908 24 909 24 910 24 911 24 912 24 913 24 914 24 915 24 916 25 917 25 918 25 919 25 920 25 921 25 922 25 923 14 924 14 925 14 926 15 927 15 928 15 929 15 930 15 931 15 932 15 933 15 934 15 935 15 936 15 937 15 938 15 939 15 940 15 941 15 942 15 943 15 944 15 945 15 946 8 947 8 948 8 949 8 950 8 951 8 952 8 953 8 954 8 955 8 956 8 957 11 958 11 959 11 960 11 961 11 962 11 963 11 964 11 965 11 966 11 967 11 968 11 969 11 970 11 971 11 972 11 973 11 974 11 975 11 976 11 977 11 978 11 979 11 980 11 981 11 982 11 983 11 984 11 985 11 986 11 987 11 988 10 989 10 990 10 991 10 992 10 993 10 994 10 995 10 996 10 997 10 998 10 999 10 1000 10 1001 10 1002 10 1003 10 1004 10 1005 10 1006 10 1007 10 1008 10 1009 10 1010 10 1011 4 1012 4 1013 4 1014 4 1015 4 1016 4 1017 4 1018 4 1019 4 1020 4 1021 4 1022 4 1023 4 1024 4 1025 4 1026 4 1027 5 1028 5 1029 5 1030 5 1031 5 1032 5 1033 5 1034 5 1035 5 1036 5 1037 5 1038 5 1039 20 1040 20 1041 20 1042 20 1043 20 1044 20 1045 20 1046 20 1047 20 1048 20 1049 20 1050 20 1051 20 1052 20 1053 20 1054 20 1055 20 1056 22 1057 22 1058 22 1059 22 1060 22 1061 22 1062 22 1063 22 1064 22 1065 22 1066 22 1067 22 1068 22 1069 22 1070 22 1071 22 1072 22 1073 22 1074 22 1075 22 1076 22 1077 22 1078 22 1079 22 1080 22 1081 28 1082 28 1083 28 1084 28 1085 28 1086 28 1087 28 1088 28 1089 28 1090 28 1091 28 1092 28 1093 30 1094 30 1095 30 1096 30 1097 30 1098 30 1099 30 1100 30 1101 30 1102 30 1103 30 1104 30 1105 30 1106 30 1107 30 1108 30 1109 30 1110 30 1111 30 1112 30 1113 30 1114 30 1115 30 1116 30 1117 30 1118 30 1119 30 1120 30 1121 31 1122 31 1123 31 1124 31 1125 31 1126 31 1127 31 1128 31 1129 31 1130 31 1131 31 1132 31 1133 31 1134 31 1135 31 1136 31 1137 31 1138 31 1139 25 1140 25 1141 25 1142 25 1143 25 1144 25 1145 25 1146 25 1147 25 1148 25 1149 25 1150 25 1151 25 1152 31 1153 31 1154 31 1155 31 1156 31 1157 25 1158 25 1159 25 1160 2 1161 2 1162 2 1163 2 1164 25 1165 25 1166 25 1167 25 1168 25 1169 25 1170 25 1171 27 1172 27 1173 27 1174 2 1175 2 1176 2 1177 2 1178 2 1179 2 1180 2 1181 2 1182 2 1183 2 1184 2 1185 2 1186 2 1187 2 1188 2 1189 2 1190 2 1191 2 1192 3 1193 3 1194 3 1195 3 1196 3 1197 3 1198 3 1199 3 1200 3 1201 3 1202 3 1203 3 1204 3 1205 3 1206 3 1207 3 1208 13 1209 13 1210 13 1211 13 1212 13 1213 13 1214 13 1215 13 1216 13 1217 13 1218 13 1219 13 1220 14 1221 14 1222 14 1223 14 1224 14 1225 14 1226 14 1227 14 1228 14 1229 14 1230 14 1231 14 1232 14 1233 14 1234 14 1235 14 1236 14 1237 14 1238 14 1239 14 1240 14 1241 14 1242 14 1243 14 1244 14 1245 14 1246 14 1247 14 1248 14 1249 14 1250 14 1251 14 1252 14 1253 15 1254 15 1255 15 1256 15 1257 15 1258 15 1259 15 1260 15 1261 15 1262 15 1263 15 1264 15 1265 15 1266 15 1267 15 1268 15 1269 15 1270 15 1271 15 1272 8 1273 8 1274 8 1275 8 1276 8 1277 8 1278 8 1279 8 1280 8 1281 8 1282 8 1283 11 1284 11 1285 11 1286 11 1287 11 1288 11 1289 11 1290 11 1291 11 1292 11 1293 11 1294 11 1295 11 1296 11 1297 11 1298 11 1299 11 1300 11 1301 11 1302 11 1303 11 1304 11 1305 11 1306 11 1307 11 1308 11 1309 11 1310 11 1311 11 1312 10 1313 10 1314 10 1315 10 1316 10 1317 10 1318 10 1319 10 1320 10 1321 10 1322 10 1323 10 1324 10 1325 10 1326 10 1327 10 1328 10 1329 10 1330 10 1331 10 1332 10 1333 10 1334 10 1335 10 1336 4 1337 4 1338 4 1339 4 1340 4 1341 4 1342 4 1343 4 1344 4 1345 4 1346 4 1347 4 1348 4 1349 4 1350 4 1351 5 1352 5 1353 5 1354 5 1355 5 1356 5 1357 5 1358 5 1359 5 1360 5 1361 5 1362 5 1363 20 1364 20 1365 20 1366 20 1367 20 1368 20 1369 20 1370 20 1371 20 1372 20 1373 20 1374 20 1375 20 1376 20 1377 20 1378 20 1379 20 1380 22 1381 22 1382 22 1383 22 1384 22 1385 22 1386 22 1387 22 1388 22 1389 22 1390 22 1391 22 1392 22 1393 22 1394 22 1395 22 1396 22 1397 22 1398 22 1399 22 1400 22 1401 22 1402 22 1403 22 1404 22 1405 28 1406 28 1407 28 1408 28 1409 28 1410 28 1411 28 1412 28 1413 28 1414 28 1415 28 1416 28 1417 30 1418 30 1419 30 1420 30 1421 30 1422 30 1423 30 1424 30 1425 30 1426 30 1427 30 1428 30 1429 30 1430 30 1431 30 1432 30 1433 30 1434 30 1435 30 1436 30 1437 30 1438 30 1439 30 1440 30 1441 30 1442 31 1443 31 1444 31 1445 31 1446 31 1447 31 1448 31 1449 31 1450 31 1451 31 1452 31 1453 31 1454 31 1455 31 1456 31 1457 3 1458 3 1459 3 1460 3 1461 31 1462 31 1463 31 1464 31 1465 31 1466 31 1467 31 1468 31 1469 31 1470 31 1471 31 1472 31 1473 31 1474 0 1475 0 1476 0 1477 0 1478 0 1479 0 1480 0 1481 0 1482 2 1483 2 1484 2 1485 2 1486 2 1487 2 1488 2 1489 2 1490 31 1491 31 1492 31 1493 25 1494 25 1495 25 1496 25 1497 25 1498 25 1499 25 1500 3 1501 3 1502 0 1503 0 1504 2 1505 2 1506 24 1507 24 1508 24 1509 24 1510 24 1511 24 1512 24 1513 24 1514 24 1515 24 1516 24 1517 24 1518 24 1519 24 1520 24 1521 24 1522 24 1523 24 1524 27 1525 27 1526 27 1527 25 1528 25 1529 25 1530 25 1531 25 1532 25 1533 25 1534 25 1535 25 1536 24 1537 24 1538 24 1539 24 1540 24 1541 25 1542 24 1543 24 1544 24 1545 24 1546 13 1547 13 1548 13 1549 13 1550 13 1551 13 1552 13 1553 13 1554 13 1555 13 1556 13 1557 13 1558 13 1559 13 1560 13 1561 13 1562 24 1563 24 1564 24 1565 24 1566 24 1567 24 1568 24 1569 24 1570 24 1571 26 1572 26 1573 24 1574 24 1575 24 1576 24 1577 24 1578 24 1579 24 1580 24 1581 24 1582 24 1583 24 1584 24 1585 24 1586 24 1587 24 1588 24 1589 24 1590 24 1591 24 1592 24 1593 24 1594 24 1595 24 1596 24 1597 24 1598 24 1599 24 1600 24 1601 24 1602 24 1603 0 1604 0 1605 0 1606 0 1607 0 1608 0 1609 0 1610 0 1611 0 1612 0 1613 0 1614 0 1615 0 1616 0 1617 0 1618 0 1619 0 1620 0 1621 0 1622 0 1623 0 1624 0 1625 0 1626 0 1627 0 1628 0 1629 0 1630 0 1631 0 1632 0 1633 0 1634 0 1635 0 1636 0 1637 0 1638 0 1639 0 1640 2 1641 2 1642 2 1643 2 1644 2 1645 2 1646 2 1647 2 1648 2 1649 2 1650 2 1651 2 1652 2 1653 2 1654 2 1655 2 1656 2 1657 2 1658 2 1659 2 1660 2 1661 2 1662 2 1663 2 1664 2 1665 2 1666 2 1667 2 1668 3 1669 2 1670 2 1671 3 1672 3 1673 3 1674 3 1675 3 1676 3 1677 3 1678 3 1679 3 1680 3 1681 3 1682 3 1683 3 1684 3 1685 3 1686 3 1687 3 1688 3 1689 3 1690 3 1691 3 1692 3 1693 3 1694 13 1695 13 1696 13 1697 13 1698 13 1699 13 1700 13 1701 13 1702 13 1703 13 1704 13 1705 13 1706 13 1707 13 1708 13 1709 13 1710 13 1711 13 1712 13 1713 13 1714 13 1715 13 1716 13 1717 14 1718 14 1719 14 1720 14 1721 14 1722 14 1723 14 1724 14 1725 14 1726 14 1727 14 1728 14 1729 14 1730 14 1731 14 1732 14 1733 14 1734 14 1735 14 1736 14 1737 14 1738 14 1739 14 1740 14 1741 14 1742 14 1743 14 1744 14 1745 14 1746 14 1747 14 1748 14 1749 14 1750 14 1751 14 1752 14 1753 15 1754 15 1755 15 1756 15 1757 15 1758 15 1759 15 1760 15 1761 15 1762 15 1763 15 1764 15 1765 15 1766 15 1767 15 1768 15 1769 15 1770 15 1771 15 1772 8 1773 8 1774 8 1775 8 1776 8 1777 8 1778 8 1779 8 1780 8 1781 8 1782 11 1783 11 1784 11 1785 11 1786 11 1787 11 1788 11 1789 11 1790 11 1791 11 1792 11 1793 11 1794 11 1795 11 1796 11 1797 11 1798 11 1799 11 1800 11 1801 11 1802 10 1803 10 1804 10 1805 10 1806 10 1807 10 1808 10 1809 10 1810 10 1811 10 1812 10 1813 10 1814 10 1815 10 1816 10 1817 10 1818 10 1819 10 1820 10 1821 10 1822 10 1823 10 1824 10 1825 10 1826 4 1827 4 1828 4 1829 4 1830 4 1831 4 1832 4 1833 4 1834 4 1835 4 1836 4 1837 4 1838 4 1839 4 1840 4 1841 4 1842 5 1843 5 1844 5 1845 5 1846 5 1847 5 1848 5 1849 5 1850 5 1851 5 1852 5 1853 5 1854 20 1855 20 1856 20 1857 20 1858 20 1859 20 1860 20 1861 20 1862 20 1863 20 1864 20 1865 20 1866 20 1867 20 1868 20 1869 20 1870 20 1871 22 1872 22 1873 22 1874 22 1875 22 1876 22 1877 22 1878 22 1879 22 1880 22 1881 22 1882 22 1883 22 1884 22 1885 22 1886 22 1887 22 1888 22 1889 22 1890 22 1891 22 1892 22 1893 22 1894 22 1895 22 1896 28 1897 28 1898 28 1899 28 1900 28 1901 28 1902 28 1903 28 1904 28 1905 28 1906 28 1907 28 1908 30 1909 30 1910 30 1911 30 1912 30 1913 30 1914 30 1915 30 1916 30 1917 30 1918 30 1919 30 1920 30 1921 30 1922 30 1923 30 1924 30 1925 30 1926 30 1927 30 1928 30 1929 30 1930 30 1931 31 1932 31 1933 31 1934 31 1935 31 1936 31 1937 31 1938 31 1939 31 1940 31 1941 31 1942 31 1943 31 1944 31 1945 31 1946 31 1947 31 1948 31 1949 31 1950 31 1951 25 1952 25 1953 25 1954 25 1955 25 1956 25 1957 25 1958 25 1959 25 1960 25 1961 25 1962 25 1963 25 1964 25 1965 25 1966 20 1967 20 1968 20 1969 20 1970 20 1971 20 1972 20 1973 20 1974 20 1975 20 1976 20 1977 20 1978 20 1979 20 1980 20 1981 20 1982 22 1983 22 1984 22 1985 22 1986 22 1987 22 1988 22 1989 22 1990 22 1991 22 1992 22 1993 22 1994 22 1995 22 1996 22 1997 22 1998 22 1999 22 2000 22 2001 22 2002 22 2003 22 2004 22 2005 22 2006 28 2007 28 2008 28 2009 28 2010 28 2011 28 2012 28 2013 28 2014 28 2015 28 2016 28 2017 28 2018 30 2019 30 2020 30 2021 30 2022 30 2023 30 2024 30 2025 30 2026 30 2027 30 2028 30 2029 30 2030 30 2031 30 2032 30 2033 30 2034 30 2035 30 2036 30 2037 30 2038 30 2039 30 2040 31 2041 31 2042 31 2043 31 2044 31 2045 31 2046 31 2047 31 2048 31 2049 31 2050 31 2051 31 2052 31 2053 31 2054 31 2055 31 2056 31 2057 25 2058 25 2059 25 2060 25 2061 25 2062 25 2063 25 2064 25 2065 25 2066 25 2067 25 2068 25 2069 25 2070 25 2071 25 2072 25 2073 25 2074 25 2075 25 2076 25 2077 25 2078 25 2079 25 2080 25 2081 25 2082 25 2083 25 2084 25 2085 24 2086 25 2087 25 2088 25 2089 25 2090 25 2091 25 2092 25 2093 25 2094 25 2095 25 2096 25 2097 24 2098 11 2099 11 2100 11 2101 11 2102 11 2103 11 2104 11 2105 11 2106 11 2107 11 2108 11 2109 11 2110 11 2111 10 2112 10 2113 10 2114 10 2115 10 2116 10 2117 10 2118 10 2119 10 2120 10 2121 10 2122 10 2123 10 2124 10 2125 10 2126 10 2127 10 2128 10 2129 10 2130 10 2131 10 2132 10 2133 10 2134 10 2135 10 2136 4 2137 4 2138 4 2139 4 2140 4 2141 4 2142 4 2143 4 2144 4 2145 4 2146 4 2147 4 2148 4 2149 4 2150 4 2151 10 2152 10 2153 10 2154 4 2155 4 2156 4 2157 4 2158 4 2159 4 2160 4 2161 4 2162 4 2163 4 2164 4 2165 4 2166 4 2167 4 2168 4 2169 4 2170 5 2171 5 2172 14 2173 14 2174 14 2175 14 2176 14 2177 14 2178 14 2179 27 2180 27 2181 27 2182 27 2183 27 2184 27 2185 27 2186 27 2187 27 2188 27 2189 27 2190 27 2191 27 2192 27 2193 27 2194 18 2195 18 2196 18 2197 27 2198 27 2199 27 2200 27 2201 27 2202 27 2203 27 2204 27 2205 27 2206 27 2207 27 2208 27 2209 27 2210 27 2211 27 2212 27 2213 27 2214 27 2215 27 2216 27 2217 27 2218 16 2219 16 2220 16 2221 16 2222 16 2223 13 2224 13 2225 13 2226 13 2227 13 2228 13 2229 13 2230 13 2231 13 2232 13 2233 14 2234 14 2235 14 2236 14 2237 14 2238 13 2239 13 2240 13 2241 2 2242 14 2243 14 2244 14 2245 14 2246 14 2247 14 2248 27 2249 27 2250 27 2251 27 2252 18 2253 14 2254 15 2255 15 2256 15 2257 15 2258 15 2259 15 2260 15 2261 15 2262 15 2263 15 2264 15 2265 15 2266 15 2267 15 2268 15 2269 15 2270 15 2271 15 2272 8 2273 8 2274 8 2275 8 2276 8 2277 8 2278 8 2279 8 2280 8 2281 8 2282 8 2283 11 2284 11 2285 11 2286 11 2287 11 2288 11 2289 11 2290 11 2291 11 2292 11 2293 11 2294 11 2295 11 2296 11 2297 11 2298 11 2299 11 2300 11 2301 11 2302 11 2303 11 2304 11 2305 11 2306 11 2307 10 2308 10 2309 10 2310 10 2311 10 2312 10 2313 10 2314 10 2315 10 2316 10 2317 10 2318 10 2319 10 2320 10 2321 10 2322 10 2323 10 2324 10 2325 10 2326 10 2327 10 2328 10 2329 10 2330 10 2331 4 2332 4 2333 4 2334 4 2335 4 2336 4 2337 4 2338 4 2339 4 2340 4 2341 4 2342 4 2343 4 2344 4 2345 4 2346 5 2347 5 2348 5 2349 5 2350 5 2351 5 2352 5 2353 5 2354 5 2355 5 2356 5 2357 5 2358 5 2359 5 2360 5 2361 20 2362 20 2363 20 2364 20 2365 20 2366 20 2367 20 2368 20 2369 20 2370 20 2371 20 2372 20 2373 20 2374 20 2375 20 2376 20 2377 20 2378 20 2379 22 2380 22 2381 22 2382 22 2383 22 2384 22 2385 22 2386 22 2387 22 2388 22 2389 22 2390 22 2391 22 2392 22 2393 22 2394 22 2395 22 2396 22 2397 22 2398 22 2399 22 2400 22 2401 22 2402 28 2403 28 2404 28 2405 28 2406 28 2407 28 2408 28 2409 28 2410 28 2411 28 2412 28 2413 28 2414 28 2415 30 2416 30 2417 30 2418 30 2419 30 2420 30 2421 30 2422 30 2423 30 2424 30 2425 30 2426 30 2427 30 2428 30 2429 30 2430 30 2431 30 2432 30 2433 30 2434 30 2435 31 2436 31 2437 31 2438 31 2439 31 2440 31 2441 31 2442 31 2443 31 2444 31 2445 31 2446 31 2447 31 2448 31 2449 31 2450 31 2451 31 2452 31 2453 31 2454 31 2455 25 2456 25 2457 25 2458 25 2459 25 2460 25 2461 25 2462 25 2463 25 2464 25 2465 25 2466 25 2467 25 2468 25 2469 25 2470 25 2471 25 2472 25 2473 25 2474 24 2475 24 2476 24 2477 25 2478 25 2479 2 2480 2 2481 2 2482 25 2483 25 2484 25 2485 25 2486 25 2487 25 2488 25 2489 25 2490 2 2491 0 2492 0 2493 0 2494 2 2495 2 2496 2 2497 2 2498 2 2499 2 2500 2 2501 2 2502 27 2503 27 2504 27 2505 27 2506 27 2507 27 2508 27 2509 27 2510 27 2511 27 2512 27 2513 22 2514 22 2515 22 2516 28 2517 28 2518 28 2519 28 2520 28 2521 28 2522 28 2523 28 2524 28 2525 28 2526 28 2527 28 2528 28 2529 28 2530 30 2531 30 2532 30 2533 30 2534 30 2535 30 2536 30 2537 30 2538 30 2539 30 2540 30 2541 30 2542 30 2543 30 2544 30 2545 16 2546 16 2547 16 2548 16 2549 16 2550 16 2551 16 2552 30 2553 30 2554 30 2555 30 2556 30 2557 30 2558 30 2559 31 2560 13 2561 13 2562 13 2563 13 2564 13 2565 14 2566 14 2567 14 2568 14 2569 14 2570 30 2571 15 2572 15 2573 15 2574 15 2575 15 2576 15 2577 15 2578 15 2579 15 2580 8 2581 8 2582 8 2583 8 2584 8 2585 8 2586 8 2587 8 2588 8 2589 8 2590 8 2591 8 2592 11 2593 11 2594 11 2595 11 2596 11 2597 11 2598 11 2599 11 2600 11 2601 11 2602 11 2603 11 2604 11 2605 11 2606 11 2607 11 2608 11 2609 11 2610 11 2611 11 2612 11 2613 11 2614 10 2615 10 2616 10 2617 10 2618 10 2619 10 2620 10 2621 10 2622 10 2623 10 2624 10 2625 10 2626 10 2627 10 2628 10 2629 10 2630 10 2631 10 2632 10 2633 10 2634 10 2635 10 2636 10 2637 10 2638 10 2639 10 2640 10 2641 10 2642 4 2643 4 2644 4 2645 4 2646 4 2647 4 2648 4 2649 4 2650 4 2651 4 2652 4 2653 4 2654 4 2655 4 2656 4 2657 5 2658 5 2659 5 2660 5 2661 5 2662 5 2663 5 2664 5 2665 5 2666 5 2667 5 2668 5 2669 5 2670 5 2671 5 2672 5 2673 5 2674 20 2675 20 2676 20 2677 20 2678 20 2679 20 2680 20 2681 20 2682 20 2683 20 2684 20 2685 20 2686 20 2687 20 2688 20 2689 20 2690 20 2691 22 2692 22 2693 22 2694 22 2695 22 2696 22 2697 22 2698 22 2699 22 2700 22 2701 22 2702 22 2703 22 2704 22 2705 22 2706 22 2707 22 2708 22 2709 22 2710 22 2711 22 2712 22 2713 28 2714 28 2715 28 2716 28 2717 28 2718 28 2719 28 2720 28 2721 28 2722 28 2723 28 2724 28 2725 28 2726 28 2727 30 2728 30 2729 30 2730 30 2731 30 2732 30 2733 30 2734 30 2735 30 2736 30 2737 30 2738 30 2739 30 2740 30 2741 30 2742 30 2743 31 2744 31 2745 31 2746 31 2747 31 2748 31 2749 31 2750 31 2751 14 2752 14 2753 14 2754 14 2755 14 2756 14 2757 14 2758 14 2759 14 2760 14 2761 14 2762 15 2763 15 2764 15 2765 15 2766 15 2767 15 2768 15 2769 15 2770 15 2771 15 2772 15 2773 15 2774 15 2775 15 2776 15 2777 15 2778 15 2779 15 2780 8 2781 8 2782 8 2783 8 2784 8 2785 8 2786 8 2787 8 2788 8 2789 8 2790 8 2791 8 2792 11 2793 11 2794 11 2795 11 2796 11 2797 11 2798 11 2799 11 2800 11 2801 11 2802 11 2803 11 2804 14 2805 14 2806 14 2807 14 2808 14 2809 2 2810 2 2811 2 2812 2 2813 2 2814 2 2815 2 2816 3 2817 2 2818 2 2819 3 2820 3 2821 3 2822 3 2823 3 2824 11 2825 11 2826 11 2827 11 2828 11 2829 11 2830 11 2831 11 2832 11 2833 11 2834 10 2835 10 2836 10 2837 10 2838 10 2839 10 2840 10 2841 16 2842 16 2843 16 2844 16 2845 16 2846 16 2847 16 2848 16 2849 16 2850 16 2851 16 2852 16 2853 16 2854 16 2855 16 2856 16 2857 16 2858 16 2859 16 2860 16 2861 0 2862 0 2863 0 2864 0 2865 0 2866 0 2867 2 2868 2 2869 2 2870 2 2871 2 2872 2 2873 2 2874 2 2875 2 2876 2 2877 2 2878 2 2879 2 2880 2 2881 2 2882 2 2883 2 2884 2 2885 2 2886 2 2887 2 2888 2 2889 2 2890 2 2891 2 2892 2 2893 14 2894 14 2895 14 2896 14 2897 14 2898 14 2899 14 2900 14 2901 14 2902 14 2903 14 2904 14 2905 15 2906 15 2907 15 2908 15 2909 15 2910 15 2911 15 2912 15 2913 15 2914 15 2915 15 2916 15 2917 15 2918 15 2919 15 2920 15 2921 15 2922 15 2923 8 2924 8 2925 8 2926 8 2927 8 2928 8 2929 8 2930 8 2931 8 2932 8 2933 8 2934 8 2935 8 2936 11 2937 11 2938 11 2939 11 2940 11 2941 11 2942 11 2943 11 2944 11 2945 11 2946 11 2947 11 2948 11 2949 11 2950 11 2951 11 2952 11 2953 10 2954 10 2955 10 2956 10 2957 10 2958 10 2959 10 2960 10 2961 10 2962 10 2963 10 2964 10 2965 10 2966 10 2967 10 2968 10 2969 10 2970 10 2971 10 2972 10 2973 10 2974 10 2975 10 2976 10 2977 10 2978 10 2979 4 2980 4 2981 4 2982 4 2983 4 2984 4 2985 4 2986 4 2987 4 2988 4 2989 4 2990 4 2991 4 2992 4 2993 5 2994 5 2995 5 2996 5 2997 5 2998 5 2999 5 3000 5 3001 5 3002 5 3003 22 3004 22 3005 22 3006 22 3007 22 3008 22 3009 22 3010 22 3011 22 3012 22 3013 28 3014 28 3015 28 3016 28 3017 28 3018 28 3019 28 3020 28 3021 28 3022 28 3023 28 3024 28 3025 28 3026 28 3027 30 3028 30 3029 30 3030 30 3031 30 3032 30 3033 30 3034 30 3035 30 3036 30 3037 30 3038 30 3039 30 3040 30 3041 31 3042 30 3043 30 3044 30 3045 31 3046 31 3047 31 3048 31 3049 31 3050 31 3051 31 3052 31 3053 31 3054 31 3055 31 3056 31 3057 31 3058 31 3059 31 3060 31 3061 31 3062 31 3063 31 3064 31 3065 31 3066 31 3067 31 3068 31 3069 31 3070 31 3071 31 3072 31 3073 25 3074 25 3075 25 3076 25 3077 25 3078 25 3079 25 3080 25 3081 25 3082 25 3083 25 3084 25 3085 25 3086 27 3087 27 3088 27 3089 27 3090 27 3091 25 3092 25 3093 0 3094 0 3095 27 3096 27 3097 2 3098 24 3099 24 3100 24 3101 24 3102 24 3103 24 3104 27 3105 27 3106 27 3107 25 3108 25 3109 25 3110 25 3111 25 3112 25 3113 24 3114 24 3115 24 3116 24 3117 27 3118 27 3119 27 3120 27 3121 27 3122 27 3123 27 3124 27 3125 27 3126 27 3127 27 3128 27 3129 27 3130 27 3131 25 3132 25 3133 25 3134 25 3135 25 3136 25 3137 25 3138 25 3139 2 3140 2 3141 2 3142 2 3143 3 3144 3 3145 3 3146 3 3147 3 3148 25 3149 25 3150 25 3151 25 3152 25 3153 25 3154 25 3155 25 3156 25 3157 26 3158 26 3159 26 3160 26 3161 25 3162 16 3163 16 3164 16 3165 16 3166 16 3167 16 3168 16 3169 16 3170 16 3171 16 3172 16 3173 16 3174 16 3175 16 3176 16 3177 16 3178 16 3179 16 3180 16 3181 2 3182 2 3183 2 3184 0 3185 0 3186 0 3187 0 3188 0 3189 2 3190 2 3191 14 3192 0 3193 0 3194 0 3195 0 3196 0 3197 14 3198 14 3199 14 3200 14 3201 14 3202 14 3203 14 3204 14 3205 14 3206 14 3207 14 3208 14 3209 15 3210 15 3211 15 3212 15 3213 15 3214 0 3215 0 3216 0 3217 24 3218 24 3219 24 3220 24 3221 24 3222 24 3223 24 3224 24 3225 24 3226 24 3227 24 3228 24 3229 24 3230 24 3231 24 3232 24 3233 24 3234 24 3235 24 3236 24 3237 24 3238 24 3239 24 3240 24 3241 24 3242 11 3243 11 3244 11 3245 11 3246 10 3247 10 3248 10 3249 10 3250 10 3251 10 3252 10 3253 10 3254 10 3255 10 3256 10 3257 10 3258 10 3259 10 3260 10 3261 10 3262 10 3263 10 3264 10 3265 10 3266 10 3267 10 3268 10 3269 10 3270 10 3271 4 3272 4 3273 4 3274 4 3275 4 3276 4 3277 4 3278 20 3279 20 3280 22 3281 22 3282 22 3283 22 3284 22 3285 22 3286 22 3287 22 3288 22 3289 22 3290 22 3291 22 3292 22 3293 22 3294 22 3295 22 3296 22 3297 22 3298 22 3299 22 3300 22 3301 28 3302 28 3303 28 3304 28 3305 28 3306 28 3307 28 3308 28 3309 28 3310 28 3311 28 3312 28 3313 28 3314 28 3315 28 3316 30 3317 30 3318 30 3319 30 3320 30 3321 30 3322 30 3323 30 3324 30 3325 30 3326 31 3327 31 3328 31 3329 31 3330 27 3331 27 3332 27 3333 27 3334 27 3335 27 3336 27 3337 27 3338 27 3339 27 3340 27 3341 27 3342 27 3343 27 3344 27 3345 27 3346 27 3347 27 3348 27 3349 25 3350 25 3351 25 3352 25 3353 25 3354 25 3355 25 3356 25 3357 25 3358 25 3359 25 3360 25 3361 25 3362 25 3363 25 3364 25 3365 25 3366 25 3367 25 3368 25 3369 25 3370 25 3371 29 3372 29 3373 25 3374 25 3375 29 3376 29 3377 29 3378 29 3379 29 3380 25 3381 29 3382 25 3383 29 3384 29 3385 29 3386 29 3387 26 3388 26 3389 26 3390 26 3391 20 3392 20 3393 20 3394 20 3395 14 3396 14 3397 14 3398 14 3399 14 3400 14 3401 14 3402 14 3403 14 3404 14 3405 14 3406 14 3407 14 3408 14 3409 14 3410 14 3411 14 3412 3 3413 3 3414 3 3415 3 3416 13 3417 13 3418 13 3419 13 3420 13 3421 13 3422 13 3423 13 3424 13 3425 13 3426 13 3427 13 3428 13 3429 13 3430 13 3431 13 3432 13 3433 13 3434 13 3435 13 3436 0 3437 0 3438 0 3439 0 3440 0 3441 0 3442 13 3443 13 3444 13 3445 13 3446 13 3447 13 3448 13 3449 14 3450 16 3451 16 3452 16 3453 16 3454 14 3455 14 3456 14 3457 14 3458 14 3459 14 3460 14 3461 14 3462 14 3463 14 3464 14 3465 14 3466 14 3467 14 3468 14 3469 14 3470 14 3471 14 3472 14 3473 14 3474 14 3475 14 3476 14 3477 14 3478 14 3479 15 3480 15 3481 15 3482 15 3483 15 3484 24 3485 24 3486 24 3487 24 3488 24 3489 24 3490 24 3491 24 3492 24 3493 24 3494 24 3495 24 3496 24 3497 24 3498 24 3499 15 3500 15 3501 24 3502 24 3503 24 3504 24 3505 16 3506 16 3507 16 3508 0 3509 0 3510 0 3511 0 3512 0 3513 0 3514 0 3515 0 3516 0 3517 0 3518 0 3519 0 3520 0 3521 0 3522 0 3523 0 3524 0 3525 0 3526 0 3527 0 3528 0 3529 0 3530 0 3531 0 3532 0 3533 0 3534 0 3535 0 3536 0 3537 0 3538 0 3539 0 3540 0 3541 0 3542 0 3543 0 3544 0 3545 4 3546 4 3547 4 3548 4 3549 4 3550 4 3551 4 3552 5 3553 5 3554 5 3555 5 3556 5 3557 5 3558 5 3559 5 3560 5 3561 5 3562 5 3563 5 3564 5 3565 5 3566 5 3567 5 3568 5 3569 5 3570 5 3571 5 3572 5 3573 20 3574 20 3575 20 3576 20 3577 20 3578 20 3579 20 3580 20 3581 20 3582 20 3583 20 3584 20 3585 20 3586 20 3587 20 3588 20 3589 20 3590 20 3591 20 3592 22 3593 22 3594 22 3595 22 3596 22 3597 22 3598 22 3599 22 3600 22 3601 22 3602 22 3603 22 3604 22 3605 22 3606 22 3607 22 3608 22 3609 22 3610 22 3611 22 3612 28 3613 28 3614 28 3615 28 3616 28 3617 28 3618 28 3619 28 3620 28 3621 28 3622 28 3623 28 3624 28 3625 28 3626 28 3627 28 3628 30 3629 30 3630 30 3631 30 3632 30 3633 30 3634 30 3635 30 3636 30 3637 31 3638 31 3639 31 3640 31 3641 31 3642 31 3643 31 3644 31 3645 29 3646 29 3647 29 3648 29 3649 29 3650 29 3651 26 3652 26 3653 26 3654 26 3655 26 3656 25 3657 29 3658 29 3659 29 3660 26 3661 26 3662 26 3663 26 3664 26 3665 26 3666 26 3667 25 3668 25 3669 26 3670 26 3671 26 3672 26 3673 26 3674 26 3675 26 3676 26 3677 25 3678 25 3679 14 3680 14 3681 14 3682 14 3683 14 3684 24 3685 14 3686 14 3687 14 3688 14 3689 14 3690 15 3691 15 3692 15 3693 15 3694 15 3695 15 3696 15 3697 15 3698 15 3699 15 3700 15 3701 15 3702 15 3703 15 3704 15 3705 15 3706 15 3707 15 3708 15 3709 15 3710 15 3711 8 3712 8 3713 8 3714 8 3715 8 3716 8 3717 8 3718 8 3719 8 3720 8 3721 8 3722 8 3723 8 3724 8 3725 11 3726 11 3727 11 3728 11 3729 11 3730 11 3731 11 3732 11 3733 11 3734 11 3735 11 3736 11 3737 11 3738 11 3739 11 3740 11 3741 11 3742 10 3743 10 3744 10 3745 10 3746 10 3747 10 3748 10 3749 10 3750 10 3751 10 3752 10 3753 10 3754 10 3755 10 3756 10 3757 10 3758 10 3759 10 3760 24 3761 24 3762 24 3763 24 3764 24 3765 24 3766 24 3767 24 3768 24 3769 26 3770 16 3771 16 3772 0 3773 0 3774 3 3775 3 3776 3 3777 3 3778 3 3779 3 3780 3 3781 3 3782 3 3783 3 3784 3 3785 3 3786 13 3787 13 3788 3 3789 13 3790 3 3791 13 3792 13 3793 13 3794 13 3795 13 3796 13 3797 13 3798 13 3799 13 3800 13 3801 13 3802 13 3803 13 3804 13 3805 13 3806 13 3807 13 3808 13 3809 4 3810 4 3811 5 3812 5 3813 5 3814 5 3815 5 3816 5 3817 5 3818 5 3819 5 3820 5 3821 5 3822 5 3823 5 3824 4 3825 4 3826 4 3827 4 3828 4 3829 4 3830 4 3831 4 3832 4 3833 4 3834 4 3835 4 3836 4 3837 5 3838 5 3839 5 3840 5 3841 5 3842 5 3843 5 3844 5 3845 5 3846 5 3847 5 3848 5 3849 5 3850 5 3851 27 3852 27 3853 5 3854 5 3855 5 3856 5 3857 5 3858 5 3859 5 3860 5 3861 27 3862 27 3863 27 3864 5 3865 5 3866 5 3867 5 3868 5 3869 5 3870 5 3871 5 3872 5 3873 5 3874 5 3875 5 3876 5 3877 5 3878 5 3879 5 3880 27 3881 27 3882 27 3883 27 3884 27 3885 27 3886 27 3887 27 3888 5 3889 5 3890 5 3891 5 3892 14 3893 14 3894 14 3895 14 3896 14 3897 14 3898 14 3899 14 3900 14 3901 14 3902 14 3903 30 3904 30 3905 31 3906 31 3907 31 3908 31 3909 31 3910 31 3911 31 3912 31 3913 31 3914 31 3915 31 3916 31 3917 25 3918 25 3919 25 3920 31 3921 31 3922 31 3923 31 3924 29 3925 29 3926 25 3927 31 3928 31 3929 31 3930 31 3931 31 3932 31 3933 31 3934 31 3935 31 3936 31 3937 31 3938 31 3939 31 3940 31 3941 29 3942 29 3943 29 3944 26 3945 26 3946 26 3947 26 3948 26 3949 26 3950 26 3951 26 3952 13 3953 13 3954 13 3955 13 3956 13 3957 13 3958 0 3959 0 3960 0 3961 1 3962 26 3963 26 3964 25 3965 26 3966 25 3967 25 3968 24 3969 24 3970 24 3971 24 3972 15 3973 15 3974 15 3975 15 3976 15 3977 15 3978 15 3979 15 3980 15 3981 15 3982 15 3983 15 3984 8 3985 8 3986 8 3987 8 3988 8 3989 8 3990 8 3991 8 3992 8 3993 8 3994 8 3995 8 3996 8 3997 8 3998 8 3999 11 4000 11 4001 11 4002 11 4003 11 4004 11 4005 11 4006 11 4007 11 4008 11 4009 11 4010 11 4011 11 4012 11 4013 11 4014 11 4015 11 4016 11 4017 10 4018 10 4019 10 4020 10 4021 9 4022 10 4023 10 4024 10 4025 10 4026 10 4027 10 4028 10 4029 10 4030 9 4031 9 4032 10 4033 9 4034 9 4035 9 4036 9 4037 10 4038 24 4039 24 4040 24 4041 9 4042 9 4043 9 4044 9 4045 10 4046 10 4047 10 4048 10 4049 10 4050 10 4051 10 4052 10 4053 10 4054 10 4055 10 4056 10 4057 4 4058 4 4059 4 4060 4 4061 4 4062 4 4063 4 4064 4 4065 4 4066 4 4067 4 4068 4 4069 4 4070 11 4071 11 4072 11 4073 11 4074 11 4075 11 4076 11 4077 11 4078 8 4079 8 4080 8 4081 8 4082 9 4083 9 4084 9 4085 9 4086 2 4087 2 4088 2 4089 2 4090 2 4091 2 4092 2 4093 2 4094 2 4095 2 4096 0 4097 0 4098 0 4099 0 4100 13 4101 13 4102 13 4103 13 4104 13 4105 13 4106 13 4107 13 4108 13 4109 13 4110 13 4111 13 4112 13 4113 13 4114 14 4115 14 4116 0 4117 0 4118 0 4119 0 4120 0 4121 0 4122 0 4123 0 4124 0 4125 0 4126 0 4127 16 4128 16 4129 16 4130 16 4131 16 4132 16 4133 16 4134 16 4135 16 4136 16 4137 16 4138 16 4139 16 4140 0 4141 20 4142 20 4143 20 4144 20 4145 20 4146 20 4147 20 4148 20 4149 20 4150 20 4151 20 4152 20 4153 22 4154 22 4155 22 4156 22 4157 22 4158 22 4159 22 4160 22 4161 22 4162 22 4163 22 4164 22 4165 22 4166 22 4167 22 4168 22 4169 22 4170 22 4171 22 4172 28 4173 28 4174 28 4175 28 4176 28 4177 28 4178 28 4179 28 4180 28 4181 28 4182 28 4183 28 4184 28 4185 28 4186 28 4187 28 4188 28 4189 30 4190 30 4191 30 4192 30 4193 30 4194 30 4195 30 4196 31 4197 31 4198 31 4199 31 4200 31 4201 31 4202 31 4203 31 4204 31 4205 31 4206 31 4207 31 4208 10 4209 10 4210 9 4211 9 4212 9 4213 9 4214 9 4215 9 4216 9 4217 9 4218 9 4219 9 4220 9 4221 10 4222 10 4223 10 4224 4 4225 4 4226 4 4227 4 4228 4 4229 4 4230 4 4231 3 4232 9 4233 4 4234 4 4235 4 4236 5 4237 5 4238 13 4239 13 4240 13 4241 13 4242 13 4243 13 4244 13 4245 13 4246 13 4247 13 4248 13 4249 13 4250 27 4251 5 4252 5 4253 5 4254 5 4255 5 4256 5 4257 5 4258 5 4259 5 4260 5 4261 5 4262 5 4263 20 4264 20 4265 20 4266 20 4267 20 4268 20 4269 20 4270 20 4271 20 4272 20 4273 20 4274 20 4275 20 4276 20 4277 20 4278 20 4279 20 4280 20 4281 23 4282 23 4283 23 4284 23 4285 23 4286 23 4287 22 4288 22 4289 22 4290 22 4291 22 4292 22 4293 22 4294 22 4295 22 4296 22 4297 22 4298 22 4299 22 4300 22 4301 28 4302 28 4303 28 4304 28 4305 28 4306 28 4307 28 4308 28 4309 28 4310 28 4311 28 4312 28 4313 28 4314 28 4315 28 4316 28 4317 28 4318 30 4319 30 4320 30 4321 30 4322 30 4323 31 4324 31 4325 31 4326 31 4327 31 4328 31 4329 31 4330 31 4331 31 4332 31 4333 31 4334 31 4335 31 4336 31 4337 31 4338 31 4339 29 4340 29 4341 29 4342 29 4343 29 4344 29 4345 29 4346 29 4347 29 4348 29 4349 29 4350 29 4351 29 4352 29 4353 29 4354 29 4355 29 4356 29 4357 29 4358 29 4359 29 4360 29 4361 29 4362 29 4363 29 4364 29 4365 0 4366 0 4367 0 4368 29 4369 29 4370 29 4371 29 4372 0 4373 0 4374 0 4375 0 4376 0 4377 0 4378 2 4379 2 4380 2 4381 2 4382 2 4383 2 4384 2 4385 2 4386 2 4387 2 4388 2 4389 2 4390 2 4391 14 4392 14 4393 14 4394 14 4395 0 4396 0 4397 16 4398 16 4399 16 4400 16 4401 16 4402 14 4403 14 4404 14 4405 5 4406 5 4407 5 4408 5 4409 5 4410 16 4411 16 4412 16 4413 16 4414 16 4415 16 4416 13 4417 13 4418 13 4419 13 4420 5 4421 5 4422 5 4423 5 4424 5 4425 5 4426 5 4427 5 4428 5 4429 31 4430 31 4431 29 4432 29 4433 29 4434 29 4435 29 4436 29 4437 29 4438 29 4439 8 4440 8 4441 8 4442 8 4443 8 4444 8 4445 11 4446 11 4447 11 4448 11 4449 11 4450 11 4451 11 4452 11 4453 8 4454 8 4455 8 4456 8 4457 9 4458 9 4459 9 4460 9 4461 9 4462 9 4463 9 4464 9 4465 9 4466 9 4467 9 4468 9 4469 10 4470 10 4471 9 4472 9 4473 9 4474 9 4475 9 4476 9 4477 9 4478 9 4479 9 4480 9 4481 9 4482 9 4483 9 4484 9 4485 4 4486 4 4487 4 4488 4 4489 4 4490 9 4491 9 4492 9 4493 9 4494 4 4495 4 4496 4 4497 4 4498 4 4499 4 4500 4 4501 4 4502 4 4503 13 4504 13 4505 13 4506 13 4507 13 4508 13 4509 13 4510 13 4511 4 4512 4 4513 4 4514 18 4515 18 4516 18 4517 18 4518 18 4519 18 4520 18 4521 18 4522 16 4523 16 4524 16 4525 16 4526 16 4527 16 4528 16 4529 0 4530 0 4531 0 4532 16 4533 16 4534 16 4535 16 4536 16 4537 16 4538 16 4539 16 4540 16 4541 16 4542 16 4543 16 4544 16 4545 16 4546 16 4547 16 4548 16 4549 16 4550 16 4551 16 4552 16 4553 16 4554 16 4555 16 4556 17 4557 16 4558 16 4559 16 4560 16 4561 16 4562 16 4563 16 4564 16 4565 16 4566 28 4567 28 4568 28 4569 28 4570 28 4571 28 4572 28 4573 28 4574 28 4575 30 4576 30 4577 30 4578 30 4579 31 4580 31 4581 31 4582 31 4583 31 4584 31 4585 31 4586 31 4587 31 4588 31 4589 31 4590 31 4591 31 4592 31 4593 31 4594 29 4595 29 4596 29 4597 29 4598 29 4599 29 4600 29 4601 29 4602 29 4603 29 4604 29 4605 29 4606 29 4607 29 4608 29 4609 29 4610 29 4611 29 4612 29 4613 29 4614 29 4615 29 4616 29 4617 29 4618 29 4619 29 4620 26 4621 29 4622 29 4623 29 4624 29 4625 29 4626 29 4627 26 4628 26 4629 26 4630 26 4631 26 4632 26 4633 26 4634 26 4635 26 4636 26 4637 26 4638 26 4639 26 4640 26 4641 26 4642 26 4643 5 4644 5 4645 5 4646 5 4647 5 4648 16 4649 16 4650 16 4651 16 4652 16 4653 16 4654 16 4655 16 4656 16 4657 16 4658 11 4659 11 4660 11 4661 14 4662 14 4663 14 4664 14 4665 14 4666 16 4667 16 4668 16 4669 8 4670 8 4671 8 4672 8 4673 9 4674 9 4675 9 4676 9 4677 9 4678 9 4679 9 4680 9 4681 9 4682 9 4683 9 4684 9 4685 9 4686 9 4687 9 4688 14 4689 14 4690 14 4691 14 4692 14 4693 15 4694 15 4695 15 4696 15 4697 15 4698 15 4699 15 4700 15 4701 15 4702 15 4703 15 4704 15 4705 15 4706 15 4707 15 4708 15 4709 15 4710 15 4711 15 4712 8 4713 8 4714 8 4715 8 4716 8 4717 8 4718 8 4719 8 4720 8 4721 8 4722 8 4723 8 4724 8 4725 8 4726 8 4727 8 4728 8 4729 5 4730 5 4731 5 4732 5 4733 8 4734 8 4735 8 4736 8 4737 8 4738 8 4739 14 4740 14 4741 14 4742 14 4743 14 4744 14 4745 14 4746 14 4747 14 4748 14 4749 14 4750 14 4751 14 4752 14 4753 14 4754 4 4755 4 4756 4 4757 14 4758 14 4759 4 4760 4 4761 4 4762 4 4763 4 4764 4 4765 4 4766 4 4767 4 4768 4 4769 4 4770 4 4771 23 4772 23 4773 23 4774 23 4775 28 4776 28 4777 28 4778 28 4779 28 4780 28 4781 28 4782 28 4783 28 4784 28 4785 28 4786 28 4787 28 4788 28 4789 28 4790 28 4791 28 4792 28 4793 30 4794 30 4795 31 4796 31 4797 31 4798 31 4799 28 4800 31 4801 31 4802 31 4803 31 4804 31 4805 31 4806 31 4807 31 4808 31 4809 31 4810 31 4811 29 4812 29 4813 29 4814 29 4815 29 4816 29 4817 29 4818 29 4819 29 4820 29 4821 29 4822 29 4823 29 4824 29 4825 29 4826 29 4827 29 4828 29 4829 29 4830 29 4831 29 4832 29 4833 29 4834 29 4835 29 4836 29 4837 29 4838 29 4839 29 4840 29 4841 29 4842 29 4843 29 4844 29 4845 29 4846 29 4847 29 4848 29 4849 29 4850 29 4851 29 4852 29 4853 29 4854 29 4855 29 4856 29 4857 29 4858 29 4859 29 4860 29 4861 29 4862 26 4863 26 4864 26 4865 26 4866 26 4867 26 4868 26 4869 26 4870 26 4871 26 4872 26 4873 26 4874 26 4875 26 4876 26 4877 26 4878 26 4879 26 4880 26 4881 26 4882 26 4883 26 4884 26 4885 26 4886 26 4887 26 4888 26 4889 26 4890 26 4891 26 4892 26 4893 26 4894 26 4895 26 4896 26 4897 26 4898 26 4899 26 4900 26 4901 26 4902 26 4903 26 4904 26 4905 26 4906 26 4907 26 4908 26 4909 26 4910 26 4911 26 4912 26 4913 26 4914 26 4915 26 4916 26 4917 26 4918 31 4919 29 4920 29 4921 29 4922 29 4923 23 4924 22 4925 23 4926 23 4927 23 4928 23 4929 23 4930 23 4931 23 4932 23 4933 23 4934 23 4935 23 4936 23 4937 23 4938 28 4939 28 4940 28 4941 28 4942 28 4943 28 4944 28 4945 28 4946 28 4947 28 4948 28 4949 28 4950 28 4951 28 4952 28 4953 28 4954 28 4955 28 4956 31 4957 31 4958 31 4959 31 4960 29 4961 29 4962 29 4963 29 4964 29 4965 8 4966 8 4967 8 4968 8 4969 8 4970 8 4971 8 4972 8 4973 8 4974 8 4975 8 4976 8 4977 8 4978 8 4979 8 4980 8 4981 9 4982 9 4983 9 4984 9 4985 4 4986 4 4987 4 4988 4 4989 9 4990 9 4991 9 4992 9 4993 9 4994 9 4995 4 4996 4 4997 4 4998 4 4999 4 5000 4 5001 4 5002 4 5003 14 5004 14 5005 14 5006 4 5007 4 5008 4 5009 4 5010 4 5011 4 5012 4 5013 4 5014 4 5015 4 5016 4 5017 4 5018 4 5019 4 5020 4 5021 4 5022 4 5023 4 5024 4 5025 4 5026 4 5027 4 5028 4 5029 5 5030 5 5031 5 5032 5 5033 5 5034 5 5035 5 5036 5 5037 5 5038 5 5039 5 5040 5 5041 5 5042 5 5043 5 5044 5 5045 5 5046 23 5047 23 5048 23 5049 23 5050 23 5051 23 5052 23 5053 23 5054 23 5055 23 5056 23 5057 23 5058 23 5059 23 5060 23 5061 23 5062 23 5063 23 5064 23 5065 23 5066 23 5067 23 5068 23 5069 28 5070 28 5071 28 5072 28 5073 28 5074 28 5075 28 5076 28 5077 28 5078 28 5079 28 5080 28 5081 28 5082 28 5083 28 5084 28 5085 28 5086 28 5087 29 5088 29 5089 29 5090 29 5091 29 5092 29 5093 29 5094 29 5095 29 5096 29 5097 29 5098 29 5099 29 5100 29 5101 29 5102 29 5103 29 5104 29 5105 29 5106 29 5107 29 5108 29 5109 29 5110 29 5111 29 5112 29 5113 29 5114 29 5115 29 5116 29 5117 29 5118 29 5119 29 5120 29 5121 29 5122 29 5123 29 5124 29 5125 19 5126 19 5127 19 5128 19 5129 19 5130 19 5131 26 5132 26 5133 19 5134 19 5135 26 5136 26 5137 26 5138 26 5139 26 5140 26 5141 26 5142 26 5143 26 5144 26 5145 26 5146 26 5147 26 5148 26 5149 26 5150 26 5151 29 5152 29 5153 29 5154 29 5155 26 5156 16 5157 16 5158 14 5159 14 5160 15 5161 15 5162 15 5163 15 5164 15 5165 15 5166 4 5167 4 5168 7 5169 7 5170 15 5171 15 5172 15 5173 15 5174 8 5175 8 5176 8 5177 8 5178 8 5179 8 5180 8 5181 8 5182 8 5183 8 5184 8 5185 8 5186 8 5187 8 5188 8 5189 8 5190 8 5191 8 5192 8 5193 8 5194 8 5195 8 5196 8 5197 9 5198 9 5199 9 5200 9 5201 9 5202 9 5203 9 5204 9 5205 9 5206 9 5207 9 5208 9 5209 9 5210 9 5211 9 5212 9 5213 9 5214 9 5215 9 5216 9 5217 9 5218 9 5219 9 5220 9 5221 9 5222 9 5223 9 5224 9 5225 4 5226 4 5227 4 5228 4 5229 4 5230 4 5231 20 5232 20 5233 20 5234 20 5235 18 5236 18 5237 18 5238 4 5239 4 5240 4 5241 4 5242 4 5243 4 5244 4 5245 4 5246 4 5247 4 5248 4 5249 4 5250 23 5251 23 5252 23 5253 23 5254 23 5255 23 5256 28 5257 28 5258 28 5259 28 5260 28 5261 28 5262 28 5263 28 5264 28 5265 28 5266 28 5267 28 5268 28 5269 28 5270 28 5271 28 5272 29 5273 29 5274 29 5275 29 5276 29 5277 29 5278 29 5279 29 5280 29 5281 29 5282 29 5283 29 5284 29 5285 29 5286 29 5287 29 5288 29 5289 29 5290 29 5291 29 5292 29 5293 29 5294 29 5295 29 5296 29 5297 29 5298 29 5299 29 5300 29 5301 29 5302 29 5303 19 5304 29 5305 19 5306 19 5307 19 5308 19 5309 19 5310 19 5311 19 5312 19 5313 19 5314 19 5315 19 5316 19 5317 19 5318 19 5319 19 5320 19 5321 19 5322 19 5323 19 5324 19 5325 19 5326 19 5327 19 5328 19 5329 19 5330 19 5331 19 5332 19 5333 19 5334 19 5335 19 5336 19 5337 19 5338 19 5339 19 5340 19 5341 19 5342 19 5343 19 5344 26 5345 26 5346 26 5347 18 5348 19 5349 19 5350 19 5351 18 5352 18 5353 18 5354 18 5355 18 5356 18 5357 18 5358 18 5359 18 5360 18 5361 26 5362 26 5363 26 5364 26 5365 26 5366 26 5367 26 5368 26 5369 26 5370 26 5371 26 5372 26 5373 26 5374 26 5375 26 5376 29 5377 29 5378 29 5379 29 5380 16 5381 3 5382 3 5383 3 5384 3 5385 3 5386 3 5387 3 5388 3 5389 3 5390 3 5391 3 5392 26 5393 26 5394 26 5395 26 5396 26 5397 26 5398 26 5399 26 5400 26 5401 26 5402 26 5403 8 5404 8 5405 8 5406 8 5407 8 5408 8 5409 8 5410 8 5411 8 5412 8 5413 8 5414 8 5415 8 5416 8 5417 8 5418 8 5419 8 5420 8 5421 8 5422 8 5423 8 5424 9 5425 9 5426 9 5427 9 5428 8 5429 8 5430 9 5431 9 5432 9 5433 9 5434 9 5435 9 5436 9 5437 9 5438 9 5439 9 5440 9 5441 9 5442 9 5443 9 5444 9 5445 9 5446 9 5447 9 5448 20 5449 20 5450 20 5451 20 5452 20 5453 20 5454 20 5455 20 5456 20 5457 20 5458 20 5459 20 5460 20 5461 20 5462 20 5463 20 5464 20 5465 20 5466 20 5467 20 5468 20 5469 20 5470 20 5471 20 5472 20 5473 20 5474 20 5475 23 5476 23 5477 23 5478 23 5479 23 5480 23 5481 23 5482 23 5483 23 5484 23 5485 23 5486 23 5487 23 5488 23 5489 23 5490 23 5491 23 5492 23 5493 23 5494 23 5495 23 5496 23 5497 23 5498 23 5499 23 5500 28 5501 28 5502 28 5503 28 5504 28 5505 28 5506 28 5507 28 5508 28 5509 28 5510 28 5511 28 5512 28 5513 28 5514 29 5515 29 5516 29 5517 29 5518 29 5519 29 5520 29 5521 29 5522 29 5523 29 5524 29 5525 29 5526 29 5527 29 5528 29 5529 29 5530 29 5531 29 5532 29 5533 29 5534 29 5535 29 5536 29 5537 29 5538 29 5539 29 5540 29 5541 29 5542 29 5543 29 5544 29 5545 19 5546 19 5547 19 5548 19 5549 19 5550 19 5551 19 5552 19 5553 19 5554 19 5555 19 5556 19 5557 19 5558 19 5559 19 5560 19 5561 19 5562 19 5563 19 5564 19 5565 19 5566 19 5567 19 5568 19 5569 19 5570 19 5571 19 5572 19 5573 19 5574 19 5575 19 5576 19 5577 19 5578 19 5579 19 5580 19 5581 19 5582 19 5583 18 5584 18 5585 19 5586 19 5587 19 5588 19 5589 19 5590 19 5591 19 5592 19 5593 19 5594 19 5595 19 5596 19 5597 19 5598 19 5599 19 5600 19 5601 19 5602 19 5603 18 5604 18 5605 19 5606 18 5607 18 5608 18 5609 18 5610 18 5611 18 5612 18 5613 18 5614 18 5615 18 5616 3 5617 3 5618 3 5619 3 5620 3 5621 23 5622 23 5623 23 5624 23 5625 23 5626 23 5627 23 5628 23 5629 23 5630 23 5631 23 5632 23 5633 28 5634 28 5635 28 5636 28 5637 28 5638 28 5639 28 5640 28 5641 29 5642 29 5643 29 5644 29 5645 29 5646 29 5647 29 5648 4 5649 4 5650 4 5651 4 5652 4 5653 4 5654 23 5655 23 5656 23 5657 23 5658 23 5659 23 5660 23 5661 23 5662 23 5663 23 5664 23 5665 23 5666 23 5667 23 5668 23 5669 23 5670 23 5671 23 5672 23 5673 23 5674 28 5675 28 5676 28 5677 29 5678 29 5679 29 5680 29 5681 29 5682 29 5683 29 5684 29 5685 29 5686 29 5687 29 5688 29 5689 29 5690 29 5691 29 5692 29 5693 29 5694 29 5695 29 5696 29 5697 23 5698 23 5699 19 5700 19 5701 19 5702 19 5703 19 5704 19 5705 19 5706 19 5707 19 5708 19 5709 19 5710 19 5711 19 5712 19 5713 19 5714 19 5715 19 5716 19 5717 19 5718 29 5719 23 5720 23 5721 23 5722 19 5723 23 5724 23 5725 23 5726 23 5727 19 5728 19 5729 19 5730 23 5731 23 5732 19 5733 19 5734 19 5735 19 5736 19 5737 19 5738 19 5739 19 5740 19 5741 19 5742 19 5743 19 5744 19 5745 19 5746 19 5747 19 5748 19 5749 19 5750 19 5751 19 5752 19 5753 19 5754 19 5755 19 5756 19 5757 19 5758 19 5759 19 5760 19 5761 19 5762 19 5763 19 5764 19 5765 19 5766 19 5767 19 5768 19 5769 19 5770 19 5771 19 5772 19 5773 19 5774 19 5775 19 5776 19 5777 19 5778 19 5779 19 5780 19 5781 19 5782 19 5783 19 5784 19 5785 19 5786 19 5787 19 5788 18 5789 18 5790 18 5791 18 5792 18 5793 18 5794 18 5795 18 5796 18 5797 18 5798 18 5799 18 5800 18 5801 18 5802 18 5803 18 5804 18 5805 18 5806 18 5807 18 5808 18 5809 18 5810 26 5811 26 5812 23 5813 23 5814 23 5815 23 5816 23 5817 23 5818 23 5819 23 5820 23 5821 23 5822 23 5823 18 5824 18 5825 18 5826 18 5827 18 5828 18 5829 18 5830 18 5831 23 5832 23 5833 23 5834 23 5835 23 5836 18 5837 18 5838 18 5839 18 5840 23 5841 23 5842 23 5843 23 5844 23 5845 23 5846 23 5847 23 5848 23 5849 23 5850 23 5851 23 5852 23 5853 23 5854 23 5855 23 5856 23 5857 23 5858 23 5859 23 5860 23 5861 23 5862 23 5863 23 5864 23 5865 29 5866 29 5867 29 5868 29 5869 29 5870 29 5871 29 5872 18 5873 26 5874 26 5875 26 5876 27 5877 27 5878 26 5879 27 5880 26 5881 26 5882 26 5883 26 5884 26 5885 26 5886 18 5887 26 5888 27 5889 27 5890 26 5891 27 5892 26 5893 26 5894 26 5895 26 5896 26 5897 26 5898 26 5899 26 5900 26 5901 26 5902 26 5903 26 5904 26 5905 26 5906 26 5907 26 5908 26 5909 26 5910 26 5911 26 5912 26 5913 26 5914 26 5915 26 5916 26 5917 26 5918 26 5919 26 5920 26 5921 26 5922 26 5923 26 5924 26 5925 26 5926 26 5927 26 5928 26 5929 26 5930 26 5931 26 5932 26 5933 26 5934 26 5935 26 5936 26 5937 26 5938 26 5939 26 5940 26 5941 26 5942 26 5943 25 5944 25 5945 25 5946 25 5947 25 5948 25 5949 19 5950 19 5951 19 5952 19 5953 19 5954 19 5955 19 5956 19 5957 19 5958 19 5959 19 5960 19 5961 19 5962 19 5963 19 5964 19 5965 19 5966 19 5967 19 5968 19 5969 17 5970 17 5971 19 5972 17 5973 17 5974 17 5975 17 5976 17 5977 17 5978 17 5979 19 5980 19 5981 19 5982 19 5983 19 5984 19 5985 19 5986 19 5987 19 5988 19 5989 19 5990 19 5991 19 5992 19 5993 19 5994 19 5995 19 5996 19 5997 19 5998 19 5999 19 6000 19 6001 19 6002 19 6003 18 6004 18 6005 19 6006 18 6007 18 6008 18 6009 18 6010 18 6011 18 6012 18 6013 18 6014 18 6015 18 6016 18 6017 18 6018 23 6019 18 6020 18 6021 18 6022 18 6023 18 6024 18 6025 18 6026 18 6027 18 6028 18 6029 18 6030 18 6031 18 6032 18 6033 18 6034 18 6035 18 6036 18 6037 18 6038 18 6039 18 6040 27 6041 27 6042 27 6043 27 6044 27 6045 27 6046 27 6047 27 6048 27 6049 27 6050 27 6051 27 6052 27 6053 27 6054 27 6055 27 6056 27 6057 27 6058 26 6059 26 6060 27 6061 26 6062 26 6063 26 6064 26 6065 26 6066 26 6067 26 6068 26 6069 26 6070 26 6071 26 6072 26 6073 26 6074 26 6075 26 6076 26 6077 26 6078 26 6079 26 6080 26 6081 26 6082 26 6083 26 6084 26 6085 26 6086 26 6087 26 6088 26 6089 26 6090 26 6091 26 6092 25 6093 25 6094 26 6095 23 6096 23 6097 23 6098 23 6099 23 6100 23 6101 23 6102 23 6103 23 6104 23 6105 23 6106 19 6107 19 6108 19 6109 19 6110 19 6111 19 6112 19 6113 19 6114 19 6115 19 6116 19 6117 19 6118 19 6119 19 6120 19 6121 19 6122 19 6123 19 6124 19 6125 19 6126 19 6127 19 6128 19 6129 19 6130 19 6131 19 6132 19 6133 19 6134 19 6135 19 6136 19 6137 19 6138 19 6139 19 6140 19 6141 17 6142 17 6143 17 6144 17 6145 17 6146 17 6147 17 6148 17 6149 17 6150 19 6151 17 6152 17 6153 17 6154 17 6155 17 6156 17 6157 19 6158 19 6159 19 6160 19 6161 19 6162 19 6163 19 6164 19 6165 19 6166 19 6167 19 6168 19 6169 19 6170 19 6171 19 6172 19 6173 18 6174 16 6175 16 6176 16 6177 16 6178 16 6179 18 6180 18 6181 16 6182 18 6183 16 6184 18 6185 18 6186 18 6187 18 6188 18 6189 18 6190 18 6191 18 6192 18 6193 18 6194 18 6195 18 6196 18 6197 18 6198 18 6199 18 6200 18 6201 18 6202 18 6203 18 6204 18 6205 18 6206 18 6207 18 6208 18 6209 18 6210 18 6211 18 6212 18 6213 18 6214 18 6215 18 6216 18 6217 18 6218 18 6219 18 6220 18 6221 18 6222 18 6223 18 6224 18 6225 18 6226 18 6227 18 6228 18 6229 18 6230 18 6231 18 6232 18 6233 18 6234 18 6235 18 6236 18 6237 18 6238 18 6239 18 6240 18 6241 18 6242 18 6243 18 6244 18 6245 18 6246 18 6247 18 6248 18 6249 18 6250 18 6251 18 6252 18 6253 18 6254 27 6255 27 6256 27 6257 27 6258 27 6259 27 6260 27 6261 27 6262 27 6263 27 6264 27 6265 27 6266 27 6267 27 6268 27 6269 27 6270 27 6271 27 6272 27 6273 27 6274 27 6275 27 6276 27 6277 27 6278 27 6279 27 6280 27 6281 27 6282 27 6283 27 6284 27 6285 27 6286 27 6287 27 6288 26 6289 27 6290 27 6291 27 6292 26 6293 26 6294 26 6295 26 6296 26 6297 26 6298 26 6299 26 6300 26 6301 26 6302 26 6303 26 6304 26 6305 26 6306 27 6307 26 6308 26 6309 26 6310 26 6311 26 6312 26 6313 26 6314 26 6315 26 6316 26 6317 26 6318 26 6319 26 6320 26 6321 26 6322 26 6323 26 6324 26 6325 27 6326 27 6327 27 6328 27 6329 27 6330 27 6331 27 6332 27 6333 27 6334 27 6335 27 6336 27 6337 27 6338 27 6339 27 6340 27 6341 27 6342 27 6343 26 6344 27 6345 27 6346 26 6347 27 6348 24 6349 24 6350 24 6351 24 6352 24 6353 24 6354 24 6355 24 6356 24 6357 24 6358 24 6359 24 6360 24 6361 24 6362 16 6363 16 6364 16 6365 16 6366 18 6367 18 6368 18 6369 18 6370 18 6371 18 6372 18 6373 18 6374 18 6375 18 6376 18 6377 18 6378 18 6379 18 6380 18 6381 18 6382 18 6383 23 6384 23 6385 23 6386 23 6387 19 6388 19 6389 19 6390 19 6391 19 6392 19 6393 19 6394 19 6395 23 6396 21 6397 19 6398 19 6399 21 6400 21 6401 21 6402 21 6403 21 6404 21 6405 17 6406 21 6407 21 6408 21 6409 21 6410 21 6411 21 6412 21 6413 21 6414 21 6415 21 6416 21 6417 21 6418 21 6419 21 6420 21 6421 21 6422 21 6423 21 6424 21 6425 21 6426 21 6427 21 6428 21 6429 21 6430 21 6431 21 6432 21 6433 17 6434 17 6435 17 6436 17 6437 17 6438 17 6439 17 6440 17 6441 17 6442 17 6443 17 6444 17 6445 17 6446 17 6447 17 6448 17 6449 17 6450 17 6451 17 6452 17 6453 17 6454 18 6455 18 6456 18 6457 18 6458 18 6459 18 6460 18 6461 18 6462 18 6463 18 6464 18 6465 18 6466 18 6467 18 6468 18 6469 18 6470 18 6471 18 6472 18 6473 18 6474 18 6475 18 6476 18 6477 18 6478 18 6479 18 6480 18 6481 18 6482 18 6483 18 6484 18 6485 27 6486 18 6487 18 6488 18 6489 18 6490 18 6491 27 6492 27 6493 27 6494 27 6495 27 6496 27 6497 27 6498 27 6499 27 6500 27 6501 27 6502 27 6503 27 6504 27 6505 27 6506 27 6507 27 6508 27 6509 27 6510 27 6511 27 6512 27 6513 27 6514 27 6515 27 6516 27 6517 27 6518 27 6519 27 6520 27 6521 27 6522 27 6523 27 6524 27 6525 27 6526 27 6527 27 6528 27 6529 27 6530 27 6531 27 6532 27 6533 27 6534 27 6535 27 6536 27 6537 27 6538 27 6539 27 6540 27 6541 27 6542 27 6543 27 6544 27 6545 27 6546 27 6547 27 6548 27 6549 27 6550 24 6551 24 6552 24 6553 24 6554 24 6555 24 6556 24 6557 24 6558 21 6559 21 6560 21 6561 21 6562 21 6563 21 6564 21 6565 21 6566 21 6567 21 6568 21 6569 21 6570 21 6571 21 6572 21 6573 21 6574 21 6575 21 6576 21 6577 21 6578 21 6579 21 6580 21 6581 21 6582 21 6583 21 6584 21 6585 21 6586 17 6587 17 6588 17 6589 17 6590 17 6591 17 6592 17 6593 17 6594 17 6595 17 6596 17 6597 17 6598 17 6599 17 6600 17 6601 17 6602 17 6603 17 6604 17 6605 17 6606 17 6607 17 6608 17 6609 17 6610 17 6611 17 6612 17 6613 17 6614 17 6615 17 6616 17 6617 17 6618 17 6619 17 6620 17 6621 17 6622 17 6623 17 6624 17 6625 17 6626 17 6627 17 6628 17 6629 17 6630 17 6631 16 6632 16 6633 16 6634 16 6635 16 6636 17 6637 17 6638 17 6639 17 6640 19 6641 19 6642 19 6643 19 6644 16 6645 16 6646 16 6647 16 6648 16 6649 16 6650 16 6651 16 6652 16 6653 16 6654 16 6655 16 6656 16 6657 16 6658 16 6659 16 6660 16 6661 16 6662 16 6663 16 6664 16 6665 16 6666 16 6667 16 6668 16 6669 16 6670 16 6671 16 6672 16 6673 16 6674 16 6675 16 6676 16 6677 16 6678 16 6679 16 6680 16 6681 16 6682 16 6683 16 6684 16 6685 16 6686 16 6687 16 6688 16 6689 16 6690 16 6691 16 6692 16 6693 16 6694 16 6695 16 6696 16 6697 16 6698 16 6699 16 6700 16 6701 16 6702 16 6703 16 6704 16 6705 24 6706 24 6707 24 6708 27 6709 27 6710 24 6711 27 6712 24 6713 27 6714 27 6715 27 6716 27 6717 27 6718 27 6719 27 6720 17 6721 17 6722 17 6723 17 6724 17 6725 17 6726 17 6727 17 6728 17 6729 17 6730 17 6731 17 6732 17 6733 17 6734 17 6735 17 6736 17 6737 17 6738 17 6739 17 6740 17 6741 17 6742 17 6743 17 6744 17 6745 17 6746 17 6747 17 6748 17 6749 17 6750 17 6751 17 6752 17 6753 17 6754 17 6755 17 6756 17 6757 17 6758 16 6759 17 6760 17 6761 16 6762 16 6763 16 6764 16 6765 16 6766 16 6767 16 6768 16 6769 16 6770 16 6771 16 6772 16 6773 16 6774 16 6775 16 6776 16 6777 16 6778 16 6779 16 6780 16 6781 16 6782 16 6783 16 6784 16 6785 17 6786 19 6787 19 6788 19 6789 19 6790 16 6791 8 6792 8 6793 8 6794 9 6795 9 6796 9 6797 9 6798 9 6799 9 6800 9 6801 9 6802 9 6803 9 6804 9 6805 9 6806 9 6807 9 6808 9 6809 9 6810 9 6811 9 6812 9 6813 9 6814 9 6815 9 6816 9 6817 9 6818 6 6819 6 6820 6 6821 6 6822 6 6823 6 6824 6 6825 6 6826 6 6827 6 6828 6 6829 7 6830 7 6831 7 6832 7 6833 4 6834 7 6835 7 6836 7 6837 4 6838 4 6839 4 6840 4 6841 4 6842 4 6843 4 6844 4 6845 5 6846 5 6847 5 6848 5 6849 5 6850 5 6851 5 6852 5 6853 5 6854 5 6855 5 6856 5 6857 7 6858 7 6859 7 6860 7 6861 7 6862 7 6863 7 6864 7 6865 7 6866 7 6867 7 6868 7 6869 7 6870 7 6871 7 6872 7 6873 7 6874 7 6875 7 6876 7 6877 5 6878 5 6879 7 6880 5 6881 5 6882 5 6883 5 6884 7 6885 5 6886 5 6887 5 6888 5 6889 5 6890 5 6891 5 6892 5 6893 5 6894 5 6895 5 6896 5 6897 5 6898 5 6899 5 6900 20 6901 5 6902 20 6903 20 6904 20 6905 20 6906 20 6907 20 6908 20 6909 20 6910 20 6911 20 6912 20 6913 20 6914 20 6915 20 6916 20 6917 20 6918 20 6919 20 6920 20 6921 23 6922 23 6923 23 6924 23 6925 23 6926 23 6927 23 6928 23 6929 23 6930 23 6931 23 6932 23 6933 23 6934 23 6935 23 6936 23 6937 23 6938 23 6939 23 6940 23 6941 23 6942 23 6943 23 6944 23 6945 23 6946 23 6947 23 6948 23 6949 23 6950 23 6951 23 6952 21 6953 21 6954 21 6955 21 6956 21 6957 21 6958 21 6959 21 6960 21 6961 21 6962 21 6963 21 6964 21 6965 21 6966 21 6967 21 6968 21 6969 21 6970 21 6971 21 6972 21 6973 21 6974 21 6975 21 6976 21 6977 21 6978 21 6979 21 6980 21 6981 21 6982 21 6983 21 6984 21 6985 21 6986 21 6987 21 6988 21 6989 21 6990 21 6991 21 6992 21 6993 21 6994 21 6995 21 6996 21 6997 21 6998 21 6999 21 7000 21 7001 21 7002 21 7003 21 7004 21 7005 21 7006 17 7007 17 7008 17 7009 17 7010 17 7011 17 7012 17 7013 17 7014 17 7015 17 7016 17 7017 17 7018 17 7019 17 7020 17 7021 17 7022 17 7023 17 7024 17 7025 17 7026 17 7027 17 7028 17 7029 17 7030 17 7031 17 7032 17 7033 17 7034 17 7035 17 7036 17 7037 17 7038 17 7039 17 7040 17 7041 17 7042 17 7043 23 7044 21 7045 21 7046 23 7047 23 7048 21 7049 21 7050 21 7051 21 7052 21 7053 23 7054 23 7055 23 7056 23 7057 23 7058 23 7059 23 7060 23 7061 23 7062 23 7063 23 7064 23 7065 23 7066 21 7067 21 7068 23 7069 23 7070 21 7071 21 7072 21 7073 21 7074 21 7075 21 7076 21 7077 21 7078 21 7079 21 7080 21 7081 21 7082 21 7083 21 7084 21 7085 21 7086 21 7087 21 7088 21 7089 21 7090 21 7091 21 7092 21 7093 21 7094 21 7095 21 7096 21 7097 17 7098 17 7099 17 7100 17 7101 17 7102 21 7103 21 7104 21 7105 21 7106 17 7107 17 7108 17 7109 17 7110 17 7111 17 7112 17 7113 17 7114 17 7115 17 7116 17 7117 17 7118 17 7119 17 7120 17 7121 17 7122 17 7123 17 7124 17 7125 17 7126 17 7127 17 7128 17 7129 17 7130 17 7131 17 7132 17 7133 17 7134 17 7135 17 7136 17 7137 17 7138 17 7139 17 7140 17 7141 17 7142 17 7143 17 7144 16 7145 16 7146 17 7147 17 7148 17 7149 17 7150 17 7151 17 7152 17 7153 17 7154 17 7155 17 7156 17 7157 17 7158 17 7159 16 7160 16 7161 16 7162 16 7163 16 7164 16 7165 16 7166 16 7167 16 7168 16 7169 16 7170 0 7171 0 7172 0 7173 0 7174 0 7175 0 7176 0 7177 0 7178 0 7179 0 7180 0 7181 0 7182 0 7183 0 7184 0 7185 0 7186 0 7187 0 7188 0 7189 0 7190 0 7191 0 7192 0 7193 0 7194 0 7195 0 7196 0 7197 0 7198 0 7199 0 7200 0 7201 0 7202 0 7203 0 7204 0 7205 0 7206 0 7207 0 7208 0 7209 0 7210 0 7211 0 7212 0 7213 0 7214 0 7215 0 7216 0 7217 0 7218 0 7219 0 7220 0 7221 0 7222 0 7223 21 7224 21 7225 21 7226 21 7227 21 7228 21 7229 21 7230 21 7231 21 7232 21 7233 21 7234 21 7235 21 7236 21 7237 21 7238 21 7239 21 7240 21 7241 21 7242 21 7243 21 7244 21 7245 21 7246 21 7247 21 7248 17 7249 17 7250 17 7251 17 7252 17 7253 17 7254 17 7255 17 7256 17 7257 17 7258 17 7259 17 7260 17 7261 17 7262 20 7263 20 7264 20 7265 20 7266 20 7267 20 7268 20 7269 20 7270 20 7271 20 7272 20 7273 20 7274 23 7275 23 7276 23 7277 23 7278 23 7279 23 7280 23 7281 23 7282 23 7283 23 7284 23 7285 23 7286 23 7287 23 7288 23 7289 23 7290 23 7291 23 7292 23 7293 23 7294 23 7295 23 7296 23 7297 23 7298 23 7299 23 7300 23 7301 23 7302 23 7303 23 7304 23 7305 23 7306 23 7307 23 7308 15 7309 15 7310 15 7311 15 7312 15 7313 15 7314 15 7315 15 7316 15 7317 8 7318 8 7319 8 7320 8 7321 8 7322 8 7323 8 7324 8 7325 8 7326 8 7327 8 7328 8 7329 8 7330 8 7331 8 7332 8 7333 8 7334 9 7335 9 7336 9 7337 9 7338 9 7339 9 7340 9 7341 9 7342 9 7343 9 7344 9 7345 9 7346 9 7347 9 7348 9 7349 9 7350 9 7351 9 7352 9 7353 9 7354 9 7355 6 7356 6 7357 6 7358 6 7359 6 7360 6 7361 6 7362 6 7363 6 7364 6 7365 7 7366 7 7367 7 7368 7 7369 7 7370 7 7371 7 7372 7 7373 7 7374 7 7375 7 7376 7 7377 7 7378 7 7379 4 7380 4 7381 4 7382 4 7383 4 7384 5 7385 5 7386 5 7387 5 7388 5 7389 5 7390 7 7391 7 7392 7 7393 7 7394 7 7395 7 7396 7 7397 7 7398 7 7399 7 7400 7 7401 7 7402 7 7403 7 7404 7 7405 7 7406 7 7407 7 7408 7 7409 7 7410 7 7411 7 7412 7 7413 7 7414 7 7415 7 7416 7 7417 7 7418 7 7419 7 7420 7 7421 7 7422 7 7423 21 7424 21 7425 7 7426 7 7427 5 7428 5 7429 5 7430 5 7431 5 7432 5 7433 5 7434 5 7435 5 7436 20 7437 20 7438 20 7439 20 7440 20 7441 20 7442 20 7443 20 7444 20 7445 20 7446 20 7447 20 7448 20 7449 20 7450 20 7451 20 7452 20 7453 20 7454 21 7455 21 7456 23 7457 23 7458 23 7459 23 7460 23 7461 23 7462 23 7463 23 7464 23 7465 23 7466 23 7467 23 7468 23 7469 23 7470 23 7471 23 7472 23 7473 23 7474 23 7475 23 7476 23 7477 23 7478 23 7479 23 7480 23 7481 23 7482 23 7483 23 7484 23 7485 23 7486 21 7487 21 7488 21 7489 21 7490 21 7491 21 7492 21 7493 21 7494 23 7495 23 7496 23 7497 23 7498 23 7499 23 7500 18 7501 18 7502 18 7503 18 7504 18 7505 18 7506 18 7507 18 7508 18 7509 18 7510 18 7511 17 7512 17 7513 17 7514 17 7515 17 7516 17 7517 17 7518 17 7519 17 7520 17 7521 17 7522 17 7523 17 7524 17 7525 17 7526 17 7527 17 7528 17 7529 17 7530 17 7531 17 7532 17 7533 17 7534 17 7535 17 7536 17 7537 17 7538 17 7539 17 7540 17 7541 17 7542 17 7543 17 7544 17 7545 17 7546 17 7547 17 7548 17 7549 17 7550 17 7551 17 7552 17 7553 17 7554 17 7555 17 7556 17 7557 17 7558 0 7559 0 7560 16 7561 0 7562 0 7563 0 7564 0 7565 0 7566 0 7567 0 7568 0 7569 0 7570 0 7571 0 7572 0 7573 0 7574 0 7575 0 7576 0 7577 0 7578 0 7579 0 7580 0 7581 0 7582 0 7583 0 7584 0 7585 0 7586 0 7587 0 7588 0 7589 0 7590 1 7591 1 7592 2 7593 2 7594 2 7595 2 7596 2 7597 2 7598 2 7599 2 7600 2 7601 7 7602 7 7603 7 7604 7 7605 7 7606 7 7607 7 7608 7 7609 7 7610 7 7611 7 7612 7 7613 7 7614 7 7615 7 7616 7 7617 7 7618 7 7619 7 7620 7 7621 7 7622 7 7623 7 7624 7 7625 7 7626 7 7627 7 7628 7 7629 7 7630 7 7631 7 7632 7 7633 7 7634 7 7635 7 7636 7 7637 7 7638 7 7639 7 7640 7 7641 7 7642 7 7643 7 7644 7 7645 7 7646 7 7647 21 7648 21 7649 21 7650 21 7651 21 7652 5 7653 5 7654 5 7655 5 7656 5 7657 5 7658 20 7659 20 7660 20 7661 20 7662 20 7663 20 7664 20 7665 20 7666 20 7667 20 7668 20 7669 21 7670 21 7671 20 7672 21 7673 21 7674 21 7675 21 7676 20 7677 20 7678 21 7679 21 7680 21 7681 21 7682 21 7683 21 7684 21 7685 21 7686 21 7687 23 7688 23 7689 21 7690 21 7691 21 7692 21 7693 21 7694 21 7695 21 7696 21 7697 21 7698 21 7699 21 7700 21 7701 21 7702 21 7703 21 7704 21 7705 21 7706 21 7707 21 7708 21 7709 21 7710 21 7711 21 7712 21 7713 21 7714 21 7715 21 7716 21 7717 21 7718 21 7719 21 7720 21 7721 21 7722 21 7723 21 7724 21 7725 21 7726 21 7727 21 7728 21 7729 0 7730 1 7731 1 7732 1 7733 1 7734 1 7735 1 7736 1 7737 1 7738 1 7739 2 7740 2 7741 2 7742 2 7743 2 7744 2 7745 2 7746 2 7747 2 7748 2 7749 2 7750 2 7751 2 7752 2 7753 2 7754 2 7755 2 7756 2 7757 2 7758 2 7759 2 7760 2 7761 2 7762 2 7763 2 7764 2 7765 2 7766 3 7767 3 7768 3 7769 3 7770 3 7771 3 7772 3 7773 3 7774 3 7775 3 7776 3 7777 3 7778 3 7779 3 7780 3 7781 3 7782 3 7783 3 7784 3 7785 3 7786 3 7787 3 7788 3 7789 3 7790 3 7791 3 7792 3 7793 3 7794 3 7795 3 7796 3 7797 3 7798 3 7799 3 7800 3 7801 3 7802 3 7803 3 7804 3 7805 3 7806 3 7807 3 7808 3 7809 3 7810 13 7811 13 7812 13 7813 13 7814 13 7815 13 7816 13 7817 13 7818 13 7819 13 7820 13 7821 13 7822 13 7823 13 7824 13 7825 13 7826 13 7827 13 7828 13 7829 13 7830 13 7831 14 7832 13 7833 14 7834 14 7835 14 7836 14 7837 14 7838 14 7839 14 7840 14 7841 14 7842 14 7843 14 7844 14 7845 14 7846 14 7847 14 7848 15 7849 15 7850 15 7851 15 7852 15 7853 15 7854 15 7855 15 7856 15 7857 15 7858 15 7859 15 7860 15 7861 15 7862 15 7863 15 7864 8 7865 8 7866 8 7867 8 7868 8 7869 8 7870 8 7871 8 7872 8 7873 8 7874 8 7875 8 7876 8 7877 8 7878 8 7879 9 7880 9 7881 9 7882 9 7883 9 7884 9 7885 9 7886 9 7887 9 7888 9 7889 9 7890 9 7891 9 7892 9 7893 9 7894 9 7895 9 7896 9 7897 9 7898 9 7899 9 7900 6 7901 6 7902 6 7903 6 7904 6 7905 6 7906 6 7907 6 7908 6 7909 6 7910 7 7911 7 7912 7 7913 7 7914 7 7915 7 7916 7 7917 7 7918 7 7919 7 7920 7 7921 7 7922 7 7923 7 7924 7 7925 7 7926 7 7927 7 7928 7 7929 7 7930 3 7931 13 7932 13 7933 13 7934 13 7935 13 7936 13 7937 13 7938 13 7939 13 7940 13 7941 13 7942 13 7943 13 7944 13 7945 13 7946 13 7947 13 7948 13 7949 13 7950 13 7951 13 7952 13 7953 13 7954 14 7955 14 7956 14 7957 14 7958 14 7959 14 7960 14 7961 14 7962 21 7963 21 7964 21 7965 21 7966 21 7967 17 7968 17 7969 1 7970 1 7971 1 7972 17 7973 17 7974 1 7975 1 7976 1 7977 17 7978 17 7979 17 7980 1 7981 1 7982 1 7983 1 7984 1 7985 1 7986 1 7987 17 7988 17 7989 17 7990 17 7991 17 7992 17 7993 0 7994 0 7995 0 7996 0 7997 0 7998 0 7999 0 8000 0 8001 0 8002 0 8003 0 8004 0 8005 0 8006 0 8007 0 8008 0 8009 0 8010 0 8011 0 8012 0 8013 0 8014 1 8015 1 8016 1 8017 1 8018 1 8019 1 8020 1 8021 1 8022 1 8023 2 8024 2 8025 2 8026 2 8027 2 8028 2 8029 2 8030 2 8031 2 8032 2 8033 2 8034 2 8035 2 8036 2 8037 3 8038 3 8039 3 8040 3 8041 3 8042 3 8043 3 8044 3 8045 3 8046 3 8047 3 8048 3 8049 3 8050 3 8051 3 8052 13 8053 13 8054 3 8055 3 8056 13 8057 13 8058 13 8059 13 8060 13 8061 13 8062 13 8063 13 8064 13 8065 13 8066 13 8067 13 8068 13 8069 13 8070 13 8071 13 8072 13 8073 13 8074 13 8075 13 8076 13 8077 14 8078 14 8079 14 8080 15 8081 14 8082 14 8083 15 8084 15 8085 15 8086 15 8087 15 8088 15 8089 15 8090 15 8091 15 8092 15 8093 15 8094 15 8095 15 8096 15 8097 15 8098 15 8099 12 8100 8 8101 8 8102 8 8103 8 8104 8 8105 8 8106 8 8107 8 8108 8 8109 8 8110 8 8111 8 8112 8 8113 9 8114 9 8115 9 8116 9 8117 9 8118 9 8119 9 8120 9 8121 9 8122 9 8123 9 8124 9 8125 9 8126 9 8127 9 8128 9 8129 9 8130 9 8131 9 8132 9 8133 9 8134 6 8135 6 8136 6 8137 6 8138 6 8139 6 8140 6 8141 6 8142 6 8143 6 8144 7 8145 7 8146 7 8147 7 8148 7 8149 7 8150 7 8151 7 8152 7 8153 7 8154 7 8155 7 8156 7 8157 7 8158 7 8159 7 8160 7 8161 7 8162 7 8163 7 8164 7 8165 7 8166 7 8167 7 8168 7 8169 7 8170 7 8171 7 8172 7 8173 7 8174 7 8175 7 8176 7 8177 1 8178 1 8179 7 8180 7 8181 7 8182 7 8183 7 8184 7 8185 7 8186 21 8187 21 8188 21 8189 21 8190 21 8191 21 8192 21 8193 21 8194 20 8195 20 8196 21 8197 21 8198 21 8199 21 8200 21 8201 21 8202 21 8203 21 8204 21 8205 21 8206 21 8207 20 8208 20 8209 15 8210 15 8211 15 8212 15 8213 15 8214 15 8215 15 8216 15 8217 15 8218 15 8219 15 8220 15 8221 15 8222 15 8223 15 8224 12 8225 12 8226 8 8227 8 8228 8 8229 8 8230 8 8231 8 8232 8 8233 8 8234 8 8235 8 8236 9 8237 9 8238 9 8239 9 8240 9 8241 9 8242 9 8243 9 8244 9 8245 9 8246 9 8247 9 8248 9 8249 9 8250 9 8251 9 8252 9 8253 9 8254 9 8255 9 8256 6 8257 6 8258 6 8259 6 8260 6 8261 6 8262 6 8263 6 8264 6 8265 6 8266 6 8267 7 8268 7 8269 7 8270 7 8271 7 8272 7 8273 7 8274 7 8275 7 8276 7 8277 7 8278 7 8279 7 8280 7 8281 7 8282 7 8283 7 8284 7 8285 7 8286 7 8287 7 8288 7 8289 7 8290 7 8291 7 8292 1 8293 1 8294 1 8295 1 8296 1 8297 7 8298 1 8299 1 8300 1 8301 1 8302 1 8303 1 8304 7 8305 7 8306 7 8307 7 8308 7 8309 7 8310 7 8311 21 8312 21 8313 21 8314 21 8315 21 8316 21 8317 21 8318 21 8319 3 8320 3 8321 3 8322 3 8323 3 8324 3 8325 3 8326 3 8327 3 8328 3 8329 3 8330 3 8331 3 8332 3 8333 3 8334 3 8335 3 8336 3 8337 3 8338 3 8339 3 8340 3 8341 3 8342 3 8343 3 8344 3 8345 3 8346 3 8347 3 8348 3 8349 3 8350 3 8351 3 8352 13 8353 13 8354 13 8355 13 8356 13 8357 13 8358 13 8359 13 8360 13 8361 13 8362 13 8363 13 8364 13 8365 13 8366 13 8367 13 8368 13 8369 13 8370 13 8371 13 8372 13 8373 13 8374 13 8375 15 8376 15 8377 15 8378 15 8379 15 8380 15 8381 15 8382 15 8383 15 8384 15 8385 15 8386 15 8387 15 8388 12 8389 12 8390 12 8391 12 8392 8 8393 8 8394 8 8395 8 8396 8 8397 8 8398 8 8399 9 8400 9 8401 9 8402 9 8403 9 8404 9 8405 9 8406 9 8407 9 8408 9 8409 9 8410 9 8411 9 8412 9 8413 9 8414 12 8415 12 8416 12 8417 9 8418 9 8419 6 8420 6 8421 6 8422 6 8423 6 8424 6 8425 6 8426 6 8427 6 8428 6 8429 6 8430 7 8431 7 8432 7 8433 7 8434 7 8435 7 8436 7 8437 7 8438 7 8439 7 8440 7 8441 7 8442 7 8443 7 8444 7 8445 7 8446 7 8447 7 8448 7 8449 7 8450 7 8451 7 8452 7 8453 7 8454 1 8455 1 8456 1 8457 1 8458 1 8459 1 8460 1 8461 1 8462 1 8463 1 8464 1 8465 1 8466 1 8467 7 8468 21 8469 21 8470 7 8471 7 8472 7 8473 7 8474 21 8475 21 8476 21 8477 21 8478 21 8479 21 8480 21 8481 21 8482 21 8483 21 8484 21 8485 21 8486 21 8487 1 8488 1 8489 1 8490 1 8491 1 8492 1 8493 1 8494 1 8495 1 8496 1 8497 1 8498 1 8499 1 8500 1 8501 1 8502 1 8503 1 8504 1 8505 0 8506 0 8507 0 8508 0 8509 0 8510 0 8511 0 8512 0 8513 0 8514 0 8515 0 8516 1 8517 0 8518 1 8519 0 8520 0 8521 0 8522 0 8523 0 8524 1 8525 1 8526 1 8527 1 8528 1 8529 1 8530 1 8531 1 8532 1 8533 1 8534 1 8535 1 8536 1 8537 0 8538 0 8539 0 8540 0 8541 0 8542 7 8543 7 8544 7 8545 7 8546 7 8547 7 8548 7 8549 7 8550 7 8551 7 8552 7 8553 7 8554 7 8555 7 8556 7 8557 7 8558 7 8559 1 8560 1 8561 1 8562 1 8563 1 8564 1 8565 1 8566 1 8567 1 8568 1 8569 1 8570 1 8571 1 8572 1 8573 1 8574 1 8575 1 8576 1 8577 1 8578 1 8579 1 8580 1 8581 1 8582 1 8583 1 8584 1 8585 1 8586 1 8587 1 8588 0 8589 0 8590 1 8591 1 8592 1 8593 1 8594 1 8595 1 8596 1 8597 1 8598 1 8599 1 8600 1 8601 1 8602 1 8603 1 8604 1 8605 1 8606 1 8607 1 8608 0 8609 0 8610 0 8611 1 8612 1 8613 1 8614 1 8615 1 8616 1 8617 1 8618 1 8619 1 8620 1 8621 2 8622 2 8623 2 8624 1 8625 1 8626 2 8627 2 8628 2 8629 2 8630 2 8631 2 8632 2 8633 2 8634 2 8635 2 8636 2 8637 2 8638 2 8639 2 8640 2 8641 15 8642 15 8643 15 8644 12 8645 12 8646 12 8647 12 8648 12 8649 12 8650 12 8651 12 8652 12 8653 8 8654 8 8655 8 8656 8 8657 9 8658 9 8659 9 8660 9 8661 9 8662 9 8663 9 8664 9 8665 9 8666 9 8667 9 8668 9 8669 9 8670 9 8671 12 8672 12 8673 12 8674 12 8675 12 8676 12 8677 6 8678 6 8679 6 8680 6 8681 6 8682 6 8683 6 8684 6 8685 6 8686 6 8687 6 8688 6 8689 6 8690 6 8691 6 8692 7 8693 7 8694 7 8695 7 8696 7 8697 7 8698 7 8699 7 8700 7 8701 7 8702 7 8703 7 8704 7 8705 7 8706 1 8707 1 8708 1 8709 1 8710 1 8711 1 8712 1 8713 1 8714 1 8715 1 8716 1 8717 1 8718 1 8719 1 8720 1 8721 1 8722 1 8723 1 8724 1 8725 1 8726 1 8727 1 8728 1 8729 1 8730 1 8731 1 8732 1 8733 1 8734 1 8735 1 8736 1 8737 1 8738 1 8739 1 8740 1 8741 1 8742 1 8743 15 8744 15 8745 12 8746 12 8747 12 8748 12 8749 12 8750 12 8751 12 8752 12 8753 12 8754 12 8755 12 8756 12 8757 8 8758 8 8759 9 8760 9 8761 9 8762 9 8763 9 8764 9 8765 9 8766 9 8767 9 8768 9 8769 9 8770 9 8771 9 8772 12 8773 12 8774 12 8775 12 8776 12 8777 12 8778 12 8779 6 8780 6 8781 6 8782 6 8783 6 8784 6 8785 6 8786 6 8787 6 8788 6 8789 6 8790 6 8791 6 8792 6 8793 7 8794 7 8795 7 8796 7 8797 7 8798 7 8799 7 8800 7 8801 7 8802 7 8803 7 8804 7 8805 7 8806 7 8807 7 8808 1 8809 1 8810 1 8811 1 8812 1 8813 1 8814 1 8815 1 8816 1 8817 1 8818 1 8819 1 8820 1 8821 1 8822 1 8823 1 8824 1 8825 1 8826 1 8827 1 8828 1 8829 1 8830 1 8831 1 8832 1 8833 1 8834 1 8835 1 8836 1 8837 1 8838 1 8839 2 8840 2 8841 2 8842 2 8843 2 8844 2 8845 2 8846 2 8847 2 8848 2 8849 2 8850 2 8851 2 8852 2 8853 2 8854 3 8855 3 8856 3 8857 3 8858 3 8859 3 8860 3 8861 3 8862 3 8863 3 8864 3 8865 3 8866 3 8867 3 8868 3 8869 3 8870 3 8871 3 8872 3 8873 3 8874 3 8875 3 8876 3 8877 3 8878 3 8879 3 8880 3 8881 3 8882 3 8883 3 8884 3 8885 3 8886 3 8887 3 8888 3 8889 3 8890 3 8891 3 8892 3 8893 3 8894 3 8895 3 8896 3 8897 3 8898 3 8899 3 8900 3 8901 3 8902 3 8903 3 8904 3 8905 13 8906 13 8907 13 8908 13 8909 13 8910 13 8911 13 8912 13 8913 13 8914 13 8915 13 8916 13 8917 13 8918 13 8919 13 8920 13 8921 13 8922 13 8923 13 8924 12 8925 13 8926 13 8927 13 8928 15 8929 15 8930 15 8931 15 8932 15 8933 12 8934 12 8935 12 8936 12 8937 12 8938 12 8939 12 8940 12 8941 12 8942 12 8943 12 8944 12 8945 12 8946 12 8947 9 8948 9 8949 9 8950 9 8951 9 8952 9 8953 9 8954 9 8955 9 8956 9 8957 9 8958 12 8959 12 8960 12 8961 12 8962 12 8963 12 8964 12 8965 12 8966 6 8967 6 8968 6 8969 6 8970 6 8971 6 8972 6 8973 6 8974 6 8975 6 8976 6 8977 6 8978 6 8979 6 8980 7 8981 7 8982 7 8983 7 8984 7 8985 7 8986 7 8987 7 8988 7 8989 7 8990 1 8991 1 8992 1 8993 1 8994 1 8995 1 8996 1 8997 1 8998 1 8999 1 9000 1 9001 1 9002 1 9003 1 9004 1 9005 1 9006 1 9007 1 9008 1 9009 1 9010 1 9011 1 9012 1 9013 1 9014 1 9015 1 9016 1 9017 1 9018 1 9019 1 9020 1 9021 1 9022 2 9023 2 9024 2 9025 2 9026 2 9027 2 9028 2 9029 2 9030 2 9031 2 9032 2 9033 2 9034 2 9035 2 9036 2 9037 2 9038 2 9039 2 9040 2 9041 2 9042 2 9043 2 9044 3 9045 2 9046 3 9047 3 9048 2 9049 3 9050 3 9051 3 9052 3 9053 3 9054 3 9055 3 9056 3 9057 3 9058 3 9059 3 9060 3 9061 3 9062 3 9063 3 9064 3 9065 3 9066 3 9067 3 9068 3 9069 3 9070 3 9071 3 9072 3 9073 13 9074 13 9075 13 9076 13 9077 13 9078 13 9079 13 9080 12 9081 12 9082 12 9083 12 9084 12 9085 12 9086 12 9087 12 9088 12 9089 12 9090 12 9091 12 9092 12 9093 12 9094 21 9095 12 9096 12 9097 12 9098 12 9099 12 9100 12 9101 12 9102 12 9103 12 9104 12 9105 12 9106 13 9107 13 9108 12 9109 12 9110 12 9111 12 9112 12 9113 12 9114 12 9115 12 9116 12 9117 12 9118 12 9119 12 9120 12 9121 9 9122 9 9123 9 9124 9 9125 9 9126 9 9127 9 9128 12 9129 12 9130 12 9131 12 9132 12 9133 12 9134 12 9135 12 9136 12 9137 12 9138 6 9139 6 9140 6 9141 6 9142 6 9143 6 9144 6 9145 6 9146 6 9147 6 9148 6 9149 6 9150 6 9151 6 9152 6 9153 6 9154 6 9155 6 9156 6 9157 7 9158 7 9159 1 9160 1 9161 1 9162 1 9163 1 9164 1 9165 1 9166 1 9167 1 9168 1 9169 1 9170 1 9171 1 9172 1 9173 1 9174 1 9175 1 9176 1 9177 1 9178 1 9179 1 9180 1 9181 1 9182 1 9183 1 9184 1 9185 1 9186 1 9187 1 9188 1 9189 1 9190 1 9191 1 9192 1 9193 1 9194 1 9195 2 9196 2 9197 2 9198 2 9199 2 9200 2 9201 2 9202 2 9203 2 9204 2 9205 2 9206 2 9207 2 9208 2 9209 3 9210 3 9211 3 9212 3 9213 3 9214 3 9215 3 9216 3 9217 3 9218 3 9219 3 9220 3 9221 6 9222 13 9223 13 9224 13 9225 13 9226 13 9227 13 9228 13 9229 12 9230 12 9231 12 9232 12 9233 12 9234 12 9235 12 9236 12 9237 12 9238 12 9239 12 9240 12 9241 12 9242 12 9243 12 9244 12 9245 12 9246 12 9247 12 9248 12 9249 12 9250 9 9251 9 9252 9 9253 9 9254 9 9255 12 9256 12 9257 12 9258 12 9259 12 9260 12 9261 12 9262 12 9263 12 9264 12 9265 12 9266 6 9267 6 9268 6 9269 6 9270 6 9271 6 9272 6 9273 6 9274 6 9275 6 9276 6 9277 6 9278 6 9279 6 9280 6 9281 6 9282 6 9283 6 9284 6 9285 7 9286 1 9287 1 9288 1 9289 1 9290 1 9291 1 9292 1 9293 1 9294 1 9295 2 9296 2 9297 2 9298 2 9299 2 9300 2 9301 2 9302 2 9303 2 9304 2 9305 2 9306 2 9307 2 9308 2 9309 2 9310 2 9311 6 9312 6 9313 3 9314 3 9315 3 9316 3 9317 3 9318 3 9319 3 9320 3 9321 3 9322 3 9323 3 9324 6 9325 6 9326 6 9327 6 9328 13 9329 13 9330 13 9331 13 9332 12 9333 12 9334 12 9335 12 9336 12 9337 12 9338 12 9339 12 9340 12 9341 12 9342 12 9343 12 9344 12 9345 12 9346 12 9347 12 9348 12 9349 12 9350 12 9351 12 9352 12 9353 12 9354 12 9355 12 9356 12 9357 12 9358 12 9359 12 9360 12 9361 12 9362 12 9363 12 9364 12 9365 12 9366 12 9367 12 9368 12 9369 12 9370 12 9371 12 9372 12 9373 12 9374 6 9375 6 9376 6 9377 6 9378 6 9379 6 9380 6 9381 6 9382 6 9383 6 9384 6 9385 6 9386 6 9387 6 9388 6 9389 6 9390 6 9391 6 9392 6 9393 6 9394 6 9395 6 9396 6 9397 1 9398 1 9399 1 9400 1 9401 1 9402 1 9403 1 9404 1 9405 2 9406 2 9407 2 9408 2 9409 2 9410 2 9411 2 9412 2 9413 2 9414 2 9415 6 9416 6 9417 2 9418 2 9419 6 9420 6 9421 6 9422 6 9423 6 9424 6 9425 6 9426 6 9427 6 9428 3 9429 6 9430 6 9431 6 9432 6 9433 6 9434 6 9435 6 9436 6 9437 12 9438 13 9439 12 9440 12 9441 12 9442 12 9443 12 9444 12 9445 12 9446 12 9447 12 9448 12 9449 12 9450 12 9451 12 9452 12 9453 12 9454 12 9455 12 9456 12 9457 12 9458 12 9459 12 9460 12 9461 12 9462 12 9463 12 9464 12 9465 12 9466 12 9467 12 9468 12 9469 12 9470 12 9471 12 9472 12 9473 12 9474 12 9475 12 9476 12 9477 12 9478 12 9479 12 9480 6 9481 6 9482 6 9483 6 9484 6 9485 6 9486 6 9487 6 9488 6 9489 6 9490 6 9491 6 9492 6 9493 6 9494 6 9495 6 9496 6 9497 2 9498 1 9499 6 9500 6 9501 6 9502 6 9503 6 9504 6 9505 6 9506 6 9507 6 9508 6 9509 6 9510 6 9511 6 9512 6 9513 6 9514 6 9515 6 9516 6 9517 6 9518 6 9519 6 9520 6 9521 6 9522 6 9523 6 9524 6 9525 6 9526 6 9527 6 9528 6 9529 6 9530 6 9531 6 9532 12 9533 12 9534 12 9535 12 9536 12 9537 12 9538 12 9539 12 9540 12 9541 12 9542 12 9543 12 9544 12 9545 12 9546 12 9547 12 9548 12 9549 12 9550 12 9551 12 9552 12 9553 12 9554 12 9555 12 9556 12 9557 12 9558 12 9559 12 9560 12 9561 12 9562 12 9563 6 9564 6 9565 6 9566 6 9567 6 9568 6 9569 6 9570 6 9571 6 9572 6 9573 6 9574 6 9575 6 9576 6 9577 6 9578 6 9579 6 9580 6 9581 6 9582 6 9583 6 9584 6 9585 6 9586 6 9587 6 9588 6 9589 6 9590 6 9591 6 9592 6 9593 6 9594 6 9595 6 9596 6 9597 12 9598 12 9599 12 9600 12 9601 12 9602 12 9603 12 9604 12 9605 12 9606 12 9607 12 9608 12 9609 12 9610 12 9611 12 9612 12 9613 12 9614 12 9615 12 9616 12 9617 12 9618 12 9619 12 9620 12 9621 12 9622 12 9623 6 9624 6 9625 6 9626 6 9627 6 9628 6 9629 6 9630 6 9631 6 9632 6 9633 6 9634 6 9635 6 9636 6 9637 6 9638 6 9639 6 9640 6 9641 6 9642 6 9643 6 9644 6 9645 6 9646 12 9647 12 9648 12 9649 12 9650 12 9651 12 9652 12 9653 12 9654 12 9655 12 9656 12 9657 12 9658 12 9659 12 9660 6 9661 6 9662 6 9663 6 9664 6 9665 6 9666 12 9667 12 9668 12 9669 12 9670 16 9671 16 9672 16 9673 16 9674 18 9675 18 9676 16 9677 18 9678 18 9679 18 9680 16 9681 16 9682 16 9683 18 9684 18 9685 16 9686 16 9687 16 9688 16 9689 16 9690 16 9691 16 9692 18 9693 18 9694 23 9695 23 9696 23 9697 29 9698 29 9699 29 9700 23 9701 23 9702 23 9703 23 9704 18 9705 18 9706 27 9707 27 9708 27 9709 27 9710 27 9711 27 9712 27 9713 27 9714 27 9715 27 9716 27 9717 27 9718 27 9719 27 9720 27 9721 16 9722 16 9723 16 9724 16 9725 18 9726 18 9727 18 9728 18 9729 18 9730 18 9731 18 9732 18 9733 18 9734 18 9735 18 9736 18 9737 19 9738 19 9739 25 9740 25 9741 25 9742 25 9743 25 9744 25 9745 0 9746 0 9747 24 9748 24 9749 24 9750 16 9751 14 9752 26 9753 26 9754 26 9755 26 9756 26 9757 26 9758 26 9759 26 9760 26 9761 16 9762 16 9763 21 9764 21 9765 21 9766 2 9767 21 9768 18 9769 18 9770 18 9771 18 9772 18 9773 18 9774 18 9775 17 9776 25 9777 17 9778 18 9779 18 9780 18 9781 27 9782 19 9783 19 9784 0 9785 16 9786 0 9787 0 9788 0 9789 0 9790 21 9791 3 9792 16 9793 29 9794 29 9795 29 9796 16 9797 16 9798 16 9799 16 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/compress-coarsen.grf000066400000000000000000002650061514310134000277250ustar00rootroot000000000000000 1280 21498 0 000 0 5 3 32 33 34 35 0 5 1 32 33 34 35 0 17 7 9 11 13 15 36 37 38 39 40 41 42 43 44 45 46 47 0 17 5 9 11 13 15 36 37 38 39 40 41 42 43 44 45 46 47 0 17 5 7 11 13 15 36 37 38 39 40 41 42 43 44 45 46 47 0 17 5 7 9 13 15 36 37 38 39 40 41 42 43 44 45 46 47 0 17 5 7 9 11 15 36 37 38 39 40 41 42 43 44 45 46 47 0 17 5 7 9 11 13 36 37 38 39 40 41 42 43 44 45 46 47 0 5 19 48 49 50 51 0 5 17 48 49 50 51 0 11 23 25 27 52 53 54 55 56 57 58 59 0 11 21 25 27 52 53 54 55 56 57 58 59 0 11 21 23 27 52 53 54 55 56 57 58 59 0 11 21 23 25 52 53 54 55 56 57 58 59 3 29 60 61 3 28 60 61 3 31 62 63 3 30 62 63 5 1 3 33 34 35 9 1 3 32 34 35 64 65 66 67 5 1 3 32 33 35 9 1 3 32 33 34 64 65 66 67 29 5 7 9 11 13 15 37 38 39 40 41 42 43 44 45 46 47 68 69 70 71 72 73 74 75 76 77 78 79 29 5 7 9 11 13 15 36 38 39 40 41 42 43 44 45 46 47 68 69 70 71 72 73 74 75 76 77 78 79 29 5 7 9 11 13 15 36 37 39 40 41 42 43 44 45 46 47 68 69 70 71 72 73 74 75 76 77 78 79 29 5 7 9 11 13 15 36 37 38 40 41 42 43 44 45 46 47 68 69 70 71 72 73 74 75 76 77 78 79 17 5 7 9 11 13 15 36 37 38 39 41 42 43 44 45 46 47 29 5 7 9 11 13 15 36 37 38 39 40 42 43 44 45 46 47 68 69 70 71 72 73 74 75 76 77 78 79 17 5 7 9 11 13 15 36 37 38 39 40 41 43 44 45 46 47 29 5 7 9 11 13 15 36 37 38 39 40 41 42 44 45 46 47 68 69 70 71 72 73 74 75 76 77 78 79 17 5 7 9 11 13 15 36 37 38 39 40 41 42 43 45 46 47 29 5 7 9 11 13 15 36 37 38 39 40 41 42 43 44 46 47 68 69 70 71 72 73 74 75 76 77 78 79 17 5 7 9 11 13 15 36 37 38 39 40 41 42 43 44 45 47 29 5 7 9 11 13 15 36 37 38 39 40 41 42 43 44 45 46 68 69 70 71 72 73 74 75 76 77 78 79 5 17 19 49 50 51 9 17 19 48 50 51 80 81 82 83 5 17 19 48 49 51 9 17 19 48 49 50 80 81 82 83 11 21 23 25 27 53 54 55 56 57 58 59 19 21 23 25 27 52 54 55 56 57 58 59 84 85 86 87 88 89 90 91 11 21 23 25 27 52 53 55 56 57 58 59 19 21 23 25 27 52 53 54 56 57 58 59 84 85 86 87 88 89 90 91 19 21 23 25 27 52 53 54 55 57 58 59 84 85 86 87 88 89 90 91 19 21 23 25 27 52 53 54 55 56 58 59 84 85 86 87 88 89 90 91 19 21 23 25 27 52 53 54 55 56 57 59 84 85 86 87 88 89 90 91 19 21 23 25 27 52 53 54 55 56 57 58 84 85 86 87 88 89 90 91 5 28 29 61 92 93 5 28 29 60 92 93 5 30 31 63 94 95 5 30 31 62 94 95 5 33 35 65 66 67 9 33 35 64 66 67 96 97 98 99 5 33 35 64 65 67 9 33 35 64 65 66 96 97 98 99 31 36 37 38 39 41 43 45 47 69 70 71 72 73 74 75 76 77 78 79 100 101 102 103 104 105 106 107 108 109 110 111 31 36 37 38 39 41 43 45 47 68 70 71 72 73 74 75 76 77 78 79 100 101 102 103 104 105 106 107 108 109 110 111 31 36 37 38 39 41 43 45 47 68 69 71 72 73 74 75 76 77 78 79 100 101 102 103 104 105 106 107 108 109 110 111 31 36 37 38 39 41 43 45 47 68 69 70 72 73 74 75 76 77 78 79 100 101 102 103 104 105 106 107 108 109 110 111 19 36 37 38 39 41 43 45 47 68 69 70 71 73 74 75 76 77 78 79 31 36 37 38 39 41 43 45 47 68 69 70 71 72 74 75 76 77 78 79 100 101 102 103 104 105 106 107 108 109 110 111 19 36 37 38 39 41 43 45 47 68 69 70 71 72 73 75 76 77 78 79 31 36 37 38 39 41 43 45 47 68 69 70 71 72 73 74 76 77 78 79 100 101 102 103 104 105 106 107 108 109 110 111 19 36 37 38 39 41 43 45 47 68 69 70 71 72 73 74 75 77 78 79 31 36 37 38 39 41 43 45 47 68 69 70 71 72 73 74 75 76 78 79 100 101 102 103 104 105 106 107 108 109 110 111 19 36 37 38 39 41 43 45 47 68 69 70 71 72 73 74 75 76 77 79 31 36 37 38 39 41 43 45 47 68 69 70 71 72 73 74 75 76 77 78 100 101 102 103 104 105 106 107 108 109 110 111 5 49 51 81 82 83 9 49 51 80 82 83 112 113 114 115 5 49 51 80 81 83 9 49 51 80 81 82 112 113 114 115 13 53 55 56 57 58 59 85 86 87 88 89 90 91 21 53 55 56 57 58 59 84 86 87 88 89 90 91 116 117 118 119 120 121 122 123 13 53 55 56 57 58 59 84 85 87 88 89 90 91 21 53 55 56 57 58 59 84 85 86 88 89 90 91 116 117 118 119 120 121 122 123 21 53 55 56 57 58 59 84 85 86 87 89 90 91 116 117 118 119 120 121 122 123 21 53 55 56 57 58 59 84 85 86 87 88 90 91 116 117 118 119 120 121 122 123 21 53 55 56 57 58 59 84 85 86 87 88 89 91 116 117 118 119 120 121 122 123 21 53 55 56 57 58 59 84 85 86 87 88 89 90 116 117 118 119 120 121 122 123 5 60 61 93 124 125 5 60 61 92 124 125 5 62 63 95 126 127 5 62 63 94 126 127 5 65 67 97 98 99 9 65 67 96 98 99 128 129 130 131 5 65 67 96 97 99 9 65 67 96 97 98 128 129 130 131 31 68 69 70 71 73 75 77 79 101 102 103 104 105 106 107 108 109 110 111 132 133 134 135 136 137 138 139 140 141 142 143 31 68 69 70 71 73 75 77 79 100 102 103 104 105 106 107 108 109 110 111 132 133 134 135 136 137 138 139 140 141 142 143 31 68 69 70 71 73 75 77 79 100 101 103 104 105 106 107 108 109 110 111 132 133 134 135 136 137 138 139 140 141 142 143 31 68 69 70 71 73 75 77 79 100 101 102 104 105 106 107 108 109 110 111 132 133 134 135 136 137 138 139 140 141 142 143 19 68 69 70 71 73 75 77 79 100 101 102 103 105 106 107 108 109 110 111 31 68 69 70 71 73 75 77 79 100 101 102 103 104 106 107 108 109 110 111 132 133 134 135 136 137 138 139 140 141 142 143 19 68 69 70 71 73 75 77 79 100 101 102 103 104 105 107 108 109 110 111 31 68 69 70 71 73 75 77 79 100 101 102 103 104 105 106 108 109 110 111 132 133 134 135 136 137 138 139 140 141 142 143 19 68 69 70 71 73 75 77 79 100 101 102 103 104 105 106 107 109 110 111 31 68 69 70 71 73 75 77 79 100 101 102 103 104 105 106 107 108 110 111 132 133 134 135 136 137 138 139 140 141 142 143 19 68 69 70 71 73 75 77 79 100 101 102 103 104 105 106 107 108 109 111 31 68 69 70 71 73 75 77 79 100 101 102 103 104 105 106 107 108 109 110 132 133 134 135 136 137 138 139 140 141 142 143 5 81 83 113 114 115 9 81 83 112 114 115 144 145 146 147 5 81 83 112 113 115 9 81 83 112 113 114 144 145 146 147 13 85 87 88 89 90 91 117 118 119 120 121 122 123 21 85 87 88 89 90 91 116 118 119 120 121 122 123 148 149 150 151 152 153 154 155 13 85 87 88 89 90 91 116 117 119 120 121 122 123 21 85 87 88 89 90 91 116 117 118 120 121 122 123 148 149 150 151 152 153 154 155 21 85 87 88 89 90 91 116 117 118 119 121 122 123 148 149 150 151 152 153 154 155 21 85 87 88 89 90 91 116 117 118 119 120 122 123 148 149 150 151 152 153 154 155 21 85 87 88 89 90 91 116 117 118 119 120 121 123 148 149 150 151 152 153 154 155 21 85 87 88 89 90 91 116 117 118 119 120 121 122 148 149 150 151 152 153 154 155 5 92 93 125 156 157 5 92 93 124 156 157 5 94 95 127 158 159 5 94 95 126 158 159 5 97 99 129 130 131 9 97 99 128 130 131 160 161 162 163 5 97 99 128 129 131 9 97 99 128 129 130 160 161 162 163 31 100 101 102 103 105 107 109 111 133 134 135 136 137 138 139 140 141 142 143 164 165 166 167 168 169 170 171 172 173 174 175 31 100 101 102 103 105 107 109 111 132 134 135 136 137 138 139 140 141 142 143 164 165 166 167 168 169 170 171 172 173 174 175 31 100 101 102 103 105 107 109 111 132 133 135 136 137 138 139 140 141 142 143 164 165 166 167 168 169 170 171 172 173 174 175 31 100 101 102 103 105 107 109 111 132 133 134 136 137 138 139 140 141 142 143 164 165 166 167 168 169 170 171 172 173 174 175 19 100 101 102 103 105 107 109 111 132 133 134 135 137 138 139 140 141 142 143 31 100 101 102 103 105 107 109 111 132 133 134 135 136 138 139 140 141 142 143 164 165 166 167 168 169 170 171 172 173 174 175 19 100 101 102 103 105 107 109 111 132 133 134 135 136 137 139 140 141 142 143 31 100 101 102 103 105 107 109 111 132 133 134 135 136 137 138 140 141 142 143 164 165 166 167 168 169 170 171 172 173 174 175 19 100 101 102 103 105 107 109 111 132 133 134 135 136 137 138 139 141 142 143 31 100 101 102 103 105 107 109 111 132 133 134 135 136 137 138 139 140 142 143 164 165 166 167 168 169 170 171 172 173 174 175 19 100 101 102 103 105 107 109 111 132 133 134 135 136 137 138 139 140 141 143 31 100 101 102 103 105 107 109 111 132 133 134 135 136 137 138 139 140 141 142 164 165 166 167 168 169 170 171 172 173 174 175 5 113 115 145 146 147 9 113 115 144 146 147 176 177 178 179 5 113 115 144 145 147 9 113 115 144 145 146 176 177 178 179 13 117 119 120 121 122 123 149 150 151 152 153 154 155 21 117 119 120 121 122 123 148 150 151 152 153 154 155 180 181 182 183 184 185 186 187 13 117 119 120 121 122 123 148 149 151 152 153 154 155 21 117 119 120 121 122 123 148 149 150 152 153 154 155 180 181 182 183 184 185 186 187 21 117 119 120 121 122 123 148 149 150 151 153 154 155 180 181 182 183 184 185 186 187 21 117 119 120 121 122 123 148 149 150 151 152 154 155 180 181 182 183 184 185 186 187 21 117 119 120 121 122 123 148 149 150 151 152 153 155 180 181 182 183 184 185 186 187 21 117 119 120 121 122 123 148 149 150 151 152 153 154 180 181 182 183 184 185 186 187 5 124 125 157 188 189 5 124 125 156 188 189 5 126 127 159 190 191 5 126 127 158 190 191 5 129 131 161 162 163 9 129 131 160 162 163 192 193 194 195 5 129 131 160 161 163 9 129 131 160 161 162 192 193 194 195 31 132 133 134 135 137 139 141 143 165 166 167 168 169 170 171 172 173 174 175 196 197 198 199 200 201 202 203 204 205 206 207 31 132 133 134 135 137 139 141 143 164 166 167 168 169 170 171 172 173 174 175 196 197 198 199 200 201 202 203 204 205 206 207 31 132 133 134 135 137 139 141 143 164 165 167 168 169 170 171 172 173 174 175 196 197 198 199 200 201 202 203 204 205 206 207 31 132 133 134 135 137 139 141 143 164 165 166 168 169 170 171 172 173 174 175 196 197 198 199 200 201 202 203 204 205 206 207 19 132 133 134 135 137 139 141 143 164 165 166 167 169 170 171 172 173 174 175 31 132 133 134 135 137 139 141 143 164 165 166 167 168 170 171 172 173 174 175 196 197 198 199 200 201 202 203 204 205 206 207 19 132 133 134 135 137 139 141 143 164 165 166 167 168 169 171 172 173 174 175 31 132 133 134 135 137 139 141 143 164 165 166 167 168 169 170 172 173 174 175 196 197 198 199 200 201 202 203 204 205 206 207 19 132 133 134 135 137 139 141 143 164 165 166 167 168 169 170 171 173 174 175 31 132 133 134 135 137 139 141 143 164 165 166 167 168 169 170 171 172 174 175 196 197 198 199 200 201 202 203 204 205 206 207 19 132 133 134 135 137 139 141 143 164 165 166 167 168 169 170 171 172 173 175 31 132 133 134 135 137 139 141 143 164 165 166 167 168 169 170 171 172 173 174 196 197 198 199 200 201 202 203 204 205 206 207 5 145 147 177 178 179 9 145 147 176 178 179 208 209 210 211 5 145 147 176 177 179 9 145 147 176 177 178 208 209 210 211 13 149 151 152 153 154 155 181 182 183 184 185 186 187 21 149 151 152 153 154 155 180 182 183 184 185 186 187 212 213 214 215 216 217 218 219 13 149 151 152 153 154 155 180 181 183 184 185 186 187 21 149 151 152 153 154 155 180 181 182 184 185 186 187 212 213 214 215 216 217 218 219 21 149 151 152 153 154 155 180 181 182 183 185 186 187 212 213 214 215 216 217 218 219 21 149 151 152 153 154 155 180 181 182 183 184 186 187 212 213 214 215 216 217 218 219 21 149 151 152 153 154 155 180 181 182 183 184 185 187 212 213 214 215 216 217 218 219 21 149 151 152 153 154 155 180 181 182 183 184 185 186 212 213 214 215 216 217 218 219 5 156 157 189 220 221 5 156 157 188 220 221 5 158 159 191 222 223 5 158 159 190 222 223 5 161 163 193 194 195 9 161 163 192 194 195 224 225 226 227 5 161 163 192 193 195 9 161 163 192 193 194 224 225 226 227 31 164 165 166 167 169 171 173 175 197 198 199 200 201 202 203 204 205 206 207 228 229 230 231 232 233 234 235 236 237 238 239 31 164 165 166 167 169 171 173 175 196 198 199 200 201 202 203 204 205 206 207 228 229 230 231 232 233 234 235 236 237 238 239 31 164 165 166 167 169 171 173 175 196 197 199 200 201 202 203 204 205 206 207 228 229 230 231 232 233 234 235 236 237 238 239 31 164 165 166 167 169 171 173 175 196 197 198 200 201 202 203 204 205 206 207 228 229 230 231 232 233 234 235 236 237 238 239 19 164 165 166 167 169 171 173 175 196 197 198 199 201 202 203 204 205 206 207 31 164 165 166 167 169 171 173 175 196 197 198 199 200 202 203 204 205 206 207 228 229 230 231 232 233 234 235 236 237 238 239 19 164 165 166 167 169 171 173 175 196 197 198 199 200 201 203 204 205 206 207 31 164 165 166 167 169 171 173 175 196 197 198 199 200 201 202 204 205 206 207 228 229 230 231 232 233 234 235 236 237 238 239 19 164 165 166 167 169 171 173 175 196 197 198 199 200 201 202 203 205 206 207 31 164 165 166 167 169 171 173 175 196 197 198 199 200 201 202 203 204 206 207 228 229 230 231 232 233 234 235 236 237 238 239 19 164 165 166 167 169 171 173 175 196 197 198 199 200 201 202 203 204 205 207 31 164 165 166 167 169 171 173 175 196 197 198 199 200 201 202 203 204 205 206 228 229 230 231 232 233 234 235 236 237 238 239 5 177 179 209 210 211 9 177 179 208 210 211 240 241 242 243 5 177 179 208 209 211 9 177 179 208 209 210 240 241 242 243 13 181 183 184 185 186 187 213 214 215 216 217 218 219 21 181 183 184 185 186 187 212 214 215 216 217 218 219 244 245 246 247 248 249 250 251 13 181 183 184 185 186 187 212 213 215 216 217 218 219 21 181 183 184 185 186 187 212 213 214 216 217 218 219 244 245 246 247 248 249 250 251 21 181 183 184 185 186 187 212 213 214 215 217 218 219 244 245 246 247 248 249 250 251 21 181 183 184 185 186 187 212 213 214 215 216 218 219 244 245 246 247 248 249 250 251 21 181 183 184 185 186 187 212 213 214 215 216 217 219 244 245 246 247 248 249 250 251 21 181 183 184 185 186 187 212 213 214 215 216 217 218 244 245 246 247 248 249 250 251 5 188 189 221 252 253 5 188 189 220 252 253 5 190 191 223 254 255 5 190 191 222 254 255 5 193 195 225 226 227 9 193 195 224 226 227 256 257 258 259 5 193 195 224 225 227 9 193 195 224 225 226 256 257 258 259 31 196 197 198 199 201 203 205 207 229 230 231 232 233 234 235 236 237 238 239 260 261 262 263 264 265 266 267 268 269 270 271 31 196 197 198 199 201 203 205 207 228 230 231 232 233 234 235 236 237 238 239 260 261 262 263 264 265 266 267 268 269 270 271 31 196 197 198 199 201 203 205 207 228 229 231 232 233 234 235 236 237 238 239 260 261 262 263 264 265 266 267 268 269 270 271 31 196 197 198 199 201 203 205 207 228 229 230 232 233 234 235 236 237 238 239 260 261 262 263 264 265 266 267 268 269 270 271 19 196 197 198 199 201 203 205 207 228 229 230 231 233 234 235 236 237 238 239 31 196 197 198 199 201 203 205 207 228 229 230 231 232 234 235 236 237 238 239 260 261 262 263 264 265 266 267 268 269 270 271 19 196 197 198 199 201 203 205 207 228 229 230 231 232 233 235 236 237 238 239 31 196 197 198 199 201 203 205 207 228 229 230 231 232 233 234 236 237 238 239 260 261 262 263 264 265 266 267 268 269 270 271 19 196 197 198 199 201 203 205 207 228 229 230 231 232 233 234 235 237 238 239 31 196 197 198 199 201 203 205 207 228 229 230 231 232 233 234 235 236 238 239 260 261 262 263 264 265 266 267 268 269 270 271 19 196 197 198 199 201 203 205 207 228 229 230 231 232 233 234 235 236 237 239 31 196 197 198 199 201 203 205 207 228 229 230 231 232 233 234 235 236 237 238 260 261 262 263 264 265 266 267 268 269 270 271 5 209 211 241 242 243 9 209 211 240 242 243 272 273 274 275 5 209 211 240 241 243 9 209 211 240 241 242 272 273 274 275 13 213 215 216 217 218 219 245 246 247 248 249 250 251 21 213 215 216 217 218 219 244 246 247 248 249 250 251 276 277 278 279 280 281 282 283 13 213 215 216 217 218 219 244 245 247 248 249 250 251 21 213 215 216 217 218 219 244 245 246 248 249 250 251 276 277 278 279 280 281 282 283 21 213 215 216 217 218 219 244 245 246 247 249 250 251 276 277 278 279 280 281 282 283 21 213 215 216 217 218 219 244 245 246 247 248 250 251 276 277 278 279 280 281 282 283 21 213 215 216 217 218 219 244 245 246 247 248 249 251 276 277 278 279 280 281 282 283 21 213 215 216 217 218 219 244 245 246 247 248 249 250 276 277 278 279 280 281 282 283 5 220 221 253 284 285 5 220 221 252 284 285 5 222 223 255 286 287 5 222 223 254 286 287 5 225 227 257 258 259 9 225 227 256 258 259 288 289 290 291 5 225 227 256 257 259 9 225 227 256 257 258 288 289 290 291 31 228 229 230 231 233 235 237 239 261 262 263 264 265 266 267 268 269 270 271 292 293 294 295 296 297 298 299 300 301 302 303 31 228 229 230 231 233 235 237 239 260 262 263 264 265 266 267 268 269 270 271 292 293 294 295 296 297 298 299 300 301 302 303 31 228 229 230 231 233 235 237 239 260 261 263 264 265 266 267 268 269 270 271 292 293 294 295 296 297 298 299 300 301 302 303 31 228 229 230 231 233 235 237 239 260 261 262 264 265 266 267 268 269 270 271 292 293 294 295 296 297 298 299 300 301 302 303 19 228 229 230 231 233 235 237 239 260 261 262 263 265 266 267 268 269 270 271 31 228 229 230 231 233 235 237 239 260 261 262 263 264 266 267 268 269 270 271 292 293 294 295 296 297 298 299 300 301 302 303 19 228 229 230 231 233 235 237 239 260 261 262 263 264 265 267 268 269 270 271 31 228 229 230 231 233 235 237 239 260 261 262 263 264 265 266 268 269 270 271 292 293 294 295 296 297 298 299 300 301 302 303 19 228 229 230 231 233 235 237 239 260 261 262 263 264 265 266 267 269 270 271 31 228 229 230 231 233 235 237 239 260 261 262 263 264 265 266 267 268 270 271 292 293 294 295 296 297 298 299 300 301 302 303 19 228 229 230 231 233 235 237 239 260 261 262 263 264 265 266 267 268 269 271 31 228 229 230 231 233 235 237 239 260 261 262 263 264 265 266 267 268 269 270 292 293 294 295 296 297 298 299 300 301 302 303 5 241 243 273 274 275 9 241 243 272 274 275 304 305 306 307 5 241 243 272 273 275 9 241 243 272 273 274 304 305 306 307 13 245 247 248 249 250 251 277 278 279 280 281 282 283 21 245 247 248 249 250 251 276 278 279 280 281 282 283 308 309 310 311 312 313 314 315 13 245 247 248 249 250 251 276 277 279 280 281 282 283 21 245 247 248 249 250 251 276 277 278 280 281 282 283 308 309 310 311 312 313 314 315 21 245 247 248 249 250 251 276 277 278 279 281 282 283 308 309 310 311 312 313 314 315 21 245 247 248 249 250 251 276 277 278 279 280 282 283 308 309 310 311 312 313 314 315 21 245 247 248 249 250 251 276 277 278 279 280 281 283 308 309 310 311 312 313 314 315 21 245 247 248 249 250 251 276 277 278 279 280 281 282 308 309 310 311 312 313 314 315 5 252 253 285 316 317 5 252 253 284 316 317 5 254 255 287 318 319 5 254 255 286 318 319 5 257 259 289 290 291 9 257 259 288 290 291 320 321 322 323 5 257 259 288 289 291 9 257 259 288 289 290 320 321 322 323 31 260 261 262 263 265 267 269 271 293 294 295 296 297 298 299 300 301 302 303 324 325 326 327 328 329 330 331 332 333 334 335 31 260 261 262 263 265 267 269 271 292 294 295 296 297 298 299 300 301 302 303 324 325 326 327 328 329 330 331 332 333 334 335 31 260 261 262 263 265 267 269 271 292 293 295 296 297 298 299 300 301 302 303 324 325 326 327 328 329 330 331 332 333 334 335 31 260 261 262 263 265 267 269 271 292 293 294 296 297 298 299 300 301 302 303 324 325 326 327 328 329 330 331 332 333 334 335 19 260 261 262 263 265 267 269 271 292 293 294 295 297 298 299 300 301 302 303 31 260 261 262 263 265 267 269 271 292 293 294 295 296 298 299 300 301 302 303 324 325 326 327 328 329 330 331 332 333 334 335 19 260 261 262 263 265 267 269 271 292 293 294 295 296 297 299 300 301 302 303 31 260 261 262 263 265 267 269 271 292 293 294 295 296 297 298 300 301 302 303 324 325 326 327 328 329 330 331 332 333 334 335 19 260 261 262 263 265 267 269 271 292 293 294 295 296 297 298 299 301 302 303 31 260 261 262 263 265 267 269 271 292 293 294 295 296 297 298 299 300 302 303 324 325 326 327 328 329 330 331 332 333 334 335 19 260 261 262 263 265 267 269 271 292 293 294 295 296 297 298 299 300 301 303 31 260 261 262 263 265 267 269 271 292 293 294 295 296 297 298 299 300 301 302 324 325 326 327 328 329 330 331 332 333 334 335 5 273 275 305 306 307 9 273 275 304 306 307 336 337 338 339 5 273 275 304 305 307 9 273 275 304 305 306 336 337 338 339 13 277 279 280 281 282 283 309 310 311 312 313 314 315 21 277 279 280 281 282 283 308 310 311 312 313 314 315 340 341 342 343 344 345 346 347 13 277 279 280 281 282 283 308 309 311 312 313 314 315 21 277 279 280 281 282 283 308 309 310 312 313 314 315 340 341 342 343 344 345 346 347 21 277 279 280 281 282 283 308 309 310 311 313 314 315 340 341 342 343 344 345 346 347 21 277 279 280 281 282 283 308 309 310 311 312 314 315 340 341 342 343 344 345 346 347 21 277 279 280 281 282 283 308 309 310 311 312 313 315 340 341 342 343 344 345 346 347 21 277 279 280 281 282 283 308 309 310 311 312 313 314 340 341 342 343 344 345 346 347 5 284 285 317 348 349 5 284 285 316 348 349 5 286 287 319 350 351 5 286 287 318 350 351 5 289 291 321 322 323 9 289 291 320 322 323 352 353 354 355 5 289 291 320 321 323 9 289 291 320 321 322 352 353 354 355 31 292 293 294 295 297 299 301 303 325 326 327 328 329 330 331 332 333 334 335 356 357 358 359 360 361 362 363 364 365 366 367 31 292 293 294 295 297 299 301 303 324 326 327 328 329 330 331 332 333 334 335 356 357 358 359 360 361 362 363 364 365 366 367 31 292 293 294 295 297 299 301 303 324 325 327 328 329 330 331 332 333 334 335 356 357 358 359 360 361 362 363 364 365 366 367 31 292 293 294 295 297 299 301 303 324 325 326 328 329 330 331 332 333 334 335 356 357 358 359 360 361 362 363 364 365 366 367 19 292 293 294 295 297 299 301 303 324 325 326 327 329 330 331 332 333 334 335 31 292 293 294 295 297 299 301 303 324 325 326 327 328 330 331 332 333 334 335 356 357 358 359 360 361 362 363 364 365 366 367 19 292 293 294 295 297 299 301 303 324 325 326 327 328 329 331 332 333 334 335 31 292 293 294 295 297 299 301 303 324 325 326 327 328 329 330 332 333 334 335 356 357 358 359 360 361 362 363 364 365 366 367 19 292 293 294 295 297 299 301 303 324 325 326 327 328 329 330 331 333 334 335 31 292 293 294 295 297 299 301 303 324 325 326 327 328 329 330 331 332 334 335 356 357 358 359 360 361 362 363 364 365 366 367 19 292 293 294 295 297 299 301 303 324 325 326 327 328 329 330 331 332 333 335 31 292 293 294 295 297 299 301 303 324 325 326 327 328 329 330 331 332 333 334 356 357 358 359 360 361 362 363 364 365 366 367 5 305 307 337 338 339 9 305 307 336 338 339 368 369 370 371 5 305 307 336 337 339 9 305 307 336 337 338 368 369 370 371 13 309 311 312 313 314 315 341 342 343 344 345 346 347 21 309 311 312 313 314 315 340 342 343 344 345 346 347 372 373 374 375 376 377 378 379 13 309 311 312 313 314 315 340 341 343 344 345 346 347 21 309 311 312 313 314 315 340 341 342 344 345 346 347 372 373 374 375 376 377 378 379 21 309 311 312 313 314 315 340 341 342 343 345 346 347 372 373 374 375 376 377 378 379 21 309 311 312 313 314 315 340 341 342 343 344 346 347 372 373 374 375 376 377 378 379 21 309 311 312 313 314 315 340 341 342 343 344 345 347 372 373 374 375 376 377 378 379 21 309 311 312 313 314 315 340 341 342 343 344 345 346 372 373 374 375 376 377 378 379 5 316 317 349 380 381 5 316 317 348 380 381 5 318 319 351 382 383 5 318 319 350 382 383 5 321 323 353 354 355 9 321 323 352 354 355 384 385 386 387 5 321 323 352 353 355 9 321 323 352 353 354 384 385 386 387 31 324 325 326 327 329 331 333 335 357 358 359 360 361 362 363 364 365 366 367 388 389 390 391 392 393 394 395 396 397 398 399 31 324 325 326 327 329 331 333 335 356 358 359 360 361 362 363 364 365 366 367 388 389 390 391 392 393 394 395 396 397 398 399 31 324 325 326 327 329 331 333 335 356 357 359 360 361 362 363 364 365 366 367 388 389 390 391 392 393 394 395 396 397 398 399 31 324 325 326 327 329 331 333 335 356 357 358 360 361 362 363 364 365 366 367 388 389 390 391 392 393 394 395 396 397 398 399 19 324 325 326 327 329 331 333 335 356 357 358 359 361 362 363 364 365 366 367 31 324 325 326 327 329 331 333 335 356 357 358 359 360 362 363 364 365 366 367 388 389 390 391 392 393 394 395 396 397 398 399 19 324 325 326 327 329 331 333 335 356 357 358 359 360 361 363 364 365 366 367 31 324 325 326 327 329 331 333 335 356 357 358 359 360 361 362 364 365 366 367 388 389 390 391 392 393 394 395 396 397 398 399 19 324 325 326 327 329 331 333 335 356 357 358 359 360 361 362 363 365 366 367 31 324 325 326 327 329 331 333 335 356 357 358 359 360 361 362 363 364 366 367 388 389 390 391 392 393 394 395 396 397 398 399 19 324 325 326 327 329 331 333 335 356 357 358 359 360 361 362 363 364 365 367 31 324 325 326 327 329 331 333 335 356 357 358 359 360 361 362 363 364 365 366 388 389 390 391 392 393 394 395 396 397 398 399 5 337 339 369 370 371 9 337 339 368 370 371 400 401 402 403 5 337 339 368 369 371 9 337 339 368 369 370 400 401 402 403 13 341 343 344 345 346 347 373 374 375 376 377 378 379 21 341 343 344 345 346 347 372 374 375 376 377 378 379 404 405 406 407 408 409 410 411 13 341 343 344 345 346 347 372 373 375 376 377 378 379 21 341 343 344 345 346 347 372 373 374 376 377 378 379 404 405 406 407 408 409 410 411 21 341 343 344 345 346 347 372 373 374 375 377 378 379 404 405 406 407 408 409 410 411 21 341 343 344 345 346 347 372 373 374 375 376 378 379 404 405 406 407 408 409 410 411 21 341 343 344 345 346 347 372 373 374 375 376 377 379 404 405 406 407 408 409 410 411 21 341 343 344 345 346 347 372 373 374 375 376 377 378 404 405 406 407 408 409 410 411 5 348 349 381 412 413 5 348 349 380 412 413 5 350 351 383 414 415 5 350 351 382 414 415 5 353 355 385 386 387 9 353 355 384 386 387 416 417 418 419 5 353 355 384 385 387 9 353 355 384 385 386 416 417 418 419 31 356 357 358 359 361 363 365 367 389 390 391 392 393 394 395 396 397 398 399 420 421 422 423 424 425 426 427 428 429 430 431 31 356 357 358 359 361 363 365 367 388 390 391 392 393 394 395 396 397 398 399 420 421 422 423 424 425 426 427 428 429 430 431 31 356 357 358 359 361 363 365 367 388 389 391 392 393 394 395 396 397 398 399 420 421 422 423 424 425 426 427 428 429 430 431 31 356 357 358 359 361 363 365 367 388 389 390 392 393 394 395 396 397 398 399 420 421 422 423 424 425 426 427 428 429 430 431 19 356 357 358 359 361 363 365 367 388 389 390 391 393 394 395 396 397 398 399 31 356 357 358 359 361 363 365 367 388 389 390 391 392 394 395 396 397 398 399 420 421 422 423 424 425 426 427 428 429 430 431 19 356 357 358 359 361 363 365 367 388 389 390 391 392 393 395 396 397 398 399 31 356 357 358 359 361 363 365 367 388 389 390 391 392 393 394 396 397 398 399 420 421 422 423 424 425 426 427 428 429 430 431 19 356 357 358 359 361 363 365 367 388 389 390 391 392 393 394 395 397 398 399 31 356 357 358 359 361 363 365 367 388 389 390 391 392 393 394 395 396 398 399 420 421 422 423 424 425 426 427 428 429 430 431 19 356 357 358 359 361 363 365 367 388 389 390 391 392 393 394 395 396 397 399 31 356 357 358 359 361 363 365 367 388 389 390 391 392 393 394 395 396 397 398 420 421 422 423 424 425 426 427 428 429 430 431 5 369 371 401 402 403 9 369 371 400 402 403 432 433 434 435 5 369 371 400 401 403 9 369 371 400 401 402 432 433 434 435 13 373 375 376 377 378 379 405 406 407 408 409 410 411 21 373 375 376 377 378 379 404 406 407 408 409 410 411 436 437 438 439 440 441 442 443 13 373 375 376 377 378 379 404 405 407 408 409 410 411 21 373 375 376 377 378 379 404 405 406 408 409 410 411 436 437 438 439 440 441 442 443 21 373 375 376 377 378 379 404 405 406 407 409 410 411 436 437 438 439 440 441 442 443 21 373 375 376 377 378 379 404 405 406 407 408 410 411 436 437 438 439 440 441 442 443 21 373 375 376 377 378 379 404 405 406 407 408 409 411 436 437 438 439 440 441 442 443 21 373 375 376 377 378 379 404 405 406 407 408 409 410 436 437 438 439 440 441 442 443 5 380 381 413 444 445 5 380 381 412 444 445 5 382 383 415 446 447 5 382 383 414 446 447 5 385 387 417 418 419 9 385 387 416 418 419 448 449 450 451 5 385 387 416 417 419 9 385 387 416 417 418 448 449 450 451 31 388 389 390 391 393 395 397 399 421 422 423 424 425 426 427 428 429 430 431 452 453 454 455 456 457 458 459 460 461 462 463 31 388 389 390 391 393 395 397 399 420 422 423 424 425 426 427 428 429 430 431 452 453 454 455 456 457 458 459 460 461 462 463 31 388 389 390 391 393 395 397 399 420 421 423 424 425 426 427 428 429 430 431 452 453 454 455 456 457 458 459 460 461 462 463 31 388 389 390 391 393 395 397 399 420 421 422 424 425 426 427 428 429 430 431 452 453 454 455 456 457 458 459 460 461 462 463 19 388 389 390 391 393 395 397 399 420 421 422 423 425 426 427 428 429 430 431 31 388 389 390 391 393 395 397 399 420 421 422 423 424 426 427 428 429 430 431 452 453 454 455 456 457 458 459 460 461 462 463 19 388 389 390 391 393 395 397 399 420 421 422 423 424 425 427 428 429 430 431 31 388 389 390 391 393 395 397 399 420 421 422 423 424 425 426 428 429 430 431 452 453 454 455 456 457 458 459 460 461 462 463 19 388 389 390 391 393 395 397 399 420 421 422 423 424 425 426 427 429 430 431 31 388 389 390 391 393 395 397 399 420 421 422 423 424 425 426 427 428 430 431 452 453 454 455 456 457 458 459 460 461 462 463 19 388 389 390 391 393 395 397 399 420 421 422 423 424 425 426 427 428 429 431 31 388 389 390 391 393 395 397 399 420 421 422 423 424 425 426 427 428 429 430 452 453 454 455 456 457 458 459 460 461 462 463 5 401 403 433 434 435 9 401 403 432 434 435 464 465 466 467 5 401 403 432 433 435 9 401 403 432 433 434 464 465 466 467 13 405 407 408 409 410 411 437 438 439 440 441 442 443 21 405 407 408 409 410 411 436 438 439 440 441 442 443 468 469 470 471 472 473 474 475 13 405 407 408 409 410 411 436 437 439 440 441 442 443 21 405 407 408 409 410 411 436 437 438 440 441 442 443 468 469 470 471 472 473 474 475 21 405 407 408 409 410 411 436 437 438 439 441 442 443 468 469 470 471 472 473 474 475 21 405 407 408 409 410 411 436 437 438 439 440 442 443 468 469 470 471 472 473 474 475 21 405 407 408 409 410 411 436 437 438 439 440 441 443 468 469 470 471 472 473 474 475 21 405 407 408 409 410 411 436 437 438 439 440 441 442 468 469 470 471 472 473 474 475 5 412 413 445 476 477 5 412 413 444 476 477 5 414 415 447 478 479 5 414 415 446 478 479 5 417 419 449 450 451 9 417 419 448 450 451 480 481 482 483 5 417 419 448 449 451 9 417 419 448 449 450 480 481 482 483 31 420 421 422 423 425 427 429 431 453 454 455 456 457 458 459 460 461 462 463 484 485 486 487 488 489 490 491 492 493 494 495 31 420 421 422 423 425 427 429 431 452 454 455 456 457 458 459 460 461 462 463 484 485 486 487 488 489 490 491 492 493 494 495 31 420 421 422 423 425 427 429 431 452 453 455 456 457 458 459 460 461 462 463 484 485 486 487 488 489 490 491 492 493 494 495 31 420 421 422 423 425 427 429 431 452 453 454 456 457 458 459 460 461 462 463 484 485 486 487 488 489 490 491 492 493 494 495 19 420 421 422 423 425 427 429 431 452 453 454 455 457 458 459 460 461 462 463 31 420 421 422 423 425 427 429 431 452 453 454 455 456 458 459 460 461 462 463 484 485 486 487 488 489 490 491 492 493 494 495 19 420 421 422 423 425 427 429 431 452 453 454 455 456 457 459 460 461 462 463 31 420 421 422 423 425 427 429 431 452 453 454 455 456 457 458 460 461 462 463 484 485 486 487 488 489 490 491 492 493 494 495 19 420 421 422 423 425 427 429 431 452 453 454 455 456 457 458 459 461 462 463 31 420 421 422 423 425 427 429 431 452 453 454 455 456 457 458 459 460 462 463 484 485 486 487 488 489 490 491 492 493 494 495 19 420 421 422 423 425 427 429 431 452 453 454 455 456 457 458 459 460 461 463 31 420 421 422 423 425 427 429 431 452 453 454 455 456 457 458 459 460 461 462 484 485 486 487 488 489 490 491 492 493 494 495 5 433 435 465 466 467 9 433 435 464 466 467 496 497 498 499 5 433 435 464 465 467 9 433 435 464 465 466 496 497 498 499 13 437 439 440 441 442 443 469 470 471 472 473 474 475 21 437 439 440 441 442 443 468 470 471 472 473 474 475 500 501 502 503 504 505 506 507 13 437 439 440 441 442 443 468 469 471 472 473 474 475 21 437 439 440 441 442 443 468 469 470 472 473 474 475 500 501 502 503 504 505 506 507 21 437 439 440 441 442 443 468 469 470 471 473 474 475 500 501 502 503 504 505 506 507 21 437 439 440 441 442 443 468 469 470 471 472 474 475 500 501 502 503 504 505 506 507 21 437 439 440 441 442 443 468 469 470 471 472 473 475 500 501 502 503 504 505 506 507 21 437 439 440 441 442 443 468 469 470 471 472 473 474 500 501 502 503 504 505 506 507 5 444 445 477 508 509 5 444 445 476 508 509 5 446 447 479 510 511 5 446 447 478 510 511 5 449 451 481 482 483 9 449 451 480 482 483 512 513 514 515 5 449 451 480 481 483 9 449 451 480 481 482 512 513 514 515 31 452 453 454 455 457 459 461 463 485 486 487 488 489 490 491 492 493 494 495 516 517 518 519 520 521 522 523 524 525 526 527 31 452 453 454 455 457 459 461 463 484 486 487 488 489 490 491 492 493 494 495 516 517 518 519 520 521 522 523 524 525 526 527 31 452 453 454 455 457 459 461 463 484 485 487 488 489 490 491 492 493 494 495 516 517 518 519 520 521 522 523 524 525 526 527 31 452 453 454 455 457 459 461 463 484 485 486 488 489 490 491 492 493 494 495 516 517 518 519 520 521 522 523 524 525 526 527 19 452 453 454 455 457 459 461 463 484 485 486 487 489 490 491 492 493 494 495 31 452 453 454 455 457 459 461 463 484 485 486 487 488 490 491 492 493 494 495 516 517 518 519 520 521 522 523 524 525 526 527 19 452 453 454 455 457 459 461 463 484 485 486 487 488 489 491 492 493 494 495 31 452 453 454 455 457 459 461 463 484 485 486 487 488 489 490 492 493 494 495 516 517 518 519 520 521 522 523 524 525 526 527 19 452 453 454 455 457 459 461 463 484 485 486 487 488 489 490 491 493 494 495 31 452 453 454 455 457 459 461 463 484 485 486 487 488 489 490 491 492 494 495 516 517 518 519 520 521 522 523 524 525 526 527 19 452 453 454 455 457 459 461 463 484 485 486 487 488 489 490 491 492 493 495 31 452 453 454 455 457 459 461 463 484 485 486 487 488 489 490 491 492 493 494 516 517 518 519 520 521 522 523 524 525 526 527 5 465 467 497 498 499 9 465 467 496 498 499 528 529 530 531 5 465 467 496 497 499 9 465 467 496 497 498 528 529 530 531 13 469 471 472 473 474 475 501 502 503 504 505 506 507 21 469 471 472 473 474 475 500 502 503 504 505 506 507 532 533 534 535 536 537 538 539 13 469 471 472 473 474 475 500 501 503 504 505 506 507 21 469 471 472 473 474 475 500 501 502 504 505 506 507 532 533 534 535 536 537 538 539 21 469 471 472 473 474 475 500 501 502 503 505 506 507 532 533 534 535 536 537 538 539 21 469 471 472 473 474 475 500 501 502 503 504 506 507 532 533 534 535 536 537 538 539 21 469 471 472 473 474 475 500 501 502 503 504 505 507 532 533 534 535 536 537 538 539 21 469 471 472 473 474 475 500 501 502 503 504 505 506 532 533 534 535 536 537 538 539 5 476 477 509 540 541 5 476 477 508 540 541 5 478 479 511 542 543 5 478 479 510 542 543 5 481 483 513 514 515 9 481 483 512 514 515 544 545 546 547 5 481 483 512 513 515 9 481 483 512 513 514 544 545 546 547 31 484 485 486 487 489 491 493 495 517 518 519 520 521 522 523 524 525 526 527 548 549 550 551 552 553 554 555 556 557 558 559 31 484 485 486 487 489 491 493 495 516 518 519 520 521 522 523 524 525 526 527 548 549 550 551 552 553 554 555 556 557 558 559 31 484 485 486 487 489 491 493 495 516 517 519 520 521 522 523 524 525 526 527 548 549 550 551 552 553 554 555 556 557 558 559 31 484 485 486 487 489 491 493 495 516 517 518 520 521 522 523 524 525 526 527 548 549 550 551 552 553 554 555 556 557 558 559 19 484 485 486 487 489 491 493 495 516 517 518 519 521 522 523 524 525 526 527 31 484 485 486 487 489 491 493 495 516 517 518 519 520 522 523 524 525 526 527 548 549 550 551 552 553 554 555 556 557 558 559 19 484 485 486 487 489 491 493 495 516 517 518 519 520 521 523 524 525 526 527 31 484 485 486 487 489 491 493 495 516 517 518 519 520 521 522 524 525 526 527 548 549 550 551 552 553 554 555 556 557 558 559 19 484 485 486 487 489 491 493 495 516 517 518 519 520 521 522 523 525 526 527 31 484 485 486 487 489 491 493 495 516 517 518 519 520 521 522 523 524 526 527 548 549 550 551 552 553 554 555 556 557 558 559 19 484 485 486 487 489 491 493 495 516 517 518 519 520 521 522 523 524 525 527 31 484 485 486 487 489 491 493 495 516 517 518 519 520 521 522 523 524 525 526 548 549 550 551 552 553 554 555 556 557 558 559 5 497 499 529 530 531 9 497 499 528 530 531 560 561 562 563 5 497 499 528 529 531 9 497 499 528 529 530 560 561 562 563 13 501 503 504 505 506 507 533 534 535 536 537 538 539 21 501 503 504 505 506 507 532 534 535 536 537 538 539 564 565 566 567 568 569 570 571 13 501 503 504 505 506 507 532 533 535 536 537 538 539 21 501 503 504 505 506 507 532 533 534 536 537 538 539 564 565 566 567 568 569 570 571 21 501 503 504 505 506 507 532 533 534 535 537 538 539 564 565 566 567 568 569 570 571 21 501 503 504 505 506 507 532 533 534 535 536 538 539 564 565 566 567 568 569 570 571 21 501 503 504 505 506 507 532 533 534 535 536 537 539 564 565 566 567 568 569 570 571 21 501 503 504 505 506 507 532 533 534 535 536 537 538 564 565 566 567 568 569 570 571 5 508 509 541 572 573 5 508 509 540 572 573 5 510 511 543 574 575 5 510 511 542 574 575 5 513 515 545 546 547 9 513 515 544 546 547 576 577 578 579 5 513 515 544 545 547 9 513 515 544 545 546 576 577 578 579 31 516 517 518 519 521 523 525 527 549 550 551 552 553 554 555 556 557 558 559 580 581 582 583 584 585 586 587 588 589 590 591 31 516 517 518 519 521 523 525 527 548 550 551 552 553 554 555 556 557 558 559 580 581 582 583 584 585 586 587 588 589 590 591 31 516 517 518 519 521 523 525 527 548 549 551 552 553 554 555 556 557 558 559 580 581 582 583 584 585 586 587 588 589 590 591 31 516 517 518 519 521 523 525 527 548 549 550 552 553 554 555 556 557 558 559 580 581 582 583 584 585 586 587 588 589 590 591 19 516 517 518 519 521 523 525 527 548 549 550 551 553 554 555 556 557 558 559 31 516 517 518 519 521 523 525 527 548 549 550 551 552 554 555 556 557 558 559 580 581 582 583 584 585 586 587 588 589 590 591 19 516 517 518 519 521 523 525 527 548 549 550 551 552 553 555 556 557 558 559 31 516 517 518 519 521 523 525 527 548 549 550 551 552 553 554 556 557 558 559 580 581 582 583 584 585 586 587 588 589 590 591 19 516 517 518 519 521 523 525 527 548 549 550 551 552 553 554 555 557 558 559 31 516 517 518 519 521 523 525 527 548 549 550 551 552 553 554 555 556 558 559 580 581 582 583 584 585 586 587 588 589 590 591 19 516 517 518 519 521 523 525 527 548 549 550 551 552 553 554 555 556 557 559 31 516 517 518 519 521 523 525 527 548 549 550 551 552 553 554 555 556 557 558 580 581 582 583 584 585 586 587 588 589 590 591 5 529 531 561 562 563 9 529 531 560 562 563 592 593 594 595 5 529 531 560 561 563 9 529 531 560 561 562 592 593 594 595 13 533 535 536 537 538 539 565 566 567 568 569 570 571 21 533 535 536 537 538 539 564 566 567 568 569 570 571 596 597 598 599 600 601 602 603 13 533 535 536 537 538 539 564 565 567 568 569 570 571 21 533 535 536 537 538 539 564 565 566 568 569 570 571 596 597 598 599 600 601 602 603 21 533 535 536 537 538 539 564 565 566 567 569 570 571 596 597 598 599 600 601 602 603 21 533 535 536 537 538 539 564 565 566 567 568 570 571 596 597 598 599 600 601 602 603 21 533 535 536 537 538 539 564 565 566 567 568 569 571 596 597 598 599 600 601 602 603 21 533 535 536 537 538 539 564 565 566 567 568 569 570 596 597 598 599 600 601 602 603 5 540 541 573 604 605 5 540 541 572 604 605 5 542 543 575 606 607 5 542 543 574 606 607 5 545 547 577 578 579 9 545 547 576 578 579 608 609 610 611 5 545 547 576 577 579 9 545 547 576 577 578 608 609 610 611 31 548 549 550 551 553 555 557 559 581 582 583 584 585 586 587 588 589 590 591 612 613 614 615 616 617 618 619 620 621 622 623 31 548 549 550 551 553 555 557 559 580 582 583 584 585 586 587 588 589 590 591 612 613 614 615 616 617 618 619 620 621 622 623 31 548 549 550 551 553 555 557 559 580 581 583 584 585 586 587 588 589 590 591 612 613 614 615 616 617 618 619 620 621 622 623 31 548 549 550 551 553 555 557 559 580 581 582 584 585 586 587 588 589 590 591 612 613 614 615 616 617 618 619 620 621 622 623 19 548 549 550 551 553 555 557 559 580 581 582 583 585 586 587 588 589 590 591 31 548 549 550 551 553 555 557 559 580 581 582 583 584 586 587 588 589 590 591 612 613 614 615 616 617 618 619 620 621 622 623 19 548 549 550 551 553 555 557 559 580 581 582 583 584 585 587 588 589 590 591 31 548 549 550 551 553 555 557 559 580 581 582 583 584 585 586 588 589 590 591 612 613 614 615 616 617 618 619 620 621 622 623 19 548 549 550 551 553 555 557 559 580 581 582 583 584 585 586 587 589 590 591 31 548 549 550 551 553 555 557 559 580 581 582 583 584 585 586 587 588 590 591 612 613 614 615 616 617 618 619 620 621 622 623 19 548 549 550 551 553 555 557 559 580 581 582 583 584 585 586 587 588 589 591 31 548 549 550 551 553 555 557 559 580 581 582 583 584 585 586 587 588 589 590 612 613 614 615 616 617 618 619 620 621 622 623 5 561 563 593 594 595 9 561 563 592 594 595 624 625 626 627 5 561 563 592 593 595 9 561 563 592 593 594 624 625 626 627 13 565 567 568 569 570 571 597 598 599 600 601 602 603 21 565 567 568 569 570 571 596 598 599 600 601 602 603 628 629 630 631 632 633 634 635 13 565 567 568 569 570 571 596 597 599 600 601 602 603 21 565 567 568 569 570 571 596 597 598 600 601 602 603 628 629 630 631 632 633 634 635 21 565 567 568 569 570 571 596 597 598 599 601 602 603 628 629 630 631 632 633 634 635 21 565 567 568 569 570 571 596 597 598 599 600 602 603 628 629 630 631 632 633 634 635 21 565 567 568 569 570 571 596 597 598 599 600 601 603 628 629 630 631 632 633 634 635 21 565 567 568 569 570 571 596 597 598 599 600 601 602 628 629 630 631 632 633 634 635 5 572 573 605 636 637 5 572 573 604 636 637 5 574 575 607 638 639 5 574 575 606 638 639 5 577 579 609 610 611 9 577 579 608 610 611 640 641 642 643 5 577 579 608 609 611 9 577 579 608 609 610 640 641 642 643 31 580 581 582 583 585 587 589 591 613 614 615 616 617 618 619 620 621 622 623 644 645 646 647 648 649 650 651 652 653 654 655 31 580 581 582 583 585 587 589 591 612 614 615 616 617 618 619 620 621 622 623 644 645 646 647 648 649 650 651 652 653 654 655 31 580 581 582 583 585 587 589 591 612 613 615 616 617 618 619 620 621 622 623 644 645 646 647 648 649 650 651 652 653 654 655 31 580 581 582 583 585 587 589 591 612 613 614 616 617 618 619 620 621 622 623 644 645 646 647 648 649 650 651 652 653 654 655 19 580 581 582 583 585 587 589 591 612 613 614 615 617 618 619 620 621 622 623 31 580 581 582 583 585 587 589 591 612 613 614 615 616 618 619 620 621 622 623 644 645 646 647 648 649 650 651 652 653 654 655 19 580 581 582 583 585 587 589 591 612 613 614 615 616 617 619 620 621 622 623 31 580 581 582 583 585 587 589 591 612 613 614 615 616 617 618 620 621 622 623 644 645 646 647 648 649 650 651 652 653 654 655 19 580 581 582 583 585 587 589 591 612 613 614 615 616 617 618 619 621 622 623 31 580 581 582 583 585 587 589 591 612 613 614 615 616 617 618 619 620 622 623 644 645 646 647 648 649 650 651 652 653 654 655 19 580 581 582 583 585 587 589 591 612 613 614 615 616 617 618 619 620 621 623 31 580 581 582 583 585 587 589 591 612 613 614 615 616 617 618 619 620 621 622 644 645 646 647 648 649 650 651 652 653 654 655 5 593 595 625 626 627 9 593 595 624 626 627 656 657 658 659 5 593 595 624 625 627 9 593 595 624 625 626 656 657 658 659 13 597 599 600 601 602 603 629 630 631 632 633 634 635 21 597 599 600 601 602 603 628 630 631 632 633 634 635 660 661 662 663 664 665 666 667 13 597 599 600 601 602 603 628 629 631 632 633 634 635 21 597 599 600 601 602 603 628 629 630 632 633 634 635 660 661 662 663 664 665 666 667 21 597 599 600 601 602 603 628 629 630 631 633 634 635 660 661 662 663 664 665 666 667 21 597 599 600 601 602 603 628 629 630 631 632 634 635 660 661 662 663 664 665 666 667 21 597 599 600 601 602 603 628 629 630 631 632 633 635 660 661 662 663 664 665 666 667 21 597 599 600 601 602 603 628 629 630 631 632 633 634 660 661 662 663 664 665 666 667 5 604 605 637 668 669 5 604 605 636 668 669 5 606 607 639 670 671 5 606 607 638 670 671 5 609 611 641 642 643 9 609 611 640 642 643 672 673 674 675 5 609 611 640 641 643 9 609 611 640 641 642 672 673 674 675 31 612 613 614 615 617 619 621 623 645 646 647 648 649 650 651 652 653 654 655 676 677 678 679 680 681 682 683 684 685 686 687 31 612 613 614 615 617 619 621 623 644 646 647 648 649 650 651 652 653 654 655 676 677 678 679 680 681 682 683 684 685 686 687 31 612 613 614 615 617 619 621 623 644 645 647 648 649 650 651 652 653 654 655 676 677 678 679 680 681 682 683 684 685 686 687 31 612 613 614 615 617 619 621 623 644 645 646 648 649 650 651 652 653 654 655 676 677 678 679 680 681 682 683 684 685 686 687 19 612 613 614 615 617 619 621 623 644 645 646 647 649 650 651 652 653 654 655 31 612 613 614 615 617 619 621 623 644 645 646 647 648 650 651 652 653 654 655 676 677 678 679 680 681 682 683 684 685 686 687 19 612 613 614 615 617 619 621 623 644 645 646 647 648 649 651 652 653 654 655 31 612 613 614 615 617 619 621 623 644 645 646 647 648 649 650 652 653 654 655 676 677 678 679 680 681 682 683 684 685 686 687 19 612 613 614 615 617 619 621 623 644 645 646 647 648 649 650 651 653 654 655 31 612 613 614 615 617 619 621 623 644 645 646 647 648 649 650 651 652 654 655 676 677 678 679 680 681 682 683 684 685 686 687 19 612 613 614 615 617 619 621 623 644 645 646 647 648 649 650 651 652 653 655 31 612 613 614 615 617 619 621 623 644 645 646 647 648 649 650 651 652 653 654 676 677 678 679 680 681 682 683 684 685 686 687 5 625 627 657 658 659 9 625 627 656 658 659 688 689 690 691 5 625 627 656 657 659 9 625 627 656 657 658 688 689 690 691 13 629 631 632 633 634 635 661 662 663 664 665 666 667 21 629 631 632 633 634 635 660 662 663 664 665 666 667 692 693 694 695 696 697 698 699 13 629 631 632 633 634 635 660 661 663 664 665 666 667 21 629 631 632 633 634 635 660 661 662 664 665 666 667 692 693 694 695 696 697 698 699 21 629 631 632 633 634 635 660 661 662 663 665 666 667 692 693 694 695 696 697 698 699 21 629 631 632 633 634 635 660 661 662 663 664 666 667 692 693 694 695 696 697 698 699 21 629 631 632 633 634 635 660 661 662 663 664 665 667 692 693 694 695 696 697 698 699 21 629 631 632 633 634 635 660 661 662 663 664 665 666 692 693 694 695 696 697 698 699 5 636 637 669 700 701 5 636 637 668 700 701 5 638 639 671 702 703 5 638 639 670 702 703 5 641 643 673 674 675 9 641 643 672 674 675 704 705 706 707 5 641 643 672 673 675 9 641 643 672 673 674 704 705 706 707 31 644 645 646 647 649 651 653 655 677 678 679 680 681 682 683 684 685 686 687 708 709 710 711 712 713 714 715 716 717 718 719 31 644 645 646 647 649 651 653 655 676 678 679 680 681 682 683 684 685 686 687 708 709 710 711 712 713 714 715 716 717 718 719 31 644 645 646 647 649 651 653 655 676 677 679 680 681 682 683 684 685 686 687 708 709 710 711 712 713 714 715 716 717 718 719 31 644 645 646 647 649 651 653 655 676 677 678 680 681 682 683 684 685 686 687 708 709 710 711 712 713 714 715 716 717 718 719 19 644 645 646 647 649 651 653 655 676 677 678 679 681 682 683 684 685 686 687 31 644 645 646 647 649 651 653 655 676 677 678 679 680 682 683 684 685 686 687 708 709 710 711 712 713 714 715 716 717 718 719 19 644 645 646 647 649 651 653 655 676 677 678 679 680 681 683 684 685 686 687 31 644 645 646 647 649 651 653 655 676 677 678 679 680 681 682 684 685 686 687 708 709 710 711 712 713 714 715 716 717 718 719 19 644 645 646 647 649 651 653 655 676 677 678 679 680 681 682 683 685 686 687 31 644 645 646 647 649 651 653 655 676 677 678 679 680 681 682 683 684 686 687 708 709 710 711 712 713 714 715 716 717 718 719 19 644 645 646 647 649 651 653 655 676 677 678 679 680 681 682 683 684 685 687 31 644 645 646 647 649 651 653 655 676 677 678 679 680 681 682 683 684 685 686 708 709 710 711 712 713 714 715 716 717 718 719 5 657 659 689 690 691 9 657 659 688 690 691 720 721 722 723 5 657 659 688 689 691 9 657 659 688 689 690 720 721 722 723 13 661 663 664 665 666 667 693 694 695 696 697 698 699 21 661 663 664 665 666 667 692 694 695 696 697 698 699 724 725 726 727 728 729 730 731 13 661 663 664 665 666 667 692 693 695 696 697 698 699 21 661 663 664 665 666 667 692 693 694 696 697 698 699 724 725 726 727 728 729 730 731 21 661 663 664 665 666 667 692 693 694 695 697 698 699 724 725 726 727 728 729 730 731 21 661 663 664 665 666 667 692 693 694 695 696 698 699 724 725 726 727 728 729 730 731 21 661 663 664 665 666 667 692 693 694 695 696 697 699 724 725 726 727 728 729 730 731 21 661 663 664 665 666 667 692 693 694 695 696 697 698 724 725 726 727 728 729 730 731 5 668 669 701 732 733 5 668 669 700 732 733 5 670 671 703 734 735 5 670 671 702 734 735 5 673 675 705 706 707 9 673 675 704 706 707 736 737 738 739 5 673 675 704 705 707 9 673 675 704 705 706 736 737 738 739 31 676 677 678 679 681 683 685 687 709 710 711 712 713 714 715 716 717 718 719 740 741 742 743 744 745 746 747 748 749 750 751 31 676 677 678 679 681 683 685 687 708 710 711 712 713 714 715 716 717 718 719 740 741 742 743 744 745 746 747 748 749 750 751 31 676 677 678 679 681 683 685 687 708 709 711 712 713 714 715 716 717 718 719 740 741 742 743 744 745 746 747 748 749 750 751 31 676 677 678 679 681 683 685 687 708 709 710 712 713 714 715 716 717 718 719 740 741 742 743 744 745 746 747 748 749 750 751 19 676 677 678 679 681 683 685 687 708 709 710 711 713 714 715 716 717 718 719 31 676 677 678 679 681 683 685 687 708 709 710 711 712 714 715 716 717 718 719 740 741 742 743 744 745 746 747 748 749 750 751 19 676 677 678 679 681 683 685 687 708 709 710 711 712 713 715 716 717 718 719 31 676 677 678 679 681 683 685 687 708 709 710 711 712 713 714 716 717 718 719 740 741 742 743 744 745 746 747 748 749 750 751 19 676 677 678 679 681 683 685 687 708 709 710 711 712 713 714 715 717 718 719 31 676 677 678 679 681 683 685 687 708 709 710 711 712 713 714 715 716 718 719 740 741 742 743 744 745 746 747 748 749 750 751 19 676 677 678 679 681 683 685 687 708 709 710 711 712 713 714 715 716 717 719 31 676 677 678 679 681 683 685 687 708 709 710 711 712 713 714 715 716 717 718 740 741 742 743 744 745 746 747 748 749 750 751 5 689 691 721 722 723 9 689 691 720 722 723 752 753 754 755 5 689 691 720 721 723 9 689 691 720 721 722 752 753 754 755 13 693 695 696 697 698 699 725 726 727 728 729 730 731 21 693 695 696 697 698 699 724 726 727 728 729 730 731 756 757 758 759 760 761 762 763 13 693 695 696 697 698 699 724 725 727 728 729 730 731 21 693 695 696 697 698 699 724 725 726 728 729 730 731 756 757 758 759 760 761 762 763 21 693 695 696 697 698 699 724 725 726 727 729 730 731 756 757 758 759 760 761 762 763 21 693 695 696 697 698 699 724 725 726 727 728 730 731 756 757 758 759 760 761 762 763 21 693 695 696 697 698 699 724 725 726 727 728 729 731 756 757 758 759 760 761 762 763 21 693 695 696 697 698 699 724 725 726 727 728 729 730 756 757 758 759 760 761 762 763 5 700 701 733 764 765 5 700 701 732 764 765 5 702 703 735 766 767 5 702 703 734 766 767 5 705 707 737 738 739 9 705 707 736 738 739 768 769 770 771 5 705 707 736 737 739 9 705 707 736 737 738 768 769 770 771 31 708 709 710 711 713 715 717 719 741 742 743 744 745 746 747 748 749 750 751 772 773 774 775 776 777 778 779 780 781 782 783 31 708 709 710 711 713 715 717 719 740 742 743 744 745 746 747 748 749 750 751 772 773 774 775 776 777 778 779 780 781 782 783 31 708 709 710 711 713 715 717 719 740 741 743 744 745 746 747 748 749 750 751 772 773 774 775 776 777 778 779 780 781 782 783 31 708 709 710 711 713 715 717 719 740 741 742 744 745 746 747 748 749 750 751 772 773 774 775 776 777 778 779 780 781 782 783 19 708 709 710 711 713 715 717 719 740 741 742 743 745 746 747 748 749 750 751 31 708 709 710 711 713 715 717 719 740 741 742 743 744 746 747 748 749 750 751 772 773 774 775 776 777 778 779 780 781 782 783 19 708 709 710 711 713 715 717 719 740 741 742 743 744 745 747 748 749 750 751 31 708 709 710 711 713 715 717 719 740 741 742 743 744 745 746 748 749 750 751 772 773 774 775 776 777 778 779 780 781 782 783 19 708 709 710 711 713 715 717 719 740 741 742 743 744 745 746 747 749 750 751 31 708 709 710 711 713 715 717 719 740 741 742 743 744 745 746 747 748 750 751 772 773 774 775 776 777 778 779 780 781 782 783 19 708 709 710 711 713 715 717 719 740 741 742 743 744 745 746 747 748 749 751 31 708 709 710 711 713 715 717 719 740 741 742 743 744 745 746 747 748 749 750 772 773 774 775 776 777 778 779 780 781 782 783 5 721 723 753 754 755 9 721 723 752 754 755 784 785 786 787 5 721 723 752 753 755 9 721 723 752 753 754 784 785 786 787 13 725 727 728 729 730 731 757 758 759 760 761 762 763 21 725 727 728 729 730 731 756 758 759 760 761 762 763 788 789 790 791 792 793 794 795 13 725 727 728 729 730 731 756 757 759 760 761 762 763 21 725 727 728 729 730 731 756 757 758 760 761 762 763 788 789 790 791 792 793 794 795 21 725 727 728 729 730 731 756 757 758 759 761 762 763 788 789 790 791 792 793 794 795 21 725 727 728 729 730 731 756 757 758 759 760 762 763 788 789 790 791 792 793 794 795 21 725 727 728 729 730 731 756 757 758 759 760 761 763 788 789 790 791 792 793 794 795 21 725 727 728 729 730 731 756 757 758 759 760 761 762 788 789 790 791 792 793 794 795 5 732 733 765 796 797 5 732 733 764 796 797 5 734 735 767 798 799 5 734 735 766 798 799 5 737 739 769 770 771 9 737 739 768 770 771 800 801 802 803 5 737 739 768 769 771 9 737 739 768 769 770 800 801 802 803 31 740 741 742 743 745 747 749 751 773 774 775 776 777 778 779 780 781 782 783 804 805 806 807 808 809 810 811 812 813 814 815 31 740 741 742 743 745 747 749 751 772 774 775 776 777 778 779 780 781 782 783 804 805 806 807 808 809 810 811 812 813 814 815 31 740 741 742 743 745 747 749 751 772 773 775 776 777 778 779 780 781 782 783 804 805 806 807 808 809 810 811 812 813 814 815 31 740 741 742 743 745 747 749 751 772 773 774 776 777 778 779 780 781 782 783 804 805 806 807 808 809 810 811 812 813 814 815 19 740 741 742 743 745 747 749 751 772 773 774 775 777 778 779 780 781 782 783 31 740 741 742 743 745 747 749 751 772 773 774 775 776 778 779 780 781 782 783 804 805 806 807 808 809 810 811 812 813 814 815 19 740 741 742 743 745 747 749 751 772 773 774 775 776 777 779 780 781 782 783 31 740 741 742 743 745 747 749 751 772 773 774 775 776 777 778 780 781 782 783 804 805 806 807 808 809 810 811 812 813 814 815 19 740 741 742 743 745 747 749 751 772 773 774 775 776 777 778 779 781 782 783 31 740 741 742 743 745 747 749 751 772 773 774 775 776 777 778 779 780 782 783 804 805 806 807 808 809 810 811 812 813 814 815 19 740 741 742 743 745 747 749 751 772 773 774 775 776 777 778 779 780 781 783 31 740 741 742 743 745 747 749 751 772 773 774 775 776 777 778 779 780 781 782 804 805 806 807 808 809 810 811 812 813 814 815 5 753 755 785 786 787 9 753 755 784 786 787 816 817 818 819 5 753 755 784 785 787 9 753 755 784 785 786 816 817 818 819 13 757 759 760 761 762 763 789 790 791 792 793 794 795 21 757 759 760 761 762 763 788 790 791 792 793 794 795 820 821 822 823 824 825 826 827 13 757 759 760 761 762 763 788 789 791 792 793 794 795 21 757 759 760 761 762 763 788 789 790 792 793 794 795 820 821 822 823 824 825 826 827 21 757 759 760 761 762 763 788 789 790 791 793 794 795 820 821 822 823 824 825 826 827 21 757 759 760 761 762 763 788 789 790 791 792 794 795 820 821 822 823 824 825 826 827 21 757 759 760 761 762 763 788 789 790 791 792 793 795 820 821 822 823 824 825 826 827 21 757 759 760 761 762 763 788 789 790 791 792 793 794 820 821 822 823 824 825 826 827 5 764 765 797 828 829 5 764 765 796 828 829 5 766 767 799 830 831 5 766 767 798 830 831 5 769 771 801 802 803 9 769 771 800 802 803 832 833 834 835 5 769 771 800 801 803 9 769 771 800 801 802 832 833 834 835 31 772 773 774 775 777 779 781 783 805 806 807 808 809 810 811 812 813 814 815 836 837 838 839 840 841 842 843 844 845 846 847 31 772 773 774 775 777 779 781 783 804 806 807 808 809 810 811 812 813 814 815 836 837 838 839 840 841 842 843 844 845 846 847 31 772 773 774 775 777 779 781 783 804 805 807 808 809 810 811 812 813 814 815 836 837 838 839 840 841 842 843 844 845 846 847 31 772 773 774 775 777 779 781 783 804 805 806 808 809 810 811 812 813 814 815 836 837 838 839 840 841 842 843 844 845 846 847 19 772 773 774 775 777 779 781 783 804 805 806 807 809 810 811 812 813 814 815 31 772 773 774 775 777 779 781 783 804 805 806 807 808 810 811 812 813 814 815 836 837 838 839 840 841 842 843 844 845 846 847 19 772 773 774 775 777 779 781 783 804 805 806 807 808 809 811 812 813 814 815 31 772 773 774 775 777 779 781 783 804 805 806 807 808 809 810 812 813 814 815 836 837 838 839 840 841 842 843 844 845 846 847 19 772 773 774 775 777 779 781 783 804 805 806 807 808 809 810 811 813 814 815 31 772 773 774 775 777 779 781 783 804 805 806 807 808 809 810 811 812 814 815 836 837 838 839 840 841 842 843 844 845 846 847 19 772 773 774 775 777 779 781 783 804 805 806 807 808 809 810 811 812 813 815 31 772 773 774 775 777 779 781 783 804 805 806 807 808 809 810 811 812 813 814 836 837 838 839 840 841 842 843 844 845 846 847 5 785 787 817 818 819 9 785 787 816 818 819 848 849 850 851 5 785 787 816 817 819 9 785 787 816 817 818 848 849 850 851 13 789 791 792 793 794 795 821 822 823 824 825 826 827 21 789 791 792 793 794 795 820 822 823 824 825 826 827 852 853 854 855 856 857 858 859 13 789 791 792 793 794 795 820 821 823 824 825 826 827 21 789 791 792 793 794 795 820 821 822 824 825 826 827 852 853 854 855 856 857 858 859 21 789 791 792 793 794 795 820 821 822 823 825 826 827 852 853 854 855 856 857 858 859 21 789 791 792 793 794 795 820 821 822 823 824 826 827 852 853 854 855 856 857 858 859 21 789 791 792 793 794 795 820 821 822 823 824 825 827 852 853 854 855 856 857 858 859 21 789 791 792 793 794 795 820 821 822 823 824 825 826 852 853 854 855 856 857 858 859 5 796 797 829 860 861 5 796 797 828 860 861 5 798 799 831 862 863 5 798 799 830 862 863 5 801 803 833 834 835 9 801 803 832 834 835 864 865 866 867 5 801 803 832 833 835 9 801 803 832 833 834 864 865 866 867 31 804 805 806 807 809 811 813 815 837 838 839 840 841 842 843 844 845 846 847 868 869 870 871 872 873 874 875 876 877 878 879 31 804 805 806 807 809 811 813 815 836 838 839 840 841 842 843 844 845 846 847 868 869 870 871 872 873 874 875 876 877 878 879 31 804 805 806 807 809 811 813 815 836 837 839 840 841 842 843 844 845 846 847 868 869 870 871 872 873 874 875 876 877 878 879 31 804 805 806 807 809 811 813 815 836 837 838 840 841 842 843 844 845 846 847 868 869 870 871 872 873 874 875 876 877 878 879 19 804 805 806 807 809 811 813 815 836 837 838 839 841 842 843 844 845 846 847 31 804 805 806 807 809 811 813 815 836 837 838 839 840 842 843 844 845 846 847 868 869 870 871 872 873 874 875 876 877 878 879 19 804 805 806 807 809 811 813 815 836 837 838 839 840 841 843 844 845 846 847 31 804 805 806 807 809 811 813 815 836 837 838 839 840 841 842 844 845 846 847 868 869 870 871 872 873 874 875 876 877 878 879 19 804 805 806 807 809 811 813 815 836 837 838 839 840 841 842 843 845 846 847 31 804 805 806 807 809 811 813 815 836 837 838 839 840 841 842 843 844 846 847 868 869 870 871 872 873 874 875 876 877 878 879 19 804 805 806 807 809 811 813 815 836 837 838 839 840 841 842 843 844 845 847 31 804 805 806 807 809 811 813 815 836 837 838 839 840 841 842 843 844 845 846 868 869 870 871 872 873 874 875 876 877 878 879 5 817 819 849 850 851 9 817 819 848 850 851 880 881 882 883 5 817 819 848 849 851 9 817 819 848 849 850 880 881 882 883 13 821 823 824 825 826 827 853 854 855 856 857 858 859 21 821 823 824 825 826 827 852 854 855 856 857 858 859 884 885 886 887 888 889 890 891 13 821 823 824 825 826 827 852 853 855 856 857 858 859 21 821 823 824 825 826 827 852 853 854 856 857 858 859 884 885 886 887 888 889 890 891 21 821 823 824 825 826 827 852 853 854 855 857 858 859 884 885 886 887 888 889 890 891 21 821 823 824 825 826 827 852 853 854 855 856 858 859 884 885 886 887 888 889 890 891 21 821 823 824 825 826 827 852 853 854 855 856 857 859 884 885 886 887 888 889 890 891 21 821 823 824 825 826 827 852 853 854 855 856 857 858 884 885 886 887 888 889 890 891 5 828 829 861 892 893 5 828 829 860 892 893 5 830 831 863 894 895 5 830 831 862 894 895 5 833 835 865 866 867 9 833 835 864 866 867 896 897 898 899 5 833 835 864 865 867 9 833 835 864 865 866 896 897 898 899 31 836 837 838 839 841 843 845 847 869 870 871 872 873 874 875 876 877 878 879 900 901 902 903 904 905 906 907 908 909 910 911 31 836 837 838 839 841 843 845 847 868 870 871 872 873 874 875 876 877 878 879 900 901 902 903 904 905 906 907 908 909 910 911 31 836 837 838 839 841 843 845 847 868 869 871 872 873 874 875 876 877 878 879 900 901 902 903 904 905 906 907 908 909 910 911 31 836 837 838 839 841 843 845 847 868 869 870 872 873 874 875 876 877 878 879 900 901 902 903 904 905 906 907 908 909 910 911 19 836 837 838 839 841 843 845 847 868 869 870 871 873 874 875 876 877 878 879 31 836 837 838 839 841 843 845 847 868 869 870 871 872 874 875 876 877 878 879 900 901 902 903 904 905 906 907 908 909 910 911 19 836 837 838 839 841 843 845 847 868 869 870 871 872 873 875 876 877 878 879 31 836 837 838 839 841 843 845 847 868 869 870 871 872 873 874 876 877 878 879 900 901 902 903 904 905 906 907 908 909 910 911 19 836 837 838 839 841 843 845 847 868 869 870 871 872 873 874 875 877 878 879 31 836 837 838 839 841 843 845 847 868 869 870 871 872 873 874 875 876 878 879 900 901 902 903 904 905 906 907 908 909 910 911 19 836 837 838 839 841 843 845 847 868 869 870 871 872 873 874 875 876 877 879 31 836 837 838 839 841 843 845 847 868 869 870 871 872 873 874 875 876 877 878 900 901 902 903 904 905 906 907 908 909 910 911 5 849 851 881 882 883 9 849 851 880 882 883 912 913 914 915 5 849 851 880 881 883 9 849 851 880 881 882 912 913 914 915 13 853 855 856 857 858 859 885 886 887 888 889 890 891 21 853 855 856 857 858 859 884 886 887 888 889 890 891 916 917 918 919 920 921 922 923 13 853 855 856 857 858 859 884 885 887 888 889 890 891 21 853 855 856 857 858 859 884 885 886 888 889 890 891 916 917 918 919 920 921 922 923 21 853 855 856 857 858 859 884 885 886 887 889 890 891 916 917 918 919 920 921 922 923 21 853 855 856 857 858 859 884 885 886 887 888 890 891 916 917 918 919 920 921 922 923 21 853 855 856 857 858 859 884 885 886 887 888 889 891 916 917 918 919 920 921 922 923 21 853 855 856 857 858 859 884 885 886 887 888 889 890 916 917 918 919 920 921 922 923 5 860 861 893 924 925 5 860 861 892 924 925 5 862 863 895 926 927 5 862 863 894 926 927 5 865 867 897 898 899 9 865 867 896 898 899 928 929 930 931 5 865 867 896 897 899 9 865 867 896 897 898 928 929 930 931 31 868 869 870 871 873 875 877 879 901 902 903 904 905 906 907 908 909 910 911 932 933 934 935 936 937 938 939 940 941 942 943 31 868 869 870 871 873 875 877 879 900 902 903 904 905 906 907 908 909 910 911 932 933 934 935 936 937 938 939 940 941 942 943 31 868 869 870 871 873 875 877 879 900 901 903 904 905 906 907 908 909 910 911 932 933 934 935 936 937 938 939 940 941 942 943 31 868 869 870 871 873 875 877 879 900 901 902 904 905 906 907 908 909 910 911 932 933 934 935 936 937 938 939 940 941 942 943 19 868 869 870 871 873 875 877 879 900 901 902 903 905 906 907 908 909 910 911 31 868 869 870 871 873 875 877 879 900 901 902 903 904 906 907 908 909 910 911 932 933 934 935 936 937 938 939 940 941 942 943 19 868 869 870 871 873 875 877 879 900 901 902 903 904 905 907 908 909 910 911 31 868 869 870 871 873 875 877 879 900 901 902 903 904 905 906 908 909 910 911 932 933 934 935 936 937 938 939 940 941 942 943 19 868 869 870 871 873 875 877 879 900 901 902 903 904 905 906 907 909 910 911 31 868 869 870 871 873 875 877 879 900 901 902 903 904 905 906 907 908 910 911 932 933 934 935 936 937 938 939 940 941 942 943 19 868 869 870 871 873 875 877 879 900 901 902 903 904 905 906 907 908 909 911 31 868 869 870 871 873 875 877 879 900 901 902 903 904 905 906 907 908 909 910 932 933 934 935 936 937 938 939 940 941 942 943 5 881 883 913 914 915 9 881 883 912 914 915 944 945 946 947 5 881 883 912 913 915 9 881 883 912 913 914 944 945 946 947 13 885 887 888 889 890 891 917 918 919 920 921 922 923 21 885 887 888 889 890 891 916 918 919 920 921 922 923 948 949 950 951 952 953 954 955 13 885 887 888 889 890 891 916 917 919 920 921 922 923 21 885 887 888 889 890 891 916 917 918 920 921 922 923 948 949 950 951 952 953 954 955 21 885 887 888 889 890 891 916 917 918 919 921 922 923 948 949 950 951 952 953 954 955 21 885 887 888 889 890 891 916 917 918 919 920 922 923 948 949 950 951 952 953 954 955 21 885 887 888 889 890 891 916 917 918 919 920 921 923 948 949 950 951 952 953 954 955 21 885 887 888 889 890 891 916 917 918 919 920 921 922 948 949 950 951 952 953 954 955 5 892 893 925 956 957 5 892 893 924 956 957 5 894 895 927 958 959 5 894 895 926 958 959 5 897 899 929 930 931 9 897 899 928 930 931 960 961 962 963 5 897 899 928 929 931 9 897 899 928 929 930 960 961 962 963 31 900 901 902 903 905 907 909 911 933 934 935 936 937 938 939 940 941 942 943 964 965 966 967 968 969 970 971 972 973 974 975 31 900 901 902 903 905 907 909 911 932 934 935 936 937 938 939 940 941 942 943 964 965 966 967 968 969 970 971 972 973 974 975 31 900 901 902 903 905 907 909 911 932 933 935 936 937 938 939 940 941 942 943 964 965 966 967 968 969 970 971 972 973 974 975 31 900 901 902 903 905 907 909 911 932 933 934 936 937 938 939 940 941 942 943 964 965 966 967 968 969 970 971 972 973 974 975 19 900 901 902 903 905 907 909 911 932 933 934 935 937 938 939 940 941 942 943 31 900 901 902 903 905 907 909 911 932 933 934 935 936 938 939 940 941 942 943 964 965 966 967 968 969 970 971 972 973 974 975 19 900 901 902 903 905 907 909 911 932 933 934 935 936 937 939 940 941 942 943 31 900 901 902 903 905 907 909 911 932 933 934 935 936 937 938 940 941 942 943 964 965 966 967 968 969 970 971 972 973 974 975 19 900 901 902 903 905 907 909 911 932 933 934 935 936 937 938 939 941 942 943 31 900 901 902 903 905 907 909 911 932 933 934 935 936 937 938 939 940 942 943 964 965 966 967 968 969 970 971 972 973 974 975 19 900 901 902 903 905 907 909 911 932 933 934 935 936 937 938 939 940 941 943 31 900 901 902 903 905 907 909 911 932 933 934 935 936 937 938 939 940 941 942 964 965 966 967 968 969 970 971 972 973 974 975 5 913 915 945 946 947 9 913 915 944 946 947 976 977 978 979 5 913 915 944 945 947 9 913 915 944 945 946 976 977 978 979 13 917 919 920 921 922 923 949 950 951 952 953 954 955 21 917 919 920 921 922 923 948 950 951 952 953 954 955 980 981 982 983 984 985 986 987 13 917 919 920 921 922 923 948 949 951 952 953 954 955 21 917 919 920 921 922 923 948 949 950 952 953 954 955 980 981 982 983 984 985 986 987 21 917 919 920 921 922 923 948 949 950 951 953 954 955 980 981 982 983 984 985 986 987 21 917 919 920 921 922 923 948 949 950 951 952 954 955 980 981 982 983 984 985 986 987 21 917 919 920 921 922 923 948 949 950 951 952 953 955 980 981 982 983 984 985 986 987 21 917 919 920 921 922 923 948 949 950 951 952 953 954 980 981 982 983 984 985 986 987 5 924 925 957 988 989 5 924 925 956 988 989 5 926 927 959 990 991 5 926 927 958 990 991 5 929 931 961 962 963 9 929 931 960 962 963 992 993 994 995 5 929 931 960 961 963 9 929 931 960 961 962 992 993 994 995 31 932 933 934 935 937 939 941 943 965 966 967 968 969 970 971 972 973 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 31 932 933 934 935 937 939 941 943 964 966 967 968 969 970 971 972 973 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 31 932 933 934 935 937 939 941 943 964 965 967 968 969 970 971 972 973 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 31 932 933 934 935 937 939 941 943 964 965 966 968 969 970 971 972 973 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 19 932 933 934 935 937 939 941 943 964 965 966 967 969 970 971 972 973 974 975 31 932 933 934 935 937 939 941 943 964 965 966 967 968 970 971 972 973 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 19 932 933 934 935 937 939 941 943 964 965 966 967 968 969 971 972 973 974 975 31 932 933 934 935 937 939 941 943 964 965 966 967 968 969 970 972 973 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 19 932 933 934 935 937 939 941 943 964 965 966 967 968 969 970 971 973 974 975 31 932 933 934 935 937 939 941 943 964 965 966 967 968 969 970 971 972 974 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 19 932 933 934 935 937 939 941 943 964 965 966 967 968 969 970 971 972 973 975 31 932 933 934 935 937 939 941 943 964 965 966 967 968 969 970 971 972 973 974 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 5 945 947 977 978 979 9 945 947 976 978 979 1008 1009 1010 1011 5 945 947 976 977 979 9 945 947 976 977 978 1008 1009 1010 1011 13 949 951 952 953 954 955 981 982 983 984 985 986 987 21 949 951 952 953 954 955 980 982 983 984 985 986 987 1012 1013 1014 1015 1016 1017 1018 1019 13 949 951 952 953 954 955 980 981 983 984 985 986 987 21 949 951 952 953 954 955 980 981 982 984 985 986 987 1012 1013 1014 1015 1016 1017 1018 1019 21 949 951 952 953 954 955 980 981 982 983 985 986 987 1012 1013 1014 1015 1016 1017 1018 1019 21 949 951 952 953 954 955 980 981 982 983 984 986 987 1012 1013 1014 1015 1016 1017 1018 1019 21 949 951 952 953 954 955 980 981 982 983 984 985 987 1012 1013 1014 1015 1016 1017 1018 1019 21 949 951 952 953 954 955 980 981 982 983 984 985 986 1012 1013 1014 1015 1016 1017 1018 1019 5 956 957 989 1020 1021 5 956 957 988 1020 1021 5 958 959 991 1022 1023 5 958 959 990 1022 1023 5 961 963 993 994 995 9 961 963 992 994 995 1024 1025 1026 1027 5 961 963 992 993 995 9 961 963 992 993 994 1024 1025 1026 1027 31 964 965 966 967 969 971 973 975 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 31 964 965 966 967 969 971 973 975 996 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 31 964 965 966 967 969 971 973 975 996 997 999 1000 1001 1002 1003 1004 1005 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 31 964 965 966 967 969 971 973 975 996 997 998 1000 1001 1002 1003 1004 1005 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 19 964 965 966 967 969 971 973 975 996 997 998 999 1001 1002 1003 1004 1005 1006 1007 31 964 965 966 967 969 971 973 975 996 997 998 999 1000 1002 1003 1004 1005 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 19 964 965 966 967 969 971 973 975 996 997 998 999 1000 1001 1003 1004 1005 1006 1007 31 964 965 966 967 969 971 973 975 996 997 998 999 1000 1001 1002 1004 1005 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 19 964 965 966 967 969 971 973 975 996 997 998 999 1000 1001 1002 1003 1005 1006 1007 31 964 965 966 967 969 971 973 975 996 997 998 999 1000 1001 1002 1003 1004 1006 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 19 964 965 966 967 969 971 973 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1007 31 964 965 966 967 969 971 973 975 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 5 977 979 1009 1010 1011 9 977 979 1008 1010 1011 1040 1041 1042 1043 5 977 979 1008 1009 1011 9 977 979 1008 1009 1010 1040 1041 1042 1043 13 981 983 984 985 986 987 1013 1014 1015 1016 1017 1018 1019 21 981 983 984 985 986 987 1012 1014 1015 1016 1017 1018 1019 1044 1045 1046 1047 1048 1049 1050 1051 13 981 983 984 985 986 987 1012 1013 1015 1016 1017 1018 1019 21 981 983 984 985 986 987 1012 1013 1014 1016 1017 1018 1019 1044 1045 1046 1047 1048 1049 1050 1051 21 981 983 984 985 986 987 1012 1013 1014 1015 1017 1018 1019 1044 1045 1046 1047 1048 1049 1050 1051 21 981 983 984 985 986 987 1012 1013 1014 1015 1016 1018 1019 1044 1045 1046 1047 1048 1049 1050 1051 21 981 983 984 985 986 987 1012 1013 1014 1015 1016 1017 1019 1044 1045 1046 1047 1048 1049 1050 1051 21 981 983 984 985 986 987 1012 1013 1014 1015 1016 1017 1018 1044 1045 1046 1047 1048 1049 1050 1051 5 988 989 1021 1052 1053 5 988 989 1020 1052 1053 5 990 991 1023 1054 1055 5 990 991 1022 1054 1055 5 993 995 1025 1026 1027 9 993 995 1024 1026 1027 1056 1057 1058 1059 5 993 995 1024 1025 1027 9 993 995 1024 1025 1026 1056 1057 1058 1059 31 996 997 998 999 1001 1003 1005 1007 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 31 996 997 998 999 1001 1003 1005 1007 1028 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 31 996 997 998 999 1001 1003 1005 1007 1028 1029 1031 1032 1033 1034 1035 1036 1037 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 31 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1032 1033 1034 1035 1036 1037 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 19 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1033 1034 1035 1036 1037 1038 1039 31 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1034 1035 1036 1037 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 19 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1033 1035 1036 1037 1038 1039 31 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1033 1034 1036 1037 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 19 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1033 1034 1035 1037 1038 1039 31 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1038 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 19 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1039 31 996 997 998 999 1001 1003 1005 1007 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 5 1009 1011 1041 1042 1043 9 1009 1011 1040 1042 1043 1072 1073 1074 1075 5 1009 1011 1040 1041 1043 9 1009 1011 1040 1041 1042 1072 1073 1074 1075 13 1013 1015 1016 1017 1018 1019 1045 1046 1047 1048 1049 1050 1051 21 1013 1015 1016 1017 1018 1019 1044 1046 1047 1048 1049 1050 1051 1076 1077 1078 1079 1080 1081 1082 1083 13 1013 1015 1016 1017 1018 1019 1044 1045 1047 1048 1049 1050 1051 21 1013 1015 1016 1017 1018 1019 1044 1045 1046 1048 1049 1050 1051 1076 1077 1078 1079 1080 1081 1082 1083 21 1013 1015 1016 1017 1018 1019 1044 1045 1046 1047 1049 1050 1051 1076 1077 1078 1079 1080 1081 1082 1083 21 1013 1015 1016 1017 1018 1019 1044 1045 1046 1047 1048 1050 1051 1076 1077 1078 1079 1080 1081 1082 1083 21 1013 1015 1016 1017 1018 1019 1044 1045 1046 1047 1048 1049 1051 1076 1077 1078 1079 1080 1081 1082 1083 21 1013 1015 1016 1017 1018 1019 1044 1045 1046 1047 1048 1049 1050 1076 1077 1078 1079 1080 1081 1082 1083 5 1020 1021 1053 1084 1085 5 1020 1021 1052 1084 1085 5 1022 1023 1055 1086 1087 5 1022 1023 1054 1086 1087 5 1025 1027 1057 1058 1059 9 1025 1027 1056 1058 1059 1088 1089 1090 1091 5 1025 1027 1056 1057 1059 9 1025 1027 1056 1057 1058 1088 1089 1090 1091 31 1028 1029 1030 1031 1033 1035 1037 1039 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1063 1064 1065 1066 1067 1068 1069 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1064 1065 1066 1067 1068 1069 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 19 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1065 1066 1067 1068 1069 1070 1071 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1066 1067 1068 1069 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 19 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1065 1067 1068 1069 1070 1071 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1065 1066 1068 1069 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 19 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1065 1066 1067 1069 1070 1071 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1070 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 19 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1071 31 1028 1029 1030 1031 1033 1035 1037 1039 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 5 1041 1043 1073 1074 1075 9 1041 1043 1072 1074 1075 1104 1105 1106 1107 5 1041 1043 1072 1073 1075 9 1041 1043 1072 1073 1074 1104 1105 1106 1107 13 1045 1047 1048 1049 1050 1051 1077 1078 1079 1080 1081 1082 1083 21 1045 1047 1048 1049 1050 1051 1076 1078 1079 1080 1081 1082 1083 1108 1109 1110 1111 1112 1113 1114 1115 13 1045 1047 1048 1049 1050 1051 1076 1077 1079 1080 1081 1082 1083 21 1045 1047 1048 1049 1050 1051 1076 1077 1078 1080 1081 1082 1083 1108 1109 1110 1111 1112 1113 1114 1115 21 1045 1047 1048 1049 1050 1051 1076 1077 1078 1079 1081 1082 1083 1108 1109 1110 1111 1112 1113 1114 1115 21 1045 1047 1048 1049 1050 1051 1076 1077 1078 1079 1080 1082 1083 1108 1109 1110 1111 1112 1113 1114 1115 21 1045 1047 1048 1049 1050 1051 1076 1077 1078 1079 1080 1081 1083 1108 1109 1110 1111 1112 1113 1114 1115 21 1045 1047 1048 1049 1050 1051 1076 1077 1078 1079 1080 1081 1082 1108 1109 1110 1111 1112 1113 1114 1115 5 1052 1053 1085 1116 1117 5 1052 1053 1084 1116 1117 5 1054 1055 1087 1118 1119 5 1054 1055 1086 1118 1119 5 1057 1059 1089 1090 1091 9 1057 1059 1088 1090 1091 1120 1121 1122 1123 5 1057 1059 1088 1089 1091 9 1057 1059 1088 1089 1090 1120 1121 1122 1123 31 1060 1061 1062 1063 1065 1067 1069 1071 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1095 1096 1097 1098 1099 1100 1101 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1096 1097 1098 1099 1100 1101 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 19 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1097 1098 1099 1100 1101 1102 1103 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1098 1099 1100 1101 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 19 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1097 1099 1100 1101 1102 1103 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1097 1098 1100 1101 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 19 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1097 1098 1099 1101 1102 1103 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1102 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 19 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1103 31 1060 1061 1062 1063 1065 1067 1069 1071 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 5 1073 1075 1105 1106 1107 9 1073 1075 1104 1106 1107 1136 1137 1138 1139 5 1073 1075 1104 1105 1107 9 1073 1075 1104 1105 1106 1136 1137 1138 1139 13 1077 1079 1080 1081 1082 1083 1109 1110 1111 1112 1113 1114 1115 21 1077 1079 1080 1081 1082 1083 1108 1110 1111 1112 1113 1114 1115 1140 1141 1142 1143 1144 1145 1146 1147 13 1077 1079 1080 1081 1082 1083 1108 1109 1111 1112 1113 1114 1115 21 1077 1079 1080 1081 1082 1083 1108 1109 1110 1112 1113 1114 1115 1140 1141 1142 1143 1144 1145 1146 1147 21 1077 1079 1080 1081 1082 1083 1108 1109 1110 1111 1113 1114 1115 1140 1141 1142 1143 1144 1145 1146 1147 21 1077 1079 1080 1081 1082 1083 1108 1109 1110 1111 1112 1114 1115 1140 1141 1142 1143 1144 1145 1146 1147 21 1077 1079 1080 1081 1082 1083 1108 1109 1110 1111 1112 1113 1115 1140 1141 1142 1143 1144 1145 1146 1147 21 1077 1079 1080 1081 1082 1083 1108 1109 1110 1111 1112 1113 1114 1140 1141 1142 1143 1144 1145 1146 1147 5 1084 1085 1117 1148 1149 5 1084 1085 1116 1148 1149 5 1086 1087 1119 1150 1151 5 1086 1087 1118 1150 1151 5 1089 1091 1121 1122 1123 9 1089 1091 1120 1122 1123 1152 1153 1154 1155 5 1089 1091 1120 1121 1123 9 1089 1091 1120 1121 1122 1152 1153 1154 1155 31 1092 1093 1094 1095 1097 1099 1101 1103 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1127 1128 1129 1130 1131 1132 1133 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1128 1129 1130 1131 1132 1133 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 19 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1129 1130 1131 1132 1133 1134 1135 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1130 1131 1132 1133 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 19 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1129 1131 1132 1133 1134 1135 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1129 1130 1132 1133 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 19 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1129 1130 1131 1133 1134 1135 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1134 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 19 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1135 31 1092 1093 1094 1095 1097 1099 1101 1103 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 5 1105 1107 1137 1138 1139 9 1105 1107 1136 1138 1139 1168 1169 1170 1171 5 1105 1107 1136 1137 1139 9 1105 1107 1136 1137 1138 1168 1169 1170 1171 13 1109 1111 1112 1113 1114 1115 1141 1142 1143 1144 1145 1146 1147 21 1109 1111 1112 1113 1114 1115 1140 1142 1143 1144 1145 1146 1147 1172 1173 1174 1175 1176 1177 1178 1179 13 1109 1111 1112 1113 1114 1115 1140 1141 1143 1144 1145 1146 1147 21 1109 1111 1112 1113 1114 1115 1140 1141 1142 1144 1145 1146 1147 1172 1173 1174 1175 1176 1177 1178 1179 21 1109 1111 1112 1113 1114 1115 1140 1141 1142 1143 1145 1146 1147 1172 1173 1174 1175 1176 1177 1178 1179 21 1109 1111 1112 1113 1114 1115 1140 1141 1142 1143 1144 1146 1147 1172 1173 1174 1175 1176 1177 1178 1179 21 1109 1111 1112 1113 1114 1115 1140 1141 1142 1143 1144 1145 1147 1172 1173 1174 1175 1176 1177 1178 1179 21 1109 1111 1112 1113 1114 1115 1140 1141 1142 1143 1144 1145 1146 1172 1173 1174 1175 1176 1177 1178 1179 5 1116 1117 1149 1180 1181 5 1116 1117 1148 1180 1181 5 1118 1119 1151 1182 1183 5 1118 1119 1150 1182 1183 5 1121 1123 1153 1154 1155 9 1121 1123 1152 1154 1155 1184 1185 1186 1187 5 1121 1123 1152 1153 1155 9 1121 1123 1152 1153 1154 1184 1185 1186 1187 31 1124 1125 1126 1127 1129 1131 1133 1135 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1159 1160 1161 1162 1163 1164 1165 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1160 1161 1162 1163 1164 1165 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 19 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1161 1162 1163 1164 1165 1166 1167 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1162 1163 1164 1165 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 19 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1161 1163 1164 1165 1166 1167 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1161 1162 1164 1165 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 19 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1161 1162 1163 1165 1166 1167 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1166 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 19 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1167 31 1124 1125 1126 1127 1129 1131 1133 1135 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 5 1137 1139 1169 1170 1171 9 1137 1139 1168 1170 1171 1200 1201 1202 1203 5 1137 1139 1168 1169 1171 9 1137 1139 1168 1169 1170 1200 1201 1202 1203 13 1141 1143 1144 1145 1146 1147 1173 1174 1175 1176 1177 1178 1179 21 1141 1143 1144 1145 1146 1147 1172 1174 1175 1176 1177 1178 1179 1204 1205 1206 1207 1208 1209 1210 1211 13 1141 1143 1144 1145 1146 1147 1172 1173 1175 1176 1177 1178 1179 21 1141 1143 1144 1145 1146 1147 1172 1173 1174 1176 1177 1178 1179 1204 1205 1206 1207 1208 1209 1210 1211 21 1141 1143 1144 1145 1146 1147 1172 1173 1174 1175 1177 1178 1179 1204 1205 1206 1207 1208 1209 1210 1211 21 1141 1143 1144 1145 1146 1147 1172 1173 1174 1175 1176 1178 1179 1204 1205 1206 1207 1208 1209 1210 1211 21 1141 1143 1144 1145 1146 1147 1172 1173 1174 1175 1176 1177 1179 1204 1205 1206 1207 1208 1209 1210 1211 21 1141 1143 1144 1145 1146 1147 1172 1173 1174 1175 1176 1177 1178 1204 1205 1206 1207 1208 1209 1210 1211 5 1148 1149 1181 1212 1213 5 1148 1149 1180 1212 1213 5 1150 1151 1183 1214 1215 5 1150 1151 1182 1214 1215 5 1153 1155 1185 1186 1187 9 1153 1155 1184 1186 1187 1216 1217 1218 1219 5 1153 1155 1184 1185 1187 9 1153 1155 1184 1185 1186 1216 1217 1218 1219 31 1156 1157 1158 1159 1161 1163 1165 1167 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1191 1192 1193 1194 1195 1196 1197 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1192 1193 1194 1195 1196 1197 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 19 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1193 1194 1195 1196 1197 1198 1199 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1194 1195 1196 1197 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 19 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1193 1195 1196 1197 1198 1199 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1193 1194 1196 1197 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 19 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1193 1194 1195 1197 1198 1199 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1198 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 19 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1199 31 1156 1157 1158 1159 1161 1163 1165 1167 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 5 1169 1171 1201 1202 1203 9 1169 1171 1200 1202 1203 1232 1233 1234 1235 5 1169 1171 1200 1201 1203 9 1169 1171 1200 1201 1202 1232 1233 1234 1235 13 1173 1175 1176 1177 1178 1179 1205 1206 1207 1208 1209 1210 1211 21 1173 1175 1176 1177 1178 1179 1204 1206 1207 1208 1209 1210 1211 1236 1237 1238 1239 1240 1241 1242 1243 13 1173 1175 1176 1177 1178 1179 1204 1205 1207 1208 1209 1210 1211 21 1173 1175 1176 1177 1178 1179 1204 1205 1206 1208 1209 1210 1211 1236 1237 1238 1239 1240 1241 1242 1243 21 1173 1175 1176 1177 1178 1179 1204 1205 1206 1207 1209 1210 1211 1236 1237 1238 1239 1240 1241 1242 1243 21 1173 1175 1176 1177 1178 1179 1204 1205 1206 1207 1208 1210 1211 1236 1237 1238 1239 1240 1241 1242 1243 21 1173 1175 1176 1177 1178 1179 1204 1205 1206 1207 1208 1209 1211 1236 1237 1238 1239 1240 1241 1242 1243 21 1173 1175 1176 1177 1178 1179 1204 1205 1206 1207 1208 1209 1210 1236 1237 1238 1239 1240 1241 1242 1243 5 1180 1181 1213 1244 1245 5 1180 1181 1212 1244 1245 5 1182 1183 1215 1246 1247 5 1182 1183 1214 1246 1247 5 1185 1187 1217 1218 1219 9 1185 1187 1216 1218 1219 1248 1249 1250 1251 5 1185 1187 1216 1217 1219 9 1185 1187 1216 1217 1218 1248 1249 1250 1251 31 1188 1189 1190 1191 1193 1195 1197 1199 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1223 1224 1225 1226 1227 1228 1229 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1224 1225 1226 1227 1228 1229 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1225 1226 1227 1228 1229 1230 1231 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1226 1227 1228 1229 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1225 1227 1228 1229 1230 1231 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1225 1226 1228 1229 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1225 1226 1227 1229 1230 1231 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1230 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1231 31 1188 1189 1190 1191 1193 1195 1197 1199 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 5 1201 1203 1233 1234 1235 9 1201 1203 1232 1234 1235 1264 1265 1266 1267 5 1201 1203 1232 1233 1235 9 1201 1203 1232 1233 1234 1264 1265 1266 1267 13 1205 1207 1208 1209 1210 1211 1237 1238 1239 1240 1241 1242 1243 21 1205 1207 1208 1209 1210 1211 1236 1238 1239 1240 1241 1242 1243 1268 1269 1270 1271 1272 1273 1274 1275 13 1205 1207 1208 1209 1210 1211 1236 1237 1239 1240 1241 1242 1243 21 1205 1207 1208 1209 1210 1211 1236 1237 1238 1240 1241 1242 1243 1268 1269 1270 1271 1272 1273 1274 1275 21 1205 1207 1208 1209 1210 1211 1236 1237 1238 1239 1241 1242 1243 1268 1269 1270 1271 1272 1273 1274 1275 21 1205 1207 1208 1209 1210 1211 1236 1237 1238 1239 1240 1242 1243 1268 1269 1270 1271 1272 1273 1274 1275 21 1205 1207 1208 1209 1210 1211 1236 1237 1238 1239 1240 1241 1243 1268 1269 1270 1271 1272 1273 1274 1275 21 1205 1207 1208 1209 1210 1211 1236 1237 1238 1239 1240 1241 1242 1268 1269 1270 1271 1272 1273 1274 1275 5 1212 1213 1245 1276 1277 5 1212 1213 1244 1276 1277 5 1214 1215 1247 1278 1279 5 1214 1215 1246 1278 1279 5 1217 1219 1249 1250 1251 5 1217 1219 1248 1250 1251 5 1217 1219 1248 1249 1251 5 1217 1219 1248 1249 1250 19 1220 1221 1222 1223 1225 1227 1229 1231 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1255 1256 1257 1258 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1256 1257 1258 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1257 1258 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1258 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1257 1259 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1257 1258 1260 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1257 1258 1259 1261 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1262 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1263 19 1220 1221 1222 1223 1225 1227 1229 1231 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 5 1233 1235 1265 1266 1267 5 1233 1235 1264 1266 1267 5 1233 1235 1264 1265 1267 5 1233 1235 1264 1265 1266 13 1237 1239 1240 1241 1242 1243 1269 1270 1271 1272 1273 1274 1275 13 1237 1239 1240 1241 1242 1243 1268 1270 1271 1272 1273 1274 1275 13 1237 1239 1240 1241 1242 1243 1268 1269 1271 1272 1273 1274 1275 13 1237 1239 1240 1241 1242 1243 1268 1269 1270 1272 1273 1274 1275 13 1237 1239 1240 1241 1242 1243 1268 1269 1270 1271 1273 1274 1275 13 1237 1239 1240 1241 1242 1243 1268 1269 1270 1271 1272 1274 1275 13 1237 1239 1240 1241 1242 1243 1268 1269 1270 1271 1272 1273 1275 13 1237 1239 1240 1241 1242 1243 1268 1269 1270 1271 1272 1273 1274 3 1244 1245 1277 3 1244 1245 1276 3 1246 1247 1279 3 1246 1247 1278 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/cube_8.msh000066400000000000000000000003471514310134000256130ustar00rootroot000000000000001 6 8 48 9 1 000 6 1 2 3 4 5 6 2 5 6 3 1 4 6 1 1 2 2 3 2 3 5 5 2 3 4 5 6 3 1 2 4 4 1 4 8 3 4 1 8 5 7 4 6 1 5 7 4 1 8 7 3 4 6 1 7 2 4 7 1 3 2 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/cube_8_d3.grf000066400000000000000000000000611514310134000261610ustar00rootroot000000000000000 6 12 1 000 1 4 2 3 4 2 2 5 3 2 1 6 2 3 6 2 4 5 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m16x16.grf000066400000000000000000000076001514310134000253760ustar00rootroot000000000000000 256 960 0 000 2 1 16 3 0 2 17 3 1 3 18 3 2 4 19 3 3 5 20 3 4 6 21 3 5 7 22 3 6 8 23 3 7 9 24 3 8 10 25 3 9 11 26 3 10 12 27 3 11 13 28 3 12 14 29 3 13 15 30 2 14 31 3 0 17 32 4 1 16 18 33 4 2 17 19 34 4 3 18 20 35 4 4 19 21 36 4 5 20 22 37 4 6 21 23 38 4 7 22 24 39 4 8 23 25 40 4 9 24 26 41 4 10 25 27 42 4 11 26 28 43 4 12 27 29 44 4 13 28 30 45 4 14 29 31 46 3 15 30 47 3 16 33 48 4 17 32 34 49 4 18 33 35 50 4 19 34 36 51 4 20 35 37 52 4 21 36 38 53 4 22 37 39 54 4 23 38 40 55 4 24 39 41 56 4 25 40 42 57 4 26 41 43 58 4 27 42 44 59 4 28 43 45 60 4 29 44 46 61 4 30 45 47 62 3 31 46 63 3 32 49 64 4 33 48 50 65 4 34 49 51 66 4 35 50 52 67 4 36 51 53 68 4 37 52 54 69 4 38 53 55 70 4 39 54 56 71 4 40 55 57 72 4 41 56 58 73 4 42 57 59 74 4 43 58 60 75 4 44 59 61 76 4 45 60 62 77 4 46 61 63 78 3 47 62 79 3 48 65 80 4 49 64 66 81 4 50 65 67 82 4 51 66 68 83 4 52 67 69 84 4 53 68 70 85 4 54 69 71 86 4 55 70 72 87 4 56 71 73 88 4 57 72 74 89 4 58 73 75 90 4 59 74 76 91 4 60 75 77 92 4 61 76 78 93 4 62 77 79 94 3 63 78 95 3 64 81 96 4 65 80 82 97 4 66 81 83 98 4 67 82 84 99 4 68 83 85 100 4 69 84 86 101 4 70 85 87 102 4 71 86 88 103 4 72 87 89 104 4 73 88 90 105 4 74 89 91 106 4 75 90 92 107 4 76 91 93 108 4 77 92 94 109 4 78 93 95 110 3 79 94 111 3 80 97 112 4 81 96 98 113 4 82 97 99 114 4 83 98 100 115 4 84 99 101 116 4 85 100 102 117 4 86 101 103 118 4 87 102 104 119 4 88 103 105 120 4 89 104 106 121 4 90 105 107 122 4 91 106 108 123 4 92 107 109 124 4 93 108 110 125 4 94 109 111 126 3 95 110 127 3 96 113 128 4 97 112 114 129 4 98 113 115 130 4 99 114 116 131 4 100 115 117 132 4 101 116 118 133 4 102 117 119 134 4 103 118 120 135 4 104 119 121 136 4 105 120 122 137 4 106 121 123 138 4 107 122 124 139 4 108 123 125 140 4 109 124 126 141 4 110 125 127 142 3 111 126 143 3 112 129 144 4 113 128 130 145 4 114 129 131 146 4 115 130 132 147 4 116 131 133 148 4 117 132 134 149 4 118 133 135 150 4 119 134 136 151 4 120 135 137 152 4 121 136 138 153 4 122 137 139 154 4 123 138 140 155 4 124 139 141 156 4 125 140 142 157 4 126 141 143 158 3 127 142 159 3 128 145 160 4 129 144 146 161 4 130 145 147 162 4 131 146 148 163 4 132 147 149 164 4 133 148 150 165 4 134 149 151 166 4 135 150 152 167 4 136 151 153 168 4 137 152 154 169 4 138 153 155 170 4 139 154 156 171 4 140 155 157 172 4 141 156 158 173 4 142 157 159 174 3 143 158 175 3 144 161 176 4 145 160 162 177 4 146 161 163 178 4 147 162 164 179 4 148 163 165 180 4 149 164 166 181 4 150 165 167 182 4 151 166 168 183 4 152 167 169 184 4 153 168 170 185 4 154 169 171 186 4 155 170 172 187 4 156 171 173 188 4 157 172 174 189 4 158 173 175 190 3 159 174 191 3 160 177 192 4 161 176 178 193 4 162 177 179 194 4 163 178 180 195 4 164 179 181 196 4 165 180 182 197 4 166 181 183 198 4 167 182 184 199 4 168 183 185 200 4 169 184 186 201 4 170 185 187 202 4 171 186 188 203 4 172 187 189 204 4 173 188 190 205 4 174 189 191 206 3 175 190 207 3 176 193 208 4 177 192 194 209 4 178 193 195 210 4 179 194 196 211 4 180 195 197 212 4 181 196 198 213 4 182 197 199 214 4 183 198 200 215 4 184 199 201 216 4 185 200 202 217 4 186 201 203 218 4 187 202 204 219 4 188 203 205 220 4 189 204 206 221 4 190 205 207 222 3 191 206 223 3 192 209 224 4 193 208 210 225 4 194 209 211 226 4 195 210 212 227 4 196 211 213 228 4 197 212 214 229 4 198 213 215 230 4 199 214 216 231 4 200 215 217 232 4 201 216 218 233 4 202 217 219 234 4 203 218 220 235 4 204 219 221 236 4 205 220 222 237 4 206 221 223 238 3 207 222 239 3 208 225 240 4 209 224 226 241 4 210 225 227 242 4 211 226 228 243 4 212 227 229 244 4 213 228 230 245 4 214 229 231 246 4 215 230 232 247 4 216 231 233 248 4 217 232 234 249 4 218 233 235 250 4 219 234 236 251 4 220 235 237 252 4 221 236 238 253 4 222 237 239 254 3 223 238 255 2 224 241 3 225 240 242 3 226 241 243 3 227 242 244 3 228 243 245 3 229 244 246 3 230 245 247 3 231 246 248 3 232 247 249 3 233 248 250 3 234 249 251 3 235 250 252 3 236 251 253 3 237 252 254 3 238 253 255 2 239 254 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m16x16_b1.grf000066400000000000000000000076071514310134000257670ustar00rootroot000000000000000 256 960 1 000 2 2 17 3 1 3 18 3 2 4 19 3 3 5 20 3 4 6 21 3 5 7 22 3 6 8 23 3 7 9 24 3 8 10 25 3 9 11 26 3 10 12 27 3 11 13 28 3 12 14 29 3 13 15 30 3 14 16 31 2 15 32 3 1 18 33 4 2 17 19 34 4 3 18 20 35 4 4 19 21 36 4 5 20 22 37 4 6 21 23 38 4 7 22 24 39 4 8 23 25 40 4 9 24 26 41 4 10 25 27 42 4 11 26 28 43 4 12 27 29 44 4 13 28 30 45 4 14 29 31 46 4 15 30 32 47 3 16 31 48 3 17 34 49 4 18 33 35 50 4 19 34 36 51 4 20 35 37 52 4 21 36 38 53 4 22 37 39 54 4 23 38 40 55 4 24 39 41 56 4 25 40 42 57 4 26 41 43 58 4 27 42 44 59 4 28 43 45 60 4 29 44 46 61 4 30 45 47 62 4 31 46 48 63 3 32 47 64 3 33 50 65 4 34 49 51 66 4 35 50 52 67 4 36 51 53 68 4 37 52 54 69 4 38 53 55 70 4 39 54 56 71 4 40 55 57 72 4 41 56 58 73 4 42 57 59 74 4 43 58 60 75 4 44 59 61 76 4 45 60 62 77 4 46 61 63 78 4 47 62 64 79 3 48 63 80 3 49 66 81 4 50 65 67 82 4 51 66 68 83 4 52 67 69 84 4 53 68 70 85 4 54 69 71 86 4 55 70 72 87 4 56 71 73 88 4 57 72 74 89 4 58 73 75 90 4 59 74 76 91 4 60 75 77 92 4 61 76 78 93 4 62 77 79 94 4 63 78 80 95 3 64 79 96 3 65 82 97 4 66 81 83 98 4 67 82 84 99 4 68 83 85 100 4 69 84 86 101 4 70 85 87 102 4 71 86 88 103 4 72 87 89 104 4 73 88 90 105 4 74 89 91 106 4 75 90 92 107 4 76 91 93 108 4 77 92 94 109 4 78 93 95 110 4 79 94 96 111 3 80 95 112 3 81 98 113 4 82 97 99 114 4 83 98 100 115 4 84 99 101 116 4 85 100 102 117 4 86 101 103 118 4 87 102 104 119 4 88 103 105 120 4 89 104 106 121 4 90 105 107 122 4 91 106 108 123 4 92 107 109 124 4 93 108 110 125 4 94 109 111 126 4 95 110 112 127 3 96 111 128 3 97 114 129 4 98 113 115 130 4 99 114 116 131 4 100 115 117 132 4 101 116 118 133 4 102 117 119 134 4 103 118 120 135 4 104 119 121 136 4 105 120 122 137 4 106 121 123 138 4 107 122 124 139 4 108 123 125 140 4 109 124 126 141 4 110 125 127 142 4 111 126 128 143 3 112 127 144 3 113 130 145 4 114 129 131 146 4 115 130 132 147 4 116 131 133 148 4 117 132 134 149 4 118 133 135 150 4 119 134 136 151 4 120 135 137 152 4 121 136 138 153 4 122 137 139 154 4 123 138 140 155 4 124 139 141 156 4 125 140 142 157 4 126 141 143 158 4 127 142 144 159 3 128 143 160 3 129 146 161 4 130 145 147 162 4 131 146 148 163 4 132 147 149 164 4 133 148 150 165 4 134 149 151 166 4 135 150 152 167 4 136 151 153 168 4 137 152 154 169 4 138 153 155 170 4 139 154 156 171 4 140 155 157 172 4 141 156 158 173 4 142 157 159 174 4 143 158 160 175 3 144 159 176 3 145 162 177 4 146 161 163 178 4 147 162 164 179 4 148 163 165 180 4 149 164 166 181 4 150 165 167 182 4 151 166 168 183 4 152 167 169 184 4 153 168 170 185 4 154 169 171 186 4 155 170 172 187 4 156 171 173 188 4 157 172 174 189 4 158 173 175 190 4 159 174 176 191 3 160 175 192 3 161 178 193 4 162 177 179 194 4 163 178 180 195 4 164 179 181 196 4 165 180 182 197 4 166 181 183 198 4 167 182 184 199 4 168 183 185 200 4 169 184 186 201 4 170 185 187 202 4 171 186 188 203 4 172 187 189 204 4 173 188 190 205 4 174 189 191 206 4 175 190 192 207 3 176 191 208 3 177 194 209 4 178 193 195 210 4 179 194 196 211 4 180 195 197 212 4 181 196 198 213 4 182 197 199 214 4 183 198 200 215 4 184 199 201 216 4 185 200 202 217 4 186 201 203 218 4 187 202 204 219 4 188 203 205 220 4 189 204 206 221 4 190 205 207 222 4 191 206 208 223 3 192 207 224 3 193 210 225 4 194 209 211 226 4 195 210 212 227 4 196 211 213 228 4 197 212 214 229 4 198 213 215 230 4 199 214 216 231 4 200 215 217 232 4 201 216 218 233 4 202 217 219 234 4 203 218 220 235 4 204 219 221 236 4 205 220 222 237 4 206 221 223 238 4 207 222 224 239 3 208 223 240 3 209 226 241 4 210 225 227 242 4 211 226 228 243 4 212 227 229 244 4 213 228 230 245 4 214 229 231 246 4 215 230 232 247 4 216 231 233 248 4 217 232 234 249 4 218 233 235 250 4 219 234 236 251 4 220 235 237 252 4 221 236 238 253 4 222 237 239 254 4 223 238 240 255 3 224 239 256 2 225 242 3 226 241 243 3 227 242 244 3 228 243 245 3 229 244 246 3 230 245 247 3 231 246 248 3 232 247 249 3 233 248 250 3 234 249 251 3 235 250 252 3 236 251 253 3 237 252 254 3 238 253 255 3 239 254 256 2 240 255 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m16x16_b100000.grf000066400000000000000000000161251514310134000263420ustar00rootroot000000000000000 256 960 100000 000 2 100001 100016 3 100000 100002 100017 3 100001 100003 100018 3 100002 100004 100019 3 100003 100005 100020 3 100004 100006 100021 3 100005 100007 100022 3 100006 100008 100023 3 100007 100009 100024 3 100008 100010 100025 3 100009 100011 100026 3 100010 100012 100027 3 100011 100013 100028 3 100012 100014 100029 3 100013 100015 100030 2 100014 100031 3 100000 100017 100032 4 100001 100016 100018 100033 4 100002 100017 100019 100034 4 100003 100018 100020 100035 4 100004 100019 100021 100036 4 100005 100020 100022 100037 4 100006 100021 100023 100038 4 100007 100022 100024 100039 4 100008 100023 100025 100040 4 100009 100024 100026 100041 4 100010 100025 100027 100042 4 100011 100026 100028 100043 4 100012 100027 100029 100044 4 100013 100028 100030 100045 4 100014 100029 100031 100046 3 100015 100030 100047 3 100016 100033 100048 4 100017 100032 100034 100049 4 100018 100033 100035 100050 4 100019 100034 100036 100051 4 100020 100035 100037 100052 4 100021 100036 100038 100053 4 100022 100037 100039 100054 4 100023 100038 100040 100055 4 100024 100039 100041 100056 4 100025 100040 100042 100057 4 100026 100041 100043 100058 4 100027 100042 100044 100059 4 100028 100043 100045 100060 4 100029 100044 100046 100061 4 100030 100045 100047 100062 3 100031 100046 100063 3 100032 100049 100064 4 100033 100048 100050 100065 4 100034 100049 100051 100066 4 100035 100050 100052 100067 4 100036 100051 100053 100068 4 100037 100052 100054 100069 4 100038 100053 100055 100070 4 100039 100054 100056 100071 4 100040 100055 100057 100072 4 100041 100056 100058 100073 4 100042 100057 100059 100074 4 100043 100058 100060 100075 4 100044 100059 100061 100076 4 100045 100060 100062 100077 4 100046 100061 100063 100078 3 100047 100062 100079 3 100048 100065 100080 4 100049 100064 100066 100081 4 100050 100065 100067 100082 4 100051 100066 100068 100083 4 100052 100067 100069 100084 4 100053 100068 100070 100085 4 100054 100069 100071 100086 4 100055 100070 100072 100087 4 100056 100071 100073 100088 4 100057 100072 100074 100089 4 100058 100073 100075 100090 4 100059 100074 100076 100091 4 100060 100075 100077 100092 4 100061 100076 100078 100093 4 100062 100077 100079 100094 3 100063 100078 100095 3 100064 100081 100096 4 100065 100080 100082 100097 4 100066 100081 100083 100098 4 100067 100082 100084 100099 4 100068 100083 100085 100100 4 100069 100084 100086 100101 4 100070 100085 100087 100102 4 100071 100086 100088 100103 4 100072 100087 100089 100104 4 100073 100088 100090 100105 4 100074 100089 100091 100106 4 100075 100090 100092 100107 4 100076 100091 100093 100108 4 100077 100092 100094 100109 4 100078 100093 100095 100110 3 100079 100094 100111 3 100080 100097 100112 4 100081 100096 100098 100113 4 100082 100097 100099 100114 4 100083 100098 100100 100115 4 100084 100099 100101 100116 4 100085 100100 100102 100117 4 100086 100101 100103 100118 4 100087 100102 100104 100119 4 100088 100103 100105 100120 4 100089 100104 100106 100121 4 100090 100105 100107 100122 4 100091 100106 100108 100123 4 100092 100107 100109 100124 4 100093 100108 100110 100125 4 100094 100109 100111 100126 3 100095 100110 100127 3 100096 100113 100128 4 100097 100112 100114 100129 4 100098 100113 100115 100130 4 100099 100114 100116 100131 4 100100 100115 100117 100132 4 100101 100116 100118 100133 4 100102 100117 100119 100134 4 100103 100118 100120 100135 4 100104 100119 100121 100136 4 100105 100120 100122 100137 4 100106 100121 100123 100138 4 100107 100122 100124 100139 4 100108 100123 100125 100140 4 100109 100124 100126 100141 4 100110 100125 100127 100142 3 100111 100126 100143 3 100112 100129 100144 4 100113 100128 100130 100145 4 100114 100129 100131 100146 4 100115 100130 100132 100147 4 100116 100131 100133 100148 4 100117 100132 100134 100149 4 100118 100133 100135 100150 4 100119 100134 100136 100151 4 100120 100135 100137 100152 4 100121 100136 100138 100153 4 100122 100137 100139 100154 4 100123 100138 100140 100155 4 100124 100139 100141 100156 4 100125 100140 100142 100157 4 100126 100141 100143 100158 3 100127 100142 100159 3 100128 100145 100160 4 100129 100144 100146 100161 4 100130 100145 100147 100162 4 100131 100146 100148 100163 4 100132 100147 100149 100164 4 100133 100148 100150 100165 4 100134 100149 100151 100166 4 100135 100150 100152 100167 4 100136 100151 100153 100168 4 100137 100152 100154 100169 4 100138 100153 100155 100170 4 100139 100154 100156 100171 4 100140 100155 100157 100172 4 100141 100156 100158 100173 4 100142 100157 100159 100174 3 100143 100158 100175 3 100144 100161 100176 4 100145 100160 100162 100177 4 100146 100161 100163 100178 4 100147 100162 100164 100179 4 100148 100163 100165 100180 4 100149 100164 100166 100181 4 100150 100165 100167 100182 4 100151 100166 100168 100183 4 100152 100167 100169 100184 4 100153 100168 100170 100185 4 100154 100169 100171 100186 4 100155 100170 100172 100187 4 100156 100171 100173 100188 4 100157 100172 100174 100189 4 100158 100173 100175 100190 3 100159 100174 100191 3 100160 100177 100192 4 100161 100176 100178 100193 4 100162 100177 100179 100194 4 100163 100178 100180 100195 4 100164 100179 100181 100196 4 100165 100180 100182 100197 4 100166 100181 100183 100198 4 100167 100182 100184 100199 4 100168 100183 100185 100200 4 100169 100184 100186 100201 4 100170 100185 100187 100202 4 100171 100186 100188 100203 4 100172 100187 100189 100204 4 100173 100188 100190 100205 4 100174 100189 100191 100206 3 100175 100190 100207 3 100176 100193 100208 4 100177 100192 100194 100209 4 100178 100193 100195 100210 4 100179 100194 100196 100211 4 100180 100195 100197 100212 4 100181 100196 100198 100213 4 100182 100197 100199 100214 4 100183 100198 100200 100215 4 100184 100199 100201 100216 4 100185 100200 100202 100217 4 100186 100201 100203 100218 4 100187 100202 100204 100219 4 100188 100203 100205 100220 4 100189 100204 100206 100221 4 100190 100205 100207 100222 3 100191 100206 100223 3 100192 100209 100224 4 100193 100208 100210 100225 4 100194 100209 100211 100226 4 100195 100210 100212 100227 4 100196 100211 100213 100228 4 100197 100212 100214 100229 4 100198 100213 100215 100230 4 100199 100214 100216 100231 4 100200 100215 100217 100232 4 100201 100216 100218 100233 4 100202 100217 100219 100234 4 100203 100218 100220 100235 4 100204 100219 100221 100236 4 100205 100220 100222 100237 4 100206 100221 100223 100238 3 100207 100222 100239 3 100208 100225 100240 4 100209 100224 100226 100241 4 100210 100225 100227 100242 4 100211 100226 100228 100243 4 100212 100227 100229 100244 4 100213 100228 100230 100245 4 100214 100229 100231 100246 4 100215 100230 100232 100247 4 100216 100231 100233 100248 4 100217 100232 100234 100249 4 100218 100233 100235 100250 4 100219 100234 100236 100251 4 100220 100235 100237 100252 4 100221 100236 100238 100253 4 100222 100237 100239 100254 3 100223 100238 100255 2 100224 100241 3 100225 100240 100242 3 100226 100241 100243 3 100227 100242 100244 3 100228 100243 100245 3 100229 100244 100246 3 100230 100245 100247 3 100231 100246 100248 3 100232 100247 100249 3 100233 100248 100250 3 100234 100249 100251 3 100235 100250 100252 3 100236 100251 100253 3 100237 100252 100254 3 100238 100253 100255 2 100239 100254 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m16x16_b100000_v.grf000066400000000000000000000171261514310134000266710ustar00rootroot000000000000000 256 960 100000 001 1 2 100001 100016 2 3 100000 100002 100017 1 3 100001 100003 100018 3 3 100002 100004 100019 3 3 100003 100005 100020 1 3 100004 100006 100021 2 3 100005 100007 100022 1 3 100006 100008 100023 1 3 100007 100009 100024 1 3 100008 100010 100025 1 3 100009 100011 100026 1 3 100010 100012 100027 2 3 100011 100013 100028 1 3 100012 100014 100029 1 3 100013 100015 100030 4 2 100014 100031 1 3 100000 100017 100032 1 4 100001 100016 100018 100033 1 4 100002 100017 100019 100034 1 4 100003 100018 100020 100035 2 4 100004 100019 100021 100036 1 4 100005 100020 100022 100037 3 4 100006 100021 100023 100038 3 4 100007 100022 100024 100039 1 4 100008 100023 100025 100040 1 4 100009 100024 100026 100041 2 4 100010 100025 100027 100042 1 4 100011 100026 100028 100043 3 4 100012 100027 100029 100044 1 4 100013 100028 100030 100045 1 4 100014 100029 100031 100046 2 3 100015 100030 100047 1 3 100016 100033 100048 3 4 100017 100032 100034 100049 4 4 100018 100033 100035 100050 3 4 100019 100034 100036 100051 2 4 100020 100035 100037 100052 1 4 100021 100036 100038 100053 2 4 100022 100037 100039 100054 1 4 100023 100038 100040 100055 4 4 100024 100039 100041 100056 4 4 100025 100040 100042 100057 1 4 100026 100041 100043 100058 1 4 100027 100042 100044 100059 2 4 100028 100043 100045 100060 1 4 100029 100044 100046 100061 1 4 100030 100045 100047 100062 1 3 100031 100046 100063 3 3 100032 100049 100064 1 4 100033 100048 100050 100065 3 4 100034 100049 100051 100066 1 4 100035 100050 100052 100067 4 4 100036 100051 100053 100068 1 4 100037 100052 100054 100069 4 4 100038 100053 100055 100070 1 4 100039 100054 100056 100071 1 4 100040 100055 100057 100072 2 4 100041 100056 100058 100073 2 4 100042 100057 100059 100074 2 4 100043 100058 100060 100075 3 4 100044 100059 100061 100076 1 4 100045 100060 100062 100077 3 4 100046 100061 100063 100078 1 3 100047 100062 100079 1 3 100048 100065 100080 3 4 100049 100064 100066 100081 1 4 100050 100065 100067 100082 1 4 100051 100066 100068 100083 1 4 100052 100067 100069 100084 1 4 100053 100068 100070 100085 4 4 100054 100069 100071 100086 1 4 100055 100070 100072 100087 4 4 100056 100071 100073 100088 1 4 100057 100072 100074 100089 1 4 100058 100073 100075 100090 4 4 100059 100074 100076 100091 1 4 100060 100075 100077 100092 2 4 100061 100076 100078 100093 1 4 100062 100077 100079 100094 1 3 100063 100078 100095 1 3 100064 100081 100096 2 4 100065 100080 100082 100097 1 4 100066 100081 100083 100098 3 4 100067 100082 100084 100099 1 4 100068 100083 100085 100100 4 4 100069 100084 100086 100101 4 4 100070 100085 100087 100102 1 4 100071 100086 100088 100103 1 4 100072 100087 100089 100104 1 4 100073 100088 100090 100105 2 4 100074 100089 100091 100106 1 4 100075 100090 100092 100107 3 4 100076 100091 100093 100108 2 4 100077 100092 100094 100109 1 4 100078 100093 100095 100110 1 3 100079 100094 100111 3 3 100080 100097 100112 1 4 100081 100096 100098 100113 2 4 100082 100097 100099 100114 2 4 100083 100098 100100 100115 1 4 100084 100099 100101 100116 1 4 100085 100100 100102 100117 3 4 100086 100101 100103 100118 3 4 100087 100102 100104 100119 2 4 100088 100103 100105 100120 4 4 100089 100104 100106 100121 3 4 100090 100105 100107 100122 2 4 100091 100106 100108 100123 3 4 100092 100107 100109 100124 1 4 100093 100108 100110 100125 1 4 100094 100109 100111 100126 1 3 100095 100110 100127 1 3 100096 100113 100128 3 4 100097 100112 100114 100129 2 4 100098 100113 100115 100130 1 4 100099 100114 100116 100131 1 4 100100 100115 100117 100132 1 4 100101 100116 100118 100133 1 4 100102 100117 100119 100134 2 4 100103 100118 100120 100135 2 4 100104 100119 100121 100136 2 4 100105 100120 100122 100137 1 4 100106 100121 100123 100138 1 4 100107 100122 100124 100139 1 4 100108 100123 100125 100140 1 4 100109 100124 100126 100141 3 4 100110 100125 100127 100142 3 3 100111 100126 100143 3 3 100112 100129 100144 1 4 100113 100128 100130 100145 1 4 100114 100129 100131 100146 2 4 100115 100130 100132 100147 1 4 100116 100131 100133 100148 4 4 100117 100132 100134 100149 1 4 100118 100133 100135 100150 1 4 100119 100134 100136 100151 1 4 100120 100135 100137 100152 2 4 100121 100136 100138 100153 2 4 100122 100137 100139 100154 1 4 100123 100138 100140 100155 1 4 100124 100139 100141 100156 3 4 100125 100140 100142 100157 3 4 100126 100141 100143 100158 3 3 100127 100142 100159 1 3 100128 100145 100160 1 4 100129 100144 100146 100161 1 4 100130 100145 100147 100162 1 4 100131 100146 100148 100163 3 4 100132 100147 100149 100164 2 4 100133 100148 100150 100165 1 4 100134 100149 100151 100166 1 4 100135 100150 100152 100167 3 4 100136 100151 100153 100168 3 4 100137 100152 100154 100169 1 4 100138 100153 100155 100170 1 4 100139 100154 100156 100171 4 4 100140 100155 100157 100172 1 4 100141 100156 100158 100173 1 4 100142 100157 100159 100174 4 3 100143 100158 100175 2 3 100144 100161 100176 3 4 100145 100160 100162 100177 1 4 100146 100161 100163 100178 1 4 100147 100162 100164 100179 2 4 100148 100163 100165 100180 3 4 100149 100164 100166 100181 1 4 100150 100165 100167 100182 1 4 100151 100166 100168 100183 4 4 100152 100167 100169 100184 1 4 100153 100168 100170 100185 3 4 100154 100169 100171 100186 2 4 100155 100170 100172 100187 1 4 100156 100171 100173 100188 1 4 100157 100172 100174 100189 1 4 100158 100173 100175 100190 1 3 100159 100174 100191 1 3 100160 100177 100192 1 4 100161 100176 100178 100193 2 4 100162 100177 100179 100194 2 4 100163 100178 100180 100195 1 4 100164 100179 100181 100196 1 4 100165 100180 100182 100197 1 4 100166 100181 100183 100198 3 4 100167 100182 100184 100199 1 4 100168 100183 100185 100200 4 4 100169 100184 100186 100201 2 4 100170 100185 100187 100202 1 4 100171 100186 100188 100203 1 4 100172 100187 100189 100204 3 4 100173 100188 100190 100205 2 4 100174 100189 100191 100206 1 3 100175 100190 100207 1 3 100176 100193 100208 1 4 100177 100192 100194 100209 3 4 100178 100193 100195 100210 3 4 100179 100194 100196 100211 3 4 100180 100195 100197 100212 1 4 100181 100196 100198 100213 1 4 100182 100197 100199 100214 2 4 100183 100198 100200 100215 2 4 100184 100199 100201 100216 1 4 100185 100200 100202 100217 1 4 100186 100201 100203 100218 3 4 100187 100202 100204 100219 4 4 100188 100203 100205 100220 1 4 100189 100204 100206 100221 1 4 100190 100205 100207 100222 4 3 100191 100206 100223 2 3 100192 100209 100224 1 4 100193 100208 100210 100225 1 4 100194 100209 100211 100226 1 4 100195 100210 100212 100227 1 4 100196 100211 100213 100228 3 4 100197 100212 100214 100229 3 4 100198 100213 100215 100230 1 4 100199 100214 100216 100231 1 4 100200 100215 100217 100232 1 4 100201 100216 100218 100233 1 4 100202 100217 100219 100234 1 4 100203 100218 100220 100235 1 4 100204 100219 100221 100236 3 4 100205 100220 100222 100237 1 4 100206 100221 100223 100238 1 3 100207 100222 100239 3 3 100208 100225 100240 2 4 100209 100224 100226 100241 1 4 100210 100225 100227 100242 1 4 100211 100226 100228 100243 1 4 100212 100227 100229 100244 2 4 100213 100228 100230 100245 3 4 100214 100229 100231 100246 4 4 100215 100230 100232 100247 3 4 100216 100231 100233 100248 2 4 100217 100232 100234 100249 1 4 100218 100233 100235 100250 1 4 100219 100234 100236 100251 1 4 100220 100235 100237 100252 1 4 100221 100236 100238 100253 1 4 100222 100237 100239 100254 1 3 100223 100238 100255 1 2 100224 100241 1 3 100225 100240 100242 3 3 100226 100241 100243 3 3 100227 100242 100244 1 3 100228 100243 100245 2 3 100229 100244 100246 1 3 100230 100245 100247 3 3 100231 100246 100248 3 3 100232 100247 100249 1 3 100233 100248 100250 1 3 100234 100249 100251 3 3 100235 100250 100252 1 3 100236 100251 100253 2 3 100237 100252 100254 1 3 100238 100253 100255 1 2 100239 100254 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m4x4.grf000066400000000000000000000002371514310134000252270ustar00rootroot000000000000000 16 48 0 000 2 1 4 3 0 2 5 3 1 3 6 2 2 7 3 0 5 8 4 1 4 6 9 4 2 5 7 10 3 3 6 11 3 4 9 12 4 5 8 10 13 4 6 9 11 14 3 7 10 15 2 8 13 3 9 12 14 3 10 13 15 2 11 14 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m4x4_b1.grf000066400000000000000000000002431514310134000256060ustar00rootroot000000000000000 16 48 1 000 2 2 5 3 1 3 6 3 2 4 7 2 3 8 3 1 6 9 4 2 5 7 10 4 3 6 8 11 3 4 7 12 3 5 10 13 4 6 9 11 14 4 7 10 12 15 3 8 11 16 2 9 14 3 10 13 15 3 11 14 16 2 12 15 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m4x4_b100000.grf000066400000000000000000000006031514310134000261660ustar00rootroot000000000000000 16 48 100000 000 2 100001 100004 3 100000 100002 100005 3 100001 100003 100006 2 100002 100007 3 100000 100005 100008 4 100001 100004 100006 100009 4 100002 100005 100007 100010 3 100003 100006 100011 3 100004 100009 100012 4 100005 100008 100010 100013 4 100006 100009 100011 100014 3 100007 100010 100015 2 100008 100013 3 100009 100012 100014 3 100010 100013 100015 2 100011 100014 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m4x4_b1_elv.grf000066400000000000000000000005131514310134000264540ustar00rootroot000000000000000 16 48 1 111 4 1 2 7 6 1 3 6 2 3 7 4 3 13 2 12 13 2 3 3 6 1 25 3 17 25 1 2 1 13 2 0 3 3 3 1 4 3 12 2 5 12 2 4 2 6 3 3 2 17 1 14 17 1 4 3 13 2 12 1 0 3 2 0 1 3 2 25 1 17 4 9 5 1 3 2 3 1 14 1 7 14 2 4 1 12 1 5 6 2 1 11 2 3 4 3 17 6 14 1 9 3 1 9 2 3 4 0 1 2 1 19 7 1 2 1 5 7 11 11 3 3 1 14 7 7 1 1 1 1 3 3 2 1 11 2 19 19 2 2 1 9 2 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m4x4_b1_ev.grf000066400000000000000000000004751514310134000263070ustar00rootroot000000000000000 16 48 1 011 1 2 7 2 1 5 2 3 7 1 3 3 2 6 2 3 3 2 1 4 3 7 1 2 1 3 2 8 3 3 1 1 3 6 2 9 2 4 2 2 3 5 2 7 1 10 1 4 3 3 2 6 1 8 3 11 1 3 2 4 1 7 4 12 1 3 2 5 1 10 1 13 2 4 1 6 1 9 6 11 1 14 3 4 3 7 6 10 1 12 3 15 2 3 4 8 1 11 1 16 1 2 1 9 7 14 3 3 1 10 7 13 1 15 1 3 3 11 1 14 2 16 2 2 1 12 2 15 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/m4x4_vertlist.txt000066400000000000000000000000151514310134000272160ustar00rootroot000000000000005 5 3 12 7 2 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/nocoarsen.grf000066400000000000000000012747161514310134000264420ustar00rootroot000000000000000 12111 66852 1 000 4 2 3 3334 7112 7 1 3 4 6 3334 5667 7113 5 1 2 6 9 7114 9 2 6 8 12 3336 5667 7112 7115 9612 8 10 15 3335 5669 7112 7116 9112 11112 7 2 3 4 9 12 18 7117 5 14 21 3338 5668 7118 11 4 12 16 24 3336 5001 5005 5670 7113 7119 9613 5 3 6 18 27 7120 12 5 15 20 30 3340 5002 5006 5669 7113 7121 9113 11113 4 22 33 3337 7122 9 4 6 8 18 24 36 7114 7123 9614 4 26 39 3342 7124 7 7 21 28 42 3338 5672 7125 8 5 10 30 45 7114 7126 9114 11114 11 8 24 32 48 3344 5003 5009 5670 7115 7127 9615 4 34 51 3339 7128 7 6 9 12 27 36 54 7129 4 38 57 3346 7130 14 10 30 40 60 3340 5004 5012 5673 7115 7116 7131 9115 9616 11115 5 7 14 42 63 7132 6 11 33 44 66 3348 7133 4 46 69 3341 7134 11 8 12 16 36 48 72 5005 5015 7117 7135 9617 8 50 75 3350 5671 7116 7136 9116 11116 7 13 39 52 78 3342 5675 7137 5 9 18 54 81 7138 9 14 42 56 84 3352 5672 7118 7139 9618 4 58 87 3343 7140 12 10 15 20 45 60 90 5006 5018 7117 7141 9117 11117 4 62 93 3354 7142 11 16 48 64 96 3344 5007 5019 5678 7119 7143 9619 5 11 22 66 99 7144 6 17 51 68 102 3356 7145 8 70 105 3345 5679 7118 7146 9118 11118 9 12 18 24 54 72 108 7120 7147 9620 4 74 111 3358 7148 7 19 57 76 114 3346 5680 7149 5 13 26 78 117 7150 14 20 60 80 120 3360 5008 5024 5673 7119 7121 7151 9119 9621 11119 4 82 123 3347 7152 7 14 21 28 63 84 126 7153 5 86 129 3362 5674 7154 9 22 66 88 132 3348 5683 7122 7155 9622 8 15 30 90 135 7120 7156 9120 11120 6 23 69 92 138 3364 7157 4 94 141 3349 7158 11 16 24 32 72 96 144 5009 5029 7123 7159 9623 4 98 147 3366 7160 12 25 75 100 150 3350 5010 5030 5685 7121 7161 9121 11121 5 17 34 102 153 7162 9 26 78 104 156 3368 5675 7124 7163 9624 4 106 159 3351 7164 7 18 27 36 81 108 162 7165 8 110 165 3370 5676 7122 7166 9122 11122 11 28 84 112 168 3352 5011 5033 5686 7125 7167 9625 5 19 38 114 171 7168 6 29 87 116 174 3372 7169 4 118 177 3353 7170 14 20 30 40 90 120 180 5012 5036 7123 7126 7171 9123 9626 11123 5 122 183 3374 5677 7172 7 31 93 124 186 3354 5688 7173 5 21 42 126 189 7174 11 32 96 128 192 3376 5013 5039 5678 7127 7175 9627 8 130 195 3355 5689 7124 7176 9124 11124 7 22 33 44 99 132 198 7177 4 134 201 3378 7178 9 34 102 136 204 3356 5691 7128 7179 9628 5 23 46 138 207 7180 12 35 105 140 210 3380 5014 5042 5679 7125 7181 9125 11125 4 142 213 3357 7182 11 24 36 48 108 144 216 5015 5043 7129 7183 9629 4 146 219 3382 7184 7 37 111 148 222 3358 5693 7185 8 25 50 150 225 7126 7186 9126 11126 9 38 114 152 228 3384 5680 7130 7187 9630 4 154 231 3359 7188 7 26 39 52 117 156 234 7189 5 158 237 3386 5681 7190 14 40 120 160 240 3360 5016 5048 5695 7127 7131 7191 9127 9631 11127 5 27 54 162 243 7192 6 41 123 164 246 3388 7193 4 166 249 3361 7194 9 28 42 56 126 168 252 7132 7195 9632 8 170 255 3390 5682 7128 7196 9128 11128 7 43 129 172 258 3362 5697 7197 5 29 58 174 261 7198 11 44 132 176 264 3392 5017 5053 5683 7133 7199 9633 4 178 267 3363 7200 12 30 45 60 135 180 270 5018 5054 7129 7201 9129 11129 4 182 273 3394 7202 9 46 138 184 276 3364 5699 7134 7203 9634 5 31 62 186 279 7204 6 47 141 188 282 3396 7205 8 190 285 3365 5701 7130 7206 9130 11130 11 32 48 64 144 192 288 5019 5057 7135 7207 9635 5 194 291 3398 5684 7208 7 49 147 196 294 3366 5702 7209 5 33 66 198 297 7210 14 50 150 200 300 3400 5020 5060 5685 7131 7136 7211 9131 9636 11131 4 202 303 3367 7212 7 34 51 68 153 204 306 7213 4 206 309 3402 7214 11 52 156 208 312 3368 5021 5063 5704 7137 7215 9637 8 35 70 210 315 7132 7216 9132 11132 6 53 159 212 318 3404 7217 4 214 321 3369 7218 9 36 54 72 162 216 324 7138 7219 9638 4 218 327 3406 7220 12 55 165 220 330 3370 5022 5066 5705 7133 7221 9133 11133 5 37 74 222 333 7222 11 56 168 224 336 3408 5023 5067 5686 7139 7223 9639 4 226 339 3371 7224 7 38 57 76 171 228 342 7225 8 230 345 3410 5687 7134 7226 9134 11134 9 58 174 232 348 3372 5707 7140 7227 9640 5 39 78 234 351 7228 6 59 177 236 354 3412 7229 4 238 357 3373 7230 14 40 60 80 180 240 360 5024 5072 7135 7141 7231 9135 9641 11135 4 242 363 3414 7232 7 61 183 244 366 3374 5710 7233 5 41 82 246 369 7234 9 62 186 248 372 3416 5688 7142 7235 9642 8 250 375 3375 5711 7136 7236 9136 11136 7 42 63 84 189 252 378 7237 4 254 381 3418 7238 11 64 192 256 384 3376 5025 5077 5712 7143 7239 9643 5 43 86 258 387 7240 12 65 195 260 390 3420 5026 5078 5689 7137 7241 9137 11137 4 262 393 3377 7242 9 44 66 88 198 264 396 7144 7243 9644 5 266 399 3422 5690 7244 7 67 201 268 402 3378 5715 7245 8 45 90 270 405 7138 7246 9138 11138 11 68 204 272 408 3424 5027 5081 5691 7145 7247 9645 4 274 411 3379 7248 7 46 69 92 207 276 414 7249 4 278 417 3426 7250 14 70 210 280 420 3380 5028 5084 5717 7139 7146 7251 9139 9646 11139 5 47 94 282 423 7252 6 71 213 284 426 3428 7253 4 286 429 3381 7254 11 48 72 96 216 288 432 5029 5087 7147 7255 9647 8 290 435 3430 5692 7140 7256 9140 11140 7 73 219 292 438 3382 5718 7257 5 49 98 294 441 7258 9 74 222 296 444 3432 5693 7148 7259 9648 4 298 447 3383 7260 12 50 75 100 225 300 450 5030 5090 7141 7261 9141 11141 5 302 453 3434 5694 7262 11 76 228 304 456 3384 5031 5091 5720 7149 7263 9649 5 51 102 306 459 7264 6 77 231 308 462 3436 7265 8 310 465 3385 5721 7142 7266 9142 11142 9 52 78 104 234 312 468 7150 7267 9650 4 314 471 3438 7268 7 79 237 316 474 3386 5723 7269 5 53 106 318 477 7270 14 80 240 320 480 3440 5032 5096 5695 7143 7151 7271 9143 9651 11143 4 322 483 3387 7272 7 54 81 108 243 324 486 7273 4 326 489 3442 7274 9 82 246 328 492 3388 5725 7152 7275 9652 8 55 110 330 495 7144 7276 9144 11144 6 83 249 332 498 3444 7277 4 334 501 3389 7278 11 56 84 112 252 336 504 5033 5101 7153 7279 9653 5 338 507 3446 5696 7280 12 85 255 340 510 3390 5034 5102 5727 7145 7281 9145 11145 5 57 114 342 513 7282 9 86 258 344 516 3448 5697 7154 7283 9654 4 346 519 3391 7284 7 58 87 116 261 348 522 7285 8 350 525 3450 5698 7146 7286 9146 11146 11 88 264 352 528 3392 5035 5105 5729 7155 7287 9655 5 59 118 354 531 7288 6 89 267 356 534 3452 7289 4 358 537 3393 7290 14 60 90 120 270 360 540 5036 5108 7147 7156 7291 9147 9656 11147 4 362 543 3454 7292 7 91 273 364 546 3394 5731 7293 5 61 122 366 549 7294 11 92 276 368 552 3456 5037 5111 5699 7157 7295 9657 8 370 555 3395 5733 7148 7296 9148 11148 7 62 93 124 279 372 558 7297 5 374 561 3458 5700 7298 9 94 282 376 564 3396 5734 7158 7299 9658 5 63 126 378 567 7300 12 95 285 380 570 3460 5038 5114 5701 7149 7301 9149 11149 4 382 573 3397 7302 11 64 96 128 288 384 576 5039 5115 7159 7303 9659 4 386 579 3462 7304 7 97 291 388 582 3398 5736 7305 8 65 130 390 585 7150 7306 9150 11150 9 98 294 392 588 3464 5702 7160 7307 9660 4 394 591 3399 7308 7 66 99 132 297 396 594 7309 4 398 597 3466 7310 14 100 300 400 600 3400 5040 5120 5737 7151 7161 7311 9151 9661 11151 5 67 134 402 603 7312 6 101 303 404 606 3468 7313 4 406 609 3401 7314 9 68 102 136 306 408 612 7162 7315 9662 8 410 615 3470 5703 7152 7316 9152 11152 7 103 309 412 618 3402 5739 7317 5 69 138 414 621 7318 11 104 312 416 624 3472 5041 5125 5704 7163 7319 9663 4 418 627 3403 7320 12 70 105 140 315 420 630 5042 5126 7153 7321 9153 11153 4 422 633 3474 7322 9 106 318 424 636 3404 5742 7164 7323 9664 5 71 142 426 639 7324 6 107 321 428 642 3476 7325 8 430 645 3405 5743 7154 7326 9154 11154 11 72 108 144 324 432 648 5043 5129 7165 7327 9665 4 434 651 3478 7328 7 109 327 436 654 3406 5744 7329 5 73 146 438 657 7330 14 110 330 440 660 3480 5044 5132 5705 7155 7166 7331 9155 9666 11155 4 442 663 3407 7332 7 74 111 148 333 444 666 7333 5 446 669 3482 5706 7334 11 112 336 448 672 3408 5045 5135 5747 7167 7335 9667 8 75 150 450 675 7156 7336 9156 11156 6 113 339 452 678 3484 7337 4 454 681 3409 7338 9 76 114 152 342 456 684 7168 7339 9668 4 458 687 3486 7340 12 115 345 460 690 3410 5046 5138 5749 7157 7341 9157 11157 5 77 154 462 693 7342 11 116 348 464 696 3488 5047 5139 5707 7169 7343 9669 4 466 699 3411 7344 7 78 117 156 351 468 702 7345 8 470 705 3490 5708 7158 7346 9158 11158 9 118 354 472 708 3412 5750 7170 7347 9670 5 79 158 474 711 7348 6 119 357 476 714 3492 7349 4 478 717 3413 7350 14 80 120 160 360 480 720 5048 5144 7159 7171 7351 9159 9671 11159 5 482 723 3494 5709 7352 7 121 363 484 726 3414 5752 7353 5 81 162 486 729 7354 9 122 366 488 732 3496 5710 7172 7355 9672 8 490 735 3415 5753 7160 7356 9160 11160 7 82 123 164 369 492 738 7357 4 494 741 3498 7358 11 124 372 496 744 3416 5049 5149 5755 7173 7359 9673 5 83 166 498 747 7360 12 125 375 500 750 3500 5050 5150 5711 7161 7361 9161 11161 4 502 753 3417 7362 9 84 126 168 378 504 756 7174 7363 9674 4 506 759 3502 7364 7 127 381 508 762 3418 5757 7365 8 85 170 510 765 7162 7366 9162 11162 11 128 384 512 768 3504 5051 5153 5712 7175 7367 9675 4 514 771 3419 7368 7 86 129 172 387 516 774 7369 5 518 777 3506 5713 7370 14 130 390 520 780 3420 5052 5156 5759 7163 7176 7371 9163 9676 11163 5 87 174 522 783 7372 6 131 393 524 786 3508 7373 4 526 789 3421 7374 11 88 132 176 396 528 792 5053 5159 7177 7375 9677 8 530 795 3510 5714 7164 7376 9164 11164 7 133 399 532 798 3422 5761 7377 5 89 178 534 801 7378 9 134 402 536 804 3512 5715 7178 7379 9678 4 538 807 3423 7380 12 90 135 180 405 540 810 5054 5162 7165 7381 9165 11165 4 542 813 3514 7382 11 136 408 544 816 3424 5055 5163 5763 7179 7383 9679 5 91 182 546 819 7384 6 137 411 548 822 3516 7385 8 550 825 3425 5765 7166 7386 9166 11166 9 92 138 184 414 552 828 7180 7387 9680 5 554 831 3518 5716 7388 7 139 417 556 834 3426 5766 7389 5 93 186 558 837 7390 14 140 420 560 840 3520 5056 5168 5717 7167 7181 7391 9167 9681 11167 4 562 843 3427 7392 7 94 141 188 423 564 846 7393 4 566 849 3522 7394 9 142 426 568 852 3428 5768 7182 7395 9682 8 95 190 570 855 7168 7396 9168 11168 6 143 429 572 858 3524 7397 4 574 861 3429 7398 11 96 144 192 432 576 864 5057 5173 7183 7399 9683 4 578 867 3526 7400 12 145 435 580 870 3430 5058 5174 5769 7169 7401 9169 11169 5 97 194 582 873 7402 9 146 438 584 876 3528 5718 7184 7403 9684 4 586 879 3431 7404 7 98 147 196 441 588 882 7405 8 590 885 3530 5719 7170 7406 9170 11170 11 148 444 592 888 3432 5059 5177 5771 7185 7407 9685 5 99 198 594 891 7408 6 149 447 596 894 3532 7409 4 598 897 3433 7410 14 100 150 200 450 600 900 5060 5180 7171 7186 7411 9171 9686 11171 4 602 903 3534 7412 7 151 453 604 906 3434 5774 7413 5 101 202 606 909 7414 11 152 456 608 912 3536 5061 5183 5720 7187 7415 9687 8 610 915 3435 5775 7172 7416 9172 11172 7 102 153 204 459 612 918 7417 4 614 921 3538 7418 9 154 462 616 924 3436 5776 7188 7419 9688 5 103 206 618 927 7420 12 155 465 620 930 3540 5062 5186 5721 7173 7421 9173 11173 4 622 933 3437 7422 11 104 156 208 468 624 936 5063 5187 7189 7423 9689 5 626 939 3542 5722 7424 7 157 471 628 942 3438 5779 7425 8 105 210 630 945 7174 7426 9174 11174 9 158 474 632 948 3544 5723 7190 7427 9690 4 634 951 3439 7428 7 106 159 212 477 636 954 7429 4 638 957 3546 7430 14 160 480 640 960 3440 5064 5192 5781 7175 7191 7431 9175 9691 11175 5 107 214 642 963 7432 6 161 483 644 966 3548 7433 4 646 969 3441 7434 9 108 162 216 486 648 972 7192 7435 9692 8 650 975 3550 5724 7176 7436 9176 11176 7 163 489 652 978 3442 5782 7437 5 109 218 654 981 7438 11 164 492 656 984 3552 5065 5197 5725 7193 7439 9693 4 658 987 3443 7440 12 110 165 220 495 660 990 5066 5198 7177 7441 9177 11177 5 662 993 3554 5726 7442 9 166 498 664 996 3444 5784 7194 7443 9694 5 111 222 666 999 7444 6 167 501 668 1002 3556 7445 8 670 1005 3445 5785 7178 7446 9178 11178 11 112 168 224 504 672 1008 5067 5201 7195 7447 9695 4 674 1011 3558 7448 7 169 507 676 1014 3446 5787 7449 5 113 226 678 1017 7450 14 170 510 680 1020 3560 5068 5204 5727 7179 7196 7451 9179 9696 11179 4 682 1023 3447 7452 7 114 171 228 513 684 1026 7453 4 686 1029 3562 7454 11 172 516 688 1032 3448 5069 5207 5789 7197 7455 9697 8 115 230 690 1035 7180 7456 9180 11180 6 173 519 692 1038 3564 7457 4 694 1041 3449 7458 9 116 174 232 522 696 1044 7198 7459 9698 5 698 1047 3566 5728 7460 12 175 525 700 1050 3450 5070 5210 5791 7181 7461 9181 11181 5 117 234 702 1053 7462 11 176 528 704 1056 3568 5071 5211 5729 7199 7463 9699 4 706 1059 3451 7464 7 118 177 236 531 708 1062 7465 8 710 1065 3570 5730 7182 7466 9182 11182 9 178 534 712 1068 3452 5793 7200 7467 9700 5 119 238 714 1071 7468 6 179 537 716 1074 3572 7469 4 718 1077 3453 7470 14 120 180 240 540 720 1080 5072 5216 7183 7201 7471 9183 9701 11183 4 722 1083 3574 7472 7 181 543 724 1086 3454 5795 7473 5 121 242 726 1089 7474 9 182 546 728 1092 3576 5731 7202 7475 9702 8 730 1095 3455 5797 7184 7476 9184 11184 7 122 183 244 549 732 1098 7477 5 734 1101 3578 5732 7478 11 184 552 736 1104 3456 5073 5221 5798 7203 7479 9703 5 123 246 738 1107 7480 12 185 555 740 1110 3580 5074 5222 5733 7185 7481 9185 11185 4 742 1113 3457 7482 9 124 186 248 558 744 1116 7204 7483 9704 4 746 1119 3582 7484 7 187 561 748 1122 3458 5800 7485 8 125 250 750 1125 7186 7486 9186 11186 11 188 564 752 1128 3584 5075 5225 5734 7205 7487 9705 4 754 1131 3459 7488 7 126 189 252 567 756 1134 7489 4 758 1137 3586 7490 14 190 570 760 1140 3460 5076 5228 5801 7187 7206 7491 9187 9706 11187 5 127 254 762 1143 7492 6 191 573 764 1146 3588 7493 4 766 1149 3461 7494 11 128 192 256 576 768 1152 5077 5231 7207 7495 9707 8 770 1155 3590 5735 7188 7496 9188 11188 7 193 579 772 1158 3462 5803 7497 5 129 258 774 1161 7498 9 194 582 776 1164 3592 5736 7208 7499 9708 4 778 1167 3463 7500 12 130 195 260 585 780 1170 5078 5234 7189 7501 9189 11189 4 782 1173 3594 7502 11 196 588 784 1176 3464 5079 5235 5806 7209 7503 9709 5 131 262 786 1179 7504 6 197 591 788 1182 3596 7505 8 790 1185 3465 5807 7190 7506 9190 11190 9 132 198 264 594 792 1188 7210 7507 9710 4 794 1191 3598 7508 7 199 597 796 1194 3466 5808 7509 5 133 266 798 1197 7510 14 200 600 800 1200 3600 5080 5240 5737 7191 7211 7511 9191 9711 11191 4 802 1203 3467 7512 7 134 201 268 603 804 1206 7513 5 806 1209 3602 5738 7514 9 202 606 808 1212 3468 5811 7212 7515 9712 8 135 270 810 1215 7192 7516 9192 11192 6 203 609 812 1218 3604 7517 4 814 1221 3469 7518 11 136 204 272 612 816 1224 5081 5245 7213 7519 9713 4 818 1227 3606 7520 12 205 615 820 1230 3470 5082 5246 5813 7193 7521 9193 11193 5 137 274 822 1233 7522 9 206 618 824 1236 3608 5739 7214 7523 9714 4 826 1239 3471 7524 7 138 207 276 621 828 1242 7525 8 830 1245 3610 5740 7194 7526 9194 11194 11 208 624 832 1248 3472 5083 5249 5814 7215 7527 9715 5 139 278 834 1251 7528 6 209 627 836 1254 3612 7529 4 838 1257 3473 7530 14 140 210 280 630 840 1260 5084 5252 7195 7216 7531 9195 9716 11195 5 842 1263 3614 5741 7532 7 211 633 844 1266 3474 5816 7533 5 141 282 846 1269 7534 11 212 636 848 1272 3616 5085 5255 5742 7217 7535 9717 8 850 1275 3475 5817 7196 7536 9196 11196 7 142 213 284 639 852 1278 7537 4 854 1281 3618 7538 9 214 642 856 1284 3476 5819 7218 7539 9718 5 143 286 858 1287 7540 12 215 645 860 1290 3620 5086 5258 5743 7197 7541 9197 11197 4 862 1293 3477 7542 11 144 216 288 648 864 1296 5087 5259 7219 7543 9719 4 866 1299 3622 7544 7 217 651 868 1302 3478 5821 7545 8 145 290 870 1305 7198 7546 9198 11198 9 218 654 872 1308 3624 5744 7220 7547 9720 4 874 1311 3479 7548 7 146 219 292 657 876 1314 7549 5 878 1317 3626 5745 7550 14 220 660 880 1320 3480 5088 5264 5823 7199 7221 7551 9199 9721 11199 5 147 294 882 1323 7552 6 221 663 884 1326 3628 7553 4 886 1329 3481 7554 9 148 222 296 666 888 1332 7222 7555 9722 8 890 1335 3630 5746 7200 7556 9200 11200 7 223 669 892 1338 3482 5825 7557 5 149 298 894 1341 7558 11 224 672 896 1344 3632 5089 5269 5747 7223 7559 9723 4 898 1347 3483 7560 12 150 225 300 675 900 1350 5090 5270 7201 7561 9201 11201 4 902 1353 3634 7562 9 226 678 904 1356 3484 5827 7224 7563 9724 5 151 302 906 1359 7564 6 227 681 908 1362 3636 7565 8 910 1365 3485 5829 7202 7566 9202 11202 11 152 228 304 684 912 1368 5091 5273 7225 7567 9725 5 914 1371 3638 5748 7568 7 229 687 916 1374 3486 5830 7569 5 153 306 918 1377 7570 14 230 690 920 1380 3640 5092 5276 5749 7203 7226 7571 9203 9726 11203 4 922 1383 3487 7572 7 154 231 308 693 924 1386 7573 4 926 1389 3642 7574 11 232 696 928 1392 3488 5093 5279 5832 7227 7575 9727 8 155 310 930 1395 7204 7576 9204 11204 6 233 699 932 1398 3644 7577 4 934 1401 3489 7578 9 156 234 312 702 936 1404 7228 7579 9728 4 938 1407 3646 7580 12 235 705 940 1410 3490 5094 5282 5833 7205 7581 9205 11205 5 157 314 942 1413 7582 11 236 708 944 1416 3648 5095 5283 5750 7229 7583 9729 4 946 1419 3491 7584 7 158 237 316 711 948 1422 7585 8 950 1425 3650 5751 7206 7586 9206 11206 9 238 714 952 1428 3492 5835 7230 7587 9730 5 159 318 954 1431 7588 6 239 717 956 1434 3652 7589 4 958 1437 3493 7590 14 160 240 320 720 960 1440 5096 5288 7207 7231 7591 9207 9731 11207 4 962 1443 3654 7592 7 241 723 964 1446 3494 5838 7593 5 161 322 966 1449 7594 9 242 726 968 1452 3656 5752 7232 7595 9732 8 970 1455 3495 5839 7208 7596 9208 11208 7 162 243 324 729 972 1458 7597 4 974 1461 3658 7598 11 244 732 976 1464 3496 5097 5293 5840 7233 7599 9733 5 163 326 978 1467 7600 12 245 735 980 1470 3660 5098 5294 5753 7209 7601 9209 11209 4 982 1473 3497 7602 9 164 246 328 738 984 1476 7234 7603 9734 5 986 1479 3662 5754 7604 7 247 741 988 1482 3498 5843 7605 8 165 330 990 1485 7210 7606 9210 11210 11 248 744 992 1488 3664 5099 5297 5755 7235 7607 9735 4 994 1491 3499 7608 7 166 249 332 747 996 1494 7609 4 998 1497 3666 7610 14 250 750 1000 1500 3500 5100 5300 5845 7211 7236 7611 9211 9736 11211 5 167 334 1002 1503 7612 6 251 753 1004 1506 3668 7613 4 1006 1509 3501 7614 11 168 252 336 756 1008 1512 5101 5303 7237 7615 9737 8 1010 1515 3670 5756 7212 7616 9212 11212 7 253 759 1012 1518 3502 5846 7617 5 169 338 1014 1521 7618 9 254 762 1016 1524 3672 5757 7238 7619 9738 4 1018 1527 3503 7620 12 170 255 340 765 1020 1530 5102 5306 7213 7621 9213 11213 5 1022 1533 3674 5758 7622 11 256 768 1024 1536 3504 5103 5307 5848 7239 7623 9739 5 171 342 1026 1539 7624 6 257 771 1028 1542 3676 7625 8 1030 1545 3505 5849 7214 7626 9214 11214 9 172 258 344 774 1032 1548 7240 7627 9740 4 1034 1551 3678 7628 7 259 777 1036 1554 3506 5851 7629 5 173 346 1038 1557 7630 14 260 780 1040 1560 3680 5104 5312 5759 7215 7241 7631 9215 9741 11215 4 1042 1563 3507 7632 7 174 261 348 783 1044 1566 7633 4 1046 1569 3682 7634 9 262 786 1048 1572 3508 5853 7242 7635 9742 8 175 350 1050 1575 7216 7636 9216 11216 6 263 789 1052 1578 3684 7637 4 1054 1581 3509 7638 11 176 264 352 792 1056 1584 5105 5317 7243 7639 9743 5 1058 1587 3686 5760 7640 12 265 795 1060 1590 3510 5106 5318 5855 7217 7641 9217 11217 5 177 354 1062 1593 7642 9 266 798 1064 1596 3688 5761 7244 7643 9744 4 1066 1599 3511 7644 7 178 267 356 801 1068 1602 7645 8 1070 1605 3690 5762 7218 7646 9218 11218 11 268 804 1072 1608 3512 5107 5321 5857 7245 7647 9745 5 179 358 1074 1611 7648 6 269 807 1076 1614 3692 7649 4 1078 1617 3513 7650 14 180 270 360 810 1080 1620 5108 5324 7219 7246 7651 9219 9746 11219 4 1082 1623 3694 7652 7 271 813 1084 1626 3514 5859 7653 5 181 362 1086 1629 7654 11 272 816 1088 1632 3696 5109 5327 5763 7247 7655 9747 8 1090 1635 3515 5861 7220 7656 9220 11220 7 182 273 364 819 1092 1638 7657 5 1094 1641 3698 5764 7658 9 274 822 1096 1644 3516 5862 7248 7659 9748 5 183 366 1098 1647 7660 12 275 825 1100 1650 3700 5110 5330 5765 7221 7661 9221 11221 4 1102 1653 3517 7662 11 184 276 368 828 1104 1656 5111 5331 7249 7663 9749 4 1106 1659 3702 7664 7 277 831 1108 1662 3518 5864 7665 8 185 370 1110 1665 7222 7666 9222 11222 9 278 834 1112 1668 3704 5766 7250 7667 9750 4 1114 1671 3519 7668 7 186 279 372 837 1116 1674 7669 4 1118 1677 3706 7670 14 280 840 1120 1680 3520 5112 5336 5865 7223 7251 7671 9223 9751 11223 5 187 374 1122 1683 7672 6 281 843 1124 1686 3708 7673 4 1126 1689 3521 7674 9 188 282 376 846 1128 1692 7252 7675 9752 8 1130 1695 3710 5767 7224 7676 9224 11224 7 283 849 1132 1698 3522 5867 7677 5 189 378 1134 1701 7678 11 284 852 1136 1704 3712 5113 5341 5768 7253 7679 9753 4 1138 1707 3523 7680 12 190 285 380 855 1140 1710 5114 5342 7225 7681 9225 11225 4 1142 1713 3714 7682 9 286 858 1144 1716 3524 5870 7254 7683 9754 5 191 382 1146 1719 7684 6 287 861 1148 1722 3716 7685 8 1150 1725 3525 5871 7226 7686 9226 11226 11 192 288 384 864 1152 1728 5115 5345 7255 7687 9755 4 1154 1731 3718 7688 7 289 867 1156 1734 3526 5872 7689 5 193 386 1158 1737 7690 14 290 870 1160 1740 3720 5116 5348 5769 7227 7256 7691 9227 9756 11227 4 1162 1743 3527 7692 7 194 291 388 873 1164 1746 7693 5 1166 1749 3722 5770 7694 11 292 876 1168 1752 3528 5117 5351 5875 7257 7695 9757 8 195 390 1170 1755 7228 7696 9228 11228 6 293 879 1172 1758 3724 7697 4 1174 1761 3529 7698 9 196 294 392 882 1176 1764 7258 7699 9758 4 1178 1767 3726 7700 12 295 885 1180 1770 3530 5118 5354 5877 7229 7701 9229 11229 5 197 394 1182 1773 7702 11 296 888 1184 1776 3728 5119 5355 5771 7259 7703 9759 4 1186 1779 3531 7704 7 198 297 396 891 1188 1782 7705 8 1190 1785 3730 5772 7230 7706 9230 11230 9 298 894 1192 1788 3532 5878 7260 7707 9760 5 199 398 1194 1791 7708 6 299 897 1196 1794 3732 7709 4 1198 1797 3533 7710 14 200 300 400 900 1200 1800 5120 5360 7231 7261 7711 9231 9761 11231 5 1202 1803 3734 5773 7712 7 301 903 1204 1806 3534 5880 7713 5 201 402 1206 1809 7714 9 302 906 1208 1812 3736 5774 7262 7715 9762 8 1210 1815 3535 5881 7232 7716 9232 11232 7 202 303 404 909 1212 1818 7717 4 1214 1821 3738 7718 11 304 912 1216 1824 3536 5121 5365 5883 7263 7719 9763 5 203 406 1218 1827 7720 12 305 915 1220 1830 3740 5122 5366 5775 7233 7721 9233 11233 4 1222 1833 3537 7722 9 204 306 408 918 1224 1836 7264 7723 9764 4 1226 1839 3742 7724 7 307 921 1228 1842 3538 5885 7725 8 205 410 1230 1845 7234 7726 9234 11234 11 308 924 1232 1848 3744 5123 5369 5776 7265 7727 9765 4 1234 1851 3539 7728 7 206 309 412 927 1236 1854 7729 5 1238 1857 3746 5777 7730 14 310 930 1240 1860 3540 5124 5372 5887 7235 7266 7731 9235 9766 11235 5 207 414 1242 1863 7732 6 311 933 1244 1866 3748 7733 4 1246 1869 3541 7734 11 208 312 416 936 1248 1872 5125 5375 7267 7735 9767 8 1250 1875 3750 5778 7236 7736 9236 11236 7 313 939 1252 1878 3542 5889 7737 5 209 418 1254 1881 7738 9 314 942 1256 1884 3752 5779 7268 7739 9768 4 1258 1887 3543 7740 12 210 315 420 945 1260 1890 5126 5378 7237 7741 9237 11237 4 1262 1893 3754 7742 11 316 948 1264 1896 3544 5127 5379 5891 7269 7743 9769 5 211 422 1266 1899 7744 6 317 951 1268 1902 3756 7745 8 1270 1905 3545 5893 7238 7746 9238 11238 9 212 318 424 954 1272 1908 7270 7747 9770 5 1274 1911 3758 5780 7748 7 319 957 1276 1914 3546 5894 7749 5 213 426 1278 1917 7750 14 320 960 1280 1920 3760 5128 5384 5781 7239 7271 7751 9239 9771 11239 4 1282 1923 3547 7752 7 214 321 428 963 1284 1926 7753 4 1286 1929 3762 7754 9 322 966 1288 1932 3548 5896 7272 7755 9772 8 215 430 1290 1935 7240 7756 9240 11240 6 323 969 1292 1938 3764 7757 4 1294 1941 3549 7758 11 216 324 432 972 1296 1944 5129 5389 7273 7759 9773 4 1298 1947 3766 7760 12 325 975 1300 1950 3550 5130 5390 5897 7241 7761 9241 11241 5 217 434 1302 1953 7762 9 326 978 1304 1956 3768 5782 7274 7763 9774 4 1306 1959 3551 7764 7 218 327 436 981 1308 1962 7765 8 1310 1965 3770 5783 7242 7766 9242 11242 11 328 984 1312 1968 3552 5131 5393 5899 7275 7767 9775 5 219 438 1314 1971 7768 6 329 987 1316 1974 3772 7769 4 1318 1977 3553 7770 14 220 330 440 990 1320 1980 5132 5396 7243 7276 7771 9243 9776 11243 4 1322 1983 3774 7772 7 331 993 1324 1986 3554 5902 7773 5 221 442 1326 1989 7774 11 332 996 1328 1992 3776 5133 5399 5784 7277 7775 9777 8 1330 1995 3555 5903 7244 7776 9244 11244 7 222 333 444 999 1332 1998 7777 4 1334 2001 3778 7778 9 334 1002 1336 2004 3556 5904 7278 7779 9778 5 223 446 1338 2007 7780 12 335 1005 1340 2010 3780 5134 5402 5785 7245 7781 9245 11245 4 1342 2013 3557 7782 11 224 336 448 1008 1344 2016 5135 5403 7279 7783 9779 5 1346 2019 3782 5786 7784 7 337 1011 1348 2022 3558 5907 7785 8 225 450 1350 2025 7246 7786 9246 11246 9 338 1014 1352 2028 3784 5787 7280 7787 9780 4 1354 2031 3559 7788 7 226 339 452 1017 1356 2034 7789 4 1358 2037 3786 7790 14 340 1020 1360 2040 3560 5136 5408 5909 7247 7281 7791 9247 9781 11247 5 227 454 1362 2043 7792 6 341 1023 1364 2046 3788 7793 4 1366 2049 3561 7794 9 228 342 456 1026 1368 2052 7282 7795 9782 8 1370 2055 3790 5788 7248 7796 9248 11248 7 343 1029 1372 2058 3562 5910 7797 5 229 458 1374 2061 7798 11 344 1032 1376 2064 3792 5137 5413 5789 7283 7799 9783 4 1378 2067 3563 7800 12 230 345 460 1035 1380 2070 5138 5414 7249 7801 9249 11249 5 1382 2073 3794 5790 7802 9 346 1038 1384 2076 3564 5912 7284 7803 9784 5 231 462 1386 2079 7804 6 347 1041 1388 2082 3796 7805 8 1390 2085 3565 5913 7250 7806 9250 11250 11 232 348 464 1044 1392 2088 5139 5417 7285 7807 9785 4 1394 2091 3798 7808 7 349 1047 1396 2094 3566 5915 7809 5 233 466 1398 2097 7810 14 350 1050 1400 2100 3800 5140 5420 5791 7251 7286 7811 9251 9786 11251 4 1402 2103 3567 7812 7 234 351 468 1053 1404 2106 7813 4 1406 2109 3802 7814 11 352 1056 1408 2112 3568 5141 5423 5917 7287 7815 9787 8 235 470 1410 2115 7252 7816 9252 11252 6 353 1059 1412 2118 3804 7817 4 1414 2121 3569 7818 9 236 354 472 1062 1416 2124 7288 7819 9788 5 1418 2127 3806 5792 7820 12 355 1065 1420 2130 3570 5142 5426 5919 7253 7821 9253 11253 5 237 474 1422 2133 7822 11 356 1068 1424 2136 3808 5143 5427 5793 7289 7823 9789 4 1426 2139 3571 7824 7 238 357 476 1071 1428 2142 7825 8 1430 2145 3810 5794 7254 7826 9254 11254 9 358 1074 1432 2148 3572 5921 7290 7827 9790 5 239 478 1434 2151 7828 6 359 1077 1436 2154 3812 7829 4 1438 2157 3573 7830 14 240 360 480 1080 1440 2160 5144 5432 7255 7291 7831 9255 9791 11255 4 1442 2163 3814 7832 7 361 1083 1444 2166 3574 5923 7833 5 241 482 1446 2169 7834 9 362 1086 1448 2172 3816 5795 7292 7835 9792 8 1450 2175 3575 5925 7256 7836 9256 11256 7 242 363 484 1089 1452 2178 7837 5 1454 2181 3818 5796 7838 11 364 1092 1456 2184 3576 5145 5437 5926 7293 7839 9793 5 243 486 1458 2187 7840 12 365 1095 1460 2190 3820 5146 5438 5797 7257 7841 9257 11257 4 1462 2193 3577 7842 9 244 366 488 1098 1464 2196 7294 7843 9794 4 1466 2199 3822 7844 7 367 1101 1468 2202 3578 5928 7845 8 245 490 1470 2205 7258 7846 9258 11258 11 368 1104 1472 2208 3824 5147 5441 5798 7295 7847 9795 4 1474 2211 3579 7848 7 246 369 492 1107 1476 2214 7849 4 1478 2217 3826 7850 14 370 1110 1480 2220 3580 5148 5444 5929 7259 7296 7851 9259 9796 11259 5 247 494 1482 2223 7852 6 371 1113 1484 2226 3828 7853 4 1486 2229 3581 7854 11 248 372 496 1116 1488 2232 5149 5447 7297 7855 9797 8 1490 2235 3830 5799 7260 7856 9260 11260 7 373 1119 1492 2238 3582 5931 7857 5 249 498 1494 2241 7858 9 374 1122 1496 2244 3832 5800 7298 7859 9798 4 1498 2247 3583 7860 12 250 375 500 1125 1500 2250 5150 5450 7261 7861 9261 11261 4 1502 2253 3834 7862 11 376 1128 1504 2256 3584 5151 5451 5934 7299 7863 9799 5 251 502 1506 2259 7864 6 377 1131 1508 2262 3836 7865 8 1510 2265 3585 5935 7262 7866 9262 11262 9 252 378 504 1134 1512 2268 7300 7867 9800 4 1514 2271 3838 7868 7 379 1137 1516 2274 3586 5936 7869 5 253 506 1518 2277 7870 14 380 1140 1520 2280 3840 5152 5456 5801 7263 7301 7871 9263 9801 11263 4 1522 2283 3587 7872 7 254 381 508 1143 1524 2286 7873 5 1526 2289 3842 5802 7874 9 382 1146 1528 2292 3588 5939 7302 7875 9802 8 255 510 1530 2295 7264 7876 9264 11264 6 383 1149 1532 2298 3844 7877 4 1534 2301 3589 7878 11 256 384 512 1152 1536 2304 5153 5461 7303 7879 9803 4 1538 2307 3846 7880 12 385 1155 1540 2310 3590 5154 5462 5941 7265 7881 9265 11265 5 257 514 1542 2313 7882 9 386 1158 1544 2316 3848 5803 7304 7883 9804 4 1546 2319 3591 7884 7 258 387 516 1161 1548 2322 7885 8 1550 2325 3850 5804 7266 7886 9266 11266 11 388 1164 1552 2328 3592 5155 5465 5942 7305 7887 9805 5 259 518 1554 2331 7888 6 389 1167 1556 2334 3852 7889 4 1558 2337 3593 7890 14 260 390 520 1170 1560 2340 5156 5468 7267 7306 7891 9267 9806 11267 5 1562 2343 3854 5805 7892 7 391 1173 1564 2346 3594 5944 7893 5 261 522 1566 2349 7894 11 392 1176 1568 2352 3856 5157 5471 5806 7307 7895 9807 8 1570 2355 3595 5945 7268 7896 9268 11268 7 262 393 524 1179 1572 2358 7897 4 1574 2361 3858 7898 9 394 1182 1576 2364 3596 5947 7308 7899 9808 5 263 526 1578 2367 7900 12 395 1185 1580 2370 3860 5158 5474 5807 7269 7901 9269 11269 4 1582 2373 3597 7902 11 264 396 528 1188 1584 2376 5159 5475 7309 7903 9809 4 1586 2379 3862 7904 7 397 1191 1588 2382 3598 5949 7905 8 265 530 1590 2385 7270 7906 9270 11270 9 398 1194 1592 2388 3864 5808 7310 7907 9810 4 1594 2391 3599 7908 7 266 399 532 1197 1596 2394 7909 5 1598 2397 3866 5809 7910 14 400 1200 1600 2400 3600 5160 5480 5951 7271 7311 7911 9271 9811 11271 5 267 534 1602 2403 7912 6 401 1203 1604 2406 3868 7913 4 1606 2409 3601 7914 9 268 402 536 1206 1608 2412 7312 7915 9812 8 1610 2415 3870 5810 7272 7916 9272 11272 7 403 1209 1612 2418 3602 5953 7917 5 269 538 1614 2421 7918 11 404 1212 1616 2424 3872 5161 5485 5811 7313 7919 9813 4 1618 2427 3603 7920 12 270 405 540 1215 1620 2430 5162 5486 7273 7921 9273 11273 4 1622 2433 3874 7922 9 406 1218 1624 2436 3604 5955 7314 7923 9814 5 271 542 1626 2439 7924 6 407 1221 1628 2442 3876 7925 8 1630 2445 3605 5957 7274 7926 9274 11274 11 272 408 544 1224 1632 2448 5163 5489 7315 7927 9815 5 1634 2451 3878 5812 7928 7 409 1227 1636 2454 3606 5958 7929 5 273 546 1638 2457 7930 14 410 1230 1640 2460 3880 5164 5492 5813 7275 7316 7931 9275 9816 11275 4 1642 2463 3607 7932 7 274 411 548 1233 1644 2466 7933 4 1646 2469 3882 7934 11 412 1236 1648 2472 3608 5165 5495 5960 7317 7935 9817 8 275 550 1650 2475 7276 7936 9276 11276 6 413 1239 1652 2478 3884 7937 4 1654 2481 3609 7938 9 276 414 552 1242 1656 2484 7318 7939 9818 4 1658 2487 3886 7940 12 415 1245 1660 2490 3610 5166 5498 5961 7277 7941 9277 11277 5 277 554 1662 2493 7942 11 416 1248 1664 2496 3888 5167 5499 5814 7319 7943 9819 4 1666 2499 3611 7944 7 278 417 556 1251 1668 2502 7945 8 1670 2505 3890 5815 7278 7946 9278 11278 9 418 1254 1672 2508 3612 5963 7320 7947 9820 5 279 558 1674 2511 7948 6 419 1257 1676 2514 3892 7949 4 1678 2517 3613 7950 14 280 420 560 1260 1680 2520 5168 5504 7279 7321 7951 9279 9821 11279 4 1682 2523 3894 7952 7 421 1263 1684 2526 3614 5966 7953 5 281 562 1686 2529 7954 9 422 1266 1688 2532 3896 5816 7322 7955 9822 8 1690 2535 3615 5967 7280 7956 9280 11280 7 282 423 564 1269 1692 2538 7957 4 1694 2541 3898 7958 11 424 1272 1696 2544 3616 5169 5509 5968 7323 7959 9823 5 283 566 1698 2547 7960 12 425 1275 1700 2550 3900 5170 5510 5817 7281 7961 9281 11281 4 1702 2553 3617 7962 9 284 426 568 1278 1704 2556 7324 7963 9824 5 1706 2559 3902 5818 7964 7 427 1281 1708 2562 3618 5971 7965 8 285 570 1710 2565 7282 7966 9282 11282 11 428 1284 1712 2568 3904 5171 5513 5819 7325 7967 9825 4 1714 2571 3619 7968 7 286 429 572 1287 1716 2574 7969 4 1718 2577 3906 7970 14 430 1290 1720 2580 3620 5172 5516 5973 7283 7326 7971 9283 9826 11283 5 287 574 1722 2583 7972 6 431 1293 1724 2586 3908 7973 4 1726 2589 3621 7974 11 288 432 576 1296 1728 2592 5173 5519 7327 7975 9827 8 1730 2595 3910 5820 7284 7976 9284 11284 7 433 1299 1732 2598 3622 5974 7977 5 289 578 1734 2601 7978 9 434 1302 1736 2604 3912 5821 7328 7979 9828 4 1738 2607 3623 7980 12 290 435 580 1305 1740 2610 5174 5522 7285 7981 9285 11285 5 1742 2613 3914 5822 7982 11 436 1308 1744 2616 3624 5175 5523 5976 7329 7983 9829 5 291 582 1746 2619 7984 6 437 1311 1748 2622 3916 7985 8 1750 2625 3625 5977 7286 7986 9286 11286 9 292 438 584 1314 1752 2628 7330 7987 9830 4 1754 2631 3918 7988 7 439 1317 1756 2634 3626 5979 7989 5 293 586 1758 2637 7990 14 440 1320 1760 2640 3920 5176 5528 5823 7287 7331 7991 9287 9831 11287 4 1762 2643 3627 7992 7 294 441 588 1323 1764 2646 7993 4 1766 2649 3922 7994 9 442 1326 1768 2652 3628 5981 7332 7995 9832 8 295 590 1770 2655 7288 7996 9288 11288 6 443 1329 1772 2658 3924 7997 4 1774 2661 3629 7998 11 296 444 592 1332 1776 2664 5177 5533 7333 7999 9833 5 1778 2667 3926 5824 8000 12 445 1335 1780 2670 3630 5178 5534 5983 7289 8001 9289 11289 5 297 594 1782 2673 8002 9 446 1338 1784 2676 3928 5825 7334 8003 9834 4 1786 2679 3631 8004 7 298 447 596 1341 1788 2682 8005 8 1790 2685 3930 5826 7290 8006 9290 11290 11 448 1344 1792 2688 3632 5179 5537 5985 7335 8007 9835 5 299 598 1794 2691 8008 6 449 1347 1796 2694 3932 8009 4 1798 2697 3633 8010 14 300 450 600 1350 1800 2700 5180 5540 7291 7336 8011 9291 9836 11291 4 1802 2703 3934 8012 7 451 1353 1804 2706 3634 5987 8013 5 301 602 1806 2709 8014 11 452 1356 1808 2712 3936 5181 5543 5827 7337 8015 9837 8 1810 2715 3635 5989 7292 8016 9292 11292 7 302 453 604 1359 1812 2718 8017 5 1814 2721 3938 5828 8018 9 454 1362 1816 2724 3636 5990 7338 8019 9838 5 303 606 1818 2727 8020 12 455 1365 1820 2730 3940 5182 5546 5829 7293 8021 9293 11293 4 1822 2733 3637 8022 11 304 456 608 1368 1824 2736 5183 5547 7339 8023 9839 4 1826 2739 3942 8024 7 457 1371 1828 2742 3638 5992 8025 8 305 610 1830 2745 7294 8026 9294 11294 9 458 1374 1832 2748 3944 5830 7340 8027 9840 4 1834 2751 3639 8028 7 306 459 612 1377 1836 2754 8029 4 1838 2757 3946 8030 14 460 1380 1840 2760 3640 5184 5552 5993 7295 7341 8031 9295 9841 11295 5 307 614 1842 2763 8032 6 461 1383 1844 2766 3948 8033 4 1846 2769 3641 8034 9 308 462 616 1386 1848 2772 7342 8035 9842 8 1850 2775 3950 5831 7296 8036 9296 11296 7 463 1389 1852 2778 3642 5995 8037 5 309 618 1854 2781 8038 11 464 1392 1856 2784 3952 5185 5557 5832 7343 8039 9843 4 1858 2787 3643 8040 12 310 465 620 1395 1860 2790 5186 5558 7297 8041 9297 11297 4 1862 2793 3954 8042 9 466 1398 1864 2796 3644 5998 7344 8043 9844 5 311 622 1866 2799 8044 6 467 1401 1868 2802 3956 8045 8 1870 2805 3645 5999 7298 8046 9298 11298 11 312 468 624 1404 1872 2808 5187 5561 7345 8047 9845 4 1874 2811 3958 8048 7 469 1407 1876 2814 3646 6000 8049 5 313 626 1878 2817 8050 14 470 1410 1880 2820 3960 5188 5564 5833 7299 7346 8051 9299 9846 11299 4 1882 2823 3647 8052 7 314 471 628 1413 1884 2826 8053 5 1886 2829 3962 5834 8054 11 472 1416 1888 2832 3648 5189 5567 6003 7347 8055 9847 8 315 630 1890 2835 7300 8056 9300 11300 6 473 1419 1892 2838 3964 8057 4 1894 2841 3649 8058 9 316 474 632 1422 1896 2844 7348 8059 9848 4 1898 2847 3966 8060 12 475 1425 1900 2850 3650 5190 5570 6005 7301 8061 9301 11301 5 317 634 1902 2853 8062 11 476 1428 1904 2856 3968 5191 5571 5835 7349 8063 9849 4 1906 2859 3651 8064 7 318 477 636 1431 1908 2862 8065 8 1910 2865 3970 5836 7302 8066 9302 11302 9 478 1434 1912 2868 3652 6006 7350 8067 9850 5 319 638 1914 2871 8068 6 479 1437 1916 2874 3972 8069 4 1918 2877 3653 8070 14 320 480 640 1440 1920 2880 5192 5576 7303 7351 8071 9303 9851 11303 5 1922 2883 3974 5837 8072 7 481 1443 1924 2886 3654 6008 8073 5 321 642 1926 2889 8074 9 482 1446 1928 2892 3976 5838 7352 8075 9852 8 1930 2895 3655 6009 7304 8076 9304 11304 7 322 483 644 1449 1932 2898 8077 4 1934 2901 3978 8078 11 484 1452 1936 2904 3656 5193 5581 6011 7353 8079 9853 5 323 646 1938 2907 8080 12 485 1455 1940 2910 3980 5194 5582 5839 7305 8081 9305 11305 4 1942 2913 3657 8082 9 324 486 648 1458 1944 2916 7354 8083 9854 4 1946 2919 3982 8084 7 487 1461 1948 2922 3658 6013 8085 8 325 650 1950 2925 7306 8086 9306 11306 11 488 1464 1952 2928 3984 5195 5585 5840 7355 8087 9855 4 1954 2931 3659 8088 7 326 489 652 1467 1956 2934 8089 5 1958 2937 3986 5841 8090 14 490 1470 1960 2940 3660 5196 5588 6015 7307 7356 8091 9307 9856 11307 5 327 654 1962 2943 8092 6 491 1473 1964 2946 3988 8093 4 1966 2949 3661 8094 11 328 492 656 1476 1968 2952 5197 5591 7357 8095 9857 8 1970 2955 3990 5842 7308 8096 9308 11308 7 493 1479 1972 2958 3662 6017 8097 5 329 658 1974 2961 8098 9 494 1482 1976 2964 3992 5843 7358 8099 9858 4 1978 2967 3663 8100 12 330 495 660 1485 1980 2970 5198 5594 7309 8101 9309 11309 4 1982 2973 3994 8102 11 496 1488 1984 2976 3664 5199 5595 6019 7359 8103 9859 5 331 662 1986 2979 8104 6 497 1491 1988 2982 3996 8105 8 1990 2985 3665 6021 7310 8106 9310 11310 9 332 498 664 1494 1992 2988 7360 8107 9860 5 1994 2991 3998 5844 8108 7 499 1497 1996 2994 3666 6022 8109 5 333 666 1998 2997 8110 14 500 1500 2000 3000 4000 5200 5600 5845 7311 7361 8111 9311 9861 11311 4 2002 3003 3667 8112 7 334 501 668 1503 2004 3006 8113 4 2006 3009 4002 8114 9 502 1506 2008 3012 3668 6024 7362 8115 9862 8 335 670 2010 3015 7312 8116 9312 11312 6 503 1509 2012 3018 4004 8117 4 2014 3021 3669 8118 11 336 504 672 1512 2016 3024 5201 5605 7363 8119 9863 4 2018 3027 4006 8120 12 505 1515 2020 3030 3670 5202 5606 6025 7313 8121 9313 11313 5 337 674 2022 3033 8122 9 506 1518 2024 3036 4008 5846 7364 8123 9864 4 2026 3039 3671 8124 7 338 507 676 1521 2028 3042 8125 8 2030 3045 4010 5847 7314 8126 9314 11314 11 508 1524 2032 3048 3672 5203 5609 6027 7365 8127 9865 5 339 678 2034 3051 8128 6 509 1527 2036 3054 4012 8129 4 2038 3057 3673 8130 14 340 510 680 1530 2040 3060 5204 5612 7315 7366 8131 9315 9866 11315 4 2042 3063 4014 8132 7 511 1533 2044 3066 3674 6030 8133 5 341 682 2046 3069 8134 11 512 1536 2048 3072 4016 5205 5615 5848 7367 8135 9867 8 2050 3075 3675 6031 7316 8136 9316 11316 7 342 513 684 1539 2052 3078 8137 4 2054 3081 4018 8138 9 514 1542 2056 3084 3676 6032 7368 8139 9868 5 343 686 2058 3087 8140 12 515 1545 2060 3090 4020 5206 5618 5849 7317 8141 9317 11317 4 2062 3093 3677 8142 11 344 516 688 1548 2064 3096 5207 5619 7369 8143 9869 5 2066 3099 4022 5850 8144 7 517 1551 2068 3102 3678 6035 8145 8 345 690 2070 3105 7318 8146 9318 11318 9 518 1554 2072 3108 4024 5851 7370 8147 9870 4 2074 3111 3679 8148 7 346 519 692 1557 2076 3114 8149 4 2078 3117 4026 8150 14 520 1560 2080 3120 3680 5208 5624 6037 7319 7371 8151 9319 9871 11319 5 347 694 2082 3123 8152 6 521 1563 2084 3126 4028 8153 4 2086 3129 3681 8154 9 348 522 696 1566 2088 3132 7372 8155 9872 8 2090 3135 4030 5852 7320 8156 9320 11320 7 523 1569 2092 3138 3682 6038 8157 5 349 698 2094 3141 8158 11 524 1572 2096 3144 4032 5209 5629 5853 7373 8159 9873 4 2098 3147 3683 8160 12 350 525 700 1575 2100 3150 5210 5630 7321 8161 9321 11321 5 2102 3153 4034 5854 8162 9 526 1578 2104 3156 3684 6040 7374 8163 9874 5 351 702 2106 3159 8164 6 527 1581 2108 3162 4036 8165 8 2110 3165 3685 6041 7322 8166 9322 11322 11 352 528 704 1584 2112 3168 5211 5633 7375 8167 9875 4 2114 3171 4038 8168 7 529 1587 2116 3174 3686 6043 8169 5 353 706 2118 3177 8170 14 530 1590 2120 3180 4040 5212 5636 5855 7323 7376 8171 9323 9876 11323 4 2122 3183 3687 8172 7 354 531 708 1593 2124 3186 8173 4 2126 3189 4042 8174 11 532 1596 2128 3192 3688 5213 5639 6045 7377 8175 9877 8 355 710 2130 3195 7324 8176 9324 11324 6 533 1599 2132 3198 4044 8177 4 2134 3201 3689 8178 9 356 534 712 1602 2136 3204 7378 8179 9878 5 2138 3207 4046 5856 8180 12 535 1605 2140 3210 3690 5214 5642 6047 7325 8181 9325 11325 5 357 714 2142 3213 8182 11 536 1608 2144 3216 4048 5215 5643 5857 7379 8183 9879 4 2146 3219 3691 8184 7 358 537 716 1611 2148 3222 8185 8 2150 3225 4050 5858 7326 8186 9326 11326 9 538 1614 2152 3228 3692 6049 7380 8187 9880 5 359 718 2154 3231 8188 6 539 1617 2156 3234 4052 8189 4 2158 3237 3693 8190 14 360 540 720 1620 2160 3240 5216 5648 7327 7381 8191 9327 9881 11327 4 2162 3243 4054 8192 7 541 1623 2164 3246 3694 6051 8193 5 361 722 2166 3249 8194 9 542 1626 2168 3252 4056 5859 7382 8195 9882 8 2170 3255 3695 6053 7328 8196 9328 11328 7 362 543 724 1629 2172 3258 8197 5 2174 3261 4058 5860 8198 11 544 1632 2176 3264 3696 5217 5653 6054 7383 8199 9883 5 363 726 2178 3267 8200 12 545 1635 2180 3270 4060 5218 5654 5861 7329 8201 9329 11329 4 2182 3273 3697 8202 9 364 546 728 1638 2184 3276 7384 8203 9884 4 2186 3279 4062 8204 7 547 1641 2188 3282 3698 6056 8205 8 365 730 2190 3285 7330 8206 9330 11330 11 548 1644 2192 3288 4064 5219 5657 5862 7385 8207 9885 4 2194 3291 3699 8208 7 366 549 732 1647 2196 3294 8209 4 2198 3297 4066 8210 14 550 1650 2200 3300 3700 5220 5660 6057 7331 7386 8211 9331 9886 11331 5 367 734 2202 3303 8212 6 551 1653 2204 3306 4068 8213 4 2206 3309 3701 8214 11 368 552 736 1656 2208 3312 5221 5663 7387 8215 9887 8 2210 3315 4070 5863 7332 8216 9332 11332 7 553 1659 2212 3318 3702 6059 8217 5 369 738 2214 3321 8218 9 554 1662 2216 3324 4072 5864 7388 8219 9888 4 2218 3327 3703 8220 12 370 555 740 1665 2220 3330 5222 5666 7333 8221 9333 11333 4 2222 3333 4074 8222 11 556 1668 2224 3336 3704 5223 5667 6062 7389 8223 9889 5 371 742 2226 3339 8224 6 557 1671 2228 3342 4076 8225 8 2230 3345 3705 6063 7334 8226 9334 11334 9 372 558 744 1674 2232 3348 7390 8227 9890 4 2234 3351 4078 8228 7 559 1677 2236 3354 3706 6064 8229 5 373 746 2238 3357 8230 14 560 1680 2240 3360 4080 5224 5673 5865 7335 7391 8231 9335 9891 11335 4 2242 3363 3707 8232 7 374 561 748 1683 2244 3366 8233 5 2246 3369 4082 5866 8234 9 562 1686 2248 3372 3708 6067 7392 8235 9892 8 375 750 2250 3375 7336 8236 9336 11336 6 563 1689 2252 3378 4084 8237 4 2254 3381 3709 8238 11 376 564 752 1692 2256 3384 5225 5680 7393 8239 9893 4 2258 3387 4086 8240 12 565 1695 2260 3390 3710 5226 5682 6069 7337 8241 9337 11337 5 377 754 2262 3393 8242 9 566 1698 2264 3396 4088 5867 7394 8243 9894 4 2266 3399 3711 8244 7 378 567 756 1701 2268 3402 8245 8 2270 3405 4090 5868 7338 8246 9338 11338 11 568 1704 2272 3408 3712 5227 5686 6070 7395 8247 9895 5 379 758 2274 3411 8248 6 569 1707 2276 3414 4092 8249 4 2278 3417 3713 8250 14 380 570 760 1710 2280 3420 5228 5689 7339 7396 8251 9339 9896 11339 5 2282 3423 4094 5869 8252 7 571 1713 2284 3426 3714 6072 8253 5 381 762 2286 3429 8254 11 572 1716 2288 3432 4096 5229 5693 5870 7397 8255 9897 8 2290 3435 3715 6073 7340 8256 9340 11340 7 382 573 764 1719 2292 3438 8257 4 2294 3441 4098 8258 9 574 1722 2296 3444 3716 6075 7398 8259 9898 5 383 766 2298 3447 8260 12 575 1725 2300 3450 4100 5230 5698 5871 7341 8261 9341 11341 4 2302 3453 3717 8262 11 384 576 768 1728 2304 3456 5231 5699 7399 8263 9899 4 2306 3459 4102 8264 7 577 1731 2308 3462 3718 6077 8265 8 385 770 2310 3465 7342 8266 9342 11342 9 578 1734 2312 3468 4104 5872 7400 8267 9900 4 2314 3471 3719 8268 7 386 579 772 1737 2316 3474 8269 5 2318 3477 4106 5873 8270 14 580 1740 2320 3480 3720 5232 5705 6079 7343 7401 8271 9343 9901 11343 5 387 774 2322 3483 8272 6 581 1743 2324 3486 4108 8273 4 2326 3489 3721 8274 9 388 582 776 1746 2328 3492 7402 8275 9902 8 2330 3495 4110 5874 7344 8276 9344 11344 7 583 1749 2332 3498 3722 6081 8277 5 389 778 2334 3501 8278 11 584 1752 2336 3504 4112 5233 5712 5875 7403 8279 9903 4 2338 3507 3723 8280 12 390 585 780 1755 2340 3510 5234 5714 7345 8281 9345 11345 4 2342 3513 4114 8282 9 586 1758 2344 3516 3724 6083 7404 8283 9904 5 391 782 2346 3519 8284 6 587 1761 2348 3522 4116 8285 8 2350 3525 3725 6085 7346 8286 9346 11346 11 392 588 784 1764 2352 3528 5235 5718 7405 8287 9905 5 2354 3531 4118 5876 8288 7 589 1767 2356 3534 3726 6086 8289 5 393 786 2358 3537 8290 14 590 1770 2360 3540 4120 5236 5721 5877 7347 7406 8291 9347 9906 11347 4 2362 3543 3727 8292 7 394 591 788 1773 2364 3546 8293 4 2366 3549 4122 8294 11 592 1776 2368 3552 3728 5237 5725 6088 7407 8295 9907 8 395 790 2370 3555 7348 8296 9348 11348 6 593 1779 2372 3558 4124 8297 4 2374 3561 3729 8298 9 396 594 792 1782 2376 3564 7408 8299 9908 4 2378 3567 4126 8300 12 595 1785 2380 3570 3730 5238 5730 6089 7349 8301 9349 11349 5 397 794 2382 3573 8302 11 596 1788 2384 3576 4128 5239 5731 5878 7409 8303 9909 4 2386 3579 3731 8304 7 398 597 796 1791 2388 3582 8305 8 2390 3585 4130 5879 7350 8306 9350 11350 9 598 1794 2392 3588 3732 6091 7410 8307 9910 5 399 798 2394 3591 8308 6 599 1797 2396 3594 4132 8309 4 2398 3597 3733 8310 14 400 600 800 1800 2400 3600 5240 5737 7351 7411 8311 9351 9911 11351 4 2402 3603 4134 8312 7 601 1803 2404 3606 3734 6094 8313 5 401 802 2406 3609 8314 9 602 1806 2408 3612 4136 5880 7412 8315 9912 8 2410 3615 3735 6095 7352 8316 9352 11352 7 402 603 804 1809 2412 3618 8317 4 2414 3621 4138 8318 11 604 1812 2416 3624 3736 5241 5744 6096 7413 8319 9913 5 403 806 2418 3627 8320 12 605 1815 2420 3630 4140 5242 5746 5881 7353 8321 9353 11353 4 2422 3633 3737 8322 9 404 606 808 1818 2424 3636 7414 8323 9914 5 2426 3639 4142 5882 8324 7 607 1821 2428 3642 3738 6099 8325 8 405 810 2430 3645 7354 8326 9354 11354 11 608 1824 2432 3648 4144 5243 5750 5883 7415 8327 9915 4 2434 3651 3739 8328 7 406 609 812 1827 2436 3654 8329 4 2438 3657 4146 8330 14 610 1830 2440 3660 3740 5244 5753 6101 7355 7416 8331 9355 9916 11355 5 407 814 2442 3663 8332 6 611 1833 2444 3666 4148 8333 4 2446 3669 3741 8334 11 408 612 816 1836 2448 3672 5245 5757 7417 8335 9917 8 2450 3675 4150 5884 7356 8336 9356 11356 7 613 1839 2452 3678 3742 6102 8337 5 409 818 2454 3681 8338 9 614 1842 2456 3684 4152 5885 7418 8339 9918 4 2458 3687 3743 8340 12 410 615 820 1845 2460 3690 5246 5762 7357 8341 9357 11357 5 2462 3693 4154 5886 8342 11 616 1848 2464 3696 3744 5247 5763 6104 7419 8343 9919 5 411 822 2466 3699 8344 6 617 1851 2468 3702 4156 8345 8 2470 3705 3745 6105 7358 8346 9358 11358 9 412 618 824 1854 2472 3708 7420 8347 9920 4 2474 3711 4158 8348 7 619 1857 2476 3714 3746 6107 8349 5 413 826 2478 3717 8350 14 620 1860 2480 3720 4160 5248 5769 5887 7359 7421 8351 9359 9921 11359 4 2482 3723 3747 8352 7 414 621 828 1863 2484 3726 8353 4 2486 3729 4162 8354 9 622 1866 2488 3732 3748 6109 7422 8355 9922 8 415 830 2490 3735 7360 8356 9360 11360 6 623 1869 2492 3738 4164 8357 4 2494 3741 3749 8358 11 416 624 832 1872 2496 3744 5249 5776 7423 8359 9923 5 2498 3747 4166 5888 8360 11 625 1875 2500 3750 5250 5778 6111 7361 8361 9361 11361 5 417 834 2502 3753 8362 9 626 1878 2504 3756 4168 5889 7424 8363 9924 4 2506 3751 3759 8364 7 418 627 836 1881 2508 3762 8365 8 2510 3765 4170 5890 7362 8366 9362 11362 11 628 1884 2512 3752 3768 5251 5782 6112 7425 8367 9925 5 419 838 2514 3771 8368 6 629 1887 2516 3774 4172 8369 4 2518 3753 3777 8370 14 420 630 840 1890 2520 3780 5252 5785 7363 7426 8371 9363 9926 11363 4 2522 3783 4174 8372 7 631 1893 2524 3754 3786 6114 8373 5 421 842 2526 3789 8374 11 632 1896 2528 3792 4176 5253 5789 5891 7427 8375 9927 8 2530 3755 3795 6115 7364 8376 9364 11364 7 422 633 844 1899 2532 3798 8377 5 2534 3801 4178 5892 8378 9 634 1902 2536 3756 3804 6116 7428 8379 9928 5 423 846 2538 3807 8380 12 635 1905 2540 3810 4180 5254 5794 5893 7365 8381 9365 11365 4 2542 3757 3813 8382 11 424 636 848 1908 2544 3816 5255 5795 7429 8383 9929 4 2546 3819 4182 8384 7 637 1911 2548 3758 3822 6118 8385 8 425 850 2550 3825 7366 8386 9366 11366 9 638 1914 2552 3828 4184 5894 7430 8387 9930 4 2554 3759 3831 8388 7 426 639 852 1917 2556 3834 8389 4 2558 3837 4186 8390 14 640 1920 2560 3760 3840 5256 5801 6119 7367 7431 8391 9367 9931 11367 5 427 854 2562 3843 8392 6 641 1923 2564 3846 4188 8393 4 2566 3761 3849 8394 9 428 642 856 1926 2568 3852 7432 8395 9932 8 2570 3855 4190 5895 7368 8396 9368 11368 7 643 1929 2572 3762 3858 6120 8397 5 429 858 2574 3861 8398 11 644 1932 2576 3864 4192 5257 5808 5896 7433 8399 9933 4 2578 3763 3867 8400 12 430 645 860 1935 2580 3870 5258 5810 7369 8401 9369 11369 4 2582 3873 4194 8402 9 646 1938 2584 3764 3876 6122 7434 8403 9934 5 431 862 2586 3879 8404 6 647 1941 2588 3882 4196 8405 8 2590 3765 3885 6123 7370 8406 9370 11370 11 432 648 864 1944 2592 3888 5259 5814 7435 8407 9935 4 2594 3891 4198 8408 7 649 1947 2596 3766 3894 6124 8409 5 433 866 2598 3897 8410 14 650 1950 2600 3900 4200 5260 5817 5897 7371 7436 8411 9371 9936 11371 4 2602 3767 3903 8412 7 434 651 868 1953 2604 3906 8413 5 2606 3909 4202 5898 8414 11 652 1956 2608 3768 3912 5261 5821 6126 7437 8415 9937 8 435 870 2610 3915 7372 8416 9372 11372 6 653 1959 2612 3918 4204 8417 4 2614 3769 3921 8418 9 436 654 872 1962 2616 3924 7438 8419 9938 4 2618 3927 4206 8420 12 655 1965 2620 3770 3930 5262 5826 6127 7373 8421 9373 11373 5 437 874 2622 3933 8422 11 656 1968 2624 3936 4208 5263 5827 5899 7439 8423 9939 4 2626 3771 3939 8424 7 438 657 876 1971 2628 3942 8425 8 2630 3945 4210 5900 7374 8426 9374 11374 9 658 1974 2632 3772 3948 6128 7440 8427 9940 5 439 878 2634 3951 8428 6 659 1977 2636 3954 4212 8429 4 2638 3773 3957 8430 14 440 660 880 1980 2640 3960 5264 5833 7375 7441 8431 9375 9941 11375 5 2642 3963 4214 5901 8432 7 661 1983 2644 3774 3966 6130 8433 5 441 882 2646 3969 8434 9 662 1986 2648 3972 4216 5902 7442 8435 9942 8 2650 3775 3975 6131 7376 8436 9376 11376 7 442 663 884 1989 2652 3978 8437 4 2654 3981 4218 8438 11 664 1992 2656 3776 3984 5265 5840 6132 7443 8439 9943 5 443 886 2658 3987 8440 12 665 1995 2660 3990 4220 5266 5842 5903 7377 8441 9377 11377 4 2662 3777 3993 8442 9 444 666 888 1998 2664 3996 7444 8443 9944 4 2666 3999 4222 8444 7 667 2001 2668 3778 4002 6134 8445 8 445 890 2670 4005 7378 8446 9378 11378 11 668 2004 2672 4008 4224 5267 5846 5904 7445 8447 9945 4 2674 3779 4011 8448 7 446 669 892 2007 2676 4014 8449 5 2678 4017 4226 5905 8450 14 670 2010 2680 3780 4020 5268 5849 6135 7379 7446 8451 9379 9946 11379 5 447 894 2682 4023 8452 6 671 2013 2684 4026 4228 8453 4 2686 3781 4029 8454 11 448 672 896 2016 2688 4032 5269 5853 7447 8455 9947 8 2690 4035 4230 5906 7380 8456 9380 11380 7 673 2019 2692 3782 4038 6136 8457 5 449 898 2694 4041 8458 9 674 2022 2696 4044 4232 5907 7448 8459 9948 4 2698 3783 4047 8460 12 450 675 900 2025 2700 4050 5270 5858 7381 8461 9381 11381 4 2702 4053 4234 8462 11 676 2028 2704 3784 4056 5271 5859 6138 7449 8463 9949 5 451 902 2706 4059 8464 6 677 2031 2708 4062 4236 8465 8 2710 3785 4065 6139 7382 8466 9382 11382 9 452 678 904 2034 2712 4068 7450 8467 9950 5 2714 4071 4238 5908 8468 7 679 2037 2716 3786 4074 6140 8469 5 453 906 2718 4077 8470 14 680 2040 2720 4080 4240 5272 5865 5909 7383 7451 8471 9383 9951 11383 4 2722 3787 4083 8472 7 454 681 908 2043 2724 4086 8473 4 2726 4089 4242 8474 9 682 2046 2728 3788 4092 6142 7452 8475 9952 8 455 910 2730 4095 7384 8476 9384 11384 6 683 2049 2732 4098 4244 8477 4 2734 3789 4101 8478 11 456 684 912 2052 2736 4104 5273 5872 7453 8479 9953 4 2738 4107 4246 8480 12 685 2055 2740 3790 4110 5274 5874 6143 7385 8481 9385 11385 5 457 914 2742 4113 8482 9 686 2058 2744 4116 4248 5910 7454 8483 9954 4 2746 3791 4119 8484 7 458 687 916 2061 2748 4122 8485 8 2750 4125 4250 5911 7386 8486 9386 11386 11 688 2064 2752 3792 4128 5275 5878 6144 7455 8487 9955 5 459 918 2754 4131 8488 6 689 2067 2756 4134 4252 8489 4 2758 3793 4137 8490 14 460 690 920 2070 2760 4140 5276 5881 7387 7456 8491 9387 9956 11387 4 2762 4143 4254 8492 7 691 2073 2764 3794 4146 6146 8493 5 461 922 2766 4149 8494 11 692 2076 2768 4152 4256 5277 5885 5912 7457 8495 9957 8 2770 3795 4155 6147 7388 8496 9388 11388 7 462 693 924 2079 2772 4158 8497 4 2774 4161 4258 8498 9 694 2082 2776 3796 4164 6148 7458 8499 9958 5 463 926 2778 4167 8500 12 695 2085 2780 4170 4260 5278 5890 5913 7389 8501 9389 11389 4 2782 3797 4173 8502 11 464 696 928 2088 2784 4176 5279 5891 7459 8503 9959 5 2786 4179 4262 5914 8504 7 697 2091 2788 3798 4182 6150 8505 8 465 930 2790 4185 7390 8506 9390 11390 9 698 2094 2792 4188 4264 5915 7460 8507 9960 4 2794 3799 4191 8508 7 466 699 932 2097 2796 4194 8509 4 2798 4197 4266 8510 14 700 2100 2800 3800 4200 5280 5897 6151 7391 7461 8511 9391 9961 11391 5 467 934 2802 4203 8512 6 701 2103 2804 4206 4268 8513 4 2806 3801 4209 8514 9 468 702 936 2106 2808 4212 7462 8515 9962 8 2810 4215 4270 5916 7392 8516 9392 11392 7 703 2109 2812 3802 4218 6152 8517 5 469 938 2814 4221 8518 11 704 2112 2816 4224 4272 5281 5904 5917 7463 8519 9963 4 2818 3803 4227 8520 12 470 705 940 2115 2820 4230 5282 5906 7393 8521 9393 11393 5 2822 4233 4274 5918 8522 9 706 2118 2824 3804 4236 6154 7464 8523 9964 5 471 942 2826 4239 8524 6 707 2121 2828 4242 4276 8525 8 2830 3805 4245 6155 7394 8526 9394 11394 11 472 708 944 2124 2832 4248 5283 5910 7465 8527 9965 4 2834 4251 4278 8528 7 709 2127 2836 3806 4254 6156 8529 5 473 946 2838 4257 8530 14 710 2130 2840 4260 4280 5284 5913 5919 7395 7466 8531 9395 9966 11395 4 2842 3807 4263 8532 7 474 711 948 2133 2844 4266 8533 4 2846 4269 4282 8534 11 712 2136 2848 3808 4272 5285 5917 6158 7467 8535 9967 8 475 950 2850 4275 7396 8536 9396 11396 6 713 2139 2852 4278 4284 8537 4 2854 3809 4281 8538 9 476 714 952 2142 2856 4284 7468 8539 9968 5 2858 4286 4287 5920 8540 12 715 2145 2860 3810 4290 5286 5922 6159 7397 8541 9397 11397 5 477 954 2862 4293 8542 11 716 2148 2864 4288 4296 5287 5921 5923 7469 8543 9969 4 2866 3811 4299 8544 7 478 717 956 2151 2868 4302 8545 8 2870 4290 4305 5922 7398 8546 9398 11398 9 718 2154 2872 3812 4308 6160 7470 8547 9970 5 479 958 2874 4311 8548 6 719 2157 2876 4292 4314 8549 4 2878 3813 4317 8550 14 480 720 960 2160 2880 4320 5288 5929 7399 7471 8551 9399 9971 11399 4 2882 4294 4323 8552 7 721 2163 2884 3814 4326 6162 8553 5 481 962 2886 4329 8554 9 722 2166 2888 4296 4332 5923 7472 8555 9972 8 2890 3815 4335 6163 7400 8556 9400 11400 7 482 723 964 2169 2892 4338 8557 5 2894 4298 4341 5924 8558 11 724 2172 2896 3816 4344 5289 5936 6164 7473 8559 9973 5 483 966 2898 4347 8560 12 725 2175 2900 4300 4350 5290 5925 5938 7401 8561 9401 11401 4 2902 3817 4353 8562 9 484 726 968 2178 2904 4356 7474 8563 9974 4 2906 4302 4359 8564 7 727 2181 2908 3818 4362 6166 8565 8 485 970 2910 4365 7402 8566 9402 11402 11 728 2184 2912 4304 4368 5291 5926 5942 7475 8567 9975 4 2914 3819 4371 8568 7 486 729 972 2187 2916 4374 8569 4 2918 4306 4377 8570 14 730 2190 2920 3820 4380 5292 5945 6167 7403 7476 8571 9403 9976 11403 5 487 974 2922 4383 8572 6 731 2193 2924 4308 4386 8573 4 2926 3821 4389 8574 11 488 732 976 2196 2928 4392 5293 5949 7477 8575 9977 8 2930 4310 4395 5927 7404 8576 9404 11404 7 733 2199 2932 3822 4398 6168 8577 5 489 978 2934 4401 8578 9 734 2202 2936 4312 4404 5928 7478 8579 9978 4 2938 3823 4407 8580 12 490 735 980 2205 2940 4410 5294 5954 7405 8581 9405 11405 4 2942 4314 4413 8582 11 736 2208 2944 3824 4416 5295 5955 6170 7479 8583 9979 5 491 982 2946 4419 8584 6 737 2211 2948 4316 4422 8585 8 2950 3825 4425 6171 7406 8586 9406 11406 9 492 738 984 2214 2952 4428 7480 8587 9980 4 2954 4318 4431 8588 7 739 2217 2956 3826 4434 6172 8589 5 493 986 2958 4437 8590 14 740 2220 2960 4320 4440 5296 5929 5961 7407 7481 8591 9407 9981 11407 4 2962 3827 4443 8592 7 494 741 988 2223 2964 4446 8593 5 2966 4322 4449 5930 8594 9 742 2226 2968 3828 4452 6174 7482 8595 9982 8 495 990 2970 4455 7408 8596 9408 11408 6 743 2229 2972 4324 4458 8597 4 2974 3829 4461 8598 11 496 744 992 2232 2976 4464 5297 5968 7483 8599 9983 4 2978 4326 4467 8600 12 745 2235 2980 3830 4470 5298 5970 6175 7409 8601 9409 11409 5 497 994 2982 4473 8602 9 746 2238 2984 4328 4476 5931 7484 8603 9984 4 2986 3831 4479 8604 7 498 747 996 2241 2988 4482 8605 8 2990 4330 4485 5932 7410 8606 9410 11410 11 748 2244 2992 3832 4488 5299 5974 6176 7485 8607 9985 5 499 998 2994 4491 8608 6 749 2247 2996 4332 4494 8609 4 2998 3833 4497 8610 14 500 750 1000 2250 3000 4500 5300 5977 7411 7486 8611 9411 9986 11411 5 3002 4334 4503 5933 8612 7 751 2253 3004 3834 4506 6178 8613 5 501 1002 3006 4509 8614 11 752 2256 3008 4336 4512 5301 5934 5981 7487 8615 9987 8 3010 3835 4515 6179 7412 8616 9412 11412 7 502 753 1004 2259 3012 4518 8617 4 3014 4338 4521 8618 9 754 2262 3016 3836 4524 6180 7488 8619 9988 5 503 1006 3018 4527 8620 12 755 2265 3020 4340 4530 5302 5935 5986 7413 8621 9413 11413 4 3022 3837 4533 8622 11 504 756 1008 2268 3024 4536 5303 5987 7489 8623 9989 4 3026 4342 4539 8624 7 757 2271 3028 3838 4542 6182 8625 8 505 1010 3030 4545 7414 8626 9414 11414 9 758 2274 3032 4344 4548 5936 7490 8627 9990 4 3034 3839 4551 8628 7 506 759 1012 2277 3036 4554 8629 5 3038 4346 4557 5937 8630 14 760 2280 3040 3840 4560 5304 5993 6183 7415 7491 8631 9415 9991 11415 5 507 1014 3042 4563 8632 6 761 2283 3044 4348 4566 8633 4 3046 3841 4569 8634 9 508 762 1016 2286 3048 4572 7492 8635 9992 8 3050 4350 4575 5938 7416 8636 9416 11416 7 763 2289 3052 3842 4578 6184 8637 5 509 1018 3054 4581 8638 11 764 2292 3056 4352 4584 5305 5939 6000 7493 8639 9993 4 3058 3843 4587 8640 12 510 765 1020 2295 3060 4590 5306 6002 7417 8641 9417 11417 4 3062 4354 4593 8642 9 766 2298 3064 3844 4596 6186 7494 8643 9994 5 511 1022 3066 4599 8644 6 767 2301 3068 4356 4602 8645 8 3070 3845 4605 6187 7418 8646 9418 11418 11 512 768 1024 2304 3072 4608 5307 6006 7495 8647 9995 5 3074 4358 4611 5940 8648 7 769 2307 3076 3846 4614 6188 8649 5 513 1026 3078 4617 8650 14 770 2310 3080 4360 4620 5308 5941 6009 7419 7496 8651 9419 9996 11419 4 3082 3847 4623 8652 7 514 771 1028 2313 3084 4626 8653 4 3086 4362 4629 8654 11 772 2316 3088 3848 4632 5309 6013 6190 7497 8655 9997 8 515 1030 3090 4635 7420 8656 9420 11420 6 773 2319 3092 4364 4638 8657 4 3094 3849 4641 8658 9 516 774 1032 2322 3096 4644 7498 8659 9998 4 3098 4366 4647 8660 12 775 2325 3100 3850 4650 5310 6018 6191 7421 8661 9421 11421 5 517 1034 3102 4653 8662 11 776 2328 3104 4368 4656 5311 5942 6019 7499 8663 9999 4 3106 3851 4659 8664 7 518 777 1036 2331 3108 4662 8665 8 3110 4370 4665 5943 7422 8666 9422 11422 9 778 2334 3112 3852 4668 6192 7500 8667 10000 5 519 1038 3114 4671 8668 6 779 2337 3116 4372 4674 8669 4 3118 3853 4677 8670 14 520 780 1040 2340 3120 4680 5312 6025 7423 7501 8671 9423 10001 11423 4 3122 4374 4683 8672 7 781 2343 3124 3854 4686 6194 8673 5 521 1042 3126 4689 8674 9 782 2346 3128 4376 4692 5944 7502 8675 10002 8 3130 3855 4695 6195 7424 8676 9424 11424 7 522 783 1044 2349 3132 4698 8677 4 3134 4378 4701 8678 11 784 2352 3136 3856 4704 5313 6032 6196 7503 8679 10003 5 523 1046 3138 4707 8680 12 785 2355 3140 4380 4710 5314 5945 6034 7425 8681 9425 11425 4 3142 3857 4713 8682 9 524 786 1048 2358 3144 4716 7504 8683 10004 5 3146 4382 4719 5946 8684 7 787 2361 3148 3858 4722 6198 8685 8 525 1050 3150 4725 7426 8686 9426 11426 11 788 2364 3152 4384 4728 5315 5947 6038 7505 8687 10005 4 3154 3859 4731 8688 7 526 789 1052 2367 3156 4734 8689 4 3158 4386 4737 8690 14 790 2370 3160 3860 4740 5316 6041 6199 7427 7506 8691 9427 10006 11427 5 527 1054 3162 4743 8692 6 791 2373 3164 4388 4746 8693 4 3166 3861 4749 8694 11 528 792 1056 2376 3168 4752 5317 6045 7507 8695 10007 8 3170 4390 4755 5948 7428 8696 9428 11428 7 793 2379 3172 3862 4758 6200 8697 5 529 1058 3174 4761 8698 9 794 2382 3176 4392 4764 5949 7508 8699 10008 4 3178 3863 4767 8700 12 530 795 1060 2385 3180 4770 5318 6050 7429 8701 9429 11429 5 3182 4394 4773 5950 8702 11 796 2388 3184 3864 4776 5319 6051 6202 7509 8703 10009 5 531 1062 3186 4779 8704 6 797 2391 3188 4396 4782 8705 8 3190 3865 4785 6203 7430 8706 9430 11430 9 532 798 1064 2394 3192 4788 7510 8707 10010 4 3194 4398 4791 8708 7 799 2397 3196 3866 4794 6204 8709 5 533 1066 3198 4797 8710 14 800 2400 3200 4400 4800 5320 5951 6057 7431 7511 8711 9431 10011 11431 4 3202 3867 4803 8712 7 534 801 1068 2403 3204 4806 8713 4 3206 4402 4809 8714 9 802 2406 3208 3868 4812 6206 7512 8715 10012 8 535 1070 3210 4815 7432 8716 9432 11432 6 803 2409 3212 4404 4818 8717 4 3214 3869 4821 8718 11 536 804 1072 2412 3216 4824 5321 6064 7513 8719 10013 5 3218 4406 4827 5952 8720 12 805 2415 3220 3870 4830 5322 6066 6207 7433 8721 9433 11433 5 537 1074 3222 4833 8722 9 806 2418 3224 4408 4836 5953 7514 8723 10014 4 3226 3871 4839 8724 7 538 807 1076 2421 3228 4842 8725 8 3230 4410 4845 5954 7434 8726 9434 11434 11 808 2424 3232 3872 4848 5323 6070 6208 7515 8727 10015 5 539 1078 3234 4851 8728 6 809 2427 3236 4412 4854 8729 4 3238 3873 4857 8730 14 540 810 1080 2430 3240 4860 5324 6073 7435 7516 8731 9435 10016 11435 4 3242 4414 4863 8732 7 811 2433 3244 3874 4866 6210 8733 5 541 1082 3246 4869 8734 11 812 2436 3248 4416 4872 5325 5955 6077 7517 8735 10017 8 3250 3875 4875 6211 7436 8736 9436 11436 7 542 813 1084 2439 3252 4878 8737 5 3254 4418 4881 5956 8738 9 814 2442 3256 3876 4884 6212 7518 8739 10018 5 543 1086 3258 4887 8740 12 815 2445 3260 4420 4890 5326 5957 6082 7437 8741 9437 11437 4 3262 3877 4893 8742 11 544 816 1088 2448 3264 4896 5327 6083 7519 8743 10019 4 3266 4422 4899 8744 7 817 2451 3268 3878 4902 6214 8745 8 545 1090 3270 4905 7438 8746 9438 11438 9 818 2454 3272 4424 4908 5958 7520 8747 10020 4 3274 3879 4911 8748 7 546 819 1092 2457 3276 4914 8749 4 3278 4426 4917 8750 14 820 2460 3280 3880 4920 5328 6089 6215 7439 7521 8751 9439 10021 11439 5 547 1094 3282 4923 8752 6 821 2463 3284 4428 4926 8753 4 3286 3881 4929 8754 9 548 822 1096 2466 3288 4932 7522 8755 10022 8 3290 4430 4935 5959 7440 8756 9440 11440 7 823 2469 3292 3882 4938 6216 8757 5 549 1098 3294 4941 8758 11 824 2472 3296 4432 4944 5329 5960 6096 7523 8759 10023 4 3298 3883 4947 8760 12 550 825 1100 2475 3300 4950 5330 6098 7441 8761 9441 11441 4 3302 4434 4953 8762 9 826 2478 3304 3884 4956 6218 7524 8763 10024 5 551 1102 3306 4959 8764 6 827 2481 3308 4436 4962 8765 8 3310 3885 4965 6219 7442 8766 9442 11442 11 552 828 1104 2484 3312 4968 5331 6102 7525 8767 10025 4 3314 4438 4971 8768 7 829 2487 3316 3886 4974 6220 8769 5 553 1106 3318 4977 8770 14 830 2490 3320 4440 4980 5332 5961 6105 7443 7526 8771 9443 10026 11443 4 3322 3887 4983 8772 7 554 831 1108 2493 3324 4986 8773 5 3326 4442 4989 5962 8774 11 832 2496 3328 3888 4992 5333 6109 6222 7527 8775 10027 8 555 1110 3330 4995 7444 8776 9444 11444 6 833 2499 3332 4444 4998 8777 3 3334 3889 8778 9 556 834 1112 2502 3336 5001 7528 8779 10028 3 3338 4446 8780 12 835 2505 3340 3890 5004 5334 6113 6223 7445 8781 9445 11445 4 557 1114 3342 8782 11 836 2508 3344 4448 5007 5335 5963 6114 7529 8783 10029 3 3346 3891 8784 6 558 837 1116 2511 3348 8785 8 3350 4450 5010 5964 7446 8786 9446 11446 9 838 2514 3352 3892 5011 6224 7530 8787 10030 4 559 1118 3354 8788 5 839 2517 3356 4452 8789 3 3358 3893 8790 14 560 840 1120 2520 3360 5016 5336 6119 7447 7531 8791 9447 10031 11447 4 3362 4454 5965 8792 6 841 2523 3364 3894 6226 8793 4 561 1122 3366 8794 9 842 2526 3368 4456 5021 5966 7532 8795 10032 8 3370 3895 5022 6227 7448 8796 9448 11448 6 562 843 1124 2529 3372 8797 3 3374 4458 8798 11 844 2532 3376 3896 5025 5337 6124 6228 7533 8799 10033 4 563 1126 3378 8800 12 845 2535 3380 4460 5028 5338 5967 6125 7449 8801 9449 11449 3 3382 3897 8802 9 564 846 1128 2538 3384 5031 7534 8803 10034 3 3386 4462 8804 6 847 2541 3388 3898 6230 8805 8 565 1130 3390 5034 7450 8806 9450 11450 11 848 2544 3392 4464 5035 5339 5968 6128 7535 8807 10035 3 3394 3899 8808 6 566 849 1132 2547 3396 8809 4 3398 4466 5969 8810 14 850 2550 3400 3900 5040 5340 6131 6231 7451 7536 8811 9451 10036 11451 4 567 1134 3402 8812 5 851 2553 3404 4468 8813 3 3406 3901 8814 11 568 852 1136 2556 3408 5045 5341 6134 7537 8815 10037 8 3410 4470 5046 5970 7452 8816 9452 11452 6 853 2559 3412 3902 6232 8817 4 569 1138 3414 8818 9 854 2562 3416 4472 5049 5971 7538 8819 10038 3 3418 3903 8820 12 570 855 1140 2565 3420 5052 5342 6137 7453 8821 9453 11453 3 3422 4474 8822 11 856 2568 3424 3904 5055 5343 6138 6234 7539 8823 10039 4 571 1142 3426 8824 5 857 2571 3428 4476 8825 8 3430 3905 5058 6235 7454 8826 9454 11454 9 572 858 1144 2574 3432 5059 7540 8827 10040 4 3434 4478 5972 8828 6 859 2577 3436 3906 6236 8829 4 573 1146 3438 8830 14 860 2580 3440 4480 5064 5344 5973 6143 7455 7541 8831 9455 10041 11455 3 3442 3907 8832 6 574 861 1148 2583 3444 8833 3 3446 4482 8834 9 862 2586 3448 3908 5069 6238 7542 8835 10042 8 575 1150 3450 5070 7456 8836 9456 11456 5 863 2589 3452 4484 8837 3 3454 3909 8838 11 576 864 1152 2592 3456 5073 5345 6148 7543 8839 10043 3 3458 4486 8840 12 865 2595 3460 3910 5076 5346 6149 6239 7457 8841 9457 11457 4 577 1154 3462 8842 9 866 2598 3464 4488 5079 5974 7544 8843 10044 3 3466 3911 8844 6 578 867 1156 2601 3468 8845 8 3470 4490 5082 5975 7458 8846 9458 11458 11 868 2604 3472 3912 5083 5347 6152 6240 7545 8847 10045 4 579 1158 3474 8848 5 869 2607 3476 4492 8849 3 3478 3913 8850 14 580 870 1160 2610 3480 5088 5348 6155 7459 7546 8851 9459 10046 11459 3 3482 4494 8852 6 871 2613 3484 3914 6242 8853 4 581 1162 3486 8854 11 872 2616 3488 4496 5093 5349 5976 6158 7547 8855 10047 8 3490 3915 5094 6243 7460 8856 9460 11460 6 582 873 1164 2619 3492 8857 3 3494 4498 8858 9 874 2622 3496 3916 5097 6244 7548 8859 10048 4 583 1166 3498 8860 12 875 2625 3500 4500 5100 5350 5977 6161 7461 8861 9461 11461 3 3502 3917 8862 11 584 876 1168 2628 3504 5103 5351 6162 7549 8863 10049 4 3506 4502 5978 8864 6 877 2631 3508 3918 6246 8865 8 585 1170 3510 5106 7462 8866 9462 11462 9 878 2634 3512 4504 5107 5979 7550 8867 10050 3 3514 3919 8868 6 586 879 1172 2637 3516 8869 3 3518 4506 8870 14 880 2640 3520 3920 5112 5352 6167 6247 7463 7551 8871 9463 10051 11463 4 587 1174 3522 8872 5 881 2643 3524 4508 8873 3 3526 3921 8874 9 588 882 1176 2646 3528 5117 7552 8875 10052 8 3530 4510 5118 5980 7464 8876 9464 11464 6 883 2649 3532 3922 6248 8877 4 589 1178 3534 8878 11 884 2652 3536 4512 5121 5353 5981 6172 7553 8879 10053 3 3538 3923 8880 12 590 885 1180 2655 3540 5124 5354 6173 7465 8881 9465 11465 4 3542 4514 5982 8882 9 886 2658 3544 3924 5127 6250 7554 8883 10054 4 591 1182 3546 8884 5 887 2661 3548 4516 8885 8 3550 3925 5130 6251 7466 8886 9466 11466 11 592 888 1184 2664 3552 5131 5355 6176 7555 8887 10055 3 3554 4518 8888 6 889 2667 3556 3926 6252 8889 4 593 1186 3558 8890 14 890 2670 3560 4520 5136 5356 5983 6179 7467 7556 8891 9467 10056 11467 3 3562 3927 8892 6 594 891 1188 2673 3564 8893 3 3566 4522 8894 11 892 2676 3568 3928 5141 5357 6182 6254 7557 8895 10057 8 595 1190 3570 5142 7468 8896 9468 11468 5 893 2679 3572 4524 8897 3 3574 3929 8898 9 596 894 1192 2682 3576 5145 7558 8899 10058 4 3578 4526 5984 8900 12 895 2685 3580 3930 5148 5358 6185 6255 7469 8901 9469 11469 4 597 1194 3582 8902 11 896 2688 3584 4528 5151 5359 5985 6186 7559 8903 10059 3 3586 3931 8904 6 598 897 1196 2691 3588 8905 8 3590 4530 5154 5986 7470 8906 9470 11470 9 898 2694 3592 3932 5155 6256 7560 8907 10060 4 599 1198 3594 8908 5 899 2697 3596 4532 8909 3 3598 3933 8910 14 600 900 1200 2700 3600 5160 5360 6191 7471 7561 8911 9471 10061 11471 3 3602 4534 8912 6 901 2703 3604 3934 6258 8913 4 601 1202 3606 8914 9 902 2706 3608 4536 5165 5987 7562 8915 10062 8 3610 3935 5166 6259 7472 8916 9472 11472 6 602 903 1204 2709 3612 8917 4 3614 4538 5988 8918 11 904 2712 3616 3936 5169 5361 6196 6260 7563 8919 10063 4 603 1206 3618 8920 12 905 2715 3620 4540 5172 5362 5989 6197 7473 8921 9473 11473 3 3622 3937 8922 9 604 906 1208 2718 3624 5175 7564 8923 10064 3 3626 4542 8924 6 907 2721 3628 3938 6262 8925 8 605 1210 3630 5178 7474 8926 9474 11474 11 908 2724 3632 4544 5179 5363 5990 6200 7565 8927 10065 3 3634 3939 8928 6 606 909 1212 2727 3636 8929 3 3638 4546 8930 14 910 2730 3640 3940 5184 5364 6203 6263 7475 7566 8931 9475 10066 11475 4 607 1214 3642 8932 5 911 2733 3644 4548 8933 3 3646 3941 8934 11 608 912 1216 2736 3648 5189 5365 6206 7567 8935 10067 8 3650 4550 5190 5991 7476 8936 9476 11476 6 913 2739 3652 3942 6264 8937 4 609 1218 3654 8938 9 914 2742 3656 4552 5193 5992 7568 8939 10068 3 3658 3943 8940 12 610 915 1220 2745 3660 5196 5366 6209 7477 8941 9477 11477 3 3662 4554 8942 11 916 2748 3664 3944 5199 5367 6210 6266 7569 8943 10069 4 611 1222 3666 8944 5 917 2751 3668 4556 8945 8 3670 3945 5202 6267 7478 8946 9478 11478 9 612 918 1224 2754 3672 5203 7570 8947 10070 3 3674 4558 8948 6 919 2757 3676 3946 6268 8949 4 613 1226 3678 8950 14 920 2760 3680 4560 5208 5368 5993 6215 7479 7571 8951 9479 10071 11479 3 3682 3947 8952 6 614 921 1228 2763 3684 8953 4 3686 4562 5994 8954 9 922 2766 3688 3948 5213 6270 7572 8955 10072 8 615 1230 3690 5214 7480 8956 9480 11480 5 923 2769 3692 4564 8957 3 3694 3949 8958 11 616 924 1232 2772 3696 5217 5369 6220 7573 8959 10073 3 3698 4566 8960 12 925 2775 3700 3950 5220 5370 6221 6271 7481 8961 9481 11481 4 617 1234 3702 8962 9 926 2778 3704 4568 5223 5995 7574 8963 10074 3 3706 3951 8964 6 618 927 1236 2781 3708 8965 8 3710 4570 5226 5996 7482 8966 9482 11482 11 928 2784 3712 3952 5227 5371 6224 6272 7575 8967 10075 4 619 1238 3714 8968 5 929 2787 3716 4572 8969 3 3718 3953 8970 14 620 930 1240 2790 3720 5232 5372 6227 7483 7576 8971 9483 10076 11483 4 3722 4574 5997 8972 6 931 2793 3724 3954 6274 8973 4 621 1242 3726 8974 11 932 2796 3728 4576 5237 5373 5998 6230 7577 8975 10077 8 3730 3955 5238 6275 7484 8976 9484 11484 6 622 933 1244 2799 3732 8977 3 3734 4578 8978 9 934 2802 3736 3956 5241 6276 7578 8979 10078 4 623 1246 3738 8980 12 935 2805 3740 4580 5244 5374 5999 6233 7485 8981 9485 11485 3 3742 3957 8982 11 624 936 1248 2808 3744 5247 5375 6234 7579 8983 10079 3 3746 4582 8984 6 937 2811 3748 3958 6278 8985 8 625 1250 3750 5250 7486 8986 9486 11486 9 938 2814 3752 4584 5251 6000 7580 8987 10080 3 3754 3959 8988 6 626 939 1252 2817 3756 8989 4 3758 4586 6001 8990 14 940 2820 3760 3960 5256 5376 6239 6279 7487 7581 8991 9487 10081 11487 4 627 1254 3762 8992 5 941 2823 3764 4588 8993 3 3766 3961 8994 9 628 942 1256 2826 3768 5261 7582 8995 10082 8 3770 4590 5262 6002 7488 8996 9488 11488 6 943 2829 3772 3962 6280 8997 4 629 1258 3774 8998 11 944 2832 3776 4592 5265 5377 6003 6244 7583 8999 10083 3 3778 3963 9000 12 630 945 1260 2835 3780 5268 5378 6245 7489 9001 9489 11489 3 3782 4594 9002 9 946 2838 3784 3964 5271 6282 7584 9003 10084 4 631 1262 3786 9004 5 947 2841 3788 4596 9005 8 3790 3965 5274 6283 7490 9006 9490 11490 11 632 948 1264 2844 3792 5275 5379 6248 7585 9007 10085 4 3794 4598 6004 9008 6 949 2847 3796 3966 6284 9009 4 633 1266 3798 9010 14 950 2850 3800 4600 5280 5380 6005 6251 7491 7586 9011 9491 10086 11491 3 3802 3967 9012 6 634 951 1268 2853 3804 9013 3 3806 4602 9014 11 952 2856 3808 3968 5285 5381 6254 6286 7587 9015 10087 8 635 1270 3810 5286 7492 9016 9492 11492 5 953 2859 3812 4604 9017 3 3814 3969 9018 9 636 954 1272 2862 3816 5289 7588 9019 10088 3 3818 4606 9020 12 955 2865 3820 3970 5292 5382 6257 6287 7493 9021 9493 11493 4 637 1274 3822 9022 11 956 2868 3824 4608 5295 5383 6006 6258 7589 9023 10089 3 3826 3971 9024 6 638 957 1276 2871 3828 9025 8 3830 4610 5298 6007 7494 9026 9494 11494 9 958 2874 3832 3972 5299 6288 7590 9027 10090 4 639 1278 3834 9028 5 959 2877 3836 4612 9029 3 3838 3973 9030 14 640 960 1280 2880 3840 5304 5384 6263 7495 7591 9031 9495 10091 11495 3 3842 4614 9032 6 961 2883 3844 3974 6290 9033 4 641 1282 3846 9034 9 962 2886 3848 4616 5309 6008 7592 9035 10092 8 3850 3975 5310 6291 7496 9036 9496 11496 6 642 963 1284 2889 3852 9037 3 3854 4618 9038 11 964 2892 3856 3976 5313 5385 6268 6292 7593 9039 10093 4 643 1286 3858 9040 12 965 2895 3860 4620 5316 5386 6009 6269 7497 9041 9497 11497 3 3862 3977 9042 9 644 966 1288 2898 3864 5319 7594 9043 10094 4 3866 4622 6010 9044 6 967 2901 3868 3978 6294 9045 8 645 1290 3870 5322 7498 9046 9498 11498 11 968 2904 3872 4624 5323 5387 6011 6272 7595 9047 10095 3 3874 3979 9048 6 646 969 1292 2907 3876 9049 3 3878 4626 9050 14 970 2910 3880 3980 5328 5388 6275 6295 7499 7596 9051 9499 10096 11499 4 647 1294 3882 9052 5 971 2913 3884 4628 9053 3 3886 3981 9054 11 648 972 1296 2916 3888 5333 5389 6278 7597 9055 10097 8 3890 4630 5334 6012 7500 9056 9500 11500 6 973 2919 3892 3982 6296 9057 4 649 1298 3894 9058 9 974 2922 3896 4632 5337 6013 7598 9059 10098 3 3898 3983 9060 12 650 975 1300 2925 3900 5340 5390 6281 7501 9061 9501 11501 4 3902 4634 6014 9062 11 976 2928 3904 3984 5343 5391 6282 6298 7599 9063 10099 4 651 1302 3906 9064 5 977 2931 3908 4636 9065 8 3910 3985 5346 6299 7502 9066 9502 11502 9 652 978 1304 2934 3912 5347 7600 9067 10100 3 3914 4638 9068 6 979 2937 3916 3986 6300 9069 4 653 1306 3918 9070 14 980 2940 3920 4640 5352 5392 6015 6287 7503 7601 9071 9503 10101 11503 3 3922 3987 9072 6 654 981 1308 2943 3924 9073 3 3926 4642 9074 9 982 2946 3928 3988 5357 6302 7602 9075 10102 8 655 1310 3930 5358 7504 9076 9504 11504 5 983 2949 3932 4644 9077 3 3934 3989 9078 11 656 984 1312 2952 3936 5361 5393 6292 7603 9079 10103 4 3938 4646 6016 9080 12 985 2955 3940 3990 5364 5394 6293 6303 7505 9081 9505 11505 4 657 1314 3942 9082 9 986 2958 3944 4648 5367 6017 7604 9083 10104 3 3946 3991 9084 6 658 987 1316 2961 3948 9085 8 3950 4650 5370 6018 7506 9086 9506 11506 11 988 2964 3952 3992 5371 5395 6296 6304 7605 9087 10105 4 659 1318 3954 9088 5 989 2967 3956 4652 9089 3 3958 3993 9090 14 660 990 1320 2970 3960 5376 5396 6299 7507 7606 9091 9507 10106 11507 3 3962 4654 9092 6 991 2973 3964 3994 6306 9093 4 661 1322 3966 9094 11 992 2976 3968 4656 5381 5397 6019 6302 7607 9095 10107 8 3970 3995 5382 6307 7508 9096 9508 11508 6 662 993 1324 2979 3972 9097 4 3974 4658 6020 9098 9 994 2982 3976 3996 5385 6308 7608 9099 10108 4 663 1326 3978 9100 12 995 2985 3980 4660 5388 5398 6021 6305 7509 9101 9509 11509 3 3982 3997 9102 11 664 996 1328 2988 3984 5391 5399 6306 7609 9103 10109 3 3986 4662 9104 6 997 2991 3988 3998 6310 9105 8 665 1330 3990 5394 7510 9106 9510 11510 9 998 2994 3992 4664 5395 6022 7610 9107 10110 3 3994 3999 9108 6 666 999 1332 2997 3996 9109 3 3998 4666 9110 11 1000 3000 4000 5400 6311 7511 7611 9111 9511 10111 11511 4 667 1334 4002 9112 5 1001 3003 4004 4668 9113 3 4001 4006 9114 9 668 1002 1336 3006 4008 5405 7612 9115 10112 8 4010 4670 5406 6023 7512 9116 9512 11512 6 1003 3009 4002 4012 6312 9117 4 669 1338 4014 9118 11 1004 3012 4016 4672 5401 5409 6024 6316 7613 9119 10113 3 4003 4018 9120 12 670 1005 1340 3015 4020 5402 5412 6317 7513 9121 9513 11513 3 4022 4674 9122 9 1006 3018 4004 4024 5415 6314 7614 9123 10114 4 671 1342 4026 9124 5 1007 3021 4028 4676 9125 8 4005 4030 5418 6315 7514 9126 9514 11514 11 672 1008 1344 3024 4032 5403 5419 6320 7615 9127 10115 3 4034 4678 9128 6 1009 3027 4006 4036 6316 9129 4 673 1346 4038 9130 14 1010 3030 4040 4680 5404 5424 6025 6323 7515 7616 9131 9515 10116 11515 3 4007 4042 9132 6 674 1011 1348 3033 4044 9133 4 4046 4682 6026 9134 11 1012 3036 4008 4048 5405 5429 6318 6326 7617 9135 10117 8 675 1350 4050 5430 7516 9136 9516 11516 5 1013 3039 4052 4684 9137 3 4009 4054 9138 9 676 1014 1352 3042 4056 5433 7618 9139 10118 3 4058 4686 9140 12 1015 3045 4010 4060 5406 5436 6319 6329 7517 9141 9517 11517 4 677 1354 4062 9142 11 1016 3048 4064 4688 5407 5439 6027 6330 7619 9143 10119 3 4011 4066 9144 6 678 1017 1356 3051 4068 9145 8 4070 4690 5442 6028 7518 9146 9518 11518 9 1018 3054 4012 4072 5443 6320 7620 9147 10120 4 679 1358 4074 9148 5 1019 3057 4076 4692 9149 3 4013 4078 9150 14 680 1020 1360 3060 4080 5408 5448 6335 7519 7621 9151 9519 10121 11519 4 4082 4694 6029 9152 6 1021 3063 4014 4084 6322 9153 4 681 1362 4086 9154 9 1022 3066 4088 4696 5453 6030 7622 9155 10122 8 4015 4090 5454 6323 7520 9156 9520 11520 6 682 1023 1364 3069 4092 9157 3 4094 4698 9158 11 1024 3072 4016 4096 5409 5457 6324 6340 7623 9159 10123 4 683 1366 4098 9160 12 1025 3075 4100 4700 5410 5460 6031 6341 7521 9161 9521 11521 3 4017 4102 9162 9 684 1026 1368 3078 4104 5463 7624 9163 10124 3 4106 4702 9164 6 1027 3081 4018 4108 6326 9165 8 685 1370 4110 5466 7522 9166 9522 11522 11 1028 3084 4112 4704 5411 5467 6032 6344 7625 9167 10125 3 4019 4114 9168 6 686 1029 1372 3087 4116 9169 4 4118 4706 6033 9170 14 1030 3090 4020 4120 5412 5472 6327 6347 7523 7626 9171 9523 10126 11523 4 687 1374 4122 9172 5 1031 3093 4124 4708 9173 3 4021 4126 9174 11 688 1032 1376 3096 4128 5413 5477 6350 7627 9175 10127 8 4130 4710 5478 6034 7524 9176 9524 11524 6 1033 3099 4022 4132 6328 9177 4 689 1378 4134 9178 9 1034 3102 4136 4712 5481 6035 7628 9179 10128 3 4023 4138 9180 12 690 1035 1380 3105 4140 5414 5484 6353 7525 9181 9525 11525 3 4142 4714 9182 11 1036 3108 4024 4144 5415 5487 6330 6354 7629 9183 10129 4 691 1382 4146 9184 5 1037 3111 4148 4716 9185 8 4025 4150 5490 6331 7526 9186 9526 11526 9 692 1038 1384 3114 4152 5491 7630 9187 10130 4 4154 4718 6036 9188 6 1039 3117 4026 4156 6332 9189 4 693 1386 4158 9190 14 1040 3120 4160 4720 5416 5496 6037 6359 7527 7631 9191 9527 10131 11527 3 4027 4162 9192 6 694 1041 1388 3123 4164 9193 3 4166 4722 9194 9 1042 3126 4028 4168 5501 6334 7632 9195 10132 8 695 1390 4170 5502 7528 9196 9528 11528 5 1043 3129 4172 4724 9197 3 4029 4174 9198 11 696 1044 1392 3132 4176 5417 5505 6364 7633 9199 10133 3 4178 4726 9200 12 1045 3135 4030 4180 5418 5508 6335 6365 7529 9201 9529 11529 4 697 1394 4182 9202 9 1046 3138 4184 4728 5511 6038 7634 9203 10134 3 4031 4186 9204 6 698 1047 1396 3141 4188 9205 8 4190 4730 5514 6039 7530 9206 9530 11530 11 1048 3144 4032 4192 5419 5515 6336 6368 7635 9207 10135 4 699 1398 4194 9208 5 1049 3147 4196 4732 9209 3 4033 4198 9210 14 700 1050 1400 3150 4200 5420 5520 6371 7531 7636 9211 9531 10136 11531 3 4202 4734 9212 6 1051 3153 4034 4204 6338 9213 4 701 1402 4206 9214 11 1052 3156 4208 4736 5421 5525 6040 6374 7637 9215 10137 8 4035 4210 5526 6339 7532 9216 9532 11532 6 702 1053 1404 3159 4212 9217 3 4214 4738 9218 9 1054 3162 4036 4216 5529 6340 7638 9219 10138 4 703 1406 4218 9220 12 1055 3165 4220 4740 5422 5532 6041 6377 7533 9221 9533 11533 3 4037 4222 9222 11 704 1056 1408 3168 4224 5423 5535 6378 7639 9223 10139 4 4226 4742 6042 9224 6 1057 3171 4038 4228 6342 9225 8 705 1410 4230 5538 7534 9226 9534 11534 9 1058 3174 4232 4744 5539 6043 7640 9227 10140 3 4039 4234 9228 6 706 1059 1412 3177 4236 9229 3 4238 4746 9230 14 1060 3180 4040 4240 5424 5544 6343 6383 7535 7641 9231 9535 10141 11535 4 707 1414 4242 9232 5 1061 3183 4244 4748 9233 3 4041 4246 9234 9 708 1062 1416 3186 4248 5549 7642 9235 10142 8 4250 4750 5550 6044 7536 9236 9536 11536 6 1063 3189 4042 4252 6344 9237 4 709 1418 4254 9238 11 1064 3192 4256 4752 5425 5553 6045 6388 7643 9239 10143 3 4043 4258 9240 12 710 1065 1420 3195 4260 5426 5556 6389 7537 9241 9537 11537 4 4262 4754 6046 9242 9 1066 3198 4044 4264 5559 6346 7644 9243 10144 4 711 1422 4266 9244 5 1067 3201 4268 4756 9245 8 4045 4270 5562 6347 7538 9246 9538 11538 11 712 1068 1424 3204 4272 5427 5563 6392 7645 9247 10145 3 4274 4758 9248 6 1069 3207 4046 4276 6348 9249 4 713 1426 4278 9250 14 1070 3210 4280 4760 5428 5568 6047 6395 7539 7646 9251 9539 10146 11539 3 4047 4282 9252 6 714 1071 1428 3213 4284 9253 3 4286 4762 9254 11 1072 3216 4048 4288 5429 5573 6350 6398 7647 9255 10147 8 715 1430 4290 5574 7540 9256 9540 11540 5 1073 3219 4292 4764 9257 3 4049 4294 9258 9 716 1074 1432 3222 4296 5577 7648 9259 10148 4 4298 4766 6048 9260 12 1075 3225 4050 4300 5430 5580 6351 6401 7541 9261 9541 11541 4 717 1434 4302 9262 11 1076 3228 4304 4768 5431 5583 6049 6402 7649 9263 10149 3 4051 4306 9264 6 718 1077 1436 3231 4308 9265 8 4310 4770 5586 6050 7542 9266 9542 11542 9 1078 3234 4052 4312 5587 6352 7650 9267 10150 4 719 1438 4314 9268 5 1079 3237 4316 4772 9269 3 4053 4318 9270 14 720 1080 1440 3240 4320 5432 5592 6407 7543 7651 9271 9543 10151 11543 3 4322 4774 9272 6 1081 3243 4054 4324 6354 9273 4 721 1442 4326 9274 9 1082 3246 4328 4776 5597 6051 7652 9275 10152 8 4055 4330 5598 6355 7544 9276 9544 11544 6 722 1083 1444 3249 4332 9277 4 4334 4778 6052 9278 11 1084 3252 4056 4336 5433 5601 6356 6412 7653 9279 10153 4 723 1446 4338 9280 12 1085 3255 4340 4780 5434 5604 6053 6413 7545 9281 9545 11545 3 4057 4342 9282 9 724 1086 1448 3258 4344 5607 7654 9283 10154 3 4346 4782 9284 6 1087 3261 4058 4348 6358 9285 8 725 1450 4350 5610 7546 9286 9546 11546 11 1088 3264 4352 4784 5435 5611 6054 6416 7655 9287 10155 3 4059 4354 9288 6 726 1089 1452 3267 4356 9289 3 4358 4786 9290 14 1090 3270 4060 4360 5436 5616 6359 6419 7547 7656 9291 9547 10156 11547 4 727 1454 4362 9292 5 1091 3273 4364 4788 9293 3 4061 4366 9294 11 728 1092 1456 3276 4368 5437 5621 6422 7657 9295 10157 8 4370 4790 5622 6055 7548 9296 9548 11548 6 1093 3279 4062 4372 6360 9297 4 729 1458 4374 9298 9 1094 3282 4376 4792 5625 6056 7658 9299 10158 3 4063 4378 9300 12 730 1095 1460 3285 4380 5438 5628 6425 7549 9301 9549 11549 3 4382 4794 9302 11 1096 3288 4064 4384 5439 5631 6362 6426 7659 9303 10159 4 731 1462 4386 9304 5 1097 3291 4388 4796 9305 8 4065 4390 5634 6363 7550 9306 9550 11550 9 732 1098 1464 3294 4392 5635 7660 9307 10160 3 4394 4798 9308 6 1099 3297 4066 4396 6364 9309 4 733 1466 4398 9310 14 1100 3300 4400 4800 5440 5640 6057 6431 7551 7661 9311 9551 10161 11551 3 4067 4402 9312 6 734 1101 1468 3303 4404 9313 4 4406 4802 6058 9314 9 1102 3306 4068 4408 5645 6366 7662 9315 10162 8 735 1470 4410 5646 7552 9316 9552 11552 5 1103 3309 4412 4804 9317 3 4069 4414 9318 11 736 1104 1472 3312 4416 5441 5649 6436 7663 9319 10163 3 4418 4806 9320 12 1105 3315 4070 4420 5442 5652 6367 6437 7553 9321 9553 11553 4 737 1474 4422 9322 9 1106 3318 4424 4808 5655 6059 7664 9323 10164 3 4071 4426 9324 6 738 1107 1476 3321 4428 9325 8 4430 4810 5658 6060 7554 9326 9554 11554 11 1108 3324 4072 4432 5443 5659 6368 6440 7665 9327 10165 4 739 1478 4434 9328 5 1109 3327 4436 4812 9329 3 4073 4438 9330 14 740 1110 1480 3330 4440 5444 5664 6443 7555 7666 9331 9555 10166 11555 4 4442 4814 6061 9332 6 1111 3333 4074 4444 6370 9333 5 741 1482 4446 5668 9334 11 1112 3336 4448 4816 5445 5670 6062 6446 7667 9335 10167 8 4075 4450 5671 6371 7556 9336 9556 11556 6 742 1113 1484 3339 4452 9337 4 4454 4818 5674 9338 9 1114 3342 4076 4456 5675 6372 7668 9339 10168 5 743 1486 4458 5677 9340 12 1115 3345 4460 4820 5446 5679 6063 6449 7557 9341 9557 11557 4 4077 4462 5681 9342 11 744 1116 1488 3348 4464 5447 5683 6450 7669 9343 10169 4 4466 4822 5684 9344 6 1117 3351 4078 4468 6374 9345 8 745 1490 4470 5687 7558 9346 9558 11558 9 1118 3354 4472 4824 5688 6064 7670 9347 10170 4 4079 4474 5690 9348 6 746 1119 1492 3357 4476 9349 5 4478 4826 5694 6065 9350 14 1120 3360 4080 4480 5448 5695 6375 6455 7559 7671 9351 9559 10171 11559 5 747 1494 4482 5696 9352 5 1121 3363 4484 4828 9353 4 4081 4486 5700 9354 9 748 1122 1496 3366 4488 5702 7672 9355 10172 8 4490 4830 5703 6066 7560 9356 9560 11560 6 1123 3369 4082 4492 6376 9357 5 749 1498 4494 5706 9358 11 1124 3372 4496 4832 5449 5707 6067 6460 7673 9359 10173 4 4083 4498 5709 9360 12 750 1125 1500 3375 4500 5450 5711 6461 7561 9361 9561 11561 4 4502 4834 5713 9362 9 1126 3378 4084 4504 5715 6378 7674 9363 10174 5 751 1502 4506 5716 9364 5 1127 3381 4508 4836 9365 8 4085 4510 5719 6379 7562 9366 9562 11562 11 752 1128 1504 3384 4512 5451 5720 6464 7675 9367 10175 5 4514 4838 5722 6068 9368 6 1129 3387 4086 4516 6380 9369 5 753 1506 4518 5726 9370 14 1130 3390 4520 4840 5452 5727 6069 6467 7563 7676 9371 9563 10176 11563 4 4087 4522 5728 9372 6 754 1131 1508 3393 4524 9373 4 4526 4842 5732 9374 11 1132 3396 4088 4528 5453 5734 6382 6470 7677 9375 10177 8 755 1510 4530 5735 7564 9376 9564 11564 5 1133 3399 4532 4844 9377 4 4089 4534 5738 9378 9 756 1134 1512 3402 4536 5739 7678 9379 10178 4 4538 4846 5741 9380 12 1135 3405 4090 4540 5454 5743 6383 6473 7565 9381 9565 11565 5 757 1514 4542 5745 9382 11 1136 3408 4544 4848 5455 5747 6070 6474 7679 9383 10179 4 4091 4546 5748 9384 6 758 1137 1516 3411 4548 9385 8 4550 4850 5751 6071 7566 9386 9566 11566 9 1138 3414 4092 4552 5752 6384 7680 9387 10180 5 759 1518 4554 5754 9388 5 1139 3417 4556 4852 9389 4 4093 4558 5758 9390 14 760 1140 1520 3420 4560 5456 5759 6479 7567 7681 9391 9567 10181 11567 4 4562 4854 5760 9392 6 1141 3423 4094 4564 6386 9393 5 761 1522 4566 5764 9394 9 1142 3426 4568 4856 5766 6072 7682 9395 10182 8 4095 4570 5767 6387 7568 9396 9568 11568 6 762 1143 1524 3429 4572 9397 4 4574 4858 5770 9398 11 1144 3432 4096 4576 5457 5771 6388 6484 7683 9399 10183 5 763 1526 4578 5773 9400 12 1145 3435 4580 4860 5458 5775 6073 6485 7569 9401 9569 11569 4 4097 4582 5777 9402 9 764 1146 1528 3438 4584 5779 7684 9403 10184 5 4586 4862 5780 6074 9404 6 1147 3441 4098 4588 6390 9405 8 765 1530 4590 5783 7570 9406 9570 11570 11 1148 3444 4592 4864 5459 5784 6075 6488 7685 9407 10185 4 4099 4594 5786 9408 6 766 1149 1532 3447 4596 9409 4 4598 4866 5790 9410 14 1150 3450 4100 4600 5460 5791 6391 6491 7571 7686 9411 9571 10186 11571 5 767 1534 4602 5792 9412 5 1151 3453 4604 4868 9413 4 4101 4606 5796 9414 11 768 1152 1536 3456 4608 5461 5798 6494 7687 9415 10187 8 4610 4870 5799 6076 7572 9416 9572 11572 6 1153 3459 4102 4612 6392 9417 5 769 1538 4614 5802 9418 9 1154 3462 4616 4872 5803 6077 7688 9419 10188 4 4103 4618 5805 9420 12 770 1155 1540 3465 4620 5462 5807 6497 7573 9421 9573 11573 5 4622 4874 5809 6078 9422 11 1156 3468 4104 4624 5463 5811 6394 6498 7689 9423 10189 5 771 1542 4626 5812 9424 5 1157 3471 4628 4876 9425 8 4105 4630 5815 6395 7574 9426 9574 11574 9 772 1158 1544 3474 4632 5816 7690 9427 10190 4 4634 4878 5818 9428 6 1159 3477 4106 4636 6396 9429 5 773 1546 4638 5822 9430 14 1160 3480 4640 4880 5464 5823 6079 6503 7575 7691 9431 9575 10191 11575 4 4107 4642 5824 9432 6 774 1161 1548 3483 4644 9433 4 4646 4882 5828 9434 9 1162 3486 4108 4648 5830 6398 7692 9435 10192 8 775 1550 4650 5831 7576 9436 9576 11576 5 1163 3489 4652 4884 9437 4 4109 4654 5834 9438 11 776 1164 1552 3492 4656 5465 5835 6508 7693 9439 10193 5 4658 4886 5837 6080 9440 12 1165 3495 4110 4660 5466 5839 6399 6509 7577 9441 9577 11577 5 777 1554 4662 5841 9442 9 1166 3498 4664 4888 5843 6081 7694 9443 10194 4 4111 4666 5844 9444 6 778 1167 1556 3501 4668 9445 8 4670 4890 5847 6082 7578 9446 9578 11578 11 1168 3504 4112 4672 5467 5848 6400 6512 7695 9447 10195 5 779 1558 4674 5850 9448 5 1169 3507 4676 4892 9449 4 4113 4678 5854 9450 14 780 1170 1560 3510 4680 5468 5855 6515 7579 7696 9451 9579 10196 11579 4 4682 4894 5856 9452 6 1171 3513 4114 4684 6402 9453 5 781 1562 4686 5860 9454 11 1172 3516 4688 4896 5469 5862 6083 6518 7697 9455 10197 8 4115 4690 5863 6403 7580 9456 9580 11580 6 782 1173 1564 3519 4692 9457 5 4694 4898 5866 6084 9458 9 1174 3522 4116 4696 5867 6404 7698 9459 10198 5 783 1566 4698 5869 9460 12 1175 3525 4700 4900 5470 5871 6085 6521 7581 9461 9581 11581 4 4117 4702 5873 9462 11 784 1176 1568 3528 4704 5471 5875 6522 7699 9463 10199 4 4706 4902 5876 9464 6 1177 3531 4118 4708 6406 9465 8 785 1570 4710 5879 7582 9466 9582 11582 9 1178 3534 4712 4904 5880 6086 7700 9467 10200 4 4119 4714 5882 9468 6 786 1179 1572 3537 4716 9469 4 4718 4906 5886 9470 14 1180 3540 4120 4720 5472 5887 6407 6527 7583 7701 9471 9583 10201 11583 5 787 1574 4722 5888 9472 5 1181 3543 4724 4908 9473 4 4121 4726 5892 9474 9 788 1182 1576 3546 4728 5894 7702 9475 10202 8 4730 4910 5895 6087 7584 9476 9584 11584 6 1183 3549 4122 4732 6408 9477 5 789 1578 4734 5898 9478 11 1184 3552 4736 4912 5473 5899 6088 6532 7703 9479 10203 4 4123 4738 5901 9480 12 790 1185 1580 3555 4740 5474 5903 6533 7585 9481 9585 11585 4 4742 4914 5905 9482 9 1186 3558 4124 4744 5907 6410 7704 9483 10204 5 791 1582 4746 5908 9484 5 1187 3561 4748 4916 9485 8 4125 4750 5911 6411 7586 9486 9586 11586 11 792 1188 1584 3564 4752 5475 5912 6536 7705 9487 10205 4 4754 4918 5914 9488 6 1189 3567 4126 4756 6412 9489 5 793 1586 4758 5918 9490 14 1190 3570 4760 4920 5476 5919 6089 6539 7587 7706 9491 9587 10206 11587 4 4127 4762 5920 9492 6 794 1191 1588 3573 4764 9493 5 4766 4922 5924 6090 9494 11 1192 3576 4128 4768 5477 5926 6414 6542 7707 9495 10207 8 795 1590 4770 5927 7588 9496 9588 11588 5 1193 3579 4772 4924 9497 4 4129 4774 5930 9498 9 796 1194 1592 3582 4776 5931 7708 9499 10208 4 4778 4926 5933 9500 12 1195 3585 4130 4780 5478 5935 6415 6545 7589 9501 9589 11589 5 797 1594 4782 5937 9502 11 1196 3588 4784 4928 5479 5939 6091 6546 7709 9503 10209 4 4131 4786 5940 9504 6 798 1197 1596 3591 4788 9505 8 4790 4930 5943 6092 7590 9506 9590 11590 9 1198 3594 4132 4792 5944 6416 7710 9507 10210 5 799 1598 4794 5946 9508 5 1199 3597 4796 4932 9509 4 4133 4798 5950 9510 14 800 1200 1600 3600 4800 5480 5951 6551 7591 7711 9511 9591 10211 11591 5 4802 4934 5952 6093 9512 6 1201 3603 4134 4804 6418 9513 5 801 1602 4806 5956 9514 9 1202 3606 4808 4936 5958 6094 7712 9515 10212 8 4135 4810 5959 6419 7592 9516 9592 11592 6 802 1203 1604 3609 4812 9517 4 4814 4938 5962 9518 11 1204 3612 4136 4816 5481 5963 6420 6556 7713 9519 10213 5 803 1606 4818 5965 9520 12 1205 3615 4820 4940 5482 5967 6095 6557 7593 9521 9593 11593 4 4137 4822 5969 9522 9 804 1206 1608 3618 4824 5971 7714 9523 10214 4 4826 4942 5972 9524 6 1207 3621 4138 4828 6422 9525 8 805 1610 4830 5975 7594 9526 9594 11594 11 1208 3624 4832 4944 5483 5976 6096 6560 7715 9527 10215 4 4139 4834 5978 9528 6 806 1209 1612 3627 4836 9529 5 4838 4946 5982 6097 9530 14 1210 3630 4140 4840 5484 5983 6423 6563 7595 7716 9531 9595 10216 11595 5 807 1614 4842 5984 9532 5 1211 3633 4844 4948 9533 4 4141 4846 5988 9534 11 808 1212 1616 3636 4848 5485 5990 6566 7717 9535 10217 8 4850 4950 5991 6098 7596 9536 9596 11596 6 1213 3639 4142 4852 6424 9537 5 809 1618 4854 5994 9538 9 1214 3642 4856 4952 5995 6099 7718 9539 10218 4 4143 4858 5997 9540 12 810 1215 1620 3645 4860 5486 5999 6569 7597 9541 9597 11597 4 4862 4954 6001 9542 11 1216 3648 4144 4864 5487 6003 6426 6570 7719 9543 10219 5 811 1622 4866 6004 9544 5 1217 3651 4868 4956 9545 8 4145 4870 6007 6427 7598 9546 9598 11598 9 812 1218 1624 3654 4872 6008 7720 9547 10220 5 4874 4958 6010 6100 9548 6 1219 3657 4146 4876 6428 9549 5 813 1626 4878 6014 9550 14 1220 3660 4880 4960 5488 6015 6101 6575 7599 7721 9551 9599 10221 11599 4 4147 4882 6016 9552 6 814 1221 1628 3663 4884 9553 4 4886 4962 6020 9554 9 1222 3666 4148 4888 6022 6430 7722 9555 10222 8 815 1630 4890 6023 7600 9556 9600 11600 5 1223 3669 4892 4964 9557 4 4149 4894 6026 9558 11 816 1224 1632 3672 4896 5489 6027 6580 7723 9559 10223 4 4898 4966 6029 9560 12 1225 3675 4150 4900 5490 6031 6431 6581 7601 9561 9601 11601 5 817 1634 4902 6033 9562 9 1226 3678 4904 4968 6035 6102 7724 9563 10224 4 4151 4906 6036 9564 6 818 1227 1636 3681 4908 9565 8 4910 4970 6039 6103 7602 9566 9602 11602 11 1228 3684 4152 4912 5491 6040 6432 6584 7725 9567 10225 5 819 1638 4914 6042 9568 5 1229 3687 4916 4972 9569 4 4153 4918 6046 9570 14 820 1230 1640 3690 4920 5492 6047 6587 7603 7726 9571 9603 10226 11603 4 4922 4974 6048 9572 6 1231 3693 4154 4924 6434 9573 5 821 1642 4926 6052 9574 11 1232 3696 4928 4976 5493 6054 6104 6590 7727 9575 10227 8 4155 4930 6055 6435 7604 9576 9604 11604 6 822 1233 1644 3699 4932 9577 4 4934 4978 6058 9578 9 1234 3702 4156 4936 6059 6436 7728 9579 10228 5 823 1646 4938 6061 9580 12 1235 3705 4940 4980 5494 6063 6105 6593 7605 9581 9605 11605 4 4157 4942 6065 9582 11 824 1236 1648 3708 4944 5495 6067 6594 7729 9583 10229 5 4946 4982 6068 6106 9584 6 1237 3711 4158 4948 6438 9585 8 825 1650 4950 6071 7606 9586 9606 11606 9 1238 3714 4952 4984 6072 6107 7730 9587 10230 4 4159 4954 6074 9588 6 826 1239 1652 3717 4956 9589 4 4958 4986 6078 9590 14 1240 3720 4160 4960 5496 6079 6439 6599 7607 7731 9591 9607 10231 11607 5 827 1654 4962 6080 9592 5 1241 3723 4964 4988 9593 4 4161 4966 6084 9594 9 828 1242 1656 3726 4968 6086 7732 9595 10232 8 4970 4990 6087 6108 7608 9596 9608 11608 6 1243 3729 4162 4972 6440 9597 5 829 1658 4974 6090 9598 11 1244 3732 4976 4992 5497 6091 6109 6604 7733 9599 10233 4 4163 4978 6093 9600 12 830 1245 1660 3735 4980 5498 6095 6605 7609 9601 9609 11609 5 4982 4994 6097 6110 9602 9 1246 3738 4164 4984 6099 6442 7734 9603 10234 5 831 1662 4986 6100 9604 5 1247 3741 4988 4996 9605 8 4165 4990 6103 6443 7610 9606 9610 11610 11 832 1248 1664 3744 4992 5499 6104 6608 7735 9607 10235 4 4994 4998 6106 9608 6 1249 3747 4166 4996 6444 9609 5 833 1666 4998 6110 9610 11 1250 3750 5000 5500 6111 6611 7611 7736 9611 10236 11611 2 4167 9612 6 834 1251 1668 3753 5001 9613 1 9614 11 1252 3756 4168 5003 5501 6116 6446 6614 7737 9615 10237 8 835 1670 5004 6117 7612 9612 9616 11612 5 1253 3759 5001 5005 9617 2 4169 9618 9 836 1254 1672 3762 5007 6120 7738 9619 10238 1 9620 12 1255 3765 4170 5008 5502 6123 6447 6617 7613 9613 9621 11613 3 837 1674 9622 11 1256 3768 5003 5009 5503 6112 6126 6618 7739 9623 10239 2 4171 9624 6 838 1257 1676 3771 5011 9625 8 5004 5012 6113 6129 7614 9614 9626 11614 9 1258 3774 4172 5013 6130 6448 7740 9627 10240 3 839 1678 9628 5 1259 3777 5005 5015 9629 2 4173 9630 14 840 1260 1680 3780 5016 5504 6135 6623 7615 7741 9615 9631 10241 11615 1 9632 6 1261 3783 4174 5017 6450 9633 3 841 1682 9634 9 1262 3786 5007 5019 6114 6140 7742 9635 10242 8 4175 5020 6141 6451 7616 9616 9636 11616 6 842 1263 1684 3789 5021 9637 1 9638 11 1264 3792 4176 5023 5505 6144 6452 6628 7743 9639 10243 3 843 1686 9640 12 1265 3795 5008 5024 5506 6115 6147 6629 7617 9617 9641 11617 2 4177 9642 9 844 1266 1688 3798 5025 6150 7744 9643 10244 1 9644 6 1267 3801 4178 5027 6454 9645 8 845 1690 5028 6153 7618 9618 9646 11618 11 1268 3804 5009 5029 5507 6116 6154 6632 7745 9647 10245 2 4179 9648 6 846 1269 1692 3807 5031 9649 1 9650 14 1270 3810 4180 5032 5508 6159 6455 6635 7619 7746 9619 9651 10246 11619 3 847 1694 9652 5 1271 3813 5011 5033 9653 2 4181 9654 11 848 1272 1696 3816 5035 5509 6164 6638 7747 9655 10247 8 5012 5036 6117 6165 7620 9620 9656 11620 6 1273 3819 4182 5037 6456 9657 3 849 1698 9658 9 1274 3822 5013 5039 6118 6168 7748 9659 10248 2 4183 9660 12 850 1275 1700 3825 5040 5510 6171 6641 7621 9621 9661 11621 1 9662 11 1276 3828 4184 5041 5511 6174 6458 6642 7749 9663 10249 3 851 1702 9664 5 1277 3831 5015 5043 9665 8 4185 5044 6177 6459 7622 9622 9666 11622 9 852 1278 1704 3834 5045 6178 7750 9667 10250 1 9668 6 1279 3837 4186 5047 6460 9669 3 853 1706 9670 14 1280 3840 5016 5048 5512 6119 6183 6647 7623 7751 9623 9671 10251 11623 2 4187 9672 6 854 1281 1708 3843 5049 9673 1 9674 9 1282 3846 4188 5051 6188 6462 7752 9675 10252 8 855 1710 5052 6189 7624 9624 9676 11624 5 1283 3849 5017 5053 9677 2 4189 9678 11 856 1284 1712 3852 5055 5513 6192 6652 7753 9679 10253 1 9680 12 1285 3855 4190 5056 5514 6195 6463 6653 7625 9625 9681 11625 3 857 1714 9682 9 1286 3858 5019 5057 6120 6198 7754 9683 10254 2 4191 9684 6 858 1287 1716 3861 5059 9685 8 5020 5060 6121 6201 7626 9626 9686 11626 11 1288 3864 4192 5061 5515 6202 6464 6656 7755 9687 10255 3 859 1718 9688 5 1289 3867 5021 5063 9689 2 4193 9690 14 860 1290 1720 3870 5064 5516 6207 6659 7627 7756 9627 9691 10256 11627 1 9692 6 1291 3873 4194 5065 6466 9693 3 861 1722 9694 11 1292 3876 5023 5067 5517 6122 6212 6662 7757 9695 10257 8 4195 5068 6213 6467 7628 9628 9696 11628 6 862 1293 1724 3879 5069 9697 1 9698 9 1294 3882 4196 5071 6216 6468 7758 9699 10258 3 863 1726 9700 12 1295 3885 5024 5072 5518 6123 6219 6665 7629 9629 9701 11629 2 4197 9702 11 864 1296 1728 3888 5073 5519 6222 6666 7759 9703 10259 1 9704 6 1297 3891 4198 5075 6470 9705 8 865 1730 5076 6225 7630 9630 9706 11630 9 1298 3894 5025 5077 6124 6226 7760 9707 10260 2 4199 9708 6 866 1299 1732 3897 5079 9709 1 9710 14 1300 3900 4200 5080 5520 6231 6471 6671 7631 7761 9631 9711 10261 11631 3 867 1734 9712 5 1301 3903 5027 5081 9713 2 4201 9714 9 868 1302 1736 3906 5083 6236 7762 9715 10262 8 5028 5084 6125 6237 7632 9632 9716 11632 6 1303 3909 4202 5085 6472 9717 3 869 1738 9718 11 1304 3912 5029 5087 5521 6126 6240 6676 7763 9719 10263 2 4203 9720 12 870 1305 1740 3915 5088 5522 6243 6677 7633 9633 9721 11633 1 9722 9 1306 3918 4204 5089 6246 6474 7764 9723 10264 3 871 1742 9724 5 1307 3921 5031 5091 9725 8 4205 5092 6249 6475 7634 9634 9726 11634 11 872 1308 1744 3924 5093 5523 6250 6680 7765 9727 10265 1 9728 6 1309 3927 4206 5095 6476 9729 3 873 1746 9730 14 1310 3930 5032 5096 5524 6127 6255 6683 7635 7766 9635 9731 10266 11635 2 4207 9732 6 874 1311 1748 3933 5097 9733 1 9734 11 1312 3936 4208 5099 5525 6260 6478 6686 7767 9735 10267 8 875 1750 5100 6261 7636 9636 9736 11636 5 1313 3939 5033 5101 9737 2 4209 9738 9 876 1314 1752 3942 5103 6264 7768 9739 10268 1 9740 12 1315 3945 4210 5104 5526 6267 6479 6689 7637 9637 9741 11637 3 877 1754 9742 11 1316 3948 5035 5105 5527 6128 6270 6690 7769 9743 10269 2 4211 9744 6 878 1317 1756 3951 5107 9745 8 5036 5108 6129 6273 7638 9638 9746 11638 9 1318 3954 4212 5109 6274 6480 7770 9747 10270 3 879 1758 9748 5 1319 3957 5037 5111 9749 2 4213 9750 14 880 1320 1760 3960 5112 5528 6279 6695 7639 7771 9639 9751 10271 11639 1 9752 6 1321 3963 4214 5113 6482 9753 3 881 1762 9754 9 1322 3966 5039 5115 6130 6284 7772 9755 10272 8 4215 5116 6285 6483 7640 9640 9756 11640 6 882 1323 1764 3969 5117 9757 1 9758 11 1324 3972 4216 5119 5529 6288 6484 6700 7773 9759 10273 3 883 1766 9760 12 1325 3975 5040 5120 5530 6131 6291 6701 7641 9641 9761 11641 2 4217 9762 9 884 1326 1768 3978 5121 6294 7774 9763 10274 1 9764 6 1327 3981 4218 5123 6486 9765 8 885 1770 5124 6297 7642 9642 9766 11642 11 1328 3984 5041 5125 5531 6132 6298 6704 7775 9767 10275 2 4219 9768 6 886 1329 1772 3987 5127 9769 1 9770 14 1330 3990 4220 5128 5532 6303 6487 6707 7643 7776 9643 9771 10276 11643 3 887 1774 9772 5 1331 3993 5043 5129 9773 2 4221 9774 11 888 1332 1776 3996 5131 5533 6308 6710 7777 9775 10277 8 5044 5132 6133 6309 7644 9644 9776 11644 6 1333 3999 4222 5133 6488 9777 3 889 1778 9778 9 1334 4002 5045 5135 6134 6312 7778 9779 10278 2 4223 9780 12 890 1335 1780 4005 5136 5534 6315 6713 7645 9645 9781 11645 1 9782 11 1336 4008 4224 5137 5535 6318 6490 6714 7779 9783 10279 3 891 1782 9784 5 1337 4011 5047 5139 9785 8 4225 5140 6321 6491 7646 9646 9786 11646 9 892 1338 1784 4014 5141 6322 7780 9787 10280 1 9788 6 1339 4017 4226 5143 6492 9789 3 893 1786 9790 14 1340 4020 5048 5144 5536 6135 6327 6719 7647 7781 9647 9791 10281 11647 2 4227 9792 6 894 1341 1788 4023 5145 9793 1 9794 9 1342 4026 4228 5147 6332 6494 7782 9795 10282 8 895 1790 5148 6333 7648 9648 9796 11648 5 1343 4029 5049 5149 9797 2 4229 9798 11 896 1344 1792 4032 5151 5537 6336 6724 7783 9799 10283 1 9800 12 1345 4035 4230 5152 5538 6339 6495 6725 7649 9649 9801 11649 3 897 1794 9802 9 1346 4038 5051 5153 6136 6342 7784 9803 10284 2 4231 9804 6 898 1347 1796 4041 5155 9805 8 5052 5156 6137 6345 7650 9650 9806 11650 11 1348 4044 4232 5157 5539 6346 6496 6728 7785 9807 10285 3 899 1798 9808 5 1349 4047 5053 5159 9809 2 4233 9810 14 900 1350 1800 4050 5160 5540 6351 6731 7651 7786 9651 9811 10286 11651 1 9812 6 1351 4053 4234 5161 6498 9813 3 901 1802 9814 11 1352 4056 5055 5163 5541 6138 6356 6734 7787 9815 10287 8 4235 5164 6357 6499 7652 9652 9816 11652 6 902 1353 1804 4059 5165 9817 1 9818 9 1354 4062 4236 5167 6360 6500 7788 9819 10288 3 903 1806 9820 12 1355 4065 5056 5168 5542 6139 6363 6737 7653 9653 9821 11653 2 4237 9822 11 904 1356 1808 4068 5169 5543 6366 6738 7789 9823 10289 1 9824 6 1357 4071 4238 5171 6502 9825 8 905 1810 5172 6369 7654 9654 9826 11654 9 1358 4074 5057 5173 6140 6370 7790 9827 10290 2 4239 9828 6 906 1359 1812 4077 5175 9829 1 9830 14 1360 4080 4240 5176 5544 6375 6503 6743 7655 7791 9655 9831 10291 11655 3 907 1814 9832 5 1361 4083 5059 5177 9833 2 4241 9834 9 908 1362 1816 4086 5179 6380 7792 9835 10292 8 5060 5180 6141 6381 7656 9656 9836 11656 6 1363 4089 4242 5181 6504 9837 3 909 1818 9838 11 1364 4092 5061 5183 5545 6142 6384 6748 7793 9839 10293 2 4243 9840 12 910 1365 1820 4095 5184 5546 6387 6749 7657 9657 9841 11657 1 9842 9 1366 4098 4244 5185 6390 6506 7794 9843 10294 3 911 1822 9844 5 1367 4101 5063 5187 9845 8 4245 5188 6393 6507 7658 9658 9846 11658 11 912 1368 1824 4104 5189 5547 6394 6752 7795 9847 10295 1 9848 6 1369 4107 4246 5191 6508 9849 3 913 1826 9850 14 1370 4110 5064 5192 5548 6143 6399 6755 7659 7796 9659 9851 10296 11659 2 4247 9852 6 914 1371 1828 4113 5193 9853 1 9854 11 1372 4116 4248 5195 5549 6404 6510 6758 7797 9855 10297 8 915 1830 5196 6405 7660 9660 9856 11660 5 1373 4119 5065 5197 9857 2 4249 9858 9 916 1374 1832 4122 5199 6408 7798 9859 10298 1 9860 12 1375 4125 4250 5200 5550 6411 6511 6761 7661 9661 9861 11661 3 917 1834 9862 11 1376 4128 5067 5201 5551 6144 6414 6762 7799 9863 10299 2 4251 9864 6 918 1377 1836 4131 5203 9865 8 5068 5204 6145 6417 7662 9662 9866 11662 9 1378 4134 4252 5205 6418 6512 7800 9867 10300 3 919 1838 9868 5 1379 4137 5069 5207 9869 2 4253 9870 14 920 1380 1840 4140 5208 5552 6423 6767 7663 7801 9663 9871 10301 11663 1 9872 6 1381 4143 4254 5209 6514 9873 3 921 1842 9874 9 1382 4146 5071 5211 6146 6428 7802 9875 10302 8 4255 5212 6429 6515 7664 9664 9876 11664 6 922 1383 1844 4149 5213 9877 1 9878 11 1384 4152 4256 5215 5553 6432 6516 6772 7803 9879 10303 3 923 1846 9880 12 1385 4155 5072 5216 5554 6147 6435 6773 7665 9665 9881 11665 2 4257 9882 9 924 1386 1848 4158 5217 6438 7804 9883 10304 1 9884 6 1387 4161 4258 5219 6518 9885 8 925 1850 5220 6441 7666 9666 9886 11666 11 1388 4164 5073 5221 5555 6148 6442 6776 7805 9887 10305 2 4259 9888 6 926 1389 1852 4167 5223 9889 1 9890 14 1390 4170 4260 5224 5556 6447 6519 6779 7667 7806 9667 9891 10306 11667 3 927 1854 9892 5 1391 4173 5075 5225 9893 2 4261 9894 11 928 1392 1856 4176 5227 5557 6452 6782 7807 9895 10307 8 5076 5228 6149 6453 7668 9668 9896 11668 6 1393 4179 4262 5229 6520 9897 3 929 1858 9898 9 1394 4182 5077 5231 6150 6456 7808 9899 10308 2 4263 9900 12 930 1395 1860 4185 5232 5558 6459 6785 7669 9669 9901 11669 1 9902 11 1396 4188 4264 5233 5559 6462 6522 6786 7809 9903 10309 3 931 1862 9904 5 1397 4191 5079 5235 9905 8 4265 5236 6465 6523 7670 9670 9906 11670 9 932 1398 1864 4194 5237 6466 7810 9907 10310 1 9908 6 1399 4197 4266 5239 6524 9909 3 933 1866 9910 14 1400 4200 5080 5240 5560 6151 6471 6791 7671 7811 9671 9911 10311 11671 2 4267 9912 6 934 1401 1868 4203 5241 9913 1 9914 9 1402 4206 4268 5243 6476 6526 7812 9915 10312 8 935 1870 5244 6477 7672 9672 9916 11672 5 1403 4209 5081 5245 9917 2 4269 9918 11 936 1404 1872 4212 5247 5561 6480 6796 7813 9919 10313 1 9920 12 1405 4215 4270 5248 5562 6483 6527 6797 7673 9673 9921 11673 3 937 1874 9922 9 1406 4218 5083 5249 6152 6486 7814 9923 10314 2 4271 9924 6 938 1407 1876 4221 5251 9925 8 5084 5252 6153 6489 7674 9674 9926 11674 11 1408 4224 4272 5253 5563 6490 6528 6800 7815 9927 10315 3 939 1878 9928 5 1409 4227 5085 5255 9929 2 4273 9930 14 940 1410 1880 4230 5256 5564 6495 6803 7675 7816 9675 9931 10316 11675 1 9932 6 1411 4233 4274 5257 6530 9933 3 941 1882 9934 11 1412 4236 5087 5259 5565 6154 6500 6806 7817 9935 10317 8 4275 5260 6501 6531 7676 9676 9936 11676 6 942 1413 1884 4239 5261 9937 1 9938 9 1414 4242 4276 5263 6504 6532 7818 9939 10318 3 943 1886 9940 12 1415 4245 5088 5264 5566 6155 6507 6809 7677 9677 9941 11677 2 4277 9942 11 944 1416 1888 4248 5265 5567 6510 6810 7819 9943 10319 1 9944 6 1417 4251 4278 5267 6534 9945 8 945 1890 5268 6513 7678 9678 9946 11678 9 1418 4254 5089 5269 6156 6514 7820 9947 10320 2 4279 9948 6 946 1419 1892 4257 5271 9949 1 9950 14 1420 4260 4280 5272 5568 6519 6535 6815 7679 7821 9679 9951 10321 11679 3 947 1894 9952 5 1421 4263 5091 5273 9953 2 4281 9954 9 948 1422 1896 4266 5275 6524 7822 9955 10322 8 5092 5276 6157 6525 7680 9680 9956 11680 6 1423 4269 4282 5277 6536 9957 3 949 1898 9958 11 1424 4272 5093 5279 5569 6158 6528 6820 7823 9959 10323 2 4283 9960 12 950 1425 1900 4275 5280 5570 6531 6821 7681 9681 9961 11681 1 9962 9 1426 4278 4284 5281 6534 6538 7824 9963 10324 3 951 1902 9964 5 1427 4281 5095 5283 9965 8 4285 5284 6537 6539 7682 9682 9966 11682 11 952 1428 1904 4284 5285 5571 6538 6824 7825 9967 10325 1 9968 6 1429 4286 4287 5287 6540 9969 3 953 1906 9970 14 1430 4290 5096 5288 5572 6159 6543 6827 7683 7826 9683 9971 10326 11683 2 4287 9972 6 954 1431 1908 4293 5289 9973 1 9974 11 1432 4288 4296 5291 5573 6542 6548 6830 7827 9975 10327 8 955 1910 5292 6549 7684 9684 9976 11684 5 1433 4299 5097 5293 9977 2 4289 9978 9 956 1434 1912 4302 5295 6552 7828 9979 10328 1 9980 12 1435 4290 4305 5296 5574 6543 6555 6833 7685 9685 9981 11685 3 957 1914 9982 11 1436 4308 5099 5297 5575 6160 6558 6834 7829 9983 10329 2 4291 9984 6 958 1437 1916 4311 5299 9985 8 5100 5300 6161 6561 7686 9686 9986 11686 9 1438 4292 4314 5301 6544 6562 7830 9987 10330 3 959 1918 9988 5 1439 4317 5101 5303 9989 2 4293 9990 14 960 1440 1920 4320 5304 5576 6567 6839 7687 7831 9687 9991 10331 11687 1 9992 6 1441 4294 4323 5305 6546 9993 3 961 1922 9994 9 1442 4326 5103 5307 6162 6572 7832 9995 10332 8 4295 5308 6547 6573 7688 9688 9996 11688 6 962 1443 1924 4329 5309 9997 1 9998 11 1444 4296 4332 5311 5577 6548 6576 6844 7833 9999 10333 3 963 1926 10000 12 1445 4335 5104 5312 5578 6163 6579 6845 7689 9689 10001 11689 2 4297 10002 9 964 1446 1928 4338 5313 6582 7834 10003 10334 1 10004 6 1447 4298 4341 5315 6550 10005 8 965 1930 5316 6585 7690 9690 10006 11690 11 1448 4344 5105 5317 5579 6164 6586 6848 7835 10007 10335 2 4299 10008 6 966 1449 1932 4347 5319 10009 1 10010 14 1450 4300 4350 5320 5580 6551 6591 6851 7691 7836 9691 10011 10336 11691 3 967 1934 10012 5 1451 4353 5107 5321 10013 2 4301 10014 11 968 1452 1936 4356 5323 5581 6596 6854 7837 10015 10337 8 5108 5324 6165 6597 7692 9692 10016 11692 6 1453 4302 4359 5325 6552 10017 3 969 1938 10018 9 1454 4362 5109 5327 6166 6600 7838 10019 10338 2 4303 10020 12 970 1455 1940 4365 5328 5582 6603 6857 7693 9693 10021 11693 1 10022 11 1456 4304 4368 5329 5583 6554 6606 6858 7839 10023 10339 3 971 1942 10024 5 1457 4371 5111 5331 10025 8 4305 5332 6555 6609 7694 9694 10026 11694 9 972 1458 1944 4374 5333 6610 7840 10027 10340 1 10028 6 1459 4306 4377 5335 6556 10029 3 973 1946 10030 14 1460 4380 5112 5336 5584 6167 6615 6863 7695 7841 9695 10031 10341 11695 2 4307 10032 6 974 1461 1948 4383 5337 10033 1 10034 9 1462 4308 4386 5339 6558 6620 7842 10035 10342 8 975 1950 5340 6621 7696 9696 10036 11696 5 1463 4389 5113 5341 10037 2 4309 10038 11 976 1464 1952 4392 5343 5585 6624 6868 7843 10039 10343 1 10040 12 1465 4310 4395 5344 5586 6559 6627 6869 7697 9697 10041 11697 3 977 1954 10042 9 1466 4398 5115 5345 6168 6630 7844 10043 10344 2 4311 10044 6 978 1467 1956 4401 5347 10045 8 5116 5348 6169 6633 7698 9698 10046 11698 11 1468 4312 4404 5349 5587 6560 6634 6872 7845 10047 10345 3 979 1958 10048 5 1469 4407 5117 5351 10049 2 4313 10050 14 980 1470 1960 4410 5352 5588 6639 6875 7699 7846 9699 10051 10346 11699 1 10052 6 1471 4314 4413 5353 6562 10053 3 981 1962 10054 11 1472 4416 5119 5355 5589 6170 6644 6878 7847 10055 10347 8 4315 5356 6563 6645 7700 9700 10056 11700 6 982 1473 1964 4419 5357 10057 1 10058 9 1474 4316 4422 5359 6564 6648 7848 10059 10348 3 983 1966 10060 12 1475 4425 5120 5360 5590 6171 6651 6881 7701 9701 10061 11701 2 4317 10062 11 984 1476 1968 4428 5361 5591 6654 6882 7849 10063 10349 1 10064 6 1477 4318 4431 5363 6566 10065 8 985 1970 5364 6657 7702 9702 10066 11702 9 1478 4434 5121 5365 6172 6658 7850 10067 10350 2 4319 10068 6 986 1479 1972 4437 5367 10069 1 10070 14 1480 4320 4440 5368 5592 6567 6663 6887 7703 7851 9703 10071 10351 11703 3 987 1974 10072 5 1481 4443 5123 5369 10073 2 4321 10074 9 988 1482 1976 4446 5371 6668 7852 10075 10352 8 5124 5372 6173 6669 7704 9704 10076 11704 6 1483 4322 4449 5373 6568 10077 3 989 1978 10078 11 1484 4452 5125 5375 5593 6174 6672 6892 7853 10079 10353 2 4323 10080 12 990 1485 1980 4455 5376 5594 6675 6893 7705 9705 10081 11705 1 10082 9 1486 4324 4458 5377 6570 6678 7854 10083 10354 3 991 1982 10084 5 1487 4461 5127 5379 10085 8 4325 5380 6571 6681 7706 9706 10086 11706 11 992 1488 1984 4464 5381 5595 6682 6896 7855 10087 10355 1 10088 6 1489 4326 4467 5383 6572 10089 3 993 1986 10090 14 1490 4470 5128 5384 5596 6175 6687 6899 7707 7856 9707 10091 10356 11707 2 4327 10092 6 994 1491 1988 4473 5385 10093 1 10094 11 1492 4328 4476 5387 5597 6574 6692 6902 7857 10095 10357 8 995 1990 5388 6693 7708 9708 10096 11708 5 1493 4479 5129 5389 10097 2 4329 10098 9 996 1494 1992 4482 5391 6696 7858 10099 10358 1 10100 12 1495 4330 4485 5392 5598 6575 6699 6905 7709 9709 10101 11709 3 997 1994 10102 11 1496 4488 5131 5393 5599 6176 6702 6906 7859 10103 10359 2 4331 10104 6 998 1497 1996 4491 5395 10105 8 5132 5396 6177 6705 7710 9710 10106 11710 9 1498 4332 4494 5397 6576 6706 7860 10107 10360 3 999 1998 10108 5 1499 4497 5133 5399 10109 2 4333 10110 14 1000 1500 2000 4500 5400 5600 6711 6911 7711 7861 9711 10111 10361 11711 1 10112 6 1501 4334 4503 5401 6578 10113 3 1001 2002 10114 9 1502 4506 5135 5403 6178 6716 7862 10115 10362 8 4335 5404 6579 6717 7712 9712 10116 11712 6 1002 1503 2004 4509 5405 10117 1 10118 11 1504 4336 4512 5407 5601 6580 6720 6916 7863 10119 10363 3 1003 2006 10120 12 1505 4515 5136 5408 5602 6179 6723 6917 7713 9713 10121 11713 2 4337 10122 9 1004 1506 2008 4518 5409 6726 7864 10123 10364 1 10124 6 1507 4338 4521 5411 6582 10125 8 1005 2010 5412 6729 7714 9714 10126 11714 11 1508 4524 5137 5413 5603 6180 6730 6920 7865 10127 10365 2 4339 10128 6 1006 1509 2012 4527 5415 10129 1 10130 14 1510 4340 4530 5416 5604 6583 6735 6923 7715 7866 9715 10131 10366 11715 3 1007 2014 10132 5 1511 4533 5139 5417 10133 2 4341 10134 11 1008 1512 2016 4536 5419 5605 6740 6926 7867 10135 10367 8 5140 5420 6181 6741 7716 9716 10136 11716 6 1513 4342 4539 5421 6584 10137 3 1009 2018 10138 9 1514 4542 5141 5423 6182 6744 7868 10139 10368 2 4343 10140 12 1010 1515 2020 4545 5424 5606 6747 6929 7717 9717 10141 11717 1 10142 11 1516 4344 4548 5425 5607 6586 6750 6930 7869 10143 10369 3 1011 2022 10144 5 1517 4551 5143 5427 10145 8 4345 5428 6587 6753 7718 9718 10146 11718 9 1012 1518 2024 4554 5429 6754 7870 10147 10370 1 10148 6 1519 4346 4557 5431 6588 10149 3 1013 2026 10150 14 1520 4560 5144 5432 5608 6183 6759 6935 7719 7871 9719 10151 10371 11719 2 4347 10152 6 1014 1521 2028 4563 5433 10153 1 10154 9 1522 4348 4566 5435 6590 6764 7872 10155 10372 8 1015 2030 5436 6765 7720 9720 10156 11720 5 1523 4569 5145 5437 10157 2 4349 10158 11 1016 1524 2032 4572 5439 5609 6768 6940 7873 10159 10373 1 10160 12 1525 4350 4575 5440 5610 6591 6771 6941 7721 9721 10161 11721 3 1017 2034 10162 9 1526 4578 5147 5441 6184 6774 7874 10163 10374 2 4351 10164 6 1018 1527 2036 4581 5443 10165 8 5148 5444 6185 6777 7722 9722 10166 11722 11 1528 4352 4584 5445 5611 6592 6778 6944 7875 10167 10375 3 1019 2038 10168 5 1529 4587 5149 5447 10169 2 4353 10170 14 1020 1530 2040 4590 5448 5612 6783 6947 7723 7876 9723 10171 10376 11723 1 10172 6 1531 4354 4593 5449 6594 10173 3 1021 2042 10174 11 1532 4596 5151 5451 5613 6186 6788 6950 7877 10175 10377 8 4355 5452 6595 6789 7724 9724 10176 11724 6 1022 1533 2044 4599 5453 10177 1 10178 9 1534 4356 4602 5455 6596 6792 7878 10179 10378 3 1023 2046 10180 12 1535 4605 5152 5456 5614 6187 6795 6953 7725 9725 10181 11725 2 4357 10182 11 1024 1536 2048 4608 5457 5615 6798 6954 7879 10183 10379 1 10184 6 1537 4358 4611 5459 6598 10185 8 1025 2050 5460 6801 7726 9726 10186 11726 9 1538 4614 5153 5461 6188 6802 7880 10187 10380 2 4359 10188 6 1026 1539 2052 4617 5463 10189 1 10190 14 1540 4360 4620 5464 5616 6599 6807 6959 7727 7881 9727 10191 10381 11727 3 1027 2054 10192 5 1541 4623 5155 5465 10193 2 4361 10194 9 1028 1542 2056 4626 5467 6812 7882 10195 10382 8 5156 5468 6189 6813 7728 9728 10196 11728 6 1543 4362 4629 5469 6600 10197 3 1029 2058 10198 11 1544 4632 5157 5471 5617 6190 6816 6964 7883 10199 10383 2 4363 10200 12 1030 1545 2060 4635 5472 5618 6819 6965 7729 9729 10201 11729 1 10202 9 1546 4364 4638 5473 6602 6822 7884 10203 10384 3 1031 2062 10204 5 1547 4641 5159 5475 10205 8 4365 5476 6603 6825 7730 9730 10206 11730 11 1032 1548 2064 4644 5477 5619 6826 6968 7885 10207 10385 1 10208 6 1549 4366 4647 5479 6604 10209 3 1033 2066 10210 14 1550 4650 5160 5480 5620 6191 6831 6971 7731 7886 9731 10211 10386 11731 2 4367 10212 6 1034 1551 2068 4653 5481 10213 1 10214 11 1552 4368 4656 5483 5621 6606 6836 6974 7887 10215 10387 8 1035 2070 5484 6837 7732 9732 10216 11732 5 1553 4659 5161 5485 10217 2 4369 10218 9 1036 1554 2072 4662 5487 6840 7888 10219 10388 1 10220 12 1555 4370 4665 5488 5622 6607 6843 6977 7733 9733 10221 11733 3 1037 2074 10222 11 1556 4668 5163 5489 5623 6192 6846 6978 7889 10223 10389 2 4371 10224 6 1038 1557 2076 4671 5491 10225 8 5164 5492 6193 6849 7734 9734 10226 11734 9 1558 4372 4674 5493 6608 6850 7890 10227 10390 3 1039 2078 10228 5 1559 4677 5165 5495 10229 2 4373 10230 14 1040 1560 2080 4680 5496 5624 6855 6983 7735 7891 9735 10231 10391 11735 1 10232 6 1561 4374 4683 5497 6610 10233 3 1041 2082 10234 9 1562 4686 5167 5499 6194 6860 7892 10235 10392 8 4375 5500 6611 6861 7736 9736 10236 11736 6 1042 1563 2084 4689 5501 10237 1 10238 11 1564 4376 4692 5503 5625 6612 6864 6988 7893 10239 10393 3 1043 2086 10240 12 1565 4695 5168 5504 5626 6195 6867 6989 7737 9737 10241 11737 2 4377 10242 9 1044 1566 2088 4698 5505 6870 7894 10243 10394 1 10244 6 1567 4378 4701 5507 6614 10245 8 1045 2090 5508 6873 7738 9738 10246 11738 11 1568 4704 5169 5509 5627 6196 6874 6992 7895 10247 10395 2 4379 10248 6 1046 1569 2092 4707 5511 10249 1 10250 14 1570 4380 4710 5512 5628 6615 6879 6995 7739 7896 9739 10251 10396 11739 3 1047 2094 10252 5 1571 4713 5171 5513 10253 2 4381 10254 11 1048 1572 2096 4716 5515 5629 6884 6998 7897 10255 10397 8 5172 5516 6197 6885 7740 9740 10256 11740 6 1573 4382 4719 5517 6616 10257 3 1049 2098 10258 9 1574 4722 5173 5519 6198 6888 7898 10259 10398 2 4383 10260 12 1050 1575 2100 4725 5520 5630 6891 7001 7741 9741 10261 11741 1 10262 11 1576 4384 4728 5521 5631 6618 6894 7002 7899 10263 10399 3 1051 2102 10264 5 1577 4731 5175 5523 10265 8 4385 5524 6619 6897 7742 9742 10266 11742 9 1052 1578 2104 4734 5525 6898 7900 10267 10400 1 10268 6 1579 4386 4737 5527 6620 10269 3 1053 2106 10270 14 1580 4740 5176 5528 5632 6199 6903 7007 7743 7901 9743 10271 10401 11743 2 4387 10272 6 1054 1581 2108 4743 5529 10273 1 10274 9 1582 4388 4746 5531 6622 6908 7902 10275 10402 8 1055 2110 5532 6909 7744 9744 10276 11744 5 1583 4749 5177 5533 10277 2 4389 10278 11 1056 1584 2112 4752 5535 5633 6912 7012 7903 10279 10403 1 10280 12 1585 4390 4755 5536 5634 6623 6915 7013 7745 9745 10281 11745 3 1057 2114 10282 9 1586 4758 5179 5537 6200 6918 7904 10283 10404 2 4391 10284 6 1058 1587 2116 4761 5539 10285 8 5180 5540 6201 6921 7746 9746 10286 11746 11 1588 4392 4764 5541 5635 6624 6922 7016 7905 10287 10405 3 1059 2118 10288 5 1589 4767 5181 5543 10289 2 4393 10290 14 1060 1590 2120 4770 5544 5636 6927 7019 7747 7906 9747 10291 10406 11747 1 10292 6 1591 4394 4773 5545 6626 10293 3 1061 2122 10294 11 1592 4776 5183 5547 5637 6202 6932 7022 7907 10295 10407 8 4395 5548 6627 6933 7748 9748 10296 11748 6 1062 1593 2124 4779 5549 10297 1 10298 9 1594 4396 4782 5551 6628 6936 7908 10299 10408 3 1063 2126 10300 12 1595 4785 5184 5552 5638 6203 6939 7025 7749 9749 10301 11749 2 4397 10302 11 1064 1596 2128 4788 5553 5639 6942 7026 7909 10303 10409 1 10304 6 1597 4398 4791 5555 6630 10305 8 1065 2130 5556 6945 7750 9750 10306 11750 9 1598 4794 5185 5557 6204 6946 7910 10307 10410 2 4399 10308 6 1066 1599 2132 4797 5559 10309 1 10310 14 1600 4400 4800 5560 5640 6631 6951 7031 7751 7911 9751 10311 10411 11751 3 1067 2134 10312 5 1601 4803 5187 5561 10313 2 4401 10314 9 1068 1602 2136 4806 5563 6956 7912 10315 10412 8 5188 5564 6205 6957 7752 9752 10316 11752 6 1603 4402 4809 5565 6632 10317 3 1069 2138 10318 11 1604 4812 5189 5567 5641 6206 6960 7036 7913 10319 10413 2 4403 10320 12 1070 1605 2140 4815 5568 5642 6963 7037 7753 9753 10321 11753 1 10322 9 1606 4404 4818 5569 6634 6966 7914 10323 10414 3 1071 2142 10324 5 1607 4821 5191 5571 10325 8 4405 5572 6635 6969 7754 9754 10326 11754 11 1072 1608 2144 4824 5573 5643 6970 7040 7915 10327 10415 1 10328 6 1609 4406 4827 5575 6636 10329 3 1073 2146 10330 14 1610 4830 5192 5576 5644 6207 6975 7043 7755 7916 9755 10331 10416 11755 2 4407 10332 6 1074 1611 2148 4833 5577 10333 1 10334 11 1612 4408 4836 5579 5645 6638 6980 7046 7917 10335 10417 8 1075 2150 5580 6981 7756 9756 10336 11756 5 1613 4839 5193 5581 10337 2 4409 10338 9 1076 1614 2152 4842 5583 6984 7918 10339 10418 1 10340 12 1615 4410 4845 5584 5646 6639 6987 7049 7757 9757 10341 11757 3 1077 2154 10342 11 1616 4848 5195 5585 5647 6208 6990 7050 7919 10343 10419 2 4411 10344 6 1078 1617 2156 4851 5587 10345 8 5196 5588 6209 6993 7758 9758 10346 11758 9 1618 4412 4854 5589 6640 6994 7920 10347 10420 3 1079 2158 10348 5 1619 4857 5197 5591 10349 2 4413 10350 14 1080 1620 2160 4860 5592 5648 6999 7055 7759 7921 9759 10351 10421 11759 1 10352 6 1621 4414 4863 5593 6642 10353 3 1081 2162 10354 9 1622 4866 5199 5595 6210 7004 7922 10355 10422 8 4415 5596 6643 7005 7760 9760 10356 11760 6 1082 1623 2164 4869 5597 10357 1 10358 11 1624 4416 4872 5599 5649 6644 7008 7060 7923 10359 10423 3 1083 2166 10360 12 1625 4875 5200 5600 5650 6211 7011 7061 7761 9761 10361 11761 2 4417 10362 9 1084 1626 2168 4878 5601 7014 7924 10363 10424 1 10364 6 1627 4418 4881 5603 6646 10365 8 1085 2170 5604 7017 7762 9762 10366 11762 11 1628 4884 5201 5605 5651 6212 7018 7064 7925 10367 10425 2 4419 10368 6 1086 1629 2172 4887 5607 10369 1 10370 14 1630 4420 4890 5608 5652 6647 7023 7067 7763 7926 9763 10371 10426 11763 3 1087 2174 10372 5 1631 4893 5203 5609 10373 2 4421 10374 11 1088 1632 2176 4896 5611 5653 7028 7070 7927 10375 10427 8 5204 5612 6213 7029 7764 9764 10376 11764 6 1633 4422 4899 5613 6648 10377 3 1089 2178 10378 9 1634 4902 5205 5615 6214 7032 7928 10379 10428 2 4423 10380 12 1090 1635 2180 4905 5616 5654 7035 7073 7765 9765 10381 11765 1 10382 11 1636 4424 4908 5617 5655 6650 7038 7074 7929 10383 10429 3 1091 2182 10384 5 1637 4911 5207 5619 10385 8 4425 5620 6651 7041 7766 9766 10386 11766 9 1092 1638 2184 4914 5621 7042 7930 10387 10430 1 10388 6 1639 4426 4917 5623 6652 10389 3 1093 2186 10390 14 1640 4920 5208 5624 5656 6215 7047 7079 7767 7931 9767 10391 10431 11767 2 4427 10392 6 1094 1641 2188 4923 5625 10393 1 10394 9 1642 4428 4926 5627 6654 7052 7932 10395 10432 8 1095 2190 5628 7053 7768 9768 10396 11768 5 1643 4929 5209 5629 10397 2 4429 10398 11 1096 1644 2192 4932 5631 5657 7056 7084 7933 10399 10433 1 10400 12 1645 4430 4935 5632 5658 6655 7059 7085 7769 9769 10401 11769 3 1097 2194 10402 9 1646 4938 5211 5633 6216 7062 7934 10403 10434 2 4431 10404 6 1098 1647 2196 4941 5635 10405 8 5212 5636 6217 7065 7770 9770 10406 11770 11 1648 4432 4944 5637 5659 6656 7066 7088 7935 10407 10435 3 1099 2198 10408 5 1649 4947 5213 5639 10409 2 4433 10410 14 1100 1650 2200 4950 5640 5660 7071 7091 7771 7936 9771 10411 10436 11771 1 10412 6 1651 4434 4953 5641 6658 10413 3 1101 2202 10414 11 1652 4956 5215 5643 5661 6218 7076 7094 7937 10415 10437 8 4435 5644 6659 7077 7772 9772 10416 11772 6 1102 1653 2204 4959 5645 10417 1 10418 9 1654 4436 4962 5647 6660 7080 7938 10419 10438 3 1103 2206 10420 12 1655 4965 5216 5648 5662 6219 7083 7097 7773 9773 10421 11773 2 4437 10422 11 1104 1656 2208 4968 5649 5663 7086 7098 7939 10423 10439 1 10424 6 1657 4438 4971 5651 6662 10425 8 1105 2210 5652 7089 7774 9774 10426 11774 9 1658 4974 5217 5653 6220 7090 7940 10427 10440 2 4439 10428 6 1106 1659 2212 4977 5655 10429 1 10430 14 1660 4440 4980 5656 5664 6663 7095 7103 7775 7941 9775 10431 10441 11775 3 1107 2214 10432 5 1661 4983 5219 5657 10433 2 4441 10434 9 1108 1662 2216 4986 5659 7100 7942 10435 10442 8 5220 5660 6221 7101 7776 9776 10436 11776 6 1663 4442 4989 5661 6664 10437 3 1109 2218 10438 11 1664 4992 5221 5663 5665 6222 7104 7108 7943 10439 10443 2 4443 10440 12 1110 1665 2220 4995 5664 5666 7107 7109 7777 9777 10441 11777 1 10442 9 1666 4444 4998 5665 6666 7110 7944 10443 10444 3 1111 2222 10444 6 1 2 1667 5223 5667 10445 8 5 4445 5669 6667 7778 9778 10446 11778 11 4 8 1112 1668 2224 5001 5667 5670 7945 10445 10447 2 11 10448 8 7 14 1669 4446 5668 5672 6668 10449 4 17 1113 2226 10450 14 10 20 1670 5004 5224 5669 5673 6223 7779 7946 9779 10446 10451 11779 3 23 4447 10452 7 13 26 1114 1671 2228 5675 10453 2 29 10454 11 16 32 1672 4448 5007 5670 5678 6670 7947 10447 10455 8 35 1115 2230 5679 7780 9780 10456 11780 6 19 38 1673 5225 5680 10457 3 41 4449 10458 9 22 44 1116 1674 2232 5683 7948 10448 10459 2 47 10460 12 25 50 1675 4450 5010 5671 5685 6671 7781 9781 10461 11781 4 53 1117 2234 10462 11 28 56 1676 5011 5227 5672 5686 6224 7949 10449 10463 3 59 4451 10464 7 31 62 1118 1677 2236 5688 10465 8 65 5228 5689 6225 7782 9782 10466 11782 9 34 68 1678 4452 5691 6672 7950 10450 10467 4 71 1119 2238 10468 6 37 74 1679 5229 5693 10469 3 77 4453 10470 14 40 80 1120 1680 2240 5016 5673 5695 7783 7951 9783 10451 10471 11783 2 83 10472 8 43 86 1681 4454 5674 5697 6674 10473 4 89 1121 2242 10474 9 46 92 1682 5231 5699 6226 7952 10452 10475 8 95 4455 5701 6675 7784 9784 10476 11784 7 49 98 1122 1683 2244 5702 10477 2 101 10478 11 52 104 1684 4456 5021 5675 5704 6676 7953 10453 10479 4 107 1123 2246 10480 12 55 110 1685 5022 5232 5676 5705 6227 7785 9785 10481 11785 3 113 4457 10482 9 58 116 1124 1686 2248 5707 7954 10454 10483 2 119 10484 8 61 122 1687 4458 5677 5710 6678 10485 8 125 1125 2250 5711 7786 9786 10486 11786 11 64 128 1688 5025 5233 5678 5712 6228 7955 10455 10487 3 131 4459 10488 7 67 134 1126 1689 2252 5715 10489 2 137 10490 14 70 140 1690 4460 5028 5679 5717 6679 7787 7956 9787 10456 10491 11787 4 143 1127 2254 10492 6 73 146 1691 5235 5718 10493 3 149 4461 10494 11 76 152 1128 1692 2256 5031 5680 5720 7957 10457 10495 8 155 5236 5721 6229 7788 9788 10496 11788 8 79 158 1693 4462 5681 5723 6680 10497 4 161 1129 2258 10498 9 82 164 1694 5237 5725 6230 7958 10458 10499 3 167 4463 10500 12 85 170 1130 1695 2260 5034 5682 5727 7789 9789 10501 11789 2 173 10502 11 88 176 1696 4464 5035 5683 5729 6682 7959 10459 10503 4 179 1131 2262 10504 6 91 182 1697 5239 5731 10505 8 185 4465 5733 6683 7790 9790 10506 11790 9 94 188 1132 1698 2264 5734 7960 10460 10507 2 191 10508 8 97 194 1699 4466 5684 5736 6684 10509 4 197 1133 2266 10510 14 100 200 1700 5040 5240 5685 5737 6231 7791 7961 9791 10461 10511 11791 3 203 4467 10512 7 103 206 1134 1701 2268 5739 10513 2 209 10514 9 106 212 1702 4468 5742 6686 7962 10462 10515 8 215 1135 2270 5743 7792 9792 10516 11792 6 109 218 1703 5241 5744 10517 3 221 4469 10518 11 112 224 1136 1704 2272 5045 5686 5747 7963 10463 10519 2 227 10520 12 115 230 1705 4470 5046 5687 5749 6687 7793 9793 10521 11793 4 233 1137 2274 10522 9 118 236 1706 5243 5750 6232 7964 10464 10523 3 239 4471 10524 7 121 242 1138 1707 2276 5752 10525 8 245 5244 5753 6233 7794 9794 10526 11794 11 124 248 1708 4472 5049 5688 5755 6688 7965 10465 10527 4 251 1139 2278 10528 6 127 254 1709 5245 5757 10529 3 257 4473 10530 14 130 260 1140 1710 2280 5052 5689 5759 7795 7966 9795 10466 10531 11795 2 263 10532 8 133 266 1711 4474 5690 5761 6690 10533 4 269 1141 2282 10534 11 136 272 1712 5055 5247 5691 5763 6234 7967 10467 10535 8 275 4475 5765 6691 7796 9796 10536 11796 7 139 278 1142 1713 2284 5766 10537 2 281 10538 9 142 284 1714 4476 5768 6692 7968 10468 10539 4 287 1143 2286 10540 12 145 290 1715 5058 5248 5692 5769 6235 7797 9797 10541 11797 3 293 4477 10542 11 148 296 1144 1716 2288 5059 5693 5771 7969 10469 10543 2 299 10544 8 151 302 1717 4478 5694 5774 6694 10545 8 305 1145 2290 5775 7798 9798 10546 11798 9 154 308 1718 5249 5776 6236 7970 10470 10547 3 311 4479 10548 7 157 314 1146 1719 2292 5779 10549 2 317 10550 14 160 320 1720 4480 5064 5695 5781 6695 7799 7971 9799 10471 10551 11799 4 323 1147 2294 10552 6 163 326 1721 5251 5782 10553 3 329 4481 10554 9 166 332 1148 1722 2296 5784 7972 10472 10555 8 335 5252 5785 6237 7800 9800 10556 11800 8 169 338 1723 4482 5696 5787 6696 10557 4 341 1149 2298 10558 11 172 344 1724 5069 5253 5697 5789 6238 7973 10473 10559 3 347 4483 10560 12 175 350 1150 1725 2300 5070 5698 5791 7801 9801 10561 11801 2 353 10562 9 178 356 1726 4484 5793 6698 7974 10474 10563 4 359 1151 2302 10564 6 181 362 1727 5255 5795 10565 8 365 4485 5797 6699 7802 9802 10566 11802 11 184 368 1152 1728 2304 5073 5699 5798 7975 10475 10567 2 371 10568 8 187 374 1729 4486 5700 5800 6700 10569 4 377 1153 2306 10570 14 190 380 1730 5076 5256 5701 5801 6239 7803 7976 9803 10476 10571 11803 3 383 4487 10572 7 193 386 1154 1731 2308 5803 10573 2 389 10574 11 196 392 1732 4488 5079 5702 5806 6702 7977 10477 10575 8 395 1155 2310 5807 7804 9804 10576 11804 6 199 398 1733 5257 5808 10577 3 401 4489 10578 9 202 404 1156 1734 2312 5811 7978 10478 10579 2 407 10580 12 205 410 1735 4490 5082 5703 5813 6703 7805 9805 10581 11805 4 413 1157 2314 10582 11 208 416 1736 5083 5259 5704 5814 6240 7979 10479 10583 3 419 4491 10584 7 211 422 1158 1737 2316 5816 10585 8 425 5260 5817 6241 7806 9806 10586 11806 9 214 428 1738 4492 5819 6704 7980 10480 10587 4 431 1159 2318 10588 6 217 434 1739 5261 5821 10589 3 437 4493 10590 14 220 440 1160 1740 2320 5088 5705 5823 7807 7981 9807 10481 10591 11807 2 443 10592 8 223 446 1741 4494 5706 5825 6706 10593 4 449 1161 2322 10594 9 226 452 1742 5263 5827 6242 7982 10482 10595 8 455 4495 5829 6707 7808 9808 10596 11808 7 229 458 1162 1743 2324 5830 10597 2 461 10598 11 232 464 1744 4496 5093 5707 5832 6708 7983 10483 10599 4 467 1163 2326 10600 12 235 470 1745 5094 5264 5708 5833 6243 7809 9809 10601 11809 3 473 4497 10602 9 238 476 1164 1746 2328 5835 7984 10484 10603 2 479 10604 8 241 482 1747 4498 5709 5838 6710 10605 8 485 1165 2330 5839 7810 9810 10606 11810 11 244 488 1748 5097 5265 5710 5840 6244 7985 10485 10607 3 491 4499 10608 7 247 494 1166 1749 2332 5843 10609 2 497 10610 14 250 500 1750 4500 5100 5711 5845 6711 7811 7986 9811 10486 10611 11811 4 503 1167 2334 10612 6 253 506 1751 5267 5846 10613 3 509 4501 10614 11 256 512 1168 1752 2336 5103 5712 5848 7987 10487 10615 8 515 5268 5849 6245 7812 9812 10616 11812 8 259 518 1753 4502 5713 5851 6712 10617 4 521 1169 2338 10618 9 262 524 1754 5269 5853 6246 7988 10488 10619 3 527 4503 10620 12 265 530 1170 1755 2340 5106 5714 5855 7813 9813 10621 11813 2 533 10622 11 268 536 1756 4504 5107 5715 5857 6714 7989 10489 10623 4 539 1171 2342 10624 6 271 542 1757 5271 5859 10625 8 545 4505 5861 6715 7814 9814 10626 11814 9 274 548 1172 1758 2344 5862 7990 10490 10627 2 551 10628 8 277 554 1759 4506 5716 5864 6716 10629 4 557 1173 2346 10630 14 280 560 1760 5112 5272 5717 5865 6247 7815 7991 9815 10491 10631 11815 3 563 4507 10632 7 283 566 1174 1761 2348 5867 10633 2 569 10634 9 286 572 1762 4508 5870 6718 7992 10492 10635 8 575 1175 2350 5871 7816 9816 10636 11816 6 289 578 1763 5273 5872 10637 3 581 4509 10638 11 292 584 1176 1764 2352 5117 5718 5875 7993 10493 10639 2 587 10640 12 295 590 1765 4510 5118 5719 5877 6719 7817 9817 10641 11817 4 593 1177 2354 10642 9 298 596 1766 5275 5878 6248 7994 10494 10643 3 599 4511 10644 7 301 602 1178 1767 2356 5880 10645 8 605 5276 5881 6249 7818 9818 10646 11818 11 304 608 1768 4512 5121 5720 5883 6720 7995 10495 10647 4 611 1179 2358 10648 6 307 614 1769 5277 5885 10649 3 617 4513 10650 14 310 620 1180 1770 2360 5124 5721 5887 7819 7996 9819 10496 10651 11819 2 623 10652 8 313 626 1771 4514 5722 5889 6722 10653 4 629 1181 2362 10654 11 316 632 1772 5127 5279 5723 5891 6250 7997 10497 10655 8 635 4515 5893 6723 7820 9820 10656 11820 7 319 638 1182 1773 2364 5894 10657 2 641 10658 9 322 644 1774 4516 5896 6724 7998 10498 10659 4 647 1183 2366 10660 12 325 650 1775 5130 5280 5724 5897 6251 7821 9821 10661 11821 3 653 4517 10662 11 328 656 1184 1776 2368 5131 5725 5899 7999 10499 10663 2 659 10664 8 331 662 1777 4518 5726 5902 6726 10665 8 665 1185 2370 5903 7822 9822 10666 11822 9 334 668 1778 5281 5904 6252 8000 10500 10667 3 671 4519 10668 7 337 674 1186 1779 2372 5907 10669 2 677 10670 14 340 680 1780 4520 5136 5727 5909 6727 7823 8001 9823 10501 10671 11823 4 683 1187 2374 10672 6 343 686 1781 5283 5910 10673 3 689 4521 10674 9 346 692 1188 1782 2376 5912 8002 10502 10675 8 695 5284 5913 6253 7824 9824 10676 11824 8 349 698 1783 4522 5728 5915 6728 10677 4 701 1189 2378 10678 11 352 704 1784 5141 5285 5729 5917 6254 8003 10503 10679 3 707 4523 10680 12 355 710 1190 1785 2380 5142 5730 5919 7825 9825 10681 11825 2 713 10682 9 358 716 1786 4524 5921 6730 8004 10504 10683 4 719 1191 2382 10684 6 361 722 1787 5287 5923 10685 8 725 4525 5925 6731 7826 9826 10686 11826 11 364 728 1192 1788 2384 5145 5731 5926 8005 10505 10687 2 731 10688 8 367 734 1789 4526 5732 5928 6732 10689 4 737 1193 2386 10690 14 370 740 1790 5148 5288 5733 5929 6255 7827 8006 9827 10506 10691 11827 3 743 4527 10692 7 373 746 1194 1791 2388 5931 10693 2 749 10694 11 376 752 1792 4528 5151 5734 5934 6734 8007 10507 10695 8 755 1195 2390 5935 7828 9828 10696 11828 6 379 758 1793 5289 5936 10697 3 761 4529 10698 9 382 764 1196 1794 2392 5939 8008 10508 10699 2 767 10700 12 385 770 1795 4530 5154 5735 5941 6735 7829 9829 10701 11829 4 773 1197 2394 10702 11 388 776 1796 5155 5291 5736 5942 6256 8009 10509 10703 3 779 4531 10704 7 391 782 1198 1797 2396 5944 10705 8 785 5292 5945 6257 7830 9830 10706 11830 9 394 788 1798 4532 5947 6736 8010 10510 10707 4 791 1199 2398 10708 6 397 794 1799 5293 5949 10709 3 797 4533 10710 14 400 800 1200 1800 2400 5160 5737 5951 7831 8011 9831 10511 10711 11831 2 803 10712 8 403 806 1801 4534 5738 5953 6738 10713 4 809 1201 2402 10714 9 406 812 1802 5295 5955 6258 8012 10512 10715 8 815 4535 5957 6739 7832 9832 10716 11832 7 409 818 1202 1803 2404 5958 10717 2 821 10718 11 412 824 1804 4536 5165 5739 5960 6740 8013 10513 10719 4 827 1203 2406 10720 12 415 830 1805 5166 5296 5740 5961 6259 7833 9833 10721 11833 3 833 4537 10722 9 418 836 1204 1806 2408 5963 8014 10514 10723 2 839 10724 8 421 842 1807 4538 5741 5966 6742 10725 8 845 1205 2410 5967 7834 9834 10726 11834 11 424 848 1808 5169 5297 5742 5968 6260 8015 10515 10727 3 851 4539 10728 7 427 854 1206 1809 2412 5971 10729 2 857 10730 14 430 860 1810 4540 5172 5743 5973 6743 7835 8016 9835 10516 10731 11835 4 863 1207 2414 10732 6 433 866 1811 5299 5974 10733 3 869 4541 10734 11 436 872 1208 1812 2416 5175 5744 5976 8017 10517 10735 8 875 5300 5977 6261 7836 9836 10736 11836 8 439 878 1813 4542 5745 5979 6744 10737 4 881 1209 2418 10738 9 442 884 1814 5301 5981 6262 8018 10518 10739 3 887 4543 10740 12 445 890 1210 1815 2420 5178 5746 5983 7837 9837 10741 11837 2 893 10742 11 448 896 1816 4544 5179 5747 5985 6746 8019 10519 10743 4 899 1211 2422 10744 6 451 902 1817 5303 5987 10745 8 905 4545 5989 6747 7838 9838 10746 11838 9 454 908 1212 1818 2424 5990 8020 10520 10747 2 911 10748 8 457 914 1819 4546 5748 5992 6748 10749 4 917 1213 2426 10750 14 460 920 1820 5184 5304 5749 5993 6263 7839 8021 9839 10521 10751 11839 3 923 4547 10752 7 463 926 1214 1821 2428 5995 10753 2 929 10754 9 466 932 1822 4548 5998 6750 8022 10522 10755 8 935 1215 2430 5999 7840 9840 10756 11840 6 469 938 1823 5305 6000 10757 3 941 4549 10758 11 472 944 1216 1824 2432 5189 5750 6003 8023 10523 10759 2 947 10760 12 475 950 1825 4550 5190 5751 6005 6751 7841 9841 10761 11841 4 953 1217 2434 10762 9 478 956 1826 5307 6006 6264 8024 10524 10763 3 959 4551 10764 7 481 962 1218 1827 2436 6008 10765 8 965 5308 6009 6265 7842 9842 10766 11842 11 484 968 1828 4552 5193 5752 6011 6752 8025 10525 10767 4 971 1219 2438 10768 6 487 974 1829 5309 6013 10769 3 977 4553 10770 14 490 980 1220 1830 2440 5196 5753 6015 7843 8026 9843 10526 10771 11843 2 983 10772 8 493 986 1831 4554 5754 6017 6754 10773 4 989 1221 2442 10774 11 496 992 1832 5199 5311 5755 6019 6266 8027 10527 10775 8 995 4555 6021 6755 7844 9844 10776 11844 7 499 998 1222 1833 2444 6022 10777 2 1001 10778 9 502 1004 1834 4556 6024 6756 8028 10528 10779 4 1007 1223 2446 10780 12 505 1010 1835 5202 5312 5756 6025 6267 7845 9845 10781 11845 3 1013 4557 10782 11 508 1016 1224 1836 2448 5203 5757 6027 8029 10529 10783 2 1019 10784 8 511 1022 1837 4558 5758 6030 6758 10785 8 1025 1225 2450 6031 7846 9846 10786 11846 9 514 1028 1838 5313 6032 6268 8030 10530 10787 3 1031 4559 10788 7 517 1034 1226 1839 2452 6035 10789 2 1037 10790 14 520 1040 1840 4560 5208 5759 6037 6759 7847 8031 9847 10531 10791 11847 4 1043 1227 2454 10792 6 523 1046 1841 5315 6038 10793 3 1049 4561 10794 9 526 1052 1228 1842 2456 6040 8032 10532 10795 8 1055 5316 6041 6269 7848 9848 10796 11848 8 529 1058 1843 4562 5760 6043 6760 10797 4 1061 1229 2458 10798 11 532 1064 1844 5213 5317 5761 6045 6270 8033 10533 10799 3 1067 4563 10800 12 535 1070 1230 1845 2460 5214 5762 6047 7849 9849 10801 11849 2 1073 10802 9 538 1076 1846 4564 6049 6762 8034 10534 10803 4 1079 1231 2462 10804 6 541 1082 1847 5319 6051 10805 8 1085 4565 6053 6763 7850 9850 10806 11850 11 544 1088 1232 1848 2464 5217 5763 6054 8035 10535 10807 2 1091 10808 8 547 1094 1849 4566 5764 6056 6764 10809 4 1097 1233 2466 10810 14 550 1100 1850 5220 5320 5765 6057 6271 7851 8036 9851 10536 10811 11851 3 1103 4567 10812 7 553 1106 1234 1851 2468 6059 10813 2 1109 10814 11 556 1112 1852 4568 5223 5766 6062 6766 8037 10537 10815 8 1115 1235 2470 6063 7852 9852 10816 11852 6 559 1118 1853 5321 6064 10817 3 1121 4569 10818 9 562 1124 1236 1854 2472 6067 8038 10538 10819 2 1127 10820 12 565 1130 1855 4570 5226 5767 6069 6767 7853 9853 10821 11853 4 1133 1237 2474 10822 11 568 1136 1856 5227 5323 5768 6070 6272 8039 10539 10823 3 1139 4571 10824 7 571 1142 1238 1857 2476 6072 10825 8 1145 5324 6073 6273 7854 9854 10826 11854 9 574 1148 1858 4572 6075 6768 8040 10540 10827 4 1151 1239 2478 10828 6 577 1154 1859 5325 6077 10829 3 1157 4573 10830 14 580 1160 1240 1860 2480 5232 5769 6079 7855 8041 9855 10541 10831 11855 2 1163 10832 8 583 1166 1861 4574 5770 6081 6770 10833 4 1169 1241 2482 10834 9 586 1172 1862 5327 6083 6274 8042 10542 10835 8 1175 4575 6085 6771 7856 9856 10836 11856 7 589 1178 1242 1863 2484 6086 10837 2 1181 10838 11 592 1184 1864 4576 5237 5771 6088 6772 8043 10543 10839 4 1187 1243 2486 10840 12 595 1190 1865 5238 5328 5772 6089 6275 7857 9857 10841 11857 3 1193 4577 10842 9 598 1196 1244 1866 2488 6091 8044 10544 10843 2 1199 10844 8 601 1202 1867 4578 5773 6094 6774 10845 8 1205 1245 2490 6095 7858 9858 10846 11858 11 604 1208 1868 5241 5329 5774 6096 6276 8045 10545 10847 3 1211 4579 10848 7 607 1214 1246 1869 2492 6099 10849 2 1217 10850 14 610 1220 1870 4580 5244 5775 6101 6775 7859 8046 9859 10546 10851 11859 4 1223 1247 2494 10852 6 613 1226 1871 5331 6102 10853 3 1229 4581 10854 11 616 1232 1248 1872 2496 5247 5776 6104 8047 10547 10855 8 1235 5332 6105 6277 7860 9860 10856 11860 8 619 1238 1873 4582 5777 6107 6776 10857 4 1241 1249 2498 10858 9 622 1244 1874 5333 6109 6278 8048 10548 10859 3 1247 4583 10860 11 625 1250 1875 2500 5250 5778 6111 7861 9861 10861 11861 2 1253 10862 11 628 1256 1876 4584 5251 5779 6112 6778 8049 10549 10863 4 1251 1259 2502 10864 6 631 1262 1877 5335 6114 10865 8 1265 4585 6115 6779 7862 9862 10866 11862 9 634 1252 1268 1878 2504 6116 8050 10550 10867 2 1271 10868 8 637 1274 1879 4586 5780 6118 6780 10869 4 1253 1277 2506 10870 14 640 1280 1880 5256 5336 5781 6119 6279 7863 8051 9863 10551 10871 11863 3 1283 4587 10872 7 643 1254 1286 1881 2508 6120 10873 2 1289 10874 9 646 1292 1882 4588 6122 6782 8052 10552 10875 8 1255 1295 2510 6123 7864 9864 10876 11864 6 649 1298 1883 5337 6124 10877 3 1301 4589 10878 11 652 1256 1304 1884 2512 5261 5782 6126 8053 10553 10879 2 1307 10880 12 655 1310 1885 4590 5262 5783 6127 6783 7865 9865 10881 11865 4 1257 1313 2514 10882 9 658 1316 1886 5339 6128 6280 8054 10554 10883 3 1319 4591 10884 7 661 1258 1322 1887 2516 6130 10885 8 1325 5340 6131 6281 7866 9866 10886 11866 11 664 1328 1888 4592 5265 5784 6132 6784 8055 10555 10887 4 1259 1331 2518 10888 6 667 1334 1889 5341 6134 10889 3 1337 4593 10890 14 670 1260 1340 1890 2520 5268 5785 6135 7867 8056 9867 10556 10891 11867 2 1343 10892 8 673 1346 1891 4594 5786 6136 6786 10893 4 1261 1349 2522 10894 11 676 1352 1892 5271 5343 5787 6138 6282 8057 10557 10895 8 1355 4595 6139 6787 7868 9868 10896 11868 7 679 1262 1358 1893 2524 6140 10897 2 1361 10898 9 682 1364 1894 4596 6142 6788 8058 10558 10899 4 1263 1367 2526 10900 12 685 1370 1895 5274 5344 5788 6143 6283 7869 9869 10901 11869 3 1373 4597 10902 11 688 1264 1376 1896 2528 5275 5789 6144 8059 10559 10903 2 1379 10904 8 691 1382 1897 4598 5790 6146 6790 10905 8 1265 1385 2530 6147 7870 9870 10906 11870 9 694 1388 1898 5345 6148 6284 8060 10560 10907 3 1391 4599 10908 7 697 1266 1394 1899 2532 6150 10909 2 1397 10910 14 700 1400 1900 4600 5280 5791 6151 6791 7871 8061 9871 10561 10911 11871 4 1267 1403 2534 10912 6 703 1406 1901 5347 6152 10913 3 1409 4601 10914 9 706 1268 1412 1902 2536 6154 8062 10562 10915 8 1415 5348 6155 6285 7872 9872 10916 11872 8 709 1418 1903 4602 5792 6156 6792 10917 4 1269 1421 2538 10918 11 712 1424 1904 5285 5349 5793 6158 6286 8063 10563 10919 3 1427 4603 10920 12 715 1270 1430 1905 2540 5286 5794 6159 7873 9873 10921 11873 2 1433 10922 9 718 1436 1906 4604 6160 6794 8064 10564 10923 4 1271 1439 2542 10924 6 721 1442 1907 5351 6162 10925 8 1445 4605 6163 6795 7874 9874 10926 11874 11 724 1272 1448 1908 2544 5289 5795 6164 8065 10565 10927 2 1451 10928 8 727 1454 1909 4606 5796 6166 6796 10929 4 1273 1457 2546 10930 14 730 1460 1910 5292 5352 5797 6167 6287 7875 8066 9875 10566 10931 11875 3 1463 4607 10932 7 733 1274 1466 1911 2548 6168 10933 2 1469 10934 11 736 1472 1912 4608 5295 5798 6170 6798 8067 10567 10935 8 1275 1475 2550 6171 7876 9876 10936 11876 6 739 1478 1913 5353 6172 10937 3 1481 4609 10938 9 742 1276 1484 1914 2552 6174 8068 10568 10939 2 1487 10940 12 745 1490 1915 4610 5298 5799 6175 6799 7877 9877 10941 11877 4 1277 1493 2554 10942 11 748 1496 1916 5299 5355 5800 6176 6288 8069 10569 10943 3 1499 4611 10944 7 751 1278 1502 1917 2556 6178 10945 8 1505 5356 6179 6289 7878 9878 10946 11878 9 754 1508 1918 4612 6180 6800 8070 10570 10947 4 1279 1511 2558 10948 6 757 1514 1919 5357 6182 10949 3 1517 4613 10950 14 760 1280 1520 1920 2560 5304 5801 6183 7879 8071 9879 10571 10951 11879 2 1523 10952 8 763 1526 1921 4614 5802 6184 6802 10953 4 1281 1529 2562 10954 9 766 1532 1922 5359 6186 6290 8072 10572 10955 8 1535 4615 6187 6803 7880 9880 10956 11880 7 769 1282 1538 1923 2564 6188 10957 2 1541 10958 11 772 1544 1924 4616 5309 5803 6190 6804 8073 10573 10959 4 1283 1547 2566 10960 12 775 1550 1925 5310 5360 5804 6191 6291 7881 9881 10961 11881 3 1553 4617 10962 9 778 1284 1556 1926 2568 6192 8074 10574 10963 2 1559 10964 8 781 1562 1927 4618 5805 6194 6806 10965 8 1285 1565 2570 6195 7882 9882 10966 11882 11 784 1568 1928 5313 5361 5806 6196 6292 8075 10575 10967 3 1571 4619 10968 7 787 1286 1574 1929 2572 6198 10969 2 1577 10970 14 790 1580 1930 4620 5316 5807 6199 6807 7883 8076 9883 10576 10971 11883 4 1287 1583 2574 10972 6 793 1586 1931 5363 6200 10973 3 1589 4621 10974 11 796 1288 1592 1932 2576 5319 5808 6202 8077 10577 10975 8 1595 5364 6203 6293 7884 9884 10976 11884 8 799 1598 1933 4622 5809 6204 6808 10977 4 1289 1601 2578 10978 9 802 1604 1934 5365 6206 6294 8078 10578 10979 3 1607 4623 10980 12 805 1290 1610 1935 2580 5322 5810 6207 7885 9885 10981 11885 2 1613 10982 11 808 1616 1936 4624 5323 5811 6208 6810 8079 10579 10983 4 1291 1619 2582 10984 6 811 1622 1937 5367 6210 10985 8 1625 4625 6211 6811 7886 9886 10986 11886 9 814 1292 1628 1938 2584 6212 8080 10580 10987 2 1631 10988 8 817 1634 1939 4626 5812 6214 6812 10989 4 1293 1637 2586 10990 14 820 1640 1940 5328 5368 5813 6215 6295 7887 8081 9887 10581 10991 11887 3 1643 4627 10992 7 823 1294 1646 1941 2588 6216 10993 2 1649 10994 9 826 1652 1942 4628 6218 6814 8082 10582 10995 8 1295 1655 2590 6219 7888 9888 10996 11888 6 829 1658 1943 5369 6220 10997 3 1661 4629 10998 11 832 1296 1664 1944 2592 5333 5814 6222 8083 10583 10999 2 1667 11000 12 835 1670 1945 4630 5334 5815 6223 6815 7889 9889 11001 11889 4 1297 1673 2594 11002 9 838 1676 1946 5371 6224 6296 8084 10584 11003 3 1679 4631 11004 7 841 1298 1682 1947 2596 6226 11005 8 1685 5372 6227 6297 7890 9890 11006 11890 11 844 1688 1948 4632 5337 5816 6228 6816 8085 10585 11007 4 1299 1691 2598 11008 6 847 1694 1949 5373 6230 11009 3 1697 4633 11010 14 850 1300 1700 1950 2600 5340 5817 6231 7891 8086 9891 10586 11011 11891 2 1703 11012 8 853 1706 1951 4634 5818 6232 6818 11013 4 1301 1709 2602 11014 11 856 1712 1952 5343 5375 5819 6234 6298 8087 10587 11015 8 1715 4635 6235 6819 7892 9892 11016 11892 7 859 1302 1718 1953 2604 6236 11017 2 1721 11018 9 862 1724 1954 4636 6238 6820 8088 10588 11019 4 1303 1727 2606 11020 12 865 1730 1955 5346 5376 5820 6239 6299 7893 9893 11021 11893 3 1733 4637 11022 11 868 1304 1736 1956 2608 5347 5821 6240 8089 10589 11023 2 1739 11024 8 871 1742 1957 4638 5822 6242 6822 11025 8 1305 1745 2610 6243 7894 9894 11026 11894 9 874 1748 1958 5377 6244 6300 8090 10590 11027 3 1751 4639 11028 7 877 1306 1754 1959 2612 6246 11029 2 1757 11030 14 880 1760 1960 4640 5352 5823 6247 6823 7895 8091 9895 10591 11031 11895 4 1307 1763 2614 11032 6 883 1766 1961 5379 6248 11033 3 1769 4641 11034 9 886 1308 1772 1962 2616 6250 8092 10592 11035 8 1775 5380 6251 6301 7896 9896 11036 11896 8 889 1778 1963 4642 5824 6252 6824 11037 4 1309 1781 2618 11038 11 892 1784 1964 5357 5381 5825 6254 6302 8093 10593 11039 3 1787 4643 11040 12 895 1310 1790 1965 2620 5358 5826 6255 7897 9897 11041 11897 2 1793 11042 9 898 1796 1966 4644 6256 6826 8094 10594 11043 4 1311 1799 2622 11044 6 901 1802 1967 5383 6258 11045 8 1805 4645 6259 6827 7898 9898 11046 11898 11 904 1312 1808 1968 2624 5361 5827 6260 8095 10595 11047 2 1811 11048 8 907 1814 1969 4646 5828 6262 6828 11049 4 1313 1817 2626 11050 14 910 1820 1970 5364 5384 5829 6263 6303 7899 8096 9899 10596 11051 11899 3 1823 4647 11052 7 913 1314 1826 1971 2628 6264 11053 2 1829 11054 11 916 1832 1972 4648 5367 5830 6266 6830 8097 10597 11055 8 1315 1835 2630 6267 7900 9900 11056 11900 6 919 1838 1973 5385 6268 11057 3 1841 4649 11058 9 922 1316 1844 1974 2632 6270 8098 10598 11059 2 1847 11060 12 925 1850 1975 4650 5370 5831 6271 6831 7901 9901 11061 11901 4 1317 1853 2634 11062 11 928 1856 1976 5371 5387 5832 6272 6304 8099 10599 11063 3 1859 4651 11064 7 931 1318 1862 1977 2636 6274 11065 8 1865 5388 6275 6305 7902 9902 11066 11902 9 934 1868 1978 4652 6276 6832 8100 10600 11067 4 1319 1871 2638 11068 6 937 1874 1979 5389 6278 11069 3 1877 4653 11070 14 940 1320 1880 1980 2640 5376 5833 6279 7903 8101 9903 10601 11071 11903 2 1883 11072 8 943 1886 1981 4654 5834 6280 6834 11073 4 1321 1889 2642 11074 9 946 1892 1982 5391 6282 6306 8102 10602 11075 8 1895 4655 6283 6835 7904 9904 11076 11904 7 949 1322 1898 1983 2644 6284 11077 2 1901 11078 11 952 1904 1984 4656 5381 5835 6286 6836 8103 10603 11079 4 1323 1907 2646 11080 12 955 1910 1985 5382 5392 5836 6287 6307 7905 9905 11081 11905 3 1913 4657 11082 9 958 1324 1916 1986 2648 6288 8104 10604 11083 2 1919 11084 8 961 1922 1987 4658 5837 6290 6838 11085 8 1325 1925 2650 6291 7906 9906 11086 11906 11 964 1928 1988 5385 5393 5838 6292 6308 8105 10605 11087 3 1931 4659 11088 7 967 1326 1934 1989 2652 6294 11089 2 1937 11090 14 970 1940 1990 4660 5388 5839 6295 6839 7907 8106 9907 10606 11091 11907 4 1327 1943 2654 11092 6 973 1946 1991 5395 6296 11093 3 1949 4661 11094 11 976 1328 1952 1992 2656 5391 5840 6298 8107 10607 11095 8 1955 5396 6299 6309 7908 9908 11096 11908 8 979 1958 1993 4662 5841 6300 6840 11097 4 1329 1961 2658 11098 9 982 1964 1994 5397 6302 6310 8108 10608 11099 3 1967 4663 11100 12 985 1330 1970 1995 2660 5394 5842 6303 7909 9909 11101 11909 2 1973 11102 11 988 1976 1996 4664 5395 5843 6304 6842 8109 10609 11103 4 1331 1979 2662 11104 6 991 1982 1997 5399 6306 11105 8 1985 4665 6307 6843 7910 9910 11106 11910 9 994 1332 1988 1998 2664 6308 8110 10610 11107 2 1991 11108 8 997 1994 1999 4666 5844 6310 6844 11109 4 1333 1997 2666 11110 11 1000 2000 5400 5845 6311 7911 8111 9911 10611 11111 11911 3 2003 4667 11112 7 1003 1334 2001 2006 2668 6312 11113 2 2009 11114 9 1006 2002 2012 4668 6314 6846 8112 10612 11115 8 1335 2015 2670 6315 7912 9912 11116 11912 6 1009 2003 2018 5401 6316 11117 3 2021 4669 11118 11 1012 1336 2004 2024 2672 5405 5846 6318 8113 10613 11119 2 2027 11120 12 1015 2005 2030 4670 5406 5847 6319 6847 7913 9913 11121 11913 4 1337 2033 2674 11122 9 1018 2006 2036 5403 6312 6320 8114 10614 11123 3 2039 4671 11124 7 1021 1338 2007 2042 2676 6322 11125 8 2045 5404 6313 6323 7914 9914 11126 11914 11 1024 2008 2048 4672 5409 5848 6324 6848 8115 10615 11127 4 1339 2051 2678 11128 6 1027 2009 2054 5405 6326 11129 3 2057 4673 11130 14 1030 1340 2010 2060 2680 5412 5849 6327 7915 8116 9915 10616 11131 11915 2 2063 11132 8 1033 2011 2066 4674 5850 6328 6850 11133 4 1341 2069 2682 11134 11 1036 2012 2072 5407 5415 5851 6314 6330 8117 10617 11135 8 2075 4675 6331 6851 7916 9916 11136 11916 7 1039 1342 2013 2078 2684 6332 11137 2 2081 11138 9 1042 2014 2084 4676 6334 6852 8118 10618 11139 4 1343 2087 2686 11140 12 1045 2015 2090 5408 5418 5852 6315 6335 7917 9917 11141 11917 3 2093 4677 11142 11 1048 1344 2016 2096 2688 5419 5853 6336 8119 10619 11143 2 2099 11144 8 1051 2017 2102 4678 5854 6338 6854 11145 8 1345 2105 2690 6339 7918 9918 11146 11918 9 1054 2018 2108 5409 6316 6340 8120 10620 11147 3 2111 4679 11148 7 1057 1346 2019 2114 2692 6342 11149 2 2117 11150 14 1060 2020 2120 4680 5424 5855 6343 6855 7919 8121 9919 10621 11151 11919 4 1347 2123 2694 11152 6 1063 2021 2126 5411 6344 11153 3 2129 4681 11154 9 1066 1348 2022 2132 2696 6346 8122 10622 11155 8 2135 5412 6317 6347 7920 9920 11156 11920 8 1069 2023 2138 4682 5856 6348 6856 11157 4 1349 2141 2698 11158 11 1072 2024 2144 5413 5429 5857 6318 6350 8123 10623 11159 3 2147 4683 11160 12 1075 1350 2025 2150 2700 5430 5858 6351 7921 9921 11161 11921 2 2153 11162 9 1078 2026 2156 4684 6352 6858 8124 10624 11163 4 1351 2159 2702 11164 6 1081 2027 2162 5415 6354 11165 8 2165 4685 6355 6859 7922 9922 11166 11922 11 1084 1352 2028 2168 2704 5433 5859 6356 8125 10625 11167 2 2171 11168 8 1087 2029 2174 4686 5860 6358 6860 11169 4 1353 2177 2706 11170 14 1090 2030 2180 5416 5436 5861 6319 6359 7923 8126 9923 10626 11171 11923 3 2183 4687 11172 7 1093 1354 2031 2186 2708 6360 11173 2 2189 11174 11 1096 2032 2192 4688 5439 5862 6362 6862 8127 10627 11175 8 1355 2195 2710 6363 7924 9924 11176 11924 6 1099 2033 2198 5417 6364 11177 3 2201 4689 11178 9 1102 1356 2034 2204 2712 6366 8128 10628 11179 2 2207 11180 12 1105 2035 2210 4690 5442 5863 6367 6863 7925 9925 11181 11925 4 1357 2213 2714 11182 11 1108 2036 2216 5419 5443 5864 6320 6368 8129 10629 11183 3 2219 4691 11184 7 1111 1358 2037 2222 2716 6370 11185 8 2225 5420 6321 6371 7926 9926 11186 11926 9 1114 2038 2228 4692 6372 6864 8130 10630 11187 4 1359 2231 2718 11188 6 1117 2039 2234 5421 6374 11189 3 2237 4693 11190 14 1120 1360 2040 2240 2720 5448 5865 6375 7927 8131 9927 10631 11191 11927 2 2243 11192 8 1123 2041 2246 4694 5866 6376 6866 11193 4 1361 2249 2722 11194 9 1126 2042 2252 5423 6322 6378 8132 10632 11195 8 2255 4695 6379 6867 7928 9928 11196 11928 7 1129 1362 2043 2258 2724 6380 11197 2 2261 11198 11 1132 2044 2264 4696 5453 5867 6382 6868 8133 10633 11199 4 1363 2267 2726 11200 12 1135 2045 2270 5424 5454 5868 6323 6383 7929 9929 11201 11929 3 2273 4697 11202 9 1138 1364 2046 2276 2728 6384 8134 10634 11203 2 2279 11204 8 1141 2047 2282 4698 5869 6386 6870 11205 8 1365 2285 2730 6387 7930 9930 11206 11930 11 1144 2048 2288 5425 5457 5870 6324 6388 8135 10635 11207 3 2291 4699 11208 7 1147 1366 2049 2294 2732 6390 11209 2 2297 11210 14 1150 2050 2300 4700 5460 5871 6391 6871 7931 8136 9931 10636 11211 11931 4 1367 2303 2734 11212 6 1153 2051 2306 5427 6392 11213 3 2309 4701 11214 11 1156 1368 2052 2312 2736 5463 5872 6394 8137 10637 11215 8 2315 5428 6325 6395 7932 9932 11216 11932 8 1159 2053 2318 4702 5873 6396 6872 11217 4 1369 2321 2738 11218 9 1162 2054 2324 5429 6326 6398 8138 10638 11219 3 2327 4703 11220 12 1165 1370 2055 2330 2740 5466 5874 6399 7933 9933 11221 11933 2 2333 11222 11 1168 2056 2336 4704 5467 5875 6400 6874 8139 10639 11223 4 1371 2339 2742 11224 6 1171 2057 2342 5431 6402 11225 8 2345 4705 6403 6875 7934 9934 11226 11934 9 1174 1372 2058 2348 2744 6404 8140 10640 11227 2 2351 11228 8 1177 2059 2354 4706 5876 6406 6876 11229 4 1373 2357 2746 11230 14 1180 2060 2360 5432 5472 5877 6327 6407 7935 8141 9935 10641 11231 11935 3 2363 4707 11232 7 1183 1374 2061 2366 2748 6408 11233 2 2369 11234 9 1186 2062 2372 4708 6410 6878 8142 10642 11235 8 1375 2375 2750 6411 7936 9936 11236 11936 6 1189 2063 2378 5433 6412 11237 3 2381 4709 11238 11 1192 1376 2064 2384 2752 5477 5878 6414 8143 10643 11239 2 2387 11240 12 1195 2065 2390 4710 5478 5879 6415 6879 7937 9937 11241 11937 4 1377 2393 2754 11242 9 1198 2066 2396 5435 6328 6416 8144 10644 11243 3 2399 4711 11244 7 1201 1378 2067 2402 2756 6418 11245 8 2405 5436 6329 6419 7938 9938 11246 11938 11 1204 2068 2408 4712 5481 5880 6420 6880 8145 10645 11247 4 1379 2411 2758 11248 6 1207 2069 2414 5437 6422 11249 3 2417 4713 11250 14 1210 1380 2070 2420 2760 5484 5881 6423 7939 8146 9939 10646 11251 11939 2 2423 11252 8 1213 2071 2426 4714 5882 6424 6882 11253 4 1381 2429 2762 11254 11 1216 2072 2432 5439 5487 5883 6330 6426 8147 10647 11255 8 2435 4715 6427 6883 7940 9940 11256 11940 7 1219 1382 2073 2438 2764 6428 11257 2 2441 11258 9 1222 2074 2444 4716 6430 6884 8148 10648 11259 4 1383 2447 2766 11260 12 1225 2075 2450 5440 5490 5884 6331 6431 7941 9941 11261 11941 3 2453 4717 11262 11 1228 1384 2076 2456 2768 5491 5885 6432 8149 10649 11263 2 2459 11264 8 1231 2077 2462 4718 5886 6434 6886 11265 8 1385 2465 2770 6435 7942 9942 11266 11942 9 1234 2078 2468 5441 6332 6436 8150 10650 11267 3 2471 4719 11268 7 1237 1386 2079 2474 2772 6438 11269 2 2477 11270 14 1240 2080 2480 4720 5496 5887 6439 6887 7943 8151 9943 10651 11271 11943 4 1387 2483 2774 11272 6 1243 2081 2486 5443 6440 11273 3 2489 4721 11274 9 1246 1388 2082 2492 2776 6442 8152 10652 11275 8 2495 5444 6333 6443 7944 9944 11276 11944 8 1249 2083 2498 4722 5888 6444 6888 11277 4 1389 2501 2778 11278 11 1252 2084 2504 5445 5501 5889 6334 6446 8153 10653 11279 3 2507 4723 11280 12 1255 1390 2085 2510 2780 5502 5890 6447 7945 9945 11281 11945 2 2513 11282 9 1258 2086 2516 4724 6448 6890 8154 10654 11283 4 1391 2519 2782 11284 6 1261 2087 2522 5447 6450 11285 8 2525 4725 6451 6891 7946 9946 11286 11946 11 1264 1392 2088 2528 2784 5505 5891 6452 8155 10655 11287 2 2531 11288 8 1267 2089 2534 4726 5892 6454 6892 11289 4 1393 2537 2786 11290 14 1270 2090 2540 5448 5508 5893 6335 6455 7947 8156 9947 10656 11291 11947 3 2543 4727 11292 7 1273 1394 2091 2546 2788 6456 11293 2 2549 11294 11 1276 2092 2552 4728 5511 5894 6458 6894 8157 10657 11295 8 1395 2555 2790 6459 7948 9948 11296 11948 6 1279 2093 2558 5449 6460 11297 3 2561 4729 11298 9 1282 1396 2094 2564 2792 6462 8158 10658 11299 2 2567 11300 12 1285 2095 2570 4730 5514 5895 6463 6895 7949 9949 11301 11949 4 1397 2573 2794 11302 11 1288 2096 2576 5451 5515 5896 6336 6464 8159 10659 11303 3 2579 4731 11304 7 1291 1398 2097 2582 2796 6466 11305 8 2585 5452 6337 6467 7950 9950 11306 11950 9 1294 2098 2588 4732 6468 6896 8160 10660 11307 4 1399 2591 2798 11308 6 1297 2099 2594 5453 6470 11309 3 2597 4733 11310 14 1300 1400 2100 2600 2800 5520 5897 6471 7951 8161 9951 10661 11311 11951 2 2603 11312 8 1303 2101 2606 4734 5898 6472 6898 11313 4 1401 2609 2802 11314 9 1306 2102 2612 5455 6338 6474 8162 10662 11315 8 2615 4735 6475 6899 7952 9952 11316 11952 7 1309 1402 2103 2618 2804 6476 11317 2 2621 11318 11 1312 2104 2624 4736 5525 5899 6478 6900 8163 10663 11319 4 1403 2627 2806 11320 12 1315 2105 2630 5456 5526 5900 6339 6479 7953 9953 11321 11953 3 2633 4737 11322 9 1318 1404 2106 2636 2808 6480 8164 10664 11323 2 2639 11324 8 1321 2107 2642 4738 5901 6482 6902 11325 8 1405 2645 2810 6483 7954 9954 11326 11954 11 1324 2108 2648 5457 5529 5902 6340 6484 8165 10665 11327 3 2651 4739 11328 7 1327 1406 2109 2654 2812 6486 11329 2 2657 11330 14 1330 2110 2660 4740 5532 5903 6487 6903 7955 8166 9955 10666 11331 11955 4 1407 2663 2814 11332 6 1333 2111 2666 5459 6488 11333 3 2669 4741 11334 11 1336 1408 2112 2672 2816 5535 5904 6490 8167 10667 11335 8 2675 5460 6341 6491 7956 9956 11336 11956 8 1339 2113 2678 4742 5905 6492 6904 11337 4 1409 2681 2818 11338 9 1342 2114 2684 5461 6342 6494 8168 10668 11339 3 2687 4743 11340 12 1345 1410 2115 2690 2820 5538 5906 6495 7957 9957 11341 11957 2 2693 11342 11 1348 2116 2696 4744 5539 5907 6496 6906 8169 10669 11343 4 1411 2699 2822 11344 6 1351 2117 2702 5463 6498 11345 8 2705 4745 6499 6907 7958 9958 11346 11958 9 1354 1412 2118 2708 2824 6500 8170 10670 11347 2 2711 11348 8 1357 2119 2714 4746 5908 6502 6908 11349 4 1413 2717 2826 11350 14 1360 2120 2720 5464 5544 5909 6343 6503 7959 8171 9959 10671 11351 11959 3 2723 4747 11352 7 1363 1414 2121 2726 2828 6504 11353 2 2729 11354 9 1366 2122 2732 4748 6506 6910 8172 10672 11355 8 1415 2735 2830 6507 7960 9960 11356 11960 6 1369 2123 2738 5465 6508 11357 3 2741 4749 11358 11 1372 1416 2124 2744 2832 5549 5910 6510 8173 10673 11359 2 2747 11360 12 1375 2125 2750 4750 5550 5911 6511 6911 7961 9961 11361 11961 4 1417 2753 2834 11362 9 1378 2126 2756 5467 6344 6512 8174 10674 11363 3 2759 4751 11364 7 1381 1418 2127 2762 2836 6514 11365 8 2765 5468 6345 6515 7962 9962 11366 11962 11 1384 2128 2768 4752 5553 5912 6516 6912 8175 10675 11367 4 1419 2771 2838 11368 6 1387 2129 2774 5469 6518 11369 3 2777 4753 11370 14 1390 1420 2130 2780 2840 5556 5913 6519 7963 8176 9963 10676 11371 11963 2 2783 11372 8 1393 2131 2786 4754 5914 6520 6914 11373 4 1421 2789 2842 11374 11 1396 2132 2792 5471 5559 5915 6346 6522 8177 10677 11375 8 2795 4755 6523 6915 7964 9964 11376 11964 7 1399 1422 2133 2798 2844 6524 11377 2 2801 11378 9 1402 2134 2804 4756 6526 6916 8178 10678 11379 4 1423 2807 2846 11380 12 1405 2135 2810 5472 5562 5916 6347 6527 7965 9965 11381 11965 3 2813 4757 11382 11 1408 1424 2136 2816 2848 5563 5917 6528 8179 10679 11383 2 2819 11384 8 1411 2137 2822 4758 5918 6530 6918 11385 8 1425 2825 2850 6531 7966 9966 11386 11966 9 1414 2138 2828 5473 6348 6532 8180 10680 11387 3 2831 4759 11388 7 1417 1426 2139 2834 2852 6534 11389 2 2837 11390 14 1420 2140 2840 4760 5568 5919 6535 6919 7967 8181 9967 10681 11391 11967 4 1427 2843 2854 11392 6 1423 2141 2846 5475 6536 11393 3 2849 4761 11394 9 1426 1428 2142 2852 2856 6538 8182 10682 11395 8 2855 5476 6349 6539 7968 9968 11396 11968 8 1429 2143 2858 4762 5920 6540 6920 11397 4 1429 2858 2861 11398 11 1432 2144 2864 5477 5573 5921 6350 6542 8183 10683 11399 3 2867 4763 11400 12 1430 1435 2145 2860 2870 5574 5922 6543 7969 9969 11401 11969 2 2873 11402 9 1438 2146 2876 4764 6544 6922 8184 10684 11403 4 1431 2862 2879 11404 6 1441 2147 2882 5479 6546 11405 8 2885 4765 6547 6923 7970 9970 11406 11970 11 1432 1444 2148 2864 2888 5577 5923 6548 8185 10685 11407 2 2891 11408 8 1447 2149 2894 4766 5924 6550 6924 11409 4 1433 2866 2897 11410 14 1450 2150 2900 5480 5580 5925 6351 6551 7971 8186 9971 10686 11411 11971 3 2903 4767 11412 7 1434 1453 2151 2868 2906 6552 11413 2 2909 11414 11 1456 2152 2912 4768 5583 5926 6554 6926 8187 10687 11415 8 1435 2870 2915 6555 7972 9972 11416 11972 6 1459 2153 2918 5481 6556 11417 3 2921 4769 11418 9 1436 1462 2154 2872 2924 6558 8188 10688 11419 2 2927 11420 12 1465 2155 2930 4770 5586 5927 6559 6927 7973 9973 11421 11973 4 1437 2874 2933 11422 11 1468 2156 2936 5483 5587 5928 6352 6560 8189 10689 11423 3 2939 4771 11424 7 1438 1471 2157 2876 2942 6562 11425 8 2945 5484 6353 6563 7974 9974 11426 11974 9 1474 2158 2948 4772 6564 6928 8190 10690 11427 4 1439 2878 2951 11428 6 1477 2159 2954 5485 6566 11429 3 2957 4773 11430 14 1440 1480 2160 2880 2960 5592 5929 6567 7975 8191 9975 10691 11431 11975 2 2963 11432 8 1483 2161 2966 4774 5930 6568 6930 11433 4 1441 2882 2969 11434 9 1486 2162 2972 5487 6354 6570 8192 10692 11435 8 2975 4775 6571 6931 7976 9976 11436 11976 7 1442 1489 2163 2884 2978 6572 11437 2 2981 11438 11 1492 2164 2984 4776 5597 5931 6574 6932 8193 10693 11439 4 1443 2886 2987 11440 12 1495 2165 2990 5488 5598 5932 6355 6575 7977 9977 11441 11977 3 2993 4777 11442 9 1444 1498 2166 2888 2996 6576 8194 10694 11443 2 2999 11444 8 1501 2167 3002 4778 5933 6578 6934 11445 8 1445 2890 3005 6579 7978 9978 11446 11978 11 1504 2168 3008 5489 5601 5934 6356 6580 8195 10695 11447 3 3011 4779 11448 7 1446 1507 2169 2892 3014 6582 11449 2 3017 11450 14 1510 2170 3020 4780 5604 5935 6583 6935 7979 8196 9979 10696 11451 11979 4 1447 2894 3023 11452 6 1513 2171 3026 5491 6584 11453 3 3029 4781 11454 11 1448 1516 2172 2896 3032 5607 5936 6586 8197 10697 11455 8 3035 5492 6357 6587 7980 9980 11456 11980 8 1519 2173 3038 4782 5937 6588 6936 11457 4 1449 2898 3041 11458 9 1522 2174 3044 5493 6358 6590 8198 10698 11459 3 3047 4783 11460 12 1450 1525 2175 2900 3050 5610 5938 6591 7981 9981 11461 11981 2 3053 11462 11 1528 2176 3056 4784 5611 5939 6592 6938 8199 10699 11463 4 1451 2902 3059 11464 6 1531 2177 3062 5495 6594 11465 8 3065 4785 6595 6939 7982 9982 11466 11982 9 1452 1534 2178 2904 3068 6596 8200 10700 11467 2 3071 11468 8 1537 2179 3074 4786 5940 6598 6940 11469 4 1453 2906 3077 11470 14 1540 2180 3080 5496 5616 5941 6359 6599 7983 8201 9983 10701 11471 11983 3 3083 4787 11472 7 1454 1543 2181 2908 3086 6600 11473 2 3089 11474 9 1546 2182 3092 4788 6602 6942 8202 10702 11475 8 1455 2910 3095 6603 7984 9984 11476 11984 6 1549 2183 3098 5497 6604 11477 3 3101 4789 11478 11 1456 1552 2184 2912 3104 5621 5942 6606 8203 10703 11479 2 3107 11480 12 1555 2185 3110 4790 5622 5943 6607 6943 7985 9985 11481 11985 4 1457 2914 3113 11482 9 1558 2186 3116 5499 6360 6608 8204 10704 11483 3 3119 4791 11484 7 1458 1561 2187 2916 3122 6610 11485 8 3125 5500 6361 6611 7986 9986 11486 11986 11 1564 2188 3128 4792 5625 5944 6612 6944 8205 10705 11487 4 1459 2918 3131 11488 6 1567 2189 3134 5501 6614 11489 3 3137 4793 11490 14 1460 1570 2190 2920 3140 5628 5945 6615 7987 8206 9987 10706 11491 11987 2 3143 11492 8 1573 2191 3146 4794 5946 6616 6946 11493 4 1461 2922 3149 11494 11 1576 2192 3152 5503 5631 5947 6362 6618 8207 10707 11495 8 3155 4795 6619 6947 7988 9988 11496 11988 7 1462 1579 2193 2924 3158 6620 11497 2 3161 11498 9 1582 2194 3164 4796 6622 6948 8208 10708 11499 4 1463 2926 3167 11500 12 1585 2195 3170 5504 5634 5948 6363 6623 7989 9989 11501 11989 3 3173 4797 11502 11 1464 1588 2196 2928 3176 5635 5949 6624 8209 10709 11503 2 3179 11504 8 1591 2197 3182 4798 5950 6626 6950 11505 8 1465 2930 3185 6627 7990 9990 11506 11990 9 1594 2198 3188 5505 6364 6628 8210 10710 11507 3 3191 4799 11508 7 1466 1597 2199 2932 3194 6630 11509 2 3197 11510 14 1600 2200 3200 4800 5640 5951 6631 6951 7991 8211 9991 10711 11511 11991 4 1467 2934 3203 11512 6 1603 2201 3206 5507 6632 11513 3 3209 4801 11514 9 1468 1606 2202 2936 3212 6634 8212 10712 11515 8 3215 5508 6365 6635 7992 9992 11516 11992 8 1609 2203 3218 4802 5952 6636 6952 11517 4 1469 2938 3221 11518 11 1612 2204 3224 5509 5645 5953 6366 6638 8213 10713 11519 3 3227 4803 11520 12 1470 1615 2205 2940 3230 5646 5954 6639 7993 9993 11521 11993 2 3233 11522 9 1618 2206 3236 4804 6640 6954 8214 10714 11523 4 1471 2942 3239 11524 6 1621 2207 3242 5511 6642 11525 8 3245 4805 6643 6955 7994 9994 11526 11994 11 1472 1624 2208 2944 3248 5649 5955 6644 8215 10715 11527 2 3251 11528 8 1627 2209 3254 4806 5956 6646 6956 11529 4 1473 2946 3257 11530 14 1630 2210 3260 5512 5652 5957 6367 6647 7995 8216 9995 10716 11531 11995 3 3263 4807 11532 7 1474 1633 2211 2948 3266 6648 11533 2 3269 11534 11 1636 2212 3272 4808 5655 5958 6650 6958 8217 10717 11535 8 1475 2950 3275 6651 7996 9996 11536 11996 6 1639 2213 3278 5513 6652 11537 3 3281 4809 11538 9 1476 1642 2214 2952 3284 6654 8218 10718 11539 2 3287 11540 12 1645 2215 3290 4810 5658 5959 6655 6959 7997 9997 11541 11997 4 1477 2954 3293 11542 11 1648 2216 3296 5515 5659 5960 6368 6656 8219 10719 11543 3 3299 4811 11544 7 1478 1651 2217 2956 3302 6658 11545 8 3305 5516 6369 6659 7998 9998 11546 11998 9 1654 2218 3308 4812 6660 6960 8220 10720 11547 4 1479 2958 3311 11548 6 1657 2219 3314 5517 6662 11549 3 3317 4813 11550 14 1480 1660 2220 2960 3320 5664 5961 6663 7999 8221 9999 10721 11551 11999 2 3323 11552 8 1663 2221 3326 4814 5962 6664 6962 11553 4 1481 2962 3329 11554 9 1666 2222 3332 5519 6370 6666 8222 10722 11555 8 3335 4815 6667 6963 8000 10000 11556 12000 8 1482 1669 2223 2964 3338 5668 6668 11557 2 3341 11558 11 1672 2224 3344 4816 5670 5963 6670 6964 8223 10723 11559 4 1483 2966 3347 11560 12 1675 2225 3350 5520 5671 5964 6371 6671 8001 10001 11561 12001 3 3353 4817 11562 9 1484 1678 2226 2968 3356 6672 8224 10724 11563 2 3359 11564 9 1681 2227 3362 4818 5674 5965 6674 6966 11565 8 1485 2970 3365 6675 8002 10002 11566 12002 11 1684 2228 3368 5521 5675 5966 6372 6676 8225 10725 11567 3 3371 4819 11568 8 1486 1687 2229 2972 3374 5677 6678 11569 2 3377 11570 14 1690 2230 3380 4820 5679 5967 6679 6967 8003 8226 10003 10726 11571 12003 4 1487 2974 3383 11572 7 1693 2231 3386 5523 5681 6680 11573 3 3389 4821 11574 11 1488 1696 2232 2976 3392 5683 5968 6682 8227 10727 11575 8 3395 5524 6373 6683 8004 10004 11576 12004 9 1699 2233 3398 4822 5684 5969 6684 6968 11577 4 1489 2978 3401 11578 9 1702 2234 3404 5525 6374 6686 8228 10728 11579 3 3407 4823 11580 12 1490 1705 2235 2980 3410 5687 5970 6687 8005 10005 11581 12005 2 3413 11582 11 1708 2236 3416 4824 5688 5971 6688 6970 8229 10729 11583 4 1491 2982 3419 11584 7 1711 2237 3422 5527 5690 6690 11585 8 3425 4825 6691 6971 8006 10006 11586 12006 9 1492 1714 2238 2984 3428 6692 8230 10730 11587 2 3431 11588 9 1717 2239 3434 4826 5694 5972 6694 6972 11589 4 1493 2986 3437 11590 14 1720 2240 3440 5528 5695 5973 6375 6695 8007 8231 10007 10731 11591 12007 3 3443 4827 11592 8 1494 1723 2241 2988 3446 5696 6696 11593 2 3449 11594 9 1726 2242 3452 4828 6698 6974 8232 10732 11595 8 1495 2990 3455 6699 8008 10008 11596 12008 7 1729 2243 3458 5529 5700 6700 11597 3 3461 4829 11598 11 1496 1732 2244 2992 3464 5702 5974 6702 8233 10733 11599 2 3467 11600 12 1735 2245 3470 4830 5703 5975 6703 6975 8009 10009 11601 12009 4 1497 2994 3473 11602 9 1738 2246 3476 5531 6376 6704 8234 10734 11603 3 3479 4831 11604 8 1498 1741 2247 2996 3482 5706 6706 11605 8 3485 5532 6377 6707 8010 10010 11606 12010 11 1744 2248 3488 4832 5707 5976 6708 6976 8235 10735 11607 4 1499 2998 3491 11608 7 1747 2249 3494 5533 5709 6710 11609 3 3497 4833 11610 14 1500 1750 2250 3000 3500 5711 5977 6711 8011 8236 10011 10736 11611 12011 2 3503 11612 9 1753 2251 3506 4834 5713 5978 6712 6978 11613 4 1501 3002 3509 11614 11 1756 2252 3512 5535 5715 5979 6378 6714 8237 10737 11615 8 3515 4835 6715 6979 8012 10012 11616 12012 8 1502 1759 2253 3004 3518 5716 6716 11617 2 3521 11618 9 1762 2254 3524 4836 6718 6980 8238 10738 11619 4 1503 3006 3527 11620 12 1765 2255 3530 5536 5719 5980 6379 6719 8013 10013 11621 12013 3 3533 4837 11622 11 1504 1768 2256 3008 3536 5720 5981 6720 8239 10739 11623 2 3539 11624 9 1771 2257 3542 4838 5722 5982 6722 6982 11625 8 1505 3010 3545 6723 8014 10014 11626 12014 9 1774 2258 3548 5537 6380 6724 8240 10740 11627 3 3551 4839 11628 8 1506 1777 2259 3012 3554 5726 6726 11629 2 3557 11630 14 1780 2260 3560 4840 5727 5983 6727 6983 8015 8241 10015 10741 11631 12015 4 1507 3014 3563 11632 7 1783 2261 3566 5539 5728 6728 11633 3 3569 4841 11634 9 1508 1786 2262 3016 3572 6730 8242 10742 11635 8 3575 5540 6381 6731 8016 10016 11636 12016 9 1789 2263 3578 4842 5732 5984 6732 6984 11637 4 1509 3018 3581 11638 11 1792 2264 3584 5541 5734 5985 6382 6734 8243 10743 11639 3 3587 4843 11640 12 1510 1795 2265 3020 3590 5735 5986 6735 8017 10017 11641 12017 2 3593 11642 9 1798 2266 3596 4844 6736 6986 8244 10744 11643 4 1511 3022 3599 11644 7 1801 2267 3602 5543 5738 6738 11645 8 3605 4845 6739 6987 8018 10018 11646 12018 11 1512 1804 2268 3024 3608 5739 5987 6740 8245 10745 11647 2 3611 11648 9 1807 2269 3614 4846 5741 5988 6742 6988 11649 4 1513 3026 3617 11650 14 1810 2270 3620 5544 5743 5989 6383 6743 8019 8246 10019 10746 11651 12019 3 3623 4847 11652 8 1514 1813 2271 3028 3626 5745 6744 11653 2 3629 11654 11 1816 2272 3632 4848 5747 5990 6746 6990 8247 10747 11655 8 1515 3030 3635 6747 8020 10020 11656 12020 7 1819 2273 3638 5545 5748 6748 11657 3 3641 4849 11658 9 1516 1822 2274 3032 3644 6750 8248 10748 11659 2 3647 11660 12 1825 2275 3650 4850 5751 5991 6751 6991 8021 10021 11661 12021 4 1517 3034 3653 11662 11 1828 2276 3656 5547 5752 5992 6384 6752 8249 10749 11663 3 3659 4851 11664 8 1518 1831 2277 3036 3662 5754 6754 11665 8 3665 5548 6385 6755 8022 10022 11666 12022 9 1834 2278 3668 4852 6756 6992 8250 10750 11667 4 1519 3038 3671 11668 7 1837 2279 3674 5549 5758 6758 11669 3 3677 4853 11670 14 1520 1840 2280 3040 3680 5759 5993 6759 8023 8251 10023 10751 11671 12023 2 3683 11672 9 1843 2281 3686 4854 5760 5994 6760 6994 11673 4 1521 3042 3689 11674 9 1846 2282 3692 5551 6386 6762 8252 10752 11675 8 3695 4855 6763 6995 8024 10024 11676 12024 8 1522 1849 2283 3044 3698 5764 6764 11677 2 3701 11678 11 1852 2284 3704 4856 5766 5995 6766 6996 8253 10753 11679 4 1523 3046 3707 11680 12 1855 2285 3710 5552 5767 5996 6387 6767 8025 10025 11681 12025 3 3713 4857 11682 9 1524 1858 2286 3048 3716 6768 8254 10754 11683 2 3719 11684 9 1861 2287 3722 4858 5770 5997 6770 6998 11685 8 1525 3050 3725 6771 8026 10026 11686 12026 11 1864 2288 3728 5553 5771 5998 6388 6772 8255 10755 11687 3 3731 4859 11688 8 1526 1867 2289 3052 3734 5773 6774 11689 2 3737 11690 14 1870 2290 3740 4860 5775 5999 6775 6999 8027 8256 10027 10756 11691 12027 4 1527 3054 3743 11692 7 1873 2291 3746 5555 5777 6776 11693 3 3749 4861 11694 11 1528 1876 2292 3056 3752 5779 6000 6778 8257 10757 11695 8 3755 5556 6389 6779 8028 10028 11696 12028 9 1879 2293 3758 4862 5780 6001 6780 7000 11697 4 1529 3058 3761 11698 9 1882 2294 3764 5557 6390 6782 8258 10758 11699 3 3767 4863 11700 12 1530 1885 2295 3060 3770 5783 6002 6783 8029 10029 11701 12029 2 3773 11702 11 1888 2296 3776 4864 5784 6003 6784 7002 8259 10759 11703 4 1531 3062 3779 11704 7 1891 2297 3782 5559 5786 6786 11705 8 3785 4865 6787 7003 8030 10030 11706 12030 9 1532 1894 2298 3064 3788 6788 8260 10760 11707 2 3791 11708 9 1897 2299 3794 4866 5790 6004 6790 7004 11709 4 1533 3066 3797 11710 14 1900 2300 3800 5560 5791 6005 6391 6791 8031 8261 10031 10761 11711 12031 3 3803 4867 11712 8 1534 1903 2301 3068 3806 5792 6792 11713 2 3809 11714 9 1906 2302 3812 4868 6794 7006 8262 10762 11715 8 1535 3070 3815 6795 8032 10032 11716 12032 7 1909 2303 3818 5561 5796 6796 11717 3 3821 4869 11718 11 1536 1912 2304 3072 3824 5798 6006 6798 8263 10763 11719 2 3827 11720 12 1915 2305 3830 4870 5799 6007 6799 7007 8033 10033 11721 12033 4 1537 3074 3833 11722 9 1918 2306 3836 5563 6392 6800 8264 10764 11723 3 3839 4871 11724 8 1538 1921 2307 3076 3842 5802 6802 11725 8 3845 5564 6393 6803 8034 10034 11726 12034 11 1924 2308 3848 4872 5803 6008 6804 7008 8265 10765 11727 4 1539 3078 3851 11728 7 1927 2309 3854 5565 5805 6806 11729 3 3857 4873 11730 14 1540 1930 2310 3080 3860 5807 6009 6807 8035 8266 10035 10766 11731 12035 2 3863 11732 9 1933 2311 3866 4874 5809 6010 6808 7010 11733 4 1541 3082 3869 11734 11 1936 2312 3872 5567 5811 6011 6394 6810 8267 10767 11735 8 3875 4875 6811 7011 8036 10036 11736 12036 8 1542 1939 2313 3084 3878 5812 6812 11737 2 3881 11738 9 1942 2314 3884 4876 6814 7012 8268 10768 11739 4 1543 3086 3887 11740 12 1945 2315 3890 5568 5815 6012 6395 6815 8037 10037 11741 12037 3 3893 4877 11742 11 1544 1948 2316 3088 3896 5816 6013 6816 8269 10769 11743 2 3899 11744 9 1951 2317 3902 4878 5818 6014 6818 7014 11745 8 1545 3090 3905 6819 8038 10038 11746 12038 9 1954 2318 3908 5569 6396 6820 8270 10770 11747 3 3911 4879 11748 8 1546 1957 2319 3092 3914 5822 6822 11749 2 3917 11750 14 1960 2320 3920 4880 5823 6015 6823 7015 8039 8271 10039 10771 11751 12039 4 1547 3094 3923 11752 7 1963 2321 3926 5571 5824 6824 11753 3 3929 4881 11754 9 1548 1966 2322 3096 3932 6826 8272 10772 11755 8 3935 5572 6397 6827 8040 10040 11756 12040 9 1969 2323 3938 4882 5828 6016 6828 7016 11757 4 1549 3098 3941 11758 11 1972 2324 3944 5573 5830 6017 6398 6830 8273 10773 11759 3 3947 4883 11760 12 1550 1975 2325 3100 3950 5831 6018 6831 8041 10041 11761 12041 2 3953 11762 9 1978 2326 3956 4884 6832 7018 8274 10774 11763 4 1551 3102 3959 11764 7 1981 2327 3962 5575 5834 6834 11765 8 3965 4885 6835 7019 8042 10042 11766 12042 11 1552 1984 2328 3104 3968 5835 6019 6836 8275 10775 11767 2 3971 11768 9 1987 2329 3974 4886 5837 6020 6838 7020 11769 4 1553 3106 3977 11770 14 1990 2330 3980 5576 5839 6021 6399 6839 8043 8276 10043 10776 11771 12043 3 3983 4887 11772 8 1554 1993 2331 3108 3986 5841 6840 11773 2 3989 11774 11 1996 2332 3992 4888 5843 6022 6842 7022 8277 10777 11775 8 1555 3110 3995 6843 8044 10044 11776 12044 7 1999 2333 3998 5577 5844 6844 11777 3 4001 4889 11778 9 1556 2002 2334 3112 4004 6846 8278 10778 11779 2 4007 11780 12 2005 2335 4010 4890 5847 6023 6847 7023 8045 10045 11781 12045 4 1557 3114 4013 11782 11 2008 2336 4016 5579 5848 6024 6400 6848 8279 10779 11783 3 4019 4891 11784 8 1558 2011 2337 3116 4022 5850 6850 11785 8 4025 5580 6401 6851 8046 10046 11786 12046 9 2014 2338 4028 4892 6852 7024 8280 10780 11787 4 1559 3118 4031 11788 7 2017 2339 4034 5581 5854 6854 11789 3 4037 4893 11790 14 1560 2020 2340 3120 4040 5855 6025 6855 8047 8281 10047 10781 11791 12047 2 4043 11792 9 2023 2341 4046 4894 5856 6026 6856 7026 11793 4 1561 3122 4049 11794 9 2026 2342 4052 5583 6402 6858 8282 10782 11795 8 4055 4895 6859 7027 8048 10048 11796 12048 8 1562 2029 2343 3124 4058 5860 6860 11797 2 4061 11798 11 2032 2344 4064 4896 5862 6027 6862 7028 8283 10783 11799 4 1563 3126 4067 11800 12 2035 2345 4070 5584 5863 6028 6403 6863 8049 10049 11801 12049 3 4073 4897 11802 9 1564 2038 2346 3128 4076 6864 8284 10784 11803 2 4079 11804 9 2041 2347 4082 4898 5866 6029 6866 7030 11805 8 1565 3130 4085 6867 8050 10050 11806 12050 11 2044 2348 4088 5585 5867 6030 6404 6868 8285 10785 11807 3 4091 4899 11808 8 1566 2047 2349 3132 4094 5869 6870 11809 2 4097 11810 14 2050 2350 4100 4900 5871 6031 6871 7031 8051 8286 10051 10786 11811 12051 4 1567 3134 4103 11812 7 2053 2351 4106 5587 5873 6872 11813 3 4109 4901 11814 11 1568 2056 2352 3136 4112 5875 6032 6874 8287 10787 11815 8 4115 5588 6405 6875 8052 10052 11816 12052 9 2059 2353 4118 4902 5876 6033 6876 7032 11817 4 1569 3138 4121 11818 9 2062 2354 4124 5589 6406 6878 8288 10788 11819 3 4127 4903 11820 12 1570 2065 2355 3140 4130 5879 6034 6879 8053 10053 11821 12053 2 4133 11822 11 2068 2356 4136 4904 5880 6035 6880 7034 8289 10789 11823 4 1571 3142 4139 11824 7 2071 2357 4142 5591 5882 6882 11825 8 4145 4905 6883 7035 8054 10054 11826 12054 9 1572 2074 2358 3144 4148 6884 8290 10790 11827 2 4151 11828 9 2077 2359 4154 4906 5886 6036 6886 7036 11829 4 1573 3146 4157 11830 14 2080 2360 4160 5592 5887 6037 6407 6887 8055 8291 10055 10791 11831 12055 3 4163 4907 11832 8 1574 2083 2361 3148 4166 5888 6888 11833 2 4169 11834 9 2086 2362 4172 4908 6890 7038 8292 10792 11835 8 1575 3150 4175 6891 8056 10056 11836 12056 7 2089 2363 4178 5593 5892 6892 11837 3 4181 4909 11838 11 1576 2092 2364 3152 4184 5894 6038 6894 8293 10793 11839 2 4187 11840 12 2095 2365 4190 4910 5895 6039 6895 7039 8057 10057 11841 12057 4 1577 3154 4193 11842 9 2098 2366 4196 5595 6408 6896 8294 10794 11843 3 4199 4911 11844 8 1578 2101 2367 3156 4202 5898 6898 11845 8 4205 5596 6409 6899 8058 10058 11846 12058 11 2104 2368 4208 4912 5899 6040 6900 7040 8295 10795 11847 4 1579 3158 4211 11848 7 2107 2369 4214 5597 5901 6902 11849 3 4217 4913 11850 14 1580 2110 2370 3160 4220 5903 6041 6903 8059 8296 10059 10796 11851 12059 2 4223 11852 9 2113 2371 4226 4914 5905 6042 6904 7042 11853 4 1581 3162 4229 11854 11 2116 2372 4232 5599 5907 6043 6410 6906 8297 10797 11855 8 4235 4915 6907 7043 8060 10060 11856 12060 8 1582 2119 2373 3164 4238 5908 6908 11857 2 4241 11858 9 2122 2374 4244 4916 6910 7044 8298 10798 11859 4 1583 3166 4247 11860 12 2125 2375 4250 5600 5911 6044 6411 6911 8061 10061 11861 12061 3 4253 4917 11862 11 1584 2128 2376 3168 4256 5912 6045 6912 8299 10799 11863 2 4259 11864 9 2131 2377 4262 4918 5914 6046 6914 7046 11865 8 1585 3170 4265 6915 8062 10062 11866 12062 9 2134 2378 4268 5601 6412 6916 8300 10800 11867 3 4271 4919 11868 8 1586 2137 2379 3172 4274 5918 6918 11869 2 4277 11870 14 2140 2380 4280 4920 5919 6047 6919 7047 8063 8301 10063 10801 11871 12063 4 1587 3174 4283 11872 7 2143 2381 4286 5603 5920 6920 11873 3 4289 4921 11874 9 1588 2146 2382 3176 4292 6922 8302 10802 11875 8 4295 5604 6413 6923 8064 10064 11876 12064 9 2149 2383 4298 4922 5924 6048 6924 7048 11877 4 1589 3178 4301 11878 11 2152 2384 4304 5605 5926 6049 6414 6926 8303 10803 11879 3 4307 4923 11880 12 1590 2155 2385 3180 4310 5927 6050 6927 8065 10065 11881 12065 2 4313 11882 9 2158 2386 4316 4924 6928 7050 8304 10804 11883 4 1591 3182 4319 11884 7 2161 2387 4322 5607 5930 6930 11885 8 4325 4925 6931 7051 8066 10066 11886 12066 11 1592 2164 2388 3184 4328 5931 6051 6932 8305 10805 11887 2 4331 11888 9 2167 2389 4334 4926 5933 6052 6934 7052 11889 4 1593 3186 4337 11890 14 2170 2390 4340 5608 5935 6053 6415 6935 8067 8306 10067 10806 11891 12067 3 4343 4927 11892 8 1594 2173 2391 3188 4346 5937 6936 11893 2 4349 11894 11 2176 2392 4352 4928 5939 6054 6938 7054 8307 10807 11895 8 1595 3190 4355 6939 8068 10068 11896 12068 7 2179 2393 4358 5609 5940 6940 11897 3 4361 4929 11898 9 1596 2182 2394 3192 4364 6942 8308 10808 11899 2 4367 11900 12 2185 2395 4370 4930 5943 6055 6943 7055 8069 10069 11901 12069 4 1597 3194 4373 11902 11 2188 2396 4376 5611 5944 6056 6416 6944 8309 10809 11903 3 4379 4931 11904 8 1598 2191 2397 3196 4382 5946 6946 11905 8 4385 5612 6417 6947 8070 10070 11906 12070 9 2194 2398 4388 4932 6948 7056 8310 10810 11907 4 1599 3198 4391 11908 7 2197 2399 4394 5613 5950 6950 11909 3 4397 4933 11910 14 1600 2200 2400 3200 4400 5951 6057 6951 8071 8311 10071 10811 11911 12071 2 4403 11912 9 2203 2401 4406 4934 5952 6058 6952 7058 11913 4 1601 3202 4409 11914 9 2206 2402 4412 5615 6418 6954 8312 10812 11915 8 4415 4935 6955 7059 8072 10072 11916 12072 8 1602 2209 2403 3204 4418 5956 6956 11917 2 4421 11918 11 2212 2404 4424 4936 5958 6059 6958 7060 8313 10813 11919 4 1603 3206 4427 11920 12 2215 2405 4430 5616 5959 6060 6419 6959 8073 10073 11921 12073 3 4433 4937 11922 9 1604 2218 2406 3208 4436 6960 8314 10814 11923 2 4439 11924 9 2221 2407 4442 4938 5962 6061 6962 7062 11925 8 1605 3210 4445 6963 8074 10074 11926 12074 11 2224 2408 4448 5617 5963 6062 6420 6964 8315 10815 11927 3 4451 4939 11928 8 1606 2227 2409 3212 4454 5965 6966 11929 2 4457 11930 14 2230 2410 4460 4940 5967 6063 6967 7063 8075 8316 10075 10816 11931 12075 4 1607 3214 4463 11932 7 2233 2411 4466 5619 5969 6968 11933 3 4469 4941 11934 11 1608 2236 2412 3216 4472 5971 6064 6970 8317 10817 11935 8 4475 5620 6421 6971 8076 10076 11936 12076 9 2239 2413 4478 4942 5972 6065 6972 7064 11937 4 1609 3218 4481 11938 9 2242 2414 4484 5621 6422 6974 8318 10818 11939 3 4487 4943 11940 12 1610 2245 2415 3220 4490 5975 6066 6975 8077 10077 11941 12077 2 4493 11942 11 2248 2416 4496 4944 5976 6067 6976 7066 8319 10819 11943 4 1611 3222 4499 11944 7 2251 2417 4502 5623 5978 6978 11945 8 4505 4945 6979 7067 8078 10078 11946 12078 9 1612 2254 2418 3224 4508 6980 8320 10820 11947 2 4511 11948 9 2257 2419 4514 4946 5982 6068 6982 7068 11949 4 1613 3226 4517 11950 14 2260 2420 4520 5624 5983 6069 6423 6983 8079 8321 10079 10821 11951 12079 3 4523 4947 11952 8 1614 2263 2421 3228 4526 5984 6984 11953 2 4529 11954 9 2266 2422 4532 4948 6986 7070 8322 10822 11955 8 1615 3230 4535 6987 8080 10080 11956 12080 7 2269 2423 4538 5625 5988 6988 11957 3 4541 4949 11958 11 1616 2272 2424 3232 4544 5990 6070 6990 8323 10823 11959 2 4547 11960 12 2275 2425 4550 4950 5991 6071 6991 7071 8081 10081 11961 12081 4 1617 3234 4553 11962 9 2278 2426 4556 5627 6424 6992 8324 10824 11963 3 4559 4951 11964 8 1618 2281 2427 3236 4562 5994 6994 11965 8 4565 5628 6425 6995 8082 10082 11966 12082 11 2284 2428 4568 4952 5995 6072 6996 7072 8325 10825 11967 4 1619 3238 4571 11968 7 2287 2429 4574 5629 5997 6998 11969 3 4577 4953 11970 14 1620 2290 2430 3240 4580 5999 6073 6999 8083 8326 10083 10826 11971 12083 2 4583 11972 9 2293 2431 4586 4954 6001 6074 7000 7074 11973 4 1621 3242 4589 11974 11 2296 2432 4592 5631 6003 6075 6426 7002 8327 10827 11975 8 4595 4955 7003 7075 8084 10084 11976 12084 8 1622 2299 2433 3244 4598 6004 7004 11977 2 4601 11978 9 2302 2434 4604 4956 7006 7076 8328 10828 11979 4 1623 3246 4607 11980 12 2305 2435 4610 5632 6007 6076 6427 7007 8085 10085 11981 12085 3 4613 4957 11982 11 1624 2308 2436 3248 4616 6008 6077 7008 8329 10829 11983 2 4619 11984 9 2311 2437 4622 4958 6010 6078 7010 7078 11985 8 1625 3250 4625 7011 8086 10086 11986 12086 9 2314 2438 4628 5633 6428 7012 8330 10830 11987 3 4631 4959 11988 8 1626 2317 2439 3252 4634 6014 7014 11989 2 4637 11990 14 2320 2440 4640 4960 6015 6079 7015 7079 8087 8331 10087 10831 11991 12087 4 1627 3254 4643 11992 7 2323 2441 4646 5635 6016 7016 11993 3 4649 4961 11994 9 1628 2326 2442 3256 4652 7018 8332 10832 11995 8 4655 5636 6429 7019 8088 10088 11996 12088 9 2329 2443 4658 4962 6020 6080 7020 7080 11997 4 1629 3258 4661 11998 11 2332 2444 4664 5637 6022 6081 6430 7022 8333 10833 11999 3 4667 4963 12000 12 1630 2335 2445 3260 4670 6023 6082 7023 8089 10089 12001 12089 2 4673 12002 9 2338 2446 4676 4964 7024 7082 8334 10834 12003 4 1631 3262 4679 12004 7 2341 2447 4682 5639 6026 7026 12005 8 4685 4965 7027 7083 8090 10090 12006 12090 11 1632 2344 2448 3264 4688 6027 6083 7028 8335 10835 12007 2 4691 12008 9 2347 2449 4694 4966 6029 6084 7030 7084 12009 4 1633 3266 4697 12010 14 2350 2450 4700 5640 6031 6085 6431 7031 8091 8336 10091 10836 12011 12091 3 4703 4967 12012 8 1634 2353 2451 3268 4706 6033 7032 12013 2 4709 12014 11 2356 2452 4712 4968 6035 6086 7034 7086 8337 10837 12015 8 1635 3270 4715 7035 8092 10092 12016 12092 7 2359 2453 4718 5641 6036 7036 12017 3 4721 4969 12018 9 1636 2362 2454 3272 4724 7038 8338 10838 12019 2 4727 12020 12 2365 2455 4730 4970 6039 6087 7039 7087 8093 10093 12021 12093 4 1637 3274 4733 12022 11 2368 2456 4736 5643 6040 6088 6432 7040 8339 10839 12023 3 4739 4971 12024 8 1638 2371 2457 3276 4742 6042 7042 12025 8 4745 5644 6433 7043 8094 10094 12026 12094 9 2374 2458 4748 4972 7044 7088 8340 10840 12027 4 1639 3278 4751 12028 7 2377 2459 4754 5645 6046 7046 12029 3 4757 4973 12030 14 1640 2380 2460 3280 4760 6047 6089 7047 8095 8341 10095 10841 12031 12095 2 4763 12032 9 2383 2461 4766 4974 6048 6090 7048 7090 12033 4 1641 3282 4769 12034 9 2386 2462 4772 5647 6434 7050 8342 10842 12035 8 4775 4975 7051 7091 8096 10096 12036 12096 8 1642 2389 2463 3284 4778 6052 7052 12037 2 4781 12038 11 2392 2464 4784 4976 6054 6091 7054 7092 8343 10843 12039 4 1643 3286 4787 12040 12 2395 2465 4790 5648 6055 6092 6435 7055 8097 10097 12041 12097 3 4793 4977 12042 9 1644 2398 2466 3288 4796 7056 8344 10844 12043 2 4799 12044 9 2401 2467 4802 4978 6058 6093 7058 7094 12045 8 1645 3290 4805 7059 8098 10098 12046 12098 11 2404 2468 4808 5649 6059 6094 6436 7060 8345 10845 12047 3 4811 4979 12048 8 1646 2407 2469 3292 4814 6061 7062 12049 2 4817 12050 14 2410 2470 4820 4980 6063 6095 7063 7095 8099 8346 10099 10846 12051 12099 4 1647 3294 4823 12052 7 2413 2471 4826 5651 6065 7064 12053 3 4829 4981 12054 11 1648 2416 2472 3296 4832 6067 6096 7066 8347 10847 12055 8 4835 5652 6437 7067 8100 10100 12056 12100 9 2419 2473 4838 4982 6068 6097 7068 7096 12057 4 1649 3298 4841 12058 9 2422 2474 4844 5653 6438 7070 8348 10848 12059 3 4847 4983 12060 12 1650 2425 2475 3300 4850 6071 6098 7071 8101 10101 12061 12101 2 4853 12062 11 2428 2476 4856 4984 6072 6099 7072 7098 8349 10849 12063 4 1651 3302 4859 12064 7 2431 2477 4862 5655 6074 7074 12065 8 4865 4985 7075 7099 8102 10102 12066 12102 9 1652 2434 2478 3304 4868 7076 8350 10850 12067 2 4871 12068 9 2437 2479 4874 4986 6078 6100 7078 7100 12069 4 1653 3306 4877 12070 14 2440 2480 4880 5656 6079 6101 6439 7079 8103 8351 10103 10851 12071 12103 3 4883 4987 12072 8 1654 2443 2481 3308 4886 6080 7080 12073 2 4889 12074 9 2446 2482 4892 4988 7082 7102 8352 10852 12075 8 1655 3310 4895 7083 8104 10104 12076 12104 7 2449 2483 4898 5657 6084 7084 12077 3 4901 4989 12078 11 1656 2452 2484 3312 4904 6086 6102 7086 8353 10853 12079 2 4907 12080 12 2455 2485 4910 4990 6087 6103 7087 7103 8105 10105 12081 12105 4 1657 3314 4913 12082 9 2458 2486 4916 5659 6440 7088 8354 10854 12083 3 4919 4991 12084 8 1658 2461 2487 3316 4922 6090 7090 12085 8 4925 5660 6441 7091 8106 10106 12086 12106 11 2464 2488 4928 4992 6091 6104 7092 7104 8355 10855 12087 4 1659 3318 4931 12088 7 2467 2489 4934 5661 6093 7094 12089 3 4937 4993 12090 14 1660 2470 2490 3320 4940 6095 6105 7095 8107 8356 10107 10856 12091 12107 2 4943 12092 9 2473 2491 4946 4994 6097 6106 7096 7106 12093 4 1661 3322 4949 12094 11 2476 2492 4952 5663 6099 6107 6442 7098 8357 10857 12095 8 4955 4995 7099 7107 8108 10108 12096 12108 8 1662 2479 2493 3324 4958 6100 7100 12097 2 4961 12098 9 2482 2494 4964 4996 7102 7108 8358 10858 12099 4 1663 3326 4967 12100 12 2485 2495 4970 5664 6103 6108 6443 7103 8109 10109 12101 12109 3 4973 4997 12102 11 1664 2488 2496 3328 4976 6104 6109 7104 8359 10859 12103 2 4979 12104 9 2491 2497 4982 4998 6106 6110 7106 7110 12105 8 1665 3330 4985 7107 8110 10110 12106 12110 9 2494 2498 4988 5665 6444 7108 8360 10860 12107 3 4991 4999 12108 8 1666 2497 2499 3332 4994 6110 7110 12109 2 4997 12110 8 2500 6111 7111 8111 8361 10111 10861 12111 8 8 1668 2502 2506 3336 5005 8362 10862 6 10 5006 5669 6445 8112 10112 10 16 2504 2512 5009 5670 6112 6116 6446 8363 10863 10 20 1670 2505 2515 3340 5012 6113 6117 8113 10113 8 8 24 2506 2518 5001 5015 8364 10864 6 10 30 5002 5018 8114 10114 10 32 1672 2508 2524 3344 5019 6114 6120 8365 10865 12 40 2510 2530 5024 5673 6115 6123 6447 8115 8366 10115 10866 10 16 48 2512 2536 5003 5029 6116 6126 8367 10867 6 50 1675 3350 5030 8116 10116 8 56 1676 2514 2542 3352 5033 8368 10868 10 20 60 2515 2545 5004 5036 6117 6129 8117 10117 10 64 2516 2548 5039 5678 6118 6130 6448 8369 10869 6 70 5042 5679 6449 8118 10118 8 24 72 2518 2554 5005 5043 8370 10870 12 80 1680 2520 2560 3360 5048 6119 6135 8119 8371 10119 10871 8 88 2522 2566 5053 5683 6450 8372 10872 6 30 90 5006 5054 8120 10120 10 32 96 2524 2572 5007 5057 6120 6140 8373 10873 10 100 2525 2575 5060 5685 6121 6141 6451 8121 10121 8 104 1684 2526 2578 3368 5063 8374 10874 6 110 1685 3370 5066 8122 10122 10 112 2528 2584 5067 5686 6122 6144 6452 8375 10875 12 40 120 2530 2590 5008 5072 6123 6147 8123 8376 10123 10876 10 128 1688 2532 2596 3376 5077 6124 6150 8377 10877 6 130 5078 5689 6453 8124 10124 8 136 2534 2602 5081 5691 6454 8378 10878 10 140 1690 2535 2605 3380 5084 6125 6153 8125 10125 10 48 144 2536 2608 5009 5087 6126 6154 8379 10879 6 50 150 5010 5090 8126 10126 8 152 1692 2538 2614 3384 5091 8380 10880 12 160 2540 2620 5096 5695 6127 6159 6455 8127 8381 10127 10881 8 56 168 2542 2626 5011 5101 8382 10882 6 170 1695 3390 5102 8128 10128 10 176 1696 2544 2632 3392 5105 6128 6164 8383 10883 10 60 180 2545 2635 5012 5108 6129 6165 8129 10129 8 184 2546 2638 5111 5699 6456 8384 10884 6 190 5114 5701 6457 8130 10130 10 64 192 2548 2644 5013 5115 6130 6168 8385 10885 12 200 1700 2550 2650 3400 5120 6131 6171 8131 8386 10131 10886 10 208 2552 2656 5125 5704 6132 6174 6458 8387 10887 6 70 210 5014 5126 8132 10132 8 72 216 2554 2662 5015 5129 8388 10888 10 220 2555 2665 5132 5705 6133 6177 6459 8133 10133 10 224 1704 2556 2668 3408 5135 6134 6178 8389 10889 6 230 1705 3410 5138 8134 10134 8 232 2558 2674 5139 5707 6460 8390 10890 12 80 240 2560 2680 5016 5144 6135 6183 8135 8391 10135 10891 8 248 1708 2562 2686 3416 5149 8392 10892 6 250 5150 5711 6461 8136 10136 10 256 2564 2692 5153 5712 6136 6188 6462 8393 10893 10 260 1710 2565 2695 3420 5156 6137 6189 8137 10137 8 88 264 2566 2698 5017 5159 8394 10894 6 90 270 5018 5162 8138 10138 10 272 1712 2568 2704 3424 5163 6138 6192 8395 10895 12 280 2570 2710 5168 5717 6139 6195 6463 8139 8396 10139 10896 10 96 288 2572 2716 5019 5173 6140 6198 8397 10897 6 290 1715 3430 5174 8140 10140 8 296 1716 2574 2722 3432 5177 8398 10898 10 100 300 2575 2725 5020 5180 6141 6201 8141 10141 10 304 2576 2728 5183 5720 6142 6202 6464 8399 10899 6 310 5186 5721 6465 8142 10142 8 104 312 2578 2734 5021 5187 8400 10900 12 320 1720 2580 2740 3440 5192 6143 6207 8143 8401 10143 10901 8 328 2582 2746 5197 5725 6466 8402 10902 6 110 330 5022 5198 8144 10144 10 112 336 2584 2752 5023 5201 6144 6212 8403 10903 10 340 2585 2755 5204 5727 6145 6213 6467 8145 10145 8 344 1724 2586 2758 3448 5207 8404 10904 6 350 1725 3450 5210 8146 10146 10 352 2588 2764 5211 5729 6146 6216 6468 8405 10905 12 120 360 2590 2770 5024 5216 6147 6219 8147 8406 10147 10906 10 368 1728 2592 2776 3456 5221 6148 6222 8407 10907 6 370 5222 5733 6469 8148 10148 8 376 2594 2782 5225 5734 6470 8408 10908 10 380 1730 2595 2785 3460 5228 6149 6225 8149 10149 10 128 384 2596 2788 5025 5231 6150 6226 8409 10909 6 130 390 5026 5234 8150 10150 8 392 1732 2598 2794 3464 5235 8410 10910 12 400 2600 2800 5240 5737 6151 6231 6471 8151 8411 10151 10911 8 136 408 2602 2806 5027 5245 8412 10912 6 410 1735 3470 5246 8152 10152 10 416 1736 2604 2812 3472 5249 6152 6236 8413 10913 10 140 420 2605 2815 5028 5252 6153 6237 8153 10153 8 424 2606 2818 5255 5742 6472 8414 10914 6 430 5258 5743 6473 8154 10154 10 144 432 2608 2824 5029 5259 6154 6240 8415 10915 12 440 1740 2610 2830 3480 5264 6155 6243 8155 8416 10155 10916 10 448 2612 2836 5269 5747 6156 6246 6474 8417 10917 6 150 450 5030 5270 8156 10156 8 152 456 2614 2842 5031 5273 8418 10918 10 460 2615 2845 5276 5749 6157 6249 6475 8157 10157 10 464 1744 2616 2848 3488 5279 6158 6250 8419 10919 6 470 1745 3490 5282 8158 10158 8 472 2618 2854 5283 5750 6476 8420 10920 12 160 480 2620 2860 5032 5288 6159 6255 8159 8421 10159 10921 8 488 1748 2622 2866 3496 5293 8422 10922 6 490 5294 5753 6477 8160 10160 10 496 2624 2872 5297 5755 6160 6260 6478 8423 10923 10 500 1750 2625 2875 3500 5300 6161 6261 8161 10161 8 168 504 2626 2878 5033 5303 8424 10924 6 170 510 5034 5306 8162 10162 10 512 1752 2628 2884 3504 5307 6162 6264 8425 10925 12 520 2630 2890 5312 5759 6163 6267 6479 8163 8426 10163 10926 10 176 528 2632 2896 5035 5317 6164 6270 8427 10927 6 530 1755 3510 5318 8164 10164 8 536 1756 2634 2902 3512 5321 8428 10928 10 180 540 2635 2905 5036 5324 6165 6273 8165 10165 10 544 2636 2908 5327 5763 6166 6274 6480 8429 10929 6 550 5330 5765 6481 8166 10166 8 184 552 2638 2914 5037 5331 8430 10930 12 560 1760 2640 2920 3520 5336 6167 6279 8167 8431 10167 10931 8 568 2642 2926 5341 5768 6482 8432 10932 6 190 570 5038 5342 8168 10168 10 192 576 2644 2932 5039 5345 6168 6284 8433 10933 10 580 2645 2935 5348 5769 6169 6285 6483 8169 10169 8 584 1764 2646 2938 3528 5351 8434 10934 6 590 1765 3530 5354 8170 10170 10 592 2648 2944 5355 5771 6170 6288 6484 8435 10935 12 200 600 2650 2950 5040 5360 6171 6291 8171 8436 10171 10936 10 608 1768 2652 2956 3536 5365 6172 6294 8437 10937 6 610 5366 5775 6485 8172 10172 8 616 2654 2962 5369 5776 6486 8438 10938 10 620 1770 2655 2965 3540 5372 6173 6297 8173 10173 10 208 624 2656 2968 5041 5375 6174 6298 8439 10939 6 210 630 5042 5378 8174 10174 8 632 1772 2658 2974 3544 5379 8440 10940 12 640 2660 2980 5384 5781 6175 6303 6487 8175 8441 10175 10941 8 216 648 2662 2986 5043 5389 8442 10942 6 650 1775 3550 5390 8176 10176 10 656 1776 2664 2992 3552 5393 6176 6308 8443 10943 10 220 660 2665 2995 5044 5396 6177 6309 8177 10177 8 664 2666 2998 5399 5784 6488 8444 10944 6 670 5402 5785 6489 8178 10178 10 224 672 2668 3004 5045 5403 6178 6312 8445 10945 12 680 1780 2670 3010 3560 5408 6179 6315 8179 8446 10179 10946 10 688 2672 3016 5413 5789 6180 6318 6490 8447 10947 6 230 690 5046 5414 8180 10180 8 232 696 2674 3022 5047 5417 8448 10948 10 700 2675 3025 5420 5791 6181 6321 6491 8181 10181 10 704 1784 2676 3028 3568 5423 6182 6322 8449 10949 6 710 1785 3570 5426 8182 10182 8 712 2678 3034 5427 5793 6492 8450 10950 12 240 720 2680 3040 5048 5432 6183 6327 8183 8451 10183 10951 8 728 1788 2682 3046 3576 5437 8452 10952 6 730 5438 5797 6493 8184 10184 10 736 2684 3052 5441 5798 6184 6332 6494 8453 10953 10 740 1790 2685 3055 3580 5444 6185 6333 8185 10185 8 248 744 2686 3058 5049 5447 8454 10954 6 250 750 5050 5450 8186 10186 10 752 1792 2688 3064 3584 5451 6186 6336 8455 10955 12 760 2690 3070 5456 5801 6187 6339 6495 8187 8456 10187 10956 10 256 768 2692 3076 5051 5461 6188 6342 8457 10957 6 770 1795 3590 5462 8188 10188 8 776 1796 2694 3082 3592 5465 8458 10958 10 260 780 2695 3085 5052 5468 6189 6345 8189 10189 10 784 2696 3088 5471 5806 6190 6346 6496 8459 10959 6 790 5474 5807 6497 8190 10190 8 264 792 2698 3094 5053 5475 8460 10960 12 800 1800 2700 3100 3600 5480 6191 6351 8191 8461 10191 10961 8 808 2702 3106 5485 5811 6498 8462 10962 6 270 810 5054 5486 8192 10192 10 272 816 2704 3112 5055 5489 6192 6356 8463 10963 10 820 2705 3115 5492 5813 6193 6357 6499 8193 10193 8 824 1804 2706 3118 3608 5495 8464 10964 6 830 1805 3610 5498 8194 10194 10 832 2708 3124 5499 5814 6194 6360 6500 8465 10965 12 280 840 2710 3130 5056 5504 6195 6363 8195 8466 10195 10966 10 848 1808 2712 3136 3616 5509 6196 6366 8467 10967 6 850 5510 5817 6501 8196 10196 8 856 2714 3142 5513 5819 6502 8468 10968 10 860 1810 2715 3145 3620 5516 6197 6369 8197 10197 10 288 864 2716 3148 5057 5519 6198 6370 8469 10969 6 290 870 5058 5522 8198 10198 8 872 1812 2718 3154 3624 5523 8470 10970 12 880 2720 3160 5528 5823 6199 6375 6503 8199 8471 10199 10971 8 296 888 2722 3166 5059 5533 8472 10972 6 890 1815 3630 5534 8200 10200 10 896 1816 2724 3172 3632 5537 6200 6380 8473 10973 10 300 900 2725 3175 5060 5540 6201 6381 8201 10201 8 904 2726 3178 5543 5827 6504 8474 10974 6 910 5546 5829 6505 8202 10202 10 304 912 2728 3184 5061 5547 6202 6384 8475 10975 12 920 1820 2730 3190 3640 5552 6203 6387 8203 8476 10203 10976 10 928 2732 3196 5557 5832 6204 6390 6506 8477 10977 6 310 930 5062 5558 8204 10204 8 312 936 2734 3202 5063 5561 8478 10978 10 940 2735 3205 5564 5833 6205 6393 6507 8205 10205 10 944 1824 2736 3208 3648 5567 6206 6394 8479 10979 6 950 1825 3650 5570 8206 10206 8 952 2738 3214 5571 5835 6508 8480 10980 12 320 960 2740 3220 5064 5576 6207 6399 8207 8481 10207 10981 8 968 1828 2742 3226 3656 5581 8482 10982 6 970 5582 5839 6509 8208 10208 10 976 2744 3232 5585 5840 6208 6404 6510 8483 10983 10 980 1830 2745 3235 3660 5588 6209 6405 8209 10209 8 328 984 2746 3238 5065 5591 8484 10984 6 330 990 5066 5594 8210 10210 10 992 1832 2748 3244 3664 5595 6210 6408 8485 10985 12 1000 2750 3250 5600 5845 6211 6411 6511 8211 8486 10211 10986 10 336 1008 2752 3256 5067 5605 6212 6414 8487 10987 6 1010 1835 3670 5606 8212 10212 8 1016 1836 2754 3262 3672 5609 8488 10988 10 340 1020 2755 3265 5068 5612 6213 6417 8213 10213 10 1024 2756 3268 5615 5848 6214 6418 6512 8489 10989 6 1030 5618 5849 6513 8214 10214 8 344 1032 2758 3274 5069 5619 8490 10990 12 1040 1840 2760 3280 3680 5624 6215 6423 8215 8491 10215 10991 8 1048 2762 3286 5629 5853 6514 8492 10992 6 350 1050 5070 5630 8216 10216 10 352 1056 2764 3292 5071 5633 6216 6428 8493 10993 10 1060 2765 3295 5636 5855 6217 6429 6515 8217 10217 8 1064 1844 2766 3298 3688 5639 8494 10994 6 1070 1845 3690 5642 8218 10218 10 1072 2768 3304 5643 5857 6218 6432 6516 8495 10995 12 360 1080 2770 3310 5072 5648 6219 6435 8219 8496 10219 10996 10 1088 1848 2772 3316 3696 5653 6220 6438 8497 10997 6 1090 5654 5861 6517 8220 10220 8 1096 2774 3322 5657 5862 6518 8498 10998 10 1100 1850 2775 3325 3700 5660 6221 6441 8221 10221 10 368 1104 2776 3328 5073 5663 6222 6442 8499 10999 6 370 1110 5074 5666 8222 10222 8 1112 1852 2778 3334 3704 5667 8500 11000 12 1120 2780 3340 5673 5865 6223 6447 6519 8223 8501 10223 11001 8 376 1128 2782 3346 5075 5680 8502 11002 6 1130 1855 3710 5682 8224 10224 10 1136 1856 2784 3352 3712 5686 6224 6452 8503 11003 10 380 1140 2785 3355 5076 5689 6225 6453 8225 10225 8 1144 2786 3358 5693 5870 6520 8504 11004 6 1150 5698 5871 6521 8226 10226 10 384 1152 2788 3364 5077 5699 6226 6456 8505 11005 12 1160 1860 2790 3370 3720 5705 6227 6459 8227 8506 10227 11006 10 1168 2792 3376 5712 5875 6228 6462 6522 8507 11007 6 390 1170 5078 5714 8228 10228 8 392 1176 2794 3382 5079 5718 8508 11008 10 1180 2795 3385 5721 5877 6229 6465 6523 8229 10229 10 1184 1864 2796 3388 3728 5725 6230 6466 8509 11009 6 1190 1865 3730 5730 8230 10230 8 1192 2798 3394 5731 5878 6524 8510 11010 12 400 1200 2800 3400 5080 5737 6231 6471 8231 8511 10231 11011 8 1208 1868 2802 3406 3736 5744 8512 11012 6 1210 5746 5881 6525 8232 10232 10 1216 2804 3412 5750 5883 6232 6476 6526 8513 11013 10 1220 1870 2805 3415 3740 5753 6233 6477 8233 10233 8 408 1224 2806 3418 5081 5757 8514 11014 6 410 1230 5082 5762 8234 10234 10 1232 1872 2808 3424 3744 5763 6234 6480 8515 11015 12 1240 2810 3430 5769 5887 6235 6483 6527 8235 8516 10235 11016 10 416 1248 2812 3436 5083 5776 6236 6486 8517 11017 6 1250 1875 3750 5778 8236 10236 8 1256 1876 2814 3442 3752 5782 8518 11018 10 420 1260 2815 3445 5084 5785 6237 6489 8237 10237 10 1264 2816 3448 5789 5891 6238 6490 6528 8519 11019 6 1270 5794 5893 6529 8238 10238 8 424 1272 2818 3454 5085 5795 8520 11020 12 1280 1880 2820 3460 3760 5801 6239 6495 8239 8521 10239 11021 8 1288 2822 3466 5808 5896 6530 8522 11022 6 430 1290 5086 5810 8240 10240 10 432 1296 2824 3472 5087 5814 6240 6500 8523 11023 10 1300 2825 3475 5817 5897 6241 6501 6531 8241 10241 8 1304 1884 2826 3478 3768 5821 8524 11024 6 1310 1885 3770 5826 8242 10242 10 1312 2828 3484 5827 5899 6242 6504 6532 8525 11025 12 440 1320 2830 3490 5088 5833 6243 6507 8243 8526 10243 11026 10 1328 1888 2832 3496 3776 5840 6244 6510 8527 11027 6 1330 5842 5903 6533 8244 10244 8 1336 2834 3502 5846 5904 6534 8528 11028 10 1340 1890 2835 3505 3780 5849 6245 6513 8245 10245 10 448 1344 2836 3508 5089 5853 6246 6514 8529 11029 6 450 1350 5090 5858 8246 10246 8 1352 1892 2838 3514 3784 5859 8530 11030 12 1360 2840 3520 5865 5909 6247 6519 6535 8247 8531 10247 11031 8 456 1368 2842 3526 5091 5872 8532 11032 6 1370 1895 3790 5874 8248 10248 10 1376 1896 2844 3532 3792 5878 6248 6524 8533 11033 10 460 1380 2845 3535 5092 5881 6249 6525 8249 10249 8 1384 2846 3538 5885 5912 6536 8534 11034 6 1390 5890 5913 6537 8250 10250 10 464 1392 2848 3544 5093 5891 6250 6528 8535 11035 12 1400 1900 2850 3550 3800 5897 6251 6531 8251 8536 10251 11036 10 1408 2852 3556 5904 5917 6252 6534 6538 8537 11037 6 470 1410 5094 5906 8252 10252 8 472 1416 2854 3562 5095 5910 8538 11038 10 1420 2855 3565 5913 5919 6253 6537 6539 8253 10253 10 1424 1904 2856 3568 3808 5917 6254 6538 8539 11039 6 1430 1905 3810 5922 8254 10254 8 1432 2858 3574 5921 5923 6540 8540 11040 12 480 1440 2860 3580 5096 5929 6255 6543 8255 8541 10255 11041 8 1448 1908 2862 3586 3816 5936 8542 11042 6 1450 5925 5938 6541 8256 10256 10 1456 2864 3592 5926 5942 6256 6542 6548 8543 11043 10 1460 1910 2865 3595 3820 5945 6257 6549 8257 10257 8 488 1464 2866 3598 5097 5949 8544 11044 6 490 1470 5098 5954 8258 10258 10 1472 1912 2868 3604 3824 5955 6258 6552 8545 11045 12 1480 2870 3610 5929 5961 6259 6543 6555 8259 8546 10259 11046 10 496 1488 2872 3616 5099 5968 6260 6558 8547 11047 6 1490 1915 3830 5970 8260 10260 8 1496 1916 2874 3622 3832 5974 8548 11048 10 500 1500 2875 3625 5100 5977 6261 6561 8261 10261 10 1504 2876 3628 5934 5981 6262 6544 6562 8549 11049 6 1510 5935 5986 6545 8262 10262 8 504 1512 2878 3634 5101 5987 8550 11050 12 1520 1920 2880 3640 3840 5993 6263 6567 8263 8551 10263 11051 8 1528 2882 3646 5939 6000 6546 8552 11052 6 510 1530 5102 6002 8264 10264 10 512 1536 2884 3652 5103 6006 6264 6572 8553 11053 10 1540 2885 3655 5941 6009 6265 6547 6573 8265 10265 8 1544 1924 2886 3658 3848 6013 8554 11054 6 1550 1925 3850 6018 8266 10266 10 1552 2888 3664 5942 6019 6266 6548 6576 8555 11055 12 520 1560 2890 3670 5104 6025 6267 6579 8267 8556 10267 11056 10 1568 1928 2892 3676 3856 6032 6268 6582 8557 11057 6 1570 5945 6034 6549 8268 10268 8 1576 2894 3682 5947 6038 6550 8558 11058 10 1580 1930 2895 3685 3860 6041 6269 6585 8269 10269 10 528 1584 2896 3688 5105 6045 6270 6586 8559 11059 6 530 1590 5106 6050 8270 10270 8 1592 1932 2898 3694 3864 6051 8560 11060 12 1600 2900 3700 5951 6057 6271 6551 6591 8271 8561 10271 11061 8 536 1608 2902 3706 5107 6064 8562 11062 6 1610 1935 3870 6066 8272 10272 10 1616 1936 2904 3712 3872 6070 6272 6596 8563 11063 10 540 1620 2905 3715 5108 6073 6273 6597 8273 10273 8 1624 2906 3718 5955 6077 6552 8564 11064 6 1630 5957 6082 6553 8274 10274 10 544 1632 2908 3724 5109 6083 6274 6600 8565 11065 12 1640 1940 2910 3730 3880 6089 6275 6603 8275 8566 10275 11066 10 1648 2912 3736 5960 6096 6276 6554 6606 8567 11067 6 550 1650 5110 6098 8276 10276 8 552 1656 2914 3742 5111 6102 8568 11068 10 1660 2915 3745 5961 6105 6277 6555 6609 8277 10277 10 1664 1944 2916 3748 3888 6109 6278 6610 8569 11069 6 1670 1945 3890 6113 8278 10278 8 1672 2918 3754 5963 6114 6556 8570 11070 12 560 1680 2920 3760 5112 6119 6279 6615 8279 8571 10279 11071 8 1688 1948 2922 3766 3896 6124 8572 11072 6 1690 5967 6125 6557 8280 10280 10 1696 2924 3772 5968 6128 6280 6558 6620 8573 11073 10 1700 1950 2925 3775 3900 6131 6281 6621 8281 10281 8 568 1704 2926 3778 5113 6134 8574 11074 6 570 1710 5114 6137 8282 10282 10 1712 1952 2928 3784 3904 6138 6282 6624 8575 11075 12 1720 2930 3790 5973 6143 6283 6559 6627 8283 8576 10283 11076 10 576 1728 2932 3796 5115 6148 6284 6630 8577 11077 6 1730 1955 3910 6149 8284 10284 8 1736 1956 2934 3802 3912 6152 8578 11078 10 580 1740 2935 3805 5116 6155 6285 6633 8285 10285 10 1744 2936 3808 5976 6158 6286 6560 6634 8579 11079 6 1750 5977 6161 6561 8286 10286 8 584 1752 2938 3814 5117 6162 8580 11080 12 1760 1960 2940 3820 3920 6167 6287 6639 8287 8581 10287 11081 8 1768 2942 3826 5981 6172 6562 8582 11082 6 590 1770 5118 6173 8288 10288 10 592 1776 2944 3832 5119 6176 6288 6644 8583 11083 10 1780 2945 3835 5983 6179 6289 6563 6645 8289 10289 8 1784 1964 2946 3838 3928 6182 8584 11084 6 1790 1965 3930 6185 8290 10290 10 1792 2948 3844 5985 6186 6290 6564 6648 8585 11085 12 600 1800 2950 3850 5120 6191 6291 6651 8291 8586 10291 11086 10 1808 1968 2952 3856 3936 6196 6292 6654 8587 11087 6 1810 5989 6197 6565 8292 10292 8 1816 2954 3862 5990 6200 6566 8588 11088 10 1820 1970 2955 3865 3940 6203 6293 6657 8293 10293 10 608 1824 2956 3868 5121 6206 6294 6658 8589 11089 6 610 1830 5122 6209 8294 10294 8 1832 1972 2958 3874 3944 6210 8590 11090 12 1840 2960 3880 5993 6215 6295 6567 6663 8295 8591 10295 11091 8 616 1848 2962 3886 5123 6220 8592 11092 6 1850 1975 3950 6221 8296 10296 10 1856 1976 2964 3892 3952 6224 6296 6668 8593 11093 10 620 1860 2965 3895 5124 6227 6297 6669 8297 10297 8 1864 2966 3898 5998 6230 6568 8594 11094 6 1870 5999 6233 6569 8298 10298 10 624 1872 2968 3904 5125 6234 6298 6672 8595 11095 12 1880 1980 2970 3910 3960 6239 6299 6675 8299 8596 10299 11096 10 1888 2972 3916 6003 6244 6300 6570 6678 8597 11097 6 630 1890 5126 6245 8300 10300 8 632 1896 2974 3922 5127 6248 8598 11098 10 1900 2975 3925 6005 6251 6301 6571 6681 8301 10301 10 1904 1984 2976 3928 3968 6254 6302 6682 8599 11099 6 1910 1985 3970 6257 8302 10302 8 1912 2978 3934 6006 6258 6572 8600 11100 12 640 1920 2980 3940 5128 6263 6303 6687 8303 8601 10303 11101 8 1928 1988 2982 3946 3976 6268 8602 11102 6 1930 6009 6269 6573 8304 10304 10 1936 2984 3952 6011 6272 6304 6574 6692 8603 11103 10 1940 1990 2985 3955 3980 6275 6305 6693 8305 10305 8 648 1944 2986 3958 5129 6278 8604 11104 6 650 1950 5130 6281 8306 10306 10 1952 1992 2988 3964 3984 6282 6306 6696 8605 11105 12 1960 2990 3970 6015 6287 6307 6575 6699 8307 8606 10307 11106 10 656 1968 2992 3976 5131 6292 6308 6702 8607 11107 6 1970 1995 3990 6293 8308 10308 8 1976 1996 2994 3982 3992 6296 8608 11108 10 660 1980 2995 3985 5132 6299 6309 6705 8309 10309 10 1984 2996 3988 6019 6302 6310 6576 6706 8609 11109 6 1990 6021 6305 6577 8310 10310 8 664 1992 2998 3994 5133 6306 8610 11110 9 2000 3000 4000 6311 6711 8311 8611 10311 11111 8 2008 3002 4006 6024 6316 6578 8612 11112 6 670 2010 5134 6317 8312 10312 10 672 2016 3004 4012 5135 6312 6320 6716 8613 11113 10 2020 3005 4015 6025 6313 6323 6579 6717 8313 10313 8 2004 2024 3006 4008 4018 6326 8614 11114 6 2005 2030 4010 6329 8314 10314 10 2032 3008 4024 6027 6314 6330 6580 6720 8615 11115 12 680 2040 3010 4030 5136 6315 6335 6723 8315 8616 10315 11116 10 2008 2048 3012 4016 4036 6316 6340 6726 8617 11117 6 2050 6031 6341 6581 8316 10316 8 2056 3014 4042 6032 6344 6582 8618 11118 10 2010 2060 3015 4020 4045 6317 6347 6729 8317 10317 10 688 2064 3016 4048 5137 6318 6350 6730 8619 11119 6 690 2070 5138 6353 8318 10318 8 2012 2072 3018 4024 4054 6354 8620 11120 12 2080 3020 4060 6037 6319 6359 6583 6735 8319 8621 10319 11121 8 696 2088 3022 4066 5139 6364 8622 11122 6 2015 2090 4030 6365 8320 10320 10 2016 2096 3024 4032 4072 6320 6368 6740 8623 11123 10 700 2100 3025 4075 5140 6321 6371 6741 8321 10321 8 2104 3026 4078 6040 6374 6584 8624 11124 6 2110 6041 6377 6585 8322 10322 10 704 2112 3028 4084 5141 6322 6378 6744 8625 11125 12 2020 2120 3030 4040 4090 6323 6383 6747 8323 8626 10323 11126 10 2128 3032 4096 6045 6324 6388 6586 6750 8627 11127 6 710 2130 5142 6389 8324 10324 8 712 2136 3034 4102 5143 6392 8628 11128 10 2140 3035 4105 6047 6325 6395 6587 6753 8325 10325 10 2024 2144 3036 4048 4108 6326 6398 6754 8629 11129 6 2025 2150 4050 6401 8326 10326 8 2152 3038 4114 6049 6402 6588 8630 11130 12 720 2160 3040 4120 5144 6327 6407 6759 8327 8631 10327 11131 8 2028 2168 3042 4056 4126 6412 8632 11132 6 2170 6053 6413 6589 8328 10328 10 2176 3044 4132 6054 6328 6416 6590 6764 8633 11133 10 2030 2180 3045 4060 4135 6329 6419 6765 8329 10329 8 728 2184 3046 4138 5145 6422 8634 11134 6 730 2190 5146 6425 8330 10330 10 2032 2192 3048 4064 4144 6330 6426 6768 8635 11135 12 2200 3050 4150 6057 6331 6431 6591 6771 8331 8636 10331 11136 10 736 2208 3052 4156 5147 6332 6436 6774 8637 11137 6 2035 2210 4070 6437 8332 10332 8 2036 2216 3054 4072 4162 6440 8638 11138 10 740 2220 3055 4165 5148 6333 6443 6777 8333 10333 10 2224 3056 4168 6062 6334 6446 6592 6778 8639 11139 6 2230 6063 6449 6593 8334 10334 8 744 2232 3058 4174 5149 6450 8640 11140 12 2040 2240 3060 4080 4180 6335 6455 6783 8335 8641 10335 11141 8 2248 3062 4186 6067 6460 6594 8642 11142 6 750 2250 5150 6461 8336 10336 10 752 2256 3064 4192 5151 6336 6464 6788 8643 11143 10 2260 3065 4195 6069 6337 6467 6595 6789 8337 10337 8 2044 2264 3066 4088 4198 6470 8644 11144 6 2045 2270 4090 6473 8338 10338 10 2272 3068 4204 6070 6338 6474 6596 6792 8645 11145 12 760 2280 3070 4210 5152 6339 6479 6795 8339 8646 10339 11146 10 2048 2288 3072 4096 4216 6340 6484 6798 8647 11147 6 2290 6073 6485 6597 8340 10340 8 2296 3074 4222 6075 6488 6598 8648 11148 10 2050 2300 3075 4100 4225 6341 6491 6801 8341 10341 10 768 2304 3076 4228 5153 6342 6494 6802 8649 11149 6 770 2310 5154 6497 8342 10342 8 2052 2312 3078 4104 4234 6498 8650 11150 12 2320 3080 4240 6079 6343 6503 6599 6807 8343 8651 10343 11151 8 776 2328 3082 4246 5155 6508 8652 11152 6 2055 2330 4110 6509 8344 10344 10 2056 2336 3084 4112 4252 6344 6512 6812 8653 11153 10 780 2340 3085 4255 5156 6345 6515 6813 8345 10345 8 2344 3086 4258 6083 6518 6600 8654 11154 6 2350 6085 6521 6601 8346 10346 10 784 2352 3088 4264 5157 6346 6522 6816 8655 11155 12 2060 2360 3090 4120 4270 6347 6527 6819 8347 8656 10347 11156 10 2368 3092 4276 6088 6348 6532 6602 6822 8657 11157 6 790 2370 5158 6533 8348 10348 8 792 2376 3094 4282 5159 6536 8658 11158 10 2380 3095 4285 6089 6349 6539 6603 6825 8349 10349 10 2064 2384 3096 4128 4288 6350 6542 6826 8659 11159 6 2065 2390 4130 6545 8350 10350 8 2392 3098 4294 6091 6546 6604 8660 11160 12 800 2400 3100 4300 5160 6351 6551 6831 8351 8661 10351 11161 8 2068 2408 3102 4136 4306 6556 8662 11162 6 2410 6095 6557 6605 8352 10352 10 2416 3104 4312 6096 6352 6560 6606 6836 8663 11163 10 2070 2420 3105 4140 4315 6353 6563 6837 8353 10353 8 808 2424 3106 4318 5161 6566 8664 11164 6 810 2430 5162 6569 8354 10354 10 2072 2432 3108 4144 4324 6354 6570 6840 8665 11165 12 2440 3110 4330 6101 6355 6575 6607 6843 8355 8666 10355 11166 10 816 2448 3112 4336 5163 6356 6580 6846 8667 11167 6 2075 2450 4150 6581 8356 10356 8 2076 2456 3114 4152 4342 6584 8668 11168 10 820 2460 3115 4345 5164 6357 6587 6849 8357 10357 10 2464 3116 4348 6104 6358 6590 6608 6850 8669 11169 6 2470 6105 6593 6609 8358 10358 8 824 2472 3118 4354 5165 6594 8670 11170 12 2080 2480 3120 4160 4360 6359 6599 6855 8359 8671 10359 11171 8 2488 3122 4366 6109 6604 6610 8672 11172 6 830 2490 5166 6605 8360 10360 10 832 2496 3124 4372 5167 6360 6608 6860 8673 11173 9 2500 3125 4375 6111 6361 6611 6861 8361 10361 8 2084 2504 3126 4168 4378 6614 8674 11174 6 2085 2510 4170 6617 8362 10362 10 2512 3128 4384 6112 6362 6612 6618 6864 8675 11175 12 840 2520 3130 4390 5168 6363 6623 6867 8363 8676 10363 11176 10 2088 2528 3132 4176 4396 6364 6628 6870 8677 11177 6 2530 6115 6613 6629 8364 10364 8 2536 3134 4402 6116 6614 6632 8678 11178 10 2090 2540 3135 4180 4405 6365 6635 6873 8365 10365 10 848 2544 3136 4408 5169 6366 6638 6874 8679 11179 6 850 2550 5170 6641 8366 10366 8 2092 2552 3138 4184 4414 6642 8680 11180 12 2560 3140 4420 6119 6367 6615 6647 6879 8367 8681 10367 11181 8 856 2568 3142 4426 5171 6652 8682 11182 6 2095 2570 4190 6653 8368 10368 10 2096 2576 3144 4192 4432 6368 6656 6884 8683 11183 10 860 2580 3145 4435 5172 6369 6659 6885 8369 10369 8 2584 3146 4438 6122 6616 6662 8684 11184 6 2590 6123 6617 6665 8370 10370 10 864 2592 3148 4444 5173 6370 6666 6888 8685 11185 12 2100 2600 3150 4200 4450 6371 6671 6891 8371 8686 10371 11186 10 2608 3152 4456 6126 6372 6618 6676 6894 8687 11187 6 870 2610 5174 6677 8372 10372 8 872 2616 3154 4462 5175 6680 8688 11188 10 2620 3155 4465 6127 6373 6619 6683 6897 8373 10373 10 2104 2624 3156 4208 4468 6374 6686 6898 8689 11189 6 2105 2630 4210 6689 8374 10374 8 2632 3158 4474 6128 6620 6690 8690 11190 12 880 2640 3160 4480 5176 6375 6695 6903 8375 8691 10375 11191 8 2108 2648 3162 4216 4486 6700 8692 11192 6 2650 6131 6621 6701 8376 10376 10 2656 3164 4492 6132 6376 6622 6704 6908 8693 11193 10 2110 2660 3165 4220 4495 6377 6707 6909 8377 10377 8 888 2664 3166 4498 5177 6710 8694 11194 6 890 2670 5178 6713 8378 10378 10 2112 2672 3168 4224 4504 6378 6714 6912 8695 11195 12 2680 3170 4510 6135 6379 6623 6719 6915 8379 8696 10379 11196 10 896 2688 3172 4516 5179 6380 6724 6918 8697 11197 6 2115 2690 4230 6725 8380 10380 8 2116 2696 3174 4232 4522 6728 8698 11198 10 900 2700 3175 4525 5180 6381 6731 6921 8381 10381 10 2704 3176 4528 6138 6382 6624 6734 6922 8699 11199 6 2710 6139 6625 6737 8382 10382 8 904 2712 3178 4534 5181 6738 8700 11200 12 2120 2720 3180 4240 4540 6383 6743 6927 8383 8701 10383 11201 8 2728 3182 4546 6142 6626 6748 8702 11202 6 910 2730 5182 6749 8384 10384 10 912 2736 3184 4552 5183 6384 6752 6932 8703 11203 10 2740 3185 4555 6143 6385 6627 6755 6933 8385 10385 8 2124 2744 3186 4248 4558 6758 8704 11204 6 2125 2750 4250 6761 8386 10386 10 2752 3188 4564 6144 6386 6628 6762 6936 8705 11205 12 920 2760 3190 4570 5184 6387 6767 6939 8387 8706 10387 11206 10 2128 2768 3192 4256 4576 6388 6772 6942 8707 11207 6 2770 6147 6629 6773 8388 10388 8 2776 3194 4582 6148 6630 6776 8708 11208 10 2130 2780 3195 4260 4585 6389 6779 6945 8389 10389 10 928 2784 3196 4588 5185 6390 6782 6946 8709 11209 6 930 2790 5186 6785 8390 10390 8 2132 2792 3198 4264 4594 6786 8710 11210 12 2800 3200 4600 6151 6391 6631 6791 6951 8391 8711 10391 11211 8 936 2808 3202 4606 5187 6796 8712 11212 6 2135 2810 4270 6797 8392 10392 10 2136 2816 3204 4272 4612 6392 6800 6956 8713 11213 10 940 2820 3205 4615 5188 6393 6803 6957 8393 10393 8 2824 3206 4618 6154 6632 6806 8714 11214 6 2830 6155 6633 6809 8394 10394 10 944 2832 3208 4624 5189 6394 6810 6960 8715 11215 12 2140 2840 3210 4280 4630 6395 6815 6963 8395 8716 10395 11216 10 2848 3212 4636 6158 6396 6634 6820 6966 8717 11217 6 950 2850 5190 6821 8396 10396 8 952 2856 3214 4642 5191 6824 8718 11218 10 2860 3215 4645 6159 6397 6635 6827 6969 8397 10397 10 2144 2864 3216 4288 4648 6398 6830 6970 8719 11219 6 2145 2870 4290 6833 8398 10398 8 2872 3218 4654 6160 6636 6834 8720 11220 12 960 2880 3220 4660 5192 6399 6839 6975 8399 8721 10399 11221 8 2148 2888 3222 4296 4666 6844 8722 11222 6 2890 6163 6637 6845 8400 10400 10 2896 3224 4672 6164 6400 6638 6848 6980 8723 11223 10 2150 2900 3225 4300 4675 6401 6851 6981 8401 10401 8 968 2904 3226 4678 5193 6854 8724 11224 6 970 2910 5194 6857 8402 10402 10 2152 2912 3228 4304 4684 6402 6858 6984 8725 11225 12 2920 3230 4690 6167 6403 6639 6863 6987 8403 8726 10403 11226 10 976 2928 3232 4696 5195 6404 6868 6990 8727 11227 6 2155 2930 4310 6869 8404 10404 8 2156 2936 3234 4312 4702 6872 8728 11228 10 980 2940 3235 4705 5196 6405 6875 6993 8405 10405 10 2944 3236 4708 6170 6406 6640 6878 6994 8729 11229 6 2950 6171 6641 6881 8406 10406 8 984 2952 3238 4714 5197 6882 8730 11230 12 2160 2960 3240 4320 4720 6407 6887 6999 8407 8731 10407 11231 8 2968 3242 4726 6174 6642 6892 8732 11232 6 990 2970 5198 6893 8408 10408 10 992 2976 3244 4732 5199 6408 6896 7004 8733 11233 10 2980 3245 4735 6175 6409 6643 6899 7005 8409 10409 8 2164 2984 3246 4328 4738 6902 8734 11234 6 2165 2990 4330 6905 8410 10410 10 2992 3248 4744 6176 6410 6644 6906 7008 8735 11235 12 1000 3000 3250 4750 5200 6411 6911 7011 8411 8736 10411 11236 10 2168 3008 3252 4336 4756 6412 6916 7014 8737 11237 6 3010 6179 6645 6917 8412 10412 8 3016 3254 4762 6180 6646 6920 8738 11238 10 2170 3020 3255 4340 4765 6413 6923 7017 8413 10413 10 1008 3024 3256 4768 5201 6414 6926 7018 8739 11239 6 1010 3030 5202 6929 8414 10414 8 2172 3032 3258 4344 4774 6930 8740 11240 12 3040 3260 4780 6183 6415 6647 6935 7023 8415 8741 10415 11241 8 1016 3048 3262 4786 5203 6940 8742 11242 6 2175 3050 4350 6941 8416 10416 10 2176 3056 3264 4352 4792 6416 6944 7028 8743 11243 10 1020 3060 3265 4795 5204 6417 6947 7029 8417 10417 8 3064 3266 4798 6186 6648 6950 8744 11244 6 3070 6187 6649 6953 8418 10418 10 1024 3072 3268 4804 5205 6418 6954 7032 8745 11245 12 2180 3080 3270 4360 4810 6419 6959 7035 8419 8746 10419 11246 10 3088 3272 4816 6190 6420 6650 6964 7038 8747 11247 6 1030 3090 5206 6965 8420 10420 8 1032 3096 3274 4822 5207 6968 8748 11248 10 3100 3275 4825 6191 6421 6651 6971 7041 8421 10421 10 2184 3104 3276 4368 4828 6422 6974 7042 8749 11249 6 2185 3110 4370 6977 8422 10422 8 3112 3278 4834 6192 6652 6978 8750 11250 12 1040 3120 3280 4840 5208 6423 6983 7047 8423 8751 10423 11251 8 2188 3128 3282 4376 4846 6988 8752 11252 6 3130 6195 6653 6989 8424 10424 10 3136 3284 4852 6196 6424 6654 6992 7052 8753 11253 10 2190 3140 3285 4380 4855 6425 6995 7053 8425 10425 8 1048 3144 3286 4858 5209 6998 8754 11254 6 1050 3150 5210 7001 8426 10426 10 2192 3152 3288 4384 4864 6426 7002 7056 8755 11255 12 3160 3290 4870 6199 6427 6655 7007 7059 8427 8756 10427 11256 10 1056 3168 3292 4876 5211 6428 7012 7062 8757 11257 6 2195 3170 4390 7013 8428 10428 8 2196 3176 3294 4392 4882 7016 8758 11258 10 1060 3180 3295 4885 5212 6429 7019 7065 8429 10429 10 3184 3296 4888 6202 6430 6656 7022 7066 8759 11259 6 3190 6203 6657 7025 8430 10430 8 1064 3192 3298 4894 5213 7026 8760 11260 12 2200 3200 3300 4400 4900 6431 7031 7071 8431 8761 10431 11261 8 3208 3302 4906 6206 6658 7036 8762 11262 6 1070 3210 5214 7037 8432 10432 10 1072 3216 3304 4912 5215 6432 7040 7076 8763 11263 10 3220 3305 4915 6207 6433 6659 7043 7077 8433 10433 8 2204 3224 3306 4408 4918 7046 8764 11264 6 2205 3230 4410 7049 8434 10434 10 3232 3308 4924 6208 6434 6660 7050 7080 8765 11265 12 1080 3240 3310 4930 5216 6435 7055 7083 8435 8766 10435 11266 10 2208 3248 3312 4416 4936 6436 7060 7086 8767 11267 6 3250 6211 6661 7061 8436 10436 8 3256 3314 4942 6212 6662 7064 8768 11268 10 2210 3260 3315 4420 4945 6437 7067 7089 8437 10437 10 1088 3264 3316 4948 5217 6438 7070 7090 8769 11269 6 1090 3270 5218 7073 8438 10438 8 2212 3272 3318 4424 4954 7074 8770 11270 12 3280 3320 4960 6215 6439 6663 7079 7095 8439 8771 10439 11271 8 1096 3288 3322 4966 5219 7084 8772 11272 6 2215 3290 4430 7085 8440 10440 10 2216 3296 3324 4432 4972 6440 7088 7100 8773 11273 10 1100 3300 3325 4975 5220 6441 7091 7101 8441 10441 8 3304 3326 4978 6218 6664 7094 8774 11274 6 3310 6219 6665 7097 8442 10442 10 1104 3312 3328 4984 5221 6442 7098 7104 8775 11275 12 2220 3320 3330 4440 4990 6443 7103 7107 8443 8776 10443 11276 10 3328 3332 4996 6222 6444 6666 7108 7110 8777 11277 6 1110 3330 5222 7109 8444 10444 8 2 4 1112 3334 3336 5223 8778 11278 4 7 2223 3338 4446 10 5 10 3335 3340 5002 6223 6445 6667 8445 10445 10 8 16 2224 3336 3344 4448 5003 6446 8779 11279 6 25 2225 3350 4450 8446 10446 8 14 28 3338 3352 6224 6668 8780 11280 12 20 40 1120 3340 3360 5008 5224 6447 8447 8781 10447 11281 4 43 2227 3362 4454 8 26 52 2228 3342 3368 4456 8782 11282 6 55 3370 6227 6669 8448 10448 4 61 2229 3374 4458 10 32 64 3344 3376 5013 6228 6448 6670 8783 11283 10 35 70 2230 3345 3380 4460 5014 6449 8449 10449 8 38 76 1128 3346 3384 5225 8784 11284 4 79 2231 3386 4462 6 85 1130 3390 5226 8450 10450 10 44 88 2232 3348 3392 4464 5017 6450 8785 11285 4 97 2233 3398 4466 12 50 100 3350 3400 5020 6231 6451 6671 8451 8786 10451 11286 10 56 112 1136 3352 3408 5023 5227 6452 8787 11287 6 115 2235 3410 4470 8452 10452 8 62 124 2236 3354 3416 4472 8788 11288 10 65 130 1140 3355 3420 5026 5228 6453 8453 10453 4 133 2237 3422 4474 10 68 136 3356 3424 5027 6234 6454 6672 8789 11289 6 145 3430 6235 6673 8454 10454 8 74 148 1144 3358 3432 5229 8790 11290 4 151 2239 3434 4478 12 80 160 2240 3360 3440 4480 5032 6455 8455 8791 10455 11291 4 169 2241 3446 4482 8 86 172 3362 3448 6238 6674 8792 11292 6 175 1150 3450 5230 8456 10456 10 92 184 1152 3364 3456 5037 5231 6456 8793 11293 4 187 2243 3458 4486 10 95 190 3365 3460 5038 6239 6457 6675 8457 10457 8 98 196 2244 3366 3464 4488 8794 11294 6 205 2245 3470 4490 8458 10458 10 104 208 3368 3472 5041 6240 6458 6676 8795 11295 12 110 220 1160 3370 3480 5044 5232 6459 8459 8796 10459 11296 4 223 2247 3482 4494 10 116 232 2248 3372 3488 4496 5047 6460 8797 11297 6 235 3490 6243 6677 8460 10460 4 241 2249 3494 4498 8 122 244 3374 3496 6244 6678 8798 11298 10 125 250 2250 3375 3500 4500 5050 6461 8461 10461 10 128 256 1168 3376 3504 5051 5233 6462 8799 11299 4 259 2251 3506 4502 6 265 1170 3510 5234 8462 10462 8 134 268 2252 3378 3512 4504 8800 11300 4 277 2253 3518 4506 12 140 280 3380 3520 5056 6247 6463 6679 8463 8801 10463 11301 8 146 292 1176 3382 3528 5235 8802 11302 6 295 2255 3530 4510 8464 10464 10 152 304 2256 3384 3536 4512 5061 6464 8803 11303 10 155 310 1180 3385 3540 5062 5236 6465 8465 10465 4 313 2257 3542 4514 8 158 316 3386 3544 6250 6680 8804 11304 6 325 3550 6251 6681 8466 10466 10 164 328 1184 3388 3552 5065 5237 6466 8805 11305 4 331 2259 3554 4518 12 170 340 2260 3390 3560 4520 5068 6467 8467 8806 10467 11306 4 349 2261 3566 4522 10 176 352 3392 3568 5071 6254 6468 6682 8807 11307 6 355 1190 3570 5238 8468 10468 8 182 364 1192 3394 3576 5239 8808 11308 4 367 2263 3578 4526 10 185 370 3395 3580 5074 6255 6469 6683 8469 10469 10 188 376 2264 3396 3584 4528 5075 6470 8809 11309 6 385 2265 3590 4530 8470 10470 8 194 388 3398 3592 6256 6684 8810 11310 12 200 400 1200 3400 3600 5080 5240 6471 8471 8811 10471 11311 4 403 2267 3602 4534 8 206 412 2268 3402 3608 4536 8812 11312 6 415 3610 6259 6685 8472 10472 4 421 2269 3614 4538 10 212 424 3404 3616 5085 6260 6472 6686 8813 11313 10 215 430 2270 3405 3620 4540 5086 6473 8473 10473 8 218 436 1208 3406 3624 5241 8814 11314 4 439 2271 3626 4542 6 445 1210 3630 5242 8474 10474 10 224 448 2272 3408 3632 4544 5089 6474 8815 11315 4 457 2273 3638 4546 12 230 460 3410 3640 5092 6263 6475 6687 8475 8816 10475 11316 10 236 472 1216 3412 3648 5095 5243 6476 8817 11317 6 475 2275 3650 4550 8476 10476 8 242 484 2276 3414 3656 4552 8818 11318 10 245 490 1220 3415 3660 5098 5244 6477 8477 10477 4 493 2277 3662 4554 10 248 496 3416 3664 5099 6266 6478 6688 8819 11319 6 505 3670 6267 6689 8478 10478 8 254 508 1224 3418 3672 5245 8820 11320 4 511 2279 3674 4558 12 260 520 2280 3420 3680 4560 5104 6479 8479 8821 10479 11321 4 529 2281 3686 4562 8 266 532 3422 3688 6270 6690 8822 11322 6 535 1230 3690 5246 8480 10480 10 272 544 1232 3424 3696 5109 5247 6480 8823 11323 4 547 2283 3698 4566 10 275 550 3425 3700 5110 6271 6481 6691 8481 10481 8 278 556 2284 3426 3704 4568 8824 11324 6 565 2285 3710 4570 8482 10482 10 284 568 3428 3712 5113 6272 6482 6692 8825 11325 12 290 580 1240 3430 3720 5116 5248 6483 8483 8826 10483 11326 4 583 2287 3722 4574 10 296 592 2288 3432 3728 4576 5119 6484 8827 11327 6 595 3730 6275 6693 8484 10484 4 601 2289 3734 4578 8 302 604 3434 3736 6276 6694 8828 11328 10 305 610 2290 3435 3740 4580 5122 6485 8485 10485 10 308 616 1248 3436 3744 5123 5249 6486 8829 11329 4 619 2291 3746 4582 6 625 1250 3750 5250 8486 10486 8 314 628 2292 3438 3752 4584 8830 11330 4 637 2293 3758 4586 12 320 640 3440 3760 5128 6279 6487 6695 8487 8831 10487 11331 8 326 652 1256 3442 3768 5251 8832 11332 6 655 2295 3770 4590 8488 10488 10 332 664 2296 3444 3776 4592 5133 6488 8833 11333 10 335 670 1260 3445 3780 5134 5252 6489 8489 10489 4 673 2297 3782 4594 8 338 676 3446 3784 6282 6696 8834 11334 6 685 3790 6283 6697 8490 10490 10 344 688 1264 3448 3792 5137 5253 6490 8835 11335 4 691 2299 3794 4598 12 350 700 2300 3450 3800 4600 5140 6491 8491 8836 10491 11336 4 709 2301 3806 4602 10 356 712 3452 3808 5143 6286 6492 6698 8837 11337 6 715 1270 3810 5254 8492 10492 8 362 724 1272 3454 3816 5255 8838 11338 4 727 2303 3818 4606 10 365 730 3455 3820 5146 6287 6493 6699 8493 10493 10 368 736 2304 3456 3824 4608 5147 6494 8839 11339 6 745 2305 3830 4610 8494 10494 8 374 748 3458 3832 6288 6700 8840 11340 12 380 760 1280 3460 3840 5152 5256 6495 8495 8841 10495 11341 4 763 2307 3842 4614 8 386 772 2308 3462 3848 4616 8842 11342 6 775 3850 6291 6701 8496 10496 4 781 2309 3854 4618 10 392 784 3464 3856 5157 6292 6496 6702 8843 11343 10 395 790 2310 3465 3860 4620 5158 6497 8497 10497 8 398 796 1288 3466 3864 5257 8844 11344 4 799 2311 3866 4622 6 805 1290 3870 5258 8498 10498 10 404 808 2312 3468 3872 4624 5161 6498 8845 11345 4 817 2313 3878 4626 12 410 820 3470 3880 5164 6295 6499 6703 8499 8846 10499 11346 10 416 832 1296 3472 3888 5167 5259 6500 8847 11347 6 835 2315 3890 4630 8500 10500 8 422 844 2316 3474 3896 4632 8848 11348 10 425 850 1300 3475 3900 5170 5260 6501 8501 10501 4 853 2317 3902 4634 10 428 856 3476 3904 5171 6298 6502 6704 8849 11349 6 865 3910 6299 6705 8502 10502 8 434 868 1304 3478 3912 5261 8850 11350 4 871 2319 3914 4638 12 440 880 2320 3480 3920 4640 5176 6503 8503 8851 10503 11351 4 889 2321 3926 4642 8 446 892 3482 3928 6302 6706 8852 11352 6 895 1310 3930 5262 8504 10504 10 452 904 1312 3484 3936 5181 5263 6504 8853 11353 4 907 2323 3938 4646 10 455 910 3485 3940 5182 6303 6505 6707 8505 10505 8 458 916 2324 3486 3944 4648 8854 11354 6 925 2325 3950 4650 8506 10506 10 464 928 3488 3952 5185 6304 6506 6708 8855 11355 12 470 940 1320 3490 3960 5188 5264 6507 8507 8856 10507 11356 4 943 2327 3962 4654 10 476 952 2328 3492 3968 4656 5191 6508 8857 11357 6 955 3970 6307 6709 8508 10508 4 961 2329 3974 4658 8 482 964 3494 3976 6308 6710 8858 11358 10 485 970 2330 3495 3980 4660 5194 6509 8509 10509 10 488 976 1328 3496 3984 5195 5265 6510 8859 11359 4 979 2331 3986 4662 6 985 1330 3990 5266 8510 10510 8 494 988 2332 3498 3992 4664 8860 11360 4 997 2333 3998 4666 12 500 1000 3500 4000 5200 6311 6511 6711 8511 8861 10511 11361 8 506 1012 1336 3502 4008 5267 8862 11362 6 1015 2335 4010 4670 8512 10512 10 512 1024 2336 3504 4016 4672 5205 6512 8863 11363 10 515 1030 1340 3505 4020 5206 5268 6513 8513 10513 4 1033 2337 4022 4674 8 518 1036 3506 4024 6314 6712 8864 11364 6 1045 4030 6315 6713 8514 10514 10 524 1048 1344 3508 4032 5209 5269 6514 8865 11365 4 1051 2339 4034 4678 12 530 1060 2340 3510 4040 4680 5212 6515 8515 8866 10515 11366 4 1069 2341 4046 4682 10 536 1072 3512 4048 5215 6318 6516 6714 8867 11367 6 1075 1350 4050 5270 8516 10516 8 542 1084 1352 3514 4056 5271 8868 11368 4 1087 2343 4058 4686 10 545 1090 3515 4060 5218 6319 6517 6715 8517 10517 10 548 1096 2344 3516 4064 4688 5219 6518 8869 11369 6 1105 2345 4070 4690 8518 10518 8 554 1108 3518 4072 6320 6716 8870 11370 12 560 1120 1360 3520 4080 5224 5272 6519 8519 8871 10519 11371 4 1123 2347 4082 4694 8 566 1132 2348 3522 4088 4696 8872 11372 6 1135 4090 6323 6717 8520 10520 4 1141 2349 4094 4698 10 572 1144 3524 4096 5229 6324 6520 6718 8873 11373 10 575 1150 2350 3525 4100 4700 5230 6521 8521 10521 8 578 1156 1368 3526 4104 5273 8874 11374 4 1159 2351 4106 4702 6 1165 1370 4110 5274 8522 10522 10 584 1168 2352 3528 4112 4704 5233 6522 8875 11375 4 1177 2353 4118 4706 12 590 1180 3530 4120 5236 6327 6523 6719 8523 8876 10523 11376 10 596 1192 1376 3532 4128 5239 5275 6524 8877 11377 6 1195 2355 4130 4710 8524 10524 8 602 1204 2356 3534 4136 4712 8878 11378 10 605 1210 1380 3535 4140 5242 5276 6525 8525 10525 4 1213 2357 4142 4714 10 608 1216 3536 4144 5243 6330 6526 6720 8879 11379 6 1225 4150 6331 6721 8526 10526 8 614 1228 1384 3538 4152 5277 8880 11380 4 1231 2359 4154 4718 12 620 1240 2360 3540 4160 4720 5248 6527 8527 8881 10527 11381 4 1249 2361 4166 4722 8 626 1252 3542 4168 6334 6722 8882 11382 6 1255 1390 4170 5278 8528 10528 10 632 1264 1392 3544 4176 5253 5279 6528 8883 11383 4 1267 2363 4178 4726 10 635 1270 3545 4180 5254 6335 6529 6723 8529 10529 8 638 1276 2364 3546 4184 4728 8884 11384 6 1285 2365 4190 4730 8530 10530 10 644 1288 3548 4192 5257 6336 6530 6724 8885 11385 12 650 1300 1400 3550 4200 5260 5280 6531 8531 8886 10531 11386 4 1303 2367 4202 4734 10 656 1312 2368 3552 4208 4736 5263 6532 8887 11387 6 1315 4210 6339 6725 8532 10532 4 1321 2369 4214 4738 8 662 1324 3554 4216 6340 6726 8888 11388 10 665 1330 2370 3555 4220 4740 5266 6533 8533 10533 10 668 1336 1408 3556 4224 5267 5281 6534 8889 11389 4 1339 2371 4226 4742 6 1345 1410 4230 5282 8534 10534 8 674 1348 2372 3558 4232 4744 8890 11390 4 1357 2373 4238 4746 12 680 1360 3560 4240 5272 6343 6535 6727 8535 8891 10535 11391 8 686 1372 1416 3562 4248 5283 8892 11392 6 1375 2375 4250 4750 8536 10536 10 692 1384 2376 3564 4256 4752 5277 6536 8893 11393 10 695 1390 1420 3565 4260 5278 5284 6537 8537 10537 4 1393 2377 4262 4754 8 698 1396 3566 4264 6346 6728 8894 11394 6 1405 4270 6347 6729 8538 10538 10 704 1408 1424 3568 4272 5281 5285 6538 8895 11395 4 1411 2379 4274 4758 12 710 1420 2380 3570 4280 4760 5284 6539 8539 8896 10539 11396 4 1429 2381 4286 4762 10 716 1432 3572 4288 5287 6350 6540 6730 8897 11397 6 1430 1435 4290 5286 8540 10540 8 722 1432 1444 3574 4296 5287 8898 11398 4 1447 2383 4298 4766 10 725 1450 3575 4300 5290 6351 6541 6731 8541 10541 10 728 1456 2384 3576 4304 4768 5291 6542 8899 11399 6 1465 2385 4310 4770 8542 10542 8 734 1468 3578 4312 6352 6732 8900 11400 12 740 1440 1480 3580 4320 5288 5296 6543 8543 8901 10543 11401 4 1483 2387 4322 4774 8 746 1492 2388 3582 4328 4776 8902 11402 6 1495 4330 6355 6733 8544 10544 4 1501 2389 4334 4778 10 752 1504 3584 4336 5301 6356 6544 6734 8903 11403 10 755 1510 2390 3585 4340 4780 5302 6545 8545 10545 8 758 1448 1516 3586 4344 5289 8904 11404 4 1519 2391 4346 4782 6 1450 1525 4350 5290 8546 10546 10 764 1528 2392 3588 4352 4784 5305 6546 8905 11405 4 1537 2393 4358 4786 12 770 1540 3590 4360 5308 6359 6547 6735 8547 8906 10547 11406 10 776 1456 1552 3592 4368 5291 5311 6548 8907 11407 6 1555 2395 4370 4790 8548 10548 8 782 1564 2396 3594 4376 4792 8908 11408 10 785 1460 1570 3595 4380 5292 5314 6549 8549 10549 4 1573 2397 4382 4794 10 788 1576 3596 4384 5315 6362 6550 6736 8909 11409 6 1585 4390 6363 6737 8550 10550 8 794 1464 1588 3598 4392 5293 8910 11410 4 1591 2399 4394 4798 12 800 1600 2400 3600 4400 4800 5320 6551 8551 8911 10551 11411 4 1609 2401 4406 4802 8 806 1612 3602 4408 6366 6738 8912 11412 6 1470 1615 4410 5294 8552 10552 10 812 1472 1624 3604 4416 5295 5325 6552 8913 11413 4 1627 2403 4418 4806 10 815 1630 3605 4420 5326 6367 6553 6739 8553 10553 8 818 1636 2404 3606 4424 4808 8914 11414 6 1645 2405 4430 4810 8554 10554 10 824 1648 3608 4432 5329 6368 6554 6740 8915 11415 12 830 1480 1660 3610 4440 5296 5332 6555 8555 8916 10555 11416 4 1663 2407 4442 4814 10 836 1672 2408 3612 4448 4816 5335 6556 8917 11417 6 1675 4450 6371 6741 8556 10556 4 1681 2409 4454 4818 8 842 1684 3614 4456 6372 6742 8918 11418 10 845 1690 2410 3615 4460 4820 5338 6557 8557 10557 10 848 1488 1696 3616 4464 5297 5339 6558 8919 11419 4 1699 2411 4466 4822 6 1490 1705 4470 5298 8558 10558 8 854 1708 2412 3618 4472 4824 8920 11420 4 1717 2413 4478 4826 12 860 1720 3620 4480 5344 6375 6559 6743 8559 8921 10559 11421 8 866 1496 1732 3622 4488 5299 8922 11422 6 1735 2415 4490 4830 8560 10560 10 872 1744 2416 3624 4496 4832 5349 6560 8923 11423 10 875 1500 1750 3625 4500 5300 5350 6561 8561 10561 4 1753 2417 4502 4834 8 878 1756 3626 4504 6378 6744 8924 11424 6 1765 4510 6379 6745 8562 10562 10 884 1504 1768 3628 4512 5301 5353 6562 8925 11425 4 1771 2419 4514 4838 12 890 1780 2420 3630 4520 4840 5356 6563 8563 8926 10563 11426 4 1789 2421 4526 4842 10 896 1792 3632 4528 5359 6382 6564 6746 8927 11427 6 1510 1795 4530 5302 8564 10564 8 902 1512 1804 3634 4536 5303 8928 11428 4 1807 2423 4538 4846 10 905 1810 3635 4540 5362 6383 6565 6747 8565 10565 10 908 1816 2424 3636 4544 4848 5363 6566 8929 11429 6 1825 2425 4550 4850 8566 10566 8 914 1828 3638 4552 6384 6748 8930 11430 12 920 1520 1840 3640 4560 5304 5368 6567 8567 8931 10567 11431 4 1843 2427 4562 4854 8 926 1852 2428 3642 4568 4856 8932 11432 6 1855 4570 6387 6749 8568 10568 4 1861 2429 4574 4858 10 932 1864 3644 4576 5373 6388 6568 6750 8933 11433 10 935 1870 2430 3645 4580 4860 5374 6569 8569 10569 8 938 1528 1876 3646 4584 5305 8934 11434 4 1879 2431 4586 4862 6 1530 1885 4590 5306 8570 10570 10 944 1888 2432 3648 4592 4864 5377 6570 8935 11435 4 1897 2433 4598 4866 12 950 1900 3650 4600 5380 6391 6571 6751 8571 8936 10571 11436 10 956 1536 1912 3652 4608 5307 5383 6572 8937 11437 6 1915 2435 4610 4870 8572 10572 8 962 1924 2436 3654 4616 4872 8938 11438 10 965 1540 1930 3655 4620 5308 5386 6573 8573 10573 4 1933 2437 4622 4874 10 968 1936 3656 4624 5387 6394 6574 6752 8939 11439 6 1945 4630 6395 6753 8574 10574 8 974 1544 1948 3658 4632 5309 8940 11440 4 1951 2439 4634 4878 12 980 1960 2440 3660 4640 4880 5392 6575 8575 8941 10575 11441 4 1969 2441 4646 4882 8 986 1972 3662 4648 6398 6754 8942 11442 6 1550 1975 4650 5310 8576 10576 10 992 1552 1984 3664 4656 5311 5397 6576 8943 11443 4 1987 2443 4658 4886 10 995 1990 3665 4660 5398 6399 6577 6755 8577 10577 8 998 1996 2444 3666 4664 4888 8944 11444 6 2005 2445 4670 4890 8578 10578 10 1004 2008 3668 4672 5401 6400 6578 6756 8945 11445 12 1010 1560 2020 3670 4680 5312 5404 6579 8579 8946 10579 11446 4 2023 2447 4682 4894 10 1016 2032 2448 3672 4688 4896 5407 6580 8947 11447 6 2035 4690 6403 6757 8580 10580 4 2041 2449 4694 4898 8 1022 2044 3674 4696 6404 6758 8948 11448 10 1025 2050 2450 3675 4700 4900 5410 6581 8581 10581 10 1028 1568 2056 3676 4704 5313 5411 6582 8949 11449 4 2059 2451 4706 4902 6 1570 2065 4710 5314 8582 10582 8 1034 2068 2452 3678 4712 4904 8950 11450 4 2077 2453 4718 4906 12 1040 2080 3680 4720 5416 6407 6583 6759 8583 8951 10583 11451 8 1046 1576 2092 3682 4728 5315 8952 11452 6 2095 2455 4730 4910 8584 10584 10 1052 2104 2456 3684 4736 4912 5421 6584 8953 11453 10 1055 1580 2110 3685 4740 5316 5422 6585 8585 10585 4 2113 2457 4742 4914 8 1058 2116 3686 4744 6410 6760 8954 11454 6 2125 4750 6411 6761 8586 10586 10 1064 1584 2128 3688 4752 5317 5425 6586 8955 11455 4 2131 2459 4754 4918 12 1070 2140 2460 3690 4760 4920 5428 6587 8587 8956 10587 11456 4 2149 2461 4766 4922 10 1076 2152 3692 4768 5431 6414 6588 6762 8957 11457 6 1590 2155 4770 5318 8588 10588 8 1082 1592 2164 3694 4776 5319 8958 11458 4 2167 2463 4778 4926 10 1085 2170 3695 4780 5434 6415 6589 6763 8589 10589 10 1088 2176 2464 3696 4784 4928 5435 6590 8959 11459 6 2185 2465 4790 4930 8590 10590 8 1094 2188 3698 4792 6416 6764 8960 11460 12 1100 1600 2200 3700 4800 5320 5440 6591 8591 8961 10591 11461 4 2203 2467 4802 4934 8 1106 2212 2468 3702 4808 4936 8962 11462 6 2215 4810 6419 6765 8592 10592 4 2221 2469 4814 4938 10 1112 2224 3704 4816 5445 6420 6592 6766 8963 11463 10 1115 2230 2470 3705 4820 4940 5446 6593 8593 10593 8 1118 1608 2236 3706 4824 5321 8964 11464 4 2239 2471 4826 4942 6 1610 2245 4830 5322 8594 10594 10 1124 2248 2472 3708 4832 4944 5449 6594 8965 11465 4 2257 2473 4838 4946 12 1130 2260 3710 4840 5452 6423 6595 6767 8595 8966 10595 11466 10 1136 1616 2272 3712 4848 5323 5455 6596 8967 11467 6 2275 2475 4850 4950 8596 10596 8 1142 2284 2476 3714 4856 4952 8968 11468 10 1145 1620 2290 3715 4860 5324 5458 6597 8597 10597 4 2293 2477 4862 4954 10 1148 2296 3716 4864 5459 6426 6598 6768 8969 11469 6 2305 4870 6427 6769 8598 10598 8 1154 1624 2308 3718 4872 5325 8970 11470 4 2311 2479 4874 4958 12 1160 2320 2480 3720 4880 4960 5464 6599 8599 8971 10599 11471 4 2329 2481 4886 4962 8 1166 2332 3722 4888 6430 6770 8972 11472 6 1630 2335 4890 5326 8600 10600 10 1172 1632 2344 3724 4896 5327 5469 6600 8973 11473 4 2347 2483 4898 4966 10 1175 2350 3725 4900 5470 6431 6601 6771 8601 10601 8 1178 2356 2484 3726 4904 4968 8974 11474 6 2365 2485 4910 4970 8602 10602 10 1184 2368 3728 4912 5473 6432 6602 6772 8975 11475 12 1190 1640 2380 3730 4920 5328 5476 6603 8603 8976 10603 11476 4 2383 2487 4922 4974 10 1196 2392 2488 3732 4928 4976 5479 6604 8977 11477 6 2395 4930 6435 6773 8604 10604 4 2401 2489 4934 4978 8 1202 2404 3734 4936 6436 6774 8978 11478 10 1205 2410 2490 3735 4940 4980 5482 6605 8605 10605 10 1208 1648 2416 3736 4944 5329 5483 6606 8979 11479 4 2419 2491 4946 4982 6 1650 2425 4950 5330 8606 10606 8 1214 2428 2492 3738 4952 4984 8980 11480 4 2437 2493 4958 4986 12 1220 2440 3740 4960 5488 6439 6607 6775 8607 8981 10607 11481 8 1226 1656 2452 3742 4968 5331 8982 11482 6 2455 2495 4970 4990 8608 10608 10 1232 2464 2496 3744 4976 4992 5493 6608 8983 11483 10 1235 1660 2470 3745 4980 5332 5494 6609 8609 10609 4 2473 2497 4982 4994 8 1238 2476 3746 4984 6442 6776 8984 11484 6 2485 4990 6443 6777 8610 10610 10 1244 1664 2488 3748 4992 5333 5497 6610 8985 11485 4 2491 2499 4994 4998 10 1250 2500 3750 5000 5500 6611 8611 8986 10611 11486 10 1256 2512 3752 5003 5503 6446 6612 6778 8987 11487 6 1670 2515 5004 5334 8612 10612 8 1262 1672 2524 3754 5007 5335 8988 11488 10 1265 2530 3755 5008 5506 6447 6613 6779 8613 10613 10 1268 2504 2536 3756 5003 5009 5507 6614 8989 11489 6 2505 2545 5004 5012 8614 10614 8 1274 2548 3758 5013 6448 6780 8990 11490 12 1280 1680 2560 3760 5016 5336 5512 6615 8615 8991 10615 11491 8 1286 2508 2572 3762 5007 5019 8992 11492 6 2575 5020 6451 6781 8616 10616 10 1292 2584 3764 5023 5517 6452 6616 6782 8993 11493 10 1295 2510 2590 3765 5008 5024 5518 6617 8617 10617 8 1298 1688 2596 3766 5025 5337 8994 11494 6 1690 2605 5028 5338 8618 10618 10 1304 2512 2608 3768 5009 5029 5521 6618 8995 11495 12 1310 2620 3770 5032 5524 6455 6619 6783 8619 8996 10619 11496 10 1316 1696 2632 3772 5035 5339 5527 6620 8997 11497 6 2515 2635 5012 5036 8620 10620 8 1322 2516 2644 3774 5013 5039 8998 11498 10 1325 1700 2650 3775 5040 5340 5530 6621 8621 10621 10 1328 2656 3776 5041 5531 6458 6622 6784 8999 11499 6 2665 5044 6459 6785 8622 10622 8 1334 1704 2668 3778 5045 5341 9000 11500 12 1340 2520 2680 3780 5016 5048 5536 6623 8623 9001 10623 11501 8 1346 2692 3782 5051 6462 6786 9002 11502 6 1710 2695 5052 5342 8624 10624 10 1352 1712 2704 3784 5055 5343 5541 6624 9003 11503 10 1355 2710 3785 5056 5542 6463 6625 6787 8625 10625 8 1358 2524 2716 3786 5019 5057 9004 11504 6 2525 2725 5020 5060 8626 10626 10 1364 2728 3788 5061 5545 6464 6626 6788 9005 11505 12 1370 1720 2740 3790 5064 5344 5548 6627 8627 9006 10627 11506 10 1376 2528 2752 3792 5023 5067 5551 6628 9007 11507 6 2755 5068 6467 6789 8628 10628 8 1382 2764 3794 5071 6468 6790 9008 11508 10 1385 2530 2770 3795 5024 5072 5554 6629 8629 10629 10 1388 1728 2776 3796 5073 5345 5555 6630 9009 11509 6 1730 2785 5076 5346 8630 10630 8 1394 2532 2788 3798 5025 5077 9010 11510 12 1400 2800 3800 5080 5560 6471 6631 6791 8631 9011 10631 11511 8 1406 1736 2812 3802 5083 5347 9012 11512 6 2535 2815 5028 5084 8632 10632 10 1412 2536 2824 3804 5029 5087 5565 6632 9013 11513 10 1415 1740 2830 3805 5088 5348 5566 6633 8633 10633 8 1418 2836 3806 5089 6474 6792 9014 11514 6 2845 5092 6475 6793 8634 10634 10 1424 1744 2848 3808 5093 5349 5569 6634 9015 11515 12 1430 2540 2860 3810 5032 5096 5572 6635 8635 9016 10635 11516 10 1436 2872 3812 5099 5575 6478 6636 6794 9017 11517 6 1750 2875 5100 5350 8636 10636 8 1442 1752 2884 3814 5103 5351 9018 11518 10 1445 2890 3815 5104 5578 6479 6637 6795 8637 10637 10 1448 2544 2896 3816 5035 5105 5579 6638 9019 11519 6 2545 2905 5036 5108 8638 10638 8 1454 2908 3818 5109 6480 6796 9020 11520 12 1460 1760 2920 3820 5112 5352 5584 6639 8639 9021 10639 11521 8 1466 2548 2932 3822 5039 5115 9022 11522 6 2935 5116 6483 6797 8640 10640 10 1472 2944 3824 5119 5589 6484 6640 6798 9023 11523 10 1475 2550 2950 3825 5040 5120 5590 6641 8641 10641 8 1478 1768 2956 3826 5121 5353 9024 11524 6 1770 2965 5124 5354 8642 10642 10 1484 2552 2968 3828 5041 5125 5593 6642 9025 11525 12 1490 2980 3830 5128 5596 6487 6643 6799 8643 9026 10643 11526 10 1496 1776 2992 3832 5131 5355 5599 6644 9027 11527 6 2555 2995 5044 5132 8644 10644 8 1502 2556 3004 3834 5045 5135 9028 11528 10 1505 1780 3010 3835 5136 5356 5602 6645 8645 10645 10 1508 3016 3836 5137 5603 6490 6646 6800 9029 11529 6 3025 5140 6491 6801 8646 10646 8 1514 1784 3028 3838 5141 5357 9030 11530 12 1520 2560 3040 3840 5048 5144 5608 6647 8647 9031 10647 11531 8 1526 3052 3842 5147 6494 6802 9032 11532 6 1790 3055 5148 5358 8648 10648 10 1532 1792 3064 3844 5151 5359 5613 6648 9033 11533 10 1535 3070 3845 5152 5614 6495 6649 6803 8649 10649 8 1538 2564 3076 3846 5051 5153 9034 11534 6 2565 3085 5052 5156 8650 10650 10 1544 3088 3848 5157 5617 6496 6650 6804 9035 11535 12 1550 1800 3100 3850 5160 5360 5620 6651 8651 9036 10651 11536 10 1556 2568 3112 3852 5055 5163 5623 6652 9037 11537 6 3115 5164 6499 6805 8652 10652 8 1562 3124 3854 5167 6500 6806 9038 11538 10 1565 2570 3130 3855 5056 5168 5626 6653 8653 10653 10 1568 1808 3136 3856 5169 5361 5627 6654 9039 11539 6 1810 3145 5172 5362 8654 10654 8 1574 2572 3148 3858 5057 5173 9040 11540 12 1580 3160 3860 5176 5632 6503 6655 6807 8655 9041 10655 11541 8 1586 1816 3172 3862 5179 5363 9042 11542 6 2575 3175 5060 5180 8656 10656 10 1592 2576 3184 3864 5061 5183 5637 6656 9043 11543 10 1595 1820 3190 3865 5184 5364 5638 6657 8657 10657 8 1598 3196 3866 5185 6506 6808 9044 11544 6 3205 5188 6507 6809 8658 10658 10 1604 1824 3208 3868 5189 5365 5641 6658 9045 11545 12 1610 2580 3220 3870 5064 5192 5644 6659 8659 9046 10659 11546 10 1616 3232 3872 5195 5647 6510 6660 6810 9047 11547 6 1830 3235 5196 5366 8660 10660 8 1622 1832 3244 3874 5199 5367 9048 11548 10 1625 3250 3875 5200 5650 6511 6661 6811 8661 10661 10 1628 2584 3256 3876 5067 5201 5651 6662 9049 11549 6 2585 3265 5068 5204 8662 10662 8 1634 3268 3878 5205 6512 6812 9050 11550 12 1640 1840 3280 3880 5208 5368 5656 6663 8663 9051 10663 11551 8 1646 2588 3292 3882 5071 5211 9052 11552 6 3295 5212 6515 6813 8664 10664 10 1652 3304 3884 5215 5661 6516 6664 6814 9053 11553 10 1655 2590 3310 3885 5072 5216 5662 6665 8665 10665 8 1658 1848 3316 3886 5217 5369 9054 11554 6 1850 3325 5220 5370 8666 10666 10 1664 2592 3328 3888 5073 5221 5665 6666 9055 11555 12 1670 3340 3890 5224 5669 6519 6667 6815 8667 9056 10667 11556 10 1676 1856 3352 3892 5227 5371 5672 6668 9057 11557 6 2595 3355 5076 5228 8668 10668 8 1682 2596 3364 3894 5077 5231 9058 11558 10 1685 1860 3370 3895 5232 5372 5676 6669 8669 10669 10 1688 3376 3896 5233 5678 6522 6670 6816 9059 11559 6 3385 5236 6523 6817 8670 10670 8 1694 1864 3388 3898 5237 5373 9060 11560 12 1700 2600 3400 3900 5080 5240 5685 6671 8671 9061 10671 11561 8 1706 3412 3902 5243 6526 6818 9062 11562 6 1870 3415 5244 5374 8672 10672 10 1712 1872 3424 3904 5247 5375 5691 6672 9063 11563 10 1715 3430 3905 5248 5692 6527 6673 6819 8673 10673 8 1718 2604 3436 3906 5083 5249 9064 11564 6 2605 3445 5084 5252 8674 10674 10 1724 3448 3908 5253 5697 6528 6674 6820 9065 11565 12 1730 1880 3460 3910 5256 5376 5701 6675 8675 9066 10675 11566 10 1736 2608 3472 3912 5087 5259 5704 6676 9067 11567 6 3475 5260 6531 6821 8676 10676 8 1742 3484 3914 5263 6532 6822 9068 11568 10 1745 2610 3490 3915 5088 5264 5708 6677 8677 10677 10 1748 1888 3496 3916 5265 5377 5710 6678 9069 11569 6 1890 3505 5268 5378 8678 10678 8 1754 2612 3508 3918 5089 5269 9070 11570 12 1760 3520 3920 5272 5717 6535 6679 6823 8679 9071 10679 11571 8 1766 1896 3532 3922 5275 5379 9072 11572 6 2615 3535 5092 5276 8680 10680 10 1772 2616 3544 3924 5093 5279 5723 6680 9073 11573 10 1775 1900 3550 3925 5280 5380 5724 6681 8681 10681 8 1778 3556 3926 5281 6538 6824 9074 11574 6 3565 5284 6539 6825 8682 10682 10 1784 1904 3568 3928 5285 5381 5729 6682 9075 11575 12 1790 2620 3580 3930 5096 5288 5733 6683 8683 9076 10683 11576 10 1796 3592 3932 5291 5736 6542 6684 6826 9077 11577 6 1910 3595 5292 5382 8684 10684 8 1802 1912 3604 3934 5295 5383 9078 11578 10 1805 3610 3935 5296 5740 6543 6685 6827 8685 10685 10 1808 2624 3616 3936 5099 5297 5742 6686 9079 11579 6 2625 3625 5100 5300 8686 10686 8 1814 3628 3938 5301 6544 6828 9080 11580 12 1820 1920 3640 3940 5304 5384 5749 6687 8687 9081 10687 11581 8 1826 2628 3652 3942 5103 5307 9082 11582 6 3655 5308 6547 6829 8688 10688 10 1832 3664 3944 5311 5755 6548 6688 6830 9083 11583 10 1835 2630 3670 3945 5104 5312 5756 6689 8689 10689 8 1838 1928 3676 3946 5313 5385 9084 11584 6 1930 3685 5316 5386 8690 10690 10 1844 2632 3688 3948 5105 5317 5761 6690 9085 11585 12 1850 3700 3950 5320 5765 6551 6691 6831 8691 9086 10691 11586 10 1856 1936 3712 3952 5323 5387 5768 6692 9087 11587 6 2635 3715 5108 5324 8692 10692 8 1862 2636 3724 3954 5109 5327 9088 11588 10 1865 1940 3730 3955 5328 5388 5772 6693 8693 10693 10 1868 3736 3956 5329 5774 6554 6694 6832 9089 11589 6 3745 5332 6555 6833 8694 10694 8 1874 1944 3748 3958 5333 5389 9090 11590 12 1880 2640 3760 3960 5112 5336 5781 6695 8695 9091 10695 11591 8 1886 3772 3962 5339 6558 6834 9092 11592 6 1950 3775 5340 5390 8696 10696 10 1892 1952 3784 3964 5343 5391 5787 6696 9093 11593 10 1895 3790 3965 5344 5788 6559 6697 6835 8697 10697 8 1898 2644 3796 3966 5115 5345 9094 11594 6 2645 3805 5116 5348 8698 10698 10 1904 3808 3968 5349 5793 6560 6698 6836 9095 11595 12 1910 1960 3820 3970 5352 5392 5797 6699 8699 9096 10699 11596 10 1916 2648 3832 3972 5119 5355 5800 6700 9097 11597 6 3835 5356 6563 6837 8700 10700 8 1922 3844 3974 5359 6564 6838 9098 11598 10 1925 2650 3850 3975 5120 5360 5804 6701 8701 10701 10 1928 1968 3856 3976 5361 5393 5806 6702 9099 11599 6 1970 3865 5364 5394 8702 10702 8 1934 2652 3868 3978 5121 5365 9100 11600 12 1940 3880 3980 5368 5813 6567 6703 6839 8703 9101 10703 11601 8 1946 1976 3892 3982 5371 5395 9102 11602 6 2655 3895 5124 5372 8704 10704 10 1952 2656 3904 3984 5125 5375 5819 6704 9103 11603 10 1955 1980 3910 3985 5376 5396 5820 6705 8705 10705 8 1958 3916 3986 5377 6570 6840 9104 11604 6 3925 5380 6571 6841 8706 10706 10 1964 1984 3928 3988 5381 5397 5825 6706 9105 11605 12 1970 2660 3940 3990 5128 5384 5829 6707 8707 9106 10707 11606 10 1976 3952 3992 5387 5832 6574 6708 6842 9107 11607 6 1990 3955 5388 5398 8708 10708 8 1982 1992 3964 3994 5391 5399 9108 11608 10 1985 3970 3995 5392 5836 6575 6709 6843 8709 10709 10 1988 2664 3976 3996 5131 5393 5838 6710 9109 11609 6 2665 3985 5132 5396 8710 10710 8 1994 3988 3998 5397 6576 6844 9110 11610 9 2000 4000 5400 5845 6711 8711 9111 10711 11611 8 2006 2668 4002 4012 5135 5403 9112 11612 6 4015 5404 6579 6845 8712 10712 10 2012 4004 4024 5407 5851 6580 6712 6846 9113 11613 10 2015 2670 4005 4030 5136 5408 5852 6713 8713 10713 8 2008 2018 4006 4036 5401 5409 9114 11614 6 2010 4045 5402 5412 8714 10714 10 2024 2672 4008 4048 5137 5413 5857 6714 9115 11615 12 2030 4010 4060 5416 5861 6583 6715 6847 8715 9116 10715 11616 10 2016 2036 4012 4072 5403 5419 5864 6716 9117 11617 6 2675 4075 5140 5420 8716 10716 8 2042 2676 4014 4084 5141 5423 9118 11618 10 2020 2045 4015 4090 5404 5424 5868 6717 8717 10717 10 2048 4016 4096 5425 5870 6586 6718 6848 9119 11619 6 4105 5428 6587 6849 8718 10718 8 2024 2054 4018 4108 5405 5429 9120 11620 12 2060 2680 4020 4120 5144 5432 5877 6719 8719 9121 10719 11621 8 2066 4022 4132 5435 6590 6850 9122 11622 6 2030 4135 5406 5436 8720 10720 10 2032 2072 4024 4144 5407 5439 5883 6720 9123 11623 10 2075 4025 4150 5440 5884 6591 6721 6851 8721 10721 8 2078 2684 4026 4156 5147 5441 9124 11624 6 2685 4165 5148 5444 8722 10722 10 2084 4028 4168 5445 5889 6592 6722 6852 9125 11625 12 2040 2090 4030 4180 5408 5448 5893 6723 8723 9126 10723 11626 10 2096 2688 4032 4192 5151 5451 5896 6724 9127 11627 6 4195 5452 6595 6853 8724 10724 8 2102 4034 4204 5455 6596 6854 9128 11628 10 2105 2690 4035 4210 5152 5456 5900 6725 8725 10725 10 2048 2108 4036 4216 5409 5457 5902 6726 9129 11629 6 2050 4225 5410 5460 8726 10726 8 2114 2692 4038 4228 5153 5461 9130 11630 12 2120 4040 4240 5464 5909 6599 6727 6855 8727 9131 10727 11631 8 2056 2126 4042 4252 5411 5467 9132 11632 6 2695 4255 5156 5468 8728 10728 10 2132 2696 4044 4264 5157 5471 5915 6728 9133 11633 10 2060 2135 4045 4270 5412 5472 5916 6729 8729 10729 8 2138 4046 4276 5473 6602 6856 9134 11634 6 4285 5476 6603 6857 8730 10730 10 2064 2144 4048 4288 5413 5477 5921 6730 9135 11635 12 2150 2700 4050 4300 5160 5480 5925 6731 8731 9136 10731 11636 10 2156 4052 4312 5483 5928 6606 6732 6858 9137 11637 6 2070 4315 5414 5484 8732 10732 8 2072 2162 4054 4324 5415 5487 9138 11638 10 2165 4055 4330 5488 5932 6607 6733 6859 8733 10733 10 2168 2704 4056 4336 5163 5489 5934 6734 9139 11639 6 2705 4345 5164 5492 8734 10734 8 2174 4058 4348 5493 6608 6860 9140 11640 12 2080 2180 4060 4360 5416 5496 5941 6735 8735 9141 10735 11641 8 2186 2708 4062 4372 5167 5499 9142 11642 6 4375 5500 6611 6861 8736 10736 10 2192 4064 4384 5503 5947 6612 6736 6862 9143 11643 10 2195 2710 4065 4390 5168 5504 5948 6737 8737 10737 8 2088 2198 4066 4396 5417 5505 9144 11644 6 2090 4405 5418 5508 8738 10738 10 2204 2712 4068 4408 5169 5509 5953 6738 9145 11645 12 2210 4070 4420 5512 5957 6615 6739 6863 8739 9146 10739 11646 10 2096 2216 4072 4432 5419 5515 5960 6740 9147 11647 6 2715 4435 5172 5516 8740 10740 8 2222 2716 4074 4444 5173 5519 9148 11648 10 2100 2225 4075 4450 5420 5520 5964 6741 8741 10741 10 2228 4076 4456 5521 5966 6618 6742 6864 9149 11649 6 4465 5524 6619 6865 8742 10742 8 2104 2234 4078 4468 5421 5525 9150 11650 12 2240 2720 4080 4480 5176 5528 5973 6743 8743 9151 10743 11651 8 2246 4082 4492 5531 6622 6866 9152 11652 6 2110 4495 5422 5532 8744 10744 10 2112 2252 4084 4504 5423 5535 5979 6744 9153 11653 10 2255 4085 4510 5536 5980 6623 6745 6867 8745 10745 8 2258 2724 4086 4516 5179 5537 9154 11654 6 2725 4525 5180 5540 8746 10746 10 2264 4088 4528 5541 5985 6624 6746 6868 9155 11655 12 2120 2270 4090 4540 5424 5544 5989 6747 8747 9156 10747 11656 10 2276 2728 4092 4552 5183 5547 5992 6748 9157 11657 6 4555 5548 6627 6869 8748 10748 8 2282 4094 4564 5551 6628 6870 9158 11658 10 2285 2730 4095 4570 5184 5552 5996 6749 8749 10749 10 2128 2288 4096 4576 5425 5553 5998 6750 9159 11659 6 2130 4585 5426 5556 8750 10750 8 2294 2732 4098 4588 5185 5557 9160 11660 12 2300 4100 4600 5560 6005 6631 6751 6871 8751 9161 10751 11661 8 2136 2306 4102 4612 5427 5563 9162 11662 6 2735 4615 5188 5564 8752 10752 10 2312 2736 4104 4624 5189 5567 6011 6752 9163 11663 10 2140 2315 4105 4630 5428 5568 6012 6753 8753 10753 8 2318 4106 4636 5569 6634 6872 9164 11664 6 4645 5572 6635 6873 8754 10754 10 2144 2324 4108 4648 5429 5573 6017 6754 9165 11665 12 2330 2740 4110 4660 5192 5576 6021 6755 8755 9166 10755 11666 10 2336 4112 4672 5579 6024 6638 6756 6874 9167 11667 6 2150 4675 5430 5580 8756 10756 8 2152 2342 4114 4684 5431 5583 9168 11668 10 2345 4115 4690 5584 6028 6639 6757 6875 8757 10757 10 2348 2744 4116 4696 5195 5585 6030 6758 9169 11669 6 2745 4705 5196 5588 8758 10758 8 2354 4118 4708 5589 6640 6876 9170 11670 12 2160 2360 4120 4720 5432 5592 6037 6759 8759 9171 10759 11671 8 2366 2748 4122 4732 5199 5595 9172 11672 6 4735 5596 6643 6877 8760 10760 10 2372 4124 4744 5599 6043 6644 6760 6878 9173 11673 10 2375 2750 4125 4750 5200 5600 6044 6761 8761 10761 8 2168 2378 4126 4756 5433 5601 9174 11674 6 2170 4765 5434 5604 8762 10762 10 2384 2752 4128 4768 5201 5605 6049 6762 9175 11675 12 2390 4130 4780 5608 6053 6647 6763 6879 8763 9176 10763 11676 10 2176 2396 4132 4792 5435 5611 6056 6764 9177 11677 6 2755 4795 5204 5612 8764 10764 8 2402 2756 4134 4804 5205 5615 9178 11678 10 2180 2405 4135 4810 5436 5616 6060 6765 8765 10765 10 2408 4136 4816 5617 6062 6650 6766 6880 9179 11679 6 4825 5620 6651 6881 8766 10766 8 2184 2414 4138 4828 5437 5621 9180 11680 12 2420 2760 4140 4840 5208 5624 6069 6767 8767 9181 10767 11681 8 2426 4142 4852 5627 6654 6882 9182 11682 6 2190 4855 5438 5628 8768 10768 10 2192 2432 4144 4864 5439 5631 6075 6768 9183 11683 10 2435 4145 4870 5632 6076 6655 6769 6883 8769 10769 8 2438 2764 4146 4876 5211 5633 9184 11684 6 2765 4885 5212 5636 8770 10770 10 2444 4148 4888 5637 6081 6656 6770 6884 9185 11685 12 2200 2450 4150 4900 5440 5640 6085 6771 8771 9186 10771 11686 10 2456 2768 4152 4912 5215 5643 6088 6772 9187 11687 6 4915 5644 6659 6885 8772 10772 8 2462 4154 4924 5647 6660 6886 9188 11688 10 2465 2770 4155 4930 5216 5648 6092 6773 8773 10773 10 2208 2468 4156 4936 5441 5649 6094 6774 9189 11689 6 2210 4945 5442 5652 8774 10774 8 2474 2772 4158 4948 5217 5653 9190 11690 12 2480 4160 4960 5656 6101 6663 6775 6887 8775 9191 10775 11691 8 2216 2486 4162 4972 5443 5659 9192 11692 6 2775 4975 5220 5660 8776 10776 10 2492 2776 4164 4984 5221 5663 6107 6776 9193 11693 10 2220 2495 4165 4990 5444 5664 6108 6777 8777 10777 8 2498 4166 4996 5665 6666 6888 9194 11694 6 5002 5669 6667 6889 8778 10778 10 2224 2504 4168 5003 5445 5670 6112 6778 9195 11695 12 2510 2780 4170 5008 5224 5673 6115 6779 8779 9196 10779 11696 10 2516 4172 5013 5678 6118 6670 6780 6890 9197 11697 6 2230 5014 5446 5679 8780 10780 8 2232 2522 4174 5017 5447 5683 9198 11698 10 2525 4175 5020 5685 6121 6671 6781 6891 8781 10781 10 2528 2784 4176 5023 5227 5686 6122 6782 9199 11699 6 2785 5026 5228 5689 8782 10782 8 2534 4178 5027 5691 6672 6892 9200 11700 12 2240 2540 4180 5032 5448 5695 6127 6783 8783 9201 10783 11701 8 2546 2788 4182 5037 5231 5699 9202 11702 6 5038 5701 6675 6893 8784 10784 10 2552 4184 5041 5704 6132 6676 6784 6894 9203 11703 10 2555 2790 4185 5044 5232 5705 6133 6785 8785 10785 8 2248 2558 4186 5047 5449 5707 9204 11704 6 2250 5050 5450 5711 8786 10786 10 2564 2792 4188 5051 5233 5712 6136 6786 9205 11705 12 2570 4190 5056 5717 6139 6679 6787 6895 8787 9206 10787 11706 10 2256 2576 4192 5061 5451 5720 6142 6788 9207 11707 6 2795 5062 5236 5721 8788 10788 8 2582 2796 4194 5065 5237 5725 9208 11708 10 2260 2585 4195 5068 5452 5727 6145 6789 8789 10789 10 2588 4196 5071 5729 6146 6682 6790 6896 9209 11709 6 5074 5733 6683 6897 8790 10790 8 2264 2594 4198 5075 5453 5734 9210 11710 12 2600 2800 4200 5080 5240 5737 6151 6791 8791 9211 10791 11711 8 2606 4202 5085 5742 6686 6898 9212 11712 6 2270 5086 5454 5743 8792 10792 10 2272 2612 4204 5089 5455 5747 6156 6792 9213 11713 10 2615 4205 5092 5749 6157 6687 6793 6899 8793 10793 8 2618 2804 4206 5095 5243 5750 9214 11714 6 2805 5098 5244 5753 8794 10794 10 2624 4208 5099 5755 6160 6688 6794 6900 9215 11715 12 2280 2630 4210 5104 5456 5759 6163 6795 8795 9216 10795 11716 10 2636 2808 4212 5109 5247 5763 6166 6796 9217 11717 6 5110 5765 6691 6901 8796 10796 8 2642 4214 5113 5768 6692 6902 9218 11718 10 2645 2810 4215 5116 5248 5769 6169 6797 8797 10797 10 2288 2648 4216 5119 5457 5771 6170 6798 9219 11719 6 2290 5122 5458 5775 8798 10798 8 2654 2812 4218 5123 5249 5776 9220 11720 12 2660 4220 5128 5781 6175 6695 6799 6903 8799 9221 10799 11721 8 2296 2666 4222 5133 5459 5784 9222 11722 6 2815 5134 5252 5785 8800 10800 10 2672 2816 4224 5137 5253 5789 6180 6800 9223 11723 10 2300 2675 4225 5140 5460 5791 6181 6801 8801 10801 8 2678 4226 5143 5793 6698 6904 9224 11724 6 5146 5797 6699 6905 8802 10802 10 2304 2684 4228 5147 5461 5798 6184 6802 9225 11725 12 2690 2820 4230 5152 5256 5801 6187 6803 8803 9226 10803 11726 10 2696 4232 5157 5806 6190 6702 6804 6906 9227 11727 6 2310 5158 5462 5807 8804 10804 8 2312 2702 4234 5161 5463 5811 9228 11728 10 2705 4235 5164 5813 6193 6703 6805 6907 8805 10805 10 2708 2824 4236 5167 5259 5814 6194 6806 9229 11729 6 2825 5170 5260 5817 8806 10806 8 2714 4238 5171 5819 6704 6908 9230 11730 12 2320 2720 4240 5176 5464 5823 6199 6807 8807 9231 10807 11731 8 2726 2828 4242 5181 5263 5827 9232 11732 6 5182 5829 6707 6909 8808 10808 10 2732 4244 5185 5832 6204 6708 6808 6910 9233 11733 10 2735 2830 4245 5188 5264 5833 6205 6809 8809 10809 8 2328 2738 4246 5191 5465 5835 9234 11734 6 2330 5194 5466 5839 8810 10810 10 2744 2832 4248 5195 5265 5840 6208 6810 9235 11735 12 2750 4250 5200 5845 6211 6711 6811 6911 8811 9236 10811 11736 10 2336 2756 4252 5205 5467 5848 6214 6812 9237 11737 6 2835 5206 5268 5849 8812 10812 8 2762 2836 4254 5209 5269 5853 9238 11738 10 2340 2765 4255 5212 5468 5855 6217 6813 8813 10813 10 2768 4256 5215 5857 6218 6714 6814 6912 9239 11739 6 5218 5861 6715 6913 8814 10814 8 2344 2774 4258 5219 5469 5862 9240 11740 12 2780 2840 4260 5224 5272 5865 6223 6815 8815 9241 10815 11741 8 2786 4262 5229 5870 6718 6914 9242 11742 6 2350 5230 5470 5871 8816 10816 10 2352 2792 4264 5233 5471 5875 6228 6816 9243 11743 10 2795 4265 5236 5877 6229 6719 6817 6915 8817 10817 8 2798 2844 4266 5239 5275 5878 9244 11744 6 2845 5242 5276 5881 8818 10818 10 2804 4268 5243 5883 6232 6720 6818 6916 9245 11745 12 2360 2810 4270 5248 5472 5887 6235 6819 8819 9246 10819 11746 10 2816 2848 4272 5253 5279 5891 6238 6820 9247 11747 6 5254 5893 6723 6917 8820 10820 8 2822 4274 5257 5896 6724 6918 9248 11748 10 2825 2850 4275 5260 5280 5897 6241 6821 8821 10821 10 2368 2828 4276 5263 5473 5899 6242 6822 9249 11749 6 2370 5266 5474 5903 8822 10822 8 2834 2852 4278 5267 5281 5904 9250 11750 12 2840 4280 5272 5909 6247 6727 6823 6919 8823 9251 10823 11751 8 2376 2846 4282 5277 5475 5912 9252 11752 6 2855 5278 5284 5913 8824 10824 10 2852 2856 4284 5281 5285 5917 6252 6824 9253 11753 10 2380 2855 4285 5284 5476 5919 6253 6825 8825 10825 8 2858 4286 5287 5921 6730 6920 9254 11754 6 5290 5925 6731 6921 8826 10826 10 2384 2864 4288 5291 5477 5926 6256 6826 9255 11755 12 2860 2870 4290 5288 5296 5929 6259 6827 8827 9256 10827 11756 10 2876 4292 5301 5934 6262 6734 6828 6922 9257 11757 6 2390 5302 5478 5935 8828 10828 8 2392 2882 4294 5305 5479 5939 9258 11758 10 2885 4295 5308 5941 6265 6735 6829 6923 8829 10829 10 2864 2888 4296 5291 5311 5942 6266 6830 9259 11759 6 2865 5292 5314 5945 8830 10830 8 2894 4298 5315 5947 6736 6924 9260 11760 12 2400 2900 4300 5320 5480 5951 6271 6831 8831 9261 10831 11761 8 2868 2906 4302 5295 5325 5955 9262 11762 6 5326 5957 6739 6925 8832 10832 10 2912 4304 5329 5960 6276 6740 6832 6926 9263 11763 10 2870 2915 4305 5296 5332 5961 6277 6833 8833 10833 8 2408 2918 4306 5335 5481 5963 9264 11764 6 2410 5338 5482 5967 8834 10834 10 2872 2924 4308 5297 5339 5968 6280 6834 9265 11765 12 2930 4310 5344 5973 6283 6743 6835 6927 8835 9266 10835 11766 10 2416 2936 4312 5349 5483 5976 6286 6836 9267 11767 6 2875 5300 5350 5977 8836 10836 8 2876 2942 4314 5301 5353 5981 9268 11768 10 2420 2945 4315 5356 5484 5983 6289 6837 8837 10837 10 2948 4316 5359 5985 6290 6746 6838 6928 9269 11769 6 5362 5989 6747 6929 8838 10838 8 2424 2954 4318 5363 5485 5990 9270 11770 12 2880 2960 4320 5304 5368 5993 6295 6839 8839 9271 10839 11771 8 2966 4322 5373 5998 6750 6930 9272 11772 6 2430 5374 5486 5999 8840 10840 10 2432 2972 4324 5377 5487 6003 6300 6840 9273 11773 10 2975 4325 5380 6005 6301 6751 6841 6931 8841 10841 8 2884 2978 4326 5307 5383 6006 9274 11774 6 2885 5308 5386 6009 8842 10842 10 2984 4328 5387 6011 6304 6752 6842 6932 9275 11775 12 2440 2990 4330 5392 5488 6015 6307 6843 8843 9276 10843 11776 10 2888 2996 4332 5311 5397 6019 6310 6844 9277 11777 6 5398 6021 6755 6933 8844 10844 8 3002 4334 5401 6024 6756 6934 9278 11778 10 2890 3005 4335 5312 5404 6025 6313 6845 8845 10845 10 2448 3008 4336 5407 5489 6027 6314 6846 9279 11779 6 2450 5410 5490 6031 8846 10846 8 2892 3014 4338 5313 5411 6032 9280 11780 12 3020 4340 5416 6037 6319 6759 6847 6935 8847 9281 10847 11781 8 2456 3026 4342 5421 5491 6040 9282 11782 6 2895 5316 5422 6041 8848 10848 10 2896 3032 4344 5317 5425 6045 6324 6848 9283 11783 10 2460 3035 4345 5428 5492 6047 6325 6849 8849 10849 8 3038 4346 5431 6049 6762 6936 9284 11784 6 5434 6053 6763 6937 8850 10850 10 2464 3044 4348 5435 5493 6054 6328 6850 9285 11785 12 2900 3050 4350 5320 5440 6057 6331 6851 8851 9286 10851 11786 10 3056 4352 5445 6062 6334 6766 6852 6938 9287 11787 6 2470 5446 5494 6063 8852 10852 8 2472 3062 4354 5449 5495 6067 9288 11788 10 3065 4355 5452 6069 6337 6767 6853 6939 8853 10853 10 2904 3068 4356 5323 5455 6070 6338 6854 9289 11789 6 2905 5324 5458 6073 8854 10854 8 3074 4358 5459 6075 6768 6940 9290 11790 12 2480 3080 4360 5464 5496 6079 6343 6855 8855 9291 10855 11791 8 2908 3086 4362 5327 5469 6083 9292 11792 6 5470 6085 6771 6941 8856 10856 10 3092 4364 5473 6088 6348 6772 6856 6942 9293 11793 10 2910 3095 4365 5328 5476 6089 6349 6857 8857 10857 8 2488 3098 4366 5479 5497 6091 9294 11794 6 2490 5482 5498 6095 8858 10858 10 2912 3104 4368 5329 5483 6096 6352 6858 9295 11795 12 3110 4370 5488 6101 6355 6775 6859 6943 8859 9296 10859 11796 10 2496 3116 4372 5493 5499 6104 6358 6860 9297 11797 6 2915 5332 5494 6105 8860 10860 8 2916 3122 4374 5333 5497 6109 9298 11798 9 2500 3125 4375 5500 6111 6361 6861 8861 10861 10 3128 4376 5503 6112 6362 6778 6862 6944 9299 11799 6 5506 6115 6779 6945 8862 10862 8 2504 3134 4378 5501 5507 6116 9300 11800 12 2920 3140 4380 5336 5512 6119 6367 6863 8863 9301 10863 11801 8 3146 4382 5517 6122 6782 6946 9302 11802 6 2510 5502 5518 6123 8864 10864 10 2512 3152 4384 5503 5521 6126 6372 6864 9303 11803 10 3155 4385 5524 6127 6373 6783 6865 6947 8865 10865 8 2924 3158 4386 5339 5527 6128 9304 11804 6 2925 5340 5530 6131 8866 10866 10 3164 4388 5531 6132 6376 6784 6866 6948 9305 11805 12 2520 3170 4390 5504 5536 6135 6379 6867 8867 9306 10867 11806 10 2928 3176 4392 5343 5541 6138 6382 6868 9307 11807 6 5542 6139 6787 6949 8868 10868 8 3182 4394 5545 6142 6788 6950 9308 11808 10 2930 3185 4395 5344 5548 6143 6385 6869 8869 10869 10 2528 3188 4396 5505 5551 6144 6386 6870 9309 11809 6 2530 5506 5554 6147 8870 10870 8 2932 3194 4398 5345 5555 6148 9310 11810 12 3200 4400 5560 6151 6391 6791 6871 6951 8871 9311 10871 11811 8 2536 3206 4402 5507 5565 6154 9312 11812 6 2935 5348 5566 6155 8872 10872 10 2936 3212 4404 5349 5569 6158 6396 6872 9313 11813 10 2540 3215 4405 5508 5572 6159 6397 6873 8873 10873 8 3218 4406 5575 6160 6794 6952 9314 11814 6 5578 6163 6795 6953 8874 10874 10 2544 3224 4408 5509 5579 6164 6400 6874 9315 11815 12 2940 3230 4410 5352 5584 6167 6403 6875 8875 9316 10875 11816 10 3236 4412 5589 6170 6406 6798 6876 6954 9317 11817 6 2550 5510 5590 6171 8876 10876 8 2552 3242 4414 5511 5593 6174 9318 11818 10 3245 4415 5596 6175 6409 6799 6877 6955 8877 10877 10 2944 3248 4416 5355 5599 6176 6410 6878 9319 11819 6 2945 5356 5602 6179 8878 10878 8 3254 4418 5603 6180 6800 6956 9320 11820 12 2560 3260 4420 5512 5608 6183 6415 6879 8879 9321 10879 11821 8 2948 3266 4422 5359 5613 6186 9322 11822 6 5614 6187 6803 6957 8880 10880 10 3272 4424 5617 6190 6420 6804 6880 6958 9323 11823 10 2950 3275 4425 5360 5620 6191 6421 6881 8881 10881 8 2568 3278 4426 5513 5623 6192 9324 11824 6 2570 5514 5626 6195 8882 10882 10 2952 3284 4428 5361 5627 6196 6424 6882 9325 11825 12 3290 4430 5632 6199 6427 6807 6883 6959 8883 9326 10883 11826 10 2576 3296 4432 5515 5637 6202 6430 6884 9327 11827 6 2955 5364 5638 6203 8884 10884 8 2956 3302 4434 5365 5641 6206 9328 11828 10 2580 3305 4435 5516 5644 6207 6433 6885 8885 10885 10 3308 4436 5647 6208 6434 6810 6886 6960 9329 11829 6 5650 6211 6811 6961 8886 10886 8 2584 3314 4438 5517 5651 6212 9330 11830 12 2960 3320 4440 5368 5656 6215 6439 6887 8887 9331 10887 11831 8 3326 4442 5661 6218 6814 6962 9332 11832 6 2590 5518 5662 6219 8888 10888 10 2592 3332 4444 5519 5665 6222 6444 6888 9333 11833 10 3335 4445 5669 6223 6445 6815 6889 6963 8889 10889 8 2964 3338 4446 5371 5672 6224 9334 11834 6 2965 5372 5676 6227 8890 10890 10 3344 4448 5678 6228 6448 6816 6890 6964 9335 11835 12 2600 3350 4450 5520 5685 6231 6451 6891 8891 9336 10891 11836 10 2968 3356 4452 5375 5691 6234 6454 6892 9337 11837 6 5692 6235 6819 6965 8892 10892 8 3362 4454 5697 6238 6820 6966 9338 11838 10 2970 3365 4455 5376 5701 6239 6457 6893 8893 10893 10 2608 3368 4456 5521 5704 6240 6458 6894 9339 11839 6 2610 5522 5708 6243 8894 10894 8 2972 3374 4458 5377 5710 6244 9340 11840 12 3380 4460 5717 6247 6463 6823 6895 6967 8895 9341 10895 11841 8 2616 3386 4462 5523 5723 6250 9342 11842 6 2975 5380 5724 6251 8896 10896 10 2976 3392 4464 5381 5729 6254 6468 6896 9343 11843 10 2620 3395 4465 5524 5733 6255 6469 6897 8897 10897 8 3398 4466 5736 6256 6826 6968 9344 11844 6 5740 6259 6827 6969 8898 10898 10 2624 3404 4468 5525 5742 6260 6472 6898 9345 11845 12 2980 3410 4470 5384 5749 6263 6475 6899 8899 9346 10899 11846 10 3416 4472 5755 6266 6478 6830 6900 6970 9347 11847 6 2630 5526 5756 6267 8900 10900 8 2632 3422 4474 5527 5761 6270 9348 11848 10 3425 4475 5765 6271 6481 6831 6901 6971 8901 10901 10 2984 3428 4476 5387 5768 6272 6482 6902 9349 11849 6 2985 5388 5772 6275 8902 10902 8 3434 4478 5774 6276 6832 6972 9350 11850 12 2640 3440 4480 5528 5781 6279 6487 6903 8903 9351 10903 11851 8 2988 3446 4482 5391 5787 6282 9352 11852 6 5788 6283 6835 6973 8904 10904 10 3452 4484 5793 6286 6492 6836 6904 6974 9353 11853 10 2990 3455 4485 5392 5797 6287 6493 6905 8905 10905 8 2648 3458 4486 5529 5800 6288 9354 11854 6 2650 5530 5804 6291 8906 10906 10 2992 3464 4488 5393 5806 6292 6496 6906 9355 11855 12 3470 4490 5813 6295 6499 6839 6907 6975 8907 9356 10907 11856 10 2656 3476 4492 5531 5819 6298 6502 6908 9357 11857 6 2995 5396 5820 6299 8908 10908 8 2996 3482 4494 5397 5825 6302 9358 11858 10 2660 3485 4495 5532 5829 6303 6505 6909 8909 10909 10 3488 4496 5832 6304 6506 6842 6910 6976 9359 11859 6 5836 6307 6843 6977 8910 10910 8 2664 3494 4498 5533 5838 6308 9360 11860 12 3000 3500 4500 5400 5845 6311 6511 6911 8911 9361 10911 11861 8 3506 4502 5851 6314 6846 6978 9362 11862 6 2670 5534 5852 6315 8912 10912 10 2672 3512 4504 5535 5857 6318 6516 6912 9363 11863 10 3515 4505 5861 6319 6517 6847 6913 6979 8913 10913 8 3004 3518 4506 5403 5864 6320 9364 11864 6 3005 5404 5868 6323 8914 10914 10 3524 4508 5870 6324 6520 6848 6914 6980 9365 11865 12 2680 3530 4510 5536 5877 6327 6523 6915 8915 9366 10915 11866 10 3008 3536 4512 5407 5883 6330 6526 6916 9367 11867 6 5884 6331 6851 6981 8916 10916 8 3542 4514 5889 6334 6852 6982 9368 11868 10 3010 3545 4515 5408 5893 6335 6529 6917 8917 10917 10 2688 3548 4516 5537 5896 6336 6530 6918 9369 11869 6 2690 5538 5900 6339 8918 10918 8 3012 3554 4518 5409 5902 6340 9370 11870 12 3560 4520 5909 6343 6535 6855 6919 6983 8919 9371 10919 11871 8 2696 3566 4522 5539 5915 6346 9372 11872 6 3015 5412 5916 6347 8920 10920 10 3016 3572 4524 5413 5921 6350 6540 6920 9373 11873 10 2700 3575 4525 5540 5925 6351 6541 6921 8921 10921 8 3578 4526 5928 6352 6858 6984 9374 11874 6 5932 6355 6859 6985 8922 10922 10 2704 3584 4528 5541 5934 6356 6544 6922 9375 11875 12 3020 3590 4530 5416 5941 6359 6547 6923 8923 9376 10923 11876 10 3596 4532 5947 6362 6550 6862 6924 6986 9377 11877 6 2710 5542 5948 6363 8924 10924 8 2712 3602 4534 5543 5953 6366 9378 11878 10 3605 4535 5957 6367 6553 6863 6925 6987 8925 10925 10 3024 3608 4536 5419 5960 6368 6554 6926 9379 11879 6 3025 5420 5964 6371 8926 10926 8 3614 4538 5966 6372 6864 6988 9380 11880 12 2720 3620 4540 5544 5973 6375 6559 6927 8927 9381 10927 11881 8 3028 3626 4542 5423 5979 6378 9382 11882 6 5980 6379 6867 6989 8928 10928 10 3632 4544 5985 6382 6564 6868 6928 6990 9383 11883 10 3030 3635 4545 5424 5989 6383 6565 6929 8929 10929 8 2728 3638 4546 5545 5992 6384 9384 11884 6 2730 5546 5996 6387 8930 10930 10 3032 3644 4548 5425 5998 6388 6568 6930 9385 11885 12 3650 4550 6005 6391 6571 6871 6931 6991 8931 9386 10931 11886 10 2736 3656 4552 5547 6011 6394 6574 6932 9387 11887 6 3035 5428 6012 6395 8932 10932 8 3036 3662 4554 5429 6017 6398 9388 11888 10 2740 3665 4555 5548 6021 6399 6577 6933 8933 10933 10 3668 4556 6024 6400 6578 6874 6934 6992 9389 11889 6 6028 6403 6875 6993 8934 10934 8 2744 3674 4558 5549 6030 6404 9390 11890 12 3040 3680 4560 5432 6037 6407 6583 6935 8935 9391 10935 11891 8 3686 4562 6043 6410 6878 6994 9392 11892 6 2750 5550 6044 6411 8936 10936 10 2752 3692 4564 5551 6049 6414 6588 6936 9393 11893 10 3695 4565 6053 6415 6589 6879 6937 6995 8937 10937 8 3044 3698 4566 5435 6056 6416 9394 11894 6 3045 5436 6060 6419 8938 10938 10 3704 4568 6062 6420 6592 6880 6938 6996 9395 11895 12 2760 3710 4570 5552 6069 6423 6595 6939 8939 9396 10939 11896 10 3048 3716 4572 5439 6075 6426 6598 6940 9397 11897 6 6076 6427 6883 6997 8940 10940 8 3722 4574 6081 6430 6884 6998 9398 11898 10 3050 3725 4575 5440 6085 6431 6601 6941 8941 10941 10 2768 3728 4576 5553 6088 6432 6602 6942 9399 11899 6 2770 5554 6092 6435 8942 10942 8 3052 3734 4578 5441 6094 6436 9400 11900 12 3740 4580 6101 6439 6607 6887 6943 6999 8943 9401 10943 11901 8 2776 3746 4582 5555 6107 6442 9402 11902 6 3055 5444 6108 6443 8944 10944 10 3056 3752 4584 5445 6112 6446 6612 6944 9403 11903 10 2780 3755 4585 5556 6115 6447 6613 6945 8945 10945 8 3758 4586 6118 6448 6890 7000 9404 11904 6 6121 6451 6891 7001 8946 10946 10 2784 3764 4588 5557 6122 6452 6616 6946 9405 11905 12 3060 3770 4590 5448 6127 6455 6619 6947 8947 9406 10947 11906 10 3776 4592 6132 6458 6622 6894 6948 7002 9407 11907 6 2790 5558 6133 6459 8948 10948 8 2792 3782 4594 5559 6136 6462 9408 11908 10 3785 4595 6139 6463 6625 6895 6949 7003 8949 10949 10 3064 3788 4596 5451 6142 6464 6626 6950 9409 11909 6 3065 5452 6145 6467 8950 10950 8 3794 4598 6146 6468 6896 7004 9410 11910 12 2800 3800 4600 5560 6151 6471 6631 6951 8951 9411 10951 11911 8 3068 3806 4602 5455 6156 6474 9412 11912 6 6157 6475 6899 7005 8952 10952 10 3812 4604 6160 6478 6636 6900 6952 7006 9413 11913 10 3070 3815 4605 5456 6163 6479 6637 6953 8953 10953 8 2808 3818 4606 5561 6166 6480 9414 11914 6 2810 5562 6169 6483 8954 10954 10 3072 3824 4608 5457 6170 6484 6640 6954 9415 11915 12 3830 4610 6175 6487 6643 6903 6955 7007 8955 9416 10955 11916 10 2816 3836 4612 5563 6180 6490 6646 6956 9417 11917 6 3075 5460 6181 6491 8956 10956 8 3076 3842 4614 5461 6184 6494 9418 11918 10 2820 3845 4615 5564 6187 6495 6649 6957 8957 10957 10 3848 4616 6190 6496 6650 6906 6958 7008 9419 11919 6 6193 6499 6907 7009 8958 10958 8 2824 3854 4618 5565 6194 6500 9420 11920 12 3080 3860 4620 5464 6199 6503 6655 6959 8959 9421 10959 11921 8 3866 4622 6204 6506 6910 7010 9422 11922 6 2830 5566 6205 6507 8960 10960 10 2832 3872 4624 5567 6208 6510 6660 6960 9423 11923 10 3875 4625 6211 6511 6661 6911 6961 7011 8961 10961 8 3084 3878 4626 5467 6214 6512 9424 11924 6 3085 5468 6217 6515 8962 10962 10 3884 4628 6218 6516 6664 6912 6962 7012 9425 11925 12 2840 3890 4630 5568 6223 6519 6667 6963 8963 9426 10963 11926 10 3088 3896 4632 5471 6228 6522 6670 6964 9427 11927 6 6229 6523 6915 7013 8964 10964 8 3902 4634 6232 6526 6916 7014 9428 11928 10 3090 3905 4635 5472 6235 6527 6673 6965 8965 10965 10 2848 3908 4636 5569 6238 6528 6674 6966 9429 11929 6 2850 5570 6241 6531 8966 10966 8 3092 3914 4638 5473 6242 6532 9430 11930 12 3920 4640 6247 6535 6679 6919 6967 7015 8967 9431 10967 11931 8 2856 3926 4642 5571 6252 6538 9432 11932 6 3095 5476 6253 6539 8968 10968 10 3096 3932 4644 5477 6256 6542 6684 6968 9433 11933 10 2860 3935 4645 5572 6259 6543 6685 6969 8969 10969 8 3938 4646 6262 6544 6922 7016 9434 11934 6 6265 6547 6923 7017 8970 10970 10 2864 3944 4648 5573 6266 6548 6688 6970 9435 11935 12 3100 3950 4650 5480 6271 6551 6691 6971 8971 9436 10971 11936 10 3956 4652 6276 6554 6694 6926 6972 7018 9437 11937 6 2870 5574 6277 6555 8972 10972 8 2872 3962 4654 5575 6280 6558 9438 11938 10 3965 4655 6283 6559 6697 6927 6973 7019 8973 10973 10 3104 3968 4656 5483 6286 6560 6698 6974 9439 11939 6 3105 5484 6289 6563 8974 10974 8 3974 4658 6290 6564 6928 7020 9440 11940 12 2880 3980 4660 5576 6295 6567 6703 6975 8975 9441 10975 11941 8 3108 3986 4662 5487 6300 6570 9442 11942 6 6301 6571 6931 7021 8976 10976 10 3992 4664 6304 6574 6708 6932 6976 7022 9443 11943 10 3110 3995 4665 5488 6307 6575 6709 6977 8977 10977 8 2888 3998 4666 5577 6310 6576 9444 11944 6 2890 5578 6313 6579 8978 10978 10 3112 4004 4668 5489 6314 6580 6712 6978 9445 11945 12 4010 4670 6319 6583 6715 6935 6979 7023 8979 9446 10979 11946 10 2896 4016 4672 5579 6324 6586 6718 6980 9447 11947 6 3115 5492 6325 6587 8980 10980 8 3116 4022 4674 5493 6328 6590 9448 11948 10 2900 4025 4675 5580 6331 6591 6721 6981 8981 10981 10 4028 4676 6334 6592 6722 6938 6982 7024 9449 11949 6 6337 6595 6939 7025 8982 10982 8 2904 4034 4678 5581 6338 6596 9450 11950 12 3120 4040 4680 5496 6343 6599 6727 6983 8983 9451 10983 11951 8 4046 4682 6348 6602 6942 7026 9452 11952 6 2910 5582 6349 6603 8984 10984 10 2912 4052 4684 5583 6352 6606 6732 6984 9453 11953 10 4055 4685 6355 6607 6733 6943 6985 7027 8985 10985 8 3124 4058 4686 5499 6358 6608 9454 11954 6 3125 5500 6361 6611 8986 10986 10 4064 4688 6362 6612 6736 6944 6986 7028 9455 11955 12 2920 4070 4690 5584 6367 6615 6739 6987 8987 9456 10987 11956 10 3128 4076 4692 5503 6372 6618 6742 6988 9457 11957 6 6373 6619 6947 7029 8988 10988 8 4082 4694 6376 6622 6948 7030 9458 11958 10 3130 4085 4695 5504 6379 6623 6745 6989 8989 10989 10 2928 4088 4696 5585 6382 6624 6746 6990 9459 11959 6 2930 5586 6385 6627 8990 10990 8 3132 4094 4698 5505 6386 6628 9460 11960 12 4100 4700 6391 6631 6751 6951 6991 7031 8991 9461 10991 11961 8 2936 4106 4702 5587 6396 6634 9462 11962 6 3135 5508 6397 6635 8992 10992 10 3136 4112 4704 5509 6400 6638 6756 6992 9463 11963 10 2940 4115 4705 5588 6403 6639 6757 6993 8993 10993 8 4118 4706 6406 6640 6954 7032 9464 11964 6 6409 6643 6955 7033 8994 10994 10 2944 4124 4708 5589 6410 6644 6760 6994 9465 11965 12 3140 4130 4710 5512 6415 6647 6763 6995 8995 9466 10995 11966 10 4136 4712 6420 6650 6766 6958 6996 7034 9467 11967 6 2950 5590 6421 6651 8996 10996 8 2952 4142 4714 5591 6424 6654 9468 11968 10 4145 4715 6427 6655 6769 6959 6997 7035 8997 10997 10 3144 4148 4716 5515 6430 6656 6770 6998 9469 11969 6 3145 5516 6433 6659 8998 10998 8 4154 4718 6434 6660 6960 7036 9470 11970 12 2960 4160 4720 5592 6439 6663 6775 6999 8999 9471 10999 11971 8 3148 4166 4722 5519 6444 6666 9472 11972 6 6445 6667 6963 7037 9000 11000 10 4172 4724 6448 6670 6780 6964 7000 7038 9473 11973 10 3150 4175 4725 5520 6451 6671 6781 7001 9001 11001 8 2968 4178 4726 5593 6454 6672 9474 11974 6 2970 5594 6457 6675 9002 11002 10 3152 4184 4728 5521 6458 6676 6784 7002 9475 11975 12 4190 4730 6463 6679 6787 6967 7003 7039 9003 9476 11003 11976 10 2976 4196 4732 5595 6468 6682 6790 7004 9477 11977 6 3155 5524 6469 6683 9004 11004 8 3156 4202 4734 5525 6472 6686 9478 11978 10 2980 4205 4735 5596 6475 6687 6793 7005 9005 11005 10 4208 4736 6478 6688 6794 6970 7006 7040 9479 11979 6 6481 6691 6971 7041 9006 11006 8 2984 4214 4738 5597 6482 6692 9480 11980 12 3160 4220 4740 5528 6487 6695 6799 7007 9007 9481 11007 11981 8 4226 4742 6492 6698 6974 7042 9482 11982 6 2990 5598 6493 6699 9008 11008 10 2992 4232 4744 5599 6496 6702 6804 7008 9483 11983 10 4235 4745 6499 6703 6805 6975 7009 7043 9009 11009 8 3164 4238 4746 5531 6502 6704 9484 11984 6 3165 5532 6505 6707 9010 11010 10 4244 4748 6506 6708 6808 6976 7010 7044 9485 11985 12 3000 4250 4750 5600 6511 6711 6811 7011 9011 9486 11011 11986 10 3168 4256 4752 5535 6516 6714 6814 7012 9487 11987 6 6517 6715 6979 7045 9012 11012 8 4262 4754 6520 6718 6980 7046 9488 11988 10 3170 4265 4755 5536 6523 6719 6817 7013 9013 11013 10 3008 4268 4756 5601 6526 6720 6818 7014 9489 11989 6 3010 5602 6529 6723 9014 11014 8 3172 4274 4758 5537 6530 6724 9490 11990 12 4280 4760 6535 6727 6823 6983 7015 7047 9015 9491 11015 11991 8 3016 4286 4762 5603 6540 6730 9492 11992 6 3175 5540 6541 6731 9016 11016 10 3176 4292 4764 5541 6544 6734 6828 7016 9493 11993 10 3020 4295 4765 5604 6547 6735 6829 7017 9017 11017 8 4298 4766 6550 6736 6986 7048 9494 11994 6 6553 6739 6987 7049 9018 11018 10 3024 4304 4768 5605 6554 6740 6832 7018 9495 11995 12 3180 4310 4770 5544 6559 6743 6835 7019 9019 9496 11019 11996 10 4316 4772 6564 6746 6838 6990 7020 7050 9497 11997 6 3030 5606 6565 6747 9020 11020 8 3032 4322 4774 5607 6568 6750 9498 11998 10 4325 4775 6571 6751 6841 6991 7021 7051 9021 11021 10 3184 4328 4776 5547 6574 6752 6842 7022 9499 11999 6 3185 5548 6577 6755 9022 11022 8 4334 4778 6578 6756 6992 7052 9500 12000 12 3040 4340 4780 5608 6583 6759 6847 7023 9023 9501 11023 12001 8 3188 4346 4782 5551 6588 6762 9502 12002 6 6589 6763 6995 7053 9024 11024 10 4352 4784 6592 6766 6852 6996 7024 7054 9503 12003 10 3190 4355 4785 5552 6595 6767 6853 7025 9025 11025 8 3048 4358 4786 5609 6598 6768 9504 12004 6 3050 5610 6601 6771 9026 11026 10 3192 4364 4788 5553 6602 6772 6856 7026 9505 12005 12 4370 4790 6607 6775 6859 6999 7027 7055 9027 9506 11027 12006 10 3056 4376 4792 5611 6612 6778 6862 7028 9507 12007 6 3195 5556 6613 6779 9028 11028 8 3196 4382 4794 5557 6616 6782 9508 12008 10 3060 4385 4795 5612 6619 6783 6865 7029 9029 11029 10 4388 4796 6622 6784 6866 7002 7030 7056 9509 12009 6 6625 6787 7003 7057 9030 11030 8 3064 4394 4798 5613 6626 6788 9510 12010 12 3200 4400 4800 5560 6631 6791 6871 7031 9031 9511 11031 12011 8 4406 4802 6636 6794 7006 7058 9512 12012 6 3070 5614 6637 6795 9032 11032 10 3072 4412 4804 5615 6640 6798 6876 7032 9513 12013 10 4415 4805 6643 6799 6877 7007 7033 7059 9033 11033 8 3204 4418 4806 5563 6646 6800 9514 12014 6 3205 5564 6649 6803 9034 11034 10 4424 4808 6650 6804 6880 7008 7034 7060 9515 12015 12 3080 4430 4810 5616 6655 6807 6883 7035 9035 9516 11035 12016 10 3208 4436 4812 5567 6660 6810 6886 7036 9517 12017 6 6661 6811 7011 7061 9036 11036 8 4442 4814 6664 6814 7012 7062 9518 12018 10 3210 4445 4815 5568 6667 6815 6889 7037 9037 11037 10 3088 4448 4816 5617 6670 6816 6890 7038 9519 12019 6 3090 5618 6673 6819 9038 11038 8 3212 4454 4818 5569 6674 6820 9520 12020 12 4460 4820 6679 6823 6895 7015 7039 7063 9039 9521 11039 12021 8 3096 4466 4822 5619 6684 6826 9522 12022 6 3215 5572 6685 6827 9040 11040 10 3216 4472 4824 5573 6688 6830 6900 7040 9523 12023 10 3100 4475 4825 5620 6691 6831 6901 7041 9041 11041 8 4478 4826 6694 6832 7018 7064 9524 12024 6 6697 6835 7019 7065 9042 11042 10 3104 4484 4828 5621 6698 6836 6904 7042 9525 12025 12 3220 4490 4830 5576 6703 6839 6907 7043 9043 9526 11043 12026 10 4496 4832 6708 6842 6910 7022 7044 7066 9527 12027 6 3110 5622 6709 6843 9044 11044 8 3112 4502 4834 5623 6712 6846 9528 12028 10 4505 4835 6715 6847 6913 7023 7045 7067 9045 11045 10 3224 4508 4836 5579 6718 6848 6914 7046 9529 12029 6 3225 5580 6721 6851 9046 11046 8 4514 4838 6722 6852 7024 7068 9530 12030 12 3120 4520 4840 5624 6727 6855 6919 7047 9047 9531 11047 12031 8 3228 4526 4842 5583 6732 6858 9532 12032 6 6733 6859 7027 7069 9048 11048 10 4532 4844 6736 6862 6924 7028 7048 7070 9533 12033 10 3230 4535 4845 5584 6739 6863 6925 7049 9049 11049 8 3128 4538 4846 5625 6742 6864 9534 12034 6 3130 5626 6745 6867 9050 11050 10 3232 4544 4848 5585 6746 6868 6928 7050 9535 12035 12 4550 4850 6751 6871 6931 7031 7051 7071 9051 9536 11051 12036 10 3136 4556 4852 5627 6756 6874 6934 7052 9537 12037 6 3235 5588 6757 6875 9052 11052 8 3236 4562 4854 5589 6760 6878 9538 12038 10 3140 4565 4855 5628 6763 6879 6937 7053 9053 11053 10 4568 4856 6766 6880 6938 7034 7054 7072 9539 12039 6 6769 6883 7035 7073 9054 11054 8 3144 4574 4858 5629 6770 6884 9540 12040 12 3240 4580 4860 5592 6775 6887 6943 7055 9055 9541 11055 12041 8 4586 4862 6780 6890 7038 7074 9542 12042 6 3150 5630 6781 6891 9056 11056 10 3152 4592 4864 5631 6784 6894 6948 7056 9543 12043 10 4595 4865 6787 6895 6949 7039 7057 7075 9057 11057 8 3244 4598 4866 5595 6790 6896 9544 12044 6 3245 5596 6793 6899 9058 11058 10 4604 4868 6794 6900 6952 7040 7058 7076 9545 12045 12 3160 4610 4870 5632 6799 6903 6955 7059 9059 9546 11059 12046 10 3248 4616 4872 5599 6804 6906 6958 7060 9547 12047 6 6805 6907 7043 7077 9060 11060 8 4622 4874 6808 6910 7044 7078 9548 12048 10 3250 4625 4875 5600 6811 6911 6961 7061 9061 11061 10 3168 4628 4876 5633 6814 6912 6962 7062 9549 12049 6 3170 5634 6817 6915 9062 11062 8 3252 4634 4878 5601 6818 6916 9550 12050 12 4640 4880 6823 6919 6967 7047 7063 7079 9063 9551 11063 12051 8 3176 4646 4882 5635 6828 6922 9552 12052 6 3255 5604 6829 6923 9064 11064 10 3256 4652 4884 5605 6832 6926 6972 7064 9553 12053 10 3180 4655 4885 5636 6835 6927 6973 7065 9065 11065 8 4658 4886 6838 6928 7050 7080 9554 12054 6 6841 6931 7051 7081 9066 11066 10 3184 4664 4888 5637 6842 6932 6976 7066 9555 12055 12 3260 4670 4890 5608 6847 6935 6979 7067 9067 9556 11067 12056 10 4676 4892 6852 6938 6982 7054 7068 7082 9557 12057 6 3190 5638 6853 6939 9068 11068 8 3192 4682 4894 5639 6856 6942 9558 12058 10 4685 4895 6859 6943 6985 7055 7069 7083 9069 11069 10 3264 4688 4896 5611 6862 6944 6986 7070 9559 12059 6 3265 5612 6865 6947 9070 11070 8 4694 4898 6866 6948 7056 7084 9560 12060 12 3200 4700 4900 5640 6871 6951 6991 7071 9071 9561 11071 12061 8 3268 4706 4902 5615 6876 6954 9562 12062 6 6877 6955 7059 7085 9072 11072 10 4712 4904 6880 6958 6996 7060 7072 7086 9563 12063 10 3270 4715 4905 5616 6883 6959 6997 7073 9073 11073 8 3208 4718 4906 5641 6886 6960 9564 12064 6 3210 5642 6889 6963 9074 11074 10 3272 4724 4908 5617 6890 6964 7000 7074 9565 12065 12 4730 4910 6895 6967 7003 7063 7075 7087 9075 9566 11075 12066 10 3216 4736 4912 5643 6900 6970 7006 7076 9567 12067 6 3275 5620 6901 6971 9076 11076 8 3276 4742 4914 5621 6904 6974 9568 12068 10 3220 4745 4915 5644 6907 6975 7009 7077 9077 11077 10 4748 4916 6910 6976 7010 7066 7078 7088 9569 12069 6 6913 6979 7067 7089 9078 11078 8 3224 4754 4918 5645 6914 6980 9570 12070 12 3280 4760 4920 5624 6919 6983 7015 7079 9079 9571 11079 12071 8 4766 4922 6924 6986 7070 7090 9572 12072 6 3230 5646 6925 6987 9080 11080 10 3232 4772 4924 5647 6928 6990 7020 7080 9573 12073 10 4775 4925 6931 6991 7021 7071 7081 7091 9081 11081 8 3284 4778 4926 5627 6934 6992 9574 12074 6 3285 5628 6937 6995 9082 11082 10 4784 4928 6938 6996 7024 7072 7082 7092 9575 12075 12 3240 4790 4930 5648 6943 6999 7027 7083 9083 9576 11083 12076 10 3288 4796 4932 5631 6948 7002 7030 7084 9577 12077 6 6949 7003 7075 7093 9084 11084 8 4802 4934 6952 7006 7076 7094 9578 12078 10 3290 4805 4935 5632 6955 7007 7033 7085 9085 11085 10 3248 4808 4936 5649 6958 7008 7034 7086 9579 12079 6 3250 5650 6961 7011 9086 11086 8 3292 4814 4938 5633 6962 7012 9580 12080 12 4820 4940 6967 7015 7039 7079 7087 7095 9087 9581 11087 12081 8 3256 4826 4942 5651 6972 7018 9582 12082 6 3295 5636 6973 7019 9088 11088 10 3296 4832 4944 5637 6976 7022 7044 7088 9583 12083 10 3260 4835 4945 5652 6979 7023 7045 7089 9089 11089 8 4838 4946 6982 7024 7082 7096 9584 12084 6 6985 7027 7083 7097 9090 11090 10 3264 4844 4948 5653 6986 7028 7048 7090 9585 12085 12 3300 4850 4950 5640 6991 7031 7051 7091 9091 9586 11091 12086 10 4856 4952 6996 7034 7054 7086 7092 7098 9587 12087 6 3270 5654 6997 7035 9092 11092 8 3272 4862 4954 5655 7000 7038 9588 12088 10 4865 4955 7003 7039 7057 7087 7093 7099 9093 11093 10 3304 4868 4956 5643 7006 7040 7058 7094 9589 12089 6 3305 5644 7009 7043 9094 11094 8 4874 4958 7010 7044 7088 7100 9590 12090 12 3280 4880 4960 5656 7015 7047 7063 7095 9095 9591 11095 12091 8 3308 4886 4962 5647 7020 7050 9592 12092 6 7021 7051 7091 7101 9096 11096 10 4892 4964 7024 7054 7068 7092 7096 7102 9593 12093 10 3310 4895 4965 5648 7027 7055 7069 7097 9097 11097 8 3288 4898 4966 5657 7030 7056 9594 12094 6 3290 5658 7033 7059 9098 11098 10 3312 4904 4968 5649 7034 7060 7072 7098 9595 12095 12 4910 4970 7039 7063 7075 7095 7099 7103 9099 9596 11099 12096 10 3296 4916 4972 5659 7044 7066 7078 7100 9597 12097 6 3315 5652 7045 7067 9100 11100 8 3316 4922 4974 5653 7048 7070 9598 12098 10 3300 4925 4975 5660 7051 7071 7081 7101 9101 11101 10 4928 4976 7054 7072 7082 7098 7102 7104 9599 12099 6 7057 7075 7099 7105 9102 11102 8 3304 4934 4978 5661 7058 7076 9600 12100 12 3320 4940 4980 5656 7063 7079 7087 7103 9103 9601 11103 12101 8 4946 4982 7068 7082 7102 7106 9602 12102 6 3310 5662 7069 7083 9104 11104 10 3312 4952 4984 5663 7072 7086 7092 7104 9603 12103 10 4955 4985 7075 7087 7093 7103 7105 7107 9105 11105 8 3324 4958 4986 5659 7078 7088 9604 12104 6 3325 5660 7081 7091 9106 11106 10 4964 4988 7082 7092 7096 7104 7106 7108 9605 12105 12 3320 4970 4990 5664 7087 7095 7099 7107 9107 9606 11107 12106 10 3328 4976 4992 5663 7092 7098 7102 7108 9607 12107 6 7093 7099 7107 7109 9108 11108 8 4982 4994 7096 7102 7108 7110 9608 12108 10 3330 4985 4995 5664 7099 7103 7105 7109 9109 11109 10 3328 4988 4996 5665 7102 7104 7106 7110 9609 12109 6 3330 5666 7105 7107 9110 11110 8 3332 4994 4998 5665 7106 7108 9610 12110 5 5000 9111 9611 11111 12111 3 1 4 5 3 2 8 10 3 3 12 15 3 4 16 20 3 5 20 25 3 6 24 30 3 7 28 35 3 8 32 40 3 9 36 45 3 10 40 50 3 11 44 55 3 12 48 60 3 13 52 65 3 14 56 70 3 15 60 75 3 16 64 80 3 17 68 85 3 18 72 90 3 19 76 95 3 20 80 100 3 21 84 105 3 22 88 110 3 23 92 115 3 24 96 120 3 25 100 125 3 26 104 130 3 27 108 135 3 28 112 140 3 29 116 145 3 30 120 150 3 31 124 155 3 32 128 160 3 33 132 165 3 34 136 170 3 35 140 175 3 36 144 180 3 37 148 185 3 38 152 190 3 39 156 195 3 40 160 200 3 41 164 205 3 42 168 210 3 43 172 215 3 44 176 220 3 45 180 225 3 46 184 230 3 47 188 235 3 48 192 240 3 49 196 245 3 50 200 250 3 51 204 255 3 52 208 260 3 53 212 265 3 54 216 270 3 55 220 275 3 56 224 280 3 57 228 285 3 58 232 290 3 59 236 295 3 60 240 300 3 61 244 305 3 62 248 310 3 63 252 315 3 64 256 320 3 65 260 325 3 66 264 330 3 67 268 335 3 68 272 340 3 69 276 345 3 70 280 350 3 71 284 355 3 72 288 360 3 73 292 365 3 74 296 370 3 75 300 375 3 76 304 380 3 77 308 385 3 78 312 390 3 79 316 395 3 80 320 400 3 81 324 405 3 82 328 410 3 83 332 415 3 84 336 420 3 85 340 425 3 86 344 430 3 87 348 435 3 88 352 440 3 89 356 445 3 90 360 450 3 91 364 455 3 92 368 460 3 93 372 465 3 94 376 470 3 95 380 475 3 96 384 480 3 97 388 485 3 98 392 490 3 99 396 495 3 100 400 500 3 101 404 505 3 102 408 510 3 103 412 515 3 104 416 520 3 105 420 525 3 106 424 530 3 107 428 535 3 108 432 540 3 109 436 545 3 110 440 550 3 111 444 555 3 112 448 560 3 113 452 565 3 114 456 570 3 115 460 575 3 116 464 580 3 117 468 585 3 118 472 590 3 119 476 595 3 120 480 600 3 121 484 605 3 122 488 610 3 123 492 615 3 124 496 620 3 125 500 625 3 126 504 630 3 127 508 635 3 128 512 640 3 129 516 645 3 130 520 650 3 131 524 655 3 132 528 660 3 133 532 665 3 134 536 670 3 135 540 675 3 136 544 680 3 137 548 685 3 138 552 690 3 139 556 695 3 140 560 700 3 141 564 705 3 142 568 710 3 143 572 715 3 144 576 720 3 145 580 725 3 146 584 730 3 147 588 735 3 148 592 740 3 149 596 745 3 150 600 750 3 151 604 755 3 152 608 760 3 153 612 765 3 154 616 770 3 155 620 775 3 156 624 780 3 157 628 785 3 158 632 790 3 159 636 795 3 160 640 800 3 161 644 805 3 162 648 810 3 163 652 815 3 164 656 820 3 165 660 825 3 166 664 830 3 167 668 835 3 168 672 840 3 169 676 845 3 170 680 850 3 171 684 855 3 172 688 860 3 173 692 865 3 174 696 870 3 175 700 875 3 176 704 880 3 177 708 885 3 178 712 890 3 179 716 895 3 180 720 900 3 181 724 905 3 182 728 910 3 183 732 915 3 184 736 920 3 185 740 925 3 186 744 930 3 187 748 935 3 188 752 940 3 189 756 945 3 190 760 950 3 191 764 955 3 192 768 960 3 193 772 965 3 194 776 970 3 195 780 975 3 196 784 980 3 197 788 985 3 198 792 990 3 199 796 995 3 200 800 1000 3 201 804 1005 3 202 808 1010 3 203 812 1015 3 204 816 1020 3 205 820 1025 3 206 824 1030 3 207 828 1035 3 208 832 1040 3 209 836 1045 3 210 840 1050 3 211 844 1055 3 212 848 1060 3 213 852 1065 3 214 856 1070 3 215 860 1075 3 216 864 1080 3 217 868 1085 3 218 872 1090 3 219 876 1095 3 220 880 1100 3 221 884 1105 3 222 888 1110 3 223 892 1115 3 224 896 1120 3 225 900 1125 3 226 904 1130 3 227 908 1135 3 228 912 1140 3 229 916 1145 3 230 920 1150 3 231 924 1155 3 232 928 1160 3 233 932 1165 3 234 936 1170 3 235 940 1175 3 236 944 1180 3 237 948 1185 3 238 952 1190 3 239 956 1195 3 240 960 1200 3 241 964 1205 3 242 968 1210 3 243 972 1215 3 244 976 1220 3 245 980 1225 3 246 984 1230 3 247 988 1235 3 248 992 1240 3 249 996 1245 3 250 1000 1250 3 251 1004 1255 3 252 1008 1260 3 253 1012 1265 3 254 1016 1270 3 255 1020 1275 3 256 1024 1280 3 257 1028 1285 3 258 1032 1290 3 259 1036 1295 3 260 1040 1300 3 261 1044 1305 3 262 1048 1310 3 263 1052 1315 3 264 1056 1320 3 265 1060 1325 3 266 1064 1330 3 267 1068 1335 3 268 1072 1340 3 269 1076 1345 3 270 1080 1350 3 271 1084 1355 3 272 1088 1360 3 273 1092 1365 3 274 1096 1370 3 275 1100 1375 3 276 1104 1380 3 277 1108 1385 3 278 1112 1390 3 279 1116 1395 3 280 1120 1400 3 281 1124 1405 3 282 1128 1410 3 283 1132 1415 3 284 1136 1420 3 285 1140 1425 3 286 1144 1430 3 287 1148 1435 3 288 1152 1440 3 289 1156 1445 3 290 1160 1450 3 291 1164 1455 3 292 1168 1460 3 293 1172 1465 3 294 1176 1470 3 295 1180 1475 3 296 1184 1480 3 297 1188 1485 3 298 1192 1490 3 299 1196 1495 3 300 1200 1500 3 301 1204 1505 3 302 1208 1510 3 303 1212 1515 3 304 1216 1520 3 305 1220 1525 3 306 1224 1530 3 307 1228 1535 3 308 1232 1540 3 309 1236 1545 3 310 1240 1550 3 311 1244 1555 3 312 1248 1560 3 313 1252 1565 3 314 1256 1570 3 315 1260 1575 3 316 1264 1580 3 317 1268 1585 3 318 1272 1590 3 319 1276 1595 3 320 1280 1600 3 321 1284 1605 3 322 1288 1610 3 323 1292 1615 3 324 1296 1620 3 325 1300 1625 3 326 1304 1630 3 327 1308 1635 3 328 1312 1640 3 329 1316 1645 3 330 1320 1650 3 331 1324 1655 3 332 1328 1660 3 333 1332 1665 3 334 1336 1670 3 335 1340 1675 3 336 1344 1680 3 337 1348 1685 3 338 1352 1690 3 339 1356 1695 3 340 1360 1700 3 341 1364 1705 3 342 1368 1710 3 343 1372 1715 3 344 1376 1720 3 345 1380 1725 3 346 1384 1730 3 347 1388 1735 3 348 1392 1740 3 349 1396 1745 3 350 1400 1750 3 351 1404 1755 3 352 1408 1760 3 353 1412 1765 3 354 1416 1770 3 355 1420 1775 3 356 1424 1780 3 357 1428 1785 3 358 1432 1790 3 359 1436 1795 3 360 1440 1800 3 361 1444 1805 3 362 1448 1810 3 363 1452 1815 3 364 1456 1820 3 365 1460 1825 3 366 1464 1830 3 367 1468 1835 3 368 1472 1840 3 369 1476 1845 3 370 1480 1850 3 371 1484 1855 3 372 1488 1860 3 373 1492 1865 3 374 1496 1870 3 375 1500 1875 3 376 1504 1880 3 377 1508 1885 3 378 1512 1890 3 379 1516 1895 3 380 1520 1900 3 381 1524 1905 3 382 1528 1910 3 383 1532 1915 3 384 1536 1920 3 385 1540 1925 3 386 1544 1930 3 387 1548 1935 3 388 1552 1940 3 389 1556 1945 3 390 1560 1950 3 391 1564 1955 3 392 1568 1960 3 393 1572 1965 3 394 1576 1970 3 395 1580 1975 3 396 1584 1980 3 397 1588 1985 3 398 1592 1990 3 399 1596 1995 3 400 1600 2000 3 401 1604 2005 3 402 1608 2010 3 403 1612 2015 3 404 1616 2020 3 405 1620 2025 3 406 1624 2030 3 407 1628 2035 3 408 1632 2040 3 409 1636 2045 3 410 1640 2050 3 411 1644 2055 3 412 1648 2060 3 413 1652 2065 3 414 1656 2070 3 415 1660 2075 3 416 1664 2080 3 417 1668 2085 3 418 1672 2090 3 419 1676 2095 3 420 1680 2100 3 421 1684 2105 3 422 1688 2110 3 423 1692 2115 3 424 1696 2120 3 425 1700 2125 3 426 1704 2130 3 427 1708 2135 3 428 1712 2140 3 429 1716 2145 3 430 1720 2150 3 431 1724 2155 3 432 1728 2160 3 433 1732 2165 3 434 1736 2170 3 435 1740 2175 3 436 1744 2180 3 437 1748 2185 3 438 1752 2190 3 439 1756 2195 3 440 1760 2200 3 441 1764 2205 3 442 1768 2210 3 443 1772 2215 3 444 1776 2220 3 445 1780 2225 3 446 1784 2230 3 447 1788 2235 3 448 1792 2240 3 449 1796 2245 3 450 1800 2250 3 451 1804 2255 3 452 1808 2260 3 453 1812 2265 3 454 1816 2270 3 455 1820 2275 3 456 1824 2280 3 457 1828 2285 3 458 1832 2290 3 459 1836 2295 3 460 1840 2300 3 461 1844 2305 3 462 1848 2310 3 463 1852 2315 3 464 1856 2320 3 465 1860 2325 3 466 1864 2330 3 467 1868 2335 3 468 1872 2340 3 469 1876 2345 3 470 1880 2350 3 471 1884 2355 3 472 1888 2360 3 473 1892 2365 3 474 1896 2370 3 475 1900 2375 3 476 1904 2380 3 477 1908 2385 3 478 1912 2390 3 479 1916 2395 3 480 1920 2400 3 481 1924 2405 3 482 1928 2410 3 483 1932 2415 3 484 1936 2420 3 485 1940 2425 3 486 1944 2430 3 487 1948 2435 3 488 1952 2440 3 489 1956 2445 3 490 1960 2450 3 491 1964 2455 3 492 1968 2460 3 493 1972 2465 3 494 1976 2470 3 495 1980 2475 3 496 1984 2480 3 497 1988 2485 3 498 1992 2490 3 499 1996 2495 3 500 2000 2500 3 501 2004 2505 3 502 2008 2510 3 503 2012 2515 3 504 2016 2520 3 505 2020 2525 3 506 2024 2530 3 507 2028 2535 3 508 2032 2540 3 509 2036 2545 3 510 2040 2550 3 511 2044 2555 3 512 2048 2560 3 513 2052 2565 3 514 2056 2570 3 515 2060 2575 3 516 2064 2580 3 517 2068 2585 3 518 2072 2590 3 519 2076 2595 3 520 2080 2600 3 521 2084 2605 3 522 2088 2610 3 523 2092 2615 3 524 2096 2620 3 525 2100 2625 3 526 2104 2630 3 527 2108 2635 3 528 2112 2640 3 529 2116 2645 3 530 2120 2650 3 531 2124 2655 3 532 2128 2660 3 533 2132 2665 3 534 2136 2670 3 535 2140 2675 3 536 2144 2680 3 537 2148 2685 3 538 2152 2690 3 539 2156 2695 3 540 2160 2700 3 541 2164 2705 3 542 2168 2710 3 543 2172 2715 3 544 2176 2720 3 545 2180 2725 3 546 2184 2730 3 547 2188 2735 3 548 2192 2740 3 549 2196 2745 3 550 2200 2750 3 551 2204 2755 3 552 2208 2760 3 553 2212 2765 3 554 2216 2770 3 555 2220 2775 3 556 2224 2780 3 557 2228 2785 3 558 2232 2790 3 559 2236 2795 3 560 2240 2800 3 561 2244 2805 3 562 2248 2810 3 563 2252 2815 3 564 2256 2820 3 565 2260 2825 3 566 2264 2830 3 567 2268 2835 3 568 2272 2840 3 569 2276 2845 3 570 2280 2850 3 571 2284 2855 3 572 2288 2860 3 573 2292 2865 3 574 2296 2870 3 575 2300 2875 3 576 2304 2880 3 577 2308 2885 3 578 2312 2890 3 579 2316 2895 3 580 2320 2900 3 581 2324 2905 3 582 2328 2910 3 583 2332 2915 3 584 2336 2920 3 585 2340 2925 3 586 2344 2930 3 587 2348 2935 3 588 2352 2940 3 589 2356 2945 3 590 2360 2950 3 591 2364 2955 3 592 2368 2960 3 593 2372 2965 3 594 2376 2970 3 595 2380 2975 3 596 2384 2980 3 597 2388 2985 3 598 2392 2990 3 599 2396 2995 3 600 2400 3000 3 601 2404 3005 3 602 2408 3010 3 603 2412 3015 3 604 2416 3020 3 605 2420 3025 3 606 2424 3030 3 607 2428 3035 3 608 2432 3040 3 609 2436 3045 3 610 2440 3050 3 611 2444 3055 3 612 2448 3060 3 613 2452 3065 3 614 2456 3070 3 615 2460 3075 3 616 2464 3080 3 617 2468 3085 3 618 2472 3090 3 619 2476 3095 3 620 2480 3100 3 621 2484 3105 3 622 2488 3110 3 623 2492 3115 3 624 2496 3120 3 625 2500 3125 3 626 2504 3130 3 627 2508 3135 3 628 2512 3140 3 629 2516 3145 3 630 2520 3150 3 631 2524 3155 3 632 2528 3160 3 633 2532 3165 3 634 2536 3170 3 635 2540 3175 3 636 2544 3180 3 637 2548 3185 3 638 2552 3190 3 639 2556 3195 3 640 2560 3200 3 641 2564 3205 3 642 2568 3210 3 643 2572 3215 3 644 2576 3220 3 645 2580 3225 3 646 2584 3230 3 647 2588 3235 3 648 2592 3240 3 649 2596 3245 3 650 2600 3250 3 651 2604 3255 3 652 2608 3260 3 653 2612 3265 3 654 2616 3270 3 655 2620 3275 3 656 2624 3280 3 657 2628 3285 3 658 2632 3290 3 659 2636 3295 3 660 2640 3300 3 661 2644 3305 3 662 2648 3310 3 663 2652 3315 3 664 2656 3320 3 665 2660 3325 3 666 2664 3330 3 667 2668 3335 3 668 2672 3340 3 669 2676 3345 3 670 2680 3350 3 671 2684 3355 3 672 2688 3360 3 673 2692 3365 3 674 2696 3370 3 675 2700 3375 3 676 2704 3380 3 677 2708 3385 3 678 2712 3390 3 679 2716 3395 3 680 2720 3400 3 681 2724 3405 3 682 2728 3410 3 683 2732 3415 3 684 2736 3420 3 685 2740 3425 3 686 2744 3430 3 687 2748 3435 3 688 2752 3440 3 689 2756 3445 3 690 2760 3450 3 691 2764 3455 3 692 2768 3460 3 693 2772 3465 3 694 2776 3470 3 695 2780 3475 3 696 2784 3480 3 697 2788 3485 3 698 2792 3490 3 699 2796 3495 3 700 2800 3500 3 701 2804 3505 3 702 2808 3510 3 703 2812 3515 3 704 2816 3520 3 705 2820 3525 3 706 2824 3530 3 707 2828 3535 3 708 2832 3540 3 709 2836 3545 3 710 2840 3550 3 711 2844 3555 3 712 2848 3560 3 713 2852 3565 3 714 2856 3570 3 715 2860 3575 3 716 2864 3580 3 717 2868 3585 3 718 2872 3590 3 719 2876 3595 3 720 2880 3600 3 721 2884 3605 3 722 2888 3610 3 723 2892 3615 3 724 2896 3620 3 725 2900 3625 3 726 2904 3630 3 727 2908 3635 3 728 2912 3640 3 729 2916 3645 3 730 2920 3650 3 731 2924 3655 3 732 2928 3660 3 733 2932 3665 3 734 2936 3670 3 735 2940 3675 3 736 2944 3680 3 737 2948 3685 3 738 2952 3690 3 739 2956 3695 3 740 2960 3700 3 741 2964 3705 3 742 2968 3710 3 743 2972 3715 3 744 2976 3720 3 745 2980 3725 3 746 2984 3730 3 747 2988 3735 3 748 2992 3740 3 749 2996 3745 3 750 3000 3750 3 751 3004 3755 3 752 3008 3760 3 753 3012 3765 3 754 3016 3770 3 755 3020 3775 3 756 3024 3780 3 757 3028 3785 3 758 3032 3790 3 759 3036 3795 3 760 3040 3800 3 761 3044 3805 3 762 3048 3810 3 763 3052 3815 3 764 3056 3820 3 765 3060 3825 3 766 3064 3830 3 767 3068 3835 3 768 3072 3840 3 769 3076 3845 3 770 3080 3850 3 771 3084 3855 3 772 3088 3860 3 773 3092 3865 3 774 3096 3870 3 775 3100 3875 3 776 3104 3880 3 777 3108 3885 3 778 3112 3890 3 779 3116 3895 3 780 3120 3900 3 781 3124 3905 3 782 3128 3910 3 783 3132 3915 3 784 3136 3920 3 785 3140 3925 3 786 3144 3930 3 787 3148 3935 3 788 3152 3940 3 789 3156 3945 3 790 3160 3950 3 791 3164 3955 3 792 3168 3960 3 793 3172 3965 3 794 3176 3970 3 795 3180 3975 3 796 3184 3980 3 797 3188 3985 3 798 3192 3990 3 799 3196 3995 3 800 3200 4000 3 801 3204 4005 3 802 3208 4010 3 803 3212 4015 3 804 3216 4020 3 805 3220 4025 3 806 3224 4030 3 807 3228 4035 3 808 3232 4040 3 809 3236 4045 3 810 3240 4050 3 811 3244 4055 3 812 3248 4060 3 813 3252 4065 3 814 3256 4070 3 815 3260 4075 3 816 3264 4080 3 817 3268 4085 3 818 3272 4090 3 819 3276 4095 3 820 3280 4100 3 821 3284 4105 3 822 3288 4110 3 823 3292 4115 3 824 3296 4120 3 825 3300 4125 3 826 3304 4130 3 827 3308 4135 3 828 3312 4140 3 829 3316 4145 3 830 3320 4150 3 831 3324 4155 3 832 3328 4160 3 833 3332 4165 3 834 3336 4170 3 835 3340 4175 3 836 3344 4180 3 837 3348 4185 3 838 3352 4190 3 839 3356 4195 3 840 3360 4200 3 841 3364 4205 3 842 3368 4210 3 843 3372 4215 3 844 3376 4220 3 845 3380 4225 3 846 3384 4230 3 847 3388 4235 3 848 3392 4240 3 849 3396 4245 3 850 3400 4250 3 851 3404 4255 3 852 3408 4260 3 853 3412 4265 3 854 3416 4270 3 855 3420 4275 3 856 3424 4280 3 857 3428 4285 3 858 3432 4290 3 859 3436 4295 3 860 3440 4300 3 861 3444 4305 3 862 3448 4310 3 863 3452 4315 3 864 3456 4320 3 865 3460 4325 3 866 3464 4330 3 867 3468 4335 3 868 3472 4340 3 869 3476 4345 3 870 3480 4350 3 871 3484 4355 3 872 3488 4360 3 873 3492 4365 3 874 3496 4370 3 875 3500 4375 3 876 3504 4380 3 877 3508 4385 3 878 3512 4390 3 879 3516 4395 3 880 3520 4400 3 881 3524 4405 3 882 3528 4410 3 883 3532 4415 3 884 3536 4420 3 885 3540 4425 3 886 3544 4430 3 887 3548 4435 3 888 3552 4440 3 889 3556 4445 3 890 3560 4450 3 891 3564 4455 3 892 3568 4460 3 893 3572 4465 3 894 3576 4470 3 895 3580 4475 3 896 3584 4480 3 897 3588 4485 3 898 3592 4490 3 899 3596 4495 3 900 3600 4500 3 901 3604 4505 3 902 3608 4510 3 903 3612 4515 3 904 3616 4520 3 905 3620 4525 3 906 3624 4530 3 907 3628 4535 3 908 3632 4540 3 909 3636 4545 3 910 3640 4550 3 911 3644 4555 3 912 3648 4560 3 913 3652 4565 3 914 3656 4570 3 915 3660 4575 3 916 3664 4580 3 917 3668 4585 3 918 3672 4590 3 919 3676 4595 3 920 3680 4600 3 921 3684 4605 3 922 3688 4610 3 923 3692 4615 3 924 3696 4620 3 925 3700 4625 3 926 3704 4630 3 927 3708 4635 3 928 3712 4640 3 929 3716 4645 3 930 3720 4650 3 931 3724 4655 3 932 3728 4660 3 933 3732 4665 3 934 3736 4670 3 935 3740 4675 3 936 3744 4680 3 937 3748 4685 3 938 3752 4690 3 939 3756 4695 3 940 3760 4700 3 941 3764 4705 3 942 3768 4710 3 943 3772 4715 3 944 3776 4720 3 945 3780 4725 3 946 3784 4730 3 947 3788 4735 3 948 3792 4740 3 949 3796 4745 3 950 3800 4750 3 951 3804 4755 3 952 3808 4760 3 953 3812 4765 3 954 3816 4770 3 955 3820 4775 3 956 3824 4780 3 957 3828 4785 3 958 3832 4790 3 959 3836 4795 3 960 3840 4800 3 961 3844 4805 3 962 3848 4810 3 963 3852 4815 3 964 3856 4820 3 965 3860 4825 3 966 3864 4830 3 967 3868 4835 3 968 3872 4840 3 969 3876 4845 3 970 3880 4850 3 971 3884 4855 3 972 3888 4860 3 973 3892 4865 3 974 3896 4870 3 975 3900 4875 3 976 3904 4880 3 977 3908 4885 3 978 3912 4890 3 979 3916 4895 3 980 3920 4900 3 981 3924 4905 3 982 3928 4910 3 983 3932 4915 3 984 3936 4920 3 985 3940 4925 3 986 3944 4930 3 987 3948 4935 3 988 3952 4940 3 989 3956 4945 3 990 3960 4950 3 991 3964 4955 3 992 3968 4960 3 993 3972 4965 3 994 3976 4970 3 995 3980 4975 3 996 3984 4980 3 997 3988 4985 3 998 3992 4990 3 999 3996 4995 3 1000 4000 5000 3 1001 4004 5002 3 1002 4008 5004 3 1003 4012 5006 3 1004 4016 5008 3 1005 4020 5010 3 1006 4024 5012 3 1007 4028 5014 3 1008 4032 5016 3 1009 4036 5018 3 1010 4040 5020 3 1011 4044 5022 3 1012 4048 5024 3 1013 4052 5026 3 1014 4056 5028 3 1015 4060 5030 3 1016 4064 5032 3 1017 4068 5034 3 1018 4072 5036 3 1019 4076 5038 3 1020 4080 5040 3 1021 4084 5042 3 1022 4088 5044 3 1023 4092 5046 3 1024 4096 5048 3 1025 4100 5050 3 1026 4104 5052 3 1027 4108 5054 3 1028 4112 5056 3 1029 4116 5058 3 1030 4120 5060 3 1031 4124 5062 3 1032 4128 5064 3 1033 4132 5066 3 1034 4136 5068 3 1035 4140 5070 3 1036 4144 5072 3 1037 4148 5074 3 1038 4152 5076 3 1039 4156 5078 3 1040 4160 5080 3 1041 4164 5082 3 1042 4168 5084 3 1043 4172 5086 3 1044 4176 5088 3 1045 4180 5090 3 1046 4184 5092 3 1047 4188 5094 3 1048 4192 5096 3 1049 4196 5098 3 1050 4200 5100 3 1051 4204 5102 3 1052 4208 5104 3 1053 4212 5106 3 1054 4216 5108 3 1055 4220 5110 3 1056 4224 5112 3 1057 4228 5114 3 1058 4232 5116 3 1059 4236 5118 3 1060 4240 5120 3 1061 4244 5122 3 1062 4248 5124 3 1063 4252 5126 3 1064 4256 5128 3 1065 4260 5130 3 1066 4264 5132 3 1067 4268 5134 3 1068 4272 5136 3 1069 4276 5138 3 1070 4280 5140 3 1071 4284 5142 3 1072 4288 5144 3 1073 4292 5146 3 1074 4296 5148 3 1075 4300 5150 3 1076 4304 5152 3 1077 4308 5154 3 1078 4312 5156 3 1079 4316 5158 3 1080 4320 5160 3 1081 4324 5162 3 1082 4328 5164 3 1083 4332 5166 3 1084 4336 5168 3 1085 4340 5170 3 1086 4344 5172 3 1087 4348 5174 3 1088 4352 5176 3 1089 4356 5178 3 1090 4360 5180 3 1091 4364 5182 3 1092 4368 5184 3 1093 4372 5186 3 1094 4376 5188 3 1095 4380 5190 3 1096 4384 5192 3 1097 4388 5194 3 1098 4392 5196 3 1099 4396 5198 3 1100 4400 5200 3 1101 4404 5202 3 1102 4408 5204 3 1103 4412 5206 3 1104 4416 5208 3 1105 4420 5210 3 1106 4424 5212 3 1107 4428 5214 3 1108 4432 5216 3 1109 4436 5218 3 1110 4440 5220 3 1111 4444 5222 3 1112 4448 5224 3 1113 4452 5226 3 1114 4456 5228 3 1115 4460 5230 3 1116 4464 5232 3 1117 4468 5234 3 1118 4472 5236 3 1119 4476 5238 3 1120 4480 5240 3 1121 4484 5242 3 1122 4488 5244 3 1123 4492 5246 3 1124 4496 5248 3 1125 4500 5250 3 1126 4504 5252 3 1127 4508 5254 3 1128 4512 5256 3 1129 4516 5258 3 1130 4520 5260 3 1131 4524 5262 3 1132 4528 5264 3 1133 4532 5266 3 1134 4536 5268 3 1135 4540 5270 3 1136 4544 5272 3 1137 4548 5274 3 1138 4552 5276 3 1139 4556 5278 3 1140 4560 5280 3 1141 4564 5282 3 1142 4568 5284 3 1143 4572 5286 3 1144 4576 5288 3 1145 4580 5290 3 1146 4584 5292 3 1147 4588 5294 3 1148 4592 5296 3 1149 4596 5298 3 1150 4600 5300 3 1151 4604 5302 3 1152 4608 5304 3 1153 4612 5306 3 1154 4616 5308 3 1155 4620 5310 3 1156 4624 5312 3 1157 4628 5314 3 1158 4632 5316 3 1159 4636 5318 3 1160 4640 5320 3 1161 4644 5322 3 1162 4648 5324 3 1163 4652 5326 3 1164 4656 5328 3 1165 4660 5330 3 1166 4664 5332 3 1167 4668 5334 3 1168 4672 5336 3 1169 4676 5338 3 1170 4680 5340 3 1171 4684 5342 3 1172 4688 5344 3 1173 4692 5346 3 1174 4696 5348 3 1175 4700 5350 3 1176 4704 5352 3 1177 4708 5354 3 1178 4712 5356 3 1179 4716 5358 3 1180 4720 5360 3 1181 4724 5362 3 1182 4728 5364 3 1183 4732 5366 3 1184 4736 5368 3 1185 4740 5370 3 1186 4744 5372 3 1187 4748 5374 3 1188 4752 5376 3 1189 4756 5378 3 1190 4760 5380 3 1191 4764 5382 3 1192 4768 5384 3 1193 4772 5386 3 1194 4776 5388 3 1195 4780 5390 3 1196 4784 5392 3 1197 4788 5394 3 1198 4792 5396 3 1199 4796 5398 3 1200 4800 5400 3 1201 4804 5402 3 1202 4808 5404 3 1203 4812 5406 3 1204 4816 5408 3 1205 4820 5410 3 1206 4824 5412 3 1207 4828 5414 3 1208 4832 5416 3 1209 4836 5418 3 1210 4840 5420 3 1211 4844 5422 3 1212 4848 5424 3 1213 4852 5426 3 1214 4856 5428 3 1215 4860 5430 3 1216 4864 5432 3 1217 4868 5434 3 1218 4872 5436 3 1219 4876 5438 3 1220 4880 5440 3 1221 4884 5442 3 1222 4888 5444 3 1223 4892 5446 3 1224 4896 5448 3 1225 4900 5450 3 1226 4904 5452 3 1227 4908 5454 3 1228 4912 5456 3 1229 4916 5458 3 1230 4920 5460 3 1231 4924 5462 3 1232 4928 5464 3 1233 4932 5466 3 1234 4936 5468 3 1235 4940 5470 3 1236 4944 5472 3 1237 4948 5474 3 1238 4952 5476 3 1239 4956 5478 3 1240 4960 5480 3 1241 4964 5482 3 1242 4968 5484 3 1243 4972 5486 3 1244 4976 5488 3 1245 4980 5490 3 1246 4984 5492 3 1247 4988 5494 3 1248 4992 5496 3 1249 4996 5498 3 1250 5000 5500 3 1251 5001 5502 3 1252 5003 5504 3 1253 5005 5506 3 1254 5007 5508 3 1255 5008 5510 3 1256 5009 5512 3 1257 5011 5514 3 1258 5013 5516 3 1259 5015 5518 3 1260 5016 5520 3 1261 5017 5522 3 1262 5019 5524 3 1263 5021 5526 3 1264 5023 5528 3 1265 5024 5530 3 1266 5025 5532 3 1267 5027 5534 3 1268 5029 5536 3 1269 5031 5538 3 1270 5032 5540 3 1271 5033 5542 3 1272 5035 5544 3 1273 5037 5546 3 1274 5039 5548 3 1275 5040 5550 3 1276 5041 5552 3 1277 5043 5554 3 1278 5045 5556 3 1279 5047 5558 3 1280 5048 5560 3 1281 5049 5562 3 1282 5051 5564 3 1283 5053 5566 3 1284 5055 5568 3 1285 5056 5570 3 1286 5057 5572 3 1287 5059 5574 3 1288 5061 5576 3 1289 5063 5578 3 1290 5064 5580 3 1291 5065 5582 3 1292 5067 5584 3 1293 5069 5586 3 1294 5071 5588 3 1295 5072 5590 3 1296 5073 5592 3 1297 5075 5594 3 1298 5077 5596 3 1299 5079 5598 3 1300 5080 5600 3 1301 5081 5602 3 1302 5083 5604 3 1303 5085 5606 3 1304 5087 5608 3 1305 5088 5610 3 1306 5089 5612 3 1307 5091 5614 3 1308 5093 5616 3 1309 5095 5618 3 1310 5096 5620 3 1311 5097 5622 3 1312 5099 5624 3 1313 5101 5626 3 1314 5103 5628 3 1315 5104 5630 3 1316 5105 5632 3 1317 5107 5634 3 1318 5109 5636 3 1319 5111 5638 3 1320 5112 5640 3 1321 5113 5642 3 1322 5115 5644 3 1323 5117 5646 3 1324 5119 5648 3 1325 5120 5650 3 1326 5121 5652 3 1327 5123 5654 3 1328 5125 5656 3 1329 5127 5658 3 1330 5128 5660 3 1331 5129 5662 3 1332 5131 5664 3 1333 5133 5666 3 1334 5135 5669 3 1335 5136 5671 3 1336 5137 5673 3 1337 5139 5676 3 1338 5141 5679 3 1339 5143 5682 3 1340 5144 5685 3 1341 5145 5687 3 1342 5147 5689 3 1343 5149 5692 3 1344 5151 5695 3 1345 5152 5698 3 1346 5153 5701 3 1347 5155 5703 3 1348 5157 5705 3 1349 5159 5708 3 1350 5160 5711 3 1351 5161 5714 3 1352 5163 5717 3 1353 5165 5719 3 1354 5167 5721 3 1355 5168 5724 3 1356 5169 5727 3 1357 5171 5730 3 1358 5173 5733 3 1359 5175 5735 3 1360 5176 5737 3 1361 5177 5740 3 1362 5179 5743 3 1363 5181 5746 3 1364 5183 5749 3 1365 5184 5751 3 1366 5185 5753 3 1367 5187 5756 3 1368 5189 5759 3 1369 5191 5762 3 1370 5192 5765 3 1371 5193 5767 3 1372 5195 5769 3 1373 5197 5772 3 1374 5199 5775 3 1375 5200 5778 3 1376 5201 5781 3 1377 5203 5783 3 1378 5205 5785 3 1379 5207 5788 3 1380 5208 5791 3 1381 5209 5794 3 1382 5211 5797 3 1383 5213 5799 3 1384 5215 5801 3 1385 5216 5804 3 1386 5217 5807 3 1387 5219 5810 3 1388 5221 5813 3 1389 5223 5815 3 1390 5224 5817 3 1391 5225 5820 3 1392 5227 5823 3 1393 5229 5826 3 1394 5231 5829 3 1395 5232 5831 3 1396 5233 5833 3 1397 5235 5836 3 1398 5237 5839 3 1399 5239 5842 3 1400 5240 5845 3 1401 5241 5847 3 1402 5243 5849 3 1403 5245 5852 3 1404 5247 5855 3 1405 5248 5858 3 1406 5249 5861 3 1407 5251 5863 3 1408 5253 5865 3 1409 5255 5868 3 1410 5256 5871 3 1411 5257 5874 3 1412 5259 5877 3 1413 5261 5879 3 1414 5263 5881 3 1415 5264 5884 3 1416 5265 5887 3 1417 5267 5890 3 1418 5269 5893 3 1419 5271 5895 3 1420 5272 5897 3 1421 5273 5900 3 1422 5275 5903 3 1423 5277 5906 3 1424 5279 5909 3 1425 5280 5911 3 1426 5281 5913 3 1427 5283 5916 3 1428 5285 5919 3 1429 5287 5922 3 1430 5288 5925 3 1431 5289 5927 3 1432 5291 5929 3 1433 5293 5932 3 1434 5295 5935 3 1435 5296 5938 3 1436 5297 5941 3 1437 5299 5943 3 1438 5301 5945 3 1439 5303 5948 3 1440 5304 5951 3 1441 5305 5954 3 1442 5307 5957 3 1443 5309 5959 3 1444 5311 5961 3 1445 5312 5964 3 1446 5313 5967 3 1447 5315 5970 3 1448 5317 5973 3 1449 5319 5975 3 1450 5320 5977 3 1451 5321 5980 3 1452 5323 5983 3 1453 5325 5986 3 1454 5327 5989 3 1455 5328 5991 3 1456 5329 5993 3 1457 5331 5996 3 1458 5333 5999 3 1459 5335 6002 3 1460 5336 6005 3 1461 5337 6007 3 1462 5339 6009 3 1463 5341 6012 3 1464 5343 6015 3 1465 5344 6018 3 1466 5345 6021 3 1467 5347 6023 3 1468 5349 6025 3 1469 5351 6028 3 1470 5352 6031 3 1471 5353 6034 3 1472 5355 6037 3 1473 5357 6039 3 1474 5359 6041 3 1475 5360 6044 3 1476 5361 6047 3 1477 5363 6050 3 1478 5365 6053 3 1479 5367 6055 3 1480 5368 6057 3 1481 5369 6060 3 1482 5371 6063 3 1483 5373 6066 3 1484 5375 6069 3 1485 5376 6071 3 1486 5377 6073 3 1487 5379 6076 3 1488 5381 6079 3 1489 5383 6082 3 1490 5384 6085 3 1491 5385 6087 3 1492 5387 6089 3 1493 5389 6092 3 1494 5391 6095 3 1495 5392 6098 3 1496 5393 6101 3 1497 5395 6103 3 1498 5397 6105 3 1499 5399 6108 3 1500 5400 6111 3 1501 5401 6113 3 1502 5403 6115 3 1503 5405 6117 3 1504 5407 6119 3 1505 5408 6121 3 1506 5409 6123 3 1507 5411 6125 3 1508 5413 6127 3 1509 5415 6129 3 1510 5416 6131 3 1511 5417 6133 3 1512 5419 6135 3 1513 5421 6137 3 1514 5423 6139 3 1515 5424 6141 3 1516 5425 6143 3 1517 5427 6145 3 1518 5429 6147 3 1519 5431 6149 3 1520 5432 6151 3 1521 5433 6153 3 1522 5435 6155 3 1523 5437 6157 3 1524 5439 6159 3 1525 5440 6161 3 1526 5441 6163 3 1527 5443 6165 3 1528 5445 6167 3 1529 5447 6169 3 1530 5448 6171 3 1531 5449 6173 3 1532 5451 6175 3 1533 5453 6177 3 1534 5455 6179 3 1535 5456 6181 3 1536 5457 6183 3 1537 5459 6185 3 1538 5461 6187 3 1539 5463 6189 3 1540 5464 6191 3 1541 5465 6193 3 1542 5467 6195 3 1543 5469 6197 3 1544 5471 6199 3 1545 5472 6201 3 1546 5473 6203 3 1547 5475 6205 3 1548 5477 6207 3 1549 5479 6209 3 1550 5480 6211 3 1551 5481 6213 3 1552 5483 6215 3 1553 5485 6217 3 1554 5487 6219 3 1555 5488 6221 3 1556 5489 6223 3 1557 5491 6225 3 1558 5493 6227 3 1559 5495 6229 3 1560 5496 6231 3 1561 5497 6233 3 1562 5499 6235 3 1563 5501 6237 3 1564 5503 6239 3 1565 5504 6241 3 1566 5505 6243 3 1567 5507 6245 3 1568 5509 6247 3 1569 5511 6249 3 1570 5512 6251 3 1571 5513 6253 3 1572 5515 6255 3 1573 5517 6257 3 1574 5519 6259 3 1575 5520 6261 3 1576 5521 6263 3 1577 5523 6265 3 1578 5525 6267 3 1579 5527 6269 3 1580 5528 6271 3 1581 5529 6273 3 1582 5531 6275 3 1583 5533 6277 3 1584 5535 6279 3 1585 5536 6281 3 1586 5537 6283 3 1587 5539 6285 3 1588 5541 6287 3 1589 5543 6289 3 1590 5544 6291 3 1591 5545 6293 3 1592 5547 6295 3 1593 5549 6297 3 1594 5551 6299 3 1595 5552 6301 3 1596 5553 6303 3 1597 5555 6305 3 1598 5557 6307 3 1599 5559 6309 3 1600 5560 6311 3 1601 5561 6313 3 1602 5563 6315 3 1603 5565 6317 3 1604 5567 6319 3 1605 5568 6321 3 1606 5569 6323 3 1607 5571 6325 3 1608 5573 6327 3 1609 5575 6329 3 1610 5576 6331 3 1611 5577 6333 3 1612 5579 6335 3 1613 5581 6337 3 1614 5583 6339 3 1615 5584 6341 3 1616 5585 6343 3 1617 5587 6345 3 1618 5589 6347 3 1619 5591 6349 3 1620 5592 6351 3 1621 5593 6353 3 1622 5595 6355 3 1623 5597 6357 3 1624 5599 6359 3 1625 5600 6361 3 1626 5601 6363 3 1627 5603 6365 3 1628 5605 6367 3 1629 5607 6369 3 1630 5608 6371 3 1631 5609 6373 3 1632 5611 6375 3 1633 5613 6377 3 1634 5615 6379 3 1635 5616 6381 3 1636 5617 6383 3 1637 5619 6385 3 1638 5621 6387 3 1639 5623 6389 3 1640 5624 6391 3 1641 5625 6393 3 1642 5627 6395 3 1643 5629 6397 3 1644 5631 6399 3 1645 5632 6401 3 1646 5633 6403 3 1647 5635 6405 3 1648 5637 6407 3 1649 5639 6409 3 1650 5640 6411 3 1651 5641 6413 3 1652 5643 6415 3 1653 5645 6417 3 1654 5647 6419 3 1655 5648 6421 3 1656 5649 6423 3 1657 5651 6425 3 1658 5653 6427 3 1659 5655 6429 3 1660 5656 6431 3 1661 5657 6433 3 1662 5659 6435 3 1663 5661 6437 3 1664 5663 6439 3 1665 5664 6441 3 1666 5665 6443 3 1667 5667 6445 3 1668 5670 6447 3 1669 5672 6449 3 1670 5673 6451 3 1671 5675 6453 3 1672 5678 6455 3 1673 5680 6457 3 1674 5683 6459 3 1675 5685 6461 3 1676 5686 6463 3 1677 5688 6465 3 1678 5691 6467 3 1679 5693 6469 3 1680 5695 6471 3 1681 5697 6473 3 1682 5699 6475 3 1683 5702 6477 3 1684 5704 6479 3 1685 5705 6481 3 1686 5707 6483 3 1687 5710 6485 3 1688 5712 6487 3 1689 5715 6489 3 1690 5717 6491 3 1691 5718 6493 3 1692 5720 6495 3 1693 5723 6497 3 1694 5725 6499 3 1695 5727 6501 3 1696 5729 6503 3 1697 5731 6505 3 1698 5734 6507 3 1699 5736 6509 3 1700 5737 6511 3 1701 5739 6513 3 1702 5742 6515 3 1703 5744 6517 3 1704 5747 6519 3 1705 5749 6521 3 1706 5750 6523 3 1707 5752 6525 3 1708 5755 6527 3 1709 5757 6529 3 1710 5759 6531 3 1711 5761 6533 3 1712 5763 6535 3 1713 5766 6537 3 1714 5768 6539 3 1715 5769 6541 3 1716 5771 6543 3 1717 5774 6545 3 1718 5776 6547 3 1719 5779 6549 3 1720 5781 6551 3 1721 5782 6553 3 1722 5784 6555 3 1723 5787 6557 3 1724 5789 6559 3 1725 5791 6561 3 1726 5793 6563 3 1727 5795 6565 3 1728 5798 6567 3 1729 5800 6569 3 1730 5801 6571 3 1731 5803 6573 3 1732 5806 6575 3 1733 5808 6577 3 1734 5811 6579 3 1735 5813 6581 3 1736 5814 6583 3 1737 5816 6585 3 1738 5819 6587 3 1739 5821 6589 3 1740 5823 6591 3 1741 5825 6593 3 1742 5827 6595 3 1743 5830 6597 3 1744 5832 6599 3 1745 5833 6601 3 1746 5835 6603 3 1747 5838 6605 3 1748 5840 6607 3 1749 5843 6609 3 1750 5845 6611 3 1751 5846 6613 3 1752 5848 6615 3 1753 5851 6617 3 1754 5853 6619 3 1755 5855 6621 3 1756 5857 6623 3 1757 5859 6625 3 1758 5862 6627 3 1759 5864 6629 3 1760 5865 6631 3 1761 5867 6633 3 1762 5870 6635 3 1763 5872 6637 3 1764 5875 6639 3 1765 5877 6641 3 1766 5878 6643 3 1767 5880 6645 3 1768 5883 6647 3 1769 5885 6649 3 1770 5887 6651 3 1771 5889 6653 3 1772 5891 6655 3 1773 5894 6657 3 1774 5896 6659 3 1775 5897 6661 3 1776 5899 6663 3 1777 5902 6665 3 1778 5904 6667 3 1779 5907 6669 3 1780 5909 6671 3 1781 5910 6673 3 1782 5912 6675 3 1783 5915 6677 3 1784 5917 6679 3 1785 5919 6681 3 1786 5921 6683 3 1787 5923 6685 3 1788 5926 6687 3 1789 5928 6689 3 1790 5929 6691 3 1791 5931 6693 3 1792 5934 6695 3 1793 5936 6697 3 1794 5939 6699 3 1795 5941 6701 3 1796 5942 6703 3 1797 5944 6705 3 1798 5947 6707 3 1799 5949 6709 3 1800 5951 6711 3 1801 5953 6713 3 1802 5955 6715 3 1803 5958 6717 3 1804 5960 6719 3 1805 5961 6721 3 1806 5963 6723 3 1807 5966 6725 3 1808 5968 6727 3 1809 5971 6729 3 1810 5973 6731 3 1811 5974 6733 3 1812 5976 6735 3 1813 5979 6737 3 1814 5981 6739 3 1815 5983 6741 3 1816 5985 6743 3 1817 5987 6745 3 1818 5990 6747 3 1819 5992 6749 3 1820 5993 6751 3 1821 5995 6753 3 1822 5998 6755 3 1823 6000 6757 3 1824 6003 6759 3 1825 6005 6761 3 1826 6006 6763 3 1827 6008 6765 3 1828 6011 6767 3 1829 6013 6769 3 1830 6015 6771 3 1831 6017 6773 3 1832 6019 6775 3 1833 6022 6777 3 1834 6024 6779 3 1835 6025 6781 3 1836 6027 6783 3 1837 6030 6785 3 1838 6032 6787 3 1839 6035 6789 3 1840 6037 6791 3 1841 6038 6793 3 1842 6040 6795 3 1843 6043 6797 3 1844 6045 6799 3 1845 6047 6801 3 1846 6049 6803 3 1847 6051 6805 3 1848 6054 6807 3 1849 6056 6809 3 1850 6057 6811 3 1851 6059 6813 3 1852 6062 6815 3 1853 6064 6817 3 1854 6067 6819 3 1855 6069 6821 3 1856 6070 6823 3 1857 6072 6825 3 1858 6075 6827 3 1859 6077 6829 3 1860 6079 6831 3 1861 6081 6833 3 1862 6083 6835 3 1863 6086 6837 3 1864 6088 6839 3 1865 6089 6841 3 1866 6091 6843 3 1867 6094 6845 3 1868 6096 6847 3 1869 6099 6849 3 1870 6101 6851 3 1871 6102 6853 3 1872 6104 6855 3 1873 6107 6857 3 1874 6109 6859 3 1875 6111 6861 3 1876 6112 6863 3 1877 6114 6865 3 1878 6116 6867 3 1879 6118 6869 3 1880 6119 6871 3 1881 6120 6873 3 1882 6122 6875 3 1883 6124 6877 3 1884 6126 6879 3 1885 6127 6881 3 1886 6128 6883 3 1887 6130 6885 3 1888 6132 6887 3 1889 6134 6889 3 1890 6135 6891 3 1891 6136 6893 3 1892 6138 6895 3 1893 6140 6897 3 1894 6142 6899 3 1895 6143 6901 3 1896 6144 6903 3 1897 6146 6905 3 1898 6148 6907 3 1899 6150 6909 3 1900 6151 6911 3 1901 6152 6913 3 1902 6154 6915 3 1903 6156 6917 3 1904 6158 6919 3 1905 6159 6921 3 1906 6160 6923 3 1907 6162 6925 3 1908 6164 6927 3 1909 6166 6929 3 1910 6167 6931 3 1911 6168 6933 3 1912 6170 6935 3 1913 6172 6937 3 1914 6174 6939 3 1915 6175 6941 3 1916 6176 6943 3 1917 6178 6945 3 1918 6180 6947 3 1919 6182 6949 3 1920 6183 6951 3 1921 6184 6953 3 1922 6186 6955 3 1923 6188 6957 3 1924 6190 6959 3 1925 6191 6961 3 1926 6192 6963 3 1927 6194 6965 3 1928 6196 6967 3 1929 6198 6969 3 1930 6199 6971 3 1931 6200 6973 3 1932 6202 6975 3 1933 6204 6977 3 1934 6206 6979 3 1935 6207 6981 3 1936 6208 6983 3 1937 6210 6985 3 1938 6212 6987 3 1939 6214 6989 3 1940 6215 6991 3 1941 6216 6993 3 1942 6218 6995 3 1943 6220 6997 3 1944 6222 6999 3 1945 6223 7001 3 1946 6224 7003 3 1947 6226 7005 3 1948 6228 7007 3 1949 6230 7009 3 1950 6231 7011 3 1951 6232 7013 3 1952 6234 7015 3 1953 6236 7017 3 1954 6238 7019 3 1955 6239 7021 3 1956 6240 7023 3 1957 6242 7025 3 1958 6244 7027 3 1959 6246 7029 3 1960 6247 7031 3 1961 6248 7033 3 1962 6250 7035 3 1963 6252 7037 3 1964 6254 7039 3 1965 6255 7041 3 1966 6256 7043 3 1967 6258 7045 3 1968 6260 7047 3 1969 6262 7049 3 1970 6263 7051 3 1971 6264 7053 3 1972 6266 7055 3 1973 6268 7057 3 1974 6270 7059 3 1975 6271 7061 3 1976 6272 7063 3 1977 6274 7065 3 1978 6276 7067 3 1979 6278 7069 3 1980 6279 7071 3 1981 6280 7073 3 1982 6282 7075 3 1983 6284 7077 3 1984 6286 7079 3 1985 6287 7081 3 1986 6288 7083 3 1987 6290 7085 3 1988 6292 7087 3 1989 6294 7089 3 1990 6295 7091 3 1991 6296 7093 3 1992 6298 7095 3 1993 6300 7097 3 1994 6302 7099 3 1995 6303 7101 3 1996 6304 7103 3 1997 6306 7105 3 1998 6308 7107 3 1999 6310 7109 3 2000 6311 7111 3 5 2001 6312 3 10 2002 6314 3 15 2003 6316 3 20 2004 6318 3 25 2005 6319 3 30 2006 6320 3 35 2007 6322 3 40 2008 6324 3 45 2009 6326 3 50 2010 6327 3 55 2011 6328 3 60 2012 6330 3 65 2013 6332 3 70 2014 6334 3 75 2015 6335 3 80 2016 6336 3 85 2017 6338 3 90 2018 6340 3 95 2019 6342 3 100 2020 6343 3 105 2021 6344 3 110 2022 6346 3 115 2023 6348 3 120 2024 6350 3 125 2025 6351 3 130 2026 6352 3 135 2027 6354 3 140 2028 6356 3 145 2029 6358 3 150 2030 6359 3 155 2031 6360 3 160 2032 6362 3 165 2033 6364 3 170 2034 6366 3 175 2035 6367 3 180 2036 6368 3 185 2037 6370 3 190 2038 6372 3 195 2039 6374 3 200 2040 6375 3 205 2041 6376 3 210 2042 6378 3 215 2043 6380 3 220 2044 6382 3 225 2045 6383 3 230 2046 6384 3 235 2047 6386 3 240 2048 6388 3 245 2049 6390 3 250 2050 6391 3 255 2051 6392 3 260 2052 6394 3 265 2053 6396 3 270 2054 6398 3 275 2055 6399 3 280 2056 6400 3 285 2057 6402 3 290 2058 6404 3 295 2059 6406 3 300 2060 6407 3 305 2061 6408 3 310 2062 6410 3 315 2063 6412 3 320 2064 6414 3 325 2065 6415 3 330 2066 6416 3 335 2067 6418 3 340 2068 6420 3 345 2069 6422 3 350 2070 6423 3 355 2071 6424 3 360 2072 6426 3 365 2073 6428 3 370 2074 6430 3 375 2075 6431 3 380 2076 6432 3 385 2077 6434 3 390 2078 6436 3 395 2079 6438 3 400 2080 6439 3 405 2081 6440 3 410 2082 6442 3 415 2083 6444 3 420 2084 6446 3 425 2085 6447 3 430 2086 6448 3 435 2087 6450 3 440 2088 6452 3 445 2089 6454 3 450 2090 6455 3 455 2091 6456 3 460 2092 6458 3 465 2093 6460 3 470 2094 6462 3 475 2095 6463 3 480 2096 6464 3 485 2097 6466 3 490 2098 6468 3 495 2099 6470 3 500 2100 6471 3 505 2101 6472 3 510 2102 6474 3 515 2103 6476 3 520 2104 6478 3 525 2105 6479 3 530 2106 6480 3 535 2107 6482 3 540 2108 6484 3 545 2109 6486 3 550 2110 6487 3 555 2111 6488 3 560 2112 6490 3 565 2113 6492 3 570 2114 6494 3 575 2115 6495 3 580 2116 6496 3 585 2117 6498 3 590 2118 6500 3 595 2119 6502 3 600 2120 6503 3 605 2121 6504 3 610 2122 6506 3 615 2123 6508 3 620 2124 6510 3 625 2125 6511 3 630 2126 6512 3 635 2127 6514 3 640 2128 6516 3 645 2129 6518 3 650 2130 6519 3 655 2131 6520 3 660 2132 6522 3 665 2133 6524 3 670 2134 6526 3 675 2135 6527 3 680 2136 6528 3 685 2137 6530 3 690 2138 6532 3 695 2139 6534 3 700 2140 6535 3 705 2141 6536 3 710 2142 6538 3 715 2143 6540 3 720 2144 6542 3 725 2145 6543 3 730 2146 6544 3 735 2147 6546 3 740 2148 6548 3 745 2149 6550 3 750 2150 6551 3 755 2151 6552 3 760 2152 6554 3 765 2153 6556 3 770 2154 6558 3 775 2155 6559 3 780 2156 6560 3 785 2157 6562 3 790 2158 6564 3 795 2159 6566 3 800 2160 6567 3 805 2161 6568 3 810 2162 6570 3 815 2163 6572 3 820 2164 6574 3 825 2165 6575 3 830 2166 6576 3 835 2167 6578 3 840 2168 6580 3 845 2169 6582 3 850 2170 6583 3 855 2171 6584 3 860 2172 6586 3 865 2173 6588 3 870 2174 6590 3 875 2175 6591 3 880 2176 6592 3 885 2177 6594 3 890 2178 6596 3 895 2179 6598 3 900 2180 6599 3 905 2181 6600 3 910 2182 6602 3 915 2183 6604 3 920 2184 6606 3 925 2185 6607 3 930 2186 6608 3 935 2187 6610 3 940 2188 6612 3 945 2189 6614 3 950 2190 6615 3 955 2191 6616 3 960 2192 6618 3 965 2193 6620 3 970 2194 6622 3 975 2195 6623 3 980 2196 6624 3 985 2197 6626 3 990 2198 6628 3 995 2199 6630 3 1000 2200 6631 3 1005 2201 6632 3 1010 2202 6634 3 1015 2203 6636 3 1020 2204 6638 3 1025 2205 6639 3 1030 2206 6640 3 1035 2207 6642 3 1040 2208 6644 3 1045 2209 6646 3 1050 2210 6647 3 1055 2211 6648 3 1060 2212 6650 3 1065 2213 6652 3 1070 2214 6654 3 1075 2215 6655 3 1080 2216 6656 3 1085 2217 6658 3 1090 2218 6660 3 1095 2219 6662 3 1100 2220 6663 3 1105 2221 6664 3 1110 2222 6666 3 1115 2223 6668 3 1120 2224 6670 3 1125 2225 6671 3 1130 2226 6672 3 1135 2227 6674 3 1140 2228 6676 3 1145 2229 6678 3 1150 2230 6679 3 1155 2231 6680 3 1160 2232 6682 3 1165 2233 6684 3 1170 2234 6686 3 1175 2235 6687 3 1180 2236 6688 3 1185 2237 6690 3 1190 2238 6692 3 1195 2239 6694 3 1200 2240 6695 3 1205 2241 6696 3 1210 2242 6698 3 1215 2243 6700 3 1220 2244 6702 3 1225 2245 6703 3 1230 2246 6704 3 1235 2247 6706 3 1240 2248 6708 3 1245 2249 6710 3 1250 2250 6711 3 1255 2251 6712 3 1260 2252 6714 3 1265 2253 6716 3 1270 2254 6718 3 1275 2255 6719 3 1280 2256 6720 3 1285 2257 6722 3 1290 2258 6724 3 1295 2259 6726 3 1300 2260 6727 3 1305 2261 6728 3 1310 2262 6730 3 1315 2263 6732 3 1320 2264 6734 3 1325 2265 6735 3 1330 2266 6736 3 1335 2267 6738 3 1340 2268 6740 3 1345 2269 6742 3 1350 2270 6743 3 1355 2271 6744 3 1360 2272 6746 3 1365 2273 6748 3 1370 2274 6750 3 1375 2275 6751 3 1380 2276 6752 3 1385 2277 6754 3 1390 2278 6756 3 1395 2279 6758 3 1400 2280 6759 3 1405 2281 6760 3 1410 2282 6762 3 1415 2283 6764 3 1420 2284 6766 3 1425 2285 6767 3 1430 2286 6768 3 1435 2287 6770 3 1440 2288 6772 3 1445 2289 6774 3 1450 2290 6775 3 1455 2291 6776 3 1460 2292 6778 3 1465 2293 6780 3 1470 2294 6782 3 1475 2295 6783 3 1480 2296 6784 3 1485 2297 6786 3 1490 2298 6788 3 1495 2299 6790 3 1500 2300 6791 3 1505 2301 6792 3 1510 2302 6794 3 1515 2303 6796 3 1520 2304 6798 3 1525 2305 6799 3 1530 2306 6800 3 1535 2307 6802 3 1540 2308 6804 3 1545 2309 6806 3 1550 2310 6807 3 1555 2311 6808 3 1560 2312 6810 3 1565 2313 6812 3 1570 2314 6814 3 1575 2315 6815 3 1580 2316 6816 3 1585 2317 6818 3 1590 2318 6820 3 1595 2319 6822 3 1600 2320 6823 3 1605 2321 6824 3 1610 2322 6826 3 1615 2323 6828 3 1620 2324 6830 3 1625 2325 6831 3 1630 2326 6832 3 1635 2327 6834 3 1640 2328 6836 3 1645 2329 6838 3 1650 2330 6839 3 1655 2331 6840 3 1660 2332 6842 3 1665 2333 6844 3 1670 2334 6846 3 1675 2335 6847 3 1680 2336 6848 3 1685 2337 6850 3 1690 2338 6852 3 1695 2339 6854 3 1700 2340 6855 3 1705 2341 6856 3 1710 2342 6858 3 1715 2343 6860 3 1720 2344 6862 3 1725 2345 6863 3 1730 2346 6864 3 1735 2347 6866 3 1740 2348 6868 3 1745 2349 6870 3 1750 2350 6871 3 1755 2351 6872 3 1760 2352 6874 3 1765 2353 6876 3 1770 2354 6878 3 1775 2355 6879 3 1780 2356 6880 3 1785 2357 6882 3 1790 2358 6884 3 1795 2359 6886 3 1800 2360 6887 3 1805 2361 6888 3 1810 2362 6890 3 1815 2363 6892 3 1820 2364 6894 3 1825 2365 6895 3 1830 2366 6896 3 1835 2367 6898 3 1840 2368 6900 3 1845 2369 6902 3 1850 2370 6903 3 1855 2371 6904 3 1860 2372 6906 3 1865 2373 6908 3 1870 2374 6910 3 1875 2375 6911 3 1880 2376 6912 3 1885 2377 6914 3 1890 2378 6916 3 1895 2379 6918 3 1900 2380 6919 3 1905 2381 6920 3 1910 2382 6922 3 1915 2383 6924 3 1920 2384 6926 3 1925 2385 6927 3 1930 2386 6928 3 1935 2387 6930 3 1940 2388 6932 3 1945 2389 6934 3 1950 2390 6935 3 1955 2391 6936 3 1960 2392 6938 3 1965 2393 6940 3 1970 2394 6942 3 1975 2395 6943 3 1980 2396 6944 3 1985 2397 6946 3 1990 2398 6948 3 1995 2399 6950 3 2000 2400 6951 3 2005 2401 6952 3 2010 2402 6954 3 2015 2403 6956 3 2020 2404 6958 3 2025 2405 6959 3 2030 2406 6960 3 2035 2407 6962 3 2040 2408 6964 3 2045 2409 6966 3 2050 2410 6967 3 2055 2411 6968 3 2060 2412 6970 3 2065 2413 6972 3 2070 2414 6974 3 2075 2415 6975 3 2080 2416 6976 3 2085 2417 6978 3 2090 2418 6980 3 2095 2419 6982 3 2100 2420 6983 3 2105 2421 6984 3 2110 2422 6986 3 2115 2423 6988 3 2120 2424 6990 3 2125 2425 6991 3 2130 2426 6992 3 2135 2427 6994 3 2140 2428 6996 3 2145 2429 6998 3 2150 2430 6999 3 2155 2431 7000 3 2160 2432 7002 3 2165 2433 7004 3 2170 2434 7006 3 2175 2435 7007 3 2180 2436 7008 3 2185 2437 7010 3 2190 2438 7012 3 2195 2439 7014 3 2200 2440 7015 3 2205 2441 7016 3 2210 2442 7018 3 2215 2443 7020 3 2220 2444 7022 3 2225 2445 7023 3 2230 2446 7024 3 2235 2447 7026 3 2240 2448 7028 3 2245 2449 7030 3 2250 2450 7031 3 2255 2451 7032 3 2260 2452 7034 3 2265 2453 7036 3 2270 2454 7038 3 2275 2455 7039 3 2280 2456 7040 3 2285 2457 7042 3 2290 2458 7044 3 2295 2459 7046 3 2300 2460 7047 3 2305 2461 7048 3 2310 2462 7050 3 2315 2463 7052 3 2320 2464 7054 3 2325 2465 7055 3 2330 2466 7056 3 2335 2467 7058 3 2340 2468 7060 3 2345 2469 7062 3 2350 2470 7063 3 2355 2471 7064 3 2360 2472 7066 3 2365 2473 7068 3 2370 2474 7070 3 2375 2475 7071 3 2380 2476 7072 3 2385 2477 7074 3 2390 2478 7076 3 2395 2479 7078 3 2400 2480 7079 3 2405 2481 7080 3 2410 2482 7082 3 2415 2483 7084 3 2420 2484 7086 3 2425 2485 7087 3 2430 2486 7088 3 2435 2487 7090 3 2440 2488 7092 3 2445 2489 7094 3 2450 2490 7095 3 2455 2491 7096 3 2460 2492 7098 3 2465 2493 7100 3 2470 2494 7102 3 2475 2495 7103 3 2480 2496 7104 3 2485 2497 7106 3 2490 2498 7108 3 2495 2499 7110 2 2500 7111 3 4 2501 2505 3 8 2502 2510 3 12 2503 2515 3 16 2504 2520 3 20 2505 2525 3 24 2506 2530 3 28 2507 2535 3 32 2508 2540 3 36 2509 2545 3 40 2510 2550 3 44 2511 2555 3 48 2512 2560 3 52 2513 2565 3 56 2514 2570 3 60 2515 2575 3 64 2516 2580 3 68 2517 2585 3 72 2518 2590 3 76 2519 2595 3 80 2520 2600 3 84 2521 2605 3 88 2522 2610 3 92 2523 2615 3 96 2524 2620 3 100 2525 2625 3 104 2526 2630 3 108 2527 2635 3 112 2528 2640 3 116 2529 2645 3 120 2530 2650 3 124 2531 2655 3 128 2532 2660 3 132 2533 2665 3 136 2534 2670 3 140 2535 2675 3 144 2536 2680 3 148 2537 2685 3 152 2538 2690 3 156 2539 2695 3 160 2540 2700 3 164 2541 2705 3 168 2542 2710 3 172 2543 2715 3 176 2544 2720 3 180 2545 2725 3 184 2546 2730 3 188 2547 2735 3 192 2548 2740 3 196 2549 2745 3 200 2550 2750 3 204 2551 2755 3 208 2552 2760 3 212 2553 2765 3 216 2554 2770 3 220 2555 2775 3 224 2556 2780 3 228 2557 2785 3 232 2558 2790 3 236 2559 2795 3 240 2560 2800 3 244 2561 2805 3 248 2562 2810 3 252 2563 2815 3 256 2564 2820 3 260 2565 2825 3 264 2566 2830 3 268 2567 2835 3 272 2568 2840 3 276 2569 2845 3 280 2570 2850 3 284 2571 2855 3 288 2572 2860 3 292 2573 2865 3 296 2574 2870 3 300 2575 2875 3 304 2576 2880 3 308 2577 2885 3 312 2578 2890 3 316 2579 2895 3 320 2580 2900 3 324 2581 2905 3 328 2582 2910 3 332 2583 2915 3 336 2584 2920 3 340 2585 2925 3 344 2586 2930 3 348 2587 2935 3 352 2588 2940 3 356 2589 2945 3 360 2590 2950 3 364 2591 2955 3 368 2592 2960 3 372 2593 2965 3 376 2594 2970 3 380 2595 2975 3 384 2596 2980 3 388 2597 2985 3 392 2598 2990 3 396 2599 2995 3 400 2600 3000 3 404 2601 3005 3 408 2602 3010 3 412 2603 3015 3 416 2604 3020 3 420 2605 3025 3 424 2606 3030 3 428 2607 3035 3 432 2608 3040 3 436 2609 3045 3 440 2610 3050 3 444 2611 3055 3 448 2612 3060 3 452 2613 3065 3 456 2614 3070 3 460 2615 3075 3 464 2616 3080 3 468 2617 3085 3 472 2618 3090 3 476 2619 3095 3 480 2620 3100 3 484 2621 3105 3 488 2622 3110 3 492 2623 3115 3 496 2624 3120 3 500 2625 3125 3 504 2626 3130 3 508 2627 3135 3 512 2628 3140 3 516 2629 3145 3 520 2630 3150 3 524 2631 3155 3 528 2632 3160 3 532 2633 3165 3 536 2634 3170 3 540 2635 3175 3 544 2636 3180 3 548 2637 3185 3 552 2638 3190 3 556 2639 3195 3 560 2640 3200 3 564 2641 3205 3 568 2642 3210 3 572 2643 3215 3 576 2644 3220 3 580 2645 3225 3 584 2646 3230 3 588 2647 3235 3 592 2648 3240 3 596 2649 3245 3 600 2650 3250 3 604 2651 3255 3 608 2652 3260 3 612 2653 3265 3 616 2654 3270 3 620 2655 3275 3 624 2656 3280 3 628 2657 3285 3 632 2658 3290 3 636 2659 3295 3 640 2660 3300 3 644 2661 3305 3 648 2662 3310 3 652 2663 3315 3 656 2664 3320 3 660 2665 3325 3 664 2666 3330 3 668 2667 3335 3 672 2668 3340 3 676 2669 3345 3 680 2670 3350 3 684 2671 3355 3 688 2672 3360 3 692 2673 3365 3 696 2674 3370 3 700 2675 3375 3 704 2676 3380 3 708 2677 3385 3 712 2678 3390 3 716 2679 3395 3 720 2680 3400 3 724 2681 3405 3 728 2682 3410 3 732 2683 3415 3 736 2684 3420 3 740 2685 3425 3 744 2686 3430 3 748 2687 3435 3 752 2688 3440 3 756 2689 3445 3 760 2690 3450 3 764 2691 3455 3 768 2692 3460 3 772 2693 3465 3 776 2694 3470 3 780 2695 3475 3 784 2696 3480 3 788 2697 3485 3 792 2698 3490 3 796 2699 3495 3 800 2700 3500 3 804 2701 3505 3 808 2702 3510 3 812 2703 3515 3 816 2704 3520 3 820 2705 3525 3 824 2706 3530 3 828 2707 3535 3 832 2708 3540 3 836 2709 3545 3 840 2710 3550 3 844 2711 3555 3 848 2712 3560 3 852 2713 3565 3 856 2714 3570 3 860 2715 3575 3 864 2716 3580 3 868 2717 3585 3 872 2718 3590 3 876 2719 3595 3 880 2720 3600 3 884 2721 3605 3 888 2722 3610 3 892 2723 3615 3 896 2724 3620 3 900 2725 3625 3 904 2726 3630 3 908 2727 3635 3 912 2728 3640 3 916 2729 3645 3 920 2730 3650 3 924 2731 3655 3 928 2732 3660 3 932 2733 3665 3 936 2734 3670 3 940 2735 3675 3 944 2736 3680 3 948 2737 3685 3 952 2738 3690 3 956 2739 3695 3 960 2740 3700 3 964 2741 3705 3 968 2742 3710 3 972 2743 3715 3 976 2744 3720 3 980 2745 3725 3 984 2746 3730 3 988 2747 3735 3 992 2748 3740 3 996 2749 3745 3 1000 2750 3750 3 1004 2751 3755 3 1008 2752 3760 3 1012 2753 3765 3 1016 2754 3770 3 1020 2755 3775 3 1024 2756 3780 3 1028 2757 3785 3 1032 2758 3790 3 1036 2759 3795 3 1040 2760 3800 3 1044 2761 3805 3 1048 2762 3810 3 1052 2763 3815 3 1056 2764 3820 3 1060 2765 3825 3 1064 2766 3830 3 1068 2767 3835 3 1072 2768 3840 3 1076 2769 3845 3 1080 2770 3850 3 1084 2771 3855 3 1088 2772 3860 3 1092 2773 3865 3 1096 2774 3870 3 1100 2775 3875 3 1104 2776 3880 3 1108 2777 3885 3 1112 2778 3890 3 1116 2779 3895 3 1120 2780 3900 3 1124 2781 3905 3 1128 2782 3910 3 1132 2783 3915 3 1136 2784 3920 3 1140 2785 3925 3 1144 2786 3930 3 1148 2787 3935 3 1152 2788 3940 3 1156 2789 3945 3 1160 2790 3950 3 1164 2791 3955 3 1168 2792 3960 3 1172 2793 3965 3 1176 2794 3970 3 1180 2795 3975 3 1184 2796 3980 3 1188 2797 3985 3 1192 2798 3990 3 1196 2799 3995 3 1200 2800 4000 3 1204 2801 4005 3 1208 2802 4010 3 1212 2803 4015 3 1216 2804 4020 3 1220 2805 4025 3 1224 2806 4030 3 1228 2807 4035 3 1232 2808 4040 3 1236 2809 4045 3 1240 2810 4050 3 1244 2811 4055 3 1248 2812 4060 3 1252 2813 4065 3 1256 2814 4070 3 1260 2815 4075 3 1264 2816 4080 3 1268 2817 4085 3 1272 2818 4090 3 1276 2819 4095 3 1280 2820 4100 3 1284 2821 4105 3 1288 2822 4110 3 1292 2823 4115 3 1296 2824 4120 3 1300 2825 4125 3 1304 2826 4130 3 1308 2827 4135 3 1312 2828 4140 3 1316 2829 4145 3 1320 2830 4150 3 1324 2831 4155 3 1328 2832 4160 3 1332 2833 4165 3 1336 2834 4170 3 1340 2835 4175 3 1344 2836 4180 3 1348 2837 4185 3 1352 2838 4190 3 1356 2839 4195 3 1360 2840 4200 3 1364 2841 4205 3 1368 2842 4210 3 1372 2843 4215 3 1376 2844 4220 3 1380 2845 4225 3 1384 2846 4230 3 1388 2847 4235 3 1392 2848 4240 3 1396 2849 4245 3 1400 2850 4250 3 1404 2851 4255 3 1408 2852 4260 3 1412 2853 4265 3 1416 2854 4270 3 1420 2855 4275 3 1424 2856 4280 3 1428 2857 4285 3 1432 2858 4290 3 1436 2859 4295 3 1440 2860 4300 3 1444 2861 4305 3 1448 2862 4310 3 1452 2863 4315 3 1456 2864 4320 3 1460 2865 4325 3 1464 2866 4330 3 1468 2867 4335 3 1472 2868 4340 3 1476 2869 4345 3 1480 2870 4350 3 1484 2871 4355 3 1488 2872 4360 3 1492 2873 4365 3 1496 2874 4370 3 1500 2875 4375 3 1504 2876 4380 3 1508 2877 4385 3 1512 2878 4390 3 1516 2879 4395 3 1520 2880 4400 3 1524 2881 4405 3 1528 2882 4410 3 1532 2883 4415 3 1536 2884 4420 3 1540 2885 4425 3 1544 2886 4430 3 1548 2887 4435 3 1552 2888 4440 3 1556 2889 4445 3 1560 2890 4450 3 1564 2891 4455 3 1568 2892 4460 3 1572 2893 4465 3 1576 2894 4470 3 1580 2895 4475 3 1584 2896 4480 3 1588 2897 4485 3 1592 2898 4490 3 1596 2899 4495 3 1600 2900 4500 3 1604 2901 4505 3 1608 2902 4510 3 1612 2903 4515 3 1616 2904 4520 3 1620 2905 4525 3 1624 2906 4530 3 1628 2907 4535 3 1632 2908 4540 3 1636 2909 4545 3 1640 2910 4550 3 1644 2911 4555 3 1648 2912 4560 3 1652 2913 4565 3 1656 2914 4570 3 1660 2915 4575 3 1664 2916 4580 3 1668 2917 4585 3 1672 2918 4590 3 1676 2919 4595 3 1680 2920 4600 3 1684 2921 4605 3 1688 2922 4610 3 1692 2923 4615 3 1696 2924 4620 3 1700 2925 4625 3 1704 2926 4630 3 1708 2927 4635 3 1712 2928 4640 3 1716 2929 4645 3 1720 2930 4650 3 1724 2931 4655 3 1728 2932 4660 3 1732 2933 4665 3 1736 2934 4670 3 1740 2935 4675 3 1744 2936 4680 3 1748 2937 4685 3 1752 2938 4690 3 1756 2939 4695 3 1760 2940 4700 3 1764 2941 4705 3 1768 2942 4710 3 1772 2943 4715 3 1776 2944 4720 3 1780 2945 4725 3 1784 2946 4730 3 1788 2947 4735 3 1792 2948 4740 3 1796 2949 4745 3 1800 2950 4750 3 1804 2951 4755 3 1808 2952 4760 3 1812 2953 4765 3 1816 2954 4770 3 1820 2955 4775 3 1824 2956 4780 3 1828 2957 4785 3 1832 2958 4790 3 1836 2959 4795 3 1840 2960 4800 3 1844 2961 4805 3 1848 2962 4810 3 1852 2963 4815 3 1856 2964 4820 3 1860 2965 4825 3 1864 2966 4830 3 1868 2967 4835 3 1872 2968 4840 3 1876 2969 4845 3 1880 2970 4850 3 1884 2971 4855 3 1888 2972 4860 3 1892 2973 4865 3 1896 2974 4870 3 1900 2975 4875 3 1904 2976 4880 3 1908 2977 4885 3 1912 2978 4890 3 1916 2979 4895 3 1920 2980 4900 3 1924 2981 4905 3 1928 2982 4910 3 1932 2983 4915 3 1936 2984 4920 3 1940 2985 4925 3 1944 2986 4930 3 1948 2987 4935 3 1952 2988 4940 3 1956 2989 4945 3 1960 2990 4950 3 1964 2991 4955 3 1968 2992 4960 3 1972 2993 4965 3 1976 2994 4970 3 1980 2995 4975 3 1984 2996 4980 3 1988 2997 4985 3 1992 2998 4990 3 1996 2999 4995 3 2000 3000 5000 3 2004 3001 5002 3 2008 3002 5004 3 2012 3003 5006 3 2016 3004 5008 3 2020 3005 5010 3 2024 3006 5012 3 2028 3007 5014 3 2032 3008 5016 3 2036 3009 5018 3 2040 3010 5020 3 2044 3011 5022 3 2048 3012 5024 3 2052 3013 5026 3 2056 3014 5028 3 2060 3015 5030 3 2064 3016 5032 3 2068 3017 5034 3 2072 3018 5036 3 2076 3019 5038 3 2080 3020 5040 3 2084 3021 5042 3 2088 3022 5044 3 2092 3023 5046 3 2096 3024 5048 3 2100 3025 5050 3 2104 3026 5052 3 2108 3027 5054 3 2112 3028 5056 3 2116 3029 5058 3 2120 3030 5060 3 2124 3031 5062 3 2128 3032 5064 3 2132 3033 5066 3 2136 3034 5068 3 2140 3035 5070 3 2144 3036 5072 3 2148 3037 5074 3 2152 3038 5076 3 2156 3039 5078 3 2160 3040 5080 3 2164 3041 5082 3 2168 3042 5084 3 2172 3043 5086 3 2176 3044 5088 3 2180 3045 5090 3 2184 3046 5092 3 2188 3047 5094 3 2192 3048 5096 3 2196 3049 5098 3 2200 3050 5100 3 2204 3051 5102 3 2208 3052 5104 3 2212 3053 5106 3 2216 3054 5108 3 2220 3055 5110 3 2224 3056 5112 3 2228 3057 5114 3 2232 3058 5116 3 2236 3059 5118 3 2240 3060 5120 3 2244 3061 5122 3 2248 3062 5124 3 2252 3063 5126 3 2256 3064 5128 3 2260 3065 5130 3 2264 3066 5132 3 2268 3067 5134 3 2272 3068 5136 3 2276 3069 5138 3 2280 3070 5140 3 2284 3071 5142 3 2288 3072 5144 3 2292 3073 5146 3 2296 3074 5148 3 2300 3075 5150 3 2304 3076 5152 3 2308 3077 5154 3 2312 3078 5156 3 2316 3079 5158 3 2320 3080 5160 3 2324 3081 5162 3 2328 3082 5164 3 2332 3083 5166 3 2336 3084 5168 3 2340 3085 5170 3 2344 3086 5172 3 2348 3087 5174 3 2352 3088 5176 3 2356 3089 5178 3 2360 3090 5180 3 2364 3091 5182 3 2368 3092 5184 3 2372 3093 5186 3 2376 3094 5188 3 2380 3095 5190 3 2384 3096 5192 3 2388 3097 5194 3 2392 3098 5196 3 2396 3099 5198 3 2400 3100 5200 3 2404 3101 5202 3 2408 3102 5204 3 2412 3103 5206 3 2416 3104 5208 3 2420 3105 5210 3 2424 3106 5212 3 2428 3107 5214 3 2432 3108 5216 3 2436 3109 5218 3 2440 3110 5220 3 2444 3111 5222 3 2448 3112 5224 3 2452 3113 5226 3 2456 3114 5228 3 2460 3115 5230 3 2464 3116 5232 3 2468 3117 5234 3 2472 3118 5236 3 2476 3119 5238 3 2480 3120 5240 3 2484 3121 5242 3 2488 3122 5244 3 2492 3123 5246 3 2496 3124 5248 3 2500 3125 5250 3 2504 3126 5252 3 2508 3127 5254 3 2512 3128 5256 3 2516 3129 5258 3 2520 3130 5260 3 2524 3131 5262 3 2528 3132 5264 3 2532 3133 5266 3 2536 3134 5268 3 2540 3135 5270 3 2544 3136 5272 3 2548 3137 5274 3 2552 3138 5276 3 2556 3139 5278 3 2560 3140 5280 3 2564 3141 5282 3 2568 3142 5284 3 2572 3143 5286 3 2576 3144 5288 3 2580 3145 5290 3 2584 3146 5292 3 2588 3147 5294 3 2592 3148 5296 3 2596 3149 5298 3 2600 3150 5300 3 2604 3151 5302 3 2608 3152 5304 3 2612 3153 5306 3 2616 3154 5308 3 2620 3155 5310 3 2624 3156 5312 3 2628 3157 5314 3 2632 3158 5316 3 2636 3159 5318 3 2640 3160 5320 3 2644 3161 5322 3 2648 3162 5324 3 2652 3163 5326 3 2656 3164 5328 3 2660 3165 5330 3 2664 3166 5332 3 2668 3167 5334 3 2672 3168 5336 3 2676 3169 5338 3 2680 3170 5340 3 2684 3171 5342 3 2688 3172 5344 3 2692 3173 5346 3 2696 3174 5348 3 2700 3175 5350 3 2704 3176 5352 3 2708 3177 5354 3 2712 3178 5356 3 2716 3179 5358 3 2720 3180 5360 3 2724 3181 5362 3 2728 3182 5364 3 2732 3183 5366 3 2736 3184 5368 3 2740 3185 5370 3 2744 3186 5372 3 2748 3187 5374 3 2752 3188 5376 3 2756 3189 5378 3 2760 3190 5380 3 2764 3191 5382 3 2768 3192 5384 3 2772 3193 5386 3 2776 3194 5388 3 2780 3195 5390 3 2784 3196 5392 3 2788 3197 5394 3 2792 3198 5396 3 2796 3199 5398 3 2800 3200 5400 3 2804 3201 5402 3 2808 3202 5404 3 2812 3203 5406 3 2816 3204 5408 3 2820 3205 5410 3 2824 3206 5412 3 2828 3207 5414 3 2832 3208 5416 3 2836 3209 5418 3 2840 3210 5420 3 2844 3211 5422 3 2848 3212 5424 3 2852 3213 5426 3 2856 3214 5428 3 2860 3215 5430 3 2864 3216 5432 3 2868 3217 5434 3 2872 3218 5436 3 2876 3219 5438 3 2880 3220 5440 3 2884 3221 5442 3 2888 3222 5444 3 2892 3223 5446 3 2896 3224 5448 3 2900 3225 5450 3 2904 3226 5452 3 2908 3227 5454 3 2912 3228 5456 3 2916 3229 5458 3 2920 3230 5460 3 2924 3231 5462 3 2928 3232 5464 3 2932 3233 5466 3 2936 3234 5468 3 2940 3235 5470 3 2944 3236 5472 3 2948 3237 5474 3 2952 3238 5476 3 2956 3239 5478 3 2960 3240 5480 3 2964 3241 5482 3 2968 3242 5484 3 2972 3243 5486 3 2976 3244 5488 3 2980 3245 5490 3 2984 3246 5492 3 2988 3247 5494 3 2992 3248 5496 3 2996 3249 5498 3 3000 3250 5500 3 3004 3251 5502 3 3008 3252 5504 3 3012 3253 5506 3 3016 3254 5508 3 3020 3255 5510 3 3024 3256 5512 3 3028 3257 5514 3 3032 3258 5516 3 3036 3259 5518 3 3040 3260 5520 3 3044 3261 5522 3 3048 3262 5524 3 3052 3263 5526 3 3056 3264 5528 3 3060 3265 5530 3 3064 3266 5532 3 3068 3267 5534 3 3072 3268 5536 3 3076 3269 5538 3 3080 3270 5540 3 3084 3271 5542 3 3088 3272 5544 3 3092 3273 5546 3 3096 3274 5548 3 3100 3275 5550 3 3104 3276 5552 3 3108 3277 5554 3 3112 3278 5556 3 3116 3279 5558 3 3120 3280 5560 3 3124 3281 5562 3 3128 3282 5564 3 3132 3283 5566 3 3136 3284 5568 3 3140 3285 5570 3 3144 3286 5572 3 3148 3287 5574 3 3152 3288 5576 3 3156 3289 5578 3 3160 3290 5580 3 3164 3291 5582 3 3168 3292 5584 3 3172 3293 5586 3 3176 3294 5588 3 3180 3295 5590 3 3184 3296 5592 3 3188 3297 5594 3 3192 3298 5596 3 3196 3299 5598 3 3200 3300 5600 3 3204 3301 5602 3 3208 3302 5604 3 3212 3303 5606 3 3216 3304 5608 3 3220 3305 5610 3 3224 3306 5612 3 3228 3307 5614 3 3232 3308 5616 3 3236 3309 5618 3 3240 3310 5620 3 3244 3311 5622 3 3248 3312 5624 3 3252 3313 5626 3 3256 3314 5628 3 3260 3315 5630 3 3264 3316 5632 3 3268 3317 5634 3 3272 3318 5636 3 3276 3319 5638 3 3280 3320 5640 3 3284 3321 5642 3 3288 3322 5644 3 3292 3323 5646 3 3296 3324 5648 3 3300 3325 5650 3 3304 3326 5652 3 3308 3327 5654 3 3312 3328 5656 3 3316 3329 5658 3 3320 3330 5660 3 3324 3331 5662 3 3328 3332 5664 3 3332 3333 5666 3 3334 3336 5669 3 3335 3340 5671 3 3336 3344 5673 3 3337 3348 5676 3 3338 3352 5679 3 3339 3356 5682 3 3340 3360 5685 3 3341 3364 5687 3 3342 3368 5689 3 3343 3372 5692 3 3344 3376 5695 3 3345 3380 5698 3 3346 3384 5701 3 3347 3388 5703 3 3348 3392 5705 3 3349 3396 5708 3 3350 3400 5711 3 3351 3404 5714 3 3352 3408 5717 3 3353 3412 5719 3 3354 3416 5721 3 3355 3420 5724 3 3356 3424 5727 3 3357 3428 5730 3 3358 3432 5733 3 3359 3436 5735 3 3360 3440 5737 3 3361 3444 5740 3 3362 3448 5743 3 3363 3452 5746 3 3364 3456 5749 3 3365 3460 5751 3 3366 3464 5753 3 3367 3468 5756 3 3368 3472 5759 3 3369 3476 5762 3 3370 3480 5765 3 3371 3484 5767 3 3372 3488 5769 3 3373 3492 5772 3 3374 3496 5775 3 3375 3500 5778 3 3376 3504 5781 3 3377 3508 5783 3 3378 3512 5785 3 3379 3516 5788 3 3380 3520 5791 3 3381 3524 5794 3 3382 3528 5797 3 3383 3532 5799 3 3384 3536 5801 3 3385 3540 5804 3 3386 3544 5807 3 3387 3548 5810 3 3388 3552 5813 3 3389 3556 5815 3 3390 3560 5817 3 3391 3564 5820 3 3392 3568 5823 3 3393 3572 5826 3 3394 3576 5829 3 3395 3580 5831 3 3396 3584 5833 3 3397 3588 5836 3 3398 3592 5839 3 3399 3596 5842 3 3400 3600 5845 3 3401 3604 5847 3 3402 3608 5849 3 3403 3612 5852 3 3404 3616 5855 3 3405 3620 5858 3 3406 3624 5861 3 3407 3628 5863 3 3408 3632 5865 3 3409 3636 5868 3 3410 3640 5871 3 3411 3644 5874 3 3412 3648 5877 3 3413 3652 5879 3 3414 3656 5881 3 3415 3660 5884 3 3416 3664 5887 3 3417 3668 5890 3 3418 3672 5893 3 3419 3676 5895 3 3420 3680 5897 3 3421 3684 5900 3 3422 3688 5903 3 3423 3692 5906 3 3424 3696 5909 3 3425 3700 5911 3 3426 3704 5913 3 3427 3708 5916 3 3428 3712 5919 3 3429 3716 5922 3 3430 3720 5925 3 3431 3724 5927 3 3432 3728 5929 3 3433 3732 5932 3 3434 3736 5935 3 3435 3740 5938 3 3436 3744 5941 3 3437 3748 5943 3 3438 3752 5945 3 3439 3756 5948 3 3440 3760 5951 3 3441 3764 5954 3 3442 3768 5957 3 3443 3772 5959 3 3444 3776 5961 3 3445 3780 5964 3 3446 3784 5967 3 3447 3788 5970 3 3448 3792 5973 3 3449 3796 5975 3 3450 3800 5977 3 3451 3804 5980 3 3452 3808 5983 3 3453 3812 5986 3 3454 3816 5989 3 3455 3820 5991 3 3456 3824 5993 3 3457 3828 5996 3 3458 3832 5999 3 3459 3836 6002 3 3460 3840 6005 3 3461 3844 6007 3 3462 3848 6009 3 3463 3852 6012 3 3464 3856 6015 3 3465 3860 6018 3 3466 3864 6021 3 3467 3868 6023 3 3468 3872 6025 3 3469 3876 6028 3 3470 3880 6031 3 3471 3884 6034 3 3472 3888 6037 3 3473 3892 6039 3 3474 3896 6041 3 3475 3900 6044 3 3476 3904 6047 3 3477 3908 6050 3 3478 3912 6053 3 3479 3916 6055 3 3480 3920 6057 3 3481 3924 6060 3 3482 3928 6063 3 3483 3932 6066 3 3484 3936 6069 3 3485 3940 6071 3 3486 3944 6073 3 3487 3948 6076 3 3488 3952 6079 3 3489 3956 6082 3 3490 3960 6085 3 3491 3964 6087 3 3492 3968 6089 3 3493 3972 6092 3 3494 3976 6095 3 3495 3980 6098 3 3496 3984 6101 3 3497 3988 6103 3 3498 3992 6105 3 3499 3996 6108 3 3500 4000 6111 3 3501 4004 6113 3 3502 4008 6115 3 3503 4012 6117 3 3504 4016 6119 3 3505 4020 6121 3 3506 4024 6123 3 3507 4028 6125 3 3508 4032 6127 3 3509 4036 6129 3 3510 4040 6131 3 3511 4044 6133 3 3512 4048 6135 3 3513 4052 6137 3 3514 4056 6139 3 3515 4060 6141 3 3516 4064 6143 3 3517 4068 6145 3 3518 4072 6147 3 3519 4076 6149 3 3520 4080 6151 3 3521 4084 6153 3 3522 4088 6155 3 3523 4092 6157 3 3524 4096 6159 3 3525 4100 6161 3 3526 4104 6163 3 3527 4108 6165 3 3528 4112 6167 3 3529 4116 6169 3 3530 4120 6171 3 3531 4124 6173 3 3532 4128 6175 3 3533 4132 6177 3 3534 4136 6179 3 3535 4140 6181 3 3536 4144 6183 3 3537 4148 6185 3 3538 4152 6187 3 3539 4156 6189 3 3540 4160 6191 3 3541 4164 6193 3 3542 4168 6195 3 3543 4172 6197 3 3544 4176 6199 3 3545 4180 6201 3 3546 4184 6203 3 3547 4188 6205 3 3548 4192 6207 3 3549 4196 6209 3 3550 4200 6211 3 3551 4204 6213 3 3552 4208 6215 3 3553 4212 6217 3 3554 4216 6219 3 3555 4220 6221 3 3556 4224 6223 3 3557 4228 6225 3 3558 4232 6227 3 3559 4236 6229 3 3560 4240 6231 3 3561 4244 6233 3 3562 4248 6235 3 3563 4252 6237 3 3564 4256 6239 3 3565 4260 6241 3 3566 4264 6243 3 3567 4268 6245 3 3568 4272 6247 3 3569 4276 6249 3 3570 4280 6251 3 3571 4284 6253 3 3572 4288 6255 3 3573 4292 6257 3 3574 4296 6259 3 3575 4300 6261 3 3576 4304 6263 3 3577 4308 6265 3 3578 4312 6267 3 3579 4316 6269 3 3580 4320 6271 3 3581 4324 6273 3 3582 4328 6275 3 3583 4332 6277 3 3584 4336 6279 3 3585 4340 6281 3 3586 4344 6283 3 3587 4348 6285 3 3588 4352 6287 3 3589 4356 6289 3 3590 4360 6291 3 3591 4364 6293 3 3592 4368 6295 3 3593 4372 6297 3 3594 4376 6299 3 3595 4380 6301 3 3596 4384 6303 3 3597 4388 6305 3 3598 4392 6307 3 3599 4396 6309 3 3600 4400 6311 3 3601 4404 6313 3 3602 4408 6315 3 3603 4412 6317 3 3604 4416 6319 3 3605 4420 6321 3 3606 4424 6323 3 3607 4428 6325 3 3608 4432 6327 3 3609 4436 6329 3 3610 4440 6331 3 3611 4444 6333 3 3612 4448 6335 3 3613 4452 6337 3 3614 4456 6339 3 3615 4460 6341 3 3616 4464 6343 3 3617 4468 6345 3 3618 4472 6347 3 3619 4476 6349 3 3620 4480 6351 3 3621 4484 6353 3 3622 4488 6355 3 3623 4492 6357 3 3624 4496 6359 3 3625 4500 6361 3 3626 4504 6363 3 3627 4508 6365 3 3628 4512 6367 3 3629 4516 6369 3 3630 4520 6371 3 3631 4524 6373 3 3632 4528 6375 3 3633 4532 6377 3 3634 4536 6379 3 3635 4540 6381 3 3636 4544 6383 3 3637 4548 6385 3 3638 4552 6387 3 3639 4556 6389 3 3640 4560 6391 3 3641 4564 6393 3 3642 4568 6395 3 3643 4572 6397 3 3644 4576 6399 3 3645 4580 6401 3 3646 4584 6403 3 3647 4588 6405 3 3648 4592 6407 3 3649 4596 6409 3 3650 4600 6411 3 3651 4604 6413 3 3652 4608 6415 3 3653 4612 6417 3 3654 4616 6419 3 3655 4620 6421 3 3656 4624 6423 3 3657 4628 6425 3 3658 4632 6427 3 3659 4636 6429 3 3660 4640 6431 3 3661 4644 6433 3 3662 4648 6435 3 3663 4652 6437 3 3664 4656 6439 3 3665 4660 6441 3 3666 4664 6443 3 3667 4668 6445 3 3668 4672 6447 3 3669 4676 6449 3 3670 4680 6451 3 3671 4684 6453 3 3672 4688 6455 3 3673 4692 6457 3 3674 4696 6459 3 3675 4700 6461 3 3676 4704 6463 3 3677 4708 6465 3 3678 4712 6467 3 3679 4716 6469 3 3680 4720 6471 3 3681 4724 6473 3 3682 4728 6475 3 3683 4732 6477 3 3684 4736 6479 3 3685 4740 6481 3 3686 4744 6483 3 3687 4748 6485 3 3688 4752 6487 3 3689 4756 6489 3 3690 4760 6491 3 3691 4764 6493 3 3692 4768 6495 3 3693 4772 6497 3 3694 4776 6499 3 3695 4780 6501 3 3696 4784 6503 3 3697 4788 6505 3 3698 4792 6507 3 3699 4796 6509 3 3700 4800 6511 3 3701 4804 6513 3 3702 4808 6515 3 3703 4812 6517 3 3704 4816 6519 3 3705 4820 6521 3 3706 4824 6523 3 3707 4828 6525 3 3708 4832 6527 3 3709 4836 6529 3 3710 4840 6531 3 3711 4844 6533 3 3712 4848 6535 3 3713 4852 6537 3 3714 4856 6539 3 3715 4860 6541 3 3716 4864 6543 3 3717 4868 6545 3 3718 4872 6547 3 3719 4876 6549 3 3720 4880 6551 3 3721 4884 6553 3 3722 4888 6555 3 3723 4892 6557 3 3724 4896 6559 3 3725 4900 6561 3 3726 4904 6563 3 3727 4908 6565 3 3728 4912 6567 3 3729 4916 6569 3 3730 4920 6571 3 3731 4924 6573 3 3732 4928 6575 3 3733 4932 6577 3 3734 4936 6579 3 3735 4940 6581 3 3736 4944 6583 3 3737 4948 6585 3 3738 4952 6587 3 3739 4956 6589 3 3740 4960 6591 3 3741 4964 6593 3 3742 4968 6595 3 3743 4972 6597 3 3744 4976 6599 3 3745 4980 6601 3 3746 4984 6603 3 3747 4988 6605 3 3748 4992 6607 3 3749 4996 6609 3 3750 5000 6611 3 3751 5001 6613 3 3752 5003 6615 3 3753 5005 6617 3 3754 5007 6619 3 3755 5008 6621 3 3756 5009 6623 3 3757 5011 6625 3 3758 5013 6627 3 3759 5015 6629 3 3760 5016 6631 3 3761 5017 6633 3 3762 5019 6635 3 3763 5021 6637 3 3764 5023 6639 3 3765 5024 6641 3 3766 5025 6643 3 3767 5027 6645 3 3768 5029 6647 3 3769 5031 6649 3 3770 5032 6651 3 3771 5033 6653 3 3772 5035 6655 3 3773 5037 6657 3 3774 5039 6659 3 3775 5040 6661 3 3776 5041 6663 3 3777 5043 6665 3 3778 5045 6667 3 3779 5047 6669 3 3780 5048 6671 3 3781 5049 6673 3 3782 5051 6675 3 3783 5053 6677 3 3784 5055 6679 3 3785 5056 6681 3 3786 5057 6683 3 3787 5059 6685 3 3788 5061 6687 3 3789 5063 6689 3 3790 5064 6691 3 3791 5065 6693 3 3792 5067 6695 3 3793 5069 6697 3 3794 5071 6699 3 3795 5072 6701 3 3796 5073 6703 3 3797 5075 6705 3 3798 5077 6707 3 3799 5079 6709 3 3800 5080 6711 3 3801 5081 6713 3 3802 5083 6715 3 3803 5085 6717 3 3804 5087 6719 3 3805 5088 6721 3 3806 5089 6723 3 3807 5091 6725 3 3808 5093 6727 3 3809 5095 6729 3 3810 5096 6731 3 3811 5097 6733 3 3812 5099 6735 3 3813 5101 6737 3 3814 5103 6739 3 3815 5104 6741 3 3816 5105 6743 3 3817 5107 6745 3 3818 5109 6747 3 3819 5111 6749 3 3820 5112 6751 3 3821 5113 6753 3 3822 5115 6755 3 3823 5117 6757 3 3824 5119 6759 3 3825 5120 6761 3 3826 5121 6763 3 3827 5123 6765 3 3828 5125 6767 3 3829 5127 6769 3 3830 5128 6771 3 3831 5129 6773 3 3832 5131 6775 3 3833 5133 6777 3 3834 5135 6779 3 3835 5136 6781 3 3836 5137 6783 3 3837 5139 6785 3 3838 5141 6787 3 3839 5143 6789 3 3840 5144 6791 3 3841 5145 6793 3 3842 5147 6795 3 3843 5149 6797 3 3844 5151 6799 3 3845 5152 6801 3 3846 5153 6803 3 3847 5155 6805 3 3848 5157 6807 3 3849 5159 6809 3 3850 5160 6811 3 3851 5161 6813 3 3852 5163 6815 3 3853 5165 6817 3 3854 5167 6819 3 3855 5168 6821 3 3856 5169 6823 3 3857 5171 6825 3 3858 5173 6827 3 3859 5175 6829 3 3860 5176 6831 3 3861 5177 6833 3 3862 5179 6835 3 3863 5181 6837 3 3864 5183 6839 3 3865 5184 6841 3 3866 5185 6843 3 3867 5187 6845 3 3868 5189 6847 3 3869 5191 6849 3 3870 5192 6851 3 3871 5193 6853 3 3872 5195 6855 3 3873 5197 6857 3 3874 5199 6859 3 3875 5200 6861 3 3876 5201 6863 3 3877 5203 6865 3 3878 5205 6867 3 3879 5207 6869 3 3880 5208 6871 3 3881 5209 6873 3 3882 5211 6875 3 3883 5213 6877 3 3884 5215 6879 3 3885 5216 6881 3 3886 5217 6883 3 3887 5219 6885 3 3888 5221 6887 3 3889 5223 6889 3 3890 5224 6891 3 3891 5225 6893 3 3892 5227 6895 3 3893 5229 6897 3 3894 5231 6899 3 3895 5232 6901 3 3896 5233 6903 3 3897 5235 6905 3 3898 5237 6907 3 3899 5239 6909 3 3900 5240 6911 3 3901 5241 6913 3 3902 5243 6915 3 3903 5245 6917 3 3904 5247 6919 3 3905 5248 6921 3 3906 5249 6923 3 3907 5251 6925 3 3908 5253 6927 3 3909 5255 6929 3 3910 5256 6931 3 3911 5257 6933 3 3912 5259 6935 3 3913 5261 6937 3 3914 5263 6939 3 3915 5264 6941 3 3916 5265 6943 3 3917 5267 6945 3 3918 5269 6947 3 3919 5271 6949 3 3920 5272 6951 3 3921 5273 6953 3 3922 5275 6955 3 3923 5277 6957 3 3924 5279 6959 3 3925 5280 6961 3 3926 5281 6963 3 3927 5283 6965 3 3928 5285 6967 3 3929 5287 6969 3 3930 5288 6971 3 3931 5289 6973 3 3932 5291 6975 3 3933 5293 6977 3 3934 5295 6979 3 3935 5296 6981 3 3936 5297 6983 3 3937 5299 6985 3 3938 5301 6987 3 3939 5303 6989 3 3940 5304 6991 3 3941 5305 6993 3 3942 5307 6995 3 3943 5309 6997 3 3944 5311 6999 3 3945 5312 7001 3 3946 5313 7003 3 3947 5315 7005 3 3948 5317 7007 3 3949 5319 7009 3 3950 5320 7011 3 3951 5321 7013 3 3952 5323 7015 3 3953 5325 7017 3 3954 5327 7019 3 3955 5328 7021 3 3956 5329 7023 3 3957 5331 7025 3 3958 5333 7027 3 3959 5335 7029 3 3960 5336 7031 3 3961 5337 7033 3 3962 5339 7035 3 3963 5341 7037 3 3964 5343 7039 3 3965 5344 7041 3 3966 5345 7043 3 3967 5347 7045 3 3968 5349 7047 3 3969 5351 7049 3 3970 5352 7051 3 3971 5353 7053 3 3972 5355 7055 3 3973 5357 7057 3 3974 5359 7059 3 3975 5360 7061 3 3976 5361 7063 3 3977 5363 7065 3 3978 5365 7067 3 3979 5367 7069 3 3980 5368 7071 3 3981 5369 7073 3 3982 5371 7075 3 3983 5373 7077 3 3984 5375 7079 3 3985 5376 7081 3 3986 5377 7083 3 3987 5379 7085 3 3988 5381 7087 3 3989 5383 7089 3 3990 5384 7091 3 3991 5385 7093 3 3992 5387 7095 3 3993 5389 7097 3 3994 5391 7099 3 3995 5392 7101 3 3996 5393 7103 3 3997 5395 7105 3 3998 5397 7107 3 3999 5399 7109 3 4000 5400 7111 3 5 4001 5401 3 10 4002 5403 3 15 4003 5405 3 20 4004 5407 3 25 4005 5408 3 30 4006 5409 3 35 4007 5411 3 40 4008 5413 3 45 4009 5415 3 50 4010 5416 3 55 4011 5417 3 60 4012 5419 3 65 4013 5421 3 70 4014 5423 3 75 4015 5424 3 80 4016 5425 3 85 4017 5427 3 90 4018 5429 3 95 4019 5431 3 100 4020 5432 3 105 4021 5433 3 110 4022 5435 3 115 4023 5437 3 120 4024 5439 3 125 4025 5440 3 130 4026 5441 3 135 4027 5443 3 140 4028 5445 3 145 4029 5447 3 150 4030 5448 3 155 4031 5449 3 160 4032 5451 3 165 4033 5453 3 170 4034 5455 3 175 4035 5456 3 180 4036 5457 3 185 4037 5459 3 190 4038 5461 3 195 4039 5463 3 200 4040 5464 3 205 4041 5465 3 210 4042 5467 3 215 4043 5469 3 220 4044 5471 3 225 4045 5472 3 230 4046 5473 3 235 4047 5475 3 240 4048 5477 3 245 4049 5479 3 250 4050 5480 3 255 4051 5481 3 260 4052 5483 3 265 4053 5485 3 270 4054 5487 3 275 4055 5488 3 280 4056 5489 3 285 4057 5491 3 290 4058 5493 3 295 4059 5495 3 300 4060 5496 3 305 4061 5497 3 310 4062 5499 3 315 4063 5501 3 320 4064 5503 3 325 4065 5504 3 330 4066 5505 3 335 4067 5507 3 340 4068 5509 3 345 4069 5511 3 350 4070 5512 3 355 4071 5513 3 360 4072 5515 3 365 4073 5517 3 370 4074 5519 3 375 4075 5520 3 380 4076 5521 3 385 4077 5523 3 390 4078 5525 3 395 4079 5527 3 400 4080 5528 3 405 4081 5529 3 410 4082 5531 3 415 4083 5533 3 420 4084 5535 3 425 4085 5536 3 430 4086 5537 3 435 4087 5539 3 440 4088 5541 3 445 4089 5543 3 450 4090 5544 3 455 4091 5545 3 460 4092 5547 3 465 4093 5549 3 470 4094 5551 3 475 4095 5552 3 480 4096 5553 3 485 4097 5555 3 490 4098 5557 3 495 4099 5559 3 500 4100 5560 3 505 4101 5561 3 510 4102 5563 3 515 4103 5565 3 520 4104 5567 3 525 4105 5568 3 530 4106 5569 3 535 4107 5571 3 540 4108 5573 3 545 4109 5575 3 550 4110 5576 3 555 4111 5577 3 560 4112 5579 3 565 4113 5581 3 570 4114 5583 3 575 4115 5584 3 580 4116 5585 3 585 4117 5587 3 590 4118 5589 3 595 4119 5591 3 600 4120 5592 3 605 4121 5593 3 610 4122 5595 3 615 4123 5597 3 620 4124 5599 3 625 4125 5600 3 630 4126 5601 3 635 4127 5603 3 640 4128 5605 3 645 4129 5607 3 650 4130 5608 3 655 4131 5609 3 660 4132 5611 3 665 4133 5613 3 670 4134 5615 3 675 4135 5616 3 680 4136 5617 3 685 4137 5619 3 690 4138 5621 3 695 4139 5623 3 700 4140 5624 3 705 4141 5625 3 710 4142 5627 3 715 4143 5629 3 720 4144 5631 3 725 4145 5632 3 730 4146 5633 3 735 4147 5635 3 740 4148 5637 3 745 4149 5639 3 750 4150 5640 3 755 4151 5641 3 760 4152 5643 3 765 4153 5645 3 770 4154 5647 3 775 4155 5648 3 780 4156 5649 3 785 4157 5651 3 790 4158 5653 3 795 4159 5655 3 800 4160 5656 3 805 4161 5657 3 810 4162 5659 3 815 4163 5661 3 820 4164 5663 3 825 4165 5664 3 830 4166 5665 3 835 4167 5667 3 840 4168 5670 3 845 4169 5672 3 850 4170 5673 3 855 4171 5675 3 860 4172 5678 3 865 4173 5680 3 870 4174 5683 3 875 4175 5685 3 880 4176 5686 3 885 4177 5688 3 890 4178 5691 3 895 4179 5693 3 900 4180 5695 3 905 4181 5697 3 910 4182 5699 3 915 4183 5702 3 920 4184 5704 3 925 4185 5705 3 930 4186 5707 3 935 4187 5710 3 940 4188 5712 3 945 4189 5715 3 950 4190 5717 3 955 4191 5718 3 960 4192 5720 3 965 4193 5723 3 970 4194 5725 3 975 4195 5727 3 980 4196 5729 3 985 4197 5731 3 990 4198 5734 3 995 4199 5736 3 1000 4200 5737 3 1005 4201 5739 3 1010 4202 5742 3 1015 4203 5744 3 1020 4204 5747 3 1025 4205 5749 3 1030 4206 5750 3 1035 4207 5752 3 1040 4208 5755 3 1045 4209 5757 3 1050 4210 5759 3 1055 4211 5761 3 1060 4212 5763 3 1065 4213 5766 3 1070 4214 5768 3 1075 4215 5769 3 1080 4216 5771 3 1085 4217 5774 3 1090 4218 5776 3 1095 4219 5779 3 1100 4220 5781 3 1105 4221 5782 3 1110 4222 5784 3 1115 4223 5787 3 1120 4224 5789 3 1125 4225 5791 3 1130 4226 5793 3 1135 4227 5795 3 1140 4228 5798 3 1145 4229 5800 3 1150 4230 5801 3 1155 4231 5803 3 1160 4232 5806 3 1165 4233 5808 3 1170 4234 5811 3 1175 4235 5813 3 1180 4236 5814 3 1185 4237 5816 3 1190 4238 5819 3 1195 4239 5821 3 1200 4240 5823 3 1205 4241 5825 3 1210 4242 5827 3 1215 4243 5830 3 1220 4244 5832 3 1225 4245 5833 3 1230 4246 5835 3 1235 4247 5838 3 1240 4248 5840 3 1245 4249 5843 3 1250 4250 5845 3 1255 4251 5846 3 1260 4252 5848 3 1265 4253 5851 3 1270 4254 5853 3 1275 4255 5855 3 1280 4256 5857 3 1285 4257 5859 3 1290 4258 5862 3 1295 4259 5864 3 1300 4260 5865 3 1305 4261 5867 3 1310 4262 5870 3 1315 4263 5872 3 1320 4264 5875 3 1325 4265 5877 3 1330 4266 5878 3 1335 4267 5880 3 1340 4268 5883 3 1345 4269 5885 3 1350 4270 5887 3 1355 4271 5889 3 1360 4272 5891 3 1365 4273 5894 3 1370 4274 5896 3 1375 4275 5897 3 1380 4276 5899 3 1385 4277 5902 3 1390 4278 5904 3 1395 4279 5907 3 1400 4280 5909 3 1405 4281 5910 3 1410 4282 5912 3 1415 4283 5915 3 1420 4284 5917 3 1425 4285 5919 3 1430 4286 5921 3 1435 4287 5923 3 1440 4288 5926 3 1445 4289 5928 3 1450 4290 5929 3 1455 4291 5931 3 1460 4292 5934 3 1465 4293 5936 3 1470 4294 5939 3 1475 4295 5941 3 1480 4296 5942 3 1485 4297 5944 3 1490 4298 5947 3 1495 4299 5949 3 1500 4300 5951 3 1505 4301 5953 3 1510 4302 5955 3 1515 4303 5958 3 1520 4304 5960 3 1525 4305 5961 3 1530 4306 5963 3 1535 4307 5966 3 1540 4308 5968 3 1545 4309 5971 3 1550 4310 5973 3 1555 4311 5974 3 1560 4312 5976 3 1565 4313 5979 3 1570 4314 5981 3 1575 4315 5983 3 1580 4316 5985 3 1585 4317 5987 3 1590 4318 5990 3 1595 4319 5992 3 1600 4320 5993 3 1605 4321 5995 3 1610 4322 5998 3 1615 4323 6000 3 1620 4324 6003 3 1625 4325 6005 3 1630 4326 6006 3 1635 4327 6008 3 1640 4328 6011 3 1645 4329 6013 3 1650 4330 6015 3 1655 4331 6017 3 1660 4332 6019 3 1665 4333 6022 3 1670 4334 6024 3 1675 4335 6025 3 1680 4336 6027 3 1685 4337 6030 3 1690 4338 6032 3 1695 4339 6035 3 1700 4340 6037 3 1705 4341 6038 3 1710 4342 6040 3 1715 4343 6043 3 1720 4344 6045 3 1725 4345 6047 3 1730 4346 6049 3 1735 4347 6051 3 1740 4348 6054 3 1745 4349 6056 3 1750 4350 6057 3 1755 4351 6059 3 1760 4352 6062 3 1765 4353 6064 3 1770 4354 6067 3 1775 4355 6069 3 1780 4356 6070 3 1785 4357 6072 3 1790 4358 6075 3 1795 4359 6077 3 1800 4360 6079 3 1805 4361 6081 3 1810 4362 6083 3 1815 4363 6086 3 1820 4364 6088 3 1825 4365 6089 3 1830 4366 6091 3 1835 4367 6094 3 1840 4368 6096 3 1845 4369 6099 3 1850 4370 6101 3 1855 4371 6102 3 1860 4372 6104 3 1865 4373 6107 3 1870 4374 6109 3 1875 4375 6111 3 1880 4376 6112 3 1885 4377 6114 3 1890 4378 6116 3 1895 4379 6118 3 1900 4380 6119 3 1905 4381 6120 3 1910 4382 6122 3 1915 4383 6124 3 1920 4384 6126 3 1925 4385 6127 3 1930 4386 6128 3 1935 4387 6130 3 1940 4388 6132 3 1945 4389 6134 3 1950 4390 6135 3 1955 4391 6136 3 1960 4392 6138 3 1965 4393 6140 3 1970 4394 6142 3 1975 4395 6143 3 1980 4396 6144 3 1985 4397 6146 3 1990 4398 6148 3 1995 4399 6150 3 2000 4400 6151 3 2005 4401 6152 3 2010 4402 6154 3 2015 4403 6156 3 2020 4404 6158 3 2025 4405 6159 3 2030 4406 6160 3 2035 4407 6162 3 2040 4408 6164 3 2045 4409 6166 3 2050 4410 6167 3 2055 4411 6168 3 2060 4412 6170 3 2065 4413 6172 3 2070 4414 6174 3 2075 4415 6175 3 2080 4416 6176 3 2085 4417 6178 3 2090 4418 6180 3 2095 4419 6182 3 2100 4420 6183 3 2105 4421 6184 3 2110 4422 6186 3 2115 4423 6188 3 2120 4424 6190 3 2125 4425 6191 3 2130 4426 6192 3 2135 4427 6194 3 2140 4428 6196 3 2145 4429 6198 3 2150 4430 6199 3 2155 4431 6200 3 2160 4432 6202 3 2165 4433 6204 3 2170 4434 6206 3 2175 4435 6207 3 2180 4436 6208 3 2185 4437 6210 3 2190 4438 6212 3 2195 4439 6214 3 2200 4440 6215 3 2205 4441 6216 3 2210 4442 6218 3 2215 4443 6220 3 2220 4444 6222 3 2225 4445 6223 3 2230 4446 6224 3 2235 4447 6226 3 2240 4448 6228 3 2245 4449 6230 3 2250 4450 6231 3 2255 4451 6232 3 2260 4452 6234 3 2265 4453 6236 3 2270 4454 6238 3 2275 4455 6239 3 2280 4456 6240 3 2285 4457 6242 3 2290 4458 6244 3 2295 4459 6246 3 2300 4460 6247 3 2305 4461 6248 3 2310 4462 6250 3 2315 4463 6252 3 2320 4464 6254 3 2325 4465 6255 3 2330 4466 6256 3 2335 4467 6258 3 2340 4468 6260 3 2345 4469 6262 3 2350 4470 6263 3 2355 4471 6264 3 2360 4472 6266 3 2365 4473 6268 3 2370 4474 6270 3 2375 4475 6271 3 2380 4476 6272 3 2385 4477 6274 3 2390 4478 6276 3 2395 4479 6278 3 2400 4480 6279 3 2405 4481 6280 3 2410 4482 6282 3 2415 4483 6284 3 2420 4484 6286 3 2425 4485 6287 3 2430 4486 6288 3 2435 4487 6290 3 2440 4488 6292 3 2445 4489 6294 3 2450 4490 6295 3 2455 4491 6296 3 2460 4492 6298 3 2465 4493 6300 3 2470 4494 6302 3 2475 4495 6303 3 2480 4496 6304 3 2485 4497 6306 3 2490 4498 6308 3 2495 4499 6310 3 2500 4500 6311 3 2505 4501 6312 3 2510 4502 6314 3 2515 4503 6316 3 2520 4504 6318 3 2525 4505 6319 3 2530 4506 6320 3 2535 4507 6322 3 2540 4508 6324 3 2545 4509 6326 3 2550 4510 6327 3 2555 4511 6328 3 2560 4512 6330 3 2565 4513 6332 3 2570 4514 6334 3 2575 4515 6335 3 2580 4516 6336 3 2585 4517 6338 3 2590 4518 6340 3 2595 4519 6342 3 2600 4520 6343 3 2605 4521 6344 3 2610 4522 6346 3 2615 4523 6348 3 2620 4524 6350 3 2625 4525 6351 3 2630 4526 6352 3 2635 4527 6354 3 2640 4528 6356 3 2645 4529 6358 3 2650 4530 6359 3 2655 4531 6360 3 2660 4532 6362 3 2665 4533 6364 3 2670 4534 6366 3 2675 4535 6367 3 2680 4536 6368 3 2685 4537 6370 3 2690 4538 6372 3 2695 4539 6374 3 2700 4540 6375 3 2705 4541 6376 3 2710 4542 6378 3 2715 4543 6380 3 2720 4544 6382 3 2725 4545 6383 3 2730 4546 6384 3 2735 4547 6386 3 2740 4548 6388 3 2745 4549 6390 3 2750 4550 6391 3 2755 4551 6392 3 2760 4552 6394 3 2765 4553 6396 3 2770 4554 6398 3 2775 4555 6399 3 2780 4556 6400 3 2785 4557 6402 3 2790 4558 6404 3 2795 4559 6406 3 2800 4560 6407 3 2805 4561 6408 3 2810 4562 6410 3 2815 4563 6412 3 2820 4564 6414 3 2825 4565 6415 3 2830 4566 6416 3 2835 4567 6418 3 2840 4568 6420 3 2845 4569 6422 3 2850 4570 6423 3 2855 4571 6424 3 2860 4572 6426 3 2865 4573 6428 3 2870 4574 6430 3 2875 4575 6431 3 2880 4576 6432 3 2885 4577 6434 3 2890 4578 6436 3 2895 4579 6438 3 2900 4580 6439 3 2905 4581 6440 3 2910 4582 6442 3 2915 4583 6444 3 2920 4584 6446 3 2925 4585 6447 3 2930 4586 6448 3 2935 4587 6450 3 2940 4588 6452 3 2945 4589 6454 3 2950 4590 6455 3 2955 4591 6456 3 2960 4592 6458 3 2965 4593 6460 3 2970 4594 6462 3 2975 4595 6463 3 2980 4596 6464 3 2985 4597 6466 3 2990 4598 6468 3 2995 4599 6470 3 3000 4600 6471 3 3005 4601 6472 3 3010 4602 6474 3 3015 4603 6476 3 3020 4604 6478 3 3025 4605 6479 3 3030 4606 6480 3 3035 4607 6482 3 3040 4608 6484 3 3045 4609 6486 3 3050 4610 6487 3 3055 4611 6488 3 3060 4612 6490 3 3065 4613 6492 3 3070 4614 6494 3 3075 4615 6495 3 3080 4616 6496 3 3085 4617 6498 3 3090 4618 6500 3 3095 4619 6502 3 3100 4620 6503 3 3105 4621 6504 3 3110 4622 6506 3 3115 4623 6508 3 3120 4624 6510 3 3125 4625 6511 3 3130 4626 6512 3 3135 4627 6514 3 3140 4628 6516 3 3145 4629 6518 3 3150 4630 6519 3 3155 4631 6520 3 3160 4632 6522 3 3165 4633 6524 3 3170 4634 6526 3 3175 4635 6527 3 3180 4636 6528 3 3185 4637 6530 3 3190 4638 6532 3 3195 4639 6534 3 3200 4640 6535 3 3205 4641 6536 3 3210 4642 6538 3 3215 4643 6540 3 3220 4644 6542 3 3225 4645 6543 3 3230 4646 6544 3 3235 4647 6546 3 3240 4648 6548 3 3245 4649 6550 3 3250 4650 6551 3 3255 4651 6552 3 3260 4652 6554 3 3265 4653 6556 3 3270 4654 6558 3 3275 4655 6559 3 3280 4656 6560 3 3285 4657 6562 3 3290 4658 6564 3 3295 4659 6566 3 3300 4660 6567 3 3305 4661 6568 3 3310 4662 6570 3 3315 4663 6572 3 3320 4664 6574 3 3325 4665 6575 3 3330 4666 6576 3 3335 4667 6578 3 3340 4668 6580 3 3345 4669 6582 3 3350 4670 6583 3 3355 4671 6584 3 3360 4672 6586 3 3365 4673 6588 3 3370 4674 6590 3 3375 4675 6591 3 3380 4676 6592 3 3385 4677 6594 3 3390 4678 6596 3 3395 4679 6598 3 3400 4680 6599 3 3405 4681 6600 3 3410 4682 6602 3 3415 4683 6604 3 3420 4684 6606 3 3425 4685 6607 3 3430 4686 6608 3 3435 4687 6610 3 3440 4688 6612 3 3445 4689 6614 3 3450 4690 6615 3 3455 4691 6616 3 3460 4692 6618 3 3465 4693 6620 3 3470 4694 6622 3 3475 4695 6623 3 3480 4696 6624 3 3485 4697 6626 3 3490 4698 6628 3 3495 4699 6630 3 3500 4700 6631 3 3505 4701 6632 3 3510 4702 6634 3 3515 4703 6636 3 3520 4704 6638 3 3525 4705 6639 3 3530 4706 6640 3 3535 4707 6642 3 3540 4708 6644 3 3545 4709 6646 3 3550 4710 6647 3 3555 4711 6648 3 3560 4712 6650 3 3565 4713 6652 3 3570 4714 6654 3 3575 4715 6655 3 3580 4716 6656 3 3585 4717 6658 3 3590 4718 6660 3 3595 4719 6662 3 3600 4720 6663 3 3605 4721 6664 3 3610 4722 6666 3 3615 4723 6668 3 3620 4724 6670 3 3625 4725 6671 3 3630 4726 6672 3 3635 4727 6674 3 3640 4728 6676 3 3645 4729 6678 3 3650 4730 6679 3 3655 4731 6680 3 3660 4732 6682 3 3665 4733 6684 3 3670 4734 6686 3 3675 4735 6687 3 3680 4736 6688 3 3685 4737 6690 3 3690 4738 6692 3 3695 4739 6694 3 3700 4740 6695 3 3705 4741 6696 3 3710 4742 6698 3 3715 4743 6700 3 3720 4744 6702 3 3725 4745 6703 3 3730 4746 6704 3 3735 4747 6706 3 3740 4748 6708 3 3745 4749 6710 3 3750 4750 6711 3 3755 4751 6712 3 3760 4752 6714 3 3765 4753 6716 3 3770 4754 6718 3 3775 4755 6719 3 3780 4756 6720 3 3785 4757 6722 3 3790 4758 6724 3 3795 4759 6726 3 3800 4760 6727 3 3805 4761 6728 3 3810 4762 6730 3 3815 4763 6732 3 3820 4764 6734 3 3825 4765 6735 3 3830 4766 6736 3 3835 4767 6738 3 3840 4768 6740 3 3845 4769 6742 3 3850 4770 6743 3 3855 4771 6744 3 3860 4772 6746 3 3865 4773 6748 3 3870 4774 6750 3 3875 4775 6751 3 3880 4776 6752 3 3885 4777 6754 3 3890 4778 6756 3 3895 4779 6758 3 3900 4780 6759 3 3905 4781 6760 3 3910 4782 6762 3 3915 4783 6764 3 3920 4784 6766 3 3925 4785 6767 3 3930 4786 6768 3 3935 4787 6770 3 3940 4788 6772 3 3945 4789 6774 3 3950 4790 6775 3 3955 4791 6776 3 3960 4792 6778 3 3965 4793 6780 3 3970 4794 6782 3 3975 4795 6783 3 3980 4796 6784 3 3985 4797 6786 3 3990 4798 6788 3 3995 4799 6790 3 4000 4800 6791 3 4005 4801 6792 3 4010 4802 6794 3 4015 4803 6796 3 4020 4804 6798 3 4025 4805 6799 3 4030 4806 6800 3 4035 4807 6802 3 4040 4808 6804 3 4045 4809 6806 3 4050 4810 6807 3 4055 4811 6808 3 4060 4812 6810 3 4065 4813 6812 3 4070 4814 6814 3 4075 4815 6815 3 4080 4816 6816 3 4085 4817 6818 3 4090 4818 6820 3 4095 4819 6822 3 4100 4820 6823 3 4105 4821 6824 3 4110 4822 6826 3 4115 4823 6828 3 4120 4824 6830 3 4125 4825 6831 3 4130 4826 6832 3 4135 4827 6834 3 4140 4828 6836 3 4145 4829 6838 3 4150 4830 6839 3 4155 4831 6840 3 4160 4832 6842 3 4165 4833 6844 3 4170 4834 6846 3 4175 4835 6847 3 4180 4836 6848 3 4185 4837 6850 3 4190 4838 6852 3 4195 4839 6854 3 4200 4840 6855 3 4205 4841 6856 3 4210 4842 6858 3 4215 4843 6860 3 4220 4844 6862 3 4225 4845 6863 3 4230 4846 6864 3 4235 4847 6866 3 4240 4848 6868 3 4245 4849 6870 3 4250 4850 6871 3 4255 4851 6872 3 4260 4852 6874 3 4265 4853 6876 3 4270 4854 6878 3 4275 4855 6879 3 4280 4856 6880 3 4285 4857 6882 3 4290 4858 6884 3 4295 4859 6886 3 4300 4860 6887 3 4305 4861 6888 3 4310 4862 6890 3 4315 4863 6892 3 4320 4864 6894 3 4325 4865 6895 3 4330 4866 6896 3 4335 4867 6898 3 4340 4868 6900 3 4345 4869 6902 3 4350 4870 6903 3 4355 4871 6904 3 4360 4872 6906 3 4365 4873 6908 3 4370 4874 6910 3 4375 4875 6911 3 4380 4876 6912 3 4385 4877 6914 3 4390 4878 6916 3 4395 4879 6918 3 4400 4880 6919 3 4405 4881 6920 3 4410 4882 6922 3 4415 4883 6924 3 4420 4884 6926 3 4425 4885 6927 3 4430 4886 6928 3 4435 4887 6930 3 4440 4888 6932 3 4445 4889 6934 3 4450 4890 6935 3 4455 4891 6936 3 4460 4892 6938 3 4465 4893 6940 3 4470 4894 6942 3 4475 4895 6943 3 4480 4896 6944 3 4485 4897 6946 3 4490 4898 6948 3 4495 4899 6950 3 4500 4900 6951 3 4505 4901 6952 3 4510 4902 6954 3 4515 4903 6956 3 4520 4904 6958 3 4525 4905 6959 3 4530 4906 6960 3 4535 4907 6962 3 4540 4908 6964 3 4545 4909 6966 3 4550 4910 6967 3 4555 4911 6968 3 4560 4912 6970 3 4565 4913 6972 3 4570 4914 6974 3 4575 4915 6975 3 4580 4916 6976 3 4585 4917 6978 3 4590 4918 6980 3 4595 4919 6982 3 4600 4920 6983 3 4605 4921 6984 3 4610 4922 6986 3 4615 4923 6988 3 4620 4924 6990 3 4625 4925 6991 3 4630 4926 6992 3 4635 4927 6994 3 4640 4928 6996 3 4645 4929 6998 3 4650 4930 6999 3 4655 4931 7000 3 4660 4932 7002 3 4665 4933 7004 3 4670 4934 7006 3 4675 4935 7007 3 4680 4936 7008 3 4685 4937 7010 3 4690 4938 7012 3 4695 4939 7014 3 4700 4940 7015 3 4705 4941 7016 3 4710 4942 7018 3 4715 4943 7020 3 4720 4944 7022 3 4725 4945 7023 3 4730 4946 7024 3 4735 4947 7026 3 4740 4948 7028 3 4745 4949 7030 3 4750 4950 7031 3 4755 4951 7032 3 4760 4952 7034 3 4765 4953 7036 3 4770 4954 7038 3 4775 4955 7039 3 4780 4956 7040 3 4785 4957 7042 3 4790 4958 7044 3 4795 4959 7046 3 4800 4960 7047 3 4805 4961 7048 3 4810 4962 7050 3 4815 4963 7052 3 4820 4964 7054 3 4825 4965 7055 3 4830 4966 7056 3 4835 4967 7058 3 4840 4968 7060 3 4845 4969 7062 3 4850 4970 7063 3 4855 4971 7064 3 4860 4972 7066 3 4865 4973 7068 3 4870 4974 7070 3 4875 4975 7071 3 4880 4976 7072 3 4885 4977 7074 3 4890 4978 7076 3 4895 4979 7078 3 4900 4980 7079 3 4905 4981 7080 3 4910 4982 7082 3 4915 4983 7084 3 4920 4984 7086 3 4925 4985 7087 3 4930 4986 7088 3 4935 4987 7090 3 4940 4988 7092 3 4945 4989 7094 3 4950 4990 7095 3 4955 4991 7096 3 4960 4992 7098 3 4965 4993 7100 3 4970 4994 7102 3 4975 4995 7103 3 4980 4996 7104 3 4985 4997 7106 3 4990 4998 7108 3 4995 4999 7110 2 5000 7111 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/p2-p2.grf000066400000000000000000000000341514310134000252660ustar00rootroot000000000000000 4 4 0 000 1 1 1 0 1 3 1 2 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-0.adm000066400000000000000000005536321514310134000257530ustar00rootroot000000000000003 4 0 3431 34920 858 35423 0 000 18 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 18 19 20 21 22 23 24 25 26 27 28 29 0 1 2 3 4 5 18 12 13 14 15 16 17 30 31 32 33 34 35 36 37 38 39 40 41 18 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 18 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 18 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 18 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 18 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 18 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 18 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 18 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 18 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 18 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 18 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 18 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 18 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 18 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 18 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 18 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 18 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 18 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 18 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 18 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 18 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 18 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 18 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 18 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 18 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 18 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 18 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 18 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 18 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 18 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 18 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 18 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 18 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 18 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 18 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 18 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 18 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 18 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 18 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 18 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 18 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 18 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 18 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 18 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 18 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 18 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 18 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 18 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 18 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 12 636 637 638 639 640 641 642 643 644 645 646 647 12 648 649 650 651 652 653 654 655 656 657 658 659 12 660 661 662 663 664 665 666 667 668 669 670 671 12 672 673 674 675 676 677 678 679 680 681 682 683 12 684 685 686 687 688 689 690 691 692 693 694 695 12 696 697 698 699 700 701 702 703 704 705 706 707 12 642 643 644 645 646 647 708 709 710 711 712 713 12 654 655 656 657 658 659 714 715 716 717 718 719 12 666 667 668 669 670 671 720 721 722 723 724 725 12 678 679 680 681 682 683 726 727 728 729 730 731 12 690 691 692 693 694 695 732 733 734 735 736 737 12 702 703 704 705 706 707 738 739 740 741 742 743 12 708 709 710 711 712 713 744 745 746 747 748 749 12 714 715 716 717 718 719 750 751 752 753 754 755 12 720 721 722 723 724 725 756 757 758 759 760 761 12 726 727 728 729 730 731 762 763 764 765 766 767 12 732 733 734 735 736 737 768 769 770 771 772 773 12 738 739 740 741 742 743 774 775 776 777 778 779 12 744 745 746 747 748 749 780 781 782 783 784 785 12 750 751 752 753 754 755 786 787 788 789 790 791 12 756 757 758 759 760 761 792 793 794 795 796 797 12 762 763 764 765 766 767 798 799 800 801 802 803 12 768 769 770 771 772 773 804 805 806 807 808 809 12 774 775 776 777 778 779 810 811 812 813 814 815 12 816 817 818 819 820 821 822 823 824 825 826 827 12 828 829 830 831 832 833 834 835 836 837 838 839 12 840 841 842 843 844 845 846 847 848 849 850 851 12 852 853 854 855 856 857 858 859 860 861 862 863 12 864 865 866 867 868 869 870 871 872 873 874 875 12 876 877 878 879 880 881 882 883 884 885 886 887 12 888 889 890 891 892 893 816 817 818 819 820 821 12 894 895 896 897 898 899 828 829 830 831 832 833 12 900 901 902 903 904 905 840 841 842 843 844 845 12 906 907 908 909 910 911 852 853 854 855 856 857 12 912 913 914 915 916 917 864 865 866 867 868 869 12 918 919 920 921 922 923 876 877 878 879 880 881 12 924 925 926 927 928 929 888 889 890 891 892 893 12 930 931 932 933 934 935 894 895 896 897 898 899 12 936 937 938 939 940 941 900 901 902 903 904 905 12 942 943 944 945 946 947 906 907 908 909 910 911 12 948 949 950 951 952 953 912 913 914 915 916 917 12 954 955 956 957 958 959 918 919 920 921 922 923 12 960 961 962 963 964 965 924 925 926 927 928 929 12 966 967 968 969 970 971 930 931 932 933 934 935 12 972 973 974 975 976 977 936 937 938 939 940 941 12 978 979 980 981 982 983 942 943 944 945 946 947 12 984 985 986 987 988 989 948 949 950 951 952 953 12 990 991 992 993 994 995 954 955 956 957 958 959 18 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 18 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 996 997 998 999 1000 1001 18 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1014 1015 1016 1017 1018 1019 18 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1026 1027 1028 1029 1030 1031 18 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1038 1039 1040 1041 1042 1043 18 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1050 1051 1052 1053 1054 1055 18 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1062 1063 1064 1065 1066 1067 18 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1074 1075 1076 1077 1078 1079 18 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1086 1087 1088 1089 1090 1091 18 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1098 1099 1100 1101 1102 1103 18 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1110 1111 1112 1113 1114 1115 18 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1122 1123 1124 1125 1126 1127 18 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1134 1135 1136 1137 1138 1139 18 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1146 1147 1148 1149 1150 1151 18 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1158 1159 1160 1161 1162 1163 18 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1170 1171 1172 1173 1174 1175 18 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1182 1183 1184 1185 1186 1187 18 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1194 1195 1196 1197 1198 1199 18 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1206 1207 1208 1209 1210 1211 18 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1218 1219 1220 1221 1222 1223 18 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1230 1231 1232 1233 1234 1235 18 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1242 1243 1244 1245 1246 1247 18 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1254 1255 1256 1257 1258 1259 18 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1266 1267 1268 1269 1270 1271 18 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1278 1279 1280 1281 1282 1283 18 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1290 1291 1292 1293 1294 1295 18 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1302 1303 1304 1305 1306 1307 18 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1314 1315 1316 1317 1318 1319 18 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1326 1327 1328 1329 1330 1331 18 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1338 1339 1340 1341 1342 1343 18 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1350 1351 1352 1353 1354 1355 18 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1362 1363 1364 1365 1366 1367 18 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1374 1375 1376 1377 1378 1379 18 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1386 1387 1388 1389 1390 1391 18 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1398 1399 1400 1401 1402 1403 18 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1410 1411 1412 1413 1414 1415 18 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1422 1423 1424 1425 1426 1427 18 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1434 1435 1436 1437 1438 1439 18 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1446 1447 1448 1449 1450 1451 18 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1458 1459 1460 1461 1462 1463 18 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1470 1471 1472 1473 1474 1475 18 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1482 1483 1484 1485 1486 1487 18 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1494 1495 1496 1497 1498 1499 18 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1506 1507 1508 1509 1510 1511 18 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1518 1519 1520 1521 1522 1523 18 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1530 1531 1532 1533 1534 1535 18 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1542 1543 1544 1545 1546 1547 18 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1554 1555 1556 1557 1558 1559 18 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 18 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1578 1579 1580 1581 1582 1583 18 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 18 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1596 1597 1598 1599 1600 1601 18 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 18 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 18 1632 1633 1634 1635 1636 1637 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 18 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 18 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 18 1644 1645 1646 1647 1648 1649 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 18 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 18 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 18 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 48 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1782 1783 1784 1785 1786 1787 1776 1777 1778 1779 1780 1781 1788 1789 1790 1791 1792 1793 48 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1770 1771 1772 1773 1774 1775 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1812 1813 1814 1815 1816 1817 1806 1807 1808 1809 1810 1811 1818 1819 1820 1821 1822 1823 48 1758 1759 1760 1761 1762 1763 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1770 1771 1772 1773 1774 1775 1764 1765 1766 1767 1768 1769 48 1770 1771 1772 1773 1774 1775 1848 1849 1850 1851 1852 1853 1842 1843 1844 1845 1846 1847 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1800 1801 1802 1803 1804 1805 1794 1795 1796 1797 1798 1799 48 1830 1831 1832 1833 1834 1835 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1842 1843 1844 1845 1846 1847 1836 1837 1838 1839 1840 1841 48 1842 1843 1844 1845 1846 1847 1896 1897 1898 1899 1900 1901 1890 1891 1892 1893 1894 1895 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1860 1861 1862 1863 1864 1865 1854 1855 1856 1857 1858 1859 48 1878 1879 1880 1881 1882 1883 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1890 1891 1892 1893 1894 1895 1884 1885 1886 1887 1888 1889 48 1890 1891 1892 1893 1894 1895 1944 1945 1946 1947 1948 1949 1938 1939 1940 1941 1942 1943 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1908 1909 1910 1911 1912 1913 1902 1903 1904 1905 1906 1907 48 1926 1927 1928 1929 1930 1931 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1938 1939 1940 1941 1942 1943 1932 1933 1934 1935 1936 1937 48 1938 1939 1940 1941 1942 1943 1992 1993 1994 1995 1996 1997 1986 1987 1988 1989 1990 1991 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 1956 1957 1958 1959 1960 1961 1950 1951 1952 1953 1954 1955 48 1974 1975 1976 1977 1978 1979 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 1986 1987 1988 1989 1990 1991 1980 1981 1982 1983 1984 1985 36 2004 2005 2006 2007 2008 2009 2034 2035 2036 2037 2038 2039 1986 1987 1988 1989 1990 1991 2046 2047 2048 2049 2050 2051 2040 2041 2042 2043 2044 2045 1998 1999 2000 2001 2002 2003 48 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2088 2089 2090 2091 2092 2093 2082 2083 2084 2085 2086 2087 2094 2095 2096 2097 2098 2099 48 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2076 2077 2078 2079 2080 2081 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2118 2119 2120 2121 2122 2123 2112 2113 2114 2115 2116 2117 2124 2125 2126 2127 2128 2129 48 2064 2065 2066 2067 2068 2069 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2076 2077 2078 2079 2080 2081 2070 2071 2072 2073 2074 2075 48 2076 2077 2078 2079 2080 2081 2154 2155 2156 2157 2158 2159 2148 2149 2150 2151 2152 2153 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2106 2107 2108 2109 2110 2111 2100 2101 2102 2103 2104 2105 48 2136 2137 2138 2139 2140 2141 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2148 2149 2150 2151 2152 2153 2142 2143 2144 2145 2146 2147 48 2148 2149 2150 2151 2152 2153 2202 2203 2204 2205 2206 2207 2196 2197 2198 2199 2200 2201 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2166 2167 2168 2169 2170 2171 2160 2161 2162 2163 2164 2165 48 2184 2185 2186 2187 2188 2189 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2196 2197 2198 2199 2200 2201 2190 2191 2192 2193 2194 2195 48 2196 2197 2198 2199 2200 2201 2250 2251 2252 2253 2254 2255 2244 2245 2246 2247 2248 2249 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2214 2215 2216 2217 2218 2219 2208 2209 2210 2211 2212 2213 48 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2310 2311 2312 2313 2314 2315 2304 2305 2306 2307 2308 2309 2316 2317 2318 2319 2320 2321 34 2334 2335 2336 2337 2338 2339 2346 2347 2348 2349 2322 2323 2324 2325 2326 2327 2340 2341 2342 2343 2344 2345 2350 2351 2352 2353 2354 2355 2328 2329 2330 2331 2332 2333 36 2262 2263 2264 2265 2266 2267 2334 2335 2336 2337 2338 2339 2244 2245 2246 2247 2248 2249 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2256 2257 2258 2259 2260 2261 48 2232 2233 2234 2235 2236 2237 2368 2369 2370 2371 2372 2373 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2362 2363 2364 2365 2366 2367 2244 2245 2246 2247 2248 2249 2238 2239 2240 2241 2242 2243 48 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2298 2299 2300 2301 2302 2303 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2392 2393 2394 2395 2396 2397 2386 2387 2388 2389 2390 2391 2398 2399 2400 2401 2402 2403 48 2286 2287 2288 2289 2290 2291 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2298 2299 2300 2301 2302 2303 2292 2293 2294 2295 2296 2297 48 2298 2299 2300 2301 2302 2303 2428 2429 2430 2431 2432 2433 2422 2423 2424 2425 2426 2427 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2380 2381 2382 2383 2384 2385 2374 2375 2376 2377 2378 2379 48 2410 2411 2412 2413 2414 2415 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2422 2423 2424 2425 2426 2427 2416 2417 2418 2419 2420 2421 48 2422 2423 2424 2425 2426 2427 2476 2477 2478 2479 2480 2481 2470 2471 2472 2473 2474 2475 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2440 2441 2442 2443 2444 2445 2434 2435 2436 2437 2438 2439 48 2458 2459 2460 2461 2462 2463 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2470 2471 2472 2473 2474 2475 2464 2465 2466 2467 2468 2469 48 2470 2471 2472 2473 2474 2475 2524 2525 2526 2527 2528 2529 2518 2519 2520 2521 2522 2523 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2488 2489 2490 2491 2492 2493 2482 2483 2484 2485 2486 2487 48 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2584 2585 2586 2587 2588 2589 2578 2579 2580 2581 2582 2583 2590 2591 2592 2593 2594 2595 36 2596 2597 2598 2599 2600 2601 2620 2621 2622 2623 2624 2625 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2626 2627 2628 2629 2630 2631 2602 2603 2604 2605 2606 2607 36 2536 2537 2538 2539 2540 2541 2596 2597 2598 2599 2600 2601 2518 2519 2520 2521 2522 2523 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2530 2531 2532 2533 2534 2535 48 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2638 2639 2640 2641 2642 2643 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2644 2645 2646 2647 2648 2649 48 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2572 2573 2574 2575 2576 2577 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2668 2669 2670 2671 2672 2673 2662 2663 2664 2665 2666 2667 2674 2675 2676 2677 2678 2679 48 2560 2561 2562 2563 2564 2565 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2572 2573 2574 2575 2576 2577 2566 2567 2568 2569 2570 2571 48 2572 2573 2574 2575 2576 2577 2704 2705 2706 2707 2708 2709 2698 2699 2700 2701 2702 2703 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2656 2657 2658 2659 2660 2661 2650 2651 2652 2653 2654 2655 48 2686 2687 2688 2689 2690 2691 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2698 2699 2700 2701 2702 2703 2692 2693 2694 2695 2696 2697 48 2698 2699 2700 2701 2702 2703 2752 2753 2754 2755 2756 2757 2746 2747 2748 2749 2750 2751 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2716 2717 2718 2719 2720 2721 2710 2711 2712 2713 2714 2715 48 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2812 2813 2814 2815 2816 2817 2806 2807 2808 2809 2810 2811 2818 2819 2820 2821 2822 2823 36 2836 2837 2838 2839 2840 2841 2848 2849 2850 2851 2852 2853 2824 2825 2826 2827 2828 2829 2842 2843 2844 2845 2846 2847 2854 2855 2856 2857 2858 2859 2830 2831 2832 2833 2834 2835 48 2746 2747 2748 2749 2750 2751 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2860 2861 2862 2863 2864 2865 2836 2837 2838 2839 2840 2841 2830 2831 2832 2833 2834 2835 2824 2825 2826 2827 2828 2829 2866 2867 2868 2869 2870 2871 36 2746 2747 2748 2749 2750 2751 2824 2825 2826 2827 2828 2829 2734 2735 2736 2737 2738 2739 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2740 2741 2742 2743 2744 2745 48 2788 2789 2790 2791 2792 2793 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2800 2801 2802 2803 2804 2805 2794 2795 2796 2797 2798 2799 48 2884 2885 2886 2887 2888 2889 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2896 2897 2898 2899 2900 2901 2890 2891 2892 2893 2894 2895 48 2914 2915 2916 2917 2918 2919 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2926 2927 2928 2929 2930 2931 2920 2921 2922 2923 2924 2925 48 2944 2945 2946 2947 2948 2949 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2956 2957 2958 2959 2960 2961 2950 2951 2952 2953 2954 2955 36 2986 2987 2988 2989 2990 2991 3004 3005 3006 3007 3008 3009 2974 2975 2976 2977 2978 2979 2998 2999 3000 3001 3002 3003 3010 3011 3012 3013 3014 3015 2980 2981 2982 2983 2984 2985 48 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3052 3053 3054 3055 3056 3057 3046 3047 3048 3049 3050 3051 3058 3059 3060 3061 3062 3063 48 3028 3029 3030 3031 3032 3033 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3040 3041 3042 3043 3044 3045 3034 3035 3036 3037 3038 3039 48 3070 3071 3072 3073 3074 3075 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3082 3083 3084 3085 3086 3087 3076 3077 3078 3079 3080 3081 48 3100 3101 3102 3103 3104 3105 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3112 3113 3114 3115 3116 3117 3106 3107 3108 3109 3110 3111 48 3130 3131 3132 3133 3134 3135 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3142 3143 3144 3145 3146 3147 3136 3137 3138 3139 3140 3141 36 3172 3173 3174 3175 3176 3177 3190 3191 3192 3193 3194 3195 3160 3161 3162 3163 3164 3165 3184 3185 3186 3187 3188 3189 3196 3197 3198 3199 3200 3201 3166 3167 3168 3169 3170 3171 48 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3238 3239 3240 3241 3242 3243 3232 3233 3234 3235 3236 3237 3244 3245 3246 3247 3248 3249 48 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 36 37 38 39 40 41 30 31 32 33 34 35 12 13 14 15 16 17 3274 3275 3276 3277 3278 3279 48 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3250 3251 3252 3253 3254 3255 3274 3275 3276 3277 3278 3279 12 13 14 15 16 17 6 7 8 9 10 11 0 1 2 3 4 5 3292 3293 3294 3295 3296 3297 48 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3280 3281 3282 3283 3284 3285 3292 3293 3294 3295 3296 3297 0 1 2 3 4 5 24 25 26 27 28 29 18 19 20 21 22 23 3310 3311 3312 3313 3314 3315 36 3226 3227 3228 3229 3230 3231 3322 3323 3324 3325 3326 3327 3214 3215 3216 3217 3218 3219 3316 3317 3318 3319 3320 3321 3328 3329 3330 3331 3332 3333 3220 3221 3222 3223 3224 3225 48 3262 3263 3264 3265 3266 3267 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 48 49 50 51 52 53 42 43 44 45 46 47 36 37 38 39 40 41 3268 3269 3270 3271 3272 3273 48 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3226 3227 3228 3229 3230 3231 3352 3353 3354 3355 3356 3357 3040 3041 3042 3043 3044 3045 3052 3053 3054 3055 3056 3057 3046 3047 3048 3049 3050 3051 3358 3359 3360 3361 3362 3363 48 3226 3227 3228 3229 3230 3231 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3364 3365 3366 3367 3368 3369 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3040 3041 3042 3043 3044 3045 3352 3353 3354 3355 3356 3357 48 3322 3323 3324 3325 3326 3327 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3082 3083 3084 3085 3086 3087 3364 3365 3366 3367 3368 3369 48 3376 3377 3378 3379 3380 3381 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3112 3113 3114 3115 3116 3117 3382 3383 3384 3385 3386 3387 48 3394 3395 3396 3397 3398 3399 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3142 3143 3144 3145 3146 3147 3400 3401 3402 3403 3404 3405 36 3190 3191 3192 3193 3194 3195 3172 3173 3174 3175 3176 3177 3412 3413 3414 3415 3416 3417 3184 3185 3186 3187 3188 3189 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 48 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3040 3041 3042 3043 3044 3045 3430 3431 3432 3433 3434 3435 2800 2801 2802 2803 2804 2805 2812 2813 2814 2815 2816 2817 2806 2807 2808 2809 2810 2811 3436 3437 3438 3439 3440 3441 48 3040 3041 3042 3043 3044 3045 3088 3089 3090 3091 3092 3093 3082 3083 3084 3085 3086 3087 3442 3443 3444 3445 3446 3447 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2800 2801 2802 2803 2804 2805 3430 3431 3432 3433 3434 3435 48 3082 3083 3084 3085 3086 3087 3118 3119 3120 3121 3122 3123 3112 3113 3114 3115 3116 3117 3448 3449 3450 3451 3452 3453 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2896 2897 2898 2899 2900 2901 3442 3443 3444 3445 3446 3447 48 3112 3113 3114 3115 3116 3117 3148 3149 3150 3151 3152 3153 3142 3143 3144 3145 3146 3147 3454 3455 3456 3457 3458 3459 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2926 2927 2928 2929 2930 2931 3448 3449 3450 3451 3452 3453 48 3142 3143 3144 3145 3146 3147 3178 3179 3180 3181 3182 3183 3172 3173 3174 3175 3176 3177 3460 3461 3462 3463 3464 3465 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2956 2957 2958 2959 2960 2961 3454 3455 3456 3457 3458 3459 48 3172 3173 3174 3175 3176 3177 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3466 3467 3468 3469 3470 3471 3004 3005 3006 3007 3008 3009 2998 2999 3000 3001 3002 3003 2986 2987 2988 2989 2990 2991 3460 3461 3462 3463 3464 3465 48 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2800 2801 2802 2803 2804 2805 3472 3473 3474 3475 3476 3477 2656 2657 2658 2659 2660 2661 2668 2669 2670 2671 2672 2673 2662 2663 2664 2665 2666 2667 3478 3479 3480 3481 3482 3483 48 2800 2801 2802 2803 2804 2805 2902 2903 2904 2905 2906 2907 2896 2897 2898 2899 2900 2901 3484 3485 3486 3487 3488 3489 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2656 2657 2658 2659 2660 2661 3472 3473 3474 3475 3476 3477 48 2896 2897 2898 2899 2900 2901 2932 2933 2934 2935 2936 2937 2926 2927 2928 2929 2930 2931 3490 3491 3492 3493 3494 3495 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2716 2717 2718 2719 2720 2721 3484 3485 3486 3487 3488 3489 48 2926 2927 2928 2929 2930 2931 2962 2963 2964 2965 2966 2967 2956 2957 2958 2959 2960 2961 3496 3497 3498 3499 3500 3501 2836 2837 2838 2839 2840 2841 2860 2861 2862 2863 2864 2865 2764 2765 2766 2767 2768 2769 3490 3491 3492 3493 3494 3495 48 2956 2957 2958 2959 2960 2961 2992 2993 2994 2995 2996 2997 2986 2987 2988 2989 2990 2991 3502 3503 3504 3505 3506 3507 2848 2849 2850 2851 2852 2853 2842 2843 2844 2845 2846 2847 2836 2837 2838 2839 2840 2841 3496 3497 3498 3499 3500 3501 36 3004 3005 3006 3007 3008 3009 2848 2849 2850 2851 2852 2853 2986 2987 2988 2989 2990 2991 3508 3509 3510 3511 3512 3513 3502 3503 3504 3505 3506 3507 2998 2999 3000 3001 3002 3003 48 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2656 2657 2658 2659 2660 2661 3514 3515 3516 3517 3518 3519 2380 2381 2382 2383 2384 2385 2392 2393 2394 2395 2396 2397 2386 2387 2388 2389 2390 2391 3520 3521 3522 3523 3524 3525 48 2656 2657 2658 2659 2660 2661 2722 2723 2724 2725 2726 2727 2716 2717 2718 2719 2720 2721 3526 3527 3528 3529 3530 3531 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2380 2381 2382 2383 2384 2385 3514 3515 3516 3517 3518 3519 48 2716 2717 2718 2719 2720 2721 2770 2771 2772 2773 2774 2775 2764 2765 2766 2767 2768 2769 3532 3533 3534 3535 3536 3537 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2440 2441 2442 2443 2444 2445 3526 3527 3528 3529 3530 3531 48 2764 2765 2766 2767 2768 2769 2860 2861 2862 2863 2864 2865 2836 2837 2838 2839 2840 2841 3538 3539 3540 3541 3542 3543 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2488 2489 2490 2491 2492 2493 3532 3533 3534 3535 3536 3537 48 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 3544 3545 3546 3547 3548 3549 2596 2597 2598 2599 2600 2601 2632 2633 2634 2635 2636 2637 2536 2537 2538 2539 2540 2541 3538 3539 3540 3541 3542 3543 36 2620 2621 2622 2623 2624 2625 2596 2597 2598 2599 2600 2601 2848 2849 2850 2851 2852 2853 2614 2615 2616 2617 2618 2619 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 48 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2380 2381 2382 2383 2384 2385 3556 3557 3558 3559 3560 3561 2106 2107 2108 2109 2110 2111 2118 2119 2120 2121 2122 2123 2112 2113 2114 2115 2116 2117 3562 3563 3564 3565 3566 3567 48 2380 2381 2382 2383 2384 2385 2446 2447 2448 2449 2450 2451 2440 2441 2442 2443 2444 2445 3568 3569 3570 3571 3572 3573 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2106 2107 2108 2109 2110 2111 3556 3557 3558 3559 3560 3561 48 2440 2441 2442 2443 2444 2445 2494 2495 2496 2497 2498 2499 2488 2489 2490 2491 2492 2493 3574 3575 3576 3577 3578 3579 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2166 2167 2168 2169 2170 2171 3568 3569 3570 3571 3572 3573 48 2488 2489 2490 2491 2492 2493 2542 2543 2544 2545 2546 2547 2536 2537 2538 2539 2540 2541 3580 3581 3582 3583 3584 3585 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2214 2215 2216 2217 2218 2219 3574 3575 3576 3577 3578 3579 48 2536 2537 2538 2539 2540 2541 2632 2633 2634 2635 2636 2637 2596 2597 2598 2599 2600 2601 3586 3587 3588 3589 3590 3591 2334 2335 2336 2337 2338 2339 2356 2357 2358 2359 2360 2361 2262 2263 2264 2265 2266 2267 3580 3581 3582 3583 3584 3585 46 2596 2597 2598 2599 2600 2601 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 3592 3593 3594 3595 3596 3597 2346 2347 2348 2349 2340 2341 2342 2343 2344 2345 2334 2335 2336 2337 2338 2339 3586 3587 3588 3589 3590 3591 48 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2106 2107 2108 2109 2110 2111 3598 3599 3600 3601 3602 3603 1800 1801 1802 1803 1804 1805 1812 1813 1814 1815 1816 1817 1806 1807 1808 1809 1810 1811 3604 3605 3606 3607 3608 3609 48 2106 2107 2108 2109 2110 2111 2172 2173 2174 2175 2176 2177 2166 2167 2168 2169 2170 2171 3610 3611 3612 3613 3614 3615 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1800 1801 1802 1803 1804 1805 3598 3599 3600 3601 3602 3603 48 2166 2167 2168 2169 2170 2171 2220 2221 2222 2223 2224 2225 2214 2215 2216 2217 2218 2219 3616 3617 3618 3619 3620 3621 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1860 1861 1862 1863 1864 1865 3610 3611 3612 3613 3614 3615 48 2214 2215 2216 2217 2218 2219 2268 2269 2270 2271 2272 2273 2262 2263 2264 2265 2266 2267 3622 3623 3624 3625 3626 3627 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1908 1909 1910 1911 1912 1913 3616 3617 3618 3619 3620 3621 48 2262 2263 2264 2265 2266 2267 2356 2357 2358 2359 2360 2361 2334 2335 2336 2337 2338 2339 3628 3629 3630 3631 3632 3633 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 1956 1957 1958 1959 1960 1961 3622 3623 3624 3625 3626 3627 46 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 3634 3635 3636 3637 3638 3639 2034 2035 2036 2037 2038 2039 2046 2047 2048 2049 2050 2051 2004 2005 2006 2007 2008 2009 3628 3629 3630 3631 3632 3633 34 2034 2035 2036 2037 2038 2039 2022 2023 2024 2025 2026 2027 2346 2347 2348 2349 2028 2029 2030 2031 2032 2033 3640 3641 3642 3643 3644 3645 3634 3635 3636 3637 3638 3639 48 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2800 2801 2802 2803 2804 2805 3646 3647 3648 3649 3650 3651 2572 2573 2574 2575 2576 2577 2584 2585 2586 2587 2588 2589 2578 2579 2580 2581 2582 2583 3652 3653 3654 3655 3656 3657 48 2800 2801 2802 2803 2804 2805 2902 2903 2904 2905 2906 2907 2896 2897 2898 2899 2900 2901 3658 3659 3660 3661 3662 3663 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2572 2573 2574 2575 2576 2577 3646 3647 3648 3649 3650 3651 48 2896 2897 2898 2899 2900 2901 2932 2933 2934 2935 2936 2937 2926 2927 2928 2929 2930 2931 3664 3665 3666 3667 3668 3669 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2698 2699 2700 2701 2702 2703 3658 3659 3660 3661 3662 3663 48 2926 2927 2928 2929 2930 2931 2962 2963 2964 2965 2966 2967 2956 2957 2958 2959 2960 2961 3670 3671 3672 3673 3674 3675 2824 2825 2826 2827 2828 2829 2866 2867 2868 2869 2870 2871 2746 2747 2748 2749 2750 2751 3664 3665 3666 3667 3668 3669 48 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2572 2573 2574 2575 2576 2577 3676 3677 3678 3679 3680 3681 2298 2299 2300 2301 2302 2303 2310 2311 2312 2313 2314 2315 2304 2305 2306 2307 2308 2309 3682 3683 3684 3685 3686 3687 48 2572 2573 2574 2575 2576 2577 2704 2705 2706 2707 2708 2709 2698 2699 2700 2701 2702 2703 3688 3689 3690 3691 3692 3693 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2298 2299 2300 2301 2302 2303 3676 3677 3678 3679 3680 3681 48 2698 2699 2700 2701 2702 2703 2752 2753 2754 2755 2756 2757 2746 2747 2748 2749 2750 2751 3694 3695 3696 3697 3698 3699 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2422 2423 2424 2425 2426 2427 3688 3689 3690 3691 3692 3693 48 2746 2747 2748 2749 2750 2751 2866 2867 2868 2869 2870 2871 2824 2825 2826 2827 2828 2829 3700 3701 3702 3703 3704 3705 2536 2537 2538 2539 2540 2541 3706 3707 3708 3709 3710 3711 2470 2471 2472 2473 2474 2475 3694 3695 3696 3697 3698 3699 48 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2298 2299 2300 2301 2302 2303 3712 3713 3714 3715 3716 3717 2076 2077 2078 2079 2080 2081 2088 2089 2090 2091 2092 2093 2082 2083 2084 2085 2086 2087 3718 3719 3720 3721 3722 3723 48 2298 2299 2300 2301 2302 2303 2428 2429 2430 2431 2432 2433 2422 2423 2424 2425 2426 2427 3724 3725 3726 3727 3728 3729 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2076 2077 2078 2079 2080 2081 3712 3713 3714 3715 3716 3717 48 2422 2423 2424 2425 2426 2427 2476 2477 2478 2479 2480 2481 2470 2471 2472 2473 2474 2475 3730 3731 3732 3733 3734 3735 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2148 2149 2150 2151 2152 2153 3724 3725 3726 3727 3728 3729 48 2470 2471 2472 2473 2474 2475 3706 3707 3708 3709 3710 3711 2536 2537 2538 2539 2540 2541 3580 3581 3582 3583 3584 3585 2262 2263 2264 2265 2266 2267 3736 3737 3738 3739 3740 3741 2196 2197 2198 2199 2200 2201 3730 3731 3732 3733 3734 3735 48 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2076 2077 2078 2079 2080 2081 3742 3743 3744 3745 3746 3747 1770 1771 1772 1773 1774 1775 1782 1783 1784 1785 1786 1787 1776 1777 1778 1779 1780 1781 3748 3749 3750 3751 3752 3753 48 2076 2077 2078 2079 2080 2081 2154 2155 2156 2157 2158 2159 2148 2149 2150 2151 2152 2153 3754 3755 3756 3757 3758 3759 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1770 1771 1772 1773 1774 1775 3742 3743 3744 3745 3746 3747 48 2148 2149 2150 2151 2152 2153 2202 2203 2204 2205 2206 2207 2196 2197 2198 2199 2200 2201 3760 3761 3762 3763 3764 3765 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1842 1843 1844 1845 1846 1847 3754 3755 3756 3757 3758 3759 48 2196 2197 2198 2199 2200 2201 3736 3737 3738 3739 3740 3741 2262 2263 2264 2265 2266 2267 3622 3623 3624 3625 3626 3627 1956 1957 1958 1959 1960 1961 3766 3767 3768 3769 3770 3771 1890 1891 1892 1893 1894 1895 3760 3761 3762 3763 3764 3765 48 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3772 3773 3774 3775 3776 3777 3028 3029 3030 3031 3032 3033 3022 3023 3024 3025 3026 3027 3016 3017 3018 3019 3020 3021 3778 3779 3780 3781 3782 3783 48 3214 3215 3216 3217 3218 3219 3328 3329 3330 3331 3332 3333 3322 3323 3324 3325 3326 3327 3784 3785 3786 3787 3788 3789 3070 3071 3072 3073 3074 3075 3064 3065 3066 3067 3068 3069 3028 3029 3030 3031 3032 3033 3772 3773 3774 3775 3776 3777 48 3322 3323 3324 3325 3326 3327 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3790 3791 3792 3793 3794 3795 3100 3101 3102 3103 3104 3105 3094 3095 3096 3097 3098 3099 3070 3071 3072 3073 3074 3075 3784 3785 3786 3787 3788 3789 48 3376 3377 3378 3379 3380 3381 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3796 3797 3798 3799 3800 3801 3130 3131 3132 3133 3134 3135 3124 3125 3126 3127 3128 3129 3100 3101 3102 3103 3104 3105 3790 3791 3792 3793 3794 3795 48 3394 3395 3396 3397 3398 3399 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3802 3803 3804 3805 3806 3807 3160 3161 3162 3163 3164 3165 3154 3155 3156 3157 3158 3159 3130 3131 3132 3133 3134 3135 3796 3797 3798 3799 3800 3801 36 3190 3191 3192 3193 3194 3195 3160 3161 3162 3163 3164 3165 3412 3413 3414 3415 3416 3417 3196 3197 3198 3199 3200 3201 3802 3803 3804 3805 3806 3807 3424 3425 3426 3427 3428 3429 48 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3808 3809 3810 3811 3812 3813 2788 2789 2790 2791 2792 2793 2782 2783 2784 2785 2786 2787 2776 2777 2778 2779 2780 2781 3814 3815 3816 3817 3818 3819 48 3028 3029 3030 3031 3032 3033 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3820 3821 3822 3823 3824 3825 2884 2885 2886 2887 2888 2889 2878 2879 2880 2881 2882 2883 2788 2789 2790 2791 2792 2793 3808 3809 3810 3811 3812 3813 48 3070 3071 3072 3073 3074 3075 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3826 3827 3828 3829 3830 3831 2914 2915 2916 2917 2918 2919 2908 2909 2910 2911 2912 2913 2884 2885 2886 2887 2888 2889 3820 3821 3822 3823 3824 3825 48 3100 3101 3102 3103 3104 3105 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3832 3833 3834 3835 3836 3837 2944 2945 2946 2947 2948 2949 2938 2939 2940 2941 2942 2943 2914 2915 2916 2917 2918 2919 3826 3827 3828 3829 3830 3831 48 3130 3131 3132 3133 3134 3135 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3838 3839 3840 3841 3842 3843 2974 2975 2976 2977 2978 2979 2968 2969 2970 2971 2972 2973 2944 2945 2946 2947 2948 2949 3832 3833 3834 3835 3836 3837 48 3160 3161 3162 3163 3164 3165 3196 3197 3198 3199 3200 3201 3190 3191 3192 3193 3194 3195 3466 3467 3468 3469 3470 3471 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 2974 2975 2976 2977 2978 2979 3838 3839 3840 3841 3842 3843 48 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 3844 3845 3846 3847 3848 3849 2560 2561 2562 2563 2564 2565 2554 2555 2556 2557 2558 2559 2548 2549 2550 2551 2552 2553 3850 3851 3852 3853 3854 3855 48 2788 2789 2790 2791 2792 2793 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 3856 3857 3858 3859 3860 3861 2686 2687 2688 2689 2690 2691 2680 2681 2682 2683 2684 2685 2560 2561 2562 2563 2564 2565 3844 3845 3846 3847 3848 3849 48 2884 2885 2886 2887 2888 2889 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 3862 3863 3864 3865 3866 3867 2734 2735 2736 2737 2738 2739 2728 2729 2730 2731 2732 2733 2686 2687 2688 2689 2690 2691 3856 3857 3858 3859 3860 3861 48 2914 2915 2916 2917 2918 2919 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 3868 3869 3870 3871 3872 3873 2824 2825 2826 2827 2828 2829 2872 2873 2874 2875 2876 2877 2734 2735 2736 2737 2738 2739 3862 3863 3864 3865 3866 3867 48 2944 2945 2946 2947 2948 2949 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 3874 3875 3876 3877 3878 3879 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2824 2825 2826 2827 2828 2829 3868 3869 3870 3871 3872 3873 36 3004 3005 3006 3007 3008 3009 2848 2849 2850 2851 2852 2853 2974 2975 2976 2977 2978 2979 3508 3509 3510 3511 3512 3513 3874 3875 3876 3877 3878 3879 3010 3011 3012 3013 3014 3015 48 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 3880 3881 3882 3883 3884 3885 2286 2287 2288 2289 2290 2291 2280 2281 2282 2283 2284 2285 2274 2275 2276 2277 2278 2279 3886 3887 3888 3889 3890 3891 48 2560 2561 2562 2563 2564 2565 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 3892 3893 3894 3895 3896 3897 2410 2411 2412 2413 2414 2415 2404 2405 2406 2407 2408 2409 2286 2287 2288 2289 2290 2291 3880 3881 3882 3883 3884 3885 48 2686 2687 2688 2689 2690 2691 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 3898 3899 3900 3901 3902 3903 2458 2459 2460 2461 2462 2463 2452 2453 2454 2455 2456 2457 2410 2411 2412 2413 2414 2415 3892 3893 3894 3895 3896 3897 48 2734 2735 2736 2737 2738 2739 2872 2873 2874 2875 2876 2877 2824 2825 2826 2827 2828 2829 3904 3905 3906 3907 3908 3909 2506 2507 2508 2509 2510 2511 2500 2501 2502 2503 2504 2505 2458 2459 2460 2461 2462 2463 3898 3899 3900 3901 3902 3903 48 2824 2825 2826 2827 2828 2829 2854 2855 2856 2857 2858 2859 2848 2849 2850 2851 2852 2853 3910 3911 3912 3913 3914 3915 2608 2609 2610 2611 2612 2613 2644 2645 2646 2647 2648 2649 2506 2507 2508 2509 2510 2511 3904 3905 3906 3907 3908 3909 36 2620 2621 2622 2623 2624 2625 2608 2609 2610 2611 2612 2613 2848 2849 2850 2851 2852 2853 2626 2627 2628 2629 2630 2631 3910 3911 3912 3913 3914 3915 3550 3551 3552 3553 3554 3555 48 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 3916 3917 3918 3919 3920 3921 2064 2065 2066 2067 2068 2069 2058 2059 2060 2061 2062 2063 2052 2053 2054 2055 2056 2057 3922 3923 3924 3925 3926 3927 48 2286 2287 2288 2289 2290 2291 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 3928 3929 3930 3931 3932 3933 2136 2137 2138 2139 2140 2141 2130 2131 2132 2133 2134 2135 2064 2065 2066 2067 2068 2069 3916 3917 3918 3919 3920 3921 48 2410 2411 2412 2413 2414 2415 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 3934 3935 3936 3937 3938 3939 2184 2185 2186 2187 2188 2189 2178 2179 2180 2181 2182 2183 2136 2137 2138 2139 2140 2141 3928 3929 3930 3931 3932 3933 48 2458 2459 2460 2461 2462 2463 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 3940 3941 3942 3943 3944 3945 2232 2233 2234 2235 2236 2237 2226 2227 2228 2229 2230 2231 2184 2185 2186 2187 2188 2189 3934 3935 3936 3937 3938 3939 48 2506 2507 2508 2509 2510 2511 2644 2645 2646 2647 2648 2649 2608 2609 2610 2611 2612 2613 3946 3947 3948 3949 3950 3951 2322 2323 2324 2325 2326 2327 2368 2369 2370 2371 2372 2373 2232 2233 2234 2235 2236 2237 3940 3941 3942 3943 3944 3945 46 2608 2609 2610 2611 2612 2613 2626 2627 2628 2629 2630 2631 2620 2621 2622 2623 2624 2625 3592 3593 3594 3595 3596 3597 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2322 2323 2324 2325 2326 2327 3946 3947 3948 3949 3950 3951 48 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 3952 3953 3954 3955 3956 3957 1758 1759 1760 1761 1762 1763 1752 1753 1754 1755 1756 1757 1746 1747 1748 1749 1750 1751 3958 3959 3960 3961 3962 3963 48 2136 2137 2138 2139 2140 2141 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 3964 3965 3966 3967 3968 3969 1878 1879 1880 1881 1882 1883 1872 1873 1874 1875 1876 1877 1830 1831 1832 1833 1834 1835 3970 3971 3972 3973 3974 3975 48 3202 3203 3204 3205 3206 3207 3244 3245 3246 3247 3248 3249 3232 3233 3234 3235 3236 3237 3358 3359 3360 3361 3362 3363 3046 3047 3048 3049 3050 3051 3058 3059 3060 3061 3062 3063 3016 3017 3018 3019 3020 3021 3778 3779 3780 3781 3782 3783 48 3016 3017 3018 3019 3020 3021 3058 3059 3060 3061 3062 3063 3046 3047 3048 3049 3050 3051 3436 3437 3438 3439 3440 3441 2806 2807 2808 2809 2810 2811 2818 2819 2820 2821 2822 2823 2776 2777 2778 2779 2780 2781 3814 3815 3816 3817 3818 3819 48 2776 2777 2778 2779 2780 2781 2818 2819 2820 2821 2822 2823 2806 2807 2808 2809 2810 2811 3652 3653 3654 3655 3656 3657 2578 2579 2580 2581 2582 2583 2590 2591 2592 2593 2594 2595 2548 2549 2550 2551 2552 2553 3850 3851 3852 3853 3854 3855 36 2662 2663 2664 2665 2666 2667 2578 2579 2580 2581 2582 2583 2806 2807 2808 2809 2810 2811 2674 2675 2676 2677 2678 2679 3652 3653 3654 3655 3656 3657 3478 3479 3480 3481 3482 3483 48 2548 2549 2550 2551 2552 2553 2590 2591 2592 2593 2594 2595 2578 2579 2580 2581 2582 2583 3682 3683 3684 3685 3686 3687 2304 2305 2306 2307 2308 2309 2316 2317 2318 2319 2320 2321 2274 2275 2276 2277 2278 2279 3886 3887 3888 3889 3890 3891 48 2578 2579 2580 2581 2582 2583 2674 2675 2676 2677 2678 2679 2662 2663 2664 2665 2666 2667 3520 3521 3522 3523 3524 3525 2386 2387 2388 2389 2390 2391 2398 2399 2400 2401 2402 2403 2304 2305 2306 2307 2308 2309 3682 3683 3684 3685 3686 3687 48 2274 2275 2276 2277 2278 2279 2316 2317 2318 2319 2320 2321 2304 2305 2306 2307 2308 2309 3718 3719 3720 3721 3722 3723 2082 2083 2084 2085 2086 2087 2094 2095 2096 2097 2098 2099 2052 2053 2054 2055 2056 2057 3922 3923 3924 3925 3926 3927 48 2304 2305 2306 2307 2308 2309 2398 2399 2400 2401 2402 2403 2386 2387 2388 2389 2390 2391 3562 3563 3564 3565 3566 3567 2112 2113 2114 2115 2116 2117 2124 2125 2126 2127 2128 2129 2082 2083 2084 2085 2086 2087 3718 3719 3720 3721 3722 3723 48 2052 2053 2054 2055 2056 2057 2094 2095 2096 2097 2098 2099 2082 2083 2084 2085 2086 2087 3748 3749 3750 3751 3752 3753 1776 1777 1778 1779 1780 1781 1788 1789 1790 1791 1792 1793 1746 1747 1748 1749 1750 1751 3958 3959 3960 3961 3962 3963 48 2082 2083 2084 2085 2086 2087 2124 2125 2126 2127 2128 2129 2112 2113 2114 2115 2116 2117 3604 3605 3606 3607 3608 3609 1806 1807 1808 1809 1810 1811 1818 1819 1820 1821 1822 1823 1776 1777 1778 1779 1780 1781 3748 3749 3750 3751 3752 3753 48 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3352 3353 3354 3355 3356 3357 3040 3041 3042 3043 3044 3045 3034 3035 3036 3037 3038 3039 3028 3029 3030 3031 3032 3033 3772 3773 3774 3775 3776 3777 48 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3430 3431 3432 3433 3434 3435 2800 2801 2802 2803 2804 2805 2794 2795 2796 2797 2798 2799 2788 2789 2790 2791 2792 2793 3808 3809 3810 3811 3812 3813 48 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 3646 3647 3648 3649 3650 3651 2572 2573 2574 2575 2576 2577 2566 2567 2568 2569 2570 2571 2560 2561 2562 2563 2564 2565 3844 3845 3846 3847 3848 3849 36 2656 2657 2658 2659 2660 2661 2572 2573 2574 2575 2576 2577 2800 2801 2802 2803 2804 2805 2650 2651 2652 2653 2654 2655 3646 3647 3648 3649 3650 3651 3472 3473 3474 3475 3476 3477 48 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 3676 3677 3678 3679 3680 3681 2298 2299 2300 2301 2302 2303 2292 2293 2294 2295 2296 2297 2286 2287 2288 2289 2290 2291 3880 3881 3882 3883 3884 3885 48 2572 2573 2574 2575 2576 2577 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 3514 3515 3516 3517 3518 3519 2380 2381 2382 2383 2384 2385 2374 2375 2376 2377 2378 2379 2298 2299 2300 2301 2302 2303 3676 3677 3678 3679 3680 3681 48 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 3712 3713 3714 3715 3716 3717 2076 2077 2078 2079 2080 2081 2070 2071 2072 2073 2074 2075 2064 2065 2066 2067 2068 2069 3916 3917 3918 3919 3920 3921 48 2298 2299 2300 2301 2302 2303 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 3556 3557 3558 3559 3560 3561 2106 2107 2108 2109 2110 2111 2100 2101 2102 2103 2104 2105 2076 2077 2078 2079 2080 2081 3712 3713 3714 3715 3716 3717 48 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 3742 3743 3744 3745 3746 3747 1770 1771 1772 1773 1774 1775 1764 1765 1766 1767 1768 1769 1758 1759 1760 1761 1762 1763 3952 3953 3954 3955 3956 3957 48 2076 2077 2078 2079 2080 2081 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 3598 3599 3600 3601 3602 3603 1800 1801 1802 1803 1804 1805 1794 1795 1796 1797 1798 1799 1770 1771 1772 1773 1774 1775 3742 3743 3744 3745 3746 3747 36 3082 3083 3084 3085 3086 3087 3070 3071 3072 3073 3074 3075 3322 3323 3324 3325 3326 3327 3076 3077 3078 3079 3080 3081 3784 3785 3786 3787 3788 3789 3364 3365 3366 3367 3368 3369 48 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3442 3443 3444 3445 3446 3447 2896 2897 2898 2899 2900 2901 2890 2891 2892 2893 2894 2895 2884 2885 2886 2887 2888 2889 3820 3821 3822 3823 3824 3825 48 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 3658 3659 3660 3661 3662 3663 2698 2699 2700 2701 2702 2703 2692 2693 2694 2695 2696 2697 2686 2687 2688 2689 2690 2691 3856 3857 3858 3859 3860 3861 36 2716 2717 2718 2719 2720 2721 2698 2699 2700 2701 2702 2703 2896 2897 2898 2899 2900 2901 2710 2711 2712 2713 2714 2715 3658 3659 3660 3661 3662 3663 3484 3485 3486 3487 3488 3489 48 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 3688 3689 3690 3691 3692 3693 2422 2423 2424 2425 2426 2427 2416 2417 2418 2419 2420 2421 2410 2411 2412 2413 2414 2415 3892 3893 3894 3895 3896 3897 48 2698 2699 2700 2701 2702 2703 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 3526 3527 3528 3529 3530 3531 2440 2441 2442 2443 2444 2445 2434 2435 2436 2437 2438 2439 2422 2423 2424 2425 2426 2427 3688 3689 3690 3691 3692 3693 48 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 3724 3725 3726 3727 3728 3729 2148 2149 2150 2151 2152 2153 2142 2143 2144 2145 2146 2147 2136 2137 2138 2139 2140 2141 3928 3929 3930 3931 3932 3933 48 2422 2423 2424 2425 2426 2427 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 3568 3569 3570 3571 3572 3573 2166 2167 2168 2169 2170 2171 2160 2161 2162 2163 2164 2165 2148 2149 2150 2151 2152 2153 3724 3725 3726 3727 3728 3729 48 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 3754 3755 3756 3757 3758 3759 1842 1843 1844 1845 1846 1847 1836 1837 1838 1839 1840 1841 1830 1831 1832 1833 1834 1835 3970 3971 3972 3973 3974 3975 48 2148 2149 2150 2151 2152 2153 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 3610 3611 3612 3613 3614 3615 1860 1861 1862 1863 1864 1865 1854 1855 1856 1857 1858 1859 1842 1843 1844 1845 1846 1847 3754 3755 3756 3757 3758 3759 36 3112 3113 3114 3115 3116 3117 3100 3101 3102 3103 3104 3105 3376 3377 3378 3379 3380 3381 3106 3107 3108 3109 3110 3111 3790 3791 3792 3793 3794 3795 3382 3383 3384 3385 3386 3387 48 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3448 3449 3450 3451 3452 3453 2926 2927 2928 2929 2930 2931 2920 2921 2922 2923 2924 2925 2914 2915 2916 2917 2918 2919 3826 3827 3828 3829 3830 3831 48 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 3664 3665 3666 3667 3668 3669 2746 2747 2748 2749 2750 2751 2740 2741 2742 2743 2744 2745 2734 2735 2736 2737 2738 2739 3862 3863 3864 3865 3866 3867 36 2764 2765 2766 2767 2768 2769 2746 2747 2748 2749 2750 2751 2926 2927 2928 2929 2930 2931 2758 2759 2760 2761 2762 2763 3664 3665 3666 3667 3668 3669 3490 3491 3492 3493 3494 3495 48 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 3694 3695 3696 3697 3698 3699 2470 2471 2472 2473 2474 2475 2464 2465 2466 2467 2468 2469 2458 2459 2460 2461 2462 2463 3898 3899 3900 3901 3902 3903 48 2746 2747 2748 2749 2750 2751 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 3532 3533 3534 3535 3536 3537 2488 2489 2490 2491 2492 2493 2482 2483 2484 2485 2486 2487 2470 2471 2472 2473 2474 2475 3694 3695 3696 3697 3698 3699 48 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 3730 3731 3732 3733 3734 3735 2196 2197 2198 2199 2200 2201 2190 2191 2192 2193 2194 2195 2184 2185 2186 2187 2188 2189 3934 3935 3936 3937 3938 3939 48 2470 2471 2472 2473 2474 2475 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 3574 3575 3576 3577 3578 3579 2214 2215 2216 2217 2218 2219 2208 2209 2210 2211 2212 2213 2196 2197 2198 2199 2200 2201 3730 3731 3732 3733 3734 3735 48 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 3760 3761 3762 3763 3764 3765 1890 1891 1892 1893 1894 1895 1884 1885 1886 1887 1888 1889 1878 1879 1880 1881 1882 1883 3964 3965 3966 3967 3968 3969 48 2196 2197 2198 2199 2200 2201 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 3616 3617 3618 3619 3620 3621 1908 1909 1910 1911 1912 1913 1902 1903 1904 1905 1906 1907 1890 1891 1892 1893 1894 1895 3760 3761 3762 3763 3764 3765 36 3142 3143 3144 3145 3146 3147 3130 3131 3132 3133 3134 3135 3394 3395 3396 3397 3398 3399 3136 3137 3138 3139 3140 3141 3796 3797 3798 3799 3800 3801 3400 3401 3402 3403 3404 3405 48 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3454 3455 3456 3457 3458 3459 2956 2957 2958 2959 2960 2961 2950 2951 2952 2953 2954 2955 2944 2945 2946 2947 2948 2949 3832 3833 3834 3835 3836 3837 36 2956 2957 2958 2959 2960 2961 2824 2825 2826 2827 2828 2829 2944 2945 2946 2947 2948 2949 3670 3671 3672 3673 3674 3675 3868 3869 3870 3871 3872 3873 2950 2951 2952 2953 2954 2955 36 2836 2837 2838 2839 2840 2841 2824 2825 2826 2827 2828 2829 2956 2957 2958 2959 2960 2961 2830 2831 2832 2833 2834 2835 3670 3671 3672 3673 3674 3675 3496 3497 3498 3499 3500 3501 36 2518 2519 2520 2521 2522 2523 2506 2507 2508 2509 2510 2511 2824 2825 2826 2827 2828 2829 2512 2513 2514 2515 2516 2517 3904 3905 3906 3907 3908 3909 3976 3977 3978 3979 3980 3981 48 2836 2837 2838 2839 2840 2841 3538 3539 3540 3541 3542 3543 2536 2537 2538 2539 2540 2541 2530 2531 2532 2533 2534 2535 2518 2519 2520 2521 2522 2523 3976 3977 3978 3979 3980 3981 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 48 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 3982 3983 3984 3985 3986 3987 2244 2245 2246 2247 2248 2249 2238 2239 2240 2241 2242 2243 2232 2233 2234 2235 2236 2237 3940 3941 3942 3943 3944 3945 48 2518 2519 2520 2521 2522 2523 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 3580 3581 3582 3583 3584 3585 2262 2263 2264 2265 2266 2267 2256 2257 2258 2259 2260 2261 2244 2245 2246 2247 2248 2249 3982 3983 3984 3985 3986 3987 48 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 3988 3989 3990 3991 3992 3993 1938 1939 1940 1941 1942 1943 1932 1933 1934 1935 1936 1937 1926 1927 1928 1929 1930 1931 3994 3995 3996 3997 3998 3999 48 2244 2245 2246 2247 2248 2249 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 3622 3623 3624 3625 3626 3627 1956 1957 1958 1959 1960 1961 1950 1951 1952 1953 1954 1955 1938 1939 1940 1941 1942 1943 3988 3989 3990 3991 3992 3993 36 3172 3173 3174 3175 3176 3177 3160 3161 3162 3163 3164 3165 3412 3413 3414 3415 3416 3417 3166 3167 3168 3169 3170 3171 3802 3803 3804 3805 3806 3807 3418 3419 3420 3421 3422 3423 48 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3460 3461 3462 3463 3464 3465 2986 2987 2988 2989 2990 2991 2980 2981 2982 2983 2984 2985 2974 2975 2976 2977 2978 2979 3838 3839 3840 3841 3842 3843 36 2986 2987 2988 2989 2990 2991 2848 2849 2850 2851 2852 2853 2974 2975 2976 2977 2978 2979 3502 3503 3504 3505 3506 3507 3874 3875 3876 3877 3878 3879 2980 2981 2982 2983 2984 2985 36 2596 2597 2598 2599 2600 2601 2608 2609 2610 2611 2612 2613 2848 2849 2850 2851 2852 2853 2602 2603 2604 2605 2606 2607 3910 3911 3912 3913 3914 3915 3544 3545 3546 3547 3548 3549 48 2608 2609 2610 2611 2612 2613 2602 2603 2604 2605 2606 2607 2596 2597 2598 2599 2600 2601 3586 3587 3588 3589 3590 3591 2334 2335 2336 2337 2338 2339 2328 2329 2330 2331 2332 2333 2322 2323 2324 2325 2326 2327 3946 3947 3948 3949 3950 3951 48 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 4000 4001 4002 4003 4004 4005 1986 1987 1988 1989 1990 1991 1980 1981 1982 1983 1984 1985 1974 1975 1976 1977 1978 1979 4006 4007 4008 4009 4010 4011 36 2004 2005 2006 2007 2008 2009 1986 1987 1988 1989 1990 1991 2334 2335 2336 2337 2338 2339 1998 1999 2000 2001 2002 2003 4000 4001 4002 4003 4004 4005 3628 3629 3630 3631 3632 3633 48 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1770 1771 1772 1773 1774 1775 4012 4013 4014 4015 4016 4017 0 1 2 3 4 5 24 25 26 27 28 29 18 19 20 21 22 23 4018 4019 4020 4021 4022 4023 48 1770 1771 1772 1773 1774 1775 1848 1849 1850 1851 1852 1853 1842 1843 1844 1845 1846 1847 4024 4025 4026 4027 4028 4029 12 13 14 15 16 17 6 7 8 9 10 11 0 1 2 3 4 5 4012 4013 4014 4015 4016 4017 48 1842 1843 1844 1845 1846 1847 1896 1897 1898 1899 1900 1901 1890 1891 1892 1893 1894 1895 4030 4031 4032 4033 4034 4035 36 37 38 39 40 41 30 31 32 33 34 35 12 13 14 15 16 17 4024 4025 4026 4027 4028 4029 48 1890 1891 1892 1893 1894 1895 1944 1945 1946 1947 1948 1949 1938 1939 1940 1941 1942 1943 4036 4037 4038 4039 4040 4041 48 49 50 51 52 53 42 43 44 45 46 47 36 37 38 39 40 41 4030 4031 4032 4033 4034 4035 48 1746 1747 1748 1749 1750 1751 1788 1789 1790 1791 1792 1793 1776 1777 1778 1779 1780 1781 4018 4019 4020 4021 4022 4023 18 19 20 21 22 23 3310 3311 3312 3313 3314 3315 3298 3299 3300 3301 3302 3303 4042 4043 4044 4045 4046 4047 48 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 4012 4013 4014 4015 4016 4017 0 1 2 3 4 5 3292 3293 3294 3295 3296 3297 3280 3281 3282 3283 3284 3285 4048 4049 4050 4051 4052 4053 48 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 4024 4025 4026 4027 4028 4029 12 13 14 15 16 17 3274 3275 3276 3277 3278 3279 3250 3251 3252 3253 3254 3255 4054 4055 4056 4057 4058 4059 48 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 4030 4031 4032 4033 4034 4035 36 37 38 39 40 41 3268 3269 3270 3271 3272 3273 3262 3263 3264 3265 3266 3267 4060 4061 4062 4063 4064 4065 48 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 4036 4037 4038 4039 4040 4041 48 49 50 51 52 53 3346 3347 3348 3349 3350 3351 3340 3341 3342 3343 3344 3345 4066 4067 4068 4069 4070 4071 48 1692 1693 1694 1695 1696 1697 4072 4073 4074 4075 4076 4077 1740 1741 1742 1743 1744 1745 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4096 4097 4098 4099 4100 4101 4090 4091 4092 4093 4094 4095 4102 4103 4104 4105 4106 4107 45 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4084 4085 4086 4087 4088 4089 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4123 4124 4125 4126 4127 4128 4120 4121 4122 4129 4130 4131 4132 4133 4134 48 1740 1741 1742 1743 1744 1745 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4084 4085 4086 4087 4088 4089 4078 4079 4080 4081 4082 4083 48 4084 4085 4086 4087 4088 4089 4159 4160 4161 4162 4163 4164 4153 4154 4155 4156 4157 4158 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4114 4115 4116 4117 4118 4119 4108 4109 4110 4111 4112 4113 48 4153 4154 4155 4156 4157 4158 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4171 4172 4173 4174 4175 4176 4165 4166 4167 4168 4169 4170 48 4189 4190 4191 4192 4193 4194 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4201 4202 4203 4204 4205 4206 4195 4196 4197 4198 4199 4200 48 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4219 4220 4221 4222 4223 4224 4279 4280 4281 4282 4283 4284 48 4219 4220 4221 4222 4223 4224 4273 4274 4275 4276 4277 4278 4267 4268 4269 4270 4271 4272 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4231 4232 4233 4234 4235 4236 4225 4226 4227 4228 4229 4230 48 4267 4268 4269 4270 4271 4272 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4291 4292 4293 4294 4295 4296 4285 4286 4287 4288 4289 4290 48 1680 1681 1682 1683 1684 1685 4333 4334 4335 4336 4337 4338 1728 1729 1730 1731 1732 1733 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4357 4358 4359 4360 4361 4362 4351 4352 4353 4354 4355 4356 4363 4364 4365 4366 4367 4368 48 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4345 4346 4347 4348 4349 4350 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4387 4388 4389 4390 4391 4392 4381 4382 4383 4384 4385 4386 4393 4394 4395 4396 4397 4398 48 1728 1729 1730 1731 1732 1733 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4345 4346 4347 4348 4349 4350 4339 4340 4341 4342 4343 4344 48 4345 4346 4347 4348 4349 4350 4423 4424 4425 4426 4427 4428 4417 4418 4419 4420 4421 4422 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4375 4376 4377 4378 4379 4380 4369 4370 4371 4372 4373 4374 48 4417 4418 4419 4420 4421 4422 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4435 4436 4437 4438 4439 4440 4429 4430 4431 4432 4433 4434 48 4453 4454 4455 4456 4457 4458 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4465 4466 4467 4468 4469 4470 4459 4460 4461 4462 4463 4464 48 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4483 4484 4485 4486 4487 4488 4543 4544 4545 4546 4547 4548 48 4483 4484 4485 4486 4487 4488 4537 4538 4539 4540 4541 4542 4531 4532 4533 4534 4535 4536 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4495 4496 4497 4498 4499 4500 4489 4490 4491 4492 4493 4494 48 4531 4532 4533 4534 4535 4536 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4555 4556 4557 4558 4559 4560 4549 4550 4551 4552 4553 4554 36 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4597 4598 4599 4600 4601 4602 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4603 4604 4605 4606 4607 4608 36 4645 4646 4647 4648 4649 4650 4597 4598 4599 4600 4601 4602 4633 4634 4635 4636 4637 4638 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4639 4640 4641 4642 4643 4644 48 1716 1717 1718 1719 1720 1721 4663 4664 4665 4666 4667 4668 4633 4634 4635 4636 4637 4638 4657 4658 4659 4660 4661 4662 4597 4598 4599 4600 4601 4602 4675 4676 4677 4678 4679 4680 4669 4670 4671 4672 4673 4674 4681 4682 4683 4684 4685 4686 48 1668 1669 1670 1671 1672 1673 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4645 4646 4647 4648 4649 4650 4639 4640 4641 4642 4643 4644 4633 4634 4635 4636 4637 4638 4705 4706 4707 4708 4709 4710 48 4669 4670 4671 4672 4673 4674 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4615 4616 4617 4618 4619 4620 4627 4628 4629 4630 4631 4632 4597 4598 4599 4600 4601 4602 4675 4676 4677 4678 4679 4680 36 4633 4634 4635 4636 4637 4638 1716 1717 1718 1719 1720 1721 1668 1669 1670 1671 1672 1673 4663 4664 4665 4666 4667 4668 4729 4730 4731 4732 4733 4734 4705 4706 4707 4708 4709 4710 48 4615 4616 4617 4618 4619 4620 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4609 4610 4611 4612 4613 4614 4621 4622 4623 4624 4625 4626 48 4741 4742 4743 4744 4745 4746 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4753 4754 4755 4756 4757 4758 4747 4748 4749 4750 4751 4752 48 4771 4772 4773 4774 4775 4776 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4783 4784 4785 4786 4787 4788 4777 4778 4779 4780 4781 4782 36 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 1704 1705 1706 1707 1708 1709 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4825 4826 4827 4828 4829 4830 48 4837 4838 4839 4840 4841 4842 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4831 4832 4833 4834 4835 4836 4843 4844 4845 4846 4847 4848 48 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4921 4922 4923 4924 4925 4926 4915 4916 4917 4918 4919 4920 4927 4928 4929 4930 4931 4932 48 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4969 4970 4971 4972 4973 4974 4963 4964 4965 4966 4967 4968 4975 4976 4977 4978 4979 4980 48 4945 4946 4947 4948 4949 4950 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 4957 4958 4959 4960 4961 4962 4951 4952 4953 4954 4955 4956 48 4987 4988 4989 4990 4991 4992 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 4999 5000 5001 5002 5003 5004 4993 4994 4995 4996 4997 4998 48 5017 5018 5019 5020 5021 5022 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5029 5030 5031 5032 5033 5034 5023 5024 5025 5026 5027 5028 48 1656 1657 1658 1659 1660 1661 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5101 5102 5103 5104 5105 5106 5095 5096 5097 5098 5099 5100 5107 5108 5109 5110 5111 5112 48 5077 5078 5079 5080 5081 5082 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5089 5090 5091 5092 5093 5094 5083 5084 5085 5086 5087 5088 48 5119 5120 5121 5122 5123 5124 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5131 5132 5133 5134 5135 5136 5125 5126 5127 5128 5129 5130 48 5149 5150 5151 5152 5153 5154 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5161 5162 5163 5164 5165 5166 5155 5156 5157 5158 5159 5160 48 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 66 67 68 69 70 71 60 61 62 63 64 65 54 55 56 57 58 59 5227 5228 5229 5230 5231 5232 48 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 102 103 104 105 106 107 96 97 98 99 100 101 90 91 92 93 94 95 5257 5258 5259 5260 5261 5262 48 5095 5096 5097 5098 5099 5100 5263 5264 5265 5266 5267 5268 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4957 4958 4959 4960 4961 4962 5269 5270 5271 5272 5273 5274 5089 5090 5091 5092 5093 5094 5101 5102 5103 5104 5105 5106 48 5089 5090 5091 5092 5093 5094 5269 5270 5271 5272 5273 5274 4957 4958 4959 4960 4961 4962 5005 5006 5007 5008 5009 5010 4999 5000 5001 5002 5003 5004 5275 5276 5277 5278 5279 5280 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 48 5131 5132 5133 5134 5135 5136 5275 5276 5277 5278 5279 5280 4999 5000 5001 5002 5003 5004 5035 5036 5037 5038 5039 5040 5029 5030 5031 5032 5033 5034 5281 5282 5283 5284 5285 5286 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 48 5161 5162 5163 5164 5165 5166 5281 5282 5283 5284 5285 5286 5029 5030 5031 5032 5033 5034 5065 5066 5067 5068 5069 5070 5059 5060 5061 5062 5063 5064 5287 5288 5289 5290 5291 5292 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 48 4963 4964 4965 4966 4967 4968 5293 5294 5295 5296 5297 5298 4831 4832 4833 4834 4835 4836 4879 4880 4881 4882 4883 4884 4873 4874 4875 4876 4877 4878 5299 5300 5301 5302 5303 5304 4957 4958 4959 4960 4961 4962 4969 4970 4971 4972 4973 4974 48 4957 4958 4959 4960 4961 4962 5299 5300 5301 5302 5303 5304 4873 4874 4875 4876 4877 4878 5305 5306 5307 5308 5309 5310 4915 4916 4917 4918 4919 4920 5311 5312 5313 5314 5315 5316 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 48 4999 5000 5001 5002 5003 5004 5311 5312 5313 5314 5315 5316 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4909 4910 4911 4912 4913 4914 5317 5318 5319 5320 5321 5322 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 48 5029 5030 5031 5032 5033 5034 5317 5318 5319 5320 5321 5322 4909 4910 4911 4912 4913 4914 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 36 1704 1705 1706 1707 1708 1709 4633 4634 4635 4636 4637 4638 1668 1669 1670 1671 1672 1673 5347 5348 5349 5350 5351 5352 4705 4706 4707 4708 4709 4710 5341 5342 5343 5344 5345 5346 48 1704 1705 1706 1707 1708 1709 5347 5348 5349 5350 5351 5352 4633 4634 4635 4636 4637 4638 4657 4658 4659 4660 4661 4662 4597 4598 4599 4600 4601 4602 5353 5354 5355 5356 5357 5358 4831 4832 4833 4834 4835 4836 4825 4826 4827 4828 4829 4830 48 4831 4832 4833 4834 4835 4836 5353 5354 5355 5356 5357 5358 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 5359 5360 5361 5362 5363 5364 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 48 4873 4874 4875 4876 4877 4878 5359 5360 5361 5362 5363 5364 4609 4610 4611 4612 4613 4614 4759 4760 4761 4762 4763 4764 4753 4754 4755 4756 4757 4758 5365 5366 5367 5368 5369 5370 4915 4916 4917 4918 4919 4920 5305 5306 5307 5308 5309 5310 48 4915 4916 4917 4918 4919 4920 5365 5366 5367 5368 5369 5370 4753 4754 4755 4756 4757 4758 4789 4790 4791 4792 4793 4794 4783 4784 4785 4786 4787 4788 5371 5372 5373 5374 5375 5376 4909 4910 4911 4912 4913 4914 4921 4922 4923 4924 4925 4926 48 4909 4910 4911 4912 4913 4914 5371 5372 5373 5374 5375 5376 4783 4784 4785 4786 4787 4788 4819 4820 4821 4822 4823 4824 4813 4814 4815 4816 4817 4818 5377 5378 5379 5380 5381 5382 5329 5330 5331 5332 5333 5334 5323 5324 5325 5326 5327 5328 48 4693 4694 4695 4696 4697 4698 5383 5384 5385 5386 5387 5388 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4375 4376 4377 4378 4379 4380 5389 5390 5391 5392 5393 5394 4645 4646 4647 4648 4649 4650 4699 4700 4701 4702 4703 4704 48 4645 4646 4647 4648 4649 4650 5389 5390 5391 5392 5393 5394 4375 4376 4377 4378 4379 4380 4441 4442 4443 4444 4445 4446 4435 4436 4437 4438 4439 4440 5395 5396 5397 5398 5399 5400 4597 4598 4599 4600 4601 4602 4651 4652 4653 4654 4655 4656 48 4597 4598 4599 4600 4601 4602 5395 5396 5397 5398 5399 5400 4435 4436 4437 4438 4439 4440 4471 4472 4473 4474 4475 4476 4465 4466 4467 4468 4469 4470 5401 5402 5403 5404 5405 5406 4609 4610 4611 4612 4613 4614 4603 4604 4605 4606 4607 4608 48 4609 4610 4611 4612 4613 4614 5401 5402 5403 5404 5405 5406 4465 4466 4467 4468 4469 4470 4501 4502 4503 4504 4505 4506 4495 4496 4497 4498 4499 4500 5407 5408 5409 5410 5411 5412 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 48 4753 4754 4755 4756 4757 4758 5407 5408 5409 5410 5411 5412 4495 4496 4497 4498 4499 4500 4561 4562 4563 4564 4565 4566 4555 4556 4557 4558 4559 4560 5413 5414 5415 5416 5417 5418 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 48 4783 4784 4785 4786 4787 4788 5413 5414 5415 5416 5417 5418 4555 4556 4557 4558 4559 4560 4591 4592 4593 4594 4595 4596 4585 4586 4587 4588 4589 4590 5419 5420 5421 5422 5423 5424 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 45 4381 4382 4383 4384 4385 4386 5425 5426 5427 5428 5429 5430 4120 4121 4122 4123 4124 4125 4126 4127 4128 4114 4115 4116 4117 4118 4119 5431 5432 5433 5434 5435 5436 4375 4376 4377 4378 4379 4380 4387 4388 4389 4390 4391 4392 48 4375 4376 4377 4378 4379 4380 5431 5432 5433 5434 5435 5436 4114 4115 4116 4117 4118 4119 4177 4178 4179 4180 4181 4182 4171 4172 4173 4174 4175 4176 5437 5438 5439 5440 5441 5442 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 48 4435 4436 4437 4438 4439 4440 5437 5438 5439 5440 5441 5442 4171 4172 4173 4174 4175 4176 4207 4208 4209 4210 4211 4212 4201 4202 4203 4204 4205 4206 5443 5444 5445 5446 5447 5448 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 48 4465 4466 4467 4468 4469 4470 5443 5444 5445 5446 5447 5448 4201 4202 4203 4204 4205 4206 4237 4238 4239 4240 4241 4242 4231 4232 4233 4234 4235 4236 5449 5450 5451 5452 5453 5454 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 48 4495 4496 4497 4498 4499 4500 5449 5450 5451 5452 5453 5454 4231 4232 4233 4234 4235 4236 4297 4298 4299 4300 4301 4302 4291 4292 4293 4294 4295 4296 5455 5456 5457 5458 5459 5460 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 48 4555 4556 4557 4558 4559 4560 5455 5456 5457 5458 5459 5460 4291 4292 4293 4294 4295 4296 4327 4328 4329 4330 4331 4332 4321 4322 4323 4324 4325 4326 5461 5462 5463 5464 5465 5466 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 48 1668 1669 1670 1671 1672 1673 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 5467 5468 5469 5470 5471 5472 4351 4352 4353 4354 4355 4356 4363 4364 4365 4366 4367 4368 1680 1681 1682 1683 1684 1685 5473 5474 5475 5476 5477 5478 36 4381 4382 4383 4384 4385 4386 4351 4352 4353 4354 4355 4356 4693 4694 4695 4696 4697 4698 4393 4394 4395 4396 4397 4398 5467 5468 5469 5470 5471 5472 5383 5384 5385 5386 5387 5388 48 1680 1681 1682 1683 1684 1685 4363 4364 4365 4366 4367 4368 4351 4352 4353 4354 4355 4356 5479 5480 5481 5482 5483 5484 4090 4091 4092 4093 4094 4095 4102 4103 4104 4105 4106 4107 1692 1693 1694 1695 1696 1697 5485 5486 5487 5488 5489 5490 45 4351 4352 4353 4354 4355 4356 4393 4394 4395 4396 4397 4398 4381 4382 4383 4384 4385 4386 5425 5426 5427 5428 5429 5430 4120 4121 4122 4129 4130 4131 4132 4133 4134 4090 4091 4092 4093 4094 4095 5479 5480 5481 5482 5483 5484 48 1656 1657 1658 1659 1660 1661 5491 5492 5493 5494 5495 5496 4933 4934 4935 4936 4937 4938 4975 4976 4977 4978 4979 4980 4963 4964 4965 4966 4967 4968 5263 5264 5265 5266 5267 5268 5095 5096 5097 5098 5099 5100 5107 5108 5109 5110 5111 5112 48 4933 4934 4935 4936 4937 4938 4975 4976 4977 4978 4979 4980 4963 4964 4965 4966 4967 4968 5293 5294 5295 5296 5297 5298 4831 4832 4833 4834 4835 4836 4843 4844 4845 4846 4847 4848 4837 4838 4839 4840 4841 4842 5497 5498 5499 5500 5501 5502 48 4831 4832 4833 4834 4835 4836 5353 5354 5355 5356 5357 5358 4597 4598 4599 4600 4601 4602 4627 4628 4629 4630 4631 4632 4615 4616 4617 4618 4619 4620 5503 5504 5505 5506 5507 5508 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 48 4873 4874 4875 4876 4877 4878 5503 5504 5505 5506 5507 5508 4615 4616 4617 4618 4619 4620 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 5509 5510 5511 5512 5513 5514 4915 4916 4917 4918 4919 4920 5305 5306 5307 5308 5309 5310 48 4915 4916 4917 4918 4919 4920 5509 5510 5511 5512 5513 5514 4741 4742 4743 4744 4745 4746 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 5515 5516 5517 5518 5519 5520 4909 4910 4911 4912 4913 4914 4921 4922 4923 4924 4925 4926 48 4909 4910 4911 4912 4913 4914 5515 5516 5517 5518 5519 5520 4771 4772 4773 4774 4775 4776 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 5521 5522 5523 5524 5525 5526 5329 5330 5331 5332 5333 5334 5323 5324 5325 5326 5327 5328 48 4693 4694 4695 4696 4697 4698 5467 5468 5469 5470 5471 5472 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4345 4346 4347 4348 4349 4350 5527 5528 5529 5530 5531 5532 4645 4646 4647 4648 4649 4650 4699 4700 4701 4702 4703 4704 48 4645 4646 4647 4648 4649 4650 5527 5528 5529 5530 5531 5532 4345 4346 4347 4348 4349 4350 4423 4424 4425 4426 4427 4428 4417 4418 4419 4420 4421 4422 5533 5534 5535 5536 5537 5538 4597 4598 4599 4600 4601 4602 4651 4652 4653 4654 4655 4656 48 4597 4598 4599 4600 4601 4602 5533 5534 5535 5536 5537 5538 4417 4418 4419 4420 4421 4422 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 5539 5540 5541 5542 5543 5544 4615 4616 4617 4618 4619 4620 4627 4628 4629 4630 4631 4632 48 4615 4616 4617 4618 4619 4620 5539 5540 5541 5542 5543 5544 4453 4454 4455 4456 4457 4458 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 5545 5546 5547 5548 5549 5550 4741 4742 4743 4744 4745 4746 4735 4736 4737 4738 4739 4740 48 4741 4742 4743 4744 4745 4746 5545 5546 5547 5548 5549 5550 4483 4484 4485 4486 4487 4488 4537 4538 4539 4540 4541 4542 4531 4532 4533 4534 4535 4536 5551 5552 5553 5554 5555 5556 4771 4772 4773 4774 4775 4776 4765 4766 4767 4768 4769 4770 48 4771 4772 4773 4774 4775 4776 5551 5552 5553 5554 5555 5556 4531 4532 4533 4534 4535 4536 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 5557 5558 5559 5560 5561 5562 4801 4802 4803 4804 4805 4806 4795 4796 4797 4798 4799 4800 48 4351 4352 4353 4354 4355 4356 5479 5480 5481 5482 5483 5484 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4084 4085 4086 4087 4088 4089 5563 5564 5565 5566 5567 5568 4345 4346 4347 4348 4349 4350 4357 4358 4359 4360 4361 4362 48 4345 4346 4347 4348 4349 4350 5563 5564 5565 5566 5567 5568 4084 4085 4086 4087 4088 4089 4159 4160 4161 4162 4163 4164 4153 4154 4155 4156 4157 4158 5569 5570 5571 5572 5573 5574 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 48 4417 4418 4419 4420 4421 4422 5569 5570 5571 5572 5573 5574 4153 4154 4155 4156 4157 4158 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 5575 5576 5577 5578 5579 5580 4453 4454 4455 4456 4457 4458 4447 4448 4449 4450 4451 4452 48 4453 4454 4455 4456 4457 4458 5575 5576 5577 5578 5579 5580 4189 4190 4191 4192 4193 4194 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 5581 5582 5583 5584 5585 5586 4483 4484 4485 4486 4487 4488 4477 4478 4479 4480 4481 4482 48 4483 4484 4485 4486 4487 4488 5581 5582 5583 5584 5585 5586 4219 4220 4221 4222 4223 4224 4273 4274 4275 4276 4277 4278 4267 4268 4269 4270 4271 4272 5587 5588 5589 5590 5591 5592 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 48 4531 4532 4533 4534 4535 4536 5587 5588 5589 5590 5591 5592 4267 4268 4269 4270 4271 4272 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 5593 5594 5595 5596 5597 5598 4573 4574 4575 4576 4577 4578 4567 4568 4569 4570 4571 4572 48 1656 1657 1658 1659 1660 1661 5491 5492 5493 5494 5495 5496 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 5599 5600 5601 5602 5603 5604 5077 5078 5079 5080 5081 5082 5071 5072 5073 5074 5075 5076 48 5077 5078 5079 5080 5081 5082 5599 5600 5601 5602 5603 5604 4945 4946 4947 4948 4949 4950 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 5605 5606 5607 5608 5609 5610 5119 5120 5121 5122 5123 5124 5113 5114 5115 5116 5117 5118 48 5119 5120 5121 5122 5123 5124 5605 5606 5607 5608 5609 5610 4987 4988 4989 4990 4991 4992 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5611 5612 5613 5614 5615 5616 5149 5150 5151 5152 5153 5154 5143 5144 5145 5146 5147 5148 48 5149 5150 5151 5152 5153 5154 5611 5612 5613 5614 5615 5616 5017 5018 5019 5020 5021 5022 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5617 5618 5619 5620 5621 5622 5179 5180 5181 5182 5183 5184 5173 5174 5175 5176 5177 5178 48 4933 4934 4935 4936 4937 4938 5497 5498 5499 5500 5501 5502 4837 4838 4839 4840 4841 4842 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 5623 5624 5625 5626 5627 5628 4945 4946 4947 4948 4949 4950 4939 4940 4941 4942 4943 4944 48 4987 4988 4989 4990 4991 4992 5629 5630 5631 5632 5633 5634 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 5635 5636 5637 5638 5639 5640 5017 5018 5019 5020 5021 5022 5011 5012 5013 5014 5015 5016 36 1716 1717 1718 1719 1720 1721 1704 1705 1706 1707 1708 1709 1668 1669 1670 1671 1672 1673 5641 5642 5643 5644 5645 5646 5341 5342 5343 5344 5345 5346 4729 4730 4731 4732 4733 4734 48 4885 4886 4887 4888 4889 4890 5653 5654 5655 5656 5657 5658 5647 5648 5649 5650 5651 5652 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 4897 4898 4899 4900 4901 4902 4891 4892 4893 4894 4895 4896 48 1668 1669 1670 1671 1672 1673 5473 5474 5475 5476 5477 5478 1680 1681 1682 1683 1684 1685 4333 4334 4335 4336 4337 4338 1728 1729 1730 1731 1732 1733 5677 5678 5679 5680 5681 5682 1716 1717 1718 1719 1720 1721 4729 4730 4731 4732 4733 4734 48 5647 5648 5649 5650 5651 5652 5683 5684 5685 5686 5687 5688 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 5689 5690 5691 5692 5693 5694 5665 5666 5667 5668 5669 5670 5659 5660 5661 5662 5663 5664 48 1680 1681 1682 1683 1684 1685 5485 5486 5487 5488 5489 5490 1692 1693 1694 1695 1696 1697 4072 4073 4074 4075 4076 4077 1740 1741 1742 1743 1744 1745 5695 5696 5697 5698 5699 5700 1728 1729 1730 1731 1732 1733 4333 4334 4335 4336 4337 4338 48 4507 4508 4509 4510 4511 4512 5701 5702 5703 5704 5705 5706 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 5707 5708 5709 5710 5711 5712 4519 4520 4521 4522 4523 4524 4513 4514 4515 4516 4517 4518 36 4633 4634 4635 4636 4637 4638 1716 1717 1718 1719 1720 1721 1704 1705 1706 1707 1708 1709 4663 4664 4665 4666 4667 4668 5641 5642 5643 5644 5645 5646 5347 5348 5349 5350 5351 5352 48 1728 1729 1730 1731 1732 1733 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 5713 5714 5715 5716 5717 5718 4633 4634 4635 4636 4637 4638 4663 4664 4665 4666 4667 4668 1716 1717 1718 1719 1720 1721 5677 5678 5679 5680 5681 5682 36 4645 4646 4647 4648 4649 4650 4633 4634 4635 4636 4637 4638 4345 4346 4347 4348 4349 4350 4639 4640 4641 4642 4643 4644 5713 5714 5715 5716 5717 5718 5527 5528 5529 5530 5531 5532 36 4375 4376 4377 4378 4379 4380 4645 4646 4647 4648 4649 4650 4345 4346 4347 4348 4349 4350 5389 5390 5391 5392 5393 5394 5527 5528 5529 5530 5531 5532 4369 4370 4371 4372 4373 4374 48 1728 1729 1730 1731 1732 1733 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 5563 5564 5565 5566 5567 5568 4084 4085 4086 4087 4088 4089 4078 4079 4080 4081 4082 4083 1740 1741 1742 1743 1744 1745 5695 5696 5697 5698 5699 5700 48 4345 4346 4347 4348 4349 4350 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 5431 5432 5433 5434 5435 5436 4114 4115 4116 4117 4118 4119 4108 4109 4110 4111 4112 4113 4084 4085 4086 4087 4088 4089 5563 5564 5565 5566 5567 5568 36 4831 4832 4833 4834 4835 4836 4669 4670 4671 4672 4673 4674 4837 4838 4839 4840 4841 4842 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 4843 4844 4845 4846 4847 4848 36 4597 4598 4599 4600 4601 4602 4669 4670 4671 4672 4673 4674 4831 4832 4833 4834 4835 4836 4675 4676 4677 4678 4679 4680 5719 5720 5721 5722 5723 5724 5353 5354 5355 5356 5357 5358 48 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4597 4598 4599 4600 4601 4602 5533 5534 5535 5536 5537 5538 4417 4418 4419 4420 4421 4422 4411 4412 4413 4414 4415 4416 4405 4406 4407 4408 4409 4410 5731 5732 5733 5734 5735 5736 36 4435 4436 4437 4438 4439 4440 4417 4418 4419 4420 4421 4422 4597 4598 4599 4600 4601 4602 4429 4430 4431 4432 4433 4434 5533 5534 5535 5536 5537 5538 5395 5396 5397 5398 5399 5400 48 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 5569 5570 5571 5572 5573 5574 4153 4154 4155 4156 4157 4158 4147 4148 4149 4150 4151 4152 4141 4142 4143 4144 4145 4146 5737 5738 5739 5740 5741 5742 48 4417 4418 4419 4420 4421 4422 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 5437 5438 5439 5440 5441 5442 4171 4172 4173 4174 4175 4176 4165 4166 4167 4168 4169 4170 4153 4154 4155 4156 4157 4158 5569 5570 5571 5572 5573 5574 48 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5269 5270 5271 5272 5273 5274 4957 4958 4959 4960 4961 4962 4951 4952 4953 4954 4955 4956 4945 4946 4947 4948 4949 4950 5599 5600 5601 5602 5603 5604 36 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4873 4874 4875 4876 4877 4878 4621 4622 4623 4624 4625 4626 5503 5504 5505 5506 5507 5508 5359 5360 5361 5362 5363 5364 48 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4609 4610 4611 4612 4613 4614 5401 5402 5403 5404 5405 5406 4465 4466 4467 4468 4469 4470 4459 4460 4461 4462 4463 4464 4453 4454 4455 4456 4457 4458 5539 5540 5541 5542 5543 5544 48 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 5443 5444 5445 5446 5447 5448 4201 4202 4203 4204 4205 4206 4195 4196 4197 4198 4199 4200 4189 4190 4191 4192 4193 4194 5575 5576 5577 5578 5579 5580 48 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5275 5276 5277 5278 5279 5280 4999 5000 5001 5002 5003 5004 4993 4994 4995 4996 4997 4998 4987 4988 4989 4990 4991 4992 5605 5606 5607 5608 5609 5610 48 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5311 5312 5313 5314 5315 5316 4915 4916 4917 4918 4919 4920 4927 4928 4929 4930 4931 4932 4885 4886 4887 4888 4889 4890 5629 5630 5631 5632 5633 5634 36 4753 4754 4755 4756 4757 4758 4741 4742 4743 4744 4745 4746 4915 4916 4917 4918 4919 4920 4747 4748 4749 4750 4751 4752 5509 5510 5511 5512 5513 5514 5365 5366 5367 5368 5369 5370 48 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 5407 5408 5409 5410 5411 5412 4495 4496 4497 4498 4499 4500 4489 4490 4491 4492 4493 4494 4483 4484 4485 4486 4487 4488 5545 5546 5547 5548 5549 5550 48 4507 4508 4509 4510 4511 4512 4543 4544 4545 4546 4547 4548 4483 4484 4485 4486 4487 4488 5581 5582 5583 5584 5585 5586 4219 4220 4221 4222 4223 4224 4279 4280 4281 4282 4283 4284 4243 4244 4245 4246 4247 4248 5701 5702 5703 5704 5705 5706 48 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 5449 5450 5451 5452 5453 5454 4231 4232 4233 4234 4235 4236 4225 4226 4227 4228 4229 4230 4219 4220 4221 4222 4223 4224 5581 5582 5583 5584 5585 5586 48 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5281 5282 5283 5284 5285 5286 5029 5030 5031 5032 5033 5034 5023 5024 5025 5026 5027 5028 5017 5018 5019 5020 5021 5022 5611 5612 5613 5614 5615 5616 48 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5317 5318 5319 5320 5321 5322 4909 4910 4911 4912 4913 4914 4903 4904 4905 4906 4907 4908 4897 4898 4899 4900 4901 4902 5635 5636 5637 5638 5639 5640 48 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 5515 5516 5517 5518 5519 5520 4771 4772 4773 4774 4775 4776 5743 5744 5745 5746 5747 5748 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 36 4783 4784 4785 4786 4787 4788 4771 4772 4773 4774 4775 4776 4909 4910 4911 4912 4913 4914 4777 4778 4779 4780 4781 4782 5515 5516 5517 5518 5519 5520 5371 5372 5373 5374 5375 5376 48 5665 5666 5667 5668 5669 5670 5743 5744 5745 5746 5747 5748 4771 4772 4773 4774 4775 4776 5551 5552 5553 5554 5555 5556 4531 4532 4533 4534 4535 4536 4525 4526 4527 4528 4529 4530 4519 4520 4521 4522 4523 4524 5689 5690 5691 5692 5693 5694 48 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 5413 5414 5415 5416 5417 5418 4555 4556 4557 4558 4559 4560 4549 4550 4551 4552 4553 4554 4531 4532 4533 4534 4535 4536 5551 5552 5553 5554 5555 5556 48 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 5587 5588 5589 5590 5591 5592 4267 4268 4269 4270 4271 4272 4261 4262 4263 4264 4265 4266 4255 4256 4257 4258 4259 4260 5707 5708 5709 5710 5711 5712 48 4531 4532 4533 4534 4535 4536 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 5455 5456 5457 5458 5459 5460 4291 4292 4293 4294 4295 4296 4285 4286 4287 4288 4289 4290 4267 4268 4269 4270 4271 4272 5587 5588 5589 5590 5591 5592 48 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5287 5288 5289 5290 5291 5292 5059 5060 5061 5062 5063 5064 5053 5054 5055 5056 5057 5058 5047 5048 5049 5050 5051 5052 5617 5618 5619 5620 5621 5622 36 4813 4814 4815 4816 4817 4818 4801 4802 4803 4804 4805 4806 5329 5330 5331 5332 5333 5334 4807 4808 4809 4810 4811 4812 5521 5522 5523 5524 5525 5526 5377 5378 5379 5380 5381 5382 48 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 5419 5420 5421 5422 5423 5424 4585 4586 4587 4588 4589 4590 4579 4580 4581 4582 4583 4584 4573 4574 4575 4576 4577 4578 5557 5558 5559 5560 5561 5562 48 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 5461 5462 5463 5464 5465 5466 4321 4322 4323 4324 4325 4326 4315 4316 4317 4318 4319 4320 4309 4310 4311 4312 4313 4314 5593 5594 5595 5596 5597 5598 48 4084 4085 4086 4087 4088 4089 5749 5750 5751 5752 5753 5754 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 5755 5756 5757 5758 5759 5760 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 48 4153 4154 4155 4156 4157 4158 5755 5756 5757 5758 5759 5760 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 5761 5762 5763 5764 5765 5766 4189 4190 4191 4192 4193 4194 4183 4184 4185 4186 4187 4188 48 4189 4190 4191 4192 4193 4194 5761 5762 5763 5764 5765 5766 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 5767 5768 5769 5770 5771 5772 4219 4220 4221 4222 4223 4224 4213 4214 4215 4216 4217 4218 48 4219 4220 4221 4222 4223 4224 5767 5768 5769 5770 5771 5772 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 5773 5774 5775 5776 5777 5778 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 48 4267 4268 4269 4270 4271 4272 5773 5774 5775 5776 5777 5778 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 5779 5780 5781 5782 5783 5784 4309 4310 4311 4312 4313 4314 4303 4304 4305 4306 4307 4308 48 1740 1741 1742 1743 1744 1745 5785 5786 5787 5788 5789 5790 5203 5204 5205 5206 5207 5208 5227 5228 5229 5230 5231 5232 54 55 56 57 58 59 5749 5750 5751 5752 5753 5754 4084 4085 4086 4087 4088 4089 4078 4079 4080 4081 4082 4083 48 4141 4142 4143 4144 4145 4146 5791 5792 5793 5794 5795 5796 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 66 67 68 69 70 71 5755 5756 5757 5758 5759 5760 4153 4154 4155 4156 4157 4158 4147 4148 4149 4150 4151 4152 48 4243 4244 4245 4246 4247 4248 5797 5798 5799 5800 5801 5802 5233 5234 5235 5236 5237 5238 5257 5258 5259 5260 5261 5262 90 91 92 93 94 95 5767 5768 5769 5770 5771 5772 4219 4220 4221 4222 4223 4224 4279 4280 4281 4282 4283 4284 48 4255 4256 4257 4258 4259 4260 5803 5804 5805 5806 5807 5808 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 102 103 104 105 106 107 5773 5774 5775 5776 5777 5778 4267 4268 4269 4270 4271 4272 4261 4262 4263 4264 4265 4266 48 4309 4310 4311 4312 4313 4314 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 4321 4322 4323 4324 4325 4326 4315 4316 4317 4318 4319 4320 48 5815 5816 5817 5818 5819 5820 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5827 5828 5829 5830 5831 5832 5821 5822 5823 5824 5825 5826 48 5881 5882 5883 5884 5885 5886 5875 5876 5877 5878 5879 5880 5869 5870 5871 5872 5873 5874 5887 5888 5889 5890 5891 5892 786 787 788 789 790 791 5893 5894 5895 5896 5897 5898 792 793 794 795 796 797 5899 5900 5901 5902 5903 5904 48 5845 5846 5847 5848 5849 5850 5905 5906 5907 5908 5909 5910 5869 5870 5871 5872 5873 5874 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5857 5858 5859 5860 5861 5862 5851 5852 5853 5854 5855 5856 48 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5917 5918 5919 5920 5921 5922 5911 5912 5913 5914 5915 5916 48 5869 5870 5871 5872 5873 5874 5905 5906 5907 5908 5909 5910 5845 5846 5847 5848 5849 5850 5947 5948 5949 5950 5951 5952 780 781 782 783 784 785 5953 5954 5955 5956 5957 5958 786 787 788 789 790 791 5887 5888 5889 5890 5891 5892 48 5881 5882 5883 5884 5885 5886 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5935 5936 5937 5938 5939 5940 5929 5930 5931 5932 5933 5934 48 5965 5966 5967 5968 5969 5970 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 5977 5978 5979 5980 5981 5982 5971 5972 5973 5974 5975 5976 36 5815 5816 5817 5818 5819 5820 780 781 782 783 784 785 5845 5846 5847 5848 5849 5850 6019 6020 6021 6022 6023 6024 5947 5948 5949 5950 5951 5952 5839 5840 5841 5842 5843 5844 48 5995 5996 5997 5998 5999 6000 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6007 6008 6009 6010 6011 6012 6001 6002 6003 6004 6005 6006 48 5815 5816 5817 5818 5819 5820 6061 6062 6063 6064 6065 6066 6055 6056 6057 6058 6059 6060 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 780 781 782 783 784 785 6019 6020 6021 6022 6023 6024 48 6031 6032 6033 6034 6035 6036 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6043 6044 6045 6046 6047 6048 6037 6038 6039 6040 6041 6042 48 6091 6092 6093 6094 6095 6096 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6103 6104 6105 6106 6107 6108 6097 6098 6099 6100 6101 6102 48 6121 6122 6123 6124 6125 6126 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6133 6134 6135 6136 6137 6138 6127 6128 6129 6130 6131 6132 48 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6151 6152 6153 6154 6155 6156 6211 6212 6213 6214 6215 6216 48 6151 6152 6153 6154 6155 6156 6205 6206 6207 6208 6209 6210 6199 6200 6201 6202 6203 6204 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6163 6164 6165 6166 6167 6168 6157 6158 6159 6160 6161 6162 48 6199 6200 6201 6202 6203 6204 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6223 6224 6225 6226 6227 6228 6217 6218 6219 6220 6221 6222 48 6241 6242 6243 6244 6245 6246 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6253 6254 6255 6256 6257 6258 6247 6248 6249 6250 6251 6252 48 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6271 6272 6273 6274 6275 6276 6331 6332 6333 6334 6335 6336 48 6271 6272 6273 6274 6275 6276 6325 6326 6327 6328 6329 6330 6319 6320 6321 6322 6323 6324 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6283 6284 6285 6286 6287 6288 6277 6278 6279 6280 6281 6282 48 6319 6320 6321 6322 6323 6324 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6343 6344 6345 6346 6347 6348 6337 6338 6339 6340 6341 6342 48 6361 6362 6363 6364 6365 6366 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6373 6374 6375 6376 6377 6378 6367 6368 6369 6370 6371 6372 48 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6391 6392 6393 6394 6395 6396 6451 6452 6453 6454 6455 6456 48 6391 6392 6393 6394 6395 6396 6445 6446 6447 6448 6449 6450 6439 6440 6441 6442 6443 6444 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6403 6404 6405 6406 6407 6408 6397 6398 6399 6400 6401 6402 48 6439 6440 6441 6442 6443 6444 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6463 6464 6465 6466 6467 6468 6457 6458 6459 6460 6461 6462 48 6481 6482 6483 6484 6485 6486 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6493 6494 6495 6496 6497 6498 6487 6488 6489 6490 6491 6492 48 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6511 6512 6513 6514 6515 6516 6571 6572 6573 6574 6575 6576 48 6511 6512 6513 6514 6515 6516 6565 6566 6567 6568 6569 6570 6559 6560 6561 6562 6563 6564 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6523 6524 6525 6526 6527 6528 6517 6518 6519 6520 6521 6522 48 6559 6560 6561 6562 6563 6564 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6583 6584 6585 6586 6587 6588 6577 6578 6579 6580 6581 6582 48 6601 6602 6603 6604 6605 6606 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6613 6614 6615 6616 6617 6618 6607 6608 6609 6610 6611 6612 48 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6631 6632 6633 6634 6635 6636 6691 6692 6693 6694 6695 6696 48 6631 6632 6633 6634 6635 6636 6685 6686 6687 6688 6689 6690 6679 6680 6681 6682 6683 6684 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6643 6644 6645 6646 6647 6648 6637 6638 6639 6640 6641 6642 48 6679 6680 6681 6682 6683 6684 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6703 6704 6705 6706 6707 6708 6697 6698 6699 6700 6701 6702 48 6721 6722 6723 6724 6725 6726 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6733 6734 6735 6736 6737 6738 6727 6728 6729 6730 6731 6732 48 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6751 6752 6753 6754 6755 6756 6811 6812 6813 6814 6815 6816 48 6751 6752 6753 6754 6755 6756 6805 6806 6807 6808 6809 6810 6799 6800 6801 6802 6803 6804 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6763 6764 6765 6766 6767 6768 6757 6758 6759 6760 6761 6762 48 6799 6800 6801 6802 6803 6804 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6823 6824 6825 6826 6827 6828 6817 6818 6819 6820 6821 6822 48 6841 6842 6843 6844 6845 6846 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6853 6854 6855 6856 6857 6858 6847 6848 6849 6850 6851 6852 48 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6871 6872 6873 6874 6875 6876 6931 6932 6933 6934 6935 6936 48 6871 6872 6873 6874 6875 6876 6925 6926 6927 6928 6929 6930 6919 6920 6921 6922 6923 6924 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6883 6884 6885 6886 6887 6888 6877 6878 6879 6880 6881 6882 48 6919 6920 6921 6922 6923 6924 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6943 6944 6945 6946 6947 6948 6937 6938 6939 6940 6941 6942 48 6961 6962 6963 6964 6965 6966 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 6973 6974 6975 6976 6977 6978 6967 6968 6969 6970 6971 6972 48 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 6991 6992 6993 6994 6995 6996 7051 7052 7053 7054 7055 7056 48 6991 6992 6993 6994 6995 6996 7045 7046 7047 7048 7049 7050 7039 7040 7041 7042 7043 7044 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7003 7004 7005 7006 7007 7008 6997 6998 6999 7000 7001 7002 48 7039 7040 7041 7042 7043 7044 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7063 7064 7065 7066 7067 7068 7057 7058 7059 7060 7061 7062 48 7081 7082 7083 7084 7085 7086 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7093 7094 7095 7096 7097 7098 7087 7088 7089 7090 7091 7092 48 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7111 7112 7113 7114 7115 7116 7171 7172 7173 7174 7175 7176 48 7111 7112 7113 7114 7115 7116 7165 7166 7167 7168 7169 7170 7159 7160 7161 7162 7163 7164 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7123 7124 7125 7126 7127 7128 7117 7118 7119 7120 7121 7122 48 7159 7160 7161 7162 7163 7164 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7183 7184 7185 7186 7187 7188 7177 7178 7179 7180 7181 7182 48 7201 7202 7203 7204 7205 7206 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7213 7214 7215 7216 7217 7218 7207 7208 7209 7210 7211 7212 48 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7231 7232 7233 7234 7235 7236 7291 7292 7293 7294 7295 7296 48 7231 7232 7233 7234 7235 7236 7285 7286 7287 7288 7289 7290 7279 7280 7281 7282 7283 7284 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7243 7244 7245 7246 7247 7248 7237 7238 7239 7240 7241 7242 48 7279 7280 7281 7282 7283 7284 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7303 7304 7305 7306 7307 7308 7297 7298 7299 7300 7301 7302 48 7321 7322 7323 7324 7325 7326 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7333 7334 7335 7336 7337 7338 7327 7328 7329 7330 7331 7332 48 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7351 7352 7353 7354 7355 7356 7411 7412 7413 7414 7415 7416 48 7351 7352 7353 7354 7355 7356 7405 7406 7407 7408 7409 7410 7399 7400 7401 7402 7403 7404 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7363 7364 7365 7366 7367 7368 7357 7358 7359 7360 7361 7362 48 7399 7400 7401 7402 7403 7404 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7423 7424 7425 7426 7427 7428 7417 7418 7419 7420 7421 7422 48 7441 7442 7443 7444 7445 7446 7465 7466 7467 7468 7469 7470 2082 2083 2084 2085 2086 2087 2124 2125 2126 2127 2128 2129 2112 2113 2114 2115 2116 2117 7471 7472 7473 7474 7475 7476 7453 7454 7455 7456 7457 7458 7447 7448 7449 7450 7451 7452 48 4573 4574 4575 4576 4577 4578 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 4585 4586 4587 4588 4589 4590 4579 4580 4581 4582 4583 4584 48 7483 7484 7485 7486 7487 7488 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7495 7496 7497 7498 7499 7500 7489 7490 7491 7492 7493 7494 48 7549 7550 7551 7552 7553 7554 7543 7544 7545 7546 7547 7548 7537 7538 7539 7540 7541 7542 7555 7556 7557 7558 7559 7560 750 751 752 753 754 755 7561 7562 7563 7564 7565 7566 756 757 758 759 760 761 7567 7568 7569 7570 7571 7572 48 7513 7514 7515 7516 7517 7518 7573 7574 7575 7576 7577 7578 7537 7538 7539 7540 7541 7542 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7525 7526 7527 7528 7529 7530 7519 7520 7521 7522 7523 7524 48 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7585 7586 7587 7588 7589 7590 7579 7580 7581 7582 7583 7584 48 7537 7538 7539 7540 7541 7542 7573 7574 7575 7576 7577 7578 7513 7514 7515 7516 7517 7518 7615 7616 7617 7618 7619 7620 744 745 746 747 748 749 7621 7622 7623 7624 7625 7626 750 751 752 753 754 755 7555 7556 7557 7558 7559 7560 48 7549 7550 7551 7552 7553 7554 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7603 7604 7605 7606 7607 7608 7597 7598 7599 7600 7601 7602 48 7633 7634 7635 7636 7637 7638 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7645 7646 7647 7648 7649 7650 7639 7640 7641 7642 7643 7644 36 7483 7484 7485 7486 7487 7488 744 745 746 747 748 749 7513 7514 7515 7516 7517 7518 7687 7688 7689 7690 7691 7692 7615 7616 7617 7618 7619 7620 7507 7508 7509 7510 7511 7512 48 7663 7664 7665 7666 7667 7668 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7675 7676 7677 7678 7679 7680 7669 7670 7671 7672 7673 7674 48 7483 7484 7485 7486 7487 7488 7729 7730 7731 7732 7733 7734 7723 7724 7725 7726 7727 7728 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 744 745 746 747 748 749 7687 7688 7689 7690 7691 7692 48 7699 7700 7701 7702 7703 7704 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7711 7712 7713 7714 7715 7716 7705 7706 7707 7708 7709 7710 48 7759 7760 7761 7762 7763 7764 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7771 7772 7773 7774 7775 7776 7765 7766 7767 7768 7769 7770 48 7789 7790 7791 7792 7793 7794 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7801 7802 7803 7804 7805 7806 7795 7796 7797 7798 7799 7800 48 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7819 7820 7821 7822 7823 7824 7879 7880 7881 7882 7883 7884 48 7819 7820 7821 7822 7823 7824 7873 7874 7875 7876 7877 7878 7867 7868 7869 7870 7871 7872 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7831 7832 7833 7834 7835 7836 7825 7826 7827 7828 7829 7830 48 7867 7868 7869 7870 7871 7872 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7891 7892 7893 7894 7895 7896 7885 7886 7887 7888 7889 7890 48 7909 7910 7911 7912 7913 7914 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7921 7922 7923 7924 7925 7926 7915 7916 7917 7918 7919 7920 48 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7939 7940 7941 7942 7943 7944 7999 8000 8001 8002 8003 8004 48 7939 7940 7941 7942 7943 7944 7993 7994 7995 7996 7997 7998 7987 7988 7989 7990 7991 7992 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 7951 7952 7953 7954 7955 7956 7945 7946 7947 7948 7949 7950 48 7987 7988 7989 7990 7991 7992 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8011 8012 8013 8014 8015 8016 8005 8006 8007 8008 8009 8010 48 8029 8030 8031 8032 8033 8034 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8041 8042 8043 8044 8045 8046 8035 8036 8037 8038 8039 8040 48 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8059 8060 8061 8062 8063 8064 8119 8120 8121 8122 8123 8124 48 8059 8060 8061 8062 8063 8064 8113 8114 8115 8116 8117 8118 8107 8108 8109 8110 8111 8112 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8071 8072 8073 8074 8075 8076 8065 8066 8067 8068 8069 8070 48 8107 8108 8109 8110 8111 8112 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8131 8132 8133 8134 8135 8136 8125 8126 8127 8128 8129 8130 48 8149 8150 8151 8152 8153 8154 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8161 8162 8163 8164 8165 8166 8155 8156 8157 8158 8159 8160 48 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8179 8180 8181 8182 8183 8184 8239 8240 8241 8242 8243 8244 48 8179 8180 8181 8182 8183 8184 8233 8234 8235 8236 8237 8238 8227 8228 8229 8230 8231 8232 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8191 8192 8193 8194 8195 8196 8185 8186 8187 8188 8189 8190 48 8227 8228 8229 8230 8231 8232 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8251 8252 8253 8254 8255 8256 8245 8246 8247 8248 8249 8250 48 8269 8270 8271 8272 8273 8274 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8281 8282 8283 8284 8285 8286 8275 8276 8277 8278 8279 8280 48 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8299 8300 8301 8302 8303 8304 8359 8360 8361 8362 8363 8364 48 8299 8300 8301 8302 8303 8304 8353 8354 8355 8356 8357 8358 8347 8348 8349 8350 8351 8352 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8311 8312 8313 8314 8315 8316 8305 8306 8307 8308 8309 8310 48 8347 8348 8349 8350 8351 8352 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8371 8372 8373 8374 8375 8376 8365 8366 8367 8368 8369 8370 48 8389 8390 8391 8392 8393 8394 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8401 8402 8403 8404 8405 8406 8395 8396 8397 8398 8399 8400 48 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8419 8420 8421 8422 8423 8424 8479 8480 8481 8482 8483 8484 48 8419 8420 8421 8422 8423 8424 8473 8474 8475 8476 8477 8478 8467 8468 8469 8470 8471 8472 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8431 8432 8433 8434 8435 8436 8425 8426 8427 8428 8429 8430 48 8467 8468 8469 8470 8471 8472 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8491 8492 8493 8494 8495 8496 8485 8486 8487 8488 8489 8490 48 8509 8510 8511 8512 8513 8514 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8521 8522 8523 8524 8525 8526 8515 8516 8517 8518 8519 8520 48 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8539 8540 8541 8542 8543 8544 8599 8600 8601 8602 8603 8604 48 8539 8540 8541 8542 8543 8544 8593 8594 8595 8596 8597 8598 8587 8588 8589 8590 8591 8592 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8551 8552 8553 8554 8555 8556 8545 8546 8547 8548 8549 8550 48 8587 8588 8589 8590 8591 8592 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8611 8612 8613 8614 8615 8616 8605 8606 8607 8608 8609 8610 48 8629 8630 8631 8632 8633 8634 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8641 8642 8643 8644 8645 8646 8635 8636 8637 8638 8639 8640 48 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8659 8660 8661 8662 8663 8664 8719 8720 8721 8722 8723 8724 48 8659 8660 8661 8662 8663 8664 8713 8714 8715 8716 8717 8718 8707 8708 8709 8710 8711 8712 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8671 8672 8673 8674 8675 8676 8665 8666 8667 8668 8669 8670 48 8707 8708 8709 8710 8711 8712 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8731 8732 8733 8734 8735 8736 8725 8726 8727 8728 8729 8730 48 8749 8750 8751 8752 8753 8754 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8761 8762 8763 8764 8765 8766 8755 8756 8757 8758 8759 8760 48 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8779 8780 8781 8782 8783 8784 8839 8840 8841 8842 8843 8844 48 8779 8780 8781 8782 8783 8784 8833 8834 8835 8836 8837 8838 8827 8828 8829 8830 8831 8832 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8791 8792 8793 8794 8795 8796 8785 8786 8787 8788 8789 8790 48 8827 8828 8829 8830 8831 8832 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8851 8852 8853 8854 8855 8856 8845 8846 8847 8848 8849 8850 48 8869 8870 8871 8872 8873 8874 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8881 8882 8883 8884 8885 8886 8875 8876 8877 8878 8879 8880 48 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8899 8900 8901 8902 8903 8904 8959 8960 8961 8962 8963 8964 48 8899 8900 8901 8902 8903 8904 8953 8954 8955 8956 8957 8958 8947 8948 8949 8950 8951 8952 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8911 8912 8913 8914 8915 8916 8905 8906 8907 8908 8909 8910 48 8947 8948 8949 8950 8951 8952 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 8971 8972 8973 8974 8975 8976 8965 8966 8967 8968 8969 8970 48 8989 8990 8991 8992 8993 8994 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9001 9002 9003 9004 9005 9006 8995 8996 8997 8998 8999 9000 48 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9019 9020 9021 9022 9023 9024 9079 9080 9081 9082 9083 9084 48 9019 9020 9021 9022 9023 9024 9073 9074 9075 9076 9077 9078 9067 9068 9069 9070 9071 9072 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9031 9032 9033 9034 9035 9036 9025 9026 9027 9028 9029 9030 48 9067 9068 9069 9070 9071 9072 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9091 9092 9093 9094 9095 9096 9085 9086 9087 9088 9089 9090 48 9109 9110 9111 9112 9113 9114 9133 9134 9135 9136 9137 9138 2304 2305 2306 2307 2308 2309 2398 2399 2400 2401 2402 2403 2386 2387 2388 2389 2390 2391 9139 9140 9141 9142 9143 9144 9121 9122 9123 9124 9125 9126 9115 9116 9117 9118 9119 9120 48 4801 4802 4803 4804 4805 4806 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 4813 4814 4815 4816 4817 4818 4807 4808 4809 4810 4811 4812 48 9151 9152 9153 9154 9155 9156 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9163 9164 9165 9166 9167 9168 9157 9158 9159 9160 9161 9162 48 9217 9218 9219 9220 9221 9222 9211 9212 9213 9214 9215 9216 9205 9206 9207 9208 9209 9210 9223 9224 9225 9226 9227 9228 714 715 716 717 718 719 9229 9230 9231 9232 9233 9234 720 721 722 723 724 725 9235 9236 9237 9238 9239 9240 48 9181 9182 9183 9184 9185 9186 9241 9242 9243 9244 9245 9246 9205 9206 9207 9208 9209 9210 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9193 9194 9195 9196 9197 9198 9187 9188 9189 9190 9191 9192 48 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9253 9254 9255 9256 9257 9258 9247 9248 9249 9250 9251 9252 48 9205 9206 9207 9208 9209 9210 9241 9242 9243 9244 9245 9246 9181 9182 9183 9184 9185 9186 9283 9284 9285 9286 9287 9288 708 709 710 711 712 713 9289 9290 9291 9292 9293 9294 714 715 716 717 718 719 9223 9224 9225 9226 9227 9228 48 9217 9218 9219 9220 9221 9222 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9271 9272 9273 9274 9275 9276 9265 9266 9267 9268 9269 9270 48 9301 9302 9303 9304 9305 9306 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9313 9314 9315 9316 9317 9318 9307 9308 9309 9310 9311 9312 36 9151 9152 9153 9154 9155 9156 708 709 710 711 712 713 9181 9182 9183 9184 9185 9186 9355 9356 9357 9358 9359 9360 9283 9284 9285 9286 9287 9288 9175 9176 9177 9178 9179 9180 48 9331 9332 9333 9334 9335 9336 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9343 9344 9345 9346 9347 9348 9337 9338 9339 9340 9341 9342 48 9151 9152 9153 9154 9155 9156 9397 9398 9399 9400 9401 9402 9391 9392 9393 9394 9395 9396 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 708 709 710 711 712 713 9355 9356 9357 9358 9359 9360 48 9367 9368 9369 9370 9371 9372 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9379 9380 9381 9382 9383 9384 9373 9374 9375 9376 9377 9378 48 9427 9428 9429 9430 9431 9432 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9439 9440 9441 9442 9443 9444 9433 9434 9435 9436 9437 9438 48 9457 9458 9459 9460 9461 9462 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9469 9470 9471 9472 9473 9474 9463 9464 9465 9466 9467 9468 48 9487 9488 9489 9490 9491 9492 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9499 9500 9501 9502 9503 9504 9493 9494 9495 9496 9497 9498 48 9517 9518 9519 9520 9521 9522 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9529 9530 9531 9532 9533 9534 9523 9524 9525 9526 9527 9528 48 9547 9548 9549 9550 9551 9552 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9559 9560 9561 9562 9563 9564 9553 9554 9555 9556 9557 9558 48 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9577 9578 9579 9580 9581 9582 9637 9638 9639 9640 9641 9642 48 9577 9578 9579 9580 9581 9582 9631 9632 9633 9634 9635 9636 9625 9626 9627 9628 9629 9630 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9589 9590 9591 9592 9593 9594 9583 9584 9585 9586 9587 9588 48 9625 9626 9627 9628 9629 9630 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9649 9650 9651 9652 9653 9654 9643 9644 9645 9646 9647 9648 48 9667 9668 9669 9670 9671 9672 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9679 9680 9681 9682 9683 9684 9673 9674 9675 9676 9677 9678 48 9697 9698 9699 9700 9701 9702 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9709 9710 9711 9712 9713 9714 9703 9704 9705 9706 9707 9708 48 9727 9728 9729 9730 9731 9732 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9739 9740 9741 9742 9743 9744 9733 9734 9735 9736 9737 9738 48 9757 9758 9759 9760 9761 9762 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9769 9770 9771 9772 9773 9774 9763 9764 9765 9766 9767 9768 48 9787 9788 9789 9790 9791 9792 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9799 9800 9801 9802 9803 9804 9793 9794 9795 9796 9797 9798 48 9817 9818 9819 9820 9821 9822 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9829 9830 9831 9832 9833 9834 9823 9824 9825 9826 9827 9828 48 9847 9848 9849 9850 9851 9852 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9859 9860 9861 9862 9863 9864 9853 9854 9855 9856 9857 9858 48 9877 9878 9879 9880 9881 9882 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9889 9890 9891 9892 9893 9894 9883 9884 9885 9886 9887 9888 48 9907 9908 9909 9910 9911 9912 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9919 9920 9921 9922 9923 9924 9913 9914 9915 9916 9917 9918 48 9937 9938 9939 9940 9941 9942 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9949 9950 9951 9952 9953 9954 9943 9944 9945 9946 9947 9948 48 9967 9968 9969 9970 9971 9972 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 9979 9980 9981 9982 9983 9984 9973 9974 9975 9976 9977 9978 48 9997 9998 9999 10000 10001 10002 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10009 10010 10011 10012 10013 10014 10003 10004 10005 10006 10007 10008 48 10027 10028 10029 10030 10031 10032 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10039 10040 10041 10042 10043 10044 10033 10034 10035 10036 10037 10038 48 10057 10058 10059 10060 10061 10062 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10069 10070 10071 10072 10073 10074 10063 10064 10065 10066 10067 10068 48 10087 10088 10089 10090 10091 10092 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10099 10100 10101 10102 10103 10104 10093 10094 10095 10096 10097 10098 48 10117 10118 10119 10120 10121 10122 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10129 10130 10131 10132 10133 10134 10123 10124 10125 10126 10127 10128 48 10147 10148 10149 10150 10151 10152 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10159 10160 10161 10162 10163 10164 10153 10154 10155 10156 10157 10158 48 10177 10178 10179 10180 10181 10182 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10189 10190 10191 10192 10193 10194 10183 10184 10185 10186 10187 10188 48 10207 10208 10209 10210 10211 10212 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10219 10220 10221 10222 10223 10224 10213 10214 10215 10216 10217 10218 48 10237 10238 10239 10240 10241 10242 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10249 10250 10251 10252 10253 10254 10243 10244 10245 10246 10247 10248 48 10267 10268 10269 10270 10271 10272 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10279 10280 10281 10282 10283 10284 10273 10274 10275 10276 10277 10278 48 10297 10298 10299 10300 10301 10302 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10309 10310 10311 10312 10313 10314 10303 10304 10305 10306 10307 10308 48 10327 10328 10329 10330 10331 10332 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10339 10340 10341 10342 10343 10344 10333 10334 10335 10336 10337 10338 48 10357 10358 10359 10360 10361 10362 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10369 10370 10371 10372 10373 10374 10363 10364 10365 10366 10367 10368 48 10387 10388 10389 10390 10391 10392 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10399 10400 10401 10402 10403 10404 10393 10394 10395 10396 10397 10398 48 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10417 10418 10419 10420 10421 10422 10477 10478 10479 10480 10481 10482 48 10417 10418 10419 10420 10421 10422 10471 10472 10473 10474 10475 10476 10465 10466 10467 10468 10469 10470 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10429 10430 10431 10432 10433 10434 10423 10424 10425 10426 10427 10428 48 10465 10466 10467 10468 10469 10470 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10489 10490 10491 10492 10493 10494 10483 10484 10485 10486 10487 10488 48 10507 10508 10509 10510 10511 10512 10531 10532 10533 10534 10535 10536 2578 2579 2580 2581 2582 2583 2674 2675 2676 2677 2678 2679 2662 2663 2664 2665 2666 2667 10537 10538 10539 10540 10541 10542 10519 10520 10521 10522 10523 10524 10513 10514 10515 10516 10517 10518 48 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10579 10580 10581 10582 10583 10584 10573 10574 10575 10576 10577 10578 10585 10586 10587 10588 10589 10590 48 10603 10604 10605 10606 10607 10608 10597 10598 10599 10600 10601 10602 10591 10592 10593 10594 10595 10596 10609 10610 10611 10612 10613 10614 654 655 656 657 658 659 10615 10616 10617 10618 10619 10620 666 667 668 669 670 671 10621 10622 10623 10624 10625 10626 48 10555 10556 10557 10558 10559 10560 10627 10628 10629 10630 10631 10632 10591 10592 10593 10594 10595 10596 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10567 10568 10569 10570 10571 10572 10561 10562 10563 10564 10565 10566 48 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10639 10640 10641 10642 10643 10644 10633 10634 10635 10636 10637 10638 48 10591 10592 10593 10594 10595 10596 10627 10628 10629 10630 10631 10632 10555 10556 10557 10558 10559 10560 10669 10670 10671 10672 10673 10674 642 643 644 645 646 647 10675 10676 10677 10678 10679 10680 654 655 656 657 658 659 10609 10610 10611 10612 10613 10614 48 10603 10604 10605 10606 10607 10608 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10657 10658 10659 10660 10661 10662 10651 10652 10653 10654 10655 10656 48 10687 10688 10689 10690 10691 10692 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10699 10700 10701 10702 10703 10704 10693 10694 10695 10696 10697 10698 36 10543 10544 10545 10546 10547 10548 642 643 644 645 646 647 10555 10556 10557 10558 10559 10560 10741 10742 10743 10744 10745 10746 10669 10670 10671 10672 10673 10674 10549 10550 10551 10552 10553 10554 48 10717 10718 10719 10720 10721 10722 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10729 10730 10731 10732 10733 10734 10723 10724 10725 10726 10727 10728 48 10543 10544 10545 10546 10547 10548 10783 10784 10785 10786 10787 10788 10777 10778 10779 10780 10781 10782 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 642 643 644 645 646 647 10741 10742 10743 10744 10745 10746 48 10753 10754 10755 10756 10757 10758 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10765 10766 10767 10768 10769 10770 10759 10760 10761 10762 10763 10764 48 10813 10814 10815 10816 10817 10818 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10825 10826 10827 10828 10829 10830 10819 10820 10821 10822 10823 10824 48 10843 10844 10845 10846 10847 10848 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10855 10856 10857 10858 10859 10860 10849 10850 10851 10852 10853 10854 48 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10873 10874 10875 10876 10877 10878 10933 10934 10935 10936 10937 10938 48 10873 10874 10875 10876 10877 10878 10927 10928 10929 10930 10931 10932 10921 10922 10923 10924 10925 10926 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10885 10886 10887 10888 10889 10890 10879 10880 10881 10882 10883 10884 48 10921 10922 10923 10924 10925 10926 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10945 10946 10947 10948 10949 10950 10939 10940 10941 10942 10943 10944 48 10963 10964 10965 10966 10967 10968 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 10975 10976 10977 10978 10979 10980 10969 10970 10971 10972 10973 10974 48 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 10993 10994 10995 10996 10997 10998 11053 11054 11055 11056 11057 11058 48 10993 10994 10995 10996 10997 10998 11047 11048 11049 11050 11051 11052 11041 11042 11043 11044 11045 11046 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11005 11006 11007 11008 11009 11010 10999 11000 11001 11002 11003 11004 48 11041 11042 11043 11044 11045 11046 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11065 11066 11067 11068 11069 11070 11059 11060 11061 11062 11063 11064 48 11083 11084 11085 11086 11087 11088 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11095 11096 11097 11098 11099 11100 11089 11090 11091 11092 11093 11094 48 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11113 11114 11115 11116 11117 11118 11173 11174 11175 11176 11177 11178 48 11113 11114 11115 11116 11117 11118 11167 11168 11169 11170 11171 11172 11161 11162 11163 11164 11165 11166 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11125 11126 11127 11128 11129 11130 11119 11120 11121 11122 11123 11124 48 11161 11162 11163 11164 11165 11166 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11185 11186 11187 11188 11189 11190 11179 11180 11181 11182 11183 11184 48 11203 11204 11205 11206 11207 11208 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11215 11216 11217 11218 11219 11220 11209 11210 11211 11212 11213 11214 48 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11233 11234 11235 11236 11237 11238 11293 11294 11295 11296 11297 11298 48 11233 11234 11235 11236 11237 11238 11287 11288 11289 11290 11291 11292 11281 11282 11283 11284 11285 11286 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11245 11246 11247 11248 11249 11250 11239 11240 11241 11242 11243 11244 48 11281 11282 11283 11284 11285 11286 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11305 11306 11307 11308 11309 11310 11299 11300 11301 11302 11303 11304 48 11323 11324 11325 11326 11327 11328 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11335 11336 11337 11338 11339 11340 11329 11330 11331 11332 11333 11334 48 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11353 11354 11355 11356 11357 11358 11413 11414 11415 11416 11417 11418 48 11353 11354 11355 11356 11357 11358 11407 11408 11409 11410 11411 11412 11401 11402 11403 11404 11405 11406 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11365 11366 11367 11368 11369 11370 11359 11360 11361 11362 11363 11364 48 11401 11402 11403 11404 11405 11406 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11425 11426 11427 11428 11429 11430 11419 11420 11421 11422 11423 11424 48 11443 11444 11445 11446 11447 11448 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11455 11456 11457 11458 11459 11460 11449 11450 11451 11452 11453 11454 48 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11473 11474 11475 11476 11477 11478 11533 11534 11535 11536 11537 11538 48 11473 11474 11475 11476 11477 11478 11527 11528 11529 11530 11531 11532 11521 11522 11523 11524 11525 11526 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11485 11486 11487 11488 11489 11490 11479 11480 11481 11482 11483 11484 48 11521 11522 11523 11524 11525 11526 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11545 11546 11547 11548 11549 11550 11539 11540 11541 11542 11543 11544 48 11563 11564 11565 11566 11567 11568 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11575 11576 11577 11578 11579 11580 11569 11570 11571 11572 11573 11574 48 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11593 11594 11595 11596 11597 11598 11653 11654 11655 11656 11657 11658 48 11593 11594 11595 11596 11597 11598 11647 11648 11649 11650 11651 11652 11641 11642 11643 11644 11645 11646 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11605 11606 11607 11608 11609 11610 11599 11600 11601 11602 11603 11604 48 11641 11642 11643 11644 11645 11646 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11665 11666 11667 11668 11669 11670 11659 11660 11661 11662 11663 11664 48 11683 11684 11685 11686 11687 11688 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11695 11696 11697 11698 11699 11700 11689 11690 11691 11692 11693 11694 48 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11713 11714 11715 11716 11717 11718 11773 11774 11775 11776 11777 11778 48 11713 11714 11715 11716 11717 11718 11767 11768 11769 11770 11771 11772 11761 11762 11763 11764 11765 11766 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11725 11726 11727 11728 11729 11730 11719 11720 11721 11722 11723 11724 48 11761 11762 11763 11764 11765 11766 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11785 11786 11787 11788 11789 11790 11779 11780 11781 11782 11783 11784 48 11803 11804 11805 11806 11807 11808 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11815 11816 11817 11818 11819 11820 11809 11810 11811 11812 11813 11814 48 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11833 11834 11835 11836 11837 11838 11893 11894 11895 11896 11897 11898 48 11833 11834 11835 11836 11837 11838 11887 11888 11889 11890 11891 11892 11881 11882 11883 11884 11885 11886 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11845 11846 11847 11848 11849 11850 11839 11840 11841 11842 11843 11844 48 11881 11882 11883 11884 11885 11886 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11905 11906 11907 11908 11909 11910 11899 11900 11901 11902 11903 11904 48 11923 11924 11925 11926 11927 11928 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11935 11936 11937 11938 11939 11940 11929 11930 11931 11932 11933 11934 48 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 11953 11954 11955 11956 11957 11958 12013 12014 12015 12016 12017 12018 48 11953 11954 11955 11956 11957 11958 12007 12008 12009 12010 12011 12012 12001 12002 12003 12004 12005 12006 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 11965 11966 11967 11968 11969 11970 11959 11960 11961 11962 11963 11964 48 12001 12002 12003 12004 12005 12006 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12025 12026 12027 12028 12029 12030 12019 12020 12021 12022 12023 12024 48 12043 12044 12045 12046 12047 12048 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12055 12056 12057 12058 12059 12060 12049 12050 12051 12052 12053 12054 48 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12073 12074 12075 12076 12077 12078 12133 12134 12135 12136 12137 12138 48 12073 12074 12075 12076 12077 12078 12127 12128 12129 12130 12131 12132 12121 12122 12123 12124 12125 12126 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12085 12086 12087 12088 12089 12090 12079 12080 12081 12082 12083 12084 48 12121 12122 12123 12124 12125 12126 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12145 12146 12147 12148 12149 12150 12139 12140 12141 12142 12143 12144 48 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 636 637 638 639 640 641 12217 12218 12219 12220 12221 12222 12211 12212 12213 12214 12215 12216 12223 12224 12225 12226 12227 12228 48 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 636 637 638 639 640 641 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12247 12248 12249 12250 12251 12252 12241 12242 12243 12244 12245 12246 12253 12254 12255 12256 12257 12258 48 12199 12200 12201 12202 12203 12204 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 648 649 650 651 652 653 12277 12278 12279 12280 12281 12282 636 637 638 639 640 641 12205 12206 12207 12208 12209 12210 48 636 637 638 639 640 641 12277 12278 12279 12280 12281 12282 648 649 650 651 652 653 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12235 12236 12237 12238 12239 12240 12229 12230 12231 12232 12233 12234 48 12265 12266 12267 12268 12269 12270 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 660 661 662 663 664 665 12319 12320 12321 12322 12323 12324 648 649 650 651 652 653 12271 12272 12273 12274 12275 12276 48 648 649 650 651 652 653 12319 12320 12321 12322 12323 12324 660 661 662 663 664 665 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12289 12290 12291 12292 12293 12294 12283 12284 12285 12286 12287 12288 48 12307 12308 12309 12310 12311 12312 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 672 673 674 675 676 677 12361 12362 12363 12364 12365 12366 660 661 662 663 664 665 12313 12314 12315 12316 12317 12318 48 660 661 662 663 664 665 12361 12362 12363 12364 12365 12366 672 673 674 675 676 677 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12331 12332 12333 12334 12335 12336 12325 12326 12327 12328 12329 12330 48 12349 12350 12351 12352 12353 12354 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 684 685 686 687 688 689 12403 12404 12405 12406 12407 12408 672 673 674 675 676 677 12355 12356 12357 12358 12359 12360 48 672 673 674 675 676 677 12403 12404 12405 12406 12407 12408 684 685 686 687 688 689 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12373 12374 12375 12376 12377 12378 12367 12368 12369 12370 12371 12372 48 12391 12392 12393 12394 12395 12396 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 696 697 698 699 700 701 12445 12446 12447 12448 12449 12450 684 685 686 687 688 689 12397 12398 12399 12400 12401 12402 48 684 685 686 687 688 689 12445 12446 12447 12448 12449 12450 696 697 698 699 700 701 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12415 12416 12417 12418 12419 12420 12409 12410 12411 12412 12413 12414 48 12433 12434 12435 12436 12437 12438 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 696 697 698 699 700 701 12439 12440 12441 12442 12443 12444 48 696 697 698 699 700 701 12493 12494 12495 12496 12497 12498 12487 12488 12489 12490 12491 12492 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12457 12458 12459 12460 12461 12462 12451 12452 12453 12454 12455 12456 48 12475 12476 12477 12478 12479 12480 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12487 12488 12489 12490 12491 12492 12481 12482 12483 12484 12485 12486 48 12487 12488 12489 12490 12491 12492 12541 12542 12543 12544 12545 12546 12535 12536 12537 12538 12539 12540 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12505 12506 12507 12508 12509 12510 12499 12500 12501 12502 12503 12504 48 12523 12524 12525 12526 12527 12528 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12535 12536 12537 12538 12539 12540 12529 12530 12531 12532 12533 12534 48 12535 12536 12537 12538 12539 12540 12589 12590 12591 12592 12593 12594 12583 12584 12585 12586 12587 12588 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12553 12554 12555 12556 12557 12558 12547 12548 12549 12550 12551 12552 48 12571 12572 12573 12574 12575 12576 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12583 12584 12585 12586 12587 12588 12577 12578 12579 12580 12581 12582 48 12583 12584 12585 12586 12587 12588 12637 12638 12639 12640 12641 12642 12631 12632 12633 12634 12635 12636 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12601 12602 12603 12604 12605 12606 12595 12596 12597 12598 12599 12600 48 12619 12620 12621 12622 12623 12624 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12631 12632 12633 12634 12635 12636 12625 12626 12627 12628 12629 12630 48 12631 12632 12633 12634 12635 12636 12685 12686 12687 12688 12689 12690 12679 12680 12681 12682 12683 12684 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12649 12650 12651 12652 12653 12654 12643 12644 12645 12646 12647 12648 48 12667 12668 12669 12670 12671 12672 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12679 12680 12681 12682 12683 12684 12673 12674 12675 12676 12677 12678 48 12679 12680 12681 12682 12683 12684 12733 12734 12735 12736 12737 12738 12727 12728 12729 12730 12731 12732 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12697 12698 12699 12700 12701 12702 12691 12692 12693 12694 12695 12696 48 12715 12716 12717 12718 12719 12720 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12727 12728 12729 12730 12731 12732 12721 12722 12723 12724 12725 12726 48 12727 12728 12729 12730 12731 12732 12781 12782 12783 12784 12785 12786 12775 12776 12777 12778 12779 12780 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12745 12746 12747 12748 12749 12750 12739 12740 12741 12742 12743 12744 48 12763 12764 12765 12766 12767 12768 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12775 12776 12777 12778 12779 12780 12769 12770 12771 12772 12773 12774 48 12775 12776 12777 12778 12779 12780 12829 12830 12831 12832 12833 12834 12823 12824 12825 12826 12827 12828 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12793 12794 12795 12796 12797 12798 12787 12788 12789 12790 12791 12792 48 12811 12812 12813 12814 12815 12816 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12823 12824 12825 12826 12827 12828 12817 12818 12819 12820 12821 12822 48 12823 12824 12825 12826 12827 12828 12877 12878 12879 12880 12881 12882 12871 12872 12873 12874 12875 12876 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12841 12842 12843 12844 12845 12846 12835 12836 12837 12838 12839 12840 48 12859 12860 12861 12862 12863 12864 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12871 12872 12873 12874 12875 12876 12865 12866 12867 12868 12869 12870 48 12871 12872 12873 12874 12875 12876 12925 12926 12927 12928 12929 12930 12919 12920 12921 12922 12923 12924 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12889 12890 12891 12892 12893 12894 12883 12884 12885 12886 12887 12888 48 12907 12908 12909 12910 12911 12912 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12919 12920 12921 12922 12923 12924 12913 12914 12915 12916 12917 12918 48 12919 12920 12921 12922 12923 12924 12973 12974 12975 12976 12977 12978 12967 12968 12969 12970 12971 12972 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12937 12938 12939 12940 12941 12942 12931 12932 12933 12934 12935 12936 48 12955 12956 12957 12958 12959 12960 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 12967 12968 12969 12970 12971 12972 12961 12962 12963 12964 12965 12966 48 12967 12968 12969 12970 12971 12972 13021 13022 13023 13024 13025 13026 13015 13016 13017 13018 13019 13020 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 12985 12986 12987 12988 12989 12990 12979 12980 12981 12982 12983 12984 48 13003 13004 13005 13006 13007 13008 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13015 13016 13017 13018 13019 13020 13009 13010 13011 13012 13013 13014 48 13015 13016 13017 13018 13019 13020 13069 13070 13071 13072 13073 13074 13063 13064 13065 13066 13067 13068 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13033 13034 13035 13036 13037 13038 13027 13028 13029 13030 13031 13032 48 13051 13052 13053 13054 13055 13056 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13063 13064 13065 13066 13067 13068 13057 13058 13059 13060 13061 13062 48 13063 13064 13065 13066 13067 13068 13117 13118 13119 13120 13121 13122 13111 13112 13113 13114 13115 13116 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13081 13082 13083 13084 13085 13086 13075 13076 13077 13078 13079 13080 48 13099 13100 13101 13102 13103 13104 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13111 13112 13113 13114 13115 13116 13105 13106 13107 13108 13109 13110 48 13111 13112 13113 13114 13115 13116 13165 13166 13167 13168 13169 13170 13159 13160 13161 13162 13163 13164 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13129 13130 13131 13132 13133 13134 13123 13124 13125 13126 13127 13128 48 13147 13148 13149 13150 13151 13152 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13159 13160 13161 13162 13163 13164 13153 13154 13155 13156 13157 13158 48 13159 13160 13161 13162 13163 13164 13213 13214 13215 13216 13217 13218 13207 13208 13209 13210 13211 13212 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13177 13178 13179 13180 13181 13182 13171 13172 13173 13174 13175 13176 48 13195 13196 13197 13198 13199 13200 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13207 13208 13209 13210 13211 13212 13201 13202 13203 13204 13205 13206 48 13207 13208 13209 13210 13211 13212 13261 13262 13263 13264 13265 13266 13255 13256 13257 13258 13259 13260 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13225 13226 13227 13228 13229 13230 13219 13220 13221 13222 13223 13224 48 13243 13244 13245 13246 13247 13248 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13255 13256 13257 13258 13259 13260 13249 13250 13251 13252 13253 13254 48 13255 13256 13257 13258 13259 13260 13309 13310 13311 13312 13313 13314 13303 13304 13305 13306 13307 13308 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13273 13274 13275 13276 13277 13278 13267 13268 13269 13270 13271 13272 48 13291 13292 13293 13294 13295 13296 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13303 13304 13305 13306 13307 13308 13297 13298 13299 13300 13301 13302 48 13303 13304 13305 13306 13307 13308 13357 13358 13359 13360 13361 13362 13351 13352 13353 13354 13355 13356 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13321 13322 13323 13324 13325 13326 13315 13316 13317 13318 13319 13320 48 13339 13340 13341 13342 13343 13344 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13351 13352 13353 13354 13355 13356 13345 13346 13347 13348 13349 13350 48 13351 13352 13353 13354 13355 13356 13405 13406 13407 13408 13409 13410 13399 13400 13401 13402 13403 13404 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13369 13370 13371 13372 13373 13374 13363 13364 13365 13366 13367 13368 48 13387 13388 13389 13390 13391 13392 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13399 13400 13401 13402 13403 13404 13393 13394 13395 13396 13397 13398 48 13399 13400 13401 13402 13403 13404 13453 13454 13455 13456 13457 13458 13447 13448 13449 13450 13451 13452 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13417 13418 13419 13420 13421 13422 13411 13412 13413 13414 13415 13416 48 13435 13436 13437 13438 13439 13440 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13447 13448 13449 13450 13451 13452 13441 13442 13443 13444 13445 13446 48 13447 13448 13449 13450 13451 13452 13501 13502 13503 13504 13505 13506 13495 13496 13497 13498 13499 13500 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13465 13466 13467 13468 13469 13470 13459 13460 13461 13462 13463 13464 48 13483 13484 13485 13486 13487 13488 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13495 13496 13497 13498 13499 13500 13489 13490 13491 13492 13493 13494 48 13495 13496 13497 13498 13499 13500 13549 13550 13551 13552 13553 13554 13543 13544 13545 13546 13547 13548 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13513 13514 13515 13516 13517 13518 13507 13508 13509 13510 13511 13512 48 13531 13532 13533 13534 13535 13536 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13543 13544 13545 13546 13547 13548 13537 13538 13539 13540 13541 13542 48 13543 13544 13545 13546 13547 13548 13597 13598 13599 13600 13601 13602 13591 13592 13593 13594 13595 13596 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13561 13562 13563 13564 13565 13566 13555 13556 13557 13558 13559 13560 48 13579 13580 13581 13582 13583 13584 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13591 13592 13593 13594 13595 13596 13585 13586 13587 13588 13589 13590 48 13591 13592 13593 13594 13595 13596 13645 13646 13647 13648 13649 13650 13639 13640 13641 13642 13643 13644 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13609 13610 13611 13612 13613 13614 13603 13604 13605 13606 13607 13608 48 13627 13628 13629 13630 13631 13632 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13639 13640 13641 13642 13643 13644 13633 13634 13635 13636 13637 13638 48 13639 13640 13641 13642 13643 13644 13693 13694 13695 13696 13697 13698 13687 13688 13689 13690 13691 13692 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13657 13658 13659 13660 13661 13662 13651 13652 13653 13654 13655 13656 48 13675 13676 13677 13678 13679 13680 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13687 13688 13689 13690 13691 13692 13681 13682 13683 13684 13685 13686 48 13687 13688 13689 13690 13691 13692 13741 13742 13743 13744 13745 13746 13735 13736 13737 13738 13739 13740 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13705 13706 13707 13708 13709 13710 13699 13700 13701 13702 13703 13704 48 13723 13724 13725 13726 13727 13728 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13735 13736 13737 13738 13739 13740 13729 13730 13731 13732 13733 13734 48 13735 13736 13737 13738 13739 13740 13789 13790 13791 13792 13793 13794 13783 13784 13785 13786 13787 13788 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13753 13754 13755 13756 13757 13758 13747 13748 13749 13750 13751 13752 48 13771 13772 13773 13774 13775 13776 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13783 13784 13785 13786 13787 13788 13777 13778 13779 13780 13781 13782 48 13783 13784 13785 13786 13787 13788 13837 13838 13839 13840 13841 13842 13831 13832 13833 13834 13835 13836 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13801 13802 13803 13804 13805 13806 13795 13796 13797 13798 13799 13800 48 13819 13820 13821 13822 13823 13824 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13831 13832 13833 13834 13835 13836 13825 13826 13827 13828 13829 13830 48 13831 13832 13833 13834 13835 13836 13885 13886 13887 13888 13889 13890 13879 13880 13881 13882 13883 13884 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13849 13850 13851 13852 13853 13854 13843 13844 13845 13846 13847 13848 48 13867 13868 13869 13870 13871 13872 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13879 13880 13881 13882 13883 13884 13873 13874 13875 13876 13877 13878 48 13879 13880 13881 13882 13883 13884 13933 13934 13935 13936 13937 13938 13927 13928 13929 13930 13931 13932 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13897 13898 13899 13900 13901 13902 13891 13892 13893 13894 13895 13896 48 13915 13916 13917 13918 13919 13920 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13927 13928 13929 13930 13931 13932 13921 13922 13923 13924 13925 13926 48 13927 13928 13929 13930 13931 13932 13981 13982 13983 13984 13985 13986 13975 13976 13977 13978 13979 13980 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 13945 13946 13947 13948 13949 13950 13939 13940 13941 13942 13943 13944 48 13963 13964 13965 13966 13967 13968 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 13975 13976 13977 13978 13979 13980 13969 13970 13971 13972 13973 13974 48 13975 13976 13977 13978 13979 13980 14029 14030 14031 14032 14033 14034 14023 14024 14025 14026 14027 14028 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 13993 13994 13995 13996 13997 13998 13987 13988 13989 13990 13991 13992 48 14011 14012 14013 14014 14015 14016 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14023 14024 14025 14026 14027 14028 14017 14018 14019 14020 14021 14022 48 14023 14024 14025 14026 14027 14028 14077 14078 14079 14080 14081 14082 14071 14072 14073 14074 14075 14076 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14041 14042 14043 14044 14045 14046 14035 14036 14037 14038 14039 14040 48 14059 14060 14061 14062 14063 14064 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14071 14072 14073 14074 14075 14076 14065 14066 14067 14068 14069 14070 48 14071 14072 14073 14074 14075 14076 14125 14126 14127 14128 14129 14130 14119 14120 14121 14122 14123 14124 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14089 14090 14091 14092 14093 14094 14083 14084 14085 14086 14087 14088 48 5179 5180 5181 5182 5183 5184 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 5191 5192 5193 5194 5195 5196 5185 5186 5187 5188 5189 5190 48 14155 14156 14157 14158 14159 14160 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14167 14168 14169 14170 14171 14172 14161 14162 14163 14164 14165 14166 48 14185 14186 14187 14188 14189 14190 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14197 14198 14199 14200 14201 14202 14191 14192 14193 14194 14195 14196 48 14215 14216 14217 14218 14219 14220 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14227 14228 14229 14230 14231 14232 14221 14222 14223 14224 14225 14226 48 14245 14246 14247 14248 14249 14250 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14257 14258 14259 14260 14261 14262 14251 14252 14253 14254 14255 14256 48 14275 14276 14277 14278 14279 14280 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14287 14288 14289 14290 14291 14292 14281 14282 14283 14284 14285 14286 48 14305 14306 14307 14308 14309 14310 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14317 14318 14319 14320 14321 14322 14311 14312 14313 14314 14315 14316 48 14335 14336 14337 14338 14339 14340 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14347 14348 14349 14350 14351 14352 14341 14342 14343 14344 14345 14346 48 14365 14366 14367 14368 14369 14370 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14377 14378 14379 14380 14381 14382 14371 14372 14373 14374 14375 14376 48 14395 14396 14397 14398 14399 14400 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14407 14408 14409 14410 14411 14412 14401 14402 14403 14404 14405 14406 48 14425 14426 14427 14428 14429 14430 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14437 14438 14439 14440 14441 14442 14431 14432 14433 14434 14435 14436 48 14455 14456 14457 14458 14459 14460 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14467 14468 14469 14470 14471 14472 14461 14462 14463 14464 14465 14466 48 14485 14486 14487 14488 14489 14490 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14497 14498 14499 14500 14501 14502 14491 14492 14493 14494 14495 14496 48 14515 14516 14517 14518 14519 14520 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14527 14528 14529 14530 14531 14532 14521 14522 14523 14524 14525 14526 48 14545 14546 14547 14548 14549 14550 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14557 14558 14559 14560 14561 14562 14551 14552 14553 14554 14555 14556 48 14575 14576 14577 14578 14579 14580 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14587 14588 14589 14590 14591 14592 14581 14582 14583 14584 14585 14586 48 14605 14606 14607 14608 14609 14610 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14617 14618 14619 14620 14621 14622 14611 14612 14613 14614 14615 14616 48 14635 14636 14637 14638 14639 14640 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14647 14648 14649 14650 14651 14652 14641 14642 14643 14644 14645 14646 48 14665 14666 14667 14668 14669 14670 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14677 14678 14679 14680 14681 14682 14671 14672 14673 14674 14675 14676 48 14695 14696 14697 14698 14699 14700 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14707 14708 14709 14710 14711 14712 14701 14702 14703 14704 14705 14706 48 14725 14726 14727 14728 14729 14730 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14737 14738 14739 14740 14741 14742 14731 14732 14733 14734 14735 14736 48 14755 14756 14757 14758 14759 14760 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14767 14768 14769 14770 14771 14772 14761 14762 14763 14764 14765 14766 48 14785 14786 14787 14788 14789 14790 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14797 14798 14799 14800 14801 14802 14791 14792 14793 14794 14795 14796 48 14815 14816 14817 14818 14819 14820 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14827 14828 14829 14830 14831 14832 14821 14822 14823 14824 14825 14826 48 14845 14846 14847 14848 14849 14850 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14857 14858 14859 14860 14861 14862 14851 14852 14853 14854 14855 14856 48 14875 14876 14877 14878 14879 14880 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14887 14888 14889 14890 14891 14892 14881 14882 14883 14884 14885 14886 48 14905 14906 14907 14908 14909 14910 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14917 14918 14919 14920 14921 14922 14911 14912 14913 14914 14915 14916 48 14935 14936 14937 14938 14939 14940 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14947 14948 14949 14950 14951 14952 14941 14942 14943 14944 14945 14946 48 14965 14966 14967 14968 14969 14970 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 14977 14978 14979 14980 14981 14982 14971 14972 14973 14974 14975 14976 48 14995 14996 14997 14998 14999 15000 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15007 15008 15009 15010 15011 15012 15001 15002 15003 15004 15005 15006 48 15025 15026 15027 15028 15029 15030 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15037 15038 15039 15040 15041 15042 15031 15032 15033 15034 15035 15036 48 15055 15056 15057 15058 15059 15060 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15067 15068 15069 15070 15071 15072 15061 15062 15063 15064 15065 15066 48 15085 15086 15087 15088 15089 15090 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15097 15098 15099 15100 15101 15102 15091 15092 15093 15094 15095 15096 48 15115 15116 15117 15118 15119 15120 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15127 15128 15129 15130 15131 15132 15121 15122 15123 15124 15125 15126 48 15145 15146 15147 15148 15149 15150 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15157 15158 15159 15160 15161 15162 15151 15152 15153 15154 15155 15156 48 15175 15176 15177 15178 15179 15180 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15187 15188 15189 15190 15191 15192 15181 15182 15183 15184 15185 15186 48 15205 15206 15207 15208 15209 15210 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15217 15218 15219 15220 15221 15222 15211 15212 15213 15214 15215 15216 48 15235 15236 15237 15238 15239 15240 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15247 15248 15249 15250 15251 15252 15241 15242 15243 15244 15245 15246 48 15265 15266 15267 15268 15269 15270 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15277 15278 15279 15280 15281 15282 15271 15272 15273 15274 15275 15276 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-0.dgr000066400000000000000000002257171514310134000257660ustar00rootroot000000000000002 4 0 3431 70838 858 16735 0 000 10 369 365 364 219 218 1 370 366 217 2 7 368 364 219 369 365 218 0 10 370 366 365 218 217 0 371 367 221 3 7 371 367 366 221 217 2 372 6 512 507 411 513 508 5 7 513 508 507 411 4 509 6 7 509 508 5 514 510 412 7 8 514 510 509 412 6 515 511 8 7 515 511 510 412 7 9 1715 7 511 8 1715 10 862 1758 1716 7 9 1715 862 1758 1716 11 1717 6 10 862 1717 1716 12 1718 5 11 1718 1717 13 1719 5 12 1719 1718 14 1720 5 13 1720 1719 15 1721 6 14 1721 1720 16 863 1722 7 15 863 1722 1721 17 1759 1723 7 16 863 1759 1723 1722 18 1724 7 17 1724 1723 19 864 1760 1725 8 18 864 1760 1725 1724 20 1761 1726 7 19 864 1761 1726 1725 21 1727 7 20 1727 1726 22 865 1762 1728 8 21 865 1762 1728 1727 23 1763 1729 7 22 865 1763 1729 1728 24 1730 7 23 1730 1729 25 866 1764 1731 8 24 866 1764 1731 1730 26 1765 1732 7 25 866 1765 1732 1731 27 1733 7 26 1733 1732 28 867 1766 1734 8 27 867 1766 1734 1733 29 1767 1735 7 28 867 1767 1735 1734 30 1736 7 29 1736 1735 31 868 1768 1737 8 30 868 1768 1737 1736 32 1769 1738 7 31 868 1769 1738 1737 33 1739 7 32 1739 1738 34 869 1770 1740 8 33 869 1770 1740 1739 35 1771 1741 7 34 869 1771 1741 1740 36 1742 7 35 1742 1741 37 870 1772 1743 8 36 870 1772 1743 1742 38 1773 1744 7 37 870 1773 1744 1743 39 1745 7 38 1745 1744 40 871 1774 1746 8 39 871 1774 1746 1745 41 1775 1747 7 40 871 1775 1747 1746 42 1748 7 41 1748 1747 43 872 1776 1749 8 42 872 1776 1749 1748 44 1777 1750 7 43 872 1777 1750 1749 45 1751 7 44 1751 1750 46 873 1778 1752 8 45 873 1778 1752 1751 47 1779 1753 7 46 873 1779 1753 1752 48 1754 7 47 1754 1753 49 874 1780 1755 8 48 874 1780 1755 1754 50 1781 1756 7 49 874 1781 1756 1755 51 1757 4 50 1757 1756 1782 15 740 739 738 737 1409 1408 1407 1142 1141 1099 1098 690 688 685 58 14 742 741 740 739 1415 1414 1413 1143 1142 1100 1099 685 682 59 14 744 743 742 741 1421 1420 1419 1144 1143 1101 1100 682 60 1847 14 746 745 744 743 1427 1426 1425 1145 1144 1102 1101 61 1848 1847 14 748 747 746 745 1433 1432 1431 1146 1145 1103 1102 62 1849 1848 15 750 749 748 747 1439 1438 1437 1147 1146 1104 1103 63 1851 1850 1849 8 690 688 685 52 642 640 637 64 6 685 682 53 637 634 65 6 682 54 1847 634 66 1852 6 55 1848 1847 67 1853 1852 6 56 1849 1848 68 1854 1853 8 57 1851 1850 1849 69 1856 1855 1854 8 642 640 637 58 584 582 579 70 6 637 634 59 579 576 71 6 634 60 1852 576 72 1857 6 61 1853 1852 73 1858 1857 6 62 1854 1853 74 1859 1858 8 63 1856 1855 1854 75 1861 1860 1859 7 584 582 579 64 526 524 521 5 579 576 65 521 518 5 576 66 1857 518 1862 5 67 1858 1857 1863 1862 5 68 1859 1858 1864 1863 7 69 1861 1860 1859 1866 1865 1864 7 82 1874 1873 1872 1869 1868 1867 5 83 1875 1874 1870 1869 5 84 1876 1875 1871 1870 5 85 1876 3059 1871 3117 5 86 3059 3056 3117 3114 7 87 3056 3053 3051 3114 3111 3109 8 88 1879 1878 1877 76 1874 1873 1872 6 89 1880 1879 77 1875 1874 6 90 1881 1880 78 1876 1875 6 91 1881 3001 79 1876 3059 6 92 3001 2998 80 3059 3056 8 93 2998 2995 2993 81 3056 3053 3051 8 94 1884 1883 1882 82 1879 1878 1877 6 95 1885 1884 83 1880 1879 6 96 1886 1885 84 1881 1880 6 97 1886 2953 85 1881 3001 6 98 2953 2950 86 3001 2998 8 99 2950 2947 2945 87 2998 2995 2993 15 2532 2531 2489 2488 2285 2284 2283 2888 2887 2886 2885 88 1884 1883 1882 14 2533 2532 2490 2489 2291 2290 2289 2890 2889 2888 2887 89 1885 1884 14 2534 2533 2491 2490 2297 2296 2295 2892 2891 2890 2889 90 1886 1885 14 2535 2534 2492 2491 2303 2302 2301 2894 2893 2892 2891 91 1886 2953 14 2536 2535 2493 2492 2309 2308 2307 2896 2895 2894 2893 92 2953 2950 15 2537 2536 2494 2493 2315 2314 2313 2898 2897 2896 2895 93 2950 2947 2945 4 101 1966 1965 1940 7 102 1967 1966 1941 2761 100 1965 8 103 1968 1967 1942 2761 101 1966 1941 7 104 1969 1968 102 1967 1942 2761 7 105 1970 1969 1943 2762 103 1968 8 106 1971 1970 1944 2762 104 1969 1943 7 107 1972 1971 105 1970 1944 2762 7 108 1973 1972 1945 2763 106 1971 8 109 1974 1973 1946 2763 107 1972 1945 7 110 1975 1974 108 1973 1946 2763 7 111 1976 1975 1947 2764 109 1974 8 112 1977 1976 1948 2764 110 1975 1947 7 113 1978 1977 111 1976 1948 2764 7 114 1979 1978 1949 2765 112 1977 8 115 1980 1979 1950 2765 113 1978 1949 7 116 1981 1980 114 1979 1950 2765 7 117 1982 1981 1951 2766 115 1980 8 118 1983 1982 1952 2766 116 1981 1951 7 119 1984 1983 117 1982 1952 2766 7 120 1985 1984 1953 2767 118 1983 8 121 1986 1985 1954 2767 119 1984 1953 7 122 1987 1986 120 1985 1954 2767 7 123 1988 1987 1955 2768 121 1986 8 124 1989 1988 1956 2768 122 1987 1955 7 125 1990 1989 123 1988 1956 2768 7 126 1991 1990 1957 2769 124 1989 8 127 1992 1991 1958 2769 125 1990 1957 7 128 1993 1992 126 1991 1958 2769 7 129 1994 1993 1959 2770 127 1992 8 130 1995 1994 1960 2770 128 1993 1959 7 131 1996 1995 129 1994 1960 2770 7 132 1997 1996 1961 2771 130 1995 8 133 1998 1997 1962 2771 131 1996 1961 7 134 1999 1998 132 1997 1962 2771 7 135 2000 1999 1963 2772 133 1998 7 136 2001 2000 2772 134 1999 1963 6 137 2002 2001 135 2000 2772 5 138 2003 2002 136 2001 5 139 2004 2003 137 2002 5 140 2005 2004 138 2003 6 141 2006 2005 2773 139 2004 7 142 2007 2006 1964 2773 140 2005 7 143 2007 3124 141 2006 1964 2773 7 144 3211 3125 3124 3120 142 2007 8 145 3211 3126 3125 3121 143 3124 3120 7 146 3127 3126 144 3211 3125 3121 7 147 3212 3128 3127 3122 145 3126 6 3212 3128 3123 146 3127 3122 7 149 3374 3370 3257 3256 3252 3251 10 151 3374 3373 3258 3257 3253 148 3370 3256 3252 7 3372 3259 3255 151 3373 3258 3254 10 150 3373 3372 3259 3258 3254 149 3374 3257 3253 3 154 157 153 7 157 152 461 443 407 3216 3180 12 152 469 467 439 421 396 394 155 3229 3227 3202 3184 17 469 467 439 421 396 394 154 3229 3227 3202 3184 471 441 382 156 3241 3182 11 471 469 441 439 382 155 3241 3184 3182 373 3250 12 153 152 473 467 422 421 400 158 3223 3202 3201 3162 18 473 467 422 421 400 157 3223 3202 3201 3162 474 469 396 393 159 3230 3227 3161 19 474 473 469 467 396 393 158 3230 3227 3162 3161 477 471 384 382 160 3241 3239 3158 17 477 474 471 469 384 382 159 3241 3239 3161 3158 512 375 373 3250 3248 3123 20 368 315 305 3430 3308 3255 369 325 163 3428 3298 3254 365 364 326 272 271 164 162 316 16 368 364 316 315 271 161 369 365 326 325 272 164 163 253 252 1096 26 369 325 305 161 3430 3428 3298 3254 370 335 306 165 3426 3288 3253 366 365 336 273 272 166 164 364 326 271 162 20 369 365 364 326 325 272 271 163 162 161 370 366 336 335 273 166 165 254 253 252 25 370 335 306 163 3428 3426 3288 3253 371 345 167 3424 3278 3252 367 366 346 274 273 168 166 365 336 272 164 20 370 366 365 336 335 273 272 165 164 163 371 367 346 345 274 168 167 255 254 253 23 371 345 306 165 3426 3424 3278 3252 372 355 169 3422 3268 3251 367 356 170 168 366 346 274 273 166 18 371 367 366 346 345 274 273 167 166 165 372 356 355 170 169 256 255 254 17 372 355 167 3424 3422 3268 3251 362 171 3420 3261 363 172 170 367 356 168 15 372 367 356 355 169 168 167 363 362 172 171 257 256 274 255 11 362 169 3422 3420 3261 258 3333 257 172 363 170 8 363 257 256 170 258 171 362 169 29 315 313 305 299 1940 1782 3418 3310 3308 325 323 300 175 3416 3300 3298 326 324 272 271 268 267 176 174 573 316 314 1311 1757 25 573 316 315 314 313 271 267 173 1311 1782 1757 326 325 324 323 272 268 176 175 253 252 247 246 1096 1095 31 325 323 305 300 299 173 3418 3416 3300 3298 335 333 306 301 177 3414 3290 3288 336 334 273 272 269 268 178 176 326 324 271 267 174 25 326 325 324 323 272 271 268 267 175 174 173 336 335 334 333 273 269 178 177 254 253 248 247 252 246 30 335 333 306 301 300 175 3416 3414 3290 3288 345 343 302 179 3412 3280 3278 346 344 274 273 270 269 180 178 336 334 272 268 176 25 336 335 334 333 273 272 269 268 177 176 175 346 345 344 343 274 270 180 179 255 254 249 248 253 247 28 345 343 306 302 301 177 3414 3412 3280 3278 355 353 303 184 3407 3270 3268 356 354 183 180 346 344 274 273 270 269 178 23 346 345 344 343 274 273 270 269 179 178 177 356 355 354 353 184 183 256 255 250 249 254 248 28 313 311 299 293 3410 3312 3310 323 321 300 294 186 3405 3302 3300 324 322 268 267 264 263 187 185 631 314 312 1311 1268 19 363 362 361 257 256 251 250 184 183 304 258 3409 3340 3334 3333 303 3407 3262 3261 19 356 354 274 270 256 255 250 249 180 363 362 361 257 251 184 182 355 353 179 25 355 353 303 302 179 3412 3407 3270 3268 362 361 304 182 3409 3262 3261 363 257 256 251 250 183 356 354 180 24 631 314 313 312 311 267 263 181 1311 1268 324 323 322 321 268 264 187 186 247 246 241 240 1095 1052 32 323 321 300 299 294 293 181 3410 3405 3302 3300 333 331 301 295 188 3403 3292 3290 334 332 269 268 265 264 189 187 324 322 267 263 185 25 324 323 322 321 268 267 264 263 186 185 181 334 333 332 331 269 265 189 188 248 247 242 241 246 240 32 333 331 301 300 295 294 186 3405 3403 3292 3290 343 341 302 296 190 3401 3282 3280 344 342 270 269 266 265 191 189 334 332 268 264 187 25 334 333 332 331 269 268 265 264 188 187 186 344 343 342 341 270 266 191 190 249 248 243 242 247 241 30 343 341 302 301 296 295 188 3403 3401 3282 3280 353 351 303 297 195 3396 3272 3270 354 352 194 191 344 342 270 269 266 265 189 23 344 343 342 341 270 269 266 265 190 189 188 354 353 352 351 195 194 250 249 244 243 248 242 28 311 309 293 287 3399 3314 3312 321 319 294 288 197 3394 3304 3302 322 320 264 263 260 259 198 196 680 312 310 1268 1225 18 361 360 251 250 245 244 195 194 304 298 3398 3346 3340 303 297 3396 3263 3262 18 354 352 270 266 250 249 244 243 191 361 360 251 245 195 193 353 351 190 27 353 351 303 302 297 296 190 3401 3396 3272 3270 354 352 194 191 361 360 251 250 245 244 193 304 298 3398 3263 3262 24 680 312 311 310 309 263 259 192 1268 1225 322 321 320 319 264 260 198 197 241 240 235 234 1052 1009 32 321 319 294 293 288 287 192 3399 3394 3304 3302 331 329 295 289 199 3392 3294 3292 332 330 265 264 261 260 200 198 322 320 263 259 196 25 322 321 320 319 264 263 260 259 197 196 192 332 331 330 329 265 261 200 199 242 241 236 235 240 234 32 331 329 295 294 289 288 197 3394 3392 3294 3292 341 339 296 290 204 3387 3284 3282 342 340 266 265 262 261 203 200 332 330 264 260 198 25 332 331 330 329 265 264 261 260 199 198 197 342 341 340 339 266 262 204 203 243 242 237 236 241 235 28 309 308 287 281 3390 3315 3314 319 318 288 282 205 3386 3305 3304 320 260 259 235 234 229 228 310 1225 1182 1009 966 880 37 352 350 244 243 238 237 203 360 359 298 297 292 291 245 239 3389 3353 3352 3347 3346 3264 3263 351 349 296 290 266 262 204 3388 3387 3329 3325 3274 3273 3272 3271 35 342 341 340 339 266 265 262 261 204 200 199 243 242 237 236 352 350 244 238 202 351 349 297 296 291 290 3389 3388 3387 3329 3325 3274 3273 3272 3271 34 342 341 340 339 266 265 262 261 203 200 199 352 351 350 349 297 296 291 290 202 3389 3388 3387 3329 3325 3274 3273 3272 3271 295 289 3392 3284 3282 30 319 318 288 287 282 281 201 3390 3386 3305 3304 329 328 289 283 206 3385 3295 3294 330 261 260 236 235 230 229 320 259 234 228 30 329 328 289 288 283 282 205 3386 3385 3295 3294 339 338 290 284 207 3384 3285 3284 340 262 261 237 236 231 230 330 260 235 229 29 339 338 290 289 284 283 206 3385 3384 3285 3284 349 348 291 285 208 3383 3275 3274 350 262 238 237 232 231 340 261 236 230 27 349 348 291 290 285 284 207 3384 3383 3275 3274 359 358 292 286 209 3382 3265 3264 239 238 233 232 350 262 237 231 17 359 358 239 238 233 232 208 292 286 3382 3358 3352 291 285 3383 3265 3264 27 308 307 281 275 1354 878 3381 3316 3315 2757 318 317 282 276 211 3380 3306 3305 229 228 223 222 1182 1139 966 923 879 25 318 317 282 281 276 275 210 3381 3380 3306 3305 328 327 283 277 212 3379 3296 3295 230 229 224 223 228 222 25 328 327 283 282 277 276 211 3380 3379 3296 3295 338 337 284 278 213 3378 3286 3285 231 230 225 224 229 223 25 338 337 284 283 278 277 212 3379 3378 3286 3285 348 347 285 279 214 3377 3276 3275 232 231 226 225 230 224 25 348 347 285 284 279 278 213 3378 3377 3276 3275 358 357 286 280 215 3376 3266 3265 233 232 227 226 231 225 17 358 357 233 232 227 226 214 286 280 3376 3364 3358 285 279 3377 3266 3265 16 307 275 1354 861 3375 3316 2774 317 276 220 3371 3306 223 222 1139 923 15 370 218 3374 3373 3253 371 221 3370 3252 367 366 3 2 365 0 15 369 219 3373 3372 3254 370 217 3374 3253 366 365 2 0 364 1 11 368 3372 3255 369 218 3373 3254 365 364 1 0 15 317 223 222 216 327 277 276 224 3371 3368 3367 3296 275 3375 3306 11 371 217 3374 3370 3252 372 3251 367 3 366 2 18 307 216 1139 923 861 317 223 220 318 229 228 211 210 308 1182 966 879 878 20 317 222 220 216 327 277 276 224 3371 3368 3367 3296 328 230 229 212 211 318 228 210 22 327 277 276 223 220 3371 3368 3367 3296 337 278 225 3366 3286 338 231 230 213 212 328 229 211 20 337 278 277 224 3367 3366 3286 347 279 226 3365 3276 348 232 231 214 213 338 230 212 20 347 279 278 225 3366 3365 3276 357 280 227 3364 3266 358 233 232 215 214 348 231 213 15 286 280 233 215 3376 3364 3358 358 357 232 226 214 279 3365 3266 28 308 307 222 210 1182 1139 966 923 879 878 318 317 229 223 211 320 319 260 259 235 234 205 201 310 309 1225 1009 880 25 318 317 228 223 222 211 210 328 327 230 224 212 330 329 261 260 236 235 206 205 320 319 259 234 201 25 328 327 229 224 223 212 211 338 337 231 225 213 340 339 262 261 237 236 207 206 330 329 260 235 205 24 338 337 230 225 224 213 212 348 347 232 226 214 350 349 262 238 237 208 207 340 339 261 236 206 22 348 347 231 226 225 214 213 358 357 233 227 215 359 239 238 209 208 350 349 262 237 207 20 358 357 232 227 226 215 214 286 280 3376 3364 3358 292 239 209 3382 3352 359 238 208 26 310 309 308 259 228 201 1225 1182 1009 966 880 320 319 318 260 235 229 205 322 241 240 198 196 680 312 1052 25 320 319 318 260 259 234 229 228 205 201 330 329 328 261 236 230 206 332 242 241 200 198 322 240 196 25 330 329 328 261 260 235 230 229 206 205 340 339 338 262 237 231 207 342 243 242 203 200 332 241 198 24 340 339 338 262 261 236 231 230 207 206 350 349 348 238 232 208 352 244 243 203 202 342 242 200 32 350 349 348 262 237 232 231 208 207 359 358 239 233 209 360 298 297 292 291 245 244 202 3389 3353 3352 3347 3346 3264 3263 352 243 203 25 292 286 233 209 3382 3358 3352 360 359 298 297 291 245 244 238 202 3389 3353 3347 3346 3264 3263 358 232 208 20 680 312 310 234 196 1052 1009 322 320 241 235 198 324 247 246 187 185 631 314 1095 20 322 320 240 235 234 198 196 332 330 242 236 200 334 248 247 189 187 324 246 185 20 332 330 241 236 235 200 198 342 340 243 237 203 344 249 248 191 189 334 247 187 22 342 340 242 237 236 203 200 352 350 244 238 202 354 270 266 250 249 194 191 344 248 189 33 352 350 243 238 237 203 202 360 359 298 297 292 291 245 239 3389 3353 3352 3347 3346 3264 3263 361 251 250 195 194 193 354 270 266 249 191 26 304 298 251 193 3398 3346 3340 361 360 250 244 195 194 359 297 292 291 239 238 202 3389 3353 3352 3347 3264 3263 20 631 314 312 240 185 1095 1052 324 322 247 241 187 326 253 252 176 174 573 316 1096 20 324 322 246 241 240 187 185 334 332 248 242 189 336 254 253 178 176 326 252 174 20 334 332 247 242 241 189 187 344 342 249 243 191 346 255 254 180 178 336 253 176 23 344 342 248 243 242 191 189 354 352 270 266 250 244 194 356 274 256 255 183 180 346 254 178 26 354 352 270 266 249 244 243 194 191 361 360 251 245 195 193 363 362 257 256 184 183 182 356 274 255 180 24 361 360 250 245 244 195 194 193 304 298 3398 3346 3340 258 257 182 3409 3334 3333 363 362 256 184 183 14 573 316 314 246 174 1096 1095 326 324 253 247 176 164 162 15 326 324 252 247 246 176 174 336 334 254 248 178 166 164 162 15 336 334 253 248 247 178 176 346 344 255 249 180 168 166 164 17 346 344 254 249 248 180 178 356 354 274 270 256 250 183 170 168 166 19 356 354 274 270 255 250 249 183 180 363 362 361 257 251 184 182 172 170 168 18 363 362 361 256 251 250 184 183 182 304 258 3409 3340 3334 3333 172 171 170 11 257 172 171 3420 3333 304 251 182 3409 3340 3334 30 310 309 308 234 228 201 1225 1182 1009 966 880 320 319 318 260 235 229 205 322 321 264 263 198 197 196 192 680 312 311 1268 30 320 319 318 259 235 234 229 228 205 201 330 329 328 261 236 230 206 332 331 265 264 200 199 198 197 322 321 263 196 192 30 330 329 328 260 236 235 230 229 206 205 340 339 338 262 237 231 207 342 341 266 265 204 203 200 199 332 331 264 198 197 40 340 339 338 261 237 236 231 230 207 206 350 349 348 238 232 208 352 351 297 296 291 290 266 204 203 202 3389 3388 3387 3329 3325 3274 3273 3272 3271 342 341 265 200 199 30 680 312 311 310 309 259 196 192 1268 1225 322 321 320 319 264 260 198 197 324 323 268 267 187 186 185 181 631 314 313 1311 32 322 321 320 319 263 260 259 198 197 196 192 332 331 330 329 265 261 200 199 334 333 269 268 189 188 187 186 324 323 267 185 181 32 332 331 330 329 264 261 260 200 199 198 197 342 341 340 339 266 262 204 203 344 343 270 269 191 190 189 188 334 333 268 187 186 43 342 341 340 339 265 262 261 204 203 200 199 352 351 350 349 297 296 291 290 202 3389 3388 3387 3329 3325 3274 3273 3272 3271 354 270 250 249 244 243 194 191 344 343 269 190 189 188 31 631 314 313 312 311 263 185 181 1311 1268 324 323 322 321 268 264 187 186 326 325 272 271 176 175 174 173 573 316 315 1782 1757 32 324 323 322 321 267 264 263 187 186 185 181 334 333 332 331 269 265 189 188 336 335 273 272 178 177 176 175 326 325 271 174 173 32 334 333 332 331 268 265 264 189 188 187 186 344 343 342 341 270 266 191 190 346 345 274 273 180 179 178 177 336 335 272 176 175 30 344 343 342 341 269 266 265 191 190 189 188 354 352 250 249 244 243 194 356 274 256 255 183 180 346 345 273 179 178 177 27 573 316 315 314 313 267 174 173 1311 1782 1757 326 325 324 323 272 268 176 175 369 365 364 164 163 162 161 368 30 326 325 324 323 271 268 267 176 175 174 173 336 335 334 333 273 269 178 177 370 366 365 166 165 164 163 369 364 162 161 30 336 335 334 333 272 269 268 178 177 176 175 346 345 344 343 274 270 180 179 371 367 366 168 167 166 165 370 365 164 163 26 346 345 344 343 273 270 269 180 179 178 177 356 354 256 255 250 249 183 170 168 371 367 366 167 166 165 24 307 216 1354 861 3375 3316 2774 317 276 220 3371 3306 318 282 281 211 210 3381 3380 3305 308 878 3315 2757 27 317 275 220 216 3375 3371 3306 327 277 224 223 3368 3367 3296 328 283 282 212 211 3380 3379 3295 318 281 210 3381 3305 27 327 276 224 223 220 3371 3368 3367 3296 337 278 225 3366 3286 338 284 283 213 212 3379 3378 3285 328 282 211 3380 3295 25 337 277 225 224 3367 3366 3286 347 279 226 3365 3276 348 285 284 214 213 3378 3377 3275 338 283 212 3379 3285 25 347 278 226 225 3366 3365 3276 357 280 227 3364 3266 358 286 285 215 214 3377 3376 3265 348 284 213 3378 3275 17 286 233 227 215 3376 3364 3358 358 357 285 279 214 3377 3266 3265 226 3365 28 308 307 275 210 1354 878 3381 3316 3315 2757 318 317 282 276 211 3380 3306 3305 319 288 287 205 201 3390 3386 3304 309 3314 32 318 317 281 276 275 211 210 3381 3380 3306 3305 328 327 283 277 212 3379 3296 3295 329 289 288 206 205 3386 3385 3294 319 287 201 3390 3304 32 328 327 282 277 276 212 211 3380 3379 3296 3295 338 337 284 278 213 3378 3286 3285 339 290 289 207 206 3385 3384 3284 329 288 205 3386 3294 32 338 337 283 278 277 213 212 3379 3378 3286 3285 348 347 285 279 214 3377 3276 3275 349 291 290 208 207 3384 3383 3274 339 289 206 3385 3284 32 348 347 284 279 278 214 213 3378 3377 3276 3275 358 357 286 280 215 3376 3266 3265 359 292 291 209 208 3383 3382 3264 349 290 207 3384 3274 25 358 357 285 280 279 215 214 3377 3376 3266 3265 233 227 3364 3358 292 239 209 3382 3352 359 291 208 3383 3264 25 309 308 281 201 3390 3315 3314 319 318 288 282 205 3386 3305 3304 321 294 293 197 192 3399 3394 3302 311 3312 32 319 318 287 282 281 205 201 3390 3386 3305 3304 329 328 289 283 206 3385 3295 3294 331 295 294 199 197 3394 3392 3292 321 293 192 3399 3302 32 329 328 288 283 282 206 205 3386 3385 3295 3294 339 338 290 284 207 3384 3285 3284 341 296 295 204 199 3392 3387 3282 331 294 197 3394 3292 42 339 338 289 284 283 207 206 3385 3384 3285 3284 349 348 291 285 208 3383 3275 3274 352 351 350 297 296 266 262 204 203 202 3389 3388 3387 3329 3325 3273 3272 3271 341 295 199 3392 3282 48 349 348 290 285 284 208 207 3384 3383 3275 3274 359 358 292 286 209 3382 3265 3264 360 298 297 245 244 239 238 202 3389 3353 3352 3347 3346 3263 352 351 350 296 266 262 204 203 3388 3387 3329 3325 3273 3272 3271 27 286 239 233 209 3382 3358 3352 360 359 298 297 291 245 244 238 202 3389 3353 3347 3346 3264 3263 358 285 208 3383 3265 25 311 309 287 192 3399 3314 3312 321 319 294 288 197 3394 3304 3302 323 300 299 186 181 3410 3405 3300 313 3310 32 321 319 293 288 287 197 192 3399 3394 3304 3302 331 329 295 289 199 3392 3294 3292 333 301 300 188 186 3405 3403 3290 323 299 181 3410 3300 32 331 329 294 289 288 199 197 3394 3392 3294 3292 341 339 296 290 204 3387 3284 3282 343 302 301 190 188 3403 3401 3280 333 300 186 3405 3290 42 341 339 295 290 289 204 199 3392 3387 3284 3282 352 351 350 349 297 291 266 262 203 202 3389 3388 3329 3325 3274 3273 3272 3271 353 303 302 195 190 3401 3396 3270 343 301 188 3403 3280 48 352 351 350 349 296 291 290 266 262 204 203 202 3389 3388 3387 3329 3325 3274 3273 3272 3271 360 359 298 292 245 244 239 238 3353 3352 3347 3346 3264 3263 361 304 303 195 193 3398 3396 3262 353 302 190 3401 3270 27 304 251 245 193 3398 3346 3340 361 360 303 297 195 3396 3263 3262 359 292 291 244 239 238 202 3389 3353 3352 3347 3264 26 313 311 293 181 3410 3312 3310 323 321 300 294 186 3405 3302 3300 325 305 175 173 3418 3416 3298 315 1940 1782 3308 31 323 321 299 294 293 186 181 3410 3405 3302 3300 333 331 301 295 188 3403 3292 3290 335 306 177 175 3416 3414 3288 325 305 173 3418 3298 30 333 331 300 295 294 188 186 3405 3403 3292 3290 343 341 302 296 190 3401 3282 3280 345 306 179 177 3414 3412 3278 335 175 3416 3288 30 343 341 301 296 295 190 188 3403 3401 3282 3280 353 351 303 297 195 3396 3272 3270 355 184 179 3412 3407 3268 345 306 177 3414 3278 29 353 351 302 297 296 195 190 3401 3396 3272 3270 361 360 304 298 193 3398 3263 3262 362 184 182 3409 3407 3261 355 179 3412 3268 25 361 360 303 298 297 195 193 3398 3396 3263 3262 251 245 3346 3340 258 257 182 3409 3334 3333 362 184 3407 3261 24 315 313 299 173 1940 1782 3418 3310 3308 325 323 300 175 3416 3300 3298 369 163 161 3430 3428 3254 368 3255 27 335 333 301 300 177 175 3416 3414 3290 3288 345 343 302 179 3412 3280 3278 371 167 165 3426 3424 3252 370 163 3428 3253 21 275 216 1354 861 3375 3316 2774 222 1139 923 308 228 210 1182 966 879 878 281 3381 3315 2757 28 307 281 275 210 1354 878 3381 3316 3315 2757 228 222 1182 1139 966 923 879 310 309 259 234 201 1225 1009 880 287 3390 3314 26 308 287 281 201 3390 3315 3314 310 259 234 228 1225 1182 1009 966 880 680 312 311 263 196 192 1268 293 3399 3312 20 680 312 240 234 196 1052 1009 311 309 263 259 192 1268 1225 308 228 201 1182 966 880 25 309 293 287 192 3399 3314 3312 680 312 310 263 259 196 1268 1225 631 314 313 267 185 181 1311 299 3410 3310 23 680 311 310 309 263 259 196 192 1268 1225 240 234 1052 1009 631 314 246 185 1095 313 267 181 1311 27 311 299 293 181 3410 3312 3310 631 314 312 267 263 185 1311 1268 573 316 315 271 174 173 1782 1757 305 1940 3418 3308 24 631 313 312 311 267 263 185 181 1311 1268 246 240 1095 1052 573 316 252 174 1096 315 271 173 1782 1757 23 313 305 299 173 1940 1782 3418 3310 3308 573 316 314 271 267 174 1311 1757 368 364 162 161 3430 3255 19 573 315 314 313 271 267 174 173 1311 1782 1757 252 246 1096 1095 162 368 364 161 19 276 275 220 216 3375 3371 3306 223 222 318 229 228 211 210 282 281 3381 3380 3305 28 317 282 281 276 275 211 210 3381 3380 3306 3305 229 228 223 222 320 319 260 259 235 234 205 201 288 287 3390 3386 3304 31 318 288 287 282 281 205 201 3390 3386 3305 3304 320 260 259 235 234 229 228 322 321 264 263 198 197 196 192 294 293 3399 3394 3302 20 322 241 240 235 234 198 196 321 319 264 263 260 259 197 192 318 229 228 205 201 32 319 294 293 288 287 197 192 3399 3394 3304 3302 322 320 264 263 260 259 198 196 324 323 268 267 187 186 185 181 300 299 3410 3405 3300 25 321 320 319 264 263 260 259 198 197 196 192 241 240 235 234 324 247 246 187 185 323 268 267 186 181 31 321 300 299 294 293 186 181 3410 3405 3302 3300 324 322 268 267 264 263 187 185 326 325 272 271 176 175 174 173 305 3418 3416 3298 25 323 322 321 268 267 264 263 187 186 185 181 247 246 241 240 326 253 252 176 174 325 272 271 175 173 28 323 305 300 299 175 173 3418 3416 3300 3298 326 324 272 271 268 267 176 174 369 365 364 164 163 162 161 3430 3428 3254 22 325 324 323 272 271 268 267 176 175 174 173 253 252 247 246 164 162 369 365 364 163 161 19 328 230 229 224 223 212 211 283 282 277 276 3380 3379 3296 3295 220 3371 3368 3367 28 327 283 282 277 276 212 211 3380 3379 3296 3295 230 229 224 223 330 329 261 260 236 235 206 205 289 288 3386 3385 3294 31 328 289 288 283 282 206 205 3386 3385 3295 3294 330 261 260 236 235 230 229 332 331 265 264 200 199 198 197 295 294 3394 3392 3292 20 332 242 241 236 235 200 198 331 329 265 264 261 260 199 197 328 230 229 206 205 32 329 295 294 289 288 199 197 3394 3392 3294 3292 332 330 265 264 261 260 200 198 334 333 269 268 189 188 187 186 301 300 3405 3403 3290 25 331 330 329 265 264 261 260 200 199 198 197 242 241 236 235 334 248 247 189 187 333 269 268 188 186 31 331 301 300 295 294 188 186 3405 3403 3292 3290 334 332 269 268 265 264 189 187 336 335 273 272 178 177 176 175 306 3416 3414 3288 25 333 332 331 269 268 265 264 189 188 187 186 248 247 242 241 336 254 253 178 176 335 273 272 177 175 28 333 306 301 300 177 175 3416 3414 3290 3288 336 334 273 272 269 268 178 176 370 366 365 166 165 164 163 3428 3426 3253 22 335 334 333 273 272 269 268 178 177 176 175 254 253 248 247 166 164 370 366 365 165 163 17 338 231 230 225 224 213 212 284 283 278 277 3379 3378 3286 3285 3367 3366 28 337 284 283 278 277 213 212 3379 3378 3286 3285 231 230 225 224 340 339 262 261 237 236 207 206 290 289 3385 3384 3284 31 338 290 289 284 283 207 206 3385 3384 3285 3284 340 262 261 237 236 231 230 342 341 266 265 204 203 200 199 296 295 3392 3387 3282 20 342 243 242 237 236 203 200 341 339 266 265 262 261 204 199 338 231 230 207 206 32 339 296 295 290 289 204 199 3392 3387 3284 3282 342 340 266 265 262 261 203 200 344 343 270 269 191 190 189 188 302 301 3403 3401 3280 25 341 340 339 266 265 262 261 204 203 200 199 243 242 237 236 344 249 248 191 189 343 270 269 190 188 31 341 302 301 296 295 190 188 3403 3401 3282 3280 344 342 270 269 266 265 191 189 346 345 274 273 180 179 178 177 306 3414 3412 3278 25 343 342 341 270 269 266 265 191 190 189 188 249 248 243 242 346 255 254 180 178 345 274 273 179 177 28 343 306 302 301 179 177 3414 3412 3280 3278 346 344 274 273 270 269 180 178 371 367 366 168 167 166 165 3426 3424 3252 22 345 344 343 274 273 270 269 180 179 178 177 255 254 249 248 168 166 371 367 366 167 165 17 348 232 231 226 225 214 213 285 284 279 278 3378 3377 3276 3275 3366 3365 27 347 285 284 279 278 214 213 3378 3377 3276 3275 232 231 226 225 350 349 262 238 237 208 207 291 290 3384 3383 3274 33 350 348 262 238 237 232 231 208 207 352 351 297 296 291 290 266 204 203 202 3389 3388 3387 3329 3325 3274 3273 3272 3271 285 284 3384 3383 3275 30 352 244 243 238 237 203 202 351 349 297 296 291 290 266 262 204 3389 3388 3387 3329 3325 3274 3273 3272 3271 348 232 231 208 207 32 354 353 352 195 194 191 190 303 302 297 296 3401 3396 3272 3270 350 349 291 290 266 262 204 203 202 3389 3388 3387 3329 3325 3274 3273 3271 34 350 244 243 238 237 203 202 354 270 266 250 249 194 191 353 351 195 190 349 297 296 291 290 262 204 3389 3388 3387 3329 3325 3274 3273 3272 3271 24 351 303 302 297 296 195 190 3401 3396 3272 3270 354 352 194 191 356 355 184 183 180 179 3412 3407 3268 22 353 352 351 195 194 191 190 270 266 250 249 244 243 356 274 256 255 183 180 355 184 179 22 353 303 302 184 179 3412 3407 3270 3268 356 354 183 180 372 367 170 169 168 167 3424 3422 3251 19 355 354 353 184 183 180 179 274 270 256 255 250 249 170 168 372 367 169 167 17 358 233 232 227 226 215 214 286 285 280 279 3377 3376 3266 3265 3365 3364 25 357 286 285 280 279 215 214 3377 3376 3266 3265 233 232 227 226 359 239 238 209 208 292 291 3383 3382 3264 27 358 239 238 233 232 209 208 360 298 297 292 291 245 244 202 3389 3353 3352 3347 3346 3264 3263 286 285 3383 3382 3265 28 361 251 250 245 244 195 194 193 304 303 298 297 3398 3396 3263 3262 359 292 291 239 238 202 3389 3353 3352 3347 3346 3264 26 360 304 303 298 297 195 193 3398 3396 3263 3262 251 250 245 244 194 363 362 257 256 184 183 182 3409 3407 3261 21 361 304 303 184 182 3409 3407 3262 3261 363 257 256 251 250 183 172 171 170 169 3422 3420 13 257 256 172 170 362 171 169 361 251 250 184 183 182 17 368 316 315 271 162 161 369 365 326 325 272 164 163 219 218 1 0 23 369 364 326 325 272 271 164 163 162 161 370 366 336 335 273 166 165 218 217 2 0 219 1 23 370 365 336 335 273 272 166 165 164 163 371 367 346 345 274 168 167 221 217 3 2 218 0 19 371 366 346 345 274 273 168 167 166 165 372 356 355 170 169 221 3 217 2 13 315 305 161 3430 3308 3255 364 316 271 162 219 1 3372 21 325 305 163 161 3430 3428 3298 3254 365 364 326 272 271 164 162 219 218 1 0 3373 3372 21 335 306 165 163 3428 3426 3288 3253 366 365 336 273 272 166 164 218 217 2 0 3374 3373 21 345 306 167 165 3426 3424 3278 3252 367 366 346 274 273 168 166 221 217 3 2 3374 3370 14 355 169 167 3424 3422 3268 3251 367 356 170 168 221 3 3370 19 471 441 156 3250 3182 512 477 375 160 3248 3158 3123 507 478 456 455 376 374 442 13 455 442 441 373 512 507 478 477 456 376 375 434 433 23 512 477 471 373 160 3250 3248 3158 3123 513 483 3152 3122 508 507 484 457 456 377 376 478 455 374 18 512 507 478 477 456 455 375 374 373 513 508 484 483 457 377 435 434 433 16 513 508 507 484 483 457 456 376 375 509 488 458 378 436 435 434 16 509 508 488 458 457 377 514 510 494 493 459 380 379 437 436 435 21 514 493 472 3244 3142 3121 515 501 3134 3120 511 510 502 460 459 381 380 509 494 458 378 18 514 510 509 494 493 459 458 379 378 515 511 502 501 460 381 438 437 436 16 515 511 510 502 501 460 459 380 379 516 506 1715 1269 438 1053 437 28 471 469 441 439 156 155 3241 3184 3182 477 474 384 160 159 3239 3161 3158 478 476 475 456 455 450 449 385 383 442 440 20 455 449 442 441 440 439 382 478 477 476 475 474 456 450 385 384 434 433 428 427 29 477 474 471 469 382 160 159 3241 3239 3161 3158 483 481 3154 3152 484 482 457 456 451 450 386 385 478 476 475 455 449 383 25 478 477 476 475 474 456 455 450 449 384 383 382 484 483 482 481 457 451 386 435 434 429 428 433 427 21 484 483 482 481 457 456 451 450 385 384 488 487 458 452 387 436 435 430 429 434 428 20 488 487 458 457 452 451 386 494 493 492 459 453 389 388 437 436 431 430 435 429 22 493 472 470 3235 3142 501 499 3136 3134 502 500 460 459 454 453 390 389 494 492 458 452 387 22 494 493 492 459 458 453 452 388 387 502 501 500 499 460 454 390 438 437 432 431 436 430 21 502 501 500 499 460 459 454 453 389 388 574 506 505 1269 1226 438 432 1053 1010 437 431 20 487 486 430 429 424 423 397 452 451 446 445 395 482 481 480 450 428 422 393 392 22 476 475 450 449 428 427 394 482 481 480 451 445 429 423 422 395 393 391 474 473 421 396 32 474 473 469 467 396 159 158 3230 3227 3162 3161 475 422 421 394 392 482 481 480 451 450 445 429 428 423 395 391 479 3228 3156 3155 3154 23 469 467 439 421 396 155 154 3229 3227 3202 3184 449 440 427 476 475 450 428 392 474 473 422 393 24 481 480 479 393 3230 3228 3156 3155 3154 487 486 452 451 446 445 397 391 482 450 429 428 423 422 392 22 475 474 473 422 421 394 393 392 469 467 159 158 3230 3227 3162 3161 439 155 154 3229 3202 3184 19 487 486 452 451 446 445 395 391 492 491 453 447 398 431 430 425 424 429 423 20 492 491 453 452 447 446 397 500 499 498 497 454 448 399 432 431 426 425 430 424 20 500 499 498 497 454 453 448 447 398 632 505 504 1226 1183 432 426 1010 967 431 425 21 480 479 445 444 423 422 417 401 465 3223 3222 3179 3156 473 467 421 158 157 3202 3201 3162 17 479 465 444 400 3223 3222 3179 3156 486 446 445 424 423 418 417 480 422 20 490 468 466 3221 3145 497 496 3139 3138 498 448 447 426 425 420 419 491 446 424 418 16 465 461 444 443 3220 3180 3179 485 462 404 3219 3150 418 417 414 413 22 485 465 462 461 403 3220 3219 3150 490 489 466 463 405 3218 3146 3145 419 418 415 414 417 413 23 490 489 466 463 462 404 3219 3218 3146 3145 496 495 464 406 3217 3140 3139 420 419 416 415 418 414 24 496 495 466 464 463 405 3218 3217 3140 3139 503 1312 875 3132 2760 420 416 1140 1097 924 881 876 419 415 12 461 443 153 3216 3180 485 462 408 3215 3150 414 413 15 485 462 461 407 3216 3215 3150 489 463 409 3214 3146 415 414 413 15 489 463 462 408 3215 3214 3146 495 464 410 3213 3140 416 415 414 16 495 464 463 409 3214 3213 3140 819 503 1312 3132 2816 416 1097 881 415 9 512 3212 3123 513 3122 508 507 5 4 11 514 3211 3121 515 3120 511 510 8 7 509 6 10 443 407 444 417 403 485 418 414 404 408 14 485 413 408 407 418 417 404 403 490 489 419 415 405 409 15 489 414 409 408 490 419 418 405 404 496 495 420 416 406 410 17 495 415 410 409 496 420 419 406 405 503 1140 1097 924 881 876 875 819 18 444 443 413 403 480 479 445 423 422 401 400 486 446 424 418 485 414 404 21 485 417 414 413 404 403 486 446 445 424 423 401 491 490 447 425 419 402 489 415 405 22 490 489 418 415 414 405 404 491 447 446 425 424 402 498 497 496 448 426 420 495 416 406 25 496 495 419 416 415 406 405 498 497 448 447 426 425 402 504 1183 1140 967 924 877 503 1097 881 876 875 23 473 467 422 400 158 157 3223 3202 3201 3162 475 474 396 394 393 392 469 439 155 154 3229 3227 3184 31 473 467 421 400 158 157 3223 3202 3201 3162 475 474 396 394 393 392 482 481 480 451 450 445 429 428 423 395 391 479 444 417 401 25 480 479 445 444 422 417 401 400 482 481 451 450 429 428 395 393 392 391 487 486 430 424 397 446 418 21 486 446 445 423 418 417 401 487 430 429 397 391 492 491 431 425 398 490 447 419 402 22 491 490 447 446 424 419 418 402 492 431 430 398 397 500 498 432 426 399 497 496 448 420 23 498 497 496 448 447 425 420 419 402 500 432 431 399 398 632 505 504 1010 967 1183 1140 924 877 15 449 440 439 394 442 433 383 478 476 434 428 385 475 450 392 26 476 475 450 449 427 394 392 478 434 433 385 383 484 482 435 429 386 481 480 451 445 423 422 395 393 391 26 482 481 480 451 450 445 428 423 422 395 393 392 391 484 435 434 386 385 488 487 436 430 387 486 424 397 20 487 486 429 424 423 397 391 488 436 435 387 386 494 492 437 431 389 491 425 398 20 492 491 430 425 424 398 397 494 437 436 389 387 502 500 438 432 390 498 426 399 20 500 498 431 426 425 399 398 502 438 437 390 389 574 506 505 1053 1010 632 504 967 11 442 440 427 383 374 478 434 376 476 428 385 15 478 476 433 428 427 385 383 376 374 484 435 377 482 429 386 15 484 482 434 429 428 386 385 377 376 488 436 378 487 430 387 15 488 487 435 430 429 387 386 378 377 494 437 380 492 431 389 15 494 492 436 431 430 389 387 380 378 502 438 381 500 432 390 15 502 500 437 432 431 390 389 381 380 516 506 1053 574 505 1010 23 469 467 421 396 394 155 154 3229 3227 3202 3184 449 440 427 455 442 441 383 382 471 156 3241 3182 10 442 433 427 383 455 449 441 439 382 394 17 471 469 439 382 156 155 3241 3184 3182 455 449 442 440 383 374 373 3250 11 455 449 441 440 439 383 382 433 427 374 373 12 461 407 153 3216 3180 465 444 403 3220 3179 417 413 19 465 461 443 403 3220 3180 3179 417 413 480 479 445 423 422 401 400 3223 3222 3156 25 480 479 444 423 422 417 401 400 482 481 451 450 429 428 395 393 392 391 487 486 452 446 397 424 418 22 486 445 424 423 418 417 401 487 452 451 397 395 391 492 491 453 447 398 490 425 419 402 23 491 490 446 425 424 419 418 402 492 453 452 398 397 500 499 498 497 454 448 399 496 426 420 24 498 497 496 447 426 425 420 419 402 500 499 454 453 399 398 632 505 504 1226 1183 1140 967 924 877 20 440 439 427 394 455 442 441 383 382 478 477 476 475 474 456 450 385 384 428 392 31 476 475 449 428 427 394 392 478 477 474 456 455 385 384 383 382 484 483 482 481 457 451 386 480 445 429 423 422 395 393 391 28 482 481 480 450 445 429 428 423 422 395 393 392 391 484 483 457 456 386 385 384 488 487 458 452 387 486 446 397 23 487 486 451 446 445 397 395 391 488 458 457 387 386 494 493 492 459 453 389 388 491 447 398 25 492 491 452 447 446 398 397 494 493 459 458 389 388 387 502 501 500 499 460 454 390 498 497 448 399 24 500 499 498 497 453 448 447 399 398 502 501 460 459 390 389 388 574 506 505 1269 1226 632 504 1183 22 449 442 441 440 439 383 382 374 373 512 507 478 477 456 376 375 476 475 474 450 385 384 28 478 477 476 475 474 455 450 449 385 384 383 382 512 507 376 375 374 373 513 508 484 483 457 377 482 481 451 386 23 484 483 482 481 456 451 450 386 385 384 513 508 507 377 376 375 509 488 458 378 487 452 387 22 488 487 457 452 451 387 386 509 508 378 377 514 510 494 493 459 380 379 492 453 389 388 25 494 493 492 458 453 452 389 388 387 514 510 509 380 379 378 515 511 502 501 460 381 500 499 454 390 23 502 501 500 499 459 454 453 390 389 388 515 511 510 381 380 379 516 506 1715 1269 574 505 1226 17 443 407 153 3216 3180 465 444 403 3220 3179 485 462 404 3219 3150 408 3215 22 485 461 408 407 3216 3215 3150 465 404 403 3220 3219 490 489 466 463 405 3218 3146 3145 409 3214 23 489 462 409 408 3215 3214 3146 490 466 405 404 3219 3218 3145 496 495 464 406 3217 3140 3139 410 3213 21 495 463 410 409 3214 3213 3140 496 466 406 405 3218 3217 3139 503 1312 875 3132 2760 819 2816 18 461 444 443 403 3220 3180 3179 479 401 400 3223 3222 3156 485 462 404 3219 3150 22 490 489 463 462 405 404 3219 3218 3146 3145 468 402 3221 497 496 3139 3138 495 464 406 3217 3140 24 474 473 469 396 393 159 158 3230 3227 3162 3161 422 421 400 157 3223 3202 3201 439 394 155 154 3229 3184 12 490 466 402 3221 3145 470 499 497 3138 3136 496 3139 30 467 439 421 396 394 155 154 3229 3227 3202 3184 471 441 382 156 3241 3182 477 474 384 160 159 3239 3161 3158 473 393 158 3230 3162 12 468 493 472 388 3235 3142 501 499 3136 3134 497 3138 23 469 441 439 382 156 155 3241 3184 3182 373 3250 512 477 375 160 3248 3158 3123 474 384 159 3239 3161 15 493 470 388 3235 3142 514 379 3244 3121 515 501 3134 3120 499 3136 21 475 474 422 421 396 394 393 392 469 467 159 158 3230 3227 3162 3161 400 157 3223 3202 3201 32 477 471 469 384 382 160 159 3241 3239 3161 3158 478 476 475 456 455 450 449 385 383 473 422 421 396 394 393 392 467 158 3230 3227 3162 21 476 450 449 428 427 394 392 474 473 422 421 396 393 478 477 456 455 385 384 383 382 18 478 434 433 428 427 385 383 475 450 449 394 392 477 474 456 455 384 382 29 474 471 469 384 382 160 159 3241 3239 3161 3158 478 476 475 456 455 450 449 385 383 512 507 376 375 374 373 3250 3248 3123 22 477 476 475 474 456 455 450 449 385 384 383 382 434 433 428 427 376 374 512 507 375 373 20 480 445 444 423 422 417 401 400 481 395 393 3230 3228 3156 3155 3154 465 3223 3222 3179 23 482 481 451 450 445 429 428 423 422 395 393 392 391 479 3230 3228 3156 3155 3154 444 417 401 400 28 480 479 395 393 3230 3228 3156 3155 3154 482 451 450 445 429 428 423 422 392 391 484 483 457 456 386 385 384 3239 3152 22 484 435 434 429 428 386 385 483 481 457 456 451 450 384 480 445 423 422 395 393 392 391 21 481 384 3239 3154 3152 484 482 457 456 451 450 386 385 513 508 507 377 376 375 3248 3122 20 483 482 481 457 456 451 450 386 385 384 435 434 429 428 377 376 513 508 507 375 16 462 461 408 407 3216 3215 3150 414 413 418 417 404 403 465 3220 3219 15 487 430 429 424 423 397 391 452 451 446 445 395 418 417 401 19 486 452 451 446 445 397 395 391 430 429 424 423 488 436 435 387 386 458 457 15 487 458 457 452 451 387 386 436 435 430 429 378 377 509 508 18 463 462 409 408 3215 3214 3146 415 414 490 419 418 405 404 466 3219 3218 3145 22 489 466 463 462 405 404 3219 3218 3146 3145 419 418 415 414 491 447 446 425 424 402 468 3221 15 492 431 430 425 424 398 397 453 452 447 446 490 419 418 402 20 491 453 452 447 446 398 397 431 430 425 424 494 437 436 389 387 493 459 458 388 21 472 470 388 3235 3142 494 492 459 458 453 452 389 387 514 510 509 380 379 378 3244 3121 19 493 492 459 458 453 452 389 388 387 437 436 431 430 380 378 514 510 509 379 18 464 463 410 409 3214 3213 3140 416 415 496 420 419 406 405 466 3218 3217 3139 24 495 466 464 463 406 405 3218 3217 3140 3139 420 419 416 415 498 497 448 447 426 425 402 468 3221 3138 22 496 468 466 402 3221 3139 3138 498 448 447 426 425 420 419 500 499 454 453 399 398 470 3136 17 500 432 431 426 425 399 398 499 497 454 453 448 447 496 420 419 402 23 497 470 468 3138 3136 500 498 454 453 448 447 399 398 502 501 460 459 390 389 388 472 3235 3134 22 499 498 497 454 453 448 447 399 398 432 431 426 425 502 438 437 390 389 501 460 459 388 23 499 472 470 388 3235 3136 3134 502 500 460 459 454 453 390 389 515 511 510 381 380 379 3244 3120 20 501 500 499 460 459 454 453 390 389 388 438 437 432 431 381 380 515 511 510 379 18 819 464 410 1312 3213 3132 2816 416 1097 881 420 406 1140 924 876 875 3217 2760 15 632 505 432 426 399 1010 967 454 448 1226 1183 420 1140 924 877 18 632 504 454 448 399 1226 1183 432 426 1010 967 574 506 438 390 1053 460 1269 15 574 505 460 454 390 1269 1226 438 432 1053 1010 516 381 511 1715 18 512 478 477 456 455 376 375 374 373 411 4 513 508 5 484 483 457 377 17 513 507 484 483 457 456 377 376 375 411 5 4 509 6 488 458 378 17 508 488 458 457 378 377 6 5 514 510 412 7 494 493 459 380 379 19 514 509 494 493 459 458 380 379 378 412 7 6 515 511 8 502 501 460 381 17 515 510 502 501 460 459 381 380 379 412 8 7 9 1715 516 506 1269 18 477 471 375 373 160 3250 3248 3158 3123 411 3212 507 4 478 456 455 376 374 16 483 375 3248 3152 3122 411 3212 508 507 5 4 484 457 456 377 376 17 493 472 379 3244 3142 3121 412 3211 510 509 7 6 494 459 458 380 378 17 501 472 379 3244 3134 3120 412 3211 511 510 8 7 502 460 459 381 380 17 511 506 460 381 1715 1269 526 524 517 1406 1405 1270 1758 1716 1054 1053 438 18 526 524 516 1715 1406 1405 1270 1269 1758 1716 521 519 1412 1271 1717 1055 1054 1053 15 522 520 1424 1273 1272 1862 1719 1718 521 519 1418 1271 1717 71 72 16 524 521 517 1412 1271 1270 1717 1716 520 518 1418 1272 1718 1056 1055 1054 16 521 519 518 1418 1272 1271 1718 1717 522 1424 1273 1862 1719 1057 1056 1055 16 520 519 518 1418 1272 1271 1718 1717 524 517 1412 1270 1716 526 70 71 20 520 518 1424 1273 1272 1862 1719 1718 523 1430 1274 1863 1833 1799 1796 1720 1058 1057 1844 1056 24 522 1430 1274 1273 1863 1862 1833 1799 1796 1720 1719 525 1436 1275 1864 1834 1808 1807 1721 1059 1058 1845 1844 1057 16 526 517 516 1715 1406 1405 1270 1269 1758 1716 521 70 519 1412 1271 1717 24 523 1436 1275 1274 1864 1863 1834 1833 1808 1807 1721 1720 527 1442 1276 1866 1816 1815 1722 1060 1059 1845 1058 1844 15 524 517 516 1715 1406 1405 1270 1269 1758 1716 2317 1964 3109 521 70 22 525 1442 1276 1275 1866 1864 1834 1816 1815 1722 1721 528 1450 1449 1277 1865 1759 1723 1061 1060 1059 1845 17 527 1450 1449 1277 1276 1866 1865 1759 1723 1722 529 1456 1278 1724 1062 1061 1060 16 528 1456 1278 1277 1724 1723 531 530 1464 1463 1279 1760 1725 1063 1062 1061 21 1463 1388 2259 1962 1760 3105 1471 2251 1961 1761 532 531 1472 1280 1279 1726 1725 529 1464 1278 1724 18 530 529 1464 1463 1279 1278 1760 1725 1724 532 1472 1471 1280 1761 1726 1064 1063 1062 16 531 530 1472 1471 1280 1279 1761 1726 1725 533 1478 1281 1727 1065 1064 1063 16 532 1478 1281 1280 1727 1726 535 534 1488 1487 1282 1762 1728 1066 1065 1064 21 1487 1389 2235 1960 1762 3101 1497 2225 1959 1763 536 535 1498 1283 1282 1729 1728 533 1488 1281 1727 18 534 533 1488 1487 1282 1281 1762 1728 1727 536 1498 1497 1283 1763 1729 1067 1066 1065 16 535 534 1498 1497 1283 1282 1763 1729 1728 537 1504 1284 1730 1068 1067 1066 16 536 1504 1284 1283 1730 1729 539 538 1512 1511 1285 1764 1731 1069 1068 1067 21 1511 1390 2211 1958 1764 3097 1519 2203 1957 1765 540 539 1520 1286 1285 1732 1731 537 1512 1284 1730 18 538 537 1512 1511 1285 1284 1764 1731 1730 540 1520 1519 1286 1765 1732 1070 1069 1068 16 539 538 1520 1519 1286 1285 1765 1732 1731 541 1526 1287 1733 1071 1070 1069 16 540 1526 1287 1286 1733 1732 543 542 1536 1535 1288 1766 1734 1072 1071 1070 21 1535 1391 2187 1956 1766 3093 1543 2179 1955 1767 544 543 1544 1289 1288 1735 1734 541 1536 1287 1733 18 542 541 1536 1535 1288 1287 1766 1734 1733 544 1544 1543 1289 1767 1735 1073 1072 1071 16 543 542 1544 1543 1289 1288 1767 1735 1734 545 1550 1290 1736 1074 1073 1072 16 544 1550 1290 1289 1736 1735 547 546 1558 1557 1291 1768 1737 1075 1074 1073 21 1557 1392 2165 1954 1768 3089 1565 2157 1953 1769 548 547 1566 1292 1291 1738 1737 545 1558 1290 1736 18 546 545 1558 1557 1291 1290 1768 1737 1736 548 1566 1565 1292 1769 1738 1076 1075 1074 16 547 546 1566 1565 1292 1291 1769 1738 1737 549 1572 1293 1739 1077 1076 1075 16 548 1572 1293 1292 1739 1738 551 550 1582 1581 1294 1770 1740 1078 1077 1076 21 1581 1393 2141 1952 1770 3085 1589 2133 1951 1771 552 551 1590 1295 1294 1741 1740 549 1582 1293 1739 18 550 549 1582 1581 1294 1293 1770 1740 1739 552 1590 1589 1295 1771 1741 1079 1078 1077 16 551 550 1590 1589 1295 1294 1771 1741 1740 553 1596 1296 1742 1080 1079 1078 16 552 1596 1296 1295 1742 1741 555 554 1604 1603 1297 1772 1743 1081 1080 1079 21 1603 1394 2119 1950 1772 3081 1611 2111 1949 1773 556 555 1612 1298 1297 1744 1743 553 1604 1296 1742 18 554 553 1604 1603 1297 1296 1772 1743 1742 556 1612 1611 1298 1773 1744 1082 1081 1080 16 555 554 1612 1611 1298 1297 1773 1744 1743 557 1618 1299 1745 1083 1082 1081 16 556 1618 1299 1298 1745 1744 559 558 1628 1627 1300 1774 1746 1084 1083 1082 21 1627 1395 2095 1948 1774 3077 1635 2087 1947 1775 560 559 1636 1301 1300 1747 1746 557 1628 1299 1745 18 558 557 1628 1627 1300 1299 1774 1746 1745 560 1636 1635 1301 1775 1747 1085 1084 1083 16 559 558 1636 1635 1301 1300 1775 1747 1746 561 1642 1302 1748 1086 1085 1084 16 560 1642 1302 1301 1748 1747 563 562 1650 1649 1303 1776 1749 1087 1086 1085 21 1649 1396 2073 1946 1776 3073 1657 2065 1945 1777 564 563 1658 1304 1303 1750 1749 561 1650 1302 1748 18 562 561 1650 1649 1303 1302 1776 1749 1748 564 1658 1657 1304 1777 1750 1088 1087 1086 16 563 562 1658 1657 1304 1303 1777 1750 1749 565 1664 1305 1751 1089 1088 1087 16 564 1664 1305 1304 1751 1750 567 566 1674 1673 1306 1778 1752 1090 1089 1088 21 1673 1397 2049 1944 1778 3069 1681 2041 1943 1779 568 567 1682 1307 1306 1753 1752 565 1674 1305 1751 18 566 565 1674 1673 1306 1305 1778 1752 1751 568 1682 1681 1307 1779 1753 1091 1090 1089 16 567 566 1682 1681 1307 1306 1779 1753 1752 569 1688 1308 1754 1092 1091 1090 16 568 1688 1308 1307 1754 1753 571 570 1698 1697 1309 1780 1755 1093 1092 1091 21 1697 1398 2025 1942 1780 3065 1707 2015 1941 1781 572 571 1708 1310 1309 1756 1755 569 1698 1308 1754 18 570 569 1698 1697 1309 1308 1780 1755 1754 572 1708 1707 1310 1781 1756 1094 1093 1092 17 571 570 1708 1707 1310 1309 1781 1756 1755 573 1714 1311 1757 1096 1095 1094 1093 20 572 1714 1311 1310 1757 1756 316 315 314 313 271 267 174 173 1782 252 246 1096 1095 1094 21 506 505 460 454 390 1269 1226 584 582 575 1406 1405 1404 1270 1227 1054 1053 1011 1010 438 432 22 584 582 574 1406 1405 1404 1270 1269 1227 1226 579 577 1412 1411 1271 1228 1055 1054 1012 1011 1053 1010 19 580 578 1424 1423 1273 1272 1230 1229 1857 579 577 1418 1417 1271 1228 71 65 72 66 21 582 579 575 1412 1411 1271 1270 1228 1227 578 576 1418 1417 1272 1229 1056 1055 1013 1012 1054 1011 21 579 577 576 1418 1417 1272 1271 1229 1228 580 1424 1423 1273 1230 1857 1057 1056 1014 1013 1055 1012 20 578 577 576 1418 1417 1272 1271 1229 1228 582 575 1412 1411 1270 1227 584 70 64 71 65 21 578 576 1424 1423 1273 1272 1230 1229 1857 581 1430 1429 1274 1231 1858 1058 1057 1015 1014 1056 1013 21 580 1430 1429 1274 1273 1231 1230 1858 1857 583 1436 1435 1275 1232 1859 1059 1058 1016 1015 1057 1014 18 584 575 574 1406 1405 1404 1270 1269 1227 1226 579 70 64 577 1412 1411 1271 1228 21 581 1436 1435 1275 1274 1232 1231 1859 1858 585 1442 1441 1276 1233 1861 1060 1059 1017 1016 1058 1015 15 582 575 574 1406 1405 1404 1270 1269 1227 1226 2317 3051 579 70 64 22 583 1442 1441 1276 1275 1233 1232 1861 1859 586 1450 1449 1448 1277 1234 1860 1061 1060 1018 1017 1059 1016 21 585 1450 1449 1448 1277 1276 1234 1233 1861 1860 587 1456 1455 1278 1235 1062 1061 1019 1018 1060 1017 20 586 1456 1455 1278 1277 1235 1234 589 588 1464 1463 1462 1279 1236 1063 1062 1020 1019 1061 1018 20 1463 1388 1377 2259 3047 1471 2251 590 589 1472 1470 1280 1279 1237 1236 587 1464 1462 1278 1235 21 588 587 1464 1463 1462 1279 1278 1236 1235 590 1472 1471 1470 1280 1237 1064 1063 1021 1020 1062 1019 20 589 588 1472 1471 1470 1280 1279 1237 1236 591 1478 1477 1281 1238 1065 1064 1022 1021 1063 1020 21 590 1478 1477 1281 1280 1238 1237 593 592 1488 1487 1486 1485 1282 1239 1066 1065 1023 1022 1064 1021 24 1487 1485 1389 1378 2237 2235 3043 1497 1495 2227 2225 594 593 1498 1496 1283 1282 1240 1239 591 1488 1486 1281 1238 23 592 591 1488 1487 1486 1485 1282 1281 1239 1238 594 1498 1497 1496 1495 1283 1240 1067 1066 1024 1023 1065 1022 21 593 592 1498 1497 1496 1495 1283 1282 1240 1239 595 1504 1503 1284 1241 1068 1067 1025 1024 1066 1023 20 594 1504 1503 1284 1283 1241 1240 597 596 1512 1511 1510 1285 1242 1069 1068 1026 1025 1067 1024 20 1511 1390 1379 2211 3039 1519 2203 598 597 1520 1518 1286 1285 1243 1242 595 1512 1510 1284 1241 21 596 595 1512 1511 1510 1285 1284 1242 1241 598 1520 1519 1518 1286 1243 1070 1069 1027 1026 1068 1025 20 597 596 1520 1519 1518 1286 1285 1243 1242 599 1526 1525 1287 1244 1071 1070 1028 1027 1069 1026 21 598 1526 1525 1287 1286 1244 1243 601 600 1536 1535 1534 1533 1288 1245 1072 1071 1029 1028 1070 1027 22 1535 1533 1391 1380 2189 2187 3035 1543 2179 602 601 1544 1542 1289 1288 1246 1245 599 1536 1534 1287 1244 22 600 599 1536 1535 1534 1533 1288 1287 1245 1244 602 1544 1543 1542 1289 1246 1073 1072 1030 1029 1071 1028 20 601 600 1544 1543 1542 1289 1288 1246 1245 603 1550 1549 1290 1247 1074 1073 1031 1030 1072 1029 20 602 1550 1549 1290 1289 1247 1246 605 604 1558 1557 1556 1291 1248 1075 1074 1032 1031 1073 1030 20 1557 1392 1381 2165 3031 1565 2157 606 605 1566 1564 1292 1291 1249 1248 603 1558 1556 1290 1247 21 604 603 1558 1557 1556 1291 1290 1248 1247 606 1566 1565 1564 1292 1249 1076 1075 1033 1032 1074 1031 20 605 604 1566 1565 1564 1292 1291 1249 1248 607 1572 1571 1293 1250 1077 1076 1034 1033 1075 1032 21 606 1572 1571 1293 1292 1250 1249 609 608 1582 1581 1580 1579 1294 1251 1078 1077 1035 1034 1076 1033 22 1581 1579 1393 1382 2143 2141 3027 1589 2133 610 609 1590 1588 1295 1294 1252 1251 607 1582 1580 1293 1250 22 608 607 1582 1581 1580 1579 1294 1293 1251 1250 610 1590 1589 1588 1295 1252 1079 1078 1036 1035 1077 1034 20 609 608 1590 1589 1588 1295 1294 1252 1251 611 1596 1595 1296 1253 1080 1079 1037 1036 1078 1035 20 610 1596 1595 1296 1295 1253 1252 613 612 1604 1603 1602 1297 1254 1081 1080 1038 1037 1079 1036 20 1603 1394 1383 2119 3023 1611 2111 614 613 1612 1610 1298 1297 1255 1254 611 1604 1602 1296 1253 21 612 611 1604 1603 1602 1297 1296 1254 1253 614 1612 1611 1610 1298 1255 1082 1081 1039 1038 1080 1037 20 613 612 1612 1611 1610 1298 1297 1255 1254 615 1618 1617 1299 1256 1083 1082 1040 1039 1081 1038 21 614 1618 1617 1299 1298 1256 1255 617 616 1628 1627 1626 1625 1300 1257 1084 1083 1041 1040 1082 1039 22 1627 1625 1395 1384 2097 2095 3019 1635 2087 618 617 1636 1634 1301 1300 1258 1257 615 1628 1626 1299 1256 22 616 615 1628 1627 1626 1625 1300 1299 1257 1256 618 1636 1635 1634 1301 1258 1085 1084 1042 1041 1083 1040 20 617 616 1636 1635 1634 1301 1300 1258 1257 619 1642 1641 1302 1259 1086 1085 1043 1042 1084 1041 20 618 1642 1641 1302 1301 1259 1258 621 620 1650 1649 1648 1303 1260 1087 1086 1044 1043 1085 1042 20 1649 1396 1385 2073 3015 1657 2065 622 621 1658 1656 1304 1303 1261 1260 619 1650 1648 1302 1259 21 620 619 1650 1649 1648 1303 1302 1260 1259 622 1658 1657 1656 1304 1261 1088 1087 1045 1044 1086 1043 20 621 620 1658 1657 1656 1304 1303 1261 1260 623 1664 1663 1305 1262 1089 1088 1046 1045 1087 1044 21 622 1664 1663 1305 1304 1262 1261 625 624 1674 1673 1672 1671 1306 1263 1090 1089 1047 1046 1088 1045 22 1673 1671 1397 1386 2051 2049 3011 1681 2041 626 625 1682 1680 1307 1306 1264 1263 623 1674 1672 1305 1262 22 624 623 1674 1673 1672 1671 1306 1305 1263 1262 626 1682 1681 1680 1307 1264 1091 1090 1048 1047 1089 1046 20 625 624 1682 1681 1680 1307 1306 1264 1263 627 1688 1687 1308 1265 1092 1091 1049 1048 1090 1047 21 626 1688 1687 1308 1307 1265 1264 629 628 1698 1697 1696 1695 1309 1266 1093 1092 1050 1049 1091 1048 24 1697 1695 1398 1387 2027 2025 3007 1707 1705 2017 2015 630 629 1708 1706 1310 1309 1267 1266 627 1698 1696 1308 1265 23 628 627 1698 1697 1696 1695 1309 1308 1266 1265 630 1708 1707 1706 1705 1310 1267 1094 1093 1051 1050 1092 1049 21 629 628 1708 1707 1706 1705 1310 1309 1267 1266 631 1714 1713 1311 1268 1095 1094 1052 1051 1093 1050 21 630 1714 1713 1311 1310 1268 1267 314 313 312 311 267 263 185 181 246 240 1095 1052 1094 1051 20 505 504 454 448 399 1226 1183 642 640 633 1404 1403 1227 1184 1011 1010 968 967 432 426 21 642 640 632 1404 1403 1227 1226 1184 1183 637 635 1411 1410 1228 1185 1012 1011 969 968 1010 967 19 638 636 1423 1422 1230 1229 1187 1186 1852 637 635 1417 1416 1228 1185 65 59 66 60 21 640 637 633 1411 1410 1228 1227 1185 1184 636 634 1417 1416 1229 1186 1013 1012 970 969 1011 968 21 637 635 634 1417 1416 1229 1228 1186 1185 638 1423 1422 1230 1187 1852 1014 1013 971 970 1012 969 20 636 635 634 1417 1416 1229 1228 1186 1185 640 633 1411 1410 1227 1184 642 64 58 65 59 21 636 634 1423 1422 1230 1229 1187 1186 1852 639 1429 1428 1231 1188 1853 1015 1014 972 971 1013 970 21 638 1429 1428 1231 1230 1188 1187 1853 1852 641 1435 1434 1232 1189 1854 1016 1015 973 972 1014 971 17 642 633 632 1404 1403 1227 1226 1184 1183 637 64 58 635 1411 1410 1228 1185 21 639 1435 1434 1232 1231 1189 1188 1854 1853 643 1441 1440 1233 1190 1856 1017 1016 974 973 1015 972 13 640 633 632 1404 1403 1227 1226 1184 1183 2993 637 64 58 21 641 1441 1440 1233 1232 1190 1189 1856 1854 644 1448 1447 1234 1191 1855 1018 1017 975 974 1016 973 20 643 1448 1447 1234 1233 1191 1190 1856 1855 645 1455 1454 1235 1192 1019 1018 976 975 1017 974 18 644 1455 1454 1235 1234 1192 1191 646 1462 1461 1236 1193 1020 1019 977 976 1018 975 18 645 1462 1461 1236 1235 1193 1192 647 1470 1469 1237 1194 1021 1020 978 977 1019 976 18 646 1470 1469 1237 1236 1194 1193 648 1477 1476 1238 1195 1022 1021 979 978 1020 977 21 647 1477 1476 1238 1237 1195 1194 650 649 1486 1485 1484 1483 1239 1196 1023 1022 980 979 1021 978 24 1485 1483 1378 1367 2239 2237 2986 1495 1493 2229 2227 651 650 1496 1494 1240 1239 1197 1196 648 1486 1484 1238 1195 23 649 648 1486 1485 1484 1483 1239 1238 1196 1195 651 1496 1495 1494 1493 1240 1197 1024 1023 981 980 1022 979 21 650 649 1496 1495 1494 1493 1240 1239 1197 1196 652 1503 1502 1241 1198 1025 1024 982 981 1023 980 18 651 1503 1502 1241 1240 1198 1197 653 1510 1509 1242 1199 1026 1025 983 982 1024 981 18 652 1510 1509 1242 1241 1199 1198 654 1518 1517 1243 1200 1027 1026 984 983 1025 982 18 653 1518 1517 1243 1242 1200 1199 655 1525 1524 1244 1201 1028 1027 985 984 1026 983 20 654 1525 1524 1244 1243 1201 1200 656 1534 1533 1532 1531 1245 1202 1029 1028 986 985 1027 984 20 655 1534 1533 1532 1531 1245 1244 1202 1201 657 1542 1541 1246 1203 1030 1029 987 986 1028 985 18 656 1542 1541 1246 1245 1203 1202 658 1549 1548 1247 1204 1031 1030 988 987 1029 986 18 657 1549 1548 1247 1246 1204 1203 659 1556 1555 1248 1205 1032 1031 989 988 1030 987 18 658 1556 1555 1248 1247 1205 1204 660 1564 1563 1249 1206 1033 1032 990 989 1031 988 18 659 1564 1563 1249 1248 1206 1205 661 1571 1570 1250 1207 1034 1033 991 990 1032 989 20 660 1571 1570 1250 1249 1207 1206 662 1580 1579 1578 1577 1251 1208 1035 1034 992 991 1033 990 20 661 1580 1579 1578 1577 1251 1250 1208 1207 663 1588 1587 1252 1209 1036 1035 993 992 1034 991 18 662 1588 1587 1252 1251 1209 1208 664 1595 1594 1253 1210 1037 1036 994 993 1035 992 18 663 1595 1594 1253 1252 1210 1209 665 1602 1601 1254 1211 1038 1037 995 994 1036 993 18 664 1602 1601 1254 1253 1211 1210 666 1610 1609 1255 1212 1039 1038 996 995 1037 994 18 665 1610 1609 1255 1254 1212 1211 667 1617 1616 1256 1213 1040 1039 997 996 1038 995 20 666 1617 1616 1256 1255 1213 1212 668 1626 1625 1624 1623 1257 1214 1041 1040 998 997 1039 996 20 667 1626 1625 1624 1623 1257 1256 1214 1213 669 1634 1633 1258 1215 1042 1041 999 998 1040 997 18 668 1634 1633 1258 1257 1215 1214 670 1641 1640 1259 1216 1043 1042 1000 999 1041 998 18 669 1641 1640 1259 1258 1216 1215 671 1648 1647 1260 1217 1044 1043 1001 1000 1042 999 18 670 1648 1647 1260 1259 1217 1216 672 1656 1655 1261 1218 1045 1044 1002 1001 1043 1000 18 671 1656 1655 1261 1260 1218 1217 673 1663 1662 1262 1219 1046 1045 1003 1002 1044 1001 20 672 1663 1662 1262 1261 1219 1218 674 1672 1671 1670 1669 1263 1220 1047 1046 1004 1003 1045 1002 20 673 1672 1671 1670 1669 1263 1262 1220 1219 675 1680 1679 1264 1221 1048 1047 1005 1004 1046 1003 18 674 1680 1679 1264 1263 1221 1220 676 1687 1686 1265 1222 1049 1048 1006 1005 1047 1004 21 675 1687 1686 1265 1264 1222 1221 678 677 1696 1695 1694 1693 1266 1223 1050 1049 1007 1006 1048 1005 24 1695 1693 1387 1376 2029 2027 2958 1705 1703 2019 2017 679 678 1706 1704 1267 1266 1224 1223 676 1696 1694 1265 1222 23 677 676 1696 1695 1694 1693 1266 1265 1223 1222 679 1706 1705 1704 1703 1267 1224 1051 1050 1008 1007 1049 1006 21 678 677 1706 1705 1704 1703 1267 1266 1224 1223 680 1713 1712 1268 1225 1052 1051 1009 1008 1050 1007 21 679 1713 1712 1268 1267 1225 1224 312 311 310 309 263 259 196 192 240 234 1052 1009 1051 1008 22 690 688 1403 1402 1401 1184 1183 1141 1140 877 685 683 1410 1409 1185 1142 969 968 926 925 967 924 19 686 684 1422 1421 1187 1186 1144 1143 1847 685 683 1416 1415 1185 1142 59 53 60 54 21 688 685 681 1410 1409 1185 1184 1142 1141 684 682 1416 1415 1186 1143 970 969 927 926 968 925 21 685 683 682 1416 1415 1186 1185 1143 1142 686 1422 1421 1187 1144 1847 971 970 928 927 969 926 20 684 683 682 1416 1415 1186 1185 1143 1142 688 681 1410 1409 1184 1141 690 58 52 59 53 21 684 682 1422 1421 1187 1186 1144 1143 1847 687 1428 1427 1188 1145 1848 972 971 929 928 970 927 21 686 1428 1427 1188 1187 1145 1144 1848 1847 689 1434 1433 1189 1146 1849 973 972 930 929 971 928 18 690 681 1403 1402 1401 1184 1183 1141 1140 877 685 58 52 683 1410 1409 1185 1142 21 687 1434 1433 1189 1188 1146 1145 1849 1848 691 1440 1439 1190 1147 1851 974 973 931 930 972 929 15 688 681 1403 1402 1401 1184 1183 1141 1140 877 2321 2945 685 58 52 22 689 1440 1439 1190 1189 1147 1146 1851 1849 692 1447 1446 1445 1191 1148 1850 975 974 932 931 973 930 21 691 1447 1446 1445 1191 1190 1148 1147 1851 1850 693 1454 1453 1192 1149 976 975 933 932 974 931 20 692 1454 1453 1192 1191 1149 1148 695 694 1461 1460 1459 1193 1150 977 976 934 933 975 932 20 1459 1366 1355 2263 2941 1467 2255 696 695 1469 1468 1194 1193 1151 1150 693 1461 1460 1192 1149 21 694 693 1461 1460 1459 1193 1192 1150 1149 696 1469 1468 1467 1194 1151 978 977 935 934 976 933 20 695 694 1469 1468 1467 1194 1193 1151 1150 697 1476 1475 1195 1152 979 978 936 935 977 934 21 696 1476 1475 1195 1194 1152 1151 699 698 1484 1483 1482 1481 1196 1153 980 979 937 936 978 935 24 1483 1481 1367 1356 2241 2239 2937 1493 1491 2231 2229 700 699 1494 1492 1197 1196 1154 1153 697 1484 1482 1195 1152 23 698 697 1484 1483 1482 1481 1196 1195 1153 1152 700 1494 1493 1492 1491 1197 1154 981 980 938 937 979 936 21 699 698 1494 1493 1492 1491 1197 1196 1154 1153 701 1502 1501 1198 1155 982 981 939 938 980 937 20 700 1502 1501 1198 1197 1155 1154 703 702 1509 1508 1507 1199 1156 983 982 940 939 981 938 20 1507 1368 1357 2215 2933 1515 2207 704 703 1517 1516 1200 1199 1157 1156 701 1509 1508 1198 1155 21 702 701 1509 1508 1507 1199 1198 1156 1155 704 1517 1516 1515 1200 1157 984 983 941 940 982 939 20 703 702 1517 1516 1515 1200 1199 1157 1156 705 1524 1523 1201 1158 985 984 942 941 983 940 21 704 1524 1523 1201 1200 1158 1157 707 706 1532 1531 1530 1529 1202 1159 986 985 943 942 984 941 22 1531 1529 1369 1358 2193 2191 2929 1539 2183 708 707 1541 1540 1203 1202 1160 1159 705 1532 1530 1201 1158 22 706 705 1532 1531 1530 1529 1202 1201 1159 1158 708 1541 1540 1539 1203 1160 987 986 944 943 985 942 20 707 706 1541 1540 1539 1203 1202 1160 1159 709 1548 1547 1204 1161 988 987 945 944 986 943 20 708 1548 1547 1204 1203 1161 1160 711 710 1555 1554 1553 1205 1162 989 988 946 945 987 944 20 1553 1370 1359 2169 2925 1561 2161 712 711 1563 1562 1206 1205 1163 1162 709 1555 1554 1204 1161 21 710 709 1555 1554 1553 1205 1204 1162 1161 712 1563 1562 1561 1206 1163 990 989 947 946 988 945 20 711 710 1563 1562 1561 1206 1205 1163 1162 713 1570 1569 1207 1164 991 990 948 947 989 946 21 712 1570 1569 1207 1206 1164 1163 715 714 1578 1577 1576 1575 1208 1165 992 991 949 948 990 947 22 1577 1575 1371 1360 2147 2145 2921 1585 2137 716 715 1587 1586 1209 1208 1166 1165 713 1578 1576 1207 1164 22 714 713 1578 1577 1576 1575 1208 1207 1165 1164 716 1587 1586 1585 1209 1166 993 992 950 949 991 948 20 715 714 1587 1586 1585 1209 1208 1166 1165 717 1594 1593 1210 1167 994 993 951 950 992 949 20 716 1594 1593 1210 1209 1167 1166 719 718 1601 1600 1599 1211 1168 995 994 952 951 993 950 20 1599 1372 1361 2123 2917 1607 2115 720 719 1609 1608 1212 1211 1169 1168 717 1601 1600 1210 1167 21 718 717 1601 1600 1599 1211 1210 1168 1167 720 1609 1608 1607 1212 1169 996 995 953 952 994 951 20 719 718 1609 1608 1607 1212 1211 1169 1168 721 1616 1615 1213 1170 997 996 954 953 995 952 21 720 1616 1615 1213 1212 1170 1169 723 722 1624 1623 1622 1621 1214 1171 998 997 955 954 996 953 22 1623 1621 1373 1362 2101 2099 2913 1631 2091 724 723 1633 1632 1215 1214 1172 1171 721 1624 1622 1213 1170 22 722 721 1624 1623 1622 1621 1214 1213 1171 1170 724 1633 1632 1631 1215 1172 999 998 956 955 997 954 20 723 722 1633 1632 1631 1215 1214 1172 1171 725 1640 1639 1216 1173 1000 999 957 956 998 955 20 724 1640 1639 1216 1215 1173 1172 727 726 1647 1646 1645 1217 1174 1001 1000 958 957 999 956 20 1645 1374 1363 2077 2909 1653 2069 728 727 1655 1654 1218 1217 1175 1174 725 1647 1646 1216 1173 21 726 725 1647 1646 1645 1217 1216 1174 1173 728 1655 1654 1653 1218 1175 1002 1001 959 958 1000 957 20 727 726 1655 1654 1653 1218 1217 1175 1174 729 1662 1661 1219 1176 1003 1002 960 959 1001 958 21 728 1662 1661 1219 1218 1176 1175 731 730 1670 1669 1668 1667 1220 1177 1004 1003 961 960 1002 959 22 1669 1667 1375 1364 2055 2053 2905 1677 2045 732 731 1679 1678 1221 1220 1178 1177 729 1670 1668 1219 1176 22 730 729 1670 1669 1668 1667 1220 1219 1177 1176 732 1679 1678 1677 1221 1178 1005 1004 962 961 1003 960 20 731 730 1679 1678 1677 1221 1220 1178 1177 733 1686 1685 1222 1179 1006 1005 963 962 1004 961 21 732 1686 1685 1222 1221 1179 1178 735 734 1694 1693 1692 1691 1223 1180 1007 1006 964 963 1005 962 24 1693 1691 1376 1365 2031 2029 2901 1703 1701 2021 2019 736 735 1704 1702 1224 1223 1181 1180 733 1694 1692 1222 1179 23 734 733 1694 1693 1692 1691 1223 1222 1180 1179 736 1704 1703 1702 1701 1224 1181 1008 1007 965 964 1006 963 21 735 734 1704 1703 1702 1701 1224 1223 1181 1180 1712 1711 1225 1182 880 1009 1008 966 965 1007 964 28 1401 1399 1313 1312 875 2323 2321 2898 2760 739 1407 1314 2315 2896 740 738 52 1409 1408 1142 1141 1099 1098 1402 1400 1140 1097 876 25 737 1402 1401 1400 1399 1141 1140 1098 1097 876 875 740 739 52 1409 1408 1407 1142 1099 926 925 883 882 924 881 27 737 1407 1314 1313 2315 2898 2896 741 1413 1315 2309 2894 742 740 53 1415 1414 1143 1142 1100 1099 738 52 1409 1408 1141 1098 25 739 738 737 52 1409 1408 1407 1142 1141 1099 1098 742 741 53 1415 1414 1413 1143 1100 927 926 884 883 925 882 27 739 1413 1315 1314 2309 2896 2894 743 1419 1316 2303 2892 744 742 54 1421 1420 1144 1143 1101 1100 740 53 1415 1414 1142 1099 25 741 740 739 53 1415 1414 1413 1143 1142 1100 1099 744 743 54 1421 1420 1419 1144 1101 928 927 885 884 926 883 27 741 1419 1316 1315 2303 2894 2892 745 1425 1317 2297 2890 746 744 55 1427 1426 1145 1144 1102 1101 742 54 1421 1420 1143 1100 25 743 742 741 54 1421 1420 1419 1144 1143 1101 1100 746 745 55 1427 1426 1425 1145 1102 929 928 886 885 927 884 27 743 1425 1317 1316 2297 2892 2890 747 1431 1318 2291 2888 748 746 56 1433 1432 1146 1145 1103 1102 744 55 1427 1426 1144 1101 25 745 744 743 55 1427 1426 1425 1145 1144 1102 1101 748 747 56 1433 1432 1431 1146 1103 930 929 887 886 928 885 27 745 1431 1318 1317 2291 2890 2888 749 1437 1319 2285 2886 750 748 57 1439 1438 1147 1146 1104 1103 746 56 1433 1432 1145 1102 25 747 746 745 56 1433 1432 1431 1146 1145 1103 1102 750 749 57 1439 1438 1437 1147 1104 931 930 888 887 929 886 28 747 1437 1319 1318 2285 2888 2886 751 1445 1443 1320 2279 2277 2884 752 750 1446 1444 1148 1147 1105 1104 748 57 1439 1438 1146 1103 25 749 748 747 57 1439 1438 1437 1147 1146 1104 1103 752 751 1446 1445 1444 1443 1148 1105 932 931 889 888 930 887 27 749 1445 1443 1320 1319 2279 2277 2886 2884 753 1451 1321 2271 2882 754 752 1453 1452 1149 1148 1106 1105 750 1446 1444 1147 1104 24 751 750 749 1446 1445 1444 1443 1148 1147 1105 1104 754 753 1453 1452 1451 1149 1106 933 932 890 889 931 888 28 751 1451 1321 1320 2271 2884 2882 755 1459 1457 1355 1322 2265 2263 2880 756 754 1460 1458 1150 1149 1107 1106 752 1453 1452 1148 1105 24 753 752 751 1453 1452 1451 1149 1148 1106 1105 756 755 1460 1459 1458 1457 1150 1107 934 933 891 890 932 889 30 753 1459 1457 1355 1322 1321 2265 2263 2882 2880 757 1467 1465 1323 2257 2255 2878 758 756 1468 1466 1151 1150 1108 1107 754 1460 1458 1149 1106 25 755 754 753 1460 1459 1458 1457 1150 1149 1107 1106 758 757 1468 1467 1466 1465 1151 1108 935 934 892 891 933 890 28 755 1467 1465 1355 1323 1322 2257 2255 2880 2878 759 1473 1324 2249 2876 760 758 1475 1474 1152 1151 1109 1108 756 1468 1466 1150 1107 24 757 756 755 1468 1467 1466 1465 1151 1150 1108 1107 760 759 1475 1474 1473 1152 1109 936 935 893 892 934 891 28 757 1473 1324 1323 2249 2878 2876 761 1481 1479 1356 1325 2243 2241 2874 762 760 1482 1480 1153 1152 1110 1109 758 1475 1474 1151 1108 24 759 758 757 1475 1474 1473 1152 1151 1109 1108 762 761 1482 1481 1480 1479 1153 1110 937 936 894 893 935 892 30 759 1481 1479 1356 1325 1324 2243 2241 2876 2874 763 1491 1489 1326 2233 2231 2872 764 762 1492 1490 1154 1153 1111 1110 760 1482 1480 1152 1109 25 761 760 759 1482 1481 1480 1479 1153 1152 1110 1109 764 763 1492 1491 1490 1489 1154 1111 938 937 895 894 936 893 28 761 1491 1489 1356 1326 1325 2233 2231 2874 2872 765 1499 1327 2223 2870 766 764 1501 1500 1155 1154 1112 1111 762 1492 1490 1153 1110 24 763 762 761 1492 1491 1490 1489 1154 1153 1111 1110 766 765 1501 1500 1499 1155 1112 939 938 896 895 937 894 28 763 1499 1327 1326 2223 2872 2870 767 1507 1505 1357 1328 2217 2215 2868 768 766 1508 1506 1156 1155 1113 1112 764 1501 1500 1154 1111 24 765 764 763 1501 1500 1499 1155 1154 1112 1111 768 767 1508 1507 1506 1505 1156 1113 940 939 897 896 938 895 30 765 1507 1505 1357 1328 1327 2217 2215 2870 2868 769 1515 1513 1329 2209 2207 2866 770 768 1516 1514 1157 1156 1114 1113 766 1508 1506 1155 1112 25 767 766 765 1508 1507 1506 1505 1156 1155 1113 1112 770 769 1516 1515 1514 1513 1157 1114 941 940 898 897 939 896 28 767 1515 1513 1357 1329 1328 2209 2207 2868 2866 771 1521 1330 2201 2864 772 770 1523 1522 1158 1157 1115 1114 768 1516 1514 1156 1113 24 769 768 767 1516 1515 1514 1513 1157 1156 1114 1113 772 771 1523 1522 1521 1158 1115 942 941 899 898 940 897 28 769 1521 1330 1329 2201 2866 2864 773 1529 1527 1358 1331 2195 2193 2862 774 772 1530 1528 1159 1158 1116 1115 770 1523 1522 1157 1114 24 771 770 769 1523 1522 1521 1158 1157 1115 1114 774 773 1530 1529 1528 1527 1159 1116 943 942 900 899 941 898 30 771 1529 1527 1358 1331 1330 2195 2193 2864 2862 775 1539 1537 1332 2185 2183 2860 776 774 1540 1538 1160 1159 1117 1116 772 1530 1528 1158 1115 25 773 772 771 1530 1529 1528 1527 1159 1158 1116 1115 776 775 1540 1539 1538 1537 1160 1117 944 943 901 900 942 899 28 773 1539 1537 1358 1332 1331 2185 2183 2862 2860 777 1545 1333 2177 2858 778 776 1547 1546 1161 1160 1118 1117 774 1540 1538 1159 1116 24 775 774 773 1540 1539 1538 1537 1160 1159 1117 1116 778 777 1547 1546 1545 1161 1118 945 944 902 901 943 900 28 775 1545 1333 1332 2177 2860 2858 779 1553 1551 1359 1334 2171 2169 2856 780 778 1554 1552 1162 1161 1119 1118 776 1547 1546 1160 1117 24 777 776 775 1547 1546 1545 1161 1160 1118 1117 780 779 1554 1553 1552 1551 1162 1119 946 945 903 902 944 901 30 777 1553 1551 1359 1334 1333 2171 2169 2858 2856 781 1561 1559 1335 2163 2161 2854 782 780 1562 1560 1163 1162 1120 1119 778 1554 1552 1161 1118 25 779 778 777 1554 1553 1552 1551 1162 1161 1119 1118 782 781 1562 1561 1560 1559 1163 1120 947 946 904 903 945 902 28 779 1561 1559 1359 1335 1334 2163 2161 2856 2854 783 1567 1336 2155 2852 784 782 1569 1568 1164 1163 1121 1120 780 1562 1560 1162 1119 24 781 780 779 1562 1561 1560 1559 1163 1162 1120 1119 784 783 1569 1568 1567 1164 1121 948 947 905 904 946 903 28 781 1567 1336 1335 2155 2854 2852 785 1575 1573 1360 1337 2149 2147 2850 786 784 1576 1574 1165 1164 1122 1121 782 1569 1568 1163 1120 24 783 782 781 1569 1568 1567 1164 1163 1121 1120 786 785 1576 1575 1574 1573 1165 1122 949 948 906 905 947 904 30 783 1575 1573 1360 1337 1336 2149 2147 2852 2850 787 1585 1583 1338 2139 2137 2848 788 786 1586 1584 1166 1165 1123 1122 784 1576 1574 1164 1121 25 785 784 783 1576 1575 1574 1573 1165 1164 1122 1121 788 787 1586 1585 1584 1583 1166 1123 950 949 907 906 948 905 28 785 1585 1583 1360 1338 1337 2139 2137 2850 2848 789 1591 1339 2131 2846 790 788 1593 1592 1167 1166 1124 1123 786 1586 1584 1165 1122 24 787 786 785 1586 1585 1584 1583 1166 1165 1123 1122 790 789 1593 1592 1591 1167 1124 951 950 908 907 949 906 28 787 1591 1339 1338 2131 2848 2846 791 1599 1597 1361 1340 2125 2123 2844 792 790 1600 1598 1168 1167 1125 1124 788 1593 1592 1166 1123 24 789 788 787 1593 1592 1591 1167 1166 1124 1123 792 791 1600 1599 1598 1597 1168 1125 952 951 909 908 950 907 30 789 1599 1597 1361 1340 1339 2125 2123 2846 2844 793 1607 1605 1341 2117 2115 2842 794 792 1608 1606 1169 1168 1126 1125 790 1600 1598 1167 1124 25 791 790 789 1600 1599 1598 1597 1168 1167 1125 1124 794 793 1608 1607 1606 1605 1169 1126 953 952 910 909 951 908 28 791 1607 1605 1361 1341 1340 2117 2115 2844 2842 795 1613 1342 2109 2840 796 794 1615 1614 1170 1169 1127 1126 792 1608 1606 1168 1125 24 793 792 791 1608 1607 1606 1605 1169 1168 1126 1125 796 795 1615 1614 1613 1170 1127 954 953 911 910 952 909 28 793 1613 1342 1341 2109 2842 2840 797 1621 1619 1362 1343 2103 2101 2838 798 796 1622 1620 1171 1170 1128 1127 794 1615 1614 1169 1126 24 795 794 793 1615 1614 1613 1170 1169 1127 1126 798 797 1622 1621 1620 1619 1171 1128 955 954 912 911 953 910 30 795 1621 1619 1362 1343 1342 2103 2101 2840 2838 799 1631 1629 1344 2093 2091 2836 800 798 1632 1630 1172 1171 1129 1128 796 1622 1620 1170 1127 25 797 796 795 1622 1621 1620 1619 1171 1170 1128 1127 800 799 1632 1631 1630 1629 1172 1129 956 955 913 912 954 911 28 797 1631 1629 1362 1344 1343 2093 2091 2838 2836 801 1637 1345 2085 2834 802 800 1639 1638 1173 1172 1130 1129 798 1632 1630 1171 1128 24 799 798 797 1632 1631 1630 1629 1172 1171 1129 1128 802 801 1639 1638 1637 1173 1130 957 956 914 913 955 912 28 799 1637 1345 1344 2085 2836 2834 803 1645 1643 1363 1346 2079 2077 2832 804 802 1646 1644 1174 1173 1131 1130 800 1639 1638 1172 1129 24 801 800 799 1639 1638 1637 1173 1172 1130 1129 804 803 1646 1645 1644 1643 1174 1131 958 957 915 914 956 913 30 801 1645 1643 1363 1346 1345 2079 2077 2834 2832 805 1653 1651 1347 2071 2069 2830 806 804 1654 1652 1175 1174 1132 1131 802 1646 1644 1173 1130 25 803 802 801 1646 1645 1644 1643 1174 1173 1131 1130 806 805 1654 1653 1652 1651 1175 1132 959 958 916 915 957 914 28 803 1653 1651 1363 1347 1346 2071 2069 2832 2830 807 1659 1348 2063 2828 808 806 1661 1660 1176 1175 1133 1132 804 1654 1652 1174 1131 24 805 804 803 1654 1653 1652 1651 1175 1174 1132 1131 808 807 1661 1660 1659 1176 1133 960 959 917 916 958 915 28 805 1659 1348 1347 2063 2830 2828 809 1667 1665 1364 1349 2057 2055 2826 810 808 1668 1666 1177 1176 1134 1133 806 1661 1660 1175 1132 24 807 806 805 1661 1660 1659 1176 1175 1133 1132 810 809 1668 1667 1666 1665 1177 1134 961 960 918 917 959 916 30 807 1667 1665 1364 1349 1348 2057 2055 2828 2826 811 1677 1675 1350 2047 2045 2824 812 810 1678 1676 1178 1177 1135 1134 808 1668 1666 1176 1133 25 809 808 807 1668 1667 1666 1665 1177 1176 1134 1133 812 811 1678 1677 1676 1675 1178 1135 962 961 919 918 960 917 28 809 1677 1675 1364 1350 1349 2047 2045 2826 2824 813 1683 1351 2039 2822 814 812 1685 1684 1179 1178 1136 1135 810 1678 1676 1177 1134 24 811 810 809 1678 1677 1676 1675 1178 1177 1135 1134 814 813 1685 1684 1683 1179 1136 963 962 920 919 961 918 28 811 1683 1351 1350 2039 2824 2822 815 1691 1689 1365 1352 2033 2031 2820 816 814 1692 1690 1180 1179 1137 1136 812 1685 1684 1178 1135 24 813 812 811 1685 1684 1683 1179 1178 1136 1135 816 815 1692 1691 1690 1689 1180 1137 964 963 921 920 962 919 30 813 1691 1689 1365 1352 1351 2033 2031 2822 2820 817 1701 1699 1353 2023 2021 2818 818 816 1702 1700 1181 1180 1138 1137 814 1692 1690 1179 1136 25 815 814 813 1692 1691 1690 1689 1180 1179 1137 1136 818 817 1702 1701 1700 1699 1181 1138 965 964 922 921 963 920 28 815 1701 1699 1365 1353 1352 2023 2021 2820 2818 1709 1354 878 2013 2757 818 1711 1710 1182 1181 1139 1138 879 816 1702 1700 1180 1137 24 817 816 815 1702 1701 1700 1699 1181 1180 1138 1137 1711 1710 1709 1182 1139 879 878 966 965 923 922 964 921 18 503 464 410 1312 3213 3132 2816 820 1399 1313 2323 2815 1400 1098 1097 882 881 416 20 819 1399 1313 1312 2323 2816 2815 821 1407 1314 2315 2814 1408 1099 1098 883 882 1400 1097 881 20 820 1407 1314 1313 2315 2815 2814 822 1413 1315 2309 2813 1414 1100 1099 884 883 1408 1098 882 20 821 1413 1315 1314 2309 2814 2813 823 1419 1316 2303 2812 1420 1101 1100 885 884 1414 1099 883 20 822 1419 1316 1315 2303 2813 2812 824 1425 1317 2297 2811 1426 1102 1101 886 885 1420 1100 884 20 823 1425 1317 1316 2297 2812 2811 825 1431 1318 2291 2810 1432 1103 1102 887 886 1426 1101 885 20 824 1431 1318 1317 2291 2811 2810 826 1437 1319 2285 2809 1438 1104 1103 888 887 1432 1102 886 20 825 1437 1319 1318 2285 2810 2809 827 1443 1320 2279 2808 1444 1105 1104 889 888 1438 1103 887 20 826 1443 1320 1319 2279 2809 2808 828 1451 1321 2271 2807 1452 1106 1105 890 889 1444 1104 888 20 827 1451 1321 1320 2271 2808 2807 829 1457 1322 2265 2806 1458 1107 1106 891 890 1452 1105 889 20 828 1457 1322 1321 2265 2807 2806 830 1465 1323 2257 2805 1466 1108 1107 892 891 1458 1106 890 20 829 1465 1323 1322 2257 2806 2805 831 1473 1324 2249 2804 1474 1109 1108 893 892 1466 1107 891 20 830 1473 1324 1323 2249 2805 2804 832 1479 1325 2243 2803 1480 1110 1109 894 893 1474 1108 892 20 831 1479 1325 1324 2243 2804 2803 833 1489 1326 2233 2802 1490 1111 1110 895 894 1480 1109 893 20 832 1489 1326 1325 2233 2803 2802 834 1499 1327 2223 2801 1500 1112 1111 896 895 1490 1110 894 20 833 1499 1327 1326 2223 2802 2801 835 1505 1328 2217 2800 1506 1113 1112 897 896 1500 1111 895 20 834 1505 1328 1327 2217 2801 2800 836 1513 1329 2209 2799 1514 1114 1113 898 897 1506 1112 896 20 835 1513 1329 1328 2209 2800 2799 837 1521 1330 2201 2798 1522 1115 1114 899 898 1514 1113 897 20 836 1521 1330 1329 2201 2799 2798 838 1527 1331 2195 2797 1528 1116 1115 900 899 1522 1114 898 20 837 1527 1331 1330 2195 2798 2797 839 1537 1332 2185 2796 1538 1117 1116 901 900 1528 1115 899 20 838 1537 1332 1331 2185 2797 2796 840 1545 1333 2177 2795 1546 1118 1117 902 901 1538 1116 900 20 839 1545 1333 1332 2177 2796 2795 841 1551 1334 2171 2794 1552 1119 1118 903 902 1546 1117 901 20 840 1551 1334 1333 2171 2795 2794 842 1559 1335 2163 2793 1560 1120 1119 904 903 1552 1118 902 20 841 1559 1335 1334 2163 2794 2793 843 1567 1336 2155 2792 1568 1121 1120 905 904 1560 1119 903 20 842 1567 1336 1335 2155 2793 2792 844 1573 1337 2149 2791 1574 1122 1121 906 905 1568 1120 904 20 843 1573 1337 1336 2149 2792 2791 845 1583 1338 2139 2790 1584 1123 1122 907 906 1574 1121 905 20 844 1583 1338 1337 2139 2791 2790 846 1591 1339 2131 2789 1592 1124 1123 908 907 1584 1122 906 20 845 1591 1339 1338 2131 2790 2789 847 1597 1340 2125 2788 1598 1125 1124 909 908 1592 1123 907 20 846 1597 1340 1339 2125 2789 2788 848 1605 1341 2117 2787 1606 1126 1125 910 909 1598 1124 908 20 847 1605 1341 1340 2117 2788 2787 849 1613 1342 2109 2786 1614 1127 1126 911 910 1606 1125 909 20 848 1613 1342 1341 2109 2787 2786 850 1619 1343 2103 2785 1620 1128 1127 912 911 1614 1126 910 20 849 1619 1343 1342 2103 2786 2785 851 1629 1344 2093 2784 1630 1129 1128 913 912 1620 1127 911 20 850 1629 1344 1343 2093 2785 2784 852 1637 1345 2085 2783 1638 1130 1129 914 913 1630 1128 912 20 851 1637 1345 1344 2085 2784 2783 853 1643 1346 2079 2782 1644 1131 1130 915 914 1638 1129 913 20 852 1643 1346 1345 2079 2783 2782 854 1651 1347 2071 2781 1652 1132 1131 916 915 1644 1130 914 20 853 1651 1347 1346 2071 2782 2781 855 1659 1348 2063 2780 1660 1133 1132 917 916 1652 1131 915 20 854 1659 1348 1347 2063 2781 2780 856 1665 1349 2057 2779 1666 1134 1133 918 917 1660 1132 916 20 855 1665 1349 1348 2057 2780 2779 857 1675 1350 2047 2778 1676 1135 1134 919 918 1666 1133 917 20 856 1675 1350 1349 2047 2779 2778 1683 1351 858 2039 2777 1684 1136 1135 920 919 1676 1134 918 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-1.adm000066400000000000000000007100471514310134000257470ustar00rootroot000000000000003 4 1 3431 34920 858 40620 0 000 48 15295 15296 15297 15298 15299 15300 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15307 15308 15309 15310 15311 15312 15301 15302 15303 15304 15305 15306 48 15325 15326 15327 15328 15329 15330 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15337 15338 15339 15340 15341 15342 15331 15332 15333 15334 15335 15336 48 15355 15356 15357 15358 15359 15360 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15367 15368 15369 15370 15371 15372 15361 15362 15363 15364 15365 15366 48 15385 15386 15387 15388 15389 15390 15409 15410 15411 15412 15413 15414 3202 3203 3204 3205 3206 3207 3244 3245 3246 3247 3248 3249 3232 3233 3234 3235 3236 3237 15415 15416 15417 15418 15419 15420 15397 15398 15399 15400 15401 15402 15391 15392 15393 15394 15395 15396 48 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 138 139 140 141 142 143 132 133 134 135 136 137 126 127 128 129 130 131 15445 15446 15447 15448 15449 15450 48 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 210 211 212 213 214 215 204 205 206 207 208 209 198 199 200 201 202 203 15475 15476 15477 15478 15479 15480 48 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 246 247 248 249 250 251 240 241 242 243 244 245 234 235 236 237 238 239 15505 15506 15507 15508 15509 15510 48 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 282 283 284 285 286 287 276 277 278 279 280 281 270 271 272 273 274 275 15535 15536 15537 15538 15539 15540 48 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 318 319 320 321 322 323 312 313 314 315 316 317 306 307 308 309 310 311 15565 15566 15567 15568 15569 15570 48 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 354 355 356 357 358 359 348 349 350 351 352 353 342 343 344 345 346 347 15595 15596 15597 15598 15599 15600 48 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 390 391 392 393 394 395 384 385 386 387 388 389 378 379 380 381 382 383 15625 15626 15627 15628 15629 15630 48 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 426 427 428 429 430 431 420 421 422 423 424 425 414 415 416 417 418 419 15655 15656 15657 15658 15659 15660 48 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 462 463 464 465 466 467 456 457 458 459 460 461 450 451 452 453 454 455 15685 15686 15687 15688 15689 15690 48 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 498 499 500 501 502 503 492 493 494 495 496 497 486 487 488 489 490 491 15715 15716 15717 15718 15719 15720 48 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 534 535 536 537 538 539 528 529 530 531 532 533 522 523 524 525 526 527 15745 15746 15747 15748 15749 15750 48 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 570 571 572 573 574 575 564 565 566 567 568 569 558 559 560 561 562 563 15775 15776 15777 15778 15779 15780 48 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 606 607 608 609 610 611 600 601 602 603 604 605 594 595 596 597 598 599 15805 15806 15807 15808 15809 15810 48 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 15811 15812 15813 15814 15815 15816 12211 12212 12213 12214 12215 12216 12223 12224 12225 12226 12227 12228 12187 12188 12189 12190 12191 12192 15817 15818 15819 15820 15821 15822 36 12241 12242 12243 12244 12245 12246 12211 12212 12213 12214 12215 12216 5059 5060 5061 5062 5063 5064 12253 12254 12255 12256 12257 12258 15811 15812 15813 15814 15815 15816 15823 15824 15825 15826 15827 15828 36 10573 10574 10575 10576 10577 10578 10543 10544 10545 10546 10547 10548 5329 5330 5331 5332 5333 5334 10585 10586 10587 10588 10589 10590 15835 15836 15837 15838 15839 15840 15829 15830 15831 15832 15833 15834 48 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 15841 15842 15843 15844 15845 15846 3046 3047 3048 3049 3050 3051 3058 3059 3060 3061 3062 3063 3016 3017 3018 3019 3020 3021 15847 15848 15849 15850 15851 15852 36 14137 14138 14139 14140 14141 14142 3046 3047 3048 3049 3050 3051 14119 14120 14121 14122 14123 14124 15853 15854 15855 15856 15857 15858 15841 15842 15843 15844 15845 15846 14131 14132 14133 14134 14135 14136 36 12175 12176 12177 12178 12179 12180 2806 2807 2808 2809 2810 2811 12163 12164 12165 12166 12167 12168 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 12169 12170 12171 12172 12173 12174 48 5191 5192 5193 5194 5195 5196 14173 14174 14175 14176 14177 14178 14167 14168 14169 14170 14171 14172 15871 15872 15873 15874 15875 15876 12241 12242 12243 12244 12245 12246 15823 15824 15825 15826 15827 15828 5059 5060 5061 5062 5063 5064 5287 5288 5289 5290 5291 5292 48 14167 14168 14169 14170 14171 14172 14203 14204 14205 14206 14207 14208 14197 14198 14199 14200 14201 14202 15877 15878 15879 15880 15881 15882 12235 12236 12237 12238 12239 12240 12247 12248 12249 12250 12251 12252 12241 12242 12243 12244 12245 12246 15871 15872 15873 15874 15875 15876 48 14197 14198 14199 14200 14201 14202 14233 14234 14235 14236 14237 14238 14227 14228 14229 14230 14231 14232 15883 15884 15885 15886 15887 15888 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12235 12236 12237 12238 12239 12240 15877 15878 15879 15880 15881 15882 48 14227 14228 14229 14230 14231 14232 14263 14264 14265 14266 14267 14268 14257 14258 14259 14260 14261 14262 15889 15890 15891 15892 15893 15894 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12289 12290 12291 12292 12293 12294 15883 15884 15885 15886 15887 15888 48 14257 14258 14259 14260 14261 14262 14293 14294 14295 14296 14297 14298 14287 14288 14289 14290 14291 14292 15895 15896 15897 15898 15899 15900 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12331 12332 12333 12334 12335 12336 15889 15890 15891 15892 15893 15894 48 14287 14288 14289 14290 14291 14292 14323 14324 14325 14326 14327 14328 14317 14318 14319 14320 14321 14322 15901 15902 15903 15904 15905 15906 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12373 12374 12375 12376 12377 12378 15895 15896 15897 15898 15899 15900 48 14317 14318 14319 14320 14321 14322 14353 14354 14355 14356 14357 14358 14347 14348 14349 14350 14351 14352 15907 15908 15909 15910 15911 15912 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12415 12416 12417 12418 12419 12420 15901 15902 15903 15904 15905 15906 48 14347 14348 14349 14350 14351 14352 14383 14384 14385 14386 14387 14388 14377 14378 14379 14380 14381 14382 15913 15914 15915 15916 15917 15918 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12457 12458 12459 12460 12461 12462 15907 15908 15909 15910 15911 15912 48 14377 14378 14379 14380 14381 14382 14413 14414 14415 14416 14417 14418 14407 14408 14409 14410 14411 14412 15919 15920 15921 15922 15923 15924 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12505 12506 12507 12508 12509 12510 15913 15914 15915 15916 15917 15918 48 14407 14408 14409 14410 14411 14412 14443 14444 14445 14446 14447 14448 14437 14438 14439 14440 14441 14442 15925 15926 15927 15928 15929 15930 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12553 12554 12555 12556 12557 12558 15919 15920 15921 15922 15923 15924 48 14437 14438 14439 14440 14441 14442 14473 14474 14475 14476 14477 14478 14467 14468 14469 14470 14471 14472 15931 15932 15933 15934 15935 15936 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12601 12602 12603 12604 12605 12606 15925 15926 15927 15928 15929 15930 48 14467 14468 14469 14470 14471 14472 14503 14504 14505 14506 14507 14508 14497 14498 14499 14500 14501 14502 15937 15938 15939 15940 15941 15942 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12649 12650 12651 12652 12653 12654 15931 15932 15933 15934 15935 15936 48 14497 14498 14499 14500 14501 14502 14533 14534 14535 14536 14537 14538 14527 14528 14529 14530 14531 14532 15943 15944 15945 15946 15947 15948 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12697 12698 12699 12700 12701 12702 15937 15938 15939 15940 15941 15942 48 14527 14528 14529 14530 14531 14532 14563 14564 14565 14566 14567 14568 14557 14558 14559 14560 14561 14562 15949 15950 15951 15952 15953 15954 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12745 12746 12747 12748 12749 12750 15943 15944 15945 15946 15947 15948 48 14557 14558 14559 14560 14561 14562 14593 14594 14595 14596 14597 14598 14587 14588 14589 14590 14591 14592 15955 15956 15957 15958 15959 15960 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12793 12794 12795 12796 12797 12798 15949 15950 15951 15952 15953 15954 48 14587 14588 14589 14590 14591 14592 14623 14624 14625 14626 14627 14628 14617 14618 14619 14620 14621 14622 15961 15962 15963 15964 15965 15966 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12841 12842 12843 12844 12845 12846 15955 15956 15957 15958 15959 15960 48 14617 14618 14619 14620 14621 14622 14653 14654 14655 14656 14657 14658 14647 14648 14649 14650 14651 14652 15967 15968 15969 15970 15971 15972 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12889 12890 12891 12892 12893 12894 15961 15962 15963 15964 15965 15966 48 14647 14648 14649 14650 14651 14652 14683 14684 14685 14686 14687 14688 14677 14678 14679 14680 14681 14682 15973 15974 15975 15976 15977 15978 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12937 12938 12939 12940 12941 12942 15967 15968 15969 15970 15971 15972 48 14677 14678 14679 14680 14681 14682 14713 14714 14715 14716 14717 14718 14707 14708 14709 14710 14711 14712 15979 15980 15981 15982 15983 15984 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 12985 12986 12987 12988 12989 12990 15973 15974 15975 15976 15977 15978 48 14707 14708 14709 14710 14711 14712 14743 14744 14745 14746 14747 14748 14737 14738 14739 14740 14741 14742 15985 15986 15987 15988 15989 15990 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13033 13034 13035 13036 13037 13038 15979 15980 15981 15982 15983 15984 48 14737 14738 14739 14740 14741 14742 14773 14774 14775 14776 14777 14778 14767 14768 14769 14770 14771 14772 15991 15992 15993 15994 15995 15996 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13081 13082 13083 13084 13085 13086 15985 15986 15987 15988 15989 15990 48 14767 14768 14769 14770 14771 14772 14803 14804 14805 14806 14807 14808 14797 14798 14799 14800 14801 14802 15997 15998 15999 16000 16001 16002 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13129 13130 13131 13132 13133 13134 15991 15992 15993 15994 15995 15996 48 14797 14798 14799 14800 14801 14802 14833 14834 14835 14836 14837 14838 14827 14828 14829 14830 14831 14832 16003 16004 16005 16006 16007 16008 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13177 13178 13179 13180 13181 13182 15997 15998 15999 16000 16001 16002 48 14827 14828 14829 14830 14831 14832 14863 14864 14865 14866 14867 14868 14857 14858 14859 14860 14861 14862 16009 16010 16011 16012 16013 16014 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13225 13226 13227 13228 13229 13230 16003 16004 16005 16006 16007 16008 48 14857 14858 14859 14860 14861 14862 14893 14894 14895 14896 14897 14898 14887 14888 14889 14890 14891 14892 16015 16016 16017 16018 16019 16020 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13273 13274 13275 13276 13277 13278 16009 16010 16011 16012 16013 16014 48 14887 14888 14889 14890 14891 14892 14923 14924 14925 14926 14927 14928 14917 14918 14919 14920 14921 14922 16021 16022 16023 16024 16025 16026 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13321 13322 13323 13324 13325 13326 16015 16016 16017 16018 16019 16020 48 14917 14918 14919 14920 14921 14922 14953 14954 14955 14956 14957 14958 14947 14948 14949 14950 14951 14952 16027 16028 16029 16030 16031 16032 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13369 13370 13371 13372 13373 13374 16021 16022 16023 16024 16025 16026 48 14947 14948 14949 14950 14951 14952 14983 14984 14985 14986 14987 14988 14977 14978 14979 14980 14981 14982 16033 16034 16035 16036 16037 16038 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13417 13418 13419 13420 13421 13422 16027 16028 16029 16030 16031 16032 48 14977 14978 14979 14980 14981 14982 15013 15014 15015 15016 15017 15018 15007 15008 15009 15010 15011 15012 16039 16040 16041 16042 16043 16044 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13465 13466 13467 13468 13469 13470 16033 16034 16035 16036 16037 16038 48 15007 15008 15009 15010 15011 15012 15043 15044 15045 15046 15047 15048 15037 15038 15039 15040 15041 15042 16045 16046 16047 16048 16049 16050 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13513 13514 13515 13516 13517 13518 16039 16040 16041 16042 16043 16044 48 15037 15038 15039 15040 15041 15042 15073 15074 15075 15076 15077 15078 15067 15068 15069 15070 15071 15072 16051 16052 16053 16054 16055 16056 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13561 13562 13563 13564 13565 13566 16045 16046 16047 16048 16049 16050 48 15067 15068 15069 15070 15071 15072 15103 15104 15105 15106 15107 15108 15097 15098 15099 15100 15101 15102 16057 16058 16059 16060 16061 16062 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13609 13610 13611 13612 13613 13614 16051 16052 16053 16054 16055 16056 48 15097 15098 15099 15100 15101 15102 15133 15134 15135 15136 15137 15138 15127 15128 15129 15130 15131 15132 16063 16064 16065 16066 16067 16068 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13657 13658 13659 13660 13661 13662 16057 16058 16059 16060 16061 16062 48 15127 15128 15129 15130 15131 15132 15163 15164 15165 15166 15167 15168 15157 15158 15159 15160 15161 15162 16069 16070 16071 16072 16073 16074 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13705 13706 13707 13708 13709 13710 16063 16064 16065 16066 16067 16068 48 15157 15158 15159 15160 15161 15162 15193 15194 15195 15196 15197 15198 15187 15188 15189 15190 15191 15192 16075 16076 16077 16078 16079 16080 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13753 13754 13755 13756 13757 13758 16069 16070 16071 16072 16073 16074 48 15187 15188 15189 15190 15191 15192 15223 15224 15225 15226 15227 15228 15217 15218 15219 15220 15221 15222 16081 16082 16083 16084 16085 16086 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13801 13802 13803 13804 13805 13806 16075 16076 16077 16078 16079 16080 48 15217 15218 15219 15220 15221 15222 15253 15254 15255 15256 15257 15258 15247 15248 15249 15250 15251 15252 16087 16088 16089 16090 16091 16092 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13849 13850 13851 13852 13853 13854 16081 16082 16083 16084 16085 16086 48 15247 15248 15249 15250 15251 15252 15283 15284 15285 15286 15287 15288 15277 15278 15279 15280 15281 15282 16093 16094 16095 16096 16097 16098 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13897 13898 13899 13900 13901 13902 16087 16088 16089 16090 16091 16092 48 15277 15278 15279 15280 15281 15282 15313 15314 15315 15316 15317 15318 15307 15308 15309 15310 15311 15312 16099 16100 16101 16102 16103 16104 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 13945 13946 13947 13948 13949 13950 16093 16094 16095 16096 16097 16098 48 15307 15308 15309 15310 15311 15312 15343 15344 15345 15346 15347 15348 15337 15338 15339 15340 15341 15342 16105 16106 16107 16108 16109 16110 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 13993 13994 13995 13996 13997 13998 16099 16100 16101 16102 16103 16104 48 15337 15338 15339 15340 15341 15342 15373 15374 15375 15376 15377 15378 15367 15368 15369 15370 15371 15372 16111 16112 16113 16114 16115 16116 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14041 14042 14043 14044 14045 14046 16105 16106 16107 16108 16109 16110 48 15367 15368 15369 15370 15371 15372 15403 15404 15405 15406 15407 15408 15397 15398 15399 15400 15401 15402 16117 16118 16119 16120 16121 16122 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14089 14090 14091 14092 14093 14094 16111 16112 16113 16114 16115 16116 48 15397 15398 15399 15400 15401 15402 15415 15416 15417 15418 15419 15420 3232 3233 3234 3235 3236 3237 3358 3359 3360 3361 3362 3363 3046 3047 3048 3049 3050 3051 15853 15854 15855 15856 15857 15858 14137 14138 14139 14140 14141 14142 16117 16118 16119 16120 16121 16122 48 5059 5060 5061 5062 5063 5064 15823 15824 15825 15826 15827 15828 12241 12242 12243 12244 12245 12246 16123 16124 16125 16126 16127 16128 10573 10574 10575 10576 10577 10578 15829 15830 15831 15832 15833 15834 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 48 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12235 12236 12237 12238 12239 12240 16129 16130 16131 16132 16133 16134 10567 10568 10569 10570 10571 10572 10579 10580 10581 10582 10583 10584 10573 10574 10575 10576 10577 10578 16123 16124 16125 16126 16127 16128 48 12235 12236 12237 12238 12239 12240 12295 12296 12297 12298 12299 12300 12289 12290 12291 12292 12293 12294 16135 16136 16137 16138 16139 16140 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10567 10568 10569 10570 10571 10572 16129 16130 16131 16132 16133 16134 48 12289 12290 12291 12292 12293 12294 12337 12338 12339 12340 12341 12342 12331 12332 12333 12334 12335 12336 16141 16142 16143 16144 16145 16146 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10639 10640 10641 10642 10643 10644 16135 16136 16137 16138 16139 16140 48 12331 12332 12333 12334 12335 12336 12379 12380 12381 12382 12383 12384 12373 12374 12375 12376 12377 12378 16147 16148 16149 16150 16151 16152 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10657 10658 10659 10660 10661 10662 16141 16142 16143 16144 16145 16146 48 12373 12374 12375 12376 12377 12378 12421 12422 12423 12424 12425 12426 12415 12416 12417 12418 12419 12420 16153 16154 16155 16156 16157 16158 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10699 10700 10701 10702 10703 10704 16147 16148 16149 16150 16151 16152 48 12415 12416 12417 12418 12419 12420 12463 12464 12465 12466 12467 12468 12457 12458 12459 12460 12461 12462 16159 16160 16161 16162 16163 16164 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10729 10730 10731 10732 10733 10734 16153 16154 16155 16156 16157 16158 48 12457 12458 12459 12460 12461 12462 12511 12512 12513 12514 12515 12516 12505 12506 12507 12508 12509 12510 16165 16166 16167 16168 16169 16170 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10765 10766 10767 10768 10769 10770 16159 16160 16161 16162 16163 16164 48 12505 12506 12507 12508 12509 12510 12559 12560 12561 12562 12563 12564 12553 12554 12555 12556 12557 12558 16171 16172 16173 16174 16175 16176 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10825 10826 10827 10828 10829 10830 16165 16166 16167 16168 16169 16170 48 12553 12554 12555 12556 12557 12558 12607 12608 12609 12610 12611 12612 12601 12602 12603 12604 12605 12606 16177 16178 16179 16180 16181 16182 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10855 10856 10857 10858 10859 10860 16171 16172 16173 16174 16175 16176 48 12601 12602 12603 12604 12605 12606 12655 12656 12657 12658 12659 12660 12649 12650 12651 12652 12653 12654 16183 16184 16185 16186 16187 16188 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10885 10886 10887 10888 10889 10890 16177 16178 16179 16180 16181 16182 48 12649 12650 12651 12652 12653 12654 12703 12704 12705 12706 12707 12708 12697 12698 12699 12700 12701 12702 16189 16190 16191 16192 16193 16194 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10945 10946 10947 10948 10949 10950 16183 16184 16185 16186 16187 16188 48 12697 12698 12699 12700 12701 12702 12751 12752 12753 12754 12755 12756 12745 12746 12747 12748 12749 12750 16195 16196 16197 16198 16199 16200 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 10975 10976 10977 10978 10979 10980 16189 16190 16191 16192 16193 16194 48 12745 12746 12747 12748 12749 12750 12799 12800 12801 12802 12803 12804 12793 12794 12795 12796 12797 12798 16201 16202 16203 16204 16205 16206 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11005 11006 11007 11008 11009 11010 16195 16196 16197 16198 16199 16200 48 12793 12794 12795 12796 12797 12798 12847 12848 12849 12850 12851 12852 12841 12842 12843 12844 12845 12846 16207 16208 16209 16210 16211 16212 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11065 11066 11067 11068 11069 11070 16201 16202 16203 16204 16205 16206 48 12841 12842 12843 12844 12845 12846 12895 12896 12897 12898 12899 12900 12889 12890 12891 12892 12893 12894 16213 16214 16215 16216 16217 16218 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11095 11096 11097 11098 11099 11100 16207 16208 16209 16210 16211 16212 48 12889 12890 12891 12892 12893 12894 12943 12944 12945 12946 12947 12948 12937 12938 12939 12940 12941 12942 16219 16220 16221 16222 16223 16224 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11125 11126 11127 11128 11129 11130 16213 16214 16215 16216 16217 16218 48 12937 12938 12939 12940 12941 12942 12991 12992 12993 12994 12995 12996 12985 12986 12987 12988 12989 12990 16225 16226 16227 16228 16229 16230 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11185 11186 11187 11188 11189 11190 16219 16220 16221 16222 16223 16224 48 12985 12986 12987 12988 12989 12990 13039 13040 13041 13042 13043 13044 13033 13034 13035 13036 13037 13038 16231 16232 16233 16234 16235 16236 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11215 11216 11217 11218 11219 11220 16225 16226 16227 16228 16229 16230 48 13033 13034 13035 13036 13037 13038 13087 13088 13089 13090 13091 13092 13081 13082 13083 13084 13085 13086 16237 16238 16239 16240 16241 16242 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11245 11246 11247 11248 11249 11250 16231 16232 16233 16234 16235 16236 48 13081 13082 13083 13084 13085 13086 13135 13136 13137 13138 13139 13140 13129 13130 13131 13132 13133 13134 16243 16244 16245 16246 16247 16248 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11305 11306 11307 11308 11309 11310 16237 16238 16239 16240 16241 16242 48 13129 13130 13131 13132 13133 13134 13183 13184 13185 13186 13187 13188 13177 13178 13179 13180 13181 13182 16249 16250 16251 16252 16253 16254 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11335 11336 11337 11338 11339 11340 16243 16244 16245 16246 16247 16248 48 13177 13178 13179 13180 13181 13182 13231 13232 13233 13234 13235 13236 13225 13226 13227 13228 13229 13230 16255 16256 16257 16258 16259 16260 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11365 11366 11367 11368 11369 11370 16249 16250 16251 16252 16253 16254 48 13225 13226 13227 13228 13229 13230 13279 13280 13281 13282 13283 13284 13273 13274 13275 13276 13277 13278 16261 16262 16263 16264 16265 16266 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11425 11426 11427 11428 11429 11430 16255 16256 16257 16258 16259 16260 48 13273 13274 13275 13276 13277 13278 13327 13328 13329 13330 13331 13332 13321 13322 13323 13324 13325 13326 16267 16268 16269 16270 16271 16272 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11455 11456 11457 11458 11459 11460 16261 16262 16263 16264 16265 16266 48 13321 13322 13323 13324 13325 13326 13375 13376 13377 13378 13379 13380 13369 13370 13371 13372 13373 13374 16273 16274 16275 16276 16277 16278 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11485 11486 11487 11488 11489 11490 16267 16268 16269 16270 16271 16272 48 13369 13370 13371 13372 13373 13374 13423 13424 13425 13426 13427 13428 13417 13418 13419 13420 13421 13422 16279 16280 16281 16282 16283 16284 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11545 11546 11547 11548 11549 11550 16273 16274 16275 16276 16277 16278 48 13417 13418 13419 13420 13421 13422 13471 13472 13473 13474 13475 13476 13465 13466 13467 13468 13469 13470 16285 16286 16287 16288 16289 16290 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11575 11576 11577 11578 11579 11580 16279 16280 16281 16282 16283 16284 48 13465 13466 13467 13468 13469 13470 13519 13520 13521 13522 13523 13524 13513 13514 13515 13516 13517 13518 16291 16292 16293 16294 16295 16296 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11605 11606 11607 11608 11609 11610 16285 16286 16287 16288 16289 16290 48 13513 13514 13515 13516 13517 13518 13567 13568 13569 13570 13571 13572 13561 13562 13563 13564 13565 13566 16297 16298 16299 16300 16301 16302 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11665 11666 11667 11668 11669 11670 16291 16292 16293 16294 16295 16296 48 13561 13562 13563 13564 13565 13566 13615 13616 13617 13618 13619 13620 13609 13610 13611 13612 13613 13614 16303 16304 16305 16306 16307 16308 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11695 11696 11697 11698 11699 11700 16297 16298 16299 16300 16301 16302 48 13609 13610 13611 13612 13613 13614 13663 13664 13665 13666 13667 13668 13657 13658 13659 13660 13661 13662 16309 16310 16311 16312 16313 16314 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11725 11726 11727 11728 11729 11730 16303 16304 16305 16306 16307 16308 48 13657 13658 13659 13660 13661 13662 13711 13712 13713 13714 13715 13716 13705 13706 13707 13708 13709 13710 16315 16316 16317 16318 16319 16320 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11785 11786 11787 11788 11789 11790 16309 16310 16311 16312 16313 16314 48 13705 13706 13707 13708 13709 13710 13759 13760 13761 13762 13763 13764 13753 13754 13755 13756 13757 13758 16321 16322 16323 16324 16325 16326 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11815 11816 11817 11818 11819 11820 16315 16316 16317 16318 16319 16320 48 13753 13754 13755 13756 13757 13758 13807 13808 13809 13810 13811 13812 13801 13802 13803 13804 13805 13806 16327 16328 16329 16330 16331 16332 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11845 11846 11847 11848 11849 11850 16321 16322 16323 16324 16325 16326 48 13801 13802 13803 13804 13805 13806 13855 13856 13857 13858 13859 13860 13849 13850 13851 13852 13853 13854 16333 16334 16335 16336 16337 16338 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11905 11906 11907 11908 11909 11910 16327 16328 16329 16330 16331 16332 48 13849 13850 13851 13852 13853 13854 13903 13904 13905 13906 13907 13908 13897 13898 13899 13900 13901 13902 16339 16340 16341 16342 16343 16344 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11935 11936 11937 11938 11939 11940 16333 16334 16335 16336 16337 16338 48 13897 13898 13899 13900 13901 13902 13951 13952 13953 13954 13955 13956 13945 13946 13947 13948 13949 13950 16345 16346 16347 16348 16349 16350 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 11965 11966 11967 11968 11969 11970 16339 16340 16341 16342 16343 16344 48 13945 13946 13947 13948 13949 13950 13999 14000 14001 14002 14003 14004 13993 13994 13995 13996 13997 13998 16351 16352 16353 16354 16355 16356 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12025 12026 12027 12028 12029 12030 16345 16346 16347 16348 16349 16350 48 13993 13994 13995 13996 13997 13998 14047 14048 14049 14050 14051 14052 14041 14042 14043 14044 14045 14046 16357 16358 16359 16360 16361 16362 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12055 12056 12057 12058 12059 12060 16351 16352 16353 16354 16355 16356 48 14041 14042 14043 14044 14045 14046 14095 14096 14097 14098 14099 14100 14089 14090 14091 14092 14093 14094 16363 16364 16365 16366 16367 16368 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12085 12086 12087 12088 12089 12090 16357 16358 16359 16360 16361 16362 48 14089 14090 14091 14092 14093 14094 14143 14144 14145 14146 14147 14148 14137 14138 14139 14140 14141 14142 16369 16370 16371 16372 16373 16374 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12145 12146 12147 12148 12149 12150 16363 16364 16365 16366 16367 16368 48 14137 14138 14139 14140 14141 14142 15853 15854 15855 15856 15857 15858 3046 3047 3048 3049 3050 3051 3436 3437 3438 3439 3440 3441 2806 2807 2808 2809 2810 2811 15859 15860 15861 15862 15863 15864 12175 12176 12177 12178 12179 12180 16369 16370 16371 16372 16373 16374 48 5329 5330 5331 5332 5333 5334 15829 15830 15831 15832 15833 15834 10573 10574 10575 10576 10577 10578 16375 16376 16377 16378 16379 16380 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 4813 4814 4815 4816 4817 4818 5377 5378 5379 5380 5381 5382 48 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10567 10568 10569 10570 10571 10572 16381 16382 16383 16384 16385 16386 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9163 9164 9165 9166 9167 9168 16375 16376 16377 16378 16379 16380 48 10567 10568 10569 10570 10571 10572 10645 10646 10647 10648 10649 10650 10639 10640 10641 10642 10643 10644 16387 16388 16389 16390 16391 16392 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9193 9194 9195 9196 9197 9198 16381 16382 16383 16384 16385 16386 48 10639 10640 10641 10642 10643 10644 10663 10664 10665 10666 10667 10668 10657 10658 10659 10660 10661 10662 16393 16394 16395 16396 16397 16398 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9253 9254 9255 9256 9257 9258 16387 16388 16389 16390 16391 16392 48 10657 10658 10659 10660 10661 10662 10705 10706 10707 10708 10709 10710 10699 10700 10701 10702 10703 10704 16399 16400 16401 16402 16403 16404 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9271 9272 9273 9274 9275 9276 16393 16394 16395 16396 16397 16398 48 10699 10700 10701 10702 10703 10704 10735 10736 10737 10738 10739 10740 10729 10730 10731 10732 10733 10734 16405 16406 16407 16408 16409 16410 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9313 9314 9315 9316 9317 9318 16399 16400 16401 16402 16403 16404 48 10729 10730 10731 10732 10733 10734 10771 10772 10773 10774 10775 10776 10765 10766 10767 10768 10769 10770 16411 16412 16413 16414 16415 16416 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9343 9344 9345 9346 9347 9348 16405 16406 16407 16408 16409 16410 48 10765 10766 10767 10768 10769 10770 10831 10832 10833 10834 10835 10836 10825 10826 10827 10828 10829 10830 16417 16418 16419 16420 16421 16422 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9379 9380 9381 9382 9383 9384 16411 16412 16413 16414 16415 16416 48 10825 10826 10827 10828 10829 10830 10861 10862 10863 10864 10865 10866 10855 10856 10857 10858 10859 10860 16423 16424 16425 16426 16427 16428 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9439 9440 9441 9442 9443 9444 16417 16418 16419 16420 16421 16422 48 10855 10856 10857 10858 10859 10860 10891 10892 10893 10894 10895 10896 10885 10886 10887 10888 10889 10890 16429 16430 16431 16432 16433 16434 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9469 9470 9471 9472 9473 9474 16423 16424 16425 16426 16427 16428 48 10885 10886 10887 10888 10889 10890 10951 10952 10953 10954 10955 10956 10945 10946 10947 10948 10949 10950 16435 16436 16437 16438 16439 16440 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9499 9500 9501 9502 9503 9504 16429 16430 16431 16432 16433 16434 48 10945 10946 10947 10948 10949 10950 10981 10982 10983 10984 10985 10986 10975 10976 10977 10978 10979 10980 16441 16442 16443 16444 16445 16446 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9529 9530 9531 9532 9533 9534 16435 16436 16437 16438 16439 16440 48 10975 10976 10977 10978 10979 10980 11011 11012 11013 11014 11015 11016 11005 11006 11007 11008 11009 11010 16447 16448 16449 16450 16451 16452 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9559 9560 9561 9562 9563 9564 16441 16442 16443 16444 16445 16446 48 11005 11006 11007 11008 11009 11010 11071 11072 11073 11074 11075 11076 11065 11066 11067 11068 11069 11070 16453 16454 16455 16456 16457 16458 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9589 9590 9591 9592 9593 9594 16447 16448 16449 16450 16451 16452 48 11065 11066 11067 11068 11069 11070 11101 11102 11103 11104 11105 11106 11095 11096 11097 11098 11099 11100 16459 16460 16461 16462 16463 16464 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9649 9650 9651 9652 9653 9654 16453 16454 16455 16456 16457 16458 48 11095 11096 11097 11098 11099 11100 11131 11132 11133 11134 11135 11136 11125 11126 11127 11128 11129 11130 16465 16466 16467 16468 16469 16470 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9679 9680 9681 9682 9683 9684 16459 16460 16461 16462 16463 16464 48 11125 11126 11127 11128 11129 11130 11191 11192 11193 11194 11195 11196 11185 11186 11187 11188 11189 11190 16471 16472 16473 16474 16475 16476 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9709 9710 9711 9712 9713 9714 16465 16466 16467 16468 16469 16470 48 11185 11186 11187 11188 11189 11190 11221 11222 11223 11224 11225 11226 11215 11216 11217 11218 11219 11220 16477 16478 16479 16480 16481 16482 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9739 9740 9741 9742 9743 9744 16471 16472 16473 16474 16475 16476 48 11215 11216 11217 11218 11219 11220 11251 11252 11253 11254 11255 11256 11245 11246 11247 11248 11249 11250 16483 16484 16485 16486 16487 16488 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9769 9770 9771 9772 9773 9774 16477 16478 16479 16480 16481 16482 48 11245 11246 11247 11248 11249 11250 11311 11312 11313 11314 11315 11316 11305 11306 11307 11308 11309 11310 16489 16490 16491 16492 16493 16494 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9799 9800 9801 9802 9803 9804 16483 16484 16485 16486 16487 16488 48 11305 11306 11307 11308 11309 11310 11341 11342 11343 11344 11345 11346 11335 11336 11337 11338 11339 11340 16495 16496 16497 16498 16499 16500 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9829 9830 9831 9832 9833 9834 16489 16490 16491 16492 16493 16494 48 11335 11336 11337 11338 11339 11340 11371 11372 11373 11374 11375 11376 11365 11366 11367 11368 11369 11370 16501 16502 16503 16504 16505 16506 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9859 9860 9861 9862 9863 9864 16495 16496 16497 16498 16499 16500 48 11365 11366 11367 11368 11369 11370 11431 11432 11433 11434 11435 11436 11425 11426 11427 11428 11429 11430 16507 16508 16509 16510 16511 16512 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9889 9890 9891 9892 9893 9894 16501 16502 16503 16504 16505 16506 48 11425 11426 11427 11428 11429 11430 11461 11462 11463 11464 11465 11466 11455 11456 11457 11458 11459 11460 16513 16514 16515 16516 16517 16518 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9919 9920 9921 9922 9923 9924 16507 16508 16509 16510 16511 16512 48 11455 11456 11457 11458 11459 11460 11491 11492 11493 11494 11495 11496 11485 11486 11487 11488 11489 11490 16519 16520 16521 16522 16523 16524 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9949 9950 9951 9952 9953 9954 16513 16514 16515 16516 16517 16518 48 11485 11486 11487 11488 11489 11490 11551 11552 11553 11554 11555 11556 11545 11546 11547 11548 11549 11550 16525 16526 16527 16528 16529 16530 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 9979 9980 9981 9982 9983 9984 16519 16520 16521 16522 16523 16524 48 11545 11546 11547 11548 11549 11550 11581 11582 11583 11584 11585 11586 11575 11576 11577 11578 11579 11580 16531 16532 16533 16534 16535 16536 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10009 10010 10011 10012 10013 10014 16525 16526 16527 16528 16529 16530 48 11575 11576 11577 11578 11579 11580 11611 11612 11613 11614 11615 11616 11605 11606 11607 11608 11609 11610 16537 16538 16539 16540 16541 16542 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10039 10040 10041 10042 10043 10044 16531 16532 16533 16534 16535 16536 48 11605 11606 11607 11608 11609 11610 11671 11672 11673 11674 11675 11676 11665 11666 11667 11668 11669 11670 16543 16544 16545 16546 16547 16548 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10069 10070 10071 10072 10073 10074 16537 16538 16539 16540 16541 16542 48 11665 11666 11667 11668 11669 11670 11701 11702 11703 11704 11705 11706 11695 11696 11697 11698 11699 11700 16549 16550 16551 16552 16553 16554 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10099 10100 10101 10102 10103 10104 16543 16544 16545 16546 16547 16548 48 11695 11696 11697 11698 11699 11700 11731 11732 11733 11734 11735 11736 11725 11726 11727 11728 11729 11730 16555 16556 16557 16558 16559 16560 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10129 10130 10131 10132 10133 10134 16549 16550 16551 16552 16553 16554 48 11725 11726 11727 11728 11729 11730 11791 11792 11793 11794 11795 11796 11785 11786 11787 11788 11789 11790 16561 16562 16563 16564 16565 16566 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10159 10160 10161 10162 10163 10164 16555 16556 16557 16558 16559 16560 48 11785 11786 11787 11788 11789 11790 11821 11822 11823 11824 11825 11826 11815 11816 11817 11818 11819 11820 16567 16568 16569 16570 16571 16572 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10189 10190 10191 10192 10193 10194 16561 16562 16563 16564 16565 16566 48 11815 11816 11817 11818 11819 11820 11851 11852 11853 11854 11855 11856 11845 11846 11847 11848 11849 11850 16573 16574 16575 16576 16577 16578 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10219 10220 10221 10222 10223 10224 16567 16568 16569 16570 16571 16572 48 11845 11846 11847 11848 11849 11850 11911 11912 11913 11914 11915 11916 11905 11906 11907 11908 11909 11910 16579 16580 16581 16582 16583 16584 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10249 10250 10251 10252 10253 10254 16573 16574 16575 16576 16577 16578 48 11905 11906 11907 11908 11909 11910 11941 11942 11943 11944 11945 11946 11935 11936 11937 11938 11939 11940 16585 16586 16587 16588 16589 16590 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10279 10280 10281 10282 10283 10284 16579 16580 16581 16582 16583 16584 48 11935 11936 11937 11938 11939 11940 11971 11972 11973 11974 11975 11976 11965 11966 11967 11968 11969 11970 16591 16592 16593 16594 16595 16596 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10309 10310 10311 10312 10313 10314 16585 16586 16587 16588 16589 16590 48 11965 11966 11967 11968 11969 11970 12031 12032 12033 12034 12035 12036 12025 12026 12027 12028 12029 12030 16597 16598 16599 16600 16601 16602 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10339 10340 10341 10342 10343 10344 16591 16592 16593 16594 16595 16596 48 12025 12026 12027 12028 12029 12030 12061 12062 12063 12064 12065 12066 12055 12056 12057 12058 12059 12060 16603 16604 16605 16606 16607 16608 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10369 10370 10371 10372 10373 10374 16597 16598 16599 16600 16601 16602 48 12055 12056 12057 12058 12059 12060 12091 12092 12093 12094 12095 12096 12085 12086 12087 12088 12089 12090 16609 16610 16611 16612 16613 16614 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10399 10400 10401 10402 10403 10404 16603 16604 16605 16606 16607 16608 48 12085 12086 12087 12088 12089 12090 12151 12152 12153 12154 12155 12156 12145 12146 12147 12148 12149 12150 16615 16616 16617 16618 16619 16620 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10429 10430 10431 10432 10433 10434 16609 16610 16611 16612 16613 16614 48 12145 12146 12147 12148 12149 12150 12181 12182 12183 12184 12185 12186 12175 12176 12177 12178 12179 12180 16621 16622 16623 16624 16625 16626 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10489 10490 10491 10492 10493 10494 16615 16616 16617 16618 16619 16620 48 12175 12176 12177 12178 12179 12180 15859 15860 15861 15862 15863 15864 2806 2807 2808 2809 2810 2811 3478 3479 3480 3481 3482 3483 2662 2663 2664 2665 2666 2667 10537 10538 10539 10540 10541 10542 10519 10520 10521 10522 10523 10524 16621 16622 16623 16624 16625 16626 48 4813 4814 4815 4816 4817 4818 9169 9170 9171 9172 9173 9174 9163 9164 9165 9166 9167 9168 16627 16628 16629 16630 16631 16632 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 4585 4586 4587 4588 4589 4590 5419 5420 5421 5422 5423 5424 48 9163 9164 9165 9166 9167 9168 9199 9200 9201 9202 9203 9204 9193 9194 9195 9196 9197 9198 16633 16634 16635 16636 16637 16638 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7495 7496 7497 7498 7499 7500 16627 16628 16629 16630 16631 16632 48 9193 9194 9195 9196 9197 9198 9259 9260 9261 9262 9263 9264 9253 9254 9255 9256 9257 9258 16639 16640 16641 16642 16643 16644 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7525 7526 7527 7528 7529 7530 16633 16634 16635 16636 16637 16638 48 9253 9254 9255 9256 9257 9258 9277 9278 9279 9280 9281 9282 9271 9272 9273 9274 9275 9276 16645 16646 16647 16648 16649 16650 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7585 7586 7587 7588 7589 7590 16639 16640 16641 16642 16643 16644 48 9271 9272 9273 9274 9275 9276 9319 9320 9321 9322 9323 9324 9313 9314 9315 9316 9317 9318 16651 16652 16653 16654 16655 16656 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7603 7604 7605 7606 7607 7608 16645 16646 16647 16648 16649 16650 48 9313 9314 9315 9316 9317 9318 9349 9350 9351 9352 9353 9354 9343 9344 9345 9346 9347 9348 16657 16658 16659 16660 16661 16662 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7645 7646 7647 7648 7649 7650 16651 16652 16653 16654 16655 16656 48 9343 9344 9345 9346 9347 9348 9385 9386 9387 9388 9389 9390 9379 9380 9381 9382 9383 9384 16663 16664 16665 16666 16667 16668 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7675 7676 7677 7678 7679 7680 16657 16658 16659 16660 16661 16662 48 9379 9380 9381 9382 9383 9384 9445 9446 9447 9448 9449 9450 9439 9440 9441 9442 9443 9444 16669 16670 16671 16672 16673 16674 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7711 7712 7713 7714 7715 7716 16663 16664 16665 16666 16667 16668 48 9439 9440 9441 9442 9443 9444 9475 9476 9477 9478 9479 9480 9469 9470 9471 9472 9473 9474 16675 16676 16677 16678 16679 16680 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7771 7772 7773 7774 7775 7776 16669 16670 16671 16672 16673 16674 48 9469 9470 9471 9472 9473 9474 9505 9506 9507 9508 9509 9510 9499 9500 9501 9502 9503 9504 16681 16682 16683 16684 16685 16686 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7801 7802 7803 7804 7805 7806 16675 16676 16677 16678 16679 16680 48 9499 9500 9501 9502 9503 9504 9535 9536 9537 9538 9539 9540 9529 9530 9531 9532 9533 9534 16687 16688 16689 16690 16691 16692 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7831 7832 7833 7834 7835 7836 16681 16682 16683 16684 16685 16686 48 9529 9530 9531 9532 9533 9534 9565 9566 9567 9568 9569 9570 9559 9560 9561 9562 9563 9564 16693 16694 16695 16696 16697 16698 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7891 7892 7893 7894 7895 7896 16687 16688 16689 16690 16691 16692 48 9559 9560 9561 9562 9563 9564 9595 9596 9597 9598 9599 9600 9589 9590 9591 9592 9593 9594 16699 16700 16701 16702 16703 16704 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7921 7922 7923 7924 7925 7926 16693 16694 16695 16696 16697 16698 48 9589 9590 9591 9592 9593 9594 9655 9656 9657 9658 9659 9660 9649 9650 9651 9652 9653 9654 16705 16706 16707 16708 16709 16710 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 7951 7952 7953 7954 7955 7956 16699 16700 16701 16702 16703 16704 48 9649 9650 9651 9652 9653 9654 9685 9686 9687 9688 9689 9690 9679 9680 9681 9682 9683 9684 16711 16712 16713 16714 16715 16716 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8011 8012 8013 8014 8015 8016 16705 16706 16707 16708 16709 16710 48 9679 9680 9681 9682 9683 9684 9715 9716 9717 9718 9719 9720 9709 9710 9711 9712 9713 9714 16717 16718 16719 16720 16721 16722 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8041 8042 8043 8044 8045 8046 16711 16712 16713 16714 16715 16716 48 9709 9710 9711 9712 9713 9714 9745 9746 9747 9748 9749 9750 9739 9740 9741 9742 9743 9744 16723 16724 16725 16726 16727 16728 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8071 8072 8073 8074 8075 8076 16717 16718 16719 16720 16721 16722 48 9739 9740 9741 9742 9743 9744 9775 9776 9777 9778 9779 9780 9769 9770 9771 9772 9773 9774 16729 16730 16731 16732 16733 16734 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8131 8132 8133 8134 8135 8136 16723 16724 16725 16726 16727 16728 48 9769 9770 9771 9772 9773 9774 9805 9806 9807 9808 9809 9810 9799 9800 9801 9802 9803 9804 16735 16736 16737 16738 16739 16740 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8161 8162 8163 8164 8165 8166 16729 16730 16731 16732 16733 16734 48 9799 9800 9801 9802 9803 9804 9835 9836 9837 9838 9839 9840 9829 9830 9831 9832 9833 9834 16741 16742 16743 16744 16745 16746 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8191 8192 8193 8194 8195 8196 16735 16736 16737 16738 16739 16740 48 9829 9830 9831 9832 9833 9834 9865 9866 9867 9868 9869 9870 9859 9860 9861 9862 9863 9864 16747 16748 16749 16750 16751 16752 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8251 8252 8253 8254 8255 8256 16741 16742 16743 16744 16745 16746 48 9859 9860 9861 9862 9863 9864 9895 9896 9897 9898 9899 9900 9889 9890 9891 9892 9893 9894 16753 16754 16755 16756 16757 16758 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8281 8282 8283 8284 8285 8286 16747 16748 16749 16750 16751 16752 48 9889 9890 9891 9892 9893 9894 9925 9926 9927 9928 9929 9930 9919 9920 9921 9922 9923 9924 16759 16760 16761 16762 16763 16764 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8311 8312 8313 8314 8315 8316 16753 16754 16755 16756 16757 16758 48 9919 9920 9921 9922 9923 9924 9955 9956 9957 9958 9959 9960 9949 9950 9951 9952 9953 9954 16765 16766 16767 16768 16769 16770 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8371 8372 8373 8374 8375 8376 16759 16760 16761 16762 16763 16764 48 9949 9950 9951 9952 9953 9954 9985 9986 9987 9988 9989 9990 9979 9980 9981 9982 9983 9984 16771 16772 16773 16774 16775 16776 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8401 8402 8403 8404 8405 8406 16765 16766 16767 16768 16769 16770 48 9979 9980 9981 9982 9983 9984 10015 10016 10017 10018 10019 10020 10009 10010 10011 10012 10013 10014 16777 16778 16779 16780 16781 16782 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8431 8432 8433 8434 8435 8436 16771 16772 16773 16774 16775 16776 48 10009 10010 10011 10012 10013 10014 10045 10046 10047 10048 10049 10050 10039 10040 10041 10042 10043 10044 16783 16784 16785 16786 16787 16788 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8491 8492 8493 8494 8495 8496 16777 16778 16779 16780 16781 16782 48 10039 10040 10041 10042 10043 10044 10075 10076 10077 10078 10079 10080 10069 10070 10071 10072 10073 10074 16789 16790 16791 16792 16793 16794 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8521 8522 8523 8524 8525 8526 16783 16784 16785 16786 16787 16788 48 10069 10070 10071 10072 10073 10074 10105 10106 10107 10108 10109 10110 10099 10100 10101 10102 10103 10104 16795 16796 16797 16798 16799 16800 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8551 8552 8553 8554 8555 8556 16789 16790 16791 16792 16793 16794 48 10099 10100 10101 10102 10103 10104 10135 10136 10137 10138 10139 10140 10129 10130 10131 10132 10133 10134 16801 16802 16803 16804 16805 16806 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8611 8612 8613 8614 8615 8616 16795 16796 16797 16798 16799 16800 48 10129 10130 10131 10132 10133 10134 10165 10166 10167 10168 10169 10170 10159 10160 10161 10162 10163 10164 16807 16808 16809 16810 16811 16812 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8641 8642 8643 8644 8645 8646 16801 16802 16803 16804 16805 16806 48 10159 10160 10161 10162 10163 10164 10195 10196 10197 10198 10199 10200 10189 10190 10191 10192 10193 10194 16813 16814 16815 16816 16817 16818 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8671 8672 8673 8674 8675 8676 16807 16808 16809 16810 16811 16812 48 10189 10190 10191 10192 10193 10194 10225 10226 10227 10228 10229 10230 10219 10220 10221 10222 10223 10224 16819 16820 16821 16822 16823 16824 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8731 8732 8733 8734 8735 8736 16813 16814 16815 16816 16817 16818 48 10219 10220 10221 10222 10223 10224 10255 10256 10257 10258 10259 10260 10249 10250 10251 10252 10253 10254 16825 16826 16827 16828 16829 16830 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8761 8762 8763 8764 8765 8766 16819 16820 16821 16822 16823 16824 48 10249 10250 10251 10252 10253 10254 10285 10286 10287 10288 10289 10290 10279 10280 10281 10282 10283 10284 16831 16832 16833 16834 16835 16836 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8791 8792 8793 8794 8795 8796 16825 16826 16827 16828 16829 16830 48 10279 10280 10281 10282 10283 10284 10315 10316 10317 10318 10319 10320 10309 10310 10311 10312 10313 10314 16837 16838 16839 16840 16841 16842 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8851 8852 8853 8854 8855 8856 16831 16832 16833 16834 16835 16836 48 10309 10310 10311 10312 10313 10314 10345 10346 10347 10348 10349 10350 10339 10340 10341 10342 10343 10344 16843 16844 16845 16846 16847 16848 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8881 8882 8883 8884 8885 8886 16837 16838 16839 16840 16841 16842 48 10339 10340 10341 10342 10343 10344 10375 10376 10377 10378 10379 10380 10369 10370 10371 10372 10373 10374 16849 16850 16851 16852 16853 16854 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8911 8912 8913 8914 8915 8916 16843 16844 16845 16846 16847 16848 48 10369 10370 10371 10372 10373 10374 10405 10406 10407 10408 10409 10410 10399 10400 10401 10402 10403 10404 16855 16856 16857 16858 16859 16860 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 8971 8972 8973 8974 8975 8976 16849 16850 16851 16852 16853 16854 48 10399 10400 10401 10402 10403 10404 10435 10436 10437 10438 10439 10440 10429 10430 10431 10432 10433 10434 16861 16862 16863 16864 16865 16866 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9001 9002 9003 9004 9005 9006 16855 16856 16857 16858 16859 16860 48 10429 10430 10431 10432 10433 10434 10495 10496 10497 10498 10499 10500 10489 10490 10491 10492 10493 10494 16867 16868 16869 16870 16871 16872 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9031 9032 9033 9034 9035 9036 16861 16862 16863 16864 16865 16866 48 10489 10490 10491 10492 10493 10494 10525 10526 10527 10528 10529 10530 10519 10520 10521 10522 10523 10524 16873 16874 16875 16876 16877 16878 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9091 9092 9093 9094 9095 9096 16867 16868 16869 16870 16871 16872 48 10519 10520 10521 10522 10523 10524 10537 10538 10539 10540 10541 10542 2662 2663 2664 2665 2666 2667 3520 3521 3522 3523 3524 3525 2386 2387 2388 2389 2390 2391 9139 9140 9141 9142 9143 9144 9121 9122 9123 9124 9125 9126 16873 16874 16875 16876 16877 16878 48 4585 4586 4587 4588 4589 4590 7501 7502 7503 7504 7505 7506 7495 7496 7497 7498 7499 7500 16879 16880 16881 16882 16883 16884 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 4321 4322 4323 4324 4325 4326 5461 5462 5463 5464 5465 5466 48 7495 7496 7497 7498 7499 7500 7531 7532 7533 7534 7535 7536 7525 7526 7527 7528 7529 7530 16885 16886 16887 16888 16889 16890 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5827 5828 5829 5830 5831 5832 16879 16880 16881 16882 16883 16884 48 7525 7526 7527 7528 7529 7530 7591 7592 7593 7594 7595 7596 7585 7586 7587 7588 7589 7590 16891 16892 16893 16894 16895 16896 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5857 5858 5859 5860 5861 5862 16885 16886 16887 16888 16889 16890 48 7585 7586 7587 7588 7589 7590 7609 7610 7611 7612 7613 7614 7603 7604 7605 7606 7607 7608 16897 16898 16899 16900 16901 16902 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5917 5918 5919 5920 5921 5922 16891 16892 16893 16894 16895 16896 48 7603 7604 7605 7606 7607 7608 7651 7652 7653 7654 7655 7656 7645 7646 7647 7648 7649 7650 16903 16904 16905 16906 16907 16908 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5935 5936 5937 5938 5939 5940 16897 16898 16899 16900 16901 16902 48 7645 7646 7647 7648 7649 7650 7681 7682 7683 7684 7685 7686 7675 7676 7677 7678 7679 7680 16909 16910 16911 16912 16913 16914 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 5977 5978 5979 5980 5981 5982 16903 16904 16905 16906 16907 16908 48 7675 7676 7677 7678 7679 7680 7717 7718 7719 7720 7721 7722 7711 7712 7713 7714 7715 7716 16915 16916 16917 16918 16919 16920 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6007 6008 6009 6010 6011 6012 16909 16910 16911 16912 16913 16914 48 7711 7712 7713 7714 7715 7716 7777 7778 7779 7780 7781 7782 7771 7772 7773 7774 7775 7776 16921 16922 16923 16924 16925 16926 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6043 6044 6045 6046 6047 6048 16915 16916 16917 16918 16919 16920 48 7771 7772 7773 7774 7775 7776 7807 7808 7809 7810 7811 7812 7801 7802 7803 7804 7805 7806 16927 16928 16929 16930 16931 16932 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6103 6104 6105 6106 6107 6108 16921 16922 16923 16924 16925 16926 48 7801 7802 7803 7804 7805 7806 7837 7838 7839 7840 7841 7842 7831 7832 7833 7834 7835 7836 16933 16934 16935 16936 16937 16938 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6133 6134 6135 6136 6137 6138 16927 16928 16929 16930 16931 16932 48 7831 7832 7833 7834 7835 7836 7897 7898 7899 7900 7901 7902 7891 7892 7893 7894 7895 7896 16939 16940 16941 16942 16943 16944 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6163 6164 6165 6166 6167 6168 16933 16934 16935 16936 16937 16938 48 7891 7892 7893 7894 7895 7896 7927 7928 7929 7930 7931 7932 7921 7922 7923 7924 7925 7926 16945 16946 16947 16948 16949 16950 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6223 6224 6225 6226 6227 6228 16939 16940 16941 16942 16943 16944 48 7921 7922 7923 7924 7925 7926 7957 7958 7959 7960 7961 7962 7951 7952 7953 7954 7955 7956 16951 16952 16953 16954 16955 16956 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6253 6254 6255 6256 6257 6258 16945 16946 16947 16948 16949 16950 48 7951 7952 7953 7954 7955 7956 8017 8018 8019 8020 8021 8022 8011 8012 8013 8014 8015 8016 16957 16958 16959 16960 16961 16962 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6283 6284 6285 6286 6287 6288 16951 16952 16953 16954 16955 16956 48 8011 8012 8013 8014 8015 8016 8047 8048 8049 8050 8051 8052 8041 8042 8043 8044 8045 8046 16963 16964 16965 16966 16967 16968 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6343 6344 6345 6346 6347 6348 16957 16958 16959 16960 16961 16962 48 8041 8042 8043 8044 8045 8046 8077 8078 8079 8080 8081 8082 8071 8072 8073 8074 8075 8076 16969 16970 16971 16972 16973 16974 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6373 6374 6375 6376 6377 6378 16963 16964 16965 16966 16967 16968 48 8071 8072 8073 8074 8075 8076 8137 8138 8139 8140 8141 8142 8131 8132 8133 8134 8135 8136 16975 16976 16977 16978 16979 16980 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6403 6404 6405 6406 6407 6408 16969 16970 16971 16972 16973 16974 48 8131 8132 8133 8134 8135 8136 8167 8168 8169 8170 8171 8172 8161 8162 8163 8164 8165 8166 16981 16982 16983 16984 16985 16986 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6463 6464 6465 6466 6467 6468 16975 16976 16977 16978 16979 16980 48 8161 8162 8163 8164 8165 8166 8197 8198 8199 8200 8201 8202 8191 8192 8193 8194 8195 8196 16987 16988 16989 16990 16991 16992 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6493 6494 6495 6496 6497 6498 16981 16982 16983 16984 16985 16986 48 8191 8192 8193 8194 8195 8196 8257 8258 8259 8260 8261 8262 8251 8252 8253 8254 8255 8256 16993 16994 16995 16996 16997 16998 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6523 6524 6525 6526 6527 6528 16987 16988 16989 16990 16991 16992 48 8251 8252 8253 8254 8255 8256 8287 8288 8289 8290 8291 8292 8281 8282 8283 8284 8285 8286 16999 17000 17001 17002 17003 17004 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6583 6584 6585 6586 6587 6588 16993 16994 16995 16996 16997 16998 48 8281 8282 8283 8284 8285 8286 8317 8318 8319 8320 8321 8322 8311 8312 8313 8314 8315 8316 17005 17006 17007 17008 17009 17010 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6613 6614 6615 6616 6617 6618 16999 17000 17001 17002 17003 17004 48 8311 8312 8313 8314 8315 8316 8377 8378 8379 8380 8381 8382 8371 8372 8373 8374 8375 8376 17011 17012 17013 17014 17015 17016 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6643 6644 6645 6646 6647 6648 17005 17006 17007 17008 17009 17010 48 8371 8372 8373 8374 8375 8376 8407 8408 8409 8410 8411 8412 8401 8402 8403 8404 8405 8406 17017 17018 17019 17020 17021 17022 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6703 6704 6705 6706 6707 6708 17011 17012 17013 17014 17015 17016 48 8401 8402 8403 8404 8405 8406 8437 8438 8439 8440 8441 8442 8431 8432 8433 8434 8435 8436 17023 17024 17025 17026 17027 17028 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6733 6734 6735 6736 6737 6738 17017 17018 17019 17020 17021 17022 48 8431 8432 8433 8434 8435 8436 8497 8498 8499 8500 8501 8502 8491 8492 8493 8494 8495 8496 17029 17030 17031 17032 17033 17034 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6763 6764 6765 6766 6767 6768 17023 17024 17025 17026 17027 17028 48 8491 8492 8493 8494 8495 8496 8527 8528 8529 8530 8531 8532 8521 8522 8523 8524 8525 8526 17035 17036 17037 17038 17039 17040 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6823 6824 6825 6826 6827 6828 17029 17030 17031 17032 17033 17034 48 8521 8522 8523 8524 8525 8526 8557 8558 8559 8560 8561 8562 8551 8552 8553 8554 8555 8556 17041 17042 17043 17044 17045 17046 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6853 6854 6855 6856 6857 6858 17035 17036 17037 17038 17039 17040 48 8551 8552 8553 8554 8555 8556 8617 8618 8619 8620 8621 8622 8611 8612 8613 8614 8615 8616 17047 17048 17049 17050 17051 17052 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6883 6884 6885 6886 6887 6888 17041 17042 17043 17044 17045 17046 48 8611 8612 8613 8614 8615 8616 8647 8648 8649 8650 8651 8652 8641 8642 8643 8644 8645 8646 17053 17054 17055 17056 17057 17058 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6943 6944 6945 6946 6947 6948 17047 17048 17049 17050 17051 17052 48 8641 8642 8643 8644 8645 8646 8677 8678 8679 8680 8681 8682 8671 8672 8673 8674 8675 8676 17059 17060 17061 17062 17063 17064 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 6973 6974 6975 6976 6977 6978 17053 17054 17055 17056 17057 17058 48 8671 8672 8673 8674 8675 8676 8737 8738 8739 8740 8741 8742 8731 8732 8733 8734 8735 8736 17065 17066 17067 17068 17069 17070 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7003 7004 7005 7006 7007 7008 17059 17060 17061 17062 17063 17064 48 8731 8732 8733 8734 8735 8736 8767 8768 8769 8770 8771 8772 8761 8762 8763 8764 8765 8766 17071 17072 17073 17074 17075 17076 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7063 7064 7065 7066 7067 7068 17065 17066 17067 17068 17069 17070 48 8761 8762 8763 8764 8765 8766 8797 8798 8799 8800 8801 8802 8791 8792 8793 8794 8795 8796 17077 17078 17079 17080 17081 17082 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7093 7094 7095 7096 7097 7098 17071 17072 17073 17074 17075 17076 48 8791 8792 8793 8794 8795 8796 8857 8858 8859 8860 8861 8862 8851 8852 8853 8854 8855 8856 17083 17084 17085 17086 17087 17088 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7123 7124 7125 7126 7127 7128 17077 17078 17079 17080 17081 17082 48 8851 8852 8853 8854 8855 8856 8887 8888 8889 8890 8891 8892 8881 8882 8883 8884 8885 8886 17089 17090 17091 17092 17093 17094 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7183 7184 7185 7186 7187 7188 17083 17084 17085 17086 17087 17088 48 8881 8882 8883 8884 8885 8886 8917 8918 8919 8920 8921 8922 8911 8912 8913 8914 8915 8916 17095 17096 17097 17098 17099 17100 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7213 7214 7215 7216 7217 7218 17089 17090 17091 17092 17093 17094 48 8911 8912 8913 8914 8915 8916 8977 8978 8979 8980 8981 8982 8971 8972 8973 8974 8975 8976 17101 17102 17103 17104 17105 17106 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7243 7244 7245 7246 7247 7248 17095 17096 17097 17098 17099 17100 48 8971 8972 8973 8974 8975 8976 9007 9008 9009 9010 9011 9012 9001 9002 9003 9004 9005 9006 17107 17108 17109 17110 17111 17112 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7303 7304 7305 7306 7307 7308 17101 17102 17103 17104 17105 17106 48 9001 9002 9003 9004 9005 9006 9037 9038 9039 9040 9041 9042 9031 9032 9033 9034 9035 9036 17113 17114 17115 17116 17117 17118 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7333 7334 7335 7336 7337 7338 17107 17108 17109 17110 17111 17112 48 9031 9032 9033 9034 9035 9036 9097 9098 9099 9100 9101 9102 9091 9092 9093 9094 9095 9096 17119 17120 17121 17122 17123 17124 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7363 7364 7365 7366 7367 7368 17113 17114 17115 17116 17117 17118 48 9091 9092 9093 9094 9095 9096 9127 9128 9129 9130 9131 9132 9121 9122 9123 9124 9125 9126 17125 17126 17127 17128 17129 17130 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7423 7424 7425 7426 7427 7428 17119 17120 17121 17122 17123 17124 48 9121 9122 9123 9124 9125 9126 9139 9140 9141 9142 9143 9144 2386 2387 2388 2389 2390 2391 3562 3563 3564 3565 3566 3567 2112 2113 2114 2115 2116 2117 7471 7472 7473 7474 7475 7476 7453 7454 7455 7456 7457 7458 17125 17126 17127 17128 17129 17130 36 1806 1807 1808 1809 1810 1811 2112 2113 2114 2115 2116 2117 7453 7454 7455 7456 7457 7458 3604 3605 3606 3607 3608 3609 7471 7472 7473 7474 7475 7476 17131 17132 17133 17134 17135 17136 48 5191 5192 5193 5194 5195 5196 14173 14174 14175 14176 14177 14178 14167 14168 14169 14170 14171 14172 17137 17138 17139 17140 17141 17142 12211 12212 12213 12214 12215 12216 15811 15812 15813 15814 15815 15816 5059 5060 5061 5062 5063 5064 5287 5288 5289 5290 5291 5292 48 14167 14168 14169 14170 14171 14172 14203 14204 14205 14206 14207 14208 14197 14198 14199 14200 14201 14202 17143 17144 17145 17146 17147 17148 636 637 638 639 640 641 12217 12218 12219 12220 12221 12222 12211 12212 12213 12214 12215 12216 17137 17138 17139 17140 17141 17142 48 14197 14198 14199 14200 14201 14202 14233 14234 14235 14236 14237 14238 14227 14228 14229 14230 14231 14232 17149 17150 17151 17152 17153 17154 648 649 650 651 652 653 12277 12278 12279 12280 12281 12282 636 637 638 639 640 641 17143 17144 17145 17146 17147 17148 48 14227 14228 14229 14230 14231 14232 14263 14264 14265 14266 14267 14268 14257 14258 14259 14260 14261 14262 17155 17156 17157 17158 17159 17160 660 661 662 663 664 665 12319 12320 12321 12322 12323 12324 648 649 650 651 652 653 17149 17150 17151 17152 17153 17154 48 14257 14258 14259 14260 14261 14262 14293 14294 14295 14296 14297 14298 14287 14288 14289 14290 14291 14292 17161 17162 17163 17164 17165 17166 672 673 674 675 676 677 12361 12362 12363 12364 12365 12366 660 661 662 663 664 665 17155 17156 17157 17158 17159 17160 48 14287 14288 14289 14290 14291 14292 14323 14324 14325 14326 14327 14328 14317 14318 14319 14320 14321 14322 17167 17168 17169 17170 17171 17172 684 685 686 687 688 689 12403 12404 12405 12406 12407 12408 672 673 674 675 676 677 17161 17162 17163 17164 17165 17166 48 14317 14318 14319 14320 14321 14322 14353 14354 14355 14356 14357 14358 14347 14348 14349 14350 14351 14352 17173 17174 17175 17176 17177 17178 696 697 698 699 700 701 12445 12446 12447 12448 12449 12450 684 685 686 687 688 689 17167 17168 17169 17170 17171 17172 48 14347 14348 14349 14350 14351 14352 14383 14384 14385 14386 14387 14388 14377 14378 14379 14380 14381 14382 17179 17180 17181 17182 17183 17184 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 696 697 698 699 700 701 17173 17174 17175 17176 17177 17178 48 14377 14378 14379 14380 14381 14382 14413 14414 14415 14416 14417 14418 14407 14408 14409 14410 14411 14412 17185 17186 17187 17188 17189 17190 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12487 12488 12489 12490 12491 12492 17179 17180 17181 17182 17183 17184 48 14407 14408 14409 14410 14411 14412 14443 14444 14445 14446 14447 14448 14437 14438 14439 14440 14441 14442 17191 17192 17193 17194 17195 17196 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12535 12536 12537 12538 12539 12540 17185 17186 17187 17188 17189 17190 48 14437 14438 14439 14440 14441 14442 14473 14474 14475 14476 14477 14478 14467 14468 14469 14470 14471 14472 17197 17198 17199 17200 17201 17202 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12583 12584 12585 12586 12587 12588 17191 17192 17193 17194 17195 17196 48 14467 14468 14469 14470 14471 14472 14503 14504 14505 14506 14507 14508 14497 14498 14499 14500 14501 14502 17203 17204 17205 17206 17207 17208 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12631 12632 12633 12634 12635 12636 17197 17198 17199 17200 17201 17202 48 14497 14498 14499 14500 14501 14502 14533 14534 14535 14536 14537 14538 14527 14528 14529 14530 14531 14532 17209 17210 17211 17212 17213 17214 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12679 12680 12681 12682 12683 12684 17203 17204 17205 17206 17207 17208 48 14527 14528 14529 14530 14531 14532 14563 14564 14565 14566 14567 14568 14557 14558 14559 14560 14561 14562 17215 17216 17217 17218 17219 17220 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12727 12728 12729 12730 12731 12732 17209 17210 17211 17212 17213 17214 48 14557 14558 14559 14560 14561 14562 14593 14594 14595 14596 14597 14598 14587 14588 14589 14590 14591 14592 17221 17222 17223 17224 17225 17226 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12775 12776 12777 12778 12779 12780 17215 17216 17217 17218 17219 17220 48 14587 14588 14589 14590 14591 14592 14623 14624 14625 14626 14627 14628 14617 14618 14619 14620 14621 14622 17227 17228 17229 17230 17231 17232 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12823 12824 12825 12826 12827 12828 17221 17222 17223 17224 17225 17226 48 14617 14618 14619 14620 14621 14622 14653 14654 14655 14656 14657 14658 14647 14648 14649 14650 14651 14652 17233 17234 17235 17236 17237 17238 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12871 12872 12873 12874 12875 12876 17227 17228 17229 17230 17231 17232 48 14647 14648 14649 14650 14651 14652 14683 14684 14685 14686 14687 14688 14677 14678 14679 14680 14681 14682 17239 17240 17241 17242 17243 17244 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12919 12920 12921 12922 12923 12924 17233 17234 17235 17236 17237 17238 48 14677 14678 14679 14680 14681 14682 14713 14714 14715 14716 14717 14718 14707 14708 14709 14710 14711 14712 17245 17246 17247 17248 17249 17250 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 12967 12968 12969 12970 12971 12972 17239 17240 17241 17242 17243 17244 48 14707 14708 14709 14710 14711 14712 14743 14744 14745 14746 14747 14748 14737 14738 14739 14740 14741 14742 17251 17252 17253 17254 17255 17256 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13015 13016 13017 13018 13019 13020 17245 17246 17247 17248 17249 17250 48 14737 14738 14739 14740 14741 14742 14773 14774 14775 14776 14777 14778 14767 14768 14769 14770 14771 14772 17257 17258 17259 17260 17261 17262 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13063 13064 13065 13066 13067 13068 17251 17252 17253 17254 17255 17256 48 14767 14768 14769 14770 14771 14772 14803 14804 14805 14806 14807 14808 14797 14798 14799 14800 14801 14802 17263 17264 17265 17266 17267 17268 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13111 13112 13113 13114 13115 13116 17257 17258 17259 17260 17261 17262 48 14797 14798 14799 14800 14801 14802 14833 14834 14835 14836 14837 14838 14827 14828 14829 14830 14831 14832 17269 17270 17271 17272 17273 17274 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13159 13160 13161 13162 13163 13164 17263 17264 17265 17266 17267 17268 48 14827 14828 14829 14830 14831 14832 14863 14864 14865 14866 14867 14868 14857 14858 14859 14860 14861 14862 17275 17276 17277 17278 17279 17280 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13207 13208 13209 13210 13211 13212 17269 17270 17271 17272 17273 17274 48 14857 14858 14859 14860 14861 14862 14893 14894 14895 14896 14897 14898 14887 14888 14889 14890 14891 14892 17281 17282 17283 17284 17285 17286 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13255 13256 13257 13258 13259 13260 17275 17276 17277 17278 17279 17280 48 14887 14888 14889 14890 14891 14892 14923 14924 14925 14926 14927 14928 14917 14918 14919 14920 14921 14922 17287 17288 17289 17290 17291 17292 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13303 13304 13305 13306 13307 13308 17281 17282 17283 17284 17285 17286 48 14917 14918 14919 14920 14921 14922 14953 14954 14955 14956 14957 14958 14947 14948 14949 14950 14951 14952 17293 17294 17295 17296 17297 17298 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13351 13352 13353 13354 13355 13356 17287 17288 17289 17290 17291 17292 48 14947 14948 14949 14950 14951 14952 14983 14984 14985 14986 14987 14988 14977 14978 14979 14980 14981 14982 17299 17300 17301 17302 17303 17304 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13399 13400 13401 13402 13403 13404 17293 17294 17295 17296 17297 17298 48 14977 14978 14979 14980 14981 14982 15013 15014 15015 15016 15017 15018 15007 15008 15009 15010 15011 15012 17305 17306 17307 17308 17309 17310 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13447 13448 13449 13450 13451 13452 17299 17300 17301 17302 17303 17304 48 15007 15008 15009 15010 15011 15012 15043 15044 15045 15046 15047 15048 15037 15038 15039 15040 15041 15042 17311 17312 17313 17314 17315 17316 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13495 13496 13497 13498 13499 13500 17305 17306 17307 17308 17309 17310 48 15037 15038 15039 15040 15041 15042 15073 15074 15075 15076 15077 15078 15067 15068 15069 15070 15071 15072 17317 17318 17319 17320 17321 17322 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13543 13544 13545 13546 13547 13548 17311 17312 17313 17314 17315 17316 48 15067 15068 15069 15070 15071 15072 15103 15104 15105 15106 15107 15108 15097 15098 15099 15100 15101 15102 17323 17324 17325 17326 17327 17328 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13591 13592 13593 13594 13595 13596 17317 17318 17319 17320 17321 17322 48 15097 15098 15099 15100 15101 15102 15133 15134 15135 15136 15137 15138 15127 15128 15129 15130 15131 15132 17329 17330 17331 17332 17333 17334 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13639 13640 13641 13642 13643 13644 17323 17324 17325 17326 17327 17328 48 15127 15128 15129 15130 15131 15132 15163 15164 15165 15166 15167 15168 15157 15158 15159 15160 15161 15162 17335 17336 17337 17338 17339 17340 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13687 13688 13689 13690 13691 13692 17329 17330 17331 17332 17333 17334 48 15157 15158 15159 15160 15161 15162 15193 15194 15195 15196 15197 15198 15187 15188 15189 15190 15191 15192 17341 17342 17343 17344 17345 17346 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13735 13736 13737 13738 13739 13740 17335 17336 17337 17338 17339 17340 48 15187 15188 15189 15190 15191 15192 15223 15224 15225 15226 15227 15228 15217 15218 15219 15220 15221 15222 17347 17348 17349 17350 17351 17352 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13783 13784 13785 13786 13787 13788 17341 17342 17343 17344 17345 17346 48 15217 15218 15219 15220 15221 15222 15253 15254 15255 15256 15257 15258 15247 15248 15249 15250 15251 15252 17353 17354 17355 17356 17357 17358 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13831 13832 13833 13834 13835 13836 17347 17348 17349 17350 17351 17352 48 15247 15248 15249 15250 15251 15252 15283 15284 15285 15286 15287 15288 15277 15278 15279 15280 15281 15282 17359 17360 17361 17362 17363 17364 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13879 13880 13881 13882 13883 13884 17353 17354 17355 17356 17357 17358 48 15277 15278 15279 15280 15281 15282 15313 15314 15315 15316 15317 15318 15307 15308 15309 15310 15311 15312 17365 17366 17367 17368 17369 17370 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13927 13928 13929 13930 13931 13932 17359 17360 17361 17362 17363 17364 48 15307 15308 15309 15310 15311 15312 15343 15344 15345 15346 15347 15348 15337 15338 15339 15340 15341 15342 17371 17372 17373 17374 17375 17376 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 13975 13976 13977 13978 13979 13980 17365 17366 17367 17368 17369 17370 48 15337 15338 15339 15340 15341 15342 15373 15374 15375 15376 15377 15378 15367 15368 15369 15370 15371 15372 17377 17378 17379 17380 17381 17382 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14023 14024 14025 14026 14027 14028 17371 17372 17373 17374 17375 17376 48 15367 15368 15369 15370 15371 15372 15403 15404 15405 15406 15407 15408 15397 15398 15399 15400 15401 15402 17383 17384 17385 17386 17387 17388 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14071 14072 14073 14074 14075 14076 17377 17378 17379 17380 17381 17382 48 15397 15398 15399 15400 15401 15402 15415 15416 15417 15418 15419 15420 3232 3233 3234 3235 3236 3237 3358 3359 3360 3361 3362 3363 3046 3047 3048 3049 3050 3051 15841 15842 15843 15844 15845 15846 14119 14120 14121 14122 14123 14124 17383 17384 17385 17386 17387 17388 48 5059 5060 5061 5062 5063 5064 15811 15812 15813 15814 15815 15816 12211 12212 12213 12214 12215 12216 17389 17390 17391 17392 17393 17394 10543 10544 10545 10546 10547 10548 15835 15836 15837 15838 15839 15840 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 48 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 636 637 638 639 640 641 17395 17396 17397 17398 17399 17400 10555 10556 10557 10558 10559 10560 10549 10550 10551 10552 10553 10554 10543 10544 10545 10546 10547 10548 17389 17390 17391 17392 17393 17394 48 636 637 638 639 640 641 12277 12278 12279 12280 12281 12282 648 649 650 651 652 653 17401 17402 17403 17404 17405 17406 10591 10592 10593 10594 10595 10596 10627 10628 10629 10630 10631 10632 10555 10556 10557 10558 10559 10560 17395 17396 17397 17398 17399 17400 48 648 649 650 651 652 653 12319 12320 12321 12322 12323 12324 660 661 662 663 664 665 17407 17408 17409 17410 17411 17412 10603 10604 10605 10606 10607 10608 10597 10598 10599 10600 10601 10602 10591 10592 10593 10594 10595 10596 17401 17402 17403 17404 17405 17406 48 660 661 662 663 664 665 12361 12362 12363 12364 12365 12366 672 673 674 675 676 677 17413 17414 17415 17416 17417 17418 10687 10688 10689 10690 10691 10692 10681 10682 10683 10684 10685 10686 10603 10604 10605 10606 10607 10608 17407 17408 17409 17410 17411 17412 48 672 673 674 675 676 677 12403 12404 12405 12406 12407 12408 684 685 686 687 688 689 17419 17420 17421 17422 17423 17424 10717 10718 10719 10720 10721 10722 10711 10712 10713 10714 10715 10716 10687 10688 10689 10690 10691 10692 17413 17414 17415 17416 17417 17418 48 684 685 686 687 688 689 12445 12446 12447 12448 12449 12450 696 697 698 699 700 701 17425 17426 17427 17428 17429 17430 10753 10754 10755 10756 10757 10758 10747 10748 10749 10750 10751 10752 10717 10718 10719 10720 10721 10722 17419 17420 17421 17422 17423 17424 48 696 697 698 699 700 701 12493 12494 12495 12496 12497 12498 12487 12488 12489 12490 12491 12492 17431 17432 17433 17434 17435 17436 10813 10814 10815 10816 10817 10818 10807 10808 10809 10810 10811 10812 10753 10754 10755 10756 10757 10758 17425 17426 17427 17428 17429 17430 48 12487 12488 12489 12490 12491 12492 12541 12542 12543 12544 12545 12546 12535 12536 12537 12538 12539 12540 17437 17438 17439 17440 17441 17442 10843 10844 10845 10846 10847 10848 10837 10838 10839 10840 10841 10842 10813 10814 10815 10816 10817 10818 17431 17432 17433 17434 17435 17436 48 12535 12536 12537 12538 12539 12540 12589 12590 12591 12592 12593 12594 12583 12584 12585 12586 12587 12588 17443 17444 17445 17446 17447 17448 10873 10874 10875 10876 10877 10878 10867 10868 10869 10870 10871 10872 10843 10844 10845 10846 10847 10848 17437 17438 17439 17440 17441 17442 48 12583 12584 12585 12586 12587 12588 12637 12638 12639 12640 12641 12642 12631 12632 12633 12634 12635 12636 17449 17450 17451 17452 17453 17454 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10873 10874 10875 10876 10877 10878 17443 17444 17445 17446 17447 17448 48 12631 12632 12633 12634 12635 12636 12685 12686 12687 12688 12689 12690 12679 12680 12681 12682 12683 12684 17455 17456 17457 17458 17459 17460 10963 10964 10965 10966 10967 10968 10957 10958 10959 10960 10961 10962 10921 10922 10923 10924 10925 10926 17449 17450 17451 17452 17453 17454 48 12679 12680 12681 12682 12683 12684 12733 12734 12735 12736 12737 12738 12727 12728 12729 12730 12731 12732 17461 17462 17463 17464 17465 17466 10993 10994 10995 10996 10997 10998 10987 10988 10989 10990 10991 10992 10963 10964 10965 10966 10967 10968 17455 17456 17457 17458 17459 17460 48 12727 12728 12729 12730 12731 12732 12781 12782 12783 12784 12785 12786 12775 12776 12777 12778 12779 12780 17467 17468 17469 17470 17471 17472 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 10993 10994 10995 10996 10997 10998 17461 17462 17463 17464 17465 17466 48 12775 12776 12777 12778 12779 12780 12829 12830 12831 12832 12833 12834 12823 12824 12825 12826 12827 12828 17473 17474 17475 17476 17477 17478 11083 11084 11085 11086 11087 11088 11077 11078 11079 11080 11081 11082 11041 11042 11043 11044 11045 11046 17467 17468 17469 17470 17471 17472 48 12823 12824 12825 12826 12827 12828 12877 12878 12879 12880 12881 12882 12871 12872 12873 12874 12875 12876 17479 17480 17481 17482 17483 17484 11113 11114 11115 11116 11117 11118 11107 11108 11109 11110 11111 11112 11083 11084 11085 11086 11087 11088 17473 17474 17475 17476 17477 17478 48 12871 12872 12873 12874 12875 12876 12925 12926 12927 12928 12929 12930 12919 12920 12921 12922 12923 12924 17485 17486 17487 17488 17489 17490 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11113 11114 11115 11116 11117 11118 17479 17480 17481 17482 17483 17484 48 12919 12920 12921 12922 12923 12924 12973 12974 12975 12976 12977 12978 12967 12968 12969 12970 12971 12972 17491 17492 17493 17494 17495 17496 11203 11204 11205 11206 11207 11208 11197 11198 11199 11200 11201 11202 11161 11162 11163 11164 11165 11166 17485 17486 17487 17488 17489 17490 48 12967 12968 12969 12970 12971 12972 13021 13022 13023 13024 13025 13026 13015 13016 13017 13018 13019 13020 17497 17498 17499 17500 17501 17502 11233 11234 11235 11236 11237 11238 11227 11228 11229 11230 11231 11232 11203 11204 11205 11206 11207 11208 17491 17492 17493 17494 17495 17496 48 13015 13016 13017 13018 13019 13020 13069 13070 13071 13072 13073 13074 13063 13064 13065 13066 13067 13068 17503 17504 17505 17506 17507 17508 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11233 11234 11235 11236 11237 11238 17497 17498 17499 17500 17501 17502 48 13063 13064 13065 13066 13067 13068 13117 13118 13119 13120 13121 13122 13111 13112 13113 13114 13115 13116 17509 17510 17511 17512 17513 17514 11323 11324 11325 11326 11327 11328 11317 11318 11319 11320 11321 11322 11281 11282 11283 11284 11285 11286 17503 17504 17505 17506 17507 17508 48 13111 13112 13113 13114 13115 13116 13165 13166 13167 13168 13169 13170 13159 13160 13161 13162 13163 13164 17515 17516 17517 17518 17519 17520 11353 11354 11355 11356 11357 11358 11347 11348 11349 11350 11351 11352 11323 11324 11325 11326 11327 11328 17509 17510 17511 17512 17513 17514 48 13159 13160 13161 13162 13163 13164 13213 13214 13215 13216 13217 13218 13207 13208 13209 13210 13211 13212 17521 17522 17523 17524 17525 17526 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11353 11354 11355 11356 11357 11358 17515 17516 17517 17518 17519 17520 48 13207 13208 13209 13210 13211 13212 13261 13262 13263 13264 13265 13266 13255 13256 13257 13258 13259 13260 17527 17528 17529 17530 17531 17532 11443 11444 11445 11446 11447 11448 11437 11438 11439 11440 11441 11442 11401 11402 11403 11404 11405 11406 17521 17522 17523 17524 17525 17526 48 13255 13256 13257 13258 13259 13260 13309 13310 13311 13312 13313 13314 13303 13304 13305 13306 13307 13308 17533 17534 17535 17536 17537 17538 11473 11474 11475 11476 11477 11478 11467 11468 11469 11470 11471 11472 11443 11444 11445 11446 11447 11448 17527 17528 17529 17530 17531 17532 48 13303 13304 13305 13306 13307 13308 13357 13358 13359 13360 13361 13362 13351 13352 13353 13354 13355 13356 17539 17540 17541 17542 17543 17544 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11473 11474 11475 11476 11477 11478 17533 17534 17535 17536 17537 17538 48 13351 13352 13353 13354 13355 13356 13405 13406 13407 13408 13409 13410 13399 13400 13401 13402 13403 13404 17545 17546 17547 17548 17549 17550 11563 11564 11565 11566 11567 11568 11557 11558 11559 11560 11561 11562 11521 11522 11523 11524 11525 11526 17539 17540 17541 17542 17543 17544 48 13399 13400 13401 13402 13403 13404 13453 13454 13455 13456 13457 13458 13447 13448 13449 13450 13451 13452 17551 17552 17553 17554 17555 17556 11593 11594 11595 11596 11597 11598 11587 11588 11589 11590 11591 11592 11563 11564 11565 11566 11567 11568 17545 17546 17547 17548 17549 17550 48 13447 13448 13449 13450 13451 13452 13501 13502 13503 13504 13505 13506 13495 13496 13497 13498 13499 13500 17557 17558 17559 17560 17561 17562 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11593 11594 11595 11596 11597 11598 17551 17552 17553 17554 17555 17556 48 13495 13496 13497 13498 13499 13500 13549 13550 13551 13552 13553 13554 13543 13544 13545 13546 13547 13548 17563 17564 17565 17566 17567 17568 11683 11684 11685 11686 11687 11688 11677 11678 11679 11680 11681 11682 11641 11642 11643 11644 11645 11646 17557 17558 17559 17560 17561 17562 48 13543 13544 13545 13546 13547 13548 13597 13598 13599 13600 13601 13602 13591 13592 13593 13594 13595 13596 17569 17570 17571 17572 17573 17574 11713 11714 11715 11716 11717 11718 11707 11708 11709 11710 11711 11712 11683 11684 11685 11686 11687 11688 17563 17564 17565 17566 17567 17568 48 13591 13592 13593 13594 13595 13596 13645 13646 13647 13648 13649 13650 13639 13640 13641 13642 13643 13644 17575 17576 17577 17578 17579 17580 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11713 11714 11715 11716 11717 11718 17569 17570 17571 17572 17573 17574 48 13639 13640 13641 13642 13643 13644 13693 13694 13695 13696 13697 13698 13687 13688 13689 13690 13691 13692 17581 17582 17583 17584 17585 17586 11803 11804 11805 11806 11807 11808 11797 11798 11799 11800 11801 11802 11761 11762 11763 11764 11765 11766 17575 17576 17577 17578 17579 17580 48 13687 13688 13689 13690 13691 13692 13741 13742 13743 13744 13745 13746 13735 13736 13737 13738 13739 13740 17587 17588 17589 17590 17591 17592 11833 11834 11835 11836 11837 11838 11827 11828 11829 11830 11831 11832 11803 11804 11805 11806 11807 11808 17581 17582 17583 17584 17585 17586 48 13735 13736 13737 13738 13739 13740 13789 13790 13791 13792 13793 13794 13783 13784 13785 13786 13787 13788 17593 17594 17595 17596 17597 17598 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11833 11834 11835 11836 11837 11838 17587 17588 17589 17590 17591 17592 48 13783 13784 13785 13786 13787 13788 13837 13838 13839 13840 13841 13842 13831 13832 13833 13834 13835 13836 17599 17600 17601 17602 17603 17604 11923 11924 11925 11926 11927 11928 11917 11918 11919 11920 11921 11922 11881 11882 11883 11884 11885 11886 17593 17594 17595 17596 17597 17598 48 13831 13832 13833 13834 13835 13836 13885 13886 13887 13888 13889 13890 13879 13880 13881 13882 13883 13884 17605 17606 17607 17608 17609 17610 11953 11954 11955 11956 11957 11958 11947 11948 11949 11950 11951 11952 11923 11924 11925 11926 11927 11928 17599 17600 17601 17602 17603 17604 48 13879 13880 13881 13882 13883 13884 13933 13934 13935 13936 13937 13938 13927 13928 13929 13930 13931 13932 17611 17612 17613 17614 17615 17616 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 11953 11954 11955 11956 11957 11958 17605 17606 17607 17608 17609 17610 48 13927 13928 13929 13930 13931 13932 13981 13982 13983 13984 13985 13986 13975 13976 13977 13978 13979 13980 17617 17618 17619 17620 17621 17622 12043 12044 12045 12046 12047 12048 12037 12038 12039 12040 12041 12042 12001 12002 12003 12004 12005 12006 17611 17612 17613 17614 17615 17616 48 13975 13976 13977 13978 13979 13980 14029 14030 14031 14032 14033 14034 14023 14024 14025 14026 14027 14028 17623 17624 17625 17626 17627 17628 12073 12074 12075 12076 12077 12078 12067 12068 12069 12070 12071 12072 12043 12044 12045 12046 12047 12048 17617 17618 17619 17620 17621 17622 48 14023 14024 14025 14026 14027 14028 14077 14078 14079 14080 14081 14082 14071 14072 14073 14074 14075 14076 17629 17630 17631 17632 17633 17634 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12073 12074 12075 12076 12077 12078 17623 17624 17625 17626 17627 17628 48 14071 14072 14073 14074 14075 14076 14125 14126 14127 14128 14129 14130 14119 14120 14121 14122 14123 14124 17635 17636 17637 17638 17639 17640 12163 12164 12165 12166 12167 12168 12157 12158 12159 12160 12161 12162 12121 12122 12123 12124 12125 12126 17629 17630 17631 17632 17633 17634 48 14119 14120 14121 14122 14123 14124 15841 15842 15843 15844 15845 15846 3046 3047 3048 3049 3050 3051 3436 3437 3438 3439 3440 3441 2806 2807 2808 2809 2810 2811 15865 15866 15867 15868 15869 15870 12163 12164 12165 12166 12167 12168 17635 17636 17637 17638 17639 17640 48 5329 5330 5331 5332 5333 5334 15835 15836 15837 15838 15839 15840 10543 10544 10545 10546 10547 10548 17641 17642 17643 17644 17645 17646 9151 9152 9153 9154 9155 9156 9145 9146 9147 9148 9149 9150 4801 4802 4803 4804 4805 4806 5521 5522 5523 5524 5525 5526 48 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 17647 17648 17649 17650 17651 17652 9181 9182 9183 9184 9185 9186 9175 9176 9177 9178 9179 9180 9151 9152 9153 9154 9155 9156 17641 17642 17643 17644 17645 17646 48 10555 10556 10557 10558 10559 10560 10627 10628 10629 10630 10631 10632 10591 10592 10593 10594 10595 10596 17653 17654 17655 17656 17657 17658 9205 9206 9207 9208 9209 9210 9241 9242 9243 9244 9245 9246 9181 9182 9183 9184 9185 9186 17647 17648 17649 17650 17651 17652 48 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 17659 17660 17661 17662 17663 17664 9217 9218 9219 9220 9221 9222 9211 9212 9213 9214 9215 9216 9205 9206 9207 9208 9209 9210 17653 17654 17655 17656 17657 17658 48 10603 10604 10605 10606 10607 10608 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 17665 17666 17667 17668 17669 17670 9301 9302 9303 9304 9305 9306 9295 9296 9297 9298 9299 9300 9217 9218 9219 9220 9221 9222 17659 17660 17661 17662 17663 17664 48 10687 10688 10689 10690 10691 10692 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 17671 17672 17673 17674 17675 17676 9331 9332 9333 9334 9335 9336 9325 9326 9327 9328 9329 9330 9301 9302 9303 9304 9305 9306 17665 17666 17667 17668 17669 17670 48 10717 10718 10719 10720 10721 10722 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 17677 17678 17679 17680 17681 17682 9367 9368 9369 9370 9371 9372 9361 9362 9363 9364 9365 9366 9331 9332 9333 9334 9335 9336 17671 17672 17673 17674 17675 17676 48 10753 10754 10755 10756 10757 10758 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 17683 17684 17685 17686 17687 17688 9427 9428 9429 9430 9431 9432 9421 9422 9423 9424 9425 9426 9367 9368 9369 9370 9371 9372 17677 17678 17679 17680 17681 17682 48 10813 10814 10815 10816 10817 10818 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 17689 17690 17691 17692 17693 17694 9457 9458 9459 9460 9461 9462 9451 9452 9453 9454 9455 9456 9427 9428 9429 9430 9431 9432 17683 17684 17685 17686 17687 17688 48 10843 10844 10845 10846 10847 10848 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 17695 17696 17697 17698 17699 17700 9487 9488 9489 9490 9491 9492 9481 9482 9483 9484 9485 9486 9457 9458 9459 9460 9461 9462 17689 17690 17691 17692 17693 17694 48 10873 10874 10875 10876 10877 10878 10927 10928 10929 10930 10931 10932 10921 10922 10923 10924 10925 10926 17701 17702 17703 17704 17705 17706 9517 9518 9519 9520 9521 9522 9511 9512 9513 9514 9515 9516 9487 9488 9489 9490 9491 9492 17695 17696 17697 17698 17699 17700 48 10921 10922 10923 10924 10925 10926 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 17707 17708 17709 17710 17711 17712 9547 9548 9549 9550 9551 9552 9541 9542 9543 9544 9545 9546 9517 9518 9519 9520 9521 9522 17701 17702 17703 17704 17705 17706 48 10963 10964 10965 10966 10967 10968 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 17713 17714 17715 17716 17717 17718 9577 9578 9579 9580 9581 9582 9571 9572 9573 9574 9575 9576 9547 9548 9549 9550 9551 9552 17707 17708 17709 17710 17711 17712 48 10993 10994 10995 10996 10997 10998 11047 11048 11049 11050 11051 11052 11041 11042 11043 11044 11045 11046 17719 17720 17721 17722 17723 17724 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9577 9578 9579 9580 9581 9582 17713 17714 17715 17716 17717 17718 48 11041 11042 11043 11044 11045 11046 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 17725 17726 17727 17728 17729 17730 9667 9668 9669 9670 9671 9672 9661 9662 9663 9664 9665 9666 9625 9626 9627 9628 9629 9630 17719 17720 17721 17722 17723 17724 48 11083 11084 11085 11086 11087 11088 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 17731 17732 17733 17734 17735 17736 9697 9698 9699 9700 9701 9702 9691 9692 9693 9694 9695 9696 9667 9668 9669 9670 9671 9672 17725 17726 17727 17728 17729 17730 48 11113 11114 11115 11116 11117 11118 11167 11168 11169 11170 11171 11172 11161 11162 11163 11164 11165 11166 17737 17738 17739 17740 17741 17742 9727 9728 9729 9730 9731 9732 9721 9722 9723 9724 9725 9726 9697 9698 9699 9700 9701 9702 17731 17732 17733 17734 17735 17736 48 11161 11162 11163 11164 11165 11166 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 17743 17744 17745 17746 17747 17748 9757 9758 9759 9760 9761 9762 9751 9752 9753 9754 9755 9756 9727 9728 9729 9730 9731 9732 17737 17738 17739 17740 17741 17742 48 11203 11204 11205 11206 11207 11208 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 17749 17750 17751 17752 17753 17754 9787 9788 9789 9790 9791 9792 9781 9782 9783 9784 9785 9786 9757 9758 9759 9760 9761 9762 17743 17744 17745 17746 17747 17748 48 11233 11234 11235 11236 11237 11238 11287 11288 11289 11290 11291 11292 11281 11282 11283 11284 11285 11286 17755 17756 17757 17758 17759 17760 9817 9818 9819 9820 9821 9822 9811 9812 9813 9814 9815 9816 9787 9788 9789 9790 9791 9792 17749 17750 17751 17752 17753 17754 48 11281 11282 11283 11284 11285 11286 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 17761 17762 17763 17764 17765 17766 9847 9848 9849 9850 9851 9852 9841 9842 9843 9844 9845 9846 9817 9818 9819 9820 9821 9822 17755 17756 17757 17758 17759 17760 48 11323 11324 11325 11326 11327 11328 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 17767 17768 17769 17770 17771 17772 9877 9878 9879 9880 9881 9882 9871 9872 9873 9874 9875 9876 9847 9848 9849 9850 9851 9852 17761 17762 17763 17764 17765 17766 48 11353 11354 11355 11356 11357 11358 11407 11408 11409 11410 11411 11412 11401 11402 11403 11404 11405 11406 17773 17774 17775 17776 17777 17778 9907 9908 9909 9910 9911 9912 9901 9902 9903 9904 9905 9906 9877 9878 9879 9880 9881 9882 17767 17768 17769 17770 17771 17772 48 11401 11402 11403 11404 11405 11406 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 17779 17780 17781 17782 17783 17784 9937 9938 9939 9940 9941 9942 9931 9932 9933 9934 9935 9936 9907 9908 9909 9910 9911 9912 17773 17774 17775 17776 17777 17778 48 11443 11444 11445 11446 11447 11448 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 17785 17786 17787 17788 17789 17790 9967 9968 9969 9970 9971 9972 9961 9962 9963 9964 9965 9966 9937 9938 9939 9940 9941 9942 17779 17780 17781 17782 17783 17784 48 11473 11474 11475 11476 11477 11478 11527 11528 11529 11530 11531 11532 11521 11522 11523 11524 11525 11526 17791 17792 17793 17794 17795 17796 9997 9998 9999 10000 10001 10002 9991 9992 9993 9994 9995 9996 9967 9968 9969 9970 9971 9972 17785 17786 17787 17788 17789 17790 48 11521 11522 11523 11524 11525 11526 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 17797 17798 17799 17800 17801 17802 10027 10028 10029 10030 10031 10032 10021 10022 10023 10024 10025 10026 9997 9998 9999 10000 10001 10002 17791 17792 17793 17794 17795 17796 48 11563 11564 11565 11566 11567 11568 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 17803 17804 17805 17806 17807 17808 10057 10058 10059 10060 10061 10062 10051 10052 10053 10054 10055 10056 10027 10028 10029 10030 10031 10032 17797 17798 17799 17800 17801 17802 48 11593 11594 11595 11596 11597 11598 11647 11648 11649 11650 11651 11652 11641 11642 11643 11644 11645 11646 17809 17810 17811 17812 17813 17814 10087 10088 10089 10090 10091 10092 10081 10082 10083 10084 10085 10086 10057 10058 10059 10060 10061 10062 17803 17804 17805 17806 17807 17808 48 11641 11642 11643 11644 11645 11646 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 17815 17816 17817 17818 17819 17820 10117 10118 10119 10120 10121 10122 10111 10112 10113 10114 10115 10116 10087 10088 10089 10090 10091 10092 17809 17810 17811 17812 17813 17814 48 11683 11684 11685 11686 11687 11688 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 17821 17822 17823 17824 17825 17826 10147 10148 10149 10150 10151 10152 10141 10142 10143 10144 10145 10146 10117 10118 10119 10120 10121 10122 17815 17816 17817 17818 17819 17820 48 11713 11714 11715 11716 11717 11718 11767 11768 11769 11770 11771 11772 11761 11762 11763 11764 11765 11766 17827 17828 17829 17830 17831 17832 10177 10178 10179 10180 10181 10182 10171 10172 10173 10174 10175 10176 10147 10148 10149 10150 10151 10152 17821 17822 17823 17824 17825 17826 48 11761 11762 11763 11764 11765 11766 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 17833 17834 17835 17836 17837 17838 10207 10208 10209 10210 10211 10212 10201 10202 10203 10204 10205 10206 10177 10178 10179 10180 10181 10182 17827 17828 17829 17830 17831 17832 48 11803 11804 11805 11806 11807 11808 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 17839 17840 17841 17842 17843 17844 10237 10238 10239 10240 10241 10242 10231 10232 10233 10234 10235 10236 10207 10208 10209 10210 10211 10212 17833 17834 17835 17836 17837 17838 48 11833 11834 11835 11836 11837 11838 11887 11888 11889 11890 11891 11892 11881 11882 11883 11884 11885 11886 17845 17846 17847 17848 17849 17850 10267 10268 10269 10270 10271 10272 10261 10262 10263 10264 10265 10266 10237 10238 10239 10240 10241 10242 17839 17840 17841 17842 17843 17844 48 11881 11882 11883 11884 11885 11886 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 17851 17852 17853 17854 17855 17856 10297 10298 10299 10300 10301 10302 10291 10292 10293 10294 10295 10296 10267 10268 10269 10270 10271 10272 17845 17846 17847 17848 17849 17850 48 11923 11924 11925 11926 11927 11928 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 17857 17858 17859 17860 17861 17862 10327 10328 10329 10330 10331 10332 10321 10322 10323 10324 10325 10326 10297 10298 10299 10300 10301 10302 17851 17852 17853 17854 17855 17856 48 11953 11954 11955 11956 11957 11958 12007 12008 12009 12010 12011 12012 12001 12002 12003 12004 12005 12006 17863 17864 17865 17866 17867 17868 10357 10358 10359 10360 10361 10362 10351 10352 10353 10354 10355 10356 10327 10328 10329 10330 10331 10332 17857 17858 17859 17860 17861 17862 48 12001 12002 12003 12004 12005 12006 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 17869 17870 17871 17872 17873 17874 10387 10388 10389 10390 10391 10392 10381 10382 10383 10384 10385 10386 10357 10358 10359 10360 10361 10362 17863 17864 17865 17866 17867 17868 48 12043 12044 12045 12046 12047 12048 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 17875 17876 17877 17878 17879 17880 10417 10418 10419 10420 10421 10422 10411 10412 10413 10414 10415 10416 10387 10388 10389 10390 10391 10392 17869 17870 17871 17872 17873 17874 48 12073 12074 12075 12076 12077 12078 12127 12128 12129 12130 12131 12132 12121 12122 12123 12124 12125 12126 17881 17882 17883 17884 17885 17886 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10417 10418 10419 10420 10421 10422 17875 17876 17877 17878 17879 17880 48 12121 12122 12123 12124 12125 12126 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 17887 17888 17889 17890 17891 17892 10507 10508 10509 10510 10511 10512 10501 10502 10503 10504 10505 10506 10465 10466 10467 10468 10469 10470 17881 17882 17883 17884 17885 17886 48 12163 12164 12165 12166 12167 12168 15865 15866 15867 15868 15869 15870 2806 2807 2808 2809 2810 2811 3652 3653 3654 3655 3656 3657 2578 2579 2580 2581 2582 2583 10531 10532 10533 10534 10535 10536 10507 10508 10509 10510 10511 10512 17887 17888 17889 17890 17891 17892 48 4801 4802 4803 4804 4805 4806 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 17893 17894 17895 17896 17897 17898 7483 7484 7485 7486 7487 7488 7477 7478 7479 7480 7481 7482 4573 4574 4575 4576 4577 4578 5557 5558 5559 5560 5561 5562 48 9151 9152 9153 9154 9155 9156 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 17899 17900 17901 17902 17903 17904 7513 7514 7515 7516 7517 7518 7507 7508 7509 7510 7511 7512 7483 7484 7485 7486 7487 7488 17893 17894 17895 17896 17897 17898 48 9181 9182 9183 9184 9185 9186 9241 9242 9243 9244 9245 9246 9205 9206 9207 9208 9209 9210 17905 17906 17907 17908 17909 17910 7537 7538 7539 7540 7541 7542 7573 7574 7575 7576 7577 7578 7513 7514 7515 7516 7517 7518 17899 17900 17901 17902 17903 17904 48 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 17911 17912 17913 17914 17915 17916 7549 7550 7551 7552 7553 7554 7543 7544 7545 7546 7547 7548 7537 7538 7539 7540 7541 7542 17905 17906 17907 17908 17909 17910 48 9217 9218 9219 9220 9221 9222 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 17917 17918 17919 17920 17921 17922 7633 7634 7635 7636 7637 7638 7627 7628 7629 7630 7631 7632 7549 7550 7551 7552 7553 7554 17911 17912 17913 17914 17915 17916 48 9301 9302 9303 9304 9305 9306 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 17923 17924 17925 17926 17927 17928 7663 7664 7665 7666 7667 7668 7657 7658 7659 7660 7661 7662 7633 7634 7635 7636 7637 7638 17917 17918 17919 17920 17921 17922 48 9331 9332 9333 9334 9335 9336 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 17929 17930 17931 17932 17933 17934 7699 7700 7701 7702 7703 7704 7693 7694 7695 7696 7697 7698 7663 7664 7665 7666 7667 7668 17923 17924 17925 17926 17927 17928 48 9367 9368 9369 9370 9371 9372 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 17935 17936 17937 17938 17939 17940 7759 7760 7761 7762 7763 7764 7753 7754 7755 7756 7757 7758 7699 7700 7701 7702 7703 7704 17929 17930 17931 17932 17933 17934 48 9427 9428 9429 9430 9431 9432 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 17941 17942 17943 17944 17945 17946 7789 7790 7791 7792 7793 7794 7783 7784 7785 7786 7787 7788 7759 7760 7761 7762 7763 7764 17935 17936 17937 17938 17939 17940 48 9457 9458 9459 9460 9461 9462 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 17947 17948 17949 17950 17951 17952 7819 7820 7821 7822 7823 7824 7813 7814 7815 7816 7817 7818 7789 7790 7791 7792 7793 7794 17941 17942 17943 17944 17945 17946 48 9487 9488 9489 9490 9491 9492 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 17953 17954 17955 17956 17957 17958 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7819 7820 7821 7822 7823 7824 17947 17948 17949 17950 17951 17952 48 9517 9518 9519 9520 9521 9522 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 17959 17960 17961 17962 17963 17964 7909 7910 7911 7912 7913 7914 7903 7904 7905 7906 7907 7908 7867 7868 7869 7870 7871 7872 17953 17954 17955 17956 17957 17958 48 9547 9548 9549 9550 9551 9552 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 17965 17966 17967 17968 17969 17970 7939 7940 7941 7942 7943 7944 7933 7934 7935 7936 7937 7938 7909 7910 7911 7912 7913 7914 17959 17960 17961 17962 17963 17964 48 9577 9578 9579 9580 9581 9582 9631 9632 9633 9634 9635 9636 9625 9626 9627 9628 9629 9630 17971 17972 17973 17974 17975 17976 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7939 7940 7941 7942 7943 7944 17965 17966 17967 17968 17969 17970 48 9625 9626 9627 9628 9629 9630 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 17977 17978 17979 17980 17981 17982 8029 8030 8031 8032 8033 8034 8023 8024 8025 8026 8027 8028 7987 7988 7989 7990 7991 7992 17971 17972 17973 17974 17975 17976 48 9667 9668 9669 9670 9671 9672 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 17983 17984 17985 17986 17987 17988 8059 8060 8061 8062 8063 8064 8053 8054 8055 8056 8057 8058 8029 8030 8031 8032 8033 8034 17977 17978 17979 17980 17981 17982 48 9697 9698 9699 9700 9701 9702 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 17989 17990 17991 17992 17993 17994 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8059 8060 8061 8062 8063 8064 17983 17984 17985 17986 17987 17988 48 9727 9728 9729 9730 9731 9732 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 17995 17996 17997 17998 17999 18000 8149 8150 8151 8152 8153 8154 8143 8144 8145 8146 8147 8148 8107 8108 8109 8110 8111 8112 17989 17990 17991 17992 17993 17994 48 9757 9758 9759 9760 9761 9762 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 18001 18002 18003 18004 18005 18006 8179 8180 8181 8182 8183 8184 8173 8174 8175 8176 8177 8178 8149 8150 8151 8152 8153 8154 17995 17996 17997 17998 17999 18000 48 9787 9788 9789 9790 9791 9792 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 18007 18008 18009 18010 18011 18012 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8179 8180 8181 8182 8183 8184 18001 18002 18003 18004 18005 18006 48 9817 9818 9819 9820 9821 9822 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 18013 18014 18015 18016 18017 18018 8269 8270 8271 8272 8273 8274 8263 8264 8265 8266 8267 8268 8227 8228 8229 8230 8231 8232 18007 18008 18009 18010 18011 18012 48 9847 9848 9849 9850 9851 9852 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 18019 18020 18021 18022 18023 18024 8299 8300 8301 8302 8303 8304 8293 8294 8295 8296 8297 8298 8269 8270 8271 8272 8273 8274 18013 18014 18015 18016 18017 18018 48 9877 9878 9879 9880 9881 9882 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 18025 18026 18027 18028 18029 18030 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8299 8300 8301 8302 8303 8304 18019 18020 18021 18022 18023 18024 48 9907 9908 9909 9910 9911 9912 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 18031 18032 18033 18034 18035 18036 8389 8390 8391 8392 8393 8394 8383 8384 8385 8386 8387 8388 8347 8348 8349 8350 8351 8352 18025 18026 18027 18028 18029 18030 48 9937 9938 9939 9940 9941 9942 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 18037 18038 18039 18040 18041 18042 8419 8420 8421 8422 8423 8424 8413 8414 8415 8416 8417 8418 8389 8390 8391 8392 8393 8394 18031 18032 18033 18034 18035 18036 48 9967 9968 9969 9970 9971 9972 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 18043 18044 18045 18046 18047 18048 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8419 8420 8421 8422 8423 8424 18037 18038 18039 18040 18041 18042 48 9997 9998 9999 10000 10001 10002 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 18049 18050 18051 18052 18053 18054 8509 8510 8511 8512 8513 8514 8503 8504 8505 8506 8507 8508 8467 8468 8469 8470 8471 8472 18043 18044 18045 18046 18047 18048 48 10027 10028 10029 10030 10031 10032 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 18055 18056 18057 18058 18059 18060 8539 8540 8541 8542 8543 8544 8533 8534 8535 8536 8537 8538 8509 8510 8511 8512 8513 8514 18049 18050 18051 18052 18053 18054 48 10057 10058 10059 10060 10061 10062 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 18061 18062 18063 18064 18065 18066 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8539 8540 8541 8542 8543 8544 18055 18056 18057 18058 18059 18060 48 10087 10088 10089 10090 10091 10092 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 18067 18068 18069 18070 18071 18072 8629 8630 8631 8632 8633 8634 8623 8624 8625 8626 8627 8628 8587 8588 8589 8590 8591 8592 18061 18062 18063 18064 18065 18066 48 10117 10118 10119 10120 10121 10122 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 18073 18074 18075 18076 18077 18078 8659 8660 8661 8662 8663 8664 8653 8654 8655 8656 8657 8658 8629 8630 8631 8632 8633 8634 18067 18068 18069 18070 18071 18072 48 10147 10148 10149 10150 10151 10152 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 18079 18080 18081 18082 18083 18084 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8659 8660 8661 8662 8663 8664 18073 18074 18075 18076 18077 18078 48 10177 10178 10179 10180 10181 10182 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 18085 18086 18087 18088 18089 18090 8749 8750 8751 8752 8753 8754 8743 8744 8745 8746 8747 8748 8707 8708 8709 8710 8711 8712 18079 18080 18081 18082 18083 18084 48 10207 10208 10209 10210 10211 10212 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 18091 18092 18093 18094 18095 18096 8779 8780 8781 8782 8783 8784 8773 8774 8775 8776 8777 8778 8749 8750 8751 8752 8753 8754 18085 18086 18087 18088 18089 18090 48 10237 10238 10239 10240 10241 10242 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 18097 18098 18099 18100 18101 18102 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8779 8780 8781 8782 8783 8784 18091 18092 18093 18094 18095 18096 48 10267 10268 10269 10270 10271 10272 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 18103 18104 18105 18106 18107 18108 8869 8870 8871 8872 8873 8874 8863 8864 8865 8866 8867 8868 8827 8828 8829 8830 8831 8832 18097 18098 18099 18100 18101 18102 48 10297 10298 10299 10300 10301 10302 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 18109 18110 18111 18112 18113 18114 8899 8900 8901 8902 8903 8904 8893 8894 8895 8896 8897 8898 8869 8870 8871 8872 8873 8874 18103 18104 18105 18106 18107 18108 48 10327 10328 10329 10330 10331 10332 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 18115 18116 18117 18118 18119 18120 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8899 8900 8901 8902 8903 8904 18109 18110 18111 18112 18113 18114 48 10357 10358 10359 10360 10361 10362 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 18121 18122 18123 18124 18125 18126 8989 8990 8991 8992 8993 8994 8983 8984 8985 8986 8987 8988 8947 8948 8949 8950 8951 8952 18115 18116 18117 18118 18119 18120 48 10387 10388 10389 10390 10391 10392 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 18127 18128 18129 18130 18131 18132 9019 9020 9021 9022 9023 9024 9013 9014 9015 9016 9017 9018 8989 8990 8991 8992 8993 8994 18121 18122 18123 18124 18125 18126 48 10417 10418 10419 10420 10421 10422 10471 10472 10473 10474 10475 10476 10465 10466 10467 10468 10469 10470 18133 18134 18135 18136 18137 18138 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9019 9020 9021 9022 9023 9024 18127 18128 18129 18130 18131 18132 48 10465 10466 10467 10468 10469 10470 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 18139 18140 18141 18142 18143 18144 9109 9110 9111 9112 9113 9114 9103 9104 9105 9106 9107 9108 9067 9068 9069 9070 9071 9072 18133 18134 18135 18136 18137 18138 48 10507 10508 10509 10510 10511 10512 10531 10532 10533 10534 10535 10536 2578 2579 2580 2581 2582 2583 3682 3683 3684 3685 3686 3687 2304 2305 2306 2307 2308 2309 9133 9134 9135 9136 9137 9138 9109 9110 9111 9112 9113 9114 18139 18140 18141 18142 18143 18144 48 4573 4574 4575 4576 4577 4578 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 18145 18146 18147 18148 18149 18150 5815 5816 5817 5818 5819 5820 5809 5810 5811 5812 5813 5814 4309 4310 4311 4312 4313 4314 5593 5594 5595 5596 5597 5598 48 7483 7484 7485 7486 7487 7488 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 18151 18152 18153 18154 18155 18156 5845 5846 5847 5848 5849 5850 5839 5840 5841 5842 5843 5844 5815 5816 5817 5818 5819 5820 18145 18146 18147 18148 18149 18150 48 7513 7514 7515 7516 7517 7518 7573 7574 7575 7576 7577 7578 7537 7538 7539 7540 7541 7542 18157 18158 18159 18160 18161 18162 5869 5870 5871 5872 5873 5874 5905 5906 5907 5908 5909 5910 5845 5846 5847 5848 5849 5850 18151 18152 18153 18154 18155 18156 48 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 18163 18164 18165 18166 18167 18168 5881 5882 5883 5884 5885 5886 5875 5876 5877 5878 5879 5880 5869 5870 5871 5872 5873 5874 18157 18158 18159 18160 18161 18162 48 7549 7550 7551 7552 7553 7554 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 18169 18170 18171 18172 18173 18174 5965 5966 5967 5968 5969 5970 5959 5960 5961 5962 5963 5964 5881 5882 5883 5884 5885 5886 18163 18164 18165 18166 18167 18168 48 7633 7634 7635 7636 7637 7638 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 18175 18176 18177 18178 18179 18180 5995 5996 5997 5998 5999 6000 5989 5990 5991 5992 5993 5994 5965 5966 5967 5968 5969 5970 18169 18170 18171 18172 18173 18174 48 7663 7664 7665 7666 7667 7668 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 18181 18182 18183 18184 18185 18186 6031 6032 6033 6034 6035 6036 6025 6026 6027 6028 6029 6030 5995 5996 5997 5998 5999 6000 18175 18176 18177 18178 18179 18180 48 7699 7700 7701 7702 7703 7704 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 18187 18188 18189 18190 18191 18192 6091 6092 6093 6094 6095 6096 6085 6086 6087 6088 6089 6090 6031 6032 6033 6034 6035 6036 18181 18182 18183 18184 18185 18186 48 7759 7760 7761 7762 7763 7764 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 18193 18194 18195 18196 18197 18198 6121 6122 6123 6124 6125 6126 6115 6116 6117 6118 6119 6120 6091 6092 6093 6094 6095 6096 18187 18188 18189 18190 18191 18192 48 7789 7790 7791 7792 7793 7794 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 18199 18200 18201 18202 18203 18204 6151 6152 6153 6154 6155 6156 6145 6146 6147 6148 6149 6150 6121 6122 6123 6124 6125 6126 18193 18194 18195 18196 18197 18198 48 7819 7820 7821 7822 7823 7824 7873 7874 7875 7876 7877 7878 7867 7868 7869 7870 7871 7872 18205 18206 18207 18208 18209 18210 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6151 6152 6153 6154 6155 6156 18199 18200 18201 18202 18203 18204 48 7867 7868 7869 7870 7871 7872 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 18211 18212 18213 18214 18215 18216 6241 6242 6243 6244 6245 6246 6235 6236 6237 6238 6239 6240 6199 6200 6201 6202 6203 6204 18205 18206 18207 18208 18209 18210 48 7909 7910 7911 7912 7913 7914 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 18217 18218 18219 18220 18221 18222 6271 6272 6273 6274 6275 6276 6265 6266 6267 6268 6269 6270 6241 6242 6243 6244 6245 6246 18211 18212 18213 18214 18215 18216 48 7939 7940 7941 7942 7943 7944 7993 7994 7995 7996 7997 7998 7987 7988 7989 7990 7991 7992 18223 18224 18225 18226 18227 18228 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6271 6272 6273 6274 6275 6276 18217 18218 18219 18220 18221 18222 48 7987 7988 7989 7990 7991 7992 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 18229 18230 18231 18232 18233 18234 6361 6362 6363 6364 6365 6366 6355 6356 6357 6358 6359 6360 6319 6320 6321 6322 6323 6324 18223 18224 18225 18226 18227 18228 48 8029 8030 8031 8032 8033 8034 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 18235 18236 18237 18238 18239 18240 6391 6392 6393 6394 6395 6396 6385 6386 6387 6388 6389 6390 6361 6362 6363 6364 6365 6366 18229 18230 18231 18232 18233 18234 48 8059 8060 8061 8062 8063 8064 8113 8114 8115 8116 8117 8118 8107 8108 8109 8110 8111 8112 18241 18242 18243 18244 18245 18246 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6391 6392 6393 6394 6395 6396 18235 18236 18237 18238 18239 18240 48 8107 8108 8109 8110 8111 8112 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 18247 18248 18249 18250 18251 18252 6481 6482 6483 6484 6485 6486 6475 6476 6477 6478 6479 6480 6439 6440 6441 6442 6443 6444 18241 18242 18243 18244 18245 18246 48 8149 8150 8151 8152 8153 8154 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 18253 18254 18255 18256 18257 18258 6511 6512 6513 6514 6515 6516 6505 6506 6507 6508 6509 6510 6481 6482 6483 6484 6485 6486 18247 18248 18249 18250 18251 18252 48 8179 8180 8181 8182 8183 8184 8233 8234 8235 8236 8237 8238 8227 8228 8229 8230 8231 8232 18259 18260 18261 18262 18263 18264 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6511 6512 6513 6514 6515 6516 18253 18254 18255 18256 18257 18258 48 8227 8228 8229 8230 8231 8232 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 18265 18266 18267 18268 18269 18270 6601 6602 6603 6604 6605 6606 6595 6596 6597 6598 6599 6600 6559 6560 6561 6562 6563 6564 18259 18260 18261 18262 18263 18264 48 8269 8270 8271 8272 8273 8274 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 18271 18272 18273 18274 18275 18276 6631 6632 6633 6634 6635 6636 6625 6626 6627 6628 6629 6630 6601 6602 6603 6604 6605 6606 18265 18266 18267 18268 18269 18270 48 8299 8300 8301 8302 8303 8304 8353 8354 8355 8356 8357 8358 8347 8348 8349 8350 8351 8352 18277 18278 18279 18280 18281 18282 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6631 6632 6633 6634 6635 6636 18271 18272 18273 18274 18275 18276 48 8347 8348 8349 8350 8351 8352 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 18283 18284 18285 18286 18287 18288 6721 6722 6723 6724 6725 6726 6715 6716 6717 6718 6719 6720 6679 6680 6681 6682 6683 6684 18277 18278 18279 18280 18281 18282 48 8389 8390 8391 8392 8393 8394 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 18289 18290 18291 18292 18293 18294 6751 6752 6753 6754 6755 6756 6745 6746 6747 6748 6749 6750 6721 6722 6723 6724 6725 6726 18283 18284 18285 18286 18287 18288 48 8419 8420 8421 8422 8423 8424 8473 8474 8475 8476 8477 8478 8467 8468 8469 8470 8471 8472 18295 18296 18297 18298 18299 18300 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6751 6752 6753 6754 6755 6756 18289 18290 18291 18292 18293 18294 48 8467 8468 8469 8470 8471 8472 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 18301 18302 18303 18304 18305 18306 6841 6842 6843 6844 6845 6846 6835 6836 6837 6838 6839 6840 6799 6800 6801 6802 6803 6804 18295 18296 18297 18298 18299 18300 48 8509 8510 8511 8512 8513 8514 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 18307 18308 18309 18310 18311 18312 6871 6872 6873 6874 6875 6876 6865 6866 6867 6868 6869 6870 6841 6842 6843 6844 6845 6846 18301 18302 18303 18304 18305 18306 48 8539 8540 8541 8542 8543 8544 8593 8594 8595 8596 8597 8598 8587 8588 8589 8590 8591 8592 18313 18314 18315 18316 18317 18318 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6871 6872 6873 6874 6875 6876 18307 18308 18309 18310 18311 18312 48 8587 8588 8589 8590 8591 8592 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 18319 18320 18321 18322 18323 18324 6961 6962 6963 6964 6965 6966 6955 6956 6957 6958 6959 6960 6919 6920 6921 6922 6923 6924 18313 18314 18315 18316 18317 18318 48 8629 8630 8631 8632 8633 8634 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 18325 18326 18327 18328 18329 18330 6991 6992 6993 6994 6995 6996 6985 6986 6987 6988 6989 6990 6961 6962 6963 6964 6965 6966 18319 18320 18321 18322 18323 18324 48 8659 8660 8661 8662 8663 8664 8713 8714 8715 8716 8717 8718 8707 8708 8709 8710 8711 8712 18331 18332 18333 18334 18335 18336 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 6991 6992 6993 6994 6995 6996 18325 18326 18327 18328 18329 18330 48 8707 8708 8709 8710 8711 8712 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 18337 18338 18339 18340 18341 18342 7081 7082 7083 7084 7085 7086 7075 7076 7077 7078 7079 7080 7039 7040 7041 7042 7043 7044 18331 18332 18333 18334 18335 18336 48 8749 8750 8751 8752 8753 8754 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 18343 18344 18345 18346 18347 18348 7111 7112 7113 7114 7115 7116 7105 7106 7107 7108 7109 7110 7081 7082 7083 7084 7085 7086 18337 18338 18339 18340 18341 18342 48 8779 8780 8781 8782 8783 8784 8833 8834 8835 8836 8837 8838 8827 8828 8829 8830 8831 8832 18349 18350 18351 18352 18353 18354 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7111 7112 7113 7114 7115 7116 18343 18344 18345 18346 18347 18348 48 8827 8828 8829 8830 8831 8832 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 18355 18356 18357 18358 18359 18360 7201 7202 7203 7204 7205 7206 7195 7196 7197 7198 7199 7200 7159 7160 7161 7162 7163 7164 18349 18350 18351 18352 18353 18354 48 8869 8870 8871 8872 8873 8874 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 18361 18362 18363 18364 18365 18366 7231 7232 7233 7234 7235 7236 7225 7226 7227 7228 7229 7230 7201 7202 7203 7204 7205 7206 18355 18356 18357 18358 18359 18360 48 8899 8900 8901 8902 8903 8904 8953 8954 8955 8956 8957 8958 8947 8948 8949 8950 8951 8952 18367 18368 18369 18370 18371 18372 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7231 7232 7233 7234 7235 7236 18361 18362 18363 18364 18365 18366 48 8947 8948 8949 8950 8951 8952 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 18373 18374 18375 18376 18377 18378 7321 7322 7323 7324 7325 7326 7315 7316 7317 7318 7319 7320 7279 7280 7281 7282 7283 7284 18367 18368 18369 18370 18371 18372 48 8989 8990 8991 8992 8993 8994 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 18379 18380 18381 18382 18383 18384 7351 7352 7353 7354 7355 7356 7345 7346 7347 7348 7349 7350 7321 7322 7323 7324 7325 7326 18373 18374 18375 18376 18377 18378 48 9019 9020 9021 9022 9023 9024 9073 9074 9075 9076 9077 9078 9067 9068 9069 9070 9071 9072 18385 18386 18387 18388 18389 18390 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7351 7352 7353 7354 7355 7356 18379 18380 18381 18382 18383 18384 48 9067 9068 9069 9070 9071 9072 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 18391 18392 18393 18394 18395 18396 7441 7442 7443 7444 7445 7446 7435 7436 7437 7438 7439 7440 7399 7400 7401 7402 7403 7404 18385 18386 18387 18388 18389 18390 48 9109 9110 9111 9112 9113 9114 9133 9134 9135 9136 9137 9138 2304 2305 2306 2307 2308 2309 3718 3719 3720 3721 3722 3723 2082 2083 2084 2085 2086 2087 7465 7466 7467 7468 7469 7470 7441 7442 7443 7444 7445 7446 18391 18392 18393 18394 18395 18396 48 5179 5180 5181 5182 5183 5184 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 18397 18398 18399 18400 18401 18402 12187 12188 12189 12190 12191 12192 15817 15818 15819 15820 15821 15822 5047 5048 5049 5050 5051 5052 5617 5618 5619 5620 5621 5622 48 14155 14156 14157 14158 14159 14160 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 18403 18404 18405 18406 18407 18408 12199 12200 12201 12202 12203 12204 12193 12194 12195 12196 12197 12198 12187 12188 12189 12190 12191 12192 18397 18398 18399 18400 18401 18402 48 14185 14186 14187 14188 14189 14190 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 18409 18410 18411 18412 18413 18414 12265 12266 12267 12268 12269 12270 12259 12260 12261 12262 12263 12264 12199 12200 12201 12202 12203 12204 18403 18404 18405 18406 18407 18408 48 14215 14216 14217 14218 14219 14220 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 18415 18416 18417 18418 18419 18420 12307 12308 12309 12310 12311 12312 12301 12302 12303 12304 12305 12306 12265 12266 12267 12268 12269 12270 18409 18410 18411 18412 18413 18414 48 14245 14246 14247 14248 14249 14250 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 18421 18422 18423 18424 18425 18426 12349 12350 12351 12352 12353 12354 12343 12344 12345 12346 12347 12348 12307 12308 12309 12310 12311 12312 18415 18416 18417 18418 18419 18420 48 14275 14276 14277 14278 14279 14280 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 18427 18428 18429 18430 18431 18432 12391 12392 12393 12394 12395 12396 12385 12386 12387 12388 12389 12390 12349 12350 12351 12352 12353 12354 18421 18422 18423 18424 18425 18426 48 14305 14306 14307 14308 14309 14310 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 18433 18434 18435 18436 18437 18438 12433 12434 12435 12436 12437 12438 12427 12428 12429 12430 12431 12432 12391 12392 12393 12394 12395 12396 18427 18428 18429 18430 18431 18432 48 14335 14336 14337 14338 14339 14340 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 18439 18440 18441 18442 18443 18444 12475 12476 12477 12478 12479 12480 12469 12470 12471 12472 12473 12474 12433 12434 12435 12436 12437 12438 18433 18434 18435 18436 18437 18438 48 14365 14366 14367 14368 14369 14370 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 18445 18446 18447 18448 18449 18450 12523 12524 12525 12526 12527 12528 12517 12518 12519 12520 12521 12522 12475 12476 12477 12478 12479 12480 18439 18440 18441 18442 18443 18444 48 14395 14396 14397 14398 14399 14400 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 18451 18452 18453 18454 18455 18456 12571 12572 12573 12574 12575 12576 12565 12566 12567 12568 12569 12570 12523 12524 12525 12526 12527 12528 18445 18446 18447 18448 18449 18450 48 14425 14426 14427 14428 14429 14430 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 18457 18458 18459 18460 18461 18462 12619 12620 12621 12622 12623 12624 12613 12614 12615 12616 12617 12618 12571 12572 12573 12574 12575 12576 18451 18452 18453 18454 18455 18456 48 14455 14456 14457 14458 14459 14460 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 18463 18464 18465 18466 18467 18468 12667 12668 12669 12670 12671 12672 12661 12662 12663 12664 12665 12666 12619 12620 12621 12622 12623 12624 18457 18458 18459 18460 18461 18462 48 14485 14486 14487 14488 14489 14490 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 18469 18470 18471 18472 18473 18474 12715 12716 12717 12718 12719 12720 12709 12710 12711 12712 12713 12714 12667 12668 12669 12670 12671 12672 18463 18464 18465 18466 18467 18468 48 14515 14516 14517 14518 14519 14520 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 18475 18476 18477 18478 18479 18480 12763 12764 12765 12766 12767 12768 12757 12758 12759 12760 12761 12762 12715 12716 12717 12718 12719 12720 18469 18470 18471 18472 18473 18474 48 14545 14546 14547 14548 14549 14550 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 18481 18482 18483 18484 18485 18486 12811 12812 12813 12814 12815 12816 12805 12806 12807 12808 12809 12810 12763 12764 12765 12766 12767 12768 18475 18476 18477 18478 18479 18480 48 14575 14576 14577 14578 14579 14580 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 18487 18488 18489 18490 18491 18492 12859 12860 12861 12862 12863 12864 12853 12854 12855 12856 12857 12858 12811 12812 12813 12814 12815 12816 18481 18482 18483 18484 18485 18486 48 14605 14606 14607 14608 14609 14610 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 18493 18494 18495 18496 18497 18498 12907 12908 12909 12910 12911 12912 12901 12902 12903 12904 12905 12906 12859 12860 12861 12862 12863 12864 18487 18488 18489 18490 18491 18492 48 14635 14636 14637 14638 14639 14640 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 18499 18500 18501 18502 18503 18504 12955 12956 12957 12958 12959 12960 12949 12950 12951 12952 12953 12954 12907 12908 12909 12910 12911 12912 18493 18494 18495 18496 18497 18498 48 14665 14666 14667 14668 14669 14670 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 18505 18506 18507 18508 18509 18510 13003 13004 13005 13006 13007 13008 12997 12998 12999 13000 13001 13002 12955 12956 12957 12958 12959 12960 18499 18500 18501 18502 18503 18504 48 14695 14696 14697 14698 14699 14700 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 18511 18512 18513 18514 18515 18516 13051 13052 13053 13054 13055 13056 13045 13046 13047 13048 13049 13050 13003 13004 13005 13006 13007 13008 18505 18506 18507 18508 18509 18510 48 14725 14726 14727 14728 14729 14730 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 18517 18518 18519 18520 18521 18522 13099 13100 13101 13102 13103 13104 13093 13094 13095 13096 13097 13098 13051 13052 13053 13054 13055 13056 18511 18512 18513 18514 18515 18516 48 14755 14756 14757 14758 14759 14760 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 18523 18524 18525 18526 18527 18528 13147 13148 13149 13150 13151 13152 13141 13142 13143 13144 13145 13146 13099 13100 13101 13102 13103 13104 18517 18518 18519 18520 18521 18522 48 14785 14786 14787 14788 14789 14790 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 18529 18530 18531 18532 18533 18534 13195 13196 13197 13198 13199 13200 13189 13190 13191 13192 13193 13194 13147 13148 13149 13150 13151 13152 18523 18524 18525 18526 18527 18528 48 14815 14816 14817 14818 14819 14820 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 18535 18536 18537 18538 18539 18540 13243 13244 13245 13246 13247 13248 13237 13238 13239 13240 13241 13242 13195 13196 13197 13198 13199 13200 18529 18530 18531 18532 18533 18534 48 14845 14846 14847 14848 14849 14850 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 18541 18542 18543 18544 18545 18546 13291 13292 13293 13294 13295 13296 13285 13286 13287 13288 13289 13290 13243 13244 13245 13246 13247 13248 18535 18536 18537 18538 18539 18540 48 14875 14876 14877 14878 14879 14880 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 18547 18548 18549 18550 18551 18552 13339 13340 13341 13342 13343 13344 13333 13334 13335 13336 13337 13338 13291 13292 13293 13294 13295 13296 18541 18542 18543 18544 18545 18546 48 14905 14906 14907 14908 14909 14910 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 18553 18554 18555 18556 18557 18558 13387 13388 13389 13390 13391 13392 13381 13382 13383 13384 13385 13386 13339 13340 13341 13342 13343 13344 18547 18548 18549 18550 18551 18552 48 14935 14936 14937 14938 14939 14940 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 18559 18560 18561 18562 18563 18564 13435 13436 13437 13438 13439 13440 13429 13430 13431 13432 13433 13434 13387 13388 13389 13390 13391 13392 18553 18554 18555 18556 18557 18558 48 14965 14966 14967 14968 14969 14970 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 18565 18566 18567 18568 18569 18570 13483 13484 13485 13486 13487 13488 13477 13478 13479 13480 13481 13482 13435 13436 13437 13438 13439 13440 18559 18560 18561 18562 18563 18564 48 14995 14996 14997 14998 14999 15000 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 18571 18572 18573 18574 18575 18576 13531 13532 13533 13534 13535 13536 13525 13526 13527 13528 13529 13530 13483 13484 13485 13486 13487 13488 18565 18566 18567 18568 18569 18570 48 15025 15026 15027 15028 15029 15030 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 18577 18578 18579 18580 18581 18582 13579 13580 13581 13582 13583 13584 13573 13574 13575 13576 13577 13578 13531 13532 13533 13534 13535 13536 18571 18572 18573 18574 18575 18576 48 15055 15056 15057 15058 15059 15060 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 18583 18584 18585 18586 18587 18588 13627 13628 13629 13630 13631 13632 13621 13622 13623 13624 13625 13626 13579 13580 13581 13582 13583 13584 18577 18578 18579 18580 18581 18582 48 15085 15086 15087 15088 15089 15090 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 18589 18590 18591 18592 18593 18594 13675 13676 13677 13678 13679 13680 13669 13670 13671 13672 13673 13674 13627 13628 13629 13630 13631 13632 18583 18584 18585 18586 18587 18588 48 15115 15116 15117 15118 15119 15120 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 18595 18596 18597 18598 18599 18600 13723 13724 13725 13726 13727 13728 13717 13718 13719 13720 13721 13722 13675 13676 13677 13678 13679 13680 18589 18590 18591 18592 18593 18594 48 15145 15146 15147 15148 15149 15150 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 18601 18602 18603 18604 18605 18606 13771 13772 13773 13774 13775 13776 13765 13766 13767 13768 13769 13770 13723 13724 13725 13726 13727 13728 18595 18596 18597 18598 18599 18600 48 15175 15176 15177 15178 15179 15180 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 18607 18608 18609 18610 18611 18612 13819 13820 13821 13822 13823 13824 13813 13814 13815 13816 13817 13818 13771 13772 13773 13774 13775 13776 18601 18602 18603 18604 18605 18606 48 15205 15206 15207 15208 15209 15210 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 18613 18614 18615 18616 18617 18618 13867 13868 13869 13870 13871 13872 13861 13862 13863 13864 13865 13866 13819 13820 13821 13822 13823 13824 18607 18608 18609 18610 18611 18612 48 15235 15236 15237 15238 15239 15240 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 18619 18620 18621 18622 18623 18624 13915 13916 13917 13918 13919 13920 13909 13910 13911 13912 13913 13914 13867 13868 13869 13870 13871 13872 18613 18614 18615 18616 18617 18618 48 15265 15266 15267 15268 15269 15270 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 18625 18626 18627 18628 18629 18630 13963 13964 13965 13966 13967 13968 13957 13958 13959 13960 13961 13962 13915 13916 13917 13918 13919 13920 18619 18620 18621 18622 18623 18624 48 15295 15296 15297 15298 15299 15300 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 18631 18632 18633 18634 18635 18636 14011 14012 14013 14014 14015 14016 14005 14006 14007 14008 14009 14010 13963 13964 13965 13966 13967 13968 18625 18626 18627 18628 18629 18630 48 15325 15326 15327 15328 15329 15330 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 18637 18638 18639 18640 18641 18642 14059 14060 14061 14062 14063 14064 14053 14054 14055 14056 14057 14058 14011 14012 14013 14014 14015 14016 18631 18632 18633 18634 18635 18636 48 15355 15356 15357 15358 15359 15360 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 18643 18644 18645 18646 18647 18648 14107 14108 14109 14110 14111 14112 14101 14102 14103 14104 14105 14106 14059 14060 14061 14062 14063 14064 18637 18638 18639 18640 18641 18642 48 15385 15386 15387 15388 15389 15390 15409 15410 15411 15412 15413 15414 3202 3203 3204 3205 3206 3207 3778 3779 3780 3781 3782 3783 3016 3017 3018 3019 3020 3021 15847 15848 15849 15850 15851 15852 14107 14108 14109 14110 14111 14112 18643 18644 18645 18646 18647 18648 48 12571 12572 12573 12574 12575 12576 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 18649 18650 18651 18652 18653 18654 10909 10910 10911 10912 10913 10914 10903 10904 10905 10906 10907 10908 10897 10898 10899 10900 10901 10902 18655 18656 18657 18658 18659 18660 48 12715 12716 12717 12718 12719 12720 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 18661 18662 18663 18664 18665 18666 11029 11030 11031 11032 11033 11034 11023 11024 11025 11026 11027 11028 11017 11018 11019 11020 11021 11022 18667 18668 18669 18670 18671 18672 48 12859 12860 12861 12862 12863 12864 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 18673 18674 18675 18676 18677 18678 11149 11150 11151 11152 11153 11154 11143 11144 11145 11146 11147 11148 11137 11138 11139 11140 11141 11142 18679 18680 18681 18682 18683 18684 48 13003 13004 13005 13006 13007 13008 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 18685 18686 18687 18688 18689 18690 11269 11270 11271 11272 11273 11274 11263 11264 11265 11266 11267 11268 11257 11258 11259 11260 11261 11262 18691 18692 18693 18694 18695 18696 48 13147 13148 13149 13150 13151 13152 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 18697 18698 18699 18700 18701 18702 11389 11390 11391 11392 11393 11394 11383 11384 11385 11386 11387 11388 11377 11378 11379 11380 11381 11382 18703 18704 18705 18706 18707 18708 48 13291 13292 13293 13294 13295 13296 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 18709 18710 18711 18712 18713 18714 11509 11510 11511 11512 11513 11514 11503 11504 11505 11506 11507 11508 11497 11498 11499 11500 11501 11502 18715 18716 18717 18718 18719 18720 48 13435 13436 13437 13438 13439 13440 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 18721 18722 18723 18724 18725 18726 11629 11630 11631 11632 11633 11634 11623 11624 11625 11626 11627 11628 11617 11618 11619 11620 11621 11622 18727 18728 18729 18730 18731 18732 48 13579 13580 13581 13582 13583 13584 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 18733 18734 18735 18736 18737 18738 11749 11750 11751 11752 11753 11754 11743 11744 11745 11746 11747 11748 11737 11738 11739 11740 11741 11742 18739 18740 18741 18742 18743 18744 48 13723 13724 13725 13726 13727 13728 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 18745 18746 18747 18748 18749 18750 11869 11870 11871 11872 11873 11874 11863 11864 11865 11866 11867 11868 11857 11858 11859 11860 11861 11862 18751 18752 18753 18754 18755 18756 48 13867 13868 13869 13870 13871 13872 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 18757 18758 18759 18760 18761 18762 11989 11990 11991 11992 11993 11994 11983 11984 11985 11986 11987 11988 11977 11978 11979 11980 11981 11982 18763 18764 18765 18766 18767 18768 48 14011 14012 14013 14014 14015 14016 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 18769 18770 18771 18772 18773 18774 12109 12110 12111 12112 12113 12114 12103 12104 12105 12106 12107 12108 12097 12098 12099 12100 12101 12102 18775 18776 18777 18778 18779 18780 48 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 18781 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18799 18800 18801 18802 18803 18804 18793 18794 18795 18796 18797 18798 18805 18806 18807 18808 18809 18810 48 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 18811 18812 18813 18814 18815 18816 9613 9614 9615 9616 9617 9618 9607 9608 9609 9610 9611 9612 9601 9602 9603 9604 9605 9606 18817 18818 18819 18820 18821 18822 48 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 18823 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18841 18842 18843 18844 18845 18846 18835 18836 18837 18838 18839 18840 18847 18848 18849 18850 18851 18852 48 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 18853 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18871 18872 18873 18874 18875 18876 18865 18866 18867 18868 18869 18870 18877 18878 18879 18880 18881 18882 48 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 18883 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18901 18902 18903 18904 18905 18906 18895 18896 18897 18898 18899 18900 18907 18908 18909 18910 18911 18912 48 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 18913 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18931 18932 18933 18934 18935 18936 18925 18926 18927 18928 18929 18930 18937 18938 18939 18940 18941 18942 48 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 18943 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18961 18962 18963 18964 18965 18966 18955 18956 18957 18958 18959 18960 18967 18968 18969 18970 18971 18972 48 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 18973 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18991 18992 18993 18994 18995 18996 18985 18986 18987 18988 18989 18990 18997 18998 18999 19000 19001 19002 48 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19021 19022 19023 19024 19025 19026 19015 19016 19017 19018 19019 19020 19027 19028 19029 19030 19031 19032 48 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19051 19052 19053 19054 19055 19056 19045 19046 19047 19048 19049 19050 19057 19058 19059 19060 19061 19062 48 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 19063 19064 19065 19066 19067 19068 10453 10454 10455 10456 10457 10458 10447 10448 10449 10450 10451 10452 10441 10442 10443 10444 10445 10446 19069 19070 19071 19072 19073 19074 48 18793 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18787 18788 18789 18790 18791 18792 19075 19076 19077 19078 19079 19080 7855 7856 7857 7858 7859 7860 7849 7850 7851 7852 7853 7854 7843 7844 7845 7846 7847 7848 19081 19082 19083 19084 19085 19086 48 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 19087 19088 19089 19090 19091 19092 7975 7976 7977 7978 7979 7980 7969 7970 7971 7972 7973 7974 7963 7964 7965 7966 7967 7968 19093 19094 19095 19096 19097 19098 48 18835 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18829 18830 18831 18832 18833 18834 19099 19100 19101 19102 19103 19104 8095 8096 8097 8098 8099 8100 8089 8090 8091 8092 8093 8094 8083 8084 8085 8086 8087 8088 19105 19106 19107 19108 19109 19110 48 18865 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18859 18860 18861 18862 18863 18864 19111 19112 19113 19114 19115 19116 8215 8216 8217 8218 8219 8220 8209 8210 8211 8212 8213 8214 8203 8204 8205 8206 8207 8208 19117 19118 19119 19120 19121 19122 48 18895 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18889 18890 18891 18892 18893 18894 19123 19124 19125 19126 19127 19128 8335 8336 8337 8338 8339 8340 8329 8330 8331 8332 8333 8334 8323 8324 8325 8326 8327 8328 19129 19130 19131 19132 19133 19134 48 18925 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18919 18920 18921 18922 18923 18924 19135 19136 19137 19138 19139 19140 8455 8456 8457 8458 8459 8460 8449 8450 8451 8452 8453 8454 8443 8444 8445 8446 8447 8448 19141 19142 19143 19144 19145 19146 48 18955 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18949 18950 18951 18952 18953 18954 19147 19148 19149 19150 19151 19152 8575 8576 8577 8578 8579 8580 8569 8570 8571 8572 8573 8574 8563 8564 8565 8566 8567 8568 19153 19154 19155 19156 19157 19158 48 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18979 18980 18981 18982 18983 18984 19159 19160 19161 19162 19163 19164 8695 8696 8697 8698 8699 8700 8689 8690 8691 8692 8693 8694 8683 8684 8685 8686 8687 8688 19165 19166 19167 19168 19169 19170 48 19015 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19009 19010 19011 19012 19013 19014 19171 19172 19173 19174 19175 19176 8815 8816 8817 8818 8819 8820 8809 8810 8811 8812 8813 8814 8803 8804 8805 8806 8807 8808 19177 19178 19179 19180 19181 19182 48 19045 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19039 19040 19041 19042 19043 19044 19183 19184 19185 19186 19187 19188 8935 8936 8937 8938 8939 8940 8929 8930 8931 8932 8933 8934 8923 8924 8925 8926 8927 8928 19189 19190 19191 19192 19193 19194 48 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 19195 19196 19197 19198 19199 19200 9055 9056 9057 9058 9059 9060 9049 9050 9051 9052 9053 9054 9043 9044 9045 9046 9047 9048 19201 19202 19203 19204 19205 19206 48 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 19207 19208 19209 19210 19211 19212 6187 6188 6189 6190 6191 6192 6181 6182 6183 6184 6185 6186 6175 6176 6177 6178 6179 6180 19213 19214 19215 19216 19217 19218 48 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 19219 19220 19221 19222 19223 19224 6307 6308 6309 6310 6311 6312 6301 6302 6303 6304 6305 6306 6295 6296 6297 6298 6299 6300 19225 19226 19227 19228 19229 19230 48 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 19231 19232 19233 19234 19235 19236 6427 6428 6429 6430 6431 6432 6421 6422 6423 6424 6425 6426 6415 6416 6417 6418 6419 6420 19237 19238 19239 19240 19241 19242 48 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 19243 19244 19245 19246 19247 19248 6547 6548 6549 6550 6551 6552 6541 6542 6543 6544 6545 6546 6535 6536 6537 6538 6539 6540 19249 19250 19251 19252 19253 19254 48 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 19255 19256 19257 19258 19259 19260 6667 6668 6669 6670 6671 6672 6661 6662 6663 6664 6665 6666 6655 6656 6657 6658 6659 6660 19261 19262 19263 19264 19265 19266 48 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 19267 19268 19269 19270 19271 19272 6787 6788 6789 6790 6791 6792 6781 6782 6783 6784 6785 6786 6775 6776 6777 6778 6779 6780 19273 19274 19275 19276 19277 19278 48 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 19279 19280 19281 19282 19283 19284 6907 6908 6909 6910 6911 6912 6901 6902 6903 6904 6905 6906 6895 6896 6897 6898 6899 6900 19285 19286 19287 19288 19289 19290 48 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 19291 19292 19293 19294 19295 19296 7027 7028 7029 7030 7031 7032 7021 7022 7023 7024 7025 7026 7015 7016 7017 7018 7019 7020 19297 19298 19299 19300 19301 19302 48 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 19303 19304 19305 19306 19307 19308 7147 7148 7149 7150 7151 7152 7141 7142 7143 7144 7145 7146 7135 7136 7137 7138 7139 7140 19309 19310 19311 19312 19313 19314 48 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 19315 19316 19317 19318 19319 19320 7267 7268 7269 7270 7271 7272 7261 7262 7263 7264 7265 7266 7255 7256 7257 7258 7259 7260 19321 19322 19323 19324 19325 19326 48 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 19327 19328 19329 19330 19331 19332 7387 7388 7389 7390 7391 7392 7381 7382 7383 7384 7385 7386 7375 7376 7377 7378 7379 7380 19333 19334 19335 19336 19337 19338 48 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 17137 17138 17139 17140 17141 17142 12211 12212 12213 12214 12215 12216 12223 12224 12225 12226 12227 12228 12187 12188 12189 12190 12191 12192 18397 18398 18399 18400 18401 18402 36 12241 12242 12243 12244 12245 12246 12211 12212 12213 12214 12215 12216 14167 14168 14169 14170 14171 14172 12253 12254 12255 12256 12257 12258 17137 17138 17139 17140 17141 17142 15871 15872 15873 15874 15875 15876 48 12187 12188 12189 12190 12191 12192 12223 12224 12225 12226 12227 12228 12211 12212 12213 12214 12215 12216 17389 17390 17391 17392 17393 17394 10543 10544 10545 10546 10547 10548 10783 10784 10785 10786 10787 10788 10777 10778 10779 10780 10781 10782 19339 19340 19341 19342 19343 19344 48 12211 12212 12213 12214 12215 12216 12253 12254 12255 12256 12257 12258 12241 12242 12243 12244 12245 12246 16123 16124 16125 16126 16127 16128 10573 10574 10575 10576 10577 10578 10585 10586 10587 10588 10589 10590 10543 10544 10545 10546 10547 10548 17389 17390 17391 17392 17393 17394 48 10543 10544 10545 10546 10547 10548 10585 10586 10587 10588 10589 10590 10573 10574 10575 10576 10577 10578 16375 16376 16377 16378 16379 16380 9163 9164 9165 9166 9167 9168 9157 9158 9159 9160 9161 9162 9151 9152 9153 9154 9155 9156 17641 17642 17643 17644 17645 17646 48 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 16627 16628 16629 16630 16631 16632 7495 7496 7497 7498 7499 7500 7489 7490 7491 7492 7493 7494 7483 7484 7485 7486 7487 7488 17893 17894 17895 17896 17897 17898 48 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7483 7484 7485 7486 7487 7488 18145 18146 18147 18148 18149 18150 5815 5816 5817 5818 5819 5820 6061 6062 6063 6064 6065 6066 6055 6056 6057 6058 6059 6060 19345 19346 19347 19348 19349 19350 48 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 16879 16880 16881 16882 16883 16884 5827 5828 5829 5830 5831 5832 5821 5822 5823 5824 5825 5826 5815 5816 5817 5818 5819 5820 18145 18146 18147 18148 18149 18150 48 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 17143 17144 17145 17146 17147 17148 636 637 638 639 640 641 12205 12206 12207 12208 12209 12210 12199 12200 12201 12202 12203 12204 18403 18404 18405 18406 18407 18408 36 12235 12236 12237 12238 12239 12240 636 637 638 639 640 641 14197 14198 14199 14200 14201 14202 12229 12230 12231 12232 12233 12234 17143 17144 17145 17146 17147 17148 15877 15878 15879 15880 15881 15882 48 636 637 638 639 640 641 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 16129 16130 16131 16132 16133 16134 10567 10568 10569 10570 10571 10572 10561 10562 10563 10564 10565 10566 10555 10556 10557 10558 10559 10560 17395 17396 17397 17398 17399 17400 48 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 16381 16382 16383 16384 16385 16386 9193 9194 9195 9196 9197 9198 9187 9188 9189 9190 9191 9192 9181 9182 9183 9184 9185 9186 17647 17648 17649 17650 17651 17652 48 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 16633 16634 16635 16636 16637 16638 7525 7526 7527 7528 7529 7530 7519 7520 7521 7522 7523 7524 7513 7514 7515 7516 7517 7518 17899 17900 17901 17902 17903 17904 48 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 16885 16886 16887 16888 16889 16890 5857 5858 5859 5860 5861 5862 5851 5852 5853 5854 5855 5856 5845 5846 5847 5848 5849 5850 18151 18152 18153 18154 18155 18156 48 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 17149 17150 17151 17152 17153 17154 648 649 650 651 652 653 12271 12272 12273 12274 12275 12276 12265 12266 12267 12268 12269 12270 18409 18410 18411 18412 18413 18414 36 12289 12290 12291 12292 12293 12294 648 649 650 651 652 653 14227 14228 14229 14230 14231 14232 12283 12284 12285 12286 12287 12288 17149 17150 17151 17152 17153 17154 15883 15884 15885 15886 15887 15888 48 648 649 650 651 652 653 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 16135 16136 16137 16138 16139 16140 10639 10640 10641 10642 10643 10644 10633 10634 10635 10636 10637 10638 10591 10592 10593 10594 10595 10596 17401 17402 17403 17404 17405 17406 48 10591 10592 10593 10594 10595 10596 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 16387 16388 16389 16390 16391 16392 9253 9254 9255 9256 9257 9258 9247 9248 9249 9250 9251 9252 9205 9206 9207 9208 9209 9210 17653 17654 17655 17656 17657 17658 48 9205 9206 9207 9208 9209 9210 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 16639 16640 16641 16642 16643 16644 7585 7586 7587 7588 7589 7590 7579 7580 7581 7582 7583 7584 7537 7538 7539 7540 7541 7542 17905 17906 17907 17908 17909 17910 48 7537 7538 7539 7540 7541 7542 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 16891 16892 16893 16894 16895 16896 5917 5918 5919 5920 5921 5922 5911 5912 5913 5914 5915 5916 5869 5870 5871 5872 5873 5874 18157 18158 18159 18160 18161 18162 48 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 17155 17156 17157 17158 17159 17160 660 661 662 663 664 665 12313 12314 12315 12316 12317 12318 12307 12308 12309 12310 12311 12312 18415 18416 18417 18418 18419 18420 36 12331 12332 12333 12334 12335 12336 660 661 662 663 664 665 14257 14258 14259 14260 14261 14262 12325 12326 12327 12328 12329 12330 17155 17156 17157 17158 17159 17160 15889 15890 15891 15892 15893 15894 48 660 661 662 663 664 665 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 16141 16142 16143 16144 16145 16146 10657 10658 10659 10660 10661 10662 10651 10652 10653 10654 10655 10656 10603 10604 10605 10606 10607 10608 17407 17408 17409 17410 17411 17412 48 10603 10604 10605 10606 10607 10608 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 16393 16394 16395 16396 16397 16398 9271 9272 9273 9274 9275 9276 9265 9266 9267 9268 9269 9270 9217 9218 9219 9220 9221 9222 17659 17660 17661 17662 17663 17664 48 9217 9218 9219 9220 9221 9222 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 16645 16646 16647 16648 16649 16650 7603 7604 7605 7606 7607 7608 7597 7598 7599 7600 7601 7602 7549 7550 7551 7552 7553 7554 17911 17912 17913 17914 17915 17916 48 7549 7550 7551 7552 7553 7554 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 16897 16898 16899 16900 16901 16902 5935 5936 5937 5938 5939 5940 5929 5930 5931 5932 5933 5934 5881 5882 5883 5884 5885 5886 18163 18164 18165 18166 18167 18168 48 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 17161 17162 17163 17164 17165 17166 672 673 674 675 676 677 12355 12356 12357 12358 12359 12360 12349 12350 12351 12352 12353 12354 18421 18422 18423 18424 18425 18426 36 12373 12374 12375 12376 12377 12378 672 673 674 675 676 677 14287 14288 14289 14290 14291 14292 12367 12368 12369 12370 12371 12372 17161 17162 17163 17164 17165 17166 15895 15896 15897 15898 15899 15900 48 672 673 674 675 676 677 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 16147 16148 16149 16150 16151 16152 10699 10700 10701 10702 10703 10704 10693 10694 10695 10696 10697 10698 10687 10688 10689 10690 10691 10692 17413 17414 17415 17416 17417 17418 48 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 16399 16400 16401 16402 16403 16404 9313 9314 9315 9316 9317 9318 9307 9308 9309 9310 9311 9312 9301 9302 9303 9304 9305 9306 17665 17666 17667 17668 17669 17670 48 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 16651 16652 16653 16654 16655 16656 7645 7646 7647 7648 7649 7650 7639 7640 7641 7642 7643 7644 7633 7634 7635 7636 7637 7638 17917 17918 17919 17920 17921 17922 48 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 16903 16904 16905 16906 16907 16908 5977 5978 5979 5980 5981 5982 5971 5972 5973 5974 5975 5976 5965 5966 5967 5968 5969 5970 18169 18170 18171 18172 18173 18174 48 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 17167 17168 17169 17170 17171 17172 684 685 686 687 688 689 12397 12398 12399 12400 12401 12402 12391 12392 12393 12394 12395 12396 18427 18428 18429 18430 18431 18432 36 12415 12416 12417 12418 12419 12420 684 685 686 687 688 689 14317 14318 14319 14320 14321 14322 12409 12410 12411 12412 12413 12414 17167 17168 17169 17170 17171 17172 15901 15902 15903 15904 15905 15906 48 684 685 686 687 688 689 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 16153 16154 16155 16156 16157 16158 10729 10730 10731 10732 10733 10734 10723 10724 10725 10726 10727 10728 10717 10718 10719 10720 10721 10722 17419 17420 17421 17422 17423 17424 48 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 16405 16406 16407 16408 16409 16410 9343 9344 9345 9346 9347 9348 9337 9338 9339 9340 9341 9342 9331 9332 9333 9334 9335 9336 17671 17672 17673 17674 17675 17676 48 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 16657 16658 16659 16660 16661 16662 7675 7676 7677 7678 7679 7680 7669 7670 7671 7672 7673 7674 7663 7664 7665 7666 7667 7668 17923 17924 17925 17926 17927 17928 48 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 16909 16910 16911 16912 16913 16914 6007 6008 6009 6010 6011 6012 6001 6002 6003 6004 6005 6006 5995 5996 5997 5998 5999 6000 18175 18176 18177 18178 18179 18180 48 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 17173 17174 17175 17176 17177 17178 696 697 698 699 700 701 12439 12440 12441 12442 12443 12444 12433 12434 12435 12436 12437 12438 18433 18434 18435 18436 18437 18438 36 12457 12458 12459 12460 12461 12462 696 697 698 699 700 701 14347 14348 14349 14350 14351 14352 12451 12452 12453 12454 12455 12456 17173 17174 17175 17176 17177 17178 15907 15908 15909 15910 15911 15912 48 696 697 698 699 700 701 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 16159 16160 16161 16162 16163 16164 10765 10766 10767 10768 10769 10770 10759 10760 10761 10762 10763 10764 10753 10754 10755 10756 10757 10758 17425 17426 17427 17428 17429 17430 48 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 16411 16412 16413 16414 16415 16416 9379 9380 9381 9382 9383 9384 9373 9374 9375 9376 9377 9378 9367 9368 9369 9370 9371 9372 17677 17678 17679 17680 17681 17682 48 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 16663 16664 16665 16666 16667 16668 7711 7712 7713 7714 7715 7716 7705 7706 7707 7708 7709 7710 7699 7700 7701 7702 7703 7704 17929 17930 17931 17932 17933 17934 48 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 16915 16916 16917 16918 16919 16920 6043 6044 6045 6046 6047 6048 6037 6038 6039 6040 6041 6042 6031 6032 6033 6034 6035 6036 18181 18182 18183 18184 18185 18186 48 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 17179 17180 17181 17182 17183 17184 12487 12488 12489 12490 12491 12492 12481 12482 12483 12484 12485 12486 12475 12476 12477 12478 12479 12480 18439 18440 18441 18442 18443 18444 36 12505 12506 12507 12508 12509 12510 12487 12488 12489 12490 12491 12492 14377 14378 14379 14380 14381 14382 12499 12500 12501 12502 12503 12504 17179 17180 17181 17182 17183 17184 15913 15914 15915 15916 15917 15918 48 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 17431 17432 17433 17434 17435 17436 10813 10814 10815 10816 10817 10818 19357 19358 19359 19360 19361 19362 19351 19352 19353 19354 19355 19356 19363 19364 19365 19366 19367 19368 48 12487 12488 12489 12490 12491 12492 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 16165 16166 16167 16168 16169 16170 10825 10826 10827 10828 10829 10830 10819 10820 10821 10822 10823 10824 10813 10814 10815 10816 10817 10818 17431 17432 17433 17434 17435 17436 48 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 16417 16418 16419 16420 16421 16422 9439 9440 9441 9442 9443 9444 9433 9434 9435 9436 9437 9438 9427 9428 9429 9430 9431 9432 17683 17684 17685 17686 17687 17688 48 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 16669 16670 16671 16672 16673 16674 7771 7772 7773 7774 7775 7776 7765 7766 7767 7768 7769 7770 7759 7760 7761 7762 7763 7764 17935 17936 17937 17938 17939 17940 48 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 7759 7760 7761 7762 7763 7764 18187 18188 18189 18190 18191 18192 6091 6092 6093 6094 6095 6096 19387 19388 19389 19390 19391 19392 19381 19382 19383 19384 19385 19386 19393 19394 19395 19396 19397 19398 48 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 16921 16922 16923 16924 16925 16926 6103 6104 6105 6106 6107 6108 6097 6098 6099 6100 6101 6102 6091 6092 6093 6094 6095 6096 18187 18188 18189 18190 18191 18192 48 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 17185 17186 17187 17188 17189 17190 12535 12536 12537 12538 12539 12540 12529 12530 12531 12532 12533 12534 12523 12524 12525 12526 12527 12528 18445 18446 18447 18448 18449 18450 36 12553 12554 12555 12556 12557 12558 12535 12536 12537 12538 12539 12540 14407 14408 14409 14410 14411 14412 12547 12548 12549 12550 12551 12552 17185 17186 17187 17188 17189 17190 15919 15920 15921 15922 15923 15924 48 12535 12536 12537 12538 12539 12540 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 16171 16172 16173 16174 16175 16176 10855 10856 10857 10858 10859 10860 10849 10850 10851 10852 10853 10854 10843 10844 10845 10846 10847 10848 17437 17438 17439 17440 17441 17442 48 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 16423 16424 16425 16426 16427 16428 9469 9470 9471 9472 9473 9474 9463 9464 9465 9466 9467 9468 9457 9458 9459 9460 9461 9462 17689 17690 17691 17692 17693 17694 48 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 16675 16676 16677 16678 16679 16680 7801 7802 7803 7804 7805 7806 7795 7796 7797 7798 7799 7800 7789 7790 7791 7792 7793 7794 17941 17942 17943 17944 17945 17946 48 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 16927 16928 16929 16930 16931 16932 6133 6134 6135 6136 6137 6138 6127 6128 6129 6130 6131 6132 6121 6122 6123 6124 6125 6126 18193 18194 18195 18196 18197 18198 48 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 17191 17192 17193 17194 17195 17196 12583 12584 12585 12586 12587 12588 12577 12578 12579 12580 12581 12582 12571 12572 12573 12574 12575 12576 18451 18452 18453 18454 18455 18456 36 12601 12602 12603 12604 12605 12606 12583 12584 12585 12586 12587 12588 14437 14438 14439 14440 14441 14442 12595 12596 12597 12598 12599 12600 17191 17192 17193 17194 17195 17196 15925 15926 15927 15928 15929 15930 48 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 17443 17444 17445 17446 17447 17448 10873 10874 10875 10876 10877 10878 10933 10934 10935 10936 10937 10938 10897 10898 10899 10900 10901 10902 18655 18656 18657 18658 18659 18660 48 12583 12584 12585 12586 12587 12588 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 16177 16178 16179 16180 16181 16182 10885 10886 10887 10888 10889 10890 10879 10880 10881 10882 10883 10884 10873 10874 10875 10876 10877 10878 17443 17444 17445 17446 17447 17448 48 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 16429 16430 16431 16432 16433 16434 9499 9500 9501 9502 9503 9504 9493 9494 9495 9496 9497 9498 9487 9488 9489 9490 9491 9492 17695 17696 17697 17698 17699 17700 48 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 16681 16682 16683 16684 16685 16686 7831 7832 7833 7834 7835 7836 7825 7826 7827 7828 7829 7830 7819 7820 7821 7822 7823 7824 17947 17948 17949 17950 17951 17952 48 7843 7844 7845 7846 7847 7848 7879 7880 7881 7882 7883 7884 7819 7820 7821 7822 7823 7824 18199 18200 18201 18202 18203 18204 6151 6152 6153 6154 6155 6156 6211 6212 6213 6214 6215 6216 6175 6176 6177 6178 6179 6180 19213 19214 19215 19216 19217 19218 48 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 16933 16934 16935 16936 16937 16938 6163 6164 6165 6166 6167 6168 6157 6158 6159 6160 6161 6162 6151 6152 6153 6154 6155 6156 18199 18200 18201 18202 18203 18204 48 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 17197 17198 17199 17200 17201 17202 12631 12632 12633 12634 12635 12636 12625 12626 12627 12628 12629 12630 12619 12620 12621 12622 12623 12624 18457 18458 18459 18460 18461 18462 36 12649 12650 12651 12652 12653 12654 12631 12632 12633 12634 12635 12636 14467 14468 14469 14470 14471 14472 12643 12644 12645 12646 12647 12648 17197 17198 17199 17200 17201 17202 15931 15932 15933 15934 15935 15936 48 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 17449 17450 17451 17452 17453 17454 10921 10922 10923 10924 10925 10926 10915 10916 10917 10918 10919 10920 10909 10910 10911 10912 10913 10914 18649 18650 18651 18652 18653 18654 48 12631 12632 12633 12634 12635 12636 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 16183 16184 16185 16186 16187 16188 10945 10946 10947 10948 10949 10950 10939 10940 10941 10942 10943 10944 10921 10922 10923 10924 10925 10926 17449 17450 17451 17452 17453 17454 48 10921 10922 10923 10924 10925 10926 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 16435 16436 16437 16438 16439 16440 9529 9530 9531 9532 9533 9534 9523 9524 9525 9526 9527 9528 9517 9518 9519 9520 9521 9522 17701 17702 17703 17704 17705 17706 48 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 16687 16688 16689 16690 16691 16692 7891 7892 7893 7894 7895 7896 7885 7886 7887 7888 7889 7890 7867 7868 7869 7870 7871 7872 17953 17954 17955 17956 17957 17958 48 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 18205 18206 18207 18208 18209 18210 6199 6200 6201 6202 6203 6204 6193 6194 6195 6196 6197 6198 6187 6188 6189 6190 6191 6192 19207 19208 19209 19210 19211 19212 48 7867 7868 7869 7870 7871 7872 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 16939 16940 16941 16942 16943 16944 6223 6224 6225 6226 6227 6228 6217 6218 6219 6220 6221 6222 6199 6200 6201 6202 6203 6204 18205 18206 18207 18208 18209 18210 48 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 17203 17204 17205 17206 17207 17208 12679 12680 12681 12682 12683 12684 12673 12674 12675 12676 12677 12678 12667 12668 12669 12670 12671 12672 18463 18464 18465 18466 18467 18468 36 12697 12698 12699 12700 12701 12702 12679 12680 12681 12682 12683 12684 14497 14498 14499 14500 14501 14502 12691 12692 12693 12694 12695 12696 17203 17204 17205 17206 17207 17208 15937 15938 15939 15940 15941 15942 48 12679 12680 12681 12682 12683 12684 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 16189 16190 16191 16192 16193 16194 10975 10976 10977 10978 10979 10980 10969 10970 10971 10972 10973 10974 10963 10964 10965 10966 10967 10968 17455 17456 17457 17458 17459 17460 48 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 16441 16442 16443 16444 16445 16446 9559 9560 9561 9562 9563 9564 9553 9554 9555 9556 9557 9558 9547 9548 9549 9550 9551 9552 17707 17708 17709 17710 17711 17712 48 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 16693 16694 16695 16696 16697 16698 7921 7922 7923 7924 7925 7926 7915 7916 7917 7918 7919 7920 7909 7910 7911 7912 7913 7914 17959 17960 17961 17962 17963 17964 48 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 16945 16946 16947 16948 16949 16950 6253 6254 6255 6256 6257 6258 6247 6248 6249 6250 6251 6252 6241 6242 6243 6244 6245 6246 18211 18212 18213 18214 18215 18216 48 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 17209 17210 17211 17212 17213 17214 12727 12728 12729 12730 12731 12732 12721 12722 12723 12724 12725 12726 12715 12716 12717 12718 12719 12720 18469 18470 18471 18472 18473 18474 36 12745 12746 12747 12748 12749 12750 12727 12728 12729 12730 12731 12732 14527 14528 14529 14530 14531 14532 12739 12740 12741 12742 12743 12744 17209 17210 17211 17212 17213 17214 15943 15944 15945 15946 15947 15948 48 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 17461 17462 17463 17464 17465 17466 10993 10994 10995 10996 10997 10998 11053 11054 11055 11056 11057 11058 11017 11018 11019 11020 11021 11022 18667 18668 18669 18670 18671 18672 48 12727 12728 12729 12730 12731 12732 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 16195 16196 16197 16198 16199 16200 11005 11006 11007 11008 11009 11010 10999 11000 11001 11002 11003 11004 10993 10994 10995 10996 10997 10998 17461 17462 17463 17464 17465 17466 48 11017 11018 11019 11020 11021 11022 11053 11054 11055 11056 11057 11058 10993 10994 10995 10996 10997 10998 17713 17714 17715 17716 17717 17718 9577 9578 9579 9580 9581 9582 9637 9638 9639 9640 9641 9642 9601 9602 9603 9604 9605 9606 18817 18818 18819 18820 18821 18822 48 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 16447 16448 16449 16450 16451 16452 9589 9590 9591 9592 9593 9594 9583 9584 9585 9586 9587 9588 9577 9578 9579 9580 9581 9582 17713 17714 17715 17716 17717 17718 48 9601 9602 9603 9604 9605 9606 9637 9638 9639 9640 9641 9642 9577 9578 9579 9580 9581 9582 17965 17966 17967 17968 17969 17970 7939 7940 7941 7942 7943 7944 7999 8000 8001 8002 8003 8004 7963 7964 7965 7966 7967 7968 19093 19094 19095 19096 19097 19098 48 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 16699 16700 16701 16702 16703 16704 7951 7952 7953 7954 7955 7956 7945 7946 7947 7948 7949 7950 7939 7940 7941 7942 7943 7944 17965 17966 17967 17968 17969 17970 48 7963 7964 7965 7966 7967 7968 7999 8000 8001 8002 8003 8004 7939 7940 7941 7942 7943 7944 18217 18218 18219 18220 18221 18222 6271 6272 6273 6274 6275 6276 6331 6332 6333 6334 6335 6336 6295 6296 6297 6298 6299 6300 19225 19226 19227 19228 19229 19230 48 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 16951 16952 16953 16954 16955 16956 6283 6284 6285 6286 6287 6288 6277 6278 6279 6280 6281 6282 6271 6272 6273 6274 6275 6276 18217 18218 18219 18220 18221 18222 48 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 17215 17216 17217 17218 17219 17220 12775 12776 12777 12778 12779 12780 12769 12770 12771 12772 12773 12774 12763 12764 12765 12766 12767 12768 18475 18476 18477 18478 18479 18480 36 12793 12794 12795 12796 12797 12798 12775 12776 12777 12778 12779 12780 14557 14558 14559 14560 14561 14562 12787 12788 12789 12790 12791 12792 17215 17216 17217 17218 17219 17220 15949 15950 15951 15952 15953 15954 48 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 17467 17468 17469 17470 17471 17472 11041 11042 11043 11044 11045 11046 11035 11036 11037 11038 11039 11040 11029 11030 11031 11032 11033 11034 18661 18662 18663 18664 18665 18666 48 12775 12776 12777 12778 12779 12780 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 16201 16202 16203 16204 16205 16206 11065 11066 11067 11068 11069 11070 11059 11060 11061 11062 11063 11064 11041 11042 11043 11044 11045 11046 17467 17468 17469 17470 17471 17472 48 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 17719 17720 17721 17722 17723 17724 9625 9626 9627 9628 9629 9630 9619 9620 9621 9622 9623 9624 9613 9614 9615 9616 9617 9618 18811 18812 18813 18814 18815 18816 48 11041 11042 11043 11044 11045 11046 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 16453 16454 16455 16456 16457 16458 9649 9650 9651 9652 9653 9654 9643 9644 9645 9646 9647 9648 9625 9626 9627 9628 9629 9630 17719 17720 17721 17722 17723 17724 48 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 17971 17972 17973 17974 17975 17976 7987 7988 7989 7990 7991 7992 7981 7982 7983 7984 7985 7986 7975 7976 7977 7978 7979 7980 19087 19088 19089 19090 19091 19092 48 9625 9626 9627 9628 9629 9630 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 16705 16706 16707 16708 16709 16710 8011 8012 8013 8014 8015 8016 8005 8006 8007 8008 8009 8010 7987 7988 7989 7990 7991 7992 17971 17972 17973 17974 17975 17976 48 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 18223 18224 18225 18226 18227 18228 6319 6320 6321 6322 6323 6324 6313 6314 6315 6316 6317 6318 6307 6308 6309 6310 6311 6312 19219 19220 19221 19222 19223 19224 48 7987 7988 7989 7990 7991 7992 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 16957 16958 16959 16960 16961 16962 6343 6344 6345 6346 6347 6348 6337 6338 6339 6340 6341 6342 6319 6320 6321 6322 6323 6324 18223 18224 18225 18226 18227 18228 48 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 17221 17222 17223 17224 17225 17226 12823 12824 12825 12826 12827 12828 12817 12818 12819 12820 12821 12822 12811 12812 12813 12814 12815 12816 18481 18482 18483 18484 18485 18486 36 12841 12842 12843 12844 12845 12846 12823 12824 12825 12826 12827 12828 14587 14588 14589 14590 14591 14592 12835 12836 12837 12838 12839 12840 17221 17222 17223 17224 17225 17226 15955 15956 15957 15958 15959 15960 48 12823 12824 12825 12826 12827 12828 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 16207 16208 16209 16210 16211 16212 11095 11096 11097 11098 11099 11100 11089 11090 11091 11092 11093 11094 11083 11084 11085 11086 11087 11088 17473 17474 17475 17476 17477 17478 48 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 16459 16460 16461 16462 16463 16464 9679 9680 9681 9682 9683 9684 9673 9674 9675 9676 9677 9678 9667 9668 9669 9670 9671 9672 17725 17726 17727 17728 17729 17730 48 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 16711 16712 16713 16714 16715 16716 8041 8042 8043 8044 8045 8046 8035 8036 8037 8038 8039 8040 8029 8030 8031 8032 8033 8034 17977 17978 17979 17980 17981 17982 48 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 16963 16964 16965 16966 16967 16968 6373 6374 6375 6376 6377 6378 6367 6368 6369 6370 6371 6372 6361 6362 6363 6364 6365 6366 18229 18230 18231 18232 18233 18234 48 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 17227 17228 17229 17230 17231 17232 12871 12872 12873 12874 12875 12876 12865 12866 12867 12868 12869 12870 12859 12860 12861 12862 12863 12864 18487 18488 18489 18490 18491 18492 36 12889 12890 12891 12892 12893 12894 12871 12872 12873 12874 12875 12876 14617 14618 14619 14620 14621 14622 12883 12884 12885 12886 12887 12888 17227 17228 17229 17230 17231 17232 15961 15962 15963 15964 15965 15966 48 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 17479 17480 17481 17482 17483 17484 11113 11114 11115 11116 11117 11118 11173 11174 11175 11176 11177 11178 11137 11138 11139 11140 11141 11142 18679 18680 18681 18682 18683 18684 48 12871 12872 12873 12874 12875 12876 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 16213 16214 16215 16216 16217 16218 11125 11126 11127 11128 11129 11130 11119 11120 11121 11122 11123 11124 11113 11114 11115 11116 11117 11118 17479 17480 17481 17482 17483 17484 48 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 16465 16466 16467 16468 16469 16470 9709 9710 9711 9712 9713 9714 9703 9704 9705 9706 9707 9708 9697 9698 9699 9700 9701 9702 17731 17732 17733 17734 17735 17736 48 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 16717 16718 16719 16720 16721 16722 8071 8072 8073 8074 8075 8076 8065 8066 8067 8068 8069 8070 8059 8060 8061 8062 8063 8064 17983 17984 17985 17986 17987 17988 48 8083 8084 8085 8086 8087 8088 8119 8120 8121 8122 8123 8124 8059 8060 8061 8062 8063 8064 18235 18236 18237 18238 18239 18240 6391 6392 6393 6394 6395 6396 6451 6452 6453 6454 6455 6456 6415 6416 6417 6418 6419 6420 19237 19238 19239 19240 19241 19242 48 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 16969 16970 16971 16972 16973 16974 6403 6404 6405 6406 6407 6408 6397 6398 6399 6400 6401 6402 6391 6392 6393 6394 6395 6396 18235 18236 18237 18238 18239 18240 48 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 17233 17234 17235 17236 17237 17238 12919 12920 12921 12922 12923 12924 12913 12914 12915 12916 12917 12918 12907 12908 12909 12910 12911 12912 18493 18494 18495 18496 18497 18498 36 12937 12938 12939 12940 12941 12942 12919 12920 12921 12922 12923 12924 14647 14648 14649 14650 14651 14652 12931 12932 12933 12934 12935 12936 17233 17234 17235 17236 17237 17238 15967 15968 15969 15970 15971 15972 48 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 17485 17486 17487 17488 17489 17490 11161 11162 11163 11164 11165 11166 11155 11156 11157 11158 11159 11160 11149 11150 11151 11152 11153 11154 18673 18674 18675 18676 18677 18678 48 12919 12920 12921 12922 12923 12924 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 16219 16220 16221 16222 16223 16224 11185 11186 11187 11188 11189 11190 11179 11180 11181 11182 11183 11184 11161 11162 11163 11164 11165 11166 17485 17486 17487 17488 17489 17490 48 11161 11162 11163 11164 11165 11166 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 16471 16472 16473 16474 16475 16476 9739 9740 9741 9742 9743 9744 9733 9734 9735 9736 9737 9738 9727 9728 9729 9730 9731 9732 17737 17738 17739 17740 17741 17742 48 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 16723 16724 16725 16726 16727 16728 8131 8132 8133 8134 8135 8136 8125 8126 8127 8128 8129 8130 8107 8108 8109 8110 8111 8112 17989 17990 17991 17992 17993 17994 48 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 18241 18242 18243 18244 18245 18246 6439 6440 6441 6442 6443 6444 6433 6434 6435 6436 6437 6438 6427 6428 6429 6430 6431 6432 19231 19232 19233 19234 19235 19236 48 8107 8108 8109 8110 8111 8112 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 16975 16976 16977 16978 16979 16980 6463 6464 6465 6466 6467 6468 6457 6458 6459 6460 6461 6462 6439 6440 6441 6442 6443 6444 18241 18242 18243 18244 18245 18246 48 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 17239 17240 17241 17242 17243 17244 12967 12968 12969 12970 12971 12972 12961 12962 12963 12964 12965 12966 12955 12956 12957 12958 12959 12960 18499 18500 18501 18502 18503 18504 36 12985 12986 12987 12988 12989 12990 12967 12968 12969 12970 12971 12972 14677 14678 14679 14680 14681 14682 12979 12980 12981 12982 12983 12984 17239 17240 17241 17242 17243 17244 15973 15974 15975 15976 15977 15978 48 12967 12968 12969 12970 12971 12972 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 16225 16226 16227 16228 16229 16230 11215 11216 11217 11218 11219 11220 11209 11210 11211 11212 11213 11214 11203 11204 11205 11206 11207 11208 17491 17492 17493 17494 17495 17496 48 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 16477 16478 16479 16480 16481 16482 9769 9770 9771 9772 9773 9774 9763 9764 9765 9766 9767 9768 9757 9758 9759 9760 9761 9762 17743 17744 17745 17746 17747 17748 48 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 16729 16730 16731 16732 16733 16734 8161 8162 8163 8164 8165 8166 8155 8156 8157 8158 8159 8160 8149 8150 8151 8152 8153 8154 17995 17996 17997 17998 17999 18000 48 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 16981 16982 16983 16984 16985 16986 6493 6494 6495 6496 6497 6498 6487 6488 6489 6490 6491 6492 6481 6482 6483 6484 6485 6486 18247 18248 18249 18250 18251 18252 48 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 17245 17246 17247 17248 17249 17250 13015 13016 13017 13018 13019 13020 13009 13010 13011 13012 13013 13014 13003 13004 13005 13006 13007 13008 18505 18506 18507 18508 18509 18510 36 13033 13034 13035 13036 13037 13038 13015 13016 13017 13018 13019 13020 14707 14708 14709 14710 14711 14712 13027 13028 13029 13030 13031 13032 17245 17246 17247 17248 17249 17250 15979 15980 15981 15982 15983 15984 48 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 17497 17498 17499 17500 17501 17502 11233 11234 11235 11236 11237 11238 11293 11294 11295 11296 11297 11298 11257 11258 11259 11260 11261 11262 18691 18692 18693 18694 18695 18696 48 13015 13016 13017 13018 13019 13020 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 16231 16232 16233 16234 16235 16236 11245 11246 11247 11248 11249 11250 11239 11240 11241 11242 11243 11244 11233 11234 11235 11236 11237 11238 17497 17498 17499 17500 17501 17502 48 11257 11258 11259 11260 11261 11262 11293 11294 11295 11296 11297 11298 11233 11234 11235 11236 11237 11238 17749 17750 17751 17752 17753 17754 9787 9788 9789 9790 9791 9792 19399 19400 19401 19402 19403 19404 18865 18866 18867 18868 18869 18870 18877 18878 18879 18880 18881 18882 48 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 16483 16484 16485 16486 16487 16488 9799 9800 9801 9802 9803 9804 9793 9794 9795 9796 9797 9798 9787 9788 9789 9790 9791 9792 17749 17750 17751 17752 17753 17754 48 18865 18866 18867 18868 18869 18870 19399 19400 19401 19402 19403 19404 9787 9788 9789 9790 9791 9792 18001 18002 18003 18004 18005 18006 8179 8180 8181 8182 8183 8184 8239 8240 8241 8242 8243 8244 8203 8204 8205 8206 8207 8208 19117 19118 19119 19120 19121 19122 48 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 16735 16736 16737 16738 16739 16740 8191 8192 8193 8194 8195 8196 8185 8186 8187 8188 8189 8190 8179 8180 8181 8182 8183 8184 18001 18002 18003 18004 18005 18006 48 8203 8204 8205 8206 8207 8208 8239 8240 8241 8242 8243 8244 8179 8180 8181 8182 8183 8184 18253 18254 18255 18256 18257 18258 6511 6512 6513 6514 6515 6516 6571 6572 6573 6574 6575 6576 6535 6536 6537 6538 6539 6540 19249 19250 19251 19252 19253 19254 48 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 16987 16988 16989 16990 16991 16992 6523 6524 6525 6526 6527 6528 6517 6518 6519 6520 6521 6522 6511 6512 6513 6514 6515 6516 18253 18254 18255 18256 18257 18258 48 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 17251 17252 17253 17254 17255 17256 13063 13064 13065 13066 13067 13068 13057 13058 13059 13060 13061 13062 13051 13052 13053 13054 13055 13056 18511 18512 18513 18514 18515 18516 36 13081 13082 13083 13084 13085 13086 13063 13064 13065 13066 13067 13068 14737 14738 14739 14740 14741 14742 13075 13076 13077 13078 13079 13080 17251 17252 17253 17254 17255 17256 15985 15986 15987 15988 15989 15990 48 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 17503 17504 17505 17506 17507 17508 11281 11282 11283 11284 11285 11286 11275 11276 11277 11278 11279 11280 11269 11270 11271 11272 11273 11274 18685 18686 18687 18688 18689 18690 48 13063 13064 13065 13066 13067 13068 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 16237 16238 16239 16240 16241 16242 11305 11306 11307 11308 11309 11310 11299 11300 11301 11302 11303 11304 11281 11282 11283 11284 11285 11286 17503 17504 17505 17506 17507 17508 48 11281 11282 11283 11284 11285 11286 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 16489 16490 16491 16492 16493 16494 9829 9830 9831 9832 9833 9834 9823 9824 9825 9826 9827 9828 9817 9818 9819 9820 9821 9822 17755 17756 17757 17758 17759 17760 48 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 16741 16742 16743 16744 16745 16746 8251 8252 8253 8254 8255 8256 8245 8246 8247 8248 8249 8250 8227 8228 8229 8230 8231 8232 18007 18008 18009 18010 18011 18012 48 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 18259 18260 18261 18262 18263 18264 6559 6560 6561 6562 6563 6564 6553 6554 6555 6556 6557 6558 6547 6548 6549 6550 6551 6552 19243 19244 19245 19246 19247 19248 48 8227 8228 8229 8230 8231 8232 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 16993 16994 16995 16996 16997 16998 6583 6584 6585 6586 6587 6588 6577 6578 6579 6580 6581 6582 6559 6560 6561 6562 6563 6564 18259 18260 18261 18262 18263 18264 48 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 17257 17258 17259 17260 17261 17262 13111 13112 13113 13114 13115 13116 13105 13106 13107 13108 13109 13110 13099 13100 13101 13102 13103 13104 18517 18518 18519 18520 18521 18522 36 13129 13130 13131 13132 13133 13134 13111 13112 13113 13114 13115 13116 14767 14768 14769 14770 14771 14772 13123 13124 13125 13126 13127 13128 17257 17258 17259 17260 17261 17262 15991 15992 15993 15994 15995 15996 48 13111 13112 13113 13114 13115 13116 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 16243 16244 16245 16246 16247 16248 11335 11336 11337 11338 11339 11340 11329 11330 11331 11332 11333 11334 11323 11324 11325 11326 11327 11328 17509 17510 17511 17512 17513 17514 48 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 16495 16496 16497 16498 16499 16500 9859 9860 9861 9862 9863 9864 9853 9854 9855 9856 9857 9858 9847 9848 9849 9850 9851 9852 17761 17762 17763 17764 17765 17766 48 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 16747 16748 16749 16750 16751 16752 8281 8282 8283 8284 8285 8286 8275 8276 8277 8278 8279 8280 8269 8270 8271 8272 8273 8274 18013 18014 18015 18016 18017 18018 48 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 16999 17000 17001 17002 17003 17004 6613 6614 6615 6616 6617 6618 6607 6608 6609 6610 6611 6612 6601 6602 6603 6604 6605 6606 18265 18266 18267 18268 18269 18270 48 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 17263 17264 17265 17266 17267 17268 13159 13160 13161 13162 13163 13164 13153 13154 13155 13156 13157 13158 13147 13148 13149 13150 13151 13152 18523 18524 18525 18526 18527 18528 36 13177 13178 13179 13180 13181 13182 13159 13160 13161 13162 13163 13164 14797 14798 14799 14800 14801 14802 13171 13172 13173 13174 13175 13176 17263 17264 17265 17266 17267 17268 15997 15998 15999 16000 16001 16002 48 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 17515 17516 17517 17518 17519 17520 11353 11354 11355 11356 11357 11358 11413 11414 11415 11416 11417 11418 11377 11378 11379 11380 11381 11382 18703 18704 18705 18706 18707 18708 48 13159 13160 13161 13162 13163 13164 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 16249 16250 16251 16252 16253 16254 11365 11366 11367 11368 11369 11370 11359 11360 11361 11362 11363 11364 11353 11354 11355 11356 11357 11358 17515 17516 17517 17518 17519 17520 48 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 16501 16502 16503 16504 16505 16506 9889 9890 9891 9892 9893 9894 9883 9884 9885 9886 9887 9888 9877 9878 9879 9880 9881 9882 17767 17768 17769 17770 17771 17772 48 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 16753 16754 16755 16756 16757 16758 8311 8312 8313 8314 8315 8316 8305 8306 8307 8308 8309 8310 8299 8300 8301 8302 8303 8304 18019 18020 18021 18022 18023 18024 48 8323 8324 8325 8326 8327 8328 8359 8360 8361 8362 8363 8364 8299 8300 8301 8302 8303 8304 18271 18272 18273 18274 18275 18276 6631 6632 6633 6634 6635 6636 6691 6692 6693 6694 6695 6696 6655 6656 6657 6658 6659 6660 19261 19262 19263 19264 19265 19266 48 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 17005 17006 17007 17008 17009 17010 6643 6644 6645 6646 6647 6648 6637 6638 6639 6640 6641 6642 6631 6632 6633 6634 6635 6636 18271 18272 18273 18274 18275 18276 48 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 17269 17270 17271 17272 17273 17274 13207 13208 13209 13210 13211 13212 13201 13202 13203 13204 13205 13206 13195 13196 13197 13198 13199 13200 18529 18530 18531 18532 18533 18534 36 13225 13226 13227 13228 13229 13230 13207 13208 13209 13210 13211 13212 14827 14828 14829 14830 14831 14832 13219 13220 13221 13222 13223 13224 17269 17270 17271 17272 17273 17274 16003 16004 16005 16006 16007 16008 48 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 17521 17522 17523 17524 17525 17526 11401 11402 11403 11404 11405 11406 11395 11396 11397 11398 11399 11400 11389 11390 11391 11392 11393 11394 18697 18698 18699 18700 18701 18702 48 13207 13208 13209 13210 13211 13212 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 16255 16256 16257 16258 16259 16260 11425 11426 11427 11428 11429 11430 11419 11420 11421 11422 11423 11424 11401 11402 11403 11404 11405 11406 17521 17522 17523 17524 17525 17526 48 11401 11402 11403 11404 11405 11406 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 16507 16508 16509 16510 16511 16512 9919 9920 9921 9922 9923 9924 9913 9914 9915 9916 9917 9918 9907 9908 9909 9910 9911 9912 17773 17774 17775 17776 17777 17778 48 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 16759 16760 16761 16762 16763 16764 8371 8372 8373 8374 8375 8376 8365 8366 8367 8368 8369 8370 8347 8348 8349 8350 8351 8352 18025 18026 18027 18028 18029 18030 48 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 18277 18278 18279 18280 18281 18282 6679 6680 6681 6682 6683 6684 6673 6674 6675 6676 6677 6678 6667 6668 6669 6670 6671 6672 19255 19256 19257 19258 19259 19260 48 8347 8348 8349 8350 8351 8352 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 17011 17012 17013 17014 17015 17016 6703 6704 6705 6706 6707 6708 6697 6698 6699 6700 6701 6702 6679 6680 6681 6682 6683 6684 18277 18278 18279 18280 18281 18282 48 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 17275 17276 17277 17278 17279 17280 13255 13256 13257 13258 13259 13260 13249 13250 13251 13252 13253 13254 13243 13244 13245 13246 13247 13248 18535 18536 18537 18538 18539 18540 36 13273 13274 13275 13276 13277 13278 13255 13256 13257 13258 13259 13260 14857 14858 14859 14860 14861 14862 13267 13268 13269 13270 13271 13272 17275 17276 17277 17278 17279 17280 16009 16010 16011 16012 16013 16014 48 13255 13256 13257 13258 13259 13260 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 16261 16262 16263 16264 16265 16266 11455 11456 11457 11458 11459 11460 11449 11450 11451 11452 11453 11454 11443 11444 11445 11446 11447 11448 17527 17528 17529 17530 17531 17532 48 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 16513 16514 16515 16516 16517 16518 9949 9950 9951 9952 9953 9954 9943 9944 9945 9946 9947 9948 9937 9938 9939 9940 9941 9942 17779 17780 17781 17782 17783 17784 48 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 16765 16766 16767 16768 16769 16770 8401 8402 8403 8404 8405 8406 8395 8396 8397 8398 8399 8400 8389 8390 8391 8392 8393 8394 18031 18032 18033 18034 18035 18036 48 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 17017 17018 17019 17020 17021 17022 6733 6734 6735 6736 6737 6738 6727 6728 6729 6730 6731 6732 6721 6722 6723 6724 6725 6726 18283 18284 18285 18286 18287 18288 48 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 17281 17282 17283 17284 17285 17286 13303 13304 13305 13306 13307 13308 13297 13298 13299 13300 13301 13302 13291 13292 13293 13294 13295 13296 18541 18542 18543 18544 18545 18546 36 13321 13322 13323 13324 13325 13326 13303 13304 13305 13306 13307 13308 14887 14888 14889 14890 14891 14892 13315 13316 13317 13318 13319 13320 17281 17282 17283 17284 17285 17286 16015 16016 16017 16018 16019 16020 48 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 17533 17534 17535 17536 17537 17538 11473 11474 11475 11476 11477 11478 11533 11534 11535 11536 11537 11538 11497 11498 11499 11500 11501 11502 18715 18716 18717 18718 18719 18720 48 13303 13304 13305 13306 13307 13308 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 16267 16268 16269 16270 16271 16272 11485 11486 11487 11488 11489 11490 11479 11480 11481 11482 11483 11484 11473 11474 11475 11476 11477 11478 17533 17534 17535 17536 17537 17538 48 11497 11498 11499 11500 11501 11502 11533 11534 11535 11536 11537 11538 11473 11474 11475 11476 11477 11478 17785 17786 17787 17788 17789 17790 9967 9968 9969 9970 9971 9972 19405 19406 19407 19408 19409 19410 18925 18926 18927 18928 18929 18930 18937 18938 18939 18940 18941 18942 48 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 16519 16520 16521 16522 16523 16524 9979 9980 9981 9982 9983 9984 9973 9974 9975 9976 9977 9978 9967 9968 9969 9970 9971 9972 17785 17786 17787 17788 17789 17790 48 18925 18926 18927 18928 18929 18930 19405 19406 19407 19408 19409 19410 9967 9968 9969 9970 9971 9972 18037 18038 18039 18040 18041 18042 8419 8420 8421 8422 8423 8424 8479 8480 8481 8482 8483 8484 8443 8444 8445 8446 8447 8448 19141 19142 19143 19144 19145 19146 48 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 16771 16772 16773 16774 16775 16776 8431 8432 8433 8434 8435 8436 8425 8426 8427 8428 8429 8430 8419 8420 8421 8422 8423 8424 18037 18038 18039 18040 18041 18042 48 8443 8444 8445 8446 8447 8448 8479 8480 8481 8482 8483 8484 8419 8420 8421 8422 8423 8424 18289 18290 18291 18292 18293 18294 6751 6752 6753 6754 6755 6756 6811 6812 6813 6814 6815 6816 6775 6776 6777 6778 6779 6780 19273 19274 19275 19276 19277 19278 48 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 17023 17024 17025 17026 17027 17028 6763 6764 6765 6766 6767 6768 6757 6758 6759 6760 6761 6762 6751 6752 6753 6754 6755 6756 18289 18290 18291 18292 18293 18294 48 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 17287 17288 17289 17290 17291 17292 13351 13352 13353 13354 13355 13356 13345 13346 13347 13348 13349 13350 13339 13340 13341 13342 13343 13344 18547 18548 18549 18550 18551 18552 36 13369 13370 13371 13372 13373 13374 13351 13352 13353 13354 13355 13356 14917 14918 14919 14920 14921 14922 13363 13364 13365 13366 13367 13368 17287 17288 17289 17290 17291 17292 16021 16022 16023 16024 16025 16026 48 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 17539 17540 17541 17542 17543 17544 11521 11522 11523 11524 11525 11526 11515 11516 11517 11518 11519 11520 11509 11510 11511 11512 11513 11514 18709 18710 18711 18712 18713 18714 48 13351 13352 13353 13354 13355 13356 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 16273 16274 16275 16276 16277 16278 11545 11546 11547 11548 11549 11550 11539 11540 11541 11542 11543 11544 11521 11522 11523 11524 11525 11526 17539 17540 17541 17542 17543 17544 48 11521 11522 11523 11524 11525 11526 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 16525 16526 16527 16528 16529 16530 10009 10010 10011 10012 10013 10014 10003 10004 10005 10006 10007 10008 9997 9998 9999 10000 10001 10002 17791 17792 17793 17794 17795 17796 48 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 16777 16778 16779 16780 16781 16782 8491 8492 8493 8494 8495 8496 8485 8486 8487 8488 8489 8490 8467 8468 8469 8470 8471 8472 18043 18044 18045 18046 18047 18048 48 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 18295 18296 18297 18298 18299 18300 6799 6800 6801 6802 6803 6804 6793 6794 6795 6796 6797 6798 6787 6788 6789 6790 6791 6792 19267 19268 19269 19270 19271 19272 48 8467 8468 8469 8470 8471 8472 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 17029 17030 17031 17032 17033 17034 6823 6824 6825 6826 6827 6828 6817 6818 6819 6820 6821 6822 6799 6800 6801 6802 6803 6804 18295 18296 18297 18298 18299 18300 48 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 17293 17294 17295 17296 17297 17298 13399 13400 13401 13402 13403 13404 13393 13394 13395 13396 13397 13398 13387 13388 13389 13390 13391 13392 18553 18554 18555 18556 18557 18558 36 13417 13418 13419 13420 13421 13422 13399 13400 13401 13402 13403 13404 14947 14948 14949 14950 14951 14952 13411 13412 13413 13414 13415 13416 17293 17294 17295 17296 17297 17298 16027 16028 16029 16030 16031 16032 48 13399 13400 13401 13402 13403 13404 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 16279 16280 16281 16282 16283 16284 11575 11576 11577 11578 11579 11580 11569 11570 11571 11572 11573 11574 11563 11564 11565 11566 11567 11568 17545 17546 17547 17548 17549 17550 48 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 16531 16532 16533 16534 16535 16536 10039 10040 10041 10042 10043 10044 10033 10034 10035 10036 10037 10038 10027 10028 10029 10030 10031 10032 17797 17798 17799 17800 17801 17802 48 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 16783 16784 16785 16786 16787 16788 8521 8522 8523 8524 8525 8526 8515 8516 8517 8518 8519 8520 8509 8510 8511 8512 8513 8514 18049 18050 18051 18052 18053 18054 48 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 17035 17036 17037 17038 17039 17040 6853 6854 6855 6856 6857 6858 6847 6848 6849 6850 6851 6852 6841 6842 6843 6844 6845 6846 18301 18302 18303 18304 18305 18306 48 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 17299 17300 17301 17302 17303 17304 13447 13448 13449 13450 13451 13452 13441 13442 13443 13444 13445 13446 13435 13436 13437 13438 13439 13440 18559 18560 18561 18562 18563 18564 36 13465 13466 13467 13468 13469 13470 13447 13448 13449 13450 13451 13452 14977 14978 14979 14980 14981 14982 13459 13460 13461 13462 13463 13464 17299 17300 17301 17302 17303 17304 16033 16034 16035 16036 16037 16038 48 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 17551 17552 17553 17554 17555 17556 11593 11594 11595 11596 11597 11598 11653 11654 11655 11656 11657 11658 11617 11618 11619 11620 11621 11622 18727 18728 18729 18730 18731 18732 48 13447 13448 13449 13450 13451 13452 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 16285 16286 16287 16288 16289 16290 11605 11606 11607 11608 11609 11610 11599 11600 11601 11602 11603 11604 11593 11594 11595 11596 11597 11598 17551 17552 17553 17554 17555 17556 48 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 16537 16538 16539 16540 16541 16542 10069 10070 10071 10072 10073 10074 10063 10064 10065 10066 10067 10068 10057 10058 10059 10060 10061 10062 17803 17804 17805 17806 17807 17808 48 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 16789 16790 16791 16792 16793 16794 8551 8552 8553 8554 8555 8556 8545 8546 8547 8548 8549 8550 8539 8540 8541 8542 8543 8544 18055 18056 18057 18058 18059 18060 48 8563 8564 8565 8566 8567 8568 8599 8600 8601 8602 8603 8604 8539 8540 8541 8542 8543 8544 18307 18308 18309 18310 18311 18312 6871 6872 6873 6874 6875 6876 6931 6932 6933 6934 6935 6936 6895 6896 6897 6898 6899 6900 19285 19286 19287 19288 19289 19290 48 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 17041 17042 17043 17044 17045 17046 6883 6884 6885 6886 6887 6888 6877 6878 6879 6880 6881 6882 6871 6872 6873 6874 6875 6876 18307 18308 18309 18310 18311 18312 48 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 17305 17306 17307 17308 17309 17310 13495 13496 13497 13498 13499 13500 13489 13490 13491 13492 13493 13494 13483 13484 13485 13486 13487 13488 18565 18566 18567 18568 18569 18570 36 13513 13514 13515 13516 13517 13518 13495 13496 13497 13498 13499 13500 15007 15008 15009 15010 15011 15012 13507 13508 13509 13510 13511 13512 17305 17306 17307 17308 17309 17310 16039 16040 16041 16042 16043 16044 48 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 17557 17558 17559 17560 17561 17562 11641 11642 11643 11644 11645 11646 11635 11636 11637 11638 11639 11640 11629 11630 11631 11632 11633 11634 18721 18722 18723 18724 18725 18726 48 13495 13496 13497 13498 13499 13500 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 16291 16292 16293 16294 16295 16296 11665 11666 11667 11668 11669 11670 11659 11660 11661 11662 11663 11664 11641 11642 11643 11644 11645 11646 17557 17558 17559 17560 17561 17562 48 11641 11642 11643 11644 11645 11646 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 16543 16544 16545 16546 16547 16548 10099 10100 10101 10102 10103 10104 10093 10094 10095 10096 10097 10098 10087 10088 10089 10090 10091 10092 17809 17810 17811 17812 17813 17814 48 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 16795 16796 16797 16798 16799 16800 8611 8612 8613 8614 8615 8616 8605 8606 8607 8608 8609 8610 8587 8588 8589 8590 8591 8592 18061 18062 18063 18064 18065 18066 48 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 18313 18314 18315 18316 18317 18318 6919 6920 6921 6922 6923 6924 6913 6914 6915 6916 6917 6918 6907 6908 6909 6910 6911 6912 19279 19280 19281 19282 19283 19284 48 8587 8588 8589 8590 8591 8592 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 17047 17048 17049 17050 17051 17052 6943 6944 6945 6946 6947 6948 6937 6938 6939 6940 6941 6942 6919 6920 6921 6922 6923 6924 18313 18314 18315 18316 18317 18318 48 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 17311 17312 17313 17314 17315 17316 13543 13544 13545 13546 13547 13548 13537 13538 13539 13540 13541 13542 13531 13532 13533 13534 13535 13536 18571 18572 18573 18574 18575 18576 36 13561 13562 13563 13564 13565 13566 13543 13544 13545 13546 13547 13548 15037 15038 15039 15040 15041 15042 13555 13556 13557 13558 13559 13560 17311 17312 17313 17314 17315 17316 16045 16046 16047 16048 16049 16050 48 13543 13544 13545 13546 13547 13548 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 16297 16298 16299 16300 16301 16302 11695 11696 11697 11698 11699 11700 11689 11690 11691 11692 11693 11694 11683 11684 11685 11686 11687 11688 17563 17564 17565 17566 17567 17568 48 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 16549 16550 16551 16552 16553 16554 10129 10130 10131 10132 10133 10134 10123 10124 10125 10126 10127 10128 10117 10118 10119 10120 10121 10122 17815 17816 17817 17818 17819 17820 48 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 16801 16802 16803 16804 16805 16806 8641 8642 8643 8644 8645 8646 8635 8636 8637 8638 8639 8640 8629 8630 8631 8632 8633 8634 18067 18068 18069 18070 18071 18072 48 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 17053 17054 17055 17056 17057 17058 6973 6974 6975 6976 6977 6978 6967 6968 6969 6970 6971 6972 6961 6962 6963 6964 6965 6966 18319 18320 18321 18322 18323 18324 48 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 17317 17318 17319 17320 17321 17322 13591 13592 13593 13594 13595 13596 13585 13586 13587 13588 13589 13590 13579 13580 13581 13582 13583 13584 18577 18578 18579 18580 18581 18582 36 13609 13610 13611 13612 13613 13614 13591 13592 13593 13594 13595 13596 15067 15068 15069 15070 15071 15072 13603 13604 13605 13606 13607 13608 17317 17318 17319 17320 17321 17322 16051 16052 16053 16054 16055 16056 48 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 17569 17570 17571 17572 17573 17574 11713 11714 11715 11716 11717 11718 11773 11774 11775 11776 11777 11778 11737 11738 11739 11740 11741 11742 18739 18740 18741 18742 18743 18744 48 13591 13592 13593 13594 13595 13596 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 16303 16304 16305 16306 16307 16308 11725 11726 11727 11728 11729 11730 11719 11720 11721 11722 11723 11724 11713 11714 11715 11716 11717 11718 17569 17570 17571 17572 17573 17574 48 11737 11738 11739 11740 11741 11742 11773 11774 11775 11776 11777 11778 11713 11714 11715 11716 11717 11718 17821 17822 17823 17824 17825 17826 10147 10148 10149 10150 10151 10152 19411 19412 19413 19414 19415 19416 18985 18986 18987 18988 18989 18990 18997 18998 18999 19000 19001 19002 48 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 16555 16556 16557 16558 16559 16560 10159 10160 10161 10162 10163 10164 10153 10154 10155 10156 10157 10158 10147 10148 10149 10150 10151 10152 17821 17822 17823 17824 17825 17826 48 18985 18986 18987 18988 18989 18990 19411 19412 19413 19414 19415 19416 10147 10148 10149 10150 10151 10152 18073 18074 18075 18076 18077 18078 8659 8660 8661 8662 8663 8664 8719 8720 8721 8722 8723 8724 8683 8684 8685 8686 8687 8688 19165 19166 19167 19168 19169 19170 48 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 16807 16808 16809 16810 16811 16812 8671 8672 8673 8674 8675 8676 8665 8666 8667 8668 8669 8670 8659 8660 8661 8662 8663 8664 18073 18074 18075 18076 18077 18078 48 8683 8684 8685 8686 8687 8688 8719 8720 8721 8722 8723 8724 8659 8660 8661 8662 8663 8664 18325 18326 18327 18328 18329 18330 6991 6992 6993 6994 6995 6996 7051 7052 7053 7054 7055 7056 7015 7016 7017 7018 7019 7020 19297 19298 19299 19300 19301 19302 48 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 17059 17060 17061 17062 17063 17064 7003 7004 7005 7006 7007 7008 6997 6998 6999 7000 7001 7002 6991 6992 6993 6994 6995 6996 18325 18326 18327 18328 18329 18330 48 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 17323 17324 17325 17326 17327 17328 13639 13640 13641 13642 13643 13644 13633 13634 13635 13636 13637 13638 13627 13628 13629 13630 13631 13632 18583 18584 18585 18586 18587 18588 36 13657 13658 13659 13660 13661 13662 13639 13640 13641 13642 13643 13644 15097 15098 15099 15100 15101 15102 13651 13652 13653 13654 13655 13656 17323 17324 17325 17326 17327 17328 16057 16058 16059 16060 16061 16062 48 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 17575 17576 17577 17578 17579 17580 11761 11762 11763 11764 11765 11766 11755 11756 11757 11758 11759 11760 11749 11750 11751 11752 11753 11754 18733 18734 18735 18736 18737 18738 48 13639 13640 13641 13642 13643 13644 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 16309 16310 16311 16312 16313 16314 11785 11786 11787 11788 11789 11790 11779 11780 11781 11782 11783 11784 11761 11762 11763 11764 11765 11766 17575 17576 17577 17578 17579 17580 48 11761 11762 11763 11764 11765 11766 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 16561 16562 16563 16564 16565 16566 10189 10190 10191 10192 10193 10194 10183 10184 10185 10186 10187 10188 10177 10178 10179 10180 10181 10182 17827 17828 17829 17830 17831 17832 48 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 16813 16814 16815 16816 16817 16818 8731 8732 8733 8734 8735 8736 8725 8726 8727 8728 8729 8730 8707 8708 8709 8710 8711 8712 18079 18080 18081 18082 18083 18084 48 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 18331 18332 18333 18334 18335 18336 7039 7040 7041 7042 7043 7044 7033 7034 7035 7036 7037 7038 7027 7028 7029 7030 7031 7032 19291 19292 19293 19294 19295 19296 48 8707 8708 8709 8710 8711 8712 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 17065 17066 17067 17068 17069 17070 7063 7064 7065 7066 7067 7068 7057 7058 7059 7060 7061 7062 7039 7040 7041 7042 7043 7044 18331 18332 18333 18334 18335 18336 48 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 17329 17330 17331 17332 17333 17334 13687 13688 13689 13690 13691 13692 13681 13682 13683 13684 13685 13686 13675 13676 13677 13678 13679 13680 18589 18590 18591 18592 18593 18594 36 13705 13706 13707 13708 13709 13710 13687 13688 13689 13690 13691 13692 15127 15128 15129 15130 15131 15132 13699 13700 13701 13702 13703 13704 17329 17330 17331 17332 17333 17334 16063 16064 16065 16066 16067 16068 48 13687 13688 13689 13690 13691 13692 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 16315 16316 16317 16318 16319 16320 11815 11816 11817 11818 11819 11820 11809 11810 11811 11812 11813 11814 11803 11804 11805 11806 11807 11808 17581 17582 17583 17584 17585 17586 48 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 16567 16568 16569 16570 16571 16572 10219 10220 10221 10222 10223 10224 10213 10214 10215 10216 10217 10218 10207 10208 10209 10210 10211 10212 17833 17834 17835 17836 17837 17838 48 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 16819 16820 16821 16822 16823 16824 8761 8762 8763 8764 8765 8766 8755 8756 8757 8758 8759 8760 8749 8750 8751 8752 8753 8754 18085 18086 18087 18088 18089 18090 48 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 17071 17072 17073 17074 17075 17076 7093 7094 7095 7096 7097 7098 7087 7088 7089 7090 7091 7092 7081 7082 7083 7084 7085 7086 18337 18338 18339 18340 18341 18342 48 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 17335 17336 17337 17338 17339 17340 13735 13736 13737 13738 13739 13740 13729 13730 13731 13732 13733 13734 13723 13724 13725 13726 13727 13728 18595 18596 18597 18598 18599 18600 36 13753 13754 13755 13756 13757 13758 13735 13736 13737 13738 13739 13740 15157 15158 15159 15160 15161 15162 13747 13748 13749 13750 13751 13752 17335 17336 17337 17338 17339 17340 16069 16070 16071 16072 16073 16074 48 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 17587 17588 17589 17590 17591 17592 11833 11834 11835 11836 11837 11838 11893 11894 11895 11896 11897 11898 11857 11858 11859 11860 11861 11862 18751 18752 18753 18754 18755 18756 48 13735 13736 13737 13738 13739 13740 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 16321 16322 16323 16324 16325 16326 11845 11846 11847 11848 11849 11850 11839 11840 11841 11842 11843 11844 11833 11834 11835 11836 11837 11838 17587 17588 17589 17590 17591 17592 48 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 16573 16574 16575 16576 16577 16578 10249 10250 10251 10252 10253 10254 10243 10244 10245 10246 10247 10248 10237 10238 10239 10240 10241 10242 17839 17840 17841 17842 17843 17844 48 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 16825 16826 16827 16828 16829 16830 8791 8792 8793 8794 8795 8796 8785 8786 8787 8788 8789 8790 8779 8780 8781 8782 8783 8784 18091 18092 18093 18094 18095 18096 48 8803 8804 8805 8806 8807 8808 8839 8840 8841 8842 8843 8844 8779 8780 8781 8782 8783 8784 18343 18344 18345 18346 18347 18348 7111 7112 7113 7114 7115 7116 7171 7172 7173 7174 7175 7176 7135 7136 7137 7138 7139 7140 19309 19310 19311 19312 19313 19314 48 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 17077 17078 17079 17080 17081 17082 7123 7124 7125 7126 7127 7128 7117 7118 7119 7120 7121 7122 7111 7112 7113 7114 7115 7116 18343 18344 18345 18346 18347 18348 48 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 17341 17342 17343 17344 17345 17346 13783 13784 13785 13786 13787 13788 13777 13778 13779 13780 13781 13782 13771 13772 13773 13774 13775 13776 18601 18602 18603 18604 18605 18606 36 13801 13802 13803 13804 13805 13806 13783 13784 13785 13786 13787 13788 15187 15188 15189 15190 15191 15192 13795 13796 13797 13798 13799 13800 17341 17342 17343 17344 17345 17346 16075 16076 16077 16078 16079 16080 48 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 17593 17594 17595 17596 17597 17598 11881 11882 11883 11884 11885 11886 11875 11876 11877 11878 11879 11880 11869 11870 11871 11872 11873 11874 18745 18746 18747 18748 18749 18750 48 13783 13784 13785 13786 13787 13788 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 16327 16328 16329 16330 16331 16332 11905 11906 11907 11908 11909 11910 11899 11900 11901 11902 11903 11904 11881 11882 11883 11884 11885 11886 17593 17594 17595 17596 17597 17598 48 11881 11882 11883 11884 11885 11886 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 16579 16580 16581 16582 16583 16584 10279 10280 10281 10282 10283 10284 10273 10274 10275 10276 10277 10278 10267 10268 10269 10270 10271 10272 17845 17846 17847 17848 17849 17850 48 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 16831 16832 16833 16834 16835 16836 8851 8852 8853 8854 8855 8856 8845 8846 8847 8848 8849 8850 8827 8828 8829 8830 8831 8832 18097 18098 18099 18100 18101 18102 48 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 18349 18350 18351 18352 18353 18354 7159 7160 7161 7162 7163 7164 7153 7154 7155 7156 7157 7158 7147 7148 7149 7150 7151 7152 19303 19304 19305 19306 19307 19308 48 8827 8828 8829 8830 8831 8832 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 17083 17084 17085 17086 17087 17088 7183 7184 7185 7186 7187 7188 7177 7178 7179 7180 7181 7182 7159 7160 7161 7162 7163 7164 18349 18350 18351 18352 18353 18354 48 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 17347 17348 17349 17350 17351 17352 13831 13832 13833 13834 13835 13836 13825 13826 13827 13828 13829 13830 13819 13820 13821 13822 13823 13824 18607 18608 18609 18610 18611 18612 36 13849 13850 13851 13852 13853 13854 13831 13832 13833 13834 13835 13836 15217 15218 15219 15220 15221 15222 13843 13844 13845 13846 13847 13848 17347 17348 17349 17350 17351 17352 16081 16082 16083 16084 16085 16086 48 13831 13832 13833 13834 13835 13836 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 16333 16334 16335 16336 16337 16338 11935 11936 11937 11938 11939 11940 11929 11930 11931 11932 11933 11934 11923 11924 11925 11926 11927 11928 17599 17600 17601 17602 17603 17604 48 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 16585 16586 16587 16588 16589 16590 10309 10310 10311 10312 10313 10314 10303 10304 10305 10306 10307 10308 10297 10298 10299 10300 10301 10302 17851 17852 17853 17854 17855 17856 48 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 16837 16838 16839 16840 16841 16842 8881 8882 8883 8884 8885 8886 8875 8876 8877 8878 8879 8880 8869 8870 8871 8872 8873 8874 18103 18104 18105 18106 18107 18108 48 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 17089 17090 17091 17092 17093 17094 7213 7214 7215 7216 7217 7218 7207 7208 7209 7210 7211 7212 7201 7202 7203 7204 7205 7206 18355 18356 18357 18358 18359 18360 48 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 17353 17354 17355 17356 17357 17358 13879 13880 13881 13882 13883 13884 13873 13874 13875 13876 13877 13878 13867 13868 13869 13870 13871 13872 18613 18614 18615 18616 18617 18618 36 13897 13898 13899 13900 13901 13902 13879 13880 13881 13882 13883 13884 15247 15248 15249 15250 15251 15252 13891 13892 13893 13894 13895 13896 17353 17354 17355 17356 17357 17358 16087 16088 16089 16090 16091 16092 48 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 17605 17606 17607 17608 17609 17610 11953 11954 11955 11956 11957 11958 12013 12014 12015 12016 12017 12018 11977 11978 11979 11980 11981 11982 18763 18764 18765 18766 18767 18768 48 13879 13880 13881 13882 13883 13884 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 16339 16340 16341 16342 16343 16344 11965 11966 11967 11968 11969 11970 11959 11960 11961 11962 11963 11964 11953 11954 11955 11956 11957 11958 17605 17606 17607 17608 17609 17610 48 11977 11978 11979 11980 11981 11982 12013 12014 12015 12016 12017 12018 11953 11954 11955 11956 11957 11958 17857 17858 17859 17860 17861 17862 10327 10328 10329 10330 10331 10332 19417 19418 19419 19420 19421 19422 19045 19046 19047 19048 19049 19050 19057 19058 19059 19060 19061 19062 48 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 16591 16592 16593 16594 16595 16596 10339 10340 10341 10342 10343 10344 10333 10334 10335 10336 10337 10338 10327 10328 10329 10330 10331 10332 17857 17858 17859 17860 17861 17862 48 19045 19046 19047 19048 19049 19050 19417 19418 19419 19420 19421 19422 10327 10328 10329 10330 10331 10332 18109 18110 18111 18112 18113 18114 8899 8900 8901 8902 8903 8904 8959 8960 8961 8962 8963 8964 8923 8924 8925 8926 8927 8928 19189 19190 19191 19192 19193 19194 48 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 16843 16844 16845 16846 16847 16848 8911 8912 8913 8914 8915 8916 8905 8906 8907 8908 8909 8910 8899 8900 8901 8902 8903 8904 18109 18110 18111 18112 18113 18114 48 8923 8924 8925 8926 8927 8928 8959 8960 8961 8962 8963 8964 8899 8900 8901 8902 8903 8904 18361 18362 18363 18364 18365 18366 7231 7232 7233 7234 7235 7236 7291 7292 7293 7294 7295 7296 7255 7256 7257 7258 7259 7260 19321 19322 19323 19324 19325 19326 48 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 17095 17096 17097 17098 17099 17100 7243 7244 7245 7246 7247 7248 7237 7238 7239 7240 7241 7242 7231 7232 7233 7234 7235 7236 18361 18362 18363 18364 18365 18366 48 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 17359 17360 17361 17362 17363 17364 13927 13928 13929 13930 13931 13932 13921 13922 13923 13924 13925 13926 13915 13916 13917 13918 13919 13920 18619 18620 18621 18622 18623 18624 36 13945 13946 13947 13948 13949 13950 13927 13928 13929 13930 13931 13932 15277 15278 15279 15280 15281 15282 13939 13940 13941 13942 13943 13944 17359 17360 17361 17362 17363 17364 16093 16094 16095 16096 16097 16098 48 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 17611 17612 17613 17614 17615 17616 12001 12002 12003 12004 12005 12006 11995 11996 11997 11998 11999 12000 11989 11990 11991 11992 11993 11994 18757 18758 18759 18760 18761 18762 48 13927 13928 13929 13930 13931 13932 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 16345 16346 16347 16348 16349 16350 12025 12026 12027 12028 12029 12030 12019 12020 12021 12022 12023 12024 12001 12002 12003 12004 12005 12006 17611 17612 17613 17614 17615 17616 48 12001 12002 12003 12004 12005 12006 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 16597 16598 16599 16600 16601 16602 10369 10370 10371 10372 10373 10374 10363 10364 10365 10366 10367 10368 10357 10358 10359 10360 10361 10362 17863 17864 17865 17866 17867 17868 48 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 16849 16850 16851 16852 16853 16854 8971 8972 8973 8974 8975 8976 8965 8966 8967 8968 8969 8970 8947 8948 8949 8950 8951 8952 18115 18116 18117 18118 18119 18120 48 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 18367 18368 18369 18370 18371 18372 7279 7280 7281 7282 7283 7284 7273 7274 7275 7276 7277 7278 7267 7268 7269 7270 7271 7272 19315 19316 19317 19318 19319 19320 48 8947 8948 8949 8950 8951 8952 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 17101 17102 17103 17104 17105 17106 7303 7304 7305 7306 7307 7308 7297 7298 7299 7300 7301 7302 7279 7280 7281 7282 7283 7284 18367 18368 18369 18370 18371 18372 48 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 17365 17366 17367 17368 17369 17370 13975 13976 13977 13978 13979 13980 13969 13970 13971 13972 13973 13974 13963 13964 13965 13966 13967 13968 18625 18626 18627 18628 18629 18630 36 13993 13994 13995 13996 13997 13998 13975 13976 13977 13978 13979 13980 15307 15308 15309 15310 15311 15312 13987 13988 13989 13990 13991 13992 17365 17366 17367 17368 17369 17370 16099 16100 16101 16102 16103 16104 48 13975 13976 13977 13978 13979 13980 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 16351 16352 16353 16354 16355 16356 12055 12056 12057 12058 12059 12060 12049 12050 12051 12052 12053 12054 12043 12044 12045 12046 12047 12048 17617 17618 17619 17620 17621 17622 48 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 16603 16604 16605 16606 16607 16608 10399 10400 10401 10402 10403 10404 10393 10394 10395 10396 10397 10398 10387 10388 10389 10390 10391 10392 17869 17870 17871 17872 17873 17874 48 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 16855 16856 16857 16858 16859 16860 9001 9002 9003 9004 9005 9006 8995 8996 8997 8998 8999 9000 8989 8990 8991 8992 8993 8994 18121 18122 18123 18124 18125 18126 48 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 17107 17108 17109 17110 17111 17112 7333 7334 7335 7336 7337 7338 7327 7328 7329 7330 7331 7332 7321 7322 7323 7324 7325 7326 18373 18374 18375 18376 18377 18378 48 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 17371 17372 17373 17374 17375 17376 14023 14024 14025 14026 14027 14028 14017 14018 14019 14020 14021 14022 14011 14012 14013 14014 14015 14016 18631 18632 18633 18634 18635 18636 36 14041 14042 14043 14044 14045 14046 14023 14024 14025 14026 14027 14028 15337 15338 15339 15340 15341 15342 14035 14036 14037 14038 14039 14040 17371 17372 17373 17374 17375 17376 16105 16106 16107 16108 16109 16110 48 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 17623 17624 17625 17626 17627 17628 12073 12074 12075 12076 12077 12078 12133 12134 12135 12136 12137 12138 12097 12098 12099 12100 12101 12102 18775 18776 18777 18778 18779 18780 48 14023 14024 14025 14026 14027 14028 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 16357 16358 16359 16360 16361 16362 12085 12086 12087 12088 12089 12090 12079 12080 12081 12082 12083 12084 12073 12074 12075 12076 12077 12078 17623 17624 17625 17626 17627 17628 48 12097 12098 12099 12100 12101 12102 12133 12134 12135 12136 12137 12138 12073 12074 12075 12076 12077 12078 17875 17876 17877 17878 17879 17880 10417 10418 10419 10420 10421 10422 10477 10478 10479 10480 10481 10482 10441 10442 10443 10444 10445 10446 19069 19070 19071 19072 19073 19074 48 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 16609 16610 16611 16612 16613 16614 10429 10430 10431 10432 10433 10434 10423 10424 10425 10426 10427 10428 10417 10418 10419 10420 10421 10422 17875 17876 17877 17878 17879 17880 48 10441 10442 10443 10444 10445 10446 10477 10478 10479 10480 10481 10482 10417 10418 10419 10420 10421 10422 18127 18128 18129 18130 18131 18132 9019 9020 9021 9022 9023 9024 9079 9080 9081 9082 9083 9084 9043 9044 9045 9046 9047 9048 19201 19202 19203 19204 19205 19206 48 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 16861 16862 16863 16864 16865 16866 9031 9032 9033 9034 9035 9036 9025 9026 9027 9028 9029 9030 9019 9020 9021 9022 9023 9024 18127 18128 18129 18130 18131 18132 48 9043 9044 9045 9046 9047 9048 9079 9080 9081 9082 9083 9084 9019 9020 9021 9022 9023 9024 18379 18380 18381 18382 18383 18384 7351 7352 7353 7354 7355 7356 7411 7412 7413 7414 7415 7416 7375 7376 7377 7378 7379 7380 19333 19334 19335 19336 19337 19338 48 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 17113 17114 17115 17116 17117 17118 7363 7364 7365 7366 7367 7368 7357 7358 7359 7360 7361 7362 7351 7352 7353 7354 7355 7356 18379 18380 18381 18382 18383 18384 48 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 17377 17378 17379 17380 17381 17382 14071 14072 14073 14074 14075 14076 14065 14066 14067 14068 14069 14070 14059 14060 14061 14062 14063 14064 18637 18638 18639 18640 18641 18642 36 14089 14090 14091 14092 14093 14094 14071 14072 14073 14074 14075 14076 15367 15368 15369 15370 15371 15372 14083 14084 14085 14086 14087 14088 17377 17378 17379 17380 17381 17382 16111 16112 16113 16114 16115 16116 48 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 17629 17630 17631 17632 17633 17634 12121 12122 12123 12124 12125 12126 12115 12116 12117 12118 12119 12120 12109 12110 12111 12112 12113 12114 18769 18770 18771 18772 18773 18774 48 14071 14072 14073 14074 14075 14076 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 16363 16364 16365 16366 16367 16368 12145 12146 12147 12148 12149 12150 12139 12140 12141 12142 12143 12144 12121 12122 12123 12124 12125 12126 17629 17630 17631 17632 17633 17634 48 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 17881 17882 17883 17884 17885 17886 10465 10466 10467 10468 10469 10470 10459 10460 10461 10462 10463 10464 10453 10454 10455 10456 10457 10458 19063 19064 19065 19066 19067 19068 48 12121 12122 12123 12124 12125 12126 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 16615 16616 16617 16618 16619 16620 10489 10490 10491 10492 10493 10494 10483 10484 10485 10486 10487 10488 10465 10466 10467 10468 10469 10470 17881 17882 17883 17884 17885 17886 48 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 18133 18134 18135 18136 18137 18138 9067 9068 9069 9070 9071 9072 9061 9062 9063 9064 9065 9066 9055 9056 9057 9058 9059 9060 19195 19196 19197 19198 19199 19200 48 10465 10466 10467 10468 10469 10470 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 16867 16868 16869 16870 16871 16872 9091 9092 9093 9094 9095 9096 9085 9086 9087 9088 9089 9090 9067 9068 9069 9070 9071 9072 18133 18134 18135 18136 18137 18138 48 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 18385 18386 18387 18388 18389 18390 7399 7400 7401 7402 7403 7404 7393 7394 7395 7396 7397 7398 7387 7388 7389 7390 7391 7392 19327 19328 19329 19330 19331 19332 48 9067 9068 9069 9070 9071 9072 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 17119 17120 17121 17122 17123 17124 7423 7424 7425 7426 7427 7428 7417 7418 7419 7420 7421 7422 7399 7400 7401 7402 7403 7404 18385 18386 18387 18388 18389 18390 48 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 17383 17384 17385 17386 17387 17388 14119 14120 14121 14122 14123 14124 14113 14114 14115 14116 14117 14118 14107 14108 14109 14110 14111 14112 18643 18644 18645 18646 18647 18648 36 14137 14138 14139 14140 14141 14142 14119 14120 14121 14122 14123 14124 15397 15398 15399 15400 15401 15402 14131 14132 14133 14134 14135 14136 17383 17384 17385 17386 17387 17388 16117 16118 16119 16120 16121 16122 48 14119 14120 14121 14122 14123 14124 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 16369 16370 16371 16372 16373 16374 12175 12176 12177 12178 12179 12180 12169 12170 12171 12172 12173 12174 12163 12164 12165 12166 12167 12168 17635 17636 17637 17638 17639 17640 48 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 16621 16622 16623 16624 16625 16626 10519 10520 10521 10522 10523 10524 10513 10514 10515 10516 10517 10518 10507 10508 10509 10510 10511 10512 17887 17888 17889 17890 17891 17892 48 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 16873 16874 16875 16876 16877 16878 9121 9122 9123 9124 9125 9126 9115 9116 9117 9118 9119 9120 9109 9110 9111 9112 9113 9114 18139 18140 18141 18142 18143 18144 48 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 17125 17126 17127 17128 17129 17130 7453 7454 7455 7456 7457 7458 7447 7448 7449 7450 7451 7452 7441 7442 7443 7444 7445 7446 18391 18392 18393 18394 18395 18396 48 4309 4310 4311 4312 4313 4314 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 19423 19424 19425 19426 19427 19428 126 127 128 129 130 131 120 121 122 123 124 125 114 115 116 117 118 119 5779 5780 5781 5782 5783 5784 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-1.dgr000066400000000000000000002467051514310134000257670ustar00rootroot000000000000002 4 1 3431 70838 858 18034 0 000 20 857 1683 1351 1350 2039 2778 2777 1689 1352 859 2033 2776 1690 1137 1136 921 920 1684 1135 919 20 1689 1352 1351 858 2033 2777 2776 1699 1353 860 2023 2775 1700 1138 1137 922 921 1690 1136 920 20 1699 1353 1352 859 2023 2776 2775 1709 1354 861 2013 2774 1710 1139 1138 923 922 1700 1137 921 18 1709 1354 1353 860 2013 2775 2774 307 275 216 3375 3316 222 1139 923 1710 1138 922 9 1964 1758 2773 11 10 1717 1716 9 1715 9 2772 1963 1759 17 16 1723 1722 15 1721 11 1962 1760 2771 1961 1761 20 19 1726 1725 18 1724 11 1960 1762 2770 1959 1763 23 22 1729 1728 21 1727 11 1958 1764 2769 1957 1765 26 25 1732 1731 24 1730 11 1956 1766 2768 1955 1767 29 28 1735 1734 27 1733 11 1954 1768 2767 1953 1769 32 31 1738 1737 30 1736 11 1952 1770 2766 1951 1771 35 34 1741 1740 33 1739 11 1950 1772 2765 1949 1773 38 37 1744 1743 36 1742 11 1948 1774 2764 1947 1775 41 40 1747 1746 39 1745 11 1946 1776 2763 1945 1777 44 43 1750 1749 42 1748 11 1944 1778 2762 1943 1779 47 46 1753 1752 45 1751 11 1942 1780 2761 1941 1781 50 49 1756 1755 48 1754 26 503 464 406 1312 3217 3132 2760 420 416 1140 1097 924 881 876 738 737 1402 1401 1400 1399 1141 1098 1313 2323 2321 2898 19 738 1402 1400 925 924 882 881 737 1401 1399 1141 1140 1098 1097 875 503 420 416 406 18 681 1403 1402 968 967 925 924 690 688 1401 1184 1183 1141 1140 504 448 426 420 27 817 1709 1354 1353 2013 2818 2757 818 1711 1710 1182 1181 1139 1138 879 308 307 228 222 210 966 923 281 275 3381 3316 3315 19 818 1711 1710 966 965 923 922 308 307 228 222 210 1182 1139 878 817 1709 1181 1138 18 736 1712 1711 1009 1008 966 965 310 309 308 259 234 228 201 1225 1182 1224 1181 19 819 503 416 410 1097 820 1400 1399 1098 882 738 1402 925 924 876 420 406 1140 875 20 820 819 1400 1399 1098 1097 881 821 1408 1407 1099 883 740 738 1409 926 925 1402 924 876 20 821 820 1408 1407 1099 1098 882 822 1414 1413 1100 884 742 740 1415 927 926 738 1409 925 20 822 821 1414 1413 1100 1099 883 823 1420 1419 1101 885 744 742 1421 928 927 740 1415 926 20 823 822 1420 1419 1101 1100 884 824 1426 1425 1102 886 746 744 1427 929 928 742 1421 927 20 824 823 1426 1425 1102 1101 885 825 1432 1431 1103 887 748 746 1433 930 929 744 1427 928 20 825 824 1432 1431 1103 1102 886 826 1438 1437 1104 888 750 748 1439 931 930 746 1433 929 20 826 825 1438 1437 1104 1103 887 827 1444 1443 1105 889 752 750 1446 932 931 748 1439 930 20 827 826 1444 1443 1105 1104 888 828 1452 1451 1106 890 754 752 1453 933 932 750 1446 931 20 828 827 1452 1451 1106 1105 889 829 1458 1457 1107 891 756 754 1460 934 933 752 1453 932 20 829 828 1458 1457 1107 1106 890 830 1466 1465 1108 892 758 756 1468 935 934 754 1460 933 20 830 829 1466 1465 1108 1107 891 831 1474 1473 1109 893 760 758 1475 936 935 756 1468 934 20 831 830 1474 1473 1109 1108 892 832 1480 1479 1110 894 762 760 1482 937 936 758 1475 935 20 832 831 1480 1479 1110 1109 893 833 1490 1489 1111 895 764 762 1492 938 937 760 1482 936 20 833 832 1490 1489 1111 1110 894 834 1500 1499 1112 896 766 764 1501 939 938 762 1492 937 20 834 833 1500 1499 1112 1111 895 835 1506 1505 1113 897 768 766 1508 940 939 764 1501 938 20 835 834 1506 1505 1113 1112 896 836 1514 1513 1114 898 770 768 1516 941 940 766 1508 939 20 836 835 1514 1513 1114 1113 897 837 1522 1521 1115 899 772 770 1523 942 941 768 1516 940 20 837 836 1522 1521 1115 1114 898 838 1528 1527 1116 900 774 772 1530 943 942 770 1523 941 20 838 837 1528 1527 1116 1115 899 839 1538 1537 1117 901 776 774 1540 944 943 772 1530 942 20 839 838 1538 1537 1117 1116 900 840 1546 1545 1118 902 778 776 1547 945 944 774 1540 943 20 840 839 1546 1545 1118 1117 901 841 1552 1551 1119 903 780 778 1554 946 945 776 1547 944 20 841 840 1552 1551 1119 1118 902 842 1560 1559 1120 904 782 780 1562 947 946 778 1554 945 20 842 841 1560 1559 1120 1119 903 843 1568 1567 1121 905 784 782 1569 948 947 780 1562 946 20 843 842 1568 1567 1121 1120 904 844 1574 1573 1122 906 786 784 1576 949 948 782 1569 947 20 844 843 1574 1573 1122 1121 905 845 1584 1583 1123 907 788 786 1586 950 949 784 1576 948 20 845 844 1584 1583 1123 1122 906 846 1592 1591 1124 908 790 788 1593 951 950 786 1586 949 20 846 845 1592 1591 1124 1123 907 847 1598 1597 1125 909 792 790 1600 952 951 788 1593 950 20 847 846 1598 1597 1125 1124 908 848 1606 1605 1126 910 794 792 1608 953 952 790 1600 951 20 848 847 1606 1605 1126 1125 909 849 1614 1613 1127 911 796 794 1615 954 953 792 1608 952 20 849 848 1614 1613 1127 1126 910 850 1620 1619 1128 912 798 796 1622 955 954 794 1615 953 20 850 849 1620 1619 1128 1127 911 851 1630 1629 1129 913 800 798 1632 956 955 796 1622 954 20 851 850 1630 1629 1129 1128 912 852 1638 1637 1130 914 802 800 1639 957 956 798 1632 955 20 852 851 1638 1637 1130 1129 913 853 1644 1643 1131 915 804 802 1646 958 957 800 1639 956 20 853 852 1644 1643 1131 1130 914 854 1652 1651 1132 916 806 804 1654 959 958 802 1646 957 20 854 853 1652 1651 1132 1131 915 855 1660 1659 1133 917 808 806 1661 960 959 804 1654 958 20 855 854 1660 1659 1133 1132 916 856 1666 1665 1134 918 810 808 1668 961 960 806 1661 959 20 856 855 1666 1665 1134 1133 917 857 1676 1675 1135 919 812 810 1678 962 961 808 1668 960 20 857 856 1676 1675 1135 1134 918 1684 1683 1136 920 858 814 812 1685 963 962 810 1678 961 20 857 1684 1683 1136 1135 919 858 1690 1689 1137 921 859 816 814 1692 964 963 812 1685 962 20 1690 1689 1137 1136 920 859 858 1700 1699 1138 922 860 818 816 1702 965 964 814 1692 963 20 1700 1699 1138 1137 921 860 859 1710 1709 1139 923 861 818 1711 966 965 879 816 1702 964 20 1710 1709 1139 1138 922 861 860 307 222 216 308 228 210 1182 966 879 878 818 1711 965 23 503 420 416 406 1140 1097 881 876 875 738 1402 1400 925 882 681 1403 968 967 877 504 448 426 1183 20 738 1402 1400 924 882 881 876 740 1409 1408 926 883 683 681 1410 969 968 1403 967 877 20 740 738 1409 1408 925 883 882 742 1415 1414 927 884 684 683 1416 970 969 681 1410 968 20 742 740 1415 1414 926 884 883 744 1421 1420 928 885 686 684 1422 971 970 683 1416 969 20 744 742 1421 1420 927 885 884 746 1427 1426 929 886 687 686 1428 972 971 684 1422 970 20 746 744 1427 1426 928 886 885 748 1433 1432 930 887 689 687 1434 973 972 686 1428 971 20 748 746 1433 1432 929 887 886 750 1439 1438 931 888 691 689 1440 974 973 687 1434 972 20 750 748 1439 1438 930 888 887 752 1446 1444 932 889 692 691 1447 975 974 689 1440 973 20 752 750 1446 1444 931 889 888 754 1453 1452 933 890 693 692 1454 976 975 691 1447 974 20 754 752 1453 1452 932 890 889 756 1460 1458 934 891 695 693 1461 977 976 692 1454 975 20 756 754 1460 1458 933 891 890 758 1468 1466 935 892 696 695 1469 978 977 693 1461 976 20 758 756 1468 1466 934 892 891 760 1475 1474 936 893 697 696 1476 979 978 695 1469 977 20 760 758 1475 1474 935 893 892 762 1482 1480 937 894 699 697 1484 980 979 696 1476 978 20 762 760 1482 1480 936 894 893 764 1492 1490 938 895 700 699 1494 981 980 697 1484 979 20 764 762 1492 1490 937 895 894 766 1501 1500 939 896 701 700 1502 982 981 699 1494 980 20 766 764 1501 1500 938 896 895 768 1508 1506 940 897 703 701 1509 983 982 700 1502 981 20 768 766 1508 1506 939 897 896 770 1516 1514 941 898 704 703 1517 984 983 701 1509 982 20 770 768 1516 1514 940 898 897 772 1523 1522 942 899 705 704 1524 985 984 703 1517 983 20 772 770 1523 1522 941 899 898 774 1530 1528 943 900 707 705 1532 986 985 704 1524 984 20 774 772 1530 1528 942 900 899 776 1540 1538 944 901 708 707 1541 987 986 705 1532 985 20 776 774 1540 1538 943 901 900 778 1547 1546 945 902 709 708 1548 988 987 707 1541 986 20 778 776 1547 1546 944 902 901 780 1554 1552 946 903 711 709 1555 989 988 708 1548 987 20 780 778 1554 1552 945 903 902 782 1562 1560 947 904 712 711 1563 990 989 709 1555 988 20 782 780 1562 1560 946 904 903 784 1569 1568 948 905 713 712 1570 991 990 711 1563 989 20 784 782 1569 1568 947 905 904 786 1576 1574 949 906 715 713 1578 992 991 712 1570 990 20 786 784 1576 1574 948 906 905 788 1586 1584 950 907 716 715 1587 993 992 713 1578 991 20 788 786 1586 1584 949 907 906 790 1593 1592 951 908 717 716 1594 994 993 715 1587 992 20 790 788 1593 1592 950 908 907 792 1600 1598 952 909 719 717 1601 995 994 716 1594 993 20 792 790 1600 1598 951 909 908 794 1608 1606 953 910 720 719 1609 996 995 717 1601 994 20 794 792 1608 1606 952 910 909 796 1615 1614 954 911 721 720 1616 997 996 719 1609 995 20 796 794 1615 1614 953 911 910 798 1622 1620 955 912 723 721 1624 998 997 720 1616 996 20 798 796 1622 1620 954 912 911 800 1632 1630 956 913 724 723 1633 999 998 721 1624 997 20 800 798 1632 1630 955 913 912 802 1639 1638 957 914 725 724 1640 1000 999 723 1633 998 20 802 800 1639 1638 956 914 913 804 1646 1644 958 915 727 725 1647 1001 1000 724 1640 999 20 804 802 1646 1644 957 915 914 806 1654 1652 959 916 728 727 1655 1002 1001 725 1647 1000 20 806 804 1654 1652 958 916 915 808 1661 1660 960 917 729 728 1662 1003 1002 727 1655 1001 20 808 806 1661 1660 959 917 916 810 1668 1666 961 918 731 729 1670 1004 1003 728 1662 1002 20 810 808 1668 1666 960 918 917 812 1678 1676 962 919 732 731 1679 1005 1004 729 1670 1003 20 812 810 1678 1676 961 919 918 814 1685 1684 963 920 733 732 1686 1006 1005 731 1679 1004 20 814 812 1685 1684 962 920 919 816 1692 1690 964 921 735 733 1694 1007 1006 732 1686 1005 20 816 814 1692 1690 963 921 920 818 1702 1700 965 922 736 735 1704 1008 1007 733 1694 1006 20 818 816 1702 1700 964 922 921 1711 1710 966 923 879 736 1712 1009 1008 880 735 1704 1007 26 818 1711 1710 965 923 922 879 308 307 228 222 210 1182 1139 878 310 309 259 234 201 1225 1009 880 736 1712 1008 21 504 448 426 420 1183 1140 924 877 681 1403 1402 968 925 633 632 1404 1011 1010 505 432 399 20 681 1403 1402 967 925 924 877 683 1410 1409 969 926 635 633 1411 1012 1011 632 1404 1010 20 683 681 1410 1409 968 926 925 684 1416 1415 970 927 636 635 1417 1013 1012 633 1411 1011 20 684 683 1416 1415 969 927 926 686 1422 1421 971 928 638 636 1423 1014 1013 635 1417 1012 20 686 684 1422 1421 970 928 927 687 1428 1427 972 929 639 638 1429 1015 1014 636 1423 1013 20 687 686 1428 1427 971 929 928 689 1434 1433 973 930 641 639 1435 1016 1015 638 1429 1014 20 689 687 1434 1433 972 930 929 691 1440 1439 974 931 643 641 1441 1017 1016 639 1435 1015 20 691 689 1440 1439 973 931 930 692 1447 1446 975 932 644 643 1448 1018 1017 641 1441 1016 20 692 691 1447 1446 974 932 931 693 1454 1453 976 933 645 644 1455 1019 1018 643 1448 1017 20 693 692 1454 1453 975 933 932 695 1461 1460 977 934 646 645 1462 1020 1019 644 1455 1018 20 695 693 1461 1460 976 934 933 696 1469 1468 978 935 647 646 1470 1021 1020 645 1462 1019 20 696 695 1469 1468 977 935 934 697 1476 1475 979 936 648 647 1477 1022 1021 646 1470 1020 20 697 696 1476 1475 978 936 935 699 1484 1482 980 937 650 648 1486 1023 1022 647 1477 1021 20 699 697 1484 1482 979 937 936 700 1494 1492 981 938 651 650 1496 1024 1023 648 1486 1022 20 700 699 1494 1492 980 938 937 701 1502 1501 982 939 652 651 1503 1025 1024 650 1496 1023 20 701 700 1502 1501 981 939 938 703 1509 1508 983 940 653 652 1510 1026 1025 651 1503 1024 20 703 701 1509 1508 982 940 939 704 1517 1516 984 941 654 653 1518 1027 1026 652 1510 1025 20 704 703 1517 1516 983 941 940 705 1524 1523 985 942 655 654 1525 1028 1027 653 1518 1026 20 705 704 1524 1523 984 942 941 707 1532 1530 986 943 656 655 1534 1029 1028 654 1525 1027 20 707 705 1532 1530 985 943 942 708 1541 1540 987 944 657 656 1542 1030 1029 655 1534 1028 20 708 707 1541 1540 986 944 943 709 1548 1547 988 945 658 657 1549 1031 1030 656 1542 1029 20 709 708 1548 1547 987 945 944 711 1555 1554 989 946 659 658 1556 1032 1031 657 1549 1030 20 711 709 1555 1554 988 946 945 712 1563 1562 990 947 660 659 1564 1033 1032 658 1556 1031 20 712 711 1563 1562 989 947 946 713 1570 1569 991 948 661 660 1571 1034 1033 659 1564 1032 20 713 712 1570 1569 990 948 947 715 1578 1576 992 949 662 661 1580 1035 1034 660 1571 1033 20 715 713 1578 1576 991 949 948 716 1587 1586 993 950 663 662 1588 1036 1035 661 1580 1034 20 716 715 1587 1586 992 950 949 717 1594 1593 994 951 664 663 1595 1037 1036 662 1588 1035 20 717 716 1594 1593 993 951 950 719 1601 1600 995 952 665 664 1602 1038 1037 663 1595 1036 20 719 717 1601 1600 994 952 951 720 1609 1608 996 953 666 665 1610 1039 1038 664 1602 1037 20 720 719 1609 1608 995 953 952 721 1616 1615 997 954 667 666 1617 1040 1039 665 1610 1038 20 721 720 1616 1615 996 954 953 723 1624 1622 998 955 668 667 1626 1041 1040 666 1617 1039 20 723 721 1624 1622 997 955 954 724 1633 1632 999 956 669 668 1634 1042 1041 667 1626 1040 20 724 723 1633 1632 998 956 955 725 1640 1639 1000 957 670 669 1641 1043 1042 668 1634 1041 20 725 724 1640 1639 999 957 956 727 1647 1646 1001 958 671 670 1648 1044 1043 669 1641 1042 20 727 725 1647 1646 1000 958 957 728 1655 1654 1002 959 672 671 1656 1045 1044 670 1648 1043 20 728 727 1655 1654 1001 959 958 729 1662 1661 1003 960 673 672 1663 1046 1045 671 1656 1044 20 729 728 1662 1661 1002 960 959 731 1670 1668 1004 961 674 673 1672 1047 1046 672 1663 1045 20 731 729 1670 1668 1003 961 960 732 1679 1678 1005 962 675 674 1680 1048 1047 673 1672 1046 20 732 731 1679 1678 1004 962 961 733 1686 1685 1006 963 676 675 1687 1049 1048 674 1680 1047 20 733 732 1686 1685 1005 963 962 735 1694 1692 1007 964 678 676 1696 1050 1049 675 1687 1048 20 735 733 1694 1692 1006 964 963 736 1704 1702 1008 965 679 678 1706 1051 1050 676 1696 1049 20 736 735 1704 1702 1007 965 964 1712 1711 1009 966 880 680 679 1713 1052 1051 678 1706 1050 24 736 1712 1711 1008 966 965 880 310 309 308 259 234 228 201 1225 1182 680 312 240 196 1052 679 1713 1051 20 632 505 504 432 426 399 967 633 1404 1403 1011 968 575 574 1406 1054 1053 506 438 390 20 633 632 1404 1403 1010 968 967 635 1411 1410 1012 969 577 575 1412 1055 1054 574 1406 1053 20 635 633 1411 1410 1011 969 968 636 1417 1416 1013 970 578 577 1418 1056 1055 575 1412 1054 20 636 635 1417 1416 1012 970 969 638 1423 1422 1014 971 580 578 1424 1057 1056 577 1418 1055 20 638 636 1423 1422 1013 971 970 639 1429 1428 1015 972 581 580 1430 1058 1057 578 1424 1056 20 639 638 1429 1428 1014 972 971 641 1435 1434 1016 973 583 581 1436 1059 1058 580 1430 1057 20 641 639 1435 1434 1015 973 972 643 1441 1440 1017 974 585 583 1442 1060 1059 581 1436 1058 20 643 641 1441 1440 1016 974 973 644 1448 1447 1018 975 586 585 1450 1061 1060 583 1442 1059 20 644 643 1448 1447 1017 975 974 645 1455 1454 1019 976 587 586 1456 1062 1061 585 1450 1060 20 645 644 1455 1454 1018 976 975 646 1462 1461 1020 977 589 587 1464 1063 1062 586 1456 1061 20 646 645 1462 1461 1019 977 976 647 1470 1469 1021 978 590 589 1472 1064 1063 587 1464 1062 20 647 646 1470 1469 1020 978 977 648 1477 1476 1022 979 591 590 1478 1065 1064 589 1472 1063 20 648 647 1477 1476 1021 979 978 650 1486 1484 1023 980 593 591 1488 1066 1065 590 1478 1064 20 650 648 1486 1484 1022 980 979 651 1496 1494 1024 981 594 593 1498 1067 1066 591 1488 1065 20 651 650 1496 1494 1023 981 980 652 1503 1502 1025 982 595 594 1504 1068 1067 593 1498 1066 20 652 651 1503 1502 1024 982 981 653 1510 1509 1026 983 597 595 1512 1069 1068 594 1504 1067 20 653 652 1510 1509 1025 983 982 654 1518 1517 1027 984 598 597 1520 1070 1069 595 1512 1068 20 654 653 1518 1517 1026 984 983 655 1525 1524 1028 985 599 598 1526 1071 1070 597 1520 1069 20 655 654 1525 1524 1027 985 984 656 1534 1532 1029 986 601 599 1536 1072 1071 598 1526 1070 20 656 655 1534 1532 1028 986 985 657 1542 1541 1030 987 602 601 1544 1073 1072 599 1536 1071 20 657 656 1542 1541 1029 987 986 658 1549 1548 1031 988 603 602 1550 1074 1073 601 1544 1072 20 658 657 1549 1548 1030 988 987 659 1556 1555 1032 989 605 603 1558 1075 1074 602 1550 1073 20 659 658 1556 1555 1031 989 988 660 1564 1563 1033 990 606 605 1566 1076 1075 603 1558 1074 20 660 659 1564 1563 1032 990 989 661 1571 1570 1034 991 607 606 1572 1077 1076 605 1566 1075 20 661 660 1571 1570 1033 991 990 662 1580 1578 1035 992 609 607 1582 1078 1077 606 1572 1076 20 662 661 1580 1578 1034 992 991 663 1588 1587 1036 993 610 609 1590 1079 1078 607 1582 1077 20 663 662 1588 1587 1035 993 992 664 1595 1594 1037 994 611 610 1596 1080 1079 609 1590 1078 20 664 663 1595 1594 1036 994 993 665 1602 1601 1038 995 613 611 1604 1081 1080 610 1596 1079 20 665 664 1602 1601 1037 995 994 666 1610 1609 1039 996 614 613 1612 1082 1081 611 1604 1080 20 666 665 1610 1609 1038 996 995 667 1617 1616 1040 997 615 614 1618 1083 1082 613 1612 1081 20 667 666 1617 1616 1039 997 996 668 1626 1624 1041 998 617 615 1628 1084 1083 614 1618 1082 20 668 667 1626 1624 1040 998 997 669 1634 1633 1042 999 618 617 1636 1085 1084 615 1628 1083 20 669 668 1634 1633 1041 999 998 670 1641 1640 1043 1000 619 618 1642 1086 1085 617 1636 1084 20 670 669 1641 1640 1042 1000 999 671 1648 1647 1044 1001 621 619 1650 1087 1086 618 1642 1085 20 671 670 1648 1647 1043 1001 1000 672 1656 1655 1045 1002 622 621 1658 1088 1087 619 1650 1086 20 672 671 1656 1655 1044 1002 1001 673 1663 1662 1046 1003 623 622 1664 1089 1088 621 1658 1087 20 673 672 1663 1662 1045 1003 1002 674 1672 1670 1047 1004 625 623 1674 1090 1089 622 1664 1088 20 674 673 1672 1670 1046 1004 1003 675 1680 1679 1048 1005 626 625 1682 1091 1090 623 1674 1089 20 675 674 1680 1679 1047 1005 1004 676 1687 1686 1049 1006 627 626 1688 1092 1091 625 1682 1090 20 676 675 1687 1686 1048 1006 1005 678 1696 1694 1050 1007 629 627 1698 1093 1092 626 1688 1091 20 678 676 1696 1694 1049 1007 1006 679 1706 1704 1051 1008 630 629 1708 1094 1093 627 1698 1092 20 679 678 1706 1704 1050 1008 1007 680 1713 1712 1052 1009 631 630 1714 1095 1094 629 1708 1093 20 680 679 1713 1712 1051 1009 1008 312 310 240 234 196 631 314 246 185 1095 630 1714 1094 15 574 506 505 438 432 390 1010 575 1406 1404 1054 1011 517 516 381 15 575 574 1406 1404 1053 1011 1010 577 1412 1411 1055 1012 519 517 516 15 577 575 1412 1411 1054 1012 1011 578 1418 1417 1056 1013 520 519 517 15 578 577 1418 1417 1055 1013 1012 580 1424 1423 1057 1014 522 520 519 17 580 578 1424 1423 1056 1014 1013 581 1430 1429 1058 1015 523 522 1844 1796 520 19 581 580 1430 1429 1057 1015 1014 583 1436 1435 1059 1016 525 523 1845 1844 1808 522 1796 19 583 581 1436 1435 1058 1016 1015 585 1442 1441 1060 1017 527 525 1845 1816 523 1844 1808 17 585 583 1442 1441 1059 1017 1016 586 1450 1448 1061 1018 528 527 525 1845 1816 15 586 585 1450 1448 1060 1018 1017 587 1456 1455 1062 1019 529 528 527 15 587 586 1456 1455 1061 1019 1018 589 1464 1462 1063 1020 531 529 528 15 589 587 1464 1462 1062 1020 1019 590 1472 1470 1064 1021 532 531 529 15 590 589 1472 1470 1063 1021 1020 591 1478 1477 1065 1022 533 532 531 15 591 590 1478 1477 1064 1022 1021 593 1488 1486 1066 1023 535 533 532 15 593 591 1488 1486 1065 1023 1022 594 1498 1496 1067 1024 536 535 533 15 594 593 1498 1496 1066 1024 1023 595 1504 1503 1068 1025 537 536 535 15 595 594 1504 1503 1067 1025 1024 597 1512 1510 1069 1026 539 537 536 15 597 595 1512 1510 1068 1026 1025 598 1520 1518 1070 1027 540 539 537 15 598 597 1520 1518 1069 1027 1026 599 1526 1525 1071 1028 541 540 539 15 599 598 1526 1525 1070 1028 1027 601 1536 1534 1072 1029 543 541 540 15 601 599 1536 1534 1071 1029 1028 602 1544 1542 1073 1030 544 543 541 15 602 601 1544 1542 1072 1030 1029 603 1550 1549 1074 1031 545 544 543 15 603 602 1550 1549 1073 1031 1030 605 1558 1556 1075 1032 547 545 544 15 605 603 1558 1556 1074 1032 1031 606 1566 1564 1076 1033 548 547 545 15 606 605 1566 1564 1075 1033 1032 607 1572 1571 1077 1034 549 548 547 15 607 606 1572 1571 1076 1034 1033 609 1582 1580 1078 1035 551 549 548 15 609 607 1582 1580 1077 1035 1034 610 1590 1588 1079 1036 552 551 549 15 610 609 1590 1588 1078 1036 1035 611 1596 1595 1080 1037 553 552 551 15 611 610 1596 1595 1079 1037 1036 613 1604 1602 1081 1038 555 553 552 15 613 611 1604 1602 1080 1038 1037 614 1612 1610 1082 1039 556 555 553 15 614 613 1612 1610 1081 1039 1038 615 1618 1617 1083 1040 557 556 555 15 615 614 1618 1617 1082 1040 1039 617 1628 1626 1084 1041 559 557 556 15 617 615 1628 1626 1083 1041 1040 618 1636 1634 1085 1042 560 559 557 15 618 617 1636 1634 1084 1042 1041 619 1642 1641 1086 1043 561 560 559 15 619 618 1642 1641 1085 1043 1042 621 1650 1648 1087 1044 563 561 560 15 621 619 1650 1648 1086 1044 1043 622 1658 1656 1088 1045 564 563 561 15 622 621 1658 1656 1087 1045 1044 623 1664 1663 1089 1046 565 564 563 15 623 622 1664 1663 1088 1046 1045 625 1674 1672 1090 1047 567 565 564 15 625 623 1674 1672 1089 1047 1046 626 1682 1680 1091 1048 568 567 565 15 626 625 1682 1680 1090 1048 1047 627 1688 1687 1092 1049 569 568 567 15 627 626 1688 1687 1091 1049 1048 629 1698 1696 1093 1050 571 569 568 15 629 627 1698 1696 1092 1050 1049 630 1708 1706 1094 1051 572 571 569 16 630 629 1708 1706 1093 1051 1050 631 1714 1713 1095 1052 573 572 1096 571 18 631 630 1714 1713 1094 1052 1051 314 312 246 240 185 573 316 252 174 1096 572 11 316 252 162 573 314 246 174 1095 572 1714 1094 21 819 503 416 410 881 820 1400 1399 1098 882 738 737 1402 1401 1141 1140 876 875 420 406 924 25 820 819 1400 1399 1097 882 881 821 1408 1407 1099 883 740 739 738 737 52 1409 1142 1141 1402 1401 1140 876 875 25 821 820 1408 1407 1098 883 882 822 1414 1413 1100 884 742 741 740 739 53 1415 1143 1142 738 737 52 1409 1141 25 822 821 1414 1413 1099 884 883 823 1420 1419 1101 885 744 743 742 741 54 1421 1144 1143 740 739 53 1415 1142 25 823 822 1420 1419 1100 885 884 824 1426 1425 1102 886 746 745 744 743 55 1427 1145 1144 742 741 54 1421 1143 25 824 823 1426 1425 1101 886 885 825 1432 1431 1103 887 748 747 746 745 56 1433 1146 1145 744 743 55 1427 1144 25 825 824 1432 1431 1102 887 886 826 1438 1437 1104 888 750 749 748 747 57 1439 1147 1146 746 745 56 1433 1145 25 826 825 1438 1437 1103 888 887 827 1444 1443 1105 889 752 751 750 749 1446 1445 1148 1147 748 747 57 1439 1146 24 827 826 1444 1443 1104 889 888 828 1452 1451 1106 890 754 753 752 751 1453 1149 1148 750 749 1446 1445 1147 24 828 827 1452 1451 1105 890 889 829 1458 1457 1107 891 756 755 754 753 1460 1459 1150 1149 752 751 1453 1148 25 829 828 1458 1457 1106 891 890 830 1466 1465 1108 892 758 757 756 755 1468 1467 1151 1150 754 753 1460 1459 1149 24 830 829 1466 1465 1107 892 891 831 1474 1473 1109 893 760 759 758 757 1475 1152 1151 756 755 1468 1467 1150 24 831 830 1474 1473 1108 893 892 832 1480 1479 1110 894 762 761 760 759 1482 1481 1153 1152 758 757 1475 1151 25 832 831 1480 1479 1109 894 893 833 1490 1489 1111 895 764 763 762 761 1492 1491 1154 1153 760 759 1482 1481 1152 24 833 832 1490 1489 1110 895 894 834 1500 1499 1112 896 766 765 764 763 1501 1155 1154 762 761 1492 1491 1153 24 834 833 1500 1499 1111 896 895 835 1506 1505 1113 897 768 767 766 765 1508 1507 1156 1155 764 763 1501 1154 25 835 834 1506 1505 1112 897 896 836 1514 1513 1114 898 770 769 768 767 1516 1515 1157 1156 766 765 1508 1507 1155 24 836 835 1514 1513 1113 898 897 837 1522 1521 1115 899 772 771 770 769 1523 1158 1157 768 767 1516 1515 1156 24 837 836 1522 1521 1114 899 898 838 1528 1527 1116 900 774 773 772 771 1530 1529 1159 1158 770 769 1523 1157 25 838 837 1528 1527 1115 900 899 839 1538 1537 1117 901 776 775 774 773 1540 1539 1160 1159 772 771 1530 1529 1158 24 839 838 1538 1537 1116 901 900 840 1546 1545 1118 902 778 777 776 775 1547 1161 1160 774 773 1540 1539 1159 24 840 839 1546 1545 1117 902 901 841 1552 1551 1119 903 780 779 778 777 1554 1553 1162 1161 776 775 1547 1160 25 841 840 1552 1551 1118 903 902 842 1560 1559 1120 904 782 781 780 779 1562 1561 1163 1162 778 777 1554 1553 1161 24 842 841 1560 1559 1119 904 903 843 1568 1567 1121 905 784 783 782 781 1569 1164 1163 780 779 1562 1561 1162 24 843 842 1568 1567 1120 905 904 844 1574 1573 1122 906 786 785 784 783 1576 1575 1165 1164 782 781 1569 1163 25 844 843 1574 1573 1121 906 905 845 1584 1583 1123 907 788 787 786 785 1586 1585 1166 1165 784 783 1576 1575 1164 24 845 844 1584 1583 1122 907 906 846 1592 1591 1124 908 790 789 788 787 1593 1167 1166 786 785 1586 1585 1165 24 846 845 1592 1591 1123 908 907 847 1598 1597 1125 909 792 791 790 789 1600 1599 1168 1167 788 787 1593 1166 25 847 846 1598 1597 1124 909 908 848 1606 1605 1126 910 794 793 792 791 1608 1607 1169 1168 790 789 1600 1599 1167 24 848 847 1606 1605 1125 910 909 849 1614 1613 1127 911 796 795 794 793 1615 1170 1169 792 791 1608 1607 1168 24 849 848 1614 1613 1126 911 910 850 1620 1619 1128 912 798 797 796 795 1622 1621 1171 1170 794 793 1615 1169 25 850 849 1620 1619 1127 912 911 851 1630 1629 1129 913 800 799 798 797 1632 1631 1172 1171 796 795 1622 1621 1170 24 851 850 1630 1629 1128 913 912 852 1638 1637 1130 914 802 801 800 799 1639 1173 1172 798 797 1632 1631 1171 24 852 851 1638 1637 1129 914 913 853 1644 1643 1131 915 804 803 802 801 1646 1645 1174 1173 800 799 1639 1172 25 853 852 1644 1643 1130 915 914 854 1652 1651 1132 916 806 805 804 803 1654 1653 1175 1174 802 801 1646 1645 1173 24 854 853 1652 1651 1131 916 915 855 1660 1659 1133 917 808 807 806 805 1661 1176 1175 804 803 1654 1653 1174 24 855 854 1660 1659 1132 917 916 856 1666 1665 1134 918 810 809 808 807 1668 1667 1177 1176 806 805 1661 1175 25 856 855 1666 1665 1133 918 917 857 1676 1675 1135 919 812 811 810 809 1678 1677 1178 1177 808 807 1668 1667 1176 24 857 856 1676 1675 1134 919 918 1684 1683 1136 920 858 814 813 812 811 1685 1179 1178 810 809 1678 1677 1177 24 857 1684 1683 1135 920 919 858 1690 1689 1137 921 859 816 815 814 813 1692 1691 1180 1179 812 811 1685 1178 25 1690 1689 1136 921 920 859 858 1700 1699 1138 922 860 818 817 816 815 1702 1701 1181 1180 814 813 1692 1691 1179 24 1700 1699 1137 922 921 860 859 1710 1709 1139 923 861 818 817 1711 1182 1181 879 878 816 815 1702 1701 1180 21 1710 1709 1138 923 922 861 860 307 222 216 308 228 210 1182 966 879 878 818 817 1711 1181 28 503 420 416 406 1097 924 881 876 875 738 737 1402 1401 1400 1399 1141 1098 690 688 681 1403 1184 1183 877 504 448 426 967 30 738 737 1402 1401 1400 1399 1140 1098 1097 876 875 740 739 52 1409 1408 1407 1142 1099 688 685 683 681 1410 1185 1184 690 1403 1183 877 30 740 739 738 737 52 1409 1408 1407 1141 1099 1098 742 741 53 1415 1414 1413 1143 1100 685 684 683 682 1416 1186 1185 688 681 1410 1184 30 742 741 740 739 53 1415 1414 1413 1142 1100 1099 744 743 54 1421 1420 1419 1144 1101 686 684 682 1422 1187 1186 1847 685 683 1416 1185 30 744 743 742 741 54 1421 1420 1419 1143 1101 1100 746 745 55 1427 1426 1425 1145 1102 687 686 1428 1188 1187 1848 1847 684 682 1422 1186 30 746 745 744 743 55 1427 1426 1425 1144 1102 1101 748 747 56 1433 1432 1431 1146 1103 689 687 1434 1189 1188 1849 1848 686 1428 1187 1847 30 748 747 746 745 56 1433 1432 1431 1145 1103 1102 750 749 57 1439 1438 1437 1147 1104 691 689 1440 1190 1189 1851 1849 687 1434 1188 1848 30 750 749 748 747 57 1439 1438 1437 1146 1104 1103 752 751 1446 1445 1444 1443 1148 1105 692 691 1447 1191 1190 1851 1850 689 1440 1189 1849 28 752 751 750 749 1446 1445 1444 1443 1147 1105 1104 754 753 1453 1452 1451 1149 1106 693 692 1454 1192 1191 691 1447 1190 1851 1850 27 754 753 752 751 1453 1452 1451 1148 1106 1105 756 755 1460 1459 1458 1457 1150 1107 695 694 693 1461 1193 1192 692 1454 1191 28 756 755 754 753 1460 1459 1458 1457 1149 1107 1106 758 757 1468 1467 1466 1465 1151 1108 696 695 694 1469 1194 1193 693 1461 1192 27 758 757 756 755 1468 1467 1466 1465 1150 1108 1107 760 759 1475 1474 1473 1152 1109 697 696 1476 1195 1194 695 694 1469 1193 28 760 759 758 757 1475 1474 1473 1151 1109 1108 762 761 1482 1481 1480 1479 1153 1110 699 698 697 1484 1483 1196 1195 696 1476 1194 30 762 761 760 759 1482 1481 1480 1479 1152 1110 1109 764 763 1492 1491 1490 1489 1154 1111 700 699 698 1494 1493 1197 1196 697 1484 1483 1195 28 764 763 762 761 1492 1491 1490 1489 1153 1111 1110 766 765 1501 1500 1499 1155 1112 701 700 1502 1198 1197 699 698 1494 1493 1196 27 766 765 764 763 1501 1500 1499 1154 1112 1111 768 767 1508 1507 1506 1505 1156 1113 703 702 701 1509 1199 1198 700 1502 1197 28 768 767 766 765 1508 1507 1506 1505 1155 1113 1112 770 769 1516 1515 1514 1513 1157 1114 704 703 702 1517 1200 1199 701 1509 1198 27 770 769 768 767 1516 1515 1514 1513 1156 1114 1113 772 771 1523 1522 1521 1158 1115 705 704 1524 1201 1200 703 702 1517 1199 28 772 771 770 769 1523 1522 1521 1157 1115 1114 774 773 1530 1529 1528 1527 1159 1116 707 706 705 1532 1531 1202 1201 704 1524 1200 29 774 773 772 771 1530 1529 1528 1527 1158 1116 1115 776 775 1540 1539 1538 1537 1160 1117 708 707 706 1541 1203 1202 705 1532 1531 1201 27 776 775 774 773 1540 1539 1538 1537 1159 1117 1116 778 777 1547 1546 1545 1161 1118 709 708 1548 1204 1203 707 706 1541 1202 27 778 777 776 775 1547 1546 1545 1160 1118 1117 780 779 1554 1553 1552 1551 1162 1119 711 710 709 1555 1205 1204 708 1548 1203 28 780 779 778 777 1554 1553 1552 1551 1161 1119 1118 782 781 1562 1561 1560 1559 1163 1120 712 711 710 1563 1206 1205 709 1555 1204 27 782 781 780 779 1562 1561 1560 1559 1162 1120 1119 784 783 1569 1568 1567 1164 1121 713 712 1570 1207 1206 711 710 1563 1205 28 784 783 782 781 1569 1568 1567 1163 1121 1120 786 785 1576 1575 1574 1573 1165 1122 715 714 713 1578 1577 1208 1207 712 1570 1206 29 786 785 784 783 1576 1575 1574 1573 1164 1122 1121 788 787 1586 1585 1584 1583 1166 1123 716 715 714 1587 1209 1208 713 1578 1577 1207 27 788 787 786 785 1586 1585 1584 1583 1165 1123 1122 790 789 1593 1592 1591 1167 1124 717 716 1594 1210 1209 715 714 1587 1208 27 790 789 788 787 1593 1592 1591 1166 1124 1123 792 791 1600 1599 1598 1597 1168 1125 719 718 717 1601 1211 1210 716 1594 1209 28 792 791 790 789 1600 1599 1598 1597 1167 1125 1124 794 793 1608 1607 1606 1605 1169 1126 720 719 718 1609 1212 1211 717 1601 1210 27 794 793 792 791 1608 1607 1606 1605 1168 1126 1125 796 795 1615 1614 1613 1170 1127 721 720 1616 1213 1212 719 718 1609 1211 28 796 795 794 793 1615 1614 1613 1169 1127 1126 798 797 1622 1621 1620 1619 1171 1128 723 722 721 1624 1623 1214 1213 720 1616 1212 29 798 797 796 795 1622 1621 1620 1619 1170 1128 1127 800 799 1632 1631 1630 1629 1172 1129 724 723 722 1633 1215 1214 721 1624 1623 1213 27 800 799 798 797 1632 1631 1630 1629 1171 1129 1128 802 801 1639 1638 1637 1173 1130 725 724 1640 1216 1215 723 722 1633 1214 27 802 801 800 799 1639 1638 1637 1172 1130 1129 804 803 1646 1645 1644 1643 1174 1131 727 726 725 1647 1217 1216 724 1640 1215 28 804 803 802 801 1646 1645 1644 1643 1173 1131 1130 806 805 1654 1653 1652 1651 1175 1132 728 727 726 1655 1218 1217 725 1647 1216 27 806 805 804 803 1654 1653 1652 1651 1174 1132 1131 808 807 1661 1660 1659 1176 1133 729 728 1662 1219 1218 727 726 1655 1217 28 808 807 806 805 1661 1660 1659 1175 1133 1132 810 809 1668 1667 1666 1665 1177 1134 731 730 729 1670 1669 1220 1219 728 1662 1218 29 810 809 808 807 1668 1667 1666 1665 1176 1134 1133 812 811 1678 1677 1676 1675 1178 1135 732 731 730 1679 1221 1220 729 1670 1669 1219 27 812 811 810 809 1678 1677 1676 1675 1177 1135 1134 814 813 1685 1684 1683 1179 1136 733 732 1686 1222 1221 731 730 1679 1220 28 814 813 812 811 1685 1684 1683 1178 1136 1135 816 815 1692 1691 1690 1689 1180 1137 735 734 733 1694 1693 1223 1222 732 1686 1221 30 816 815 814 813 1692 1691 1690 1689 1179 1137 1136 818 817 1702 1701 1700 1699 1181 1138 736 735 734 1704 1703 1224 1223 733 1694 1693 1222 28 818 817 816 815 1702 1701 1700 1699 1180 1138 1137 1711 1710 1709 1182 1139 879 878 736 1712 1225 1224 880 735 734 1704 1703 1223 28 818 817 1711 1710 1709 1181 1139 1138 879 878 308 307 228 222 210 966 923 310 309 259 234 201 1225 1009 880 736 1712 1224 26 504 448 426 420 1140 967 924 877 690 688 681 1403 1402 1401 1184 1141 642 640 633 632 1404 1227 1226 505 454 399 27 690 688 681 1403 1402 1401 1183 1141 1140 877 685 683 1410 1409 1185 1142 640 637 635 633 1411 1228 1227 642 632 1404 1226 26 688 685 683 681 1410 1409 1184 1142 1141 684 682 1416 1415 1186 1143 637 636 635 634 1417 1229 1228 640 633 1411 1227 26 685 684 683 682 1416 1415 1185 1143 1142 686 1422 1421 1187 1144 1847 638 636 634 1423 1230 1229 1852 637 635 1417 1228 26 686 684 682 1422 1421 1186 1144 1143 1847 687 1428 1427 1188 1145 1848 639 638 1429 1231 1230 1853 1852 636 634 1423 1229 26 687 686 1428 1427 1187 1145 1144 1848 1847 689 1434 1433 1189 1146 1849 641 639 1435 1232 1231 1854 1853 638 1429 1230 1852 26 689 687 1434 1433 1188 1146 1145 1849 1848 691 1440 1439 1190 1147 1851 643 641 1441 1233 1232 1856 1854 639 1435 1231 1853 27 691 689 1440 1439 1189 1147 1146 1851 1849 692 1447 1446 1445 1191 1148 1850 644 643 1448 1234 1233 1856 1855 641 1441 1232 1854 25 692 691 1447 1446 1445 1190 1148 1147 1851 1850 693 1454 1453 1192 1149 645 644 1455 1235 1234 643 1448 1233 1856 1855 22 693 692 1454 1453 1191 1149 1148 695 694 1461 1460 1459 1193 1150 646 645 1462 1236 1235 644 1455 1234 23 695 694 693 1461 1460 1459 1192 1150 1149 696 1469 1468 1467 1194 1151 647 646 1470 1237 1236 645 1462 1235 22 696 695 694 1469 1468 1467 1193 1151 1150 697 1476 1475 1195 1152 648 647 1477 1238 1237 646 1470 1236 25 697 696 1476 1475 1194 1152 1151 699 698 1484 1483 1482 1481 1196 1153 650 649 648 1486 1485 1239 1238 647 1477 1237 28 699 698 697 1484 1483 1482 1481 1195 1153 1152 700 1494 1493 1492 1491 1197 1154 651 650 649 1496 1495 1240 1239 648 1486 1485 1238 25 700 699 698 1494 1493 1492 1491 1196 1154 1153 701 1502 1501 1198 1155 652 651 1503 1241 1240 650 649 1496 1495 1239 22 701 700 1502 1501 1197 1155 1154 703 702 1509 1508 1507 1199 1156 653 652 1510 1242 1241 651 1503 1240 23 703 702 701 1509 1508 1507 1198 1156 1155 704 1517 1516 1515 1200 1157 654 653 1518 1243 1242 652 1510 1241 22 704 703 702 1517 1516 1515 1199 1157 1156 705 1524 1523 1201 1158 655 654 1525 1244 1243 653 1518 1242 24 705 704 1524 1523 1200 1158 1157 707 706 1532 1531 1530 1529 1202 1159 656 655 1534 1533 1245 1244 654 1525 1243 25 707 706 705 1532 1531 1530 1529 1201 1159 1158 708 1541 1540 1539 1203 1160 657 656 1542 1246 1245 655 1534 1533 1244 22 708 707 706 1541 1540 1539 1202 1160 1159 709 1548 1547 1204 1161 658 657 1549 1247 1246 656 1542 1245 22 709 708 1548 1547 1203 1161 1160 711 710 1555 1554 1553 1205 1162 659 658 1556 1248 1247 657 1549 1246 23 711 710 709 1555 1554 1553 1204 1162 1161 712 1563 1562 1561 1206 1163 660 659 1564 1249 1248 658 1556 1247 22 712 711 710 1563 1562 1561 1205 1163 1162 713 1570 1569 1207 1164 661 660 1571 1250 1249 659 1564 1248 24 713 712 1570 1569 1206 1164 1163 715 714 1578 1577 1576 1575 1208 1165 662 661 1580 1579 1251 1250 660 1571 1249 25 715 714 713 1578 1577 1576 1575 1207 1165 1164 716 1587 1586 1585 1209 1166 663 662 1588 1252 1251 661 1580 1579 1250 22 716 715 714 1587 1586 1585 1208 1166 1165 717 1594 1593 1210 1167 664 663 1595 1253 1252 662 1588 1251 22 717 716 1594 1593 1209 1167 1166 719 718 1601 1600 1599 1211 1168 665 664 1602 1254 1253 663 1595 1252 23 719 718 717 1601 1600 1599 1210 1168 1167 720 1609 1608 1607 1212 1169 666 665 1610 1255 1254 664 1602 1253 22 720 719 718 1609 1608 1607 1211 1169 1168 721 1616 1615 1213 1170 667 666 1617 1256 1255 665 1610 1254 24 721 720 1616 1615 1212 1170 1169 723 722 1624 1623 1622 1621 1214 1171 668 667 1626 1625 1257 1256 666 1617 1255 25 723 722 721 1624 1623 1622 1621 1213 1171 1170 724 1633 1632 1631 1215 1172 669 668 1634 1258 1257 667 1626 1625 1256 22 724 723 722 1633 1632 1631 1214 1172 1171 725 1640 1639 1216 1173 670 669 1641 1259 1258 668 1634 1257 22 725 724 1640 1639 1215 1173 1172 727 726 1647 1646 1645 1217 1174 671 670 1648 1260 1259 669 1641 1258 23 727 726 725 1647 1646 1645 1216 1174 1173 728 1655 1654 1653 1218 1175 672 671 1656 1261 1260 670 1648 1259 22 728 727 726 1655 1654 1653 1217 1175 1174 729 1662 1661 1219 1176 673 672 1663 1262 1261 671 1656 1260 24 729 728 1662 1661 1218 1176 1175 731 730 1670 1669 1668 1667 1220 1177 674 673 1672 1671 1263 1262 672 1663 1261 25 731 730 729 1670 1669 1668 1667 1219 1177 1176 732 1679 1678 1677 1221 1178 675 674 1680 1264 1263 673 1672 1671 1262 22 732 731 730 1679 1678 1677 1220 1178 1177 733 1686 1685 1222 1179 676 675 1687 1265 1264 674 1680 1263 25 733 732 1686 1685 1221 1179 1178 735 734 1694 1693 1692 1691 1223 1180 678 677 676 1696 1695 1266 1265 675 1687 1264 28 735 734 733 1694 1693 1692 1691 1222 1180 1179 736 1704 1703 1702 1701 1224 1181 679 678 677 1706 1705 1267 1266 676 1696 1695 1265 25 736 735 734 1704 1703 1702 1701 1223 1181 1180 1712 1711 1225 1182 880 680 679 1713 1268 1267 678 677 1706 1705 1266 26 736 1712 1711 1224 1182 1181 880 310 309 308 259 234 228 201 1009 966 680 312 311 263 196 192 1268 679 1713 1267 25 632 505 504 454 448 399 1183 642 640 633 1404 1403 1227 1184 584 582 575 574 1406 1405 1270 1269 506 460 390 27 642 640 633 632 1404 1403 1226 1184 1183 637 635 1411 1410 1228 1185 582 579 577 575 1412 1271 1270 584 574 1406 1405 1269 26 640 637 635 633 1411 1410 1227 1185 1184 636 634 1417 1416 1229 1186 579 578 577 576 1418 1272 1271 582 575 1412 1270 26 637 636 635 634 1417 1416 1228 1186 1185 638 1423 1422 1230 1187 1852 580 578 576 1424 1273 1272 1857 579 577 1418 1271 26 638 636 634 1423 1422 1229 1187 1186 1852 639 1429 1428 1231 1188 1853 581 580 1430 1274 1273 1858 1857 578 576 1424 1272 26 639 638 1429 1428 1230 1188 1187 1853 1852 641 1435 1434 1232 1189 1854 583 581 1436 1275 1274 1859 1858 580 1430 1273 1857 26 641 639 1435 1434 1231 1189 1188 1854 1853 643 1441 1440 1233 1190 1856 585 583 1442 1276 1275 1861 1859 581 1436 1274 1858 27 643 641 1441 1440 1232 1190 1189 1856 1854 644 1448 1447 1234 1191 1855 586 585 1450 1449 1277 1276 1861 1860 583 1442 1275 1859 25 644 643 1448 1447 1233 1191 1190 1856 1855 645 1455 1454 1235 1192 587 586 1456 1278 1277 585 1450 1449 1276 1861 1860 22 645 644 1455 1454 1234 1192 1191 646 1462 1461 1236 1193 589 588 587 1464 1463 1279 1278 586 1456 1277 23 646 645 1462 1461 1235 1193 1192 647 1470 1469 1237 1194 590 589 588 1472 1471 1280 1279 587 1464 1463 1278 22 647 646 1470 1469 1236 1194 1193 648 1477 1476 1238 1195 591 590 1478 1281 1280 589 588 1472 1471 1279 25 648 647 1477 1476 1237 1195 1194 650 649 1486 1485 1484 1483 1239 1196 593 592 591 1488 1487 1282 1281 590 1478 1280 28 650 649 648 1486 1485 1484 1483 1238 1196 1195 651 1496 1495 1494 1493 1240 1197 594 593 592 1498 1497 1283 1282 591 1488 1487 1281 25 651 650 649 1496 1495 1494 1493 1239 1197 1196 652 1503 1502 1241 1198 595 594 1504 1284 1283 593 592 1498 1497 1282 22 652 651 1503 1502 1240 1198 1197 653 1510 1509 1242 1199 597 596 595 1512 1511 1285 1284 594 1504 1283 23 653 652 1510 1509 1241 1199 1198 654 1518 1517 1243 1200 598 597 596 1520 1519 1286 1285 595 1512 1511 1284 22 654 653 1518 1517 1242 1200 1199 655 1525 1524 1244 1201 599 598 1526 1287 1286 597 596 1520 1519 1285 24 655 654 1525 1524 1243 1201 1200 656 1534 1533 1532 1531 1245 1202 601 600 599 1536 1535 1288 1287 598 1526 1286 25 656 655 1534 1533 1532 1531 1244 1202 1201 657 1542 1541 1246 1203 602 601 600 1544 1543 1289 1288 599 1536 1535 1287 22 657 656 1542 1541 1245 1203 1202 658 1549 1548 1247 1204 603 602 1550 1290 1289 601 600 1544 1543 1288 22 658 657 1549 1548 1246 1204 1203 659 1556 1555 1248 1205 605 604 603 1558 1557 1291 1290 602 1550 1289 23 659 658 1556 1555 1247 1205 1204 660 1564 1563 1249 1206 606 605 604 1566 1565 1292 1291 603 1558 1557 1290 22 660 659 1564 1563 1248 1206 1205 661 1571 1570 1250 1207 607 606 1572 1293 1292 605 604 1566 1565 1291 24 661 660 1571 1570 1249 1207 1206 662 1580 1579 1578 1577 1251 1208 609 608 607 1582 1581 1294 1293 606 1572 1292 25 662 661 1580 1579 1578 1577 1250 1208 1207 663 1588 1587 1252 1209 610 609 608 1590 1589 1295 1294 607 1582 1581 1293 22 663 662 1588 1587 1251 1209 1208 664 1595 1594 1253 1210 611 610 1596 1296 1295 609 608 1590 1589 1294 22 664 663 1595 1594 1252 1210 1209 665 1602 1601 1254 1211 613 612 611 1604 1603 1297 1296 610 1596 1295 23 665 664 1602 1601 1253 1211 1210 666 1610 1609 1255 1212 614 613 612 1612 1611 1298 1297 611 1604 1603 1296 22 666 665 1610 1609 1254 1212 1211 667 1617 1616 1256 1213 615 614 1618 1299 1298 613 612 1612 1611 1297 24 667 666 1617 1616 1255 1213 1212 668 1626 1625 1624 1623 1257 1214 617 616 615 1628 1627 1300 1299 614 1618 1298 25 668 667 1626 1625 1624 1623 1256 1214 1213 669 1634 1633 1258 1215 618 617 616 1636 1635 1301 1300 615 1628 1627 1299 22 669 668 1634 1633 1257 1215 1214 670 1641 1640 1259 1216 619 618 1642 1302 1301 617 616 1636 1635 1300 22 670 669 1641 1640 1258 1216 1215 671 1648 1647 1260 1217 621 620 619 1650 1649 1303 1302 618 1642 1301 23 671 670 1648 1647 1259 1217 1216 672 1656 1655 1261 1218 622 621 620 1658 1657 1304 1303 619 1650 1649 1302 22 672 671 1656 1655 1260 1218 1217 673 1663 1662 1262 1219 623 622 1664 1305 1304 621 620 1658 1657 1303 24 673 672 1663 1662 1261 1219 1218 674 1672 1671 1670 1669 1263 1220 625 624 623 1674 1673 1306 1305 622 1664 1304 25 674 673 1672 1671 1670 1669 1262 1220 1219 675 1680 1679 1264 1221 626 625 624 1682 1681 1307 1306 623 1674 1673 1305 22 675 674 1680 1679 1263 1221 1220 676 1687 1686 1265 1222 627 626 1688 1308 1307 625 624 1682 1681 1306 25 676 675 1687 1686 1264 1222 1221 678 677 1696 1695 1694 1693 1266 1223 629 628 627 1698 1697 1309 1308 626 1688 1307 28 678 677 676 1696 1695 1694 1693 1265 1223 1222 679 1706 1705 1704 1703 1267 1224 630 629 628 1708 1707 1310 1309 627 1698 1697 1308 25 679 678 677 1706 1705 1704 1703 1266 1224 1223 680 1713 1712 1268 1225 631 630 1714 1311 1310 629 628 1708 1707 1309 25 680 679 1713 1712 1267 1225 1224 312 311 310 309 263 259 196 192 631 314 313 267 185 181 1311 630 1714 1310 24 574 506 505 460 454 390 1226 584 582 575 1406 1405 1404 1270 1227 526 524 517 516 1715 1758 1716 511 381 26 584 582 575 574 1406 1405 1404 1269 1227 1226 579 577 1412 1411 1271 1228 524 521 519 517 1717 1716 526 516 1715 1758 24 582 579 577 575 1412 1411 1270 1228 1227 578 576 1418 1417 1272 1229 521 520 519 518 1718 1717 524 517 1716 24 579 578 577 576 1418 1417 1271 1229 1228 580 1424 1423 1273 1230 1857 522 520 518 1862 1719 1718 521 519 1717 27 580 578 576 1424 1423 1272 1230 1229 1857 581 1430 1429 1274 1231 1858 523 522 1863 1862 1833 1799 1796 1720 1719 520 518 1718 30 581 580 1430 1429 1273 1231 1230 1858 1857 583 1436 1435 1275 1232 1859 525 523 1864 1863 1834 1833 1808 1807 1721 1720 522 1862 1799 1796 1719 30 583 581 1436 1435 1274 1232 1231 1859 1858 585 1442 1441 1276 1233 1861 527 525 1866 1864 1834 1816 1815 1722 1721 523 1863 1833 1808 1807 1720 29 585 583 1442 1441 1275 1233 1232 1861 1859 586 1450 1449 1448 1277 1234 1860 528 527 1866 1865 1759 1723 1722 525 1864 1834 1816 1815 1721 24 586 585 1450 1449 1448 1276 1234 1233 1861 1860 587 1456 1455 1278 1235 529 528 1724 1723 527 1866 1865 1759 1722 22 587 586 1456 1455 1277 1235 1234 589 588 1464 1463 1462 1279 1236 531 530 529 1760 1725 1724 528 1723 24 589 588 587 1464 1463 1462 1278 1236 1235 590 1472 1471 1470 1280 1237 532 531 530 1761 1726 1725 529 1760 1724 22 590 589 588 1472 1471 1470 1279 1237 1236 591 1478 1477 1281 1238 533 532 1727 1726 531 530 1761 1725 23 591 590 1478 1477 1280 1238 1237 593 592 1488 1487 1486 1485 1282 1239 535 534 533 1762 1728 1727 532 1726 26 593 592 591 1488 1487 1486 1485 1281 1239 1238 594 1498 1497 1496 1495 1283 1240 536 535 534 1763 1729 1728 533 1762 1727 23 594 593 592 1498 1497 1496 1495 1282 1240 1239 595 1504 1503 1284 1241 537 536 1730 1729 535 534 1763 1728 22 595 594 1504 1503 1283 1241 1240 597 596 1512 1511 1510 1285 1242 539 538 537 1764 1731 1730 536 1729 24 597 596 595 1512 1511 1510 1284 1242 1241 598 1520 1519 1518 1286 1243 540 539 538 1765 1732 1731 537 1764 1730 22 598 597 596 1520 1519 1518 1285 1243 1242 599 1526 1525 1287 1244 541 540 1733 1732 539 538 1765 1731 23 599 598 1526 1525 1286 1244 1243 601 600 1536 1535 1534 1533 1288 1245 543 542 541 1766 1734 1733 540 1732 25 601 600 599 1536 1535 1534 1533 1287 1245 1244 602 1544 1543 1542 1289 1246 544 543 542 1767 1735 1734 541 1766 1733 22 602 601 600 1544 1543 1542 1288 1246 1245 603 1550 1549 1290 1247 545 544 1736 1735 543 542 1767 1734 22 603 602 1550 1549 1289 1247 1246 605 604 1558 1557 1556 1291 1248 547 546 545 1768 1737 1736 544 1735 24 605 604 603 1558 1557 1556 1290 1248 1247 606 1566 1565 1564 1292 1249 548 547 546 1769 1738 1737 545 1768 1736 22 606 605 604 1566 1565 1564 1291 1249 1248 607 1572 1571 1293 1250 549 548 1739 1738 547 546 1769 1737 23 607 606 1572 1571 1292 1250 1249 609 608 1582 1581 1580 1579 1294 1251 551 550 549 1770 1740 1739 548 1738 25 609 608 607 1582 1581 1580 1579 1293 1251 1250 610 1590 1589 1588 1295 1252 552 551 550 1771 1741 1740 549 1770 1739 22 610 609 608 1590 1589 1588 1294 1252 1251 611 1596 1595 1296 1253 553 552 1742 1741 551 550 1771 1740 22 611 610 1596 1595 1295 1253 1252 613 612 1604 1603 1602 1297 1254 555 554 553 1772 1743 1742 552 1741 24 613 612 611 1604 1603 1602 1296 1254 1253 614 1612 1611 1610 1298 1255 556 555 554 1773 1744 1743 553 1772 1742 22 614 613 612 1612 1611 1610 1297 1255 1254 615 1618 1617 1299 1256 557 556 1745 1744 555 554 1773 1743 23 615 614 1618 1617 1298 1256 1255 617 616 1628 1627 1626 1625 1300 1257 559 558 557 1774 1746 1745 556 1744 25 617 616 615 1628 1627 1626 1625 1299 1257 1256 618 1636 1635 1634 1301 1258 560 559 558 1775 1747 1746 557 1774 1745 22 618 617 616 1636 1635 1634 1300 1258 1257 619 1642 1641 1302 1259 561 560 1748 1747 559 558 1775 1746 22 619 618 1642 1641 1301 1259 1258 621 620 1650 1649 1648 1303 1260 563 562 561 1776 1749 1748 560 1747 24 621 620 619 1650 1649 1648 1302 1260 1259 622 1658 1657 1656 1304 1261 564 563 562 1777 1750 1749 561 1776 1748 22 622 621 620 1658 1657 1656 1303 1261 1260 623 1664 1663 1305 1262 565 564 1751 1750 563 562 1777 1749 23 623 622 1664 1663 1304 1262 1261 625 624 1674 1673 1672 1671 1306 1263 567 566 565 1778 1752 1751 564 1750 25 625 624 623 1674 1673 1672 1671 1305 1263 1262 626 1682 1681 1680 1307 1264 568 567 566 1779 1753 1752 565 1778 1751 22 626 625 624 1682 1681 1680 1306 1264 1263 627 1688 1687 1308 1265 569 568 1754 1753 567 566 1779 1752 23 627 626 1688 1687 1307 1265 1264 629 628 1698 1697 1696 1695 1309 1266 571 570 569 1780 1755 1754 568 1753 26 629 628 627 1698 1697 1696 1695 1308 1266 1265 630 1708 1707 1706 1705 1310 1267 572 571 570 1781 1756 1755 569 1780 1754 23 630 629 628 1708 1707 1706 1705 1309 1267 1266 631 1714 1713 1311 1268 573 572 1757 1756 571 570 1781 1755 25 631 630 1714 1713 1310 1268 1267 314 313 312 311 267 263 185 181 573 316 315 271 174 173 1782 1757 572 1756 20 819 503 464 410 3213 3132 2816 820 1399 1313 2323 2815 737 1401 875 2321 2898 2760 406 3217 20 820 819 1399 1312 2323 2816 2815 821 1407 1314 2315 2814 739 737 2898 2896 1401 875 2321 2760 18 821 820 1407 1313 2315 2815 2814 822 1413 1315 2309 2813 741 739 2896 2894 737 2898 18 822 821 1413 1314 2309 2814 2813 823 1419 1316 2303 2812 743 741 2894 2892 739 2896 18 823 822 1419 1315 2303 2813 2812 824 1425 1317 2297 2811 745 743 2892 2890 741 2894 18 824 823 1425 1316 2297 2812 2811 825 1431 1318 2291 2810 747 745 2890 2888 743 2892 18 825 824 1431 1317 2291 2811 2810 826 1437 1319 2285 2809 749 747 2888 2886 745 2890 20 826 825 1437 1318 2285 2810 2809 827 1443 1320 2279 2808 751 749 1445 2277 2886 2884 747 2888 20 827 826 1443 1319 2279 2809 2808 828 1451 1321 2271 2807 753 751 2884 2882 749 1445 2277 2886 21 828 827 1451 1320 2271 2808 2807 829 1457 1322 2265 2806 755 753 1459 1355 2263 2882 2880 751 2884 23 829 828 1457 1321 2265 2807 2806 830 1465 1323 2257 2805 757 755 1467 1355 2255 2880 2878 753 1459 2263 2882 21 830 829 1465 1322 2257 2806 2805 831 1473 1324 2249 2804 759 757 2878 2876 755 1467 1355 2255 2880 21 831 830 1473 1323 2249 2805 2804 832 1479 1325 2243 2803 761 759 1481 1356 2241 2876 2874 757 2878 23 832 831 1479 1324 2243 2804 2803 833 1489 1326 2233 2802 763 761 1491 1356 2231 2874 2872 759 1481 2241 2876 21 833 832 1489 1325 2233 2803 2802 834 1499 1327 2223 2801 765 763 2872 2870 761 1491 1356 2231 2874 21 834 833 1499 1326 2223 2802 2801 835 1505 1328 2217 2800 767 765 1507 1357 2215 2870 2868 763 2872 23 835 834 1505 1327 2217 2801 2800 836 1513 1329 2209 2799 769 767 1515 1357 2207 2868 2866 765 1507 2215 2870 21 836 835 1513 1328 2209 2800 2799 837 1521 1330 2201 2798 771 769 2866 2864 767 1515 1357 2207 2868 21 837 836 1521 1329 2201 2799 2798 838 1527 1331 2195 2797 773 771 1529 1358 2193 2864 2862 769 2866 23 838 837 1527 1330 2195 2798 2797 839 1537 1332 2185 2796 775 773 1539 1358 2183 2862 2860 771 1529 2193 2864 21 839 838 1537 1331 2185 2797 2796 840 1545 1333 2177 2795 777 775 2860 2858 773 1539 1358 2183 2862 21 840 839 1545 1332 2177 2796 2795 841 1551 1334 2171 2794 779 777 1553 1359 2169 2858 2856 775 2860 23 841 840 1551 1333 2171 2795 2794 842 1559 1335 2163 2793 781 779 1561 1359 2161 2856 2854 777 1553 2169 2858 21 842 841 1559 1334 2163 2794 2793 843 1567 1336 2155 2792 783 781 2854 2852 779 1561 1359 2161 2856 21 843 842 1567 1335 2155 2793 2792 844 1573 1337 2149 2791 785 783 1575 1360 2147 2852 2850 781 2854 23 844 843 1573 1336 2149 2792 2791 845 1583 1338 2139 2790 787 785 1585 1360 2137 2850 2848 783 1575 2147 2852 21 845 844 1583 1337 2139 2791 2790 846 1591 1339 2131 2789 789 787 2848 2846 785 1585 1360 2137 2850 21 846 845 1591 1338 2131 2790 2789 847 1597 1340 2125 2788 791 789 1599 1361 2123 2846 2844 787 2848 23 847 846 1597 1339 2125 2789 2788 848 1605 1341 2117 2787 793 791 1607 1361 2115 2844 2842 789 1599 2123 2846 21 848 847 1605 1340 2117 2788 2787 849 1613 1342 2109 2786 795 793 2842 2840 791 1607 1361 2115 2844 21 849 848 1613 1341 2109 2787 2786 850 1619 1343 2103 2785 797 795 1621 1362 2101 2840 2838 793 2842 23 850 849 1619 1342 2103 2786 2785 851 1629 1344 2093 2784 799 797 1631 1362 2091 2838 2836 795 1621 2101 2840 21 851 850 1629 1343 2093 2785 2784 852 1637 1345 2085 2783 801 799 2836 2834 797 1631 1362 2091 2838 21 852 851 1637 1344 2085 2784 2783 853 1643 1346 2079 2782 803 801 1645 1363 2077 2834 2832 799 2836 23 853 852 1643 1345 2079 2783 2782 854 1651 1347 2071 2781 805 803 1653 1363 2069 2832 2830 801 1645 2077 2834 21 854 853 1651 1346 2071 2782 2781 855 1659 1348 2063 2780 807 805 2830 2828 803 1653 1363 2069 2832 21 855 854 1659 1347 2063 2781 2780 856 1665 1349 2057 2779 809 807 1667 1364 2055 2828 2826 805 2830 23 856 855 1665 1348 2057 2780 2779 857 1675 1350 2047 2778 811 809 1677 1364 2045 2826 2824 807 1667 2055 2828 21 857 856 1675 1349 2047 2779 2778 1683 1351 858 2039 2777 813 811 2824 2822 809 1677 1364 2045 2826 21 857 1683 1350 858 2039 2778 2777 1689 1352 859 2033 2776 815 813 1691 1365 2031 2822 2820 811 2824 23 1689 1351 859 858 2033 2777 2776 1699 1353 860 2023 2775 817 815 1701 1365 2021 2820 2818 813 1691 2031 2822 21 1699 1352 860 859 2023 2776 2775 1709 1354 861 2013 2774 817 878 2818 2757 815 1701 1365 2021 2820 21 1709 1353 861 860 2013 2775 2774 307 275 216 3375 3316 308 281 210 878 3381 3315 2757 817 2818 20 755 753 1459 1457 1322 1321 2265 2263 2882 2880 757 1467 1465 1323 2257 2255 2878 694 1366 2941 24 761 759 1481 1479 1325 1324 2243 2241 2876 2874 763 1491 1489 1326 2233 2231 2872 698 1493 1367 2229 2937 1483 2239 20 767 765 1507 1505 1328 1327 2217 2215 2870 2868 769 1515 1513 1329 2209 2207 2866 702 1368 2933 22 773 771 1529 1527 1331 1330 2195 2193 2864 2862 775 1539 1537 1332 2185 2183 2860 706 1369 2929 1531 2191 20 779 777 1553 1551 1334 1333 2171 2169 2858 2856 781 1561 1559 1335 2163 2161 2854 710 1370 2925 22 785 783 1575 1573 1337 1336 2149 2147 2852 2850 787 1585 1583 1338 2139 2137 2848 714 1371 2921 1577 2145 20 791 789 1599 1597 1340 1339 2125 2123 2846 2844 793 1607 1605 1341 2117 2115 2842 718 1372 2917 22 797 795 1621 1619 1343 1342 2103 2101 2840 2838 799 1631 1629 1344 2093 2091 2836 722 1373 2913 1623 2099 20 803 801 1645 1643 1346 1345 2079 2077 2834 2832 805 1653 1651 1347 2071 2069 2830 726 1374 2909 22 809 807 1667 1665 1349 1348 2057 2055 2828 2826 811 1677 1675 1350 2047 2045 2824 730 1375 2905 1669 2053 24 815 813 1691 1689 1352 1351 2033 2031 2822 2820 817 1701 1699 1353 2023 2021 2818 734 1703 1376 2019 2901 1693 2029 8 694 1459 1355 2263 2941 1467 2255 1377 18 698 1483 1481 1356 2241 2239 2937 1493 1491 2231 2229 649 1495 1378 2227 2986 1485 2237 8 702 1507 1357 2215 2933 1515 2207 1379 12 706 1531 1529 1358 2193 2191 2929 1539 2183 1380 1533 2189 8 710 1553 1359 2169 2925 1561 2161 1381 12 714 1577 1575 1360 2147 2145 2921 1585 2137 1382 1579 2143 8 718 1599 1361 2123 2917 1607 2115 1383 12 722 1623 1621 1362 2101 2099 2913 1631 2091 1384 1625 2097 8 726 1645 1363 2077 2909 1653 2069 1385 12 730 1669 1667 1364 2055 2053 2905 1677 2045 1386 1671 2051 18 734 1693 1691 1365 2031 2029 2901 1703 1701 2021 2019 677 1705 1387 2017 2958 1695 2027 8 1366 588 1471 1388 2251 3047 1463 2259 18 649 1485 1483 1367 2239 2237 2986 1495 1493 2229 2227 592 1497 1389 2225 3043 1487 2235 8 1368 596 1519 1390 2203 3039 1511 2211 12 1533 1531 1369 2191 2189 600 1543 1391 2179 3035 1535 2187 8 1370 604 1565 1392 2157 3031 1557 2165 12 1579 1577 1371 2145 2143 608 1589 1393 2133 3027 1581 2141 8 1372 612 1611 1394 2111 3023 1603 2119 12 1625 1623 1373 2099 2097 616 1635 1395 2087 3019 1627 2095 8 1374 620 1657 1396 2065 3015 1649 2073 12 1671 1669 1375 2053 2051 624 1681 1397 2041 3011 1673 2049 18 677 1695 1693 1376 2029 2027 2958 1705 1703 2019 2017 628 1707 1398 2015 3007 1697 2025 13 588 1463 1377 2259 3047 1471 2251 530 1961 1761 3105 1962 1760 17 592 1487 1485 1378 2237 2235 3043 1497 1495 2227 2225 534 1959 1763 3101 1960 1762 13 596 1511 1379 2211 3039 1519 2203 538 1957 1765 3097 1958 1764 15 600 1535 1533 1380 2189 2187 3035 1543 2179 542 1955 1767 3093 1956 1766 13 604 1557 1381 2165 3031 1565 2157 546 1953 1769 3089 1954 1768 15 608 1581 1579 1382 2143 2141 3027 1589 2133 550 1951 1771 3085 1952 1770 13 612 1603 1383 2119 3023 1611 2111 554 1949 1773 3081 1950 1772 15 616 1627 1625 1384 2097 2095 3019 1635 2087 558 1947 1775 3077 1948 1774 13 620 1649 1385 2073 3015 1657 2065 562 1945 1777 3073 1946 1776 15 624 1673 1671 1386 2051 2049 3011 1681 2041 566 1943 1779 3069 1944 1778 17 628 1697 1695 1387 2027 2025 3007 1707 1705 2017 2015 570 1941 1781 3065 1942 1780 23 820 819 1313 1312 2323 2816 2815 1400 1098 1097 882 881 738 737 1402 1401 1141 1140 876 875 2321 2898 2760 17 738 1402 925 924 882 881 876 737 1401 1399 1141 1140 1098 1097 875 820 819 25 737 1399 1313 1312 875 2323 2321 2898 2760 738 1402 1400 1141 1140 1098 1097 876 690 688 681 1403 1184 1183 877 2945 24 738 737 1401 1400 1399 1141 1140 1098 1097 876 875 925 924 882 881 681 1403 968 967 877 690 688 1184 1183 23 690 688 681 1402 1401 1184 1183 1141 1140 877 968 967 925 924 633 632 1404 1011 1010 642 640 1227 1226 23 642 640 633 632 1403 1227 1226 1184 1183 1011 1010 968 967 575 574 1406 1054 1053 584 582 1405 1270 1269 21 584 2317 3051 582 575 574 1406 1404 1270 1269 1227 1226 526 524 517 516 1715 1758 1716 1964 3109 21 584 582 575 574 1405 1404 1270 1269 1227 1226 1054 1053 1011 1010 517 516 526 524 1715 1758 1716 22 821 820 1314 1313 2315 2815 2814 1408 1099 1098 883 882 740 739 738 737 52 1409 1142 1141 2898 2896 17 740 738 1409 926 925 883 882 739 737 52 1407 1142 1141 1099 1098 821 820 24 740 739 738 737 52 1408 1407 1142 1141 1099 1098 926 925 883 882 683 681 1410 969 968 688 685 1185 1184 22 688 685 683 681 1409 1185 1184 1142 1141 969 968 926 925 635 633 1411 1012 1011 640 637 1228 1227 22 640 637 635 633 1410 1228 1227 1185 1184 1012 1011 969 968 577 575 1412 1055 1054 582 579 1271 1270 19 582 579 577 575 1411 1271 1270 1228 1227 1055 1054 1012 1011 519 517 524 521 1717 1716 22 822 821 1315 1314 2309 2814 2813 1414 1100 1099 884 883 742 741 740 739 53 1415 1143 1142 2896 2894 17 742 740 1415 927 926 884 883 741 739 53 1413 1143 1142 1100 1099 822 821 24 742 741 740 739 53 1414 1413 1143 1142 1100 1099 927 926 884 883 684 683 1416 970 969 685 682 1186 1185 22 685 684 683 682 1415 1186 1185 1143 1142 970 969 927 926 636 635 1417 1013 1012 637 634 1229 1228 22 637 636 635 634 1416 1229 1228 1186 1185 1013 1012 970 969 578 577 1418 1056 1055 579 576 1272 1271 19 579 578 577 576 1417 1272 1271 1229 1228 1056 1055 1013 1012 520 519 521 518 1718 1717 22 823 822 1316 1315 2303 2813 2812 1420 1101 1100 885 884 744 743 742 741 54 1421 1144 1143 2894 2892 17 744 742 1421 928 927 885 884 743 741 54 1419 1144 1143 1101 1100 823 822 24 744 743 742 741 54 1420 1419 1144 1143 1101 1100 928 927 885 884 686 684 1422 971 970 682 1187 1186 1847 22 686 684 682 1421 1187 1186 1144 1143 1847 971 970 928 927 638 636 1423 1014 1013 634 1230 1229 1852 22 638 636 634 1422 1230 1229 1187 1186 1852 1014 1013 971 970 580 578 1424 1057 1056 576 1273 1272 1857 19 580 578 576 1423 1273 1272 1230 1229 1857 1057 1056 1014 1013 522 520 518 1862 1719 1718 22 824 823 1317 1316 2297 2812 2811 1426 1102 1101 886 885 746 745 744 743 55 1427 1145 1144 2892 2890 17 746 744 1427 929 928 886 885 745 743 55 1425 1145 1144 1102 1101 824 823 24 746 745 744 743 55 1426 1425 1145 1144 1102 1101 929 928 886 885 687 686 1428 972 971 1188 1187 1848 1847 22 687 686 1427 1188 1187 1145 1144 1848 1847 972 971 929 928 639 638 1429 1015 1014 1231 1230 1853 1852 22 639 638 1428 1231 1230 1188 1187 1853 1852 1015 1014 972 971 581 580 1430 1058 1057 1274 1273 1858 1857 23 581 580 1429 1274 1273 1231 1230 1858 1857 1058 1057 1015 1014 523 522 1844 1796 1863 1862 1833 1799 1720 1719 22 825 824 1318 1317 2291 2811 2810 1432 1103 1102 887 886 748 747 746 745 56 1433 1146 1145 2890 2888 17 748 746 1433 930 929 887 886 747 745 56 1431 1146 1145 1103 1102 825 824 24 748 747 746 745 56 1432 1431 1146 1145 1103 1102 930 929 887 886 689 687 1434 973 972 1189 1188 1849 1848 22 689 687 1433 1189 1188 1146 1145 1849 1848 973 972 930 929 641 639 1435 1016 1015 1232 1231 1854 1853 22 641 639 1434 1232 1231 1189 1188 1854 1853 1016 1015 973 972 583 581 1436 1059 1058 1275 1274 1859 1858 25 583 581 1435 1275 1274 1232 1231 1859 1858 1059 1058 1016 1015 525 523 1845 1844 1808 1864 1863 1834 1833 1807 1721 1720 22 826 825 1319 1318 2285 2810 2809 1438 1104 1103 888 887 750 749 748 747 57 1439 1147 1146 2888 2886 17 750 748 1439 931 930 888 887 749 747 57 1437 1147 1146 1104 1103 826 825 24 750 749 748 747 57 1438 1437 1147 1146 1104 1103 931 930 888 887 691 689 1440 974 973 1190 1189 1851 1849 22 691 689 1439 1190 1189 1147 1146 1851 1849 974 973 931 930 643 641 1441 1017 1016 1233 1232 1856 1854 22 643 641 1440 1233 1232 1190 1189 1856 1854 1017 1016 974 973 585 583 1442 1060 1059 1276 1275 1861 1859 23 585 583 1441 1276 1275 1233 1232 1861 1859 1060 1059 1017 1016 527 525 1845 1816 1866 1864 1834 1815 1722 1721 23 827 826 1320 1319 2279 2809 2808 1444 1105 1104 889 888 752 751 750 749 1446 1445 1148 1147 2277 2886 2884 17 752 750 1446 932 931 889 888 751 749 1445 1443 1148 1147 1105 1104 827 826 25 751 749 1443 1320 1319 2279 2277 2886 2884 752 750 1446 1444 1148 1147 1105 1104 692 691 1447 1191 1190 1851 1850 1883 24 752 751 750 749 1445 1444 1443 1148 1147 1105 1104 932 931 889 888 692 691 1447 975 974 1191 1190 1851 1850 23 692 691 1446 1445 1191 1190 1148 1147 1851 1850 975 974 932 931 644 643 1448 1018 1017 1234 1233 1856 1855 23 644 643 1447 1234 1233 1191 1190 1856 1855 1018 1017 975 974 586 585 1450 1061 1060 1449 1277 1276 1861 1860 21 2273 1873 1860 586 585 1450 1448 1277 1276 1234 1233 1861 528 527 1866 1865 1759 1723 1722 1963 1868 21 586 585 1449 1448 1277 1276 1234 1233 1861 1860 1061 1060 1018 1017 528 527 1866 1865 1759 1723 1722 21 828 827 1321 1320 2271 2808 2807 1452 1106 1105 890 889 754 753 752 751 1453 1149 1148 2884 2882 16 754 752 1453 933 932 890 889 753 751 1451 1149 1148 1106 1105 828 827 21 754 753 752 751 1452 1451 1149 1148 1106 1105 933 932 890 889 693 692 1454 976 975 1192 1191 18 693 692 1453 1192 1191 1149 1148 976 975 933 932 645 644 1455 1019 1018 1235 1234 18 645 644 1454 1235 1234 1192 1191 1019 1018 976 975 587 586 1456 1062 1061 1278 1277 15 587 586 1455 1278 1277 1235 1234 1062 1061 1019 1018 529 528 1724 1723 24 829 828 1322 1321 2265 2807 2806 1458 1107 1106 891 890 756 755 754 753 1460 1459 1150 1149 1355 2263 2882 2880 17 756 754 1460 934 933 891 890 755 753 1459 1457 1150 1149 1107 1106 829 828 26 755 753 1457 1355 1322 1321 2265 2263 2882 2880 756 754 1460 1458 1150 1149 1107 1106 695 694 693 1461 1193 1192 1366 2941 23 756 755 754 753 1459 1458 1457 1150 1149 1107 1106 934 933 891 890 695 693 1461 977 976 694 1193 1192 20 695 694 693 1460 1459 1193 1192 1150 1149 977 976 934 933 646 645 1462 1020 1019 1236 1235 20 646 645 1461 1236 1235 1193 1192 1020 1019 977 976 589 587 1464 1063 1062 588 1463 1279 1278 21 588 1388 1377 2259 3047 589 587 1464 1462 1279 1278 1236 1235 531 530 529 1760 1725 1724 1962 3105 19 589 588 587 1463 1462 1279 1278 1236 1235 1063 1062 1020 1019 531 529 530 1760 1725 1724 24 830 829 1323 1322 2257 2806 2805 1466 1108 1107 892 891 758 757 756 755 1468 1467 1151 1150 1355 2255 2880 2878 17 758 756 1468 935 934 892 891 757 755 1467 1465 1151 1150 1108 1107 830 829 26 757 755 1465 1355 1323 1322 2257 2255 2880 2878 758 756 1468 1466 1151 1150 1108 1107 696 695 694 1469 1194 1193 1366 2941 23 758 757 756 755 1467 1466 1465 1151 1150 1108 1107 935 934 892 891 696 695 1469 978 977 694 1194 1193 20 696 695 694 1468 1467 1194 1193 1151 1150 978 977 935 934 647 646 1470 1021 1020 1237 1236 20 647 646 1469 1237 1236 1194 1193 1021 1020 978 977 590 589 1472 1064 1063 588 1471 1280 1279 21 588 1388 1377 2251 3047 590 589 1472 1470 1280 1279 1237 1236 532 531 530 1761 1726 1725 1961 3105 19 590 589 588 1471 1470 1280 1279 1237 1236 1064 1063 1021 1020 532 531 530 1761 1726 1725 21 831 830 1324 1323 2249 2805 2804 1474 1109 1108 893 892 760 759 758 757 1475 1152 1151 2878 2876 16 760 758 1475 936 935 893 892 759 757 1473 1152 1151 1109 1108 831 830 21 760 759 758 757 1474 1473 1152 1151 1109 1108 936 935 893 892 697 696 1476 979 978 1195 1194 18 697 696 1475 1195 1194 1152 1151 979 978 936 935 648 647 1477 1022 1021 1238 1237 18 648 647 1476 1238 1237 1195 1194 1022 1021 979 978 591 590 1478 1065 1064 1281 1280 15 591 590 1477 1281 1280 1238 1237 1065 1064 1022 1021 533 532 1727 1726 24 832 831 1325 1324 2243 2804 2803 1480 1110 1109 894 893 762 761 760 759 1482 1481 1153 1152 1356 2241 2876 2874 17 762 760 1482 937 936 894 893 761 759 1481 1479 1153 1152 1110 1109 832 831 28 761 759 1479 1356 1325 1324 2243 2241 2876 2874 762 760 1482 1480 1153 1152 1110 1109 699 698 697 1484 1483 1196 1195 1367 2239 2937 24 762 761 760 759 1481 1480 1479 1153 1152 1110 1109 937 936 894 893 699 697 1484 980 979 698 1483 1196 1195 25 698 1481 1367 1356 2241 2239 2937 699 697 1484 1482 1196 1195 1153 1152 650 649 648 1486 1485 1239 1238 1378 2237 2986 23 699 698 697 1483 1482 1481 1196 1195 1153 1152 980 979 937 936 650 648 1486 1023 1022 649 1485 1239 1238 25 649 1483 1378 1367 2239 2237 2986 650 648 1486 1484 1239 1238 1196 1195 593 592 591 1488 1487 1282 1281 1389 2235 3043 23 650 649 648 1485 1484 1483 1239 1238 1196 1195 1023 1022 980 979 593 591 1488 1066 1065 592 1487 1282 1281 23 592 1485 1389 1378 2237 2235 3043 593 591 1488 1486 1282 1281 1239 1238 535 534 533 1762 1728 1727 1960 3101 20 593 592 591 1487 1486 1485 1282 1281 1239 1238 1066 1065 1023 1022 535 533 534 1762 1728 1727 24 833 832 1326 1325 2233 2803 2802 1490 1111 1110 895 894 764 763 762 761 1492 1491 1154 1153 1356 2231 2874 2872 17 764 762 1492 938 937 895 894 763 761 1491 1489 1154 1153 1111 1110 833 832 28 763 761 1489 1356 1326 1325 2233 2231 2874 2872 764 762 1492 1490 1154 1153 1111 1110 700 699 698 1494 1493 1197 1196 1367 2229 2937 24 764 763 762 761 1491 1490 1489 1154 1153 1111 1110 938 937 895 894 700 699 1494 981 980 698 1493 1197 1196 25 698 1491 1367 1356 2231 2229 2937 700 699 1494 1492 1197 1196 1154 1153 651 650 649 1496 1495 1240 1239 1378 2227 2986 23 700 699 698 1493 1492 1491 1197 1196 1154 1153 981 980 938 937 651 650 1496 1024 1023 649 1495 1240 1239 25 649 1493 1378 1367 2229 2227 2986 651 650 1496 1494 1240 1239 1197 1196 594 593 592 1498 1497 1283 1282 1389 2225 3043 23 651 650 649 1495 1494 1493 1240 1239 1197 1196 1024 1023 981 980 594 593 1498 1067 1066 592 1497 1283 1282 23 592 1495 1389 1378 2227 2225 3043 594 593 1498 1496 1283 1282 1240 1239 536 535 534 1763 1729 1728 1959 3101 20 594 593 592 1497 1496 1495 1283 1282 1240 1239 1067 1066 1024 1023 536 535 534 1763 1729 1728 21 834 833 1327 1326 2223 2802 2801 1500 1112 1111 896 895 766 765 764 763 1501 1155 1154 2872 2870 16 766 764 1501 939 938 896 895 765 763 1499 1155 1154 1112 1111 834 833 21 766 765 764 763 1500 1499 1155 1154 1112 1111 939 938 896 895 701 700 1502 982 981 1198 1197 18 701 700 1501 1198 1197 1155 1154 982 981 939 938 652 651 1503 1025 1024 1241 1240 18 652 651 1502 1241 1240 1198 1197 1025 1024 982 981 595 594 1504 1068 1067 1284 1283 15 595 594 1503 1284 1283 1241 1240 1068 1067 1025 1024 537 536 1730 1729 24 835 834 1328 1327 2217 2801 2800 1506 1113 1112 897 896 768 767 766 765 1508 1507 1156 1155 1357 2215 2870 2868 17 768 766 1508 940 939 897 896 767 765 1507 1505 1156 1155 1113 1112 835 834 26 767 765 1505 1357 1328 1327 2217 2215 2870 2868 768 766 1508 1506 1156 1155 1113 1112 703 702 701 1509 1199 1198 1368 2933 23 768 767 766 765 1507 1506 1505 1156 1155 1113 1112 940 939 897 896 703 701 1509 983 982 702 1199 1198 20 703 702 701 1508 1507 1199 1198 1156 1155 983 982 940 939 653 652 1510 1026 1025 1242 1241 20 653 652 1509 1242 1241 1199 1198 1026 1025 983 982 597 595 1512 1069 1068 596 1511 1285 1284 21 596 1390 1379 2211 3039 597 595 1512 1510 1285 1284 1242 1241 539 538 537 1764 1731 1730 1958 3097 19 597 596 595 1511 1510 1285 1284 1242 1241 1069 1068 1026 1025 539 537 538 1764 1731 1730 24 836 835 1329 1328 2209 2800 2799 1514 1114 1113 898 897 770 769 768 767 1516 1515 1157 1156 1357 2207 2868 2866 17 770 768 1516 941 940 898 897 769 767 1515 1513 1157 1156 1114 1113 836 835 26 769 767 1513 1357 1329 1328 2209 2207 2868 2866 770 768 1516 1514 1157 1156 1114 1113 704 703 702 1517 1200 1199 1368 2933 23 770 769 768 767 1515 1514 1513 1157 1156 1114 1113 941 940 898 897 704 703 1517 984 983 702 1200 1199 20 704 703 702 1516 1515 1200 1199 1157 1156 984 983 941 940 654 653 1518 1027 1026 1243 1242 20 654 653 1517 1243 1242 1200 1199 1027 1026 984 983 598 597 1520 1070 1069 596 1519 1286 1285 21 596 1390 1379 2203 3039 598 597 1520 1518 1286 1285 1243 1242 540 539 538 1765 1732 1731 1957 3097 19 598 597 596 1519 1518 1286 1285 1243 1242 1070 1069 1027 1026 540 539 538 1765 1732 1731 21 837 836 1330 1329 2201 2799 2798 1522 1115 1114 899 898 772 771 770 769 1523 1158 1157 2866 2864 16 772 770 1523 942 941 899 898 771 769 1521 1158 1157 1115 1114 837 836 21 772 771 770 769 1522 1521 1158 1157 1115 1114 942 941 899 898 705 704 1524 985 984 1201 1200 18 705 704 1523 1201 1200 1158 1157 985 984 942 941 655 654 1525 1028 1027 1244 1243 18 655 654 1524 1244 1243 1201 1200 1028 1027 985 984 599 598 1526 1071 1070 1287 1286 15 599 598 1525 1287 1286 1244 1243 1071 1070 1028 1027 541 540 1733 1732 24 838 837 1331 1330 2195 2798 2797 1528 1116 1115 900 899 774 773 772 771 1530 1529 1159 1158 1358 2193 2864 2862 17 774 772 1530 943 942 900 899 773 771 1529 1527 1159 1158 1116 1115 838 837 28 773 771 1527 1358 1331 1330 2195 2193 2864 2862 774 772 1530 1528 1159 1158 1116 1115 707 706 705 1532 1531 1202 1201 1369 2191 2929 24 774 773 772 771 1529 1528 1527 1159 1158 1116 1115 943 942 900 899 707 705 1532 986 985 706 1531 1202 1201 23 706 1529 1369 1358 2193 2191 2929 707 705 1532 1530 1202 1201 1159 1158 656 655 1534 1533 1245 1244 1380 2189 22 707 706 705 1531 1530 1529 1202 1201 1159 1158 986 985 943 942 656 655 1534 1029 1028 1533 1245 1244 23 1531 1380 1369 2191 2189 656 655 1534 1532 1245 1244 1202 1201 601 600 599 1536 1535 1288 1287 1391 2187 3035 22 656 655 1533 1532 1531 1245 1244 1202 1201 1029 1028 986 985 601 599 1536 1072 1071 600 1535 1288 1287 23 600 1533 1391 1380 2189 2187 3035 601 599 1536 1534 1288 1287 1245 1244 543 542 541 1766 1734 1733 1956 3093 20 601 600 599 1535 1534 1533 1288 1287 1245 1244 1072 1071 1029 1028 543 541 542 1766 1734 1733 24 839 838 1332 1331 2185 2797 2796 1538 1117 1116 901 900 776 775 774 773 1540 1539 1160 1159 1358 2183 2862 2860 17 776 774 1540 944 943 901 900 775 773 1539 1537 1160 1159 1117 1116 839 838 26 775 773 1537 1358 1332 1331 2185 2183 2862 2860 776 774 1540 1538 1160 1159 1117 1116 708 707 706 1541 1203 1202 1369 2929 23 776 775 774 773 1539 1538 1537 1160 1159 1117 1116 944 943 901 900 708 707 1541 987 986 706 1203 1202 20 708 707 706 1540 1539 1203 1202 1160 1159 987 986 944 943 657 656 1542 1030 1029 1246 1245 20 657 656 1541 1246 1245 1203 1202 1030 1029 987 986 602 601 1544 1073 1072 600 1543 1289 1288 21 600 1391 1380 2179 3035 602 601 1544 1542 1289 1288 1246 1245 544 543 542 1767 1735 1734 1955 3093 19 602 601 600 1543 1542 1289 1288 1246 1245 1073 1072 1030 1029 544 543 542 1767 1735 1734 21 840 839 1333 1332 2177 2796 2795 1546 1118 1117 902 901 778 777 776 775 1547 1161 1160 2860 2858 16 778 776 1547 945 944 902 901 777 775 1545 1161 1160 1118 1117 840 839 21 778 777 776 775 1546 1545 1161 1160 1118 1117 945 944 902 901 709 708 1548 988 987 1204 1203 18 709 708 1547 1204 1203 1161 1160 988 987 945 944 658 657 1549 1031 1030 1247 1246 18 658 657 1548 1247 1246 1204 1203 1031 1030 988 987 603 602 1550 1074 1073 1290 1289 15 603 602 1549 1290 1289 1247 1246 1074 1073 1031 1030 545 544 1736 1735 24 841 840 1334 1333 2171 2795 2794 1552 1119 1118 903 902 780 779 778 777 1554 1553 1162 1161 1359 2169 2858 2856 17 780 778 1554 946 945 903 902 779 777 1553 1551 1162 1161 1119 1118 841 840 26 779 777 1551 1359 1334 1333 2171 2169 2858 2856 780 778 1554 1552 1162 1161 1119 1118 711 710 709 1555 1205 1204 1370 2925 23 780 779 778 777 1553 1552 1551 1162 1161 1119 1118 946 945 903 902 711 709 1555 989 988 710 1205 1204 20 711 710 709 1554 1553 1205 1204 1162 1161 989 988 946 945 659 658 1556 1032 1031 1248 1247 20 659 658 1555 1248 1247 1205 1204 1032 1031 989 988 605 603 1558 1075 1074 604 1557 1291 1290 21 604 1392 1381 2165 3031 605 603 1558 1556 1291 1290 1248 1247 547 546 545 1768 1737 1736 1954 3089 19 605 604 603 1557 1556 1291 1290 1248 1247 1075 1074 1032 1031 547 545 546 1768 1737 1736 24 842 841 1335 1334 2163 2794 2793 1560 1120 1119 904 903 782 781 780 779 1562 1561 1163 1162 1359 2161 2856 2854 17 782 780 1562 947 946 904 903 781 779 1561 1559 1163 1162 1120 1119 842 841 26 781 779 1559 1359 1335 1334 2163 2161 2856 2854 782 780 1562 1560 1163 1162 1120 1119 712 711 710 1563 1206 1205 1370 2925 23 782 781 780 779 1561 1560 1559 1163 1162 1120 1119 947 946 904 903 712 711 1563 990 989 710 1206 1205 20 712 711 710 1562 1561 1206 1205 1163 1162 990 989 947 946 660 659 1564 1033 1032 1249 1248 20 660 659 1563 1249 1248 1206 1205 1033 1032 990 989 606 605 1566 1076 1075 604 1565 1292 1291 21 604 1392 1381 2157 3031 606 605 1566 1564 1292 1291 1249 1248 548 547 546 1769 1738 1737 1953 3089 19 606 605 604 1565 1564 1292 1291 1249 1248 1076 1075 1033 1032 548 547 546 1769 1738 1737 21 843 842 1336 1335 2155 2793 2792 1568 1121 1120 905 904 784 783 782 781 1569 1164 1163 2854 2852 16 784 782 1569 948 947 905 904 783 781 1567 1164 1163 1121 1120 843 842 21 784 783 782 781 1568 1567 1164 1163 1121 1120 948 947 905 904 713 712 1570 991 990 1207 1206 18 713 712 1569 1207 1206 1164 1163 991 990 948 947 661 660 1571 1034 1033 1250 1249 18 661 660 1570 1250 1249 1207 1206 1034 1033 991 990 607 606 1572 1077 1076 1293 1292 15 607 606 1571 1293 1292 1250 1249 1077 1076 1034 1033 549 548 1739 1738 24 844 843 1337 1336 2149 2792 2791 1574 1122 1121 906 905 786 785 784 783 1576 1575 1165 1164 1360 2147 2852 2850 17 786 784 1576 949 948 906 905 785 783 1575 1573 1165 1164 1122 1121 844 843 28 785 783 1573 1360 1337 1336 2149 2147 2852 2850 786 784 1576 1574 1165 1164 1122 1121 715 714 713 1578 1577 1208 1207 1371 2145 2921 24 786 785 784 783 1575 1574 1573 1165 1164 1122 1121 949 948 906 905 715 713 1578 992 991 714 1577 1208 1207 23 714 1575 1371 1360 2147 2145 2921 715 713 1578 1576 1208 1207 1165 1164 662 661 1580 1579 1251 1250 1382 2143 22 715 714 713 1577 1576 1575 1208 1207 1165 1164 992 991 949 948 662 661 1580 1035 1034 1579 1251 1250 23 1577 1382 1371 2145 2143 662 661 1580 1578 1251 1250 1208 1207 609 608 607 1582 1581 1294 1293 1393 2141 3027 22 662 661 1579 1578 1577 1251 1250 1208 1207 1035 1034 992 991 609 607 1582 1078 1077 608 1581 1294 1293 23 608 1579 1393 1382 2143 2141 3027 609 607 1582 1580 1294 1293 1251 1250 551 550 549 1770 1740 1739 1952 3085 20 609 608 607 1581 1580 1579 1294 1293 1251 1250 1078 1077 1035 1034 551 549 550 1770 1740 1739 24 845 844 1338 1337 2139 2791 2790 1584 1123 1122 907 906 788 787 786 785 1586 1585 1166 1165 1360 2137 2850 2848 17 788 786 1586 950 949 907 906 787 785 1585 1583 1166 1165 1123 1122 845 844 26 787 785 1583 1360 1338 1337 2139 2137 2850 2848 788 786 1586 1584 1166 1165 1123 1122 716 715 714 1587 1209 1208 1371 2921 23 788 787 786 785 1585 1584 1583 1166 1165 1123 1122 950 949 907 906 716 715 1587 993 992 714 1209 1208 20 716 715 714 1586 1585 1209 1208 1166 1165 993 992 950 949 663 662 1588 1036 1035 1252 1251 20 663 662 1587 1252 1251 1209 1208 1036 1035 993 992 610 609 1590 1079 1078 608 1589 1295 1294 21 608 1393 1382 2133 3027 610 609 1590 1588 1295 1294 1252 1251 552 551 550 1771 1741 1740 1951 3085 19 610 609 608 1589 1588 1295 1294 1252 1251 1079 1078 1036 1035 552 551 550 1771 1741 1740 21 846 845 1339 1338 2131 2790 2789 1592 1124 1123 908 907 790 789 788 787 1593 1167 1166 2848 2846 16 790 788 1593 951 950 908 907 789 787 1591 1167 1166 1124 1123 846 845 21 790 789 788 787 1592 1591 1167 1166 1124 1123 951 950 908 907 717 716 1594 994 993 1210 1209 18 717 716 1593 1210 1209 1167 1166 994 993 951 950 664 663 1595 1037 1036 1253 1252 18 664 663 1594 1253 1252 1210 1209 1037 1036 994 993 611 610 1596 1080 1079 1296 1295 15 611 610 1595 1296 1295 1253 1252 1080 1079 1037 1036 553 552 1742 1741 24 847 846 1340 1339 2125 2789 2788 1598 1125 1124 909 908 792 791 790 789 1600 1599 1168 1167 1361 2123 2846 2844 17 792 790 1600 952 951 909 908 791 789 1599 1597 1168 1167 1125 1124 847 846 26 791 789 1597 1361 1340 1339 2125 2123 2846 2844 792 790 1600 1598 1168 1167 1125 1124 719 718 717 1601 1211 1210 1372 2917 23 792 791 790 789 1599 1598 1597 1168 1167 1125 1124 952 951 909 908 719 717 1601 995 994 718 1211 1210 20 719 718 717 1600 1599 1211 1210 1168 1167 995 994 952 951 665 664 1602 1038 1037 1254 1253 20 665 664 1601 1254 1253 1211 1210 1038 1037 995 994 613 611 1604 1081 1080 612 1603 1297 1296 21 612 1394 1383 2119 3023 613 611 1604 1602 1297 1296 1254 1253 555 554 553 1772 1743 1742 1950 3081 19 613 612 611 1603 1602 1297 1296 1254 1253 1081 1080 1038 1037 555 553 554 1772 1743 1742 24 848 847 1341 1340 2117 2788 2787 1606 1126 1125 910 909 794 793 792 791 1608 1607 1169 1168 1361 2115 2844 2842 17 794 792 1608 953 952 910 909 793 791 1607 1605 1169 1168 1126 1125 848 847 26 793 791 1605 1361 1341 1340 2117 2115 2844 2842 794 792 1608 1606 1169 1168 1126 1125 720 719 718 1609 1212 1211 1372 2917 23 794 793 792 791 1607 1606 1605 1169 1168 1126 1125 953 952 910 909 720 719 1609 996 995 718 1212 1211 20 720 719 718 1608 1607 1212 1211 1169 1168 996 995 953 952 666 665 1610 1039 1038 1255 1254 20 666 665 1609 1255 1254 1212 1211 1039 1038 996 995 614 613 1612 1082 1081 612 1611 1298 1297 21 612 1394 1383 2111 3023 614 613 1612 1610 1298 1297 1255 1254 556 555 554 1773 1744 1743 1949 3081 19 614 613 612 1611 1610 1298 1297 1255 1254 1082 1081 1039 1038 556 555 554 1773 1744 1743 21 849 848 1342 1341 2109 2787 2786 1614 1127 1126 911 910 796 795 794 793 1615 1170 1169 2842 2840 16 796 794 1615 954 953 911 910 795 793 1613 1170 1169 1127 1126 849 848 21 796 795 794 793 1614 1613 1170 1169 1127 1126 954 953 911 910 721 720 1616 997 996 1213 1212 18 721 720 1615 1213 1212 1170 1169 997 996 954 953 667 666 1617 1040 1039 1256 1255 18 667 666 1616 1256 1255 1213 1212 1040 1039 997 996 615 614 1618 1083 1082 1299 1298 15 615 614 1617 1299 1298 1256 1255 1083 1082 1040 1039 557 556 1745 1744 24 850 849 1343 1342 2103 2786 2785 1620 1128 1127 912 911 798 797 796 795 1622 1621 1171 1170 1362 2101 2840 2838 17 798 796 1622 955 954 912 911 797 795 1621 1619 1171 1170 1128 1127 850 849 28 797 795 1619 1362 1343 1342 2103 2101 2840 2838 798 796 1622 1620 1171 1170 1128 1127 723 722 721 1624 1623 1214 1213 1373 2099 2913 24 798 797 796 795 1621 1620 1619 1171 1170 1128 1127 955 954 912 911 723 721 1624 998 997 722 1623 1214 1213 23 722 1621 1373 1362 2101 2099 2913 723 721 1624 1622 1214 1213 1171 1170 668 667 1626 1625 1257 1256 1384 2097 22 723 722 721 1623 1622 1621 1214 1213 1171 1170 998 997 955 954 668 667 1626 1041 1040 1625 1257 1256 23 1623 1384 1373 2099 2097 668 667 1626 1624 1257 1256 1214 1213 617 616 615 1628 1627 1300 1299 1395 2095 3019 22 668 667 1625 1624 1623 1257 1256 1214 1213 1041 1040 998 997 617 615 1628 1084 1083 616 1627 1300 1299 23 616 1625 1395 1384 2097 2095 3019 617 615 1628 1626 1300 1299 1257 1256 559 558 557 1774 1746 1745 1948 3077 20 617 616 615 1627 1626 1625 1300 1299 1257 1256 1084 1083 1041 1040 559 557 558 1774 1746 1745 24 851 850 1344 1343 2093 2785 2784 1630 1129 1128 913 912 800 799 798 797 1632 1631 1172 1171 1362 2091 2838 2836 17 800 798 1632 956 955 913 912 799 797 1631 1629 1172 1171 1129 1128 851 850 26 799 797 1629 1362 1344 1343 2093 2091 2838 2836 800 798 1632 1630 1172 1171 1129 1128 724 723 722 1633 1215 1214 1373 2913 23 800 799 798 797 1631 1630 1629 1172 1171 1129 1128 956 955 913 912 724 723 1633 999 998 722 1215 1214 20 724 723 722 1632 1631 1215 1214 1172 1171 999 998 956 955 669 668 1634 1042 1041 1258 1257 20 669 668 1633 1258 1257 1215 1214 1042 1041 999 998 618 617 1636 1085 1084 616 1635 1301 1300 21 616 1395 1384 2087 3019 618 617 1636 1634 1301 1300 1258 1257 560 559 558 1775 1747 1746 1947 3077 19 618 617 616 1635 1634 1301 1300 1258 1257 1085 1084 1042 1041 560 559 558 1775 1747 1746 21 852 851 1345 1344 2085 2784 2783 1638 1130 1129 914 913 802 801 800 799 1639 1173 1172 2836 2834 16 802 800 1639 957 956 914 913 801 799 1637 1173 1172 1130 1129 852 851 21 802 801 800 799 1638 1637 1173 1172 1130 1129 957 956 914 913 725 724 1640 1000 999 1216 1215 18 725 724 1639 1216 1215 1173 1172 1000 999 957 956 670 669 1641 1043 1042 1259 1258 18 670 669 1640 1259 1258 1216 1215 1043 1042 1000 999 619 618 1642 1086 1085 1302 1301 15 619 618 1641 1302 1301 1259 1258 1086 1085 1043 1042 561 560 1748 1747 24 853 852 1346 1345 2079 2783 2782 1644 1131 1130 915 914 804 803 802 801 1646 1645 1174 1173 1363 2077 2834 2832 17 804 802 1646 958 957 915 914 803 801 1645 1643 1174 1173 1131 1130 853 852 26 803 801 1643 1363 1346 1345 2079 2077 2834 2832 804 802 1646 1644 1174 1173 1131 1130 727 726 725 1647 1217 1216 1374 2909 23 804 803 802 801 1645 1644 1643 1174 1173 1131 1130 958 957 915 914 727 725 1647 1001 1000 726 1217 1216 20 727 726 725 1646 1645 1217 1216 1174 1173 1001 1000 958 957 671 670 1648 1044 1043 1260 1259 20 671 670 1647 1260 1259 1217 1216 1044 1043 1001 1000 621 619 1650 1087 1086 620 1649 1303 1302 21 620 1396 1385 2073 3015 621 619 1650 1648 1303 1302 1260 1259 563 562 561 1776 1749 1748 1946 3073 19 621 620 619 1649 1648 1303 1302 1260 1259 1087 1086 1044 1043 563 561 562 1776 1749 1748 24 854 853 1347 1346 2071 2782 2781 1652 1132 1131 916 915 806 805 804 803 1654 1653 1175 1174 1363 2069 2832 2830 17 806 804 1654 959 958 916 915 805 803 1653 1651 1175 1174 1132 1131 854 853 26 805 803 1651 1363 1347 1346 2071 2069 2832 2830 806 804 1654 1652 1175 1174 1132 1131 728 727 726 1655 1218 1217 1374 2909 23 806 805 804 803 1653 1652 1651 1175 1174 1132 1131 959 958 916 915 728 727 1655 1002 1001 726 1218 1217 20 728 727 726 1654 1653 1218 1217 1175 1174 1002 1001 959 958 672 671 1656 1045 1044 1261 1260 20 672 671 1655 1261 1260 1218 1217 1045 1044 1002 1001 622 621 1658 1088 1087 620 1657 1304 1303 21 620 1396 1385 2065 3015 622 621 1658 1656 1304 1303 1261 1260 564 563 562 1777 1750 1749 1945 3073 19 622 621 620 1657 1656 1304 1303 1261 1260 1088 1087 1045 1044 564 563 562 1777 1750 1749 21 855 854 1348 1347 2063 2781 2780 1660 1133 1132 917 916 808 807 806 805 1661 1176 1175 2830 2828 16 808 806 1661 960 959 917 916 807 805 1659 1176 1175 1133 1132 855 854 21 808 807 806 805 1660 1659 1176 1175 1133 1132 960 959 917 916 729 728 1662 1003 1002 1219 1218 18 729 728 1661 1219 1218 1176 1175 1003 1002 960 959 673 672 1663 1046 1045 1262 1261 18 673 672 1662 1262 1261 1219 1218 1046 1045 1003 1002 623 622 1664 1089 1088 1305 1304 15 623 622 1663 1305 1304 1262 1261 1089 1088 1046 1045 565 564 1751 1750 24 856 855 1349 1348 2057 2780 2779 1666 1134 1133 918 917 810 809 808 807 1668 1667 1177 1176 1364 2055 2828 2826 17 810 808 1668 961 960 918 917 809 807 1667 1665 1177 1176 1134 1133 856 855 28 809 807 1665 1364 1349 1348 2057 2055 2828 2826 810 808 1668 1666 1177 1176 1134 1133 731 730 729 1670 1669 1220 1219 1375 2053 2905 24 810 809 808 807 1667 1666 1665 1177 1176 1134 1133 961 960 918 917 731 729 1670 1004 1003 730 1669 1220 1219 23 730 1667 1375 1364 2055 2053 2905 731 729 1670 1668 1220 1219 1177 1176 674 673 1672 1671 1263 1262 1386 2051 22 731 730 729 1669 1668 1667 1220 1219 1177 1176 1004 1003 961 960 674 673 1672 1047 1046 1671 1263 1262 23 1669 1386 1375 2053 2051 674 673 1672 1670 1263 1262 1220 1219 625 624 623 1674 1673 1306 1305 1397 2049 3011 22 674 673 1671 1670 1669 1263 1262 1220 1219 1047 1046 1004 1003 625 623 1674 1090 1089 624 1673 1306 1305 23 624 1671 1397 1386 2051 2049 3011 625 623 1674 1672 1306 1305 1263 1262 567 566 565 1778 1752 1751 1944 3069 20 625 624 623 1673 1672 1671 1306 1305 1263 1262 1090 1089 1047 1046 567 565 566 1778 1752 1751 24 857 856 1350 1349 2047 2779 2778 1676 1135 1134 919 918 812 811 810 809 1678 1677 1178 1177 1364 2045 2826 2824 17 812 810 1678 962 961 919 918 811 809 1677 1675 1178 1177 1135 1134 857 856 26 811 809 1675 1364 1350 1349 2047 2045 2826 2824 812 810 1678 1676 1178 1177 1135 1134 732 731 730 1679 1221 1220 1375 2905 23 812 811 810 809 1677 1676 1675 1178 1177 1135 1134 962 961 919 918 732 731 1679 1005 1004 730 1221 1220 20 732 731 730 1678 1677 1221 1220 1178 1177 1005 1004 962 961 675 674 1680 1048 1047 1264 1263 20 675 674 1679 1264 1263 1221 1220 1048 1047 1005 1004 626 625 1682 1091 1090 624 1681 1307 1306 21 624 1397 1386 2041 3011 626 625 1682 1680 1307 1306 1264 1263 568 567 566 1779 1753 1752 1943 3069 19 626 625 624 1681 1680 1307 1306 1264 1263 1091 1090 1048 1047 568 567 566 1779 1753 1752 21 857 1351 1350 858 2039 2778 2777 1684 1136 1135 920 919 814 813 812 811 1685 1179 1178 2824 2822 16 814 812 1685 963 962 920 919 813 811 1683 1179 1178 1136 1135 857 858 21 814 813 812 811 1684 1683 1179 1178 1136 1135 963 962 920 919 733 732 1686 1006 1005 1222 1221 18 733 732 1685 1222 1221 1179 1178 1006 1005 963 962 676 675 1687 1049 1048 1265 1264 18 676 675 1686 1265 1264 1222 1221 1049 1048 1006 1005 627 626 1688 1092 1091 1308 1307 15 627 626 1687 1308 1307 1265 1264 1092 1091 1049 1048 569 568 1754 1753 24 1352 1351 859 858 2033 2777 2776 1690 1137 1136 921 920 816 815 814 813 1692 1691 1180 1179 1365 2031 2822 2820 17 816 814 1692 964 963 921 920 815 813 1691 1689 1180 1179 1137 1136 859 858 28 815 813 1689 1365 1352 1351 2033 2031 2822 2820 816 814 1692 1690 1180 1179 1137 1136 735 734 733 1694 1693 1223 1222 1376 2029 2901 24 816 815 814 813 1691 1690 1689 1180 1179 1137 1136 964 963 921 920 735 733 1694 1007 1006 734 1693 1223 1222 25 734 1691 1376 1365 2031 2029 2901 735 733 1694 1692 1223 1222 1180 1179 678 677 676 1696 1695 1266 1265 1387 2027 2958 23 735 734 733 1693 1692 1691 1223 1222 1180 1179 1007 1006 964 963 678 676 1696 1050 1049 677 1695 1266 1265 25 677 1693 1387 1376 2029 2027 2958 678 676 1696 1694 1266 1265 1223 1222 629 628 627 1698 1697 1309 1308 1398 2025 3007 23 678 677 676 1695 1694 1693 1266 1265 1223 1222 1050 1049 1007 1006 629 627 1698 1093 1092 628 1697 1309 1308 23 628 1695 1398 1387 2027 2025 3007 629 627 1698 1696 1309 1308 1266 1265 571 570 569 1780 1755 1754 1942 3065 20 629 628 627 1697 1696 1695 1309 1308 1266 1265 1093 1092 1050 1049 571 569 570 1780 1755 1754 24 1353 1352 860 859 2023 2776 2775 1700 1138 1137 922 921 818 817 816 815 1702 1701 1181 1180 1365 2021 2820 2818 17 818 816 1702 965 964 922 921 817 815 1701 1699 1181 1180 1138 1137 860 859 28 817 815 1699 1365 1353 1352 2023 2021 2820 2818 818 816 1702 1700 1181 1180 1138 1137 736 735 734 1704 1703 1224 1223 1376 2019 2901 24 818 817 816 815 1701 1700 1699 1181 1180 1138 1137 965 964 922 921 736 735 1704 1008 1007 734 1703 1224 1223 25 734 1701 1376 1365 2021 2019 2901 736 735 1704 1702 1224 1223 1181 1180 679 678 677 1706 1705 1267 1266 1387 2017 2958 23 736 735 734 1703 1702 1701 1224 1223 1181 1180 1008 1007 965 964 679 678 1706 1051 1050 677 1705 1267 1266 25 677 1703 1387 1376 2019 2017 2958 679 678 1706 1704 1267 1266 1224 1223 630 629 628 1708 1707 1310 1309 1398 2015 3007 23 679 678 677 1705 1704 1703 1267 1266 1224 1223 1051 1050 1008 1007 630 629 1708 1094 1093 628 1707 1310 1309 23 628 1705 1398 1387 2017 2015 3007 630 629 1708 1706 1310 1309 1267 1266 572 571 570 1781 1756 1755 1941 3065 20 630 629 628 1707 1706 1705 1310 1309 1267 1266 1094 1093 1051 1050 572 571 570 1781 1756 1755 21 1354 1353 861 860 2013 2775 2774 1710 1139 1138 923 922 818 817 1711 1182 1181 879 878 2818 2757 16 818 1711 966 965 923 922 879 817 1709 1182 1181 1139 1138 878 861 860 21 818 817 1710 1709 1182 1181 1139 1138 879 878 966 965 923 922 736 1712 1009 1008 880 1225 1224 18 736 1711 1225 1224 1182 1181 880 1009 1008 966 965 680 679 1713 1052 1051 1268 1267 18 680 679 1712 1268 1267 1225 1224 1052 1051 1009 1008 631 630 1714 1095 1094 1311 1310 16 631 630 1713 1311 1310 1268 1267 1095 1094 1052 1051 573 572 1096 1757 1756 18 516 511 506 460 381 1269 526 524 517 1406 1405 1270 1758 1716 10 9 862 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-2.adm000066400000000000000000006750511514310134000257550ustar00rootroot000000000000003 4 2 3431 34920 858 38562 0 000 48 5815 5816 5817 5818 5819 5820 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 19429 19430 19431 19432 19433 19434 138 139 140 141 142 143 132 133 134 135 136 137 126 127 128 129 130 131 19423 19424 19425 19426 19427 19428 48 5845 5846 5847 5848 5849 5850 5905 5906 5907 5908 5909 5910 5869 5870 5871 5872 5873 5874 19435 19436 19437 19438 19439 19440 150 151 152 153 154 155 144 145 146 147 148 149 138 139 140 141 142 143 19429 19430 19431 19432 19433 19434 48 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 19441 19442 19443 19444 19445 19446 162 163 164 165 166 167 156 157 158 159 160 161 150 151 152 153 154 155 19435 19436 19437 19438 19439 19440 48 5881 5882 5883 5884 5885 5886 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 19447 19448 19449 19450 19451 19452 174 175 176 177 178 179 168 169 170 171 172 173 162 163 164 165 166 167 19441 19442 19443 19444 19445 19446 48 5965 5966 5967 5968 5969 5970 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 19453 19454 19455 19456 19457 19458 186 187 188 189 190 191 180 181 182 183 184 185 174 175 176 177 178 179 19447 19448 19449 19450 19451 19452 48 5995 5996 5997 5998 5999 6000 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 19459 19460 19461 19462 19463 19464 198 199 200 201 202 203 192 193 194 195 196 197 186 187 188 189 190 191 19453 19454 19455 19456 19457 19458 48 6031 6032 6033 6034 6035 6036 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 19465 19466 19467 19468 19469 19470 210 211 212 213 214 215 204 205 206 207 208 209 198 199 200 201 202 203 19459 19460 19461 19462 19463 19464 48 6091 6092 6093 6094 6095 6096 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 19471 19472 19473 19474 19475 19476 222 223 224 225 226 227 216 217 218 219 220 221 210 211 212 213 214 215 19465 19466 19467 19468 19469 19470 48 6121 6122 6123 6124 6125 6126 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 19477 19478 19479 19480 19481 19482 234 235 236 237 238 239 228 229 230 231 232 233 222 223 224 225 226 227 19471 19472 19473 19474 19475 19476 48 6151 6152 6153 6154 6155 6156 6205 6206 6207 6208 6209 6210 6199 6200 6201 6202 6203 6204 19483 19484 19485 19486 19487 19488 246 247 248 249 250 251 240 241 242 243 244 245 234 235 236 237 238 239 19477 19478 19479 19480 19481 19482 48 6199 6200 6201 6202 6203 6204 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 19489 19490 19491 19492 19493 19494 258 259 260 261 262 263 252 253 254 255 256 257 246 247 248 249 250 251 19483 19484 19485 19486 19487 19488 48 6241 6242 6243 6244 6245 6246 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 19495 19496 19497 19498 19499 19500 270 271 272 273 274 275 264 265 266 267 268 269 258 259 260 261 262 263 19489 19490 19491 19492 19493 19494 48 6271 6272 6273 6274 6275 6276 6325 6326 6327 6328 6329 6330 6319 6320 6321 6322 6323 6324 19501 19502 19503 19504 19505 19506 282 283 284 285 286 287 276 277 278 279 280 281 270 271 272 273 274 275 19495 19496 19497 19498 19499 19500 48 6319 6320 6321 6322 6323 6324 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 19507 19508 19509 19510 19511 19512 294 295 296 297 298 299 288 289 290 291 292 293 282 283 284 285 286 287 19501 19502 19503 19504 19505 19506 48 6361 6362 6363 6364 6365 6366 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 19513 19514 19515 19516 19517 19518 306 307 308 309 310 311 300 301 302 303 304 305 294 295 296 297 298 299 19507 19508 19509 19510 19511 19512 48 6391 6392 6393 6394 6395 6396 6445 6446 6447 6448 6449 6450 6439 6440 6441 6442 6443 6444 19519 19520 19521 19522 19523 19524 318 319 320 321 322 323 312 313 314 315 316 317 306 307 308 309 310 311 19513 19514 19515 19516 19517 19518 48 6439 6440 6441 6442 6443 6444 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 19525 19526 19527 19528 19529 19530 330 331 332 333 334 335 324 325 326 327 328 329 318 319 320 321 322 323 19519 19520 19521 19522 19523 19524 48 6481 6482 6483 6484 6485 6486 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 19531 19532 19533 19534 19535 19536 342 343 344 345 346 347 336 337 338 339 340 341 330 331 332 333 334 335 19525 19526 19527 19528 19529 19530 48 6511 6512 6513 6514 6515 6516 6565 6566 6567 6568 6569 6570 6559 6560 6561 6562 6563 6564 19537 19538 19539 19540 19541 19542 354 355 356 357 358 359 348 349 350 351 352 353 342 343 344 345 346 347 19531 19532 19533 19534 19535 19536 48 6559 6560 6561 6562 6563 6564 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 19543 19544 19545 19546 19547 19548 366 367 368 369 370 371 360 361 362 363 364 365 354 355 356 357 358 359 19537 19538 19539 19540 19541 19542 48 6601 6602 6603 6604 6605 6606 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 19549 19550 19551 19552 19553 19554 378 379 380 381 382 383 372 373 374 375 376 377 366 367 368 369 370 371 19543 19544 19545 19546 19547 19548 48 6631 6632 6633 6634 6635 6636 6685 6686 6687 6688 6689 6690 6679 6680 6681 6682 6683 6684 19555 19556 19557 19558 19559 19560 390 391 392 393 394 395 384 385 386 387 388 389 378 379 380 381 382 383 19549 19550 19551 19552 19553 19554 48 6679 6680 6681 6682 6683 6684 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 19561 19562 19563 19564 19565 19566 402 403 404 405 406 407 396 397 398 399 400 401 390 391 392 393 394 395 19555 19556 19557 19558 19559 19560 48 6721 6722 6723 6724 6725 6726 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 19567 19568 19569 19570 19571 19572 414 415 416 417 418 419 408 409 410 411 412 413 402 403 404 405 406 407 19561 19562 19563 19564 19565 19566 48 6751 6752 6753 6754 6755 6756 6805 6806 6807 6808 6809 6810 6799 6800 6801 6802 6803 6804 19573 19574 19575 19576 19577 19578 426 427 428 429 430 431 420 421 422 423 424 425 414 415 416 417 418 419 19567 19568 19569 19570 19571 19572 48 6799 6800 6801 6802 6803 6804 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 19579 19580 19581 19582 19583 19584 438 439 440 441 442 443 432 433 434 435 436 437 426 427 428 429 430 431 19573 19574 19575 19576 19577 19578 48 6841 6842 6843 6844 6845 6846 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 19585 19586 19587 19588 19589 19590 450 451 452 453 454 455 444 445 446 447 448 449 438 439 440 441 442 443 19579 19580 19581 19582 19583 19584 48 6871 6872 6873 6874 6875 6876 6925 6926 6927 6928 6929 6930 6919 6920 6921 6922 6923 6924 19591 19592 19593 19594 19595 19596 462 463 464 465 466 467 456 457 458 459 460 461 450 451 452 453 454 455 19585 19586 19587 19588 19589 19590 48 6919 6920 6921 6922 6923 6924 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 19597 19598 19599 19600 19601 19602 474 475 476 477 478 479 468 469 470 471 472 473 462 463 464 465 466 467 19591 19592 19593 19594 19595 19596 48 6961 6962 6963 6964 6965 6966 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 19603 19604 19605 19606 19607 19608 486 487 488 489 490 491 480 481 482 483 484 485 474 475 476 477 478 479 19597 19598 19599 19600 19601 19602 48 6991 6992 6993 6994 6995 6996 7045 7046 7047 7048 7049 7050 7039 7040 7041 7042 7043 7044 19609 19610 19611 19612 19613 19614 498 499 500 501 502 503 492 493 494 495 496 497 486 487 488 489 490 491 19603 19604 19605 19606 19607 19608 48 7039 7040 7041 7042 7043 7044 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 19615 19616 19617 19618 19619 19620 510 511 512 513 514 515 504 505 506 507 508 509 498 499 500 501 502 503 19609 19610 19611 19612 19613 19614 48 7081 7082 7083 7084 7085 7086 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 19621 19622 19623 19624 19625 19626 522 523 524 525 526 527 516 517 518 519 520 521 510 511 512 513 514 515 19615 19616 19617 19618 19619 19620 48 7111 7112 7113 7114 7115 7116 7165 7166 7167 7168 7169 7170 7159 7160 7161 7162 7163 7164 19627 19628 19629 19630 19631 19632 534 535 536 537 538 539 528 529 530 531 532 533 522 523 524 525 526 527 19621 19622 19623 19624 19625 19626 48 7159 7160 7161 7162 7163 7164 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 19633 19634 19635 19636 19637 19638 546 547 548 549 550 551 540 541 542 543 544 545 534 535 536 537 538 539 19627 19628 19629 19630 19631 19632 48 7201 7202 7203 7204 7205 7206 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 19639 19640 19641 19642 19643 19644 558 559 560 561 562 563 552 553 554 555 556 557 546 547 548 549 550 551 19633 19634 19635 19636 19637 19638 48 7231 7232 7233 7234 7235 7236 7285 7286 7287 7288 7289 7290 7279 7280 7281 7282 7283 7284 19645 19646 19647 19648 19649 19650 570 571 572 573 574 575 564 565 566 567 568 569 558 559 560 561 562 563 19639 19640 19641 19642 19643 19644 48 7279 7280 7281 7282 7283 7284 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 19651 19652 19653 19654 19655 19656 582 583 584 585 586 587 576 577 578 579 580 581 570 571 572 573 574 575 19645 19646 19647 19648 19649 19650 48 7321 7322 7323 7324 7325 7326 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 19657 19658 19659 19660 19661 19662 594 595 596 597 598 599 588 589 590 591 592 593 582 583 584 585 586 587 19651 19652 19653 19654 19655 19656 48 7351 7352 7353 7354 7355 7356 7405 7406 7407 7408 7409 7410 7399 7400 7401 7402 7403 7404 19663 19664 19665 19666 19667 19668 606 607 608 609 610 611 600 601 602 603 604 605 594 595 596 597 598 599 19657 19658 19659 19660 19661 19662 48 7399 7400 7401 7402 7403 7404 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 19669 19670 19671 19672 19673 19674 618 619 620 621 622 623 612 613 614 615 616 617 606 607 608 609 610 611 19663 19664 19665 19666 19667 19668 48 7441 7442 7443 7444 7445 7446 7465 7466 7467 7468 7469 7470 2082 2083 2084 2085 2086 2087 19675 19676 19677 19678 19679 19680 630 631 632 633 634 635 624 625 626 627 628 629 618 619 620 621 622 623 19669 19670 19671 19672 19673 19674 48 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 5815 5816 5817 5818 5819 5820 19423 19424 19425 19426 19427 19428 126 127 128 129 130 131 15445 15446 15447 15448 15449 15450 15421 15422 15423 15424 15425 15426 19681 19682 19683 19684 19685 19686 48 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 6091 6092 6093 6094 6095 6096 19465 19466 19467 19468 19469 19470 210 211 212 213 214 215 15469 15470 15471 15472 15473 15474 15463 15464 15465 15466 15467 15468 19687 19688 19689 19690 19691 19692 48 6175 6176 6177 6178 6179 6180 6211 6212 6213 6214 6215 6216 6151 6152 6153 6154 6155 6156 19477 19478 19479 19480 19481 19482 234 235 236 237 238 239 15505 15506 15507 15508 15509 15510 15481 15482 15483 15484 15485 15486 19693 19694 19695 19696 19697 19698 48 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 19483 19484 19485 19486 19487 19488 246 247 248 249 250 251 15499 15500 15501 15502 15503 15504 15493 15494 15495 15496 15497 15498 19699 19700 19701 19702 19703 19704 48 6295 6296 6297 6298 6299 6300 6331 6332 6333 6334 6335 6336 6271 6272 6273 6274 6275 6276 19495 19496 19497 19498 19499 19500 270 271 272 273 274 275 15535 15536 15537 15538 15539 15540 15511 15512 15513 15514 15515 15516 19705 19706 19707 19708 19709 19710 48 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 19501 19502 19503 19504 19505 19506 282 283 284 285 286 287 15529 15530 15531 15532 15533 15534 15523 15524 15525 15526 15527 15528 19711 19712 19713 19714 19715 19716 48 6415 6416 6417 6418 6419 6420 6451 6452 6453 6454 6455 6456 6391 6392 6393 6394 6395 6396 19513 19514 19515 19516 19517 19518 306 307 308 309 310 311 15565 15566 15567 15568 15569 15570 15541 15542 15543 15544 15545 15546 19717 19718 19719 19720 19721 19722 48 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 19519 19520 19521 19522 19523 19524 318 319 320 321 322 323 15559 15560 15561 15562 15563 15564 15553 15554 15555 15556 15557 15558 19723 19724 19725 19726 19727 19728 48 6535 6536 6537 6538 6539 6540 6571 6572 6573 6574 6575 6576 6511 6512 6513 6514 6515 6516 19531 19532 19533 19534 19535 19536 342 343 344 345 346 347 15595 15596 15597 15598 15599 15600 15571 15572 15573 15574 15575 15576 19729 19730 19731 19732 19733 19734 48 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 19537 19538 19539 19540 19541 19542 354 355 356 357 358 359 15589 15590 15591 15592 15593 15594 15583 15584 15585 15586 15587 15588 19735 19736 19737 19738 19739 19740 48 6655 6656 6657 6658 6659 6660 6691 6692 6693 6694 6695 6696 6631 6632 6633 6634 6635 6636 19549 19550 19551 19552 19553 19554 378 379 380 381 382 383 15625 15626 15627 15628 15629 15630 15601 15602 15603 15604 15605 15606 19741 19742 19743 19744 19745 19746 48 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 19555 19556 19557 19558 19559 19560 390 391 392 393 394 395 15619 15620 15621 15622 15623 15624 15613 15614 15615 15616 15617 15618 19747 19748 19749 19750 19751 19752 48 6775 6776 6777 6778 6779 6780 6811 6812 6813 6814 6815 6816 6751 6752 6753 6754 6755 6756 19567 19568 19569 19570 19571 19572 414 415 416 417 418 419 15655 15656 15657 15658 15659 15660 15631 15632 15633 15634 15635 15636 19753 19754 19755 19756 19757 19758 48 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 19573 19574 19575 19576 19577 19578 426 427 428 429 430 431 15649 15650 15651 15652 15653 15654 15643 15644 15645 15646 15647 15648 19759 19760 19761 19762 19763 19764 48 6895 6896 6897 6898 6899 6900 6931 6932 6933 6934 6935 6936 6871 6872 6873 6874 6875 6876 19585 19586 19587 19588 19589 19590 450 451 452 453 454 455 15685 15686 15687 15688 15689 15690 15661 15662 15663 15664 15665 15666 19765 19766 19767 19768 19769 19770 48 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 19591 19592 19593 19594 19595 19596 462 463 464 465 466 467 15679 15680 15681 15682 15683 15684 15673 15674 15675 15676 15677 15678 19771 19772 19773 19774 19775 19776 48 7015 7016 7017 7018 7019 7020 7051 7052 7053 7054 7055 7056 6991 6992 6993 6994 6995 6996 19603 19604 19605 19606 19607 19608 486 487 488 489 490 491 15715 15716 15717 15718 15719 15720 15691 15692 15693 15694 15695 15696 19777 19778 19779 19780 19781 19782 48 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 19609 19610 19611 19612 19613 19614 498 499 500 501 502 503 15709 15710 15711 15712 15713 15714 15703 15704 15705 15706 15707 15708 19783 19784 19785 19786 19787 19788 48 7135 7136 7137 7138 7139 7140 7171 7172 7173 7174 7175 7176 7111 7112 7113 7114 7115 7116 19621 19622 19623 19624 19625 19626 522 523 524 525 526 527 15745 15746 15747 15748 15749 15750 15721 15722 15723 15724 15725 15726 19789 19790 19791 19792 19793 19794 48 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 19627 19628 19629 19630 19631 19632 534 535 536 537 538 539 15739 15740 15741 15742 15743 15744 15733 15734 15735 15736 15737 15738 19795 19796 19797 19798 19799 19800 48 7255 7256 7257 7258 7259 7260 7291 7292 7293 7294 7295 7296 7231 7232 7233 7234 7235 7236 19639 19640 19641 19642 19643 19644 558 559 560 561 562 563 15775 15776 15777 15778 15779 15780 15751 15752 15753 15754 15755 15756 19801 19802 19803 19804 19805 19806 48 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 19645 19646 19647 19648 19649 19650 570 571 572 573 574 575 15769 15770 15771 15772 15773 15774 15763 15764 15765 15766 15767 15768 19807 19808 19809 19810 19811 19812 48 7375 7376 7377 7378 7379 7380 7411 7412 7413 7414 7415 7416 7351 7352 7353 7354 7355 7356 19657 19658 19659 19660 19661 19662 594 595 596 597 598 599 15805 15806 15807 15808 15809 15810 15781 15782 15783 15784 15785 15786 19813 19814 19815 19816 19817 19818 48 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 19663 19664 19665 19666 19667 19668 606 607 608 609 610 611 15799 15800 15801 15802 15803 15804 15793 15794 15795 15796 15797 15798 19819 19820 19821 19822 19823 19824 48 2052 2053 2054 2055 2056 2057 2094 2095 2096 2097 2098 2099 2082 2083 2084 2085 2086 2087 19675 19676 19677 19678 19679 19680 630 631 632 633 634 635 19831 19832 19833 19834 19835 19836 19825 19826 19827 19828 19829 19830 19837 19838 19839 19840 19841 19842 30 19843 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19864 19865 19866 19861 19862 19863 19867 19868 19869 19870 19871 19872 30 19861 19862 19863 19864 19865 19866 19858 19859 19860 19873 19874 19875 19876 19877 19878 19879 19880 19881 19885 19886 19887 19882 19883 19884 19888 19889 19890 19891 19892 19893 30 19849 19850 19851 19894 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19858 19859 19860 19852 19853 19854 19855 19856 19857 36 19858 19859 19860 19909 19910 19911 19906 19907 19908 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19879 19880 19881 19873 19874 19875 19876 19877 19878 30 19930 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19951 19952 19953 19948 19949 19950 19954 19955 19956 19957 19958 19959 30 19948 19949 19950 19951 19952 19953 19945 19946 19947 19960 19961 19962 19963 19964 19965 19966 19967 19968 19972 19973 19974 19969 19970 19971 19975 19976 19977 19978 19979 19980 30 19936 19937 19938 19981 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19945 19946 19947 19939 19940 19941 19942 19943 19944 30 19843 19844 19845 19867 19868 19869 19870 19871 19872 19861 19862 19863 19999 20000 20001 19948 19949 19950 19954 19955 19956 19957 19958 19959 19930 19931 19932 20002 20003 20004 30 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20026 20027 20028 20023 20024 20025 20029 20030 20031 20032 20033 20034 30 20011 20012 20013 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20020 20021 20022 20014 20015 20016 20017 20018 20019 30 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20074 20075 20076 20071 20072 20073 20077 20078 20079 20080 20081 20082 30 20059 20060 20061 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20068 20069 20070 20062 20063 20064 20065 20066 20067 30 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20122 20123 20124 20119 20120 20121 20125 20126 20127 20128 20129 20130 42 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 20131 20132 20133 20134 20135 20136 19882 19883 19884 19888 19889 19890 19891 19892 19893 19861 19862 19863 20137 20138 20139 20140 20141 20142 30 20107 20108 20109 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20116 20117 20118 20110 20111 20112 20113 20114 20115 39 20116 20117 20118 20158 20159 20160 20155 20156 20157 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20179 20180 20181 20182 20183 20184 20173 20174 20175 20176 20177 20178 20185 20186 20187 20188 20189 20190 42 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 5965 5966 5967 5968 5969 5970 20137 20138 20139 20140 20141 20142 19861 19862 19863 19867 19868 19869 19870 19871 19872 19843 19844 19845 20203 20204 20205 20206 20207 20208 30 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20230 20231 20232 20227 20228 20229 20233 20234 20235 20236 20237 20238 30 19861 19862 19863 19888 19889 19890 19891 19892 19893 19882 19883 19884 20239 20240 20241 19969 19970 19971 19975 19976 19977 19978 19979 19980 19948 19949 19950 19999 20000 20001 30 19930 19931 19932 19954 19955 19956 19957 19958 19959 19948 19949 19950 20242 20243 20244 20023 20024 20025 20029 20030 20031 20032 20033 20034 20005 20006 20007 20245 20246 20247 30 20005 20006 20007 20029 20030 20031 20032 20033 20034 20023 20024 20025 20248 20249 20250 20071 20072 20073 20077 20078 20079 20080 20081 20082 20053 20054 20055 20251 20252 20253 30 20053 20054 20055 20077 20078 20079 20080 20081 20082 20071 20072 20073 20254 20255 20256 20119 20120 20121 20125 20126 20127 20128 20129 20130 20101 20102 20103 20257 20258 20259 27 20173 20174 20175 20176 20177 20178 20116 20117 20118 20068 20069 20070 20185 20186 20187 20188 20189 20190 20266 20267 20268 20260 20261 20262 20263 20264 20265 27 20167 20168 20169 20170 20171 20172 20155 20156 20157 20095 20096 20097 20161 20162 20163 20164 20165 20166 20275 20276 20277 20269 20270 20271 20272 20273 20274 42 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 5995 5996 5997 5998 5999 6000 20290 20291 20292 20293 20294 20295 19858 19859 19860 19852 19853 19854 19855 19856 19857 19849 19850 19851 20296 20297 20298 20299 20300 20301 42 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 20302 20303 20304 20305 20306 20307 19879 19880 19881 19873 19874 19875 19876 19877 19878 19858 19859 19860 20290 20291 20292 20293 20294 20295 30 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 20308 20309 20310 19945 19946 19947 19939 19940 19941 19942 19943 19944 19936 19937 19938 20311 20312 20313 30 19858 19859 19860 19873 19874 19875 19876 19877 19878 19879 19880 19881 20314 20315 20316 19966 19967 19968 19960 19961 19962 19963 19964 19965 19945 19946 19947 20308 20309 20310 30 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 20317 20318 20319 20020 20021 20022 20014 20015 20016 20017 20018 20019 20011 20012 20013 20320 20321 20322 30 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20323 20324 20325 20068 20069 20070 20062 20063 20064 20065 20066 20067 20059 20060 20061 20326 20327 20328 30 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20266 20267 20268 20116 20117 20118 20110 20111 20112 20113 20114 20115 20107 20108 20109 20329 20330 20331 30 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20332 20333 20334 20227 20228 20229 20233 20234 20235 20236 20237 20238 20209 20210 20211 20335 20336 20337 42 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 6031 6032 6033 6034 6035 6036 20350 20351 20352 20353 20354 20355 19906 19907 19908 19900 19901 19902 19903 19904 19905 19897 19898 19899 20356 20357 20358 20359 20360 20361 45 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 20362 20363 20364 20365 20366 20367 19918 19919 19920 19921 19922 19923 19912 19913 19914 19915 19916 19917 19906 19907 19908 20350 20351 20352 20353 20354 20355 30 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 20368 20369 20370 19993 19994 19995 19987 19988 19989 19990 19991 19992 19984 19985 19986 20371 20372 20373 30 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 20374 20375 20376 20047 20048 20049 20041 20042 20043 20044 20045 20046 20038 20039 20040 20377 20378 20379 30 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20380 20381 20382 20095 20096 20097 20089 20090 20091 20092 20093 20094 20086 20087 20088 20383 20384 20385 30 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20275 20276 20277 20155 20156 20157 20149 20150 20151 20152 20153 20154 20146 20147 20148 20386 20387 20388 30 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20389 20390 20391 20224 20225 20226 20218 20219 20220 20221 20222 20223 20215 20216 20217 20392 20393 20394 39 20191 20192 20193 20194 20195 20196 20203 20204 20205 20206 20207 20208 19843 19844 19845 19846 19847 19848 19849 19850 19851 20296 20297 20298 20299 20300 20301 20278 20279 20280 20281 20282 20283 20395 20396 20397 20398 20399 20400 39 20278 20279 20280 20281 20282 20283 20296 20297 20298 20299 20300 20301 19849 19850 19851 19894 19895 19896 19897 19898 19899 20356 20357 20358 20359 20360 20361 20338 20339 20340 20341 20342 20343 20401 20402 20403 20404 20405 20406 24 19843 19844 19845 20002 20003 20004 19930 19931 19932 19933 19934 19935 19936 19937 19938 20311 20312 20313 19849 19850 19851 19846 19847 19848 24 19849 19850 19851 20311 20312 20313 19936 19937 19938 19981 19982 19983 19984 19985 19986 20371 20372 20373 19897 19898 19899 19894 19895 19896 24 19930 19931 19932 20245 20246 20247 20005 20006 20007 20008 20009 20010 20011 20012 20013 20320 20321 20322 19936 19937 19938 19933 19934 19935 24 19936 19937 19938 20320 20321 20322 20011 20012 20013 20035 20036 20037 20038 20039 20040 20377 20378 20379 19984 19985 19986 19981 19982 19983 24 20005 20006 20007 20251 20252 20253 20053 20054 20055 20056 20057 20058 20059 20060 20061 20326 20327 20328 20011 20012 20013 20008 20009 20010 24 20011 20012 20013 20326 20327 20328 20059 20060 20061 20083 20084 20085 20086 20087 20088 20383 20384 20385 20038 20039 20040 20035 20036 20037 24 20053 20054 20055 20257 20258 20259 20101 20102 20103 20104 20105 20106 20107 20108 20109 20329 20330 20331 20059 20060 20061 20056 20057 20058 24 20059 20060 20061 20329 20330 20331 20107 20108 20109 20143 20144 20145 20146 20147 20148 20386 20387 20388 20086 20087 20088 20083 20084 20085 24 20107 20108 20109 20335 20336 20337 20209 20210 20211 20212 20213 20214 20215 20216 20217 20392 20393 20394 20146 20147 20148 20143 20144 20145 39 5965 5966 5967 5968 5969 5970 20137 20138 20139 20140 20141 20142 19861 19862 19863 19864 19865 19866 19858 19859 19860 20290 20291 20292 20293 20294 20295 5995 5996 5997 5998 5999 6000 5989 5990 5991 5992 5993 5994 39 5995 5996 5997 5998 5999 6000 20290 20291 20292 20293 20294 20295 19858 19859 19860 19909 19910 19911 19906 19907 19908 20350 20351 20352 20353 20354 20355 6031 6032 6033 6034 6035 6036 6025 6026 6027 6028 6029 6030 24 19861 19862 19863 19999 20000 20001 19948 19949 19950 19951 19952 19953 19945 19946 19947 20308 20309 20310 19858 19859 19860 19864 19865 19866 24 19858 19859 19860 20308 20309 20310 19945 19946 19947 19996 19997 19998 19993 19994 19995 20368 20369 20370 19906 19907 19908 19909 19910 19911 24 19948 19949 19950 20242 20243 20244 20023 20024 20025 20026 20027 20028 20020 20021 20022 20317 20318 20319 19945 19946 19947 19951 19952 19953 24 19945 19946 19947 20317 20318 20319 20020 20021 20022 20050 20051 20052 20047 20048 20049 20374 20375 20376 19993 19994 19995 19996 19997 19998 24 20023 20024 20025 20248 20249 20250 20071 20072 20073 20074 20075 20076 20068 20069 20070 20323 20324 20325 20020 20021 20022 20026 20027 20028 24 20020 20021 20022 20323 20324 20325 20068 20069 20070 20098 20099 20100 20095 20096 20097 20380 20381 20382 20047 20048 20049 20050 20051 20052 24 20071 20072 20073 20254 20255 20256 20119 20120 20121 20122 20123 20124 20116 20117 20118 20266 20267 20268 20068 20069 20070 20074 20075 20076 24 20068 20069 20070 20266 20267 20268 20116 20117 20118 20158 20159 20160 20155 20156 20157 20275 20276 20277 20095 20096 20097 20098 20099 20100 24 20116 20117 20118 20332 20333 20334 20227 20228 20229 20230 20231 20232 20224 20225 20226 20389 20390 20391 20155 20156 20157 20158 20159 20160 39 5977 5978 5979 5980 5981 5982 20131 20132 20133 20134 20135 20136 19882 19883 19884 19885 19886 19887 19879 19880 19881 20302 20303 20304 20305 20306 20307 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 45 6007 6008 6009 6010 6011 6012 20302 20303 20304 20305 20306 20307 19879 19880 19881 19924 19925 19926 19927 19928 19929 19918 19919 19920 19921 19922 19923 20362 20363 20364 20365 20366 20367 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 24 19882 19883 19884 20239 20240 20241 19969 19970 19971 19972 19973 19974 19966 19967 19968 20314 20315 20316 19879 19880 19881 19885 19886 19887 48 10687 10688 10689 10690 10691 10692 10681 10682 10683 10684 10685 10686 10603 10604 10605 10606 10607 10608 10621 10622 10623 10624 10625 10626 666 667 668 669 670 671 20407 20408 20409 20410 20411 20412 678 679 680 681 682 683 20413 20414 20415 20416 20417 20418 48 10717 10718 10719 10720 10721 10722 10711 10712 10713 10714 10715 10716 10687 10688 10689 10690 10691 10692 20413 20414 20415 20416 20417 20418 678 679 680 681 682 683 20419 20420 20421 20422 20423 20424 690 691 692 693 694 695 20425 20426 20427 20428 20429 20430 48 10753 10754 10755 10756 10757 10758 10747 10748 10749 10750 10751 10752 10717 10718 10719 10720 10721 10722 20425 20426 20427 20428 20429 20430 690 691 692 693 694 695 20431 20432 20433 20434 20435 20436 702 703 704 705 706 707 20437 20438 20439 20440 20441 20442 48 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 10813 10814 10815 10816 10817 10818 20455 20456 20457 20458 20459 20460 702 703 704 705 706 707 20461 20462 20463 20464 20465 20466 36 10753 10754 10755 10756 10757 10758 702 703 704 705 706 707 10813 10814 10815 10816 10817 10818 20437 20438 20439 20440 20441 20442 20455 20456 20457 20458 20459 20460 10807 10808 10809 10810 10811 10812 48 9301 9302 9303 9304 9305 9306 9295 9296 9297 9298 9299 9300 9217 9218 9219 9220 9221 9222 9235 9236 9237 9238 9239 9240 720 721 722 723 724 725 20467 20468 20469 20470 20471 20472 726 727 728 729 730 731 20473 20474 20475 20476 20477 20478 48 9331 9332 9333 9334 9335 9336 9325 9326 9327 9328 9329 9330 9301 9302 9303 9304 9305 9306 20473 20474 20475 20476 20477 20478 726 727 728 729 730 731 20479 20480 20481 20482 20483 20484 732 733 734 735 736 737 20485 20486 20487 20488 20489 20490 48 9367 9368 9369 9370 9371 9372 9361 9362 9363 9364 9365 9366 9331 9332 9333 9334 9335 9336 20485 20486 20487 20488 20489 20490 732 733 734 735 736 737 20491 20492 20493 20494 20495 20496 738 739 740 741 742 743 20497 20498 20499 20500 20501 20502 48 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 9427 9428 9429 9430 9431 9432 20527 20528 20529 20530 20531 20532 738 739 740 741 742 743 20533 20534 20535 20536 20537 20538 36 9367 9368 9369 9370 9371 9372 738 739 740 741 742 743 9427 9428 9429 9430 9431 9432 20497 20498 20499 20500 20501 20502 20527 20528 20529 20530 20531 20532 9421 9422 9423 9424 9425 9426 48 7633 7634 7635 7636 7637 7638 7627 7628 7629 7630 7631 7632 7549 7550 7551 7552 7553 7554 7567 7568 7569 7570 7571 7572 756 757 758 759 760 761 20539 20540 20541 20542 20543 20544 762 763 764 765 766 767 20545 20546 20547 20548 20549 20550 48 7663 7664 7665 7666 7667 7668 7657 7658 7659 7660 7661 7662 7633 7634 7635 7636 7637 7638 20545 20546 20547 20548 20549 20550 762 763 764 765 766 767 20551 20552 20553 20554 20555 20556 768 769 770 771 772 773 20557 20558 20559 20560 20561 20562 48 7699 7700 7701 7702 7703 7704 7693 7694 7695 7696 7697 7698 7663 7664 7665 7666 7667 7668 20557 20558 20559 20560 20561 20562 768 769 770 771 772 773 20563 20564 20565 20566 20567 20568 774 775 776 777 778 779 20569 20570 20571 20572 20573 20574 48 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 7759 7760 7761 7762 7763 7764 20587 20588 20589 20590 20591 20592 774 775 776 777 778 779 20593 20594 20595 20596 20597 20598 36 7699 7700 7701 7702 7703 7704 774 775 776 777 778 779 7759 7760 7761 7762 7763 7764 20569 20570 20571 20572 20573 20574 20587 20588 20589 20590 20591 20592 7753 7754 7755 7756 7757 7758 48 5965 5966 5967 5968 5969 5970 5959 5960 5961 5962 5963 5964 5881 5882 5883 5884 5885 5886 5899 5900 5901 5902 5903 5904 792 793 794 795 796 797 20599 20600 20601 20602 20603 20604 798 799 800 801 802 803 20605 20606 20607 20608 20609 20610 48 5995 5996 5997 5998 5999 6000 5989 5990 5991 5992 5993 5994 5965 5966 5967 5968 5969 5970 20605 20606 20607 20608 20609 20610 798 799 800 801 802 803 20611 20612 20613 20614 20615 20616 804 805 806 807 808 809 20617 20618 20619 20620 20621 20622 48 6031 6032 6033 6034 6035 6036 6025 6026 6027 6028 6029 6030 5995 5996 5997 5998 5999 6000 20617 20618 20619 20620 20621 20622 804 805 806 807 808 809 20623 20624 20625 20626 20627 20628 810 811 812 813 814 815 20629 20630 20631 20632 20633 20634 48 20338 20339 20340 20341 20342 20343 20635 20636 20637 20638 20639 20640 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 6091 6092 6093 6094 6095 6096 20641 20642 20643 20644 20645 20646 810 811 812 813 814 815 20647 20648 20649 20650 20651 20652 36 6031 6032 6033 6034 6035 6036 810 811 812 813 814 815 6091 6092 6093 6094 6095 6096 20629 20630 20631 20632 20633 20634 20641 20642 20643 20644 20645 20646 6085 6086 6087 6088 6089 6090 36 20653 20654 20655 20656 20657 20658 822 823 824 825 826 827 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20659 20660 20661 20662 20663 20664 48 20338 20339 20340 20341 20342 20343 20635 20636 20637 20638 20639 20640 19381 19382 19383 19384 19385 19386 20683 20684 20685 20686 20687 20688 20665 20666 20667 20668 20669 20670 20677 20678 20679 20680 20681 20682 822 823 824 825 826 827 20689 20690 20691 20692 20693 20694 48 20653 20654 20655 20656 20657 20658 20701 20702 20703 20704 20705 20706 20695 20696 20697 20698 20699 20700 20707 20708 20709 20710 20711 20712 834 835 836 837 838 839 20713 20714 20715 20716 20717 20718 822 823 824 825 826 827 20671 20672 20673 20674 20675 20676 48 20695 20696 20697 20698 20699 20700 20725 20726 20727 20728 20729 20730 20719 20720 20721 20722 20723 20724 20731 20732 20733 20734 20735 20736 846 847 848 849 850 851 20737 20738 20739 20740 20741 20742 834 835 836 837 838 839 20707 20708 20709 20710 20711 20712 48 20719 20720 20721 20722 20723 20724 20749 20750 20751 20752 20753 20754 20743 20744 20745 20746 20747 20748 20755 20756 20757 20758 20759 20760 858 859 860 861 862 863 20761 20762 20763 20764 20765 20766 846 847 848 849 850 851 20731 20732 20733 20734 20735 20736 36 20767 20768 20769 20770 20771 20772 816 817 818 819 820 821 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20773 20774 20775 20776 20777 20778 48 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 19369 19370 19371 19372 19373 19374 20797 20798 20799 20800 20801 20802 20779 20780 20781 20782 20783 20784 20791 20792 20793 20794 20795 20796 816 817 818 819 820 821 20803 20804 20805 20806 20807 20808 48 20767 20768 20769 20770 20771 20772 20815 20816 20817 20818 20819 20820 20809 20810 20811 20812 20813 20814 20821 20822 20823 20824 20825 20826 828 829 830 831 832 833 20827 20828 20829 20830 20831 20832 816 817 818 819 820 821 20785 20786 20787 20788 20789 20790 48 20809 20810 20811 20812 20813 20814 20839 20840 20841 20842 20843 20844 20833 20834 20835 20836 20837 20838 20845 20846 20847 20848 20849 20850 840 841 842 843 844 845 20851 20852 20853 20854 20855 20856 828 829 830 831 832 833 20821 20822 20823 20824 20825 20826 48 20833 20834 20835 20836 20837 20838 20863 20864 20865 20866 20867 20868 20857 20858 20859 20860 20861 20862 20869 20870 20871 20872 20873 20874 852 853 854 855 856 857 20875 20876 20877 20878 20879 20880 840 841 842 843 844 845 20845 20846 20847 20848 20849 20850 36 20881 20882 20883 20884 20885 20886 888 889 890 891 892 893 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20887 20888 20889 20890 20891 20892 48 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20911 20912 20913 20914 20915 20916 20893 20894 20895 20896 20897 20898 20905 20906 20907 20908 20909 20910 888 889 890 891 892 893 20917 20918 20919 20920 20921 20922 48 20881 20882 20883 20884 20885 20886 20929 20930 20931 20932 20933 20934 20923 20924 20925 20926 20927 20928 20935 20936 20937 20938 20939 20940 894 895 896 897 898 899 20941 20942 20943 20944 20945 20946 888 889 890 891 892 893 20899 20900 20901 20902 20903 20904 48 20923 20924 20925 20926 20927 20928 20953 20954 20955 20956 20957 20958 20947 20948 20949 20950 20951 20952 20959 20960 20961 20962 20963 20964 900 901 902 903 904 905 20965 20966 20967 20968 20969 20970 894 895 896 897 898 899 20935 20936 20937 20938 20939 20940 48 20947 20948 20949 20950 20951 20952 20977 20978 20979 20980 20981 20982 20971 20972 20973 20974 20975 20976 20983 20984 20985 20986 20987 20988 906 907 908 909 910 911 20989 20990 20991 20992 20993 20994 900 901 902 903 904 905 20959 20960 20961 20962 20963 20964 36 20995 20996 20997 20998 20999 21000 924 925 926 927 928 929 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21001 21002 21003 21004 21005 21006 48 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 19351 19352 19353 19354 19355 19356 21025 21026 21027 21028 21029 21030 21007 21008 21009 21010 21011 21012 21019 21020 21021 21022 21023 21024 924 925 926 927 928 929 21031 21032 21033 21034 21035 21036 48 20995 20996 20997 20998 20999 21000 21043 21044 21045 21046 21047 21048 21037 21038 21039 21040 21041 21042 21049 21050 21051 21052 21053 21054 930 931 932 933 934 935 21055 21056 21057 21058 21059 21060 924 925 926 927 928 929 21013 21014 21015 21016 21017 21018 48 21037 21038 21039 21040 21041 21042 21067 21068 21069 21070 21071 21072 21061 21062 21063 21064 21065 21066 21073 21074 21075 21076 21077 21078 936 937 938 939 940 941 21079 21080 21081 21082 21083 21084 930 931 932 933 934 935 21049 21050 21051 21052 21053 21054 48 21061 21062 21063 21064 21065 21066 21091 21092 21093 21094 21095 21096 21085 21086 21087 21088 21089 21090 21097 21098 21099 21100 21101 21102 942 943 944 945 946 947 21103 21104 21105 21106 21107 21108 936 937 938 939 940 941 21073 21074 21075 21076 21077 21078 24 21109 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21127 21128 21129 21124 21125 21126 21130 21131 21132 45 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21124 21125 21126 21145 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21163 21164 21165 21166 21167 21168 21157 21158 21159 21160 21161 21162 21169 21170 21171 21172 21173 21174 39 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21109 21110 21111 21130 21131 21132 21124 21125 21126 21139 21140 21141 21142 21143 21144 21133 21134 21135 21136 21137 21138 21187 21188 21189 21190 21191 21192 24 21193 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21211 21212 21213 21208 21209 21210 21214 21215 21216 24 21220 21221 21222 21217 21218 21219 21193 21194 21195 21214 21215 21216 21208 21209 21210 21223 21224 21225 21226 21227 21228 21229 21230 21231 24 21232 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21193 21194 21195 21217 21218 21219 21220 21221 21222 21244 21245 21246 24 21247 21248 21249 21250 21251 21252 21220 21221 21222 21229 21230 21231 21226 21227 21228 21256 21257 21258 21253 21254 21255 21259 21260 21261 24 21262 21263 21264 21265 21266 21267 21232 21233 21234 21244 21245 21246 21220 21221 21222 21250 21251 21252 21247 21248 21249 21268 21269 21270 24 21271 21272 21273 21274 21275 21276 21247 21248 21249 21259 21260 21261 21253 21254 21255 21280 21281 21282 21277 21278 21279 21283 21284 21285 24 21286 21287 21288 21289 21290 21291 21262 21263 21264 21268 21269 21270 21247 21248 21249 21274 21275 21276 21271 21272 21273 21292 21293 21294 24 21295 21296 21297 21298 21299 21300 21271 21272 21273 21283 21284 21285 21277 21278 21279 21304 21305 21306 21301 21302 21303 21307 21308 21309 24 21310 21311 21312 21313 21314 21315 21286 21287 21288 21292 21293 21294 21271 21272 21273 21298 21299 21300 21295 21296 21297 21316 21317 21318 39 20695 20696 20697 20698 20699 20700 21319 21320 21321 21322 21323 21324 21295 21296 21297 21307 21308 21309 21301 21302 21303 21325 21326 21327 21328 21329 21330 20653 20654 20655 20656 20657 20658 20701 20702 20703 20704 20705 20706 39 20719 20720 20721 20722 20723 20724 21331 21332 21333 21334 21335 21336 21310 21311 21312 21316 21317 21318 21295 21296 21297 21319 21320 21321 21322 21323 21324 20695 20696 20697 20698 20699 20700 20725 20726 20727 20728 20729 20730 30 20146 20147 20148 21337 21338 21339 21340 21341 21342 21208 21209 21210 21211 21212 21213 21205 21206 21207 21343 21344 21345 21346 21347 21348 20215 20216 20217 20392 20393 20394 30 20086 20087 20088 21349 21350 21351 21352 21353 21354 21226 21227 21228 21223 21224 21225 21208 21209 21210 21337 21338 21339 21340 21341 21342 20146 20147 20148 20386 20387 20388 30 20038 20039 20040 21355 21356 21357 21358 21359 21360 21253 21254 21255 21256 21257 21258 21226 21227 21228 21349 21350 21351 21352 21353 21354 20086 20087 20088 20383 20384 20385 30 19984 19985 19986 21361 21362 21363 21364 21365 21366 21277 21278 21279 21280 21281 21282 21253 21254 21255 21355 21356 21357 21358 21359 21360 20038 20039 20040 20377 20378 20379 30 19897 19898 19899 21367 21368 21369 21370 21371 21372 21301 21302 21303 21304 21305 21306 21277 21278 21279 21361 21362 21363 21364 21365 21366 19984 19985 19986 20371 20372 20373 45 20653 20654 20655 20656 20657 20658 21373 21374 21375 21376 21377 21378 21157 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21151 21152 21153 21154 21155 21156 21379 21380 21381 21382 21383 21384 21301 21302 21303 21325 21326 21327 21328 21329 21330 42 20338 20339 20340 20341 20342 20343 21385 21386 21387 21388 21389 21390 20653 20654 20655 20656 20657 20658 21325 21326 21327 21328 21329 21330 21301 21302 21303 21367 21368 21369 21370 21371 21372 19897 19898 19899 20356 20357 20358 20359 20360 20361 30 20107 20108 20109 21391 21392 21393 21394 21395 21396 21193 21194 21195 21196 21197 21198 21199 21200 21201 21397 21398 21399 21400 21401 21402 20209 20210 20211 20335 20336 20337 30 20059 20060 20061 21403 21404 21405 21406 21407 21408 21220 21221 21222 21217 21218 21219 21193 21194 21195 21391 21392 21393 21394 21395 21396 20107 20108 20109 20329 20330 20331 30 20011 20012 20013 21409 21410 21411 21412 21413 21414 21247 21248 21249 21250 21251 21252 21220 21221 21222 21403 21404 21405 21406 21407 21408 20059 20060 20061 20326 20327 20328 30 19936 19937 19938 21415 21416 21417 21418 21419 21420 21271 21272 21273 21274 21275 21276 21247 21248 21249 21409 21410 21411 21412 21413 21414 20011 20012 20013 20320 20321 20322 30 21295 21296 21297 21421 21422 21423 21424 21425 21426 21124 21125 21126 21127 21128 21129 21121 21122 21123 21427 21428 21429 21430 21431 21432 21271 21272 21273 21298 21299 21300 30 19849 19850 19851 21433 21434 21435 21436 21437 21438 21295 21296 21297 21298 21299 21300 21271 21272 21273 21415 21416 21417 21418 21419 21420 19936 19937 19938 20311 20312 20313 42 20695 20696 20697 20698 20699 20700 21439 21440 21441 21442 21443 21444 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21124 21125 21126 21421 21422 21423 21424 21425 21426 21295 21296 21297 21319 21320 21321 21322 21323 21324 42 20278 20279 20280 20281 20282 20283 21445 21446 21447 21448 21449 21450 20695 20696 20697 20698 20699 20700 21319 21320 21321 21322 21323 21324 21295 21296 21297 21433 21434 21435 21436 21437 21438 19849 19850 19851 20296 20297 20298 20299 20300 20301 27 21457 21458 21459 21460 21461 21462 21208 21209 21210 21226 21227 21228 21463 21464 21465 21466 21467 21468 21223 21224 21225 21451 21452 21453 21454 21455 21456 27 21475 21476 21477 21478 21479 21480 21193 21194 21195 21220 21221 21222 21481 21482 21483 21484 21485 21486 21217 21218 21219 21469 21470 21471 21472 21473 21474 30 20053 20054 20055 21487 21488 21489 21490 21491 21492 21232 21233 21234 21235 21236 21237 21238 21239 21240 21493 21494 21495 21496 21497 21498 20101 20102 20103 20257 20258 20259 30 20005 20006 20007 21499 21500 21501 21502 21503 21504 21262 21263 21264 21265 21266 21267 21232 21233 21234 21487 21488 21489 21490 21491 21492 20053 20054 20055 20251 20252 20253 30 19930 19931 19932 21505 21506 21507 21508 21509 21510 21286 21287 21288 21289 21290 21291 21262 21263 21264 21499 21500 21501 21502 21503 21504 20005 20006 20007 20245 20246 20247 30 21310 21311 21312 21511 21512 21513 21514 21515 21516 21109 21110 21111 21112 21113 21114 21115 21116 21117 21517 21518 21519 21520 21521 21522 21286 21287 21288 21313 21314 21315 30 20209 20210 20211 20212 20213 20214 20215 20216 20217 21343 21344 21345 21346 21347 21348 21205 21206 21207 21202 21203 21204 21199 21200 21201 21397 21398 21399 21400 21401 21402 42 20191 20192 20193 20194 20195 20196 21523 21524 21525 21526 21527 21528 20719 20720 20721 20722 20723 20724 21331 21332 21333 21334 21335 21336 21310 21311 21312 21529 21530 21531 21532 21533 21534 19843 19844 19845 20203 20204 20205 20206 20207 20208 39 21193 21194 21195 21214 21215 21216 21208 21209 21210 21463 21464 21465 21466 21467 21468 21457 21458 21459 21460 21461 21462 21535 21536 21537 21538 21539 21540 21475 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 30 20107 20108 20109 20143 20144 20145 20146 20147 20148 21337 21338 21339 21340 21341 21342 21208 21209 21210 21214 21215 21216 21193 21194 21195 21391 21392 21393 21394 21395 21396 42 20719 20720 20721 20722 20723 20724 21541 21542 21543 21544 21545 21546 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21109 21110 21111 21511 21512 21513 21514 21515 21516 21310 21311 21312 21331 21332 21333 21334 21335 21336 30 20101 20102 20103 20104 20105 20106 20107 20108 20109 21391 21392 21393 21394 21395 21396 21193 21194 21195 21241 21242 21243 21238 21239 21240 21493 21494 21495 21496 21497 21498 30 20059 20060 20061 20083 20084 20085 20086 20087 20088 21349 21350 21351 21352 21353 21354 21226 21227 21228 21229 21230 21231 21220 21221 21222 21403 21404 21405 21406 21407 21408 30 20053 20054 20055 20056 20057 20058 20059 20060 20061 21403 21404 21405 21406 21407 21408 21220 21221 21222 21244 21245 21246 21232 21233 21234 21487 21488 21489 21490 21491 21492 30 20011 20012 20013 20035 20036 20037 20038 20039 20040 21355 21356 21357 21358 21359 21360 21253 21254 21255 21259 21260 21261 21247 21248 21249 21409 21410 21411 21412 21413 21414 30 20005 20006 20007 20008 20009 20010 20011 20012 20013 21409 21410 21411 21412 21413 21414 21247 21248 21249 21268 21269 21270 21262 21263 21264 21499 21500 21501 21502 21503 21504 30 19843 19844 19845 21529 21530 21531 21532 21533 21534 21310 21311 21312 21313 21314 21315 21286 21287 21288 21505 21506 21507 21508 21509 21510 19930 19931 19932 20002 20003 20004 30 19936 19937 19938 19981 19982 19983 19984 19985 19986 21361 21362 21363 21364 21365 21366 21277 21278 21279 21283 21284 21285 21271 21272 21273 21415 21416 21417 21418 21419 21420 30 21286 21287 21288 21292 21293 21294 21271 21272 21273 21427 21428 21429 21430 21431 21432 21121 21122 21123 21118 21119 21120 21115 21116 21117 21517 21518 21519 21520 21521 21522 30 19930 19931 19932 19933 19934 19935 19936 19937 19938 21415 21416 21417 21418 21419 21420 21271 21272 21273 21292 21293 21294 21286 21287 21288 21505 21506 21507 21508 21509 21510 36 21295 21296 21297 21307 21308 21309 21301 21302 21303 21379 21380 21381 21382 21383 21384 21151 21152 21153 21154 21155 21156 21145 21146 21147 21148 21149 21150 21124 21125 21126 21421 21422 21423 21424 21425 21426 30 19849 19850 19851 19894 19895 19896 19897 19898 19899 21367 21368 21369 21370 21371 21372 21301 21302 21303 21307 21308 21309 21295 21296 21297 21433 21434 21435 21436 21437 21438 30 21310 21311 21312 21316 21317 21318 21295 21296 21297 21421 21422 21423 21424 21425 21426 21124 21125 21126 21130 21131 21132 21109 21110 21111 21511 21512 21513 21514 21515 21516 30 19843 19844 19845 19846 19847 19848 19849 19850 19851 21433 21434 21435 21436 21437 21438 21295 21296 21297 21316 21317 21318 21310 21311 21312 21529 21530 21531 21532 21533 21534 48 2052 2053 2054 2055 2056 2057 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 1008 1009 1010 1011 1012 1013 21565 21566 21567 21568 21569 21570 19825 19826 19827 19828 19829 19830 19837 19838 19839 19840 19841 19842 48 7387 7388 7389 7390 7391 7392 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 1014 1015 1016 1017 1018 1019 21589 21590 21591 21592 21593 21594 15793 15794 15795 15796 15797 15798 19819 19820 19821 19822 19823 19824 48 7375 7376 7377 7378 7379 7380 21595 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 1026 1027 1028 1029 1030 1031 21613 21614 21615 21616 21617 21618 15781 15782 15783 15784 15785 15786 19813 19814 19815 19816 19817 19818 48 7267 7268 7269 7270 7271 7272 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 1050 1051 1052 1053 1054 1055 21637 21638 21639 21640 21641 21642 15763 15764 15765 15766 15767 15768 19807 19808 19809 19810 19811 19812 48 7255 7256 7257 7258 7259 7260 21643 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 1062 1063 1064 1065 1066 1067 21661 21662 21663 21664 21665 21666 15751 15752 15753 15754 15755 15756 19801 19802 19803 19804 19805 19806 48 7147 7148 7149 7150 7151 7152 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 1086 1087 1088 1089 1090 1091 21685 21686 21687 21688 21689 21690 15733 15734 15735 15736 15737 15738 19795 19796 19797 19798 19799 19800 48 7135 7136 7137 7138 7139 7140 21691 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 1098 1099 1100 1101 1102 1103 21709 21710 21711 21712 21713 21714 15721 15722 15723 15724 15725 15726 19789 19790 19791 19792 19793 19794 48 7027 7028 7029 7030 7031 7032 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 1122 1123 1124 1125 1126 1127 21733 21734 21735 21736 21737 21738 15703 15704 15705 15706 15707 15708 19783 19784 19785 19786 19787 19788 48 7015 7016 7017 7018 7019 7020 21739 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 1134 1135 1136 1137 1138 1139 21757 21758 21759 21760 21761 21762 15691 15692 15693 15694 15695 15696 19777 19778 19779 19780 19781 19782 48 6907 6908 6909 6910 6911 6912 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 1158 1159 1160 1161 1162 1163 21781 21782 21783 21784 21785 21786 15673 15674 15675 15676 15677 15678 19771 19772 19773 19774 19775 19776 48 6895 6896 6897 6898 6899 6900 21787 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 1170 1171 1172 1173 1174 1175 21805 21806 21807 21808 21809 21810 15661 15662 15663 15664 15665 15666 19765 19766 19767 19768 19769 19770 48 6787 6788 6789 6790 6791 6792 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 1194 1195 1196 1197 1198 1199 21829 21830 21831 21832 21833 21834 15643 15644 15645 15646 15647 15648 19759 19760 19761 19762 19763 19764 48 6775 6776 6777 6778 6779 6780 21835 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 1206 1207 1208 1209 1210 1211 21853 21854 21855 21856 21857 21858 15631 15632 15633 15634 15635 15636 19753 19754 19755 19756 19757 19758 48 6667 6668 6669 6670 6671 6672 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 1230 1231 1232 1233 1234 1235 21877 21878 21879 21880 21881 21882 15613 15614 15615 15616 15617 15618 19747 19748 19749 19750 19751 19752 48 6655 6656 6657 6658 6659 6660 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 1242 1243 1244 1245 1246 1247 21901 21902 21903 21904 21905 21906 15601 15602 15603 15604 15605 15606 19741 19742 19743 19744 19745 19746 48 6547 6548 6549 6550 6551 6552 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 1266 1267 1268 1269 1270 1271 21925 21926 21927 21928 21929 21930 15583 15584 15585 15586 15587 15588 19735 19736 19737 19738 19739 19740 48 6535 6536 6537 6538 6539 6540 21931 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 1278 1279 1280 1281 1282 1283 21949 21950 21951 21952 21953 21954 15571 15572 15573 15574 15575 15576 19729 19730 19731 19732 19733 19734 48 6427 6428 6429 6430 6431 6432 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 1302 1303 1304 1305 1306 1307 21973 21974 21975 21976 21977 21978 15553 15554 15555 15556 15557 15558 19723 19724 19725 19726 19727 19728 48 6415 6416 6417 6418 6419 6420 21979 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 1314 1315 1316 1317 1318 1319 21997 21998 21999 22000 22001 22002 15541 15542 15543 15544 15545 15546 19717 19718 19719 19720 19721 19722 48 6307 6308 6309 6310 6311 6312 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 1338 1339 1340 1341 1342 1343 22021 22022 22023 22024 22025 22026 15523 15524 15525 15526 15527 15528 19711 19712 19713 19714 19715 19716 48 6295 6296 6297 6298 6299 6300 22027 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 1350 1351 1352 1353 1354 1355 22045 22046 22047 22048 22049 22050 15511 15512 15513 15514 15515 15516 19705 19706 19707 19708 19709 19710 48 6187 6188 6189 6190 6191 6192 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 1374 1375 1376 1377 1378 1379 22069 22070 22071 22072 22073 22074 15493 15494 15495 15496 15497 15498 19699 19700 19701 19702 19703 19704 48 6175 6176 6177 6178 6179 6180 22075 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 1386 1387 1388 1389 1390 1391 22093 22094 22095 22096 22097 22098 15481 15482 15483 15484 15485 15486 19693 19694 19695 19696 19697 19698 48 19381 19382 19383 19384 19385 19386 20683 20684 20685 20686 20687 20688 20665 20666 20667 20668 20669 20670 22099 22100 22101 22102 22103 22104 1410 1411 1412 1413 1414 1415 22105 22106 22107 22108 22109 22110 15463 15464 15465 15466 15467 15468 19687 19688 19689 19690 19691 19692 48 6055 6056 6057 6058 6059 6060 22111 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 1494 1495 1496 1497 1498 1499 22129 22130 22131 22132 22133 22134 15421 15422 15423 15424 15425 15426 19681 19682 19683 19684 19685 19686 48 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 1008 1009 1010 1011 1012 1013 1002 1003 1004 1005 1006 1007 996 997 998 999 1000 1001 22147 22148 22149 22150 22151 22152 48 21577 21578 21579 21580 21581 21582 22153 22154 22155 22156 22157 22158 22135 22136 22137 22138 22139 22140 22147 22148 22149 22150 22151 22152 996 997 998 999 1000 1001 1020 1021 1022 1023 1024 1025 1014 1015 1016 1017 1018 1019 21583 21584 21585 21586 21587 21588 48 21601 21602 21603 21604 21605 21606 22159 22160 22161 22162 22163 22164 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 1014 1015 1016 1017 1018 1019 1032 1033 1034 1035 1036 1037 1026 1027 1028 1029 1030 1031 21607 21608 21609 21610 21611 21612 48 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 1026 1027 1028 1029 1030 1031 1044 1045 1046 1047 1048 1049 1038 1039 1040 1041 1042 1043 22177 22178 22179 22180 22181 22182 48 21625 21626 21627 21628 21629 21630 22183 22184 22185 22186 22187 22188 22165 22166 22167 22168 22169 22170 22177 22178 22179 22180 22181 22182 1038 1039 1040 1041 1042 1043 1056 1057 1058 1059 1060 1061 1050 1051 1052 1053 1054 1055 21631 21632 21633 21634 21635 21636 48 21649 21650 21651 21652 21653 21654 22189 22190 22191 22192 22193 22194 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 1050 1051 1052 1053 1054 1055 1068 1069 1070 1071 1072 1073 1062 1063 1064 1065 1066 1067 21655 21656 21657 21658 21659 21660 48 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 1062 1063 1064 1065 1066 1067 1080 1081 1082 1083 1084 1085 1074 1075 1076 1077 1078 1079 22207 22208 22209 22210 22211 22212 48 21673 21674 21675 21676 21677 21678 22213 22214 22215 22216 22217 22218 22195 22196 22197 22198 22199 22200 22207 22208 22209 22210 22211 22212 1074 1075 1076 1077 1078 1079 1092 1093 1094 1095 1096 1097 1086 1087 1088 1089 1090 1091 21679 21680 21681 21682 21683 21684 48 21697 21698 21699 21700 21701 21702 22219 22220 22221 22222 22223 22224 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 1086 1087 1088 1089 1090 1091 1104 1105 1106 1107 1108 1109 1098 1099 1100 1101 1102 1103 21703 21704 21705 21706 21707 21708 48 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 1098 1099 1100 1101 1102 1103 1116 1117 1118 1119 1120 1121 1110 1111 1112 1113 1114 1115 22237 22238 22239 22240 22241 22242 48 21721 21722 21723 21724 21725 21726 22243 22244 22245 22246 22247 22248 22225 22226 22227 22228 22229 22230 22237 22238 22239 22240 22241 22242 1110 1111 1112 1113 1114 1115 1128 1129 1130 1131 1132 1133 1122 1123 1124 1125 1126 1127 21727 21728 21729 21730 21731 21732 48 21745 21746 21747 21748 21749 21750 22249 22250 22251 22252 22253 22254 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 1122 1123 1124 1125 1126 1127 1140 1141 1142 1143 1144 1145 1134 1135 1136 1137 1138 1139 21751 21752 21753 21754 21755 21756 48 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 1134 1135 1136 1137 1138 1139 1152 1153 1154 1155 1156 1157 1146 1147 1148 1149 1150 1151 22267 22268 22269 22270 22271 22272 48 21769 21770 21771 21772 21773 21774 22273 22274 22275 22276 22277 22278 22255 22256 22257 22258 22259 22260 22267 22268 22269 22270 22271 22272 1146 1147 1148 1149 1150 1151 1164 1165 1166 1167 1168 1169 1158 1159 1160 1161 1162 1163 21775 21776 21777 21778 21779 21780 48 21793 21794 21795 21796 21797 21798 22279 22280 22281 22282 22283 22284 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 1158 1159 1160 1161 1162 1163 1176 1177 1178 1179 1180 1181 1170 1171 1172 1173 1174 1175 21799 21800 21801 21802 21803 21804 48 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 1170 1171 1172 1173 1174 1175 1188 1189 1190 1191 1192 1193 1182 1183 1184 1185 1186 1187 22297 22298 22299 22300 22301 22302 48 21817 21818 21819 21820 21821 21822 22303 22304 22305 22306 22307 22308 22285 22286 22287 22288 22289 22290 22297 22298 22299 22300 22301 22302 1182 1183 1184 1185 1186 1187 1200 1201 1202 1203 1204 1205 1194 1195 1196 1197 1198 1199 21823 21824 21825 21826 21827 21828 48 21841 21842 21843 21844 21845 21846 22309 22310 22311 22312 22313 22314 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 1194 1195 1196 1197 1198 1199 1212 1213 1214 1215 1216 1217 1206 1207 1208 1209 1210 1211 21847 21848 21849 21850 21851 21852 48 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 1206 1207 1208 1209 1210 1211 1224 1225 1226 1227 1228 1229 1218 1219 1220 1221 1222 1223 22327 22328 22329 22330 22331 22332 48 21865 21866 21867 21868 21869 21870 22333 22334 22335 22336 22337 22338 22315 22316 22317 22318 22319 22320 22327 22328 22329 22330 22331 22332 1218 1219 1220 1221 1222 1223 1236 1237 1238 1239 1240 1241 1230 1231 1232 1233 1234 1235 21871 21872 21873 21874 21875 21876 48 21889 21890 21891 21892 21893 21894 22339 22340 22341 22342 22343 22344 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 1230 1231 1232 1233 1234 1235 1248 1249 1250 1251 1252 1253 1242 1243 1244 1245 1246 1247 21895 21896 21897 21898 21899 21900 48 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 1242 1243 1244 1245 1246 1247 1260 1261 1262 1263 1264 1265 1254 1255 1256 1257 1258 1259 22357 22358 22359 22360 22361 22362 48 21913 21914 21915 21916 21917 21918 22363 22364 22365 22366 22367 22368 22345 22346 22347 22348 22349 22350 22357 22358 22359 22360 22361 22362 1254 1255 1256 1257 1258 1259 1272 1273 1274 1275 1276 1277 1266 1267 1268 1269 1270 1271 21919 21920 21921 21922 21923 21924 48 21937 21938 21939 21940 21941 21942 22369 22370 22371 22372 22373 22374 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 1266 1267 1268 1269 1270 1271 1284 1285 1286 1287 1288 1289 1278 1279 1280 1281 1282 1283 21943 21944 21945 21946 21947 21948 48 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 1278 1279 1280 1281 1282 1283 1296 1297 1298 1299 1300 1301 1290 1291 1292 1293 1294 1295 22387 22388 22389 22390 22391 22392 48 21961 21962 21963 21964 21965 21966 22393 22394 22395 22396 22397 22398 22375 22376 22377 22378 22379 22380 22387 22388 22389 22390 22391 22392 1290 1291 1292 1293 1294 1295 1308 1309 1310 1311 1312 1313 1302 1303 1304 1305 1306 1307 21967 21968 21969 21970 21971 21972 48 21985 21986 21987 21988 21989 21990 22399 22400 22401 22402 22403 22404 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 1302 1303 1304 1305 1306 1307 1320 1321 1322 1323 1324 1325 1314 1315 1316 1317 1318 1319 21991 21992 21993 21994 21995 21996 48 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 1314 1315 1316 1317 1318 1319 1332 1333 1334 1335 1336 1337 1326 1327 1328 1329 1330 1331 22417 22418 22419 22420 22421 22422 48 22009 22010 22011 22012 22013 22014 22423 22424 22425 22426 22427 22428 22405 22406 22407 22408 22409 22410 22417 22418 22419 22420 22421 22422 1326 1327 1328 1329 1330 1331 1344 1345 1346 1347 1348 1349 1338 1339 1340 1341 1342 1343 22015 22016 22017 22018 22019 22020 48 22033 22034 22035 22036 22037 22038 22429 22430 22431 22432 22433 22434 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 1338 1339 1340 1341 1342 1343 1356 1357 1358 1359 1360 1361 1350 1351 1352 1353 1354 1355 22039 22040 22041 22042 22043 22044 48 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 1350 1351 1352 1353 1354 1355 1368 1369 1370 1371 1372 1373 1362 1363 1364 1365 1366 1367 22447 22448 22449 22450 22451 22452 48 22057 22058 22059 22060 22061 22062 22453 22454 22455 22456 22457 22458 22435 22436 22437 22438 22439 22440 22447 22448 22449 22450 22451 22452 1362 1363 1364 1365 1366 1367 1380 1381 1382 1383 1384 1385 1374 1375 1376 1377 1378 1379 22063 22064 22065 22066 22067 22068 48 22081 22082 22083 22084 22085 22086 22459 22460 22461 22462 22463 22464 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 1374 1375 1376 1377 1378 1379 1392 1393 1394 1395 1396 1397 1386 1387 1388 1389 1390 1391 22087 22088 22089 22090 22091 22092 48 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 1386 1387 1388 1389 1390 1391 1404 1405 1406 1407 1408 1409 1398 1399 1400 1401 1402 1403 22477 22478 22479 22480 22481 22482 48 20665 20666 20667 20668 20669 20670 22483 22484 22485 22486 22487 22488 22465 22466 22467 22468 22469 22470 22477 22478 22479 22480 22481 22482 1398 1399 1400 1401 1402 1403 1416 1417 1418 1419 1420 1421 1410 1411 1412 1413 1414 1415 22099 22100 22101 22102 22103 22104 48 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 22099 22100 22101 22102 22103 22104 1410 1411 1412 1413 1414 1415 1428 1429 1430 1431 1432 1433 1422 1423 1424 1425 1426 1427 22489 22490 22491 22492 22493 22494 48 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20653 20654 20655 20656 20657 20658 22489 22490 22491 22492 22493 22494 1422 1423 1424 1425 1426 1427 1440 1441 1442 1443 1444 1445 1434 1435 1436 1437 1438 1439 22495 22496 22497 22498 22499 22500 48 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20695 20696 20697 20698 20699 20700 22495 22496 22497 22498 22499 22500 1434 1435 1436 1437 1438 1439 1452 1453 1454 1455 1456 1457 1446 1447 1448 1449 1450 1451 22501 22502 22503 22504 22505 22506 48 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20719 20720 20721 20722 20723 20724 22501 22502 22503 22504 22505 22506 1446 1447 1448 1449 1450 1451 1464 1465 1466 1467 1468 1469 1458 1459 1460 1461 1462 1463 22507 22508 22509 22510 22511 22512 48 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 20743 20744 20745 20746 20747 20748 22507 22508 22509 22510 22511 22512 1458 1459 1460 1461 1462 1463 1476 1477 1478 1479 1480 1481 1470 1471 1472 1473 1474 1475 22525 22526 22527 22528 22529 22530 48 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22513 22514 22515 22516 22517 22518 22525 22526 22527 22528 22529 22530 1470 1471 1472 1473 1474 1475 1488 1489 1490 1491 1492 1493 1482 1483 1484 1485 1486 1487 22543 22544 22545 22546 22547 22548 48 22117 22118 22119 22120 22121 22122 22549 22550 22551 22552 22553 22554 22531 22532 22533 22534 22535 22536 22543 22544 22545 22546 22547 22548 1482 1483 1484 1485 1486 1487 1500 1501 1502 1503 1504 1505 1494 1495 1496 1497 1498 1499 22123 22124 22125 22126 22127 22128 48 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 1494 1495 1496 1497 1498 1499 1512 1513 1514 1515 1516 1517 1506 1507 1508 1509 1510 1511 22567 22568 22569 22570 22571 22572 48 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22135 22136 22137 22138 22139 22140 22609 22610 22611 22612 22613 22614 48 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22585 22586 22587 22588 22589 22590 22579 22580 22581 22582 22583 22584 22573 22574 22575 22576 22577 22578 22639 22640 22641 22642 22643 22644 48 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22627 22628 22629 22630 22631 22632 22621 22622 22623 22624 22625 22626 22615 22616 22617 22618 22619 22620 22669 22670 22671 22672 22673 22674 48 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22657 22658 22659 22660 22661 22662 22651 22652 22653 22654 22655 22656 22645 22646 22647 22648 22649 22650 22699 22700 22701 22702 22703 22704 36 22687 22688 22689 22690 22691 22692 22675 22676 22677 22678 22679 22680 22705 22706 22707 22708 22709 22710 22681 22682 22683 22684 22685 22686 22717 22718 22719 22720 22721 22722 22711 22712 22713 22714 22715 22716 48 15385 15386 15387 15388 15389 15390 22723 22724 22725 22726 22727 22728 22705 22706 22707 22708 22709 22710 22717 22718 22719 22720 22721 22722 22675 22676 22677 22678 22679 22680 22729 22730 22731 22732 22733 22734 14107 14108 14109 14110 14111 14112 18643 18644 18645 18646 18647 18648 48 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 21577 21578 21579 21580 21581 21582 22771 22772 22773 22774 22775 22776 48 9055 9056 9057 9058 9059 9060 22777 22778 22779 22780 22781 22782 22735 22736 22737 22738 22739 22740 22771 22772 22773 22774 22775 22776 21577 21578 21579 21580 21581 21582 21571 21572 21573 21574 21575 21576 7387 7388 7389 7390 7391 7392 19327 19328 19329 19330 19331 19332 48 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22747 22748 22749 22750 22751 22752 22741 22742 22743 22744 22745 22746 22735 22736 22737 22738 22739 22740 22807 22808 22809 22810 22811 22812 48 10453 10454 10455 10456 10457 10458 22813 22814 22815 22816 22817 22818 22783 22784 22785 22786 22787 22788 22807 22808 22809 22810 22811 22812 22735 22736 22737 22738 22739 22740 22777 22778 22779 22780 22781 22782 9055 9056 9057 9058 9059 9060 19195 19196 19197 19198 19199 19200 48 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22795 22796 22797 22798 22799 22800 22789 22790 22791 22792 22793 22794 22783 22784 22785 22786 22787 22788 22843 22844 22845 22846 22847 22848 48 12109 12110 12111 12112 12113 12114 22849 22850 22851 22852 22853 22854 22819 22820 22821 22822 22823 22824 22843 22844 22845 22846 22847 22848 22783 22784 22785 22786 22787 22788 22813 22814 22815 22816 22817 22818 10453 10454 10455 10456 10457 10458 19063 19064 19065 19066 19067 19068 48 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22831 22832 22833 22834 22835 22836 22825 22826 22827 22828 22829 22830 22819 22820 22821 22822 22823 22824 22879 22880 22881 22882 22883 22884 48 14059 14060 14061 14062 14063 14064 22885 22886 22887 22888 22889 22890 22855 22856 22857 22858 22859 22860 22879 22880 22881 22882 22883 22884 22819 22820 22821 22822 22823 22824 22849 22850 22851 22852 22853 22854 12109 12110 12111 12112 12113 12114 18769 18770 18771 18772 18773 18774 36 22867 22868 22869 22870 22871 22872 22855 22856 22857 22858 22859 22860 22891 22892 22893 22894 22895 22896 22861 22862 22863 22864 22865 22866 22903 22904 22905 22906 22907 22908 22897 22898 22899 22900 22901 22902 48 15355 15356 15357 15358 15359 15360 22909 22910 22911 22912 22913 22914 22891 22892 22893 22894 22895 22896 22903 22904 22905 22906 22907 22908 22855 22856 22857 22858 22859 22860 22885 22886 22887 22888 22889 22890 14059 14060 14061 14062 14063 14064 18637 18638 18639 18640 18641 18642 48 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 21601 21602 21603 21604 21605 21606 22951 22952 22953 22954 22955 22956 48 9043 9044 9045 9046 9047 9048 22957 22958 22959 22960 22961 22962 22915 22916 22917 22918 22919 22920 22951 22952 22953 22954 22955 22956 21601 21602 21603 21604 21605 21606 21595 21596 21597 21598 21599 21600 7375 7376 7377 7378 7379 7380 19333 19334 19335 19336 19337 19338 48 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22927 22928 22929 22930 22931 22932 22921 22922 22923 22924 22925 22926 22915 22916 22917 22918 22919 22920 22987 22988 22989 22990 22991 22992 48 10441 10442 10443 10444 10445 10446 22993 22994 22995 22996 22997 22998 22963 22964 22965 22966 22967 22968 22987 22988 22989 22990 22991 22992 22915 22916 22917 22918 22919 22920 22957 22958 22959 22960 22961 22962 9043 9044 9045 9046 9047 9048 19201 19202 19203 19204 19205 19206 48 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 22975 22976 22977 22978 22979 22980 22969 22970 22971 22972 22973 22974 22963 22964 22965 22966 22967 22968 23023 23024 23025 23026 23027 23028 48 12097 12098 12099 12100 12101 12102 23029 23030 23031 23032 23033 23034 22999 23000 23001 23002 23003 23004 23023 23024 23025 23026 23027 23028 22963 22964 22965 22966 22967 22968 22993 22994 22995 22996 22997 22998 10441 10442 10443 10444 10445 10446 19069 19070 19071 19072 19073 19074 48 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23011 23012 23013 23014 23015 23016 23005 23006 23007 23008 23009 23010 22999 23000 23001 23002 23003 23004 23059 23060 23061 23062 23063 23064 48 14011 14012 14013 14014 14015 14016 23065 23066 23067 23068 23069 23070 23035 23036 23037 23038 23039 23040 23059 23060 23061 23062 23063 23064 22999 23000 23001 23002 23003 23004 23029 23030 23031 23032 23033 23034 12097 12098 12099 12100 12101 12102 18775 18776 18777 18778 18779 18780 36 23047 23048 23049 23050 23051 23052 23035 23036 23037 23038 23039 23040 23071 23072 23073 23074 23075 23076 23041 23042 23043 23044 23045 23046 23083 23084 23085 23086 23087 23088 23077 23078 23079 23080 23081 23082 48 15325 15326 15327 15328 15329 15330 23089 23090 23091 23092 23093 23094 23071 23072 23073 23074 23075 23076 23083 23084 23085 23086 23087 23088 23035 23036 23037 23038 23039 23040 23065 23066 23067 23068 23069 23070 14011 14012 14013 14014 14015 14016 18631 18632 18633 18634 18635 18636 48 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 22165 22166 22167 22168 22169 22170 23131 23132 23133 23134 23135 23136 48 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23107 23108 23109 23110 23111 23112 23101 23102 23103 23104 23105 23106 23095 23096 23097 23098 23099 23100 23161 23162 23163 23164 23165 23166 48 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23149 23150 23151 23152 23153 23154 23143 23144 23145 23146 23147 23148 23137 23138 23139 23140 23141 23142 23191 23192 23193 23194 23195 23196 48 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23179 23180 23181 23182 23183 23184 23173 23174 23175 23176 23177 23178 23167 23168 23169 23170 23171 23172 23221 23222 23223 23224 23225 23226 36 23209 23210 23211 23212 23213 23214 23197 23198 23199 23200 23201 23202 23227 23228 23229 23230 23231 23232 23203 23204 23205 23206 23207 23208 23239 23240 23241 23242 23243 23244 23233 23234 23235 23236 23237 23238 48 15295 15296 15297 15298 15299 15300 23245 23246 23247 23248 23249 23250 23227 23228 23229 23230 23231 23232 23239 23240 23241 23242 23243 23244 23197 23198 23199 23200 23201 23202 23251 23252 23253 23254 23255 23256 13963 13964 13965 13966 13967 13968 18625 18626 18627 18628 18629 18630 48 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 21625 21626 21627 21628 21629 21630 23293 23294 23295 23296 23297 23298 48 8935 8936 8937 8938 8939 8940 23299 23300 23301 23302 23303 23304 23257 23258 23259 23260 23261 23262 23293 23294 23295 23296 23297 23298 21625 21626 21627 21628 21629 21630 21619 21620 21621 21622 21623 21624 7267 7268 7269 7270 7271 7272 19315 19316 19317 19318 19319 19320 48 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23269 23270 23271 23272 23273 23274 23263 23264 23265 23266 23267 23268 23257 23258 23259 23260 23261 23262 23329 23330 23331 23332 23333 23334 48 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23317 23318 23319 23320 23321 23322 23311 23312 23313 23314 23315 23316 23305 23306 23307 23308 23309 23310 23359 23360 23361 23362 23363 23364 48 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23347 23348 23349 23350 23351 23352 23341 23342 23343 23344 23345 23346 23335 23336 23337 23338 23339 23340 23389 23390 23391 23392 23393 23394 48 13915 13916 13917 13918 13919 13920 23395 23396 23397 23398 23399 23400 23365 23366 23367 23368 23369 23370 23389 23390 23391 23392 23393 23394 23335 23336 23337 23338 23339 23340 23401 23402 23403 23404 23405 23406 11989 11990 11991 11992 11993 11994 18757 18758 18759 18760 18761 18762 36 23377 23378 23379 23380 23381 23382 23365 23366 23367 23368 23369 23370 23407 23408 23409 23410 23411 23412 23371 23372 23373 23374 23375 23376 23419 23420 23421 23422 23423 23424 23413 23414 23415 23416 23417 23418 48 15265 15266 15267 15268 15269 15270 23425 23426 23427 23428 23429 23430 23407 23408 23409 23410 23411 23412 23419 23420 23421 23422 23423 23424 23365 23366 23367 23368 23369 23370 23395 23396 23397 23398 23399 23400 13915 13916 13917 13918 13919 13920 18619 18620 18621 18622 18623 18624 48 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 21649 21650 21651 21652 21653 21654 23467 23468 23469 23470 23471 23472 48 8923 8924 8925 8926 8927 8928 23473 23474 23475 23476 23477 23478 23431 23432 23433 23434 23435 23436 23467 23468 23469 23470 23471 23472 21649 21650 21651 21652 21653 21654 21643 21644 21645 21646 21647 21648 7255 7256 7257 7258 7259 7260 19321 19322 19323 19324 19325 19326 48 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23443 23444 23445 23446 23447 23448 23437 23438 23439 23440 23441 23442 23431 23432 23433 23434 23435 23436 23503 23504 23505 23506 23507 23508 48 19045 19046 19047 19048 19049 19050 23509 23510 23511 23512 23513 23514 23479 23480 23481 23482 23483 23484 23503 23504 23505 23506 23507 23508 23431 23432 23433 23434 23435 23436 23473 23474 23475 23476 23477 23478 8923 8924 8925 8926 8927 8928 19189 19190 19191 19192 19193 19194 48 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23491 23492 23493 23494 23495 23496 23485 23486 23487 23488 23489 23490 23479 23480 23481 23482 23483 23484 23539 23540 23541 23542 23543 23544 48 11977 11978 11979 11980 11981 11982 23545 23546 23547 23548 23549 23550 23515 23516 23517 23518 23519 23520 23539 23540 23541 23542 23543 23544 23479 23480 23481 23482 23483 23484 23509 23510 23511 23512 23513 23514 19045 19046 19047 19048 19049 19050 19057 19058 19059 19060 19061 19062 48 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23527 23528 23529 23530 23531 23532 23521 23522 23523 23524 23525 23526 23515 23516 23517 23518 23519 23520 23575 23576 23577 23578 23579 23580 48 13867 13868 13869 13870 13871 13872 23581 23582 23583 23584 23585 23586 23551 23552 23553 23554 23555 23556 23575 23576 23577 23578 23579 23580 23515 23516 23517 23518 23519 23520 23545 23546 23547 23548 23549 23550 11977 11978 11979 11980 11981 11982 18763 18764 18765 18766 18767 18768 36 23563 23564 23565 23566 23567 23568 23551 23552 23553 23554 23555 23556 23587 23588 23589 23590 23591 23592 23557 23558 23559 23560 23561 23562 23599 23600 23601 23602 23603 23604 23593 23594 23595 23596 23597 23598 48 15235 15236 15237 15238 15239 15240 23605 23606 23607 23608 23609 23610 23587 23588 23589 23590 23591 23592 23599 23600 23601 23602 23603 23604 23551 23552 23553 23554 23555 23556 23581 23582 23583 23584 23585 23586 13867 13868 13869 13870 13871 13872 18613 18614 18615 18616 18617 18618 48 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 22195 22196 22197 22198 22199 22200 23647 23648 23649 23650 23651 23652 48 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23623 23624 23625 23626 23627 23628 23617 23618 23619 23620 23621 23622 23611 23612 23613 23614 23615 23616 23677 23678 23679 23680 23681 23682 48 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23665 23666 23667 23668 23669 23670 23659 23660 23661 23662 23663 23664 23653 23654 23655 23656 23657 23658 23707 23708 23709 23710 23711 23712 48 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23695 23696 23697 23698 23699 23700 23689 23690 23691 23692 23693 23694 23683 23684 23685 23686 23687 23688 23737 23738 23739 23740 23741 23742 36 23725 23726 23727 23728 23729 23730 23713 23714 23715 23716 23717 23718 23743 23744 23745 23746 23747 23748 23719 23720 23721 23722 23723 23724 23755 23756 23757 23758 23759 23760 23749 23750 23751 23752 23753 23754 48 15205 15206 15207 15208 15209 15210 23761 23762 23763 23764 23765 23766 23743 23744 23745 23746 23747 23748 23755 23756 23757 23758 23759 23760 23713 23714 23715 23716 23717 23718 23767 23768 23769 23770 23771 23772 13819 13820 13821 13822 13823 13824 18607 18608 18609 18610 18611 18612 48 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 21673 21674 21675 21676 21677 21678 23809 23810 23811 23812 23813 23814 48 8815 8816 8817 8818 8819 8820 23815 23816 23817 23818 23819 23820 23773 23774 23775 23776 23777 23778 23809 23810 23811 23812 23813 23814 21673 21674 21675 21676 21677 21678 21667 21668 21669 21670 21671 21672 7147 7148 7149 7150 7151 7152 19303 19304 19305 19306 19307 19308 48 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23785 23786 23787 23788 23789 23790 23779 23780 23781 23782 23783 23784 23773 23774 23775 23776 23777 23778 23845 23846 23847 23848 23849 23850 48 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23833 23834 23835 23836 23837 23838 23827 23828 23829 23830 23831 23832 23821 23822 23823 23824 23825 23826 23875 23876 23877 23878 23879 23880 48 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23863 23864 23865 23866 23867 23868 23857 23858 23859 23860 23861 23862 23851 23852 23853 23854 23855 23856 23905 23906 23907 23908 23909 23910 48 13771 13772 13773 13774 13775 13776 23911 23912 23913 23914 23915 23916 23881 23882 23883 23884 23885 23886 23905 23906 23907 23908 23909 23910 23851 23852 23853 23854 23855 23856 23917 23918 23919 23920 23921 23922 11869 11870 11871 11872 11873 11874 18745 18746 18747 18748 18749 18750 36 23893 23894 23895 23896 23897 23898 23881 23882 23883 23884 23885 23886 23923 23924 23925 23926 23927 23928 23887 23888 23889 23890 23891 23892 23935 23936 23937 23938 23939 23940 23929 23930 23931 23932 23933 23934 48 15175 15176 15177 15178 15179 15180 23941 23942 23943 23944 23945 23946 23923 23924 23925 23926 23927 23928 23935 23936 23937 23938 23939 23940 23881 23882 23883 23884 23885 23886 23911 23912 23913 23914 23915 23916 13771 13772 13773 13774 13775 13776 18601 18602 18603 18604 18605 18606 48 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 21697 21698 21699 21700 21701 21702 23983 23984 23985 23986 23987 23988 48 8803 8804 8805 8806 8807 8808 23989 23990 23991 23992 23993 23994 23947 23948 23949 23950 23951 23952 23983 23984 23985 23986 23987 23988 21697 21698 21699 21700 21701 21702 21691 21692 21693 21694 21695 21696 7135 7136 7137 7138 7139 7140 19309 19310 19311 19312 19313 19314 48 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 23959 23960 23961 23962 23963 23964 23953 23954 23955 23956 23957 23958 23947 23948 23949 23950 23951 23952 24019 24020 24021 24022 24023 24024 48 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24007 24008 24009 24010 24011 24012 24001 24002 24003 24004 24005 24006 23995 23996 23997 23998 23999 24000 24049 24050 24051 24052 24053 24054 48 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24037 24038 24039 24040 24041 24042 24031 24032 24033 24034 24035 24036 24025 24026 24027 24028 24029 24030 24079 24080 24081 24082 24083 24084 48 13723 13724 13725 13726 13727 13728 24085 24086 24087 24088 24089 24090 24055 24056 24057 24058 24059 24060 24079 24080 24081 24082 24083 24084 24025 24026 24027 24028 24029 24030 24091 24092 24093 24094 24095 24096 11857 11858 11859 11860 11861 11862 18751 18752 18753 18754 18755 18756 36 24067 24068 24069 24070 24071 24072 24055 24056 24057 24058 24059 24060 24097 24098 24099 24100 24101 24102 24061 24062 24063 24064 24065 24066 24109 24110 24111 24112 24113 24114 24103 24104 24105 24106 24107 24108 48 15145 15146 15147 15148 15149 15150 24115 24116 24117 24118 24119 24120 24097 24098 24099 24100 24101 24102 24109 24110 24111 24112 24113 24114 24055 24056 24057 24058 24059 24060 24085 24086 24087 24088 24089 24090 13723 13724 13725 13726 13727 13728 18595 18596 18597 18598 18599 18600 48 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 22225 22226 22227 22228 22229 22230 24157 24158 24159 24160 24161 24162 48 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24133 24134 24135 24136 24137 24138 24127 24128 24129 24130 24131 24132 24121 24122 24123 24124 24125 24126 24187 24188 24189 24190 24191 24192 48 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24175 24176 24177 24178 24179 24180 24169 24170 24171 24172 24173 24174 24163 24164 24165 24166 24167 24168 24217 24218 24219 24220 24221 24222 48 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24205 24206 24207 24208 24209 24210 24199 24200 24201 24202 24203 24204 24193 24194 24195 24196 24197 24198 24247 24248 24249 24250 24251 24252 36 24235 24236 24237 24238 24239 24240 24223 24224 24225 24226 24227 24228 24253 24254 24255 24256 24257 24258 24229 24230 24231 24232 24233 24234 24265 24266 24267 24268 24269 24270 24259 24260 24261 24262 24263 24264 48 15115 15116 15117 15118 15119 15120 24271 24272 24273 24274 24275 24276 24253 24254 24255 24256 24257 24258 24265 24266 24267 24268 24269 24270 24223 24224 24225 24226 24227 24228 24277 24278 24279 24280 24281 24282 13675 13676 13677 13678 13679 13680 18589 18590 18591 18592 18593 18594 48 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 21721 21722 21723 21724 21725 21726 24319 24320 24321 24322 24323 24324 48 8695 8696 8697 8698 8699 8700 24325 24326 24327 24328 24329 24330 24283 24284 24285 24286 24287 24288 24319 24320 24321 24322 24323 24324 21721 21722 21723 21724 21725 21726 21715 21716 21717 21718 21719 21720 7027 7028 7029 7030 7031 7032 19291 19292 19293 19294 19295 19296 48 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24295 24296 24297 24298 24299 24300 24289 24290 24291 24292 24293 24294 24283 24284 24285 24286 24287 24288 24355 24356 24357 24358 24359 24360 48 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24343 24344 24345 24346 24347 24348 24337 24338 24339 24340 24341 24342 24331 24332 24333 24334 24335 24336 24385 24386 24387 24388 24389 24390 48 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24373 24374 24375 24376 24377 24378 24367 24368 24369 24370 24371 24372 24361 24362 24363 24364 24365 24366 24415 24416 24417 24418 24419 24420 48 13627 13628 13629 13630 13631 13632 24421 24422 24423 24424 24425 24426 24391 24392 24393 24394 24395 24396 24415 24416 24417 24418 24419 24420 24361 24362 24363 24364 24365 24366 24427 24428 24429 24430 24431 24432 11749 11750 11751 11752 11753 11754 18733 18734 18735 18736 18737 18738 36 24403 24404 24405 24406 24407 24408 24391 24392 24393 24394 24395 24396 24433 24434 24435 24436 24437 24438 24397 24398 24399 24400 24401 24402 24445 24446 24447 24448 24449 24450 24439 24440 24441 24442 24443 24444 48 15085 15086 15087 15088 15089 15090 24451 24452 24453 24454 24455 24456 24433 24434 24435 24436 24437 24438 24445 24446 24447 24448 24449 24450 24391 24392 24393 24394 24395 24396 24421 24422 24423 24424 24425 24426 13627 13628 13629 13630 13631 13632 18583 18584 18585 18586 18587 18588 48 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 21745 21746 21747 21748 21749 21750 24493 24494 24495 24496 24497 24498 48 8683 8684 8685 8686 8687 8688 24499 24500 24501 24502 24503 24504 24457 24458 24459 24460 24461 24462 24493 24494 24495 24496 24497 24498 21745 21746 21747 21748 21749 21750 21739 21740 21741 21742 21743 21744 7015 7016 7017 7018 7019 7020 19297 19298 19299 19300 19301 19302 48 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24469 24470 24471 24472 24473 24474 24463 24464 24465 24466 24467 24468 24457 24458 24459 24460 24461 24462 24529 24530 24531 24532 24533 24534 48 18985 18986 18987 18988 18989 18990 24535 24536 24537 24538 24539 24540 24505 24506 24507 24508 24509 24510 24529 24530 24531 24532 24533 24534 24457 24458 24459 24460 24461 24462 24499 24500 24501 24502 24503 24504 8683 8684 8685 8686 8687 8688 19165 19166 19167 19168 19169 19170 48 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24517 24518 24519 24520 24521 24522 24511 24512 24513 24514 24515 24516 24505 24506 24507 24508 24509 24510 24565 24566 24567 24568 24569 24570 48 11737 11738 11739 11740 11741 11742 24571 24572 24573 24574 24575 24576 24541 24542 24543 24544 24545 24546 24565 24566 24567 24568 24569 24570 24505 24506 24507 24508 24509 24510 24535 24536 24537 24538 24539 24540 18985 18986 18987 18988 18989 18990 18997 18998 18999 19000 19001 19002 48 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24553 24554 24555 24556 24557 24558 24547 24548 24549 24550 24551 24552 24541 24542 24543 24544 24545 24546 24601 24602 24603 24604 24605 24606 48 13579 13580 13581 13582 13583 13584 24607 24608 24609 24610 24611 24612 24577 24578 24579 24580 24581 24582 24601 24602 24603 24604 24605 24606 24541 24542 24543 24544 24545 24546 24571 24572 24573 24574 24575 24576 11737 11738 11739 11740 11741 11742 18739 18740 18741 18742 18743 18744 36 24589 24590 24591 24592 24593 24594 24577 24578 24579 24580 24581 24582 24613 24614 24615 24616 24617 24618 24583 24584 24585 24586 24587 24588 24625 24626 24627 24628 24629 24630 24619 24620 24621 24622 24623 24624 48 15055 15056 15057 15058 15059 15060 24631 24632 24633 24634 24635 24636 24613 24614 24615 24616 24617 24618 24625 24626 24627 24628 24629 24630 24577 24578 24579 24580 24581 24582 24607 24608 24609 24610 24611 24612 13579 13580 13581 13582 13583 13584 18577 18578 18579 18580 18581 18582 48 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 22255 22256 22257 22258 22259 22260 24673 24674 24675 24676 24677 24678 48 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24649 24650 24651 24652 24653 24654 24643 24644 24645 24646 24647 24648 24637 24638 24639 24640 24641 24642 24703 24704 24705 24706 24707 24708 48 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24691 24692 24693 24694 24695 24696 24685 24686 24687 24688 24689 24690 24679 24680 24681 24682 24683 24684 24733 24734 24735 24736 24737 24738 48 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24721 24722 24723 24724 24725 24726 24715 24716 24717 24718 24719 24720 24709 24710 24711 24712 24713 24714 24763 24764 24765 24766 24767 24768 36 24751 24752 24753 24754 24755 24756 24739 24740 24741 24742 24743 24744 24769 24770 24771 24772 24773 24774 24745 24746 24747 24748 24749 24750 24781 24782 24783 24784 24785 24786 24775 24776 24777 24778 24779 24780 48 15025 15026 15027 15028 15029 15030 24787 24788 24789 24790 24791 24792 24769 24770 24771 24772 24773 24774 24781 24782 24783 24784 24785 24786 24739 24740 24741 24742 24743 24744 24793 24794 24795 24796 24797 24798 13531 13532 13533 13534 13535 13536 18571 18572 18573 18574 18575 18576 48 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 21769 21770 21771 21772 21773 21774 24835 24836 24837 24838 24839 24840 48 8575 8576 8577 8578 8579 8580 24841 24842 24843 24844 24845 24846 24799 24800 24801 24802 24803 24804 24835 24836 24837 24838 24839 24840 21769 21770 21771 21772 21773 21774 21763 21764 21765 21766 21767 21768 6907 6908 6909 6910 6911 6912 19279 19280 19281 19282 19283 19284 48 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24811 24812 24813 24814 24815 24816 24805 24806 24807 24808 24809 24810 24799 24800 24801 24802 24803 24804 24871 24872 24873 24874 24875 24876 48 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24859 24860 24861 24862 24863 24864 24853 24854 24855 24856 24857 24858 24847 24848 24849 24850 24851 24852 24901 24902 24903 24904 24905 24906 48 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24889 24890 24891 24892 24893 24894 24883 24884 24885 24886 24887 24888 24877 24878 24879 24880 24881 24882 24931 24932 24933 24934 24935 24936 48 13483 13484 13485 13486 13487 13488 24937 24938 24939 24940 24941 24942 24907 24908 24909 24910 24911 24912 24931 24932 24933 24934 24935 24936 24877 24878 24879 24880 24881 24882 24943 24944 24945 24946 24947 24948 11629 11630 11631 11632 11633 11634 18721 18722 18723 18724 18725 18726 36 24919 24920 24921 24922 24923 24924 24907 24908 24909 24910 24911 24912 24949 24950 24951 24952 24953 24954 24913 24914 24915 24916 24917 24918 24961 24962 24963 24964 24965 24966 24955 24956 24957 24958 24959 24960 48 14995 14996 14997 14998 14999 15000 24967 24968 24969 24970 24971 24972 24949 24950 24951 24952 24953 24954 24961 24962 24963 24964 24965 24966 24907 24908 24909 24910 24911 24912 24937 24938 24939 24940 24941 24942 13483 13484 13485 13486 13487 13488 18565 18566 18567 18568 18569 18570 48 24973 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 21793 21794 21795 21796 21797 21798 25009 25010 25011 25012 25013 25014 48 8563 8564 8565 8566 8567 8568 25015 25016 25017 25018 25019 25020 24973 24974 24975 24976 24977 24978 25009 25010 25011 25012 25013 25014 21793 21794 21795 21796 21797 21798 21787 21788 21789 21790 21791 21792 6895 6896 6897 6898 6899 6900 19285 19286 19287 19288 19289 19290 48 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 24985 24986 24987 24988 24989 24990 24979 24980 24981 24982 24983 24984 24973 24974 24975 24976 24977 24978 25045 25046 25047 25048 25049 25050 48 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25033 25034 25035 25036 25037 25038 25027 25028 25029 25030 25031 25032 25021 25022 25023 25024 25025 25026 25075 25076 25077 25078 25079 25080 48 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25063 25064 25065 25066 25067 25068 25057 25058 25059 25060 25061 25062 25051 25052 25053 25054 25055 25056 25105 25106 25107 25108 25109 25110 48 13435 13436 13437 13438 13439 13440 25111 25112 25113 25114 25115 25116 25081 25082 25083 25084 25085 25086 25105 25106 25107 25108 25109 25110 25051 25052 25053 25054 25055 25056 25117 25118 25119 25120 25121 25122 11617 11618 11619 11620 11621 11622 18727 18728 18729 18730 18731 18732 36 25093 25094 25095 25096 25097 25098 25081 25082 25083 25084 25085 25086 25123 25124 25125 25126 25127 25128 25087 25088 25089 25090 25091 25092 25135 25136 25137 25138 25139 25140 25129 25130 25131 25132 25133 25134 48 14965 14966 14967 14968 14969 14970 25141 25142 25143 25144 25145 25146 25123 25124 25125 25126 25127 25128 25135 25136 25137 25138 25139 25140 25081 25082 25083 25084 25085 25086 25111 25112 25113 25114 25115 25116 13435 13436 13437 13438 13439 13440 18559 18560 18561 18562 18563 18564 48 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 22285 22286 22287 22288 22289 22290 25183 25184 25185 25186 25187 25188 48 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25159 25160 25161 25162 25163 25164 25153 25154 25155 25156 25157 25158 25147 25148 25149 25150 25151 25152 25213 25214 25215 25216 25217 25218 48 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25201 25202 25203 25204 25205 25206 25195 25196 25197 25198 25199 25200 25189 25190 25191 25192 25193 25194 25243 25244 25245 25246 25247 25248 48 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25231 25232 25233 25234 25235 25236 25225 25226 25227 25228 25229 25230 25219 25220 25221 25222 25223 25224 25273 25274 25275 25276 25277 25278 36 25261 25262 25263 25264 25265 25266 25249 25250 25251 25252 25253 25254 25279 25280 25281 25282 25283 25284 25255 25256 25257 25258 25259 25260 25291 25292 25293 25294 25295 25296 25285 25286 25287 25288 25289 25290 48 14935 14936 14937 14938 14939 14940 25297 25298 25299 25300 25301 25302 25279 25280 25281 25282 25283 25284 25291 25292 25293 25294 25295 25296 25249 25250 25251 25252 25253 25254 25303 25304 25305 25306 25307 25308 13387 13388 13389 13390 13391 13392 18553 18554 18555 18556 18557 18558 48 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 21817 21818 21819 21820 21821 21822 25345 25346 25347 25348 25349 25350 48 8455 8456 8457 8458 8459 8460 25351 25352 25353 25354 25355 25356 25309 25310 25311 25312 25313 25314 25345 25346 25347 25348 25349 25350 21817 21818 21819 21820 21821 21822 21811 21812 21813 21814 21815 21816 6787 6788 6789 6790 6791 6792 19267 19268 19269 19270 19271 19272 48 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25321 25322 25323 25324 25325 25326 25315 25316 25317 25318 25319 25320 25309 25310 25311 25312 25313 25314 25381 25382 25383 25384 25385 25386 48 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25369 25370 25371 25372 25373 25374 25363 25364 25365 25366 25367 25368 25357 25358 25359 25360 25361 25362 25411 25412 25413 25414 25415 25416 48 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25399 25400 25401 25402 25403 25404 25393 25394 25395 25396 25397 25398 25387 25388 25389 25390 25391 25392 25441 25442 25443 25444 25445 25446 48 13339 13340 13341 13342 13343 13344 25447 25448 25449 25450 25451 25452 25417 25418 25419 25420 25421 25422 25441 25442 25443 25444 25445 25446 25387 25388 25389 25390 25391 25392 25453 25454 25455 25456 25457 25458 11509 11510 11511 11512 11513 11514 18709 18710 18711 18712 18713 18714 36 25429 25430 25431 25432 25433 25434 25417 25418 25419 25420 25421 25422 25459 25460 25461 25462 25463 25464 25423 25424 25425 25426 25427 25428 25471 25472 25473 25474 25475 25476 25465 25466 25467 25468 25469 25470 48 14905 14906 14907 14908 14909 14910 25477 25478 25479 25480 25481 25482 25459 25460 25461 25462 25463 25464 25471 25472 25473 25474 25475 25476 25417 25418 25419 25420 25421 25422 25447 25448 25449 25450 25451 25452 13339 13340 13341 13342 13343 13344 18547 18548 18549 18550 18551 18552 48 25483 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 21841 21842 21843 21844 21845 21846 25519 25520 25521 25522 25523 25524 48 8443 8444 8445 8446 8447 8448 25525 25526 25527 25528 25529 25530 25483 25484 25485 25486 25487 25488 25519 25520 25521 25522 25523 25524 21841 21842 21843 21844 21845 21846 21835 21836 21837 21838 21839 21840 6775 6776 6777 6778 6779 6780 19273 19274 19275 19276 19277 19278 48 25531 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25495 25496 25497 25498 25499 25500 25489 25490 25491 25492 25493 25494 25483 25484 25485 25486 25487 25488 25555 25556 25557 25558 25559 25560 48 18925 18926 18927 18928 18929 18930 25561 25562 25563 25564 25565 25566 25531 25532 25533 25534 25535 25536 25555 25556 25557 25558 25559 25560 25483 25484 25485 25486 25487 25488 25525 25526 25527 25528 25529 25530 8443 8444 8445 8446 8447 8448 19141 19142 19143 19144 19145 19146 48 25567 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25543 25544 25545 25546 25547 25548 25537 25538 25539 25540 25541 25542 25531 25532 25533 25534 25535 25536 25591 25592 25593 25594 25595 25596 48 11497 11498 11499 11500 11501 11502 25597 25598 25599 25600 25601 25602 25567 25568 25569 25570 25571 25572 25591 25592 25593 25594 25595 25596 25531 25532 25533 25534 25535 25536 25561 25562 25563 25564 25565 25566 18925 18926 18927 18928 18929 18930 18937 18938 18939 18940 18941 18942 48 25603 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25579 25580 25581 25582 25583 25584 25573 25574 25575 25576 25577 25578 25567 25568 25569 25570 25571 25572 25627 25628 25629 25630 25631 25632 48 13291 13292 13293 13294 13295 13296 25633 25634 25635 25636 25637 25638 25603 25604 25605 25606 25607 25608 25627 25628 25629 25630 25631 25632 25567 25568 25569 25570 25571 25572 25597 25598 25599 25600 25601 25602 11497 11498 11499 11500 11501 11502 18715 18716 18717 18718 18719 18720 36 25615 25616 25617 25618 25619 25620 25603 25604 25605 25606 25607 25608 25639 25640 25641 25642 25643 25644 25609 25610 25611 25612 25613 25614 25651 25652 25653 25654 25655 25656 25645 25646 25647 25648 25649 25650 48 14875 14876 14877 14878 14879 14880 25657 25658 25659 25660 25661 25662 25639 25640 25641 25642 25643 25644 25651 25652 25653 25654 25655 25656 25603 25604 25605 25606 25607 25608 25633 25634 25635 25636 25637 25638 13291 13292 13293 13294 13295 13296 18541 18542 18543 18544 18545 18546 48 25663 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 22315 22316 22317 22318 22319 22320 25699 25700 25701 25702 25703 25704 48 25705 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25675 25676 25677 25678 25679 25680 25669 25670 25671 25672 25673 25674 25663 25664 25665 25666 25667 25668 25729 25730 25731 25732 25733 25734 48 25735 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25717 25718 25719 25720 25721 25722 25711 25712 25713 25714 25715 25716 25705 25706 25707 25708 25709 25710 25759 25760 25761 25762 25763 25764 48 25765 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25747 25748 25749 25750 25751 25752 25741 25742 25743 25744 25745 25746 25735 25736 25737 25738 25739 25740 25789 25790 25791 25792 25793 25794 36 25777 25778 25779 25780 25781 25782 25765 25766 25767 25768 25769 25770 25795 25796 25797 25798 25799 25800 25771 25772 25773 25774 25775 25776 25807 25808 25809 25810 25811 25812 25801 25802 25803 25804 25805 25806 48 14845 14846 14847 14848 14849 14850 25813 25814 25815 25816 25817 25818 25795 25796 25797 25798 25799 25800 25807 25808 25809 25810 25811 25812 25765 25766 25767 25768 25769 25770 25819 25820 25821 25822 25823 25824 13243 13244 13245 13246 13247 13248 18535 18536 18537 18538 18539 18540 48 25825 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 21865 21866 21867 21868 21869 21870 25861 25862 25863 25864 25865 25866 48 8335 8336 8337 8338 8339 8340 25867 25868 25869 25870 25871 25872 25825 25826 25827 25828 25829 25830 25861 25862 25863 25864 25865 25866 21865 21866 21867 21868 21869 21870 21859 21860 21861 21862 21863 21864 6667 6668 6669 6670 6671 6672 19255 19256 19257 19258 19259 19260 48 25873 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25837 25838 25839 25840 25841 25842 25831 25832 25833 25834 25835 25836 25825 25826 25827 25828 25829 25830 25897 25898 25899 25900 25901 25902 48 25903 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25885 25886 25887 25888 25889 25890 25879 25880 25881 25882 25883 25884 25873 25874 25875 25876 25877 25878 25927 25928 25929 25930 25931 25932 48 25933 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25915 25916 25917 25918 25919 25920 25909 25910 25911 25912 25913 25914 25903 25904 25905 25906 25907 25908 25957 25958 25959 25960 25961 25962 48 13195 13196 13197 13198 13199 13200 25963 25964 25965 25966 25967 25968 25933 25934 25935 25936 25937 25938 25957 25958 25959 25960 25961 25962 25903 25904 25905 25906 25907 25908 25969 25970 25971 25972 25973 25974 11389 11390 11391 11392 11393 11394 18697 18698 18699 18700 18701 18702 36 25945 25946 25947 25948 25949 25950 25933 25934 25935 25936 25937 25938 25975 25976 25977 25978 25979 25980 25939 25940 25941 25942 25943 25944 25987 25988 25989 25990 25991 25992 25981 25982 25983 25984 25985 25986 48 14815 14816 14817 14818 14819 14820 25993 25994 25995 25996 25997 25998 25975 25976 25977 25978 25979 25980 25987 25988 25989 25990 25991 25992 25933 25934 25935 25936 25937 25938 25963 25964 25965 25966 25967 25968 13195 13196 13197 13198 13199 13200 18529 18530 18531 18532 18533 18534 48 25999 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 21889 21890 21891 21892 21893 21894 26035 26036 26037 26038 26039 26040 48 8323 8324 8325 8326 8327 8328 26041 26042 26043 26044 26045 26046 25999 26000 26001 26002 26003 26004 26035 26036 26037 26038 26039 26040 21889 21890 21891 21892 21893 21894 21883 21884 21885 21886 21887 21888 6655 6656 6657 6658 6659 6660 19261 19262 19263 19264 19265 19266 48 26047 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26011 26012 26013 26014 26015 26016 26005 26006 26007 26008 26009 26010 25999 26000 26001 26002 26003 26004 26071 26072 26073 26074 26075 26076 48 26077 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26059 26060 26061 26062 26063 26064 26053 26054 26055 26056 26057 26058 26047 26048 26049 26050 26051 26052 26101 26102 26103 26104 26105 26106 48 26107 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26089 26090 26091 26092 26093 26094 26083 26084 26085 26086 26087 26088 26077 26078 26079 26080 26081 26082 26131 26132 26133 26134 26135 26136 48 13147 13148 13149 13150 13151 13152 26137 26138 26139 26140 26141 26142 26107 26108 26109 26110 26111 26112 26131 26132 26133 26134 26135 26136 26077 26078 26079 26080 26081 26082 26143 26144 26145 26146 26147 26148 11377 11378 11379 11380 11381 11382 18703 18704 18705 18706 18707 18708 36 26119 26120 26121 26122 26123 26124 26107 26108 26109 26110 26111 26112 26149 26150 26151 26152 26153 26154 26113 26114 26115 26116 26117 26118 26161 26162 26163 26164 26165 26166 26155 26156 26157 26158 26159 26160 48 14785 14786 14787 14788 14789 14790 26167 26168 26169 26170 26171 26172 26149 26150 26151 26152 26153 26154 26161 26162 26163 26164 26165 26166 26107 26108 26109 26110 26111 26112 26137 26138 26139 26140 26141 26142 13147 13148 13149 13150 13151 13152 18523 18524 18525 18526 18527 18528 48 26173 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 22345 22346 22347 22348 22349 22350 26209 26210 26211 26212 26213 26214 48 26215 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26185 26186 26187 26188 26189 26190 26179 26180 26181 26182 26183 26184 26173 26174 26175 26176 26177 26178 26239 26240 26241 26242 26243 26244 48 26245 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26227 26228 26229 26230 26231 26232 26221 26222 26223 26224 26225 26226 26215 26216 26217 26218 26219 26220 26269 26270 26271 26272 26273 26274 48 26275 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26257 26258 26259 26260 26261 26262 26251 26252 26253 26254 26255 26256 26245 26246 26247 26248 26249 26250 26299 26300 26301 26302 26303 26304 36 26287 26288 26289 26290 26291 26292 26275 26276 26277 26278 26279 26280 26305 26306 26307 26308 26309 26310 26281 26282 26283 26284 26285 26286 26317 26318 26319 26320 26321 26322 26311 26312 26313 26314 26315 26316 48 14755 14756 14757 14758 14759 14760 26323 26324 26325 26326 26327 26328 26305 26306 26307 26308 26309 26310 26317 26318 26319 26320 26321 26322 26275 26276 26277 26278 26279 26280 26329 26330 26331 26332 26333 26334 13099 13100 13101 13102 13103 13104 18517 18518 18519 18520 18521 18522 48 26335 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 21913 21914 21915 21916 21917 21918 26371 26372 26373 26374 26375 26376 48 8215 8216 8217 8218 8219 8220 26377 26378 26379 26380 26381 26382 26335 26336 26337 26338 26339 26340 26371 26372 26373 26374 26375 26376 21913 21914 21915 21916 21917 21918 21907 21908 21909 21910 21911 21912 6547 6548 6549 6550 6551 6552 19243 19244 19245 19246 19247 19248 48 26383 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26347 26348 26349 26350 26351 26352 26341 26342 26343 26344 26345 26346 26335 26336 26337 26338 26339 26340 26407 26408 26409 26410 26411 26412 48 26413 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26395 26396 26397 26398 26399 26400 26389 26390 26391 26392 26393 26394 26383 26384 26385 26386 26387 26388 26437 26438 26439 26440 26441 26442 48 26443 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26425 26426 26427 26428 26429 26430 26419 26420 26421 26422 26423 26424 26413 26414 26415 26416 26417 26418 26467 26468 26469 26470 26471 26472 48 13051 13052 13053 13054 13055 13056 26473 26474 26475 26476 26477 26478 26443 26444 26445 26446 26447 26448 26467 26468 26469 26470 26471 26472 26413 26414 26415 26416 26417 26418 26479 26480 26481 26482 26483 26484 11269 11270 11271 11272 11273 11274 18685 18686 18687 18688 18689 18690 36 26455 26456 26457 26458 26459 26460 26443 26444 26445 26446 26447 26448 26485 26486 26487 26488 26489 26490 26449 26450 26451 26452 26453 26454 26497 26498 26499 26500 26501 26502 26491 26492 26493 26494 26495 26496 48 14725 14726 14727 14728 14729 14730 26503 26504 26505 26506 26507 26508 26485 26486 26487 26488 26489 26490 26497 26498 26499 26500 26501 26502 26443 26444 26445 26446 26447 26448 26473 26474 26475 26476 26477 26478 13051 13052 13053 13054 13055 13056 18511 18512 18513 18514 18515 18516 48 26509 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 21937 21938 21939 21940 21941 21942 26545 26546 26547 26548 26549 26550 48 8203 8204 8205 8206 8207 8208 26551 26552 26553 26554 26555 26556 26509 26510 26511 26512 26513 26514 26545 26546 26547 26548 26549 26550 21937 21938 21939 21940 21941 21942 21931 21932 21933 21934 21935 21936 6535 6536 6537 6538 6539 6540 19249 19250 19251 19252 19253 19254 48 26557 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26521 26522 26523 26524 26525 26526 26515 26516 26517 26518 26519 26520 26509 26510 26511 26512 26513 26514 26581 26582 26583 26584 26585 26586 48 18865 18866 18867 18868 18869 18870 26587 26588 26589 26590 26591 26592 26557 26558 26559 26560 26561 26562 26581 26582 26583 26584 26585 26586 26509 26510 26511 26512 26513 26514 26551 26552 26553 26554 26555 26556 8203 8204 8205 8206 8207 8208 19117 19118 19119 19120 19121 19122 48 26593 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26569 26570 26571 26572 26573 26574 26563 26564 26565 26566 26567 26568 26557 26558 26559 26560 26561 26562 26617 26618 26619 26620 26621 26622 48 11257 11258 11259 11260 11261 11262 26623 26624 26625 26626 26627 26628 26593 26594 26595 26596 26597 26598 26617 26618 26619 26620 26621 26622 26557 26558 26559 26560 26561 26562 26587 26588 26589 26590 26591 26592 18865 18866 18867 18868 18869 18870 18877 18878 18879 18880 18881 18882 48 26629 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26605 26606 26607 26608 26609 26610 26599 26600 26601 26602 26603 26604 26593 26594 26595 26596 26597 26598 26653 26654 26655 26656 26657 26658 48 13003 13004 13005 13006 13007 13008 26659 26660 26661 26662 26663 26664 26629 26630 26631 26632 26633 26634 26653 26654 26655 26656 26657 26658 26593 26594 26595 26596 26597 26598 26623 26624 26625 26626 26627 26628 11257 11258 11259 11260 11261 11262 18691 18692 18693 18694 18695 18696 36 26641 26642 26643 26644 26645 26646 26629 26630 26631 26632 26633 26634 26665 26666 26667 26668 26669 26670 26635 26636 26637 26638 26639 26640 26677 26678 26679 26680 26681 26682 26671 26672 26673 26674 26675 26676 48 14695 14696 14697 14698 14699 14700 26683 26684 26685 26686 26687 26688 26665 26666 26667 26668 26669 26670 26677 26678 26679 26680 26681 26682 26629 26630 26631 26632 26633 26634 26659 26660 26661 26662 26663 26664 13003 13004 13005 13006 13007 13008 18505 18506 18507 18508 18509 18510 48 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 22375 22376 22377 22378 22379 22380 26725 26726 26727 26728 26729 26730 48 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26701 26702 26703 26704 26705 26706 26695 26696 26697 26698 26699 26700 26689 26690 26691 26692 26693 26694 26755 26756 26757 26758 26759 26760 48 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26743 26744 26745 26746 26747 26748 26737 26738 26739 26740 26741 26742 26731 26732 26733 26734 26735 26736 26785 26786 26787 26788 26789 26790 48 26791 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26773 26774 26775 26776 26777 26778 26767 26768 26769 26770 26771 26772 26761 26762 26763 26764 26765 26766 26815 26816 26817 26818 26819 26820 36 26803 26804 26805 26806 26807 26808 26791 26792 26793 26794 26795 26796 26821 26822 26823 26824 26825 26826 26797 26798 26799 26800 26801 26802 26833 26834 26835 26836 26837 26838 26827 26828 26829 26830 26831 26832 48 14665 14666 14667 14668 14669 14670 26839 26840 26841 26842 26843 26844 26821 26822 26823 26824 26825 26826 26833 26834 26835 26836 26837 26838 26791 26792 26793 26794 26795 26796 26845 26846 26847 26848 26849 26850 12955 12956 12957 12958 12959 12960 18499 18500 18501 18502 18503 18504 48 26851 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 21961 21962 21963 21964 21965 21966 26887 26888 26889 26890 26891 26892 48 8095 8096 8097 8098 8099 8100 26893 26894 26895 26896 26897 26898 26851 26852 26853 26854 26855 26856 26887 26888 26889 26890 26891 26892 21961 21962 21963 21964 21965 21966 21955 21956 21957 21958 21959 21960 6427 6428 6429 6430 6431 6432 19231 19232 19233 19234 19235 19236 48 26899 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26863 26864 26865 26866 26867 26868 26857 26858 26859 26860 26861 26862 26851 26852 26853 26854 26855 26856 26923 26924 26925 26926 26927 26928 48 26929 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26911 26912 26913 26914 26915 26916 26905 26906 26907 26908 26909 26910 26899 26900 26901 26902 26903 26904 26953 26954 26955 26956 26957 26958 48 26959 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26941 26942 26943 26944 26945 26946 26935 26936 26937 26938 26939 26940 26929 26930 26931 26932 26933 26934 26983 26984 26985 26986 26987 26988 48 12907 12908 12909 12910 12911 12912 26989 26990 26991 26992 26993 26994 26959 26960 26961 26962 26963 26964 26983 26984 26985 26986 26987 26988 26929 26930 26931 26932 26933 26934 26995 26996 26997 26998 26999 27000 11149 11150 11151 11152 11153 11154 18673 18674 18675 18676 18677 18678 36 26971 26972 26973 26974 26975 26976 26959 26960 26961 26962 26963 26964 27001 27002 27003 27004 27005 27006 26965 26966 26967 26968 26969 26970 27013 27014 27015 27016 27017 27018 27007 27008 27009 27010 27011 27012 48 14635 14636 14637 14638 14639 14640 27019 27020 27021 27022 27023 27024 27001 27002 27003 27004 27005 27006 27013 27014 27015 27016 27017 27018 26959 26960 26961 26962 26963 26964 26989 26990 26991 26992 26993 26994 12907 12908 12909 12910 12911 12912 18493 18494 18495 18496 18497 18498 48 27025 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 21985 21986 21987 21988 21989 21990 27061 27062 27063 27064 27065 27066 48 8083 8084 8085 8086 8087 8088 27067 27068 27069 27070 27071 27072 27025 27026 27027 27028 27029 27030 27061 27062 27063 27064 27065 27066 21985 21986 21987 21988 21989 21990 21979 21980 21981 21982 21983 21984 6415 6416 6417 6418 6419 6420 19237 19238 19239 19240 19241 19242 48 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27037 27038 27039 27040 27041 27042 27031 27032 27033 27034 27035 27036 27025 27026 27027 27028 27029 27030 27097 27098 27099 27100 27101 27102 48 27103 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27085 27086 27087 27088 27089 27090 27079 27080 27081 27082 27083 27084 27073 27074 27075 27076 27077 27078 27127 27128 27129 27130 27131 27132 48 27133 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27115 27116 27117 27118 27119 27120 27109 27110 27111 27112 27113 27114 27103 27104 27105 27106 27107 27108 27157 27158 27159 27160 27161 27162 48 12859 12860 12861 12862 12863 12864 27163 27164 27165 27166 27167 27168 27133 27134 27135 27136 27137 27138 27157 27158 27159 27160 27161 27162 27103 27104 27105 27106 27107 27108 27169 27170 27171 27172 27173 27174 11137 11138 11139 11140 11141 11142 18679 18680 18681 18682 18683 18684 36 27145 27146 27147 27148 27149 27150 27133 27134 27135 27136 27137 27138 27175 27176 27177 27178 27179 27180 27139 27140 27141 27142 27143 27144 27187 27188 27189 27190 27191 27192 27181 27182 27183 27184 27185 27186 48 14605 14606 14607 14608 14609 14610 27193 27194 27195 27196 27197 27198 27175 27176 27177 27178 27179 27180 27187 27188 27189 27190 27191 27192 27133 27134 27135 27136 27137 27138 27163 27164 27165 27166 27167 27168 12859 12860 12861 12862 12863 12864 18487 18488 18489 18490 18491 18492 48 27199 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 22405 22406 22407 22408 22409 22410 27235 27236 27237 27238 27239 27240 48 27241 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27211 27212 27213 27214 27215 27216 27205 27206 27207 27208 27209 27210 27199 27200 27201 27202 27203 27204 27265 27266 27267 27268 27269 27270 48 27271 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27253 27254 27255 27256 27257 27258 27247 27248 27249 27250 27251 27252 27241 27242 27243 27244 27245 27246 27295 27296 27297 27298 27299 27300 48 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27283 27284 27285 27286 27287 27288 27277 27278 27279 27280 27281 27282 27271 27272 27273 27274 27275 27276 27325 27326 27327 27328 27329 27330 36 27313 27314 27315 27316 27317 27318 27301 27302 27303 27304 27305 27306 27331 27332 27333 27334 27335 27336 27307 27308 27309 27310 27311 27312 27343 27344 27345 27346 27347 27348 27337 27338 27339 27340 27341 27342 48 14575 14576 14577 14578 14579 14580 27349 27350 27351 27352 27353 27354 27331 27332 27333 27334 27335 27336 27343 27344 27345 27346 27347 27348 27301 27302 27303 27304 27305 27306 27355 27356 27357 27358 27359 27360 12811 12812 12813 12814 12815 12816 18481 18482 18483 18484 18485 18486 48 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 22009 22010 22011 22012 22013 22014 27397 27398 27399 27400 27401 27402 48 7975 7976 7977 7978 7979 7980 27403 27404 27405 27406 27407 27408 27361 27362 27363 27364 27365 27366 27397 27398 27399 27400 27401 27402 22009 22010 22011 22012 22013 22014 22003 22004 22005 22006 22007 22008 6307 6308 6309 6310 6311 6312 19219 19220 19221 19222 19223 19224 48 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27373 27374 27375 27376 27377 27378 27367 27368 27369 27370 27371 27372 27361 27362 27363 27364 27365 27366 27433 27434 27435 27436 27437 27438 48 9613 9614 9615 9616 9617 9618 27439 27440 27441 27442 27443 27444 27409 27410 27411 27412 27413 27414 27433 27434 27435 27436 27437 27438 27361 27362 27363 27364 27365 27366 27403 27404 27405 27406 27407 27408 7975 7976 7977 7978 7979 7980 19087 19088 19089 19090 19091 19092 48 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27421 27422 27423 27424 27425 27426 27415 27416 27417 27418 27419 27420 27409 27410 27411 27412 27413 27414 27469 27470 27471 27472 27473 27474 48 11029 11030 11031 11032 11033 11034 27475 27476 27477 27478 27479 27480 27445 27446 27447 27448 27449 27450 27469 27470 27471 27472 27473 27474 27409 27410 27411 27412 27413 27414 27439 27440 27441 27442 27443 27444 9613 9614 9615 9616 9617 9618 18811 18812 18813 18814 18815 18816 48 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27457 27458 27459 27460 27461 27462 27451 27452 27453 27454 27455 27456 27445 27446 27447 27448 27449 27450 27505 27506 27507 27508 27509 27510 48 12763 12764 12765 12766 12767 12768 27511 27512 27513 27514 27515 27516 27481 27482 27483 27484 27485 27486 27505 27506 27507 27508 27509 27510 27445 27446 27447 27448 27449 27450 27475 27476 27477 27478 27479 27480 11029 11030 11031 11032 11033 11034 18661 18662 18663 18664 18665 18666 36 27493 27494 27495 27496 27497 27498 27481 27482 27483 27484 27485 27486 27517 27518 27519 27520 27521 27522 27487 27488 27489 27490 27491 27492 27529 27530 27531 27532 27533 27534 27523 27524 27525 27526 27527 27528 48 14545 14546 14547 14548 14549 14550 27535 27536 27537 27538 27539 27540 27517 27518 27519 27520 27521 27522 27529 27530 27531 27532 27533 27534 27481 27482 27483 27484 27485 27486 27511 27512 27513 27514 27515 27516 12763 12764 12765 12766 12767 12768 18475 18476 18477 18478 18479 18480 48 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 22033 22034 22035 22036 22037 22038 27577 27578 27579 27580 27581 27582 48 7963 7964 7965 7966 7967 7968 27583 27584 27585 27586 27587 27588 27541 27542 27543 27544 27545 27546 27577 27578 27579 27580 27581 27582 22033 22034 22035 22036 22037 22038 22027 22028 22029 22030 22031 22032 6295 6296 6297 6298 6299 6300 19225 19226 19227 19228 19229 19230 48 27589 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27553 27554 27555 27556 27557 27558 27547 27548 27549 27550 27551 27552 27541 27542 27543 27544 27545 27546 27613 27614 27615 27616 27617 27618 48 9601 9602 9603 9604 9605 9606 27619 27620 27621 27622 27623 27624 27589 27590 27591 27592 27593 27594 27613 27614 27615 27616 27617 27618 27541 27542 27543 27544 27545 27546 27583 27584 27585 27586 27587 27588 7963 7964 7965 7966 7967 7968 19093 19094 19095 19096 19097 19098 48 27625 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27601 27602 27603 27604 27605 27606 27595 27596 27597 27598 27599 27600 27589 27590 27591 27592 27593 27594 27649 27650 27651 27652 27653 27654 48 11017 11018 11019 11020 11021 11022 27655 27656 27657 27658 27659 27660 27625 27626 27627 27628 27629 27630 27649 27650 27651 27652 27653 27654 27589 27590 27591 27592 27593 27594 27619 27620 27621 27622 27623 27624 9601 9602 9603 9604 9605 9606 18817 18818 18819 18820 18821 18822 48 27661 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27637 27638 27639 27640 27641 27642 27631 27632 27633 27634 27635 27636 27625 27626 27627 27628 27629 27630 27685 27686 27687 27688 27689 27690 48 12715 12716 12717 12718 12719 12720 27691 27692 27693 27694 27695 27696 27661 27662 27663 27664 27665 27666 27685 27686 27687 27688 27689 27690 27625 27626 27627 27628 27629 27630 27655 27656 27657 27658 27659 27660 11017 11018 11019 11020 11021 11022 18667 18668 18669 18670 18671 18672 36 27673 27674 27675 27676 27677 27678 27661 27662 27663 27664 27665 27666 27697 27698 27699 27700 27701 27702 27667 27668 27669 27670 27671 27672 27709 27710 27711 27712 27713 27714 27703 27704 27705 27706 27707 27708 48 14515 14516 14517 14518 14519 14520 27715 27716 27717 27718 27719 27720 27697 27698 27699 27700 27701 27702 27709 27710 27711 27712 27713 27714 27661 27662 27663 27664 27665 27666 27691 27692 27693 27694 27695 27696 12715 12716 12717 12718 12719 12720 18469 18470 18471 18472 18473 18474 48 27721 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 22435 22436 22437 22438 22439 22440 27757 27758 27759 27760 27761 27762 48 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27733 27734 27735 27736 27737 27738 27727 27728 27729 27730 27731 27732 27721 27722 27723 27724 27725 27726 27787 27788 27789 27790 27791 27792 48 27793 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27775 27776 27777 27778 27779 27780 27769 27770 27771 27772 27773 27774 27763 27764 27765 27766 27767 27768 27817 27818 27819 27820 27821 27822 48 27823 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27805 27806 27807 27808 27809 27810 27799 27800 27801 27802 27803 27804 27793 27794 27795 27796 27797 27798 27847 27848 27849 27850 27851 27852 36 27835 27836 27837 27838 27839 27840 27823 27824 27825 27826 27827 27828 27853 27854 27855 27856 27857 27858 27829 27830 27831 27832 27833 27834 27865 27866 27867 27868 27869 27870 27859 27860 27861 27862 27863 27864 48 14485 14486 14487 14488 14489 14490 27871 27872 27873 27874 27875 27876 27853 27854 27855 27856 27857 27858 27865 27866 27867 27868 27869 27870 27823 27824 27825 27826 27827 27828 27877 27878 27879 27880 27881 27882 12667 12668 12669 12670 12671 12672 18463 18464 18465 18466 18467 18468 48 27883 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 22057 22058 22059 22060 22061 22062 27919 27920 27921 27922 27923 27924 48 7855 7856 7857 7858 7859 7860 27925 27926 27927 27928 27929 27930 27883 27884 27885 27886 27887 27888 27919 27920 27921 27922 27923 27924 22057 22058 22059 22060 22061 22062 22051 22052 22053 22054 22055 22056 6187 6188 6189 6190 6191 6192 19207 19208 19209 19210 19211 19212 48 27931 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27895 27896 27897 27898 27899 27900 27889 27890 27891 27892 27893 27894 27883 27884 27885 27886 27887 27888 27955 27956 27957 27958 27959 27960 48 27961 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27943 27944 27945 27946 27947 27948 27937 27938 27939 27940 27941 27942 27931 27932 27933 27934 27935 27936 27985 27986 27987 27988 27989 27990 48 27991 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 27973 27974 27975 27976 27977 27978 27967 27968 27969 27970 27971 27972 27961 27962 27963 27964 27965 27966 28015 28016 28017 28018 28019 28020 48 12619 12620 12621 12622 12623 12624 28021 28022 28023 28024 28025 28026 27991 27992 27993 27994 27995 27996 28015 28016 28017 28018 28019 28020 27961 27962 27963 27964 27965 27966 28027 28028 28029 28030 28031 28032 10909 10910 10911 10912 10913 10914 18649 18650 18651 18652 18653 18654 36 28003 28004 28005 28006 28007 28008 27991 27992 27993 27994 27995 27996 28033 28034 28035 28036 28037 28038 27997 27998 27999 28000 28001 28002 28045 28046 28047 28048 28049 28050 28039 28040 28041 28042 28043 28044 48 14455 14456 14457 14458 14459 14460 28051 28052 28053 28054 28055 28056 28033 28034 28035 28036 28037 28038 28045 28046 28047 28048 28049 28050 27991 27992 27993 27994 27995 27996 28021 28022 28023 28024 28025 28026 12619 12620 12621 12622 12623 12624 18457 18458 18459 18460 18461 18462 48 28057 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 22081 22082 22083 22084 22085 22086 28093 28094 28095 28096 28097 28098 48 7843 7844 7845 7846 7847 7848 28099 28100 28101 28102 28103 28104 28057 28058 28059 28060 28061 28062 28093 28094 28095 28096 28097 28098 22081 22082 22083 22084 22085 22086 22075 22076 22077 22078 22079 22080 6175 6176 6177 6178 6179 6180 19213 19214 19215 19216 19217 19218 48 28105 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28069 28070 28071 28072 28073 28074 28063 28064 28065 28066 28067 28068 28057 28058 28059 28060 28061 28062 28129 28130 28131 28132 28133 28134 48 28135 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28117 28118 28119 28120 28121 28122 28111 28112 28113 28114 28115 28116 28105 28106 28107 28108 28109 28110 28159 28160 28161 28162 28163 28164 48 28165 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28147 28148 28149 28150 28151 28152 28141 28142 28143 28144 28145 28146 28135 28136 28137 28138 28139 28140 28189 28190 28191 28192 28193 28194 48 12571 12572 12573 12574 12575 12576 28195 28196 28197 28198 28199 28200 28165 28166 28167 28168 28169 28170 28189 28190 28191 28192 28193 28194 28135 28136 28137 28138 28139 28140 28201 28202 28203 28204 28205 28206 10897 10898 10899 10900 10901 10902 18655 18656 18657 18658 18659 18660 36 28177 28178 28179 28180 28181 28182 28165 28166 28167 28168 28169 28170 28207 28208 28209 28210 28211 28212 28171 28172 28173 28174 28175 28176 28219 28220 28221 28222 28223 28224 28213 28214 28215 28216 28217 28218 48 14425 14426 14427 14428 14429 14430 28225 28226 28227 28228 28229 28230 28207 28208 28209 28210 28211 28212 28219 28220 28221 28222 28223 28224 28165 28166 28167 28168 28169 28170 28195 28196 28197 28198 28199 28200 12571 12572 12573 12574 12575 12576 18451 18452 18453 18454 18455 18456 48 28231 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 22465 22466 22467 22468 22469 22470 28267 28268 28269 28270 28271 28272 48 28273 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28243 28244 28245 28246 28247 28248 28237 28238 28239 28240 28241 28242 28231 28232 28233 28234 28235 28236 28297 28298 28299 28300 28301 28302 48 28303 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28285 28286 28287 28288 28289 28290 28279 28280 28281 28282 28283 28284 28273 28274 28275 28276 28277 28278 28327 28328 28329 28330 28331 28332 48 28333 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28315 28316 28317 28318 28319 28320 28309 28310 28311 28312 28313 28314 28303 28304 28305 28306 28307 28308 28357 28358 28359 28360 28361 28362 36 28345 28346 28347 28348 28349 28350 28333 28334 28335 28336 28337 28338 28363 28364 28365 28366 28367 28368 28339 28340 28341 28342 28343 28344 28375 28376 28377 28378 28379 28380 28369 28370 28371 28372 28373 28374 48 14395 14396 14397 14398 14399 14400 28381 28382 28383 28384 28385 28386 28363 28364 28365 28366 28367 28368 28375 28376 28377 28378 28379 28380 28333 28334 28335 28336 28337 28338 28387 28388 28389 28390 28391 28392 12523 12524 12525 12526 12527 12528 18445 18446 18447 18448 18449 18450 48 20779 20780 20781 20782 20783 20784 28393 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 20665 20666 20667 20668 20669 20670 28423 28424 28425 28426 28427 28428 48 19369 19370 19371 19372 19373 19374 20797 20798 20799 20800 20801 20802 20779 20780 20781 20782 20783 20784 28423 28424 28425 28426 28427 28428 20665 20666 20667 20668 20669 20670 20683 20684 20685 20686 20687 20688 19381 19382 19383 19384 19385 19386 19393 19394 19395 19396 19397 19398 48 20893 20894 20895 20896 20897 20898 28429 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28399 28400 28401 28402 28403 28404 28393 28394 28395 28396 28397 28398 20779 20780 20781 20782 20783 20784 28447 28448 28449 28450 28451 28452 48 21007 21008 21009 21010 21011 21012 28453 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28435 28436 28437 28438 28439 28440 28429 28430 28431 28432 28433 28434 20893 20894 20895 20896 20897 20898 28471 28472 28473 28474 28475 28476 48 28477 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28459 28460 28461 28462 28463 28464 28453 28454 28455 28456 28457 28458 21007 21008 21009 21010 21011 21012 28501 28502 28503 28504 28505 28506 48 12475 12476 12477 12478 12479 12480 28507 28508 28509 28510 28511 28512 28477 28478 28479 28480 28481 28482 28501 28502 28503 28504 28505 28506 21007 21008 21009 21010 21011 21012 21025 21026 21027 21028 21029 21030 19351 19352 19353 19354 19355 19356 19363 19364 19365 19366 19367 19368 36 28489 28490 28491 28492 28493 28494 28477 28478 28479 28480 28481 28482 28513 28514 28515 28516 28517 28518 28483 28484 28485 28486 28487 28488 28525 28526 28527 28528 28529 28530 28519 28520 28521 28522 28523 28524 48 14365 14366 14367 14368 14369 14370 28531 28532 28533 28534 28535 28536 28513 28514 28515 28516 28517 28518 28525 28526 28527 28528 28529 28530 28477 28478 28479 28480 28481 28482 28507 28508 28509 28510 28511 28512 12475 12476 12477 12478 12479 12480 18439 18440 18441 18442 18443 18444 48 20767 20768 20769 20770 20771 20772 28537 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 21157 21158 21159 21160 21161 21162 21373 21374 21375 21376 21377 21378 20653 20654 20655 20656 20657 20658 28555 28556 28557 28558 28559 28560 48 20881 20882 20883 20884 20885 20886 28561 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28543 28544 28545 28546 28547 28548 28537 28538 28539 28540 28541 28542 20767 20768 20769 20770 20771 20772 28579 28580 28581 28582 28583 28584 48 20995 20996 20997 20998 20999 21000 28585 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28567 28568 28569 28570 28571 28572 28561 28562 28563 28564 28565 28566 20881 20882 20883 20884 20885 20886 28603 28604 28605 28606 28607 28608 48 960 961 962 963 964 965 28609 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28591 28592 28593 28594 28595 28596 28585 28586 28587 28588 28589 28590 20995 20996 20997 20998 20999 21000 28627 28628 28629 28630 28631 28632 36 28615 28616 28617 28618 28619 28620 960 961 962 963 964 965 28633 28634 28635 28636 28637 28638 28609 28610 28611 28612 28613 28614 28645 28646 28647 28648 28649 28650 28639 28640 28641 28642 28643 28644 48 14335 14336 14337 14338 14339 14340 28651 28652 28653 28654 28655 28656 28633 28634 28635 28636 28637 28638 28645 28646 28647 28648 28649 28650 960 961 962 963 964 965 28657 28658 28659 28660 28661 28662 12433 12434 12435 12436 12437 12438 18433 18434 18435 18436 18437 18438 48 20809 20810 20811 20812 20813 20814 28663 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 21133 21134 21135 21136 21137 21138 21439 21440 21441 21442 21443 21444 20695 20696 20697 20698 20699 20700 28681 28682 28683 28684 28685 28686 48 20923 20924 20925 20926 20927 20928 28687 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28669 28670 28671 28672 28673 28674 28663 28664 28665 28666 28667 28668 20809 20810 20811 20812 20813 20814 28705 28706 28707 28708 28709 28710 48 21037 21038 21039 21040 21041 21042 28711 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28693 28694 28695 28696 28697 28698 28687 28688 28689 28690 28691 28692 20923 20924 20925 20926 20927 20928 28729 28730 28731 28732 28733 28734 48 966 967 968 969 970 971 28735 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28717 28718 28719 28720 28721 28722 28711 28712 28713 28714 28715 28716 21037 21038 21039 21040 21041 21042 28753 28754 28755 28756 28757 28758 36 28741 28742 28743 28744 28745 28746 966 967 968 969 970 971 28759 28760 28761 28762 28763 28764 28735 28736 28737 28738 28739 28740 28771 28772 28773 28774 28775 28776 28765 28766 28767 28768 28769 28770 48 14305 14306 14307 14308 14309 14310 28777 28778 28779 28780 28781 28782 28759 28760 28761 28762 28763 28764 28771 28772 28773 28774 28775 28776 966 967 968 969 970 971 28783 28784 28785 28786 28787 28788 12391 12392 12393 12394 12395 12396 18427 18428 18429 18430 18431 18432 48 20833 20834 20835 20836 20837 20838 28789 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 21175 21176 21177 21178 21179 21180 21541 21542 21543 21544 21545 21546 20719 20720 20721 20722 20723 20724 28807 28808 28809 28810 28811 28812 48 20947 20948 20949 20950 20951 20952 28813 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28795 28796 28797 28798 28799 28800 28789 28790 28791 28792 28793 28794 20833 20834 20835 20836 20837 20838 28831 28832 28833 28834 28835 28836 48 21061 21062 21063 21064 21065 21066 28837 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28819 28820 28821 28822 28823 28824 28813 28814 28815 28816 28817 28818 20947 20948 20949 20950 20951 20952 28855 28856 28857 28858 28859 28860 48 972 973 974 975 976 977 28861 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28843 28844 28845 28846 28847 28848 28837 28838 28839 28840 28841 28842 21061 21062 21063 21064 21065 21066 28879 28880 28881 28882 28883 28884 36 28867 28868 28869 28870 28871 28872 972 973 974 975 976 977 28885 28886 28887 28888 28889 28890 28861 28862 28863 28864 28865 28866 28897 28898 28899 28900 28901 28902 28891 28892 28893 28894 28895 28896 48 14275 14276 14277 14278 14279 14280 28903 28904 28905 28906 28907 28908 28885 28886 28887 28888 28889 28890 28897 28898 28899 28900 28901 28902 972 973 974 975 976 977 28909 28910 28911 28912 28913 28914 12349 12350 12351 12352 12353 12354 18421 18422 18423 18424 18425 18426 48 20857 20858 20859 20860 20861 20862 28915 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 20743 20744 20745 20746 20747 20748 28945 28946 28947 28948 28949 28950 48 20971 20972 20973 20974 20975 20976 28951 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28921 28922 28923 28924 28925 28926 28915 28916 28917 28918 28919 28920 20857 20858 20859 20860 20861 20862 28969 28970 28971 28972 28973 28974 48 21085 21086 21087 21088 21089 21090 28975 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28957 28958 28959 28960 28961 28962 28951 28952 28953 28954 28955 28956 20971 20972 20973 20974 20975 20976 28993 28994 28995 28996 28997 28998 48 978 979 980 981 982 983 28999 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 28981 28982 28983 28984 28985 28986 28975 28976 28977 28978 28979 28980 21085 21086 21087 21088 21089 21090 29017 29018 29019 29020 29021 29022 36 29005 29006 29007 29008 29009 29010 978 979 980 981 982 983 29023 29024 29025 29026 29027 29028 28999 29000 29001 29002 29003 29004 29035 29036 29037 29038 29039 29040 29029 29030 29031 29032 29033 29034 48 14245 14246 14247 14248 14249 14250 29041 29042 29043 29044 29045 29046 29023 29024 29025 29026 29027 29028 29035 29036 29037 29038 29039 29040 978 979 980 981 982 983 29047 29048 29049 29050 29051 29052 12307 12308 12309 12310 12311 12312 18415 18416 18417 18418 18419 18420 48 29053 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 22513 22514 22515 22516 22517 22518 29089 29090 29091 29092 29093 29094 48 29095 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29065 29066 29067 29068 29069 29070 29059 29060 29061 29062 29063 29064 29053 29054 29055 29056 29057 29058 29119 29120 29121 29122 29123 29124 48 29125 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29107 29108 29109 29110 29111 29112 29101 29102 29103 29104 29105 29106 29095 29096 29097 29098 29099 29100 29149 29150 29151 29152 29153 29154 48 984 985 986 987 988 989 29155 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29137 29138 29139 29140 29141 29142 29131 29132 29133 29134 29135 29136 29125 29126 29127 29128 29129 29130 29173 29174 29175 29176 29177 29178 36 29161 29162 29163 29164 29165 29166 984 985 986 987 988 989 29179 29180 29181 29182 29183 29184 29155 29156 29157 29158 29159 29160 29191 29192 29193 29194 29195 29196 29185 29186 29187 29188 29189 29190 48 14215 14216 14217 14218 14219 14220 29197 29198 29199 29200 29201 29202 29179 29180 29181 29182 29183 29184 29191 29192 29193 29194 29195 29196 984 985 986 987 988 989 29203 29204 29205 29206 29207 29208 12265 12266 12267 12268 12269 12270 18409 18410 18411 18412 18413 18414 48 29209 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 22531 22532 22533 22534 22535 22536 29245 29246 29247 29248 29249 29250 48 29251 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29221 29222 29223 29224 29225 29226 29215 29216 29217 29218 29219 29220 29209 29210 29211 29212 29213 29214 29275 29276 29277 29278 29279 29280 48 29281 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29263 29264 29265 29266 29267 29268 29257 29258 29259 29260 29261 29262 29251 29252 29253 29254 29255 29256 29305 29306 29307 29308 29309 29310 48 990 991 992 993 994 995 29311 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29293 29294 29295 29296 29297 29298 29287 29288 29289 29290 29291 29292 29281 29282 29283 29284 29285 29286 29329 29330 29331 29332 29333 29334 36 29317 29318 29319 29320 29321 29322 990 991 992 993 994 995 29335 29336 29337 29338 29339 29340 29311 29312 29313 29314 29315 29316 29347 29348 29349 29350 29351 29352 29341 29342 29343 29344 29345 29346 48 14185 14186 14187 14188 14189 14190 29353 29354 29355 29356 29357 29358 29335 29336 29337 29338 29339 29340 29347 29348 29349 29350 29351 29352 990 991 992 993 994 995 29359 29360 29361 29362 29363 29364 12199 12200 12201 12202 12203 12204 18403 18404 18405 18406 18407 18408 48 29365 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 22117 22118 22119 22120 22121 22122 29401 29402 29403 29404 29405 29406 48 7723 7724 7725 7726 7727 7728 29407 29408 29409 29410 29411 29412 29365 29366 29367 29368 29369 29370 29401 29402 29403 29404 29405 29406 22117 22118 22119 22120 22121 22122 22111 22112 22113 22114 22115 22116 6055 6056 6057 6058 6059 6060 19345 19346 19347 19348 19349 19350 48 29413 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29377 29378 29379 29380 29381 29382 29371 29372 29373 29374 29375 29376 29365 29366 29367 29368 29369 29370 29437 29438 29439 29440 29441 29442 48 29443 29444 29445 29446 29447 29448 29449 29450 29451 29452 29453 29454 29455 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29425 29426 29427 29428 29429 29430 29419 29420 29421 29422 29423 29424 29413 29414 29415 29416 29417 29418 29467 29468 29469 29470 29471 29472 48 29473 29474 29475 29476 29477 29478 29479 29480 29481 29482 29483 29484 29485 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29455 29456 29457 29458 29459 29460 29449 29450 29451 29452 29453 29454 29443 29444 29445 29446 29447 29448 29497 29498 29499 29500 29501 29502 48 12187 12188 12189 12190 12191 12192 29503 29504 29505 29506 29507 29508 29473 29474 29475 29476 29477 29478 29497 29498 29499 29500 29501 29502 29443 29444 29445 29446 29447 29448 29509 29510 29511 29512 29513 29514 10777 10778 10779 10780 10781 10782 19339 19340 19341 19342 19343 19344 36 29485 29486 29487 29488 29489 29490 29473 29474 29475 29476 29477 29478 29515 29516 29517 29518 29519 29520 29479 29480 29481 29482 29483 29484 29527 29528 29529 29530 29531 29532 29521 29522 29523 29524 29525 29526 48 14155 14156 14157 14158 14159 14160 29533 29534 29535 29536 29537 29538 29515 29516 29517 29518 29519 29520 29527 29528 29529 29530 29531 29532 29473 29474 29475 29476 29477 29478 29503 29504 29505 29506 29507 29508 12187 12188 12189 12190 12191 12192 18397 18398 18399 18400 18401 18402 48 22573 22574 22575 22576 22577 22578 29539 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 21553 21554 21555 21556 21557 21558 22141 22142 22143 22144 22145 22146 22135 22136 22137 22138 22139 22140 22609 22610 22611 22612 22613 22614 48 22735 22736 22737 22738 22739 22740 29557 29558 29559 29560 29561 29562 22573 22574 22575 22576 22577 22578 22609 22610 22611 22612 22613 22614 22135 22136 22137 22138 22139 22140 22153 22154 22155 22156 22157 22158 21577 21578 21579 21580 21581 21582 22771 22772 22773 22774 22775 22776 48 22915 22916 22917 22918 22919 22920 29563 29564 29565 29566 29567 29568 22735 22736 22737 22738 22739 22740 22771 22772 22773 22774 22775 22776 21577 21578 21579 21580 21581 21582 22159 22160 22161 22162 22163 22164 21601 21602 21603 21604 21605 21606 22951 22952 22953 22954 22955 22956 48 23095 23096 23097 23098 23099 23100 29569 29570 29571 29572 29573 29574 22915 22916 22917 22918 22919 22920 22951 22952 22953 22954 22955 22956 21601 21602 21603 21604 21605 21606 22171 22172 22173 22174 22175 22176 22165 22166 22167 22168 22169 22170 23131 23132 23133 23134 23135 23136 48 23257 23258 23259 23260 23261 23262 29575 29576 29577 29578 29579 29580 23095 23096 23097 23098 23099 23100 23131 23132 23133 23134 23135 23136 22165 22166 22167 22168 22169 22170 22183 22184 22185 22186 22187 22188 21625 21626 21627 21628 21629 21630 23293 23294 23295 23296 23297 23298 48 23431 23432 23433 23434 23435 23436 29581 29582 29583 29584 29585 29586 23257 23258 23259 23260 23261 23262 23293 23294 23295 23296 23297 23298 21625 21626 21627 21628 21629 21630 22189 22190 22191 22192 22193 22194 21649 21650 21651 21652 21653 21654 23467 23468 23469 23470 23471 23472 48 23611 23612 23613 23614 23615 23616 29587 29588 29589 29590 29591 29592 23431 23432 23433 23434 23435 23436 23467 23468 23469 23470 23471 23472 21649 21650 21651 21652 21653 21654 22201 22202 22203 22204 22205 22206 22195 22196 22197 22198 22199 22200 23647 23648 23649 23650 23651 23652 48 23773 23774 23775 23776 23777 23778 29593 29594 29595 29596 29597 29598 23611 23612 23613 23614 23615 23616 23647 23648 23649 23650 23651 23652 22195 22196 22197 22198 22199 22200 22213 22214 22215 22216 22217 22218 21673 21674 21675 21676 21677 21678 23809 23810 23811 23812 23813 23814 48 23947 23948 23949 23950 23951 23952 29599 29600 29601 29602 29603 29604 23773 23774 23775 23776 23777 23778 23809 23810 23811 23812 23813 23814 21673 21674 21675 21676 21677 21678 22219 22220 22221 22222 22223 22224 21697 21698 21699 21700 21701 21702 23983 23984 23985 23986 23987 23988 48 24121 24122 24123 24124 24125 24126 29605 29606 29607 29608 29609 29610 23947 23948 23949 23950 23951 23952 23983 23984 23985 23986 23987 23988 21697 21698 21699 21700 21701 21702 22231 22232 22233 22234 22235 22236 22225 22226 22227 22228 22229 22230 24157 24158 24159 24160 24161 24162 48 24283 24284 24285 24286 24287 24288 29611 29612 29613 29614 29615 29616 24121 24122 24123 24124 24125 24126 24157 24158 24159 24160 24161 24162 22225 22226 22227 22228 22229 22230 22243 22244 22245 22246 22247 22248 21721 21722 21723 21724 21725 21726 24319 24320 24321 24322 24323 24324 48 24457 24458 24459 24460 24461 24462 29617 29618 29619 29620 29621 29622 24283 24284 24285 24286 24287 24288 24319 24320 24321 24322 24323 24324 21721 21722 21723 21724 21725 21726 22249 22250 22251 22252 22253 22254 21745 21746 21747 21748 21749 21750 24493 24494 24495 24496 24497 24498 48 24637 24638 24639 24640 24641 24642 29623 29624 29625 29626 29627 29628 24457 24458 24459 24460 24461 24462 24493 24494 24495 24496 24497 24498 21745 21746 21747 21748 21749 21750 22261 22262 22263 22264 22265 22266 22255 22256 22257 22258 22259 22260 24673 24674 24675 24676 24677 24678 48 24799 24800 24801 24802 24803 24804 29629 29630 29631 29632 29633 29634 24637 24638 24639 24640 24641 24642 24673 24674 24675 24676 24677 24678 22255 22256 22257 22258 22259 22260 22273 22274 22275 22276 22277 22278 21769 21770 21771 21772 21773 21774 24835 24836 24837 24838 24839 24840 48 24973 24974 24975 24976 24977 24978 29635 29636 29637 29638 29639 29640 24799 24800 24801 24802 24803 24804 24835 24836 24837 24838 24839 24840 21769 21770 21771 21772 21773 21774 22279 22280 22281 22282 22283 22284 21793 21794 21795 21796 21797 21798 25009 25010 25011 25012 25013 25014 48 25147 25148 25149 25150 25151 25152 29641 29642 29643 29644 29645 29646 24973 24974 24975 24976 24977 24978 25009 25010 25011 25012 25013 25014 21793 21794 21795 21796 21797 21798 22291 22292 22293 22294 22295 22296 22285 22286 22287 22288 22289 22290 25183 25184 25185 25186 25187 25188 48 25309 25310 25311 25312 25313 25314 29647 29648 29649 29650 29651 29652 25147 25148 25149 25150 25151 25152 25183 25184 25185 25186 25187 25188 22285 22286 22287 22288 22289 22290 22303 22304 22305 22306 22307 22308 21817 21818 21819 21820 21821 21822 25345 25346 25347 25348 25349 25350 48 25483 25484 25485 25486 25487 25488 29653 29654 29655 29656 29657 29658 25309 25310 25311 25312 25313 25314 25345 25346 25347 25348 25349 25350 21817 21818 21819 21820 21821 21822 22309 22310 22311 22312 22313 22314 21841 21842 21843 21844 21845 21846 25519 25520 25521 25522 25523 25524 48 25663 25664 25665 25666 25667 25668 29659 29660 29661 29662 29663 29664 25483 25484 25485 25486 25487 25488 25519 25520 25521 25522 25523 25524 21841 21842 21843 21844 21845 21846 22321 22322 22323 22324 22325 22326 22315 22316 22317 22318 22319 22320 25699 25700 25701 25702 25703 25704 48 25825 25826 25827 25828 25829 25830 29665 29666 29667 29668 29669 29670 25663 25664 25665 25666 25667 25668 25699 25700 25701 25702 25703 25704 22315 22316 22317 22318 22319 22320 22333 22334 22335 22336 22337 22338 21865 21866 21867 21868 21869 21870 25861 25862 25863 25864 25865 25866 48 25999 26000 26001 26002 26003 26004 29671 29672 29673 29674 29675 29676 25825 25826 25827 25828 25829 25830 25861 25862 25863 25864 25865 25866 21865 21866 21867 21868 21869 21870 22339 22340 22341 22342 22343 22344 21889 21890 21891 21892 21893 21894 26035 26036 26037 26038 26039 26040 48 26173 26174 26175 26176 26177 26178 29677 29678 29679 29680 29681 29682 25999 26000 26001 26002 26003 26004 26035 26036 26037 26038 26039 26040 21889 21890 21891 21892 21893 21894 22351 22352 22353 22354 22355 22356 22345 22346 22347 22348 22349 22350 26209 26210 26211 26212 26213 26214 48 26335 26336 26337 26338 26339 26340 29683 29684 29685 29686 29687 29688 26173 26174 26175 26176 26177 26178 26209 26210 26211 26212 26213 26214 22345 22346 22347 22348 22349 22350 22363 22364 22365 22366 22367 22368 21913 21914 21915 21916 21917 21918 26371 26372 26373 26374 26375 26376 48 26509 26510 26511 26512 26513 26514 29689 29690 29691 29692 29693 29694 26335 26336 26337 26338 26339 26340 26371 26372 26373 26374 26375 26376 21913 21914 21915 21916 21917 21918 22369 22370 22371 22372 22373 22374 21937 21938 21939 21940 21941 21942 26545 26546 26547 26548 26549 26550 48 26689 26690 26691 26692 26693 26694 29695 29696 29697 29698 29699 29700 26509 26510 26511 26512 26513 26514 26545 26546 26547 26548 26549 26550 21937 21938 21939 21940 21941 21942 22381 22382 22383 22384 22385 22386 22375 22376 22377 22378 22379 22380 26725 26726 26727 26728 26729 26730 48 26851 26852 26853 26854 26855 26856 29701 29702 29703 29704 29705 29706 26689 26690 26691 26692 26693 26694 26725 26726 26727 26728 26729 26730 22375 22376 22377 22378 22379 22380 22393 22394 22395 22396 22397 22398 21961 21962 21963 21964 21965 21966 26887 26888 26889 26890 26891 26892 48 27025 27026 27027 27028 27029 27030 29707 29708 29709 29710 29711 29712 26851 26852 26853 26854 26855 26856 26887 26888 26889 26890 26891 26892 21961 21962 21963 21964 21965 21966 22399 22400 22401 22402 22403 22404 21985 21986 21987 21988 21989 21990 27061 27062 27063 27064 27065 27066 48 27199 27200 27201 27202 27203 27204 29713 29714 29715 29716 29717 29718 27025 27026 27027 27028 27029 27030 27061 27062 27063 27064 27065 27066 21985 21986 21987 21988 21989 21990 22411 22412 22413 22414 22415 22416 22405 22406 22407 22408 22409 22410 27235 27236 27237 27238 27239 27240 48 27361 27362 27363 27364 27365 27366 29719 29720 29721 29722 29723 29724 27199 27200 27201 27202 27203 27204 27235 27236 27237 27238 27239 27240 22405 22406 22407 22408 22409 22410 22423 22424 22425 22426 22427 22428 22009 22010 22011 22012 22013 22014 27397 27398 27399 27400 27401 27402 48 27541 27542 27543 27544 27545 27546 29725 29726 29727 29728 29729 29730 27361 27362 27363 27364 27365 27366 27397 27398 27399 27400 27401 27402 22009 22010 22011 22012 22013 22014 22429 22430 22431 22432 22433 22434 22033 22034 22035 22036 22037 22038 27577 27578 27579 27580 27581 27582 48 27721 27722 27723 27724 27725 27726 29731 29732 29733 29734 29735 29736 27541 27542 27543 27544 27545 27546 27577 27578 27579 27580 27581 27582 22033 22034 22035 22036 22037 22038 22441 22442 22443 22444 22445 22446 22435 22436 22437 22438 22439 22440 27757 27758 27759 27760 27761 27762 48 27883 27884 27885 27886 27887 27888 29737 29738 29739 29740 29741 29742 27721 27722 27723 27724 27725 27726 27757 27758 27759 27760 27761 27762 22435 22436 22437 22438 22439 22440 22453 22454 22455 22456 22457 22458 22057 22058 22059 22060 22061 22062 27919 27920 27921 27922 27923 27924 48 28057 28058 28059 28060 28061 28062 29743 29744 29745 29746 29747 29748 27883 27884 27885 27886 27887 27888 27919 27920 27921 27922 27923 27924 22057 22058 22059 22060 22061 22062 22459 22460 22461 22462 22463 22464 22081 22082 22083 22084 22085 22086 28093 28094 28095 28096 28097 28098 48 28231 28232 28233 28234 28235 28236 29749 29750 29751 29752 29753 29754 28057 28058 28059 28060 28061 28062 28093 28094 28095 28096 28097 28098 22081 22082 22083 22084 22085 22086 22471 22472 22473 22474 22475 22476 22465 22466 22467 22468 22469 22470 28267 28268 28269 28270 28271 28272 48 20779 20780 20781 20782 20783 20784 29755 29756 29757 29758 29759 29760 28231 28232 28233 28234 28235 28236 28267 28268 28269 28270 28271 28272 22465 22466 22467 22468 22469 22470 22483 22484 22485 22486 22487 22488 20665 20666 20667 20668 20669 20670 28423 28424 28425 28426 28427 28428 48 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 28423 28424 28425 28426 28427 28428 20665 20666 20667 20668 20669 20670 20659 20660 20661 20662 20663 20664 20653 20654 20655 20656 20657 20658 28555 28556 28557 28558 28559 28560 48 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20767 20768 20769 20770 20771 20772 28555 28556 28557 28558 28559 28560 20653 20654 20655 20656 20657 20658 20701 20702 20703 20704 20705 20706 20695 20696 20697 20698 20699 20700 28681 28682 28683 28684 28685 28686 48 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20809 20810 20811 20812 20813 20814 28681 28682 28683 28684 28685 28686 20695 20696 20697 20698 20699 20700 20725 20726 20727 20728 20729 20730 20719 20720 20721 20722 20723 20724 28807 28808 28809 28810 28811 28812 48 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20833 20834 20835 20836 20837 20838 28807 28808 28809 28810 28811 28812 20719 20720 20721 20722 20723 20724 20749 20750 20751 20752 20753 20754 20743 20744 20745 20746 20747 20748 28945 28946 28947 28948 28949 28950 48 29053 29054 29055 29056 29057 29058 29761 29762 29763 29764 29765 29766 20857 20858 20859 20860 20861 20862 28945 28946 28947 28948 28949 28950 20743 20744 20745 20746 20747 20748 22519 22520 22521 22522 22523 22524 22513 22514 22515 22516 22517 22518 29089 29090 29091 29092 29093 29094 48 29209 29210 29211 29212 29213 29214 29767 29768 29769 29770 29771 29772 29053 29054 29055 29056 29057 29058 29089 29090 29091 29092 29093 29094 22513 22514 22515 22516 22517 22518 22537 22538 22539 22540 22541 22542 22531 22532 22533 22534 22535 22536 29245 29246 29247 29248 29249 29250 48 29365 29366 29367 29368 29369 29370 29773 29774 29775 29776 29777 29778 29209 29210 29211 29212 29213 29214 29245 29246 29247 29248 29249 29250 22531 22532 22533 22534 22535 22536 22549 22550 22551 22552 22553 22554 22117 22118 22119 22120 22121 22122 29401 29402 29403 29404 29405 29406 48 29779 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29365 29366 29367 29368 29369 29370 29401 29402 29403 29404 29405 29406 22117 22118 22119 22120 22121 22122 22561 22562 22563 22564 22565 22566 22555 22556 22557 22558 22559 22560 29791 29792 29793 29794 29795 29796 48 22615 22616 22617 22618 22619 22620 29797 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29545 29546 29547 29548 29549 29550 29539 29540 29541 29542 29543 29544 22573 22574 22575 22576 22577 22578 22639 22640 22641 22642 22643 22644 48 22783 22784 22785 22786 22787 22788 29815 29816 29817 29818 29819 29820 22615 22616 22617 22618 22619 22620 22639 22640 22641 22642 22643 22644 22573 22574 22575 22576 22577 22578 29557 29558 29559 29560 29561 29562 22735 22736 22737 22738 22739 22740 22807 22808 22809 22810 22811 22812 48 22963 22964 22965 22966 22967 22968 29821 29822 29823 29824 29825 29826 22783 22784 22785 22786 22787 22788 22807 22808 22809 22810 22811 22812 22735 22736 22737 22738 22739 22740 29563 29564 29565 29566 29567 29568 22915 22916 22917 22918 22919 22920 22987 22988 22989 22990 22991 22992 48 23137 23138 23139 23140 23141 23142 29827 29828 29829 29830 29831 29832 22963 22964 22965 22966 22967 22968 22987 22988 22989 22990 22991 22992 22915 22916 22917 22918 22919 22920 29569 29570 29571 29572 29573 29574 23095 23096 23097 23098 23099 23100 23161 23162 23163 23164 23165 23166 48 23305 23306 23307 23308 23309 23310 29833 29834 29835 29836 29837 29838 23137 23138 23139 23140 23141 23142 23161 23162 23163 23164 23165 23166 23095 23096 23097 23098 23099 23100 29575 29576 29577 29578 29579 29580 23257 23258 23259 23260 23261 23262 23329 23330 23331 23332 23333 23334 48 23479 23480 23481 23482 23483 23484 29839 29840 29841 29842 29843 29844 23305 23306 23307 23308 23309 23310 23329 23330 23331 23332 23333 23334 23257 23258 23259 23260 23261 23262 29581 29582 29583 29584 29585 29586 23431 23432 23433 23434 23435 23436 23503 23504 23505 23506 23507 23508 48 23653 23654 23655 23656 23657 23658 29845 29846 29847 29848 29849 29850 23479 23480 23481 23482 23483 23484 23503 23504 23505 23506 23507 23508 23431 23432 23433 23434 23435 23436 29587 29588 29589 29590 29591 29592 23611 23612 23613 23614 23615 23616 23677 23678 23679 23680 23681 23682 48 23821 23822 23823 23824 23825 23826 29851 29852 29853 29854 29855 29856 23653 23654 23655 23656 23657 23658 23677 23678 23679 23680 23681 23682 23611 23612 23613 23614 23615 23616 29593 29594 29595 29596 29597 29598 23773 23774 23775 23776 23777 23778 23845 23846 23847 23848 23849 23850 48 23995 23996 23997 23998 23999 24000 29857 29858 29859 29860 29861 29862 23821 23822 23823 23824 23825 23826 23845 23846 23847 23848 23849 23850 23773 23774 23775 23776 23777 23778 29599 29600 29601 29602 29603 29604 23947 23948 23949 23950 23951 23952 24019 24020 24021 24022 24023 24024 48 24163 24164 24165 24166 24167 24168 29863 29864 29865 29866 29867 29868 23995 23996 23997 23998 23999 24000 24019 24020 24021 24022 24023 24024 23947 23948 23949 23950 23951 23952 29605 29606 29607 29608 29609 29610 24121 24122 24123 24124 24125 24126 24187 24188 24189 24190 24191 24192 48 24331 24332 24333 24334 24335 24336 29869 29870 29871 29872 29873 29874 24163 24164 24165 24166 24167 24168 24187 24188 24189 24190 24191 24192 24121 24122 24123 24124 24125 24126 29611 29612 29613 29614 29615 29616 24283 24284 24285 24286 24287 24288 24355 24356 24357 24358 24359 24360 48 24505 24506 24507 24508 24509 24510 29875 29876 29877 29878 29879 29880 24331 24332 24333 24334 24335 24336 24355 24356 24357 24358 24359 24360 24283 24284 24285 24286 24287 24288 29617 29618 29619 29620 29621 29622 24457 24458 24459 24460 24461 24462 24529 24530 24531 24532 24533 24534 48 24679 24680 24681 24682 24683 24684 29881 29882 29883 29884 29885 29886 24505 24506 24507 24508 24509 24510 24529 24530 24531 24532 24533 24534 24457 24458 24459 24460 24461 24462 29623 29624 29625 29626 29627 29628 24637 24638 24639 24640 24641 24642 24703 24704 24705 24706 24707 24708 48 24847 24848 24849 24850 24851 24852 29887 29888 29889 29890 29891 29892 24679 24680 24681 24682 24683 24684 24703 24704 24705 24706 24707 24708 24637 24638 24639 24640 24641 24642 29629 29630 29631 29632 29633 29634 24799 24800 24801 24802 24803 24804 24871 24872 24873 24874 24875 24876 48 25021 25022 25023 25024 25025 25026 29893 29894 29895 29896 29897 29898 24847 24848 24849 24850 24851 24852 24871 24872 24873 24874 24875 24876 24799 24800 24801 24802 24803 24804 29635 29636 29637 29638 29639 29640 24973 24974 24975 24976 24977 24978 25045 25046 25047 25048 25049 25050 48 25189 25190 25191 25192 25193 25194 29899 29900 29901 29902 29903 29904 25021 25022 25023 25024 25025 25026 25045 25046 25047 25048 25049 25050 24973 24974 24975 24976 24977 24978 29641 29642 29643 29644 29645 29646 25147 25148 25149 25150 25151 25152 25213 25214 25215 25216 25217 25218 48 25357 25358 25359 25360 25361 25362 29905 29906 29907 29908 29909 29910 25189 25190 25191 25192 25193 25194 25213 25214 25215 25216 25217 25218 25147 25148 25149 25150 25151 25152 29647 29648 29649 29650 29651 29652 25309 25310 25311 25312 25313 25314 25381 25382 25383 25384 25385 25386 48 25531 25532 25533 25534 25535 25536 29911 29912 29913 29914 29915 29916 25357 25358 25359 25360 25361 25362 25381 25382 25383 25384 25385 25386 25309 25310 25311 25312 25313 25314 29653 29654 29655 29656 29657 29658 25483 25484 25485 25486 25487 25488 25555 25556 25557 25558 25559 25560 48 25705 25706 25707 25708 25709 25710 29917 29918 29919 29920 29921 29922 25531 25532 25533 25534 25535 25536 25555 25556 25557 25558 25559 25560 25483 25484 25485 25486 25487 25488 29659 29660 29661 29662 29663 29664 25663 25664 25665 25666 25667 25668 25729 25730 25731 25732 25733 25734 48 25873 25874 25875 25876 25877 25878 29923 29924 29925 29926 29927 29928 25705 25706 25707 25708 25709 25710 25729 25730 25731 25732 25733 25734 25663 25664 25665 25666 25667 25668 29665 29666 29667 29668 29669 29670 25825 25826 25827 25828 25829 25830 25897 25898 25899 25900 25901 25902 48 26047 26048 26049 26050 26051 26052 29929 29930 29931 29932 29933 29934 25873 25874 25875 25876 25877 25878 25897 25898 25899 25900 25901 25902 25825 25826 25827 25828 25829 25830 29671 29672 29673 29674 29675 29676 25999 26000 26001 26002 26003 26004 26071 26072 26073 26074 26075 26076 48 26215 26216 26217 26218 26219 26220 29935 29936 29937 29938 29939 29940 26047 26048 26049 26050 26051 26052 26071 26072 26073 26074 26075 26076 25999 26000 26001 26002 26003 26004 29677 29678 29679 29680 29681 29682 26173 26174 26175 26176 26177 26178 26239 26240 26241 26242 26243 26244 48 26383 26384 26385 26386 26387 26388 29941 29942 29943 29944 29945 29946 26215 26216 26217 26218 26219 26220 26239 26240 26241 26242 26243 26244 26173 26174 26175 26176 26177 26178 29683 29684 29685 29686 29687 29688 26335 26336 26337 26338 26339 26340 26407 26408 26409 26410 26411 26412 48 26557 26558 26559 26560 26561 26562 29947 29948 29949 29950 29951 29952 26383 26384 26385 26386 26387 26388 26407 26408 26409 26410 26411 26412 26335 26336 26337 26338 26339 26340 29689 29690 29691 29692 29693 29694 26509 26510 26511 26512 26513 26514 26581 26582 26583 26584 26585 26586 48 26731 26732 26733 26734 26735 26736 29953 29954 29955 29956 29957 29958 26557 26558 26559 26560 26561 26562 26581 26582 26583 26584 26585 26586 26509 26510 26511 26512 26513 26514 29695 29696 29697 29698 29699 29700 26689 26690 26691 26692 26693 26694 26755 26756 26757 26758 26759 26760 48 26899 26900 26901 26902 26903 26904 29959 29960 29961 29962 29963 29964 26731 26732 26733 26734 26735 26736 26755 26756 26757 26758 26759 26760 26689 26690 26691 26692 26693 26694 29701 29702 29703 29704 29705 29706 26851 26852 26853 26854 26855 26856 26923 26924 26925 26926 26927 26928 48 27073 27074 27075 27076 27077 27078 29965 29966 29967 29968 29969 29970 26899 26900 26901 26902 26903 26904 26923 26924 26925 26926 26927 26928 26851 26852 26853 26854 26855 26856 29707 29708 29709 29710 29711 29712 27025 27026 27027 27028 27029 27030 27097 27098 27099 27100 27101 27102 48 27241 27242 27243 27244 27245 27246 29971 29972 29973 29974 29975 29976 27073 27074 27075 27076 27077 27078 27097 27098 27099 27100 27101 27102 27025 27026 27027 27028 27029 27030 29713 29714 29715 29716 29717 29718 27199 27200 27201 27202 27203 27204 27265 27266 27267 27268 27269 27270 48 27409 27410 27411 27412 27413 27414 29977 29978 29979 29980 29981 29982 27241 27242 27243 27244 27245 27246 27265 27266 27267 27268 27269 27270 27199 27200 27201 27202 27203 27204 29719 29720 29721 29722 29723 29724 27361 27362 27363 27364 27365 27366 27433 27434 27435 27436 27437 27438 48 27589 27590 27591 27592 27593 27594 29983 29984 29985 29986 29987 29988 27409 27410 27411 27412 27413 27414 27433 27434 27435 27436 27437 27438 27361 27362 27363 27364 27365 27366 29725 29726 29727 29728 29729 29730 27541 27542 27543 27544 27545 27546 27613 27614 27615 27616 27617 27618 48 27763 27764 27765 27766 27767 27768 29989 29990 29991 29992 29993 29994 27589 27590 27591 27592 27593 27594 27613 27614 27615 27616 27617 27618 27541 27542 27543 27544 27545 27546 29731 29732 29733 29734 29735 29736 27721 27722 27723 27724 27725 27726 27787 27788 27789 27790 27791 27792 48 27931 27932 27933 27934 27935 27936 29995 29996 29997 29998 29999 30000 27763 27764 27765 27766 27767 27768 27787 27788 27789 27790 27791 27792 27721 27722 27723 27724 27725 27726 29737 29738 29739 29740 29741 29742 27883 27884 27885 27886 27887 27888 27955 27956 27957 27958 27959 27960 48 28105 28106 28107 28108 28109 28110 30001 30002 30003 30004 30005 30006 27931 27932 27933 27934 27935 27936 27955 27956 27957 27958 27959 27960 27883 27884 27885 27886 27887 27888 29743 29744 29745 29746 29747 29748 28057 28058 28059 28060 28061 28062 28129 28130 28131 28132 28133 28134 48 28273 28274 28275 28276 28277 28278 30007 30008 30009 30010 30011 30012 28105 28106 28107 28108 28109 28110 28129 28130 28131 28132 28133 28134 28057 28058 28059 28060 28061 28062 29749 29750 29751 29752 29753 29754 28231 28232 28233 28234 28235 28236 28297 28298 28299 28300 28301 28302 48 20893 20894 20895 20896 20897 20898 30013 30014 30015 30016 30017 30018 28273 28274 28275 28276 28277 28278 28297 28298 28299 28300 28301 28302 28231 28232 28233 28234 28235 28236 29755 29756 29757 29758 29759 29760 20779 20780 20781 20782 20783 20784 28447 28448 28449 28450 28451 28452 48 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 28447 28448 28449 28450 28451 28452 20779 20780 20781 20782 20783 20784 20773 20774 20775 20776 20777 20778 20767 20768 20769 20770 20771 20772 28579 28580 28581 28582 28583 28584 48 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20881 20882 20883 20884 20885 20886 28579 28580 28581 28582 28583 28584 20767 20768 20769 20770 20771 20772 20815 20816 20817 20818 20819 20820 20809 20810 20811 20812 20813 20814 28705 28706 28707 28708 28709 28710 48 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20923 20924 20925 20926 20927 20928 28705 28706 28707 28708 28709 28710 20809 20810 20811 20812 20813 20814 20839 20840 20841 20842 20843 20844 20833 20834 20835 20836 20837 20838 28831 28832 28833 28834 28835 28836 48 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20947 20948 20949 20950 20951 20952 28831 28832 28833 28834 28835 28836 20833 20834 20835 20836 20837 20838 20863 20864 20865 20866 20867 20868 20857 20858 20859 20860 20861 20862 28969 28970 28971 28972 28973 28974 48 29095 29096 29097 29098 29099 29100 30019 30020 30021 30022 30023 30024 20971 20972 20973 20974 20975 20976 28969 28970 28971 28972 28973 28974 20857 20858 20859 20860 20861 20862 29761 29762 29763 29764 29765 29766 29053 29054 29055 29056 29057 29058 29119 29120 29121 29122 29123 29124 48 29251 29252 29253 29254 29255 29256 30025 30026 30027 30028 30029 30030 29095 29096 29097 29098 29099 29100 29119 29120 29121 29122 29123 29124 29053 29054 29055 29056 29057 29058 29767 29768 29769 29770 29771 29772 29209 29210 29211 29212 29213 29214 29275 29276 29277 29278 29279 29280 48 29413 29414 29415 29416 29417 29418 30031 30032 30033 30034 30035 30036 29251 29252 29253 29254 29255 29256 29275 29276 29277 29278 29279 29280 29209 29210 29211 29212 29213 29214 29773 29774 29775 29776 29777 29778 29365 29366 29367 29368 29369 29370 29437 29438 29439 29440 29441 29442 48 30037 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 29413 29414 29415 29416 29417 29418 29437 29438 29439 29440 29441 29442 29365 29366 29367 29368 29369 29370 29785 29786 29787 29788 29789 29790 29779 29780 29781 29782 29783 29784 30049 30050 30051 30052 30053 30054 48 22645 22646 22647 22648 22649 22650 30055 30056 30057 30058 30059 30060 30061 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 29803 29804 29805 29806 29807 29808 29797 29798 29799 29800 29801 29802 22615 22616 22617 22618 22619 22620 22669 22670 22671 22672 22673 22674 48 22819 22820 22821 22822 22823 22824 30073 30074 30075 30076 30077 30078 22645 22646 22647 22648 22649 22650 22669 22670 22671 22672 22673 22674 22615 22616 22617 22618 22619 22620 29815 29816 29817 29818 29819 29820 22783 22784 22785 22786 22787 22788 22843 22844 22845 22846 22847 22848 48 22999 23000 23001 23002 23003 23004 30079 30080 30081 30082 30083 30084 22819 22820 22821 22822 22823 22824 22843 22844 22845 22846 22847 22848 22783 22784 22785 22786 22787 22788 29821 29822 29823 29824 29825 29826 22963 22964 22965 22966 22967 22968 23023 23024 23025 23026 23027 23028 48 23167 23168 23169 23170 23171 23172 30085 30086 30087 30088 30089 30090 22999 23000 23001 23002 23003 23004 23023 23024 23025 23026 23027 23028 22963 22964 22965 22966 22967 22968 29827 29828 29829 29830 29831 29832 23137 23138 23139 23140 23141 23142 23191 23192 23193 23194 23195 23196 48 23335 23336 23337 23338 23339 23340 30091 30092 30093 30094 30095 30096 23167 23168 23169 23170 23171 23172 23191 23192 23193 23194 23195 23196 23137 23138 23139 23140 23141 23142 29833 29834 29835 29836 29837 29838 23305 23306 23307 23308 23309 23310 23359 23360 23361 23362 23363 23364 48 23515 23516 23517 23518 23519 23520 30097 30098 30099 30100 30101 30102 23335 23336 23337 23338 23339 23340 23359 23360 23361 23362 23363 23364 23305 23306 23307 23308 23309 23310 29839 29840 29841 29842 29843 29844 23479 23480 23481 23482 23483 23484 23539 23540 23541 23542 23543 23544 48 23683 23684 23685 23686 23687 23688 30103 30104 30105 30106 30107 30108 23515 23516 23517 23518 23519 23520 23539 23540 23541 23542 23543 23544 23479 23480 23481 23482 23483 23484 29845 29846 29847 29848 29849 29850 23653 23654 23655 23656 23657 23658 23707 23708 23709 23710 23711 23712 48 23851 23852 23853 23854 23855 23856 30109 30110 30111 30112 30113 30114 23683 23684 23685 23686 23687 23688 23707 23708 23709 23710 23711 23712 23653 23654 23655 23656 23657 23658 29851 29852 29853 29854 29855 29856 23821 23822 23823 23824 23825 23826 23875 23876 23877 23878 23879 23880 48 24025 24026 24027 24028 24029 24030 30115 30116 30117 30118 30119 30120 23851 23852 23853 23854 23855 23856 23875 23876 23877 23878 23879 23880 23821 23822 23823 23824 23825 23826 29857 29858 29859 29860 29861 29862 23995 23996 23997 23998 23999 24000 24049 24050 24051 24052 24053 24054 48 24193 24194 24195 24196 24197 24198 30121 30122 30123 30124 30125 30126 24025 24026 24027 24028 24029 24030 24049 24050 24051 24052 24053 24054 23995 23996 23997 23998 23999 24000 29863 29864 29865 29866 29867 29868 24163 24164 24165 24166 24167 24168 24217 24218 24219 24220 24221 24222 48 24361 24362 24363 24364 24365 24366 30127 30128 30129 30130 30131 30132 24193 24194 24195 24196 24197 24198 24217 24218 24219 24220 24221 24222 24163 24164 24165 24166 24167 24168 29869 29870 29871 29872 29873 29874 24331 24332 24333 24334 24335 24336 24385 24386 24387 24388 24389 24390 48 24541 24542 24543 24544 24545 24546 30133 30134 30135 30136 30137 30138 24361 24362 24363 24364 24365 24366 24385 24386 24387 24388 24389 24390 24331 24332 24333 24334 24335 24336 29875 29876 29877 29878 29879 29880 24505 24506 24507 24508 24509 24510 24565 24566 24567 24568 24569 24570 48 24709 24710 24711 24712 24713 24714 30139 30140 30141 30142 30143 30144 24541 24542 24543 24544 24545 24546 24565 24566 24567 24568 24569 24570 24505 24506 24507 24508 24509 24510 29881 29882 29883 29884 29885 29886 24679 24680 24681 24682 24683 24684 24733 24734 24735 24736 24737 24738 48 24877 24878 24879 24880 24881 24882 30145 30146 30147 30148 30149 30150 24709 24710 24711 24712 24713 24714 24733 24734 24735 24736 24737 24738 24679 24680 24681 24682 24683 24684 29887 29888 29889 29890 29891 29892 24847 24848 24849 24850 24851 24852 24901 24902 24903 24904 24905 24906 48 25051 25052 25053 25054 25055 25056 30151 30152 30153 30154 30155 30156 24877 24878 24879 24880 24881 24882 24901 24902 24903 24904 24905 24906 24847 24848 24849 24850 24851 24852 29893 29894 29895 29896 29897 29898 25021 25022 25023 25024 25025 25026 25075 25076 25077 25078 25079 25080 48 25219 25220 25221 25222 25223 25224 30157 30158 30159 30160 30161 30162 25051 25052 25053 25054 25055 25056 25075 25076 25077 25078 25079 25080 25021 25022 25023 25024 25025 25026 29899 29900 29901 29902 29903 29904 25189 25190 25191 25192 25193 25194 25243 25244 25245 25246 25247 25248 48 25387 25388 25389 25390 25391 25392 30163 30164 30165 30166 30167 30168 25219 25220 25221 25222 25223 25224 25243 25244 25245 25246 25247 25248 25189 25190 25191 25192 25193 25194 29905 29906 29907 29908 29909 29910 25357 25358 25359 25360 25361 25362 25411 25412 25413 25414 25415 25416 48 25567 25568 25569 25570 25571 25572 30169 30170 30171 30172 30173 30174 25387 25388 25389 25390 25391 25392 25411 25412 25413 25414 25415 25416 25357 25358 25359 25360 25361 25362 29911 29912 29913 29914 29915 29916 25531 25532 25533 25534 25535 25536 25591 25592 25593 25594 25595 25596 48 25735 25736 25737 25738 25739 25740 30175 30176 30177 30178 30179 30180 25567 25568 25569 25570 25571 25572 25591 25592 25593 25594 25595 25596 25531 25532 25533 25534 25535 25536 29917 29918 29919 29920 29921 29922 25705 25706 25707 25708 25709 25710 25759 25760 25761 25762 25763 25764 48 25903 25904 25905 25906 25907 25908 30181 30182 30183 30184 30185 30186 25735 25736 25737 25738 25739 25740 25759 25760 25761 25762 25763 25764 25705 25706 25707 25708 25709 25710 29923 29924 29925 29926 29927 29928 25873 25874 25875 25876 25877 25878 25927 25928 25929 25930 25931 25932 48 26077 26078 26079 26080 26081 26082 30187 30188 30189 30190 30191 30192 25903 25904 25905 25906 25907 25908 25927 25928 25929 25930 25931 25932 25873 25874 25875 25876 25877 25878 29929 29930 29931 29932 29933 29934 26047 26048 26049 26050 26051 26052 26101 26102 26103 26104 26105 26106 48 26245 26246 26247 26248 26249 26250 30193 30194 30195 30196 30197 30198 26077 26078 26079 26080 26081 26082 26101 26102 26103 26104 26105 26106 26047 26048 26049 26050 26051 26052 29935 29936 29937 29938 29939 29940 26215 26216 26217 26218 26219 26220 26269 26270 26271 26272 26273 26274 48 26413 26414 26415 26416 26417 26418 30199 30200 30201 30202 30203 30204 26245 26246 26247 26248 26249 26250 26269 26270 26271 26272 26273 26274 26215 26216 26217 26218 26219 26220 29941 29942 29943 29944 29945 29946 26383 26384 26385 26386 26387 26388 26437 26438 26439 26440 26441 26442 48 26593 26594 26595 26596 26597 26598 30205 30206 30207 30208 30209 30210 26413 26414 26415 26416 26417 26418 26437 26438 26439 26440 26441 26442 26383 26384 26385 26386 26387 26388 29947 29948 29949 29950 29951 29952 26557 26558 26559 26560 26561 26562 26617 26618 26619 26620 26621 26622 48 26761 26762 26763 26764 26765 26766 30211 30212 30213 30214 30215 30216 26593 26594 26595 26596 26597 26598 26617 26618 26619 26620 26621 26622 26557 26558 26559 26560 26561 26562 29953 29954 29955 29956 29957 29958 26731 26732 26733 26734 26735 26736 26785 26786 26787 26788 26789 26790 48 26929 26930 26931 26932 26933 26934 30217 30218 30219 30220 30221 30222 26761 26762 26763 26764 26765 26766 26785 26786 26787 26788 26789 26790 26731 26732 26733 26734 26735 26736 29959 29960 29961 29962 29963 29964 26899 26900 26901 26902 26903 26904 26953 26954 26955 26956 26957 26958 48 27103 27104 27105 27106 27107 27108 30223 30224 30225 30226 30227 30228 26929 26930 26931 26932 26933 26934 26953 26954 26955 26956 26957 26958 26899 26900 26901 26902 26903 26904 29965 29966 29967 29968 29969 29970 27073 27074 27075 27076 27077 27078 27127 27128 27129 27130 27131 27132 48 27271 27272 27273 27274 27275 27276 30229 30230 30231 30232 30233 30234 27103 27104 27105 27106 27107 27108 27127 27128 27129 27130 27131 27132 27073 27074 27075 27076 27077 27078 29971 29972 29973 29974 29975 29976 27241 27242 27243 27244 27245 27246 27295 27296 27297 27298 27299 27300 48 27445 27446 27447 27448 27449 27450 30235 30236 30237 30238 30239 30240 27271 27272 27273 27274 27275 27276 27295 27296 27297 27298 27299 27300 27241 27242 27243 27244 27245 27246 29977 29978 29979 29980 29981 29982 27409 27410 27411 27412 27413 27414 27469 27470 27471 27472 27473 27474 48 27625 27626 27627 27628 27629 27630 30241 30242 30243 30244 30245 30246 27445 27446 27447 27448 27449 27450 27469 27470 27471 27472 27473 27474 27409 27410 27411 27412 27413 27414 29983 29984 29985 29986 29987 29988 27589 27590 27591 27592 27593 27594 27649 27650 27651 27652 27653 27654 48 27793 27794 27795 27796 27797 27798 30247 30248 30249 30250 30251 30252 27625 27626 27627 27628 27629 27630 27649 27650 27651 27652 27653 27654 27589 27590 27591 27592 27593 27594 29989 29990 29991 29992 29993 29994 27763 27764 27765 27766 27767 27768 27817 27818 27819 27820 27821 27822 48 27961 27962 27963 27964 27965 27966 30253 30254 30255 30256 30257 30258 27793 27794 27795 27796 27797 27798 27817 27818 27819 27820 27821 27822 27763 27764 27765 27766 27767 27768 29995 29996 29997 29998 29999 30000 27931 27932 27933 27934 27935 27936 27985 27986 27987 27988 27989 27990 48 28135 28136 28137 28138 28139 28140 30259 30260 30261 30262 30263 30264 27961 27962 27963 27964 27965 27966 27985 27986 27987 27988 27989 27990 27931 27932 27933 27934 27935 27936 30001 30002 30003 30004 30005 30006 28105 28106 28107 28108 28109 28110 28159 28160 28161 28162 28163 28164 48 28303 28304 28305 28306 28307 28308 30265 30266 30267 30268 30269 30270 28135 28136 28137 28138 28139 28140 28159 28160 28161 28162 28163 28164 28105 28106 28107 28108 28109 28110 30007 30008 30009 30010 30011 30012 28273 28274 28275 28276 28277 28278 28327 28328 28329 28330 28331 28332 48 21007 21008 21009 21010 21011 21012 30271 30272 30273 30274 30275 30276 28303 28304 28305 28306 28307 28308 28327 28328 28329 28330 28331 28332 28273 28274 28275 28276 28277 28278 30013 30014 30015 30016 30017 30018 20893 20894 20895 20896 20897 20898 28471 28472 28473 28474 28475 28476 48 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 28471 28472 28473 28474 28475 28476 20893 20894 20895 20896 20897 20898 20887 20888 20889 20890 20891 20892 20881 20882 20883 20884 20885 20886 28603 28604 28605 28606 28607 28608 48 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 20995 20996 20997 20998 20999 21000 28603 28604 28605 28606 28607 28608 20881 20882 20883 20884 20885 20886 20929 20930 20931 20932 20933 20934 20923 20924 20925 20926 20927 20928 28729 28730 28731 28732 28733 28734 48 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21037 21038 21039 21040 21041 21042 28729 28730 28731 28732 28733 28734 20923 20924 20925 20926 20927 20928 20953 20954 20955 20956 20957 20958 20947 20948 20949 20950 20951 20952 28855 28856 28857 28858 28859 28860 48 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21061 21062 21063 21064 21065 21066 28855 28856 28857 28858 28859 28860 20947 20948 20949 20950 20951 20952 20977 20978 20979 20980 20981 20982 20971 20972 20973 20974 20975 20976 28993 28994 28995 28996 28997 28998 48 29125 29126 29127 29128 29129 29130 30277 30278 30279 30280 30281 30282 21085 21086 21087 21088 21089 21090 28993 28994 28995 28996 28997 28998 20971 20972 20973 20974 20975 20976 30019 30020 30021 30022 30023 30024 29095 29096 29097 29098 29099 29100 29149 29150 29151 29152 29153 29154 48 29281 29282 29283 29284 29285 29286 30283 30284 30285 30286 30287 30288 29125 29126 29127 29128 29129 29130 29149 29150 29151 29152 29153 29154 29095 29096 29097 29098 29099 29100 30025 30026 30027 30028 30029 30030 29251 29252 29253 29254 29255 29256 29305 29306 29307 29308 29309 29310 48 29443 29444 29445 29446 29447 29448 30289 30290 30291 30292 30293 30294 29281 29282 29283 29284 29285 29286 29305 29306 29307 29308 29309 29310 29251 29252 29253 29254 29255 29256 30031 30032 30033 30034 30035 30036 29413 29414 29415 29416 29417 29418 29467 29468 29469 29470 29471 29472 48 30295 30296 30297 30298 30299 30300 30301 30302 30303 30304 30305 30306 29443 29444 29445 29446 29447 29448 29467 29468 29469 29470 29471 29472 29413 29414 29415 29416 29417 29418 30043 30044 30045 30046 30047 30048 30037 30038 30039 30040 30041 30042 30307 30308 30309 30310 30311 30312 48 22675 22676 22677 22678 22679 22680 30313 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30061 30062 30063 30064 30065 30066 30055 30056 30057 30058 30059 30060 22645 22646 22647 22648 22649 22650 22699 22700 22701 22702 22703 22704 48 22855 22856 22857 22858 22859 22860 30331 30332 30333 30334 30335 30336 22675 22676 22677 22678 22679 22680 22699 22700 22701 22702 22703 22704 22645 22646 22647 22648 22649 22650 30073 30074 30075 30076 30077 30078 22819 22820 22821 22822 22823 22824 22879 22880 22881 22882 22883 22884 48 23035 23036 23037 23038 23039 23040 30337 30338 30339 30340 30341 30342 22855 22856 22857 22858 22859 22860 22879 22880 22881 22882 22883 22884 22819 22820 22821 22822 22823 22824 30079 30080 30081 30082 30083 30084 22999 23000 23001 23002 23003 23004 23059 23060 23061 23062 23063 23064 48 23197 23198 23199 23200 23201 23202 30343 30344 30345 30346 30347 30348 23035 23036 23037 23038 23039 23040 23059 23060 23061 23062 23063 23064 22999 23000 23001 23002 23003 23004 30085 30086 30087 30088 30089 30090 23167 23168 23169 23170 23171 23172 23221 23222 23223 23224 23225 23226 48 23365 23366 23367 23368 23369 23370 30349 30350 30351 30352 30353 30354 23197 23198 23199 23200 23201 23202 23221 23222 23223 23224 23225 23226 23167 23168 23169 23170 23171 23172 30091 30092 30093 30094 30095 30096 23335 23336 23337 23338 23339 23340 23389 23390 23391 23392 23393 23394 48 23551 23552 23553 23554 23555 23556 30355 30356 30357 30358 30359 30360 23365 23366 23367 23368 23369 23370 23389 23390 23391 23392 23393 23394 23335 23336 23337 23338 23339 23340 30097 30098 30099 30100 30101 30102 23515 23516 23517 23518 23519 23520 23575 23576 23577 23578 23579 23580 48 23713 23714 23715 23716 23717 23718 30361 30362 30363 30364 30365 30366 23551 23552 23553 23554 23555 23556 23575 23576 23577 23578 23579 23580 23515 23516 23517 23518 23519 23520 30103 30104 30105 30106 30107 30108 23683 23684 23685 23686 23687 23688 23737 23738 23739 23740 23741 23742 48 23881 23882 23883 23884 23885 23886 30367 30368 30369 30370 30371 30372 23713 23714 23715 23716 23717 23718 23737 23738 23739 23740 23741 23742 23683 23684 23685 23686 23687 23688 30109 30110 30111 30112 30113 30114 23851 23852 23853 23854 23855 23856 23905 23906 23907 23908 23909 23910 48 24055 24056 24057 24058 24059 24060 30373 30374 30375 30376 30377 30378 23881 23882 23883 23884 23885 23886 23905 23906 23907 23908 23909 23910 23851 23852 23853 23854 23855 23856 30115 30116 30117 30118 30119 30120 24025 24026 24027 24028 24029 24030 24079 24080 24081 24082 24083 24084 48 24223 24224 24225 24226 24227 24228 30379 30380 30381 30382 30383 30384 24055 24056 24057 24058 24059 24060 24079 24080 24081 24082 24083 24084 24025 24026 24027 24028 24029 24030 30121 30122 30123 30124 30125 30126 24193 24194 24195 24196 24197 24198 24247 24248 24249 24250 24251 24252 48 24391 24392 24393 24394 24395 24396 30385 30386 30387 30388 30389 30390 24223 24224 24225 24226 24227 24228 24247 24248 24249 24250 24251 24252 24193 24194 24195 24196 24197 24198 30127 30128 30129 30130 30131 30132 24361 24362 24363 24364 24365 24366 24415 24416 24417 24418 24419 24420 48 24577 24578 24579 24580 24581 24582 30391 30392 30393 30394 30395 30396 24391 24392 24393 24394 24395 24396 24415 24416 24417 24418 24419 24420 24361 24362 24363 24364 24365 24366 30133 30134 30135 30136 30137 30138 24541 24542 24543 24544 24545 24546 24601 24602 24603 24604 24605 24606 48 24739 24740 24741 24742 24743 24744 30397 30398 30399 30400 30401 30402 24577 24578 24579 24580 24581 24582 24601 24602 24603 24604 24605 24606 24541 24542 24543 24544 24545 24546 30139 30140 30141 30142 30143 30144 24709 24710 24711 24712 24713 24714 24763 24764 24765 24766 24767 24768 48 24907 24908 24909 24910 24911 24912 30403 30404 30405 30406 30407 30408 24739 24740 24741 24742 24743 24744 24763 24764 24765 24766 24767 24768 24709 24710 24711 24712 24713 24714 30145 30146 30147 30148 30149 30150 24877 24878 24879 24880 24881 24882 24931 24932 24933 24934 24935 24936 48 25081 25082 25083 25084 25085 25086 30409 30410 30411 30412 30413 30414 24907 24908 24909 24910 24911 24912 24931 24932 24933 24934 24935 24936 24877 24878 24879 24880 24881 24882 30151 30152 30153 30154 30155 30156 25051 25052 25053 25054 25055 25056 25105 25106 25107 25108 25109 25110 48 25249 25250 25251 25252 25253 25254 30415 30416 30417 30418 30419 30420 25081 25082 25083 25084 25085 25086 25105 25106 25107 25108 25109 25110 25051 25052 25053 25054 25055 25056 30157 30158 30159 30160 30161 30162 25219 25220 25221 25222 25223 25224 25273 25274 25275 25276 25277 25278 48 25417 25418 25419 25420 25421 25422 30421 30422 30423 30424 30425 30426 25249 25250 25251 25252 25253 25254 25273 25274 25275 25276 25277 25278 25219 25220 25221 25222 25223 25224 30163 30164 30165 30166 30167 30168 25387 25388 25389 25390 25391 25392 25441 25442 25443 25444 25445 25446 48 25603 25604 25605 25606 25607 25608 30427 30428 30429 30430 30431 30432 25417 25418 25419 25420 25421 25422 25441 25442 25443 25444 25445 25446 25387 25388 25389 25390 25391 25392 30169 30170 30171 30172 30173 30174 25567 25568 25569 25570 25571 25572 25627 25628 25629 25630 25631 25632 48 25765 25766 25767 25768 25769 25770 30433 30434 30435 30436 30437 30438 25603 25604 25605 25606 25607 25608 25627 25628 25629 25630 25631 25632 25567 25568 25569 25570 25571 25572 30175 30176 30177 30178 30179 30180 25735 25736 25737 25738 25739 25740 25789 25790 25791 25792 25793 25794 48 25933 25934 25935 25936 25937 25938 30439 30440 30441 30442 30443 30444 25765 25766 25767 25768 25769 25770 25789 25790 25791 25792 25793 25794 25735 25736 25737 25738 25739 25740 30181 30182 30183 30184 30185 30186 25903 25904 25905 25906 25907 25908 25957 25958 25959 25960 25961 25962 48 26107 26108 26109 26110 26111 26112 30445 30446 30447 30448 30449 30450 25933 25934 25935 25936 25937 25938 25957 25958 25959 25960 25961 25962 25903 25904 25905 25906 25907 25908 30187 30188 30189 30190 30191 30192 26077 26078 26079 26080 26081 26082 26131 26132 26133 26134 26135 26136 48 26275 26276 26277 26278 26279 26280 30451 30452 30453 30454 30455 30456 26107 26108 26109 26110 26111 26112 26131 26132 26133 26134 26135 26136 26077 26078 26079 26080 26081 26082 30193 30194 30195 30196 30197 30198 26245 26246 26247 26248 26249 26250 26299 26300 26301 26302 26303 26304 48 26443 26444 26445 26446 26447 26448 30457 30458 30459 30460 30461 30462 26275 26276 26277 26278 26279 26280 26299 26300 26301 26302 26303 26304 26245 26246 26247 26248 26249 26250 30199 30200 30201 30202 30203 30204 26413 26414 26415 26416 26417 26418 26467 26468 26469 26470 26471 26472 48 26629 26630 26631 26632 26633 26634 30463 30464 30465 30466 30467 30468 26443 26444 26445 26446 26447 26448 26467 26468 26469 26470 26471 26472 26413 26414 26415 26416 26417 26418 30205 30206 30207 30208 30209 30210 26593 26594 26595 26596 26597 26598 26653 26654 26655 26656 26657 26658 48 26791 26792 26793 26794 26795 26796 30469 30470 30471 30472 30473 30474 26629 26630 26631 26632 26633 26634 26653 26654 26655 26656 26657 26658 26593 26594 26595 26596 26597 26598 30211 30212 30213 30214 30215 30216 26761 26762 26763 26764 26765 26766 26815 26816 26817 26818 26819 26820 48 26959 26960 26961 26962 26963 26964 30475 30476 30477 30478 30479 30480 26791 26792 26793 26794 26795 26796 26815 26816 26817 26818 26819 26820 26761 26762 26763 26764 26765 26766 30217 30218 30219 30220 30221 30222 26929 26930 26931 26932 26933 26934 26983 26984 26985 26986 26987 26988 48 27133 27134 27135 27136 27137 27138 30481 30482 30483 30484 30485 30486 26959 26960 26961 26962 26963 26964 26983 26984 26985 26986 26987 26988 26929 26930 26931 26932 26933 26934 30223 30224 30225 30226 30227 30228 27103 27104 27105 27106 27107 27108 27157 27158 27159 27160 27161 27162 48 27301 27302 27303 27304 27305 27306 30487 30488 30489 30490 30491 30492 27133 27134 27135 27136 27137 27138 27157 27158 27159 27160 27161 27162 27103 27104 27105 27106 27107 27108 30229 30230 30231 30232 30233 30234 27271 27272 27273 27274 27275 27276 27325 27326 27327 27328 27329 27330 48 27481 27482 27483 27484 27485 27486 30493 30494 30495 30496 30497 30498 27301 27302 27303 27304 27305 27306 27325 27326 27327 27328 27329 27330 27271 27272 27273 27274 27275 27276 30235 30236 30237 30238 30239 30240 27445 27446 27447 27448 27449 27450 27505 27506 27507 27508 27509 27510 48 27661 27662 27663 27664 27665 27666 30499 30500 30501 30502 30503 30504 27481 27482 27483 27484 27485 27486 27505 27506 27507 27508 27509 27510 27445 27446 27447 27448 27449 27450 30241 30242 30243 30244 30245 30246 27625 27626 27627 27628 27629 27630 27685 27686 27687 27688 27689 27690 48 27823 27824 27825 27826 27827 27828 30505 30506 30507 30508 30509 30510 27661 27662 27663 27664 27665 27666 27685 27686 27687 27688 27689 27690 27625 27626 27627 27628 27629 27630 30247 30248 30249 30250 30251 30252 27793 27794 27795 27796 27797 27798 27847 27848 27849 27850 27851 27852 48 27991 27992 27993 27994 27995 27996 30511 30512 30513 30514 30515 30516 27823 27824 27825 27826 27827 27828 27847 27848 27849 27850 27851 27852 27793 27794 27795 27796 27797 27798 30253 30254 30255 30256 30257 30258 27961 27962 27963 27964 27965 27966 28015 28016 28017 28018 28019 28020 48 28165 28166 28167 28168 28169 28170 30517 30518 30519 30520 30521 30522 27991 27992 27993 27994 27995 27996 28015 28016 28017 28018 28019 28020 27961 27962 27963 27964 27965 27966 30259 30260 30261 30262 30263 30264 28135 28136 28137 28138 28139 28140 28189 28190 28191 28192 28193 28194 48 28333 28334 28335 28336 28337 28338 30523 30524 30525 30526 30527 30528 28165 28166 28167 28168 28169 28170 28189 28190 28191 28192 28193 28194 28135 28136 28137 28138 28139 28140 30265 30266 30267 30268 30269 30270 28303 28304 28305 28306 28307 28308 28357 28358 28359 28360 28361 28362 48 28477 28478 28479 28480 28481 28482 30529 30530 30531 30532 30533 30534 28333 28334 28335 28336 28337 28338 28357 28358 28359 28360 28361 28362 28303 28304 28305 28306 28307 28308 30271 30272 30273 30274 30275 30276 21007 21008 21009 21010 21011 21012 28501 28502 28503 28504 28505 28506 48 960 961 962 963 964 965 30535 30536 30537 30538 30539 30540 28477 28478 28479 28480 28481 28482 28501 28502 28503 28504 28505 28506 21007 21008 21009 21010 21011 21012 21001 21002 21003 21004 21005 21006 20995 20996 20997 20998 20999 21000 28627 28628 28629 28630 28631 28632 48 966 967 968 969 970 971 30541 30542 30543 30544 30545 30546 960 961 962 963 964 965 28627 28628 28629 28630 28631 28632 20995 20996 20997 20998 20999 21000 21043 21044 21045 21046 21047 21048 21037 21038 21039 21040 21041 21042 28753 28754 28755 28756 28757 28758 48 972 973 974 975 976 977 30547 30548 30549 30550 30551 30552 966 967 968 969 970 971 28753 28754 28755 28756 28757 28758 21037 21038 21039 21040 21041 21042 21067 21068 21069 21070 21071 21072 21061 21062 21063 21064 21065 21066 28879 28880 28881 28882 28883 28884 48 978 979 980 981 982 983 30553 30554 30555 30556 30557 30558 972 973 974 975 976 977 28879 28880 28881 28882 28883 28884 21061 21062 21063 21064 21065 21066 21091 21092 21093 21094 21095 21096 21085 21086 21087 21088 21089 21090 29017 29018 29019 29020 29021 29022 48 984 985 986 987 988 989 30559 30560 30561 30562 30563 30564 978 979 980 981 982 983 29017 29018 29019 29020 29021 29022 21085 21086 21087 21088 21089 21090 30277 30278 30279 30280 30281 30282 29125 29126 29127 29128 29129 29130 29173 29174 29175 29176 29177 29178 48 990 991 992 993 994 995 30565 30566 30567 30568 30569 30570 984 985 986 987 988 989 29173 29174 29175 29176 29177 29178 29125 29126 29127 29128 29129 29130 30283 30284 30285 30286 30287 30288 29281 29282 29283 29284 29285 29286 29329 29330 29331 29332 29333 29334 48 29473 29474 29475 29476 29477 29478 30571 30572 30573 30574 30575 30576 990 991 992 993 994 995 29329 29330 29331 29332 29333 29334 29281 29282 29283 29284 29285 29286 30289 30290 30291 30292 30293 30294 29443 29444 29445 29446 29447 29448 29497 29498 29499 29500 29501 29502 48 30577 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 29473 29474 29475 29476 29477 29478 29497 29498 29499 29500 29501 29502 29443 29444 29445 29446 29447 29448 30301 30302 30303 30304 30305 30306 30295 30296 30297 30298 30299 30300 30589 30590 30591 30592 30593 30594 48 22705 22706 22707 22708 22709 22710 30595 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30319 30320 30321 30322 30323 30324 30313 30314 30315 30316 30317 30318 22675 22676 22677 22678 22679 22680 22717 22718 22719 22720 22721 22722 48 22891 22892 22893 22894 22895 22896 30613 30614 30615 30616 30617 30618 22705 22706 22707 22708 22709 22710 22717 22718 22719 22720 22721 22722 22675 22676 22677 22678 22679 22680 30331 30332 30333 30334 30335 30336 22855 22856 22857 22858 22859 22860 22903 22904 22905 22906 22907 22908 48 23071 23072 23073 23074 23075 23076 30619 30620 30621 30622 30623 30624 22891 22892 22893 22894 22895 22896 22903 22904 22905 22906 22907 22908 22855 22856 22857 22858 22859 22860 30337 30338 30339 30340 30341 30342 23035 23036 23037 23038 23039 23040 23083 23084 23085 23086 23087 23088 48 23227 23228 23229 23230 23231 23232 30625 30626 30627 30628 30629 30630 23071 23072 23073 23074 23075 23076 23083 23084 23085 23086 23087 23088 23035 23036 23037 23038 23039 23040 30343 30344 30345 30346 30347 30348 23197 23198 23199 23200 23201 23202 23239 23240 23241 23242 23243 23244 48 23407 23408 23409 23410 23411 23412 30631 30632 30633 30634 30635 30636 23227 23228 23229 23230 23231 23232 23239 23240 23241 23242 23243 23244 23197 23198 23199 23200 23201 23202 30349 30350 30351 30352 30353 30354 23365 23366 23367 23368 23369 23370 23419 23420 23421 23422 23423 23424 48 23587 23588 23589 23590 23591 23592 30637 30638 30639 30640 30641 30642 23407 23408 23409 23410 23411 23412 23419 23420 23421 23422 23423 23424 23365 23366 23367 23368 23369 23370 30355 30356 30357 30358 30359 30360 23551 23552 23553 23554 23555 23556 23599 23600 23601 23602 23603 23604 48 23743 23744 23745 23746 23747 23748 30643 30644 30645 30646 30647 30648 23587 23588 23589 23590 23591 23592 23599 23600 23601 23602 23603 23604 23551 23552 23553 23554 23555 23556 30361 30362 30363 30364 30365 30366 23713 23714 23715 23716 23717 23718 23755 23756 23757 23758 23759 23760 48 23923 23924 23925 23926 23927 23928 30649 30650 30651 30652 30653 30654 23743 23744 23745 23746 23747 23748 23755 23756 23757 23758 23759 23760 23713 23714 23715 23716 23717 23718 30367 30368 30369 30370 30371 30372 23881 23882 23883 23884 23885 23886 23935 23936 23937 23938 23939 23940 48 24097 24098 24099 24100 24101 24102 30655 30656 30657 30658 30659 30660 23923 23924 23925 23926 23927 23928 23935 23936 23937 23938 23939 23940 23881 23882 23883 23884 23885 23886 30373 30374 30375 30376 30377 30378 24055 24056 24057 24058 24059 24060 24109 24110 24111 24112 24113 24114 48 24253 24254 24255 24256 24257 24258 30661 30662 30663 30664 30665 30666 24097 24098 24099 24100 24101 24102 24109 24110 24111 24112 24113 24114 24055 24056 24057 24058 24059 24060 30379 30380 30381 30382 30383 30384 24223 24224 24225 24226 24227 24228 24265 24266 24267 24268 24269 24270 48 24433 24434 24435 24436 24437 24438 30667 30668 30669 30670 30671 30672 24253 24254 24255 24256 24257 24258 24265 24266 24267 24268 24269 24270 24223 24224 24225 24226 24227 24228 30385 30386 30387 30388 30389 30390 24391 24392 24393 24394 24395 24396 24445 24446 24447 24448 24449 24450 48 24613 24614 24615 24616 24617 24618 30673 30674 30675 30676 30677 30678 24433 24434 24435 24436 24437 24438 24445 24446 24447 24448 24449 24450 24391 24392 24393 24394 24395 24396 30391 30392 30393 30394 30395 30396 24577 24578 24579 24580 24581 24582 24625 24626 24627 24628 24629 24630 48 24769 24770 24771 24772 24773 24774 30679 30680 30681 30682 30683 30684 24613 24614 24615 24616 24617 24618 24625 24626 24627 24628 24629 24630 24577 24578 24579 24580 24581 24582 30397 30398 30399 30400 30401 30402 24739 24740 24741 24742 24743 24744 24781 24782 24783 24784 24785 24786 48 24949 24950 24951 24952 24953 24954 30685 30686 30687 30688 30689 30690 24769 24770 24771 24772 24773 24774 24781 24782 24783 24784 24785 24786 24739 24740 24741 24742 24743 24744 30403 30404 30405 30406 30407 30408 24907 24908 24909 24910 24911 24912 24961 24962 24963 24964 24965 24966 48 25123 25124 25125 25126 25127 25128 30691 30692 30693 30694 30695 30696 24949 24950 24951 24952 24953 24954 24961 24962 24963 24964 24965 24966 24907 24908 24909 24910 24911 24912 30409 30410 30411 30412 30413 30414 25081 25082 25083 25084 25085 25086 25135 25136 25137 25138 25139 25140 48 25279 25280 25281 25282 25283 25284 30697 30698 30699 30700 30701 30702 25123 25124 25125 25126 25127 25128 25135 25136 25137 25138 25139 25140 25081 25082 25083 25084 25085 25086 30415 30416 30417 30418 30419 30420 25249 25250 25251 25252 25253 25254 25291 25292 25293 25294 25295 25296 48 25459 25460 25461 25462 25463 25464 30703 30704 30705 30706 30707 30708 25279 25280 25281 25282 25283 25284 25291 25292 25293 25294 25295 25296 25249 25250 25251 25252 25253 25254 30421 30422 30423 30424 30425 30426 25417 25418 25419 25420 25421 25422 25471 25472 25473 25474 25475 25476 48 25639 25640 25641 25642 25643 25644 30709 30710 30711 30712 30713 30714 25459 25460 25461 25462 25463 25464 25471 25472 25473 25474 25475 25476 25417 25418 25419 25420 25421 25422 30427 30428 30429 30430 30431 30432 25603 25604 25605 25606 25607 25608 25651 25652 25653 25654 25655 25656 48 25795 25796 25797 25798 25799 25800 30715 30716 30717 30718 30719 30720 25639 25640 25641 25642 25643 25644 25651 25652 25653 25654 25655 25656 25603 25604 25605 25606 25607 25608 30433 30434 30435 30436 30437 30438 25765 25766 25767 25768 25769 25770 25807 25808 25809 25810 25811 25812 48 25975 25976 25977 25978 25979 25980 30721 30722 30723 30724 30725 30726 25795 25796 25797 25798 25799 25800 25807 25808 25809 25810 25811 25812 25765 25766 25767 25768 25769 25770 30439 30440 30441 30442 30443 30444 25933 25934 25935 25936 25937 25938 25987 25988 25989 25990 25991 25992 48 26149 26150 26151 26152 26153 26154 30727 30728 30729 30730 30731 30732 25975 25976 25977 25978 25979 25980 25987 25988 25989 25990 25991 25992 25933 25934 25935 25936 25937 25938 30445 30446 30447 30448 30449 30450 26107 26108 26109 26110 26111 26112 26161 26162 26163 26164 26165 26166 48 26305 26306 26307 26308 26309 26310 30733 30734 30735 30736 30737 30738 26149 26150 26151 26152 26153 26154 26161 26162 26163 26164 26165 26166 26107 26108 26109 26110 26111 26112 30451 30452 30453 30454 30455 30456 26275 26276 26277 26278 26279 26280 26317 26318 26319 26320 26321 26322 48 26485 26486 26487 26488 26489 26490 30739 30740 30741 30742 30743 30744 26305 26306 26307 26308 26309 26310 26317 26318 26319 26320 26321 26322 26275 26276 26277 26278 26279 26280 30457 30458 30459 30460 30461 30462 26443 26444 26445 26446 26447 26448 26497 26498 26499 26500 26501 26502 48 26665 26666 26667 26668 26669 26670 30745 30746 30747 30748 30749 30750 26485 26486 26487 26488 26489 26490 26497 26498 26499 26500 26501 26502 26443 26444 26445 26446 26447 26448 30463 30464 30465 30466 30467 30468 26629 26630 26631 26632 26633 26634 26677 26678 26679 26680 26681 26682 48 26821 26822 26823 26824 26825 26826 30751 30752 30753 30754 30755 30756 26665 26666 26667 26668 26669 26670 26677 26678 26679 26680 26681 26682 26629 26630 26631 26632 26633 26634 30469 30470 30471 30472 30473 30474 26791 26792 26793 26794 26795 26796 26833 26834 26835 26836 26837 26838 48 27001 27002 27003 27004 27005 27006 30757 30758 30759 30760 30761 30762 26821 26822 26823 26824 26825 26826 26833 26834 26835 26836 26837 26838 26791 26792 26793 26794 26795 26796 30475 30476 30477 30478 30479 30480 26959 26960 26961 26962 26963 26964 27013 27014 27015 27016 27017 27018 48 27175 27176 27177 27178 27179 27180 30763 30764 30765 30766 30767 30768 27001 27002 27003 27004 27005 27006 27013 27014 27015 27016 27017 27018 26959 26960 26961 26962 26963 26964 30481 30482 30483 30484 30485 30486 27133 27134 27135 27136 27137 27138 27187 27188 27189 27190 27191 27192 48 27331 27332 27333 27334 27335 27336 30769 30770 30771 30772 30773 30774 27175 27176 27177 27178 27179 27180 27187 27188 27189 27190 27191 27192 27133 27134 27135 27136 27137 27138 30487 30488 30489 30490 30491 30492 27301 27302 27303 27304 27305 27306 27343 27344 27345 27346 27347 27348 48 27517 27518 27519 27520 27521 27522 30775 30776 30777 30778 30779 30780 27331 27332 27333 27334 27335 27336 27343 27344 27345 27346 27347 27348 27301 27302 27303 27304 27305 27306 30493 30494 30495 30496 30497 30498 27481 27482 27483 27484 27485 27486 27529 27530 27531 27532 27533 27534 48 27697 27698 27699 27700 27701 27702 30781 30782 30783 30784 30785 30786 27517 27518 27519 27520 27521 27522 27529 27530 27531 27532 27533 27534 27481 27482 27483 27484 27485 27486 30499 30500 30501 30502 30503 30504 27661 27662 27663 27664 27665 27666 27709 27710 27711 27712 27713 27714 48 27853 27854 27855 27856 27857 27858 30787 30788 30789 30790 30791 30792 27697 27698 27699 27700 27701 27702 27709 27710 27711 27712 27713 27714 27661 27662 27663 27664 27665 27666 30505 30506 30507 30508 30509 30510 27823 27824 27825 27826 27827 27828 27865 27866 27867 27868 27869 27870 48 28033 28034 28035 28036 28037 28038 30793 30794 30795 30796 30797 30798 27853 27854 27855 27856 27857 27858 27865 27866 27867 27868 27869 27870 27823 27824 27825 27826 27827 27828 30511 30512 30513 30514 30515 30516 27991 27992 27993 27994 27995 27996 28045 28046 28047 28048 28049 28050 48 28207 28208 28209 28210 28211 28212 30799 30800 30801 30802 30803 30804 28033 28034 28035 28036 28037 28038 28045 28046 28047 28048 28049 28050 27991 27992 27993 27994 27995 27996 30517 30518 30519 30520 30521 30522 28165 28166 28167 28168 28169 28170 28219 28220 28221 28222 28223 28224 48 28363 28364 28365 28366 28367 28368 30805 30806 30807 30808 30809 30810 28207 28208 28209 28210 28211 28212 28219 28220 28221 28222 28223 28224 28165 28166 28167 28168 28169 28170 30523 30524 30525 30526 30527 30528 28333 28334 28335 28336 28337 28338 28375 28376 28377 28378 28379 28380 48 28513 28514 28515 28516 28517 28518 30811 30812 30813 30814 30815 30816 28363 28364 28365 28366 28367 28368 28375 28376 28377 28378 28379 28380 28333 28334 28335 28336 28337 28338 30529 30530 30531 30532 30533 30534 28477 28478 28479 28480 28481 28482 28525 28526 28527 28528 28529 28530 48 28633 28634 28635 28636 28637 28638 30817 30818 30819 30820 30821 30822 28513 28514 28515 28516 28517 28518 28525 28526 28527 28528 28529 28530 28477 28478 28479 28480 28481 28482 30535 30536 30537 30538 30539 30540 960 961 962 963 964 965 28645 28646 28647 28648 28649 28650 48 28759 28760 28761 28762 28763 28764 30823 30824 30825 30826 30827 30828 28633 28634 28635 28636 28637 28638 28645 28646 28647 28648 28649 28650 960 961 962 963 964 965 30541 30542 30543 30544 30545 30546 966 967 968 969 970 971 28771 28772 28773 28774 28775 28776 48 28885 28886 28887 28888 28889 28890 30829 30830 30831 30832 30833 30834 28759 28760 28761 28762 28763 28764 28771 28772 28773 28774 28775 28776 966 967 968 969 970 971 30547 30548 30549 30550 30551 30552 972 973 974 975 976 977 28897 28898 28899 28900 28901 28902 48 29023 29024 29025 29026 29027 29028 30835 30836 30837 30838 30839 30840 28885 28886 28887 28888 28889 28890 28897 28898 28899 28900 28901 28902 972 973 974 975 976 977 30553 30554 30555 30556 30557 30558 978 979 980 981 982 983 29035 29036 29037 29038 29039 29040 48 29179 29180 29181 29182 29183 29184 30841 30842 30843 30844 30845 30846 29023 29024 29025 29026 29027 29028 29035 29036 29037 29038 29039 29040 978 979 980 981 982 983 30559 30560 30561 30562 30563 30564 984 985 986 987 988 989 29191 29192 29193 29194 29195 29196 48 29335 29336 29337 29338 29339 29340 30847 30848 30849 30850 30851 30852 29179 29180 29181 29182 29183 29184 29191 29192 29193 29194 29195 29196 984 985 986 987 988 989 30565 30566 30567 30568 30569 30570 990 991 992 993 994 995 29347 29348 29349 29350 29351 29352 48 29515 29516 29517 29518 29519 29520 30853 30854 30855 30856 30857 30858 29335 29336 29337 29338 29339 29340 29347 29348 29349 29350 29351 29352 990 991 992 993 994 995 30571 30572 30573 30574 30575 30576 29473 29474 29475 29476 29477 29478 29527 29528 29529 29530 29531 29532 48 30859 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 29515 29516 29517 29518 29519 29520 29527 29528 29529 29530 29531 29532 29473 29474 29475 29476 29477 29478 30583 30584 30585 30586 30587 30588 30577 30578 30579 30580 30581 30582 30871 30872 30873 30874 30875 30876 36 30883 30884 30885 30886 30887 30888 30895 30896 30897 30898 30899 30900 22597 22598 22599 22600 22601 22602 30889 30890 30891 30892 30893 30894 30901 30902 30903 30904 30905 30906 30877 30878 30879 30880 30881 30882 48 22585 22586 22587 22588 22589 22590 30907 30908 30909 30910 30911 30912 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30895 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 22597 22598 22599 22600 22601 22602 22591 22592 22593 22594 22595 22596 48 22747 22748 22749 22750 22751 22752 30925 30926 30927 30928 30929 30930 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 30931 30932 30933 30934 30935 30936 22759 22760 22761 22762 22763 22764 22753 22754 22755 22756 22757 22758 48 22927 22928 22929 22930 22931 22932 30937 30938 30939 30940 30941 30942 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 30943 30944 30945 30946 30947 30948 22939 22940 22941 22942 22943 22944 22933 22934 22935 22936 22937 22938 48 23107 23108 23109 23110 23111 23112 30949 30950 30951 30952 30953 30954 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 30955 30956 30957 30958 30959 30960 23119 23120 23121 23122 23123 23124 23113 23114 23115 23116 23117 23118 48 23269 23270 23271 23272 23273 23274 30961 30962 30963 30964 30965 30966 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 30967 30968 30969 30970 30971 30972 23281 23282 23283 23284 23285 23286 23275 23276 23277 23278 23279 23280 48 23443 23444 23445 23446 23447 23448 30973 30974 30975 30976 30977 30978 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 30979 30980 30981 30982 30983 30984 23455 23456 23457 23458 23459 23460 23449 23450 23451 23452 23453 23454 48 23623 23624 23625 23626 23627 23628 30985 30986 30987 30988 30989 30990 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 30991 30992 30993 30994 30995 30996 23635 23636 23637 23638 23639 23640 23629 23630 23631 23632 23633 23634 48 23785 23786 23787 23788 23789 23790 30997 30998 30999 31000 31001 31002 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 31003 31004 31005 31006 31007 31008 23797 23798 23799 23800 23801 23802 23791 23792 23793 23794 23795 23796 48 23959 23960 23961 23962 23963 23964 31009 31010 31011 31012 31013 31014 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 31015 31016 31017 31018 31019 31020 23971 23972 23973 23974 23975 23976 23965 23966 23967 23968 23969 23970 48 24133 24134 24135 24136 24137 24138 31021 31022 31023 31024 31025 31026 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 31027 31028 31029 31030 31031 31032 24145 24146 24147 24148 24149 24150 24139 24140 24141 24142 24143 24144 48 24295 24296 24297 24298 24299 24300 31033 31034 31035 31036 31037 31038 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 31039 31040 31041 31042 31043 31044 24307 24308 24309 24310 24311 24312 24301 24302 24303 24304 24305 24306 48 24469 24470 24471 24472 24473 24474 31045 31046 31047 31048 31049 31050 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 31051 31052 31053 31054 31055 31056 24481 24482 24483 24484 24485 24486 24475 24476 24477 24478 24479 24480 48 24649 24650 24651 24652 24653 24654 31057 31058 31059 31060 31061 31062 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 31063 31064 31065 31066 31067 31068 24661 24662 24663 24664 24665 24666 24655 24656 24657 24658 24659 24660 48 24811 24812 24813 24814 24815 24816 31069 31070 31071 31072 31073 31074 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 31075 31076 31077 31078 31079 31080 24823 24824 24825 24826 24827 24828 24817 24818 24819 24820 24821 24822 48 24985 24986 24987 24988 24989 24990 31081 31082 31083 31084 31085 31086 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 31087 31088 31089 31090 31091 31092 24997 24998 24999 25000 25001 25002 24991 24992 24993 24994 24995 24996 48 25159 25160 25161 25162 25163 25164 31093 31094 31095 31096 31097 31098 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 31099 31100 31101 31102 31103 31104 25171 25172 25173 25174 25175 25176 25165 25166 25167 25168 25169 25170 48 25321 25322 25323 25324 25325 25326 31105 31106 31107 31108 31109 31110 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 31111 31112 31113 31114 31115 31116 25333 25334 25335 25336 25337 25338 25327 25328 25329 25330 25331 25332 48 25495 25496 25497 25498 25499 25500 31117 31118 31119 31120 31121 31122 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 31123 31124 31125 31126 31127 31128 25507 25508 25509 25510 25511 25512 25501 25502 25503 25504 25505 25506 48 25675 25676 25677 25678 25679 25680 31129 31130 31131 31132 31133 31134 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 31135 31136 31137 31138 31139 31140 25687 25688 25689 25690 25691 25692 25681 25682 25683 25684 25685 25686 48 25837 25838 25839 25840 25841 25842 31141 31142 31143 31144 31145 31146 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 31147 31148 31149 31150 31151 31152 25849 25850 25851 25852 25853 25854 25843 25844 25845 25846 25847 25848 48 26011 26012 26013 26014 26015 26016 31153 31154 31155 31156 31157 31158 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 31159 31160 31161 31162 31163 31164 26023 26024 26025 26026 26027 26028 26017 26018 26019 26020 26021 26022 48 26185 26186 26187 26188 26189 26190 31165 31166 31167 31168 31169 31170 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 31171 31172 31173 31174 31175 31176 26197 26198 26199 26200 26201 26202 26191 26192 26193 26194 26195 26196 48 26347 26348 26349 26350 26351 26352 31177 31178 31179 31180 31181 31182 26185 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 31183 31184 31185 31186 31187 31188 26359 26360 26361 26362 26363 26364 26353 26354 26355 26356 26357 26358 48 26521 26522 26523 26524 26525 26526 31189 31190 31191 31192 31193 31194 26347 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 31195 31196 31197 31198 31199 31200 26533 26534 26535 26536 26537 26538 26527 26528 26529 26530 26531 26532 48 26701 26702 26703 26704 26705 26706 31201 31202 31203 31204 31205 31206 26521 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 31207 31208 31209 31210 31211 31212 26713 26714 26715 26716 26717 26718 26707 26708 26709 26710 26711 26712 48 26863 26864 26865 26866 26867 26868 31213 31214 31215 31216 31217 31218 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 31219 31220 31221 31222 31223 31224 26875 26876 26877 26878 26879 26880 26869 26870 26871 26872 26873 26874 48 27037 27038 27039 27040 27041 27042 31225 31226 31227 31228 31229 31230 26863 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 31231 31232 31233 31234 31235 31236 27049 27050 27051 27052 27053 27054 27043 27044 27045 27046 27047 27048 48 27211 27212 27213 27214 27215 27216 31237 31238 31239 31240 31241 31242 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 31243 31244 31245 31246 31247 31248 27223 27224 27225 27226 27227 27228 27217 27218 27219 27220 27221 27222 48 27373 27374 27375 27376 27377 27378 31249 31250 31251 31252 31253 31254 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 31255 31256 31257 31258 31259 31260 27385 27386 27387 27388 27389 27390 27379 27380 27381 27382 27383 27384 48 27553 27554 27555 27556 27557 27558 31261 31262 31263 31264 31265 31266 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 31267 31268 31269 31270 31271 31272 27565 27566 27567 27568 27569 27570 27559 27560 27561 27562 27563 27564 48 27733 27734 27735 27736 27737 27738 31273 31274 31275 31276 31277 31278 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 31279 31280 31281 31282 31283 31284 27745 27746 27747 27748 27749 27750 27739 27740 27741 27742 27743 27744 48 27895 27896 27897 27898 27899 27900 31285 31286 31287 31288 31289 31290 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 31291 31292 31293 31294 31295 31296 27907 27908 27909 27910 27911 27912 27901 27902 27903 27904 27905 27906 48 28069 28070 28071 28072 28073 28074 31297 31298 31299 31300 31301 31302 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 31303 31304 31305 31306 31307 31308 28081 28082 28083 28084 28085 28086 28075 28076 28077 28078 28079 28080 48 28243 28244 28245 28246 28247 28248 31309 31310 31311 31312 31313 31314 28069 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 31315 31316 31317 31318 31319 31320 28255 28256 28257 28258 28259 28260 28249 28250 28251 28252 28253 28254 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-2.dgr000066400000000000000000002601621514310134000257610ustar00rootroot000000000000002 4 2 3431 70838 858 17845 0 000 19 526 524 517 516 1715 1406 1405 1270 1269 1758 521 519 1412 1271 1717 11 10 862 9 17 524 521 519 517 1412 1271 1270 1716 520 518 1418 1272 1718 12 11 10 862 16 521 520 519 518 1418 1272 1271 1717 522 1424 1273 1862 1719 13 12 11 19 522 520 518 1424 1273 1272 1862 1718 523 1430 1274 1863 1833 1799 1796 1720 14 13 12 22 523 522 1430 1274 1273 1863 1862 1833 1799 1796 1719 525 1436 1275 1864 1834 1808 1807 1721 15 14 13 23 525 523 1436 1275 1274 1864 1863 1834 1833 1808 1807 1720 527 1442 1276 1866 1816 1815 1722 16 15 863 14 22 527 525 1442 1276 1275 1866 1864 1834 1816 1815 1721 528 1450 1449 1277 1865 1759 1723 17 16 863 15 18 528 527 1450 1449 1277 1276 1866 1865 1759 1722 529 1456 1278 1724 18 17 16 863 17 529 528 1456 1278 1277 1723 531 530 1464 1463 1279 1760 1725 19 18 864 17 19 531 530 529 1464 1463 1279 1278 1760 1724 532 1472 1471 1280 1761 1726 20 19 864 18 17 532 531 530 1472 1471 1280 1279 1761 1725 533 1478 1281 1727 21 20 19 864 17 533 532 1478 1281 1280 1726 535 534 1488 1487 1282 1762 1728 22 21 865 20 19 535 534 533 1488 1487 1282 1281 1762 1727 536 1498 1497 1283 1763 1729 23 22 865 21 17 536 535 534 1498 1497 1283 1282 1763 1728 537 1504 1284 1730 24 23 22 865 17 537 536 1504 1284 1283 1729 539 538 1512 1511 1285 1764 1731 25 24 866 23 19 539 538 537 1512 1511 1285 1284 1764 1730 540 1520 1519 1286 1765 1732 26 25 866 24 17 540 539 538 1520 1519 1286 1285 1765 1731 541 1526 1287 1733 27 26 25 866 17 541 540 1526 1287 1286 1732 543 542 1536 1535 1288 1766 1734 28 27 867 26 19 543 542 541 1536 1535 1288 1287 1766 1733 544 1544 1543 1289 1767 1735 29 28 867 27 17 544 543 542 1544 1543 1289 1288 1767 1734 545 1550 1290 1736 30 29 28 867 17 545 544 1550 1290 1289 1735 547 546 1558 1557 1291 1768 1737 31 30 868 29 19 547 546 545 1558 1557 1291 1290 1768 1736 548 1566 1565 1292 1769 1738 32 31 868 30 17 548 547 546 1566 1565 1292 1291 1769 1737 549 1572 1293 1739 33 32 31 868 17 549 548 1572 1293 1292 1738 551 550 1582 1581 1294 1770 1740 34 33 869 32 19 551 550 549 1582 1581 1294 1293 1770 1739 552 1590 1589 1295 1771 1741 35 34 869 33 17 552 551 550 1590 1589 1295 1294 1771 1740 553 1596 1296 1742 36 35 34 869 17 553 552 1596 1296 1295 1741 555 554 1604 1603 1297 1772 1743 37 36 870 35 19 555 554 553 1604 1603 1297 1296 1772 1742 556 1612 1611 1298 1773 1744 38 37 870 36 17 556 555 554 1612 1611 1298 1297 1773 1743 557 1618 1299 1745 39 38 37 870 17 557 556 1618 1299 1298 1744 559 558 1628 1627 1300 1774 1746 40 39 871 38 19 559 558 557 1628 1627 1300 1299 1774 1745 560 1636 1635 1301 1775 1747 41 40 871 39 17 560 559 558 1636 1635 1301 1300 1775 1746 561 1642 1302 1748 42 41 40 871 17 561 560 1642 1302 1301 1747 563 562 1650 1649 1303 1776 1749 43 42 872 41 19 563 562 561 1650 1649 1303 1302 1776 1748 564 1658 1657 1304 1777 1750 44 43 872 42 17 564 563 562 1658 1657 1304 1303 1777 1749 565 1664 1305 1751 45 44 43 872 17 565 564 1664 1305 1304 1750 567 566 1674 1673 1306 1778 1752 46 45 873 44 19 567 566 565 1674 1673 1306 1305 1778 1751 568 1682 1681 1307 1779 1753 47 46 873 45 17 568 567 566 1682 1681 1307 1306 1779 1752 569 1688 1308 1754 48 47 46 873 17 569 568 1688 1308 1307 1753 571 570 1698 1697 1309 1780 1755 49 48 874 47 19 571 570 569 1698 1697 1309 1308 1780 1754 572 1708 1707 1310 1781 1756 50 49 874 48 17 572 571 570 1708 1707 1310 1309 1781 1755 573 1714 1311 1757 51 50 49 874 17 573 572 1714 1311 1310 1756 316 315 314 313 271 267 174 173 1782 51 50 17 526 1405 2317 1964 3109 524 517 516 1715 1406 1270 1269 1716 10 9 862 2773 17 1449 2273 1963 1868 1865 528 527 1450 1277 1276 1866 1723 1722 17 16 863 2772 17 530 1463 1388 2259 1962 3105 531 529 1464 1279 1278 1725 1724 19 18 864 2771 17 530 1471 1388 2251 1961 3105 532 531 1472 1280 1279 1726 1725 20 19 864 2771 17 534 1487 1389 2235 1960 3101 535 533 1488 1282 1281 1728 1727 22 21 865 2770 17 534 1497 1389 2225 1959 3101 536 535 1498 1283 1282 1729 1728 23 22 865 2770 17 538 1511 1390 2211 1958 3097 539 537 1512 1285 1284 1731 1730 25 24 866 2769 17 538 1519 1390 2203 1957 3097 540 539 1520 1286 1285 1732 1731 26 25 866 2769 17 542 1535 1391 2187 1956 3093 543 541 1536 1288 1287 1734 1733 28 27 867 2768 17 542 1543 1391 2179 1955 3093 544 543 1544 1289 1288 1735 1734 29 28 867 2768 17 546 1557 1392 2165 1954 3089 547 545 1558 1291 1290 1737 1736 31 30 868 2767 17 546 1565 1392 2157 1953 3089 548 547 1566 1292 1291 1738 1737 32 31 868 2767 17 550 1581 1393 2141 1952 3085 551 549 1582 1294 1293 1740 1739 34 33 869 2766 17 550 1589 1393 2133 1951 3085 552 551 1590 1295 1294 1741 1740 35 34 869 2766 17 554 1603 1394 2119 1950 3081 555 553 1604 1297 1296 1743 1742 37 36 870 2765 17 554 1611 1394 2111 1949 3081 556 555 1612 1298 1297 1744 1743 38 37 870 2765 17 558 1627 1395 2095 1948 3077 559 557 1628 1300 1299 1746 1745 40 39 871 2764 17 558 1635 1395 2087 1947 3077 560 559 1636 1301 1300 1747 1746 41 40 871 2764 17 562 1649 1396 2073 1946 3073 563 561 1650 1303 1302 1749 1748 43 42 872 2763 17 562 1657 1396 2065 1945 3073 564 563 1658 1304 1303 1750 1749 44 43 872 2763 17 566 1673 1397 2049 1944 3069 567 565 1674 1306 1305 1752 1751 46 45 873 2762 17 566 1681 1397 2041 1943 3069 568 567 1682 1307 1306 1753 1752 47 46 873 2762 17 570 1697 1398 2025 1942 3065 571 569 1698 1309 1308 1755 1754 49 48 874 2761 17 570 1707 1398 2015 1941 3065 572 571 1708 1310 1309 1756 1755 50 49 874 2761 18 315 313 305 299 173 1940 3418 3310 3308 573 316 314 271 267 174 1311 1757 51 25 1939 1932 1923 1824 1822 1799 1790 1937 1915 1913 1825 1823 1809 1807 1785 1836 1835 1834 1833 1810 1808 1786 1784 1801 1796 18 1835 1833 1801 1799 1796 1790 1783 1836 1834 1810 1809 1808 1807 1786 1785 1846 1845 1844 24 1939 1937 1915 1913 1825 1824 1823 1822 1809 1807 1783 1907 1905 1817 1815 1836 1834 1816 1786 1835 1833 1810 1808 1784 17 1836 1835 1834 1833 1810 1809 1808 1807 1785 1784 1783 1817 1816 1815 1845 1846 1844 22 1935 1932 1920 1826 1824 1802 1790 1933 1913 1911 1827 1825 1811 1809 1789 1838 1837 1836 1835 1810 1788 1801 13 1837 1835 1802 1801 1790 1787 1838 1836 1811 1810 1809 1789 1846 21 1935 1933 1913 1911 1827 1826 1825 1824 1811 1809 1787 1905 1904 1818 1817 1838 1836 1837 1835 1810 1788 19 1939 1932 1923 1824 1822 1799 1783 1835 1833 1801 1796 1784 1837 1802 1788 1787 1935 1920 1826 19 1931 1920 1919 1828 1826 1803 1802 1930 1911 1910 1829 1827 1812 1811 1792 1840 1839 1838 1837 19 1931 1930 1911 1910 1829 1828 1827 1826 1812 1811 1791 1904 1903 1819 1818 1840 1838 1839 1837 20 1929 1919 1918 1830 1828 1804 1803 1928 1910 1909 1831 1829 1813 1812 1794 1842 1841 1840 1839 1805 21 1929 1928 1910 1909 1831 1830 1829 1828 1813 1812 1793 1903 1902 1820 1819 1842 1840 1806 1841 1839 1805 17 1927 1918 1830 1804 1925 1909 1908 1832 1831 1814 1813 1797 1843 1842 1841 1805 1798 20 523 522 1430 1274 1273 1863 1862 1833 1799 1720 1719 1058 1057 1844 1846 1801 1784 1835 1790 1783 20 1927 1925 1909 1908 1832 1831 1830 1814 1813 1795 1902 1901 1821 1820 1843 1842 1806 1798 1841 1805 11 1843 1842 1841 1814 1813 1805 1797 1795 1821 1820 1806 21 1923 1822 523 522 1430 1274 1273 1863 1862 1833 1796 1720 1719 1835 1801 1790 1784 1783 1939 1932 1824 7 1922 1908 1832 1814 1901 1821 1843 13 1835 1833 1799 1796 1790 1784 1783 1846 1844 1788 1837 1802 1787 17 1935 1932 1920 1826 1824 1790 1787 1837 1835 1801 1788 1839 1803 1791 1931 1919 1828 15 1931 1920 1919 1828 1826 1802 1791 1839 1837 1841 1804 1793 1929 1918 1830 11 1929 1919 1918 1830 1828 1803 1793 1841 1839 1795 1927 13 1798 1843 1842 1841 1814 1813 1797 1795 1840 1839 1812 1794 1793 9 1798 1843 1842 1821 1820 1797 1840 1819 1794 28 1915 1823 1822 525 523 1436 1275 1274 1864 1863 1834 1833 1808 1721 1720 1836 1835 1810 1809 1786 1785 1784 1783 1939 1937 1913 1825 1824 25 525 523 1436 1275 1274 1864 1863 1834 1833 1807 1721 1720 1059 1058 1845 1844 1846 1810 1786 1784 1836 1835 1809 1785 1783 30 1939 1937 1915 1913 1825 1824 1823 1822 1807 1785 1783 1836 1835 1834 1833 1810 1808 1786 1784 1838 1837 1811 1789 1788 1787 1935 1933 1911 1827 1826 20 1836 1835 1834 1833 1809 1808 1807 1786 1785 1784 1783 1846 1845 1844 1788 1838 1837 1811 1789 1787 27 1935 1933 1913 1911 1827 1826 1825 1824 1809 1789 1787 1838 1837 1836 1835 1810 1788 1840 1839 1812 1792 1791 1931 1930 1910 1829 1828 26 1931 1930 1911 1910 1829 1828 1827 1826 1811 1792 1791 1840 1839 1838 1837 1842 1841 1813 1805 1794 1793 1929 1928 1909 1831 1830 25 1929 1928 1910 1909 1831 1830 1829 1828 1812 1794 1793 1842 1841 1840 1839 1805 1843 1814 1798 1797 1795 1927 1925 1908 1832 17 1927 1925 1909 1908 1832 1831 1830 1813 1797 1795 1843 1842 1841 1805 1798 1800 1922 22 1907 1868 1865 1823 527 525 1442 1276 1275 1866 1864 1834 1816 1722 1721 1836 1817 1786 1785 1937 1905 1825 18 527 525 1442 1276 1275 1866 1864 1834 1815 1722 1721 1060 1059 1845 1786 1836 1817 1785 17 1937 1907 1905 1825 1823 1815 1785 1836 1834 1816 1786 1838 1818 1789 1933 1904 1827 15 1933 1905 1904 1827 1825 1817 1789 1838 1836 1840 1819 1792 1930 1903 1829 16 1930 1904 1903 1829 1827 1818 1792 1840 1838 1842 1820 1806 1794 1928 1902 1831 17 1928 1903 1902 1831 1829 1819 1794 1842 1840 1806 1843 1821 1798 1797 1925 1901 1832 13 1925 1902 1901 1832 1831 1820 1797 1843 1842 1806 1798 1800 1922 15 1923 1799 1939 1932 1824 1790 1783 1937 1915 1913 1825 1823 1809 1807 1785 17 1915 1822 1807 1939 1937 1913 1825 1824 1809 1785 1783 1907 1905 1817 1815 1868 1865 25 1939 1932 1923 1822 1799 1790 1783 1935 1920 1826 1802 1787 1933 1913 1911 1827 1825 1811 1809 1789 1937 1915 1823 1807 1785 25 1939 1937 1915 1913 1824 1823 1822 1809 1807 1785 1783 1935 1933 1911 1827 1826 1811 1789 1787 1905 1904 1818 1817 1907 1815 25 1935 1932 1920 1824 1802 1790 1787 1931 1919 1828 1803 1791 1930 1911 1910 1829 1827 1812 1811 1792 1933 1913 1825 1809 1789 25 1935 1933 1913 1911 1826 1825 1824 1811 1809 1789 1787 1931 1930 1910 1829 1828 1812 1792 1791 1904 1903 1819 1818 1905 1817 25 1931 1920 1919 1826 1803 1802 1791 1929 1918 1830 1804 1793 1928 1910 1909 1831 1829 1813 1812 1794 1930 1911 1827 1811 1792 25 1931 1930 1911 1910 1828 1827 1826 1812 1811 1792 1791 1929 1928 1909 1831 1830 1813 1794 1793 1903 1902 1820 1819 1904 1818 22 1929 1919 1918 1828 1804 1803 1793 1927 1795 1925 1909 1908 1832 1831 1814 1813 1797 1928 1910 1829 1812 1794 24 1929 1928 1910 1909 1830 1829 1828 1813 1812 1794 1793 1927 1925 1908 1832 1814 1797 1795 1902 1901 1821 1820 1903 1819 16 1927 1925 1909 1908 1831 1830 1814 1813 1797 1795 1922 1800 1901 1821 1902 1820 29 523 522 1430 1274 1273 1863 1862 1799 1796 1720 1719 1835 1801 1790 1784 1783 1836 1834 1810 1809 1808 1807 1786 1785 525 1436 1275 1864 1721 28 525 523 1436 1275 1274 1864 1863 1833 1808 1807 1721 1720 1836 1835 1810 1809 1786 1785 1784 1783 1817 1816 1815 527 1442 1276 1866 1722 22 1833 1801 1799 1796 1790 1784 1783 1837 1802 1788 1787 1838 1836 1811 1810 1809 1789 1834 1808 1807 1786 1785 21 1835 1834 1833 1810 1809 1808 1807 1786 1785 1784 1783 1838 1837 1811 1789 1788 1787 1818 1817 1816 1815 18 1835 1802 1801 1790 1788 1787 1839 1803 1791 1840 1838 1812 1811 1792 1836 1810 1809 1789 17 1837 1836 1835 1811 1810 1809 1789 1788 1787 1840 1839 1812 1792 1791 1819 1818 1817 16 1837 1803 1802 1791 1841 1804 1793 1842 1840 1813 1812 1805 1794 1838 1811 1792 17 1839 1838 1837 1812 1811 1792 1791 1842 1841 1813 1805 1794 1793 1820 1819 1806 1818 15 1839 1804 1803 1793 1795 1843 1842 1814 1813 1805 1798 1797 1840 1812 1794 17 1841 1840 1839 1813 1812 1805 1794 1793 1843 1814 1798 1797 1795 1821 1820 1806 1819 12 1842 1841 1814 1813 1805 1798 1797 1795 1800 1821 1820 1806 16 523 522 1430 1058 1057 1796 1846 1801 1784 1845 1810 1808 1786 525 1436 1059 15 525 523 1436 1059 1058 1844 1808 1846 1810 1786 1784 1816 527 1442 1060 9 1844 1801 1796 1784 1788 1810 1845 1808 1786 19 687 686 1428 1427 1188 1187 1145 1144 1848 684 682 1422 1421 1186 1143 60 54 61 55 19 689 687 1434 1433 1189 1188 1146 1145 1849 686 1428 1427 1187 1144 1847 61 55 62 56 20 691 689 1440 1439 1190 1189 1147 1146 1851 687 1434 1433 1188 1145 1848 62 56 63 57 1850 15 1883 1445 2277 692 691 1447 1446 1191 1190 1148 1147 1851 63 57 1849 18 691 689 1440 1439 1190 1189 1147 1146 1849 63 57 1850 692 1447 1446 1445 1191 1148 19 639 638 1429 1428 1231 1230 1188 1187 1853 636 634 1423 1422 1229 1186 66 60 67 61 19 641 639 1435 1434 1232 1231 1189 1188 1854 638 1429 1428 1230 1187 1852 67 61 68 62 20 643 641 1441 1440 1233 1232 1190 1189 1856 639 1435 1434 1231 1188 1853 68 62 69 63 1855 13 1878 644 643 1448 1447 1234 1233 1191 1190 1856 69 63 1854 17 643 641 1441 1440 1233 1232 1190 1189 1854 69 63 1855 644 1448 1447 1234 1191 19 581 580 1430 1429 1274 1273 1231 1230 1858 578 576 1424 1423 1272 1229 72 66 73 67 19 583 581 1436 1435 1275 1274 1232 1231 1859 580 1430 1429 1273 1230 1857 73 67 74 68 20 585 583 1442 1441 1276 1275 1233 1232 1861 581 1436 1435 1274 1231 1858 74 68 75 69 1860 15 1873 1449 2273 586 585 1450 1448 1277 1276 1234 1233 1861 75 69 1859 18 585 583 1442 1441 1276 1275 1233 1232 1859 75 69 1860 586 1450 1449 1448 1277 1234 18 523 522 1430 1274 1273 1863 1833 1799 1796 1720 1719 520 518 1424 1272 1718 72 73 21 525 523 1436 1275 1274 1864 1834 1833 1808 1807 1721 1720 522 1430 1273 1862 1799 1796 1719 73 74 22 527 525 1442 1276 1275 1866 1834 1816 1815 1722 1721 523 1436 1274 1863 1833 1808 1807 1720 74 75 1865 18 1907 1868 1823 1815 1449 2273 1963 1759 528 527 1450 1277 1276 1866 1723 1722 75 1864 19 527 525 1442 1276 1275 1864 1834 1816 1815 1722 1721 75 1865 528 1450 1449 1277 1759 1723 19 2360 2359 2280 2001 2000 1907 1906 1899 1869 3110 3108 76 1868 2358 2273 2272 1999 1963 3107 18 1907 1865 1823 1815 1449 2273 1963 1759 2359 2358 2272 2000 1999 1867 3108 3107 76 1869 22 2360 2359 2280 2001 2000 1907 1906 1899 1867 3110 3108 2361 2286 2002 1915 1914 1900 1870 3112 77 76 1868 21 2361 2360 2286 2002 2001 1915 1914 1900 1899 1869 3112 3110 2362 2292 2003 1926 1923 1871 3113 78 77 18 2362 2361 2292 2003 2002 1926 1923 1900 1870 3113 3112 2363 2298 2004 3117 3115 79 78 18 2403 2402 2360 2359 2281 2280 1874 3052 3050 82 76 1873 2401 2358 2274 2273 2272 3049 15 1860 1449 2273 2402 2401 2359 2358 2274 2272 1872 3050 3049 82 76 1874 20 2403 2402 2360 2359 2281 2280 1872 3052 3050 2404 2361 2287 2286 1875 3054 83 77 82 76 1873 19 2404 2403 2361 2360 2287 2286 1874 3054 3052 2405 2362 2293 2292 1876 3055 84 78 83 77 19 2405 2404 2362 2361 2293 2292 1875 3055 3054 2406 2363 2299 2298 3059 3057 85 79 84 78 17 2446 2445 2403 2402 2282 2281 1879 2994 2992 88 82 1878 2444 2401 2275 2274 2991 13 1855 2445 2444 2402 2401 2275 2274 1877 2992 2991 88 82 1879 20 2446 2445 2403 2402 2282 2281 1877 2994 2992 2447 2404 2288 2287 1880 2996 89 83 88 82 1878 19 2447 2446 2404 2403 2288 2287 1879 2996 2994 2448 2405 2294 2293 1881 2997 90 84 89 83 19 2448 2447 2405 2404 2294 2293 1880 2997 2996 2449 2406 2300 2299 3001 2999 91 85 90 84 18 2489 2488 2446 2445 2283 2282 1884 2946 2944 94 88 1883 2487 2444 2277 2276 2275 2943 15 1850 1445 2277 2488 2487 2445 2444 2276 2275 1882 2944 2943 94 88 1884 20 2489 2488 2446 2445 2283 2282 1882 2946 2944 2490 2447 2289 2288 1885 2948 95 89 94 88 1883 19 2490 2489 2447 2446 2289 2288 1884 2948 2946 2491 2448 2295 2294 1886 2949 96 90 95 89 19 2491 2490 2448 2447 2295 2294 1885 2949 2948 2492 2449 2301 2300 2953 2951 97 91 96 90 9 1938 1926 1921 1889 1934 1912 1936 1914 1888 15 2286 1914 1889 3112 3110 2577 2576 1938 1936 1912 1887 1906 2280 3108 2575 16 2292 1926 3113 3112 2578 2577 1938 1921 1887 1936 1914 1912 1888 2286 3110 2576 12 1927 1925 1924 1917 1909 1908 1892 1891 1922 1901 1916 1902 17 1929 1928 1917 1910 1909 1894 1893 1892 1927 1925 1924 1908 1890 1916 1902 1901 1903 15 1929 1919 1918 1894 1927 1925 1924 1917 1909 1908 1891 1890 1928 1910 1893 17 1931 1930 1911 1910 1896 1895 1894 1929 1928 1917 1909 1892 1891 1916 1903 1902 1904 16 1931 1920 1919 1896 1929 1918 1892 1928 1917 1910 1909 1893 1891 1930 1911 1895 17 1935 1934 1933 1913 1912 1911 1898 1897 1896 1931 1930 1910 1894 1893 1904 1903 1905 18 1935 1934 1932 1921 1920 1898 1931 1919 1894 1930 1911 1910 1895 1893 1933 1913 1912 1897 21 1939 1938 1937 1936 1915 1914 1913 1912 1900 1899 1898 1935 1934 1933 1911 1896 1895 1905 1904 1907 1906 22 1939 1938 1932 1926 1923 1921 1900 1935 1934 1920 1896 1933 1913 1912 1911 1897 1895 1937 1936 1915 1914 1899 28 2361 2360 2286 2002 2001 1915 1914 1900 1870 1869 3112 3110 1939 1938 1937 1936 1913 1912 1898 1897 1907 1906 1905 2359 2280 2000 1867 3108 29 2362 2361 2292 2003 2002 1926 1923 1871 1870 3113 3112 1939 1938 1932 1921 1898 1937 1936 1915 1914 1913 1912 1899 1897 2360 2286 2001 1869 3110 13 1925 1902 1832 1831 1821 1820 1797 1924 1916 1891 1890 1922 1800 17 1928 1903 1831 1829 1820 1819 1794 1916 1893 1891 1925 1924 1901 1890 1832 1821 1797 16 1930 1904 1829 1827 1819 1818 1792 1895 1893 1928 1916 1902 1891 1831 1820 1794 15 1933 1905 1827 1825 1818 1817 1789 1897 1895 1930 1903 1893 1829 1819 1792 17 1937 1907 1825 1823 1817 1815 1785 1936 1906 1899 1897 1933 1904 1895 1827 1818 1789 18 2360 2359 2280 2001 2000 1907 1899 1869 1867 3110 3108 1888 2576 2575 1936 1937 1905 1897 22 1868 1865 1823 1815 2360 2359 2280 2001 2000 1906 1899 1869 1867 3110 3108 1937 1936 1905 1897 1825 1817 1785 17 1927 1925 1909 1832 1831 1830 1814 1813 1797 1795 1924 1917 1892 1891 1890 1922 1800 25 1929 1928 1910 1831 1830 1829 1828 1813 1812 1794 1793 1917 1894 1893 1892 1891 1927 1925 1924 1908 1890 1832 1814 1797 1795 26 1931 1930 1911 1829 1828 1827 1826 1812 1811 1792 1791 1896 1895 1894 1893 1929 1928 1917 1909 1892 1891 1831 1830 1813 1794 1793 27 1935 1933 1913 1827 1826 1825 1824 1811 1809 1789 1787 1934 1912 1898 1897 1896 1895 1931 1930 1910 1894 1893 1829 1828 1812 1792 1791 20 1939 1938 1937 1936 1915 1914 1913 1900 1899 1898 1897 1889 1888 1887 1934 1935 1933 1911 1896 1895 30 1939 1937 1915 1825 1824 1823 1822 1809 1807 1785 1783 1938 1936 1914 1912 1900 1899 1898 1897 1935 1934 1933 1911 1896 1895 1827 1826 1811 1789 1787 25 2361 2360 2286 2002 2001 1915 1900 1899 1870 1869 3112 3110 1889 1888 2577 2576 1938 1936 1912 1887 1939 1937 1913 1898 1897 28 1823 1822 1807 2361 2360 2286 2002 2001 1914 1900 1899 1870 1869 3112 3110 1939 1938 1937 1936 1913 1912 1898 1897 1825 1824 1809 1785 1783 9 1924 1925 1902 1901 1891 1890 1928 1903 1893 13 1924 1927 1925 1909 1908 1892 1891 1890 1929 1928 1910 1894 1893 11 1929 1919 1830 1828 1804 1803 1793 1894 1892 1927 1795 15 1931 1920 1828 1826 1803 1802 1791 1896 1894 1929 1918 1892 1830 1804 1793 17 1935 1932 1826 1824 1802 1790 1787 1934 1921 1898 1896 1931 1919 1894 1828 1803 1791 13 1939 1938 1932 1926 1923 1900 1898 1889 1887 1934 1935 1920 1896 7 1908 1832 1814 1800 1901 1821 1890 21 1822 1799 2362 2361 2292 2003 2002 1926 1900 1871 1870 3113 3112 1939 1938 1932 1921 1898 1824 1790 1783 11 1927 1925 1917 1909 1908 1892 1891 1890 1916 1902 1901 20 1927 1909 1908 1832 1831 1830 1814 1813 1797 1795 1902 1901 1821 1820 1924 1916 1891 1890 1917 1892 20 2362 2361 2292 2003 2002 1923 1900 1871 1870 3113 3112 1889 2578 2577 1938 1921 1887 1939 1932 1898 17 1918 1830 1804 1795 1925 1909 1908 1832 1831 1814 1813 1797 1924 1917 1892 1891 1890 21 1929 1910 1909 1831 1830 1829 1828 1813 1812 1794 1793 1903 1902 1820 1819 1916 1893 1891 1917 1894 1892 20 1919 1918 1830 1828 1804 1803 1793 1928 1910 1909 1831 1829 1813 1812 1794 1917 1894 1893 1892 1891 19 1931 1911 1910 1829 1828 1827 1826 1812 1811 1792 1791 1904 1903 1819 1818 1895 1893 1896 1894 19 1920 1919 1828 1826 1803 1802 1791 1930 1911 1910 1829 1827 1812 1811 1792 1896 1895 1894 1893 19 1939 1923 1824 1822 1799 1790 1783 1938 1926 1921 1900 1898 1935 1934 1920 1896 1826 1802 1787 21 1935 1913 1911 1827 1826 1825 1824 1811 1809 1789 1787 1905 1904 1818 1817 1897 1895 1934 1912 1898 1896 13 1935 1932 1921 1920 1898 1896 1933 1913 1912 1911 1897 1895 1887 22 1932 1920 1826 1824 1802 1790 1787 1933 1913 1911 1827 1825 1811 1809 1789 1934 1912 1898 1897 1896 1895 1921 17 1939 1938 1937 1915 1914 1913 1912 1900 1899 1898 1897 1907 1906 1905 1888 1889 1887 24 1939 1915 1913 1825 1824 1823 1822 1809 1807 1785 1783 1907 1905 1817 1815 1936 1906 1899 1897 1938 1914 1912 1900 1898 18 1939 1932 1926 1923 1921 1900 1898 1937 1936 1915 1914 1913 1912 1899 1897 1889 1888 1887 25 1932 1923 1824 1822 1799 1790 1783 1937 1915 1913 1825 1823 1809 1807 1785 1938 1936 1914 1912 1900 1899 1898 1897 1926 1921 18 315 313 305 299 173 1782 3418 3310 3308 2324 1965 3417 3324 3320 3309 3307 3062 100 17 570 1707 1398 2015 1781 3065 2326 2325 2014 1967 1966 3064 3063 102 101 2761 874 17 570 1697 1398 2025 1780 3065 2327 2326 2024 1968 1967 3066 3064 103 102 2761 874 17 566 1681 1397 2041 1779 3069 2329 2328 2040 1970 1969 3068 3067 105 104 2762 873 17 566 1673 1397 2049 1778 3069 2330 2329 2048 1971 1970 3070 3068 106 105 2762 873 17 562 1657 1396 2065 1777 3073 2332 2331 2064 1973 1972 3072 3071 108 107 2763 872 17 562 1649 1396 2073 1776 3073 2333 2332 2072 1974 1973 3074 3072 109 108 2763 872 17 558 1635 1395 2087 1775 3077 2335 2334 2086 1976 1975 3076 3075 111 110 2764 871 17 558 1627 1395 2095 1774 3077 2336 2335 2094 1977 1976 3078 3076 112 111 2764 871 17 554 1611 1394 2111 1773 3081 2338 2337 2110 1979 1978 3080 3079 114 113 2765 870 17 554 1603 1394 2119 1772 3081 2339 2338 2118 1980 1979 3082 3080 115 114 2765 870 17 550 1589 1393 2133 1771 3085 2341 2340 2132 1982 1981 3084 3083 117 116 2766 869 17 550 1581 1393 2141 1770 3085 2342 2341 2140 1983 1982 3086 3084 118 117 2766 869 17 546 1565 1392 2157 1769 3089 2344 2343 2156 1985 1984 3088 3087 120 119 2767 868 17 546 1557 1392 2165 1768 3089 2345 2344 2164 1986 1985 3090 3088 121 120 2767 868 17 542 1543 1391 2179 1767 3093 2347 2346 2178 1988 1987 3092 3091 123 122 2768 867 17 542 1535 1391 2187 1766 3093 2348 2347 2186 1989 1988 3094 3092 124 123 2768 867 17 538 1519 1390 2203 1765 3097 2350 2349 2202 1991 1990 3096 3095 126 125 2769 866 17 538 1511 1390 2211 1764 3097 2351 2350 2210 1992 1991 3098 3096 127 126 2769 866 17 534 1497 1389 2225 1763 3101 2353 2352 2224 1994 1993 3100 3099 129 128 2770 865 17 534 1487 1389 2235 1762 3101 2354 2353 2234 1995 1994 3102 3100 130 129 2770 865 17 530 1471 1388 2251 1761 3105 2356 2355 2250 1997 1996 3104 3103 132 131 2771 864 17 530 1463 1388 2259 1760 3105 2357 2356 2258 1998 1997 3106 3104 133 132 2771 864 17 1449 2273 1868 1865 1759 2359 2358 2272 2000 1999 1867 3108 3107 135 134 2772 863 17 526 1405 2317 1758 3109 2366 2365 2316 2007 2006 3119 3118 3111 142 141 2773 862 17 2325 2324 2008 1966 3063 3062 1940 3418 3417 3324 3320 3310 3309 3308 3307 100 101 17 2326 2325 2015 2014 1967 1941 3065 3064 3063 2324 2008 1965 3062 101 100 102 2761 19 2327 2326 2025 2024 1968 1942 3066 3065 3064 2325 2015 2014 1966 1941 3063 102 101 2761 103 17 2328 2327 2034 1969 3067 3066 2326 2025 2024 1967 1942 3065 3064 103 102 2761 104 17 2329 2328 2041 2040 1970 1943 3069 3068 3067 2327 2034 1968 3066 104 103 105 2762 19 2330 2329 2049 2048 1971 1944 3070 3069 3068 2328 2041 2040 1969 1943 3067 105 104 2762 106 17 2331 2330 2058 1972 3071 3070 2329 2049 2048 1970 1944 3069 3068 106 105 2762 107 17 2332 2331 2065 2064 1973 1945 3073 3072 3071 2330 2058 1971 3070 107 106 108 2763 19 2333 2332 2073 2072 1974 1946 3074 3073 3072 2331 2065 2064 1972 1945 3071 108 107 2763 109 17 2334 2333 2080 1975 3075 3074 2332 2073 2072 1973 1946 3073 3072 109 108 2763 110 17 2335 2334 2087 2086 1976 1947 3077 3076 3075 2333 2080 1974 3074 110 109 111 2764 19 2336 2335 2095 2094 1977 1948 3078 3077 3076 2334 2087 2086 1975 1947 3075 111 110 2764 112 17 2337 2336 2104 1978 3079 3078 2335 2095 2094 1976 1948 3077 3076 112 111 2764 113 17 2338 2337 2111 2110 1979 1949 3081 3080 3079 2336 2104 1977 3078 113 112 114 2765 19 2339 2338 2119 2118 1980 1950 3082 3081 3080 2337 2111 2110 1978 1949 3079 114 113 2765 115 17 2340 2339 2126 1981 3083 3082 2338 2119 2118 1979 1950 3081 3080 115 114 2765 116 17 2341 2340 2133 2132 1982 1951 3085 3084 3083 2339 2126 1980 3082 116 115 117 2766 19 2342 2341 2141 2140 1983 1952 3086 3085 3084 2340 2133 2132 1981 1951 3083 117 116 2766 118 17 2343 2342 2150 1984 3087 3086 2341 2141 2140 1982 1952 3085 3084 118 117 2766 119 17 2344 2343 2157 2156 1985 1953 3089 3088 3087 2342 2150 1983 3086 119 118 120 2767 19 2345 2344 2165 2164 1986 1954 3090 3089 3088 2343 2157 2156 1984 1953 3087 120 119 2767 121 17 2346 2345 2172 1987 3091 3090 2344 2165 2164 1985 1954 3089 3088 121 120 2767 122 17 2347 2346 2179 2178 1988 1955 3093 3092 3091 2345 2172 1986 3090 122 121 123 2768 19 2348 2347 2187 2186 1989 1956 3094 3093 3092 2346 2179 2178 1987 1955 3091 123 122 2768 124 17 2349 2348 2196 1990 3095 3094 2347 2187 2186 1988 1956 3093 3092 124 123 2768 125 17 2350 2349 2203 2202 1991 1957 3097 3096 3095 2348 2196 1989 3094 125 124 126 2769 19 2351 2350 2211 2210 1992 1958 3098 3097 3096 2349 2203 2202 1990 1957 3095 126 125 2769 127 17 2352 2351 2218 1993 3099 3098 2350 2211 2210 1991 1958 3097 3096 127 126 2769 128 17 2353 2352 2225 2224 1994 1959 3101 3100 3099 2351 2218 1992 3098 128 127 129 2770 19 2354 2353 2235 2234 1995 1960 3102 3101 3100 2352 2225 2224 1993 1959 3099 129 128 2770 130 17 2355 2354 2244 1996 3103 3102 2353 2235 2234 1994 1960 3101 3100 130 129 2770 131 17 2356 2355 2251 2250 1997 1961 3105 3104 3103 2354 2244 1995 3102 131 130 132 2771 19 2357 2356 2259 2258 1998 1962 3106 3105 3104 2355 2251 2250 1996 1961 3103 132 131 2771 133 17 2358 2357 2266 1999 3107 3106 2356 2259 2258 1997 1962 3105 3104 133 132 2771 134 18 2359 2358 2273 2272 2000 1963 1868 1867 3108 3107 2357 2266 1998 3106 134 133 135 2772 22 2360 2359 2280 2001 1907 1906 1899 1869 1867 3110 3108 2358 2273 2272 1999 1963 1868 3107 135 134 2772 136 23 2361 2360 2286 2002 1915 1914 1900 1899 1870 1869 3112 3110 2359 2280 2000 1907 1906 1867 3108 136 135 2772 137 22 2362 2361 2292 2003 1926 1923 1900 1871 1870 3113 3112 2360 2286 2001 1915 1914 1899 1869 3110 137 136 138 19 2363 2362 2298 2004 1871 3117 3115 3113 2361 2292 2002 1926 1923 1900 1870 3112 138 137 139 16 2364 2363 2304 2005 3117 3116 3115 3114 2362 2298 2003 1871 3113 139 138 140 17 2365 2364 2310 2006 3118 3116 3114 3111 2363 2304 2004 3117 3115 140 139 141 2773 19 2366 2365 2317 2316 2007 1964 3119 3118 3111 3109 2364 2310 2005 3116 3114 141 140 2773 142 18 2366 3242 3163 3129 3124 3119 2365 2317 2316 2006 1964 3118 3111 3109 142 141 2773 143 16 2368 2367 2325 2324 2009 3005 3004 2541 2540 2584 2583 2539 3063 3062 1966 1965 18 2411 2410 2368 2367 2010 2956 2955 2627 2626 2584 2583 2541 2540 2008 3005 3004 2325 2324 18 2454 2453 2411 2410 2011 2899 2755 2670 2669 2627 2626 2009 2956 2955 2584 2583 2368 2367 21 2497 2496 2454 2453 2013 2012 2818 2817 2757 2756 2713 2712 2670 2669 2010 2899 2755 2627 2626 2411 2410 16 2011 2817 2756 2713 2712 2670 2669 2497 2496 2454 2453 2013 2818 2757 2775 2774 21 1709 1354 1353 861 860 2775 2774 2497 2496 2012 2713 2712 2454 2453 2011 2818 2817 2757 2756 817 878 20 2369 2368 2326 2325 2017 2016 2015 3007 3006 3005 2542 2541 2585 2584 3064 3063 1967 1966 1941 3065 23 628 1707 1705 1398 1387 2017 3007 2369 2368 2326 2325 2016 2014 3006 3005 1967 1966 1941 3065 3064 3063 570 1781 23 2412 2411 2369 2368 2019 2018 2017 2958 2957 2956 2628 2627 2585 2584 2542 2541 2014 3006 3005 2326 2325 2015 3007 25 677 1705 1703 1387 1376 2019 2958 2412 2411 2369 2368 2018 2016 2957 2956 2326 2325 2015 2014 3007 3006 3005 628 1707 1398 23 2455 2454 2412 2411 2021 2020 2019 2901 2900 2899 2671 2670 2628 2627 2016 2957 2956 2585 2584 2369 2368 2017 2958 25 734 1703 1701 1376 1365 2021 2901 2455 2454 2412 2411 2020 2018 2900 2899 2369 2368 2017 2016 2958 2957 2956 677 1705 1387 24 2498 2497 2455 2454 2023 2022 2021 2820 2819 2818 2817 2714 2713 2671 2670 2018 2900 2899 2628 2627 2412 2411 2019 2901 28 817 815 1701 1699 1365 1353 1352 2023 2820 2818 2498 2497 2455 2454 2022 2020 2819 2817 2412 2411 2019 2018 2901 2900 2899 734 1703 1376 17 2020 2819 2817 2714 2713 2671 2670 2498 2497 2455 2454 2023 2021 2820 2818 2776 2775 24 1699 1353 1352 860 859 2776 2775 2498 2497 2022 2714 2713 2455 2454 2021 2020 2820 2819 2818 2817 817 815 1701 1365 20 2370 2369 2327 2326 2027 2026 2025 3008 3007 3006 2543 2542 2586 2585 3066 3064 1968 1967 1942 3065 23 628 1697 1695 1398 1387 2027 3007 2370 2369 2327 2326 2026 2024 3008 3006 1968 1967 1942 3066 3065 3064 570 1780 23 2413 2412 2370 2369 2029 2028 2027 2959 2958 2957 2629 2628 2586 2585 2543 2542 2024 3008 3006 2327 2326 2025 3007 25 677 1695 1693 1387 1376 2029 2958 2413 2412 2370 2369 2028 2026 2959 2957 2327 2326 2025 2024 3008 3007 3006 628 1697 1398 23 2456 2455 2413 2412 2031 2030 2029 2902 2901 2900 2672 2671 2629 2628 2026 2959 2957 2586 2585 2370 2369 2027 2958 25 734 1693 1691 1376 1365 2031 2901 2456 2455 2413 2412 2030 2028 2902 2900 2370 2369 2027 2026 2959 2958 2957 677 1695 1387 24 2499 2498 2456 2455 2033 2032 2031 2822 2821 2820 2819 2715 2714 2672 2671 2028 2902 2900 2629 2628 2413 2412 2029 2901 28 815 813 1691 1689 1365 1352 1351 2033 2822 2820 2499 2498 2456 2455 2032 2030 2821 2819 2413 2412 2029 2028 2902 2901 2900 734 1693 1376 17 2030 2821 2819 2715 2714 2672 2671 2499 2498 2456 2455 2033 2031 2822 2820 2777 2776 24 1689 1352 1351 859 858 2777 2776 2499 2498 2032 2715 2714 2456 2455 2031 2030 2822 2821 2820 2819 815 813 1691 1365 15 2371 2370 2328 2327 2035 3009 3008 2544 2543 2587 2586 3067 3066 1969 1968 18 2414 2413 2371 2370 2036 2960 2959 2630 2629 2587 2586 2544 2543 2034 3009 3008 2328 2327 18 2457 2456 2414 2413 2037 2903 2902 2673 2672 2630 2629 2035 2960 2959 2587 2586 2371 2370 21 2500 2499 2457 2456 2039 2038 2824 2823 2822 2821 2716 2715 2673 2672 2036 2903 2902 2630 2629 2414 2413 16 2037 2823 2821 2716 2715 2673 2672 2500 2499 2457 2456 2039 2824 2822 2778 2777 21 857 1683 1351 1350 858 2778 2777 2500 2499 2038 2716 2715 2457 2456 2037 2824 2823 2822 2821 813 811 19 2372 2371 2329 2328 2042 2041 3011 3010 3009 2545 2544 2588 2587 3068 3067 1970 1969 1943 3069 21 624 1681 1397 1386 3011 2372 2371 2329 2328 2042 2040 3010 3009 1970 1969 1943 3069 3068 3067 566 1779 20 2415 2414 2372 2371 2043 2961 2960 2631 2630 2588 2587 2545 2544 2040 3010 3009 2329 2328 2041 3011 20 2458 2457 2415 2414 2045 2044 2905 2904 2903 2674 2673 2631 2630 2042 2961 2960 2588 2587 2372 2371 23 2501 2500 2458 2457 2047 2046 2045 2826 2825 2824 2823 2717 2716 2674 2673 2043 2904 2903 2631 2630 2415 2414 2905 26 811 809 1677 1675 1364 1350 1349 2047 2826 2824 2501 2500 2458 2457 2046 2044 2825 2823 2415 2414 2043 2905 2904 2903 730 1375 17 2044 2825 2823 2717 2716 2674 2673 2501 2500 2458 2457 2047 2045 2826 2824 2779 2778 24 857 856 1675 1350 1349 2779 2778 2501 2500 2046 2717 2716 2458 2457 2045 2044 2826 2825 2824 2823 811 809 1677 1364 20 2373 2372 2330 2329 2051 2050 2049 3012 3011 3010 2546 2545 2589 2588 3070 3068 1971 1970 1944 3069 23 624 1673 1671 1397 1386 2051 3011 2373 2372 2330 2329 2050 2048 3012 3010 1971 1970 1944 3070 3069 3068 566 1778 22 2416 2415 2373 2372 2053 2052 2051 2962 2961 2632 2631 2589 2588 2546 2545 2048 3012 3010 2330 2329 2049 3011 23 1671 1669 1386 1375 2053 2416 2415 2373 2372 2052 2050 2962 2961 2330 2329 2049 2048 3012 3011 3010 624 1673 1397 22 2459 2458 2416 2415 2055 2054 2053 2906 2905 2904 2675 2674 2632 2631 2050 2962 2961 2589 2588 2373 2372 2051 23 730 1669 1667 1375 1364 2055 2905 2459 2458 2416 2415 2054 2052 2906 2904 2373 2372 2051 2050 2962 2961 1671 1386 24 2502 2501 2459 2458 2057 2056 2055 2828 2827 2826 2825 2718 2717 2675 2674 2052 2906 2904 2632 2631 2416 2415 2053 2905 28 809 807 1667 1665 1364 1349 1348 2057 2828 2826 2502 2501 2459 2458 2056 2054 2827 2825 2416 2415 2053 2052 2906 2905 2904 730 1669 1375 17 2054 2827 2825 2718 2717 2675 2674 2502 2501 2459 2458 2057 2055 2828 2826 2780 2779 24 856 855 1665 1349 1348 2780 2779 2502 2501 2056 2718 2717 2459 2458 2055 2054 2828 2827 2826 2825 809 807 1667 1364 15 2374 2373 2331 2330 2059 3013 3012 2547 2546 2590 2589 3071 3070 1972 1971 18 2417 2416 2374 2373 2060 2963 2962 2633 2632 2590 2589 2547 2546 2058 3013 3012 2331 2330 18 2460 2459 2417 2416 2061 2907 2906 2676 2675 2633 2632 2059 2963 2962 2590 2589 2374 2373 21 2503 2502 2460 2459 2063 2062 2830 2829 2828 2827 2719 2718 2676 2675 2060 2907 2906 2633 2632 2417 2416 16 2061 2829 2827 2719 2718 2676 2675 2503 2502 2460 2459 2063 2830 2828 2781 2780 21 855 854 1659 1348 1347 2781 2780 2503 2502 2062 2719 2718 2460 2459 2061 2830 2829 2828 2827 807 805 19 2375 2374 2332 2331 2066 2065 3015 3014 3013 2548 2547 2591 2590 3072 3071 1973 1972 1945 3073 21 620 1657 1396 1385 3015 2375 2374 2332 2331 2066 2064 3014 3013 1973 1972 1945 3073 3072 3071 562 1777 20 2418 2417 2375 2374 2067 2964 2963 2634 2633 2591 2590 2548 2547 2064 3014 3013 2332 2331 2065 3015 20 2461 2460 2418 2417 2069 2068 2909 2908 2907 2677 2676 2634 2633 2066 2964 2963 2591 2590 2375 2374 23 2504 2503 2461 2460 2071 2070 2069 2832 2831 2830 2829 2720 2719 2677 2676 2067 2908 2907 2634 2633 2418 2417 2909 26 805 803 1653 1651 1363 1347 1346 2071 2832 2830 2504 2503 2461 2460 2070 2068 2831 2829 2418 2417 2067 2909 2908 2907 726 1374 17 2068 2831 2829 2720 2719 2677 2676 2504 2503 2461 2460 2071 2069 2832 2830 2782 2781 24 854 853 1651 1347 1346 2782 2781 2504 2503 2070 2720 2719 2461 2460 2069 2068 2832 2831 2830 2829 805 803 1653 1363 19 2376 2375 2333 2332 2074 2073 3016 3015 3014 2549 2548 2592 2591 3074 3072 1974 1973 1946 3073 21 620 1649 1396 1385 3015 2376 2375 2333 2332 2074 2072 3016 3014 1974 1973 1946 3074 3073 3072 562 1776 20 2419 2418 2376 2375 2075 2965 2964 2635 2634 2592 2591 2549 2548 2072 3016 3014 2333 2332 2073 3015 20 2462 2461 2419 2418 2077 2076 2910 2909 2908 2678 2677 2635 2634 2074 2965 2964 2592 2591 2376 2375 23 2505 2504 2462 2461 2079 2078 2077 2834 2833 2832 2831 2721 2720 2678 2677 2075 2910 2908 2635 2634 2419 2418 2909 26 803 801 1645 1643 1363 1346 1345 2079 2834 2832 2505 2504 2462 2461 2078 2076 2833 2831 2419 2418 2075 2910 2909 2908 726 1374 17 2076 2833 2831 2721 2720 2678 2677 2505 2504 2462 2461 2079 2077 2834 2832 2783 2782 24 853 852 1643 1346 1345 2783 2782 2505 2504 2078 2721 2720 2462 2461 2077 2076 2834 2833 2832 2831 803 801 1645 1363 15 2377 2376 2334 2333 2081 3017 3016 2550 2549 2593 2592 3075 3074 1975 1974 18 2420 2419 2377 2376 2082 2966 2965 2636 2635 2593 2592 2550 2549 2080 3017 3016 2334 2333 18 2463 2462 2420 2419 2083 2911 2910 2679 2678 2636 2635 2081 2966 2965 2593 2592 2377 2376 21 2506 2505 2463 2462 2085 2084 2836 2835 2834 2833 2722 2721 2679 2678 2082 2911 2910 2636 2635 2420 2419 16 2083 2835 2833 2722 2721 2679 2678 2506 2505 2463 2462 2085 2836 2834 2784 2783 21 852 851 1637 1345 1344 2784 2783 2506 2505 2084 2722 2721 2463 2462 2083 2836 2835 2834 2833 801 799 19 2378 2377 2335 2334 2088 2087 3019 3018 3017 2551 2550 2594 2593 3076 3075 1976 1975 1947 3077 21 616 1635 1395 1384 3019 2378 2377 2335 2334 2088 2086 3018 3017 1976 1975 1947 3077 3076 3075 558 1775 20 2421 2420 2378 2377 2089 2967 2966 2637 2636 2594 2593 2551 2550 2086 3018 3017 2335 2334 2087 3019 20 2464 2463 2421 2420 2091 2090 2913 2912 2911 2680 2679 2637 2636 2088 2967 2966 2594 2593 2378 2377 23 2507 2506 2464 2463 2093 2092 2091 2838 2837 2836 2835 2723 2722 2680 2679 2089 2912 2911 2637 2636 2421 2420 2913 26 799 797 1631 1629 1362 1344 1343 2093 2838 2836 2507 2506 2464 2463 2092 2090 2837 2835 2421 2420 2089 2913 2912 2911 722 1373 17 2090 2837 2835 2723 2722 2680 2679 2507 2506 2464 2463 2093 2091 2838 2836 2785 2784 24 851 850 1629 1344 1343 2785 2784 2507 2506 2092 2723 2722 2464 2463 2091 2090 2838 2837 2836 2835 799 797 1631 1362 20 2379 2378 2336 2335 2097 2096 2095 3020 3019 3018 2552 2551 2595 2594 3078 3076 1977 1976 1948 3077 23 616 1627 1625 1395 1384 2097 3019 2379 2378 2336 2335 2096 2094 3020 3018 1977 1976 1948 3078 3077 3076 558 1774 22 2422 2421 2379 2378 2099 2098 2097 2968 2967 2638 2637 2595 2594 2552 2551 2094 3020 3018 2336 2335 2095 3019 23 1625 1623 1384 1373 2099 2422 2421 2379 2378 2098 2096 2968 2967 2336 2335 2095 2094 3020 3019 3018 616 1627 1395 22 2465 2464 2422 2421 2101 2100 2099 2914 2913 2912 2681 2680 2638 2637 2096 2968 2967 2595 2594 2379 2378 2097 23 722 1623 1621 1373 1362 2101 2913 2465 2464 2422 2421 2100 2098 2914 2912 2379 2378 2097 2096 2968 2967 1625 1384 24 2508 2507 2465 2464 2103 2102 2101 2840 2839 2838 2837 2724 2723 2681 2680 2098 2914 2912 2638 2637 2422 2421 2099 2913 28 797 795 1621 1619 1362 1343 1342 2103 2840 2838 2508 2507 2465 2464 2102 2100 2839 2837 2422 2421 2099 2098 2914 2913 2912 722 1623 1373 17 2100 2839 2837 2724 2723 2681 2680 2508 2507 2465 2464 2103 2101 2840 2838 2786 2785 24 850 849 1619 1343 1342 2786 2785 2508 2507 2102 2724 2723 2465 2464 2101 2100 2840 2839 2838 2837 797 795 1621 1362 15 2380 2379 2337 2336 2105 3021 3020 2553 2552 2596 2595 3079 3078 1978 1977 18 2423 2422 2380 2379 2106 2969 2968 2639 2638 2596 2595 2553 2552 2104 3021 3020 2337 2336 18 2466 2465 2423 2422 2107 2915 2914 2682 2681 2639 2638 2105 2969 2968 2596 2595 2380 2379 21 2509 2508 2466 2465 2109 2108 2842 2841 2840 2839 2725 2724 2682 2681 2106 2915 2914 2639 2638 2423 2422 16 2107 2841 2839 2725 2724 2682 2681 2509 2508 2466 2465 2109 2842 2840 2787 2786 21 849 848 1613 1342 1341 2787 2786 2509 2508 2108 2725 2724 2466 2465 2107 2842 2841 2840 2839 795 793 19 2381 2380 2338 2337 2112 2111 3023 3022 3021 2554 2553 2597 2596 3080 3079 1979 1978 1949 3081 21 612 1611 1394 1383 3023 2381 2380 2338 2337 2112 2110 3022 3021 1979 1978 1949 3081 3080 3079 554 1773 20 2424 2423 2381 2380 2113 2970 2969 2640 2639 2597 2596 2554 2553 2110 3022 3021 2338 2337 2111 3023 20 2467 2466 2424 2423 2115 2114 2917 2916 2915 2683 2682 2640 2639 2112 2970 2969 2597 2596 2381 2380 23 2510 2509 2467 2466 2117 2116 2115 2844 2843 2842 2841 2726 2725 2683 2682 2113 2916 2915 2640 2639 2424 2423 2917 26 793 791 1607 1605 1361 1341 1340 2117 2844 2842 2510 2509 2467 2466 2116 2114 2843 2841 2424 2423 2113 2917 2916 2915 718 1372 17 2114 2843 2841 2726 2725 2683 2682 2510 2509 2467 2466 2117 2115 2844 2842 2788 2787 24 848 847 1605 1341 1340 2788 2787 2510 2509 2116 2726 2725 2467 2466 2115 2114 2844 2843 2842 2841 793 791 1607 1361 19 2382 2381 2339 2338 2120 2119 3024 3023 3022 2555 2554 2598 2597 3082 3080 1980 1979 1950 3081 21 612 1603 1394 1383 3023 2382 2381 2339 2338 2120 2118 3024 3022 1980 1979 1950 3082 3081 3080 554 1772 20 2425 2424 2382 2381 2121 2971 2970 2641 2640 2598 2597 2555 2554 2118 3024 3022 2339 2338 2119 3023 20 2468 2467 2425 2424 2123 2122 2918 2917 2916 2684 2683 2641 2640 2120 2971 2970 2598 2597 2382 2381 23 2511 2510 2468 2467 2125 2124 2123 2846 2845 2844 2843 2727 2726 2684 2683 2121 2918 2916 2641 2640 2425 2424 2917 26 791 789 1599 1597 1361 1340 1339 2125 2846 2844 2511 2510 2468 2467 2124 2122 2845 2843 2425 2424 2121 2918 2917 2916 718 1372 17 2122 2845 2843 2727 2726 2684 2683 2511 2510 2468 2467 2125 2123 2846 2844 2789 2788 24 847 846 1597 1340 1339 2789 2788 2511 2510 2124 2727 2726 2468 2467 2123 2122 2846 2845 2844 2843 791 789 1599 1361 15 2383 2382 2340 2339 2127 3025 3024 2556 2555 2599 2598 3083 3082 1981 1980 18 2426 2425 2383 2382 2128 2972 2971 2642 2641 2599 2598 2556 2555 2126 3025 3024 2340 2339 18 2469 2468 2426 2425 2129 2919 2918 2685 2684 2642 2641 2127 2972 2971 2599 2598 2383 2382 21 2512 2511 2469 2468 2131 2130 2848 2847 2846 2845 2728 2727 2685 2684 2128 2919 2918 2642 2641 2426 2425 16 2129 2847 2845 2728 2727 2685 2684 2512 2511 2469 2468 2131 2848 2846 2790 2789 21 846 845 1591 1339 1338 2790 2789 2512 2511 2130 2728 2727 2469 2468 2129 2848 2847 2846 2845 789 787 19 2384 2383 2341 2340 2134 2133 3027 3026 3025 2557 2556 2600 2599 3084 3083 1982 1981 1951 3085 21 608 1589 1393 1382 3027 2384 2383 2341 2340 2134 2132 3026 3025 1982 1981 1951 3085 3084 3083 550 1771 20 2427 2426 2384 2383 2135 2973 2972 2643 2642 2600 2599 2557 2556 2132 3026 3025 2341 2340 2133 3027 20 2470 2469 2427 2426 2137 2136 2921 2920 2919 2686 2685 2643 2642 2134 2973 2972 2600 2599 2384 2383 23 2513 2512 2470 2469 2139 2138 2137 2850 2849 2848 2847 2729 2728 2686 2685 2135 2920 2919 2643 2642 2427 2426 2921 26 787 785 1585 1583 1360 1338 1337 2139 2850 2848 2513 2512 2470 2469 2138 2136 2849 2847 2427 2426 2135 2921 2920 2919 714 1371 17 2136 2849 2847 2729 2728 2686 2685 2513 2512 2470 2469 2139 2137 2850 2848 2791 2790 24 845 844 1583 1338 1337 2791 2790 2513 2512 2138 2729 2728 2470 2469 2137 2136 2850 2849 2848 2847 787 785 1585 1360 20 2385 2384 2342 2341 2143 2142 2141 3028 3027 3026 2558 2557 2601 2600 3086 3084 1983 1982 1952 3085 23 608 1581 1579 1393 1382 2143 3027 2385 2384 2342 2341 2142 2140 3028 3026 1983 1982 1952 3086 3085 3084 550 1770 22 2428 2427 2385 2384 2145 2144 2143 2974 2973 2644 2643 2601 2600 2558 2557 2140 3028 3026 2342 2341 2141 3027 23 1579 1577 1382 1371 2145 2428 2427 2385 2384 2144 2142 2974 2973 2342 2341 2141 2140 3028 3027 3026 608 1581 1393 22 2471 2470 2428 2427 2147 2146 2145 2922 2921 2920 2687 2686 2644 2643 2142 2974 2973 2601 2600 2385 2384 2143 23 714 1577 1575 1371 1360 2147 2921 2471 2470 2428 2427 2146 2144 2922 2920 2385 2384 2143 2142 2974 2973 1579 1382 24 2514 2513 2471 2470 2149 2148 2147 2852 2851 2850 2849 2730 2729 2687 2686 2144 2922 2920 2644 2643 2428 2427 2145 2921 28 785 783 1575 1573 1360 1337 1336 2149 2852 2850 2514 2513 2471 2470 2148 2146 2851 2849 2428 2427 2145 2144 2922 2921 2920 714 1577 1371 17 2146 2851 2849 2730 2729 2687 2686 2514 2513 2471 2470 2149 2147 2852 2850 2792 2791 24 844 843 1573 1337 1336 2792 2791 2514 2513 2148 2730 2729 2471 2470 2147 2146 2852 2851 2850 2849 785 783 1575 1360 15 2386 2385 2343 2342 2151 3029 3028 2559 2558 2602 2601 3087 3086 1984 1983 18 2429 2428 2386 2385 2152 2975 2974 2645 2644 2602 2601 2559 2558 2150 3029 3028 2343 2342 18 2472 2471 2429 2428 2153 2923 2922 2688 2687 2645 2644 2151 2975 2974 2602 2601 2386 2385 21 2515 2514 2472 2471 2155 2154 2854 2853 2852 2851 2731 2730 2688 2687 2152 2923 2922 2645 2644 2429 2428 16 2153 2853 2851 2731 2730 2688 2687 2515 2514 2472 2471 2155 2854 2852 2793 2792 21 843 842 1567 1336 1335 2793 2792 2515 2514 2154 2731 2730 2472 2471 2153 2854 2853 2852 2851 783 781 19 2387 2386 2344 2343 2158 2157 3031 3030 3029 2560 2559 2603 2602 3088 3087 1985 1984 1953 3089 21 604 1565 1392 1381 3031 2387 2386 2344 2343 2158 2156 3030 3029 1985 1984 1953 3089 3088 3087 546 1769 20 2430 2429 2387 2386 2159 2976 2975 2646 2645 2603 2602 2560 2559 2156 3030 3029 2344 2343 2157 3031 20 2473 2472 2430 2429 2161 2160 2925 2924 2923 2689 2688 2646 2645 2158 2976 2975 2603 2602 2387 2386 23 2516 2515 2473 2472 2163 2162 2161 2856 2855 2854 2853 2732 2731 2689 2688 2159 2924 2923 2646 2645 2430 2429 2925 26 781 779 1561 1559 1359 1335 1334 2163 2856 2854 2516 2515 2473 2472 2162 2160 2855 2853 2430 2429 2159 2925 2924 2923 710 1370 17 2160 2855 2853 2732 2731 2689 2688 2516 2515 2473 2472 2163 2161 2856 2854 2794 2793 24 842 841 1559 1335 1334 2794 2793 2516 2515 2162 2732 2731 2473 2472 2161 2160 2856 2855 2854 2853 781 779 1561 1359 19 2388 2387 2345 2344 2166 2165 3032 3031 3030 2561 2560 2604 2603 3090 3088 1986 1985 1954 3089 21 604 1557 1392 1381 3031 2388 2387 2345 2344 2166 2164 3032 3030 1986 1985 1954 3090 3089 3088 546 1768 20 2431 2430 2388 2387 2167 2977 2976 2647 2646 2604 2603 2561 2560 2164 3032 3030 2345 2344 2165 3031 20 2474 2473 2431 2430 2169 2168 2926 2925 2924 2690 2689 2647 2646 2166 2977 2976 2604 2603 2388 2387 23 2517 2516 2474 2473 2171 2170 2169 2858 2857 2856 2855 2733 2732 2690 2689 2167 2926 2924 2647 2646 2431 2430 2925 26 779 777 1553 1551 1359 1334 1333 2171 2858 2856 2517 2516 2474 2473 2170 2168 2857 2855 2431 2430 2167 2926 2925 2924 710 1370 17 2168 2857 2855 2733 2732 2690 2689 2517 2516 2474 2473 2171 2169 2858 2856 2795 2794 24 841 840 1551 1334 1333 2795 2794 2517 2516 2170 2733 2732 2474 2473 2169 2168 2858 2857 2856 2855 779 777 1553 1359 15 2389 2388 2346 2345 2173 3033 3032 2562 2561 2605 2604 3091 3090 1987 1986 18 2432 2431 2389 2388 2174 2978 2977 2648 2647 2605 2604 2562 2561 2172 3033 3032 2346 2345 18 2475 2474 2432 2431 2175 2927 2926 2691 2690 2648 2647 2173 2978 2977 2605 2604 2389 2388 21 2518 2517 2475 2474 2177 2176 2860 2859 2858 2857 2734 2733 2691 2690 2174 2927 2926 2648 2647 2432 2431 16 2175 2859 2857 2734 2733 2691 2690 2518 2517 2475 2474 2177 2860 2858 2796 2795 21 840 839 1545 1333 1332 2796 2795 2518 2517 2176 2734 2733 2475 2474 2175 2860 2859 2858 2857 777 775 19 2390 2389 2347 2346 2180 2179 3035 3034 3033 2563 2562 2606 2605 3092 3091 1988 1987 1955 3093 21 600 1543 1391 1380 3035 2390 2389 2347 2346 2180 2178 3034 3033 1988 1987 1955 3093 3092 3091 542 1767 20 2433 2432 2390 2389 2181 2979 2978 2649 2648 2606 2605 2563 2562 2178 3034 3033 2347 2346 2179 3035 20 2476 2475 2433 2432 2183 2182 2929 2928 2927 2692 2691 2649 2648 2180 2979 2978 2606 2605 2390 2389 23 2519 2518 2476 2475 2185 2184 2183 2862 2861 2860 2859 2735 2734 2692 2691 2181 2928 2927 2649 2648 2433 2432 2929 26 775 773 1539 1537 1358 1332 1331 2185 2862 2860 2519 2518 2476 2475 2184 2182 2861 2859 2433 2432 2181 2929 2928 2927 706 1369 17 2182 2861 2859 2735 2734 2692 2691 2519 2518 2476 2475 2185 2183 2862 2860 2797 2796 24 839 838 1537 1332 1331 2797 2796 2519 2518 2184 2735 2734 2476 2475 2183 2182 2862 2861 2860 2859 775 773 1539 1358 20 2391 2390 2348 2347 2189 2188 2187 3036 3035 3034 2564 2563 2607 2606 3094 3092 1989 1988 1956 3093 23 600 1535 1533 1391 1380 2189 3035 2391 2390 2348 2347 2188 2186 3036 3034 1989 1988 1956 3094 3093 3092 542 1766 22 2434 2433 2391 2390 2191 2190 2189 2980 2979 2650 2649 2607 2606 2564 2563 2186 3036 3034 2348 2347 2187 3035 23 1533 1531 1380 1369 2191 2434 2433 2391 2390 2190 2188 2980 2979 2348 2347 2187 2186 3036 3035 3034 600 1535 1391 22 2477 2476 2434 2433 2193 2192 2191 2930 2929 2928 2693 2692 2650 2649 2188 2980 2979 2607 2606 2391 2390 2189 23 706 1531 1529 1369 1358 2193 2929 2477 2476 2434 2433 2192 2190 2930 2928 2391 2390 2189 2188 2980 2979 1533 1380 24 2520 2519 2477 2476 2195 2194 2193 2864 2863 2862 2861 2736 2735 2693 2692 2190 2930 2928 2650 2649 2434 2433 2191 2929 28 773 771 1529 1527 1358 1331 1330 2195 2864 2862 2520 2519 2477 2476 2194 2192 2863 2861 2434 2433 2191 2190 2930 2929 2928 706 1531 1369 17 2192 2863 2861 2736 2735 2693 2692 2520 2519 2477 2476 2195 2193 2864 2862 2798 2797 24 838 837 1527 1331 1330 2798 2797 2520 2519 2194 2736 2735 2477 2476 2193 2192 2864 2863 2862 2861 773 771 1529 1358 15 2392 2391 2349 2348 2197 3037 3036 2565 2564 2608 2607 3095 3094 1990 1989 18 2435 2434 2392 2391 2198 2981 2980 2651 2650 2608 2607 2565 2564 2196 3037 3036 2349 2348 18 2478 2477 2435 2434 2199 2931 2930 2694 2693 2651 2650 2197 2981 2980 2608 2607 2392 2391 21 2521 2520 2478 2477 2201 2200 2866 2865 2864 2863 2737 2736 2694 2693 2198 2931 2930 2651 2650 2435 2434 16 2199 2865 2863 2737 2736 2694 2693 2521 2520 2478 2477 2201 2866 2864 2799 2798 21 837 836 1521 1330 1329 2799 2798 2521 2520 2200 2737 2736 2478 2477 2199 2866 2865 2864 2863 771 769 19 2393 2392 2350 2349 2204 2203 3039 3038 3037 2566 2565 2609 2608 3096 3095 1991 1990 1957 3097 21 596 1519 1390 1379 3039 2393 2392 2350 2349 2204 2202 3038 3037 1991 1990 1957 3097 3096 3095 538 1765 20 2436 2435 2393 2392 2205 2982 2981 2652 2651 2609 2608 2566 2565 2202 3038 3037 2350 2349 2203 3039 20 2479 2478 2436 2435 2207 2206 2933 2932 2931 2695 2694 2652 2651 2204 2982 2981 2609 2608 2393 2392 23 2522 2521 2479 2478 2209 2208 2207 2868 2867 2866 2865 2738 2737 2695 2694 2205 2932 2931 2652 2651 2436 2435 2933 26 769 767 1515 1513 1357 1329 1328 2209 2868 2866 2522 2521 2479 2478 2208 2206 2867 2865 2436 2435 2205 2933 2932 2931 702 1368 17 2206 2867 2865 2738 2737 2695 2694 2522 2521 2479 2478 2209 2207 2868 2866 2800 2799 24 836 835 1513 1329 1328 2800 2799 2522 2521 2208 2738 2737 2479 2478 2207 2206 2868 2867 2866 2865 769 767 1515 1357 19 2394 2393 2351 2350 2212 2211 3040 3039 3038 2567 2566 2610 2609 3098 3096 1992 1991 1958 3097 21 596 1511 1390 1379 3039 2394 2393 2351 2350 2212 2210 3040 3038 1992 1991 1958 3098 3097 3096 538 1764 20 2437 2436 2394 2393 2213 2983 2982 2653 2652 2610 2609 2567 2566 2210 3040 3038 2351 2350 2211 3039 20 2480 2479 2437 2436 2215 2214 2934 2933 2932 2696 2695 2653 2652 2212 2983 2982 2610 2609 2394 2393 23 2523 2522 2480 2479 2217 2216 2215 2870 2869 2868 2867 2739 2738 2696 2695 2213 2934 2932 2653 2652 2437 2436 2933 26 767 765 1507 1505 1357 1328 1327 2217 2870 2868 2523 2522 2480 2479 2216 2214 2869 2867 2437 2436 2213 2934 2933 2932 702 1368 17 2214 2869 2867 2739 2738 2696 2695 2523 2522 2480 2479 2217 2215 2870 2868 2801 2800 24 835 834 1505 1328 1327 2801 2800 2523 2522 2216 2739 2738 2480 2479 2215 2214 2870 2869 2868 2867 767 765 1507 1357 15 2395 2394 2352 2351 2219 3041 3040 2568 2567 2611 2610 3099 3098 1993 1992 18 2438 2437 2395 2394 2220 2984 2983 2654 2653 2611 2610 2568 2567 2218 3041 3040 2352 2351 18 2481 2480 2438 2437 2221 2935 2934 2697 2696 2654 2653 2219 2984 2983 2611 2610 2395 2394 21 2524 2523 2481 2480 2223 2222 2872 2871 2870 2869 2740 2739 2697 2696 2220 2935 2934 2654 2653 2438 2437 16 2221 2871 2869 2740 2739 2697 2696 2524 2523 2481 2480 2223 2872 2870 2802 2801 21 834 833 1499 1327 1326 2802 2801 2524 2523 2222 2740 2739 2481 2480 2221 2872 2871 2870 2869 765 763 20 2396 2395 2353 2352 2227 2226 2225 3043 3042 3041 2569 2568 2612 2611 3100 3099 1994 1993 1959 3101 23 592 1497 1495 1389 1378 2227 3043 2396 2395 2353 2352 2226 2224 3042 3041 1994 1993 1959 3101 3100 3099 534 1763 23 2439 2438 2396 2395 2229 2228 2227 2986 2985 2984 2655 2654 2612 2611 2569 2568 2224 3042 3041 2353 2352 2225 3043 25 649 1495 1493 1378 1367 2229 2986 2439 2438 2396 2395 2228 2226 2985 2984 2353 2352 2225 2224 3043 3042 3041 592 1497 1389 23 2482 2481 2439 2438 2231 2230 2229 2937 2936 2935 2698 2697 2655 2654 2226 2985 2984 2612 2611 2396 2395 2227 2986 25 698 1493 1491 1367 1356 2231 2937 2482 2481 2439 2438 2230 2228 2936 2935 2396 2395 2227 2226 2986 2985 2984 649 1495 1378 24 2525 2524 2482 2481 2233 2232 2231 2874 2873 2872 2871 2741 2740 2698 2697 2228 2936 2935 2655 2654 2439 2438 2229 2937 28 763 761 1491 1489 1356 1326 1325 2233 2874 2872 2525 2524 2482 2481 2232 2230 2873 2871 2439 2438 2229 2228 2937 2936 2935 698 1493 1367 17 2230 2873 2871 2741 2740 2698 2697 2525 2524 2482 2481 2233 2231 2874 2872 2803 2802 24 833 832 1489 1326 1325 2803 2802 2525 2524 2232 2741 2740 2482 2481 2231 2230 2874 2873 2872 2871 763 761 1491 1356 20 2397 2396 2354 2353 2237 2236 2235 3044 3043 3042 2570 2569 2613 2612 3102 3100 1995 1994 1960 3101 23 592 1487 1485 1389 1378 2237 3043 2397 2396 2354 2353 2236 2234 3044 3042 1995 1994 1960 3102 3101 3100 534 1762 23 2440 2439 2397 2396 2239 2238 2237 2987 2986 2985 2656 2655 2613 2612 2570 2569 2234 3044 3042 2354 2353 2235 3043 25 649 1485 1483 1378 1367 2239 2986 2440 2439 2397 2396 2238 2236 2987 2985 2354 2353 2235 2234 3044 3043 3042 592 1487 1389 23 2483 2482 2440 2439 2241 2240 2239 2938 2937 2936 2699 2698 2656 2655 2236 2987 2985 2613 2612 2397 2396 2237 2986 25 698 1483 1481 1367 1356 2241 2937 2483 2482 2440 2439 2240 2238 2938 2936 2397 2396 2237 2236 2987 2986 2985 649 1485 1378 24 2526 2525 2483 2482 2243 2242 2241 2876 2875 2874 2873 2742 2741 2699 2698 2238 2938 2936 2656 2655 2440 2439 2239 2937 28 761 759 1481 1479 1356 1325 1324 2243 2876 2874 2526 2525 2483 2482 2242 2240 2875 2873 2440 2439 2239 2238 2938 2937 2936 698 1483 1367 17 2240 2875 2873 2742 2741 2699 2698 2526 2525 2483 2482 2243 2241 2876 2874 2804 2803 24 832 831 1479 1325 1324 2804 2803 2526 2525 2242 2742 2741 2483 2482 2241 2240 2876 2875 2874 2873 761 759 1481 1356 15 2398 2397 2355 2354 2245 3045 3044 2571 2570 2614 2613 3103 3102 1996 1995 18 2441 2440 2398 2397 2246 2988 2987 2657 2656 2614 2613 2571 2570 2244 3045 3044 2355 2354 18 2484 2483 2441 2440 2247 2939 2938 2700 2699 2657 2656 2245 2988 2987 2614 2613 2398 2397 21 2527 2526 2484 2483 2249 2248 2878 2877 2876 2875 2743 2742 2700 2699 2246 2939 2938 2657 2656 2441 2440 16 2247 2877 2875 2743 2742 2700 2699 2527 2526 2484 2483 2249 2878 2876 2805 2804 21 831 830 1473 1324 1323 2805 2804 2527 2526 2248 2743 2742 2484 2483 2247 2878 2877 2876 2875 759 757 19 2399 2398 2356 2355 2252 2251 3047 3046 3045 2572 2571 2615 2614 3104 3103 1997 1996 1961 3105 21 588 1471 1388 1377 3047 2399 2398 2356 2355 2252 2250 3046 3045 1997 1996 1961 3105 3104 3103 530 1761 20 2442 2441 2399 2398 2253 2989 2988 2658 2657 2615 2614 2572 2571 2250 3046 3045 2356 2355 2251 3047 20 2485 2484 2442 2441 2255 2254 2941 2940 2939 2701 2700 2658 2657 2252 2989 2988 2615 2614 2399 2398 23 2528 2527 2485 2484 2257 2256 2255 2880 2879 2878 2877 2744 2743 2701 2700 2253 2940 2939 2658 2657 2442 2441 2941 26 757 755 1467 1465 1355 1323 1322 2257 2880 2878 2528 2527 2485 2484 2256 2254 2879 2877 2442 2441 2253 2941 2940 2939 694 1366 17 2254 2879 2877 2744 2743 2701 2700 2528 2527 2485 2484 2257 2255 2880 2878 2806 2805 24 830 829 1465 1323 1322 2806 2805 2528 2527 2256 2744 2743 2485 2484 2255 2254 2880 2879 2878 2877 757 755 1467 1355 19 2400 2399 2357 2356 2260 2259 3048 3047 3046 2573 2572 2616 2615 3106 3104 1998 1997 1962 3105 21 588 1463 1388 1377 3047 2400 2399 2357 2356 2260 2258 3048 3046 1998 1997 1962 3106 3105 3104 530 1760 20 2443 2442 2400 2399 2261 2990 2989 2659 2658 2616 2615 2573 2572 2258 3048 3046 2357 2356 2259 3047 20 2486 2485 2443 2442 2263 2262 2942 2941 2940 2702 2701 2659 2658 2260 2990 2989 2616 2615 2400 2399 23 2529 2528 2486 2485 2265 2264 2263 2882 2881 2880 2879 2745 2744 2702 2701 2261 2942 2940 2659 2658 2443 2442 2941 26 755 753 1459 1457 1355 1322 1321 2265 2882 2880 2529 2528 2486 2485 2264 2262 2881 2879 2443 2442 2261 2942 2941 2940 694 1366 17 2262 2881 2879 2745 2744 2702 2701 2529 2528 2486 2485 2265 2263 2882 2880 2807 2806 24 829 828 1457 1322 1321 2807 2806 2529 2528 2264 2745 2744 2486 2485 2263 2262 2882 2881 2880 2879 755 753 1459 1355 15 2401 2400 2358 2357 2267 3049 3048 2573 2617 2616 2574 3107 3106 1999 1998 18 2444 2443 2401 2400 2268 2991 2990 2660 2659 2617 2616 2573 2266 3049 3048 2574 2358 2357 18 2487 2486 2444 2443 2269 2943 2942 2703 2702 2660 2659 2267 2991 2990 2617 2616 2401 2400 21 2530 2529 2487 2486 2271 2270 2884 2883 2882 2881 2746 2745 2703 2702 2268 2943 2942 2660 2659 2444 2443 16 2269 2883 2881 2746 2745 2703 2702 2530 2529 2487 2486 2271 2884 2882 2808 2807 21 828 827 1451 1321 1320 2808 2807 2530 2529 2270 2746 2745 2487 2486 2269 2884 2883 2882 2881 753 751 21 2402 2401 2359 2358 2274 2273 1873 1872 3050 3049 2618 2617 2575 2574 3108 3107 2000 1999 1963 1868 1867 21 1449 1873 1860 2402 2401 2359 2358 2274 2272 1872 3050 3049 2000 1999 1963 1868 1867 3108 3107 1865 1759 23 2445 2444 2402 2401 2275 1878 1877 2992 2991 2661 2660 2618 2617 2272 3050 3049 2575 2574 2359 2358 2273 1873 1872 23 2488 2487 2445 2444 2277 2276 1883 1882 2944 2943 2704 2703 2661 2660 2274 2992 2991 2618 2617 2402 2401 1878 1877 24 2531 2530 2488 2487 2279 2278 2277 2886 2885 2884 2883 2747 2746 2704 2703 2275 2944 2943 2661 2660 2445 2444 1883 1882 25 751 749 1445 1443 1320 1319 2279 2886 2884 2531 2530 2488 2487 2278 2276 2885 2883 2445 2444 2275 1883 1882 2944 2943 1850 17 2276 2885 2883 2747 2746 2704 2703 2531 2530 2488 2487 2279 2277 2886 2884 2809 2808 23 827 826 1443 1320 1319 2809 2808 2531 2530 2278 2747 2746 2488 2487 2277 2276 2886 2885 2884 2883 751 749 1445 23 2403 2402 2360 2359 2281 1874 1872 3052 3050 2619 2618 2576 2575 1906 1888 3110 3108 2001 2000 1907 1899 1869 1867 22 2446 2445 2403 2402 2282 1879 1877 2994 2992 2662 2661 2619 2618 2280 3052 3050 2576 2575 2360 2359 1874 1872 22 2489 2488 2446 2445 2283 1884 1882 2946 2944 2705 2704 2662 2661 2281 2994 2992 2619 2618 2403 2402 1879 1877 24 94 2532 2531 2489 2488 2285 2284 2888 2887 2886 2885 2748 2747 2705 2704 2282 2946 2944 2662 2661 2446 2445 1884 1882 17 2283 2887 2885 2748 2747 2705 2704 94 2532 2531 2489 2488 2285 2888 2886 2810 2809 22 826 825 1437 1319 1318 2810 2809 2532 2531 2284 2748 2747 94 2489 2488 2283 2888 2887 2886 2885 749 747 25 2404 2403 2361 2360 2287 1875 1874 3054 3052 2620 2619 2577 2576 1914 1889 1888 3112 3110 2002 2001 1915 1900 1899 1870 1869 22 2447 2446 2404 2403 2288 1880 1879 2996 2994 2663 2662 2620 2619 2286 3054 3052 2577 2576 2361 2360 1875 1874 22 2490 2489 2447 2446 2289 1885 1884 2948 2946 2706 2705 2663 2662 2287 2996 2994 2620 2619 2404 2403 1880 1879 24 95 2533 2532 2490 2489 2291 2290 2890 2889 2888 2887 2749 2748 2706 2705 2288 2948 2946 2663 2662 2447 2446 1885 1884 17 2289 2889 2887 2749 2748 2706 2705 95 2533 2532 2490 2489 2291 2890 2888 2811 2810 22 825 824 1431 1318 1317 2811 2810 2533 2532 2290 2749 2748 95 2490 2489 2289 2890 2889 2888 2887 747 745 23 2405 2404 2362 2361 2293 1876 1875 3055 3054 2621 2620 2578 2577 1926 1889 3113 3112 2003 2002 1923 1900 1871 1870 22 2448 2447 2405 2404 2294 1881 1880 2997 2996 2664 2663 2621 2620 2292 3055 3054 2578 2577 2362 2361 1876 1875 22 2491 2490 2448 2447 2295 1886 1885 2949 2948 2707 2706 2664 2663 2293 2997 2996 2621 2620 2405 2404 1881 1880 24 96 2534 2533 2491 2490 2297 2296 2892 2891 2890 2889 2750 2749 2707 2706 2294 2949 2948 2664 2663 2448 2447 1886 1885 17 2295 2891 2889 2750 2749 2707 2706 96 2534 2533 2491 2490 2297 2892 2890 2812 2811 22 824 823 1425 1317 1316 2812 2811 2534 2533 2296 2750 2749 96 2491 2490 2295 2892 2891 2890 2889 745 743 19 2406 2405 2363 2362 2299 1876 3059 3057 3055 2622 2621 2579 2578 3115 3113 2004 2003 1871 3117 22 2449 2448 2406 2405 2300 1881 3001 2999 2997 2665 2664 2622 2621 2298 3057 3055 2579 2578 2363 2362 1876 3059 22 2492 2491 2449 2448 2301 1886 2953 2951 2949 2708 2707 2665 2664 2299 2999 2997 2622 2621 2406 2405 1881 3001 24 97 2535 2534 2492 2491 2303 2302 2894 2893 2892 2891 2751 2750 2708 2707 2300 2951 2949 2665 2664 2449 2448 1886 2953 17 2301 2893 2891 2751 2750 2708 2707 97 2535 2534 2492 2491 2303 2894 2892 2813 2812 22 823 822 1419 1316 1315 2813 2812 2535 2534 2302 2751 2750 97 2492 2491 2301 2894 2893 2892 2891 743 741 19 2407 2406 2364 2363 2305 3059 3058 3057 3056 2623 2622 2580 2579 3116 3115 2005 2004 3117 3114 22 2450 2449 2407 2406 2306 3001 3000 2999 2998 2666 2665 2623 2622 2304 3058 3057 2580 2579 2364 2363 3059 3056 22 2493 2492 2450 2449 2307 2953 2952 2951 2950 2709 2708 2666 2665 2305 3000 2999 2623 2622 2407 2406 3001 2998 24 98 2536 2535 2493 2492 2309 2308 2896 2895 2894 2893 2752 2751 2709 2708 2306 2952 2951 2666 2665 2450 2449 2953 2950 17 2307 2895 2893 2752 2751 2709 2708 98 2536 2535 2493 2492 2309 2896 2894 2814 2813 22 822 821 1413 1315 1314 2814 2813 2536 2535 2308 2752 2751 98 2493 2492 2307 2896 2895 2894 2893 741 739 19 2408 2407 2365 2364 2311 3060 3058 3056 3053 2624 2623 2581 2580 3118 3116 2006 2005 3114 3111 22 2451 2450 2408 2407 2312 3002 3000 2998 2995 2667 2666 2624 2623 2310 3060 3058 2581 2580 2365 2364 3056 3053 22 2494 2493 2451 2450 2313 2954 2952 2950 2947 2710 2709 2667 2666 2311 3002 3000 2624 2623 2408 2407 2998 2995 24 99 2537 2536 2494 2493 2315 2314 2898 2897 2896 2895 2753 2752 2710 2709 2312 2954 2952 2667 2666 2451 2450 2950 2947 17 2313 2897 2895 2753 2752 2710 2709 99 2537 2536 2494 2493 2315 2898 2896 2815 2814 22 821 820 1407 1314 1313 2815 2814 2537 2536 2314 2753 2752 99 2494 2493 2313 2898 2897 2896 2895 739 737 21 2409 2408 2366 2365 2318 2317 3061 3060 3053 3051 2625 2624 2582 2581 3119 3118 2007 2006 1964 3111 3109 21 584 1405 3051 2409 2408 2366 2365 2318 2316 3061 3060 3053 2007 2006 1964 3119 3118 3111 3109 526 1758 23 2452 2451 2409 2408 2319 3003 3002 2995 2993 2668 2667 2625 2624 2316 3061 3060 2582 2581 2366 2365 2317 3053 3051 23 2495 2494 2452 2451 2321 2320 2954 2947 2945 2758 2711 2710 2668 2667 2318 3003 3002 2625 2624 2409 2408 2995 2993 24 2538 2537 2495 2494 2323 2322 2321 2898 2897 2760 2759 2754 2753 2711 2710 2319 2954 2758 2668 2667 2452 2451 2947 2945 25 737 1401 1399 1313 1312 875 2323 2898 2760 2538 2537 2495 2494 2322 2320 2897 2759 2452 2451 2319 2954 2947 2945 2758 690 17 2320 2897 2759 2754 2753 2711 2710 2538 2537 2495 2494 2323 2321 2898 2760 2816 2815 23 820 819 1399 1313 1312 2816 2815 2538 2537 2322 2754 2753 2495 2494 2321 2320 2898 2897 2760 2759 737 1401 875 25 2368 2367 2325 2009 2008 3005 3004 3410 3406 3328 3324 3312 3311 3310 3309 1965 1940 3418 3417 3320 3308 3307 3062 1966 3063 23 2369 2368 2326 2017 2016 2015 2014 3007 3006 3005 2367 2324 2009 2008 3004 1966 1965 3063 3062 1967 1941 3065 3064 26 2370 2369 2327 2027 2026 2025 2024 3008 3007 3006 2368 2325 2017 2016 2015 2014 3005 1967 1966 1941 3065 3064 3063 1968 1942 3066 23 2371 2370 2328 2035 2034 3009 3008 2369 2326 2027 2026 2025 2024 3007 3006 1968 1967 1942 3066 3065 3064 1969 3067 22 2372 2371 2329 2042 2041 2040 3011 3010 3009 2370 2327 2035 2034 3008 1969 1968 3067 3066 1970 1943 3069 3068 25 2373 2372 2330 2051 2050 2049 2048 3012 3011 3010 2371 2328 2042 2041 2040 3009 1970 1969 1943 3069 3068 3067 1971 1944 3070 23 2374 2373 2331 2059 2058 3013 3012 2372 2329 2051 2050 2049 2048 3011 3010 1971 1970 1944 3070 3069 3068 1972 3071 22 2375 2374 2332 2066 2065 2064 3015 3014 3013 2373 2330 2059 2058 3012 1972 1971 3071 3070 1973 1945 3073 3072 24 2376 2375 2333 2074 2073 2072 3016 3015 3014 2374 2331 2066 2065 2064 3013 1973 1972 1945 3073 3072 3071 1974 1946 3074 22 2377 2376 2334 2081 2080 3017 3016 2375 2332 2074 2073 2072 3015 3014 1974 1973 1946 3074 3073 3072 1975 3075 22 2378 2377 2335 2088 2087 2086 3019 3018 3017 2376 2333 2081 2080 3016 1975 1974 3075 3074 1976 1947 3077 3076 25 2379 2378 2336 2097 2096 2095 2094 3020 3019 3018 2377 2334 2088 2087 2086 3017 1976 1975 1947 3077 3076 3075 1977 1948 3078 23 2380 2379 2337 2105 2104 3021 3020 2378 2335 2097 2096 2095 2094 3019 3018 1977 1976 1948 3078 3077 3076 1978 3079 22 2381 2380 2338 2112 2111 2110 3023 3022 3021 2379 2336 2105 2104 3020 1978 1977 3079 3078 1979 1949 3081 3080 24 2382 2381 2339 2120 2119 2118 3024 3023 3022 2380 2337 2112 2111 2110 3021 1979 1978 1949 3081 3080 3079 1980 1950 3082 22 2383 2382 2340 2127 2126 3025 3024 2381 2338 2120 2119 2118 3023 3022 1980 1979 1950 3082 3081 3080 1981 3083 22 2384 2383 2341 2134 2133 2132 3027 3026 3025 2382 2339 2127 2126 3024 1981 1980 3083 3082 1982 1951 3085 3084 25 2385 2384 2342 2143 2142 2141 2140 3028 3027 3026 2383 2340 2134 2133 2132 3025 1982 1981 1951 3085 3084 3083 1983 1952 3086 23 2386 2385 2343 2151 2150 3029 3028 2384 2341 2143 2142 2141 2140 3027 3026 1983 1982 1952 3086 3085 3084 1984 3087 22 2387 2386 2344 2158 2157 2156 3031 3030 3029 2385 2342 2151 2150 3028 1984 1983 3087 3086 1985 1953 3089 3088 24 2388 2387 2345 2166 2165 2164 3032 3031 3030 2386 2343 2158 2157 2156 3029 1985 1984 1953 3089 3088 3087 1986 1954 3090 22 2389 2388 2346 2173 2172 3033 3032 2387 2344 2166 2165 2164 3031 3030 1986 1985 1954 3090 3089 3088 1987 3091 22 2390 2389 2347 2180 2179 2178 3035 3034 3033 2388 2345 2173 2172 3032 1987 1986 3091 3090 1988 1955 3093 3092 25 2391 2390 2348 2189 2188 2187 2186 3036 3035 3034 2389 2346 2180 2179 2178 3033 1988 1987 1955 3093 3092 3091 1989 1956 3094 23 2392 2391 2349 2197 2196 3037 3036 2390 2347 2189 2188 2187 2186 3035 3034 1989 1988 1956 3094 3093 3092 1990 3095 22 2393 2392 2350 2204 2203 2202 3039 3038 3037 2391 2348 2197 2196 3036 1990 1989 3095 3094 1991 1957 3097 3096 24 2394 2393 2351 2212 2211 2210 3040 3039 3038 2392 2349 2204 2203 2202 3037 1991 1990 1957 3097 3096 3095 1992 1958 3098 22 2395 2394 2352 2219 2218 3041 3040 2393 2350 2212 2211 2210 3039 3038 1992 1991 1958 3098 3097 3096 1993 3099 23 2396 2395 2353 2227 2226 2225 2224 3043 3042 3041 2394 2351 2219 2218 3040 1993 1992 3099 3098 1994 1959 3101 3100 26 2397 2396 2354 2237 2236 2235 2234 3044 3043 3042 2395 2352 2227 2226 2225 2224 3041 1994 1993 1959 3101 3100 3099 1995 1960 3102 23 2398 2397 2355 2245 2244 3045 3044 2396 2353 2237 2236 2235 2234 3043 3042 1995 1994 1960 3102 3101 3100 1996 3103 22 2399 2398 2356 2252 2251 2250 3047 3046 3045 2397 2354 2245 2244 3044 1996 1995 3103 3102 1997 1961 3105 3104 24 2400 2399 2357 2260 2259 2258 3048 3047 3046 2398 2355 2252 2251 2250 3045 1997 1996 1961 3105 3104 3103 1998 1962 3106 22 2401 2400 2358 2267 2266 3049 3048 2399 2356 2260 2259 2258 3047 3046 1998 1997 1962 3106 3105 3104 1999 3107 24 2402 2401 2359 2274 2273 2272 1873 1872 3050 3049 2400 2357 2267 2266 3048 1999 1998 3107 3106 2000 1963 1868 1867 3108 29 2403 2402 2360 2281 2280 1874 1872 3052 3050 2401 2358 2274 2273 2272 1873 3049 2000 1999 1963 1868 1867 3108 3107 2001 1907 1906 1899 1869 3110 30 2404 2403 2361 2287 2286 1875 1874 3054 3052 2402 2359 2281 2280 1872 3050 2001 2000 1907 1906 1899 1869 1867 3110 3108 2002 1915 1914 1900 1870 3112 30 2405 2404 2362 2293 2292 1876 1875 3055 3054 2403 2360 2287 2286 1874 3052 2002 2001 1915 1914 1900 1899 1870 1869 3112 3110 2003 1926 1923 1871 3113 27 2406 2405 2363 2299 2298 1876 3059 3057 3055 2404 2361 2293 2292 1875 3054 2003 2002 1926 1923 1900 1871 1870 3113 3112 2004 3117 3115 24 2407 2406 2364 2305 2304 3059 3058 3057 3056 2405 2362 2299 2298 1876 3055 2004 2003 1871 3117 3115 3113 2005 3116 3114 24 2408 2407 2365 2311 2310 3060 3058 3056 3053 2406 2363 2305 2304 3059 3057 2005 2004 3117 3116 3115 3114 2006 3118 3111 26 2409 2408 2366 2318 2317 2316 3061 3060 3053 3051 2407 2364 2311 2310 3058 3056 2006 2005 3118 3116 3114 3111 2007 1964 3119 3109 24 2409 3233 3169 3163 3130 3129 3061 2408 2365 2318 2317 2316 3060 3053 3051 2007 2006 1964 3119 3118 3111 3109 3242 3124 25 2411 2410 2368 2010 2009 2956 2955 3399 3395 3332 3328 3314 3313 3312 3311 2324 3410 3406 3324 3310 3309 3004 2325 2008 3005 25 2412 2411 2369 2019 2018 2017 2016 2958 2957 2956 2410 2367 2010 2009 2955 2325 2324 2008 3005 3004 2326 2015 2014 3007 3006 28 2413 2412 2370 2029 2028 2027 2026 2959 2958 2957 2411 2368 2019 2018 2017 2016 2956 2326 2325 2015 2014 3007 3006 3005 2327 2025 2024 3008 25 2414 2413 2371 2036 2035 2960 2959 2412 2369 2029 2028 2027 2026 2958 2957 2327 2326 2025 2024 3008 3007 3006 2328 2034 3009 22 2415 2414 2372 2043 2042 2961 2960 2413 2370 2036 2035 2959 2328 2327 2034 3009 3008 2329 2041 2040 3011 3010 25 2416 2415 2373 2053 2052 2051 2050 2962 2961 2414 2371 2043 2042 2960 2329 2328 2041 2040 3011 3010 3009 2330 2049 2048 3012 24 2417 2416 2374 2060 2059 2963 2962 2415 2372 2053 2052 2051 2050 2961 2330 2329 2049 2048 3012 3011 3010 2331 2058 3013 22 2418 2417 2375 2067 2066 2964 2963 2416 2373 2060 2059 2962 2331 2330 2058 3013 3012 2332 2065 2064 3015 3014 23 2419 2418 2376 2075 2074 2965 2964 2417 2374 2067 2066 2963 2332 2331 2065 2064 3015 3014 3013 2333 2073 2072 3016 22 2420 2419 2377 2082 2081 2966 2965 2418 2375 2075 2074 2964 2333 2332 2073 2072 3016 3015 3014 2334 2080 3017 22 2421 2420 2378 2089 2088 2967 2966 2419 2376 2082 2081 2965 2334 2333 2080 3017 3016 2335 2087 2086 3019 3018 25 2422 2421 2379 2099 2098 2097 2096 2968 2967 2420 2377 2089 2088 2966 2335 2334 2087 2086 3019 3018 3017 2336 2095 2094 3020 24 2423 2422 2380 2106 2105 2969 2968 2421 2378 2099 2098 2097 2096 2967 2336 2335 2095 2094 3020 3019 3018 2337 2104 3021 22 2424 2423 2381 2113 2112 2970 2969 2422 2379 2106 2105 2968 2337 2336 2104 3021 3020 2338 2111 2110 3023 3022 23 2425 2424 2382 2121 2120 2971 2970 2423 2380 2113 2112 2969 2338 2337 2111 2110 3023 3022 3021 2339 2119 2118 3024 22 2426 2425 2383 2128 2127 2972 2971 2424 2381 2121 2120 2970 2339 2338 2119 2118 3024 3023 3022 2340 2126 3025 22 2427 2426 2384 2135 2134 2973 2972 2425 2382 2128 2127 2971 2340 2339 2126 3025 3024 2341 2133 2132 3027 3026 25 2428 2427 2385 2145 2144 2143 2142 2974 2973 2426 2383 2135 2134 2972 2341 2340 2133 2132 3027 3026 3025 2342 2141 2140 3028 24 2429 2428 2386 2152 2151 2975 2974 2427 2384 2145 2144 2143 2142 2973 2342 2341 2141 2140 3028 3027 3026 2343 2150 3029 22 2430 2429 2387 2159 2158 2976 2975 2428 2385 2152 2151 2974 2343 2342 2150 3029 3028 2344 2157 2156 3031 3030 23 2431 2430 2388 2167 2166 2977 2976 2429 2386 2159 2158 2975 2344 2343 2157 2156 3031 3030 3029 2345 2165 2164 3032 22 2432 2431 2389 2174 2173 2978 2977 2430 2387 2167 2166 2976 2345 2344 2165 2164 3032 3031 3030 2346 2172 3033 22 2433 2432 2390 2181 2180 2979 2978 2431 2388 2174 2173 2977 2346 2345 2172 3033 3032 2347 2179 2178 3035 3034 25 2434 2433 2391 2191 2190 2189 2188 2980 2979 2432 2389 2181 2180 2978 2347 2346 2179 2178 3035 3034 3033 2348 2187 2186 3036 24 2435 2434 2392 2198 2197 2981 2980 2433 2390 2191 2190 2189 2188 2979 2348 2347 2187 2186 3036 3035 3034 2349 2196 3037 22 2436 2435 2393 2205 2204 2982 2981 2434 2391 2198 2197 2980 2349 2348 2196 3037 3036 2350 2203 2202 3039 3038 23 2437 2436 2394 2213 2212 2983 2982 2435 2392 2205 2204 2981 2350 2349 2203 2202 3039 3038 3037 2351 2211 2210 3040 22 2438 2437 2395 2220 2219 2984 2983 2436 2393 2213 2212 2982 2351 2350 2211 2210 3040 3039 3038 2352 2218 3041 25 2439 2438 2396 2229 2228 2227 2226 2986 2985 2984 2437 2394 2220 2219 2983 2352 2351 2218 3041 3040 2353 2225 2224 3043 3042 28 2440 2439 2397 2239 2238 2237 2236 2987 2986 2985 2438 2395 2229 2228 2227 2226 2984 2353 2352 2225 2224 3043 3042 3041 2354 2235 2234 3044 25 2441 2440 2398 2246 2245 2988 2987 2439 2396 2239 2238 2237 2236 2986 2985 2354 2353 2235 2234 3044 3043 3042 2355 2244 3045 22 2442 2441 2399 2253 2252 2989 2988 2440 2397 2246 2245 2987 2355 2354 2244 3045 3044 2356 2251 2250 3047 3046 23 2443 2442 2400 2261 2260 2990 2989 2441 2398 2253 2252 2988 2356 2355 2251 2250 3047 3046 3045 2357 2259 2258 3048 22 2444 2443 2401 2268 2267 2991 2990 2442 2399 2261 2260 2989 2357 2356 2259 2258 3048 3047 3046 2358 2266 3049 25 2445 2444 2402 2275 2274 1878 1877 2992 2991 2443 2400 2268 2267 2990 2358 2357 2266 3049 3048 2359 2273 2272 1873 1872 3050 27 2446 2445 2403 2282 2281 1879 1877 2994 2992 2444 2401 2275 2274 1878 2991 2359 2358 2273 2272 1873 1872 3050 3049 2360 2280 1874 3052 26 2447 2446 2404 2288 2287 1880 1879 2996 2994 2445 2402 2282 2281 1877 2992 2360 2359 2280 1874 1872 3052 3050 2361 2286 1875 3054 26 2448 2447 2405 2294 2293 1881 1880 2997 2996 2446 2403 2288 2287 1879 2994 2361 2360 2286 1875 1874 3054 3052 2362 2292 1876 3055 26 2449 2448 2406 2300 2299 1881 3001 2999 2997 2447 2404 2294 2293 1880 2996 2362 2361 2292 1876 1875 3055 3054 2363 2298 3059 3057 26 2450 2449 2407 2306 2305 3001 3000 2999 2998 2448 2405 2300 2299 1881 2997 2363 2362 2298 1876 3059 3057 3055 2364 2304 3058 3056 26 2451 2450 2408 2312 2311 3002 3000 2998 2995 2449 2406 2306 2305 3001 2999 2364 2363 2304 3059 3058 3057 3056 2365 2310 3060 3053 27 2452 2451 2409 2319 2318 3003 3002 2995 2993 2450 2407 2312 2311 3000 2998 2365 2364 2310 3060 3058 3056 3053 2366 2317 2316 3061 3051 25 2452 3224 3175 3169 3131 3130 3003 2451 2408 2319 2318 3002 2995 2993 2366 2365 2317 2316 3061 3060 3053 3051 3233 3163 3129 26 2454 2453 2411 2011 2010 2899 2755 3390 3363 3357 3332 3315 3314 3313 2669 2626 2367 3399 3395 3328 3312 3311 2955 2368 2009 2956 25 2455 2454 2412 2021 2020 2019 2018 2901 2900 2899 2453 2410 2011 2010 2755 2368 2367 2009 2956 2955 2369 2017 2016 2958 2957 28 2456 2455 2413 2031 2030 2029 2028 2902 2901 2900 2454 2411 2021 2020 2019 2018 2899 2369 2368 2017 2016 2958 2957 2956 2370 2027 2026 2959 25 2457 2456 2414 2037 2036 2903 2902 2455 2412 2031 2030 2029 2028 2901 2900 2370 2369 2027 2026 2959 2958 2957 2371 2035 2960 22 2458 2457 2415 2045 2044 2043 2905 2904 2903 2456 2413 2037 2036 2902 2371 2370 2035 2960 2959 2372 2042 2961 25 2459 2458 2416 2055 2054 2053 2052 2906 2905 2904 2457 2414 2045 2044 2043 2903 2372 2371 2042 2961 2960 2373 2051 2050 2962 24 2460 2459 2417 2061 2060 2907 2906 2458 2415 2055 2054 2053 2052 2905 2904 2373 2372 2051 2050 2962 2961 2374 2059 2963 22 2461 2460 2418 2069 2068 2067 2909 2908 2907 2459 2416 2061 2060 2906 2374 2373 2059 2963 2962 2375 2066 2964 23 2462 2461 2419 2077 2076 2075 2910 2909 2908 2460 2417 2069 2068 2067 2907 2375 2374 2066 2964 2963 2376 2074 2965 22 2463 2462 2420 2083 2082 2911 2910 2461 2418 2077 2076 2075 2909 2908 2376 2375 2074 2965 2964 2377 2081 2966 22 2464 2463 2421 2091 2090 2089 2913 2912 2911 2462 2419 2083 2082 2910 2377 2376 2081 2966 2965 2378 2088 2967 25 2465 2464 2422 2101 2100 2099 2098 2914 2913 2912 2463 2420 2091 2090 2089 2911 2378 2377 2088 2967 2966 2379 2097 2096 2968 24 2466 2465 2423 2107 2106 2915 2914 2464 2421 2101 2100 2099 2098 2913 2912 2379 2378 2097 2096 2968 2967 2380 2105 2969 22 2467 2466 2424 2115 2114 2113 2917 2916 2915 2465 2422 2107 2106 2914 2380 2379 2105 2969 2968 2381 2112 2970 23 2468 2467 2425 2123 2122 2121 2918 2917 2916 2466 2423 2115 2114 2113 2915 2381 2380 2112 2970 2969 2382 2120 2971 22 2469 2468 2426 2129 2128 2919 2918 2467 2424 2123 2122 2121 2917 2916 2382 2381 2120 2971 2970 2383 2127 2972 22 2470 2469 2427 2137 2136 2135 2921 2920 2919 2468 2425 2129 2128 2918 2383 2382 2127 2972 2971 2384 2134 2973 25 2471 2470 2428 2147 2146 2145 2144 2922 2921 2920 2469 2426 2137 2136 2135 2919 2384 2383 2134 2973 2972 2385 2143 2142 2974 24 2472 2471 2429 2153 2152 2923 2922 2470 2427 2147 2146 2145 2144 2921 2920 2385 2384 2143 2142 2974 2973 2386 2151 2975 22 2473 2472 2430 2161 2160 2159 2925 2924 2923 2471 2428 2153 2152 2922 2386 2385 2151 2975 2974 2387 2158 2976 23 2474 2473 2431 2169 2168 2167 2926 2925 2924 2472 2429 2161 2160 2159 2923 2387 2386 2158 2976 2975 2388 2166 2977 22 2475 2474 2432 2175 2174 2927 2926 2473 2430 2169 2168 2167 2925 2924 2388 2387 2166 2977 2976 2389 2173 2978 22 2476 2475 2433 2183 2182 2181 2929 2928 2927 2474 2431 2175 2174 2926 2389 2388 2173 2978 2977 2390 2180 2979 25 2477 2476 2434 2193 2192 2191 2190 2930 2929 2928 2475 2432 2183 2182 2181 2927 2390 2389 2180 2979 2978 2391 2189 2188 2980 24 2478 2477 2435 2199 2198 2931 2930 2476 2433 2193 2192 2191 2190 2929 2928 2391 2390 2189 2188 2980 2979 2392 2197 2981 22 2479 2478 2436 2207 2206 2205 2933 2932 2931 2477 2434 2199 2198 2930 2392 2391 2197 2981 2980 2393 2204 2982 23 2480 2479 2437 2215 2214 2213 2934 2933 2932 2478 2435 2207 2206 2205 2931 2393 2392 2204 2982 2981 2394 2212 2983 22 2481 2480 2438 2221 2220 2935 2934 2479 2436 2215 2214 2213 2933 2932 2394 2393 2212 2983 2982 2395 2219 2984 25 2482 2481 2439 2231 2230 2229 2228 2937 2936 2935 2480 2437 2221 2220 2934 2395 2394 2219 2984 2983 2396 2227 2226 2986 2985 28 2483 2482 2440 2241 2240 2239 2238 2938 2937 2936 2481 2438 2231 2230 2229 2228 2935 2396 2395 2227 2226 2986 2985 2984 2397 2237 2236 2987 25 2484 2483 2441 2247 2246 2939 2938 2482 2439 2241 2240 2239 2238 2937 2936 2397 2396 2237 2236 2987 2986 2985 2398 2245 2988 22 2485 2484 2442 2255 2254 2253 2941 2940 2939 2483 2440 2247 2246 2938 2398 2397 2245 2988 2987 2399 2252 2989 23 2486 2485 2443 2263 2262 2261 2942 2941 2940 2484 2441 2255 2254 2253 2939 2399 2398 2252 2989 2988 2400 2260 2990 22 2487 2486 2444 2269 2268 2943 2942 2485 2442 2263 2262 2261 2941 2940 2400 2399 2260 2990 2989 2401 2267 2991 25 2488 2487 2445 2277 2276 2275 1883 1882 2944 2943 2486 2443 2269 2268 2942 2401 2400 2267 2991 2990 2402 2274 1878 1877 2992 27 2489 2488 2446 2283 2282 1884 1882 2946 2944 2487 2444 2277 2276 2275 1883 2943 2402 2401 2274 1878 1877 2992 2991 2403 2281 1879 2994 26 2490 2489 2447 2289 2288 1885 1884 2948 2946 2488 2445 2283 2282 1882 2944 2403 2402 2281 1879 1877 2994 2992 2404 2287 1880 2996 26 2491 2490 2448 2295 2294 1886 1885 2949 2948 2489 2446 2289 2288 1884 2946 2404 2403 2287 1880 1879 2996 2994 2405 2293 1881 2997 26 2492 2491 2449 2301 2300 1886 2953 2951 2949 2490 2447 2295 2294 1885 2948 2405 2404 2293 1881 1880 2997 2996 2406 2299 3001 2999 26 2493 2492 2450 2307 2306 2953 2952 2951 2950 2491 2448 2301 2300 1886 2949 2406 2405 2299 1881 3001 2999 2997 2407 2305 3000 2998 26 2494 2493 2451 2313 2312 2954 2952 2950 2947 2492 2449 2307 2306 2953 2951 2407 2406 2305 3001 3000 2999 2998 2408 2311 3002 2995 27 2495 2494 2452 2321 2320 2319 2954 2947 2945 2758 2493 2450 2313 2312 2952 2950 2408 2407 2311 3002 3000 2998 2995 2409 2318 3003 2993 26 2495 3203 3197 3175 3131 2758 2711 2668 2494 2451 2321 2320 2319 2954 2947 2945 2409 2408 2318 3003 3002 2995 2993 3224 3169 3130 28 2497 2496 2454 2013 2012 2011 2818 2817 2757 2756 3381 3369 3363 3316 3315 2712 2669 2410 3390 3357 3332 3314 3313 2755 2626 2411 2010 2899 28 2498 2497 2455 2023 2022 2021 2020 2820 2819 2818 2817 2496 2453 2013 2012 2011 2757 2756 2411 2410 2010 2899 2755 2412 2019 2018 2901 2900 30 2499 2498 2456 2033 2032 2031 2030 2822 2821 2820 2819 2497 2454 2023 2022 2021 2020 2818 2817 2412 2411 2019 2018 2901 2900 2899 2413 2029 2028 2902 28 2500 2499 2457 2039 2038 2037 2824 2823 2822 2821 2498 2455 2033 2032 2031 2030 2820 2819 2413 2412 2029 2028 2902 2901 2900 2414 2036 2903 27 2501 2500 2458 2047 2046 2045 2044 2826 2825 2824 2823 2499 2456 2039 2038 2037 2822 2821 2414 2413 2036 2903 2902 2415 2043 2905 2904 29 2502 2501 2459 2057 2056 2055 2054 2828 2827 2826 2825 2500 2457 2047 2046 2045 2044 2824 2823 2415 2414 2043 2905 2904 2903 2416 2053 2052 2906 28 2503 2502 2460 2063 2062 2061 2830 2829 2828 2827 2501 2458 2057 2056 2055 2054 2826 2825 2416 2415 2053 2052 2906 2905 2904 2417 2060 2907 27 2504 2503 2461 2071 2070 2069 2068 2832 2831 2830 2829 2502 2459 2063 2062 2061 2828 2827 2417 2416 2060 2907 2906 2418 2067 2909 2908 28 2505 2504 2462 2079 2078 2077 2076 2834 2833 2832 2831 2503 2460 2071 2070 2069 2068 2830 2829 2418 2417 2067 2909 2908 2907 2419 2075 2910 27 2506 2505 2463 2085 2084 2083 2836 2835 2834 2833 2504 2461 2079 2078 2077 2076 2832 2831 2419 2418 2075 2910 2909 2908 2420 2082 2911 27 2507 2506 2464 2093 2092 2091 2090 2838 2837 2836 2835 2505 2462 2085 2084 2083 2834 2833 2420 2419 2082 2911 2910 2421 2089 2913 2912 29 2508 2507 2465 2103 2102 2101 2100 2840 2839 2838 2837 2506 2463 2093 2092 2091 2090 2836 2835 2421 2420 2089 2913 2912 2911 2422 2099 2098 2914 28 2509 2508 2466 2109 2108 2107 2842 2841 2840 2839 2507 2464 2103 2102 2101 2100 2838 2837 2422 2421 2099 2098 2914 2913 2912 2423 2106 2915 27 2510 2509 2467 2117 2116 2115 2114 2844 2843 2842 2841 2508 2465 2109 2108 2107 2840 2839 2423 2422 2106 2915 2914 2424 2113 2917 2916 28 2511 2510 2468 2125 2124 2123 2122 2846 2845 2844 2843 2509 2466 2117 2116 2115 2114 2842 2841 2424 2423 2113 2917 2916 2915 2425 2121 2918 27 2512 2511 2469 2131 2130 2129 2848 2847 2846 2845 2510 2467 2125 2124 2123 2122 2844 2843 2425 2424 2121 2918 2917 2916 2426 2128 2919 27 2513 2512 2470 2139 2138 2137 2136 2850 2849 2848 2847 2511 2468 2131 2130 2129 2846 2845 2426 2425 2128 2919 2918 2427 2135 2921 2920 29 2514 2513 2471 2149 2148 2147 2146 2852 2851 2850 2849 2512 2469 2139 2138 2137 2136 2848 2847 2427 2426 2135 2921 2920 2919 2428 2145 2144 2922 28 2515 2514 2472 2155 2154 2153 2854 2853 2852 2851 2513 2470 2149 2148 2147 2146 2850 2849 2428 2427 2145 2144 2922 2921 2920 2429 2152 2923 27 2516 2515 2473 2163 2162 2161 2160 2856 2855 2854 2853 2514 2471 2155 2154 2153 2852 2851 2429 2428 2152 2923 2922 2430 2159 2925 2924 28 2517 2516 2474 2171 2170 2169 2168 2858 2857 2856 2855 2515 2472 2163 2162 2161 2160 2854 2853 2430 2429 2159 2925 2924 2923 2431 2167 2926 27 2518 2517 2475 2177 2176 2175 2860 2859 2858 2857 2516 2473 2171 2170 2169 2168 2856 2855 2431 2430 2167 2926 2925 2924 2432 2174 2927 27 2519 2518 2476 2185 2184 2183 2182 2862 2861 2860 2859 2517 2474 2177 2176 2175 2858 2857 2432 2431 2174 2927 2926 2433 2181 2929 2928 29 2520 2519 2477 2195 2194 2193 2192 2864 2863 2862 2861 2518 2475 2185 2184 2183 2182 2860 2859 2433 2432 2181 2929 2928 2927 2434 2191 2190 2930 28 2521 2520 2478 2201 2200 2199 2866 2865 2864 2863 2519 2476 2195 2194 2193 2192 2862 2861 2434 2433 2191 2190 2930 2929 2928 2435 2198 2931 27 2522 2521 2479 2209 2208 2207 2206 2868 2867 2866 2865 2520 2477 2201 2200 2199 2864 2863 2435 2434 2198 2931 2930 2436 2205 2933 2932 28 2523 2522 2480 2217 2216 2215 2214 2870 2869 2868 2867 2521 2478 2209 2208 2207 2206 2866 2865 2436 2435 2205 2933 2932 2931 2437 2213 2934 27 2524 2523 2481 2223 2222 2221 2872 2871 2870 2869 2522 2479 2217 2216 2215 2214 2868 2867 2437 2436 2213 2934 2933 2932 2438 2220 2935 28 2525 2524 2482 2233 2232 2231 2230 2874 2873 2872 2871 2523 2480 2223 2222 2221 2870 2869 2438 2437 2220 2935 2934 2439 2229 2228 2937 2936 30 2526 2525 2483 2243 2242 2241 2240 2876 2875 2874 2873 2524 2481 2233 2232 2231 2230 2872 2871 2439 2438 2229 2228 2937 2936 2935 2440 2239 2238 2938 28 2527 2526 2484 2249 2248 2247 2878 2877 2876 2875 2525 2482 2243 2242 2241 2240 2874 2873 2440 2439 2239 2238 2938 2937 2936 2441 2246 2939 27 2528 2527 2485 2257 2256 2255 2254 2880 2879 2878 2877 2526 2483 2249 2248 2247 2876 2875 2441 2440 2246 2939 2938 2442 2253 2941 2940 28 2529 2528 2486 2265 2264 2263 2262 2882 2881 2880 2879 2527 2484 2257 2256 2255 2254 2878 2877 2442 2441 2253 2941 2940 2939 2443 2261 2942 27 2530 2529 2487 2271 2270 2269 2884 2883 2882 2881 2528 2485 2265 2264 2263 2262 2880 2879 2443 2442 2261 2942 2941 2940 2444 2268 2943 28 2531 2530 2488 2279 2278 2277 2276 2886 2885 2884 2883 2529 2486 2271 2270 2269 2882 2881 2444 2443 2268 2943 2942 2445 2275 1883 1882 2944 30 94 2532 2531 2489 2285 2284 2283 2888 2887 2886 2885 2530 2487 2279 2278 2277 2276 2884 2883 2445 2444 2275 1883 1882 2944 2943 2446 2282 1884 2946 30 95 2533 2532 2490 2291 2290 2289 2890 2889 2888 2887 94 2531 2488 2285 2284 2283 2886 2885 2446 2445 2282 1884 1882 2946 2944 2447 2288 1885 2948 30 96 2534 2533 2491 2297 2296 2295 2892 2891 2890 2889 95 2532 2489 2291 2290 2289 2888 2887 2447 2446 2288 1885 1884 2948 2946 2448 2294 1886 2949 30 97 2535 2534 2492 2303 2302 2301 2894 2893 2892 2891 96 2533 2490 2297 2296 2295 2890 2889 2448 2447 2294 1886 1885 2949 2948 2449 2300 2953 2951 30 98 2536 2535 2493 2309 2308 2307 2896 2895 2894 2893 97 2534 2491 2303 2302 2301 2892 2891 2449 2448 2300 1886 2953 2951 2949 2450 2306 2952 2950 30 99 2537 2536 2494 2315 2314 2313 2898 2897 2896 2895 98 2535 2492 2309 2308 2307 2894 2893 2450 2449 2306 2953 2952 2951 2950 2451 2312 2954 2947 30 2538 2537 2495 2323 2322 2321 2320 2898 2897 2760 2759 99 2536 2493 2315 2314 2313 2896 2895 2451 2450 2312 2954 2952 2950 2947 2452 2319 2945 2758 28 2538 3217 3207 3203 3132 2760 2759 2754 2711 2537 2494 2323 2322 2321 2320 2898 2897 2452 2451 2319 2954 2947 2945 2758 3197 3175 3131 2668 21 2497 2013 2012 2775 2774 2713 2712 3375 3369 3316 2453 3381 3363 3315 2757 2756 2669 2454 2011 2818 2817 24 2498 2023 2022 2776 2775 2714 2713 2496 2013 2012 2774 2712 2454 2453 2011 2818 2817 2757 2756 2455 2021 2020 2820 2819 25 2499 2033 2032 2777 2776 2715 2714 2497 2023 2022 2775 2713 2455 2454 2021 2020 2820 2819 2818 2817 2456 2031 2030 2822 2821 24 2500 2039 2038 2778 2777 2716 2715 2498 2033 2032 2776 2714 2456 2455 2031 2030 2822 2821 2820 2819 2457 2037 2824 2823 24 2501 2047 2046 2779 2778 2717 2716 2499 2039 2038 2777 2715 2457 2456 2037 2824 2823 2822 2821 2458 2045 2044 2826 2825 25 2502 2057 2056 2780 2779 2718 2717 2500 2047 2046 2778 2716 2458 2457 2045 2044 2826 2825 2824 2823 2459 2055 2054 2828 2827 24 2503 2063 2062 2781 2780 2719 2718 2501 2057 2056 2779 2717 2459 2458 2055 2054 2828 2827 2826 2825 2460 2061 2830 2829 24 2504 2071 2070 2782 2781 2720 2719 2502 2063 2062 2780 2718 2460 2459 2061 2830 2829 2828 2827 2461 2069 2068 2832 2831 25 2505 2079 2078 2783 2782 2721 2720 2503 2071 2070 2781 2719 2461 2460 2069 2068 2832 2831 2830 2829 2462 2077 2076 2834 2833 24 2506 2085 2084 2784 2783 2722 2721 2504 2079 2078 2782 2720 2462 2461 2077 2076 2834 2833 2832 2831 2463 2083 2836 2835 24 2507 2093 2092 2785 2784 2723 2722 2505 2085 2084 2783 2721 2463 2462 2083 2836 2835 2834 2833 2464 2091 2090 2838 2837 25 2508 2103 2102 2786 2785 2724 2723 2506 2093 2092 2784 2722 2464 2463 2091 2090 2838 2837 2836 2835 2465 2101 2100 2840 2839 24 2509 2109 2108 2787 2786 2725 2724 2507 2103 2102 2785 2723 2465 2464 2101 2100 2840 2839 2838 2837 2466 2107 2842 2841 24 2510 2117 2116 2788 2787 2726 2725 2508 2109 2108 2786 2724 2466 2465 2107 2842 2841 2840 2839 2467 2115 2114 2844 2843 25 2511 2125 2124 2789 2788 2727 2726 2509 2117 2116 2787 2725 2467 2466 2115 2114 2844 2843 2842 2841 2468 2123 2122 2846 2845 24 2512 2131 2130 2790 2789 2728 2727 2510 2125 2124 2788 2726 2468 2467 2123 2122 2846 2845 2844 2843 2469 2129 2848 2847 24 2513 2139 2138 2791 2790 2729 2728 2511 2131 2130 2789 2727 2469 2468 2129 2848 2847 2846 2845 2470 2137 2136 2850 2849 25 2514 2149 2148 2792 2791 2730 2729 2512 2139 2138 2790 2728 2470 2469 2137 2136 2850 2849 2848 2847 2471 2147 2146 2852 2851 24 2515 2155 2154 2793 2792 2731 2730 2513 2149 2148 2791 2729 2471 2470 2147 2146 2852 2851 2850 2849 2472 2153 2854 2853 24 2516 2163 2162 2794 2793 2732 2731 2514 2155 2154 2792 2730 2472 2471 2153 2854 2853 2852 2851 2473 2161 2160 2856 2855 25 2517 2171 2170 2795 2794 2733 2732 2515 2163 2162 2793 2731 2473 2472 2161 2160 2856 2855 2854 2853 2474 2169 2168 2858 2857 24 2518 2177 2176 2796 2795 2734 2733 2516 2171 2170 2794 2732 2474 2473 2169 2168 2858 2857 2856 2855 2475 2175 2860 2859 24 2519 2185 2184 2797 2796 2735 2734 2517 2177 2176 2795 2733 2475 2474 2175 2860 2859 2858 2857 2476 2183 2182 2862 2861 25 2520 2195 2194 2798 2797 2736 2735 2518 2185 2184 2796 2734 2476 2475 2183 2182 2862 2861 2860 2859 2477 2193 2192 2864 2863 24 2521 2201 2200 2799 2798 2737 2736 2519 2195 2194 2797 2735 2477 2476 2193 2192 2864 2863 2862 2861 2478 2199 2866 2865 24 2522 2209 2208 2800 2799 2738 2737 2520 2201 2200 2798 2736 2478 2477 2199 2866 2865 2864 2863 2479 2207 2206 2868 2867 25 2523 2217 2216 2801 2800 2739 2738 2521 2209 2208 2799 2737 2479 2478 2207 2206 2868 2867 2866 2865 2480 2215 2214 2870 2869 24 2524 2223 2222 2802 2801 2740 2739 2522 2217 2216 2800 2738 2480 2479 2215 2214 2870 2869 2868 2867 2481 2221 2872 2871 24 2525 2233 2232 2803 2802 2741 2740 2523 2223 2222 2801 2739 2481 2480 2221 2872 2871 2870 2869 2482 2231 2230 2874 2873 25 2526 2243 2242 2804 2803 2742 2741 2524 2233 2232 2802 2740 2482 2481 2231 2230 2874 2873 2872 2871 2483 2241 2240 2876 2875 24 2527 2249 2248 2805 2804 2743 2742 2525 2243 2242 2803 2741 2483 2482 2241 2240 2876 2875 2874 2873 2484 2247 2878 2877 24 2528 2257 2256 2806 2805 2744 2743 2526 2249 2248 2804 2742 2484 2483 2247 2878 2877 2876 2875 2485 2255 2254 2880 2879 25 2529 2265 2264 2807 2806 2745 2744 2527 2257 2256 2805 2743 2485 2484 2255 2254 2880 2879 2878 2877 2486 2263 2262 2882 2881 24 2530 2271 2270 2808 2807 2746 2745 2528 2265 2264 2806 2744 2486 2485 2263 2262 2882 2881 2880 2879 2487 2269 2884 2883 24 2531 2279 2278 2809 2808 2747 2746 2529 2271 2270 2807 2745 2487 2486 2269 2884 2883 2882 2881 2488 2277 2276 2886 2885 25 2532 2285 2284 2810 2809 2748 2747 2530 2279 2278 2808 2746 2488 2487 2277 2276 2886 2885 2884 2883 94 2489 2283 2888 2887 25 2533 2291 2290 2811 2810 2749 2748 2531 2285 2284 2809 2747 94 2489 2488 2283 2888 2887 2886 2885 95 2490 2289 2890 2889 25 2534 2297 2296 2812 2811 2750 2749 2532 2291 2290 2810 2748 95 2490 2489 2289 2890 2889 2888 2887 96 2491 2295 2892 2891 25 2535 2303 2302 2813 2812 2751 2750 2533 2297 2296 2811 2749 96 2491 2490 2295 2892 2891 2890 2889 97 2492 2301 2894 2893 25 2536 2309 2308 2814 2813 2752 2751 2534 2303 2302 2812 2750 97 2492 2491 2301 2894 2893 2892 2891 98 2493 2307 2896 2895 25 2537 2315 2314 2815 2814 2753 2752 2535 2309 2308 2813 2751 98 2493 2492 2307 2896 2895 2894 2893 99 2494 2313 2898 2897 25 2538 2323 2322 2816 2815 2754 2753 2536 2315 2314 2814 2752 99 2494 2493 2313 2898 2897 2896 2895 2495 2321 2320 2760 2759 21 3213 3207 3132 2816 2754 2537 2323 2322 2815 2753 2495 2494 2321 2320 2898 2897 2760 2759 3217 3203 2711 11 3429 3339 3307 2540 3417 3345 3309 3062 2541 2008 3063 18 2541 2009 2008 3005 3004 2584 2583 3406 3351 3345 3311 3309 2539 3417 3339 3307 3062 3063 16 2542 2016 2014 3006 3005 2585 2584 2540 2009 2008 3004 2583 2539 3063 3062 3064 15 2543 2026 2024 3008 3006 2586 2585 2541 2016 2014 3005 2584 3064 3063 3066 15 2544 2035 2034 3009 3008 2587 2586 2542 2026 2024 3006 2585 3066 3064 3067 15 2545 2042 2040 3010 3009 2588 2587 2543 2035 2034 3008 2586 3067 3066 3068 15 2546 2050 2048 3012 3010 2589 2588 2544 2042 2040 3009 2587 3068 3067 3070 15 2547 2059 2058 3013 3012 2590 2589 2545 2050 2048 3010 2588 3070 3068 3071 15 2548 2066 2064 3014 3013 2591 2590 2546 2059 2058 3012 2589 3071 3070 3072 15 2549 2074 2072 3016 3014 2592 2591 2547 2066 2064 3013 2590 3072 3071 3074 15 2550 2081 2080 3017 3016 2593 2592 2548 2074 2072 3014 2591 3074 3072 3075 15 2551 2088 2086 3018 3017 2594 2593 2549 2081 2080 3016 2592 3075 3074 3076 15 2552 2096 2094 3020 3018 2595 2594 2550 2088 2086 3017 2593 3076 3075 3078 15 2553 2105 2104 3021 3020 2596 2595 2551 2096 2094 3018 2594 3078 3076 3079 15 2554 2112 2110 3022 3021 2597 2596 2552 2105 2104 3020 2595 3079 3078 3080 15 2555 2120 2118 3024 3022 2598 2597 2553 2112 2110 3021 2596 3080 3079 3082 15 2556 2127 2126 3025 3024 2599 2598 2554 2120 2118 3022 2597 3082 3080 3083 15 2557 2134 2132 3026 3025 2600 2599 2555 2127 2126 3024 2598 3083 3082 3084 15 2558 2142 2140 3028 3026 2601 2600 2556 2134 2132 3025 2599 3084 3083 3086 15 2559 2151 2150 3029 3028 2602 2601 2557 2142 2140 3026 2600 3086 3084 3087 15 2560 2158 2156 3030 3029 2603 2602 2558 2151 2150 3028 2601 3087 3086 3088 15 2561 2166 2164 3032 3030 2604 2603 2559 2158 2156 3029 2602 3088 3087 3090 15 2562 2173 2172 3033 3032 2605 2604 2560 2166 2164 3030 2603 3090 3088 3091 15 2563 2180 2178 3034 3033 2606 2605 2561 2173 2172 3032 2604 3091 3090 3092 15 2564 2188 2186 3036 3034 2607 2606 2562 2180 2178 3033 2605 3092 3091 3094 15 2565 2197 2196 3037 3036 2608 2607 2563 2188 2186 3034 2606 3094 3092 3095 15 2566 2204 2202 3038 3037 2609 2608 2564 2197 2196 3036 2607 3095 3094 3096 15 2567 2212 2210 3040 3038 2610 2609 2565 2204 2202 3037 2608 3096 3095 3098 15 2568 2219 2218 3041 3040 2611 2610 2566 2212 2210 3038 2609 3098 3096 3099 15 2569 2226 2224 3042 3041 2612 2611 2567 2219 2218 3040 2610 3099 3098 3100 15 2570 2236 2234 3044 3042 2613 2612 2568 2226 2224 3041 2611 3100 3099 3102 15 2571 2245 2244 3045 3044 2614 2613 2569 2236 2234 3042 2612 3102 3100 3103 15 2572 2252 2250 3046 3045 2615 2614 2570 2245 2244 3044 2613 3103 3102 3104 15 2573 2260 2258 3048 3046 2616 2615 2571 2252 2250 3045 2614 3104 3103 3106 15 2267 2266 3049 3048 2617 2616 2574 2572 2260 2258 3046 2615 3106 3104 3107 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-3.adm000066400000000000000000007274341514310134000257610ustar00rootroot000000000000003 4 3 3431 34920 857 40501 0 000 48 28399 28400 28401 28402 28403 28404 31321 31322 31323 31324 31325 31326 28243 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 31327 31328 31329 31330 31331 31332 28411 28412 28413 28414 28415 28416 28405 28406 28407 28408 28409 28410 48 28543 28544 28545 28546 28547 28548 31333 31334 31335 31336 31337 31338 28399 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 31339 31340 31341 31342 31343 31344 21157 21158 21159 21160 21161 21162 28549 28550 28551 28552 28553 28554 48 28669 28670 28671 28672 28673 28674 31345 31346 31347 31348 31349 31350 28543 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 21157 21158 21159 21160 21161 21162 21169 21170 21171 21172 21173 21174 21133 21134 21135 21136 21137 21138 28675 28676 28677 28678 28679 28680 48 28795 28796 28797 28798 28799 28800 31351 31352 31353 31354 31355 31356 28669 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 21133 21134 21135 21136 21137 21138 21187 21188 21189 21190 21191 21192 21175 21176 21177 21178 21179 21180 28801 28802 28803 28804 28805 28806 48 28921 28922 28923 28924 28925 28926 31357 31358 31359 31360 31361 31362 28795 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 21175 21176 21177 21178 21179 21180 31363 31364 31365 31366 31367 31368 28933 28934 28935 28936 28937 28938 28927 28928 28929 28930 28931 28932 48 29065 29066 29067 29068 29069 29070 31369 31370 31371 31372 31373 31374 28921 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 31375 31376 31377 31378 31379 31380 29077 29078 29079 29080 29081 29082 29071 29072 29073 29074 29075 29076 48 29221 29222 29223 29224 29225 29226 31381 31382 31383 31384 31385 31386 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 31387 31388 31389 31390 31391 31392 29233 29234 29235 29236 29237 29238 29227 29228 29229 29230 29231 29232 48 29377 29378 29379 29380 29381 29382 31393 31394 31395 31396 31397 31398 29221 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 31399 31400 31401 31402 31403 31404 29389 29390 29391 29392 29393 29394 29383 29384 29385 29386 29387 29388 48 31405 31406 31407 31408 31409 31410 31411 31412 31413 31414 31415 31416 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 31423 31424 31425 31426 31427 31428 31417 31418 31419 31420 31421 31422 31429 31430 31431 31432 31433 31434 48 22627 22628 22629 22630 22631 22632 31435 31436 31437 31438 31439 31440 31441 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 30913 30914 30915 30916 30917 30918 30907 30908 30909 30910 30911 30912 22585 22586 22587 22588 22589 22590 22633 22634 22635 22636 22637 22638 48 22795 22796 22797 22798 22799 22800 31453 31454 31455 31456 31457 31458 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22585 22586 22587 22588 22589 22590 30925 30926 30927 30928 30929 30930 22747 22748 22749 22750 22751 22752 22801 22802 22803 22804 22805 22806 48 22975 22976 22977 22978 22979 22980 31459 31460 31461 31462 31463 31464 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22747 22748 22749 22750 22751 22752 30937 30938 30939 30940 30941 30942 22927 22928 22929 22930 22931 22932 22981 22982 22983 22984 22985 22986 48 23149 23150 23151 23152 23153 23154 31465 31466 31467 31468 31469 31470 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22927 22928 22929 22930 22931 22932 30949 30950 30951 30952 30953 30954 23107 23108 23109 23110 23111 23112 23155 23156 23157 23158 23159 23160 48 23317 23318 23319 23320 23321 23322 31471 31472 31473 31474 31475 31476 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23107 23108 23109 23110 23111 23112 30961 30962 30963 30964 30965 30966 23269 23270 23271 23272 23273 23274 23323 23324 23325 23326 23327 23328 48 23491 23492 23493 23494 23495 23496 31477 31478 31479 31480 31481 31482 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23269 23270 23271 23272 23273 23274 30973 30974 30975 30976 30977 30978 23443 23444 23445 23446 23447 23448 23497 23498 23499 23500 23501 23502 48 23665 23666 23667 23668 23669 23670 31483 31484 31485 31486 31487 31488 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23443 23444 23445 23446 23447 23448 30985 30986 30987 30988 30989 30990 23623 23624 23625 23626 23627 23628 23671 23672 23673 23674 23675 23676 48 23833 23834 23835 23836 23837 23838 31489 31490 31491 31492 31493 31494 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23623 23624 23625 23626 23627 23628 30997 30998 30999 31000 31001 31002 23785 23786 23787 23788 23789 23790 23839 23840 23841 23842 23843 23844 48 24007 24008 24009 24010 24011 24012 31495 31496 31497 31498 31499 31500 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23785 23786 23787 23788 23789 23790 31009 31010 31011 31012 31013 31014 23959 23960 23961 23962 23963 23964 24013 24014 24015 24016 24017 24018 48 24175 24176 24177 24178 24179 24180 31501 31502 31503 31504 31505 31506 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 23959 23960 23961 23962 23963 23964 31021 31022 31023 31024 31025 31026 24133 24134 24135 24136 24137 24138 24181 24182 24183 24184 24185 24186 48 24343 24344 24345 24346 24347 24348 31507 31508 31509 31510 31511 31512 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24133 24134 24135 24136 24137 24138 31033 31034 31035 31036 31037 31038 24295 24296 24297 24298 24299 24300 24349 24350 24351 24352 24353 24354 48 24517 24518 24519 24520 24521 24522 31513 31514 31515 31516 31517 31518 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24295 24296 24297 24298 24299 24300 31045 31046 31047 31048 31049 31050 24469 24470 24471 24472 24473 24474 24523 24524 24525 24526 24527 24528 48 24691 24692 24693 24694 24695 24696 31519 31520 31521 31522 31523 31524 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24469 24470 24471 24472 24473 24474 31057 31058 31059 31060 31061 31062 24649 24650 24651 24652 24653 24654 24697 24698 24699 24700 24701 24702 48 24859 24860 24861 24862 24863 24864 31525 31526 31527 31528 31529 31530 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24649 24650 24651 24652 24653 24654 31069 31070 31071 31072 31073 31074 24811 24812 24813 24814 24815 24816 24865 24866 24867 24868 24869 24870 48 25033 25034 25035 25036 25037 25038 31531 31532 31533 31534 31535 31536 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24811 24812 24813 24814 24815 24816 31081 31082 31083 31084 31085 31086 24985 24986 24987 24988 24989 24990 25039 25040 25041 25042 25043 25044 48 25201 25202 25203 25204 25205 25206 31537 31538 31539 31540 31541 31542 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 24985 24986 24987 24988 24989 24990 31093 31094 31095 31096 31097 31098 25159 25160 25161 25162 25163 25164 25207 25208 25209 25210 25211 25212 48 25369 25370 25371 25372 25373 25374 31543 31544 31545 31546 31547 31548 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25159 25160 25161 25162 25163 25164 31105 31106 31107 31108 31109 31110 25321 25322 25323 25324 25325 25326 25375 25376 25377 25378 25379 25380 48 25543 25544 25545 25546 25547 25548 31549 31550 31551 31552 31553 31554 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25321 25322 25323 25324 25325 25326 31117 31118 31119 31120 31121 31122 25495 25496 25497 25498 25499 25500 25549 25550 25551 25552 25553 25554 48 25717 25718 25719 25720 25721 25722 31555 31556 31557 31558 31559 31560 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25495 25496 25497 25498 25499 25500 31129 31130 31131 31132 31133 31134 25675 25676 25677 25678 25679 25680 25723 25724 25725 25726 25727 25728 48 25885 25886 25887 25888 25889 25890 31561 31562 31563 31564 31565 31566 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25675 25676 25677 25678 25679 25680 31141 31142 31143 31144 31145 31146 25837 25838 25839 25840 25841 25842 25891 25892 25893 25894 25895 25896 48 26059 26060 26061 26062 26063 26064 31567 31568 31569 31570 31571 31572 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25837 25838 25839 25840 25841 25842 31153 31154 31155 31156 31157 31158 26011 26012 26013 26014 26015 26016 26065 26066 26067 26068 26069 26070 48 26227 26228 26229 26230 26231 26232 31573 31574 31575 31576 31577 31578 26059 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26011 26012 26013 26014 26015 26016 31165 31166 31167 31168 31169 31170 26185 26186 26187 26188 26189 26190 26233 26234 26235 26236 26237 26238 48 26395 26396 26397 26398 26399 26400 31579 31580 31581 31582 31583 31584 26227 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26185 26186 26187 26188 26189 26190 31177 31178 31179 31180 31181 31182 26347 26348 26349 26350 26351 26352 26401 26402 26403 26404 26405 26406 48 26569 26570 26571 26572 26573 26574 31585 31586 31587 31588 31589 31590 26395 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26347 26348 26349 26350 26351 26352 31189 31190 31191 31192 31193 31194 26521 26522 26523 26524 26525 26526 26575 26576 26577 26578 26579 26580 48 26743 26744 26745 26746 26747 26748 31591 31592 31593 31594 31595 31596 26569 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26521 26522 26523 26524 26525 26526 31201 31202 31203 31204 31205 31206 26701 26702 26703 26704 26705 26706 26749 26750 26751 26752 26753 26754 48 26911 26912 26913 26914 26915 26916 31597 31598 31599 31600 31601 31602 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26701 26702 26703 26704 26705 26706 31213 31214 31215 31216 31217 31218 26863 26864 26865 26866 26867 26868 26917 26918 26919 26920 26921 26922 48 27085 27086 27087 27088 27089 27090 31603 31604 31605 31606 31607 31608 26911 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26863 26864 26865 26866 26867 26868 31225 31226 31227 31228 31229 31230 27037 27038 27039 27040 27041 27042 27091 27092 27093 27094 27095 27096 48 27253 27254 27255 27256 27257 27258 31609 31610 31611 31612 31613 31614 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27037 27038 27039 27040 27041 27042 31237 31238 31239 31240 31241 31242 27211 27212 27213 27214 27215 27216 27259 27260 27261 27262 27263 27264 48 27421 27422 27423 27424 27425 27426 31615 31616 31617 31618 31619 31620 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27211 27212 27213 27214 27215 27216 31249 31250 31251 31252 31253 31254 27373 27374 27375 27376 27377 27378 27427 27428 27429 27430 27431 27432 48 27601 27602 27603 27604 27605 27606 31621 31622 31623 31624 31625 31626 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27373 27374 27375 27376 27377 27378 31261 31262 31263 31264 31265 31266 27553 27554 27555 27556 27557 27558 27607 27608 27609 27610 27611 27612 48 27775 27776 27777 27778 27779 27780 31627 31628 31629 31630 31631 31632 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27553 27554 27555 27556 27557 27558 31273 31274 31275 31276 31277 31278 27733 27734 27735 27736 27737 27738 27781 27782 27783 27784 27785 27786 48 27943 27944 27945 27946 27947 27948 31633 31634 31635 31636 31637 31638 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27733 27734 27735 27736 27737 27738 31285 31286 31287 31288 31289 31290 27895 27896 27897 27898 27899 27900 27949 27950 27951 27952 27953 27954 48 28117 28118 28119 28120 28121 28122 31639 31640 31641 31642 31643 31644 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27895 27896 27897 27898 27899 27900 31297 31298 31299 31300 31301 31302 28069 28070 28071 28072 28073 28074 28123 28124 28125 28126 28127 28128 48 28285 28286 28287 28288 28289 28290 31645 31646 31647 31648 31649 31650 28117 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28069 28070 28071 28072 28073 28074 31309 31310 31311 31312 31313 31314 28243 28244 28245 28246 28247 28248 28291 28292 28293 28294 28295 28296 48 28435 28436 28437 28438 28439 28440 31651 31652 31653 31654 31655 31656 28285 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28243 28244 28245 28246 28247 28248 31321 31322 31323 31324 31325 31326 28399 28400 28401 28402 28403 28404 28441 28442 28443 28444 28445 28446 48 28567 28568 28569 28570 28571 28572 31657 31658 31659 31660 31661 31662 28435 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28399 28400 28401 28402 28403 28404 31333 31334 31335 31336 31337 31338 28543 28544 28545 28546 28547 28548 28573 28574 28575 28576 28577 28578 48 28693 28694 28695 28696 28697 28698 31663 31664 31665 31666 31667 31668 28567 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28543 28544 28545 28546 28547 28548 31345 31346 31347 31348 31349 31350 28669 28670 28671 28672 28673 28674 28699 28700 28701 28702 28703 28704 48 28819 28820 28821 28822 28823 28824 31669 31670 31671 31672 31673 31674 28693 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28669 28670 28671 28672 28673 28674 31351 31352 31353 31354 31355 31356 28795 28796 28797 28798 28799 28800 28825 28826 28827 28828 28829 28830 48 28957 28958 28959 28960 28961 28962 31675 31676 31677 31678 31679 31680 28819 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28795 28796 28797 28798 28799 28800 31357 31358 31359 31360 31361 31362 28921 28922 28923 28924 28925 28926 28963 28964 28965 28966 28967 28968 48 29107 29108 29109 29110 29111 29112 31681 31682 31683 31684 31685 31686 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28921 28922 28923 28924 28925 28926 31369 31370 31371 31372 31373 31374 29065 29066 29067 29068 29069 29070 29113 29114 29115 29116 29117 29118 48 29263 29264 29265 29266 29267 29268 31687 31688 31689 31690 31691 31692 29107 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29065 29066 29067 29068 29069 29070 31381 31382 31383 31384 31385 31386 29221 29222 29223 29224 29225 29226 29269 29270 29271 29272 29273 29274 48 29425 29426 29427 29428 29429 29430 31693 31694 31695 31696 31697 31698 29263 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29221 29222 29223 29224 29225 29226 31393 31394 31395 31396 31397 31398 29377 29378 29379 29380 29381 29382 29431 29432 29433 29434 29435 29436 48 31699 31700 31701 31702 31703 31704 31705 31706 31707 31708 31709 31710 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29377 29378 29379 29380 29381 29382 31411 31412 31413 31414 31415 31416 31405 31406 31407 31408 31409 31410 31711 31712 31713 31714 31715 31716 48 22657 22658 22659 22660 22661 22662 31717 31718 31719 31720 31721 31722 30061 30062 30063 30064 30065 30066 31723 31724 31725 31726 31727 31728 31441 31442 31443 31444 31445 31446 31435 31436 31437 31438 31439 31440 22627 22628 22629 22630 22631 22632 22663 22664 22665 22666 22667 22668 48 22831 22832 22833 22834 22835 22836 31729 31730 31731 31732 31733 31734 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22627 22628 22629 22630 22631 22632 31453 31454 31455 31456 31457 31458 22795 22796 22797 22798 22799 22800 22837 22838 22839 22840 22841 22842 48 23011 23012 23013 23014 23015 23016 31735 31736 31737 31738 31739 31740 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22795 22796 22797 22798 22799 22800 31459 31460 31461 31462 31463 31464 22975 22976 22977 22978 22979 22980 23017 23018 23019 23020 23021 23022 48 23179 23180 23181 23182 23183 23184 31741 31742 31743 31744 31745 31746 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 22975 22976 22977 22978 22979 22980 31465 31466 31467 31468 31469 31470 23149 23150 23151 23152 23153 23154 23185 23186 23187 23188 23189 23190 48 23347 23348 23349 23350 23351 23352 31747 31748 31749 31750 31751 31752 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23149 23150 23151 23152 23153 23154 31471 31472 31473 31474 31475 31476 23317 23318 23319 23320 23321 23322 23353 23354 23355 23356 23357 23358 48 23527 23528 23529 23530 23531 23532 31753 31754 31755 31756 31757 31758 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23317 23318 23319 23320 23321 23322 31477 31478 31479 31480 31481 31482 23491 23492 23493 23494 23495 23496 23533 23534 23535 23536 23537 23538 48 23695 23696 23697 23698 23699 23700 31759 31760 31761 31762 31763 31764 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23491 23492 23493 23494 23495 23496 31483 31484 31485 31486 31487 31488 23665 23666 23667 23668 23669 23670 23701 23702 23703 23704 23705 23706 48 23863 23864 23865 23866 23867 23868 31765 31766 31767 31768 31769 31770 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23665 23666 23667 23668 23669 23670 31489 31490 31491 31492 31493 31494 23833 23834 23835 23836 23837 23838 23869 23870 23871 23872 23873 23874 48 24037 24038 24039 24040 24041 24042 31771 31772 31773 31774 31775 31776 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23833 23834 23835 23836 23837 23838 31495 31496 31497 31498 31499 31500 24007 24008 24009 24010 24011 24012 24043 24044 24045 24046 24047 24048 48 24205 24206 24207 24208 24209 24210 31777 31778 31779 31780 31781 31782 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24007 24008 24009 24010 24011 24012 31501 31502 31503 31504 31505 31506 24175 24176 24177 24178 24179 24180 24211 24212 24213 24214 24215 24216 48 24373 24374 24375 24376 24377 24378 31783 31784 31785 31786 31787 31788 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24175 24176 24177 24178 24179 24180 31507 31508 31509 31510 31511 31512 24343 24344 24345 24346 24347 24348 24379 24380 24381 24382 24383 24384 48 24553 24554 24555 24556 24557 24558 31789 31790 31791 31792 31793 31794 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24343 24344 24345 24346 24347 24348 31513 31514 31515 31516 31517 31518 24517 24518 24519 24520 24521 24522 24559 24560 24561 24562 24563 24564 48 24721 24722 24723 24724 24725 24726 31795 31796 31797 31798 31799 31800 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24517 24518 24519 24520 24521 24522 31519 31520 31521 31522 31523 31524 24691 24692 24693 24694 24695 24696 24727 24728 24729 24730 24731 24732 48 24889 24890 24891 24892 24893 24894 31801 31802 31803 31804 31805 31806 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24691 24692 24693 24694 24695 24696 31525 31526 31527 31528 31529 31530 24859 24860 24861 24862 24863 24864 24895 24896 24897 24898 24899 24900 48 25063 25064 25065 25066 25067 25068 31807 31808 31809 31810 31811 31812 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24859 24860 24861 24862 24863 24864 31531 31532 31533 31534 31535 31536 25033 25034 25035 25036 25037 25038 25069 25070 25071 25072 25073 25074 48 25231 25232 25233 25234 25235 25236 31813 31814 31815 31816 31817 31818 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25033 25034 25035 25036 25037 25038 31537 31538 31539 31540 31541 31542 25201 25202 25203 25204 25205 25206 25237 25238 25239 25240 25241 25242 48 25399 25400 25401 25402 25403 25404 31819 31820 31821 31822 31823 31824 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25201 25202 25203 25204 25205 25206 31543 31544 31545 31546 31547 31548 25369 25370 25371 25372 25373 25374 25405 25406 25407 25408 25409 25410 48 25579 25580 25581 25582 25583 25584 31825 31826 31827 31828 31829 31830 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25369 25370 25371 25372 25373 25374 31549 31550 31551 31552 31553 31554 25543 25544 25545 25546 25547 25548 25585 25586 25587 25588 25589 25590 48 25747 25748 25749 25750 25751 25752 31831 31832 31833 31834 31835 31836 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25543 25544 25545 25546 25547 25548 31555 31556 31557 31558 31559 31560 25717 25718 25719 25720 25721 25722 25753 25754 25755 25756 25757 25758 48 25915 25916 25917 25918 25919 25920 31837 31838 31839 31840 31841 31842 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25717 25718 25719 25720 25721 25722 31561 31562 31563 31564 31565 31566 25885 25886 25887 25888 25889 25890 25921 25922 25923 25924 25925 25926 48 26089 26090 26091 26092 26093 26094 31843 31844 31845 31846 31847 31848 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25885 25886 25887 25888 25889 25890 31567 31568 31569 31570 31571 31572 26059 26060 26061 26062 26063 26064 26095 26096 26097 26098 26099 26100 48 26257 26258 26259 26260 26261 26262 31849 31850 31851 31852 31853 31854 26089 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26059 26060 26061 26062 26063 26064 31573 31574 31575 31576 31577 31578 26227 26228 26229 26230 26231 26232 26263 26264 26265 26266 26267 26268 48 26425 26426 26427 26428 26429 26430 31855 31856 31857 31858 31859 31860 26257 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26227 26228 26229 26230 26231 26232 31579 31580 31581 31582 31583 31584 26395 26396 26397 26398 26399 26400 26431 26432 26433 26434 26435 26436 48 26605 26606 26607 26608 26609 26610 31861 31862 31863 31864 31865 31866 26425 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26395 26396 26397 26398 26399 26400 31585 31586 31587 31588 31589 31590 26569 26570 26571 26572 26573 26574 26611 26612 26613 26614 26615 26616 48 26773 26774 26775 26776 26777 26778 31867 31868 31869 31870 31871 31872 26605 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26569 26570 26571 26572 26573 26574 31591 31592 31593 31594 31595 31596 26743 26744 26745 26746 26747 26748 26779 26780 26781 26782 26783 26784 48 26941 26942 26943 26944 26945 26946 31873 31874 31875 31876 31877 31878 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26743 26744 26745 26746 26747 26748 31597 31598 31599 31600 31601 31602 26911 26912 26913 26914 26915 26916 26947 26948 26949 26950 26951 26952 48 27115 27116 27117 27118 27119 27120 31879 31880 31881 31882 31883 31884 26941 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26911 26912 26913 26914 26915 26916 31603 31604 31605 31606 31607 31608 27085 27086 27087 27088 27089 27090 27121 27122 27123 27124 27125 27126 48 27283 27284 27285 27286 27287 27288 31885 31886 31887 31888 31889 31890 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27085 27086 27087 27088 27089 27090 31609 31610 31611 31612 31613 31614 27253 27254 27255 27256 27257 27258 27289 27290 27291 27292 27293 27294 48 27457 27458 27459 27460 27461 27462 31891 31892 31893 31894 31895 31896 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27253 27254 27255 27256 27257 27258 31615 31616 31617 31618 31619 31620 27421 27422 27423 27424 27425 27426 27463 27464 27465 27466 27467 27468 48 27637 27638 27639 27640 27641 27642 31897 31898 31899 31900 31901 31902 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27421 27422 27423 27424 27425 27426 31621 31622 31623 31624 31625 31626 27601 27602 27603 27604 27605 27606 27643 27644 27645 27646 27647 27648 48 27805 27806 27807 27808 27809 27810 31903 31904 31905 31906 31907 31908 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27601 27602 27603 27604 27605 27606 31627 31628 31629 31630 31631 31632 27775 27776 27777 27778 27779 27780 27811 27812 27813 27814 27815 27816 48 27973 27974 27975 27976 27977 27978 31909 31910 31911 31912 31913 31914 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27775 27776 27777 27778 27779 27780 31633 31634 31635 31636 31637 31638 27943 27944 27945 27946 27947 27948 27979 27980 27981 27982 27983 27984 48 28147 28148 28149 28150 28151 28152 31915 31916 31917 31918 31919 31920 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27943 27944 27945 27946 27947 27948 31639 31640 31641 31642 31643 31644 28117 28118 28119 28120 28121 28122 28153 28154 28155 28156 28157 28158 48 28315 28316 28317 28318 28319 28320 31921 31922 31923 31924 31925 31926 28147 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28117 28118 28119 28120 28121 28122 31645 31646 31647 31648 31649 31650 28285 28286 28287 28288 28289 28290 28321 28322 28323 28324 28325 28326 48 28459 28460 28461 28462 28463 28464 31927 31928 31929 31930 31931 31932 28315 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28285 28286 28287 28288 28289 28290 31651 31652 31653 31654 31655 31656 28435 28436 28437 28438 28439 28440 28465 28466 28467 28468 28469 28470 48 28591 28592 28593 28594 28595 28596 31933 31934 31935 31936 31937 31938 28459 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28435 28436 28437 28438 28439 28440 31657 31658 31659 31660 31661 31662 28567 28568 28569 28570 28571 28572 28597 28598 28599 28600 28601 28602 48 28717 28718 28719 28720 28721 28722 31939 31940 31941 31942 31943 31944 28591 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28567 28568 28569 28570 28571 28572 31663 31664 31665 31666 31667 31668 28693 28694 28695 28696 28697 28698 28723 28724 28725 28726 28727 28728 48 28843 28844 28845 28846 28847 28848 31945 31946 31947 31948 31949 31950 28717 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28693 28694 28695 28696 28697 28698 31669 31670 31671 31672 31673 31674 28819 28820 28821 28822 28823 28824 28849 28850 28851 28852 28853 28854 48 28981 28982 28983 28984 28985 28986 31951 31952 31953 31954 31955 31956 28843 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28819 28820 28821 28822 28823 28824 31675 31676 31677 31678 31679 31680 28957 28958 28959 28960 28961 28962 28987 28988 28989 28990 28991 28992 48 29137 29138 29139 29140 29141 29142 31957 31958 31959 31960 31961 31962 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28957 28958 28959 28960 28961 28962 31681 31682 31683 31684 31685 31686 29107 29108 29109 29110 29111 29112 29143 29144 29145 29146 29147 29148 48 29293 29294 29295 29296 29297 29298 31963 31964 31965 31966 31967 31968 29137 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29107 29108 29109 29110 29111 29112 31687 31688 31689 31690 31691 31692 29263 29264 29265 29266 29267 29268 29299 29300 29301 29302 29303 29304 48 29455 29456 29457 29458 29459 29460 31969 31970 31971 31972 31973 31974 29293 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29263 29264 29265 29266 29267 29268 31693 31694 31695 31696 31697 31698 29425 29426 29427 29428 29429 29430 29461 29462 29463 29464 29465 29466 48 30295 30296 30297 30298 30299 30300 31975 31976 31977 31978 31979 31980 29455 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29425 29426 29427 29428 29429 29430 31705 31706 31707 31708 31709 31710 31699 31700 31701 31702 31703 31704 31981 31982 31983 31984 31985 31986 48 22687 22688 22689 22690 22691 22692 31987 31988 31989 31990 31991 31992 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30061 30062 30063 30064 30065 30066 31717 31718 31719 31720 31721 31722 22657 22658 22659 22660 22661 22662 22693 22694 22695 22696 22697 22698 48 22867 22868 22869 22870 22871 22872 31993 31994 31995 31996 31997 31998 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22657 22658 22659 22660 22661 22662 31729 31730 31731 31732 31733 31734 22831 22832 22833 22834 22835 22836 22873 22874 22875 22876 22877 22878 48 23047 23048 23049 23050 23051 23052 31999 32000 32001 32002 32003 32004 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22831 22832 22833 22834 22835 22836 31735 31736 31737 31738 31739 31740 23011 23012 23013 23014 23015 23016 23053 23054 23055 23056 23057 23058 48 23209 23210 23211 23212 23213 23214 32005 32006 32007 32008 32009 32010 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23011 23012 23013 23014 23015 23016 31741 31742 31743 31744 31745 31746 23179 23180 23181 23182 23183 23184 23215 23216 23217 23218 23219 23220 48 23377 23378 23379 23380 23381 23382 32011 32012 32013 32014 32015 32016 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23179 23180 23181 23182 23183 23184 31747 31748 31749 31750 31751 31752 23347 23348 23349 23350 23351 23352 23383 23384 23385 23386 23387 23388 48 23563 23564 23565 23566 23567 23568 32017 32018 32019 32020 32021 32022 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23347 23348 23349 23350 23351 23352 31753 31754 31755 31756 31757 31758 23527 23528 23529 23530 23531 23532 23569 23570 23571 23572 23573 23574 48 23725 23726 23727 23728 23729 23730 32023 32024 32025 32026 32027 32028 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23527 23528 23529 23530 23531 23532 31759 31760 31761 31762 31763 31764 23695 23696 23697 23698 23699 23700 23731 23732 23733 23734 23735 23736 48 23893 23894 23895 23896 23897 23898 32029 32030 32031 32032 32033 32034 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23695 23696 23697 23698 23699 23700 31765 31766 31767 31768 31769 31770 23863 23864 23865 23866 23867 23868 23899 23900 23901 23902 23903 23904 48 24067 24068 24069 24070 24071 24072 32035 32036 32037 32038 32039 32040 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23863 23864 23865 23866 23867 23868 31771 31772 31773 31774 31775 31776 24037 24038 24039 24040 24041 24042 24073 24074 24075 24076 24077 24078 48 24235 24236 24237 24238 24239 24240 32041 32042 32043 32044 32045 32046 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24037 24038 24039 24040 24041 24042 31777 31778 31779 31780 31781 31782 24205 24206 24207 24208 24209 24210 24241 24242 24243 24244 24245 24246 48 24403 24404 24405 24406 24407 24408 32047 32048 32049 32050 32051 32052 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24205 24206 24207 24208 24209 24210 31783 31784 31785 31786 31787 31788 24373 24374 24375 24376 24377 24378 24409 24410 24411 24412 24413 24414 48 24589 24590 24591 24592 24593 24594 32053 32054 32055 32056 32057 32058 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24373 24374 24375 24376 24377 24378 31789 31790 31791 31792 31793 31794 24553 24554 24555 24556 24557 24558 24595 24596 24597 24598 24599 24600 48 24751 24752 24753 24754 24755 24756 32059 32060 32061 32062 32063 32064 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24553 24554 24555 24556 24557 24558 31795 31796 31797 31798 31799 31800 24721 24722 24723 24724 24725 24726 24757 24758 24759 24760 24761 24762 48 24919 24920 24921 24922 24923 24924 32065 32066 32067 32068 32069 32070 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24721 24722 24723 24724 24725 24726 31801 31802 31803 31804 31805 31806 24889 24890 24891 24892 24893 24894 24925 24926 24927 24928 24929 24930 48 25093 25094 25095 25096 25097 25098 32071 32072 32073 32074 32075 32076 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24889 24890 24891 24892 24893 24894 31807 31808 31809 31810 31811 31812 25063 25064 25065 25066 25067 25068 25099 25100 25101 25102 25103 25104 48 25261 25262 25263 25264 25265 25266 32077 32078 32079 32080 32081 32082 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25063 25064 25065 25066 25067 25068 31813 31814 31815 31816 31817 31818 25231 25232 25233 25234 25235 25236 25267 25268 25269 25270 25271 25272 48 25429 25430 25431 25432 25433 25434 32083 32084 32085 32086 32087 32088 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25231 25232 25233 25234 25235 25236 31819 31820 31821 31822 31823 31824 25399 25400 25401 25402 25403 25404 25435 25436 25437 25438 25439 25440 48 25615 25616 25617 25618 25619 25620 32089 32090 32091 32092 32093 32094 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25399 25400 25401 25402 25403 25404 31825 31826 31827 31828 31829 31830 25579 25580 25581 25582 25583 25584 25621 25622 25623 25624 25625 25626 48 25777 25778 25779 25780 25781 25782 32095 32096 32097 32098 32099 32100 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25579 25580 25581 25582 25583 25584 31831 31832 31833 31834 31835 31836 25747 25748 25749 25750 25751 25752 25783 25784 25785 25786 25787 25788 48 25945 25946 25947 25948 25949 25950 32101 32102 32103 32104 32105 32106 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25747 25748 25749 25750 25751 25752 31837 31838 31839 31840 31841 31842 25915 25916 25917 25918 25919 25920 25951 25952 25953 25954 25955 25956 48 26119 26120 26121 26122 26123 26124 32107 32108 32109 32110 32111 32112 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25915 25916 25917 25918 25919 25920 31843 31844 31845 31846 31847 31848 26089 26090 26091 26092 26093 26094 26125 26126 26127 26128 26129 26130 48 26287 26288 26289 26290 26291 26292 32113 32114 32115 32116 32117 32118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26089 26090 26091 26092 26093 26094 31849 31850 31851 31852 31853 31854 26257 26258 26259 26260 26261 26262 26293 26294 26295 26296 26297 26298 48 26455 26456 26457 26458 26459 26460 32119 32120 32121 32122 32123 32124 26287 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26257 26258 26259 26260 26261 26262 31855 31856 31857 31858 31859 31860 26425 26426 26427 26428 26429 26430 26461 26462 26463 26464 26465 26466 48 26641 26642 26643 26644 26645 26646 32125 32126 32127 32128 32129 32130 26455 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26425 26426 26427 26428 26429 26430 31861 31862 31863 31864 31865 31866 26605 26606 26607 26608 26609 26610 26647 26648 26649 26650 26651 26652 48 26803 26804 26805 26806 26807 26808 32131 32132 32133 32134 32135 32136 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26605 26606 26607 26608 26609 26610 31867 31868 31869 31870 31871 31872 26773 26774 26775 26776 26777 26778 26809 26810 26811 26812 26813 26814 48 26971 26972 26973 26974 26975 26976 32137 32138 32139 32140 32141 32142 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26773 26774 26775 26776 26777 26778 31873 31874 31875 31876 31877 31878 26941 26942 26943 26944 26945 26946 26977 26978 26979 26980 26981 26982 48 27145 27146 27147 27148 27149 27150 32143 32144 32145 32146 32147 32148 26971 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26941 26942 26943 26944 26945 26946 31879 31880 31881 31882 31883 31884 27115 27116 27117 27118 27119 27120 27151 27152 27153 27154 27155 27156 48 27313 27314 27315 27316 27317 27318 32149 32150 32151 32152 32153 32154 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27115 27116 27117 27118 27119 27120 31885 31886 31887 31888 31889 31890 27283 27284 27285 27286 27287 27288 27319 27320 27321 27322 27323 27324 48 27493 27494 27495 27496 27497 27498 32155 32156 32157 32158 32159 32160 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27283 27284 27285 27286 27287 27288 31891 31892 31893 31894 31895 31896 27457 27458 27459 27460 27461 27462 27499 27500 27501 27502 27503 27504 48 27673 27674 27675 27676 27677 27678 32161 32162 32163 32164 32165 32166 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27457 27458 27459 27460 27461 27462 31897 31898 31899 31900 31901 31902 27637 27638 27639 27640 27641 27642 27679 27680 27681 27682 27683 27684 48 27835 27836 27837 27838 27839 27840 32167 32168 32169 32170 32171 32172 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27637 27638 27639 27640 27641 27642 31903 31904 31905 31906 31907 31908 27805 27806 27807 27808 27809 27810 27841 27842 27843 27844 27845 27846 48 28003 28004 28005 28006 28007 28008 32173 32174 32175 32176 32177 32178 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27805 27806 27807 27808 27809 27810 31909 31910 31911 31912 31913 31914 27973 27974 27975 27976 27977 27978 28009 28010 28011 28012 28013 28014 48 28177 28178 28179 28180 28181 28182 32179 32180 32181 32182 32183 32184 28003 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 27973 27974 27975 27976 27977 27978 31915 31916 31917 31918 31919 31920 28147 28148 28149 28150 28151 28152 28183 28184 28185 28186 28187 28188 48 28345 28346 28347 28348 28349 28350 32185 32186 32187 32188 32189 32190 28177 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28147 28148 28149 28150 28151 28152 31921 31922 31923 31924 31925 31926 28315 28316 28317 28318 28319 28320 28351 28352 28353 28354 28355 28356 48 28489 28490 28491 28492 28493 28494 32191 32192 32193 32194 32195 32196 28345 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28315 28316 28317 28318 28319 28320 31927 31928 31929 31930 31931 31932 28459 28460 28461 28462 28463 28464 28495 28496 28497 28498 28499 28500 48 28615 28616 28617 28618 28619 28620 32197 32198 32199 32200 32201 32202 28489 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28459 28460 28461 28462 28463 28464 31933 31934 31935 31936 31937 31938 28591 28592 28593 28594 28595 28596 28621 28622 28623 28624 28625 28626 48 28741 28742 28743 28744 28745 28746 32203 32204 32205 32206 32207 32208 28615 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28591 28592 28593 28594 28595 28596 31939 31940 31941 31942 31943 31944 28717 28718 28719 28720 28721 28722 28747 28748 28749 28750 28751 28752 48 28867 28868 28869 28870 28871 28872 32209 32210 32211 32212 32213 32214 28741 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28717 28718 28719 28720 28721 28722 31945 31946 31947 31948 31949 31950 28843 28844 28845 28846 28847 28848 28873 28874 28875 28876 28877 28878 48 29005 29006 29007 29008 29009 29010 32215 32216 32217 32218 32219 32220 28867 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28843 28844 28845 28846 28847 28848 31951 31952 31953 31954 31955 31956 28981 28982 28983 28984 28985 28986 29011 29012 29013 29014 29015 29016 48 29161 29162 29163 29164 29165 29166 32221 32222 32223 32224 32225 32226 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 28981 28982 28983 28984 28985 28986 31957 31958 31959 31960 31961 31962 29137 29138 29139 29140 29141 29142 29167 29168 29169 29170 29171 29172 48 29317 29318 29319 29320 29321 29322 32227 32228 32229 32230 32231 32232 29161 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29137 29138 29139 29140 29141 29142 31963 31964 31965 31966 31967 31968 29293 29294 29295 29296 29297 29298 29323 29324 29325 29326 29327 29328 48 29485 29486 29487 29488 29489 29490 32233 32234 32235 32236 32237 32238 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29293 29294 29295 29296 29297 29298 31969 31970 31971 31972 31973 31974 29455 29456 29457 29458 29459 29460 29491 29492 29493 29494 29495 29496 48 30577 30578 30579 30580 30581 30582 32239 32240 32241 32242 32243 32244 29485 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29455 29456 29457 29458 29459 29460 31975 31976 31977 31978 31979 31980 30295 30296 30297 30298 30299 30300 30589 30590 30591 30592 30593 30594 48 22705 22706 22707 22708 22709 22710 30595 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30319 30320 30321 30322 30323 30324 31987 31988 31989 31990 31991 31992 22687 22688 22689 22690 22691 22692 22711 22712 22713 22714 22715 22716 48 22891 22892 22893 22894 22895 22896 30613 30614 30615 30616 30617 30618 22705 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22687 22688 22689 22690 22691 22692 31993 31994 31995 31996 31997 31998 22867 22868 22869 22870 22871 22872 22897 22898 22899 22900 22901 22902 48 23071 23072 23073 23074 23075 23076 30619 30620 30621 30622 30623 30624 22891 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22867 22868 22869 22870 22871 22872 31999 32000 32001 32002 32003 32004 23047 23048 23049 23050 23051 23052 23077 23078 23079 23080 23081 23082 48 23227 23228 23229 23230 23231 23232 30625 30626 30627 30628 30629 30630 23071 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23047 23048 23049 23050 23051 23052 32005 32006 32007 32008 32009 32010 23209 23210 23211 23212 23213 23214 23233 23234 23235 23236 23237 23238 48 23407 23408 23409 23410 23411 23412 30631 30632 30633 30634 30635 30636 23227 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23209 23210 23211 23212 23213 23214 32011 32012 32013 32014 32015 32016 23377 23378 23379 23380 23381 23382 23413 23414 23415 23416 23417 23418 48 23587 23588 23589 23590 23591 23592 30637 30638 30639 30640 30641 30642 23407 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23377 23378 23379 23380 23381 23382 32017 32018 32019 32020 32021 32022 23563 23564 23565 23566 23567 23568 23593 23594 23595 23596 23597 23598 48 23743 23744 23745 23746 23747 23748 30643 30644 30645 30646 30647 30648 23587 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23563 23564 23565 23566 23567 23568 32023 32024 32025 32026 32027 32028 23725 23726 23727 23728 23729 23730 23749 23750 23751 23752 23753 23754 48 23923 23924 23925 23926 23927 23928 30649 30650 30651 30652 30653 30654 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23725 23726 23727 23728 23729 23730 32029 32030 32031 32032 32033 32034 23893 23894 23895 23896 23897 23898 23929 23930 23931 23932 23933 23934 48 24097 24098 24099 24100 24101 24102 30655 30656 30657 30658 30659 30660 23923 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23893 23894 23895 23896 23897 23898 32035 32036 32037 32038 32039 32040 24067 24068 24069 24070 24071 24072 24103 24104 24105 24106 24107 24108 48 24253 24254 24255 24256 24257 24258 30661 30662 30663 30664 30665 30666 24097 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24067 24068 24069 24070 24071 24072 32041 32042 32043 32044 32045 32046 24235 24236 24237 24238 24239 24240 24259 24260 24261 24262 24263 24264 48 24433 24434 24435 24436 24437 24438 30667 30668 30669 30670 30671 30672 24253 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24235 24236 24237 24238 24239 24240 32047 32048 32049 32050 32051 32052 24403 24404 24405 24406 24407 24408 24439 24440 24441 24442 24443 24444 48 24613 24614 24615 24616 24617 24618 30673 30674 30675 30676 30677 30678 24433 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24403 24404 24405 24406 24407 24408 32053 32054 32055 32056 32057 32058 24589 24590 24591 24592 24593 24594 24619 24620 24621 24622 24623 24624 48 24769 24770 24771 24772 24773 24774 30679 30680 30681 30682 30683 30684 24613 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24589 24590 24591 24592 24593 24594 32059 32060 32061 32062 32063 32064 24751 24752 24753 24754 24755 24756 24775 24776 24777 24778 24779 24780 48 24949 24950 24951 24952 24953 24954 30685 30686 30687 30688 30689 30690 24769 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24751 24752 24753 24754 24755 24756 32065 32066 32067 32068 32069 32070 24919 24920 24921 24922 24923 24924 24955 24956 24957 24958 24959 24960 48 25123 25124 25125 25126 25127 25128 30691 30692 30693 30694 30695 30696 24949 24950 24951 24952 24953 24954 24955 24956 24957 24958 24959 24960 24919 24920 24921 24922 24923 24924 32071 32072 32073 32074 32075 32076 25093 25094 25095 25096 25097 25098 25129 25130 25131 25132 25133 25134 48 25279 25280 25281 25282 25283 25284 30697 30698 30699 30700 30701 30702 25123 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25093 25094 25095 25096 25097 25098 32077 32078 32079 32080 32081 32082 25261 25262 25263 25264 25265 25266 25285 25286 25287 25288 25289 25290 48 25459 25460 25461 25462 25463 25464 30703 30704 30705 30706 30707 30708 25279 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25261 25262 25263 25264 25265 25266 32083 32084 32085 32086 32087 32088 25429 25430 25431 25432 25433 25434 25465 25466 25467 25468 25469 25470 48 25639 25640 25641 25642 25643 25644 30709 30710 30711 30712 30713 30714 25459 25460 25461 25462 25463 25464 25465 25466 25467 25468 25469 25470 25429 25430 25431 25432 25433 25434 32089 32090 32091 32092 32093 32094 25615 25616 25617 25618 25619 25620 25645 25646 25647 25648 25649 25650 48 25795 25796 25797 25798 25799 25800 30715 30716 30717 30718 30719 30720 25639 25640 25641 25642 25643 25644 25645 25646 25647 25648 25649 25650 25615 25616 25617 25618 25619 25620 32095 32096 32097 32098 32099 32100 25777 25778 25779 25780 25781 25782 25801 25802 25803 25804 25805 25806 48 25975 25976 25977 25978 25979 25980 30721 30722 30723 30724 30725 30726 25795 25796 25797 25798 25799 25800 25801 25802 25803 25804 25805 25806 25777 25778 25779 25780 25781 25782 32101 32102 32103 32104 32105 32106 25945 25946 25947 25948 25949 25950 25981 25982 25983 25984 25985 25986 48 26149 26150 26151 26152 26153 26154 30727 30728 30729 30730 30731 30732 25975 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25945 25946 25947 25948 25949 25950 32107 32108 32109 32110 32111 32112 26119 26120 26121 26122 26123 26124 26155 26156 26157 26158 26159 26160 48 26305 26306 26307 26308 26309 26310 30733 30734 30735 30736 30737 30738 26149 26150 26151 26152 26153 26154 26155 26156 26157 26158 26159 26160 26119 26120 26121 26122 26123 26124 32113 32114 32115 32116 32117 32118 26287 26288 26289 26290 26291 26292 26311 26312 26313 26314 26315 26316 48 26485 26486 26487 26488 26489 26490 30739 30740 30741 30742 30743 30744 26305 26306 26307 26308 26309 26310 26311 26312 26313 26314 26315 26316 26287 26288 26289 26290 26291 26292 32119 32120 32121 32122 32123 32124 26455 26456 26457 26458 26459 26460 26491 26492 26493 26494 26495 26496 48 26665 26666 26667 26668 26669 26670 30745 30746 30747 30748 30749 30750 26485 26486 26487 26488 26489 26490 26491 26492 26493 26494 26495 26496 26455 26456 26457 26458 26459 26460 32125 32126 32127 32128 32129 32130 26641 26642 26643 26644 26645 26646 26671 26672 26673 26674 26675 26676 48 26821 26822 26823 26824 26825 26826 30751 30752 30753 30754 30755 30756 26665 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26641 26642 26643 26644 26645 26646 32131 32132 32133 32134 32135 32136 26803 26804 26805 26806 26807 26808 26827 26828 26829 26830 26831 26832 48 27001 27002 27003 27004 27005 27006 30757 30758 30759 30760 30761 30762 26821 26822 26823 26824 26825 26826 26827 26828 26829 26830 26831 26832 26803 26804 26805 26806 26807 26808 32137 32138 32139 32140 32141 32142 26971 26972 26973 26974 26975 26976 27007 27008 27009 27010 27011 27012 48 27175 27176 27177 27178 27179 27180 30763 30764 30765 30766 30767 30768 27001 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 26971 26972 26973 26974 26975 26976 32143 32144 32145 32146 32147 32148 27145 27146 27147 27148 27149 27150 27181 27182 27183 27184 27185 27186 48 27331 27332 27333 27334 27335 27336 30769 30770 30771 30772 30773 30774 27175 27176 27177 27178 27179 27180 27181 27182 27183 27184 27185 27186 27145 27146 27147 27148 27149 27150 32149 32150 32151 32152 32153 32154 27313 27314 27315 27316 27317 27318 27337 27338 27339 27340 27341 27342 48 27517 27518 27519 27520 27521 27522 30775 30776 30777 30778 30779 30780 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27313 27314 27315 27316 27317 27318 32155 32156 32157 32158 32159 32160 27493 27494 27495 27496 27497 27498 27523 27524 27525 27526 27527 27528 48 27697 27698 27699 27700 27701 27702 30781 30782 30783 30784 30785 30786 27517 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27493 27494 27495 27496 27497 27498 32161 32162 32163 32164 32165 32166 27673 27674 27675 27676 27677 27678 27703 27704 27705 27706 27707 27708 48 27853 27854 27855 27856 27857 27858 30787 30788 30789 30790 30791 30792 27697 27698 27699 27700 27701 27702 27703 27704 27705 27706 27707 27708 27673 27674 27675 27676 27677 27678 32167 32168 32169 32170 32171 32172 27835 27836 27837 27838 27839 27840 27859 27860 27861 27862 27863 27864 48 28033 28034 28035 28036 28037 28038 30793 30794 30795 30796 30797 30798 27853 27854 27855 27856 27857 27858 27859 27860 27861 27862 27863 27864 27835 27836 27837 27838 27839 27840 32173 32174 32175 32176 32177 32178 28003 28004 28005 28006 28007 28008 28039 28040 28041 28042 28043 28044 48 28207 28208 28209 28210 28211 28212 30799 30800 30801 30802 30803 30804 28033 28034 28035 28036 28037 28038 28039 28040 28041 28042 28043 28044 28003 28004 28005 28006 28007 28008 32179 32180 32181 32182 32183 32184 28177 28178 28179 28180 28181 28182 28213 28214 28215 28216 28217 28218 48 28363 28364 28365 28366 28367 28368 30805 30806 30807 30808 30809 30810 28207 28208 28209 28210 28211 28212 28213 28214 28215 28216 28217 28218 28177 28178 28179 28180 28181 28182 32185 32186 32187 32188 32189 32190 28345 28346 28347 28348 28349 28350 28369 28370 28371 28372 28373 28374 48 28513 28514 28515 28516 28517 28518 30811 30812 30813 30814 30815 30816 28363 28364 28365 28366 28367 28368 28369 28370 28371 28372 28373 28374 28345 28346 28347 28348 28349 28350 32191 32192 32193 32194 32195 32196 28489 28490 28491 28492 28493 28494 28519 28520 28521 28522 28523 28524 48 28633 28634 28635 28636 28637 28638 30817 30818 30819 30820 30821 30822 28513 28514 28515 28516 28517 28518 28519 28520 28521 28522 28523 28524 28489 28490 28491 28492 28493 28494 32197 32198 32199 32200 32201 32202 28615 28616 28617 28618 28619 28620 28639 28640 28641 28642 28643 28644 48 28759 28760 28761 28762 28763 28764 30823 30824 30825 30826 30827 30828 28633 28634 28635 28636 28637 28638 28639 28640 28641 28642 28643 28644 28615 28616 28617 28618 28619 28620 32203 32204 32205 32206 32207 32208 28741 28742 28743 28744 28745 28746 28765 28766 28767 28768 28769 28770 48 28885 28886 28887 28888 28889 28890 30829 30830 30831 30832 30833 30834 28759 28760 28761 28762 28763 28764 28765 28766 28767 28768 28769 28770 28741 28742 28743 28744 28745 28746 32209 32210 32211 32212 32213 32214 28867 28868 28869 28870 28871 28872 28891 28892 28893 28894 28895 28896 48 29023 29024 29025 29026 29027 29028 30835 30836 30837 30838 30839 30840 28885 28886 28887 28888 28889 28890 28891 28892 28893 28894 28895 28896 28867 28868 28869 28870 28871 28872 32215 32216 32217 32218 32219 32220 29005 29006 29007 29008 29009 29010 29029 29030 29031 29032 29033 29034 48 29179 29180 29181 29182 29183 29184 30841 30842 30843 30844 30845 30846 29023 29024 29025 29026 29027 29028 29029 29030 29031 29032 29033 29034 29005 29006 29007 29008 29009 29010 32221 32222 32223 32224 32225 32226 29161 29162 29163 29164 29165 29166 29185 29186 29187 29188 29189 29190 48 29335 29336 29337 29338 29339 29340 30847 30848 30849 30850 30851 30852 29179 29180 29181 29182 29183 29184 29185 29186 29187 29188 29189 29190 29161 29162 29163 29164 29165 29166 32227 32228 32229 32230 32231 32232 29317 29318 29319 29320 29321 29322 29341 29342 29343 29344 29345 29346 48 29515 29516 29517 29518 29519 29520 30853 30854 30855 30856 30857 30858 29335 29336 29337 29338 29339 29340 29341 29342 29343 29344 29345 29346 29317 29318 29319 29320 29321 29322 32233 32234 32235 32236 32237 32238 29485 29486 29487 29488 29489 29490 29521 29522 29523 29524 29525 29526 48 30859 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 29515 29516 29517 29518 29519 29520 29521 29522 29523 29524 29525 29526 29485 29486 29487 29488 29489 29490 32239 32240 32241 32242 32243 32244 30577 30578 30579 30580 30581 30582 30871 30872 30873 30874 30875 30876 36 22657 22658 22659 22660 22661 22662 30061 30062 30063 30064 30065 30066 22645 22646 22647 22648 22649 22650 31717 31718 31719 31720 31721 31722 30055 30056 30057 30058 30059 30060 22651 22652 22653 22654 22655 22656 36 22687 22688 22689 22690 22691 22692 30319 30320 30321 30322 30323 30324 22675 22676 22677 22678 22679 22680 31987 31988 31989 31990 31991 31992 30313 30314 30315 30316 30317 30318 22681 22682 22683 22684 22685 22686 48 14107 14108 14109 14110 14111 14112 22729 22730 22731 22732 22733 22734 22675 22676 22677 22678 22679 22680 30313 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 32245 32246 32247 32248 32249 32250 3016 3017 3018 3019 3020 3021 15847 15848 15849 15850 15851 15852 36 29455 29456 29457 29458 29459 29460 29443 29444 29445 29446 29447 29448 30295 30296 30297 30298 30299 30300 29449 29450 29451 29452 29453 29454 30301 30302 30303 30304 30305 30306 31975 31976 31977 31978 31979 31980 36 29485 29486 29487 29488 29489 29490 29473 29474 29475 29476 29477 29478 30577 30578 30579 30580 30581 30582 29479 29480 29481 29482 29483 29484 30583 30584 30585 30586 30587 30588 32239 32240 32241 32242 32243 32244 48 5047 5048 5049 5050 5051 5052 32251 32252 32253 32254 32255 32256 30577 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 29473 29474 29475 29476 29477 29478 29503 29504 29505 29506 29507 29508 12187 12188 12189 12190 12191 12192 15817 15818 15819 15820 15821 15822 48 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 21589 21590 21591 21592 21593 21594 1014 1015 1016 1017 1018 1019 1032 1033 1034 1035 1036 1037 1026 1027 1028 1029 1030 1031 21613 21614 21615 21616 21617 21618 48 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 21637 21638 21639 21640 21641 21642 1050 1051 1052 1053 1054 1055 1068 1069 1070 1071 1072 1073 1062 1063 1064 1065 1066 1067 21661 21662 21663 21664 21665 21666 48 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 21685 21686 21687 21688 21689 21690 1086 1087 1088 1089 1090 1091 1104 1105 1106 1107 1108 1109 1098 1099 1100 1101 1102 1103 21709 21710 21711 21712 21713 21714 48 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 21733 21734 21735 21736 21737 21738 1122 1123 1124 1125 1126 1127 1140 1141 1142 1143 1144 1145 1134 1135 1136 1137 1138 1139 21757 21758 21759 21760 21761 21762 48 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 21781 21782 21783 21784 21785 21786 1158 1159 1160 1161 1162 1163 1176 1177 1178 1179 1180 1181 1170 1171 1172 1173 1174 1175 21805 21806 21807 21808 21809 21810 48 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 21829 21830 21831 21832 21833 21834 1194 1195 1196 1197 1198 1199 1212 1213 1214 1215 1216 1217 1206 1207 1208 1209 1210 1211 21853 21854 21855 21856 21857 21858 48 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 21877 21878 21879 21880 21881 21882 1230 1231 1232 1233 1234 1235 1248 1249 1250 1251 1252 1253 1242 1243 1244 1245 1246 1247 21901 21902 21903 21904 21905 21906 48 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 21925 21926 21927 21928 21929 21930 1266 1267 1268 1269 1270 1271 1284 1285 1286 1287 1288 1289 1278 1279 1280 1281 1282 1283 21949 21950 21951 21952 21953 21954 48 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 21973 21974 21975 21976 21977 21978 1302 1303 1304 1305 1306 1307 1320 1321 1322 1323 1324 1325 1314 1315 1316 1317 1318 1319 21997 21998 21999 22000 22001 22002 48 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 22021 22022 22023 22024 22025 22026 1338 1339 1340 1341 1342 1343 1356 1357 1358 1359 1360 1361 1350 1351 1352 1353 1354 1355 22045 22046 22047 22048 22049 22050 48 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 22069 22070 22071 22072 22073 22074 1374 1375 1376 1377 1378 1379 1392 1393 1394 1395 1396 1397 1386 1387 1388 1389 1390 1391 22093 22094 22095 22096 22097 22098 48 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 22105 22106 22107 22108 22109 22110 1410 1411 1412 1413 1414 1415 1428 1429 1430 1431 1432 1433 1422 1423 1424 1425 1426 1427 32257 32258 32259 32260 32261 32262 48 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 32263 32264 32265 32266 32267 32268 1482 1483 1484 1485 1486 1487 1500 1501 1502 1503 1504 1505 1494 1495 1496 1497 1498 1499 22129 22130 22131 22132 22133 22134 48 15385 15386 15387 15388 15389 15390 15409 15410 15411 15412 15413 15414 3202 3203 3204 3205 3206 3207 32269 32270 32271 32272 32273 32274 30601 30602 30603 30604 30605 30606 30595 30596 30597 30598 30599 30600 22705 22706 22707 22708 22709 22710 22723 22724 22725 22726 22727 22728 48 15355 15356 15357 15358 15359 15360 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 22723 22724 22725 22726 22727 22728 22705 22706 22707 22708 22709 22710 30613 30614 30615 30616 30617 30618 22891 22892 22893 22894 22895 22896 22909 22910 22911 22912 22913 22914 48 15325 15326 15327 15328 15329 15330 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 22909 22910 22911 22912 22913 22914 22891 22892 22893 22894 22895 22896 30619 30620 30621 30622 30623 30624 23071 23072 23073 23074 23075 23076 23089 23090 23091 23092 23093 23094 48 15295 15296 15297 15298 15299 15300 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 23089 23090 23091 23092 23093 23094 23071 23072 23073 23074 23075 23076 30625 30626 30627 30628 30629 30630 23227 23228 23229 23230 23231 23232 23245 23246 23247 23248 23249 23250 48 15265 15266 15267 15268 15269 15270 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 23245 23246 23247 23248 23249 23250 23227 23228 23229 23230 23231 23232 30631 30632 30633 30634 30635 30636 23407 23408 23409 23410 23411 23412 23425 23426 23427 23428 23429 23430 48 15235 15236 15237 15238 15239 15240 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 23425 23426 23427 23428 23429 23430 23407 23408 23409 23410 23411 23412 30637 30638 30639 30640 30641 30642 23587 23588 23589 23590 23591 23592 23605 23606 23607 23608 23609 23610 48 15205 15206 15207 15208 15209 15210 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 23605 23606 23607 23608 23609 23610 23587 23588 23589 23590 23591 23592 30643 30644 30645 30646 30647 30648 23743 23744 23745 23746 23747 23748 23761 23762 23763 23764 23765 23766 48 15175 15176 15177 15178 15179 15180 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 23761 23762 23763 23764 23765 23766 23743 23744 23745 23746 23747 23748 30649 30650 30651 30652 30653 30654 23923 23924 23925 23926 23927 23928 23941 23942 23943 23944 23945 23946 48 15145 15146 15147 15148 15149 15150 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 23941 23942 23943 23944 23945 23946 23923 23924 23925 23926 23927 23928 30655 30656 30657 30658 30659 30660 24097 24098 24099 24100 24101 24102 24115 24116 24117 24118 24119 24120 48 15115 15116 15117 15118 15119 15120 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 24115 24116 24117 24118 24119 24120 24097 24098 24099 24100 24101 24102 30661 30662 30663 30664 30665 30666 24253 24254 24255 24256 24257 24258 24271 24272 24273 24274 24275 24276 48 15085 15086 15087 15088 15089 15090 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 24271 24272 24273 24274 24275 24276 24253 24254 24255 24256 24257 24258 30667 30668 30669 30670 30671 30672 24433 24434 24435 24436 24437 24438 24451 24452 24453 24454 24455 24456 48 15055 15056 15057 15058 15059 15060 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 24451 24452 24453 24454 24455 24456 24433 24434 24435 24436 24437 24438 30673 30674 30675 30676 30677 30678 24613 24614 24615 24616 24617 24618 24631 24632 24633 24634 24635 24636 48 15025 15026 15027 15028 15029 15030 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 24631 24632 24633 24634 24635 24636 24613 24614 24615 24616 24617 24618 30679 30680 30681 30682 30683 30684 24769 24770 24771 24772 24773 24774 24787 24788 24789 24790 24791 24792 48 14995 14996 14997 14998 14999 15000 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 24787 24788 24789 24790 24791 24792 24769 24770 24771 24772 24773 24774 30685 30686 30687 30688 30689 30690 24949 24950 24951 24952 24953 24954 24967 24968 24969 24970 24971 24972 48 14965 14966 14967 14968 14969 14970 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 24967 24968 24969 24970 24971 24972 24949 24950 24951 24952 24953 24954 30691 30692 30693 30694 30695 30696 25123 25124 25125 25126 25127 25128 25141 25142 25143 25144 25145 25146 48 14935 14936 14937 14938 14939 14940 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 25141 25142 25143 25144 25145 25146 25123 25124 25125 25126 25127 25128 30697 30698 30699 30700 30701 30702 25279 25280 25281 25282 25283 25284 25297 25298 25299 25300 25301 25302 48 14905 14906 14907 14908 14909 14910 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 25297 25298 25299 25300 25301 25302 25279 25280 25281 25282 25283 25284 30703 30704 30705 30706 30707 30708 25459 25460 25461 25462 25463 25464 25477 25478 25479 25480 25481 25482 48 14875 14876 14877 14878 14879 14880 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 25477 25478 25479 25480 25481 25482 25459 25460 25461 25462 25463 25464 30709 30710 30711 30712 30713 30714 25639 25640 25641 25642 25643 25644 25657 25658 25659 25660 25661 25662 48 14845 14846 14847 14848 14849 14850 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 25657 25658 25659 25660 25661 25662 25639 25640 25641 25642 25643 25644 30715 30716 30717 30718 30719 30720 25795 25796 25797 25798 25799 25800 25813 25814 25815 25816 25817 25818 48 14815 14816 14817 14818 14819 14820 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 25813 25814 25815 25816 25817 25818 25795 25796 25797 25798 25799 25800 30721 30722 30723 30724 30725 30726 25975 25976 25977 25978 25979 25980 25993 25994 25995 25996 25997 25998 48 14785 14786 14787 14788 14789 14790 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 25993 25994 25995 25996 25997 25998 25975 25976 25977 25978 25979 25980 30727 30728 30729 30730 30731 30732 26149 26150 26151 26152 26153 26154 26167 26168 26169 26170 26171 26172 48 14755 14756 14757 14758 14759 14760 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 26167 26168 26169 26170 26171 26172 26149 26150 26151 26152 26153 26154 30733 30734 30735 30736 30737 30738 26305 26306 26307 26308 26309 26310 26323 26324 26325 26326 26327 26328 48 14725 14726 14727 14728 14729 14730 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 26323 26324 26325 26326 26327 26328 26305 26306 26307 26308 26309 26310 30739 30740 30741 30742 30743 30744 26485 26486 26487 26488 26489 26490 26503 26504 26505 26506 26507 26508 48 14695 14696 14697 14698 14699 14700 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 26503 26504 26505 26506 26507 26508 26485 26486 26487 26488 26489 26490 30745 30746 30747 30748 30749 30750 26665 26666 26667 26668 26669 26670 26683 26684 26685 26686 26687 26688 48 14665 14666 14667 14668 14669 14670 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 26683 26684 26685 26686 26687 26688 26665 26666 26667 26668 26669 26670 30751 30752 30753 30754 30755 30756 26821 26822 26823 26824 26825 26826 26839 26840 26841 26842 26843 26844 48 14635 14636 14637 14638 14639 14640 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 26839 26840 26841 26842 26843 26844 26821 26822 26823 26824 26825 26826 30757 30758 30759 30760 30761 30762 27001 27002 27003 27004 27005 27006 27019 27020 27021 27022 27023 27024 48 14605 14606 14607 14608 14609 14610 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 27019 27020 27021 27022 27023 27024 27001 27002 27003 27004 27005 27006 30763 30764 30765 30766 30767 30768 27175 27176 27177 27178 27179 27180 27193 27194 27195 27196 27197 27198 48 14575 14576 14577 14578 14579 14580 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 27193 27194 27195 27196 27197 27198 27175 27176 27177 27178 27179 27180 30769 30770 30771 30772 30773 30774 27331 27332 27333 27334 27335 27336 27349 27350 27351 27352 27353 27354 48 14545 14546 14547 14548 14549 14550 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 27349 27350 27351 27352 27353 27354 27331 27332 27333 27334 27335 27336 30775 30776 30777 30778 30779 30780 27517 27518 27519 27520 27521 27522 27535 27536 27537 27538 27539 27540 48 14515 14516 14517 14518 14519 14520 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 27535 27536 27537 27538 27539 27540 27517 27518 27519 27520 27521 27522 30781 30782 30783 30784 30785 30786 27697 27698 27699 27700 27701 27702 27715 27716 27717 27718 27719 27720 48 14485 14486 14487 14488 14489 14490 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 27715 27716 27717 27718 27719 27720 27697 27698 27699 27700 27701 27702 30787 30788 30789 30790 30791 30792 27853 27854 27855 27856 27857 27858 27871 27872 27873 27874 27875 27876 48 14455 14456 14457 14458 14459 14460 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 27871 27872 27873 27874 27875 27876 27853 27854 27855 27856 27857 27858 30793 30794 30795 30796 30797 30798 28033 28034 28035 28036 28037 28038 28051 28052 28053 28054 28055 28056 48 14425 14426 14427 14428 14429 14430 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 28051 28052 28053 28054 28055 28056 28033 28034 28035 28036 28037 28038 30799 30800 30801 30802 30803 30804 28207 28208 28209 28210 28211 28212 28225 28226 28227 28228 28229 28230 48 14395 14396 14397 14398 14399 14400 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 28225 28226 28227 28228 28229 28230 28207 28208 28209 28210 28211 28212 30805 30806 30807 30808 30809 30810 28363 28364 28365 28366 28367 28368 28381 28382 28383 28384 28385 28386 48 14365 14366 14367 14368 14369 14370 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 28381 28382 28383 28384 28385 28386 28363 28364 28365 28366 28367 28368 30811 30812 30813 30814 30815 30816 28513 28514 28515 28516 28517 28518 28531 28532 28533 28534 28535 28536 48 14335 14336 14337 14338 14339 14340 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 28531 28532 28533 28534 28535 28536 28513 28514 28515 28516 28517 28518 30817 30818 30819 30820 30821 30822 28633 28634 28635 28636 28637 28638 28651 28652 28653 28654 28655 28656 48 14305 14306 14307 14308 14309 14310 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 28651 28652 28653 28654 28655 28656 28633 28634 28635 28636 28637 28638 30823 30824 30825 30826 30827 30828 28759 28760 28761 28762 28763 28764 28777 28778 28779 28780 28781 28782 48 14275 14276 14277 14278 14279 14280 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 28777 28778 28779 28780 28781 28782 28759 28760 28761 28762 28763 28764 30829 30830 30831 30832 30833 30834 28885 28886 28887 28888 28889 28890 28903 28904 28905 28906 28907 28908 48 14245 14246 14247 14248 14249 14250 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 28903 28904 28905 28906 28907 28908 28885 28886 28887 28888 28889 28890 30835 30836 30837 30838 30839 30840 29023 29024 29025 29026 29027 29028 29041 29042 29043 29044 29045 29046 48 14215 14216 14217 14218 14219 14220 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 29041 29042 29043 29044 29045 29046 29023 29024 29025 29026 29027 29028 30841 30842 30843 30844 30845 30846 29179 29180 29181 29182 29183 29184 29197 29198 29199 29200 29201 29202 48 14185 14186 14187 14188 14189 14190 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 29197 29198 29199 29200 29201 29202 29179 29180 29181 29182 29183 29184 30847 30848 30849 30850 30851 30852 29335 29336 29337 29338 29339 29340 29353 29354 29355 29356 29357 29358 48 14155 14156 14157 14158 14159 14160 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 29353 29354 29355 29356 29357 29358 29335 29336 29337 29338 29339 29340 30853 30854 30855 30856 30857 30858 29515 29516 29517 29518 29519 29520 29533 29534 29535 29536 29537 29538 48 5179 5180 5181 5182 5183 5184 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 29533 29534 29535 29536 29537 29538 29515 29516 29517 29518 29519 29520 30865 30866 30867 30868 30869 30870 30859 30860 30861 30862 30863 30864 32275 32276 32277 32278 32279 32280 48 22855 22856 22857 22858 22859 22860 30331 30332 30333 30334 30335 30336 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 31993 31994 31995 31996 31997 31998 22867 22868 22869 22870 22871 22872 22861 22862 22863 22864 22865 22866 48 14059 14060 14061 14062 14063 14064 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 22729 22730 22731 22732 22733 22734 22675 22676 22677 22678 22679 22680 30331 30332 30333 30334 30335 30336 22855 22856 22857 22858 22859 22860 22885 22886 22887 22888 22889 22890 48 23035 23036 23037 23038 23039 23040 30337 30338 30339 30340 30341 30342 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 31999 32000 32001 32002 32003 32004 23047 23048 23049 23050 23051 23052 23041 23042 23043 23044 23045 23046 48 14011 14012 14013 14014 14015 14016 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 22885 22886 22887 22888 22889 22890 22855 22856 22857 22858 22859 22860 30337 30338 30339 30340 30341 30342 23035 23036 23037 23038 23039 23040 23065 23066 23067 23068 23069 23070 48 23197 23198 23199 23200 23201 23202 30343 30344 30345 30346 30347 30348 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 32005 32006 32007 32008 32009 32010 23209 23210 23211 23212 23213 23214 23203 23204 23205 23206 23207 23208 48 13963 13964 13965 13966 13967 13968 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 23065 23066 23067 23068 23069 23070 23035 23036 23037 23038 23039 23040 30343 30344 30345 30346 30347 30348 23197 23198 23199 23200 23201 23202 23251 23252 23253 23254 23255 23256 48 23365 23366 23367 23368 23369 23370 30349 30350 30351 30352 30353 30354 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 32011 32012 32013 32014 32015 32016 23377 23378 23379 23380 23381 23382 23371 23372 23373 23374 23375 23376 48 13915 13916 13917 13918 13919 13920 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 23251 23252 23253 23254 23255 23256 23197 23198 23199 23200 23201 23202 30349 30350 30351 30352 30353 30354 23365 23366 23367 23368 23369 23370 23395 23396 23397 23398 23399 23400 48 23551 23552 23553 23554 23555 23556 30355 30356 30357 30358 30359 30360 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 32017 32018 32019 32020 32021 32022 23563 23564 23565 23566 23567 23568 23557 23558 23559 23560 23561 23562 48 13867 13868 13869 13870 13871 13872 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 23395 23396 23397 23398 23399 23400 23365 23366 23367 23368 23369 23370 30355 30356 30357 30358 30359 30360 23551 23552 23553 23554 23555 23556 23581 23582 23583 23584 23585 23586 48 23713 23714 23715 23716 23717 23718 30361 30362 30363 30364 30365 30366 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 32023 32024 32025 32026 32027 32028 23725 23726 23727 23728 23729 23730 23719 23720 23721 23722 23723 23724 48 13819 13820 13821 13822 13823 13824 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 23581 23582 23583 23584 23585 23586 23551 23552 23553 23554 23555 23556 30361 30362 30363 30364 30365 30366 23713 23714 23715 23716 23717 23718 23767 23768 23769 23770 23771 23772 48 23881 23882 23883 23884 23885 23886 30367 30368 30369 30370 30371 30372 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 32029 32030 32031 32032 32033 32034 23893 23894 23895 23896 23897 23898 23887 23888 23889 23890 23891 23892 48 13771 13772 13773 13774 13775 13776 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 23767 23768 23769 23770 23771 23772 23713 23714 23715 23716 23717 23718 30367 30368 30369 30370 30371 30372 23881 23882 23883 23884 23885 23886 23911 23912 23913 23914 23915 23916 48 24055 24056 24057 24058 24059 24060 30373 30374 30375 30376 30377 30378 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 32035 32036 32037 32038 32039 32040 24067 24068 24069 24070 24071 24072 24061 24062 24063 24064 24065 24066 48 13723 13724 13725 13726 13727 13728 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 23911 23912 23913 23914 23915 23916 23881 23882 23883 23884 23885 23886 30373 30374 30375 30376 30377 30378 24055 24056 24057 24058 24059 24060 24085 24086 24087 24088 24089 24090 48 24223 24224 24225 24226 24227 24228 30379 30380 30381 30382 30383 30384 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 32041 32042 32043 32044 32045 32046 24235 24236 24237 24238 24239 24240 24229 24230 24231 24232 24233 24234 48 13675 13676 13677 13678 13679 13680 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 24085 24086 24087 24088 24089 24090 24055 24056 24057 24058 24059 24060 30379 30380 30381 30382 30383 30384 24223 24224 24225 24226 24227 24228 24277 24278 24279 24280 24281 24282 48 24391 24392 24393 24394 24395 24396 30385 30386 30387 30388 30389 30390 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 32047 32048 32049 32050 32051 32052 24403 24404 24405 24406 24407 24408 24397 24398 24399 24400 24401 24402 48 13627 13628 13629 13630 13631 13632 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 24277 24278 24279 24280 24281 24282 24223 24224 24225 24226 24227 24228 30385 30386 30387 30388 30389 30390 24391 24392 24393 24394 24395 24396 24421 24422 24423 24424 24425 24426 48 24577 24578 24579 24580 24581 24582 30391 30392 30393 30394 30395 30396 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 32053 32054 32055 32056 32057 32058 24589 24590 24591 24592 24593 24594 24583 24584 24585 24586 24587 24588 48 13579 13580 13581 13582 13583 13584 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 24421 24422 24423 24424 24425 24426 24391 24392 24393 24394 24395 24396 30391 30392 30393 30394 30395 30396 24577 24578 24579 24580 24581 24582 24607 24608 24609 24610 24611 24612 48 24739 24740 24741 24742 24743 24744 30397 30398 30399 30400 30401 30402 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 32059 32060 32061 32062 32063 32064 24751 24752 24753 24754 24755 24756 24745 24746 24747 24748 24749 24750 48 13531 13532 13533 13534 13535 13536 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 24607 24608 24609 24610 24611 24612 24577 24578 24579 24580 24581 24582 30397 30398 30399 30400 30401 30402 24739 24740 24741 24742 24743 24744 24793 24794 24795 24796 24797 24798 48 24907 24908 24909 24910 24911 24912 30403 30404 30405 30406 30407 30408 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 32065 32066 32067 32068 32069 32070 24919 24920 24921 24922 24923 24924 24913 24914 24915 24916 24917 24918 48 13483 13484 13485 13486 13487 13488 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 24793 24794 24795 24796 24797 24798 24739 24740 24741 24742 24743 24744 30403 30404 30405 30406 30407 30408 24907 24908 24909 24910 24911 24912 24937 24938 24939 24940 24941 24942 48 25081 25082 25083 25084 25085 25086 30409 30410 30411 30412 30413 30414 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 32071 32072 32073 32074 32075 32076 25093 25094 25095 25096 25097 25098 25087 25088 25089 25090 25091 25092 48 13435 13436 13437 13438 13439 13440 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 24937 24938 24939 24940 24941 24942 24907 24908 24909 24910 24911 24912 30409 30410 30411 30412 30413 30414 25081 25082 25083 25084 25085 25086 25111 25112 25113 25114 25115 25116 48 25249 25250 25251 25252 25253 25254 30415 30416 30417 30418 30419 30420 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 32077 32078 32079 32080 32081 32082 25261 25262 25263 25264 25265 25266 25255 25256 25257 25258 25259 25260 48 13387 13388 13389 13390 13391 13392 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 25111 25112 25113 25114 25115 25116 25081 25082 25083 25084 25085 25086 30415 30416 30417 30418 30419 30420 25249 25250 25251 25252 25253 25254 25303 25304 25305 25306 25307 25308 48 25417 25418 25419 25420 25421 25422 30421 30422 30423 30424 30425 30426 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 32083 32084 32085 32086 32087 32088 25429 25430 25431 25432 25433 25434 25423 25424 25425 25426 25427 25428 48 13339 13340 13341 13342 13343 13344 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 25303 25304 25305 25306 25307 25308 25249 25250 25251 25252 25253 25254 30421 30422 30423 30424 30425 30426 25417 25418 25419 25420 25421 25422 25447 25448 25449 25450 25451 25452 48 25603 25604 25605 25606 25607 25608 30427 30428 30429 30430 30431 30432 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 32089 32090 32091 32092 32093 32094 25615 25616 25617 25618 25619 25620 25609 25610 25611 25612 25613 25614 48 13291 13292 13293 13294 13295 13296 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 25447 25448 25449 25450 25451 25452 25417 25418 25419 25420 25421 25422 30427 30428 30429 30430 30431 30432 25603 25604 25605 25606 25607 25608 25633 25634 25635 25636 25637 25638 48 25765 25766 25767 25768 25769 25770 30433 30434 30435 30436 30437 30438 25603 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 32095 32096 32097 32098 32099 32100 25777 25778 25779 25780 25781 25782 25771 25772 25773 25774 25775 25776 48 13243 13244 13245 13246 13247 13248 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 25633 25634 25635 25636 25637 25638 25603 25604 25605 25606 25607 25608 30433 30434 30435 30436 30437 30438 25765 25766 25767 25768 25769 25770 25819 25820 25821 25822 25823 25824 48 25933 25934 25935 25936 25937 25938 30439 30440 30441 30442 30443 30444 25765 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 32101 32102 32103 32104 32105 32106 25945 25946 25947 25948 25949 25950 25939 25940 25941 25942 25943 25944 48 13195 13196 13197 13198 13199 13200 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 25819 25820 25821 25822 25823 25824 25765 25766 25767 25768 25769 25770 30439 30440 30441 30442 30443 30444 25933 25934 25935 25936 25937 25938 25963 25964 25965 25966 25967 25968 48 26107 26108 26109 26110 26111 26112 30445 30446 30447 30448 30449 30450 25933 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 32107 32108 32109 32110 32111 32112 26119 26120 26121 26122 26123 26124 26113 26114 26115 26116 26117 26118 48 13147 13148 13149 13150 13151 13152 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 25963 25964 25965 25966 25967 25968 25933 25934 25935 25936 25937 25938 30445 30446 30447 30448 30449 30450 26107 26108 26109 26110 26111 26112 26137 26138 26139 26140 26141 26142 48 26275 26276 26277 26278 26279 26280 30451 30452 30453 30454 30455 30456 26107 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 32113 32114 32115 32116 32117 32118 26287 26288 26289 26290 26291 26292 26281 26282 26283 26284 26285 26286 48 13099 13100 13101 13102 13103 13104 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 26137 26138 26139 26140 26141 26142 26107 26108 26109 26110 26111 26112 30451 30452 30453 30454 30455 30456 26275 26276 26277 26278 26279 26280 26329 26330 26331 26332 26333 26334 48 26443 26444 26445 26446 26447 26448 30457 30458 30459 30460 30461 30462 26275 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 32119 32120 32121 32122 32123 32124 26455 26456 26457 26458 26459 26460 26449 26450 26451 26452 26453 26454 48 13051 13052 13053 13054 13055 13056 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 26329 26330 26331 26332 26333 26334 26275 26276 26277 26278 26279 26280 30457 30458 30459 30460 30461 30462 26443 26444 26445 26446 26447 26448 26473 26474 26475 26476 26477 26478 48 26629 26630 26631 26632 26633 26634 30463 30464 30465 30466 30467 30468 26443 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 32125 32126 32127 32128 32129 32130 26641 26642 26643 26644 26645 26646 26635 26636 26637 26638 26639 26640 48 13003 13004 13005 13006 13007 13008 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 26473 26474 26475 26476 26477 26478 26443 26444 26445 26446 26447 26448 30463 30464 30465 30466 30467 30468 26629 26630 26631 26632 26633 26634 26659 26660 26661 26662 26663 26664 48 26791 26792 26793 26794 26795 26796 30469 30470 30471 30472 30473 30474 26629 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 32131 32132 32133 32134 32135 32136 26803 26804 26805 26806 26807 26808 26797 26798 26799 26800 26801 26802 48 12955 12956 12957 12958 12959 12960 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 26659 26660 26661 26662 26663 26664 26629 26630 26631 26632 26633 26634 30469 30470 30471 30472 30473 30474 26791 26792 26793 26794 26795 26796 26845 26846 26847 26848 26849 26850 48 26959 26960 26961 26962 26963 26964 30475 30476 30477 30478 30479 30480 26791 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 32137 32138 32139 32140 32141 32142 26971 26972 26973 26974 26975 26976 26965 26966 26967 26968 26969 26970 48 12907 12908 12909 12910 12911 12912 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 26845 26846 26847 26848 26849 26850 26791 26792 26793 26794 26795 26796 30475 30476 30477 30478 30479 30480 26959 26960 26961 26962 26963 26964 26989 26990 26991 26992 26993 26994 48 27133 27134 27135 27136 27137 27138 30481 30482 30483 30484 30485 30486 26959 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 32143 32144 32145 32146 32147 32148 27145 27146 27147 27148 27149 27150 27139 27140 27141 27142 27143 27144 48 12859 12860 12861 12862 12863 12864 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 26989 26990 26991 26992 26993 26994 26959 26960 26961 26962 26963 26964 30481 30482 30483 30484 30485 30486 27133 27134 27135 27136 27137 27138 27163 27164 27165 27166 27167 27168 48 27301 27302 27303 27304 27305 27306 30487 30488 30489 30490 30491 30492 27133 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 32149 32150 32151 32152 32153 32154 27313 27314 27315 27316 27317 27318 27307 27308 27309 27310 27311 27312 48 12811 12812 12813 12814 12815 12816 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 27163 27164 27165 27166 27167 27168 27133 27134 27135 27136 27137 27138 30487 30488 30489 30490 30491 30492 27301 27302 27303 27304 27305 27306 27355 27356 27357 27358 27359 27360 48 27481 27482 27483 27484 27485 27486 30493 30494 30495 30496 30497 30498 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 32155 32156 32157 32158 32159 32160 27493 27494 27495 27496 27497 27498 27487 27488 27489 27490 27491 27492 48 12763 12764 12765 12766 12767 12768 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 27355 27356 27357 27358 27359 27360 27301 27302 27303 27304 27305 27306 30493 30494 30495 30496 30497 30498 27481 27482 27483 27484 27485 27486 27511 27512 27513 27514 27515 27516 48 27661 27662 27663 27664 27665 27666 30499 30500 30501 30502 30503 30504 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 32161 32162 32163 32164 32165 32166 27673 27674 27675 27676 27677 27678 27667 27668 27669 27670 27671 27672 48 12715 12716 12717 12718 12719 12720 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 27511 27512 27513 27514 27515 27516 27481 27482 27483 27484 27485 27486 30499 30500 30501 30502 30503 30504 27661 27662 27663 27664 27665 27666 27691 27692 27693 27694 27695 27696 48 27823 27824 27825 27826 27827 27828 30505 30506 30507 30508 30509 30510 27661 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 32167 32168 32169 32170 32171 32172 27835 27836 27837 27838 27839 27840 27829 27830 27831 27832 27833 27834 48 12667 12668 12669 12670 12671 12672 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 27691 27692 27693 27694 27695 27696 27661 27662 27663 27664 27665 27666 30505 30506 30507 30508 30509 30510 27823 27824 27825 27826 27827 27828 27877 27878 27879 27880 27881 27882 48 27991 27992 27993 27994 27995 27996 30511 30512 30513 30514 30515 30516 27823 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 32173 32174 32175 32176 32177 32178 28003 28004 28005 28006 28007 28008 27997 27998 27999 28000 28001 28002 48 12619 12620 12621 12622 12623 12624 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 27877 27878 27879 27880 27881 27882 27823 27824 27825 27826 27827 27828 30511 30512 30513 30514 30515 30516 27991 27992 27993 27994 27995 27996 28021 28022 28023 28024 28025 28026 48 28165 28166 28167 28168 28169 28170 30517 30518 30519 30520 30521 30522 27991 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 32179 32180 32181 32182 32183 32184 28177 28178 28179 28180 28181 28182 28171 28172 28173 28174 28175 28176 48 12571 12572 12573 12574 12575 12576 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 28021 28022 28023 28024 28025 28026 27991 27992 27993 27994 27995 27996 30517 30518 30519 30520 30521 30522 28165 28166 28167 28168 28169 28170 28195 28196 28197 28198 28199 28200 48 28333 28334 28335 28336 28337 28338 30523 30524 30525 30526 30527 30528 28165 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 32185 32186 32187 32188 32189 32190 28345 28346 28347 28348 28349 28350 28339 28340 28341 28342 28343 28344 48 12523 12524 12525 12526 12527 12528 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 28195 28196 28197 28198 28199 28200 28165 28166 28167 28168 28169 28170 30523 30524 30525 30526 30527 30528 28333 28334 28335 28336 28337 28338 28387 28388 28389 28390 28391 28392 48 28477 28478 28479 28480 28481 28482 30529 30530 30531 30532 30533 30534 28333 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 32191 32192 32193 32194 32195 32196 28489 28490 28491 28492 28493 28494 28483 28484 28485 28486 28487 28488 48 12475 12476 12477 12478 12479 12480 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 28387 28388 28389 28390 28391 28392 28333 28334 28335 28336 28337 28338 30529 30530 30531 30532 30533 30534 28477 28478 28479 28480 28481 28482 28507 28508 28509 28510 28511 28512 48 960 961 962 963 964 965 30535 30536 30537 30538 30539 30540 28477 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 32197 32198 32199 32200 32201 32202 28615 28616 28617 28618 28619 28620 28609 28610 28611 28612 28613 28614 48 12433 12434 12435 12436 12437 12438 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 28507 28508 28509 28510 28511 28512 28477 28478 28479 28480 28481 28482 30535 30536 30537 30538 30539 30540 960 961 962 963 964 965 28657 28658 28659 28660 28661 28662 48 966 967 968 969 970 971 30541 30542 30543 30544 30545 30546 960 961 962 963 964 965 28609 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 32203 32204 32205 32206 32207 32208 28741 28742 28743 28744 28745 28746 28735 28736 28737 28738 28739 28740 48 12391 12392 12393 12394 12395 12396 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 28657 28658 28659 28660 28661 28662 960 961 962 963 964 965 30541 30542 30543 30544 30545 30546 966 967 968 969 970 971 28783 28784 28785 28786 28787 28788 48 972 973 974 975 976 977 30547 30548 30549 30550 30551 30552 966 967 968 969 970 971 28735 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 32209 32210 32211 32212 32213 32214 28867 28868 28869 28870 28871 28872 28861 28862 28863 28864 28865 28866 48 12349 12350 12351 12352 12353 12354 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 28783 28784 28785 28786 28787 28788 966 967 968 969 970 971 30547 30548 30549 30550 30551 30552 972 973 974 975 976 977 28909 28910 28911 28912 28913 28914 48 978 979 980 981 982 983 30553 30554 30555 30556 30557 30558 972 973 974 975 976 977 28861 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 32215 32216 32217 32218 32219 32220 29005 29006 29007 29008 29009 29010 28999 29000 29001 29002 29003 29004 48 12307 12308 12309 12310 12311 12312 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 28909 28910 28911 28912 28913 28914 972 973 974 975 976 977 30553 30554 30555 30556 30557 30558 978 979 980 981 982 983 29047 29048 29049 29050 29051 29052 48 984 985 986 987 988 989 30559 30560 30561 30562 30563 30564 978 979 980 981 982 983 28999 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 32221 32222 32223 32224 32225 32226 29161 29162 29163 29164 29165 29166 29155 29156 29157 29158 29159 29160 48 12265 12266 12267 12268 12269 12270 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 29047 29048 29049 29050 29051 29052 978 979 980 981 982 983 30559 30560 30561 30562 30563 30564 984 985 986 987 988 989 29203 29204 29205 29206 29207 29208 48 990 991 992 993 994 995 30565 30566 30567 30568 30569 30570 984 985 986 987 988 989 29155 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 32227 32228 32229 32230 32231 32232 29317 29318 29319 29320 29321 29322 29311 29312 29313 29314 29315 29316 48 12199 12200 12201 12202 12203 12204 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 29203 29204 29205 29206 29207 29208 984 985 986 987 988 989 30565 30566 30567 30568 30569 30570 990 991 992 993 994 995 29359 29360 29361 29362 29363 29364 48 29473 29474 29475 29476 29477 29478 30571 30572 30573 30574 30575 30576 990 991 992 993 994 995 29311 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 32233 32234 32235 32236 32237 32238 29485 29486 29487 29488 29489 29490 29479 29480 29481 29482 29483 29484 48 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 29359 29360 29361 29362 29363 29364 990 991 992 993 994 995 30571 30572 30573 30574 30575 30576 29473 29474 29475 29476 29477 29478 29503 29504 29505 29506 29507 29508 48 22819 22820 22821 22822 22823 22824 30073 30074 30075 30076 30077 30078 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 31729 31730 31731 31732 31733 31734 22831 22832 22833 22834 22835 22836 22825 22826 22827 22828 22829 22830 48 22999 23000 23001 23002 23003 23004 30079 30080 30081 30082 30083 30084 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 31735 31736 31737 31738 31739 31740 23011 23012 23013 23014 23015 23016 23005 23006 23007 23008 23009 23010 48 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 22849 22850 22851 22852 22853 22854 22819 22820 22821 22822 22823 22824 30079 30080 30081 30082 30083 30084 22999 23000 23001 23002 23003 23004 23029 23030 23031 23032 23033 23034 48 23167 23168 23169 23170 23171 23172 30085 30086 30087 30088 30089 30090 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 31741 31742 31743 31744 31745 31746 23179 23180 23181 23182 23183 23184 23173 23174 23175 23176 23177 23178 48 23335 23336 23337 23338 23339 23340 30091 30092 30093 30094 30095 30096 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 31747 31748 31749 31750 31751 31752 23347 23348 23349 23350 23351 23352 23341 23342 23343 23344 23345 23346 48 23515 23516 23517 23518 23519 23520 30097 30098 30099 30100 30101 30102 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 31753 31754 31755 31756 31757 31758 23527 23528 23529 23530 23531 23532 23521 23522 23523 23524 23525 23526 48 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 23401 23402 23403 23404 23405 23406 23335 23336 23337 23338 23339 23340 30097 30098 30099 30100 30101 30102 23515 23516 23517 23518 23519 23520 23545 23546 23547 23548 23549 23550 48 23683 23684 23685 23686 23687 23688 30103 30104 30105 30106 30107 30108 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 31759 31760 31761 31762 31763 31764 23695 23696 23697 23698 23699 23700 23689 23690 23691 23692 23693 23694 48 23851 23852 23853 23854 23855 23856 30109 30110 30111 30112 30113 30114 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 31765 31766 31767 31768 31769 31770 23863 23864 23865 23866 23867 23868 23857 23858 23859 23860 23861 23862 48 24025 24026 24027 24028 24029 24030 30115 30116 30117 30118 30119 30120 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 31771 31772 31773 31774 31775 31776 24037 24038 24039 24040 24041 24042 24031 24032 24033 24034 24035 24036 48 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 23917 23918 23919 23920 23921 23922 23851 23852 23853 23854 23855 23856 30115 30116 30117 30118 30119 30120 24025 24026 24027 24028 24029 24030 24091 24092 24093 24094 24095 24096 48 24193 24194 24195 24196 24197 24198 30121 30122 30123 30124 30125 30126 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 31777 31778 31779 31780 31781 31782 24205 24206 24207 24208 24209 24210 24199 24200 24201 24202 24203 24204 48 24361 24362 24363 24364 24365 24366 30127 30128 30129 30130 30131 30132 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 31783 31784 31785 31786 31787 31788 24373 24374 24375 24376 24377 24378 24367 24368 24369 24370 24371 24372 48 24541 24542 24543 24544 24545 24546 30133 30134 30135 30136 30137 30138 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 31789 31790 31791 31792 31793 31794 24553 24554 24555 24556 24557 24558 24547 24548 24549 24550 24551 24552 48 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 24427 24428 24429 24430 24431 24432 24361 24362 24363 24364 24365 24366 30133 30134 30135 30136 30137 30138 24541 24542 24543 24544 24545 24546 24571 24572 24573 24574 24575 24576 48 24709 24710 24711 24712 24713 24714 30139 30140 30141 30142 30143 30144 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 31795 31796 31797 31798 31799 31800 24721 24722 24723 24724 24725 24726 24715 24716 24717 24718 24719 24720 48 24877 24878 24879 24880 24881 24882 30145 30146 30147 30148 30149 30150 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 31801 31802 31803 31804 31805 31806 24889 24890 24891 24892 24893 24894 24883 24884 24885 24886 24887 24888 48 25051 25052 25053 25054 25055 25056 30151 30152 30153 30154 30155 30156 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 31807 31808 31809 31810 31811 31812 25063 25064 25065 25066 25067 25068 25057 25058 25059 25060 25061 25062 48 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 24943 24944 24945 24946 24947 24948 24877 24878 24879 24880 24881 24882 30151 30152 30153 30154 30155 30156 25051 25052 25053 25054 25055 25056 25117 25118 25119 25120 25121 25122 48 25219 25220 25221 25222 25223 25224 30157 30158 30159 30160 30161 30162 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 31813 31814 31815 31816 31817 31818 25231 25232 25233 25234 25235 25236 25225 25226 25227 25228 25229 25230 48 25387 25388 25389 25390 25391 25392 30163 30164 30165 30166 30167 30168 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 31819 31820 31821 31822 31823 31824 25399 25400 25401 25402 25403 25404 25393 25394 25395 25396 25397 25398 48 25567 25568 25569 25570 25571 25572 30169 30170 30171 30172 30173 30174 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 31825 31826 31827 31828 31829 31830 25579 25580 25581 25582 25583 25584 25573 25574 25575 25576 25577 25578 48 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 25453 25454 25455 25456 25457 25458 25387 25388 25389 25390 25391 25392 30169 30170 30171 30172 30173 30174 25567 25568 25569 25570 25571 25572 25597 25598 25599 25600 25601 25602 48 25735 25736 25737 25738 25739 25740 30175 30176 30177 30178 30179 30180 25567 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 31831 31832 31833 31834 31835 31836 25747 25748 25749 25750 25751 25752 25741 25742 25743 25744 25745 25746 48 25903 25904 25905 25906 25907 25908 30181 30182 30183 30184 30185 30186 25735 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 31837 31838 31839 31840 31841 31842 25915 25916 25917 25918 25919 25920 25909 25910 25911 25912 25913 25914 48 26077 26078 26079 26080 26081 26082 30187 30188 30189 30190 30191 30192 25903 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 31843 31844 31845 31846 31847 31848 26089 26090 26091 26092 26093 26094 26083 26084 26085 26086 26087 26088 48 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 25969 25970 25971 25972 25973 25974 25903 25904 25905 25906 25907 25908 30187 30188 30189 30190 30191 30192 26077 26078 26079 26080 26081 26082 26143 26144 26145 26146 26147 26148 48 26245 26246 26247 26248 26249 26250 30193 30194 30195 30196 30197 30198 26077 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 31849 31850 31851 31852 31853 31854 26257 26258 26259 26260 26261 26262 26251 26252 26253 26254 26255 26256 48 26413 26414 26415 26416 26417 26418 30199 30200 30201 30202 30203 30204 26245 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 31855 31856 31857 31858 31859 31860 26425 26426 26427 26428 26429 26430 26419 26420 26421 26422 26423 26424 48 26593 26594 26595 26596 26597 26598 30205 30206 30207 30208 30209 30210 26413 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 31861 31862 31863 31864 31865 31866 26605 26606 26607 26608 26609 26610 26599 26600 26601 26602 26603 26604 48 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 26479 26480 26481 26482 26483 26484 26413 26414 26415 26416 26417 26418 30205 30206 30207 30208 30209 30210 26593 26594 26595 26596 26597 26598 26623 26624 26625 26626 26627 26628 48 26761 26762 26763 26764 26765 26766 30211 30212 30213 30214 30215 30216 26593 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 31867 31868 31869 31870 31871 31872 26773 26774 26775 26776 26777 26778 26767 26768 26769 26770 26771 26772 48 26929 26930 26931 26932 26933 26934 30217 30218 30219 30220 30221 30222 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 31873 31874 31875 31876 31877 31878 26941 26942 26943 26944 26945 26946 26935 26936 26937 26938 26939 26940 48 27103 27104 27105 27106 27107 27108 30223 30224 30225 30226 30227 30228 26929 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 31879 31880 31881 31882 31883 31884 27115 27116 27117 27118 27119 27120 27109 27110 27111 27112 27113 27114 48 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 26995 26996 26997 26998 26999 27000 26929 26930 26931 26932 26933 26934 30223 30224 30225 30226 30227 30228 27103 27104 27105 27106 27107 27108 27169 27170 27171 27172 27173 27174 48 27271 27272 27273 27274 27275 27276 30229 30230 30231 30232 30233 30234 27103 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 31885 31886 31887 31888 31889 31890 27283 27284 27285 27286 27287 27288 27277 27278 27279 27280 27281 27282 48 27445 27446 27447 27448 27449 27450 30235 30236 30237 30238 30239 30240 27271 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 31891 31892 31893 31894 31895 31896 27457 27458 27459 27460 27461 27462 27451 27452 27453 27454 27455 27456 48 27625 27626 27627 27628 27629 27630 30241 30242 30243 30244 30245 30246 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 31897 31898 31899 31900 31901 31902 27637 27638 27639 27640 27641 27642 27631 27632 27633 27634 27635 27636 48 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 27475 27476 27477 27478 27479 27480 27445 27446 27447 27448 27449 27450 30241 30242 30243 30244 30245 30246 27625 27626 27627 27628 27629 27630 27655 27656 27657 27658 27659 27660 48 27793 27794 27795 27796 27797 27798 30247 30248 30249 30250 30251 30252 27625 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 31903 31904 31905 31906 31907 31908 27805 27806 27807 27808 27809 27810 27799 27800 27801 27802 27803 27804 48 27961 27962 27963 27964 27965 27966 30253 30254 30255 30256 30257 30258 27793 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 31909 31910 31911 31912 31913 31914 27973 27974 27975 27976 27977 27978 27967 27968 27969 27970 27971 27972 48 28135 28136 28137 28138 28139 28140 30259 30260 30261 30262 30263 30264 27961 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 31915 31916 31917 31918 31919 31920 28147 28148 28149 28150 28151 28152 28141 28142 28143 28144 28145 28146 48 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 28027 28028 28029 28030 28031 28032 27961 27962 27963 27964 27965 27966 30259 30260 30261 30262 30263 30264 28135 28136 28137 28138 28139 28140 28201 28202 28203 28204 28205 28206 48 28303 28304 28305 28306 28307 28308 30265 30266 30267 30268 30269 30270 28135 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 31921 31922 31923 31924 31925 31926 28315 28316 28317 28318 28319 28320 28309 28310 28311 28312 28313 28314 48 21007 21008 21009 21010 21011 21012 30271 30272 30273 30274 30275 30276 28303 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 31927 31928 31929 31930 31931 31932 28459 28460 28461 28462 28463 28464 28453 28454 28455 28456 28457 28458 48 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 28453 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 31933 31934 31935 31936 31937 31938 28591 28592 28593 28594 28595 28596 28585 28586 28587 28588 28589 28590 48 29443 29444 29445 29446 29447 29448 29509 29510 29511 29512 29513 29514 10777 10778 10779 10780 10781 10782 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 32281 32282 32283 32284 32285 32286 954 955 956 957 958 959 32287 32288 32289 32290 32291 32292 48 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 20995 20996 20997 20998 20999 21000 28585 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 31939 31940 31941 31942 31943 31944 28717 28718 28719 28720 28721 28722 28711 28712 28713 28714 28715 28716 36 29443 29444 29445 29446 29447 29448 954 955 956 957 958 959 29281 29282 29283 29284 29285 29286 32287 32288 32289 32290 32291 32292 32293 32294 32295 32296 32297 32298 30289 30290 30291 30292 30293 30294 48 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21037 21038 21039 21040 21041 21042 28711 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 31945 31946 31947 31948 31949 31950 28843 28844 28845 28846 28847 28848 28837 28838 28839 28840 28841 28842 48 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21061 21062 21063 21064 21065 21066 28837 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 31951 31952 31953 31954 31955 31956 28981 28982 28983 28984 28985 28986 28975 28976 28977 28978 28979 28980 48 29125 29126 29127 29128 29129 29130 30283 30284 30285 30286 30287 30288 29281 29282 29283 29284 29285 29286 32293 32294 32295 32296 32297 32298 954 955 956 957 958 959 32299 32300 32301 32302 32303 32304 948 949 950 951 952 953 32305 32306 32307 32308 32309 32310 48 29125 29126 29127 29128 29129 29130 30277 30278 30279 30280 30281 30282 21085 21086 21087 21088 21089 21090 28975 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 31957 31958 31959 31960 31961 31962 29137 29138 29139 29140 29141 29142 29131 29132 29133 29134 29135 29136 48 29281 29282 29283 29284 29285 29286 30283 30284 30285 30286 30287 30288 29125 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 31963 31964 31965 31966 31967 31968 29293 29294 29295 29296 29297 29298 29287 29288 29289 29290 29291 29292 48 21085 21086 21087 21088 21089 21090 30277 30278 30279 30280 30281 30282 29125 29126 29127 29128 29129 29130 32305 32306 32307 32308 32309 32310 948 949 950 951 952 953 32311 32312 32313 32314 32315 32316 942 943 944 945 946 947 21097 21098 21099 21100 21101 21102 48 29443 29444 29445 29446 29447 29448 30289 30290 30291 30292 30293 30294 29281 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 31969 31970 31971 31972 31973 31974 29455 29456 29457 29458 29459 29460 29449 29450 29451 29452 29453 29454 48 22615 22616 22617 22618 22619 22620 29797 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 32317 32318 32319 32320 32321 32322 31441 31442 31443 31444 31445 31446 31435 31436 31437 31438 31439 31440 22627 22628 22629 22630 22631 22632 22621 22622 22623 22624 22625 22626 48 22783 22784 22785 22786 22787 22788 29815 29816 29817 29818 29819 29820 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 31453 31454 31455 31456 31457 31458 22795 22796 22797 22798 22799 22800 22789 22790 22791 22792 22793 22794 48 22963 22964 22965 22966 22967 22968 29821 29822 29823 29824 29825 29826 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 31459 31460 31461 31462 31463 31464 22975 22976 22977 22978 22979 22980 22969 22970 22971 22972 22973 22974 48 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 22813 22814 22815 22816 22817 22818 22783 22784 22785 22786 22787 22788 29821 29822 29823 29824 29825 29826 22963 22964 22965 22966 22967 22968 22993 22994 22995 22996 22997 22998 48 23137 23138 23139 23140 23141 23142 29827 29828 29829 29830 29831 29832 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 31465 31466 31467 31468 31469 31470 23149 23150 23151 23152 23153 23154 23143 23144 23145 23146 23147 23148 48 23305 23306 23307 23308 23309 23310 29833 29834 29835 29836 29837 29838 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 31471 31472 31473 31474 31475 31476 23317 23318 23319 23320 23321 23322 23311 23312 23313 23314 23315 23316 48 23479 23480 23481 23482 23483 23484 29839 29840 29841 29842 29843 29844 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 31477 31478 31479 31480 31481 31482 23491 23492 23493 23494 23495 23496 23485 23486 23487 23488 23489 23490 48 23653 23654 23655 23656 23657 23658 29845 29846 29847 29848 29849 29850 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 31483 31484 31485 31486 31487 31488 23665 23666 23667 23668 23669 23670 23659 23660 23661 23662 23663 23664 48 23821 23822 23823 23824 23825 23826 29851 29852 29853 29854 29855 29856 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 31489 31490 31491 31492 31493 31494 23833 23834 23835 23836 23837 23838 23827 23828 23829 23830 23831 23832 48 23995 23996 23997 23998 23999 24000 29857 29858 29859 29860 29861 29862 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 31495 31496 31497 31498 31499 31500 24007 24008 24009 24010 24011 24012 24001 24002 24003 24004 24005 24006 48 24163 24164 24165 24166 24167 24168 29863 29864 29865 29866 29867 29868 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 31501 31502 31503 31504 31505 31506 24175 24176 24177 24178 24179 24180 24169 24170 24171 24172 24173 24174 48 24331 24332 24333 24334 24335 24336 29869 29870 29871 29872 29873 29874 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 31507 31508 31509 31510 31511 31512 24343 24344 24345 24346 24347 24348 24337 24338 24339 24340 24341 24342 48 24505 24506 24507 24508 24509 24510 29875 29876 29877 29878 29879 29880 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 31513 31514 31515 31516 31517 31518 24517 24518 24519 24520 24521 24522 24511 24512 24513 24514 24515 24516 48 24679 24680 24681 24682 24683 24684 29881 29882 29883 29884 29885 29886 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 31519 31520 31521 31522 31523 31524 24691 24692 24693 24694 24695 24696 24685 24686 24687 24688 24689 24690 48 24847 24848 24849 24850 24851 24852 29887 29888 29889 29890 29891 29892 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 31525 31526 31527 31528 31529 31530 24859 24860 24861 24862 24863 24864 24853 24854 24855 24856 24857 24858 48 25021 25022 25023 25024 25025 25026 29893 29894 29895 29896 29897 29898 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 31531 31532 31533 31534 31535 31536 25033 25034 25035 25036 25037 25038 25027 25028 25029 25030 25031 25032 48 25189 25190 25191 25192 25193 25194 29899 29900 29901 29902 29903 29904 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 31537 31538 31539 31540 31541 31542 25201 25202 25203 25204 25205 25206 25195 25196 25197 25198 25199 25200 48 25357 25358 25359 25360 25361 25362 29905 29906 29907 29908 29909 29910 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 31543 31544 31545 31546 31547 31548 25369 25370 25371 25372 25373 25374 25363 25364 25365 25366 25367 25368 48 25531 25532 25533 25534 25535 25536 29911 29912 29913 29914 29915 29916 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 31549 31550 31551 31552 31553 31554 25543 25544 25545 25546 25547 25548 25537 25538 25539 25540 25541 25542 48 25705 25706 25707 25708 25709 25710 29917 29918 29919 29920 29921 29922 25531 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 31555 31556 31557 31558 31559 31560 25717 25718 25719 25720 25721 25722 25711 25712 25713 25714 25715 25716 48 25873 25874 25875 25876 25877 25878 29923 29924 29925 29926 29927 29928 25705 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 31561 31562 31563 31564 31565 31566 25885 25886 25887 25888 25889 25890 25879 25880 25881 25882 25883 25884 48 26047 26048 26049 26050 26051 26052 29929 29930 29931 29932 29933 29934 25873 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 31567 31568 31569 31570 31571 31572 26059 26060 26061 26062 26063 26064 26053 26054 26055 26056 26057 26058 48 26215 26216 26217 26218 26219 26220 29935 29936 29937 29938 29939 29940 26047 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 31573 31574 31575 31576 31577 31578 26227 26228 26229 26230 26231 26232 26221 26222 26223 26224 26225 26226 48 26383 26384 26385 26386 26387 26388 29941 29942 29943 29944 29945 29946 26215 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 31579 31580 31581 31582 31583 31584 26395 26396 26397 26398 26399 26400 26389 26390 26391 26392 26393 26394 48 26557 26558 26559 26560 26561 26562 29947 29948 29949 29950 29951 29952 26383 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 31585 31586 31587 31588 31589 31590 26569 26570 26571 26572 26573 26574 26563 26564 26565 26566 26567 26568 48 26731 26732 26733 26734 26735 26736 29953 29954 29955 29956 29957 29958 26557 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 31591 31592 31593 31594 31595 31596 26743 26744 26745 26746 26747 26748 26737 26738 26739 26740 26741 26742 48 26899 26900 26901 26902 26903 26904 29959 29960 29961 29962 29963 29964 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 31597 31598 31599 31600 31601 31602 26911 26912 26913 26914 26915 26916 26905 26906 26907 26908 26909 26910 48 27073 27074 27075 27076 27077 27078 29965 29966 29967 29968 29969 29970 26899 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 31603 31604 31605 31606 31607 31608 27085 27086 27087 27088 27089 27090 27079 27080 27081 27082 27083 27084 48 27241 27242 27243 27244 27245 27246 29971 29972 29973 29974 29975 29976 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 31609 31610 31611 31612 31613 31614 27253 27254 27255 27256 27257 27258 27247 27248 27249 27250 27251 27252 48 27409 27410 27411 27412 27413 27414 29977 29978 29979 29980 29981 29982 27241 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 31615 31616 31617 31618 31619 31620 27421 27422 27423 27424 27425 27426 27415 27416 27417 27418 27419 27420 48 27589 27590 27591 27592 27593 27594 29983 29984 29985 29986 29987 29988 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 31621 31622 31623 31624 31625 31626 27601 27602 27603 27604 27605 27606 27595 27596 27597 27598 27599 27600 48 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 27439 27440 27441 27442 27443 27444 27409 27410 27411 27412 27413 27414 29983 29984 29985 29986 29987 29988 27589 27590 27591 27592 27593 27594 27619 27620 27621 27622 27623 27624 48 27763 27764 27765 27766 27767 27768 29989 29990 29991 29992 29993 29994 27589 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 31627 31628 31629 31630 31631 31632 27775 27776 27777 27778 27779 27780 27769 27770 27771 27772 27773 27774 48 27931 27932 27933 27934 27935 27936 29995 29996 29997 29998 29999 30000 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 31633 31634 31635 31636 31637 31638 27943 27944 27945 27946 27947 27948 27937 27938 27939 27940 27941 27942 48 28105 28106 28107 28108 28109 28110 30001 30002 30003 30004 30005 30006 27931 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 31639 31640 31641 31642 31643 31644 28117 28118 28119 28120 28121 28122 28111 28112 28113 28114 28115 28116 48 28273 28274 28275 28276 28277 28278 30007 30008 30009 30010 30011 30012 28105 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 31645 31646 31647 31648 31649 31650 28285 28286 28287 28288 28289 28290 28279 28280 28281 28282 28283 28284 48 20893 20894 20895 20896 20897 20898 30013 30014 30015 30016 30017 30018 28273 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 31651 31652 31653 31654 31655 31656 28435 28436 28437 28438 28439 28440 28429 28430 28431 28432 28433 28434 48 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 28429 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 31657 31658 31659 31660 31661 31662 28567 28568 28569 28570 28571 28572 28561 28562 28563 28564 28565 28566 48 29413 29414 29415 29416 29417 29418 32323 32324 32325 32326 32327 32328 9391 9392 9393 9394 9395 9396 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 32329 32330 32331 32332 32333 32334 918 919 920 921 922 923 32335 32336 32337 32338 32339 32340 48 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20881 20882 20883 20884 20885 20886 28561 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 31663 31664 31665 31666 31667 31668 28693 28694 28695 28696 28697 28698 28687 28688 28689 28690 28691 28692 36 29413 29414 29415 29416 29417 29418 918 919 920 921 922 923 29251 29252 29253 29254 29255 29256 32335 32336 32337 32338 32339 32340 32341 32342 32343 32344 32345 32346 30031 30032 30033 30034 30035 30036 48 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20923 20924 20925 20926 20927 20928 28687 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 31669 31670 31671 31672 31673 31674 28819 28820 28821 28822 28823 28824 28813 28814 28815 28816 28817 28818 48 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20947 20948 20949 20950 20951 20952 28813 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 31675 31676 31677 31678 31679 31680 28957 28958 28959 28960 28961 28962 28951 28952 28953 28954 28955 28956 48 29095 29096 29097 29098 29099 29100 30025 30026 30027 30028 30029 30030 29251 29252 29253 29254 29255 29256 32341 32342 32343 32344 32345 32346 918 919 920 921 922 923 32347 32348 32349 32350 32351 32352 912 913 914 915 916 917 32353 32354 32355 32356 32357 32358 48 29095 29096 29097 29098 29099 29100 30019 30020 30021 30022 30023 30024 20971 20972 20973 20974 20975 20976 28951 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 31681 31682 31683 31684 31685 31686 29107 29108 29109 29110 29111 29112 29101 29102 29103 29104 29105 29106 48 29251 29252 29253 29254 29255 29256 30025 30026 30027 30028 30029 30030 29095 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 31687 31688 31689 31690 31691 31692 29263 29264 29265 29266 29267 29268 29257 29258 29259 29260 29261 29262 48 20971 20972 20973 20974 20975 20976 30019 30020 30021 30022 30023 30024 29095 29096 29097 29098 29099 29100 32353 32354 32355 32356 32357 32358 912 913 914 915 916 917 32359 32360 32361 32362 32363 32364 906 907 908 909 910 911 20983 20984 20985 20986 20987 20988 48 29413 29414 29415 29416 29417 29418 30031 30032 30033 30034 30035 30036 29251 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 31693 31694 31695 31696 31697 31698 29425 29426 29427 29428 29429 29430 29419 29420 29421 29422 29423 29424 48 30037 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 29413 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 31705 31706 31707 31708 31709 31710 31699 31700 31701 31702 31703 31704 32365 32366 32367 32368 32369 32370 48 22573 22574 22575 22576 22577 22578 29539 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 32371 32372 32373 32374 32375 32376 30913 30914 30915 30916 30917 30918 30907 30908 30909 30910 30911 30912 22585 22586 22587 22588 22589 22590 22579 22580 22581 22582 22583 22584 48 22735 22736 22737 22738 22739 22740 29557 29558 29559 29560 29561 29562 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 30925 30926 30927 30928 30929 30930 22747 22748 22749 22750 22751 22752 22741 22742 22743 22744 22745 22746 48 22915 22916 22917 22918 22919 22920 29563 29564 29565 29566 29567 29568 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 30937 30938 30939 30940 30941 30942 22927 22928 22929 22930 22931 22932 22921 22922 22923 22924 22925 22926 48 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 22777 22778 22779 22780 22781 22782 22735 22736 22737 22738 22739 22740 29563 29564 29565 29566 29567 29568 22915 22916 22917 22918 22919 22920 22957 22958 22959 22960 22961 22962 48 23095 23096 23097 23098 23099 23100 29569 29570 29571 29572 29573 29574 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 30949 30950 30951 30952 30953 30954 23107 23108 23109 23110 23111 23112 23101 23102 23103 23104 23105 23106 48 23257 23258 23259 23260 23261 23262 29575 29576 29577 29578 29579 29580 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 30961 30962 30963 30964 30965 30966 23269 23270 23271 23272 23273 23274 23263 23264 23265 23266 23267 23268 48 23431 23432 23433 23434 23435 23436 29581 29582 29583 29584 29585 29586 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 30973 30974 30975 30976 30977 30978 23443 23444 23445 23446 23447 23448 23437 23438 23439 23440 23441 23442 48 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 23299 23300 23301 23302 23303 23304 23257 23258 23259 23260 23261 23262 29581 29582 29583 29584 29585 29586 23431 23432 23433 23434 23435 23436 23473 23474 23475 23476 23477 23478 48 23611 23612 23613 23614 23615 23616 29587 29588 29589 29590 29591 29592 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 30985 30986 30987 30988 30989 30990 23623 23624 23625 23626 23627 23628 23617 23618 23619 23620 23621 23622 48 23773 23774 23775 23776 23777 23778 29593 29594 29595 29596 29597 29598 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 30997 30998 30999 31000 31001 31002 23785 23786 23787 23788 23789 23790 23779 23780 23781 23782 23783 23784 48 23947 23948 23949 23950 23951 23952 29599 29600 29601 29602 29603 29604 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 31009 31010 31011 31012 31013 31014 23959 23960 23961 23962 23963 23964 23953 23954 23955 23956 23957 23958 48 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 23815 23816 23817 23818 23819 23820 23773 23774 23775 23776 23777 23778 29599 29600 29601 29602 29603 29604 23947 23948 23949 23950 23951 23952 23989 23990 23991 23992 23993 23994 48 24121 24122 24123 24124 24125 24126 29605 29606 29607 29608 29609 29610 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 31021 31022 31023 31024 31025 31026 24133 24134 24135 24136 24137 24138 24127 24128 24129 24130 24131 24132 48 24283 24284 24285 24286 24287 24288 29611 29612 29613 29614 29615 29616 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 31033 31034 31035 31036 31037 31038 24295 24296 24297 24298 24299 24300 24289 24290 24291 24292 24293 24294 48 24457 24458 24459 24460 24461 24462 29617 29618 29619 29620 29621 29622 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 31045 31046 31047 31048 31049 31050 24469 24470 24471 24472 24473 24474 24463 24464 24465 24466 24467 24468 48 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 24325 24326 24327 24328 24329 24330 24283 24284 24285 24286 24287 24288 29617 29618 29619 29620 29621 29622 24457 24458 24459 24460 24461 24462 24499 24500 24501 24502 24503 24504 48 24637 24638 24639 24640 24641 24642 29623 29624 29625 29626 29627 29628 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 31057 31058 31059 31060 31061 31062 24649 24650 24651 24652 24653 24654 24643 24644 24645 24646 24647 24648 48 24799 24800 24801 24802 24803 24804 29629 29630 29631 29632 29633 29634 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 31069 31070 31071 31072 31073 31074 24811 24812 24813 24814 24815 24816 24805 24806 24807 24808 24809 24810 48 24973 24974 24975 24976 24977 24978 29635 29636 29637 29638 29639 29640 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 31081 31082 31083 31084 31085 31086 24985 24986 24987 24988 24989 24990 24979 24980 24981 24982 24983 24984 48 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 24841 24842 24843 24844 24845 24846 24799 24800 24801 24802 24803 24804 29635 29636 29637 29638 29639 29640 24973 24974 24975 24976 24977 24978 25015 25016 25017 25018 25019 25020 48 25147 25148 25149 25150 25151 25152 29641 29642 29643 29644 29645 29646 24973 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 31093 31094 31095 31096 31097 31098 25159 25160 25161 25162 25163 25164 25153 25154 25155 25156 25157 25158 48 25309 25310 25311 25312 25313 25314 29647 29648 29649 29650 29651 29652 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 31105 31106 31107 31108 31109 31110 25321 25322 25323 25324 25325 25326 25315 25316 25317 25318 25319 25320 48 25483 25484 25485 25486 25487 25488 29653 29654 29655 29656 29657 29658 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 31117 31118 31119 31120 31121 31122 25495 25496 25497 25498 25499 25500 25489 25490 25491 25492 25493 25494 48 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 25351 25352 25353 25354 25355 25356 25309 25310 25311 25312 25313 25314 29653 29654 29655 29656 29657 29658 25483 25484 25485 25486 25487 25488 25525 25526 25527 25528 25529 25530 48 25663 25664 25665 25666 25667 25668 29659 29660 29661 29662 29663 29664 25483 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 31129 31130 31131 31132 31133 31134 25675 25676 25677 25678 25679 25680 25669 25670 25671 25672 25673 25674 48 25825 25826 25827 25828 25829 25830 29665 29666 29667 29668 29669 29670 25663 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 31141 31142 31143 31144 31145 31146 25837 25838 25839 25840 25841 25842 25831 25832 25833 25834 25835 25836 48 25999 26000 26001 26002 26003 26004 29671 29672 29673 29674 29675 29676 25825 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 31153 31154 31155 31156 31157 31158 26011 26012 26013 26014 26015 26016 26005 26006 26007 26008 26009 26010 48 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 25867 25868 25869 25870 25871 25872 25825 25826 25827 25828 25829 25830 29671 29672 29673 29674 29675 29676 25999 26000 26001 26002 26003 26004 26041 26042 26043 26044 26045 26046 48 26173 26174 26175 26176 26177 26178 29677 29678 29679 29680 29681 29682 25999 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 31165 31166 31167 31168 31169 31170 26185 26186 26187 26188 26189 26190 26179 26180 26181 26182 26183 26184 48 26335 26336 26337 26338 26339 26340 29683 29684 29685 29686 29687 29688 26173 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 31177 31178 31179 31180 31181 31182 26347 26348 26349 26350 26351 26352 26341 26342 26343 26344 26345 26346 48 26509 26510 26511 26512 26513 26514 29689 29690 29691 29692 29693 29694 26335 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 31189 31190 31191 31192 31193 31194 26521 26522 26523 26524 26525 26526 26515 26516 26517 26518 26519 26520 48 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 26377 26378 26379 26380 26381 26382 26335 26336 26337 26338 26339 26340 29689 29690 29691 29692 29693 29694 26509 26510 26511 26512 26513 26514 26551 26552 26553 26554 26555 26556 48 26689 26690 26691 26692 26693 26694 29695 29696 29697 29698 29699 29700 26509 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 31201 31202 31203 31204 31205 31206 26701 26702 26703 26704 26705 26706 26695 26696 26697 26698 26699 26700 48 26851 26852 26853 26854 26855 26856 29701 29702 29703 29704 29705 29706 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 31213 31214 31215 31216 31217 31218 26863 26864 26865 26866 26867 26868 26857 26858 26859 26860 26861 26862 48 27025 27026 27027 27028 27029 27030 29707 29708 29709 29710 29711 29712 26851 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 31225 31226 31227 31228 31229 31230 27037 27038 27039 27040 27041 27042 27031 27032 27033 27034 27035 27036 48 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 26893 26894 26895 26896 26897 26898 26851 26852 26853 26854 26855 26856 29707 29708 29709 29710 29711 29712 27025 27026 27027 27028 27029 27030 27067 27068 27069 27070 27071 27072 48 27199 27200 27201 27202 27203 27204 29713 29714 29715 29716 29717 29718 27025 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 31237 31238 31239 31240 31241 31242 27211 27212 27213 27214 27215 27216 27205 27206 27207 27208 27209 27210 48 27361 27362 27363 27364 27365 27366 29719 29720 29721 29722 29723 29724 27199 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 31249 31250 31251 31252 31253 31254 27373 27374 27375 27376 27377 27378 27367 27368 27369 27370 27371 27372 48 27541 27542 27543 27544 27545 27546 29725 29726 29727 29728 29729 29730 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 31261 31262 31263 31264 31265 31266 27553 27554 27555 27556 27557 27558 27547 27548 27549 27550 27551 27552 48 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 27403 27404 27405 27406 27407 27408 27361 27362 27363 27364 27365 27366 29725 29726 29727 29728 29729 29730 27541 27542 27543 27544 27545 27546 27583 27584 27585 27586 27587 27588 48 27721 27722 27723 27724 27725 27726 29731 29732 29733 29734 29735 29736 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 31273 31274 31275 31276 31277 31278 27733 27734 27735 27736 27737 27738 27727 27728 27729 27730 27731 27732 48 27883 27884 27885 27886 27887 27888 29737 29738 29739 29740 29741 29742 27721 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 31285 31286 31287 31288 31289 31290 27895 27896 27897 27898 27899 27900 27889 27890 27891 27892 27893 27894 48 28057 28058 28059 28060 28061 28062 29743 29744 29745 29746 29747 29748 27883 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 31297 31298 31299 31300 31301 31302 28069 28070 28071 28072 28073 28074 28063 28064 28065 28066 28067 28068 48 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 27925 27926 27927 27928 27929 27930 27883 27884 27885 27886 27887 27888 29743 29744 29745 29746 29747 29748 28057 28058 28059 28060 28061 28062 28099 28100 28101 28102 28103 28104 48 28231 28232 28233 28234 28235 28236 29749 29750 29751 29752 29753 29754 28057 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 31309 31310 31311 31312 31313 31314 28243 28244 28245 28246 28247 28248 28237 28238 28239 28240 28241 28242 48 20779 20780 20781 20782 20783 20784 29755 29756 29757 29758 29759 29760 28231 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 31321 31322 31323 31324 31325 31326 28399 28400 28401 28402 28403 28404 28393 28394 28395 28396 28397 28398 48 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 28393 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 31333 31334 31335 31336 31337 31338 28543 28544 28545 28546 28547 28548 28537 28538 28539 28540 28541 28542 48 29365 29366 29367 29368 29369 29370 29407 29408 29409 29410 29411 29412 7723 7724 7725 7726 7727 7728 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 32377 32378 32379 32380 32381 32382 876 877 878 879 880 881 32383 32384 32385 32386 32387 32388 48 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20767 20768 20769 20770 20771 20772 28537 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 31345 31346 31347 31348 31349 31350 28669 28670 28671 28672 28673 28674 28663 28664 28665 28666 28667 28668 36 29365 29366 29367 29368 29369 29370 876 877 878 879 880 881 29209 29210 29211 29212 29213 29214 32383 32384 32385 32386 32387 32388 32389 32390 32391 32392 32393 32394 29773 29774 29775 29776 29777 29778 48 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20809 20810 20811 20812 20813 20814 28663 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 31351 31352 31353 31354 31355 31356 28795 28796 28797 28798 28799 28800 28789 28790 28791 28792 28793 28794 48 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20833 20834 20835 20836 20837 20838 28789 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 31357 31358 31359 31360 31361 31362 28921 28922 28923 28924 28925 28926 28915 28916 28917 28918 28919 28920 48 29053 29054 29055 29056 29057 29058 29767 29768 29769 29770 29771 29772 29209 29210 29211 29212 29213 29214 32389 32390 32391 32392 32393 32394 876 877 878 879 880 881 32395 32396 32397 32398 32399 32400 864 865 866 867 868 869 32401 32402 32403 32404 32405 32406 48 29053 29054 29055 29056 29057 29058 29761 29762 29763 29764 29765 29766 20857 20858 20859 20860 20861 20862 28915 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 31369 31370 31371 31372 31373 31374 29065 29066 29067 29068 29069 29070 29059 29060 29061 29062 29063 29064 48 29209 29210 29211 29212 29213 29214 29767 29768 29769 29770 29771 29772 29053 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 31381 31382 31383 31384 31385 31386 29221 29222 29223 29224 29225 29226 29215 29216 29217 29218 29219 29220 48 20857 20858 20859 20860 20861 20862 29761 29762 29763 29764 29765 29766 29053 29054 29055 29056 29057 29058 32401 32402 32403 32404 32405 32406 864 865 866 867 868 869 32407 32408 32409 32410 32411 32412 852 853 854 855 856 857 20869 20870 20871 20872 20873 20874 48 29365 29366 29367 29368 29369 29370 29773 29774 29775 29776 29777 29778 29209 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 31393 31394 31395 31396 31397 31398 29377 29378 29379 29380 29381 29382 29371 29372 29373 29374 29375 29376 48 29779 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29365 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 31411 31412 31413 31414 31415 31416 31405 31406 31407 31408 31409 31410 32413 32414 32415 32416 32417 32418 48 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 21553 21554 21555 21556 21557 21558 32419 32420 32421 32422 32423 32424 30895 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 48 21577 21578 21579 21580 21581 21582 22153 22154 22155 22156 22157 22158 22135 22136 22137 22138 22139 22140 22603 22604 22605 22606 22607 22608 22597 22598 22599 22600 22601 22602 30931 30932 30933 30934 30935 30936 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 48 21601 21602 21603 21604 21605 21606 22159 22160 22161 22162 22163 22164 21577 21578 21579 21580 21581 21582 22765 22766 22767 22768 22769 22770 22759 22760 22761 22762 22763 22764 30943 30944 30945 30946 30947 30948 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 48 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 22159 22160 22161 22162 22163 22164 21601 21602 21603 21604 21605 21606 21595 21596 21597 21598 21599 21600 48 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 21601 21602 21603 21604 21605 21606 22945 22946 22947 22948 22949 22950 22939 22940 22941 22942 22943 22944 30955 30956 30957 30958 30959 30960 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 48 21625 21626 21627 21628 21629 21630 22183 22184 22185 22186 22187 22188 22165 22166 22167 22168 22169 22170 23125 23126 23127 23128 23129 23130 23119 23120 23121 23122 23123 23124 30967 30968 30969 30970 30971 30972 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 48 21649 21650 21651 21652 21653 21654 22189 22190 22191 22192 22193 22194 21625 21626 21627 21628 21629 21630 23287 23288 23289 23290 23291 23292 23281 23282 23283 23284 23285 23286 30979 30980 30981 30982 30983 30984 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 48 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 22189 22190 22191 22192 22193 22194 21649 21650 21651 21652 21653 21654 21643 21644 21645 21646 21647 21648 48 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 21649 21650 21651 21652 21653 21654 23461 23462 23463 23464 23465 23466 23455 23456 23457 23458 23459 23460 30991 30992 30993 30994 30995 30996 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 48 21673 21674 21675 21676 21677 21678 22213 22214 22215 22216 22217 22218 22195 22196 22197 22198 22199 22200 23641 23642 23643 23644 23645 23646 23635 23636 23637 23638 23639 23640 31003 31004 31005 31006 31007 31008 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 48 21697 21698 21699 21700 21701 21702 22219 22220 22221 22222 22223 22224 21673 21674 21675 21676 21677 21678 23803 23804 23805 23806 23807 23808 23797 23798 23799 23800 23801 23802 31015 31016 31017 31018 31019 31020 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 48 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 22219 22220 22221 22222 22223 22224 21697 21698 21699 21700 21701 21702 21691 21692 21693 21694 21695 21696 48 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 21697 21698 21699 21700 21701 21702 23977 23978 23979 23980 23981 23982 23971 23972 23973 23974 23975 23976 31027 31028 31029 31030 31031 31032 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 48 21721 21722 21723 21724 21725 21726 22243 22244 22245 22246 22247 22248 22225 22226 22227 22228 22229 22230 24151 24152 24153 24154 24155 24156 24145 24146 24147 24148 24149 24150 31039 31040 31041 31042 31043 31044 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 48 21745 21746 21747 21748 21749 21750 22249 22250 22251 22252 22253 22254 21721 21722 21723 21724 21725 21726 24313 24314 24315 24316 24317 24318 24307 24308 24309 24310 24311 24312 31051 31052 31053 31054 31055 31056 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 48 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 22249 22250 22251 22252 22253 22254 21745 21746 21747 21748 21749 21750 21739 21740 21741 21742 21743 21744 48 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 21745 21746 21747 21748 21749 21750 24487 24488 24489 24490 24491 24492 24481 24482 24483 24484 24485 24486 31063 31064 31065 31066 31067 31068 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 48 21769 21770 21771 21772 21773 21774 22273 22274 22275 22276 22277 22278 22255 22256 22257 22258 22259 22260 24667 24668 24669 24670 24671 24672 24661 24662 24663 24664 24665 24666 31075 31076 31077 31078 31079 31080 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 48 21793 21794 21795 21796 21797 21798 22279 22280 22281 22282 22283 22284 21769 21770 21771 21772 21773 21774 24829 24830 24831 24832 24833 24834 24823 24824 24825 24826 24827 24828 31087 31088 31089 31090 31091 31092 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 48 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 22279 22280 22281 22282 22283 22284 21793 21794 21795 21796 21797 21798 21787 21788 21789 21790 21791 21792 48 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 21793 21794 21795 21796 21797 21798 25003 25004 25005 25006 25007 25008 24997 24998 24999 25000 25001 25002 31099 31100 31101 31102 31103 31104 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 48 21817 21818 21819 21820 21821 21822 22303 22304 22305 22306 22307 22308 22285 22286 22287 22288 22289 22290 25177 25178 25179 25180 25181 25182 25171 25172 25173 25174 25175 25176 31111 31112 31113 31114 31115 31116 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 48 21841 21842 21843 21844 21845 21846 22309 22310 22311 22312 22313 22314 21817 21818 21819 21820 21821 21822 25339 25340 25341 25342 25343 25344 25333 25334 25335 25336 25337 25338 31123 31124 31125 31126 31127 31128 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 48 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 22309 22310 22311 22312 22313 22314 21841 21842 21843 21844 21845 21846 21835 21836 21837 21838 21839 21840 48 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 21841 21842 21843 21844 21845 21846 25513 25514 25515 25516 25517 25518 25507 25508 25509 25510 25511 25512 31135 31136 31137 31138 31139 31140 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 48 21865 21866 21867 21868 21869 21870 22333 22334 22335 22336 22337 22338 22315 22316 22317 22318 22319 22320 25693 25694 25695 25696 25697 25698 25687 25688 25689 25690 25691 25692 31147 31148 31149 31150 31151 31152 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 48 21889 21890 21891 21892 21893 21894 22339 22340 22341 22342 22343 22344 21865 21866 21867 21868 21869 21870 25855 25856 25857 25858 25859 25860 25849 25850 25851 25852 25853 25854 31159 31160 31161 31162 31163 31164 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 48 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 22339 22340 22341 22342 22343 22344 21889 21890 21891 21892 21893 21894 21883 21884 21885 21886 21887 21888 48 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 21889 21890 21891 21892 21893 21894 26029 26030 26031 26032 26033 26034 26023 26024 26025 26026 26027 26028 31171 31172 31173 31174 31175 31176 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 48 21913 21914 21915 21916 21917 21918 22363 22364 22365 22366 22367 22368 22345 22346 22347 22348 22349 22350 26203 26204 26205 26206 26207 26208 26197 26198 26199 26200 26201 26202 31183 31184 31185 31186 31187 31188 26359 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 48 21937 21938 21939 21940 21941 21942 22369 22370 22371 22372 22373 22374 21913 21914 21915 21916 21917 21918 26365 26366 26367 26368 26369 26370 26359 26360 26361 26362 26363 26364 31195 31196 31197 31198 31199 31200 26533 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 48 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 22369 22370 22371 22372 22373 22374 21937 21938 21939 21940 21941 21942 21931 21932 21933 21934 21935 21936 48 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 21937 21938 21939 21940 21941 21942 26539 26540 26541 26542 26543 26544 26533 26534 26535 26536 26537 26538 31207 31208 31209 31210 31211 31212 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 48 21961 21962 21963 21964 21965 21966 22393 22394 22395 22396 22397 22398 22375 22376 22377 22378 22379 22380 26719 26720 26721 26722 26723 26724 26713 26714 26715 26716 26717 26718 31219 31220 31221 31222 31223 31224 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 48 21985 21986 21987 21988 21989 21990 22399 22400 22401 22402 22403 22404 21961 21962 21963 21964 21965 21966 26881 26882 26883 26884 26885 26886 26875 26876 26877 26878 26879 26880 31231 31232 31233 31234 31235 31236 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 48 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 22399 22400 22401 22402 22403 22404 21985 21986 21987 21988 21989 21990 21979 21980 21981 21982 21983 21984 48 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 21985 21986 21987 21988 21989 21990 27055 27056 27057 27058 27059 27060 27049 27050 27051 27052 27053 27054 31243 31244 31245 31246 31247 31248 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 48 22009 22010 22011 22012 22013 22014 22423 22424 22425 22426 22427 22428 22405 22406 22407 22408 22409 22410 27229 27230 27231 27232 27233 27234 27223 27224 27225 27226 27227 27228 31255 31256 31257 31258 31259 31260 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 48 22033 22034 22035 22036 22037 22038 22429 22430 22431 22432 22433 22434 22009 22010 22011 22012 22013 22014 27391 27392 27393 27394 27395 27396 27385 27386 27387 27388 27389 27390 31267 31268 31269 31270 31271 31272 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 48 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22429 22430 22431 22432 22433 22434 22033 22034 22035 22036 22037 22038 22027 22028 22029 22030 22031 22032 48 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22033 22034 22035 22036 22037 22038 27571 27572 27573 27574 27575 27576 27565 27566 27567 27568 27569 27570 31279 31280 31281 31282 31283 31284 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 48 22057 22058 22059 22060 22061 22062 22453 22454 22455 22456 22457 22458 22435 22436 22437 22438 22439 22440 27751 27752 27753 27754 27755 27756 27745 27746 27747 27748 27749 27750 31291 31292 31293 31294 31295 31296 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 48 22081 22082 22083 22084 22085 22086 22459 22460 22461 22462 22463 22464 22057 22058 22059 22060 22061 22062 27913 27914 27915 27916 27917 27918 27907 27908 27909 27910 27911 27912 31303 31304 31305 31306 31307 31308 28081 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 48 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22459 22460 22461 22462 22463 22464 22081 22082 22083 22084 22085 22086 22075 22076 22077 22078 22079 22080 48 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22081 22082 22083 22084 22085 22086 28087 28088 28089 28090 28091 28092 28081 28082 28083 28084 28085 28086 31315 31316 31317 31318 31319 31320 28255 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 48 20665 20666 20667 20668 20669 20670 22483 22484 22485 22486 22487 22488 22465 22466 22467 22468 22469 22470 28261 28262 28263 28264 28265 28266 28255 28256 28257 28258 28259 28260 31327 31328 31329 31330 31331 31332 28411 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 48 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 28417 28418 28419 28420 28421 28422 28411 28412 28413 28414 28415 28416 31339 31340 31341 31342 31343 31344 21157 21158 21159 21160 21161 21162 21373 21374 21375 21376 21377 21378 48 22117 22118 22119 22120 22121 22122 22111 22112 22113 22114 22115 22116 6055 6056 6057 6058 6059 6060 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 32425 32426 32427 32428 32429 32430 882 883 884 885 886 887 32431 32432 32433 32434 32435 32436 48 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20653 20654 20655 20656 20657 20658 21373 21374 21375 21376 21377 21378 21157 21158 21159 21160 21161 21162 21169 21170 21171 21172 21173 21174 21133 21134 21135 21136 21137 21138 21439 21440 21441 21442 21443 21444 36 22117 22118 22119 22120 22121 22122 882 883 884 885 886 887 22531 22532 22533 22534 22535 22536 32431 32432 32433 32434 32435 32436 32437 32438 32439 32440 32441 32442 22549 22550 22551 22552 22553 22554 48 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20695 20696 20697 20698 20699 20700 21439 21440 21441 21442 21443 21444 21133 21134 21135 21136 21137 21138 21187 21188 21189 21190 21191 21192 21175 21176 21177 21178 21179 21180 21541 21542 21543 21544 21545 21546 48 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20719 20720 20721 20722 20723 20724 21541 21542 21543 21544 21545 21546 21175 21176 21177 21178 21179 21180 31363 31364 31365 31366 31367 31368 28933 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 48 22513 22514 22515 22516 22517 22518 22537 22538 22539 22540 22541 22542 22531 22532 22533 22534 22535 22536 32437 32438 32439 32440 32441 32442 882 883 884 885 886 887 32443 32444 32445 32446 32447 32448 870 871 872 873 874 875 32449 32450 32451 32452 32453 32454 48 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 20743 20744 20745 20746 20747 20748 28939 28940 28941 28942 28943 28944 28933 28934 28935 28936 28937 28938 31375 31376 31377 31378 31379 31380 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 48 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22513 22514 22515 22516 22517 22518 29083 29084 29085 29086 29087 29088 29077 29078 29079 29080 29081 29082 31387 31388 31389 31390 31391 31392 29233 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 48 20743 20744 20745 20746 20747 20748 22519 22520 22521 22522 22523 22524 22513 22514 22515 22516 22517 22518 32449 32450 32451 32452 32453 32454 870 871 872 873 874 875 32455 32456 32457 32458 32459 32460 858 859 860 861 862 863 20755 20756 20757 20758 20759 20760 48 22117 22118 22119 22120 22121 22122 22549 22550 22551 22552 22553 22554 22531 22532 22533 22534 22535 22536 29239 29240 29241 29242 29243 29244 29233 29234 29235 29236 29237 29238 31399 31400 31401 31402 31403 31404 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 48 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22117 22118 22119 22120 22121 22122 29395 29396 29397 29398 29399 29400 29389 29390 29391 29392 29393 29394 31423 31424 31425 31426 31427 31428 31417 31418 31419 31420 31421 31422 32461 32462 32463 32464 32465 32466 48 4255 4256 4257 4258 4259 4260 5803 5804 5805 5806 5807 5808 5245 5246 5247 5248 5249 5250 32467 32468 32469 32470 32471 32472 1518 1519 1520 1521 1522 1523 32473 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 48 4243 4244 4245 4246 4247 4248 5797 5798 5799 5800 5801 5802 5233 5234 5235 5236 5237 5238 32491 32492 32493 32494 32495 32496 1530 1531 1532 1533 1534 1535 32497 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 48 4141 4142 4143 4144 4145 4146 5791 5792 5793 5794 5795 5796 5215 5216 5217 5218 5219 5220 32515 32516 32517 32518 32519 32520 1554 1555 1556 1557 1558 1559 32521 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 48 1740 1741 1742 1743 1744 1745 5785 5786 5787 5788 5789 5790 5203 5204 5205 5206 5207 5208 32539 32540 32541 32542 32543 32544 1566 1567 1568 1569 1570 1571 32551 32552 32553 32554 32555 32556 32545 32546 32547 32548 32549 32550 32557 32558 32559 32560 32561 32562 48 32479 32480 32481 32482 32483 32484 32473 32474 32475 32476 32477 32478 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1506 1507 1508 1509 1510 1511 22567 22568 22569 22570 22571 22572 22555 22556 22557 22558 22559 22560 32563 32564 32565 32566 32567 32568 48 32503 32504 32505 32506 32507 32508 32497 32498 32499 32500 32501 32502 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1518 1519 1520 1521 1522 1523 32473 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32569 32570 32571 32572 32573 32574 48 32581 32582 32583 32584 32585 32586 32575 32576 32577 32578 32579 32580 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1530 1531 1532 1533 1534 1535 32497 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32587 32588 32589 32590 32591 32592 48 32527 32528 32529 32530 32531 32532 32521 32522 32523 32524 32525 32526 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1542 1543 1544 1545 1546 1547 32575 32576 32577 32578 32579 32580 32581 32582 32583 32584 32585 32586 32593 32594 32595 32596 32597 32598 48 32545 32546 32547 32548 32549 32550 32551 32552 32553 32554 32555 32556 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1554 1555 1556 1557 1558 1559 32521 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32599 32600 32601 32602 32603 32604 48 29779 29780 29781 29782 29783 29784 32413 32414 32415 32416 32417 32418 31405 31406 31407 31408 31409 31410 31429 31430 31431 31432 31433 31434 31417 31418 31419 31420 31421 31422 32461 32462 32463 32464 32465 32466 22555 22556 22557 22558 22559 22560 29791 29792 29793 29794 29795 29796 48 30037 30038 30039 30040 30041 30042 32365 32366 32367 32368 32369 32370 31699 31700 31701 31702 31703 31704 31711 31712 31713 31714 31715 31716 31405 31406 31407 31408 31409 31410 32413 32414 32415 32416 32417 32418 29779 29780 29781 29782 29783 29784 30049 30050 30051 30052 30053 30054 36 31699 31700 31701 31702 31703 31704 30037 30038 30039 30040 30041 30042 30295 30296 30297 30298 30299 30300 32365 32366 32367 32368 32369 32370 30307 30308 30309 30310 30311 30312 31981 31982 31983 31984 31985 31986 48 5179 5180 5181 5182 5183 5184 32275 32276 32277 32278 32279 32280 30859 30860 30861 30862 30863 30864 30871 30872 30873 30874 30875 30876 30577 30578 30579 30580 30581 30582 32251 32252 32253 32254 32255 32256 5047 5048 5049 5050 5051 5052 5617 5618 5619 5620 5621 5622 48 32605 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 32629 32630 32631 32632 32633 32634 32623 32624 32625 32626 32627 32628 32635 32636 32637 32638 32639 32640 32479 32480 32481 32482 32483 32484 32641 32642 32643 32644 32645 32646 48 4519 4520 4521 4522 4523 4524 32647 32648 32649 32650 32651 32652 32605 32606 32607 32608 32609 32610 32641 32642 32643 32644 32645 32646 32479 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 4255 4256 4257 4258 4259 4260 5707 5708 5709 5710 5711 5712 48 32653 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32617 32618 32619 32620 32621 32622 32611 32612 32613 32614 32615 32616 32605 32606 32607 32608 32609 32610 32677 32678 32679 32680 32681 32682 48 5665 5666 5667 5668 5669 5670 32683 32684 32685 32686 32687 32688 32653 32654 32655 32656 32657 32658 32677 32678 32679 32680 32681 32682 32605 32606 32607 32608 32609 32610 32647 32648 32649 32650 32651 32652 4519 4520 4521 4522 4523 4524 5689 5690 5691 5692 5693 5694 36 32665 32666 32667 32668 32669 32670 32653 32654 32655 32656 32657 32658 32695 32696 32697 32698 32699 32700 32659 32660 32661 32662 32663 32664 32701 32702 32703 32704 32705 32706 32689 32690 32691 32692 32693 32694 48 4897 4898 4899 4900 4901 4902 32707 32708 32709 32710 32711 32712 32695 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32653 32654 32655 32656 32657 32658 32683 32684 32685 32686 32687 32688 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 48 5017 5018 5019 5020 5021 5022 32713 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32695 32696 32697 32698 32699 32700 32707 32708 32709 32710 32711 32712 4897 4898 4899 4900 4901 4902 5635 5636 5637 5638 5639 5640 48 5149 5150 5151 5152 5153 5154 32731 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32719 32720 32721 32722 32723 32724 32713 32714 32715 32716 32717 32718 5017 5018 5019 5020 5021 5022 5611 5612 5613 5614 5615 5616 48 32749 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 32773 32774 32775 32776 32777 32778 32767 32768 32769 32770 32771 32772 32779 32780 32781 32782 32783 32784 32503 32504 32505 32506 32507 32508 32785 32786 32787 32788 32789 32790 48 4507 4508 4509 4510 4511 4512 32791 32792 32793 32794 32795 32796 32749 32750 32751 32752 32753 32754 32785 32786 32787 32788 32789 32790 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 4243 4244 4245 4246 4247 4248 5701 5702 5703 5704 5705 5706 48 32797 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32761 32762 32763 32764 32765 32766 32755 32756 32757 32758 32759 32760 32749 32750 32751 32752 32753 32754 32821 32822 32823 32824 32825 32826 36 32809 32810 32811 32812 32813 32814 32797 32798 32799 32800 32801 32802 32833 32834 32835 32836 32837 32838 32803 32804 32805 32806 32807 32808 32839 32840 32841 32842 32843 32844 32827 32828 32829 32830 32831 32832 48 4987 4988 4989 4990 4991 4992 32845 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32833 32834 32835 32836 32837 32838 32863 32864 32865 32866 32867 32868 4885 4886 4887 4888 4889 4890 5629 5630 5631 5632 5633 5634 48 5119 5120 5121 5122 5123 5124 32869 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32851 32852 32853 32854 32855 32856 32845 32846 32847 32848 32849 32850 4987 4988 4989 4990 4991 4992 5605 5606 5607 5608 5609 5610 48 32887 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 32911 32912 32913 32914 32915 32916 32905 32906 32907 32908 32909 32910 32917 32918 32919 32920 32921 32922 32581 32582 32583 32584 32585 32586 32923 32924 32925 32926 32927 32928 48 32929 32930 32931 32932 32933 32934 32935 32936 32937 32938 32939 32940 32941 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32899 32900 32901 32902 32903 32904 32893 32894 32895 32896 32897 32898 32887 32888 32889 32890 32891 32892 32953 32954 32955 32956 32957 32958 36 32941 32942 32943 32944 32945 32946 32929 32930 32931 32932 32933 32934 32965 32966 32967 32968 32969 32970 32935 32936 32937 32938 32939 32940 32971 32972 32973 32974 32975 32976 32959 32960 32961 32962 32963 32964 48 5077 5078 5079 5080 5081 5082 32977 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32995 32996 32997 32998 32999 33000 32989 32990 32991 32992 32993 32994 33001 33002 33003 33004 33005 33006 4945 4946 4947 4948 4949 4950 5599 5600 5601 5602 5603 5604 48 33007 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33031 33032 33033 33034 33035 33036 33025 33026 33027 33028 33029 33030 33037 33038 33039 33040 33041 33042 32527 32528 32529 32530 32531 32532 33043 33044 33045 33046 33047 33048 48 4405 4406 4407 4408 4409 4410 33049 33050 33051 33052 33053 33054 33007 33008 33009 33010 33011 33012 33043 33044 33045 33046 33047 33048 32527 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 4141 4142 4143 4144 4145 4146 5737 5738 5739 5740 5741 5742 36 33019 33020 33021 33022 33023 33024 33007 33008 33009 33010 33011 33012 33061 33062 33063 33064 33065 33066 33013 33014 33015 33016 33017 33018 33067 33068 33069 33070 33071 33072 33055 33056 33057 33058 33059 33060 48 4669 4670 4671 4672 4673 4674 33073 33074 33075 33076 33077 33078 33061 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33007 33008 33009 33010 33011 33012 33049 33050 33051 33052 33053 33054 4405 4406 4407 4408 4409 4410 5731 5732 5733 5734 5735 5736 36 33061 33062 33063 33064 33065 33066 4669 4670 4671 4672 4673 4674 33085 33086 33087 33088 33089 33090 33073 33074 33075 33076 33077 33078 33091 33092 33093 33094 33095 33096 33079 33080 33081 33082 33083 33084 36 33085 33086 33087 33088 33089 33090 4669 4670 4671 4672 4673 4674 4837 4838 4839 4840 4841 4842 33091 33092 33093 33094 33095 33096 5725 5726 5727 5728 5729 5730 33097 33098 33099 33100 33101 33102 48 33103 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33127 33128 33129 33130 33131 33132 33121 33122 33123 33124 33125 33126 33133 33134 33135 33136 33137 33138 32545 32546 32547 32548 32549 32550 33139 33140 33141 33142 33143 33144 48 1728 1729 1730 1731 1732 1733 33145 33146 33147 33148 33149 33150 33103 33104 33105 33106 33107 33108 33139 33140 33141 33142 33143 33144 32545 32546 32547 32548 32549 32550 32557 32558 32559 32560 32561 32562 1740 1741 1742 1743 1744 1745 5695 5696 5697 5698 5699 5700 36 33115 33116 33117 33118 33119 33120 33157 33158 33159 33160 33161 33162 33103 33104 33105 33106 33107 33108 33151 33152 33153 33154 33155 33156 33163 33164 33165 33166 33167 33168 33109 33110 33111 33112 33113 33114 36 33157 33158 33159 33160 33161 33162 33169 33170 33171 33172 33173 33174 33103 33104 33105 33106 33107 33108 33175 33176 33177 33178 33179 33180 33181 33182 33183 33184 33185 33186 33163 33164 33165 33166 33167 33168 48 1728 1729 1730 1731 1732 1733 33145 33146 33147 33148 33149 33150 33103 33104 33105 33106 33107 33108 33181 33182 33183 33184 33185 33186 33169 33170 33171 33172 33173 33174 33187 33188 33189 33190 33191 33192 1716 1717 1718 1719 1720 1721 5677 5678 5679 5680 5681 5682 36 33169 33170 33171 33172 33173 33174 1716 1717 1718 1719 1720 1721 1704 1705 1706 1707 1708 1709 33187 33188 33189 33190 33191 33192 5641 5642 5643 5644 5645 5646 33193 33194 33195 33196 33197 33198 48 32605 32606 32607 32608 32609 32610 32641 32642 32643 32644 32645 32646 32479 32480 32481 32482 32483 32484 32563 32564 32565 32566 32567 32568 22555 22556 22557 22558 22559 22560 29791 29792 29793 29794 29795 29796 29779 29780 29781 29782 29783 29784 33199 33200 33201 33202 33203 33204 48 32749 32750 32751 32752 32753 32754 32785 32786 32787 32788 32789 32790 32503 32504 32505 32506 32507 32508 32569 32570 32571 32572 32573 32574 32479 32480 32481 32482 32483 32484 32641 32642 32643 32644 32645 32646 32605 32606 32607 32608 32609 32610 33205 33206 33207 33208 33209 33210 48 32887 32888 32889 32890 32891 32892 32923 32924 32925 32926 32927 32928 32581 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32503 32504 32505 32506 32507 32508 32785 32786 32787 32788 32789 32790 32749 32750 32751 32752 32753 32754 33211 33212 33213 33214 33215 33216 48 33007 33008 33009 33010 33011 33012 33043 33044 33045 33046 33047 33048 32527 32528 32529 32530 32531 32532 32593 32594 32595 32596 32597 32598 32581 32582 32583 32584 32585 32586 32923 32924 32925 32926 32927 32928 32887 32888 32889 32890 32891 32892 33217 33218 33219 33220 33221 33222 48 33103 33104 33105 33106 33107 33108 33139 33140 33141 33142 33143 33144 32545 32546 32547 32548 32549 32550 32599 32600 32601 32602 32603 32604 32527 32528 32529 32530 32531 32532 33043 33044 33045 33046 33047 33048 33007 33008 33009 33010 33011 33012 33223 33224 33225 33226 33227 33228 48 33229 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 32545 32546 32547 32548 32549 32550 33139 33140 33141 33142 33143 33144 33103 33104 33105 33106 33107 33108 33253 33254 33255 33256 33257 33258 48 32653 32654 32655 32656 32657 32658 32677 32678 32679 32680 32681 32682 32605 32606 32607 32608 32609 32610 33199 33200 33201 33202 33203 33204 29779 29780 29781 29782 29783 29784 30049 30050 30051 30052 30053 30054 30037 30038 30039 30040 30041 30042 33259 33260 33261 33262 33263 33264 48 32797 32798 32799 32800 32801 32802 32821 32822 32823 32824 32825 32826 32749 32750 32751 32752 32753 32754 33205 33206 33207 33208 33209 33210 32605 32606 32607 32608 32609 32610 32677 32678 32679 32680 32681 32682 32653 32654 32655 32656 32657 32658 33265 33266 33267 33268 33269 33270 48 32929 32930 32931 32932 32933 32934 32953 32954 32955 32956 32957 32958 32887 32888 32889 32890 32891 32892 33211 33212 33213 33214 33215 33216 32749 32750 32751 32752 32753 32754 32821 32822 32823 32824 32825 32826 32797 32798 32799 32800 32801 32802 33271 33272 33273 33274 33275 33276 48 33061 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33007 33008 33009 33010 33011 33012 33217 33218 33219 33220 33221 33222 32887 32888 32889 32890 32891 32892 32953 32954 32955 32956 32957 32958 32929 32930 32931 32932 32933 32934 33277 33278 33279 33280 33281 33282 48 33157 33158 33159 33160 33161 33162 33163 33164 33165 33166 33167 33168 33103 33104 33105 33106 33107 33108 33223 33224 33225 33226 33227 33228 33007 33008 33009 33010 33011 33012 33067 33068 33069 33070 33071 33072 33061 33062 33063 33064 33065 33066 33283 33284 33285 33286 33287 33288 48 33289 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33229 33230 33231 33232 33233 33234 33253 33254 33255 33256 33257 33258 33103 33104 33105 33106 33107 33108 33163 33164 33165 33166 33167 33168 33157 33158 33159 33160 33161 33162 33301 33302 33303 33304 33305 33306 48 32695 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32653 32654 32655 32656 32657 32658 33259 33260 33261 33262 33263 33264 30037 30038 30039 30040 30041 30042 30307 30308 30309 30310 30311 30312 30295 30296 30297 30298 30299 30300 33307 33308 33309 33310 33311 33312 48 32833 32834 32835 32836 32837 32838 32839 32840 32841 32842 32843 32844 32797 32798 32799 32800 32801 32802 33265 33266 33267 33268 33269 33270 32653 32654 32655 32656 32657 32658 32701 32702 32703 32704 32705 32706 32695 32696 32697 32698 32699 32700 33313 33314 33315 33316 33317 33318 48 32965 32966 32967 32968 32969 32970 32971 32972 32973 32974 32975 32976 32929 32930 32931 32932 32933 32934 33271 33272 33273 33274 33275 33276 32797 32798 32799 32800 32801 32802 32839 32840 32841 32842 32843 32844 32833 32834 32835 32836 32837 32838 33319 33320 33321 33322 33323 33324 48 33085 33086 33087 33088 33089 33090 33079 33080 33081 33082 33083 33084 33061 33062 33063 33064 33065 33066 33277 33278 33279 33280 33281 33282 32929 32930 32931 32932 32933 32934 32971 32972 32973 32974 32975 32976 32965 32966 32967 32968 32969 32970 33325 33326 33327 33328 33329 33330 48 4933 4934 4935 4936 4937 4938 33331 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33085 33086 33087 33088 33089 33090 33097 33098 33099 33100 33101 33102 4837 4838 4839 4840 4841 4842 5497 5498 5499 5500 5501 5502 48 1656 1657 1658 1659 1660 1661 5491 5492 5493 5494 5495 5496 4933 4934 4935 4936 4937 4938 33331 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33355 33356 33357 33358 33359 33360 33349 33350 33351 33352 33353 33354 33361 33362 33363 33364 33365 33366 47 33229 33230 33231 33232 33233 33234 33367 33368 33369 33370 33371 33372 33373 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33241 33242 33243 33244 33245 33246 33235 33236 33237 33238 33239 33240 48 1680 1681 1682 1683 1684 1685 33396 33397 33398 33399 33400 33401 33229 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33402 33403 33404 33405 33406 33407 1692 1693 1694 1695 1696 1697 5485 5486 5487 5488 5489 5490 36 33373 33374 33375 33376 33377 33378 33229 33230 33231 33232 33233 33234 33289 33290 33291 33292 33293 33294 33367 33368 33369 33370 33371 33372 33295 33296 33297 33298 33299 33300 33408 33409 33410 33411 33412 33413 48 1668 1669 1670 1671 1672 1673 33414 33415 33416 33417 33418 33419 33289 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33229 33230 33231 33232 33233 33234 33396 33397 33398 33399 33400 33401 1680 1681 1682 1683 1684 1685 5473 5474 5475 5476 5477 5478 48 32617 32618 32619 32620 32621 32622 32629 32630 32631 32632 32633 32634 32623 32624 32625 32626 32627 32628 33420 33421 33422 33423 33424 33425 31417 31418 31419 31420 31421 31422 31429 31430 31431 31432 31433 31434 31405 31406 31407 31408 31409 31410 33426 33427 33428 33429 33430 33431 48 32761 32762 32763 32764 32765 32766 32773 32774 32775 32776 32777 32778 32767 32768 32769 32770 32771 32772 33432 33433 33434 33435 33436 33437 32623 32624 32625 32626 32627 32628 32629 32630 32631 32632 32633 32634 32617 32618 32619 32620 32621 32622 33438 33439 33440 33441 33442 33443 48 32899 32900 32901 32902 32903 32904 32911 32912 32913 32914 32915 32916 32905 32906 32907 32908 32909 32910 33444 33445 33446 33447 33448 33449 32767 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32761 32762 32763 32764 32765 32766 33450 33451 33452 33453 33454 33455 48 33019 33020 33021 33022 33023 33024 33031 33032 33033 33034 33035 33036 33025 33026 33027 33028 33029 33030 33456 33457 33458 33459 33460 33461 32905 32906 32907 32908 32909 32910 32911 32912 32913 32914 32915 32916 32899 32900 32901 32902 32903 32904 33462 33463 33464 33465 33466 33467 48 33115 33116 33117 33118 33119 33120 33127 33128 33129 33130 33131 33132 33121 33122 33123 33124 33125 33126 33468 33469 33470 33471 33472 33473 33025 33026 33027 33028 33029 33030 33031 33032 33033 33034 33035 33036 33019 33020 33021 33022 33023 33024 33474 33475 33476 33477 33478 33479 47 33373 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33480 33481 33482 33483 33484 33485 33121 33122 33123 33124 33125 33126 33127 33128 33129 33130 33131 33132 33115 33116 33117 33118 33119 33120 33486 33487 33488 33489 33490 33491 48 32665 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32617 32618 32619 32620 32621 32622 33426 33427 33428 33429 33430 33431 31405 31406 31407 31408 31409 31410 31711 31712 31713 31714 31715 31716 31699 31700 31701 31702 31703 31704 33492 33493 33494 33495 33496 33497 48 32809 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32761 32762 32763 32764 32765 32766 33438 33439 33440 33441 33442 33443 32617 32618 32619 32620 32621 32622 32671 32672 32673 32674 32675 32676 32665 32666 32667 32668 32669 32670 33498 33499 33500 33501 33502 33503 48 32941 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32899 32900 32901 32902 32903 32904 33450 33451 33452 33453 33454 33455 32761 32762 32763 32764 32765 32766 32815 32816 32817 32818 32819 32820 32809 32810 32811 32812 32813 32814 33504 33505 33506 33507 33508 33509 48 33061 33062 33063 33064 33065 33066 33055 33056 33057 33058 33059 33060 33019 33020 33021 33022 33023 33024 33462 33463 33464 33465 33466 33467 32899 32900 32901 32902 32903 32904 32947 32948 32949 32950 32951 32952 32941 32942 32943 32944 32945 32946 33510 33511 33512 33513 33514 33515 48 33157 33158 33159 33160 33161 33162 33151 33152 33153 33154 33155 33156 33115 33116 33117 33118 33119 33120 33474 33475 33476 33477 33478 33479 33019 33020 33021 33022 33023 33024 33055 33056 33057 33058 33059 33060 33061 33062 33063 33064 33065 33066 33283 33284 33285 33286 33287 33288 48 33289 33290 33291 33292 33293 33294 33408 33409 33410 33411 33412 33413 33373 33374 33375 33376 33377 33378 33486 33487 33488 33489 33490 33491 33115 33116 33117 33118 33119 33120 33151 33152 33153 33154 33155 33156 33157 33158 33159 33160 33161 33162 33301 33302 33303 33304 33305 33306 48 32695 32696 32697 32698 32699 32700 32689 32690 32691 32692 32693 32694 32665 32666 32667 32668 32669 32670 33492 33493 33494 33495 33496 33497 31699 31700 31701 31702 31703 31704 31981 31982 31983 31984 31985 31986 30295 30296 30297 30298 30299 30300 33307 33308 33309 33310 33311 33312 48 32833 32834 32835 32836 32837 32838 32827 32828 32829 32830 32831 32832 32809 32810 32811 32812 32813 32814 33498 33499 33500 33501 33502 33503 32665 32666 32667 32668 32669 32670 32689 32690 32691 32692 32693 32694 32695 32696 32697 32698 32699 32700 33313 33314 33315 33316 33317 33318 48 32965 32966 32967 32968 32969 32970 32959 32960 32961 32962 32963 32964 32941 32942 32943 32944 32945 32946 33504 33505 33506 33507 33508 33509 32809 32810 32811 32812 32813 32814 32827 32828 32829 32830 32831 32832 32833 32834 32835 32836 32837 32838 33319 33320 33321 33322 33323 33324 48 33085 33086 33087 33088 33089 33090 33079 33080 33081 33082 33083 33084 33061 33062 33063 33064 33065 33066 33510 33511 33512 33513 33514 33515 32941 32942 32943 32944 32945 32946 32959 32960 32961 32962 32963 32964 32965 32966 32967 32968 32969 32970 33325 33326 33327 33328 33329 33330 48 1704 1705 1706 1707 1708 1709 33193 33194 33195 33196 33197 33198 33169 33170 33171 33172 33173 33174 33516 33517 33518 33519 33520 33521 33061 33062 33063 33064 33065 33066 33079 33080 33081 33082 33083 33084 33085 33086 33087 33088 33089 33090 33522 33523 33524 33525 33526 33527 36 1704 1705 1706 1707 1708 1709 33169 33170 33171 33172 33173 33174 1668 1669 1670 1671 1672 1673 33193 33194 33195 33196 33197 33198 33528 33529 33530 33531 33532 33533 5341 5342 5343 5344 5345 5346 48 32719 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32695 32696 32697 32698 32699 32700 33307 33308 33309 33310 33311 33312 30295 30296 30297 30298 30299 30300 30589 30590 30591 30592 30593 30594 30577 30578 30579 30580 30581 30582 33534 33535 33536 33537 33538 33539 48 32851 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32833 32834 32835 32836 32837 32838 33313 33314 33315 33316 33317 33318 32695 32696 32697 32698 32699 32700 32725 32726 32727 32728 32729 32730 32719 32720 32721 32722 32723 32724 33540 33541 33542 33543 33544 33545 48 32989 32990 32991 32992 32993 32994 33546 33547 33548 33549 33550 33551 32965 32966 32967 32968 32969 32970 33319 33320 33321 33322 33323 33324 32833 32834 32835 32836 32837 32838 32857 32858 32859 32860 32861 32862 32851 32852 32853 32854 32855 32856 33552 33553 33554 33555 33556 33557 48 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33085 33086 33087 33088 33089 33090 33325 33326 33327 33328 33329 33330 32965 32966 32967 32968 32969 32970 33546 33547 33548 33549 33550 33551 32989 32990 32991 32992 32993 32994 33558 33559 33560 33561 33562 33563 48 32737 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32719 32720 32721 32722 32723 32724 33534 33535 33536 33537 33538 33539 30577 30578 30579 30580 30581 30582 30871 30872 30873 30874 30875 30876 30859 30860 30861 30862 30863 30864 33564 33565 33566 33567 33568 33569 48 32875 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32851 32852 32853 32854 32855 32856 33540 33541 33542 33543 33544 33545 32719 32720 32721 32722 32723 32724 32743 32744 32745 32746 32747 32748 32737 32738 32739 32740 32741 32742 33570 33571 33572 33573 33574 33575 48 32983 32984 32985 32986 32987 32988 32995 32996 32997 32998 32999 33000 32989 32990 32991 32992 32993 32994 33552 33553 33554 33555 33556 33557 32851 32852 32853 32854 32855 32856 32881 32882 32883 32884 32885 32886 32875 32876 32877 32878 32879 32880 33576 33577 33578 33579 33580 33581 48 33349 33350 33351 33352 33353 33354 33355 33356 33357 33358 33359 33360 33337 33338 33339 33340 33341 33342 33558 33559 33560 33561 33562 33563 32989 32990 32991 32992 32993 32994 32995 32996 32997 32998 32999 33000 32983 32984 32985 32986 32987 32988 33582 33583 33584 33585 33586 33587 48 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 32467 32468 32469 32470 32471 32472 1518 1519 1520 1521 1522 1523 1536 1537 1538 1539 1540 1541 1530 1531 1532 1533 1534 1535 32491 32492 32493 32494 32495 32496 48 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 32515 32516 32517 32518 32519 32520 1554 1555 1556 1557 1558 1559 1572 1573 1574 1575 1576 1577 1566 1567 1568 1569 1570 1571 32539 32540 32541 32542 32543 32544 48 5149 5150 5151 5152 5153 5154 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 32275 32276 32277 32278 32279 32280 30859 30860 30861 30862 30863 30864 33564 33565 33566 33567 33568 33569 32737 32738 32739 32740 32741 32742 32731 32732 32733 32734 32735 32736 48 5119 5120 5121 5122 5123 5124 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 32731 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 33570 33571 33572 33573 33574 33575 32875 32876 32877 32878 32879 32880 32869 32870 32871 32872 32873 32874 48 5077 5078 5079 5080 5081 5082 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 32869 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 33576 33577 33578 33579 33580 33581 32983 32984 32985 32986 32987 32988 32977 32978 32979 32980 32981 32982 48 1656 1657 1658 1659 1660 1661 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 32977 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 33582 33583 33584 33585 33586 33587 33349 33350 33351 33352 33353 33354 33361 33362 33363 33364 33365 33366 48 5017 5018 5019 5020 5021 5022 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 32251 32252 32253 32254 32255 32256 30577 30578 30579 30580 30581 30582 33534 33535 33536 33537 33538 33539 32719 32720 32721 32722 32723 32724 32713 32714 32715 32716 32717 32718 48 4987 4988 4989 4990 4991 4992 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 32713 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 33540 33541 33542 33543 33544 33545 32851 32852 32853 32854 32855 32856 32845 32846 32847 32848 32849 32850 48 4945 4946 4947 4948 4949 4950 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 32845 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 33552 33553 33554 33555 33556 33557 32989 32990 32991 32992 32993 32994 33001 33002 33003 33004 33005 33006 48 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 33001 33002 33003 33004 33005 33006 32989 32990 32991 32992 32993 32994 33558 33559 33560 33561 33562 33563 33337 33338 33339 33340 33341 33342 33331 33332 33333 33334 33335 33336 48 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 32707 32708 32709 32710 32711 32712 32695 32696 32697 32698 32699 32700 33313 33314 33315 33316 33317 33318 32833 32834 32835 32836 32837 32838 32863 32864 32865 32866 32867 32868 48 4837 4838 4839 4840 4841 4842 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 33588 33589 33590 33591 33592 33593 32965 32966 32967 32968 32969 32970 33325 33326 33327 33328 33329 33330 33085 33086 33087 33088 33089 33090 33097 33098 33099 33100 33101 33102 36 33085 33086 33087 33088 33089 33090 4837 4838 4839 4840 4841 4842 1704 1705 1706 1707 1708 1709 33097 33098 33099 33100 33101 33102 4849 4850 4851 4852 4853 4854 33522 33523 33524 33525 33526 33527 48 32653 32654 32655 32656 32657 32658 33259 33260 33261 33262 33263 33264 30037 30038 30039 30040 30041 30042 32365 32366 32367 32368 32369 32370 31699 31700 31701 31702 31703 31704 33492 33493 33494 33495 33496 33497 32665 32666 32667 32668 32669 32670 32659 32660 32661 32662 32663 32664 48 32797 32798 32799 32800 32801 32802 33265 33266 33267 33268 33269 33270 32653 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 33498 33499 33500 33501 33502 33503 32809 32810 32811 32812 32813 32814 32803 32804 32805 32806 32807 32808 48 32929 32930 32931 32932 32933 32934 33271 33272 33273 33274 33275 33276 32797 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 33504 33505 33506 33507 33508 33509 32941 32942 32943 32944 32945 32946 32935 32936 32937 32938 32939 32940 36 33169 33170 33171 33172 33173 33174 1716 1717 1718 1719 1720 1721 1668 1669 1670 1671 1672 1673 33187 33188 33189 33190 33191 33192 4729 4730 4731 4732 4733 4734 33528 33529 33530 33531 33532 33533 48 4669 4670 4671 4672 4673 4674 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 33594 33595 33596 33597 33598 33599 32929 32930 32931 32932 32933 32934 33277 33278 33279 33280 33281 33282 33061 33062 33063 33064 33065 33066 33073 33074 33075 33076 33077 33078 48 1668 1669 1670 1671 1672 1673 33414 33415 33416 33417 33418 33419 33289 33290 33291 33292 33293 33294 33301 33302 33303 33304 33305 33306 33157 33158 33159 33160 33161 33162 33175 33176 33177 33178 33179 33180 33169 33170 33171 33172 33173 33174 33528 33529 33530 33531 33532 33533 48 1716 1717 1718 1719 1720 1721 33187 33188 33189 33190 33191 33192 33169 33170 33171 33172 33173 33174 33516 33517 33518 33519 33520 33521 33061 33062 33063 33064 33065 33066 33073 33074 33075 33076 33077 33078 4669 4670 4671 4672 4673 4674 4681 4682 4683 4684 4685 4686 36 33157 33158 33159 33160 33161 33162 33061 33062 33063 33064 33065 33066 33169 33170 33171 33172 33173 33174 33283 33284 33285 33286 33287 33288 33516 33517 33518 33519 33520 33521 33175 33176 33177 33178 33179 33180 36 32941 32942 32943 32944 32945 32946 32929 32930 32931 32932 32933 32934 33061 33062 33063 33064 33065 33066 32935 32936 32937 32938 32939 32940 33277 33278 33279 33280 33281 33282 33510 33511 33512 33513 33514 33515 48 32605 32606 32607 32608 32609 32610 33199 33200 33201 33202 33203 33204 29779 29780 29781 29782 29783 29784 32413 32414 32415 32416 32417 32418 31405 31406 31407 31408 31409 31410 33426 33427 33428 33429 33430 33431 32617 32618 32619 32620 32621 32622 32611 32612 32613 32614 32615 32616 48 32749 32750 32751 32752 32753 32754 33205 33206 33207 33208 33209 33210 32605 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 33438 33439 33440 33441 33442 33443 32761 32762 32763 32764 32765 32766 32755 32756 32757 32758 32759 32760 48 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 32647 32648 32649 32650 32651 32652 32605 32606 32607 32608 32609 32610 33205 33206 33207 33208 33209 33210 32749 32750 32751 32752 32753 32754 32791 32792 32793 32794 32795 32796 48 32887 32888 32889 32890 32891 32892 33211 33212 33213 33214 33215 33216 32749 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 33450 33451 33452 33453 33454 33455 32899 32900 32901 32902 32903 32904 32893 32894 32895 32896 32897 32898 48 33007 33008 33009 33010 33011 33012 33217 33218 33219 33220 33221 33222 32887 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 33462 33463 33464 33465 33466 33467 33019 33020 33021 33022 33023 33024 33013 33014 33015 33016 33017 33018 48 33103 33104 33105 33106 33107 33108 33223 33224 33225 33226 33227 33228 33007 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33474 33475 33476 33477 33478 33479 33115 33116 33117 33118 33119 33120 33109 33110 33111 33112 33113 33114 48 1728 1729 1730 1731 1732 1733 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 33049 33050 33051 33052 33053 33054 33007 33008 33009 33010 33011 33012 33223 33224 33225 33226 33227 33228 33103 33104 33105 33106 33107 33108 33145 33146 33147 33148 33149 33150 48 33229 33230 33231 33232 33233 33234 33253 33254 33255 33256 33257 33258 33103 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33486 33487 33488 33489 33490 33491 33373 33374 33375 33376 33377 33378 33367 33368 33369 33370 33371 33372 48 1680 1681 1682 1683 1684 1685 4333 4334 4335 4336 4337 4338 1728 1729 1730 1731 1732 1733 33145 33146 33147 33148 33149 33150 33103 33104 33105 33106 33107 33108 33253 33254 33255 33256 33257 33258 33229 33230 33231 33232 33233 33234 33396 33397 33398 33399 33400 33401 48 32479 32480 32481 32482 32483 32484 32563 32564 32565 32566 32567 32568 22555 22556 22557 22558 22559 22560 32461 32462 32463 32464 32465 32466 31417 31418 31419 31420 31421 31422 33420 33421 33422 33423 33424 33425 32623 32624 32625 32626 32627 32628 32635 32636 32637 32638 32639 32640 48 32503 32504 32505 32506 32507 32508 32569 32570 32571 32572 32573 32574 32479 32480 32481 32482 32483 32484 32635 32636 32637 32638 32639 32640 32623 32624 32625 32626 32627 32628 33432 33433 33434 33435 33436 33437 32767 32768 32769 32770 32771 32772 32779 32780 32781 32782 32783 32784 48 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 32485 32486 32487 32488 32489 32490 32479 32480 32481 32482 32483 32484 32569 32570 32571 32572 32573 32574 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 48 32581 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32503 32504 32505 32506 32507 32508 32779 32780 32781 32782 32783 32784 32767 32768 32769 32770 32771 32772 33444 33445 33446 33447 33448 33449 32905 32906 32907 32908 32909 32910 32917 32918 32919 32920 32921 32922 48 32527 32528 32529 32530 32531 32532 32593 32594 32595 32596 32597 32598 32581 32582 32583 32584 32585 32586 32917 32918 32919 32920 32921 32922 32905 32906 32907 32908 32909 32910 33456 33457 33458 33459 33460 33461 33025 33026 33027 33028 33029 33030 33037 33038 33039 33040 33041 33042 48 32545 32546 32547 32548 32549 32550 32599 32600 32601 32602 32603 32604 32527 32528 32529 32530 32531 32532 33037 33038 33039 33040 33041 33042 33025 33026 33027 33028 33029 33030 33468 33469 33470 33471 33472 33473 33121 33122 33123 33124 33125 33126 33133 33134 33135 33136 33137 33138 48 1740 1741 1742 1743 1744 1745 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 32533 32534 32535 32536 32537 32538 32527 32528 32529 32530 32531 32532 32599 32600 32601 32602 32603 32604 32545 32546 32547 32548 32549 32550 32557 32558 32559 32560 32561 32562 47 33241 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 32545 32546 32547 32548 32549 32550 33133 33134 33135 33136 33137 33138 33121 33122 33123 33124 33125 33126 33480 33481 33482 33483 33484 33485 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 48 1692 1693 1694 1695 1696 1697 4072 4073 4074 4075 4076 4077 1740 1741 1742 1743 1744 1745 32557 32558 32559 32560 32561 32562 32545 32546 32547 32548 32549 32550 33247 33248 33249 33250 33251 33252 33241 33242 33243 33244 33245 33246 33402 33403 33404 33405 33406 33407 48 1926 1927 1928 1929 1930 1931 33600 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 1590 1591 1592 1593 1594 1595 33618 33619 33620 33621 33622 33623 3340 3341 3342 3343 3344 3345 4066 4067 4068 4069 4070 4071 48 1878 1879 1880 1881 1882 1883 33624 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 1578 1579 1580 1581 1582 1583 33642 33643 33644 33645 33646 33647 3262 3263 3264 3265 3266 3267 4060 4061 4062 4063 4064 4065 48 1830 1831 1832 1833 1834 1835 33648 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 1596 1597 1598 1599 1600 1601 33666 33667 33668 33669 33670 33671 3250 3251 3252 3253 3254 3255 4054 4055 4056 4057 4058 4059 48 1758 1759 1760 1761 1762 1763 33672 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 1620 1621 1622 1623 1624 1625 33690 33691 33692 33693 33694 33695 3280 3281 3282 3283 3284 3285 4048 4049 4050 4051 4052 4053 48 1746 1747 1748 1749 1750 1751 33696 33697 33698 33699 33700 33701 33702 33703 33704 33705 33706 33707 33708 33709 33710 33711 33712 33713 1608 1609 1610 1611 1612 1613 33714 33715 33716 33717 33718 33719 3298 3299 3300 3301 3302 3303 4042 4043 4044 4045 4046 4047 48 33630 33631 33632 33633 33634 33635 33720 33721 33722 33723 33724 33725 33606 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 1590 1591 1592 1593 1594 1595 1584 1585 1586 1587 1588 1589 1578 1579 1580 1581 1582 1583 33636 33637 33638 33639 33640 33641 48 33654 33655 33656 33657 33658 33659 33726 33727 33728 33729 33730 33731 33630 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 1578 1579 1580 1581 1582 1583 1602 1603 1604 1605 1606 1607 1596 1597 1598 1599 1600 1601 33660 33661 33662 33663 33664 33665 48 33678 33679 33680 33681 33682 33683 33732 33733 33734 33735 33736 33737 33654 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 1596 1597 1598 1599 1600 1601 1626 1627 1628 1629 1630 1631 1620 1621 1622 1623 1624 1625 33684 33685 33686 33687 33688 33689 48 33702 33703 33704 33705 33706 33707 33738 33739 33740 33741 33742 33743 33678 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 1620 1621 1622 1623 1624 1625 1614 1615 1616 1617 1618 1619 1608 1609 1610 1611 1612 1613 33708 33709 33710 33711 33712 33713 36 33756 33757 33758 33759 33760 33761 33762 33763 33764 33765 33766 33767 33744 33745 33746 33747 33748 33749 33768 33769 33770 33771 33772 33773 33774 33775 33776 33777 33778 33779 33750 33751 33752 33753 33754 33755 48 2322 2323 2324 2325 2326 2327 33780 33781 33782 33783 33784 33785 33744 33745 33746 33747 33748 33749 33774 33775 33776 33777 33778 33779 33762 33763 33764 33765 33766 33767 33786 33787 33788 33789 33790 33791 1974 1975 1976 1977 1978 1979 4006 4007 4008 4009 4010 4011 48 2608 2609 2610 2611 2612 2613 33798 33799 33800 33801 33802 33803 33792 33793 33794 33795 33796 33797 33804 33805 33806 33807 33808 33809 33744 33745 33746 33747 33748 33749 33780 33781 33782 33783 33784 33785 2322 2323 2324 2325 2326 2327 3946 3947 3948 3949 3950 3951 36 33792 33793 33794 33795 33796 33797 2608 2609 2610 2611 2612 2613 2848 2849 2850 2851 2852 2853 33798 33799 33800 33801 33802 33803 3910 3911 3912 3913 3914 3915 33810 33811 33812 33813 33814 33815 36 33822 33823 33824 33825 33826 33827 2848 2849 2850 2851 2852 2853 2974 2975 2976 2977 2978 2979 33828 33829 33830 33831 33832 33833 3874 3875 3876 3877 3878 3879 33816 33817 33818 33819 33820 33821 48 3160 3161 3162 3163 3164 3165 33834 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33822 33823 33824 33825 33826 33827 33816 33817 33818 33819 33820 33821 2974 2975 2976 2977 2978 2979 3838 3839 3840 3841 3842 3843 36 33840 33841 33842 33843 33844 33845 3160 3161 3162 3163 3164 3165 3412 3413 3414 3415 3416 3417 33834 33835 33836 33837 33838 33839 3802 3803 3804 3805 3806 3807 33852 33853 33854 33855 33856 33857 48 33858 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33606 33607 33608 33609 33610 33611 33894 33895 33896 33897 33898 33899 48 2232 2233 2234 2235 2236 2237 33900 33901 33902 33903 33904 33905 33858 33859 33860 33861 33862 33863 33894 33895 33896 33897 33898 33899 33606 33607 33608 33609 33610 33611 33600 33601 33602 33603 33604 33605 1926 1927 1928 1929 1930 1931 3994 3995 3996 3997 3998 3999 48 33906 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33870 33871 33872 33873 33874 33875 33864 33865 33866 33867 33868 33869 33858 33859 33860 33861 33862 33863 33930 33931 33932 33933 33934 33935 48 2506 2507 2508 2509 2510 2511 33936 33937 33938 33939 33940 33941 33906 33907 33908 33909 33910 33911 33930 33931 33932 33933 33934 33935 33858 33859 33860 33861 33862 33863 33900 33901 33902 33903 33904 33905 2232 2233 2234 2235 2236 2237 3940 3941 3942 3943 3944 3945 48 33942 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33918 33919 33920 33921 33922 33923 33912 33913 33914 33915 33916 33917 33906 33907 33908 33909 33910 33911 33954 33955 33956 33957 33958 33959 2824 2825 2826 2827 2828 2829 33960 33961 33962 33963 33964 33965 36 33906 33907 33908 33909 33910 33911 2506 2507 2508 2509 2510 2511 2824 2825 2826 2827 2828 2829 33936 33937 33938 33939 33940 33941 3904 3905 3906 3907 3908 3909 33954 33955 33956 33957 33958 33959 36 33942 33943 33944 33945 33946 33947 2824 2825 2826 2827 2828 2829 33966 33967 33968 33969 33970 33971 33960 33961 33962 33963 33964 33965 33978 33979 33980 33981 33982 33983 33972 33973 33974 33975 33976 33977 36 33966 33967 33968 33969 33970 33971 2824 2825 2826 2827 2828 2829 2944 2945 2946 2947 2948 2949 33978 33979 33980 33981 33982 33983 3868 3869 3870 3871 3872 3873 33984 33985 33986 33987 33988 33989 48 3130 3131 3132 3133 3134 3135 33990 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 33966 33967 33968 33969 33970 33971 33984 33985 33986 33987 33988 33989 2944 2945 2946 2947 2948 2949 3832 3833 3834 3835 3836 3837 36 33996 33997 33998 33999 34000 34001 3130 3131 3132 3133 3134 3135 3394 3395 3396 3397 3398 3399 33990 33991 33992 33993 33994 33995 3796 3797 3798 3799 3800 3801 34008 34009 34010 34011 34012 34013 48 34014 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 33630 33631 33632 33633 33634 33635 34050 34051 34052 34053 34054 34055 48 2184 2185 2186 2187 2188 2189 34056 34057 34058 34059 34060 34061 34014 34015 34016 34017 34018 34019 34050 34051 34052 34053 34054 34055 33630 33631 33632 33633 33634 33635 33624 33625 33626 33627 33628 33629 1878 1879 1880 1881 1882 1883 3964 3965 3966 3967 3968 3969 48 34062 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34026 34027 34028 34029 34030 34031 34020 34021 34022 34023 34024 34025 34014 34015 34016 34017 34018 34019 34086 34087 34088 34089 34090 34091 48 2458 2459 2460 2461 2462 2463 34092 34093 34094 34095 34096 34097 34062 34063 34064 34065 34066 34067 34086 34087 34088 34089 34090 34091 34014 34015 34016 34017 34018 34019 34056 34057 34058 34059 34060 34061 2184 2185 2186 2187 2188 2189 3934 3935 3936 3937 3938 3939 48 34098 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34074 34075 34076 34077 34078 34079 34068 34069 34070 34071 34072 34073 34062 34063 34064 34065 34066 34067 34122 34123 34124 34125 34126 34127 48 2734 2735 2736 2737 2738 2739 34128 34129 34130 34131 34132 34133 34098 34099 34100 34101 34102 34103 34122 34123 34124 34125 34126 34127 34062 34063 34064 34065 34066 34067 34092 34093 34094 34095 34096 34097 2458 2459 2460 2461 2462 2463 3898 3899 3900 3901 3902 3903 36 34110 34111 34112 34113 34114 34115 34098 34099 34100 34101 34102 34103 34134 34135 34136 34137 34138 34139 34104 34105 34106 34107 34108 34109 34146 34147 34148 34149 34150 34151 34140 34141 34142 34143 34144 34145 48 2914 2915 2916 2917 2918 2919 34152 34153 34154 34155 34156 34157 34134 34135 34136 34137 34138 34139 34146 34147 34148 34149 34150 34151 34098 34099 34100 34101 34102 34103 34128 34129 34130 34131 34132 34133 2734 2735 2736 2737 2738 2739 3862 3863 3864 3865 3866 3867 48 3100 3101 3102 3103 3104 3105 34158 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34134 34135 34136 34137 34138 34139 34152 34153 34154 34155 34156 34157 2914 2915 2916 2917 2918 2919 3826 3827 3828 3829 3830 3831 36 34164 34165 34166 34167 34168 34169 3100 3101 3102 3103 3104 3105 3376 3377 3378 3379 3380 3381 34158 34159 34160 34161 34162 34163 3790 3791 3792 3793 3794 3795 34176 34177 34178 34179 34180 34181 48 34182 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 33654 33655 33656 33657 33658 33659 34218 34219 34220 34221 34222 34223 48 2136 2137 2138 2139 2140 2141 34224 34225 34226 34227 34228 34229 34182 34183 34184 34185 34186 34187 34218 34219 34220 34221 34222 34223 33654 33655 33656 33657 33658 33659 33648 33649 33650 33651 33652 33653 1830 1831 1832 1833 1834 1835 3970 3971 3972 3973 3974 3975 48 34230 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34194 34195 34196 34197 34198 34199 34188 34189 34190 34191 34192 34193 34182 34183 34184 34185 34186 34187 34254 34255 34256 34257 34258 34259 48 2410 2411 2412 2413 2414 2415 34260 34261 34262 34263 34264 34265 34230 34231 34232 34233 34234 34235 34254 34255 34256 34257 34258 34259 34182 34183 34184 34185 34186 34187 34224 34225 34226 34227 34228 34229 2136 2137 2138 2139 2140 2141 3928 3929 3930 3931 3932 3933 48 34266 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34242 34243 34244 34245 34246 34247 34236 34237 34238 34239 34240 34241 34230 34231 34232 34233 34234 34235 34290 34291 34292 34293 34294 34295 48 2686 2687 2688 2689 2690 2691 34296 34297 34298 34299 34300 34301 34266 34267 34268 34269 34270 34271 34290 34291 34292 34293 34294 34295 34230 34231 34232 34233 34234 34235 34260 34261 34262 34263 34264 34265 2410 2411 2412 2413 2414 2415 3892 3893 3894 3895 3896 3897 36 34278 34279 34280 34281 34282 34283 34266 34267 34268 34269 34270 34271 34302 34303 34304 34305 34306 34307 34272 34273 34274 34275 34276 34277 34314 34315 34316 34317 34318 34319 34308 34309 34310 34311 34312 34313 48 2884 2885 2886 2887 2888 2889 34320 34321 34322 34323 34324 34325 34302 34303 34304 34305 34306 34307 34314 34315 34316 34317 34318 34319 34266 34267 34268 34269 34270 34271 34296 34297 34298 34299 34300 34301 2686 2687 2688 2689 2690 2691 3856 3857 3858 3859 3860 3861 48 3070 3071 3072 3073 3074 3075 34326 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34302 34303 34304 34305 34306 34307 34320 34321 34322 34323 34324 34325 2884 2885 2886 2887 2888 2889 3820 3821 3822 3823 3824 3825 36 34332 34333 34334 34335 34336 34337 3070 3071 3072 3073 3074 3075 3322 3323 3324 3325 3326 3327 34326 34327 34328 34329 34330 34331 3784 3785 3786 3787 3788 3789 34344 34345 34346 34347 34348 34349 48 34350 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 33678 33679 33680 33681 33682 33683 34386 34387 34388 34389 34390 34391 48 2064 2065 2066 2067 2068 2069 34392 34393 34394 34395 34396 34397 34350 34351 34352 34353 34354 34355 34386 34387 34388 34389 34390 34391 33678 33679 33680 33681 33682 33683 33672 33673 33674 33675 33676 33677 1758 1759 1760 1761 1762 1763 3952 3953 3954 3955 3956 3957 48 34398 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34362 34363 34364 34365 34366 34367 34356 34357 34358 34359 34360 34361 34350 34351 34352 34353 34354 34355 34422 34423 34424 34425 34426 34427 48 2286 2287 2288 2289 2290 2291 34428 34429 34430 34431 34432 34433 34398 34399 34400 34401 34402 34403 34422 34423 34424 34425 34426 34427 34350 34351 34352 34353 34354 34355 34392 34393 34394 34395 34396 34397 2064 2065 2066 2067 2068 2069 3916 3917 3918 3919 3920 3921 48 34434 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34410 34411 34412 34413 34414 34415 34404 34405 34406 34407 34408 34409 34398 34399 34400 34401 34402 34403 34458 34459 34460 34461 34462 34463 48 2560 2561 2562 2563 2564 2565 34464 34465 34466 34467 34468 34469 34434 34435 34436 34437 34438 34439 34458 34459 34460 34461 34462 34463 34398 34399 34400 34401 34402 34403 34428 34429 34430 34431 34432 34433 2286 2287 2288 2289 2290 2291 3880 3881 3882 3883 3884 3885 36 34446 34447 34448 34449 34450 34451 34434 34435 34436 34437 34438 34439 34470 34471 34472 34473 34474 34475 34440 34441 34442 34443 34444 34445 34482 34483 34484 34485 34486 34487 34476 34477 34478 34479 34480 34481 48 2788 2789 2790 2791 2792 2793 34488 34489 34490 34491 34492 34493 34470 34471 34472 34473 34474 34475 34482 34483 34484 34485 34486 34487 34434 34435 34436 34437 34438 34439 34464 34465 34466 34467 34468 34469 2560 2561 2562 2563 2564 2565 3844 3845 3846 3847 3848 3849 48 3028 3029 3030 3031 3032 3033 34494 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34470 34471 34472 34473 34474 34475 34488 34489 34490 34491 34492 34493 2788 2789 2790 2791 2792 2793 3808 3809 3810 3811 3812 3813 48 3214 3215 3216 3217 3218 3219 34512 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34500 34501 34502 34503 34504 34505 34494 34495 34496 34497 34498 34499 3028 3029 3030 3031 3032 3033 3772 3773 3774 3775 3776 3777 48 21553 21554 21555 21556 21557 21558 32419 32420 32421 32422 32423 32424 30895 30896 30897 30898 30899 30900 30889 30890 30891 30892 30893 30894 30883 30884 30885 30886 30887 30888 34530 34531 34532 34533 34534 34535 33702 33703 33704 33705 33706 33707 34536 34537 34538 34539 34540 34541 48 2052 2053 2054 2055 2056 2057 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 34536 34537 34538 34539 34540 34541 33702 33703 33704 33705 33706 33707 33696 33697 33698 33699 33700 33701 1746 1747 1748 1749 1750 1751 3958 3959 3960 3961 3962 3963 48 29545 29546 29547 29548 29549 29550 32371 32372 32373 32374 32375 32376 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30895 30896 30897 30898 30899 30900 32419 32420 32421 32422 32423 32424 21553 21554 21555 21556 21557 21558 29551 29552 29553 29554 29555 29556 48 2274 2275 2276 2277 2278 2279 34542 34543 34544 34545 34546 34547 29545 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 21553 21554 21555 21556 21557 21558 21547 21548 21549 21550 21551 21552 2052 2053 2054 2055 2056 2057 3922 3923 3924 3925 3926 3927 48 29803 29804 29805 29806 29807 29808 32317 32318 32319 32320 32321 32322 31441 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 30913 30914 30915 30916 30917 30918 32371 32372 32373 32374 32375 32376 29545 29546 29547 29548 29549 29550 29809 29810 29811 29812 29813 29814 48 2548 2549 2550 2551 2552 2553 34548 34549 34550 34551 34552 34553 29803 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29545 29546 29547 29548 29549 29550 34542 34543 34544 34545 34546 34547 2274 2275 2276 2277 2278 2279 3886 3887 3888 3889 3890 3891 36 31441 31442 31443 31444 31445 31446 29803 29804 29805 29806 29807 29808 30061 30062 30063 30064 30065 30066 32317 32318 32319 32320 32321 32322 30067 30068 30069 30070 30071 30072 31723 31724 31725 31726 31727 31728 48 2776 2777 2778 2779 2780 2781 34554 34555 34556 34557 34558 34559 30061 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 29803 29804 29805 29806 29807 29808 34548 34549 34550 34551 34552 34553 2548 2549 2550 2551 2552 2553 3850 3851 3852 3853 3854 3855 48 3016 3017 3018 3019 3020 3021 32245 32246 32247 32248 32249 32250 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30061 30062 30063 30064 30065 30066 34554 34555 34556 34557 34558 34559 2776 2777 2778 2779 2780 2781 3814 3815 3816 3817 3818 3819 48 3202 3203 3204 3205 3206 3207 32269 32270 32271 32272 32273 32274 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30319 30320 30321 30322 30323 30324 32245 32246 32247 32248 32249 32250 3016 3017 3018 3019 3020 3021 3778 3779 3780 3781 3782 3783 48 34014 34015 34016 34017 34018 34019 34560 34561 34562 34563 34564 34565 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 34566 34567 34568 34569 34570 34571 33630 33631 33632 33633 33634 33635 34050 34051 34052 34053 34054 34055 48 34182 34183 34184 34185 34186 34187 34572 34573 34574 34575 34576 34577 34014 34015 34016 34017 34018 34019 34050 34051 34052 34053 34054 34055 33630 33631 33632 33633 33634 33635 33726 33727 33728 33729 33730 33731 33654 33655 33656 33657 33658 33659 34218 34219 34220 34221 34222 34223 48 34350 34351 34352 34353 34354 34355 34578 34579 34580 34581 34582 34583 34182 34183 34184 34185 34186 34187 34218 34219 34220 34221 34222 34223 33654 33655 33656 33657 33658 33659 33732 33733 33734 33735 33736 33737 33678 33679 33680 33681 33682 33683 34386 34387 34388 34389 34390 34391 48 21553 21554 21555 21556 21557 21558 34584 34585 34586 34587 34588 34589 34350 34351 34352 34353 34354 34355 34386 34387 34388 34389 34390 34391 33678 33679 33680 33681 33682 33683 33738 33739 33740 33741 33742 33743 33702 33703 33704 33705 33706 33707 34536 34537 34538 34539 34540 34541 48 34062 34063 34064 34065 34066 34067 34590 34591 34592 34593 34594 34595 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33870 33871 33872 33873 33874 33875 34560 34561 34562 34563 34564 34565 34014 34015 34016 34017 34018 34019 34086 34087 34088 34089 34090 34091 48 34230 34231 34232 34233 34234 34235 34596 34597 34598 34599 34600 34601 34062 34063 34064 34065 34066 34067 34086 34087 34088 34089 34090 34091 34014 34015 34016 34017 34018 34019 34572 34573 34574 34575 34576 34577 34182 34183 34184 34185 34186 34187 34254 34255 34256 34257 34258 34259 48 34398 34399 34400 34401 34402 34403 34602 34603 34604 34605 34606 34607 34230 34231 34232 34233 34234 34235 34254 34255 34256 34257 34258 34259 34182 34183 34184 34185 34186 34187 34578 34579 34580 34581 34582 34583 34350 34351 34352 34353 34354 34355 34422 34423 34424 34425 34426 34427 48 29545 29546 29547 29548 29549 29550 34608 34609 34610 34611 34612 34613 34398 34399 34400 34401 34402 34403 34422 34423 34424 34425 34426 34427 34350 34351 34352 34353 34354 34355 34584 34585 34586 34587 34588 34589 21553 21554 21555 21556 21557 21558 29551 29552 29553 29554 29555 29556 48 34098 34099 34100 34101 34102 34103 34614 34615 34616 34617 34618 34619 2824 2825 2826 2827 2828 2829 34620 34621 34622 34623 34624 34625 33918 33919 33920 33921 33922 33923 34590 34591 34592 34593 34594 34595 34062 34063 34064 34065 34066 34067 34122 34123 34124 34125 34126 34127 48 34266 34267 34268 34269 34270 34271 34626 34627 34628 34629 34630 34631 34098 34099 34100 34101 34102 34103 34122 34123 34124 34125 34126 34127 34062 34063 34064 34065 34066 34067 34596 34597 34598 34599 34600 34601 34230 34231 34232 34233 34234 34235 34290 34291 34292 34293 34294 34295 48 34434 34435 34436 34437 34438 34439 34632 34633 34634 34635 34636 34637 34266 34267 34268 34269 34270 34271 34290 34291 34292 34293 34294 34295 34230 34231 34232 34233 34234 34235 34602 34603 34604 34605 34606 34607 34398 34399 34400 34401 34402 34403 34458 34459 34460 34461 34462 34463 48 29803 29804 29805 29806 29807 29808 34638 34639 34640 34641 34642 34643 34434 34435 34436 34437 34438 34439 34458 34459 34460 34461 34462 34463 34398 34399 34400 34401 34402 34403 34608 34609 34610 34611 34612 34613 29545 29546 29547 29548 29549 29550 29809 29810 29811 29812 29813 29814 48 34134 34135 34136 34137 34138 34139 34644 34645 34646 34647 34648 34649 33966 33967 33968 33969 33970 33971 33978 33979 33980 33981 33982 33983 2824 2825 2826 2827 2828 2829 34614 34615 34616 34617 34618 34619 34098 34099 34100 34101 34102 34103 34146 34147 34148 34149 34150 34151 48 34302 34303 34304 34305 34306 34307 34650 34651 34652 34653 34654 34655 34134 34135 34136 34137 34138 34139 34146 34147 34148 34149 34150 34151 34098 34099 34100 34101 34102 34103 34626 34627 34628 34629 34630 34631 34266 34267 34268 34269 34270 34271 34314 34315 34316 34317 34318 34319 48 34470 34471 34472 34473 34474 34475 34656 34657 34658 34659 34660 34661 34302 34303 34304 34305 34306 34307 34314 34315 34316 34317 34318 34319 34266 34267 34268 34269 34270 34271 34632 34633 34634 34635 34636 34637 34434 34435 34436 34437 34438 34439 34482 34483 34484 34485 34486 34487 48 30061 30062 30063 30064 30065 30066 34662 34663 34664 34665 34666 34667 34470 34471 34472 34473 34474 34475 34482 34483 34484 34485 34486 34487 34434 34435 34436 34437 34438 34439 34638 34639 34640 34641 34642 34643 29803 29804 29805 29806 29807 29808 30067 30068 30069 30070 30071 30072 34 34674 34675 34676 34677 34678 34679 2022 2023 2024 2025 2026 2027 2346 2347 2348 2349 34680 34681 34682 34683 34684 34685 3640 3641 3642 3643 3644 3645 34668 34669 34670 34671 34672 34673 46 33744 33745 33746 33747 33748 33749 34686 34687 34688 34689 34690 34691 2346 2347 2348 2349 34668 34669 34670 34671 34672 34673 34674 34675 34676 34677 34678 34679 34692 34693 34694 34695 34696 34697 33756 33757 33758 33759 33760 33761 33750 33751 33752 33753 33754 33755 48 33870 33871 33872 33873 33874 33875 34698 34699 34700 34701 34702 34703 33744 33745 33746 33747 33748 33749 33750 33751 33752 33753 33754 33755 33756 33757 33758 33759 33760 33761 34704 34705 34706 34707 34708 34709 33882 33883 33884 33885 33886 33887 33876 33877 33878 33879 33880 33881 48 34026 34027 34028 34029 34030 34031 34710 34711 34712 34713 34714 34715 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 34716 34717 34718 34719 34720 34721 34038 34039 34040 34041 34042 34043 34032 34033 34034 34035 34036 34037 48 34194 34195 34196 34197 34198 34199 34722 34723 34724 34725 34726 34727 34026 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34728 34729 34730 34731 34732 34733 34206 34207 34208 34209 34210 34211 34200 34201 34202 34203 34204 34205 48 34362 34363 34364 34365 34366 34367 34734 34735 34736 34737 34738 34739 34194 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34740 34741 34742 34743 34744 34745 34374 34375 34376 34377 34378 34379 34368 34369 34370 34371 34372 34373 48 30895 30896 30897 30898 30899 30900 34746 34747 34748 34749 34750 34751 34362 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34752 34753 34754 34755 34756 34757 30883 30884 30885 30886 30887 30888 30889 30890 30891 30892 30893 30894 46 33792 33793 33794 33795 33796 33797 34758 34759 34760 34761 34762 34763 2620 2621 2622 2623 2624 2625 3592 3593 3594 3595 3596 3597 2346 2347 2348 2349 34686 34687 34688 34689 34690 34691 33744 33745 33746 33747 33748 33749 33804 33805 33806 33807 33808 33809 48 33918 33919 33920 33921 33922 33923 34764 34765 34766 34767 34768 34769 33792 33793 33794 33795 33796 33797 33804 33805 33806 33807 33808 33809 33744 33745 33746 33747 33748 33749 34698 34699 34700 34701 34702 34703 33870 33871 33872 33873 33874 33875 33924 33925 33926 33927 33928 33929 48 34074 34075 34076 34077 34078 34079 34770 34771 34772 34773 34774 34775 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33870 33871 33872 33873 33874 33875 34710 34711 34712 34713 34714 34715 34026 34027 34028 34029 34030 34031 34080 34081 34082 34083 34084 34085 48 34242 34243 34244 34245 34246 34247 34776 34777 34778 34779 34780 34781 34074 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34026 34027 34028 34029 34030 34031 34722 34723 34724 34725 34726 34727 34194 34195 34196 34197 34198 34199 34248 34249 34250 34251 34252 34253 48 34410 34411 34412 34413 34414 34415 34782 34783 34784 34785 34786 34787 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34194 34195 34196 34197 34198 34199 34734 34735 34736 34737 34738 34739 34362 34363 34364 34365 34366 34367 34416 34417 34418 34419 34420 34421 48 30913 30914 30915 30916 30917 30918 34788 34789 34790 34791 34792 34793 34410 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34362 34363 34364 34365 34366 34367 34746 34747 34748 34749 34750 34751 30895 30896 30897 30898 30899 30900 30919 30920 30921 30922 30923 30924 36 2620 2621 2622 2623 2624 2625 33792 33793 33794 33795 33796 33797 2848 2849 2850 2851 2852 2853 34758 34759 34760 34761 34762 34763 33810 33811 33812 33813 33814 33815 3550 3551 3552 3553 3554 3555 48 33942 33943 33944 33945 33946 33947 34794 34795 34796 34797 34798 34799 2848 2849 2850 2851 2852 2853 33810 33811 33812 33813 33814 33815 33792 33793 33794 33795 33796 33797 34764 34765 34766 34767 34768 34769 33918 33919 33920 33921 33922 33923 33948 33949 33950 33951 33952 33953 48 34110 34111 34112 34113 34114 34115 34800 34801 34802 34803 34804 34805 33942 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33918 33919 33920 33921 33922 33923 34770 34771 34772 34773 34774 34775 34074 34075 34076 34077 34078 34079 34116 34117 34118 34119 34120 34121 48 34278 34279 34280 34281 34282 34283 34806 34807 34808 34809 34810 34811 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34074 34075 34076 34077 34078 34079 34776 34777 34778 34779 34780 34781 34242 34243 34244 34245 34246 34247 34284 34285 34286 34287 34288 34289 48 34446 34447 34448 34449 34450 34451 34812 34813 34814 34815 34816 34817 34278 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34242 34243 34244 34245 34246 34247 34782 34783 34784 34785 34786 34787 34410 34411 34412 34413 34414 34415 34452 34453 34454 34455 34456 34457 48 31441 31442 31443 31444 31445 31446 34818 34819 34820 34821 34822 34823 34446 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34410 34411 34412 34413 34414 34415 34788 34789 34790 34791 34792 34793 30913 30914 30915 30916 30917 30918 31447 31448 31449 31450 31451 31452 36 3004 3005 3006 3007 3008 3009 2848 2849 2850 2851 2852 2853 33822 33823 33824 33825 33826 33827 3508 3509 3510 3511 3512 3513 33828 33829 33830 33831 33832 33833 34824 34825 34826 34827 34828 34829 48 33966 33967 33968 33969 33970 33971 34830 34831 34832 34833 34834 34835 33822 33823 33824 33825 33826 33827 33828 33829 33830 33831 33832 33833 2848 2849 2850 2851 2852 2853 34794 34795 34796 34797 34798 34799 33942 33943 33944 33945 33946 33947 33972 33973 33974 33975 33976 33977 48 34134 34135 34136 34137 34138 34139 34644 34645 34646 34647 34648 34649 33966 33967 33968 33969 33970 33971 33972 33973 33974 33975 33976 33977 33942 33943 33944 33945 33946 33947 34800 34801 34802 34803 34804 34805 34110 34111 34112 34113 34114 34115 34140 34141 34142 34143 34144 34145 48 34302 34303 34304 34305 34306 34307 34650 34651 34652 34653 34654 34655 34134 34135 34136 34137 34138 34139 34140 34141 34142 34143 34144 34145 34110 34111 34112 34113 34114 34115 34806 34807 34808 34809 34810 34811 34278 34279 34280 34281 34282 34283 34308 34309 34310 34311 34312 34313 48 34470 34471 34472 34473 34474 34475 34656 34657 34658 34659 34660 34661 34302 34303 34304 34305 34306 34307 34308 34309 34310 34311 34312 34313 34278 34279 34280 34281 34282 34283 34812 34813 34814 34815 34816 34817 34446 34447 34448 34449 34450 34451 34476 34477 34478 34479 34480 34481 48 30061 30062 30063 30064 30065 30066 34662 34663 34664 34665 34666 34667 34470 34471 34472 34473 34474 34475 34476 34477 34478 34479 34480 34481 34446 34447 34448 34449 34450 34451 34818 34819 34820 34821 34822 34823 31441 31442 31443 31444 31445 31446 31723 31724 31725 31726 31727 31728 48 33840 33841 33842 33843 33844 33845 34836 34837 34838 34839 34840 34841 3190 3191 3192 3193 3194 3195 3466 3467 3468 3469 3470 3471 3004 3005 3006 3007 3008 3009 34824 34825 34826 34827 34828 34829 33822 33823 33824 33825 33826 33827 33846 33847 33848 33849 33850 33851 48 33996 33997 33998 33999 34000 34001 34842 34843 34844 34845 34846 34847 33840 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33822 33823 33824 33825 33826 33827 34830 34831 34832 34833 34834 34835 33966 33967 33968 33969 33970 33971 34002 34003 34004 34005 34006 34007 48 34164 34165 34166 34167 34168 34169 34848 34849 34850 34851 34852 34853 33996 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 33966 33967 33968 33969 33970 33971 34644 34645 34646 34647 34648 34649 34134 34135 34136 34137 34138 34139 34170 34171 34172 34173 34174 34175 48 34332 34333 34334 34335 34336 34337 34854 34855 34856 34857 34858 34859 34164 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34134 34135 34136 34137 34138 34139 34650 34651 34652 34653 34654 34655 34302 34303 34304 34305 34306 34307 34338 34339 34340 34341 34342 34343 48 34500 34501 34502 34503 34504 34505 34860 34861 34862 34863 34864 34865 34332 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34302 34303 34304 34305 34306 34307 34656 34657 34658 34659 34660 34661 34470 34471 34472 34473 34474 34475 34506 34507 34508 34509 34510 34511 48 30319 30320 30321 30322 30323 30324 34866 34867 34868 34869 34870 34871 34500 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34470 34471 34472 34473 34474 34475 34662 34663 34664 34665 34666 34667 30061 30062 30063 30064 30065 30066 30325 30326 30327 30328 30329 30330 36 3190 3191 3192 3193 3194 3195 33840 33841 33842 33843 33844 33845 3412 3413 3414 3415 3416 3417 34836 34837 34838 34839 34840 34841 33852 33853 33854 33855 33856 33857 3424 3425 3426 3427 3428 3429 48 3394 3395 3396 3397 3398 3399 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 33852 33853 33854 33855 33856 33857 33840 33841 33842 33843 33844 33845 34842 34843 34844 34845 34846 34847 33996 33997 33998 33999 34000 34001 34008 34009 34010 34011 34012 34013 48 3376 3377 3378 3379 3380 3381 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 34008 34009 34010 34011 34012 34013 33996 33997 33998 33999 34000 34001 34848 34849 34850 34851 34852 34853 34164 34165 34166 34167 34168 34169 34176 34177 34178 34179 34180 34181 48 3322 3323 3324 3325 3326 3327 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 34176 34177 34178 34179 34180 34181 34164 34165 34166 34167 34168 34169 34854 34855 34856 34857 34858 34859 34332 34333 34334 34335 34336 34337 34344 34345 34346 34347 34348 34349 48 34518 34519 34520 34521 34522 34523 34872 34873 34874 34875 34876 34877 3322 3323 3324 3325 3326 3327 34344 34345 34346 34347 34348 34349 34332 34333 34334 34335 34336 34337 34860 34861 34862 34863 34864 34865 34500 34501 34502 34503 34504 34505 34524 34525 34526 34527 34528 34529 48 30601 30602 30603 30604 30605 30606 34878 34879 34880 34881 34882 34883 34518 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34500 34501 34502 34503 34504 34505 34866 34867 34868 34869 34870 34871 30319 30320 30321 30322 30323 30324 30607 30608 30609 30610 30611 30612 48 3262 3263 3264 3265 3266 3267 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 33618 33619 33620 33621 33622 33623 1590 1591 1592 1593 1594 1595 1584 1585 1586 1587 1588 1589 1578 1579 1580 1581 1582 1583 33642 33643 33644 33645 33646 33647 36 34518 34519 34520 34521 34522 34523 3322 3323 3324 3325 3326 3327 3214 3215 3216 3217 3218 3219 34872 34873 34874 34875 34876 34877 3328 3329 3330 3331 3332 3333 34512 34513 34514 34515 34516 34517 48 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3280 3281 3282 3283 3284 3285 33690 33691 33692 33693 33694 33695 1620 1621 1622 1623 1624 1625 1614 1615 1616 1617 1618 1619 1608 1609 1610 1611 1612 1613 33714 33715 33716 33717 33718 33719 48 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3250 3251 3252 3253 3254 3255 33666 33667 33668 33669 33670 33671 1596 1597 1598 1599 1600 1601 1626 1627 1628 1629 1630 1631 1620 1621 1622 1623 1624 1625 33690 33691 33692 33693 33694 33695 48 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 33642 33643 33644 33645 33646 33647 1578 1579 1580 1581 1582 1583 1602 1603 1604 1605 1606 1607 1596 1597 1598 1599 1600 1601 33666 33667 33668 33669 33670 33671 48 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 34512 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34878 34879 34880 34881 34882 34883 30601 30602 30603 30604 30605 30606 32269 32270 32271 32272 32273 32274 36 33840 33841 33842 33843 33844 33845 3190 3191 3192 3193 3194 3195 3160 3161 3162 3163 3164 3165 34836 34837 34838 34839 34840 34841 3196 3197 3198 3199 3200 3201 33834 33835 33836 33837 33838 33839 48 3130 3131 3132 3133 3134 3135 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 33834 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 34842 34843 34844 34845 34846 34847 33996 33997 33998 33999 34000 34001 33990 33991 33992 33993 33994 33995 48 3100 3101 3102 3103 3104 3105 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 33990 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34848 34849 34850 34851 34852 34853 34164 34165 34166 34167 34168 34169 34158 34159 34160 34161 34162 34163 48 3070 3071 3072 3073 3074 3075 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 34158 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34854 34855 34856 34857 34858 34859 34332 34333 34334 34335 34336 34337 34326 34327 34328 34329 34330 34331 48 3028 3029 3030 3031 3032 3033 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 34326 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34860 34861 34862 34863 34864 34865 34500 34501 34502 34503 34504 34505 34494 34495 34496 34497 34498 34499 48 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 34494 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34866 34867 34868 34869 34870 34871 30319 30320 30321 30322 30323 30324 32245 32246 32247 32248 32249 32250 36 33822 33823 33824 33825 33826 33827 3004 3005 3006 3007 3008 3009 2974 2975 2976 2977 2978 2979 34824 34825 34826 34827 34828 34829 3010 3011 3012 3013 3014 3015 33816 33817 33818 33819 33820 33821 48 2944 2945 2946 2947 2948 2949 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 33816 33817 33818 33819 33820 33821 33822 33823 33824 33825 33826 33827 34830 34831 34832 34833 34834 34835 33966 33967 33968 33969 33970 33971 33984 33985 33986 33987 33988 33989 48 2914 2915 2916 2917 2918 2919 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 33984 33985 33986 33987 33988 33989 33966 33967 33968 33969 33970 33971 34644 34645 34646 34647 34648 34649 34134 34135 34136 34137 34138 34139 34152 34153 34154 34155 34156 34157 48 2884 2885 2886 2887 2888 2889 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 34152 34153 34154 34155 34156 34157 34134 34135 34136 34137 34138 34139 34650 34651 34652 34653 34654 34655 34302 34303 34304 34305 34306 34307 34320 34321 34322 34323 34324 34325 48 2788 2789 2790 2791 2792 2793 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 34320 34321 34322 34323 34324 34325 34302 34303 34304 34305 34306 34307 34656 34657 34658 34659 34660 34661 34470 34471 34472 34473 34474 34475 34488 34489 34490 34491 34492 34493 36 34098 34099 34100 34101 34102 34103 2824 2825 2826 2827 2828 2829 2734 2735 2736 2737 2738 2739 34614 34615 34616 34617 34618 34619 2872 2873 2874 2875 2876 2877 34128 34129 34130 34131 34132 34133 48 34098 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34800 34801 34802 34803 34804 34805 33942 33943 33944 33945 33946 33947 33960 33961 33962 33963 33964 33965 2824 2825 2826 2827 2828 2829 34614 34615 34616 34617 34618 34619 36 33942 33943 33944 33945 33946 33947 2848 2849 2850 2851 2852 2853 2824 2825 2826 2827 2828 2829 34794 34795 34796 34797 34798 34799 2854 2855 2856 2857 2858 2859 33960 33961 33962 33963 33964 33965 48 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 34488 34489 34490 34491 34492 34493 34470 34471 34472 34473 34474 34475 34662 34663 34664 34665 34666 34667 30061 30062 30063 30064 30065 30066 34554 34555 34556 34557 34558 34559 48 34266 34267 34268 34269 34270 34271 34626 34627 34628 34629 34630 34631 34098 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34806 34807 34808 34809 34810 34811 34278 34279 34280 34281 34282 34283 34272 34273 34274 34275 34276 34277 48 2686 2687 2688 2689 2690 2691 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 34128 34129 34130 34131 34132 34133 34098 34099 34100 34101 34102 34103 34626 34627 34628 34629 34630 34631 34266 34267 34268 34269 34270 34271 34296 34297 34298 34299 34300 34301 48 34434 34435 34436 34437 34438 34439 34632 34633 34634 34635 34636 34637 34266 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34812 34813 34814 34815 34816 34817 34446 34447 34448 34449 34450 34451 34440 34441 34442 34443 34444 34445 48 2560 2561 2562 2563 2564 2565 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 34296 34297 34298 34299 34300 34301 34266 34267 34268 34269 34270 34271 34632 34633 34634 34635 34636 34637 34434 34435 34436 34437 34438 34439 34464 34465 34466 34467 34468 34469 48 29803 29804 29805 29806 29807 29808 34638 34639 34640 34641 34642 34643 34434 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34818 34819 34820 34821 34822 34823 31441 31442 31443 31444 31445 31446 32317 32318 32319 32320 32321 32322 48 2506 2507 2508 2509 2510 2511 33936 33937 33938 33939 33940 33941 33906 33907 33908 33909 33910 33911 34884 34885 34886 34887 34888 34889 33792 33793 33794 33795 33796 33797 33798 33799 33800 33801 33802 33803 2608 2609 2610 2611 2612 2613 2644 2645 2646 2647 2648 2649 36 33918 33919 33920 33921 33922 33923 33792 33793 33794 33795 33796 33797 33906 33907 33908 33909 33910 33911 34764 34765 34766 34767 34768 34769 34884 34885 34886 34887 34888 34889 33912 33913 33914 33915 33916 33917 36 33792 33793 33794 33795 33796 33797 2620 2621 2622 2623 2624 2625 2608 2609 2610 2611 2612 2613 34758 34759 34760 34761 34762 34763 2626 2627 2628 2629 2630 2631 33798 33799 33800 33801 33802 33803 48 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 34464 34465 34466 34467 34468 34469 34434 34435 34436 34437 34438 34439 34638 34639 34640 34641 34642 34643 29803 29804 29805 29806 29807 29808 34548 34549 34550 34551 34552 34553 48 34062 34063 34064 34065 34066 34067 34890 34891 34892 34893 34894 34895 33906 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 34770 34771 34772 34773 34774 34775 34074 34075 34076 34077 34078 34079 34068 34069 34070 34071 34072 34073 48 2458 2459 2460 2461 2462 2463 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 33936 33937 33938 33939 33940 33941 33906 33907 33908 33909 33910 33911 34890 34891 34892 34893 34894 34895 34062 34063 34064 34065 34066 34067 34092 34093 34094 34095 34096 34097 48 34230 34231 34232 34233 34234 34235 34596 34597 34598 34599 34600 34601 34062 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34776 34777 34778 34779 34780 34781 34242 34243 34244 34245 34246 34247 34236 34237 34238 34239 34240 34241 48 2410 2411 2412 2413 2414 2415 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 34092 34093 34094 34095 34096 34097 34062 34063 34064 34065 34066 34067 34596 34597 34598 34599 34600 34601 34230 34231 34232 34233 34234 34235 34260 34261 34262 34263 34264 34265 48 34398 34399 34400 34401 34402 34403 34602 34603 34604 34605 34606 34607 34230 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34782 34783 34784 34785 34786 34787 34410 34411 34412 34413 34414 34415 34404 34405 34406 34407 34408 34409 48 2286 2287 2288 2289 2290 2291 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 34260 34261 34262 34263 34264 34265 34230 34231 34232 34233 34234 34235 34602 34603 34604 34605 34606 34607 34398 34399 34400 34401 34402 34403 34428 34429 34430 34431 34432 34433 48 29545 29546 29547 29548 29549 29550 34608 34609 34610 34611 34612 34613 34398 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34788 34789 34790 34791 34792 34793 30913 30914 30915 30916 30917 30918 32371 32372 32373 32374 32375 32376 48 2232 2233 2234 2235 2236 2237 2368 2369 2370 2371 2372 2373 2322 2323 2324 2325 2326 2327 33780 33781 33782 33783 33784 33785 33744 33745 33746 33747 33748 33749 34896 34897 34898 34899 34900 34901 33858 33859 33860 33861 33862 33863 33900 33901 33902 33903 33904 33905 36 33870 33871 33872 33873 33874 33875 33744 33745 33746 33747 33748 33749 33858 33859 33860 33861 33862 33863 34698 34699 34700 34701 34702 34703 34896 34897 34898 34899 34900 34901 33864 33865 33866 33867 33868 33869 34 33744 33745 33746 33747 33748 33749 2346 2347 2348 2349 2322 2323 2324 2325 2326 2327 34686 34687 34688 34689 34690 34691 2350 2351 2352 2353 2354 2355 33780 33781 33782 33783 33784 33785 48 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 34428 34429 34430 34431 34432 34433 34398 34399 34400 34401 34402 34403 34608 34609 34610 34611 34612 34613 29545 29546 29547 29548 29549 29550 34542 34543 34544 34545 34546 34547 48 34014 34015 34016 34017 34018 34019 34902 34903 34904 34905 34906 34907 33858 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 34710 34711 34712 34713 34714 34715 34026 34027 34028 34029 34030 34031 34020 34021 34022 34023 34024 34025 48 2184 2185 2186 2187 2188 2189 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 33900 33901 33902 33903 33904 33905 33858 33859 33860 33861 33862 33863 34902 34903 34904 34905 34906 34907 34014 34015 34016 34017 34018 34019 34056 34057 34058 34059 34060 34061 48 34182 34183 34184 34185 34186 34187 34572 34573 34574 34575 34576 34577 34014 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34722 34723 34724 34725 34726 34727 34194 34195 34196 34197 34198 34199 34188 34189 34190 34191 34192 34193 48 2136 2137 2138 2139 2140 2141 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 34056 34057 34058 34059 34060 34061 34014 34015 34016 34017 34018 34019 34572 34573 34574 34575 34576 34577 34182 34183 34184 34185 34186 34187 34224 34225 34226 34227 34228 34229 48 34350 34351 34352 34353 34354 34355 34578 34579 34580 34581 34582 34583 34182 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34734 34735 34736 34737 34738 34739 34362 34363 34364 34365 34366 34367 34356 34357 34358 34359 34360 34361 48 2064 2065 2066 2067 2068 2069 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 34224 34225 34226 34227 34228 34229 34182 34183 34184 34185 34186 34187 34578 34579 34580 34581 34582 34583 34350 34351 34352 34353 34354 34355 34392 34393 34394 34395 34396 34397 48 21553 21554 21555 21556 21557 21558 34584 34585 34586 34587 34588 34589 34350 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34746 34747 34748 34749 34750 34751 30895 30896 30897 30898 30899 30900 32419 32420 32421 32422 32423 32424 48 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 34392 34393 34394 34395 34396 34397 34350 34351 34352 34353 34354 34355 34584 34585 34586 34587 34588 34589 21553 21554 21555 21556 21557 21558 21547 21548 21549 21550 21551 21552 36 33756 33757 33758 33759 33760 33761 34674 34675 34676 34677 34678 34679 33762 33763 33764 33765 33766 33767 34692 34693 34694 34695 34696 34697 34908 34909 34910 34911 34912 34913 33768 33769 33770 33771 33772 33773 48 1974 1975 1976 1977 1978 1979 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 34680 34681 34682 34683 34684 34685 34674 34675 34676 34677 34678 34679 34908 34909 34910 34911 34912 34913 33762 33763 33764 33765 33766 33767 33786 33787 33788 33789 33790 33791 48 33606 33607 33608 33609 33610 33611 34914 34915 34916 34917 34918 34919 33762 33763 33764 33765 33766 33767 33768 33769 33770 33771 33772 33773 33756 33757 33758 33759 33760 33761 34704 34705 34706 34707 34708 34709 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 48 1926 1927 1928 1929 1930 1931 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 33786 33787 33788 33789 33790 33791 33762 33763 33764 33765 33766 33767 34914 34915 34916 34917 34918 34919 33606 33607 33608 33609 33610 33611 33600 33601 33602 33603 33604 33605 48 33630 33631 33632 33633 33634 33635 33720 33721 33722 33723 33724 33725 33606 33607 33608 33609 33610 33611 33888 33889 33890 33891 33892 33893 33882 33883 33884 33885 33886 33887 34716 34717 34718 34719 34720 34721 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 48 1878 1879 1880 1881 1882 1883 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 33600 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33720 33721 33722 33723 33724 33725 33630 33631 33632 33633 33634 33635 33624 33625 33626 33627 33628 33629 48 33654 33655 33656 33657 33658 33659 33726 33727 33728 33729 33730 33731 33630 33631 33632 33633 33634 33635 34044 34045 34046 34047 34048 34049 34038 34039 34040 34041 34042 34043 34728 34729 34730 34731 34732 34733 34206 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 48 1830 1831 1832 1833 1834 1835 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 33624 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33726 33727 33728 33729 33730 33731 33654 33655 33656 33657 33658 33659 33648 33649 33650 33651 33652 33653 48 33678 33679 33680 33681 33682 33683 33732 33733 33734 33735 33736 33737 33654 33655 33656 33657 33658 33659 34212 34213 34214 34215 34216 34217 34206 34207 34208 34209 34210 34211 34740 34741 34742 34743 34744 34745 34374 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 48 1758 1759 1760 1761 1762 1763 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 33648 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33732 33733 33734 33735 33736 33737 33678 33679 33680 33681 33682 33683 33672 33673 33674 33675 33676 33677 48 33702 33703 33704 33705 33706 33707 33738 33739 33740 33741 33742 33743 33678 33679 33680 33681 33682 33683 34380 34381 34382 34383 34384 34385 34374 34375 34376 34377 34378 34379 34752 34753 34754 34755 34756 34757 30883 30884 30885 30886 30887 30888 34530 34531 34532 34533 34534 34535 48 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 33672 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33738 33739 33740 33741 33742 33743 33702 33703 33704 33705 33706 33707 33696 33697 33698 33699 33700 33701 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001-3.dgr000066400000000000000000002631051514310134000257620ustar00rootroot000000000000002 4 3 3431 70838 857 18224 0 000 15 2274 2272 3050 3049 2618 2617 2575 2573 2267 2266 3048 2616 3107 3106 3108 17 2281 2280 3052 3050 2619 2618 2576 2274 2272 3049 2617 2574 3108 3107 1906 1888 3110 19 2287 2286 3054 3052 2620 2619 2577 2281 2280 3050 2618 2575 1906 1888 3110 3108 1914 1889 3112 19 2293 2292 3055 3054 2621 2620 2578 2287 2286 3052 2619 2576 1914 1889 1888 3112 3110 1926 3113 17 2299 2298 3057 3055 2622 2621 2579 2293 2292 3054 2620 2577 1926 1889 3113 3112 3115 15 2305 2304 3058 3057 2623 2622 2580 2299 2298 3055 2621 2578 3115 3113 3116 15 2311 2310 3060 3058 2624 2623 2581 2305 2304 3057 2622 2579 3116 3115 3118 15 2318 2316 3061 3060 2625 2624 2582 2311 2310 3058 2623 2580 3118 3116 3119 15 3233 3191 3185 3130 3129 3061 2625 2318 2316 3060 2624 2581 3119 3118 3242 20 2010 2009 2956 2955 2627 2626 2584 3395 3357 3351 3313 3311 2540 3406 3345 3309 3004 2541 2008 3005 20 2018 2016 2957 2956 2628 2627 2585 2010 2009 2955 2626 2583 2541 2540 2008 3005 3004 2542 2014 3006 20 2028 2026 2959 2957 2629 2628 2586 2018 2016 2956 2627 2584 2542 2541 2014 3006 3005 2543 2024 3008 20 2036 2035 2960 2959 2630 2629 2587 2028 2026 2957 2628 2585 2543 2542 2024 3008 3006 2544 2034 3009 20 2043 2042 2961 2960 2631 2630 2588 2036 2035 2959 2629 2586 2544 2543 2034 3009 3008 2545 2040 3010 20 2052 2050 2962 2961 2632 2631 2589 2043 2042 2960 2630 2587 2545 2544 2040 3010 3009 2546 2048 3012 20 2060 2059 2963 2962 2633 2632 2590 2052 2050 2961 2631 2588 2546 2545 2048 3012 3010 2547 2058 3013 20 2067 2066 2964 2963 2634 2633 2591 2060 2059 2962 2632 2589 2547 2546 2058 3013 3012 2548 2064 3014 20 2075 2074 2965 2964 2635 2634 2592 2067 2066 2963 2633 2590 2548 2547 2064 3014 3013 2549 2072 3016 20 2082 2081 2966 2965 2636 2635 2593 2075 2074 2964 2634 2591 2549 2548 2072 3016 3014 2550 2080 3017 20 2089 2088 2967 2966 2637 2636 2594 2082 2081 2965 2635 2592 2550 2549 2080 3017 3016 2551 2086 3018 20 2098 2096 2968 2967 2638 2637 2595 2089 2088 2966 2636 2593 2551 2550 2086 3018 3017 2552 2094 3020 20 2106 2105 2969 2968 2639 2638 2596 2098 2096 2967 2637 2594 2552 2551 2094 3020 3018 2553 2104 3021 20 2113 2112 2970 2969 2640 2639 2597 2106 2105 2968 2638 2595 2553 2552 2104 3021 3020 2554 2110 3022 20 2121 2120 2971 2970 2641 2640 2598 2113 2112 2969 2639 2596 2554 2553 2110 3022 3021 2555 2118 3024 20 2128 2127 2972 2971 2642 2641 2599 2121 2120 2970 2640 2597 2555 2554 2118 3024 3022 2556 2126 3025 20 2135 2134 2973 2972 2643 2642 2600 2128 2127 2971 2641 2598 2556 2555 2126 3025 3024 2557 2132 3026 20 2144 2142 2974 2973 2644 2643 2601 2135 2134 2972 2642 2599 2557 2556 2132 3026 3025 2558 2140 3028 20 2152 2151 2975 2974 2645 2644 2602 2144 2142 2973 2643 2600 2558 2557 2140 3028 3026 2559 2150 3029 20 2159 2158 2976 2975 2646 2645 2603 2152 2151 2974 2644 2601 2559 2558 2150 3029 3028 2560 2156 3030 20 2167 2166 2977 2976 2647 2646 2604 2159 2158 2975 2645 2602 2560 2559 2156 3030 3029 2561 2164 3032 20 2174 2173 2978 2977 2648 2647 2605 2167 2166 2976 2646 2603 2561 2560 2164 3032 3030 2562 2172 3033 20 2181 2180 2979 2978 2649 2648 2606 2174 2173 2977 2647 2604 2562 2561 2172 3033 3032 2563 2178 3034 20 2190 2188 2980 2979 2650 2649 2607 2181 2180 2978 2648 2605 2563 2562 2178 3034 3033 2564 2186 3036 20 2198 2197 2981 2980 2651 2650 2608 2190 2188 2979 2649 2606 2564 2563 2186 3036 3034 2565 2196 3037 20 2205 2204 2982 2981 2652 2651 2609 2198 2197 2980 2650 2607 2565 2564 2196 3037 3036 2566 2202 3038 20 2213 2212 2983 2982 2653 2652 2610 2205 2204 2981 2651 2608 2566 2565 2202 3038 3037 2567 2210 3040 20 2220 2219 2984 2983 2654 2653 2611 2213 2212 2982 2652 2609 2567 2566 2210 3040 3038 2568 2218 3041 20 2228 2226 2985 2984 2655 2654 2612 2220 2219 2983 2653 2610 2568 2567 2218 3041 3040 2569 2224 3042 20 2238 2236 2987 2985 2656 2655 2613 2228 2226 2984 2654 2611 2569 2568 2224 3042 3041 2570 2234 3044 20 2246 2245 2988 2987 2657 2656 2614 2238 2236 2985 2655 2612 2570 2569 2234 3044 3042 2571 2244 3045 20 2253 2252 2989 2988 2658 2657 2615 2246 2245 2987 2656 2613 2571 2570 2244 3045 3044 2572 2250 3046 20 2261 2260 2990 2989 2659 2658 2616 2253 2252 2988 2657 2614 2572 2571 2250 3046 3045 2573 2258 3048 20 2268 2267 2991 2990 2660 2659 2617 2261 2260 2989 2658 2615 2573 2572 2258 3048 3046 2266 3049 2574 20 2275 2274 2992 2991 2661 2660 2618 2268 2267 2990 2659 2616 2573 2266 3049 3048 2574 2272 3050 2575 20 2282 2281 2994 2992 2662 2661 2619 2275 2274 2991 2660 2617 2272 3050 3049 2575 2574 2280 3052 2576 20 2288 2287 2996 2994 2663 2662 2620 2282 2281 2992 2661 2618 2280 3052 3050 2576 2575 2286 3054 2577 20 2294 2293 2997 2996 2664 2663 2621 2288 2287 2994 2662 2619 2286 3054 3052 2577 2576 2292 3055 2578 20 2300 2299 2999 2997 2665 2664 2622 2294 2293 2996 2663 2620 2292 3055 3054 2578 2577 2298 3057 2579 20 2306 2305 3000 2999 2666 2665 2623 2300 2299 2997 2664 2621 2298 3057 3055 2579 2578 2304 3058 2580 20 2312 2311 3002 3000 2667 2666 2624 2306 2305 2999 2665 2622 2304 3058 3057 2580 2579 2310 3060 2581 20 2319 2318 3003 3002 2668 2667 2625 2312 2311 3000 2666 2623 2310 3060 3058 2581 2580 2316 3061 2582 20 3224 3197 3191 3131 3130 3003 2668 2319 2318 3002 2667 2624 2316 3061 3060 2582 2581 3233 3185 3129 24 2011 2010 2899 2755 2670 2669 2627 2453 2410 3390 3363 3357 3332 3315 3314 3313 3395 3351 3311 2955 2583 2009 2956 2584 20 2020 2018 2900 2899 2671 2670 2628 2011 2010 2755 2669 2626 2009 2956 2955 2584 2583 2016 2957 2585 20 2030 2028 2902 2900 2672 2671 2629 2020 2018 2899 2670 2627 2016 2957 2956 2585 2584 2026 2959 2586 20 2037 2036 2903 2902 2673 2672 2630 2030 2028 2900 2671 2628 2026 2959 2957 2586 2585 2035 2960 2587 20 2044 2043 2904 2903 2674 2673 2631 2037 2036 2902 2672 2629 2035 2960 2959 2587 2586 2042 2961 2588 20 2054 2052 2906 2904 2675 2674 2632 2044 2043 2903 2673 2630 2042 2961 2960 2588 2587 2050 2962 2589 20 2061 2060 2907 2906 2676 2675 2633 2054 2052 2904 2674 2631 2050 2962 2961 2589 2588 2059 2963 2590 20 2068 2067 2908 2907 2677 2676 2634 2061 2060 2906 2675 2632 2059 2963 2962 2590 2589 2066 2964 2591 20 2076 2075 2910 2908 2678 2677 2635 2068 2067 2907 2676 2633 2066 2964 2963 2591 2590 2074 2965 2592 20 2083 2082 2911 2910 2679 2678 2636 2076 2075 2908 2677 2634 2074 2965 2964 2592 2591 2081 2966 2593 20 2090 2089 2912 2911 2680 2679 2637 2083 2082 2910 2678 2635 2081 2966 2965 2593 2592 2088 2967 2594 20 2100 2098 2914 2912 2681 2680 2638 2090 2089 2911 2679 2636 2088 2967 2966 2594 2593 2096 2968 2595 20 2107 2106 2915 2914 2682 2681 2639 2100 2098 2912 2680 2637 2096 2968 2967 2595 2594 2105 2969 2596 20 2114 2113 2916 2915 2683 2682 2640 2107 2106 2914 2681 2638 2105 2969 2968 2596 2595 2112 2970 2597 20 2122 2121 2918 2916 2684 2683 2641 2114 2113 2915 2682 2639 2112 2970 2969 2597 2596 2120 2971 2598 20 2129 2128 2919 2918 2685 2684 2642 2122 2121 2916 2683 2640 2120 2971 2970 2598 2597 2127 2972 2599 20 2136 2135 2920 2919 2686 2685 2643 2129 2128 2918 2684 2641 2127 2972 2971 2599 2598 2134 2973 2600 20 2146 2144 2922 2920 2687 2686 2644 2136 2135 2919 2685 2642 2134 2973 2972 2600 2599 2142 2974 2601 20 2153 2152 2923 2922 2688 2687 2645 2146 2144 2920 2686 2643 2142 2974 2973 2601 2600 2151 2975 2602 20 2160 2159 2924 2923 2689 2688 2646 2153 2152 2922 2687 2644 2151 2975 2974 2602 2601 2158 2976 2603 20 2168 2167 2926 2924 2690 2689 2647 2160 2159 2923 2688 2645 2158 2976 2975 2603 2602 2166 2977 2604 20 2175 2174 2927 2926 2691 2690 2648 2168 2167 2924 2689 2646 2166 2977 2976 2604 2603 2173 2978 2605 20 2182 2181 2928 2927 2692 2691 2649 2175 2174 2926 2690 2647 2173 2978 2977 2605 2604 2180 2979 2606 20 2192 2190 2930 2928 2693 2692 2650 2182 2181 2927 2691 2648 2180 2979 2978 2606 2605 2188 2980 2607 20 2199 2198 2931 2930 2694 2693 2651 2192 2190 2928 2692 2649 2188 2980 2979 2607 2606 2197 2981 2608 20 2206 2205 2932 2931 2695 2694 2652 2199 2198 2930 2693 2650 2197 2981 2980 2608 2607 2204 2982 2609 20 2214 2213 2934 2932 2696 2695 2653 2206 2205 2931 2694 2651 2204 2982 2981 2609 2608 2212 2983 2610 20 2221 2220 2935 2934 2697 2696 2654 2214 2213 2932 2695 2652 2212 2983 2982 2610 2609 2219 2984 2611 20 2230 2228 2936 2935 2698 2697 2655 2221 2220 2934 2696 2653 2219 2984 2983 2611 2610 2226 2985 2612 20 2240 2238 2938 2936 2699 2698 2656 2230 2228 2935 2697 2654 2226 2985 2984 2612 2611 2236 2987 2613 20 2247 2246 2939 2938 2700 2699 2657 2240 2238 2936 2698 2655 2236 2987 2985 2613 2612 2245 2988 2614 20 2254 2253 2940 2939 2701 2700 2658 2247 2246 2938 2699 2656 2245 2988 2987 2614 2613 2252 2989 2615 20 2262 2261 2942 2940 2702 2701 2659 2254 2253 2939 2700 2657 2252 2989 2988 2615 2614 2260 2990 2616 20 2269 2268 2943 2942 2703 2702 2660 2262 2261 2940 2701 2658 2260 2990 2989 2616 2615 2267 2991 2617 20 2276 2275 2944 2943 2704 2703 2661 2269 2268 2942 2702 2659 2267 2991 2990 2617 2616 2274 2992 2618 20 2283 2282 2946 2944 2705 2704 2662 2276 2275 2943 2703 2660 2274 2992 2991 2618 2617 2281 2994 2619 20 2289 2288 2948 2946 2706 2705 2663 2283 2282 2944 2704 2661 2281 2994 2992 2619 2618 2287 2996 2620 20 2295 2294 2949 2948 2707 2706 2664 2289 2288 2946 2705 2662 2287 2996 2994 2620 2619 2293 2997 2621 20 2301 2300 2951 2949 2708 2707 2665 2295 2294 2948 2706 2663 2293 2997 2996 2621 2620 2299 2999 2622 20 2307 2306 2952 2951 2709 2708 2666 2301 2300 2949 2707 2664 2299 2999 2997 2622 2621 2305 3000 2623 20 2313 2312 2954 2952 2710 2709 2667 2307 2306 2951 2708 2665 2305 3000 2999 2623 2622 2311 3002 2624 20 2320 2319 2954 2758 2711 2710 2668 2313 2312 2952 2709 2666 2311 3002 3000 2624 2623 2318 3003 2625 21 2495 2452 3203 3197 3175 3131 2758 2711 2320 2319 2954 2710 2667 2318 3003 3002 2625 2624 3224 3191 3130 26 2012 2011 2817 2756 2713 2712 2670 2496 2453 3381 3369 3363 3316 3315 2757 2410 3390 3357 3332 3314 3313 2755 2626 2010 2899 2627 20 2022 2020 2819 2817 2714 2713 2671 2012 2011 2756 2712 2669 2010 2899 2755 2627 2626 2018 2900 2628 20 2032 2030 2821 2819 2715 2714 2672 2022 2020 2817 2713 2670 2018 2900 2899 2628 2627 2028 2902 2629 20 2038 2037 2823 2821 2716 2715 2673 2032 2030 2819 2714 2671 2028 2902 2900 2629 2628 2036 2903 2630 20 2046 2044 2825 2823 2717 2716 2674 2038 2037 2821 2715 2672 2036 2903 2902 2630 2629 2043 2904 2631 20 2056 2054 2827 2825 2718 2717 2675 2046 2044 2823 2716 2673 2043 2904 2903 2631 2630 2052 2906 2632 20 2062 2061 2829 2827 2719 2718 2676 2056 2054 2825 2717 2674 2052 2906 2904 2632 2631 2060 2907 2633 20 2070 2068 2831 2829 2720 2719 2677 2062 2061 2827 2718 2675 2060 2907 2906 2633 2632 2067 2908 2634 20 2078 2076 2833 2831 2721 2720 2678 2070 2068 2829 2719 2676 2067 2908 2907 2634 2633 2075 2910 2635 20 2084 2083 2835 2833 2722 2721 2679 2078 2076 2831 2720 2677 2075 2910 2908 2635 2634 2082 2911 2636 20 2092 2090 2837 2835 2723 2722 2680 2084 2083 2833 2721 2678 2082 2911 2910 2636 2635 2089 2912 2637 20 2102 2100 2839 2837 2724 2723 2681 2092 2090 2835 2722 2679 2089 2912 2911 2637 2636 2098 2914 2638 20 2108 2107 2841 2839 2725 2724 2682 2102 2100 2837 2723 2680 2098 2914 2912 2638 2637 2106 2915 2639 20 2116 2114 2843 2841 2726 2725 2683 2108 2107 2839 2724 2681 2106 2915 2914 2639 2638 2113 2916 2640 20 2124 2122 2845 2843 2727 2726 2684 2116 2114 2841 2725 2682 2113 2916 2915 2640 2639 2121 2918 2641 20 2130 2129 2847 2845 2728 2727 2685 2124 2122 2843 2726 2683 2121 2918 2916 2641 2640 2128 2919 2642 20 2138 2136 2849 2847 2729 2728 2686 2130 2129 2845 2727 2684 2128 2919 2918 2642 2641 2135 2920 2643 20 2148 2146 2851 2849 2730 2729 2687 2138 2136 2847 2728 2685 2135 2920 2919 2643 2642 2144 2922 2644 20 2154 2153 2853 2851 2731 2730 2688 2148 2146 2849 2729 2686 2144 2922 2920 2644 2643 2152 2923 2645 20 2162 2160 2855 2853 2732 2731 2689 2154 2153 2851 2730 2687 2152 2923 2922 2645 2644 2159 2924 2646 20 2170 2168 2857 2855 2733 2732 2690 2162 2160 2853 2731 2688 2159 2924 2923 2646 2645 2167 2926 2647 20 2176 2175 2859 2857 2734 2733 2691 2170 2168 2855 2732 2689 2167 2926 2924 2647 2646 2174 2927 2648 20 2184 2182 2861 2859 2735 2734 2692 2176 2175 2857 2733 2690 2174 2927 2926 2648 2647 2181 2928 2649 20 2194 2192 2863 2861 2736 2735 2693 2184 2182 2859 2734 2691 2181 2928 2927 2649 2648 2190 2930 2650 20 2200 2199 2865 2863 2737 2736 2694 2194 2192 2861 2735 2692 2190 2930 2928 2650 2649 2198 2931 2651 20 2208 2206 2867 2865 2738 2737 2695 2200 2199 2863 2736 2693 2198 2931 2930 2651 2650 2205 2932 2652 20 2216 2214 2869 2867 2739 2738 2696 2208 2206 2865 2737 2694 2205 2932 2931 2652 2651 2213 2934 2653 20 2222 2221 2871 2869 2740 2739 2697 2216 2214 2867 2738 2695 2213 2934 2932 2653 2652 2220 2935 2654 20 2232 2230 2873 2871 2741 2740 2698 2222 2221 2869 2739 2696 2220 2935 2934 2654 2653 2228 2936 2655 20 2242 2240 2875 2873 2742 2741 2699 2232 2230 2871 2740 2697 2228 2936 2935 2655 2654 2238 2938 2656 20 2248 2247 2877 2875 2743 2742 2700 2242 2240 2873 2741 2698 2238 2938 2936 2656 2655 2246 2939 2657 20 2256 2254 2879 2877 2744 2743 2701 2248 2247 2875 2742 2699 2246 2939 2938 2657 2656 2253 2940 2658 20 2264 2262 2881 2879 2745 2744 2702 2256 2254 2877 2743 2700 2253 2940 2939 2658 2657 2261 2942 2659 20 2270 2269 2883 2881 2746 2745 2703 2264 2262 2879 2744 2701 2261 2942 2940 2659 2658 2268 2943 2660 20 2278 2276 2885 2883 2747 2746 2704 2270 2269 2881 2745 2702 2268 2943 2942 2660 2659 2275 2944 2661 20 2284 2283 2887 2885 2748 2747 2705 2278 2276 2883 2746 2703 2275 2944 2943 2661 2660 2282 2946 2662 20 2290 2289 2889 2887 2749 2748 2706 2284 2283 2885 2747 2704 2282 2946 2944 2662 2661 2288 2948 2663 20 2296 2295 2891 2889 2750 2749 2707 2290 2289 2887 2748 2705 2288 2948 2946 2663 2662 2294 2949 2664 20 2302 2301 2893 2891 2751 2750 2708 2296 2295 2889 2749 2706 2294 2949 2948 2664 2663 2300 2951 2665 20 2308 2307 2895 2893 2752 2751 2709 2302 2301 2891 2750 2707 2300 2951 2949 2665 2664 2306 2952 2666 20 2314 2313 2897 2895 2753 2752 2710 2308 2307 2893 2751 2708 2306 2952 2951 2666 2665 2312 2954 2667 20 2322 2320 2897 2759 2754 2753 2711 2314 2313 2895 2752 2709 2312 2954 2952 2667 2666 2319 2758 2668 23 2538 2495 3217 3207 3203 3132 2760 2759 2754 2322 2320 2897 2753 2710 2319 2954 2758 2668 2667 2452 3197 3175 3131 20 2497 2496 2013 2012 2775 2774 2713 3375 3369 3316 2453 3381 3363 3315 2757 2756 2669 2011 2817 2670 20 2498 2497 2023 2022 2776 2775 2714 2496 2013 2012 2774 2712 2011 2817 2756 2670 2669 2020 2819 2671 20 2499 2498 2033 2032 2777 2776 2715 2497 2023 2022 2775 2713 2020 2819 2817 2671 2670 2030 2821 2672 20 2500 2499 2039 2038 2778 2777 2716 2498 2033 2032 2776 2714 2030 2821 2819 2672 2671 2037 2823 2673 20 2501 2500 2047 2046 2779 2778 2717 2499 2039 2038 2777 2715 2037 2823 2821 2673 2672 2044 2825 2674 20 2502 2501 2057 2056 2780 2779 2718 2500 2047 2046 2778 2716 2044 2825 2823 2674 2673 2054 2827 2675 20 2503 2502 2063 2062 2781 2780 2719 2501 2057 2056 2779 2717 2054 2827 2825 2675 2674 2061 2829 2676 20 2504 2503 2071 2070 2782 2781 2720 2502 2063 2062 2780 2718 2061 2829 2827 2676 2675 2068 2831 2677 20 2505 2504 2079 2078 2783 2782 2721 2503 2071 2070 2781 2719 2068 2831 2829 2677 2676 2076 2833 2678 20 2506 2505 2085 2084 2784 2783 2722 2504 2079 2078 2782 2720 2076 2833 2831 2678 2677 2083 2835 2679 20 2507 2506 2093 2092 2785 2784 2723 2505 2085 2084 2783 2721 2083 2835 2833 2679 2678 2090 2837 2680 20 2508 2507 2103 2102 2786 2785 2724 2506 2093 2092 2784 2722 2090 2837 2835 2680 2679 2100 2839 2681 20 2509 2508 2109 2108 2787 2786 2725 2507 2103 2102 2785 2723 2100 2839 2837 2681 2680 2107 2841 2682 20 2510 2509 2117 2116 2788 2787 2726 2508 2109 2108 2786 2724 2107 2841 2839 2682 2681 2114 2843 2683 20 2511 2510 2125 2124 2789 2788 2727 2509 2117 2116 2787 2725 2114 2843 2841 2683 2682 2122 2845 2684 20 2512 2511 2131 2130 2790 2789 2728 2510 2125 2124 2788 2726 2122 2845 2843 2684 2683 2129 2847 2685 20 2513 2512 2139 2138 2791 2790 2729 2511 2131 2130 2789 2727 2129 2847 2845 2685 2684 2136 2849 2686 20 2514 2513 2149 2148 2792 2791 2730 2512 2139 2138 2790 2728 2136 2849 2847 2686 2685 2146 2851 2687 20 2515 2514 2155 2154 2793 2792 2731 2513 2149 2148 2791 2729 2146 2851 2849 2687 2686 2153 2853 2688 20 2516 2515 2163 2162 2794 2793 2732 2514 2155 2154 2792 2730 2153 2853 2851 2688 2687 2160 2855 2689 20 2517 2516 2171 2170 2795 2794 2733 2515 2163 2162 2793 2731 2160 2855 2853 2689 2688 2168 2857 2690 20 2518 2517 2177 2176 2796 2795 2734 2516 2171 2170 2794 2732 2168 2857 2855 2690 2689 2175 2859 2691 20 2519 2518 2185 2184 2797 2796 2735 2517 2177 2176 2795 2733 2175 2859 2857 2691 2690 2182 2861 2692 20 2520 2519 2195 2194 2798 2797 2736 2518 2185 2184 2796 2734 2182 2861 2859 2692 2691 2192 2863 2693 20 2521 2520 2201 2200 2799 2798 2737 2519 2195 2194 2797 2735 2192 2863 2861 2693 2692 2199 2865 2694 20 2522 2521 2209 2208 2800 2799 2738 2520 2201 2200 2798 2736 2199 2865 2863 2694 2693 2206 2867 2695 20 2523 2522 2217 2216 2801 2800 2739 2521 2209 2208 2799 2737 2206 2867 2865 2695 2694 2214 2869 2696 20 2524 2523 2223 2222 2802 2801 2740 2522 2217 2216 2800 2738 2214 2869 2867 2696 2695 2221 2871 2697 20 2525 2524 2233 2232 2803 2802 2741 2523 2223 2222 2801 2739 2221 2871 2869 2697 2696 2230 2873 2698 20 2526 2525 2243 2242 2804 2803 2742 2524 2233 2232 2802 2740 2230 2873 2871 2698 2697 2240 2875 2699 20 2527 2526 2249 2248 2805 2804 2743 2525 2243 2242 2803 2741 2240 2875 2873 2699 2698 2247 2877 2700 20 2528 2527 2257 2256 2806 2805 2744 2526 2249 2248 2804 2742 2247 2877 2875 2700 2699 2254 2879 2701 20 2529 2528 2265 2264 2807 2806 2745 2527 2257 2256 2805 2743 2254 2879 2877 2701 2700 2262 2881 2702 20 2530 2529 2271 2270 2808 2807 2746 2528 2265 2264 2806 2744 2262 2881 2879 2702 2701 2269 2883 2703 20 2531 2530 2279 2278 2809 2808 2747 2529 2271 2270 2807 2745 2269 2883 2881 2703 2702 2276 2885 2704 20 2532 2531 2285 2284 2810 2809 2748 2530 2279 2278 2808 2746 2276 2885 2883 2704 2703 2283 2887 2705 20 2533 2532 2291 2290 2811 2810 2749 2531 2285 2284 2809 2747 2283 2887 2885 2705 2704 2289 2889 2706 20 2534 2533 2297 2296 2812 2811 2750 2532 2291 2290 2810 2748 2289 2889 2887 2706 2705 2295 2891 2707 20 2535 2534 2303 2302 2813 2812 2751 2533 2297 2296 2811 2749 2295 2891 2889 2707 2706 2301 2893 2708 20 2536 2535 2309 2308 2814 2813 2752 2534 2303 2302 2812 2750 2301 2893 2891 2708 2707 2307 2895 2709 20 2537 2536 2315 2314 2815 2814 2753 2535 2309 2308 2813 2751 2307 2895 2893 2709 2708 2313 2897 2710 20 2538 2537 2323 2322 2816 2815 2754 2536 2315 2314 2814 2752 2313 2897 2895 2710 2709 2320 2759 2711 19 2538 3213 3207 3132 2816 2537 2323 2322 2815 2753 2320 2897 2759 2711 2710 2495 3217 3203 2760 18 2011 2010 2899 2670 2669 2627 2626 2453 2410 3390 3363 3357 3332 3315 3314 3313 2454 2411 19 2012 2011 2817 2713 2712 2670 2669 2496 2453 3381 3369 3363 3316 3315 2757 2497 2454 2013 2818 27 817 1709 1354 1353 878 2013 2818 2497 2496 2454 2453 2012 2011 2817 2756 3381 3369 3363 3316 3315 2712 2669 308 307 281 275 210 18 2320 2319 2954 2711 2710 2668 2667 2495 2494 2452 2451 2321 2947 2945 3203 3197 3175 3131 19 2322 2320 2897 2754 2753 2711 2710 2538 2537 2495 2494 2323 2321 2898 2760 3217 3207 3203 3132 26 503 464 406 1312 875 3217 3132 2538 2495 3207 3203 2759 2754 2711 2537 2494 2323 2322 2321 2320 2898 2897 737 1401 1399 1313 11 874 1942 1780 1941 1781 102 101 1967 1966 103 1968 11 873 1944 1778 1943 1779 105 104 1970 1969 106 1971 11 872 1946 1776 1945 1777 108 107 1973 1972 109 1974 11 871 1948 1774 1947 1775 111 110 1976 1975 112 1977 11 870 1950 1772 1949 1773 114 113 1979 1978 115 1980 11 869 1952 1770 1951 1771 117 116 1982 1981 118 1983 11 868 1954 1768 1953 1769 120 119 1985 1984 121 1986 11 867 1956 1766 1955 1767 123 122 1988 1987 124 1989 11 866 1958 1764 1957 1765 126 125 1991 1990 127 1992 11 865 1960 1762 1959 1763 129 128 1994 1993 130 1995 11 864 1962 1760 1961 1761 132 131 1997 1996 133 1998 9 863 1963 1759 135 134 2000 1999 136 2001 9 862 1964 1758 141 140 2006 2005 142 2007 18 1709 1354 1353 861 860 2013 2775 307 275 216 3375 3316 2496 3369 2712 2497 2012 2713 20 1699 1353 1352 860 859 2023 2776 1709 1354 861 2013 2774 2497 2496 2012 2713 2712 2498 2022 2714 20 1689 1352 1351 859 858 2033 2777 1699 1353 860 2023 2775 2498 2497 2022 2714 2713 2499 2032 2715 20 857 1683 1351 1350 858 2039 2778 1689 1352 859 2033 2776 2499 2498 2032 2715 2714 2500 2038 2716 20 857 856 1675 1350 1349 2047 2779 1683 1351 858 2039 2777 2500 2499 2038 2716 2715 2501 2046 2717 20 856 855 1665 1349 1348 2057 2780 857 1675 1350 2047 2778 2501 2500 2046 2717 2716 2502 2056 2718 20 855 854 1659 1348 1347 2063 2781 856 1665 1349 2057 2779 2502 2501 2056 2718 2717 2503 2062 2719 20 854 853 1651 1347 1346 2071 2782 855 1659 1348 2063 2780 2503 2502 2062 2719 2718 2504 2070 2720 20 853 852 1643 1346 1345 2079 2783 854 1651 1347 2071 2781 2504 2503 2070 2720 2719 2505 2078 2721 20 852 851 1637 1345 1344 2085 2784 853 1643 1346 2079 2782 2505 2504 2078 2721 2720 2506 2084 2722 20 851 850 1629 1344 1343 2093 2785 852 1637 1345 2085 2783 2506 2505 2084 2722 2721 2507 2092 2723 20 850 849 1619 1343 1342 2103 2786 851 1629 1344 2093 2784 2507 2506 2092 2723 2722 2508 2102 2724 20 849 848 1613 1342 1341 2109 2787 850 1619 1343 2103 2785 2508 2507 2102 2724 2723 2509 2108 2725 20 848 847 1605 1341 1340 2117 2788 849 1613 1342 2109 2786 2509 2508 2108 2725 2724 2510 2116 2726 20 847 846 1597 1340 1339 2125 2789 848 1605 1341 2117 2787 2510 2509 2116 2726 2725 2511 2124 2727 20 846 845 1591 1339 1338 2131 2790 847 1597 1340 2125 2788 2511 2510 2124 2727 2726 2512 2130 2728 20 845 844 1583 1338 1337 2139 2791 846 1591 1339 2131 2789 2512 2511 2130 2728 2727 2513 2138 2729 20 844 843 1573 1337 1336 2149 2792 845 1583 1338 2139 2790 2513 2512 2138 2729 2728 2514 2148 2730 20 843 842 1567 1336 1335 2155 2793 844 1573 1337 2149 2791 2514 2513 2148 2730 2729 2515 2154 2731 20 842 841 1559 1335 1334 2163 2794 843 1567 1336 2155 2792 2515 2514 2154 2731 2730 2516 2162 2732 20 841 840 1551 1334 1333 2171 2795 842 1559 1335 2163 2793 2516 2515 2162 2732 2731 2517 2170 2733 20 840 839 1545 1333 1332 2177 2796 841 1551 1334 2171 2794 2517 2516 2170 2733 2732 2518 2176 2734 20 839 838 1537 1332 1331 2185 2797 840 1545 1333 2177 2795 2518 2517 2176 2734 2733 2519 2184 2735 20 838 837 1527 1331 1330 2195 2798 839 1537 1332 2185 2796 2519 2518 2184 2735 2734 2520 2194 2736 20 837 836 1521 1330 1329 2201 2799 838 1527 1331 2195 2797 2520 2519 2194 2736 2735 2521 2200 2737 20 836 835 1513 1329 1328 2209 2800 837 1521 1330 2201 2798 2521 2520 2200 2737 2736 2522 2208 2738 20 835 834 1505 1328 1327 2217 2801 836 1513 1329 2209 2799 2522 2521 2208 2738 2737 2523 2216 2739 20 834 833 1499 1327 1326 2223 2802 835 1505 1328 2217 2800 2523 2522 2216 2739 2738 2524 2222 2740 20 833 832 1489 1326 1325 2233 2803 834 1499 1327 2223 2801 2524 2523 2222 2740 2739 2525 2232 2741 20 832 831 1479 1325 1324 2243 2804 833 1489 1326 2233 2802 2525 2524 2232 2741 2740 2526 2242 2742 20 831 830 1473 1324 1323 2249 2805 832 1479 1325 2243 2803 2526 2525 2242 2742 2741 2527 2248 2743 20 830 829 1465 1323 1322 2257 2806 831 1473 1324 2249 2804 2527 2526 2248 2743 2742 2528 2256 2744 20 829 828 1457 1322 1321 2265 2807 830 1465 1323 2257 2805 2528 2527 2256 2744 2743 2529 2264 2745 20 828 827 1451 1321 1320 2271 2808 829 1457 1322 2265 2806 2529 2528 2264 2745 2744 2530 2270 2746 20 827 826 1443 1320 1319 2279 2809 828 1451 1321 2271 2807 2530 2529 2270 2746 2745 2531 2278 2747 20 826 825 1437 1319 1318 2285 2810 827 1443 1320 2279 2808 2531 2530 2278 2747 2746 2532 2284 2748 20 825 824 1431 1318 1317 2291 2811 826 1437 1319 2285 2809 2532 2531 2284 2748 2747 2533 2290 2749 20 824 823 1425 1317 1316 2297 2812 825 1431 1318 2291 2810 2533 2532 2290 2749 2748 2534 2296 2750 20 823 822 1419 1316 1315 2303 2813 824 1425 1317 2297 2811 2534 2533 2296 2750 2749 2535 2302 2751 20 822 821 1413 1315 1314 2309 2814 823 1419 1316 2303 2812 2535 2534 2302 2751 2750 2536 2308 2752 20 821 820 1407 1314 1313 2315 2815 822 1413 1315 2309 2813 2536 2535 2308 2752 2751 2537 2314 2753 20 820 819 1399 1313 1312 2323 2816 821 1407 1314 2315 2814 2537 2536 2314 2753 2752 2538 2322 2754 18 819 503 464 410 1312 3213 3132 820 1399 1313 2323 2815 2538 2537 2322 2754 2753 3207 24 2498 2497 2455 2454 2023 2022 2021 2020 2820 2819 2818 2496 2453 2013 2012 2011 2757 2756 2713 2712 2670 2669 2714 2671 28 817 815 1701 1699 1365 1353 1352 2023 2021 2820 1709 1354 878 2013 2757 2497 2496 2454 2453 2012 2011 2817 2756 2498 2455 2022 2020 2819 25 2499 2498 2456 2455 2033 2032 2031 2030 2822 2821 2820 2497 2454 2023 2022 2021 2020 2818 2817 2714 2713 2671 2670 2715 2672 30 815 813 1691 1689 1365 1352 1351 2033 2031 2822 817 1701 1699 1353 2023 2021 2818 2498 2497 2455 2454 2022 2020 2819 2817 2499 2456 2032 2030 2821 24 2500 2499 2457 2456 2039 2038 2037 2824 2823 2822 2498 2455 2033 2032 2031 2030 2820 2819 2715 2714 2672 2671 2716 2673 28 813 811 1683 1351 1350 2039 2824 815 1691 1689 1365 1352 2033 2031 2820 2499 2498 2456 2455 2032 2030 2821 2819 2500 2457 2038 2037 2823 24 2501 2500 2458 2457 2047 2046 2045 2044 2826 2825 2824 2499 2456 2039 2038 2037 2822 2821 2716 2715 2673 2672 2717 2674 28 811 809 1677 1675 1364 1350 1349 2047 2045 2826 813 1683 1351 2039 2822 2500 2499 2457 2456 2038 2037 2823 2821 2501 2458 2046 2044 2825 25 2502 2501 2459 2458 2057 2056 2055 2054 2828 2827 2826 2500 2457 2047 2046 2045 2044 2824 2823 2717 2716 2674 2673 2718 2675 30 809 807 1667 1665 1364 1349 1348 2057 2055 2828 811 1677 1675 1350 2047 2045 2824 2501 2500 2458 2457 2046 2044 2825 2823 2502 2459 2056 2054 2827 24 2503 2502 2460 2459 2063 2062 2061 2830 2829 2828 2501 2458 2057 2056 2055 2054 2826 2825 2718 2717 2675 2674 2719 2676 28 807 805 1659 1348 1347 2063 2830 809 1667 1665 1364 1349 2057 2055 2826 2502 2501 2459 2458 2056 2054 2827 2825 2503 2460 2062 2061 2829 24 2504 2503 2461 2460 2071 2070 2069 2068 2832 2831 2830 2502 2459 2063 2062 2061 2828 2827 2719 2718 2676 2675 2720 2677 28 805 803 1653 1651 1363 1347 1346 2071 2069 2832 807 1659 1348 2063 2828 2503 2502 2460 2459 2062 2061 2829 2827 2504 2461 2070 2068 2831 25 2505 2504 2462 2461 2079 2078 2077 2076 2834 2833 2832 2503 2460 2071 2070 2069 2068 2830 2829 2720 2719 2677 2676 2721 2678 30 803 801 1645 1643 1363 1346 1345 2079 2077 2834 805 1653 1651 1347 2071 2069 2830 2504 2503 2461 2460 2070 2068 2831 2829 2505 2462 2078 2076 2833 24 2506 2505 2463 2462 2085 2084 2083 2836 2835 2834 2504 2461 2079 2078 2077 2076 2832 2831 2721 2720 2678 2677 2722 2679 28 801 799 1637 1345 1344 2085 2836 803 1645 1643 1363 1346 2079 2077 2832 2505 2504 2462 2461 2078 2076 2833 2831 2506 2463 2084 2083 2835 24 2507 2506 2464 2463 2093 2092 2091 2090 2838 2837 2836 2505 2462 2085 2084 2083 2834 2833 2722 2721 2679 2678 2723 2680 28 799 797 1631 1629 1362 1344 1343 2093 2091 2838 801 1637 1345 2085 2834 2506 2505 2463 2462 2084 2083 2835 2833 2507 2464 2092 2090 2837 25 2508 2507 2465 2464 2103 2102 2101 2100 2840 2839 2838 2506 2463 2093 2092 2091 2090 2836 2835 2723 2722 2680 2679 2724 2681 30 797 795 1621 1619 1362 1343 1342 2103 2101 2840 799 1631 1629 1344 2093 2091 2836 2507 2506 2464 2463 2092 2090 2837 2835 2508 2465 2102 2100 2839 24 2509 2508 2466 2465 2109 2108 2107 2842 2841 2840 2507 2464 2103 2102 2101 2100 2838 2837 2724 2723 2681 2680 2725 2682 28 795 793 1613 1342 1341 2109 2842 797 1621 1619 1362 1343 2103 2101 2838 2508 2507 2465 2464 2102 2100 2839 2837 2509 2466 2108 2107 2841 24 2510 2509 2467 2466 2117 2116 2115 2114 2844 2843 2842 2508 2465 2109 2108 2107 2840 2839 2725 2724 2682 2681 2726 2683 28 793 791 1607 1605 1361 1341 1340 2117 2115 2844 795 1613 1342 2109 2840 2509 2508 2466 2465 2108 2107 2841 2839 2510 2467 2116 2114 2843 25 2511 2510 2468 2467 2125 2124 2123 2122 2846 2845 2844 2509 2466 2117 2116 2115 2114 2842 2841 2726 2725 2683 2682 2727 2684 30 791 789 1599 1597 1361 1340 1339 2125 2123 2846 793 1607 1605 1341 2117 2115 2842 2510 2509 2467 2466 2116 2114 2843 2841 2511 2468 2124 2122 2845 24 2512 2511 2469 2468 2131 2130 2129 2848 2847 2846 2510 2467 2125 2124 2123 2122 2844 2843 2727 2726 2684 2683 2728 2685 28 789 787 1591 1339 1338 2131 2848 791 1599 1597 1361 1340 2125 2123 2844 2511 2510 2468 2467 2124 2122 2845 2843 2512 2469 2130 2129 2847 24 2513 2512 2470 2469 2139 2138 2137 2136 2850 2849 2848 2511 2468 2131 2130 2129 2846 2845 2728 2727 2685 2684 2729 2686 28 787 785 1585 1583 1360 1338 1337 2139 2137 2850 789 1591 1339 2131 2846 2512 2511 2469 2468 2130 2129 2847 2845 2513 2470 2138 2136 2849 25 2514 2513 2471 2470 2149 2148 2147 2146 2852 2851 2850 2512 2469 2139 2138 2137 2136 2848 2847 2729 2728 2686 2685 2730 2687 30 785 783 1575 1573 1360 1337 1336 2149 2147 2852 787 1585 1583 1338 2139 2137 2848 2513 2512 2470 2469 2138 2136 2849 2847 2514 2471 2148 2146 2851 24 2515 2514 2472 2471 2155 2154 2153 2854 2853 2852 2513 2470 2149 2148 2147 2146 2850 2849 2730 2729 2687 2686 2731 2688 28 783 781 1567 1336 1335 2155 2854 785 1575 1573 1360 1337 2149 2147 2850 2514 2513 2471 2470 2148 2146 2851 2849 2515 2472 2154 2153 2853 24 2516 2515 2473 2472 2163 2162 2161 2160 2856 2855 2854 2514 2471 2155 2154 2153 2852 2851 2731 2730 2688 2687 2732 2689 28 781 779 1561 1559 1359 1335 1334 2163 2161 2856 783 1567 1336 2155 2852 2515 2514 2472 2471 2154 2153 2853 2851 2516 2473 2162 2160 2855 25 2517 2516 2474 2473 2171 2170 2169 2168 2858 2857 2856 2515 2472 2163 2162 2161 2160 2854 2853 2732 2731 2689 2688 2733 2690 30 779 777 1553 1551 1359 1334 1333 2171 2169 2858 781 1561 1559 1335 2163 2161 2854 2516 2515 2473 2472 2162 2160 2855 2853 2517 2474 2170 2168 2857 24 2518 2517 2475 2474 2177 2176 2175 2860 2859 2858 2516 2473 2171 2170 2169 2168 2856 2855 2733 2732 2690 2689 2734 2691 28 777 775 1545 1333 1332 2177 2860 779 1553 1551 1359 1334 2171 2169 2856 2517 2516 2474 2473 2170 2168 2857 2855 2518 2475 2176 2175 2859 24 2519 2518 2476 2475 2185 2184 2183 2182 2862 2861 2860 2517 2474 2177 2176 2175 2858 2857 2734 2733 2691 2690 2735 2692 28 775 773 1539 1537 1358 1332 1331 2185 2183 2862 777 1545 1333 2177 2858 2518 2517 2475 2474 2176 2175 2859 2857 2519 2476 2184 2182 2861 25 2520 2519 2477 2476 2195 2194 2193 2192 2864 2863 2862 2518 2475 2185 2184 2183 2182 2860 2859 2735 2734 2692 2691 2736 2693 30 773 771 1529 1527 1358 1331 1330 2195 2193 2864 775 1539 1537 1332 2185 2183 2860 2519 2518 2476 2475 2184 2182 2861 2859 2520 2477 2194 2192 2863 24 2521 2520 2478 2477 2201 2200 2199 2866 2865 2864 2519 2476 2195 2194 2193 2192 2862 2861 2736 2735 2693 2692 2737 2694 28 771 769 1521 1330 1329 2201 2866 773 1529 1527 1358 1331 2195 2193 2862 2520 2519 2477 2476 2194 2192 2863 2861 2521 2478 2200 2199 2865 24 2522 2521 2479 2478 2209 2208 2207 2206 2868 2867 2866 2520 2477 2201 2200 2199 2864 2863 2737 2736 2694 2693 2738 2695 28 769 767 1515 1513 1357 1329 1328 2209 2207 2868 771 1521 1330 2201 2864 2521 2520 2478 2477 2200 2199 2865 2863 2522 2479 2208 2206 2867 25 2523 2522 2480 2479 2217 2216 2215 2214 2870 2869 2868 2521 2478 2209 2208 2207 2206 2866 2865 2738 2737 2695 2694 2739 2696 30 767 765 1507 1505 1357 1328 1327 2217 2215 2870 769 1515 1513 1329 2209 2207 2866 2522 2521 2479 2478 2208 2206 2867 2865 2523 2480 2216 2214 2869 24 2524 2523 2481 2480 2223 2222 2221 2872 2871 2870 2522 2479 2217 2216 2215 2214 2868 2867 2739 2738 2696 2695 2740 2697 28 765 763 1499 1327 1326 2223 2872 767 1507 1505 1357 1328 2217 2215 2868 2523 2522 2480 2479 2216 2214 2869 2867 2524 2481 2222 2221 2871 24 2525 2524 2482 2481 2233 2232 2231 2230 2874 2873 2872 2523 2480 2223 2222 2221 2870 2869 2740 2739 2697 2696 2741 2698 28 763 761 1491 1489 1356 1326 1325 2233 2231 2874 765 1499 1327 2223 2870 2524 2523 2481 2480 2222 2221 2871 2869 2525 2482 2232 2230 2873 25 2526 2525 2483 2482 2243 2242 2241 2240 2876 2875 2874 2524 2481 2233 2232 2231 2230 2872 2871 2741 2740 2698 2697 2742 2699 30 761 759 1481 1479 1356 1325 1324 2243 2241 2876 763 1491 1489 1326 2233 2231 2872 2525 2524 2482 2481 2232 2230 2873 2871 2526 2483 2242 2240 2875 24 2527 2526 2484 2483 2249 2248 2247 2878 2877 2876 2525 2482 2243 2242 2241 2240 2874 2873 2742 2741 2699 2698 2743 2700 28 759 757 1473 1324 1323 2249 2878 761 1481 1479 1356 1325 2243 2241 2874 2526 2525 2483 2482 2242 2240 2875 2873 2527 2484 2248 2247 2877 24 2528 2527 2485 2484 2257 2256 2255 2254 2880 2879 2878 2526 2483 2249 2248 2247 2876 2875 2743 2742 2700 2699 2744 2701 28 757 755 1467 1465 1355 1323 1322 2257 2255 2880 759 1473 1324 2249 2876 2527 2526 2484 2483 2248 2247 2877 2875 2528 2485 2256 2254 2879 25 2529 2528 2486 2485 2265 2264 2263 2262 2882 2881 2880 2527 2484 2257 2256 2255 2254 2878 2877 2744 2743 2701 2700 2745 2702 30 755 753 1459 1457 1355 1322 1321 2265 2263 2882 757 1467 1465 1323 2257 2255 2878 2528 2527 2485 2484 2256 2254 2879 2877 2529 2486 2264 2262 2881 24 2530 2529 2487 2486 2271 2270 2269 2884 2883 2882 2528 2485 2265 2264 2263 2262 2880 2879 2745 2744 2702 2701 2746 2703 28 753 751 1451 1321 1320 2271 2884 755 1459 1457 1355 1322 2265 2263 2880 2529 2528 2486 2485 2264 2262 2881 2879 2530 2487 2270 2269 2883 24 2531 2530 2488 2487 2279 2278 2277 2276 2886 2885 2884 2529 2486 2271 2270 2269 2882 2881 2746 2745 2703 2702 2747 2704 27 751 749 1445 1443 1320 1319 2279 2277 2886 753 1451 1321 2271 2882 2530 2529 2487 2486 2270 2269 2883 2881 2531 2488 2278 2276 2885 25 94 2532 2531 2489 2488 2285 2284 2283 2888 2887 2886 2530 2487 2279 2278 2277 2276 2884 2883 2747 2746 2704 2703 2748 2705 28 749 747 1437 1319 1318 2285 2888 751 1445 1443 1320 2279 2277 2884 2531 2530 2488 2487 2278 2276 2885 2883 94 2532 2489 2284 2283 2887 25 95 2533 2532 2490 2489 2291 2290 2289 2890 2889 2888 94 2531 2488 2285 2284 2283 2886 2885 2748 2747 2705 2704 2749 2706 27 747 745 1431 1318 1317 2291 2890 749 1437 1319 2285 2886 94 2532 2531 2489 2488 2284 2283 2887 2885 95 2533 2490 2290 2289 2889 25 96 2534 2533 2491 2490 2297 2296 2295 2892 2891 2890 95 2532 2489 2291 2290 2289 2888 2887 2749 2748 2706 2705 2750 2707 27 745 743 1425 1317 1316 2297 2892 747 1431 1318 2291 2888 95 2533 2532 2490 2489 2290 2289 2889 2887 96 2534 2491 2296 2295 2891 25 97 2535 2534 2492 2491 2303 2302 2301 2894 2893 2892 96 2533 2490 2297 2296 2295 2890 2889 2750 2749 2707 2706 2751 2708 27 743 741 1419 1316 1315 2303 2894 745 1425 1317 2297 2890 96 2534 2533 2491 2490 2296 2295 2891 2889 97 2535 2492 2302 2301 2893 25 98 2536 2535 2493 2492 2309 2308 2307 2896 2895 2894 97 2534 2491 2303 2302 2301 2892 2891 2751 2750 2708 2707 2752 2709 27 741 739 1413 1315 1314 2309 2896 743 1419 1316 2303 2892 97 2535 2534 2492 2491 2302 2301 2893 2891 98 2536 2493 2308 2307 2895 25 99 2537 2536 2494 2493 2315 2314 2313 2898 2897 2896 98 2535 2492 2309 2308 2307 2894 2893 2752 2751 2709 2708 2753 2710 27 739 737 1407 1314 1313 2315 2898 741 1413 1315 2309 2894 98 2536 2535 2493 2492 2308 2307 2895 2893 99 2537 2494 2314 2313 2897 25 2538 2537 2495 2494 2323 2322 2321 2320 2898 2760 2759 99 2536 2493 2315 2314 2313 2896 2895 2753 2752 2710 2709 2754 2711 28 737 1401 1399 1313 1312 875 2323 2321 2760 739 1407 1314 2315 2896 99 2537 2536 2494 2493 2314 2313 2897 2895 2538 2495 2322 2320 2759 21 2455 2454 2412 2411 2021 2020 2019 2018 2901 2900 2453 2410 2011 2010 2755 2670 2669 2627 2626 2671 2628 23 2456 2455 2413 2412 2031 2030 2029 2028 2902 2901 2454 2411 2021 2020 2019 2018 2899 2671 2670 2628 2627 2672 2629 24 734 1693 1691 1376 1365 2031 2029 1703 1701 2021 2019 2455 2454 2412 2411 2020 2018 2900 2899 2456 2413 2030 2028 2902 21 2457 2456 2414 2413 2037 2036 2903 2455 2412 2031 2030 2029 2028 2901 2900 2672 2671 2629 2628 2673 2630 20 2458 2457 2415 2414 2045 2044 2043 2905 2904 2456 2413 2037 2036 2902 2673 2672 2630 2629 2674 2631 22 2459 2458 2416 2415 2055 2054 2053 2052 2906 2905 2457 2414 2045 2044 2043 2903 2674 2673 2631 2630 2675 2632 22 730 1669 1667 1375 1364 2055 2053 1677 2045 2458 2457 2415 2414 2044 2043 2904 2903 2459 2416 2054 2052 2906 21 2460 2459 2417 2416 2061 2060 2907 2458 2415 2055 2054 2053 2052 2905 2904 2675 2674 2632 2631 2676 2633 20 2461 2460 2418 2417 2069 2068 2067 2909 2908 2459 2416 2061 2060 2906 2676 2675 2633 2632 2677 2634 21 2462 2461 2419 2418 2077 2076 2075 2910 2909 2460 2417 2069 2068 2067 2907 2677 2676 2634 2633 2678 2635 20 726 1645 1374 1363 2077 1653 2069 2461 2460 2418 2417 2068 2067 2908 2907 2462 2419 2076 2075 2910 20 2463 2462 2420 2419 2083 2082 2911 2461 2418 2077 2076 2075 2909 2908 2678 2677 2635 2634 2679 2636 20 2464 2463 2421 2420 2091 2090 2089 2913 2912 2462 2419 2083 2082 2910 2679 2678 2636 2635 2680 2637 22 2465 2464 2422 2421 2101 2100 2099 2098 2914 2913 2463 2420 2091 2090 2089 2911 2680 2679 2637 2636 2681 2638 22 722 1623 1621 1373 1362 2101 2099 1631 2091 2464 2463 2421 2420 2090 2089 2912 2911 2465 2422 2100 2098 2914 21 2466 2465 2423 2422 2107 2106 2915 2464 2421 2101 2100 2099 2098 2913 2912 2681 2680 2638 2637 2682 2639 20 2467 2466 2424 2423 2115 2114 2113 2917 2916 2465 2422 2107 2106 2914 2682 2681 2639 2638 2683 2640 21 2468 2467 2425 2424 2123 2122 2121 2918 2917 2466 2423 2115 2114 2113 2915 2683 2682 2640 2639 2684 2641 20 718 1599 1372 1361 2123 1607 2115 2467 2466 2424 2423 2114 2113 2916 2915 2468 2425 2122 2121 2918 20 2469 2468 2426 2425 2129 2128 2919 2467 2424 2123 2122 2121 2917 2916 2684 2683 2641 2640 2685 2642 20 2470 2469 2427 2426 2137 2136 2135 2921 2920 2468 2425 2129 2128 2918 2685 2684 2642 2641 2686 2643 22 2471 2470 2428 2427 2147 2146 2145 2144 2922 2921 2469 2426 2137 2136 2135 2919 2686 2685 2643 2642 2687 2644 22 714 1577 1575 1371 1360 2147 2145 1585 2137 2470 2469 2427 2426 2136 2135 2920 2919 2471 2428 2146 2144 2922 21 2472 2471 2429 2428 2153 2152 2923 2470 2427 2147 2146 2145 2144 2921 2920 2687 2686 2644 2643 2688 2645 20 2473 2472 2430 2429 2161 2160 2159 2925 2924 2471 2428 2153 2152 2922 2688 2687 2645 2644 2689 2646 21 2474 2473 2431 2430 2169 2168 2167 2926 2925 2472 2429 2161 2160 2159 2923 2689 2688 2646 2645 2690 2647 20 710 1553 1370 1359 2169 1561 2161 2473 2472 2430 2429 2160 2159 2924 2923 2474 2431 2168 2167 2926 20 2475 2474 2432 2431 2175 2174 2927 2473 2430 2169 2168 2167 2925 2924 2690 2689 2647 2646 2691 2648 20 2476 2475 2433 2432 2183 2182 2181 2929 2928 2474 2431 2175 2174 2926 2691 2690 2648 2647 2692 2649 22 2477 2476 2434 2433 2193 2192 2191 2190 2930 2929 2475 2432 2183 2182 2181 2927 2692 2691 2649 2648 2693 2650 22 706 1531 1529 1369 1358 2193 2191 1539 2183 2476 2475 2433 2432 2182 2181 2928 2927 2477 2434 2192 2190 2930 21 2478 2477 2435 2434 2199 2198 2931 2476 2433 2193 2192 2191 2190 2929 2928 2693 2692 2650 2649 2694 2651 20 2479 2478 2436 2435 2207 2206 2205 2933 2932 2477 2434 2199 2198 2930 2694 2693 2651 2650 2695 2652 21 2480 2479 2437 2436 2215 2214 2213 2934 2933 2478 2435 2207 2206 2205 2931 2695 2694 2652 2651 2696 2653 20 702 1507 1368 1357 2215 1515 2207 2479 2478 2436 2435 2206 2205 2932 2931 2480 2437 2214 2213 2934 20 2481 2480 2438 2437 2221 2220 2935 2479 2436 2215 2214 2213 2933 2932 2696 2695 2653 2652 2697 2654 21 2482 2481 2439 2438 2231 2230 2229 2228 2937 2936 2480 2437 2221 2220 2934 2697 2696 2654 2653 2698 2655 23 2483 2482 2440 2439 2241 2240 2239 2238 2938 2937 2481 2438 2231 2230 2229 2228 2935 2698 2697 2655 2654 2699 2656 24 698 1483 1481 1367 1356 2241 2239 1493 1491 2231 2229 2482 2481 2439 2438 2230 2228 2936 2935 2483 2440 2240 2238 2938 21 2484 2483 2441 2440 2247 2246 2939 2482 2439 2241 2240 2239 2238 2937 2936 2699 2698 2656 2655 2700 2657 20 2485 2484 2442 2441 2255 2254 2253 2941 2940 2483 2440 2247 2246 2938 2700 2699 2657 2656 2701 2658 21 2486 2485 2443 2442 2263 2262 2261 2942 2941 2484 2441 2255 2254 2253 2939 2701 2700 2658 2657 2702 2659 20 694 1459 1366 1355 2263 1467 2255 2485 2484 2442 2441 2254 2253 2940 2939 2486 2443 2262 2261 2942 20 2487 2486 2444 2443 2269 2268 2943 2485 2442 2263 2262 2261 2941 2940 2702 2701 2659 2658 2703 2660 21 2488 2487 2445 2444 2277 2276 2275 1883 1882 2944 2486 2443 2269 2268 2942 2703 2702 2660 2659 2704 2661 22 2489 2488 2446 2445 2283 2282 1884 1882 2946 2487 2444 2277 2276 2275 1883 2943 2704 2703 2661 2660 2705 2662 15 2495 2494 2452 2451 2321 2320 2319 2954 2947 2758 690 1401 99 93 2950 21 2490 2489 2447 2446 2289 2288 1885 1884 2948 2488 2445 2283 2282 1882 2944 2705 2704 2662 2661 2706 2663 18 2495 2494 2452 2451 2321 2320 2319 2954 2945 2758 99 93 2950 2493 2450 2313 2312 2952 21 2491 2490 2448 2447 2295 2294 1886 1885 2949 2489 2446 2289 2288 1884 2946 2706 2705 2663 2662 2707 2664 21 2492 2491 2449 2448 2301 2300 1886 2953 2951 2490 2447 2295 2294 1885 2948 2707 2706 2664 2663 2708 2665 20 2493 2492 2450 2449 2307 2306 2953 2952 2951 2494 2451 2313 2312 2954 2947 99 93 2945 98 92 21 2493 2492 2450 2449 2307 2306 2953 2952 2950 2491 2448 2301 2300 1886 2949 2708 2707 2665 2664 2709 2666 21 2494 2493 2451 2450 2313 2312 2954 2950 2947 2492 2449 2307 2306 2953 2951 2709 2708 2666 2665 2710 2667 19 2492 2491 2449 2448 2301 2300 1886 2951 2949 2493 2450 2307 2306 2952 2950 98 92 97 91 22 2495 2494 2452 2451 2321 2320 2319 2947 2945 2758 2493 2450 2313 2312 2952 2950 2710 2709 2667 2666 2711 2668 21 2411 2410 2368 2367 2010 2009 2956 3399 3395 3332 3328 3314 3313 3312 3311 3357 3351 2626 2583 2627 2584 21 2412 2411 2369 2368 2019 2018 2017 2016 2958 2957 2410 2367 2010 2009 2955 2627 2626 2584 2583 2628 2585 23 2413 2412 2370 2369 2029 2028 2027 2026 2959 2958 2411 2368 2019 2018 2017 2016 2956 2628 2627 2585 2584 2629 2586 24 677 1695 1693 1387 1376 2029 2027 1705 1703 2019 2017 2412 2411 2369 2368 2018 2016 2957 2956 2413 2370 2028 2026 2959 21 2414 2413 2371 2370 2036 2035 2960 2412 2369 2029 2028 2027 2026 2958 2957 2629 2628 2586 2585 2630 2587 18 2415 2414 2372 2371 2043 2042 2961 2413 2370 2036 2035 2959 2630 2629 2587 2586 2631 2588 20 2416 2415 2373 2372 2053 2052 2051 2050 2962 2414 2371 2043 2042 2960 2631 2630 2588 2587 2632 2589 20 2417 2416 2374 2373 2060 2059 2963 2415 2372 2053 2052 2051 2050 2961 2632 2631 2589 2588 2633 2590 18 2418 2417 2375 2374 2067 2066 2964 2416 2373 2060 2059 2962 2633 2632 2590 2589 2634 2591 18 2419 2418 2376 2375 2075 2074 2965 2417 2374 2067 2066 2963 2634 2633 2591 2590 2635 2592 18 2420 2419 2377 2376 2082 2081 2966 2418 2375 2075 2074 2964 2635 2634 2592 2591 2636 2593 18 2421 2420 2378 2377 2089 2088 2967 2419 2376 2082 2081 2965 2636 2635 2593 2592 2637 2594 20 2422 2421 2379 2378 2099 2098 2097 2096 2968 2420 2377 2089 2088 2966 2637 2636 2594 2593 2638 2595 20 2423 2422 2380 2379 2106 2105 2969 2421 2378 2099 2098 2097 2096 2967 2638 2637 2595 2594 2639 2596 18 2424 2423 2381 2380 2113 2112 2970 2422 2379 2106 2105 2968 2639 2638 2596 2595 2640 2597 18 2425 2424 2382 2381 2121 2120 2971 2423 2380 2113 2112 2969 2640 2639 2597 2596 2641 2598 18 2426 2425 2383 2382 2128 2127 2972 2424 2381 2121 2120 2970 2641 2640 2598 2597 2642 2599 18 2427 2426 2384 2383 2135 2134 2973 2425 2382 2128 2127 2971 2642 2641 2599 2598 2643 2600 20 2428 2427 2385 2384 2145 2144 2143 2142 2974 2426 2383 2135 2134 2972 2643 2642 2600 2599 2644 2601 20 2429 2428 2386 2385 2152 2151 2975 2427 2384 2145 2144 2143 2142 2973 2644 2643 2601 2600 2645 2602 18 2430 2429 2387 2386 2159 2158 2976 2428 2385 2152 2151 2974 2645 2644 2602 2601 2646 2603 18 2431 2430 2388 2387 2167 2166 2977 2429 2386 2159 2158 2975 2646 2645 2603 2602 2647 2604 18 2432 2431 2389 2388 2174 2173 2978 2430 2387 2167 2166 2976 2647 2646 2604 2603 2648 2605 18 2433 2432 2390 2389 2181 2180 2979 2431 2388 2174 2173 2977 2648 2647 2605 2604 2649 2606 20 2434 2433 2391 2390 2191 2190 2189 2188 2980 2432 2389 2181 2180 2978 2649 2648 2606 2605 2650 2607 20 2435 2434 2392 2391 2198 2197 2981 2433 2390 2191 2190 2189 2188 2979 2650 2649 2607 2606 2651 2608 18 2436 2435 2393 2392 2205 2204 2982 2434 2391 2198 2197 2980 2651 2650 2608 2607 2652 2609 18 2437 2436 2394 2393 2213 2212 2983 2435 2392 2205 2204 2981 2652 2651 2609 2608 2653 2610 18 2438 2437 2395 2394 2220 2219 2984 2436 2393 2213 2212 2982 2653 2652 2610 2609 2654 2611 21 2439 2438 2396 2395 2229 2228 2227 2226 2986 2985 2437 2394 2220 2219 2983 2654 2653 2611 2610 2655 2612 23 2440 2439 2397 2396 2239 2238 2237 2236 2987 2986 2438 2395 2229 2228 2227 2226 2984 2655 2654 2612 2611 2656 2613 24 649 1485 1483 1378 1367 2239 2237 1495 1493 2229 2227 2439 2438 2396 2395 2228 2226 2985 2984 2440 2397 2238 2236 2987 21 2441 2440 2398 2397 2246 2245 2988 2439 2396 2239 2238 2237 2236 2986 2985 2656 2655 2613 2612 2657 2614 18 2442 2441 2399 2398 2253 2252 2989 2440 2397 2246 2245 2987 2657 2656 2614 2613 2658 2615 18 2443 2442 2400 2399 2261 2260 2990 2441 2398 2253 2252 2988 2658 2657 2615 2614 2659 2616 18 2444 2443 2401 2400 2268 2267 2991 2442 2399 2261 2260 2989 2659 2658 2616 2615 2660 2617 20 2445 2444 2402 2401 2275 2274 1878 1877 2992 2443 2400 2268 2267 2990 2660 2659 2617 2616 2661 2618 21 2446 2445 2403 2402 2282 2281 1879 1877 2994 2444 2401 2275 2274 1878 2991 2661 2660 2618 2617 2662 2619 13 2452 2451 2409 2408 2319 2318 3003 3002 2995 642 93 87 2998 21 2447 2446 2404 2403 2288 2287 1880 1879 2996 2445 2402 2282 2281 1877 2992 2662 2661 2619 2618 2663 2620 17 2452 2451 2409 2408 2319 2318 3003 3002 2993 93 87 2998 2450 2407 2312 2311 3000 21 2448 2447 2405 2404 2294 2293 1881 1880 2997 2446 2403 2288 2287 1879 2994 2663 2662 2620 2619 2664 2621 21 2449 2448 2406 2405 2300 2299 1881 3001 2999 2447 2404 2294 2293 1880 2996 2664 2663 2621 2620 2665 2622 20 2450 2449 2407 2406 2306 2305 3001 3000 2999 2451 2408 2312 2311 3002 2995 93 87 2993 92 86 21 2450 2449 2407 2406 2306 2305 3001 3000 2998 2448 2405 2300 2299 1881 2997 2665 2664 2622 2621 2666 2623 21 2451 2450 2408 2407 2312 2311 3002 2998 2995 2449 2406 2306 2305 3001 2999 2666 2665 2623 2622 2667 2624 19 2449 2448 2406 2405 2300 2299 1881 2999 2997 2450 2407 2306 2305 3000 2998 92 86 91 85 21 2452 2451 2409 2408 2319 2318 3003 2995 2993 2450 2407 2312 2311 3000 2998 2667 2666 2624 2623 2668 2625 20 2452 2409 3224 3175 3169 3131 3130 2451 2408 2319 2318 3002 2995 2993 2668 2667 2625 2624 3197 3191 21 2368 2367 2325 2324 2009 2008 3005 3410 3406 3328 3324 3312 3311 3310 3309 2540 3351 3345 2583 2541 2584 21 2369 2368 2326 2325 2017 2016 2015 2014 3007 3006 2367 2324 2009 2008 3004 2541 2540 2584 2583 2542 2585 23 2370 2369 2327 2326 2027 2026 2025 2024 3008 3007 2368 2325 2017 2016 2015 2014 3005 2542 2541 2585 2584 2543 2586 24 628 1697 1695 1398 1387 2027 2025 1707 1705 2017 2015 2369 2368 2326 2325 2016 2014 3006 3005 2370 2327 2026 2024 3008 21 2371 2370 2328 2327 2035 2034 3009 2369 2326 2027 2026 2025 2024 3007 3006 2543 2542 2586 2585 2544 2587 20 2372 2371 2329 2328 2042 2041 2040 3011 3010 2370 2327 2035 2034 3008 2544 2543 2587 2586 2545 2588 22 2373 2372 2330 2329 2051 2050 2049 2048 3012 3011 2371 2328 2042 2041 2040 3009 2545 2544 2588 2587 2546 2589 22 624 1673 1671 1397 1386 2051 2049 1681 2041 2372 2371 2329 2328 2042 2040 3010 3009 2373 2330 2050 2048 3012 21 2374 2373 2331 2330 2059 2058 3013 2372 2329 2051 2050 2049 2048 3011 3010 2546 2545 2589 2588 2547 2590 20 2375 2374 2332 2331 2066 2065 2064 3015 3014 2373 2330 2059 2058 3012 2547 2546 2590 2589 2548 2591 21 2376 2375 2333 2332 2074 2073 2072 3016 3015 2374 2331 2066 2065 2064 3013 2548 2547 2591 2590 2549 2592 20 620 1649 1396 1385 2073 1657 2065 2375 2374 2332 2331 2066 2064 3014 3013 2376 2333 2074 2072 3016 20 2377 2376 2334 2333 2081 2080 3017 2375 2332 2074 2073 2072 3015 3014 2549 2548 2592 2591 2550 2593 20 2378 2377 2335 2334 2088 2087 2086 3019 3018 2376 2333 2081 2080 3016 2550 2549 2593 2592 2551 2594 22 2379 2378 2336 2335 2097 2096 2095 2094 3020 3019 2377 2334 2088 2087 2086 3017 2551 2550 2594 2593 2552 2595 22 616 1627 1625 1395 1384 2097 2095 1635 2087 2378 2377 2335 2334 2088 2086 3018 3017 2379 2336 2096 2094 3020 21 2380 2379 2337 2336 2105 2104 3021 2378 2335 2097 2096 2095 2094 3019 3018 2552 2551 2595 2594 2553 2596 20 2381 2380 2338 2337 2112 2111 2110 3023 3022 2379 2336 2105 2104 3020 2553 2552 2596 2595 2554 2597 21 2382 2381 2339 2338 2120 2119 2118 3024 3023 2380 2337 2112 2111 2110 3021 2554 2553 2597 2596 2555 2598 20 612 1603 1394 1383 2119 1611 2111 2381 2380 2338 2337 2112 2110 3022 3021 2382 2339 2120 2118 3024 20 2383 2382 2340 2339 2127 2126 3025 2381 2338 2120 2119 2118 3023 3022 2555 2554 2598 2597 2556 2599 20 2384 2383 2341 2340 2134 2133 2132 3027 3026 2382 2339 2127 2126 3024 2556 2555 2599 2598 2557 2600 22 2385 2384 2342 2341 2143 2142 2141 2140 3028 3027 2383 2340 2134 2133 2132 3025 2557 2556 2600 2599 2558 2601 22 608 1581 1579 1393 1382 2143 2141 1589 2133 2384 2383 2341 2340 2134 2132 3026 3025 2385 2342 2142 2140 3028 21 2386 2385 2343 2342 2151 2150 3029 2384 2341 2143 2142 2141 2140 3027 3026 2558 2557 2601 2600 2559 2602 20 2387 2386 2344 2343 2158 2157 2156 3031 3030 2385 2342 2151 2150 3028 2559 2558 2602 2601 2560 2603 21 2388 2387 2345 2344 2166 2165 2164 3032 3031 2386 2343 2158 2157 2156 3029 2560 2559 2603 2602 2561 2604 20 604 1557 1392 1381 2165 1565 2157 2387 2386 2344 2343 2158 2156 3030 3029 2388 2345 2166 2164 3032 20 2389 2388 2346 2345 2173 2172 3033 2387 2344 2166 2165 2164 3031 3030 2561 2560 2604 2603 2562 2605 20 2390 2389 2347 2346 2180 2179 2178 3035 3034 2388 2345 2173 2172 3032 2562 2561 2605 2604 2563 2606 22 2391 2390 2348 2347 2189 2188 2187 2186 3036 3035 2389 2346 2180 2179 2178 3033 2563 2562 2606 2605 2564 2607 22 600 1535 1533 1391 1380 2189 2187 1543 2179 2390 2389 2347 2346 2180 2178 3034 3033 2391 2348 2188 2186 3036 21 2392 2391 2349 2348 2197 2196 3037 2390 2347 2189 2188 2187 2186 3035 3034 2564 2563 2607 2606 2565 2608 20 2393 2392 2350 2349 2204 2203 2202 3039 3038 2391 2348 2197 2196 3036 2565 2564 2608 2607 2566 2609 21 2394 2393 2351 2350 2212 2211 2210 3040 3039 2392 2349 2204 2203 2202 3037 2566 2565 2609 2608 2567 2610 20 596 1511 1390 1379 2211 1519 2203 2393 2392 2350 2349 2204 2202 3038 3037 2394 2351 2212 2210 3040 20 2395 2394 2352 2351 2219 2218 3041 2393 2350 2212 2211 2210 3039 3038 2567 2566 2610 2609 2568 2611 21 2396 2395 2353 2352 2227 2226 2225 2224 3043 3042 2394 2351 2219 2218 3040 2568 2567 2611 2610 2569 2612 23 2397 2396 2354 2353 2237 2236 2235 2234 3044 3043 2395 2352 2227 2226 2225 2224 3041 2569 2568 2612 2611 2570 2613 24 592 1487 1485 1389 1378 2237 2235 1497 1495 2227 2225 2396 2395 2353 2352 2226 2224 3042 3041 2397 2354 2236 2234 3044 21 2398 2397 2355 2354 2245 2244 3045 2396 2353 2237 2236 2235 2234 3043 3042 2570 2569 2613 2612 2571 2614 20 2399 2398 2356 2355 2252 2251 2250 3047 3046 2397 2354 2245 2244 3044 2571 2570 2614 2613 2572 2615 21 2400 2399 2357 2356 2260 2259 2258 3048 3047 2398 2355 2252 2251 2250 3045 2572 2571 2615 2614 2573 2616 20 588 1463 1388 1377 2259 1471 2251 2399 2398 2356 2355 2252 2250 3046 3045 2400 2357 2260 2258 3048 20 2401 2400 2358 2357 2267 2266 3049 2399 2356 2260 2259 2258 3047 3046 2573 2572 2616 2615 2617 2574 21 2402 2401 2359 2358 2274 2273 2272 1873 1872 3050 2400 2357 2267 2266 3048 2573 2617 2616 2574 2618 2575 22 2403 2402 2360 2359 2281 2280 1874 1872 3052 2401 2358 2274 2273 2272 1873 3049 2618 2617 2575 2574 2619 2576 15 2409 2408 2366 2365 2318 2317 2316 3061 3060 3053 584 1405 87 81 3056 21 2404 2403 2361 2360 2287 2286 1875 1874 3054 2402 2359 2281 2280 1872 3050 2619 2618 2576 2575 2620 2577 18 2409 2408 2366 2365 2318 2317 2316 3061 3060 3051 87 81 3056 2407 2364 2311 2310 3058 21 2405 2404 2362 2361 2293 2292 1876 1875 3055 2403 2360 2287 2286 1874 3052 2620 2619 2577 2576 2621 2578 21 2406 2405 2363 2362 2299 2298 1876 3059 3057 2404 2361 2293 2292 1875 3054 2621 2620 2578 2577 2622 2579 20 2407 2406 2364 2363 2305 2304 3059 3058 3057 2408 2365 2311 2310 3060 3053 87 81 3051 86 80 21 2407 2406 2364 2363 2305 2304 3059 3058 3056 2405 2362 2299 2298 1876 3055 2622 2621 2579 2578 2623 2580 21 2408 2407 2365 2364 2311 2310 3060 3056 3053 2406 2363 2305 2304 3059 3057 2623 2622 2580 2579 2624 2581 19 2406 2405 2363 2362 2299 2298 1876 3057 3055 2407 2364 2305 2304 3058 3056 86 80 85 79 22 2409 2408 2366 2365 2318 2317 2316 3061 3053 3051 2407 2364 2311 2310 3058 3056 2624 2623 2581 2580 2625 2582 21 2409 2366 3233 3169 3163 3130 3129 2408 2365 2318 2317 2316 3060 3053 3051 2625 2624 2582 2581 3191 3185 20 2325 2324 2008 1966 1965 3063 1940 3418 3417 3324 3320 3310 3309 3308 3307 2540 2539 3345 3339 2541 17 2326 2325 2015 2014 1967 1966 1941 3065 3064 2324 2008 1965 3062 2541 2540 2539 2542 18 2327 2326 2025 2024 1968 1967 1942 3066 3065 2325 2015 2014 1966 1941 3063 2542 2541 2543 21 570 1697 1398 2025 1942 1780 1707 2015 1941 1781 2326 2325 2014 1967 1966 3064 3063 2327 2024 1968 3066 16 2328 2327 2034 1969 1968 3067 2326 2025 2024 1967 1942 3065 3064 2543 2542 2544 16 2329 2328 2041 2040 1970 1969 1943 3069 3068 2327 2034 1968 3066 2544 2543 2545 18 2330 2329 2049 2048 1971 1970 1944 3070 3069 2328 2041 2040 1969 1943 3067 2545 2544 2546 21 566 1673 1397 2049 1944 1778 1681 2041 1943 1779 2329 2328 2040 1970 1969 3068 3067 2330 2048 1971 3070 16 2331 2330 2058 1972 1971 3071 2329 2049 2048 1970 1944 3069 3068 2546 2545 2547 16 2332 2331 2065 2064 1973 1972 1945 3073 3072 2330 2058 1971 3070 2547 2546 2548 18 2333 2332 2073 2072 1974 1973 1946 3074 3073 2331 2065 2064 1972 1945 3071 2548 2547 2549 21 562 1649 1396 2073 1946 1776 1657 2065 1945 1777 2332 2331 2064 1973 1972 3072 3071 2333 2072 1974 3074 16 2334 2333 2080 1975 1974 3075 2332 2073 2072 1973 1946 3073 3072 2549 2548 2550 16 2335 2334 2087 2086 1976 1975 1947 3077 3076 2333 2080 1974 3074 2550 2549 2551 18 2336 2335 2095 2094 1977 1976 1948 3078 3077 2334 2087 2086 1975 1947 3075 2551 2550 2552 21 558 1627 1395 2095 1948 1774 1635 2087 1947 1775 2335 2334 2086 1976 1975 3076 3075 2336 2094 1977 3078 16 2337 2336 2104 1978 1977 3079 2335 2095 2094 1976 1948 3077 3076 2552 2551 2553 16 2338 2337 2111 2110 1979 1978 1949 3081 3080 2336 2104 1977 3078 2553 2552 2554 18 2339 2338 2119 2118 1980 1979 1950 3082 3081 2337 2111 2110 1978 1949 3079 2554 2553 2555 21 554 1603 1394 2119 1950 1772 1611 2111 1949 1773 2338 2337 2110 1979 1978 3080 3079 2339 2118 1980 3082 16 2340 2339 2126 1981 1980 3083 2338 2119 2118 1979 1950 3081 3080 2555 2554 2556 16 2341 2340 2133 2132 1982 1981 1951 3085 3084 2339 2126 1980 3082 2556 2555 2557 18 2342 2341 2141 2140 1983 1982 1952 3086 3085 2340 2133 2132 1981 1951 3083 2557 2556 2558 21 550 1581 1393 2141 1952 1770 1589 2133 1951 1771 2341 2340 2132 1982 1981 3084 3083 2342 2140 1983 3086 16 2343 2342 2150 1984 1983 3087 2341 2141 2140 1982 1952 3085 3084 2558 2557 2559 16 2344 2343 2157 2156 1985 1984 1953 3089 3088 2342 2150 1983 3086 2559 2558 2560 18 2345 2344 2165 2164 1986 1985 1954 3090 3089 2343 2157 2156 1984 1953 3087 2560 2559 2561 21 546 1557 1392 2165 1954 1768 1565 2157 1953 1769 2344 2343 2156 1985 1984 3088 3087 2345 2164 1986 3090 16 2346 2345 2172 1987 1986 3091 2344 2165 2164 1985 1954 3089 3088 2561 2560 2562 16 2347 2346 2179 2178 1988 1987 1955 3093 3092 2345 2172 1986 3090 2562 2561 2563 18 2348 2347 2187 2186 1989 1988 1956 3094 3093 2346 2179 2178 1987 1955 3091 2563 2562 2564 21 542 1535 1391 2187 1956 1766 1543 2179 1955 1767 2347 2346 2178 1988 1987 3092 3091 2348 2186 1989 3094 16 2349 2348 2196 1990 1989 3095 2347 2187 2186 1988 1956 3093 3092 2564 2563 2565 16 2350 2349 2203 2202 1991 1990 1957 3097 3096 2348 2196 1989 3094 2565 2564 2566 18 2351 2350 2211 2210 1992 1991 1958 3098 3097 2349 2203 2202 1990 1957 3095 2566 2565 2567 21 538 1511 1390 2211 1958 1764 1519 2203 1957 1765 2350 2349 2202 1991 1990 3096 3095 2351 2210 1992 3098 16 2352 2351 2218 1993 1992 3099 2350 2211 2210 1991 1958 3097 3096 2567 2566 2568 16 2353 2352 2225 2224 1994 1993 1959 3101 3100 2351 2218 1992 3098 2568 2567 2569 18 2354 2353 2235 2234 1995 1994 1960 3102 3101 2352 2225 2224 1993 1959 3099 2569 2568 2570 21 534 1487 1389 2235 1960 1762 1497 2225 1959 1763 2353 2352 2224 1994 1993 3100 3099 2354 2234 1995 3102 16 2355 2354 2244 1996 1995 3103 2353 2235 2234 1994 1960 3101 3100 2570 2569 2571 16 2356 2355 2251 2250 1997 1996 1961 3105 3104 2354 2244 1995 3102 2571 2570 2572 18 2357 2356 2259 2258 1998 1997 1962 3106 3105 2355 2251 2250 1996 1961 3103 2572 2571 2573 21 530 1463 1388 2259 1962 1760 1471 2251 1961 1761 2356 2355 2250 1997 1996 3104 3103 2357 2258 1998 3106 16 2358 2357 2266 1999 1998 3107 2356 2259 2258 1997 1962 3105 3104 2573 2572 2574 17 2359 2358 2273 2272 2000 1999 1963 1868 1867 3108 2357 2266 1998 3106 2573 2574 2575 22 2360 2359 2280 2001 2000 1907 1906 1899 1869 1867 3110 2358 2273 2272 1999 1963 1868 3107 2575 2574 1888 2576 15 2366 2365 2317 2316 2007 2006 1964 3119 3118 3111 526 1405 1758 81 3114 24 2361 2360 2286 2002 2001 1915 1914 1900 1899 1870 1869 3112 2359 2280 2000 1907 1906 1867 3108 1888 2576 2575 1889 2577 16 2366 2365 2317 2316 2007 2006 1964 3119 3118 3109 81 3114 2364 2310 2005 3116 24 2362 2361 2292 2003 2002 1926 1923 1900 1871 1870 3113 2360 2286 2001 1915 1914 1899 1869 3110 1889 1888 2577 2576 2578 20 2363 2362 2298 2004 2003 1871 3117 3115 2361 2292 2002 1926 1923 1900 1870 3112 1889 2578 2577 2579 16 2364 2363 2304 2005 2004 3117 3116 3115 2365 2310 2006 3118 3111 81 3109 80 16 2364 2363 2304 2005 2004 3117 3116 3114 2362 2298 2003 1871 3113 2579 2578 2580 16 2365 2364 2310 2006 2005 3118 3114 3111 2363 2304 2004 3117 3115 2580 2579 2581 15 2363 2362 2298 2004 2003 1871 3115 3113 2364 2304 2005 3116 3114 80 79 18 2366 2365 2317 2316 2007 2006 1964 3119 3111 3109 2364 2310 2005 3116 3114 2581 2580 2582 17 2366 2007 3242 3163 3129 3124 2365 2317 2316 2006 1964 3118 3111 3109 2582 2581 3185 17 515 501 472 379 3244 3134 412 3211 144 143 3125 3124 3243 3242 3164 3163 3133 17 514 493 472 379 3244 3142 412 3211 145 144 3126 3125 3245 3243 3165 3164 3141 16 513 483 375 3248 3152 411 3212 147 146 3128 3127 3247 3246 3167 3166 3151 18 512 477 471 375 373 160 3250 3248 3158 411 3212 147 3128 3249 3247 3168 3167 3157 17 3244 3243 3242 3164 3163 3134 3133 3125 3120 144 143 3211 142 2007 2366 3129 3119 19 3245 3244 3243 3165 3164 3142 3141 3126 3121 145 144 3211 143 3124 3120 3242 3163 3134 3133 17 3246 3245 3166 3165 3147 3127 146 145 144 3211 3125 3121 3244 3243 3164 3142 3141 17 3248 3247 3246 3167 3166 3152 3151 3128 3122 147 146 3212 145 3126 3245 3165 3147 18 3250 3249 3248 3247 3168 3167 3158 3157 3123 147 3212 146 3127 3122 3246 3166 3152 3151 15 2409 2366 3233 3169 3163 3130 3061 3191 3185 2625 2582 3242 3119 2007 3124 18 2452 2409 3224 3175 3169 3131 3003 3197 3191 2668 2625 3233 3185 3129 3061 2582 2366 3163 15 3224 3197 3191 3130 3003 2668 2625 2452 2409 3175 3169 2495 3203 2758 2711 18 819 503 464 410 1312 3213 2816 2538 3207 2754 2495 3217 3203 2760 2759 2711 406 875 20 3235 3234 3233 3170 3169 3164 3163 3136 3135 3134 3192 3191 3186 3185 3243 3242 3244 3125 3124 3120 23 501 499 472 470 388 3235 3136 3234 3233 3170 3169 3164 3163 3135 3133 3244 3243 3242 3125 3124 3120 515 379 22 3225 3224 3176 3175 3170 3169 3138 3137 3136 3198 3197 3192 3191 3234 3233 3186 3185 3133 3235 3164 3163 3134 23 499 497 470 468 3138 3225 3224 3176 3175 3170 3169 3137 3135 3235 3234 3233 3164 3163 3134 3133 501 472 388 17 3225 3224 3198 3197 3192 3191 3135 3176 3175 3170 3169 3138 3136 3221 3204 3203 3139 22 497 496 468 466 402 3221 3139 3204 3203 3198 3197 3176 3175 3137 3225 3224 3170 3169 3136 3135 499 470 24 496 495 466 464 463 406 405 3218 3217 3140 3208 3207 3204 3203 3221 3198 3197 3176 3175 3138 3137 497 468 402 18 495 464 463 410 409 3214 3213 3208 3207 3218 3217 3204 3203 3139 496 466 406 405 19 3236 3235 3234 3171 3170 3165 3164 3143 3142 3193 3192 3187 3186 3245 3243 3244 3126 3125 3121 21 493 472 470 388 3235 3236 3234 3171 3170 3165 3164 3143 3141 3245 3244 3243 3126 3125 3121 514 379 20 3226 3225 3177 3176 3171 3170 3144 3199 3198 3193 3192 3236 3234 3187 3186 3141 3235 3165 3164 3142 15 3226 3225 3199 3198 3193 3192 3143 3177 3176 3171 3170 3221 3205 3204 3145 22 490 489 466 463 462 405 404 3219 3218 3146 3209 3208 3205 3204 3221 3199 3198 3177 3176 3144 468 402 18 489 463 462 409 408 3215 3214 3209 3208 3219 3218 3205 3204 3145 490 466 405 404 15 3237 3236 3172 3171 3166 3165 3148 3194 3193 3188 3187 3246 3245 3127 3126 19 3232 3228 3226 3178 3177 3172 3171 3149 3200 3199 3194 3193 3237 3236 3188 3187 3147 3166 3165 15 3232 3226 3200 3199 3194 3193 3148 3228 3178 3177 3172 3171 3222 3206 3205 16 485 462 461 408 407 3216 3215 3210 3209 3220 3219 3206 3205 465 404 403 20 3239 3238 3237 3173 3172 3167 3166 3154 3153 3152 3195 3194 3189 3188 3247 3246 3248 3128 3127 3122 21 483 481 384 3239 3154 3238 3237 3173 3172 3167 3166 3153 3151 3248 3247 3246 3128 3127 3122 513 375 22 3238 3237 3195 3194 3189 3188 3151 3239 3173 3172 3167 3166 3154 3152 3232 3231 3230 3228 3201 3200 3178 3155 28 481 480 479 395 393 3230 3228 3156 3155 3232 3231 3201 3200 3195 3194 3178 3173 3172 3153 3239 3238 3237 3167 3166 3152 3151 483 384 23 3232 3231 3230 3228 3201 3200 3195 3194 3178 3173 3172 3154 3153 481 480 479 395 393 3156 3223 3222 3206 3179 20 3223 3222 3206 3201 3200 3179 3178 3155 481 480 479 395 393 3230 3228 3154 465 444 401 400 22 3241 3240 3239 3238 3174 3173 3168 3167 3161 3160 3159 3158 3196 3195 3190 3189 3249 3247 3250 3248 3128 3123 29 477 474 471 469 384 382 160 159 3241 3239 3161 3240 3238 3174 3173 3168 3167 3160 3159 3157 3250 3249 3248 3247 3128 3123 512 375 373 18 3240 3238 3196 3195 3190 3189 3157 3231 3229 3174 3173 3160 3241 3239 3168 3167 3161 3158 21 3231 3229 3196 3195 3174 3173 3159 3230 3227 3202 3201 3162 3161 3241 3240 3239 3238 3168 3167 3158 3157 32 477 474 471 469 384 382 160 159 3241 3239 3158 3240 3238 3174 3173 3168 3167 3160 3159 3157 3231 3230 3229 3227 3202 3201 3162 473 467 396 393 158 21 3231 3230 3229 3227 3202 3201 3161 3160 474 473 469 467 396 393 159 158 422 421 400 157 3223 23 3235 3234 3233 3170 3169 3164 3136 3135 3134 3133 3244 3243 3242 3125 3124 3120 2366 2007 3129 3119 2409 3130 3061 25 3236 3235 3234 3171 3170 3165 3143 3142 3141 3245 3244 3243 3126 3125 3121 3242 3163 3134 3133 3124 3120 3233 3169 3136 3135 22 3237 3236 3172 3171 3166 3148 3147 3246 3245 3127 3126 3244 3243 3164 3142 3141 3125 3121 3235 3234 3170 3143 23 3239 3238 3237 3173 3172 3167 3154 3153 3152 3151 3248 3247 3246 3128 3127 3122 3245 3165 3147 3126 3236 3171 3148 28 3241 3240 3239 3238 3174 3173 3168 3161 3160 3159 3158 3157 3250 3249 3248 3247 3128 3123 3246 3166 3152 3151 3127 3122 3237 3172 3154 3153 22 3241 3240 3184 3183 3182 3181 3174 3250 3249 3248 3247 3167 3158 3157 3128 3123 3239 3238 3173 3161 3160 3159 24 3225 3224 3176 3175 3170 3138 3137 3136 3135 3235 3234 3233 3164 3163 3134 3133 2409 2366 3130 3129 3061 2452 3131 3003 25 3226 3225 3177 3176 3171 3144 3143 3236 3235 3234 3165 3164 3142 3141 3233 3169 3163 3136 3135 3134 3133 3224 3175 3138 3137 23 3232 3228 3226 3178 3177 3172 3149 3148 3237 3236 3166 3165 3147 3235 3234 3170 3164 3143 3142 3141 3225 3176 3144 28 3232 3231 3230 3228 3201 3200 3195 3194 3178 3173 3155 3154 3153 3239 3238 3237 3167 3166 3152 3151 3236 3171 3165 3148 3147 3226 3177 3149 31 3231 3229 3196 3195 3174 3160 3159 3241 3240 3239 3238 3168 3167 3161 3158 3157 3237 3172 3166 3154 3153 3152 3151 3232 3230 3228 3201 3200 3194 3178 3155 20 3229 3196 3184 3183 3241 3240 3182 3181 3168 3239 3238 3173 3167 3161 3160 3159 3158 3157 3231 3195 24 3221 3204 3203 3198 3197 3176 3139 3138 3137 3225 3224 3170 3169 3136 3135 2452 2409 3131 3130 3003 2495 2758 2711 2668 23 3221 3205 3204 3199 3198 3177 3145 3144 3226 3225 3171 3170 3143 3224 3175 3169 3138 3137 3136 3135 3203 3197 3139 22 3222 3206 3205 3200 3199 3178 3149 3232 3228 3226 3172 3171 3148 3225 3176 3170 3144 3143 3221 3204 3198 3145 25 3223 3222 3206 3201 3200 3179 3156 3155 3232 3231 3230 3228 3195 3194 3173 3172 3154 3153 3226 3177 3171 3149 3148 3205 3199 19 465 461 444 443 403 3220 3180 3210 3206 3223 3222 3201 3200 3178 3156 3155 479 401 400 12 461 443 407 153 3216 465 444 403 3220 3179 3210 3206 11 3241 3240 3184 3183 3182 3174 3168 3196 3190 3249 3250 17 471 469 441 439 382 156 155 3241 3184 3240 3183 3181 3174 3168 3250 3249 373 10 3240 3196 3190 3181 3241 3184 3182 3174 3168 3229 23 469 467 439 421 396 394 155 154 3229 3227 3202 3196 3183 3174 3241 3240 3182 3181 3168 471 441 382 156 15 3234 3233 3192 3191 3186 3135 3133 3243 3242 3129 3119 2582 3130 3061 2625 15 3236 3234 3193 3192 3187 3143 3141 3245 3243 3242 3185 3133 3233 3191 3135 15 3237 3236 3194 3193 3188 3148 3147 3246 3245 3243 3186 3141 3234 3192 3143 15 3238 3237 3195 3194 3189 3153 3151 3247 3246 3245 3187 3147 3236 3193 3148 15 3240 3238 3196 3195 3190 3159 3157 3249 3247 3246 3188 3151 3237 3194 3153 11 3240 3196 3183 3181 3249 3247 3189 3157 3238 3195 3159 20 3225 3224 3198 3197 3192 3137 3135 3234 3233 3186 3185 3133 3130 3129 3061 2625 2582 3131 3003 2668 20 3226 3225 3199 3198 3193 3144 3143 3236 3234 3187 3186 3141 3233 3191 3185 3135 3133 3224 3197 3137 20 3232 3226 3200 3199 3194 3149 3148 3237 3236 3188 3187 3147 3234 3192 3186 3143 3141 3225 3198 3144 26 3232 3231 3230 3228 3201 3200 3195 3178 3173 3172 3155 3154 3153 3238 3237 3189 3188 3151 3236 3193 3187 3148 3147 3226 3199 3149 26 3231 3229 3196 3174 3173 3160 3159 3240 3238 3190 3189 3157 3237 3194 3188 3153 3151 3232 3230 3228 3201 3200 3178 3172 3155 3154 15 3229 3184 3183 3174 3240 3190 3181 3238 3195 3189 3159 3157 3231 3173 3160 23 3221 3204 3203 3198 3176 3175 3139 3138 3137 3225 3224 3192 3191 3135 3131 3130 3003 2668 2625 2495 2452 2758 2711 22 3221 3205 3204 3199 3177 3176 3145 3144 3226 3225 3193 3192 3143 3224 3197 3191 3137 3135 3203 3175 3139 3138 21 3222 3206 3205 3200 3178 3177 3149 3232 3226 3194 3193 3148 3225 3198 3192 3144 3143 3221 3204 3176 3145 25 3223 3222 3206 3201 3179 3178 3156 3155 3232 3231 3230 3228 3195 3194 3173 3172 3154 3153 3226 3199 3193 3149 3148 3205 3177 31 473 467 422 421 400 158 157 3223 3202 3162 3231 3230 3229 3227 3161 3160 3232 3228 3200 3195 3194 3178 3173 3172 3155 3154 3153 3222 3206 3179 3156 23 473 467 422 421 400 158 157 3223 3201 3162 3231 3230 3229 3227 3161 3160 469 439 396 394 155 154 3184 25 3218 3217 3208 3207 3204 3140 3139 3221 3198 3197 3176 3175 3138 3137 2495 2452 3131 2758 2711 2668 2538 3132 2760 2759 2754 22 3219 3218 3209 3208 3205 3146 3145 3221 3199 3198 3177 3176 3144 3203 3197 3175 3139 3138 3137 3217 3207 3140 21 3220 3219 3210 3209 3206 3150 3222 3200 3199 3178 3177 3149 3221 3204 3198 3176 3145 3144 3218 3208 3146 18 3220 3210 3180 3179 3223 3222 3201 3200 3178 3156 3155 3205 3199 3177 3149 3219 3209 3150 17 3214 3213 3208 3140 3218 3217 3204 3203 3139 2538 2495 3132 2760 2759 2754 2711 2816 15 3215 3214 3209 3146 3219 3218 3205 3204 3145 3217 3207 3203 3140 3139 3213 14 3216 3215 3210 3150 3220 3219 3206 3205 3218 3208 3204 3146 3145 3214 10 3216 3180 3220 3206 3179 3219 3209 3205 3150 3215 11 514 412 3121 515 3120 144 143 3125 3124 145 3126 9 512 411 3123 513 3122 147 146 3128 3127 16 495 464 463 410 409 3214 3140 819 503 1312 3132 2816 2538 3207 2754 3208 15 489 463 462 409 408 3215 3146 495 464 410 3213 3140 3208 3207 3209 15 485 462 461 408 407 3216 3150 489 463 409 3214 3146 3209 3208 3210 12 461 443 407 153 3180 485 462 408 3215 3150 3210 3209 24 496 495 466 464 463 406 405 3218 3140 3139 503 1312 875 3132 2760 2538 2495 3207 3203 2759 2754 2711 3208 3204 23 490 489 466 463 462 405 404 3219 3146 3145 496 495 464 406 3217 3140 3139 3208 3207 3204 3203 3209 3205 22 485 465 462 461 404 403 3220 3150 490 489 466 463 405 3218 3146 3145 3209 3208 3205 3204 3210 3206 16 465 461 444 443 403 3180 3179 485 462 404 3219 3150 3210 3209 3206 3205 20 490 468 466 402 3145 497 496 3139 3138 3204 3203 3198 3197 3176 3175 3137 3205 3199 3177 3144 17 479 465 444 401 400 3223 3179 3156 3206 3205 3200 3199 3178 3177 3149 3201 3155 21 3222 3206 3201 3200 3179 3178 3156 3155 479 465 444 401 400 473 467 422 421 158 157 3202 3162 20 3225 3176 3175 3170 3169 3138 3137 3136 3135 2452 2409 3131 3130 3003 3197 3191 2668 2625 3198 3192 20 3226 3177 3176 3171 3170 3144 3143 3224 3175 3169 3138 3137 3136 3135 3198 3197 3192 3191 3199 3193 19 3232 3228 3178 3177 3172 3171 3149 3148 3225 3176 3170 3144 3143 3199 3198 3193 3192 3200 3194 22 3231 3230 3229 3202 3201 3162 3161 3160 474 473 469 467 396 393 159 158 439 421 394 155 154 3184 24 481 480 479 395 393 3230 3156 3155 3154 3232 3226 3178 3177 3172 3171 3149 3148 3231 3201 3200 3195 3194 3173 3153 23 469 467 439 421 396 394 155 154 3227 3202 3184 3196 3183 3174 3231 3195 3173 3160 3159 3230 3201 3162 3161 32 474 473 469 467 396 393 159 158 3227 3162 3161 3231 3229 3202 3201 3160 3232 3228 3200 3195 3194 3178 3173 3172 3155 3154 3153 481 480 479 395 3156 22 3229 3196 3195 3174 3173 3160 3159 3232 3230 3228 3201 3200 3194 3178 3172 3155 3154 3153 3227 3202 3162 3161 20 3226 3200 3199 3194 3193 3149 3148 3228 3178 3177 3172 3171 3231 3230 3201 3195 3173 3155 3154 3153 21 3235 3234 3170 3169 3164 3163 3136 3135 3134 3133 2409 2366 3130 3129 3061 3191 3185 2625 2582 3192 3186 22 3236 3235 3171 3170 3165 3164 3143 3142 3141 3233 3169 3163 3136 3135 3134 3133 3192 3191 3186 3185 3193 3187 22 493 472 470 388 3142 501 499 3136 3134 3234 3233 3170 3169 3164 3163 3135 3133 3236 3171 3165 3143 3141 20 3237 3172 3171 3166 3165 3148 3147 3235 3234 3170 3164 3143 3142 3141 3193 3192 3187 3186 3194 3188 21 3239 3238 3173 3172 3167 3166 3154 3153 3152 3151 3236 3171 3165 3148 3147 3194 3193 3188 3187 3195 3189 25 3241 3240 3239 3174 3173 3168 3167 3161 3160 3159 3158 3157 3237 3172 3166 3154 3153 3152 3151 3195 3194 3189 3188 3196 3190 29 477 474 471 469 384 382 160 159 3241 3161 3158 483 481 3154 3152 3238 3237 3173 3172 3167 3166 3153 3151 3240 3174 3168 3160 3159 3157 20 3241 3184 3183 3182 3181 3174 3168 3239 3238 3173 3167 3161 3160 3159 3158 3157 3196 3195 3190 3189 28 471 469 441 439 382 156 155 3184 3182 477 474 384 160 159 3239 3161 3158 3240 3238 3174 3173 3168 3167 3160 3159 3157 3183 3181 16 3244 3243 3164 3163 3134 3133 3125 3124 3120 2366 2007 3129 3119 3185 2582 3186 18 3245 3244 3165 3164 3142 3141 3126 3125 3121 3242 3163 3134 3133 3124 3120 3186 3185 3187 21 514 493 472 379 3142 3121 515 501 3134 3120 3243 3242 3164 3163 3133 3125 3124 3245 3165 3141 3126 16 3246 3166 3165 3147 3127 3126 3244 3243 3164 3142 3141 3125 3121 3187 3186 3188 16 3248 3247 3167 3166 3152 3151 3128 3127 3122 3245 3165 3147 3126 3188 3187 3189 18 3250 3249 3248 3168 3167 3158 3157 3128 3123 3246 3166 3152 3151 3127 3122 3189 3188 3190 23 512 477 471 375 373 160 3250 3158 3123 513 483 3152 3122 3247 3246 3167 3166 3151 3128 3127 3249 3168 3157 13 3250 3182 3181 3168 3248 3247 3167 3158 3157 3128 3123 3190 3189 19 471 441 373 156 3182 512 477 375 160 3248 3158 3123 3249 3247 3168 3167 3157 3128 3181 14 372 355 169 167 3424 3422 3268 3423 3421 3267 3256 148 3370 221 21 371 345 306 167 165 3426 3424 3278 3425 3423 3318 3317 3277 3257 3256 149 148 3374 3370 221 217 21 370 335 306 165 163 3428 3426 3288 3427 3425 3319 3318 3287 3258 3257 151 149 3374 3373 218 217 21 369 325 305 163 161 3430 3428 3298 3429 3427 3320 3319 3297 3259 3258 151 150 3373 3372 219 218 13 368 315 305 161 3430 3308 3429 3320 3307 3259 150 3372 219 19 3426 3425 3424 3423 3318 3317 3278 3277 3257 3252 3422 3421 3268 3267 3251 148 3370 149 3374 23 3428 3427 3426 3425 3319 3318 3288 3287 3258 3253 3424 3423 3317 3278 3277 3256 3252 149 148 3374 3370 151 3373 23 3430 3429 3428 3427 3320 3319 3298 3297 3259 3254 3426 3425 3318 3288 3287 3257 3253 151 149 3374 3373 150 3372 17 3430 3429 3320 3308 3307 3255 3428 3427 3319 3298 3297 3258 3254 151 150 3373 3372 13 3421 3419 3335 3334 3422 3420 3261 3409 3408 3407 3341 3340 3262 21 362 361 304 303 184 182 3409 3407 3262 3408 3341 3340 3335 3334 3260 3422 3421 3420 3419 171 169 26 361 360 304 303 298 297 195 193 3398 3396 3263 3397 3347 3346 3341 3340 3409 3408 3407 3335 3334 3261 3260 362 184 182 28 3398 3397 3396 3347 3346 3341 3340 3262 361 360 304 303 298 297 195 193 359 292 291 245 244 239 238 202 3389 3353 3352 3264 27 3383 3382 3359 3358 3353 3352 3265 360 359 298 297 292 291 245 244 239 238 202 3389 3347 3346 3263 358 286 285 209 208 25 358 357 286 285 280 279 215 214 3377 3376 3266 3365 3364 3359 3358 3383 3382 3353 3352 3264 359 292 291 209 208 17 3377 3376 3365 3364 3359 3358 3265 358 357 286 285 280 279 215 214 227 226 19 3412 3411 3408 3407 3270 3269 3268 3342 3341 3336 3335 3321 3317 3423 3421 3424 3422 3256 3251 22 355 353 303 302 184 179 3412 3407 3270 3411 3408 3269 3267 3424 3423 3422 3421 3256 3251 372 169 167 22 3401 3400 3397 3396 3272 3271 3270 3348 3347 3342 3341 3325 3321 3411 3408 3336 3335 3317 3267 3412 3407 3268 24 353 351 303 302 297 296 195 190 3401 3396 3272 3400 3397 3271 3269 3412 3411 3408 3407 3268 3267 355 184 179 34 3389 3388 3354 3353 3348 3347 3273 3400 3397 3342 3341 3325 3321 3269 3401 3396 3272 3270 352 351 350 349 297 296 291 290 266 262 204 203 202 3387 3329 3274 32 3401 3400 3397 3396 3271 3270 3269 353 351 303 302 297 296 195 190 352 350 349 291 290 266 262 204 203 202 3389 3388 3387 3329 3325 3274 3273 30 3389 3388 3354 3353 3348 3347 3271 352 351 350 349 297 296 291 290 266 262 204 203 202 3387 3329 3325 3274 3272 3384 3383 3360 3359 3275 33 3384 3383 3360 3359 3354 3353 3329 3275 3273 352 351 350 349 297 296 291 290 266 262 204 203 202 3389 3388 3387 3325 3272 3271 348 285 284 208 207 27 348 347 285 284 279 278 214 213 3378 3377 3276 3366 3365 3360 3359 3384 3383 3354 3353 3329 3274 3273 349 291 290 208 207 17 3378 3377 3366 3365 3360 3359 3275 348 347 285 284 279 278 214 213 226 225 22 3414 3413 3412 3411 3322 3321 3318 3317 3280 3279 3278 3343 3342 3337 3336 3425 3423 3426 3424 3257 3256 3252 28 345 343 306 302 301 179 177 3414 3412 3280 3413 3411 3322 3321 3318 3317 3279 3277 3426 3425 3424 3423 3257 3256 3252 371 167 165 25 3403 3402 3401 3400 3326 3325 3322 3321 3282 3281 3280 3349 3348 3343 3342 3413 3411 3337 3336 3277 3414 3412 3318 3317 3278 31 343 341 302 301 296 295 190 188 3403 3401 3282 3402 3400 3326 3325 3322 3321 3281 3279 3414 3413 3412 3411 3318 3317 3278 3277 345 306 179 177 25 3392 3391 3388 3387 3330 3329 3326 3325 3284 3283 3282 3355 3354 3349 3348 3402 3400 3343 3342 3279 3403 3401 3322 3321 3280 32 341 339 296 295 290 289 204 199 3392 3387 3284 3391 3388 3330 3329 3326 3325 3283 3281 3403 3402 3401 3400 3322 3321 3280 3279 343 302 301 190 188 20 3391 3388 3355 3354 3349 3348 3281 3392 3387 3330 3329 3326 3325 3284 3282 3385 3384 3361 3360 3285 31 339 338 290 289 284 283 207 206 3385 3384 3285 3361 3360 3355 3354 3330 3329 3283 3392 3391 3388 3387 3326 3325 3282 3281 341 296 295 204 199 28 338 337 284 283 278 277 213 212 3379 3378 3286 3367 3366 3361 3360 3385 3384 3355 3354 3330 3329 3284 3283 339 290 289 207 206 17 3379 3378 3367 3366 3361 3360 3285 338 337 284 283 278 277 213 212 225 224 22 3416 3415 3414 3413 3323 3322 3319 3318 3290 3289 3288 3344 3343 3338 3337 3427 3425 3428 3426 3258 3257 3253 28 335 333 306 301 300 177 175 3416 3414 3290 3415 3413 3323 3322 3319 3318 3289 3287 3428 3427 3426 3425 3258 3257 3253 370 165 163 25 3405 3404 3403 3402 3327 3326 3323 3322 3292 3291 3290 3350 3349 3344 3343 3415 3413 3338 3337 3287 3416 3414 3319 3318 3288 31 333 331 301 300 295 294 188 186 3405 3403 3292 3404 3402 3327 3326 3323 3322 3291 3289 3416 3415 3414 3413 3319 3318 3288 3287 335 306 177 175 25 3394 3393 3392 3391 3331 3330 3327 3326 3294 3293 3292 3356 3355 3350 3349 3404 3402 3344 3343 3289 3405 3403 3323 3322 3290 32 331 329 295 294 289 288 199 197 3394 3392 3294 3393 3391 3331 3330 3327 3326 3293 3291 3405 3404 3403 3402 3323 3322 3290 3289 333 301 300 188 186 20 3393 3391 3356 3355 3350 3349 3291 3394 3392 3331 3330 3327 3326 3294 3292 3386 3385 3362 3361 3295 31 329 328 289 288 283 282 206 205 3386 3385 3295 3362 3361 3356 3355 3331 3330 3293 3394 3393 3392 3391 3327 3326 3292 3291 331 295 294 199 197 28 328 327 283 282 277 276 212 211 3380 3379 3296 3368 3367 3362 3361 3386 3385 3356 3355 3331 3330 3294 3293 329 289 288 206 205 19 3380 3379 3368 3367 3362 3361 3295 328 327 283 282 277 276 212 211 224 223 220 3371 22 3418 3417 3416 3415 3324 3323 3320 3319 3300 3299 3298 3345 3344 3339 3338 3429 3427 3430 3428 3259 3258 3254 28 325 323 305 300 299 175 173 3418 3416 3300 3417 3415 3324 3323 3320 3319 3299 3297 3430 3429 3428 3427 3259 3258 3254 369 163 161 25 3410 3406 3405 3404 3328 3327 3324 3323 3302 3301 3300 3351 3350 3345 3344 3417 3415 3339 3338 3297 3418 3416 3320 3319 3298 31 323 321 300 299 294 293 186 181 3410 3405 3302 3406 3404 3328 3327 3324 3323 3301 3299 3418 3417 3416 3415 3320 3319 3298 3297 325 305 175 173 25 3399 3395 3394 3393 3332 3331 3328 3327 3304 3303 3302 3357 3356 3351 3350 3406 3404 3345 3344 3299 3410 3405 3324 3323 3300 32 321 319 294 293 288 287 197 192 3399 3394 3304 3395 3393 3332 3331 3328 3327 3303 3301 3410 3406 3405 3404 3324 3323 3300 3299 323 300 299 186 181 20 3395 3393 3357 3356 3351 3350 3301 3399 3394 3332 3331 3328 3327 3304 3302 3390 3386 3363 3362 3305 31 319 318 288 287 282 281 205 201 3390 3386 3305 3363 3362 3357 3356 3332 3331 3303 3399 3395 3394 3393 3328 3327 3302 3301 321 294 293 197 192 28 318 317 282 281 276 275 211 210 3381 3380 3306 3369 3368 3363 3362 3390 3386 3357 3356 3332 3331 3304 3303 319 288 287 205 201 19 317 276 275 220 216 3375 3371 3369 3368 3381 3380 3363 3362 3305 318 282 281 211 210 19 2324 1965 1940 3418 3417 3324 3320 3310 3309 3308 3062 2540 2539 3345 3339 3429 3430 3259 3255 23 315 313 305 299 173 1940 1782 3418 3310 2324 1965 3417 3324 3320 3309 3307 3062 3430 3429 3259 3255 368 161 24 2367 2324 3410 3406 3328 3324 3312 3311 3310 3004 2540 3351 3345 2583 2539 3417 3339 3307 3062 1965 1940 3418 3320 3308 27 313 311 299 293 181 3410 3312 2367 2324 3406 3328 3324 3311 3309 3004 1965 1940 3418 3417 3320 3308 3307 3062 315 305 173 1782 23 2410 2367 3399 3395 3332 3328 3314 3313 3312 2955 3357 3351 2626 2583 2540 3406 3345 3309 3004 2324 3410 3324 3310 25 311 309 293 287 192 3399 3314 2410 2367 3395 3332 3328 3313 3311 2955 2324 3410 3406 3324 3310 3309 3004 313 299 181 20 3395 3357 3351 3311 2955 2626 2583 2410 2367 3399 3332 3328 3314 3312 2453 3390 3363 3315 2755 2669 26 309 308 287 281 201 3390 3315 2453 2410 3363 3357 3332 3313 2755 2669 2626 2367 3399 3395 3328 3312 3311 2955 311 293 192 28 308 307 281 275 210 1354 878 3381 3316 2757 2496 2453 3369 3363 2756 2712 2669 2410 3390 3357 3332 3314 3313 2755 2626 309 287 201 21 307 275 216 1354 861 3375 2774 2496 3369 2712 2453 3381 3363 3315 2757 2756 2669 308 281 210 878 26 3414 3413 3412 3411 3322 3321 3318 3280 3279 3278 3277 3408 3342 3341 3336 3335 3269 3267 3423 3421 3426 3425 3424 3257 3256 3252 30 3416 3415 3414 3413 3323 3322 3319 3290 3289 3288 3287 3412 3411 3321 3317 3280 3279 3278 3277 3426 3425 3424 3423 3257 3256 3252 3428 3427 3258 3253 30 3418 3417 3416 3415 3324 3323 3320 3300 3299 3298 3297 3414 3413 3322 3318 3290 3289 3288 3287 3428 3427 3426 3425 3258 3257 3253 3430 3429 3259 3254 27 2324 1965 1940 3418 3417 3324 3310 3309 3308 3307 3062 3416 3415 3323 3319 3300 3299 3298 3297 3430 3429 3428 3427 3259 3258 3254 3255 30 3403 3402 3401 3400 3326 3325 3322 3282 3281 3280 3279 3397 3348 3347 3342 3341 3271 3269 3411 3408 3336 3335 3317 3267 3414 3413 3412 3318 3278 3277 32 3405 3404 3403 3402 3327 3326 3323 3292 3291 3290 3289 3401 3400 3325 3321 3282 3281 3280 3279 3414 3413 3412 3411 3318 3317 3278 3277 3416 3415 3319 3288 3287 32 3410 3406 3405 3404 3328 3327 3324 3302 3301 3300 3299 3403 3402 3326 3322 3292 3291 3290 3289 3416 3415 3414 3413 3319 3318 3288 3287 3418 3417 3320 3298 3297 31 2367 2324 3410 3406 3328 3312 3311 3310 3309 3004 3405 3404 3327 3323 3302 3301 3300 3299 3418 3417 3416 3415 3320 3319 3298 3297 1965 1940 3308 3307 3062 43 3392 3391 3388 3387 3330 3329 3326 3284 3283 3282 3281 352 351 350 349 297 296 291 290 266 262 204 203 202 3389 3274 3273 3272 3271 3400 3397 3348 3347 3342 3341 3321 3269 3403 3402 3401 3322 3280 3279 32 3394 3393 3392 3391 3331 3330 3327 3294 3293 3292 3291 3388 3387 3329 3325 3284 3283 3282 3281 3403 3402 3401 3400 3322 3321 3280 3279 3405 3404 3323 3290 3289 32 3399 3395 3394 3393 3332 3331 3328 3304 3303 3302 3301 3392 3391 3330 3326 3294 3293 3292 3291 3405 3404 3403 3402 3323 3322 3290 3289 3410 3406 3324 3300 3299 30 2410 2367 3399 3395 3332 3314 3313 3312 3311 2955 3394 3393 3331 3327 3304 3303 3302 3301 3410 3406 3405 3404 3324 3323 3300 3299 2324 3310 3309 3004 40 3385 3384 3361 3360 3355 3354 3330 3285 3284 3283 3383 3359 3353 3275 3274 3273 352 351 350 349 297 296 291 290 266 262 204 203 202 3389 3388 3387 3325 3272 3271 3392 3391 3326 3282 3281 30 3386 3385 3362 3361 3356 3355 3331 3295 3294 3293 3384 3360 3354 3329 3285 3284 3283 3392 3391 3388 3387 3326 3325 3282 3281 3394 3393 3327 3292 3291 30 3390 3386 3363 3362 3357 3356 3332 3305 3304 3303 3385 3361 3355 3330 3295 3294 3293 3394 3393 3392 3391 3327 3326 3292 3291 3399 3395 3328 3302 3301 30 2453 2410 3390 3363 3357 3315 3314 3313 2755 2669 2626 3386 3362 3356 3331 3305 3304 3303 3399 3395 3394 3393 3328 3327 3302 3301 2367 3312 3311 2955 11 3420 3419 3334 258 171 304 257 251 182 3409 3340 18 3409 3408 3407 3341 3340 3335 3262 3261 3260 304 258 257 251 182 3333 3420 3419 3421 19 3411 3408 3342 3341 3336 3321 3317 3269 3267 3409 3407 3340 3334 3262 3261 3260 3421 3419 3423 17 3413 3411 3343 3342 3337 3279 3277 3408 3341 3335 3321 3317 3269 3267 3423 3421 3425 15 3415 3413 3344 3343 3338 3289 3287 3411 3342 3336 3279 3277 3425 3423 3427 15 3417 3415 3345 3344 3339 3299 3297 3413 3343 3337 3289 3287 3427 3425 3429 14 2540 2539 3417 3345 3309 3307 3062 3415 3344 3338 3299 3297 3429 3427 24 3398 3397 3396 3347 3346 3341 3263 3262 304 298 251 245 193 258 257 182 3409 3334 3333 3408 3407 3335 3261 3260 26 3400 3397 3348 3347 3342 3325 3321 3271 3269 3398 3396 3346 3340 3263 3262 3409 3408 3407 3335 3334 3261 3260 3411 3336 3317 3267 23 3402 3400 3349 3348 3343 3281 3279 3397 3347 3341 3325 3321 3271 3269 3411 3408 3336 3335 3317 3267 3413 3337 3277 20 3404 3402 3350 3349 3344 3291 3289 3400 3348 3342 3281 3279 3413 3411 3337 3336 3277 3415 3338 3287 20 3406 3404 3351 3350 3345 3301 3299 3402 3349 3343 3291 3289 3415 3413 3338 3337 3287 3417 3339 3297 20 2540 3406 3351 3311 3309 3004 2583 3404 3350 3344 3301 3299 3417 3415 3339 3338 3297 2539 3307 3062 26 304 298 251 245 193 3398 3340 3397 3396 3347 3341 3263 3262 360 359 297 292 291 244 239 238 202 3389 3353 3352 3264 33 3389 3388 3354 3353 3348 3273 3271 360 359 298 297 292 291 245 244 239 238 202 3352 3346 3264 3263 3398 3397 3396 3341 3340 3262 3400 3342 3325 3321 3269 22 3391 3388 3355 3354 3349 3283 3281 3389 3353 3347 3273 3271 3400 3397 3342 3341 3325 3321 3269 3402 3343 3279 20 3393 3391 3356 3355 3350 3293 3291 3388 3354 3348 3283 3281 3402 3400 3343 3342 3279 3404 3344 3289 20 3395 3393 3357 3356 3351 3303 3301 3391 3355 3349 3293 3291 3404 3402 3344 3343 3289 3406 3345 3299 20 3395 3357 3313 3311 2955 2626 2583 3393 3356 3350 3303 3301 3406 3404 3345 3344 3299 2540 3309 3004 25 292 286 239 233 209 3382 3358 360 359 298 297 291 245 244 238 202 3389 3353 3347 3346 3264 3263 3383 3359 3265 32 3384 3383 3360 3359 3354 3329 3275 3274 3273 3382 3358 3352 3265 3264 360 359 298 297 292 291 245 244 239 238 202 3389 3347 3346 3263 3388 3348 3271 24 3385 3384 3361 3360 3355 3330 3329 3285 3284 3283 3383 3359 3353 3275 3274 3273 3389 3388 3348 3347 3271 3391 3349 3281 25 3386 3385 3362 3361 3356 3331 3330 3295 3294 3293 3384 3360 3354 3329 3285 3284 3283 3391 3388 3349 3348 3281 3393 3350 3291 25 3390 3386 3363 3362 3357 3332 3331 3305 3304 3303 3385 3361 3355 3330 3295 3294 3293 3393 3391 3350 3349 3291 3395 3351 3301 26 2453 2410 3390 3363 3332 3315 3314 3313 2755 2669 2626 3386 3362 3356 3331 3305 3304 3303 3395 3393 3351 3350 3301 3311 2955 2583 20 3377 3376 3365 3364 3359 3266 3265 286 280 233 227 215 292 239 209 3382 3352 3383 3353 3264 22 3378 3377 3366 3365 3360 3276 3275 3376 3364 3358 3266 3265 3383 3382 3353 3352 3264 3384 3354 3329 3274 3273 24 3379 3378 3367 3366 3361 3286 3285 3377 3365 3359 3276 3275 3384 3383 3354 3353 3329 3274 3273 3385 3355 3330 3284 3283 25 3380 3379 3368 3367 3362 3296 3295 3378 3366 3360 3286 3285 3385 3384 3355 3354 3330 3329 3284 3283 3386 3356 3331 3294 3293 25 3381 3380 3369 3368 3363 3306 3305 3379 3367 3361 3296 3295 3386 3385 3356 3355 3331 3330 3294 3293 3390 3357 3332 3304 3303 28 2496 2453 3381 3369 3316 3315 2757 2756 2712 2669 3380 3368 3362 3306 3305 3390 3386 3357 3356 3332 3331 3304 3303 2410 3314 3313 2755 2626 15 286 280 233 227 215 3376 3358 3377 3365 3359 3266 3265 357 279 226 20 347 279 278 226 225 3366 3276 357 280 227 3364 3266 3377 3376 3359 3358 3265 3378 3360 3275 20 337 278 277 225 224 3367 3286 347 279 226 3365 3276 3378 3377 3360 3359 3275 3379 3361 3285 22 327 277 276 224 223 220 3371 3368 3296 337 278 225 3366 3286 3379 3378 3361 3360 3285 3380 3362 3295 20 3375 3371 3369 3306 327 277 276 224 223 220 3367 3296 3380 3379 3362 3361 3295 3381 3363 3305 18 2496 3375 3316 2774 2712 3371 3368 3306 3381 3380 3363 3362 3305 2453 3315 2757 2756 2669 11 371 221 217 3374 3252 372 3251 148 3256 149 3257 15 3375 3369 3368 3306 327 277 276 224 223 220 3367 3296 317 275 216 11 368 219 3255 369 218 3373 3254 151 150 3259 3258 15 369 219 218 3372 3254 370 217 3374 3253 151 149 3258 3257 150 3259 15 370 218 217 3373 3253 371 221 3370 3252 149 148 3257 3256 151 3258 16 307 275 216 1354 861 3316 2774 317 276 220 3371 3306 3369 3368 2496 2712 17 3377 3365 3364 3359 3358 3266 3265 286 280 233 227 215 358 357 285 279 214 25 348 347 285 284 279 278 214 213 3378 3276 3275 358 357 286 280 215 3376 3266 3265 3365 3364 3359 3358 3366 3360 25 338 337 284 283 278 277 213 212 3379 3286 3285 348 347 285 279 214 3377 3276 3275 3366 3365 3360 3359 3367 3361 25 328 327 283 282 277 276 212 211 3380 3296 3295 338 337 284 278 213 3378 3286 3285 3367 3366 3361 3360 3368 3362 25 318 317 282 281 276 275 211 210 3381 3306 3305 328 327 283 277 212 3379 3296 3295 3368 3367 3362 3361 3369 3363 27 308 307 281 275 210 1354 878 3316 3315 2757 318 317 282 276 211 3380 3306 3305 3369 3368 3363 3362 2496 2453 2756 2712 2669 17 3383 3359 3358 3353 3352 3265 3264 292 286 239 233 209 359 358 291 285 208 27 349 348 291 290 285 284 208 207 3384 3275 3274 359 358 292 286 209 3382 3265 3264 3359 3358 3353 3352 3360 3354 3329 3273 29 339 338 290 289 284 283 207 206 3385 3285 3284 349 348 291 285 208 3383 3275 3274 3360 3359 3354 3353 3329 3273 3361 3355 3330 3283 30 329 328 289 288 283 282 206 205 3386 3295 3294 339 338 290 284 207 3384 3285 3284 3361 3360 3355 3354 3330 3329 3283 3362 3356 3331 3293 30 319 318 288 287 282 281 205 201 3390 3305 3304 329 328 289 283 206 3385 3295 3294 3362 3361 3356 3355 3331 3330 3293 3363 3357 3332 3303 34 3392 3391 3388 3330 3329 3326 3325 3284 3283 3282 3281 352 351 350 349 297 296 291 290 266 262 204 203 202 3389 3274 3273 3272 3271 341 339 295 289 199 35 3392 3391 3387 3330 3329 3326 3325 3284 3283 3282 3281 3355 3354 3349 3348 3389 3353 3347 3273 3271 352 351 350 349 297 296 291 290 266 262 204 203 202 3274 3272 37 3388 3354 3353 3348 3347 3273 3271 360 359 298 297 292 291 245 244 239 238 202 3352 3346 3264 3263 352 351 350 349 296 290 266 262 204 203 3387 3329 3325 3274 3272 28 309 308 287 281 201 3315 3314 319 318 288 282 205 3386 3305 3304 3363 3362 3357 3356 3332 3331 3303 2453 2410 3313 2755 2669 2626 25 3394 3393 3392 3331 3330 3327 3326 3294 3293 3292 3291 3388 3387 3329 3325 3284 3283 3282 3281 3355 3354 3349 3348 3356 3350 32 331 329 295 294 289 288 199 197 3394 3294 3292 341 339 296 290 204 3387 3284 3282 3391 3388 3330 3329 3326 3325 3283 3281 3393 3331 3327 3293 3291 25 3399 3395 3394 3332 3331 3328 3327 3304 3303 3302 3301 3392 3391 3330 3326 3294 3293 3292 3291 3356 3355 3350 3349 3357 3351 32 321 319 294 293 288 287 197 192 3399 3304 3302 331 329 295 289 199 3392 3294 3292 3393 3391 3331 3330 3327 3326 3293 3291 3395 3332 3328 3303 3301 24 2410 2367 3399 3332 3328 3314 3313 3312 3311 2955 3394 3393 3331 3327 3304 3303 3302 3301 3357 3356 3351 3350 2626 2583 27 353 351 303 302 297 296 195 190 3401 3272 3270 3400 3397 3271 3269 3398 3347 3346 3341 3340 3263 3262 361 360 304 298 193 18 3400 3348 3347 3342 3341 3325 3321 3271 3269 3398 3396 3346 3340 3263 3262 3401 3272 3270 18 3397 3396 3347 3346 3341 3340 3263 3262 304 298 251 245 193 361 360 303 297 195 28 311 309 293 287 192 3314 3312 321 319 294 288 197 3394 3304 3302 3395 3393 3332 3331 3328 3327 3303 3301 2410 2367 3313 3311 2955 23 3403 3402 3401 3326 3325 3322 3321 3282 3281 3280 3279 3397 3396 3272 3271 3270 3269 3348 3347 3342 3341 3349 3343 30 343 341 302 301 296 295 190 188 3403 3282 3280 353 351 303 297 195 3396 3272 3270 3400 3397 3271 3269 3402 3326 3325 3322 3321 3281 3279 25 3405 3404 3403 3327 3326 3323 3322 3292 3291 3290 3289 3401 3400 3325 3321 3282 3281 3280 3279 3349 3348 3343 3342 3350 3344 32 333 331 301 300 295 294 188 186 3405 3292 3290 343 341 302 296 190 3401 3282 3280 3402 3400 3326 3325 3322 3321 3281 3279 3404 3327 3323 3291 3289 25 3410 3406 3405 3328 3327 3324 3323 3302 3301 3300 3299 3403 3402 3326 3322 3292 3291 3290 3289 3350 3349 3344 3343 3351 3345 32 323 321 300 299 294 293 186 181 3410 3302 3300 333 331 301 295 188 3403 3292 3290 3404 3402 3327 3326 3323 3322 3291 3289 3406 3328 3324 3301 3299 24 2367 2324 3410 3328 3324 3312 3311 3310 3309 3004 3405 3404 3327 3323 3302 3301 3300 3299 3351 3350 3345 3344 2540 2583 25 355 353 303 302 184 179 3412 3270 3268 362 361 304 182 3409 3262 3261 3408 3341 3340 3335 3334 3260 3411 3269 3267 19 3411 3342 3341 3336 3335 3321 3317 3269 3267 3409 3407 3340 3334 3262 3261 3260 3412 3270 3268 19 3408 3407 3341 3340 3335 3334 3262 3261 3260 304 258 257 251 182 3333 362 361 303 184 28 313 311 299 293 181 3312 3310 323 321 300 294 186 3405 3302 3300 3406 3404 3328 3327 3324 3323 3301 3299 2367 2324 3311 3309 3004 23 3414 3413 3412 3322 3321 3318 3317 3280 3279 3278 3277 3408 3407 3270 3269 3268 3267 3342 3341 3336 3335 3343 3337 28 345 343 306 302 301 179 177 3414 3280 3278 355 353 303 184 3407 3270 3268 3411 3408 3269 3267 3413 3322 3321 3318 3317 3279 3277 25 3416 3415 3414 3323 3322 3319 3318 3290 3289 3288 3287 3412 3411 3321 3317 3280 3279 3278 3277 3343 3342 3337 3336 3344 3338 30 335 333 306 301 300 177 175 3416 3290 3288 345 343 302 179 3412 3280 3278 3413 3411 3322 3321 3318 3317 3279 3277 3415 3323 3319 3289 3287 25 3418 3417 3416 3324 3323 3320 3319 3300 3299 3298 3297 3414 3413 3322 3318 3290 3289 3288 3287 3344 3343 3338 3337 3345 3339 31 325 323 305 300 299 175 173 3418 3300 3298 335 333 306 301 177 3414 3290 3288 3415 3413 3323 3322 3319 3318 3289 3287 3417 3324 3320 3299 3297 25 2324 1965 1940 3418 3324 3320 3310 3309 3308 3307 3062 3416 3415 3323 3319 3300 3299 3298 3297 3345 3344 3339 3338 2540 2539 29 315 313 305 299 173 1940 1782 3310 3308 325 323 300 175 3416 3300 3298 3417 3415 3324 3323 3320 3319 3299 3297 2324 1965 3309 3307 3062 8 3421 3335 3334 3260 3420 3333 3422 3261 11 362 171 169 3422 3261 258 3333 3419 3334 3421 3260 15 3424 3423 3422 3268 3267 3256 3251 3420 3419 3261 3260 3335 3334 3336 3317 17 372 355 169 167 3424 3268 3251 362 171 3420 3261 3421 3419 3260 3423 3267 3256 18 3426 3425 3424 3318 3317 3278 3277 3257 3256 3252 3422 3421 3268 3267 3251 3336 3335 3337 23 371 345 306 167 165 3426 3278 3252 372 355 169 3422 3268 3251 3423 3421 3267 3256 3425 3318 3317 3277 3257 20 3428 3427 3426 3319 3318 3288 3287 3258 3257 3253 3424 3423 3317 3278 3277 3256 3252 3337 3336 3338 25 370 335 306 165 163 3428 3288 3253 371 345 167 3424 3278 3252 3425 3423 3318 3317 3277 3257 3256 3427 3319 3287 3258 20 3430 3429 3428 3320 3319 3298 3297 3259 3258 3254 3426 3425 3318 3288 3287 3257 3253 3338 3337 3339 26 369 325 305 163 161 3430 3298 3254 370 335 306 165 3426 3288 3253 3427 3425 3319 3318 3287 3258 3257 3429 3320 3297 3259 16 3430 3320 3308 3307 3259 3255 3428 3427 3319 3298 3297 3258 3254 3339 3338 2539 20 368 315 305 161 3308 3255 369 325 163 3428 3298 3254 3429 3427 3320 3319 3297 3259 3258 3307 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/ship001.msh000066400000000000000000063527261514310134000256530ustar00rootroot000000000000001 3431 34920 310212 34921 1 000 7 1 2 219 220 365 366 370 7 1 2 219 220 365 366 370 7 1 2 219 220 365 366 370 7 1 2 219 220 365 366 370 7 1 2 219 220 365 366 370 7 1 2 219 220 365 366 370 3 1 219 366 3 1 219 366 3 1 219 366 3 1 219 366 3 1 219 366 3 1 219 366 7 1 3 218 219 366 367 371 7 1 3 218 219 366 367 371 7 1 3 218 219 366 367 371 7 1 3 218 219 366 367 371 7 1 3 218 219 366 367 371 7 1 3 218 219 366 367 371 4 2 220 365 369 4 2 220 365 369 4 2 220 365 369 4 2 220 365 369 4 2 220 365 369 4 2 220 365 369 3 2 220 365 3 2 220 365 3 2 220 365 3 2 220 365 3 2 220 365 3 2 220 365 3 3 218 367 3 3 218 367 3 3 218 367 3 3 218 367 3 3 218 367 3 3 218 367 7 3 4 218 222 367 368 372 7 3 4 218 222 367 368 372 7 3 4 218 222 367 368 372 7 3 4 218 222 367 368 372 7 3 4 218 222 367 368 372 7 3 4 218 222 367 368 372 3 4 222 368 3 4 222 368 3 4 222 368 3 4 222 368 3 4 222 368 3 4 222 368 4 4 222 368 373 4 4 222 368 373 4 4 222 368 373 4 4 222 368 373 4 4 222 368 373 4 4 222 368 373 4 5 412 508 513 4 5 412 508 513 4 5 412 508 513 4 5 412 508 513 4 5 412 508 513 4 5 412 508 513 3 5 412 508 3 5 412 508 3 5 412 508 3 5 412 508 3 5 412 508 3 5 412 508 6 5 6 412 508 509 514 6 5 6 412 508 509 514 6 5 6 412 508 509 514 6 5 6 412 508 509 514 6 5 6 412 508 509 514 6 5 6 412 508 509 514 2 6 509 2 6 509 2 6 509 2 6 509 2 6 509 2 6 509 4 6 7 509 510 4 6 7 509 510 4 6 7 509 510 4 6 7 509 510 4 6 7 509 510 4 6 7 509 510 2 7 510 2 7 510 2 7 510 2 7 510 2 7 510 2 7 510 6 7 8 413 510 511 515 6 7 8 413 510 511 515 6 7 8 413 510 511 515 6 7 8 413 510 511 515 6 7 8 413 510 511 515 6 7 8 413 510 511 515 3 8 413 511 3 8 413 511 3 8 413 511 3 8 413 511 3 8 413 511 3 8 413 511 6 8 9 413 511 512 516 6 8 9 413 511 512 516 6 8 9 413 511 512 516 6 8 9 413 511 512 516 6 8 9 413 511 512 516 6 8 9 413 511 512 516 2 9 512 2 9 512 2 9 512 2 9 512 2 9 512 2 9 512 4 9 10 512 1716 4 9 10 512 1716 4 9 10 512 1716 4 9 10 512 1716 4 9 10 512 1716 4 9 10 512 1716 2 10 1716 2 10 1716 2 10 1716 2 10 1716 2 10 1716 2 10 1716 6 10 11 863 1716 1717 1759 6 10 11 863 1716 1717 1759 6 10 11 863 1716 1717 1759 6 10 11 863 1716 1717 1759 6 10 11 863 1716 1717 1759 6 10 11 863 1716 1717 1759 3 11 863 1717 3 11 863 1717 3 11 863 1717 3 11 863 1717 3 11 863 1717 3 11 863 1717 5 11 12 863 1717 1718 5 11 12 863 1717 1718 5 11 12 863 1717 1718 5 11 12 863 1717 1718 5 11 12 863 1717 1718 5 11 12 863 1717 1718 2 12 1718 2 12 1718 2 12 1718 2 12 1718 2 12 1718 2 12 1718 4 12 13 1718 1719 4 12 13 1718 1719 4 12 13 1718 1719 4 12 13 1718 1719 4 12 13 1718 1719 4 12 13 1718 1719 2 13 1719 2 13 1719 2 13 1719 2 13 1719 2 13 1719 2 13 1719 4 13 14 1719 1720 4 13 14 1719 1720 4 13 14 1719 1720 4 13 14 1719 1720 4 13 14 1719 1720 4 13 14 1719 1720 2 14 1720 2 14 1720 2 14 1720 2 14 1720 2 14 1720 2 14 1720 4 14 15 1720 1721 4 14 15 1720 1721 4 14 15 1720 1721 4 14 15 1720 1721 4 14 15 1720 1721 4 14 15 1720 1721 2 15 1721 2 15 1721 2 15 1721 2 15 1721 2 15 1721 2 15 1721 4 15 16 1721 1722 4 15 16 1721 1722 4 15 16 1721 1722 4 15 16 1721 1722 4 15 16 1721 1722 4 15 16 1721 1722 2 16 1722 2 16 1722 2 16 1722 2 16 1722 2 16 1722 2 16 1722 5 16 17 864 1722 1723 5 16 17 864 1722 1723 5 16 17 864 1722 1723 5 16 17 864 1722 1723 5 16 17 864 1722 1723 5 16 17 864 1722 1723 3 17 864 1723 3 17 864 1723 3 17 864 1723 3 17 864 1723 3 17 864 1723 3 17 864 1723 6 17 18 864 1723 1724 1760 6 17 18 864 1723 1724 1760 6 17 18 864 1723 1724 1760 6 17 18 864 1723 1724 1760 6 17 18 864 1723 1724 1760 6 17 18 864 1723 1724 1760 2 18 1724 2 18 1724 2 18 1724 2 18 1724 2 18 1724 2 18 1724 4 18 19 1724 1725 4 18 19 1724 1725 4 18 19 1724 1725 4 18 19 1724 1725 4 18 19 1724 1725 4 18 19 1724 1725 2 19 1725 2 19 1725 2 19 1725 2 19 1725 2 19 1725 2 19 1725 6 19 20 865 1725 1726 1761 6 19 20 865 1725 1726 1761 6 19 20 865 1725 1726 1761 6 19 20 865 1725 1726 1761 6 19 20 865 1725 1726 1761 6 19 20 865 1725 1726 1761 3 20 865 1726 3 20 865 1726 3 20 865 1726 3 20 865 1726 3 20 865 1726 3 20 865 1726 6 20 21 865 1726 1727 1762 6 20 21 865 1726 1727 1762 6 20 21 865 1726 1727 1762 6 20 21 865 1726 1727 1762 6 20 21 865 1726 1727 1762 6 20 21 865 1726 1727 1762 2 21 1727 2 21 1727 2 21 1727 2 21 1727 2 21 1727 2 21 1727 4 21 22 1727 1728 4 21 22 1727 1728 4 21 22 1727 1728 4 21 22 1727 1728 4 21 22 1727 1728 4 21 22 1727 1728 2 22 1728 2 22 1728 2 22 1728 2 22 1728 2 22 1728 2 22 1728 6 22 23 866 1728 1729 1763 6 22 23 866 1728 1729 1763 6 22 23 866 1728 1729 1763 6 22 23 866 1728 1729 1763 6 22 23 866 1728 1729 1763 6 22 23 866 1728 1729 1763 3 23 866 1729 3 23 866 1729 3 23 866 1729 3 23 866 1729 3 23 866 1729 3 23 866 1729 6 23 24 866 1729 1730 1764 6 23 24 866 1729 1730 1764 6 23 24 866 1729 1730 1764 6 23 24 866 1729 1730 1764 6 23 24 866 1729 1730 1764 6 23 24 866 1729 1730 1764 2 24 1730 2 24 1730 2 24 1730 2 24 1730 2 24 1730 2 24 1730 4 24 25 1730 1731 4 24 25 1730 1731 4 24 25 1730 1731 4 24 25 1730 1731 4 24 25 1730 1731 4 24 25 1730 1731 2 25 1731 2 25 1731 2 25 1731 2 25 1731 2 25 1731 2 25 1731 6 25 26 867 1731 1732 1765 6 25 26 867 1731 1732 1765 6 25 26 867 1731 1732 1765 6 25 26 867 1731 1732 1765 6 25 26 867 1731 1732 1765 6 25 26 867 1731 1732 1765 3 26 867 1732 3 26 867 1732 3 26 867 1732 3 26 867 1732 3 26 867 1732 3 26 867 1732 6 26 27 867 1732 1733 1766 6 26 27 867 1732 1733 1766 6 26 27 867 1732 1733 1766 6 26 27 867 1732 1733 1766 6 26 27 867 1732 1733 1766 6 26 27 867 1732 1733 1766 2 27 1733 2 27 1733 2 27 1733 2 27 1733 2 27 1733 2 27 1733 4 27 28 1733 1734 4 27 28 1733 1734 4 27 28 1733 1734 4 27 28 1733 1734 4 27 28 1733 1734 4 27 28 1733 1734 2 28 1734 2 28 1734 2 28 1734 2 28 1734 2 28 1734 2 28 1734 6 28 29 868 1734 1735 1767 6 28 29 868 1734 1735 1767 6 28 29 868 1734 1735 1767 6 28 29 868 1734 1735 1767 6 28 29 868 1734 1735 1767 6 28 29 868 1734 1735 1767 3 29 868 1735 3 29 868 1735 3 29 868 1735 3 29 868 1735 3 29 868 1735 3 29 868 1735 6 29 30 868 1735 1736 1768 6 29 30 868 1735 1736 1768 6 29 30 868 1735 1736 1768 6 29 30 868 1735 1736 1768 6 29 30 868 1735 1736 1768 6 29 30 868 1735 1736 1768 2 30 1736 2 30 1736 2 30 1736 2 30 1736 2 30 1736 2 30 1736 4 30 31 1736 1737 4 30 31 1736 1737 4 30 31 1736 1737 4 30 31 1736 1737 4 30 31 1736 1737 4 30 31 1736 1737 2 31 1737 2 31 1737 2 31 1737 2 31 1737 2 31 1737 2 31 1737 6 31 32 869 1737 1738 1769 6 31 32 869 1737 1738 1769 6 31 32 869 1737 1738 1769 6 31 32 869 1737 1738 1769 6 31 32 869 1737 1738 1769 6 31 32 869 1737 1738 1769 3 32 869 1738 3 32 869 1738 3 32 869 1738 3 32 869 1738 3 32 869 1738 3 32 869 1738 6 32 33 869 1738 1739 1770 6 32 33 869 1738 1739 1770 6 32 33 869 1738 1739 1770 6 32 33 869 1738 1739 1770 6 32 33 869 1738 1739 1770 6 32 33 869 1738 1739 1770 2 33 1739 2 33 1739 2 33 1739 2 33 1739 2 33 1739 2 33 1739 4 33 34 1739 1740 4 33 34 1739 1740 4 33 34 1739 1740 4 33 34 1739 1740 4 33 34 1739 1740 4 33 34 1739 1740 2 34 1740 2 34 1740 2 34 1740 2 34 1740 2 34 1740 2 34 1740 6 34 35 870 1740 1741 1771 6 34 35 870 1740 1741 1771 6 34 35 870 1740 1741 1771 6 34 35 870 1740 1741 1771 6 34 35 870 1740 1741 1771 6 34 35 870 1740 1741 1771 3 35 870 1741 3 35 870 1741 3 35 870 1741 3 35 870 1741 3 35 870 1741 3 35 870 1741 6 35 36 870 1741 1742 1772 6 35 36 870 1741 1742 1772 6 35 36 870 1741 1742 1772 6 35 36 870 1741 1742 1772 6 35 36 870 1741 1742 1772 6 35 36 870 1741 1742 1772 2 36 1742 2 36 1742 2 36 1742 2 36 1742 2 36 1742 2 36 1742 4 36 37 1742 1743 4 36 37 1742 1743 4 36 37 1742 1743 4 36 37 1742 1743 4 36 37 1742 1743 4 36 37 1742 1743 2 37 1743 2 37 1743 2 37 1743 2 37 1743 2 37 1743 2 37 1743 6 37 38 871 1743 1744 1773 6 37 38 871 1743 1744 1773 6 37 38 871 1743 1744 1773 6 37 38 871 1743 1744 1773 6 37 38 871 1743 1744 1773 6 37 38 871 1743 1744 1773 3 38 871 1744 3 38 871 1744 3 38 871 1744 3 38 871 1744 3 38 871 1744 3 38 871 1744 6 38 39 871 1744 1745 1774 6 38 39 871 1744 1745 1774 6 38 39 871 1744 1745 1774 6 38 39 871 1744 1745 1774 6 38 39 871 1744 1745 1774 6 38 39 871 1744 1745 1774 2 39 1745 2 39 1745 2 39 1745 2 39 1745 2 39 1745 2 39 1745 4 39 40 1745 1746 4 39 40 1745 1746 4 39 40 1745 1746 4 39 40 1745 1746 4 39 40 1745 1746 4 39 40 1745 1746 2 40 1746 2 40 1746 2 40 1746 2 40 1746 2 40 1746 2 40 1746 6 40 41 872 1746 1747 1775 6 40 41 872 1746 1747 1775 6 40 41 872 1746 1747 1775 6 40 41 872 1746 1747 1775 6 40 41 872 1746 1747 1775 6 40 41 872 1746 1747 1775 3 41 872 1747 3 41 872 1747 3 41 872 1747 3 41 872 1747 3 41 872 1747 3 41 872 1747 6 41 42 872 1747 1748 1776 6 41 42 872 1747 1748 1776 6 41 42 872 1747 1748 1776 6 41 42 872 1747 1748 1776 6 41 42 872 1747 1748 1776 6 41 42 872 1747 1748 1776 2 42 1748 2 42 1748 2 42 1748 2 42 1748 2 42 1748 2 42 1748 4 42 43 1748 1749 4 42 43 1748 1749 4 42 43 1748 1749 4 42 43 1748 1749 4 42 43 1748 1749 4 42 43 1748 1749 2 43 1749 2 43 1749 2 43 1749 2 43 1749 2 43 1749 2 43 1749 6 43 44 873 1749 1750 1777 6 43 44 873 1749 1750 1777 6 43 44 873 1749 1750 1777 6 43 44 873 1749 1750 1777 6 43 44 873 1749 1750 1777 6 43 44 873 1749 1750 1777 3 44 873 1750 3 44 873 1750 3 44 873 1750 3 44 873 1750 3 44 873 1750 3 44 873 1750 6 44 45 873 1750 1751 1778 6 44 45 873 1750 1751 1778 6 44 45 873 1750 1751 1778 6 44 45 873 1750 1751 1778 6 44 45 873 1750 1751 1778 6 44 45 873 1750 1751 1778 2 45 1751 2 45 1751 2 45 1751 2 45 1751 2 45 1751 2 45 1751 4 45 46 1751 1752 4 45 46 1751 1752 4 45 46 1751 1752 4 45 46 1751 1752 4 45 46 1751 1752 4 45 46 1751 1752 2 46 1752 2 46 1752 2 46 1752 2 46 1752 2 46 1752 2 46 1752 6 46 47 874 1752 1753 1779 6 46 47 874 1752 1753 1779 6 46 47 874 1752 1753 1779 6 46 47 874 1752 1753 1779 6 46 47 874 1752 1753 1779 6 46 47 874 1752 1753 1779 3 47 874 1753 3 47 874 1753 3 47 874 1753 3 47 874 1753 3 47 874 1753 3 47 874 1753 6 47 48 874 1753 1754 1780 6 47 48 874 1753 1754 1780 6 47 48 874 1753 1754 1780 6 47 48 874 1753 1754 1780 6 47 48 874 1753 1754 1780 6 47 48 874 1753 1754 1780 2 48 1754 2 48 1754 2 48 1754 2 48 1754 2 48 1754 2 48 1754 4 48 49 1754 1755 4 48 49 1754 1755 4 48 49 1754 1755 4 48 49 1754 1755 4 48 49 1754 1755 4 48 49 1754 1755 2 49 1755 2 49 1755 2 49 1755 2 49 1755 2 49 1755 2 49 1755 6 49 50 875 1755 1756 1781 6 49 50 875 1755 1756 1781 6 49 50 875 1755 1756 1781 6 49 50 875 1755 1756 1781 6 49 50 875 1755 1756 1781 6 49 50 875 1755 1756 1781 3 50 875 1756 3 50 875 1756 3 50 875 1756 3 50 875 1756 3 50 875 1756 3 50 875 1756 6 50 51 875 1756 1757 1782 6 50 51 875 1756 1757 1782 6 50 51 875 1756 1757 1782 6 50 51 875 1756 1757 1782 6 50 51 875 1756 1757 1782 6 50 51 875 1756 1757 1782 2 51 1757 2 51 1757 2 51 1757 2 51 1757 2 51 1757 2 51 1757 4 51 52 1757 1758 4 51 52 1757 1758 4 51 52 1757 1758 4 51 52 1757 1758 4 51 52 1757 1758 4 51 52 1757 1758 2 52 1758 2 52 1758 2 52 1758 2 52 1758 2 52 1758 2 52 1758 3 52 1758 1783 3 52 1758 1783 3 52 1758 1783 3 52 1758 1783 3 52 1758 1783 3 52 1758 1783 12 53 738 739 740 741 1099 1100 1142 1143 1408 1409 1410 12 53 738 739 740 741 1099 1100 1142 1143 1408 1409 1410 12 53 738 739 740 741 1099 1100 1142 1143 1408 1409 1410 12 53 738 739 740 741 1099 1100 1142 1143 1408 1409 1410 12 53 738 739 740 741 1099 1100 1142 1143 1408 1409 1410 12 53 738 739 740 741 1099 1100 1142 1143 1408 1409 1410 5 53 59 686 689 691 5 53 59 686 689 691 5 53 59 686 689 691 5 53 59 686 689 691 5 53 59 686 689 691 5 53 59 686 689 691 12 54 740 741 742 743 1100 1101 1143 1144 1414 1415 1416 12 54 740 741 742 743 1100 1101 1143 1144 1414 1415 1416 12 54 740 741 742 743 1100 1101 1143 1144 1414 1415 1416 12 54 740 741 742 743 1100 1101 1143 1144 1414 1415 1416 12 54 740 741 742 743 1100 1101 1143 1144 1414 1415 1416 12 54 740 741 742 743 1100 1101 1143 1144 1414 1415 1416 4 54 60 683 686 4 54 60 683 686 4 54 60 683 686 4 54 60 683 686 4 54 60 683 686 4 54 60 683 686 12 55 742 743 744 745 1101 1102 1144 1145 1420 1421 1422 12 55 742 743 744 745 1101 1102 1144 1145 1420 1421 1422 12 55 742 743 744 745 1101 1102 1144 1145 1420 1421 1422 12 55 742 743 744 745 1101 1102 1144 1145 1420 1421 1422 12 55 742 743 744 745 1101 1102 1144 1145 1420 1421 1422 12 55 742 743 744 745 1101 1102 1144 1145 1420 1421 1422 4 55 61 683 1848 4 55 61 683 1848 4 55 61 683 1848 4 55 61 683 1848 4 55 61 683 1848 4 55 61 683 1848 12 56 744 745 746 747 1102 1103 1145 1146 1426 1427 1428 12 56 744 745 746 747 1102 1103 1145 1146 1426 1427 1428 12 56 744 745 746 747 1102 1103 1145 1146 1426 1427 1428 12 56 744 745 746 747 1102 1103 1145 1146 1426 1427 1428 12 56 744 745 746 747 1102 1103 1145 1146 1426 1427 1428 12 56 744 745 746 747 1102 1103 1145 1146 1426 1427 1428 4 56 62 1848 1849 4 56 62 1848 1849 4 56 62 1848 1849 4 56 62 1848 1849 4 56 62 1848 1849 4 56 62 1848 1849 12 57 746 747 748 749 1103 1104 1146 1147 1432 1433 1434 12 57 746 747 748 749 1103 1104 1146 1147 1432 1433 1434 12 57 746 747 748 749 1103 1104 1146 1147 1432 1433 1434 12 57 746 747 748 749 1103 1104 1146 1147 1432 1433 1434 12 57 746 747 748 749 1103 1104 1146 1147 1432 1433 1434 12 57 746 747 748 749 1103 1104 1146 1147 1432 1433 1434 4 57 63 1849 1850 4 57 63 1849 1850 4 57 63 1849 1850 4 57 63 1849 1850 4 57 63 1849 1850 4 57 63 1849 1850 12 58 748 749 750 751 1104 1105 1147 1148 1438 1439 1440 12 58 748 749 750 751 1104 1105 1147 1148 1438 1439 1440 12 58 748 749 750 751 1104 1105 1147 1148 1438 1439 1440 12 58 748 749 750 751 1104 1105 1147 1148 1438 1439 1440 12 58 748 749 750 751 1104 1105 1147 1148 1438 1439 1440 12 58 748 749 750 751 1104 1105 1147 1148 1438 1439 1440 5 58 64 1850 1851 1852 5 58 64 1850 1851 1852 5 58 64 1850 1851 1852 5 58 64 1850 1851 1852 5 58 64 1850 1851 1852 5 58 64 1850 1851 1852 5 59 65 638 641 643 5 59 65 638 641 643 5 59 65 638 641 643 5 59 65 638 641 643 5 59 65 638 641 643 5 59 65 638 641 643 4 60 66 635 638 4 60 66 635 638 4 60 66 635 638 4 60 66 635 638 4 60 66 635 638 4 60 66 635 638 4 61 67 635 1853 4 61 67 635 1853 4 61 67 635 1853 4 61 67 635 1853 4 61 67 635 1853 4 61 67 635 1853 4 62 68 1853 1854 4 62 68 1853 1854 4 62 68 1853 1854 4 62 68 1853 1854 4 62 68 1853 1854 4 62 68 1853 1854 4 63 69 1854 1855 4 63 69 1854 1855 4 63 69 1854 1855 4 63 69 1854 1855 4 63 69 1854 1855 4 63 69 1854 1855 5 64 70 1855 1856 1857 5 64 70 1855 1856 1857 5 64 70 1855 1856 1857 5 64 70 1855 1856 1857 5 64 70 1855 1856 1857 5 64 70 1855 1856 1857 5 65 71 580 583 585 5 65 71 580 583 585 5 65 71 580 583 585 5 65 71 580 583 585 5 65 71 580 583 585 5 65 71 580 583 585 4 66 72 577 580 4 66 72 577 580 4 66 72 577 580 4 66 72 577 580 4 66 72 577 580 4 66 72 577 580 4 67 73 577 1858 4 67 73 577 1858 4 67 73 577 1858 4 67 73 577 1858 4 67 73 577 1858 4 67 73 577 1858 4 68 74 1858 1859 4 68 74 1858 1859 4 68 74 1858 1859 4 68 74 1858 1859 4 68 74 1858 1859 4 68 74 1858 1859 4 69 75 1859 1860 4 69 75 1859 1860 4 69 75 1859 1860 4 69 75 1859 1860 4 69 75 1859 1860 4 69 75 1859 1860 5 70 76 1860 1861 1862 5 70 76 1860 1861 1862 5 70 76 1860 1861 1862 5 70 76 1860 1861 1862 5 70 76 1860 1861 1862 5 70 76 1860 1861 1862 4 71 522 525 527 4 71 522 525 527 4 71 522 525 527 4 71 522 525 527 4 71 522 525 527 4 71 522 525 527 3 72 519 522 3 72 519 522 3 72 519 522 3 72 519 522 3 72 519 522 3 72 519 522 3 73 519 1863 3 73 519 1863 3 73 519 1863 3 73 519 1863 3 73 519 1863 3 73 519 1863 3 74 1863 1864 3 74 1863 1864 3 74 1863 1864 3 74 1863 1864 3 74 1863 1864 3 74 1863 1864 3 75 1864 1865 3 75 1864 1865 3 75 1864 1865 3 75 1864 1865 3 75 1864 1865 3 75 1864 1865 4 76 1865 1866 1867 4 76 1865 1866 1867 4 76 1865 1866 1867 4 76 1865 1866 1867 4 76 1865 1866 1867 4 76 1865 1866 1867 5 77 83 1873 1874 1875 5 77 83 1873 1874 1875 5 77 83 1873 1874 1875 5 77 83 1873 1874 1875 5 77 83 1873 1874 1875 5 77 83 1873 1874 1875 4 77 1868 1869 1870 4 77 1868 1869 1870 4 77 1868 1869 1870 4 77 1868 1869 1870 4 77 1868 1869 1870 4 77 1868 1869 1870 4 78 84 1875 1876 4 78 84 1875 1876 4 78 84 1875 1876 4 78 84 1875 1876 4 78 84 1875 1876 4 78 84 1875 1876 3 78 1870 1871 3 78 1870 1871 3 78 1870 1871 3 78 1870 1871 3 78 1870 1871 3 78 1870 1871 4 79 85 1876 1877 4 79 85 1876 1877 4 79 85 1876 1877 4 79 85 1876 1877 4 79 85 1876 1877 4 79 85 1876 1877 3 79 1871 1872 3 79 1871 1872 3 79 1871 1872 3 79 1871 1872 3 79 1871 1872 3 79 1871 1872 4 80 86 1877 3060 4 80 86 1877 3060 4 80 86 1877 3060 4 80 86 1877 3060 4 80 86 1877 3060 4 80 86 1877 3060 3 80 1872 3118 3 80 1872 3118 3 80 1872 3118 3 80 1872 3118 3 80 1872 3118 3 80 1872 3118 4 81 87 3057 3060 4 81 87 3057 3060 4 81 87 3057 3060 4 81 87 3057 3060 4 81 87 3057 3060 4 81 87 3057 3060 3 81 3115 3118 3 81 3115 3118 3 81 3115 3118 3 81 3115 3118 3 81 3115 3118 3 81 3115 3118 5 82 88 3052 3054 3057 5 82 88 3052 3054 3057 5 82 88 3052 3054 3057 5 82 88 3052 3054 3057 5 82 88 3052 3054 3057 5 82 88 3052 3054 3057 4 82 3110 3112 3115 4 82 3110 3112 3115 4 82 3110 3112 3115 4 82 3110 3112 3115 4 82 3110 3112 3115 4 82 3110 3112 3115 5 83 89 1878 1879 1880 5 83 89 1878 1879 1880 5 83 89 1878 1879 1880 5 83 89 1878 1879 1880 5 83 89 1878 1879 1880 5 83 89 1878 1879 1880 4 84 90 1880 1881 4 84 90 1880 1881 4 84 90 1880 1881 4 84 90 1880 1881 4 84 90 1880 1881 4 84 90 1880 1881 4 85 91 1881 1882 4 85 91 1881 1882 4 85 91 1881 1882 4 85 91 1881 1882 4 85 91 1881 1882 4 85 91 1881 1882 4 86 92 1882 3002 4 86 92 1882 3002 4 86 92 1882 3002 4 86 92 1882 3002 4 86 92 1882 3002 4 86 92 1882 3002 4 87 93 2999 3002 4 87 93 2999 3002 4 87 93 2999 3002 4 87 93 2999 3002 4 87 93 2999 3002 4 87 93 2999 3002 5 88 94 2994 2996 2999 5 88 94 2994 2996 2999 5 88 94 2994 2996 2999 5 88 94 2994 2996 2999 5 88 94 2994 2996 2999 5 88 94 2994 2996 2999 5 89 95 1883 1884 1885 5 89 95 1883 1884 1885 5 89 95 1883 1884 1885 5 89 95 1883 1884 1885 5 89 95 1883 1884 1885 5 89 95 1883 1884 1885 4 90 96 1885 1886 4 90 96 1885 1886 4 90 96 1885 1886 4 90 96 1885 1886 4 90 96 1885 1886 4 90 96 1885 1886 4 91 97 1886 1887 4 91 97 1886 1887 4 91 97 1886 1887 4 91 97 1886 1887 4 91 97 1886 1887 4 91 97 1886 1887 4 92 98 1887 2954 4 92 98 1887 2954 4 92 98 1887 2954 4 92 98 1887 2954 4 92 98 1887 2954 4 92 98 1887 2954 4 93 99 2951 2954 4 93 99 2951 2954 4 93 99 2951 2954 4 93 99 2951 2954 4 93 99 2951 2954 4 93 99 2951 2954 5 94 100 2946 2948 2951 5 94 100 2946 2948 2951 5 94 100 2946 2948 2951 5 94 100 2946 2948 2951 5 94 100 2946 2948 2951 5 94 100 2946 2948 2951 12 95 2284 2285 2286 2489 2490 2532 2533 2886 2887 2888 2889 12 95 2284 2285 2286 2489 2490 2532 2533 2886 2887 2888 2889 12 95 2284 2285 2286 2489 2490 2532 2533 2886 2887 2888 2889 12 95 2284 2285 2286 2489 2490 2532 2533 2886 2887 2888 2889 12 95 2284 2285 2286 2489 2490 2532 2533 2886 2887 2888 2889 12 95 2284 2285 2286 2489 2490 2532 2533 2886 2887 2888 2889 12 96 2290 2291 2292 2490 2491 2533 2534 2888 2889 2890 2891 12 96 2290 2291 2292 2490 2491 2533 2534 2888 2889 2890 2891 12 96 2290 2291 2292 2490 2491 2533 2534 2888 2889 2890 2891 12 96 2290 2291 2292 2490 2491 2533 2534 2888 2889 2890 2891 12 96 2290 2291 2292 2490 2491 2533 2534 2888 2889 2890 2891 12 96 2290 2291 2292 2490 2491 2533 2534 2888 2889 2890 2891 12 97 2296 2297 2298 2491 2492 2534 2535 2890 2891 2892 2893 12 97 2296 2297 2298 2491 2492 2534 2535 2890 2891 2892 2893 12 97 2296 2297 2298 2491 2492 2534 2535 2890 2891 2892 2893 12 97 2296 2297 2298 2491 2492 2534 2535 2890 2891 2892 2893 12 97 2296 2297 2298 2491 2492 2534 2535 2890 2891 2892 2893 12 97 2296 2297 2298 2491 2492 2534 2535 2890 2891 2892 2893 12 98 2302 2303 2304 2492 2493 2535 2536 2892 2893 2894 2895 12 98 2302 2303 2304 2492 2493 2535 2536 2892 2893 2894 2895 12 98 2302 2303 2304 2492 2493 2535 2536 2892 2893 2894 2895 12 98 2302 2303 2304 2492 2493 2535 2536 2892 2893 2894 2895 12 98 2302 2303 2304 2492 2493 2535 2536 2892 2893 2894 2895 12 98 2302 2303 2304 2492 2493 2535 2536 2892 2893 2894 2895 12 99 2308 2309 2310 2493 2494 2536 2537 2894 2895 2896 2897 12 99 2308 2309 2310 2493 2494 2536 2537 2894 2895 2896 2897 12 99 2308 2309 2310 2493 2494 2536 2537 2894 2895 2896 2897 12 99 2308 2309 2310 2493 2494 2536 2537 2894 2895 2896 2897 12 99 2308 2309 2310 2493 2494 2536 2537 2894 2895 2896 2897 12 99 2308 2309 2310 2493 2494 2536 2537 2894 2895 2896 2897 12 100 2314 2315 2316 2494 2495 2537 2538 2896 2897 2898 2899 12 100 2314 2315 2316 2494 2495 2537 2538 2896 2897 2898 2899 12 100 2314 2315 2316 2494 2495 2537 2538 2896 2897 2898 2899 12 100 2314 2315 2316 2494 2495 2537 2538 2896 2897 2898 2899 12 100 2314 2315 2316 2494 2495 2537 2538 2896 2897 2898 2899 12 100 2314 2315 2316 2494 2495 2537 2538 2896 2897 2898 2899 4 101 102 1966 1967 4 101 102 1966 1967 4 101 102 1966 1967 4 101 102 1966 1967 4 101 102 1966 1967 4 101 102 1966 1967 2 101 1966 2 101 1966 2 101 1966 2 101 1966 2 101 1966 2 101 1966 3 101 1941 1966 3 101 1941 1966 3 101 1941 1966 3 101 1941 1966 3 101 1941 1966 3 101 1941 1966 6 102 103 1942 1967 1968 2762 6 102 103 1942 1967 1968 2762 6 102 103 1942 1967 1968 2762 6 102 103 1942 1967 1968 2762 6 102 103 1942 1967 1968 2762 6 102 103 1942 1967 1968 2762 2 102 1967 2 102 1967 2 102 1967 2 102 1967 2 102 1967 2 102 1967 6 103 104 1943 1968 1969 2762 6 103 104 1943 1968 1969 2762 6 103 104 1943 1968 1969 2762 6 103 104 1943 1968 1969 2762 6 103 104 1943 1968 1969 2762 6 103 104 1943 1968 1969 2762 3 103 1968 2762 3 103 1968 2762 3 103 1968 2762 3 103 1968 2762 3 103 1968 2762 3 103 1968 2762 4 104 105 1969 1970 4 104 105 1969 1970 4 104 105 1969 1970 4 104 105 1969 1970 4 104 105 1969 1970 4 104 105 1969 1970 2 104 1969 2 104 1969 2 104 1969 2 104 1969 2 104 1969 2 104 1969 6 105 106 1944 1970 1971 2763 6 105 106 1944 1970 1971 2763 6 105 106 1944 1970 1971 2763 6 105 106 1944 1970 1971 2763 6 105 106 1944 1970 1971 2763 6 105 106 1944 1970 1971 2763 2 105 1970 2 105 1970 2 105 1970 2 105 1970 2 105 1970 2 105 1970 6 106 107 1945 1971 1972 2763 6 106 107 1945 1971 1972 2763 6 106 107 1945 1971 1972 2763 6 106 107 1945 1971 1972 2763 6 106 107 1945 1971 1972 2763 6 106 107 1945 1971 1972 2763 3 106 1971 2763 3 106 1971 2763 3 106 1971 2763 3 106 1971 2763 3 106 1971 2763 3 106 1971 2763 4 107 108 1972 1973 4 107 108 1972 1973 4 107 108 1972 1973 4 107 108 1972 1973 4 107 108 1972 1973 4 107 108 1972 1973 2 107 1972 2 107 1972 2 107 1972 2 107 1972 2 107 1972 2 107 1972 6 108 109 1946 1973 1974 2764 6 108 109 1946 1973 1974 2764 6 108 109 1946 1973 1974 2764 6 108 109 1946 1973 1974 2764 6 108 109 1946 1973 1974 2764 6 108 109 1946 1973 1974 2764 2 108 1973 2 108 1973 2 108 1973 2 108 1973 2 108 1973 2 108 1973 6 109 110 1947 1974 1975 2764 6 109 110 1947 1974 1975 2764 6 109 110 1947 1974 1975 2764 6 109 110 1947 1974 1975 2764 6 109 110 1947 1974 1975 2764 6 109 110 1947 1974 1975 2764 3 109 1974 2764 3 109 1974 2764 3 109 1974 2764 3 109 1974 2764 3 109 1974 2764 3 109 1974 2764 4 110 111 1975 1976 4 110 111 1975 1976 4 110 111 1975 1976 4 110 111 1975 1976 4 110 111 1975 1976 4 110 111 1975 1976 2 110 1975 2 110 1975 2 110 1975 2 110 1975 2 110 1975 2 110 1975 6 111 112 1948 1976 1977 2765 6 111 112 1948 1976 1977 2765 6 111 112 1948 1976 1977 2765 6 111 112 1948 1976 1977 2765 6 111 112 1948 1976 1977 2765 6 111 112 1948 1976 1977 2765 2 111 1976 2 111 1976 2 111 1976 2 111 1976 2 111 1976 2 111 1976 6 112 113 1949 1977 1978 2765 6 112 113 1949 1977 1978 2765 6 112 113 1949 1977 1978 2765 6 112 113 1949 1977 1978 2765 6 112 113 1949 1977 1978 2765 6 112 113 1949 1977 1978 2765 3 112 1977 2765 3 112 1977 2765 3 112 1977 2765 3 112 1977 2765 3 112 1977 2765 3 112 1977 2765 4 113 114 1978 1979 4 113 114 1978 1979 4 113 114 1978 1979 4 113 114 1978 1979 4 113 114 1978 1979 4 113 114 1978 1979 2 113 1978 2 113 1978 2 113 1978 2 113 1978 2 113 1978 2 113 1978 6 114 115 1950 1979 1980 2766 6 114 115 1950 1979 1980 2766 6 114 115 1950 1979 1980 2766 6 114 115 1950 1979 1980 2766 6 114 115 1950 1979 1980 2766 6 114 115 1950 1979 1980 2766 2 114 1979 2 114 1979 2 114 1979 2 114 1979 2 114 1979 2 114 1979 6 115 116 1951 1980 1981 2766 6 115 116 1951 1980 1981 2766 6 115 116 1951 1980 1981 2766 6 115 116 1951 1980 1981 2766 6 115 116 1951 1980 1981 2766 6 115 116 1951 1980 1981 2766 3 115 1980 2766 3 115 1980 2766 3 115 1980 2766 3 115 1980 2766 3 115 1980 2766 3 115 1980 2766 4 116 117 1981 1982 4 116 117 1981 1982 4 116 117 1981 1982 4 116 117 1981 1982 4 116 117 1981 1982 4 116 117 1981 1982 2 116 1981 2 116 1981 2 116 1981 2 116 1981 2 116 1981 2 116 1981 6 117 118 1952 1982 1983 2767 6 117 118 1952 1982 1983 2767 6 117 118 1952 1982 1983 2767 6 117 118 1952 1982 1983 2767 6 117 118 1952 1982 1983 2767 6 117 118 1952 1982 1983 2767 2 117 1982 2 117 1982 2 117 1982 2 117 1982 2 117 1982 2 117 1982 6 118 119 1953 1983 1984 2767 6 118 119 1953 1983 1984 2767 6 118 119 1953 1983 1984 2767 6 118 119 1953 1983 1984 2767 6 118 119 1953 1983 1984 2767 6 118 119 1953 1983 1984 2767 3 118 1983 2767 3 118 1983 2767 3 118 1983 2767 3 118 1983 2767 3 118 1983 2767 3 118 1983 2767 4 119 120 1984 1985 4 119 120 1984 1985 4 119 120 1984 1985 4 119 120 1984 1985 4 119 120 1984 1985 4 119 120 1984 1985 2 119 1984 2 119 1984 2 119 1984 2 119 1984 2 119 1984 2 119 1984 6 120 121 1954 1985 1986 2768 6 120 121 1954 1985 1986 2768 6 120 121 1954 1985 1986 2768 6 120 121 1954 1985 1986 2768 6 120 121 1954 1985 1986 2768 6 120 121 1954 1985 1986 2768 2 120 1985 2 120 1985 2 120 1985 2 120 1985 2 120 1985 2 120 1985 6 121 122 1955 1986 1987 2768 6 121 122 1955 1986 1987 2768 6 121 122 1955 1986 1987 2768 6 121 122 1955 1986 1987 2768 6 121 122 1955 1986 1987 2768 6 121 122 1955 1986 1987 2768 3 121 1986 2768 3 121 1986 2768 3 121 1986 2768 3 121 1986 2768 3 121 1986 2768 3 121 1986 2768 4 122 123 1987 1988 4 122 123 1987 1988 4 122 123 1987 1988 4 122 123 1987 1988 4 122 123 1987 1988 4 122 123 1987 1988 2 122 1987 2 122 1987 2 122 1987 2 122 1987 2 122 1987 2 122 1987 6 123 124 1956 1988 1989 2769 6 123 124 1956 1988 1989 2769 6 123 124 1956 1988 1989 2769 6 123 124 1956 1988 1989 2769 6 123 124 1956 1988 1989 2769 6 123 124 1956 1988 1989 2769 2 123 1988 2 123 1988 2 123 1988 2 123 1988 2 123 1988 2 123 1988 6 124 125 1957 1989 1990 2769 6 124 125 1957 1989 1990 2769 6 124 125 1957 1989 1990 2769 6 124 125 1957 1989 1990 2769 6 124 125 1957 1989 1990 2769 6 124 125 1957 1989 1990 2769 3 124 1989 2769 3 124 1989 2769 3 124 1989 2769 3 124 1989 2769 3 124 1989 2769 3 124 1989 2769 4 125 126 1990 1991 4 125 126 1990 1991 4 125 126 1990 1991 4 125 126 1990 1991 4 125 126 1990 1991 4 125 126 1990 1991 2 125 1990 2 125 1990 2 125 1990 2 125 1990 2 125 1990 2 125 1990 6 126 127 1958 1991 1992 2770 6 126 127 1958 1991 1992 2770 6 126 127 1958 1991 1992 2770 6 126 127 1958 1991 1992 2770 6 126 127 1958 1991 1992 2770 6 126 127 1958 1991 1992 2770 2 126 1991 2 126 1991 2 126 1991 2 126 1991 2 126 1991 2 126 1991 6 127 128 1959 1992 1993 2770 6 127 128 1959 1992 1993 2770 6 127 128 1959 1992 1993 2770 6 127 128 1959 1992 1993 2770 6 127 128 1959 1992 1993 2770 6 127 128 1959 1992 1993 2770 3 127 1992 2770 3 127 1992 2770 3 127 1992 2770 3 127 1992 2770 3 127 1992 2770 3 127 1992 2770 4 128 129 1993 1994 4 128 129 1993 1994 4 128 129 1993 1994 4 128 129 1993 1994 4 128 129 1993 1994 4 128 129 1993 1994 2 128 1993 2 128 1993 2 128 1993 2 128 1993 2 128 1993 2 128 1993 6 129 130 1960 1994 1995 2771 6 129 130 1960 1994 1995 2771 6 129 130 1960 1994 1995 2771 6 129 130 1960 1994 1995 2771 6 129 130 1960 1994 1995 2771 6 129 130 1960 1994 1995 2771 2 129 1994 2 129 1994 2 129 1994 2 129 1994 2 129 1994 2 129 1994 6 130 131 1961 1995 1996 2771 6 130 131 1961 1995 1996 2771 6 130 131 1961 1995 1996 2771 6 130 131 1961 1995 1996 2771 6 130 131 1961 1995 1996 2771 6 130 131 1961 1995 1996 2771 3 130 1995 2771 3 130 1995 2771 3 130 1995 2771 3 130 1995 2771 3 130 1995 2771 3 130 1995 2771 4 131 132 1996 1997 4 131 132 1996 1997 4 131 132 1996 1997 4 131 132 1996 1997 4 131 132 1996 1997 4 131 132 1996 1997 2 131 1996 2 131 1996 2 131 1996 2 131 1996 2 131 1996 2 131 1996 6 132 133 1962 1997 1998 2772 6 132 133 1962 1997 1998 2772 6 132 133 1962 1997 1998 2772 6 132 133 1962 1997 1998 2772 6 132 133 1962 1997 1998 2772 6 132 133 1962 1997 1998 2772 2 132 1997 2 132 1997 2 132 1997 2 132 1997 2 132 1997 2 132 1997 6 133 134 1963 1998 1999 2772 6 133 134 1963 1998 1999 2772 6 133 134 1963 1998 1999 2772 6 133 134 1963 1998 1999 2772 6 133 134 1963 1998 1999 2772 6 133 134 1963 1998 1999 2772 3 133 1998 2772 3 133 1998 2772 3 133 1998 2772 3 133 1998 2772 3 133 1998 2772 3 133 1998 2772 4 134 135 1999 2000 4 134 135 1999 2000 4 134 135 1999 2000 4 134 135 1999 2000 4 134 135 1999 2000 4 134 135 1999 2000 2 134 1999 2 134 1999 2 134 1999 2 134 1999 2 134 1999 2 134 1999 6 135 136 1964 2000 2001 2773 6 135 136 1964 2000 2001 2773 6 135 136 1964 2000 2001 2773 6 135 136 1964 2000 2001 2773 6 135 136 1964 2000 2001 2773 6 135 136 1964 2000 2001 2773 2 135 2000 2 135 2000 2 135 2000 2 135 2000 2 135 2000 2 135 2000 5 136 137 2001 2002 2773 5 136 137 2001 2002 2773 5 136 137 2001 2002 2773 5 136 137 2001 2002 2773 5 136 137 2001 2002 2773 5 136 137 2001 2002 2773 3 136 2001 2773 3 136 2001 2773 3 136 2001 2773 3 136 2001 2773 3 136 2001 2773 3 136 2001 2773 4 137 138 2002 2003 4 137 138 2002 2003 4 137 138 2002 2003 4 137 138 2002 2003 4 137 138 2002 2003 4 137 138 2002 2003 2 137 2002 2 137 2002 2 137 2002 2 137 2002 2 137 2002 2 137 2002 4 138 139 2003 2004 4 138 139 2003 2004 4 138 139 2003 2004 4 138 139 2003 2004 4 138 139 2003 2004 4 138 139 2003 2004 2 138 2003 2 138 2003 2 138 2003 2 138 2003 2 138 2003 2 138 2003 4 139 140 2004 2005 4 139 140 2004 2005 4 139 140 2004 2005 4 139 140 2004 2005 4 139 140 2004 2005 4 139 140 2004 2005 2 139 2004 2 139 2004 2 139 2004 2 139 2004 2 139 2004 2 139 2004 4 140 141 2005 2006 4 140 141 2005 2006 4 140 141 2005 2006 4 140 141 2005 2006 4 140 141 2005 2006 4 140 141 2005 2006 2 140 2005 2 140 2005 2 140 2005 2 140 2005 2 140 2005 2 140 2005 5 141 142 2006 2007 2774 5 141 142 2006 2007 2774 5 141 142 2006 2007 2774 5 141 142 2006 2007 2774 5 141 142 2006 2007 2774 5 141 142 2006 2007 2774 2 141 2006 2 141 2006 2 141 2006 2 141 2006 2 141 2006 2 141 2006 6 142 143 1965 2007 2008 2774 6 142 143 1965 2007 2008 2774 6 142 143 1965 2007 2008 2774 6 142 143 1965 2007 2008 2774 6 142 143 1965 2007 2008 2774 6 142 143 1965 2007 2008 2774 3 142 2007 2774 3 142 2007 2774 3 142 2007 2774 3 142 2007 2774 3 142 2007 2774 3 142 2007 2774 4 143 144 2008 3125 4 143 144 2008 3125 4 143 144 2008 3125 4 143 144 2008 3125 4 143 144 2008 3125 4 143 144 2008 3125 2 143 2008 2 143 2008 2 143 2008 2 143 2008 2 143 2008 2 143 2008 6 144 145 3121 3125 3126 3212 6 144 145 3121 3125 3126 3212 6 144 145 3121 3125 3126 3212 6 144 145 3121 3125 3126 3212 6 144 145 3121 3125 3126 3212 6 144 145 3121 3125 3126 3212 2 144 3125 2 144 3125 2 144 3125 2 144 3125 2 144 3125 2 144 3125 6 145 146 3122 3126 3127 3212 6 145 146 3122 3126 3127 3212 6 145 146 3122 3126 3127 3212 6 145 146 3122 3126 3127 3212 6 145 146 3122 3126 3127 3212 6 145 146 3122 3126 3127 3212 3 145 3126 3212 3 145 3126 3212 3 145 3126 3212 3 145 3126 3212 3 145 3126 3212 3 145 3126 3212 4 146 147 3127 3128 4 146 147 3127 3128 4 146 147 3127 3128 4 146 147 3127 3128 4 146 147 3127 3128 4 146 147 3127 3128 2 146 3127 2 146 3127 2 146 3127 2 146 3127 2 146 3127 2 146 3127 6 147 148 3123 3128 3129 3213 6 147 148 3123 3128 3129 3213 6 147 148 3123 3128 3129 3213 6 147 148 3123 3128 3129 3213 6 147 148 3123 3128 3129 3213 6 147 148 3123 3128 3129 3213 2 147 3128 2 147 3128 2 147 3128 2 147 3128 2 147 3128 2 147 3128 4 148 3124 3129 3213 4 148 3124 3129 3213 4 148 3124 3129 3213 4 148 3124 3129 3213 4 148 3124 3129 3213 4 148 3124 3129 3213 3 148 3129 3213 3 148 3129 3213 3 148 3129 3213 3 148 3129 3213 3 148 3129 3213 3 148 3129 3213 7 149 150 3253 3257 3258 3371 3375 7 149 150 3253 3257 3258 3371 3375 7 149 150 3253 3257 3258 3371 3375 7 149 150 3253 3257 3258 3371 3375 7 149 150 3253 3257 3258 3371 3375 7 149 150 3253 3257 3258 3371 3375 3 149 3257 3371 3 149 3257 3371 3 149 3257 3371 3 149 3257 3371 3 149 3257 3371 3 149 3257 3371 4 149 3252 3257 3371 4 149 3252 3257 3371 4 149 3252 3257 3371 4 149 3252 3257 3371 4 149 3252 3257 3371 4 149 3252 3257 3371 7 150 152 3254 3258 3259 3374 3375 7 150 152 3254 3258 3259 3374 3375 7 150 152 3254 3258 3259 3374 3375 7 150 152 3254 3258 3259 3374 3375 7 150 152 3254 3258 3259 3374 3375 7 150 152 3254 3258 3259 3374 3375 3 150 3258 3375 3 150 3258 3375 3 150 3258 3375 3 150 3258 3375 3 150 3258 3375 3 150 3258 3375 4 151 3256 3260 3373 4 151 3256 3260 3373 4 151 3256 3260 3373 4 151 3256 3260 3373 4 151 3256 3260 3373 4 151 3256 3260 3373 3 151 3260 3373 3 151 3260 3373 3 151 3260 3373 3 151 3260 3373 3 151 3260 3373 3 151 3260 3373 7 151 152 3255 3259 3260 3373 3374 7 151 152 3255 3259 3260 3373 3374 7 151 152 3255 3259 3260 3373 3374 7 151 152 3255 3259 3260 3373 3374 7 151 152 3255 3259 3260 3373 3374 7 151 152 3255 3259 3260 3373 3374 3 152 3259 3374 3 152 3259 3374 3 152 3259 3374 3 152 3259 3374 3 152 3259 3374 3 152 3259 3374 2 153 155 2 153 155 2 153 155 2 153 155 2 153 155 2 153 155 1 153 1 153 1 153 1 153 1 153 1 153 3 153 154 158 3 153 154 158 3 153 154 158 3 153 154 158 3 153 154 158 3 153 154 158 1 154 1 154 1 154 1 154 1 154 1 154 6 154 408 444 462 3181 3217 6 154 408 444 462 3181 3217 6 154 408 444 462 3181 3217 6 154 408 444 462 3181 3217 6 154 408 444 462 3181 3217 6 154 408 444 462 3181 3217 1 155 1 155 1 155 1 155 1 155 1 155 12 155 156 395 397 422 440 468 470 3185 3203 3228 3230 12 155 156 395 397 422 440 468 470 3185 3203 3228 3230 12 155 156 395 397 422 440 468 470 3185 3203 3228 3230 12 155 156 395 397 422 440 468 470 3185 3203 3228 3230 12 155 156 395 397 422 440 468 470 3185 3203 3228 3230 12 155 156 395 397 422 440 468 470 3185 3203 3228 3230 1 156 1 156 1 156 1 156 1 156 1 156 10 156 157 383 440 442 470 472 3183 3185 3242 10 156 157 383 440 442 470 472 3183 3185 3242 10 156 157 383 440 442 470 472 3183 3185 3242 10 156 157 383 440 442 470 472 3183 3185 3242 10 156 157 383 440 442 470 472 3183 3185 3242 10 156 157 383 440 442 470 472 3183 3185 3242 1 157 1 157 1 157 1 157 1 157 1 157 6 157 374 442 472 3183 3251 6 157 374 442 472 3183 3251 6 157 374 442 472 3183 3251 6 157 374 442 472 3183 3251 6 157 374 442 472 3183 3251 6 157 374 442 472 3183 3251 1 158 1 158 1 158 1 158 1 158 1 158 11 158 159 401 422 423 468 474 3163 3202 3203 3224 11 158 159 401 422 423 468 474 3163 3202 3203 3224 11 158 159 401 422 423 468 474 3163 3202 3203 3224 11 158 159 401 422 423 468 474 3163 3202 3203 3224 11 158 159 401 422 423 468 474 3163 3202 3203 3224 11 158 159 401 422 423 468 474 3163 3202 3203 3224 1 159 1 159 1 159 1 159 1 159 1 159 12 159 160 394 397 468 470 474 475 3162 3163 3228 3231 12 159 160 394 397 468 470 474 475 3162 3163 3228 3231 12 159 160 394 397 468 470 474 475 3162 3163 3228 3231 12 159 160 394 397 468 470 474 475 3162 3163 3228 3231 12 159 160 394 397 468 470 474 475 3162 3163 3228 3231 12 159 160 394 397 468 470 474 475 3162 3163 3228 3231 1 160 1 160 1 160 1 160 1 160 1 160 12 160 161 383 385 470 472 475 478 3159 3162 3240 3242 12 160 161 383 385 470 472 475 478 3159 3162 3240 3242 12 160 161 383 385 470 472 475 478 3159 3162 3240 3242 12 160 161 383 385 470 472 475 478 3159 3162 3240 3242 12 160 161 383 385 470 472 475 478 3159 3162 3240 3242 12 160 161 383 385 470 472 475 478 3159 3162 3240 3242 1 161 1 161 1 161 1 161 1 161 1 161 10 161 374 376 472 478 513 3124 3159 3249 3251 10 161 374 376 472 478 513 3124 3159 3249 3251 10 161 374 376 472 478 513 3124 3159 3249 3251 10 161 374 376 472 478 513 3124 3159 3249 3251 10 161 374 376 472 478 513 3124 3159 3249 3251 10 161 374 376 472 478 513 3124 3159 3249 3251 7 162 306 316 369 3256 3309 3431 7 162 306 316 369 3256 3309 3431 7 162 306 316 369 3256 3309 3431 7 162 306 316 369 3256 3309 3431 7 162 306 316 369 3256 3309 3431 7 162 306 316 369 3256 3309 3431 3 162 306 3431 3 162 306 3431 3 162 306 3431 3 162 306 3431 3 162 306 3431 3 162 306 3431 9 162 164 306 326 370 3255 3299 3429 3431 9 162 164 306 326 370 3255 3299 3429 3431 9 162 164 306 326 370 3255 3299 3429 3431 9 162 164 306 326 370 3255 3299 3429 3431 9 162 164 306 326 370 3255 3299 3429 3431 9 162 164 306 326 370 3255 3299 3429 3431 4 162 164 326 370 4 162 164 326 370 4 162 164 326 370 4 162 164 326 370 4 162 164 326 370 4 162 164 326 370 11 162 163 164 165 272 273 326 327 365 366 370 11 162 163 164 165 272 273 326 327 365 366 370 11 162 163 164 165 272 273 326 327 365 366 370 11 162 163 164 165 272 273 326 327 365 366 370 11 162 163 164 165 272 273 326 327 365 366 370 11 162 163 164 165 272 273 326 327 365 366 370 7 162 163 272 316 317 365 369 7 162 163 272 316 317 365 369 7 162 163 272 316 317 365 369 7 162 163 272 316 317 365 369 7 162 163 272 316 317 365 369 7 162 163 272 316 317 365 369 4 162 163 272 365 4 162 163 272 365 4 162 163 272 365 4 162 163 272 365 4 162 163 272 365 4 162 163 272 365 3 162 316 369 3 162 316 369 3 162 316 369 3 162 316 369 3 162 316 369 3 162 316 369 3 163 165 327 3 163 165 327 3 163 165 327 3 163 165 327 3 163 165 327 3 163 165 327 5 163 165 253 254 327 5 163 165 253 254 327 5 163 165 253 254 327 5 163 165 253 254 327 5 163 165 253 254 327 5 163 165 253 254 327 4 163 253 317 1097 4 163 253 317 1097 4 163 253 317 1097 4 163 253 317 1097 4 163 253 317 1097 4 163 253 317 1097 2 163 253 2 163 253 2 163 253 2 163 253 2 163 253 2 163 253 2 163 317 2 163 317 2 163 317 2 163 317 2 163 317 2 163 317 2 164 3429 2 164 3429 2 164 3429 2 164 3429 2 164 3429 2 164 3429 9 164 166 307 336 371 3254 3289 3427 3429 9 164 166 307 336 371 3254 3289 3427 3429 9 164 166 307 336 371 3254 3289 3427 3429 9 164 166 307 336 371 3254 3289 3427 3429 9 164 166 307 336 371 3254 3289 3427 3429 9 164 166 307 336 371 3254 3289 3427 3429 4 164 166 336 371 4 164 166 336 371 4 164 166 336 371 4 164 166 336 371 4 164 166 336 371 4 164 166 336 371 11 164 165 166 167 273 274 336 337 366 367 371 11 164 165 166 167 273 274 336 337 366 367 371 11 164 165 166 167 273 274 336 337 366 367 371 11 164 165 166 167 273 274 336 337 366 367 371 11 164 165 166 167 273 274 336 337 366 367 371 11 164 165 166 167 273 274 336 337 366 367 371 4 164 165 273 366 4 164 165 273 366 4 164 165 273 366 4 164 165 273 366 4 164 165 273 366 4 164 165 273 366 3 165 167 337 3 165 167 337 3 165 167 337 3 165 167 337 3 165 167 337 3 165 167 337 5 165 167 254 255 337 5 165 167 254 255 337 5 165 167 254 255 337 5 165 167 254 255 337 5 165 167 254 255 337 5 165 167 254 255 337 2 165 254 2 165 254 2 165 254 2 165 254 2 165 254 2 165 254 3 166 307 3427 3 166 307 3427 3 166 307 3427 3 166 307 3427 3 166 307 3427 3 166 307 3427 9 166 168 307 346 372 3253 3279 3425 3427 9 166 168 307 346 372 3253 3279 3425 3427 9 166 168 307 346 372 3253 3279 3425 3427 9 166 168 307 346 372 3253 3279 3425 3427 9 166 168 307 346 372 3253 3279 3425 3427 9 166 168 307 346 372 3253 3279 3425 3427 4 166 168 346 372 4 166 168 346 372 4 166 168 346 372 4 166 168 346 372 4 166 168 346 372 4 166 168 346 372 11 166 167 168 169 274 275 346 347 367 368 372 11 166 167 168 169 274 275 346 347 367 368 372 11 166 167 168 169 274 275 346 347 367 368 372 11 166 167 168 169 274 275 346 347 367 368 372 11 166 167 168 169 274 275 346 347 367 368 372 11 166 167 168 169 274 275 346 347 367 368 372 4 166 167 274 367 4 166 167 274 367 4 166 167 274 367 4 166 167 274 367 4 166 167 274 367 4 166 167 274 367 3 167 169 347 3 167 169 347 3 167 169 347 3 167 169 347 3 167 169 347 3 167 169 347 5 167 169 255 256 347 5 167 169 255 256 347 5 167 169 255 256 347 5 167 169 255 256 347 5 167 169 255 256 347 5 167 169 255 256 347 2 167 255 2 167 255 2 167 255 2 167 255 2 167 255 2 167 255 2 168 3425 2 168 3425 2 168 3425 2 168 3425 2 168 3425 2 168 3425 8 168 170 356 373 3252 3269 3423 3425 8 168 170 356 373 3252 3269 3423 3425 8 168 170 356 373 3252 3269 3423 3425 8 168 170 356 373 3252 3269 3423 3425 8 168 170 356 373 3252 3269 3423 3425 8 168 170 356 373 3252 3269 3423 3425 4 168 170 356 373 4 168 170 356 373 4 168 170 356 373 4 168 170 356 373 4 168 170 356 373 4 168 170 356 373 8 168 169 170 171 356 357 368 373 8 168 169 170 171 356 357 368 373 8 168 169 170 171 356 357 368 373 8 168 169 170 171 356 357 368 373 8 168 169 170 171 356 357 368 373 8 168 169 170 171 356 357 368 373 3 168 169 368 3 168 169 368 3 168 169 368 3 168 169 368 3 168 169 368 3 168 169 368 3 169 171 357 3 169 171 357 3 169 171 357 3 169 171 357 3 169 171 357 3 169 171 357 6 169 171 256 257 275 357 6 169 171 256 257 275 357 6 169 171 256 257 275 357 6 169 171 256 257 275 357 6 169 171 256 257 275 357 6 169 171 256 257 275 357 2 169 256 2 169 256 2 169 256 2 169 256 2 169 256 2 169 256 2 170 3423 2 170 3423 2 170 3423 2 170 3423 2 170 3423 2 170 3423 6 170 172 363 3262 3421 3423 6 170 172 363 3262 3421 3423 6 170 172 363 3262 3421 3423 6 170 172 363 3262 3421 3423 6 170 172 363 3262 3421 3423 6 170 172 363 3262 3421 3423 3 170 172 363 3 170 172 363 3 170 172 363 3 170 172 363 3 170 172 363 3 170 172 363 6 170 171 172 173 363 364 6 170 171 172 173 363 364 6 170 171 172 173 363 364 6 170 171 172 173 363 364 6 170 171 172 173 363 364 6 170 171 172 173 363 364 2 170 171 2 170 171 2 170 171 2 170 171 2 170 171 2 170 171 3 171 173 364 3 171 173 364 3 171 173 364 3 171 173 364 3 171 173 364 3 171 173 364 5 171 173 257 258 364 5 171 173 257 258 364 5 171 173 257 258 364 5 171 173 257 258 364 5 171 173 257 258 364 5 171 173 257 258 364 2 171 257 2 171 257 2 171 257 2 171 257 2 171 257 2 171 257 2 172 3421 2 172 3421 2 172 3421 2 172 3421 2 172 3421 2 172 3421 4 172 259 3334 3421 4 172 259 3334 3421 4 172 259 3334 3421 4 172 259 3334 3421 4 172 259 3334 3421 4 172 259 3334 3421 2 172 259 2 172 259 2 172 259 2 172 259 2 172 259 2 172 259 4 172 173 258 259 4 172 173 258 259 4 172 173 258 259 4 172 173 258 259 4 172 173 258 259 4 172 173 258 259 2 172 173 2 172 173 2 172 173 2 172 173 2 172 173 2 172 173 2 173 258 2 173 258 2 173 258 2 173 258 2 173 258 2 173 258 10 174 300 306 314 316 1783 1941 3309 3311 3419 10 174 300 306 314 316 1783 1941 3309 3311 3419 10 174 300 306 314 316 1783 1941 3309 3311 3419 10 174 300 306 314 316 1783 1941 3309 3311 3419 10 174 300 306 314 316 1783 1941 3309 3311 3419 10 174 300 306 314 316 1783 1941 3309 3311 3419 4 174 300 306 3419 4 174 300 306 3419 4 174 300 306 3419 4 174 300 306 3419 4 174 300 306 3419 4 174 300 306 3419 11 174 176 300 301 306 324 326 3299 3301 3417 3419 11 174 176 300 301 306 324 326 3299 3301 3417 3419 11 174 176 300 301 306 324 326 3299 3301 3417 3419 11 174 176 300 301 306 324 326 3299 3301 3417 3419 11 174 176 300 301 306 324 326 3299 3301 3417 3419 11 174 176 300 301 306 324 326 3299 3301 3417 3419 4 174 176 324 326 4 174 176 324 326 4 174 176 324 326 4 174 176 324 326 4 174 176 324 326 4 174 176 324 326 12 174 175 176 177 268 269 272 273 324 325 326 327 12 174 175 176 177 268 269 272 273 324 325 326 327 12 174 175 176 177 268 269 272 273 324 325 326 327 12 174 175 176 177 268 269 272 273 324 325 326 327 12 174 175 176 177 268 269 272 273 324 325 326 327 12 174 175 176 177 268 269 272 273 324 325 326 327 12 174 175 268 272 314 315 316 317 574 1312 1758 1783 12 174 175 268 272 314 315 316 317 574 1312 1758 1783 12 174 175 268 272 314 315 316 317 574 1312 1758 1783 12 174 175 268 272 314 315 316 317 574 1312 1758 1783 12 174 175 268 272 314 315 316 317 574 1312 1758 1783 12 174 175 268 272 314 315 316 317 574 1312 1758 1783 4 174 175 268 272 4 174 175 268 272 4 174 175 268 272 4 174 175 268 272 4 174 175 268 272 4 174 175 268 272 4 174 314 316 1783 4 174 314 316 1783 4 174 314 316 1783 4 174 314 316 1783 4 174 314 316 1783 4 174 314 316 1783 4 175 177 325 327 4 175 177 325 327 4 175 177 325 327 4 175 177 325 327 4 175 177 325 327 4 175 177 325 327 8 175 177 247 248 253 254 325 327 8 175 177 247 248 253 254 325 327 8 175 177 247 248 253 254 325 327 8 175 177 247 248 253 254 325 327 8 175 177 247 248 253 254 325 327 8 175 177 247 248 253 254 325 327 8 175 247 253 315 317 574 1096 1097 8 175 247 253 315 317 574 1096 1097 8 175 247 253 315 317 574 1096 1097 8 175 247 253 315 317 574 1096 1097 8 175 247 253 315 317 574 1096 1097 8 175 247 253 315 317 574 1096 1097 3 175 247 253 3 175 247 253 3 175 247 253 3 175 247 253 3 175 247 253 3 175 247 253 4 175 315 317 574 4 175 315 317 574 4 175 315 317 574 4 175 315 317 574 4 175 315 317 574 4 175 315 317 574 3 176 301 3417 3 176 301 3417 3 176 301 3417 3 176 301 3417 3 176 301 3417 3 176 301 3417 11 176 178 301 302 307 334 336 3289 3291 3415 3417 11 176 178 301 302 307 334 336 3289 3291 3415 3417 11 176 178 301 302 307 334 336 3289 3291 3415 3417 11 176 178 301 302 307 334 336 3289 3291 3415 3417 11 176 178 301 302 307 334 336 3289 3291 3415 3417 11 176 178 301 302 307 334 336 3289 3291 3415 3417 4 176 178 334 336 4 176 178 334 336 4 176 178 334 336 4 176 178 334 336 4 176 178 334 336 4 176 178 334 336 12 176 177 178 179 269 270 273 274 334 335 336 337 12 176 177 178 179 269 270 273 274 334 335 336 337 12 176 177 178 179 269 270 273 274 334 335 336 337 12 176 177 178 179 269 270 273 274 334 335 336 337 12 176 177 178 179 269 270 273 274 334 335 336 337 12 176 177 178 179 269 270 273 274 334 335 336 337 4 176 177 269 273 4 176 177 269 273 4 176 177 269 273 4 176 177 269 273 4 176 177 269 273 4 176 177 269 273 4 177 179 335 337 4 177 179 335 337 4 177 179 335 337 4 177 179 335 337 4 177 179 335 337 4 177 179 335 337 8 177 179 248 249 254 255 335 337 8 177 179 248 249 254 255 335 337 8 177 179 248 249 254 255 335 337 8 177 179 248 249 254 255 335 337 8 177 179 248 249 254 255 335 337 8 177 179 248 249 254 255 335 337 3 177 248 254 3 177 248 254 3 177 248 254 3 177 248 254 3 177 248 254 3 177 248 254 4 178 302 307 3415 4 178 302 307 3415 4 178 302 307 3415 4 178 302 307 3415 4 178 302 307 3415 4 178 302 307 3415 11 178 180 302 303 307 344 346 3279 3281 3413 3415 11 178 180 302 303 307 344 346 3279 3281 3413 3415 11 178 180 302 303 307 344 346 3279 3281 3413 3415 11 178 180 302 303 307 344 346 3279 3281 3413 3415 11 178 180 302 303 307 344 346 3279 3281 3413 3415 11 178 180 302 303 307 344 346 3279 3281 3413 3415 4 178 180 344 346 4 178 180 344 346 4 178 180 344 346 4 178 180 344 346 4 178 180 344 346 4 178 180 344 346 12 178 179 180 181 270 271 274 275 344 345 346 347 12 178 179 180 181 270 271 274 275 344 345 346 347 12 178 179 180 181 270 271 274 275 344 345 346 347 12 178 179 180 181 270 271 274 275 344 345 346 347 12 178 179 180 181 270 271 274 275 344 345 346 347 12 178 179 180 181 270 271 274 275 344 345 346 347 4 178 179 270 274 4 178 179 270 274 4 178 179 270 274 4 178 179 270 274 4 178 179 270 274 4 178 179 270 274 4 179 181 345 347 4 179 181 345 347 4 179 181 345 347 4 179 181 345 347 4 179 181 345 347 4 179 181 345 347 8 179 181 249 250 255 256 345 347 8 179 181 249 250 255 256 345 347 8 179 181 249 250 255 256 345 347 8 179 181 249 250 255 256 345 347 8 179 181 249 250 255 256 345 347 8 179 181 249 250 255 256 345 347 3 179 249 255 3 179 249 255 3 179 249 255 3 179 249 255 3 179 249 255 3 179 249 255 3 180 303 3413 3 180 303 3413 3 180 303 3413 3 180 303 3413 3 180 303 3413 3 180 303 3413 10 180 185 303 304 354 356 3269 3271 3408 3413 10 180 185 303 304 354 356 3269 3271 3408 3413 10 180 185 303 304 354 356 3269 3271 3408 3413 10 180 185 303 304 354 356 3269 3271 3408 3413 10 180 185 303 304 354 356 3269 3271 3408 3413 10 180 185 303 304 354 356 3269 3271 3408 3413 4 180 185 354 356 4 180 185 354 356 4 180 185 354 356 4 180 185 354 356 4 180 185 354 356 4 180 185 354 356 8 180 181 184 185 354 355 356 357 8 180 181 184 185 354 355 356 357 8 180 181 184 185 354 355 356 357 8 180 181 184 185 354 355 356 357 8 180 181 184 185 354 355 356 357 8 180 181 184 185 354 355 356 357 2 180 181 2 180 181 2 180 181 2 180 181 2 180 181 2 180 181 4 181 184 355 357 4 181 184 355 357 4 181 184 355 357 4 181 184 355 357 4 181 184 355 357 4 181 184 355 357 10 181 184 250 251 256 257 271 275 355 357 10 181 184 250 251 256 257 271 275 355 357 10 181 184 250 251 256 257 271 275 355 357 10 181 184 250 251 256 257 271 275 355 357 10 181 184 250 251 256 257 271 275 355 357 10 181 184 250 251 256 257 271 275 355 357 3 181 250 256 3 181 250 256 3 181 250 256 3 181 250 256 3 181 250 256 3 181 250 256 8 182 294 300 312 314 3311 3313 3411 8 182 294 300 312 314 3311 3313 3411 8 182 294 300 312 314 3311 3313 3411 8 182 294 300 312 314 3311 3313 3411 8 182 294 300 312 314 3311 3313 3411 8 182 294 300 312 314 3311 3313 3411 4 182 294 300 3411 4 182 294 300 3411 4 182 294 300 3411 4 182 294 300 3411 4 182 294 300 3411 4 182 294 300 3411 12 182 187 294 295 300 301 322 324 3301 3303 3406 3411 12 182 187 294 295 300 301 322 324 3301 3303 3406 3411 12 182 187 294 295 300 301 322 324 3301 3303 3406 3411 12 182 187 294 295 300 301 322 324 3301 3303 3406 3411 12 182 187 294 295 300 301 322 324 3301 3303 3406 3411 12 182 187 294 295 300 301 322 324 3301 3303 3406 3411 4 182 187 322 324 4 182 187 322 324 4 182 187 322 324 4 182 187 322 324 4 182 187 322 324 4 182 187 322 324 12 182 186 187 188 264 265 268 269 322 323 324 325 12 182 186 187 188 264 265 268 269 322 323 324 325 12 182 186 187 188 264 265 268 269 322 323 324 325 12 182 186 187 188 264 265 268 269 322 323 324 325 12 182 186 187 188 264 265 268 269 322 323 324 325 12 182 186 187 188 264 265 268 269 322 323 324 325 11 182 186 264 268 312 313 314 315 632 1269 1312 11 182 186 264 268 312 313 314 315 632 1269 1312 11 182 186 264 268 312 313 314 315 632 1269 1312 11 182 186 264 268 312 313 314 315 632 1269 1312 11 182 186 264 268 312 313 314 315 632 1269 1312 11 182 186 264 268 312 313 314 315 632 1269 1312 4 182 186 264 268 4 182 186 264 268 4 182 186 264 268 4 182 186 264 268 4 182 186 264 268 4 182 186 264 268 3 182 312 314 3 182 312 314 3 182 312 314 3 182 312 314 3 182 312 314 3 182 312 314 10 183 185 304 305 362 363 3262 3263 3408 3410 10 183 185 304 305 362 363 3262 3263 3408 3410 10 183 185 304 305 362 363 3262 3263 3408 3410 10 183 185 304 305 362 363 3262 3263 3408 3410 10 183 185 304 305 362 363 3262 3263 3408 3410 10 183 185 304 305 362 363 3262 3263 3408 3410 4 183 185 362 363 4 183 185 362 363 4 183 185 362 363 4 183 185 362 363 4 183 185 362 363 4 183 185 362 363 10 183 184 185 251 252 257 258 362 363 364 10 183 184 185 251 252 257 258 362 363 364 10 183 184 185 251 252 257 258 362 363 364 10 183 184 185 251 252 257 258 362 363 364 10 183 184 185 251 252 257 258 362 363 364 10 183 184 185 251 252 257 258 362 363 364 3 183 252 258 3 183 252 258 3 183 252 258 3 183 252 258 3 183 252 258 3 183 252 258 9 183 252 258 259 305 3334 3335 3341 3410 9 183 252 258 259 305 3334 3335 3341 3410 9 183 252 258 259 305 3334 3335 3341 3410 9 183 252 258 259 305 3334 3335 3341 3410 3 183 305 3410 3 183 305 3410 3 183 305 3410 3 183 305 3410 3 183 305 3410 3 183 305 3410 3 184 251 257 3 184 251 257 3 184 251 257 3 184 251 257 3 184 251 257 3 184 251 257 2 184 185 2 184 185 2 184 185 2 184 185 2 184 185 2 184 185 3 185 304 3408 3 185 304 3408 3 185 304 3408 3 185 304 3408 3 185 304 3408 3 185 304 3408 4 186 188 323 325 4 186 188 323 325 4 186 188 323 325 4 186 188 323 325 4 186 188 323 325 4 186 188 323 325 8 186 188 241 242 247 248 323 325 8 186 188 241 242 247 248 323 325 8 186 188 241 242 247 248 323 325 8 186 188 241 242 247 248 323 325 8 186 188 241 242 247 248 323 325 8 186 188 241 242 247 248 323 325 8 186 241 247 313 315 632 1053 1096 8 186 241 247 313 315 632 1053 1096 8 186 241 247 313 315 632 1053 1096 8 186 241 247 313 315 632 1053 1096 8 186 241 247 313 315 632 1053 1096 8 186 241 247 313 315 632 1053 1096 3 186 241 247 3 186 241 247 3 186 241 247 3 186 241 247 3 186 241 247 3 186 241 247 4 186 313 315 632 4 186 313 315 632 4 186 313 315 632 4 186 313 315 632 4 186 313 315 632 4 186 313 315 632 4 187 295 301 3406 4 187 295 301 3406 4 187 295 301 3406 4 187 295 301 3406 4 187 295 301 3406 4 187 295 301 3406 12 187 189 295 296 301 302 332 334 3291 3293 3404 3406 12 187 189 295 296 301 302 332 334 3291 3293 3404 3406 12 187 189 295 296 301 302 332 334 3291 3293 3404 3406 12 187 189 295 296 301 302 332 334 3291 3293 3404 3406 12 187 189 295 296 301 302 332 334 3291 3293 3404 3406 12 187 189 295 296 301 302 332 334 3291 3293 3404 3406 4 187 189 332 334 4 187 189 332 334 4 187 189 332 334 4 187 189 332 334 4 187 189 332 334 4 187 189 332 334 12 187 188 189 190 265 266 269 270 332 333 334 335 12 187 188 189 190 265 266 269 270 332 333 334 335 12 187 188 189 190 265 266 269 270 332 333 334 335 12 187 188 189 190 265 266 269 270 332 333 334 335 12 187 188 189 190 265 266 269 270 332 333 334 335 12 187 188 189 190 265 266 269 270 332 333 334 335 4 187 188 265 269 4 187 188 265 269 4 187 188 265 269 4 187 188 265 269 4 187 188 265 269 4 187 188 265 269 4 188 190 333 335 4 188 190 333 335 4 188 190 333 335 4 188 190 333 335 4 188 190 333 335 4 188 190 333 335 8 188 190 242 243 248 249 333 335 8 188 190 242 243 248 249 333 335 8 188 190 242 243 248 249 333 335 8 188 190 242 243 248 249 333 335 8 188 190 242 243 248 249 333 335 8 188 190 242 243 248 249 333 335 3 188 242 248 3 188 242 248 3 188 242 248 3 188 242 248 3 188 242 248 3 188 242 248 4 189 296 302 3404 4 189 296 302 3404 4 189 296 302 3404 4 189 296 302 3404 4 189 296 302 3404 4 189 296 302 3404 12 189 191 296 297 302 303 342 344 3281 3283 3402 3404 12 189 191 296 297 302 303 342 344 3281 3283 3402 3404 12 189 191 296 297 302 303 342 344 3281 3283 3402 3404 12 189 191 296 297 302 303 342 344 3281 3283 3402 3404 12 189 191 296 297 302 303 342 344 3281 3283 3402 3404 12 189 191 296 297 302 303 342 344 3281 3283 3402 3404 4 189 191 342 344 4 189 191 342 344 4 189 191 342 344 4 189 191 342 344 4 189 191 342 344 4 189 191 342 344 12 189 190 191 192 266 267 270 271 342 343 344 345 12 189 190 191 192 266 267 270 271 342 343 344 345 12 189 190 191 192 266 267 270 271 342 343 344 345 12 189 190 191 192 266 267 270 271 342 343 344 345 12 189 190 191 192 266 267 270 271 342 343 344 345 12 189 190 191 192 266 267 270 271 342 343 344 345 4 189 190 266 270 4 189 190 266 270 4 189 190 266 270 4 189 190 266 270 4 189 190 266 270 4 189 190 266 270 4 190 192 343 345 4 190 192 343 345 4 190 192 343 345 4 190 192 343 345 4 190 192 343 345 4 190 192 343 345 8 190 192 243 244 249 250 343 345 8 190 192 243 244 249 250 343 345 8 190 192 243 244 249 250 343 345 8 190 192 243 244 249 250 343 345 8 190 192 243 244 249 250 343 345 8 190 192 243 244 249 250 343 345 3 190 243 249 3 190 243 249 3 190 243 249 3 190 243 249 3 190 243 249 3 190 243 249 4 191 297 303 3402 4 191 297 303 3402 4 191 297 303 3402 4 191 297 303 3402 4 191 297 303 3402 4 191 297 303 3402 12 191 196 297 298 303 304 352 354 3271 3273 3397 3402 12 191 196 297 298 303 304 352 354 3271 3273 3397 3402 12 191 196 297 298 303 304 352 354 3271 3273 3397 3402 12 191 196 297 298 303 304 352 354 3271 3273 3397 3402 12 191 196 297 298 303 304 352 354 3271 3273 3397 3402 12 191 196 297 298 303 304 352 354 3271 3273 3397 3402 4 191 196 352 354 4 191 196 352 354 4 191 196 352 354 4 191 196 352 354 4 191 196 352 354 4 191 196 352 354 8 191 192 195 196 352 353 354 355 8 191 192 195 196 352 353 354 355 8 191 192 195 196 352 353 354 355 8 191 192 195 196 352 353 354 355 8 191 192 195 196 352 353 354 355 8 191 192 195 196 352 353 354 355 2 191 192 2 191 192 2 191 192 2 191 192 2 191 192 2 191 192 4 192 195 353 355 4 192 195 353 355 4 192 195 353 355 4 192 195 353 355 4 192 195 353 355 4 192 195 353 355 10 192 195 244 245 250 251 267 271 353 355 10 192 195 244 245 250 251 267 271 353 355 10 192 195 244 245 250 251 267 271 353 355 10 192 195 244 245 250 251 267 271 353 355 10 192 195 244 245 250 251 267 271 353 355 10 192 195 244 245 250 251 267 271 353 355 3 192 244 250 3 192 244 250 3 192 244 250 3 192 244 250 3 192 244 250 3 192 244 250 8 193 288 294 310 312 3313 3315 3400 8 193 288 294 310 312 3313 3315 3400 8 193 288 294 310 312 3313 3315 3400 8 193 288 294 310 312 3313 3315 3400 8 193 288 294 310 312 3313 3315 3400 8 193 288 294 310 312 3313 3315 3400 4 193 288 294 3400 4 193 288 294 3400 4 193 288 294 3400 4 193 288 294 3400 4 193 288 294 3400 4 193 288 294 3400 12 193 198 288 289 294 295 320 322 3303 3305 3395 3400 12 193 198 288 289 294 295 320 322 3303 3305 3395 3400 12 193 198 288 289 294 295 320 322 3303 3305 3395 3400 12 193 198 288 289 294 295 320 322 3303 3305 3395 3400 12 193 198 288 289 294 295 320 322 3303 3305 3395 3400 12 193 198 288 289 294 295 320 322 3303 3305 3395 3400 4 193 198 320 322 4 193 198 320 322 4 193 198 320 322 4 193 198 320 322 4 193 198 320 322 4 193 198 320 322 12 193 197 198 199 260 261 264 265 320 321 322 323 12 193 197 198 199 260 261 264 265 320 321 322 323 12 193 197 198 199 260 261 264 265 320 321 322 323 12 193 197 198 199 260 261 264 265 320 321 322 323 12 193 197 198 199 260 261 264 265 320 321 322 323 12 193 197 198 199 260 261 264 265 320 321 322 323 11 193 197 260 264 310 311 312 313 681 1226 1269 11 193 197 260 264 310 311 312 313 681 1226 1269 11 193 197 260 264 310 311 312 313 681 1226 1269 11 193 197 260 264 310 311 312 313 681 1226 1269 11 193 197 260 264 310 311 312 313 681 1226 1269 11 193 197 260 264 310 311 312 313 681 1226 1269 4 193 197 260 264 4 193 197 260 264 4 193 197 260 264 4 193 197 260 264 4 193 197 260 264 4 193 197 260 264 3 193 310 312 3 193 310 312 3 193 310 312 3 193 310 312 3 193 310 312 3 193 310 312 9 194 195 196 245 246 251 252 361 362 9 194 195 196 245 246 251 252 361 362 9 194 195 196 245 246 251 252 361 362 9 194 195 196 245 246 251 252 361 362 9 194 195 196 245 246 251 252 361 362 9 194 195 196 245 246 251 252 361 362 4 194 196 361 362 4 194 196 361 362 4 194 196 361 362 4 194 196 361 362 4 194 196 361 362 4 194 196 361 362 12 194 196 298 299 304 305 361 362 3263 3264 3397 3399 12 194 196 298 299 304 305 361 362 3263 3264 3397 3399 12 194 196 298 299 304 305 361 362 3263 3264 3397 3399 12 194 196 298 299 304 305 361 362 3263 3264 3397 3399 12 194 196 298 299 304 305 361 362 3263 3264 3397 3399 12 194 196 298 299 304 305 361 362 3263 3264 3397 3399 3 194 246 252 3 194 246 252 3 194 246 252 3 194 246 252 3 194 246 252 3 194 246 252 8 194 246 252 299 305 3341 3347 3399 8 194 246 252 299 305 3341 3347 3399 8 194 246 252 299 305 3341 3347 3399 8 194 246 252 299 305 3341 3347 3399 8 194 246 252 299 305 3341 3347 3399 8 194 246 252 299 305 3341 3347 3399 4 194 299 305 3399 4 194 299 305 3399 4 194 299 305 3399 4 194 299 305 3399 4 194 299 305 3399 4 194 299 305 3399 3 195 245 251 3 195 245 251 3 195 245 251 3 195 245 251 3 195 245 251 3 195 245 251 2 195 196 2 195 196 2 195 196 2 195 196 2 195 196 2 195 196 4 196 298 304 3397 4 196 298 304 3397 4 196 298 304 3397 4 196 298 304 3397 4 196 298 304 3397 4 196 298 304 3397 4 197 199 321 323 4 197 199 321 323 4 197 199 321 323 4 197 199 321 323 4 197 199 321 323 4 197 199 321 323 8 197 199 235 236 241 242 321 323 8 197 199 235 236 241 242 321 323 8 197 199 235 236 241 242 321 323 8 197 199 235 236 241 242 321 323 8 197 199 235 236 241 242 321 323 8 197 199 235 236 241 242 321 323 8 197 235 241 311 313 681 1010 1053 8 197 235 241 311 313 681 1010 1053 8 197 235 241 311 313 681 1010 1053 8 197 235 241 311 313 681 1010 1053 8 197 235 241 311 313 681 1010 1053 8 197 235 241 311 313 681 1010 1053 3 197 235 241 3 197 235 241 3 197 235 241 3 197 235 241 3 197 235 241 3 197 235 241 4 197 311 313 681 4 197 311 313 681 4 197 311 313 681 4 197 311 313 681 4 197 311 313 681 4 197 311 313 681 4 198 289 295 3395 4 198 289 295 3395 4 198 289 295 3395 4 198 289 295 3395 4 198 289 295 3395 4 198 289 295 3395 12 198 200 289 290 295 296 330 332 3293 3295 3393 3395 12 198 200 289 290 295 296 330 332 3293 3295 3393 3395 12 198 200 289 290 295 296 330 332 3293 3295 3393 3395 12 198 200 289 290 295 296 330 332 3293 3295 3393 3395 12 198 200 289 290 295 296 330 332 3293 3295 3393 3395 12 198 200 289 290 295 296 330 332 3293 3295 3393 3395 4 198 200 330 332 4 198 200 330 332 4 198 200 330 332 4 198 200 330 332 4 198 200 330 332 4 198 200 330 332 12 198 199 200 201 261 262 265 266 330 331 332 333 12 198 199 200 201 261 262 265 266 330 331 332 333 12 198 199 200 201 261 262 265 266 330 331 332 333 12 198 199 200 201 261 262 265 266 330 331 332 333 12 198 199 200 201 261 262 265 266 330 331 332 333 12 198 199 200 201 261 262 265 266 330 331 332 333 4 198 199 261 265 4 198 199 261 265 4 198 199 261 265 4 198 199 261 265 4 198 199 261 265 4 198 199 261 265 4 199 201 331 333 4 199 201 331 333 4 199 201 331 333 4 199 201 331 333 4 199 201 331 333 4 199 201 331 333 8 199 201 236 237 242 243 331 333 8 199 201 236 237 242 243 331 333 8 199 201 236 237 242 243 331 333 8 199 201 236 237 242 243 331 333 8 199 201 236 237 242 243 331 333 8 199 201 236 237 242 243 331 333 3 199 236 242 3 199 236 242 3 199 236 242 3 199 236 242 3 199 236 242 3 199 236 242 4 200 290 296 3393 4 200 290 296 3393 4 200 290 296 3393 4 200 290 296 3393 4 200 290 296 3393 4 200 290 296 3393 12 200 205 290 291 296 297 340 342 3283 3285 3388 3393 12 200 205 290 291 296 297 340 342 3283 3285 3388 3393 12 200 205 290 291 296 297 340 342 3283 3285 3388 3393 12 200 205 290 291 296 297 340 342 3283 3285 3388 3393 12 200 205 290 291 296 297 340 342 3283 3285 3388 3393 12 200 205 290 291 296 297 340 342 3283 3285 3388 3393 4 200 205 340 342 4 200 205 340 342 4 200 205 340 342 4 200 205 340 342 4 200 205 340 342 4 200 205 340 342 12 200 201 204 205 262 263 266 267 340 341 342 343 12 200 201 204 205 262 263 266 267 340 341 342 343 12 200 201 204 205 262 263 266 267 340 341 342 343 12 200 201 204 205 262 263 266 267 340 341 342 343 12 200 201 204 205 262 263 266 267 340 341 342 343 12 200 201 204 205 262 263 266 267 340 341 342 343 4 200 201 262 266 4 200 201 262 266 4 200 201 262 266 4 200 201 262 266 4 200 201 262 266 4 200 201 262 266 4 201 204 341 343 4 201 204 341 343 4 201 204 341 343 4 201 204 341 343 4 201 204 341 343 4 201 204 341 343 8 201 204 237 238 243 244 341 343 8 201 204 237 238 243 244 341 343 8 201 204 237 238 243 244 341 343 8 201 204 237 238 243 244 341 343 8 201 204 237 238 243 244 341 343 8 201 204 237 238 243 244 341 343 3 201 237 243 3 201 237 243 3 201 237 243 3 201 237 243 3 201 237 243 3 201 237 243 8 202 282 288 309 310 3315 3316 3391 8 202 282 288 309 310 3315 3316 3391 8 202 282 288 309 310 3315 3316 3391 8 202 282 288 309 310 3315 3316 3391 8 202 282 288 309 310 3315 3316 3391 8 202 282 288 309 310 3315 3316 3391 4 202 282 288 3391 4 202 282 288 3391 4 202 282 288 3391 4 202 282 288 3391 4 202 282 288 3391 4 202 282 288 3391 12 202 206 282 283 288 289 319 320 3305 3306 3387 3391 12 202 206 282 283 288 289 319 320 3305 3306 3387 3391 12 202 206 282 283 288 289 319 320 3305 3306 3387 3391 12 202 206 282 283 288 289 319 320 3305 3306 3387 3391 12 202 206 282 283 288 289 319 320 3305 3306 3387 3391 12 202 206 282 283 288 289 319 320 3305 3306 3387 3391 4 202 206 319 320 4 202 206 319 320 4 202 206 319 320 4 202 206 319 320 4 202 206 319 320 4 202 206 319 320 11 202 206 229 230 235 236 260 261 319 320 321 11 202 206 229 230 235 236 260 261 319 320 321 11 202 206 229 230 235 236 260 261 319 320 321 11 202 206 229 230 235 236 260 261 319 320 321 11 202 206 229 230 235 236 260 261 319 320 321 11 202 206 229 230 235 236 260 261 319 320 321 12 202 229 235 260 309 310 311 881 967 1010 1183 1226 12 202 229 235 260 309 310 311 881 967 1010 1183 1226 12 202 229 235 260 309 310 311 881 967 1010 1183 1226 12 202 229 235 260 309 310 311 881 967 1010 1183 1226 12 202 229 235 260 309 310 311 881 967 1010 1183 1226 12 202 229 235 260 309 310 311 881 967 1010 1183 1226 4 202 229 235 260 4 202 229 235 260 4 202 229 235 260 4 202 229 235 260 4 202 229 235 260 4 202 229 235 260 3 202 309 310 3 202 309 310 3 202 309 310 3 202 309 310 3 202 309 310 3 202 309 310 22 203 204 205 263 267 291 292 297 298 350 351 352 353 3272 3273 3274 3275 3326 3330 3388 3389 3390 22 203 204 205 263 267 291 292 297 298 350 351 352 353 3272 3273 3274 3275 3326 3330 3388 3389 3390 22 203 204 205 263 267 291 292 297 298 350 351 352 353 3272 3273 3274 3275 3326 3330 3388 3389 3390 22 203 204 205 263 267 291 292 297 298 350 351 352 353 3272 3273 3274 3275 3326 3330 3388 3389 3390 22 203 204 205 263 267 291 292 297 298 350 351 352 353 3272 3273 3274 3275 3326 3330 3388 3389 3390 22 203 204 205 263 267 291 292 297 298 350 351 352 353 3272 3273 3274 3275 3326 3330 3388 3389 3390 4 203 204 351 353 4 203 204 351 353 4 203 204 351 353 4 203 204 351 353 4 203 204 351 353 4 203 204 351 353 8 203 204 238 239 244 245 351 353 8 203 204 238 239 244 245 351 353 8 203 204 238 239 244 245 351 353 8 203 204 238 239 244 245 351 353 8 203 204 238 239 244 245 351 353 8 203 204 238 239 244 245 351 353 3 203 239 245 3 203 239 245 3 203 239 245 3 203 239 245 3 203 239 245 3 203 239 245 18 203 239 240 245 246 292 293 298 299 360 361 3264 3265 3347 3348 3353 3354 3390 18 203 239 240 245 246 292 293 298 299 360 361 3264 3265 3347 3348 3353 3354 3390 18 203 239 240 245 246 292 293 298 299 360 361 3264 3265 3347 3348 3353 3354 3390 18 203 239 240 245 246 292 293 298 299 360 361 3264 3265 3347 3348 3353 3354 3390 18 203 239 240 245 246 292 293 298 299 360 361 3264 3265 3347 3348 3353 3354 3390 18 203 239 240 245 246 292 293 298 299 360 361 3264 3265 3347 3348 3353 3354 3390 4 203 292 298 3390 4 203 292 298 3390 4 203 292 298 3390 4 203 292 298 3390 4 203 292 298 3390 4 203 292 298 3390 3 204 238 244 3 204 238 244 3 204 238 244 3 204 238 244 3 204 238 244 3 204 238 244 4 204 205 263 267 4 204 205 263 267 4 204 205 263 267 4 204 205 263 267 4 204 205 263 267 4 204 205 263 267 4 205 291 297 3388 4 205 291 297 3388 4 205 291 297 3388 4 205 291 297 3388 4 205 291 297 3388 4 205 291 297 3388 4 206 283 289 3387 4 206 283 289 3387 4 206 283 289 3387 4 206 283 289 3387 4 206 283 289 3387 4 206 283 289 3387 12 206 207 283 284 289 290 329 330 3295 3296 3386 3387 12 206 207 283 284 289 290 329 330 3295 3296 3386 3387 12 206 207 283 284 289 290 329 330 3295 3296 3386 3387 12 206 207 283 284 289 290 329 330 3295 3296 3386 3387 12 206 207 283 284 289 290 329 330 3295 3296 3386 3387 12 206 207 283 284 289 290 329 330 3295 3296 3386 3387 4 206 207 329 330 4 206 207 329 330 4 206 207 329 330 4 206 207 329 330 4 206 207 329 330 4 206 207 329 330 11 206 207 230 231 236 237 261 262 329 330 331 11 206 207 230 231 236 237 261 262 329 330 331 11 206 207 230 231 236 237 261 262 329 330 331 11 206 207 230 231 236 237 261 262 329 330 331 11 206 207 230 231 236 237 261 262 329 330 331 11 206 207 230 231 236 237 261 262 329 330 331 4 206 230 236 261 4 206 230 236 261 4 206 230 236 261 4 206 230 236 261 4 206 230 236 261 4 206 230 236 261 4 207 284 290 3386 4 207 284 290 3386 4 207 284 290 3386 4 207 284 290 3386 4 207 284 290 3386 4 207 284 290 3386 12 207 208 284 285 290 291 339 340 3285 3286 3385 3386 12 207 208 284 285 290 291 339 340 3285 3286 3385 3386 12 207 208 284 285 290 291 339 340 3285 3286 3385 3386 12 207 208 284 285 290 291 339 340 3285 3286 3385 3386 12 207 208 284 285 290 291 339 340 3285 3286 3385 3386 12 207 208 284 285 290 291 339 340 3285 3286 3385 3386 4 207 208 339 340 4 207 208 339 340 4 207 208 339 340 4 207 208 339 340 4 207 208 339 340 4 207 208 339 340 11 207 208 231 232 237 238 262 263 339 340 341 11 207 208 231 232 237 238 262 263 339 340 341 11 207 208 231 232 237 238 262 263 339 340 341 11 207 208 231 232 237 238 262 263 339 340 341 11 207 208 231 232 237 238 262 263 339 340 341 11 207 208 231 232 237 238 262 263 339 340 341 4 207 231 237 262 4 207 231 237 262 4 207 231 237 262 4 207 231 237 262 4 207 231 237 262 4 207 231 237 262 4 208 285 291 3385 4 208 285 291 3385 4 208 285 291 3385 4 208 285 291 3385 4 208 285 291 3385 4 208 285 291 3385 12 208 209 285 286 291 292 349 350 3275 3276 3384 3385 12 208 209 285 286 291 292 349 350 3275 3276 3384 3385 12 208 209 285 286 291 292 349 350 3275 3276 3384 3385 12 208 209 285 286 291 292 349 350 3275 3276 3384 3385 12 208 209 285 286 291 292 349 350 3275 3276 3384 3385 12 208 209 285 286 291 292 349 350 3275 3276 3384 3385 4 208 209 349 350 4 208 209 349 350 4 208 209 349 350 4 208 209 349 350 4 208 209 349 350 4 208 209 349 350 10 208 209 232 233 238 239 263 349 350 351 10 208 209 232 233 238 239 263 349 350 351 10 208 209 232 233 238 239 263 349 350 351 10 208 209 232 233 238 239 263 349 350 351 10 208 209 232 233 238 239 263 349 350 351 10 208 209 232 233 238 239 263 349 350 351 4 208 232 238 263 4 208 232 238 263 4 208 232 238 263 4 208 232 238 263 4 208 232 238 263 4 208 232 238 263 4 209 286 292 3384 4 209 286 292 3384 4 209 286 292 3384 4 209 286 292 3384 4 209 286 292 3384 4 209 286 292 3384 12 209 210 286 287 292 293 359 360 3265 3266 3383 3384 12 209 210 286 287 292 293 359 360 3265 3266 3383 3384 12 209 210 286 287 292 293 359 360 3265 3266 3383 3384 12 209 210 286 287 292 293 359 360 3265 3266 3383 3384 12 209 210 286 287 292 293 359 360 3265 3266 3383 3384 12 209 210 286 287 292 293 359 360 3265 3266 3383 3384 4 209 210 359 360 4 209 210 359 360 4 209 210 359 360 4 209 210 359 360 4 209 210 359 360 4 209 210 359 360 8 209 210 233 234 239 240 359 360 8 209 210 233 234 239 240 359 360 8 209 210 233 234 239 240 359 360 8 209 210 233 234 239 240 359 360 8 209 210 233 234 239 240 359 360 8 209 210 233 234 239 240 359 360 3 209 233 239 3 209 233 239 3 209 233 239 3 209 233 239 3 209 233 239 3 209 233 239 3 210 234 240 3 210 234 240 3 210 234 240 3 210 234 240 3 210 234 240 3 210 234 240 8 210 234 240 287 293 3353 3359 3383 8 210 234 240 287 293 3353 3359 3383 8 210 234 240 287 293 3353 3359 3383 8 210 234 240 287 293 3353 3359 3383 8 210 234 240 287 293 3353 3359 3383 8 210 234 240 287 293 3353 3359 3383 4 210 287 293 3383 4 210 287 293 3383 4 210 287 293 3383 4 210 287 293 3383 4 210 287 293 3383 4 210 287 293 3383 11 211 276 282 308 309 879 1355 2758 3316 3317 3382 11 211 276 282 308 309 879 1355 2758 3316 3317 3382 11 211 276 282 308 309 879 1355 2758 3316 3317 3382 11 211 276 282 308 309 879 1355 2758 3316 3317 3382 11 211 276 282 308 309 879 1355 2758 3316 3317 3382 11 211 276 282 308 309 879 1355 2758 3316 3317 3382 4 211 276 282 3382 4 211 276 282 3382 4 211 276 282 3382 4 211 276 282 3382 4 211 276 282 3382 4 211 276 282 3382 12 211 212 276 277 282 283 318 319 3306 3307 3381 3382 12 211 212 276 277 282 283 318 319 3306 3307 3381 3382 12 211 212 276 277 282 283 318 319 3306 3307 3381 3382 12 211 212 276 277 282 283 318 319 3306 3307 3381 3382 12 211 212 276 277 282 283 318 319 3306 3307 3381 3382 12 211 212 276 277 282 283 318 319 3306 3307 3381 3382 4 211 212 318 319 4 211 212 318 319 4 211 212 318 319 4 211 212 318 319 4 211 212 318 319 4 211 212 318 319 8 211 212 223 224 229 230 318 319 8 211 212 223 224 229 230 318 319 8 211 212 223 224 229 230 318 319 8 211 212 223 224 229 230 318 319 8 211 212 223 224 229 230 318 319 8 211 212 223 224 229 230 318 319 11 211 223 229 308 309 879 880 924 967 1140 1183 11 211 223 229 308 309 879 880 924 967 1140 1183 11 211 223 229 308 309 879 880 924 967 1140 1183 11 211 223 229 308 309 879 880 924 967 1140 1183 11 211 223 229 308 309 879 880 924 967 1140 1183 11 211 223 229 308 309 879 880 924 967 1140 1183 3 211 223 229 3 211 223 229 3 211 223 229 3 211 223 229 3 211 223 229 3 211 223 229 4 211 308 309 879 4 211 308 309 879 4 211 308 309 879 4 211 308 309 879 4 211 308 309 879 4 211 308 309 879 4 212 277 283 3381 4 212 277 283 3381 4 212 277 283 3381 4 212 277 283 3381 4 212 277 283 3381 4 212 277 283 3381 12 212 213 277 278 283 284 328 329 3296 3297 3380 3381 12 212 213 277 278 283 284 328 329 3296 3297 3380 3381 12 212 213 277 278 283 284 328 329 3296 3297 3380 3381 12 212 213 277 278 283 284 328 329 3296 3297 3380 3381 12 212 213 277 278 283 284 328 329 3296 3297 3380 3381 12 212 213 277 278 283 284 328 329 3296 3297 3380 3381 4 212 213 328 329 4 212 213 328 329 4 212 213 328 329 4 212 213 328 329 4 212 213 328 329 4 212 213 328 329 8 212 213 224 225 230 231 328 329 8 212 213 224 225 230 231 328 329 8 212 213 224 225 230 231 328 329 8 212 213 224 225 230 231 328 329 8 212 213 224 225 230 231 328 329 8 212 213 224 225 230 231 328 329 3 212 224 230 3 212 224 230 3 212 224 230 3 212 224 230 3 212 224 230 3 212 224 230 4 213 278 284 3380 4 213 278 284 3380 4 213 278 284 3380 4 213 278 284 3380 4 213 278 284 3380 4 213 278 284 3380 12 213 214 278 279 284 285 338 339 3286 3287 3379 3380 12 213 214 278 279 284 285 338 339 3286 3287 3379 3380 12 213 214 278 279 284 285 338 339 3286 3287 3379 3380 12 213 214 278 279 284 285 338 339 3286 3287 3379 3380 12 213 214 278 279 284 285 338 339 3286 3287 3379 3380 12 213 214 278 279 284 285 338 339 3286 3287 3379 3380 4 213 214 338 339 4 213 214 338 339 4 213 214 338 339 4 213 214 338 339 4 213 214 338 339 4 213 214 338 339 8 213 214 225 226 231 232 338 339 8 213 214 225 226 231 232 338 339 8 213 214 225 226 231 232 338 339 8 213 214 225 226 231 232 338 339 8 213 214 225 226 231 232 338 339 8 213 214 225 226 231 232 338 339 3 213 225 231 3 213 225 231 3 213 225 231 3 213 225 231 3 213 225 231 3 213 225 231 4 214 279 285 3379 4 214 279 285 3379 4 214 279 285 3379 4 214 279 285 3379 4 214 279 285 3379 4 214 279 285 3379 12 214 215 279 280 285 286 348 349 3276 3277 3378 3379 12 214 215 279 280 285 286 348 349 3276 3277 3378 3379 12 214 215 279 280 285 286 348 349 3276 3277 3378 3379 12 214 215 279 280 285 286 348 349 3276 3277 3378 3379 12 214 215 279 280 285 286 348 349 3276 3277 3378 3379 12 214 215 279 280 285 286 348 349 3276 3277 3378 3379 4 214 215 348 349 4 214 215 348 349 4 214 215 348 349 4 214 215 348 349 4 214 215 348 349 4 214 215 348 349 8 214 215 226 227 232 233 348 349 8 214 215 226 227 232 233 348 349 8 214 215 226 227 232 233 348 349 8 214 215 226 227 232 233 348 349 8 214 215 226 227 232 233 348 349 8 214 215 226 227 232 233 348 349 3 214 226 232 3 214 226 232 3 214 226 232 3 214 226 232 3 214 226 232 3 214 226 232 4 215 280 286 3378 4 215 280 286 3378 4 215 280 286 3378 4 215 280 286 3378 4 215 280 286 3378 4 215 280 286 3378 12 215 216 280 281 286 287 358 359 3266 3267 3377 3378 12 215 216 280 281 286 287 358 359 3266 3267 3377 3378 12 215 216 280 281 286 287 358 359 3266 3267 3377 3378 12 215 216 280 281 286 287 358 359 3266 3267 3377 3378 12 215 216 280 281 286 287 358 359 3266 3267 3377 3378 12 215 216 280 281 286 287 358 359 3266 3267 3377 3378 4 215 216 358 359 4 215 216 358 359 4 215 216 358 359 4 215 216 358 359 4 215 216 358 359 4 215 216 358 359 8 215 216 227 228 233 234 358 359 8 215 216 227 228 233 234 358 359 8 215 216 227 228 233 234 358 359 8 215 216 227 228 233 234 358 359 8 215 216 227 228 233 234 358 359 8 215 216 227 228 233 234 358 359 3 215 227 233 3 215 227 233 3 215 227 233 3 215 227 233 3 215 227 233 3 215 227 233 3 216 228 234 3 216 228 234 3 216 228 234 3 216 228 234 3 216 228 234 3 216 228 234 8 216 228 234 281 287 3359 3365 3377 8 216 228 234 281 287 3359 3365 3377 8 216 228 234 281 287 3359 3365 3377 8 216 228 234 281 287 3359 3365 3377 8 216 228 234 281 287 3359 3365 3377 8 216 228 234 281 287 3359 3365 3377 4 216 281 287 3377 4 216 281 287 3377 4 216 281 287 3377 4 216 281 287 3377 4 216 281 287 3377 4 216 281 287 3377 8 217 276 308 862 1355 2775 3317 3376 8 217 276 308 862 1355 2775 3317 3376 8 217 276 308 862 1355 2775 3317 3376 8 217 276 308 862 1355 2775 3317 3376 8 217 276 308 862 1355 2775 3317 3376 8 217 276 308 862 1355 2775 3317 3376 3 217 276 3376 3 217 276 3376 3 217 276 3376 3 217 276 3376 3 217 276 3376 3 217 276 3376 8 217 221 276 277 318 3307 3372 3376 8 217 221 276 277 318 3307 3372 3376 8 217 221 276 277 318 3307 3372 3376 8 217 221 276 277 318 3307 3372 3376 8 217 221 276 277 318 3307 3372 3376 8 217 221 276 277 318 3307 3372 3376 3 217 221 318 3 217 221 318 3 217 221 318 3 217 221 318 3 217 221 318 3 217 221 318 5 217 221 223 224 318 5 217 221 223 224 318 5 217 221 223 224 318 5 217 221 223 224 318 5 217 221 223 224 318 5 217 221 223 224 318 6 217 223 308 862 924 1140 6 217 223 308 862 924 1140 6 217 223 308 862 924 1140 6 217 223 308 862 924 1140 6 217 223 308 862 924 1140 6 217 223 308 862 924 1140 2 217 223 2 217 223 2 217 223 2 217 223 2 217 223 2 217 223 3 217 308 862 3 217 308 862 3 217 308 862 3 217 308 862 3 217 308 862 3 217 308 862 6 218 219 371 3254 3374 3375 6 218 219 371 3254 3374 3375 6 218 219 371 3254 3374 3375 6 218 219 371 3254 3374 3375 6 218 219 371 3254 3374 3375 6 218 219 371 3254 3374 3375 2 218 3375 2 218 3375 2 218 3375 2 218 3375 2 218 3375 2 218 3375 6 218 222 372 3253 3371 3375 6 218 222 372 3253 3371 3375 6 218 222 372 3253 3371 3375 6 218 222 372 3253 3371 3375 6 218 222 372 3253 3371 3375 6 218 222 372 3253 3371 3375 3 218 222 372 3 218 222 372 3 218 222 372 3 218 222 372 3 218 222 372 3 218 222 372 3 218 219 371 3 218 219 371 3 218 219 371 3 218 219 371 3 218 219 371 3 218 219 371 6 219 220 370 3255 3373 3374 6 219 220 370 3255 3373 3374 6 219 220 370 3255 3373 3374 6 219 220 370 3255 3373 3374 6 219 220 370 3255 3373 3374 6 219 220 370 3255 3373 3374 2 219 3374 2 219 3374 2 219 3374 2 219 3374 2 219 3374 2 219 3374 3 219 220 370 3 219 220 370 3 219 220 370 3 219 220 370 3 219 220 370 3 219 220 370 4 220 369 3256 3373 4 220 369 3256 3373 4 220 369 3256 3373 4 220 369 3256 3373 4 220 369 3256 3373 4 220 369 3256 3373 2 220 3373 2 220 3373 2 220 3373 2 220 3373 2 220 3373 2 220 3373 2 220 369 2 220 369 2 220 369 2 220 369 2 220 369 2 220 369 2 221 224 2 221 224 2 221 224 2 221 224 2 221 224 2 221 224 10 221 224 225 277 278 328 3297 3368 3369 3372 10 221 224 225 277 278 328 3297 3368 3369 3372 10 221 224 225 277 278 328 3297 3368 3369 3372 10 221 224 225 277 278 328 3297 3368 3369 3372 10 221 224 225 277 278 328 3297 3368 3369 3372 10 221 224 225 277 278 328 3297 3368 3369 3372 3 221 277 3372 3 221 277 3372 3 221 277 3372 3 221 277 3372 3 221 277 3372 3 221 277 3372 2 222 3371 2 222 3371 2 222 3371 2 222 3371 2 222 3371 2 222 3371 4 222 373 3252 3371 4 222 373 3252 3371 4 222 373 3252 3371 4 222 373 3252 3371 4 222 373 3252 3371 4 222 373 3252 3371 2 222 373 2 222 373 2 222 373 2 222 373 2 222 373 2 222 373 3 223 224 318 3 223 224 318 3 223 224 318 3 223 224 318 3 223 224 318 3 223 224 318 4 223 308 924 1140 4 223 308 924 1140 4 223 308 924 1140 4 223 308 924 1140 4 223 308 924 1140 4 223 308 924 1140 3 224 225 328 3 224 225 328 3 224 225 328 3 224 225 328 3 224 225 328 3 224 225 328 3 225 278 3368 3 225 278 3368 3 225 278 3368 3 225 278 3368 3 225 278 3368 3 225 278 3368 8 225 226 278 279 338 3287 3367 3368 8 225 226 278 279 338 3287 3367 3368 8 225 226 278 279 338 3287 3367 3368 8 225 226 278 279 338 3287 3367 3368 8 225 226 278 279 338 3287 3367 3368 8 225 226 278 279 338 3287 3367 3368 3 225 226 338 3 225 226 338 3 225 226 338 3 225 226 338 3 225 226 338 3 225 226 338 3 226 279 3367 3 226 279 3367 3 226 279 3367 3 226 279 3367 3 226 279 3367 3 226 279 3367 8 226 227 279 280 348 3277 3366 3367 8 226 227 279 280 348 3277 3366 3367 8 226 227 279 280 348 3277 3366 3367 8 226 227 279 280 348 3277 3366 3367 8 226 227 279 280 348 3277 3366 3367 8 226 227 279 280 348 3277 3366 3367 3 226 227 348 3 226 227 348 3 226 227 348 3 226 227 348 3 226 227 348 3 226 227 348 3 227 280 3366 3 227 280 3366 3 227 280 3366 3 227 280 3366 3 227 280 3366 3 227 280 3366 8 227 228 280 281 358 3267 3365 3366 8 227 228 280 281 358 3267 3365 3366 8 227 228 280 281 358 3267 3365 3366 8 227 228 280 281 358 3267 3365 3366 8 227 228 280 281 358 3267 3365 3366 8 227 228 280 281 358 3267 3365 3366 3 227 228 358 3 227 228 358 3 227 228 358 3 227 228 358 3 227 228 358 3 227 228 358 3 228 281 3365 3 228 281 3365 3 228 281 3365 3 228 281 3365 3 228 281 3365 3 228 281 3365 3 229 230 319 3 229 230 319 3 229 230 319 3 229 230 319 3 229 230 319 3 229 230 319 4 229 309 967 1183 4 229 309 967 1183 4 229 309 967 1183 4 229 309 967 1183 4 229 309 967 1183 4 229 309 967 1183 3 230 231 329 3 230 231 329 3 230 231 329 3 230 231 329 3 230 231 329 3 230 231 329 3 231 232 339 3 231 232 339 3 231 232 339 3 231 232 339 3 231 232 339 3 231 232 339 3 232 233 349 3 232 233 349 3 232 233 349 3 232 233 349 3 232 233 349 3 232 233 349 3 233 234 359 3 233 234 359 3 233 234 359 3 233 234 359 3 233 234 359 3 233 234 359 3 234 287 3359 3 234 287 3359 3 234 287 3359 3 234 287 3359 3 234 287 3359 3 234 287 3359 3 235 236 321 3 235 236 321 3 235 236 321 3 235 236 321 3 235 236 321 3 235 236 321 3 235 311 1010 3 235 311 1010 3 235 311 1010 3 235 311 1010 3 235 311 1010 3 235 311 1010 3 236 237 331 3 236 237 331 3 236 237 331 3 236 237 331 3 236 237 331 3 236 237 331 3 237 238 341 3 237 238 341 3 237 238 341 3 237 238 341 3 237 238 341 3 237 238 341 3 238 239 351 3 238 239 351 3 238 239 351 3 238 239 351 3 238 239 351 3 238 239 351 3 239 240 360 3 239 240 360 3 239 240 360 3 239 240 360 3 239 240 360 3 239 240 360 3 240 293 3353 3 240 293 3353 3 240 293 3353 3 240 293 3353 3 240 293 3353 3 240 293 3353 3 241 242 323 3 241 242 323 3 241 242 323 3 241 242 323 3 241 242 323 3 241 242 323 3 241 313 1053 3 241 313 1053 3 241 313 1053 3 241 313 1053 3 241 313 1053 3 241 313 1053 3 242 243 333 3 242 243 333 3 242 243 333 3 242 243 333 3 242 243 333 3 242 243 333 3 243 244 343 3 243 244 343 3 243 244 343 3 243 244 343 3 243 244 343 3 243 244 343 3 244 245 353 3 244 245 353 3 244 245 353 3 244 245 353 3 244 245 353 3 244 245 353 3 245 246 361 3 245 246 361 3 245 246 361 3 245 246 361 3 245 246 361 3 245 246 361 3 246 299 3347 3 246 299 3347 3 246 299 3347 3 246 299 3347 3 246 299 3347 3 246 299 3347 3 247 248 325 3 247 248 325 3 247 248 325 3 247 248 325 3 247 248 325 3 247 248 325 3 247 315 1096 3 247 315 1096 3 247 315 1096 3 247 315 1096 3 247 315 1096 3 247 315 1096 3 248 249 335 3 248 249 335 3 248 249 335 3 248 249 335 3 248 249 335 3 248 249 335 3 249 250 345 3 249 250 345 3 249 250 345 3 249 250 345 3 249 250 345 3 249 250 345 4 250 251 271 355 4 250 251 271 355 4 250 251 271 355 4 250 251 271 355 4 250 251 271 355 4 250 251 271 355 3 251 252 362 3 251 252 362 3 251 252 362 3 251 252 362 3 251 252 362 3 251 252 362 3 252 305 3341 3 252 305 3341 3 252 305 3341 3 252 305 3341 3 252 305 3341 3 252 305 3341 3 253 254 327 3 253 254 327 3 253 254 327 3 253 254 327 3 253 254 327 3 253 254 327 3 253 317 1097 3 253 317 1097 3 253 317 1097 3 253 317 1097 3 253 317 1097 3 253 317 1097 3 254 255 337 3 254 255 337 3 254 255 337 3 254 255 337 3 254 255 337 3 254 255 337 3 255 256 347 3 255 256 347 3 255 256 347 3 255 256 347 3 255 256 347 3 255 256 347 4 256 257 275 357 4 256 257 275 357 4 256 257 275 357 4 256 257 275 357 4 256 257 275 357 4 256 257 275 357 3 257 258 364 3 257 258 364 3 257 258 364 3 257 258 364 3 257 258 364 3 257 258 364 2 258 259 2 258 259 2 258 259 2 258 259 2 258 259 2 258 259 2 259 3334 2 259 3334 2 259 3334 2 259 3334 2 259 3334 2 259 3334 4 260 261 320 321 4 260 261 320 321 4 260 261 320 321 4 260 261 320 321 4 260 261 320 321 4 260 261 320 321 4 260 310 311 1226 4 260 310 311 1226 4 260 310 311 1226 4 260 310 311 1226 4 260 310 311 1226 4 260 310 311 1226 4 261 262 330 331 4 261 262 330 331 4 261 262 330 331 4 261 262 330 331 4 261 262 330 331 4 261 262 330 331 4 262 263 340 341 4 262 263 340 341 4 262 263 340 341 4 262 263 340 341 4 262 263 340 341 4 262 263 340 341 3 263 350 351 3 263 350 351 3 263 350 351 3 263 350 351 3 263 350 351 3 263 350 351 4 264 265 322 323 4 264 265 322 323 4 264 265 322 323 4 264 265 322 323 4 264 265 322 323 4 264 265 322 323 4 264 312 313 1269 4 264 312 313 1269 4 264 312 313 1269 4 264 312 313 1269 4 264 312 313 1269 4 264 312 313 1269 4 265 266 332 333 4 265 266 332 333 4 265 266 332 333 4 265 266 332 333 4 265 266 332 333 4 265 266 332 333 4 266 267 342 343 4 266 267 342 343 4 266 267 342 343 4 266 267 342 343 4 266 267 342 343 4 266 267 342 343 1 267 1 267 1 267 1 267 1 267 1 267 2 267 271 2 267 271 2 267 271 2 267 271 2 267 271 2 267 271 4 268 269 324 325 4 268 269 324 325 4 268 269 324 325 4 268 269 324 325 4 268 269 324 325 4 268 269 324 325 4 268 314 315 1312 4 268 314 315 1312 4 268 314 315 1312 4 268 314 315 1312 4 268 314 315 1312 4 268 314 315 1312 4 269 270 334 335 4 269 270 334 335 4 269 270 334 335 4 269 270 334 335 4 269 270 334 335 4 269 270 334 335 4 270 271 344 345 4 270 271 344 345 4 270 271 344 345 4 270 271 344 345 4 270 271 344 345 4 270 271 344 345 2 271 275 2 271 275 2 271 275 2 271 275 2 271 275 2 271 275 4 272 273 326 327 4 272 273 326 327 4 272 273 326 327 4 272 273 326 327 4 272 273 326 327 4 272 273 326 327 3 272 316 317 3 272 316 317 3 272 316 317 3 272 316 317 3 272 316 317 3 272 316 317 4 273 274 336 337 4 273 274 336 337 4 273 274 336 337 4 273 274 336 337 4 273 274 336 337 4 273 274 336 337 4 274 275 346 347 4 274 275 346 347 4 274 275 346 347 4 274 275 346 347 4 274 275 346 347 4 274 275 346 347 1 275 1 275 1 275 1 275 1 275 1 275 4 276 277 318 3307 4 276 277 318 3307 4 276 277 318 3307 4 276 277 318 3307 4 276 277 318 3307 4 276 277 318 3307 4 276 308 1355 3317 4 276 308 1355 3317 4 276 308 1355 3317 4 276 308 1355 3317 4 276 308 1355 3317 4 276 308 1355 3317 4 277 278 328 3297 4 277 278 328 3297 4 277 278 328 3297 4 277 278 328 3297 4 277 278 328 3297 4 277 278 328 3297 4 278 279 338 3287 4 278 279 338 3287 4 278 279 338 3287 4 278 279 338 3287 4 278 279 338 3287 4 278 279 338 3287 4 279 280 348 3277 4 279 280 348 3277 4 279 280 348 3277 4 279 280 348 3277 4 279 280 348 3277 4 279 280 348 3277 4 280 281 358 3267 4 280 281 358 3267 4 280 281 358 3267 4 280 281 358 3267 4 280 281 358 3267 4 280 281 358 3267 4 282 283 319 3306 4 282 283 319 3306 4 282 283 319 3306 4 282 283 319 3306 4 282 283 319 3306 4 282 283 319 3306 3 282 309 3316 3 282 309 3316 3 282 309 3316 3 282 309 3316 3 282 309 3316 3 282 309 3316 4 283 284 329 3296 4 283 284 329 3296 4 283 284 329 3296 4 283 284 329 3296 4 283 284 329 3296 4 283 284 329 3296 4 284 285 339 3286 4 284 285 339 3286 4 284 285 339 3286 4 284 285 339 3286 4 284 285 339 3286 4 284 285 339 3286 4 285 286 349 3276 4 285 286 349 3276 4 285 286 349 3276 4 285 286 349 3276 4 285 286 349 3276 4 285 286 349 3276 4 286 287 359 3266 4 286 287 359 3266 4 286 287 359 3266 4 286 287 359 3266 4 286 287 359 3266 4 286 287 359 3266 4 288 289 320 3305 4 288 289 320 3305 4 288 289 320 3305 4 288 289 320 3305 4 288 289 320 3305 4 288 289 320 3305 3 288 310 3315 3 288 310 3315 3 288 310 3315 3 288 310 3315 3 288 310 3315 3 288 310 3315 4 289 290 330 3295 4 289 290 330 3295 4 289 290 330 3295 4 289 290 330 3295 4 289 290 330 3295 4 289 290 330 3295 4 290 291 340 3285 4 290 291 340 3285 4 290 291 340 3285 4 290 291 340 3285 4 290 291 340 3285 4 290 291 340 3285 4 291 292 350 3275 4 291 292 350 3275 4 291 292 350 3275 4 291 292 350 3275 4 291 292 350 3275 4 291 292 350 3275 4 292 293 360 3265 4 292 293 360 3265 4 292 293 360 3265 4 292 293 360 3265 4 292 293 360 3265 4 292 293 360 3265 4 294 295 322 3303 4 294 295 322 3303 4 294 295 322 3303 4 294 295 322 3303 4 294 295 322 3303 4 294 295 322 3303 3 294 312 3313 3 294 312 3313 3 294 312 3313 3 294 312 3313 3 294 312 3313 3 294 312 3313 4 295 296 332 3293 4 295 296 332 3293 4 295 296 332 3293 4 295 296 332 3293 4 295 296 332 3293 4 295 296 332 3293 4 296 297 342 3283 4 296 297 342 3283 4 296 297 342 3283 4 296 297 342 3283 4 296 297 342 3283 4 296 297 342 3283 4 297 298 352 3273 4 297 298 352 3273 4 297 298 352 3273 4 297 298 352 3273 4 297 298 352 3273 4 297 298 352 3273 4 298 299 361 3264 4 298 299 361 3264 4 298 299 361 3264 4 298 299 361 3264 4 298 299 361 3264 4 298 299 361 3264 4 300 301 324 3301 4 300 301 324 3301 4 300 301 324 3301 4 300 301 324 3301 4 300 301 324 3301 4 300 301 324 3301 3 300 314 3311 3 300 314 3311 3 300 314 3311 3 300 314 3311 3 300 314 3311 3 300 314 3311 4 301 302 334 3291 4 301 302 334 3291 4 301 302 334 3291 4 301 302 334 3291 4 301 302 334 3291 4 301 302 334 3291 4 302 303 344 3281 4 302 303 344 3281 4 302 303 344 3281 4 302 303 344 3281 4 302 303 344 3281 4 302 303 344 3281 4 303 304 354 3271 4 303 304 354 3271 4 303 304 354 3271 4 303 304 354 3271 4 303 304 354 3271 4 303 304 354 3271 4 304 305 362 3263 4 304 305 362 3263 4 304 305 362 3263 4 304 305 362 3263 4 304 305 362 3263 4 304 305 362 3263 3 306 326 3299 3 306 326 3299 3 306 326 3299 3 306 326 3299 3 306 326 3299 3 306 326 3299 3 306 316 3309 3 306 316 3309 3 306 316 3309 3 306 316 3309 3 306 316 3309 3 306 316 3309 3 307 346 3279 3 307 346 3279 3 307 346 3279 3 307 346 3279 3 307 346 3279 3 307 346 3279 3 307 336 3289 3 307 336 3289 3 307 336 3289 3 307 336 3289 3 307 336 3289 3 307 336 3289 2 352 353 2 352 353 2 352 353 2 352 353 2 352 353 2 352 353 2 354 355 2 354 355 2 354 355 2 354 355 2 354 355 2 354 355 2 356 357 2 356 357 2 356 357 2 356 357 2 356 357 2 356 357 2 356 3269 2 356 3269 2 356 3269 2 356 3269 2 356 3269 2 356 3269 2 363 364 2 363 364 2 363 364 2 363 364 2 363 364 2 363 364 2 363 3262 2 363 3262 2 363 3262 2 363 3262 2 363 3262 2 363 3262 3 365 366 370 3 365 366 370 3 365 366 370 3 365 366 370 3 365 366 370 3 365 366 370 2 365 369 2 365 369 2 365 369 2 365 369 2 365 369 2 365 369 3 366 367 371 3 366 367 371 3 366 367 371 3 366 367 371 3 366 367 371 3 366 367 371 3 367 368 372 3 367 368 372 3 367 368 372 3 367 368 372 3 367 368 372 3 367 368 372 2 368 373 2 368 373 2 368 373 2 368 373 2 368 373 2 368 373 2 369 3256 2 369 3256 2 369 3256 2 369 3256 2 369 3256 2 369 3256 2 370 3255 2 370 3255 2 370 3255 2 370 3255 2 370 3255 2 370 3255 2 371 3254 2 371 3254 2 371 3254 2 371 3254 2 371 3254 2 371 3254 2 372 3253 2 372 3253 2 372 3253 2 372 3253 2 372 3253 2 372 3253 2 373 3252 2 373 3252 2 373 3252 2 373 3252 2 373 3252 2 373 3252 3 374 472 3251 3 374 472 3251 3 374 472 3251 3 374 472 3251 3 374 472 3251 3 374 472 3251 4 374 376 478 513 4 374 376 478 513 4 374 376 478 513 4 374 376 478 513 4 374 376 478 513 4 374 376 478 513 10 374 375 376 377 456 457 478 479 508 513 10 374 375 376 377 456 457 478 479 508 513 10 374 375 376 377 456 457 478 479 508 513 10 374 375 376 377 456 457 478 479 508 513 10 374 375 376 377 456 457 478 479 508 513 10 374 375 376 377 456 457 478 479 508 513 5 374 375 442 443 456 5 374 375 442 443 456 5 374 375 442 443 456 5 374 375 442 443 456 5 374 375 442 443 456 5 374 375 442 443 456 3 374 375 456 3 374 375 456 3 374 375 456 3 374 375 456 3 374 375 456 3 374 375 456 2 374 442 2 374 442 2 374 442 2 374 442 2 374 442 2 374 442 3 375 377 479 3 375 377 479 3 375 377 479 3 375 377 479 3 375 377 479 3 375 377 479 5 375 377 434 435 479 5 375 377 434 435 479 5 375 377 434 435 479 5 375 377 434 435 479 5 375 377 434 435 479 5 375 377 434 435 479 3 375 434 443 3 375 434 443 3 375 434 443 2 375 434 2 375 434 2 375 434 2 375 434 2 375 434 2 375 434 2 375 443 2 375 443 2 375 443 2 375 443 2 375 443 2 375 443 2 376 3249 2 376 3249 2 376 3249 2 376 3249 2 376 3249 2 376 3249 6 376 484 514 3123 3153 3249 6 376 484 514 3123 3153 3249 6 376 484 514 3123 3153 3249 6 376 484 514 3123 3153 3249 6 376 484 514 3123 3153 3249 6 376 484 514 3123 3153 3249 3 376 484 514 3 376 484 514 3 376 484 514 3 376 484 514 3 376 484 514 3 376 484 514 10 376 377 378 457 458 484 485 508 509 514 10 376 377 378 457 458 484 485 508 509 514 10 376 377 378 457 458 484 485 508 509 514 10 376 377 378 457 458 484 485 508 509 514 10 376 377 378 457 458 484 485 508 509 514 10 376 377 378 457 458 484 485 508 509 514 4 376 377 457 508 4 376 377 457 508 4 376 377 457 508 4 376 377 457 508 4 376 377 457 508 4 376 377 457 508 3 377 378 485 3 377 378 485 3 377 378 485 3 377 378 485 3 377 378 485 3 377 378 485 5 377 378 435 436 485 5 377 378 435 436 485 5 377 378 435 436 485 5 377 378 435 436 485 5 377 378 435 436 485 5 377 378 435 436 485 2 377 435 2 377 435 2 377 435 2 377 435 2 377 435 2 377 435 3 378 458 509 3 378 458 509 3 378 458 509 3 378 458 509 3 378 458 509 3 378 458 509 7 378 379 458 459 489 509 510 7 378 379 458 459 489 509 510 7 378 379 458 459 489 509 510 7 378 379 458 459 489 509 510 7 378 379 458 459 489 509 510 7 378 379 458 459 489 509 510 3 378 379 489 3 378 379 489 3 378 379 489 3 378 379 489 3 378 379 489 3 378 379 489 5 378 379 436 437 489 5 378 379 436 437 489 5 378 379 436 437 489 5 378 379 436 437 489 5 378 379 436 437 489 5 378 379 436 437 489 2 378 436 2 378 436 2 378 436 2 378 436 2 378 436 2 378 436 3 379 459 510 3 379 459 510 3 379 459 510 3 379 459 510 3 379 459 510 3 379 459 510 10 379 380 381 459 460 494 495 510 511 515 10 379 380 381 459 460 494 495 510 511 515 10 379 380 381 459 460 494 495 510 511 515 10 379 380 381 459 460 494 495 510 511 515 10 379 380 381 459 460 494 495 510 511 515 10 379 380 381 459 460 494 495 510 511 515 3 379 381 495 3 379 381 495 3 379 381 495 3 379 381 495 3 379 381 495 3 379 381 495 5 379 381 437 438 495 5 379 381 437 438 495 5 379 381 437 438 495 5 379 381 437 438 495 5 379 381 437 438 495 5 379 381 437 438 495 2 379 437 2 379 437 2 379 437 2 379 437 2 379 437 2 379 437 7 380 473 494 515 3122 3143 3245 7 380 473 494 515 3122 3143 3245 7 380 473 494 515 3122 3143 3245 7 380 473 494 515 3122 3143 3245 7 380 473 494 515 3122 3143 3245 7 380 473 494 515 3122 3143 3245 3 380 473 3245 3 380 473 3245 3 380 473 3245 3 380 473 3245 3 380 473 3245 3 380 473 3245 7 380 473 502 516 3121 3135 3245 7 380 473 502 516 3121 3135 3245 7 380 473 502 516 3121 3135 3245 7 380 473 502 516 3121 3135 3245 7 380 473 502 516 3121 3135 3245 7 380 473 502 516 3121 3135 3245 3 380 502 516 3 380 502 516 3 380 502 516 3 380 502 516 3 380 502 516 3 380 502 516 10 380 381 382 460 461 502 503 511 512 516 10 380 381 382 460 461 502 503 511 512 516 10 380 381 382 460 461 502 503 511 512 516 10 380 381 382 460 461 502 503 511 512 516 10 380 381 382 460 461 502 503 511 512 516 10 380 381 382 460 461 502 503 511 512 516 4 380 381 460 511 4 380 381 460 511 4 380 381 460 511 4 380 381 460 511 4 380 381 460 511 4 380 381 460 511 3 380 494 515 3 380 494 515 3 380 494 515 3 380 494 515 3 380 494 515 3 380 494 515 3 381 382 503 3 381 382 503 3 381 382 503 3 381 382 503 3 381 382 503 3 381 382 503 5 381 382 438 439 503 5 381 382 438 439 503 5 381 382 438 439 503 5 381 382 438 439 503 5 381 382 438 439 503 5 381 382 438 439 503 2 381 438 2 381 438 2 381 438 2 381 438 2 381 438 2 381 438 3 382 461 512 3 382 461 512 3 382 461 512 3 382 461 512 3 382 461 512 3 382 461 512 7 382 461 507 512 517 1270 1716 7 382 461 507 512 517 1270 1716 7 382 461 507 512 517 1270 1716 7 382 461 507 512 517 1270 1716 7 382 461 507 512 517 1270 1716 7 382 461 507 512 517 1270 1716 3 382 507 517 3 382 507 517 3 382 507 517 3 382 507 517 3 382 507 517 3 382 507 517 5 382 439 507 517 1054 5 382 439 507 517 1054 5 382 439 507 517 1054 5 382 439 507 517 1054 5 382 439 507 517 1054 5 382 439 507 517 1054 2 382 439 2 382 439 2 382 439 2 382 439 2 382 439 2 382 439 4 383 470 472 3242 4 383 470 472 3242 4 383 470 472 3242 4 383 470 472 3242 4 383 470 472 3242 4 383 470 472 3242 4 383 385 475 478 4 383 385 475 478 4 383 385 475 478 4 383 385 475 478 4 383 385 475 478 4 383 385 475 478 13 383 384 385 386 450 451 456 457 475 476 477 478 479 13 383 384 385 386 450 451 456 457 475 476 477 478 479 13 383 384 385 386 450 451 456 457 475 476 477 478 479 13 383 384 385 386 450 451 456 457 475 476 477 478 479 13 383 384 385 386 450 451 456 457 475 476 477 478 479 13 383 384 385 386 450 451 456 457 475 476 477 478 479 8 383 384 440 441 442 443 450 456 8 383 384 440 441 442 443 450 456 8 383 384 440 441 442 443 450 456 8 383 384 440 441 442 443 450 456 8 383 384 440 441 442 443 450 456 8 383 384 440 441 442 443 450 456 4 383 384 450 456 4 383 384 450 456 4 383 384 450 456 4 383 384 450 456 4 383 384 450 456 4 383 384 450 456 3 383 440 442 3 383 440 442 3 383 440 442 3 383 440 442 3 383 440 442 3 383 440 442 4 384 386 477 479 4 384 386 477 479 4 384 386 477 479 4 384 386 477 479 4 384 386 477 479 4 384 386 477 479 8 384 386 428 429 434 435 477 479 8 384 386 428 429 434 435 477 479 8 384 386 428 429 434 435 477 479 8 384 386 428 429 434 435 477 479 8 384 386 428 429 434 435 477 479 8 384 386 428 429 434 435 477 479 5 384 428 434 441 443 5 384 428 434 441 443 5 384 428 434 441 443 5 384 428 434 441 443 5 384 428 434 441 443 5 384 428 434 441 443 3 384 428 434 3 384 428 434 3 384 428 434 3 384 428 434 3 384 428 434 3 384 428 434 3 384 441 443 3 384 441 443 3 384 441 443 3 384 441 443 3 384 441 443 3 384 441 443 2 385 3240 2 385 3240 2 385 3240 2 385 3240 2 385 3240 2 385 3240 6 385 482 484 3153 3155 3240 6 385 482 484 3153 3155 3240 6 385 482 484 3153 3155 3240 6 385 482 484 3153 3155 3240 6 385 482 484 3153 3155 3240 6 385 482 484 3153 3155 3240 3 385 482 484 3 385 482 484 3 385 482 484 3 385 482 484 3 385 482 484 3 385 482 484 11 385 386 387 451 452 457 458 482 483 484 485 11 385 386 387 451 452 457 458 482 483 484 485 11 385 386 387 451 452 457 458 482 483 484 485 11 385 386 387 451 452 457 458 482 483 484 485 11 385 386 387 451 452 457 458 482 483 484 485 11 385 386 387 451 452 457 458 482 483 484 485 4 385 386 451 457 4 385 386 451 457 4 385 386 451 457 4 385 386 451 457 4 385 386 451 457 4 385 386 451 457 4 386 387 483 485 4 386 387 483 485 4 386 387 483 485 4 386 387 483 485 4 386 387 483 485 4 386 387 483 485 8 386 387 429 430 435 436 483 485 8 386 387 429 430 435 436 483 485 8 386 387 429 430 435 436 483 485 8 386 387 429 430 435 436 483 485 8 386 387 429 430 435 436 483 485 8 386 387 429 430 435 436 483 485 3 386 429 435 3 386 429 435 3 386 429 435 3 386 429 435 3 386 429 435 3 386 429 435 3 387 452 458 3 387 452 458 3 387 452 458 3 387 452 458 3 387 452 458 3 387 452 458 8 387 388 452 453 458 459 488 489 8 387 388 452 453 458 459 488 489 8 387 388 452 453 458 459 488 489 8 387 388 452 453 458 459 488 489 8 387 388 452 453 458 459 488 489 8 387 388 452 453 458 459 488 489 4 387 388 488 489 4 387 388 488 489 4 387 388 488 489 4 387 388 488 489 4 387 388 488 489 4 387 388 488 489 8 387 388 430 431 436 437 488 489 8 387 388 430 431 436 437 488 489 8 387 388 430 431 436 437 488 489 8 387 388 430 431 436 437 488 489 8 387 388 430 431 436 437 488 489 8 387 388 430 431 436 437 488 489 3 387 430 436 3 387 430 436 3 387 430 436 3 387 430 436 3 387 430 436 3 387 430 436 3 388 453 459 3 388 453 459 3 388 453 459 3 388 453 459 3 388 453 459 3 388 453 459 10 388 389 390 453 454 459 460 493 494 495 10 388 389 390 453 454 459 460 493 494 495 10 388 389 390 453 454 459 460 493 494 495 10 388 389 390 453 454 459 460 493 494 495 10 388 389 390 453 454 459 460 493 494 495 10 388 389 390 453 454 459 460 493 494 495 4 388 390 493 495 4 388 390 493 495 4 388 390 493 495 4 388 390 493 495 4 388 390 493 495 4 388 390 493 495 8 388 390 431 432 437 438 493 495 8 388 390 431 432 437 438 493 495 8 388 390 431 432 437 438 493 495 8 388 390 431 432 437 438 493 495 8 388 390 431 432 437 438 493 495 8 388 390 431 432 437 438 493 495 3 388 431 437 3 388 431 437 3 388 431 437 3 388 431 437 3 388 431 437 3 388 431 437 6 389 471 473 494 3143 3236 6 389 471 473 494 3143 3236 6 389 471 473 494 3143 3236 6 389 471 473 494 3143 3236 6 389 471 473 494 3143 3236 6 389 471 473 494 3143 3236 4 389 471 473 3236 4 389 471 473 3236 4 389 471 473 3236 4 389 471 473 3236 4 389 471 473 3236 4 389 471 473 3236 8 389 471 473 500 502 3135 3137 3236 8 389 471 473 500 502 3135 3137 3236 8 389 471 473 500 502 3135 3137 3236 8 389 471 473 500 502 3135 3137 3236 8 389 471 473 500 502 3135 3137 3236 8 389 471 473 500 502 3135 3137 3236 3 389 500 502 3 389 500 502 3 389 500 502 3 389 500 502 3 389 500 502 3 389 500 502 11 389 390 391 454 455 460 461 500 501 502 503 11 389 390 391 454 455 460 461 500 501 502 503 11 389 390 391 454 455 460 461 500 501 502 503 11 389 390 391 454 455 460 461 500 501 502 503 11 389 390 391 454 455 460 461 500 501 502 503 11 389 390 391 454 455 460 461 500 501 502 503 4 389 390 454 460 4 389 390 454 460 4 389 390 454 460 4 389 390 454 460 4 389 390 454 460 4 389 390 454 460 2 389 494 2 389 494 2 389 494 2 389 494 2 389 494 2 389 494 4 390 391 501 503 4 390 391 501 503 4 390 391 501 503 4 390 391 501 503 4 390 391 501 503 4 390 391 501 503 8 390 391 432 433 438 439 501 503 8 390 391 432 433 438 439 501 503 8 390 391 432 433 438 439 501 503 8 390 391 432 433 438 439 501 503 8 390 391 432 433 438 439 501 503 8 390 391 432 433 438 439 501 503 3 390 432 438 3 390 432 438 3 390 432 438 3 390 432 438 3 390 432 438 3 390 432 438 3 391 455 461 3 391 455 461 3 391 455 461 3 391 455 461 3 391 455 461 3 391 455 461 8 391 455 461 506 507 575 1227 1270 8 391 455 461 506 507 575 1227 1270 8 391 455 461 506 507 575 1227 1270 8 391 455 461 506 507 575 1227 1270 8 391 455 461 506 507 575 1227 1270 8 391 455 461 506 507 575 1227 1270 4 391 506 507 575 4 391 506 507 575 4 391 506 507 575 4 391 506 507 575 4 391 506 507 575 4 391 506 507 575 8 391 433 439 506 507 575 1011 1054 8 391 433 439 506 507 575 1011 1054 8 391 433 439 506 507 575 1011 1054 8 391 433 439 506 507 575 1011 1054 8 391 433 439 506 507 575 1011 1054 8 391 433 439 506 507 575 1011 1054 3 391 433 439 3 391 433 439 3 391 433 439 3 391 433 439 3 391 433 439 3 391 433 439 14 392 393 394 396 423 424 429 430 446 451 452 481 482 483 14 392 393 394 396 423 424 429 430 446 451 452 481 482 483 14 392 393 394 396 423 424 429 430 446 451 452 481 482 483 14 392 393 394 396 423 424 429 430 446 451 452 481 482 483 14 392 393 394 396 423 424 429 430 446 451 452 481 482 483 14 392 393 394 396 423 424 429 430 446 451 452 481 482 483 3 392 424 430 3 392 424 430 3 392 424 430 3 392 424 430 3 392 424 430 3 392 424 430 8 392 398 424 425 430 431 487 488 8 392 398 424 425 430 431 487 488 8 392 398 424 425 430 431 487 488 8 392 398 424 425 430 431 487 488 8 392 398 424 425 430 431 487 488 8 392 398 424 425 430 431 487 488 9 392 396 398 446 447 452 453 487 488 9 392 396 398 446 447 452 453 487 488 9 392 396 398 446 447 452 453 487 488 9 392 396 398 446 447 452 453 487 488 9 392 396 398 446 447 452 453 487 488 9 392 396 398 446 447 452 453 487 488 4 392 398 487 488 4 392 398 487 488 4 392 398 487 488 4 392 398 487 488 4 392 398 487 488 4 392 398 487 488 4 392 396 446 452 4 392 396 446 452 4 392 396 446 452 4 392 396 446 452 4 392 396 446 452 4 392 396 446 452 9 393 394 395 397 422 423 474 475 476 9 393 394 395 397 422 423 474 475 476 9 393 394 395 397 422 423 474 475 476 9 393 394 395 397 422 423 474 475 476 9 393 394 395 397 422 423 474 475 476 9 393 394 395 397 422 423 474 475 476 3 393 395 476 3 393 395 476 3 393 395 476 3 393 395 476 3 393 395 476 3 393 395 476 8 393 395 428 429 450 451 476 477 8 393 395 428 429 450 451 476 477 8 393 395 428 429 450 451 476 477 8 393 395 428 429 450 451 476 477 8 393 395 428 429 450 451 476 477 8 393 395 428 429 450 451 476 477 3 393 429 451 3 393 429 451 3 393 429 451 3 393 429 451 3 393 429 451 3 393 429 451 3 393 394 423 3 393 394 423 3 393 394 423 3 393 394 423 3 393 394 423 3 393 394 423 4 394 397 474 475 4 394 397 474 475 4 394 397 474 475 4 394 397 474 475 4 394 397 474 475 4 394 397 474 475 10 394 396 480 481 482 3155 3156 3157 3229 3231 10 394 396 480 481 482 3155 3156 3157 3229 3231 10 394 396 480 481 482 3155 3156 3157 3229 3231 10 394 396 480 481 482 3155 3156 3157 3229 3231 10 394 396 480 481 482 3155 3156 3157 3229 3231 10 394 396 480 481 482 3155 3156 3157 3229 3231 4 394 396 481 482 4 394 396 481 482 4 394 396 481 482 4 394 396 481 482 4 394 396 481 482 4 394 396 481 482 2 394 3231 2 394 3231 2 394 3231 2 394 3231 2 394 3231 2 394 3231 2 395 440 2 395 440 2 395 440 2 395 440 2 395 440 2 395 440 5 395 428 440 441 450 5 395 428 440 441 450 5 395 428 440 441 450 5 395 428 440 441 450 5 395 428 440 441 450 5 395 428 440 441 450 3 395 428 450 3 395 428 450 3 395 428 450 3 395 428 450 3 395 428 450 3 395 428 450 3 395 397 422 3 395 397 422 3 395 397 422 3 395 397 422 3 395 397 422 3 395 397 422 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 2 396 3229 1 396 1 396 1 396 1 396 1 396 1 396 4 397 468 470 3228 4 397 468 470 3228 4 397 468 470 3228 4 397 468 470 3228 4 397 468 470 3228 4 397 468 470 3228 3 398 447 453 3 398 447 453 3 398 447 453 3 398 447 453 3 398 447 453 3 398 447 453 8 398 399 447 448 453 454 492 493 8 398 399 447 448 453 454 492 493 8 398 399 447 448 453 454 492 493 8 398 399 447 448 453 454 492 493 8 398 399 447 448 453 454 492 493 8 398 399 447 448 453 454 492 493 4 398 399 492 493 4 398 399 492 493 4 398 399 492 493 4 398 399 492 493 4 398 399 492 493 4 398 399 492 493 8 398 399 425 426 431 432 492 493 8 398 399 425 426 431 432 492 493 8 398 399 425 426 431 432 492 493 8 398 399 425 426 431 432 492 493 8 398 399 425 426 431 432 492 493 8 398 399 425 426 431 432 492 493 3 398 425 431 3 398 425 431 3 398 425 431 3 398 425 431 3 398 425 431 3 398 425 431 3 399 448 454 3 399 448 454 3 399 448 454 3 399 448 454 3 399 448 454 3 399 448 454 10 399 400 448 449 454 455 498 499 500 501 10 399 400 448 449 454 455 498 499 500 501 10 399 400 448 449 454 455 498 499 500 501 10 399 400 448 449 454 455 498 499 500 501 10 399 400 448 449 454 455 498 499 500 501 10 399 400 448 449 454 455 498 499 500 501 4 399 400 499 501 4 399 400 499 501 4 399 400 499 501 4 399 400 499 501 4 399 400 499 501 4 399 400 499 501 8 399 400 426 427 432 433 499 501 8 399 400 426 427 432 433 499 501 8 399 400 426 427 432 433 499 501 8 399 400 426 427 432 433 499 501 8 399 400 426 427 432 433 499 501 8 399 400 426 427 432 433 499 501 3 399 426 432 3 399 426 432 3 399 426 432 3 399 426 432 3 399 426 432 3 399 426 432 3 400 449 455 3 400 449 455 3 400 449 455 3 400 449 455 3 400 449 455 3 400 449 455 8 400 449 455 505 506 633 1184 1227 8 400 449 455 505 506 633 1184 1227 8 400 449 455 505 506 633 1184 1227 8 400 449 455 505 506 633 1184 1227 8 400 449 455 505 506 633 1184 1227 8 400 449 455 505 506 633 1184 1227 4 400 505 506 633 4 400 505 506 633 4 400 505 506 633 4 400 505 506 633 4 400 505 506 633 4 400 505 506 633 8 400 427 433 505 506 633 968 1011 8 400 427 433 505 506 633 968 1011 8 400 427 433 505 506 633 968 1011 8 400 427 433 505 506 633 968 1011 8 400 427 433 505 506 633 968 1011 8 400 427 433 505 506 633 968 1011 3 400 427 433 3 400 427 433 3 400 427 433 3 400 427 433 3 400 427 433 3 400 427 433 2 401 423 2 401 423 2 401 423 2 401 423 2 401 423 2 401 423 9 401 402 418 423 424 445 446 480 481 9 401 402 418 423 424 445 446 480 481 9 401 402 418 423 424 445 446 480 481 9 401 402 418 423 424 445 446 480 481 9 401 402 418 423 424 445 446 480 481 9 401 402 418 423 424 445 446 480 481 9 401 402 445 466 480 3157 3180 3223 3224 9 401 402 445 466 480 3157 3180 3223 3224 9 401 402 445 466 480 3157 3180 3223 3224 9 401 402 445 466 480 3157 3180 3223 3224 9 401 402 445 466 480 3157 3180 3223 3224 9 401 402 445 466 480 3157 3180 3223 3224 4 401 402 445 480 4 401 402 445 480 4 401 402 445 480 4 401 402 445 480 4 401 402 445 480 4 401 402 445 480 2 401 3224 2 401 3224 2 401 3224 2 401 3224 2 401 3224 2 401 3224 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 3 402 466 3223 1 402 1 402 1 402 1 402 1 402 1 402 8 402 418 419 424 425 446 447 487 8 402 418 419 424 425 446 447 487 8 402 418 419 424 425 446 447 487 8 402 418 419 424 425 446 447 487 8 402 418 419 424 425 446 447 487 8 402 418 419 424 425 446 447 487 4 402 418 424 446 4 402 418 424 446 4 402 418 424 446 4 402 418 424 446 4 402 418 424 446 4 402 418 424 446 6 403 467 469 491 3146 3222 6 403 467 469 491 3146 3222 6 403 467 469 491 3146 3222 6 403 467 469 491 3146 3222 6 403 467 469 491 3146 3222 6 403 467 469 491 3146 3222 4 403 467 469 3222 4 403 467 469 3222 4 403 467 469 3222 4 403 467 469 3222 4 403 467 469 3222 4 403 467 469 3222 8 403 467 469 497 498 3139 3140 3222 8 403 467 469 497 498 3139 3140 3222 8 403 467 469 497 498 3139 3140 3222 8 403 467 469 497 498 3139 3140 3222 8 403 467 469 497 498 3139 3140 3222 8 403 467 469 497 498 3139 3140 3222 3 403 497 498 3 403 497 498 3 403 497 498 3 403 497 498 3 403 497 498 3 403 497 498 10 403 420 421 426 427 448 449 497 498 499 10 403 420 421 426 427 448 449 497 498 499 10 403 420 421 426 427 448 449 497 498 499 10 403 420 421 426 427 448 449 497 498 499 10 403 420 421 426 427 448 449 497 498 499 10 403 420 421 426 427 448 449 497 498 499 9 403 419 420 425 426 447 448 491 492 9 403 419 420 425 426 447 448 491 492 9 403 419 420 425 426 447 448 491 492 9 403 419 420 425 426 447 448 491 492 9 403 419 420 425 426 447 448 491 492 9 403 419 420 425 426 447 448 491 492 4 403 420 426 448 4 403 420 426 448 4 403 420 426 448 4 403 420 426 448 4 403 420 426 448 4 403 420 426 448 2 403 491 2 403 491 2 403 491 2 403 491 2 403 491 2 403 491 8 404 444 445 462 466 3180 3181 3221 8 404 444 445 462 466 3180 3181 3221 8 404 444 445 462 466 3180 3181 3221 8 404 444 445 462 466 3180 3181 3221 8 404 444 445 462 466 3180 3181 3221 8 404 444 445 462 466 3180 3181 3221 4 404 462 466 3221 4 404 462 466 3221 4 404 462 466 3221 4 404 462 466 3221 4 404 462 466 3221 4 404 462 466 3221 9 404 405 462 463 466 486 3151 3220 3221 9 404 405 462 463 466 486 3151 3220 3221 9 404 405 462 463 466 486 3151 3220 3221 9 404 405 462 463 466 486 3151 3220 3221 9 404 405 462 463 466 486 3151 3220 3221 9 404 405 462 463 466 486 3151 3220 3221 3 404 405 486 3 404 405 486 3 404 405 486 3 404 405 486 3 404 405 486 3 404 405 486 7 404 405 414 415 418 419 486 7 404 405 414 415 418 419 486 7 404 405 414 415 418 419 486 7 404 405 414 415 418 419 486 7 404 405 414 415 418 419 486 7 404 405 414 415 418 419 486 5 404 414 418 444 445 5 404 414 418 444 445 5 404 414 418 444 445 5 404 414 418 444 445 5 404 414 418 444 445 5 404 414 418 444 445 3 404 414 418 3 404 414 418 3 404 414 418 3 404 414 418 3 404 414 418 3 404 414 418 3 404 444 445 3 404 444 445 3 404 444 445 3 404 444 445 3 404 444 445 3 404 444 445 3 405 463 3220 3 405 463 3220 3 405 463 3220 3 405 463 3220 3 405 463 3220 3 405 463 3220 11 405 406 463 464 467 490 491 3146 3147 3219 3220 11 405 406 463 464 467 490 491 3146 3147 3219 3220 11 405 406 463 464 467 490 491 3146 3147 3219 3220 11 405 406 463 464 467 490 491 3146 3147 3219 3220 11 405 406 463 464 467 490 491 3146 3147 3219 3220 11 405 406 463 464 467 490 491 3146 3147 3219 3220 4 405 406 490 491 4 405 406 490 491 4 405 406 490 491 4 405 406 490 491 4 405 406 490 491 4 405 406 490 491 8 405 406 415 416 419 420 490 491 8 405 406 415 416 419 420 490 491 8 405 406 415 416 419 420 490 491 8 405 406 415 416 419 420 490 491 8 405 406 415 416 419 420 490 491 8 405 406 415 416 419 420 490 491 3 405 415 419 3 405 415 419 3 405 415 419 3 405 415 419 3 405 415 419 3 405 415 419 4 406 464 467 3219 4 406 464 467 3219 4 406 464 467 3219 4 406 464 467 3219 4 406 464 467 3219 4 406 464 467 3219 11 406 407 464 465 467 496 497 3140 3141 3218 3219 11 406 407 464 465 467 496 497 3140 3141 3218 3219 11 406 407 464 465 467 496 497 3140 3141 3218 3219 11 406 407 464 465 467 496 497 3140 3141 3218 3219 11 406 407 464 465 467 496 497 3140 3141 3218 3219 11 406 407 464 465 467 496 497 3140 3141 3218 3219 4 406 407 496 497 4 406 407 496 497 4 406 407 496 497 4 406 407 496 497 4 406 407 496 497 4 406 407 496 497 8 406 407 416 417 420 421 496 497 8 406 407 416 417 420 421 496 497 8 406 407 416 417 420 421 496 497 8 406 407 416 417 420 421 496 497 8 406 407 416 417 420 421 496 497 8 406 407 416 417 420 421 496 497 3 406 416 420 3 406 416 420 3 406 416 420 3 406 416 420 3 406 416 420 3 406 416 420 3 407 465 3218 3 407 465 3218 3 407 465 3218 3 407 465 3218 3 407 465 3218 3 407 465 3218 8 407 465 504 876 1313 2761 3133 3218 8 407 465 504 876 1313 2761 3133 3218 8 407 465 504 876 1313 2761 3133 3218 8 407 465 504 876 1313 2761 3133 3218 8 407 465 504 876 1313 2761 3133 3218 8 407 465 504 876 1313 2761 3133 3218 3 407 504 876 3 407 504 876 3 407 504 876 3 407 504 876 3 407 504 876 3 407 504 876 10 407 417 421 504 876 877 882 925 1098 1141 10 407 417 421 504 876 877 882 925 1098 1141 10 407 417 421 504 876 877 882 925 1098 1141 10 407 417 421 504 876 877 882 925 1098 1141 10 407 417 421 504 876 877 882 925 1098 1141 10 407 417 421 504 876 877 882 925 1098 1141 3 407 417 421 3 407 417 421 3 407 417 421 3 407 417 421 3 407 417 421 3 407 417 421 3 408 462 3217 3 408 462 3217 3 408 462 3217 3 408 462 3217 3 408 462 3217 3 408 462 3217 8 408 409 462 463 486 3151 3216 3217 8 408 409 462 463 486 3151 3216 3217 8 408 409 462 463 486 3151 3216 3217 8 408 409 462 463 486 3151 3216 3217 8 408 409 462 463 486 3151 3216 3217 8 408 409 462 463 486 3151 3216 3217 3 408 409 486 3 408 409 486 3 408 409 486 3 408 409 486 3 408 409 486 3 408 409 486 5 408 409 414 415 486 5 408 409 414 415 486 5 408 409 414 415 486 5 408 409 414 415 486 5 408 409 414 415 486 5 408 409 414 415 486 3 408 414 444 3 408 414 444 3 408 414 444 3 408 414 444 3 408 414 444 3 408 414 444 2 408 414 2 408 414 2 408 414 2 408 414 2 408 414 2 408 414 2 408 444 2 408 444 2 408 444 2 408 444 2 408 444 2 408 444 3 409 463 3216 3 409 463 3216 3 409 463 3216 3 409 463 3216 3 409 463 3216 3 409 463 3216 8 409 410 463 464 490 3147 3215 3216 8 409 410 463 464 490 3147 3215 3216 8 409 410 463 464 490 3147 3215 3216 8 409 410 463 464 490 3147 3215 3216 8 409 410 463 464 490 3147 3215 3216 8 409 410 463 464 490 3147 3215 3216 3 409 410 490 3 409 410 490 3 409 410 490 3 409 410 490 3 409 410 490 3 409 410 490 5 409 410 415 416 490 5 409 410 415 416 490 5 409 410 415 416 490 5 409 410 415 416 490 5 409 410 415 416 490 5 409 410 415 416 490 2 409 415 2 409 415 2 409 415 2 409 415 2 409 415 2 409 415 3 410 464 3215 3 410 464 3215 3 410 464 3215 3 410 464 3215 3 410 464 3215 3 410 464 3215 8 410 411 464 465 496 3141 3214 3215 8 410 411 464 465 496 3141 3214 3215 8 410 411 464 465 496 3141 3214 3215 8 410 411 464 465 496 3141 3214 3215 8 410 411 464 465 496 3141 3214 3215 8 410 411 464 465 496 3141 3214 3215 3 410 411 496 3 410 411 496 3 410 411 496 3 410 411 496 3 410 411 496 3 410 411 496 5 410 411 416 417 496 5 410 411 416 417 496 5 410 411 416 417 496 5 410 411 416 417 496 5 410 411 416 417 496 5 410 411 416 417 496 2 410 416 2 410 416 2 410 416 2 410 416 2 410 416 2 410 416 3 411 465 3214 3 411 465 3214 3 411 465 3214 3 411 465 3214 3 411 465 3214 3 411 465 3214 8 411 465 504 820 1313 2817 3133 3214 8 411 465 504 820 1313 2817 3133 3214 8 411 465 504 820 1313 2817 3133 3214 8 411 465 504 820 1313 2817 3133 3214 8 411 465 504 820 1313 2817 3133 3214 8 411 465 504 820 1313 2817 3133 3214 3 411 504 820 3 411 504 820 3 411 504 820 3 411 504 820 3 411 504 820 3 411 504 820 6 411 417 504 820 882 1098 6 411 417 504 820 882 1098 6 411 417 504 820 882 1098 6 411 417 504 820 882 1098 6 411 417 504 820 882 1098 6 411 417 504 820 882 1098 2 411 417 2 411 417 2 411 417 2 411 417 2 411 417 2 411 417 4 412 513 3124 3213 4 412 513 3124 3213 4 412 513 3124 3213 4 412 513 3124 3213 4 412 513 3124 3213 4 412 513 3124 3213 2 412 3213 2 412 3213 2 412 3213 2 412 3213 2 412 3213 2 412 3213 4 412 514 3123 3213 4 412 514 3123 3213 4 412 514 3123 3213 4 412 514 3123 3213 4 412 514 3123 3213 4 412 514 3123 3213 2 412 514 2 412 514 2 412 514 2 412 514 2 412 514 2 412 514 2 412 513 2 412 513 2 412 513 2 412 513 2 412 513 2 412 513 4 413 515 3122 3212 4 413 515 3122 3212 4 413 515 3122 3212 4 413 515 3122 3212 4 413 515 3122 3212 4 413 515 3122 3212 2 413 3212 2 413 3212 2 413 3212 2 413 3212 2 413 3212 2 413 3212 4 413 516 3121 3212 4 413 516 3121 3212 4 413 516 3121 3212 4 413 516 3121 3212 4 413 516 3121 3212 4 413 516 3121 3212 2 413 516 2 413 516 2 413 516 2 413 516 2 413 516 2 413 516 2 413 515 2 413 515 2 413 515 2 413 515 2 413 515 2 413 515 2 414 444 2 414 444 2 414 444 2 414 444 2 414 444 2 414 444 3 414 415 486 3 414 415 486 3 414 415 486 3 414 415 486 3 414 415 486 3 414 415 486 3 415 416 490 3 415 416 490 3 415 416 490 3 415 416 490 3 415 416 490 3 415 416 490 3 416 417 496 3 416 417 496 3 416 417 496 3 416 417 496 3 416 417 496 3 416 417 496 4 417 504 882 1098 4 417 504 882 1098 4 417 504 882 1098 4 417 504 882 1098 4 417 504 882 1098 4 417 504 882 1098 2 418 445 2 418 445 2 418 445 2 418 445 2 418 445 2 418 445 2 418 419 2 418 419 2 418 419 2 418 419 2 418 419 2 418 419 3 419 425 447 3 419 425 447 3 419 425 447 3 419 425 447 3 419 425 447 3 419 425 447 3 419 420 491 3 419 420 491 3 419 420 491 3 419 420 491 3 419 420 491 3 419 420 491 3 420 421 497 3 420 421 497 3 420 421 497 3 420 421 497 3 420 421 497 3 420 421 497 3 421 427 449 3 421 427 449 3 421 427 449 3 421 427 449 3 421 427 449 3 421 427 449 9 421 427 449 505 878 925 968 1141 1184 9 421 427 449 505 878 925 968 1141 1184 9 421 427 449 505 878 925 968 1141 1184 9 421 427 449 505 878 925 968 1141 1184 9 421 427 449 505 878 925 968 1141 1184 9 421 427 449 505 878 925 968 1141 1184 3 421 925 1141 3 421 925 1141 3 421 925 1141 3 421 925 1141 3 421 925 1141 3 421 925 1141 3 422 468 3203 3 422 468 3203 3 422 468 3203 3 422 468 3203 3 422 468 3203 3 422 468 3203 3 422 423 474 3 422 423 474 3 422 423 474 3 422 423 474 3 422 423 474 3 422 423 474 4 423 424 446 481 4 423 424 446 481 4 423 424 446 481 4 423 424 446 481 4 423 424 446 481 4 423 424 446 481 3 424 425 487 3 424 425 487 3 424 425 487 3 424 425 487 3 424 425 487 3 424 425 487 3 425 426 492 3 425 426 492 3 425 426 492 3 425 426 492 3 425 426 492 3 425 426 492 3 426 427 499 3 426 427 499 3 426 427 499 3 426 427 499 3 426 427 499 3 426 427 499 3 427 505 968 3 427 505 968 3 427 505 968 3 427 505 968 3 427 505 968 3 427 505 968 2 428 441 2 428 441 2 428 441 2 428 441 2 428 441 2 428 441 3 428 429 477 3 428 429 477 3 428 429 477 3 428 429 477 3 428 429 477 3 428 429 477 3 429 430 483 3 429 430 483 3 429 430 483 3 429 430 483 3 429 430 483 3 429 430 483 3 430 431 488 3 430 431 488 3 430 431 488 3 430 431 488 3 430 431 488 3 430 431 488 3 431 432 493 3 431 432 493 3 431 432 493 3 431 432 493 3 431 432 493 3 431 432 493 3 432 433 501 3 432 433 501 3 432 433 501 3 432 433 501 3 432 433 501 3 432 433 501 3 433 506 1011 3 433 506 1011 3 433 506 1011 3 433 506 1011 3 433 506 1011 3 433 506 1011 2 434 443 2 434 443 2 434 443 2 434 443 2 434 443 2 434 443 3 434 435 479 3 434 435 479 3 434 435 479 3 434 435 479 3 434 435 479 3 434 435 479 3 435 436 485 3 435 436 485 3 435 436 485 3 435 436 485 3 435 436 485 3 435 436 485 3 436 437 489 3 436 437 489 3 436 437 489 3 436 437 489 3 436 437 489 3 436 437 489 3 437 438 495 3 437 438 495 3 437 438 495 3 437 438 495 3 437 438 495 3 437 438 495 3 438 439 503 3 438 439 503 3 438 439 503 3 438 439 503 3 438 439 503 3 438 439 503 3 439 507 1054 3 439 507 1054 3 439 507 1054 3 439 507 1054 3 439 507 1054 3 439 507 1054 3 440 441 450 3 440 441 450 3 440 441 450 3 440 441 450 3 440 441 450 3 440 441 450 3 440 470 3185 3 440 470 3185 3 440 470 3185 3 440 470 3185 3 440 470 3185 3 440 470 3185 3 442 443 456 3 442 443 456 3 442 443 456 3 442 443 456 3 442 443 456 3 442 443 456 3 442 472 3183 3 442 472 3183 3 442 472 3183 3 442 472 3183 3 442 472 3183 3 442 472 3183 3 444 462 3181 3 444 462 3181 3 444 462 3181 3 444 462 3181 3 444 462 3181 3 444 462 3181 3 445 466 3180 3 445 466 3180 3 445 466 3180 3 445 466 3180 3 445 466 3180 3 445 466 3180 3 446 447 487 3 446 447 487 3 446 447 487 3 446 447 487 3 446 447 487 3 446 447 487 3 447 448 492 3 447 448 492 3 447 448 492 3 447 448 492 3 447 448 492 3 447 448 492 4 448 449 498 499 4 448 449 498 499 4 448 449 498 499 4 448 449 498 499 4 448 449 498 499 4 448 449 498 499 3 449 505 1184 3 449 505 1184 3 449 505 1184 3 449 505 1184 3 449 505 1184 3 449 505 1184 4 450 451 476 477 4 450 451 476 477 4 450 451 476 477 4 450 451 476 477 4 450 451 476 477 4 450 451 476 477 4 451 452 482 483 4 451 452 482 483 4 451 452 482 483 4 451 452 482 483 4 451 452 482 483 4 451 452 482 483 3 452 453 488 3 452 453 488 3 452 453 488 3 452 453 488 3 452 453 488 3 452 453 488 3 453 454 493 3 453 454 493 3 453 454 493 3 453 454 493 3 453 454 493 3 453 454 493 4 454 455 500 501 4 454 455 500 501 4 454 455 500 501 4 454 455 500 501 4 454 455 500 501 4 454 455 500 501 3 455 506 1227 3 455 506 1227 3 455 506 1227 3 455 506 1227 3 455 506 1227 3 455 506 1227 4 456 457 478 479 4 456 457 478 479 4 456 457 478 479 4 456 457 478 479 4 456 457 478 479 4 456 457 478 479 4 457 458 484 485 4 457 458 484 485 4 457 458 484 485 4 457 458 484 485 4 457 458 484 485 4 457 458 484 485 3 458 459 489 3 458 459 489 3 458 459 489 3 458 459 489 3 458 459 489 3 458 459 489 4 459 460 494 495 4 459 460 494 495 4 459 460 494 495 4 459 460 494 495 4 459 460 494 495 4 459 460 494 495 4 460 461 502 503 4 460 461 502 503 4 460 461 502 503 4 460 461 502 503 4 460 461 502 503 4 460 461 502 503 3 461 507 1270 3 461 507 1270 3 461 507 1270 3 461 507 1270 3 461 507 1270 3 461 507 1270 4 462 463 486 3151 4 462 463 486 3151 4 462 463 486 3151 4 462 463 486 3151 4 462 463 486 3151 4 462 463 486 3151 4 463 464 490 3147 4 463 464 490 3147 4 463 464 490 3147 4 463 464 490 3147 4 463 464 490 3147 4 463 464 490 3147 4 464 465 496 3141 4 464 465 496 3141 4 464 465 496 3141 4 464 465 496 3141 4 464 465 496 3141 4 464 465 496 3141 4 465 504 1313 3133 4 465 504 1313 3133 4 465 504 1313 3133 4 465 504 1313 3133 4 465 504 1313 3133 4 465 504 1313 3133 1 466 1 466 1 466 1 466 1 466 1 466 3 467 491 3146 3 467 491 3146 3 467 491 3146 3 467 491 3146 3 467 491 3146 3 467 491 3146 3 467 497 3140 3 467 497 3140 3 467 497 3140 3 467 497 3140 3 467 497 3140 3 467 497 3140 3 468 474 3163 3 468 474 3163 3 468 474 3163 3 468 474 3163 3 468 474 3163 3 468 474 3163 2 469 471 2 469 471 2 469 471 2 469 471 2 469 471 2 469 471 1 469 1 469 1 469 1 469 1 469 1 469 2 469 471 2 469 471 2 469 471 2 469 471 2 469 471 2 469 471 6 469 471 498 500 3137 3139 6 469 471 498 500 3137 3139 6 469 471 498 500 3137 3139 6 469 471 498 500 3137 3139 6 469 471 498 500 3137 3139 6 469 471 498 500 3137 3139 3 469 498 3139 3 469 498 3139 3 469 498 3139 3 469 498 3139 3 469 498 3139 3 469 498 3139 3 470 475 3162 3 470 475 3162 3 470 475 3162 3 470 475 3162 3 470 475 3162 3 470 475 3162 1 471 1 471 1 471 1 471 1 471 1 471 3 471 500 3137 3 471 500 3137 3 471 500 3137 3 471 500 3137 3 471 500 3137 3 471 500 3137 3 472 478 3159 3 472 478 3159 3 472 478 3159 3 472 478 3159 3 472 478 3159 3 472 478 3159 3 473 494 3143 3 473 494 3143 3 473 494 3143 3 473 494 3143 3 473 494 3143 3 473 494 3143 3 473 502 3135 3 473 502 3135 3 473 502 3135 3 473 502 3135 3 473 502 3135 3 473 502 3135 2 475 476 2 475 476 2 475 476 2 475 476 2 475 476 2 475 476 2 480 481 2 480 481 2 480 481 2 480 481 2 480 481 2 480 481 2 480 3157 2 480 3157 2 480 3157 2 480 3157 2 480 3157 2 480 3157 2 482 3155 2 482 3155 2 482 3155 2 482 3155 2 482 3155 2 482 3155 2 484 3153 2 484 3153 2 484 3153 2 484 3153 2 484 3153 2 484 3153 2 498 500 2 498 500 2 498 500 2 498 500 2 498 500 2 498 500 2 508 513 2 508 513 2 508 513 2 508 513 2 508 513 2 508 513 3 508 509 514 3 508 509 514 3 508 509 514 3 508 509 514 3 508 509 514 3 508 509 514 2 509 510 2 509 510 2 509 510 2 509 510 2 509 510 2 509 510 3 510 511 515 3 510 511 515 3 510 511 515 3 510 511 515 3 510 511 515 3 510 511 515 3 511 512 516 3 511 512 516 3 511 512 516 3 511 512 516 3 511 512 516 3 511 512 516 2 512 1716 2 512 1716 2 512 1716 2 512 1716 2 512 1716 2 512 1716 2 513 3124 2 513 3124 2 513 3124 2 513 3124 2 513 3124 2 513 3124 2 514 3123 2 514 3123 2 514 3123 2 514 3123 2 514 3123 2 514 3123 2 515 3122 2 515 3122 2 515 3122 2 515 3122 2 515 3122 2 515 3122 2 516 3121 2 516 3121 2 516 3121 2 516 3121 2 516 3121 2 516 3121 3 517 1270 1716 3 517 1270 1716 3 517 1270 1716 3 517 1270 1716 3 517 1270 1716 3 517 1270 1716 11 517 518 525 527 1270 1271 1406 1407 1716 1717 1759 11 517 518 525 527 1270 1271 1406 1407 1716 1717 1759 11 517 518 525 527 1270 1271 1406 1407 1716 1717 1759 11 517 518 525 527 1270 1271 1406 1407 1716 1717 1759 11 517 518 525 527 1270 1271 1406 1407 1716 1717 1759 11 517 518 525 527 1270 1271 1406 1407 1716 1717 1759 3 517 518 1407 3 517 518 1407 3 517 518 1407 3 517 518 1407 3 517 518 1407 3 517 518 1407 5 517 518 1054 1055 1407 5 517 518 1054 1055 1407 5 517 518 1054 1055 1407 5 517 518 1054 1055 1407 5 517 518 1054 1055 1407 5 517 518 1054 1055 1407 2 517 1054 2 517 1054 2 517 1054 2 517 1054 2 517 1054 2 517 1054 4 518 525 1271 1717 4 518 525 1271 1717 4 518 525 1271 1717 4 518 525 1271 1717 4 518 525 1271 1717 4 518 525 1271 1717 9 518 520 522 525 1271 1272 1413 1717 1718 9 518 520 522 525 1271 1272 1413 1717 1718 9 518 520 522 525 1271 1272 1413 1717 1718 9 518 520 522 525 1271 1272 1413 1717 1718 9 518 520 522 525 1271 1272 1413 1717 1718 9 518 520 522 525 1271 1272 1413 1717 1718 3 518 520 1413 3 518 520 1413 3 518 520 1413 3 518 520 1413 3 518 520 1413 3 518 520 1413 5 518 520 1055 1056 1413 5 518 520 1055 1056 1413 5 518 520 1055 1056 1413 5 518 520 1055 1056 1413 5 518 520 1055 1056 1413 5 518 520 1055 1056 1413 2 518 1055 2 518 1055 2 518 1055 2 518 1055 2 518 1055 2 518 1055 9 519 520 521 522 1272 1273 1419 1718 1719 9 519 520 521 522 1272 1273 1419 1718 1719 9 519 520 521 522 1272 1273 1419 1718 1719 9 519 520 521 522 1272 1273 1419 1718 1719 9 519 520 521 522 1272 1273 1419 1718 1719 9 519 520 521 522 1272 1273 1419 1718 1719 4 519 521 1273 1719 4 519 521 1273 1719 4 519 521 1273 1719 4 519 521 1273 1719 4 519 521 1273 1719 4 519 521 1273 1719 9 519 521 523 1273 1274 1425 1719 1720 1863 9 519 521 523 1273 1274 1425 1719 1720 1863 9 519 521 523 1273 1274 1425 1719 1720 1863 9 519 521 523 1273 1274 1425 1719 1720 1863 9 519 521 523 1273 1274 1425 1719 1720 1863 9 519 521 523 1273 1274 1425 1719 1720 1863 2 519 522 2 519 522 2 519 522 2 519 522 2 519 522 2 519 522 1 519 1 519 1 519 1 519 1 519 1 519 2 519 1863 2 519 1863 2 519 1863 2 519 1863 2 519 1863 2 519 1863 4 520 522 1272 1718 4 520 522 1272 1718 4 520 522 1272 1718 4 520 522 1272 1718 4 520 522 1272 1718 4 520 522 1272 1718 3 520 521 1419 3 520 521 1419 3 520 521 1419 3 520 521 1419 3 520 521 1419 3 520 521 1419 5 520 521 1056 1057 1419 5 520 521 1056 1057 1419 5 520 521 1056 1057 1419 5 520 521 1056 1057 1419 5 520 521 1056 1057 1419 5 520 521 1056 1057 1419 2 520 1056 2 520 1056 2 520 1056 2 520 1056 2 520 1056 2 520 1056 3 521 523 1425 3 521 523 1425 3 521 523 1425 3 521 523 1425 3 521 523 1425 3 521 523 1425 5 521 523 1057 1058 1425 5 521 523 1057 1058 1425 5 521 523 1057 1058 1425 5 521 523 1057 1058 1425 5 521 523 1057 1058 1425 5 521 523 1057 1058 1425 2 521 1057 2 521 1057 2 521 1057 2 521 1057 2 521 1057 2 521 1057 2 522 525 2 522 525 2 522 525 2 522 525 2 522 525 2 522 525 1 522 1 522 1 522 1 522 1 522 1 522 4 523 1274 1720 1863 4 523 1274 1720 1863 4 523 1274 1720 1863 4 523 1274 1720 1863 4 523 1274 1720 1863 4 523 1274 1720 1863 12 523 524 1274 1275 1431 1720 1721 1797 1800 1834 1863 1864 12 523 524 1274 1275 1431 1720 1721 1797 1800 1834 1863 1864 12 523 524 1274 1275 1431 1720 1721 1797 1800 1834 1863 1864 12 523 524 1274 1275 1431 1720 1721 1797 1800 1834 1863 1864 12 523 524 1274 1275 1431 1720 1721 1797 1800 1834 1863 1864 12 523 524 1274 1275 1431 1720 1721 1797 1800 1834 1863 1864 4 523 524 1431 1797 4 523 524 1431 1797 4 523 524 1431 1797 4 523 524 1431 1797 4 523 524 1431 1797 4 523 524 1431 1797 7 523 524 1058 1059 1431 1797 1845 7 523 524 1058 1059 1431 1797 1845 7 523 524 1058 1059 1431 1797 1845 7 523 524 1058 1059 1431 1797 1845 7 523 524 1058 1059 1431 1797 1845 7 523 524 1058 1059 1431 1797 1845 2 523 1058 2 523 1058 2 523 1058 2 523 1058 2 523 1058 2 523 1058 5 524 1275 1721 1834 1864 5 524 1275 1721 1834 1864 5 524 1275 1721 1834 1864 5 524 1275 1721 1834 1864 5 524 1275 1721 1834 1864 5 524 1275 1721 1834 1864 13 524 526 1275 1276 1437 1721 1722 1808 1809 1834 1835 1864 1865 13 524 526 1275 1276 1437 1721 1722 1808 1809 1834 1835 1864 1865 13 524 526 1275 1276 1437 1721 1722 1808 1809 1834 1835 1864 1865 13 524 526 1275 1276 1437 1721 1722 1808 1809 1834 1835 1864 1865 13 524 526 1275 1276 1437 1721 1722 1808 1809 1834 1835 1864 1865 13 524 526 1275 1276 1437 1721 1722 1808 1809 1834 1835 1864 1865 4 524 526 1437 1809 4 524 526 1437 1809 4 524 526 1437 1809 4 524 526 1437 1809 4 524 526 1437 1809 4 524 526 1437 1809 8 524 526 1059 1060 1437 1809 1845 1846 8 524 526 1059 1060 1437 1809 1845 1846 8 524 526 1059 1060 1437 1809 1845 1846 8 524 526 1059 1060 1437 1809 1845 1846 8 524 526 1059 1060 1437 1809 1845 1846 8 524 526 1059 1060 1437 1809 1845 1846 3 524 1059 1845 3 524 1059 1845 3 524 1059 1845 3 524 1059 1845 3 524 1059 1845 3 524 1059 1845 2 525 527 2 525 527 2 525 527 2 525 527 2 525 527 2 525 527 5 526 1276 1722 1835 1865 5 526 1276 1722 1835 1865 5 526 1276 1722 1835 1865 5 526 1276 1722 1835 1865 5 526 1276 1722 1835 1865 5 526 1276 1722 1835 1865 12 526 528 1276 1277 1443 1722 1723 1816 1817 1835 1865 1867 12 526 528 1276 1277 1443 1722 1723 1816 1817 1835 1865 1867 12 526 528 1276 1277 1443 1722 1723 1816 1817 1835 1865 1867 12 526 528 1276 1277 1443 1722 1723 1816 1817 1835 1865 1867 12 526 528 1276 1277 1443 1722 1723 1816 1817 1835 1865 1867 12 526 528 1276 1277 1443 1722 1723 1816 1817 1835 1865 1867 4 526 528 1443 1817 4 526 528 1443 1817 4 526 528 1443 1817 4 526 528 1443 1817 4 526 528 1443 1817 4 526 528 1443 1817 7 526 528 1060 1061 1443 1817 1846 7 526 528 1060 1061 1443 1817 1846 7 526 528 1060 1061 1443 1817 1846 7 526 528 1060 1061 1443 1817 1846 7 526 528 1060 1061 1443 1817 1846 7 526 528 1060 1061 1443 1817 1846 3 526 1060 1846 3 526 1060 1846 3 526 1060 1846 3 526 1060 1846 3 526 1060 1846 3 526 1060 1846 6 527 1406 1759 1965 2318 3110 6 527 1406 1759 1965 2318 3110 6 527 1406 1759 1965 2318 3110 6 527 1406 1759 1965 2318 3110 6 527 1406 1759 1965 2318 3110 6 527 1406 1759 1965 2318 3110 3 527 1406 1759 3 527 1406 1759 3 527 1406 1759 3 527 1406 1759 3 527 1406 1759 3 527 1406 1759 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 2 527 3110 1 527 1 527 1 527 1 527 1 527 1 527 4 528 1277 1723 1867 4 528 1277 1723 1867 4 528 1277 1723 1867 4 528 1277 1723 1867 4 528 1277 1723 1867 4 528 1277 1723 1867 11 528 529 1277 1278 1450 1451 1723 1724 1760 1866 1867 11 528 529 1277 1278 1450 1451 1723 1724 1760 1866 1867 11 528 529 1277 1278 1450 1451 1723 1724 1760 1866 1867 11 528 529 1277 1278 1450 1451 1723 1724 1760 1866 1867 11 528 529 1277 1278 1450 1451 1723 1724 1760 1866 1867 11 528 529 1277 1278 1450 1451 1723 1724 1760 1866 1867 3 528 529 1451 3 528 529 1451 3 528 529 1451 3 528 529 1451 3 528 529 1451 3 528 529 1451 5 528 529 1061 1062 1451 5 528 529 1061 1062 1451 5 528 529 1061 1062 1451 5 528 529 1061 1062 1451 5 528 529 1061 1062 1451 5 528 529 1061 1062 1451 2 528 1061 2 528 1061 2 528 1061 2 528 1061 2 528 1061 2 528 1061 3 529 1278 1724 3 529 1278 1724 3 529 1278 1724 3 529 1278 1724 3 529 1278 1724 3 529 1278 1724 7 529 530 1278 1279 1457 1724 1725 7 529 530 1278 1279 1457 1724 1725 7 529 530 1278 1279 1457 1724 1725 7 529 530 1278 1279 1457 1724 1725 7 529 530 1278 1279 1457 1724 1725 7 529 530 1278 1279 1457 1724 1725 3 529 530 1457 3 529 530 1457 3 529 530 1457 3 529 530 1457 3 529 530 1457 3 529 530 1457 5 529 530 1062 1063 1457 5 529 530 1062 1063 1457 5 529 530 1062 1063 1457 5 529 530 1062 1063 1457 5 529 530 1062 1063 1457 5 529 530 1062 1063 1457 2 529 1062 2 529 1062 2 529 1062 2 529 1062 2 529 1062 2 529 1062 3 530 1279 1725 3 530 1279 1725 3 530 1279 1725 3 530 1279 1725 3 530 1279 1725 3 530 1279 1725 10 530 531 532 1279 1280 1464 1465 1725 1726 1761 10 530 531 532 1279 1280 1464 1465 1725 1726 1761 10 530 531 532 1279 1280 1464 1465 1725 1726 1761 10 530 531 532 1279 1280 1464 1465 1725 1726 1761 10 530 531 532 1279 1280 1464 1465 1725 1726 1761 10 530 531 532 1279 1280 1464 1465 1725 1726 1761 3 530 532 1465 3 530 532 1465 3 530 532 1465 3 530 532 1465 3 530 532 1465 3 530 532 1465 5 530 532 1063 1064 1465 5 530 532 1063 1064 1465 5 530 532 1063 1064 1465 5 530 532 1063 1064 1465 5 530 532 1063 1064 1465 5 530 532 1063 1064 1465 2 530 1063 2 530 1063 2 530 1063 2 530 1063 2 530 1063 2 530 1063 7 531 1389 1464 1761 1963 2260 3106 7 531 1389 1464 1761 1963 2260 3106 7 531 1389 1464 1761 1963 2260 3106 7 531 1389 1464 1761 1963 2260 3106 7 531 1389 1464 1761 1963 2260 3106 7 531 1389 1464 1761 1963 2260 3106 3 531 1389 3106 3 531 1389 3106 3 531 1389 3106 3 531 1389 3106 3 531 1389 3106 3 531 1389 3106 7 531 1389 1472 1762 1962 2252 3106 7 531 1389 1472 1762 1962 2252 3106 7 531 1389 1472 1762 1962 2252 3106 7 531 1389 1472 1762 1962 2252 3106 7 531 1389 1472 1762 1962 2252 3106 7 531 1389 1472 1762 1962 2252 3106 3 531 1472 1762 3 531 1472 1762 3 531 1472 1762 3 531 1472 1762 3 531 1472 1762 3 531 1472 1762 10 531 532 533 1280 1281 1472 1473 1726 1727 1762 10 531 532 533 1280 1281 1472 1473 1726 1727 1762 10 531 532 533 1280 1281 1472 1473 1726 1727 1762 10 531 532 533 1280 1281 1472 1473 1726 1727 1762 10 531 532 533 1280 1281 1472 1473 1726 1727 1762 10 531 532 533 1280 1281 1472 1473 1726 1727 1762 4 531 532 1280 1726 4 531 532 1280 1726 4 531 532 1280 1726 4 531 532 1280 1726 4 531 532 1280 1726 4 531 532 1280 1726 3 531 1464 1761 3 531 1464 1761 3 531 1464 1761 3 531 1464 1761 3 531 1464 1761 3 531 1464 1761 3 532 533 1473 3 532 533 1473 3 532 533 1473 3 532 533 1473 3 532 533 1473 3 532 533 1473 5 532 533 1064 1065 1473 5 532 533 1064 1065 1473 5 532 533 1064 1065 1473 5 532 533 1064 1065 1473 5 532 533 1064 1065 1473 5 532 533 1064 1065 1473 2 532 1064 2 532 1064 2 532 1064 2 532 1064 2 532 1064 2 532 1064 3 533 1281 1727 3 533 1281 1727 3 533 1281 1727 3 533 1281 1727 3 533 1281 1727 3 533 1281 1727 7 533 534 1281 1282 1479 1727 1728 7 533 534 1281 1282 1479 1727 1728 7 533 534 1281 1282 1479 1727 1728 7 533 534 1281 1282 1479 1727 1728 7 533 534 1281 1282 1479 1727 1728 7 533 534 1281 1282 1479 1727 1728 3 533 534 1479 3 533 534 1479 3 533 534 1479 3 533 534 1479 3 533 534 1479 3 533 534 1479 5 533 534 1065 1066 1479 5 533 534 1065 1066 1479 5 533 534 1065 1066 1479 5 533 534 1065 1066 1479 5 533 534 1065 1066 1479 5 533 534 1065 1066 1479 2 533 1065 2 533 1065 2 533 1065 2 533 1065 2 533 1065 2 533 1065 3 534 1282 1728 3 534 1282 1728 3 534 1282 1728 3 534 1282 1728 3 534 1282 1728 3 534 1282 1728 10 534 535 536 1282 1283 1488 1489 1728 1729 1763 10 534 535 536 1282 1283 1488 1489 1728 1729 1763 10 534 535 536 1282 1283 1488 1489 1728 1729 1763 10 534 535 536 1282 1283 1488 1489 1728 1729 1763 10 534 535 536 1282 1283 1488 1489 1728 1729 1763 10 534 535 536 1282 1283 1488 1489 1728 1729 1763 3 534 536 1489 3 534 536 1489 3 534 536 1489 3 534 536 1489 3 534 536 1489 3 534 536 1489 5 534 536 1066 1067 1489 5 534 536 1066 1067 1489 5 534 536 1066 1067 1489 5 534 536 1066 1067 1489 5 534 536 1066 1067 1489 5 534 536 1066 1067 1489 2 534 1066 2 534 1066 2 534 1066 2 534 1066 2 534 1066 2 534 1066 7 535 1390 1488 1763 1961 2236 3102 7 535 1390 1488 1763 1961 2236 3102 7 535 1390 1488 1763 1961 2236 3102 7 535 1390 1488 1763 1961 2236 3102 7 535 1390 1488 1763 1961 2236 3102 7 535 1390 1488 1763 1961 2236 3102 3 535 1390 3102 3 535 1390 3102 3 535 1390 3102 3 535 1390 3102 3 535 1390 3102 3 535 1390 3102 7 535 1390 1498 1764 1960 2226 3102 7 535 1390 1498 1764 1960 2226 3102 7 535 1390 1498 1764 1960 2226 3102 7 535 1390 1498 1764 1960 2226 3102 7 535 1390 1498 1764 1960 2226 3102 7 535 1390 1498 1764 1960 2226 3102 3 535 1498 1764 3 535 1498 1764 3 535 1498 1764 3 535 1498 1764 3 535 1498 1764 3 535 1498 1764 10 535 536 537 1283 1284 1498 1499 1729 1730 1764 10 535 536 537 1283 1284 1498 1499 1729 1730 1764 10 535 536 537 1283 1284 1498 1499 1729 1730 1764 10 535 536 537 1283 1284 1498 1499 1729 1730 1764 10 535 536 537 1283 1284 1498 1499 1729 1730 1764 10 535 536 537 1283 1284 1498 1499 1729 1730 1764 4 535 536 1283 1729 4 535 536 1283 1729 4 535 536 1283 1729 4 535 536 1283 1729 4 535 536 1283 1729 4 535 536 1283 1729 3 535 1488 1763 3 535 1488 1763 3 535 1488 1763 3 535 1488 1763 3 535 1488 1763 3 535 1488 1763 3 536 537 1499 3 536 537 1499 3 536 537 1499 3 536 537 1499 3 536 537 1499 3 536 537 1499 5 536 537 1067 1068 1499 5 536 537 1067 1068 1499 5 536 537 1067 1068 1499 5 536 537 1067 1068 1499 5 536 537 1067 1068 1499 5 536 537 1067 1068 1499 2 536 1067 2 536 1067 2 536 1067 2 536 1067 2 536 1067 2 536 1067 3 537 1284 1730 3 537 1284 1730 3 537 1284 1730 3 537 1284 1730 3 537 1284 1730 3 537 1284 1730 7 537 538 1284 1285 1505 1730 1731 7 537 538 1284 1285 1505 1730 1731 7 537 538 1284 1285 1505 1730 1731 7 537 538 1284 1285 1505 1730 1731 7 537 538 1284 1285 1505 1730 1731 7 537 538 1284 1285 1505 1730 1731 3 537 538 1505 3 537 538 1505 3 537 538 1505 3 537 538 1505 3 537 538 1505 3 537 538 1505 5 537 538 1068 1069 1505 5 537 538 1068 1069 1505 5 537 538 1068 1069 1505 5 537 538 1068 1069 1505 5 537 538 1068 1069 1505 5 537 538 1068 1069 1505 2 537 1068 2 537 1068 2 537 1068 2 537 1068 2 537 1068 2 537 1068 3 538 1285 1731 3 538 1285 1731 3 538 1285 1731 3 538 1285 1731 3 538 1285 1731 3 538 1285 1731 10 538 539 540 1285 1286 1512 1513 1731 1732 1765 10 538 539 540 1285 1286 1512 1513 1731 1732 1765 10 538 539 540 1285 1286 1512 1513 1731 1732 1765 10 538 539 540 1285 1286 1512 1513 1731 1732 1765 10 538 539 540 1285 1286 1512 1513 1731 1732 1765 10 538 539 540 1285 1286 1512 1513 1731 1732 1765 3 538 540 1513 3 538 540 1513 3 538 540 1513 3 538 540 1513 3 538 540 1513 3 538 540 1513 5 538 540 1069 1070 1513 5 538 540 1069 1070 1513 5 538 540 1069 1070 1513 5 538 540 1069 1070 1513 5 538 540 1069 1070 1513 5 538 540 1069 1070 1513 2 538 1069 2 538 1069 2 538 1069 2 538 1069 2 538 1069 2 538 1069 7 539 1391 1512 1765 1959 2212 3098 7 539 1391 1512 1765 1959 2212 3098 7 539 1391 1512 1765 1959 2212 3098 7 539 1391 1512 1765 1959 2212 3098 7 539 1391 1512 1765 1959 2212 3098 7 539 1391 1512 1765 1959 2212 3098 3 539 1391 3098 3 539 1391 3098 3 539 1391 3098 3 539 1391 3098 3 539 1391 3098 3 539 1391 3098 7 539 1391 1520 1766 1958 2204 3098 7 539 1391 1520 1766 1958 2204 3098 7 539 1391 1520 1766 1958 2204 3098 7 539 1391 1520 1766 1958 2204 3098 7 539 1391 1520 1766 1958 2204 3098 7 539 1391 1520 1766 1958 2204 3098 3 539 1520 1766 3 539 1520 1766 3 539 1520 1766 3 539 1520 1766 3 539 1520 1766 3 539 1520 1766 10 539 540 541 1286 1287 1520 1521 1732 1733 1766 10 539 540 541 1286 1287 1520 1521 1732 1733 1766 10 539 540 541 1286 1287 1520 1521 1732 1733 1766 10 539 540 541 1286 1287 1520 1521 1732 1733 1766 10 539 540 541 1286 1287 1520 1521 1732 1733 1766 10 539 540 541 1286 1287 1520 1521 1732 1733 1766 4 539 540 1286 1732 4 539 540 1286 1732 4 539 540 1286 1732 4 539 540 1286 1732 4 539 540 1286 1732 4 539 540 1286 1732 3 539 1512 1765 3 539 1512 1765 3 539 1512 1765 3 539 1512 1765 3 539 1512 1765 3 539 1512 1765 3 540 541 1521 3 540 541 1521 3 540 541 1521 3 540 541 1521 3 540 541 1521 3 540 541 1521 5 540 541 1070 1071 1521 5 540 541 1070 1071 1521 5 540 541 1070 1071 1521 5 540 541 1070 1071 1521 5 540 541 1070 1071 1521 5 540 541 1070 1071 1521 2 540 1070 2 540 1070 2 540 1070 2 540 1070 2 540 1070 2 540 1070 3 541 1287 1733 3 541 1287 1733 3 541 1287 1733 3 541 1287 1733 3 541 1287 1733 3 541 1287 1733 7 541 542 1287 1288 1527 1733 1734 7 541 542 1287 1288 1527 1733 1734 7 541 542 1287 1288 1527 1733 1734 7 541 542 1287 1288 1527 1733 1734 7 541 542 1287 1288 1527 1733 1734 7 541 542 1287 1288 1527 1733 1734 3 541 542 1527 3 541 542 1527 3 541 542 1527 3 541 542 1527 3 541 542 1527 3 541 542 1527 5 541 542 1071 1072 1527 5 541 542 1071 1072 1527 5 541 542 1071 1072 1527 5 541 542 1071 1072 1527 5 541 542 1071 1072 1527 5 541 542 1071 1072 1527 2 541 1071 2 541 1071 2 541 1071 2 541 1071 2 541 1071 2 541 1071 3 542 1288 1734 3 542 1288 1734 3 542 1288 1734 3 542 1288 1734 3 542 1288 1734 3 542 1288 1734 10 542 543 544 1288 1289 1536 1537 1734 1735 1767 10 542 543 544 1288 1289 1536 1537 1734 1735 1767 10 542 543 544 1288 1289 1536 1537 1734 1735 1767 10 542 543 544 1288 1289 1536 1537 1734 1735 1767 10 542 543 544 1288 1289 1536 1537 1734 1735 1767 10 542 543 544 1288 1289 1536 1537 1734 1735 1767 3 542 544 1537 3 542 544 1537 3 542 544 1537 3 542 544 1537 3 542 544 1537 3 542 544 1537 5 542 544 1072 1073 1537 5 542 544 1072 1073 1537 5 542 544 1072 1073 1537 5 542 544 1072 1073 1537 5 542 544 1072 1073 1537 5 542 544 1072 1073 1537 2 542 1072 2 542 1072 2 542 1072 2 542 1072 2 542 1072 2 542 1072 7 543 1392 1536 1767 1957 2188 3094 7 543 1392 1536 1767 1957 2188 3094 7 543 1392 1536 1767 1957 2188 3094 7 543 1392 1536 1767 1957 2188 3094 7 543 1392 1536 1767 1957 2188 3094 7 543 1392 1536 1767 1957 2188 3094 3 543 1392 3094 3 543 1392 3094 3 543 1392 3094 3 543 1392 3094 3 543 1392 3094 3 543 1392 3094 7 543 1392 1544 1768 1956 2180 3094 7 543 1392 1544 1768 1956 2180 3094 7 543 1392 1544 1768 1956 2180 3094 7 543 1392 1544 1768 1956 2180 3094 7 543 1392 1544 1768 1956 2180 3094 7 543 1392 1544 1768 1956 2180 3094 3 543 1544 1768 3 543 1544 1768 3 543 1544 1768 3 543 1544 1768 3 543 1544 1768 3 543 1544 1768 10 543 544 545 1289 1290 1544 1545 1735 1736 1768 10 543 544 545 1289 1290 1544 1545 1735 1736 1768 10 543 544 545 1289 1290 1544 1545 1735 1736 1768 10 543 544 545 1289 1290 1544 1545 1735 1736 1768 10 543 544 545 1289 1290 1544 1545 1735 1736 1768 10 543 544 545 1289 1290 1544 1545 1735 1736 1768 4 543 544 1289 1735 4 543 544 1289 1735 4 543 544 1289 1735 4 543 544 1289 1735 4 543 544 1289 1735 4 543 544 1289 1735 3 543 1536 1767 3 543 1536 1767 3 543 1536 1767 3 543 1536 1767 3 543 1536 1767 3 543 1536 1767 3 544 545 1545 3 544 545 1545 3 544 545 1545 3 544 545 1545 3 544 545 1545 3 544 545 1545 5 544 545 1073 1074 1545 5 544 545 1073 1074 1545 5 544 545 1073 1074 1545 5 544 545 1073 1074 1545 5 544 545 1073 1074 1545 5 544 545 1073 1074 1545 2 544 1073 2 544 1073 2 544 1073 2 544 1073 2 544 1073 2 544 1073 3 545 1290 1736 3 545 1290 1736 3 545 1290 1736 3 545 1290 1736 3 545 1290 1736 3 545 1290 1736 7 545 546 1290 1291 1551 1736 1737 7 545 546 1290 1291 1551 1736 1737 7 545 546 1290 1291 1551 1736 1737 7 545 546 1290 1291 1551 1736 1737 7 545 546 1290 1291 1551 1736 1737 7 545 546 1290 1291 1551 1736 1737 3 545 546 1551 3 545 546 1551 3 545 546 1551 3 545 546 1551 3 545 546 1551 3 545 546 1551 5 545 546 1074 1075 1551 5 545 546 1074 1075 1551 5 545 546 1074 1075 1551 5 545 546 1074 1075 1551 5 545 546 1074 1075 1551 5 545 546 1074 1075 1551 2 545 1074 2 545 1074 2 545 1074 2 545 1074 2 545 1074 2 545 1074 3 546 1291 1737 3 546 1291 1737 3 546 1291 1737 3 546 1291 1737 3 546 1291 1737 3 546 1291 1737 10 546 547 548 1291 1292 1558 1559 1737 1738 1769 10 546 547 548 1291 1292 1558 1559 1737 1738 1769 10 546 547 548 1291 1292 1558 1559 1737 1738 1769 10 546 547 548 1291 1292 1558 1559 1737 1738 1769 10 546 547 548 1291 1292 1558 1559 1737 1738 1769 10 546 547 548 1291 1292 1558 1559 1737 1738 1769 3 546 548 1559 3 546 548 1559 3 546 548 1559 3 546 548 1559 3 546 548 1559 3 546 548 1559 5 546 548 1075 1076 1559 5 546 548 1075 1076 1559 5 546 548 1075 1076 1559 5 546 548 1075 1076 1559 5 546 548 1075 1076 1559 5 546 548 1075 1076 1559 2 546 1075 2 546 1075 2 546 1075 2 546 1075 2 546 1075 2 546 1075 7 547 1393 1558 1769 1955 2166 3090 7 547 1393 1558 1769 1955 2166 3090 7 547 1393 1558 1769 1955 2166 3090 7 547 1393 1558 1769 1955 2166 3090 7 547 1393 1558 1769 1955 2166 3090 7 547 1393 1558 1769 1955 2166 3090 3 547 1393 3090 3 547 1393 3090 3 547 1393 3090 3 547 1393 3090 3 547 1393 3090 3 547 1393 3090 7 547 1393 1566 1770 1954 2158 3090 7 547 1393 1566 1770 1954 2158 3090 7 547 1393 1566 1770 1954 2158 3090 7 547 1393 1566 1770 1954 2158 3090 7 547 1393 1566 1770 1954 2158 3090 7 547 1393 1566 1770 1954 2158 3090 3 547 1566 1770 3 547 1566 1770 3 547 1566 1770 3 547 1566 1770 3 547 1566 1770 3 547 1566 1770 10 547 548 549 1292 1293 1566 1567 1738 1739 1770 10 547 548 549 1292 1293 1566 1567 1738 1739 1770 10 547 548 549 1292 1293 1566 1567 1738 1739 1770 10 547 548 549 1292 1293 1566 1567 1738 1739 1770 10 547 548 549 1292 1293 1566 1567 1738 1739 1770 10 547 548 549 1292 1293 1566 1567 1738 1739 1770 4 547 548 1292 1738 4 547 548 1292 1738 4 547 548 1292 1738 4 547 548 1292 1738 4 547 548 1292 1738 4 547 548 1292 1738 3 547 1558 1769 3 547 1558 1769 3 547 1558 1769 3 547 1558 1769 3 547 1558 1769 3 547 1558 1769 3 548 549 1567 3 548 549 1567 3 548 549 1567 3 548 549 1567 3 548 549 1567 3 548 549 1567 5 548 549 1076 1077 1567 5 548 549 1076 1077 1567 5 548 549 1076 1077 1567 5 548 549 1076 1077 1567 5 548 549 1076 1077 1567 5 548 549 1076 1077 1567 2 548 1076 2 548 1076 2 548 1076 2 548 1076 2 548 1076 2 548 1076 3 549 1293 1739 3 549 1293 1739 3 549 1293 1739 3 549 1293 1739 3 549 1293 1739 3 549 1293 1739 7 549 550 1293 1294 1573 1739 1740 7 549 550 1293 1294 1573 1739 1740 7 549 550 1293 1294 1573 1739 1740 7 549 550 1293 1294 1573 1739 1740 7 549 550 1293 1294 1573 1739 1740 7 549 550 1293 1294 1573 1739 1740 3 549 550 1573 3 549 550 1573 3 549 550 1573 3 549 550 1573 3 549 550 1573 3 549 550 1573 5 549 550 1077 1078 1573 5 549 550 1077 1078 1573 5 549 550 1077 1078 1573 5 549 550 1077 1078 1573 5 549 550 1077 1078 1573 5 549 550 1077 1078 1573 2 549 1077 2 549 1077 2 549 1077 2 549 1077 2 549 1077 2 549 1077 3 550 1294 1740 3 550 1294 1740 3 550 1294 1740 3 550 1294 1740 3 550 1294 1740 3 550 1294 1740 10 550 551 552 1294 1295 1582 1583 1740 1741 1771 10 550 551 552 1294 1295 1582 1583 1740 1741 1771 10 550 551 552 1294 1295 1582 1583 1740 1741 1771 10 550 551 552 1294 1295 1582 1583 1740 1741 1771 10 550 551 552 1294 1295 1582 1583 1740 1741 1771 10 550 551 552 1294 1295 1582 1583 1740 1741 1771 3 550 552 1583 3 550 552 1583 3 550 552 1583 3 550 552 1583 3 550 552 1583 3 550 552 1583 5 550 552 1078 1079 1583 5 550 552 1078 1079 1583 5 550 552 1078 1079 1583 5 550 552 1078 1079 1583 5 550 552 1078 1079 1583 5 550 552 1078 1079 1583 2 550 1078 2 550 1078 2 550 1078 2 550 1078 2 550 1078 2 550 1078 7 551 1394 1582 1771 1953 2142 3086 7 551 1394 1582 1771 1953 2142 3086 7 551 1394 1582 1771 1953 2142 3086 7 551 1394 1582 1771 1953 2142 3086 7 551 1394 1582 1771 1953 2142 3086 7 551 1394 1582 1771 1953 2142 3086 3 551 1394 3086 3 551 1394 3086 3 551 1394 3086 3 551 1394 3086 3 551 1394 3086 3 551 1394 3086 7 551 1394 1590 1772 1952 2134 3086 7 551 1394 1590 1772 1952 2134 3086 7 551 1394 1590 1772 1952 2134 3086 7 551 1394 1590 1772 1952 2134 3086 7 551 1394 1590 1772 1952 2134 3086 7 551 1394 1590 1772 1952 2134 3086 3 551 1590 1772 3 551 1590 1772 3 551 1590 1772 3 551 1590 1772 3 551 1590 1772 3 551 1590 1772 10 551 552 553 1295 1296 1590 1591 1741 1742 1772 10 551 552 553 1295 1296 1590 1591 1741 1742 1772 10 551 552 553 1295 1296 1590 1591 1741 1742 1772 10 551 552 553 1295 1296 1590 1591 1741 1742 1772 10 551 552 553 1295 1296 1590 1591 1741 1742 1772 10 551 552 553 1295 1296 1590 1591 1741 1742 1772 4 551 552 1295 1741 4 551 552 1295 1741 4 551 552 1295 1741 4 551 552 1295 1741 4 551 552 1295 1741 4 551 552 1295 1741 3 551 1582 1771 3 551 1582 1771 3 551 1582 1771 3 551 1582 1771 3 551 1582 1771 3 551 1582 1771 3 552 553 1591 3 552 553 1591 3 552 553 1591 3 552 553 1591 3 552 553 1591 3 552 553 1591 5 552 553 1079 1080 1591 5 552 553 1079 1080 1591 5 552 553 1079 1080 1591 5 552 553 1079 1080 1591 5 552 553 1079 1080 1591 5 552 553 1079 1080 1591 2 552 1079 2 552 1079 2 552 1079 2 552 1079 2 552 1079 2 552 1079 3 553 1296 1742 3 553 1296 1742 3 553 1296 1742 3 553 1296 1742 3 553 1296 1742 3 553 1296 1742 7 553 554 1296 1297 1597 1742 1743 7 553 554 1296 1297 1597 1742 1743 7 553 554 1296 1297 1597 1742 1743 7 553 554 1296 1297 1597 1742 1743 7 553 554 1296 1297 1597 1742 1743 7 553 554 1296 1297 1597 1742 1743 3 553 554 1597 3 553 554 1597 3 553 554 1597 3 553 554 1597 3 553 554 1597 3 553 554 1597 5 553 554 1080 1081 1597 5 553 554 1080 1081 1597 5 553 554 1080 1081 1597 5 553 554 1080 1081 1597 5 553 554 1080 1081 1597 5 553 554 1080 1081 1597 2 553 1080 2 553 1080 2 553 1080 2 553 1080 2 553 1080 2 553 1080 3 554 1297 1743 3 554 1297 1743 3 554 1297 1743 3 554 1297 1743 3 554 1297 1743 3 554 1297 1743 10 554 555 556 1297 1298 1604 1605 1743 1744 1773 10 554 555 556 1297 1298 1604 1605 1743 1744 1773 10 554 555 556 1297 1298 1604 1605 1743 1744 1773 10 554 555 556 1297 1298 1604 1605 1743 1744 1773 10 554 555 556 1297 1298 1604 1605 1743 1744 1773 10 554 555 556 1297 1298 1604 1605 1743 1744 1773 3 554 556 1605 3 554 556 1605 3 554 556 1605 3 554 556 1605 3 554 556 1605 3 554 556 1605 5 554 556 1081 1082 1605 5 554 556 1081 1082 1605 5 554 556 1081 1082 1605 5 554 556 1081 1082 1605 5 554 556 1081 1082 1605 5 554 556 1081 1082 1605 2 554 1081 2 554 1081 2 554 1081 2 554 1081 2 554 1081 2 554 1081 7 555 1395 1604 1773 1951 2120 3082 7 555 1395 1604 1773 1951 2120 3082 7 555 1395 1604 1773 1951 2120 3082 7 555 1395 1604 1773 1951 2120 3082 7 555 1395 1604 1773 1951 2120 3082 7 555 1395 1604 1773 1951 2120 3082 3 555 1395 3082 3 555 1395 3082 3 555 1395 3082 3 555 1395 3082 3 555 1395 3082 3 555 1395 3082 7 555 1395 1612 1774 1950 2112 3082 7 555 1395 1612 1774 1950 2112 3082 7 555 1395 1612 1774 1950 2112 3082 7 555 1395 1612 1774 1950 2112 3082 7 555 1395 1612 1774 1950 2112 3082 7 555 1395 1612 1774 1950 2112 3082 3 555 1612 1774 3 555 1612 1774 3 555 1612 1774 3 555 1612 1774 3 555 1612 1774 3 555 1612 1774 10 555 556 557 1298 1299 1612 1613 1744 1745 1774 10 555 556 557 1298 1299 1612 1613 1744 1745 1774 10 555 556 557 1298 1299 1612 1613 1744 1745 1774 10 555 556 557 1298 1299 1612 1613 1744 1745 1774 10 555 556 557 1298 1299 1612 1613 1744 1745 1774 10 555 556 557 1298 1299 1612 1613 1744 1745 1774 4 555 556 1298 1744 4 555 556 1298 1744 4 555 556 1298 1744 4 555 556 1298 1744 4 555 556 1298 1744 4 555 556 1298 1744 3 555 1604 1773 3 555 1604 1773 3 555 1604 1773 3 555 1604 1773 3 555 1604 1773 3 555 1604 1773 3 556 557 1613 3 556 557 1613 3 556 557 1613 3 556 557 1613 3 556 557 1613 3 556 557 1613 5 556 557 1082 1083 1613 5 556 557 1082 1083 1613 5 556 557 1082 1083 1613 5 556 557 1082 1083 1613 5 556 557 1082 1083 1613 5 556 557 1082 1083 1613 2 556 1082 2 556 1082 2 556 1082 2 556 1082 2 556 1082 2 556 1082 3 557 1299 1745 3 557 1299 1745 3 557 1299 1745 3 557 1299 1745 3 557 1299 1745 3 557 1299 1745 7 557 558 1299 1300 1619 1745 1746 7 557 558 1299 1300 1619 1745 1746 7 557 558 1299 1300 1619 1745 1746 7 557 558 1299 1300 1619 1745 1746 7 557 558 1299 1300 1619 1745 1746 7 557 558 1299 1300 1619 1745 1746 3 557 558 1619 3 557 558 1619 3 557 558 1619 3 557 558 1619 3 557 558 1619 3 557 558 1619 5 557 558 1083 1084 1619 5 557 558 1083 1084 1619 5 557 558 1083 1084 1619 5 557 558 1083 1084 1619 5 557 558 1083 1084 1619 5 557 558 1083 1084 1619 2 557 1083 2 557 1083 2 557 1083 2 557 1083 2 557 1083 2 557 1083 3 558 1300 1746 3 558 1300 1746 3 558 1300 1746 3 558 1300 1746 3 558 1300 1746 3 558 1300 1746 10 558 559 560 1300 1301 1628 1629 1746 1747 1775 10 558 559 560 1300 1301 1628 1629 1746 1747 1775 10 558 559 560 1300 1301 1628 1629 1746 1747 1775 10 558 559 560 1300 1301 1628 1629 1746 1747 1775 10 558 559 560 1300 1301 1628 1629 1746 1747 1775 10 558 559 560 1300 1301 1628 1629 1746 1747 1775 3 558 560 1629 3 558 560 1629 3 558 560 1629 3 558 560 1629 3 558 560 1629 3 558 560 1629 5 558 560 1084 1085 1629 5 558 560 1084 1085 1629 5 558 560 1084 1085 1629 5 558 560 1084 1085 1629 5 558 560 1084 1085 1629 5 558 560 1084 1085 1629 2 558 1084 2 558 1084 2 558 1084 2 558 1084 2 558 1084 2 558 1084 7 559 1396 1628 1775 1949 2096 3078 7 559 1396 1628 1775 1949 2096 3078 7 559 1396 1628 1775 1949 2096 3078 7 559 1396 1628 1775 1949 2096 3078 7 559 1396 1628 1775 1949 2096 3078 7 559 1396 1628 1775 1949 2096 3078 3 559 1396 3078 3 559 1396 3078 3 559 1396 3078 3 559 1396 3078 3 559 1396 3078 3 559 1396 3078 7 559 1396 1636 1776 1948 2088 3078 7 559 1396 1636 1776 1948 2088 3078 7 559 1396 1636 1776 1948 2088 3078 7 559 1396 1636 1776 1948 2088 3078 7 559 1396 1636 1776 1948 2088 3078 7 559 1396 1636 1776 1948 2088 3078 3 559 1636 1776 3 559 1636 1776 3 559 1636 1776 3 559 1636 1776 3 559 1636 1776 3 559 1636 1776 10 559 560 561 1301 1302 1636 1637 1747 1748 1776 10 559 560 561 1301 1302 1636 1637 1747 1748 1776 10 559 560 561 1301 1302 1636 1637 1747 1748 1776 10 559 560 561 1301 1302 1636 1637 1747 1748 1776 10 559 560 561 1301 1302 1636 1637 1747 1748 1776 10 559 560 561 1301 1302 1636 1637 1747 1748 1776 4 559 560 1301 1747 4 559 560 1301 1747 4 559 560 1301 1747 4 559 560 1301 1747 4 559 560 1301 1747 4 559 560 1301 1747 3 559 1628 1775 3 559 1628 1775 3 559 1628 1775 3 559 1628 1775 3 559 1628 1775 3 559 1628 1775 3 560 561 1637 3 560 561 1637 3 560 561 1637 3 560 561 1637 3 560 561 1637 3 560 561 1637 5 560 561 1085 1086 1637 5 560 561 1085 1086 1637 5 560 561 1085 1086 1637 5 560 561 1085 1086 1637 5 560 561 1085 1086 1637 5 560 561 1085 1086 1637 2 560 1085 2 560 1085 2 560 1085 2 560 1085 2 560 1085 2 560 1085 3 561 1302 1748 3 561 1302 1748 3 561 1302 1748 3 561 1302 1748 3 561 1302 1748 3 561 1302 1748 7 561 562 1302 1303 1643 1748 1749 7 561 562 1302 1303 1643 1748 1749 7 561 562 1302 1303 1643 1748 1749 7 561 562 1302 1303 1643 1748 1749 7 561 562 1302 1303 1643 1748 1749 7 561 562 1302 1303 1643 1748 1749 3 561 562 1643 3 561 562 1643 3 561 562 1643 3 561 562 1643 3 561 562 1643 3 561 562 1643 5 561 562 1086 1087 1643 5 561 562 1086 1087 1643 5 561 562 1086 1087 1643 5 561 562 1086 1087 1643 5 561 562 1086 1087 1643 5 561 562 1086 1087 1643 2 561 1086 2 561 1086 2 561 1086 2 561 1086 2 561 1086 2 561 1086 3 562 1303 1749 3 562 1303 1749 3 562 1303 1749 3 562 1303 1749 3 562 1303 1749 3 562 1303 1749 10 562 563 564 1303 1304 1650 1651 1749 1750 1777 10 562 563 564 1303 1304 1650 1651 1749 1750 1777 10 562 563 564 1303 1304 1650 1651 1749 1750 1777 10 562 563 564 1303 1304 1650 1651 1749 1750 1777 10 562 563 564 1303 1304 1650 1651 1749 1750 1777 10 562 563 564 1303 1304 1650 1651 1749 1750 1777 3 562 564 1651 3 562 564 1651 3 562 564 1651 3 562 564 1651 3 562 564 1651 3 562 564 1651 5 562 564 1087 1088 1651 5 562 564 1087 1088 1651 5 562 564 1087 1088 1651 5 562 564 1087 1088 1651 5 562 564 1087 1088 1651 5 562 564 1087 1088 1651 2 562 1087 2 562 1087 2 562 1087 2 562 1087 2 562 1087 2 562 1087 7 563 1397 1650 1777 1947 2074 3074 7 563 1397 1650 1777 1947 2074 3074 7 563 1397 1650 1777 1947 2074 3074 7 563 1397 1650 1777 1947 2074 3074 7 563 1397 1650 1777 1947 2074 3074 7 563 1397 1650 1777 1947 2074 3074 3 563 1397 3074 3 563 1397 3074 3 563 1397 3074 3 563 1397 3074 3 563 1397 3074 3 563 1397 3074 7 563 1397 1658 1778 1946 2066 3074 7 563 1397 1658 1778 1946 2066 3074 7 563 1397 1658 1778 1946 2066 3074 7 563 1397 1658 1778 1946 2066 3074 7 563 1397 1658 1778 1946 2066 3074 7 563 1397 1658 1778 1946 2066 3074 3 563 1658 1778 3 563 1658 1778 3 563 1658 1778 3 563 1658 1778 3 563 1658 1778 3 563 1658 1778 10 563 564 565 1304 1305 1658 1659 1750 1751 1778 10 563 564 565 1304 1305 1658 1659 1750 1751 1778 10 563 564 565 1304 1305 1658 1659 1750 1751 1778 10 563 564 565 1304 1305 1658 1659 1750 1751 1778 10 563 564 565 1304 1305 1658 1659 1750 1751 1778 10 563 564 565 1304 1305 1658 1659 1750 1751 1778 4 563 564 1304 1750 4 563 564 1304 1750 4 563 564 1304 1750 4 563 564 1304 1750 4 563 564 1304 1750 4 563 564 1304 1750 3 563 1650 1777 3 563 1650 1777 3 563 1650 1777 3 563 1650 1777 3 563 1650 1777 3 563 1650 1777 3 564 565 1659 3 564 565 1659 3 564 565 1659 3 564 565 1659 3 564 565 1659 3 564 565 1659 5 564 565 1088 1089 1659 5 564 565 1088 1089 1659 5 564 565 1088 1089 1659 5 564 565 1088 1089 1659 5 564 565 1088 1089 1659 5 564 565 1088 1089 1659 2 564 1088 2 564 1088 2 564 1088 2 564 1088 2 564 1088 2 564 1088 3 565 1305 1751 3 565 1305 1751 3 565 1305 1751 3 565 1305 1751 3 565 1305 1751 3 565 1305 1751 7 565 566 1305 1306 1665 1751 1752 7 565 566 1305 1306 1665 1751 1752 7 565 566 1305 1306 1665 1751 1752 7 565 566 1305 1306 1665 1751 1752 7 565 566 1305 1306 1665 1751 1752 7 565 566 1305 1306 1665 1751 1752 3 565 566 1665 3 565 566 1665 3 565 566 1665 3 565 566 1665 3 565 566 1665 3 565 566 1665 5 565 566 1089 1090 1665 5 565 566 1089 1090 1665 5 565 566 1089 1090 1665 5 565 566 1089 1090 1665 5 565 566 1089 1090 1665 5 565 566 1089 1090 1665 2 565 1089 2 565 1089 2 565 1089 2 565 1089 2 565 1089 2 565 1089 3 566 1306 1752 3 566 1306 1752 3 566 1306 1752 3 566 1306 1752 3 566 1306 1752 3 566 1306 1752 10 566 567 568 1306 1307 1674 1675 1752 1753 1779 10 566 567 568 1306 1307 1674 1675 1752 1753 1779 10 566 567 568 1306 1307 1674 1675 1752 1753 1779 10 566 567 568 1306 1307 1674 1675 1752 1753 1779 10 566 567 568 1306 1307 1674 1675 1752 1753 1779 10 566 567 568 1306 1307 1674 1675 1752 1753 1779 3 566 568 1675 3 566 568 1675 3 566 568 1675 3 566 568 1675 3 566 568 1675 3 566 568 1675 5 566 568 1090 1091 1675 5 566 568 1090 1091 1675 5 566 568 1090 1091 1675 5 566 568 1090 1091 1675 5 566 568 1090 1091 1675 5 566 568 1090 1091 1675 2 566 1090 2 566 1090 2 566 1090 2 566 1090 2 566 1090 2 566 1090 7 567 1398 1674 1779 1945 2050 3070 7 567 1398 1674 1779 1945 2050 3070 7 567 1398 1674 1779 1945 2050 3070 7 567 1398 1674 1779 1945 2050 3070 7 567 1398 1674 1779 1945 2050 3070 7 567 1398 1674 1779 1945 2050 3070 3 567 1398 3070 3 567 1398 3070 3 567 1398 3070 3 567 1398 3070 3 567 1398 3070 3 567 1398 3070 7 567 1398 1682 1780 1944 2042 3070 7 567 1398 1682 1780 1944 2042 3070 7 567 1398 1682 1780 1944 2042 3070 7 567 1398 1682 1780 1944 2042 3070 7 567 1398 1682 1780 1944 2042 3070 7 567 1398 1682 1780 1944 2042 3070 3 567 1682 1780 3 567 1682 1780 3 567 1682 1780 3 567 1682 1780 3 567 1682 1780 3 567 1682 1780 10 567 568 569 1307 1308 1682 1683 1753 1754 1780 10 567 568 569 1307 1308 1682 1683 1753 1754 1780 10 567 568 569 1307 1308 1682 1683 1753 1754 1780 10 567 568 569 1307 1308 1682 1683 1753 1754 1780 10 567 568 569 1307 1308 1682 1683 1753 1754 1780 10 567 568 569 1307 1308 1682 1683 1753 1754 1780 4 567 568 1307 1753 4 567 568 1307 1753 4 567 568 1307 1753 4 567 568 1307 1753 4 567 568 1307 1753 4 567 568 1307 1753 3 567 1674 1779 3 567 1674 1779 3 567 1674 1779 3 567 1674 1779 3 567 1674 1779 3 567 1674 1779 3 568 569 1683 3 568 569 1683 3 568 569 1683 3 568 569 1683 3 568 569 1683 3 568 569 1683 5 568 569 1091 1092 1683 5 568 569 1091 1092 1683 5 568 569 1091 1092 1683 5 568 569 1091 1092 1683 5 568 569 1091 1092 1683 5 568 569 1091 1092 1683 2 568 1091 2 568 1091 2 568 1091 2 568 1091 2 568 1091 2 568 1091 3 569 1308 1754 3 569 1308 1754 3 569 1308 1754 3 569 1308 1754 3 569 1308 1754 3 569 1308 1754 7 569 570 1308 1309 1689 1754 1755 7 569 570 1308 1309 1689 1754 1755 7 569 570 1308 1309 1689 1754 1755 7 569 570 1308 1309 1689 1754 1755 7 569 570 1308 1309 1689 1754 1755 7 569 570 1308 1309 1689 1754 1755 3 569 570 1689 3 569 570 1689 3 569 570 1689 3 569 570 1689 3 569 570 1689 3 569 570 1689 5 569 570 1092 1093 1689 5 569 570 1092 1093 1689 5 569 570 1092 1093 1689 5 569 570 1092 1093 1689 5 569 570 1092 1093 1689 5 569 570 1092 1093 1689 2 569 1092 2 569 1092 2 569 1092 2 569 1092 2 569 1092 2 569 1092 3 570 1309 1755 3 570 1309 1755 3 570 1309 1755 3 570 1309 1755 3 570 1309 1755 3 570 1309 1755 10 570 571 572 1309 1310 1698 1699 1755 1756 1781 10 570 571 572 1309 1310 1698 1699 1755 1756 1781 10 570 571 572 1309 1310 1698 1699 1755 1756 1781 10 570 571 572 1309 1310 1698 1699 1755 1756 1781 10 570 571 572 1309 1310 1698 1699 1755 1756 1781 10 570 571 572 1309 1310 1698 1699 1755 1756 1781 3 570 572 1699 3 570 572 1699 3 570 572 1699 3 570 572 1699 3 570 572 1699 3 570 572 1699 5 570 572 1093 1094 1699 5 570 572 1093 1094 1699 5 570 572 1093 1094 1699 5 570 572 1093 1094 1699 5 570 572 1093 1094 1699 5 570 572 1093 1094 1699 2 570 1093 2 570 1093 2 570 1093 2 570 1093 2 570 1093 2 570 1093 7 571 1399 1698 1781 1943 2026 3066 7 571 1399 1698 1781 1943 2026 3066 7 571 1399 1698 1781 1943 2026 3066 7 571 1399 1698 1781 1943 2026 3066 7 571 1399 1698 1781 1943 2026 3066 7 571 1399 1698 1781 1943 2026 3066 3 571 1399 3066 3 571 1399 3066 3 571 1399 3066 3 571 1399 3066 3 571 1399 3066 3 571 1399 3066 7 571 1399 1708 1782 1942 2016 3066 7 571 1399 1708 1782 1942 2016 3066 7 571 1399 1708 1782 1942 2016 3066 7 571 1399 1708 1782 1942 2016 3066 7 571 1399 1708 1782 1942 2016 3066 7 571 1399 1708 1782 1942 2016 3066 3 571 1708 1782 3 571 1708 1782 3 571 1708 1782 3 571 1708 1782 3 571 1708 1782 3 571 1708 1782 10 571 572 573 1310 1311 1708 1709 1756 1757 1782 10 571 572 573 1310 1311 1708 1709 1756 1757 1782 10 571 572 573 1310 1311 1708 1709 1756 1757 1782 10 571 572 573 1310 1311 1708 1709 1756 1757 1782 10 571 572 573 1310 1311 1708 1709 1756 1757 1782 10 571 572 573 1310 1311 1708 1709 1756 1757 1782 4 571 572 1310 1756 4 571 572 1310 1756 4 571 572 1310 1756 4 571 572 1310 1756 4 571 572 1310 1756 4 571 572 1310 1756 3 571 1698 1781 3 571 1698 1781 3 571 1698 1781 3 571 1698 1781 3 571 1698 1781 3 571 1698 1781 3 572 573 1709 3 572 573 1709 3 572 573 1709 3 572 573 1709 3 572 573 1709 3 572 573 1709 5 572 573 1094 1095 1709 5 572 573 1094 1095 1709 5 572 573 1094 1095 1709 5 572 573 1094 1095 1709 5 572 573 1094 1095 1709 5 572 573 1094 1095 1709 2 572 1094 2 572 1094 2 572 1094 2 572 1094 2 572 1094 2 572 1094 3 573 1311 1757 3 573 1311 1757 3 573 1311 1757 3 573 1311 1757 3 573 1311 1757 3 573 1311 1757 7 573 574 1311 1312 1715 1757 1758 7 573 574 1311 1312 1715 1757 1758 7 573 574 1311 1312 1715 1757 1758 7 573 574 1311 1312 1715 1757 1758 7 573 574 1311 1312 1715 1757 1758 7 573 574 1311 1312 1715 1757 1758 3 573 574 1715 3 573 574 1715 3 573 574 1715 3 573 574 1715 3 573 574 1715 3 573 574 1715 6 573 574 1095 1096 1097 1715 6 573 574 1095 1096 1097 1715 6 573 574 1095 1096 1097 1715 6 573 574 1095 1096 1097 1715 6 573 574 1095 1096 1097 1715 6 573 574 1095 1096 1097 1715 2 573 1095 2 573 1095 2 573 1095 2 573 1095 2 573 1095 2 573 1095 3 574 1312 1758 3 574 1312 1758 3 574 1312 1758 3 574 1312 1758 3 574 1312 1758 3 574 1312 1758 3 574 1096 1097 3 574 1096 1097 3 574 1096 1097 3 574 1096 1097 3 574 1096 1097 3 574 1096 1097 3 575 1227 1270 3 575 1227 1270 3 575 1227 1270 3 575 1227 1270 3 575 1227 1270 3 575 1227 1270 11 575 576 583 585 1227 1228 1270 1271 1405 1406 1407 11 575 576 583 585 1227 1228 1270 1271 1405 1406 1407 11 575 576 583 585 1227 1228 1270 1271 1405 1406 1407 11 575 576 583 585 1227 1228 1270 1271 1405 1406 1407 11 575 576 583 585 1227 1228 1270 1271 1405 1406 1407 11 575 576 583 585 1227 1228 1270 1271 1405 1406 1407 4 575 576 1405 1407 4 575 576 1405 1407 4 575 576 1405 1407 4 575 576 1405 1407 4 575 576 1405 1407 4 575 576 1405 1407 8 575 576 1011 1012 1054 1055 1405 1407 8 575 576 1011 1012 1054 1055 1405 1407 8 575 576 1011 1012 1054 1055 1405 1407 8 575 576 1011 1012 1054 1055 1405 1407 8 575 576 1011 1012 1054 1055 1405 1407 8 575 576 1011 1012 1054 1055 1405 1407 3 575 1011 1054 3 575 1011 1054 3 575 1011 1054 3 575 1011 1054 3 575 1011 1054 3 575 1011 1054 4 576 583 1228 1271 4 576 583 1228 1271 4 576 583 1228 1271 4 576 583 1228 1271 4 576 583 1228 1271 4 576 583 1228 1271 10 576 578 580 583 1228 1229 1271 1272 1412 1413 10 576 578 580 583 1228 1229 1271 1272 1412 1413 10 576 578 580 583 1228 1229 1271 1272 1412 1413 10 576 578 580 583 1228 1229 1271 1272 1412 1413 10 576 578 580 583 1228 1229 1271 1272 1412 1413 10 576 578 580 583 1228 1229 1271 1272 1412 1413 4 576 578 1412 1413 4 576 578 1412 1413 4 576 578 1412 1413 4 576 578 1412 1413 4 576 578 1412 1413 4 576 578 1412 1413 8 576 578 1012 1013 1055 1056 1412 1413 8 576 578 1012 1013 1055 1056 1412 1413 8 576 578 1012 1013 1055 1056 1412 1413 8 576 578 1012 1013 1055 1056 1412 1413 8 576 578 1012 1013 1055 1056 1412 1413 8 576 578 1012 1013 1055 1056 1412 1413 3 576 1012 1055 3 576 1012 1055 3 576 1012 1055 3 576 1012 1055 3 576 1012 1055 3 576 1012 1055 10 577 578 579 580 1229 1230 1272 1273 1418 1419 10 577 578 579 580 1229 1230 1272 1273 1418 1419 10 577 578 579 580 1229 1230 1272 1273 1418 1419 10 577 578 579 580 1229 1230 1272 1273 1418 1419 10 577 578 579 580 1229 1230 1272 1273 1418 1419 10 577 578 579 580 1229 1230 1272 1273 1418 1419 4 577 579 1230 1273 4 577 579 1230 1273 4 577 579 1230 1273 4 577 579 1230 1273 4 577 579 1230 1273 4 577 579 1230 1273 10 577 579 581 1230 1231 1273 1274 1424 1425 1858 10 577 579 581 1230 1231 1273 1274 1424 1425 1858 10 577 579 581 1230 1231 1273 1274 1424 1425 1858 10 577 579 581 1230 1231 1273 1274 1424 1425 1858 10 577 579 581 1230 1231 1273 1274 1424 1425 1858 10 577 579 581 1230 1231 1273 1274 1424 1425 1858 2 577 580 2 577 580 2 577 580 2 577 580 2 577 580 2 577 580 1 577 1 577 1 577 1 577 1 577 1 577 2 577 1858 2 577 1858 2 577 1858 2 577 1858 2 577 1858 2 577 1858 4 578 580 1229 1272 4 578 580 1229 1272 4 578 580 1229 1272 4 578 580 1229 1272 4 578 580 1229 1272 4 578 580 1229 1272 4 578 579 1418 1419 4 578 579 1418 1419 4 578 579 1418 1419 4 578 579 1418 1419 4 578 579 1418 1419 4 578 579 1418 1419 8 578 579 1013 1014 1056 1057 1418 1419 8 578 579 1013 1014 1056 1057 1418 1419 8 578 579 1013 1014 1056 1057 1418 1419 8 578 579 1013 1014 1056 1057 1418 1419 8 578 579 1013 1014 1056 1057 1418 1419 8 578 579 1013 1014 1056 1057 1418 1419 3 578 1013 1056 3 578 1013 1056 3 578 1013 1056 3 578 1013 1056 3 578 1013 1056 3 578 1013 1056 4 579 581 1424 1425 4 579 581 1424 1425 4 579 581 1424 1425 4 579 581 1424 1425 4 579 581 1424 1425 4 579 581 1424 1425 8 579 581 1014 1015 1057 1058 1424 1425 8 579 581 1014 1015 1057 1058 1424 1425 8 579 581 1014 1015 1057 1058 1424 1425 8 579 581 1014 1015 1057 1058 1424 1425 8 579 581 1014 1015 1057 1058 1424 1425 8 579 581 1014 1015 1057 1058 1424 1425 3 579 1014 1057 3 579 1014 1057 3 579 1014 1057 3 579 1014 1057 3 579 1014 1057 3 579 1014 1057 2 580 583 2 580 583 2 580 583 2 580 583 2 580 583 2 580 583 1 580 1 580 1 580 1 580 1 580 1 580 4 581 1231 1274 1858 4 581 1231 1274 1858 4 581 1231 1274 1858 4 581 1231 1274 1858 4 581 1231 1274 1858 4 581 1231 1274 1858 10 581 582 1231 1232 1274 1275 1430 1431 1858 1859 10 581 582 1231 1232 1274 1275 1430 1431 1858 1859 10 581 582 1231 1232 1274 1275 1430 1431 1858 1859 10 581 582 1231 1232 1274 1275 1430 1431 1858 1859 10 581 582 1231 1232 1274 1275 1430 1431 1858 1859 10 581 582 1231 1232 1274 1275 1430 1431 1858 1859 4 581 582 1430 1431 4 581 582 1430 1431 4 581 582 1430 1431 4 581 582 1430 1431 4 581 582 1430 1431 4 581 582 1430 1431 8 581 582 1015 1016 1058 1059 1430 1431 8 581 582 1015 1016 1058 1059 1430 1431 8 581 582 1015 1016 1058 1059 1430 1431 8 581 582 1015 1016 1058 1059 1430 1431 8 581 582 1015 1016 1058 1059 1430 1431 8 581 582 1015 1016 1058 1059 1430 1431 3 581 1015 1058 3 581 1015 1058 3 581 1015 1058 3 581 1015 1058 3 581 1015 1058 3 581 1015 1058 4 582 1232 1275 1859 4 582 1232 1275 1859 4 582 1232 1275 1859 4 582 1232 1275 1859 4 582 1232 1275 1859 4 582 1232 1275 1859 10 582 584 1232 1233 1275 1276 1436 1437 1859 1860 10 582 584 1232 1233 1275 1276 1436 1437 1859 1860 10 582 584 1232 1233 1275 1276 1436 1437 1859 1860 10 582 584 1232 1233 1275 1276 1436 1437 1859 1860 10 582 584 1232 1233 1275 1276 1436 1437 1859 1860 10 582 584 1232 1233 1275 1276 1436 1437 1859 1860 4 582 584 1436 1437 4 582 584 1436 1437 4 582 584 1436 1437 4 582 584 1436 1437 4 582 584 1436 1437 4 582 584 1436 1437 8 582 584 1016 1017 1059 1060 1436 1437 8 582 584 1016 1017 1059 1060 1436 1437 8 582 584 1016 1017 1059 1060 1436 1437 8 582 584 1016 1017 1059 1060 1436 1437 8 582 584 1016 1017 1059 1060 1436 1437 8 582 584 1016 1017 1059 1060 1436 1437 3 582 1016 1059 3 582 1016 1059 3 582 1016 1059 3 582 1016 1059 3 582 1016 1059 3 582 1016 1059 2 583 585 2 583 585 2 583 585 2 583 585 2 583 585 2 583 585 4 584 1233 1276 1860 4 584 1233 1276 1860 4 584 1233 1276 1860 4 584 1233 1276 1860 4 584 1233 1276 1860 4 584 1233 1276 1860 10 584 586 1233 1234 1276 1277 1442 1443 1860 1862 10 584 586 1233 1234 1276 1277 1442 1443 1860 1862 10 584 586 1233 1234 1276 1277 1442 1443 1860 1862 10 584 586 1233 1234 1276 1277 1442 1443 1860 1862 10 584 586 1233 1234 1276 1277 1442 1443 1860 1862 10 584 586 1233 1234 1276 1277 1442 1443 1860 1862 4 584 586 1442 1443 4 584 586 1442 1443 4 584 586 1442 1443 4 584 586 1442 1443 4 584 586 1442 1443 4 584 586 1442 1443 8 584 586 1017 1018 1060 1061 1442 1443 8 584 586 1017 1018 1060 1061 1442 1443 8 584 586 1017 1018 1060 1061 1442 1443 8 584 586 1017 1018 1060 1061 1442 1443 8 584 586 1017 1018 1060 1061 1442 1443 8 584 586 1017 1018 1060 1061 1442 1443 3 584 1017 1060 3 584 1017 1060 3 584 1017 1060 3 584 1017 1060 3 584 1017 1060 3 584 1017 1060 4 585 1406 2318 3052 4 585 1406 2318 3052 4 585 1406 2318 3052 4 585 1406 2318 3052 4 585 1406 2318 3052 4 585 1406 2318 3052 2 585 1406 2 585 1406 2 585 1406 2 585 1406 2 585 1406 2 585 1406 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 2 585 3052 1 585 1 585 1 585 1 585 1 585 1 585 4 586 1234 1277 1862 4 586 1234 1277 1862 4 586 1234 1277 1862 4 586 1234 1277 1862 4 586 1234 1277 1862 4 586 1234 1277 1862 11 586 587 1234 1235 1277 1278 1449 1450 1451 1861 1862 11 586 587 1234 1235 1277 1278 1449 1450 1451 1861 1862 11 586 587 1234 1235 1277 1278 1449 1450 1451 1861 1862 11 586 587 1234 1235 1277 1278 1449 1450 1451 1861 1862 11 586 587 1234 1235 1277 1278 1449 1450 1451 1861 1862 11 586 587 1234 1235 1277 1278 1449 1450 1451 1861 1862 4 586 587 1449 1451 4 586 587 1449 1451 4 586 587 1449 1451 4 586 587 1449 1451 4 586 587 1449 1451 4 586 587 1449 1451 8 586 587 1018 1019 1061 1062 1449 1451 8 586 587 1018 1019 1061 1062 1449 1451 8 586 587 1018 1019 1061 1062 1449 1451 8 586 587 1018 1019 1061 1062 1449 1451 8 586 587 1018 1019 1061 1062 1449 1451 8 586 587 1018 1019 1061 1062 1449 1451 3 586 1018 1061 3 586 1018 1061 3 586 1018 1061 3 586 1018 1061 3 586 1018 1061 3 586 1018 1061 3 587 1235 1278 3 587 1235 1278 3 587 1235 1278 3 587 1235 1278 3 587 1235 1278 3 587 1235 1278 8 587 588 1235 1236 1278 1279 1456 1457 8 587 588 1235 1236 1278 1279 1456 1457 8 587 588 1235 1236 1278 1279 1456 1457 8 587 588 1235 1236 1278 1279 1456 1457 8 587 588 1235 1236 1278 1279 1456 1457 8 587 588 1235 1236 1278 1279 1456 1457 4 587 588 1456 1457 4 587 588 1456 1457 4 587 588 1456 1457 4 587 588 1456 1457 4 587 588 1456 1457 4 587 588 1456 1457 8 587 588 1019 1020 1062 1063 1456 1457 8 587 588 1019 1020 1062 1063 1456 1457 8 587 588 1019 1020 1062 1063 1456 1457 8 587 588 1019 1020 1062 1063 1456 1457 8 587 588 1019 1020 1062 1063 1456 1457 8 587 588 1019 1020 1062 1063 1456 1457 3 587 1019 1062 3 587 1019 1062 3 587 1019 1062 3 587 1019 1062 3 587 1019 1062 3 587 1019 1062 3 588 1236 1279 3 588 1236 1279 3 588 1236 1279 3 588 1236 1279 3 588 1236 1279 3 588 1236 1279 10 588 589 590 1236 1237 1279 1280 1463 1464 1465 10 588 589 590 1236 1237 1279 1280 1463 1464 1465 10 588 589 590 1236 1237 1279 1280 1463 1464 1465 10 588 589 590 1236 1237 1279 1280 1463 1464 1465 10 588 589 590 1236 1237 1279 1280 1463 1464 1465 10 588 589 590 1236 1237 1279 1280 1463 1464 1465 4 588 590 1463 1465 4 588 590 1463 1465 4 588 590 1463 1465 4 588 590 1463 1465 4 588 590 1463 1465 4 588 590 1463 1465 8 588 590 1020 1021 1063 1064 1463 1465 8 588 590 1020 1021 1063 1064 1463 1465 8 588 590 1020 1021 1063 1064 1463 1465 8 588 590 1020 1021 1063 1064 1463 1465 8 588 590 1020 1021 1063 1064 1463 1465 8 588 590 1020 1021 1063 1064 1463 1465 3 588 1020 1063 3 588 1020 1063 3 588 1020 1063 3 588 1020 1063 3 588 1020 1063 3 588 1020 1063 6 589 1378 1389 1464 2260 3048 6 589 1378 1389 1464 2260 3048 6 589 1378 1389 1464 2260 3048 6 589 1378 1389 1464 2260 3048 6 589 1378 1389 1464 2260 3048 6 589 1378 1389 1464 2260 3048 4 589 1378 1389 3048 4 589 1378 1389 3048 4 589 1378 1389 3048 4 589 1378 1389 3048 4 589 1378 1389 3048 4 589 1378 1389 3048 6 589 1378 1389 1472 2252 3048 6 589 1378 1389 1472 2252 3048 6 589 1378 1389 1472 2252 3048 6 589 1378 1389 1472 2252 3048 6 589 1378 1389 1472 2252 3048 6 589 1378 1389 1472 2252 3048 2 589 1472 2 589 1472 2 589 1472 2 589 1472 2 589 1472 2 589 1472 10 589 590 591 1237 1238 1280 1281 1471 1472 1473 10 589 590 591 1237 1238 1280 1281 1471 1472 1473 10 589 590 591 1237 1238 1280 1281 1471 1472 1473 10 589 590 591 1237 1238 1280 1281 1471 1472 1473 10 589 590 591 1237 1238 1280 1281 1471 1472 1473 10 589 590 591 1237 1238 1280 1281 1471 1472 1473 4 589 590 1237 1280 4 589 590 1237 1280 4 589 590 1237 1280 4 589 590 1237 1280 4 589 590 1237 1280 4 589 590 1237 1280 2 589 1464 2 589 1464 2 589 1464 2 589 1464 2 589 1464 2 589 1464 4 590 591 1471 1473 4 590 591 1471 1473 4 590 591 1471 1473 4 590 591 1471 1473 4 590 591 1471 1473 4 590 591 1471 1473 8 590 591 1021 1022 1064 1065 1471 1473 8 590 591 1021 1022 1064 1065 1471 1473 8 590 591 1021 1022 1064 1065 1471 1473 8 590 591 1021 1022 1064 1065 1471 1473 8 590 591 1021 1022 1064 1065 1471 1473 8 590 591 1021 1022 1064 1065 1471 1473 3 590 1021 1064 3 590 1021 1064 3 590 1021 1064 3 590 1021 1064 3 590 1021 1064 3 590 1021 1064 3 591 1238 1281 3 591 1238 1281 3 591 1238 1281 3 591 1238 1281 3 591 1238 1281 3 591 1238 1281 8 591 592 1238 1239 1281 1282 1478 1479 8 591 592 1238 1239 1281 1282 1478 1479 8 591 592 1238 1239 1281 1282 1478 1479 8 591 592 1238 1239 1281 1282 1478 1479 8 591 592 1238 1239 1281 1282 1478 1479 8 591 592 1238 1239 1281 1282 1478 1479 4 591 592 1478 1479 4 591 592 1478 1479 4 591 592 1478 1479 4 591 592 1478 1479 4 591 592 1478 1479 4 591 592 1478 1479 8 591 592 1022 1023 1065 1066 1478 1479 8 591 592 1022 1023 1065 1066 1478 1479 8 591 592 1022 1023 1065 1066 1478 1479 8 591 592 1022 1023 1065 1066 1478 1479 8 591 592 1022 1023 1065 1066 1478 1479 8 591 592 1022 1023 1065 1066 1478 1479 3 591 1022 1065 3 591 1022 1065 3 591 1022 1065 3 591 1022 1065 3 591 1022 1065 3 591 1022 1065 3 592 1239 1282 3 592 1239 1282 3 592 1239 1282 3 592 1239 1282 3 592 1239 1282 3 592 1239 1282 11 592 593 594 1239 1240 1282 1283 1486 1487 1488 1489 11 592 593 594 1239 1240 1282 1283 1486 1487 1488 1489 11 592 593 594 1239 1240 1282 1283 1486 1487 1488 1489 11 592 593 594 1239 1240 1282 1283 1486 1487 1488 1489 11 592 593 594 1239 1240 1282 1283 1486 1487 1488 1489 11 592 593 594 1239 1240 1282 1283 1486 1487 1488 1489 4 592 594 1487 1489 4 592 594 1487 1489 4 592 594 1487 1489 4 592 594 1487 1489 4 592 594 1487 1489 4 592 594 1487 1489 8 592 594 1023 1024 1066 1067 1487 1489 8 592 594 1023 1024 1066 1067 1487 1489 8 592 594 1023 1024 1066 1067 1487 1489 8 592 594 1023 1024 1066 1067 1487 1489 8 592 594 1023 1024 1066 1067 1487 1489 8 592 594 1023 1024 1066 1067 1487 1489 3 592 1023 1066 3 592 1023 1066 3 592 1023 1066 3 592 1023 1066 3 592 1023 1066 3 592 1023 1066 8 593 1379 1390 1486 1488 2236 2238 3044 8 593 1379 1390 1486 1488 2236 2238 3044 8 593 1379 1390 1486 1488 2236 2238 3044 8 593 1379 1390 1486 1488 2236 2238 3044 8 593 1379 1390 1486 1488 2236 2238 3044 8 593 1379 1390 1486 1488 2236 2238 3044 4 593 1379 1390 3044 4 593 1379 1390 3044 4 593 1379 1390 3044 4 593 1379 1390 3044 4 593 1379 1390 3044 4 593 1379 1390 3044 8 593 1379 1390 1496 1498 2226 2228 3044 8 593 1379 1390 1496 1498 2226 2228 3044 8 593 1379 1390 1496 1498 2226 2228 3044 8 593 1379 1390 1496 1498 2226 2228 3044 8 593 1379 1390 1496 1498 2226 2228 3044 8 593 1379 1390 1496 1498 2226 2228 3044 3 593 1496 1498 3 593 1496 1498 3 593 1496 1498 3 593 1496 1498 3 593 1496 1498 3 593 1496 1498 11 593 594 595 1240 1241 1283 1284 1496 1497 1498 1499 11 593 594 595 1240 1241 1283 1284 1496 1497 1498 1499 11 593 594 595 1240 1241 1283 1284 1496 1497 1498 1499 11 593 594 595 1240 1241 1283 1284 1496 1497 1498 1499 11 593 594 595 1240 1241 1283 1284 1496 1497 1498 1499 11 593 594 595 1240 1241 1283 1284 1496 1497 1498 1499 4 593 594 1240 1283 4 593 594 1240 1283 4 593 594 1240 1283 4 593 594 1240 1283 4 593 594 1240 1283 4 593 594 1240 1283 3 593 1486 1488 3 593 1486 1488 3 593 1486 1488 3 593 1486 1488 3 593 1486 1488 3 593 1486 1488 4 594 595 1497 1499 4 594 595 1497 1499 4 594 595 1497 1499 4 594 595 1497 1499 4 594 595 1497 1499 4 594 595 1497 1499 8 594 595 1024 1025 1067 1068 1497 1499 8 594 595 1024 1025 1067 1068 1497 1499 8 594 595 1024 1025 1067 1068 1497 1499 8 594 595 1024 1025 1067 1068 1497 1499 8 594 595 1024 1025 1067 1068 1497 1499 8 594 595 1024 1025 1067 1068 1497 1499 3 594 1024 1067 3 594 1024 1067 3 594 1024 1067 3 594 1024 1067 3 594 1024 1067 3 594 1024 1067 3 595 1241 1284 3 595 1241 1284 3 595 1241 1284 3 595 1241 1284 3 595 1241 1284 3 595 1241 1284 8 595 596 1241 1242 1284 1285 1504 1505 8 595 596 1241 1242 1284 1285 1504 1505 8 595 596 1241 1242 1284 1285 1504 1505 8 595 596 1241 1242 1284 1285 1504 1505 8 595 596 1241 1242 1284 1285 1504 1505 8 595 596 1241 1242 1284 1285 1504 1505 4 595 596 1504 1505 4 595 596 1504 1505 4 595 596 1504 1505 4 595 596 1504 1505 4 595 596 1504 1505 4 595 596 1504 1505 8 595 596 1025 1026 1068 1069 1504 1505 8 595 596 1025 1026 1068 1069 1504 1505 8 595 596 1025 1026 1068 1069 1504 1505 8 595 596 1025 1026 1068 1069 1504 1505 8 595 596 1025 1026 1068 1069 1504 1505 8 595 596 1025 1026 1068 1069 1504 1505 3 595 1025 1068 3 595 1025 1068 3 595 1025 1068 3 595 1025 1068 3 595 1025 1068 3 595 1025 1068 3 596 1242 1285 3 596 1242 1285 3 596 1242 1285 3 596 1242 1285 3 596 1242 1285 3 596 1242 1285 10 596 597 598 1242 1243 1285 1286 1511 1512 1513 10 596 597 598 1242 1243 1285 1286 1511 1512 1513 10 596 597 598 1242 1243 1285 1286 1511 1512 1513 10 596 597 598 1242 1243 1285 1286 1511 1512 1513 10 596 597 598 1242 1243 1285 1286 1511 1512 1513 10 596 597 598 1242 1243 1285 1286 1511 1512 1513 4 596 598 1511 1513 4 596 598 1511 1513 4 596 598 1511 1513 4 596 598 1511 1513 4 596 598 1511 1513 4 596 598 1511 1513 8 596 598 1026 1027 1069 1070 1511 1513 8 596 598 1026 1027 1069 1070 1511 1513 8 596 598 1026 1027 1069 1070 1511 1513 8 596 598 1026 1027 1069 1070 1511 1513 8 596 598 1026 1027 1069 1070 1511 1513 8 596 598 1026 1027 1069 1070 1511 1513 3 596 1026 1069 3 596 1026 1069 3 596 1026 1069 3 596 1026 1069 3 596 1026 1069 3 596 1026 1069 6 597 1380 1391 1512 2212 3040 6 597 1380 1391 1512 2212 3040 6 597 1380 1391 1512 2212 3040 6 597 1380 1391 1512 2212 3040 6 597 1380 1391 1512 2212 3040 6 597 1380 1391 1512 2212 3040 4 597 1380 1391 3040 4 597 1380 1391 3040 4 597 1380 1391 3040 4 597 1380 1391 3040 4 597 1380 1391 3040 4 597 1380 1391 3040 6 597 1380 1391 1520 2204 3040 6 597 1380 1391 1520 2204 3040 6 597 1380 1391 1520 2204 3040 6 597 1380 1391 1520 2204 3040 6 597 1380 1391 1520 2204 3040 6 597 1380 1391 1520 2204 3040 2 597 1520 2 597 1520 2 597 1520 2 597 1520 2 597 1520 2 597 1520 10 597 598 599 1243 1244 1286 1287 1519 1520 1521 10 597 598 599 1243 1244 1286 1287 1519 1520 1521 10 597 598 599 1243 1244 1286 1287 1519 1520 1521 10 597 598 599 1243 1244 1286 1287 1519 1520 1521 10 597 598 599 1243 1244 1286 1287 1519 1520 1521 10 597 598 599 1243 1244 1286 1287 1519 1520 1521 4 597 598 1243 1286 4 597 598 1243 1286 4 597 598 1243 1286 4 597 598 1243 1286 4 597 598 1243 1286 4 597 598 1243 1286 2 597 1512 2 597 1512 2 597 1512 2 597 1512 2 597 1512 2 597 1512 4 598 599 1519 1521 4 598 599 1519 1521 4 598 599 1519 1521 4 598 599 1519 1521 4 598 599 1519 1521 4 598 599 1519 1521 8 598 599 1027 1028 1070 1071 1519 1521 8 598 599 1027 1028 1070 1071 1519 1521 8 598 599 1027 1028 1070 1071 1519 1521 8 598 599 1027 1028 1070 1071 1519 1521 8 598 599 1027 1028 1070 1071 1519 1521 8 598 599 1027 1028 1070 1071 1519 1521 3 598 1027 1070 3 598 1027 1070 3 598 1027 1070 3 598 1027 1070 3 598 1027 1070 3 598 1027 1070 3 599 1244 1287 3 599 1244 1287 3 599 1244 1287 3 599 1244 1287 3 599 1244 1287 3 599 1244 1287 8 599 600 1244 1245 1287 1288 1526 1527 8 599 600 1244 1245 1287 1288 1526 1527 8 599 600 1244 1245 1287 1288 1526 1527 8 599 600 1244 1245 1287 1288 1526 1527 8 599 600 1244 1245 1287 1288 1526 1527 8 599 600 1244 1245 1287 1288 1526 1527 4 599 600 1526 1527 4 599 600 1526 1527 4 599 600 1526 1527 4 599 600 1526 1527 4 599 600 1526 1527 4 599 600 1526 1527 8 599 600 1028 1029 1071 1072 1526 1527 8 599 600 1028 1029 1071 1072 1526 1527 8 599 600 1028 1029 1071 1072 1526 1527 8 599 600 1028 1029 1071 1072 1526 1527 8 599 600 1028 1029 1071 1072 1526 1527 8 599 600 1028 1029 1071 1072 1526 1527 3 599 1028 1071 3 599 1028 1071 3 599 1028 1071 3 599 1028 1071 3 599 1028 1071 3 599 1028 1071 3 600 1245 1288 3 600 1245 1288 3 600 1245 1288 3 600 1245 1288 3 600 1245 1288 3 600 1245 1288 11 600 601 602 1245 1246 1288 1289 1534 1535 1536 1537 11 600 601 602 1245 1246 1288 1289 1534 1535 1536 1537 11 600 601 602 1245 1246 1288 1289 1534 1535 1536 1537 11 600 601 602 1245 1246 1288 1289 1534 1535 1536 1537 11 600 601 602 1245 1246 1288 1289 1534 1535 1536 1537 11 600 601 602 1245 1246 1288 1289 1534 1535 1536 1537 4 600 602 1535 1537 4 600 602 1535 1537 4 600 602 1535 1537 4 600 602 1535 1537 4 600 602 1535 1537 4 600 602 1535 1537 8 600 602 1029 1030 1072 1073 1535 1537 8 600 602 1029 1030 1072 1073 1535 1537 8 600 602 1029 1030 1072 1073 1535 1537 8 600 602 1029 1030 1072 1073 1535 1537 8 600 602 1029 1030 1072 1073 1535 1537 8 600 602 1029 1030 1072 1073 1535 1537 3 600 1029 1072 3 600 1029 1072 3 600 1029 1072 3 600 1029 1072 3 600 1029 1072 3 600 1029 1072 8 601 1381 1392 1534 1536 2188 2190 3036 8 601 1381 1392 1534 1536 2188 2190 3036 8 601 1381 1392 1534 1536 2188 2190 3036 8 601 1381 1392 1534 1536 2188 2190 3036 8 601 1381 1392 1534 1536 2188 2190 3036 8 601 1381 1392 1534 1536 2188 2190 3036 4 601 1381 1392 3036 4 601 1381 1392 3036 4 601 1381 1392 3036 4 601 1381 1392 3036 4 601 1381 1392 3036 4 601 1381 1392 3036 6 601 1381 1392 1544 2180 3036 6 601 1381 1392 1544 2180 3036 6 601 1381 1392 1544 2180 3036 6 601 1381 1392 1544 2180 3036 6 601 1381 1392 1544 2180 3036 6 601 1381 1392 1544 2180 3036 2 601 1544 2 601 1544 2 601 1544 2 601 1544 2 601 1544 2 601 1544 10 601 602 603 1246 1247 1289 1290 1543 1544 1545 10 601 602 603 1246 1247 1289 1290 1543 1544 1545 10 601 602 603 1246 1247 1289 1290 1543 1544 1545 10 601 602 603 1246 1247 1289 1290 1543 1544 1545 10 601 602 603 1246 1247 1289 1290 1543 1544 1545 10 601 602 603 1246 1247 1289 1290 1543 1544 1545 4 601 602 1246 1289 4 601 602 1246 1289 4 601 602 1246 1289 4 601 602 1246 1289 4 601 602 1246 1289 4 601 602 1246 1289 3 601 1534 1536 3 601 1534 1536 3 601 1534 1536 3 601 1534 1536 3 601 1534 1536 3 601 1534 1536 4 602 603 1543 1545 4 602 603 1543 1545 4 602 603 1543 1545 4 602 603 1543 1545 4 602 603 1543 1545 4 602 603 1543 1545 8 602 603 1030 1031 1073 1074 1543 1545 8 602 603 1030 1031 1073 1074 1543 1545 8 602 603 1030 1031 1073 1074 1543 1545 8 602 603 1030 1031 1073 1074 1543 1545 8 602 603 1030 1031 1073 1074 1543 1545 8 602 603 1030 1031 1073 1074 1543 1545 3 602 1030 1073 3 602 1030 1073 3 602 1030 1073 3 602 1030 1073 3 602 1030 1073 3 602 1030 1073 3 603 1247 1290 3 603 1247 1290 3 603 1247 1290 3 603 1247 1290 3 603 1247 1290 3 603 1247 1290 8 603 604 1247 1248 1290 1291 1550 1551 8 603 604 1247 1248 1290 1291 1550 1551 8 603 604 1247 1248 1290 1291 1550 1551 8 603 604 1247 1248 1290 1291 1550 1551 8 603 604 1247 1248 1290 1291 1550 1551 8 603 604 1247 1248 1290 1291 1550 1551 4 603 604 1550 1551 4 603 604 1550 1551 4 603 604 1550 1551 4 603 604 1550 1551 4 603 604 1550 1551 4 603 604 1550 1551 8 603 604 1031 1032 1074 1075 1550 1551 8 603 604 1031 1032 1074 1075 1550 1551 8 603 604 1031 1032 1074 1075 1550 1551 8 603 604 1031 1032 1074 1075 1550 1551 8 603 604 1031 1032 1074 1075 1550 1551 8 603 604 1031 1032 1074 1075 1550 1551 3 603 1031 1074 3 603 1031 1074 3 603 1031 1074 3 603 1031 1074 3 603 1031 1074 3 603 1031 1074 3 604 1248 1291 3 604 1248 1291 3 604 1248 1291 3 604 1248 1291 3 604 1248 1291 3 604 1248 1291 10 604 605 606 1248 1249 1291 1292 1557 1558 1559 10 604 605 606 1248 1249 1291 1292 1557 1558 1559 10 604 605 606 1248 1249 1291 1292 1557 1558 1559 10 604 605 606 1248 1249 1291 1292 1557 1558 1559 10 604 605 606 1248 1249 1291 1292 1557 1558 1559 10 604 605 606 1248 1249 1291 1292 1557 1558 1559 4 604 606 1557 1559 4 604 606 1557 1559 4 604 606 1557 1559 4 604 606 1557 1559 4 604 606 1557 1559 4 604 606 1557 1559 8 604 606 1032 1033 1075 1076 1557 1559 8 604 606 1032 1033 1075 1076 1557 1559 8 604 606 1032 1033 1075 1076 1557 1559 8 604 606 1032 1033 1075 1076 1557 1559 8 604 606 1032 1033 1075 1076 1557 1559 8 604 606 1032 1033 1075 1076 1557 1559 3 604 1032 1075 3 604 1032 1075 3 604 1032 1075 3 604 1032 1075 3 604 1032 1075 3 604 1032 1075 6 605 1382 1393 1558 2166 3032 6 605 1382 1393 1558 2166 3032 6 605 1382 1393 1558 2166 3032 6 605 1382 1393 1558 2166 3032 6 605 1382 1393 1558 2166 3032 6 605 1382 1393 1558 2166 3032 4 605 1382 1393 3032 4 605 1382 1393 3032 4 605 1382 1393 3032 4 605 1382 1393 3032 4 605 1382 1393 3032 4 605 1382 1393 3032 6 605 1382 1393 1566 2158 3032 6 605 1382 1393 1566 2158 3032 6 605 1382 1393 1566 2158 3032 6 605 1382 1393 1566 2158 3032 6 605 1382 1393 1566 2158 3032 6 605 1382 1393 1566 2158 3032 2 605 1566 2 605 1566 2 605 1566 2 605 1566 2 605 1566 2 605 1566 10 605 606 607 1249 1250 1292 1293 1565 1566 1567 10 605 606 607 1249 1250 1292 1293 1565 1566 1567 10 605 606 607 1249 1250 1292 1293 1565 1566 1567 10 605 606 607 1249 1250 1292 1293 1565 1566 1567 10 605 606 607 1249 1250 1292 1293 1565 1566 1567 10 605 606 607 1249 1250 1292 1293 1565 1566 1567 4 605 606 1249 1292 4 605 606 1249 1292 4 605 606 1249 1292 4 605 606 1249 1292 4 605 606 1249 1292 4 605 606 1249 1292 2 605 1558 2 605 1558 2 605 1558 2 605 1558 2 605 1558 2 605 1558 4 606 607 1565 1567 4 606 607 1565 1567 4 606 607 1565 1567 4 606 607 1565 1567 4 606 607 1565 1567 4 606 607 1565 1567 8 606 607 1033 1034 1076 1077 1565 1567 8 606 607 1033 1034 1076 1077 1565 1567 8 606 607 1033 1034 1076 1077 1565 1567 8 606 607 1033 1034 1076 1077 1565 1567 8 606 607 1033 1034 1076 1077 1565 1567 8 606 607 1033 1034 1076 1077 1565 1567 3 606 1033 1076 3 606 1033 1076 3 606 1033 1076 3 606 1033 1076 3 606 1033 1076 3 606 1033 1076 3 607 1250 1293 3 607 1250 1293 3 607 1250 1293 3 607 1250 1293 3 607 1250 1293 3 607 1250 1293 8 607 608 1250 1251 1293 1294 1572 1573 8 607 608 1250 1251 1293 1294 1572 1573 8 607 608 1250 1251 1293 1294 1572 1573 8 607 608 1250 1251 1293 1294 1572 1573 8 607 608 1250 1251 1293 1294 1572 1573 8 607 608 1250 1251 1293 1294 1572 1573 4 607 608 1572 1573 4 607 608 1572 1573 4 607 608 1572 1573 4 607 608 1572 1573 4 607 608 1572 1573 4 607 608 1572 1573 8 607 608 1034 1035 1077 1078 1572 1573 8 607 608 1034 1035 1077 1078 1572 1573 8 607 608 1034 1035 1077 1078 1572 1573 8 607 608 1034 1035 1077 1078 1572 1573 8 607 608 1034 1035 1077 1078 1572 1573 8 607 608 1034 1035 1077 1078 1572 1573 3 607 1034 1077 3 607 1034 1077 3 607 1034 1077 3 607 1034 1077 3 607 1034 1077 3 607 1034 1077 3 608 1251 1294 3 608 1251 1294 3 608 1251 1294 3 608 1251 1294 3 608 1251 1294 3 608 1251 1294 11 608 609 610 1251 1252 1294 1295 1580 1581 1582 1583 11 608 609 610 1251 1252 1294 1295 1580 1581 1582 1583 11 608 609 610 1251 1252 1294 1295 1580 1581 1582 1583 11 608 609 610 1251 1252 1294 1295 1580 1581 1582 1583 11 608 609 610 1251 1252 1294 1295 1580 1581 1582 1583 11 608 609 610 1251 1252 1294 1295 1580 1581 1582 1583 4 608 610 1581 1583 4 608 610 1581 1583 4 608 610 1581 1583 4 608 610 1581 1583 4 608 610 1581 1583 4 608 610 1581 1583 8 608 610 1035 1036 1078 1079 1581 1583 8 608 610 1035 1036 1078 1079 1581 1583 8 608 610 1035 1036 1078 1079 1581 1583 8 608 610 1035 1036 1078 1079 1581 1583 8 608 610 1035 1036 1078 1079 1581 1583 8 608 610 1035 1036 1078 1079 1581 1583 3 608 1035 1078 3 608 1035 1078 3 608 1035 1078 3 608 1035 1078 3 608 1035 1078 3 608 1035 1078 8 609 1383 1394 1580 1582 2142 2144 3028 8 609 1383 1394 1580 1582 2142 2144 3028 8 609 1383 1394 1580 1582 2142 2144 3028 8 609 1383 1394 1580 1582 2142 2144 3028 8 609 1383 1394 1580 1582 2142 2144 3028 8 609 1383 1394 1580 1582 2142 2144 3028 4 609 1383 1394 3028 4 609 1383 1394 3028 4 609 1383 1394 3028 4 609 1383 1394 3028 4 609 1383 1394 3028 4 609 1383 1394 3028 6 609 1383 1394 1590 2134 3028 6 609 1383 1394 1590 2134 3028 6 609 1383 1394 1590 2134 3028 6 609 1383 1394 1590 2134 3028 6 609 1383 1394 1590 2134 3028 6 609 1383 1394 1590 2134 3028 2 609 1590 2 609 1590 2 609 1590 2 609 1590 2 609 1590 2 609 1590 10 609 610 611 1252 1253 1295 1296 1589 1590 1591 10 609 610 611 1252 1253 1295 1296 1589 1590 1591 10 609 610 611 1252 1253 1295 1296 1589 1590 1591 10 609 610 611 1252 1253 1295 1296 1589 1590 1591 10 609 610 611 1252 1253 1295 1296 1589 1590 1591 10 609 610 611 1252 1253 1295 1296 1589 1590 1591 4 609 610 1252 1295 4 609 610 1252 1295 4 609 610 1252 1295 4 609 610 1252 1295 4 609 610 1252 1295 4 609 610 1252 1295 3 609 1580 1582 3 609 1580 1582 3 609 1580 1582 3 609 1580 1582 3 609 1580 1582 3 609 1580 1582 4 610 611 1589 1591 4 610 611 1589 1591 4 610 611 1589 1591 4 610 611 1589 1591 4 610 611 1589 1591 4 610 611 1589 1591 8 610 611 1036 1037 1079 1080 1589 1591 8 610 611 1036 1037 1079 1080 1589 1591 8 610 611 1036 1037 1079 1080 1589 1591 8 610 611 1036 1037 1079 1080 1589 1591 8 610 611 1036 1037 1079 1080 1589 1591 8 610 611 1036 1037 1079 1080 1589 1591 3 610 1036 1079 3 610 1036 1079 3 610 1036 1079 3 610 1036 1079 3 610 1036 1079 3 610 1036 1079 3 611 1253 1296 3 611 1253 1296 3 611 1253 1296 3 611 1253 1296 3 611 1253 1296 3 611 1253 1296 8 611 612 1253 1254 1296 1297 1596 1597 8 611 612 1253 1254 1296 1297 1596 1597 8 611 612 1253 1254 1296 1297 1596 1597 8 611 612 1253 1254 1296 1297 1596 1597 8 611 612 1253 1254 1296 1297 1596 1597 8 611 612 1253 1254 1296 1297 1596 1597 4 611 612 1596 1597 4 611 612 1596 1597 4 611 612 1596 1597 4 611 612 1596 1597 4 611 612 1596 1597 4 611 612 1596 1597 8 611 612 1037 1038 1080 1081 1596 1597 8 611 612 1037 1038 1080 1081 1596 1597 8 611 612 1037 1038 1080 1081 1596 1597 8 611 612 1037 1038 1080 1081 1596 1597 8 611 612 1037 1038 1080 1081 1596 1597 8 611 612 1037 1038 1080 1081 1596 1597 3 611 1037 1080 3 611 1037 1080 3 611 1037 1080 3 611 1037 1080 3 611 1037 1080 3 611 1037 1080 3 612 1254 1297 3 612 1254 1297 3 612 1254 1297 3 612 1254 1297 3 612 1254 1297 3 612 1254 1297 10 612 613 614 1254 1255 1297 1298 1603 1604 1605 10 612 613 614 1254 1255 1297 1298 1603 1604 1605 10 612 613 614 1254 1255 1297 1298 1603 1604 1605 10 612 613 614 1254 1255 1297 1298 1603 1604 1605 10 612 613 614 1254 1255 1297 1298 1603 1604 1605 10 612 613 614 1254 1255 1297 1298 1603 1604 1605 4 612 614 1603 1605 4 612 614 1603 1605 4 612 614 1603 1605 4 612 614 1603 1605 4 612 614 1603 1605 4 612 614 1603 1605 8 612 614 1038 1039 1081 1082 1603 1605 8 612 614 1038 1039 1081 1082 1603 1605 8 612 614 1038 1039 1081 1082 1603 1605 8 612 614 1038 1039 1081 1082 1603 1605 8 612 614 1038 1039 1081 1082 1603 1605 8 612 614 1038 1039 1081 1082 1603 1605 3 612 1038 1081 3 612 1038 1081 3 612 1038 1081 3 612 1038 1081 3 612 1038 1081 3 612 1038 1081 6 613 1384 1395 1604 2120 3024 6 613 1384 1395 1604 2120 3024 6 613 1384 1395 1604 2120 3024 6 613 1384 1395 1604 2120 3024 6 613 1384 1395 1604 2120 3024 6 613 1384 1395 1604 2120 3024 4 613 1384 1395 3024 4 613 1384 1395 3024 4 613 1384 1395 3024 4 613 1384 1395 3024 4 613 1384 1395 3024 4 613 1384 1395 3024 6 613 1384 1395 1612 2112 3024 6 613 1384 1395 1612 2112 3024 6 613 1384 1395 1612 2112 3024 6 613 1384 1395 1612 2112 3024 6 613 1384 1395 1612 2112 3024 6 613 1384 1395 1612 2112 3024 2 613 1612 2 613 1612 2 613 1612 2 613 1612 2 613 1612 2 613 1612 10 613 614 615 1255 1256 1298 1299 1611 1612 1613 10 613 614 615 1255 1256 1298 1299 1611 1612 1613 10 613 614 615 1255 1256 1298 1299 1611 1612 1613 10 613 614 615 1255 1256 1298 1299 1611 1612 1613 10 613 614 615 1255 1256 1298 1299 1611 1612 1613 10 613 614 615 1255 1256 1298 1299 1611 1612 1613 4 613 614 1255 1298 4 613 614 1255 1298 4 613 614 1255 1298 4 613 614 1255 1298 4 613 614 1255 1298 4 613 614 1255 1298 2 613 1604 2 613 1604 2 613 1604 2 613 1604 2 613 1604 2 613 1604 4 614 615 1611 1613 4 614 615 1611 1613 4 614 615 1611 1613 4 614 615 1611 1613 4 614 615 1611 1613 4 614 615 1611 1613 8 614 615 1039 1040 1082 1083 1611 1613 8 614 615 1039 1040 1082 1083 1611 1613 8 614 615 1039 1040 1082 1083 1611 1613 8 614 615 1039 1040 1082 1083 1611 1613 8 614 615 1039 1040 1082 1083 1611 1613 8 614 615 1039 1040 1082 1083 1611 1613 3 614 1039 1082 3 614 1039 1082 3 614 1039 1082 3 614 1039 1082 3 614 1039 1082 3 614 1039 1082 3 615 1256 1299 3 615 1256 1299 3 615 1256 1299 3 615 1256 1299 3 615 1256 1299 3 615 1256 1299 8 615 616 1256 1257 1299 1300 1618 1619 8 615 616 1256 1257 1299 1300 1618 1619 8 615 616 1256 1257 1299 1300 1618 1619 8 615 616 1256 1257 1299 1300 1618 1619 8 615 616 1256 1257 1299 1300 1618 1619 8 615 616 1256 1257 1299 1300 1618 1619 4 615 616 1618 1619 4 615 616 1618 1619 4 615 616 1618 1619 4 615 616 1618 1619 4 615 616 1618 1619 4 615 616 1618 1619 8 615 616 1040 1041 1083 1084 1618 1619 8 615 616 1040 1041 1083 1084 1618 1619 8 615 616 1040 1041 1083 1084 1618 1619 8 615 616 1040 1041 1083 1084 1618 1619 8 615 616 1040 1041 1083 1084 1618 1619 8 615 616 1040 1041 1083 1084 1618 1619 3 615 1040 1083 3 615 1040 1083 3 615 1040 1083 3 615 1040 1083 3 615 1040 1083 3 615 1040 1083 3 616 1257 1300 3 616 1257 1300 3 616 1257 1300 3 616 1257 1300 3 616 1257 1300 3 616 1257 1300 11 616 617 618 1257 1258 1300 1301 1626 1627 1628 1629 11 616 617 618 1257 1258 1300 1301 1626 1627 1628 1629 11 616 617 618 1257 1258 1300 1301 1626 1627 1628 1629 11 616 617 618 1257 1258 1300 1301 1626 1627 1628 1629 11 616 617 618 1257 1258 1300 1301 1626 1627 1628 1629 11 616 617 618 1257 1258 1300 1301 1626 1627 1628 1629 4 616 618 1627 1629 4 616 618 1627 1629 4 616 618 1627 1629 4 616 618 1627 1629 4 616 618 1627 1629 4 616 618 1627 1629 8 616 618 1041 1042 1084 1085 1627 1629 8 616 618 1041 1042 1084 1085 1627 1629 8 616 618 1041 1042 1084 1085 1627 1629 8 616 618 1041 1042 1084 1085 1627 1629 8 616 618 1041 1042 1084 1085 1627 1629 8 616 618 1041 1042 1084 1085 1627 1629 3 616 1041 1084 3 616 1041 1084 3 616 1041 1084 3 616 1041 1084 3 616 1041 1084 3 616 1041 1084 8 617 1385 1396 1626 1628 2096 2098 3020 8 617 1385 1396 1626 1628 2096 2098 3020 8 617 1385 1396 1626 1628 2096 2098 3020 8 617 1385 1396 1626 1628 2096 2098 3020 8 617 1385 1396 1626 1628 2096 2098 3020 8 617 1385 1396 1626 1628 2096 2098 3020 4 617 1385 1396 3020 4 617 1385 1396 3020 4 617 1385 1396 3020 4 617 1385 1396 3020 4 617 1385 1396 3020 4 617 1385 1396 3020 6 617 1385 1396 1636 2088 3020 6 617 1385 1396 1636 2088 3020 6 617 1385 1396 1636 2088 3020 6 617 1385 1396 1636 2088 3020 6 617 1385 1396 1636 2088 3020 6 617 1385 1396 1636 2088 3020 2 617 1636 2 617 1636 2 617 1636 2 617 1636 2 617 1636 2 617 1636 10 617 618 619 1258 1259 1301 1302 1635 1636 1637 10 617 618 619 1258 1259 1301 1302 1635 1636 1637 10 617 618 619 1258 1259 1301 1302 1635 1636 1637 10 617 618 619 1258 1259 1301 1302 1635 1636 1637 10 617 618 619 1258 1259 1301 1302 1635 1636 1637 10 617 618 619 1258 1259 1301 1302 1635 1636 1637 4 617 618 1258 1301 4 617 618 1258 1301 4 617 618 1258 1301 4 617 618 1258 1301 4 617 618 1258 1301 4 617 618 1258 1301 3 617 1626 1628 3 617 1626 1628 3 617 1626 1628 3 617 1626 1628 3 617 1626 1628 3 617 1626 1628 4 618 619 1635 1637 4 618 619 1635 1637 4 618 619 1635 1637 4 618 619 1635 1637 4 618 619 1635 1637 4 618 619 1635 1637 8 618 619 1042 1043 1085 1086 1635 1637 8 618 619 1042 1043 1085 1086 1635 1637 8 618 619 1042 1043 1085 1086 1635 1637 8 618 619 1042 1043 1085 1086 1635 1637 8 618 619 1042 1043 1085 1086 1635 1637 8 618 619 1042 1043 1085 1086 1635 1637 3 618 1042 1085 3 618 1042 1085 3 618 1042 1085 3 618 1042 1085 3 618 1042 1085 3 618 1042 1085 3 619 1259 1302 3 619 1259 1302 3 619 1259 1302 3 619 1259 1302 3 619 1259 1302 3 619 1259 1302 8 619 620 1259 1260 1302 1303 1642 1643 8 619 620 1259 1260 1302 1303 1642 1643 8 619 620 1259 1260 1302 1303 1642 1643 8 619 620 1259 1260 1302 1303 1642 1643 8 619 620 1259 1260 1302 1303 1642 1643 8 619 620 1259 1260 1302 1303 1642 1643 4 619 620 1642 1643 4 619 620 1642 1643 4 619 620 1642 1643 4 619 620 1642 1643 4 619 620 1642 1643 4 619 620 1642 1643 8 619 620 1043 1044 1086 1087 1642 1643 8 619 620 1043 1044 1086 1087 1642 1643 8 619 620 1043 1044 1086 1087 1642 1643 8 619 620 1043 1044 1086 1087 1642 1643 8 619 620 1043 1044 1086 1087 1642 1643 8 619 620 1043 1044 1086 1087 1642 1643 3 619 1043 1086 3 619 1043 1086 3 619 1043 1086 3 619 1043 1086 3 619 1043 1086 3 619 1043 1086 3 620 1260 1303 3 620 1260 1303 3 620 1260 1303 3 620 1260 1303 3 620 1260 1303 3 620 1260 1303 10 620 621 622 1260 1261 1303 1304 1649 1650 1651 10 620 621 622 1260 1261 1303 1304 1649 1650 1651 10 620 621 622 1260 1261 1303 1304 1649 1650 1651 10 620 621 622 1260 1261 1303 1304 1649 1650 1651 10 620 621 622 1260 1261 1303 1304 1649 1650 1651 10 620 621 622 1260 1261 1303 1304 1649 1650 1651 4 620 622 1649 1651 4 620 622 1649 1651 4 620 622 1649 1651 4 620 622 1649 1651 4 620 622 1649 1651 4 620 622 1649 1651 8 620 622 1044 1045 1087 1088 1649 1651 8 620 622 1044 1045 1087 1088 1649 1651 8 620 622 1044 1045 1087 1088 1649 1651 8 620 622 1044 1045 1087 1088 1649 1651 8 620 622 1044 1045 1087 1088 1649 1651 8 620 622 1044 1045 1087 1088 1649 1651 3 620 1044 1087 3 620 1044 1087 3 620 1044 1087 3 620 1044 1087 3 620 1044 1087 3 620 1044 1087 6 621 1386 1397 1650 2074 3016 6 621 1386 1397 1650 2074 3016 6 621 1386 1397 1650 2074 3016 6 621 1386 1397 1650 2074 3016 6 621 1386 1397 1650 2074 3016 6 621 1386 1397 1650 2074 3016 4 621 1386 1397 3016 4 621 1386 1397 3016 4 621 1386 1397 3016 4 621 1386 1397 3016 4 621 1386 1397 3016 4 621 1386 1397 3016 6 621 1386 1397 1658 2066 3016 6 621 1386 1397 1658 2066 3016 6 621 1386 1397 1658 2066 3016 6 621 1386 1397 1658 2066 3016 6 621 1386 1397 1658 2066 3016 6 621 1386 1397 1658 2066 3016 2 621 1658 2 621 1658 2 621 1658 2 621 1658 2 621 1658 2 621 1658 10 621 622 623 1261 1262 1304 1305 1657 1658 1659 10 621 622 623 1261 1262 1304 1305 1657 1658 1659 10 621 622 623 1261 1262 1304 1305 1657 1658 1659 10 621 622 623 1261 1262 1304 1305 1657 1658 1659 10 621 622 623 1261 1262 1304 1305 1657 1658 1659 10 621 622 623 1261 1262 1304 1305 1657 1658 1659 4 621 622 1261 1304 4 621 622 1261 1304 4 621 622 1261 1304 4 621 622 1261 1304 4 621 622 1261 1304 4 621 622 1261 1304 2 621 1650 2 621 1650 2 621 1650 2 621 1650 2 621 1650 2 621 1650 4 622 623 1657 1659 4 622 623 1657 1659 4 622 623 1657 1659 4 622 623 1657 1659 4 622 623 1657 1659 4 622 623 1657 1659 8 622 623 1045 1046 1088 1089 1657 1659 8 622 623 1045 1046 1088 1089 1657 1659 8 622 623 1045 1046 1088 1089 1657 1659 8 622 623 1045 1046 1088 1089 1657 1659 8 622 623 1045 1046 1088 1089 1657 1659 8 622 623 1045 1046 1088 1089 1657 1659 3 622 1045 1088 3 622 1045 1088 3 622 1045 1088 3 622 1045 1088 3 622 1045 1088 3 622 1045 1088 3 623 1262 1305 3 623 1262 1305 3 623 1262 1305 3 623 1262 1305 3 623 1262 1305 3 623 1262 1305 8 623 624 1262 1263 1305 1306 1664 1665 8 623 624 1262 1263 1305 1306 1664 1665 8 623 624 1262 1263 1305 1306 1664 1665 8 623 624 1262 1263 1305 1306 1664 1665 8 623 624 1262 1263 1305 1306 1664 1665 8 623 624 1262 1263 1305 1306 1664 1665 4 623 624 1664 1665 4 623 624 1664 1665 4 623 624 1664 1665 4 623 624 1664 1665 4 623 624 1664 1665 4 623 624 1664 1665 8 623 624 1046 1047 1089 1090 1664 1665 8 623 624 1046 1047 1089 1090 1664 1665 8 623 624 1046 1047 1089 1090 1664 1665 8 623 624 1046 1047 1089 1090 1664 1665 8 623 624 1046 1047 1089 1090 1664 1665 8 623 624 1046 1047 1089 1090 1664 1665 3 623 1046 1089 3 623 1046 1089 3 623 1046 1089 3 623 1046 1089 3 623 1046 1089 3 623 1046 1089 3 624 1263 1306 3 624 1263 1306 3 624 1263 1306 3 624 1263 1306 3 624 1263 1306 3 624 1263 1306 11 624 625 626 1263 1264 1306 1307 1672 1673 1674 1675 11 624 625 626 1263 1264 1306 1307 1672 1673 1674 1675 11 624 625 626 1263 1264 1306 1307 1672 1673 1674 1675 11 624 625 626 1263 1264 1306 1307 1672 1673 1674 1675 11 624 625 626 1263 1264 1306 1307 1672 1673 1674 1675 11 624 625 626 1263 1264 1306 1307 1672 1673 1674 1675 4 624 626 1673 1675 4 624 626 1673 1675 4 624 626 1673 1675 4 624 626 1673 1675 4 624 626 1673 1675 4 624 626 1673 1675 8 624 626 1047 1048 1090 1091 1673 1675 8 624 626 1047 1048 1090 1091 1673 1675 8 624 626 1047 1048 1090 1091 1673 1675 8 624 626 1047 1048 1090 1091 1673 1675 8 624 626 1047 1048 1090 1091 1673 1675 8 624 626 1047 1048 1090 1091 1673 1675 3 624 1047 1090 3 624 1047 1090 3 624 1047 1090 3 624 1047 1090 3 624 1047 1090 3 624 1047 1090 8 625 1387 1398 1672 1674 2050 2052 3012 8 625 1387 1398 1672 1674 2050 2052 3012 8 625 1387 1398 1672 1674 2050 2052 3012 8 625 1387 1398 1672 1674 2050 2052 3012 8 625 1387 1398 1672 1674 2050 2052 3012 8 625 1387 1398 1672 1674 2050 2052 3012 4 625 1387 1398 3012 4 625 1387 1398 3012 4 625 1387 1398 3012 4 625 1387 1398 3012 4 625 1387 1398 3012 4 625 1387 1398 3012 6 625 1387 1398 1682 2042 3012 6 625 1387 1398 1682 2042 3012 6 625 1387 1398 1682 2042 3012 6 625 1387 1398 1682 2042 3012 6 625 1387 1398 1682 2042 3012 6 625 1387 1398 1682 2042 3012 2 625 1682 2 625 1682 2 625 1682 2 625 1682 2 625 1682 2 625 1682 10 625 626 627 1264 1265 1307 1308 1681 1682 1683 10 625 626 627 1264 1265 1307 1308 1681 1682 1683 10 625 626 627 1264 1265 1307 1308 1681 1682 1683 10 625 626 627 1264 1265 1307 1308 1681 1682 1683 10 625 626 627 1264 1265 1307 1308 1681 1682 1683 10 625 626 627 1264 1265 1307 1308 1681 1682 1683 4 625 626 1264 1307 4 625 626 1264 1307 4 625 626 1264 1307 4 625 626 1264 1307 4 625 626 1264 1307 4 625 626 1264 1307 3 625 1672 1674 3 625 1672 1674 3 625 1672 1674 3 625 1672 1674 3 625 1672 1674 3 625 1672 1674 4 626 627 1681 1683 4 626 627 1681 1683 4 626 627 1681 1683 4 626 627 1681 1683 4 626 627 1681 1683 4 626 627 1681 1683 8 626 627 1048 1049 1091 1092 1681 1683 8 626 627 1048 1049 1091 1092 1681 1683 8 626 627 1048 1049 1091 1092 1681 1683 8 626 627 1048 1049 1091 1092 1681 1683 8 626 627 1048 1049 1091 1092 1681 1683 8 626 627 1048 1049 1091 1092 1681 1683 3 626 1048 1091 3 626 1048 1091 3 626 1048 1091 3 626 1048 1091 3 626 1048 1091 3 626 1048 1091 3 627 1265 1308 3 627 1265 1308 3 627 1265 1308 3 627 1265 1308 3 627 1265 1308 3 627 1265 1308 8 627 628 1265 1266 1308 1309 1688 1689 8 627 628 1265 1266 1308 1309 1688 1689 8 627 628 1265 1266 1308 1309 1688 1689 8 627 628 1265 1266 1308 1309 1688 1689 8 627 628 1265 1266 1308 1309 1688 1689 8 627 628 1265 1266 1308 1309 1688 1689 4 627 628 1688 1689 4 627 628 1688 1689 4 627 628 1688 1689 4 627 628 1688 1689 4 627 628 1688 1689 4 627 628 1688 1689 8 627 628 1049 1050 1092 1093 1688 1689 8 627 628 1049 1050 1092 1093 1688 1689 8 627 628 1049 1050 1092 1093 1688 1689 8 627 628 1049 1050 1092 1093 1688 1689 8 627 628 1049 1050 1092 1093 1688 1689 8 627 628 1049 1050 1092 1093 1688 1689 3 627 1049 1092 3 627 1049 1092 3 627 1049 1092 3 627 1049 1092 3 627 1049 1092 3 627 1049 1092 3 628 1266 1309 3 628 1266 1309 3 628 1266 1309 3 628 1266 1309 3 628 1266 1309 3 628 1266 1309 11 628 629 630 1266 1267 1309 1310 1696 1697 1698 1699 11 628 629 630 1266 1267 1309 1310 1696 1697 1698 1699 11 628 629 630 1266 1267 1309 1310 1696 1697 1698 1699 11 628 629 630 1266 1267 1309 1310 1696 1697 1698 1699 11 628 629 630 1266 1267 1309 1310 1696 1697 1698 1699 11 628 629 630 1266 1267 1309 1310 1696 1697 1698 1699 4 628 630 1697 1699 4 628 630 1697 1699 4 628 630 1697 1699 4 628 630 1697 1699 4 628 630 1697 1699 4 628 630 1697 1699 8 628 630 1050 1051 1093 1094 1697 1699 8 628 630 1050 1051 1093 1094 1697 1699 8 628 630 1050 1051 1093 1094 1697 1699 8 628 630 1050 1051 1093 1094 1697 1699 8 628 630 1050 1051 1093 1094 1697 1699 8 628 630 1050 1051 1093 1094 1697 1699 3 628 1050 1093 3 628 1050 1093 3 628 1050 1093 3 628 1050 1093 3 628 1050 1093 3 628 1050 1093 8 629 1388 1399 1696 1698 2026 2028 3008 8 629 1388 1399 1696 1698 2026 2028 3008 8 629 1388 1399 1696 1698 2026 2028 3008 8 629 1388 1399 1696 1698 2026 2028 3008 8 629 1388 1399 1696 1698 2026 2028 3008 8 629 1388 1399 1696 1698 2026 2028 3008 4 629 1388 1399 3008 4 629 1388 1399 3008 4 629 1388 1399 3008 4 629 1388 1399 3008 4 629 1388 1399 3008 4 629 1388 1399 3008 8 629 1388 1399 1706 1708 2016 2018 3008 8 629 1388 1399 1706 1708 2016 2018 3008 8 629 1388 1399 1706 1708 2016 2018 3008 8 629 1388 1399 1706 1708 2016 2018 3008 8 629 1388 1399 1706 1708 2016 2018 3008 8 629 1388 1399 1706 1708 2016 2018 3008 3 629 1706 1708 3 629 1706 1708 3 629 1706 1708 3 629 1706 1708 3 629 1706 1708 3 629 1706 1708 11 629 630 631 1267 1268 1310 1311 1706 1707 1708 1709 11 629 630 631 1267 1268 1310 1311 1706 1707 1708 1709 11 629 630 631 1267 1268 1310 1311 1706 1707 1708 1709 11 629 630 631 1267 1268 1310 1311 1706 1707 1708 1709 11 629 630 631 1267 1268 1310 1311 1706 1707 1708 1709 11 629 630 631 1267 1268 1310 1311 1706 1707 1708 1709 4 629 630 1267 1310 4 629 630 1267 1310 4 629 630 1267 1310 4 629 630 1267 1310 4 629 630 1267 1310 4 629 630 1267 1310 3 629 1696 1698 3 629 1696 1698 3 629 1696 1698 3 629 1696 1698 3 629 1696 1698 3 629 1696 1698 4 630 631 1707 1709 4 630 631 1707 1709 4 630 631 1707 1709 4 630 631 1707 1709 4 630 631 1707 1709 4 630 631 1707 1709 8 630 631 1051 1052 1094 1095 1707 1709 8 630 631 1051 1052 1094 1095 1707 1709 8 630 631 1051 1052 1094 1095 1707 1709 8 630 631 1051 1052 1094 1095 1707 1709 8 630 631 1051 1052 1094 1095 1707 1709 8 630 631 1051 1052 1094 1095 1707 1709 3 630 1051 1094 3 630 1051 1094 3 630 1051 1094 3 630 1051 1094 3 630 1051 1094 3 630 1051 1094 3 631 1268 1311 3 631 1268 1311 3 631 1268 1311 3 631 1268 1311 3 631 1268 1311 3 631 1268 1311 8 631 632 1268 1269 1311 1312 1714 1715 8 631 632 1268 1269 1311 1312 1714 1715 8 631 632 1268 1269 1311 1312 1714 1715 8 631 632 1268 1269 1311 1312 1714 1715 8 631 632 1268 1269 1311 1312 1714 1715 8 631 632 1268 1269 1311 1312 1714 1715 4 631 632 1714 1715 4 631 632 1714 1715 4 631 632 1714 1715 4 631 632 1714 1715 4 631 632 1714 1715 4 631 632 1714 1715 8 631 632 1052 1053 1095 1096 1714 1715 8 631 632 1052 1053 1095 1096 1714 1715 8 631 632 1052 1053 1095 1096 1714 1715 8 631 632 1052 1053 1095 1096 1714 1715 8 631 632 1052 1053 1095 1096 1714 1715 8 631 632 1052 1053 1095 1096 1714 1715 3 631 1052 1095 3 631 1052 1095 3 631 1052 1095 3 631 1052 1095 3 631 1052 1095 3 631 1052 1095 3 632 1269 1312 3 632 1269 1312 3 632 1269 1312 3 632 1269 1312 3 632 1269 1312 3 632 1269 1312 3 632 1053 1096 3 632 1053 1096 3 632 1053 1096 3 632 1053 1096 3 632 1053 1096 3 632 1053 1096 3 633 1184 1227 3 633 1184 1227 3 633 1184 1227 3 633 1184 1227 3 633 1184 1227 3 633 1184 1227 10 633 634 641 643 1184 1185 1227 1228 1404 1405 10 633 634 641 643 1184 1185 1227 1228 1404 1405 10 633 634 641 643 1184 1185 1227 1228 1404 1405 10 633 634 641 643 1184 1185 1227 1228 1404 1405 10 633 634 641 643 1184 1185 1227 1228 1404 1405 10 633 634 641 643 1184 1185 1227 1228 1404 1405 4 633 634 1404 1405 4 633 634 1404 1405 4 633 634 1404 1405 4 633 634 1404 1405 4 633 634 1404 1405 4 633 634 1404 1405 8 633 634 968 969 1011 1012 1404 1405 8 633 634 968 969 1011 1012 1404 1405 8 633 634 968 969 1011 1012 1404 1405 8 633 634 968 969 1011 1012 1404 1405 8 633 634 968 969 1011 1012 1404 1405 8 633 634 968 969 1011 1012 1404 1405 3 633 968 1011 3 633 968 1011 3 633 968 1011 3 633 968 1011 3 633 968 1011 3 633 968 1011 4 634 641 1185 1228 4 634 641 1185 1228 4 634 641 1185 1228 4 634 641 1185 1228 4 634 641 1185 1228 4 634 641 1185 1228 10 634 636 638 641 1185 1186 1228 1229 1411 1412 10 634 636 638 641 1185 1186 1228 1229 1411 1412 10 634 636 638 641 1185 1186 1228 1229 1411 1412 10 634 636 638 641 1185 1186 1228 1229 1411 1412 10 634 636 638 641 1185 1186 1228 1229 1411 1412 10 634 636 638 641 1185 1186 1228 1229 1411 1412 4 634 636 1411 1412 4 634 636 1411 1412 4 634 636 1411 1412 4 634 636 1411 1412 4 634 636 1411 1412 4 634 636 1411 1412 8 634 636 969 970 1012 1013 1411 1412 8 634 636 969 970 1012 1013 1411 1412 8 634 636 969 970 1012 1013 1411 1412 8 634 636 969 970 1012 1013 1411 1412 8 634 636 969 970 1012 1013 1411 1412 8 634 636 969 970 1012 1013 1411 1412 3 634 969 1012 3 634 969 1012 3 634 969 1012 3 634 969 1012 3 634 969 1012 3 634 969 1012 10 635 636 637 638 1186 1187 1229 1230 1417 1418 10 635 636 637 638 1186 1187 1229 1230 1417 1418 10 635 636 637 638 1186 1187 1229 1230 1417 1418 10 635 636 637 638 1186 1187 1229 1230 1417 1418 10 635 636 637 638 1186 1187 1229 1230 1417 1418 10 635 636 637 638 1186 1187 1229 1230 1417 1418 4 635 637 1187 1230 4 635 637 1187 1230 4 635 637 1187 1230 4 635 637 1187 1230 4 635 637 1187 1230 4 635 637 1187 1230 10 635 637 639 1187 1188 1230 1231 1423 1424 1853 10 635 637 639 1187 1188 1230 1231 1423 1424 1853 10 635 637 639 1187 1188 1230 1231 1423 1424 1853 10 635 637 639 1187 1188 1230 1231 1423 1424 1853 10 635 637 639 1187 1188 1230 1231 1423 1424 1853 10 635 637 639 1187 1188 1230 1231 1423 1424 1853 2 635 638 2 635 638 2 635 638 2 635 638 2 635 638 2 635 638 1 635 1 635 1 635 1 635 1 635 1 635 2 635 1853 2 635 1853 2 635 1853 2 635 1853 2 635 1853 2 635 1853 4 636 638 1186 1229 4 636 638 1186 1229 4 636 638 1186 1229 4 636 638 1186 1229 4 636 638 1186 1229 4 636 638 1186 1229 4 636 637 1417 1418 4 636 637 1417 1418 4 636 637 1417 1418 4 636 637 1417 1418 4 636 637 1417 1418 4 636 637 1417 1418 8 636 637 970 971 1013 1014 1417 1418 8 636 637 970 971 1013 1014 1417 1418 8 636 637 970 971 1013 1014 1417 1418 8 636 637 970 971 1013 1014 1417 1418 8 636 637 970 971 1013 1014 1417 1418 8 636 637 970 971 1013 1014 1417 1418 3 636 970 1013 3 636 970 1013 3 636 970 1013 3 636 970 1013 3 636 970 1013 3 636 970 1013 4 637 639 1423 1424 4 637 639 1423 1424 4 637 639 1423 1424 4 637 639 1423 1424 4 637 639 1423 1424 4 637 639 1423 1424 8 637 639 971 972 1014 1015 1423 1424 8 637 639 971 972 1014 1015 1423 1424 8 637 639 971 972 1014 1015 1423 1424 8 637 639 971 972 1014 1015 1423 1424 8 637 639 971 972 1014 1015 1423 1424 8 637 639 971 972 1014 1015 1423 1424 3 637 971 1014 3 637 971 1014 3 637 971 1014 3 637 971 1014 3 637 971 1014 3 637 971 1014 2 638 641 2 638 641 2 638 641 2 638 641 2 638 641 2 638 641 1 638 1 638 1 638 1 638 1 638 1 638 4 639 1188 1231 1853 4 639 1188 1231 1853 4 639 1188 1231 1853 4 639 1188 1231 1853 4 639 1188 1231 1853 4 639 1188 1231 1853 10 639 640 1188 1189 1231 1232 1429 1430 1853 1854 10 639 640 1188 1189 1231 1232 1429 1430 1853 1854 10 639 640 1188 1189 1231 1232 1429 1430 1853 1854 10 639 640 1188 1189 1231 1232 1429 1430 1853 1854 10 639 640 1188 1189 1231 1232 1429 1430 1853 1854 10 639 640 1188 1189 1231 1232 1429 1430 1853 1854 4 639 640 1429 1430 4 639 640 1429 1430 4 639 640 1429 1430 4 639 640 1429 1430 4 639 640 1429 1430 4 639 640 1429 1430 8 639 640 972 973 1015 1016 1429 1430 8 639 640 972 973 1015 1016 1429 1430 8 639 640 972 973 1015 1016 1429 1430 8 639 640 972 973 1015 1016 1429 1430 8 639 640 972 973 1015 1016 1429 1430 8 639 640 972 973 1015 1016 1429 1430 3 639 972 1015 3 639 972 1015 3 639 972 1015 3 639 972 1015 3 639 972 1015 3 639 972 1015 4 640 1189 1232 1854 4 640 1189 1232 1854 4 640 1189 1232 1854 4 640 1189 1232 1854 4 640 1189 1232 1854 4 640 1189 1232 1854 10 640 642 1189 1190 1232 1233 1435 1436 1854 1855 10 640 642 1189 1190 1232 1233 1435 1436 1854 1855 10 640 642 1189 1190 1232 1233 1435 1436 1854 1855 10 640 642 1189 1190 1232 1233 1435 1436 1854 1855 10 640 642 1189 1190 1232 1233 1435 1436 1854 1855 10 640 642 1189 1190 1232 1233 1435 1436 1854 1855 4 640 642 1435 1436 4 640 642 1435 1436 4 640 642 1435 1436 4 640 642 1435 1436 4 640 642 1435 1436 4 640 642 1435 1436 8 640 642 973 974 1016 1017 1435 1436 8 640 642 973 974 1016 1017 1435 1436 8 640 642 973 974 1016 1017 1435 1436 8 640 642 973 974 1016 1017 1435 1436 8 640 642 973 974 1016 1017 1435 1436 8 640 642 973 974 1016 1017 1435 1436 3 640 973 1016 3 640 973 1016 3 640 973 1016 3 640 973 1016 3 640 973 1016 3 640 973 1016 2 641 643 2 641 643 2 641 643 2 641 643 2 641 643 2 641 643 4 642 1190 1233 1855 4 642 1190 1233 1855 4 642 1190 1233 1855 4 642 1190 1233 1855 4 642 1190 1233 1855 4 642 1190 1233 1855 10 642 644 1190 1191 1233 1234 1441 1442 1855 1857 10 642 644 1190 1191 1233 1234 1441 1442 1855 1857 10 642 644 1190 1191 1233 1234 1441 1442 1855 1857 10 642 644 1190 1191 1233 1234 1441 1442 1855 1857 10 642 644 1190 1191 1233 1234 1441 1442 1855 1857 10 642 644 1190 1191 1233 1234 1441 1442 1855 1857 4 642 644 1441 1442 4 642 644 1441 1442 4 642 644 1441 1442 4 642 644 1441 1442 4 642 644 1441 1442 4 642 644 1441 1442 8 642 644 974 975 1017 1018 1441 1442 8 642 644 974 975 1017 1018 1441 1442 8 642 644 974 975 1017 1018 1441 1442 8 642 644 974 975 1017 1018 1441 1442 8 642 644 974 975 1017 1018 1441 1442 8 642 644 974 975 1017 1018 1441 1442 3 642 974 1017 3 642 974 1017 3 642 974 1017 3 642 974 1017 3 642 974 1017 3 642 974 1017 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 1 643 1 643 1 643 1 643 1 643 1 643 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 2 643 2994 1 643 1 643 1 643 1 643 1 643 1 643 4 644 1191 1234 1857 4 644 1191 1234 1857 4 644 1191 1234 1857 4 644 1191 1234 1857 4 644 1191 1234 1857 4 644 1191 1234 1857 10 644 645 1191 1192 1234 1235 1448 1449 1856 1857 10 644 645 1191 1192 1234 1235 1448 1449 1856 1857 10 644 645 1191 1192 1234 1235 1448 1449 1856 1857 10 644 645 1191 1192 1234 1235 1448 1449 1856 1857 10 644 645 1191 1192 1234 1235 1448 1449 1856 1857 10 644 645 1191 1192 1234 1235 1448 1449 1856 1857 4 644 645 1448 1449 4 644 645 1448 1449 4 644 645 1448 1449 4 644 645 1448 1449 4 644 645 1448 1449 4 644 645 1448 1449 8 644 645 975 976 1018 1019 1448 1449 8 644 645 975 976 1018 1019 1448 1449 8 644 645 975 976 1018 1019 1448 1449 8 644 645 975 976 1018 1019 1448 1449 8 644 645 975 976 1018 1019 1448 1449 8 644 645 975 976 1018 1019 1448 1449 3 644 975 1018 3 644 975 1018 3 644 975 1018 3 644 975 1018 3 644 975 1018 3 644 975 1018 3 645 1192 1235 3 645 1192 1235 3 645 1192 1235 3 645 1192 1235 3 645 1192 1235 3 645 1192 1235 8 645 646 1192 1193 1235 1236 1455 1456 8 645 646 1192 1193 1235 1236 1455 1456 8 645 646 1192 1193 1235 1236 1455 1456 8 645 646 1192 1193 1235 1236 1455 1456 8 645 646 1192 1193 1235 1236 1455 1456 8 645 646 1192 1193 1235 1236 1455 1456 4 645 646 1455 1456 4 645 646 1455 1456 4 645 646 1455 1456 4 645 646 1455 1456 4 645 646 1455 1456 4 645 646 1455 1456 8 645 646 976 977 1019 1020 1455 1456 8 645 646 976 977 1019 1020 1455 1456 8 645 646 976 977 1019 1020 1455 1456 8 645 646 976 977 1019 1020 1455 1456 8 645 646 976 977 1019 1020 1455 1456 8 645 646 976 977 1019 1020 1455 1456 3 645 976 1019 3 645 976 1019 3 645 976 1019 3 645 976 1019 3 645 976 1019 3 645 976 1019 3 646 1193 1236 3 646 1193 1236 3 646 1193 1236 3 646 1193 1236 3 646 1193 1236 3 646 1193 1236 8 646 647 1193 1194 1236 1237 1462 1463 8 646 647 1193 1194 1236 1237 1462 1463 8 646 647 1193 1194 1236 1237 1462 1463 8 646 647 1193 1194 1236 1237 1462 1463 8 646 647 1193 1194 1236 1237 1462 1463 8 646 647 1193 1194 1236 1237 1462 1463 4 646 647 1462 1463 4 646 647 1462 1463 4 646 647 1462 1463 4 646 647 1462 1463 4 646 647 1462 1463 4 646 647 1462 1463 8 646 647 977 978 1020 1021 1462 1463 8 646 647 977 978 1020 1021 1462 1463 8 646 647 977 978 1020 1021 1462 1463 8 646 647 977 978 1020 1021 1462 1463 8 646 647 977 978 1020 1021 1462 1463 8 646 647 977 978 1020 1021 1462 1463 3 646 977 1020 3 646 977 1020 3 646 977 1020 3 646 977 1020 3 646 977 1020 3 646 977 1020 3 647 1194 1237 3 647 1194 1237 3 647 1194 1237 3 647 1194 1237 3 647 1194 1237 3 647 1194 1237 8 647 648 1194 1195 1237 1238 1470 1471 8 647 648 1194 1195 1237 1238 1470 1471 8 647 648 1194 1195 1237 1238 1470 1471 8 647 648 1194 1195 1237 1238 1470 1471 8 647 648 1194 1195 1237 1238 1470 1471 8 647 648 1194 1195 1237 1238 1470 1471 4 647 648 1470 1471 4 647 648 1470 1471 4 647 648 1470 1471 4 647 648 1470 1471 4 647 648 1470 1471 4 647 648 1470 1471 8 647 648 978 979 1021 1022 1470 1471 8 647 648 978 979 1021 1022 1470 1471 8 647 648 978 979 1021 1022 1470 1471 8 647 648 978 979 1021 1022 1470 1471 8 647 648 978 979 1021 1022 1470 1471 8 647 648 978 979 1021 1022 1470 1471 3 647 978 1021 3 647 978 1021 3 647 978 1021 3 647 978 1021 3 647 978 1021 3 647 978 1021 3 648 1195 1238 3 648 1195 1238 3 648 1195 1238 3 648 1195 1238 3 648 1195 1238 3 648 1195 1238 8 648 649 1195 1196 1238 1239 1477 1478 8 648 649 1195 1196 1238 1239 1477 1478 8 648 649 1195 1196 1238 1239 1477 1478 8 648 649 1195 1196 1238 1239 1477 1478 8 648 649 1195 1196 1238 1239 1477 1478 8 648 649 1195 1196 1238 1239 1477 1478 4 648 649 1477 1478 4 648 649 1477 1478 4 648 649 1477 1478 4 648 649 1477 1478 4 648 649 1477 1478 4 648 649 1477 1478 8 648 649 979 980 1022 1023 1477 1478 8 648 649 979 980 1022 1023 1477 1478 8 648 649 979 980 1022 1023 1477 1478 8 648 649 979 980 1022 1023 1477 1478 8 648 649 979 980 1022 1023 1477 1478 8 648 649 979 980 1022 1023 1477 1478 3 648 979 1022 3 648 979 1022 3 648 979 1022 3 648 979 1022 3 648 979 1022 3 648 979 1022 3 649 1196 1239 3 649 1196 1239 3 649 1196 1239 3 649 1196 1239 3 649 1196 1239 3 649 1196 1239 11 649 650 651 1196 1197 1239 1240 1484 1485 1486 1487 11 649 650 651 1196 1197 1239 1240 1484 1485 1486 1487 11 649 650 651 1196 1197 1239 1240 1484 1485 1486 1487 11 649 650 651 1196 1197 1239 1240 1484 1485 1486 1487 11 649 650 651 1196 1197 1239 1240 1484 1485 1486 1487 11 649 650 651 1196 1197 1239 1240 1484 1485 1486 1487 4 649 651 1485 1487 4 649 651 1485 1487 4 649 651 1485 1487 4 649 651 1485 1487 4 649 651 1485 1487 4 649 651 1485 1487 8 649 651 980 981 1023 1024 1485 1487 8 649 651 980 981 1023 1024 1485 1487 8 649 651 980 981 1023 1024 1485 1487 8 649 651 980 981 1023 1024 1485 1487 8 649 651 980 981 1023 1024 1485 1487 8 649 651 980 981 1023 1024 1485 1487 3 649 980 1023 3 649 980 1023 3 649 980 1023 3 649 980 1023 3 649 980 1023 3 649 980 1023 8 650 1368 1379 1484 1486 2238 2240 2987 8 650 1368 1379 1484 1486 2238 2240 2987 8 650 1368 1379 1484 1486 2238 2240 2987 8 650 1368 1379 1484 1486 2238 2240 2987 8 650 1368 1379 1484 1486 2238 2240 2987 8 650 1368 1379 1484 1486 2238 2240 2987 4 650 1368 1379 2987 4 650 1368 1379 2987 4 650 1368 1379 2987 4 650 1368 1379 2987 4 650 1368 1379 2987 4 650 1368 1379 2987 8 650 1368 1379 1494 1496 2228 2230 2987 8 650 1368 1379 1494 1496 2228 2230 2987 8 650 1368 1379 1494 1496 2228 2230 2987 8 650 1368 1379 1494 1496 2228 2230 2987 8 650 1368 1379 1494 1496 2228 2230 2987 8 650 1368 1379 1494 1496 2228 2230 2987 3 650 1494 1496 3 650 1494 1496 3 650 1494 1496 3 650 1494 1496 3 650 1494 1496 3 650 1494 1496 11 650 651 652 1197 1198 1240 1241 1494 1495 1496 1497 11 650 651 652 1197 1198 1240 1241 1494 1495 1496 1497 11 650 651 652 1197 1198 1240 1241 1494 1495 1496 1497 11 650 651 652 1197 1198 1240 1241 1494 1495 1496 1497 11 650 651 652 1197 1198 1240 1241 1494 1495 1496 1497 11 650 651 652 1197 1198 1240 1241 1494 1495 1496 1497 4 650 651 1197 1240 4 650 651 1197 1240 4 650 651 1197 1240 4 650 651 1197 1240 4 650 651 1197 1240 4 650 651 1197 1240 3 650 1484 1486 3 650 1484 1486 3 650 1484 1486 3 650 1484 1486 3 650 1484 1486 3 650 1484 1486 4 651 652 1495 1497 4 651 652 1495 1497 4 651 652 1495 1497 4 651 652 1495 1497 4 651 652 1495 1497 4 651 652 1495 1497 8 651 652 981 982 1024 1025 1495 1497 8 651 652 981 982 1024 1025 1495 1497 8 651 652 981 982 1024 1025 1495 1497 8 651 652 981 982 1024 1025 1495 1497 8 651 652 981 982 1024 1025 1495 1497 8 651 652 981 982 1024 1025 1495 1497 3 651 981 1024 3 651 981 1024 3 651 981 1024 3 651 981 1024 3 651 981 1024 3 651 981 1024 3 652 1198 1241 3 652 1198 1241 3 652 1198 1241 3 652 1198 1241 3 652 1198 1241 3 652 1198 1241 8 652 653 1198 1199 1241 1242 1503 1504 8 652 653 1198 1199 1241 1242 1503 1504 8 652 653 1198 1199 1241 1242 1503 1504 8 652 653 1198 1199 1241 1242 1503 1504 8 652 653 1198 1199 1241 1242 1503 1504 8 652 653 1198 1199 1241 1242 1503 1504 4 652 653 1503 1504 4 652 653 1503 1504 4 652 653 1503 1504 4 652 653 1503 1504 4 652 653 1503 1504 4 652 653 1503 1504 8 652 653 982 983 1025 1026 1503 1504 8 652 653 982 983 1025 1026 1503 1504 8 652 653 982 983 1025 1026 1503 1504 8 652 653 982 983 1025 1026 1503 1504 8 652 653 982 983 1025 1026 1503 1504 8 652 653 982 983 1025 1026 1503 1504 3 652 982 1025 3 652 982 1025 3 652 982 1025 3 652 982 1025 3 652 982 1025 3 652 982 1025 3 653 1199 1242 3 653 1199 1242 3 653 1199 1242 3 653 1199 1242 3 653 1199 1242 3 653 1199 1242 8 653 654 1199 1200 1242 1243 1510 1511 8 653 654 1199 1200 1242 1243 1510 1511 8 653 654 1199 1200 1242 1243 1510 1511 8 653 654 1199 1200 1242 1243 1510 1511 8 653 654 1199 1200 1242 1243 1510 1511 8 653 654 1199 1200 1242 1243 1510 1511 4 653 654 1510 1511 4 653 654 1510 1511 4 653 654 1510 1511 4 653 654 1510 1511 4 653 654 1510 1511 4 653 654 1510 1511 8 653 654 983 984 1026 1027 1510 1511 8 653 654 983 984 1026 1027 1510 1511 8 653 654 983 984 1026 1027 1510 1511 8 653 654 983 984 1026 1027 1510 1511 8 653 654 983 984 1026 1027 1510 1511 8 653 654 983 984 1026 1027 1510 1511 3 653 983 1026 3 653 983 1026 3 653 983 1026 3 653 983 1026 3 653 983 1026 3 653 983 1026 3 654 1200 1243 3 654 1200 1243 3 654 1200 1243 3 654 1200 1243 3 654 1200 1243 3 654 1200 1243 8 654 655 1200 1201 1243 1244 1518 1519 8 654 655 1200 1201 1243 1244 1518 1519 8 654 655 1200 1201 1243 1244 1518 1519 8 654 655 1200 1201 1243 1244 1518 1519 8 654 655 1200 1201 1243 1244 1518 1519 8 654 655 1200 1201 1243 1244 1518 1519 4 654 655 1518 1519 4 654 655 1518 1519 4 654 655 1518 1519 4 654 655 1518 1519 4 654 655 1518 1519 4 654 655 1518 1519 8 654 655 984 985 1027 1028 1518 1519 8 654 655 984 985 1027 1028 1518 1519 8 654 655 984 985 1027 1028 1518 1519 8 654 655 984 985 1027 1028 1518 1519 8 654 655 984 985 1027 1028 1518 1519 8 654 655 984 985 1027 1028 1518 1519 3 654 984 1027 3 654 984 1027 3 654 984 1027 3 654 984 1027 3 654 984 1027 3 654 984 1027 3 655 1201 1244 3 655 1201 1244 3 655 1201 1244 3 655 1201 1244 3 655 1201 1244 3 655 1201 1244 8 655 656 1201 1202 1244 1245 1525 1526 8 655 656 1201 1202 1244 1245 1525 1526 8 655 656 1201 1202 1244 1245 1525 1526 8 655 656 1201 1202 1244 1245 1525 1526 8 655 656 1201 1202 1244 1245 1525 1526 8 655 656 1201 1202 1244 1245 1525 1526 4 655 656 1525 1526 4 655 656 1525 1526 4 655 656 1525 1526 4 655 656 1525 1526 4 655 656 1525 1526 4 655 656 1525 1526 8 655 656 985 986 1028 1029 1525 1526 8 655 656 985 986 1028 1029 1525 1526 8 655 656 985 986 1028 1029 1525 1526 8 655 656 985 986 1028 1029 1525 1526 8 655 656 985 986 1028 1029 1525 1526 8 655 656 985 986 1028 1029 1525 1526 3 655 985 1028 3 655 985 1028 3 655 985 1028 3 655 985 1028 3 655 985 1028 3 655 985 1028 3 656 1202 1245 3 656 1202 1245 3 656 1202 1245 3 656 1202 1245 3 656 1202 1245 3 656 1202 1245 10 656 657 1202 1203 1245 1246 1532 1533 1534 1535 10 656 657 1202 1203 1245 1246 1532 1533 1534 1535 10 656 657 1202 1203 1245 1246 1532 1533 1534 1535 10 656 657 1202 1203 1245 1246 1532 1533 1534 1535 10 656 657 1202 1203 1245 1246 1532 1533 1534 1535 10 656 657 1202 1203 1245 1246 1532 1533 1534 1535 4 656 657 1533 1535 4 656 657 1533 1535 4 656 657 1533 1535 4 656 657 1533 1535 4 656 657 1533 1535 4 656 657 1533 1535 8 656 657 986 987 1029 1030 1533 1535 8 656 657 986 987 1029 1030 1533 1535 8 656 657 986 987 1029 1030 1533 1535 8 656 657 986 987 1029 1030 1533 1535 8 656 657 986 987 1029 1030 1533 1535 8 656 657 986 987 1029 1030 1533 1535 3 656 986 1029 3 656 986 1029 3 656 986 1029 3 656 986 1029 3 656 986 1029 3 656 986 1029 3 657 1203 1246 3 657 1203 1246 3 657 1203 1246 3 657 1203 1246 3 657 1203 1246 3 657 1203 1246 8 657 658 1203 1204 1246 1247 1542 1543 8 657 658 1203 1204 1246 1247 1542 1543 8 657 658 1203 1204 1246 1247 1542 1543 8 657 658 1203 1204 1246 1247 1542 1543 8 657 658 1203 1204 1246 1247 1542 1543 8 657 658 1203 1204 1246 1247 1542 1543 4 657 658 1542 1543 4 657 658 1542 1543 4 657 658 1542 1543 4 657 658 1542 1543 4 657 658 1542 1543 4 657 658 1542 1543 8 657 658 987 988 1030 1031 1542 1543 8 657 658 987 988 1030 1031 1542 1543 8 657 658 987 988 1030 1031 1542 1543 8 657 658 987 988 1030 1031 1542 1543 8 657 658 987 988 1030 1031 1542 1543 8 657 658 987 988 1030 1031 1542 1543 3 657 987 1030 3 657 987 1030 3 657 987 1030 3 657 987 1030 3 657 987 1030 3 657 987 1030 3 658 1204 1247 3 658 1204 1247 3 658 1204 1247 3 658 1204 1247 3 658 1204 1247 3 658 1204 1247 8 658 659 1204 1205 1247 1248 1549 1550 8 658 659 1204 1205 1247 1248 1549 1550 8 658 659 1204 1205 1247 1248 1549 1550 8 658 659 1204 1205 1247 1248 1549 1550 8 658 659 1204 1205 1247 1248 1549 1550 8 658 659 1204 1205 1247 1248 1549 1550 4 658 659 1549 1550 4 658 659 1549 1550 4 658 659 1549 1550 4 658 659 1549 1550 4 658 659 1549 1550 4 658 659 1549 1550 8 658 659 988 989 1031 1032 1549 1550 8 658 659 988 989 1031 1032 1549 1550 8 658 659 988 989 1031 1032 1549 1550 8 658 659 988 989 1031 1032 1549 1550 8 658 659 988 989 1031 1032 1549 1550 8 658 659 988 989 1031 1032 1549 1550 3 658 988 1031 3 658 988 1031 3 658 988 1031 3 658 988 1031 3 658 988 1031 3 658 988 1031 3 659 1205 1248 3 659 1205 1248 3 659 1205 1248 3 659 1205 1248 3 659 1205 1248 3 659 1205 1248 8 659 660 1205 1206 1248 1249 1556 1557 8 659 660 1205 1206 1248 1249 1556 1557 8 659 660 1205 1206 1248 1249 1556 1557 8 659 660 1205 1206 1248 1249 1556 1557 8 659 660 1205 1206 1248 1249 1556 1557 8 659 660 1205 1206 1248 1249 1556 1557 4 659 660 1556 1557 4 659 660 1556 1557 4 659 660 1556 1557 4 659 660 1556 1557 4 659 660 1556 1557 4 659 660 1556 1557 8 659 660 989 990 1032 1033 1556 1557 8 659 660 989 990 1032 1033 1556 1557 8 659 660 989 990 1032 1033 1556 1557 8 659 660 989 990 1032 1033 1556 1557 8 659 660 989 990 1032 1033 1556 1557 8 659 660 989 990 1032 1033 1556 1557 3 659 989 1032 3 659 989 1032 3 659 989 1032 3 659 989 1032 3 659 989 1032 3 659 989 1032 3 660 1206 1249 3 660 1206 1249 3 660 1206 1249 3 660 1206 1249 3 660 1206 1249 3 660 1206 1249 8 660 661 1206 1207 1249 1250 1564 1565 8 660 661 1206 1207 1249 1250 1564 1565 8 660 661 1206 1207 1249 1250 1564 1565 8 660 661 1206 1207 1249 1250 1564 1565 8 660 661 1206 1207 1249 1250 1564 1565 8 660 661 1206 1207 1249 1250 1564 1565 4 660 661 1564 1565 4 660 661 1564 1565 4 660 661 1564 1565 4 660 661 1564 1565 4 660 661 1564 1565 4 660 661 1564 1565 8 660 661 990 991 1033 1034 1564 1565 8 660 661 990 991 1033 1034 1564 1565 8 660 661 990 991 1033 1034 1564 1565 8 660 661 990 991 1033 1034 1564 1565 8 660 661 990 991 1033 1034 1564 1565 8 660 661 990 991 1033 1034 1564 1565 3 660 990 1033 3 660 990 1033 3 660 990 1033 3 660 990 1033 3 660 990 1033 3 660 990 1033 3 661 1207 1250 3 661 1207 1250 3 661 1207 1250 3 661 1207 1250 3 661 1207 1250 3 661 1207 1250 8 661 662 1207 1208 1250 1251 1571 1572 8 661 662 1207 1208 1250 1251 1571 1572 8 661 662 1207 1208 1250 1251 1571 1572 8 661 662 1207 1208 1250 1251 1571 1572 8 661 662 1207 1208 1250 1251 1571 1572 8 661 662 1207 1208 1250 1251 1571 1572 4 661 662 1571 1572 4 661 662 1571 1572 4 661 662 1571 1572 4 661 662 1571 1572 4 661 662 1571 1572 4 661 662 1571 1572 8 661 662 991 992 1034 1035 1571 1572 8 661 662 991 992 1034 1035 1571 1572 8 661 662 991 992 1034 1035 1571 1572 8 661 662 991 992 1034 1035 1571 1572 8 661 662 991 992 1034 1035 1571 1572 8 661 662 991 992 1034 1035 1571 1572 3 661 991 1034 3 661 991 1034 3 661 991 1034 3 661 991 1034 3 661 991 1034 3 661 991 1034 3 662 1208 1251 3 662 1208 1251 3 662 1208 1251 3 662 1208 1251 3 662 1208 1251 3 662 1208 1251 10 662 663 1208 1209 1251 1252 1578 1579 1580 1581 10 662 663 1208 1209 1251 1252 1578 1579 1580 1581 10 662 663 1208 1209 1251 1252 1578 1579 1580 1581 10 662 663 1208 1209 1251 1252 1578 1579 1580 1581 10 662 663 1208 1209 1251 1252 1578 1579 1580 1581 10 662 663 1208 1209 1251 1252 1578 1579 1580 1581 4 662 663 1579 1581 4 662 663 1579 1581 4 662 663 1579 1581 4 662 663 1579 1581 4 662 663 1579 1581 4 662 663 1579 1581 8 662 663 992 993 1035 1036 1579 1581 8 662 663 992 993 1035 1036 1579 1581 8 662 663 992 993 1035 1036 1579 1581 8 662 663 992 993 1035 1036 1579 1581 8 662 663 992 993 1035 1036 1579 1581 8 662 663 992 993 1035 1036 1579 1581 3 662 992 1035 3 662 992 1035 3 662 992 1035 3 662 992 1035 3 662 992 1035 3 662 992 1035 3 663 1209 1252 3 663 1209 1252 3 663 1209 1252 3 663 1209 1252 3 663 1209 1252 3 663 1209 1252 8 663 664 1209 1210 1252 1253 1588 1589 8 663 664 1209 1210 1252 1253 1588 1589 8 663 664 1209 1210 1252 1253 1588 1589 8 663 664 1209 1210 1252 1253 1588 1589 8 663 664 1209 1210 1252 1253 1588 1589 8 663 664 1209 1210 1252 1253 1588 1589 4 663 664 1588 1589 4 663 664 1588 1589 4 663 664 1588 1589 4 663 664 1588 1589 4 663 664 1588 1589 4 663 664 1588 1589 8 663 664 993 994 1036 1037 1588 1589 8 663 664 993 994 1036 1037 1588 1589 8 663 664 993 994 1036 1037 1588 1589 8 663 664 993 994 1036 1037 1588 1589 8 663 664 993 994 1036 1037 1588 1589 8 663 664 993 994 1036 1037 1588 1589 3 663 993 1036 3 663 993 1036 3 663 993 1036 3 663 993 1036 3 663 993 1036 3 663 993 1036 3 664 1210 1253 3 664 1210 1253 3 664 1210 1253 3 664 1210 1253 3 664 1210 1253 3 664 1210 1253 8 664 665 1210 1211 1253 1254 1595 1596 8 664 665 1210 1211 1253 1254 1595 1596 8 664 665 1210 1211 1253 1254 1595 1596 8 664 665 1210 1211 1253 1254 1595 1596 8 664 665 1210 1211 1253 1254 1595 1596 8 664 665 1210 1211 1253 1254 1595 1596 4 664 665 1595 1596 4 664 665 1595 1596 4 664 665 1595 1596 4 664 665 1595 1596 4 664 665 1595 1596 4 664 665 1595 1596 8 664 665 994 995 1037 1038 1595 1596 8 664 665 994 995 1037 1038 1595 1596 8 664 665 994 995 1037 1038 1595 1596 8 664 665 994 995 1037 1038 1595 1596 8 664 665 994 995 1037 1038 1595 1596 8 664 665 994 995 1037 1038 1595 1596 3 664 994 1037 3 664 994 1037 3 664 994 1037 3 664 994 1037 3 664 994 1037 3 664 994 1037 3 665 1211 1254 3 665 1211 1254 3 665 1211 1254 3 665 1211 1254 3 665 1211 1254 3 665 1211 1254 8 665 666 1211 1212 1254 1255 1602 1603 8 665 666 1211 1212 1254 1255 1602 1603 8 665 666 1211 1212 1254 1255 1602 1603 8 665 666 1211 1212 1254 1255 1602 1603 8 665 666 1211 1212 1254 1255 1602 1603 8 665 666 1211 1212 1254 1255 1602 1603 4 665 666 1602 1603 4 665 666 1602 1603 4 665 666 1602 1603 4 665 666 1602 1603 4 665 666 1602 1603 4 665 666 1602 1603 8 665 666 995 996 1038 1039 1602 1603 8 665 666 995 996 1038 1039 1602 1603 8 665 666 995 996 1038 1039 1602 1603 8 665 666 995 996 1038 1039 1602 1603 8 665 666 995 996 1038 1039 1602 1603 8 665 666 995 996 1038 1039 1602 1603 3 665 995 1038 3 665 995 1038 3 665 995 1038 3 665 995 1038 3 665 995 1038 3 665 995 1038 3 666 1212 1255 3 666 1212 1255 3 666 1212 1255 3 666 1212 1255 3 666 1212 1255 3 666 1212 1255 8 666 667 1212 1213 1255 1256 1610 1611 8 666 667 1212 1213 1255 1256 1610 1611 8 666 667 1212 1213 1255 1256 1610 1611 8 666 667 1212 1213 1255 1256 1610 1611 8 666 667 1212 1213 1255 1256 1610 1611 8 666 667 1212 1213 1255 1256 1610 1611 4 666 667 1610 1611 4 666 667 1610 1611 4 666 667 1610 1611 4 666 667 1610 1611 4 666 667 1610 1611 4 666 667 1610 1611 8 666 667 996 997 1039 1040 1610 1611 8 666 667 996 997 1039 1040 1610 1611 8 666 667 996 997 1039 1040 1610 1611 8 666 667 996 997 1039 1040 1610 1611 8 666 667 996 997 1039 1040 1610 1611 8 666 667 996 997 1039 1040 1610 1611 3 666 996 1039 3 666 996 1039 3 666 996 1039 3 666 996 1039 3 666 996 1039 3 666 996 1039 3 667 1213 1256 3 667 1213 1256 3 667 1213 1256 3 667 1213 1256 3 667 1213 1256 3 667 1213 1256 8 667 668 1213 1214 1256 1257 1617 1618 8 667 668 1213 1214 1256 1257 1617 1618 8 667 668 1213 1214 1256 1257 1617 1618 8 667 668 1213 1214 1256 1257 1617 1618 8 667 668 1213 1214 1256 1257 1617 1618 8 667 668 1213 1214 1256 1257 1617 1618 4 667 668 1617 1618 4 667 668 1617 1618 4 667 668 1617 1618 4 667 668 1617 1618 4 667 668 1617 1618 4 667 668 1617 1618 8 667 668 997 998 1040 1041 1617 1618 8 667 668 997 998 1040 1041 1617 1618 8 667 668 997 998 1040 1041 1617 1618 8 667 668 997 998 1040 1041 1617 1618 8 667 668 997 998 1040 1041 1617 1618 8 667 668 997 998 1040 1041 1617 1618 3 667 997 1040 3 667 997 1040 3 667 997 1040 3 667 997 1040 3 667 997 1040 3 667 997 1040 3 668 1214 1257 3 668 1214 1257 3 668 1214 1257 3 668 1214 1257 3 668 1214 1257 3 668 1214 1257 10 668 669 1214 1215 1257 1258 1624 1625 1626 1627 10 668 669 1214 1215 1257 1258 1624 1625 1626 1627 10 668 669 1214 1215 1257 1258 1624 1625 1626 1627 10 668 669 1214 1215 1257 1258 1624 1625 1626 1627 10 668 669 1214 1215 1257 1258 1624 1625 1626 1627 10 668 669 1214 1215 1257 1258 1624 1625 1626 1627 4 668 669 1625 1627 4 668 669 1625 1627 4 668 669 1625 1627 4 668 669 1625 1627 4 668 669 1625 1627 4 668 669 1625 1627 8 668 669 998 999 1041 1042 1625 1627 8 668 669 998 999 1041 1042 1625 1627 8 668 669 998 999 1041 1042 1625 1627 8 668 669 998 999 1041 1042 1625 1627 8 668 669 998 999 1041 1042 1625 1627 8 668 669 998 999 1041 1042 1625 1627 3 668 998 1041 3 668 998 1041 3 668 998 1041 3 668 998 1041 3 668 998 1041 3 668 998 1041 3 669 1215 1258 3 669 1215 1258 3 669 1215 1258 3 669 1215 1258 3 669 1215 1258 3 669 1215 1258 8 669 670 1215 1216 1258 1259 1634 1635 8 669 670 1215 1216 1258 1259 1634 1635 8 669 670 1215 1216 1258 1259 1634 1635 8 669 670 1215 1216 1258 1259 1634 1635 8 669 670 1215 1216 1258 1259 1634 1635 8 669 670 1215 1216 1258 1259 1634 1635 4 669 670 1634 1635 4 669 670 1634 1635 4 669 670 1634 1635 4 669 670 1634 1635 4 669 670 1634 1635 4 669 670 1634 1635 8 669 670 999 1000 1042 1043 1634 1635 8 669 670 999 1000 1042 1043 1634 1635 8 669 670 999 1000 1042 1043 1634 1635 8 669 670 999 1000 1042 1043 1634 1635 8 669 670 999 1000 1042 1043 1634 1635 8 669 670 999 1000 1042 1043 1634 1635 3 669 999 1042 3 669 999 1042 3 669 999 1042 3 669 999 1042 3 669 999 1042 3 669 999 1042 3 670 1216 1259 3 670 1216 1259 3 670 1216 1259 3 670 1216 1259 3 670 1216 1259 3 670 1216 1259 8 670 671 1216 1217 1259 1260 1641 1642 8 670 671 1216 1217 1259 1260 1641 1642 8 670 671 1216 1217 1259 1260 1641 1642 8 670 671 1216 1217 1259 1260 1641 1642 8 670 671 1216 1217 1259 1260 1641 1642 8 670 671 1216 1217 1259 1260 1641 1642 4 670 671 1641 1642 4 670 671 1641 1642 4 670 671 1641 1642 4 670 671 1641 1642 4 670 671 1641 1642 4 670 671 1641 1642 8 670 671 1000 1001 1043 1044 1641 1642 8 670 671 1000 1001 1043 1044 1641 1642 8 670 671 1000 1001 1043 1044 1641 1642 8 670 671 1000 1001 1043 1044 1641 1642 8 670 671 1000 1001 1043 1044 1641 1642 8 670 671 1000 1001 1043 1044 1641 1642 3 670 1000 1043 3 670 1000 1043 3 670 1000 1043 3 670 1000 1043 3 670 1000 1043 3 670 1000 1043 3 671 1217 1260 3 671 1217 1260 3 671 1217 1260 3 671 1217 1260 3 671 1217 1260 3 671 1217 1260 8 671 672 1217 1218 1260 1261 1648 1649 8 671 672 1217 1218 1260 1261 1648 1649 8 671 672 1217 1218 1260 1261 1648 1649 8 671 672 1217 1218 1260 1261 1648 1649 8 671 672 1217 1218 1260 1261 1648 1649 8 671 672 1217 1218 1260 1261 1648 1649 4 671 672 1648 1649 4 671 672 1648 1649 4 671 672 1648 1649 4 671 672 1648 1649 4 671 672 1648 1649 4 671 672 1648 1649 8 671 672 1001 1002 1044 1045 1648 1649 8 671 672 1001 1002 1044 1045 1648 1649 8 671 672 1001 1002 1044 1045 1648 1649 8 671 672 1001 1002 1044 1045 1648 1649 8 671 672 1001 1002 1044 1045 1648 1649 8 671 672 1001 1002 1044 1045 1648 1649 3 671 1001 1044 3 671 1001 1044 3 671 1001 1044 3 671 1001 1044 3 671 1001 1044 3 671 1001 1044 3 672 1218 1261 3 672 1218 1261 3 672 1218 1261 3 672 1218 1261 3 672 1218 1261 3 672 1218 1261 8 672 673 1218 1219 1261 1262 1656 1657 8 672 673 1218 1219 1261 1262 1656 1657 8 672 673 1218 1219 1261 1262 1656 1657 8 672 673 1218 1219 1261 1262 1656 1657 8 672 673 1218 1219 1261 1262 1656 1657 8 672 673 1218 1219 1261 1262 1656 1657 4 672 673 1656 1657 4 672 673 1656 1657 4 672 673 1656 1657 4 672 673 1656 1657 4 672 673 1656 1657 4 672 673 1656 1657 8 672 673 1002 1003 1045 1046 1656 1657 8 672 673 1002 1003 1045 1046 1656 1657 8 672 673 1002 1003 1045 1046 1656 1657 8 672 673 1002 1003 1045 1046 1656 1657 8 672 673 1002 1003 1045 1046 1656 1657 8 672 673 1002 1003 1045 1046 1656 1657 3 672 1002 1045 3 672 1002 1045 3 672 1002 1045 3 672 1002 1045 3 672 1002 1045 3 672 1002 1045 3 673 1219 1262 3 673 1219 1262 3 673 1219 1262 3 673 1219 1262 3 673 1219 1262 3 673 1219 1262 8 673 674 1219 1220 1262 1263 1663 1664 8 673 674 1219 1220 1262 1263 1663 1664 8 673 674 1219 1220 1262 1263 1663 1664 8 673 674 1219 1220 1262 1263 1663 1664 8 673 674 1219 1220 1262 1263 1663 1664 8 673 674 1219 1220 1262 1263 1663 1664 4 673 674 1663 1664 4 673 674 1663 1664 4 673 674 1663 1664 4 673 674 1663 1664 4 673 674 1663 1664 4 673 674 1663 1664 8 673 674 1003 1004 1046 1047 1663 1664 8 673 674 1003 1004 1046 1047 1663 1664 8 673 674 1003 1004 1046 1047 1663 1664 8 673 674 1003 1004 1046 1047 1663 1664 8 673 674 1003 1004 1046 1047 1663 1664 8 673 674 1003 1004 1046 1047 1663 1664 3 673 1003 1046 3 673 1003 1046 3 673 1003 1046 3 673 1003 1046 3 673 1003 1046 3 673 1003 1046 3 674 1220 1263 3 674 1220 1263 3 674 1220 1263 3 674 1220 1263 3 674 1220 1263 3 674 1220 1263 10 674 675 1220 1221 1263 1264 1670 1671 1672 1673 10 674 675 1220 1221 1263 1264 1670 1671 1672 1673 10 674 675 1220 1221 1263 1264 1670 1671 1672 1673 10 674 675 1220 1221 1263 1264 1670 1671 1672 1673 10 674 675 1220 1221 1263 1264 1670 1671 1672 1673 10 674 675 1220 1221 1263 1264 1670 1671 1672 1673 4 674 675 1671 1673 4 674 675 1671 1673 4 674 675 1671 1673 4 674 675 1671 1673 4 674 675 1671 1673 4 674 675 1671 1673 8 674 675 1004 1005 1047 1048 1671 1673 8 674 675 1004 1005 1047 1048 1671 1673 8 674 675 1004 1005 1047 1048 1671 1673 8 674 675 1004 1005 1047 1048 1671 1673 8 674 675 1004 1005 1047 1048 1671 1673 8 674 675 1004 1005 1047 1048 1671 1673 3 674 1004 1047 3 674 1004 1047 3 674 1004 1047 3 674 1004 1047 3 674 1004 1047 3 674 1004 1047 3 675 1221 1264 3 675 1221 1264 3 675 1221 1264 3 675 1221 1264 3 675 1221 1264 3 675 1221 1264 8 675 676 1221 1222 1264 1265 1680 1681 8 675 676 1221 1222 1264 1265 1680 1681 8 675 676 1221 1222 1264 1265 1680 1681 8 675 676 1221 1222 1264 1265 1680 1681 8 675 676 1221 1222 1264 1265 1680 1681 8 675 676 1221 1222 1264 1265 1680 1681 4 675 676 1680 1681 4 675 676 1680 1681 4 675 676 1680 1681 4 675 676 1680 1681 4 675 676 1680 1681 4 675 676 1680 1681 8 675 676 1005 1006 1048 1049 1680 1681 8 675 676 1005 1006 1048 1049 1680 1681 8 675 676 1005 1006 1048 1049 1680 1681 8 675 676 1005 1006 1048 1049 1680 1681 8 675 676 1005 1006 1048 1049 1680 1681 8 675 676 1005 1006 1048 1049 1680 1681 3 675 1005 1048 3 675 1005 1048 3 675 1005 1048 3 675 1005 1048 3 675 1005 1048 3 675 1005 1048 3 676 1222 1265 3 676 1222 1265 3 676 1222 1265 3 676 1222 1265 3 676 1222 1265 3 676 1222 1265 8 676 677 1222 1223 1265 1266 1687 1688 8 676 677 1222 1223 1265 1266 1687 1688 8 676 677 1222 1223 1265 1266 1687 1688 8 676 677 1222 1223 1265 1266 1687 1688 8 676 677 1222 1223 1265 1266 1687 1688 8 676 677 1222 1223 1265 1266 1687 1688 4 676 677 1687 1688 4 676 677 1687 1688 4 676 677 1687 1688 4 676 677 1687 1688 4 676 677 1687 1688 4 676 677 1687 1688 8 676 677 1006 1007 1049 1050 1687 1688 8 676 677 1006 1007 1049 1050 1687 1688 8 676 677 1006 1007 1049 1050 1687 1688 8 676 677 1006 1007 1049 1050 1687 1688 8 676 677 1006 1007 1049 1050 1687 1688 8 676 677 1006 1007 1049 1050 1687 1688 3 676 1006 1049 3 676 1006 1049 3 676 1006 1049 3 676 1006 1049 3 676 1006 1049 3 676 1006 1049 3 677 1223 1266 3 677 1223 1266 3 677 1223 1266 3 677 1223 1266 3 677 1223 1266 3 677 1223 1266 11 677 678 679 1223 1224 1266 1267 1694 1695 1696 1697 11 677 678 679 1223 1224 1266 1267 1694 1695 1696 1697 11 677 678 679 1223 1224 1266 1267 1694 1695 1696 1697 11 677 678 679 1223 1224 1266 1267 1694 1695 1696 1697 11 677 678 679 1223 1224 1266 1267 1694 1695 1696 1697 11 677 678 679 1223 1224 1266 1267 1694 1695 1696 1697 4 677 679 1695 1697 4 677 679 1695 1697 4 677 679 1695 1697 4 677 679 1695 1697 4 677 679 1695 1697 4 677 679 1695 1697 8 677 679 1007 1008 1050 1051 1695 1697 8 677 679 1007 1008 1050 1051 1695 1697 8 677 679 1007 1008 1050 1051 1695 1697 8 677 679 1007 1008 1050 1051 1695 1697 8 677 679 1007 1008 1050 1051 1695 1697 8 677 679 1007 1008 1050 1051 1695 1697 3 677 1007 1050 3 677 1007 1050 3 677 1007 1050 3 677 1007 1050 3 677 1007 1050 3 677 1007 1050 8 678 1377 1388 1694 1696 2028 2030 2959 8 678 1377 1388 1694 1696 2028 2030 2959 8 678 1377 1388 1694 1696 2028 2030 2959 8 678 1377 1388 1694 1696 2028 2030 2959 8 678 1377 1388 1694 1696 2028 2030 2959 8 678 1377 1388 1694 1696 2028 2030 2959 4 678 1377 1388 2959 4 678 1377 1388 2959 4 678 1377 1388 2959 4 678 1377 1388 2959 4 678 1377 1388 2959 4 678 1377 1388 2959 8 678 1377 1388 1704 1706 2018 2020 2959 8 678 1377 1388 1704 1706 2018 2020 2959 8 678 1377 1388 1704 1706 2018 2020 2959 8 678 1377 1388 1704 1706 2018 2020 2959 8 678 1377 1388 1704 1706 2018 2020 2959 8 678 1377 1388 1704 1706 2018 2020 2959 3 678 1704 1706 3 678 1704 1706 3 678 1704 1706 3 678 1704 1706 3 678 1704 1706 3 678 1704 1706 11 678 679 680 1224 1225 1267 1268 1704 1705 1706 1707 11 678 679 680 1224 1225 1267 1268 1704 1705 1706 1707 11 678 679 680 1224 1225 1267 1268 1704 1705 1706 1707 11 678 679 680 1224 1225 1267 1268 1704 1705 1706 1707 11 678 679 680 1224 1225 1267 1268 1704 1705 1706 1707 11 678 679 680 1224 1225 1267 1268 1704 1705 1706 1707 4 678 679 1224 1267 4 678 679 1224 1267 4 678 679 1224 1267 4 678 679 1224 1267 4 678 679 1224 1267 4 678 679 1224 1267 3 678 1694 1696 3 678 1694 1696 3 678 1694 1696 3 678 1694 1696 3 678 1694 1696 3 678 1694 1696 4 679 680 1705 1707 4 679 680 1705 1707 4 679 680 1705 1707 4 679 680 1705 1707 4 679 680 1705 1707 4 679 680 1705 1707 8 679 680 1008 1009 1051 1052 1705 1707 8 679 680 1008 1009 1051 1052 1705 1707 8 679 680 1008 1009 1051 1052 1705 1707 8 679 680 1008 1009 1051 1052 1705 1707 8 679 680 1008 1009 1051 1052 1705 1707 8 679 680 1008 1009 1051 1052 1705 1707 3 679 1008 1051 3 679 1008 1051 3 679 1008 1051 3 679 1008 1051 3 679 1008 1051 3 679 1008 1051 3 680 1225 1268 3 680 1225 1268 3 680 1225 1268 3 680 1225 1268 3 680 1225 1268 3 680 1225 1268 8 680 681 1225 1226 1268 1269 1713 1714 8 680 681 1225 1226 1268 1269 1713 1714 8 680 681 1225 1226 1268 1269 1713 1714 8 680 681 1225 1226 1268 1269 1713 1714 8 680 681 1225 1226 1268 1269 1713 1714 8 680 681 1225 1226 1268 1269 1713 1714 4 680 681 1713 1714 4 680 681 1713 1714 4 680 681 1713 1714 4 680 681 1713 1714 4 680 681 1713 1714 4 680 681 1713 1714 8 680 681 1009 1010 1052 1053 1713 1714 8 680 681 1009 1010 1052 1053 1713 1714 8 680 681 1009 1010 1052 1053 1713 1714 8 680 681 1009 1010 1052 1053 1713 1714 8 680 681 1009 1010 1052 1053 1713 1714 8 680 681 1009 1010 1052 1053 1713 1714 3 680 1009 1052 3 680 1009 1052 3 680 1009 1052 3 680 1009 1052 3 680 1009 1052 3 680 1009 1052 3 681 1226 1269 3 681 1226 1269 3 681 1226 1269 3 681 1226 1269 3 681 1226 1269 3 681 1226 1269 3 681 1010 1053 3 681 1010 1053 3 681 1010 1053 3 681 1010 1053 3 681 1010 1053 3 681 1010 1053 11 682 689 691 878 1141 1142 1184 1185 1402 1403 1404 11 682 689 691 878 1141 1142 1184 1185 1402 1403 1404 11 682 689 691 878 1141 1142 1184 1185 1402 1403 1404 11 682 689 691 878 1141 1142 1184 1185 1402 1403 1404 11 682 689 691 878 1141 1142 1184 1185 1402 1403 1404 11 682 689 691 878 1141 1142 1184 1185 1402 1403 1404 4 682 689 1142 1185 4 682 689 1142 1185 4 682 689 1142 1185 4 682 689 1142 1185 4 682 689 1142 1185 4 682 689 1142 1185 10 682 684 686 689 1142 1143 1185 1186 1410 1411 10 682 684 686 689 1142 1143 1185 1186 1410 1411 10 682 684 686 689 1142 1143 1185 1186 1410 1411 10 682 684 686 689 1142 1143 1185 1186 1410 1411 10 682 684 686 689 1142 1143 1185 1186 1410 1411 10 682 684 686 689 1142 1143 1185 1186 1410 1411 4 682 684 1410 1411 4 682 684 1410 1411 4 682 684 1410 1411 4 682 684 1410 1411 4 682 684 1410 1411 4 682 684 1410 1411 8 682 684 926 927 969 970 1410 1411 8 682 684 926 927 969 970 1410 1411 8 682 684 926 927 969 970 1410 1411 8 682 684 926 927 969 970 1410 1411 8 682 684 926 927 969 970 1410 1411 8 682 684 926 927 969 970 1410 1411 8 682 878 925 926 968 969 1403 1404 8 682 878 925 926 968 969 1403 1404 8 682 878 925 926 968 969 1403 1404 8 682 878 925 926 968 969 1403 1404 8 682 878 925 926 968 969 1403 1404 8 682 878 925 926 968 969 1403 1404 3 682 926 969 3 682 926 969 3 682 926 969 3 682 926 969 3 682 926 969 3 682 926 969 4 682 878 1403 1404 4 682 878 1403 1404 4 682 878 1403 1404 4 682 878 1403 1404 4 682 878 1403 1404 4 682 878 1403 1404 10 683 684 685 686 1143 1144 1186 1187 1416 1417 10 683 684 685 686 1143 1144 1186 1187 1416 1417 10 683 684 685 686 1143 1144 1186 1187 1416 1417 10 683 684 685 686 1143 1144 1186 1187 1416 1417 10 683 684 685 686 1143 1144 1186 1187 1416 1417 10 683 684 685 686 1143 1144 1186 1187 1416 1417 4 683 685 1144 1187 4 683 685 1144 1187 4 683 685 1144 1187 4 683 685 1144 1187 4 683 685 1144 1187 4 683 685 1144 1187 10 683 685 687 1144 1145 1187 1188 1422 1423 1848 10 683 685 687 1144 1145 1187 1188 1422 1423 1848 10 683 685 687 1144 1145 1187 1188 1422 1423 1848 10 683 685 687 1144 1145 1187 1188 1422 1423 1848 10 683 685 687 1144 1145 1187 1188 1422 1423 1848 10 683 685 687 1144 1145 1187 1188 1422 1423 1848 2 683 686 2 683 686 2 683 686 2 683 686 2 683 686 2 683 686 1 683 1 683 1 683 1 683 1 683 1 683 2 683 1848 2 683 1848 2 683 1848 2 683 1848 2 683 1848 2 683 1848 4 684 686 1143 1186 4 684 686 1143 1186 4 684 686 1143 1186 4 684 686 1143 1186 4 684 686 1143 1186 4 684 686 1143 1186 4 684 685 1416 1417 4 684 685 1416 1417 4 684 685 1416 1417 4 684 685 1416 1417 4 684 685 1416 1417 4 684 685 1416 1417 8 684 685 927 928 970 971 1416 1417 8 684 685 927 928 970 971 1416 1417 8 684 685 927 928 970 971 1416 1417 8 684 685 927 928 970 971 1416 1417 8 684 685 927 928 970 971 1416 1417 8 684 685 927 928 970 971 1416 1417 3 684 927 970 3 684 927 970 3 684 927 970 3 684 927 970 3 684 927 970 3 684 927 970 4 685 687 1422 1423 4 685 687 1422 1423 4 685 687 1422 1423 4 685 687 1422 1423 4 685 687 1422 1423 4 685 687 1422 1423 8 685 687 928 929 971 972 1422 1423 8 685 687 928 929 971 972 1422 1423 8 685 687 928 929 971 972 1422 1423 8 685 687 928 929 971 972 1422 1423 8 685 687 928 929 971 972 1422 1423 8 685 687 928 929 971 972 1422 1423 3 685 928 971 3 685 928 971 3 685 928 971 3 685 928 971 3 685 928 971 3 685 928 971 2 686 689 2 686 689 2 686 689 2 686 689 2 686 689 2 686 689 1 686 1 686 1 686 1 686 1 686 1 686 4 687 1145 1188 1848 4 687 1145 1188 1848 4 687 1145 1188 1848 4 687 1145 1188 1848 4 687 1145 1188 1848 4 687 1145 1188 1848 10 687 688 1145 1146 1188 1189 1428 1429 1848 1849 10 687 688 1145 1146 1188 1189 1428 1429 1848 1849 10 687 688 1145 1146 1188 1189 1428 1429 1848 1849 10 687 688 1145 1146 1188 1189 1428 1429 1848 1849 10 687 688 1145 1146 1188 1189 1428 1429 1848 1849 10 687 688 1145 1146 1188 1189 1428 1429 1848 1849 4 687 688 1428 1429 4 687 688 1428 1429 4 687 688 1428 1429 4 687 688 1428 1429 4 687 688 1428 1429 4 687 688 1428 1429 8 687 688 929 930 972 973 1428 1429 8 687 688 929 930 972 973 1428 1429 8 687 688 929 930 972 973 1428 1429 8 687 688 929 930 972 973 1428 1429 8 687 688 929 930 972 973 1428 1429 8 687 688 929 930 972 973 1428 1429 3 687 929 972 3 687 929 972 3 687 929 972 3 687 929 972 3 687 929 972 3 687 929 972 4 688 1146 1189 1849 4 688 1146 1189 1849 4 688 1146 1189 1849 4 688 1146 1189 1849 4 688 1146 1189 1849 4 688 1146 1189 1849 10 688 690 1146 1147 1189 1190 1434 1435 1849 1850 10 688 690 1146 1147 1189 1190 1434 1435 1849 1850 10 688 690 1146 1147 1189 1190 1434 1435 1849 1850 10 688 690 1146 1147 1189 1190 1434 1435 1849 1850 10 688 690 1146 1147 1189 1190 1434 1435 1849 1850 10 688 690 1146 1147 1189 1190 1434 1435 1849 1850 4 688 690 1434 1435 4 688 690 1434 1435 4 688 690 1434 1435 4 688 690 1434 1435 4 688 690 1434 1435 4 688 690 1434 1435 8 688 690 930 931 973 974 1434 1435 8 688 690 930 931 973 974 1434 1435 8 688 690 930 931 973 974 1434 1435 8 688 690 930 931 973 974 1434 1435 8 688 690 930 931 973 974 1434 1435 8 688 690 930 931 973 974 1434 1435 3 688 930 973 3 688 930 973 3 688 930 973 3 688 930 973 3 688 930 973 3 688 930 973 2 689 691 2 689 691 2 689 691 2 689 691 2 689 691 2 689 691 4 690 1147 1190 1850 4 690 1147 1190 1850 4 690 1147 1190 1850 4 690 1147 1190 1850 4 690 1147 1190 1850 4 690 1147 1190 1850 10 690 692 1147 1148 1190 1191 1440 1441 1850 1852 10 690 692 1147 1148 1190 1191 1440 1441 1850 1852 10 690 692 1147 1148 1190 1191 1440 1441 1850 1852 10 690 692 1147 1148 1190 1191 1440 1441 1850 1852 10 690 692 1147 1148 1190 1191 1440 1441 1850 1852 10 690 692 1147 1148 1190 1191 1440 1441 1850 1852 4 690 692 1440 1441 4 690 692 1440 1441 4 690 692 1440 1441 4 690 692 1440 1441 4 690 692 1440 1441 4 690 692 1440 1441 8 690 692 931 932 974 975 1440 1441 8 690 692 931 932 974 975 1440 1441 8 690 692 931 932 974 975 1440 1441 8 690 692 931 932 974 975 1440 1441 8 690 692 931 932 974 975 1440 1441 8 690 692 931 932 974 975 1440 1441 3 690 931 974 3 690 931 974 3 690 931 974 3 690 931 974 3 690 931 974 3 690 931 974 4 691 1402 2322 2946 4 691 1402 2322 2946 4 691 1402 2322 2946 4 691 1402 2322 2946 4 691 1402 2322 2946 4 691 1402 2322 2946 2 691 1402 2 691 1402 2 691 1402 2 691 1402 2 691 1402 2 691 1402 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 2 691 2946 1 691 1 691 1 691 1 691 1 691 1 691 4 692 1148 1191 1852 4 692 1148 1191 1852 4 692 1148 1191 1852 4 692 1148 1191 1852 4 692 1148 1191 1852 4 692 1148 1191 1852 11 692 693 1148 1149 1191 1192 1446 1447 1448 1851 1852 11 692 693 1148 1149 1191 1192 1446 1447 1448 1851 1852 11 692 693 1148 1149 1191 1192 1446 1447 1448 1851 1852 11 692 693 1148 1149 1191 1192 1446 1447 1448 1851 1852 11 692 693 1148 1149 1191 1192 1446 1447 1448 1851 1852 11 692 693 1148 1149 1191 1192 1446 1447 1448 1851 1852 4 692 693 1447 1448 4 692 693 1447 1448 4 692 693 1447 1448 4 692 693 1447 1448 4 692 693 1447 1448 4 692 693 1447 1448 8 692 693 932 933 975 976 1447 1448 8 692 693 932 933 975 976 1447 1448 8 692 693 932 933 975 976 1447 1448 8 692 693 932 933 975 976 1447 1448 8 692 693 932 933 975 976 1447 1448 8 692 693 932 933 975 976 1447 1448 3 692 932 975 3 692 932 975 3 692 932 975 3 692 932 975 3 692 932 975 3 692 932 975 3 693 1149 1192 3 693 1149 1192 3 693 1149 1192 3 693 1149 1192 3 693 1149 1192 3 693 1149 1192 8 693 694 1149 1150 1192 1193 1454 1455 8 693 694 1149 1150 1192 1193 1454 1455 8 693 694 1149 1150 1192 1193 1454 1455 8 693 694 1149 1150 1192 1193 1454 1455 8 693 694 1149 1150 1192 1193 1454 1455 8 693 694 1149 1150 1192 1193 1454 1455 4 693 694 1454 1455 4 693 694 1454 1455 4 693 694 1454 1455 4 693 694 1454 1455 4 693 694 1454 1455 4 693 694 1454 1455 8 693 694 933 934 976 977 1454 1455 8 693 694 933 934 976 977 1454 1455 8 693 694 933 934 976 977 1454 1455 8 693 694 933 934 976 977 1454 1455 8 693 694 933 934 976 977 1454 1455 8 693 694 933 934 976 977 1454 1455 3 693 933 976 3 693 933 976 3 693 933 976 3 693 933 976 3 693 933 976 3 693 933 976 3 694 1150 1193 3 694 1150 1193 3 694 1150 1193 3 694 1150 1193 3 694 1150 1193 3 694 1150 1193 10 694 695 696 1150 1151 1193 1194 1460 1461 1462 10 694 695 696 1150 1151 1193 1194 1460 1461 1462 10 694 695 696 1150 1151 1193 1194 1460 1461 1462 10 694 695 696 1150 1151 1193 1194 1460 1461 1462 10 694 695 696 1150 1151 1193 1194 1460 1461 1462 10 694 695 696 1150 1151 1193 1194 1460 1461 1462 4 694 696 1461 1462 4 694 696 1461 1462 4 694 696 1461 1462 4 694 696 1461 1462 4 694 696 1461 1462 4 694 696 1461 1462 8 694 696 934 935 977 978 1461 1462 8 694 696 934 935 977 978 1461 1462 8 694 696 934 935 977 978 1461 1462 8 694 696 934 935 977 978 1461 1462 8 694 696 934 935 977 978 1461 1462 8 694 696 934 935 977 978 1461 1462 3 694 934 977 3 694 934 977 3 694 934 977 3 694 934 977 3 694 934 977 3 694 934 977 6 695 1356 1367 1460 2264 2942 6 695 1356 1367 1460 2264 2942 6 695 1356 1367 1460 2264 2942 6 695 1356 1367 1460 2264 2942 6 695 1356 1367 1460 2264 2942 6 695 1356 1367 1460 2264 2942 4 695 1356 1367 2942 4 695 1356 1367 2942 4 695 1356 1367 2942 4 695 1356 1367 2942 4 695 1356 1367 2942 4 695 1356 1367 2942 6 695 1356 1367 1468 2256 2942 6 695 1356 1367 1468 2256 2942 6 695 1356 1367 1468 2256 2942 6 695 1356 1367 1468 2256 2942 6 695 1356 1367 1468 2256 2942 6 695 1356 1367 1468 2256 2942 2 695 1468 2 695 1468 2 695 1468 2 695 1468 2 695 1468 2 695 1468 10 695 696 697 1151 1152 1194 1195 1468 1469 1470 10 695 696 697 1151 1152 1194 1195 1468 1469 1470 10 695 696 697 1151 1152 1194 1195 1468 1469 1470 10 695 696 697 1151 1152 1194 1195 1468 1469 1470 10 695 696 697 1151 1152 1194 1195 1468 1469 1470 10 695 696 697 1151 1152 1194 1195 1468 1469 1470 4 695 696 1151 1194 4 695 696 1151 1194 4 695 696 1151 1194 4 695 696 1151 1194 4 695 696 1151 1194 4 695 696 1151 1194 2 695 1460 2 695 1460 2 695 1460 2 695 1460 2 695 1460 2 695 1460 4 696 697 1469 1470 4 696 697 1469 1470 4 696 697 1469 1470 4 696 697 1469 1470 4 696 697 1469 1470 4 696 697 1469 1470 8 696 697 935 936 978 979 1469 1470 8 696 697 935 936 978 979 1469 1470 8 696 697 935 936 978 979 1469 1470 8 696 697 935 936 978 979 1469 1470 8 696 697 935 936 978 979 1469 1470 8 696 697 935 936 978 979 1469 1470 3 696 935 978 3 696 935 978 3 696 935 978 3 696 935 978 3 696 935 978 3 696 935 978 3 697 1152 1195 3 697 1152 1195 3 697 1152 1195 3 697 1152 1195 3 697 1152 1195 3 697 1152 1195 8 697 698 1152 1153 1195 1196 1476 1477 8 697 698 1152 1153 1195 1196 1476 1477 8 697 698 1152 1153 1195 1196 1476 1477 8 697 698 1152 1153 1195 1196 1476 1477 8 697 698 1152 1153 1195 1196 1476 1477 8 697 698 1152 1153 1195 1196 1476 1477 4 697 698 1476 1477 4 697 698 1476 1477 4 697 698 1476 1477 4 697 698 1476 1477 4 697 698 1476 1477 4 697 698 1476 1477 8 697 698 936 937 979 980 1476 1477 8 697 698 936 937 979 980 1476 1477 8 697 698 936 937 979 980 1476 1477 8 697 698 936 937 979 980 1476 1477 8 697 698 936 937 979 980 1476 1477 8 697 698 936 937 979 980 1476 1477 3 697 936 979 3 697 936 979 3 697 936 979 3 697 936 979 3 697 936 979 3 697 936 979 3 698 1153 1196 3 698 1153 1196 3 698 1153 1196 3 698 1153 1196 3 698 1153 1196 3 698 1153 1196 11 698 699 700 1153 1154 1196 1197 1482 1483 1484 1485 11 698 699 700 1153 1154 1196 1197 1482 1483 1484 1485 11 698 699 700 1153 1154 1196 1197 1482 1483 1484 1485 11 698 699 700 1153 1154 1196 1197 1482 1483 1484 1485 11 698 699 700 1153 1154 1196 1197 1482 1483 1484 1485 11 698 699 700 1153 1154 1196 1197 1482 1483 1484 1485 4 698 700 1483 1485 4 698 700 1483 1485 4 698 700 1483 1485 4 698 700 1483 1485 4 698 700 1483 1485 4 698 700 1483 1485 8 698 700 937 938 980 981 1483 1485 8 698 700 937 938 980 981 1483 1485 8 698 700 937 938 980 981 1483 1485 8 698 700 937 938 980 981 1483 1485 8 698 700 937 938 980 981 1483 1485 8 698 700 937 938 980 981 1483 1485 3 698 937 980 3 698 937 980 3 698 937 980 3 698 937 980 3 698 937 980 3 698 937 980 8 699 1357 1368 1482 1484 2240 2242 2938 8 699 1357 1368 1482 1484 2240 2242 2938 8 699 1357 1368 1482 1484 2240 2242 2938 8 699 1357 1368 1482 1484 2240 2242 2938 8 699 1357 1368 1482 1484 2240 2242 2938 8 699 1357 1368 1482 1484 2240 2242 2938 4 699 1357 1368 2938 4 699 1357 1368 2938 4 699 1357 1368 2938 4 699 1357 1368 2938 4 699 1357 1368 2938 4 699 1357 1368 2938 8 699 1357 1368 1492 1494 2230 2232 2938 8 699 1357 1368 1492 1494 2230 2232 2938 8 699 1357 1368 1492 1494 2230 2232 2938 8 699 1357 1368 1492 1494 2230 2232 2938 8 699 1357 1368 1492 1494 2230 2232 2938 8 699 1357 1368 1492 1494 2230 2232 2938 3 699 1492 1494 3 699 1492 1494 3 699 1492 1494 3 699 1492 1494 3 699 1492 1494 3 699 1492 1494 11 699 700 701 1154 1155 1197 1198 1492 1493 1494 1495 11 699 700 701 1154 1155 1197 1198 1492 1493 1494 1495 11 699 700 701 1154 1155 1197 1198 1492 1493 1494 1495 11 699 700 701 1154 1155 1197 1198 1492 1493 1494 1495 11 699 700 701 1154 1155 1197 1198 1492 1493 1494 1495 11 699 700 701 1154 1155 1197 1198 1492 1493 1494 1495 4 699 700 1154 1197 4 699 700 1154 1197 4 699 700 1154 1197 4 699 700 1154 1197 4 699 700 1154 1197 4 699 700 1154 1197 3 699 1482 1484 3 699 1482 1484 3 699 1482 1484 3 699 1482 1484 3 699 1482 1484 3 699 1482 1484 4 700 701 1493 1495 4 700 701 1493 1495 4 700 701 1493 1495 4 700 701 1493 1495 4 700 701 1493 1495 4 700 701 1493 1495 8 700 701 938 939 981 982 1493 1495 8 700 701 938 939 981 982 1493 1495 8 700 701 938 939 981 982 1493 1495 8 700 701 938 939 981 982 1493 1495 8 700 701 938 939 981 982 1493 1495 8 700 701 938 939 981 982 1493 1495 3 700 938 981 3 700 938 981 3 700 938 981 3 700 938 981 3 700 938 981 3 700 938 981 3 701 1155 1198 3 701 1155 1198 3 701 1155 1198 3 701 1155 1198 3 701 1155 1198 3 701 1155 1198 8 701 702 1155 1156 1198 1199 1502 1503 8 701 702 1155 1156 1198 1199 1502 1503 8 701 702 1155 1156 1198 1199 1502 1503 8 701 702 1155 1156 1198 1199 1502 1503 8 701 702 1155 1156 1198 1199 1502 1503 8 701 702 1155 1156 1198 1199 1502 1503 4 701 702 1502 1503 4 701 702 1502 1503 4 701 702 1502 1503 4 701 702 1502 1503 4 701 702 1502 1503 4 701 702 1502 1503 8 701 702 939 940 982 983 1502 1503 8 701 702 939 940 982 983 1502 1503 8 701 702 939 940 982 983 1502 1503 8 701 702 939 940 982 983 1502 1503 8 701 702 939 940 982 983 1502 1503 8 701 702 939 940 982 983 1502 1503 3 701 939 982 3 701 939 982 3 701 939 982 3 701 939 982 3 701 939 982 3 701 939 982 3 702 1156 1199 3 702 1156 1199 3 702 1156 1199 3 702 1156 1199 3 702 1156 1199 3 702 1156 1199 10 702 703 704 1156 1157 1199 1200 1508 1509 1510 10 702 703 704 1156 1157 1199 1200 1508 1509 1510 10 702 703 704 1156 1157 1199 1200 1508 1509 1510 10 702 703 704 1156 1157 1199 1200 1508 1509 1510 10 702 703 704 1156 1157 1199 1200 1508 1509 1510 10 702 703 704 1156 1157 1199 1200 1508 1509 1510 4 702 704 1509 1510 4 702 704 1509 1510 4 702 704 1509 1510 4 702 704 1509 1510 4 702 704 1509 1510 4 702 704 1509 1510 8 702 704 940 941 983 984 1509 1510 8 702 704 940 941 983 984 1509 1510 8 702 704 940 941 983 984 1509 1510 8 702 704 940 941 983 984 1509 1510 8 702 704 940 941 983 984 1509 1510 8 702 704 940 941 983 984 1509 1510 3 702 940 983 3 702 940 983 3 702 940 983 3 702 940 983 3 702 940 983 3 702 940 983 6 703 1358 1369 1508 2216 2934 6 703 1358 1369 1508 2216 2934 6 703 1358 1369 1508 2216 2934 6 703 1358 1369 1508 2216 2934 6 703 1358 1369 1508 2216 2934 6 703 1358 1369 1508 2216 2934 4 703 1358 1369 2934 4 703 1358 1369 2934 4 703 1358 1369 2934 4 703 1358 1369 2934 4 703 1358 1369 2934 4 703 1358 1369 2934 6 703 1358 1369 1516 2208 2934 6 703 1358 1369 1516 2208 2934 6 703 1358 1369 1516 2208 2934 6 703 1358 1369 1516 2208 2934 6 703 1358 1369 1516 2208 2934 6 703 1358 1369 1516 2208 2934 2 703 1516 2 703 1516 2 703 1516 2 703 1516 2 703 1516 2 703 1516 10 703 704 705 1157 1158 1200 1201 1516 1517 1518 10 703 704 705 1157 1158 1200 1201 1516 1517 1518 10 703 704 705 1157 1158 1200 1201 1516 1517 1518 10 703 704 705 1157 1158 1200 1201 1516 1517 1518 10 703 704 705 1157 1158 1200 1201 1516 1517 1518 10 703 704 705 1157 1158 1200 1201 1516 1517 1518 4 703 704 1157 1200 4 703 704 1157 1200 4 703 704 1157 1200 4 703 704 1157 1200 4 703 704 1157 1200 4 703 704 1157 1200 2 703 1508 2 703 1508 2 703 1508 2 703 1508 2 703 1508 2 703 1508 4 704 705 1517 1518 4 704 705 1517 1518 4 704 705 1517 1518 4 704 705 1517 1518 4 704 705 1517 1518 4 704 705 1517 1518 8 704 705 941 942 984 985 1517 1518 8 704 705 941 942 984 985 1517 1518 8 704 705 941 942 984 985 1517 1518 8 704 705 941 942 984 985 1517 1518 8 704 705 941 942 984 985 1517 1518 8 704 705 941 942 984 985 1517 1518 3 704 941 984 3 704 941 984 3 704 941 984 3 704 941 984 3 704 941 984 3 704 941 984 3 705 1158 1201 3 705 1158 1201 3 705 1158 1201 3 705 1158 1201 3 705 1158 1201 3 705 1158 1201 8 705 706 1158 1159 1201 1202 1524 1525 8 705 706 1158 1159 1201 1202 1524 1525 8 705 706 1158 1159 1201 1202 1524 1525 8 705 706 1158 1159 1201 1202 1524 1525 8 705 706 1158 1159 1201 1202 1524 1525 8 705 706 1158 1159 1201 1202 1524 1525 4 705 706 1524 1525 4 705 706 1524 1525 4 705 706 1524 1525 4 705 706 1524 1525 4 705 706 1524 1525 4 705 706 1524 1525 8 705 706 942 943 985 986 1524 1525 8 705 706 942 943 985 986 1524 1525 8 705 706 942 943 985 986 1524 1525 8 705 706 942 943 985 986 1524 1525 8 705 706 942 943 985 986 1524 1525 8 705 706 942 943 985 986 1524 1525 3 705 942 985 3 705 942 985 3 705 942 985 3 705 942 985 3 705 942 985 3 705 942 985 3 706 1159 1202 3 706 1159 1202 3 706 1159 1202 3 706 1159 1202 3 706 1159 1202 3 706 1159 1202 11 706 707 708 1159 1160 1202 1203 1530 1531 1532 1533 11 706 707 708 1159 1160 1202 1203 1530 1531 1532 1533 11 706 707 708 1159 1160 1202 1203 1530 1531 1532 1533 11 706 707 708 1159 1160 1202 1203 1530 1531 1532 1533 11 706 707 708 1159 1160 1202 1203 1530 1531 1532 1533 11 706 707 708 1159 1160 1202 1203 1530 1531 1532 1533 4 706 708 1531 1533 4 706 708 1531 1533 4 706 708 1531 1533 4 706 708 1531 1533 4 706 708 1531 1533 4 706 708 1531 1533 8 706 708 943 944 986 987 1531 1533 8 706 708 943 944 986 987 1531 1533 8 706 708 943 944 986 987 1531 1533 8 706 708 943 944 986 987 1531 1533 8 706 708 943 944 986 987 1531 1533 8 706 708 943 944 986 987 1531 1533 3 706 943 986 3 706 943 986 3 706 943 986 3 706 943 986 3 706 943 986 3 706 943 986 8 707 1359 1370 1530 1532 2192 2194 2930 8 707 1359 1370 1530 1532 2192 2194 2930 8 707 1359 1370 1530 1532 2192 2194 2930 8 707 1359 1370 1530 1532 2192 2194 2930 8 707 1359 1370 1530 1532 2192 2194 2930 8 707 1359 1370 1530 1532 2192 2194 2930 4 707 1359 1370 2930 4 707 1359 1370 2930 4 707 1359 1370 2930 4 707 1359 1370 2930 4 707 1359 1370 2930 4 707 1359 1370 2930 6 707 1359 1370 1540 2184 2930 6 707 1359 1370 1540 2184 2930 6 707 1359 1370 1540 2184 2930 6 707 1359 1370 1540 2184 2930 6 707 1359 1370 1540 2184 2930 6 707 1359 1370 1540 2184 2930 2 707 1540 2 707 1540 2 707 1540 2 707 1540 2 707 1540 2 707 1540 10 707 708 709 1160 1161 1203 1204 1540 1541 1542 10 707 708 709 1160 1161 1203 1204 1540 1541 1542 10 707 708 709 1160 1161 1203 1204 1540 1541 1542 10 707 708 709 1160 1161 1203 1204 1540 1541 1542 10 707 708 709 1160 1161 1203 1204 1540 1541 1542 10 707 708 709 1160 1161 1203 1204 1540 1541 1542 4 707 708 1160 1203 4 707 708 1160 1203 4 707 708 1160 1203 4 707 708 1160 1203 4 707 708 1160 1203 4 707 708 1160 1203 3 707 1530 1532 3 707 1530 1532 3 707 1530 1532 3 707 1530 1532 3 707 1530 1532 3 707 1530 1532 4 708 709 1541 1542 4 708 709 1541 1542 4 708 709 1541 1542 4 708 709 1541 1542 4 708 709 1541 1542 4 708 709 1541 1542 8 708 709 944 945 987 988 1541 1542 8 708 709 944 945 987 988 1541 1542 8 708 709 944 945 987 988 1541 1542 8 708 709 944 945 987 988 1541 1542 8 708 709 944 945 987 988 1541 1542 8 708 709 944 945 987 988 1541 1542 3 708 944 987 3 708 944 987 3 708 944 987 3 708 944 987 3 708 944 987 3 708 944 987 3 709 1161 1204 3 709 1161 1204 3 709 1161 1204 3 709 1161 1204 3 709 1161 1204 3 709 1161 1204 8 709 710 1161 1162 1204 1205 1548 1549 8 709 710 1161 1162 1204 1205 1548 1549 8 709 710 1161 1162 1204 1205 1548 1549 8 709 710 1161 1162 1204 1205 1548 1549 8 709 710 1161 1162 1204 1205 1548 1549 8 709 710 1161 1162 1204 1205 1548 1549 4 709 710 1548 1549 4 709 710 1548 1549 4 709 710 1548 1549 4 709 710 1548 1549 4 709 710 1548 1549 4 709 710 1548 1549 8 709 710 945 946 988 989 1548 1549 8 709 710 945 946 988 989 1548 1549 8 709 710 945 946 988 989 1548 1549 8 709 710 945 946 988 989 1548 1549 8 709 710 945 946 988 989 1548 1549 8 709 710 945 946 988 989 1548 1549 3 709 945 988 3 709 945 988 3 709 945 988 3 709 945 988 3 709 945 988 3 709 945 988 3 710 1162 1205 3 710 1162 1205 3 710 1162 1205 3 710 1162 1205 3 710 1162 1205 3 710 1162 1205 10 710 711 712 1162 1163 1205 1206 1554 1555 1556 10 710 711 712 1162 1163 1205 1206 1554 1555 1556 10 710 711 712 1162 1163 1205 1206 1554 1555 1556 10 710 711 712 1162 1163 1205 1206 1554 1555 1556 10 710 711 712 1162 1163 1205 1206 1554 1555 1556 10 710 711 712 1162 1163 1205 1206 1554 1555 1556 4 710 712 1555 1556 4 710 712 1555 1556 4 710 712 1555 1556 4 710 712 1555 1556 4 710 712 1555 1556 4 710 712 1555 1556 8 710 712 946 947 989 990 1555 1556 8 710 712 946 947 989 990 1555 1556 8 710 712 946 947 989 990 1555 1556 8 710 712 946 947 989 990 1555 1556 8 710 712 946 947 989 990 1555 1556 8 710 712 946 947 989 990 1555 1556 3 710 946 989 3 710 946 989 3 710 946 989 3 710 946 989 3 710 946 989 3 710 946 989 6 711 1360 1371 1554 2170 2926 6 711 1360 1371 1554 2170 2926 6 711 1360 1371 1554 2170 2926 6 711 1360 1371 1554 2170 2926 6 711 1360 1371 1554 2170 2926 6 711 1360 1371 1554 2170 2926 4 711 1360 1371 2926 4 711 1360 1371 2926 4 711 1360 1371 2926 4 711 1360 1371 2926 4 711 1360 1371 2926 4 711 1360 1371 2926 6 711 1360 1371 1562 2162 2926 6 711 1360 1371 1562 2162 2926 6 711 1360 1371 1562 2162 2926 6 711 1360 1371 1562 2162 2926 6 711 1360 1371 1562 2162 2926 6 711 1360 1371 1562 2162 2926 2 711 1562 2 711 1562 2 711 1562 2 711 1562 2 711 1562 2 711 1562 10 711 712 713 1163 1164 1206 1207 1562 1563 1564 10 711 712 713 1163 1164 1206 1207 1562 1563 1564 10 711 712 713 1163 1164 1206 1207 1562 1563 1564 10 711 712 713 1163 1164 1206 1207 1562 1563 1564 10 711 712 713 1163 1164 1206 1207 1562 1563 1564 10 711 712 713 1163 1164 1206 1207 1562 1563 1564 4 711 712 1163 1206 4 711 712 1163 1206 4 711 712 1163 1206 4 711 712 1163 1206 4 711 712 1163 1206 4 711 712 1163 1206 2 711 1554 2 711 1554 2 711 1554 2 711 1554 2 711 1554 2 711 1554 4 712 713 1563 1564 4 712 713 1563 1564 4 712 713 1563 1564 4 712 713 1563 1564 4 712 713 1563 1564 4 712 713 1563 1564 8 712 713 947 948 990 991 1563 1564 8 712 713 947 948 990 991 1563 1564 8 712 713 947 948 990 991 1563 1564 8 712 713 947 948 990 991 1563 1564 8 712 713 947 948 990 991 1563 1564 8 712 713 947 948 990 991 1563 1564 3 712 947 990 3 712 947 990 3 712 947 990 3 712 947 990 3 712 947 990 3 712 947 990 3 713 1164 1207 3 713 1164 1207 3 713 1164 1207 3 713 1164 1207 3 713 1164 1207 3 713 1164 1207 8 713 714 1164 1165 1207 1208 1570 1571 8 713 714 1164 1165 1207 1208 1570 1571 8 713 714 1164 1165 1207 1208 1570 1571 8 713 714 1164 1165 1207 1208 1570 1571 8 713 714 1164 1165 1207 1208 1570 1571 8 713 714 1164 1165 1207 1208 1570 1571 4 713 714 1570 1571 4 713 714 1570 1571 4 713 714 1570 1571 4 713 714 1570 1571 4 713 714 1570 1571 4 713 714 1570 1571 8 713 714 948 949 991 992 1570 1571 8 713 714 948 949 991 992 1570 1571 8 713 714 948 949 991 992 1570 1571 8 713 714 948 949 991 992 1570 1571 8 713 714 948 949 991 992 1570 1571 8 713 714 948 949 991 992 1570 1571 3 713 948 991 3 713 948 991 3 713 948 991 3 713 948 991 3 713 948 991 3 713 948 991 3 714 1165 1208 3 714 1165 1208 3 714 1165 1208 3 714 1165 1208 3 714 1165 1208 3 714 1165 1208 11 714 715 716 1165 1166 1208 1209 1576 1577 1578 1579 11 714 715 716 1165 1166 1208 1209 1576 1577 1578 1579 11 714 715 716 1165 1166 1208 1209 1576 1577 1578 1579 11 714 715 716 1165 1166 1208 1209 1576 1577 1578 1579 11 714 715 716 1165 1166 1208 1209 1576 1577 1578 1579 11 714 715 716 1165 1166 1208 1209 1576 1577 1578 1579 4 714 716 1577 1579 4 714 716 1577 1579 4 714 716 1577 1579 4 714 716 1577 1579 4 714 716 1577 1579 4 714 716 1577 1579 8 714 716 949 950 992 993 1577 1579 8 714 716 949 950 992 993 1577 1579 8 714 716 949 950 992 993 1577 1579 8 714 716 949 950 992 993 1577 1579 8 714 716 949 950 992 993 1577 1579 8 714 716 949 950 992 993 1577 1579 3 714 949 992 3 714 949 992 3 714 949 992 3 714 949 992 3 714 949 992 3 714 949 992 8 715 1361 1372 1576 1578 2146 2148 2922 8 715 1361 1372 1576 1578 2146 2148 2922 8 715 1361 1372 1576 1578 2146 2148 2922 8 715 1361 1372 1576 1578 2146 2148 2922 8 715 1361 1372 1576 1578 2146 2148 2922 8 715 1361 1372 1576 1578 2146 2148 2922 4 715 1361 1372 2922 4 715 1361 1372 2922 4 715 1361 1372 2922 4 715 1361 1372 2922 4 715 1361 1372 2922 4 715 1361 1372 2922 6 715 1361 1372 1586 2138 2922 6 715 1361 1372 1586 2138 2922 6 715 1361 1372 1586 2138 2922 6 715 1361 1372 1586 2138 2922 6 715 1361 1372 1586 2138 2922 6 715 1361 1372 1586 2138 2922 2 715 1586 2 715 1586 2 715 1586 2 715 1586 2 715 1586 2 715 1586 10 715 716 717 1166 1167 1209 1210 1586 1587 1588 10 715 716 717 1166 1167 1209 1210 1586 1587 1588 10 715 716 717 1166 1167 1209 1210 1586 1587 1588 10 715 716 717 1166 1167 1209 1210 1586 1587 1588 10 715 716 717 1166 1167 1209 1210 1586 1587 1588 10 715 716 717 1166 1167 1209 1210 1586 1587 1588 4 715 716 1166 1209 4 715 716 1166 1209 4 715 716 1166 1209 4 715 716 1166 1209 4 715 716 1166 1209 4 715 716 1166 1209 3 715 1576 1578 3 715 1576 1578 3 715 1576 1578 3 715 1576 1578 3 715 1576 1578 3 715 1576 1578 4 716 717 1587 1588 4 716 717 1587 1588 4 716 717 1587 1588 4 716 717 1587 1588 4 716 717 1587 1588 4 716 717 1587 1588 8 716 717 950 951 993 994 1587 1588 8 716 717 950 951 993 994 1587 1588 8 716 717 950 951 993 994 1587 1588 8 716 717 950 951 993 994 1587 1588 8 716 717 950 951 993 994 1587 1588 8 716 717 950 951 993 994 1587 1588 3 716 950 993 3 716 950 993 3 716 950 993 3 716 950 993 3 716 950 993 3 716 950 993 3 717 1167 1210 3 717 1167 1210 3 717 1167 1210 3 717 1167 1210 3 717 1167 1210 3 717 1167 1210 8 717 718 1167 1168 1210 1211 1594 1595 8 717 718 1167 1168 1210 1211 1594 1595 8 717 718 1167 1168 1210 1211 1594 1595 8 717 718 1167 1168 1210 1211 1594 1595 8 717 718 1167 1168 1210 1211 1594 1595 8 717 718 1167 1168 1210 1211 1594 1595 4 717 718 1594 1595 4 717 718 1594 1595 4 717 718 1594 1595 4 717 718 1594 1595 4 717 718 1594 1595 4 717 718 1594 1595 8 717 718 951 952 994 995 1594 1595 8 717 718 951 952 994 995 1594 1595 8 717 718 951 952 994 995 1594 1595 8 717 718 951 952 994 995 1594 1595 8 717 718 951 952 994 995 1594 1595 8 717 718 951 952 994 995 1594 1595 3 717 951 994 3 717 951 994 3 717 951 994 3 717 951 994 3 717 951 994 3 717 951 994 3 718 1168 1211 3 718 1168 1211 3 718 1168 1211 3 718 1168 1211 3 718 1168 1211 3 718 1168 1211 10 718 719 720 1168 1169 1211 1212 1600 1601 1602 10 718 719 720 1168 1169 1211 1212 1600 1601 1602 10 718 719 720 1168 1169 1211 1212 1600 1601 1602 10 718 719 720 1168 1169 1211 1212 1600 1601 1602 10 718 719 720 1168 1169 1211 1212 1600 1601 1602 10 718 719 720 1168 1169 1211 1212 1600 1601 1602 4 718 720 1601 1602 4 718 720 1601 1602 4 718 720 1601 1602 4 718 720 1601 1602 4 718 720 1601 1602 4 718 720 1601 1602 8 718 720 952 953 995 996 1601 1602 8 718 720 952 953 995 996 1601 1602 8 718 720 952 953 995 996 1601 1602 8 718 720 952 953 995 996 1601 1602 8 718 720 952 953 995 996 1601 1602 8 718 720 952 953 995 996 1601 1602 3 718 952 995 3 718 952 995 3 718 952 995 3 718 952 995 3 718 952 995 3 718 952 995 6 719 1362 1373 1600 2124 2918 6 719 1362 1373 1600 2124 2918 6 719 1362 1373 1600 2124 2918 6 719 1362 1373 1600 2124 2918 6 719 1362 1373 1600 2124 2918 6 719 1362 1373 1600 2124 2918 4 719 1362 1373 2918 4 719 1362 1373 2918 4 719 1362 1373 2918 4 719 1362 1373 2918 4 719 1362 1373 2918 4 719 1362 1373 2918 6 719 1362 1373 1608 2116 2918 6 719 1362 1373 1608 2116 2918 6 719 1362 1373 1608 2116 2918 6 719 1362 1373 1608 2116 2918 6 719 1362 1373 1608 2116 2918 6 719 1362 1373 1608 2116 2918 2 719 1608 2 719 1608 2 719 1608 2 719 1608 2 719 1608 2 719 1608 10 719 720 721 1169 1170 1212 1213 1608 1609 1610 10 719 720 721 1169 1170 1212 1213 1608 1609 1610 10 719 720 721 1169 1170 1212 1213 1608 1609 1610 10 719 720 721 1169 1170 1212 1213 1608 1609 1610 10 719 720 721 1169 1170 1212 1213 1608 1609 1610 10 719 720 721 1169 1170 1212 1213 1608 1609 1610 4 719 720 1169 1212 4 719 720 1169 1212 4 719 720 1169 1212 4 719 720 1169 1212 4 719 720 1169 1212 4 719 720 1169 1212 2 719 1600 2 719 1600 2 719 1600 2 719 1600 2 719 1600 2 719 1600 4 720 721 1609 1610 4 720 721 1609 1610 4 720 721 1609 1610 4 720 721 1609 1610 4 720 721 1609 1610 4 720 721 1609 1610 8 720 721 953 954 996 997 1609 1610 8 720 721 953 954 996 997 1609 1610 8 720 721 953 954 996 997 1609 1610 8 720 721 953 954 996 997 1609 1610 8 720 721 953 954 996 997 1609 1610 8 720 721 953 954 996 997 1609 1610 3 720 953 996 3 720 953 996 3 720 953 996 3 720 953 996 3 720 953 996 3 720 953 996 3 721 1170 1213 3 721 1170 1213 3 721 1170 1213 3 721 1170 1213 3 721 1170 1213 3 721 1170 1213 8 721 722 1170 1171 1213 1214 1616 1617 8 721 722 1170 1171 1213 1214 1616 1617 8 721 722 1170 1171 1213 1214 1616 1617 8 721 722 1170 1171 1213 1214 1616 1617 8 721 722 1170 1171 1213 1214 1616 1617 8 721 722 1170 1171 1213 1214 1616 1617 4 721 722 1616 1617 4 721 722 1616 1617 4 721 722 1616 1617 4 721 722 1616 1617 4 721 722 1616 1617 4 721 722 1616 1617 8 721 722 954 955 997 998 1616 1617 8 721 722 954 955 997 998 1616 1617 8 721 722 954 955 997 998 1616 1617 8 721 722 954 955 997 998 1616 1617 8 721 722 954 955 997 998 1616 1617 8 721 722 954 955 997 998 1616 1617 3 721 954 997 3 721 954 997 3 721 954 997 3 721 954 997 3 721 954 997 3 721 954 997 3 722 1171 1214 3 722 1171 1214 3 722 1171 1214 3 722 1171 1214 3 722 1171 1214 3 722 1171 1214 11 722 723 724 1171 1172 1214 1215 1622 1623 1624 1625 11 722 723 724 1171 1172 1214 1215 1622 1623 1624 1625 11 722 723 724 1171 1172 1214 1215 1622 1623 1624 1625 11 722 723 724 1171 1172 1214 1215 1622 1623 1624 1625 11 722 723 724 1171 1172 1214 1215 1622 1623 1624 1625 11 722 723 724 1171 1172 1214 1215 1622 1623 1624 1625 4 722 724 1623 1625 4 722 724 1623 1625 4 722 724 1623 1625 4 722 724 1623 1625 4 722 724 1623 1625 4 722 724 1623 1625 8 722 724 955 956 998 999 1623 1625 8 722 724 955 956 998 999 1623 1625 8 722 724 955 956 998 999 1623 1625 8 722 724 955 956 998 999 1623 1625 8 722 724 955 956 998 999 1623 1625 8 722 724 955 956 998 999 1623 1625 3 722 955 998 3 722 955 998 3 722 955 998 3 722 955 998 3 722 955 998 3 722 955 998 8 723 1363 1374 1622 1624 2100 2102 2914 8 723 1363 1374 1622 1624 2100 2102 2914 8 723 1363 1374 1622 1624 2100 2102 2914 8 723 1363 1374 1622 1624 2100 2102 2914 8 723 1363 1374 1622 1624 2100 2102 2914 8 723 1363 1374 1622 1624 2100 2102 2914 4 723 1363 1374 2914 4 723 1363 1374 2914 4 723 1363 1374 2914 4 723 1363 1374 2914 4 723 1363 1374 2914 4 723 1363 1374 2914 6 723 1363 1374 1632 2092 2914 6 723 1363 1374 1632 2092 2914 6 723 1363 1374 1632 2092 2914 6 723 1363 1374 1632 2092 2914 6 723 1363 1374 1632 2092 2914 6 723 1363 1374 1632 2092 2914 2 723 1632 2 723 1632 2 723 1632 2 723 1632 2 723 1632 2 723 1632 10 723 724 725 1172 1173 1215 1216 1632 1633 1634 10 723 724 725 1172 1173 1215 1216 1632 1633 1634 10 723 724 725 1172 1173 1215 1216 1632 1633 1634 10 723 724 725 1172 1173 1215 1216 1632 1633 1634 10 723 724 725 1172 1173 1215 1216 1632 1633 1634 10 723 724 725 1172 1173 1215 1216 1632 1633 1634 4 723 724 1172 1215 4 723 724 1172 1215 4 723 724 1172 1215 4 723 724 1172 1215 4 723 724 1172 1215 4 723 724 1172 1215 3 723 1622 1624 3 723 1622 1624 3 723 1622 1624 3 723 1622 1624 3 723 1622 1624 3 723 1622 1624 4 724 725 1633 1634 4 724 725 1633 1634 4 724 725 1633 1634 4 724 725 1633 1634 4 724 725 1633 1634 4 724 725 1633 1634 8 724 725 956 957 999 1000 1633 1634 8 724 725 956 957 999 1000 1633 1634 8 724 725 956 957 999 1000 1633 1634 8 724 725 956 957 999 1000 1633 1634 8 724 725 956 957 999 1000 1633 1634 8 724 725 956 957 999 1000 1633 1634 3 724 956 999 3 724 956 999 3 724 956 999 3 724 956 999 3 724 956 999 3 724 956 999 3 725 1173 1216 3 725 1173 1216 3 725 1173 1216 3 725 1173 1216 3 725 1173 1216 3 725 1173 1216 8 725 726 1173 1174 1216 1217 1640 1641 8 725 726 1173 1174 1216 1217 1640 1641 8 725 726 1173 1174 1216 1217 1640 1641 8 725 726 1173 1174 1216 1217 1640 1641 8 725 726 1173 1174 1216 1217 1640 1641 8 725 726 1173 1174 1216 1217 1640 1641 4 725 726 1640 1641 4 725 726 1640 1641 4 725 726 1640 1641 4 725 726 1640 1641 4 725 726 1640 1641 4 725 726 1640 1641 8 725 726 957 958 1000 1001 1640 1641 8 725 726 957 958 1000 1001 1640 1641 8 725 726 957 958 1000 1001 1640 1641 8 725 726 957 958 1000 1001 1640 1641 8 725 726 957 958 1000 1001 1640 1641 8 725 726 957 958 1000 1001 1640 1641 3 725 957 1000 3 725 957 1000 3 725 957 1000 3 725 957 1000 3 725 957 1000 3 725 957 1000 3 726 1174 1217 3 726 1174 1217 3 726 1174 1217 3 726 1174 1217 3 726 1174 1217 3 726 1174 1217 10 726 727 728 1174 1175 1217 1218 1646 1647 1648 10 726 727 728 1174 1175 1217 1218 1646 1647 1648 10 726 727 728 1174 1175 1217 1218 1646 1647 1648 10 726 727 728 1174 1175 1217 1218 1646 1647 1648 10 726 727 728 1174 1175 1217 1218 1646 1647 1648 10 726 727 728 1174 1175 1217 1218 1646 1647 1648 4 726 728 1647 1648 4 726 728 1647 1648 4 726 728 1647 1648 4 726 728 1647 1648 4 726 728 1647 1648 4 726 728 1647 1648 8 726 728 958 959 1001 1002 1647 1648 8 726 728 958 959 1001 1002 1647 1648 8 726 728 958 959 1001 1002 1647 1648 8 726 728 958 959 1001 1002 1647 1648 8 726 728 958 959 1001 1002 1647 1648 8 726 728 958 959 1001 1002 1647 1648 3 726 958 1001 3 726 958 1001 3 726 958 1001 3 726 958 1001 3 726 958 1001 3 726 958 1001 6 727 1364 1375 1646 2078 2910 6 727 1364 1375 1646 2078 2910 6 727 1364 1375 1646 2078 2910 6 727 1364 1375 1646 2078 2910 6 727 1364 1375 1646 2078 2910 6 727 1364 1375 1646 2078 2910 4 727 1364 1375 2910 4 727 1364 1375 2910 4 727 1364 1375 2910 4 727 1364 1375 2910 4 727 1364 1375 2910 4 727 1364 1375 2910 6 727 1364 1375 1654 2070 2910 6 727 1364 1375 1654 2070 2910 6 727 1364 1375 1654 2070 2910 6 727 1364 1375 1654 2070 2910 6 727 1364 1375 1654 2070 2910 6 727 1364 1375 1654 2070 2910 2 727 1654 2 727 1654 2 727 1654 2 727 1654 2 727 1654 2 727 1654 10 727 728 729 1175 1176 1218 1219 1654 1655 1656 10 727 728 729 1175 1176 1218 1219 1654 1655 1656 10 727 728 729 1175 1176 1218 1219 1654 1655 1656 10 727 728 729 1175 1176 1218 1219 1654 1655 1656 10 727 728 729 1175 1176 1218 1219 1654 1655 1656 10 727 728 729 1175 1176 1218 1219 1654 1655 1656 4 727 728 1175 1218 4 727 728 1175 1218 4 727 728 1175 1218 4 727 728 1175 1218 4 727 728 1175 1218 4 727 728 1175 1218 2 727 1646 2 727 1646 2 727 1646 2 727 1646 2 727 1646 2 727 1646 4 728 729 1655 1656 4 728 729 1655 1656 4 728 729 1655 1656 4 728 729 1655 1656 4 728 729 1655 1656 4 728 729 1655 1656 8 728 729 959 960 1002 1003 1655 1656 8 728 729 959 960 1002 1003 1655 1656 8 728 729 959 960 1002 1003 1655 1656 8 728 729 959 960 1002 1003 1655 1656 8 728 729 959 960 1002 1003 1655 1656 8 728 729 959 960 1002 1003 1655 1656 3 728 959 1002 3 728 959 1002 3 728 959 1002 3 728 959 1002 3 728 959 1002 3 728 959 1002 3 729 1176 1219 3 729 1176 1219 3 729 1176 1219 3 729 1176 1219 3 729 1176 1219 3 729 1176 1219 8 729 730 1176 1177 1219 1220 1662 1663 8 729 730 1176 1177 1219 1220 1662 1663 8 729 730 1176 1177 1219 1220 1662 1663 8 729 730 1176 1177 1219 1220 1662 1663 8 729 730 1176 1177 1219 1220 1662 1663 8 729 730 1176 1177 1219 1220 1662 1663 4 729 730 1662 1663 4 729 730 1662 1663 4 729 730 1662 1663 4 729 730 1662 1663 4 729 730 1662 1663 4 729 730 1662 1663 8 729 730 960 961 1003 1004 1662 1663 8 729 730 960 961 1003 1004 1662 1663 8 729 730 960 961 1003 1004 1662 1663 8 729 730 960 961 1003 1004 1662 1663 8 729 730 960 961 1003 1004 1662 1663 8 729 730 960 961 1003 1004 1662 1663 3 729 960 1003 3 729 960 1003 3 729 960 1003 3 729 960 1003 3 729 960 1003 3 729 960 1003 3 730 1177 1220 3 730 1177 1220 3 730 1177 1220 3 730 1177 1220 3 730 1177 1220 3 730 1177 1220 11 730 731 732 1177 1178 1220 1221 1668 1669 1670 1671 11 730 731 732 1177 1178 1220 1221 1668 1669 1670 1671 11 730 731 732 1177 1178 1220 1221 1668 1669 1670 1671 11 730 731 732 1177 1178 1220 1221 1668 1669 1670 1671 11 730 731 732 1177 1178 1220 1221 1668 1669 1670 1671 11 730 731 732 1177 1178 1220 1221 1668 1669 1670 1671 4 730 732 1669 1671 4 730 732 1669 1671 4 730 732 1669 1671 4 730 732 1669 1671 4 730 732 1669 1671 4 730 732 1669 1671 8 730 732 961 962 1004 1005 1669 1671 8 730 732 961 962 1004 1005 1669 1671 8 730 732 961 962 1004 1005 1669 1671 8 730 732 961 962 1004 1005 1669 1671 8 730 732 961 962 1004 1005 1669 1671 8 730 732 961 962 1004 1005 1669 1671 3 730 961 1004 3 730 961 1004 3 730 961 1004 3 730 961 1004 3 730 961 1004 3 730 961 1004 8 731 1365 1376 1668 1670 2054 2056 2906 8 731 1365 1376 1668 1670 2054 2056 2906 8 731 1365 1376 1668 1670 2054 2056 2906 8 731 1365 1376 1668 1670 2054 2056 2906 8 731 1365 1376 1668 1670 2054 2056 2906 8 731 1365 1376 1668 1670 2054 2056 2906 4 731 1365 1376 2906 4 731 1365 1376 2906 4 731 1365 1376 2906 4 731 1365 1376 2906 4 731 1365 1376 2906 4 731 1365 1376 2906 6 731 1365 1376 1678 2046 2906 6 731 1365 1376 1678 2046 2906 6 731 1365 1376 1678 2046 2906 6 731 1365 1376 1678 2046 2906 6 731 1365 1376 1678 2046 2906 6 731 1365 1376 1678 2046 2906 2 731 1678 2 731 1678 2 731 1678 2 731 1678 2 731 1678 2 731 1678 10 731 732 733 1178 1179 1221 1222 1678 1679 1680 10 731 732 733 1178 1179 1221 1222 1678 1679 1680 10 731 732 733 1178 1179 1221 1222 1678 1679 1680 10 731 732 733 1178 1179 1221 1222 1678 1679 1680 10 731 732 733 1178 1179 1221 1222 1678 1679 1680 10 731 732 733 1178 1179 1221 1222 1678 1679 1680 4 731 732 1178 1221 4 731 732 1178 1221 4 731 732 1178 1221 4 731 732 1178 1221 4 731 732 1178 1221 4 731 732 1178 1221 3 731 1668 1670 3 731 1668 1670 3 731 1668 1670 3 731 1668 1670 3 731 1668 1670 3 731 1668 1670 4 732 733 1679 1680 4 732 733 1679 1680 4 732 733 1679 1680 4 732 733 1679 1680 4 732 733 1679 1680 4 732 733 1679 1680 8 732 733 962 963 1005 1006 1679 1680 8 732 733 962 963 1005 1006 1679 1680 8 732 733 962 963 1005 1006 1679 1680 8 732 733 962 963 1005 1006 1679 1680 8 732 733 962 963 1005 1006 1679 1680 8 732 733 962 963 1005 1006 1679 1680 3 732 962 1005 3 732 962 1005 3 732 962 1005 3 732 962 1005 3 732 962 1005 3 732 962 1005 3 733 1179 1222 3 733 1179 1222 3 733 1179 1222 3 733 1179 1222 3 733 1179 1222 3 733 1179 1222 8 733 734 1179 1180 1222 1223 1686 1687 8 733 734 1179 1180 1222 1223 1686 1687 8 733 734 1179 1180 1222 1223 1686 1687 8 733 734 1179 1180 1222 1223 1686 1687 8 733 734 1179 1180 1222 1223 1686 1687 8 733 734 1179 1180 1222 1223 1686 1687 4 733 734 1686 1687 4 733 734 1686 1687 4 733 734 1686 1687 4 733 734 1686 1687 4 733 734 1686 1687 4 733 734 1686 1687 8 733 734 963 964 1006 1007 1686 1687 8 733 734 963 964 1006 1007 1686 1687 8 733 734 963 964 1006 1007 1686 1687 8 733 734 963 964 1006 1007 1686 1687 8 733 734 963 964 1006 1007 1686 1687 8 733 734 963 964 1006 1007 1686 1687 3 733 963 1006 3 733 963 1006 3 733 963 1006 3 733 963 1006 3 733 963 1006 3 733 963 1006 3 734 1180 1223 3 734 1180 1223 3 734 1180 1223 3 734 1180 1223 3 734 1180 1223 3 734 1180 1223 11 734 735 736 1180 1181 1223 1224 1692 1693 1694 1695 11 734 735 736 1180 1181 1223 1224 1692 1693 1694 1695 11 734 735 736 1180 1181 1223 1224 1692 1693 1694 1695 11 734 735 736 1180 1181 1223 1224 1692 1693 1694 1695 11 734 735 736 1180 1181 1223 1224 1692 1693 1694 1695 11 734 735 736 1180 1181 1223 1224 1692 1693 1694 1695 4 734 736 1693 1695 4 734 736 1693 1695 4 734 736 1693 1695 4 734 736 1693 1695 4 734 736 1693 1695 4 734 736 1693 1695 8 734 736 964 965 1007 1008 1693 1695 8 734 736 964 965 1007 1008 1693 1695 8 734 736 964 965 1007 1008 1693 1695 8 734 736 964 965 1007 1008 1693 1695 8 734 736 964 965 1007 1008 1693 1695 8 734 736 964 965 1007 1008 1693 1695 3 734 964 1007 3 734 964 1007 3 734 964 1007 3 734 964 1007 3 734 964 1007 3 734 964 1007 8 735 1366 1377 1692 1694 2030 2032 2902 8 735 1366 1377 1692 1694 2030 2032 2902 8 735 1366 1377 1692 1694 2030 2032 2902 8 735 1366 1377 1692 1694 2030 2032 2902 8 735 1366 1377 1692 1694 2030 2032 2902 8 735 1366 1377 1692 1694 2030 2032 2902 4 735 1366 1377 2902 4 735 1366 1377 2902 4 735 1366 1377 2902 4 735 1366 1377 2902 4 735 1366 1377 2902 4 735 1366 1377 2902 8 735 1366 1377 1702 1704 2020 2022 2902 8 735 1366 1377 1702 1704 2020 2022 2902 8 735 1366 1377 1702 1704 2020 2022 2902 8 735 1366 1377 1702 1704 2020 2022 2902 8 735 1366 1377 1702 1704 2020 2022 2902 8 735 1366 1377 1702 1704 2020 2022 2902 3 735 1702 1704 3 735 1702 1704 3 735 1702 1704 3 735 1702 1704 3 735 1702 1704 3 735 1702 1704 11 735 736 737 1181 1182 1224 1225 1702 1703 1704 1705 11 735 736 737 1181 1182 1224 1225 1702 1703 1704 1705 11 735 736 737 1181 1182 1224 1225 1702 1703 1704 1705 11 735 736 737 1181 1182 1224 1225 1702 1703 1704 1705 11 735 736 737 1181 1182 1224 1225 1702 1703 1704 1705 11 735 736 737 1181 1182 1224 1225 1702 1703 1704 1705 4 735 736 1181 1224 4 735 736 1181 1224 4 735 736 1181 1224 4 735 736 1181 1224 4 735 736 1181 1224 4 735 736 1181 1224 3 735 1692 1694 3 735 1692 1694 3 735 1692 1694 3 735 1692 1694 3 735 1692 1694 3 735 1692 1694 4 736 737 1703 1705 4 736 737 1703 1705 4 736 737 1703 1705 4 736 737 1703 1705 4 736 737 1703 1705 4 736 737 1703 1705 8 736 737 965 966 1008 1009 1703 1705 8 736 737 965 966 1008 1009 1703 1705 8 736 737 965 966 1008 1009 1703 1705 8 736 737 965 966 1008 1009 1703 1705 8 736 737 965 966 1008 1009 1703 1705 8 736 737 965 966 1008 1009 1703 1705 3 736 965 1008 3 736 965 1008 3 736 965 1008 3 736 965 1008 3 736 965 1008 3 736 965 1008 3 737 1182 1225 3 737 1182 1225 3 737 1182 1225 3 737 1182 1225 3 737 1182 1225 3 737 1182 1225 8 737 881 1182 1183 1225 1226 1712 1713 8 737 881 1182 1183 1225 1226 1712 1713 8 737 881 1182 1183 1225 1226 1712 1713 8 737 881 1182 1183 1225 1226 1712 1713 8 737 881 1182 1183 1225 1226 1712 1713 8 737 881 1182 1183 1225 1226 1712 1713 4 737 881 1712 1713 4 737 881 1712 1713 4 737 881 1712 1713 4 737 881 1712 1713 4 737 881 1712 1713 4 737 881 1712 1713 8 737 881 966 967 1009 1010 1712 1713 8 737 881 966 967 1009 1010 1712 1713 8 737 881 966 967 1009 1010 1712 1713 8 737 881 966 967 1009 1010 1712 1713 8 737 881 966 967 1009 1010 1712 1713 8 737 881 966 967 1009 1010 1712 1713 3 737 966 1009 3 737 966 1009 3 737 966 1009 3 737 966 1009 3 737 966 1009 3 737 966 1009 10 738 876 1313 1314 1400 1402 2322 2324 2761 2899 10 738 876 1313 1314 1400 1402 2322 2324 2761 2899 10 738 876 1313 1314 1400 1402 2322 2324 2761 2899 10 738 876 1313 1314 1400 1402 2322 2324 2761 2899 10 738 876 1313 1314 1400 1402 2322 2324 2761 2899 10 738 876 1313 1314 1400 1402 2322 2324 2761 2899 3 738 1314 2899 3 738 1314 2899 3 738 1314 2899 3 738 1314 2899 3 738 1314 2899 3 738 1314 2899 8 738 740 1314 1315 1408 2316 2897 2899 8 738 740 1314 1315 1408 2316 2897 2899 8 738 740 1314 1315 1408 2316 2897 2899 8 738 740 1314 1315 1408 2316 2897 2899 8 738 740 1314 1315 1408 2316 2897 2899 8 738 740 1314 1315 1408 2316 2897 2899 3 738 740 1408 3 738 740 1408 3 738 740 1408 3 738 740 1408 3 738 740 1408 3 738 740 1408 12 738 739 876 877 1098 1099 1141 1142 1400 1401 1402 1403 12 738 739 876 877 1098 1099 1141 1142 1400 1401 1402 1403 12 738 739 876 877 1098 1099 1141 1142 1400 1401 1402 1403 12 738 739 876 877 1098 1099 1141 1142 1400 1401 1402 1403 12 738 739 876 877 1098 1099 1141 1142 1400 1401 1402 1403 12 738 739 876 877 1098 1099 1141 1142 1400 1401 1402 1403 4 738 739 1099 1142 4 738 739 1099 1142 4 738 739 1099 1142 4 738 739 1099 1142 4 738 739 1099 1142 4 738 739 1099 1142 4 738 876 1400 1402 4 738 876 1400 1402 4 738 876 1400 1402 4 738 876 1400 1402 4 738 876 1400 1402 4 738 876 1400 1402 4 739 741 1409 1410 4 739 741 1409 1410 4 739 741 1409 1410 4 739 741 1409 1410 4 739 741 1409 1410 4 739 741 1409 1410 8 739 741 883 884 926 927 1409 1410 8 739 741 883 884 926 927 1409 1410 8 739 741 883 884 926 927 1409 1410 8 739 741 883 884 926 927 1409 1410 8 739 741 883 884 926 927 1409 1410 8 739 741 883 884 926 927 1409 1410 8 739 877 882 883 925 926 1401 1403 8 739 877 882 883 925 926 1401 1403 8 739 877 882 883 925 926 1401 1403 8 739 877 882 883 925 926 1401 1403 8 739 877 882 883 925 926 1401 1403 8 739 877 882 883 925 926 1401 1403 3 739 883 926 3 739 883 926 3 739 883 926 3 739 883 926 3 739 883 926 3 739 883 926 4 739 877 1401 1403 4 739 877 1401 1403 4 739 877 1401 1403 4 739 877 1401 1403 4 739 877 1401 1403 4 739 877 1401 1403 3 740 1315 2897 3 740 1315 2897 3 740 1315 2897 3 740 1315 2897 3 740 1315 2897 3 740 1315 2897 8 740 742 1315 1316 1414 2310 2895 2897 8 740 742 1315 1316 1414 2310 2895 2897 8 740 742 1315 1316 1414 2310 2895 2897 8 740 742 1315 1316 1414 2310 2895 2897 8 740 742 1315 1316 1414 2310 2895 2897 8 740 742 1315 1316 1414 2310 2895 2897 3 740 742 1414 3 740 742 1414 3 740 742 1414 3 740 742 1414 3 740 742 1414 3 740 742 1414 4 740 741 1100 1143 4 740 741 1100 1143 4 740 741 1100 1143 4 740 741 1100 1143 4 740 741 1100 1143 4 740 741 1100 1143 4 741 743 1415 1416 4 741 743 1415 1416 4 741 743 1415 1416 4 741 743 1415 1416 4 741 743 1415 1416 4 741 743 1415 1416 8 741 743 884 885 927 928 1415 1416 8 741 743 884 885 927 928 1415 1416 8 741 743 884 885 927 928 1415 1416 8 741 743 884 885 927 928 1415 1416 8 741 743 884 885 927 928 1415 1416 8 741 743 884 885 927 928 1415 1416 3 741 884 927 3 741 884 927 3 741 884 927 3 741 884 927 3 741 884 927 3 741 884 927 3 742 1316 2895 3 742 1316 2895 3 742 1316 2895 3 742 1316 2895 3 742 1316 2895 3 742 1316 2895 8 742 744 1316 1317 1420 2304 2893 2895 8 742 744 1316 1317 1420 2304 2893 2895 8 742 744 1316 1317 1420 2304 2893 2895 8 742 744 1316 1317 1420 2304 2893 2895 8 742 744 1316 1317 1420 2304 2893 2895 8 742 744 1316 1317 1420 2304 2893 2895 3 742 744 1420 3 742 744 1420 3 742 744 1420 3 742 744 1420 3 742 744 1420 3 742 744 1420 4 742 743 1101 1144 4 742 743 1101 1144 4 742 743 1101 1144 4 742 743 1101 1144 4 742 743 1101 1144 4 742 743 1101 1144 4 743 745 1421 1422 4 743 745 1421 1422 4 743 745 1421 1422 4 743 745 1421 1422 4 743 745 1421 1422 4 743 745 1421 1422 8 743 745 885 886 928 929 1421 1422 8 743 745 885 886 928 929 1421 1422 8 743 745 885 886 928 929 1421 1422 8 743 745 885 886 928 929 1421 1422 8 743 745 885 886 928 929 1421 1422 8 743 745 885 886 928 929 1421 1422 3 743 885 928 3 743 885 928 3 743 885 928 3 743 885 928 3 743 885 928 3 743 885 928 3 744 1317 2893 3 744 1317 2893 3 744 1317 2893 3 744 1317 2893 3 744 1317 2893 3 744 1317 2893 8 744 746 1317 1318 1426 2298 2891 2893 8 744 746 1317 1318 1426 2298 2891 2893 8 744 746 1317 1318 1426 2298 2891 2893 8 744 746 1317 1318 1426 2298 2891 2893 8 744 746 1317 1318 1426 2298 2891 2893 8 744 746 1317 1318 1426 2298 2891 2893 3 744 746 1426 3 744 746 1426 3 744 746 1426 3 744 746 1426 3 744 746 1426 3 744 746 1426 4 744 745 1102 1145 4 744 745 1102 1145 4 744 745 1102 1145 4 744 745 1102 1145 4 744 745 1102 1145 4 744 745 1102 1145 4 745 747 1427 1428 4 745 747 1427 1428 4 745 747 1427 1428 4 745 747 1427 1428 4 745 747 1427 1428 4 745 747 1427 1428 8 745 747 886 887 929 930 1427 1428 8 745 747 886 887 929 930 1427 1428 8 745 747 886 887 929 930 1427 1428 8 745 747 886 887 929 930 1427 1428 8 745 747 886 887 929 930 1427 1428 8 745 747 886 887 929 930 1427 1428 3 745 886 929 3 745 886 929 3 745 886 929 3 745 886 929 3 745 886 929 3 745 886 929 3 746 1318 2891 3 746 1318 2891 3 746 1318 2891 3 746 1318 2891 3 746 1318 2891 3 746 1318 2891 8 746 748 1318 1319 1432 2292 2889 2891 8 746 748 1318 1319 1432 2292 2889 2891 8 746 748 1318 1319 1432 2292 2889 2891 8 746 748 1318 1319 1432 2292 2889 2891 8 746 748 1318 1319 1432 2292 2889 2891 8 746 748 1318 1319 1432 2292 2889 2891 3 746 748 1432 3 746 748 1432 3 746 748 1432 3 746 748 1432 3 746 748 1432 3 746 748 1432 4 746 747 1103 1146 4 746 747 1103 1146 4 746 747 1103 1146 4 746 747 1103 1146 4 746 747 1103 1146 4 746 747 1103 1146 4 747 749 1433 1434 4 747 749 1433 1434 4 747 749 1433 1434 4 747 749 1433 1434 4 747 749 1433 1434 4 747 749 1433 1434 8 747 749 887 888 930 931 1433 1434 8 747 749 887 888 930 931 1433 1434 8 747 749 887 888 930 931 1433 1434 8 747 749 887 888 930 931 1433 1434 8 747 749 887 888 930 931 1433 1434 8 747 749 887 888 930 931 1433 1434 3 747 887 930 3 747 887 930 3 747 887 930 3 747 887 930 3 747 887 930 3 747 887 930 3 748 1319 2889 3 748 1319 2889 3 748 1319 2889 3 748 1319 2889 3 748 1319 2889 3 748 1319 2889 8 748 750 1319 1320 1438 2286 2887 2889 8 748 750 1319 1320 1438 2286 2887 2889 8 748 750 1319 1320 1438 2286 2887 2889 8 748 750 1319 1320 1438 2286 2887 2889 8 748 750 1319 1320 1438 2286 2887 2889 8 748 750 1319 1320 1438 2286 2887 2889 3 748 750 1438 3 748 750 1438 3 748 750 1438 3 748 750 1438 3 748 750 1438 3 748 750 1438 4 748 749 1104 1147 4 748 749 1104 1147 4 748 749 1104 1147 4 748 749 1104 1147 4 748 749 1104 1147 4 748 749 1104 1147 4 749 751 1439 1440 4 749 751 1439 1440 4 749 751 1439 1440 4 749 751 1439 1440 4 749 751 1439 1440 4 749 751 1439 1440 8 749 751 888 889 931 932 1439 1440 8 749 751 888 889 931 932 1439 1440 8 749 751 888 889 931 932 1439 1440 8 749 751 888 889 931 932 1439 1440 8 749 751 888 889 931 932 1439 1440 8 749 751 888 889 931 932 1439 1440 3 749 888 931 3 749 888 931 3 749 888 931 3 749 888 931 3 749 888 931 3 749 888 931 3 750 1320 2887 3 750 1320 2887 3 750 1320 2887 3 750 1320 2887 3 750 1320 2887 3 750 1320 2887 10 750 752 1320 1321 1444 1446 2278 2280 2885 2887 10 750 752 1320 1321 1444 1446 2278 2280 2885 2887 10 750 752 1320 1321 1444 1446 2278 2280 2885 2887 10 750 752 1320 1321 1444 1446 2278 2280 2885 2887 10 750 752 1320 1321 1444 1446 2278 2280 2885 2887 10 750 752 1320 1321 1444 1446 2278 2280 2885 2887 4 750 752 1444 1446 4 750 752 1444 1446 4 750 752 1444 1446 4 750 752 1444 1446 4 750 752 1444 1446 4 750 752 1444 1446 12 750 751 752 753 1105 1106 1148 1149 1444 1445 1446 1447 12 750 751 752 753 1105 1106 1148 1149 1444 1445 1446 1447 12 750 751 752 753 1105 1106 1148 1149 1444 1445 1446 1447 12 750 751 752 753 1105 1106 1148 1149 1444 1445 1446 1447 12 750 751 752 753 1105 1106 1148 1149 1444 1445 1446 1447 12 750 751 752 753 1105 1106 1148 1149 1444 1445 1446 1447 4 750 751 1105 1148 4 750 751 1105 1148 4 750 751 1105 1148 4 750 751 1105 1148 4 750 751 1105 1148 4 750 751 1105 1148 4 751 753 1445 1447 4 751 753 1445 1447 4 751 753 1445 1447 4 751 753 1445 1447 4 751 753 1445 1447 4 751 753 1445 1447 8 751 753 889 890 932 933 1445 1447 8 751 753 889 890 932 933 1445 1447 8 751 753 889 890 932 933 1445 1447 8 751 753 889 890 932 933 1445 1447 8 751 753 889 890 932 933 1445 1447 8 751 753 889 890 932 933 1445 1447 3 751 889 932 3 751 889 932 3 751 889 932 3 751 889 932 3 751 889 932 3 751 889 932 3 752 1321 2885 3 752 1321 2885 3 752 1321 2885 3 752 1321 2885 3 752 1321 2885 3 752 1321 2885 8 752 754 1321 1322 1452 2272 2883 2885 8 752 754 1321 1322 1452 2272 2883 2885 8 752 754 1321 1322 1452 2272 2883 2885 8 752 754 1321 1322 1452 2272 2883 2885 8 752 754 1321 1322 1452 2272 2883 2885 8 752 754 1321 1322 1452 2272 2883 2885 3 752 754 1452 3 752 754 1452 3 752 754 1452 3 752 754 1452 3 752 754 1452 3 752 754 1452 11 752 753 754 755 1106 1107 1149 1150 1452 1453 1454 11 752 753 754 755 1106 1107 1149 1150 1452 1453 1454 11 752 753 754 755 1106 1107 1149 1150 1452 1453 1454 11 752 753 754 755 1106 1107 1149 1150 1452 1453 1454 11 752 753 754 755 1106 1107 1149 1150 1452 1453 1454 11 752 753 754 755 1106 1107 1149 1150 1452 1453 1454 4 752 753 1106 1149 4 752 753 1106 1149 4 752 753 1106 1149 4 752 753 1106 1149 4 752 753 1106 1149 4 752 753 1106 1149 4 753 755 1453 1454 4 753 755 1453 1454 4 753 755 1453 1454 4 753 755 1453 1454 4 753 755 1453 1454 4 753 755 1453 1454 8 753 755 890 891 933 934 1453 1454 8 753 755 890 891 933 934 1453 1454 8 753 755 890 891 933 934 1453 1454 8 753 755 890 891 933 934 1453 1454 8 753 755 890 891 933 934 1453 1454 8 753 755 890 891 933 934 1453 1454 3 753 890 933 3 753 890 933 3 753 890 933 3 753 890 933 3 753 890 933 3 753 890 933 3 754 1322 2883 3 754 1322 2883 3 754 1322 2883 3 754 1322 2883 3 754 1322 2883 3 754 1322 2883 11 754 756 1322 1323 1356 1458 1460 2264 2266 2881 2883 11 754 756 1322 1323 1356 1458 1460 2264 2266 2881 2883 11 754 756 1322 1323 1356 1458 1460 2264 2266 2881 2883 11 754 756 1322 1323 1356 1458 1460 2264 2266 2881 2883 11 754 756 1322 1323 1356 1458 1460 2264 2266 2881 2883 11 754 756 1322 1323 1356 1458 1460 2264 2266 2881 2883 4 754 756 1458 1460 4 754 756 1458 1460 4 754 756 1458 1460 4 754 756 1458 1460 4 754 756 1458 1460 4 754 756 1458 1460 12 754 755 756 757 1107 1108 1150 1151 1458 1459 1460 1461 12 754 755 756 757 1107 1108 1150 1151 1458 1459 1460 1461 12 754 755 756 757 1107 1108 1150 1151 1458 1459 1460 1461 12 754 755 756 757 1107 1108 1150 1151 1458 1459 1460 1461 12 754 755 756 757 1107 1108 1150 1151 1458 1459 1460 1461 12 754 755 756 757 1107 1108 1150 1151 1458 1459 1460 1461 4 754 755 1107 1150 4 754 755 1107 1150 4 754 755 1107 1150 4 754 755 1107 1150 4 754 755 1107 1150 4 754 755 1107 1150 4 755 757 1459 1461 4 755 757 1459 1461 4 755 757 1459 1461 4 755 757 1459 1461 4 755 757 1459 1461 4 755 757 1459 1461 8 755 757 891 892 934 935 1459 1461 8 755 757 891 892 934 935 1459 1461 8 755 757 891 892 934 935 1459 1461 8 755 757 891 892 934 935 1459 1461 8 755 757 891 892 934 935 1459 1461 8 755 757 891 892 934 935 1459 1461 3 755 891 934 3 755 891 934 3 755 891 934 3 755 891 934 3 755 891 934 3 755 891 934 4 756 1323 1356 2881 4 756 1323 1356 2881 4 756 1323 1356 2881 4 756 1323 1356 2881 4 756 1323 1356 2881 4 756 1323 1356 2881 11 756 758 1323 1324 1356 1466 1468 2256 2258 2879 2881 11 756 758 1323 1324 1356 1466 1468 2256 2258 2879 2881 11 756 758 1323 1324 1356 1466 1468 2256 2258 2879 2881 11 756 758 1323 1324 1356 1466 1468 2256 2258 2879 2881 11 756 758 1323 1324 1356 1466 1468 2256 2258 2879 2881 11 756 758 1323 1324 1356 1466 1468 2256 2258 2879 2881 4 756 758 1466 1468 4 756 758 1466 1468 4 756 758 1466 1468 4 756 758 1466 1468 4 756 758 1466 1468 4 756 758 1466 1468 12 756 757 758 759 1108 1109 1151 1152 1466 1467 1468 1469 12 756 757 758 759 1108 1109 1151 1152 1466 1467 1468 1469 12 756 757 758 759 1108 1109 1151 1152 1466 1467 1468 1469 12 756 757 758 759 1108 1109 1151 1152 1466 1467 1468 1469 12 756 757 758 759 1108 1109 1151 1152 1466 1467 1468 1469 12 756 757 758 759 1108 1109 1151 1152 1466 1467 1468 1469 4 756 757 1108 1151 4 756 757 1108 1151 4 756 757 1108 1151 4 756 757 1108 1151 4 756 757 1108 1151 4 756 757 1108 1151 4 757 759 1467 1469 4 757 759 1467 1469 4 757 759 1467 1469 4 757 759 1467 1469 4 757 759 1467 1469 4 757 759 1467 1469 8 757 759 892 893 935 936 1467 1469 8 757 759 892 893 935 936 1467 1469 8 757 759 892 893 935 936 1467 1469 8 757 759 892 893 935 936 1467 1469 8 757 759 892 893 935 936 1467 1469 8 757 759 892 893 935 936 1467 1469 3 757 892 935 3 757 892 935 3 757 892 935 3 757 892 935 3 757 892 935 3 757 892 935 3 758 1324 2879 3 758 1324 2879 3 758 1324 2879 3 758 1324 2879 3 758 1324 2879 3 758 1324 2879 8 758 760 1324 1325 1474 2250 2877 2879 8 758 760 1324 1325 1474 2250 2877 2879 8 758 760 1324 1325 1474 2250 2877 2879 8 758 760 1324 1325 1474 2250 2877 2879 8 758 760 1324 1325 1474 2250 2877 2879 8 758 760 1324 1325 1474 2250 2877 2879 3 758 760 1474 3 758 760 1474 3 758 760 1474 3 758 760 1474 3 758 760 1474 3 758 760 1474 11 758 759 760 761 1109 1110 1152 1153 1474 1475 1476 11 758 759 760 761 1109 1110 1152 1153 1474 1475 1476 11 758 759 760 761 1109 1110 1152 1153 1474 1475 1476 11 758 759 760 761 1109 1110 1152 1153 1474 1475 1476 11 758 759 760 761 1109 1110 1152 1153 1474 1475 1476 11 758 759 760 761 1109 1110 1152 1153 1474 1475 1476 4 758 759 1109 1152 4 758 759 1109 1152 4 758 759 1109 1152 4 758 759 1109 1152 4 758 759 1109 1152 4 758 759 1109 1152 4 759 761 1475 1476 4 759 761 1475 1476 4 759 761 1475 1476 4 759 761 1475 1476 4 759 761 1475 1476 4 759 761 1475 1476 8 759 761 893 894 936 937 1475 1476 8 759 761 893 894 936 937 1475 1476 8 759 761 893 894 936 937 1475 1476 8 759 761 893 894 936 937 1475 1476 8 759 761 893 894 936 937 1475 1476 8 759 761 893 894 936 937 1475 1476 3 759 893 936 3 759 893 936 3 759 893 936 3 759 893 936 3 759 893 936 3 759 893 936 3 760 1325 2877 3 760 1325 2877 3 760 1325 2877 3 760 1325 2877 3 760 1325 2877 3 760 1325 2877 11 760 762 1325 1326 1357 1480 1482 2242 2244 2875 2877 11 760 762 1325 1326 1357 1480 1482 2242 2244 2875 2877 11 760 762 1325 1326 1357 1480 1482 2242 2244 2875 2877 11 760 762 1325 1326 1357 1480 1482 2242 2244 2875 2877 11 760 762 1325 1326 1357 1480 1482 2242 2244 2875 2877 11 760 762 1325 1326 1357 1480 1482 2242 2244 2875 2877 4 760 762 1480 1482 4 760 762 1480 1482 4 760 762 1480 1482 4 760 762 1480 1482 4 760 762 1480 1482 4 760 762 1480 1482 12 760 761 762 763 1110 1111 1153 1154 1480 1481 1482 1483 12 760 761 762 763 1110 1111 1153 1154 1480 1481 1482 1483 12 760 761 762 763 1110 1111 1153 1154 1480 1481 1482 1483 12 760 761 762 763 1110 1111 1153 1154 1480 1481 1482 1483 12 760 761 762 763 1110 1111 1153 1154 1480 1481 1482 1483 12 760 761 762 763 1110 1111 1153 1154 1480 1481 1482 1483 4 760 761 1110 1153 4 760 761 1110 1153 4 760 761 1110 1153 4 760 761 1110 1153 4 760 761 1110 1153 4 760 761 1110 1153 4 761 763 1481 1483 4 761 763 1481 1483 4 761 763 1481 1483 4 761 763 1481 1483 4 761 763 1481 1483 4 761 763 1481 1483 8 761 763 894 895 937 938 1481 1483 8 761 763 894 895 937 938 1481 1483 8 761 763 894 895 937 938 1481 1483 8 761 763 894 895 937 938 1481 1483 8 761 763 894 895 937 938 1481 1483 8 761 763 894 895 937 938 1481 1483 3 761 894 937 3 761 894 937 3 761 894 937 3 761 894 937 3 761 894 937 3 761 894 937 4 762 1326 1357 2875 4 762 1326 1357 2875 4 762 1326 1357 2875 4 762 1326 1357 2875 4 762 1326 1357 2875 4 762 1326 1357 2875 11 762 764 1326 1327 1357 1490 1492 2232 2234 2873 2875 11 762 764 1326 1327 1357 1490 1492 2232 2234 2873 2875 11 762 764 1326 1327 1357 1490 1492 2232 2234 2873 2875 11 762 764 1326 1327 1357 1490 1492 2232 2234 2873 2875 11 762 764 1326 1327 1357 1490 1492 2232 2234 2873 2875 11 762 764 1326 1327 1357 1490 1492 2232 2234 2873 2875 4 762 764 1490 1492 4 762 764 1490 1492 4 762 764 1490 1492 4 762 764 1490 1492 4 762 764 1490 1492 4 762 764 1490 1492 12 762 763 764 765 1111 1112 1154 1155 1490 1491 1492 1493 12 762 763 764 765 1111 1112 1154 1155 1490 1491 1492 1493 12 762 763 764 765 1111 1112 1154 1155 1490 1491 1492 1493 12 762 763 764 765 1111 1112 1154 1155 1490 1491 1492 1493 12 762 763 764 765 1111 1112 1154 1155 1490 1491 1492 1493 12 762 763 764 765 1111 1112 1154 1155 1490 1491 1492 1493 4 762 763 1111 1154 4 762 763 1111 1154 4 762 763 1111 1154 4 762 763 1111 1154 4 762 763 1111 1154 4 762 763 1111 1154 4 763 765 1491 1493 4 763 765 1491 1493 4 763 765 1491 1493 4 763 765 1491 1493 4 763 765 1491 1493 4 763 765 1491 1493 8 763 765 895 896 938 939 1491 1493 8 763 765 895 896 938 939 1491 1493 8 763 765 895 896 938 939 1491 1493 8 763 765 895 896 938 939 1491 1493 8 763 765 895 896 938 939 1491 1493 8 763 765 895 896 938 939 1491 1493 3 763 895 938 3 763 895 938 3 763 895 938 3 763 895 938 3 763 895 938 3 763 895 938 3 764 1327 2873 3 764 1327 2873 3 764 1327 2873 3 764 1327 2873 3 764 1327 2873 3 764 1327 2873 8 764 766 1327 1328 1500 2224 2871 2873 8 764 766 1327 1328 1500 2224 2871 2873 8 764 766 1327 1328 1500 2224 2871 2873 8 764 766 1327 1328 1500 2224 2871 2873 8 764 766 1327 1328 1500 2224 2871 2873 8 764 766 1327 1328 1500 2224 2871 2873 3 764 766 1500 3 764 766 1500 3 764 766 1500 3 764 766 1500 3 764 766 1500 3 764 766 1500 11 764 765 766 767 1112 1113 1155 1156 1500 1501 1502 11 764 765 766 767 1112 1113 1155 1156 1500 1501 1502 11 764 765 766 767 1112 1113 1155 1156 1500 1501 1502 11 764 765 766 767 1112 1113 1155 1156 1500 1501 1502 11 764 765 766 767 1112 1113 1155 1156 1500 1501 1502 11 764 765 766 767 1112 1113 1155 1156 1500 1501 1502 4 764 765 1112 1155 4 764 765 1112 1155 4 764 765 1112 1155 4 764 765 1112 1155 4 764 765 1112 1155 4 764 765 1112 1155 4 765 767 1501 1502 4 765 767 1501 1502 4 765 767 1501 1502 4 765 767 1501 1502 4 765 767 1501 1502 4 765 767 1501 1502 8 765 767 896 897 939 940 1501 1502 8 765 767 896 897 939 940 1501 1502 8 765 767 896 897 939 940 1501 1502 8 765 767 896 897 939 940 1501 1502 8 765 767 896 897 939 940 1501 1502 8 765 767 896 897 939 940 1501 1502 3 765 896 939 3 765 896 939 3 765 896 939 3 765 896 939 3 765 896 939 3 765 896 939 3 766 1328 2871 3 766 1328 2871 3 766 1328 2871 3 766 1328 2871 3 766 1328 2871 3 766 1328 2871 11 766 768 1328 1329 1358 1506 1508 2216 2218 2869 2871 11 766 768 1328 1329 1358 1506 1508 2216 2218 2869 2871 11 766 768 1328 1329 1358 1506 1508 2216 2218 2869 2871 11 766 768 1328 1329 1358 1506 1508 2216 2218 2869 2871 11 766 768 1328 1329 1358 1506 1508 2216 2218 2869 2871 11 766 768 1328 1329 1358 1506 1508 2216 2218 2869 2871 4 766 768 1506 1508 4 766 768 1506 1508 4 766 768 1506 1508 4 766 768 1506 1508 4 766 768 1506 1508 4 766 768 1506 1508 12 766 767 768 769 1113 1114 1156 1157 1506 1507 1508 1509 12 766 767 768 769 1113 1114 1156 1157 1506 1507 1508 1509 12 766 767 768 769 1113 1114 1156 1157 1506 1507 1508 1509 12 766 767 768 769 1113 1114 1156 1157 1506 1507 1508 1509 12 766 767 768 769 1113 1114 1156 1157 1506 1507 1508 1509 12 766 767 768 769 1113 1114 1156 1157 1506 1507 1508 1509 4 766 767 1113 1156 4 766 767 1113 1156 4 766 767 1113 1156 4 766 767 1113 1156 4 766 767 1113 1156 4 766 767 1113 1156 4 767 769 1507 1509 4 767 769 1507 1509 4 767 769 1507 1509 4 767 769 1507 1509 4 767 769 1507 1509 4 767 769 1507 1509 8 767 769 897 898 940 941 1507 1509 8 767 769 897 898 940 941 1507 1509 8 767 769 897 898 940 941 1507 1509 8 767 769 897 898 940 941 1507 1509 8 767 769 897 898 940 941 1507 1509 8 767 769 897 898 940 941 1507 1509 3 767 897 940 3 767 897 940 3 767 897 940 3 767 897 940 3 767 897 940 3 767 897 940 4 768 1329 1358 2869 4 768 1329 1358 2869 4 768 1329 1358 2869 4 768 1329 1358 2869 4 768 1329 1358 2869 4 768 1329 1358 2869 11 768 770 1329 1330 1358 1514 1516 2208 2210 2867 2869 11 768 770 1329 1330 1358 1514 1516 2208 2210 2867 2869 11 768 770 1329 1330 1358 1514 1516 2208 2210 2867 2869 11 768 770 1329 1330 1358 1514 1516 2208 2210 2867 2869 11 768 770 1329 1330 1358 1514 1516 2208 2210 2867 2869 11 768 770 1329 1330 1358 1514 1516 2208 2210 2867 2869 4 768 770 1514 1516 4 768 770 1514 1516 4 768 770 1514 1516 4 768 770 1514 1516 4 768 770 1514 1516 4 768 770 1514 1516 12 768 769 770 771 1114 1115 1157 1158 1514 1515 1516 1517 12 768 769 770 771 1114 1115 1157 1158 1514 1515 1516 1517 12 768 769 770 771 1114 1115 1157 1158 1514 1515 1516 1517 12 768 769 770 771 1114 1115 1157 1158 1514 1515 1516 1517 12 768 769 770 771 1114 1115 1157 1158 1514 1515 1516 1517 12 768 769 770 771 1114 1115 1157 1158 1514 1515 1516 1517 4 768 769 1114 1157 4 768 769 1114 1157 4 768 769 1114 1157 4 768 769 1114 1157 4 768 769 1114 1157 4 768 769 1114 1157 4 769 771 1515 1517 4 769 771 1515 1517 4 769 771 1515 1517 4 769 771 1515 1517 4 769 771 1515 1517 4 769 771 1515 1517 8 769 771 898 899 941 942 1515 1517 8 769 771 898 899 941 942 1515 1517 8 769 771 898 899 941 942 1515 1517 8 769 771 898 899 941 942 1515 1517 8 769 771 898 899 941 942 1515 1517 8 769 771 898 899 941 942 1515 1517 3 769 898 941 3 769 898 941 3 769 898 941 3 769 898 941 3 769 898 941 3 769 898 941 3 770 1330 2867 3 770 1330 2867 3 770 1330 2867 3 770 1330 2867 3 770 1330 2867 3 770 1330 2867 8 770 772 1330 1331 1522 2202 2865 2867 8 770 772 1330 1331 1522 2202 2865 2867 8 770 772 1330 1331 1522 2202 2865 2867 8 770 772 1330 1331 1522 2202 2865 2867 8 770 772 1330 1331 1522 2202 2865 2867 8 770 772 1330 1331 1522 2202 2865 2867 3 770 772 1522 3 770 772 1522 3 770 772 1522 3 770 772 1522 3 770 772 1522 3 770 772 1522 11 770 771 772 773 1115 1116 1158 1159 1522 1523 1524 11 770 771 772 773 1115 1116 1158 1159 1522 1523 1524 11 770 771 772 773 1115 1116 1158 1159 1522 1523 1524 11 770 771 772 773 1115 1116 1158 1159 1522 1523 1524 11 770 771 772 773 1115 1116 1158 1159 1522 1523 1524 11 770 771 772 773 1115 1116 1158 1159 1522 1523 1524 4 770 771 1115 1158 4 770 771 1115 1158 4 770 771 1115 1158 4 770 771 1115 1158 4 770 771 1115 1158 4 770 771 1115 1158 4 771 773 1523 1524 4 771 773 1523 1524 4 771 773 1523 1524 4 771 773 1523 1524 4 771 773 1523 1524 4 771 773 1523 1524 8 771 773 899 900 942 943 1523 1524 8 771 773 899 900 942 943 1523 1524 8 771 773 899 900 942 943 1523 1524 8 771 773 899 900 942 943 1523 1524 8 771 773 899 900 942 943 1523 1524 8 771 773 899 900 942 943 1523 1524 3 771 899 942 3 771 899 942 3 771 899 942 3 771 899 942 3 771 899 942 3 771 899 942 3 772 1331 2865 3 772 1331 2865 3 772 1331 2865 3 772 1331 2865 3 772 1331 2865 3 772 1331 2865 11 772 774 1331 1332 1359 1528 1530 2194 2196 2863 2865 11 772 774 1331 1332 1359 1528 1530 2194 2196 2863 2865 11 772 774 1331 1332 1359 1528 1530 2194 2196 2863 2865 11 772 774 1331 1332 1359 1528 1530 2194 2196 2863 2865 11 772 774 1331 1332 1359 1528 1530 2194 2196 2863 2865 11 772 774 1331 1332 1359 1528 1530 2194 2196 2863 2865 4 772 774 1528 1530 4 772 774 1528 1530 4 772 774 1528 1530 4 772 774 1528 1530 4 772 774 1528 1530 4 772 774 1528 1530 12 772 773 774 775 1116 1117 1159 1160 1528 1529 1530 1531 12 772 773 774 775 1116 1117 1159 1160 1528 1529 1530 1531 12 772 773 774 775 1116 1117 1159 1160 1528 1529 1530 1531 12 772 773 774 775 1116 1117 1159 1160 1528 1529 1530 1531 12 772 773 774 775 1116 1117 1159 1160 1528 1529 1530 1531 12 772 773 774 775 1116 1117 1159 1160 1528 1529 1530 1531 4 772 773 1116 1159 4 772 773 1116 1159 4 772 773 1116 1159 4 772 773 1116 1159 4 772 773 1116 1159 4 772 773 1116 1159 4 773 775 1529 1531 4 773 775 1529 1531 4 773 775 1529 1531 4 773 775 1529 1531 4 773 775 1529 1531 4 773 775 1529 1531 8 773 775 900 901 943 944 1529 1531 8 773 775 900 901 943 944 1529 1531 8 773 775 900 901 943 944 1529 1531 8 773 775 900 901 943 944 1529 1531 8 773 775 900 901 943 944 1529 1531 8 773 775 900 901 943 944 1529 1531 3 773 900 943 3 773 900 943 3 773 900 943 3 773 900 943 3 773 900 943 3 773 900 943 4 774 1332 1359 2863 4 774 1332 1359 2863 4 774 1332 1359 2863 4 774 1332 1359 2863 4 774 1332 1359 2863 4 774 1332 1359 2863 11 774 776 1332 1333 1359 1538 1540 2184 2186 2861 2863 11 774 776 1332 1333 1359 1538 1540 2184 2186 2861 2863 11 774 776 1332 1333 1359 1538 1540 2184 2186 2861 2863 11 774 776 1332 1333 1359 1538 1540 2184 2186 2861 2863 11 774 776 1332 1333 1359 1538 1540 2184 2186 2861 2863 11 774 776 1332 1333 1359 1538 1540 2184 2186 2861 2863 4 774 776 1538 1540 4 774 776 1538 1540 4 774 776 1538 1540 4 774 776 1538 1540 4 774 776 1538 1540 4 774 776 1538 1540 12 774 775 776 777 1117 1118 1160 1161 1538 1539 1540 1541 12 774 775 776 777 1117 1118 1160 1161 1538 1539 1540 1541 12 774 775 776 777 1117 1118 1160 1161 1538 1539 1540 1541 12 774 775 776 777 1117 1118 1160 1161 1538 1539 1540 1541 12 774 775 776 777 1117 1118 1160 1161 1538 1539 1540 1541 12 774 775 776 777 1117 1118 1160 1161 1538 1539 1540 1541 4 774 775 1117 1160 4 774 775 1117 1160 4 774 775 1117 1160 4 774 775 1117 1160 4 774 775 1117 1160 4 774 775 1117 1160 4 775 777 1539 1541 4 775 777 1539 1541 4 775 777 1539 1541 4 775 777 1539 1541 4 775 777 1539 1541 4 775 777 1539 1541 8 775 777 901 902 944 945 1539 1541 8 775 777 901 902 944 945 1539 1541 8 775 777 901 902 944 945 1539 1541 8 775 777 901 902 944 945 1539 1541 8 775 777 901 902 944 945 1539 1541 8 775 777 901 902 944 945 1539 1541 3 775 901 944 3 775 901 944 3 775 901 944 3 775 901 944 3 775 901 944 3 775 901 944 3 776 1333 2861 3 776 1333 2861 3 776 1333 2861 3 776 1333 2861 3 776 1333 2861 3 776 1333 2861 8 776 778 1333 1334 1546 2178 2859 2861 8 776 778 1333 1334 1546 2178 2859 2861 8 776 778 1333 1334 1546 2178 2859 2861 8 776 778 1333 1334 1546 2178 2859 2861 8 776 778 1333 1334 1546 2178 2859 2861 8 776 778 1333 1334 1546 2178 2859 2861 3 776 778 1546 3 776 778 1546 3 776 778 1546 3 776 778 1546 3 776 778 1546 3 776 778 1546 11 776 777 778 779 1118 1119 1161 1162 1546 1547 1548 11 776 777 778 779 1118 1119 1161 1162 1546 1547 1548 11 776 777 778 779 1118 1119 1161 1162 1546 1547 1548 11 776 777 778 779 1118 1119 1161 1162 1546 1547 1548 11 776 777 778 779 1118 1119 1161 1162 1546 1547 1548 11 776 777 778 779 1118 1119 1161 1162 1546 1547 1548 4 776 777 1118 1161 4 776 777 1118 1161 4 776 777 1118 1161 4 776 777 1118 1161 4 776 777 1118 1161 4 776 777 1118 1161 4 777 779 1547 1548 4 777 779 1547 1548 4 777 779 1547 1548 4 777 779 1547 1548 4 777 779 1547 1548 4 777 779 1547 1548 8 777 779 902 903 945 946 1547 1548 8 777 779 902 903 945 946 1547 1548 8 777 779 902 903 945 946 1547 1548 8 777 779 902 903 945 946 1547 1548 8 777 779 902 903 945 946 1547 1548 8 777 779 902 903 945 946 1547 1548 3 777 902 945 3 777 902 945 3 777 902 945 3 777 902 945 3 777 902 945 3 777 902 945 3 778 1334 2859 3 778 1334 2859 3 778 1334 2859 3 778 1334 2859 3 778 1334 2859 3 778 1334 2859 11 778 780 1334 1335 1360 1552 1554 2170 2172 2857 2859 11 778 780 1334 1335 1360 1552 1554 2170 2172 2857 2859 11 778 780 1334 1335 1360 1552 1554 2170 2172 2857 2859 11 778 780 1334 1335 1360 1552 1554 2170 2172 2857 2859 11 778 780 1334 1335 1360 1552 1554 2170 2172 2857 2859 11 778 780 1334 1335 1360 1552 1554 2170 2172 2857 2859 4 778 780 1552 1554 4 778 780 1552 1554 4 778 780 1552 1554 4 778 780 1552 1554 4 778 780 1552 1554 4 778 780 1552 1554 12 778 779 780 781 1119 1120 1162 1163 1552 1553 1554 1555 12 778 779 780 781 1119 1120 1162 1163 1552 1553 1554 1555 12 778 779 780 781 1119 1120 1162 1163 1552 1553 1554 1555 12 778 779 780 781 1119 1120 1162 1163 1552 1553 1554 1555 12 778 779 780 781 1119 1120 1162 1163 1552 1553 1554 1555 12 778 779 780 781 1119 1120 1162 1163 1552 1553 1554 1555 4 778 779 1119 1162 4 778 779 1119 1162 4 778 779 1119 1162 4 778 779 1119 1162 4 778 779 1119 1162 4 778 779 1119 1162 4 779 781 1553 1555 4 779 781 1553 1555 4 779 781 1553 1555 4 779 781 1553 1555 4 779 781 1553 1555 4 779 781 1553 1555 8 779 781 903 904 946 947 1553 1555 8 779 781 903 904 946 947 1553 1555 8 779 781 903 904 946 947 1553 1555 8 779 781 903 904 946 947 1553 1555 8 779 781 903 904 946 947 1553 1555 8 779 781 903 904 946 947 1553 1555 3 779 903 946 3 779 903 946 3 779 903 946 3 779 903 946 3 779 903 946 3 779 903 946 4 780 1335 1360 2857 4 780 1335 1360 2857 4 780 1335 1360 2857 4 780 1335 1360 2857 4 780 1335 1360 2857 4 780 1335 1360 2857 11 780 782 1335 1336 1360 1560 1562 2162 2164 2855 2857 11 780 782 1335 1336 1360 1560 1562 2162 2164 2855 2857 11 780 782 1335 1336 1360 1560 1562 2162 2164 2855 2857 11 780 782 1335 1336 1360 1560 1562 2162 2164 2855 2857 11 780 782 1335 1336 1360 1560 1562 2162 2164 2855 2857 11 780 782 1335 1336 1360 1560 1562 2162 2164 2855 2857 4 780 782 1560 1562 4 780 782 1560 1562 4 780 782 1560 1562 4 780 782 1560 1562 4 780 782 1560 1562 4 780 782 1560 1562 12 780 781 782 783 1120 1121 1163 1164 1560 1561 1562 1563 12 780 781 782 783 1120 1121 1163 1164 1560 1561 1562 1563 12 780 781 782 783 1120 1121 1163 1164 1560 1561 1562 1563 12 780 781 782 783 1120 1121 1163 1164 1560 1561 1562 1563 12 780 781 782 783 1120 1121 1163 1164 1560 1561 1562 1563 12 780 781 782 783 1120 1121 1163 1164 1560 1561 1562 1563 4 780 781 1120 1163 4 780 781 1120 1163 4 780 781 1120 1163 4 780 781 1120 1163 4 780 781 1120 1163 4 780 781 1120 1163 4 781 783 1561 1563 4 781 783 1561 1563 4 781 783 1561 1563 4 781 783 1561 1563 4 781 783 1561 1563 4 781 783 1561 1563 8 781 783 904 905 947 948 1561 1563 8 781 783 904 905 947 948 1561 1563 8 781 783 904 905 947 948 1561 1563 8 781 783 904 905 947 948 1561 1563 8 781 783 904 905 947 948 1561 1563 8 781 783 904 905 947 948 1561 1563 3 781 904 947 3 781 904 947 3 781 904 947 3 781 904 947 3 781 904 947 3 781 904 947 3 782 1336 2855 3 782 1336 2855 3 782 1336 2855 3 782 1336 2855 3 782 1336 2855 3 782 1336 2855 8 782 784 1336 1337 1568 2156 2853 2855 8 782 784 1336 1337 1568 2156 2853 2855 8 782 784 1336 1337 1568 2156 2853 2855 8 782 784 1336 1337 1568 2156 2853 2855 8 782 784 1336 1337 1568 2156 2853 2855 8 782 784 1336 1337 1568 2156 2853 2855 3 782 784 1568 3 782 784 1568 3 782 784 1568 3 782 784 1568 3 782 784 1568 3 782 784 1568 11 782 783 784 785 1121 1122 1164 1165 1568 1569 1570 11 782 783 784 785 1121 1122 1164 1165 1568 1569 1570 11 782 783 784 785 1121 1122 1164 1165 1568 1569 1570 11 782 783 784 785 1121 1122 1164 1165 1568 1569 1570 11 782 783 784 785 1121 1122 1164 1165 1568 1569 1570 11 782 783 784 785 1121 1122 1164 1165 1568 1569 1570 4 782 783 1121 1164 4 782 783 1121 1164 4 782 783 1121 1164 4 782 783 1121 1164 4 782 783 1121 1164 4 782 783 1121 1164 4 783 785 1569 1570 4 783 785 1569 1570 4 783 785 1569 1570 4 783 785 1569 1570 4 783 785 1569 1570 4 783 785 1569 1570 8 783 785 905 906 948 949 1569 1570 8 783 785 905 906 948 949 1569 1570 8 783 785 905 906 948 949 1569 1570 8 783 785 905 906 948 949 1569 1570 8 783 785 905 906 948 949 1569 1570 8 783 785 905 906 948 949 1569 1570 3 783 905 948 3 783 905 948 3 783 905 948 3 783 905 948 3 783 905 948 3 783 905 948 3 784 1337 2853 3 784 1337 2853 3 784 1337 2853 3 784 1337 2853 3 784 1337 2853 3 784 1337 2853 11 784 786 1337 1338 1361 1574 1576 2148 2150 2851 2853 11 784 786 1337 1338 1361 1574 1576 2148 2150 2851 2853 11 784 786 1337 1338 1361 1574 1576 2148 2150 2851 2853 11 784 786 1337 1338 1361 1574 1576 2148 2150 2851 2853 11 784 786 1337 1338 1361 1574 1576 2148 2150 2851 2853 11 784 786 1337 1338 1361 1574 1576 2148 2150 2851 2853 4 784 786 1574 1576 4 784 786 1574 1576 4 784 786 1574 1576 4 784 786 1574 1576 4 784 786 1574 1576 4 784 786 1574 1576 12 784 785 786 787 1122 1123 1165 1166 1574 1575 1576 1577 12 784 785 786 787 1122 1123 1165 1166 1574 1575 1576 1577 12 784 785 786 787 1122 1123 1165 1166 1574 1575 1576 1577 12 784 785 786 787 1122 1123 1165 1166 1574 1575 1576 1577 12 784 785 786 787 1122 1123 1165 1166 1574 1575 1576 1577 12 784 785 786 787 1122 1123 1165 1166 1574 1575 1576 1577 4 784 785 1122 1165 4 784 785 1122 1165 4 784 785 1122 1165 4 784 785 1122 1165 4 784 785 1122 1165 4 784 785 1122 1165 4 785 787 1575 1577 4 785 787 1575 1577 4 785 787 1575 1577 4 785 787 1575 1577 4 785 787 1575 1577 4 785 787 1575 1577 8 785 787 906 907 949 950 1575 1577 8 785 787 906 907 949 950 1575 1577 8 785 787 906 907 949 950 1575 1577 8 785 787 906 907 949 950 1575 1577 8 785 787 906 907 949 950 1575 1577 8 785 787 906 907 949 950 1575 1577 3 785 906 949 3 785 906 949 3 785 906 949 3 785 906 949 3 785 906 949 3 785 906 949 4 786 1338 1361 2851 4 786 1338 1361 2851 4 786 1338 1361 2851 4 786 1338 1361 2851 4 786 1338 1361 2851 4 786 1338 1361 2851 11 786 788 1338 1339 1361 1584 1586 2138 2140 2849 2851 11 786 788 1338 1339 1361 1584 1586 2138 2140 2849 2851 11 786 788 1338 1339 1361 1584 1586 2138 2140 2849 2851 11 786 788 1338 1339 1361 1584 1586 2138 2140 2849 2851 11 786 788 1338 1339 1361 1584 1586 2138 2140 2849 2851 11 786 788 1338 1339 1361 1584 1586 2138 2140 2849 2851 4 786 788 1584 1586 4 786 788 1584 1586 4 786 788 1584 1586 4 786 788 1584 1586 4 786 788 1584 1586 4 786 788 1584 1586 12 786 787 788 789 1123 1124 1166 1167 1584 1585 1586 1587 12 786 787 788 789 1123 1124 1166 1167 1584 1585 1586 1587 12 786 787 788 789 1123 1124 1166 1167 1584 1585 1586 1587 12 786 787 788 789 1123 1124 1166 1167 1584 1585 1586 1587 12 786 787 788 789 1123 1124 1166 1167 1584 1585 1586 1587 12 786 787 788 789 1123 1124 1166 1167 1584 1585 1586 1587 4 786 787 1123 1166 4 786 787 1123 1166 4 786 787 1123 1166 4 786 787 1123 1166 4 786 787 1123 1166 4 786 787 1123 1166 4 787 789 1585 1587 4 787 789 1585 1587 4 787 789 1585 1587 4 787 789 1585 1587 4 787 789 1585 1587 4 787 789 1585 1587 8 787 789 907 908 950 951 1585 1587 8 787 789 907 908 950 951 1585 1587 8 787 789 907 908 950 951 1585 1587 8 787 789 907 908 950 951 1585 1587 8 787 789 907 908 950 951 1585 1587 8 787 789 907 908 950 951 1585 1587 3 787 907 950 3 787 907 950 3 787 907 950 3 787 907 950 3 787 907 950 3 787 907 950 3 788 1339 2849 3 788 1339 2849 3 788 1339 2849 3 788 1339 2849 3 788 1339 2849 3 788 1339 2849 8 788 790 1339 1340 1592 2132 2847 2849 8 788 790 1339 1340 1592 2132 2847 2849 8 788 790 1339 1340 1592 2132 2847 2849 8 788 790 1339 1340 1592 2132 2847 2849 8 788 790 1339 1340 1592 2132 2847 2849 8 788 790 1339 1340 1592 2132 2847 2849 3 788 790 1592 3 788 790 1592 3 788 790 1592 3 788 790 1592 3 788 790 1592 3 788 790 1592 11 788 789 790 791 1124 1125 1167 1168 1592 1593 1594 11 788 789 790 791 1124 1125 1167 1168 1592 1593 1594 11 788 789 790 791 1124 1125 1167 1168 1592 1593 1594 11 788 789 790 791 1124 1125 1167 1168 1592 1593 1594 11 788 789 790 791 1124 1125 1167 1168 1592 1593 1594 11 788 789 790 791 1124 1125 1167 1168 1592 1593 1594 4 788 789 1124 1167 4 788 789 1124 1167 4 788 789 1124 1167 4 788 789 1124 1167 4 788 789 1124 1167 4 788 789 1124 1167 4 789 791 1593 1594 4 789 791 1593 1594 4 789 791 1593 1594 4 789 791 1593 1594 4 789 791 1593 1594 4 789 791 1593 1594 8 789 791 908 909 951 952 1593 1594 8 789 791 908 909 951 952 1593 1594 8 789 791 908 909 951 952 1593 1594 8 789 791 908 909 951 952 1593 1594 8 789 791 908 909 951 952 1593 1594 8 789 791 908 909 951 952 1593 1594 3 789 908 951 3 789 908 951 3 789 908 951 3 789 908 951 3 789 908 951 3 789 908 951 3 790 1340 2847 3 790 1340 2847 3 790 1340 2847 3 790 1340 2847 3 790 1340 2847 3 790 1340 2847 11 790 792 1340 1341 1362 1598 1600 2124 2126 2845 2847 11 790 792 1340 1341 1362 1598 1600 2124 2126 2845 2847 11 790 792 1340 1341 1362 1598 1600 2124 2126 2845 2847 11 790 792 1340 1341 1362 1598 1600 2124 2126 2845 2847 11 790 792 1340 1341 1362 1598 1600 2124 2126 2845 2847 11 790 792 1340 1341 1362 1598 1600 2124 2126 2845 2847 4 790 792 1598 1600 4 790 792 1598 1600 4 790 792 1598 1600 4 790 792 1598 1600 4 790 792 1598 1600 4 790 792 1598 1600 12 790 791 792 793 1125 1126 1168 1169 1598 1599 1600 1601 12 790 791 792 793 1125 1126 1168 1169 1598 1599 1600 1601 12 790 791 792 793 1125 1126 1168 1169 1598 1599 1600 1601 12 790 791 792 793 1125 1126 1168 1169 1598 1599 1600 1601 12 790 791 792 793 1125 1126 1168 1169 1598 1599 1600 1601 12 790 791 792 793 1125 1126 1168 1169 1598 1599 1600 1601 4 790 791 1125 1168 4 790 791 1125 1168 4 790 791 1125 1168 4 790 791 1125 1168 4 790 791 1125 1168 4 790 791 1125 1168 4 791 793 1599 1601 4 791 793 1599 1601 4 791 793 1599 1601 4 791 793 1599 1601 4 791 793 1599 1601 4 791 793 1599 1601 8 791 793 909 910 952 953 1599 1601 8 791 793 909 910 952 953 1599 1601 8 791 793 909 910 952 953 1599 1601 8 791 793 909 910 952 953 1599 1601 8 791 793 909 910 952 953 1599 1601 8 791 793 909 910 952 953 1599 1601 3 791 909 952 3 791 909 952 3 791 909 952 3 791 909 952 3 791 909 952 3 791 909 952 4 792 1341 1362 2845 4 792 1341 1362 2845 4 792 1341 1362 2845 4 792 1341 1362 2845 4 792 1341 1362 2845 4 792 1341 1362 2845 11 792 794 1341 1342 1362 1606 1608 2116 2118 2843 2845 11 792 794 1341 1342 1362 1606 1608 2116 2118 2843 2845 11 792 794 1341 1342 1362 1606 1608 2116 2118 2843 2845 11 792 794 1341 1342 1362 1606 1608 2116 2118 2843 2845 11 792 794 1341 1342 1362 1606 1608 2116 2118 2843 2845 11 792 794 1341 1342 1362 1606 1608 2116 2118 2843 2845 4 792 794 1606 1608 4 792 794 1606 1608 4 792 794 1606 1608 4 792 794 1606 1608 4 792 794 1606 1608 4 792 794 1606 1608 12 792 793 794 795 1126 1127 1169 1170 1606 1607 1608 1609 12 792 793 794 795 1126 1127 1169 1170 1606 1607 1608 1609 12 792 793 794 795 1126 1127 1169 1170 1606 1607 1608 1609 12 792 793 794 795 1126 1127 1169 1170 1606 1607 1608 1609 12 792 793 794 795 1126 1127 1169 1170 1606 1607 1608 1609 12 792 793 794 795 1126 1127 1169 1170 1606 1607 1608 1609 4 792 793 1126 1169 4 792 793 1126 1169 4 792 793 1126 1169 4 792 793 1126 1169 4 792 793 1126 1169 4 792 793 1126 1169 4 793 795 1607 1609 4 793 795 1607 1609 4 793 795 1607 1609 4 793 795 1607 1609 4 793 795 1607 1609 4 793 795 1607 1609 8 793 795 910 911 953 954 1607 1609 8 793 795 910 911 953 954 1607 1609 8 793 795 910 911 953 954 1607 1609 8 793 795 910 911 953 954 1607 1609 8 793 795 910 911 953 954 1607 1609 8 793 795 910 911 953 954 1607 1609 3 793 910 953 3 793 910 953 3 793 910 953 3 793 910 953 3 793 910 953 3 793 910 953 3 794 1342 2843 3 794 1342 2843 3 794 1342 2843 3 794 1342 2843 3 794 1342 2843 3 794 1342 2843 8 794 796 1342 1343 1614 2110 2841 2843 8 794 796 1342 1343 1614 2110 2841 2843 8 794 796 1342 1343 1614 2110 2841 2843 8 794 796 1342 1343 1614 2110 2841 2843 8 794 796 1342 1343 1614 2110 2841 2843 8 794 796 1342 1343 1614 2110 2841 2843 3 794 796 1614 3 794 796 1614 3 794 796 1614 3 794 796 1614 3 794 796 1614 3 794 796 1614 11 794 795 796 797 1127 1128 1170 1171 1614 1615 1616 11 794 795 796 797 1127 1128 1170 1171 1614 1615 1616 11 794 795 796 797 1127 1128 1170 1171 1614 1615 1616 11 794 795 796 797 1127 1128 1170 1171 1614 1615 1616 11 794 795 796 797 1127 1128 1170 1171 1614 1615 1616 11 794 795 796 797 1127 1128 1170 1171 1614 1615 1616 4 794 795 1127 1170 4 794 795 1127 1170 4 794 795 1127 1170 4 794 795 1127 1170 4 794 795 1127 1170 4 794 795 1127 1170 4 795 797 1615 1616 4 795 797 1615 1616 4 795 797 1615 1616 4 795 797 1615 1616 4 795 797 1615 1616 4 795 797 1615 1616 8 795 797 911 912 954 955 1615 1616 8 795 797 911 912 954 955 1615 1616 8 795 797 911 912 954 955 1615 1616 8 795 797 911 912 954 955 1615 1616 8 795 797 911 912 954 955 1615 1616 8 795 797 911 912 954 955 1615 1616 3 795 911 954 3 795 911 954 3 795 911 954 3 795 911 954 3 795 911 954 3 795 911 954 3 796 1343 2841 3 796 1343 2841 3 796 1343 2841 3 796 1343 2841 3 796 1343 2841 3 796 1343 2841 11 796 798 1343 1344 1363 1620 1622 2102 2104 2839 2841 11 796 798 1343 1344 1363 1620 1622 2102 2104 2839 2841 11 796 798 1343 1344 1363 1620 1622 2102 2104 2839 2841 11 796 798 1343 1344 1363 1620 1622 2102 2104 2839 2841 11 796 798 1343 1344 1363 1620 1622 2102 2104 2839 2841 11 796 798 1343 1344 1363 1620 1622 2102 2104 2839 2841 4 796 798 1620 1622 4 796 798 1620 1622 4 796 798 1620 1622 4 796 798 1620 1622 4 796 798 1620 1622 4 796 798 1620 1622 12 796 797 798 799 1128 1129 1171 1172 1620 1621 1622 1623 12 796 797 798 799 1128 1129 1171 1172 1620 1621 1622 1623 12 796 797 798 799 1128 1129 1171 1172 1620 1621 1622 1623 12 796 797 798 799 1128 1129 1171 1172 1620 1621 1622 1623 12 796 797 798 799 1128 1129 1171 1172 1620 1621 1622 1623 12 796 797 798 799 1128 1129 1171 1172 1620 1621 1622 1623 4 796 797 1128 1171 4 796 797 1128 1171 4 796 797 1128 1171 4 796 797 1128 1171 4 796 797 1128 1171 4 796 797 1128 1171 4 797 799 1621 1623 4 797 799 1621 1623 4 797 799 1621 1623 4 797 799 1621 1623 4 797 799 1621 1623 4 797 799 1621 1623 8 797 799 912 913 955 956 1621 1623 8 797 799 912 913 955 956 1621 1623 8 797 799 912 913 955 956 1621 1623 8 797 799 912 913 955 956 1621 1623 8 797 799 912 913 955 956 1621 1623 8 797 799 912 913 955 956 1621 1623 3 797 912 955 3 797 912 955 3 797 912 955 3 797 912 955 3 797 912 955 3 797 912 955 4 798 1344 1363 2839 4 798 1344 1363 2839 4 798 1344 1363 2839 4 798 1344 1363 2839 4 798 1344 1363 2839 4 798 1344 1363 2839 11 798 800 1344 1345 1363 1630 1632 2092 2094 2837 2839 11 798 800 1344 1345 1363 1630 1632 2092 2094 2837 2839 11 798 800 1344 1345 1363 1630 1632 2092 2094 2837 2839 11 798 800 1344 1345 1363 1630 1632 2092 2094 2837 2839 11 798 800 1344 1345 1363 1630 1632 2092 2094 2837 2839 11 798 800 1344 1345 1363 1630 1632 2092 2094 2837 2839 4 798 800 1630 1632 4 798 800 1630 1632 4 798 800 1630 1632 4 798 800 1630 1632 4 798 800 1630 1632 4 798 800 1630 1632 12 798 799 800 801 1129 1130 1172 1173 1630 1631 1632 1633 12 798 799 800 801 1129 1130 1172 1173 1630 1631 1632 1633 12 798 799 800 801 1129 1130 1172 1173 1630 1631 1632 1633 12 798 799 800 801 1129 1130 1172 1173 1630 1631 1632 1633 12 798 799 800 801 1129 1130 1172 1173 1630 1631 1632 1633 12 798 799 800 801 1129 1130 1172 1173 1630 1631 1632 1633 4 798 799 1129 1172 4 798 799 1129 1172 4 798 799 1129 1172 4 798 799 1129 1172 4 798 799 1129 1172 4 798 799 1129 1172 4 799 801 1631 1633 4 799 801 1631 1633 4 799 801 1631 1633 4 799 801 1631 1633 4 799 801 1631 1633 4 799 801 1631 1633 8 799 801 913 914 956 957 1631 1633 8 799 801 913 914 956 957 1631 1633 8 799 801 913 914 956 957 1631 1633 8 799 801 913 914 956 957 1631 1633 8 799 801 913 914 956 957 1631 1633 8 799 801 913 914 956 957 1631 1633 3 799 913 956 3 799 913 956 3 799 913 956 3 799 913 956 3 799 913 956 3 799 913 956 3 800 1345 2837 3 800 1345 2837 3 800 1345 2837 3 800 1345 2837 3 800 1345 2837 3 800 1345 2837 8 800 802 1345 1346 1638 2086 2835 2837 8 800 802 1345 1346 1638 2086 2835 2837 8 800 802 1345 1346 1638 2086 2835 2837 8 800 802 1345 1346 1638 2086 2835 2837 8 800 802 1345 1346 1638 2086 2835 2837 8 800 802 1345 1346 1638 2086 2835 2837 3 800 802 1638 3 800 802 1638 3 800 802 1638 3 800 802 1638 3 800 802 1638 3 800 802 1638 11 800 801 802 803 1130 1131 1173 1174 1638 1639 1640 11 800 801 802 803 1130 1131 1173 1174 1638 1639 1640 11 800 801 802 803 1130 1131 1173 1174 1638 1639 1640 11 800 801 802 803 1130 1131 1173 1174 1638 1639 1640 11 800 801 802 803 1130 1131 1173 1174 1638 1639 1640 11 800 801 802 803 1130 1131 1173 1174 1638 1639 1640 4 800 801 1130 1173 4 800 801 1130 1173 4 800 801 1130 1173 4 800 801 1130 1173 4 800 801 1130 1173 4 800 801 1130 1173 4 801 803 1639 1640 4 801 803 1639 1640 4 801 803 1639 1640 4 801 803 1639 1640 4 801 803 1639 1640 4 801 803 1639 1640 8 801 803 914 915 957 958 1639 1640 8 801 803 914 915 957 958 1639 1640 8 801 803 914 915 957 958 1639 1640 8 801 803 914 915 957 958 1639 1640 8 801 803 914 915 957 958 1639 1640 8 801 803 914 915 957 958 1639 1640 3 801 914 957 3 801 914 957 3 801 914 957 3 801 914 957 3 801 914 957 3 801 914 957 3 802 1346 2835 3 802 1346 2835 3 802 1346 2835 3 802 1346 2835 3 802 1346 2835 3 802 1346 2835 11 802 804 1346 1347 1364 1644 1646 2078 2080 2833 2835 11 802 804 1346 1347 1364 1644 1646 2078 2080 2833 2835 11 802 804 1346 1347 1364 1644 1646 2078 2080 2833 2835 11 802 804 1346 1347 1364 1644 1646 2078 2080 2833 2835 11 802 804 1346 1347 1364 1644 1646 2078 2080 2833 2835 11 802 804 1346 1347 1364 1644 1646 2078 2080 2833 2835 4 802 804 1644 1646 4 802 804 1644 1646 4 802 804 1644 1646 4 802 804 1644 1646 4 802 804 1644 1646 4 802 804 1644 1646 12 802 803 804 805 1131 1132 1174 1175 1644 1645 1646 1647 12 802 803 804 805 1131 1132 1174 1175 1644 1645 1646 1647 12 802 803 804 805 1131 1132 1174 1175 1644 1645 1646 1647 12 802 803 804 805 1131 1132 1174 1175 1644 1645 1646 1647 12 802 803 804 805 1131 1132 1174 1175 1644 1645 1646 1647 12 802 803 804 805 1131 1132 1174 1175 1644 1645 1646 1647 4 802 803 1131 1174 4 802 803 1131 1174 4 802 803 1131 1174 4 802 803 1131 1174 4 802 803 1131 1174 4 802 803 1131 1174 4 803 805 1645 1647 4 803 805 1645 1647 4 803 805 1645 1647 4 803 805 1645 1647 4 803 805 1645 1647 4 803 805 1645 1647 8 803 805 915 916 958 959 1645 1647 8 803 805 915 916 958 959 1645 1647 8 803 805 915 916 958 959 1645 1647 8 803 805 915 916 958 959 1645 1647 8 803 805 915 916 958 959 1645 1647 8 803 805 915 916 958 959 1645 1647 3 803 915 958 3 803 915 958 3 803 915 958 3 803 915 958 3 803 915 958 3 803 915 958 4 804 1347 1364 2833 4 804 1347 1364 2833 4 804 1347 1364 2833 4 804 1347 1364 2833 4 804 1347 1364 2833 4 804 1347 1364 2833 11 804 806 1347 1348 1364 1652 1654 2070 2072 2831 2833 11 804 806 1347 1348 1364 1652 1654 2070 2072 2831 2833 11 804 806 1347 1348 1364 1652 1654 2070 2072 2831 2833 11 804 806 1347 1348 1364 1652 1654 2070 2072 2831 2833 11 804 806 1347 1348 1364 1652 1654 2070 2072 2831 2833 11 804 806 1347 1348 1364 1652 1654 2070 2072 2831 2833 4 804 806 1652 1654 4 804 806 1652 1654 4 804 806 1652 1654 4 804 806 1652 1654 4 804 806 1652 1654 4 804 806 1652 1654 12 804 805 806 807 1132 1133 1175 1176 1652 1653 1654 1655 12 804 805 806 807 1132 1133 1175 1176 1652 1653 1654 1655 12 804 805 806 807 1132 1133 1175 1176 1652 1653 1654 1655 12 804 805 806 807 1132 1133 1175 1176 1652 1653 1654 1655 12 804 805 806 807 1132 1133 1175 1176 1652 1653 1654 1655 12 804 805 806 807 1132 1133 1175 1176 1652 1653 1654 1655 4 804 805 1132 1175 4 804 805 1132 1175 4 804 805 1132 1175 4 804 805 1132 1175 4 804 805 1132 1175 4 804 805 1132 1175 4 805 807 1653 1655 4 805 807 1653 1655 4 805 807 1653 1655 4 805 807 1653 1655 4 805 807 1653 1655 4 805 807 1653 1655 8 805 807 916 917 959 960 1653 1655 8 805 807 916 917 959 960 1653 1655 8 805 807 916 917 959 960 1653 1655 8 805 807 916 917 959 960 1653 1655 8 805 807 916 917 959 960 1653 1655 8 805 807 916 917 959 960 1653 1655 3 805 916 959 3 805 916 959 3 805 916 959 3 805 916 959 3 805 916 959 3 805 916 959 3 806 1348 2831 3 806 1348 2831 3 806 1348 2831 3 806 1348 2831 3 806 1348 2831 3 806 1348 2831 8 806 808 1348 1349 1660 2064 2829 2831 8 806 808 1348 1349 1660 2064 2829 2831 8 806 808 1348 1349 1660 2064 2829 2831 8 806 808 1348 1349 1660 2064 2829 2831 8 806 808 1348 1349 1660 2064 2829 2831 8 806 808 1348 1349 1660 2064 2829 2831 3 806 808 1660 3 806 808 1660 3 806 808 1660 3 806 808 1660 3 806 808 1660 3 806 808 1660 11 806 807 808 809 1133 1134 1176 1177 1660 1661 1662 11 806 807 808 809 1133 1134 1176 1177 1660 1661 1662 11 806 807 808 809 1133 1134 1176 1177 1660 1661 1662 11 806 807 808 809 1133 1134 1176 1177 1660 1661 1662 11 806 807 808 809 1133 1134 1176 1177 1660 1661 1662 11 806 807 808 809 1133 1134 1176 1177 1660 1661 1662 4 806 807 1133 1176 4 806 807 1133 1176 4 806 807 1133 1176 4 806 807 1133 1176 4 806 807 1133 1176 4 806 807 1133 1176 4 807 809 1661 1662 4 807 809 1661 1662 4 807 809 1661 1662 4 807 809 1661 1662 4 807 809 1661 1662 4 807 809 1661 1662 8 807 809 917 918 960 961 1661 1662 8 807 809 917 918 960 961 1661 1662 8 807 809 917 918 960 961 1661 1662 8 807 809 917 918 960 961 1661 1662 8 807 809 917 918 960 961 1661 1662 8 807 809 917 918 960 961 1661 1662 3 807 917 960 3 807 917 960 3 807 917 960 3 807 917 960 3 807 917 960 3 807 917 960 3 808 1349 2829 3 808 1349 2829 3 808 1349 2829 3 808 1349 2829 3 808 1349 2829 3 808 1349 2829 11 808 810 1349 1350 1365 1666 1668 2056 2058 2827 2829 11 808 810 1349 1350 1365 1666 1668 2056 2058 2827 2829 11 808 810 1349 1350 1365 1666 1668 2056 2058 2827 2829 11 808 810 1349 1350 1365 1666 1668 2056 2058 2827 2829 11 808 810 1349 1350 1365 1666 1668 2056 2058 2827 2829 11 808 810 1349 1350 1365 1666 1668 2056 2058 2827 2829 4 808 810 1666 1668 4 808 810 1666 1668 4 808 810 1666 1668 4 808 810 1666 1668 4 808 810 1666 1668 4 808 810 1666 1668 12 808 809 810 811 1134 1135 1177 1178 1666 1667 1668 1669 12 808 809 810 811 1134 1135 1177 1178 1666 1667 1668 1669 12 808 809 810 811 1134 1135 1177 1178 1666 1667 1668 1669 12 808 809 810 811 1134 1135 1177 1178 1666 1667 1668 1669 12 808 809 810 811 1134 1135 1177 1178 1666 1667 1668 1669 12 808 809 810 811 1134 1135 1177 1178 1666 1667 1668 1669 4 808 809 1134 1177 4 808 809 1134 1177 4 808 809 1134 1177 4 808 809 1134 1177 4 808 809 1134 1177 4 808 809 1134 1177 4 809 811 1667 1669 4 809 811 1667 1669 4 809 811 1667 1669 4 809 811 1667 1669 4 809 811 1667 1669 4 809 811 1667 1669 8 809 811 918 919 961 962 1667 1669 8 809 811 918 919 961 962 1667 1669 8 809 811 918 919 961 962 1667 1669 8 809 811 918 919 961 962 1667 1669 8 809 811 918 919 961 962 1667 1669 8 809 811 918 919 961 962 1667 1669 3 809 918 961 3 809 918 961 3 809 918 961 3 809 918 961 3 809 918 961 3 809 918 961 4 810 1350 1365 2827 4 810 1350 1365 2827 4 810 1350 1365 2827 4 810 1350 1365 2827 4 810 1350 1365 2827 4 810 1350 1365 2827 11 810 812 1350 1351 1365 1676 1678 2046 2048 2825 2827 11 810 812 1350 1351 1365 1676 1678 2046 2048 2825 2827 11 810 812 1350 1351 1365 1676 1678 2046 2048 2825 2827 11 810 812 1350 1351 1365 1676 1678 2046 2048 2825 2827 11 810 812 1350 1351 1365 1676 1678 2046 2048 2825 2827 11 810 812 1350 1351 1365 1676 1678 2046 2048 2825 2827 4 810 812 1676 1678 4 810 812 1676 1678 4 810 812 1676 1678 4 810 812 1676 1678 4 810 812 1676 1678 4 810 812 1676 1678 12 810 811 812 813 1135 1136 1178 1179 1676 1677 1678 1679 12 810 811 812 813 1135 1136 1178 1179 1676 1677 1678 1679 12 810 811 812 813 1135 1136 1178 1179 1676 1677 1678 1679 12 810 811 812 813 1135 1136 1178 1179 1676 1677 1678 1679 12 810 811 812 813 1135 1136 1178 1179 1676 1677 1678 1679 12 810 811 812 813 1135 1136 1178 1179 1676 1677 1678 1679 4 810 811 1135 1178 4 810 811 1135 1178 4 810 811 1135 1178 4 810 811 1135 1178 4 810 811 1135 1178 4 810 811 1135 1178 4 811 813 1677 1679 4 811 813 1677 1679 4 811 813 1677 1679 4 811 813 1677 1679 4 811 813 1677 1679 4 811 813 1677 1679 8 811 813 919 920 962 963 1677 1679 8 811 813 919 920 962 963 1677 1679 8 811 813 919 920 962 963 1677 1679 8 811 813 919 920 962 963 1677 1679 8 811 813 919 920 962 963 1677 1679 8 811 813 919 920 962 963 1677 1679 3 811 919 962 3 811 919 962 3 811 919 962 3 811 919 962 3 811 919 962 3 811 919 962 3 812 1351 2825 3 812 1351 2825 3 812 1351 2825 3 812 1351 2825 3 812 1351 2825 3 812 1351 2825 8 812 814 1351 1352 1684 2040 2823 2825 8 812 814 1351 1352 1684 2040 2823 2825 8 812 814 1351 1352 1684 2040 2823 2825 8 812 814 1351 1352 1684 2040 2823 2825 8 812 814 1351 1352 1684 2040 2823 2825 8 812 814 1351 1352 1684 2040 2823 2825 3 812 814 1684 3 812 814 1684 3 812 814 1684 3 812 814 1684 3 812 814 1684 3 812 814 1684 11 812 813 814 815 1136 1137 1179 1180 1684 1685 1686 11 812 813 814 815 1136 1137 1179 1180 1684 1685 1686 11 812 813 814 815 1136 1137 1179 1180 1684 1685 1686 11 812 813 814 815 1136 1137 1179 1180 1684 1685 1686 11 812 813 814 815 1136 1137 1179 1180 1684 1685 1686 11 812 813 814 815 1136 1137 1179 1180 1684 1685 1686 4 812 813 1136 1179 4 812 813 1136 1179 4 812 813 1136 1179 4 812 813 1136 1179 4 812 813 1136 1179 4 812 813 1136 1179 4 813 815 1685 1686 4 813 815 1685 1686 4 813 815 1685 1686 4 813 815 1685 1686 4 813 815 1685 1686 4 813 815 1685 1686 8 813 815 920 921 963 964 1685 1686 8 813 815 920 921 963 964 1685 1686 8 813 815 920 921 963 964 1685 1686 8 813 815 920 921 963 964 1685 1686 8 813 815 920 921 963 964 1685 1686 8 813 815 920 921 963 964 1685 1686 3 813 920 963 3 813 920 963 3 813 920 963 3 813 920 963 3 813 920 963 3 813 920 963 3 814 1352 2823 3 814 1352 2823 3 814 1352 2823 3 814 1352 2823 3 814 1352 2823 3 814 1352 2823 11 814 816 1352 1353 1366 1690 1692 2032 2034 2821 2823 11 814 816 1352 1353 1366 1690 1692 2032 2034 2821 2823 11 814 816 1352 1353 1366 1690 1692 2032 2034 2821 2823 11 814 816 1352 1353 1366 1690 1692 2032 2034 2821 2823 11 814 816 1352 1353 1366 1690 1692 2032 2034 2821 2823 11 814 816 1352 1353 1366 1690 1692 2032 2034 2821 2823 4 814 816 1690 1692 4 814 816 1690 1692 4 814 816 1690 1692 4 814 816 1690 1692 4 814 816 1690 1692 4 814 816 1690 1692 12 814 815 816 817 1137 1138 1180 1181 1690 1691 1692 1693 12 814 815 816 817 1137 1138 1180 1181 1690 1691 1692 1693 12 814 815 816 817 1137 1138 1180 1181 1690 1691 1692 1693 12 814 815 816 817 1137 1138 1180 1181 1690 1691 1692 1693 12 814 815 816 817 1137 1138 1180 1181 1690 1691 1692 1693 12 814 815 816 817 1137 1138 1180 1181 1690 1691 1692 1693 4 814 815 1137 1180 4 814 815 1137 1180 4 814 815 1137 1180 4 814 815 1137 1180 4 814 815 1137 1180 4 814 815 1137 1180 4 815 817 1691 1693 4 815 817 1691 1693 4 815 817 1691 1693 4 815 817 1691 1693 4 815 817 1691 1693 4 815 817 1691 1693 8 815 817 921 922 964 965 1691 1693 8 815 817 921 922 964 965 1691 1693 8 815 817 921 922 964 965 1691 1693 8 815 817 921 922 964 965 1691 1693 8 815 817 921 922 964 965 1691 1693 8 815 817 921 922 964 965 1691 1693 3 815 921 964 3 815 921 964 3 815 921 964 3 815 921 964 3 815 921 964 3 815 921 964 4 816 1353 1366 2821 4 816 1353 1366 2821 4 816 1353 1366 2821 4 816 1353 1366 2821 4 816 1353 1366 2821 4 816 1353 1366 2821 11 816 818 1353 1354 1366 1700 1702 2022 2024 2819 2821 11 816 818 1353 1354 1366 1700 1702 2022 2024 2819 2821 11 816 818 1353 1354 1366 1700 1702 2022 2024 2819 2821 11 816 818 1353 1354 1366 1700 1702 2022 2024 2819 2821 11 816 818 1353 1354 1366 1700 1702 2022 2024 2819 2821 11 816 818 1353 1354 1366 1700 1702 2022 2024 2819 2821 4 816 818 1700 1702 4 816 818 1700 1702 4 816 818 1700 1702 4 816 818 1700 1702 4 816 818 1700 1702 4 816 818 1700 1702 12 816 817 818 819 1138 1139 1181 1182 1700 1701 1702 1703 12 816 817 818 819 1138 1139 1181 1182 1700 1701 1702 1703 12 816 817 818 819 1138 1139 1181 1182 1700 1701 1702 1703 12 816 817 818 819 1138 1139 1181 1182 1700 1701 1702 1703 12 816 817 818 819 1138 1139 1181 1182 1700 1701 1702 1703 12 816 817 818 819 1138 1139 1181 1182 1700 1701 1702 1703 4 816 817 1138 1181 4 816 817 1138 1181 4 816 817 1138 1181 4 816 817 1138 1181 4 816 817 1138 1181 4 816 817 1138 1181 4 817 819 1701 1703 4 817 819 1701 1703 4 817 819 1701 1703 4 817 819 1701 1703 4 817 819 1701 1703 4 817 819 1701 1703 8 817 819 922 923 965 966 1701 1703 8 817 819 922 923 965 966 1701 1703 8 817 819 922 923 965 966 1701 1703 8 817 819 922 923 965 966 1701 1703 8 817 819 922 923 965 966 1701 1703 8 817 819 922 923 965 966 1701 1703 3 817 922 965 3 817 922 965 3 817 922 965 3 817 922 965 3 817 922 965 3 817 922 965 3 818 1354 2819 3 818 1354 2819 3 818 1354 2819 3 818 1354 2819 3 818 1354 2819 3 818 1354 2819 8 818 879 1354 1355 1710 2014 2758 2819 8 818 879 1354 1355 1710 2014 2758 2819 8 818 879 1354 1355 1710 2014 2758 2819 8 818 879 1354 1355 1710 2014 2758 2819 8 818 879 1354 1355 1710 2014 2758 2819 8 818 879 1354 1355 1710 2014 2758 2819 3 818 879 1710 3 818 879 1710 3 818 879 1710 3 818 879 1710 3 818 879 1710 3 818 879 1710 11 818 819 879 880 1139 1140 1182 1183 1710 1711 1712 11 818 819 879 880 1139 1140 1182 1183 1710 1711 1712 11 818 819 879 880 1139 1140 1182 1183 1710 1711 1712 11 818 819 879 880 1139 1140 1182 1183 1710 1711 1712 11 818 819 879 880 1139 1140 1182 1183 1710 1711 1712 11 818 819 879 880 1139 1140 1182 1183 1710 1711 1712 4 818 819 1139 1182 4 818 819 1139 1182 4 818 819 1139 1182 4 818 819 1139 1182 4 818 819 1139 1182 4 818 819 1139 1182 4 819 880 1711 1712 4 819 880 1711 1712 4 819 880 1711 1712 4 819 880 1711 1712 4 819 880 1711 1712 4 819 880 1711 1712 8 819 880 923 924 966 967 1711 1712 8 819 880 923 924 966 967 1711 1712 8 819 880 923 924 966 967 1711 1712 8 819 880 923 924 966 967 1711 1712 8 819 880 923 924 966 967 1711 1712 8 819 880 923 924 966 967 1711 1712 3 819 923 966 3 819 923 966 3 819 923 966 3 819 923 966 3 819 923 966 3 819 923 966 3 820 1313 2817 3 820 1313 2817 3 820 1313 2817 3 820 1313 2817 3 820 1313 2817 3 820 1313 2817 8 820 821 1313 1314 1400 2324 2816 2817 8 820 821 1313 1314 1400 2324 2816 2817 8 820 821 1313 1314 1400 2324 2816 2817 8 820 821 1313 1314 1400 2324 2816 2817 8 820 821 1313 1314 1400 2324 2816 2817 8 820 821 1313 1314 1400 2324 2816 2817 3 820 821 1400 3 820 821 1400 3 820 821 1400 3 820 821 1400 3 820 821 1400 3 820 821 1400 8 820 821 882 883 1098 1099 1400 1401 8 820 821 882 883 1098 1099 1400 1401 8 820 821 882 883 1098 1099 1400 1401 8 820 821 882 883 1098 1099 1400 1401 8 820 821 882 883 1098 1099 1400 1401 8 820 821 882 883 1098 1099 1400 1401 3 820 882 1098 3 820 882 1098 3 820 882 1098 3 820 882 1098 3 820 882 1098 3 820 882 1098 3 821 1314 2816 3 821 1314 2816 3 821 1314 2816 3 821 1314 2816 3 821 1314 2816 3 821 1314 2816 8 821 822 1314 1315 1408 2316 2815 2816 8 821 822 1314 1315 1408 2316 2815 2816 8 821 822 1314 1315 1408 2316 2815 2816 8 821 822 1314 1315 1408 2316 2815 2816 8 821 822 1314 1315 1408 2316 2815 2816 8 821 822 1314 1315 1408 2316 2815 2816 3 821 822 1408 3 821 822 1408 3 821 822 1408 3 821 822 1408 3 821 822 1408 3 821 822 1408 8 821 822 883 884 1099 1100 1408 1409 8 821 822 883 884 1099 1100 1408 1409 8 821 822 883 884 1099 1100 1408 1409 8 821 822 883 884 1099 1100 1408 1409 8 821 822 883 884 1099 1100 1408 1409 8 821 822 883 884 1099 1100 1408 1409 3 821 883 1099 3 821 883 1099 3 821 883 1099 3 821 883 1099 3 821 883 1099 3 821 883 1099 3 822 1315 2815 3 822 1315 2815 3 822 1315 2815 3 822 1315 2815 3 822 1315 2815 3 822 1315 2815 8 822 823 1315 1316 1414 2310 2814 2815 8 822 823 1315 1316 1414 2310 2814 2815 8 822 823 1315 1316 1414 2310 2814 2815 8 822 823 1315 1316 1414 2310 2814 2815 8 822 823 1315 1316 1414 2310 2814 2815 8 822 823 1315 1316 1414 2310 2814 2815 3 822 823 1414 3 822 823 1414 3 822 823 1414 3 822 823 1414 3 822 823 1414 3 822 823 1414 8 822 823 884 885 1100 1101 1414 1415 8 822 823 884 885 1100 1101 1414 1415 8 822 823 884 885 1100 1101 1414 1415 8 822 823 884 885 1100 1101 1414 1415 8 822 823 884 885 1100 1101 1414 1415 8 822 823 884 885 1100 1101 1414 1415 3 822 884 1100 3 822 884 1100 3 822 884 1100 3 822 884 1100 3 822 884 1100 3 822 884 1100 3 823 1316 2814 3 823 1316 2814 3 823 1316 2814 3 823 1316 2814 3 823 1316 2814 3 823 1316 2814 8 823 824 1316 1317 1420 2304 2813 2814 8 823 824 1316 1317 1420 2304 2813 2814 8 823 824 1316 1317 1420 2304 2813 2814 8 823 824 1316 1317 1420 2304 2813 2814 8 823 824 1316 1317 1420 2304 2813 2814 8 823 824 1316 1317 1420 2304 2813 2814 3 823 824 1420 3 823 824 1420 3 823 824 1420 3 823 824 1420 3 823 824 1420 3 823 824 1420 8 823 824 885 886 1101 1102 1420 1421 8 823 824 885 886 1101 1102 1420 1421 8 823 824 885 886 1101 1102 1420 1421 8 823 824 885 886 1101 1102 1420 1421 8 823 824 885 886 1101 1102 1420 1421 8 823 824 885 886 1101 1102 1420 1421 3 823 885 1101 3 823 885 1101 3 823 885 1101 3 823 885 1101 3 823 885 1101 3 823 885 1101 3 824 1317 2813 3 824 1317 2813 3 824 1317 2813 3 824 1317 2813 3 824 1317 2813 3 824 1317 2813 8 824 825 1317 1318 1426 2298 2812 2813 8 824 825 1317 1318 1426 2298 2812 2813 8 824 825 1317 1318 1426 2298 2812 2813 8 824 825 1317 1318 1426 2298 2812 2813 8 824 825 1317 1318 1426 2298 2812 2813 8 824 825 1317 1318 1426 2298 2812 2813 3 824 825 1426 3 824 825 1426 3 824 825 1426 3 824 825 1426 3 824 825 1426 3 824 825 1426 8 824 825 886 887 1102 1103 1426 1427 8 824 825 886 887 1102 1103 1426 1427 8 824 825 886 887 1102 1103 1426 1427 8 824 825 886 887 1102 1103 1426 1427 8 824 825 886 887 1102 1103 1426 1427 8 824 825 886 887 1102 1103 1426 1427 3 824 886 1102 3 824 886 1102 3 824 886 1102 3 824 886 1102 3 824 886 1102 3 824 886 1102 3 825 1318 2812 3 825 1318 2812 3 825 1318 2812 3 825 1318 2812 3 825 1318 2812 3 825 1318 2812 8 825 826 1318 1319 1432 2292 2811 2812 8 825 826 1318 1319 1432 2292 2811 2812 8 825 826 1318 1319 1432 2292 2811 2812 8 825 826 1318 1319 1432 2292 2811 2812 8 825 826 1318 1319 1432 2292 2811 2812 8 825 826 1318 1319 1432 2292 2811 2812 3 825 826 1432 3 825 826 1432 3 825 826 1432 3 825 826 1432 3 825 826 1432 3 825 826 1432 8 825 826 887 888 1103 1104 1432 1433 8 825 826 887 888 1103 1104 1432 1433 8 825 826 887 888 1103 1104 1432 1433 8 825 826 887 888 1103 1104 1432 1433 8 825 826 887 888 1103 1104 1432 1433 8 825 826 887 888 1103 1104 1432 1433 3 825 887 1103 3 825 887 1103 3 825 887 1103 3 825 887 1103 3 825 887 1103 3 825 887 1103 3 826 1319 2811 3 826 1319 2811 3 826 1319 2811 3 826 1319 2811 3 826 1319 2811 3 826 1319 2811 8 826 827 1319 1320 1438 2286 2810 2811 8 826 827 1319 1320 1438 2286 2810 2811 8 826 827 1319 1320 1438 2286 2810 2811 8 826 827 1319 1320 1438 2286 2810 2811 8 826 827 1319 1320 1438 2286 2810 2811 8 826 827 1319 1320 1438 2286 2810 2811 3 826 827 1438 3 826 827 1438 3 826 827 1438 3 826 827 1438 3 826 827 1438 3 826 827 1438 8 826 827 888 889 1104 1105 1438 1439 8 826 827 888 889 1104 1105 1438 1439 8 826 827 888 889 1104 1105 1438 1439 8 826 827 888 889 1104 1105 1438 1439 8 826 827 888 889 1104 1105 1438 1439 8 826 827 888 889 1104 1105 1438 1439 3 826 888 1104 3 826 888 1104 3 826 888 1104 3 826 888 1104 3 826 888 1104 3 826 888 1104 3 827 1320 2810 3 827 1320 2810 3 827 1320 2810 3 827 1320 2810 3 827 1320 2810 3 827 1320 2810 8 827 828 1320 1321 1444 2280 2809 2810 8 827 828 1320 1321 1444 2280 2809 2810 8 827 828 1320 1321 1444 2280 2809 2810 8 827 828 1320 1321 1444 2280 2809 2810 8 827 828 1320 1321 1444 2280 2809 2810 8 827 828 1320 1321 1444 2280 2809 2810 3 827 828 1444 3 827 828 1444 3 827 828 1444 3 827 828 1444 3 827 828 1444 3 827 828 1444 8 827 828 889 890 1105 1106 1444 1445 8 827 828 889 890 1105 1106 1444 1445 8 827 828 889 890 1105 1106 1444 1445 8 827 828 889 890 1105 1106 1444 1445 8 827 828 889 890 1105 1106 1444 1445 8 827 828 889 890 1105 1106 1444 1445 3 827 889 1105 3 827 889 1105 3 827 889 1105 3 827 889 1105 3 827 889 1105 3 827 889 1105 3 828 1321 2809 3 828 1321 2809 3 828 1321 2809 3 828 1321 2809 3 828 1321 2809 3 828 1321 2809 8 828 829 1321 1322 1452 2272 2808 2809 8 828 829 1321 1322 1452 2272 2808 2809 8 828 829 1321 1322 1452 2272 2808 2809 8 828 829 1321 1322 1452 2272 2808 2809 8 828 829 1321 1322 1452 2272 2808 2809 8 828 829 1321 1322 1452 2272 2808 2809 3 828 829 1452 3 828 829 1452 3 828 829 1452 3 828 829 1452 3 828 829 1452 3 828 829 1452 8 828 829 890 891 1106 1107 1452 1453 8 828 829 890 891 1106 1107 1452 1453 8 828 829 890 891 1106 1107 1452 1453 8 828 829 890 891 1106 1107 1452 1453 8 828 829 890 891 1106 1107 1452 1453 8 828 829 890 891 1106 1107 1452 1453 3 828 890 1106 3 828 890 1106 3 828 890 1106 3 828 890 1106 3 828 890 1106 3 828 890 1106 3 829 1322 2808 3 829 1322 2808 3 829 1322 2808 3 829 1322 2808 3 829 1322 2808 3 829 1322 2808 8 829 830 1322 1323 1458 2266 2807 2808 8 829 830 1322 1323 1458 2266 2807 2808 8 829 830 1322 1323 1458 2266 2807 2808 8 829 830 1322 1323 1458 2266 2807 2808 8 829 830 1322 1323 1458 2266 2807 2808 8 829 830 1322 1323 1458 2266 2807 2808 3 829 830 1458 3 829 830 1458 3 829 830 1458 3 829 830 1458 3 829 830 1458 3 829 830 1458 8 829 830 891 892 1107 1108 1458 1459 8 829 830 891 892 1107 1108 1458 1459 8 829 830 891 892 1107 1108 1458 1459 8 829 830 891 892 1107 1108 1458 1459 8 829 830 891 892 1107 1108 1458 1459 8 829 830 891 892 1107 1108 1458 1459 3 829 891 1107 3 829 891 1107 3 829 891 1107 3 829 891 1107 3 829 891 1107 3 829 891 1107 3 830 1323 2807 3 830 1323 2807 3 830 1323 2807 3 830 1323 2807 3 830 1323 2807 3 830 1323 2807 8 830 831 1323 1324 1466 2258 2806 2807 8 830 831 1323 1324 1466 2258 2806 2807 8 830 831 1323 1324 1466 2258 2806 2807 8 830 831 1323 1324 1466 2258 2806 2807 8 830 831 1323 1324 1466 2258 2806 2807 8 830 831 1323 1324 1466 2258 2806 2807 3 830 831 1466 3 830 831 1466 3 830 831 1466 3 830 831 1466 3 830 831 1466 3 830 831 1466 8 830 831 892 893 1108 1109 1466 1467 8 830 831 892 893 1108 1109 1466 1467 8 830 831 892 893 1108 1109 1466 1467 8 830 831 892 893 1108 1109 1466 1467 8 830 831 892 893 1108 1109 1466 1467 8 830 831 892 893 1108 1109 1466 1467 3 830 892 1108 3 830 892 1108 3 830 892 1108 3 830 892 1108 3 830 892 1108 3 830 892 1108 3 831 1324 2806 3 831 1324 2806 3 831 1324 2806 3 831 1324 2806 3 831 1324 2806 3 831 1324 2806 8 831 832 1324 1325 1474 2250 2805 2806 8 831 832 1324 1325 1474 2250 2805 2806 8 831 832 1324 1325 1474 2250 2805 2806 8 831 832 1324 1325 1474 2250 2805 2806 8 831 832 1324 1325 1474 2250 2805 2806 8 831 832 1324 1325 1474 2250 2805 2806 3 831 832 1474 3 831 832 1474 3 831 832 1474 3 831 832 1474 3 831 832 1474 3 831 832 1474 8 831 832 893 894 1109 1110 1474 1475 8 831 832 893 894 1109 1110 1474 1475 8 831 832 893 894 1109 1110 1474 1475 8 831 832 893 894 1109 1110 1474 1475 8 831 832 893 894 1109 1110 1474 1475 8 831 832 893 894 1109 1110 1474 1475 3 831 893 1109 3 831 893 1109 3 831 893 1109 3 831 893 1109 3 831 893 1109 3 831 893 1109 3 832 1325 2805 3 832 1325 2805 3 832 1325 2805 3 832 1325 2805 3 832 1325 2805 3 832 1325 2805 8 832 833 1325 1326 1480 2244 2804 2805 8 832 833 1325 1326 1480 2244 2804 2805 8 832 833 1325 1326 1480 2244 2804 2805 8 832 833 1325 1326 1480 2244 2804 2805 8 832 833 1325 1326 1480 2244 2804 2805 8 832 833 1325 1326 1480 2244 2804 2805 3 832 833 1480 3 832 833 1480 3 832 833 1480 3 832 833 1480 3 832 833 1480 3 832 833 1480 8 832 833 894 895 1110 1111 1480 1481 8 832 833 894 895 1110 1111 1480 1481 8 832 833 894 895 1110 1111 1480 1481 8 832 833 894 895 1110 1111 1480 1481 8 832 833 894 895 1110 1111 1480 1481 8 832 833 894 895 1110 1111 1480 1481 3 832 894 1110 3 832 894 1110 3 832 894 1110 3 832 894 1110 3 832 894 1110 3 832 894 1110 3 833 1326 2804 3 833 1326 2804 3 833 1326 2804 3 833 1326 2804 3 833 1326 2804 3 833 1326 2804 8 833 834 1326 1327 1490 2234 2803 2804 8 833 834 1326 1327 1490 2234 2803 2804 8 833 834 1326 1327 1490 2234 2803 2804 8 833 834 1326 1327 1490 2234 2803 2804 8 833 834 1326 1327 1490 2234 2803 2804 8 833 834 1326 1327 1490 2234 2803 2804 3 833 834 1490 3 833 834 1490 3 833 834 1490 3 833 834 1490 3 833 834 1490 3 833 834 1490 8 833 834 895 896 1111 1112 1490 1491 8 833 834 895 896 1111 1112 1490 1491 8 833 834 895 896 1111 1112 1490 1491 8 833 834 895 896 1111 1112 1490 1491 8 833 834 895 896 1111 1112 1490 1491 8 833 834 895 896 1111 1112 1490 1491 3 833 895 1111 3 833 895 1111 3 833 895 1111 3 833 895 1111 3 833 895 1111 3 833 895 1111 3 834 1327 2803 3 834 1327 2803 3 834 1327 2803 3 834 1327 2803 3 834 1327 2803 3 834 1327 2803 8 834 835 1327 1328 1500 2224 2802 2803 8 834 835 1327 1328 1500 2224 2802 2803 8 834 835 1327 1328 1500 2224 2802 2803 8 834 835 1327 1328 1500 2224 2802 2803 8 834 835 1327 1328 1500 2224 2802 2803 8 834 835 1327 1328 1500 2224 2802 2803 3 834 835 1500 3 834 835 1500 3 834 835 1500 3 834 835 1500 3 834 835 1500 3 834 835 1500 8 834 835 896 897 1112 1113 1500 1501 8 834 835 896 897 1112 1113 1500 1501 8 834 835 896 897 1112 1113 1500 1501 8 834 835 896 897 1112 1113 1500 1501 8 834 835 896 897 1112 1113 1500 1501 8 834 835 896 897 1112 1113 1500 1501 3 834 896 1112 3 834 896 1112 3 834 896 1112 3 834 896 1112 3 834 896 1112 3 834 896 1112 3 835 1328 2802 3 835 1328 2802 3 835 1328 2802 3 835 1328 2802 3 835 1328 2802 3 835 1328 2802 8 835 836 1328 1329 1506 2218 2801 2802 8 835 836 1328 1329 1506 2218 2801 2802 8 835 836 1328 1329 1506 2218 2801 2802 8 835 836 1328 1329 1506 2218 2801 2802 8 835 836 1328 1329 1506 2218 2801 2802 8 835 836 1328 1329 1506 2218 2801 2802 3 835 836 1506 3 835 836 1506 3 835 836 1506 3 835 836 1506 3 835 836 1506 3 835 836 1506 8 835 836 897 898 1113 1114 1506 1507 8 835 836 897 898 1113 1114 1506 1507 8 835 836 897 898 1113 1114 1506 1507 8 835 836 897 898 1113 1114 1506 1507 8 835 836 897 898 1113 1114 1506 1507 8 835 836 897 898 1113 1114 1506 1507 3 835 897 1113 3 835 897 1113 3 835 897 1113 3 835 897 1113 3 835 897 1113 3 835 897 1113 3 836 1329 2801 3 836 1329 2801 3 836 1329 2801 3 836 1329 2801 3 836 1329 2801 3 836 1329 2801 8 836 837 1329 1330 1514 2210 2800 2801 8 836 837 1329 1330 1514 2210 2800 2801 8 836 837 1329 1330 1514 2210 2800 2801 8 836 837 1329 1330 1514 2210 2800 2801 8 836 837 1329 1330 1514 2210 2800 2801 8 836 837 1329 1330 1514 2210 2800 2801 3 836 837 1514 3 836 837 1514 3 836 837 1514 3 836 837 1514 3 836 837 1514 3 836 837 1514 8 836 837 898 899 1114 1115 1514 1515 8 836 837 898 899 1114 1115 1514 1515 8 836 837 898 899 1114 1115 1514 1515 8 836 837 898 899 1114 1115 1514 1515 8 836 837 898 899 1114 1115 1514 1515 8 836 837 898 899 1114 1115 1514 1515 3 836 898 1114 3 836 898 1114 3 836 898 1114 3 836 898 1114 3 836 898 1114 3 836 898 1114 3 837 1330 2800 3 837 1330 2800 3 837 1330 2800 3 837 1330 2800 3 837 1330 2800 3 837 1330 2800 8 837 838 1330 1331 1522 2202 2799 2800 8 837 838 1330 1331 1522 2202 2799 2800 8 837 838 1330 1331 1522 2202 2799 2800 8 837 838 1330 1331 1522 2202 2799 2800 8 837 838 1330 1331 1522 2202 2799 2800 8 837 838 1330 1331 1522 2202 2799 2800 3 837 838 1522 3 837 838 1522 3 837 838 1522 3 837 838 1522 3 837 838 1522 3 837 838 1522 8 837 838 899 900 1115 1116 1522 1523 8 837 838 899 900 1115 1116 1522 1523 8 837 838 899 900 1115 1116 1522 1523 8 837 838 899 900 1115 1116 1522 1523 8 837 838 899 900 1115 1116 1522 1523 8 837 838 899 900 1115 1116 1522 1523 3 837 899 1115 3 837 899 1115 3 837 899 1115 3 837 899 1115 3 837 899 1115 3 837 899 1115 3 838 1331 2799 3 838 1331 2799 3 838 1331 2799 3 838 1331 2799 3 838 1331 2799 3 838 1331 2799 8 838 839 1331 1332 1528 2196 2798 2799 8 838 839 1331 1332 1528 2196 2798 2799 8 838 839 1331 1332 1528 2196 2798 2799 8 838 839 1331 1332 1528 2196 2798 2799 8 838 839 1331 1332 1528 2196 2798 2799 8 838 839 1331 1332 1528 2196 2798 2799 3 838 839 1528 3 838 839 1528 3 838 839 1528 3 838 839 1528 3 838 839 1528 3 838 839 1528 8 838 839 900 901 1116 1117 1528 1529 8 838 839 900 901 1116 1117 1528 1529 8 838 839 900 901 1116 1117 1528 1529 8 838 839 900 901 1116 1117 1528 1529 8 838 839 900 901 1116 1117 1528 1529 8 838 839 900 901 1116 1117 1528 1529 3 838 900 1116 3 838 900 1116 3 838 900 1116 3 838 900 1116 3 838 900 1116 3 838 900 1116 3 839 1332 2798 3 839 1332 2798 3 839 1332 2798 3 839 1332 2798 3 839 1332 2798 3 839 1332 2798 8 839 840 1332 1333 1538 2186 2797 2798 8 839 840 1332 1333 1538 2186 2797 2798 8 839 840 1332 1333 1538 2186 2797 2798 8 839 840 1332 1333 1538 2186 2797 2798 8 839 840 1332 1333 1538 2186 2797 2798 8 839 840 1332 1333 1538 2186 2797 2798 3 839 840 1538 3 839 840 1538 3 839 840 1538 3 839 840 1538 3 839 840 1538 3 839 840 1538 8 839 840 901 902 1117 1118 1538 1539 8 839 840 901 902 1117 1118 1538 1539 8 839 840 901 902 1117 1118 1538 1539 8 839 840 901 902 1117 1118 1538 1539 8 839 840 901 902 1117 1118 1538 1539 8 839 840 901 902 1117 1118 1538 1539 3 839 901 1117 3 839 901 1117 3 839 901 1117 3 839 901 1117 3 839 901 1117 3 839 901 1117 3 840 1333 2797 3 840 1333 2797 3 840 1333 2797 3 840 1333 2797 3 840 1333 2797 3 840 1333 2797 8 840 841 1333 1334 1546 2178 2796 2797 8 840 841 1333 1334 1546 2178 2796 2797 8 840 841 1333 1334 1546 2178 2796 2797 8 840 841 1333 1334 1546 2178 2796 2797 8 840 841 1333 1334 1546 2178 2796 2797 8 840 841 1333 1334 1546 2178 2796 2797 3 840 841 1546 3 840 841 1546 3 840 841 1546 3 840 841 1546 3 840 841 1546 3 840 841 1546 8 840 841 902 903 1118 1119 1546 1547 8 840 841 902 903 1118 1119 1546 1547 8 840 841 902 903 1118 1119 1546 1547 8 840 841 902 903 1118 1119 1546 1547 8 840 841 902 903 1118 1119 1546 1547 8 840 841 902 903 1118 1119 1546 1547 3 840 902 1118 3 840 902 1118 3 840 902 1118 3 840 902 1118 3 840 902 1118 3 840 902 1118 3 841 1334 2796 3 841 1334 2796 3 841 1334 2796 3 841 1334 2796 3 841 1334 2796 3 841 1334 2796 8 841 842 1334 1335 1552 2172 2795 2796 8 841 842 1334 1335 1552 2172 2795 2796 8 841 842 1334 1335 1552 2172 2795 2796 8 841 842 1334 1335 1552 2172 2795 2796 8 841 842 1334 1335 1552 2172 2795 2796 8 841 842 1334 1335 1552 2172 2795 2796 3 841 842 1552 3 841 842 1552 3 841 842 1552 3 841 842 1552 3 841 842 1552 3 841 842 1552 8 841 842 903 904 1119 1120 1552 1553 8 841 842 903 904 1119 1120 1552 1553 8 841 842 903 904 1119 1120 1552 1553 8 841 842 903 904 1119 1120 1552 1553 8 841 842 903 904 1119 1120 1552 1553 8 841 842 903 904 1119 1120 1552 1553 3 841 903 1119 3 841 903 1119 3 841 903 1119 3 841 903 1119 3 841 903 1119 3 841 903 1119 3 842 1335 2795 3 842 1335 2795 3 842 1335 2795 3 842 1335 2795 3 842 1335 2795 3 842 1335 2795 8 842 843 1335 1336 1560 2164 2794 2795 8 842 843 1335 1336 1560 2164 2794 2795 8 842 843 1335 1336 1560 2164 2794 2795 8 842 843 1335 1336 1560 2164 2794 2795 8 842 843 1335 1336 1560 2164 2794 2795 8 842 843 1335 1336 1560 2164 2794 2795 3 842 843 1560 3 842 843 1560 3 842 843 1560 3 842 843 1560 3 842 843 1560 3 842 843 1560 8 842 843 904 905 1120 1121 1560 1561 8 842 843 904 905 1120 1121 1560 1561 8 842 843 904 905 1120 1121 1560 1561 8 842 843 904 905 1120 1121 1560 1561 8 842 843 904 905 1120 1121 1560 1561 8 842 843 904 905 1120 1121 1560 1561 3 842 904 1120 3 842 904 1120 3 842 904 1120 3 842 904 1120 3 842 904 1120 3 842 904 1120 3 843 1336 2794 3 843 1336 2794 3 843 1336 2794 3 843 1336 2794 3 843 1336 2794 3 843 1336 2794 8 843 844 1336 1337 1568 2156 2793 2794 8 843 844 1336 1337 1568 2156 2793 2794 8 843 844 1336 1337 1568 2156 2793 2794 8 843 844 1336 1337 1568 2156 2793 2794 8 843 844 1336 1337 1568 2156 2793 2794 8 843 844 1336 1337 1568 2156 2793 2794 3 843 844 1568 3 843 844 1568 3 843 844 1568 3 843 844 1568 3 843 844 1568 3 843 844 1568 8 843 844 905 906 1121 1122 1568 1569 8 843 844 905 906 1121 1122 1568 1569 8 843 844 905 906 1121 1122 1568 1569 8 843 844 905 906 1121 1122 1568 1569 8 843 844 905 906 1121 1122 1568 1569 8 843 844 905 906 1121 1122 1568 1569 3 843 905 1121 3 843 905 1121 3 843 905 1121 3 843 905 1121 3 843 905 1121 3 843 905 1121 3 844 1337 2793 3 844 1337 2793 3 844 1337 2793 3 844 1337 2793 3 844 1337 2793 3 844 1337 2793 8 844 845 1337 1338 1574 2150 2792 2793 8 844 845 1337 1338 1574 2150 2792 2793 8 844 845 1337 1338 1574 2150 2792 2793 8 844 845 1337 1338 1574 2150 2792 2793 8 844 845 1337 1338 1574 2150 2792 2793 8 844 845 1337 1338 1574 2150 2792 2793 3 844 845 1574 3 844 845 1574 3 844 845 1574 3 844 845 1574 3 844 845 1574 3 844 845 1574 8 844 845 906 907 1122 1123 1574 1575 8 844 845 906 907 1122 1123 1574 1575 8 844 845 906 907 1122 1123 1574 1575 8 844 845 906 907 1122 1123 1574 1575 8 844 845 906 907 1122 1123 1574 1575 8 844 845 906 907 1122 1123 1574 1575 3 844 906 1122 3 844 906 1122 3 844 906 1122 3 844 906 1122 3 844 906 1122 3 844 906 1122 3 845 1338 2792 3 845 1338 2792 3 845 1338 2792 3 845 1338 2792 3 845 1338 2792 3 845 1338 2792 8 845 846 1338 1339 1584 2140 2791 2792 8 845 846 1338 1339 1584 2140 2791 2792 8 845 846 1338 1339 1584 2140 2791 2792 8 845 846 1338 1339 1584 2140 2791 2792 8 845 846 1338 1339 1584 2140 2791 2792 8 845 846 1338 1339 1584 2140 2791 2792 3 845 846 1584 3 845 846 1584 3 845 846 1584 3 845 846 1584 3 845 846 1584 3 845 846 1584 8 845 846 907 908 1123 1124 1584 1585 8 845 846 907 908 1123 1124 1584 1585 8 845 846 907 908 1123 1124 1584 1585 8 845 846 907 908 1123 1124 1584 1585 8 845 846 907 908 1123 1124 1584 1585 8 845 846 907 908 1123 1124 1584 1585 3 845 907 1123 3 845 907 1123 3 845 907 1123 3 845 907 1123 3 845 907 1123 3 845 907 1123 3 846 1339 2791 3 846 1339 2791 3 846 1339 2791 3 846 1339 2791 3 846 1339 2791 3 846 1339 2791 8 846 847 1339 1340 1592 2132 2790 2791 8 846 847 1339 1340 1592 2132 2790 2791 8 846 847 1339 1340 1592 2132 2790 2791 8 846 847 1339 1340 1592 2132 2790 2791 8 846 847 1339 1340 1592 2132 2790 2791 8 846 847 1339 1340 1592 2132 2790 2791 3 846 847 1592 3 846 847 1592 3 846 847 1592 3 846 847 1592 3 846 847 1592 3 846 847 1592 8 846 847 908 909 1124 1125 1592 1593 8 846 847 908 909 1124 1125 1592 1593 8 846 847 908 909 1124 1125 1592 1593 8 846 847 908 909 1124 1125 1592 1593 8 846 847 908 909 1124 1125 1592 1593 8 846 847 908 909 1124 1125 1592 1593 3 846 908 1124 3 846 908 1124 3 846 908 1124 3 846 908 1124 3 846 908 1124 3 846 908 1124 3 847 1340 2790 3 847 1340 2790 3 847 1340 2790 3 847 1340 2790 3 847 1340 2790 3 847 1340 2790 8 847 848 1340 1341 1598 2126 2789 2790 8 847 848 1340 1341 1598 2126 2789 2790 8 847 848 1340 1341 1598 2126 2789 2790 8 847 848 1340 1341 1598 2126 2789 2790 8 847 848 1340 1341 1598 2126 2789 2790 8 847 848 1340 1341 1598 2126 2789 2790 3 847 848 1598 3 847 848 1598 3 847 848 1598 3 847 848 1598 3 847 848 1598 3 847 848 1598 8 847 848 909 910 1125 1126 1598 1599 8 847 848 909 910 1125 1126 1598 1599 8 847 848 909 910 1125 1126 1598 1599 8 847 848 909 910 1125 1126 1598 1599 8 847 848 909 910 1125 1126 1598 1599 8 847 848 909 910 1125 1126 1598 1599 3 847 909 1125 3 847 909 1125 3 847 909 1125 3 847 909 1125 3 847 909 1125 3 847 909 1125 3 848 1341 2789 3 848 1341 2789 3 848 1341 2789 3 848 1341 2789 3 848 1341 2789 3 848 1341 2789 8 848 849 1341 1342 1606 2118 2788 2789 8 848 849 1341 1342 1606 2118 2788 2789 8 848 849 1341 1342 1606 2118 2788 2789 8 848 849 1341 1342 1606 2118 2788 2789 8 848 849 1341 1342 1606 2118 2788 2789 8 848 849 1341 1342 1606 2118 2788 2789 3 848 849 1606 3 848 849 1606 3 848 849 1606 3 848 849 1606 3 848 849 1606 3 848 849 1606 8 848 849 910 911 1126 1127 1606 1607 8 848 849 910 911 1126 1127 1606 1607 8 848 849 910 911 1126 1127 1606 1607 8 848 849 910 911 1126 1127 1606 1607 8 848 849 910 911 1126 1127 1606 1607 8 848 849 910 911 1126 1127 1606 1607 3 848 910 1126 3 848 910 1126 3 848 910 1126 3 848 910 1126 3 848 910 1126 3 848 910 1126 3 849 1342 2788 3 849 1342 2788 3 849 1342 2788 3 849 1342 2788 3 849 1342 2788 3 849 1342 2788 8 849 850 1342 1343 1614 2110 2787 2788 8 849 850 1342 1343 1614 2110 2787 2788 8 849 850 1342 1343 1614 2110 2787 2788 8 849 850 1342 1343 1614 2110 2787 2788 8 849 850 1342 1343 1614 2110 2787 2788 8 849 850 1342 1343 1614 2110 2787 2788 3 849 850 1614 3 849 850 1614 3 849 850 1614 3 849 850 1614 3 849 850 1614 3 849 850 1614 8 849 850 911 912 1127 1128 1614 1615 8 849 850 911 912 1127 1128 1614 1615 8 849 850 911 912 1127 1128 1614 1615 8 849 850 911 912 1127 1128 1614 1615 8 849 850 911 912 1127 1128 1614 1615 8 849 850 911 912 1127 1128 1614 1615 3 849 911 1127 3 849 911 1127 3 849 911 1127 3 849 911 1127 3 849 911 1127 3 849 911 1127 3 850 1343 2787 3 850 1343 2787 3 850 1343 2787 3 850 1343 2787 3 850 1343 2787 3 850 1343 2787 8 850 851 1343 1344 1620 2104 2786 2787 8 850 851 1343 1344 1620 2104 2786 2787 8 850 851 1343 1344 1620 2104 2786 2787 8 850 851 1343 1344 1620 2104 2786 2787 8 850 851 1343 1344 1620 2104 2786 2787 8 850 851 1343 1344 1620 2104 2786 2787 3 850 851 1620 3 850 851 1620 3 850 851 1620 3 850 851 1620 3 850 851 1620 3 850 851 1620 8 850 851 912 913 1128 1129 1620 1621 8 850 851 912 913 1128 1129 1620 1621 8 850 851 912 913 1128 1129 1620 1621 8 850 851 912 913 1128 1129 1620 1621 8 850 851 912 913 1128 1129 1620 1621 8 850 851 912 913 1128 1129 1620 1621 3 850 912 1128 3 850 912 1128 3 850 912 1128 3 850 912 1128 3 850 912 1128 3 850 912 1128 3 851 1344 2786 3 851 1344 2786 3 851 1344 2786 3 851 1344 2786 3 851 1344 2786 3 851 1344 2786 8 851 852 1344 1345 1630 2094 2785 2786 8 851 852 1344 1345 1630 2094 2785 2786 8 851 852 1344 1345 1630 2094 2785 2786 8 851 852 1344 1345 1630 2094 2785 2786 8 851 852 1344 1345 1630 2094 2785 2786 8 851 852 1344 1345 1630 2094 2785 2786 3 851 852 1630 3 851 852 1630 3 851 852 1630 3 851 852 1630 3 851 852 1630 3 851 852 1630 8 851 852 913 914 1129 1130 1630 1631 8 851 852 913 914 1129 1130 1630 1631 8 851 852 913 914 1129 1130 1630 1631 8 851 852 913 914 1129 1130 1630 1631 8 851 852 913 914 1129 1130 1630 1631 8 851 852 913 914 1129 1130 1630 1631 3 851 913 1129 3 851 913 1129 3 851 913 1129 3 851 913 1129 3 851 913 1129 3 851 913 1129 3 852 1345 2785 3 852 1345 2785 3 852 1345 2785 3 852 1345 2785 3 852 1345 2785 3 852 1345 2785 8 852 853 1345 1346 1638 2086 2784 2785 8 852 853 1345 1346 1638 2086 2784 2785 8 852 853 1345 1346 1638 2086 2784 2785 8 852 853 1345 1346 1638 2086 2784 2785 8 852 853 1345 1346 1638 2086 2784 2785 8 852 853 1345 1346 1638 2086 2784 2785 3 852 853 1638 3 852 853 1638 3 852 853 1638 3 852 853 1638 3 852 853 1638 3 852 853 1638 8 852 853 914 915 1130 1131 1638 1639 8 852 853 914 915 1130 1131 1638 1639 8 852 853 914 915 1130 1131 1638 1639 8 852 853 914 915 1130 1131 1638 1639 8 852 853 914 915 1130 1131 1638 1639 8 852 853 914 915 1130 1131 1638 1639 3 852 914 1130 3 852 914 1130 3 852 914 1130 3 852 914 1130 3 852 914 1130 3 852 914 1130 3 853 1346 2784 3 853 1346 2784 3 853 1346 2784 3 853 1346 2784 3 853 1346 2784 3 853 1346 2784 8 853 854 1346 1347 1644 2080 2783 2784 8 853 854 1346 1347 1644 2080 2783 2784 8 853 854 1346 1347 1644 2080 2783 2784 8 853 854 1346 1347 1644 2080 2783 2784 8 853 854 1346 1347 1644 2080 2783 2784 8 853 854 1346 1347 1644 2080 2783 2784 3 853 854 1644 3 853 854 1644 3 853 854 1644 3 853 854 1644 3 853 854 1644 3 853 854 1644 8 853 854 915 916 1131 1132 1644 1645 8 853 854 915 916 1131 1132 1644 1645 8 853 854 915 916 1131 1132 1644 1645 8 853 854 915 916 1131 1132 1644 1645 8 853 854 915 916 1131 1132 1644 1645 8 853 854 915 916 1131 1132 1644 1645 3 853 915 1131 3 853 915 1131 3 853 915 1131 3 853 915 1131 3 853 915 1131 3 853 915 1131 3 854 1347 2783 3 854 1347 2783 3 854 1347 2783 3 854 1347 2783 3 854 1347 2783 3 854 1347 2783 8 854 855 1347 1348 1652 2072 2782 2783 8 854 855 1347 1348 1652 2072 2782 2783 8 854 855 1347 1348 1652 2072 2782 2783 8 854 855 1347 1348 1652 2072 2782 2783 8 854 855 1347 1348 1652 2072 2782 2783 8 854 855 1347 1348 1652 2072 2782 2783 3 854 855 1652 3 854 855 1652 3 854 855 1652 3 854 855 1652 3 854 855 1652 3 854 855 1652 8 854 855 916 917 1132 1133 1652 1653 8 854 855 916 917 1132 1133 1652 1653 8 854 855 916 917 1132 1133 1652 1653 8 854 855 916 917 1132 1133 1652 1653 8 854 855 916 917 1132 1133 1652 1653 8 854 855 916 917 1132 1133 1652 1653 3 854 916 1132 3 854 916 1132 3 854 916 1132 3 854 916 1132 3 854 916 1132 3 854 916 1132 3 855 1348 2782 3 855 1348 2782 3 855 1348 2782 3 855 1348 2782 3 855 1348 2782 3 855 1348 2782 8 855 856 1348 1349 1660 2064 2781 2782 8 855 856 1348 1349 1660 2064 2781 2782 8 855 856 1348 1349 1660 2064 2781 2782 8 855 856 1348 1349 1660 2064 2781 2782 8 855 856 1348 1349 1660 2064 2781 2782 8 855 856 1348 1349 1660 2064 2781 2782 3 855 856 1660 3 855 856 1660 3 855 856 1660 3 855 856 1660 3 855 856 1660 3 855 856 1660 8 855 856 917 918 1133 1134 1660 1661 8 855 856 917 918 1133 1134 1660 1661 8 855 856 917 918 1133 1134 1660 1661 8 855 856 917 918 1133 1134 1660 1661 8 855 856 917 918 1133 1134 1660 1661 8 855 856 917 918 1133 1134 1660 1661 3 855 917 1133 3 855 917 1133 3 855 917 1133 3 855 917 1133 3 855 917 1133 3 855 917 1133 3 856 1349 2781 3 856 1349 2781 3 856 1349 2781 3 856 1349 2781 3 856 1349 2781 3 856 1349 2781 8 856 857 1349 1350 1666 2058 2780 2781 8 856 857 1349 1350 1666 2058 2780 2781 8 856 857 1349 1350 1666 2058 2780 2781 8 856 857 1349 1350 1666 2058 2780 2781 8 856 857 1349 1350 1666 2058 2780 2781 8 856 857 1349 1350 1666 2058 2780 2781 3 856 857 1666 3 856 857 1666 3 856 857 1666 3 856 857 1666 3 856 857 1666 3 856 857 1666 8 856 857 918 919 1134 1135 1666 1667 8 856 857 918 919 1134 1135 1666 1667 8 856 857 918 919 1134 1135 1666 1667 8 856 857 918 919 1134 1135 1666 1667 8 856 857 918 919 1134 1135 1666 1667 8 856 857 918 919 1134 1135 1666 1667 3 856 918 1134 3 856 918 1134 3 856 918 1134 3 856 918 1134 3 856 918 1134 3 856 918 1134 3 857 1350 2780 3 857 1350 2780 3 857 1350 2780 3 857 1350 2780 3 857 1350 2780 3 857 1350 2780 8 857 858 1350 1351 1676 2048 2779 2780 8 857 858 1350 1351 1676 2048 2779 2780 8 857 858 1350 1351 1676 2048 2779 2780 8 857 858 1350 1351 1676 2048 2779 2780 8 857 858 1350 1351 1676 2048 2779 2780 8 857 858 1350 1351 1676 2048 2779 2780 3 857 858 1676 3 857 858 1676 3 857 858 1676 3 857 858 1676 3 857 858 1676 3 857 858 1676 8 857 858 919 920 1135 1136 1676 1677 8 857 858 919 920 1135 1136 1676 1677 8 857 858 919 920 1135 1136 1676 1677 8 857 858 919 920 1135 1136 1676 1677 8 857 858 919 920 1135 1136 1676 1677 8 857 858 919 920 1135 1136 1676 1677 3 857 919 1135 3 857 919 1135 3 857 919 1135 3 857 919 1135 3 857 919 1135 3 857 919 1135 3 858 1351 2779 3 858 1351 2779 3 858 1351 2779 3 858 1351 2779 3 858 1351 2779 3 858 1351 2779 8 858 859 1351 1352 1684 2040 2778 2779 8 858 859 1351 1352 1684 2040 2778 2779 8 858 859 1351 1352 1684 2040 2778 2779 8 858 859 1351 1352 1684 2040 2778 2779 8 858 859 1351 1352 1684 2040 2778 2779 8 858 859 1351 1352 1684 2040 2778 2779 3 858 859 1684 3 858 859 1684 3 858 859 1684 3 858 859 1684 3 858 859 1684 3 858 859 1684 8 858 859 920 921 1136 1137 1684 1685 8 858 859 920 921 1136 1137 1684 1685 8 858 859 920 921 1136 1137 1684 1685 8 858 859 920 921 1136 1137 1684 1685 8 858 859 920 921 1136 1137 1684 1685 8 858 859 920 921 1136 1137 1684 1685 3 858 920 1136 3 858 920 1136 3 858 920 1136 3 858 920 1136 3 858 920 1136 3 858 920 1136 3 859 1352 2778 3 859 1352 2778 3 859 1352 2778 3 859 1352 2778 3 859 1352 2778 3 859 1352 2778 8 859 860 1352 1353 1690 2034 2777 2778 8 859 860 1352 1353 1690 2034 2777 2778 8 859 860 1352 1353 1690 2034 2777 2778 8 859 860 1352 1353 1690 2034 2777 2778 8 859 860 1352 1353 1690 2034 2777 2778 8 859 860 1352 1353 1690 2034 2777 2778 3 859 860 1690 3 859 860 1690 3 859 860 1690 3 859 860 1690 3 859 860 1690 3 859 860 1690 8 859 860 921 922 1137 1138 1690 1691 8 859 860 921 922 1137 1138 1690 1691 8 859 860 921 922 1137 1138 1690 1691 8 859 860 921 922 1137 1138 1690 1691 8 859 860 921 922 1137 1138 1690 1691 8 859 860 921 922 1137 1138 1690 1691 3 859 921 1137 3 859 921 1137 3 859 921 1137 3 859 921 1137 3 859 921 1137 3 859 921 1137 3 860 1353 2777 3 860 1353 2777 3 860 1353 2777 3 860 1353 2777 3 860 1353 2777 3 860 1353 2777 8 860 861 1353 1354 1700 2024 2776 2777 8 860 861 1353 1354 1700 2024 2776 2777 8 860 861 1353 1354 1700 2024 2776 2777 8 860 861 1353 1354 1700 2024 2776 2777 8 860 861 1353 1354 1700 2024 2776 2777 8 860 861 1353 1354 1700 2024 2776 2777 3 860 861 1700 3 860 861 1700 3 860 861 1700 3 860 861 1700 3 860 861 1700 3 860 861 1700 8 860 861 922 923 1138 1139 1700 1701 8 860 861 922 923 1138 1139 1700 1701 8 860 861 922 923 1138 1139 1700 1701 8 860 861 922 923 1138 1139 1700 1701 8 860 861 922 923 1138 1139 1700 1701 8 860 861 922 923 1138 1139 1700 1701 3 860 922 1138 3 860 922 1138 3 860 922 1138 3 860 922 1138 3 860 922 1138 3 860 922 1138 3 861 1354 2776 3 861 1354 2776 3 861 1354 2776 3 861 1354 2776 3 861 1354 2776 3 861 1354 2776 8 861 862 1354 1355 1710 2014 2775 2776 8 861 862 1354 1355 1710 2014 2775 2776 8 861 862 1354 1355 1710 2014 2775 2776 8 861 862 1354 1355 1710 2014 2775 2776 8 861 862 1354 1355 1710 2014 2775 2776 8 861 862 1354 1355 1710 2014 2775 2776 3 861 862 1710 3 861 862 1710 3 861 862 1710 3 861 862 1710 3 861 862 1710 3 861 862 1710 8 861 862 923 924 1139 1140 1710 1711 8 861 862 923 924 1139 1140 1710 1711 8 861 862 923 924 1139 1140 1710 1711 8 861 862 923 924 1139 1140 1710 1711 8 861 862 923 924 1139 1140 1710 1711 8 861 862 923 924 1139 1140 1710 1711 3 861 923 1139 3 861 923 1139 3 861 923 1139 3 861 923 1139 3 861 923 1139 3 861 923 1139 3 862 1355 2775 3 862 1355 2775 3 862 1355 2775 3 862 1355 2775 3 862 1355 2775 3 862 1355 2775 3 862 924 1140 3 862 924 1140 3 862 924 1140 3 862 924 1140 3 862 924 1140 3 862 924 1140 4 863 1759 1965 2774 4 863 1759 1965 2774 4 863 1759 1965 2774 4 863 1759 1965 2774 4 863 1759 1965 2774 4 863 1759 1965 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 2 863 2774 1 863 1 863 1 863 1 863 1 863 1 863 2 863 1759 2 863 1759 2 863 1759 2 863 1759 2 863 1759 2 863 1759 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 2 864 2773 4 864 1760 1964 2773 4 864 1760 1964 2773 4 864 1760 1964 2773 4 864 1760 1964 2773 4 864 1760 1964 2773 4 864 1760 1964 2773 2 864 1760 2 864 1760 2 864 1760 2 864 1760 2 864 1760 2 864 1760 1 864 1 864 1 864 1 864 1 864 1 864 4 865 1761 1963 2772 4 865 1761 1963 2772 4 865 1761 1963 2772 4 865 1761 1963 2772 4 865 1761 1963 2772 4 865 1761 1963 2772 2 865 2772 2 865 2772 2 865 2772 2 865 2772 2 865 2772 2 865 2772 4 865 1762 1962 2772 4 865 1762 1962 2772 4 865 1762 1962 2772 4 865 1762 1962 2772 4 865 1762 1962 2772 4 865 1762 1962 2772 2 865 1762 2 865 1762 2 865 1762 2 865 1762 2 865 1762 2 865 1762 2 865 1761 2 865 1761 2 865 1761 2 865 1761 2 865 1761 2 865 1761 4 866 1763 1961 2771 4 866 1763 1961 2771 4 866 1763 1961 2771 4 866 1763 1961 2771 4 866 1763 1961 2771 4 866 1763 1961 2771 2 866 2771 2 866 2771 2 866 2771 2 866 2771 2 866 2771 2 866 2771 4 866 1764 1960 2771 4 866 1764 1960 2771 4 866 1764 1960 2771 4 866 1764 1960 2771 4 866 1764 1960 2771 4 866 1764 1960 2771 2 866 1764 2 866 1764 2 866 1764 2 866 1764 2 866 1764 2 866 1764 2 866 1763 2 866 1763 2 866 1763 2 866 1763 2 866 1763 2 866 1763 4 867 1765 1959 2770 4 867 1765 1959 2770 4 867 1765 1959 2770 4 867 1765 1959 2770 4 867 1765 1959 2770 4 867 1765 1959 2770 2 867 2770 2 867 2770 2 867 2770 2 867 2770 2 867 2770 2 867 2770 4 867 1766 1958 2770 4 867 1766 1958 2770 4 867 1766 1958 2770 4 867 1766 1958 2770 4 867 1766 1958 2770 4 867 1766 1958 2770 2 867 1766 2 867 1766 2 867 1766 2 867 1766 2 867 1766 2 867 1766 2 867 1765 2 867 1765 2 867 1765 2 867 1765 2 867 1765 2 867 1765 4 868 1767 1957 2769 4 868 1767 1957 2769 4 868 1767 1957 2769 4 868 1767 1957 2769 4 868 1767 1957 2769 4 868 1767 1957 2769 2 868 2769 2 868 2769 2 868 2769 2 868 2769 2 868 2769 2 868 2769 4 868 1768 1956 2769 4 868 1768 1956 2769 4 868 1768 1956 2769 4 868 1768 1956 2769 4 868 1768 1956 2769 4 868 1768 1956 2769 2 868 1768 2 868 1768 2 868 1768 2 868 1768 2 868 1768 2 868 1768 2 868 1767 2 868 1767 2 868 1767 2 868 1767 2 868 1767 2 868 1767 4 869 1769 1955 2768 4 869 1769 1955 2768 4 869 1769 1955 2768 4 869 1769 1955 2768 4 869 1769 1955 2768 4 869 1769 1955 2768 2 869 2768 2 869 2768 2 869 2768 2 869 2768 2 869 2768 2 869 2768 4 869 1770 1954 2768 4 869 1770 1954 2768 4 869 1770 1954 2768 4 869 1770 1954 2768 4 869 1770 1954 2768 4 869 1770 1954 2768 2 869 1770 2 869 1770 2 869 1770 2 869 1770 2 869 1770 2 869 1770 2 869 1769 2 869 1769 2 869 1769 2 869 1769 2 869 1769 2 869 1769 4 870 1771 1953 2767 4 870 1771 1953 2767 4 870 1771 1953 2767 4 870 1771 1953 2767 4 870 1771 1953 2767 4 870 1771 1953 2767 2 870 2767 2 870 2767 2 870 2767 2 870 2767 2 870 2767 2 870 2767 4 870 1772 1952 2767 4 870 1772 1952 2767 4 870 1772 1952 2767 4 870 1772 1952 2767 4 870 1772 1952 2767 4 870 1772 1952 2767 2 870 1772 2 870 1772 2 870 1772 2 870 1772 2 870 1772 2 870 1772 2 870 1771 2 870 1771 2 870 1771 2 870 1771 2 870 1771 2 870 1771 4 871 1773 1951 2766 4 871 1773 1951 2766 4 871 1773 1951 2766 4 871 1773 1951 2766 4 871 1773 1951 2766 4 871 1773 1951 2766 2 871 2766 2 871 2766 2 871 2766 2 871 2766 2 871 2766 2 871 2766 4 871 1774 1950 2766 4 871 1774 1950 2766 4 871 1774 1950 2766 4 871 1774 1950 2766 4 871 1774 1950 2766 4 871 1774 1950 2766 2 871 1774 2 871 1774 2 871 1774 2 871 1774 2 871 1774 2 871 1774 2 871 1773 2 871 1773 2 871 1773 2 871 1773 2 871 1773 2 871 1773 4 872 1775 1949 2765 4 872 1775 1949 2765 4 872 1775 1949 2765 4 872 1775 1949 2765 4 872 1775 1949 2765 4 872 1775 1949 2765 2 872 2765 2 872 2765 2 872 2765 2 872 2765 2 872 2765 2 872 2765 4 872 1776 1948 2765 4 872 1776 1948 2765 4 872 1776 1948 2765 4 872 1776 1948 2765 4 872 1776 1948 2765 4 872 1776 1948 2765 2 872 1776 2 872 1776 2 872 1776 2 872 1776 2 872 1776 2 872 1776 2 872 1775 2 872 1775 2 872 1775 2 872 1775 2 872 1775 2 872 1775 4 873 1777 1947 2764 4 873 1777 1947 2764 4 873 1777 1947 2764 4 873 1777 1947 2764 4 873 1777 1947 2764 4 873 1777 1947 2764 2 873 2764 2 873 2764 2 873 2764 2 873 2764 2 873 2764 2 873 2764 4 873 1778 1946 2764 4 873 1778 1946 2764 4 873 1778 1946 2764 4 873 1778 1946 2764 4 873 1778 1946 2764 4 873 1778 1946 2764 2 873 1778 2 873 1778 2 873 1778 2 873 1778 2 873 1778 2 873 1778 2 873 1777 2 873 1777 2 873 1777 2 873 1777 2 873 1777 2 873 1777 4 874 1779 1945 2763 4 874 1779 1945 2763 4 874 1779 1945 2763 4 874 1779 1945 2763 4 874 1779 1945 2763 4 874 1779 1945 2763 2 874 2763 2 874 2763 2 874 2763 2 874 2763 2 874 2763 2 874 2763 4 874 1780 1944 2763 4 874 1780 1944 2763 4 874 1780 1944 2763 4 874 1780 1944 2763 4 874 1780 1944 2763 4 874 1780 1944 2763 2 874 1780 2 874 1780 2 874 1780 2 874 1780 2 874 1780 2 874 1780 2 874 1779 2 874 1779 2 874 1779 2 874 1779 2 874 1779 2 874 1779 4 875 1781 1943 2762 4 875 1781 1943 2762 4 875 1781 1943 2762 4 875 1781 1943 2762 4 875 1781 1943 2762 4 875 1781 1943 2762 2 875 2762 2 875 2762 2 875 2762 2 875 2762 2 875 2762 2 875 2762 4 875 1782 1942 2762 4 875 1782 1942 2762 4 875 1782 1942 2762 4 875 1782 1942 2762 4 875 1782 1942 2762 4 875 1782 1942 2762 2 875 1782 2 875 1782 2 875 1782 2 875 1782 2 875 1782 2 875 1782 2 875 1781 2 875 1781 2 875 1781 2 875 1781 2 875 1781 2 875 1781 4 876 877 1098 1141 4 876 877 1098 1141 4 876 877 1098 1141 4 876 877 1098 1141 4 876 877 1098 1141 4 876 877 1098 1141 3 876 1313 2761 3 876 1313 2761 3 876 1313 2761 3 876 1313 2761 3 876 1313 2761 3 876 1313 2761 3 877 882 925 3 877 882 925 3 877 882 925 3 877 882 925 3 877 882 925 3 877 882 925 3 878 925 968 3 878 925 968 3 878 925 968 3 878 925 968 3 878 925 968 3 878 925 968 3 878 1141 1184 3 878 1141 1184 3 878 1141 1184 3 878 1141 1184 3 878 1141 1184 3 878 1141 1184 4 879 880 1140 1183 4 879 880 1140 1183 4 879 880 1140 1183 4 879 880 1140 1183 4 879 880 1140 1183 4 879 880 1140 1183 3 879 1355 2758 3 879 1355 2758 3 879 1355 2758 3 879 1355 2758 3 879 1355 2758 3 879 1355 2758 3 880 924 967 3 880 924 967 3 880 924 967 3 880 924 967 3 880 924 967 3 880 924 967 3 881 967 1010 3 881 967 1010 3 881 967 1010 3 881 967 1010 3 881 967 1010 3 881 967 1010 3 881 1183 1226 3 881 1183 1226 3 881 1183 1226 3 881 1183 1226 3 881 1183 1226 3 881 1183 1226 3 882 883 1401 3 882 883 1401 3 882 883 1401 3 882 883 1401 3 882 883 1401 3 882 883 1401 3 883 884 1409 3 883 884 1409 3 883 884 1409 3 883 884 1409 3 883 884 1409 3 883 884 1409 3 884 885 1415 3 884 885 1415 3 884 885 1415 3 884 885 1415 3 884 885 1415 3 884 885 1415 3 885 886 1421 3 885 886 1421 3 885 886 1421 3 885 886 1421 3 885 886 1421 3 885 886 1421 3 886 887 1427 3 886 887 1427 3 886 887 1427 3 886 887 1427 3 886 887 1427 3 886 887 1427 3 887 888 1433 3 887 888 1433 3 887 888 1433 3 887 888 1433 3 887 888 1433 3 887 888 1433 3 888 889 1439 3 888 889 1439 3 888 889 1439 3 888 889 1439 3 888 889 1439 3 888 889 1439 3 889 890 1445 3 889 890 1445 3 889 890 1445 3 889 890 1445 3 889 890 1445 3 889 890 1445 3 890 891 1453 3 890 891 1453 3 890 891 1453 3 890 891 1453 3 890 891 1453 3 890 891 1453 3 891 892 1459 3 891 892 1459 3 891 892 1459 3 891 892 1459 3 891 892 1459 3 891 892 1459 3 892 893 1467 3 892 893 1467 3 892 893 1467 3 892 893 1467 3 892 893 1467 3 892 893 1467 3 893 894 1475 3 893 894 1475 3 893 894 1475 3 893 894 1475 3 893 894 1475 3 893 894 1475 3 894 895 1481 3 894 895 1481 3 894 895 1481 3 894 895 1481 3 894 895 1481 3 894 895 1481 3 895 896 1491 3 895 896 1491 3 895 896 1491 3 895 896 1491 3 895 896 1491 3 895 896 1491 3 896 897 1501 3 896 897 1501 3 896 897 1501 3 896 897 1501 3 896 897 1501 3 896 897 1501 3 897 898 1507 3 897 898 1507 3 897 898 1507 3 897 898 1507 3 897 898 1507 3 897 898 1507 3 898 899 1515 3 898 899 1515 3 898 899 1515 3 898 899 1515 3 898 899 1515 3 898 899 1515 3 899 900 1523 3 899 900 1523 3 899 900 1523 3 899 900 1523 3 899 900 1523 3 899 900 1523 3 900 901 1529 3 900 901 1529 3 900 901 1529 3 900 901 1529 3 900 901 1529 3 900 901 1529 3 901 902 1539 3 901 902 1539 3 901 902 1539 3 901 902 1539 3 901 902 1539 3 901 902 1539 3 902 903 1547 3 902 903 1547 3 902 903 1547 3 902 903 1547 3 902 903 1547 3 902 903 1547 3 903 904 1553 3 903 904 1553 3 903 904 1553 3 903 904 1553 3 903 904 1553 3 903 904 1553 3 904 905 1561 3 904 905 1561 3 904 905 1561 3 904 905 1561 3 904 905 1561 3 904 905 1561 3 905 906 1569 3 905 906 1569 3 905 906 1569 3 905 906 1569 3 905 906 1569 3 905 906 1569 3 906 907 1575 3 906 907 1575 3 906 907 1575 3 906 907 1575 3 906 907 1575 3 906 907 1575 3 907 908 1585 3 907 908 1585 3 907 908 1585 3 907 908 1585 3 907 908 1585 3 907 908 1585 3 908 909 1593 3 908 909 1593 3 908 909 1593 3 908 909 1593 3 908 909 1593 3 908 909 1593 3 909 910 1599 3 909 910 1599 3 909 910 1599 3 909 910 1599 3 909 910 1599 3 909 910 1599 3 910 911 1607 3 910 911 1607 3 910 911 1607 3 910 911 1607 3 910 911 1607 3 910 911 1607 3 911 912 1615 3 911 912 1615 3 911 912 1615 3 911 912 1615 3 911 912 1615 3 911 912 1615 3 912 913 1621 3 912 913 1621 3 912 913 1621 3 912 913 1621 3 912 913 1621 3 912 913 1621 3 913 914 1631 3 913 914 1631 3 913 914 1631 3 913 914 1631 3 913 914 1631 3 913 914 1631 3 914 915 1639 3 914 915 1639 3 914 915 1639 3 914 915 1639 3 914 915 1639 3 914 915 1639 3 915 916 1645 3 915 916 1645 3 915 916 1645 3 915 916 1645 3 915 916 1645 3 915 916 1645 3 916 917 1653 3 916 917 1653 3 916 917 1653 3 916 917 1653 3 916 917 1653 3 916 917 1653 3 917 918 1661 3 917 918 1661 3 917 918 1661 3 917 918 1661 3 917 918 1661 3 917 918 1661 3 918 919 1667 3 918 919 1667 3 918 919 1667 3 918 919 1667 3 918 919 1667 3 918 919 1667 3 919 920 1677 3 919 920 1677 3 919 920 1677 3 919 920 1677 3 919 920 1677 3 919 920 1677 3 920 921 1685 3 920 921 1685 3 920 921 1685 3 920 921 1685 3 920 921 1685 3 920 921 1685 3 921 922 1691 3 921 922 1691 3 921 922 1691 3 921 922 1691 3 921 922 1691 3 921 922 1691 3 922 923 1701 3 922 923 1701 3 922 923 1701 3 922 923 1701 3 922 923 1701 3 922 923 1701 3 923 924 1711 3 923 924 1711 3 923 924 1711 3 923 924 1711 3 923 924 1711 3 923 924 1711 3 925 926 1403 3 925 926 1403 3 925 926 1403 3 925 926 1403 3 925 926 1403 3 925 926 1403 3 926 927 1410 3 926 927 1410 3 926 927 1410 3 926 927 1410 3 926 927 1410 3 926 927 1410 3 927 928 1416 3 927 928 1416 3 927 928 1416 3 927 928 1416 3 927 928 1416 3 927 928 1416 3 928 929 1422 3 928 929 1422 3 928 929 1422 3 928 929 1422 3 928 929 1422 3 928 929 1422 3 929 930 1428 3 929 930 1428 3 929 930 1428 3 929 930 1428 3 929 930 1428 3 929 930 1428 3 930 931 1434 3 930 931 1434 3 930 931 1434 3 930 931 1434 3 930 931 1434 3 930 931 1434 3 931 932 1440 3 931 932 1440 3 931 932 1440 3 931 932 1440 3 931 932 1440 3 931 932 1440 3 932 933 1447 3 932 933 1447 3 932 933 1447 3 932 933 1447 3 932 933 1447 3 932 933 1447 3 933 934 1454 3 933 934 1454 3 933 934 1454 3 933 934 1454 3 933 934 1454 3 933 934 1454 3 934 935 1461 3 934 935 1461 3 934 935 1461 3 934 935 1461 3 934 935 1461 3 934 935 1461 3 935 936 1469 3 935 936 1469 3 935 936 1469 3 935 936 1469 3 935 936 1469 3 935 936 1469 3 936 937 1476 3 936 937 1476 3 936 937 1476 3 936 937 1476 3 936 937 1476 3 936 937 1476 3 937 938 1483 3 937 938 1483 3 937 938 1483 3 937 938 1483 3 937 938 1483 3 937 938 1483 3 938 939 1493 3 938 939 1493 3 938 939 1493 3 938 939 1493 3 938 939 1493 3 938 939 1493 3 939 940 1502 3 939 940 1502 3 939 940 1502 3 939 940 1502 3 939 940 1502 3 939 940 1502 3 940 941 1509 3 940 941 1509 3 940 941 1509 3 940 941 1509 3 940 941 1509 3 940 941 1509 3 941 942 1517 3 941 942 1517 3 941 942 1517 3 941 942 1517 3 941 942 1517 3 941 942 1517 3 942 943 1524 3 942 943 1524 3 942 943 1524 3 942 943 1524 3 942 943 1524 3 942 943 1524 3 943 944 1531 3 943 944 1531 3 943 944 1531 3 943 944 1531 3 943 944 1531 3 943 944 1531 3 944 945 1541 3 944 945 1541 3 944 945 1541 3 944 945 1541 3 944 945 1541 3 944 945 1541 3 945 946 1548 3 945 946 1548 3 945 946 1548 3 945 946 1548 3 945 946 1548 3 945 946 1548 3 946 947 1555 3 946 947 1555 3 946 947 1555 3 946 947 1555 3 946 947 1555 3 946 947 1555 3 947 948 1563 3 947 948 1563 3 947 948 1563 3 947 948 1563 3 947 948 1563 3 947 948 1563 3 948 949 1570 3 948 949 1570 3 948 949 1570 3 948 949 1570 3 948 949 1570 3 948 949 1570 3 949 950 1577 3 949 950 1577 3 949 950 1577 3 949 950 1577 3 949 950 1577 3 949 950 1577 3 950 951 1587 3 950 951 1587 3 950 951 1587 3 950 951 1587 3 950 951 1587 3 950 951 1587 3 951 952 1594 3 951 952 1594 3 951 952 1594 3 951 952 1594 3 951 952 1594 3 951 952 1594 3 952 953 1601 3 952 953 1601 3 952 953 1601 3 952 953 1601 3 952 953 1601 3 952 953 1601 3 953 954 1609 3 953 954 1609 3 953 954 1609 3 953 954 1609 3 953 954 1609 3 953 954 1609 3 954 955 1616 3 954 955 1616 3 954 955 1616 3 954 955 1616 3 954 955 1616 3 954 955 1616 3 955 956 1623 3 955 956 1623 3 955 956 1623 3 955 956 1623 3 955 956 1623 3 955 956 1623 3 956 957 1633 3 956 957 1633 3 956 957 1633 3 956 957 1633 3 956 957 1633 3 956 957 1633 3 957 958 1640 3 957 958 1640 3 957 958 1640 3 957 958 1640 3 957 958 1640 3 957 958 1640 3 958 959 1647 3 958 959 1647 3 958 959 1647 3 958 959 1647 3 958 959 1647 3 958 959 1647 3 959 960 1655 3 959 960 1655 3 959 960 1655 3 959 960 1655 3 959 960 1655 3 959 960 1655 3 960 961 1662 3 960 961 1662 3 960 961 1662 3 960 961 1662 3 960 961 1662 3 960 961 1662 3 961 962 1669 3 961 962 1669 3 961 962 1669 3 961 962 1669 3 961 962 1669 3 961 962 1669 3 962 963 1679 3 962 963 1679 3 962 963 1679 3 962 963 1679 3 962 963 1679 3 962 963 1679 3 963 964 1686 3 963 964 1686 3 963 964 1686 3 963 964 1686 3 963 964 1686 3 963 964 1686 3 964 965 1693 3 964 965 1693 3 964 965 1693 3 964 965 1693 3 964 965 1693 3 964 965 1693 3 965 966 1703 3 965 966 1703 3 965 966 1703 3 965 966 1703 3 965 966 1703 3 965 966 1703 3 966 967 1712 3 966 967 1712 3 966 967 1712 3 966 967 1712 3 966 967 1712 3 966 967 1712 3 968 969 1404 3 968 969 1404 3 968 969 1404 3 968 969 1404 3 968 969 1404 3 968 969 1404 3 969 970 1411 3 969 970 1411 3 969 970 1411 3 969 970 1411 3 969 970 1411 3 969 970 1411 3 970 971 1417 3 970 971 1417 3 970 971 1417 3 970 971 1417 3 970 971 1417 3 970 971 1417 3 971 972 1423 3 971 972 1423 3 971 972 1423 3 971 972 1423 3 971 972 1423 3 971 972 1423 3 972 973 1429 3 972 973 1429 3 972 973 1429 3 972 973 1429 3 972 973 1429 3 972 973 1429 3 973 974 1435 3 973 974 1435 3 973 974 1435 3 973 974 1435 3 973 974 1435 3 973 974 1435 3 974 975 1441 3 974 975 1441 3 974 975 1441 3 974 975 1441 3 974 975 1441 3 974 975 1441 3 975 976 1448 3 975 976 1448 3 975 976 1448 3 975 976 1448 3 975 976 1448 3 975 976 1448 3 976 977 1455 3 976 977 1455 3 976 977 1455 3 976 977 1455 3 976 977 1455 3 976 977 1455 3 977 978 1462 3 977 978 1462 3 977 978 1462 3 977 978 1462 3 977 978 1462 3 977 978 1462 3 978 979 1470 3 978 979 1470 3 978 979 1470 3 978 979 1470 3 978 979 1470 3 978 979 1470 3 979 980 1477 3 979 980 1477 3 979 980 1477 3 979 980 1477 3 979 980 1477 3 979 980 1477 3 980 981 1485 3 980 981 1485 3 980 981 1485 3 980 981 1485 3 980 981 1485 3 980 981 1485 3 981 982 1495 3 981 982 1495 3 981 982 1495 3 981 982 1495 3 981 982 1495 3 981 982 1495 3 982 983 1503 3 982 983 1503 3 982 983 1503 3 982 983 1503 3 982 983 1503 3 982 983 1503 3 983 984 1510 3 983 984 1510 3 983 984 1510 3 983 984 1510 3 983 984 1510 3 983 984 1510 3 984 985 1518 3 984 985 1518 3 984 985 1518 3 984 985 1518 3 984 985 1518 3 984 985 1518 3 985 986 1525 3 985 986 1525 3 985 986 1525 3 985 986 1525 3 985 986 1525 3 985 986 1525 3 986 987 1533 3 986 987 1533 3 986 987 1533 3 986 987 1533 3 986 987 1533 3 986 987 1533 3 987 988 1542 3 987 988 1542 3 987 988 1542 3 987 988 1542 3 987 988 1542 3 987 988 1542 3 988 989 1549 3 988 989 1549 3 988 989 1549 3 988 989 1549 3 988 989 1549 3 988 989 1549 3 989 990 1556 3 989 990 1556 3 989 990 1556 3 989 990 1556 3 989 990 1556 3 989 990 1556 3 990 991 1564 3 990 991 1564 3 990 991 1564 3 990 991 1564 3 990 991 1564 3 990 991 1564 3 991 992 1571 3 991 992 1571 3 991 992 1571 3 991 992 1571 3 991 992 1571 3 991 992 1571 3 992 993 1579 3 992 993 1579 3 992 993 1579 3 992 993 1579 3 992 993 1579 3 992 993 1579 3 993 994 1588 3 993 994 1588 3 993 994 1588 3 993 994 1588 3 993 994 1588 3 993 994 1588 3 994 995 1595 3 994 995 1595 3 994 995 1595 3 994 995 1595 3 994 995 1595 3 994 995 1595 3 995 996 1602 3 995 996 1602 3 995 996 1602 3 995 996 1602 3 995 996 1602 3 995 996 1602 3 996 997 1610 3 996 997 1610 3 996 997 1610 3 996 997 1610 3 996 997 1610 3 996 997 1610 3 997 998 1617 3 997 998 1617 3 997 998 1617 3 997 998 1617 3 997 998 1617 3 997 998 1617 3 998 999 1625 3 998 999 1625 3 998 999 1625 3 998 999 1625 3 998 999 1625 3 998 999 1625 3 999 1000 1634 3 999 1000 1634 3 999 1000 1634 3 999 1000 1634 3 999 1000 1634 3 999 1000 1634 3 1000 1001 1641 3 1000 1001 1641 3 1000 1001 1641 3 1000 1001 1641 3 1000 1001 1641 3 1000 1001 1641 3 1001 1002 1648 3 1001 1002 1648 3 1001 1002 1648 3 1001 1002 1648 3 1001 1002 1648 3 1001 1002 1648 3 1002 1003 1656 3 1002 1003 1656 3 1002 1003 1656 3 1002 1003 1656 3 1002 1003 1656 3 1002 1003 1656 3 1003 1004 1663 3 1003 1004 1663 3 1003 1004 1663 3 1003 1004 1663 3 1003 1004 1663 3 1003 1004 1663 3 1004 1005 1671 3 1004 1005 1671 3 1004 1005 1671 3 1004 1005 1671 3 1004 1005 1671 3 1004 1005 1671 3 1005 1006 1680 3 1005 1006 1680 3 1005 1006 1680 3 1005 1006 1680 3 1005 1006 1680 3 1005 1006 1680 3 1006 1007 1687 3 1006 1007 1687 3 1006 1007 1687 3 1006 1007 1687 3 1006 1007 1687 3 1006 1007 1687 3 1007 1008 1695 3 1007 1008 1695 3 1007 1008 1695 3 1007 1008 1695 3 1007 1008 1695 3 1007 1008 1695 3 1008 1009 1705 3 1008 1009 1705 3 1008 1009 1705 3 1008 1009 1705 3 1008 1009 1705 3 1008 1009 1705 3 1009 1010 1713 3 1009 1010 1713 3 1009 1010 1713 3 1009 1010 1713 3 1009 1010 1713 3 1009 1010 1713 3 1011 1012 1405 3 1011 1012 1405 3 1011 1012 1405 3 1011 1012 1405 3 1011 1012 1405 3 1011 1012 1405 3 1012 1013 1412 3 1012 1013 1412 3 1012 1013 1412 3 1012 1013 1412 3 1012 1013 1412 3 1012 1013 1412 3 1013 1014 1418 3 1013 1014 1418 3 1013 1014 1418 3 1013 1014 1418 3 1013 1014 1418 3 1013 1014 1418 3 1014 1015 1424 3 1014 1015 1424 3 1014 1015 1424 3 1014 1015 1424 3 1014 1015 1424 3 1014 1015 1424 3 1015 1016 1430 3 1015 1016 1430 3 1015 1016 1430 3 1015 1016 1430 3 1015 1016 1430 3 1015 1016 1430 3 1016 1017 1436 3 1016 1017 1436 3 1016 1017 1436 3 1016 1017 1436 3 1016 1017 1436 3 1016 1017 1436 3 1017 1018 1442 3 1017 1018 1442 3 1017 1018 1442 3 1017 1018 1442 3 1017 1018 1442 3 1017 1018 1442 3 1018 1019 1449 3 1018 1019 1449 3 1018 1019 1449 3 1018 1019 1449 3 1018 1019 1449 3 1018 1019 1449 3 1019 1020 1456 3 1019 1020 1456 3 1019 1020 1456 3 1019 1020 1456 3 1019 1020 1456 3 1019 1020 1456 3 1020 1021 1463 3 1020 1021 1463 3 1020 1021 1463 3 1020 1021 1463 3 1020 1021 1463 3 1020 1021 1463 3 1021 1022 1471 3 1021 1022 1471 3 1021 1022 1471 3 1021 1022 1471 3 1021 1022 1471 3 1021 1022 1471 3 1022 1023 1478 3 1022 1023 1478 3 1022 1023 1478 3 1022 1023 1478 3 1022 1023 1478 3 1022 1023 1478 3 1023 1024 1487 3 1023 1024 1487 3 1023 1024 1487 3 1023 1024 1487 3 1023 1024 1487 3 1023 1024 1487 3 1024 1025 1497 3 1024 1025 1497 3 1024 1025 1497 3 1024 1025 1497 3 1024 1025 1497 3 1024 1025 1497 3 1025 1026 1504 3 1025 1026 1504 3 1025 1026 1504 3 1025 1026 1504 3 1025 1026 1504 3 1025 1026 1504 3 1026 1027 1511 3 1026 1027 1511 3 1026 1027 1511 3 1026 1027 1511 3 1026 1027 1511 3 1026 1027 1511 3 1027 1028 1519 3 1027 1028 1519 3 1027 1028 1519 3 1027 1028 1519 3 1027 1028 1519 3 1027 1028 1519 3 1028 1029 1526 3 1028 1029 1526 3 1028 1029 1526 3 1028 1029 1526 3 1028 1029 1526 3 1028 1029 1526 3 1029 1030 1535 3 1029 1030 1535 3 1029 1030 1535 3 1029 1030 1535 3 1029 1030 1535 3 1029 1030 1535 3 1030 1031 1543 3 1030 1031 1543 3 1030 1031 1543 3 1030 1031 1543 3 1030 1031 1543 3 1030 1031 1543 3 1031 1032 1550 3 1031 1032 1550 3 1031 1032 1550 3 1031 1032 1550 3 1031 1032 1550 3 1031 1032 1550 3 1032 1033 1557 3 1032 1033 1557 3 1032 1033 1557 3 1032 1033 1557 3 1032 1033 1557 3 1032 1033 1557 3 1033 1034 1565 3 1033 1034 1565 3 1033 1034 1565 3 1033 1034 1565 3 1033 1034 1565 3 1033 1034 1565 3 1034 1035 1572 3 1034 1035 1572 3 1034 1035 1572 3 1034 1035 1572 3 1034 1035 1572 3 1034 1035 1572 3 1035 1036 1581 3 1035 1036 1581 3 1035 1036 1581 3 1035 1036 1581 3 1035 1036 1581 3 1035 1036 1581 3 1036 1037 1589 3 1036 1037 1589 3 1036 1037 1589 3 1036 1037 1589 3 1036 1037 1589 3 1036 1037 1589 3 1037 1038 1596 3 1037 1038 1596 3 1037 1038 1596 3 1037 1038 1596 3 1037 1038 1596 3 1037 1038 1596 3 1038 1039 1603 3 1038 1039 1603 3 1038 1039 1603 3 1038 1039 1603 3 1038 1039 1603 3 1038 1039 1603 3 1039 1040 1611 3 1039 1040 1611 3 1039 1040 1611 3 1039 1040 1611 3 1039 1040 1611 3 1039 1040 1611 3 1040 1041 1618 3 1040 1041 1618 3 1040 1041 1618 3 1040 1041 1618 3 1040 1041 1618 3 1040 1041 1618 3 1041 1042 1627 3 1041 1042 1627 3 1041 1042 1627 3 1041 1042 1627 3 1041 1042 1627 3 1041 1042 1627 3 1042 1043 1635 3 1042 1043 1635 3 1042 1043 1635 3 1042 1043 1635 3 1042 1043 1635 3 1042 1043 1635 3 1043 1044 1642 3 1043 1044 1642 3 1043 1044 1642 3 1043 1044 1642 3 1043 1044 1642 3 1043 1044 1642 3 1044 1045 1649 3 1044 1045 1649 3 1044 1045 1649 3 1044 1045 1649 3 1044 1045 1649 3 1044 1045 1649 3 1045 1046 1657 3 1045 1046 1657 3 1045 1046 1657 3 1045 1046 1657 3 1045 1046 1657 3 1045 1046 1657 3 1046 1047 1664 3 1046 1047 1664 3 1046 1047 1664 3 1046 1047 1664 3 1046 1047 1664 3 1046 1047 1664 3 1047 1048 1673 3 1047 1048 1673 3 1047 1048 1673 3 1047 1048 1673 3 1047 1048 1673 3 1047 1048 1673 3 1048 1049 1681 3 1048 1049 1681 3 1048 1049 1681 3 1048 1049 1681 3 1048 1049 1681 3 1048 1049 1681 3 1049 1050 1688 3 1049 1050 1688 3 1049 1050 1688 3 1049 1050 1688 3 1049 1050 1688 3 1049 1050 1688 3 1050 1051 1697 3 1050 1051 1697 3 1050 1051 1697 3 1050 1051 1697 3 1050 1051 1697 3 1050 1051 1697 3 1051 1052 1707 3 1051 1052 1707 3 1051 1052 1707 3 1051 1052 1707 3 1051 1052 1707 3 1051 1052 1707 3 1052 1053 1714 3 1052 1053 1714 3 1052 1053 1714 3 1052 1053 1714 3 1052 1053 1714 3 1052 1053 1714 3 1054 1055 1407 3 1054 1055 1407 3 1054 1055 1407 3 1054 1055 1407 3 1054 1055 1407 3 1054 1055 1407 3 1055 1056 1413 3 1055 1056 1413 3 1055 1056 1413 3 1055 1056 1413 3 1055 1056 1413 3 1055 1056 1413 3 1056 1057 1419 3 1056 1057 1419 3 1056 1057 1419 3 1056 1057 1419 3 1056 1057 1419 3 1056 1057 1419 3 1057 1058 1425 3 1057 1058 1425 3 1057 1058 1425 3 1057 1058 1425 3 1057 1058 1425 3 1057 1058 1425 3 1058 1059 1431 3 1058 1059 1431 3 1058 1059 1431 3 1058 1059 1431 3 1058 1059 1431 3 1058 1059 1431 3 1059 1060 1437 3 1059 1060 1437 3 1059 1060 1437 3 1059 1060 1437 3 1059 1060 1437 3 1059 1060 1437 3 1060 1061 1443 3 1060 1061 1443 3 1060 1061 1443 3 1060 1061 1443 3 1060 1061 1443 3 1060 1061 1443 3 1061 1062 1451 3 1061 1062 1451 3 1061 1062 1451 3 1061 1062 1451 3 1061 1062 1451 3 1061 1062 1451 3 1062 1063 1457 3 1062 1063 1457 3 1062 1063 1457 3 1062 1063 1457 3 1062 1063 1457 3 1062 1063 1457 3 1063 1064 1465 3 1063 1064 1465 3 1063 1064 1465 3 1063 1064 1465 3 1063 1064 1465 3 1063 1064 1465 3 1064 1065 1473 3 1064 1065 1473 3 1064 1065 1473 3 1064 1065 1473 3 1064 1065 1473 3 1064 1065 1473 3 1065 1066 1479 3 1065 1066 1479 3 1065 1066 1479 3 1065 1066 1479 3 1065 1066 1479 3 1065 1066 1479 3 1066 1067 1489 3 1066 1067 1489 3 1066 1067 1489 3 1066 1067 1489 3 1066 1067 1489 3 1066 1067 1489 3 1067 1068 1499 3 1067 1068 1499 3 1067 1068 1499 3 1067 1068 1499 3 1067 1068 1499 3 1067 1068 1499 3 1068 1069 1505 3 1068 1069 1505 3 1068 1069 1505 3 1068 1069 1505 3 1068 1069 1505 3 1068 1069 1505 3 1069 1070 1513 3 1069 1070 1513 3 1069 1070 1513 3 1069 1070 1513 3 1069 1070 1513 3 1069 1070 1513 3 1070 1071 1521 3 1070 1071 1521 3 1070 1071 1521 3 1070 1071 1521 3 1070 1071 1521 3 1070 1071 1521 3 1071 1072 1527 3 1071 1072 1527 3 1071 1072 1527 3 1071 1072 1527 3 1071 1072 1527 3 1071 1072 1527 3 1072 1073 1537 3 1072 1073 1537 3 1072 1073 1537 3 1072 1073 1537 3 1072 1073 1537 3 1072 1073 1537 3 1073 1074 1545 3 1073 1074 1545 3 1073 1074 1545 3 1073 1074 1545 3 1073 1074 1545 3 1073 1074 1545 3 1074 1075 1551 3 1074 1075 1551 3 1074 1075 1551 3 1074 1075 1551 3 1074 1075 1551 3 1074 1075 1551 3 1075 1076 1559 3 1075 1076 1559 3 1075 1076 1559 3 1075 1076 1559 3 1075 1076 1559 3 1075 1076 1559 3 1076 1077 1567 3 1076 1077 1567 3 1076 1077 1567 3 1076 1077 1567 3 1076 1077 1567 3 1076 1077 1567 3 1077 1078 1573 3 1077 1078 1573 3 1077 1078 1573 3 1077 1078 1573 3 1077 1078 1573 3 1077 1078 1573 3 1078 1079 1583 3 1078 1079 1583 3 1078 1079 1583 3 1078 1079 1583 3 1078 1079 1583 3 1078 1079 1583 3 1079 1080 1591 3 1079 1080 1591 3 1079 1080 1591 3 1079 1080 1591 3 1079 1080 1591 3 1079 1080 1591 3 1080 1081 1597 3 1080 1081 1597 3 1080 1081 1597 3 1080 1081 1597 3 1080 1081 1597 3 1080 1081 1597 3 1081 1082 1605 3 1081 1082 1605 3 1081 1082 1605 3 1081 1082 1605 3 1081 1082 1605 3 1081 1082 1605 3 1082 1083 1613 3 1082 1083 1613 3 1082 1083 1613 3 1082 1083 1613 3 1082 1083 1613 3 1082 1083 1613 3 1083 1084 1619 3 1083 1084 1619 3 1083 1084 1619 3 1083 1084 1619 3 1083 1084 1619 3 1083 1084 1619 3 1084 1085 1629 3 1084 1085 1629 3 1084 1085 1629 3 1084 1085 1629 3 1084 1085 1629 3 1084 1085 1629 3 1085 1086 1637 3 1085 1086 1637 3 1085 1086 1637 3 1085 1086 1637 3 1085 1086 1637 3 1085 1086 1637 3 1086 1087 1643 3 1086 1087 1643 3 1086 1087 1643 3 1086 1087 1643 3 1086 1087 1643 3 1086 1087 1643 3 1087 1088 1651 3 1087 1088 1651 3 1087 1088 1651 3 1087 1088 1651 3 1087 1088 1651 3 1087 1088 1651 3 1088 1089 1659 3 1088 1089 1659 3 1088 1089 1659 3 1088 1089 1659 3 1088 1089 1659 3 1088 1089 1659 3 1089 1090 1665 3 1089 1090 1665 3 1089 1090 1665 3 1089 1090 1665 3 1089 1090 1665 3 1089 1090 1665 3 1090 1091 1675 3 1090 1091 1675 3 1090 1091 1675 3 1090 1091 1675 3 1090 1091 1675 3 1090 1091 1675 3 1091 1092 1683 3 1091 1092 1683 3 1091 1092 1683 3 1091 1092 1683 3 1091 1092 1683 3 1091 1092 1683 3 1092 1093 1689 3 1092 1093 1689 3 1092 1093 1689 3 1092 1093 1689 3 1092 1093 1689 3 1092 1093 1689 3 1093 1094 1699 3 1093 1094 1699 3 1093 1094 1699 3 1093 1094 1699 3 1093 1094 1699 3 1093 1094 1699 3 1094 1095 1709 3 1094 1095 1709 3 1094 1095 1709 3 1094 1095 1709 3 1094 1095 1709 3 1094 1095 1709 3 1095 1096 1715 3 1095 1096 1715 3 1095 1096 1715 3 1095 1096 1715 3 1095 1096 1715 3 1095 1096 1715 1 1097 1 1097 1 1097 1 1097 1 1097 1 1097 4 1098 1099 1400 1401 4 1098 1099 1400 1401 4 1098 1099 1400 1401 4 1098 1099 1400 1401 4 1098 1099 1400 1401 4 1098 1099 1400 1401 4 1099 1100 1408 1409 4 1099 1100 1408 1409 4 1099 1100 1408 1409 4 1099 1100 1408 1409 4 1099 1100 1408 1409 4 1099 1100 1408 1409 4 1100 1101 1414 1415 4 1100 1101 1414 1415 4 1100 1101 1414 1415 4 1100 1101 1414 1415 4 1100 1101 1414 1415 4 1100 1101 1414 1415 4 1101 1102 1420 1421 4 1101 1102 1420 1421 4 1101 1102 1420 1421 4 1101 1102 1420 1421 4 1101 1102 1420 1421 4 1101 1102 1420 1421 4 1102 1103 1426 1427 4 1102 1103 1426 1427 4 1102 1103 1426 1427 4 1102 1103 1426 1427 4 1102 1103 1426 1427 4 1102 1103 1426 1427 4 1103 1104 1432 1433 4 1103 1104 1432 1433 4 1103 1104 1432 1433 4 1103 1104 1432 1433 4 1103 1104 1432 1433 4 1103 1104 1432 1433 4 1104 1105 1438 1439 4 1104 1105 1438 1439 4 1104 1105 1438 1439 4 1104 1105 1438 1439 4 1104 1105 1438 1439 4 1104 1105 1438 1439 4 1105 1106 1444 1445 4 1105 1106 1444 1445 4 1105 1106 1444 1445 4 1105 1106 1444 1445 4 1105 1106 1444 1445 4 1105 1106 1444 1445 4 1106 1107 1452 1453 4 1106 1107 1452 1453 4 1106 1107 1452 1453 4 1106 1107 1452 1453 4 1106 1107 1452 1453 4 1106 1107 1452 1453 4 1107 1108 1458 1459 4 1107 1108 1458 1459 4 1107 1108 1458 1459 4 1107 1108 1458 1459 4 1107 1108 1458 1459 4 1107 1108 1458 1459 4 1108 1109 1466 1467 4 1108 1109 1466 1467 4 1108 1109 1466 1467 4 1108 1109 1466 1467 4 1108 1109 1466 1467 4 1108 1109 1466 1467 4 1109 1110 1474 1475 4 1109 1110 1474 1475 4 1109 1110 1474 1475 4 1109 1110 1474 1475 4 1109 1110 1474 1475 4 1109 1110 1474 1475 4 1110 1111 1480 1481 4 1110 1111 1480 1481 4 1110 1111 1480 1481 4 1110 1111 1480 1481 4 1110 1111 1480 1481 4 1110 1111 1480 1481 4 1111 1112 1490 1491 4 1111 1112 1490 1491 4 1111 1112 1490 1491 4 1111 1112 1490 1491 4 1111 1112 1490 1491 4 1111 1112 1490 1491 4 1112 1113 1500 1501 4 1112 1113 1500 1501 4 1112 1113 1500 1501 4 1112 1113 1500 1501 4 1112 1113 1500 1501 4 1112 1113 1500 1501 4 1113 1114 1506 1507 4 1113 1114 1506 1507 4 1113 1114 1506 1507 4 1113 1114 1506 1507 4 1113 1114 1506 1507 4 1113 1114 1506 1507 4 1114 1115 1514 1515 4 1114 1115 1514 1515 4 1114 1115 1514 1515 4 1114 1115 1514 1515 4 1114 1115 1514 1515 4 1114 1115 1514 1515 4 1115 1116 1522 1523 4 1115 1116 1522 1523 4 1115 1116 1522 1523 4 1115 1116 1522 1523 4 1115 1116 1522 1523 4 1115 1116 1522 1523 4 1116 1117 1528 1529 4 1116 1117 1528 1529 4 1116 1117 1528 1529 4 1116 1117 1528 1529 4 1116 1117 1528 1529 4 1116 1117 1528 1529 4 1117 1118 1538 1539 4 1117 1118 1538 1539 4 1117 1118 1538 1539 4 1117 1118 1538 1539 4 1117 1118 1538 1539 4 1117 1118 1538 1539 4 1118 1119 1546 1547 4 1118 1119 1546 1547 4 1118 1119 1546 1547 4 1118 1119 1546 1547 4 1118 1119 1546 1547 4 1118 1119 1546 1547 4 1119 1120 1552 1553 4 1119 1120 1552 1553 4 1119 1120 1552 1553 4 1119 1120 1552 1553 4 1119 1120 1552 1553 4 1119 1120 1552 1553 4 1120 1121 1560 1561 4 1120 1121 1560 1561 4 1120 1121 1560 1561 4 1120 1121 1560 1561 4 1120 1121 1560 1561 4 1120 1121 1560 1561 4 1121 1122 1568 1569 4 1121 1122 1568 1569 4 1121 1122 1568 1569 4 1121 1122 1568 1569 4 1121 1122 1568 1569 4 1121 1122 1568 1569 4 1122 1123 1574 1575 4 1122 1123 1574 1575 4 1122 1123 1574 1575 4 1122 1123 1574 1575 4 1122 1123 1574 1575 4 1122 1123 1574 1575 4 1123 1124 1584 1585 4 1123 1124 1584 1585 4 1123 1124 1584 1585 4 1123 1124 1584 1585 4 1123 1124 1584 1585 4 1123 1124 1584 1585 4 1124 1125 1592 1593 4 1124 1125 1592 1593 4 1124 1125 1592 1593 4 1124 1125 1592 1593 4 1124 1125 1592 1593 4 1124 1125 1592 1593 4 1125 1126 1598 1599 4 1125 1126 1598 1599 4 1125 1126 1598 1599 4 1125 1126 1598 1599 4 1125 1126 1598 1599 4 1125 1126 1598 1599 4 1126 1127 1606 1607 4 1126 1127 1606 1607 4 1126 1127 1606 1607 4 1126 1127 1606 1607 4 1126 1127 1606 1607 4 1126 1127 1606 1607 4 1127 1128 1614 1615 4 1127 1128 1614 1615 4 1127 1128 1614 1615 4 1127 1128 1614 1615 4 1127 1128 1614 1615 4 1127 1128 1614 1615 4 1128 1129 1620 1621 4 1128 1129 1620 1621 4 1128 1129 1620 1621 4 1128 1129 1620 1621 4 1128 1129 1620 1621 4 1128 1129 1620 1621 4 1129 1130 1630 1631 4 1129 1130 1630 1631 4 1129 1130 1630 1631 4 1129 1130 1630 1631 4 1129 1130 1630 1631 4 1129 1130 1630 1631 4 1130 1131 1638 1639 4 1130 1131 1638 1639 4 1130 1131 1638 1639 4 1130 1131 1638 1639 4 1130 1131 1638 1639 4 1130 1131 1638 1639 4 1131 1132 1644 1645 4 1131 1132 1644 1645 4 1131 1132 1644 1645 4 1131 1132 1644 1645 4 1131 1132 1644 1645 4 1131 1132 1644 1645 4 1132 1133 1652 1653 4 1132 1133 1652 1653 4 1132 1133 1652 1653 4 1132 1133 1652 1653 4 1132 1133 1652 1653 4 1132 1133 1652 1653 4 1133 1134 1660 1661 4 1133 1134 1660 1661 4 1133 1134 1660 1661 4 1133 1134 1660 1661 4 1133 1134 1660 1661 4 1133 1134 1660 1661 4 1134 1135 1666 1667 4 1134 1135 1666 1667 4 1134 1135 1666 1667 4 1134 1135 1666 1667 4 1134 1135 1666 1667 4 1134 1135 1666 1667 4 1135 1136 1676 1677 4 1135 1136 1676 1677 4 1135 1136 1676 1677 4 1135 1136 1676 1677 4 1135 1136 1676 1677 4 1135 1136 1676 1677 4 1136 1137 1684 1685 4 1136 1137 1684 1685 4 1136 1137 1684 1685 4 1136 1137 1684 1685 4 1136 1137 1684 1685 4 1136 1137 1684 1685 4 1137 1138 1690 1691 4 1137 1138 1690 1691 4 1137 1138 1690 1691 4 1137 1138 1690 1691 4 1137 1138 1690 1691 4 1137 1138 1690 1691 4 1138 1139 1700 1701 4 1138 1139 1700 1701 4 1138 1139 1700 1701 4 1138 1139 1700 1701 4 1138 1139 1700 1701 4 1138 1139 1700 1701 4 1139 1140 1710 1711 4 1139 1140 1710 1711 4 1139 1140 1710 1711 4 1139 1140 1710 1711 4 1139 1140 1710 1711 4 1139 1140 1710 1711 4 1141 1142 1402 1403 4 1141 1142 1402 1403 4 1141 1142 1402 1403 4 1141 1142 1402 1403 4 1141 1142 1402 1403 4 1141 1142 1402 1403 3 1142 1143 1410 3 1142 1143 1410 3 1142 1143 1410 3 1142 1143 1410 3 1142 1143 1410 3 1142 1143 1410 3 1143 1144 1416 3 1143 1144 1416 3 1143 1144 1416 3 1143 1144 1416 3 1143 1144 1416 3 1143 1144 1416 3 1144 1145 1422 3 1144 1145 1422 3 1144 1145 1422 3 1144 1145 1422 3 1144 1145 1422 3 1144 1145 1422 3 1145 1146 1428 3 1145 1146 1428 3 1145 1146 1428 3 1145 1146 1428 3 1145 1146 1428 3 1145 1146 1428 3 1146 1147 1434 3 1146 1147 1434 3 1146 1147 1434 3 1146 1147 1434 3 1146 1147 1434 3 1146 1147 1434 3 1147 1148 1440 3 1147 1148 1440 3 1147 1148 1440 3 1147 1148 1440 3 1147 1148 1440 3 1147 1148 1440 4 1148 1149 1446 1447 4 1148 1149 1446 1447 4 1148 1149 1446 1447 4 1148 1149 1446 1447 4 1148 1149 1446 1447 4 1148 1149 1446 1447 3 1149 1150 1454 3 1149 1150 1454 3 1149 1150 1454 3 1149 1150 1454 3 1149 1150 1454 3 1149 1150 1454 4 1150 1151 1460 1461 4 1150 1151 1460 1461 4 1150 1151 1460 1461 4 1150 1151 1460 1461 4 1150 1151 1460 1461 4 1150 1151 1460 1461 4 1151 1152 1468 1469 4 1151 1152 1468 1469 4 1151 1152 1468 1469 4 1151 1152 1468 1469 4 1151 1152 1468 1469 4 1151 1152 1468 1469 3 1152 1153 1476 3 1152 1153 1476 3 1152 1153 1476 3 1152 1153 1476 3 1152 1153 1476 3 1152 1153 1476 4 1153 1154 1482 1483 4 1153 1154 1482 1483 4 1153 1154 1482 1483 4 1153 1154 1482 1483 4 1153 1154 1482 1483 4 1153 1154 1482 1483 4 1154 1155 1492 1493 4 1154 1155 1492 1493 4 1154 1155 1492 1493 4 1154 1155 1492 1493 4 1154 1155 1492 1493 4 1154 1155 1492 1493 3 1155 1156 1502 3 1155 1156 1502 3 1155 1156 1502 3 1155 1156 1502 3 1155 1156 1502 3 1155 1156 1502 4 1156 1157 1508 1509 4 1156 1157 1508 1509 4 1156 1157 1508 1509 4 1156 1157 1508 1509 4 1156 1157 1508 1509 4 1156 1157 1508 1509 4 1157 1158 1516 1517 4 1157 1158 1516 1517 4 1157 1158 1516 1517 4 1157 1158 1516 1517 4 1157 1158 1516 1517 4 1157 1158 1516 1517 3 1158 1159 1524 3 1158 1159 1524 3 1158 1159 1524 3 1158 1159 1524 3 1158 1159 1524 3 1158 1159 1524 4 1159 1160 1530 1531 4 1159 1160 1530 1531 4 1159 1160 1530 1531 4 1159 1160 1530 1531 4 1159 1160 1530 1531 4 1159 1160 1530 1531 4 1160 1161 1540 1541 4 1160 1161 1540 1541 4 1160 1161 1540 1541 4 1160 1161 1540 1541 4 1160 1161 1540 1541 4 1160 1161 1540 1541 3 1161 1162 1548 3 1161 1162 1548 3 1161 1162 1548 3 1161 1162 1548 3 1161 1162 1548 3 1161 1162 1548 4 1162 1163 1554 1555 4 1162 1163 1554 1555 4 1162 1163 1554 1555 4 1162 1163 1554 1555 4 1162 1163 1554 1555 4 1162 1163 1554 1555 4 1163 1164 1562 1563 4 1163 1164 1562 1563 4 1163 1164 1562 1563 4 1163 1164 1562 1563 4 1163 1164 1562 1563 4 1163 1164 1562 1563 3 1164 1165 1570 3 1164 1165 1570 3 1164 1165 1570 3 1164 1165 1570 3 1164 1165 1570 3 1164 1165 1570 4 1165 1166 1576 1577 4 1165 1166 1576 1577 4 1165 1166 1576 1577 4 1165 1166 1576 1577 4 1165 1166 1576 1577 4 1165 1166 1576 1577 4 1166 1167 1586 1587 4 1166 1167 1586 1587 4 1166 1167 1586 1587 4 1166 1167 1586 1587 4 1166 1167 1586 1587 4 1166 1167 1586 1587 3 1167 1168 1594 3 1167 1168 1594 3 1167 1168 1594 3 1167 1168 1594 3 1167 1168 1594 3 1167 1168 1594 4 1168 1169 1600 1601 4 1168 1169 1600 1601 4 1168 1169 1600 1601 4 1168 1169 1600 1601 4 1168 1169 1600 1601 4 1168 1169 1600 1601 4 1169 1170 1608 1609 4 1169 1170 1608 1609 4 1169 1170 1608 1609 4 1169 1170 1608 1609 4 1169 1170 1608 1609 4 1169 1170 1608 1609 3 1170 1171 1616 3 1170 1171 1616 3 1170 1171 1616 3 1170 1171 1616 3 1170 1171 1616 3 1170 1171 1616 4 1171 1172 1622 1623 4 1171 1172 1622 1623 4 1171 1172 1622 1623 4 1171 1172 1622 1623 4 1171 1172 1622 1623 4 1171 1172 1622 1623 4 1172 1173 1632 1633 4 1172 1173 1632 1633 4 1172 1173 1632 1633 4 1172 1173 1632 1633 4 1172 1173 1632 1633 4 1172 1173 1632 1633 3 1173 1174 1640 3 1173 1174 1640 3 1173 1174 1640 3 1173 1174 1640 3 1173 1174 1640 3 1173 1174 1640 4 1174 1175 1646 1647 4 1174 1175 1646 1647 4 1174 1175 1646 1647 4 1174 1175 1646 1647 4 1174 1175 1646 1647 4 1174 1175 1646 1647 4 1175 1176 1654 1655 4 1175 1176 1654 1655 4 1175 1176 1654 1655 4 1175 1176 1654 1655 4 1175 1176 1654 1655 4 1175 1176 1654 1655 3 1176 1177 1662 3 1176 1177 1662 3 1176 1177 1662 3 1176 1177 1662 3 1176 1177 1662 3 1176 1177 1662 4 1177 1178 1668 1669 4 1177 1178 1668 1669 4 1177 1178 1668 1669 4 1177 1178 1668 1669 4 1177 1178 1668 1669 4 1177 1178 1668 1669 4 1178 1179 1678 1679 4 1178 1179 1678 1679 4 1178 1179 1678 1679 4 1178 1179 1678 1679 4 1178 1179 1678 1679 4 1178 1179 1678 1679 3 1179 1180 1686 3 1179 1180 1686 3 1179 1180 1686 3 1179 1180 1686 3 1179 1180 1686 3 1179 1180 1686 4 1180 1181 1692 1693 4 1180 1181 1692 1693 4 1180 1181 1692 1693 4 1180 1181 1692 1693 4 1180 1181 1692 1693 4 1180 1181 1692 1693 4 1181 1182 1702 1703 4 1181 1182 1702 1703 4 1181 1182 1702 1703 4 1181 1182 1702 1703 4 1181 1182 1702 1703 4 1181 1182 1702 1703 3 1182 1183 1712 3 1182 1183 1712 3 1182 1183 1712 3 1182 1183 1712 3 1182 1183 1712 3 1182 1183 1712 3 1184 1185 1404 3 1184 1185 1404 3 1184 1185 1404 3 1184 1185 1404 3 1184 1185 1404 3 1184 1185 1404 3 1185 1186 1411 3 1185 1186 1411 3 1185 1186 1411 3 1185 1186 1411 3 1185 1186 1411 3 1185 1186 1411 3 1186 1187 1417 3 1186 1187 1417 3 1186 1187 1417 3 1186 1187 1417 3 1186 1187 1417 3 1186 1187 1417 3 1187 1188 1423 3 1187 1188 1423 3 1187 1188 1423 3 1187 1188 1423 3 1187 1188 1423 3 1187 1188 1423 3 1188 1189 1429 3 1188 1189 1429 3 1188 1189 1429 3 1188 1189 1429 3 1188 1189 1429 3 1188 1189 1429 3 1189 1190 1435 3 1189 1190 1435 3 1189 1190 1435 3 1189 1190 1435 3 1189 1190 1435 3 1189 1190 1435 3 1190 1191 1441 3 1190 1191 1441 3 1190 1191 1441 3 1190 1191 1441 3 1190 1191 1441 3 1190 1191 1441 3 1191 1192 1448 3 1191 1192 1448 3 1191 1192 1448 3 1191 1192 1448 3 1191 1192 1448 3 1191 1192 1448 3 1192 1193 1455 3 1192 1193 1455 3 1192 1193 1455 3 1192 1193 1455 3 1192 1193 1455 3 1192 1193 1455 3 1193 1194 1462 3 1193 1194 1462 3 1193 1194 1462 3 1193 1194 1462 3 1193 1194 1462 3 1193 1194 1462 3 1194 1195 1470 3 1194 1195 1470 3 1194 1195 1470 3 1194 1195 1470 3 1194 1195 1470 3 1194 1195 1470 3 1195 1196 1477 3 1195 1196 1477 3 1195 1196 1477 3 1195 1196 1477 3 1195 1196 1477 3 1195 1196 1477 4 1196 1197 1484 1485 4 1196 1197 1484 1485 4 1196 1197 1484 1485 4 1196 1197 1484 1485 4 1196 1197 1484 1485 4 1196 1197 1484 1485 4 1197 1198 1494 1495 4 1197 1198 1494 1495 4 1197 1198 1494 1495 4 1197 1198 1494 1495 4 1197 1198 1494 1495 4 1197 1198 1494 1495 3 1198 1199 1503 3 1198 1199 1503 3 1198 1199 1503 3 1198 1199 1503 3 1198 1199 1503 3 1198 1199 1503 3 1199 1200 1510 3 1199 1200 1510 3 1199 1200 1510 3 1199 1200 1510 3 1199 1200 1510 3 1199 1200 1510 3 1200 1201 1518 3 1200 1201 1518 3 1200 1201 1518 3 1200 1201 1518 3 1200 1201 1518 3 1200 1201 1518 3 1201 1202 1525 3 1201 1202 1525 3 1201 1202 1525 3 1201 1202 1525 3 1201 1202 1525 3 1201 1202 1525 4 1202 1203 1532 1533 4 1202 1203 1532 1533 4 1202 1203 1532 1533 4 1202 1203 1532 1533 4 1202 1203 1532 1533 4 1202 1203 1532 1533 3 1203 1204 1542 3 1203 1204 1542 3 1203 1204 1542 3 1203 1204 1542 3 1203 1204 1542 3 1203 1204 1542 3 1204 1205 1549 3 1204 1205 1549 3 1204 1205 1549 3 1204 1205 1549 3 1204 1205 1549 3 1204 1205 1549 3 1205 1206 1556 3 1205 1206 1556 3 1205 1206 1556 3 1205 1206 1556 3 1205 1206 1556 3 1205 1206 1556 3 1206 1207 1564 3 1206 1207 1564 3 1206 1207 1564 3 1206 1207 1564 3 1206 1207 1564 3 1206 1207 1564 3 1207 1208 1571 3 1207 1208 1571 3 1207 1208 1571 3 1207 1208 1571 3 1207 1208 1571 3 1207 1208 1571 4 1208 1209 1578 1579 4 1208 1209 1578 1579 4 1208 1209 1578 1579 4 1208 1209 1578 1579 4 1208 1209 1578 1579 4 1208 1209 1578 1579 3 1209 1210 1588 3 1209 1210 1588 3 1209 1210 1588 3 1209 1210 1588 3 1209 1210 1588 3 1209 1210 1588 3 1210 1211 1595 3 1210 1211 1595 3 1210 1211 1595 3 1210 1211 1595 3 1210 1211 1595 3 1210 1211 1595 3 1211 1212 1602 3 1211 1212 1602 3 1211 1212 1602 3 1211 1212 1602 3 1211 1212 1602 3 1211 1212 1602 3 1212 1213 1610 3 1212 1213 1610 3 1212 1213 1610 3 1212 1213 1610 3 1212 1213 1610 3 1212 1213 1610 3 1213 1214 1617 3 1213 1214 1617 3 1213 1214 1617 3 1213 1214 1617 3 1213 1214 1617 3 1213 1214 1617 4 1214 1215 1624 1625 4 1214 1215 1624 1625 4 1214 1215 1624 1625 4 1214 1215 1624 1625 4 1214 1215 1624 1625 4 1214 1215 1624 1625 3 1215 1216 1634 3 1215 1216 1634 3 1215 1216 1634 3 1215 1216 1634 3 1215 1216 1634 3 1215 1216 1634 3 1216 1217 1641 3 1216 1217 1641 3 1216 1217 1641 3 1216 1217 1641 3 1216 1217 1641 3 1216 1217 1641 3 1217 1218 1648 3 1217 1218 1648 3 1217 1218 1648 3 1217 1218 1648 3 1217 1218 1648 3 1217 1218 1648 3 1218 1219 1656 3 1218 1219 1656 3 1218 1219 1656 3 1218 1219 1656 3 1218 1219 1656 3 1218 1219 1656 3 1219 1220 1663 3 1219 1220 1663 3 1219 1220 1663 3 1219 1220 1663 3 1219 1220 1663 3 1219 1220 1663 4 1220 1221 1670 1671 4 1220 1221 1670 1671 4 1220 1221 1670 1671 4 1220 1221 1670 1671 4 1220 1221 1670 1671 4 1220 1221 1670 1671 3 1221 1222 1680 3 1221 1222 1680 3 1221 1222 1680 3 1221 1222 1680 3 1221 1222 1680 3 1221 1222 1680 3 1222 1223 1687 3 1222 1223 1687 3 1222 1223 1687 3 1222 1223 1687 3 1222 1223 1687 3 1222 1223 1687 4 1223 1224 1694 1695 4 1223 1224 1694 1695 4 1223 1224 1694 1695 4 1223 1224 1694 1695 4 1223 1224 1694 1695 4 1223 1224 1694 1695 4 1224 1225 1704 1705 4 1224 1225 1704 1705 4 1224 1225 1704 1705 4 1224 1225 1704 1705 4 1224 1225 1704 1705 4 1224 1225 1704 1705 3 1225 1226 1713 3 1225 1226 1713 3 1225 1226 1713 3 1225 1226 1713 3 1225 1226 1713 3 1225 1226 1713 3 1227 1228 1405 3 1227 1228 1405 3 1227 1228 1405 3 1227 1228 1405 3 1227 1228 1405 3 1227 1228 1405 3 1228 1229 1412 3 1228 1229 1412 3 1228 1229 1412 3 1228 1229 1412 3 1228 1229 1412 3 1228 1229 1412 3 1229 1230 1418 3 1229 1230 1418 3 1229 1230 1418 3 1229 1230 1418 3 1229 1230 1418 3 1229 1230 1418 3 1230 1231 1424 3 1230 1231 1424 3 1230 1231 1424 3 1230 1231 1424 3 1230 1231 1424 3 1230 1231 1424 3 1231 1232 1430 3 1231 1232 1430 3 1231 1232 1430 3 1231 1232 1430 3 1231 1232 1430 3 1231 1232 1430 3 1232 1233 1436 3 1232 1233 1436 3 1232 1233 1436 3 1232 1233 1436 3 1232 1233 1436 3 1232 1233 1436 3 1233 1234 1442 3 1233 1234 1442 3 1233 1234 1442 3 1233 1234 1442 3 1233 1234 1442 3 1233 1234 1442 3 1234 1235 1449 3 1234 1235 1449 3 1234 1235 1449 3 1234 1235 1449 3 1234 1235 1449 3 1234 1235 1449 3 1235 1236 1456 3 1235 1236 1456 3 1235 1236 1456 3 1235 1236 1456 3 1235 1236 1456 3 1235 1236 1456 3 1236 1237 1463 3 1236 1237 1463 3 1236 1237 1463 3 1236 1237 1463 3 1236 1237 1463 3 1236 1237 1463 3 1237 1238 1471 3 1237 1238 1471 3 1237 1238 1471 3 1237 1238 1471 3 1237 1238 1471 3 1237 1238 1471 3 1238 1239 1478 3 1238 1239 1478 3 1238 1239 1478 3 1238 1239 1478 3 1238 1239 1478 3 1238 1239 1478 4 1239 1240 1486 1487 4 1239 1240 1486 1487 4 1239 1240 1486 1487 4 1239 1240 1486 1487 4 1239 1240 1486 1487 4 1239 1240 1486 1487 4 1240 1241 1496 1497 4 1240 1241 1496 1497 4 1240 1241 1496 1497 4 1240 1241 1496 1497 4 1240 1241 1496 1497 4 1240 1241 1496 1497 3 1241 1242 1504 3 1241 1242 1504 3 1241 1242 1504 3 1241 1242 1504 3 1241 1242 1504 3 1241 1242 1504 3 1242 1243 1511 3 1242 1243 1511 3 1242 1243 1511 3 1242 1243 1511 3 1242 1243 1511 3 1242 1243 1511 3 1243 1244 1519 3 1243 1244 1519 3 1243 1244 1519 3 1243 1244 1519 3 1243 1244 1519 3 1243 1244 1519 3 1244 1245 1526 3 1244 1245 1526 3 1244 1245 1526 3 1244 1245 1526 3 1244 1245 1526 3 1244 1245 1526 4 1245 1246 1534 1535 4 1245 1246 1534 1535 4 1245 1246 1534 1535 4 1245 1246 1534 1535 4 1245 1246 1534 1535 4 1245 1246 1534 1535 3 1246 1247 1543 3 1246 1247 1543 3 1246 1247 1543 3 1246 1247 1543 3 1246 1247 1543 3 1246 1247 1543 3 1247 1248 1550 3 1247 1248 1550 3 1247 1248 1550 3 1247 1248 1550 3 1247 1248 1550 3 1247 1248 1550 3 1248 1249 1557 3 1248 1249 1557 3 1248 1249 1557 3 1248 1249 1557 3 1248 1249 1557 3 1248 1249 1557 3 1249 1250 1565 3 1249 1250 1565 3 1249 1250 1565 3 1249 1250 1565 3 1249 1250 1565 3 1249 1250 1565 3 1250 1251 1572 3 1250 1251 1572 3 1250 1251 1572 3 1250 1251 1572 3 1250 1251 1572 3 1250 1251 1572 4 1251 1252 1580 1581 4 1251 1252 1580 1581 4 1251 1252 1580 1581 4 1251 1252 1580 1581 4 1251 1252 1580 1581 4 1251 1252 1580 1581 3 1252 1253 1589 3 1252 1253 1589 3 1252 1253 1589 3 1252 1253 1589 3 1252 1253 1589 3 1252 1253 1589 3 1253 1254 1596 3 1253 1254 1596 3 1253 1254 1596 3 1253 1254 1596 3 1253 1254 1596 3 1253 1254 1596 3 1254 1255 1603 3 1254 1255 1603 3 1254 1255 1603 3 1254 1255 1603 3 1254 1255 1603 3 1254 1255 1603 3 1255 1256 1611 3 1255 1256 1611 3 1255 1256 1611 3 1255 1256 1611 3 1255 1256 1611 3 1255 1256 1611 3 1256 1257 1618 3 1256 1257 1618 3 1256 1257 1618 3 1256 1257 1618 3 1256 1257 1618 3 1256 1257 1618 4 1257 1258 1626 1627 4 1257 1258 1626 1627 4 1257 1258 1626 1627 4 1257 1258 1626 1627 4 1257 1258 1626 1627 4 1257 1258 1626 1627 3 1258 1259 1635 3 1258 1259 1635 3 1258 1259 1635 3 1258 1259 1635 3 1258 1259 1635 3 1258 1259 1635 3 1259 1260 1642 3 1259 1260 1642 3 1259 1260 1642 3 1259 1260 1642 3 1259 1260 1642 3 1259 1260 1642 3 1260 1261 1649 3 1260 1261 1649 3 1260 1261 1649 3 1260 1261 1649 3 1260 1261 1649 3 1260 1261 1649 3 1261 1262 1657 3 1261 1262 1657 3 1261 1262 1657 3 1261 1262 1657 3 1261 1262 1657 3 1261 1262 1657 3 1262 1263 1664 3 1262 1263 1664 3 1262 1263 1664 3 1262 1263 1664 3 1262 1263 1664 3 1262 1263 1664 4 1263 1264 1672 1673 4 1263 1264 1672 1673 4 1263 1264 1672 1673 4 1263 1264 1672 1673 4 1263 1264 1672 1673 4 1263 1264 1672 1673 3 1264 1265 1681 3 1264 1265 1681 3 1264 1265 1681 3 1264 1265 1681 3 1264 1265 1681 3 1264 1265 1681 3 1265 1266 1688 3 1265 1266 1688 3 1265 1266 1688 3 1265 1266 1688 3 1265 1266 1688 3 1265 1266 1688 4 1266 1267 1696 1697 4 1266 1267 1696 1697 4 1266 1267 1696 1697 4 1266 1267 1696 1697 4 1266 1267 1696 1697 4 1266 1267 1696 1697 4 1267 1268 1706 1707 4 1267 1268 1706 1707 4 1267 1268 1706 1707 4 1267 1268 1706 1707 4 1267 1268 1706 1707 4 1267 1268 1706 1707 3 1268 1269 1714 3 1268 1269 1714 3 1268 1269 1714 3 1268 1269 1714 3 1268 1269 1714 3 1268 1269 1714 4 1270 1271 1406 1407 4 1270 1271 1406 1407 4 1270 1271 1406 1407 4 1270 1271 1406 1407 4 1270 1271 1406 1407 4 1270 1271 1406 1407 3 1271 1272 1413 3 1271 1272 1413 3 1271 1272 1413 3 1271 1272 1413 3 1271 1272 1413 3 1271 1272 1413 3 1272 1273 1419 3 1272 1273 1419 3 1272 1273 1419 3 1272 1273 1419 3 1272 1273 1419 3 1272 1273 1419 3 1273 1274 1425 3 1273 1274 1425 3 1273 1274 1425 3 1273 1274 1425 3 1273 1274 1425 3 1273 1274 1425 3 1274 1275 1431 3 1274 1275 1431 3 1274 1275 1431 3 1274 1275 1431 3 1274 1275 1431 3 1274 1275 1431 3 1275 1276 1437 3 1275 1276 1437 3 1275 1276 1437 3 1275 1276 1437 3 1275 1276 1437 3 1275 1276 1437 3 1276 1277 1443 3 1276 1277 1443 3 1276 1277 1443 3 1276 1277 1443 3 1276 1277 1443 3 1276 1277 1443 4 1277 1278 1450 1451 4 1277 1278 1450 1451 4 1277 1278 1450 1451 4 1277 1278 1450 1451 4 1277 1278 1450 1451 4 1277 1278 1450 1451 3 1278 1279 1457 3 1278 1279 1457 3 1278 1279 1457 3 1278 1279 1457 3 1278 1279 1457 3 1278 1279 1457 4 1279 1280 1464 1465 4 1279 1280 1464 1465 4 1279 1280 1464 1465 4 1279 1280 1464 1465 4 1279 1280 1464 1465 4 1279 1280 1464 1465 4 1280 1281 1472 1473 4 1280 1281 1472 1473 4 1280 1281 1472 1473 4 1280 1281 1472 1473 4 1280 1281 1472 1473 4 1280 1281 1472 1473 3 1281 1282 1479 3 1281 1282 1479 3 1281 1282 1479 3 1281 1282 1479 3 1281 1282 1479 3 1281 1282 1479 4 1282 1283 1488 1489 4 1282 1283 1488 1489 4 1282 1283 1488 1489 4 1282 1283 1488 1489 4 1282 1283 1488 1489 4 1282 1283 1488 1489 4 1283 1284 1498 1499 4 1283 1284 1498 1499 4 1283 1284 1498 1499 4 1283 1284 1498 1499 4 1283 1284 1498 1499 4 1283 1284 1498 1499 3 1284 1285 1505 3 1284 1285 1505 3 1284 1285 1505 3 1284 1285 1505 3 1284 1285 1505 3 1284 1285 1505 4 1285 1286 1512 1513 4 1285 1286 1512 1513 4 1285 1286 1512 1513 4 1285 1286 1512 1513 4 1285 1286 1512 1513 4 1285 1286 1512 1513 4 1286 1287 1520 1521 4 1286 1287 1520 1521 4 1286 1287 1520 1521 4 1286 1287 1520 1521 4 1286 1287 1520 1521 4 1286 1287 1520 1521 3 1287 1288 1527 3 1287 1288 1527 3 1287 1288 1527 3 1287 1288 1527 3 1287 1288 1527 3 1287 1288 1527 4 1288 1289 1536 1537 4 1288 1289 1536 1537 4 1288 1289 1536 1537 4 1288 1289 1536 1537 4 1288 1289 1536 1537 4 1288 1289 1536 1537 4 1289 1290 1544 1545 4 1289 1290 1544 1545 4 1289 1290 1544 1545 4 1289 1290 1544 1545 4 1289 1290 1544 1545 4 1289 1290 1544 1545 3 1290 1291 1551 3 1290 1291 1551 3 1290 1291 1551 3 1290 1291 1551 3 1290 1291 1551 3 1290 1291 1551 4 1291 1292 1558 1559 4 1291 1292 1558 1559 4 1291 1292 1558 1559 4 1291 1292 1558 1559 4 1291 1292 1558 1559 4 1291 1292 1558 1559 4 1292 1293 1566 1567 4 1292 1293 1566 1567 4 1292 1293 1566 1567 4 1292 1293 1566 1567 4 1292 1293 1566 1567 4 1292 1293 1566 1567 3 1293 1294 1573 3 1293 1294 1573 3 1293 1294 1573 3 1293 1294 1573 3 1293 1294 1573 3 1293 1294 1573 4 1294 1295 1582 1583 4 1294 1295 1582 1583 4 1294 1295 1582 1583 4 1294 1295 1582 1583 4 1294 1295 1582 1583 4 1294 1295 1582 1583 4 1295 1296 1590 1591 4 1295 1296 1590 1591 4 1295 1296 1590 1591 4 1295 1296 1590 1591 4 1295 1296 1590 1591 4 1295 1296 1590 1591 3 1296 1297 1597 3 1296 1297 1597 3 1296 1297 1597 3 1296 1297 1597 3 1296 1297 1597 3 1296 1297 1597 4 1297 1298 1604 1605 4 1297 1298 1604 1605 4 1297 1298 1604 1605 4 1297 1298 1604 1605 4 1297 1298 1604 1605 4 1297 1298 1604 1605 4 1298 1299 1612 1613 4 1298 1299 1612 1613 4 1298 1299 1612 1613 4 1298 1299 1612 1613 4 1298 1299 1612 1613 4 1298 1299 1612 1613 3 1299 1300 1619 3 1299 1300 1619 3 1299 1300 1619 3 1299 1300 1619 3 1299 1300 1619 3 1299 1300 1619 4 1300 1301 1628 1629 4 1300 1301 1628 1629 4 1300 1301 1628 1629 4 1300 1301 1628 1629 4 1300 1301 1628 1629 4 1300 1301 1628 1629 4 1301 1302 1636 1637 4 1301 1302 1636 1637 4 1301 1302 1636 1637 4 1301 1302 1636 1637 4 1301 1302 1636 1637 4 1301 1302 1636 1637 3 1302 1303 1643 3 1302 1303 1643 3 1302 1303 1643 3 1302 1303 1643 3 1302 1303 1643 3 1302 1303 1643 4 1303 1304 1650 1651 4 1303 1304 1650 1651 4 1303 1304 1650 1651 4 1303 1304 1650 1651 4 1303 1304 1650 1651 4 1303 1304 1650 1651 4 1304 1305 1658 1659 4 1304 1305 1658 1659 4 1304 1305 1658 1659 4 1304 1305 1658 1659 4 1304 1305 1658 1659 4 1304 1305 1658 1659 3 1305 1306 1665 3 1305 1306 1665 3 1305 1306 1665 3 1305 1306 1665 3 1305 1306 1665 3 1305 1306 1665 4 1306 1307 1674 1675 4 1306 1307 1674 1675 4 1306 1307 1674 1675 4 1306 1307 1674 1675 4 1306 1307 1674 1675 4 1306 1307 1674 1675 4 1307 1308 1682 1683 4 1307 1308 1682 1683 4 1307 1308 1682 1683 4 1307 1308 1682 1683 4 1307 1308 1682 1683 4 1307 1308 1682 1683 3 1308 1309 1689 3 1308 1309 1689 3 1308 1309 1689 3 1308 1309 1689 3 1308 1309 1689 3 1308 1309 1689 4 1309 1310 1698 1699 4 1309 1310 1698 1699 4 1309 1310 1698 1699 4 1309 1310 1698 1699 4 1309 1310 1698 1699 4 1309 1310 1698 1699 4 1310 1311 1708 1709 4 1310 1311 1708 1709 4 1310 1311 1708 1709 4 1310 1311 1708 1709 4 1310 1311 1708 1709 4 1310 1311 1708 1709 3 1311 1312 1715 3 1311 1312 1715 3 1311 1312 1715 3 1311 1312 1715 3 1311 1312 1715 3 1311 1312 1715 4 1313 1314 1400 2324 4 1313 1314 1400 2324 4 1313 1314 1400 2324 4 1313 1314 1400 2324 4 1313 1314 1400 2324 4 1313 1314 1400 2324 4 1314 1315 1408 2316 4 1314 1315 1408 2316 4 1314 1315 1408 2316 4 1314 1315 1408 2316 4 1314 1315 1408 2316 4 1314 1315 1408 2316 4 1315 1316 1414 2310 4 1315 1316 1414 2310 4 1315 1316 1414 2310 4 1315 1316 1414 2310 4 1315 1316 1414 2310 4 1315 1316 1414 2310 4 1316 1317 1420 2304 4 1316 1317 1420 2304 4 1316 1317 1420 2304 4 1316 1317 1420 2304 4 1316 1317 1420 2304 4 1316 1317 1420 2304 4 1317 1318 1426 2298 4 1317 1318 1426 2298 4 1317 1318 1426 2298 4 1317 1318 1426 2298 4 1317 1318 1426 2298 4 1317 1318 1426 2298 4 1318 1319 1432 2292 4 1318 1319 1432 2292 4 1318 1319 1432 2292 4 1318 1319 1432 2292 4 1318 1319 1432 2292 4 1318 1319 1432 2292 4 1319 1320 1438 2286 4 1319 1320 1438 2286 4 1319 1320 1438 2286 4 1319 1320 1438 2286 4 1319 1320 1438 2286 4 1319 1320 1438 2286 4 1320 1321 1444 2280 4 1320 1321 1444 2280 4 1320 1321 1444 2280 4 1320 1321 1444 2280 4 1320 1321 1444 2280 4 1320 1321 1444 2280 4 1321 1322 1452 2272 4 1321 1322 1452 2272 4 1321 1322 1452 2272 4 1321 1322 1452 2272 4 1321 1322 1452 2272 4 1321 1322 1452 2272 4 1322 1323 1458 2266 4 1322 1323 1458 2266 4 1322 1323 1458 2266 4 1322 1323 1458 2266 4 1322 1323 1458 2266 4 1322 1323 1458 2266 4 1323 1324 1466 2258 4 1323 1324 1466 2258 4 1323 1324 1466 2258 4 1323 1324 1466 2258 4 1323 1324 1466 2258 4 1323 1324 1466 2258 4 1324 1325 1474 2250 4 1324 1325 1474 2250 4 1324 1325 1474 2250 4 1324 1325 1474 2250 4 1324 1325 1474 2250 4 1324 1325 1474 2250 4 1325 1326 1480 2244 4 1325 1326 1480 2244 4 1325 1326 1480 2244 4 1325 1326 1480 2244 4 1325 1326 1480 2244 4 1325 1326 1480 2244 4 1326 1327 1490 2234 4 1326 1327 1490 2234 4 1326 1327 1490 2234 4 1326 1327 1490 2234 4 1326 1327 1490 2234 4 1326 1327 1490 2234 4 1327 1328 1500 2224 4 1327 1328 1500 2224 4 1327 1328 1500 2224 4 1327 1328 1500 2224 4 1327 1328 1500 2224 4 1327 1328 1500 2224 4 1328 1329 1506 2218 4 1328 1329 1506 2218 4 1328 1329 1506 2218 4 1328 1329 1506 2218 4 1328 1329 1506 2218 4 1328 1329 1506 2218 4 1329 1330 1514 2210 4 1329 1330 1514 2210 4 1329 1330 1514 2210 4 1329 1330 1514 2210 4 1329 1330 1514 2210 4 1329 1330 1514 2210 4 1330 1331 1522 2202 4 1330 1331 1522 2202 4 1330 1331 1522 2202 4 1330 1331 1522 2202 4 1330 1331 1522 2202 4 1330 1331 1522 2202 4 1331 1332 1528 2196 4 1331 1332 1528 2196 4 1331 1332 1528 2196 4 1331 1332 1528 2196 4 1331 1332 1528 2196 4 1331 1332 1528 2196 4 1332 1333 1538 2186 4 1332 1333 1538 2186 4 1332 1333 1538 2186 4 1332 1333 1538 2186 4 1332 1333 1538 2186 4 1332 1333 1538 2186 4 1333 1334 1546 2178 4 1333 1334 1546 2178 4 1333 1334 1546 2178 4 1333 1334 1546 2178 4 1333 1334 1546 2178 4 1333 1334 1546 2178 4 1334 1335 1552 2172 4 1334 1335 1552 2172 4 1334 1335 1552 2172 4 1334 1335 1552 2172 4 1334 1335 1552 2172 4 1334 1335 1552 2172 4 1335 1336 1560 2164 4 1335 1336 1560 2164 4 1335 1336 1560 2164 4 1335 1336 1560 2164 4 1335 1336 1560 2164 4 1335 1336 1560 2164 4 1336 1337 1568 2156 4 1336 1337 1568 2156 4 1336 1337 1568 2156 4 1336 1337 1568 2156 4 1336 1337 1568 2156 4 1336 1337 1568 2156 4 1337 1338 1574 2150 4 1337 1338 1574 2150 4 1337 1338 1574 2150 4 1337 1338 1574 2150 4 1337 1338 1574 2150 4 1337 1338 1574 2150 4 1338 1339 1584 2140 4 1338 1339 1584 2140 4 1338 1339 1584 2140 4 1338 1339 1584 2140 4 1338 1339 1584 2140 4 1338 1339 1584 2140 4 1339 1340 1592 2132 4 1339 1340 1592 2132 4 1339 1340 1592 2132 4 1339 1340 1592 2132 4 1339 1340 1592 2132 4 1339 1340 1592 2132 4 1340 1341 1598 2126 4 1340 1341 1598 2126 4 1340 1341 1598 2126 4 1340 1341 1598 2126 4 1340 1341 1598 2126 4 1340 1341 1598 2126 4 1341 1342 1606 2118 4 1341 1342 1606 2118 4 1341 1342 1606 2118 4 1341 1342 1606 2118 4 1341 1342 1606 2118 4 1341 1342 1606 2118 4 1342 1343 1614 2110 4 1342 1343 1614 2110 4 1342 1343 1614 2110 4 1342 1343 1614 2110 4 1342 1343 1614 2110 4 1342 1343 1614 2110 4 1343 1344 1620 2104 4 1343 1344 1620 2104 4 1343 1344 1620 2104 4 1343 1344 1620 2104 4 1343 1344 1620 2104 4 1343 1344 1620 2104 4 1344 1345 1630 2094 4 1344 1345 1630 2094 4 1344 1345 1630 2094 4 1344 1345 1630 2094 4 1344 1345 1630 2094 4 1344 1345 1630 2094 4 1345 1346 1638 2086 4 1345 1346 1638 2086 4 1345 1346 1638 2086 4 1345 1346 1638 2086 4 1345 1346 1638 2086 4 1345 1346 1638 2086 4 1346 1347 1644 2080 4 1346 1347 1644 2080 4 1346 1347 1644 2080 4 1346 1347 1644 2080 4 1346 1347 1644 2080 4 1346 1347 1644 2080 4 1347 1348 1652 2072 4 1347 1348 1652 2072 4 1347 1348 1652 2072 4 1347 1348 1652 2072 4 1347 1348 1652 2072 4 1347 1348 1652 2072 4 1348 1349 1660 2064 4 1348 1349 1660 2064 4 1348 1349 1660 2064 4 1348 1349 1660 2064 4 1348 1349 1660 2064 4 1348 1349 1660 2064 4 1349 1350 1666 2058 4 1349 1350 1666 2058 4 1349 1350 1666 2058 4 1349 1350 1666 2058 4 1349 1350 1666 2058 4 1349 1350 1666 2058 4 1350 1351 1676 2048 4 1350 1351 1676 2048 4 1350 1351 1676 2048 4 1350 1351 1676 2048 4 1350 1351 1676 2048 4 1350 1351 1676 2048 4 1351 1352 1684 2040 4 1351 1352 1684 2040 4 1351 1352 1684 2040 4 1351 1352 1684 2040 4 1351 1352 1684 2040 4 1351 1352 1684 2040 4 1352 1353 1690 2034 4 1352 1353 1690 2034 4 1352 1353 1690 2034 4 1352 1353 1690 2034 4 1352 1353 1690 2034 4 1352 1353 1690 2034 4 1353 1354 1700 2024 4 1353 1354 1700 2024 4 1353 1354 1700 2024 4 1353 1354 1700 2024 4 1353 1354 1700 2024 4 1353 1354 1700 2024 4 1354 1355 1710 2014 4 1354 1355 1710 2014 4 1354 1355 1710 2014 4 1354 1355 1710 2014 4 1354 1355 1710 2014 4 1354 1355 1710 2014 3 1356 1468 2256 3 1356 1468 2256 3 1356 1468 2256 3 1356 1468 2256 3 1356 1468 2256 3 1356 1468 2256 3 1356 1460 2264 3 1356 1460 2264 3 1356 1460 2264 3 1356 1460 2264 3 1356 1460 2264 3 1356 1460 2264 3 1357 1492 2232 3 1357 1492 2232 3 1357 1492 2232 3 1357 1492 2232 3 1357 1492 2232 3 1357 1492 2232 3 1357 1482 2242 3 1357 1482 2242 3 1357 1482 2242 3 1357 1482 2242 3 1357 1482 2242 3 1357 1482 2242 3 1358 1516 2208 3 1358 1516 2208 3 1358 1516 2208 3 1358 1516 2208 3 1358 1516 2208 3 1358 1516 2208 3 1358 1508 2216 3 1358 1508 2216 3 1358 1508 2216 3 1358 1508 2216 3 1358 1508 2216 3 1358 1508 2216 3 1359 1540 2184 3 1359 1540 2184 3 1359 1540 2184 3 1359 1540 2184 3 1359 1540 2184 3 1359 1540 2184 3 1359 1530 2194 3 1359 1530 2194 3 1359 1530 2194 3 1359 1530 2194 3 1359 1530 2194 3 1359 1530 2194 3 1360 1562 2162 3 1360 1562 2162 3 1360 1562 2162 3 1360 1562 2162 3 1360 1562 2162 3 1360 1562 2162 3 1360 1554 2170 3 1360 1554 2170 3 1360 1554 2170 3 1360 1554 2170 3 1360 1554 2170 3 1360 1554 2170 3 1361 1586 2138 3 1361 1586 2138 3 1361 1586 2138 3 1361 1586 2138 3 1361 1586 2138 3 1361 1586 2138 3 1361 1576 2148 3 1361 1576 2148 3 1361 1576 2148 3 1361 1576 2148 3 1361 1576 2148 3 1361 1576 2148 3 1362 1608 2116 3 1362 1608 2116 3 1362 1608 2116 3 1362 1608 2116 3 1362 1608 2116 3 1362 1608 2116 3 1362 1600 2124 3 1362 1600 2124 3 1362 1600 2124 3 1362 1600 2124 3 1362 1600 2124 3 1362 1600 2124 3 1363 1632 2092 3 1363 1632 2092 3 1363 1632 2092 3 1363 1632 2092 3 1363 1632 2092 3 1363 1632 2092 3 1363 1622 2102 3 1363 1622 2102 3 1363 1622 2102 3 1363 1622 2102 3 1363 1622 2102 3 1363 1622 2102 3 1364 1654 2070 3 1364 1654 2070 3 1364 1654 2070 3 1364 1654 2070 3 1364 1654 2070 3 1364 1654 2070 3 1364 1646 2078 3 1364 1646 2078 3 1364 1646 2078 3 1364 1646 2078 3 1364 1646 2078 3 1364 1646 2078 3 1365 1678 2046 3 1365 1678 2046 3 1365 1678 2046 3 1365 1678 2046 3 1365 1678 2046 3 1365 1678 2046 3 1365 1668 2056 3 1365 1668 2056 3 1365 1668 2056 3 1365 1668 2056 3 1365 1668 2056 3 1365 1668 2056 3 1366 1702 2022 3 1366 1702 2022 3 1366 1702 2022 3 1366 1702 2022 3 1366 1702 2022 3 1366 1702 2022 3 1366 1692 2032 3 1366 1692 2032 3 1366 1692 2032 3 1366 1692 2032 3 1366 1692 2032 3 1366 1692 2032 1 1367 1 1367 1 1367 1 1367 1 1367 1 1367 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 2 1367 1378 1 1367 1 1367 1 1367 1 1367 1 1367 1 1367 3 1368 1494 2230 3 1368 1494 2230 3 1368 1494 2230 3 1368 1494 2230 3 1368 1494 2230 3 1368 1494 2230 3 1368 1484 2240 3 1368 1484 2240 3 1368 1484 2240 3 1368 1484 2240 3 1368 1484 2240 3 1368 1484 2240 1 1369 1 1369 1 1369 1 1369 1 1369 1 1369 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 2 1369 1380 1 1369 1 1369 1 1369 1 1369 1 1369 1 1369 1 1370 1 1370 1 1370 1 1370 1 1370 1 1370 2 1370 1381 2 1370 1381 2 1370 1381 2 1370 1381 2 1370 1381 2 1370 1381 6 1370 1381 1532 1534 2190 2192 6 1370 1381 1532 1534 2190 2192 6 1370 1381 1532 1534 2190 2192 6 1370 1381 1532 1534 2190 2192 6 1370 1381 1532 1534 2190 2192 6 1370 1381 1532 1534 2190 2192 2 1370 1381 2 1370 1381 2 1370 1381 2 1370 1381 2 1370 1381 2 1370 1381 3 1370 1532 2192 3 1370 1532 2192 3 1370 1532 2192 3 1370 1532 2192 3 1370 1532 2192 3 1370 1532 2192 1 1371 1 1371 1 1371 1 1371 1 1371 1 1371 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 2 1371 1382 1 1371 1 1371 1 1371 1 1371 1 1371 1 1371 1 1372 1 1372 1 1372 1 1372 1 1372 1 1372 2 1372 1383 2 1372 1383 2 1372 1383 2 1372 1383 2 1372 1383 2 1372 1383 6 1372 1383 1578 1580 2144 2146 6 1372 1383 1578 1580 2144 2146 6 1372 1383 1578 1580 2144 2146 6 1372 1383 1578 1580 2144 2146 6 1372 1383 1578 1580 2144 2146 6 1372 1383 1578 1580 2144 2146 2 1372 1383 2 1372 1383 2 1372 1383 2 1372 1383 2 1372 1383 2 1372 1383 3 1372 1578 2146 3 1372 1578 2146 3 1372 1578 2146 3 1372 1578 2146 3 1372 1578 2146 3 1372 1578 2146 1 1373 1 1373 1 1373 1 1373 1 1373 1 1373 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 2 1373 1384 1 1373 1 1373 1 1373 1 1373 1 1373 1 1373 1 1374 1 1374 1 1374 1 1374 1 1374 1 1374 2 1374 1385 2 1374 1385 2 1374 1385 2 1374 1385 2 1374 1385 2 1374 1385 6 1374 1385 1624 1626 2098 2100 6 1374 1385 1624 1626 2098 2100 6 1374 1385 1624 1626 2098 2100 6 1374 1385 1624 1626 2098 2100 6 1374 1385 1624 1626 2098 2100 6 1374 1385 1624 1626 2098 2100 2 1374 1385 2 1374 1385 2 1374 1385 2 1374 1385 2 1374 1385 2 1374 1385 3 1374 1624 2100 3 1374 1624 2100 3 1374 1624 2100 3 1374 1624 2100 3 1374 1624 2100 3 1374 1624 2100 1 1375 1 1375 1 1375 1 1375 1 1375 1 1375 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 2 1375 1386 1 1375 1 1375 1 1375 1 1375 1 1375 1 1375 1 1376 1 1376 1 1376 1 1376 1 1376 1 1376 2 1376 1387 2 1376 1387 2 1376 1387 2 1376 1387 2 1376 1387 2 1376 1387 6 1376 1387 1670 1672 2052 2054 6 1376 1387 1670 1672 2052 2054 6 1376 1387 1670 1672 2052 2054 6 1376 1387 1670 1672 2052 2054 6 1376 1387 1670 1672 2052 2054 6 1376 1387 1670 1672 2052 2054 2 1376 1387 2 1376 1387 2 1376 1387 2 1376 1387 2 1376 1387 2 1376 1387 3 1376 1670 2054 3 1376 1670 2054 3 1376 1670 2054 3 1376 1670 2054 3 1376 1670 2054 3 1376 1670 2054 3 1377 1704 2020 3 1377 1704 2020 3 1377 1704 2020 3 1377 1704 2020 3 1377 1704 2020 3 1377 1704 2020 3 1377 1694 2030 3 1377 1694 2030 3 1377 1694 2030 3 1377 1694 2030 3 1377 1694 2030 3 1377 1694 2030 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 1 1378 3 1379 1496 2228 3 1379 1496 2228 3 1379 1496 2228 3 1379 1496 2228 3 1379 1496 2228 3 1379 1496 2228 3 1379 1486 2238 3 1379 1486 2238 3 1379 1486 2238 3 1379 1486 2238 3 1379 1486 2238 3 1379 1486 2238 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1380 1 1381 1 1381 1 1381 1 1381 1 1381 1 1381 3 1381 1534 2190 3 1381 1534 2190 3 1381 1534 2190 3 1381 1534 2190 3 1381 1534 2190 3 1381 1534 2190 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1382 1 1383 1 1383 1 1383 1 1383 1 1383 1 1383 3 1383 1580 2144 3 1383 1580 2144 3 1383 1580 2144 3 1383 1580 2144 3 1383 1580 2144 3 1383 1580 2144 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1384 1 1385 1 1385 1 1385 1 1385 1 1385 1 1385 3 1385 1626 2098 3 1385 1626 2098 3 1385 1626 2098 3 1385 1626 2098 3 1385 1626 2098 3 1385 1626 2098 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1386 1 1387 1 1387 1 1387 1 1387 1 1387 1 1387 3 1387 1672 2052 3 1387 1672 2052 3 1387 1672 2052 3 1387 1672 2052 3 1387 1672 2052 3 1387 1672 2052 3 1388 1706 2018 3 1388 1706 2018 3 1388 1706 2018 3 1388 1706 2018 3 1388 1706 2018 3 1388 1706 2018 3 1388 1696 2028 3 1388 1696 2028 3 1388 1696 2028 3 1388 1696 2028 3 1388 1696 2028 3 1388 1696 2028 3 1389 1472 2252 3 1389 1472 2252 3 1389 1472 2252 3 1389 1472 2252 3 1389 1472 2252 3 1389 1472 2252 3 1389 1464 2260 3 1389 1464 2260 3 1389 1464 2260 3 1389 1464 2260 3 1389 1464 2260 3 1389 1464 2260 3 1390 1498 2226 3 1390 1498 2226 3 1390 1498 2226 3 1390 1498 2226 3 1390 1498 2226 3 1390 1498 2226 3 1390 1488 2236 3 1390 1488 2236 3 1390 1488 2236 3 1390 1488 2236 3 1390 1488 2236 3 1390 1488 2236 3 1391 1520 2204 3 1391 1520 2204 3 1391 1520 2204 3 1391 1520 2204 3 1391 1520 2204 3 1391 1520 2204 3 1391 1512 2212 3 1391 1512 2212 3 1391 1512 2212 3 1391 1512 2212 3 1391 1512 2212 3 1391 1512 2212 3 1392 1544 2180 3 1392 1544 2180 3 1392 1544 2180 3 1392 1544 2180 3 1392 1544 2180 3 1392 1544 2180 3 1392 1536 2188 3 1392 1536 2188 3 1392 1536 2188 3 1392 1536 2188 3 1392 1536 2188 3 1392 1536 2188 3 1393 1566 2158 3 1393 1566 2158 3 1393 1566 2158 3 1393 1566 2158 3 1393 1566 2158 3 1393 1566 2158 3 1393 1558 2166 3 1393 1558 2166 3 1393 1558 2166 3 1393 1558 2166 3 1393 1558 2166 3 1393 1558 2166 3 1394 1590 2134 3 1394 1590 2134 3 1394 1590 2134 3 1394 1590 2134 3 1394 1590 2134 3 1394 1590 2134 3 1394 1582 2142 3 1394 1582 2142 3 1394 1582 2142 3 1394 1582 2142 3 1394 1582 2142 3 1394 1582 2142 3 1395 1612 2112 3 1395 1612 2112 3 1395 1612 2112 3 1395 1612 2112 3 1395 1612 2112 3 1395 1612 2112 3 1395 1604 2120 3 1395 1604 2120 3 1395 1604 2120 3 1395 1604 2120 3 1395 1604 2120 3 1395 1604 2120 3 1396 1636 2088 3 1396 1636 2088 3 1396 1636 2088 3 1396 1636 2088 3 1396 1636 2088 3 1396 1636 2088 3 1396 1628 2096 3 1396 1628 2096 3 1396 1628 2096 3 1396 1628 2096 3 1396 1628 2096 3 1396 1628 2096 3 1397 1658 2066 3 1397 1658 2066 3 1397 1658 2066 3 1397 1658 2066 3 1397 1658 2066 3 1397 1658 2066 3 1397 1650 2074 3 1397 1650 2074 3 1397 1650 2074 3 1397 1650 2074 3 1397 1650 2074 3 1397 1650 2074 3 1398 1682 2042 3 1398 1682 2042 3 1398 1682 2042 3 1398 1682 2042 3 1398 1682 2042 3 1398 1682 2042 3 1398 1674 2050 3 1398 1674 2050 3 1398 1674 2050 3 1398 1674 2050 3 1398 1674 2050 3 1398 1674 2050 3 1399 1708 2016 3 1399 1708 2016 3 1399 1708 2016 3 1399 1708 2016 3 1399 1708 2016 3 1399 1708 2016 3 1399 1698 2026 3 1399 1698 2026 3 1399 1698 2026 3 1399 1698 2026 3 1399 1698 2026 3 1399 1698 2026 2 1402 2322 2 1402 2322 2 1402 2322 2 1402 2322 2 1402 2322 2 1402 2322 2 1406 2318 2 1406 2318 2 1406 2318 2 1406 2318 2 1406 2318 2 1406 2318 4 1446 1851 1884 2278 4 1446 1851 1884 2278 4 1446 1851 1884 2278 4 1446 1851 1884 2278 4 1446 1851 1884 2278 4 1446 1851 1884 2278 2 1446 1851 2 1446 1851 2 1446 1851 2 1446 1851 2 1446 1851 2 1446 1851 2 1446 2278 2 1446 2278 2 1446 2278 2 1446 2278 2 1446 2278 2 1446 2278 4 1450 1861 1874 2274 4 1450 1861 1874 2274 4 1450 1861 1874 2274 4 1450 1861 1874 2274 4 1450 1861 1874 2274 4 1450 1861 1874 2274 2 1450 1861 2 1450 1861 2 1450 1861 2 1450 1861 2 1450 1861 2 1450 1861 6 1450 1760 1866 1869 1964 2274 6 1450 1760 1866 1869 1964 2274 6 1450 1760 1866 1869 1964 2274 6 1450 1760 1866 1869 1964 2274 6 1450 1760 1866 1869 1964 2274 6 1450 1760 1866 1869 1964 2274 3 1450 1760 1866 3 1450 1760 1866 3 1450 1760 1866 3 1450 1760 1866 3 1450 1760 1866 3 1450 1760 1866 2 1450 2274 2 1450 2274 2 1450 2274 2 1450 2274 2 1450 2274 2 1450 2274 2 1532 1534 2 1532 1534 2 1532 1534 2 1532 1534 2 1532 1534 2 1532 1534 2 1578 1580 2 1578 1580 2 1578 1580 2 1578 1580 2 1578 1580 2 1578 1580 2 1624 1626 2 1624 1626 2 1624 1626 2 1624 1626 2 1624 1626 2 1624 1626 2 1670 1672 2 1670 1672 2 1670 1672 2 1670 1672 2 1670 1672 2 1670 1672 3 1716 1717 1759 3 1716 1717 1759 3 1716 1717 1759 3 1716 1717 1759 3 1716 1717 1759 3 1716 1717 1759 2 1717 1718 2 1717 1718 2 1717 1718 2 1717 1718 2 1717 1718 2 1717 1718 2 1718 1719 2 1718 1719 2 1718 1719 2 1718 1719 2 1718 1719 2 1718 1719 2 1719 1720 2 1719 1720 2 1719 1720 2 1719 1720 2 1719 1720 2 1719 1720 2 1720 1721 2 1720 1721 2 1720 1721 2 1720 1721 2 1720 1721 2 1720 1721 2 1721 1722 2 1721 1722 2 1721 1722 2 1721 1722 2 1721 1722 2 1721 1722 2 1722 1723 2 1722 1723 2 1722 1723 2 1722 1723 2 1722 1723 2 1722 1723 3 1723 1724 1760 3 1723 1724 1760 3 1723 1724 1760 3 1723 1724 1760 3 1723 1724 1760 3 1723 1724 1760 2 1724 1725 2 1724 1725 2 1724 1725 2 1724 1725 2 1724 1725 2 1724 1725 3 1725 1726 1761 3 1725 1726 1761 3 1725 1726 1761 3 1725 1726 1761 3 1725 1726 1761 3 1725 1726 1761 3 1726 1727 1762 3 1726 1727 1762 3 1726 1727 1762 3 1726 1727 1762 3 1726 1727 1762 3 1726 1727 1762 2 1727 1728 2 1727 1728 2 1727 1728 2 1727 1728 2 1727 1728 2 1727 1728 3 1728 1729 1763 3 1728 1729 1763 3 1728 1729 1763 3 1728 1729 1763 3 1728 1729 1763 3 1728 1729 1763 3 1729 1730 1764 3 1729 1730 1764 3 1729 1730 1764 3 1729 1730 1764 3 1729 1730 1764 3 1729 1730 1764 2 1730 1731 2 1730 1731 2 1730 1731 2 1730 1731 2 1730 1731 2 1730 1731 3 1731 1732 1765 3 1731 1732 1765 3 1731 1732 1765 3 1731 1732 1765 3 1731 1732 1765 3 1731 1732 1765 3 1732 1733 1766 3 1732 1733 1766 3 1732 1733 1766 3 1732 1733 1766 3 1732 1733 1766 3 1732 1733 1766 2 1733 1734 2 1733 1734 2 1733 1734 2 1733 1734 2 1733 1734 2 1733 1734 3 1734 1735 1767 3 1734 1735 1767 3 1734 1735 1767 3 1734 1735 1767 3 1734 1735 1767 3 1734 1735 1767 3 1735 1736 1768 3 1735 1736 1768 3 1735 1736 1768 3 1735 1736 1768 3 1735 1736 1768 3 1735 1736 1768 2 1736 1737 2 1736 1737 2 1736 1737 2 1736 1737 2 1736 1737 2 1736 1737 3 1737 1738 1769 3 1737 1738 1769 3 1737 1738 1769 3 1737 1738 1769 3 1737 1738 1769 3 1737 1738 1769 3 1738 1739 1770 3 1738 1739 1770 3 1738 1739 1770 3 1738 1739 1770 3 1738 1739 1770 3 1738 1739 1770 2 1739 1740 2 1739 1740 2 1739 1740 2 1739 1740 2 1739 1740 2 1739 1740 3 1740 1741 1771 3 1740 1741 1771 3 1740 1741 1771 3 1740 1741 1771 3 1740 1741 1771 3 1740 1741 1771 3 1741 1742 1772 3 1741 1742 1772 3 1741 1742 1772 3 1741 1742 1772 3 1741 1742 1772 3 1741 1742 1772 2 1742 1743 2 1742 1743 2 1742 1743 2 1742 1743 2 1742 1743 2 1742 1743 3 1743 1744 1773 3 1743 1744 1773 3 1743 1744 1773 3 1743 1744 1773 3 1743 1744 1773 3 1743 1744 1773 3 1744 1745 1774 3 1744 1745 1774 3 1744 1745 1774 3 1744 1745 1774 3 1744 1745 1774 3 1744 1745 1774 2 1745 1746 2 1745 1746 2 1745 1746 2 1745 1746 2 1745 1746 2 1745 1746 3 1746 1747 1775 3 1746 1747 1775 3 1746 1747 1775 3 1746 1747 1775 3 1746 1747 1775 3 1746 1747 1775 3 1747 1748 1776 3 1747 1748 1776 3 1747 1748 1776 3 1747 1748 1776 3 1747 1748 1776 3 1747 1748 1776 2 1748 1749 2 1748 1749 2 1748 1749 2 1748 1749 2 1748 1749 2 1748 1749 3 1749 1750 1777 3 1749 1750 1777 3 1749 1750 1777 3 1749 1750 1777 3 1749 1750 1777 3 1749 1750 1777 3 1750 1751 1778 3 1750 1751 1778 3 1750 1751 1778 3 1750 1751 1778 3 1750 1751 1778 3 1750 1751 1778 2 1751 1752 2 1751 1752 2 1751 1752 2 1751 1752 2 1751 1752 2 1751 1752 3 1752 1753 1779 3 1752 1753 1779 3 1752 1753 1779 3 1752 1753 1779 3 1752 1753 1779 3 1752 1753 1779 3 1753 1754 1780 3 1753 1754 1780 3 1753 1754 1780 3 1753 1754 1780 3 1753 1754 1780 3 1753 1754 1780 2 1754 1755 2 1754 1755 2 1754 1755 2 1754 1755 2 1754 1755 2 1754 1755 3 1755 1756 1781 3 1755 1756 1781 3 1755 1756 1781 3 1755 1756 1781 3 1755 1756 1781 3 1755 1756 1781 3 1756 1757 1782 3 1756 1757 1782 3 1756 1757 1782 3 1756 1757 1782 3 1756 1757 1782 3 1756 1757 1782 2 1757 1758 2 1757 1758 2 1757 1758 2 1757 1758 2 1757 1758 2 1757 1758 2 1758 1783 2 1758 1783 2 1758 1783 2 1758 1783 2 1758 1783 2 1758 1783 2 1759 1965 2 1759 1965 2 1759 1965 2 1759 1965 2 1759 1965 2 1759 1965 2 1760 1964 2 1760 1964 2 1760 1964 2 1760 1964 2 1760 1964 2 1760 1964 2 1761 1963 2 1761 1963 2 1761 1963 2 1761 1963 2 1761 1963 2 1761 1963 2 1762 1962 2 1762 1962 2 1762 1962 2 1762 1962 2 1762 1962 2 1762 1962 2 1763 1961 2 1763 1961 2 1763 1961 2 1763 1961 2 1763 1961 2 1763 1961 2 1764 1960 2 1764 1960 2 1764 1960 2 1764 1960 2 1764 1960 2 1764 1960 2 1765 1959 2 1765 1959 2 1765 1959 2 1765 1959 2 1765 1959 2 1765 1959 2 1766 1958 2 1766 1958 2 1766 1958 2 1766 1958 2 1766 1958 2 1766 1958 2 1767 1957 2 1767 1957 2 1767 1957 2 1767 1957 2 1767 1957 2 1767 1957 2 1768 1956 2 1768 1956 2 1768 1956 2 1768 1956 2 1768 1956 2 1768 1956 2 1769 1955 2 1769 1955 2 1769 1955 2 1769 1955 2 1769 1955 2 1769 1955 2 1770 1954 2 1770 1954 2 1770 1954 2 1770 1954 2 1770 1954 2 1770 1954 2 1771 1953 2 1771 1953 2 1771 1953 2 1771 1953 2 1771 1953 2 1771 1953 2 1772 1952 2 1772 1952 2 1772 1952 2 1772 1952 2 1772 1952 2 1772 1952 2 1773 1951 2 1773 1951 2 1773 1951 2 1773 1951 2 1773 1951 2 1773 1951 2 1774 1950 2 1774 1950 2 1774 1950 2 1774 1950 2 1774 1950 2 1774 1950 2 1775 1949 2 1775 1949 2 1775 1949 2 1775 1949 2 1775 1949 2 1775 1949 2 1776 1948 2 1776 1948 2 1776 1948 2 1776 1948 2 1776 1948 2 1776 1948 2 1777 1947 2 1777 1947 2 1777 1947 2 1777 1947 2 1777 1947 2 1777 1947 2 1778 1946 2 1778 1946 2 1778 1946 2 1778 1946 2 1778 1946 2 1778 1946 2 1779 1945 2 1779 1945 2 1779 1945 2 1779 1945 2 1779 1945 2 1779 1945 2 1780 1944 2 1780 1944 2 1780 1944 2 1780 1944 2 1780 1944 2 1780 1944 2 1781 1943 2 1781 1943 2 1781 1943 2 1781 1943 2 1781 1943 2 1781 1943 2 1782 1942 2 1782 1942 2 1782 1942 2 1782 1942 2 1782 1942 2 1782 1942 2 1783 1941 2 1783 1941 2 1783 1941 2 1783 1941 2 1783 1941 2 1783 1941 1 1783 1 1783 1 1783 1 1783 1 1783 1 1783 2 1783 1941 2 1783 1941 2 1783 1941 2 1783 1941 2 1783 1941 2 1783 1941 8 1784 1791 1800 1823 1825 1924 1933 1940 8 1784 1791 1800 1823 1825 1924 1933 1940 8 1784 1791 1800 1823 1825 1924 1933 1940 4 1784 1823 1825 1940 4 1784 1823 1825 1940 4 1784 1823 1825 1940 12 1784 1786 1808 1810 1823 1824 1825 1826 1914 1916 1938 1940 12 1784 1786 1808 1810 1823 1824 1825 1826 1914 1916 1938 1940 12 1784 1786 1808 1810 1823 1824 1825 1826 1914 1916 1938 1940 4 1784 1786 1808 1810 4 1784 1786 1808 1810 4 1784 1786 1808 1810 4 1784 1786 1808 1810 4 1784 1786 1808 1810 4 1784 1786 1808 1810 12 1784 1785 1786 1787 1808 1809 1810 1811 1834 1835 1836 1837 12 1784 1785 1786 1787 1808 1809 1810 1811 1834 1835 1836 1837 12 1784 1785 1786 1787 1808 1809 1810 1811 1834 1835 1836 1837 8 1784 1785 1791 1797 1800 1802 1834 1836 8 1784 1785 1791 1797 1800 1802 1834 1836 8 1784 1785 1791 1797 1800 1802 1834 1836 4 1784 1785 1834 1836 4 1784 1785 1834 1836 4 1784 1785 1834 1836 3 1784 1791 1800 3 1784 1791 1800 3 1784 1791 1800 3 1784 1791 1800 3 1784 1791 1800 3 1784 1791 1800 4 1785 1787 1809 1811 4 1785 1787 1809 1811 4 1785 1787 1809 1811 4 1785 1787 1809 1811 4 1785 1787 1809 1811 4 1785 1787 1809 1811 7 1785 1787 1809 1811 1845 1846 1847 7 1785 1787 1809 1811 1845 1846 1847 7 1785 1787 1809 1811 1845 1846 1847 5 1785 1797 1802 1845 1847 5 1785 1797 1802 1845 1847 5 1785 1797 1802 1845 1847 3 1785 1845 1847 3 1785 1845 1847 3 1785 1845 1847 3 1785 1797 1802 3 1785 1797 1802 3 1785 1797 1802 3 1785 1797 1802 3 1785 1797 1802 3 1785 1797 1802 4 1786 1824 1826 1938 4 1786 1824 1826 1938 4 1786 1824 1826 1938 8 1786 1816 1818 1824 1826 1906 1908 1938 8 1786 1816 1818 1824 1826 1906 1908 1938 8 1786 1816 1818 1824 1826 1906 1908 1938 3 1786 1816 1818 3 1786 1816 1818 3 1786 1816 1818 3 1786 1816 1818 3 1786 1816 1818 3 1786 1816 1818 7 1786 1787 1816 1817 1818 1835 1837 7 1786 1787 1816 1817 1818 1835 1837 7 1786 1787 1816 1817 1818 1835 1837 4 1786 1787 1835 1837 4 1786 1787 1835 1837 4 1786 1787 1835 1837 2 1787 1817 2 1787 1817 2 1787 1817 2 1787 1817 2 1787 1817 2 1787 1817 3 1787 1817 1846 3 1787 1817 1846 3 1787 1817 1846 3 1787 1817 1846 3 1787 1817 1846 3 1787 1817 1846 2 1787 1846 2 1787 1846 2 1787 1846 2 1787 1846 2 1787 1846 2 1787 1846 8 1788 1791 1803 1825 1827 1921 1933 1936 8 1788 1791 1803 1825 1827 1921 1933 1936 8 1788 1791 1803 1825 1827 1921 1933 1936 4 1788 1825 1827 1936 4 1788 1825 1827 1936 4 1788 1825 1827 1936 12 1788 1790 1810 1812 1825 1826 1827 1828 1912 1914 1934 1936 12 1788 1790 1810 1812 1825 1826 1827 1828 1912 1914 1934 1936 12 1788 1790 1810 1812 1825 1826 1827 1828 1912 1914 1934 1936 4 1788 1790 1810 1812 4 1788 1790 1810 1812 4 1788 1790 1810 1812 4 1788 1790 1810 1812 4 1788 1790 1810 1812 4 1788 1790 1810 1812 10 1788 1789 1790 1810 1811 1812 1836 1837 1838 1839 10 1788 1789 1790 1810 1811 1812 1836 1837 1838 1839 10 1788 1789 1790 1810 1811 1812 1836 1837 1838 1839 7 1788 1789 1791 1802 1803 1836 1838 7 1788 1789 1791 1802 1803 1836 1838 7 1788 1789 1791 1802 1803 1836 1838 4 1788 1789 1836 1838 4 1788 1789 1836 1838 4 1788 1789 1836 1838 3 1788 1791 1803 3 1788 1791 1803 3 1788 1791 1803 3 1788 1791 1803 3 1788 1791 1803 3 1788 1791 1803 2 1789 1811 2 1789 1811 2 1789 1811 2 1789 1811 2 1789 1811 2 1789 1811 3 1789 1811 1847 3 1789 1811 1847 3 1789 1811 1847 3 1789 1802 1847 3 1789 1802 1847 3 1789 1802 1847 2 1789 1847 2 1789 1847 2 1789 1847 2 1789 1802 2 1789 1802 2 1789 1802 2 1789 1802 2 1789 1802 2 1789 1802 4 1790 1826 1828 1934 4 1790 1826 1828 1934 4 1790 1826 1828 1934 8 1790 1818 1819 1826 1828 1905 1906 1934 8 1790 1818 1819 1826 1828 1905 1906 1934 8 1790 1818 1819 1826 1828 1905 1906 1934 3 1790 1818 1819 3 1790 1818 1819 3 1790 1818 1819 3 1790 1818 1819 3 1790 1818 1819 3 1790 1818 1819 5 1790 1818 1819 1837 1839 5 1790 1818 1819 1837 1839 5 1790 1818 1819 1837 1839 3 1790 1837 1839 3 1790 1837 1839 3 1790 1837 1839 3 1791 1802 1836 3 1791 1802 1836 3 1791 1802 1836 3 1791 1825 1933 3 1791 1825 1933 3 1791 1825 1933 8 1792 1803 1804 1827 1829 1920 1921 1932 8 1792 1803 1804 1827 1829 1920 1921 1932 8 1792 1803 1804 1827 1829 1920 1921 1932 4 1792 1827 1829 1932 4 1792 1827 1829 1932 4 1792 1827 1829 1932 12 1792 1793 1812 1813 1827 1828 1829 1830 1911 1912 1931 1932 12 1792 1793 1812 1813 1827 1828 1829 1830 1911 1912 1931 1932 12 1792 1793 1812 1813 1827 1828 1829 1830 1911 1912 1931 1932 4 1792 1793 1812 1813 4 1792 1793 1812 1813 4 1792 1793 1812 1813 4 1792 1793 1812 1813 4 1792 1793 1812 1813 4 1792 1793 1812 1813 8 1792 1793 1812 1813 1838 1839 1840 1841 8 1792 1793 1812 1813 1838 1839 1840 1841 8 1792 1793 1812 1813 1838 1839 1840 1841 5 1792 1803 1804 1838 1840 5 1792 1803 1804 1838 1840 5 1792 1803 1804 1838 1840 3 1792 1838 1840 3 1792 1838 1840 3 1792 1838 1840 3 1792 1803 1804 3 1792 1803 1804 3 1792 1803 1804 3 1792 1803 1804 3 1792 1803 1804 3 1792 1803 1804 4 1793 1828 1830 1931 4 1793 1828 1830 1931 4 1793 1828 1830 1931 8 1793 1819 1820 1828 1830 1904 1905 1931 8 1793 1819 1820 1828 1830 1904 1905 1931 8 1793 1819 1820 1828 1830 1904 1905 1931 3 1793 1819 1820 3 1793 1819 1820 3 1793 1819 1820 3 1793 1819 1820 3 1793 1819 1820 3 1793 1819 1820 5 1793 1819 1820 1839 1841 5 1793 1819 1820 1839 1841 5 1793 1819 1820 1839 1841 3 1793 1839 1841 3 1793 1839 1841 3 1793 1839 1841 8 1794 1804 1805 1829 1831 1919 1920 1930 8 1794 1804 1805 1829 1831 1919 1920 1930 8 1794 1804 1805 1829 1831 1919 1920 1930 4 1794 1829 1831 1930 4 1794 1829 1831 1930 4 1794 1829 1831 1930 12 1794 1795 1813 1814 1829 1830 1831 1832 1910 1911 1929 1930 12 1794 1795 1813 1814 1829 1830 1831 1832 1910 1911 1929 1930 12 1794 1795 1813 1814 1829 1830 1831 1832 1910 1911 1929 1930 4 1794 1795 1813 1814 4 1794 1795 1813 1814 4 1794 1795 1813 1814 4 1794 1795 1813 1814 4 1794 1795 1813 1814 4 1794 1795 1813 1814 9 1794 1795 1806 1813 1814 1840 1841 1842 1843 9 1794 1795 1806 1813 1814 1840 1841 1842 1843 9 1794 1795 1806 1813 1814 1840 1841 1842 1843 5 1794 1804 1805 1840 1842 5 1794 1804 1805 1840 1842 5 1794 1804 1805 1840 1842 3 1794 1840 1842 3 1794 1840 1842 3 1794 1840 1842 3 1794 1804 1805 3 1794 1804 1805 3 1794 1804 1805 3 1794 1804 1805 3 1794 1804 1805 3 1794 1804 1805 4 1795 1830 1832 1929 4 1795 1830 1832 1929 4 1795 1830 1832 1929 8 1795 1820 1821 1830 1832 1903 1904 1929 8 1795 1820 1821 1830 1832 1903 1904 1929 8 1795 1820 1821 1830 1832 1903 1904 1929 3 1795 1820 1821 3 1795 1820 1821 3 1795 1820 1821 3 1795 1820 1821 3 1795 1820 1821 3 1795 1820 1821 6 1795 1807 1820 1821 1841 1843 6 1795 1807 1820 1821 1841 1843 6 1795 1807 1820 1821 1841 1843 3 1795 1841 1843 3 1795 1841 1843 3 1795 1841 1843 5 1796 1805 1831 1919 1928 5 1796 1805 1831 1919 1928 5 1796 1805 1831 1919 1928 3 1796 1831 1928 3 1796 1831 1928 3 1796 1831 1928 11 1796 1798 1814 1815 1831 1832 1833 1909 1910 1926 1928 11 1796 1798 1814 1815 1831 1832 1833 1909 1910 1926 1928 11 1796 1798 1814 1815 1831 1832 1833 1909 1910 1926 1928 4 1796 1798 1814 1815 4 1796 1798 1814 1815 4 1796 1798 1814 1815 4 1796 1798 1814 1815 4 1796 1798 1814 1815 4 1796 1798 1814 1815 9 1796 1798 1799 1806 1814 1815 1842 1843 1844 9 1796 1798 1799 1806 1814 1815 1842 1843 1844 9 1796 1798 1799 1806 1814 1815 1842 1843 1844 3 1796 1805 1842 3 1796 1805 1842 3 1796 1805 1842 2 1796 1842 2 1796 1842 2 1796 1842 2 1796 1805 2 1796 1805 2 1796 1805 2 1796 1805 2 1796 1805 2 1796 1805 2 1797 1845 2 1797 1845 2 1797 1845 2 1797 1845 2 1797 1845 2 1797 1845 3 1797 1800 1834 3 1797 1800 1834 3 1797 1800 1834 3 1797 1800 1834 3 1797 1800 1834 3 1797 1800 1834 4 1798 1832 1833 1926 4 1798 1832 1833 1926 4 1798 1832 1833 1926 8 1798 1821 1822 1832 1833 1902 1903 1926 8 1798 1821 1822 1832 1833 1902 1903 1926 8 1798 1821 1822 1832 1833 1902 1903 1926 3 1798 1821 1822 3 1798 1821 1822 3 1798 1821 1822 3 1798 1821 1822 3 1798 1821 1822 3 1798 1821 1822 7 1798 1799 1807 1821 1822 1843 1844 7 1798 1799 1807 1821 1822 1843 1844 7 1798 1799 1807 1821 1822 1843 1844 4 1798 1799 1843 1844 4 1798 1799 1843 1844 4 1798 1799 1843 1844 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1807 2 1799 1806 2 1799 1806 2 1799 1806 2 1799 1806 2 1799 1806 2 1799 1806 1 1799 1 1799 1 1799 1 1799 1 1799 1 1799 2 1799 1806 2 1799 1806 2 1799 1806 2 1799 1806 2 1799 1806 2 1799 1806 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 1 1800 1 1800 1 1800 1 1800 1 1800 1 1800 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 3 1800 1823 1924 5 1801 1815 1833 1909 1923 5 1801 1815 1833 1909 1923 5 1801 1815 1833 1909 1923 3 1801 1833 1923 3 1801 1833 1923 3 1801 1833 1923 5 1801 1822 1833 1902 1923 5 1801 1822 1833 1902 1923 5 1801 1822 1833 1902 1923 2 1801 1822 2 1801 1822 2 1801 1822 2 1801 1822 2 1801 1822 2 1801 1822 3 1801 1822 1844 3 1801 1822 1844 3 1801 1822 1844 3 1801 1815 1844 3 1801 1815 1844 3 1801 1815 1844 2 1801 1844 2 1801 1844 2 1801 1844 2 1801 1815 2 1801 1815 2 1801 1815 2 1801 1815 2 1801 1815 2 1801 1815 2 1802 1847 2 1802 1847 2 1802 1847 2 1803 1838 2 1803 1838 2 1803 1838 3 1803 1827 1921 3 1803 1827 1921 3 1803 1827 1921 2 1804 1840 2 1804 1840 2 1804 1840 3 1804 1829 1920 3 1804 1829 1920 3 1804 1829 1920 2 1805 1842 2 1805 1842 2 1805 1842 3 1805 1831 1919 3 1805 1831 1919 3 1805 1831 1919 1 1806 1 1806 1 1806 1 1806 1 1806 1 1806 4 1806 1814 1842 1843 4 1806 1814 1842 1843 4 1806 1814 1842 1843 1 1807 1 1807 1 1807 1 1807 1 1807 1 1807 3 1807 1821 1843 3 1807 1821 1843 3 1807 1821 1843 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 1 1808 1 1808 1 1808 1 1808 1 1808 1 1808 4 1808 1809 1834 1835 4 1808 1809 1834 1835 4 1808 1809 1834 1835 4 1808 1809 1834 1835 4 1808 1809 1834 1835 4 1808 1809 1834 1835 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 4 1808 1823 1824 1916 3 1809 1845 1846 3 1809 1845 1846 3 1809 1845 1846 3 1809 1845 1846 3 1809 1845 1846 3 1809 1845 1846 4 1810 1811 1836 1837 4 1810 1811 1836 1837 4 1810 1811 1836 1837 4 1810 1825 1826 1914 4 1810 1825 1826 1914 4 1810 1825 1826 1914 2 1811 1847 2 1811 1847 2 1811 1847 3 1812 1838 1839 3 1812 1838 1839 3 1812 1838 1839 4 1812 1827 1828 1912 4 1812 1827 1828 1912 4 1812 1827 1828 1912 3 1813 1840 1841 3 1813 1840 1841 3 1813 1840 1841 4 1813 1829 1830 1911 4 1813 1829 1830 1911 4 1813 1829 1830 1911 4 1814 1831 1832 1910 4 1814 1831 1832 1910 4 1814 1831 1832 1910 2 1815 1844 2 1815 1844 2 1815 1844 3 1815 1833 1909 3 1815 1833 1909 3 1815 1833 1909 5 1816 1824 1866 1869 1908 5 1816 1824 1866 1869 1908 5 1816 1824 1866 1869 1908 5 1816 1824 1866 1869 1908 5 1816 1824 1866 1869 1908 5 1816 1824 1866 1869 1908 1 1816 1 1816 1 1816 1 1816 1 1816 1 1816 3 1816 1817 1835 3 1816 1817 1835 3 1816 1817 1835 3 1816 1817 1835 3 1816 1817 1835 3 1816 1817 1835 3 1816 1824 1908 3 1816 1824 1908 3 1816 1824 1908 3 1816 1824 1908 3 1816 1824 1908 3 1816 1824 1908 2 1817 1846 2 1817 1846 2 1817 1846 2 1817 1846 2 1817 1846 2 1817 1846 2 1818 1837 2 1818 1837 2 1818 1837 3 1818 1826 1906 3 1818 1826 1906 3 1818 1826 1906 2 1819 1839 2 1819 1839 2 1819 1839 3 1819 1828 1905 3 1819 1828 1905 3 1819 1828 1905 2 1820 1841 2 1820 1841 2 1820 1841 3 1820 1830 1904 3 1820 1830 1904 3 1820 1830 1904 3 1821 1832 1903 3 1821 1832 1903 3 1821 1832 1903 2 1822 1844 2 1822 1844 2 1822 1844 3 1822 1833 1902 3 1822 1833 1902 3 1822 1833 1902 1 1823 1 1823 1 1823 1 1823 1 1823 1 1823 1 1824 1 1824 1 1824 1 1824 1 1824 1 1824 1 1848 1 1848 1 1848 1 1848 1 1848 1 1848 2 1848 1849 2 1848 1849 2 1848 1849 2 1848 1849 2 1848 1849 2 1848 1849 1 1849 1 1849 1 1849 1 1849 1 1849 1 1849 2 1849 1850 2 1849 1850 2 1849 1850 2 1849 1850 2 1849 1850 2 1849 1850 1 1850 1 1850 1 1850 1 1850 1 1850 1 1850 2 1850 1852 2 1850 1852 2 1850 1852 2 1850 1852 2 1850 1852 2 1850 1852 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1884 2 1851 1852 2 1851 1852 2 1851 1852 2 1851 1852 2 1851 1852 2 1851 1852 1 1851 1 1851 1 1851 1 1851 1 1851 1 1851 1 1853 1 1853 1 1853 1 1853 1 1853 1 1853 2 1853 1854 2 1853 1854 2 1853 1854 2 1853 1854 2 1853 1854 2 1853 1854 1 1854 1 1854 1 1854 1 1854 1 1854 1 1854 2 1854 1855 2 1854 1855 2 1854 1855 2 1854 1855 2 1854 1855 2 1854 1855 1 1855 1 1855 1 1855 1 1855 1 1855 1 1855 2 1855 1857 2 1855 1857 2 1855 1857 2 1855 1857 2 1855 1857 2 1855 1857 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 2 1856 1879 1 1856 1 1856 1 1856 1 1856 1 1856 1 1856 2 1856 1857 2 1856 1857 2 1856 1857 2 1856 1857 2 1856 1857 2 1856 1857 1 1856 1 1856 1 1856 1 1856 1 1856 1 1856 1 1858 1 1858 1 1858 1 1858 1 1858 1 1858 2 1858 1859 2 1858 1859 2 1858 1859 2 1858 1859 2 1858 1859 2 1858 1859 1 1859 1 1859 1 1859 1 1859 1 1859 1 1859 2 1859 1860 2 1859 1860 2 1859 1860 2 1859 1860 2 1859 1860 2 1859 1860 1 1860 1 1860 1 1860 1 1860 1 1860 1 1860 2 1860 1862 2 1860 1862 2 1860 1862 2 1860 1862 2 1860 1862 2 1860 1862 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1874 2 1861 1862 2 1861 1862 2 1861 1862 2 1861 1862 2 1861 1862 2 1861 1862 1 1861 1 1861 1 1861 1 1861 1 1861 1 1861 1 1863 1 1863 1 1863 1 1863 1 1863 1 1863 2 1863 1864 2 1863 1864 2 1863 1864 2 1863 1864 2 1863 1864 2 1863 1864 1 1864 1 1864 1 1864 1 1864 1 1864 1 1864 2 1864 1865 2 1864 1865 2 1864 1865 2 1864 1865 2 1864 1865 2 1864 1865 1 1865 1 1865 1 1865 1 1865 1 1865 1 1865 2 1865 1867 2 1865 1867 2 1865 1867 2 1865 1867 2 1865 1867 2 1865 1867 2 1866 1869 2 1866 1869 2 1866 1869 2 1866 1869 2 1866 1869 2 1866 1869 2 1866 1867 2 1866 1867 2 1866 1867 2 1866 1867 2 1866 1867 2 1866 1867 1 1866 1 1866 1 1866 1 1866 1 1866 1 1866 12 1868 1870 1900 1907 1908 2001 2002 2281 2360 2361 3109 3111 12 1868 1870 1900 1907 1908 2001 2002 2281 2360 2361 3109 3111 12 1868 1870 1900 1907 1908 2001 2002 2281 2360 2361 3109 3111 12 1868 1870 1900 1907 1908 2001 2002 2281 2360 2361 3109 3111 12 1868 1870 1900 1907 1908 2001 2002 2281 2360 2361 3109 3111 12 1868 1870 1900 1907 1908 2001 2002 2281 2360 2361 3109 3111 4 1868 2001 2360 3109 4 1868 2001 2360 3109 4 1868 2001 2360 3109 4 1868 2001 2360 3109 4 1868 2001 2360 3109 4 1868 2001 2360 3109 11 1868 1869 1964 2000 2001 2273 2274 2359 2360 3108 3109 11 1868 1869 1964 2000 2001 2273 2274 2359 2360 3108 3109 11 1868 1869 1964 2000 2001 2273 2274 2359 2360 3108 3109 11 1868 1869 1964 2000 2001 2273 2274 2359 2360 3108 3109 11 1868 1869 1964 2000 2001 2273 2274 2359 2360 3108 3109 11 1868 1869 1964 2000 2001 2273 2274 2359 2360 3108 3109 2 1868 1870 2 1868 1870 2 1868 1870 2 1868 1870 2 1868 1870 2 1868 1870 2 1868 1869 2 1868 1869 2 1868 1869 2 1868 1869 2 1868 1869 2 1868 1869 3 1869 1964 2274 3 1869 1964 2274 3 1869 1964 2274 3 1869 1964 2274 3 1869 1964 2274 3 1869 1964 2274 1 1869 1 1869 1 1869 1 1869 1 1869 1 1869 13 1870 1871 1900 1901 1915 1916 2002 2003 2287 2361 2362 3111 3113 13 1870 1871 1900 1901 1915 1916 2002 2003 2287 2361 2362 3111 3113 13 1870 1871 1900 1901 1915 1916 2002 2003 2287 2361 2362 3111 3113 13 1870 1871 1900 1901 1915 1916 2002 2003 2287 2361 2362 3111 3113 13 1870 1871 1900 1901 1915 1916 2002 2003 2287 2361 2362 3111 3113 13 1870 1871 1900 1901 1915 1916 2002 2003 2287 2361 2362 3111 3113 5 1870 1900 2002 2361 3111 5 1870 1900 2002 2361 3111 5 1870 1900 2002 2361 3111 5 1870 1900 2002 2361 3111 5 1870 1900 2002 2361 3111 5 1870 1900 2002 2361 3111 2 1870 1871 2 1870 1871 2 1870 1871 2 1870 1871 2 1870 1871 2 1870 1871 1 1870 1 1870 1 1870 1 1870 1 1870 1 1870 12 1871 1872 1901 1924 1927 2003 2004 2293 2362 2363 3113 3114 12 1871 1872 1901 1924 1927 2003 2004 2293 2362 2363 3113 3114 12 1871 1872 1901 1924 1927 2003 2004 2293 2362 2363 3113 3114 12 1871 1872 1901 1924 1927 2003 2004 2293 2362 2363 3113 3114 12 1871 1872 1901 1924 1927 2003 2004 2293 2362 2363 3113 3114 12 1871 1872 1901 1924 1927 2003 2004 2293 2362 2363 3113 3114 5 1871 1901 2003 2362 3113 5 1871 1901 2003 2362 3113 5 1871 1901 2003 2362 3113 5 1871 1901 2003 2362 3113 5 1871 1901 2003 2362 3113 5 1871 1901 2003 2362 3113 2 1871 1872 2 1871 1872 2 1871 1872 2 1871 1872 2 1871 1872 2 1871 1872 1 1871 1 1871 1 1871 1 1871 1 1871 1 1871 9 1872 2004 2005 2299 2363 2364 3114 3116 3118 9 1872 2004 2005 2299 2363 2364 3114 3116 3118 9 1872 2004 2005 2299 2363 2364 3114 3116 3118 9 1872 2004 2005 2299 2363 2364 3114 3116 3118 9 1872 2004 2005 2299 2363 2364 3114 3116 3118 9 1872 2004 2005 2299 2363 2364 3114 3116 3118 4 1872 2004 2363 3114 4 1872 2004 2363 3114 4 1872 2004 2363 3114 4 1872 2004 2363 3114 4 1872 2004 2363 3114 4 1872 2004 2363 3114 2 1872 3118 2 1872 3118 2 1872 3118 2 1872 3118 2 1872 3118 2 1872 3118 1 1872 1 1872 1 1872 1 1872 1 1872 1 1872 10 1873 1875 2281 2282 2360 2361 2403 2404 3051 3053 10 1873 1875 2281 2282 2360 2361 2403 2404 3051 3053 10 1873 1875 2281 2282 2360 2361 2403 2404 3051 3053 10 1873 1875 2281 2282 2360 2361 2403 2404 3051 3053 10 1873 1875 2281 2282 2360 2361 2403 2404 3051 3053 10 1873 1875 2281 2282 2360 2361 2403 2404 3051 3053 4 1873 2360 2403 3051 4 1873 2360 2403 3051 4 1873 2360 2403 3051 4 1873 2360 2403 3051 4 1873 2360 2403 3051 4 1873 2360 2403 3051 11 1873 1874 2273 2274 2275 2359 2360 2402 2403 3050 3051 11 1873 1874 2273 2274 2275 2359 2360 2402 2403 3050 3051 11 1873 1874 2273 2274 2275 2359 2360 2402 2403 3050 3051 11 1873 1874 2273 2274 2275 2359 2360 2402 2403 3050 3051 11 1873 1874 2273 2274 2275 2359 2360 2402 2403 3050 3051 11 1873 1874 2273 2274 2275 2359 2360 2402 2403 3050 3051 2 1873 1875 2 1873 1875 2 1873 1875 2 1873 1875 2 1873 1875 2 1873 1875 2 1873 1874 2 1873 1874 2 1873 1874 2 1873 1874 2 1873 1874 2 1873 1874 2 1874 2274 2 1874 2274 2 1874 2274 2 1874 2274 2 1874 2274 2 1874 2274 1 1874 1 1874 1 1874 1 1874 1 1874 1 1874 10 1875 1876 2287 2288 2361 2362 2404 2405 3053 3055 10 1875 1876 2287 2288 2361 2362 2404 2405 3053 3055 10 1875 1876 2287 2288 2361 2362 2404 2405 3053 3055 10 1875 1876 2287 2288 2361 2362 2404 2405 3053 3055 10 1875 1876 2287 2288 2361 2362 2404 2405 3053 3055 10 1875 1876 2287 2288 2361 2362 2404 2405 3053 3055 4 1875 2361 2404 3053 4 1875 2361 2404 3053 4 1875 2361 2404 3053 4 1875 2361 2404 3053 4 1875 2361 2404 3053 4 1875 2361 2404 3053 2 1875 1876 2 1875 1876 2 1875 1876 2 1875 1876 2 1875 1876 2 1875 1876 1 1875 1 1875 1 1875 1 1875 1 1875 1 1875 10 1876 1877 2293 2294 2362 2363 2405 2406 3055 3056 10 1876 1877 2293 2294 2362 2363 2405 2406 3055 3056 10 1876 1877 2293 2294 2362 2363 2405 2406 3055 3056 10 1876 1877 2293 2294 2362 2363 2405 2406 3055 3056 10 1876 1877 2293 2294 2362 2363 2405 2406 3055 3056 10 1876 1877 2293 2294 2362 2363 2405 2406 3055 3056 4 1876 2362 2405 3055 4 1876 2362 2405 3055 4 1876 2362 2405 3055 4 1876 2362 2405 3055 4 1876 2362 2405 3055 4 1876 2362 2405 3055 2 1876 1877 2 1876 1877 2 1876 1877 2 1876 1877 2 1876 1877 2 1876 1877 1 1876 1 1876 1 1876 1 1876 1 1876 1 1876 10 1877 2299 2300 2363 2364 2406 2407 3056 3058 3060 10 1877 2299 2300 2363 2364 2406 2407 3056 3058 3060 10 1877 2299 2300 2363 2364 2406 2407 3056 3058 3060 10 1877 2299 2300 2363 2364 2406 2407 3056 3058 3060 10 1877 2299 2300 2363 2364 2406 2407 3056 3058 3060 10 1877 2299 2300 2363 2364 2406 2407 3056 3058 3060 4 1877 2363 2406 3056 4 1877 2363 2406 3056 4 1877 2363 2406 3056 4 1877 2363 2406 3056 4 1877 2363 2406 3056 4 1877 2363 2406 3056 2 1877 3060 2 1877 3060 2 1877 3060 2 1877 3060 2 1877 3060 2 1877 3060 1 1877 1 1877 1 1877 1 1877 1 1877 1 1877 10 1878 1880 2282 2283 2403 2404 2446 2447 2993 2995 10 1878 1880 2282 2283 2403 2404 2446 2447 2993 2995 10 1878 1880 2282 2283 2403 2404 2446 2447 2993 2995 10 1878 1880 2282 2283 2403 2404 2446 2447 2993 2995 10 1878 1880 2282 2283 2403 2404 2446 2447 2993 2995 10 1878 1880 2282 2283 2403 2404 2446 2447 2993 2995 4 1878 2403 2446 2993 4 1878 2403 2446 2993 4 1878 2403 2446 2993 4 1878 2403 2446 2993 4 1878 2403 2446 2993 4 1878 2403 2446 2993 10 1878 1879 2275 2276 2402 2403 2445 2446 2992 2993 10 1878 1879 2275 2276 2402 2403 2445 2446 2992 2993 10 1878 1879 2275 2276 2402 2403 2445 2446 2992 2993 10 1878 1879 2275 2276 2402 2403 2445 2446 2992 2993 10 1878 1879 2275 2276 2402 2403 2445 2446 2992 2993 10 1878 1879 2275 2276 2402 2403 2445 2446 2992 2993 2 1878 1880 2 1878 1880 2 1878 1880 2 1878 1880 2 1878 1880 2 1878 1880 2 1878 1879 2 1878 1879 2 1878 1879 2 1878 1879 2 1878 1879 2 1878 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 1 1879 10 1880 1881 2288 2289 2404 2405 2447 2448 2995 2997 10 1880 1881 2288 2289 2404 2405 2447 2448 2995 2997 10 1880 1881 2288 2289 2404 2405 2447 2448 2995 2997 10 1880 1881 2288 2289 2404 2405 2447 2448 2995 2997 10 1880 1881 2288 2289 2404 2405 2447 2448 2995 2997 10 1880 1881 2288 2289 2404 2405 2447 2448 2995 2997 4 1880 2404 2447 2995 4 1880 2404 2447 2995 4 1880 2404 2447 2995 4 1880 2404 2447 2995 4 1880 2404 2447 2995 4 1880 2404 2447 2995 2 1880 1881 2 1880 1881 2 1880 1881 2 1880 1881 2 1880 1881 2 1880 1881 1 1880 1 1880 1 1880 1 1880 1 1880 1 1880 10 1881 1882 2294 2295 2405 2406 2448 2449 2997 2998 10 1881 1882 2294 2295 2405 2406 2448 2449 2997 2998 10 1881 1882 2294 2295 2405 2406 2448 2449 2997 2998 10 1881 1882 2294 2295 2405 2406 2448 2449 2997 2998 10 1881 1882 2294 2295 2405 2406 2448 2449 2997 2998 10 1881 1882 2294 2295 2405 2406 2448 2449 2997 2998 4 1881 2405 2448 2997 4 1881 2405 2448 2997 4 1881 2405 2448 2997 4 1881 2405 2448 2997 4 1881 2405 2448 2997 4 1881 2405 2448 2997 2 1881 1882 2 1881 1882 2 1881 1882 2 1881 1882 2 1881 1882 2 1881 1882 1 1881 1 1881 1 1881 1 1881 1 1881 1 1881 10 1882 2300 2301 2406 2407 2449 2450 2998 3000 3002 10 1882 2300 2301 2406 2407 2449 2450 2998 3000 3002 10 1882 2300 2301 2406 2407 2449 2450 2998 3000 3002 10 1882 2300 2301 2406 2407 2449 2450 2998 3000 3002 10 1882 2300 2301 2406 2407 2449 2450 2998 3000 3002 10 1882 2300 2301 2406 2407 2449 2450 2998 3000 3002 4 1882 2406 2449 2998 4 1882 2406 2449 2998 4 1882 2406 2449 2998 4 1882 2406 2449 2998 4 1882 2406 2449 2998 4 1882 2406 2449 2998 2 1882 3002 2 1882 3002 2 1882 3002 2 1882 3002 2 1882 3002 2 1882 3002 1 1882 1 1882 1 1882 1 1882 1 1882 1 1882 10 1883 1885 2283 2284 2446 2447 2489 2490 2945 2947 10 1883 1885 2283 2284 2446 2447 2489 2490 2945 2947 10 1883 1885 2283 2284 2446 2447 2489 2490 2945 2947 10 1883 1885 2283 2284 2446 2447 2489 2490 2945 2947 10 1883 1885 2283 2284 2446 2447 2489 2490 2945 2947 10 1883 1885 2283 2284 2446 2447 2489 2490 2945 2947 4 1883 2446 2489 2945 4 1883 2446 2489 2945 4 1883 2446 2489 2945 4 1883 2446 2489 2945 4 1883 2446 2489 2945 4 1883 2446 2489 2945 11 1883 1884 2276 2277 2278 2445 2446 2488 2489 2944 2945 11 1883 1884 2276 2277 2278 2445 2446 2488 2489 2944 2945 11 1883 1884 2276 2277 2278 2445 2446 2488 2489 2944 2945 11 1883 1884 2276 2277 2278 2445 2446 2488 2489 2944 2945 11 1883 1884 2276 2277 2278 2445 2446 2488 2489 2944 2945 11 1883 1884 2276 2277 2278 2445 2446 2488 2489 2944 2945 2 1883 1885 2 1883 1885 2 1883 1885 2 1883 1885 2 1883 1885 2 1883 1885 2 1883 1884 2 1883 1884 2 1883 1884 2 1883 1884 2 1883 1884 2 1883 1884 2 1884 2278 2 1884 2278 2 1884 2278 2 1884 2278 2 1884 2278 2 1884 2278 1 1884 1 1884 1 1884 1 1884 1 1884 1 1884 10 1885 1886 2289 2290 2447 2448 2490 2491 2947 2949 10 1885 1886 2289 2290 2447 2448 2490 2491 2947 2949 10 1885 1886 2289 2290 2447 2448 2490 2491 2947 2949 10 1885 1886 2289 2290 2447 2448 2490 2491 2947 2949 10 1885 1886 2289 2290 2447 2448 2490 2491 2947 2949 10 1885 1886 2289 2290 2447 2448 2490 2491 2947 2949 4 1885 2447 2490 2947 4 1885 2447 2490 2947 4 1885 2447 2490 2947 4 1885 2447 2490 2947 4 1885 2447 2490 2947 4 1885 2447 2490 2947 2 1885 1886 2 1885 1886 2 1885 1886 2 1885 1886 2 1885 1886 2 1885 1886 1 1885 1 1885 1 1885 1 1885 1 1885 1 1885 10 1886 1887 2295 2296 2448 2449 2491 2492 2949 2950 10 1886 1887 2295 2296 2448 2449 2491 2492 2949 2950 10 1886 1887 2295 2296 2448 2449 2491 2492 2949 2950 10 1886 1887 2295 2296 2448 2449 2491 2492 2949 2950 10 1886 1887 2295 2296 2448 2449 2491 2492 2949 2950 10 1886 1887 2295 2296 2448 2449 2491 2492 2949 2950 4 1886 2448 2491 2949 4 1886 2448 2491 2949 4 1886 2448 2491 2949 4 1886 2448 2491 2949 4 1886 2448 2491 2949 4 1886 2448 2491 2949 2 1886 1887 2 1886 1887 2 1886 1887 2 1886 1887 2 1886 1887 2 1886 1887 1 1886 1 1886 1 1886 1 1886 1 1886 1 1886 10 1887 2301 2302 2449 2450 2492 2493 2950 2952 2954 10 1887 2301 2302 2449 2450 2492 2493 2950 2952 2954 10 1887 2301 2302 2449 2450 2492 2493 2950 2952 2954 10 1887 2301 2302 2449 2450 2492 2493 2950 2952 2954 10 1887 2301 2302 2449 2450 2492 2493 2950 2952 2954 10 1887 2301 2302 2449 2450 2492 2493 2950 2952 2954 4 1887 2449 2492 2950 4 1887 2449 2492 2950 4 1887 2449 2492 2950 4 1887 2449 2492 2950 4 1887 2449 2492 2950 4 1887 2449 2492 2950 2 1887 2954 2 1887 2954 2 1887 2954 2 1887 2954 2 1887 2954 2 1887 2954 1 1887 1 1887 1 1887 1 1887 1 1887 1 1887 5 1888 1890 1922 1927 1939 5 1888 1890 1922 1927 1939 5 1888 1890 1922 1927 1939 2 1888 1922 2 1888 1922 2 1888 1922 3 1888 1922 1935 3 1888 1922 1935 3 1888 1922 1935 2 1888 1935 2 1888 1935 2 1888 1935 3 1888 1913 1935 3 1888 1913 1935 3 1888 1913 1935 7 1888 1889 1890 1913 1915 1937 1939 7 1888 1889 1890 1913 1915 1937 1939 7 1888 1889 1890 1913 1915 1937 1939 2 1888 1913 2 1888 1913 2 1888 1913 3 1888 1890 1939 3 1888 1890 1939 3 1888 1890 1939 8 1889 1890 1915 2287 2577 2578 3111 3113 8 1889 1890 1915 2287 2577 2578 3111 3113 8 1889 1890 1915 2287 2577 2578 3111 3113 8 1889 1890 1915 2287 2577 2578 3111 3113 8 1889 1890 1915 2287 2577 2578 3111 3113 8 1889 1890 1915 2287 2577 2578 3111 3113 3 1889 1890 1915 3 1889 1890 1915 3 1889 1890 1915 3 1889 1890 1915 3 1889 1890 1915 3 1889 1890 1915 2 1889 1937 2 1889 1937 2 1889 1937 2 1889 1937 2 1889 1937 2 1889 1937 3 1889 1907 1937 3 1889 1907 1937 3 1889 1907 1937 3 1889 1907 1937 3 1889 1907 1937 3 1889 1907 1937 7 1889 1907 2281 2576 2577 3109 3111 7 1889 1907 2281 2576 2577 3109 3111 7 1889 1907 2281 2576 2577 3109 3111 7 1889 1907 2281 2576 2577 3109 3111 7 1889 1907 2281 2576 2577 3109 3111 7 1889 1907 2281 2576 2577 3109 3111 2 1889 1907 2 1889 1907 2 1889 1907 2 1889 1907 2 1889 1907 2 1889 1907 3 1889 2577 3111 3 1889 2577 3111 3 1889 2577 3111 3 1889 2577 3111 3 1889 2577 3111 3 1889 2577 3111 7 1890 1927 2293 2578 2579 3113 3114 7 1890 1927 2293 2578 2579 3113 3114 7 1890 1927 2293 2578 2579 3113 3114 7 1890 1927 2293 2578 2579 3113 3114 7 1890 1927 2293 2578 2579 3113 3114 7 1890 1927 2293 2578 2579 3113 3114 2 1890 1927 2 1890 1927 2 1890 1927 2 1890 1927 2 1890 1927 2 1890 1927 3 1890 2578 3113 3 1890 2578 3113 3 1890 2578 3113 3 1890 2578 3113 3 1890 2578 3113 3 1890 2578 3113 9 1891 1892 1893 1909 1910 1918 1925 1926 1928 9 1891 1892 1893 1909 1910 1918 1925 1926 1928 9 1891 1892 1893 1909 1910 1918 1925 1926 1928 2 1891 1909 2 1891 1909 2 1891 1909 3 1891 1909 1923 3 1891 1909 1923 3 1891 1909 1923 2 1891 1923 2 1891 1923 2 1891 1923 3 1891 1902 1923 3 1891 1902 1923 3 1891 1902 1923 7 1891 1892 1902 1903 1917 1925 1926 7 1891 1892 1902 1903 1917 1925 1926 7 1891 1892 1902 1903 1917 1925 1926 2 1891 1902 2 1891 1902 2 1891 1902 4 1891 1892 1925 1926 4 1891 1892 1925 1926 4 1891 1892 1925 1926 4 1892 1893 1910 1918 4 1892 1893 1910 1918 4 1892 1893 1910 1918 9 1892 1893 1894 1895 1910 1911 1918 1929 1930 9 1892 1893 1894 1895 1910 1911 1918 1929 1930 9 1892 1893 1894 1895 1910 1911 1918 1929 1930 3 1892 1903 1917 3 1892 1903 1917 3 1892 1903 1917 6 1892 1894 1903 1904 1917 1929 6 1892 1894 1903 1904 1917 1929 6 1892 1894 1903 1904 1917 1929 3 1892 1894 1929 3 1892 1894 1929 3 1892 1894 1929 5 1893 1895 1919 1920 1930 5 1893 1895 1919 1920 1930 5 1893 1895 1919 1920 1930 2 1893 1919 2 1893 1919 2 1893 1919 3 1893 1919 1928 3 1893 1919 1928 3 1893 1919 1928 2 1893 1928 2 1893 1928 2 1893 1928 3 1893 1895 1930 3 1893 1895 1930 3 1893 1895 1930 8 1894 1895 1896 1897 1911 1912 1931 1932 8 1894 1895 1896 1897 1911 1912 1931 1932 8 1894 1895 1896 1897 1911 1912 1931 1932 3 1894 1895 1911 3 1894 1895 1911 3 1894 1895 1911 5 1894 1896 1904 1905 1931 5 1894 1896 1904 1905 1931 5 1894 1896 1904 1905 1931 2 1894 1904 2 1894 1904 2 1894 1904 3 1894 1896 1931 3 1894 1896 1931 3 1894 1896 1931 5 1895 1897 1920 1921 1932 5 1895 1897 1920 1921 1932 5 1895 1897 1920 1921 1932 2 1895 1920 2 1895 1920 2 1895 1920 3 1895 1897 1932 3 1895 1897 1932 3 1895 1897 1932 10 1896 1897 1898 1899 1912 1913 1914 1934 1935 1936 10 1896 1897 1898 1899 1912 1913 1914 1934 1935 1936 10 1896 1897 1898 1899 1912 1913 1914 1934 1935 1936 3 1896 1897 1912 3 1896 1897 1912 3 1896 1897 1912 5 1896 1898 1905 1906 1934 5 1896 1898 1905 1906 1934 5 1896 1898 1905 1906 1934 2 1896 1905 2 1896 1905 2 1896 1905 3 1896 1898 1934 3 1896 1898 1934 3 1896 1898 1934 7 1897 1899 1921 1922 1933 1935 1936 7 1897 1899 1921 1922 1933 1935 1936 7 1897 1899 1921 1922 1933 1935 1936 2 1897 1921 2 1897 1921 2 1897 1921 4 1897 1899 1935 1936 4 1897 1899 1935 1936 4 1897 1899 1935 1936 12 1898 1899 1900 1901 1913 1914 1915 1916 1937 1938 1939 1940 12 1898 1899 1900 1901 1913 1914 1915 1916 1937 1938 1939 1940 12 1898 1899 1900 1901 1913 1914 1915 1916 1937 1938 1939 1940 4 1898 1899 1913 1914 4 1898 1899 1913 1914 4 1898 1899 1913 1914 7 1898 1900 1906 1907 1908 1937 1938 7 1898 1900 1906 1907 1908 1937 1938 7 1898 1900 1906 1907 1908 1937 1938 2 1898 1906 2 1898 1906 2 1898 1906 4 1898 1900 1937 1938 4 1898 1900 1937 1938 4 1898 1900 1937 1938 8 1899 1901 1922 1924 1927 1933 1939 1940 8 1899 1901 1922 1924 1927 1933 1939 1940 8 1899 1901 1922 1924 1927 1933 1939 1940 3 1899 1922 1933 3 1899 1922 1933 3 1899 1922 1933 4 1899 1901 1939 1940 4 1899 1901 1939 1940 4 1899 1901 1939 1940 4 1900 1901 1915 1916 4 1900 1901 1915 1916 4 1900 1901 1915 1916 4 1900 1901 1915 1916 4 1900 1901 1915 1916 4 1900 1901 1915 1916 3 1900 1907 1908 3 1900 1907 1908 3 1900 1907 1908 3 1900 1907 1908 3 1900 1907 1908 3 1900 1907 1908 3 1901 1924 1927 3 1901 1924 1927 3 1901 1924 1927 3 1901 1924 1927 3 1901 1924 1927 3 1901 1924 1927 3 1902 1903 1926 3 1902 1903 1926 3 1902 1903 1926 3 1902 1903 1926 3 1902 1903 1926 3 1902 1903 1926 2 1902 1923 2 1902 1923 2 1902 1923 2 1902 1923 2 1902 1923 2 1902 1923 3 1903 1904 1929 3 1903 1904 1929 3 1903 1904 1929 3 1903 1904 1929 3 1903 1904 1929 3 1903 1904 1929 3 1904 1905 1931 3 1904 1905 1931 3 1904 1905 1931 3 1904 1905 1931 3 1904 1905 1931 3 1904 1905 1931 3 1905 1906 1934 3 1905 1906 1934 3 1905 1906 1934 3 1905 1906 1934 3 1905 1906 1934 3 1905 1906 1934 3 1906 1908 1938 3 1906 1908 1938 3 1906 1908 1938 3 1906 1908 1938 3 1906 1908 1938 3 1906 1908 1938 4 1907 2281 3109 3111 4 1907 2281 3109 3111 4 1907 2281 3109 3111 4 1907 2281 3109 3111 4 1907 2281 3109 3111 4 1907 2281 3109 3111 2 1907 1937 2 1907 1937 2 1907 1937 2 1907 1937 2 1907 1937 2 1907 1937 1 1908 1 1908 1 1908 1 1908 1 1908 1 1908 4 1909 1910 1926 1928 4 1909 1910 1926 1928 4 1909 1910 1926 1928 4 1909 1910 1926 1928 4 1909 1910 1926 1928 4 1909 1910 1926 1928 2 1909 1923 2 1909 1923 2 1909 1923 2 1909 1923 2 1909 1923 2 1909 1923 4 1910 1911 1929 1930 4 1910 1911 1929 1930 4 1910 1911 1929 1930 4 1910 1911 1929 1930 4 1910 1911 1929 1930 4 1910 1911 1929 1930 4 1911 1912 1931 1932 4 1911 1912 1931 1932 4 1911 1912 1931 1932 4 1911 1912 1931 1932 4 1911 1912 1931 1932 4 1911 1912 1931 1932 4 1912 1914 1934 1936 4 1912 1914 1934 1936 4 1912 1914 1934 1936 4 1912 1914 1934 1936 4 1912 1914 1934 1936 4 1912 1914 1934 1936 4 1913 1915 1937 1939 4 1913 1915 1937 1939 4 1913 1915 1937 1939 4 1913 1915 1937 1939 4 1913 1915 1937 1939 4 1913 1915 1937 1939 2 1913 1935 2 1913 1935 2 1913 1935 2 1913 1935 2 1913 1935 2 1913 1935 4 1914 1916 1938 1940 4 1914 1916 1938 1940 4 1914 1916 1938 1940 4 1914 1916 1938 1940 4 1914 1916 1938 1940 4 1914 1916 1938 1940 4 1915 2287 3111 3113 4 1915 2287 3111 3113 4 1915 2287 3111 3113 4 1915 2287 3111 3113 4 1915 2287 3111 3113 4 1915 2287 3111 3113 1 1916 1 1916 1 1916 1 1916 1 1916 1 1916 1 1917 1 1917 1 1917 1 1917 1 1917 1 1917 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 2 1917 1925 1 1918 1 1918 1 1918 1 1918 1 1918 1 1918 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 2 1918 1925 3 1919 1920 1930 3 1919 1920 1930 3 1919 1920 1930 3 1919 1920 1930 3 1919 1920 1930 3 1919 1920 1930 2 1919 1928 2 1919 1928 2 1919 1928 2 1919 1928 2 1919 1928 2 1919 1928 3 1920 1921 1932 3 1920 1921 1932 3 1920 1921 1932 3 1920 1921 1932 3 1920 1921 1932 3 1920 1921 1932 3 1921 1933 1936 3 1921 1933 1936 3 1921 1933 1936 3 1921 1933 1936 3 1921 1933 1936 3 1921 1933 1936 3 1922 1927 1939 3 1922 1927 1939 3 1922 1927 1939 3 1922 1927 1939 3 1922 1927 1939 3 1922 1927 1939 2 1922 1935 2 1922 1935 2 1922 1935 2 1922 1935 2 1922 1935 2 1922 1935 1 1924 1 1924 1 1924 1 1924 1 1924 1 1924 3 1924 1933 1940 3 1924 1933 1940 3 1924 1933 1940 3 1924 1933 1940 3 1924 1933 1940 3 1924 1933 1940 1 1925 1 1925 1 1925 1 1925 1 1925 1 1925 4 1927 2293 3113 3114 4 1927 2293 3113 3114 4 1927 2293 3113 3114 4 1927 2293 3113 3114 4 1927 2293 3113 3114 4 1927 2293 3113 3114 4 1941 3309 3311 3419 4 1941 3309 3311 3419 4 1941 3309 3311 3419 4 1941 3309 3311 3419 4 1941 3309 3311 3419 4 1941 3309 3311 3419 12 1941 1966 2325 3063 3308 3309 3310 3311 3321 3325 3418 3419 12 1941 1966 2325 3063 3308 3309 3310 3311 3321 3325 3418 3419 12 1941 1966 2325 3063 3308 3309 3310 3311 3321 3325 3418 3419 12 1941 1966 2325 3063 3308 3309 3310 3311 3321 3325 3418 3419 12 1941 1966 2325 3063 3308 3309 3310 3311 3321 3325 3418 3419 12 1941 1966 2325 3063 3308 3309 3310 3311 3321 3325 3418 3419 2 1941 1966 2 1941 1966 2 1941 1966 2 1941 1966 2 1941 1966 2 1941 1966 1 1941 1 1941 1 1941 1 1941 1 1941 1 1941 3 1942 2016 3066 3 1942 2016 3066 3 1942 2016 3066 3 1942 2016 3066 3 1942 2016 3066 3 1942 2016 3066 10 1942 1967 1968 2015 2016 2326 2327 3064 3065 3066 10 1942 1967 1968 2015 2016 2326 2327 3064 3065 3066 10 1942 1967 1968 2015 2016 2326 2327 3064 3065 3066 10 1942 1967 1968 2015 2016 2326 2327 3064 3065 3066 10 1942 1967 1968 2015 2016 2326 2327 3064 3065 3066 10 1942 1967 1968 2015 2016 2326 2327 3064 3065 3066 3 1942 1967 1968 3 1942 1967 1968 3 1942 1967 1968 3 1942 1967 1968 3 1942 1967 1968 3 1942 1967 1968 2 1942 2762 2 1942 2762 2 1942 2762 2 1942 2762 2 1942 2762 2 1942 2762 3 1943 2026 3066 3 1943 2026 3066 3 1943 2026 3066 3 1943 2026 3066 3 1943 2026 3066 3 1943 2026 3066 10 1943 1968 1969 2025 2026 2327 2328 3065 3066 3067 10 1943 1968 1969 2025 2026 2327 2328 3065 3066 3067 10 1943 1968 1969 2025 2026 2327 2328 3065 3066 3067 10 1943 1968 1969 2025 2026 2327 2328 3065 3066 3067 10 1943 1968 1969 2025 2026 2327 2328 3065 3066 3067 10 1943 1968 1969 2025 2026 2327 2328 3065 3066 3067 3 1943 1968 1969 3 1943 1968 1969 3 1943 1968 1969 3 1943 1968 1969 3 1943 1968 1969 3 1943 1968 1969 2 1943 2762 2 1943 2762 2 1943 2762 2 1943 2762 2 1943 2762 2 1943 2762 3 1944 2042 3070 3 1944 2042 3070 3 1944 2042 3070 3 1944 2042 3070 3 1944 2042 3070 3 1944 2042 3070 10 1944 1970 1971 2041 2042 2329 2330 3068 3069 3070 10 1944 1970 1971 2041 2042 2329 2330 3068 3069 3070 10 1944 1970 1971 2041 2042 2329 2330 3068 3069 3070 10 1944 1970 1971 2041 2042 2329 2330 3068 3069 3070 10 1944 1970 1971 2041 2042 2329 2330 3068 3069 3070 10 1944 1970 1971 2041 2042 2329 2330 3068 3069 3070 3 1944 1970 1971 3 1944 1970 1971 3 1944 1970 1971 3 1944 1970 1971 3 1944 1970 1971 3 1944 1970 1971 2 1944 2763 2 1944 2763 2 1944 2763 2 1944 2763 2 1944 2763 2 1944 2763 3 1945 2050 3070 3 1945 2050 3070 3 1945 2050 3070 3 1945 2050 3070 3 1945 2050 3070 3 1945 2050 3070 10 1945 1971 1972 2049 2050 2330 2331 3069 3070 3071 10 1945 1971 1972 2049 2050 2330 2331 3069 3070 3071 10 1945 1971 1972 2049 2050 2330 2331 3069 3070 3071 10 1945 1971 1972 2049 2050 2330 2331 3069 3070 3071 10 1945 1971 1972 2049 2050 2330 2331 3069 3070 3071 10 1945 1971 1972 2049 2050 2330 2331 3069 3070 3071 3 1945 1971 1972 3 1945 1971 1972 3 1945 1971 1972 3 1945 1971 1972 3 1945 1971 1972 3 1945 1971 1972 2 1945 2763 2 1945 2763 2 1945 2763 2 1945 2763 2 1945 2763 2 1945 2763 3 1946 2066 3074 3 1946 2066 3074 3 1946 2066 3074 3 1946 2066 3074 3 1946 2066 3074 3 1946 2066 3074 10 1946 1973 1974 2065 2066 2332 2333 3072 3073 3074 10 1946 1973 1974 2065 2066 2332 2333 3072 3073 3074 10 1946 1973 1974 2065 2066 2332 2333 3072 3073 3074 10 1946 1973 1974 2065 2066 2332 2333 3072 3073 3074 10 1946 1973 1974 2065 2066 2332 2333 3072 3073 3074 10 1946 1973 1974 2065 2066 2332 2333 3072 3073 3074 3 1946 1973 1974 3 1946 1973 1974 3 1946 1973 1974 3 1946 1973 1974 3 1946 1973 1974 3 1946 1973 1974 2 1946 2764 2 1946 2764 2 1946 2764 2 1946 2764 2 1946 2764 2 1946 2764 3 1947 2074 3074 3 1947 2074 3074 3 1947 2074 3074 3 1947 2074 3074 3 1947 2074 3074 3 1947 2074 3074 10 1947 1974 1975 2073 2074 2333 2334 3073 3074 3075 10 1947 1974 1975 2073 2074 2333 2334 3073 3074 3075 10 1947 1974 1975 2073 2074 2333 2334 3073 3074 3075 10 1947 1974 1975 2073 2074 2333 2334 3073 3074 3075 10 1947 1974 1975 2073 2074 2333 2334 3073 3074 3075 10 1947 1974 1975 2073 2074 2333 2334 3073 3074 3075 3 1947 1974 1975 3 1947 1974 1975 3 1947 1974 1975 3 1947 1974 1975 3 1947 1974 1975 3 1947 1974 1975 2 1947 2764 2 1947 2764 2 1947 2764 2 1947 2764 2 1947 2764 2 1947 2764 3 1948 2088 3078 3 1948 2088 3078 3 1948 2088 3078 3 1948 2088 3078 3 1948 2088 3078 3 1948 2088 3078 10 1948 1976 1977 2087 2088 2335 2336 3076 3077 3078 10 1948 1976 1977 2087 2088 2335 2336 3076 3077 3078 10 1948 1976 1977 2087 2088 2335 2336 3076 3077 3078 10 1948 1976 1977 2087 2088 2335 2336 3076 3077 3078 10 1948 1976 1977 2087 2088 2335 2336 3076 3077 3078 10 1948 1976 1977 2087 2088 2335 2336 3076 3077 3078 3 1948 1976 1977 3 1948 1976 1977 3 1948 1976 1977 3 1948 1976 1977 3 1948 1976 1977 3 1948 1976 1977 2 1948 2765 2 1948 2765 2 1948 2765 2 1948 2765 2 1948 2765 2 1948 2765 3 1949 2096 3078 3 1949 2096 3078 3 1949 2096 3078 3 1949 2096 3078 3 1949 2096 3078 3 1949 2096 3078 10 1949 1977 1978 2095 2096 2336 2337 3077 3078 3079 10 1949 1977 1978 2095 2096 2336 2337 3077 3078 3079 10 1949 1977 1978 2095 2096 2336 2337 3077 3078 3079 10 1949 1977 1978 2095 2096 2336 2337 3077 3078 3079 10 1949 1977 1978 2095 2096 2336 2337 3077 3078 3079 10 1949 1977 1978 2095 2096 2336 2337 3077 3078 3079 3 1949 1977 1978 3 1949 1977 1978 3 1949 1977 1978 3 1949 1977 1978 3 1949 1977 1978 3 1949 1977 1978 2 1949 2765 2 1949 2765 2 1949 2765 2 1949 2765 2 1949 2765 2 1949 2765 3 1950 2112 3082 3 1950 2112 3082 3 1950 2112 3082 3 1950 2112 3082 3 1950 2112 3082 3 1950 2112 3082 10 1950 1979 1980 2111 2112 2338 2339 3080 3081 3082 10 1950 1979 1980 2111 2112 2338 2339 3080 3081 3082 10 1950 1979 1980 2111 2112 2338 2339 3080 3081 3082 10 1950 1979 1980 2111 2112 2338 2339 3080 3081 3082 10 1950 1979 1980 2111 2112 2338 2339 3080 3081 3082 10 1950 1979 1980 2111 2112 2338 2339 3080 3081 3082 3 1950 1979 1980 3 1950 1979 1980 3 1950 1979 1980 3 1950 1979 1980 3 1950 1979 1980 3 1950 1979 1980 2 1950 2766 2 1950 2766 2 1950 2766 2 1950 2766 2 1950 2766 2 1950 2766 3 1951 2120 3082 3 1951 2120 3082 3 1951 2120 3082 3 1951 2120 3082 3 1951 2120 3082 3 1951 2120 3082 10 1951 1980 1981 2119 2120 2339 2340 3081 3082 3083 10 1951 1980 1981 2119 2120 2339 2340 3081 3082 3083 10 1951 1980 1981 2119 2120 2339 2340 3081 3082 3083 10 1951 1980 1981 2119 2120 2339 2340 3081 3082 3083 10 1951 1980 1981 2119 2120 2339 2340 3081 3082 3083 10 1951 1980 1981 2119 2120 2339 2340 3081 3082 3083 3 1951 1980 1981 3 1951 1980 1981 3 1951 1980 1981 3 1951 1980 1981 3 1951 1980 1981 3 1951 1980 1981 2 1951 2766 2 1951 2766 2 1951 2766 2 1951 2766 2 1951 2766 2 1951 2766 3 1952 2134 3086 3 1952 2134 3086 3 1952 2134 3086 3 1952 2134 3086 3 1952 2134 3086 3 1952 2134 3086 10 1952 1982 1983 2133 2134 2341 2342 3084 3085 3086 10 1952 1982 1983 2133 2134 2341 2342 3084 3085 3086 10 1952 1982 1983 2133 2134 2341 2342 3084 3085 3086 10 1952 1982 1983 2133 2134 2341 2342 3084 3085 3086 10 1952 1982 1983 2133 2134 2341 2342 3084 3085 3086 10 1952 1982 1983 2133 2134 2341 2342 3084 3085 3086 3 1952 1982 1983 3 1952 1982 1983 3 1952 1982 1983 3 1952 1982 1983 3 1952 1982 1983 3 1952 1982 1983 2 1952 2767 2 1952 2767 2 1952 2767 2 1952 2767 2 1952 2767 2 1952 2767 3 1953 2142 3086 3 1953 2142 3086 3 1953 2142 3086 3 1953 2142 3086 3 1953 2142 3086 3 1953 2142 3086 10 1953 1983 1984 2141 2142 2342 2343 3085 3086 3087 10 1953 1983 1984 2141 2142 2342 2343 3085 3086 3087 10 1953 1983 1984 2141 2142 2342 2343 3085 3086 3087 10 1953 1983 1984 2141 2142 2342 2343 3085 3086 3087 10 1953 1983 1984 2141 2142 2342 2343 3085 3086 3087 10 1953 1983 1984 2141 2142 2342 2343 3085 3086 3087 3 1953 1983 1984 3 1953 1983 1984 3 1953 1983 1984 3 1953 1983 1984 3 1953 1983 1984 3 1953 1983 1984 2 1953 2767 2 1953 2767 2 1953 2767 2 1953 2767 2 1953 2767 2 1953 2767 3 1954 2158 3090 3 1954 2158 3090 3 1954 2158 3090 3 1954 2158 3090 3 1954 2158 3090 3 1954 2158 3090 10 1954 1985 1986 2157 2158 2344 2345 3088 3089 3090 10 1954 1985 1986 2157 2158 2344 2345 3088 3089 3090 10 1954 1985 1986 2157 2158 2344 2345 3088 3089 3090 10 1954 1985 1986 2157 2158 2344 2345 3088 3089 3090 10 1954 1985 1986 2157 2158 2344 2345 3088 3089 3090 10 1954 1985 1986 2157 2158 2344 2345 3088 3089 3090 3 1954 1985 1986 3 1954 1985 1986 3 1954 1985 1986 3 1954 1985 1986 3 1954 1985 1986 3 1954 1985 1986 2 1954 2768 2 1954 2768 2 1954 2768 2 1954 2768 2 1954 2768 2 1954 2768 3 1955 2166 3090 3 1955 2166 3090 3 1955 2166 3090 3 1955 2166 3090 3 1955 2166 3090 3 1955 2166 3090 10 1955 1986 1987 2165 2166 2345 2346 3089 3090 3091 10 1955 1986 1987 2165 2166 2345 2346 3089 3090 3091 10 1955 1986 1987 2165 2166 2345 2346 3089 3090 3091 10 1955 1986 1987 2165 2166 2345 2346 3089 3090 3091 10 1955 1986 1987 2165 2166 2345 2346 3089 3090 3091 10 1955 1986 1987 2165 2166 2345 2346 3089 3090 3091 3 1955 1986 1987 3 1955 1986 1987 3 1955 1986 1987 3 1955 1986 1987 3 1955 1986 1987 3 1955 1986 1987 2 1955 2768 2 1955 2768 2 1955 2768 2 1955 2768 2 1955 2768 2 1955 2768 3 1956 2180 3094 3 1956 2180 3094 3 1956 2180 3094 3 1956 2180 3094 3 1956 2180 3094 3 1956 2180 3094 10 1956 1988 1989 2179 2180 2347 2348 3092 3093 3094 10 1956 1988 1989 2179 2180 2347 2348 3092 3093 3094 10 1956 1988 1989 2179 2180 2347 2348 3092 3093 3094 10 1956 1988 1989 2179 2180 2347 2348 3092 3093 3094 10 1956 1988 1989 2179 2180 2347 2348 3092 3093 3094 10 1956 1988 1989 2179 2180 2347 2348 3092 3093 3094 3 1956 1988 1989 3 1956 1988 1989 3 1956 1988 1989 3 1956 1988 1989 3 1956 1988 1989 3 1956 1988 1989 2 1956 2769 2 1956 2769 2 1956 2769 2 1956 2769 2 1956 2769 2 1956 2769 3 1957 2188 3094 3 1957 2188 3094 3 1957 2188 3094 3 1957 2188 3094 3 1957 2188 3094 3 1957 2188 3094 10 1957 1989 1990 2187 2188 2348 2349 3093 3094 3095 10 1957 1989 1990 2187 2188 2348 2349 3093 3094 3095 10 1957 1989 1990 2187 2188 2348 2349 3093 3094 3095 10 1957 1989 1990 2187 2188 2348 2349 3093 3094 3095 10 1957 1989 1990 2187 2188 2348 2349 3093 3094 3095 10 1957 1989 1990 2187 2188 2348 2349 3093 3094 3095 3 1957 1989 1990 3 1957 1989 1990 3 1957 1989 1990 3 1957 1989 1990 3 1957 1989 1990 3 1957 1989 1990 2 1957 2769 2 1957 2769 2 1957 2769 2 1957 2769 2 1957 2769 2 1957 2769 3 1958 2204 3098 3 1958 2204 3098 3 1958 2204 3098 3 1958 2204 3098 3 1958 2204 3098 3 1958 2204 3098 10 1958 1991 1992 2203 2204 2350 2351 3096 3097 3098 10 1958 1991 1992 2203 2204 2350 2351 3096 3097 3098 10 1958 1991 1992 2203 2204 2350 2351 3096 3097 3098 10 1958 1991 1992 2203 2204 2350 2351 3096 3097 3098 10 1958 1991 1992 2203 2204 2350 2351 3096 3097 3098 10 1958 1991 1992 2203 2204 2350 2351 3096 3097 3098 3 1958 1991 1992 3 1958 1991 1992 3 1958 1991 1992 3 1958 1991 1992 3 1958 1991 1992 3 1958 1991 1992 2 1958 2770 2 1958 2770 2 1958 2770 2 1958 2770 2 1958 2770 2 1958 2770 3 1959 2212 3098 3 1959 2212 3098 3 1959 2212 3098 3 1959 2212 3098 3 1959 2212 3098 3 1959 2212 3098 10 1959 1992 1993 2211 2212 2351 2352 3097 3098 3099 10 1959 1992 1993 2211 2212 2351 2352 3097 3098 3099 10 1959 1992 1993 2211 2212 2351 2352 3097 3098 3099 10 1959 1992 1993 2211 2212 2351 2352 3097 3098 3099 10 1959 1992 1993 2211 2212 2351 2352 3097 3098 3099 10 1959 1992 1993 2211 2212 2351 2352 3097 3098 3099 3 1959 1992 1993 3 1959 1992 1993 3 1959 1992 1993 3 1959 1992 1993 3 1959 1992 1993 3 1959 1992 1993 2 1959 2770 2 1959 2770 2 1959 2770 2 1959 2770 2 1959 2770 2 1959 2770 3 1960 2226 3102 3 1960 2226 3102 3 1960 2226 3102 3 1960 2226 3102 3 1960 2226 3102 3 1960 2226 3102 10 1960 1994 1995 2225 2226 2353 2354 3100 3101 3102 10 1960 1994 1995 2225 2226 2353 2354 3100 3101 3102 10 1960 1994 1995 2225 2226 2353 2354 3100 3101 3102 10 1960 1994 1995 2225 2226 2353 2354 3100 3101 3102 10 1960 1994 1995 2225 2226 2353 2354 3100 3101 3102 10 1960 1994 1995 2225 2226 2353 2354 3100 3101 3102 3 1960 1994 1995 3 1960 1994 1995 3 1960 1994 1995 3 1960 1994 1995 3 1960 1994 1995 3 1960 1994 1995 2 1960 2771 2 1960 2771 2 1960 2771 2 1960 2771 2 1960 2771 2 1960 2771 3 1961 2236 3102 3 1961 2236 3102 3 1961 2236 3102 3 1961 2236 3102 3 1961 2236 3102 3 1961 2236 3102 10 1961 1995 1996 2235 2236 2354 2355 3101 3102 3103 10 1961 1995 1996 2235 2236 2354 2355 3101 3102 3103 10 1961 1995 1996 2235 2236 2354 2355 3101 3102 3103 10 1961 1995 1996 2235 2236 2354 2355 3101 3102 3103 10 1961 1995 1996 2235 2236 2354 2355 3101 3102 3103 10 1961 1995 1996 2235 2236 2354 2355 3101 3102 3103 3 1961 1995 1996 3 1961 1995 1996 3 1961 1995 1996 3 1961 1995 1996 3 1961 1995 1996 3 1961 1995 1996 2 1961 2771 2 1961 2771 2 1961 2771 2 1961 2771 2 1961 2771 2 1961 2771 3 1962 2252 3106 3 1962 2252 3106 3 1962 2252 3106 3 1962 2252 3106 3 1962 2252 3106 3 1962 2252 3106 10 1962 1997 1998 2251 2252 2356 2357 3104 3105 3106 10 1962 1997 1998 2251 2252 2356 2357 3104 3105 3106 10 1962 1997 1998 2251 2252 2356 2357 3104 3105 3106 10 1962 1997 1998 2251 2252 2356 2357 3104 3105 3106 10 1962 1997 1998 2251 2252 2356 2357 3104 3105 3106 10 1962 1997 1998 2251 2252 2356 2357 3104 3105 3106 3 1962 1997 1998 3 1962 1997 1998 3 1962 1997 1998 3 1962 1997 1998 3 1962 1997 1998 3 1962 1997 1998 2 1962 2772 2 1962 2772 2 1962 2772 2 1962 2772 2 1962 2772 2 1962 2772 3 1963 2260 3106 3 1963 2260 3106 3 1963 2260 3106 3 1963 2260 3106 3 1963 2260 3106 3 1963 2260 3106 10 1963 1998 1999 2259 2260 2357 2358 3105 3106 3107 10 1963 1998 1999 2259 2260 2357 2358 3105 3106 3107 10 1963 1998 1999 2259 2260 2357 2358 3105 3106 3107 10 1963 1998 1999 2259 2260 2357 2358 3105 3106 3107 10 1963 1998 1999 2259 2260 2357 2358 3105 3106 3107 10 1963 1998 1999 2259 2260 2357 2358 3105 3106 3107 3 1963 1998 1999 3 1963 1998 1999 3 1963 1998 1999 3 1963 1998 1999 3 1963 1998 1999 3 1963 1998 1999 2 1963 2772 2 1963 2772 2 1963 2772 2 1963 2772 2 1963 2772 2 1963 2772 3 1964 2000 2001 3 1964 2000 2001 3 1964 2000 2001 3 1964 2000 2001 3 1964 2000 2001 3 1964 2000 2001 2 1964 2773 2 1964 2773 2 1964 2773 2 1964 2773 2 1964 2773 2 1964 2773 3 1965 2318 3110 3 1965 2318 3110 3 1965 2318 3110 3 1965 2318 3110 3 1965 2318 3110 3 1965 2318 3110 11 1965 2007 2008 2317 2318 2366 2367 3110 3112 3119 3120 11 1965 2007 2008 2317 2318 2366 2367 3110 3112 3119 3120 11 1965 2007 2008 2317 2318 2366 2367 3110 3112 3119 3120 11 1965 2007 2008 2317 2318 2366 2367 3110 3112 3119 3120 11 1965 2007 2008 2317 2318 2366 2367 3110 3112 3119 3120 11 1965 2007 2008 2317 2318 2366 2367 3110 3112 3119 3120 3 1965 2007 2008 3 1965 2007 2008 3 1965 2007 2008 3 1965 2007 2008 3 1965 2007 2008 3 1965 2007 2008 2 1965 2774 2 1965 2774 2 1965 2774 2 1965 2774 2 1965 2774 2 1965 2774 7 1966 1967 2009 2325 2326 3063 3064 7 1966 1967 2009 2325 2326 3063 3064 7 1966 1967 2009 2325 2326 3063 3064 7 1966 1967 2009 2325 2326 3063 3064 7 1966 1967 2009 2325 2326 3063 3064 7 1966 1967 2009 2325 2326 3063 3064 3 1966 2325 3063 3 1966 2325 3063 3 1966 2325 3063 3 1966 2325 3063 3 1966 2325 3063 3 1966 2325 3063 2 1966 1967 2 1966 1967 2 1966 1967 2 1966 1967 2 1966 1967 2 1966 1967 3 1967 2326 3064 3 1967 2326 3064 3 1967 2326 3064 3 1967 2326 3064 3 1967 2326 3064 3 1967 2326 3064 4 1968 2327 3065 3066 4 1968 2327 3065 3066 4 1968 2327 3065 3066 4 1968 2327 3065 3066 4 1968 2327 3065 3066 4 1968 2327 3065 3066 7 1969 1970 2035 2328 2329 3067 3068 7 1969 1970 2035 2328 2329 3067 3068 7 1969 1970 2035 2328 2329 3067 3068 7 1969 1970 2035 2328 2329 3067 3068 7 1969 1970 2035 2328 2329 3067 3068 7 1969 1970 2035 2328 2329 3067 3068 3 1969 2328 3067 3 1969 2328 3067 3 1969 2328 3067 3 1969 2328 3067 3 1969 2328 3067 3 1969 2328 3067 2 1969 1970 2 1969 1970 2 1969 1970 2 1969 1970 2 1969 1970 2 1969 1970 3 1970 2329 3068 3 1970 2329 3068 3 1970 2329 3068 3 1970 2329 3068 3 1970 2329 3068 3 1970 2329 3068 4 1971 2330 3069 3070 4 1971 2330 3069 3070 4 1971 2330 3069 3070 4 1971 2330 3069 3070 4 1971 2330 3069 3070 4 1971 2330 3069 3070 7 1972 1973 2059 2331 2332 3071 3072 7 1972 1973 2059 2331 2332 3071 3072 7 1972 1973 2059 2331 2332 3071 3072 7 1972 1973 2059 2331 2332 3071 3072 7 1972 1973 2059 2331 2332 3071 3072 7 1972 1973 2059 2331 2332 3071 3072 3 1972 2331 3071 3 1972 2331 3071 3 1972 2331 3071 3 1972 2331 3071 3 1972 2331 3071 3 1972 2331 3071 2 1972 1973 2 1972 1973 2 1972 1973 2 1972 1973 2 1972 1973 2 1972 1973 3 1973 2332 3072 3 1973 2332 3072 3 1973 2332 3072 3 1973 2332 3072 3 1973 2332 3072 3 1973 2332 3072 4 1974 2333 3073 3074 4 1974 2333 3073 3074 4 1974 2333 3073 3074 4 1974 2333 3073 3074 4 1974 2333 3073 3074 4 1974 2333 3073 3074 7 1975 1976 2081 2334 2335 3075 3076 7 1975 1976 2081 2334 2335 3075 3076 7 1975 1976 2081 2334 2335 3075 3076 7 1975 1976 2081 2334 2335 3075 3076 7 1975 1976 2081 2334 2335 3075 3076 7 1975 1976 2081 2334 2335 3075 3076 3 1975 2334 3075 3 1975 2334 3075 3 1975 2334 3075 3 1975 2334 3075 3 1975 2334 3075 3 1975 2334 3075 2 1975 1976 2 1975 1976 2 1975 1976 2 1975 1976 2 1975 1976 2 1975 1976 3 1976 2335 3076 3 1976 2335 3076 3 1976 2335 3076 3 1976 2335 3076 3 1976 2335 3076 3 1976 2335 3076 4 1977 2336 3077 3078 4 1977 2336 3077 3078 4 1977 2336 3077 3078 4 1977 2336 3077 3078 4 1977 2336 3077 3078 4 1977 2336 3077 3078 7 1978 1979 2105 2337 2338 3079 3080 7 1978 1979 2105 2337 2338 3079 3080 7 1978 1979 2105 2337 2338 3079 3080 7 1978 1979 2105 2337 2338 3079 3080 7 1978 1979 2105 2337 2338 3079 3080 7 1978 1979 2105 2337 2338 3079 3080 3 1978 2337 3079 3 1978 2337 3079 3 1978 2337 3079 3 1978 2337 3079 3 1978 2337 3079 3 1978 2337 3079 2 1978 1979 2 1978 1979 2 1978 1979 2 1978 1979 2 1978 1979 2 1978 1979 3 1979 2338 3080 3 1979 2338 3080 3 1979 2338 3080 3 1979 2338 3080 3 1979 2338 3080 3 1979 2338 3080 4 1980 2339 3081 3082 4 1980 2339 3081 3082 4 1980 2339 3081 3082 4 1980 2339 3081 3082 4 1980 2339 3081 3082 4 1980 2339 3081 3082 7 1981 1982 2127 2340 2341 3083 3084 7 1981 1982 2127 2340 2341 3083 3084 7 1981 1982 2127 2340 2341 3083 3084 7 1981 1982 2127 2340 2341 3083 3084 7 1981 1982 2127 2340 2341 3083 3084 7 1981 1982 2127 2340 2341 3083 3084 3 1981 2340 3083 3 1981 2340 3083 3 1981 2340 3083 3 1981 2340 3083 3 1981 2340 3083 3 1981 2340 3083 2 1981 1982 2 1981 1982 2 1981 1982 2 1981 1982 2 1981 1982 2 1981 1982 3 1982 2341 3084 3 1982 2341 3084 3 1982 2341 3084 3 1982 2341 3084 3 1982 2341 3084 3 1982 2341 3084 4 1983 2342 3085 3086 4 1983 2342 3085 3086 4 1983 2342 3085 3086 4 1983 2342 3085 3086 4 1983 2342 3085 3086 4 1983 2342 3085 3086 7 1984 1985 2151 2343 2344 3087 3088 7 1984 1985 2151 2343 2344 3087 3088 7 1984 1985 2151 2343 2344 3087 3088 7 1984 1985 2151 2343 2344 3087 3088 7 1984 1985 2151 2343 2344 3087 3088 7 1984 1985 2151 2343 2344 3087 3088 3 1984 2343 3087 3 1984 2343 3087 3 1984 2343 3087 3 1984 2343 3087 3 1984 2343 3087 3 1984 2343 3087 2 1984 1985 2 1984 1985 2 1984 1985 2 1984 1985 2 1984 1985 2 1984 1985 3 1985 2344 3088 3 1985 2344 3088 3 1985 2344 3088 3 1985 2344 3088 3 1985 2344 3088 3 1985 2344 3088 4 1986 2345 3089 3090 4 1986 2345 3089 3090 4 1986 2345 3089 3090 4 1986 2345 3089 3090 4 1986 2345 3089 3090 4 1986 2345 3089 3090 7 1987 1988 2173 2346 2347 3091 3092 7 1987 1988 2173 2346 2347 3091 3092 7 1987 1988 2173 2346 2347 3091 3092 7 1987 1988 2173 2346 2347 3091 3092 7 1987 1988 2173 2346 2347 3091 3092 7 1987 1988 2173 2346 2347 3091 3092 3 1987 2346 3091 3 1987 2346 3091 3 1987 2346 3091 3 1987 2346 3091 3 1987 2346 3091 3 1987 2346 3091 2 1987 1988 2 1987 1988 2 1987 1988 2 1987 1988 2 1987 1988 2 1987 1988 3 1988 2347 3092 3 1988 2347 3092 3 1988 2347 3092 3 1988 2347 3092 3 1988 2347 3092 3 1988 2347 3092 4 1989 2348 3093 3094 4 1989 2348 3093 3094 4 1989 2348 3093 3094 4 1989 2348 3093 3094 4 1989 2348 3093 3094 4 1989 2348 3093 3094 7 1990 1991 2197 2349 2350 3095 3096 7 1990 1991 2197 2349 2350 3095 3096 7 1990 1991 2197 2349 2350 3095 3096 7 1990 1991 2197 2349 2350 3095 3096 7 1990 1991 2197 2349 2350 3095 3096 7 1990 1991 2197 2349 2350 3095 3096 3 1990 2349 3095 3 1990 2349 3095 3 1990 2349 3095 3 1990 2349 3095 3 1990 2349 3095 3 1990 2349 3095 2 1990 1991 2 1990 1991 2 1990 1991 2 1990 1991 2 1990 1991 2 1990 1991 3 1991 2350 3096 3 1991 2350 3096 3 1991 2350 3096 3 1991 2350 3096 3 1991 2350 3096 3 1991 2350 3096 4 1992 2351 3097 3098 4 1992 2351 3097 3098 4 1992 2351 3097 3098 4 1992 2351 3097 3098 4 1992 2351 3097 3098 4 1992 2351 3097 3098 7 1993 1994 2219 2352 2353 3099 3100 7 1993 1994 2219 2352 2353 3099 3100 7 1993 1994 2219 2352 2353 3099 3100 7 1993 1994 2219 2352 2353 3099 3100 7 1993 1994 2219 2352 2353 3099 3100 7 1993 1994 2219 2352 2353 3099 3100 3 1993 2352 3099 3 1993 2352 3099 3 1993 2352 3099 3 1993 2352 3099 3 1993 2352 3099 3 1993 2352 3099 2 1993 1994 2 1993 1994 2 1993 1994 2 1993 1994 2 1993 1994 2 1993 1994 3 1994 2353 3100 3 1994 2353 3100 3 1994 2353 3100 3 1994 2353 3100 3 1994 2353 3100 3 1994 2353 3100 4 1995 2354 3101 3102 4 1995 2354 3101 3102 4 1995 2354 3101 3102 4 1995 2354 3101 3102 4 1995 2354 3101 3102 4 1995 2354 3101 3102 7 1996 1997 2245 2355 2356 3103 3104 7 1996 1997 2245 2355 2356 3103 3104 7 1996 1997 2245 2355 2356 3103 3104 7 1996 1997 2245 2355 2356 3103 3104 7 1996 1997 2245 2355 2356 3103 3104 7 1996 1997 2245 2355 2356 3103 3104 3 1996 2355 3103 3 1996 2355 3103 3 1996 2355 3103 3 1996 2355 3103 3 1996 2355 3103 3 1996 2355 3103 2 1996 1997 2 1996 1997 2 1996 1997 2 1996 1997 2 1996 1997 2 1996 1997 3 1997 2356 3104 3 1997 2356 3104 3 1997 2356 3104 3 1997 2356 3104 3 1997 2356 3104 3 1997 2356 3104 4 1998 2357 3105 3106 4 1998 2357 3105 3106 4 1998 2357 3105 3106 4 1998 2357 3105 3106 4 1998 2357 3105 3106 4 1998 2357 3105 3106 7 1999 2000 2267 2358 2359 3107 3108 7 1999 2000 2267 2358 2359 3107 3108 7 1999 2000 2267 2358 2359 3107 3108 7 1999 2000 2267 2358 2359 3107 3108 7 1999 2000 2267 2358 2359 3107 3108 7 1999 2000 2267 2358 2359 3107 3108 3 1999 2358 3107 3 1999 2358 3107 3 1999 2358 3107 3 1999 2358 3107 3 1999 2358 3107 3 1999 2358 3107 2 1999 2000 2 1999 2000 2 1999 2000 2 1999 2000 2 1999 2000 2 1999 2000 3 2000 2359 3108 3 2000 2359 3108 3 2000 2359 3108 3 2000 2359 3108 3 2000 2359 3108 3 2000 2359 3108 2 2001 2002 2 2001 2002 2 2001 2002 2 2001 2002 2 2001 2002 2 2001 2002 2 2002 2003 2 2002 2003 2 2002 2003 2 2002 2003 2 2002 2003 2 2002 2003 2 2003 2004 2 2003 2004 2 2003 2004 2 2003 2004 2 2003 2004 2 2003 2004 2 2004 2005 2 2004 2005 2 2004 2005 2 2004 2005 2 2004 2005 2 2004 2005 9 2005 2006 2305 2364 2365 3115 3116 3117 3118 9 2005 2006 2305 2364 2365 3115 3116 3117 3118 9 2005 2006 2305 2364 2365 3115 3116 3117 3118 9 2005 2006 2305 2364 2365 3115 3116 3117 3118 9 2005 2006 2305 2364 2365 3115 3116 3117 3118 9 2005 2006 2305 2364 2365 3115 3116 3117 3118 4 2005 2364 3116 3118 4 2005 2364 3116 3118 4 2005 2364 3116 3118 4 2005 2364 3116 3118 4 2005 2364 3116 3118 4 2005 2364 3116 3118 2 2005 2006 2 2005 2006 2 2005 2006 2 2005 2006 2 2005 2006 2 2005 2006 9 2006 2007 2311 2365 2366 3112 3115 3117 3119 9 2006 2007 2311 2365 2366 3112 3115 3117 3119 9 2006 2007 2311 2365 2366 3112 3115 3117 3119 9 2006 2007 2311 2365 2366 3112 3115 3117 3119 9 2006 2007 2311 2365 2366 3112 3115 3117 3119 9 2006 2007 2311 2365 2366 3112 3115 3117 3119 4 2006 2365 3115 3117 4 2006 2365 3115 3117 4 2006 2365 3115 3117 4 2006 2365 3115 3117 4 2006 2365 3115 3117 4 2006 2365 3115 3117 2 2006 2007 2 2006 2007 2 2006 2007 2 2006 2007 2 2006 2007 2 2006 2007 4 2007 2366 3112 3119 4 2007 2366 3112 3119 4 2007 2366 3112 3119 4 2007 2366 3112 3119 4 2007 2366 3112 3119 4 2007 2366 3112 3119 7 2008 2367 3120 3125 3130 3164 3243 7 2008 2367 3120 3125 3130 3164 3243 7 2008 2367 3120 3125 3130 3164 3243 7 2008 2367 3120 3125 3130 3164 3243 7 2008 2367 3120 3125 3130 3164 3243 7 2008 2367 3120 3125 3130 3164 3243 3 2008 2367 3120 3 2008 2367 3120 3 2008 2367 3120 3 2008 2367 3120 3 2008 2367 3120 3 2008 2367 3120 2 2008 3125 2 2008 3125 2 2008 3125 2 2008 3125 2 2008 3125 2 2008 3125 8 2009 2010 2325 2326 2368 2369 3005 3006 8 2009 2010 2325 2326 2368 2369 3005 3006 8 2009 2010 2325 2326 2368 2369 3005 3006 8 2009 2010 2325 2326 2368 2369 3005 3006 8 2009 2010 2325 2326 2368 2369 3005 3006 8 2009 2010 2325 2326 2368 2369 3005 3006 4 2009 2010 3005 3006 4 2009 2010 3005 3006 4 2009 2010 3005 3006 4 2009 2010 3005 3006 4 2009 2010 3005 3006 4 2009 2010 3005 3006 8 2009 2010 2541 2542 2584 2585 3005 3006 8 2009 2010 2541 2542 2584 2585 3005 3006 8 2009 2010 2541 2542 2584 2585 3005 3006 8 2009 2010 2541 2542 2584 2585 3005 3006 8 2009 2010 2541 2542 2584 2585 3005 3006 8 2009 2010 2541 2542 2584 2585 3005 3006 3 2009 2541 2542 3 2009 2541 2542 3 2009 2541 2542 3 2009 2541 2542 3 2009 2541 2542 3 2009 2541 2542 6 2009 2540 2541 2542 3063 3064 6 2009 2540 2541 2542 3063 3064 6 2009 2540 2541 2542 3063 3064 6 2009 2540 2541 2542 3063 3064 6 2009 2540 2541 2542 3063 3064 6 2009 2540 2541 2542 3063 3064 3 2009 3063 3064 3 2009 3063 3064 3 2009 3063 3064 3 2009 3063 3064 3 2009 3063 3064 3 2009 3063 3064 3 2009 2325 2326 3 2009 2325 2326 3 2009 2325 2326 3 2009 2325 2326 3 2009 2325 2326 3 2009 2325 2326 8 2010 2011 2368 2369 2411 2412 2956 2957 8 2010 2011 2368 2369 2411 2412 2956 2957 8 2010 2011 2368 2369 2411 2412 2956 2957 8 2010 2011 2368 2369 2411 2412 2956 2957 8 2010 2011 2368 2369 2411 2412 2956 2957 8 2010 2011 2368 2369 2411 2412 2956 2957 4 2010 2011 2956 2957 4 2010 2011 2956 2957 4 2010 2011 2956 2957 4 2010 2011 2956 2957 4 2010 2011 2956 2957 4 2010 2011 2956 2957 8 2010 2011 2584 2585 2627 2628 2956 2957 8 2010 2011 2584 2585 2627 2628 2956 2957 8 2010 2011 2584 2585 2627 2628 2956 2957 8 2010 2011 2584 2585 2627 2628 2956 2957 8 2010 2011 2584 2585 2627 2628 2956 2957 8 2010 2011 2584 2585 2627 2628 2956 2957 3 2010 2584 2585 3 2010 2584 2585 3 2010 2584 2585 3 2010 2584 2585 3 2010 2584 2585 3 2010 2584 2585 3 2010 2368 2369 3 2010 2368 2369 3 2010 2368 2369 3 2010 2368 2369 3 2010 2368 2369 3 2010 2368 2369 8 2011 2012 2411 2412 2454 2455 2756 2900 8 2011 2012 2411 2412 2454 2455 2756 2900 8 2011 2012 2411 2412 2454 2455 2756 2900 8 2011 2012 2411 2412 2454 2455 2756 2900 8 2011 2012 2411 2412 2454 2455 2756 2900 8 2011 2012 2411 2412 2454 2455 2756 2900 4 2011 2012 2756 2900 4 2011 2012 2756 2900 4 2011 2012 2756 2900 4 2011 2012 2756 2900 4 2011 2012 2756 2900 4 2011 2012 2756 2900 8 2011 2012 2627 2628 2670 2671 2756 2900 8 2011 2012 2627 2628 2670 2671 2756 2900 8 2011 2012 2627 2628 2670 2671 2756 2900 8 2011 2012 2627 2628 2670 2671 2756 2900 8 2011 2012 2627 2628 2670 2671 2756 2900 8 2011 2012 2627 2628 2670 2671 2756 2900 3 2011 2627 2628 3 2011 2627 2628 3 2011 2627 2628 3 2011 2627 2628 3 2011 2627 2628 3 2011 2627 2628 3 2011 2411 2412 3 2011 2411 2412 3 2011 2411 2412 3 2011 2411 2412 3 2011 2411 2412 3 2011 2411 2412 11 2012 2013 2014 2454 2455 2497 2498 2757 2758 2818 2819 11 2012 2013 2014 2454 2455 2497 2498 2757 2758 2818 2819 11 2012 2013 2014 2454 2455 2497 2498 2757 2758 2818 2819 11 2012 2013 2014 2454 2455 2497 2498 2757 2758 2818 2819 11 2012 2013 2014 2454 2455 2497 2498 2757 2758 2818 2819 11 2012 2013 2014 2454 2455 2497 2498 2757 2758 2818 2819 4 2012 2013 2757 2818 4 2012 2013 2757 2818 4 2012 2013 2757 2818 4 2012 2013 2757 2818 4 2012 2013 2757 2818 4 2012 2013 2757 2818 8 2012 2013 2670 2671 2713 2714 2757 2818 8 2012 2013 2670 2671 2713 2714 2757 2818 8 2012 2013 2670 2671 2713 2714 2757 2818 8 2012 2013 2670 2671 2713 2714 2757 2818 8 2012 2013 2670 2671 2713 2714 2757 2818 8 2012 2013 2670 2671 2713 2714 2757 2818 3 2012 2670 2671 3 2012 2670 2671 3 2012 2670 2671 3 2012 2670 2671 3 2012 2670 2671 3 2012 2670 2671 3 2012 2454 2455 3 2012 2454 2455 3 2012 2454 2455 3 2012 2454 2455 3 2012 2454 2455 3 2012 2454 2455 8 2013 2014 2497 2498 2713 2714 2775 2776 8 2013 2014 2497 2498 2713 2714 2775 2776 8 2013 2014 2497 2498 2713 2714 2775 2776 8 2013 2014 2497 2498 2713 2714 2775 2776 8 2013 2014 2497 2498 2713 2714 2775 2776 8 2013 2014 2497 2498 2713 2714 2775 2776 3 2013 2713 2714 3 2013 2713 2714 3 2013 2713 2714 3 2013 2713 2714 3 2013 2713 2714 3 2013 2713 2714 4 2013 2014 2497 2498 4 2013 2014 2497 2498 4 2013 2014 2497 2498 4 2013 2014 2497 2498 4 2013 2014 2497 2498 4 2013 2014 2497 2498 3 2014 2775 2776 3 2014 2775 2776 3 2014 2775 2776 3 2014 2775 2776 3 2014 2775 2776 3 2014 2775 2776 3 2014 2758 2819 3 2014 2758 2819 3 2014 2758 2819 3 2014 2758 2819 3 2014 2758 2819 3 2014 2758 2819 11 2015 2016 2017 2018 2326 2327 2369 2370 3006 3007 3008 11 2015 2016 2017 2018 2326 2327 2369 2370 3006 3007 3008 11 2015 2016 2017 2018 2326 2327 2369 2370 3006 3007 3008 11 2015 2016 2017 2018 2326 2327 2369 2370 3006 3007 3008 11 2015 2016 2017 2018 2326 2327 2369 2370 3006 3007 3008 11 2015 2016 2017 2018 2326 2327 2369 2370 3006 3007 3008 4 2015 2017 3006 3007 4 2015 2017 3006 3007 4 2015 2017 3006 3007 4 2015 2017 3006 3007 4 2015 2017 3006 3007 4 2015 2017 3006 3007 8 2015 2017 2542 2543 2585 2586 3006 3007 8 2015 2017 2542 2543 2585 2586 3006 3007 8 2015 2017 2542 2543 2585 2586 3006 3007 8 2015 2017 2542 2543 2585 2586 3006 3007 8 2015 2017 2542 2543 2585 2586 3006 3007 8 2015 2017 2542 2543 2585 2586 3006 3007 3 2015 2542 2543 3 2015 2542 2543 3 2015 2542 2543 3 2015 2542 2543 3 2015 2542 2543 3 2015 2542 2543 5 2015 2542 2543 3064 3065 5 2015 2542 2543 3064 3065 5 2015 2542 2543 3064 3065 5 2015 2542 2543 3064 3065 5 2015 2542 2543 3064 3065 5 2015 2542 2543 3064 3065 3 2015 3064 3065 3 2015 3064 3065 3 2015 3064 3065 3 2015 3064 3065 3 2015 3064 3065 3 2015 3064 3065 4 2015 2016 2326 2327 4 2015 2016 2326 2327 4 2015 2016 2326 2327 4 2015 2016 2326 2327 4 2015 2016 2326 2327 4 2015 2016 2326 2327 3 2016 2018 3008 3 2016 2018 3008 3 2016 2018 3008 3 2016 2018 3008 3 2016 2018 3008 3 2016 2018 3008 11 2017 2018 2019 2020 2369 2370 2412 2413 2957 2958 2959 11 2017 2018 2019 2020 2369 2370 2412 2413 2957 2958 2959 11 2017 2018 2019 2020 2369 2370 2412 2413 2957 2958 2959 11 2017 2018 2019 2020 2369 2370 2412 2413 2957 2958 2959 11 2017 2018 2019 2020 2369 2370 2412 2413 2957 2958 2959 11 2017 2018 2019 2020 2369 2370 2412 2413 2957 2958 2959 4 2017 2019 2957 2958 4 2017 2019 2957 2958 4 2017 2019 2957 2958 4 2017 2019 2957 2958 4 2017 2019 2957 2958 4 2017 2019 2957 2958 8 2017 2019 2585 2586 2628 2629 2957 2958 8 2017 2019 2585 2586 2628 2629 2957 2958 8 2017 2019 2585 2586 2628 2629 2957 2958 8 2017 2019 2585 2586 2628 2629 2957 2958 8 2017 2019 2585 2586 2628 2629 2957 2958 8 2017 2019 2585 2586 2628 2629 2957 2958 3 2017 2585 2586 3 2017 2585 2586 3 2017 2585 2586 3 2017 2585 2586 3 2017 2585 2586 3 2017 2585 2586 4 2017 2018 2369 2370 4 2017 2018 2369 2370 4 2017 2018 2369 2370 4 2017 2018 2369 2370 4 2017 2018 2369 2370 4 2017 2018 2369 2370 3 2018 2020 2959 3 2018 2020 2959 3 2018 2020 2959 3 2018 2020 2959 3 2018 2020 2959 3 2018 2020 2959 11 2019 2020 2021 2022 2412 2413 2455 2456 2900 2901 2902 11 2019 2020 2021 2022 2412 2413 2455 2456 2900 2901 2902 11 2019 2020 2021 2022 2412 2413 2455 2456 2900 2901 2902 11 2019 2020 2021 2022 2412 2413 2455 2456 2900 2901 2902 11 2019 2020 2021 2022 2412 2413 2455 2456 2900 2901 2902 11 2019 2020 2021 2022 2412 2413 2455 2456 2900 2901 2902 4 2019 2021 2900 2901 4 2019 2021 2900 2901 4 2019 2021 2900 2901 4 2019 2021 2900 2901 4 2019 2021 2900 2901 4 2019 2021 2900 2901 8 2019 2021 2628 2629 2671 2672 2900 2901 8 2019 2021 2628 2629 2671 2672 2900 2901 8 2019 2021 2628 2629 2671 2672 2900 2901 8 2019 2021 2628 2629 2671 2672 2900 2901 8 2019 2021 2628 2629 2671 2672 2900 2901 8 2019 2021 2628 2629 2671 2672 2900 2901 3 2019 2628 2629 3 2019 2628 2629 3 2019 2628 2629 3 2019 2628 2629 3 2019 2628 2629 3 2019 2628 2629 4 2019 2020 2412 2413 4 2019 2020 2412 2413 4 2019 2020 2412 2413 4 2019 2020 2412 2413 4 2019 2020 2412 2413 4 2019 2020 2412 2413 3 2020 2022 2902 3 2020 2022 2902 3 2020 2022 2902 3 2020 2022 2902 3 2020 2022 2902 3 2020 2022 2902 12 2021 2022 2023 2024 2455 2456 2498 2499 2818 2819 2820 2821 12 2021 2022 2023 2024 2455 2456 2498 2499 2818 2819 2820 2821 12 2021 2022 2023 2024 2455 2456 2498 2499 2818 2819 2820 2821 12 2021 2022 2023 2024 2455 2456 2498 2499 2818 2819 2820 2821 12 2021 2022 2023 2024 2455 2456 2498 2499 2818 2819 2820 2821 12 2021 2022 2023 2024 2455 2456 2498 2499 2818 2819 2820 2821 4 2021 2023 2818 2820 4 2021 2023 2818 2820 4 2021 2023 2818 2820 4 2021 2023 2818 2820 4 2021 2023 2818 2820 4 2021 2023 2818 2820 8 2021 2023 2671 2672 2714 2715 2818 2820 8 2021 2023 2671 2672 2714 2715 2818 2820 8 2021 2023 2671 2672 2714 2715 2818 2820 8 2021 2023 2671 2672 2714 2715 2818 2820 8 2021 2023 2671 2672 2714 2715 2818 2820 8 2021 2023 2671 2672 2714 2715 2818 2820 3 2021 2671 2672 3 2021 2671 2672 3 2021 2671 2672 3 2021 2671 2672 3 2021 2671 2672 3 2021 2671 2672 4 2021 2022 2455 2456 4 2021 2022 2455 2456 4 2021 2022 2455 2456 4 2021 2022 2455 2456 4 2021 2022 2455 2456 4 2021 2022 2455 2456 4 2022 2024 2819 2821 4 2022 2024 2819 2821 4 2022 2024 2819 2821 4 2022 2024 2819 2821 4 2022 2024 2819 2821 4 2022 2024 2819 2821 8 2023 2024 2498 2499 2714 2715 2776 2777 8 2023 2024 2498 2499 2714 2715 2776 2777 8 2023 2024 2498 2499 2714 2715 2776 2777 8 2023 2024 2498 2499 2714 2715 2776 2777 8 2023 2024 2498 2499 2714 2715 2776 2777 8 2023 2024 2498 2499 2714 2715 2776 2777 3 2023 2714 2715 3 2023 2714 2715 3 2023 2714 2715 3 2023 2714 2715 3 2023 2714 2715 3 2023 2714 2715 4 2023 2024 2498 2499 4 2023 2024 2498 2499 4 2023 2024 2498 2499 4 2023 2024 2498 2499 4 2023 2024 2498 2499 4 2023 2024 2498 2499 3 2024 2776 2777 3 2024 2776 2777 3 2024 2776 2777 3 2024 2776 2777 3 2024 2776 2777 3 2024 2776 2777 11 2025 2026 2027 2028 2327 2328 2370 2371 3007 3008 3009 11 2025 2026 2027 2028 2327 2328 2370 2371 3007 3008 3009 11 2025 2026 2027 2028 2327 2328 2370 2371 3007 3008 3009 11 2025 2026 2027 2028 2327 2328 2370 2371 3007 3008 3009 11 2025 2026 2027 2028 2327 2328 2370 2371 3007 3008 3009 11 2025 2026 2027 2028 2327 2328 2370 2371 3007 3008 3009 4 2025 2027 3007 3009 4 2025 2027 3007 3009 4 2025 2027 3007 3009 4 2025 2027 3007 3009 4 2025 2027 3007 3009 4 2025 2027 3007 3009 8 2025 2027 2543 2544 2586 2587 3007 3009 8 2025 2027 2543 2544 2586 2587 3007 3009 8 2025 2027 2543 2544 2586 2587 3007 3009 8 2025 2027 2543 2544 2586 2587 3007 3009 8 2025 2027 2543 2544 2586 2587 3007 3009 8 2025 2027 2543 2544 2586 2587 3007 3009 3 2025 2543 2544 3 2025 2543 2544 3 2025 2543 2544 3 2025 2543 2544 3 2025 2543 2544 3 2025 2543 2544 5 2025 2543 2544 3065 3067 5 2025 2543 2544 3065 3067 5 2025 2543 2544 3065 3067 5 2025 2543 2544 3065 3067 5 2025 2543 2544 3065 3067 5 2025 2543 2544 3065 3067 3 2025 3065 3067 3 2025 3065 3067 3 2025 3065 3067 3 2025 3065 3067 3 2025 3065 3067 3 2025 3065 3067 4 2025 2026 2327 2328 4 2025 2026 2327 2328 4 2025 2026 2327 2328 4 2025 2026 2327 2328 4 2025 2026 2327 2328 4 2025 2026 2327 2328 3 2026 2028 3008 3 2026 2028 3008 3 2026 2028 3008 3 2026 2028 3008 3 2026 2028 3008 3 2026 2028 3008 11 2027 2028 2029 2030 2370 2371 2413 2414 2958 2959 2960 11 2027 2028 2029 2030 2370 2371 2413 2414 2958 2959 2960 11 2027 2028 2029 2030 2370 2371 2413 2414 2958 2959 2960 11 2027 2028 2029 2030 2370 2371 2413 2414 2958 2959 2960 11 2027 2028 2029 2030 2370 2371 2413 2414 2958 2959 2960 11 2027 2028 2029 2030 2370 2371 2413 2414 2958 2959 2960 4 2027 2029 2958 2960 4 2027 2029 2958 2960 4 2027 2029 2958 2960 4 2027 2029 2958 2960 4 2027 2029 2958 2960 4 2027 2029 2958 2960 8 2027 2029 2586 2587 2629 2630 2958 2960 8 2027 2029 2586 2587 2629 2630 2958 2960 8 2027 2029 2586 2587 2629 2630 2958 2960 8 2027 2029 2586 2587 2629 2630 2958 2960 8 2027 2029 2586 2587 2629 2630 2958 2960 8 2027 2029 2586 2587 2629 2630 2958 2960 3 2027 2586 2587 3 2027 2586 2587 3 2027 2586 2587 3 2027 2586 2587 3 2027 2586 2587 3 2027 2586 2587 4 2027 2028 2370 2371 4 2027 2028 2370 2371 4 2027 2028 2370 2371 4 2027 2028 2370 2371 4 2027 2028 2370 2371 4 2027 2028 2370 2371 3 2028 2030 2959 3 2028 2030 2959 3 2028 2030 2959 3 2028 2030 2959 3 2028 2030 2959 3 2028 2030 2959 11 2029 2030 2031 2032 2413 2414 2456 2457 2901 2902 2903 11 2029 2030 2031 2032 2413 2414 2456 2457 2901 2902 2903 11 2029 2030 2031 2032 2413 2414 2456 2457 2901 2902 2903 11 2029 2030 2031 2032 2413 2414 2456 2457 2901 2902 2903 11 2029 2030 2031 2032 2413 2414 2456 2457 2901 2902 2903 11 2029 2030 2031 2032 2413 2414 2456 2457 2901 2902 2903 4 2029 2031 2901 2903 4 2029 2031 2901 2903 4 2029 2031 2901 2903 4 2029 2031 2901 2903 4 2029 2031 2901 2903 4 2029 2031 2901 2903 8 2029 2031 2629 2630 2672 2673 2901 2903 8 2029 2031 2629 2630 2672 2673 2901 2903 8 2029 2031 2629 2630 2672 2673 2901 2903 8 2029 2031 2629 2630 2672 2673 2901 2903 8 2029 2031 2629 2630 2672 2673 2901 2903 8 2029 2031 2629 2630 2672 2673 2901 2903 3 2029 2629 2630 3 2029 2629 2630 3 2029 2629 2630 3 2029 2629 2630 3 2029 2629 2630 3 2029 2629 2630 4 2029 2030 2413 2414 4 2029 2030 2413 2414 4 2029 2030 2413 2414 4 2029 2030 2413 2414 4 2029 2030 2413 2414 4 2029 2030 2413 2414 3 2030 2032 2902 3 2030 2032 2902 3 2030 2032 2902 3 2030 2032 2902 3 2030 2032 2902 3 2030 2032 2902 12 2031 2032 2033 2034 2456 2457 2499 2500 2820 2821 2822 2823 12 2031 2032 2033 2034 2456 2457 2499 2500 2820 2821 2822 2823 12 2031 2032 2033 2034 2456 2457 2499 2500 2820 2821 2822 2823 12 2031 2032 2033 2034 2456 2457 2499 2500 2820 2821 2822 2823 12 2031 2032 2033 2034 2456 2457 2499 2500 2820 2821 2822 2823 12 2031 2032 2033 2034 2456 2457 2499 2500 2820 2821 2822 2823 4 2031 2033 2820 2822 4 2031 2033 2820 2822 4 2031 2033 2820 2822 4 2031 2033 2820 2822 4 2031 2033 2820 2822 4 2031 2033 2820 2822 8 2031 2033 2672 2673 2715 2716 2820 2822 8 2031 2033 2672 2673 2715 2716 2820 2822 8 2031 2033 2672 2673 2715 2716 2820 2822 8 2031 2033 2672 2673 2715 2716 2820 2822 8 2031 2033 2672 2673 2715 2716 2820 2822 8 2031 2033 2672 2673 2715 2716 2820 2822 3 2031 2672 2673 3 2031 2672 2673 3 2031 2672 2673 3 2031 2672 2673 3 2031 2672 2673 3 2031 2672 2673 4 2031 2032 2456 2457 4 2031 2032 2456 2457 4 2031 2032 2456 2457 4 2031 2032 2456 2457 4 2031 2032 2456 2457 4 2031 2032 2456 2457 4 2032 2034 2821 2823 4 2032 2034 2821 2823 4 2032 2034 2821 2823 4 2032 2034 2821 2823 4 2032 2034 2821 2823 4 2032 2034 2821 2823 8 2033 2034 2499 2500 2715 2716 2777 2778 8 2033 2034 2499 2500 2715 2716 2777 2778 8 2033 2034 2499 2500 2715 2716 2777 2778 8 2033 2034 2499 2500 2715 2716 2777 2778 8 2033 2034 2499 2500 2715 2716 2777 2778 8 2033 2034 2499 2500 2715 2716 2777 2778 3 2033 2715 2716 3 2033 2715 2716 3 2033 2715 2716 3 2033 2715 2716 3 2033 2715 2716 3 2033 2715 2716 4 2033 2034 2499 2500 4 2033 2034 2499 2500 4 2033 2034 2499 2500 4 2033 2034 2499 2500 4 2033 2034 2499 2500 4 2033 2034 2499 2500 3 2034 2777 2778 3 2034 2777 2778 3 2034 2777 2778 3 2034 2777 2778 3 2034 2777 2778 3 2034 2777 2778 8 2035 2036 2328 2329 2371 2372 3009 3010 8 2035 2036 2328 2329 2371 2372 3009 3010 8 2035 2036 2328 2329 2371 2372 3009 3010 8 2035 2036 2328 2329 2371 2372 3009 3010 8 2035 2036 2328 2329 2371 2372 3009 3010 8 2035 2036 2328 2329 2371 2372 3009 3010 4 2035 2036 3009 3010 4 2035 2036 3009 3010 4 2035 2036 3009 3010 4 2035 2036 3009 3010 4 2035 2036 3009 3010 4 2035 2036 3009 3010 8 2035 2036 2544 2545 2587 2588 3009 3010 8 2035 2036 2544 2545 2587 2588 3009 3010 8 2035 2036 2544 2545 2587 2588 3009 3010 8 2035 2036 2544 2545 2587 2588 3009 3010 8 2035 2036 2544 2545 2587 2588 3009 3010 8 2035 2036 2544 2545 2587 2588 3009 3010 3 2035 2544 2545 3 2035 2544 2545 3 2035 2544 2545 3 2035 2544 2545 3 2035 2544 2545 3 2035 2544 2545 5 2035 2544 2545 3067 3068 5 2035 2544 2545 3067 3068 5 2035 2544 2545 3067 3068 5 2035 2544 2545 3067 3068 5 2035 2544 2545 3067 3068 5 2035 2544 2545 3067 3068 3 2035 3067 3068 3 2035 3067 3068 3 2035 3067 3068 3 2035 3067 3068 3 2035 3067 3068 3 2035 3067 3068 3 2035 2328 2329 3 2035 2328 2329 3 2035 2328 2329 3 2035 2328 2329 3 2035 2328 2329 3 2035 2328 2329 8 2036 2037 2371 2372 2414 2415 2960 2961 8 2036 2037 2371 2372 2414 2415 2960 2961 8 2036 2037 2371 2372 2414 2415 2960 2961 8 2036 2037 2371 2372 2414 2415 2960 2961 8 2036 2037 2371 2372 2414 2415 2960 2961 8 2036 2037 2371 2372 2414 2415 2960 2961 4 2036 2037 2960 2961 4 2036 2037 2960 2961 4 2036 2037 2960 2961 4 2036 2037 2960 2961 4 2036 2037 2960 2961 4 2036 2037 2960 2961 8 2036 2037 2587 2588 2630 2631 2960 2961 8 2036 2037 2587 2588 2630 2631 2960 2961 8 2036 2037 2587 2588 2630 2631 2960 2961 8 2036 2037 2587 2588 2630 2631 2960 2961 8 2036 2037 2587 2588 2630 2631 2960 2961 8 2036 2037 2587 2588 2630 2631 2960 2961 3 2036 2587 2588 3 2036 2587 2588 3 2036 2587 2588 3 2036 2587 2588 3 2036 2587 2588 3 2036 2587 2588 3 2036 2371 2372 3 2036 2371 2372 3 2036 2371 2372 3 2036 2371 2372 3 2036 2371 2372 3 2036 2371 2372 8 2037 2038 2414 2415 2457 2458 2903 2904 8 2037 2038 2414 2415 2457 2458 2903 2904 8 2037 2038 2414 2415 2457 2458 2903 2904 8 2037 2038 2414 2415 2457 2458 2903 2904 8 2037 2038 2414 2415 2457 2458 2903 2904 8 2037 2038 2414 2415 2457 2458 2903 2904 4 2037 2038 2903 2904 4 2037 2038 2903 2904 4 2037 2038 2903 2904 4 2037 2038 2903 2904 4 2037 2038 2903 2904 4 2037 2038 2903 2904 8 2037 2038 2630 2631 2673 2674 2903 2904 8 2037 2038 2630 2631 2673 2674 2903 2904 8 2037 2038 2630 2631 2673 2674 2903 2904 8 2037 2038 2630 2631 2673 2674 2903 2904 8 2037 2038 2630 2631 2673 2674 2903 2904 8 2037 2038 2630 2631 2673 2674 2903 2904 3 2037 2630 2631 3 2037 2630 2631 3 2037 2630 2631 3 2037 2630 2631 3 2037 2630 2631 3 2037 2630 2631 3 2037 2414 2415 3 2037 2414 2415 3 2037 2414 2415 3 2037 2414 2415 3 2037 2414 2415 3 2037 2414 2415 11 2038 2039 2040 2457 2458 2500 2501 2822 2823 2824 2825 11 2038 2039 2040 2457 2458 2500 2501 2822 2823 2824 2825 11 2038 2039 2040 2457 2458 2500 2501 2822 2823 2824 2825 11 2038 2039 2040 2457 2458 2500 2501 2822 2823 2824 2825 11 2038 2039 2040 2457 2458 2500 2501 2822 2823 2824 2825 11 2038 2039 2040 2457 2458 2500 2501 2822 2823 2824 2825 4 2038 2039 2822 2824 4 2038 2039 2822 2824 4 2038 2039 2822 2824 4 2038 2039 2822 2824 4 2038 2039 2822 2824 4 2038 2039 2822 2824 8 2038 2039 2673 2674 2716 2717 2822 2824 8 2038 2039 2673 2674 2716 2717 2822 2824 8 2038 2039 2673 2674 2716 2717 2822 2824 8 2038 2039 2673 2674 2716 2717 2822 2824 8 2038 2039 2673 2674 2716 2717 2822 2824 8 2038 2039 2673 2674 2716 2717 2822 2824 3 2038 2673 2674 3 2038 2673 2674 3 2038 2673 2674 3 2038 2673 2674 3 2038 2673 2674 3 2038 2673 2674 3 2038 2457 2458 3 2038 2457 2458 3 2038 2457 2458 3 2038 2457 2458 3 2038 2457 2458 3 2038 2457 2458 8 2039 2040 2500 2501 2716 2717 2778 2779 8 2039 2040 2500 2501 2716 2717 2778 2779 8 2039 2040 2500 2501 2716 2717 2778 2779 8 2039 2040 2500 2501 2716 2717 2778 2779 8 2039 2040 2500 2501 2716 2717 2778 2779 8 2039 2040 2500 2501 2716 2717 2778 2779 3 2039 2716 2717 3 2039 2716 2717 3 2039 2716 2717 3 2039 2716 2717 3 2039 2716 2717 3 2039 2716 2717 4 2039 2040 2500 2501 4 2039 2040 2500 2501 4 2039 2040 2500 2501 4 2039 2040 2500 2501 4 2039 2040 2500 2501 4 2039 2040 2500 2501 3 2040 2778 2779 3 2040 2778 2779 3 2040 2778 2779 3 2040 2778 2779 3 2040 2778 2779 3 2040 2778 2779 3 2040 2823 2825 3 2040 2823 2825 3 2040 2823 2825 3 2040 2823 2825 3 2040 2823 2825 3 2040 2823 2825 10 2041 2042 2043 2329 2330 2372 2373 3010 3011 3012 10 2041 2042 2043 2329 2330 2372 2373 3010 3011 3012 10 2041 2042 2043 2329 2330 2372 2373 3010 3011 3012 10 2041 2042 2043 2329 2330 2372 2373 3010 3011 3012 10 2041 2042 2043 2329 2330 2372 2373 3010 3011 3012 10 2041 2042 2043 2329 2330 2372 2373 3010 3011 3012 4 2041 2043 3010 3011 4 2041 2043 3010 3011 4 2041 2043 3010 3011 4 2041 2043 3010 3011 4 2041 2043 3010 3011 4 2041 2043 3010 3011 8 2041 2043 2545 2546 2588 2589 3010 3011 8 2041 2043 2545 2546 2588 2589 3010 3011 8 2041 2043 2545 2546 2588 2589 3010 3011 8 2041 2043 2545 2546 2588 2589 3010 3011 8 2041 2043 2545 2546 2588 2589 3010 3011 8 2041 2043 2545 2546 2588 2589 3010 3011 3 2041 2545 2546 3 2041 2545 2546 3 2041 2545 2546 3 2041 2545 2546 3 2041 2545 2546 3 2041 2545 2546 5 2041 2545 2546 3068 3069 5 2041 2545 2546 3068 3069 5 2041 2545 2546 3068 3069 5 2041 2545 2546 3068 3069 5 2041 2545 2546 3068 3069 5 2041 2545 2546 3068 3069 3 2041 3068 3069 3 2041 3068 3069 3 2041 3068 3069 3 2041 3068 3069 3 2041 3068 3069 3 2041 3068 3069 4 2041 2042 2329 2330 4 2041 2042 2329 2330 4 2041 2042 2329 2330 4 2041 2042 2329 2330 4 2041 2042 2329 2330 4 2041 2042 2329 2330 2 2042 3012 2 2042 3012 2 2042 3012 2 2042 3012 2 2042 3012 2 2042 3012 8 2043 2044 2372 2373 2415 2416 2961 2962 8 2043 2044 2372 2373 2415 2416 2961 2962 8 2043 2044 2372 2373 2415 2416 2961 2962 8 2043 2044 2372 2373 2415 2416 2961 2962 8 2043 2044 2372 2373 2415 2416 2961 2962 8 2043 2044 2372 2373 2415 2416 2961 2962 4 2043 2044 2961 2962 4 2043 2044 2961 2962 4 2043 2044 2961 2962 4 2043 2044 2961 2962 4 2043 2044 2961 2962 4 2043 2044 2961 2962 8 2043 2044 2588 2589 2631 2632 2961 2962 8 2043 2044 2588 2589 2631 2632 2961 2962 8 2043 2044 2588 2589 2631 2632 2961 2962 8 2043 2044 2588 2589 2631 2632 2961 2962 8 2043 2044 2588 2589 2631 2632 2961 2962 8 2043 2044 2588 2589 2631 2632 2961 2962 3 2043 2588 2589 3 2043 2588 2589 3 2043 2588 2589 3 2043 2588 2589 3 2043 2588 2589 3 2043 2588 2589 3 2043 2372 2373 3 2043 2372 2373 3 2043 2372 2373 3 2043 2372 2373 3 2043 2372 2373 3 2043 2372 2373 10 2044 2045 2046 2415 2416 2458 2459 2904 2905 2906 10 2044 2045 2046 2415 2416 2458 2459 2904 2905 2906 10 2044 2045 2046 2415 2416 2458 2459 2904 2905 2906 10 2044 2045 2046 2415 2416 2458 2459 2904 2905 2906 10 2044 2045 2046 2415 2416 2458 2459 2904 2905 2906 10 2044 2045 2046 2415 2416 2458 2459 2904 2905 2906 4 2044 2045 2904 2905 4 2044 2045 2904 2905 4 2044 2045 2904 2905 4 2044 2045 2904 2905 4 2044 2045 2904 2905 4 2044 2045 2904 2905 8 2044 2045 2631 2632 2674 2675 2904 2905 8 2044 2045 2631 2632 2674 2675 2904 2905 8 2044 2045 2631 2632 2674 2675 2904 2905 8 2044 2045 2631 2632 2674 2675 2904 2905 8 2044 2045 2631 2632 2674 2675 2904 2905 8 2044 2045 2631 2632 2674 2675 2904 2905 3 2044 2631 2632 3 2044 2631 2632 3 2044 2631 2632 3 2044 2631 2632 3 2044 2631 2632 3 2044 2631 2632 3 2044 2415 2416 3 2044 2415 2416 3 2044 2415 2416 3 2044 2415 2416 3 2044 2415 2416 3 2044 2415 2416 12 2045 2046 2047 2048 2458 2459 2501 2502 2824 2825 2826 2827 12 2045 2046 2047 2048 2458 2459 2501 2502 2824 2825 2826 2827 12 2045 2046 2047 2048 2458 2459 2501 2502 2824 2825 2826 2827 12 2045 2046 2047 2048 2458 2459 2501 2502 2824 2825 2826 2827 12 2045 2046 2047 2048 2458 2459 2501 2502 2824 2825 2826 2827 12 2045 2046 2047 2048 2458 2459 2501 2502 2824 2825 2826 2827 4 2045 2047 2824 2826 4 2045 2047 2824 2826 4 2045 2047 2824 2826 4 2045 2047 2824 2826 4 2045 2047 2824 2826 4 2045 2047 2824 2826 8 2045 2047 2674 2675 2717 2718 2824 2826 8 2045 2047 2674 2675 2717 2718 2824 2826 8 2045 2047 2674 2675 2717 2718 2824 2826 8 2045 2047 2674 2675 2717 2718 2824 2826 8 2045 2047 2674 2675 2717 2718 2824 2826 8 2045 2047 2674 2675 2717 2718 2824 2826 3 2045 2674 2675 3 2045 2674 2675 3 2045 2674 2675 3 2045 2674 2675 3 2045 2674 2675 3 2045 2674 2675 4 2045 2046 2458 2459 4 2045 2046 2458 2459 4 2045 2046 2458 2459 4 2045 2046 2458 2459 4 2045 2046 2458 2459 4 2045 2046 2458 2459 4 2046 2048 2825 2827 4 2046 2048 2825 2827 4 2046 2048 2825 2827 4 2046 2048 2825 2827 4 2046 2048 2825 2827 4 2046 2048 2825 2827 2 2046 2906 2 2046 2906 2 2046 2906 2 2046 2906 2 2046 2906 2 2046 2906 8 2047 2048 2501 2502 2717 2718 2779 2780 8 2047 2048 2501 2502 2717 2718 2779 2780 8 2047 2048 2501 2502 2717 2718 2779 2780 8 2047 2048 2501 2502 2717 2718 2779 2780 8 2047 2048 2501 2502 2717 2718 2779 2780 8 2047 2048 2501 2502 2717 2718 2779 2780 3 2047 2717 2718 3 2047 2717 2718 3 2047 2717 2718 3 2047 2717 2718 3 2047 2717 2718 3 2047 2717 2718 4 2047 2048 2501 2502 4 2047 2048 2501 2502 4 2047 2048 2501 2502 4 2047 2048 2501 2502 4 2047 2048 2501 2502 4 2047 2048 2501 2502 3 2048 2779 2780 3 2048 2779 2780 3 2048 2779 2780 3 2048 2779 2780 3 2048 2779 2780 3 2048 2779 2780 11 2049 2050 2051 2052 2330 2331 2373 2374 3011 3012 3013 11 2049 2050 2051 2052 2330 2331 2373 2374 3011 3012 3013 11 2049 2050 2051 2052 2330 2331 2373 2374 3011 3012 3013 11 2049 2050 2051 2052 2330 2331 2373 2374 3011 3012 3013 11 2049 2050 2051 2052 2330 2331 2373 2374 3011 3012 3013 11 2049 2050 2051 2052 2330 2331 2373 2374 3011 3012 3013 4 2049 2051 3011 3013 4 2049 2051 3011 3013 4 2049 2051 3011 3013 4 2049 2051 3011 3013 4 2049 2051 3011 3013 4 2049 2051 3011 3013 8 2049 2051 2546 2547 2589 2590 3011 3013 8 2049 2051 2546 2547 2589 2590 3011 3013 8 2049 2051 2546 2547 2589 2590 3011 3013 8 2049 2051 2546 2547 2589 2590 3011 3013 8 2049 2051 2546 2547 2589 2590 3011 3013 8 2049 2051 2546 2547 2589 2590 3011 3013 3 2049 2546 2547 3 2049 2546 2547 3 2049 2546 2547 3 2049 2546 2547 3 2049 2546 2547 3 2049 2546 2547 5 2049 2546 2547 3069 3071 5 2049 2546 2547 3069 3071 5 2049 2546 2547 3069 3071 5 2049 2546 2547 3069 3071 5 2049 2546 2547 3069 3071 5 2049 2546 2547 3069 3071 3 2049 3069 3071 3 2049 3069 3071 3 2049 3069 3071 3 2049 3069 3071 3 2049 3069 3071 3 2049 3069 3071 4 2049 2050 2330 2331 4 2049 2050 2330 2331 4 2049 2050 2330 2331 4 2049 2050 2330 2331 4 2049 2050 2330 2331 4 2049 2050 2330 2331 3 2050 2052 3012 3 2050 2052 3012 3 2050 2052 3012 3 2050 2052 3012 3 2050 2052 3012 3 2050 2052 3012 10 2051 2052 2053 2054 2373 2374 2416 2417 2962 2963 10 2051 2052 2053 2054 2373 2374 2416 2417 2962 2963 10 2051 2052 2053 2054 2373 2374 2416 2417 2962 2963 10 2051 2052 2053 2054 2373 2374 2416 2417 2962 2963 10 2051 2052 2053 2054 2373 2374 2416 2417 2962 2963 10 2051 2052 2053 2054 2373 2374 2416 2417 2962 2963 4 2051 2053 2962 2963 4 2051 2053 2962 2963 4 2051 2053 2962 2963 4 2051 2053 2962 2963 4 2051 2053 2962 2963 4 2051 2053 2962 2963 8 2051 2053 2589 2590 2632 2633 2962 2963 8 2051 2053 2589 2590 2632 2633 2962 2963 8 2051 2053 2589 2590 2632 2633 2962 2963 8 2051 2053 2589 2590 2632 2633 2962 2963 8 2051 2053 2589 2590 2632 2633 2962 2963 8 2051 2053 2589 2590 2632 2633 2962 2963 3 2051 2589 2590 3 2051 2589 2590 3 2051 2589 2590 3 2051 2589 2590 3 2051 2589 2590 3 2051 2589 2590 4 2051 2052 2373 2374 4 2051 2052 2373 2374 4 2051 2052 2373 2374 4 2051 2052 2373 2374 4 2051 2052 2373 2374 4 2051 2052 2373 2374 2 2052 2054 2 2052 2054 2 2052 2054 2 2052 2054 2 2052 2054 2 2052 2054 11 2053 2054 2055 2056 2416 2417 2459 2460 2905 2906 2907 11 2053 2054 2055 2056 2416 2417 2459 2460 2905 2906 2907 11 2053 2054 2055 2056 2416 2417 2459 2460 2905 2906 2907 11 2053 2054 2055 2056 2416 2417 2459 2460 2905 2906 2907 11 2053 2054 2055 2056 2416 2417 2459 2460 2905 2906 2907 11 2053 2054 2055 2056 2416 2417 2459 2460 2905 2906 2907 4 2053 2055 2905 2907 4 2053 2055 2905 2907 4 2053 2055 2905 2907 4 2053 2055 2905 2907 4 2053 2055 2905 2907 4 2053 2055 2905 2907 8 2053 2055 2632 2633 2675 2676 2905 2907 8 2053 2055 2632 2633 2675 2676 2905 2907 8 2053 2055 2632 2633 2675 2676 2905 2907 8 2053 2055 2632 2633 2675 2676 2905 2907 8 2053 2055 2632 2633 2675 2676 2905 2907 8 2053 2055 2632 2633 2675 2676 2905 2907 3 2053 2632 2633 3 2053 2632 2633 3 2053 2632 2633 3 2053 2632 2633 3 2053 2632 2633 3 2053 2632 2633 4 2053 2054 2416 2417 4 2053 2054 2416 2417 4 2053 2054 2416 2417 4 2053 2054 2416 2417 4 2053 2054 2416 2417 4 2053 2054 2416 2417 3 2054 2056 2906 3 2054 2056 2906 3 2054 2056 2906 3 2054 2056 2906 3 2054 2056 2906 3 2054 2056 2906 12 2055 2056 2057 2058 2459 2460 2502 2503 2826 2827 2828 2829 12 2055 2056 2057 2058 2459 2460 2502 2503 2826 2827 2828 2829 12 2055 2056 2057 2058 2459 2460 2502 2503 2826 2827 2828 2829 12 2055 2056 2057 2058 2459 2460 2502 2503 2826 2827 2828 2829 12 2055 2056 2057 2058 2459 2460 2502 2503 2826 2827 2828 2829 12 2055 2056 2057 2058 2459 2460 2502 2503 2826 2827 2828 2829 4 2055 2057 2826 2828 4 2055 2057 2826 2828 4 2055 2057 2826 2828 4 2055 2057 2826 2828 4 2055 2057 2826 2828 4 2055 2057 2826 2828 8 2055 2057 2675 2676 2718 2719 2826 2828 8 2055 2057 2675 2676 2718 2719 2826 2828 8 2055 2057 2675 2676 2718 2719 2826 2828 8 2055 2057 2675 2676 2718 2719 2826 2828 8 2055 2057 2675 2676 2718 2719 2826 2828 8 2055 2057 2675 2676 2718 2719 2826 2828 3 2055 2675 2676 3 2055 2675 2676 3 2055 2675 2676 3 2055 2675 2676 3 2055 2675 2676 3 2055 2675 2676 4 2055 2056 2459 2460 4 2055 2056 2459 2460 4 2055 2056 2459 2460 4 2055 2056 2459 2460 4 2055 2056 2459 2460 4 2055 2056 2459 2460 4 2056 2058 2827 2829 4 2056 2058 2827 2829 4 2056 2058 2827 2829 4 2056 2058 2827 2829 4 2056 2058 2827 2829 4 2056 2058 2827 2829 8 2057 2058 2502 2503 2718 2719 2780 2781 8 2057 2058 2502 2503 2718 2719 2780 2781 8 2057 2058 2502 2503 2718 2719 2780 2781 8 2057 2058 2502 2503 2718 2719 2780 2781 8 2057 2058 2502 2503 2718 2719 2780 2781 8 2057 2058 2502 2503 2718 2719 2780 2781 3 2057 2718 2719 3 2057 2718 2719 3 2057 2718 2719 3 2057 2718 2719 3 2057 2718 2719 3 2057 2718 2719 4 2057 2058 2502 2503 4 2057 2058 2502 2503 4 2057 2058 2502 2503 4 2057 2058 2502 2503 4 2057 2058 2502 2503 4 2057 2058 2502 2503 3 2058 2780 2781 3 2058 2780 2781 3 2058 2780 2781 3 2058 2780 2781 3 2058 2780 2781 3 2058 2780 2781 8 2059 2060 2331 2332 2374 2375 3013 3014 8 2059 2060 2331 2332 2374 2375 3013 3014 8 2059 2060 2331 2332 2374 2375 3013 3014 8 2059 2060 2331 2332 2374 2375 3013 3014 8 2059 2060 2331 2332 2374 2375 3013 3014 8 2059 2060 2331 2332 2374 2375 3013 3014 4 2059 2060 3013 3014 4 2059 2060 3013 3014 4 2059 2060 3013 3014 4 2059 2060 3013 3014 4 2059 2060 3013 3014 4 2059 2060 3013 3014 8 2059 2060 2547 2548 2590 2591 3013 3014 8 2059 2060 2547 2548 2590 2591 3013 3014 8 2059 2060 2547 2548 2590 2591 3013 3014 8 2059 2060 2547 2548 2590 2591 3013 3014 8 2059 2060 2547 2548 2590 2591 3013 3014 8 2059 2060 2547 2548 2590 2591 3013 3014 3 2059 2547 2548 3 2059 2547 2548 3 2059 2547 2548 3 2059 2547 2548 3 2059 2547 2548 3 2059 2547 2548 5 2059 2547 2548 3071 3072 5 2059 2547 2548 3071 3072 5 2059 2547 2548 3071 3072 5 2059 2547 2548 3071 3072 5 2059 2547 2548 3071 3072 5 2059 2547 2548 3071 3072 3 2059 3071 3072 3 2059 3071 3072 3 2059 3071 3072 3 2059 3071 3072 3 2059 3071 3072 3 2059 3071 3072 3 2059 2331 2332 3 2059 2331 2332 3 2059 2331 2332 3 2059 2331 2332 3 2059 2331 2332 3 2059 2331 2332 8 2060 2061 2374 2375 2417 2418 2963 2964 8 2060 2061 2374 2375 2417 2418 2963 2964 8 2060 2061 2374 2375 2417 2418 2963 2964 8 2060 2061 2374 2375 2417 2418 2963 2964 8 2060 2061 2374 2375 2417 2418 2963 2964 8 2060 2061 2374 2375 2417 2418 2963 2964 4 2060 2061 2963 2964 4 2060 2061 2963 2964 4 2060 2061 2963 2964 4 2060 2061 2963 2964 4 2060 2061 2963 2964 4 2060 2061 2963 2964 8 2060 2061 2590 2591 2633 2634 2963 2964 8 2060 2061 2590 2591 2633 2634 2963 2964 8 2060 2061 2590 2591 2633 2634 2963 2964 8 2060 2061 2590 2591 2633 2634 2963 2964 8 2060 2061 2590 2591 2633 2634 2963 2964 8 2060 2061 2590 2591 2633 2634 2963 2964 3 2060 2590 2591 3 2060 2590 2591 3 2060 2590 2591 3 2060 2590 2591 3 2060 2590 2591 3 2060 2590 2591 3 2060 2374 2375 3 2060 2374 2375 3 2060 2374 2375 3 2060 2374 2375 3 2060 2374 2375 3 2060 2374 2375 8 2061 2062 2417 2418 2460 2461 2907 2908 8 2061 2062 2417 2418 2460 2461 2907 2908 8 2061 2062 2417 2418 2460 2461 2907 2908 8 2061 2062 2417 2418 2460 2461 2907 2908 8 2061 2062 2417 2418 2460 2461 2907 2908 8 2061 2062 2417 2418 2460 2461 2907 2908 4 2061 2062 2907 2908 4 2061 2062 2907 2908 4 2061 2062 2907 2908 4 2061 2062 2907 2908 4 2061 2062 2907 2908 4 2061 2062 2907 2908 8 2061 2062 2633 2634 2676 2677 2907 2908 8 2061 2062 2633 2634 2676 2677 2907 2908 8 2061 2062 2633 2634 2676 2677 2907 2908 8 2061 2062 2633 2634 2676 2677 2907 2908 8 2061 2062 2633 2634 2676 2677 2907 2908 8 2061 2062 2633 2634 2676 2677 2907 2908 3 2061 2633 2634 3 2061 2633 2634 3 2061 2633 2634 3 2061 2633 2634 3 2061 2633 2634 3 2061 2633 2634 3 2061 2417 2418 3 2061 2417 2418 3 2061 2417 2418 3 2061 2417 2418 3 2061 2417 2418 3 2061 2417 2418 11 2062 2063 2064 2460 2461 2503 2504 2828 2829 2830 2831 11 2062 2063 2064 2460 2461 2503 2504 2828 2829 2830 2831 11 2062 2063 2064 2460 2461 2503 2504 2828 2829 2830 2831 11 2062 2063 2064 2460 2461 2503 2504 2828 2829 2830 2831 11 2062 2063 2064 2460 2461 2503 2504 2828 2829 2830 2831 11 2062 2063 2064 2460 2461 2503 2504 2828 2829 2830 2831 4 2062 2063 2828 2830 4 2062 2063 2828 2830 4 2062 2063 2828 2830 4 2062 2063 2828 2830 4 2062 2063 2828 2830 4 2062 2063 2828 2830 8 2062 2063 2676 2677 2719 2720 2828 2830 8 2062 2063 2676 2677 2719 2720 2828 2830 8 2062 2063 2676 2677 2719 2720 2828 2830 8 2062 2063 2676 2677 2719 2720 2828 2830 8 2062 2063 2676 2677 2719 2720 2828 2830 8 2062 2063 2676 2677 2719 2720 2828 2830 3 2062 2676 2677 3 2062 2676 2677 3 2062 2676 2677 3 2062 2676 2677 3 2062 2676 2677 3 2062 2676 2677 3 2062 2460 2461 3 2062 2460 2461 3 2062 2460 2461 3 2062 2460 2461 3 2062 2460 2461 3 2062 2460 2461 8 2063 2064 2503 2504 2719 2720 2781 2782 8 2063 2064 2503 2504 2719 2720 2781 2782 8 2063 2064 2503 2504 2719 2720 2781 2782 8 2063 2064 2503 2504 2719 2720 2781 2782 8 2063 2064 2503 2504 2719 2720 2781 2782 8 2063 2064 2503 2504 2719 2720 2781 2782 3 2063 2719 2720 3 2063 2719 2720 3 2063 2719 2720 3 2063 2719 2720 3 2063 2719 2720 3 2063 2719 2720 4 2063 2064 2503 2504 4 2063 2064 2503 2504 4 2063 2064 2503 2504 4 2063 2064 2503 2504 4 2063 2064 2503 2504 4 2063 2064 2503 2504 3 2064 2781 2782 3 2064 2781 2782 3 2064 2781 2782 3 2064 2781 2782 3 2064 2781 2782 3 2064 2781 2782 3 2064 2829 2831 3 2064 2829 2831 3 2064 2829 2831 3 2064 2829 2831 3 2064 2829 2831 3 2064 2829 2831 10 2065 2066 2067 2332 2333 2375 2376 3014 3015 3016 10 2065 2066 2067 2332 2333 2375 2376 3014 3015 3016 10 2065 2066 2067 2332 2333 2375 2376 3014 3015 3016 10 2065 2066 2067 2332 2333 2375 2376 3014 3015 3016 10 2065 2066 2067 2332 2333 2375 2376 3014 3015 3016 10 2065 2066 2067 2332 2333 2375 2376 3014 3015 3016 4 2065 2067 3014 3015 4 2065 2067 3014 3015 4 2065 2067 3014 3015 4 2065 2067 3014 3015 4 2065 2067 3014 3015 4 2065 2067 3014 3015 8 2065 2067 2548 2549 2591 2592 3014 3015 8 2065 2067 2548 2549 2591 2592 3014 3015 8 2065 2067 2548 2549 2591 2592 3014 3015 8 2065 2067 2548 2549 2591 2592 3014 3015 8 2065 2067 2548 2549 2591 2592 3014 3015 8 2065 2067 2548 2549 2591 2592 3014 3015 3 2065 2548 2549 3 2065 2548 2549 3 2065 2548 2549 3 2065 2548 2549 3 2065 2548 2549 3 2065 2548 2549 5 2065 2548 2549 3072 3073 5 2065 2548 2549 3072 3073 5 2065 2548 2549 3072 3073 5 2065 2548 2549 3072 3073 5 2065 2548 2549 3072 3073 5 2065 2548 2549 3072 3073 3 2065 3072 3073 3 2065 3072 3073 3 2065 3072 3073 3 2065 3072 3073 3 2065 3072 3073 3 2065 3072 3073 4 2065 2066 2332 2333 4 2065 2066 2332 2333 4 2065 2066 2332 2333 4 2065 2066 2332 2333 4 2065 2066 2332 2333 4 2065 2066 2332 2333 2 2066 3016 2 2066 3016 2 2066 3016 2 2066 3016 2 2066 3016 2 2066 3016 8 2067 2068 2375 2376 2418 2419 2964 2965 8 2067 2068 2375 2376 2418 2419 2964 2965 8 2067 2068 2375 2376 2418 2419 2964 2965 8 2067 2068 2375 2376 2418 2419 2964 2965 8 2067 2068 2375 2376 2418 2419 2964 2965 8 2067 2068 2375 2376 2418 2419 2964 2965 4 2067 2068 2964 2965 4 2067 2068 2964 2965 4 2067 2068 2964 2965 4 2067 2068 2964 2965 4 2067 2068 2964 2965 4 2067 2068 2964 2965 8 2067 2068 2591 2592 2634 2635 2964 2965 8 2067 2068 2591 2592 2634 2635 2964 2965 8 2067 2068 2591 2592 2634 2635 2964 2965 8 2067 2068 2591 2592 2634 2635 2964 2965 8 2067 2068 2591 2592 2634 2635 2964 2965 8 2067 2068 2591 2592 2634 2635 2964 2965 3 2067 2591 2592 3 2067 2591 2592 3 2067 2591 2592 3 2067 2591 2592 3 2067 2591 2592 3 2067 2591 2592 3 2067 2375 2376 3 2067 2375 2376 3 2067 2375 2376 3 2067 2375 2376 3 2067 2375 2376 3 2067 2375 2376 10 2068 2069 2070 2418 2419 2461 2462 2908 2909 2910 10 2068 2069 2070 2418 2419 2461 2462 2908 2909 2910 10 2068 2069 2070 2418 2419 2461 2462 2908 2909 2910 10 2068 2069 2070 2418 2419 2461 2462 2908 2909 2910 10 2068 2069 2070 2418 2419 2461 2462 2908 2909 2910 10 2068 2069 2070 2418 2419 2461 2462 2908 2909 2910 4 2068 2069 2908 2909 4 2068 2069 2908 2909 4 2068 2069 2908 2909 4 2068 2069 2908 2909 4 2068 2069 2908 2909 4 2068 2069 2908 2909 8 2068 2069 2634 2635 2677 2678 2908 2909 8 2068 2069 2634 2635 2677 2678 2908 2909 8 2068 2069 2634 2635 2677 2678 2908 2909 8 2068 2069 2634 2635 2677 2678 2908 2909 8 2068 2069 2634 2635 2677 2678 2908 2909 8 2068 2069 2634 2635 2677 2678 2908 2909 3 2068 2634 2635 3 2068 2634 2635 3 2068 2634 2635 3 2068 2634 2635 3 2068 2634 2635 3 2068 2634 2635 3 2068 2418 2419 3 2068 2418 2419 3 2068 2418 2419 3 2068 2418 2419 3 2068 2418 2419 3 2068 2418 2419 12 2069 2070 2071 2072 2461 2462 2504 2505 2830 2831 2832 2833 12 2069 2070 2071 2072 2461 2462 2504 2505 2830 2831 2832 2833 12 2069 2070 2071 2072 2461 2462 2504 2505 2830 2831 2832 2833 12 2069 2070 2071 2072 2461 2462 2504 2505 2830 2831 2832 2833 12 2069 2070 2071 2072 2461 2462 2504 2505 2830 2831 2832 2833 12 2069 2070 2071 2072 2461 2462 2504 2505 2830 2831 2832 2833 4 2069 2071 2830 2832 4 2069 2071 2830 2832 4 2069 2071 2830 2832 4 2069 2071 2830 2832 4 2069 2071 2830 2832 4 2069 2071 2830 2832 8 2069 2071 2677 2678 2720 2721 2830 2832 8 2069 2071 2677 2678 2720 2721 2830 2832 8 2069 2071 2677 2678 2720 2721 2830 2832 8 2069 2071 2677 2678 2720 2721 2830 2832 8 2069 2071 2677 2678 2720 2721 2830 2832 8 2069 2071 2677 2678 2720 2721 2830 2832 3 2069 2677 2678 3 2069 2677 2678 3 2069 2677 2678 3 2069 2677 2678 3 2069 2677 2678 3 2069 2677 2678 4 2069 2070 2461 2462 4 2069 2070 2461 2462 4 2069 2070 2461 2462 4 2069 2070 2461 2462 4 2069 2070 2461 2462 4 2069 2070 2461 2462 4 2070 2072 2831 2833 4 2070 2072 2831 2833 4 2070 2072 2831 2833 4 2070 2072 2831 2833 4 2070 2072 2831 2833 4 2070 2072 2831 2833 2 2070 2910 2 2070 2910 2 2070 2910 2 2070 2910 2 2070 2910 2 2070 2910 8 2071 2072 2504 2505 2720 2721 2782 2783 8 2071 2072 2504 2505 2720 2721 2782 2783 8 2071 2072 2504 2505 2720 2721 2782 2783 8 2071 2072 2504 2505 2720 2721 2782 2783 8 2071 2072 2504 2505 2720 2721 2782 2783 8 2071 2072 2504 2505 2720 2721 2782 2783 3 2071 2720 2721 3 2071 2720 2721 3 2071 2720 2721 3 2071 2720 2721 3 2071 2720 2721 3 2071 2720 2721 4 2071 2072 2504 2505 4 2071 2072 2504 2505 4 2071 2072 2504 2505 4 2071 2072 2504 2505 4 2071 2072 2504 2505 4 2071 2072 2504 2505 3 2072 2782 2783 3 2072 2782 2783 3 2072 2782 2783 3 2072 2782 2783 3 2072 2782 2783 3 2072 2782 2783 10 2073 2074 2075 2333 2334 2376 2377 3015 3016 3017 10 2073 2074 2075 2333 2334 2376 2377 3015 3016 3017 10 2073 2074 2075 2333 2334 2376 2377 3015 3016 3017 10 2073 2074 2075 2333 2334 2376 2377 3015 3016 3017 10 2073 2074 2075 2333 2334 2376 2377 3015 3016 3017 10 2073 2074 2075 2333 2334 2376 2377 3015 3016 3017 4 2073 2075 3015 3017 4 2073 2075 3015 3017 4 2073 2075 3015 3017 4 2073 2075 3015 3017 4 2073 2075 3015 3017 4 2073 2075 3015 3017 8 2073 2075 2549 2550 2592 2593 3015 3017 8 2073 2075 2549 2550 2592 2593 3015 3017 8 2073 2075 2549 2550 2592 2593 3015 3017 8 2073 2075 2549 2550 2592 2593 3015 3017 8 2073 2075 2549 2550 2592 2593 3015 3017 8 2073 2075 2549 2550 2592 2593 3015 3017 3 2073 2549 2550 3 2073 2549 2550 3 2073 2549 2550 3 2073 2549 2550 3 2073 2549 2550 3 2073 2549 2550 5 2073 2549 2550 3073 3075 5 2073 2549 2550 3073 3075 5 2073 2549 2550 3073 3075 5 2073 2549 2550 3073 3075 5 2073 2549 2550 3073 3075 5 2073 2549 2550 3073 3075 3 2073 3073 3075 3 2073 3073 3075 3 2073 3073 3075 3 2073 3073 3075 3 2073 3073 3075 3 2073 3073 3075 4 2073 2074 2333 2334 4 2073 2074 2333 2334 4 2073 2074 2333 2334 4 2073 2074 2333 2334 4 2073 2074 2333 2334 4 2073 2074 2333 2334 2 2074 3016 2 2074 3016 2 2074 3016 2 2074 3016 2 2074 3016 2 2074 3016 8 2075 2076 2376 2377 2419 2420 2965 2966 8 2075 2076 2376 2377 2419 2420 2965 2966 8 2075 2076 2376 2377 2419 2420 2965 2966 8 2075 2076 2376 2377 2419 2420 2965 2966 8 2075 2076 2376 2377 2419 2420 2965 2966 8 2075 2076 2376 2377 2419 2420 2965 2966 4 2075 2076 2965 2966 4 2075 2076 2965 2966 4 2075 2076 2965 2966 4 2075 2076 2965 2966 4 2075 2076 2965 2966 4 2075 2076 2965 2966 8 2075 2076 2592 2593 2635 2636 2965 2966 8 2075 2076 2592 2593 2635 2636 2965 2966 8 2075 2076 2592 2593 2635 2636 2965 2966 8 2075 2076 2592 2593 2635 2636 2965 2966 8 2075 2076 2592 2593 2635 2636 2965 2966 8 2075 2076 2592 2593 2635 2636 2965 2966 3 2075 2592 2593 3 2075 2592 2593 3 2075 2592 2593 3 2075 2592 2593 3 2075 2592 2593 3 2075 2592 2593 3 2075 2376 2377 3 2075 2376 2377 3 2075 2376 2377 3 2075 2376 2377 3 2075 2376 2377 3 2075 2376 2377 10 2076 2077 2078 2419 2420 2462 2463 2909 2910 2911 10 2076 2077 2078 2419 2420 2462 2463 2909 2910 2911 10 2076 2077 2078 2419 2420 2462 2463 2909 2910 2911 10 2076 2077 2078 2419 2420 2462 2463 2909 2910 2911 10 2076 2077 2078 2419 2420 2462 2463 2909 2910 2911 10 2076 2077 2078 2419 2420 2462 2463 2909 2910 2911 4 2076 2077 2909 2911 4 2076 2077 2909 2911 4 2076 2077 2909 2911 4 2076 2077 2909 2911 4 2076 2077 2909 2911 4 2076 2077 2909 2911 8 2076 2077 2635 2636 2678 2679 2909 2911 8 2076 2077 2635 2636 2678 2679 2909 2911 8 2076 2077 2635 2636 2678 2679 2909 2911 8 2076 2077 2635 2636 2678 2679 2909 2911 8 2076 2077 2635 2636 2678 2679 2909 2911 8 2076 2077 2635 2636 2678 2679 2909 2911 3 2076 2635 2636 3 2076 2635 2636 3 2076 2635 2636 3 2076 2635 2636 3 2076 2635 2636 3 2076 2635 2636 3 2076 2419 2420 3 2076 2419 2420 3 2076 2419 2420 3 2076 2419 2420 3 2076 2419 2420 3 2076 2419 2420 12 2077 2078 2079 2080 2462 2463 2505 2506 2832 2833 2834 2835 12 2077 2078 2079 2080 2462 2463 2505 2506 2832 2833 2834 2835 12 2077 2078 2079 2080 2462 2463 2505 2506 2832 2833 2834 2835 12 2077 2078 2079 2080 2462 2463 2505 2506 2832 2833 2834 2835 12 2077 2078 2079 2080 2462 2463 2505 2506 2832 2833 2834 2835 12 2077 2078 2079 2080 2462 2463 2505 2506 2832 2833 2834 2835 4 2077 2079 2832 2834 4 2077 2079 2832 2834 4 2077 2079 2832 2834 4 2077 2079 2832 2834 4 2077 2079 2832 2834 4 2077 2079 2832 2834 8 2077 2079 2678 2679 2721 2722 2832 2834 8 2077 2079 2678 2679 2721 2722 2832 2834 8 2077 2079 2678 2679 2721 2722 2832 2834 8 2077 2079 2678 2679 2721 2722 2832 2834 8 2077 2079 2678 2679 2721 2722 2832 2834 8 2077 2079 2678 2679 2721 2722 2832 2834 3 2077 2678 2679 3 2077 2678 2679 3 2077 2678 2679 3 2077 2678 2679 3 2077 2678 2679 3 2077 2678 2679 4 2077 2078 2462 2463 4 2077 2078 2462 2463 4 2077 2078 2462 2463 4 2077 2078 2462 2463 4 2077 2078 2462 2463 4 2077 2078 2462 2463 4 2078 2080 2833 2835 4 2078 2080 2833 2835 4 2078 2080 2833 2835 4 2078 2080 2833 2835 4 2078 2080 2833 2835 4 2078 2080 2833 2835 2 2078 2910 2 2078 2910 2 2078 2910 2 2078 2910 2 2078 2910 2 2078 2910 8 2079 2080 2505 2506 2721 2722 2783 2784 8 2079 2080 2505 2506 2721 2722 2783 2784 8 2079 2080 2505 2506 2721 2722 2783 2784 8 2079 2080 2505 2506 2721 2722 2783 2784 8 2079 2080 2505 2506 2721 2722 2783 2784 8 2079 2080 2505 2506 2721 2722 2783 2784 3 2079 2721 2722 3 2079 2721 2722 3 2079 2721 2722 3 2079 2721 2722 3 2079 2721 2722 3 2079 2721 2722 4 2079 2080 2505 2506 4 2079 2080 2505 2506 4 2079 2080 2505 2506 4 2079 2080 2505 2506 4 2079 2080 2505 2506 4 2079 2080 2505 2506 3 2080 2783 2784 3 2080 2783 2784 3 2080 2783 2784 3 2080 2783 2784 3 2080 2783 2784 3 2080 2783 2784 8 2081 2082 2334 2335 2377 2378 3017 3018 8 2081 2082 2334 2335 2377 2378 3017 3018 8 2081 2082 2334 2335 2377 2378 3017 3018 8 2081 2082 2334 2335 2377 2378 3017 3018 8 2081 2082 2334 2335 2377 2378 3017 3018 8 2081 2082 2334 2335 2377 2378 3017 3018 4 2081 2082 3017 3018 4 2081 2082 3017 3018 4 2081 2082 3017 3018 4 2081 2082 3017 3018 4 2081 2082 3017 3018 4 2081 2082 3017 3018 8 2081 2082 2550 2551 2593 2594 3017 3018 8 2081 2082 2550 2551 2593 2594 3017 3018 8 2081 2082 2550 2551 2593 2594 3017 3018 8 2081 2082 2550 2551 2593 2594 3017 3018 8 2081 2082 2550 2551 2593 2594 3017 3018 8 2081 2082 2550 2551 2593 2594 3017 3018 3 2081 2550 2551 3 2081 2550 2551 3 2081 2550 2551 3 2081 2550 2551 3 2081 2550 2551 3 2081 2550 2551 5 2081 2550 2551 3075 3076 5 2081 2550 2551 3075 3076 5 2081 2550 2551 3075 3076 5 2081 2550 2551 3075 3076 5 2081 2550 2551 3075 3076 5 2081 2550 2551 3075 3076 3 2081 3075 3076 3 2081 3075 3076 3 2081 3075 3076 3 2081 3075 3076 3 2081 3075 3076 3 2081 3075 3076 3 2081 2334 2335 3 2081 2334 2335 3 2081 2334 2335 3 2081 2334 2335 3 2081 2334 2335 3 2081 2334 2335 8 2082 2083 2377 2378 2420 2421 2966 2967 8 2082 2083 2377 2378 2420 2421 2966 2967 8 2082 2083 2377 2378 2420 2421 2966 2967 8 2082 2083 2377 2378 2420 2421 2966 2967 8 2082 2083 2377 2378 2420 2421 2966 2967 8 2082 2083 2377 2378 2420 2421 2966 2967 4 2082 2083 2966 2967 4 2082 2083 2966 2967 4 2082 2083 2966 2967 4 2082 2083 2966 2967 4 2082 2083 2966 2967 4 2082 2083 2966 2967 8 2082 2083 2593 2594 2636 2637 2966 2967 8 2082 2083 2593 2594 2636 2637 2966 2967 8 2082 2083 2593 2594 2636 2637 2966 2967 8 2082 2083 2593 2594 2636 2637 2966 2967 8 2082 2083 2593 2594 2636 2637 2966 2967 8 2082 2083 2593 2594 2636 2637 2966 2967 3 2082 2593 2594 3 2082 2593 2594 3 2082 2593 2594 3 2082 2593 2594 3 2082 2593 2594 3 2082 2593 2594 3 2082 2377 2378 3 2082 2377 2378 3 2082 2377 2378 3 2082 2377 2378 3 2082 2377 2378 3 2082 2377 2378 8 2083 2084 2420 2421 2463 2464 2911 2912 8 2083 2084 2420 2421 2463 2464 2911 2912 8 2083 2084 2420 2421 2463 2464 2911 2912 8 2083 2084 2420 2421 2463 2464 2911 2912 8 2083 2084 2420 2421 2463 2464 2911 2912 8 2083 2084 2420 2421 2463 2464 2911 2912 4 2083 2084 2911 2912 4 2083 2084 2911 2912 4 2083 2084 2911 2912 4 2083 2084 2911 2912 4 2083 2084 2911 2912 4 2083 2084 2911 2912 8 2083 2084 2636 2637 2679 2680 2911 2912 8 2083 2084 2636 2637 2679 2680 2911 2912 8 2083 2084 2636 2637 2679 2680 2911 2912 8 2083 2084 2636 2637 2679 2680 2911 2912 8 2083 2084 2636 2637 2679 2680 2911 2912 8 2083 2084 2636 2637 2679 2680 2911 2912 3 2083 2636 2637 3 2083 2636 2637 3 2083 2636 2637 3 2083 2636 2637 3 2083 2636 2637 3 2083 2636 2637 3 2083 2420 2421 3 2083 2420 2421 3 2083 2420 2421 3 2083 2420 2421 3 2083 2420 2421 3 2083 2420 2421 11 2084 2085 2086 2463 2464 2506 2507 2834 2835 2836 2837 11 2084 2085 2086 2463 2464 2506 2507 2834 2835 2836 2837 11 2084 2085 2086 2463 2464 2506 2507 2834 2835 2836 2837 11 2084 2085 2086 2463 2464 2506 2507 2834 2835 2836 2837 11 2084 2085 2086 2463 2464 2506 2507 2834 2835 2836 2837 11 2084 2085 2086 2463 2464 2506 2507 2834 2835 2836 2837 4 2084 2085 2834 2836 4 2084 2085 2834 2836 4 2084 2085 2834 2836 4 2084 2085 2834 2836 4 2084 2085 2834 2836 4 2084 2085 2834 2836 8 2084 2085 2679 2680 2722 2723 2834 2836 8 2084 2085 2679 2680 2722 2723 2834 2836 8 2084 2085 2679 2680 2722 2723 2834 2836 8 2084 2085 2679 2680 2722 2723 2834 2836 8 2084 2085 2679 2680 2722 2723 2834 2836 8 2084 2085 2679 2680 2722 2723 2834 2836 3 2084 2679 2680 3 2084 2679 2680 3 2084 2679 2680 3 2084 2679 2680 3 2084 2679 2680 3 2084 2679 2680 3 2084 2463 2464 3 2084 2463 2464 3 2084 2463 2464 3 2084 2463 2464 3 2084 2463 2464 3 2084 2463 2464 8 2085 2086 2506 2507 2722 2723 2784 2785 8 2085 2086 2506 2507 2722 2723 2784 2785 8 2085 2086 2506 2507 2722 2723 2784 2785 8 2085 2086 2506 2507 2722 2723 2784 2785 8 2085 2086 2506 2507 2722 2723 2784 2785 8 2085 2086 2506 2507 2722 2723 2784 2785 3 2085 2722 2723 3 2085 2722 2723 3 2085 2722 2723 3 2085 2722 2723 3 2085 2722 2723 3 2085 2722 2723 4 2085 2086 2506 2507 4 2085 2086 2506 2507 4 2085 2086 2506 2507 4 2085 2086 2506 2507 4 2085 2086 2506 2507 4 2085 2086 2506 2507 3 2086 2784 2785 3 2086 2784 2785 3 2086 2784 2785 3 2086 2784 2785 3 2086 2784 2785 3 2086 2784 2785 3 2086 2835 2837 3 2086 2835 2837 3 2086 2835 2837 3 2086 2835 2837 3 2086 2835 2837 3 2086 2835 2837 10 2087 2088 2089 2335 2336 2378 2379 3018 3019 3020 10 2087 2088 2089 2335 2336 2378 2379 3018 3019 3020 10 2087 2088 2089 2335 2336 2378 2379 3018 3019 3020 10 2087 2088 2089 2335 2336 2378 2379 3018 3019 3020 10 2087 2088 2089 2335 2336 2378 2379 3018 3019 3020 10 2087 2088 2089 2335 2336 2378 2379 3018 3019 3020 4 2087 2089 3018 3019 4 2087 2089 3018 3019 4 2087 2089 3018 3019 4 2087 2089 3018 3019 4 2087 2089 3018 3019 4 2087 2089 3018 3019 8 2087 2089 2551 2552 2594 2595 3018 3019 8 2087 2089 2551 2552 2594 2595 3018 3019 8 2087 2089 2551 2552 2594 2595 3018 3019 8 2087 2089 2551 2552 2594 2595 3018 3019 8 2087 2089 2551 2552 2594 2595 3018 3019 8 2087 2089 2551 2552 2594 2595 3018 3019 3 2087 2551 2552 3 2087 2551 2552 3 2087 2551 2552 3 2087 2551 2552 3 2087 2551 2552 3 2087 2551 2552 5 2087 2551 2552 3076 3077 5 2087 2551 2552 3076 3077 5 2087 2551 2552 3076 3077 5 2087 2551 2552 3076 3077 5 2087 2551 2552 3076 3077 5 2087 2551 2552 3076 3077 3 2087 3076 3077 3 2087 3076 3077 3 2087 3076 3077 3 2087 3076 3077 3 2087 3076 3077 3 2087 3076 3077 4 2087 2088 2335 2336 4 2087 2088 2335 2336 4 2087 2088 2335 2336 4 2087 2088 2335 2336 4 2087 2088 2335 2336 4 2087 2088 2335 2336 2 2088 3020 2 2088 3020 2 2088 3020 2 2088 3020 2 2088 3020 2 2088 3020 8 2089 2090 2378 2379 2421 2422 2967 2968 8 2089 2090 2378 2379 2421 2422 2967 2968 8 2089 2090 2378 2379 2421 2422 2967 2968 8 2089 2090 2378 2379 2421 2422 2967 2968 8 2089 2090 2378 2379 2421 2422 2967 2968 8 2089 2090 2378 2379 2421 2422 2967 2968 4 2089 2090 2967 2968 4 2089 2090 2967 2968 4 2089 2090 2967 2968 4 2089 2090 2967 2968 4 2089 2090 2967 2968 4 2089 2090 2967 2968 8 2089 2090 2594 2595 2637 2638 2967 2968 8 2089 2090 2594 2595 2637 2638 2967 2968 8 2089 2090 2594 2595 2637 2638 2967 2968 8 2089 2090 2594 2595 2637 2638 2967 2968 8 2089 2090 2594 2595 2637 2638 2967 2968 8 2089 2090 2594 2595 2637 2638 2967 2968 3 2089 2594 2595 3 2089 2594 2595 3 2089 2594 2595 3 2089 2594 2595 3 2089 2594 2595 3 2089 2594 2595 3 2089 2378 2379 3 2089 2378 2379 3 2089 2378 2379 3 2089 2378 2379 3 2089 2378 2379 3 2089 2378 2379 10 2090 2091 2092 2421 2422 2464 2465 2912 2913 2914 10 2090 2091 2092 2421 2422 2464 2465 2912 2913 2914 10 2090 2091 2092 2421 2422 2464 2465 2912 2913 2914 10 2090 2091 2092 2421 2422 2464 2465 2912 2913 2914 10 2090 2091 2092 2421 2422 2464 2465 2912 2913 2914 10 2090 2091 2092 2421 2422 2464 2465 2912 2913 2914 4 2090 2091 2912 2913 4 2090 2091 2912 2913 4 2090 2091 2912 2913 4 2090 2091 2912 2913 4 2090 2091 2912 2913 4 2090 2091 2912 2913 8 2090 2091 2637 2638 2680 2681 2912 2913 8 2090 2091 2637 2638 2680 2681 2912 2913 8 2090 2091 2637 2638 2680 2681 2912 2913 8 2090 2091 2637 2638 2680 2681 2912 2913 8 2090 2091 2637 2638 2680 2681 2912 2913 8 2090 2091 2637 2638 2680 2681 2912 2913 3 2090 2637 2638 3 2090 2637 2638 3 2090 2637 2638 3 2090 2637 2638 3 2090 2637 2638 3 2090 2637 2638 3 2090 2421 2422 3 2090 2421 2422 3 2090 2421 2422 3 2090 2421 2422 3 2090 2421 2422 3 2090 2421 2422 12 2091 2092 2093 2094 2464 2465 2507 2508 2836 2837 2838 2839 12 2091 2092 2093 2094 2464 2465 2507 2508 2836 2837 2838 2839 12 2091 2092 2093 2094 2464 2465 2507 2508 2836 2837 2838 2839 12 2091 2092 2093 2094 2464 2465 2507 2508 2836 2837 2838 2839 12 2091 2092 2093 2094 2464 2465 2507 2508 2836 2837 2838 2839 12 2091 2092 2093 2094 2464 2465 2507 2508 2836 2837 2838 2839 4 2091 2093 2836 2838 4 2091 2093 2836 2838 4 2091 2093 2836 2838 4 2091 2093 2836 2838 4 2091 2093 2836 2838 4 2091 2093 2836 2838 8 2091 2093 2680 2681 2723 2724 2836 2838 8 2091 2093 2680 2681 2723 2724 2836 2838 8 2091 2093 2680 2681 2723 2724 2836 2838 8 2091 2093 2680 2681 2723 2724 2836 2838 8 2091 2093 2680 2681 2723 2724 2836 2838 8 2091 2093 2680 2681 2723 2724 2836 2838 3 2091 2680 2681 3 2091 2680 2681 3 2091 2680 2681 3 2091 2680 2681 3 2091 2680 2681 3 2091 2680 2681 4 2091 2092 2464 2465 4 2091 2092 2464 2465 4 2091 2092 2464 2465 4 2091 2092 2464 2465 4 2091 2092 2464 2465 4 2091 2092 2464 2465 4 2092 2094 2837 2839 4 2092 2094 2837 2839 4 2092 2094 2837 2839 4 2092 2094 2837 2839 4 2092 2094 2837 2839 4 2092 2094 2837 2839 2 2092 2914 2 2092 2914 2 2092 2914 2 2092 2914 2 2092 2914 2 2092 2914 8 2093 2094 2507 2508 2723 2724 2785 2786 8 2093 2094 2507 2508 2723 2724 2785 2786 8 2093 2094 2507 2508 2723 2724 2785 2786 8 2093 2094 2507 2508 2723 2724 2785 2786 8 2093 2094 2507 2508 2723 2724 2785 2786 8 2093 2094 2507 2508 2723 2724 2785 2786 3 2093 2723 2724 3 2093 2723 2724 3 2093 2723 2724 3 2093 2723 2724 3 2093 2723 2724 3 2093 2723 2724 4 2093 2094 2507 2508 4 2093 2094 2507 2508 4 2093 2094 2507 2508 4 2093 2094 2507 2508 4 2093 2094 2507 2508 4 2093 2094 2507 2508 3 2094 2785 2786 3 2094 2785 2786 3 2094 2785 2786 3 2094 2785 2786 3 2094 2785 2786 3 2094 2785 2786 11 2095 2096 2097 2098 2336 2337 2379 2380 3019 3020 3021 11 2095 2096 2097 2098 2336 2337 2379 2380 3019 3020 3021 11 2095 2096 2097 2098 2336 2337 2379 2380 3019 3020 3021 11 2095 2096 2097 2098 2336 2337 2379 2380 3019 3020 3021 11 2095 2096 2097 2098 2336 2337 2379 2380 3019 3020 3021 11 2095 2096 2097 2098 2336 2337 2379 2380 3019 3020 3021 4 2095 2097 3019 3021 4 2095 2097 3019 3021 4 2095 2097 3019 3021 4 2095 2097 3019 3021 4 2095 2097 3019 3021 4 2095 2097 3019 3021 8 2095 2097 2552 2553 2595 2596 3019 3021 8 2095 2097 2552 2553 2595 2596 3019 3021 8 2095 2097 2552 2553 2595 2596 3019 3021 8 2095 2097 2552 2553 2595 2596 3019 3021 8 2095 2097 2552 2553 2595 2596 3019 3021 8 2095 2097 2552 2553 2595 2596 3019 3021 3 2095 2552 2553 3 2095 2552 2553 3 2095 2552 2553 3 2095 2552 2553 3 2095 2552 2553 3 2095 2552 2553 5 2095 2552 2553 3077 3079 5 2095 2552 2553 3077 3079 5 2095 2552 2553 3077 3079 5 2095 2552 2553 3077 3079 5 2095 2552 2553 3077 3079 5 2095 2552 2553 3077 3079 3 2095 3077 3079 3 2095 3077 3079 3 2095 3077 3079 3 2095 3077 3079 3 2095 3077 3079 3 2095 3077 3079 4 2095 2096 2336 2337 4 2095 2096 2336 2337 4 2095 2096 2336 2337 4 2095 2096 2336 2337 4 2095 2096 2336 2337 4 2095 2096 2336 2337 3 2096 2098 3020 3 2096 2098 3020 3 2096 2098 3020 3 2096 2098 3020 3 2096 2098 3020 3 2096 2098 3020 10 2097 2098 2099 2100 2379 2380 2422 2423 2968 2969 10 2097 2098 2099 2100 2379 2380 2422 2423 2968 2969 10 2097 2098 2099 2100 2379 2380 2422 2423 2968 2969 10 2097 2098 2099 2100 2379 2380 2422 2423 2968 2969 10 2097 2098 2099 2100 2379 2380 2422 2423 2968 2969 10 2097 2098 2099 2100 2379 2380 2422 2423 2968 2969 4 2097 2099 2968 2969 4 2097 2099 2968 2969 4 2097 2099 2968 2969 4 2097 2099 2968 2969 4 2097 2099 2968 2969 4 2097 2099 2968 2969 8 2097 2099 2595 2596 2638 2639 2968 2969 8 2097 2099 2595 2596 2638 2639 2968 2969 8 2097 2099 2595 2596 2638 2639 2968 2969 8 2097 2099 2595 2596 2638 2639 2968 2969 8 2097 2099 2595 2596 2638 2639 2968 2969 8 2097 2099 2595 2596 2638 2639 2968 2969 3 2097 2595 2596 3 2097 2595 2596 3 2097 2595 2596 3 2097 2595 2596 3 2097 2595 2596 3 2097 2595 2596 4 2097 2098 2379 2380 4 2097 2098 2379 2380 4 2097 2098 2379 2380 4 2097 2098 2379 2380 4 2097 2098 2379 2380 4 2097 2098 2379 2380 2 2098 2100 2 2098 2100 2 2098 2100 2 2098 2100 2 2098 2100 2 2098 2100 11 2099 2100 2101 2102 2422 2423 2465 2466 2913 2914 2915 11 2099 2100 2101 2102 2422 2423 2465 2466 2913 2914 2915 11 2099 2100 2101 2102 2422 2423 2465 2466 2913 2914 2915 11 2099 2100 2101 2102 2422 2423 2465 2466 2913 2914 2915 11 2099 2100 2101 2102 2422 2423 2465 2466 2913 2914 2915 11 2099 2100 2101 2102 2422 2423 2465 2466 2913 2914 2915 4 2099 2101 2913 2915 4 2099 2101 2913 2915 4 2099 2101 2913 2915 4 2099 2101 2913 2915 4 2099 2101 2913 2915 4 2099 2101 2913 2915 8 2099 2101 2638 2639 2681 2682 2913 2915 8 2099 2101 2638 2639 2681 2682 2913 2915 8 2099 2101 2638 2639 2681 2682 2913 2915 8 2099 2101 2638 2639 2681 2682 2913 2915 8 2099 2101 2638 2639 2681 2682 2913 2915 8 2099 2101 2638 2639 2681 2682 2913 2915 3 2099 2638 2639 3 2099 2638 2639 3 2099 2638 2639 3 2099 2638 2639 3 2099 2638 2639 3 2099 2638 2639 4 2099 2100 2422 2423 4 2099 2100 2422 2423 4 2099 2100 2422 2423 4 2099 2100 2422 2423 4 2099 2100 2422 2423 4 2099 2100 2422 2423 3 2100 2102 2914 3 2100 2102 2914 3 2100 2102 2914 3 2100 2102 2914 3 2100 2102 2914 3 2100 2102 2914 12 2101 2102 2103 2104 2465 2466 2508 2509 2838 2839 2840 2841 12 2101 2102 2103 2104 2465 2466 2508 2509 2838 2839 2840 2841 12 2101 2102 2103 2104 2465 2466 2508 2509 2838 2839 2840 2841 12 2101 2102 2103 2104 2465 2466 2508 2509 2838 2839 2840 2841 12 2101 2102 2103 2104 2465 2466 2508 2509 2838 2839 2840 2841 12 2101 2102 2103 2104 2465 2466 2508 2509 2838 2839 2840 2841 4 2101 2103 2838 2840 4 2101 2103 2838 2840 4 2101 2103 2838 2840 4 2101 2103 2838 2840 4 2101 2103 2838 2840 4 2101 2103 2838 2840 8 2101 2103 2681 2682 2724 2725 2838 2840 8 2101 2103 2681 2682 2724 2725 2838 2840 8 2101 2103 2681 2682 2724 2725 2838 2840 8 2101 2103 2681 2682 2724 2725 2838 2840 8 2101 2103 2681 2682 2724 2725 2838 2840 8 2101 2103 2681 2682 2724 2725 2838 2840 3 2101 2681 2682 3 2101 2681 2682 3 2101 2681 2682 3 2101 2681 2682 3 2101 2681 2682 3 2101 2681 2682 4 2101 2102 2465 2466 4 2101 2102 2465 2466 4 2101 2102 2465 2466 4 2101 2102 2465 2466 4 2101 2102 2465 2466 4 2101 2102 2465 2466 4 2102 2104 2839 2841 4 2102 2104 2839 2841 4 2102 2104 2839 2841 4 2102 2104 2839 2841 4 2102 2104 2839 2841 4 2102 2104 2839 2841 8 2103 2104 2508 2509 2724 2725 2786 2787 8 2103 2104 2508 2509 2724 2725 2786 2787 8 2103 2104 2508 2509 2724 2725 2786 2787 8 2103 2104 2508 2509 2724 2725 2786 2787 8 2103 2104 2508 2509 2724 2725 2786 2787 8 2103 2104 2508 2509 2724 2725 2786 2787 3 2103 2724 2725 3 2103 2724 2725 3 2103 2724 2725 3 2103 2724 2725 3 2103 2724 2725 3 2103 2724 2725 4 2103 2104 2508 2509 4 2103 2104 2508 2509 4 2103 2104 2508 2509 4 2103 2104 2508 2509 4 2103 2104 2508 2509 4 2103 2104 2508 2509 3 2104 2786 2787 3 2104 2786 2787 3 2104 2786 2787 3 2104 2786 2787 3 2104 2786 2787 3 2104 2786 2787 8 2105 2106 2337 2338 2380 2381 3021 3022 8 2105 2106 2337 2338 2380 2381 3021 3022 8 2105 2106 2337 2338 2380 2381 3021 3022 8 2105 2106 2337 2338 2380 2381 3021 3022 8 2105 2106 2337 2338 2380 2381 3021 3022 8 2105 2106 2337 2338 2380 2381 3021 3022 4 2105 2106 3021 3022 4 2105 2106 3021 3022 4 2105 2106 3021 3022 4 2105 2106 3021 3022 4 2105 2106 3021 3022 4 2105 2106 3021 3022 8 2105 2106 2553 2554 2596 2597 3021 3022 8 2105 2106 2553 2554 2596 2597 3021 3022 8 2105 2106 2553 2554 2596 2597 3021 3022 8 2105 2106 2553 2554 2596 2597 3021 3022 8 2105 2106 2553 2554 2596 2597 3021 3022 8 2105 2106 2553 2554 2596 2597 3021 3022 3 2105 2553 2554 3 2105 2553 2554 3 2105 2553 2554 3 2105 2553 2554 3 2105 2553 2554 3 2105 2553 2554 5 2105 2553 2554 3079 3080 5 2105 2553 2554 3079 3080 5 2105 2553 2554 3079 3080 5 2105 2553 2554 3079 3080 5 2105 2553 2554 3079 3080 5 2105 2553 2554 3079 3080 3 2105 3079 3080 3 2105 3079 3080 3 2105 3079 3080 3 2105 3079 3080 3 2105 3079 3080 3 2105 3079 3080 3 2105 2337 2338 3 2105 2337 2338 3 2105 2337 2338 3 2105 2337 2338 3 2105 2337 2338 3 2105 2337 2338 8 2106 2107 2380 2381 2423 2424 2969 2970 8 2106 2107 2380 2381 2423 2424 2969 2970 8 2106 2107 2380 2381 2423 2424 2969 2970 8 2106 2107 2380 2381 2423 2424 2969 2970 8 2106 2107 2380 2381 2423 2424 2969 2970 8 2106 2107 2380 2381 2423 2424 2969 2970 4 2106 2107 2969 2970 4 2106 2107 2969 2970 4 2106 2107 2969 2970 4 2106 2107 2969 2970 4 2106 2107 2969 2970 4 2106 2107 2969 2970 8 2106 2107 2596 2597 2639 2640 2969 2970 8 2106 2107 2596 2597 2639 2640 2969 2970 8 2106 2107 2596 2597 2639 2640 2969 2970 8 2106 2107 2596 2597 2639 2640 2969 2970 8 2106 2107 2596 2597 2639 2640 2969 2970 8 2106 2107 2596 2597 2639 2640 2969 2970 3 2106 2596 2597 3 2106 2596 2597 3 2106 2596 2597 3 2106 2596 2597 3 2106 2596 2597 3 2106 2596 2597 3 2106 2380 2381 3 2106 2380 2381 3 2106 2380 2381 3 2106 2380 2381 3 2106 2380 2381 3 2106 2380 2381 8 2107 2108 2423 2424 2466 2467 2915 2916 8 2107 2108 2423 2424 2466 2467 2915 2916 8 2107 2108 2423 2424 2466 2467 2915 2916 8 2107 2108 2423 2424 2466 2467 2915 2916 8 2107 2108 2423 2424 2466 2467 2915 2916 8 2107 2108 2423 2424 2466 2467 2915 2916 4 2107 2108 2915 2916 4 2107 2108 2915 2916 4 2107 2108 2915 2916 4 2107 2108 2915 2916 4 2107 2108 2915 2916 4 2107 2108 2915 2916 8 2107 2108 2639 2640 2682 2683 2915 2916 8 2107 2108 2639 2640 2682 2683 2915 2916 8 2107 2108 2639 2640 2682 2683 2915 2916 8 2107 2108 2639 2640 2682 2683 2915 2916 8 2107 2108 2639 2640 2682 2683 2915 2916 8 2107 2108 2639 2640 2682 2683 2915 2916 3 2107 2639 2640 3 2107 2639 2640 3 2107 2639 2640 3 2107 2639 2640 3 2107 2639 2640 3 2107 2639 2640 3 2107 2423 2424 3 2107 2423 2424 3 2107 2423 2424 3 2107 2423 2424 3 2107 2423 2424 3 2107 2423 2424 11 2108 2109 2110 2466 2467 2509 2510 2840 2841 2842 2843 11 2108 2109 2110 2466 2467 2509 2510 2840 2841 2842 2843 11 2108 2109 2110 2466 2467 2509 2510 2840 2841 2842 2843 11 2108 2109 2110 2466 2467 2509 2510 2840 2841 2842 2843 11 2108 2109 2110 2466 2467 2509 2510 2840 2841 2842 2843 11 2108 2109 2110 2466 2467 2509 2510 2840 2841 2842 2843 4 2108 2109 2840 2842 4 2108 2109 2840 2842 4 2108 2109 2840 2842 4 2108 2109 2840 2842 4 2108 2109 2840 2842 4 2108 2109 2840 2842 8 2108 2109 2682 2683 2725 2726 2840 2842 8 2108 2109 2682 2683 2725 2726 2840 2842 8 2108 2109 2682 2683 2725 2726 2840 2842 8 2108 2109 2682 2683 2725 2726 2840 2842 8 2108 2109 2682 2683 2725 2726 2840 2842 8 2108 2109 2682 2683 2725 2726 2840 2842 3 2108 2682 2683 3 2108 2682 2683 3 2108 2682 2683 3 2108 2682 2683 3 2108 2682 2683 3 2108 2682 2683 3 2108 2466 2467 3 2108 2466 2467 3 2108 2466 2467 3 2108 2466 2467 3 2108 2466 2467 3 2108 2466 2467 8 2109 2110 2509 2510 2725 2726 2787 2788 8 2109 2110 2509 2510 2725 2726 2787 2788 8 2109 2110 2509 2510 2725 2726 2787 2788 8 2109 2110 2509 2510 2725 2726 2787 2788 8 2109 2110 2509 2510 2725 2726 2787 2788 8 2109 2110 2509 2510 2725 2726 2787 2788 3 2109 2725 2726 3 2109 2725 2726 3 2109 2725 2726 3 2109 2725 2726 3 2109 2725 2726 3 2109 2725 2726 4 2109 2110 2509 2510 4 2109 2110 2509 2510 4 2109 2110 2509 2510 4 2109 2110 2509 2510 4 2109 2110 2509 2510 4 2109 2110 2509 2510 3 2110 2787 2788 3 2110 2787 2788 3 2110 2787 2788 3 2110 2787 2788 3 2110 2787 2788 3 2110 2787 2788 3 2110 2841 2843 3 2110 2841 2843 3 2110 2841 2843 3 2110 2841 2843 3 2110 2841 2843 3 2110 2841 2843 10 2111 2112 2113 2338 2339 2381 2382 3022 3023 3024 10 2111 2112 2113 2338 2339 2381 2382 3022 3023 3024 10 2111 2112 2113 2338 2339 2381 2382 3022 3023 3024 10 2111 2112 2113 2338 2339 2381 2382 3022 3023 3024 10 2111 2112 2113 2338 2339 2381 2382 3022 3023 3024 10 2111 2112 2113 2338 2339 2381 2382 3022 3023 3024 4 2111 2113 3022 3023 4 2111 2113 3022 3023 4 2111 2113 3022 3023 4 2111 2113 3022 3023 4 2111 2113 3022 3023 4 2111 2113 3022 3023 8 2111 2113 2554 2555 2597 2598 3022 3023 8 2111 2113 2554 2555 2597 2598 3022 3023 8 2111 2113 2554 2555 2597 2598 3022 3023 8 2111 2113 2554 2555 2597 2598 3022 3023 8 2111 2113 2554 2555 2597 2598 3022 3023 8 2111 2113 2554 2555 2597 2598 3022 3023 3 2111 2554 2555 3 2111 2554 2555 3 2111 2554 2555 3 2111 2554 2555 3 2111 2554 2555 3 2111 2554 2555 5 2111 2554 2555 3080 3081 5 2111 2554 2555 3080 3081 5 2111 2554 2555 3080 3081 5 2111 2554 2555 3080 3081 5 2111 2554 2555 3080 3081 5 2111 2554 2555 3080 3081 3 2111 3080 3081 3 2111 3080 3081 3 2111 3080 3081 3 2111 3080 3081 3 2111 3080 3081 3 2111 3080 3081 4 2111 2112 2338 2339 4 2111 2112 2338 2339 4 2111 2112 2338 2339 4 2111 2112 2338 2339 4 2111 2112 2338 2339 4 2111 2112 2338 2339 2 2112 3024 2 2112 3024 2 2112 3024 2 2112 3024 2 2112 3024 2 2112 3024 8 2113 2114 2381 2382 2424 2425 2970 2971 8 2113 2114 2381 2382 2424 2425 2970 2971 8 2113 2114 2381 2382 2424 2425 2970 2971 8 2113 2114 2381 2382 2424 2425 2970 2971 8 2113 2114 2381 2382 2424 2425 2970 2971 8 2113 2114 2381 2382 2424 2425 2970 2971 4 2113 2114 2970 2971 4 2113 2114 2970 2971 4 2113 2114 2970 2971 4 2113 2114 2970 2971 4 2113 2114 2970 2971 4 2113 2114 2970 2971 8 2113 2114 2597 2598 2640 2641 2970 2971 8 2113 2114 2597 2598 2640 2641 2970 2971 8 2113 2114 2597 2598 2640 2641 2970 2971 8 2113 2114 2597 2598 2640 2641 2970 2971 8 2113 2114 2597 2598 2640 2641 2970 2971 8 2113 2114 2597 2598 2640 2641 2970 2971 3 2113 2597 2598 3 2113 2597 2598 3 2113 2597 2598 3 2113 2597 2598 3 2113 2597 2598 3 2113 2597 2598 3 2113 2381 2382 3 2113 2381 2382 3 2113 2381 2382 3 2113 2381 2382 3 2113 2381 2382 3 2113 2381 2382 10 2114 2115 2116 2424 2425 2467 2468 2916 2917 2918 10 2114 2115 2116 2424 2425 2467 2468 2916 2917 2918 10 2114 2115 2116 2424 2425 2467 2468 2916 2917 2918 10 2114 2115 2116 2424 2425 2467 2468 2916 2917 2918 10 2114 2115 2116 2424 2425 2467 2468 2916 2917 2918 10 2114 2115 2116 2424 2425 2467 2468 2916 2917 2918 4 2114 2115 2916 2917 4 2114 2115 2916 2917 4 2114 2115 2916 2917 4 2114 2115 2916 2917 4 2114 2115 2916 2917 4 2114 2115 2916 2917 8 2114 2115 2640 2641 2683 2684 2916 2917 8 2114 2115 2640 2641 2683 2684 2916 2917 8 2114 2115 2640 2641 2683 2684 2916 2917 8 2114 2115 2640 2641 2683 2684 2916 2917 8 2114 2115 2640 2641 2683 2684 2916 2917 8 2114 2115 2640 2641 2683 2684 2916 2917 3 2114 2640 2641 3 2114 2640 2641 3 2114 2640 2641 3 2114 2640 2641 3 2114 2640 2641 3 2114 2640 2641 3 2114 2424 2425 3 2114 2424 2425 3 2114 2424 2425 3 2114 2424 2425 3 2114 2424 2425 3 2114 2424 2425 12 2115 2116 2117 2118 2467 2468 2510 2511 2842 2843 2844 2845 12 2115 2116 2117 2118 2467 2468 2510 2511 2842 2843 2844 2845 12 2115 2116 2117 2118 2467 2468 2510 2511 2842 2843 2844 2845 12 2115 2116 2117 2118 2467 2468 2510 2511 2842 2843 2844 2845 12 2115 2116 2117 2118 2467 2468 2510 2511 2842 2843 2844 2845 12 2115 2116 2117 2118 2467 2468 2510 2511 2842 2843 2844 2845 4 2115 2117 2842 2844 4 2115 2117 2842 2844 4 2115 2117 2842 2844 4 2115 2117 2842 2844 4 2115 2117 2842 2844 4 2115 2117 2842 2844 8 2115 2117 2683 2684 2726 2727 2842 2844 8 2115 2117 2683 2684 2726 2727 2842 2844 8 2115 2117 2683 2684 2726 2727 2842 2844 8 2115 2117 2683 2684 2726 2727 2842 2844 8 2115 2117 2683 2684 2726 2727 2842 2844 8 2115 2117 2683 2684 2726 2727 2842 2844 3 2115 2683 2684 3 2115 2683 2684 3 2115 2683 2684 3 2115 2683 2684 3 2115 2683 2684 3 2115 2683 2684 4 2115 2116 2467 2468 4 2115 2116 2467 2468 4 2115 2116 2467 2468 4 2115 2116 2467 2468 4 2115 2116 2467 2468 4 2115 2116 2467 2468 4 2116 2118 2843 2845 4 2116 2118 2843 2845 4 2116 2118 2843 2845 4 2116 2118 2843 2845 4 2116 2118 2843 2845 4 2116 2118 2843 2845 2 2116 2918 2 2116 2918 2 2116 2918 2 2116 2918 2 2116 2918 2 2116 2918 8 2117 2118 2510 2511 2726 2727 2788 2789 8 2117 2118 2510 2511 2726 2727 2788 2789 8 2117 2118 2510 2511 2726 2727 2788 2789 8 2117 2118 2510 2511 2726 2727 2788 2789 8 2117 2118 2510 2511 2726 2727 2788 2789 8 2117 2118 2510 2511 2726 2727 2788 2789 3 2117 2726 2727 3 2117 2726 2727 3 2117 2726 2727 3 2117 2726 2727 3 2117 2726 2727 3 2117 2726 2727 4 2117 2118 2510 2511 4 2117 2118 2510 2511 4 2117 2118 2510 2511 4 2117 2118 2510 2511 4 2117 2118 2510 2511 4 2117 2118 2510 2511 3 2118 2788 2789 3 2118 2788 2789 3 2118 2788 2789 3 2118 2788 2789 3 2118 2788 2789 3 2118 2788 2789 10 2119 2120 2121 2339 2340 2382 2383 3023 3024 3025 10 2119 2120 2121 2339 2340 2382 2383 3023 3024 3025 10 2119 2120 2121 2339 2340 2382 2383 3023 3024 3025 10 2119 2120 2121 2339 2340 2382 2383 3023 3024 3025 10 2119 2120 2121 2339 2340 2382 2383 3023 3024 3025 10 2119 2120 2121 2339 2340 2382 2383 3023 3024 3025 4 2119 2121 3023 3025 4 2119 2121 3023 3025 4 2119 2121 3023 3025 4 2119 2121 3023 3025 4 2119 2121 3023 3025 4 2119 2121 3023 3025 8 2119 2121 2555 2556 2598 2599 3023 3025 8 2119 2121 2555 2556 2598 2599 3023 3025 8 2119 2121 2555 2556 2598 2599 3023 3025 8 2119 2121 2555 2556 2598 2599 3023 3025 8 2119 2121 2555 2556 2598 2599 3023 3025 8 2119 2121 2555 2556 2598 2599 3023 3025 3 2119 2555 2556 3 2119 2555 2556 3 2119 2555 2556 3 2119 2555 2556 3 2119 2555 2556 3 2119 2555 2556 5 2119 2555 2556 3081 3083 5 2119 2555 2556 3081 3083 5 2119 2555 2556 3081 3083 5 2119 2555 2556 3081 3083 5 2119 2555 2556 3081 3083 5 2119 2555 2556 3081 3083 3 2119 3081 3083 3 2119 3081 3083 3 2119 3081 3083 3 2119 3081 3083 3 2119 3081 3083 3 2119 3081 3083 4 2119 2120 2339 2340 4 2119 2120 2339 2340 4 2119 2120 2339 2340 4 2119 2120 2339 2340 4 2119 2120 2339 2340 4 2119 2120 2339 2340 2 2120 3024 2 2120 3024 2 2120 3024 2 2120 3024 2 2120 3024 2 2120 3024 8 2121 2122 2382 2383 2425 2426 2971 2972 8 2121 2122 2382 2383 2425 2426 2971 2972 8 2121 2122 2382 2383 2425 2426 2971 2972 8 2121 2122 2382 2383 2425 2426 2971 2972 8 2121 2122 2382 2383 2425 2426 2971 2972 8 2121 2122 2382 2383 2425 2426 2971 2972 4 2121 2122 2971 2972 4 2121 2122 2971 2972 4 2121 2122 2971 2972 4 2121 2122 2971 2972 4 2121 2122 2971 2972 4 2121 2122 2971 2972 8 2121 2122 2598 2599 2641 2642 2971 2972 8 2121 2122 2598 2599 2641 2642 2971 2972 8 2121 2122 2598 2599 2641 2642 2971 2972 8 2121 2122 2598 2599 2641 2642 2971 2972 8 2121 2122 2598 2599 2641 2642 2971 2972 8 2121 2122 2598 2599 2641 2642 2971 2972 3 2121 2598 2599 3 2121 2598 2599 3 2121 2598 2599 3 2121 2598 2599 3 2121 2598 2599 3 2121 2598 2599 3 2121 2382 2383 3 2121 2382 2383 3 2121 2382 2383 3 2121 2382 2383 3 2121 2382 2383 3 2121 2382 2383 10 2122 2123 2124 2425 2426 2468 2469 2917 2918 2919 10 2122 2123 2124 2425 2426 2468 2469 2917 2918 2919 10 2122 2123 2124 2425 2426 2468 2469 2917 2918 2919 10 2122 2123 2124 2425 2426 2468 2469 2917 2918 2919 10 2122 2123 2124 2425 2426 2468 2469 2917 2918 2919 10 2122 2123 2124 2425 2426 2468 2469 2917 2918 2919 4 2122 2123 2917 2919 4 2122 2123 2917 2919 4 2122 2123 2917 2919 4 2122 2123 2917 2919 4 2122 2123 2917 2919 4 2122 2123 2917 2919 8 2122 2123 2641 2642 2684 2685 2917 2919 8 2122 2123 2641 2642 2684 2685 2917 2919 8 2122 2123 2641 2642 2684 2685 2917 2919 8 2122 2123 2641 2642 2684 2685 2917 2919 8 2122 2123 2641 2642 2684 2685 2917 2919 8 2122 2123 2641 2642 2684 2685 2917 2919 3 2122 2641 2642 3 2122 2641 2642 3 2122 2641 2642 3 2122 2641 2642 3 2122 2641 2642 3 2122 2641 2642 3 2122 2425 2426 3 2122 2425 2426 3 2122 2425 2426 3 2122 2425 2426 3 2122 2425 2426 3 2122 2425 2426 12 2123 2124 2125 2126 2468 2469 2511 2512 2844 2845 2846 2847 12 2123 2124 2125 2126 2468 2469 2511 2512 2844 2845 2846 2847 12 2123 2124 2125 2126 2468 2469 2511 2512 2844 2845 2846 2847 12 2123 2124 2125 2126 2468 2469 2511 2512 2844 2845 2846 2847 12 2123 2124 2125 2126 2468 2469 2511 2512 2844 2845 2846 2847 12 2123 2124 2125 2126 2468 2469 2511 2512 2844 2845 2846 2847 4 2123 2125 2844 2846 4 2123 2125 2844 2846 4 2123 2125 2844 2846 4 2123 2125 2844 2846 4 2123 2125 2844 2846 4 2123 2125 2844 2846 8 2123 2125 2684 2685 2727 2728 2844 2846 8 2123 2125 2684 2685 2727 2728 2844 2846 8 2123 2125 2684 2685 2727 2728 2844 2846 8 2123 2125 2684 2685 2727 2728 2844 2846 8 2123 2125 2684 2685 2727 2728 2844 2846 8 2123 2125 2684 2685 2727 2728 2844 2846 3 2123 2684 2685 3 2123 2684 2685 3 2123 2684 2685 3 2123 2684 2685 3 2123 2684 2685 3 2123 2684 2685 4 2123 2124 2468 2469 4 2123 2124 2468 2469 4 2123 2124 2468 2469 4 2123 2124 2468 2469 4 2123 2124 2468 2469 4 2123 2124 2468 2469 4 2124 2126 2845 2847 4 2124 2126 2845 2847 4 2124 2126 2845 2847 4 2124 2126 2845 2847 4 2124 2126 2845 2847 4 2124 2126 2845 2847 2 2124 2918 2 2124 2918 2 2124 2918 2 2124 2918 2 2124 2918 2 2124 2918 8 2125 2126 2511 2512 2727 2728 2789 2790 8 2125 2126 2511 2512 2727 2728 2789 2790 8 2125 2126 2511 2512 2727 2728 2789 2790 8 2125 2126 2511 2512 2727 2728 2789 2790 8 2125 2126 2511 2512 2727 2728 2789 2790 8 2125 2126 2511 2512 2727 2728 2789 2790 3 2125 2727 2728 3 2125 2727 2728 3 2125 2727 2728 3 2125 2727 2728 3 2125 2727 2728 3 2125 2727 2728 4 2125 2126 2511 2512 4 2125 2126 2511 2512 4 2125 2126 2511 2512 4 2125 2126 2511 2512 4 2125 2126 2511 2512 4 2125 2126 2511 2512 3 2126 2789 2790 3 2126 2789 2790 3 2126 2789 2790 3 2126 2789 2790 3 2126 2789 2790 3 2126 2789 2790 8 2127 2128 2340 2341 2383 2384 3025 3026 8 2127 2128 2340 2341 2383 2384 3025 3026 8 2127 2128 2340 2341 2383 2384 3025 3026 8 2127 2128 2340 2341 2383 2384 3025 3026 8 2127 2128 2340 2341 2383 2384 3025 3026 8 2127 2128 2340 2341 2383 2384 3025 3026 4 2127 2128 3025 3026 4 2127 2128 3025 3026 4 2127 2128 3025 3026 4 2127 2128 3025 3026 4 2127 2128 3025 3026 4 2127 2128 3025 3026 8 2127 2128 2556 2557 2599 2600 3025 3026 8 2127 2128 2556 2557 2599 2600 3025 3026 8 2127 2128 2556 2557 2599 2600 3025 3026 8 2127 2128 2556 2557 2599 2600 3025 3026 8 2127 2128 2556 2557 2599 2600 3025 3026 8 2127 2128 2556 2557 2599 2600 3025 3026 3 2127 2556 2557 3 2127 2556 2557 3 2127 2556 2557 3 2127 2556 2557 3 2127 2556 2557 3 2127 2556 2557 5 2127 2556 2557 3083 3084 5 2127 2556 2557 3083 3084 5 2127 2556 2557 3083 3084 5 2127 2556 2557 3083 3084 5 2127 2556 2557 3083 3084 5 2127 2556 2557 3083 3084 3 2127 3083 3084 3 2127 3083 3084 3 2127 3083 3084 3 2127 3083 3084 3 2127 3083 3084 3 2127 3083 3084 3 2127 2340 2341 3 2127 2340 2341 3 2127 2340 2341 3 2127 2340 2341 3 2127 2340 2341 3 2127 2340 2341 8 2128 2129 2383 2384 2426 2427 2972 2973 8 2128 2129 2383 2384 2426 2427 2972 2973 8 2128 2129 2383 2384 2426 2427 2972 2973 8 2128 2129 2383 2384 2426 2427 2972 2973 8 2128 2129 2383 2384 2426 2427 2972 2973 8 2128 2129 2383 2384 2426 2427 2972 2973 4 2128 2129 2972 2973 4 2128 2129 2972 2973 4 2128 2129 2972 2973 4 2128 2129 2972 2973 4 2128 2129 2972 2973 4 2128 2129 2972 2973 8 2128 2129 2599 2600 2642 2643 2972 2973 8 2128 2129 2599 2600 2642 2643 2972 2973 8 2128 2129 2599 2600 2642 2643 2972 2973 8 2128 2129 2599 2600 2642 2643 2972 2973 8 2128 2129 2599 2600 2642 2643 2972 2973 8 2128 2129 2599 2600 2642 2643 2972 2973 3 2128 2599 2600 3 2128 2599 2600 3 2128 2599 2600 3 2128 2599 2600 3 2128 2599 2600 3 2128 2599 2600 3 2128 2383 2384 3 2128 2383 2384 3 2128 2383 2384 3 2128 2383 2384 3 2128 2383 2384 3 2128 2383 2384 8 2129 2130 2426 2427 2469 2470 2919 2920 8 2129 2130 2426 2427 2469 2470 2919 2920 8 2129 2130 2426 2427 2469 2470 2919 2920 8 2129 2130 2426 2427 2469 2470 2919 2920 8 2129 2130 2426 2427 2469 2470 2919 2920 8 2129 2130 2426 2427 2469 2470 2919 2920 4 2129 2130 2919 2920 4 2129 2130 2919 2920 4 2129 2130 2919 2920 4 2129 2130 2919 2920 4 2129 2130 2919 2920 4 2129 2130 2919 2920 8 2129 2130 2642 2643 2685 2686 2919 2920 8 2129 2130 2642 2643 2685 2686 2919 2920 8 2129 2130 2642 2643 2685 2686 2919 2920 8 2129 2130 2642 2643 2685 2686 2919 2920 8 2129 2130 2642 2643 2685 2686 2919 2920 8 2129 2130 2642 2643 2685 2686 2919 2920 3 2129 2642 2643 3 2129 2642 2643 3 2129 2642 2643 3 2129 2642 2643 3 2129 2642 2643 3 2129 2642 2643 3 2129 2426 2427 3 2129 2426 2427 3 2129 2426 2427 3 2129 2426 2427 3 2129 2426 2427 3 2129 2426 2427 11 2130 2131 2132 2469 2470 2512 2513 2846 2847 2848 2849 11 2130 2131 2132 2469 2470 2512 2513 2846 2847 2848 2849 11 2130 2131 2132 2469 2470 2512 2513 2846 2847 2848 2849 11 2130 2131 2132 2469 2470 2512 2513 2846 2847 2848 2849 11 2130 2131 2132 2469 2470 2512 2513 2846 2847 2848 2849 11 2130 2131 2132 2469 2470 2512 2513 2846 2847 2848 2849 4 2130 2131 2846 2848 4 2130 2131 2846 2848 4 2130 2131 2846 2848 4 2130 2131 2846 2848 4 2130 2131 2846 2848 4 2130 2131 2846 2848 8 2130 2131 2685 2686 2728 2729 2846 2848 8 2130 2131 2685 2686 2728 2729 2846 2848 8 2130 2131 2685 2686 2728 2729 2846 2848 8 2130 2131 2685 2686 2728 2729 2846 2848 8 2130 2131 2685 2686 2728 2729 2846 2848 8 2130 2131 2685 2686 2728 2729 2846 2848 3 2130 2685 2686 3 2130 2685 2686 3 2130 2685 2686 3 2130 2685 2686 3 2130 2685 2686 3 2130 2685 2686 3 2130 2469 2470 3 2130 2469 2470 3 2130 2469 2470 3 2130 2469 2470 3 2130 2469 2470 3 2130 2469 2470 8 2131 2132 2512 2513 2728 2729 2790 2791 8 2131 2132 2512 2513 2728 2729 2790 2791 8 2131 2132 2512 2513 2728 2729 2790 2791 8 2131 2132 2512 2513 2728 2729 2790 2791 8 2131 2132 2512 2513 2728 2729 2790 2791 8 2131 2132 2512 2513 2728 2729 2790 2791 3 2131 2728 2729 3 2131 2728 2729 3 2131 2728 2729 3 2131 2728 2729 3 2131 2728 2729 3 2131 2728 2729 4 2131 2132 2512 2513 4 2131 2132 2512 2513 4 2131 2132 2512 2513 4 2131 2132 2512 2513 4 2131 2132 2512 2513 4 2131 2132 2512 2513 3 2132 2790 2791 3 2132 2790 2791 3 2132 2790 2791 3 2132 2790 2791 3 2132 2790 2791 3 2132 2790 2791 3 2132 2847 2849 3 2132 2847 2849 3 2132 2847 2849 3 2132 2847 2849 3 2132 2847 2849 3 2132 2847 2849 10 2133 2134 2135 2341 2342 2384 2385 3026 3027 3028 10 2133 2134 2135 2341 2342 2384 2385 3026 3027 3028 10 2133 2134 2135 2341 2342 2384 2385 3026 3027 3028 10 2133 2134 2135 2341 2342 2384 2385 3026 3027 3028 10 2133 2134 2135 2341 2342 2384 2385 3026 3027 3028 10 2133 2134 2135 2341 2342 2384 2385 3026 3027 3028 4 2133 2135 3026 3027 4 2133 2135 3026 3027 4 2133 2135 3026 3027 4 2133 2135 3026 3027 4 2133 2135 3026 3027 4 2133 2135 3026 3027 8 2133 2135 2557 2558 2600 2601 3026 3027 8 2133 2135 2557 2558 2600 2601 3026 3027 8 2133 2135 2557 2558 2600 2601 3026 3027 8 2133 2135 2557 2558 2600 2601 3026 3027 8 2133 2135 2557 2558 2600 2601 3026 3027 8 2133 2135 2557 2558 2600 2601 3026 3027 3 2133 2557 2558 3 2133 2557 2558 3 2133 2557 2558 3 2133 2557 2558 3 2133 2557 2558 3 2133 2557 2558 5 2133 2557 2558 3084 3085 5 2133 2557 2558 3084 3085 5 2133 2557 2558 3084 3085 5 2133 2557 2558 3084 3085 5 2133 2557 2558 3084 3085 5 2133 2557 2558 3084 3085 3 2133 3084 3085 3 2133 3084 3085 3 2133 3084 3085 3 2133 3084 3085 3 2133 3084 3085 3 2133 3084 3085 4 2133 2134 2341 2342 4 2133 2134 2341 2342 4 2133 2134 2341 2342 4 2133 2134 2341 2342 4 2133 2134 2341 2342 4 2133 2134 2341 2342 2 2134 3028 2 2134 3028 2 2134 3028 2 2134 3028 2 2134 3028 2 2134 3028 8 2135 2136 2384 2385 2427 2428 2973 2974 8 2135 2136 2384 2385 2427 2428 2973 2974 8 2135 2136 2384 2385 2427 2428 2973 2974 8 2135 2136 2384 2385 2427 2428 2973 2974 8 2135 2136 2384 2385 2427 2428 2973 2974 8 2135 2136 2384 2385 2427 2428 2973 2974 4 2135 2136 2973 2974 4 2135 2136 2973 2974 4 2135 2136 2973 2974 4 2135 2136 2973 2974 4 2135 2136 2973 2974 4 2135 2136 2973 2974 8 2135 2136 2600 2601 2643 2644 2973 2974 8 2135 2136 2600 2601 2643 2644 2973 2974 8 2135 2136 2600 2601 2643 2644 2973 2974 8 2135 2136 2600 2601 2643 2644 2973 2974 8 2135 2136 2600 2601 2643 2644 2973 2974 8 2135 2136 2600 2601 2643 2644 2973 2974 3 2135 2600 2601 3 2135 2600 2601 3 2135 2600 2601 3 2135 2600 2601 3 2135 2600 2601 3 2135 2600 2601 3 2135 2384 2385 3 2135 2384 2385 3 2135 2384 2385 3 2135 2384 2385 3 2135 2384 2385 3 2135 2384 2385 10 2136 2137 2138 2427 2428 2470 2471 2920 2921 2922 10 2136 2137 2138 2427 2428 2470 2471 2920 2921 2922 10 2136 2137 2138 2427 2428 2470 2471 2920 2921 2922 10 2136 2137 2138 2427 2428 2470 2471 2920 2921 2922 10 2136 2137 2138 2427 2428 2470 2471 2920 2921 2922 10 2136 2137 2138 2427 2428 2470 2471 2920 2921 2922 4 2136 2137 2920 2921 4 2136 2137 2920 2921 4 2136 2137 2920 2921 4 2136 2137 2920 2921 4 2136 2137 2920 2921 4 2136 2137 2920 2921 8 2136 2137 2643 2644 2686 2687 2920 2921 8 2136 2137 2643 2644 2686 2687 2920 2921 8 2136 2137 2643 2644 2686 2687 2920 2921 8 2136 2137 2643 2644 2686 2687 2920 2921 8 2136 2137 2643 2644 2686 2687 2920 2921 8 2136 2137 2643 2644 2686 2687 2920 2921 3 2136 2643 2644 3 2136 2643 2644 3 2136 2643 2644 3 2136 2643 2644 3 2136 2643 2644 3 2136 2643 2644 3 2136 2427 2428 3 2136 2427 2428 3 2136 2427 2428 3 2136 2427 2428 3 2136 2427 2428 3 2136 2427 2428 12 2137 2138 2139 2140 2470 2471 2513 2514 2848 2849 2850 2851 12 2137 2138 2139 2140 2470 2471 2513 2514 2848 2849 2850 2851 12 2137 2138 2139 2140 2470 2471 2513 2514 2848 2849 2850 2851 12 2137 2138 2139 2140 2470 2471 2513 2514 2848 2849 2850 2851 12 2137 2138 2139 2140 2470 2471 2513 2514 2848 2849 2850 2851 12 2137 2138 2139 2140 2470 2471 2513 2514 2848 2849 2850 2851 4 2137 2139 2848 2850 4 2137 2139 2848 2850 4 2137 2139 2848 2850 4 2137 2139 2848 2850 4 2137 2139 2848 2850 4 2137 2139 2848 2850 8 2137 2139 2686 2687 2729 2730 2848 2850 8 2137 2139 2686 2687 2729 2730 2848 2850 8 2137 2139 2686 2687 2729 2730 2848 2850 8 2137 2139 2686 2687 2729 2730 2848 2850 8 2137 2139 2686 2687 2729 2730 2848 2850 8 2137 2139 2686 2687 2729 2730 2848 2850 3 2137 2686 2687 3 2137 2686 2687 3 2137 2686 2687 3 2137 2686 2687 3 2137 2686 2687 3 2137 2686 2687 4 2137 2138 2470 2471 4 2137 2138 2470 2471 4 2137 2138 2470 2471 4 2137 2138 2470 2471 4 2137 2138 2470 2471 4 2137 2138 2470 2471 4 2138 2140 2849 2851 4 2138 2140 2849 2851 4 2138 2140 2849 2851 4 2138 2140 2849 2851 4 2138 2140 2849 2851 4 2138 2140 2849 2851 2 2138 2922 2 2138 2922 2 2138 2922 2 2138 2922 2 2138 2922 2 2138 2922 8 2139 2140 2513 2514 2729 2730 2791 2792 8 2139 2140 2513 2514 2729 2730 2791 2792 8 2139 2140 2513 2514 2729 2730 2791 2792 8 2139 2140 2513 2514 2729 2730 2791 2792 8 2139 2140 2513 2514 2729 2730 2791 2792 8 2139 2140 2513 2514 2729 2730 2791 2792 3 2139 2729 2730 3 2139 2729 2730 3 2139 2729 2730 3 2139 2729 2730 3 2139 2729 2730 3 2139 2729 2730 4 2139 2140 2513 2514 4 2139 2140 2513 2514 4 2139 2140 2513 2514 4 2139 2140 2513 2514 4 2139 2140 2513 2514 4 2139 2140 2513 2514 3 2140 2791 2792 3 2140 2791 2792 3 2140 2791 2792 3 2140 2791 2792 3 2140 2791 2792 3 2140 2791 2792 11 2141 2142 2143 2144 2342 2343 2385 2386 3027 3028 3029 11 2141 2142 2143 2144 2342 2343 2385 2386 3027 3028 3029 11 2141 2142 2143 2144 2342 2343 2385 2386 3027 3028 3029 11 2141 2142 2143 2144 2342 2343 2385 2386 3027 3028 3029 11 2141 2142 2143 2144 2342 2343 2385 2386 3027 3028 3029 11 2141 2142 2143 2144 2342 2343 2385 2386 3027 3028 3029 4 2141 2143 3027 3029 4 2141 2143 3027 3029 4 2141 2143 3027 3029 4 2141 2143 3027 3029 4 2141 2143 3027 3029 4 2141 2143 3027 3029 8 2141 2143 2558 2559 2601 2602 3027 3029 8 2141 2143 2558 2559 2601 2602 3027 3029 8 2141 2143 2558 2559 2601 2602 3027 3029 8 2141 2143 2558 2559 2601 2602 3027 3029 8 2141 2143 2558 2559 2601 2602 3027 3029 8 2141 2143 2558 2559 2601 2602 3027 3029 3 2141 2558 2559 3 2141 2558 2559 3 2141 2558 2559 3 2141 2558 2559 3 2141 2558 2559 3 2141 2558 2559 5 2141 2558 2559 3085 3087 5 2141 2558 2559 3085 3087 5 2141 2558 2559 3085 3087 5 2141 2558 2559 3085 3087 5 2141 2558 2559 3085 3087 5 2141 2558 2559 3085 3087 3 2141 3085 3087 3 2141 3085 3087 3 2141 3085 3087 3 2141 3085 3087 3 2141 3085 3087 3 2141 3085 3087 4 2141 2142 2342 2343 4 2141 2142 2342 2343 4 2141 2142 2342 2343 4 2141 2142 2342 2343 4 2141 2142 2342 2343 4 2141 2142 2342 2343 3 2142 2144 3028 3 2142 2144 3028 3 2142 2144 3028 3 2142 2144 3028 3 2142 2144 3028 3 2142 2144 3028 10 2143 2144 2145 2146 2385 2386 2428 2429 2974 2975 10 2143 2144 2145 2146 2385 2386 2428 2429 2974 2975 10 2143 2144 2145 2146 2385 2386 2428 2429 2974 2975 10 2143 2144 2145 2146 2385 2386 2428 2429 2974 2975 10 2143 2144 2145 2146 2385 2386 2428 2429 2974 2975 10 2143 2144 2145 2146 2385 2386 2428 2429 2974 2975 4 2143 2145 2974 2975 4 2143 2145 2974 2975 4 2143 2145 2974 2975 4 2143 2145 2974 2975 4 2143 2145 2974 2975 4 2143 2145 2974 2975 8 2143 2145 2601 2602 2644 2645 2974 2975 8 2143 2145 2601 2602 2644 2645 2974 2975 8 2143 2145 2601 2602 2644 2645 2974 2975 8 2143 2145 2601 2602 2644 2645 2974 2975 8 2143 2145 2601 2602 2644 2645 2974 2975 8 2143 2145 2601 2602 2644 2645 2974 2975 3 2143 2601 2602 3 2143 2601 2602 3 2143 2601 2602 3 2143 2601 2602 3 2143 2601 2602 3 2143 2601 2602 4 2143 2144 2385 2386 4 2143 2144 2385 2386 4 2143 2144 2385 2386 4 2143 2144 2385 2386 4 2143 2144 2385 2386 4 2143 2144 2385 2386 2 2144 2146 2 2144 2146 2 2144 2146 2 2144 2146 2 2144 2146 2 2144 2146 11 2145 2146 2147 2148 2428 2429 2471 2472 2921 2922 2923 11 2145 2146 2147 2148 2428 2429 2471 2472 2921 2922 2923 11 2145 2146 2147 2148 2428 2429 2471 2472 2921 2922 2923 11 2145 2146 2147 2148 2428 2429 2471 2472 2921 2922 2923 11 2145 2146 2147 2148 2428 2429 2471 2472 2921 2922 2923 11 2145 2146 2147 2148 2428 2429 2471 2472 2921 2922 2923 4 2145 2147 2921 2923 4 2145 2147 2921 2923 4 2145 2147 2921 2923 4 2145 2147 2921 2923 4 2145 2147 2921 2923 4 2145 2147 2921 2923 8 2145 2147 2644 2645 2687 2688 2921 2923 8 2145 2147 2644 2645 2687 2688 2921 2923 8 2145 2147 2644 2645 2687 2688 2921 2923 8 2145 2147 2644 2645 2687 2688 2921 2923 8 2145 2147 2644 2645 2687 2688 2921 2923 8 2145 2147 2644 2645 2687 2688 2921 2923 3 2145 2644 2645 3 2145 2644 2645 3 2145 2644 2645 3 2145 2644 2645 3 2145 2644 2645 3 2145 2644 2645 4 2145 2146 2428 2429 4 2145 2146 2428 2429 4 2145 2146 2428 2429 4 2145 2146 2428 2429 4 2145 2146 2428 2429 4 2145 2146 2428 2429 3 2146 2148 2922 3 2146 2148 2922 3 2146 2148 2922 3 2146 2148 2922 3 2146 2148 2922 3 2146 2148 2922 12 2147 2148 2149 2150 2471 2472 2514 2515 2850 2851 2852 2853 12 2147 2148 2149 2150 2471 2472 2514 2515 2850 2851 2852 2853 12 2147 2148 2149 2150 2471 2472 2514 2515 2850 2851 2852 2853 12 2147 2148 2149 2150 2471 2472 2514 2515 2850 2851 2852 2853 12 2147 2148 2149 2150 2471 2472 2514 2515 2850 2851 2852 2853 12 2147 2148 2149 2150 2471 2472 2514 2515 2850 2851 2852 2853 4 2147 2149 2850 2852 4 2147 2149 2850 2852 4 2147 2149 2850 2852 4 2147 2149 2850 2852 4 2147 2149 2850 2852 4 2147 2149 2850 2852 8 2147 2149 2687 2688 2730 2731 2850 2852 8 2147 2149 2687 2688 2730 2731 2850 2852 8 2147 2149 2687 2688 2730 2731 2850 2852 8 2147 2149 2687 2688 2730 2731 2850 2852 8 2147 2149 2687 2688 2730 2731 2850 2852 8 2147 2149 2687 2688 2730 2731 2850 2852 3 2147 2687 2688 3 2147 2687 2688 3 2147 2687 2688 3 2147 2687 2688 3 2147 2687 2688 3 2147 2687 2688 4 2147 2148 2471 2472 4 2147 2148 2471 2472 4 2147 2148 2471 2472 4 2147 2148 2471 2472 4 2147 2148 2471 2472 4 2147 2148 2471 2472 4 2148 2150 2851 2853 4 2148 2150 2851 2853 4 2148 2150 2851 2853 4 2148 2150 2851 2853 4 2148 2150 2851 2853 4 2148 2150 2851 2853 8 2149 2150 2514 2515 2730 2731 2792 2793 8 2149 2150 2514 2515 2730 2731 2792 2793 8 2149 2150 2514 2515 2730 2731 2792 2793 8 2149 2150 2514 2515 2730 2731 2792 2793 8 2149 2150 2514 2515 2730 2731 2792 2793 8 2149 2150 2514 2515 2730 2731 2792 2793 3 2149 2730 2731 3 2149 2730 2731 3 2149 2730 2731 3 2149 2730 2731 3 2149 2730 2731 3 2149 2730 2731 4 2149 2150 2514 2515 4 2149 2150 2514 2515 4 2149 2150 2514 2515 4 2149 2150 2514 2515 4 2149 2150 2514 2515 4 2149 2150 2514 2515 3 2150 2792 2793 3 2150 2792 2793 3 2150 2792 2793 3 2150 2792 2793 3 2150 2792 2793 3 2150 2792 2793 8 2151 2152 2343 2344 2386 2387 3029 3030 8 2151 2152 2343 2344 2386 2387 3029 3030 8 2151 2152 2343 2344 2386 2387 3029 3030 8 2151 2152 2343 2344 2386 2387 3029 3030 8 2151 2152 2343 2344 2386 2387 3029 3030 8 2151 2152 2343 2344 2386 2387 3029 3030 4 2151 2152 3029 3030 4 2151 2152 3029 3030 4 2151 2152 3029 3030 4 2151 2152 3029 3030 4 2151 2152 3029 3030 4 2151 2152 3029 3030 8 2151 2152 2559 2560 2602 2603 3029 3030 8 2151 2152 2559 2560 2602 2603 3029 3030 8 2151 2152 2559 2560 2602 2603 3029 3030 8 2151 2152 2559 2560 2602 2603 3029 3030 8 2151 2152 2559 2560 2602 2603 3029 3030 8 2151 2152 2559 2560 2602 2603 3029 3030 3 2151 2559 2560 3 2151 2559 2560 3 2151 2559 2560 3 2151 2559 2560 3 2151 2559 2560 3 2151 2559 2560 5 2151 2559 2560 3087 3088 5 2151 2559 2560 3087 3088 5 2151 2559 2560 3087 3088 5 2151 2559 2560 3087 3088 5 2151 2559 2560 3087 3088 5 2151 2559 2560 3087 3088 3 2151 3087 3088 3 2151 3087 3088 3 2151 3087 3088 3 2151 3087 3088 3 2151 3087 3088 3 2151 3087 3088 3 2151 2343 2344 3 2151 2343 2344 3 2151 2343 2344 3 2151 2343 2344 3 2151 2343 2344 3 2151 2343 2344 8 2152 2153 2386 2387 2429 2430 2975 2976 8 2152 2153 2386 2387 2429 2430 2975 2976 8 2152 2153 2386 2387 2429 2430 2975 2976 8 2152 2153 2386 2387 2429 2430 2975 2976 8 2152 2153 2386 2387 2429 2430 2975 2976 8 2152 2153 2386 2387 2429 2430 2975 2976 4 2152 2153 2975 2976 4 2152 2153 2975 2976 4 2152 2153 2975 2976 4 2152 2153 2975 2976 4 2152 2153 2975 2976 4 2152 2153 2975 2976 8 2152 2153 2602 2603 2645 2646 2975 2976 8 2152 2153 2602 2603 2645 2646 2975 2976 8 2152 2153 2602 2603 2645 2646 2975 2976 8 2152 2153 2602 2603 2645 2646 2975 2976 8 2152 2153 2602 2603 2645 2646 2975 2976 8 2152 2153 2602 2603 2645 2646 2975 2976 3 2152 2602 2603 3 2152 2602 2603 3 2152 2602 2603 3 2152 2602 2603 3 2152 2602 2603 3 2152 2602 2603 3 2152 2386 2387 3 2152 2386 2387 3 2152 2386 2387 3 2152 2386 2387 3 2152 2386 2387 3 2152 2386 2387 8 2153 2154 2429 2430 2472 2473 2923 2924 8 2153 2154 2429 2430 2472 2473 2923 2924 8 2153 2154 2429 2430 2472 2473 2923 2924 8 2153 2154 2429 2430 2472 2473 2923 2924 8 2153 2154 2429 2430 2472 2473 2923 2924 8 2153 2154 2429 2430 2472 2473 2923 2924 4 2153 2154 2923 2924 4 2153 2154 2923 2924 4 2153 2154 2923 2924 4 2153 2154 2923 2924 4 2153 2154 2923 2924 4 2153 2154 2923 2924 8 2153 2154 2645 2646 2688 2689 2923 2924 8 2153 2154 2645 2646 2688 2689 2923 2924 8 2153 2154 2645 2646 2688 2689 2923 2924 8 2153 2154 2645 2646 2688 2689 2923 2924 8 2153 2154 2645 2646 2688 2689 2923 2924 8 2153 2154 2645 2646 2688 2689 2923 2924 3 2153 2645 2646 3 2153 2645 2646 3 2153 2645 2646 3 2153 2645 2646 3 2153 2645 2646 3 2153 2645 2646 3 2153 2429 2430 3 2153 2429 2430 3 2153 2429 2430 3 2153 2429 2430 3 2153 2429 2430 3 2153 2429 2430 11 2154 2155 2156 2472 2473 2515 2516 2852 2853 2854 2855 11 2154 2155 2156 2472 2473 2515 2516 2852 2853 2854 2855 11 2154 2155 2156 2472 2473 2515 2516 2852 2853 2854 2855 11 2154 2155 2156 2472 2473 2515 2516 2852 2853 2854 2855 11 2154 2155 2156 2472 2473 2515 2516 2852 2853 2854 2855 11 2154 2155 2156 2472 2473 2515 2516 2852 2853 2854 2855 4 2154 2155 2852 2854 4 2154 2155 2852 2854 4 2154 2155 2852 2854 4 2154 2155 2852 2854 4 2154 2155 2852 2854 4 2154 2155 2852 2854 8 2154 2155 2688 2689 2731 2732 2852 2854 8 2154 2155 2688 2689 2731 2732 2852 2854 8 2154 2155 2688 2689 2731 2732 2852 2854 8 2154 2155 2688 2689 2731 2732 2852 2854 8 2154 2155 2688 2689 2731 2732 2852 2854 8 2154 2155 2688 2689 2731 2732 2852 2854 3 2154 2688 2689 3 2154 2688 2689 3 2154 2688 2689 3 2154 2688 2689 3 2154 2688 2689 3 2154 2688 2689 3 2154 2472 2473 3 2154 2472 2473 3 2154 2472 2473 3 2154 2472 2473 3 2154 2472 2473 3 2154 2472 2473 8 2155 2156 2515 2516 2731 2732 2793 2794 8 2155 2156 2515 2516 2731 2732 2793 2794 8 2155 2156 2515 2516 2731 2732 2793 2794 8 2155 2156 2515 2516 2731 2732 2793 2794 8 2155 2156 2515 2516 2731 2732 2793 2794 8 2155 2156 2515 2516 2731 2732 2793 2794 3 2155 2731 2732 3 2155 2731 2732 3 2155 2731 2732 3 2155 2731 2732 3 2155 2731 2732 3 2155 2731 2732 4 2155 2156 2515 2516 4 2155 2156 2515 2516 4 2155 2156 2515 2516 4 2155 2156 2515 2516 4 2155 2156 2515 2516 4 2155 2156 2515 2516 3 2156 2793 2794 3 2156 2793 2794 3 2156 2793 2794 3 2156 2793 2794 3 2156 2793 2794 3 2156 2793 2794 3 2156 2853 2855 3 2156 2853 2855 3 2156 2853 2855 3 2156 2853 2855 3 2156 2853 2855 3 2156 2853 2855 10 2157 2158 2159 2344 2345 2387 2388 3030 3031 3032 10 2157 2158 2159 2344 2345 2387 2388 3030 3031 3032 10 2157 2158 2159 2344 2345 2387 2388 3030 3031 3032 10 2157 2158 2159 2344 2345 2387 2388 3030 3031 3032 10 2157 2158 2159 2344 2345 2387 2388 3030 3031 3032 10 2157 2158 2159 2344 2345 2387 2388 3030 3031 3032 4 2157 2159 3030 3031 4 2157 2159 3030 3031 4 2157 2159 3030 3031 4 2157 2159 3030 3031 4 2157 2159 3030 3031 4 2157 2159 3030 3031 8 2157 2159 2560 2561 2603 2604 3030 3031 8 2157 2159 2560 2561 2603 2604 3030 3031 8 2157 2159 2560 2561 2603 2604 3030 3031 8 2157 2159 2560 2561 2603 2604 3030 3031 8 2157 2159 2560 2561 2603 2604 3030 3031 8 2157 2159 2560 2561 2603 2604 3030 3031 3 2157 2560 2561 3 2157 2560 2561 3 2157 2560 2561 3 2157 2560 2561 3 2157 2560 2561 3 2157 2560 2561 5 2157 2560 2561 3088 3089 5 2157 2560 2561 3088 3089 5 2157 2560 2561 3088 3089 5 2157 2560 2561 3088 3089 5 2157 2560 2561 3088 3089 5 2157 2560 2561 3088 3089 3 2157 3088 3089 3 2157 3088 3089 3 2157 3088 3089 3 2157 3088 3089 3 2157 3088 3089 3 2157 3088 3089 4 2157 2158 2344 2345 4 2157 2158 2344 2345 4 2157 2158 2344 2345 4 2157 2158 2344 2345 4 2157 2158 2344 2345 4 2157 2158 2344 2345 2 2158 3032 2 2158 3032 2 2158 3032 2 2158 3032 2 2158 3032 2 2158 3032 8 2159 2160 2387 2388 2430 2431 2976 2977 8 2159 2160 2387 2388 2430 2431 2976 2977 8 2159 2160 2387 2388 2430 2431 2976 2977 8 2159 2160 2387 2388 2430 2431 2976 2977 8 2159 2160 2387 2388 2430 2431 2976 2977 8 2159 2160 2387 2388 2430 2431 2976 2977 4 2159 2160 2976 2977 4 2159 2160 2976 2977 4 2159 2160 2976 2977 4 2159 2160 2976 2977 4 2159 2160 2976 2977 4 2159 2160 2976 2977 8 2159 2160 2603 2604 2646 2647 2976 2977 8 2159 2160 2603 2604 2646 2647 2976 2977 8 2159 2160 2603 2604 2646 2647 2976 2977 8 2159 2160 2603 2604 2646 2647 2976 2977 8 2159 2160 2603 2604 2646 2647 2976 2977 8 2159 2160 2603 2604 2646 2647 2976 2977 3 2159 2603 2604 3 2159 2603 2604 3 2159 2603 2604 3 2159 2603 2604 3 2159 2603 2604 3 2159 2603 2604 3 2159 2387 2388 3 2159 2387 2388 3 2159 2387 2388 3 2159 2387 2388 3 2159 2387 2388 3 2159 2387 2388 10 2160 2161 2162 2430 2431 2473 2474 2924 2925 2926 10 2160 2161 2162 2430 2431 2473 2474 2924 2925 2926 10 2160 2161 2162 2430 2431 2473 2474 2924 2925 2926 10 2160 2161 2162 2430 2431 2473 2474 2924 2925 2926 10 2160 2161 2162 2430 2431 2473 2474 2924 2925 2926 10 2160 2161 2162 2430 2431 2473 2474 2924 2925 2926 4 2160 2161 2924 2925 4 2160 2161 2924 2925 4 2160 2161 2924 2925 4 2160 2161 2924 2925 4 2160 2161 2924 2925 4 2160 2161 2924 2925 8 2160 2161 2646 2647 2689 2690 2924 2925 8 2160 2161 2646 2647 2689 2690 2924 2925 8 2160 2161 2646 2647 2689 2690 2924 2925 8 2160 2161 2646 2647 2689 2690 2924 2925 8 2160 2161 2646 2647 2689 2690 2924 2925 8 2160 2161 2646 2647 2689 2690 2924 2925 3 2160 2646 2647 3 2160 2646 2647 3 2160 2646 2647 3 2160 2646 2647 3 2160 2646 2647 3 2160 2646 2647 3 2160 2430 2431 3 2160 2430 2431 3 2160 2430 2431 3 2160 2430 2431 3 2160 2430 2431 3 2160 2430 2431 12 2161 2162 2163 2164 2473 2474 2516 2517 2854 2855 2856 2857 12 2161 2162 2163 2164 2473 2474 2516 2517 2854 2855 2856 2857 12 2161 2162 2163 2164 2473 2474 2516 2517 2854 2855 2856 2857 12 2161 2162 2163 2164 2473 2474 2516 2517 2854 2855 2856 2857 12 2161 2162 2163 2164 2473 2474 2516 2517 2854 2855 2856 2857 12 2161 2162 2163 2164 2473 2474 2516 2517 2854 2855 2856 2857 4 2161 2163 2854 2856 4 2161 2163 2854 2856 4 2161 2163 2854 2856 4 2161 2163 2854 2856 4 2161 2163 2854 2856 4 2161 2163 2854 2856 8 2161 2163 2689 2690 2732 2733 2854 2856 8 2161 2163 2689 2690 2732 2733 2854 2856 8 2161 2163 2689 2690 2732 2733 2854 2856 8 2161 2163 2689 2690 2732 2733 2854 2856 8 2161 2163 2689 2690 2732 2733 2854 2856 8 2161 2163 2689 2690 2732 2733 2854 2856 3 2161 2689 2690 3 2161 2689 2690 3 2161 2689 2690 3 2161 2689 2690 3 2161 2689 2690 3 2161 2689 2690 4 2161 2162 2473 2474 4 2161 2162 2473 2474 4 2161 2162 2473 2474 4 2161 2162 2473 2474 4 2161 2162 2473 2474 4 2161 2162 2473 2474 4 2162 2164 2855 2857 4 2162 2164 2855 2857 4 2162 2164 2855 2857 4 2162 2164 2855 2857 4 2162 2164 2855 2857 4 2162 2164 2855 2857 2 2162 2926 2 2162 2926 2 2162 2926 2 2162 2926 2 2162 2926 2 2162 2926 8 2163 2164 2516 2517 2732 2733 2794 2795 8 2163 2164 2516 2517 2732 2733 2794 2795 8 2163 2164 2516 2517 2732 2733 2794 2795 8 2163 2164 2516 2517 2732 2733 2794 2795 8 2163 2164 2516 2517 2732 2733 2794 2795 8 2163 2164 2516 2517 2732 2733 2794 2795 3 2163 2732 2733 3 2163 2732 2733 3 2163 2732 2733 3 2163 2732 2733 3 2163 2732 2733 3 2163 2732 2733 4 2163 2164 2516 2517 4 2163 2164 2516 2517 4 2163 2164 2516 2517 4 2163 2164 2516 2517 4 2163 2164 2516 2517 4 2163 2164 2516 2517 3 2164 2794 2795 3 2164 2794 2795 3 2164 2794 2795 3 2164 2794 2795 3 2164 2794 2795 3 2164 2794 2795 10 2165 2166 2167 2345 2346 2388 2389 3031 3032 3033 10 2165 2166 2167 2345 2346 2388 2389 3031 3032 3033 10 2165 2166 2167 2345 2346 2388 2389 3031 3032 3033 10 2165 2166 2167 2345 2346 2388 2389 3031 3032 3033 10 2165 2166 2167 2345 2346 2388 2389 3031 3032 3033 10 2165 2166 2167 2345 2346 2388 2389 3031 3032 3033 4 2165 2167 3031 3033 4 2165 2167 3031 3033 4 2165 2167 3031 3033 4 2165 2167 3031 3033 4 2165 2167 3031 3033 4 2165 2167 3031 3033 8 2165 2167 2561 2562 2604 2605 3031 3033 8 2165 2167 2561 2562 2604 2605 3031 3033 8 2165 2167 2561 2562 2604 2605 3031 3033 8 2165 2167 2561 2562 2604 2605 3031 3033 8 2165 2167 2561 2562 2604 2605 3031 3033 8 2165 2167 2561 2562 2604 2605 3031 3033 3 2165 2561 2562 3 2165 2561 2562 3 2165 2561 2562 3 2165 2561 2562 3 2165 2561 2562 3 2165 2561 2562 5 2165 2561 2562 3089 3091 5 2165 2561 2562 3089 3091 5 2165 2561 2562 3089 3091 5 2165 2561 2562 3089 3091 5 2165 2561 2562 3089 3091 5 2165 2561 2562 3089 3091 3 2165 3089 3091 3 2165 3089 3091 3 2165 3089 3091 3 2165 3089 3091 3 2165 3089 3091 3 2165 3089 3091 4 2165 2166 2345 2346 4 2165 2166 2345 2346 4 2165 2166 2345 2346 4 2165 2166 2345 2346 4 2165 2166 2345 2346 4 2165 2166 2345 2346 2 2166 3032 2 2166 3032 2 2166 3032 2 2166 3032 2 2166 3032 2 2166 3032 8 2167 2168 2388 2389 2431 2432 2977 2978 8 2167 2168 2388 2389 2431 2432 2977 2978 8 2167 2168 2388 2389 2431 2432 2977 2978 8 2167 2168 2388 2389 2431 2432 2977 2978 8 2167 2168 2388 2389 2431 2432 2977 2978 8 2167 2168 2388 2389 2431 2432 2977 2978 4 2167 2168 2977 2978 4 2167 2168 2977 2978 4 2167 2168 2977 2978 4 2167 2168 2977 2978 4 2167 2168 2977 2978 4 2167 2168 2977 2978 8 2167 2168 2604 2605 2647 2648 2977 2978 8 2167 2168 2604 2605 2647 2648 2977 2978 8 2167 2168 2604 2605 2647 2648 2977 2978 8 2167 2168 2604 2605 2647 2648 2977 2978 8 2167 2168 2604 2605 2647 2648 2977 2978 8 2167 2168 2604 2605 2647 2648 2977 2978 3 2167 2604 2605 3 2167 2604 2605 3 2167 2604 2605 3 2167 2604 2605 3 2167 2604 2605 3 2167 2604 2605 3 2167 2388 2389 3 2167 2388 2389 3 2167 2388 2389 3 2167 2388 2389 3 2167 2388 2389 3 2167 2388 2389 10 2168 2169 2170 2431 2432 2474 2475 2925 2926 2927 10 2168 2169 2170 2431 2432 2474 2475 2925 2926 2927 10 2168 2169 2170 2431 2432 2474 2475 2925 2926 2927 10 2168 2169 2170 2431 2432 2474 2475 2925 2926 2927 10 2168 2169 2170 2431 2432 2474 2475 2925 2926 2927 10 2168 2169 2170 2431 2432 2474 2475 2925 2926 2927 4 2168 2169 2925 2927 4 2168 2169 2925 2927 4 2168 2169 2925 2927 4 2168 2169 2925 2927 4 2168 2169 2925 2927 4 2168 2169 2925 2927 8 2168 2169 2647 2648 2690 2691 2925 2927 8 2168 2169 2647 2648 2690 2691 2925 2927 8 2168 2169 2647 2648 2690 2691 2925 2927 8 2168 2169 2647 2648 2690 2691 2925 2927 8 2168 2169 2647 2648 2690 2691 2925 2927 8 2168 2169 2647 2648 2690 2691 2925 2927 3 2168 2647 2648 3 2168 2647 2648 3 2168 2647 2648 3 2168 2647 2648 3 2168 2647 2648 3 2168 2647 2648 3 2168 2431 2432 3 2168 2431 2432 3 2168 2431 2432 3 2168 2431 2432 3 2168 2431 2432 3 2168 2431 2432 12 2169 2170 2171 2172 2474 2475 2517 2518 2856 2857 2858 2859 12 2169 2170 2171 2172 2474 2475 2517 2518 2856 2857 2858 2859 12 2169 2170 2171 2172 2474 2475 2517 2518 2856 2857 2858 2859 12 2169 2170 2171 2172 2474 2475 2517 2518 2856 2857 2858 2859 12 2169 2170 2171 2172 2474 2475 2517 2518 2856 2857 2858 2859 12 2169 2170 2171 2172 2474 2475 2517 2518 2856 2857 2858 2859 4 2169 2171 2856 2858 4 2169 2171 2856 2858 4 2169 2171 2856 2858 4 2169 2171 2856 2858 4 2169 2171 2856 2858 4 2169 2171 2856 2858 8 2169 2171 2690 2691 2733 2734 2856 2858 8 2169 2171 2690 2691 2733 2734 2856 2858 8 2169 2171 2690 2691 2733 2734 2856 2858 8 2169 2171 2690 2691 2733 2734 2856 2858 8 2169 2171 2690 2691 2733 2734 2856 2858 8 2169 2171 2690 2691 2733 2734 2856 2858 3 2169 2690 2691 3 2169 2690 2691 3 2169 2690 2691 3 2169 2690 2691 3 2169 2690 2691 3 2169 2690 2691 4 2169 2170 2474 2475 4 2169 2170 2474 2475 4 2169 2170 2474 2475 4 2169 2170 2474 2475 4 2169 2170 2474 2475 4 2169 2170 2474 2475 4 2170 2172 2857 2859 4 2170 2172 2857 2859 4 2170 2172 2857 2859 4 2170 2172 2857 2859 4 2170 2172 2857 2859 4 2170 2172 2857 2859 2 2170 2926 2 2170 2926 2 2170 2926 2 2170 2926 2 2170 2926 2 2170 2926 8 2171 2172 2517 2518 2733 2734 2795 2796 8 2171 2172 2517 2518 2733 2734 2795 2796 8 2171 2172 2517 2518 2733 2734 2795 2796 8 2171 2172 2517 2518 2733 2734 2795 2796 8 2171 2172 2517 2518 2733 2734 2795 2796 8 2171 2172 2517 2518 2733 2734 2795 2796 3 2171 2733 2734 3 2171 2733 2734 3 2171 2733 2734 3 2171 2733 2734 3 2171 2733 2734 3 2171 2733 2734 4 2171 2172 2517 2518 4 2171 2172 2517 2518 4 2171 2172 2517 2518 4 2171 2172 2517 2518 4 2171 2172 2517 2518 4 2171 2172 2517 2518 3 2172 2795 2796 3 2172 2795 2796 3 2172 2795 2796 3 2172 2795 2796 3 2172 2795 2796 3 2172 2795 2796 8 2173 2174 2346 2347 2389 2390 3033 3034 8 2173 2174 2346 2347 2389 2390 3033 3034 8 2173 2174 2346 2347 2389 2390 3033 3034 8 2173 2174 2346 2347 2389 2390 3033 3034 8 2173 2174 2346 2347 2389 2390 3033 3034 8 2173 2174 2346 2347 2389 2390 3033 3034 4 2173 2174 3033 3034 4 2173 2174 3033 3034 4 2173 2174 3033 3034 4 2173 2174 3033 3034 4 2173 2174 3033 3034 4 2173 2174 3033 3034 8 2173 2174 2562 2563 2605 2606 3033 3034 8 2173 2174 2562 2563 2605 2606 3033 3034 8 2173 2174 2562 2563 2605 2606 3033 3034 8 2173 2174 2562 2563 2605 2606 3033 3034 8 2173 2174 2562 2563 2605 2606 3033 3034 8 2173 2174 2562 2563 2605 2606 3033 3034 3 2173 2562 2563 3 2173 2562 2563 3 2173 2562 2563 3 2173 2562 2563 3 2173 2562 2563 3 2173 2562 2563 5 2173 2562 2563 3091 3092 5 2173 2562 2563 3091 3092 5 2173 2562 2563 3091 3092 5 2173 2562 2563 3091 3092 5 2173 2562 2563 3091 3092 5 2173 2562 2563 3091 3092 3 2173 3091 3092 3 2173 3091 3092 3 2173 3091 3092 3 2173 3091 3092 3 2173 3091 3092 3 2173 3091 3092 3 2173 2346 2347 3 2173 2346 2347 3 2173 2346 2347 3 2173 2346 2347 3 2173 2346 2347 3 2173 2346 2347 8 2174 2175 2389 2390 2432 2433 2978 2979 8 2174 2175 2389 2390 2432 2433 2978 2979 8 2174 2175 2389 2390 2432 2433 2978 2979 8 2174 2175 2389 2390 2432 2433 2978 2979 8 2174 2175 2389 2390 2432 2433 2978 2979 8 2174 2175 2389 2390 2432 2433 2978 2979 4 2174 2175 2978 2979 4 2174 2175 2978 2979 4 2174 2175 2978 2979 4 2174 2175 2978 2979 4 2174 2175 2978 2979 4 2174 2175 2978 2979 8 2174 2175 2605 2606 2648 2649 2978 2979 8 2174 2175 2605 2606 2648 2649 2978 2979 8 2174 2175 2605 2606 2648 2649 2978 2979 8 2174 2175 2605 2606 2648 2649 2978 2979 8 2174 2175 2605 2606 2648 2649 2978 2979 8 2174 2175 2605 2606 2648 2649 2978 2979 3 2174 2605 2606 3 2174 2605 2606 3 2174 2605 2606 3 2174 2605 2606 3 2174 2605 2606 3 2174 2605 2606 3 2174 2389 2390 3 2174 2389 2390 3 2174 2389 2390 3 2174 2389 2390 3 2174 2389 2390 3 2174 2389 2390 8 2175 2176 2432 2433 2475 2476 2927 2928 8 2175 2176 2432 2433 2475 2476 2927 2928 8 2175 2176 2432 2433 2475 2476 2927 2928 8 2175 2176 2432 2433 2475 2476 2927 2928 8 2175 2176 2432 2433 2475 2476 2927 2928 8 2175 2176 2432 2433 2475 2476 2927 2928 4 2175 2176 2927 2928 4 2175 2176 2927 2928 4 2175 2176 2927 2928 4 2175 2176 2927 2928 4 2175 2176 2927 2928 4 2175 2176 2927 2928 8 2175 2176 2648 2649 2691 2692 2927 2928 8 2175 2176 2648 2649 2691 2692 2927 2928 8 2175 2176 2648 2649 2691 2692 2927 2928 8 2175 2176 2648 2649 2691 2692 2927 2928 8 2175 2176 2648 2649 2691 2692 2927 2928 8 2175 2176 2648 2649 2691 2692 2927 2928 3 2175 2648 2649 3 2175 2648 2649 3 2175 2648 2649 3 2175 2648 2649 3 2175 2648 2649 3 2175 2648 2649 3 2175 2432 2433 3 2175 2432 2433 3 2175 2432 2433 3 2175 2432 2433 3 2175 2432 2433 3 2175 2432 2433 11 2176 2177 2178 2475 2476 2518 2519 2858 2859 2860 2861 11 2176 2177 2178 2475 2476 2518 2519 2858 2859 2860 2861 11 2176 2177 2178 2475 2476 2518 2519 2858 2859 2860 2861 11 2176 2177 2178 2475 2476 2518 2519 2858 2859 2860 2861 11 2176 2177 2178 2475 2476 2518 2519 2858 2859 2860 2861 11 2176 2177 2178 2475 2476 2518 2519 2858 2859 2860 2861 4 2176 2177 2858 2860 4 2176 2177 2858 2860 4 2176 2177 2858 2860 4 2176 2177 2858 2860 4 2176 2177 2858 2860 4 2176 2177 2858 2860 8 2176 2177 2691 2692 2734 2735 2858 2860 8 2176 2177 2691 2692 2734 2735 2858 2860 8 2176 2177 2691 2692 2734 2735 2858 2860 8 2176 2177 2691 2692 2734 2735 2858 2860 8 2176 2177 2691 2692 2734 2735 2858 2860 8 2176 2177 2691 2692 2734 2735 2858 2860 3 2176 2691 2692 3 2176 2691 2692 3 2176 2691 2692 3 2176 2691 2692 3 2176 2691 2692 3 2176 2691 2692 3 2176 2475 2476 3 2176 2475 2476 3 2176 2475 2476 3 2176 2475 2476 3 2176 2475 2476 3 2176 2475 2476 8 2177 2178 2518 2519 2734 2735 2796 2797 8 2177 2178 2518 2519 2734 2735 2796 2797 8 2177 2178 2518 2519 2734 2735 2796 2797 8 2177 2178 2518 2519 2734 2735 2796 2797 8 2177 2178 2518 2519 2734 2735 2796 2797 8 2177 2178 2518 2519 2734 2735 2796 2797 3 2177 2734 2735 3 2177 2734 2735 3 2177 2734 2735 3 2177 2734 2735 3 2177 2734 2735 3 2177 2734 2735 4 2177 2178 2518 2519 4 2177 2178 2518 2519 4 2177 2178 2518 2519 4 2177 2178 2518 2519 4 2177 2178 2518 2519 4 2177 2178 2518 2519 3 2178 2796 2797 3 2178 2796 2797 3 2178 2796 2797 3 2178 2796 2797 3 2178 2796 2797 3 2178 2796 2797 3 2178 2859 2861 3 2178 2859 2861 3 2178 2859 2861 3 2178 2859 2861 3 2178 2859 2861 3 2178 2859 2861 10 2179 2180 2181 2347 2348 2390 2391 3034 3035 3036 10 2179 2180 2181 2347 2348 2390 2391 3034 3035 3036 10 2179 2180 2181 2347 2348 2390 2391 3034 3035 3036 10 2179 2180 2181 2347 2348 2390 2391 3034 3035 3036 10 2179 2180 2181 2347 2348 2390 2391 3034 3035 3036 10 2179 2180 2181 2347 2348 2390 2391 3034 3035 3036 4 2179 2181 3034 3035 4 2179 2181 3034 3035 4 2179 2181 3034 3035 4 2179 2181 3034 3035 4 2179 2181 3034 3035 4 2179 2181 3034 3035 8 2179 2181 2563 2564 2606 2607 3034 3035 8 2179 2181 2563 2564 2606 2607 3034 3035 8 2179 2181 2563 2564 2606 2607 3034 3035 8 2179 2181 2563 2564 2606 2607 3034 3035 8 2179 2181 2563 2564 2606 2607 3034 3035 8 2179 2181 2563 2564 2606 2607 3034 3035 3 2179 2563 2564 3 2179 2563 2564 3 2179 2563 2564 3 2179 2563 2564 3 2179 2563 2564 3 2179 2563 2564 5 2179 2563 2564 3092 3093 5 2179 2563 2564 3092 3093 5 2179 2563 2564 3092 3093 5 2179 2563 2564 3092 3093 5 2179 2563 2564 3092 3093 5 2179 2563 2564 3092 3093 3 2179 3092 3093 3 2179 3092 3093 3 2179 3092 3093 3 2179 3092 3093 3 2179 3092 3093 3 2179 3092 3093 4 2179 2180 2347 2348 4 2179 2180 2347 2348 4 2179 2180 2347 2348 4 2179 2180 2347 2348 4 2179 2180 2347 2348 4 2179 2180 2347 2348 2 2180 3036 2 2180 3036 2 2180 3036 2 2180 3036 2 2180 3036 2 2180 3036 8 2181 2182 2390 2391 2433 2434 2979 2980 8 2181 2182 2390 2391 2433 2434 2979 2980 8 2181 2182 2390 2391 2433 2434 2979 2980 8 2181 2182 2390 2391 2433 2434 2979 2980 8 2181 2182 2390 2391 2433 2434 2979 2980 8 2181 2182 2390 2391 2433 2434 2979 2980 4 2181 2182 2979 2980 4 2181 2182 2979 2980 4 2181 2182 2979 2980 4 2181 2182 2979 2980 4 2181 2182 2979 2980 4 2181 2182 2979 2980 8 2181 2182 2606 2607 2649 2650 2979 2980 8 2181 2182 2606 2607 2649 2650 2979 2980 8 2181 2182 2606 2607 2649 2650 2979 2980 8 2181 2182 2606 2607 2649 2650 2979 2980 8 2181 2182 2606 2607 2649 2650 2979 2980 8 2181 2182 2606 2607 2649 2650 2979 2980 3 2181 2606 2607 3 2181 2606 2607 3 2181 2606 2607 3 2181 2606 2607 3 2181 2606 2607 3 2181 2606 2607 3 2181 2390 2391 3 2181 2390 2391 3 2181 2390 2391 3 2181 2390 2391 3 2181 2390 2391 3 2181 2390 2391 10 2182 2183 2184 2433 2434 2476 2477 2928 2929 2930 10 2182 2183 2184 2433 2434 2476 2477 2928 2929 2930 10 2182 2183 2184 2433 2434 2476 2477 2928 2929 2930 10 2182 2183 2184 2433 2434 2476 2477 2928 2929 2930 10 2182 2183 2184 2433 2434 2476 2477 2928 2929 2930 10 2182 2183 2184 2433 2434 2476 2477 2928 2929 2930 4 2182 2183 2928 2929 4 2182 2183 2928 2929 4 2182 2183 2928 2929 4 2182 2183 2928 2929 4 2182 2183 2928 2929 4 2182 2183 2928 2929 8 2182 2183 2649 2650 2692 2693 2928 2929 8 2182 2183 2649 2650 2692 2693 2928 2929 8 2182 2183 2649 2650 2692 2693 2928 2929 8 2182 2183 2649 2650 2692 2693 2928 2929 8 2182 2183 2649 2650 2692 2693 2928 2929 8 2182 2183 2649 2650 2692 2693 2928 2929 3 2182 2649 2650 3 2182 2649 2650 3 2182 2649 2650 3 2182 2649 2650 3 2182 2649 2650 3 2182 2649 2650 3 2182 2433 2434 3 2182 2433 2434 3 2182 2433 2434 3 2182 2433 2434 3 2182 2433 2434 3 2182 2433 2434 12 2183 2184 2185 2186 2476 2477 2519 2520 2860 2861 2862 2863 12 2183 2184 2185 2186 2476 2477 2519 2520 2860 2861 2862 2863 12 2183 2184 2185 2186 2476 2477 2519 2520 2860 2861 2862 2863 12 2183 2184 2185 2186 2476 2477 2519 2520 2860 2861 2862 2863 12 2183 2184 2185 2186 2476 2477 2519 2520 2860 2861 2862 2863 12 2183 2184 2185 2186 2476 2477 2519 2520 2860 2861 2862 2863 4 2183 2185 2860 2862 4 2183 2185 2860 2862 4 2183 2185 2860 2862 4 2183 2185 2860 2862 4 2183 2185 2860 2862 4 2183 2185 2860 2862 8 2183 2185 2692 2693 2735 2736 2860 2862 8 2183 2185 2692 2693 2735 2736 2860 2862 8 2183 2185 2692 2693 2735 2736 2860 2862 8 2183 2185 2692 2693 2735 2736 2860 2862 8 2183 2185 2692 2693 2735 2736 2860 2862 8 2183 2185 2692 2693 2735 2736 2860 2862 3 2183 2692 2693 3 2183 2692 2693 3 2183 2692 2693 3 2183 2692 2693 3 2183 2692 2693 3 2183 2692 2693 4 2183 2184 2476 2477 4 2183 2184 2476 2477 4 2183 2184 2476 2477 4 2183 2184 2476 2477 4 2183 2184 2476 2477 4 2183 2184 2476 2477 4 2184 2186 2861 2863 4 2184 2186 2861 2863 4 2184 2186 2861 2863 4 2184 2186 2861 2863 4 2184 2186 2861 2863 4 2184 2186 2861 2863 2 2184 2930 2 2184 2930 2 2184 2930 2 2184 2930 2 2184 2930 2 2184 2930 8 2185 2186 2519 2520 2735 2736 2797 2798 8 2185 2186 2519 2520 2735 2736 2797 2798 8 2185 2186 2519 2520 2735 2736 2797 2798 8 2185 2186 2519 2520 2735 2736 2797 2798 8 2185 2186 2519 2520 2735 2736 2797 2798 8 2185 2186 2519 2520 2735 2736 2797 2798 3 2185 2735 2736 3 2185 2735 2736 3 2185 2735 2736 3 2185 2735 2736 3 2185 2735 2736 3 2185 2735 2736 4 2185 2186 2519 2520 4 2185 2186 2519 2520 4 2185 2186 2519 2520 4 2185 2186 2519 2520 4 2185 2186 2519 2520 4 2185 2186 2519 2520 3 2186 2797 2798 3 2186 2797 2798 3 2186 2797 2798 3 2186 2797 2798 3 2186 2797 2798 3 2186 2797 2798 11 2187 2188 2189 2190 2348 2349 2391 2392 3035 3036 3037 11 2187 2188 2189 2190 2348 2349 2391 2392 3035 3036 3037 11 2187 2188 2189 2190 2348 2349 2391 2392 3035 3036 3037 11 2187 2188 2189 2190 2348 2349 2391 2392 3035 3036 3037 11 2187 2188 2189 2190 2348 2349 2391 2392 3035 3036 3037 11 2187 2188 2189 2190 2348 2349 2391 2392 3035 3036 3037 4 2187 2189 3035 3037 4 2187 2189 3035 3037 4 2187 2189 3035 3037 4 2187 2189 3035 3037 4 2187 2189 3035 3037 4 2187 2189 3035 3037 8 2187 2189 2564 2565 2607 2608 3035 3037 8 2187 2189 2564 2565 2607 2608 3035 3037 8 2187 2189 2564 2565 2607 2608 3035 3037 8 2187 2189 2564 2565 2607 2608 3035 3037 8 2187 2189 2564 2565 2607 2608 3035 3037 8 2187 2189 2564 2565 2607 2608 3035 3037 3 2187 2564 2565 3 2187 2564 2565 3 2187 2564 2565 3 2187 2564 2565 3 2187 2564 2565 3 2187 2564 2565 5 2187 2564 2565 3093 3095 5 2187 2564 2565 3093 3095 5 2187 2564 2565 3093 3095 5 2187 2564 2565 3093 3095 5 2187 2564 2565 3093 3095 5 2187 2564 2565 3093 3095 3 2187 3093 3095 3 2187 3093 3095 3 2187 3093 3095 3 2187 3093 3095 3 2187 3093 3095 3 2187 3093 3095 4 2187 2188 2348 2349 4 2187 2188 2348 2349 4 2187 2188 2348 2349 4 2187 2188 2348 2349 4 2187 2188 2348 2349 4 2187 2188 2348 2349 3 2188 2190 3036 3 2188 2190 3036 3 2188 2190 3036 3 2188 2190 3036 3 2188 2190 3036 3 2188 2190 3036 10 2189 2190 2191 2192 2391 2392 2434 2435 2980 2981 10 2189 2190 2191 2192 2391 2392 2434 2435 2980 2981 10 2189 2190 2191 2192 2391 2392 2434 2435 2980 2981 10 2189 2190 2191 2192 2391 2392 2434 2435 2980 2981 10 2189 2190 2191 2192 2391 2392 2434 2435 2980 2981 10 2189 2190 2191 2192 2391 2392 2434 2435 2980 2981 4 2189 2191 2980 2981 4 2189 2191 2980 2981 4 2189 2191 2980 2981 4 2189 2191 2980 2981 4 2189 2191 2980 2981 4 2189 2191 2980 2981 8 2189 2191 2607 2608 2650 2651 2980 2981 8 2189 2191 2607 2608 2650 2651 2980 2981 8 2189 2191 2607 2608 2650 2651 2980 2981 8 2189 2191 2607 2608 2650 2651 2980 2981 8 2189 2191 2607 2608 2650 2651 2980 2981 8 2189 2191 2607 2608 2650 2651 2980 2981 3 2189 2607 2608 3 2189 2607 2608 3 2189 2607 2608 3 2189 2607 2608 3 2189 2607 2608 3 2189 2607 2608 4 2189 2190 2391 2392 4 2189 2190 2391 2392 4 2189 2190 2391 2392 4 2189 2190 2391 2392 4 2189 2190 2391 2392 4 2189 2190 2391 2392 2 2190 2192 2 2190 2192 2 2190 2192 2 2190 2192 2 2190 2192 2 2190 2192 11 2191 2192 2193 2194 2434 2435 2477 2478 2929 2930 2931 11 2191 2192 2193 2194 2434 2435 2477 2478 2929 2930 2931 11 2191 2192 2193 2194 2434 2435 2477 2478 2929 2930 2931 11 2191 2192 2193 2194 2434 2435 2477 2478 2929 2930 2931 11 2191 2192 2193 2194 2434 2435 2477 2478 2929 2930 2931 11 2191 2192 2193 2194 2434 2435 2477 2478 2929 2930 2931 4 2191 2193 2929 2931 4 2191 2193 2929 2931 4 2191 2193 2929 2931 4 2191 2193 2929 2931 4 2191 2193 2929 2931 4 2191 2193 2929 2931 8 2191 2193 2650 2651 2693 2694 2929 2931 8 2191 2193 2650 2651 2693 2694 2929 2931 8 2191 2193 2650 2651 2693 2694 2929 2931 8 2191 2193 2650 2651 2693 2694 2929 2931 8 2191 2193 2650 2651 2693 2694 2929 2931 8 2191 2193 2650 2651 2693 2694 2929 2931 3 2191 2650 2651 3 2191 2650 2651 3 2191 2650 2651 3 2191 2650 2651 3 2191 2650 2651 3 2191 2650 2651 4 2191 2192 2434 2435 4 2191 2192 2434 2435 4 2191 2192 2434 2435 4 2191 2192 2434 2435 4 2191 2192 2434 2435 4 2191 2192 2434 2435 3 2192 2194 2930 3 2192 2194 2930 3 2192 2194 2930 3 2192 2194 2930 3 2192 2194 2930 3 2192 2194 2930 12 2193 2194 2195 2196 2477 2478 2520 2521 2862 2863 2864 2865 12 2193 2194 2195 2196 2477 2478 2520 2521 2862 2863 2864 2865 12 2193 2194 2195 2196 2477 2478 2520 2521 2862 2863 2864 2865 12 2193 2194 2195 2196 2477 2478 2520 2521 2862 2863 2864 2865 12 2193 2194 2195 2196 2477 2478 2520 2521 2862 2863 2864 2865 12 2193 2194 2195 2196 2477 2478 2520 2521 2862 2863 2864 2865 4 2193 2195 2862 2864 4 2193 2195 2862 2864 4 2193 2195 2862 2864 4 2193 2195 2862 2864 4 2193 2195 2862 2864 4 2193 2195 2862 2864 8 2193 2195 2693 2694 2736 2737 2862 2864 8 2193 2195 2693 2694 2736 2737 2862 2864 8 2193 2195 2693 2694 2736 2737 2862 2864 8 2193 2195 2693 2694 2736 2737 2862 2864 8 2193 2195 2693 2694 2736 2737 2862 2864 8 2193 2195 2693 2694 2736 2737 2862 2864 3 2193 2693 2694 3 2193 2693 2694 3 2193 2693 2694 3 2193 2693 2694 3 2193 2693 2694 3 2193 2693 2694 4 2193 2194 2477 2478 4 2193 2194 2477 2478 4 2193 2194 2477 2478 4 2193 2194 2477 2478 4 2193 2194 2477 2478 4 2193 2194 2477 2478 4 2194 2196 2863 2865 4 2194 2196 2863 2865 4 2194 2196 2863 2865 4 2194 2196 2863 2865 4 2194 2196 2863 2865 4 2194 2196 2863 2865 8 2195 2196 2520 2521 2736 2737 2798 2799 8 2195 2196 2520 2521 2736 2737 2798 2799 8 2195 2196 2520 2521 2736 2737 2798 2799 8 2195 2196 2520 2521 2736 2737 2798 2799 8 2195 2196 2520 2521 2736 2737 2798 2799 8 2195 2196 2520 2521 2736 2737 2798 2799 3 2195 2736 2737 3 2195 2736 2737 3 2195 2736 2737 3 2195 2736 2737 3 2195 2736 2737 3 2195 2736 2737 4 2195 2196 2520 2521 4 2195 2196 2520 2521 4 2195 2196 2520 2521 4 2195 2196 2520 2521 4 2195 2196 2520 2521 4 2195 2196 2520 2521 3 2196 2798 2799 3 2196 2798 2799 3 2196 2798 2799 3 2196 2798 2799 3 2196 2798 2799 3 2196 2798 2799 8 2197 2198 2349 2350 2392 2393 3037 3038 8 2197 2198 2349 2350 2392 2393 3037 3038 8 2197 2198 2349 2350 2392 2393 3037 3038 8 2197 2198 2349 2350 2392 2393 3037 3038 8 2197 2198 2349 2350 2392 2393 3037 3038 8 2197 2198 2349 2350 2392 2393 3037 3038 4 2197 2198 3037 3038 4 2197 2198 3037 3038 4 2197 2198 3037 3038 4 2197 2198 3037 3038 4 2197 2198 3037 3038 4 2197 2198 3037 3038 8 2197 2198 2565 2566 2608 2609 3037 3038 8 2197 2198 2565 2566 2608 2609 3037 3038 8 2197 2198 2565 2566 2608 2609 3037 3038 8 2197 2198 2565 2566 2608 2609 3037 3038 8 2197 2198 2565 2566 2608 2609 3037 3038 8 2197 2198 2565 2566 2608 2609 3037 3038 3 2197 2565 2566 3 2197 2565 2566 3 2197 2565 2566 3 2197 2565 2566 3 2197 2565 2566 3 2197 2565 2566 5 2197 2565 2566 3095 3096 5 2197 2565 2566 3095 3096 5 2197 2565 2566 3095 3096 5 2197 2565 2566 3095 3096 5 2197 2565 2566 3095 3096 5 2197 2565 2566 3095 3096 3 2197 3095 3096 3 2197 3095 3096 3 2197 3095 3096 3 2197 3095 3096 3 2197 3095 3096 3 2197 3095 3096 3 2197 2349 2350 3 2197 2349 2350 3 2197 2349 2350 3 2197 2349 2350 3 2197 2349 2350 3 2197 2349 2350 8 2198 2199 2392 2393 2435 2436 2981 2982 8 2198 2199 2392 2393 2435 2436 2981 2982 8 2198 2199 2392 2393 2435 2436 2981 2982 8 2198 2199 2392 2393 2435 2436 2981 2982 8 2198 2199 2392 2393 2435 2436 2981 2982 8 2198 2199 2392 2393 2435 2436 2981 2982 4 2198 2199 2981 2982 4 2198 2199 2981 2982 4 2198 2199 2981 2982 4 2198 2199 2981 2982 4 2198 2199 2981 2982 4 2198 2199 2981 2982 8 2198 2199 2608 2609 2651 2652 2981 2982 8 2198 2199 2608 2609 2651 2652 2981 2982 8 2198 2199 2608 2609 2651 2652 2981 2982 8 2198 2199 2608 2609 2651 2652 2981 2982 8 2198 2199 2608 2609 2651 2652 2981 2982 8 2198 2199 2608 2609 2651 2652 2981 2982 3 2198 2608 2609 3 2198 2608 2609 3 2198 2608 2609 3 2198 2608 2609 3 2198 2608 2609 3 2198 2608 2609 3 2198 2392 2393 3 2198 2392 2393 3 2198 2392 2393 3 2198 2392 2393 3 2198 2392 2393 3 2198 2392 2393 8 2199 2200 2435 2436 2478 2479 2931 2932 8 2199 2200 2435 2436 2478 2479 2931 2932 8 2199 2200 2435 2436 2478 2479 2931 2932 8 2199 2200 2435 2436 2478 2479 2931 2932 8 2199 2200 2435 2436 2478 2479 2931 2932 8 2199 2200 2435 2436 2478 2479 2931 2932 4 2199 2200 2931 2932 4 2199 2200 2931 2932 4 2199 2200 2931 2932 4 2199 2200 2931 2932 4 2199 2200 2931 2932 4 2199 2200 2931 2932 8 2199 2200 2651 2652 2694 2695 2931 2932 8 2199 2200 2651 2652 2694 2695 2931 2932 8 2199 2200 2651 2652 2694 2695 2931 2932 8 2199 2200 2651 2652 2694 2695 2931 2932 8 2199 2200 2651 2652 2694 2695 2931 2932 8 2199 2200 2651 2652 2694 2695 2931 2932 3 2199 2651 2652 3 2199 2651 2652 3 2199 2651 2652 3 2199 2651 2652 3 2199 2651 2652 3 2199 2651 2652 3 2199 2435 2436 3 2199 2435 2436 3 2199 2435 2436 3 2199 2435 2436 3 2199 2435 2436 3 2199 2435 2436 11 2200 2201 2202 2478 2479 2521 2522 2864 2865 2866 2867 11 2200 2201 2202 2478 2479 2521 2522 2864 2865 2866 2867 11 2200 2201 2202 2478 2479 2521 2522 2864 2865 2866 2867 11 2200 2201 2202 2478 2479 2521 2522 2864 2865 2866 2867 11 2200 2201 2202 2478 2479 2521 2522 2864 2865 2866 2867 11 2200 2201 2202 2478 2479 2521 2522 2864 2865 2866 2867 4 2200 2201 2864 2866 4 2200 2201 2864 2866 4 2200 2201 2864 2866 4 2200 2201 2864 2866 4 2200 2201 2864 2866 4 2200 2201 2864 2866 8 2200 2201 2694 2695 2737 2738 2864 2866 8 2200 2201 2694 2695 2737 2738 2864 2866 8 2200 2201 2694 2695 2737 2738 2864 2866 8 2200 2201 2694 2695 2737 2738 2864 2866 8 2200 2201 2694 2695 2737 2738 2864 2866 8 2200 2201 2694 2695 2737 2738 2864 2866 3 2200 2694 2695 3 2200 2694 2695 3 2200 2694 2695 3 2200 2694 2695 3 2200 2694 2695 3 2200 2694 2695 3 2200 2478 2479 3 2200 2478 2479 3 2200 2478 2479 3 2200 2478 2479 3 2200 2478 2479 3 2200 2478 2479 8 2201 2202 2521 2522 2737 2738 2799 2800 8 2201 2202 2521 2522 2737 2738 2799 2800 8 2201 2202 2521 2522 2737 2738 2799 2800 8 2201 2202 2521 2522 2737 2738 2799 2800 8 2201 2202 2521 2522 2737 2738 2799 2800 8 2201 2202 2521 2522 2737 2738 2799 2800 3 2201 2737 2738 3 2201 2737 2738 3 2201 2737 2738 3 2201 2737 2738 3 2201 2737 2738 3 2201 2737 2738 4 2201 2202 2521 2522 4 2201 2202 2521 2522 4 2201 2202 2521 2522 4 2201 2202 2521 2522 4 2201 2202 2521 2522 4 2201 2202 2521 2522 3 2202 2799 2800 3 2202 2799 2800 3 2202 2799 2800 3 2202 2799 2800 3 2202 2799 2800 3 2202 2799 2800 3 2202 2865 2867 3 2202 2865 2867 3 2202 2865 2867 3 2202 2865 2867 3 2202 2865 2867 3 2202 2865 2867 10 2203 2204 2205 2350 2351 2393 2394 3038 3039 3040 10 2203 2204 2205 2350 2351 2393 2394 3038 3039 3040 10 2203 2204 2205 2350 2351 2393 2394 3038 3039 3040 10 2203 2204 2205 2350 2351 2393 2394 3038 3039 3040 10 2203 2204 2205 2350 2351 2393 2394 3038 3039 3040 10 2203 2204 2205 2350 2351 2393 2394 3038 3039 3040 4 2203 2205 3038 3039 4 2203 2205 3038 3039 4 2203 2205 3038 3039 4 2203 2205 3038 3039 4 2203 2205 3038 3039 4 2203 2205 3038 3039 8 2203 2205 2566 2567 2609 2610 3038 3039 8 2203 2205 2566 2567 2609 2610 3038 3039 8 2203 2205 2566 2567 2609 2610 3038 3039 8 2203 2205 2566 2567 2609 2610 3038 3039 8 2203 2205 2566 2567 2609 2610 3038 3039 8 2203 2205 2566 2567 2609 2610 3038 3039 3 2203 2566 2567 3 2203 2566 2567 3 2203 2566 2567 3 2203 2566 2567 3 2203 2566 2567 3 2203 2566 2567 5 2203 2566 2567 3096 3097 5 2203 2566 2567 3096 3097 5 2203 2566 2567 3096 3097 5 2203 2566 2567 3096 3097 5 2203 2566 2567 3096 3097 5 2203 2566 2567 3096 3097 3 2203 3096 3097 3 2203 3096 3097 3 2203 3096 3097 3 2203 3096 3097 3 2203 3096 3097 3 2203 3096 3097 4 2203 2204 2350 2351 4 2203 2204 2350 2351 4 2203 2204 2350 2351 4 2203 2204 2350 2351 4 2203 2204 2350 2351 4 2203 2204 2350 2351 2 2204 3040 2 2204 3040 2 2204 3040 2 2204 3040 2 2204 3040 2 2204 3040 8 2205 2206 2393 2394 2436 2437 2982 2983 8 2205 2206 2393 2394 2436 2437 2982 2983 8 2205 2206 2393 2394 2436 2437 2982 2983 8 2205 2206 2393 2394 2436 2437 2982 2983 8 2205 2206 2393 2394 2436 2437 2982 2983 8 2205 2206 2393 2394 2436 2437 2982 2983 4 2205 2206 2982 2983 4 2205 2206 2982 2983 4 2205 2206 2982 2983 4 2205 2206 2982 2983 4 2205 2206 2982 2983 4 2205 2206 2982 2983 8 2205 2206 2609 2610 2652 2653 2982 2983 8 2205 2206 2609 2610 2652 2653 2982 2983 8 2205 2206 2609 2610 2652 2653 2982 2983 8 2205 2206 2609 2610 2652 2653 2982 2983 8 2205 2206 2609 2610 2652 2653 2982 2983 8 2205 2206 2609 2610 2652 2653 2982 2983 3 2205 2609 2610 3 2205 2609 2610 3 2205 2609 2610 3 2205 2609 2610 3 2205 2609 2610 3 2205 2609 2610 3 2205 2393 2394 3 2205 2393 2394 3 2205 2393 2394 3 2205 2393 2394 3 2205 2393 2394 3 2205 2393 2394 10 2206 2207 2208 2436 2437 2479 2480 2932 2933 2934 10 2206 2207 2208 2436 2437 2479 2480 2932 2933 2934 10 2206 2207 2208 2436 2437 2479 2480 2932 2933 2934 10 2206 2207 2208 2436 2437 2479 2480 2932 2933 2934 10 2206 2207 2208 2436 2437 2479 2480 2932 2933 2934 10 2206 2207 2208 2436 2437 2479 2480 2932 2933 2934 4 2206 2207 2932 2933 4 2206 2207 2932 2933 4 2206 2207 2932 2933 4 2206 2207 2932 2933 4 2206 2207 2932 2933 4 2206 2207 2932 2933 8 2206 2207 2652 2653 2695 2696 2932 2933 8 2206 2207 2652 2653 2695 2696 2932 2933 8 2206 2207 2652 2653 2695 2696 2932 2933 8 2206 2207 2652 2653 2695 2696 2932 2933 8 2206 2207 2652 2653 2695 2696 2932 2933 8 2206 2207 2652 2653 2695 2696 2932 2933 3 2206 2652 2653 3 2206 2652 2653 3 2206 2652 2653 3 2206 2652 2653 3 2206 2652 2653 3 2206 2652 2653 3 2206 2436 2437 3 2206 2436 2437 3 2206 2436 2437 3 2206 2436 2437 3 2206 2436 2437 3 2206 2436 2437 12 2207 2208 2209 2210 2479 2480 2522 2523 2866 2867 2868 2869 12 2207 2208 2209 2210 2479 2480 2522 2523 2866 2867 2868 2869 12 2207 2208 2209 2210 2479 2480 2522 2523 2866 2867 2868 2869 12 2207 2208 2209 2210 2479 2480 2522 2523 2866 2867 2868 2869 12 2207 2208 2209 2210 2479 2480 2522 2523 2866 2867 2868 2869 12 2207 2208 2209 2210 2479 2480 2522 2523 2866 2867 2868 2869 4 2207 2209 2866 2868 4 2207 2209 2866 2868 4 2207 2209 2866 2868 4 2207 2209 2866 2868 4 2207 2209 2866 2868 4 2207 2209 2866 2868 8 2207 2209 2695 2696 2738 2739 2866 2868 8 2207 2209 2695 2696 2738 2739 2866 2868 8 2207 2209 2695 2696 2738 2739 2866 2868 8 2207 2209 2695 2696 2738 2739 2866 2868 8 2207 2209 2695 2696 2738 2739 2866 2868 8 2207 2209 2695 2696 2738 2739 2866 2868 3 2207 2695 2696 3 2207 2695 2696 3 2207 2695 2696 3 2207 2695 2696 3 2207 2695 2696 3 2207 2695 2696 4 2207 2208 2479 2480 4 2207 2208 2479 2480 4 2207 2208 2479 2480 4 2207 2208 2479 2480 4 2207 2208 2479 2480 4 2207 2208 2479 2480 4 2208 2210 2867 2869 4 2208 2210 2867 2869 4 2208 2210 2867 2869 4 2208 2210 2867 2869 4 2208 2210 2867 2869 4 2208 2210 2867 2869 2 2208 2934 2 2208 2934 2 2208 2934 2 2208 2934 2 2208 2934 2 2208 2934 8 2209 2210 2522 2523 2738 2739 2800 2801 8 2209 2210 2522 2523 2738 2739 2800 2801 8 2209 2210 2522 2523 2738 2739 2800 2801 8 2209 2210 2522 2523 2738 2739 2800 2801 8 2209 2210 2522 2523 2738 2739 2800 2801 8 2209 2210 2522 2523 2738 2739 2800 2801 3 2209 2738 2739 3 2209 2738 2739 3 2209 2738 2739 3 2209 2738 2739 3 2209 2738 2739 3 2209 2738 2739 4 2209 2210 2522 2523 4 2209 2210 2522 2523 4 2209 2210 2522 2523 4 2209 2210 2522 2523 4 2209 2210 2522 2523 4 2209 2210 2522 2523 3 2210 2800 2801 3 2210 2800 2801 3 2210 2800 2801 3 2210 2800 2801 3 2210 2800 2801 3 2210 2800 2801 10 2211 2212 2213 2351 2352 2394 2395 3039 3040 3041 10 2211 2212 2213 2351 2352 2394 2395 3039 3040 3041 10 2211 2212 2213 2351 2352 2394 2395 3039 3040 3041 10 2211 2212 2213 2351 2352 2394 2395 3039 3040 3041 10 2211 2212 2213 2351 2352 2394 2395 3039 3040 3041 10 2211 2212 2213 2351 2352 2394 2395 3039 3040 3041 4 2211 2213 3039 3041 4 2211 2213 3039 3041 4 2211 2213 3039 3041 4 2211 2213 3039 3041 4 2211 2213 3039 3041 4 2211 2213 3039 3041 8 2211 2213 2567 2568 2610 2611 3039 3041 8 2211 2213 2567 2568 2610 2611 3039 3041 8 2211 2213 2567 2568 2610 2611 3039 3041 8 2211 2213 2567 2568 2610 2611 3039 3041 8 2211 2213 2567 2568 2610 2611 3039 3041 8 2211 2213 2567 2568 2610 2611 3039 3041 3 2211 2567 2568 3 2211 2567 2568 3 2211 2567 2568 3 2211 2567 2568 3 2211 2567 2568 3 2211 2567 2568 5 2211 2567 2568 3097 3099 5 2211 2567 2568 3097 3099 5 2211 2567 2568 3097 3099 5 2211 2567 2568 3097 3099 5 2211 2567 2568 3097 3099 5 2211 2567 2568 3097 3099 3 2211 3097 3099 3 2211 3097 3099 3 2211 3097 3099 3 2211 3097 3099 3 2211 3097 3099 3 2211 3097 3099 4 2211 2212 2351 2352 4 2211 2212 2351 2352 4 2211 2212 2351 2352 4 2211 2212 2351 2352 4 2211 2212 2351 2352 4 2211 2212 2351 2352 2 2212 3040 2 2212 3040 2 2212 3040 2 2212 3040 2 2212 3040 2 2212 3040 8 2213 2214 2394 2395 2437 2438 2983 2984 8 2213 2214 2394 2395 2437 2438 2983 2984 8 2213 2214 2394 2395 2437 2438 2983 2984 8 2213 2214 2394 2395 2437 2438 2983 2984 8 2213 2214 2394 2395 2437 2438 2983 2984 8 2213 2214 2394 2395 2437 2438 2983 2984 4 2213 2214 2983 2984 4 2213 2214 2983 2984 4 2213 2214 2983 2984 4 2213 2214 2983 2984 4 2213 2214 2983 2984 4 2213 2214 2983 2984 8 2213 2214 2610 2611 2653 2654 2983 2984 8 2213 2214 2610 2611 2653 2654 2983 2984 8 2213 2214 2610 2611 2653 2654 2983 2984 8 2213 2214 2610 2611 2653 2654 2983 2984 8 2213 2214 2610 2611 2653 2654 2983 2984 8 2213 2214 2610 2611 2653 2654 2983 2984 3 2213 2610 2611 3 2213 2610 2611 3 2213 2610 2611 3 2213 2610 2611 3 2213 2610 2611 3 2213 2610 2611 3 2213 2394 2395 3 2213 2394 2395 3 2213 2394 2395 3 2213 2394 2395 3 2213 2394 2395 3 2213 2394 2395 10 2214 2215 2216 2437 2438 2480 2481 2933 2934 2935 10 2214 2215 2216 2437 2438 2480 2481 2933 2934 2935 10 2214 2215 2216 2437 2438 2480 2481 2933 2934 2935 10 2214 2215 2216 2437 2438 2480 2481 2933 2934 2935 10 2214 2215 2216 2437 2438 2480 2481 2933 2934 2935 10 2214 2215 2216 2437 2438 2480 2481 2933 2934 2935 4 2214 2215 2933 2935 4 2214 2215 2933 2935 4 2214 2215 2933 2935 4 2214 2215 2933 2935 4 2214 2215 2933 2935 4 2214 2215 2933 2935 8 2214 2215 2653 2654 2696 2697 2933 2935 8 2214 2215 2653 2654 2696 2697 2933 2935 8 2214 2215 2653 2654 2696 2697 2933 2935 8 2214 2215 2653 2654 2696 2697 2933 2935 8 2214 2215 2653 2654 2696 2697 2933 2935 8 2214 2215 2653 2654 2696 2697 2933 2935 3 2214 2653 2654 3 2214 2653 2654 3 2214 2653 2654 3 2214 2653 2654 3 2214 2653 2654 3 2214 2653 2654 3 2214 2437 2438 3 2214 2437 2438 3 2214 2437 2438 3 2214 2437 2438 3 2214 2437 2438 3 2214 2437 2438 12 2215 2216 2217 2218 2480 2481 2523 2524 2868 2869 2870 2871 12 2215 2216 2217 2218 2480 2481 2523 2524 2868 2869 2870 2871 12 2215 2216 2217 2218 2480 2481 2523 2524 2868 2869 2870 2871 12 2215 2216 2217 2218 2480 2481 2523 2524 2868 2869 2870 2871 12 2215 2216 2217 2218 2480 2481 2523 2524 2868 2869 2870 2871 12 2215 2216 2217 2218 2480 2481 2523 2524 2868 2869 2870 2871 4 2215 2217 2868 2870 4 2215 2217 2868 2870 4 2215 2217 2868 2870 4 2215 2217 2868 2870 4 2215 2217 2868 2870 4 2215 2217 2868 2870 8 2215 2217 2696 2697 2739 2740 2868 2870 8 2215 2217 2696 2697 2739 2740 2868 2870 8 2215 2217 2696 2697 2739 2740 2868 2870 8 2215 2217 2696 2697 2739 2740 2868 2870 8 2215 2217 2696 2697 2739 2740 2868 2870 8 2215 2217 2696 2697 2739 2740 2868 2870 3 2215 2696 2697 3 2215 2696 2697 3 2215 2696 2697 3 2215 2696 2697 3 2215 2696 2697 3 2215 2696 2697 4 2215 2216 2480 2481 4 2215 2216 2480 2481 4 2215 2216 2480 2481 4 2215 2216 2480 2481 4 2215 2216 2480 2481 4 2215 2216 2480 2481 4 2216 2218 2869 2871 4 2216 2218 2869 2871 4 2216 2218 2869 2871 4 2216 2218 2869 2871 4 2216 2218 2869 2871 4 2216 2218 2869 2871 2 2216 2934 2 2216 2934 2 2216 2934 2 2216 2934 2 2216 2934 2 2216 2934 8 2217 2218 2523 2524 2739 2740 2801 2802 8 2217 2218 2523 2524 2739 2740 2801 2802 8 2217 2218 2523 2524 2739 2740 2801 2802 8 2217 2218 2523 2524 2739 2740 2801 2802 8 2217 2218 2523 2524 2739 2740 2801 2802 8 2217 2218 2523 2524 2739 2740 2801 2802 3 2217 2739 2740 3 2217 2739 2740 3 2217 2739 2740 3 2217 2739 2740 3 2217 2739 2740 3 2217 2739 2740 4 2217 2218 2523 2524 4 2217 2218 2523 2524 4 2217 2218 2523 2524 4 2217 2218 2523 2524 4 2217 2218 2523 2524 4 2217 2218 2523 2524 3 2218 2801 2802 3 2218 2801 2802 3 2218 2801 2802 3 2218 2801 2802 3 2218 2801 2802 3 2218 2801 2802 8 2219 2220 2352 2353 2395 2396 3041 3042 8 2219 2220 2352 2353 2395 2396 3041 3042 8 2219 2220 2352 2353 2395 2396 3041 3042 8 2219 2220 2352 2353 2395 2396 3041 3042 8 2219 2220 2352 2353 2395 2396 3041 3042 8 2219 2220 2352 2353 2395 2396 3041 3042 4 2219 2220 3041 3042 4 2219 2220 3041 3042 4 2219 2220 3041 3042 4 2219 2220 3041 3042 4 2219 2220 3041 3042 4 2219 2220 3041 3042 8 2219 2220 2568 2569 2611 2612 3041 3042 8 2219 2220 2568 2569 2611 2612 3041 3042 8 2219 2220 2568 2569 2611 2612 3041 3042 8 2219 2220 2568 2569 2611 2612 3041 3042 8 2219 2220 2568 2569 2611 2612 3041 3042 8 2219 2220 2568 2569 2611 2612 3041 3042 3 2219 2568 2569 3 2219 2568 2569 3 2219 2568 2569 3 2219 2568 2569 3 2219 2568 2569 3 2219 2568 2569 5 2219 2568 2569 3099 3100 5 2219 2568 2569 3099 3100 5 2219 2568 2569 3099 3100 5 2219 2568 2569 3099 3100 5 2219 2568 2569 3099 3100 5 2219 2568 2569 3099 3100 3 2219 3099 3100 3 2219 3099 3100 3 2219 3099 3100 3 2219 3099 3100 3 2219 3099 3100 3 2219 3099 3100 3 2219 2352 2353 3 2219 2352 2353 3 2219 2352 2353 3 2219 2352 2353 3 2219 2352 2353 3 2219 2352 2353 8 2220 2221 2395 2396 2438 2439 2984 2985 8 2220 2221 2395 2396 2438 2439 2984 2985 8 2220 2221 2395 2396 2438 2439 2984 2985 8 2220 2221 2395 2396 2438 2439 2984 2985 8 2220 2221 2395 2396 2438 2439 2984 2985 8 2220 2221 2395 2396 2438 2439 2984 2985 4 2220 2221 2984 2985 4 2220 2221 2984 2985 4 2220 2221 2984 2985 4 2220 2221 2984 2985 4 2220 2221 2984 2985 4 2220 2221 2984 2985 8 2220 2221 2611 2612 2654 2655 2984 2985 8 2220 2221 2611 2612 2654 2655 2984 2985 8 2220 2221 2611 2612 2654 2655 2984 2985 8 2220 2221 2611 2612 2654 2655 2984 2985 8 2220 2221 2611 2612 2654 2655 2984 2985 8 2220 2221 2611 2612 2654 2655 2984 2985 3 2220 2611 2612 3 2220 2611 2612 3 2220 2611 2612 3 2220 2611 2612 3 2220 2611 2612 3 2220 2611 2612 3 2220 2395 2396 3 2220 2395 2396 3 2220 2395 2396 3 2220 2395 2396 3 2220 2395 2396 3 2220 2395 2396 8 2221 2222 2438 2439 2481 2482 2935 2936 8 2221 2222 2438 2439 2481 2482 2935 2936 8 2221 2222 2438 2439 2481 2482 2935 2936 8 2221 2222 2438 2439 2481 2482 2935 2936 8 2221 2222 2438 2439 2481 2482 2935 2936 8 2221 2222 2438 2439 2481 2482 2935 2936 4 2221 2222 2935 2936 4 2221 2222 2935 2936 4 2221 2222 2935 2936 4 2221 2222 2935 2936 4 2221 2222 2935 2936 4 2221 2222 2935 2936 8 2221 2222 2654 2655 2697 2698 2935 2936 8 2221 2222 2654 2655 2697 2698 2935 2936 8 2221 2222 2654 2655 2697 2698 2935 2936 8 2221 2222 2654 2655 2697 2698 2935 2936 8 2221 2222 2654 2655 2697 2698 2935 2936 8 2221 2222 2654 2655 2697 2698 2935 2936 3 2221 2654 2655 3 2221 2654 2655 3 2221 2654 2655 3 2221 2654 2655 3 2221 2654 2655 3 2221 2654 2655 3 2221 2438 2439 3 2221 2438 2439 3 2221 2438 2439 3 2221 2438 2439 3 2221 2438 2439 3 2221 2438 2439 11 2222 2223 2224 2481 2482 2524 2525 2870 2871 2872 2873 11 2222 2223 2224 2481 2482 2524 2525 2870 2871 2872 2873 11 2222 2223 2224 2481 2482 2524 2525 2870 2871 2872 2873 11 2222 2223 2224 2481 2482 2524 2525 2870 2871 2872 2873 11 2222 2223 2224 2481 2482 2524 2525 2870 2871 2872 2873 11 2222 2223 2224 2481 2482 2524 2525 2870 2871 2872 2873 4 2222 2223 2870 2872 4 2222 2223 2870 2872 4 2222 2223 2870 2872 4 2222 2223 2870 2872 4 2222 2223 2870 2872 4 2222 2223 2870 2872 8 2222 2223 2697 2698 2740 2741 2870 2872 8 2222 2223 2697 2698 2740 2741 2870 2872 8 2222 2223 2697 2698 2740 2741 2870 2872 8 2222 2223 2697 2698 2740 2741 2870 2872 8 2222 2223 2697 2698 2740 2741 2870 2872 8 2222 2223 2697 2698 2740 2741 2870 2872 3 2222 2697 2698 3 2222 2697 2698 3 2222 2697 2698 3 2222 2697 2698 3 2222 2697 2698 3 2222 2697 2698 3 2222 2481 2482 3 2222 2481 2482 3 2222 2481 2482 3 2222 2481 2482 3 2222 2481 2482 3 2222 2481 2482 8 2223 2224 2524 2525 2740 2741 2802 2803 8 2223 2224 2524 2525 2740 2741 2802 2803 8 2223 2224 2524 2525 2740 2741 2802 2803 8 2223 2224 2524 2525 2740 2741 2802 2803 8 2223 2224 2524 2525 2740 2741 2802 2803 8 2223 2224 2524 2525 2740 2741 2802 2803 3 2223 2740 2741 3 2223 2740 2741 3 2223 2740 2741 3 2223 2740 2741 3 2223 2740 2741 3 2223 2740 2741 4 2223 2224 2524 2525 4 2223 2224 2524 2525 4 2223 2224 2524 2525 4 2223 2224 2524 2525 4 2223 2224 2524 2525 4 2223 2224 2524 2525 3 2224 2802 2803 3 2224 2802 2803 3 2224 2802 2803 3 2224 2802 2803 3 2224 2802 2803 3 2224 2802 2803 3 2224 2871 2873 3 2224 2871 2873 3 2224 2871 2873 3 2224 2871 2873 3 2224 2871 2873 3 2224 2871 2873 11 2225 2226 2227 2228 2353 2354 2396 2397 3042 3043 3044 11 2225 2226 2227 2228 2353 2354 2396 2397 3042 3043 3044 11 2225 2226 2227 2228 2353 2354 2396 2397 3042 3043 3044 11 2225 2226 2227 2228 2353 2354 2396 2397 3042 3043 3044 11 2225 2226 2227 2228 2353 2354 2396 2397 3042 3043 3044 11 2225 2226 2227 2228 2353 2354 2396 2397 3042 3043 3044 4 2225 2227 3042 3043 4 2225 2227 3042 3043 4 2225 2227 3042 3043 4 2225 2227 3042 3043 4 2225 2227 3042 3043 4 2225 2227 3042 3043 8 2225 2227 2569 2570 2612 2613 3042 3043 8 2225 2227 2569 2570 2612 2613 3042 3043 8 2225 2227 2569 2570 2612 2613 3042 3043 8 2225 2227 2569 2570 2612 2613 3042 3043 8 2225 2227 2569 2570 2612 2613 3042 3043 8 2225 2227 2569 2570 2612 2613 3042 3043 3 2225 2569 2570 3 2225 2569 2570 3 2225 2569 2570 3 2225 2569 2570 3 2225 2569 2570 3 2225 2569 2570 5 2225 2569 2570 3100 3101 5 2225 2569 2570 3100 3101 5 2225 2569 2570 3100 3101 5 2225 2569 2570 3100 3101 5 2225 2569 2570 3100 3101 5 2225 2569 2570 3100 3101 3 2225 3100 3101 3 2225 3100 3101 3 2225 3100 3101 3 2225 3100 3101 3 2225 3100 3101 3 2225 3100 3101 4 2225 2226 2353 2354 4 2225 2226 2353 2354 4 2225 2226 2353 2354 4 2225 2226 2353 2354 4 2225 2226 2353 2354 4 2225 2226 2353 2354 3 2226 2228 3044 3 2226 2228 3044 3 2226 2228 3044 3 2226 2228 3044 3 2226 2228 3044 3 2226 2228 3044 11 2227 2228 2229 2230 2396 2397 2439 2440 2985 2986 2987 11 2227 2228 2229 2230 2396 2397 2439 2440 2985 2986 2987 11 2227 2228 2229 2230 2396 2397 2439 2440 2985 2986 2987 11 2227 2228 2229 2230 2396 2397 2439 2440 2985 2986 2987 11 2227 2228 2229 2230 2396 2397 2439 2440 2985 2986 2987 11 2227 2228 2229 2230 2396 2397 2439 2440 2985 2986 2987 4 2227 2229 2985 2986 4 2227 2229 2985 2986 4 2227 2229 2985 2986 4 2227 2229 2985 2986 4 2227 2229 2985 2986 4 2227 2229 2985 2986 8 2227 2229 2612 2613 2655 2656 2985 2986 8 2227 2229 2612 2613 2655 2656 2985 2986 8 2227 2229 2612 2613 2655 2656 2985 2986 8 2227 2229 2612 2613 2655 2656 2985 2986 8 2227 2229 2612 2613 2655 2656 2985 2986 8 2227 2229 2612 2613 2655 2656 2985 2986 3 2227 2612 2613 3 2227 2612 2613 3 2227 2612 2613 3 2227 2612 2613 3 2227 2612 2613 3 2227 2612 2613 4 2227 2228 2396 2397 4 2227 2228 2396 2397 4 2227 2228 2396 2397 4 2227 2228 2396 2397 4 2227 2228 2396 2397 4 2227 2228 2396 2397 3 2228 2230 2987 3 2228 2230 2987 3 2228 2230 2987 3 2228 2230 2987 3 2228 2230 2987 3 2228 2230 2987 11 2229 2230 2231 2232 2439 2440 2482 2483 2936 2937 2938 11 2229 2230 2231 2232 2439 2440 2482 2483 2936 2937 2938 11 2229 2230 2231 2232 2439 2440 2482 2483 2936 2937 2938 11 2229 2230 2231 2232 2439 2440 2482 2483 2936 2937 2938 11 2229 2230 2231 2232 2439 2440 2482 2483 2936 2937 2938 11 2229 2230 2231 2232 2439 2440 2482 2483 2936 2937 2938 4 2229 2231 2936 2937 4 2229 2231 2936 2937 4 2229 2231 2936 2937 4 2229 2231 2936 2937 4 2229 2231 2936 2937 4 2229 2231 2936 2937 8 2229 2231 2655 2656 2698 2699 2936 2937 8 2229 2231 2655 2656 2698 2699 2936 2937 8 2229 2231 2655 2656 2698 2699 2936 2937 8 2229 2231 2655 2656 2698 2699 2936 2937 8 2229 2231 2655 2656 2698 2699 2936 2937 8 2229 2231 2655 2656 2698 2699 2936 2937 3 2229 2655 2656 3 2229 2655 2656 3 2229 2655 2656 3 2229 2655 2656 3 2229 2655 2656 3 2229 2655 2656 4 2229 2230 2439 2440 4 2229 2230 2439 2440 4 2229 2230 2439 2440 4 2229 2230 2439 2440 4 2229 2230 2439 2440 4 2229 2230 2439 2440 3 2230 2232 2938 3 2230 2232 2938 3 2230 2232 2938 3 2230 2232 2938 3 2230 2232 2938 3 2230 2232 2938 12 2231 2232 2233 2234 2482 2483 2525 2526 2872 2873 2874 2875 12 2231 2232 2233 2234 2482 2483 2525 2526 2872 2873 2874 2875 12 2231 2232 2233 2234 2482 2483 2525 2526 2872 2873 2874 2875 12 2231 2232 2233 2234 2482 2483 2525 2526 2872 2873 2874 2875 12 2231 2232 2233 2234 2482 2483 2525 2526 2872 2873 2874 2875 12 2231 2232 2233 2234 2482 2483 2525 2526 2872 2873 2874 2875 4 2231 2233 2872 2874 4 2231 2233 2872 2874 4 2231 2233 2872 2874 4 2231 2233 2872 2874 4 2231 2233 2872 2874 4 2231 2233 2872 2874 8 2231 2233 2698 2699 2741 2742 2872 2874 8 2231 2233 2698 2699 2741 2742 2872 2874 8 2231 2233 2698 2699 2741 2742 2872 2874 8 2231 2233 2698 2699 2741 2742 2872 2874 8 2231 2233 2698 2699 2741 2742 2872 2874 8 2231 2233 2698 2699 2741 2742 2872 2874 3 2231 2698 2699 3 2231 2698 2699 3 2231 2698 2699 3 2231 2698 2699 3 2231 2698 2699 3 2231 2698 2699 4 2231 2232 2482 2483 4 2231 2232 2482 2483 4 2231 2232 2482 2483 4 2231 2232 2482 2483 4 2231 2232 2482 2483 4 2231 2232 2482 2483 4 2232 2234 2873 2875 4 2232 2234 2873 2875 4 2232 2234 2873 2875 4 2232 2234 2873 2875 4 2232 2234 2873 2875 4 2232 2234 2873 2875 8 2233 2234 2525 2526 2741 2742 2803 2804 8 2233 2234 2525 2526 2741 2742 2803 2804 8 2233 2234 2525 2526 2741 2742 2803 2804 8 2233 2234 2525 2526 2741 2742 2803 2804 8 2233 2234 2525 2526 2741 2742 2803 2804 8 2233 2234 2525 2526 2741 2742 2803 2804 3 2233 2741 2742 3 2233 2741 2742 3 2233 2741 2742 3 2233 2741 2742 3 2233 2741 2742 3 2233 2741 2742 4 2233 2234 2525 2526 4 2233 2234 2525 2526 4 2233 2234 2525 2526 4 2233 2234 2525 2526 4 2233 2234 2525 2526 4 2233 2234 2525 2526 3 2234 2803 2804 3 2234 2803 2804 3 2234 2803 2804 3 2234 2803 2804 3 2234 2803 2804 3 2234 2803 2804 11 2235 2236 2237 2238 2354 2355 2397 2398 3043 3044 3045 11 2235 2236 2237 2238 2354 2355 2397 2398 3043 3044 3045 11 2235 2236 2237 2238 2354 2355 2397 2398 3043 3044 3045 11 2235 2236 2237 2238 2354 2355 2397 2398 3043 3044 3045 11 2235 2236 2237 2238 2354 2355 2397 2398 3043 3044 3045 11 2235 2236 2237 2238 2354 2355 2397 2398 3043 3044 3045 4 2235 2237 3043 3045 4 2235 2237 3043 3045 4 2235 2237 3043 3045 4 2235 2237 3043 3045 4 2235 2237 3043 3045 4 2235 2237 3043 3045 8 2235 2237 2570 2571 2613 2614 3043 3045 8 2235 2237 2570 2571 2613 2614 3043 3045 8 2235 2237 2570 2571 2613 2614 3043 3045 8 2235 2237 2570 2571 2613 2614 3043 3045 8 2235 2237 2570 2571 2613 2614 3043 3045 8 2235 2237 2570 2571 2613 2614 3043 3045 3 2235 2570 2571 3 2235 2570 2571 3 2235 2570 2571 3 2235 2570 2571 3 2235 2570 2571 3 2235 2570 2571 5 2235 2570 2571 3101 3103 5 2235 2570 2571 3101 3103 5 2235 2570 2571 3101 3103 5 2235 2570 2571 3101 3103 5 2235 2570 2571 3101 3103 5 2235 2570 2571 3101 3103 3 2235 3101 3103 3 2235 3101 3103 3 2235 3101 3103 3 2235 3101 3103 3 2235 3101 3103 3 2235 3101 3103 4 2235 2236 2354 2355 4 2235 2236 2354 2355 4 2235 2236 2354 2355 4 2235 2236 2354 2355 4 2235 2236 2354 2355 4 2235 2236 2354 2355 3 2236 2238 3044 3 2236 2238 3044 3 2236 2238 3044 3 2236 2238 3044 3 2236 2238 3044 3 2236 2238 3044 11 2237 2238 2239 2240 2397 2398 2440 2441 2986 2987 2988 11 2237 2238 2239 2240 2397 2398 2440 2441 2986 2987 2988 11 2237 2238 2239 2240 2397 2398 2440 2441 2986 2987 2988 11 2237 2238 2239 2240 2397 2398 2440 2441 2986 2987 2988 11 2237 2238 2239 2240 2397 2398 2440 2441 2986 2987 2988 11 2237 2238 2239 2240 2397 2398 2440 2441 2986 2987 2988 4 2237 2239 2986 2988 4 2237 2239 2986 2988 4 2237 2239 2986 2988 4 2237 2239 2986 2988 4 2237 2239 2986 2988 4 2237 2239 2986 2988 8 2237 2239 2613 2614 2656 2657 2986 2988 8 2237 2239 2613 2614 2656 2657 2986 2988 8 2237 2239 2613 2614 2656 2657 2986 2988 8 2237 2239 2613 2614 2656 2657 2986 2988 8 2237 2239 2613 2614 2656 2657 2986 2988 8 2237 2239 2613 2614 2656 2657 2986 2988 3 2237 2613 2614 3 2237 2613 2614 3 2237 2613 2614 3 2237 2613 2614 3 2237 2613 2614 3 2237 2613 2614 4 2237 2238 2397 2398 4 2237 2238 2397 2398 4 2237 2238 2397 2398 4 2237 2238 2397 2398 4 2237 2238 2397 2398 4 2237 2238 2397 2398 3 2238 2240 2987 3 2238 2240 2987 3 2238 2240 2987 3 2238 2240 2987 3 2238 2240 2987 3 2238 2240 2987 11 2239 2240 2241 2242 2440 2441 2483 2484 2937 2938 2939 11 2239 2240 2241 2242 2440 2441 2483 2484 2937 2938 2939 11 2239 2240 2241 2242 2440 2441 2483 2484 2937 2938 2939 11 2239 2240 2241 2242 2440 2441 2483 2484 2937 2938 2939 11 2239 2240 2241 2242 2440 2441 2483 2484 2937 2938 2939 11 2239 2240 2241 2242 2440 2441 2483 2484 2937 2938 2939 4 2239 2241 2937 2939 4 2239 2241 2937 2939 4 2239 2241 2937 2939 4 2239 2241 2937 2939 4 2239 2241 2937 2939 4 2239 2241 2937 2939 8 2239 2241 2656 2657 2699 2700 2937 2939 8 2239 2241 2656 2657 2699 2700 2937 2939 8 2239 2241 2656 2657 2699 2700 2937 2939 8 2239 2241 2656 2657 2699 2700 2937 2939 8 2239 2241 2656 2657 2699 2700 2937 2939 8 2239 2241 2656 2657 2699 2700 2937 2939 3 2239 2656 2657 3 2239 2656 2657 3 2239 2656 2657 3 2239 2656 2657 3 2239 2656 2657 3 2239 2656 2657 4 2239 2240 2440 2441 4 2239 2240 2440 2441 4 2239 2240 2440 2441 4 2239 2240 2440 2441 4 2239 2240 2440 2441 4 2239 2240 2440 2441 3 2240 2242 2938 3 2240 2242 2938 3 2240 2242 2938 3 2240 2242 2938 3 2240 2242 2938 3 2240 2242 2938 12 2241 2242 2243 2244 2483 2484 2526 2527 2874 2875 2876 2877 12 2241 2242 2243 2244 2483 2484 2526 2527 2874 2875 2876 2877 12 2241 2242 2243 2244 2483 2484 2526 2527 2874 2875 2876 2877 12 2241 2242 2243 2244 2483 2484 2526 2527 2874 2875 2876 2877 12 2241 2242 2243 2244 2483 2484 2526 2527 2874 2875 2876 2877 12 2241 2242 2243 2244 2483 2484 2526 2527 2874 2875 2876 2877 4 2241 2243 2874 2876 4 2241 2243 2874 2876 4 2241 2243 2874 2876 4 2241 2243 2874 2876 4 2241 2243 2874 2876 4 2241 2243 2874 2876 8 2241 2243 2699 2700 2742 2743 2874 2876 8 2241 2243 2699 2700 2742 2743 2874 2876 8 2241 2243 2699 2700 2742 2743 2874 2876 8 2241 2243 2699 2700 2742 2743 2874 2876 8 2241 2243 2699 2700 2742 2743 2874 2876 8 2241 2243 2699 2700 2742 2743 2874 2876 3 2241 2699 2700 3 2241 2699 2700 3 2241 2699 2700 3 2241 2699 2700 3 2241 2699 2700 3 2241 2699 2700 4 2241 2242 2483 2484 4 2241 2242 2483 2484 4 2241 2242 2483 2484 4 2241 2242 2483 2484 4 2241 2242 2483 2484 4 2241 2242 2483 2484 4 2242 2244 2875 2877 4 2242 2244 2875 2877 4 2242 2244 2875 2877 4 2242 2244 2875 2877 4 2242 2244 2875 2877 4 2242 2244 2875 2877 8 2243 2244 2526 2527 2742 2743 2804 2805 8 2243 2244 2526 2527 2742 2743 2804 2805 8 2243 2244 2526 2527 2742 2743 2804 2805 8 2243 2244 2526 2527 2742 2743 2804 2805 8 2243 2244 2526 2527 2742 2743 2804 2805 8 2243 2244 2526 2527 2742 2743 2804 2805 3 2243 2742 2743 3 2243 2742 2743 3 2243 2742 2743 3 2243 2742 2743 3 2243 2742 2743 3 2243 2742 2743 4 2243 2244 2526 2527 4 2243 2244 2526 2527 4 2243 2244 2526 2527 4 2243 2244 2526 2527 4 2243 2244 2526 2527 4 2243 2244 2526 2527 3 2244 2804 2805 3 2244 2804 2805 3 2244 2804 2805 3 2244 2804 2805 3 2244 2804 2805 3 2244 2804 2805 8 2245 2246 2355 2356 2398 2399 3045 3046 8 2245 2246 2355 2356 2398 2399 3045 3046 8 2245 2246 2355 2356 2398 2399 3045 3046 8 2245 2246 2355 2356 2398 2399 3045 3046 8 2245 2246 2355 2356 2398 2399 3045 3046 8 2245 2246 2355 2356 2398 2399 3045 3046 4 2245 2246 3045 3046 4 2245 2246 3045 3046 4 2245 2246 3045 3046 4 2245 2246 3045 3046 4 2245 2246 3045 3046 4 2245 2246 3045 3046 8 2245 2246 2571 2572 2614 2615 3045 3046 8 2245 2246 2571 2572 2614 2615 3045 3046 8 2245 2246 2571 2572 2614 2615 3045 3046 8 2245 2246 2571 2572 2614 2615 3045 3046 8 2245 2246 2571 2572 2614 2615 3045 3046 8 2245 2246 2571 2572 2614 2615 3045 3046 3 2245 2571 2572 3 2245 2571 2572 3 2245 2571 2572 3 2245 2571 2572 3 2245 2571 2572 3 2245 2571 2572 5 2245 2571 2572 3103 3104 5 2245 2571 2572 3103 3104 5 2245 2571 2572 3103 3104 5 2245 2571 2572 3103 3104 5 2245 2571 2572 3103 3104 5 2245 2571 2572 3103 3104 3 2245 3103 3104 3 2245 3103 3104 3 2245 3103 3104 3 2245 3103 3104 3 2245 3103 3104 3 2245 3103 3104 3 2245 2355 2356 3 2245 2355 2356 3 2245 2355 2356 3 2245 2355 2356 3 2245 2355 2356 3 2245 2355 2356 8 2246 2247 2398 2399 2441 2442 2988 2989 8 2246 2247 2398 2399 2441 2442 2988 2989 8 2246 2247 2398 2399 2441 2442 2988 2989 8 2246 2247 2398 2399 2441 2442 2988 2989 8 2246 2247 2398 2399 2441 2442 2988 2989 8 2246 2247 2398 2399 2441 2442 2988 2989 4 2246 2247 2988 2989 4 2246 2247 2988 2989 4 2246 2247 2988 2989 4 2246 2247 2988 2989 4 2246 2247 2988 2989 4 2246 2247 2988 2989 8 2246 2247 2614 2615 2657 2658 2988 2989 8 2246 2247 2614 2615 2657 2658 2988 2989 8 2246 2247 2614 2615 2657 2658 2988 2989 8 2246 2247 2614 2615 2657 2658 2988 2989 8 2246 2247 2614 2615 2657 2658 2988 2989 8 2246 2247 2614 2615 2657 2658 2988 2989 3 2246 2614 2615 3 2246 2614 2615 3 2246 2614 2615 3 2246 2614 2615 3 2246 2614 2615 3 2246 2614 2615 3 2246 2398 2399 3 2246 2398 2399 3 2246 2398 2399 3 2246 2398 2399 3 2246 2398 2399 3 2246 2398 2399 8 2247 2248 2441 2442 2484 2485 2939 2940 8 2247 2248 2441 2442 2484 2485 2939 2940 8 2247 2248 2441 2442 2484 2485 2939 2940 8 2247 2248 2441 2442 2484 2485 2939 2940 8 2247 2248 2441 2442 2484 2485 2939 2940 8 2247 2248 2441 2442 2484 2485 2939 2940 4 2247 2248 2939 2940 4 2247 2248 2939 2940 4 2247 2248 2939 2940 4 2247 2248 2939 2940 4 2247 2248 2939 2940 4 2247 2248 2939 2940 8 2247 2248 2657 2658 2700 2701 2939 2940 8 2247 2248 2657 2658 2700 2701 2939 2940 8 2247 2248 2657 2658 2700 2701 2939 2940 8 2247 2248 2657 2658 2700 2701 2939 2940 8 2247 2248 2657 2658 2700 2701 2939 2940 8 2247 2248 2657 2658 2700 2701 2939 2940 3 2247 2657 2658 3 2247 2657 2658 3 2247 2657 2658 3 2247 2657 2658 3 2247 2657 2658 3 2247 2657 2658 3 2247 2441 2442 3 2247 2441 2442 3 2247 2441 2442 3 2247 2441 2442 3 2247 2441 2442 3 2247 2441 2442 11 2248 2249 2250 2484 2485 2527 2528 2876 2877 2878 2879 11 2248 2249 2250 2484 2485 2527 2528 2876 2877 2878 2879 11 2248 2249 2250 2484 2485 2527 2528 2876 2877 2878 2879 11 2248 2249 2250 2484 2485 2527 2528 2876 2877 2878 2879 11 2248 2249 2250 2484 2485 2527 2528 2876 2877 2878 2879 11 2248 2249 2250 2484 2485 2527 2528 2876 2877 2878 2879 4 2248 2249 2876 2878 4 2248 2249 2876 2878 4 2248 2249 2876 2878 4 2248 2249 2876 2878 4 2248 2249 2876 2878 4 2248 2249 2876 2878 8 2248 2249 2700 2701 2743 2744 2876 2878 8 2248 2249 2700 2701 2743 2744 2876 2878 8 2248 2249 2700 2701 2743 2744 2876 2878 8 2248 2249 2700 2701 2743 2744 2876 2878 8 2248 2249 2700 2701 2743 2744 2876 2878 8 2248 2249 2700 2701 2743 2744 2876 2878 3 2248 2700 2701 3 2248 2700 2701 3 2248 2700 2701 3 2248 2700 2701 3 2248 2700 2701 3 2248 2700 2701 3 2248 2484 2485 3 2248 2484 2485 3 2248 2484 2485 3 2248 2484 2485 3 2248 2484 2485 3 2248 2484 2485 8 2249 2250 2527 2528 2743 2744 2805 2806 8 2249 2250 2527 2528 2743 2744 2805 2806 8 2249 2250 2527 2528 2743 2744 2805 2806 8 2249 2250 2527 2528 2743 2744 2805 2806 8 2249 2250 2527 2528 2743 2744 2805 2806 8 2249 2250 2527 2528 2743 2744 2805 2806 3 2249 2743 2744 3 2249 2743 2744 3 2249 2743 2744 3 2249 2743 2744 3 2249 2743 2744 3 2249 2743 2744 4 2249 2250 2527 2528 4 2249 2250 2527 2528 4 2249 2250 2527 2528 4 2249 2250 2527 2528 4 2249 2250 2527 2528 4 2249 2250 2527 2528 3 2250 2805 2806 3 2250 2805 2806 3 2250 2805 2806 3 2250 2805 2806 3 2250 2805 2806 3 2250 2805 2806 3 2250 2877 2879 3 2250 2877 2879 3 2250 2877 2879 3 2250 2877 2879 3 2250 2877 2879 3 2250 2877 2879 10 2251 2252 2253 2356 2357 2399 2400 3046 3047 3048 10 2251 2252 2253 2356 2357 2399 2400 3046 3047 3048 10 2251 2252 2253 2356 2357 2399 2400 3046 3047 3048 10 2251 2252 2253 2356 2357 2399 2400 3046 3047 3048 10 2251 2252 2253 2356 2357 2399 2400 3046 3047 3048 10 2251 2252 2253 2356 2357 2399 2400 3046 3047 3048 4 2251 2253 3046 3047 4 2251 2253 3046 3047 4 2251 2253 3046 3047 4 2251 2253 3046 3047 4 2251 2253 3046 3047 4 2251 2253 3046 3047 8 2251 2253 2572 2573 2615 2616 3046 3047 8 2251 2253 2572 2573 2615 2616 3046 3047 8 2251 2253 2572 2573 2615 2616 3046 3047 8 2251 2253 2572 2573 2615 2616 3046 3047 8 2251 2253 2572 2573 2615 2616 3046 3047 8 2251 2253 2572 2573 2615 2616 3046 3047 3 2251 2572 2573 3 2251 2572 2573 3 2251 2572 2573 3 2251 2572 2573 3 2251 2572 2573 3 2251 2572 2573 5 2251 2572 2573 3104 3105 5 2251 2572 2573 3104 3105 5 2251 2572 2573 3104 3105 5 2251 2572 2573 3104 3105 5 2251 2572 2573 3104 3105 5 2251 2572 2573 3104 3105 3 2251 3104 3105 3 2251 3104 3105 3 2251 3104 3105 3 2251 3104 3105 3 2251 3104 3105 3 2251 3104 3105 4 2251 2252 2356 2357 4 2251 2252 2356 2357 4 2251 2252 2356 2357 4 2251 2252 2356 2357 4 2251 2252 2356 2357 4 2251 2252 2356 2357 2 2252 3048 2 2252 3048 2 2252 3048 2 2252 3048 2 2252 3048 2 2252 3048 8 2253 2254 2399 2400 2442 2443 2989 2990 8 2253 2254 2399 2400 2442 2443 2989 2990 8 2253 2254 2399 2400 2442 2443 2989 2990 8 2253 2254 2399 2400 2442 2443 2989 2990 8 2253 2254 2399 2400 2442 2443 2989 2990 8 2253 2254 2399 2400 2442 2443 2989 2990 4 2253 2254 2989 2990 4 2253 2254 2989 2990 4 2253 2254 2989 2990 4 2253 2254 2989 2990 4 2253 2254 2989 2990 4 2253 2254 2989 2990 8 2253 2254 2615 2616 2658 2659 2989 2990 8 2253 2254 2615 2616 2658 2659 2989 2990 8 2253 2254 2615 2616 2658 2659 2989 2990 8 2253 2254 2615 2616 2658 2659 2989 2990 8 2253 2254 2615 2616 2658 2659 2989 2990 8 2253 2254 2615 2616 2658 2659 2989 2990 3 2253 2615 2616 3 2253 2615 2616 3 2253 2615 2616 3 2253 2615 2616 3 2253 2615 2616 3 2253 2615 2616 3 2253 2399 2400 3 2253 2399 2400 3 2253 2399 2400 3 2253 2399 2400 3 2253 2399 2400 3 2253 2399 2400 10 2254 2255 2256 2442 2443 2485 2486 2940 2941 2942 10 2254 2255 2256 2442 2443 2485 2486 2940 2941 2942 10 2254 2255 2256 2442 2443 2485 2486 2940 2941 2942 10 2254 2255 2256 2442 2443 2485 2486 2940 2941 2942 10 2254 2255 2256 2442 2443 2485 2486 2940 2941 2942 10 2254 2255 2256 2442 2443 2485 2486 2940 2941 2942 4 2254 2255 2940 2941 4 2254 2255 2940 2941 4 2254 2255 2940 2941 4 2254 2255 2940 2941 4 2254 2255 2940 2941 4 2254 2255 2940 2941 8 2254 2255 2658 2659 2701 2702 2940 2941 8 2254 2255 2658 2659 2701 2702 2940 2941 8 2254 2255 2658 2659 2701 2702 2940 2941 8 2254 2255 2658 2659 2701 2702 2940 2941 8 2254 2255 2658 2659 2701 2702 2940 2941 8 2254 2255 2658 2659 2701 2702 2940 2941 3 2254 2658 2659 3 2254 2658 2659 3 2254 2658 2659 3 2254 2658 2659 3 2254 2658 2659 3 2254 2658 2659 3 2254 2442 2443 3 2254 2442 2443 3 2254 2442 2443 3 2254 2442 2443 3 2254 2442 2443 3 2254 2442 2443 12 2255 2256 2257 2258 2485 2486 2528 2529 2878 2879 2880 2881 12 2255 2256 2257 2258 2485 2486 2528 2529 2878 2879 2880 2881 12 2255 2256 2257 2258 2485 2486 2528 2529 2878 2879 2880 2881 12 2255 2256 2257 2258 2485 2486 2528 2529 2878 2879 2880 2881 12 2255 2256 2257 2258 2485 2486 2528 2529 2878 2879 2880 2881 12 2255 2256 2257 2258 2485 2486 2528 2529 2878 2879 2880 2881 4 2255 2257 2878 2880 4 2255 2257 2878 2880 4 2255 2257 2878 2880 4 2255 2257 2878 2880 4 2255 2257 2878 2880 4 2255 2257 2878 2880 8 2255 2257 2701 2702 2744 2745 2878 2880 8 2255 2257 2701 2702 2744 2745 2878 2880 8 2255 2257 2701 2702 2744 2745 2878 2880 8 2255 2257 2701 2702 2744 2745 2878 2880 8 2255 2257 2701 2702 2744 2745 2878 2880 8 2255 2257 2701 2702 2744 2745 2878 2880 3 2255 2701 2702 3 2255 2701 2702 3 2255 2701 2702 3 2255 2701 2702 3 2255 2701 2702 3 2255 2701 2702 4 2255 2256 2485 2486 4 2255 2256 2485 2486 4 2255 2256 2485 2486 4 2255 2256 2485 2486 4 2255 2256 2485 2486 4 2255 2256 2485 2486 4 2256 2258 2879 2881 4 2256 2258 2879 2881 4 2256 2258 2879 2881 4 2256 2258 2879 2881 4 2256 2258 2879 2881 4 2256 2258 2879 2881 2 2256 2942 2 2256 2942 2 2256 2942 2 2256 2942 2 2256 2942 2 2256 2942 8 2257 2258 2528 2529 2744 2745 2806 2807 8 2257 2258 2528 2529 2744 2745 2806 2807 8 2257 2258 2528 2529 2744 2745 2806 2807 8 2257 2258 2528 2529 2744 2745 2806 2807 8 2257 2258 2528 2529 2744 2745 2806 2807 8 2257 2258 2528 2529 2744 2745 2806 2807 3 2257 2744 2745 3 2257 2744 2745 3 2257 2744 2745 3 2257 2744 2745 3 2257 2744 2745 3 2257 2744 2745 4 2257 2258 2528 2529 4 2257 2258 2528 2529 4 2257 2258 2528 2529 4 2257 2258 2528 2529 4 2257 2258 2528 2529 4 2257 2258 2528 2529 3 2258 2806 2807 3 2258 2806 2807 3 2258 2806 2807 3 2258 2806 2807 3 2258 2806 2807 3 2258 2806 2807 10 2259 2260 2261 2357 2358 2400 2401 3047 3048 3049 10 2259 2260 2261 2357 2358 2400 2401 3047 3048 3049 10 2259 2260 2261 2357 2358 2400 2401 3047 3048 3049 10 2259 2260 2261 2357 2358 2400 2401 3047 3048 3049 10 2259 2260 2261 2357 2358 2400 2401 3047 3048 3049 10 2259 2260 2261 2357 2358 2400 2401 3047 3048 3049 4 2259 2261 3047 3049 4 2259 2261 3047 3049 4 2259 2261 3047 3049 4 2259 2261 3047 3049 4 2259 2261 3047 3049 4 2259 2261 3047 3049 8 2259 2261 2573 2574 2616 2617 3047 3049 8 2259 2261 2573 2574 2616 2617 3047 3049 8 2259 2261 2573 2574 2616 2617 3047 3049 8 2259 2261 2573 2574 2616 2617 3047 3049 8 2259 2261 2573 2574 2616 2617 3047 3049 8 2259 2261 2573 2574 2616 2617 3047 3049 3 2259 2573 2574 3 2259 2573 2574 3 2259 2573 2574 3 2259 2573 2574 3 2259 2573 2574 3 2259 2573 2574 5 2259 2573 2574 3105 3107 5 2259 2573 2574 3105 3107 5 2259 2573 2574 3105 3107 5 2259 2573 2574 3105 3107 5 2259 2573 2574 3105 3107 5 2259 2573 2574 3105 3107 3 2259 3105 3107 3 2259 3105 3107 3 2259 3105 3107 3 2259 3105 3107 3 2259 3105 3107 3 2259 3105 3107 4 2259 2260 2357 2358 4 2259 2260 2357 2358 4 2259 2260 2357 2358 4 2259 2260 2357 2358 4 2259 2260 2357 2358 4 2259 2260 2357 2358 2 2260 3048 2 2260 3048 2 2260 3048 2 2260 3048 2 2260 3048 2 2260 3048 8 2261 2262 2400 2401 2443 2444 2990 2991 8 2261 2262 2400 2401 2443 2444 2990 2991 8 2261 2262 2400 2401 2443 2444 2990 2991 8 2261 2262 2400 2401 2443 2444 2990 2991 8 2261 2262 2400 2401 2443 2444 2990 2991 8 2261 2262 2400 2401 2443 2444 2990 2991 4 2261 2262 2990 2991 4 2261 2262 2990 2991 4 2261 2262 2990 2991 4 2261 2262 2990 2991 4 2261 2262 2990 2991 4 2261 2262 2990 2991 8 2261 2262 2616 2617 2659 2660 2990 2991 8 2261 2262 2616 2617 2659 2660 2990 2991 8 2261 2262 2616 2617 2659 2660 2990 2991 8 2261 2262 2616 2617 2659 2660 2990 2991 8 2261 2262 2616 2617 2659 2660 2990 2991 8 2261 2262 2616 2617 2659 2660 2990 2991 3 2261 2616 2617 3 2261 2616 2617 3 2261 2616 2617 3 2261 2616 2617 3 2261 2616 2617 3 2261 2616 2617 3 2261 2400 2401 3 2261 2400 2401 3 2261 2400 2401 3 2261 2400 2401 3 2261 2400 2401 3 2261 2400 2401 10 2262 2263 2264 2443 2444 2486 2487 2941 2942 2943 10 2262 2263 2264 2443 2444 2486 2487 2941 2942 2943 10 2262 2263 2264 2443 2444 2486 2487 2941 2942 2943 10 2262 2263 2264 2443 2444 2486 2487 2941 2942 2943 10 2262 2263 2264 2443 2444 2486 2487 2941 2942 2943 10 2262 2263 2264 2443 2444 2486 2487 2941 2942 2943 4 2262 2263 2941 2943 4 2262 2263 2941 2943 4 2262 2263 2941 2943 4 2262 2263 2941 2943 4 2262 2263 2941 2943 4 2262 2263 2941 2943 8 2262 2263 2659 2660 2702 2703 2941 2943 8 2262 2263 2659 2660 2702 2703 2941 2943 8 2262 2263 2659 2660 2702 2703 2941 2943 8 2262 2263 2659 2660 2702 2703 2941 2943 8 2262 2263 2659 2660 2702 2703 2941 2943 8 2262 2263 2659 2660 2702 2703 2941 2943 3 2262 2659 2660 3 2262 2659 2660 3 2262 2659 2660 3 2262 2659 2660 3 2262 2659 2660 3 2262 2659 2660 3 2262 2443 2444 3 2262 2443 2444 3 2262 2443 2444 3 2262 2443 2444 3 2262 2443 2444 3 2262 2443 2444 12 2263 2264 2265 2266 2486 2487 2529 2530 2880 2881 2882 2883 12 2263 2264 2265 2266 2486 2487 2529 2530 2880 2881 2882 2883 12 2263 2264 2265 2266 2486 2487 2529 2530 2880 2881 2882 2883 12 2263 2264 2265 2266 2486 2487 2529 2530 2880 2881 2882 2883 12 2263 2264 2265 2266 2486 2487 2529 2530 2880 2881 2882 2883 12 2263 2264 2265 2266 2486 2487 2529 2530 2880 2881 2882 2883 4 2263 2265 2880 2882 4 2263 2265 2880 2882 4 2263 2265 2880 2882 4 2263 2265 2880 2882 4 2263 2265 2880 2882 4 2263 2265 2880 2882 8 2263 2265 2702 2703 2745 2746 2880 2882 8 2263 2265 2702 2703 2745 2746 2880 2882 8 2263 2265 2702 2703 2745 2746 2880 2882 8 2263 2265 2702 2703 2745 2746 2880 2882 8 2263 2265 2702 2703 2745 2746 2880 2882 8 2263 2265 2702 2703 2745 2746 2880 2882 3 2263 2702 2703 3 2263 2702 2703 3 2263 2702 2703 3 2263 2702 2703 3 2263 2702 2703 3 2263 2702 2703 4 2263 2264 2486 2487 4 2263 2264 2486 2487 4 2263 2264 2486 2487 4 2263 2264 2486 2487 4 2263 2264 2486 2487 4 2263 2264 2486 2487 4 2264 2266 2881 2883 4 2264 2266 2881 2883 4 2264 2266 2881 2883 4 2264 2266 2881 2883 4 2264 2266 2881 2883 4 2264 2266 2881 2883 2 2264 2942 2 2264 2942 2 2264 2942 2 2264 2942 2 2264 2942 2 2264 2942 8 2265 2266 2529 2530 2745 2746 2807 2808 8 2265 2266 2529 2530 2745 2746 2807 2808 8 2265 2266 2529 2530 2745 2746 2807 2808 8 2265 2266 2529 2530 2745 2746 2807 2808 8 2265 2266 2529 2530 2745 2746 2807 2808 8 2265 2266 2529 2530 2745 2746 2807 2808 3 2265 2745 2746 3 2265 2745 2746 3 2265 2745 2746 3 2265 2745 2746 3 2265 2745 2746 3 2265 2745 2746 4 2265 2266 2529 2530 4 2265 2266 2529 2530 4 2265 2266 2529 2530 4 2265 2266 2529 2530 4 2265 2266 2529 2530 4 2265 2266 2529 2530 3 2266 2807 2808 3 2266 2807 2808 3 2266 2807 2808 3 2266 2807 2808 3 2266 2807 2808 3 2266 2807 2808 8 2267 2268 2358 2359 2401 2402 3049 3050 8 2267 2268 2358 2359 2401 2402 3049 3050 8 2267 2268 2358 2359 2401 2402 3049 3050 8 2267 2268 2358 2359 2401 2402 3049 3050 8 2267 2268 2358 2359 2401 2402 3049 3050 8 2267 2268 2358 2359 2401 2402 3049 3050 4 2267 2268 3049 3050 4 2267 2268 3049 3050 4 2267 2268 3049 3050 4 2267 2268 3049 3050 4 2267 2268 3049 3050 4 2267 2268 3049 3050 8 2267 2268 2574 2575 2617 2618 3049 3050 8 2267 2268 2574 2575 2617 2618 3049 3050 8 2267 2268 2574 2575 2617 2618 3049 3050 8 2267 2268 2574 2575 2617 2618 3049 3050 8 2267 2268 2574 2575 2617 2618 3049 3050 8 2267 2268 2574 2575 2617 2618 3049 3050 3 2267 2574 2575 3 2267 2574 2575 3 2267 2574 2575 3 2267 2574 2575 3 2267 2574 2575 3 2267 2574 2575 5 2267 2574 2575 3107 3108 5 2267 2574 2575 3107 3108 5 2267 2574 2575 3107 3108 5 2267 2574 2575 3107 3108 5 2267 2574 2575 3107 3108 5 2267 2574 2575 3107 3108 3 2267 3107 3108 3 2267 3107 3108 3 2267 3107 3108 3 2267 3107 3108 3 2267 3107 3108 3 2267 3107 3108 3 2267 2358 2359 3 2267 2358 2359 3 2267 2358 2359 3 2267 2358 2359 3 2267 2358 2359 3 2267 2358 2359 8 2268 2269 2401 2402 2444 2445 2991 2992 8 2268 2269 2401 2402 2444 2445 2991 2992 8 2268 2269 2401 2402 2444 2445 2991 2992 8 2268 2269 2401 2402 2444 2445 2991 2992 8 2268 2269 2401 2402 2444 2445 2991 2992 8 2268 2269 2401 2402 2444 2445 2991 2992 4 2268 2269 2991 2992 4 2268 2269 2991 2992 4 2268 2269 2991 2992 4 2268 2269 2991 2992 4 2268 2269 2991 2992 4 2268 2269 2991 2992 8 2268 2269 2617 2618 2660 2661 2991 2992 8 2268 2269 2617 2618 2660 2661 2991 2992 8 2268 2269 2617 2618 2660 2661 2991 2992 8 2268 2269 2617 2618 2660 2661 2991 2992 8 2268 2269 2617 2618 2660 2661 2991 2992 8 2268 2269 2617 2618 2660 2661 2991 2992 3 2268 2617 2618 3 2268 2617 2618 3 2268 2617 2618 3 2268 2617 2618 3 2268 2617 2618 3 2268 2617 2618 3 2268 2401 2402 3 2268 2401 2402 3 2268 2401 2402 3 2268 2401 2402 3 2268 2401 2402 3 2268 2401 2402 8 2269 2270 2444 2445 2487 2488 2943 2944 8 2269 2270 2444 2445 2487 2488 2943 2944 8 2269 2270 2444 2445 2487 2488 2943 2944 8 2269 2270 2444 2445 2487 2488 2943 2944 8 2269 2270 2444 2445 2487 2488 2943 2944 8 2269 2270 2444 2445 2487 2488 2943 2944 4 2269 2270 2943 2944 4 2269 2270 2943 2944 4 2269 2270 2943 2944 4 2269 2270 2943 2944 4 2269 2270 2943 2944 4 2269 2270 2943 2944 8 2269 2270 2660 2661 2703 2704 2943 2944 8 2269 2270 2660 2661 2703 2704 2943 2944 8 2269 2270 2660 2661 2703 2704 2943 2944 8 2269 2270 2660 2661 2703 2704 2943 2944 8 2269 2270 2660 2661 2703 2704 2943 2944 8 2269 2270 2660 2661 2703 2704 2943 2944 3 2269 2660 2661 3 2269 2660 2661 3 2269 2660 2661 3 2269 2660 2661 3 2269 2660 2661 3 2269 2660 2661 3 2269 2444 2445 3 2269 2444 2445 3 2269 2444 2445 3 2269 2444 2445 3 2269 2444 2445 3 2269 2444 2445 11 2270 2271 2272 2487 2488 2530 2531 2882 2883 2884 2885 11 2270 2271 2272 2487 2488 2530 2531 2882 2883 2884 2885 11 2270 2271 2272 2487 2488 2530 2531 2882 2883 2884 2885 11 2270 2271 2272 2487 2488 2530 2531 2882 2883 2884 2885 11 2270 2271 2272 2487 2488 2530 2531 2882 2883 2884 2885 11 2270 2271 2272 2487 2488 2530 2531 2882 2883 2884 2885 4 2270 2271 2882 2884 4 2270 2271 2882 2884 4 2270 2271 2882 2884 4 2270 2271 2882 2884 4 2270 2271 2882 2884 4 2270 2271 2882 2884 8 2270 2271 2703 2704 2746 2747 2882 2884 8 2270 2271 2703 2704 2746 2747 2882 2884 8 2270 2271 2703 2704 2746 2747 2882 2884 8 2270 2271 2703 2704 2746 2747 2882 2884 8 2270 2271 2703 2704 2746 2747 2882 2884 8 2270 2271 2703 2704 2746 2747 2882 2884 3 2270 2703 2704 3 2270 2703 2704 3 2270 2703 2704 3 2270 2703 2704 3 2270 2703 2704 3 2270 2703 2704 3 2270 2487 2488 3 2270 2487 2488 3 2270 2487 2488 3 2270 2487 2488 3 2270 2487 2488 3 2270 2487 2488 8 2271 2272 2530 2531 2746 2747 2808 2809 8 2271 2272 2530 2531 2746 2747 2808 2809 8 2271 2272 2530 2531 2746 2747 2808 2809 8 2271 2272 2530 2531 2746 2747 2808 2809 8 2271 2272 2530 2531 2746 2747 2808 2809 8 2271 2272 2530 2531 2746 2747 2808 2809 3 2271 2746 2747 3 2271 2746 2747 3 2271 2746 2747 3 2271 2746 2747 3 2271 2746 2747 3 2271 2746 2747 4 2271 2272 2530 2531 4 2271 2272 2530 2531 4 2271 2272 2530 2531 4 2271 2272 2530 2531 4 2271 2272 2530 2531 4 2271 2272 2530 2531 3 2272 2808 2809 3 2272 2808 2809 3 2272 2808 2809 3 2272 2808 2809 3 2272 2808 2809 3 2272 2808 2809 3 2272 2883 2885 3 2272 2883 2885 3 2272 2883 2885 3 2272 2883 2885 3 2272 2883 2885 3 2272 2883 2885 4 2273 2275 3050 3051 4 2273 2275 3050 3051 4 2273 2275 3050 3051 4 2273 2275 3050 3051 4 2273 2275 3050 3051 4 2273 2275 3050 3051 8 2273 2275 2575 2576 2618 2619 3050 3051 8 2273 2275 2575 2576 2618 2619 3050 3051 8 2273 2275 2575 2576 2618 2619 3050 3051 8 2273 2275 2575 2576 2618 2619 3050 3051 8 2273 2275 2575 2576 2618 2619 3050 3051 8 2273 2275 2575 2576 2618 2619 3050 3051 3 2273 2575 2576 3 2273 2575 2576 3 2273 2575 2576 3 2273 2575 2576 3 2273 2575 2576 3 2273 2575 2576 5 2273 2575 2576 3108 3109 5 2273 2575 2576 3108 3109 5 2273 2575 2576 3108 3109 5 2273 2575 2576 3108 3109 5 2273 2575 2576 3108 3109 5 2273 2575 2576 3108 3109 3 2273 3108 3109 3 2273 3108 3109 3 2273 3108 3109 3 2273 3108 3109 3 2273 3108 3109 3 2273 3108 3109 4 2273 2274 2359 2360 4 2273 2274 2359 2360 4 2273 2274 2359 2360 4 2273 2274 2359 2360 4 2273 2274 2359 2360 4 2273 2274 2359 2360 4 2275 2276 2992 2993 4 2275 2276 2992 2993 4 2275 2276 2992 2993 4 2275 2276 2992 2993 4 2275 2276 2992 2993 4 2275 2276 2992 2993 8 2275 2276 2618 2619 2661 2662 2992 2993 8 2275 2276 2618 2619 2661 2662 2992 2993 8 2275 2276 2618 2619 2661 2662 2992 2993 8 2275 2276 2618 2619 2661 2662 2992 2993 8 2275 2276 2618 2619 2661 2662 2992 2993 8 2275 2276 2618 2619 2661 2662 2992 2993 3 2275 2618 2619 3 2275 2618 2619 3 2275 2618 2619 3 2275 2618 2619 3 2275 2618 2619 3 2275 2618 2619 3 2275 2402 2403 3 2275 2402 2403 3 2275 2402 2403 3 2275 2402 2403 3 2275 2402 2403 3 2275 2402 2403 4 2276 2277 2944 2945 4 2276 2277 2944 2945 4 2276 2277 2944 2945 4 2276 2277 2944 2945 4 2276 2277 2944 2945 4 2276 2277 2944 2945 8 2276 2277 2661 2662 2704 2705 2944 2945 8 2276 2277 2661 2662 2704 2705 2944 2945 8 2276 2277 2661 2662 2704 2705 2944 2945 8 2276 2277 2661 2662 2704 2705 2944 2945 8 2276 2277 2661 2662 2704 2705 2944 2945 8 2276 2277 2661 2662 2704 2705 2944 2945 3 2276 2661 2662 3 2276 2661 2662 3 2276 2661 2662 3 2276 2661 2662 3 2276 2661 2662 3 2276 2661 2662 3 2276 2445 2446 3 2276 2445 2446 3 2276 2445 2446 3 2276 2445 2446 3 2276 2445 2446 3 2276 2445 2446 12 2277 2278 2279 2280 2488 2489 2531 2532 2884 2885 2886 2887 12 2277 2278 2279 2280 2488 2489 2531 2532 2884 2885 2886 2887 12 2277 2278 2279 2280 2488 2489 2531 2532 2884 2885 2886 2887 12 2277 2278 2279 2280 2488 2489 2531 2532 2884 2885 2886 2887 12 2277 2278 2279 2280 2488 2489 2531 2532 2884 2885 2886 2887 12 2277 2278 2279 2280 2488 2489 2531 2532 2884 2885 2886 2887 4 2277 2279 2884 2886 4 2277 2279 2884 2886 4 2277 2279 2884 2886 4 2277 2279 2884 2886 4 2277 2279 2884 2886 4 2277 2279 2884 2886 8 2277 2279 2704 2705 2747 2748 2884 2886 8 2277 2279 2704 2705 2747 2748 2884 2886 8 2277 2279 2704 2705 2747 2748 2884 2886 8 2277 2279 2704 2705 2747 2748 2884 2886 8 2277 2279 2704 2705 2747 2748 2884 2886 8 2277 2279 2704 2705 2747 2748 2884 2886 3 2277 2704 2705 3 2277 2704 2705 3 2277 2704 2705 3 2277 2704 2705 3 2277 2704 2705 3 2277 2704 2705 4 2277 2278 2488 2489 4 2277 2278 2488 2489 4 2277 2278 2488 2489 4 2277 2278 2488 2489 4 2277 2278 2488 2489 4 2277 2278 2488 2489 4 2278 2280 2885 2887 4 2278 2280 2885 2887 4 2278 2280 2885 2887 4 2278 2280 2885 2887 4 2278 2280 2885 2887 4 2278 2280 2885 2887 8 2279 2280 2531 2532 2747 2748 2809 2810 8 2279 2280 2531 2532 2747 2748 2809 2810 8 2279 2280 2531 2532 2747 2748 2809 2810 8 2279 2280 2531 2532 2747 2748 2809 2810 8 2279 2280 2531 2532 2747 2748 2809 2810 8 2279 2280 2531 2532 2747 2748 2809 2810 3 2279 2747 2748 3 2279 2747 2748 3 2279 2747 2748 3 2279 2747 2748 3 2279 2747 2748 3 2279 2747 2748 4 2279 2280 2531 2532 4 2279 2280 2531 2532 4 2279 2280 2531 2532 4 2279 2280 2531 2532 4 2279 2280 2531 2532 4 2279 2280 2531 2532 3 2280 2809 2810 3 2280 2809 2810 3 2280 2809 2810 3 2280 2809 2810 3 2280 2809 2810 3 2280 2809 2810 4 2281 2282 3051 3053 4 2281 2282 3051 3053 4 2281 2282 3051 3053 4 2281 2282 3051 3053 4 2281 2282 3051 3053 4 2281 2282 3051 3053 8 2281 2282 2576 2577 2619 2620 3051 3053 8 2281 2282 2576 2577 2619 2620 3051 3053 8 2281 2282 2576 2577 2619 2620 3051 3053 8 2281 2282 2576 2577 2619 2620 3051 3053 8 2281 2282 2576 2577 2619 2620 3051 3053 8 2281 2282 2576 2577 2619 2620 3051 3053 3 2281 2576 2577 3 2281 2576 2577 3 2281 2576 2577 3 2281 2576 2577 3 2281 2576 2577 3 2281 2576 2577 3 2281 2360 2361 3 2281 2360 2361 3 2281 2360 2361 3 2281 2360 2361 3 2281 2360 2361 3 2281 2360 2361 4 2282 2283 2993 2995 4 2282 2283 2993 2995 4 2282 2283 2993 2995 4 2282 2283 2993 2995 4 2282 2283 2993 2995 4 2282 2283 2993 2995 8 2282 2283 2619 2620 2662 2663 2993 2995 8 2282 2283 2619 2620 2662 2663 2993 2995 8 2282 2283 2619 2620 2662 2663 2993 2995 8 2282 2283 2619 2620 2662 2663 2993 2995 8 2282 2283 2619 2620 2662 2663 2993 2995 8 2282 2283 2619 2620 2662 2663 2993 2995 3 2282 2619 2620 3 2282 2619 2620 3 2282 2619 2620 3 2282 2619 2620 3 2282 2619 2620 3 2282 2619 2620 3 2282 2403 2404 3 2282 2403 2404 3 2282 2403 2404 3 2282 2403 2404 3 2282 2403 2404 3 2282 2403 2404 4 2283 2284 2945 2947 4 2283 2284 2945 2947 4 2283 2284 2945 2947 4 2283 2284 2945 2947 4 2283 2284 2945 2947 4 2283 2284 2945 2947 8 2283 2284 2662 2663 2705 2706 2945 2947 8 2283 2284 2662 2663 2705 2706 2945 2947 8 2283 2284 2662 2663 2705 2706 2945 2947 8 2283 2284 2662 2663 2705 2706 2945 2947 8 2283 2284 2662 2663 2705 2706 2945 2947 8 2283 2284 2662 2663 2705 2706 2945 2947 3 2283 2662 2663 3 2283 2662 2663 3 2283 2662 2663 3 2283 2662 2663 3 2283 2662 2663 3 2283 2662 2663 3 2283 2446 2447 3 2283 2446 2447 3 2283 2446 2447 3 2283 2446 2447 3 2283 2446 2447 3 2283 2446 2447 4 2284 2285 2886 2888 4 2284 2285 2886 2888 4 2284 2285 2886 2888 4 2284 2285 2886 2888 4 2284 2285 2886 2888 4 2284 2285 2886 2888 8 2284 2285 2705 2706 2748 2749 2886 2888 8 2284 2285 2705 2706 2748 2749 2886 2888 8 2284 2285 2705 2706 2748 2749 2886 2888 8 2284 2285 2705 2706 2748 2749 2886 2888 8 2284 2285 2705 2706 2748 2749 2886 2888 8 2284 2285 2705 2706 2748 2749 2886 2888 3 2284 2705 2706 3 2284 2705 2706 3 2284 2705 2706 3 2284 2705 2706 3 2284 2705 2706 3 2284 2705 2706 3 2284 2489 2490 3 2284 2489 2490 3 2284 2489 2490 3 2284 2489 2490 3 2284 2489 2490 3 2284 2489 2490 8 2285 2286 2532 2533 2748 2749 2810 2811 8 2285 2286 2532 2533 2748 2749 2810 2811 8 2285 2286 2532 2533 2748 2749 2810 2811 8 2285 2286 2532 2533 2748 2749 2810 2811 8 2285 2286 2532 2533 2748 2749 2810 2811 8 2285 2286 2532 2533 2748 2749 2810 2811 3 2285 2748 2749 3 2285 2748 2749 3 2285 2748 2749 3 2285 2748 2749 3 2285 2748 2749 3 2285 2748 2749 4 2285 2286 2532 2533 4 2285 2286 2532 2533 4 2285 2286 2532 2533 4 2285 2286 2532 2533 4 2285 2286 2532 2533 4 2285 2286 2532 2533 3 2286 2810 2811 3 2286 2810 2811 3 2286 2810 2811 3 2286 2810 2811 3 2286 2810 2811 3 2286 2810 2811 3 2286 2887 2889 3 2286 2887 2889 3 2286 2887 2889 3 2286 2887 2889 3 2286 2887 2889 3 2286 2887 2889 4 2287 2288 3053 3055 4 2287 2288 3053 3055 4 2287 2288 3053 3055 4 2287 2288 3053 3055 4 2287 2288 3053 3055 4 2287 2288 3053 3055 8 2287 2288 2577 2578 2620 2621 3053 3055 8 2287 2288 2577 2578 2620 2621 3053 3055 8 2287 2288 2577 2578 2620 2621 3053 3055 8 2287 2288 2577 2578 2620 2621 3053 3055 8 2287 2288 2577 2578 2620 2621 3053 3055 8 2287 2288 2577 2578 2620 2621 3053 3055 3 2287 2577 2578 3 2287 2577 2578 3 2287 2577 2578 3 2287 2577 2578 3 2287 2577 2578 3 2287 2577 2578 3 2287 2361 2362 3 2287 2361 2362 3 2287 2361 2362 3 2287 2361 2362 3 2287 2361 2362 3 2287 2361 2362 4 2288 2289 2995 2997 4 2288 2289 2995 2997 4 2288 2289 2995 2997 4 2288 2289 2995 2997 4 2288 2289 2995 2997 4 2288 2289 2995 2997 8 2288 2289 2620 2621 2663 2664 2995 2997 8 2288 2289 2620 2621 2663 2664 2995 2997 8 2288 2289 2620 2621 2663 2664 2995 2997 8 2288 2289 2620 2621 2663 2664 2995 2997 8 2288 2289 2620 2621 2663 2664 2995 2997 8 2288 2289 2620 2621 2663 2664 2995 2997 3 2288 2620 2621 3 2288 2620 2621 3 2288 2620 2621 3 2288 2620 2621 3 2288 2620 2621 3 2288 2620 2621 3 2288 2404 2405 3 2288 2404 2405 3 2288 2404 2405 3 2288 2404 2405 3 2288 2404 2405 3 2288 2404 2405 4 2289 2290 2947 2949 4 2289 2290 2947 2949 4 2289 2290 2947 2949 4 2289 2290 2947 2949 4 2289 2290 2947 2949 4 2289 2290 2947 2949 8 2289 2290 2663 2664 2706 2707 2947 2949 8 2289 2290 2663 2664 2706 2707 2947 2949 8 2289 2290 2663 2664 2706 2707 2947 2949 8 2289 2290 2663 2664 2706 2707 2947 2949 8 2289 2290 2663 2664 2706 2707 2947 2949 8 2289 2290 2663 2664 2706 2707 2947 2949 3 2289 2663 2664 3 2289 2663 2664 3 2289 2663 2664 3 2289 2663 2664 3 2289 2663 2664 3 2289 2663 2664 3 2289 2447 2448 3 2289 2447 2448 3 2289 2447 2448 3 2289 2447 2448 3 2289 2447 2448 3 2289 2447 2448 4 2290 2291 2888 2890 4 2290 2291 2888 2890 4 2290 2291 2888 2890 4 2290 2291 2888 2890 4 2290 2291 2888 2890 4 2290 2291 2888 2890 8 2290 2291 2706 2707 2749 2750 2888 2890 8 2290 2291 2706 2707 2749 2750 2888 2890 8 2290 2291 2706 2707 2749 2750 2888 2890 8 2290 2291 2706 2707 2749 2750 2888 2890 8 2290 2291 2706 2707 2749 2750 2888 2890 8 2290 2291 2706 2707 2749 2750 2888 2890 3 2290 2706 2707 3 2290 2706 2707 3 2290 2706 2707 3 2290 2706 2707 3 2290 2706 2707 3 2290 2706 2707 3 2290 2490 2491 3 2290 2490 2491 3 2290 2490 2491 3 2290 2490 2491 3 2290 2490 2491 3 2290 2490 2491 8 2291 2292 2533 2534 2749 2750 2811 2812 8 2291 2292 2533 2534 2749 2750 2811 2812 8 2291 2292 2533 2534 2749 2750 2811 2812 8 2291 2292 2533 2534 2749 2750 2811 2812 8 2291 2292 2533 2534 2749 2750 2811 2812 8 2291 2292 2533 2534 2749 2750 2811 2812 3 2291 2749 2750 3 2291 2749 2750 3 2291 2749 2750 3 2291 2749 2750 3 2291 2749 2750 3 2291 2749 2750 4 2291 2292 2533 2534 4 2291 2292 2533 2534 4 2291 2292 2533 2534 4 2291 2292 2533 2534 4 2291 2292 2533 2534 4 2291 2292 2533 2534 3 2292 2811 2812 3 2292 2811 2812 3 2292 2811 2812 3 2292 2811 2812 3 2292 2811 2812 3 2292 2811 2812 3 2292 2889 2891 3 2292 2889 2891 3 2292 2889 2891 3 2292 2889 2891 3 2292 2889 2891 3 2292 2889 2891 4 2293 2294 3055 3056 4 2293 2294 3055 3056 4 2293 2294 3055 3056 4 2293 2294 3055 3056 4 2293 2294 3055 3056 4 2293 2294 3055 3056 8 2293 2294 2578 2579 2621 2622 3055 3056 8 2293 2294 2578 2579 2621 2622 3055 3056 8 2293 2294 2578 2579 2621 2622 3055 3056 8 2293 2294 2578 2579 2621 2622 3055 3056 8 2293 2294 2578 2579 2621 2622 3055 3056 8 2293 2294 2578 2579 2621 2622 3055 3056 3 2293 2578 2579 3 2293 2578 2579 3 2293 2578 2579 3 2293 2578 2579 3 2293 2578 2579 3 2293 2578 2579 3 2293 2362 2363 3 2293 2362 2363 3 2293 2362 2363 3 2293 2362 2363 3 2293 2362 2363 3 2293 2362 2363 4 2294 2295 2997 2998 4 2294 2295 2997 2998 4 2294 2295 2997 2998 4 2294 2295 2997 2998 4 2294 2295 2997 2998 4 2294 2295 2997 2998 8 2294 2295 2621 2622 2664 2665 2997 2998 8 2294 2295 2621 2622 2664 2665 2997 2998 8 2294 2295 2621 2622 2664 2665 2997 2998 8 2294 2295 2621 2622 2664 2665 2997 2998 8 2294 2295 2621 2622 2664 2665 2997 2998 8 2294 2295 2621 2622 2664 2665 2997 2998 3 2294 2621 2622 3 2294 2621 2622 3 2294 2621 2622 3 2294 2621 2622 3 2294 2621 2622 3 2294 2621 2622 3 2294 2405 2406 3 2294 2405 2406 3 2294 2405 2406 3 2294 2405 2406 3 2294 2405 2406 3 2294 2405 2406 4 2295 2296 2949 2950 4 2295 2296 2949 2950 4 2295 2296 2949 2950 4 2295 2296 2949 2950 4 2295 2296 2949 2950 4 2295 2296 2949 2950 8 2295 2296 2664 2665 2707 2708 2949 2950 8 2295 2296 2664 2665 2707 2708 2949 2950 8 2295 2296 2664 2665 2707 2708 2949 2950 8 2295 2296 2664 2665 2707 2708 2949 2950 8 2295 2296 2664 2665 2707 2708 2949 2950 8 2295 2296 2664 2665 2707 2708 2949 2950 3 2295 2664 2665 3 2295 2664 2665 3 2295 2664 2665 3 2295 2664 2665 3 2295 2664 2665 3 2295 2664 2665 3 2295 2448 2449 3 2295 2448 2449 3 2295 2448 2449 3 2295 2448 2449 3 2295 2448 2449 3 2295 2448 2449 4 2296 2297 2890 2892 4 2296 2297 2890 2892 4 2296 2297 2890 2892 4 2296 2297 2890 2892 4 2296 2297 2890 2892 4 2296 2297 2890 2892 8 2296 2297 2707 2708 2750 2751 2890 2892 8 2296 2297 2707 2708 2750 2751 2890 2892 8 2296 2297 2707 2708 2750 2751 2890 2892 8 2296 2297 2707 2708 2750 2751 2890 2892 8 2296 2297 2707 2708 2750 2751 2890 2892 8 2296 2297 2707 2708 2750 2751 2890 2892 3 2296 2707 2708 3 2296 2707 2708 3 2296 2707 2708 3 2296 2707 2708 3 2296 2707 2708 3 2296 2707 2708 3 2296 2491 2492 3 2296 2491 2492 3 2296 2491 2492 3 2296 2491 2492 3 2296 2491 2492 3 2296 2491 2492 8 2297 2298 2534 2535 2750 2751 2812 2813 8 2297 2298 2534 2535 2750 2751 2812 2813 8 2297 2298 2534 2535 2750 2751 2812 2813 8 2297 2298 2534 2535 2750 2751 2812 2813 8 2297 2298 2534 2535 2750 2751 2812 2813 8 2297 2298 2534 2535 2750 2751 2812 2813 3 2297 2750 2751 3 2297 2750 2751 3 2297 2750 2751 3 2297 2750 2751 3 2297 2750 2751 3 2297 2750 2751 4 2297 2298 2534 2535 4 2297 2298 2534 2535 4 2297 2298 2534 2535 4 2297 2298 2534 2535 4 2297 2298 2534 2535 4 2297 2298 2534 2535 3 2298 2812 2813 3 2298 2812 2813 3 2298 2812 2813 3 2298 2812 2813 3 2298 2812 2813 3 2298 2812 2813 3 2298 2891 2893 3 2298 2891 2893 3 2298 2891 2893 3 2298 2891 2893 3 2298 2891 2893 3 2298 2891 2893 4 2299 2300 3056 3058 4 2299 2300 3056 3058 4 2299 2300 3056 3058 4 2299 2300 3056 3058 4 2299 2300 3056 3058 4 2299 2300 3056 3058 8 2299 2300 2579 2580 2622 2623 3056 3058 8 2299 2300 2579 2580 2622 2623 3056 3058 8 2299 2300 2579 2580 2622 2623 3056 3058 8 2299 2300 2579 2580 2622 2623 3056 3058 8 2299 2300 2579 2580 2622 2623 3056 3058 8 2299 2300 2579 2580 2622 2623 3056 3058 3 2299 2579 2580 3 2299 2579 2580 3 2299 2579 2580 3 2299 2579 2580 3 2299 2579 2580 3 2299 2579 2580 5 2299 2579 2580 3114 3116 5 2299 2579 2580 3114 3116 5 2299 2579 2580 3114 3116 5 2299 2579 2580 3114 3116 5 2299 2579 2580 3114 3116 5 2299 2579 2580 3114 3116 3 2299 3114 3116 3 2299 3114 3116 3 2299 3114 3116 3 2299 3114 3116 3 2299 3114 3116 3 2299 3114 3116 3 2299 2363 2364 3 2299 2363 2364 3 2299 2363 2364 3 2299 2363 2364 3 2299 2363 2364 3 2299 2363 2364 4 2300 2301 2998 3000 4 2300 2301 2998 3000 4 2300 2301 2998 3000 4 2300 2301 2998 3000 4 2300 2301 2998 3000 4 2300 2301 2998 3000 8 2300 2301 2622 2623 2665 2666 2998 3000 8 2300 2301 2622 2623 2665 2666 2998 3000 8 2300 2301 2622 2623 2665 2666 2998 3000 8 2300 2301 2622 2623 2665 2666 2998 3000 8 2300 2301 2622 2623 2665 2666 2998 3000 8 2300 2301 2622 2623 2665 2666 2998 3000 3 2300 2622 2623 3 2300 2622 2623 3 2300 2622 2623 3 2300 2622 2623 3 2300 2622 2623 3 2300 2622 2623 3 2300 2406 2407 3 2300 2406 2407 3 2300 2406 2407 3 2300 2406 2407 3 2300 2406 2407 3 2300 2406 2407 4 2301 2302 2950 2952 4 2301 2302 2950 2952 4 2301 2302 2950 2952 4 2301 2302 2950 2952 4 2301 2302 2950 2952 4 2301 2302 2950 2952 8 2301 2302 2665 2666 2708 2709 2950 2952 8 2301 2302 2665 2666 2708 2709 2950 2952 8 2301 2302 2665 2666 2708 2709 2950 2952 8 2301 2302 2665 2666 2708 2709 2950 2952 8 2301 2302 2665 2666 2708 2709 2950 2952 8 2301 2302 2665 2666 2708 2709 2950 2952 3 2301 2665 2666 3 2301 2665 2666 3 2301 2665 2666 3 2301 2665 2666 3 2301 2665 2666 3 2301 2665 2666 3 2301 2449 2450 3 2301 2449 2450 3 2301 2449 2450 3 2301 2449 2450 3 2301 2449 2450 3 2301 2449 2450 4 2302 2303 2892 2894 4 2302 2303 2892 2894 4 2302 2303 2892 2894 4 2302 2303 2892 2894 4 2302 2303 2892 2894 4 2302 2303 2892 2894 8 2302 2303 2708 2709 2751 2752 2892 2894 8 2302 2303 2708 2709 2751 2752 2892 2894 8 2302 2303 2708 2709 2751 2752 2892 2894 8 2302 2303 2708 2709 2751 2752 2892 2894 8 2302 2303 2708 2709 2751 2752 2892 2894 8 2302 2303 2708 2709 2751 2752 2892 2894 3 2302 2708 2709 3 2302 2708 2709 3 2302 2708 2709 3 2302 2708 2709 3 2302 2708 2709 3 2302 2708 2709 3 2302 2492 2493 3 2302 2492 2493 3 2302 2492 2493 3 2302 2492 2493 3 2302 2492 2493 3 2302 2492 2493 8 2303 2304 2535 2536 2751 2752 2813 2814 8 2303 2304 2535 2536 2751 2752 2813 2814 8 2303 2304 2535 2536 2751 2752 2813 2814 8 2303 2304 2535 2536 2751 2752 2813 2814 8 2303 2304 2535 2536 2751 2752 2813 2814 8 2303 2304 2535 2536 2751 2752 2813 2814 3 2303 2751 2752 3 2303 2751 2752 3 2303 2751 2752 3 2303 2751 2752 3 2303 2751 2752 3 2303 2751 2752 4 2303 2304 2535 2536 4 2303 2304 2535 2536 4 2303 2304 2535 2536 4 2303 2304 2535 2536 4 2303 2304 2535 2536 4 2303 2304 2535 2536 3 2304 2813 2814 3 2304 2813 2814 3 2304 2813 2814 3 2304 2813 2814 3 2304 2813 2814 3 2304 2813 2814 3 2304 2893 2895 3 2304 2893 2895 3 2304 2893 2895 3 2304 2893 2895 3 2304 2893 2895 3 2304 2893 2895 10 2305 2306 2364 2365 2407 2408 3057 3058 3059 3060 10 2305 2306 2364 2365 2407 2408 3057 3058 3059 3060 10 2305 2306 2364 2365 2407 2408 3057 3058 3059 3060 10 2305 2306 2364 2365 2407 2408 3057 3058 3059 3060 10 2305 2306 2364 2365 2407 2408 3057 3058 3059 3060 10 2305 2306 2364 2365 2407 2408 3057 3058 3059 3060 4 2305 2306 3058 3059 4 2305 2306 3058 3059 4 2305 2306 3058 3059 4 2305 2306 3058 3059 4 2305 2306 3058 3059 4 2305 2306 3058 3059 8 2305 2306 2580 2581 2623 2624 3058 3059 8 2305 2306 2580 2581 2623 2624 3058 3059 8 2305 2306 2580 2581 2623 2624 3058 3059 8 2305 2306 2580 2581 2623 2624 3058 3059 8 2305 2306 2580 2581 2623 2624 3058 3059 8 2305 2306 2580 2581 2623 2624 3058 3059 3 2305 2580 2581 3 2305 2580 2581 3 2305 2580 2581 3 2305 2580 2581 3 2305 2580 2581 3 2305 2580 2581 5 2305 2580 2581 3116 3117 5 2305 2580 2581 3116 3117 5 2305 2580 2581 3116 3117 5 2305 2580 2581 3116 3117 5 2305 2580 2581 3116 3117 5 2305 2580 2581 3116 3117 3 2305 3116 3117 3 2305 3116 3117 3 2305 3116 3117 3 2305 3116 3117 3 2305 3116 3117 3 2305 3116 3117 3 2305 2364 2365 3 2305 2364 2365 3 2305 2364 2365 3 2305 2364 2365 3 2305 2364 2365 3 2305 2364 2365 10 2306 2307 2407 2408 2450 2451 2999 3000 3001 3002 10 2306 2307 2407 2408 2450 2451 2999 3000 3001 3002 10 2306 2307 2407 2408 2450 2451 2999 3000 3001 3002 10 2306 2307 2407 2408 2450 2451 2999 3000 3001 3002 10 2306 2307 2407 2408 2450 2451 2999 3000 3001 3002 10 2306 2307 2407 2408 2450 2451 2999 3000 3001 3002 4 2306 2307 3000 3001 4 2306 2307 3000 3001 4 2306 2307 3000 3001 4 2306 2307 3000 3001 4 2306 2307 3000 3001 4 2306 2307 3000 3001 8 2306 2307 2623 2624 2666 2667 3000 3001 8 2306 2307 2623 2624 2666 2667 3000 3001 8 2306 2307 2623 2624 2666 2667 3000 3001 8 2306 2307 2623 2624 2666 2667 3000 3001 8 2306 2307 2623 2624 2666 2667 3000 3001 8 2306 2307 2623 2624 2666 2667 3000 3001 3 2306 2623 2624 3 2306 2623 2624 3 2306 2623 2624 3 2306 2623 2624 3 2306 2623 2624 3 2306 2623 2624 3 2306 2407 2408 3 2306 2407 2408 3 2306 2407 2408 3 2306 2407 2408 3 2306 2407 2408 3 2306 2407 2408 10 2307 2308 2450 2451 2493 2494 2951 2952 2953 2954 10 2307 2308 2450 2451 2493 2494 2951 2952 2953 2954 10 2307 2308 2450 2451 2493 2494 2951 2952 2953 2954 10 2307 2308 2450 2451 2493 2494 2951 2952 2953 2954 10 2307 2308 2450 2451 2493 2494 2951 2952 2953 2954 10 2307 2308 2450 2451 2493 2494 2951 2952 2953 2954 4 2307 2308 2952 2953 4 2307 2308 2952 2953 4 2307 2308 2952 2953 4 2307 2308 2952 2953 4 2307 2308 2952 2953 4 2307 2308 2952 2953 8 2307 2308 2666 2667 2709 2710 2952 2953 8 2307 2308 2666 2667 2709 2710 2952 2953 8 2307 2308 2666 2667 2709 2710 2952 2953 8 2307 2308 2666 2667 2709 2710 2952 2953 8 2307 2308 2666 2667 2709 2710 2952 2953 8 2307 2308 2666 2667 2709 2710 2952 2953 3 2307 2666 2667 3 2307 2666 2667 3 2307 2666 2667 3 2307 2666 2667 3 2307 2666 2667 3 2307 2666 2667 3 2307 2450 2451 3 2307 2450 2451 3 2307 2450 2451 3 2307 2450 2451 3 2307 2450 2451 3 2307 2450 2451 4 2308 2309 2894 2896 4 2308 2309 2894 2896 4 2308 2309 2894 2896 4 2308 2309 2894 2896 4 2308 2309 2894 2896 4 2308 2309 2894 2896 8 2308 2309 2709 2710 2752 2753 2894 2896 8 2308 2309 2709 2710 2752 2753 2894 2896 8 2308 2309 2709 2710 2752 2753 2894 2896 8 2308 2309 2709 2710 2752 2753 2894 2896 8 2308 2309 2709 2710 2752 2753 2894 2896 8 2308 2309 2709 2710 2752 2753 2894 2896 3 2308 2709 2710 3 2308 2709 2710 3 2308 2709 2710 3 2308 2709 2710 3 2308 2709 2710 3 2308 2709 2710 3 2308 2493 2494 3 2308 2493 2494 3 2308 2493 2494 3 2308 2493 2494 3 2308 2493 2494 3 2308 2493 2494 8 2309 2310 2536 2537 2752 2753 2814 2815 8 2309 2310 2536 2537 2752 2753 2814 2815 8 2309 2310 2536 2537 2752 2753 2814 2815 8 2309 2310 2536 2537 2752 2753 2814 2815 8 2309 2310 2536 2537 2752 2753 2814 2815 8 2309 2310 2536 2537 2752 2753 2814 2815 3 2309 2752 2753 3 2309 2752 2753 3 2309 2752 2753 3 2309 2752 2753 3 2309 2752 2753 3 2309 2752 2753 4 2309 2310 2536 2537 4 2309 2310 2536 2537 4 2309 2310 2536 2537 4 2309 2310 2536 2537 4 2309 2310 2536 2537 4 2309 2310 2536 2537 3 2310 2814 2815 3 2310 2814 2815 3 2310 2814 2815 3 2310 2814 2815 3 2310 2814 2815 3 2310 2814 2815 3 2310 2895 2897 3 2310 2895 2897 3 2310 2895 2897 3 2310 2895 2897 3 2310 2895 2897 3 2310 2895 2897 10 2311 2312 2365 2366 2408 2409 3054 3057 3059 3061 10 2311 2312 2365 2366 2408 2409 3054 3057 3059 3061 10 2311 2312 2365 2366 2408 2409 3054 3057 3059 3061 10 2311 2312 2365 2366 2408 2409 3054 3057 3059 3061 10 2311 2312 2365 2366 2408 2409 3054 3057 3059 3061 10 2311 2312 2365 2366 2408 2409 3054 3057 3059 3061 4 2311 2312 3059 3061 4 2311 2312 3059 3061 4 2311 2312 3059 3061 4 2311 2312 3059 3061 4 2311 2312 3059 3061 4 2311 2312 3059 3061 8 2311 2312 2581 2582 2624 2625 3059 3061 8 2311 2312 2581 2582 2624 2625 3059 3061 8 2311 2312 2581 2582 2624 2625 3059 3061 8 2311 2312 2581 2582 2624 2625 3059 3061 8 2311 2312 2581 2582 2624 2625 3059 3061 8 2311 2312 2581 2582 2624 2625 3059 3061 3 2311 2581 2582 3 2311 2581 2582 3 2311 2581 2582 3 2311 2581 2582 3 2311 2581 2582 3 2311 2581 2582 5 2311 2581 2582 3117 3119 5 2311 2581 2582 3117 3119 5 2311 2581 2582 3117 3119 5 2311 2581 2582 3117 3119 5 2311 2581 2582 3117 3119 5 2311 2581 2582 3117 3119 3 2311 3117 3119 3 2311 3117 3119 3 2311 3117 3119 3 2311 3117 3119 3 2311 3117 3119 3 2311 3117 3119 3 2311 2365 2366 3 2311 2365 2366 3 2311 2365 2366 3 2311 2365 2366 3 2311 2365 2366 3 2311 2365 2366 10 2312 2313 2408 2409 2451 2452 2996 2999 3001 3003 10 2312 2313 2408 2409 2451 2452 2996 2999 3001 3003 10 2312 2313 2408 2409 2451 2452 2996 2999 3001 3003 10 2312 2313 2408 2409 2451 2452 2996 2999 3001 3003 10 2312 2313 2408 2409 2451 2452 2996 2999 3001 3003 10 2312 2313 2408 2409 2451 2452 2996 2999 3001 3003 4 2312 2313 3001 3003 4 2312 2313 3001 3003 4 2312 2313 3001 3003 4 2312 2313 3001 3003 4 2312 2313 3001 3003 4 2312 2313 3001 3003 8 2312 2313 2624 2625 2667 2668 3001 3003 8 2312 2313 2624 2625 2667 2668 3001 3003 8 2312 2313 2624 2625 2667 2668 3001 3003 8 2312 2313 2624 2625 2667 2668 3001 3003 8 2312 2313 2624 2625 2667 2668 3001 3003 8 2312 2313 2624 2625 2667 2668 3001 3003 3 2312 2624 2625 3 2312 2624 2625 3 2312 2624 2625 3 2312 2624 2625 3 2312 2624 2625 3 2312 2624 2625 3 2312 2408 2409 3 2312 2408 2409 3 2312 2408 2409 3 2312 2408 2409 3 2312 2408 2409 3 2312 2408 2409 10 2313 2314 2451 2452 2494 2495 2948 2951 2953 2955 10 2313 2314 2451 2452 2494 2495 2948 2951 2953 2955 10 2313 2314 2451 2452 2494 2495 2948 2951 2953 2955 10 2313 2314 2451 2452 2494 2495 2948 2951 2953 2955 10 2313 2314 2451 2452 2494 2495 2948 2951 2953 2955 10 2313 2314 2451 2452 2494 2495 2948 2951 2953 2955 4 2313 2314 2953 2955 4 2313 2314 2953 2955 4 2313 2314 2953 2955 4 2313 2314 2953 2955 4 2313 2314 2953 2955 4 2313 2314 2953 2955 8 2313 2314 2667 2668 2710 2711 2953 2955 8 2313 2314 2667 2668 2710 2711 2953 2955 8 2313 2314 2667 2668 2710 2711 2953 2955 8 2313 2314 2667 2668 2710 2711 2953 2955 8 2313 2314 2667 2668 2710 2711 2953 2955 8 2313 2314 2667 2668 2710 2711 2953 2955 3 2313 2667 2668 3 2313 2667 2668 3 2313 2667 2668 3 2313 2667 2668 3 2313 2667 2668 3 2313 2667 2668 3 2313 2451 2452 3 2313 2451 2452 3 2313 2451 2452 3 2313 2451 2452 3 2313 2451 2452 3 2313 2451 2452 4 2314 2315 2896 2898 4 2314 2315 2896 2898 4 2314 2315 2896 2898 4 2314 2315 2896 2898 4 2314 2315 2896 2898 4 2314 2315 2896 2898 8 2314 2315 2710 2711 2753 2754 2896 2898 8 2314 2315 2710 2711 2753 2754 2896 2898 8 2314 2315 2710 2711 2753 2754 2896 2898 8 2314 2315 2710 2711 2753 2754 2896 2898 8 2314 2315 2710 2711 2753 2754 2896 2898 8 2314 2315 2710 2711 2753 2754 2896 2898 3 2314 2710 2711 3 2314 2710 2711 3 2314 2710 2711 3 2314 2710 2711 3 2314 2710 2711 3 2314 2710 2711 3 2314 2494 2495 3 2314 2494 2495 3 2314 2494 2495 3 2314 2494 2495 3 2314 2494 2495 3 2314 2494 2495 8 2315 2316 2537 2538 2753 2754 2815 2816 8 2315 2316 2537 2538 2753 2754 2815 2816 8 2315 2316 2537 2538 2753 2754 2815 2816 8 2315 2316 2537 2538 2753 2754 2815 2816 8 2315 2316 2537 2538 2753 2754 2815 2816 8 2315 2316 2537 2538 2753 2754 2815 2816 3 2315 2753 2754 3 2315 2753 2754 3 2315 2753 2754 3 2315 2753 2754 3 2315 2753 2754 3 2315 2753 2754 4 2315 2316 2537 2538 4 2315 2316 2537 2538 4 2315 2316 2537 2538 4 2315 2316 2537 2538 4 2315 2316 2537 2538 4 2315 2316 2537 2538 3 2316 2815 2816 3 2316 2815 2816 3 2316 2815 2816 3 2316 2815 2816 3 2316 2815 2816 3 2316 2815 2816 3 2316 2897 2899 3 2316 2897 2899 3 2316 2897 2899 3 2316 2897 2899 3 2316 2897 2899 3 2316 2897 2899 11 2317 2318 2319 2366 2367 2409 2410 3052 3054 3061 3062 11 2317 2318 2319 2366 2367 2409 2410 3052 3054 3061 3062 11 2317 2318 2319 2366 2367 2409 2410 3052 3054 3061 3062 11 2317 2318 2319 2366 2367 2409 2410 3052 3054 3061 3062 11 2317 2318 2319 2366 2367 2409 2410 3052 3054 3061 3062 11 2317 2318 2319 2366 2367 2409 2410 3052 3054 3061 3062 4 2317 2319 3061 3062 4 2317 2319 3061 3062 4 2317 2319 3061 3062 4 2317 2319 3061 3062 4 2317 2319 3061 3062 4 2317 2319 3061 3062 8 2317 2319 2582 2583 2625 2626 3061 3062 8 2317 2319 2582 2583 2625 2626 3061 3062 8 2317 2319 2582 2583 2625 2626 3061 3062 8 2317 2319 2582 2583 2625 2626 3061 3062 8 2317 2319 2582 2583 2625 2626 3061 3062 8 2317 2319 2582 2583 2625 2626 3061 3062 3 2317 2582 2583 3 2317 2582 2583 3 2317 2582 2583 3 2317 2582 2583 3 2317 2582 2583 3 2317 2582 2583 5 2317 2582 2583 3119 3120 5 2317 2582 2583 3119 3120 5 2317 2582 2583 3119 3120 5 2317 2582 2583 3119 3120 5 2317 2582 2583 3119 3120 5 2317 2582 2583 3119 3120 3 2317 3119 3120 3 2317 3119 3120 3 2317 3119 3120 3 2317 3119 3120 3 2317 3119 3120 3 2317 3119 3120 4 2317 2318 2366 2367 4 2317 2318 2366 2367 4 2317 2318 2366 2367 4 2317 2318 2366 2367 4 2317 2318 2366 2367 4 2317 2318 2366 2367 2 2318 3052 2 2318 3052 2 2318 3052 2 2318 3052 2 2318 3052 2 2318 3052 10 2319 2320 2409 2410 2452 2453 2994 2996 3003 3004 10 2319 2320 2409 2410 2452 2453 2994 2996 3003 3004 10 2319 2320 2409 2410 2452 2453 2994 2996 3003 3004 10 2319 2320 2409 2410 2452 2453 2994 2996 3003 3004 10 2319 2320 2409 2410 2452 2453 2994 2996 3003 3004 10 2319 2320 2409 2410 2452 2453 2994 2996 3003 3004 4 2319 2320 3003 3004 4 2319 2320 3003 3004 4 2319 2320 3003 3004 4 2319 2320 3003 3004 4 2319 2320 3003 3004 4 2319 2320 3003 3004 8 2319 2320 2625 2626 2668 2669 3003 3004 8 2319 2320 2625 2626 2668 2669 3003 3004 8 2319 2320 2625 2626 2668 2669 3003 3004 8 2319 2320 2625 2626 2668 2669 3003 3004 8 2319 2320 2625 2626 2668 2669 3003 3004 8 2319 2320 2625 2626 2668 2669 3003 3004 3 2319 2625 2626 3 2319 2625 2626 3 2319 2625 2626 3 2319 2625 2626 3 2319 2625 2626 3 2319 2625 2626 3 2319 2409 2410 3 2319 2409 2410 3 2319 2409 2410 3 2319 2409 2410 3 2319 2409 2410 3 2319 2409 2410 11 2320 2321 2322 2452 2453 2495 2496 2759 2946 2948 2955 11 2320 2321 2322 2452 2453 2495 2496 2759 2946 2948 2955 11 2320 2321 2322 2452 2453 2495 2496 2759 2946 2948 2955 11 2320 2321 2322 2452 2453 2495 2496 2759 2946 2948 2955 11 2320 2321 2322 2452 2453 2495 2496 2759 2946 2948 2955 11 2320 2321 2322 2452 2453 2495 2496 2759 2946 2948 2955 4 2320 2321 2759 2955 4 2320 2321 2759 2955 4 2320 2321 2759 2955 4 2320 2321 2759 2955 4 2320 2321 2759 2955 4 2320 2321 2759 2955 8 2320 2321 2668 2669 2711 2712 2759 2955 8 2320 2321 2668 2669 2711 2712 2759 2955 8 2320 2321 2668 2669 2711 2712 2759 2955 8 2320 2321 2668 2669 2711 2712 2759 2955 8 2320 2321 2668 2669 2711 2712 2759 2955 8 2320 2321 2668 2669 2711 2712 2759 2955 3 2320 2668 2669 3 2320 2668 2669 3 2320 2668 2669 3 2320 2668 2669 3 2320 2668 2669 3 2320 2668 2669 3 2320 2452 2453 3 2320 2452 2453 3 2320 2452 2453 3 2320 2452 2453 3 2320 2452 2453 3 2320 2452 2453 12 2321 2322 2323 2324 2495 2496 2538 2539 2760 2761 2898 2899 12 2321 2322 2323 2324 2495 2496 2538 2539 2760 2761 2898 2899 12 2321 2322 2323 2324 2495 2496 2538 2539 2760 2761 2898 2899 12 2321 2322 2323 2324 2495 2496 2538 2539 2760 2761 2898 2899 12 2321 2322 2323 2324 2495 2496 2538 2539 2760 2761 2898 2899 12 2321 2322 2323 2324 2495 2496 2538 2539 2760 2761 2898 2899 4 2321 2323 2760 2898 4 2321 2323 2760 2898 4 2321 2323 2760 2898 4 2321 2323 2760 2898 4 2321 2323 2760 2898 4 2321 2323 2760 2898 8 2321 2323 2711 2712 2754 2755 2760 2898 8 2321 2323 2711 2712 2754 2755 2760 2898 8 2321 2323 2711 2712 2754 2755 2760 2898 8 2321 2323 2711 2712 2754 2755 2760 2898 8 2321 2323 2711 2712 2754 2755 2760 2898 8 2321 2323 2711 2712 2754 2755 2760 2898 3 2321 2711 2712 3 2321 2711 2712 3 2321 2711 2712 3 2321 2711 2712 3 2321 2711 2712 3 2321 2711 2712 4 2321 2322 2495 2496 4 2321 2322 2495 2496 4 2321 2322 2495 2496 4 2321 2322 2495 2496 4 2321 2322 2495 2496 4 2321 2322 2495 2496 4 2322 2324 2761 2899 4 2322 2324 2761 2899 4 2322 2324 2761 2899 4 2322 2324 2761 2899 4 2322 2324 2761 2899 4 2322 2324 2761 2899 2 2322 2946 2 2322 2946 2 2322 2946 2 2322 2946 2 2322 2946 2 2322 2946 8 2323 2324 2538 2539 2754 2755 2816 2817 8 2323 2324 2538 2539 2754 2755 2816 2817 8 2323 2324 2538 2539 2754 2755 2816 2817 8 2323 2324 2538 2539 2754 2755 2816 2817 8 2323 2324 2538 2539 2754 2755 2816 2817 8 2323 2324 2538 2539 2754 2755 2816 2817 3 2323 2754 2755 3 2323 2754 2755 3 2323 2754 2755 3 2323 2754 2755 3 2323 2754 2755 3 2323 2754 2755 4 2323 2324 2538 2539 4 2323 2324 2538 2539 4 2323 2324 2538 2539 4 2323 2324 2538 2539 4 2323 2324 2538 2539 4 2323 2324 2538 2539 3 2324 2816 2817 3 2324 2816 2817 3 2324 2816 2817 3 2324 2816 2817 3 2324 2816 2817 3 2324 2816 2817 3 2325 2368 3005 3 2325 2368 3005 3 2325 2368 3005 3 2325 2368 3005 3 2325 2368 3005 3 2325 2368 3005 11 2325 2368 3005 3310 3311 3312 3313 3325 3329 3407 3411 11 2325 2368 3005 3310 3311 3312 3313 3325 3329 3407 3411 11 2325 2368 3005 3310 3311 3312 3313 3325 3329 3407 3411 11 2325 2368 3005 3310 3311 3312 3313 3325 3329 3407 3411 11 2325 2368 3005 3310 3311 3312 3313 3325 3329 3407 3411 11 2325 2368 3005 3310 3311 3312 3313 3325 3329 3407 3411 4 2325 3310 3311 3325 4 2325 3310 3311 3325 4 2325 3310 3311 3325 4 2325 3310 3311 3325 4 2325 3310 3311 3325 4 2325 3310 3311 3325 3 2326 2369 3006 3 2326 2369 3006 3 2326 2369 3006 3 2326 2369 3006 3 2326 2369 3006 3 2326 2369 3006 4 2327 2370 3007 3008 4 2327 2370 3007 3008 4 2327 2370 3007 3008 4 2327 2370 3007 3008 4 2327 2370 3007 3008 4 2327 2370 3007 3008 3 2328 2371 3009 3 2328 2371 3009 3 2328 2371 3009 3 2328 2371 3009 3 2328 2371 3009 3 2328 2371 3009 3 2329 2372 3010 3 2329 2372 3010 3 2329 2372 3010 3 2329 2372 3010 3 2329 2372 3010 3 2329 2372 3010 4 2330 2373 3011 3012 4 2330 2373 3011 3012 4 2330 2373 3011 3012 4 2330 2373 3011 3012 4 2330 2373 3011 3012 4 2330 2373 3011 3012 3 2331 2374 3013 3 2331 2374 3013 3 2331 2374 3013 3 2331 2374 3013 3 2331 2374 3013 3 2331 2374 3013 3 2332 2375 3014 3 2332 2375 3014 3 2332 2375 3014 3 2332 2375 3014 3 2332 2375 3014 3 2332 2375 3014 4 2333 2376 3015 3016 4 2333 2376 3015 3016 4 2333 2376 3015 3016 4 2333 2376 3015 3016 4 2333 2376 3015 3016 4 2333 2376 3015 3016 3 2334 2377 3017 3 2334 2377 3017 3 2334 2377 3017 3 2334 2377 3017 3 2334 2377 3017 3 2334 2377 3017 3 2335 2378 3018 3 2335 2378 3018 3 2335 2378 3018 3 2335 2378 3018 3 2335 2378 3018 3 2335 2378 3018 4 2336 2379 3019 3020 4 2336 2379 3019 3020 4 2336 2379 3019 3020 4 2336 2379 3019 3020 4 2336 2379 3019 3020 4 2336 2379 3019 3020 3 2337 2380 3021 3 2337 2380 3021 3 2337 2380 3021 3 2337 2380 3021 3 2337 2380 3021 3 2337 2380 3021 3 2338 2381 3022 3 2338 2381 3022 3 2338 2381 3022 3 2338 2381 3022 3 2338 2381 3022 3 2338 2381 3022 4 2339 2382 3023 3024 4 2339 2382 3023 3024 4 2339 2382 3023 3024 4 2339 2382 3023 3024 4 2339 2382 3023 3024 4 2339 2382 3023 3024 3 2340 2383 3025 3 2340 2383 3025 3 2340 2383 3025 3 2340 2383 3025 3 2340 2383 3025 3 2340 2383 3025 3 2341 2384 3026 3 2341 2384 3026 3 2341 2384 3026 3 2341 2384 3026 3 2341 2384 3026 3 2341 2384 3026 4 2342 2385 3027 3028 4 2342 2385 3027 3028 4 2342 2385 3027 3028 4 2342 2385 3027 3028 4 2342 2385 3027 3028 4 2342 2385 3027 3028 3 2343 2386 3029 3 2343 2386 3029 3 2343 2386 3029 3 2343 2386 3029 3 2343 2386 3029 3 2343 2386 3029 3 2344 2387 3030 3 2344 2387 3030 3 2344 2387 3030 3 2344 2387 3030 3 2344 2387 3030 3 2344 2387 3030 4 2345 2388 3031 3032 4 2345 2388 3031 3032 4 2345 2388 3031 3032 4 2345 2388 3031 3032 4 2345 2388 3031 3032 4 2345 2388 3031 3032 3 2346 2389 3033 3 2346 2389 3033 3 2346 2389 3033 3 2346 2389 3033 3 2346 2389 3033 3 2346 2389 3033 3 2347 2390 3034 3 2347 2390 3034 3 2347 2390 3034 3 2347 2390 3034 3 2347 2390 3034 3 2347 2390 3034 4 2348 2391 3035 3036 4 2348 2391 3035 3036 4 2348 2391 3035 3036 4 2348 2391 3035 3036 4 2348 2391 3035 3036 4 2348 2391 3035 3036 3 2349 2392 3037 3 2349 2392 3037 3 2349 2392 3037 3 2349 2392 3037 3 2349 2392 3037 3 2349 2392 3037 3 2350 2393 3038 3 2350 2393 3038 3 2350 2393 3038 3 2350 2393 3038 3 2350 2393 3038 3 2350 2393 3038 4 2351 2394 3039 3040 4 2351 2394 3039 3040 4 2351 2394 3039 3040 4 2351 2394 3039 3040 4 2351 2394 3039 3040 4 2351 2394 3039 3040 3 2352 2395 3041 3 2352 2395 3041 3 2352 2395 3041 3 2352 2395 3041 3 2352 2395 3041 3 2352 2395 3041 3 2353 2396 3042 3 2353 2396 3042 3 2353 2396 3042 3 2353 2396 3042 3 2353 2396 3042 3 2353 2396 3042 4 2354 2397 3043 3044 4 2354 2397 3043 3044 4 2354 2397 3043 3044 4 2354 2397 3043 3044 4 2354 2397 3043 3044 4 2354 2397 3043 3044 3 2355 2398 3045 3 2355 2398 3045 3 2355 2398 3045 3 2355 2398 3045 3 2355 2398 3045 3 2355 2398 3045 3 2356 2399 3046 3 2356 2399 3046 3 2356 2399 3046 3 2356 2399 3046 3 2356 2399 3046 3 2356 2399 3046 4 2357 2400 3047 3048 4 2357 2400 3047 3048 4 2357 2400 3047 3048 4 2357 2400 3047 3048 4 2357 2400 3047 3048 4 2357 2400 3047 3048 3 2358 2401 3049 3 2358 2401 3049 3 2358 2401 3049 3 2358 2401 3049 3 2358 2401 3049 3 2358 2401 3049 3 2359 2402 3050 3 2359 2402 3050 3 2359 2402 3050 3 2359 2402 3050 3 2359 2402 3050 3 2359 2402 3050 4 2364 2407 3058 3060 4 2364 2407 3058 3060 4 2364 2407 3058 3060 4 2364 2407 3058 3060 4 2364 2407 3058 3060 4 2364 2407 3058 3060 4 2365 2408 3057 3059 4 2365 2408 3057 3059 4 2365 2408 3057 3059 4 2365 2408 3057 3059 4 2365 2408 3057 3059 4 2365 2408 3057 3059 4 2366 2409 3054 3061 4 2366 2409 3054 3061 4 2366 2409 3054 3061 4 2366 2409 3054 3061 4 2366 2409 3054 3061 4 2366 2409 3054 3061 8 2367 2410 3062 3130 3131 3164 3170 3234 8 2367 2410 3062 3130 3131 3164 3170 3234 8 2367 2410 3062 3130 3131 3164 3170 3234 8 2367 2410 3062 3130 3131 3164 3170 3234 8 2367 2410 3062 3130 3131 3164 3170 3234 8 2367 2410 3062 3130 3131 3164 3170 3234 3 2367 2410 3062 3 2367 2410 3062 3 2367 2410 3062 3 2367 2410 3062 3 2367 2410 3062 3 2367 2410 3062 3 2367 3130 3164 3 2367 3130 3164 3 2367 3130 3164 3 2367 3130 3164 3 2367 3130 3164 3 2367 3130 3164 3 2368 2411 2956 3 2368 2411 2956 3 2368 2411 2956 3 2368 2411 2956 3 2368 2411 2956 3 2368 2411 2956 11 2368 2411 2956 3312 3313 3314 3315 3329 3333 3396 3400 11 2368 2411 2956 3312 3313 3314 3315 3329 3333 3396 3400 11 2368 2411 2956 3312 3313 3314 3315 3329 3333 3396 3400 11 2368 2411 2956 3312 3313 3314 3315 3329 3333 3396 3400 11 2368 2411 2956 3312 3313 3314 3315 3329 3333 3396 3400 11 2368 2411 2956 3312 3313 3314 3315 3329 3333 3396 3400 4 2368 3312 3313 3329 4 2368 3312 3313 3329 4 2368 3312 3313 3329 4 2368 3312 3313 3329 4 2368 3312 3313 3329 4 2368 3312 3313 3329 3 2369 2412 2957 3 2369 2412 2957 3 2369 2412 2957 3 2369 2412 2957 3 2369 2412 2957 3 2369 2412 2957 4 2370 2413 2958 2959 4 2370 2413 2958 2959 4 2370 2413 2958 2959 4 2370 2413 2958 2959 4 2370 2413 2958 2959 4 2370 2413 2958 2959 3 2371 2414 2960 3 2371 2414 2960 3 2371 2414 2960 3 2371 2414 2960 3 2371 2414 2960 3 2371 2414 2960 3 2372 2415 2961 3 2372 2415 2961 3 2372 2415 2961 3 2372 2415 2961 3 2372 2415 2961 3 2372 2415 2961 3 2373 2416 2962 3 2373 2416 2962 3 2373 2416 2962 3 2373 2416 2962 3 2373 2416 2962 3 2373 2416 2962 3 2374 2417 2963 3 2374 2417 2963 3 2374 2417 2963 3 2374 2417 2963 3 2374 2417 2963 3 2374 2417 2963 3 2375 2418 2964 3 2375 2418 2964 3 2375 2418 2964 3 2375 2418 2964 3 2375 2418 2964 3 2375 2418 2964 3 2376 2419 2965 3 2376 2419 2965 3 2376 2419 2965 3 2376 2419 2965 3 2376 2419 2965 3 2376 2419 2965 3 2377 2420 2966 3 2377 2420 2966 3 2377 2420 2966 3 2377 2420 2966 3 2377 2420 2966 3 2377 2420 2966 3 2378 2421 2967 3 2378 2421 2967 3 2378 2421 2967 3 2378 2421 2967 3 2378 2421 2967 3 2378 2421 2967 3 2379 2422 2968 3 2379 2422 2968 3 2379 2422 2968 3 2379 2422 2968 3 2379 2422 2968 3 2379 2422 2968 3 2380 2423 2969 3 2380 2423 2969 3 2380 2423 2969 3 2380 2423 2969 3 2380 2423 2969 3 2380 2423 2969 3 2381 2424 2970 3 2381 2424 2970 3 2381 2424 2970 3 2381 2424 2970 3 2381 2424 2970 3 2381 2424 2970 3 2382 2425 2971 3 2382 2425 2971 3 2382 2425 2971 3 2382 2425 2971 3 2382 2425 2971 3 2382 2425 2971 3 2383 2426 2972 3 2383 2426 2972 3 2383 2426 2972 3 2383 2426 2972 3 2383 2426 2972 3 2383 2426 2972 3 2384 2427 2973 3 2384 2427 2973 3 2384 2427 2973 3 2384 2427 2973 3 2384 2427 2973 3 2384 2427 2973 3 2385 2428 2974 3 2385 2428 2974 3 2385 2428 2974 3 2385 2428 2974 3 2385 2428 2974 3 2385 2428 2974 3 2386 2429 2975 3 2386 2429 2975 3 2386 2429 2975 3 2386 2429 2975 3 2386 2429 2975 3 2386 2429 2975 3 2387 2430 2976 3 2387 2430 2976 3 2387 2430 2976 3 2387 2430 2976 3 2387 2430 2976 3 2387 2430 2976 3 2388 2431 2977 3 2388 2431 2977 3 2388 2431 2977 3 2388 2431 2977 3 2388 2431 2977 3 2388 2431 2977 3 2389 2432 2978 3 2389 2432 2978 3 2389 2432 2978 3 2389 2432 2978 3 2389 2432 2978 3 2389 2432 2978 3 2390 2433 2979 3 2390 2433 2979 3 2390 2433 2979 3 2390 2433 2979 3 2390 2433 2979 3 2390 2433 2979 3 2391 2434 2980 3 2391 2434 2980 3 2391 2434 2980 3 2391 2434 2980 3 2391 2434 2980 3 2391 2434 2980 3 2392 2435 2981 3 2392 2435 2981 3 2392 2435 2981 3 2392 2435 2981 3 2392 2435 2981 3 2392 2435 2981 3 2393 2436 2982 3 2393 2436 2982 3 2393 2436 2982 3 2393 2436 2982 3 2393 2436 2982 3 2393 2436 2982 3 2394 2437 2983 3 2394 2437 2983 3 2394 2437 2983 3 2394 2437 2983 3 2394 2437 2983 3 2394 2437 2983 3 2395 2438 2984 3 2395 2438 2984 3 2395 2438 2984 3 2395 2438 2984 3 2395 2438 2984 3 2395 2438 2984 3 2396 2439 2985 3 2396 2439 2985 3 2396 2439 2985 3 2396 2439 2985 3 2396 2439 2985 3 2396 2439 2985 4 2397 2440 2986 2987 4 2397 2440 2986 2987 4 2397 2440 2986 2987 4 2397 2440 2986 2987 4 2397 2440 2986 2987 4 2397 2440 2986 2987 3 2398 2441 2988 3 2398 2441 2988 3 2398 2441 2988 3 2398 2441 2988 3 2398 2441 2988 3 2398 2441 2988 3 2399 2442 2989 3 2399 2442 2989 3 2399 2442 2989 3 2399 2442 2989 3 2399 2442 2989 3 2399 2442 2989 3 2400 2443 2990 3 2400 2443 2990 3 2400 2443 2990 3 2400 2443 2990 3 2400 2443 2990 3 2400 2443 2990 3 2401 2444 2991 3 2401 2444 2991 3 2401 2444 2991 3 2401 2444 2991 3 2401 2444 2991 3 2401 2444 2991 3 2402 2445 2992 3 2402 2445 2992 3 2402 2445 2992 3 2402 2445 2992 3 2402 2445 2992 3 2402 2445 2992 4 2407 2450 3000 3002 4 2407 2450 3000 3002 4 2407 2450 3000 3002 4 2407 2450 3000 3002 4 2407 2450 3000 3002 4 2407 2450 3000 3002 4 2408 2451 2999 3001 4 2408 2451 2999 3001 4 2408 2451 2999 3001 4 2408 2451 2999 3001 4 2408 2451 2999 3001 4 2408 2451 2999 3001 4 2409 2452 2996 3003 4 2409 2452 2996 3003 4 2409 2452 2996 3003 4 2409 2452 2996 3003 4 2409 2452 2996 3003 4 2409 2452 2996 3003 8 2410 2453 3004 3131 3132 3170 3176 3225 8 2410 2453 3004 3131 3132 3170 3176 3225 8 2410 2453 3004 3131 3132 3170 3176 3225 8 2410 2453 3004 3131 3132 3170 3176 3225 8 2410 2453 3004 3131 3132 3170 3176 3225 8 2410 2453 3004 3131 3132 3170 3176 3225 3 2410 2453 3004 3 2410 2453 3004 3 2410 2453 3004 3 2410 2453 3004 3 2410 2453 3004 3 2410 2453 3004 3 2410 3131 3170 3 2410 3131 3170 3 2410 3131 3170 3 2410 3131 3170 3 2410 3131 3170 3 2410 3131 3170 3 2411 2454 2756 3 2411 2454 2756 3 2411 2454 2756 3 2411 2454 2756 3 2411 2454 2756 3 2411 2454 2756 12 2411 2454 2627 2670 2756 3314 3315 3316 3333 3358 3364 3391 12 2411 2454 2627 2670 2756 3314 3315 3316 3333 3358 3364 3391 12 2411 2454 2627 2670 2756 3314 3315 3316 3333 3358 3364 3391 12 2411 2454 2627 2670 2756 3314 3315 3316 3333 3358 3364 3391 12 2411 2454 2627 2670 2756 3314 3315 3316 3333 3358 3364 3391 12 2411 2454 2627 2670 2756 3314 3315 3316 3333 3358 3364 3391 4 2411 3314 3315 3333 4 2411 3314 3315 3333 4 2411 3314 3315 3333 4 2411 3314 3315 3333 4 2411 3314 3315 3333 4 2411 3314 3315 3333 3 2412 2455 2900 3 2412 2455 2900 3 2412 2455 2900 3 2412 2455 2900 3 2412 2455 2900 3 2412 2455 2900 4 2413 2456 2901 2902 4 2413 2456 2901 2902 4 2413 2456 2901 2902 4 2413 2456 2901 2902 4 2413 2456 2901 2902 4 2413 2456 2901 2902 3 2414 2457 2903 3 2414 2457 2903 3 2414 2457 2903 3 2414 2457 2903 3 2414 2457 2903 3 2414 2457 2903 3 2415 2458 2904 3 2415 2458 2904 3 2415 2458 2904 3 2415 2458 2904 3 2415 2458 2904 3 2415 2458 2904 4 2416 2459 2905 2906 4 2416 2459 2905 2906 4 2416 2459 2905 2906 4 2416 2459 2905 2906 4 2416 2459 2905 2906 4 2416 2459 2905 2906 3 2417 2460 2907 3 2417 2460 2907 3 2417 2460 2907 3 2417 2460 2907 3 2417 2460 2907 3 2417 2460 2907 3 2418 2461 2908 3 2418 2461 2908 3 2418 2461 2908 3 2418 2461 2908 3 2418 2461 2908 3 2418 2461 2908 4 2419 2462 2909 2910 4 2419 2462 2909 2910 4 2419 2462 2909 2910 4 2419 2462 2909 2910 4 2419 2462 2909 2910 4 2419 2462 2909 2910 3 2420 2463 2911 3 2420 2463 2911 3 2420 2463 2911 3 2420 2463 2911 3 2420 2463 2911 3 2420 2463 2911 3 2421 2464 2912 3 2421 2464 2912 3 2421 2464 2912 3 2421 2464 2912 3 2421 2464 2912 3 2421 2464 2912 4 2422 2465 2913 2914 4 2422 2465 2913 2914 4 2422 2465 2913 2914 4 2422 2465 2913 2914 4 2422 2465 2913 2914 4 2422 2465 2913 2914 3 2423 2466 2915 3 2423 2466 2915 3 2423 2466 2915 3 2423 2466 2915 3 2423 2466 2915 3 2423 2466 2915 3 2424 2467 2916 3 2424 2467 2916 3 2424 2467 2916 3 2424 2467 2916 3 2424 2467 2916 3 2424 2467 2916 4 2425 2468 2917 2918 4 2425 2468 2917 2918 4 2425 2468 2917 2918 4 2425 2468 2917 2918 4 2425 2468 2917 2918 4 2425 2468 2917 2918 3 2426 2469 2919 3 2426 2469 2919 3 2426 2469 2919 3 2426 2469 2919 3 2426 2469 2919 3 2426 2469 2919 3 2427 2470 2920 3 2427 2470 2920 3 2427 2470 2920 3 2427 2470 2920 3 2427 2470 2920 3 2427 2470 2920 4 2428 2471 2921 2922 4 2428 2471 2921 2922 4 2428 2471 2921 2922 4 2428 2471 2921 2922 4 2428 2471 2921 2922 4 2428 2471 2921 2922 3 2429 2472 2923 3 2429 2472 2923 3 2429 2472 2923 3 2429 2472 2923 3 2429 2472 2923 3 2429 2472 2923 3 2430 2473 2924 3 2430 2473 2924 3 2430 2473 2924 3 2430 2473 2924 3 2430 2473 2924 3 2430 2473 2924 4 2431 2474 2925 2926 4 2431 2474 2925 2926 4 2431 2474 2925 2926 4 2431 2474 2925 2926 4 2431 2474 2925 2926 4 2431 2474 2925 2926 3 2432 2475 2927 3 2432 2475 2927 3 2432 2475 2927 3 2432 2475 2927 3 2432 2475 2927 3 2432 2475 2927 3 2433 2476 2928 3 2433 2476 2928 3 2433 2476 2928 3 2433 2476 2928 3 2433 2476 2928 3 2433 2476 2928 4 2434 2477 2929 2930 4 2434 2477 2929 2930 4 2434 2477 2929 2930 4 2434 2477 2929 2930 4 2434 2477 2929 2930 4 2434 2477 2929 2930 3 2435 2478 2931 3 2435 2478 2931 3 2435 2478 2931 3 2435 2478 2931 3 2435 2478 2931 3 2435 2478 2931 3 2436 2479 2932 3 2436 2479 2932 3 2436 2479 2932 3 2436 2479 2932 3 2436 2479 2932 3 2436 2479 2932 4 2437 2480 2933 2934 4 2437 2480 2933 2934 4 2437 2480 2933 2934 4 2437 2480 2933 2934 4 2437 2480 2933 2934 4 2437 2480 2933 2934 3 2438 2481 2935 3 2438 2481 2935 3 2438 2481 2935 3 2438 2481 2935 3 2438 2481 2935 3 2438 2481 2935 3 2439 2482 2936 3 2439 2482 2936 3 2439 2482 2936 3 2439 2482 2936 3 2439 2482 2936 3 2439 2482 2936 4 2440 2483 2937 2938 4 2440 2483 2937 2938 4 2440 2483 2937 2938 4 2440 2483 2937 2938 4 2440 2483 2937 2938 4 2440 2483 2937 2938 3 2441 2484 2939 3 2441 2484 2939 3 2441 2484 2939 3 2441 2484 2939 3 2441 2484 2939 3 2441 2484 2939 3 2442 2485 2940 3 2442 2485 2940 3 2442 2485 2940 3 2442 2485 2940 3 2442 2485 2940 3 2442 2485 2940 4 2443 2486 2941 2942 4 2443 2486 2941 2942 4 2443 2486 2941 2942 4 2443 2486 2941 2942 4 2443 2486 2941 2942 4 2443 2486 2941 2942 3 2444 2487 2943 3 2444 2487 2943 3 2444 2487 2943 3 2444 2487 2943 3 2444 2487 2943 3 2444 2487 2943 3 2445 2488 2944 3 2445 2488 2944 3 2445 2488 2944 3 2445 2488 2944 3 2445 2488 2944 3 2445 2488 2944 4 2450 2493 2952 2954 4 2450 2493 2952 2954 4 2450 2493 2952 2954 4 2450 2493 2952 2954 4 2450 2493 2952 2954 4 2450 2493 2952 2954 4 2451 2494 2951 2953 4 2451 2494 2951 2953 4 2451 2494 2951 2953 4 2451 2494 2951 2953 4 2451 2494 2951 2953 4 2451 2494 2951 2953 4 2452 2495 2948 2955 4 2452 2495 2948 2955 4 2452 2495 2948 2955 4 2452 2495 2948 2955 4 2452 2495 2948 2955 4 2452 2495 2948 2955 9 2453 2496 2669 2712 2759 3132 3176 3198 3204 9 2453 2496 2669 2712 2759 3132 3176 3198 3204 9 2453 2496 2669 2712 2759 3132 3176 3198 3204 9 2453 2496 2669 2712 2759 3132 3176 3198 3204 9 2453 2496 2669 2712 2759 3132 3176 3198 3204 9 2453 2496 2669 2712 2759 3132 3176 3198 3204 3 2453 2496 2759 3 2453 2496 2759 3 2453 2496 2759 3 2453 2496 2759 3 2453 2496 2759 3 2453 2496 2759 3 2453 3132 3176 3 2453 3132 3176 3 2453 3132 3176 3 2453 3132 3176 3 2453 3132 3176 3 2453 3132 3176 4 2454 2497 2757 2758 4 2454 2497 2757 2758 4 2454 2497 2757 2758 4 2454 2497 2757 2758 4 2454 2497 2757 2758 4 2454 2497 2757 2758 11 2454 2497 2670 2713 2757 2758 3316 3317 3364 3370 3382 11 2454 2497 2670 2713 2757 2758 3316 3317 3364 3370 3382 11 2454 2497 2670 2713 2757 2758 3316 3317 3364 3370 3382 11 2454 2497 2670 2713 2757 2758 3316 3317 3364 3370 3382 11 2454 2497 2670 2713 2757 2758 3316 3317 3364 3370 3382 11 2454 2497 2670 2713 2757 2758 3316 3317 3364 3370 3382 4 2454 2670 3316 3364 4 2454 2670 3316 3364 4 2454 2670 3316 3364 4 2454 2670 3316 3364 4 2454 2670 3316 3364 4 2454 2670 3316 3364 4 2455 2498 2818 2819 4 2455 2498 2818 2819 4 2455 2498 2818 2819 4 2455 2498 2818 2819 4 2455 2498 2818 2819 4 2455 2498 2818 2819 4 2456 2499 2820 2821 4 2456 2499 2820 2821 4 2456 2499 2820 2821 4 2456 2499 2820 2821 4 2456 2499 2820 2821 4 2456 2499 2820 2821 4 2457 2500 2822 2823 4 2457 2500 2822 2823 4 2457 2500 2822 2823 4 2457 2500 2822 2823 4 2457 2500 2822 2823 4 2457 2500 2822 2823 4 2458 2501 2824 2825 4 2458 2501 2824 2825 4 2458 2501 2824 2825 4 2458 2501 2824 2825 4 2458 2501 2824 2825 4 2458 2501 2824 2825 4 2459 2502 2826 2827 4 2459 2502 2826 2827 4 2459 2502 2826 2827 4 2459 2502 2826 2827 4 2459 2502 2826 2827 4 2459 2502 2826 2827 4 2460 2503 2828 2829 4 2460 2503 2828 2829 4 2460 2503 2828 2829 4 2460 2503 2828 2829 4 2460 2503 2828 2829 4 2460 2503 2828 2829 4 2461 2504 2830 2831 4 2461 2504 2830 2831 4 2461 2504 2830 2831 4 2461 2504 2830 2831 4 2461 2504 2830 2831 4 2461 2504 2830 2831 4 2462 2505 2832 2833 4 2462 2505 2832 2833 4 2462 2505 2832 2833 4 2462 2505 2832 2833 4 2462 2505 2832 2833 4 2462 2505 2832 2833 4 2463 2506 2834 2835 4 2463 2506 2834 2835 4 2463 2506 2834 2835 4 2463 2506 2834 2835 4 2463 2506 2834 2835 4 2463 2506 2834 2835 4 2464 2507 2836 2837 4 2464 2507 2836 2837 4 2464 2507 2836 2837 4 2464 2507 2836 2837 4 2464 2507 2836 2837 4 2464 2507 2836 2837 4 2465 2508 2838 2839 4 2465 2508 2838 2839 4 2465 2508 2838 2839 4 2465 2508 2838 2839 4 2465 2508 2838 2839 4 2465 2508 2838 2839 4 2466 2509 2840 2841 4 2466 2509 2840 2841 4 2466 2509 2840 2841 4 2466 2509 2840 2841 4 2466 2509 2840 2841 4 2466 2509 2840 2841 4 2467 2510 2842 2843 4 2467 2510 2842 2843 4 2467 2510 2842 2843 4 2467 2510 2842 2843 4 2467 2510 2842 2843 4 2467 2510 2842 2843 4 2468 2511 2844 2845 4 2468 2511 2844 2845 4 2468 2511 2844 2845 4 2468 2511 2844 2845 4 2468 2511 2844 2845 4 2468 2511 2844 2845 4 2469 2512 2846 2847 4 2469 2512 2846 2847 4 2469 2512 2846 2847 4 2469 2512 2846 2847 4 2469 2512 2846 2847 4 2469 2512 2846 2847 4 2470 2513 2848 2849 4 2470 2513 2848 2849 4 2470 2513 2848 2849 4 2470 2513 2848 2849 4 2470 2513 2848 2849 4 2470 2513 2848 2849 4 2471 2514 2850 2851 4 2471 2514 2850 2851 4 2471 2514 2850 2851 4 2471 2514 2850 2851 4 2471 2514 2850 2851 4 2471 2514 2850 2851 4 2472 2515 2852 2853 4 2472 2515 2852 2853 4 2472 2515 2852 2853 4 2472 2515 2852 2853 4 2472 2515 2852 2853 4 2472 2515 2852 2853 4 2473 2516 2854 2855 4 2473 2516 2854 2855 4 2473 2516 2854 2855 4 2473 2516 2854 2855 4 2473 2516 2854 2855 4 2473 2516 2854 2855 4 2474 2517 2856 2857 4 2474 2517 2856 2857 4 2474 2517 2856 2857 4 2474 2517 2856 2857 4 2474 2517 2856 2857 4 2474 2517 2856 2857 4 2475 2518 2858 2859 4 2475 2518 2858 2859 4 2475 2518 2858 2859 4 2475 2518 2858 2859 4 2475 2518 2858 2859 4 2475 2518 2858 2859 4 2476 2519 2860 2861 4 2476 2519 2860 2861 4 2476 2519 2860 2861 4 2476 2519 2860 2861 4 2476 2519 2860 2861 4 2476 2519 2860 2861 4 2477 2520 2862 2863 4 2477 2520 2862 2863 4 2477 2520 2862 2863 4 2477 2520 2862 2863 4 2477 2520 2862 2863 4 2477 2520 2862 2863 4 2478 2521 2864 2865 4 2478 2521 2864 2865 4 2478 2521 2864 2865 4 2478 2521 2864 2865 4 2478 2521 2864 2865 4 2478 2521 2864 2865 4 2479 2522 2866 2867 4 2479 2522 2866 2867 4 2479 2522 2866 2867 4 2479 2522 2866 2867 4 2479 2522 2866 2867 4 2479 2522 2866 2867 4 2480 2523 2868 2869 4 2480 2523 2868 2869 4 2480 2523 2868 2869 4 2480 2523 2868 2869 4 2480 2523 2868 2869 4 2480 2523 2868 2869 4 2481 2524 2870 2871 4 2481 2524 2870 2871 4 2481 2524 2870 2871 4 2481 2524 2870 2871 4 2481 2524 2870 2871 4 2481 2524 2870 2871 4 2482 2525 2872 2873 4 2482 2525 2872 2873 4 2482 2525 2872 2873 4 2482 2525 2872 2873 4 2482 2525 2872 2873 4 2482 2525 2872 2873 4 2483 2526 2874 2875 4 2483 2526 2874 2875 4 2483 2526 2874 2875 4 2483 2526 2874 2875 4 2483 2526 2874 2875 4 2483 2526 2874 2875 4 2484 2527 2876 2877 4 2484 2527 2876 2877 4 2484 2527 2876 2877 4 2484 2527 2876 2877 4 2484 2527 2876 2877 4 2484 2527 2876 2877 4 2485 2528 2878 2879 4 2485 2528 2878 2879 4 2485 2528 2878 2879 4 2485 2528 2878 2879 4 2485 2528 2878 2879 4 2485 2528 2878 2879 4 2486 2529 2880 2881 4 2486 2529 2880 2881 4 2486 2529 2880 2881 4 2486 2529 2880 2881 4 2486 2529 2880 2881 4 2486 2529 2880 2881 4 2487 2530 2882 2883 4 2487 2530 2882 2883 4 2487 2530 2882 2883 4 2487 2530 2882 2883 4 2487 2530 2882 2883 4 2487 2530 2882 2883 4 2488 2531 2884 2885 4 2488 2531 2884 2885 4 2488 2531 2884 2885 4 2488 2531 2884 2885 4 2488 2531 2884 2885 4 2488 2531 2884 2885 4 2489 2532 2886 2887 4 2489 2532 2886 2887 4 2489 2532 2886 2887 4 2489 2532 2886 2887 4 2489 2532 2886 2887 4 2489 2532 2886 2887 4 2490 2533 2888 2889 4 2490 2533 2888 2889 4 2490 2533 2888 2889 4 2490 2533 2888 2889 4 2490 2533 2888 2889 4 2490 2533 2888 2889 4 2491 2534 2890 2891 4 2491 2534 2890 2891 4 2491 2534 2890 2891 4 2491 2534 2890 2891 4 2491 2534 2890 2891 4 2491 2534 2890 2891 4 2492 2535 2892 2893 4 2492 2535 2892 2893 4 2492 2535 2892 2893 4 2492 2535 2892 2893 4 2492 2535 2892 2893 4 2492 2535 2892 2893 4 2493 2536 2894 2895 4 2493 2536 2894 2895 4 2493 2536 2894 2895 4 2493 2536 2894 2895 4 2493 2536 2894 2895 4 2493 2536 2894 2895 4 2494 2537 2896 2897 4 2494 2537 2896 2897 4 2494 2537 2896 2897 4 2494 2537 2896 2897 4 2494 2537 2896 2897 4 2494 2537 2896 2897 4 2495 2538 2898 2899 4 2495 2538 2898 2899 4 2495 2538 2898 2899 4 2495 2538 2898 2899 4 2495 2538 2898 2899 4 2495 2538 2898 2899 10 2496 2539 2712 2755 2760 2761 3133 3204 3208 3218 10 2496 2539 2712 2755 2760 2761 3133 3204 3208 3218 10 2496 2539 2712 2755 2760 2761 3133 3204 3208 3218 10 2496 2539 2712 2755 2760 2761 3133 3204 3208 3218 10 2496 2539 2712 2755 2760 2761 3133 3204 3208 3218 10 2496 2539 2712 2755 2760 2761 3133 3204 3208 3218 4 2496 2539 2760 2761 4 2496 2539 2760 2761 4 2496 2539 2760 2761 4 2496 2539 2760 2761 4 2496 2539 2760 2761 4 2496 2539 2760 2761 3 2496 2712 3204 3 2496 2712 3204 3 2496 2712 3204 3 2496 2712 3204 3 2496 2712 3204 3 2496 2712 3204 3 2497 2713 2775 3 2497 2713 2775 3 2497 2713 2775 3 2497 2713 2775 3 2497 2713 2775 3 2497 2713 2775 6 2497 2713 2775 3317 3370 3376 6 2497 2713 2775 3317 3370 3376 6 2497 2713 2775 3317 3370 3376 6 2497 2713 2775 3317 3370 3376 6 2497 2713 2775 3317 3370 3376 6 2497 2713 2775 3317 3370 3376 4 2497 2713 3317 3370 4 2497 2713 3317 3370 4 2497 2713 3317 3370 4 2497 2713 3317 3370 4 2497 2713 3317 3370 4 2497 2713 3317 3370 3 2498 2714 2776 3 2498 2714 2776 3 2498 2714 2776 3 2498 2714 2776 3 2498 2714 2776 3 2498 2714 2776 3 2499 2715 2777 3 2499 2715 2777 3 2499 2715 2777 3 2499 2715 2777 3 2499 2715 2777 3 2499 2715 2777 3 2500 2716 2778 3 2500 2716 2778 3 2500 2716 2778 3 2500 2716 2778 3 2500 2716 2778 3 2500 2716 2778 3 2501 2717 2779 3 2501 2717 2779 3 2501 2717 2779 3 2501 2717 2779 3 2501 2717 2779 3 2501 2717 2779 3 2502 2718 2780 3 2502 2718 2780 3 2502 2718 2780 3 2502 2718 2780 3 2502 2718 2780 3 2502 2718 2780 3 2503 2719 2781 3 2503 2719 2781 3 2503 2719 2781 3 2503 2719 2781 3 2503 2719 2781 3 2503 2719 2781 3 2504 2720 2782 3 2504 2720 2782 3 2504 2720 2782 3 2504 2720 2782 3 2504 2720 2782 3 2504 2720 2782 3 2505 2721 2783 3 2505 2721 2783 3 2505 2721 2783 3 2505 2721 2783 3 2505 2721 2783 3 2505 2721 2783 3 2506 2722 2784 3 2506 2722 2784 3 2506 2722 2784 3 2506 2722 2784 3 2506 2722 2784 3 2506 2722 2784 3 2507 2723 2785 3 2507 2723 2785 3 2507 2723 2785 3 2507 2723 2785 3 2507 2723 2785 3 2507 2723 2785 3 2508 2724 2786 3 2508 2724 2786 3 2508 2724 2786 3 2508 2724 2786 3 2508 2724 2786 3 2508 2724 2786 3 2509 2725 2787 3 2509 2725 2787 3 2509 2725 2787 3 2509 2725 2787 3 2509 2725 2787 3 2509 2725 2787 3 2510 2726 2788 3 2510 2726 2788 3 2510 2726 2788 3 2510 2726 2788 3 2510 2726 2788 3 2510 2726 2788 3 2511 2727 2789 3 2511 2727 2789 3 2511 2727 2789 3 2511 2727 2789 3 2511 2727 2789 3 2511 2727 2789 3 2512 2728 2790 3 2512 2728 2790 3 2512 2728 2790 3 2512 2728 2790 3 2512 2728 2790 3 2512 2728 2790 3 2513 2729 2791 3 2513 2729 2791 3 2513 2729 2791 3 2513 2729 2791 3 2513 2729 2791 3 2513 2729 2791 3 2514 2730 2792 3 2514 2730 2792 3 2514 2730 2792 3 2514 2730 2792 3 2514 2730 2792 3 2514 2730 2792 3 2515 2731 2793 3 2515 2731 2793 3 2515 2731 2793 3 2515 2731 2793 3 2515 2731 2793 3 2515 2731 2793 3 2516 2732 2794 3 2516 2732 2794 3 2516 2732 2794 3 2516 2732 2794 3 2516 2732 2794 3 2516 2732 2794 3 2517 2733 2795 3 2517 2733 2795 3 2517 2733 2795 3 2517 2733 2795 3 2517 2733 2795 3 2517 2733 2795 3 2518 2734 2796 3 2518 2734 2796 3 2518 2734 2796 3 2518 2734 2796 3 2518 2734 2796 3 2518 2734 2796 3 2519 2735 2797 3 2519 2735 2797 3 2519 2735 2797 3 2519 2735 2797 3 2519 2735 2797 3 2519 2735 2797 3 2520 2736 2798 3 2520 2736 2798 3 2520 2736 2798 3 2520 2736 2798 3 2520 2736 2798 3 2520 2736 2798 3 2521 2737 2799 3 2521 2737 2799 3 2521 2737 2799 3 2521 2737 2799 3 2521 2737 2799 3 2521 2737 2799 3 2522 2738 2800 3 2522 2738 2800 3 2522 2738 2800 3 2522 2738 2800 3 2522 2738 2800 3 2522 2738 2800 3 2523 2739 2801 3 2523 2739 2801 3 2523 2739 2801 3 2523 2739 2801 3 2523 2739 2801 3 2523 2739 2801 3 2524 2740 2802 3 2524 2740 2802 3 2524 2740 2802 3 2524 2740 2802 3 2524 2740 2802 3 2524 2740 2802 3 2525 2741 2803 3 2525 2741 2803 3 2525 2741 2803 3 2525 2741 2803 3 2525 2741 2803 3 2525 2741 2803 3 2526 2742 2804 3 2526 2742 2804 3 2526 2742 2804 3 2526 2742 2804 3 2526 2742 2804 3 2526 2742 2804 3 2527 2743 2805 3 2527 2743 2805 3 2527 2743 2805 3 2527 2743 2805 3 2527 2743 2805 3 2527 2743 2805 3 2528 2744 2806 3 2528 2744 2806 3 2528 2744 2806 3 2528 2744 2806 3 2528 2744 2806 3 2528 2744 2806 3 2529 2745 2807 3 2529 2745 2807 3 2529 2745 2807 3 2529 2745 2807 3 2529 2745 2807 3 2529 2745 2807 3 2530 2746 2808 3 2530 2746 2808 3 2530 2746 2808 3 2530 2746 2808 3 2530 2746 2808 3 2530 2746 2808 3 2531 2747 2809 3 2531 2747 2809 3 2531 2747 2809 3 2531 2747 2809 3 2531 2747 2809 3 2531 2747 2809 3 2532 2748 2810 3 2532 2748 2810 3 2532 2748 2810 3 2532 2748 2810 3 2532 2748 2810 3 2532 2748 2810 3 2533 2749 2811 3 2533 2749 2811 3 2533 2749 2811 3 2533 2749 2811 3 2533 2749 2811 3 2533 2749 2811 3 2534 2750 2812 3 2534 2750 2812 3 2534 2750 2812 3 2534 2750 2812 3 2534 2750 2812 3 2534 2750 2812 3 2535 2751 2813 3 2535 2751 2813 3 2535 2751 2813 3 2535 2751 2813 3 2535 2751 2813 3 2535 2751 2813 3 2536 2752 2814 3 2536 2752 2814 3 2536 2752 2814 3 2536 2752 2814 3 2536 2752 2814 3 2536 2752 2814 3 2537 2753 2815 3 2537 2753 2815 3 2537 2753 2815 3 2537 2753 2815 3 2537 2753 2815 3 2537 2753 2815 3 2538 2754 2816 3 2538 2754 2816 3 2538 2754 2816 3 2538 2754 2816 3 2538 2754 2816 3 2538 2754 2816 6 2539 2755 2817 3133 3208 3214 6 2539 2755 2817 3133 3208 3214 6 2539 2755 2817 3133 3208 3214 6 2539 2755 2817 3133 3208 3214 6 2539 2755 2817 3133 3208 3214 6 2539 2755 2817 3133 3208 3214 3 2539 2755 2817 3 2539 2755 2817 3 2539 2755 2817 3 2539 2755 2817 3 2539 2755 2817 3 2539 2755 2817 4 2539 2755 3133 3208 4 2539 2755 3133 3208 4 2539 2755 3133 3208 4 2539 2755 3133 3208 4 2539 2755 3133 3208 4 2539 2755 3133 3208 1 2540 1 2540 1 2540 1 2540 1 2540 1 2540 4 2540 3308 3340 3430 4 2540 3308 3340 3430 4 2540 3308 3340 3430 4 2540 3308 3340 3430 4 2540 3308 3340 3430 4 2540 3308 3340 3430 3 2540 3308 3340 3 2540 3308 3340 3 2540 3308 3340 3 2540 3308 3340 3 2540 3308 3340 3 2540 3308 3340 8 2540 2541 3063 3308 3310 3340 3346 3418 8 2540 2541 3063 3308 3310 3340 3346 3418 8 2540 2541 3063 3308 3310 3340 3346 3418 8 2540 2541 3063 3308 3310 3340 3346 3418 8 2540 2541 3063 3308 3310 3340 3346 3418 8 2540 2541 3063 3308 3310 3340 3346 3418 3 2540 2541 3063 3 2540 2541 3063 3 2540 2541 3063 3 2540 2541 3063 3 2540 2541 3063 3 2540 2541 3063 3 2541 2584 3005 3 2541 2584 3005 3 2541 2584 3005 3 2541 2584 3005 3 2541 2584 3005 3 2541 2584 3005 8 2541 2584 3005 3310 3312 3346 3352 3407 8 2541 2584 3005 3310 3312 3346 3352 3407 8 2541 2584 3005 3310 3312 3346 3352 3407 8 2541 2584 3005 3310 3312 3346 3352 3407 8 2541 2584 3005 3310 3312 3346 3352 3407 8 2541 2584 3005 3310 3312 3346 3352 3407 3 2541 3310 3346 3 2541 3310 3346 3 2541 3310 3346 3 2541 3310 3346 3 2541 3310 3346 3 2541 3310 3346 3 2542 2585 3006 3 2542 2585 3006 3 2542 2585 3006 3 2542 2585 3006 3 2542 2585 3006 3 2542 2585 3006 2 2542 3064 2 2542 3064 2 2542 3064 2 2542 3064 2 2542 3064 2 2542 3064 3 2543 2586 3007 3 2543 2586 3007 3 2543 2586 3007 3 2543 2586 3007 3 2543 2586 3007 3 2543 2586 3007 2 2543 3065 2 2543 3065 2 2543 3065 2 2543 3065 2 2543 3065 2 2543 3065 3 2544 2587 3009 3 2544 2587 3009 3 2544 2587 3009 3 2544 2587 3009 3 2544 2587 3009 3 2544 2587 3009 2 2544 3067 2 2544 3067 2 2544 3067 2 2544 3067 2 2544 3067 2 2544 3067 3 2545 2588 3010 3 2545 2588 3010 3 2545 2588 3010 3 2545 2588 3010 3 2545 2588 3010 3 2545 2588 3010 2 2545 3068 2 2545 3068 2 2545 3068 2 2545 3068 2 2545 3068 2 2545 3068 3 2546 2589 3011 3 2546 2589 3011 3 2546 2589 3011 3 2546 2589 3011 3 2546 2589 3011 3 2546 2589 3011 2 2546 3069 2 2546 3069 2 2546 3069 2 2546 3069 2 2546 3069 2 2546 3069 3 2547 2590 3013 3 2547 2590 3013 3 2547 2590 3013 3 2547 2590 3013 3 2547 2590 3013 3 2547 2590 3013 2 2547 3071 2 2547 3071 2 2547 3071 2 2547 3071 2 2547 3071 2 2547 3071 3 2548 2591 3014 3 2548 2591 3014 3 2548 2591 3014 3 2548 2591 3014 3 2548 2591 3014 3 2548 2591 3014 2 2548 3072 2 2548 3072 2 2548 3072 2 2548 3072 2 2548 3072 2 2548 3072 3 2549 2592 3015 3 2549 2592 3015 3 2549 2592 3015 3 2549 2592 3015 3 2549 2592 3015 3 2549 2592 3015 2 2549 3073 2 2549 3073 2 2549 3073 2 2549 3073 2 2549 3073 2 2549 3073 3 2550 2593 3017 3 2550 2593 3017 3 2550 2593 3017 3 2550 2593 3017 3 2550 2593 3017 3 2550 2593 3017 2 2550 3075 2 2550 3075 2 2550 3075 2 2550 3075 2 2550 3075 2 2550 3075 3 2551 2594 3018 3 2551 2594 3018 3 2551 2594 3018 3 2551 2594 3018 3 2551 2594 3018 3 2551 2594 3018 2 2551 3076 2 2551 3076 2 2551 3076 2 2551 3076 2 2551 3076 2 2551 3076 3 2552 2595 3019 3 2552 2595 3019 3 2552 2595 3019 3 2552 2595 3019 3 2552 2595 3019 3 2552 2595 3019 2 2552 3077 2 2552 3077 2 2552 3077 2 2552 3077 2 2552 3077 2 2552 3077 3 2553 2596 3021 3 2553 2596 3021 3 2553 2596 3021 3 2553 2596 3021 3 2553 2596 3021 3 2553 2596 3021 2 2553 3079 2 2553 3079 2 2553 3079 2 2553 3079 2 2553 3079 2 2553 3079 3 2554 2597 3022 3 2554 2597 3022 3 2554 2597 3022 3 2554 2597 3022 3 2554 2597 3022 3 2554 2597 3022 2 2554 3080 2 2554 3080 2 2554 3080 2 2554 3080 2 2554 3080 2 2554 3080 3 2555 2598 3023 3 2555 2598 3023 3 2555 2598 3023 3 2555 2598 3023 3 2555 2598 3023 3 2555 2598 3023 2 2555 3081 2 2555 3081 2 2555 3081 2 2555 3081 2 2555 3081 2 2555 3081 3 2556 2599 3025 3 2556 2599 3025 3 2556 2599 3025 3 2556 2599 3025 3 2556 2599 3025 3 2556 2599 3025 2 2556 3083 2 2556 3083 2 2556 3083 2 2556 3083 2 2556 3083 2 2556 3083 3 2557 2600 3026 3 2557 2600 3026 3 2557 2600 3026 3 2557 2600 3026 3 2557 2600 3026 3 2557 2600 3026 2 2557 3084 2 2557 3084 2 2557 3084 2 2557 3084 2 2557 3084 2 2557 3084 3 2558 2601 3027 3 2558 2601 3027 3 2558 2601 3027 3 2558 2601 3027 3 2558 2601 3027 3 2558 2601 3027 2 2558 3085 2 2558 3085 2 2558 3085 2 2558 3085 2 2558 3085 2 2558 3085 3 2559 2602 3029 3 2559 2602 3029 3 2559 2602 3029 3 2559 2602 3029 3 2559 2602 3029 3 2559 2602 3029 2 2559 3087 2 2559 3087 2 2559 3087 2 2559 3087 2 2559 3087 2 2559 3087 3 2560 2603 3030 3 2560 2603 3030 3 2560 2603 3030 3 2560 2603 3030 3 2560 2603 3030 3 2560 2603 3030 2 2560 3088 2 2560 3088 2 2560 3088 2 2560 3088 2 2560 3088 2 2560 3088 3 2561 2604 3031 3 2561 2604 3031 3 2561 2604 3031 3 2561 2604 3031 3 2561 2604 3031 3 2561 2604 3031 2 2561 3089 2 2561 3089 2 2561 3089 2 2561 3089 2 2561 3089 2 2561 3089 3 2562 2605 3033 3 2562 2605 3033 3 2562 2605 3033 3 2562 2605 3033 3 2562 2605 3033 3 2562 2605 3033 2 2562 3091 2 2562 3091 2 2562 3091 2 2562 3091 2 2562 3091 2 2562 3091 3 2563 2606 3034 3 2563 2606 3034 3 2563 2606 3034 3 2563 2606 3034 3 2563 2606 3034 3 2563 2606 3034 2 2563 3092 2 2563 3092 2 2563 3092 2 2563 3092 2 2563 3092 2 2563 3092 3 2564 2607 3035 3 2564 2607 3035 3 2564 2607 3035 3 2564 2607 3035 3 2564 2607 3035 3 2564 2607 3035 2 2564 3093 2 2564 3093 2 2564 3093 2 2564 3093 2 2564 3093 2 2564 3093 3 2565 2608 3037 3 2565 2608 3037 3 2565 2608 3037 3 2565 2608 3037 3 2565 2608 3037 3 2565 2608 3037 2 2565 3095 2 2565 3095 2 2565 3095 2 2565 3095 2 2565 3095 2 2565 3095 3 2566 2609 3038 3 2566 2609 3038 3 2566 2609 3038 3 2566 2609 3038 3 2566 2609 3038 3 2566 2609 3038 2 2566 3096 2 2566 3096 2 2566 3096 2 2566 3096 2 2566 3096 2 2566 3096 3 2567 2610 3039 3 2567 2610 3039 3 2567 2610 3039 3 2567 2610 3039 3 2567 2610 3039 3 2567 2610 3039 2 2567 3097 2 2567 3097 2 2567 3097 2 2567 3097 2 2567 3097 2 2567 3097 3 2568 2611 3041 3 2568 2611 3041 3 2568 2611 3041 3 2568 2611 3041 3 2568 2611 3041 3 2568 2611 3041 2 2568 3099 2 2568 3099 2 2568 3099 2 2568 3099 2 2568 3099 2 2568 3099 3 2569 2612 3042 3 2569 2612 3042 3 2569 2612 3042 3 2569 2612 3042 3 2569 2612 3042 3 2569 2612 3042 2 2569 3100 2 2569 3100 2 2569 3100 2 2569 3100 2 2569 3100 2 2569 3100 3 2570 2613 3043 3 2570 2613 3043 3 2570 2613 3043 3 2570 2613 3043 3 2570 2613 3043 3 2570 2613 3043 2 2570 3101 2 2570 3101 2 2570 3101 2 2570 3101 2 2570 3101 2 2570 3101 3 2571 2614 3045 3 2571 2614 3045 3 2571 2614 3045 3 2571 2614 3045 3 2571 2614 3045 3 2571 2614 3045 2 2571 3103 2 2571 3103 2 2571 3103 2 2571 3103 2 2571 3103 2 2571 3103 3 2572 2615 3046 3 2572 2615 3046 3 2572 2615 3046 3 2572 2615 3046 3 2572 2615 3046 3 2572 2615 3046 2 2572 3104 2 2572 3104 2 2572 3104 2 2572 3104 2 2572 3104 2 2572 3104 3 2573 2616 3047 3 2573 2616 3047 3 2573 2616 3047 3 2573 2616 3047 3 2573 2616 3047 3 2573 2616 3047 2 2573 3105 2 2573 3105 2 2573 3105 2 2573 3105 2 2573 3105 2 2573 3105 3 2574 2617 3049 3 2574 2617 3049 3 2574 2617 3049 3 2574 2617 3049 3 2574 2617 3049 3 2574 2617 3049 2 2574 3107 2 2574 3107 2 2574 3107 2 2574 3107 2 2574 3107 2 2574 3107 3 2575 2618 3050 3 2575 2618 3050 3 2575 2618 3050 3 2575 2618 3050 3 2575 2618 3050 3 2575 2618 3050 2 2575 3108 2 2575 3108 2 2575 3108 2 2575 3108 2 2575 3108 2 2575 3108 3 2576 2619 3051 3 2576 2619 3051 3 2576 2619 3051 3 2576 2619 3051 3 2576 2619 3051 3 2576 2619 3051 2 2576 3109 2 2576 3109 2 2576 3109 2 2576 3109 2 2576 3109 2 2576 3109 3 2577 2620 3053 3 2577 2620 3053 3 2577 2620 3053 3 2577 2620 3053 3 2577 2620 3053 3 2577 2620 3053 3 2578 2621 3055 3 2578 2621 3055 3 2578 2621 3055 3 2578 2621 3055 3 2578 2621 3055 3 2578 2621 3055 3 2579 2622 3056 3 2579 2622 3056 3 2579 2622 3056 3 2579 2622 3056 3 2579 2622 3056 3 2579 2622 3056 2 2579 3114 2 2579 3114 2 2579 3114 2 2579 3114 2 2579 3114 2 2579 3114 3 2580 2623 3058 3 2580 2623 3058 3 2580 2623 3058 3 2580 2623 3058 3 2580 2623 3058 3 2580 2623 3058 2 2580 3116 2 2580 3116 2 2580 3116 2 2580 3116 2 2580 3116 2 2580 3116 3 2581 2624 3059 3 2581 2624 3059 3 2581 2624 3059 3 2581 2624 3059 3 2581 2624 3059 3 2581 2624 3059 2 2581 3117 2 2581 3117 2 2581 3117 2 2581 3117 2 2581 3117 2 2581 3117 3 2582 2625 3061 3 2582 2625 3061 3 2582 2625 3061 3 2582 2625 3061 3 2582 2625 3061 3 2582 2625 3061 2 2582 3119 2 2582 3119 2 2582 3119 2 2582 3119 2 2582 3119 2 2582 3119 8 2583 2626 3062 3130 3131 3186 3192 3234 8 2583 2626 3062 3130 3131 3186 3192 3234 8 2583 2626 3062 3130 3131 3186 3192 3234 8 2583 2626 3062 3130 3131 3186 3192 3234 8 2583 2626 3062 3130 3131 3186 3192 3234 8 2583 2626 3062 3130 3131 3186 3192 3234 3 2583 2626 3062 3 2583 2626 3062 3 2583 2626 3062 3 2583 2626 3062 3 2583 2626 3062 3 2583 2626 3062 5 2583 3120 3130 3186 3243 5 2583 3120 3130 3186 3243 5 2583 3120 3130 3186 3243 5 2583 3120 3130 3186 3243 5 2583 3120 3130 3186 3243 5 2583 3120 3130 3186 3243 2 2583 3120 2 2583 3120 2 2583 3120 2 2583 3120 2 2583 3120 2 2583 3120 3 2583 3130 3186 3 2583 3130 3186 3 2583 3130 3186 3 2583 3130 3186 3 2583 3130 3186 3 2583 3130 3186 3 2584 2627 2956 3 2584 2627 2956 3 2584 2627 2956 3 2584 2627 2956 3 2584 2627 2956 3 2584 2627 2956 8 2584 2627 2956 3312 3314 3352 3358 3396 8 2584 2627 2956 3312 3314 3352 3358 3396 8 2584 2627 2956 3312 3314 3352 3358 3396 8 2584 2627 2956 3312 3314 3352 3358 3396 8 2584 2627 2956 3312 3314 3352 3358 3396 8 2584 2627 2956 3312 3314 3352 3358 3396 3 2584 3312 3352 3 2584 3312 3352 3 2584 3312 3352 3 2584 3312 3352 3 2584 3312 3352 3 2584 3312 3352 3 2585 2628 2957 3 2585 2628 2957 3 2585 2628 2957 3 2585 2628 2957 3 2585 2628 2957 3 2585 2628 2957 3 2586 2629 2958 3 2586 2629 2958 3 2586 2629 2958 3 2586 2629 2958 3 2586 2629 2958 3 2586 2629 2958 3 2587 2630 2960 3 2587 2630 2960 3 2587 2630 2960 3 2587 2630 2960 3 2587 2630 2960 3 2587 2630 2960 3 2588 2631 2961 3 2588 2631 2961 3 2588 2631 2961 3 2588 2631 2961 3 2588 2631 2961 3 2588 2631 2961 3 2589 2632 2962 3 2589 2632 2962 3 2589 2632 2962 3 2589 2632 2962 3 2589 2632 2962 3 2589 2632 2962 3 2590 2633 2963 3 2590 2633 2963 3 2590 2633 2963 3 2590 2633 2963 3 2590 2633 2963 3 2590 2633 2963 3 2591 2634 2964 3 2591 2634 2964 3 2591 2634 2964 3 2591 2634 2964 3 2591 2634 2964 3 2591 2634 2964 3 2592 2635 2965 3 2592 2635 2965 3 2592 2635 2965 3 2592 2635 2965 3 2592 2635 2965 3 2592 2635 2965 3 2593 2636 2966 3 2593 2636 2966 3 2593 2636 2966 3 2593 2636 2966 3 2593 2636 2966 3 2593 2636 2966 3 2594 2637 2967 3 2594 2637 2967 3 2594 2637 2967 3 2594 2637 2967 3 2594 2637 2967 3 2594 2637 2967 3 2595 2638 2968 3 2595 2638 2968 3 2595 2638 2968 3 2595 2638 2968 3 2595 2638 2968 3 2595 2638 2968 3 2596 2639 2969 3 2596 2639 2969 3 2596 2639 2969 3 2596 2639 2969 3 2596 2639 2969 3 2596 2639 2969 3 2597 2640 2970 3 2597 2640 2970 3 2597 2640 2970 3 2597 2640 2970 3 2597 2640 2970 3 2597 2640 2970 3 2598 2641 2971 3 2598 2641 2971 3 2598 2641 2971 3 2598 2641 2971 3 2598 2641 2971 3 2598 2641 2971 3 2599 2642 2972 3 2599 2642 2972 3 2599 2642 2972 3 2599 2642 2972 3 2599 2642 2972 3 2599 2642 2972 3 2600 2643 2973 3 2600 2643 2973 3 2600 2643 2973 3 2600 2643 2973 3 2600 2643 2973 3 2600 2643 2973 3 2601 2644 2974 3 2601 2644 2974 3 2601 2644 2974 3 2601 2644 2974 3 2601 2644 2974 3 2601 2644 2974 3 2602 2645 2975 3 2602 2645 2975 3 2602 2645 2975 3 2602 2645 2975 3 2602 2645 2975 3 2602 2645 2975 3 2603 2646 2976 3 2603 2646 2976 3 2603 2646 2976 3 2603 2646 2976 3 2603 2646 2976 3 2603 2646 2976 3 2604 2647 2977 3 2604 2647 2977 3 2604 2647 2977 3 2604 2647 2977 3 2604 2647 2977 3 2604 2647 2977 3 2605 2648 2978 3 2605 2648 2978 3 2605 2648 2978 3 2605 2648 2978 3 2605 2648 2978 3 2605 2648 2978 3 2606 2649 2979 3 2606 2649 2979 3 2606 2649 2979 3 2606 2649 2979 3 2606 2649 2979 3 2606 2649 2979 3 2607 2650 2980 3 2607 2650 2980 3 2607 2650 2980 3 2607 2650 2980 3 2607 2650 2980 3 2607 2650 2980 3 2608 2651 2981 3 2608 2651 2981 3 2608 2651 2981 3 2608 2651 2981 3 2608 2651 2981 3 2608 2651 2981 3 2609 2652 2982 3 2609 2652 2982 3 2609 2652 2982 3 2609 2652 2982 3 2609 2652 2982 3 2609 2652 2982 3 2610 2653 2983 3 2610 2653 2983 3 2610 2653 2983 3 2610 2653 2983 3 2610 2653 2983 3 2610 2653 2983 3 2611 2654 2984 3 2611 2654 2984 3 2611 2654 2984 3 2611 2654 2984 3 2611 2654 2984 3 2611 2654 2984 3 2612 2655 2985 3 2612 2655 2985 3 2612 2655 2985 3 2612 2655 2985 3 2612 2655 2985 3 2612 2655 2985 3 2613 2656 2986 3 2613 2656 2986 3 2613 2656 2986 3 2613 2656 2986 3 2613 2656 2986 3 2613 2656 2986 3 2614 2657 2988 3 2614 2657 2988 3 2614 2657 2988 3 2614 2657 2988 3 2614 2657 2988 3 2614 2657 2988 3 2615 2658 2989 3 2615 2658 2989 3 2615 2658 2989 3 2615 2658 2989 3 2615 2658 2989 3 2615 2658 2989 3 2616 2659 2990 3 2616 2659 2990 3 2616 2659 2990 3 2616 2659 2990 3 2616 2659 2990 3 2616 2659 2990 3 2617 2660 2991 3 2617 2660 2991 3 2617 2660 2991 3 2617 2660 2991 3 2617 2660 2991 3 2617 2660 2991 3 2618 2661 2992 3 2618 2661 2992 3 2618 2661 2992 3 2618 2661 2992 3 2618 2661 2992 3 2618 2661 2992 3 2619 2662 2993 3 2619 2662 2993 3 2619 2662 2993 3 2619 2662 2993 3 2619 2662 2993 3 2619 2662 2993 3 2620 2663 2995 3 2620 2663 2995 3 2620 2663 2995 3 2620 2663 2995 3 2620 2663 2995 3 2620 2663 2995 3 2621 2664 2997 3 2621 2664 2997 3 2621 2664 2997 3 2621 2664 2997 3 2621 2664 2997 3 2621 2664 2997 3 2622 2665 2998 3 2622 2665 2998 3 2622 2665 2998 3 2622 2665 2998 3 2622 2665 2998 3 2622 2665 2998 3 2623 2666 3000 3 2623 2666 3000 3 2623 2666 3000 3 2623 2666 3000 3 2623 2666 3000 3 2623 2666 3000 3 2624 2667 3001 3 2624 2667 3001 3 2624 2667 3001 3 2624 2667 3001 3 2624 2667 3001 3 2624 2667 3001 3 2625 2668 3003 3 2625 2668 3003 3 2625 2668 3003 3 2625 2668 3003 3 2625 2668 3003 3 2625 2668 3003 8 2626 2669 3004 3131 3132 3192 3198 3225 8 2626 2669 3004 3131 3132 3192 3198 3225 8 2626 2669 3004 3131 3132 3192 3198 3225 8 2626 2669 3004 3131 3132 3192 3198 3225 8 2626 2669 3004 3131 3132 3192 3198 3225 8 2626 2669 3004 3131 3132 3192 3198 3225 3 2626 2669 3004 3 2626 2669 3004 3 2626 2669 3004 3 2626 2669 3004 3 2626 2669 3004 3 2626 2669 3004 3 2626 3131 3192 3 2626 3131 3192 3 2626 3131 3192 3 2626 3131 3192 3 2626 3131 3192 3 2626 3131 3192 3 2627 2670 2756 3 2627 2670 2756 3 2627 2670 2756 3 2627 2670 2756 3 2627 2670 2756 3 2627 2670 2756 3 2627 3314 3358 3 2627 3314 3358 3 2627 3314 3358 3 2627 3314 3358 3 2627 3314 3358 3 2627 3314 3358 3 2628 2671 2900 3 2628 2671 2900 3 2628 2671 2900 3 2628 2671 2900 3 2628 2671 2900 3 2628 2671 2900 3 2629 2672 2901 3 2629 2672 2901 3 2629 2672 2901 3 2629 2672 2901 3 2629 2672 2901 3 2629 2672 2901 3 2630 2673 2903 3 2630 2673 2903 3 2630 2673 2903 3 2630 2673 2903 3 2630 2673 2903 3 2630 2673 2903 3 2631 2674 2904 3 2631 2674 2904 3 2631 2674 2904 3 2631 2674 2904 3 2631 2674 2904 3 2631 2674 2904 3 2632 2675 2905 3 2632 2675 2905 3 2632 2675 2905 3 2632 2675 2905 3 2632 2675 2905 3 2632 2675 2905 3 2633 2676 2907 3 2633 2676 2907 3 2633 2676 2907 3 2633 2676 2907 3 2633 2676 2907 3 2633 2676 2907 3 2634 2677 2908 3 2634 2677 2908 3 2634 2677 2908 3 2634 2677 2908 3 2634 2677 2908 3 2634 2677 2908 3 2635 2678 2909 3 2635 2678 2909 3 2635 2678 2909 3 2635 2678 2909 3 2635 2678 2909 3 2635 2678 2909 3 2636 2679 2911 3 2636 2679 2911 3 2636 2679 2911 3 2636 2679 2911 3 2636 2679 2911 3 2636 2679 2911 3 2637 2680 2912 3 2637 2680 2912 3 2637 2680 2912 3 2637 2680 2912 3 2637 2680 2912 3 2637 2680 2912 3 2638 2681 2913 3 2638 2681 2913 3 2638 2681 2913 3 2638 2681 2913 3 2638 2681 2913 3 2638 2681 2913 3 2639 2682 2915 3 2639 2682 2915 3 2639 2682 2915 3 2639 2682 2915 3 2639 2682 2915 3 2639 2682 2915 3 2640 2683 2916 3 2640 2683 2916 3 2640 2683 2916 3 2640 2683 2916 3 2640 2683 2916 3 2640 2683 2916 3 2641 2684 2917 3 2641 2684 2917 3 2641 2684 2917 3 2641 2684 2917 3 2641 2684 2917 3 2641 2684 2917 3 2642 2685 2919 3 2642 2685 2919 3 2642 2685 2919 3 2642 2685 2919 3 2642 2685 2919 3 2642 2685 2919 3 2643 2686 2920 3 2643 2686 2920 3 2643 2686 2920 3 2643 2686 2920 3 2643 2686 2920 3 2643 2686 2920 3 2644 2687 2921 3 2644 2687 2921 3 2644 2687 2921 3 2644 2687 2921 3 2644 2687 2921 3 2644 2687 2921 3 2645 2688 2923 3 2645 2688 2923 3 2645 2688 2923 3 2645 2688 2923 3 2645 2688 2923 3 2645 2688 2923 3 2646 2689 2924 3 2646 2689 2924 3 2646 2689 2924 3 2646 2689 2924 3 2646 2689 2924 3 2646 2689 2924 3 2647 2690 2925 3 2647 2690 2925 3 2647 2690 2925 3 2647 2690 2925 3 2647 2690 2925 3 2647 2690 2925 3 2648 2691 2927 3 2648 2691 2927 3 2648 2691 2927 3 2648 2691 2927 3 2648 2691 2927 3 2648 2691 2927 3 2649 2692 2928 3 2649 2692 2928 3 2649 2692 2928 3 2649 2692 2928 3 2649 2692 2928 3 2649 2692 2928 3 2650 2693 2929 3 2650 2693 2929 3 2650 2693 2929 3 2650 2693 2929 3 2650 2693 2929 3 2650 2693 2929 3 2651 2694 2931 3 2651 2694 2931 3 2651 2694 2931 3 2651 2694 2931 3 2651 2694 2931 3 2651 2694 2931 3 2652 2695 2932 3 2652 2695 2932 3 2652 2695 2932 3 2652 2695 2932 3 2652 2695 2932 3 2652 2695 2932 3 2653 2696 2933 3 2653 2696 2933 3 2653 2696 2933 3 2653 2696 2933 3 2653 2696 2933 3 2653 2696 2933 3 2654 2697 2935 3 2654 2697 2935 3 2654 2697 2935 3 2654 2697 2935 3 2654 2697 2935 3 2654 2697 2935 3 2655 2698 2936 3 2655 2698 2936 3 2655 2698 2936 3 2655 2698 2936 3 2655 2698 2936 3 2655 2698 2936 3 2656 2699 2937 3 2656 2699 2937 3 2656 2699 2937 3 2656 2699 2937 3 2656 2699 2937 3 2656 2699 2937 3 2657 2700 2939 3 2657 2700 2939 3 2657 2700 2939 3 2657 2700 2939 3 2657 2700 2939 3 2657 2700 2939 3 2658 2701 2940 3 2658 2701 2940 3 2658 2701 2940 3 2658 2701 2940 3 2658 2701 2940 3 2658 2701 2940 3 2659 2702 2941 3 2659 2702 2941 3 2659 2702 2941 3 2659 2702 2941 3 2659 2702 2941 3 2659 2702 2941 3 2660 2703 2943 3 2660 2703 2943 3 2660 2703 2943 3 2660 2703 2943 3 2660 2703 2943 3 2660 2703 2943 3 2661 2704 2944 3 2661 2704 2944 3 2661 2704 2944 3 2661 2704 2944 3 2661 2704 2944 3 2661 2704 2944 3 2662 2705 2945 3 2662 2705 2945 3 2662 2705 2945 3 2662 2705 2945 3 2662 2705 2945 3 2662 2705 2945 3 2663 2706 2947 3 2663 2706 2947 3 2663 2706 2947 3 2663 2706 2947 3 2663 2706 2947 3 2663 2706 2947 3 2664 2707 2949 3 2664 2707 2949 3 2664 2707 2949 3 2664 2707 2949 3 2664 2707 2949 3 2664 2707 2949 3 2665 2708 2950 3 2665 2708 2950 3 2665 2708 2950 3 2665 2708 2950 3 2665 2708 2950 3 2665 2708 2950 3 2666 2709 2952 3 2666 2709 2952 3 2666 2709 2952 3 2666 2709 2952 3 2666 2709 2952 3 2666 2709 2952 3 2667 2710 2953 3 2667 2710 2953 3 2667 2710 2953 3 2667 2710 2953 3 2667 2710 2953 3 2667 2710 2953 3 2668 2711 2955 3 2668 2711 2955 3 2668 2711 2955 3 2668 2711 2955 3 2668 2711 2955 3 2668 2711 2955 3 2669 2712 2759 3 2669 2712 2759 3 2669 2712 2759 3 2669 2712 2759 3 2669 2712 2759 3 2669 2712 2759 3 2669 3132 3198 3 2669 3132 3198 3 2669 3132 3198 3 2669 3132 3198 3 2669 3132 3198 3 2669 3132 3198 3 2670 2713 2757 3 2670 2713 2757 3 2670 2713 2757 3 2670 2713 2757 3 2670 2713 2757 3 2670 2713 2757 3 2671 2714 2818 3 2671 2714 2818 3 2671 2714 2818 3 2671 2714 2818 3 2671 2714 2818 3 2671 2714 2818 3 2672 2715 2820 3 2672 2715 2820 3 2672 2715 2820 3 2672 2715 2820 3 2672 2715 2820 3 2672 2715 2820 3 2673 2716 2822 3 2673 2716 2822 3 2673 2716 2822 3 2673 2716 2822 3 2673 2716 2822 3 2673 2716 2822 3 2674 2717 2824 3 2674 2717 2824 3 2674 2717 2824 3 2674 2717 2824 3 2674 2717 2824 3 2674 2717 2824 3 2675 2718 2826 3 2675 2718 2826 3 2675 2718 2826 3 2675 2718 2826 3 2675 2718 2826 3 2675 2718 2826 3 2676 2719 2828 3 2676 2719 2828 3 2676 2719 2828 3 2676 2719 2828 3 2676 2719 2828 3 2676 2719 2828 3 2677 2720 2830 3 2677 2720 2830 3 2677 2720 2830 3 2677 2720 2830 3 2677 2720 2830 3 2677 2720 2830 3 2678 2721 2832 3 2678 2721 2832 3 2678 2721 2832 3 2678 2721 2832 3 2678 2721 2832 3 2678 2721 2832 3 2679 2722 2834 3 2679 2722 2834 3 2679 2722 2834 3 2679 2722 2834 3 2679 2722 2834 3 2679 2722 2834 3 2680 2723 2836 3 2680 2723 2836 3 2680 2723 2836 3 2680 2723 2836 3 2680 2723 2836 3 2680 2723 2836 3 2681 2724 2838 3 2681 2724 2838 3 2681 2724 2838 3 2681 2724 2838 3 2681 2724 2838 3 2681 2724 2838 3 2682 2725 2840 3 2682 2725 2840 3 2682 2725 2840 3 2682 2725 2840 3 2682 2725 2840 3 2682 2725 2840 3 2683 2726 2842 3 2683 2726 2842 3 2683 2726 2842 3 2683 2726 2842 3 2683 2726 2842 3 2683 2726 2842 3 2684 2727 2844 3 2684 2727 2844 3 2684 2727 2844 3 2684 2727 2844 3 2684 2727 2844 3 2684 2727 2844 3 2685 2728 2846 3 2685 2728 2846 3 2685 2728 2846 3 2685 2728 2846 3 2685 2728 2846 3 2685 2728 2846 3 2686 2729 2848 3 2686 2729 2848 3 2686 2729 2848 3 2686 2729 2848 3 2686 2729 2848 3 2686 2729 2848 3 2687 2730 2850 3 2687 2730 2850 3 2687 2730 2850 3 2687 2730 2850 3 2687 2730 2850 3 2687 2730 2850 3 2688 2731 2852 3 2688 2731 2852 3 2688 2731 2852 3 2688 2731 2852 3 2688 2731 2852 3 2688 2731 2852 3 2689 2732 2854 3 2689 2732 2854 3 2689 2732 2854 3 2689 2732 2854 3 2689 2732 2854 3 2689 2732 2854 3 2690 2733 2856 3 2690 2733 2856 3 2690 2733 2856 3 2690 2733 2856 3 2690 2733 2856 3 2690 2733 2856 3 2691 2734 2858 3 2691 2734 2858 3 2691 2734 2858 3 2691 2734 2858 3 2691 2734 2858 3 2691 2734 2858 3 2692 2735 2860 3 2692 2735 2860 3 2692 2735 2860 3 2692 2735 2860 3 2692 2735 2860 3 2692 2735 2860 3 2693 2736 2862 3 2693 2736 2862 3 2693 2736 2862 3 2693 2736 2862 3 2693 2736 2862 3 2693 2736 2862 3 2694 2737 2864 3 2694 2737 2864 3 2694 2737 2864 3 2694 2737 2864 3 2694 2737 2864 3 2694 2737 2864 3 2695 2738 2866 3 2695 2738 2866 3 2695 2738 2866 3 2695 2738 2866 3 2695 2738 2866 3 2695 2738 2866 3 2696 2739 2868 3 2696 2739 2868 3 2696 2739 2868 3 2696 2739 2868 3 2696 2739 2868 3 2696 2739 2868 3 2697 2740 2870 3 2697 2740 2870 3 2697 2740 2870 3 2697 2740 2870 3 2697 2740 2870 3 2697 2740 2870 3 2698 2741 2872 3 2698 2741 2872 3 2698 2741 2872 3 2698 2741 2872 3 2698 2741 2872 3 2698 2741 2872 3 2699 2742 2874 3 2699 2742 2874 3 2699 2742 2874 3 2699 2742 2874 3 2699 2742 2874 3 2699 2742 2874 3 2700 2743 2876 3 2700 2743 2876 3 2700 2743 2876 3 2700 2743 2876 3 2700 2743 2876 3 2700 2743 2876 3 2701 2744 2878 3 2701 2744 2878 3 2701 2744 2878 3 2701 2744 2878 3 2701 2744 2878 3 2701 2744 2878 3 2702 2745 2880 3 2702 2745 2880 3 2702 2745 2880 3 2702 2745 2880 3 2702 2745 2880 3 2702 2745 2880 3 2703 2746 2882 3 2703 2746 2882 3 2703 2746 2882 3 2703 2746 2882 3 2703 2746 2882 3 2703 2746 2882 3 2704 2747 2884 3 2704 2747 2884 3 2704 2747 2884 3 2704 2747 2884 3 2704 2747 2884 3 2704 2747 2884 3 2705 2748 2886 3 2705 2748 2886 3 2705 2748 2886 3 2705 2748 2886 3 2705 2748 2886 3 2705 2748 2886 3 2706 2749 2888 3 2706 2749 2888 3 2706 2749 2888 3 2706 2749 2888 3 2706 2749 2888 3 2706 2749 2888 3 2707 2750 2890 3 2707 2750 2890 3 2707 2750 2890 3 2707 2750 2890 3 2707 2750 2890 3 2707 2750 2890 3 2708 2751 2892 3 2708 2751 2892 3 2708 2751 2892 3 2708 2751 2892 3 2708 2751 2892 3 2708 2751 2892 3 2709 2752 2894 3 2709 2752 2894 3 2709 2752 2894 3 2709 2752 2894 3 2709 2752 2894 3 2709 2752 2894 3 2710 2753 2896 3 2710 2753 2896 3 2710 2753 2896 3 2710 2753 2896 3 2710 2753 2896 3 2710 2753 2896 3 2711 2754 2898 3 2711 2754 2898 3 2711 2754 2898 3 2711 2754 2898 3 2711 2754 2898 3 2711 2754 2898 3 2712 2755 2760 3 2712 2755 2760 3 2712 2755 2760 3 2712 2755 2760 3 2712 2755 2760 3 2712 2755 2760 4 2758 3316 3317 3382 4 2758 3316 3317 3382 4 2758 3316 3317 3382 4 2758 3316 3317 3382 4 2758 3316 3317 3382 4 2758 3316 3317 3382 3 2761 3133 3218 3 2761 3133 3218 3 2761 3133 3218 3 2761 3133 3218 3 2761 3133 3218 3 2761 3133 3218 1 2773 1 2773 1 2773 1 2773 1 2773 1 2773 1 2774 1 2774 1 2774 1 2774 1 2774 1 2774 3 2775 3317 3376 3 2775 3317 3376 3 2775 3317 3376 3 2775 3317 3376 3 2775 3317 3376 3 2775 3317 3376 3 2817 3133 3214 3 2817 3133 3214 3 2817 3133 3214 3 2817 3133 3214 3 2817 3133 3214 3 2817 3133 3214 1 2946 1 2946 1 2946 1 2946 1 2946 1 2946 2 2946 2948 2 2946 2948 2 2946 2948 2 2946 2948 2 2946 2948 2 2946 2948 2 2948 2951 2 2948 2951 2 2948 2951 2 2948 2951 2 2948 2951 2 2948 2951 1 2951 1 2951 1 2951 1 2951 1 2951 1 2951 2 2951 2954 2 2951 2954 2 2951 2954 2 2951 2954 2 2951 2954 2 2951 2954 1 2954 1 2954 1 2954 1 2954 1 2954 1 2954 4 2956 3312 3314 3396 4 2956 3312 3314 3396 4 2956 3312 3314 3396 4 2956 3312 3314 3396 4 2956 3312 3314 3396 4 2956 3312 3314 3396 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 1 2994 2 2994 2996 2 2994 2996 2 2994 2996 2 2994 2996 2 2994 2996 2 2994 2996 2 2996 2999 2 2996 2999 2 2996 2999 2 2996 2999 2 2996 2999 2 2996 2999 1 2999 1 2999 1 2999 1 2999 1 2999 1 2999 2 2999 3002 2 2999 3002 2 2999 3002 2 2999 3002 2 2999 3002 2 2999 3002 1 3002 1 3002 1 3002 1 3002 1 3002 1 3002 4 3004 3131 3132 3225 4 3004 3131 3132 3225 4 3004 3131 3132 3225 4 3004 3131 3132 3225 4 3004 3131 3132 3225 4 3004 3131 3132 3225 4 3005 3310 3312 3407 4 3005 3310 3312 3407 4 3005 3310 3312 3407 4 3005 3310 3312 3407 4 3005 3310 3312 3407 4 3005 3310 3312 3407 1 3052 1 3052 1 3052 1 3052 1 3052 1 3052 2 3052 3054 2 3052 3054 2 3052 3054 2 3052 3054 2 3052 3054 2 3052 3054 2 3054 3057 2 3054 3057 2 3054 3057 2 3054 3057 2 3054 3057 2 3054 3057 1 3057 1 3057 1 3057 1 3057 1 3057 1 3057 2 3057 3060 2 3057 3060 2 3057 3060 2 3057 3060 2 3057 3060 2 3057 3060 1 3060 1 3060 1 3060 1 3060 1 3060 1 3060 4 3062 3130 3131 3234 4 3062 3130 3131 3234 4 3062 3130 3131 3234 4 3062 3130 3131 3234 4 3062 3130 3131 3234 4 3062 3130 3131 3234 4 3063 3308 3310 3418 4 3063 3308 3310 3418 4 3063 3308 3310 3418 4 3063 3308 3310 3418 4 3063 3308 3310 3418 4 3063 3308 3310 3418 1 3110 1 3110 1 3110 1 3110 1 3110 1 3110 2 3110 3112 2 3110 3112 2 3110 3112 2 3110 3112 2 3110 3112 2 3110 3112 2 3112 3115 2 3112 3115 2 3112 3115 2 3112 3115 2 3112 3115 2 3112 3115 1 3115 1 3115 1 3115 1 3115 1 3115 1 3115 2 3115 3118 2 3115 3118 2 3115 3118 2 3115 3118 2 3115 3118 2 3115 3118 1 3118 1 3118 1 3118 1 3118 1 3118 1 3118 3 3120 3130 3243 3 3120 3130 3243 3 3120 3130 3243 3 3120 3130 3243 3 3120 3130 3243 3 3120 3130 3243 2 3121 3212 2 3121 3212 2 3121 3212 2 3121 3212 2 3121 3212 2 3121 3212 3 3121 3125 3126 3 3121 3125 3126 3 3121 3125 3126 3 3121 3125 3126 3 3121 3125 3126 3 3121 3125 3126 10 3121 3125 3126 3134 3135 3164 3165 3243 3244 3245 10 3121 3125 3126 3134 3135 3164 3165 3243 3244 3245 10 3121 3125 3126 3134 3135 3164 3165 3243 3244 3245 10 3121 3125 3126 3134 3135 3164 3165 3243 3244 3245 10 3121 3125 3126 3134 3135 3164 3165 3243 3244 3245 10 3121 3125 3126 3134 3135 3164 3165 3243 3244 3245 3 3121 3135 3245 3 3121 3135 3245 3 3121 3135 3245 3 3121 3135 3245 3 3121 3135 3245 3 3121 3135 3245 2 3122 3212 2 3122 3212 2 3122 3212 2 3122 3212 2 3122 3212 2 3122 3212 3 3122 3126 3127 3 3122 3126 3127 3 3122 3126 3127 3 3122 3126 3127 3 3122 3126 3127 3 3122 3126 3127 10 3122 3126 3127 3142 3143 3165 3166 3244 3245 3246 10 3122 3126 3127 3142 3143 3165 3166 3244 3245 3246 10 3122 3126 3127 3142 3143 3165 3166 3244 3245 3246 10 3122 3126 3127 3142 3143 3165 3166 3244 3245 3246 10 3122 3126 3127 3142 3143 3165 3166 3244 3245 3246 10 3122 3126 3127 3142 3143 3165 3166 3244 3245 3246 3 3122 3143 3245 3 3122 3143 3245 3 3122 3143 3245 3 3122 3143 3245 3 3122 3143 3245 3 3122 3143 3245 2 3123 3213 2 3123 3213 2 3123 3213 2 3123 3213 2 3123 3213 2 3123 3213 3 3123 3128 3129 3 3123 3128 3129 3 3123 3128 3129 3 3123 3128 3129 3 3123 3128 3129 3 3123 3128 3129 10 3123 3128 3129 3152 3153 3167 3168 3247 3248 3249 10 3123 3128 3129 3152 3153 3167 3168 3247 3248 3249 10 3123 3128 3129 3152 3153 3167 3168 3247 3248 3249 10 3123 3128 3129 3152 3153 3167 3168 3247 3248 3249 10 3123 3128 3129 3152 3153 3167 3168 3247 3248 3249 10 3123 3128 3129 3152 3153 3167 3168 3247 3248 3249 3 3123 3153 3249 3 3123 3153 3249 3 3123 3153 3249 3 3123 3153 3249 3 3123 3153 3249 3 3123 3153 3249 2 3124 3213 2 3124 3213 2 3124 3213 2 3124 3213 2 3124 3213 2 3124 3213 10 3124 3129 3158 3159 3168 3169 3248 3249 3250 3251 10 3124 3129 3158 3159 3168 3169 3248 3249 3250 3251 10 3124 3129 3158 3159 3168 3169 3248 3249 3250 3251 10 3124 3129 3158 3159 3168 3169 3248 3249 3250 3251 10 3124 3129 3158 3159 3168 3169 3248 3249 3250 3251 10 3124 3129 3158 3159 3168 3169 3248 3249 3250 3251 2 3124 3129 2 3124 3129 2 3124 3129 2 3124 3129 2 3124 3129 2 3124 3129 4 3124 3159 3249 3251 4 3124 3159 3249 3251 4 3124 3159 3249 3251 4 3124 3159 3249 3251 4 3124 3159 3249 3251 4 3124 3159 3249 3251 3 3125 3164 3243 3 3125 3164 3243 3 3125 3164 3243 3 3125 3164 3243 3 3125 3164 3243 3 3125 3164 3243 4 3126 3165 3244 3245 4 3126 3165 3244 3245 4 3126 3165 3244 3245 4 3126 3165 3244 3245 4 3126 3165 3244 3245 4 3126 3165 3244 3245 2 3127 3128 2 3127 3128 2 3127 3128 2 3127 3128 2 3127 3128 2 3127 3128 7 3127 3128 3148 3166 3167 3246 3247 7 3127 3128 3148 3166 3167 3246 3247 7 3127 3128 3148 3166 3167 3246 3247 7 3127 3128 3148 3166 3167 3246 3247 7 3127 3128 3148 3166 3167 3246 3247 7 3127 3128 3148 3166 3167 3246 3247 3 3127 3166 3246 3 3127 3166 3246 3 3127 3166 3246 3 3127 3166 3246 3 3127 3166 3246 3 3127 3166 3246 3 3128 3167 3247 3 3128 3167 3247 3 3128 3167 3247 3 3128 3167 3247 3 3128 3167 3247 3 3128 3167 3247 4 3129 3168 3248 3249 4 3129 3168 3248 3249 4 3129 3168 3248 3249 4 3129 3168 3248 3249 4 3129 3168 3248 3249 4 3129 3168 3248 3249 11 3134 3135 3136 3137 3164 3165 3170 3171 3234 3235 3236 11 3134 3135 3136 3137 3164 3165 3170 3171 3234 3235 3236 11 3134 3135 3136 3137 3164 3165 3170 3171 3234 3235 3236 11 3134 3135 3136 3137 3164 3165 3170 3171 3234 3235 3236 11 3134 3135 3136 3137 3164 3165 3170 3171 3234 3235 3236 11 3134 3135 3136 3137 3164 3165 3170 3171 3234 3235 3236 4 3134 3136 3234 3235 4 3134 3136 3234 3235 4 3134 3136 3234 3235 4 3134 3136 3234 3235 4 3134 3136 3234 3235 4 3134 3136 3234 3235 8 3134 3136 3186 3187 3192 3193 3234 3235 8 3134 3136 3186 3187 3192 3193 3234 3235 8 3134 3136 3186 3187 3192 3193 3234 3235 8 3134 3136 3186 3187 3192 3193 3234 3235 8 3134 3136 3186 3187 3192 3193 3234 3235 8 3134 3136 3186 3187 3192 3193 3234 3235 5 3134 3186 3187 3243 3244 5 3134 3186 3187 3243 3244 5 3134 3186 3187 3243 3244 5 3134 3186 3187 3243 3244 5 3134 3186 3187 3243 3244 5 3134 3186 3187 3243 3244 3 3134 3186 3187 3 3134 3186 3187 3 3134 3186 3187 3 3134 3186 3187 3 3134 3186 3187 3 3134 3186 3187 3 3134 3243 3244 3 3134 3243 3244 3 3134 3243 3244 3 3134 3243 3244 3 3134 3243 3244 3 3134 3243 3244 4 3134 3135 3164 3165 4 3134 3135 3164 3165 4 3134 3135 3164 3165 4 3134 3135 3164 3165 4 3134 3135 3164 3165 4 3134 3135 3164 3165 3 3135 3137 3236 3 3135 3137 3236 3 3135 3137 3236 3 3135 3137 3236 3 3135 3137 3236 3 3135 3137 3236 10 3136 3137 3138 3139 3170 3171 3176 3177 3225 3226 10 3136 3137 3138 3139 3170 3171 3176 3177 3225 3226 10 3136 3137 3138 3139 3170 3171 3176 3177 3225 3226 10 3136 3137 3138 3139 3170 3171 3176 3177 3225 3226 10 3136 3137 3138 3139 3170 3171 3176 3177 3225 3226 10 3136 3137 3138 3139 3170 3171 3176 3177 3225 3226 4 3136 3138 3225 3226 4 3136 3138 3225 3226 4 3136 3138 3225 3226 4 3136 3138 3225 3226 4 3136 3138 3225 3226 4 3136 3138 3225 3226 8 3136 3138 3192 3193 3198 3199 3225 3226 8 3136 3138 3192 3193 3198 3199 3225 3226 8 3136 3138 3192 3193 3198 3199 3225 3226 8 3136 3138 3192 3193 3198 3199 3225 3226 8 3136 3138 3192 3193 3198 3199 3225 3226 8 3136 3138 3192 3193 3198 3199 3225 3226 3 3136 3192 3193 3 3136 3192 3193 3 3136 3192 3193 3 3136 3192 3193 3 3136 3192 3193 3 3136 3192 3193 4 3136 3137 3170 3171 4 3136 3137 3170 3171 4 3136 3137 3170 3171 4 3136 3137 3170 3171 4 3136 3137 3170 3171 4 3136 3137 3170 3171 2 3137 3139 2 3137 3139 2 3137 3139 2 3137 3139 2 3137 3139 2 3137 3139 3 3138 3198 3199 3 3138 3198 3199 3 3138 3198 3199 3 3138 3198 3199 3 3138 3198 3199 3 3138 3198 3199 10 3138 3139 3140 3176 3177 3198 3199 3204 3205 3222 10 3138 3139 3140 3176 3177 3198 3199 3204 3205 3222 10 3138 3139 3140 3176 3177 3198 3199 3204 3205 3222 10 3138 3139 3140 3176 3177 3198 3199 3204 3205 3222 10 3138 3139 3140 3176 3177 3198 3199 3204 3205 3222 10 3138 3139 3140 3176 3177 3198 3199 3204 3205 3222 4 3138 3139 3176 3177 4 3138 3139 3176 3177 4 3138 3139 3176 3177 4 3138 3139 3176 3177 4 3138 3139 3176 3177 4 3138 3139 3176 3177 3 3139 3140 3222 3 3139 3140 3222 3 3139 3140 3222 3 3139 3140 3222 3 3139 3140 3222 3 3139 3140 3222 4 3140 3141 3218 3219 4 3140 3141 3218 3219 4 3140 3141 3218 3219 4 3140 3141 3218 3219 4 3140 3141 3218 3219 4 3140 3141 3218 3219 8 3140 3141 3204 3205 3208 3209 3218 3219 8 3140 3141 3204 3205 3208 3209 3218 3219 8 3140 3141 3204 3205 3208 3209 3218 3219 8 3140 3141 3204 3205 3208 3209 3218 3219 8 3140 3141 3204 3205 3208 3209 3218 3219 8 3140 3141 3204 3205 3208 3209 3218 3219 3 3140 3204 3205 3 3140 3204 3205 3 3140 3204 3205 3 3140 3204 3205 3 3140 3204 3205 3 3140 3204 3205 3 3141 3214 3215 3 3141 3214 3215 3 3141 3214 3215 3 3141 3214 3215 3 3141 3214 3215 3 3141 3214 3215 5 3141 3208 3209 3214 3215 5 3141 3208 3209 3214 3215 5 3141 3208 3209 3214 3215 5 3141 3208 3209 3214 3215 5 3141 3208 3209 3214 3215 5 3141 3208 3209 3214 3215 3 3141 3208 3209 3 3141 3208 3209 3 3141 3208 3209 3 3141 3208 3209 3 3141 3208 3209 3 3141 3208 3209 10 3142 3143 3144 3165 3166 3171 3172 3235 3236 3237 10 3142 3143 3144 3165 3166 3171 3172 3235 3236 3237 10 3142 3143 3144 3165 3166 3171 3172 3235 3236 3237 10 3142 3143 3144 3165 3166 3171 3172 3235 3236 3237 10 3142 3143 3144 3165 3166 3171 3172 3235 3236 3237 10 3142 3143 3144 3165 3166 3171 3172 3235 3236 3237 4 3142 3144 3235 3237 4 3142 3144 3235 3237 4 3142 3144 3235 3237 4 3142 3144 3235 3237 4 3142 3144 3235 3237 4 3142 3144 3235 3237 8 3142 3144 3187 3188 3193 3194 3235 3237 8 3142 3144 3187 3188 3193 3194 3235 3237 8 3142 3144 3187 3188 3193 3194 3235 3237 8 3142 3144 3187 3188 3193 3194 3235 3237 8 3142 3144 3187 3188 3193 3194 3235 3237 8 3142 3144 3187 3188 3193 3194 3235 3237 5 3142 3187 3188 3244 3246 5 3142 3187 3188 3244 3246 5 3142 3187 3188 3244 3246 5 3142 3187 3188 3244 3246 5 3142 3187 3188 3244 3246 5 3142 3187 3188 3244 3246 3 3142 3187 3188 3 3142 3187 3188 3 3142 3187 3188 3 3142 3187 3188 3 3142 3187 3188 3 3142 3187 3188 3 3142 3244 3246 3 3142 3244 3246 3 3142 3244 3246 3 3142 3244 3246 3 3142 3244 3246 3 3142 3244 3246 4 3142 3143 3165 3166 4 3142 3143 3165 3166 4 3142 3143 3165 3166 4 3142 3143 3165 3166 4 3142 3143 3165 3166 4 3142 3143 3165 3166 2 3143 3236 2 3143 3236 2 3143 3236 2 3143 3236 2 3143 3236 2 3143 3236 8 3144 3145 3171 3172 3177 3178 3226 3227 8 3144 3145 3171 3172 3177 3178 3226 3227 8 3144 3145 3171 3172 3177 3178 3226 3227 8 3144 3145 3171 3172 3177 3178 3226 3227 8 3144 3145 3171 3172 3177 3178 3226 3227 8 3144 3145 3171 3172 3177 3178 3226 3227 4 3144 3145 3226 3227 4 3144 3145 3226 3227 4 3144 3145 3226 3227 4 3144 3145 3226 3227 4 3144 3145 3226 3227 4 3144 3145 3226 3227 8 3144 3145 3193 3194 3199 3200 3226 3227 8 3144 3145 3193 3194 3199 3200 3226 3227 8 3144 3145 3193 3194 3199 3200 3226 3227 8 3144 3145 3193 3194 3199 3200 3226 3227 8 3144 3145 3193 3194 3199 3200 3226 3227 8 3144 3145 3193 3194 3199 3200 3226 3227 3 3144 3193 3194 3 3144 3193 3194 3 3144 3193 3194 3 3144 3193 3194 3 3144 3193 3194 3 3144 3193 3194 3 3144 3171 3172 3 3144 3171 3172 3 3144 3171 3172 3 3144 3171 3172 3 3144 3171 3172 3 3144 3171 3172 3 3145 3199 3200 3 3145 3199 3200 3 3145 3199 3200 3 3145 3199 3200 3 3145 3199 3200 3 3145 3199 3200 9 3145 3146 3177 3178 3199 3200 3205 3206 3222 9 3145 3146 3177 3178 3199 3200 3205 3206 3222 9 3145 3146 3177 3178 3199 3200 3205 3206 3222 9 3145 3146 3177 3178 3199 3200 3205 3206 3222 9 3145 3146 3177 3178 3199 3200 3205 3206 3222 9 3145 3146 3177 3178 3199 3200 3205 3206 3222 3 3145 3177 3178 3 3145 3177 3178 3 3145 3177 3178 3 3145 3177 3178 3 3145 3177 3178 3 3145 3177 3178 4 3146 3147 3219 3220 4 3146 3147 3219 3220 4 3146 3147 3219 3220 4 3146 3147 3219 3220 4 3146 3147 3219 3220 4 3146 3147 3219 3220 8 3146 3147 3205 3206 3209 3210 3219 3220 8 3146 3147 3205 3206 3209 3210 3219 3220 8 3146 3147 3205 3206 3209 3210 3219 3220 8 3146 3147 3205 3206 3209 3210 3219 3220 8 3146 3147 3205 3206 3209 3210 3219 3220 8 3146 3147 3205 3206 3209 3210 3219 3220 3 3146 3205 3206 3 3146 3205 3206 3 3146 3205 3206 3 3146 3205 3206 3 3146 3205 3206 3 3146 3205 3206 2 3146 3222 2 3146 3222 2 3146 3222 2 3146 3222 2 3146 3222 2 3146 3222 3 3147 3215 3216 3 3147 3215 3216 3 3147 3215 3216 3 3147 3215 3216 3 3147 3215 3216 3 3147 3215 3216 5 3147 3209 3210 3215 3216 5 3147 3209 3210 3215 3216 5 3147 3209 3210 3215 3216 5 3147 3209 3210 3215 3216 5 3147 3209 3210 3215 3216 5 3147 3209 3210 3215 3216 3 3147 3209 3210 3 3147 3209 3210 3 3147 3209 3210 3 3147 3209 3210 3 3147 3209 3210 3 3147 3209 3210 8 3148 3149 3166 3167 3172 3173 3237 3238 8 3148 3149 3166 3167 3172 3173 3237 3238 8 3148 3149 3166 3167 3172 3173 3237 3238 8 3148 3149 3166 3167 3172 3173 3237 3238 8 3148 3149 3166 3167 3172 3173 3237 3238 8 3148 3149 3166 3167 3172 3173 3237 3238 4 3148 3149 3237 3238 4 3148 3149 3237 3238 4 3148 3149 3237 3238 4 3148 3149 3237 3238 4 3148 3149 3237 3238 4 3148 3149 3237 3238 8 3148 3149 3188 3189 3194 3195 3237 3238 8 3148 3149 3188 3189 3194 3195 3237 3238 8 3148 3149 3188 3189 3194 3195 3237 3238 8 3148 3149 3188 3189 3194 3195 3237 3238 8 3148 3149 3188 3189 3194 3195 3237 3238 8 3148 3149 3188 3189 3194 3195 3237 3238 5 3148 3188 3189 3246 3247 5 3148 3188 3189 3246 3247 5 3148 3188 3189 3246 3247 5 3148 3188 3189 3246 3247 5 3148 3188 3189 3246 3247 5 3148 3188 3189 3246 3247 3 3148 3188 3189 3 3148 3188 3189 3 3148 3188 3189 3 3148 3188 3189 3 3148 3188 3189 3 3148 3188 3189 3 3148 3246 3247 3 3148 3246 3247 3 3148 3246 3247 3 3148 3246 3247 3 3148 3246 3247 3 3148 3246 3247 3 3148 3166 3167 3 3148 3166 3167 3 3148 3166 3167 3 3148 3166 3167 3 3148 3166 3167 3 3148 3166 3167 9 3149 3150 3172 3173 3178 3179 3227 3229 3233 9 3149 3150 3172 3173 3178 3179 3227 3229 3233 9 3149 3150 3172 3173 3178 3179 3227 3229 3233 9 3149 3150 3172 3173 3178 3179 3227 3229 3233 9 3149 3150 3172 3173 3178 3179 3227 3229 3233 9 3149 3150 3172 3173 3178 3179 3227 3229 3233 4 3149 3150 3227 3233 4 3149 3150 3227 3233 4 3149 3150 3227 3233 4 3149 3150 3227 3233 4 3149 3150 3227 3233 4 3149 3150 3227 3233 8 3149 3150 3194 3195 3200 3201 3227 3233 8 3149 3150 3194 3195 3200 3201 3227 3233 8 3149 3150 3194 3195 3200 3201 3227 3233 8 3149 3150 3194 3195 3200 3201 3227 3233 8 3149 3150 3194 3195 3200 3201 3227 3233 8 3149 3150 3194 3195 3200 3201 3227 3233 3 3149 3194 3195 3 3149 3194 3195 3 3149 3194 3195 3 3149 3194 3195 3 3149 3194 3195 3 3149 3194 3195 3 3149 3172 3173 3 3149 3172 3173 3 3149 3172 3173 3 3149 3172 3173 3 3149 3172 3173 3 3149 3172 3173 3 3150 3200 3201 3 3150 3200 3201 3 3150 3200 3201 3 3150 3200 3201 3 3150 3200 3201 3 3150 3200 3201 8 3150 3178 3179 3200 3201 3206 3207 3223 8 3150 3178 3179 3200 3201 3206 3207 3223 8 3150 3178 3179 3200 3201 3206 3207 3223 8 3150 3178 3179 3200 3201 3206 3207 3223 8 3150 3178 3179 3200 3201 3206 3207 3223 8 3150 3178 3179 3200 3201 3206 3207 3223 3 3150 3178 3179 3 3150 3178 3179 3 3150 3178 3179 3 3150 3178 3179 3 3150 3178 3179 3 3150 3178 3179 3 3151 3216 3217 3 3151 3216 3217 3 3151 3216 3217 3 3151 3216 3217 3 3151 3216 3217 3 3151 3216 3217 5 3151 3210 3211 3216 3217 5 3151 3210 3211 3216 3217 5 3151 3210 3211 3216 3217 5 3151 3210 3211 3216 3217 5 3151 3210 3211 3216 3217 5 3151 3210 3211 3216 3217 7 3151 3206 3207 3210 3211 3220 3221 7 3151 3206 3207 3210 3211 3220 3221 7 3151 3206 3207 3210 3211 3220 3221 7 3151 3206 3207 3210 3211 3220 3221 7 3151 3206 3207 3210 3211 3220 3221 7 3151 3206 3207 3210 3211 3220 3221 3 3151 3210 3211 3 3151 3210 3211 3 3151 3210 3211 3 3151 3210 3211 3 3151 3210 3211 3 3151 3210 3211 3 3151 3220 3221 3 3151 3220 3221 3 3151 3220 3221 3 3151 3220 3221 3 3151 3220 3221 3 3151 3220 3221 11 3152 3153 3154 3155 3167 3168 3173 3174 3238 3239 3240 11 3152 3153 3154 3155 3167 3168 3173 3174 3238 3239 3240 11 3152 3153 3154 3155 3167 3168 3173 3174 3238 3239 3240 11 3152 3153 3154 3155 3167 3168 3173 3174 3238 3239 3240 11 3152 3153 3154 3155 3167 3168 3173 3174 3238 3239 3240 11 3152 3153 3154 3155 3167 3168 3173 3174 3238 3239 3240 4 3152 3154 3238 3239 4 3152 3154 3238 3239 4 3152 3154 3238 3239 4 3152 3154 3238 3239 4 3152 3154 3238 3239 4 3152 3154 3238 3239 8 3152 3154 3189 3190 3195 3196 3238 3239 8 3152 3154 3189 3190 3195 3196 3238 3239 8 3152 3154 3189 3190 3195 3196 3238 3239 8 3152 3154 3189 3190 3195 3196 3238 3239 8 3152 3154 3189 3190 3195 3196 3238 3239 8 3152 3154 3189 3190 3195 3196 3238 3239 5 3152 3189 3190 3247 3248 5 3152 3189 3190 3247 3248 5 3152 3189 3190 3247 3248 5 3152 3189 3190 3247 3248 5 3152 3189 3190 3247 3248 5 3152 3189 3190 3247 3248 3 3152 3189 3190 3 3152 3189 3190 3 3152 3189 3190 3 3152 3189 3190 3 3152 3189 3190 3 3152 3189 3190 3 3152 3247 3248 3 3152 3247 3248 3 3152 3247 3248 3 3152 3247 3248 3 3152 3247 3248 3 3152 3247 3248 4 3152 3153 3167 3168 4 3152 3153 3167 3168 4 3152 3153 3167 3168 4 3152 3153 3167 3168 4 3152 3153 3167 3168 4 3152 3153 3167 3168 3 3153 3155 3240 3 3153 3155 3240 3 3153 3155 3240 3 3153 3155 3240 3 3153 3155 3240 3 3153 3155 3240 3 3154 3195 3196 3 3154 3195 3196 3 3154 3195 3196 3 3154 3195 3196 3 3154 3195 3196 3 3154 3195 3196 14 3154 3155 3156 3173 3174 3179 3195 3196 3201 3202 3229 3231 3232 3233 14 3154 3155 3156 3173 3174 3179 3195 3196 3201 3202 3229 3231 3232 3233 14 3154 3155 3156 3173 3174 3179 3195 3196 3201 3202 3229 3231 3232 3233 14 3154 3155 3156 3173 3174 3179 3195 3196 3201 3202 3229 3231 3232 3233 14 3154 3155 3156 3173 3174 3179 3195 3196 3201 3202 3229 3231 3232 3233 14 3154 3155 3156 3173 3174 3179 3195 3196 3201 3202 3229 3231 3232 3233 4 3154 3155 3173 3174 4 3154 3155 3173 3174 4 3154 3155 3173 3174 4 3154 3155 3173 3174 4 3154 3155 3173 3174 4 3154 3155 3173 3174 4 3155 3156 3229 3231 4 3155 3156 3229 3231 4 3155 3156 3229 3231 4 3155 3156 3229 3231 4 3155 3156 3229 3231 4 3155 3156 3229 3231 4 3156 3179 3201 3202 4 3156 3179 3201 3202 4 3156 3179 3201 3202 4 3156 3179 3201 3202 4 3156 3179 3201 3202 4 3156 3179 3201 3202 9 3156 3157 3179 3180 3201 3202 3207 3223 3224 9 3156 3157 3179 3180 3201 3202 3207 3223 3224 9 3156 3157 3179 3180 3201 3202 3207 3223 3224 9 3156 3157 3179 3180 3201 3202 3207 3223 3224 9 3156 3157 3179 3180 3201 3202 3207 3223 3224 9 3156 3157 3179 3180 3201 3202 3207 3223 3224 2 3156 3157 2 3156 3157 2 3156 3157 2 3156 3157 2 3156 3157 2 3156 3157 4 3157 3180 3223 3224 4 3157 3180 3223 3224 4 3157 3180 3223 3224 4 3157 3180 3223 3224 4 3157 3180 3223 3224 4 3157 3180 3223 3224 13 3158 3159 3160 3161 3162 3168 3169 3174 3175 3239 3240 3241 3242 13 3158 3159 3160 3161 3162 3168 3169 3174 3175 3239 3240 3241 3242 13 3158 3159 3160 3161 3162 3168 3169 3174 3175 3239 3240 3241 3242 13 3158 3159 3160 3161 3162 3168 3169 3174 3175 3239 3240 3241 3242 13 3158 3159 3160 3161 3162 3168 3169 3174 3175 3239 3240 3241 3242 13 3158 3159 3160 3161 3162 3168 3169 3174 3175 3239 3240 3241 3242 4 3158 3160 3239 3241 4 3158 3160 3239 3241 4 3158 3160 3239 3241 4 3158 3160 3239 3241 4 3158 3160 3239 3241 4 3158 3160 3239 3241 8 3158 3160 3190 3191 3196 3197 3239 3241 8 3158 3160 3190 3191 3196 3197 3239 3241 8 3158 3160 3190 3191 3196 3197 3239 3241 8 3158 3160 3190 3191 3196 3197 3239 3241 8 3158 3160 3190 3191 3196 3197 3239 3241 8 3158 3160 3190 3191 3196 3197 3239 3241 5 3158 3190 3191 3248 3250 5 3158 3190 3191 3248 3250 5 3158 3190 3191 3248 3250 5 3158 3190 3191 3248 3250 5 3158 3190 3191 3248 3250 5 3158 3190 3191 3248 3250 3 3158 3190 3191 3 3158 3190 3191 3 3158 3190 3191 3 3158 3190 3191 3 3158 3190 3191 3 3158 3190 3191 3 3158 3248 3250 3 3158 3248 3250 3 3158 3248 3250 3 3158 3248 3250 3 3158 3248 3250 3 3158 3248 3250 4 3158 3159 3168 3169 4 3158 3159 3168 3169 4 3158 3159 3168 3169 4 3158 3159 3168 3169 4 3158 3159 3168 3169 4 3158 3159 3168 3169 4 3159 3162 3240 3242 4 3159 3162 3240 3242 4 3159 3162 3240 3242 4 3159 3162 3240 3242 4 3159 3162 3240 3242 4 3159 3162 3240 3242 3 3160 3196 3197 3 3160 3196 3197 3 3160 3196 3197 3 3160 3196 3197 3 3160 3196 3197 3 3160 3196 3197 8 3160 3161 3174 3175 3196 3197 3230 3232 8 3160 3161 3174 3175 3196 3197 3230 3232 8 3160 3161 3174 3175 3196 3197 3230 3232 8 3160 3161 3174 3175 3196 3197 3230 3232 8 3160 3161 3174 3175 3196 3197 3230 3232 8 3160 3161 3174 3175 3196 3197 3230 3232 4 3160 3161 3174 3175 4 3160 3161 3174 3175 4 3160 3161 3174 3175 4 3160 3161 3174 3175 4 3160 3161 3174 3175 4 3160 3161 3174 3175 9 3161 3162 3163 3202 3203 3228 3230 3231 3232 9 3161 3162 3163 3202 3203 3228 3230 3231 3232 9 3161 3162 3163 3202 3203 3228 3230 3231 3232 9 3161 3162 3163 3202 3203 3228 3230 3231 3232 9 3161 3162 3163 3202 3203 3228 3230 3231 3232 9 3161 3162 3163 3202 3203 3228 3230 3231 3232 3 3161 3230 3232 3 3161 3230 3232 3 3161 3230 3232 3 3161 3230 3232 3 3161 3230 3232 3 3161 3230 3232 2 3161 3162 2 3161 3162 2 3161 3162 2 3161 3162 2 3161 3162 2 3161 3162 4 3162 3163 3228 3231 4 3162 3163 3228 3231 4 3162 3163 3228 3231 4 3162 3163 3228 3231 4 3162 3163 3228 3231 4 3162 3163 3228 3231 3 3163 3202 3203 3 3163 3202 3203 3 3163 3202 3203 3 3163 3202 3203 3 3163 3202 3203 3 3163 3202 3203 3 3164 3170 3234 3 3164 3170 3234 3 3164 3170 3234 3 3164 3170 3234 3 3164 3170 3234 3 3164 3170 3234 4 3165 3171 3235 3236 4 3165 3171 3235 3236 4 3165 3171 3235 3236 4 3165 3171 3235 3236 4 3165 3171 3235 3236 4 3165 3171 3235 3236 3 3166 3172 3237 3 3166 3172 3237 3 3166 3172 3237 3 3166 3172 3237 3 3166 3172 3237 3 3166 3172 3237 3 3167 3173 3238 3 3167 3173 3238 3 3167 3173 3238 3 3167 3173 3238 3 3167 3173 3238 3 3167 3173 3238 4 3168 3174 3239 3240 4 3168 3174 3239 3240 4 3168 3174 3239 3240 4 3168 3174 3239 3240 4 3168 3174 3239 3240 4 3168 3174 3239 3240 8 3169 3175 3182 3183 3184 3185 3241 3242 8 3169 3175 3182 3183 3184 3185 3241 3242 8 3169 3175 3182 3183 3184 3185 3241 3242 8 3169 3175 3182 3183 3184 3185 3241 3242 8 3169 3175 3182 3183 3184 3185 3241 3242 8 3169 3175 3182 3183 3184 3185 3241 3242 3 3169 3182 3183 3 3169 3182 3183 3 3169 3182 3183 3 3169 3182 3183 3 3169 3182 3183 3 3169 3182 3183 5 3169 3182 3183 3250 3251 5 3169 3182 3183 3250 3251 5 3169 3182 3183 3250 3251 5 3169 3182 3183 3250 3251 5 3169 3182 3183 3250 3251 5 3169 3182 3183 3250 3251 3 3169 3250 3251 3 3169 3250 3251 3 3169 3250 3251 3 3169 3250 3251 3 3169 3250 3251 3 3169 3250 3251 4 3169 3175 3241 3242 4 3169 3175 3241 3242 4 3169 3175 3241 3242 4 3169 3175 3241 3242 4 3169 3175 3241 3242 4 3169 3175 3241 3242 3 3170 3176 3225 3 3170 3176 3225 3 3170 3176 3225 3 3170 3176 3225 3 3170 3176 3225 3 3170 3176 3225 3 3171 3177 3226 3 3171 3177 3226 3 3171 3177 3226 3 3171 3177 3226 3 3171 3177 3226 3 3171 3177 3226 3 3172 3178 3227 3 3172 3178 3227 3 3172 3178 3227 3 3172 3178 3227 3 3172 3178 3227 3 3172 3178 3227 4 3173 3179 3229 3233 4 3173 3179 3229 3233 4 3173 3179 3229 3233 4 3173 3179 3229 3233 4 3173 3179 3229 3233 4 3173 3179 3229 3233 3 3174 3196 3232 3 3174 3196 3232 3 3174 3196 3232 3 3174 3196 3232 3 3174 3196 3232 3 3174 3196 3232 5 3175 3184 3185 3197 3230 5 3175 3184 3185 3197 3230 5 3175 3184 3185 3197 3230 5 3175 3184 3185 3197 3230 5 3175 3184 3185 3197 3230 5 3175 3184 3185 3197 3230 3 3175 3184 3185 3 3175 3184 3185 3 3175 3184 3185 3 3175 3184 3185 3 3175 3184 3185 3 3175 3184 3185 3 3175 3197 3230 3 3175 3197 3230 3 3175 3197 3230 3 3175 3197 3230 3 3175 3197 3230 3 3175 3197 3230 3 3176 3198 3204 3 3176 3198 3204 3 3176 3198 3204 3 3176 3198 3204 3 3176 3198 3204 3 3176 3198 3204 4 3177 3199 3205 3222 4 3177 3199 3205 3222 4 3177 3199 3205 3222 4 3177 3199 3205 3222 4 3177 3199 3205 3222 4 3177 3199 3205 3222 3 3178 3200 3206 3 3178 3200 3206 3 3178 3200 3206 3 3178 3200 3206 3 3178 3200 3206 3 3178 3200 3206 4 3179 3201 3207 3223 4 3179 3201 3207 3223 4 3179 3201 3207 3223 4 3179 3201 3207 3223 4 3179 3201 3207 3223 4 3179 3201 3207 3223 3 3180 3181 3221 3 3180 3181 3221 3 3180 3181 3221 3 3180 3181 3221 3 3180 3181 3221 3 3180 3181 3221 5 3180 3181 3207 3211 3221 5 3180 3181 3207 3211 3221 5 3180 3181 3207 3211 3221 5 3180 3181 3207 3211 3221 5 3180 3181 3207 3211 3221 5 3180 3181 3207 3211 3221 2 3180 3207 2 3180 3207 2 3180 3207 2 3180 3207 2 3180 3207 2 3180 3207 3 3181 3211 3217 3 3181 3211 3217 3 3181 3211 3217 3 3181 3211 3217 3 3181 3211 3217 3 3181 3211 3217 2 3181 3211 2 3181 3211 2 3181 3211 2 3181 3211 2 3181 3211 2 3181 3211 2 3181 3217 2 3181 3217 2 3181 3217 2 3181 3217 2 3181 3217 2 3181 3217 3 3182 3184 3241 3 3182 3184 3241 3 3182 3184 3241 3 3182 3184 3241 3 3182 3184 3241 3 3182 3184 3241 5 3182 3184 3191 3197 3241 5 3182 3184 3191 3197 3241 5 3182 3184 3191 3197 3241 5 3182 3184 3191 3197 3241 5 3182 3184 3191 3197 3241 5 3182 3184 3191 3197 3241 2 3182 3191 2 3182 3191 2 3182 3191 2 3182 3191 2 3182 3191 2 3182 3191 3 3182 3191 3250 3 3182 3191 3250 3 3182 3191 3250 3 3182 3191 3250 3 3182 3191 3250 2 3182 3250 2 3182 3250 2 3182 3250 2 3182 3250 2 3182 3250 2 3182 3250 3 3183 3185 3242 3 3183 3185 3242 3 3183 3185 3242 3 3183 3185 3242 3 3183 3185 3242 3 3183 3185 3242 2 3183 3251 2 3183 3251 2 3183 3251 2 3183 3251 2 3183 3251 2 3183 3251 2 3184 3197 2 3184 3197 2 3184 3197 2 3184 3197 2 3184 3197 2 3184 3197 2 3185 3230 2 3185 3230 2 3185 3230 2 3185 3230 2 3185 3230 2 3185 3230 2 3186 3243 2 3186 3243 2 3186 3243 2 3186 3243 2 3186 3243 2 3186 3243 3 3186 3192 3234 3 3186 3192 3234 3 3186 3192 3234 3 3186 3192 3234 3 3186 3192 3234 3 3186 3192 3234 2 3187 3244 2 3187 3244 2 3187 3244 2 3187 3244 2 3187 3244 2 3187 3244 3 3187 3193 3235 3 3187 3193 3235 3 3187 3193 3235 3 3187 3193 3235 3 3187 3193 3235 3 3187 3193 3235 2 3188 3246 2 3188 3246 2 3188 3246 2 3188 3246 2 3188 3246 2 3188 3246 3 3188 3194 3237 3 3188 3194 3237 3 3188 3194 3237 3 3188 3194 3237 3 3188 3194 3237 3 3188 3194 3237 2 3189 3247 2 3189 3247 2 3189 3247 2 3189 3247 2 3189 3247 2 3189 3247 3 3189 3195 3238 3 3189 3195 3238 3 3189 3195 3238 3 3189 3195 3238 3 3189 3195 3238 3 3189 3195 3238 2 3190 3248 2 3190 3248 2 3190 3248 2 3190 3248 2 3190 3248 2 3190 3248 3 3190 3196 3239 3 3190 3196 3239 3 3190 3196 3239 3 3190 3196 3239 3 3190 3196 3239 3 3190 3196 3239 2 3191 3250 2 3191 3250 2 3191 3250 2 3191 3250 2 3191 3250 2 3191 3250 3 3191 3197 3241 3 3191 3197 3241 3 3191 3197 3241 3 3191 3197 3241 3 3191 3197 3241 3 3191 3197 3241 3 3192 3198 3225 3 3192 3198 3225 3 3192 3198 3225 3 3192 3198 3225 3 3192 3198 3225 3 3192 3198 3225 3 3193 3199 3226 3 3193 3199 3226 3 3193 3199 3226 3 3193 3199 3226 3 3193 3199 3226 3 3193 3199 3226 3 3194 3200 3227 3 3194 3200 3227 3 3194 3200 3227 3 3194 3200 3227 3 3194 3200 3227 3 3194 3200 3227 3 3195 3201 3233 3 3195 3201 3233 3 3195 3201 3233 3 3195 3201 3233 3 3195 3201 3233 3 3195 3201 3233 3 3202 3231 3232 3 3202 3231 3232 3 3202 3231 3232 3 3202 3231 3232 3 3202 3231 3232 3 3202 3231 3232 2 3202 3224 2 3202 3224 2 3202 3224 2 3202 3224 2 3202 3224 2 3202 3224 3 3203 3228 3230 3 3203 3228 3230 3 3203 3228 3230 3 3203 3228 3230 3 3203 3228 3230 3 3203 3228 3230 3 3204 3208 3218 3 3204 3208 3218 3 3204 3208 3218 3 3204 3208 3218 3 3204 3208 3218 3 3204 3208 3218 3 3205 3209 3219 3 3205 3209 3219 3 3205 3209 3219 3 3205 3209 3219 3 3205 3209 3219 3 3205 3209 3219 2 3206 3207 2 3206 3207 2 3206 3207 2 3206 3207 2 3206 3207 2 3206 3207 3 3206 3210 3220 3 3206 3210 3220 3 3206 3210 3220 3 3206 3210 3220 3 3206 3210 3220 3 3206 3210 3220 3 3207 3211 3221 3 3207 3211 3221 3 3207 3211 3221 3 3207 3211 3221 3 3207 3211 3221 3 3207 3211 3221 2 3208 3214 2 3208 3214 2 3208 3214 2 3208 3214 2 3208 3214 2 3208 3214 2 3209 3215 2 3209 3215 2 3209 3215 2 3209 3215 2 3209 3215 2 3209 3215 2 3210 3216 2 3210 3216 2 3210 3216 2 3210 3216 2 3210 3216 2 3210 3216 2 3211 3217 2 3211 3217 2 3211 3217 2 3211 3217 2 3211 3217 2 3211 3217 1 3223 1 3223 1 3223 1 3223 1 3223 1 3223 1 3229 1 3229 1 3229 1 3229 1 3229 1 3229 4 3252 3269 3423 3425 4 3252 3269 3423 3425 4 3252 3269 3423 3425 4 3252 3269 3423 3425 4 3252 3269 3423 3425 4 3252 3269 3423 3425 8 3252 3257 3268 3269 3422 3423 3424 3425 8 3252 3257 3268 3269 3422 3423 3424 3425 8 3252 3257 3268 3269 3422 3423 3424 3425 8 3252 3257 3268 3269 3422 3423 3424 3425 8 3252 3257 3268 3269 3422 3423 3424 3425 8 3252 3257 3268 3269 3422 3423 3424 3425 2 3252 3257 2 3252 3257 2 3252 3257 2 3252 3257 2 3252 3257 2 3252 3257 2 3252 3371 2 3252 3371 2 3252 3371 2 3252 3371 2 3252 3371 2 3252 3371 4 3253 3279 3425 3427 4 3253 3279 3425 3427 4 3253 3279 3425 3427 4 3253 3279 3425 3427 4 3253 3279 3425 3427 4 3253 3279 3425 3427 11 3253 3257 3258 3278 3279 3318 3319 3424 3425 3426 3427 11 3253 3257 3258 3278 3279 3318 3319 3424 3425 3426 3427 11 3253 3257 3258 3278 3279 3318 3319 3424 3425 3426 3427 11 3253 3257 3258 3278 3279 3318 3319 3424 3425 3426 3427 11 3253 3257 3258 3278 3279 3318 3319 3424 3425 3426 3427 11 3253 3257 3258 3278 3279 3318 3319 3424 3425 3426 3427 3 3253 3257 3258 3 3253 3257 3258 3 3253 3257 3258 3 3253 3257 3258 3 3253 3257 3258 3 3253 3257 3258 3 3253 3371 3375 3 3253 3371 3375 3 3253 3371 3375 3 3253 3371 3375 3 3253 3371 3375 3 3253 3371 3375 4 3254 3289 3427 3429 4 3254 3289 3427 3429 4 3254 3289 3427 3429 4 3254 3289 3427 3429 4 3254 3289 3427 3429 4 3254 3289 3427 3429 11 3254 3258 3259 3288 3289 3319 3320 3426 3427 3428 3429 11 3254 3258 3259 3288 3289 3319 3320 3426 3427 3428 3429 11 3254 3258 3259 3288 3289 3319 3320 3426 3427 3428 3429 11 3254 3258 3259 3288 3289 3319 3320 3426 3427 3428 3429 11 3254 3258 3259 3288 3289 3319 3320 3426 3427 3428 3429 11 3254 3258 3259 3288 3289 3319 3320 3426 3427 3428 3429 3 3254 3258 3259 3 3254 3258 3259 3 3254 3258 3259 3 3254 3258 3259 3 3254 3258 3259 3 3254 3258 3259 3 3254 3374 3375 3 3254 3374 3375 3 3254 3374 3375 3 3254 3374 3375 3 3254 3374 3375 3 3254 3374 3375 4 3255 3299 3429 3431 4 3255 3299 3429 3431 4 3255 3299 3429 3431 4 3255 3299 3429 3431 4 3255 3299 3429 3431 4 3255 3299 3429 3431 11 3255 3259 3260 3298 3299 3320 3321 3428 3429 3430 3431 11 3255 3259 3260 3298 3299 3320 3321 3428 3429 3430 3431 11 3255 3259 3260 3298 3299 3320 3321 3428 3429 3430 3431 11 3255 3259 3260 3298 3299 3320 3321 3428 3429 3430 3431 11 3255 3259 3260 3298 3299 3320 3321 3428 3429 3430 3431 11 3255 3259 3260 3298 3299 3320 3321 3428 3429 3430 3431 3 3255 3259 3260 3 3255 3259 3260 3 3255 3259 3260 3 3255 3259 3260 3 3255 3259 3260 3 3255 3259 3260 3 3255 3373 3374 3 3255 3373 3374 3 3255 3373 3374 3 3255 3373 3374 3 3255 3373 3374 3 3255 3373 3374 3 3256 3309 3431 3 3256 3309 3431 3 3256 3309 3431 3 3256 3309 3431 3 3256 3309 3431 3 3256 3309 3431 7 3256 3260 3308 3309 3321 3430 3431 7 3256 3260 3308 3309 3321 3430 3431 7 3256 3260 3308 3309 3321 3430 3431 7 3256 3260 3308 3309 3321 3430 3431 7 3256 3260 3308 3309 3321 3430 3431 7 3256 3260 3308 3309 3321 3430 3431 2 3256 3260 2 3256 3260 2 3256 3260 2 3256 3260 2 3256 3260 2 3256 3260 2 3256 3373 2 3256 3373 2 3256 3373 2 3256 3373 2 3256 3373 2 3256 3373 3 3257 3424 3425 3 3257 3424 3425 3 3257 3424 3425 3 3257 3424 3425 3 3257 3424 3425 3 3257 3424 3425 4 3258 3319 3426 3427 4 3258 3319 3426 3427 4 3258 3319 3426 3427 4 3258 3319 3426 3427 4 3258 3319 3426 3427 4 3258 3319 3426 3427 4 3259 3320 3428 3429 4 3259 3320 3428 3429 4 3259 3320 3428 3429 4 3259 3320 3428 3429 4 3259 3320 3428 3429 4 3259 3320 3428 3429 4 3260 3321 3430 3431 4 3260 3321 3430 3431 4 3260 3321 3430 3431 4 3260 3321 3430 3431 4 3260 3321 3430 3431 4 3260 3321 3430 3431 10 3261 3262 3263 3335 3336 3341 3342 3408 3409 3410 10 3261 3262 3263 3335 3336 3341 3342 3408 3409 3410 10 3261 3262 3263 3335 3336 3341 3342 3408 3409 3410 10 3261 3262 3263 3335 3336 3341 3342 3408 3409 3410 10 3261 3262 3263 3335 3336 3341 3342 3408 3409 3410 10 3261 3262 3263 3335 3336 3341 3342 3408 3409 3410 3 3261 3335 3336 3 3261 3335 3336 3 3261 3335 3336 3 3261 3335 3336 3 3261 3335 3336 3 3261 3335 3336 5 3261 3335 3336 3420 3422 5 3261 3335 3336 3420 3422 5 3261 3335 3336 3420 3422 5 3261 3335 3336 3420 3422 5 3261 3335 3336 3420 3422 5 3261 3335 3336 3420 3422 6 3261 3262 3420 3421 3422 3423 6 3261 3262 3420 3421 3422 3423 6 3261 3262 3420 3421 3422 3423 6 3261 3262 3420 3421 3422 3423 6 3261 3262 3420 3421 3422 3423 6 3261 3262 3420 3421 3422 3423 3 3261 3420 3422 3 3261 3420 3422 3 3261 3420 3422 3 3261 3420 3422 3 3261 3420 3422 3 3261 3420 3422 2 3261 3262 2 3261 3262 2 3261 3262 2 3261 3262 2 3261 3262 2 3261 3262 4 3262 3263 3408 3410 4 3262 3263 3408 3410 4 3262 3263 3408 3410 4 3262 3263 3408 3410 4 3262 3263 3408 3410 4 3262 3263 3408 3410 3 3262 3421 3423 3 3262 3421 3423 3 3262 3421 3423 3 3262 3421 3423 3 3262 3421 3423 3 3262 3421 3423 9 3263 3264 3341 3342 3347 3348 3397 3398 3399 9 3263 3264 3341 3342 3347 3348 3397 3398 3399 9 3263 3264 3341 3342 3347 3348 3397 3398 3399 9 3263 3264 3341 3342 3347 3348 3397 3398 3399 9 3263 3264 3341 3342 3347 3348 3397 3398 3399 9 3263 3264 3341 3342 3347 3348 3397 3398 3399 4 3263 3264 3397 3399 4 3263 3264 3397 3399 4 3263 3264 3397 3399 4 3263 3264 3397 3399 4 3263 3264 3397 3399 4 3263 3264 3397 3399 3 3263 3341 3342 3 3263 3341 3342 3 3263 3341 3342 3 3263 3341 3342 3 3263 3341 3342 3 3263 3341 3342 3 3264 3347 3348 3 3264 3347 3348 3 3264 3347 3348 3 3264 3347 3348 3 3264 3347 3348 3 3264 3347 3348 4 3265 3266 3383 3384 4 3265 3266 3383 3384 4 3265 3266 3383 3384 4 3265 3266 3383 3384 4 3265 3266 3383 3384 4 3265 3266 3383 3384 8 3265 3266 3353 3354 3359 3360 3383 3384 8 3265 3266 3353 3354 3359 3360 3383 3384 8 3265 3266 3353 3354 3359 3360 3383 3384 8 3265 3266 3353 3354 3359 3360 3383 3384 8 3265 3266 3353 3354 3359 3360 3383 3384 8 3265 3266 3353 3354 3359 3360 3383 3384 3 3265 3353 3354 3 3265 3353 3354 3 3265 3353 3354 3 3265 3353 3354 3 3265 3353 3354 3 3265 3353 3354 4 3266 3267 3377 3378 4 3266 3267 3377 3378 4 3266 3267 3377 3378 4 3266 3267 3377 3378 4 3266 3267 3377 3378 4 3266 3267 3377 3378 8 3266 3267 3359 3360 3365 3366 3377 3378 8 3266 3267 3359 3360 3365 3366 3377 3378 8 3266 3267 3359 3360 3365 3366 3377 3378 8 3266 3267 3359 3360 3365 3366 3377 3378 8 3266 3267 3359 3360 3365 3366 3377 3378 8 3266 3267 3359 3360 3365 3366 3377 3378 3 3266 3359 3360 3 3266 3359 3360 3 3266 3359 3360 3 3266 3359 3360 3 3266 3359 3360 3 3266 3359 3360 3 3267 3365 3366 3 3267 3365 3366 3 3267 3365 3366 3 3267 3365 3366 3 3267 3365 3366 3 3267 3365 3366 8 3268 3269 3270 3271 3408 3409 3412 3413 8 3268 3269 3270 3271 3408 3409 3412 3413 8 3268 3269 3270 3271 3408 3409 3412 3413 8 3268 3269 3270 3271 3408 3409 3412 3413 8 3268 3269 3270 3271 3408 3409 3412 3413 8 3268 3269 3270 3271 3408 3409 3412 3413 4 3268 3270 3409 3412 4 3268 3270 3409 3412 4 3268 3270 3409 3412 4 3268 3270 3409 3412 4 3268 3270 3409 3412 4 3268 3270 3409 3412 10 3268 3270 3318 3322 3336 3337 3342 3343 3409 3412 10 3268 3270 3318 3322 3336 3337 3342 3343 3409 3412 10 3268 3270 3318 3322 3336 3337 3342 3343 3409 3412 10 3268 3270 3318 3322 3336 3337 3342 3343 3409 3412 10 3268 3270 3318 3322 3336 3337 3342 3343 3409 3412 10 3268 3270 3318 3322 3336 3337 3342 3343 3409 3412 4 3268 3318 3336 3337 4 3268 3318 3336 3337 4 3268 3318 3336 3337 4 3268 3318 3336 3337 4 3268 3318 3336 3337 4 3268 3318 3336 3337 6 3268 3318 3336 3337 3422 3424 6 3268 3318 3336 3337 3422 3424 6 3268 3318 3336 3337 3422 3424 6 3268 3318 3336 3337 3422 3424 6 3268 3318 3336 3337 3422 3424 6 3268 3318 3336 3337 3422 3424 3 3268 3422 3424 3 3268 3422 3424 3 3268 3422 3424 3 3268 3422 3424 3 3268 3422 3424 3 3268 3422 3424 2 3268 3269 2 3268 3269 2 3268 3269 2 3268 3269 2 3268 3269 2 3268 3269 4 3269 3271 3408 3413 4 3269 3271 3408 3413 4 3269 3271 3408 3413 4 3269 3271 3408 3413 4 3269 3271 3408 3413 4 3269 3271 3408 3413 8 3270 3271 3272 3273 3397 3398 3401 3402 8 3270 3271 3272 3273 3397 3398 3401 3402 8 3270 3271 3272 3273 3397 3398 3401 3402 8 3270 3271 3272 3273 3397 3398 3401 3402 8 3270 3271 3272 3273 3397 3398 3401 3402 8 3270 3271 3272 3273 3397 3398 3401 3402 4 3270 3272 3398 3401 4 3270 3272 3398 3401 4 3270 3272 3398 3401 4 3270 3272 3398 3401 4 3270 3272 3398 3401 4 3270 3272 3398 3401 10 3270 3272 3322 3326 3342 3343 3348 3349 3398 3401 10 3270 3272 3322 3326 3342 3343 3348 3349 3398 3401 10 3270 3272 3322 3326 3342 3343 3348 3349 3398 3401 10 3270 3272 3322 3326 3342 3343 3348 3349 3398 3401 10 3270 3272 3322 3326 3342 3343 3348 3349 3398 3401 10 3270 3272 3322 3326 3342 3343 3348 3349 3398 3401 4 3270 3322 3342 3343 4 3270 3322 3342 3343 4 3270 3322 3342 3343 4 3270 3322 3342 3343 4 3270 3322 3342 3343 4 3270 3322 3342 3343 2 3270 3271 2 3270 3271 2 3270 3271 2 3270 3271 2 3270 3271 2 3270 3271 4 3271 3273 3397 3402 4 3271 3273 3397 3402 4 3271 3273 3397 3402 4 3271 3273 3397 3402 4 3271 3273 3397 3402 4 3271 3273 3397 3402 8 3272 3274 3348 3349 3354 3355 3389 3390 8 3272 3274 3348 3349 3354 3355 3389 3390 8 3272 3274 3348 3349 3354 3355 3389 3390 8 3272 3274 3348 3349 3354 3355 3389 3390 8 3272 3274 3348 3349 3354 3355 3389 3390 8 3272 3274 3348 3349 3354 3355 3389 3390 3 3272 3348 3349 3 3272 3348 3349 3 3272 3348 3349 3 3272 3348 3349 3 3272 3348 3349 3 3272 3348 3349 2 3272 3273 2 3272 3273 2 3272 3273 2 3272 3273 2 3272 3273 2 3272 3273 4 3272 3274 3389 3390 4 3272 3274 3389 3390 4 3272 3274 3389 3390 4 3272 3274 3389 3390 4 3272 3274 3389 3390 4 3272 3274 3389 3390 10 3274 3275 3276 3330 3354 3355 3360 3361 3384 3385 10 3274 3275 3276 3330 3354 3355 3360 3361 3384 3385 10 3274 3275 3276 3330 3354 3355 3360 3361 3384 3385 10 3274 3275 3276 3330 3354 3355 3360 3361 3384 3385 10 3274 3275 3276 3330 3354 3355 3360 3361 3384 3385 10 3274 3275 3276 3330 3354 3355 3360 3361 3384 3385 3 3274 3354 3355 3 3274 3354 3355 3 3274 3354 3355 3 3274 3354 3355 3 3274 3354 3355 3 3274 3354 3355 3 3274 3275 3330 3 3274 3275 3330 3 3274 3275 3330 3 3274 3275 3330 3 3274 3275 3330 3 3274 3275 3330 4 3275 3276 3384 3385 4 3275 3276 3384 3385 4 3275 3276 3384 3385 4 3275 3276 3384 3385 4 3275 3276 3384 3385 4 3275 3276 3384 3385 4 3276 3277 3378 3379 4 3276 3277 3378 3379 4 3276 3277 3378 3379 4 3276 3277 3378 3379 4 3276 3277 3378 3379 4 3276 3277 3378 3379 8 3276 3277 3360 3361 3366 3367 3378 3379 8 3276 3277 3360 3361 3366 3367 3378 3379 8 3276 3277 3360 3361 3366 3367 3378 3379 8 3276 3277 3360 3361 3366 3367 3378 3379 8 3276 3277 3360 3361 3366 3367 3378 3379 8 3276 3277 3360 3361 3366 3367 3378 3379 3 3276 3360 3361 3 3276 3360 3361 3 3276 3360 3361 3 3276 3360 3361 3 3276 3360 3361 3 3276 3360 3361 3 3277 3366 3367 3 3277 3366 3367 3 3277 3366 3367 3 3277 3366 3367 3 3277 3366 3367 3 3277 3366 3367 12 3278 3279 3280 3281 3318 3319 3322 3323 3412 3413 3414 3415 12 3278 3279 3280 3281 3318 3319 3322 3323 3412 3413 3414 3415 12 3278 3279 3280 3281 3318 3319 3322 3323 3412 3413 3414 3415 12 3278 3279 3280 3281 3318 3319 3322 3323 3412 3413 3414 3415 12 3278 3279 3280 3281 3318 3319 3322 3323 3412 3413 3414 3415 12 3278 3279 3280 3281 3318 3319 3322 3323 3412 3413 3414 3415 4 3278 3280 3412 3414 4 3278 3280 3412 3414 4 3278 3280 3412 3414 4 3278 3280 3412 3414 4 3278 3280 3412 3414 4 3278 3280 3412 3414 8 3278 3280 3337 3338 3343 3344 3412 3414 8 3278 3280 3337 3338 3343 3344 3412 3414 8 3278 3280 3337 3338 3343 3344 3412 3414 8 3278 3280 3337 3338 3343 3344 3412 3414 8 3278 3280 3337 3338 3343 3344 3412 3414 8 3278 3280 3337 3338 3343 3344 3412 3414 3 3278 3337 3338 3 3278 3337 3338 3 3278 3337 3338 3 3278 3337 3338 3 3278 3337 3338 3 3278 3337 3338 5 3278 3337 3338 3424 3426 5 3278 3337 3338 3424 3426 5 3278 3337 3338 3424 3426 5 3278 3337 3338 3424 3426 5 3278 3337 3338 3424 3426 5 3278 3337 3338 3424 3426 3 3278 3424 3426 3 3278 3424 3426 3 3278 3424 3426 3 3278 3424 3426 3 3278 3424 3426 3 3278 3424 3426 4 3278 3279 3318 3319 4 3278 3279 3318 3319 4 3278 3279 3318 3319 4 3278 3279 3318 3319 4 3278 3279 3318 3319 4 3278 3279 3318 3319 4 3279 3281 3413 3415 4 3279 3281 3413 3415 4 3279 3281 3413 3415 4 3279 3281 3413 3415 4 3279 3281 3413 3415 4 3279 3281 3413 3415 12 3280 3281 3282 3283 3322 3323 3326 3327 3401 3402 3403 3404 12 3280 3281 3282 3283 3322 3323 3326 3327 3401 3402 3403 3404 12 3280 3281 3282 3283 3322 3323 3326 3327 3401 3402 3403 3404 12 3280 3281 3282 3283 3322 3323 3326 3327 3401 3402 3403 3404 12 3280 3281 3282 3283 3322 3323 3326 3327 3401 3402 3403 3404 12 3280 3281 3282 3283 3322 3323 3326 3327 3401 3402 3403 3404 4 3280 3282 3401 3403 4 3280 3282 3401 3403 4 3280 3282 3401 3403 4 3280 3282 3401 3403 4 3280 3282 3401 3403 4 3280 3282 3401 3403 8 3280 3282 3343 3344 3349 3350 3401 3403 8 3280 3282 3343 3344 3349 3350 3401 3403 8 3280 3282 3343 3344 3349 3350 3401 3403 8 3280 3282 3343 3344 3349 3350 3401 3403 8 3280 3282 3343 3344 3349 3350 3401 3403 8 3280 3282 3343 3344 3349 3350 3401 3403 3 3280 3343 3344 3 3280 3343 3344 3 3280 3343 3344 3 3280 3343 3344 3 3280 3343 3344 3 3280 3343 3344 4 3280 3281 3322 3323 4 3280 3281 3322 3323 4 3280 3281 3322 3323 4 3280 3281 3322 3323 4 3280 3281 3322 3323 4 3280 3281 3322 3323 4 3281 3283 3402 3404 4 3281 3283 3402 3404 4 3281 3283 3402 3404 4 3281 3283 3402 3404 4 3281 3283 3402 3404 4 3281 3283 3402 3404 12 3282 3283 3284 3285 3326 3327 3330 3331 3388 3389 3392 3393 12 3282 3283 3284 3285 3326 3327 3330 3331 3388 3389 3392 3393 12 3282 3283 3284 3285 3326 3327 3330 3331 3388 3389 3392 3393 12 3282 3283 3284 3285 3326 3327 3330 3331 3388 3389 3392 3393 12 3282 3283 3284 3285 3326 3327 3330 3331 3388 3389 3392 3393 12 3282 3283 3284 3285 3326 3327 3330 3331 3388 3389 3392 3393 4 3282 3284 3389 3392 4 3282 3284 3389 3392 4 3282 3284 3389 3392 4 3282 3284 3389 3392 4 3282 3284 3389 3392 4 3282 3284 3389 3392 8 3282 3284 3349 3350 3355 3356 3389 3392 8 3282 3284 3349 3350 3355 3356 3389 3392 8 3282 3284 3349 3350 3355 3356 3389 3392 8 3282 3284 3349 3350 3355 3356 3389 3392 8 3282 3284 3349 3350 3355 3356 3389 3392 8 3282 3284 3349 3350 3355 3356 3389 3392 3 3282 3349 3350 3 3282 3349 3350 3 3282 3349 3350 3 3282 3349 3350 3 3282 3349 3350 3 3282 3349 3350 4 3282 3283 3326 3327 4 3282 3283 3326 3327 4 3282 3283 3326 3327 4 3282 3283 3326 3327 4 3282 3283 3326 3327 4 3282 3283 3326 3327 4 3283 3285 3388 3393 4 3283 3285 3388 3393 4 3283 3285 3388 3393 4 3283 3285 3388 3393 4 3283 3285 3388 3393 4 3283 3285 3388 3393 11 3284 3285 3286 3330 3331 3355 3356 3361 3362 3385 3386 11 3284 3285 3286 3330 3331 3355 3356 3361 3362 3385 3386 11 3284 3285 3286 3330 3331 3355 3356 3361 3362 3385 3386 11 3284 3285 3286 3330 3331 3355 3356 3361 3362 3385 3386 11 3284 3285 3286 3330 3331 3355 3356 3361 3362 3385 3386 11 3284 3285 3286 3330 3331 3355 3356 3361 3362 3385 3386 3 3284 3355 3356 3 3284 3355 3356 3 3284 3355 3356 3 3284 3355 3356 3 3284 3355 3356 3 3284 3355 3356 4 3284 3285 3330 3331 4 3284 3285 3330 3331 4 3284 3285 3330 3331 4 3284 3285 3330 3331 4 3284 3285 3330 3331 4 3284 3285 3330 3331 4 3285 3286 3385 3386 4 3285 3286 3385 3386 4 3285 3286 3385 3386 4 3285 3286 3385 3386 4 3285 3286 3385 3386 4 3285 3286 3385 3386 4 3286 3287 3379 3380 4 3286 3287 3379 3380 4 3286 3287 3379 3380 4 3286 3287 3379 3380 4 3286 3287 3379 3380 4 3286 3287 3379 3380 8 3286 3287 3361 3362 3367 3368 3379 3380 8 3286 3287 3361 3362 3367 3368 3379 3380 8 3286 3287 3361 3362 3367 3368 3379 3380 8 3286 3287 3361 3362 3367 3368 3379 3380 8 3286 3287 3361 3362 3367 3368 3379 3380 8 3286 3287 3361 3362 3367 3368 3379 3380 3 3286 3361 3362 3 3286 3361 3362 3 3286 3361 3362 3 3286 3361 3362 3 3286 3361 3362 3 3286 3361 3362 3 3287 3367 3368 3 3287 3367 3368 3 3287 3367 3368 3 3287 3367 3368 3 3287 3367 3368 3 3287 3367 3368 12 3288 3289 3290 3291 3319 3320 3323 3324 3414 3415 3416 3417 12 3288 3289 3290 3291 3319 3320 3323 3324 3414 3415 3416 3417 12 3288 3289 3290 3291 3319 3320 3323 3324 3414 3415 3416 3417 12 3288 3289 3290 3291 3319 3320 3323 3324 3414 3415 3416 3417 12 3288 3289 3290 3291 3319 3320 3323 3324 3414 3415 3416 3417 12 3288 3289 3290 3291 3319 3320 3323 3324 3414 3415 3416 3417 4 3288 3290 3414 3416 4 3288 3290 3414 3416 4 3288 3290 3414 3416 4 3288 3290 3414 3416 4 3288 3290 3414 3416 4 3288 3290 3414 3416 8 3288 3290 3338 3339 3344 3345 3414 3416 8 3288 3290 3338 3339 3344 3345 3414 3416 8 3288 3290 3338 3339 3344 3345 3414 3416 8 3288 3290 3338 3339 3344 3345 3414 3416 8 3288 3290 3338 3339 3344 3345 3414 3416 8 3288 3290 3338 3339 3344 3345 3414 3416 3 3288 3338 3339 3 3288 3338 3339 3 3288 3338 3339 3 3288 3338 3339 3 3288 3338 3339 3 3288 3338 3339 5 3288 3338 3339 3426 3428 5 3288 3338 3339 3426 3428 5 3288 3338 3339 3426 3428 5 3288 3338 3339 3426 3428 5 3288 3338 3339 3426 3428 5 3288 3338 3339 3426 3428 3 3288 3426 3428 3 3288 3426 3428 3 3288 3426 3428 3 3288 3426 3428 3 3288 3426 3428 3 3288 3426 3428 4 3288 3289 3319 3320 4 3288 3289 3319 3320 4 3288 3289 3319 3320 4 3288 3289 3319 3320 4 3288 3289 3319 3320 4 3288 3289 3319 3320 4 3289 3291 3415 3417 4 3289 3291 3415 3417 4 3289 3291 3415 3417 4 3289 3291 3415 3417 4 3289 3291 3415 3417 4 3289 3291 3415 3417 12 3290 3291 3292 3293 3323 3324 3327 3328 3403 3404 3405 3406 12 3290 3291 3292 3293 3323 3324 3327 3328 3403 3404 3405 3406 12 3290 3291 3292 3293 3323 3324 3327 3328 3403 3404 3405 3406 12 3290 3291 3292 3293 3323 3324 3327 3328 3403 3404 3405 3406 12 3290 3291 3292 3293 3323 3324 3327 3328 3403 3404 3405 3406 12 3290 3291 3292 3293 3323 3324 3327 3328 3403 3404 3405 3406 4 3290 3292 3403 3405 4 3290 3292 3403 3405 4 3290 3292 3403 3405 4 3290 3292 3403 3405 4 3290 3292 3403 3405 4 3290 3292 3403 3405 8 3290 3292 3344 3345 3350 3351 3403 3405 8 3290 3292 3344 3345 3350 3351 3403 3405 8 3290 3292 3344 3345 3350 3351 3403 3405 8 3290 3292 3344 3345 3350 3351 3403 3405 8 3290 3292 3344 3345 3350 3351 3403 3405 8 3290 3292 3344 3345 3350 3351 3403 3405 3 3290 3344 3345 3 3290 3344 3345 3 3290 3344 3345 3 3290 3344 3345 3 3290 3344 3345 3 3290 3344 3345 4 3290 3291 3323 3324 4 3290 3291 3323 3324 4 3290 3291 3323 3324 4 3290 3291 3323 3324 4 3290 3291 3323 3324 4 3290 3291 3323 3324 4 3291 3293 3404 3406 4 3291 3293 3404 3406 4 3291 3293 3404 3406 4 3291 3293 3404 3406 4 3291 3293 3404 3406 4 3291 3293 3404 3406 12 3292 3293 3294 3295 3327 3328 3331 3332 3392 3393 3394 3395 12 3292 3293 3294 3295 3327 3328 3331 3332 3392 3393 3394 3395 12 3292 3293 3294 3295 3327 3328 3331 3332 3392 3393 3394 3395 12 3292 3293 3294 3295 3327 3328 3331 3332 3392 3393 3394 3395 12 3292 3293 3294 3295 3327 3328 3331 3332 3392 3393 3394 3395 12 3292 3293 3294 3295 3327 3328 3331 3332 3392 3393 3394 3395 4 3292 3294 3392 3394 4 3292 3294 3392 3394 4 3292 3294 3392 3394 4 3292 3294 3392 3394 4 3292 3294 3392 3394 4 3292 3294 3392 3394 8 3292 3294 3350 3351 3356 3357 3392 3394 8 3292 3294 3350 3351 3356 3357 3392 3394 8 3292 3294 3350 3351 3356 3357 3392 3394 8 3292 3294 3350 3351 3356 3357 3392 3394 8 3292 3294 3350 3351 3356 3357 3392 3394 8 3292 3294 3350 3351 3356 3357 3392 3394 3 3292 3350 3351 3 3292 3350 3351 3 3292 3350 3351 3 3292 3350 3351 3 3292 3350 3351 3 3292 3350 3351 4 3292 3293 3327 3328 4 3292 3293 3327 3328 4 3292 3293 3327 3328 4 3292 3293 3327 3328 4 3292 3293 3327 3328 4 3292 3293 3327 3328 4 3293 3295 3393 3395 4 3293 3295 3393 3395 4 3293 3295 3393 3395 4 3293 3295 3393 3395 4 3293 3295 3393 3395 4 3293 3295 3393 3395 11 3294 3295 3296 3331 3332 3356 3357 3362 3363 3386 3387 11 3294 3295 3296 3331 3332 3356 3357 3362 3363 3386 3387 11 3294 3295 3296 3331 3332 3356 3357 3362 3363 3386 3387 11 3294 3295 3296 3331 3332 3356 3357 3362 3363 3386 3387 11 3294 3295 3296 3331 3332 3356 3357 3362 3363 3386 3387 11 3294 3295 3296 3331 3332 3356 3357 3362 3363 3386 3387 3 3294 3356 3357 3 3294 3356 3357 3 3294 3356 3357 3 3294 3356 3357 3 3294 3356 3357 3 3294 3356 3357 4 3294 3295 3331 3332 4 3294 3295 3331 3332 4 3294 3295 3331 3332 4 3294 3295 3331 3332 4 3294 3295 3331 3332 4 3294 3295 3331 3332 4 3295 3296 3386 3387 4 3295 3296 3386 3387 4 3295 3296 3386 3387 4 3295 3296 3386 3387 4 3295 3296 3386 3387 4 3295 3296 3386 3387 4 3296 3297 3380 3381 4 3296 3297 3380 3381 4 3296 3297 3380 3381 4 3296 3297 3380 3381 4 3296 3297 3380 3381 4 3296 3297 3380 3381 8 3296 3297 3362 3363 3368 3369 3380 3381 8 3296 3297 3362 3363 3368 3369 3380 3381 8 3296 3297 3362 3363 3368 3369 3380 3381 8 3296 3297 3362 3363 3368 3369 3380 3381 8 3296 3297 3362 3363 3368 3369 3380 3381 8 3296 3297 3362 3363 3368 3369 3380 3381 3 3296 3362 3363 3 3296 3362 3363 3 3296 3362 3363 3 3296 3362 3363 3 3296 3362 3363 3 3296 3362 3363 3 3297 3368 3369 3 3297 3368 3369 3 3297 3368 3369 3 3297 3368 3369 3 3297 3368 3369 3 3297 3368 3369 12 3298 3299 3300 3301 3320 3321 3324 3325 3416 3417 3418 3419 12 3298 3299 3300 3301 3320 3321 3324 3325 3416 3417 3418 3419 12 3298 3299 3300 3301 3320 3321 3324 3325 3416 3417 3418 3419 12 3298 3299 3300 3301 3320 3321 3324 3325 3416 3417 3418 3419 12 3298 3299 3300 3301 3320 3321 3324 3325 3416 3417 3418 3419 12 3298 3299 3300 3301 3320 3321 3324 3325 3416 3417 3418 3419 4 3298 3300 3416 3418 4 3298 3300 3416 3418 4 3298 3300 3416 3418 4 3298 3300 3416 3418 4 3298 3300 3416 3418 4 3298 3300 3416 3418 8 3298 3300 3339 3340 3345 3346 3416 3418 8 3298 3300 3339 3340 3345 3346 3416 3418 8 3298 3300 3339 3340 3345 3346 3416 3418 8 3298 3300 3339 3340 3345 3346 3416 3418 8 3298 3300 3339 3340 3345 3346 3416 3418 8 3298 3300 3339 3340 3345 3346 3416 3418 3 3298 3339 3340 3 3298 3339 3340 3 3298 3339 3340 3 3298 3339 3340 3 3298 3339 3340 3 3298 3339 3340 5 3298 3339 3340 3428 3430 5 3298 3339 3340 3428 3430 5 3298 3339 3340 3428 3430 5 3298 3339 3340 3428 3430 5 3298 3339 3340 3428 3430 5 3298 3339 3340 3428 3430 3 3298 3428 3430 3 3298 3428 3430 3 3298 3428 3430 3 3298 3428 3430 3 3298 3428 3430 3 3298 3428 3430 4 3298 3299 3320 3321 4 3298 3299 3320 3321 4 3298 3299 3320 3321 4 3298 3299 3320 3321 4 3298 3299 3320 3321 4 3298 3299 3320 3321 4 3299 3301 3417 3419 4 3299 3301 3417 3419 4 3299 3301 3417 3419 4 3299 3301 3417 3419 4 3299 3301 3417 3419 4 3299 3301 3417 3419 12 3300 3301 3302 3303 3324 3325 3328 3329 3405 3406 3407 3411 12 3300 3301 3302 3303 3324 3325 3328 3329 3405 3406 3407 3411 12 3300 3301 3302 3303 3324 3325 3328 3329 3405 3406 3407 3411 12 3300 3301 3302 3303 3324 3325 3328 3329 3405 3406 3407 3411 12 3300 3301 3302 3303 3324 3325 3328 3329 3405 3406 3407 3411 12 3300 3301 3302 3303 3324 3325 3328 3329 3405 3406 3407 3411 4 3300 3302 3405 3407 4 3300 3302 3405 3407 4 3300 3302 3405 3407 4 3300 3302 3405 3407 4 3300 3302 3405 3407 4 3300 3302 3405 3407 8 3300 3302 3345 3346 3351 3352 3405 3407 8 3300 3302 3345 3346 3351 3352 3405 3407 8 3300 3302 3345 3346 3351 3352 3405 3407 8 3300 3302 3345 3346 3351 3352 3405 3407 8 3300 3302 3345 3346 3351 3352 3405 3407 8 3300 3302 3345 3346 3351 3352 3405 3407 3 3300 3345 3346 3 3300 3345 3346 3 3300 3345 3346 3 3300 3345 3346 3 3300 3345 3346 3 3300 3345 3346 4 3300 3301 3324 3325 4 3300 3301 3324 3325 4 3300 3301 3324 3325 4 3300 3301 3324 3325 4 3300 3301 3324 3325 4 3300 3301 3324 3325 4 3301 3303 3406 3411 4 3301 3303 3406 3411 4 3301 3303 3406 3411 4 3301 3303 3406 3411 4 3301 3303 3406 3411 4 3301 3303 3406 3411 12 3302 3303 3304 3305 3328 3329 3332 3333 3394 3395 3396 3400 12 3302 3303 3304 3305 3328 3329 3332 3333 3394 3395 3396 3400 12 3302 3303 3304 3305 3328 3329 3332 3333 3394 3395 3396 3400 12 3302 3303 3304 3305 3328 3329 3332 3333 3394 3395 3396 3400 12 3302 3303 3304 3305 3328 3329 3332 3333 3394 3395 3396 3400 12 3302 3303 3304 3305 3328 3329 3332 3333 3394 3395 3396 3400 4 3302 3304 3394 3396 4 3302 3304 3394 3396 4 3302 3304 3394 3396 4 3302 3304 3394 3396 4 3302 3304 3394 3396 4 3302 3304 3394 3396 8 3302 3304 3351 3352 3357 3358 3394 3396 8 3302 3304 3351 3352 3357 3358 3394 3396 8 3302 3304 3351 3352 3357 3358 3394 3396 8 3302 3304 3351 3352 3357 3358 3394 3396 8 3302 3304 3351 3352 3357 3358 3394 3396 8 3302 3304 3351 3352 3357 3358 3394 3396 3 3302 3351 3352 3 3302 3351 3352 3 3302 3351 3352 3 3302 3351 3352 3 3302 3351 3352 3 3302 3351 3352 4 3302 3303 3328 3329 4 3302 3303 3328 3329 4 3302 3303 3328 3329 4 3302 3303 3328 3329 4 3302 3303 3328 3329 4 3302 3303 3328 3329 4 3303 3305 3395 3400 4 3303 3305 3395 3400 4 3303 3305 3395 3400 4 3303 3305 3395 3400 4 3303 3305 3395 3400 4 3303 3305 3395 3400 11 3304 3305 3306 3332 3333 3357 3358 3363 3364 3387 3391 11 3304 3305 3306 3332 3333 3357 3358 3363 3364 3387 3391 11 3304 3305 3306 3332 3333 3357 3358 3363 3364 3387 3391 11 3304 3305 3306 3332 3333 3357 3358 3363 3364 3387 3391 11 3304 3305 3306 3332 3333 3357 3358 3363 3364 3387 3391 11 3304 3305 3306 3332 3333 3357 3358 3363 3364 3387 3391 3 3304 3357 3358 3 3304 3357 3358 3 3304 3357 3358 3 3304 3357 3358 3 3304 3357 3358 3 3304 3357 3358 4 3304 3305 3332 3333 4 3304 3305 3332 3333 4 3304 3305 3332 3333 4 3304 3305 3332 3333 4 3304 3305 3332 3333 4 3304 3305 3332 3333 4 3305 3306 3387 3391 4 3305 3306 3387 3391 4 3305 3306 3387 3391 4 3305 3306 3387 3391 4 3305 3306 3387 3391 4 3305 3306 3387 3391 4 3306 3307 3381 3382 4 3306 3307 3381 3382 4 3306 3307 3381 3382 4 3306 3307 3381 3382 4 3306 3307 3381 3382 4 3306 3307 3381 3382 8 3306 3307 3363 3364 3369 3370 3381 3382 8 3306 3307 3363 3364 3369 3370 3381 3382 8 3306 3307 3363 3364 3369 3370 3381 3382 8 3306 3307 3363 3364 3369 3370 3381 3382 8 3306 3307 3363 3364 3369 3370 3381 3382 8 3306 3307 3363 3364 3369 3370 3381 3382 3 3306 3363 3364 3 3306 3363 3364 3 3306 3363 3364 3 3306 3363 3364 3 3306 3363 3364 3 3306 3363 3364 3 3307 3372 3376 3 3307 3372 3376 3 3307 3372 3376 3 3307 3372 3376 3 3307 3372 3376 3 3307 3372 3376 5 3307 3369 3370 3372 3376 5 3307 3369 3370 3372 3376 5 3307 3369 3370 3372 3376 5 3307 3369 3370 3372 3376 5 3307 3369 3370 3372 3376 5 3307 3369 3370 3372 3376 3 3307 3369 3370 3 3307 3369 3370 3 3307 3369 3370 3 3307 3369 3370 3 3307 3369 3370 3 3307 3369 3370 2 3308 3430 2 3308 3430 2 3308 3430 2 3308 3430 2 3308 3430 2 3308 3430 3 3308 3309 3321 3 3308 3309 3321 3 3308 3309 3321 3 3308 3309 3321 3 3308 3309 3321 3 3308 3309 3321 3 3311 3313 3411 3 3311 3313 3411 3 3311 3313 3411 3 3311 3313 3411 3 3311 3313 3411 3 3311 3313 3411 3 3313 3315 3400 3 3313 3315 3400 3 3313 3315 3400 3 3313 3315 3400 3 3313 3315 3400 3 3313 3315 3400 3 3315 3316 3391 3 3315 3316 3391 3 3315 3316 3391 3 3315 3316 3391 3 3315 3316 3391 3 3315 3316 3391 2 3318 3322 2 3318 3322 2 3318 3322 2 3318 3322 2 3318 3322 2 3318 3322 1 3318 1 3318 1 3318 1 3318 1 3318 1 3318 4 3319 3323 3414 3415 4 3319 3323 3414 3415 4 3319 3323 3414 3415 4 3319 3323 3414 3415 4 3319 3323 3414 3415 4 3319 3323 3414 3415 4 3320 3324 3416 3417 4 3320 3324 3416 3417 4 3320 3324 3416 3417 4 3320 3324 3416 3417 4 3320 3324 3416 3417 4 3320 3324 3416 3417 4 3321 3325 3418 3419 4 3321 3325 3418 3419 4 3321 3325 3418 3419 4 3321 3325 3418 3419 4 3321 3325 3418 3419 4 3321 3325 3418 3419 2 3322 3326 2 3322 3326 2 3322 3326 2 3322 3326 2 3322 3326 2 3322 3326 4 3323 3327 3403 3404 4 3323 3327 3403 3404 4 3323 3327 3403 3404 4 3323 3327 3403 3404 4 3323 3327 3403 3404 4 3323 3327 3403 3404 4 3324 3328 3405 3406 4 3324 3328 3405 3406 4 3324 3328 3405 3406 4 3324 3328 3405 3406 4 3324 3328 3405 3406 4 3324 3328 3405 3406 4 3325 3329 3407 3411 4 3325 3329 3407 3411 4 3325 3329 3407 3411 4 3325 3329 3407 3411 4 3325 3329 3407 3411 4 3325 3329 3407 3411 4 3326 3330 3388 3389 4 3326 3330 3388 3389 4 3326 3330 3388 3389 4 3326 3330 3388 3389 4 3326 3330 3388 3389 4 3326 3330 3388 3389 1 3326 1 3326 1 3326 1 3326 1 3326 1 3326 4 3327 3331 3392 3393 4 3327 3331 3392 3393 4 3327 3331 3392 3393 4 3327 3331 3392 3393 4 3327 3331 3392 3393 4 3327 3331 3392 3393 4 3328 3332 3394 3395 4 3328 3332 3394 3395 4 3328 3332 3394 3395 4 3328 3332 3394 3395 4 3328 3332 3394 3395 4 3328 3332 3394 3395 4 3329 3333 3396 3400 4 3329 3333 3396 3400 4 3329 3333 3396 3400 4 3329 3333 3396 3400 4 3329 3333 3396 3400 4 3329 3333 3396 3400 4 3330 3355 3361 3385 4 3330 3355 3361 3385 4 3330 3355 3361 3385 4 3330 3355 3361 3385 4 3330 3355 3361 3385 4 3330 3355 3361 3385 4 3331 3356 3362 3386 4 3331 3356 3362 3386 4 3331 3356 3362 3386 4 3331 3356 3362 3386 4 3331 3356 3362 3386 4 3331 3356 3362 3386 4 3332 3357 3363 3387 4 3332 3357 3363 3387 4 3332 3357 3363 3387 4 3332 3357 3363 3387 4 3332 3357 3363 3387 4 3332 3357 3363 3387 4 3333 3358 3364 3391 4 3333 3358 3364 3391 4 3333 3358 3364 3391 4 3333 3358 3364 3391 4 3333 3358 3364 3391 4 3333 3358 3364 3391 2 3334 3335 2 3334 3335 2 3334 3335 2 3334 3335 2 3334 3335 2 3334 3335 4 3334 3335 3420 3421 4 3334 3335 3420 3421 4 3334 3335 3420 3421 4 3334 3335 3420 3421 4 3334 3335 3420 3421 4 3334 3335 3420 3421 2 3334 3421 2 3334 3421 2 3334 3421 2 3334 3421 2 3334 3421 2 3334 3421 3 3335 3341 3410 3 3335 3341 3410 3 3335 3341 3410 3 3335 3341 3410 3 3335 3341 3410 3 3335 3341 3410 2 3335 3420 2 3335 3420 2 3335 3420 2 3335 3420 2 3335 3420 2 3335 3420 3 3336 3342 3409 3 3336 3342 3409 3 3336 3342 3409 3 3336 3342 3409 3 3336 3342 3409 3 3336 3342 3409 2 3336 3422 2 3336 3422 2 3336 3422 2 3336 3422 2 3336 3422 2 3336 3422 3 3337 3343 3412 3 3337 3343 3412 3 3337 3343 3412 3 3337 3343 3412 3 3337 3343 3412 3 3337 3343 3412 2 3337 3424 2 3337 3424 2 3337 3424 2 3337 3424 2 3337 3424 2 3337 3424 3 3338 3344 3414 3 3338 3344 3414 3 3338 3344 3414 3 3338 3344 3414 3 3338 3344 3414 3 3338 3344 3414 2 3338 3426 2 3338 3426 2 3338 3426 2 3338 3426 2 3338 3426 2 3338 3426 3 3339 3345 3416 3 3339 3345 3416 3 3339 3345 3416 3 3339 3345 3416 3 3339 3345 3416 3 3339 3345 3416 2 3339 3428 2 3339 3428 2 3339 3428 2 3339 3428 2 3339 3428 2 3339 3428 3 3340 3346 3418 3 3340 3346 3418 3 3340 3346 3418 3 3340 3346 3418 3 3340 3346 3418 3 3340 3346 3418 2 3340 3430 2 3340 3430 2 3340 3430 2 3340 3430 2 3340 3430 2 3340 3430 3 3341 3347 3399 3 3341 3347 3399 3 3341 3347 3399 3 3341 3347 3399 3 3341 3347 3399 3 3341 3347 3399 3 3342 3348 3398 3 3342 3348 3398 3 3342 3348 3398 3 3342 3348 3398 3 3342 3348 3398 3 3342 3348 3398 3 3343 3349 3401 3 3343 3349 3401 3 3343 3349 3401 3 3343 3349 3401 3 3343 3349 3401 3 3343 3349 3401 3 3344 3350 3403 3 3344 3350 3403 3 3344 3350 3403 3 3344 3350 3403 3 3344 3350 3403 3 3344 3350 3403 3 3345 3351 3405 3 3345 3351 3405 3 3345 3351 3405 3 3345 3351 3405 3 3345 3351 3405 3 3345 3351 3405 3 3346 3352 3407 3 3346 3352 3407 3 3346 3352 3407 3 3346 3352 3407 3 3346 3352 3407 3 3346 3352 3407 3 3348 3354 3390 3 3348 3354 3390 3 3348 3354 3390 3 3348 3354 3390 3 3348 3354 3390 3 3348 3354 3390 3 3349 3355 3389 3 3349 3355 3389 3 3349 3355 3389 3 3349 3355 3389 3 3349 3355 3389 3 3349 3355 3389 3 3350 3356 3392 3 3350 3356 3392 3 3350 3356 3392 3 3350 3356 3392 3 3350 3356 3392 3 3350 3356 3392 3 3351 3357 3394 3 3351 3357 3394 3 3351 3357 3394 3 3351 3357 3394 3 3351 3357 3394 3 3351 3357 3394 3 3352 3358 3396 3 3352 3358 3396 3 3352 3358 3396 3 3352 3358 3396 3 3352 3358 3396 3 3352 3358 3396 3 3353 3359 3383 3 3353 3359 3383 3 3353 3359 3383 3 3353 3359 3383 3 3353 3359 3383 3 3353 3359 3383 3 3354 3360 3384 3 3354 3360 3384 3 3354 3360 3384 3 3354 3360 3384 3 3354 3360 3384 3 3354 3360 3384 3 3359 3365 3377 3 3359 3365 3377 3 3359 3365 3377 3 3359 3365 3377 3 3359 3365 3377 3 3359 3365 3377 3 3360 3366 3378 3 3360 3366 3378 3 3360 3366 3378 3 3360 3366 3378 3 3360 3366 3378 3 3360 3366 3378 3 3361 3367 3379 3 3361 3367 3379 3 3361 3367 3379 3 3361 3367 3379 3 3361 3367 3379 3 3361 3367 3379 3 3362 3368 3380 3 3362 3368 3380 3 3362 3368 3380 3 3362 3368 3380 3 3362 3368 3380 3 3362 3368 3380 3 3363 3369 3381 3 3363 3369 3381 3 3363 3369 3381 3 3363 3369 3381 3 3363 3369 3381 3 3363 3369 3381 3 3364 3370 3382 3 3364 3370 3382 3 3364 3370 3382 3 3364 3370 3382 3 3364 3370 3382 3 3364 3370 3382 2 3369 3372 2 3369 3372 2 3369 3372 2 3369 3372 2 3369 3372 2 3369 3372 2 3370 3376 2 3370 3376 2 3370 3376 2 3370 3376 2 3370 3376 2 3370 3376 2 3397 3398 2 3397 3398 2 3397 3398 2 3397 3398 2 3397 3398 2 3397 3398 2 3401 3402 2 3401 3402 2 3401 3402 2 3401 3402 2 3401 3402 2 3401 3402 2 3408 3409 2 3408 3409 2 3408 3409 2 3408 3409 2 3408 3409 2 3408 3409 2 3412 3413 2 3412 3413 2 3412 3413 2 3412 3413 2 3412 3413 2 3412 3413 2 3420 3421 2 3420 3421 2 3420 3421 2 3420 3421 2 3420 3421 2 3420 3421 2 3422 3423 2 3422 3423 2 3422 3423 2 3422 3423 2 3422 3423 2 3422 3423 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 18 13 14 15 16 17 18 31 32 33 34 35 36 37 38 39 40 41 42 18 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 18 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 18 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 18 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 18 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 18 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 18 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 18 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 18 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 18 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 18 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 18 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 18 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 18 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 18 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 18 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 18 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 18 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 18 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 18 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 18 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 18 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 18 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 18 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 18 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 18 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 18 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 18 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 18 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 18 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 18 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 18 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 18 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 18 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 18 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 18 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 18 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 18 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 18 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 18 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 18 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 18 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 18 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 18 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 18 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 18 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 18 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 18 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 18 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 12 637 638 639 640 641 642 643 644 645 646 647 648 12 649 650 651 652 653 654 655 656 657 658 659 660 12 661 662 663 664 665 666 667 668 669 670 671 672 12 673 674 675 676 677 678 679 680 681 682 683 684 12 685 686 687 688 689 690 691 692 693 694 695 696 12 697 698 699 700 701 702 703 704 705 706 707 708 12 643 644 645 646 647 648 709 710 711 712 713 714 12 655 656 657 658 659 660 715 716 717 718 719 720 12 667 668 669 670 671 672 721 722 723 724 725 726 12 679 680 681 682 683 684 727 728 729 730 731 732 12 691 692 693 694 695 696 733 734 735 736 737 738 12 703 704 705 706 707 708 739 740 741 742 743 744 12 709 710 711 712 713 714 745 746 747 748 749 750 12 715 716 717 718 719 720 751 752 753 754 755 756 12 721 722 723 724 725 726 757 758 759 760 761 762 12 727 728 729 730 731 732 763 764 765 766 767 768 12 733 734 735 736 737 738 769 770 771 772 773 774 12 739 740 741 742 743 744 775 776 777 778 779 780 12 745 746 747 748 749 750 781 782 783 784 785 786 12 751 752 753 754 755 756 787 788 789 790 791 792 12 757 758 759 760 761 762 793 794 795 796 797 798 12 763 764 765 766 767 768 799 800 801 802 803 804 12 769 770 771 772 773 774 805 806 807 808 809 810 12 775 776 777 778 779 780 811 812 813 814 815 816 12 817 818 819 820 821 822 823 824 825 826 827 828 12 829 830 831 832 833 834 835 836 837 838 839 840 12 841 842 843 844 845 846 847 848 849 850 851 852 12 853 854 855 856 857 858 859 860 861 862 863 864 12 865 866 867 868 869 870 871 872 873 874 875 876 12 877 878 879 880 881 882 883 884 885 886 887 888 12 889 890 891 892 893 894 817 818 819 820 821 822 12 895 896 897 898 899 900 829 830 831 832 833 834 12 901 902 903 904 905 906 841 842 843 844 845 846 12 907 908 909 910 911 912 853 854 855 856 857 858 12 913 914 915 916 917 918 865 866 867 868 869 870 12 919 920 921 922 923 924 877 878 879 880 881 882 12 925 926 927 928 929 930 889 890 891 892 893 894 12 931 932 933 934 935 936 895 896 897 898 899 900 12 937 938 939 940 941 942 901 902 903 904 905 906 12 943 944 945 946 947 948 907 908 909 910 911 912 12 949 950 951 952 953 954 913 914 915 916 917 918 12 955 956 957 958 959 960 919 920 921 922 923 924 12 961 962 963 964 965 966 925 926 927 928 929 930 12 967 968 969 970 971 972 931 932 933 934 935 936 12 973 974 975 976 977 978 937 938 939 940 941 942 12 979 980 981 982 983 984 943 944 945 946 947 948 12 985 986 987 988 989 990 949 950 951 952 953 954 12 991 992 993 994 995 996 955 956 957 958 959 960 18 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 18 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 997 998 999 1000 1001 1002 18 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1015 1016 1017 1018 1019 1020 18 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1027 1028 1029 1030 1031 1032 18 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1039 1040 1041 1042 1043 1044 18 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1051 1052 1053 1054 1055 1056 18 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1063 1064 1065 1066 1067 1068 18 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1075 1076 1077 1078 1079 1080 18 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1087 1088 1089 1090 1091 1092 18 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1099 1100 1101 1102 1103 1104 18 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1111 1112 1113 1114 1115 1116 18 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1123 1124 1125 1126 1127 1128 18 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1135 1136 1137 1138 1139 1140 18 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1147 1148 1149 1150 1151 1152 18 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1159 1160 1161 1162 1163 1164 18 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1171 1172 1173 1174 1175 1176 18 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1183 1184 1185 1186 1187 1188 18 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1195 1196 1197 1198 1199 1200 18 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1207 1208 1209 1210 1211 1212 18 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1219 1220 1221 1222 1223 1224 18 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1231 1232 1233 1234 1235 1236 18 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1243 1244 1245 1246 1247 1248 18 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1255 1256 1257 1258 1259 1260 18 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1267 1268 1269 1270 1271 1272 18 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1279 1280 1281 1282 1283 1284 18 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1291 1292 1293 1294 1295 1296 18 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1303 1304 1305 1306 1307 1308 18 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1315 1316 1317 1318 1319 1320 18 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1327 1328 1329 1330 1331 1332 18 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1339 1340 1341 1342 1343 1344 18 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1351 1352 1353 1354 1355 1356 18 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1363 1364 1365 1366 1367 1368 18 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1375 1376 1377 1378 1379 1380 18 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1387 1388 1389 1390 1391 1392 18 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1399 1400 1401 1402 1403 1404 18 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1411 1412 1413 1414 1415 1416 18 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1423 1424 1425 1426 1427 1428 18 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1435 1436 1437 1438 1439 1440 18 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1447 1448 1449 1450 1451 1452 18 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1459 1460 1461 1462 1463 1464 18 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1471 1472 1473 1474 1475 1476 18 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1483 1484 1485 1486 1487 1488 18 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1495 1496 1497 1498 1499 1500 18 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1507 1508 1509 1510 1511 1512 18 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1519 1520 1521 1522 1523 1524 18 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1531 1532 1533 1534 1535 1536 18 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1543 1544 1545 1546 1547 1548 18 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1555 1556 1557 1558 1559 1560 18 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 18 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1579 1580 1581 1582 1583 1584 18 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 18 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1597 1598 1599 1600 1601 1602 18 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 18 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 18 1633 1634 1635 1636 1637 1638 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 18 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 18 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 18 1645 1646 1647 1648 1649 1650 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 18 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 18 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 18 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 48 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1783 1784 1785 1786 1787 1788 1777 1778 1779 1780 1781 1782 1789 1790 1791 1792 1793 1794 48 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1771 1772 1773 1774 1775 1776 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1813 1814 1815 1816 1817 1818 1807 1808 1809 1810 1811 1812 1819 1820 1821 1822 1823 1824 48 1759 1760 1761 1762 1763 1764 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1771 1772 1773 1774 1775 1776 1765 1766 1767 1768 1769 1770 48 1771 1772 1773 1774 1775 1776 1849 1850 1851 1852 1853 1854 1843 1844 1845 1846 1847 1848 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1801 1802 1803 1804 1805 1806 1795 1796 1797 1798 1799 1800 48 1831 1832 1833 1834 1835 1836 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1843 1844 1845 1846 1847 1848 1837 1838 1839 1840 1841 1842 48 1843 1844 1845 1846 1847 1848 1897 1898 1899 1900 1901 1902 1891 1892 1893 1894 1895 1896 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1861 1862 1863 1864 1865 1866 1855 1856 1857 1858 1859 1860 48 1879 1880 1881 1882 1883 1884 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1891 1892 1893 1894 1895 1896 1885 1886 1887 1888 1889 1890 48 1891 1892 1893 1894 1895 1896 1945 1946 1947 1948 1949 1950 1939 1940 1941 1942 1943 1944 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1909 1910 1911 1912 1913 1914 1903 1904 1905 1906 1907 1908 48 1927 1928 1929 1930 1931 1932 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1939 1940 1941 1942 1943 1944 1933 1934 1935 1936 1937 1938 48 1939 1940 1941 1942 1943 1944 1993 1994 1995 1996 1997 1998 1987 1988 1989 1990 1991 1992 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 1957 1958 1959 1960 1961 1962 1951 1952 1953 1954 1955 1956 48 1975 1976 1977 1978 1979 1980 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 1987 1988 1989 1990 1991 1992 1981 1982 1983 1984 1985 1986 36 2005 2006 2007 2008 2009 2010 2035 2036 2037 2038 2039 2040 1987 1988 1989 1990 1991 1992 2047 2048 2049 2050 2051 2052 2041 2042 2043 2044 2045 2046 1999 2000 2001 2002 2003 2004 48 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2089 2090 2091 2092 2093 2094 2083 2084 2085 2086 2087 2088 2095 2096 2097 2098 2099 2100 48 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2077 2078 2079 2080 2081 2082 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2119 2120 2121 2122 2123 2124 2113 2114 2115 2116 2117 2118 2125 2126 2127 2128 2129 2130 48 2065 2066 2067 2068 2069 2070 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2077 2078 2079 2080 2081 2082 2071 2072 2073 2074 2075 2076 48 2077 2078 2079 2080 2081 2082 2155 2156 2157 2158 2159 2160 2149 2150 2151 2152 2153 2154 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2107 2108 2109 2110 2111 2112 2101 2102 2103 2104 2105 2106 48 2137 2138 2139 2140 2141 2142 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2149 2150 2151 2152 2153 2154 2143 2144 2145 2146 2147 2148 48 2149 2150 2151 2152 2153 2154 2203 2204 2205 2206 2207 2208 2197 2198 2199 2200 2201 2202 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2167 2168 2169 2170 2171 2172 2161 2162 2163 2164 2165 2166 48 2185 2186 2187 2188 2189 2190 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2197 2198 2199 2200 2201 2202 2191 2192 2193 2194 2195 2196 48 2197 2198 2199 2200 2201 2202 2251 2252 2253 2254 2255 2256 2245 2246 2247 2248 2249 2250 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2215 2216 2217 2218 2219 2220 2209 2210 2211 2212 2213 2214 48 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2311 2312 2313 2314 2315 2316 2305 2306 2307 2308 2309 2310 2317 2318 2319 2320 2321 2322 34 2335 2336 2337 2338 2339 2340 2347 2348 2349 2350 2323 2324 2325 2326 2327 2328 2341 2342 2343 2344 2345 2346 2351 2352 2353 2354 2355 2356 2329 2330 2331 2332 2333 2334 36 2263 2264 2265 2266 2267 2268 2335 2336 2337 2338 2339 2340 2245 2246 2247 2248 2249 2250 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2257 2258 2259 2260 2261 2262 48 2233 2234 2235 2236 2237 2238 2369 2370 2371 2372 2373 2374 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2363 2364 2365 2366 2367 2368 2245 2246 2247 2248 2249 2250 2239 2240 2241 2242 2243 2244 48 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2299 2300 2301 2302 2303 2304 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2393 2394 2395 2396 2397 2398 2387 2388 2389 2390 2391 2392 2399 2400 2401 2402 2403 2404 48 2287 2288 2289 2290 2291 2292 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2299 2300 2301 2302 2303 2304 2293 2294 2295 2296 2297 2298 48 2299 2300 2301 2302 2303 2304 2429 2430 2431 2432 2433 2434 2423 2424 2425 2426 2427 2428 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2381 2382 2383 2384 2385 2386 2375 2376 2377 2378 2379 2380 48 2411 2412 2413 2414 2415 2416 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2423 2424 2425 2426 2427 2428 2417 2418 2419 2420 2421 2422 48 2423 2424 2425 2426 2427 2428 2477 2478 2479 2480 2481 2482 2471 2472 2473 2474 2475 2476 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2441 2442 2443 2444 2445 2446 2435 2436 2437 2438 2439 2440 48 2459 2460 2461 2462 2463 2464 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2471 2472 2473 2474 2475 2476 2465 2466 2467 2468 2469 2470 48 2471 2472 2473 2474 2475 2476 2525 2526 2527 2528 2529 2530 2519 2520 2521 2522 2523 2524 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2489 2490 2491 2492 2493 2494 2483 2484 2485 2486 2487 2488 48 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2585 2586 2587 2588 2589 2590 2579 2580 2581 2582 2583 2584 2591 2592 2593 2594 2595 2596 36 2597 2598 2599 2600 2601 2602 2621 2622 2623 2624 2625 2626 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2627 2628 2629 2630 2631 2632 2603 2604 2605 2606 2607 2608 36 2537 2538 2539 2540 2541 2542 2597 2598 2599 2600 2601 2602 2519 2520 2521 2522 2523 2524 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2531 2532 2533 2534 2535 2536 48 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2639 2640 2641 2642 2643 2644 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2645 2646 2647 2648 2649 2650 48 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2573 2574 2575 2576 2577 2578 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2669 2670 2671 2672 2673 2674 2663 2664 2665 2666 2667 2668 2675 2676 2677 2678 2679 2680 48 2561 2562 2563 2564 2565 2566 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2573 2574 2575 2576 2577 2578 2567 2568 2569 2570 2571 2572 48 2573 2574 2575 2576 2577 2578 2705 2706 2707 2708 2709 2710 2699 2700 2701 2702 2703 2704 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2657 2658 2659 2660 2661 2662 2651 2652 2653 2654 2655 2656 48 2687 2688 2689 2690 2691 2692 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2699 2700 2701 2702 2703 2704 2693 2694 2695 2696 2697 2698 48 2699 2700 2701 2702 2703 2704 2753 2754 2755 2756 2757 2758 2747 2748 2749 2750 2751 2752 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2717 2718 2719 2720 2721 2722 2711 2712 2713 2714 2715 2716 48 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2813 2814 2815 2816 2817 2818 2807 2808 2809 2810 2811 2812 2819 2820 2821 2822 2823 2824 36 2837 2838 2839 2840 2841 2842 2849 2850 2851 2852 2853 2854 2825 2826 2827 2828 2829 2830 2843 2844 2845 2846 2847 2848 2855 2856 2857 2858 2859 2860 2831 2832 2833 2834 2835 2836 48 2747 2748 2749 2750 2751 2752 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2861 2862 2863 2864 2865 2866 2837 2838 2839 2840 2841 2842 2831 2832 2833 2834 2835 2836 2825 2826 2827 2828 2829 2830 2867 2868 2869 2870 2871 2872 36 2747 2748 2749 2750 2751 2752 2825 2826 2827 2828 2829 2830 2735 2736 2737 2738 2739 2740 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2741 2742 2743 2744 2745 2746 48 2789 2790 2791 2792 2793 2794 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2801 2802 2803 2804 2805 2806 2795 2796 2797 2798 2799 2800 48 2885 2886 2887 2888 2889 2890 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2897 2898 2899 2900 2901 2902 2891 2892 2893 2894 2895 2896 48 2915 2916 2917 2918 2919 2920 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2927 2928 2929 2930 2931 2932 2921 2922 2923 2924 2925 2926 48 2945 2946 2947 2948 2949 2950 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2957 2958 2959 2960 2961 2962 2951 2952 2953 2954 2955 2956 36 2987 2988 2989 2990 2991 2992 3005 3006 3007 3008 3009 3010 2975 2976 2977 2978 2979 2980 2999 3000 3001 3002 3003 3004 3011 3012 3013 3014 3015 3016 2981 2982 2983 2984 2985 2986 48 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3053 3054 3055 3056 3057 3058 3047 3048 3049 3050 3051 3052 3059 3060 3061 3062 3063 3064 48 3029 3030 3031 3032 3033 3034 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3041 3042 3043 3044 3045 3046 3035 3036 3037 3038 3039 3040 48 3071 3072 3073 3074 3075 3076 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3083 3084 3085 3086 3087 3088 3077 3078 3079 3080 3081 3082 48 3101 3102 3103 3104 3105 3106 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3113 3114 3115 3116 3117 3118 3107 3108 3109 3110 3111 3112 48 3131 3132 3133 3134 3135 3136 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3143 3144 3145 3146 3147 3148 3137 3138 3139 3140 3141 3142 36 3173 3174 3175 3176 3177 3178 3191 3192 3193 3194 3195 3196 3161 3162 3163 3164 3165 3166 3185 3186 3187 3188 3189 3190 3197 3198 3199 3200 3201 3202 3167 3168 3169 3170 3171 3172 48 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3239 3240 3241 3242 3243 3244 3233 3234 3235 3236 3237 3238 3245 3246 3247 3248 3249 3250 48 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 37 38 39 40 41 42 31 32 33 34 35 36 13 14 15 16 17 18 3275 3276 3277 3278 3279 3280 48 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3251 3252 3253 3254 3255 3256 3275 3276 3277 3278 3279 3280 13 14 15 16 17 18 7 8 9 10 11 12 1 2 3 4 5 6 3293 3294 3295 3296 3297 3298 48 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3281 3282 3283 3284 3285 3286 3293 3294 3295 3296 3297 3298 1 2 3 4 5 6 25 26 27 28 29 30 19 20 21 22 23 24 3311 3312 3313 3314 3315 3316 36 3227 3228 3229 3230 3231 3232 3323 3324 3325 3326 3327 3328 3215 3216 3217 3218 3219 3220 3317 3318 3319 3320 3321 3322 3329 3330 3331 3332 3333 3334 3221 3222 3223 3224 3225 3226 48 3263 3264 3265 3266 3267 3268 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 49 50 51 52 53 54 43 44 45 46 47 48 37 38 39 40 41 42 3269 3270 3271 3272 3273 3274 48 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3227 3228 3229 3230 3231 3232 3353 3354 3355 3356 3357 3358 3041 3042 3043 3044 3045 3046 3053 3054 3055 3056 3057 3058 3047 3048 3049 3050 3051 3052 3359 3360 3361 3362 3363 3364 48 3227 3228 3229 3230 3231 3232 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3365 3366 3367 3368 3369 3370 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3041 3042 3043 3044 3045 3046 3353 3354 3355 3356 3357 3358 48 3323 3324 3325 3326 3327 3328 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3083 3084 3085 3086 3087 3088 3365 3366 3367 3368 3369 3370 48 3377 3378 3379 3380 3381 3382 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3113 3114 3115 3116 3117 3118 3383 3384 3385 3386 3387 3388 48 3395 3396 3397 3398 3399 3400 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3143 3144 3145 3146 3147 3148 3401 3402 3403 3404 3405 3406 36 3191 3192 3193 3194 3195 3196 3173 3174 3175 3176 3177 3178 3413 3414 3415 3416 3417 3418 3185 3186 3187 3188 3189 3190 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 48 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3041 3042 3043 3044 3045 3046 3431 3432 3433 3434 3435 3436 2801 2802 2803 2804 2805 2806 2813 2814 2815 2816 2817 2818 2807 2808 2809 2810 2811 2812 3437 3438 3439 3440 3441 3442 48 3041 3042 3043 3044 3045 3046 3089 3090 3091 3092 3093 3094 3083 3084 3085 3086 3087 3088 3443 3444 3445 3446 3447 3448 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2801 2802 2803 2804 2805 2806 3431 3432 3433 3434 3435 3436 48 3083 3084 3085 3086 3087 3088 3119 3120 3121 3122 3123 3124 3113 3114 3115 3116 3117 3118 3449 3450 3451 3452 3453 3454 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2897 2898 2899 2900 2901 2902 3443 3444 3445 3446 3447 3448 48 3113 3114 3115 3116 3117 3118 3149 3150 3151 3152 3153 3154 3143 3144 3145 3146 3147 3148 3455 3456 3457 3458 3459 3460 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2927 2928 2929 2930 2931 2932 3449 3450 3451 3452 3453 3454 48 3143 3144 3145 3146 3147 3148 3179 3180 3181 3182 3183 3184 3173 3174 3175 3176 3177 3178 3461 3462 3463 3464 3465 3466 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2957 2958 2959 2960 2961 2962 3455 3456 3457 3458 3459 3460 48 3173 3174 3175 3176 3177 3178 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3467 3468 3469 3470 3471 3472 3005 3006 3007 3008 3009 3010 2999 3000 3001 3002 3003 3004 2987 2988 2989 2990 2991 2992 3461 3462 3463 3464 3465 3466 48 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2801 2802 2803 2804 2805 2806 3473 3474 3475 3476 3477 3478 2657 2658 2659 2660 2661 2662 2669 2670 2671 2672 2673 2674 2663 2664 2665 2666 2667 2668 3479 3480 3481 3482 3483 3484 48 2801 2802 2803 2804 2805 2806 2903 2904 2905 2906 2907 2908 2897 2898 2899 2900 2901 2902 3485 3486 3487 3488 3489 3490 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2657 2658 2659 2660 2661 2662 3473 3474 3475 3476 3477 3478 48 2897 2898 2899 2900 2901 2902 2933 2934 2935 2936 2937 2938 2927 2928 2929 2930 2931 2932 3491 3492 3493 3494 3495 3496 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2717 2718 2719 2720 2721 2722 3485 3486 3487 3488 3489 3490 48 2927 2928 2929 2930 2931 2932 2963 2964 2965 2966 2967 2968 2957 2958 2959 2960 2961 2962 3497 3498 3499 3500 3501 3502 2837 2838 2839 2840 2841 2842 2861 2862 2863 2864 2865 2866 2765 2766 2767 2768 2769 2770 3491 3492 3493 3494 3495 3496 48 2957 2958 2959 2960 2961 2962 2993 2994 2995 2996 2997 2998 2987 2988 2989 2990 2991 2992 3503 3504 3505 3506 3507 3508 2849 2850 2851 2852 2853 2854 2843 2844 2845 2846 2847 2848 2837 2838 2839 2840 2841 2842 3497 3498 3499 3500 3501 3502 36 3005 3006 3007 3008 3009 3010 2849 2850 2851 2852 2853 2854 2987 2988 2989 2990 2991 2992 3509 3510 3511 3512 3513 3514 3503 3504 3505 3506 3507 3508 2999 3000 3001 3002 3003 3004 48 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2657 2658 2659 2660 2661 2662 3515 3516 3517 3518 3519 3520 2381 2382 2383 2384 2385 2386 2393 2394 2395 2396 2397 2398 2387 2388 2389 2390 2391 2392 3521 3522 3523 3524 3525 3526 48 2657 2658 2659 2660 2661 2662 2723 2724 2725 2726 2727 2728 2717 2718 2719 2720 2721 2722 3527 3528 3529 3530 3531 3532 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2381 2382 2383 2384 2385 2386 3515 3516 3517 3518 3519 3520 48 2717 2718 2719 2720 2721 2722 2771 2772 2773 2774 2775 2776 2765 2766 2767 2768 2769 2770 3533 3534 3535 3536 3537 3538 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2441 2442 2443 2444 2445 2446 3527 3528 3529 3530 3531 3532 48 2765 2766 2767 2768 2769 2770 2861 2862 2863 2864 2865 2866 2837 2838 2839 2840 2841 2842 3539 3540 3541 3542 3543 3544 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2489 2490 2491 2492 2493 2494 3533 3534 3535 3536 3537 3538 48 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 3545 3546 3547 3548 3549 3550 2597 2598 2599 2600 2601 2602 2633 2634 2635 2636 2637 2638 2537 2538 2539 2540 2541 2542 3539 3540 3541 3542 3543 3544 36 2621 2622 2623 2624 2625 2626 2597 2598 2599 2600 2601 2602 2849 2850 2851 2852 2853 2854 2615 2616 2617 2618 2619 2620 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 48 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2381 2382 2383 2384 2385 2386 3557 3558 3559 3560 3561 3562 2107 2108 2109 2110 2111 2112 2119 2120 2121 2122 2123 2124 2113 2114 2115 2116 2117 2118 3563 3564 3565 3566 3567 3568 48 2381 2382 2383 2384 2385 2386 2447 2448 2449 2450 2451 2452 2441 2442 2443 2444 2445 2446 3569 3570 3571 3572 3573 3574 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2107 2108 2109 2110 2111 2112 3557 3558 3559 3560 3561 3562 48 2441 2442 2443 2444 2445 2446 2495 2496 2497 2498 2499 2500 2489 2490 2491 2492 2493 2494 3575 3576 3577 3578 3579 3580 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2167 2168 2169 2170 2171 2172 3569 3570 3571 3572 3573 3574 48 2489 2490 2491 2492 2493 2494 2543 2544 2545 2546 2547 2548 2537 2538 2539 2540 2541 2542 3581 3582 3583 3584 3585 3586 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2215 2216 2217 2218 2219 2220 3575 3576 3577 3578 3579 3580 48 2537 2538 2539 2540 2541 2542 2633 2634 2635 2636 2637 2638 2597 2598 2599 2600 2601 2602 3587 3588 3589 3590 3591 3592 2335 2336 2337 2338 2339 2340 2357 2358 2359 2360 2361 2362 2263 2264 2265 2266 2267 2268 3581 3582 3583 3584 3585 3586 46 2597 2598 2599 2600 2601 2602 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 3593 3594 3595 3596 3597 3598 2347 2348 2349 2350 2341 2342 2343 2344 2345 2346 2335 2336 2337 2338 2339 2340 3587 3588 3589 3590 3591 3592 48 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2107 2108 2109 2110 2111 2112 3599 3600 3601 3602 3603 3604 1801 1802 1803 1804 1805 1806 1813 1814 1815 1816 1817 1818 1807 1808 1809 1810 1811 1812 3605 3606 3607 3608 3609 3610 48 2107 2108 2109 2110 2111 2112 2173 2174 2175 2176 2177 2178 2167 2168 2169 2170 2171 2172 3611 3612 3613 3614 3615 3616 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1801 1802 1803 1804 1805 1806 3599 3600 3601 3602 3603 3604 48 2167 2168 2169 2170 2171 2172 2221 2222 2223 2224 2225 2226 2215 2216 2217 2218 2219 2220 3617 3618 3619 3620 3621 3622 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1861 1862 1863 1864 1865 1866 3611 3612 3613 3614 3615 3616 48 2215 2216 2217 2218 2219 2220 2269 2270 2271 2272 2273 2274 2263 2264 2265 2266 2267 2268 3623 3624 3625 3626 3627 3628 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1909 1910 1911 1912 1913 1914 3617 3618 3619 3620 3621 3622 48 2263 2264 2265 2266 2267 2268 2357 2358 2359 2360 2361 2362 2335 2336 2337 2338 2339 2340 3629 3630 3631 3632 3633 3634 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 1957 1958 1959 1960 1961 1962 3623 3624 3625 3626 3627 3628 46 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 3635 3636 3637 3638 3639 3640 2035 2036 2037 2038 2039 2040 2047 2048 2049 2050 2051 2052 2005 2006 2007 2008 2009 2010 3629 3630 3631 3632 3633 3634 34 2035 2036 2037 2038 2039 2040 2023 2024 2025 2026 2027 2028 2347 2348 2349 2350 2029 2030 2031 2032 2033 2034 3641 3642 3643 3644 3645 3646 3635 3636 3637 3638 3639 3640 48 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2801 2802 2803 2804 2805 2806 3647 3648 3649 3650 3651 3652 2573 2574 2575 2576 2577 2578 2585 2586 2587 2588 2589 2590 2579 2580 2581 2582 2583 2584 3653 3654 3655 3656 3657 3658 48 2801 2802 2803 2804 2805 2806 2903 2904 2905 2906 2907 2908 2897 2898 2899 2900 2901 2902 3659 3660 3661 3662 3663 3664 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2573 2574 2575 2576 2577 2578 3647 3648 3649 3650 3651 3652 48 2897 2898 2899 2900 2901 2902 2933 2934 2935 2936 2937 2938 2927 2928 2929 2930 2931 2932 3665 3666 3667 3668 3669 3670 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2699 2700 2701 2702 2703 2704 3659 3660 3661 3662 3663 3664 48 2927 2928 2929 2930 2931 2932 2963 2964 2965 2966 2967 2968 2957 2958 2959 2960 2961 2962 3671 3672 3673 3674 3675 3676 2825 2826 2827 2828 2829 2830 2867 2868 2869 2870 2871 2872 2747 2748 2749 2750 2751 2752 3665 3666 3667 3668 3669 3670 48 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2573 2574 2575 2576 2577 2578 3677 3678 3679 3680 3681 3682 2299 2300 2301 2302 2303 2304 2311 2312 2313 2314 2315 2316 2305 2306 2307 2308 2309 2310 3683 3684 3685 3686 3687 3688 48 2573 2574 2575 2576 2577 2578 2705 2706 2707 2708 2709 2710 2699 2700 2701 2702 2703 2704 3689 3690 3691 3692 3693 3694 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2299 2300 2301 2302 2303 2304 3677 3678 3679 3680 3681 3682 48 2699 2700 2701 2702 2703 2704 2753 2754 2755 2756 2757 2758 2747 2748 2749 2750 2751 2752 3695 3696 3697 3698 3699 3700 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2423 2424 2425 2426 2427 2428 3689 3690 3691 3692 3693 3694 48 2747 2748 2749 2750 2751 2752 2867 2868 2869 2870 2871 2872 2825 2826 2827 2828 2829 2830 3701 3702 3703 3704 3705 3706 2537 2538 2539 2540 2541 2542 3707 3708 3709 3710 3711 3712 2471 2472 2473 2474 2475 2476 3695 3696 3697 3698 3699 3700 48 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2299 2300 2301 2302 2303 2304 3713 3714 3715 3716 3717 3718 2077 2078 2079 2080 2081 2082 2089 2090 2091 2092 2093 2094 2083 2084 2085 2086 2087 2088 3719 3720 3721 3722 3723 3724 48 2299 2300 2301 2302 2303 2304 2429 2430 2431 2432 2433 2434 2423 2424 2425 2426 2427 2428 3725 3726 3727 3728 3729 3730 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2077 2078 2079 2080 2081 2082 3713 3714 3715 3716 3717 3718 48 2423 2424 2425 2426 2427 2428 2477 2478 2479 2480 2481 2482 2471 2472 2473 2474 2475 2476 3731 3732 3733 3734 3735 3736 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2149 2150 2151 2152 2153 2154 3725 3726 3727 3728 3729 3730 48 2471 2472 2473 2474 2475 2476 3707 3708 3709 3710 3711 3712 2537 2538 2539 2540 2541 2542 3581 3582 3583 3584 3585 3586 2263 2264 2265 2266 2267 2268 3737 3738 3739 3740 3741 3742 2197 2198 2199 2200 2201 2202 3731 3732 3733 3734 3735 3736 48 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2077 2078 2079 2080 2081 2082 3743 3744 3745 3746 3747 3748 1771 1772 1773 1774 1775 1776 1783 1784 1785 1786 1787 1788 1777 1778 1779 1780 1781 1782 3749 3750 3751 3752 3753 3754 48 2077 2078 2079 2080 2081 2082 2155 2156 2157 2158 2159 2160 2149 2150 2151 2152 2153 2154 3755 3756 3757 3758 3759 3760 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1771 1772 1773 1774 1775 1776 3743 3744 3745 3746 3747 3748 48 2149 2150 2151 2152 2153 2154 2203 2204 2205 2206 2207 2208 2197 2198 2199 2200 2201 2202 3761 3762 3763 3764 3765 3766 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1843 1844 1845 1846 1847 1848 3755 3756 3757 3758 3759 3760 48 2197 2198 2199 2200 2201 2202 3737 3738 3739 3740 3741 3742 2263 2264 2265 2266 2267 2268 3623 3624 3625 3626 3627 3628 1957 1958 1959 1960 1961 1962 3767 3768 3769 3770 3771 3772 1891 1892 1893 1894 1895 1896 3761 3762 3763 3764 3765 3766 48 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3773 3774 3775 3776 3777 3778 3029 3030 3031 3032 3033 3034 3023 3024 3025 3026 3027 3028 3017 3018 3019 3020 3021 3022 3779 3780 3781 3782 3783 3784 48 3215 3216 3217 3218 3219 3220 3329 3330 3331 3332 3333 3334 3323 3324 3325 3326 3327 3328 3785 3786 3787 3788 3789 3790 3071 3072 3073 3074 3075 3076 3065 3066 3067 3068 3069 3070 3029 3030 3031 3032 3033 3034 3773 3774 3775 3776 3777 3778 48 3323 3324 3325 3326 3327 3328 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3791 3792 3793 3794 3795 3796 3101 3102 3103 3104 3105 3106 3095 3096 3097 3098 3099 3100 3071 3072 3073 3074 3075 3076 3785 3786 3787 3788 3789 3790 48 3377 3378 3379 3380 3381 3382 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3797 3798 3799 3800 3801 3802 3131 3132 3133 3134 3135 3136 3125 3126 3127 3128 3129 3130 3101 3102 3103 3104 3105 3106 3791 3792 3793 3794 3795 3796 48 3395 3396 3397 3398 3399 3400 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3803 3804 3805 3806 3807 3808 3161 3162 3163 3164 3165 3166 3155 3156 3157 3158 3159 3160 3131 3132 3133 3134 3135 3136 3797 3798 3799 3800 3801 3802 36 3191 3192 3193 3194 3195 3196 3161 3162 3163 3164 3165 3166 3413 3414 3415 3416 3417 3418 3197 3198 3199 3200 3201 3202 3803 3804 3805 3806 3807 3808 3425 3426 3427 3428 3429 3430 48 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3809 3810 3811 3812 3813 3814 2789 2790 2791 2792 2793 2794 2783 2784 2785 2786 2787 2788 2777 2778 2779 2780 2781 2782 3815 3816 3817 3818 3819 3820 48 3029 3030 3031 3032 3033 3034 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3821 3822 3823 3824 3825 3826 2885 2886 2887 2888 2889 2890 2879 2880 2881 2882 2883 2884 2789 2790 2791 2792 2793 2794 3809 3810 3811 3812 3813 3814 48 3071 3072 3073 3074 3075 3076 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3827 3828 3829 3830 3831 3832 2915 2916 2917 2918 2919 2920 2909 2910 2911 2912 2913 2914 2885 2886 2887 2888 2889 2890 3821 3822 3823 3824 3825 3826 48 3101 3102 3103 3104 3105 3106 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3833 3834 3835 3836 3837 3838 2945 2946 2947 2948 2949 2950 2939 2940 2941 2942 2943 2944 2915 2916 2917 2918 2919 2920 3827 3828 3829 3830 3831 3832 48 3131 3132 3133 3134 3135 3136 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3839 3840 3841 3842 3843 3844 2975 2976 2977 2978 2979 2980 2969 2970 2971 2972 2973 2974 2945 2946 2947 2948 2949 2950 3833 3834 3835 3836 3837 3838 48 3161 3162 3163 3164 3165 3166 3197 3198 3199 3200 3201 3202 3191 3192 3193 3194 3195 3196 3467 3468 3469 3470 3471 3472 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 2975 2976 2977 2978 2979 2980 3839 3840 3841 3842 3843 3844 48 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 3845 3846 3847 3848 3849 3850 2561 2562 2563 2564 2565 2566 2555 2556 2557 2558 2559 2560 2549 2550 2551 2552 2553 2554 3851 3852 3853 3854 3855 3856 48 2789 2790 2791 2792 2793 2794 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 3857 3858 3859 3860 3861 3862 2687 2688 2689 2690 2691 2692 2681 2682 2683 2684 2685 2686 2561 2562 2563 2564 2565 2566 3845 3846 3847 3848 3849 3850 48 2885 2886 2887 2888 2889 2890 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 3863 3864 3865 3866 3867 3868 2735 2736 2737 2738 2739 2740 2729 2730 2731 2732 2733 2734 2687 2688 2689 2690 2691 2692 3857 3858 3859 3860 3861 3862 48 2915 2916 2917 2918 2919 2920 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 3869 3870 3871 3872 3873 3874 2825 2826 2827 2828 2829 2830 2873 2874 2875 2876 2877 2878 2735 2736 2737 2738 2739 2740 3863 3864 3865 3866 3867 3868 48 2945 2946 2947 2948 2949 2950 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 3875 3876 3877 3878 3879 3880 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2825 2826 2827 2828 2829 2830 3869 3870 3871 3872 3873 3874 36 3005 3006 3007 3008 3009 3010 2849 2850 2851 2852 2853 2854 2975 2976 2977 2978 2979 2980 3509 3510 3511 3512 3513 3514 3875 3876 3877 3878 3879 3880 3011 3012 3013 3014 3015 3016 48 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 3881 3882 3883 3884 3885 3886 2287 2288 2289 2290 2291 2292 2281 2282 2283 2284 2285 2286 2275 2276 2277 2278 2279 2280 3887 3888 3889 3890 3891 3892 48 2561 2562 2563 2564 2565 2566 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 3893 3894 3895 3896 3897 3898 2411 2412 2413 2414 2415 2416 2405 2406 2407 2408 2409 2410 2287 2288 2289 2290 2291 2292 3881 3882 3883 3884 3885 3886 48 2687 2688 2689 2690 2691 2692 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 3899 3900 3901 3902 3903 3904 2459 2460 2461 2462 2463 2464 2453 2454 2455 2456 2457 2458 2411 2412 2413 2414 2415 2416 3893 3894 3895 3896 3897 3898 48 2735 2736 2737 2738 2739 2740 2873 2874 2875 2876 2877 2878 2825 2826 2827 2828 2829 2830 3905 3906 3907 3908 3909 3910 2507 2508 2509 2510 2511 2512 2501 2502 2503 2504 2505 2506 2459 2460 2461 2462 2463 2464 3899 3900 3901 3902 3903 3904 48 2825 2826 2827 2828 2829 2830 2855 2856 2857 2858 2859 2860 2849 2850 2851 2852 2853 2854 3911 3912 3913 3914 3915 3916 2609 2610 2611 2612 2613 2614 2645 2646 2647 2648 2649 2650 2507 2508 2509 2510 2511 2512 3905 3906 3907 3908 3909 3910 36 2621 2622 2623 2624 2625 2626 2609 2610 2611 2612 2613 2614 2849 2850 2851 2852 2853 2854 2627 2628 2629 2630 2631 2632 3911 3912 3913 3914 3915 3916 3551 3552 3553 3554 3555 3556 48 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 3917 3918 3919 3920 3921 3922 2065 2066 2067 2068 2069 2070 2059 2060 2061 2062 2063 2064 2053 2054 2055 2056 2057 2058 3923 3924 3925 3926 3927 3928 48 2287 2288 2289 2290 2291 2292 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 3929 3930 3931 3932 3933 3934 2137 2138 2139 2140 2141 2142 2131 2132 2133 2134 2135 2136 2065 2066 2067 2068 2069 2070 3917 3918 3919 3920 3921 3922 48 2411 2412 2413 2414 2415 2416 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 3935 3936 3937 3938 3939 3940 2185 2186 2187 2188 2189 2190 2179 2180 2181 2182 2183 2184 2137 2138 2139 2140 2141 2142 3929 3930 3931 3932 3933 3934 48 2459 2460 2461 2462 2463 2464 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 3941 3942 3943 3944 3945 3946 2233 2234 2235 2236 2237 2238 2227 2228 2229 2230 2231 2232 2185 2186 2187 2188 2189 2190 3935 3936 3937 3938 3939 3940 48 2507 2508 2509 2510 2511 2512 2645 2646 2647 2648 2649 2650 2609 2610 2611 2612 2613 2614 3947 3948 3949 3950 3951 3952 2323 2324 2325 2326 2327 2328 2369 2370 2371 2372 2373 2374 2233 2234 2235 2236 2237 2238 3941 3942 3943 3944 3945 3946 46 2609 2610 2611 2612 2613 2614 2627 2628 2629 2630 2631 2632 2621 2622 2623 2624 2625 2626 3593 3594 3595 3596 3597 3598 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2323 2324 2325 2326 2327 2328 3947 3948 3949 3950 3951 3952 48 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 3953 3954 3955 3956 3957 3958 1759 1760 1761 1762 1763 1764 1753 1754 1755 1756 1757 1758 1747 1748 1749 1750 1751 1752 3959 3960 3961 3962 3963 3964 48 2137 2138 2139 2140 2141 2142 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 3965 3966 3967 3968 3969 3970 1879 1880 1881 1882 1883 1884 1873 1874 1875 1876 1877 1878 1831 1832 1833 1834 1835 1836 3971 3972 3973 3974 3975 3976 48 3203 3204 3205 3206 3207 3208 3245 3246 3247 3248 3249 3250 3233 3234 3235 3236 3237 3238 3359 3360 3361 3362 3363 3364 3047 3048 3049 3050 3051 3052 3059 3060 3061 3062 3063 3064 3017 3018 3019 3020 3021 3022 3779 3780 3781 3782 3783 3784 48 3017 3018 3019 3020 3021 3022 3059 3060 3061 3062 3063 3064 3047 3048 3049 3050 3051 3052 3437 3438 3439 3440 3441 3442 2807 2808 2809 2810 2811 2812 2819 2820 2821 2822 2823 2824 2777 2778 2779 2780 2781 2782 3815 3816 3817 3818 3819 3820 48 2777 2778 2779 2780 2781 2782 2819 2820 2821 2822 2823 2824 2807 2808 2809 2810 2811 2812 3653 3654 3655 3656 3657 3658 2579 2580 2581 2582 2583 2584 2591 2592 2593 2594 2595 2596 2549 2550 2551 2552 2553 2554 3851 3852 3853 3854 3855 3856 36 2663 2664 2665 2666 2667 2668 2579 2580 2581 2582 2583 2584 2807 2808 2809 2810 2811 2812 2675 2676 2677 2678 2679 2680 3653 3654 3655 3656 3657 3658 3479 3480 3481 3482 3483 3484 48 2549 2550 2551 2552 2553 2554 2591 2592 2593 2594 2595 2596 2579 2580 2581 2582 2583 2584 3683 3684 3685 3686 3687 3688 2305 2306 2307 2308 2309 2310 2317 2318 2319 2320 2321 2322 2275 2276 2277 2278 2279 2280 3887 3888 3889 3890 3891 3892 48 2579 2580 2581 2582 2583 2584 2675 2676 2677 2678 2679 2680 2663 2664 2665 2666 2667 2668 3521 3522 3523 3524 3525 3526 2387 2388 2389 2390 2391 2392 2399 2400 2401 2402 2403 2404 2305 2306 2307 2308 2309 2310 3683 3684 3685 3686 3687 3688 48 2275 2276 2277 2278 2279 2280 2317 2318 2319 2320 2321 2322 2305 2306 2307 2308 2309 2310 3719 3720 3721 3722 3723 3724 2083 2084 2085 2086 2087 2088 2095 2096 2097 2098 2099 2100 2053 2054 2055 2056 2057 2058 3923 3924 3925 3926 3927 3928 48 2305 2306 2307 2308 2309 2310 2399 2400 2401 2402 2403 2404 2387 2388 2389 2390 2391 2392 3563 3564 3565 3566 3567 3568 2113 2114 2115 2116 2117 2118 2125 2126 2127 2128 2129 2130 2083 2084 2085 2086 2087 2088 3719 3720 3721 3722 3723 3724 48 2053 2054 2055 2056 2057 2058 2095 2096 2097 2098 2099 2100 2083 2084 2085 2086 2087 2088 3749 3750 3751 3752 3753 3754 1777 1778 1779 1780 1781 1782 1789 1790 1791 1792 1793 1794 1747 1748 1749 1750 1751 1752 3959 3960 3961 3962 3963 3964 48 2083 2084 2085 2086 2087 2088 2125 2126 2127 2128 2129 2130 2113 2114 2115 2116 2117 2118 3605 3606 3607 3608 3609 3610 1807 1808 1809 1810 1811 1812 1819 1820 1821 1822 1823 1824 1777 1778 1779 1780 1781 1782 3749 3750 3751 3752 3753 3754 48 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3353 3354 3355 3356 3357 3358 3041 3042 3043 3044 3045 3046 3035 3036 3037 3038 3039 3040 3029 3030 3031 3032 3033 3034 3773 3774 3775 3776 3777 3778 48 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3431 3432 3433 3434 3435 3436 2801 2802 2803 2804 2805 2806 2795 2796 2797 2798 2799 2800 2789 2790 2791 2792 2793 2794 3809 3810 3811 3812 3813 3814 48 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 3647 3648 3649 3650 3651 3652 2573 2574 2575 2576 2577 2578 2567 2568 2569 2570 2571 2572 2561 2562 2563 2564 2565 2566 3845 3846 3847 3848 3849 3850 36 2657 2658 2659 2660 2661 2662 2573 2574 2575 2576 2577 2578 2801 2802 2803 2804 2805 2806 2651 2652 2653 2654 2655 2656 3647 3648 3649 3650 3651 3652 3473 3474 3475 3476 3477 3478 48 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 3677 3678 3679 3680 3681 3682 2299 2300 2301 2302 2303 2304 2293 2294 2295 2296 2297 2298 2287 2288 2289 2290 2291 2292 3881 3882 3883 3884 3885 3886 48 2573 2574 2575 2576 2577 2578 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 3515 3516 3517 3518 3519 3520 2381 2382 2383 2384 2385 2386 2375 2376 2377 2378 2379 2380 2299 2300 2301 2302 2303 2304 3677 3678 3679 3680 3681 3682 48 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 3713 3714 3715 3716 3717 3718 2077 2078 2079 2080 2081 2082 2071 2072 2073 2074 2075 2076 2065 2066 2067 2068 2069 2070 3917 3918 3919 3920 3921 3922 48 2299 2300 2301 2302 2303 2304 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 3557 3558 3559 3560 3561 3562 2107 2108 2109 2110 2111 2112 2101 2102 2103 2104 2105 2106 2077 2078 2079 2080 2081 2082 3713 3714 3715 3716 3717 3718 48 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 3743 3744 3745 3746 3747 3748 1771 1772 1773 1774 1775 1776 1765 1766 1767 1768 1769 1770 1759 1760 1761 1762 1763 1764 3953 3954 3955 3956 3957 3958 48 2077 2078 2079 2080 2081 2082 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 3599 3600 3601 3602 3603 3604 1801 1802 1803 1804 1805 1806 1795 1796 1797 1798 1799 1800 1771 1772 1773 1774 1775 1776 3743 3744 3745 3746 3747 3748 36 3083 3084 3085 3086 3087 3088 3071 3072 3073 3074 3075 3076 3323 3324 3325 3326 3327 3328 3077 3078 3079 3080 3081 3082 3785 3786 3787 3788 3789 3790 3365 3366 3367 3368 3369 3370 48 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3443 3444 3445 3446 3447 3448 2897 2898 2899 2900 2901 2902 2891 2892 2893 2894 2895 2896 2885 2886 2887 2888 2889 2890 3821 3822 3823 3824 3825 3826 48 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 3659 3660 3661 3662 3663 3664 2699 2700 2701 2702 2703 2704 2693 2694 2695 2696 2697 2698 2687 2688 2689 2690 2691 2692 3857 3858 3859 3860 3861 3862 36 2717 2718 2719 2720 2721 2722 2699 2700 2701 2702 2703 2704 2897 2898 2899 2900 2901 2902 2711 2712 2713 2714 2715 2716 3659 3660 3661 3662 3663 3664 3485 3486 3487 3488 3489 3490 48 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 3689 3690 3691 3692 3693 3694 2423 2424 2425 2426 2427 2428 2417 2418 2419 2420 2421 2422 2411 2412 2413 2414 2415 2416 3893 3894 3895 3896 3897 3898 48 2699 2700 2701 2702 2703 2704 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 3527 3528 3529 3530 3531 3532 2441 2442 2443 2444 2445 2446 2435 2436 2437 2438 2439 2440 2423 2424 2425 2426 2427 2428 3689 3690 3691 3692 3693 3694 48 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 3725 3726 3727 3728 3729 3730 2149 2150 2151 2152 2153 2154 2143 2144 2145 2146 2147 2148 2137 2138 2139 2140 2141 2142 3929 3930 3931 3932 3933 3934 48 2423 2424 2425 2426 2427 2428 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 3569 3570 3571 3572 3573 3574 2167 2168 2169 2170 2171 2172 2161 2162 2163 2164 2165 2166 2149 2150 2151 2152 2153 2154 3725 3726 3727 3728 3729 3730 48 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 3755 3756 3757 3758 3759 3760 1843 1844 1845 1846 1847 1848 1837 1838 1839 1840 1841 1842 1831 1832 1833 1834 1835 1836 3971 3972 3973 3974 3975 3976 48 2149 2150 2151 2152 2153 2154 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 3611 3612 3613 3614 3615 3616 1861 1862 1863 1864 1865 1866 1855 1856 1857 1858 1859 1860 1843 1844 1845 1846 1847 1848 3755 3756 3757 3758 3759 3760 36 3113 3114 3115 3116 3117 3118 3101 3102 3103 3104 3105 3106 3377 3378 3379 3380 3381 3382 3107 3108 3109 3110 3111 3112 3791 3792 3793 3794 3795 3796 3383 3384 3385 3386 3387 3388 48 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3449 3450 3451 3452 3453 3454 2927 2928 2929 2930 2931 2932 2921 2922 2923 2924 2925 2926 2915 2916 2917 2918 2919 2920 3827 3828 3829 3830 3831 3832 48 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 3665 3666 3667 3668 3669 3670 2747 2748 2749 2750 2751 2752 2741 2742 2743 2744 2745 2746 2735 2736 2737 2738 2739 2740 3863 3864 3865 3866 3867 3868 36 2765 2766 2767 2768 2769 2770 2747 2748 2749 2750 2751 2752 2927 2928 2929 2930 2931 2932 2759 2760 2761 2762 2763 2764 3665 3666 3667 3668 3669 3670 3491 3492 3493 3494 3495 3496 48 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 3695 3696 3697 3698 3699 3700 2471 2472 2473 2474 2475 2476 2465 2466 2467 2468 2469 2470 2459 2460 2461 2462 2463 2464 3899 3900 3901 3902 3903 3904 48 2747 2748 2749 2750 2751 2752 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 3533 3534 3535 3536 3537 3538 2489 2490 2491 2492 2493 2494 2483 2484 2485 2486 2487 2488 2471 2472 2473 2474 2475 2476 3695 3696 3697 3698 3699 3700 48 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 3731 3732 3733 3734 3735 3736 2197 2198 2199 2200 2201 2202 2191 2192 2193 2194 2195 2196 2185 2186 2187 2188 2189 2190 3935 3936 3937 3938 3939 3940 48 2471 2472 2473 2474 2475 2476 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 3575 3576 3577 3578 3579 3580 2215 2216 2217 2218 2219 2220 2209 2210 2211 2212 2213 2214 2197 2198 2199 2200 2201 2202 3731 3732 3733 3734 3735 3736 48 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 3761 3762 3763 3764 3765 3766 1891 1892 1893 1894 1895 1896 1885 1886 1887 1888 1889 1890 1879 1880 1881 1882 1883 1884 3965 3966 3967 3968 3969 3970 48 2197 2198 2199 2200 2201 2202 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 3617 3618 3619 3620 3621 3622 1909 1910 1911 1912 1913 1914 1903 1904 1905 1906 1907 1908 1891 1892 1893 1894 1895 1896 3761 3762 3763 3764 3765 3766 36 3143 3144 3145 3146 3147 3148 3131 3132 3133 3134 3135 3136 3395 3396 3397 3398 3399 3400 3137 3138 3139 3140 3141 3142 3797 3798 3799 3800 3801 3802 3401 3402 3403 3404 3405 3406 48 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3455 3456 3457 3458 3459 3460 2957 2958 2959 2960 2961 2962 2951 2952 2953 2954 2955 2956 2945 2946 2947 2948 2949 2950 3833 3834 3835 3836 3837 3838 36 2957 2958 2959 2960 2961 2962 2825 2826 2827 2828 2829 2830 2945 2946 2947 2948 2949 2950 3671 3672 3673 3674 3675 3676 3869 3870 3871 3872 3873 3874 2951 2952 2953 2954 2955 2956 36 2837 2838 2839 2840 2841 2842 2825 2826 2827 2828 2829 2830 2957 2958 2959 2960 2961 2962 2831 2832 2833 2834 2835 2836 3671 3672 3673 3674 3675 3676 3497 3498 3499 3500 3501 3502 36 2519 2520 2521 2522 2523 2524 2507 2508 2509 2510 2511 2512 2825 2826 2827 2828 2829 2830 2513 2514 2515 2516 2517 2518 3905 3906 3907 3908 3909 3910 3977 3978 3979 3980 3981 3982 48 2837 2838 2839 2840 2841 2842 3539 3540 3541 3542 3543 3544 2537 2538 2539 2540 2541 2542 2531 2532 2533 2534 2535 2536 2519 2520 2521 2522 2523 2524 3977 3978 3979 3980 3981 3982 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 48 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 3983 3984 3985 3986 3987 3988 2245 2246 2247 2248 2249 2250 2239 2240 2241 2242 2243 2244 2233 2234 2235 2236 2237 2238 3941 3942 3943 3944 3945 3946 48 2519 2520 2521 2522 2523 2524 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 3581 3582 3583 3584 3585 3586 2263 2264 2265 2266 2267 2268 2257 2258 2259 2260 2261 2262 2245 2246 2247 2248 2249 2250 3983 3984 3985 3986 3987 3988 48 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 3989 3990 3991 3992 3993 3994 1939 1940 1941 1942 1943 1944 1933 1934 1935 1936 1937 1938 1927 1928 1929 1930 1931 1932 3995 3996 3997 3998 3999 4000 48 2245 2246 2247 2248 2249 2250 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 3623 3624 3625 3626 3627 3628 1957 1958 1959 1960 1961 1962 1951 1952 1953 1954 1955 1956 1939 1940 1941 1942 1943 1944 3989 3990 3991 3992 3993 3994 36 3173 3174 3175 3176 3177 3178 3161 3162 3163 3164 3165 3166 3413 3414 3415 3416 3417 3418 3167 3168 3169 3170 3171 3172 3803 3804 3805 3806 3807 3808 3419 3420 3421 3422 3423 3424 48 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3461 3462 3463 3464 3465 3466 2987 2988 2989 2990 2991 2992 2981 2982 2983 2984 2985 2986 2975 2976 2977 2978 2979 2980 3839 3840 3841 3842 3843 3844 36 2987 2988 2989 2990 2991 2992 2849 2850 2851 2852 2853 2854 2975 2976 2977 2978 2979 2980 3503 3504 3505 3506 3507 3508 3875 3876 3877 3878 3879 3880 2981 2982 2983 2984 2985 2986 36 2597 2598 2599 2600 2601 2602 2609 2610 2611 2612 2613 2614 2849 2850 2851 2852 2853 2854 2603 2604 2605 2606 2607 2608 3911 3912 3913 3914 3915 3916 3545 3546 3547 3548 3549 3550 48 2609 2610 2611 2612 2613 2614 2603 2604 2605 2606 2607 2608 2597 2598 2599 2600 2601 2602 3587 3588 3589 3590 3591 3592 2335 2336 2337 2338 2339 2340 2329 2330 2331 2332 2333 2334 2323 2324 2325 2326 2327 2328 3947 3948 3949 3950 3951 3952 48 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 4001 4002 4003 4004 4005 4006 1987 1988 1989 1990 1991 1992 1981 1982 1983 1984 1985 1986 1975 1976 1977 1978 1979 1980 4007 4008 4009 4010 4011 4012 36 2005 2006 2007 2008 2009 2010 1987 1988 1989 1990 1991 1992 2335 2336 2337 2338 2339 2340 1999 2000 2001 2002 2003 2004 4001 4002 4003 4004 4005 4006 3629 3630 3631 3632 3633 3634 48 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1771 1772 1773 1774 1775 1776 4013 4014 4015 4016 4017 4018 1 2 3 4 5 6 25 26 27 28 29 30 19 20 21 22 23 24 4019 4020 4021 4022 4023 4024 48 1771 1772 1773 1774 1775 1776 1849 1850 1851 1852 1853 1854 1843 1844 1845 1846 1847 1848 4025 4026 4027 4028 4029 4030 13 14 15 16 17 18 7 8 9 10 11 12 1 2 3 4 5 6 4013 4014 4015 4016 4017 4018 48 1843 1844 1845 1846 1847 1848 1897 1898 1899 1900 1901 1902 1891 1892 1893 1894 1895 1896 4031 4032 4033 4034 4035 4036 37 38 39 40 41 42 31 32 33 34 35 36 13 14 15 16 17 18 4025 4026 4027 4028 4029 4030 48 1891 1892 1893 1894 1895 1896 1945 1946 1947 1948 1949 1950 1939 1940 1941 1942 1943 1944 4037 4038 4039 4040 4041 4042 49 50 51 52 53 54 43 44 45 46 47 48 37 38 39 40 41 42 4031 4032 4033 4034 4035 4036 48 1747 1748 1749 1750 1751 1752 1789 1790 1791 1792 1793 1794 1777 1778 1779 1780 1781 1782 4019 4020 4021 4022 4023 4024 19 20 21 22 23 24 3311 3312 3313 3314 3315 3316 3299 3300 3301 3302 3303 3304 4043 4044 4045 4046 4047 4048 48 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 4013 4014 4015 4016 4017 4018 1 2 3 4 5 6 3293 3294 3295 3296 3297 3298 3281 3282 3283 3284 3285 3286 4049 4050 4051 4052 4053 4054 48 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 4025 4026 4027 4028 4029 4030 13 14 15 16 17 18 3275 3276 3277 3278 3279 3280 3251 3252 3253 3254 3255 3256 4055 4056 4057 4058 4059 4060 48 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 4031 4032 4033 4034 4035 4036 37 38 39 40 41 42 3269 3270 3271 3272 3273 3274 3263 3264 3265 3266 3267 3268 4061 4062 4063 4064 4065 4066 48 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 4037 4038 4039 4040 4041 4042 49 50 51 52 53 54 3347 3348 3349 3350 3351 3352 3341 3342 3343 3344 3345 3346 4067 4068 4069 4070 4071 4072 48 1693 1694 1695 1696 1697 1698 4073 4074 4075 4076 4077 4078 1741 1742 1743 1744 1745 1746 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4097 4098 4099 4100 4101 4102 4091 4092 4093 4094 4095 4096 4103 4104 4105 4106 4107 4108 45 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4085 4086 4087 4088 4089 4090 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4124 4125 4126 4127 4128 4129 4121 4122 4123 4130 4131 4132 4133 4134 4135 48 1741 1742 1743 1744 1745 1746 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4085 4086 4087 4088 4089 4090 4079 4080 4081 4082 4083 4084 48 4085 4086 4087 4088 4089 4090 4160 4161 4162 4163 4164 4165 4154 4155 4156 4157 4158 4159 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4115 4116 4117 4118 4119 4120 4109 4110 4111 4112 4113 4114 48 4154 4155 4156 4157 4158 4159 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4172 4173 4174 4175 4176 4177 4166 4167 4168 4169 4170 4171 48 4190 4191 4192 4193 4194 4195 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4202 4203 4204 4205 4206 4207 4196 4197 4198 4199 4200 4201 48 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4220 4221 4222 4223 4224 4225 4280 4281 4282 4283 4284 4285 48 4220 4221 4222 4223 4224 4225 4274 4275 4276 4277 4278 4279 4268 4269 4270 4271 4272 4273 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4232 4233 4234 4235 4236 4237 4226 4227 4228 4229 4230 4231 48 4268 4269 4270 4271 4272 4273 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4292 4293 4294 4295 4296 4297 4286 4287 4288 4289 4290 4291 48 1681 1682 1683 1684 1685 1686 4334 4335 4336 4337 4338 4339 1729 1730 1731 1732 1733 1734 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4358 4359 4360 4361 4362 4363 4352 4353 4354 4355 4356 4357 4364 4365 4366 4367 4368 4369 48 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4346 4347 4348 4349 4350 4351 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4388 4389 4390 4391 4392 4393 4382 4383 4384 4385 4386 4387 4394 4395 4396 4397 4398 4399 48 1729 1730 1731 1732 1733 1734 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4346 4347 4348 4349 4350 4351 4340 4341 4342 4343 4344 4345 48 4346 4347 4348 4349 4350 4351 4424 4425 4426 4427 4428 4429 4418 4419 4420 4421 4422 4423 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4376 4377 4378 4379 4380 4381 4370 4371 4372 4373 4374 4375 48 4418 4419 4420 4421 4422 4423 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4436 4437 4438 4439 4440 4441 4430 4431 4432 4433 4434 4435 48 4454 4455 4456 4457 4458 4459 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4466 4467 4468 4469 4470 4471 4460 4461 4462 4463 4464 4465 48 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4484 4485 4486 4487 4488 4489 4544 4545 4546 4547 4548 4549 48 4484 4485 4486 4487 4488 4489 4538 4539 4540 4541 4542 4543 4532 4533 4534 4535 4536 4537 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4496 4497 4498 4499 4500 4501 4490 4491 4492 4493 4494 4495 48 4532 4533 4534 4535 4536 4537 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4556 4557 4558 4559 4560 4561 4550 4551 4552 4553 4554 4555 36 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4598 4599 4600 4601 4602 4603 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4604 4605 4606 4607 4608 4609 36 4646 4647 4648 4649 4650 4651 4598 4599 4600 4601 4602 4603 4634 4635 4636 4637 4638 4639 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4640 4641 4642 4643 4644 4645 48 1717 1718 1719 1720 1721 1722 4664 4665 4666 4667 4668 4669 4634 4635 4636 4637 4638 4639 4658 4659 4660 4661 4662 4663 4598 4599 4600 4601 4602 4603 4676 4677 4678 4679 4680 4681 4670 4671 4672 4673 4674 4675 4682 4683 4684 4685 4686 4687 48 1669 1670 1671 1672 1673 1674 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4646 4647 4648 4649 4650 4651 4640 4641 4642 4643 4644 4645 4634 4635 4636 4637 4638 4639 4706 4707 4708 4709 4710 4711 48 4670 4671 4672 4673 4674 4675 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4616 4617 4618 4619 4620 4621 4628 4629 4630 4631 4632 4633 4598 4599 4600 4601 4602 4603 4676 4677 4678 4679 4680 4681 36 4634 4635 4636 4637 4638 4639 1717 1718 1719 1720 1721 1722 1669 1670 1671 1672 1673 1674 4664 4665 4666 4667 4668 4669 4730 4731 4732 4733 4734 4735 4706 4707 4708 4709 4710 4711 48 4616 4617 4618 4619 4620 4621 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4610 4611 4612 4613 4614 4615 4622 4623 4624 4625 4626 4627 48 4742 4743 4744 4745 4746 4747 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4754 4755 4756 4757 4758 4759 4748 4749 4750 4751 4752 4753 48 4772 4773 4774 4775 4776 4777 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4784 4785 4786 4787 4788 4789 4778 4779 4780 4781 4782 4783 36 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 1705 1706 1707 1708 1709 1710 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4826 4827 4828 4829 4830 4831 48 4838 4839 4840 4841 4842 4843 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4832 4833 4834 4835 4836 4837 4844 4845 4846 4847 4848 4849 48 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4922 4923 4924 4925 4926 4927 4916 4917 4918 4919 4920 4921 4928 4929 4930 4931 4932 4933 48 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4970 4971 4972 4973 4974 4975 4964 4965 4966 4967 4968 4969 4976 4977 4978 4979 4980 4981 48 4946 4947 4948 4949 4950 4951 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 4958 4959 4960 4961 4962 4963 4952 4953 4954 4955 4956 4957 48 4988 4989 4990 4991 4992 4993 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5000 5001 5002 5003 5004 5005 4994 4995 4996 4997 4998 4999 48 5018 5019 5020 5021 5022 5023 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5030 5031 5032 5033 5034 5035 5024 5025 5026 5027 5028 5029 48 1657 1658 1659 1660 1661 1662 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5102 5103 5104 5105 5106 5107 5096 5097 5098 5099 5100 5101 5108 5109 5110 5111 5112 5113 48 5078 5079 5080 5081 5082 5083 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5090 5091 5092 5093 5094 5095 5084 5085 5086 5087 5088 5089 48 5120 5121 5122 5123 5124 5125 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5132 5133 5134 5135 5136 5137 5126 5127 5128 5129 5130 5131 48 5150 5151 5152 5153 5154 5155 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5162 5163 5164 5165 5166 5167 5156 5157 5158 5159 5160 5161 48 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 67 68 69 70 71 72 61 62 63 64 65 66 55 56 57 58 59 60 5228 5229 5230 5231 5232 5233 48 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 103 104 105 106 107 108 97 98 99 100 101 102 91 92 93 94 95 96 5258 5259 5260 5261 5262 5263 48 5096 5097 5098 5099 5100 5101 5264 5265 5266 5267 5268 5269 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4958 4959 4960 4961 4962 4963 5270 5271 5272 5273 5274 5275 5090 5091 5092 5093 5094 5095 5102 5103 5104 5105 5106 5107 48 5090 5091 5092 5093 5094 5095 5270 5271 5272 5273 5274 5275 4958 4959 4960 4961 4962 4963 5006 5007 5008 5009 5010 5011 5000 5001 5002 5003 5004 5005 5276 5277 5278 5279 5280 5281 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 48 5132 5133 5134 5135 5136 5137 5276 5277 5278 5279 5280 5281 5000 5001 5002 5003 5004 5005 5036 5037 5038 5039 5040 5041 5030 5031 5032 5033 5034 5035 5282 5283 5284 5285 5286 5287 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 48 5162 5163 5164 5165 5166 5167 5282 5283 5284 5285 5286 5287 5030 5031 5032 5033 5034 5035 5066 5067 5068 5069 5070 5071 5060 5061 5062 5063 5064 5065 5288 5289 5290 5291 5292 5293 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 48 4964 4965 4966 4967 4968 4969 5294 5295 5296 5297 5298 5299 4832 4833 4834 4835 4836 4837 4880 4881 4882 4883 4884 4885 4874 4875 4876 4877 4878 4879 5300 5301 5302 5303 5304 5305 4958 4959 4960 4961 4962 4963 4970 4971 4972 4973 4974 4975 48 4958 4959 4960 4961 4962 4963 5300 5301 5302 5303 5304 5305 4874 4875 4876 4877 4878 4879 5306 5307 5308 5309 5310 5311 4916 4917 4918 4919 4920 4921 5312 5313 5314 5315 5316 5317 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 48 5000 5001 5002 5003 5004 5005 5312 5313 5314 5315 5316 5317 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4910 4911 4912 4913 4914 4915 5318 5319 5320 5321 5322 5323 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 48 5030 5031 5032 5033 5034 5035 5318 5319 5320 5321 5322 5323 4910 4911 4912 4913 4914 4915 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 36 1705 1706 1707 1708 1709 1710 4634 4635 4636 4637 4638 4639 1669 1670 1671 1672 1673 1674 5348 5349 5350 5351 5352 5353 4706 4707 4708 4709 4710 4711 5342 5343 5344 5345 5346 5347 48 1705 1706 1707 1708 1709 1710 5348 5349 5350 5351 5352 5353 4634 4635 4636 4637 4638 4639 4658 4659 4660 4661 4662 4663 4598 4599 4600 4601 4602 4603 5354 5355 5356 5357 5358 5359 4832 4833 4834 4835 4836 4837 4826 4827 4828 4829 4830 4831 48 4832 4833 4834 4835 4836 4837 5354 5355 5356 5357 5358 5359 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 5360 5361 5362 5363 5364 5365 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 48 4874 4875 4876 4877 4878 4879 5360 5361 5362 5363 5364 5365 4610 4611 4612 4613 4614 4615 4760 4761 4762 4763 4764 4765 4754 4755 4756 4757 4758 4759 5366 5367 5368 5369 5370 5371 4916 4917 4918 4919 4920 4921 5306 5307 5308 5309 5310 5311 48 4916 4917 4918 4919 4920 4921 5366 5367 5368 5369 5370 5371 4754 4755 4756 4757 4758 4759 4790 4791 4792 4793 4794 4795 4784 4785 4786 4787 4788 4789 5372 5373 5374 5375 5376 5377 4910 4911 4912 4913 4914 4915 4922 4923 4924 4925 4926 4927 48 4910 4911 4912 4913 4914 4915 5372 5373 5374 5375 5376 5377 4784 4785 4786 4787 4788 4789 4820 4821 4822 4823 4824 4825 4814 4815 4816 4817 4818 4819 5378 5379 5380 5381 5382 5383 5330 5331 5332 5333 5334 5335 5324 5325 5326 5327 5328 5329 48 4694 4695 4696 4697 4698 4699 5384 5385 5386 5387 5388 5389 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4376 4377 4378 4379 4380 4381 5390 5391 5392 5393 5394 5395 4646 4647 4648 4649 4650 4651 4700 4701 4702 4703 4704 4705 48 4646 4647 4648 4649 4650 4651 5390 5391 5392 5393 5394 5395 4376 4377 4378 4379 4380 4381 4442 4443 4444 4445 4446 4447 4436 4437 4438 4439 4440 4441 5396 5397 5398 5399 5400 5401 4598 4599 4600 4601 4602 4603 4652 4653 4654 4655 4656 4657 48 4598 4599 4600 4601 4602 4603 5396 5397 5398 5399 5400 5401 4436 4437 4438 4439 4440 4441 4472 4473 4474 4475 4476 4477 4466 4467 4468 4469 4470 4471 5402 5403 5404 5405 5406 5407 4610 4611 4612 4613 4614 4615 4604 4605 4606 4607 4608 4609 48 4610 4611 4612 4613 4614 4615 5402 5403 5404 5405 5406 5407 4466 4467 4468 4469 4470 4471 4502 4503 4504 4505 4506 4507 4496 4497 4498 4499 4500 4501 5408 5409 5410 5411 5412 5413 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 48 4754 4755 4756 4757 4758 4759 5408 5409 5410 5411 5412 5413 4496 4497 4498 4499 4500 4501 4562 4563 4564 4565 4566 4567 4556 4557 4558 4559 4560 4561 5414 5415 5416 5417 5418 5419 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 48 4784 4785 4786 4787 4788 4789 5414 5415 5416 5417 5418 5419 4556 4557 4558 4559 4560 4561 4592 4593 4594 4595 4596 4597 4586 4587 4588 4589 4590 4591 5420 5421 5422 5423 5424 5425 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 45 4382 4383 4384 4385 4386 4387 5426 5427 5428 5429 5430 5431 4121 4122 4123 4124 4125 4126 4127 4128 4129 4115 4116 4117 4118 4119 4120 5432 5433 5434 5435 5436 5437 4376 4377 4378 4379 4380 4381 4388 4389 4390 4391 4392 4393 48 4376 4377 4378 4379 4380 4381 5432 5433 5434 5435 5436 5437 4115 4116 4117 4118 4119 4120 4178 4179 4180 4181 4182 4183 4172 4173 4174 4175 4176 4177 5438 5439 5440 5441 5442 5443 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 48 4436 4437 4438 4439 4440 4441 5438 5439 5440 5441 5442 5443 4172 4173 4174 4175 4176 4177 4208 4209 4210 4211 4212 4213 4202 4203 4204 4205 4206 4207 5444 5445 5446 5447 5448 5449 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 48 4466 4467 4468 4469 4470 4471 5444 5445 5446 5447 5448 5449 4202 4203 4204 4205 4206 4207 4238 4239 4240 4241 4242 4243 4232 4233 4234 4235 4236 4237 5450 5451 5452 5453 5454 5455 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 48 4496 4497 4498 4499 4500 4501 5450 5451 5452 5453 5454 5455 4232 4233 4234 4235 4236 4237 4298 4299 4300 4301 4302 4303 4292 4293 4294 4295 4296 4297 5456 5457 5458 5459 5460 5461 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 48 4556 4557 4558 4559 4560 4561 5456 5457 5458 5459 5460 5461 4292 4293 4294 4295 4296 4297 4328 4329 4330 4331 4332 4333 4322 4323 4324 4325 4326 4327 5462 5463 5464 5465 5466 5467 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 48 1669 1670 1671 1672 1673 1674 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 5468 5469 5470 5471 5472 5473 4352 4353 4354 4355 4356 4357 4364 4365 4366 4367 4368 4369 1681 1682 1683 1684 1685 1686 5474 5475 5476 5477 5478 5479 36 4382 4383 4384 4385 4386 4387 4352 4353 4354 4355 4356 4357 4694 4695 4696 4697 4698 4699 4394 4395 4396 4397 4398 4399 5468 5469 5470 5471 5472 5473 5384 5385 5386 5387 5388 5389 48 1681 1682 1683 1684 1685 1686 4364 4365 4366 4367 4368 4369 4352 4353 4354 4355 4356 4357 5480 5481 5482 5483 5484 5485 4091 4092 4093 4094 4095 4096 4103 4104 4105 4106 4107 4108 1693 1694 1695 1696 1697 1698 5486 5487 5488 5489 5490 5491 45 4352 4353 4354 4355 4356 4357 4394 4395 4396 4397 4398 4399 4382 4383 4384 4385 4386 4387 5426 5427 5428 5429 5430 5431 4121 4122 4123 4130 4131 4132 4133 4134 4135 4091 4092 4093 4094 4095 4096 5480 5481 5482 5483 5484 5485 48 1657 1658 1659 1660 1661 1662 5492 5493 5494 5495 5496 5497 4934 4935 4936 4937 4938 4939 4976 4977 4978 4979 4980 4981 4964 4965 4966 4967 4968 4969 5264 5265 5266 5267 5268 5269 5096 5097 5098 5099 5100 5101 5108 5109 5110 5111 5112 5113 48 4934 4935 4936 4937 4938 4939 4976 4977 4978 4979 4980 4981 4964 4965 4966 4967 4968 4969 5294 5295 5296 5297 5298 5299 4832 4833 4834 4835 4836 4837 4844 4845 4846 4847 4848 4849 4838 4839 4840 4841 4842 4843 5498 5499 5500 5501 5502 5503 48 4832 4833 4834 4835 4836 4837 5354 5355 5356 5357 5358 5359 4598 4599 4600 4601 4602 4603 4628 4629 4630 4631 4632 4633 4616 4617 4618 4619 4620 4621 5504 5505 5506 5507 5508 5509 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 48 4874 4875 4876 4877 4878 4879 5504 5505 5506 5507 5508 5509 4616 4617 4618 4619 4620 4621 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 5510 5511 5512 5513 5514 5515 4916 4917 4918 4919 4920 4921 5306 5307 5308 5309 5310 5311 48 4916 4917 4918 4919 4920 4921 5510 5511 5512 5513 5514 5515 4742 4743 4744 4745 4746 4747 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 5516 5517 5518 5519 5520 5521 4910 4911 4912 4913 4914 4915 4922 4923 4924 4925 4926 4927 48 4910 4911 4912 4913 4914 4915 5516 5517 5518 5519 5520 5521 4772 4773 4774 4775 4776 4777 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 5522 5523 5524 5525 5526 5527 5330 5331 5332 5333 5334 5335 5324 5325 5326 5327 5328 5329 48 4694 4695 4696 4697 4698 4699 5468 5469 5470 5471 5472 5473 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4346 4347 4348 4349 4350 4351 5528 5529 5530 5531 5532 5533 4646 4647 4648 4649 4650 4651 4700 4701 4702 4703 4704 4705 48 4646 4647 4648 4649 4650 4651 5528 5529 5530 5531 5532 5533 4346 4347 4348 4349 4350 4351 4424 4425 4426 4427 4428 4429 4418 4419 4420 4421 4422 4423 5534 5535 5536 5537 5538 5539 4598 4599 4600 4601 4602 4603 4652 4653 4654 4655 4656 4657 48 4598 4599 4600 4601 4602 4603 5534 5535 5536 5537 5538 5539 4418 4419 4420 4421 4422 4423 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 5540 5541 5542 5543 5544 5545 4616 4617 4618 4619 4620 4621 4628 4629 4630 4631 4632 4633 48 4616 4617 4618 4619 4620 4621 5540 5541 5542 5543 5544 5545 4454 4455 4456 4457 4458 4459 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 5546 5547 5548 5549 5550 5551 4742 4743 4744 4745 4746 4747 4736 4737 4738 4739 4740 4741 48 4742 4743 4744 4745 4746 4747 5546 5547 5548 5549 5550 5551 4484 4485 4486 4487 4488 4489 4538 4539 4540 4541 4542 4543 4532 4533 4534 4535 4536 4537 5552 5553 5554 5555 5556 5557 4772 4773 4774 4775 4776 4777 4766 4767 4768 4769 4770 4771 48 4772 4773 4774 4775 4776 4777 5552 5553 5554 5555 5556 5557 4532 4533 4534 4535 4536 4537 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 5558 5559 5560 5561 5562 5563 4802 4803 4804 4805 4806 4807 4796 4797 4798 4799 4800 4801 48 4352 4353 4354 4355 4356 4357 5480 5481 5482 5483 5484 5485 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4085 4086 4087 4088 4089 4090 5564 5565 5566 5567 5568 5569 4346 4347 4348 4349 4350 4351 4358 4359 4360 4361 4362 4363 48 4346 4347 4348 4349 4350 4351 5564 5565 5566 5567 5568 5569 4085 4086 4087 4088 4089 4090 4160 4161 4162 4163 4164 4165 4154 4155 4156 4157 4158 4159 5570 5571 5572 5573 5574 5575 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 48 4418 4419 4420 4421 4422 4423 5570 5571 5572 5573 5574 5575 4154 4155 4156 4157 4158 4159 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 5576 5577 5578 5579 5580 5581 4454 4455 4456 4457 4458 4459 4448 4449 4450 4451 4452 4453 48 4454 4455 4456 4457 4458 4459 5576 5577 5578 5579 5580 5581 4190 4191 4192 4193 4194 4195 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 5582 5583 5584 5585 5586 5587 4484 4485 4486 4487 4488 4489 4478 4479 4480 4481 4482 4483 48 4484 4485 4486 4487 4488 4489 5582 5583 5584 5585 5586 5587 4220 4221 4222 4223 4224 4225 4274 4275 4276 4277 4278 4279 4268 4269 4270 4271 4272 4273 5588 5589 5590 5591 5592 5593 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 48 4532 4533 4534 4535 4536 4537 5588 5589 5590 5591 5592 5593 4268 4269 4270 4271 4272 4273 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 5594 5595 5596 5597 5598 5599 4574 4575 4576 4577 4578 4579 4568 4569 4570 4571 4572 4573 48 1657 1658 1659 1660 1661 1662 5492 5493 5494 5495 5496 5497 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 5600 5601 5602 5603 5604 5605 5078 5079 5080 5081 5082 5083 5072 5073 5074 5075 5076 5077 48 5078 5079 5080 5081 5082 5083 5600 5601 5602 5603 5604 5605 4946 4947 4948 4949 4950 4951 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 5606 5607 5608 5609 5610 5611 5120 5121 5122 5123 5124 5125 5114 5115 5116 5117 5118 5119 48 5120 5121 5122 5123 5124 5125 5606 5607 5608 5609 5610 5611 4988 4989 4990 4991 4992 4993 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5612 5613 5614 5615 5616 5617 5150 5151 5152 5153 5154 5155 5144 5145 5146 5147 5148 5149 48 5150 5151 5152 5153 5154 5155 5612 5613 5614 5615 5616 5617 5018 5019 5020 5021 5022 5023 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5618 5619 5620 5621 5622 5623 5180 5181 5182 5183 5184 5185 5174 5175 5176 5177 5178 5179 48 4934 4935 4936 4937 4938 4939 5498 5499 5500 5501 5502 5503 4838 4839 4840 4841 4842 4843 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 5624 5625 5626 5627 5628 5629 4946 4947 4948 4949 4950 4951 4940 4941 4942 4943 4944 4945 48 4988 4989 4990 4991 4992 4993 5630 5631 5632 5633 5634 5635 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 5636 5637 5638 5639 5640 5641 5018 5019 5020 5021 5022 5023 5012 5013 5014 5015 5016 5017 36 1717 1718 1719 1720 1721 1722 1705 1706 1707 1708 1709 1710 1669 1670 1671 1672 1673 1674 5642 5643 5644 5645 5646 5647 5342 5343 5344 5345 5346 5347 4730 4731 4732 4733 4734 4735 48 4886 4887 4888 4889 4890 4891 5654 5655 5656 5657 5658 5659 5648 5649 5650 5651 5652 5653 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 4898 4899 4900 4901 4902 4903 4892 4893 4894 4895 4896 4897 48 1669 1670 1671 1672 1673 1674 5474 5475 5476 5477 5478 5479 1681 1682 1683 1684 1685 1686 4334 4335 4336 4337 4338 4339 1729 1730 1731 1732 1733 1734 5678 5679 5680 5681 5682 5683 1717 1718 1719 1720 1721 1722 4730 4731 4732 4733 4734 4735 48 5648 5649 5650 5651 5652 5653 5684 5685 5686 5687 5688 5689 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 5690 5691 5692 5693 5694 5695 5666 5667 5668 5669 5670 5671 5660 5661 5662 5663 5664 5665 48 1681 1682 1683 1684 1685 1686 5486 5487 5488 5489 5490 5491 1693 1694 1695 1696 1697 1698 4073 4074 4075 4076 4077 4078 1741 1742 1743 1744 1745 1746 5696 5697 5698 5699 5700 5701 1729 1730 1731 1732 1733 1734 4334 4335 4336 4337 4338 4339 48 4508 4509 4510 4511 4512 4513 5702 5703 5704 5705 5706 5707 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 5708 5709 5710 5711 5712 5713 4520 4521 4522 4523 4524 4525 4514 4515 4516 4517 4518 4519 36 4634 4635 4636 4637 4638 4639 1717 1718 1719 1720 1721 1722 1705 1706 1707 1708 1709 1710 4664 4665 4666 4667 4668 4669 5642 5643 5644 5645 5646 5647 5348 5349 5350 5351 5352 5353 48 1729 1730 1731 1732 1733 1734 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 5714 5715 5716 5717 5718 5719 4634 4635 4636 4637 4638 4639 4664 4665 4666 4667 4668 4669 1717 1718 1719 1720 1721 1722 5678 5679 5680 5681 5682 5683 36 4646 4647 4648 4649 4650 4651 4634 4635 4636 4637 4638 4639 4346 4347 4348 4349 4350 4351 4640 4641 4642 4643 4644 4645 5714 5715 5716 5717 5718 5719 5528 5529 5530 5531 5532 5533 36 4376 4377 4378 4379 4380 4381 4646 4647 4648 4649 4650 4651 4346 4347 4348 4349 4350 4351 5390 5391 5392 5393 5394 5395 5528 5529 5530 5531 5532 5533 4370 4371 4372 4373 4374 4375 48 1729 1730 1731 1732 1733 1734 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 5564 5565 5566 5567 5568 5569 4085 4086 4087 4088 4089 4090 4079 4080 4081 4082 4083 4084 1741 1742 1743 1744 1745 1746 5696 5697 5698 5699 5700 5701 48 4346 4347 4348 4349 4350 4351 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 5432 5433 5434 5435 5436 5437 4115 4116 4117 4118 4119 4120 4109 4110 4111 4112 4113 4114 4085 4086 4087 4088 4089 4090 5564 5565 5566 5567 5568 5569 36 4832 4833 4834 4835 4836 4837 4670 4671 4672 4673 4674 4675 4838 4839 4840 4841 4842 4843 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 4844 4845 4846 4847 4848 4849 36 4598 4599 4600 4601 4602 4603 4670 4671 4672 4673 4674 4675 4832 4833 4834 4835 4836 4837 4676 4677 4678 4679 4680 4681 5720 5721 5722 5723 5724 5725 5354 5355 5356 5357 5358 5359 48 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4598 4599 4600 4601 4602 4603 5534 5535 5536 5537 5538 5539 4418 4419 4420 4421 4422 4423 4412 4413 4414 4415 4416 4417 4406 4407 4408 4409 4410 4411 5732 5733 5734 5735 5736 5737 36 4436 4437 4438 4439 4440 4441 4418 4419 4420 4421 4422 4423 4598 4599 4600 4601 4602 4603 4430 4431 4432 4433 4434 4435 5534 5535 5536 5537 5538 5539 5396 5397 5398 5399 5400 5401 48 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 5570 5571 5572 5573 5574 5575 4154 4155 4156 4157 4158 4159 4148 4149 4150 4151 4152 4153 4142 4143 4144 4145 4146 4147 5738 5739 5740 5741 5742 5743 48 4418 4419 4420 4421 4422 4423 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 5438 5439 5440 5441 5442 5443 4172 4173 4174 4175 4176 4177 4166 4167 4168 4169 4170 4171 4154 4155 4156 4157 4158 4159 5570 5571 5572 5573 5574 5575 48 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5270 5271 5272 5273 5274 5275 4958 4959 4960 4961 4962 4963 4952 4953 4954 4955 4956 4957 4946 4947 4948 4949 4950 4951 5600 5601 5602 5603 5604 5605 36 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4874 4875 4876 4877 4878 4879 4622 4623 4624 4625 4626 4627 5504 5505 5506 5507 5508 5509 5360 5361 5362 5363 5364 5365 48 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4610 4611 4612 4613 4614 4615 5402 5403 5404 5405 5406 5407 4466 4467 4468 4469 4470 4471 4460 4461 4462 4463 4464 4465 4454 4455 4456 4457 4458 4459 5540 5541 5542 5543 5544 5545 48 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 5444 5445 5446 5447 5448 5449 4202 4203 4204 4205 4206 4207 4196 4197 4198 4199 4200 4201 4190 4191 4192 4193 4194 4195 5576 5577 5578 5579 5580 5581 48 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5276 5277 5278 5279 5280 5281 5000 5001 5002 5003 5004 5005 4994 4995 4996 4997 4998 4999 4988 4989 4990 4991 4992 4993 5606 5607 5608 5609 5610 5611 48 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5312 5313 5314 5315 5316 5317 4916 4917 4918 4919 4920 4921 4928 4929 4930 4931 4932 4933 4886 4887 4888 4889 4890 4891 5630 5631 5632 5633 5634 5635 36 4754 4755 4756 4757 4758 4759 4742 4743 4744 4745 4746 4747 4916 4917 4918 4919 4920 4921 4748 4749 4750 4751 4752 4753 5510 5511 5512 5513 5514 5515 5366 5367 5368 5369 5370 5371 48 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 5408 5409 5410 5411 5412 5413 4496 4497 4498 4499 4500 4501 4490 4491 4492 4493 4494 4495 4484 4485 4486 4487 4488 4489 5546 5547 5548 5549 5550 5551 48 4508 4509 4510 4511 4512 4513 4544 4545 4546 4547 4548 4549 4484 4485 4486 4487 4488 4489 5582 5583 5584 5585 5586 5587 4220 4221 4222 4223 4224 4225 4280 4281 4282 4283 4284 4285 4244 4245 4246 4247 4248 4249 5702 5703 5704 5705 5706 5707 48 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 5450 5451 5452 5453 5454 5455 4232 4233 4234 4235 4236 4237 4226 4227 4228 4229 4230 4231 4220 4221 4222 4223 4224 4225 5582 5583 5584 5585 5586 5587 48 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5282 5283 5284 5285 5286 5287 5030 5031 5032 5033 5034 5035 5024 5025 5026 5027 5028 5029 5018 5019 5020 5021 5022 5023 5612 5613 5614 5615 5616 5617 48 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5318 5319 5320 5321 5322 5323 4910 4911 4912 4913 4914 4915 4904 4905 4906 4907 4908 4909 4898 4899 4900 4901 4902 4903 5636 5637 5638 5639 5640 5641 48 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 5516 5517 5518 5519 5520 5521 4772 4773 4774 4775 4776 4777 5744 5745 5746 5747 5748 5749 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 36 4784 4785 4786 4787 4788 4789 4772 4773 4774 4775 4776 4777 4910 4911 4912 4913 4914 4915 4778 4779 4780 4781 4782 4783 5516 5517 5518 5519 5520 5521 5372 5373 5374 5375 5376 5377 48 5666 5667 5668 5669 5670 5671 5744 5745 5746 5747 5748 5749 4772 4773 4774 4775 4776 4777 5552 5553 5554 5555 5556 5557 4532 4533 4534 4535 4536 4537 4526 4527 4528 4529 4530 4531 4520 4521 4522 4523 4524 4525 5690 5691 5692 5693 5694 5695 48 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 5414 5415 5416 5417 5418 5419 4556 4557 4558 4559 4560 4561 4550 4551 4552 4553 4554 4555 4532 4533 4534 4535 4536 4537 5552 5553 5554 5555 5556 5557 48 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 5588 5589 5590 5591 5592 5593 4268 4269 4270 4271 4272 4273 4262 4263 4264 4265 4266 4267 4256 4257 4258 4259 4260 4261 5708 5709 5710 5711 5712 5713 48 4532 4533 4534 4535 4536 4537 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 5456 5457 5458 5459 5460 5461 4292 4293 4294 4295 4296 4297 4286 4287 4288 4289 4290 4291 4268 4269 4270 4271 4272 4273 5588 5589 5590 5591 5592 5593 48 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5288 5289 5290 5291 5292 5293 5060 5061 5062 5063 5064 5065 5054 5055 5056 5057 5058 5059 5048 5049 5050 5051 5052 5053 5618 5619 5620 5621 5622 5623 36 4814 4815 4816 4817 4818 4819 4802 4803 4804 4805 4806 4807 5330 5331 5332 5333 5334 5335 4808 4809 4810 4811 4812 4813 5522 5523 5524 5525 5526 5527 5378 5379 5380 5381 5382 5383 48 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 5420 5421 5422 5423 5424 5425 4586 4587 4588 4589 4590 4591 4580 4581 4582 4583 4584 4585 4574 4575 4576 4577 4578 4579 5558 5559 5560 5561 5562 5563 48 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 5462 5463 5464 5465 5466 5467 4322 4323 4324 4325 4326 4327 4316 4317 4318 4319 4320 4321 4310 4311 4312 4313 4314 4315 5594 5595 5596 5597 5598 5599 48 4085 4086 4087 4088 4089 4090 5750 5751 5752 5753 5754 5755 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 5756 5757 5758 5759 5760 5761 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 48 4154 4155 4156 4157 4158 4159 5756 5757 5758 5759 5760 5761 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 5762 5763 5764 5765 5766 5767 4190 4191 4192 4193 4194 4195 4184 4185 4186 4187 4188 4189 48 4190 4191 4192 4193 4194 4195 5762 5763 5764 5765 5766 5767 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 5768 5769 5770 5771 5772 5773 4220 4221 4222 4223 4224 4225 4214 4215 4216 4217 4218 4219 48 4220 4221 4222 4223 4224 4225 5768 5769 5770 5771 5772 5773 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 5774 5775 5776 5777 5778 5779 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 48 4268 4269 4270 4271 4272 4273 5774 5775 5776 5777 5778 5779 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 5780 5781 5782 5783 5784 5785 4310 4311 4312 4313 4314 4315 4304 4305 4306 4307 4308 4309 48 1741 1742 1743 1744 1745 1746 5786 5787 5788 5789 5790 5791 5204 5205 5206 5207 5208 5209 5228 5229 5230 5231 5232 5233 55 56 57 58 59 60 5750 5751 5752 5753 5754 5755 4085 4086 4087 4088 4089 4090 4079 4080 4081 4082 4083 4084 48 4142 4143 4144 4145 4146 4147 5792 5793 5794 5795 5796 5797 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 67 68 69 70 71 72 5756 5757 5758 5759 5760 5761 4154 4155 4156 4157 4158 4159 4148 4149 4150 4151 4152 4153 48 4244 4245 4246 4247 4248 4249 5798 5799 5800 5801 5802 5803 5234 5235 5236 5237 5238 5239 5258 5259 5260 5261 5262 5263 91 92 93 94 95 96 5768 5769 5770 5771 5772 5773 4220 4221 4222 4223 4224 4225 4280 4281 4282 4283 4284 4285 48 4256 4257 4258 4259 4260 4261 5804 5805 5806 5807 5808 5809 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 103 104 105 106 107 108 5774 5775 5776 5777 5778 5779 4268 4269 4270 4271 4272 4273 4262 4263 4264 4265 4266 4267 48 4310 4311 4312 4313 4314 4315 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 4322 4323 4324 4325 4326 4327 4316 4317 4318 4319 4320 4321 48 5816 5817 5818 5819 5820 5821 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5828 5829 5830 5831 5832 5833 5822 5823 5824 5825 5826 5827 48 5882 5883 5884 5885 5886 5887 5876 5877 5878 5879 5880 5881 5870 5871 5872 5873 5874 5875 5888 5889 5890 5891 5892 5893 787 788 789 790 791 792 5894 5895 5896 5897 5898 5899 793 794 795 796 797 798 5900 5901 5902 5903 5904 5905 48 5846 5847 5848 5849 5850 5851 5906 5907 5908 5909 5910 5911 5870 5871 5872 5873 5874 5875 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5858 5859 5860 5861 5862 5863 5852 5853 5854 5855 5856 5857 48 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5918 5919 5920 5921 5922 5923 5912 5913 5914 5915 5916 5917 48 5870 5871 5872 5873 5874 5875 5906 5907 5908 5909 5910 5911 5846 5847 5848 5849 5850 5851 5948 5949 5950 5951 5952 5953 781 782 783 784 785 786 5954 5955 5956 5957 5958 5959 787 788 789 790 791 792 5888 5889 5890 5891 5892 5893 48 5882 5883 5884 5885 5886 5887 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5936 5937 5938 5939 5940 5941 5930 5931 5932 5933 5934 5935 48 5966 5967 5968 5969 5970 5971 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 5978 5979 5980 5981 5982 5983 5972 5973 5974 5975 5976 5977 36 5816 5817 5818 5819 5820 5821 781 782 783 784 785 786 5846 5847 5848 5849 5850 5851 6020 6021 6022 6023 6024 6025 5948 5949 5950 5951 5952 5953 5840 5841 5842 5843 5844 5845 48 5996 5997 5998 5999 6000 6001 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6008 6009 6010 6011 6012 6013 6002 6003 6004 6005 6006 6007 48 5816 5817 5818 5819 5820 5821 6062 6063 6064 6065 6066 6067 6056 6057 6058 6059 6060 6061 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 781 782 783 784 785 786 6020 6021 6022 6023 6024 6025 48 6032 6033 6034 6035 6036 6037 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6044 6045 6046 6047 6048 6049 6038 6039 6040 6041 6042 6043 48 6092 6093 6094 6095 6096 6097 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6104 6105 6106 6107 6108 6109 6098 6099 6100 6101 6102 6103 48 6122 6123 6124 6125 6126 6127 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6134 6135 6136 6137 6138 6139 6128 6129 6130 6131 6132 6133 48 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6152 6153 6154 6155 6156 6157 6212 6213 6214 6215 6216 6217 48 6152 6153 6154 6155 6156 6157 6206 6207 6208 6209 6210 6211 6200 6201 6202 6203 6204 6205 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6164 6165 6166 6167 6168 6169 6158 6159 6160 6161 6162 6163 48 6200 6201 6202 6203 6204 6205 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6224 6225 6226 6227 6228 6229 6218 6219 6220 6221 6222 6223 48 6242 6243 6244 6245 6246 6247 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6254 6255 6256 6257 6258 6259 6248 6249 6250 6251 6252 6253 48 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6272 6273 6274 6275 6276 6277 6332 6333 6334 6335 6336 6337 48 6272 6273 6274 6275 6276 6277 6326 6327 6328 6329 6330 6331 6320 6321 6322 6323 6324 6325 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6284 6285 6286 6287 6288 6289 6278 6279 6280 6281 6282 6283 48 6320 6321 6322 6323 6324 6325 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6344 6345 6346 6347 6348 6349 6338 6339 6340 6341 6342 6343 48 6362 6363 6364 6365 6366 6367 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6374 6375 6376 6377 6378 6379 6368 6369 6370 6371 6372 6373 48 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6392 6393 6394 6395 6396 6397 6452 6453 6454 6455 6456 6457 48 6392 6393 6394 6395 6396 6397 6446 6447 6448 6449 6450 6451 6440 6441 6442 6443 6444 6445 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6404 6405 6406 6407 6408 6409 6398 6399 6400 6401 6402 6403 48 6440 6441 6442 6443 6444 6445 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6464 6465 6466 6467 6468 6469 6458 6459 6460 6461 6462 6463 48 6482 6483 6484 6485 6486 6487 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6494 6495 6496 6497 6498 6499 6488 6489 6490 6491 6492 6493 48 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6512 6513 6514 6515 6516 6517 6572 6573 6574 6575 6576 6577 48 6512 6513 6514 6515 6516 6517 6566 6567 6568 6569 6570 6571 6560 6561 6562 6563 6564 6565 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6524 6525 6526 6527 6528 6529 6518 6519 6520 6521 6522 6523 48 6560 6561 6562 6563 6564 6565 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6584 6585 6586 6587 6588 6589 6578 6579 6580 6581 6582 6583 48 6602 6603 6604 6605 6606 6607 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6614 6615 6616 6617 6618 6619 6608 6609 6610 6611 6612 6613 48 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6632 6633 6634 6635 6636 6637 6692 6693 6694 6695 6696 6697 48 6632 6633 6634 6635 6636 6637 6686 6687 6688 6689 6690 6691 6680 6681 6682 6683 6684 6685 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6644 6645 6646 6647 6648 6649 6638 6639 6640 6641 6642 6643 48 6680 6681 6682 6683 6684 6685 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6704 6705 6706 6707 6708 6709 6698 6699 6700 6701 6702 6703 48 6722 6723 6724 6725 6726 6727 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6734 6735 6736 6737 6738 6739 6728 6729 6730 6731 6732 6733 48 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6752 6753 6754 6755 6756 6757 6812 6813 6814 6815 6816 6817 48 6752 6753 6754 6755 6756 6757 6806 6807 6808 6809 6810 6811 6800 6801 6802 6803 6804 6805 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6764 6765 6766 6767 6768 6769 6758 6759 6760 6761 6762 6763 48 6800 6801 6802 6803 6804 6805 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6824 6825 6826 6827 6828 6829 6818 6819 6820 6821 6822 6823 48 6842 6843 6844 6845 6846 6847 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6854 6855 6856 6857 6858 6859 6848 6849 6850 6851 6852 6853 48 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6872 6873 6874 6875 6876 6877 6932 6933 6934 6935 6936 6937 48 6872 6873 6874 6875 6876 6877 6926 6927 6928 6929 6930 6931 6920 6921 6922 6923 6924 6925 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6884 6885 6886 6887 6888 6889 6878 6879 6880 6881 6882 6883 48 6920 6921 6922 6923 6924 6925 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6944 6945 6946 6947 6948 6949 6938 6939 6940 6941 6942 6943 48 6962 6963 6964 6965 6966 6967 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 6974 6975 6976 6977 6978 6979 6968 6969 6970 6971 6972 6973 48 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 6992 6993 6994 6995 6996 6997 7052 7053 7054 7055 7056 7057 48 6992 6993 6994 6995 6996 6997 7046 7047 7048 7049 7050 7051 7040 7041 7042 7043 7044 7045 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7004 7005 7006 7007 7008 7009 6998 6999 7000 7001 7002 7003 48 7040 7041 7042 7043 7044 7045 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7064 7065 7066 7067 7068 7069 7058 7059 7060 7061 7062 7063 48 7082 7083 7084 7085 7086 7087 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7094 7095 7096 7097 7098 7099 7088 7089 7090 7091 7092 7093 48 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7112 7113 7114 7115 7116 7117 7172 7173 7174 7175 7176 7177 48 7112 7113 7114 7115 7116 7117 7166 7167 7168 7169 7170 7171 7160 7161 7162 7163 7164 7165 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7124 7125 7126 7127 7128 7129 7118 7119 7120 7121 7122 7123 48 7160 7161 7162 7163 7164 7165 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7184 7185 7186 7187 7188 7189 7178 7179 7180 7181 7182 7183 48 7202 7203 7204 7205 7206 7207 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7214 7215 7216 7217 7218 7219 7208 7209 7210 7211 7212 7213 48 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7232 7233 7234 7235 7236 7237 7292 7293 7294 7295 7296 7297 48 7232 7233 7234 7235 7236 7237 7286 7287 7288 7289 7290 7291 7280 7281 7282 7283 7284 7285 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7244 7245 7246 7247 7248 7249 7238 7239 7240 7241 7242 7243 48 7280 7281 7282 7283 7284 7285 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7304 7305 7306 7307 7308 7309 7298 7299 7300 7301 7302 7303 48 7322 7323 7324 7325 7326 7327 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7334 7335 7336 7337 7338 7339 7328 7329 7330 7331 7332 7333 48 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7352 7353 7354 7355 7356 7357 7412 7413 7414 7415 7416 7417 48 7352 7353 7354 7355 7356 7357 7406 7407 7408 7409 7410 7411 7400 7401 7402 7403 7404 7405 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7364 7365 7366 7367 7368 7369 7358 7359 7360 7361 7362 7363 48 7400 7401 7402 7403 7404 7405 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7424 7425 7426 7427 7428 7429 7418 7419 7420 7421 7422 7423 48 7442 7443 7444 7445 7446 7447 7466 7467 7468 7469 7470 7471 2083 2084 2085 2086 2087 2088 2125 2126 2127 2128 2129 2130 2113 2114 2115 2116 2117 2118 7472 7473 7474 7475 7476 7477 7454 7455 7456 7457 7458 7459 7448 7449 7450 7451 7452 7453 48 4574 4575 4576 4577 4578 4579 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 4586 4587 4588 4589 4590 4591 4580 4581 4582 4583 4584 4585 48 7484 7485 7486 7487 7488 7489 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7496 7497 7498 7499 7500 7501 7490 7491 7492 7493 7494 7495 48 7550 7551 7552 7553 7554 7555 7544 7545 7546 7547 7548 7549 7538 7539 7540 7541 7542 7543 7556 7557 7558 7559 7560 7561 751 752 753 754 755 756 7562 7563 7564 7565 7566 7567 757 758 759 760 761 762 7568 7569 7570 7571 7572 7573 48 7514 7515 7516 7517 7518 7519 7574 7575 7576 7577 7578 7579 7538 7539 7540 7541 7542 7543 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7526 7527 7528 7529 7530 7531 7520 7521 7522 7523 7524 7525 48 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7586 7587 7588 7589 7590 7591 7580 7581 7582 7583 7584 7585 48 7538 7539 7540 7541 7542 7543 7574 7575 7576 7577 7578 7579 7514 7515 7516 7517 7518 7519 7616 7617 7618 7619 7620 7621 745 746 747 748 749 750 7622 7623 7624 7625 7626 7627 751 752 753 754 755 756 7556 7557 7558 7559 7560 7561 48 7550 7551 7552 7553 7554 7555 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7604 7605 7606 7607 7608 7609 7598 7599 7600 7601 7602 7603 48 7634 7635 7636 7637 7638 7639 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7646 7647 7648 7649 7650 7651 7640 7641 7642 7643 7644 7645 36 7484 7485 7486 7487 7488 7489 745 746 747 748 749 750 7514 7515 7516 7517 7518 7519 7688 7689 7690 7691 7692 7693 7616 7617 7618 7619 7620 7621 7508 7509 7510 7511 7512 7513 48 7664 7665 7666 7667 7668 7669 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7676 7677 7678 7679 7680 7681 7670 7671 7672 7673 7674 7675 48 7484 7485 7486 7487 7488 7489 7730 7731 7732 7733 7734 7735 7724 7725 7726 7727 7728 7729 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 745 746 747 748 749 750 7688 7689 7690 7691 7692 7693 48 7700 7701 7702 7703 7704 7705 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7712 7713 7714 7715 7716 7717 7706 7707 7708 7709 7710 7711 48 7760 7761 7762 7763 7764 7765 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7772 7773 7774 7775 7776 7777 7766 7767 7768 7769 7770 7771 48 7790 7791 7792 7793 7794 7795 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7802 7803 7804 7805 7806 7807 7796 7797 7798 7799 7800 7801 48 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7820 7821 7822 7823 7824 7825 7880 7881 7882 7883 7884 7885 48 7820 7821 7822 7823 7824 7825 7874 7875 7876 7877 7878 7879 7868 7869 7870 7871 7872 7873 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7832 7833 7834 7835 7836 7837 7826 7827 7828 7829 7830 7831 48 7868 7869 7870 7871 7872 7873 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7892 7893 7894 7895 7896 7897 7886 7887 7888 7889 7890 7891 48 7910 7911 7912 7913 7914 7915 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7922 7923 7924 7925 7926 7927 7916 7917 7918 7919 7920 7921 48 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 7940 7941 7942 7943 7944 7945 8000 8001 8002 8003 8004 8005 48 7940 7941 7942 7943 7944 7945 7994 7995 7996 7997 7998 7999 7988 7989 7990 7991 7992 7993 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 7952 7953 7954 7955 7956 7957 7946 7947 7948 7949 7950 7951 48 7988 7989 7990 7991 7992 7993 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8012 8013 8014 8015 8016 8017 8006 8007 8008 8009 8010 8011 48 8030 8031 8032 8033 8034 8035 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8042 8043 8044 8045 8046 8047 8036 8037 8038 8039 8040 8041 48 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8060 8061 8062 8063 8064 8065 8120 8121 8122 8123 8124 8125 48 8060 8061 8062 8063 8064 8065 8114 8115 8116 8117 8118 8119 8108 8109 8110 8111 8112 8113 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8072 8073 8074 8075 8076 8077 8066 8067 8068 8069 8070 8071 48 8108 8109 8110 8111 8112 8113 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8132 8133 8134 8135 8136 8137 8126 8127 8128 8129 8130 8131 48 8150 8151 8152 8153 8154 8155 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8162 8163 8164 8165 8166 8167 8156 8157 8158 8159 8160 8161 48 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8180 8181 8182 8183 8184 8185 8240 8241 8242 8243 8244 8245 48 8180 8181 8182 8183 8184 8185 8234 8235 8236 8237 8238 8239 8228 8229 8230 8231 8232 8233 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8192 8193 8194 8195 8196 8197 8186 8187 8188 8189 8190 8191 48 8228 8229 8230 8231 8232 8233 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8252 8253 8254 8255 8256 8257 8246 8247 8248 8249 8250 8251 48 8270 8271 8272 8273 8274 8275 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8282 8283 8284 8285 8286 8287 8276 8277 8278 8279 8280 8281 48 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8300 8301 8302 8303 8304 8305 8360 8361 8362 8363 8364 8365 48 8300 8301 8302 8303 8304 8305 8354 8355 8356 8357 8358 8359 8348 8349 8350 8351 8352 8353 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8312 8313 8314 8315 8316 8317 8306 8307 8308 8309 8310 8311 48 8348 8349 8350 8351 8352 8353 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8372 8373 8374 8375 8376 8377 8366 8367 8368 8369 8370 8371 48 8390 8391 8392 8393 8394 8395 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8402 8403 8404 8405 8406 8407 8396 8397 8398 8399 8400 8401 48 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8420 8421 8422 8423 8424 8425 8480 8481 8482 8483 8484 8485 48 8420 8421 8422 8423 8424 8425 8474 8475 8476 8477 8478 8479 8468 8469 8470 8471 8472 8473 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8432 8433 8434 8435 8436 8437 8426 8427 8428 8429 8430 8431 48 8468 8469 8470 8471 8472 8473 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8492 8493 8494 8495 8496 8497 8486 8487 8488 8489 8490 8491 48 8510 8511 8512 8513 8514 8515 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8522 8523 8524 8525 8526 8527 8516 8517 8518 8519 8520 8521 48 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8540 8541 8542 8543 8544 8545 8600 8601 8602 8603 8604 8605 48 8540 8541 8542 8543 8544 8545 8594 8595 8596 8597 8598 8599 8588 8589 8590 8591 8592 8593 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8552 8553 8554 8555 8556 8557 8546 8547 8548 8549 8550 8551 48 8588 8589 8590 8591 8592 8593 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8612 8613 8614 8615 8616 8617 8606 8607 8608 8609 8610 8611 48 8630 8631 8632 8633 8634 8635 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8642 8643 8644 8645 8646 8647 8636 8637 8638 8639 8640 8641 48 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8660 8661 8662 8663 8664 8665 8720 8721 8722 8723 8724 8725 48 8660 8661 8662 8663 8664 8665 8714 8715 8716 8717 8718 8719 8708 8709 8710 8711 8712 8713 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8672 8673 8674 8675 8676 8677 8666 8667 8668 8669 8670 8671 48 8708 8709 8710 8711 8712 8713 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8732 8733 8734 8735 8736 8737 8726 8727 8728 8729 8730 8731 48 8750 8751 8752 8753 8754 8755 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8762 8763 8764 8765 8766 8767 8756 8757 8758 8759 8760 8761 48 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8780 8781 8782 8783 8784 8785 8840 8841 8842 8843 8844 8845 48 8780 8781 8782 8783 8784 8785 8834 8835 8836 8837 8838 8839 8828 8829 8830 8831 8832 8833 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8792 8793 8794 8795 8796 8797 8786 8787 8788 8789 8790 8791 48 8828 8829 8830 8831 8832 8833 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8852 8853 8854 8855 8856 8857 8846 8847 8848 8849 8850 8851 48 8870 8871 8872 8873 8874 8875 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8882 8883 8884 8885 8886 8887 8876 8877 8878 8879 8880 8881 48 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8900 8901 8902 8903 8904 8905 8960 8961 8962 8963 8964 8965 48 8900 8901 8902 8903 8904 8905 8954 8955 8956 8957 8958 8959 8948 8949 8950 8951 8952 8953 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8912 8913 8914 8915 8916 8917 8906 8907 8908 8909 8910 8911 48 8948 8949 8950 8951 8952 8953 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 8972 8973 8974 8975 8976 8977 8966 8967 8968 8969 8970 8971 48 8990 8991 8992 8993 8994 8995 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9002 9003 9004 9005 9006 9007 8996 8997 8998 8999 9000 9001 48 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9020 9021 9022 9023 9024 9025 9080 9081 9082 9083 9084 9085 48 9020 9021 9022 9023 9024 9025 9074 9075 9076 9077 9078 9079 9068 9069 9070 9071 9072 9073 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9032 9033 9034 9035 9036 9037 9026 9027 9028 9029 9030 9031 48 9068 9069 9070 9071 9072 9073 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9092 9093 9094 9095 9096 9097 9086 9087 9088 9089 9090 9091 48 9110 9111 9112 9113 9114 9115 9134 9135 9136 9137 9138 9139 2305 2306 2307 2308 2309 2310 2399 2400 2401 2402 2403 2404 2387 2388 2389 2390 2391 2392 9140 9141 9142 9143 9144 9145 9122 9123 9124 9125 9126 9127 9116 9117 9118 9119 9120 9121 48 4802 4803 4804 4805 4806 4807 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 4814 4815 4816 4817 4818 4819 4808 4809 4810 4811 4812 4813 48 9152 9153 9154 9155 9156 9157 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9164 9165 9166 9167 9168 9169 9158 9159 9160 9161 9162 9163 48 9218 9219 9220 9221 9222 9223 9212 9213 9214 9215 9216 9217 9206 9207 9208 9209 9210 9211 9224 9225 9226 9227 9228 9229 715 716 717 718 719 720 9230 9231 9232 9233 9234 9235 721 722 723 724 725 726 9236 9237 9238 9239 9240 9241 48 9182 9183 9184 9185 9186 9187 9242 9243 9244 9245 9246 9247 9206 9207 9208 9209 9210 9211 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9194 9195 9196 9197 9198 9199 9188 9189 9190 9191 9192 9193 48 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9254 9255 9256 9257 9258 9259 9248 9249 9250 9251 9252 9253 48 9206 9207 9208 9209 9210 9211 9242 9243 9244 9245 9246 9247 9182 9183 9184 9185 9186 9187 9284 9285 9286 9287 9288 9289 709 710 711 712 713 714 9290 9291 9292 9293 9294 9295 715 716 717 718 719 720 9224 9225 9226 9227 9228 9229 48 9218 9219 9220 9221 9222 9223 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9272 9273 9274 9275 9276 9277 9266 9267 9268 9269 9270 9271 48 9302 9303 9304 9305 9306 9307 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9314 9315 9316 9317 9318 9319 9308 9309 9310 9311 9312 9313 36 9152 9153 9154 9155 9156 9157 709 710 711 712 713 714 9182 9183 9184 9185 9186 9187 9356 9357 9358 9359 9360 9361 9284 9285 9286 9287 9288 9289 9176 9177 9178 9179 9180 9181 48 9332 9333 9334 9335 9336 9337 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9344 9345 9346 9347 9348 9349 9338 9339 9340 9341 9342 9343 48 9152 9153 9154 9155 9156 9157 9398 9399 9400 9401 9402 9403 9392 9393 9394 9395 9396 9397 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 709 710 711 712 713 714 9356 9357 9358 9359 9360 9361 48 9368 9369 9370 9371 9372 9373 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9380 9381 9382 9383 9384 9385 9374 9375 9376 9377 9378 9379 48 9428 9429 9430 9431 9432 9433 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9440 9441 9442 9443 9444 9445 9434 9435 9436 9437 9438 9439 48 9458 9459 9460 9461 9462 9463 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9470 9471 9472 9473 9474 9475 9464 9465 9466 9467 9468 9469 48 9488 9489 9490 9491 9492 9493 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9500 9501 9502 9503 9504 9505 9494 9495 9496 9497 9498 9499 48 9518 9519 9520 9521 9522 9523 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9530 9531 9532 9533 9534 9535 9524 9525 9526 9527 9528 9529 48 9548 9549 9550 9551 9552 9553 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9560 9561 9562 9563 9564 9565 9554 9555 9556 9557 9558 9559 48 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9578 9579 9580 9581 9582 9583 9638 9639 9640 9641 9642 9643 48 9578 9579 9580 9581 9582 9583 9632 9633 9634 9635 9636 9637 9626 9627 9628 9629 9630 9631 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9590 9591 9592 9593 9594 9595 9584 9585 9586 9587 9588 9589 48 9626 9627 9628 9629 9630 9631 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9650 9651 9652 9653 9654 9655 9644 9645 9646 9647 9648 9649 48 9668 9669 9670 9671 9672 9673 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9680 9681 9682 9683 9684 9685 9674 9675 9676 9677 9678 9679 48 9698 9699 9700 9701 9702 9703 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9710 9711 9712 9713 9714 9715 9704 9705 9706 9707 9708 9709 48 9728 9729 9730 9731 9732 9733 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9740 9741 9742 9743 9744 9745 9734 9735 9736 9737 9738 9739 48 9758 9759 9760 9761 9762 9763 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9770 9771 9772 9773 9774 9775 9764 9765 9766 9767 9768 9769 48 9788 9789 9790 9791 9792 9793 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9800 9801 9802 9803 9804 9805 9794 9795 9796 9797 9798 9799 48 9818 9819 9820 9821 9822 9823 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9830 9831 9832 9833 9834 9835 9824 9825 9826 9827 9828 9829 48 9848 9849 9850 9851 9852 9853 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9860 9861 9862 9863 9864 9865 9854 9855 9856 9857 9858 9859 48 9878 9879 9880 9881 9882 9883 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9890 9891 9892 9893 9894 9895 9884 9885 9886 9887 9888 9889 48 9908 9909 9910 9911 9912 9913 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9920 9921 9922 9923 9924 9925 9914 9915 9916 9917 9918 9919 48 9938 9939 9940 9941 9942 9943 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9950 9951 9952 9953 9954 9955 9944 9945 9946 9947 9948 9949 48 9968 9969 9970 9971 9972 9973 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 9980 9981 9982 9983 9984 9985 9974 9975 9976 9977 9978 9979 48 9998 9999 10000 10001 10002 10003 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10010 10011 10012 10013 10014 10015 10004 10005 10006 10007 10008 10009 48 10028 10029 10030 10031 10032 10033 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10040 10041 10042 10043 10044 10045 10034 10035 10036 10037 10038 10039 48 10058 10059 10060 10061 10062 10063 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10070 10071 10072 10073 10074 10075 10064 10065 10066 10067 10068 10069 48 10088 10089 10090 10091 10092 10093 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10100 10101 10102 10103 10104 10105 10094 10095 10096 10097 10098 10099 48 10118 10119 10120 10121 10122 10123 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10130 10131 10132 10133 10134 10135 10124 10125 10126 10127 10128 10129 48 10148 10149 10150 10151 10152 10153 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10160 10161 10162 10163 10164 10165 10154 10155 10156 10157 10158 10159 48 10178 10179 10180 10181 10182 10183 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10190 10191 10192 10193 10194 10195 10184 10185 10186 10187 10188 10189 48 10208 10209 10210 10211 10212 10213 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10220 10221 10222 10223 10224 10225 10214 10215 10216 10217 10218 10219 48 10238 10239 10240 10241 10242 10243 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10250 10251 10252 10253 10254 10255 10244 10245 10246 10247 10248 10249 48 10268 10269 10270 10271 10272 10273 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10280 10281 10282 10283 10284 10285 10274 10275 10276 10277 10278 10279 48 10298 10299 10300 10301 10302 10303 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10310 10311 10312 10313 10314 10315 10304 10305 10306 10307 10308 10309 48 10328 10329 10330 10331 10332 10333 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10340 10341 10342 10343 10344 10345 10334 10335 10336 10337 10338 10339 48 10358 10359 10360 10361 10362 10363 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10370 10371 10372 10373 10374 10375 10364 10365 10366 10367 10368 10369 48 10388 10389 10390 10391 10392 10393 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10400 10401 10402 10403 10404 10405 10394 10395 10396 10397 10398 10399 48 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10418 10419 10420 10421 10422 10423 10478 10479 10480 10481 10482 10483 48 10418 10419 10420 10421 10422 10423 10472 10473 10474 10475 10476 10477 10466 10467 10468 10469 10470 10471 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10430 10431 10432 10433 10434 10435 10424 10425 10426 10427 10428 10429 48 10466 10467 10468 10469 10470 10471 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10490 10491 10492 10493 10494 10495 10484 10485 10486 10487 10488 10489 48 10508 10509 10510 10511 10512 10513 10532 10533 10534 10535 10536 10537 2579 2580 2581 2582 2583 2584 2675 2676 2677 2678 2679 2680 2663 2664 2665 2666 2667 2668 10538 10539 10540 10541 10542 10543 10520 10521 10522 10523 10524 10525 10514 10515 10516 10517 10518 10519 48 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10580 10581 10582 10583 10584 10585 10574 10575 10576 10577 10578 10579 10586 10587 10588 10589 10590 10591 48 10604 10605 10606 10607 10608 10609 10598 10599 10600 10601 10602 10603 10592 10593 10594 10595 10596 10597 10610 10611 10612 10613 10614 10615 655 656 657 658 659 660 10616 10617 10618 10619 10620 10621 667 668 669 670 671 672 10622 10623 10624 10625 10626 10627 48 10556 10557 10558 10559 10560 10561 10628 10629 10630 10631 10632 10633 10592 10593 10594 10595 10596 10597 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10568 10569 10570 10571 10572 10573 10562 10563 10564 10565 10566 10567 48 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10640 10641 10642 10643 10644 10645 10634 10635 10636 10637 10638 10639 48 10592 10593 10594 10595 10596 10597 10628 10629 10630 10631 10632 10633 10556 10557 10558 10559 10560 10561 10670 10671 10672 10673 10674 10675 643 644 645 646 647 648 10676 10677 10678 10679 10680 10681 655 656 657 658 659 660 10610 10611 10612 10613 10614 10615 48 10604 10605 10606 10607 10608 10609 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10658 10659 10660 10661 10662 10663 10652 10653 10654 10655 10656 10657 48 10688 10689 10690 10691 10692 10693 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10700 10701 10702 10703 10704 10705 10694 10695 10696 10697 10698 10699 36 10544 10545 10546 10547 10548 10549 643 644 645 646 647 648 10556 10557 10558 10559 10560 10561 10742 10743 10744 10745 10746 10747 10670 10671 10672 10673 10674 10675 10550 10551 10552 10553 10554 10555 48 10718 10719 10720 10721 10722 10723 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10730 10731 10732 10733 10734 10735 10724 10725 10726 10727 10728 10729 48 10544 10545 10546 10547 10548 10549 10784 10785 10786 10787 10788 10789 10778 10779 10780 10781 10782 10783 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 643 644 645 646 647 648 10742 10743 10744 10745 10746 10747 48 10754 10755 10756 10757 10758 10759 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10766 10767 10768 10769 10770 10771 10760 10761 10762 10763 10764 10765 48 10814 10815 10816 10817 10818 10819 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10826 10827 10828 10829 10830 10831 10820 10821 10822 10823 10824 10825 48 10844 10845 10846 10847 10848 10849 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10856 10857 10858 10859 10860 10861 10850 10851 10852 10853 10854 10855 48 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10874 10875 10876 10877 10878 10879 10934 10935 10936 10937 10938 10939 48 10874 10875 10876 10877 10878 10879 10928 10929 10930 10931 10932 10933 10922 10923 10924 10925 10926 10927 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10886 10887 10888 10889 10890 10891 10880 10881 10882 10883 10884 10885 48 10922 10923 10924 10925 10926 10927 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10946 10947 10948 10949 10950 10951 10940 10941 10942 10943 10944 10945 48 10964 10965 10966 10967 10968 10969 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 10976 10977 10978 10979 10980 10981 10970 10971 10972 10973 10974 10975 48 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 10994 10995 10996 10997 10998 10999 11054 11055 11056 11057 11058 11059 48 10994 10995 10996 10997 10998 10999 11048 11049 11050 11051 11052 11053 11042 11043 11044 11045 11046 11047 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11006 11007 11008 11009 11010 11011 11000 11001 11002 11003 11004 11005 48 11042 11043 11044 11045 11046 11047 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11066 11067 11068 11069 11070 11071 11060 11061 11062 11063 11064 11065 48 11084 11085 11086 11087 11088 11089 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11096 11097 11098 11099 11100 11101 11090 11091 11092 11093 11094 11095 48 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11114 11115 11116 11117 11118 11119 11174 11175 11176 11177 11178 11179 48 11114 11115 11116 11117 11118 11119 11168 11169 11170 11171 11172 11173 11162 11163 11164 11165 11166 11167 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11126 11127 11128 11129 11130 11131 11120 11121 11122 11123 11124 11125 48 11162 11163 11164 11165 11166 11167 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11186 11187 11188 11189 11190 11191 11180 11181 11182 11183 11184 11185 48 11204 11205 11206 11207 11208 11209 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11216 11217 11218 11219 11220 11221 11210 11211 11212 11213 11214 11215 48 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11234 11235 11236 11237 11238 11239 11294 11295 11296 11297 11298 11299 48 11234 11235 11236 11237 11238 11239 11288 11289 11290 11291 11292 11293 11282 11283 11284 11285 11286 11287 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11246 11247 11248 11249 11250 11251 11240 11241 11242 11243 11244 11245 48 11282 11283 11284 11285 11286 11287 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11306 11307 11308 11309 11310 11311 11300 11301 11302 11303 11304 11305 48 11324 11325 11326 11327 11328 11329 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11336 11337 11338 11339 11340 11341 11330 11331 11332 11333 11334 11335 48 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11354 11355 11356 11357 11358 11359 11414 11415 11416 11417 11418 11419 48 11354 11355 11356 11357 11358 11359 11408 11409 11410 11411 11412 11413 11402 11403 11404 11405 11406 11407 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11366 11367 11368 11369 11370 11371 11360 11361 11362 11363 11364 11365 48 11402 11403 11404 11405 11406 11407 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11426 11427 11428 11429 11430 11431 11420 11421 11422 11423 11424 11425 48 11444 11445 11446 11447 11448 11449 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11456 11457 11458 11459 11460 11461 11450 11451 11452 11453 11454 11455 48 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11474 11475 11476 11477 11478 11479 11534 11535 11536 11537 11538 11539 48 11474 11475 11476 11477 11478 11479 11528 11529 11530 11531 11532 11533 11522 11523 11524 11525 11526 11527 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11486 11487 11488 11489 11490 11491 11480 11481 11482 11483 11484 11485 48 11522 11523 11524 11525 11526 11527 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11546 11547 11548 11549 11550 11551 11540 11541 11542 11543 11544 11545 48 11564 11565 11566 11567 11568 11569 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11576 11577 11578 11579 11580 11581 11570 11571 11572 11573 11574 11575 48 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11594 11595 11596 11597 11598 11599 11654 11655 11656 11657 11658 11659 48 11594 11595 11596 11597 11598 11599 11648 11649 11650 11651 11652 11653 11642 11643 11644 11645 11646 11647 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11606 11607 11608 11609 11610 11611 11600 11601 11602 11603 11604 11605 48 11642 11643 11644 11645 11646 11647 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11666 11667 11668 11669 11670 11671 11660 11661 11662 11663 11664 11665 48 11684 11685 11686 11687 11688 11689 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11696 11697 11698 11699 11700 11701 11690 11691 11692 11693 11694 11695 48 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11714 11715 11716 11717 11718 11719 11774 11775 11776 11777 11778 11779 48 11714 11715 11716 11717 11718 11719 11768 11769 11770 11771 11772 11773 11762 11763 11764 11765 11766 11767 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11726 11727 11728 11729 11730 11731 11720 11721 11722 11723 11724 11725 48 11762 11763 11764 11765 11766 11767 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11786 11787 11788 11789 11790 11791 11780 11781 11782 11783 11784 11785 48 11804 11805 11806 11807 11808 11809 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11816 11817 11818 11819 11820 11821 11810 11811 11812 11813 11814 11815 48 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11834 11835 11836 11837 11838 11839 11894 11895 11896 11897 11898 11899 48 11834 11835 11836 11837 11838 11839 11888 11889 11890 11891 11892 11893 11882 11883 11884 11885 11886 11887 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11846 11847 11848 11849 11850 11851 11840 11841 11842 11843 11844 11845 48 11882 11883 11884 11885 11886 11887 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11906 11907 11908 11909 11910 11911 11900 11901 11902 11903 11904 11905 48 11924 11925 11926 11927 11928 11929 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11936 11937 11938 11939 11940 11941 11930 11931 11932 11933 11934 11935 48 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 11954 11955 11956 11957 11958 11959 12014 12015 12016 12017 12018 12019 48 11954 11955 11956 11957 11958 11959 12008 12009 12010 12011 12012 12013 12002 12003 12004 12005 12006 12007 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 11966 11967 11968 11969 11970 11971 11960 11961 11962 11963 11964 11965 48 12002 12003 12004 12005 12006 12007 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12026 12027 12028 12029 12030 12031 12020 12021 12022 12023 12024 12025 48 12044 12045 12046 12047 12048 12049 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12056 12057 12058 12059 12060 12061 12050 12051 12052 12053 12054 12055 48 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12074 12075 12076 12077 12078 12079 12134 12135 12136 12137 12138 12139 48 12074 12075 12076 12077 12078 12079 12128 12129 12130 12131 12132 12133 12122 12123 12124 12125 12126 12127 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12086 12087 12088 12089 12090 12091 12080 12081 12082 12083 12084 12085 48 12122 12123 12124 12125 12126 12127 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12146 12147 12148 12149 12150 12151 12140 12141 12142 12143 12144 12145 48 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 637 638 639 640 641 642 12218 12219 12220 12221 12222 12223 12212 12213 12214 12215 12216 12217 12224 12225 12226 12227 12228 12229 48 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 637 638 639 640 641 642 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12248 12249 12250 12251 12252 12253 12242 12243 12244 12245 12246 12247 12254 12255 12256 12257 12258 12259 48 12200 12201 12202 12203 12204 12205 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 649 650 651 652 653 654 12278 12279 12280 12281 12282 12283 637 638 639 640 641 642 12206 12207 12208 12209 12210 12211 48 637 638 639 640 641 642 12278 12279 12280 12281 12282 12283 649 650 651 652 653 654 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12236 12237 12238 12239 12240 12241 12230 12231 12232 12233 12234 12235 48 12266 12267 12268 12269 12270 12271 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 661 662 663 664 665 666 12320 12321 12322 12323 12324 12325 649 650 651 652 653 654 12272 12273 12274 12275 12276 12277 48 649 650 651 652 653 654 12320 12321 12322 12323 12324 12325 661 662 663 664 665 666 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12290 12291 12292 12293 12294 12295 12284 12285 12286 12287 12288 12289 48 12308 12309 12310 12311 12312 12313 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 673 674 675 676 677 678 12362 12363 12364 12365 12366 12367 661 662 663 664 665 666 12314 12315 12316 12317 12318 12319 48 661 662 663 664 665 666 12362 12363 12364 12365 12366 12367 673 674 675 676 677 678 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12332 12333 12334 12335 12336 12337 12326 12327 12328 12329 12330 12331 48 12350 12351 12352 12353 12354 12355 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 685 686 687 688 689 690 12404 12405 12406 12407 12408 12409 673 674 675 676 677 678 12356 12357 12358 12359 12360 12361 48 673 674 675 676 677 678 12404 12405 12406 12407 12408 12409 685 686 687 688 689 690 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12374 12375 12376 12377 12378 12379 12368 12369 12370 12371 12372 12373 48 12392 12393 12394 12395 12396 12397 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 697 698 699 700 701 702 12446 12447 12448 12449 12450 12451 685 686 687 688 689 690 12398 12399 12400 12401 12402 12403 48 685 686 687 688 689 690 12446 12447 12448 12449 12450 12451 697 698 699 700 701 702 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12416 12417 12418 12419 12420 12421 12410 12411 12412 12413 12414 12415 48 12434 12435 12436 12437 12438 12439 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 697 698 699 700 701 702 12440 12441 12442 12443 12444 12445 48 697 698 699 700 701 702 12494 12495 12496 12497 12498 12499 12488 12489 12490 12491 12492 12493 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12458 12459 12460 12461 12462 12463 12452 12453 12454 12455 12456 12457 48 12476 12477 12478 12479 12480 12481 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12488 12489 12490 12491 12492 12493 12482 12483 12484 12485 12486 12487 48 12488 12489 12490 12491 12492 12493 12542 12543 12544 12545 12546 12547 12536 12537 12538 12539 12540 12541 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12506 12507 12508 12509 12510 12511 12500 12501 12502 12503 12504 12505 48 12524 12525 12526 12527 12528 12529 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12536 12537 12538 12539 12540 12541 12530 12531 12532 12533 12534 12535 48 12536 12537 12538 12539 12540 12541 12590 12591 12592 12593 12594 12595 12584 12585 12586 12587 12588 12589 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12554 12555 12556 12557 12558 12559 12548 12549 12550 12551 12552 12553 48 12572 12573 12574 12575 12576 12577 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12584 12585 12586 12587 12588 12589 12578 12579 12580 12581 12582 12583 48 12584 12585 12586 12587 12588 12589 12638 12639 12640 12641 12642 12643 12632 12633 12634 12635 12636 12637 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12602 12603 12604 12605 12606 12607 12596 12597 12598 12599 12600 12601 48 12620 12621 12622 12623 12624 12625 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12632 12633 12634 12635 12636 12637 12626 12627 12628 12629 12630 12631 48 12632 12633 12634 12635 12636 12637 12686 12687 12688 12689 12690 12691 12680 12681 12682 12683 12684 12685 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12650 12651 12652 12653 12654 12655 12644 12645 12646 12647 12648 12649 48 12668 12669 12670 12671 12672 12673 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12680 12681 12682 12683 12684 12685 12674 12675 12676 12677 12678 12679 48 12680 12681 12682 12683 12684 12685 12734 12735 12736 12737 12738 12739 12728 12729 12730 12731 12732 12733 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12698 12699 12700 12701 12702 12703 12692 12693 12694 12695 12696 12697 48 12716 12717 12718 12719 12720 12721 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12728 12729 12730 12731 12732 12733 12722 12723 12724 12725 12726 12727 48 12728 12729 12730 12731 12732 12733 12782 12783 12784 12785 12786 12787 12776 12777 12778 12779 12780 12781 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12746 12747 12748 12749 12750 12751 12740 12741 12742 12743 12744 12745 48 12764 12765 12766 12767 12768 12769 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12776 12777 12778 12779 12780 12781 12770 12771 12772 12773 12774 12775 48 12776 12777 12778 12779 12780 12781 12830 12831 12832 12833 12834 12835 12824 12825 12826 12827 12828 12829 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12794 12795 12796 12797 12798 12799 12788 12789 12790 12791 12792 12793 48 12812 12813 12814 12815 12816 12817 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12824 12825 12826 12827 12828 12829 12818 12819 12820 12821 12822 12823 48 12824 12825 12826 12827 12828 12829 12878 12879 12880 12881 12882 12883 12872 12873 12874 12875 12876 12877 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12842 12843 12844 12845 12846 12847 12836 12837 12838 12839 12840 12841 48 12860 12861 12862 12863 12864 12865 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12872 12873 12874 12875 12876 12877 12866 12867 12868 12869 12870 12871 48 12872 12873 12874 12875 12876 12877 12926 12927 12928 12929 12930 12931 12920 12921 12922 12923 12924 12925 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12890 12891 12892 12893 12894 12895 12884 12885 12886 12887 12888 12889 48 12908 12909 12910 12911 12912 12913 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12920 12921 12922 12923 12924 12925 12914 12915 12916 12917 12918 12919 48 12920 12921 12922 12923 12924 12925 12974 12975 12976 12977 12978 12979 12968 12969 12970 12971 12972 12973 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12938 12939 12940 12941 12942 12943 12932 12933 12934 12935 12936 12937 48 12956 12957 12958 12959 12960 12961 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 12968 12969 12970 12971 12972 12973 12962 12963 12964 12965 12966 12967 48 12968 12969 12970 12971 12972 12973 13022 13023 13024 13025 13026 13027 13016 13017 13018 13019 13020 13021 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 12986 12987 12988 12989 12990 12991 12980 12981 12982 12983 12984 12985 48 13004 13005 13006 13007 13008 13009 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13016 13017 13018 13019 13020 13021 13010 13011 13012 13013 13014 13015 48 13016 13017 13018 13019 13020 13021 13070 13071 13072 13073 13074 13075 13064 13065 13066 13067 13068 13069 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13034 13035 13036 13037 13038 13039 13028 13029 13030 13031 13032 13033 48 13052 13053 13054 13055 13056 13057 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13064 13065 13066 13067 13068 13069 13058 13059 13060 13061 13062 13063 48 13064 13065 13066 13067 13068 13069 13118 13119 13120 13121 13122 13123 13112 13113 13114 13115 13116 13117 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13082 13083 13084 13085 13086 13087 13076 13077 13078 13079 13080 13081 48 13100 13101 13102 13103 13104 13105 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13112 13113 13114 13115 13116 13117 13106 13107 13108 13109 13110 13111 48 13112 13113 13114 13115 13116 13117 13166 13167 13168 13169 13170 13171 13160 13161 13162 13163 13164 13165 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13130 13131 13132 13133 13134 13135 13124 13125 13126 13127 13128 13129 48 13148 13149 13150 13151 13152 13153 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13160 13161 13162 13163 13164 13165 13154 13155 13156 13157 13158 13159 48 13160 13161 13162 13163 13164 13165 13214 13215 13216 13217 13218 13219 13208 13209 13210 13211 13212 13213 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13178 13179 13180 13181 13182 13183 13172 13173 13174 13175 13176 13177 48 13196 13197 13198 13199 13200 13201 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13208 13209 13210 13211 13212 13213 13202 13203 13204 13205 13206 13207 48 13208 13209 13210 13211 13212 13213 13262 13263 13264 13265 13266 13267 13256 13257 13258 13259 13260 13261 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13226 13227 13228 13229 13230 13231 13220 13221 13222 13223 13224 13225 48 13244 13245 13246 13247 13248 13249 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13256 13257 13258 13259 13260 13261 13250 13251 13252 13253 13254 13255 48 13256 13257 13258 13259 13260 13261 13310 13311 13312 13313 13314 13315 13304 13305 13306 13307 13308 13309 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13274 13275 13276 13277 13278 13279 13268 13269 13270 13271 13272 13273 48 13292 13293 13294 13295 13296 13297 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13304 13305 13306 13307 13308 13309 13298 13299 13300 13301 13302 13303 48 13304 13305 13306 13307 13308 13309 13358 13359 13360 13361 13362 13363 13352 13353 13354 13355 13356 13357 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13322 13323 13324 13325 13326 13327 13316 13317 13318 13319 13320 13321 48 13340 13341 13342 13343 13344 13345 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13352 13353 13354 13355 13356 13357 13346 13347 13348 13349 13350 13351 48 13352 13353 13354 13355 13356 13357 13406 13407 13408 13409 13410 13411 13400 13401 13402 13403 13404 13405 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13370 13371 13372 13373 13374 13375 13364 13365 13366 13367 13368 13369 48 13388 13389 13390 13391 13392 13393 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13400 13401 13402 13403 13404 13405 13394 13395 13396 13397 13398 13399 48 13400 13401 13402 13403 13404 13405 13454 13455 13456 13457 13458 13459 13448 13449 13450 13451 13452 13453 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13418 13419 13420 13421 13422 13423 13412 13413 13414 13415 13416 13417 48 13436 13437 13438 13439 13440 13441 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13448 13449 13450 13451 13452 13453 13442 13443 13444 13445 13446 13447 48 13448 13449 13450 13451 13452 13453 13502 13503 13504 13505 13506 13507 13496 13497 13498 13499 13500 13501 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13466 13467 13468 13469 13470 13471 13460 13461 13462 13463 13464 13465 48 13484 13485 13486 13487 13488 13489 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13496 13497 13498 13499 13500 13501 13490 13491 13492 13493 13494 13495 48 13496 13497 13498 13499 13500 13501 13550 13551 13552 13553 13554 13555 13544 13545 13546 13547 13548 13549 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13514 13515 13516 13517 13518 13519 13508 13509 13510 13511 13512 13513 48 13532 13533 13534 13535 13536 13537 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13544 13545 13546 13547 13548 13549 13538 13539 13540 13541 13542 13543 48 13544 13545 13546 13547 13548 13549 13598 13599 13600 13601 13602 13603 13592 13593 13594 13595 13596 13597 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13562 13563 13564 13565 13566 13567 13556 13557 13558 13559 13560 13561 48 13580 13581 13582 13583 13584 13585 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13592 13593 13594 13595 13596 13597 13586 13587 13588 13589 13590 13591 48 13592 13593 13594 13595 13596 13597 13646 13647 13648 13649 13650 13651 13640 13641 13642 13643 13644 13645 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13610 13611 13612 13613 13614 13615 13604 13605 13606 13607 13608 13609 48 13628 13629 13630 13631 13632 13633 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13640 13641 13642 13643 13644 13645 13634 13635 13636 13637 13638 13639 48 13640 13641 13642 13643 13644 13645 13694 13695 13696 13697 13698 13699 13688 13689 13690 13691 13692 13693 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13658 13659 13660 13661 13662 13663 13652 13653 13654 13655 13656 13657 48 13676 13677 13678 13679 13680 13681 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13688 13689 13690 13691 13692 13693 13682 13683 13684 13685 13686 13687 48 13688 13689 13690 13691 13692 13693 13742 13743 13744 13745 13746 13747 13736 13737 13738 13739 13740 13741 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13706 13707 13708 13709 13710 13711 13700 13701 13702 13703 13704 13705 48 13724 13725 13726 13727 13728 13729 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13736 13737 13738 13739 13740 13741 13730 13731 13732 13733 13734 13735 48 13736 13737 13738 13739 13740 13741 13790 13791 13792 13793 13794 13795 13784 13785 13786 13787 13788 13789 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13754 13755 13756 13757 13758 13759 13748 13749 13750 13751 13752 13753 48 13772 13773 13774 13775 13776 13777 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13784 13785 13786 13787 13788 13789 13778 13779 13780 13781 13782 13783 48 13784 13785 13786 13787 13788 13789 13838 13839 13840 13841 13842 13843 13832 13833 13834 13835 13836 13837 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13802 13803 13804 13805 13806 13807 13796 13797 13798 13799 13800 13801 48 13820 13821 13822 13823 13824 13825 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13832 13833 13834 13835 13836 13837 13826 13827 13828 13829 13830 13831 48 13832 13833 13834 13835 13836 13837 13886 13887 13888 13889 13890 13891 13880 13881 13882 13883 13884 13885 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13850 13851 13852 13853 13854 13855 13844 13845 13846 13847 13848 13849 48 13868 13869 13870 13871 13872 13873 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13880 13881 13882 13883 13884 13885 13874 13875 13876 13877 13878 13879 48 13880 13881 13882 13883 13884 13885 13934 13935 13936 13937 13938 13939 13928 13929 13930 13931 13932 13933 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13898 13899 13900 13901 13902 13903 13892 13893 13894 13895 13896 13897 48 13916 13917 13918 13919 13920 13921 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13928 13929 13930 13931 13932 13933 13922 13923 13924 13925 13926 13927 48 13928 13929 13930 13931 13932 13933 13982 13983 13984 13985 13986 13987 13976 13977 13978 13979 13980 13981 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 13946 13947 13948 13949 13950 13951 13940 13941 13942 13943 13944 13945 48 13964 13965 13966 13967 13968 13969 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 13976 13977 13978 13979 13980 13981 13970 13971 13972 13973 13974 13975 48 13976 13977 13978 13979 13980 13981 14030 14031 14032 14033 14034 14035 14024 14025 14026 14027 14028 14029 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 13994 13995 13996 13997 13998 13999 13988 13989 13990 13991 13992 13993 48 14012 14013 14014 14015 14016 14017 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14024 14025 14026 14027 14028 14029 14018 14019 14020 14021 14022 14023 48 14024 14025 14026 14027 14028 14029 14078 14079 14080 14081 14082 14083 14072 14073 14074 14075 14076 14077 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14042 14043 14044 14045 14046 14047 14036 14037 14038 14039 14040 14041 48 14060 14061 14062 14063 14064 14065 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14072 14073 14074 14075 14076 14077 14066 14067 14068 14069 14070 14071 48 14072 14073 14074 14075 14076 14077 14126 14127 14128 14129 14130 14131 14120 14121 14122 14123 14124 14125 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14090 14091 14092 14093 14094 14095 14084 14085 14086 14087 14088 14089 48 5180 5181 5182 5183 5184 5185 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 5192 5193 5194 5195 5196 5197 5186 5187 5188 5189 5190 5191 48 14156 14157 14158 14159 14160 14161 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14168 14169 14170 14171 14172 14173 14162 14163 14164 14165 14166 14167 48 14186 14187 14188 14189 14190 14191 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14198 14199 14200 14201 14202 14203 14192 14193 14194 14195 14196 14197 48 14216 14217 14218 14219 14220 14221 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14228 14229 14230 14231 14232 14233 14222 14223 14224 14225 14226 14227 48 14246 14247 14248 14249 14250 14251 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14258 14259 14260 14261 14262 14263 14252 14253 14254 14255 14256 14257 48 14276 14277 14278 14279 14280 14281 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14288 14289 14290 14291 14292 14293 14282 14283 14284 14285 14286 14287 48 14306 14307 14308 14309 14310 14311 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14318 14319 14320 14321 14322 14323 14312 14313 14314 14315 14316 14317 48 14336 14337 14338 14339 14340 14341 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14348 14349 14350 14351 14352 14353 14342 14343 14344 14345 14346 14347 48 14366 14367 14368 14369 14370 14371 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14378 14379 14380 14381 14382 14383 14372 14373 14374 14375 14376 14377 48 14396 14397 14398 14399 14400 14401 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14408 14409 14410 14411 14412 14413 14402 14403 14404 14405 14406 14407 48 14426 14427 14428 14429 14430 14431 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14438 14439 14440 14441 14442 14443 14432 14433 14434 14435 14436 14437 48 14456 14457 14458 14459 14460 14461 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14468 14469 14470 14471 14472 14473 14462 14463 14464 14465 14466 14467 48 14486 14487 14488 14489 14490 14491 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14498 14499 14500 14501 14502 14503 14492 14493 14494 14495 14496 14497 48 14516 14517 14518 14519 14520 14521 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14528 14529 14530 14531 14532 14533 14522 14523 14524 14525 14526 14527 48 14546 14547 14548 14549 14550 14551 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14558 14559 14560 14561 14562 14563 14552 14553 14554 14555 14556 14557 48 14576 14577 14578 14579 14580 14581 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14588 14589 14590 14591 14592 14593 14582 14583 14584 14585 14586 14587 48 14606 14607 14608 14609 14610 14611 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14618 14619 14620 14621 14622 14623 14612 14613 14614 14615 14616 14617 48 14636 14637 14638 14639 14640 14641 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14648 14649 14650 14651 14652 14653 14642 14643 14644 14645 14646 14647 48 14666 14667 14668 14669 14670 14671 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14678 14679 14680 14681 14682 14683 14672 14673 14674 14675 14676 14677 48 14696 14697 14698 14699 14700 14701 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14708 14709 14710 14711 14712 14713 14702 14703 14704 14705 14706 14707 48 14726 14727 14728 14729 14730 14731 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14738 14739 14740 14741 14742 14743 14732 14733 14734 14735 14736 14737 48 14756 14757 14758 14759 14760 14761 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14768 14769 14770 14771 14772 14773 14762 14763 14764 14765 14766 14767 48 14786 14787 14788 14789 14790 14791 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14798 14799 14800 14801 14802 14803 14792 14793 14794 14795 14796 14797 48 14816 14817 14818 14819 14820 14821 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14828 14829 14830 14831 14832 14833 14822 14823 14824 14825 14826 14827 48 14846 14847 14848 14849 14850 14851 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14858 14859 14860 14861 14862 14863 14852 14853 14854 14855 14856 14857 48 14876 14877 14878 14879 14880 14881 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14888 14889 14890 14891 14892 14893 14882 14883 14884 14885 14886 14887 48 14906 14907 14908 14909 14910 14911 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14918 14919 14920 14921 14922 14923 14912 14913 14914 14915 14916 14917 48 14936 14937 14938 14939 14940 14941 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14948 14949 14950 14951 14952 14953 14942 14943 14944 14945 14946 14947 48 14966 14967 14968 14969 14970 14971 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 14978 14979 14980 14981 14982 14983 14972 14973 14974 14975 14976 14977 48 14996 14997 14998 14999 15000 15001 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15008 15009 15010 15011 15012 15013 15002 15003 15004 15005 15006 15007 48 15026 15027 15028 15029 15030 15031 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15038 15039 15040 15041 15042 15043 15032 15033 15034 15035 15036 15037 48 15056 15057 15058 15059 15060 15061 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15068 15069 15070 15071 15072 15073 15062 15063 15064 15065 15066 15067 48 15086 15087 15088 15089 15090 15091 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15098 15099 15100 15101 15102 15103 15092 15093 15094 15095 15096 15097 48 15116 15117 15118 15119 15120 15121 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15128 15129 15130 15131 15132 15133 15122 15123 15124 15125 15126 15127 48 15146 15147 15148 15149 15150 15151 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15158 15159 15160 15161 15162 15163 15152 15153 15154 15155 15156 15157 48 15176 15177 15178 15179 15180 15181 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15188 15189 15190 15191 15192 15193 15182 15183 15184 15185 15186 15187 48 15206 15207 15208 15209 15210 15211 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15218 15219 15220 15221 15222 15223 15212 15213 15214 15215 15216 15217 48 15236 15237 15238 15239 15240 15241 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15248 15249 15250 15251 15252 15253 15242 15243 15244 15245 15246 15247 48 15266 15267 15268 15269 15270 15271 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15278 15279 15280 15281 15282 15283 15272 15273 15274 15275 15276 15277 48 15296 15297 15298 15299 15300 15301 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15308 15309 15310 15311 15312 15313 15302 15303 15304 15305 15306 15307 48 15326 15327 15328 15329 15330 15331 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15338 15339 15340 15341 15342 15343 15332 15333 15334 15335 15336 15337 48 15356 15357 15358 15359 15360 15361 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15368 15369 15370 15371 15372 15373 15362 15363 15364 15365 15366 15367 48 15386 15387 15388 15389 15390 15391 15410 15411 15412 15413 15414 15415 3203 3204 3205 3206 3207 3208 3245 3246 3247 3248 3249 3250 3233 3234 3235 3236 3237 3238 15416 15417 15418 15419 15420 15421 15398 15399 15400 15401 15402 15403 15392 15393 15394 15395 15396 15397 48 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 139 140 141 142 143 144 133 134 135 136 137 138 127 128 129 130 131 132 15446 15447 15448 15449 15450 15451 48 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 211 212 213 214 215 216 205 206 207 208 209 210 199 200 201 202 203 204 15476 15477 15478 15479 15480 15481 48 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 247 248 249 250 251 252 241 242 243 244 245 246 235 236 237 238 239 240 15506 15507 15508 15509 15510 15511 48 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 283 284 285 286 287 288 277 278 279 280 281 282 271 272 273 274 275 276 15536 15537 15538 15539 15540 15541 48 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 319 320 321 322 323 324 313 314 315 316 317 318 307 308 309 310 311 312 15566 15567 15568 15569 15570 15571 48 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 355 356 357 358 359 360 349 350 351 352 353 354 343 344 345 346 347 348 15596 15597 15598 15599 15600 15601 48 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 391 392 393 394 395 396 385 386 387 388 389 390 379 380 381 382 383 384 15626 15627 15628 15629 15630 15631 48 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 427 428 429 430 431 432 421 422 423 424 425 426 415 416 417 418 419 420 15656 15657 15658 15659 15660 15661 48 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 463 464 465 466 467 468 457 458 459 460 461 462 451 452 453 454 455 456 15686 15687 15688 15689 15690 15691 48 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 499 500 501 502 503 504 493 494 495 496 497 498 487 488 489 490 491 492 15716 15717 15718 15719 15720 15721 48 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 535 536 537 538 539 540 529 530 531 532 533 534 523 524 525 526 527 528 15746 15747 15748 15749 15750 15751 48 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 571 572 573 574 575 576 565 566 567 568 569 570 559 560 561 562 563 564 15776 15777 15778 15779 15780 15781 48 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 607 608 609 610 611 612 601 602 603 604 605 606 595 596 597 598 599 600 15806 15807 15808 15809 15810 15811 48 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 15812 15813 15814 15815 15816 15817 12212 12213 12214 12215 12216 12217 12224 12225 12226 12227 12228 12229 12188 12189 12190 12191 12192 12193 15818 15819 15820 15821 15822 15823 36 12242 12243 12244 12245 12246 12247 12212 12213 12214 12215 12216 12217 5060 5061 5062 5063 5064 5065 12254 12255 12256 12257 12258 12259 15812 15813 15814 15815 15816 15817 15824 15825 15826 15827 15828 15829 36 10574 10575 10576 10577 10578 10579 10544 10545 10546 10547 10548 10549 5330 5331 5332 5333 5334 5335 10586 10587 10588 10589 10590 10591 15836 15837 15838 15839 15840 15841 15830 15831 15832 15833 15834 15835 48 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 15842 15843 15844 15845 15846 15847 3047 3048 3049 3050 3051 3052 3059 3060 3061 3062 3063 3064 3017 3018 3019 3020 3021 3022 15848 15849 15850 15851 15852 15853 36 14138 14139 14140 14141 14142 14143 3047 3048 3049 3050 3051 3052 14120 14121 14122 14123 14124 14125 15854 15855 15856 15857 15858 15859 15842 15843 15844 15845 15846 15847 14132 14133 14134 14135 14136 14137 36 12176 12177 12178 12179 12180 12181 2807 2808 2809 2810 2811 2812 12164 12165 12166 12167 12168 12169 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 12170 12171 12172 12173 12174 12175 48 5192 5193 5194 5195 5196 5197 14174 14175 14176 14177 14178 14179 14168 14169 14170 14171 14172 14173 15872 15873 15874 15875 15876 15877 12242 12243 12244 12245 12246 12247 15824 15825 15826 15827 15828 15829 5060 5061 5062 5063 5064 5065 5288 5289 5290 5291 5292 5293 48 14168 14169 14170 14171 14172 14173 14204 14205 14206 14207 14208 14209 14198 14199 14200 14201 14202 14203 15878 15879 15880 15881 15882 15883 12236 12237 12238 12239 12240 12241 12248 12249 12250 12251 12252 12253 12242 12243 12244 12245 12246 12247 15872 15873 15874 15875 15876 15877 48 14198 14199 14200 14201 14202 14203 14234 14235 14236 14237 14238 14239 14228 14229 14230 14231 14232 14233 15884 15885 15886 15887 15888 15889 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12236 12237 12238 12239 12240 12241 15878 15879 15880 15881 15882 15883 48 14228 14229 14230 14231 14232 14233 14264 14265 14266 14267 14268 14269 14258 14259 14260 14261 14262 14263 15890 15891 15892 15893 15894 15895 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12290 12291 12292 12293 12294 12295 15884 15885 15886 15887 15888 15889 48 14258 14259 14260 14261 14262 14263 14294 14295 14296 14297 14298 14299 14288 14289 14290 14291 14292 14293 15896 15897 15898 15899 15900 15901 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12332 12333 12334 12335 12336 12337 15890 15891 15892 15893 15894 15895 48 14288 14289 14290 14291 14292 14293 14324 14325 14326 14327 14328 14329 14318 14319 14320 14321 14322 14323 15902 15903 15904 15905 15906 15907 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12374 12375 12376 12377 12378 12379 15896 15897 15898 15899 15900 15901 48 14318 14319 14320 14321 14322 14323 14354 14355 14356 14357 14358 14359 14348 14349 14350 14351 14352 14353 15908 15909 15910 15911 15912 15913 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12416 12417 12418 12419 12420 12421 15902 15903 15904 15905 15906 15907 48 14348 14349 14350 14351 14352 14353 14384 14385 14386 14387 14388 14389 14378 14379 14380 14381 14382 14383 15914 15915 15916 15917 15918 15919 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12458 12459 12460 12461 12462 12463 15908 15909 15910 15911 15912 15913 48 14378 14379 14380 14381 14382 14383 14414 14415 14416 14417 14418 14419 14408 14409 14410 14411 14412 14413 15920 15921 15922 15923 15924 15925 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12506 12507 12508 12509 12510 12511 15914 15915 15916 15917 15918 15919 48 14408 14409 14410 14411 14412 14413 14444 14445 14446 14447 14448 14449 14438 14439 14440 14441 14442 14443 15926 15927 15928 15929 15930 15931 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12554 12555 12556 12557 12558 12559 15920 15921 15922 15923 15924 15925 48 14438 14439 14440 14441 14442 14443 14474 14475 14476 14477 14478 14479 14468 14469 14470 14471 14472 14473 15932 15933 15934 15935 15936 15937 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12602 12603 12604 12605 12606 12607 15926 15927 15928 15929 15930 15931 48 14468 14469 14470 14471 14472 14473 14504 14505 14506 14507 14508 14509 14498 14499 14500 14501 14502 14503 15938 15939 15940 15941 15942 15943 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12650 12651 12652 12653 12654 12655 15932 15933 15934 15935 15936 15937 48 14498 14499 14500 14501 14502 14503 14534 14535 14536 14537 14538 14539 14528 14529 14530 14531 14532 14533 15944 15945 15946 15947 15948 15949 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12698 12699 12700 12701 12702 12703 15938 15939 15940 15941 15942 15943 48 14528 14529 14530 14531 14532 14533 14564 14565 14566 14567 14568 14569 14558 14559 14560 14561 14562 14563 15950 15951 15952 15953 15954 15955 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12746 12747 12748 12749 12750 12751 15944 15945 15946 15947 15948 15949 48 14558 14559 14560 14561 14562 14563 14594 14595 14596 14597 14598 14599 14588 14589 14590 14591 14592 14593 15956 15957 15958 15959 15960 15961 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12794 12795 12796 12797 12798 12799 15950 15951 15952 15953 15954 15955 48 14588 14589 14590 14591 14592 14593 14624 14625 14626 14627 14628 14629 14618 14619 14620 14621 14622 14623 15962 15963 15964 15965 15966 15967 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12842 12843 12844 12845 12846 12847 15956 15957 15958 15959 15960 15961 48 14618 14619 14620 14621 14622 14623 14654 14655 14656 14657 14658 14659 14648 14649 14650 14651 14652 14653 15968 15969 15970 15971 15972 15973 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12890 12891 12892 12893 12894 12895 15962 15963 15964 15965 15966 15967 48 14648 14649 14650 14651 14652 14653 14684 14685 14686 14687 14688 14689 14678 14679 14680 14681 14682 14683 15974 15975 15976 15977 15978 15979 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12938 12939 12940 12941 12942 12943 15968 15969 15970 15971 15972 15973 48 14678 14679 14680 14681 14682 14683 14714 14715 14716 14717 14718 14719 14708 14709 14710 14711 14712 14713 15980 15981 15982 15983 15984 15985 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 12986 12987 12988 12989 12990 12991 15974 15975 15976 15977 15978 15979 48 14708 14709 14710 14711 14712 14713 14744 14745 14746 14747 14748 14749 14738 14739 14740 14741 14742 14743 15986 15987 15988 15989 15990 15991 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13034 13035 13036 13037 13038 13039 15980 15981 15982 15983 15984 15985 48 14738 14739 14740 14741 14742 14743 14774 14775 14776 14777 14778 14779 14768 14769 14770 14771 14772 14773 15992 15993 15994 15995 15996 15997 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13082 13083 13084 13085 13086 13087 15986 15987 15988 15989 15990 15991 48 14768 14769 14770 14771 14772 14773 14804 14805 14806 14807 14808 14809 14798 14799 14800 14801 14802 14803 15998 15999 16000 16001 16002 16003 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13130 13131 13132 13133 13134 13135 15992 15993 15994 15995 15996 15997 48 14798 14799 14800 14801 14802 14803 14834 14835 14836 14837 14838 14839 14828 14829 14830 14831 14832 14833 16004 16005 16006 16007 16008 16009 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13178 13179 13180 13181 13182 13183 15998 15999 16000 16001 16002 16003 48 14828 14829 14830 14831 14832 14833 14864 14865 14866 14867 14868 14869 14858 14859 14860 14861 14862 14863 16010 16011 16012 16013 16014 16015 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13226 13227 13228 13229 13230 13231 16004 16005 16006 16007 16008 16009 48 14858 14859 14860 14861 14862 14863 14894 14895 14896 14897 14898 14899 14888 14889 14890 14891 14892 14893 16016 16017 16018 16019 16020 16021 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13274 13275 13276 13277 13278 13279 16010 16011 16012 16013 16014 16015 48 14888 14889 14890 14891 14892 14893 14924 14925 14926 14927 14928 14929 14918 14919 14920 14921 14922 14923 16022 16023 16024 16025 16026 16027 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13322 13323 13324 13325 13326 13327 16016 16017 16018 16019 16020 16021 48 14918 14919 14920 14921 14922 14923 14954 14955 14956 14957 14958 14959 14948 14949 14950 14951 14952 14953 16028 16029 16030 16031 16032 16033 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13370 13371 13372 13373 13374 13375 16022 16023 16024 16025 16026 16027 48 14948 14949 14950 14951 14952 14953 14984 14985 14986 14987 14988 14989 14978 14979 14980 14981 14982 14983 16034 16035 16036 16037 16038 16039 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13418 13419 13420 13421 13422 13423 16028 16029 16030 16031 16032 16033 48 14978 14979 14980 14981 14982 14983 15014 15015 15016 15017 15018 15019 15008 15009 15010 15011 15012 15013 16040 16041 16042 16043 16044 16045 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13466 13467 13468 13469 13470 13471 16034 16035 16036 16037 16038 16039 48 15008 15009 15010 15011 15012 15013 15044 15045 15046 15047 15048 15049 15038 15039 15040 15041 15042 15043 16046 16047 16048 16049 16050 16051 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13514 13515 13516 13517 13518 13519 16040 16041 16042 16043 16044 16045 48 15038 15039 15040 15041 15042 15043 15074 15075 15076 15077 15078 15079 15068 15069 15070 15071 15072 15073 16052 16053 16054 16055 16056 16057 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13562 13563 13564 13565 13566 13567 16046 16047 16048 16049 16050 16051 48 15068 15069 15070 15071 15072 15073 15104 15105 15106 15107 15108 15109 15098 15099 15100 15101 15102 15103 16058 16059 16060 16061 16062 16063 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13610 13611 13612 13613 13614 13615 16052 16053 16054 16055 16056 16057 48 15098 15099 15100 15101 15102 15103 15134 15135 15136 15137 15138 15139 15128 15129 15130 15131 15132 15133 16064 16065 16066 16067 16068 16069 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13658 13659 13660 13661 13662 13663 16058 16059 16060 16061 16062 16063 48 15128 15129 15130 15131 15132 15133 15164 15165 15166 15167 15168 15169 15158 15159 15160 15161 15162 15163 16070 16071 16072 16073 16074 16075 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13706 13707 13708 13709 13710 13711 16064 16065 16066 16067 16068 16069 48 15158 15159 15160 15161 15162 15163 15194 15195 15196 15197 15198 15199 15188 15189 15190 15191 15192 15193 16076 16077 16078 16079 16080 16081 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13754 13755 13756 13757 13758 13759 16070 16071 16072 16073 16074 16075 48 15188 15189 15190 15191 15192 15193 15224 15225 15226 15227 15228 15229 15218 15219 15220 15221 15222 15223 16082 16083 16084 16085 16086 16087 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13802 13803 13804 13805 13806 13807 16076 16077 16078 16079 16080 16081 48 15218 15219 15220 15221 15222 15223 15254 15255 15256 15257 15258 15259 15248 15249 15250 15251 15252 15253 16088 16089 16090 16091 16092 16093 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13850 13851 13852 13853 13854 13855 16082 16083 16084 16085 16086 16087 48 15248 15249 15250 15251 15252 15253 15284 15285 15286 15287 15288 15289 15278 15279 15280 15281 15282 15283 16094 16095 16096 16097 16098 16099 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13898 13899 13900 13901 13902 13903 16088 16089 16090 16091 16092 16093 48 15278 15279 15280 15281 15282 15283 15314 15315 15316 15317 15318 15319 15308 15309 15310 15311 15312 15313 16100 16101 16102 16103 16104 16105 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 13946 13947 13948 13949 13950 13951 16094 16095 16096 16097 16098 16099 48 15308 15309 15310 15311 15312 15313 15344 15345 15346 15347 15348 15349 15338 15339 15340 15341 15342 15343 16106 16107 16108 16109 16110 16111 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 13994 13995 13996 13997 13998 13999 16100 16101 16102 16103 16104 16105 48 15338 15339 15340 15341 15342 15343 15374 15375 15376 15377 15378 15379 15368 15369 15370 15371 15372 15373 16112 16113 16114 16115 16116 16117 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14042 14043 14044 14045 14046 14047 16106 16107 16108 16109 16110 16111 48 15368 15369 15370 15371 15372 15373 15404 15405 15406 15407 15408 15409 15398 15399 15400 15401 15402 15403 16118 16119 16120 16121 16122 16123 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14090 14091 14092 14093 14094 14095 16112 16113 16114 16115 16116 16117 48 15398 15399 15400 15401 15402 15403 15416 15417 15418 15419 15420 15421 3233 3234 3235 3236 3237 3238 3359 3360 3361 3362 3363 3364 3047 3048 3049 3050 3051 3052 15854 15855 15856 15857 15858 15859 14138 14139 14140 14141 14142 14143 16118 16119 16120 16121 16122 16123 48 5060 5061 5062 5063 5064 5065 15824 15825 15826 15827 15828 15829 12242 12243 12244 12245 12246 12247 16124 16125 16126 16127 16128 16129 10574 10575 10576 10577 10578 10579 15830 15831 15832 15833 15834 15835 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 48 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12236 12237 12238 12239 12240 12241 16130 16131 16132 16133 16134 16135 10568 10569 10570 10571 10572 10573 10580 10581 10582 10583 10584 10585 10574 10575 10576 10577 10578 10579 16124 16125 16126 16127 16128 16129 48 12236 12237 12238 12239 12240 12241 12296 12297 12298 12299 12300 12301 12290 12291 12292 12293 12294 12295 16136 16137 16138 16139 16140 16141 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10568 10569 10570 10571 10572 10573 16130 16131 16132 16133 16134 16135 48 12290 12291 12292 12293 12294 12295 12338 12339 12340 12341 12342 12343 12332 12333 12334 12335 12336 12337 16142 16143 16144 16145 16146 16147 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10640 10641 10642 10643 10644 10645 16136 16137 16138 16139 16140 16141 48 12332 12333 12334 12335 12336 12337 12380 12381 12382 12383 12384 12385 12374 12375 12376 12377 12378 12379 16148 16149 16150 16151 16152 16153 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10658 10659 10660 10661 10662 10663 16142 16143 16144 16145 16146 16147 48 12374 12375 12376 12377 12378 12379 12422 12423 12424 12425 12426 12427 12416 12417 12418 12419 12420 12421 16154 16155 16156 16157 16158 16159 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10700 10701 10702 10703 10704 10705 16148 16149 16150 16151 16152 16153 48 12416 12417 12418 12419 12420 12421 12464 12465 12466 12467 12468 12469 12458 12459 12460 12461 12462 12463 16160 16161 16162 16163 16164 16165 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10730 10731 10732 10733 10734 10735 16154 16155 16156 16157 16158 16159 48 12458 12459 12460 12461 12462 12463 12512 12513 12514 12515 12516 12517 12506 12507 12508 12509 12510 12511 16166 16167 16168 16169 16170 16171 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10766 10767 10768 10769 10770 10771 16160 16161 16162 16163 16164 16165 48 12506 12507 12508 12509 12510 12511 12560 12561 12562 12563 12564 12565 12554 12555 12556 12557 12558 12559 16172 16173 16174 16175 16176 16177 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10826 10827 10828 10829 10830 10831 16166 16167 16168 16169 16170 16171 48 12554 12555 12556 12557 12558 12559 12608 12609 12610 12611 12612 12613 12602 12603 12604 12605 12606 12607 16178 16179 16180 16181 16182 16183 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10856 10857 10858 10859 10860 10861 16172 16173 16174 16175 16176 16177 48 12602 12603 12604 12605 12606 12607 12656 12657 12658 12659 12660 12661 12650 12651 12652 12653 12654 12655 16184 16185 16186 16187 16188 16189 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10886 10887 10888 10889 10890 10891 16178 16179 16180 16181 16182 16183 48 12650 12651 12652 12653 12654 12655 12704 12705 12706 12707 12708 12709 12698 12699 12700 12701 12702 12703 16190 16191 16192 16193 16194 16195 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10946 10947 10948 10949 10950 10951 16184 16185 16186 16187 16188 16189 48 12698 12699 12700 12701 12702 12703 12752 12753 12754 12755 12756 12757 12746 12747 12748 12749 12750 12751 16196 16197 16198 16199 16200 16201 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 10976 10977 10978 10979 10980 10981 16190 16191 16192 16193 16194 16195 48 12746 12747 12748 12749 12750 12751 12800 12801 12802 12803 12804 12805 12794 12795 12796 12797 12798 12799 16202 16203 16204 16205 16206 16207 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11006 11007 11008 11009 11010 11011 16196 16197 16198 16199 16200 16201 48 12794 12795 12796 12797 12798 12799 12848 12849 12850 12851 12852 12853 12842 12843 12844 12845 12846 12847 16208 16209 16210 16211 16212 16213 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11066 11067 11068 11069 11070 11071 16202 16203 16204 16205 16206 16207 48 12842 12843 12844 12845 12846 12847 12896 12897 12898 12899 12900 12901 12890 12891 12892 12893 12894 12895 16214 16215 16216 16217 16218 16219 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11096 11097 11098 11099 11100 11101 16208 16209 16210 16211 16212 16213 48 12890 12891 12892 12893 12894 12895 12944 12945 12946 12947 12948 12949 12938 12939 12940 12941 12942 12943 16220 16221 16222 16223 16224 16225 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11126 11127 11128 11129 11130 11131 16214 16215 16216 16217 16218 16219 48 12938 12939 12940 12941 12942 12943 12992 12993 12994 12995 12996 12997 12986 12987 12988 12989 12990 12991 16226 16227 16228 16229 16230 16231 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11186 11187 11188 11189 11190 11191 16220 16221 16222 16223 16224 16225 48 12986 12987 12988 12989 12990 12991 13040 13041 13042 13043 13044 13045 13034 13035 13036 13037 13038 13039 16232 16233 16234 16235 16236 16237 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11216 11217 11218 11219 11220 11221 16226 16227 16228 16229 16230 16231 48 13034 13035 13036 13037 13038 13039 13088 13089 13090 13091 13092 13093 13082 13083 13084 13085 13086 13087 16238 16239 16240 16241 16242 16243 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11246 11247 11248 11249 11250 11251 16232 16233 16234 16235 16236 16237 48 13082 13083 13084 13085 13086 13087 13136 13137 13138 13139 13140 13141 13130 13131 13132 13133 13134 13135 16244 16245 16246 16247 16248 16249 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11306 11307 11308 11309 11310 11311 16238 16239 16240 16241 16242 16243 48 13130 13131 13132 13133 13134 13135 13184 13185 13186 13187 13188 13189 13178 13179 13180 13181 13182 13183 16250 16251 16252 16253 16254 16255 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11336 11337 11338 11339 11340 11341 16244 16245 16246 16247 16248 16249 48 13178 13179 13180 13181 13182 13183 13232 13233 13234 13235 13236 13237 13226 13227 13228 13229 13230 13231 16256 16257 16258 16259 16260 16261 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11366 11367 11368 11369 11370 11371 16250 16251 16252 16253 16254 16255 48 13226 13227 13228 13229 13230 13231 13280 13281 13282 13283 13284 13285 13274 13275 13276 13277 13278 13279 16262 16263 16264 16265 16266 16267 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11426 11427 11428 11429 11430 11431 16256 16257 16258 16259 16260 16261 48 13274 13275 13276 13277 13278 13279 13328 13329 13330 13331 13332 13333 13322 13323 13324 13325 13326 13327 16268 16269 16270 16271 16272 16273 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11456 11457 11458 11459 11460 11461 16262 16263 16264 16265 16266 16267 48 13322 13323 13324 13325 13326 13327 13376 13377 13378 13379 13380 13381 13370 13371 13372 13373 13374 13375 16274 16275 16276 16277 16278 16279 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11486 11487 11488 11489 11490 11491 16268 16269 16270 16271 16272 16273 48 13370 13371 13372 13373 13374 13375 13424 13425 13426 13427 13428 13429 13418 13419 13420 13421 13422 13423 16280 16281 16282 16283 16284 16285 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11546 11547 11548 11549 11550 11551 16274 16275 16276 16277 16278 16279 48 13418 13419 13420 13421 13422 13423 13472 13473 13474 13475 13476 13477 13466 13467 13468 13469 13470 13471 16286 16287 16288 16289 16290 16291 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11576 11577 11578 11579 11580 11581 16280 16281 16282 16283 16284 16285 48 13466 13467 13468 13469 13470 13471 13520 13521 13522 13523 13524 13525 13514 13515 13516 13517 13518 13519 16292 16293 16294 16295 16296 16297 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11606 11607 11608 11609 11610 11611 16286 16287 16288 16289 16290 16291 48 13514 13515 13516 13517 13518 13519 13568 13569 13570 13571 13572 13573 13562 13563 13564 13565 13566 13567 16298 16299 16300 16301 16302 16303 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11666 11667 11668 11669 11670 11671 16292 16293 16294 16295 16296 16297 48 13562 13563 13564 13565 13566 13567 13616 13617 13618 13619 13620 13621 13610 13611 13612 13613 13614 13615 16304 16305 16306 16307 16308 16309 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11696 11697 11698 11699 11700 11701 16298 16299 16300 16301 16302 16303 48 13610 13611 13612 13613 13614 13615 13664 13665 13666 13667 13668 13669 13658 13659 13660 13661 13662 13663 16310 16311 16312 16313 16314 16315 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11726 11727 11728 11729 11730 11731 16304 16305 16306 16307 16308 16309 48 13658 13659 13660 13661 13662 13663 13712 13713 13714 13715 13716 13717 13706 13707 13708 13709 13710 13711 16316 16317 16318 16319 16320 16321 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11786 11787 11788 11789 11790 11791 16310 16311 16312 16313 16314 16315 48 13706 13707 13708 13709 13710 13711 13760 13761 13762 13763 13764 13765 13754 13755 13756 13757 13758 13759 16322 16323 16324 16325 16326 16327 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11816 11817 11818 11819 11820 11821 16316 16317 16318 16319 16320 16321 48 13754 13755 13756 13757 13758 13759 13808 13809 13810 13811 13812 13813 13802 13803 13804 13805 13806 13807 16328 16329 16330 16331 16332 16333 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11846 11847 11848 11849 11850 11851 16322 16323 16324 16325 16326 16327 48 13802 13803 13804 13805 13806 13807 13856 13857 13858 13859 13860 13861 13850 13851 13852 13853 13854 13855 16334 16335 16336 16337 16338 16339 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11906 11907 11908 11909 11910 11911 16328 16329 16330 16331 16332 16333 48 13850 13851 13852 13853 13854 13855 13904 13905 13906 13907 13908 13909 13898 13899 13900 13901 13902 13903 16340 16341 16342 16343 16344 16345 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11936 11937 11938 11939 11940 11941 16334 16335 16336 16337 16338 16339 48 13898 13899 13900 13901 13902 13903 13952 13953 13954 13955 13956 13957 13946 13947 13948 13949 13950 13951 16346 16347 16348 16349 16350 16351 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 11966 11967 11968 11969 11970 11971 16340 16341 16342 16343 16344 16345 48 13946 13947 13948 13949 13950 13951 14000 14001 14002 14003 14004 14005 13994 13995 13996 13997 13998 13999 16352 16353 16354 16355 16356 16357 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12026 12027 12028 12029 12030 12031 16346 16347 16348 16349 16350 16351 48 13994 13995 13996 13997 13998 13999 14048 14049 14050 14051 14052 14053 14042 14043 14044 14045 14046 14047 16358 16359 16360 16361 16362 16363 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12056 12057 12058 12059 12060 12061 16352 16353 16354 16355 16356 16357 48 14042 14043 14044 14045 14046 14047 14096 14097 14098 14099 14100 14101 14090 14091 14092 14093 14094 14095 16364 16365 16366 16367 16368 16369 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12086 12087 12088 12089 12090 12091 16358 16359 16360 16361 16362 16363 48 14090 14091 14092 14093 14094 14095 14144 14145 14146 14147 14148 14149 14138 14139 14140 14141 14142 14143 16370 16371 16372 16373 16374 16375 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12146 12147 12148 12149 12150 12151 16364 16365 16366 16367 16368 16369 48 14138 14139 14140 14141 14142 14143 15854 15855 15856 15857 15858 15859 3047 3048 3049 3050 3051 3052 3437 3438 3439 3440 3441 3442 2807 2808 2809 2810 2811 2812 15860 15861 15862 15863 15864 15865 12176 12177 12178 12179 12180 12181 16370 16371 16372 16373 16374 16375 48 5330 5331 5332 5333 5334 5335 15830 15831 15832 15833 15834 15835 10574 10575 10576 10577 10578 10579 16376 16377 16378 16379 16380 16381 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 4814 4815 4816 4817 4818 4819 5378 5379 5380 5381 5382 5383 48 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10568 10569 10570 10571 10572 10573 16382 16383 16384 16385 16386 16387 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9164 9165 9166 9167 9168 9169 16376 16377 16378 16379 16380 16381 48 10568 10569 10570 10571 10572 10573 10646 10647 10648 10649 10650 10651 10640 10641 10642 10643 10644 10645 16388 16389 16390 16391 16392 16393 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9194 9195 9196 9197 9198 9199 16382 16383 16384 16385 16386 16387 48 10640 10641 10642 10643 10644 10645 10664 10665 10666 10667 10668 10669 10658 10659 10660 10661 10662 10663 16394 16395 16396 16397 16398 16399 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9254 9255 9256 9257 9258 9259 16388 16389 16390 16391 16392 16393 48 10658 10659 10660 10661 10662 10663 10706 10707 10708 10709 10710 10711 10700 10701 10702 10703 10704 10705 16400 16401 16402 16403 16404 16405 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9272 9273 9274 9275 9276 9277 16394 16395 16396 16397 16398 16399 48 10700 10701 10702 10703 10704 10705 10736 10737 10738 10739 10740 10741 10730 10731 10732 10733 10734 10735 16406 16407 16408 16409 16410 16411 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9314 9315 9316 9317 9318 9319 16400 16401 16402 16403 16404 16405 48 10730 10731 10732 10733 10734 10735 10772 10773 10774 10775 10776 10777 10766 10767 10768 10769 10770 10771 16412 16413 16414 16415 16416 16417 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9344 9345 9346 9347 9348 9349 16406 16407 16408 16409 16410 16411 48 10766 10767 10768 10769 10770 10771 10832 10833 10834 10835 10836 10837 10826 10827 10828 10829 10830 10831 16418 16419 16420 16421 16422 16423 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9380 9381 9382 9383 9384 9385 16412 16413 16414 16415 16416 16417 48 10826 10827 10828 10829 10830 10831 10862 10863 10864 10865 10866 10867 10856 10857 10858 10859 10860 10861 16424 16425 16426 16427 16428 16429 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9440 9441 9442 9443 9444 9445 16418 16419 16420 16421 16422 16423 48 10856 10857 10858 10859 10860 10861 10892 10893 10894 10895 10896 10897 10886 10887 10888 10889 10890 10891 16430 16431 16432 16433 16434 16435 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9470 9471 9472 9473 9474 9475 16424 16425 16426 16427 16428 16429 48 10886 10887 10888 10889 10890 10891 10952 10953 10954 10955 10956 10957 10946 10947 10948 10949 10950 10951 16436 16437 16438 16439 16440 16441 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9500 9501 9502 9503 9504 9505 16430 16431 16432 16433 16434 16435 48 10946 10947 10948 10949 10950 10951 10982 10983 10984 10985 10986 10987 10976 10977 10978 10979 10980 10981 16442 16443 16444 16445 16446 16447 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9530 9531 9532 9533 9534 9535 16436 16437 16438 16439 16440 16441 48 10976 10977 10978 10979 10980 10981 11012 11013 11014 11015 11016 11017 11006 11007 11008 11009 11010 11011 16448 16449 16450 16451 16452 16453 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9560 9561 9562 9563 9564 9565 16442 16443 16444 16445 16446 16447 48 11006 11007 11008 11009 11010 11011 11072 11073 11074 11075 11076 11077 11066 11067 11068 11069 11070 11071 16454 16455 16456 16457 16458 16459 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9590 9591 9592 9593 9594 9595 16448 16449 16450 16451 16452 16453 48 11066 11067 11068 11069 11070 11071 11102 11103 11104 11105 11106 11107 11096 11097 11098 11099 11100 11101 16460 16461 16462 16463 16464 16465 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9650 9651 9652 9653 9654 9655 16454 16455 16456 16457 16458 16459 48 11096 11097 11098 11099 11100 11101 11132 11133 11134 11135 11136 11137 11126 11127 11128 11129 11130 11131 16466 16467 16468 16469 16470 16471 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9680 9681 9682 9683 9684 9685 16460 16461 16462 16463 16464 16465 48 11126 11127 11128 11129 11130 11131 11192 11193 11194 11195 11196 11197 11186 11187 11188 11189 11190 11191 16472 16473 16474 16475 16476 16477 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9710 9711 9712 9713 9714 9715 16466 16467 16468 16469 16470 16471 48 11186 11187 11188 11189 11190 11191 11222 11223 11224 11225 11226 11227 11216 11217 11218 11219 11220 11221 16478 16479 16480 16481 16482 16483 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9740 9741 9742 9743 9744 9745 16472 16473 16474 16475 16476 16477 48 11216 11217 11218 11219 11220 11221 11252 11253 11254 11255 11256 11257 11246 11247 11248 11249 11250 11251 16484 16485 16486 16487 16488 16489 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9770 9771 9772 9773 9774 9775 16478 16479 16480 16481 16482 16483 48 11246 11247 11248 11249 11250 11251 11312 11313 11314 11315 11316 11317 11306 11307 11308 11309 11310 11311 16490 16491 16492 16493 16494 16495 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9800 9801 9802 9803 9804 9805 16484 16485 16486 16487 16488 16489 48 11306 11307 11308 11309 11310 11311 11342 11343 11344 11345 11346 11347 11336 11337 11338 11339 11340 11341 16496 16497 16498 16499 16500 16501 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9830 9831 9832 9833 9834 9835 16490 16491 16492 16493 16494 16495 48 11336 11337 11338 11339 11340 11341 11372 11373 11374 11375 11376 11377 11366 11367 11368 11369 11370 11371 16502 16503 16504 16505 16506 16507 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9860 9861 9862 9863 9864 9865 16496 16497 16498 16499 16500 16501 48 11366 11367 11368 11369 11370 11371 11432 11433 11434 11435 11436 11437 11426 11427 11428 11429 11430 11431 16508 16509 16510 16511 16512 16513 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9890 9891 9892 9893 9894 9895 16502 16503 16504 16505 16506 16507 48 11426 11427 11428 11429 11430 11431 11462 11463 11464 11465 11466 11467 11456 11457 11458 11459 11460 11461 16514 16515 16516 16517 16518 16519 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9920 9921 9922 9923 9924 9925 16508 16509 16510 16511 16512 16513 48 11456 11457 11458 11459 11460 11461 11492 11493 11494 11495 11496 11497 11486 11487 11488 11489 11490 11491 16520 16521 16522 16523 16524 16525 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9950 9951 9952 9953 9954 9955 16514 16515 16516 16517 16518 16519 48 11486 11487 11488 11489 11490 11491 11552 11553 11554 11555 11556 11557 11546 11547 11548 11549 11550 11551 16526 16527 16528 16529 16530 16531 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 9980 9981 9982 9983 9984 9985 16520 16521 16522 16523 16524 16525 48 11546 11547 11548 11549 11550 11551 11582 11583 11584 11585 11586 11587 11576 11577 11578 11579 11580 11581 16532 16533 16534 16535 16536 16537 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10010 10011 10012 10013 10014 10015 16526 16527 16528 16529 16530 16531 48 11576 11577 11578 11579 11580 11581 11612 11613 11614 11615 11616 11617 11606 11607 11608 11609 11610 11611 16538 16539 16540 16541 16542 16543 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10040 10041 10042 10043 10044 10045 16532 16533 16534 16535 16536 16537 48 11606 11607 11608 11609 11610 11611 11672 11673 11674 11675 11676 11677 11666 11667 11668 11669 11670 11671 16544 16545 16546 16547 16548 16549 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10070 10071 10072 10073 10074 10075 16538 16539 16540 16541 16542 16543 48 11666 11667 11668 11669 11670 11671 11702 11703 11704 11705 11706 11707 11696 11697 11698 11699 11700 11701 16550 16551 16552 16553 16554 16555 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10100 10101 10102 10103 10104 10105 16544 16545 16546 16547 16548 16549 48 11696 11697 11698 11699 11700 11701 11732 11733 11734 11735 11736 11737 11726 11727 11728 11729 11730 11731 16556 16557 16558 16559 16560 16561 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10130 10131 10132 10133 10134 10135 16550 16551 16552 16553 16554 16555 48 11726 11727 11728 11729 11730 11731 11792 11793 11794 11795 11796 11797 11786 11787 11788 11789 11790 11791 16562 16563 16564 16565 16566 16567 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10160 10161 10162 10163 10164 10165 16556 16557 16558 16559 16560 16561 48 11786 11787 11788 11789 11790 11791 11822 11823 11824 11825 11826 11827 11816 11817 11818 11819 11820 11821 16568 16569 16570 16571 16572 16573 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10190 10191 10192 10193 10194 10195 16562 16563 16564 16565 16566 16567 48 11816 11817 11818 11819 11820 11821 11852 11853 11854 11855 11856 11857 11846 11847 11848 11849 11850 11851 16574 16575 16576 16577 16578 16579 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10220 10221 10222 10223 10224 10225 16568 16569 16570 16571 16572 16573 48 11846 11847 11848 11849 11850 11851 11912 11913 11914 11915 11916 11917 11906 11907 11908 11909 11910 11911 16580 16581 16582 16583 16584 16585 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10250 10251 10252 10253 10254 10255 16574 16575 16576 16577 16578 16579 48 11906 11907 11908 11909 11910 11911 11942 11943 11944 11945 11946 11947 11936 11937 11938 11939 11940 11941 16586 16587 16588 16589 16590 16591 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10280 10281 10282 10283 10284 10285 16580 16581 16582 16583 16584 16585 48 11936 11937 11938 11939 11940 11941 11972 11973 11974 11975 11976 11977 11966 11967 11968 11969 11970 11971 16592 16593 16594 16595 16596 16597 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10310 10311 10312 10313 10314 10315 16586 16587 16588 16589 16590 16591 48 11966 11967 11968 11969 11970 11971 12032 12033 12034 12035 12036 12037 12026 12027 12028 12029 12030 12031 16598 16599 16600 16601 16602 16603 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10340 10341 10342 10343 10344 10345 16592 16593 16594 16595 16596 16597 48 12026 12027 12028 12029 12030 12031 12062 12063 12064 12065 12066 12067 12056 12057 12058 12059 12060 12061 16604 16605 16606 16607 16608 16609 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10370 10371 10372 10373 10374 10375 16598 16599 16600 16601 16602 16603 48 12056 12057 12058 12059 12060 12061 12092 12093 12094 12095 12096 12097 12086 12087 12088 12089 12090 12091 16610 16611 16612 16613 16614 16615 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10400 10401 10402 10403 10404 10405 16604 16605 16606 16607 16608 16609 48 12086 12087 12088 12089 12090 12091 12152 12153 12154 12155 12156 12157 12146 12147 12148 12149 12150 12151 16616 16617 16618 16619 16620 16621 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10430 10431 10432 10433 10434 10435 16610 16611 16612 16613 16614 16615 48 12146 12147 12148 12149 12150 12151 12182 12183 12184 12185 12186 12187 12176 12177 12178 12179 12180 12181 16622 16623 16624 16625 16626 16627 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10490 10491 10492 10493 10494 10495 16616 16617 16618 16619 16620 16621 48 12176 12177 12178 12179 12180 12181 15860 15861 15862 15863 15864 15865 2807 2808 2809 2810 2811 2812 3479 3480 3481 3482 3483 3484 2663 2664 2665 2666 2667 2668 10538 10539 10540 10541 10542 10543 10520 10521 10522 10523 10524 10525 16622 16623 16624 16625 16626 16627 48 4814 4815 4816 4817 4818 4819 9170 9171 9172 9173 9174 9175 9164 9165 9166 9167 9168 9169 16628 16629 16630 16631 16632 16633 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 4586 4587 4588 4589 4590 4591 5420 5421 5422 5423 5424 5425 48 9164 9165 9166 9167 9168 9169 9200 9201 9202 9203 9204 9205 9194 9195 9196 9197 9198 9199 16634 16635 16636 16637 16638 16639 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7496 7497 7498 7499 7500 7501 16628 16629 16630 16631 16632 16633 48 9194 9195 9196 9197 9198 9199 9260 9261 9262 9263 9264 9265 9254 9255 9256 9257 9258 9259 16640 16641 16642 16643 16644 16645 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7526 7527 7528 7529 7530 7531 16634 16635 16636 16637 16638 16639 48 9254 9255 9256 9257 9258 9259 9278 9279 9280 9281 9282 9283 9272 9273 9274 9275 9276 9277 16646 16647 16648 16649 16650 16651 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7586 7587 7588 7589 7590 7591 16640 16641 16642 16643 16644 16645 48 9272 9273 9274 9275 9276 9277 9320 9321 9322 9323 9324 9325 9314 9315 9316 9317 9318 9319 16652 16653 16654 16655 16656 16657 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7604 7605 7606 7607 7608 7609 16646 16647 16648 16649 16650 16651 48 9314 9315 9316 9317 9318 9319 9350 9351 9352 9353 9354 9355 9344 9345 9346 9347 9348 9349 16658 16659 16660 16661 16662 16663 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7646 7647 7648 7649 7650 7651 16652 16653 16654 16655 16656 16657 48 9344 9345 9346 9347 9348 9349 9386 9387 9388 9389 9390 9391 9380 9381 9382 9383 9384 9385 16664 16665 16666 16667 16668 16669 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7676 7677 7678 7679 7680 7681 16658 16659 16660 16661 16662 16663 48 9380 9381 9382 9383 9384 9385 9446 9447 9448 9449 9450 9451 9440 9441 9442 9443 9444 9445 16670 16671 16672 16673 16674 16675 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7712 7713 7714 7715 7716 7717 16664 16665 16666 16667 16668 16669 48 9440 9441 9442 9443 9444 9445 9476 9477 9478 9479 9480 9481 9470 9471 9472 9473 9474 9475 16676 16677 16678 16679 16680 16681 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7772 7773 7774 7775 7776 7777 16670 16671 16672 16673 16674 16675 48 9470 9471 9472 9473 9474 9475 9506 9507 9508 9509 9510 9511 9500 9501 9502 9503 9504 9505 16682 16683 16684 16685 16686 16687 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7802 7803 7804 7805 7806 7807 16676 16677 16678 16679 16680 16681 48 9500 9501 9502 9503 9504 9505 9536 9537 9538 9539 9540 9541 9530 9531 9532 9533 9534 9535 16688 16689 16690 16691 16692 16693 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7832 7833 7834 7835 7836 7837 16682 16683 16684 16685 16686 16687 48 9530 9531 9532 9533 9534 9535 9566 9567 9568 9569 9570 9571 9560 9561 9562 9563 9564 9565 16694 16695 16696 16697 16698 16699 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7892 7893 7894 7895 7896 7897 16688 16689 16690 16691 16692 16693 48 9560 9561 9562 9563 9564 9565 9596 9597 9598 9599 9600 9601 9590 9591 9592 9593 9594 9595 16700 16701 16702 16703 16704 16705 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7922 7923 7924 7925 7926 7927 16694 16695 16696 16697 16698 16699 48 9590 9591 9592 9593 9594 9595 9656 9657 9658 9659 9660 9661 9650 9651 9652 9653 9654 9655 16706 16707 16708 16709 16710 16711 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 7952 7953 7954 7955 7956 7957 16700 16701 16702 16703 16704 16705 48 9650 9651 9652 9653 9654 9655 9686 9687 9688 9689 9690 9691 9680 9681 9682 9683 9684 9685 16712 16713 16714 16715 16716 16717 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8012 8013 8014 8015 8016 8017 16706 16707 16708 16709 16710 16711 48 9680 9681 9682 9683 9684 9685 9716 9717 9718 9719 9720 9721 9710 9711 9712 9713 9714 9715 16718 16719 16720 16721 16722 16723 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8042 8043 8044 8045 8046 8047 16712 16713 16714 16715 16716 16717 48 9710 9711 9712 9713 9714 9715 9746 9747 9748 9749 9750 9751 9740 9741 9742 9743 9744 9745 16724 16725 16726 16727 16728 16729 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8072 8073 8074 8075 8076 8077 16718 16719 16720 16721 16722 16723 48 9740 9741 9742 9743 9744 9745 9776 9777 9778 9779 9780 9781 9770 9771 9772 9773 9774 9775 16730 16731 16732 16733 16734 16735 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8132 8133 8134 8135 8136 8137 16724 16725 16726 16727 16728 16729 48 9770 9771 9772 9773 9774 9775 9806 9807 9808 9809 9810 9811 9800 9801 9802 9803 9804 9805 16736 16737 16738 16739 16740 16741 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8162 8163 8164 8165 8166 8167 16730 16731 16732 16733 16734 16735 48 9800 9801 9802 9803 9804 9805 9836 9837 9838 9839 9840 9841 9830 9831 9832 9833 9834 9835 16742 16743 16744 16745 16746 16747 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8192 8193 8194 8195 8196 8197 16736 16737 16738 16739 16740 16741 48 9830 9831 9832 9833 9834 9835 9866 9867 9868 9869 9870 9871 9860 9861 9862 9863 9864 9865 16748 16749 16750 16751 16752 16753 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8252 8253 8254 8255 8256 8257 16742 16743 16744 16745 16746 16747 48 9860 9861 9862 9863 9864 9865 9896 9897 9898 9899 9900 9901 9890 9891 9892 9893 9894 9895 16754 16755 16756 16757 16758 16759 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8282 8283 8284 8285 8286 8287 16748 16749 16750 16751 16752 16753 48 9890 9891 9892 9893 9894 9895 9926 9927 9928 9929 9930 9931 9920 9921 9922 9923 9924 9925 16760 16761 16762 16763 16764 16765 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8312 8313 8314 8315 8316 8317 16754 16755 16756 16757 16758 16759 48 9920 9921 9922 9923 9924 9925 9956 9957 9958 9959 9960 9961 9950 9951 9952 9953 9954 9955 16766 16767 16768 16769 16770 16771 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8372 8373 8374 8375 8376 8377 16760 16761 16762 16763 16764 16765 48 9950 9951 9952 9953 9954 9955 9986 9987 9988 9989 9990 9991 9980 9981 9982 9983 9984 9985 16772 16773 16774 16775 16776 16777 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8402 8403 8404 8405 8406 8407 16766 16767 16768 16769 16770 16771 48 9980 9981 9982 9983 9984 9985 10016 10017 10018 10019 10020 10021 10010 10011 10012 10013 10014 10015 16778 16779 16780 16781 16782 16783 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8432 8433 8434 8435 8436 8437 16772 16773 16774 16775 16776 16777 48 10010 10011 10012 10013 10014 10015 10046 10047 10048 10049 10050 10051 10040 10041 10042 10043 10044 10045 16784 16785 16786 16787 16788 16789 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8492 8493 8494 8495 8496 8497 16778 16779 16780 16781 16782 16783 48 10040 10041 10042 10043 10044 10045 10076 10077 10078 10079 10080 10081 10070 10071 10072 10073 10074 10075 16790 16791 16792 16793 16794 16795 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8522 8523 8524 8525 8526 8527 16784 16785 16786 16787 16788 16789 48 10070 10071 10072 10073 10074 10075 10106 10107 10108 10109 10110 10111 10100 10101 10102 10103 10104 10105 16796 16797 16798 16799 16800 16801 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8552 8553 8554 8555 8556 8557 16790 16791 16792 16793 16794 16795 48 10100 10101 10102 10103 10104 10105 10136 10137 10138 10139 10140 10141 10130 10131 10132 10133 10134 10135 16802 16803 16804 16805 16806 16807 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8612 8613 8614 8615 8616 8617 16796 16797 16798 16799 16800 16801 48 10130 10131 10132 10133 10134 10135 10166 10167 10168 10169 10170 10171 10160 10161 10162 10163 10164 10165 16808 16809 16810 16811 16812 16813 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8642 8643 8644 8645 8646 8647 16802 16803 16804 16805 16806 16807 48 10160 10161 10162 10163 10164 10165 10196 10197 10198 10199 10200 10201 10190 10191 10192 10193 10194 10195 16814 16815 16816 16817 16818 16819 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8672 8673 8674 8675 8676 8677 16808 16809 16810 16811 16812 16813 48 10190 10191 10192 10193 10194 10195 10226 10227 10228 10229 10230 10231 10220 10221 10222 10223 10224 10225 16820 16821 16822 16823 16824 16825 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8732 8733 8734 8735 8736 8737 16814 16815 16816 16817 16818 16819 48 10220 10221 10222 10223 10224 10225 10256 10257 10258 10259 10260 10261 10250 10251 10252 10253 10254 10255 16826 16827 16828 16829 16830 16831 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8762 8763 8764 8765 8766 8767 16820 16821 16822 16823 16824 16825 48 10250 10251 10252 10253 10254 10255 10286 10287 10288 10289 10290 10291 10280 10281 10282 10283 10284 10285 16832 16833 16834 16835 16836 16837 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8792 8793 8794 8795 8796 8797 16826 16827 16828 16829 16830 16831 48 10280 10281 10282 10283 10284 10285 10316 10317 10318 10319 10320 10321 10310 10311 10312 10313 10314 10315 16838 16839 16840 16841 16842 16843 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8852 8853 8854 8855 8856 8857 16832 16833 16834 16835 16836 16837 48 10310 10311 10312 10313 10314 10315 10346 10347 10348 10349 10350 10351 10340 10341 10342 10343 10344 10345 16844 16845 16846 16847 16848 16849 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8882 8883 8884 8885 8886 8887 16838 16839 16840 16841 16842 16843 48 10340 10341 10342 10343 10344 10345 10376 10377 10378 10379 10380 10381 10370 10371 10372 10373 10374 10375 16850 16851 16852 16853 16854 16855 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8912 8913 8914 8915 8916 8917 16844 16845 16846 16847 16848 16849 48 10370 10371 10372 10373 10374 10375 10406 10407 10408 10409 10410 10411 10400 10401 10402 10403 10404 10405 16856 16857 16858 16859 16860 16861 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 8972 8973 8974 8975 8976 8977 16850 16851 16852 16853 16854 16855 48 10400 10401 10402 10403 10404 10405 10436 10437 10438 10439 10440 10441 10430 10431 10432 10433 10434 10435 16862 16863 16864 16865 16866 16867 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9002 9003 9004 9005 9006 9007 16856 16857 16858 16859 16860 16861 48 10430 10431 10432 10433 10434 10435 10496 10497 10498 10499 10500 10501 10490 10491 10492 10493 10494 10495 16868 16869 16870 16871 16872 16873 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9032 9033 9034 9035 9036 9037 16862 16863 16864 16865 16866 16867 48 10490 10491 10492 10493 10494 10495 10526 10527 10528 10529 10530 10531 10520 10521 10522 10523 10524 10525 16874 16875 16876 16877 16878 16879 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9092 9093 9094 9095 9096 9097 16868 16869 16870 16871 16872 16873 48 10520 10521 10522 10523 10524 10525 10538 10539 10540 10541 10542 10543 2663 2664 2665 2666 2667 2668 3521 3522 3523 3524 3525 3526 2387 2388 2389 2390 2391 2392 9140 9141 9142 9143 9144 9145 9122 9123 9124 9125 9126 9127 16874 16875 16876 16877 16878 16879 48 4586 4587 4588 4589 4590 4591 7502 7503 7504 7505 7506 7507 7496 7497 7498 7499 7500 7501 16880 16881 16882 16883 16884 16885 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 4322 4323 4324 4325 4326 4327 5462 5463 5464 5465 5466 5467 48 7496 7497 7498 7499 7500 7501 7532 7533 7534 7535 7536 7537 7526 7527 7528 7529 7530 7531 16886 16887 16888 16889 16890 16891 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5828 5829 5830 5831 5832 5833 16880 16881 16882 16883 16884 16885 48 7526 7527 7528 7529 7530 7531 7592 7593 7594 7595 7596 7597 7586 7587 7588 7589 7590 7591 16892 16893 16894 16895 16896 16897 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5858 5859 5860 5861 5862 5863 16886 16887 16888 16889 16890 16891 48 7586 7587 7588 7589 7590 7591 7610 7611 7612 7613 7614 7615 7604 7605 7606 7607 7608 7609 16898 16899 16900 16901 16902 16903 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5918 5919 5920 5921 5922 5923 16892 16893 16894 16895 16896 16897 48 7604 7605 7606 7607 7608 7609 7652 7653 7654 7655 7656 7657 7646 7647 7648 7649 7650 7651 16904 16905 16906 16907 16908 16909 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5936 5937 5938 5939 5940 5941 16898 16899 16900 16901 16902 16903 48 7646 7647 7648 7649 7650 7651 7682 7683 7684 7685 7686 7687 7676 7677 7678 7679 7680 7681 16910 16911 16912 16913 16914 16915 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 5978 5979 5980 5981 5982 5983 16904 16905 16906 16907 16908 16909 48 7676 7677 7678 7679 7680 7681 7718 7719 7720 7721 7722 7723 7712 7713 7714 7715 7716 7717 16916 16917 16918 16919 16920 16921 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6008 6009 6010 6011 6012 6013 16910 16911 16912 16913 16914 16915 48 7712 7713 7714 7715 7716 7717 7778 7779 7780 7781 7782 7783 7772 7773 7774 7775 7776 7777 16922 16923 16924 16925 16926 16927 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6044 6045 6046 6047 6048 6049 16916 16917 16918 16919 16920 16921 48 7772 7773 7774 7775 7776 7777 7808 7809 7810 7811 7812 7813 7802 7803 7804 7805 7806 7807 16928 16929 16930 16931 16932 16933 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6104 6105 6106 6107 6108 6109 16922 16923 16924 16925 16926 16927 48 7802 7803 7804 7805 7806 7807 7838 7839 7840 7841 7842 7843 7832 7833 7834 7835 7836 7837 16934 16935 16936 16937 16938 16939 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6134 6135 6136 6137 6138 6139 16928 16929 16930 16931 16932 16933 48 7832 7833 7834 7835 7836 7837 7898 7899 7900 7901 7902 7903 7892 7893 7894 7895 7896 7897 16940 16941 16942 16943 16944 16945 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6164 6165 6166 6167 6168 6169 16934 16935 16936 16937 16938 16939 48 7892 7893 7894 7895 7896 7897 7928 7929 7930 7931 7932 7933 7922 7923 7924 7925 7926 7927 16946 16947 16948 16949 16950 16951 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6224 6225 6226 6227 6228 6229 16940 16941 16942 16943 16944 16945 48 7922 7923 7924 7925 7926 7927 7958 7959 7960 7961 7962 7963 7952 7953 7954 7955 7956 7957 16952 16953 16954 16955 16956 16957 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6254 6255 6256 6257 6258 6259 16946 16947 16948 16949 16950 16951 48 7952 7953 7954 7955 7956 7957 8018 8019 8020 8021 8022 8023 8012 8013 8014 8015 8016 8017 16958 16959 16960 16961 16962 16963 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6284 6285 6286 6287 6288 6289 16952 16953 16954 16955 16956 16957 48 8012 8013 8014 8015 8016 8017 8048 8049 8050 8051 8052 8053 8042 8043 8044 8045 8046 8047 16964 16965 16966 16967 16968 16969 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6344 6345 6346 6347 6348 6349 16958 16959 16960 16961 16962 16963 48 8042 8043 8044 8045 8046 8047 8078 8079 8080 8081 8082 8083 8072 8073 8074 8075 8076 8077 16970 16971 16972 16973 16974 16975 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6374 6375 6376 6377 6378 6379 16964 16965 16966 16967 16968 16969 48 8072 8073 8074 8075 8076 8077 8138 8139 8140 8141 8142 8143 8132 8133 8134 8135 8136 8137 16976 16977 16978 16979 16980 16981 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6404 6405 6406 6407 6408 6409 16970 16971 16972 16973 16974 16975 48 8132 8133 8134 8135 8136 8137 8168 8169 8170 8171 8172 8173 8162 8163 8164 8165 8166 8167 16982 16983 16984 16985 16986 16987 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6464 6465 6466 6467 6468 6469 16976 16977 16978 16979 16980 16981 48 8162 8163 8164 8165 8166 8167 8198 8199 8200 8201 8202 8203 8192 8193 8194 8195 8196 8197 16988 16989 16990 16991 16992 16993 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6494 6495 6496 6497 6498 6499 16982 16983 16984 16985 16986 16987 48 8192 8193 8194 8195 8196 8197 8258 8259 8260 8261 8262 8263 8252 8253 8254 8255 8256 8257 16994 16995 16996 16997 16998 16999 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6524 6525 6526 6527 6528 6529 16988 16989 16990 16991 16992 16993 48 8252 8253 8254 8255 8256 8257 8288 8289 8290 8291 8292 8293 8282 8283 8284 8285 8286 8287 17000 17001 17002 17003 17004 17005 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6584 6585 6586 6587 6588 6589 16994 16995 16996 16997 16998 16999 48 8282 8283 8284 8285 8286 8287 8318 8319 8320 8321 8322 8323 8312 8313 8314 8315 8316 8317 17006 17007 17008 17009 17010 17011 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6614 6615 6616 6617 6618 6619 17000 17001 17002 17003 17004 17005 48 8312 8313 8314 8315 8316 8317 8378 8379 8380 8381 8382 8383 8372 8373 8374 8375 8376 8377 17012 17013 17014 17015 17016 17017 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6644 6645 6646 6647 6648 6649 17006 17007 17008 17009 17010 17011 48 8372 8373 8374 8375 8376 8377 8408 8409 8410 8411 8412 8413 8402 8403 8404 8405 8406 8407 17018 17019 17020 17021 17022 17023 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6704 6705 6706 6707 6708 6709 17012 17013 17014 17015 17016 17017 48 8402 8403 8404 8405 8406 8407 8438 8439 8440 8441 8442 8443 8432 8433 8434 8435 8436 8437 17024 17025 17026 17027 17028 17029 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6734 6735 6736 6737 6738 6739 17018 17019 17020 17021 17022 17023 48 8432 8433 8434 8435 8436 8437 8498 8499 8500 8501 8502 8503 8492 8493 8494 8495 8496 8497 17030 17031 17032 17033 17034 17035 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6764 6765 6766 6767 6768 6769 17024 17025 17026 17027 17028 17029 48 8492 8493 8494 8495 8496 8497 8528 8529 8530 8531 8532 8533 8522 8523 8524 8525 8526 8527 17036 17037 17038 17039 17040 17041 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6824 6825 6826 6827 6828 6829 17030 17031 17032 17033 17034 17035 48 8522 8523 8524 8525 8526 8527 8558 8559 8560 8561 8562 8563 8552 8553 8554 8555 8556 8557 17042 17043 17044 17045 17046 17047 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6854 6855 6856 6857 6858 6859 17036 17037 17038 17039 17040 17041 48 8552 8553 8554 8555 8556 8557 8618 8619 8620 8621 8622 8623 8612 8613 8614 8615 8616 8617 17048 17049 17050 17051 17052 17053 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6884 6885 6886 6887 6888 6889 17042 17043 17044 17045 17046 17047 48 8612 8613 8614 8615 8616 8617 8648 8649 8650 8651 8652 8653 8642 8643 8644 8645 8646 8647 17054 17055 17056 17057 17058 17059 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6944 6945 6946 6947 6948 6949 17048 17049 17050 17051 17052 17053 48 8642 8643 8644 8645 8646 8647 8678 8679 8680 8681 8682 8683 8672 8673 8674 8675 8676 8677 17060 17061 17062 17063 17064 17065 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 6974 6975 6976 6977 6978 6979 17054 17055 17056 17057 17058 17059 48 8672 8673 8674 8675 8676 8677 8738 8739 8740 8741 8742 8743 8732 8733 8734 8735 8736 8737 17066 17067 17068 17069 17070 17071 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7004 7005 7006 7007 7008 7009 17060 17061 17062 17063 17064 17065 48 8732 8733 8734 8735 8736 8737 8768 8769 8770 8771 8772 8773 8762 8763 8764 8765 8766 8767 17072 17073 17074 17075 17076 17077 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7064 7065 7066 7067 7068 7069 17066 17067 17068 17069 17070 17071 48 8762 8763 8764 8765 8766 8767 8798 8799 8800 8801 8802 8803 8792 8793 8794 8795 8796 8797 17078 17079 17080 17081 17082 17083 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7094 7095 7096 7097 7098 7099 17072 17073 17074 17075 17076 17077 48 8792 8793 8794 8795 8796 8797 8858 8859 8860 8861 8862 8863 8852 8853 8854 8855 8856 8857 17084 17085 17086 17087 17088 17089 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7124 7125 7126 7127 7128 7129 17078 17079 17080 17081 17082 17083 48 8852 8853 8854 8855 8856 8857 8888 8889 8890 8891 8892 8893 8882 8883 8884 8885 8886 8887 17090 17091 17092 17093 17094 17095 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7184 7185 7186 7187 7188 7189 17084 17085 17086 17087 17088 17089 48 8882 8883 8884 8885 8886 8887 8918 8919 8920 8921 8922 8923 8912 8913 8914 8915 8916 8917 17096 17097 17098 17099 17100 17101 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7214 7215 7216 7217 7218 7219 17090 17091 17092 17093 17094 17095 48 8912 8913 8914 8915 8916 8917 8978 8979 8980 8981 8982 8983 8972 8973 8974 8975 8976 8977 17102 17103 17104 17105 17106 17107 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7244 7245 7246 7247 7248 7249 17096 17097 17098 17099 17100 17101 48 8972 8973 8974 8975 8976 8977 9008 9009 9010 9011 9012 9013 9002 9003 9004 9005 9006 9007 17108 17109 17110 17111 17112 17113 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7304 7305 7306 7307 7308 7309 17102 17103 17104 17105 17106 17107 48 9002 9003 9004 9005 9006 9007 9038 9039 9040 9041 9042 9043 9032 9033 9034 9035 9036 9037 17114 17115 17116 17117 17118 17119 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7334 7335 7336 7337 7338 7339 17108 17109 17110 17111 17112 17113 48 9032 9033 9034 9035 9036 9037 9098 9099 9100 9101 9102 9103 9092 9093 9094 9095 9096 9097 17120 17121 17122 17123 17124 17125 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7364 7365 7366 7367 7368 7369 17114 17115 17116 17117 17118 17119 48 9092 9093 9094 9095 9096 9097 9128 9129 9130 9131 9132 9133 9122 9123 9124 9125 9126 9127 17126 17127 17128 17129 17130 17131 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7424 7425 7426 7427 7428 7429 17120 17121 17122 17123 17124 17125 48 9122 9123 9124 9125 9126 9127 9140 9141 9142 9143 9144 9145 2387 2388 2389 2390 2391 2392 3563 3564 3565 3566 3567 3568 2113 2114 2115 2116 2117 2118 7472 7473 7474 7475 7476 7477 7454 7455 7456 7457 7458 7459 17126 17127 17128 17129 17130 17131 36 1807 1808 1809 1810 1811 1812 2113 2114 2115 2116 2117 2118 7454 7455 7456 7457 7458 7459 3605 3606 3607 3608 3609 3610 7472 7473 7474 7475 7476 7477 17132 17133 17134 17135 17136 17137 48 5192 5193 5194 5195 5196 5197 14174 14175 14176 14177 14178 14179 14168 14169 14170 14171 14172 14173 17138 17139 17140 17141 17142 17143 12212 12213 12214 12215 12216 12217 15812 15813 15814 15815 15816 15817 5060 5061 5062 5063 5064 5065 5288 5289 5290 5291 5292 5293 48 14168 14169 14170 14171 14172 14173 14204 14205 14206 14207 14208 14209 14198 14199 14200 14201 14202 14203 17144 17145 17146 17147 17148 17149 637 638 639 640 641 642 12218 12219 12220 12221 12222 12223 12212 12213 12214 12215 12216 12217 17138 17139 17140 17141 17142 17143 48 14198 14199 14200 14201 14202 14203 14234 14235 14236 14237 14238 14239 14228 14229 14230 14231 14232 14233 17150 17151 17152 17153 17154 17155 649 650 651 652 653 654 12278 12279 12280 12281 12282 12283 637 638 639 640 641 642 17144 17145 17146 17147 17148 17149 48 14228 14229 14230 14231 14232 14233 14264 14265 14266 14267 14268 14269 14258 14259 14260 14261 14262 14263 17156 17157 17158 17159 17160 17161 661 662 663 664 665 666 12320 12321 12322 12323 12324 12325 649 650 651 652 653 654 17150 17151 17152 17153 17154 17155 48 14258 14259 14260 14261 14262 14263 14294 14295 14296 14297 14298 14299 14288 14289 14290 14291 14292 14293 17162 17163 17164 17165 17166 17167 673 674 675 676 677 678 12362 12363 12364 12365 12366 12367 661 662 663 664 665 666 17156 17157 17158 17159 17160 17161 48 14288 14289 14290 14291 14292 14293 14324 14325 14326 14327 14328 14329 14318 14319 14320 14321 14322 14323 17168 17169 17170 17171 17172 17173 685 686 687 688 689 690 12404 12405 12406 12407 12408 12409 673 674 675 676 677 678 17162 17163 17164 17165 17166 17167 48 14318 14319 14320 14321 14322 14323 14354 14355 14356 14357 14358 14359 14348 14349 14350 14351 14352 14353 17174 17175 17176 17177 17178 17179 697 698 699 700 701 702 12446 12447 12448 12449 12450 12451 685 686 687 688 689 690 17168 17169 17170 17171 17172 17173 48 14348 14349 14350 14351 14352 14353 14384 14385 14386 14387 14388 14389 14378 14379 14380 14381 14382 14383 17180 17181 17182 17183 17184 17185 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 697 698 699 700 701 702 17174 17175 17176 17177 17178 17179 48 14378 14379 14380 14381 14382 14383 14414 14415 14416 14417 14418 14419 14408 14409 14410 14411 14412 14413 17186 17187 17188 17189 17190 17191 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12488 12489 12490 12491 12492 12493 17180 17181 17182 17183 17184 17185 48 14408 14409 14410 14411 14412 14413 14444 14445 14446 14447 14448 14449 14438 14439 14440 14441 14442 14443 17192 17193 17194 17195 17196 17197 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12536 12537 12538 12539 12540 12541 17186 17187 17188 17189 17190 17191 48 14438 14439 14440 14441 14442 14443 14474 14475 14476 14477 14478 14479 14468 14469 14470 14471 14472 14473 17198 17199 17200 17201 17202 17203 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12584 12585 12586 12587 12588 12589 17192 17193 17194 17195 17196 17197 48 14468 14469 14470 14471 14472 14473 14504 14505 14506 14507 14508 14509 14498 14499 14500 14501 14502 14503 17204 17205 17206 17207 17208 17209 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12632 12633 12634 12635 12636 12637 17198 17199 17200 17201 17202 17203 48 14498 14499 14500 14501 14502 14503 14534 14535 14536 14537 14538 14539 14528 14529 14530 14531 14532 14533 17210 17211 17212 17213 17214 17215 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12680 12681 12682 12683 12684 12685 17204 17205 17206 17207 17208 17209 48 14528 14529 14530 14531 14532 14533 14564 14565 14566 14567 14568 14569 14558 14559 14560 14561 14562 14563 17216 17217 17218 17219 17220 17221 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12728 12729 12730 12731 12732 12733 17210 17211 17212 17213 17214 17215 48 14558 14559 14560 14561 14562 14563 14594 14595 14596 14597 14598 14599 14588 14589 14590 14591 14592 14593 17222 17223 17224 17225 17226 17227 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12776 12777 12778 12779 12780 12781 17216 17217 17218 17219 17220 17221 48 14588 14589 14590 14591 14592 14593 14624 14625 14626 14627 14628 14629 14618 14619 14620 14621 14622 14623 17228 17229 17230 17231 17232 17233 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12824 12825 12826 12827 12828 12829 17222 17223 17224 17225 17226 17227 48 14618 14619 14620 14621 14622 14623 14654 14655 14656 14657 14658 14659 14648 14649 14650 14651 14652 14653 17234 17235 17236 17237 17238 17239 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12872 12873 12874 12875 12876 12877 17228 17229 17230 17231 17232 17233 48 14648 14649 14650 14651 14652 14653 14684 14685 14686 14687 14688 14689 14678 14679 14680 14681 14682 14683 17240 17241 17242 17243 17244 17245 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12920 12921 12922 12923 12924 12925 17234 17235 17236 17237 17238 17239 48 14678 14679 14680 14681 14682 14683 14714 14715 14716 14717 14718 14719 14708 14709 14710 14711 14712 14713 17246 17247 17248 17249 17250 17251 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 12968 12969 12970 12971 12972 12973 17240 17241 17242 17243 17244 17245 48 14708 14709 14710 14711 14712 14713 14744 14745 14746 14747 14748 14749 14738 14739 14740 14741 14742 14743 17252 17253 17254 17255 17256 17257 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13016 13017 13018 13019 13020 13021 17246 17247 17248 17249 17250 17251 48 14738 14739 14740 14741 14742 14743 14774 14775 14776 14777 14778 14779 14768 14769 14770 14771 14772 14773 17258 17259 17260 17261 17262 17263 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13064 13065 13066 13067 13068 13069 17252 17253 17254 17255 17256 17257 48 14768 14769 14770 14771 14772 14773 14804 14805 14806 14807 14808 14809 14798 14799 14800 14801 14802 14803 17264 17265 17266 17267 17268 17269 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13112 13113 13114 13115 13116 13117 17258 17259 17260 17261 17262 17263 48 14798 14799 14800 14801 14802 14803 14834 14835 14836 14837 14838 14839 14828 14829 14830 14831 14832 14833 17270 17271 17272 17273 17274 17275 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13160 13161 13162 13163 13164 13165 17264 17265 17266 17267 17268 17269 48 14828 14829 14830 14831 14832 14833 14864 14865 14866 14867 14868 14869 14858 14859 14860 14861 14862 14863 17276 17277 17278 17279 17280 17281 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13208 13209 13210 13211 13212 13213 17270 17271 17272 17273 17274 17275 48 14858 14859 14860 14861 14862 14863 14894 14895 14896 14897 14898 14899 14888 14889 14890 14891 14892 14893 17282 17283 17284 17285 17286 17287 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13256 13257 13258 13259 13260 13261 17276 17277 17278 17279 17280 17281 48 14888 14889 14890 14891 14892 14893 14924 14925 14926 14927 14928 14929 14918 14919 14920 14921 14922 14923 17288 17289 17290 17291 17292 17293 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13304 13305 13306 13307 13308 13309 17282 17283 17284 17285 17286 17287 48 14918 14919 14920 14921 14922 14923 14954 14955 14956 14957 14958 14959 14948 14949 14950 14951 14952 14953 17294 17295 17296 17297 17298 17299 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13352 13353 13354 13355 13356 13357 17288 17289 17290 17291 17292 17293 48 14948 14949 14950 14951 14952 14953 14984 14985 14986 14987 14988 14989 14978 14979 14980 14981 14982 14983 17300 17301 17302 17303 17304 17305 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13400 13401 13402 13403 13404 13405 17294 17295 17296 17297 17298 17299 48 14978 14979 14980 14981 14982 14983 15014 15015 15016 15017 15018 15019 15008 15009 15010 15011 15012 15013 17306 17307 17308 17309 17310 17311 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13448 13449 13450 13451 13452 13453 17300 17301 17302 17303 17304 17305 48 15008 15009 15010 15011 15012 15013 15044 15045 15046 15047 15048 15049 15038 15039 15040 15041 15042 15043 17312 17313 17314 17315 17316 17317 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13496 13497 13498 13499 13500 13501 17306 17307 17308 17309 17310 17311 48 15038 15039 15040 15041 15042 15043 15074 15075 15076 15077 15078 15079 15068 15069 15070 15071 15072 15073 17318 17319 17320 17321 17322 17323 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13544 13545 13546 13547 13548 13549 17312 17313 17314 17315 17316 17317 48 15068 15069 15070 15071 15072 15073 15104 15105 15106 15107 15108 15109 15098 15099 15100 15101 15102 15103 17324 17325 17326 17327 17328 17329 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13592 13593 13594 13595 13596 13597 17318 17319 17320 17321 17322 17323 48 15098 15099 15100 15101 15102 15103 15134 15135 15136 15137 15138 15139 15128 15129 15130 15131 15132 15133 17330 17331 17332 17333 17334 17335 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13640 13641 13642 13643 13644 13645 17324 17325 17326 17327 17328 17329 48 15128 15129 15130 15131 15132 15133 15164 15165 15166 15167 15168 15169 15158 15159 15160 15161 15162 15163 17336 17337 17338 17339 17340 17341 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13688 13689 13690 13691 13692 13693 17330 17331 17332 17333 17334 17335 48 15158 15159 15160 15161 15162 15163 15194 15195 15196 15197 15198 15199 15188 15189 15190 15191 15192 15193 17342 17343 17344 17345 17346 17347 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13736 13737 13738 13739 13740 13741 17336 17337 17338 17339 17340 17341 48 15188 15189 15190 15191 15192 15193 15224 15225 15226 15227 15228 15229 15218 15219 15220 15221 15222 15223 17348 17349 17350 17351 17352 17353 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13784 13785 13786 13787 13788 13789 17342 17343 17344 17345 17346 17347 48 15218 15219 15220 15221 15222 15223 15254 15255 15256 15257 15258 15259 15248 15249 15250 15251 15252 15253 17354 17355 17356 17357 17358 17359 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13832 13833 13834 13835 13836 13837 17348 17349 17350 17351 17352 17353 48 15248 15249 15250 15251 15252 15253 15284 15285 15286 15287 15288 15289 15278 15279 15280 15281 15282 15283 17360 17361 17362 17363 17364 17365 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13880 13881 13882 13883 13884 13885 17354 17355 17356 17357 17358 17359 48 15278 15279 15280 15281 15282 15283 15314 15315 15316 15317 15318 15319 15308 15309 15310 15311 15312 15313 17366 17367 17368 17369 17370 17371 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13928 13929 13930 13931 13932 13933 17360 17361 17362 17363 17364 17365 48 15308 15309 15310 15311 15312 15313 15344 15345 15346 15347 15348 15349 15338 15339 15340 15341 15342 15343 17372 17373 17374 17375 17376 17377 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 13976 13977 13978 13979 13980 13981 17366 17367 17368 17369 17370 17371 48 15338 15339 15340 15341 15342 15343 15374 15375 15376 15377 15378 15379 15368 15369 15370 15371 15372 15373 17378 17379 17380 17381 17382 17383 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14024 14025 14026 14027 14028 14029 17372 17373 17374 17375 17376 17377 48 15368 15369 15370 15371 15372 15373 15404 15405 15406 15407 15408 15409 15398 15399 15400 15401 15402 15403 17384 17385 17386 17387 17388 17389 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14072 14073 14074 14075 14076 14077 17378 17379 17380 17381 17382 17383 48 15398 15399 15400 15401 15402 15403 15416 15417 15418 15419 15420 15421 3233 3234 3235 3236 3237 3238 3359 3360 3361 3362 3363 3364 3047 3048 3049 3050 3051 3052 15842 15843 15844 15845 15846 15847 14120 14121 14122 14123 14124 14125 17384 17385 17386 17387 17388 17389 48 5060 5061 5062 5063 5064 5065 15812 15813 15814 15815 15816 15817 12212 12213 12214 12215 12216 12217 17390 17391 17392 17393 17394 17395 10544 10545 10546 10547 10548 10549 15836 15837 15838 15839 15840 15841 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 48 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 637 638 639 640 641 642 17396 17397 17398 17399 17400 17401 10556 10557 10558 10559 10560 10561 10550 10551 10552 10553 10554 10555 10544 10545 10546 10547 10548 10549 17390 17391 17392 17393 17394 17395 48 637 638 639 640 641 642 12278 12279 12280 12281 12282 12283 649 650 651 652 653 654 17402 17403 17404 17405 17406 17407 10592 10593 10594 10595 10596 10597 10628 10629 10630 10631 10632 10633 10556 10557 10558 10559 10560 10561 17396 17397 17398 17399 17400 17401 48 649 650 651 652 653 654 12320 12321 12322 12323 12324 12325 661 662 663 664 665 666 17408 17409 17410 17411 17412 17413 10604 10605 10606 10607 10608 10609 10598 10599 10600 10601 10602 10603 10592 10593 10594 10595 10596 10597 17402 17403 17404 17405 17406 17407 48 661 662 663 664 665 666 12362 12363 12364 12365 12366 12367 673 674 675 676 677 678 17414 17415 17416 17417 17418 17419 10688 10689 10690 10691 10692 10693 10682 10683 10684 10685 10686 10687 10604 10605 10606 10607 10608 10609 17408 17409 17410 17411 17412 17413 48 673 674 675 676 677 678 12404 12405 12406 12407 12408 12409 685 686 687 688 689 690 17420 17421 17422 17423 17424 17425 10718 10719 10720 10721 10722 10723 10712 10713 10714 10715 10716 10717 10688 10689 10690 10691 10692 10693 17414 17415 17416 17417 17418 17419 48 685 686 687 688 689 690 12446 12447 12448 12449 12450 12451 697 698 699 700 701 702 17426 17427 17428 17429 17430 17431 10754 10755 10756 10757 10758 10759 10748 10749 10750 10751 10752 10753 10718 10719 10720 10721 10722 10723 17420 17421 17422 17423 17424 17425 48 697 698 699 700 701 702 12494 12495 12496 12497 12498 12499 12488 12489 12490 12491 12492 12493 17432 17433 17434 17435 17436 17437 10814 10815 10816 10817 10818 10819 10808 10809 10810 10811 10812 10813 10754 10755 10756 10757 10758 10759 17426 17427 17428 17429 17430 17431 48 12488 12489 12490 12491 12492 12493 12542 12543 12544 12545 12546 12547 12536 12537 12538 12539 12540 12541 17438 17439 17440 17441 17442 17443 10844 10845 10846 10847 10848 10849 10838 10839 10840 10841 10842 10843 10814 10815 10816 10817 10818 10819 17432 17433 17434 17435 17436 17437 48 12536 12537 12538 12539 12540 12541 12590 12591 12592 12593 12594 12595 12584 12585 12586 12587 12588 12589 17444 17445 17446 17447 17448 17449 10874 10875 10876 10877 10878 10879 10868 10869 10870 10871 10872 10873 10844 10845 10846 10847 10848 10849 17438 17439 17440 17441 17442 17443 48 12584 12585 12586 12587 12588 12589 12638 12639 12640 12641 12642 12643 12632 12633 12634 12635 12636 12637 17450 17451 17452 17453 17454 17455 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10874 10875 10876 10877 10878 10879 17444 17445 17446 17447 17448 17449 48 12632 12633 12634 12635 12636 12637 12686 12687 12688 12689 12690 12691 12680 12681 12682 12683 12684 12685 17456 17457 17458 17459 17460 17461 10964 10965 10966 10967 10968 10969 10958 10959 10960 10961 10962 10963 10922 10923 10924 10925 10926 10927 17450 17451 17452 17453 17454 17455 48 12680 12681 12682 12683 12684 12685 12734 12735 12736 12737 12738 12739 12728 12729 12730 12731 12732 12733 17462 17463 17464 17465 17466 17467 10994 10995 10996 10997 10998 10999 10988 10989 10990 10991 10992 10993 10964 10965 10966 10967 10968 10969 17456 17457 17458 17459 17460 17461 48 12728 12729 12730 12731 12732 12733 12782 12783 12784 12785 12786 12787 12776 12777 12778 12779 12780 12781 17468 17469 17470 17471 17472 17473 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 10994 10995 10996 10997 10998 10999 17462 17463 17464 17465 17466 17467 48 12776 12777 12778 12779 12780 12781 12830 12831 12832 12833 12834 12835 12824 12825 12826 12827 12828 12829 17474 17475 17476 17477 17478 17479 11084 11085 11086 11087 11088 11089 11078 11079 11080 11081 11082 11083 11042 11043 11044 11045 11046 11047 17468 17469 17470 17471 17472 17473 48 12824 12825 12826 12827 12828 12829 12878 12879 12880 12881 12882 12883 12872 12873 12874 12875 12876 12877 17480 17481 17482 17483 17484 17485 11114 11115 11116 11117 11118 11119 11108 11109 11110 11111 11112 11113 11084 11085 11086 11087 11088 11089 17474 17475 17476 17477 17478 17479 48 12872 12873 12874 12875 12876 12877 12926 12927 12928 12929 12930 12931 12920 12921 12922 12923 12924 12925 17486 17487 17488 17489 17490 17491 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11114 11115 11116 11117 11118 11119 17480 17481 17482 17483 17484 17485 48 12920 12921 12922 12923 12924 12925 12974 12975 12976 12977 12978 12979 12968 12969 12970 12971 12972 12973 17492 17493 17494 17495 17496 17497 11204 11205 11206 11207 11208 11209 11198 11199 11200 11201 11202 11203 11162 11163 11164 11165 11166 11167 17486 17487 17488 17489 17490 17491 48 12968 12969 12970 12971 12972 12973 13022 13023 13024 13025 13026 13027 13016 13017 13018 13019 13020 13021 17498 17499 17500 17501 17502 17503 11234 11235 11236 11237 11238 11239 11228 11229 11230 11231 11232 11233 11204 11205 11206 11207 11208 11209 17492 17493 17494 17495 17496 17497 48 13016 13017 13018 13019 13020 13021 13070 13071 13072 13073 13074 13075 13064 13065 13066 13067 13068 13069 17504 17505 17506 17507 17508 17509 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11234 11235 11236 11237 11238 11239 17498 17499 17500 17501 17502 17503 48 13064 13065 13066 13067 13068 13069 13118 13119 13120 13121 13122 13123 13112 13113 13114 13115 13116 13117 17510 17511 17512 17513 17514 17515 11324 11325 11326 11327 11328 11329 11318 11319 11320 11321 11322 11323 11282 11283 11284 11285 11286 11287 17504 17505 17506 17507 17508 17509 48 13112 13113 13114 13115 13116 13117 13166 13167 13168 13169 13170 13171 13160 13161 13162 13163 13164 13165 17516 17517 17518 17519 17520 17521 11354 11355 11356 11357 11358 11359 11348 11349 11350 11351 11352 11353 11324 11325 11326 11327 11328 11329 17510 17511 17512 17513 17514 17515 48 13160 13161 13162 13163 13164 13165 13214 13215 13216 13217 13218 13219 13208 13209 13210 13211 13212 13213 17522 17523 17524 17525 17526 17527 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11354 11355 11356 11357 11358 11359 17516 17517 17518 17519 17520 17521 48 13208 13209 13210 13211 13212 13213 13262 13263 13264 13265 13266 13267 13256 13257 13258 13259 13260 13261 17528 17529 17530 17531 17532 17533 11444 11445 11446 11447 11448 11449 11438 11439 11440 11441 11442 11443 11402 11403 11404 11405 11406 11407 17522 17523 17524 17525 17526 17527 48 13256 13257 13258 13259 13260 13261 13310 13311 13312 13313 13314 13315 13304 13305 13306 13307 13308 13309 17534 17535 17536 17537 17538 17539 11474 11475 11476 11477 11478 11479 11468 11469 11470 11471 11472 11473 11444 11445 11446 11447 11448 11449 17528 17529 17530 17531 17532 17533 48 13304 13305 13306 13307 13308 13309 13358 13359 13360 13361 13362 13363 13352 13353 13354 13355 13356 13357 17540 17541 17542 17543 17544 17545 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11474 11475 11476 11477 11478 11479 17534 17535 17536 17537 17538 17539 48 13352 13353 13354 13355 13356 13357 13406 13407 13408 13409 13410 13411 13400 13401 13402 13403 13404 13405 17546 17547 17548 17549 17550 17551 11564 11565 11566 11567 11568 11569 11558 11559 11560 11561 11562 11563 11522 11523 11524 11525 11526 11527 17540 17541 17542 17543 17544 17545 48 13400 13401 13402 13403 13404 13405 13454 13455 13456 13457 13458 13459 13448 13449 13450 13451 13452 13453 17552 17553 17554 17555 17556 17557 11594 11595 11596 11597 11598 11599 11588 11589 11590 11591 11592 11593 11564 11565 11566 11567 11568 11569 17546 17547 17548 17549 17550 17551 48 13448 13449 13450 13451 13452 13453 13502 13503 13504 13505 13506 13507 13496 13497 13498 13499 13500 13501 17558 17559 17560 17561 17562 17563 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11594 11595 11596 11597 11598 11599 17552 17553 17554 17555 17556 17557 48 13496 13497 13498 13499 13500 13501 13550 13551 13552 13553 13554 13555 13544 13545 13546 13547 13548 13549 17564 17565 17566 17567 17568 17569 11684 11685 11686 11687 11688 11689 11678 11679 11680 11681 11682 11683 11642 11643 11644 11645 11646 11647 17558 17559 17560 17561 17562 17563 48 13544 13545 13546 13547 13548 13549 13598 13599 13600 13601 13602 13603 13592 13593 13594 13595 13596 13597 17570 17571 17572 17573 17574 17575 11714 11715 11716 11717 11718 11719 11708 11709 11710 11711 11712 11713 11684 11685 11686 11687 11688 11689 17564 17565 17566 17567 17568 17569 48 13592 13593 13594 13595 13596 13597 13646 13647 13648 13649 13650 13651 13640 13641 13642 13643 13644 13645 17576 17577 17578 17579 17580 17581 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11714 11715 11716 11717 11718 11719 17570 17571 17572 17573 17574 17575 48 13640 13641 13642 13643 13644 13645 13694 13695 13696 13697 13698 13699 13688 13689 13690 13691 13692 13693 17582 17583 17584 17585 17586 17587 11804 11805 11806 11807 11808 11809 11798 11799 11800 11801 11802 11803 11762 11763 11764 11765 11766 11767 17576 17577 17578 17579 17580 17581 48 13688 13689 13690 13691 13692 13693 13742 13743 13744 13745 13746 13747 13736 13737 13738 13739 13740 13741 17588 17589 17590 17591 17592 17593 11834 11835 11836 11837 11838 11839 11828 11829 11830 11831 11832 11833 11804 11805 11806 11807 11808 11809 17582 17583 17584 17585 17586 17587 48 13736 13737 13738 13739 13740 13741 13790 13791 13792 13793 13794 13795 13784 13785 13786 13787 13788 13789 17594 17595 17596 17597 17598 17599 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11834 11835 11836 11837 11838 11839 17588 17589 17590 17591 17592 17593 48 13784 13785 13786 13787 13788 13789 13838 13839 13840 13841 13842 13843 13832 13833 13834 13835 13836 13837 17600 17601 17602 17603 17604 17605 11924 11925 11926 11927 11928 11929 11918 11919 11920 11921 11922 11923 11882 11883 11884 11885 11886 11887 17594 17595 17596 17597 17598 17599 48 13832 13833 13834 13835 13836 13837 13886 13887 13888 13889 13890 13891 13880 13881 13882 13883 13884 13885 17606 17607 17608 17609 17610 17611 11954 11955 11956 11957 11958 11959 11948 11949 11950 11951 11952 11953 11924 11925 11926 11927 11928 11929 17600 17601 17602 17603 17604 17605 48 13880 13881 13882 13883 13884 13885 13934 13935 13936 13937 13938 13939 13928 13929 13930 13931 13932 13933 17612 17613 17614 17615 17616 17617 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 11954 11955 11956 11957 11958 11959 17606 17607 17608 17609 17610 17611 48 13928 13929 13930 13931 13932 13933 13982 13983 13984 13985 13986 13987 13976 13977 13978 13979 13980 13981 17618 17619 17620 17621 17622 17623 12044 12045 12046 12047 12048 12049 12038 12039 12040 12041 12042 12043 12002 12003 12004 12005 12006 12007 17612 17613 17614 17615 17616 17617 48 13976 13977 13978 13979 13980 13981 14030 14031 14032 14033 14034 14035 14024 14025 14026 14027 14028 14029 17624 17625 17626 17627 17628 17629 12074 12075 12076 12077 12078 12079 12068 12069 12070 12071 12072 12073 12044 12045 12046 12047 12048 12049 17618 17619 17620 17621 17622 17623 48 14024 14025 14026 14027 14028 14029 14078 14079 14080 14081 14082 14083 14072 14073 14074 14075 14076 14077 17630 17631 17632 17633 17634 17635 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12074 12075 12076 12077 12078 12079 17624 17625 17626 17627 17628 17629 48 14072 14073 14074 14075 14076 14077 14126 14127 14128 14129 14130 14131 14120 14121 14122 14123 14124 14125 17636 17637 17638 17639 17640 17641 12164 12165 12166 12167 12168 12169 12158 12159 12160 12161 12162 12163 12122 12123 12124 12125 12126 12127 17630 17631 17632 17633 17634 17635 48 14120 14121 14122 14123 14124 14125 15842 15843 15844 15845 15846 15847 3047 3048 3049 3050 3051 3052 3437 3438 3439 3440 3441 3442 2807 2808 2809 2810 2811 2812 15866 15867 15868 15869 15870 15871 12164 12165 12166 12167 12168 12169 17636 17637 17638 17639 17640 17641 48 5330 5331 5332 5333 5334 5335 15836 15837 15838 15839 15840 15841 10544 10545 10546 10547 10548 10549 17642 17643 17644 17645 17646 17647 9152 9153 9154 9155 9156 9157 9146 9147 9148 9149 9150 9151 4802 4803 4804 4805 4806 4807 5522 5523 5524 5525 5526 5527 48 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 17648 17649 17650 17651 17652 17653 9182 9183 9184 9185 9186 9187 9176 9177 9178 9179 9180 9181 9152 9153 9154 9155 9156 9157 17642 17643 17644 17645 17646 17647 48 10556 10557 10558 10559 10560 10561 10628 10629 10630 10631 10632 10633 10592 10593 10594 10595 10596 10597 17654 17655 17656 17657 17658 17659 9206 9207 9208 9209 9210 9211 9242 9243 9244 9245 9246 9247 9182 9183 9184 9185 9186 9187 17648 17649 17650 17651 17652 17653 48 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 17660 17661 17662 17663 17664 17665 9218 9219 9220 9221 9222 9223 9212 9213 9214 9215 9216 9217 9206 9207 9208 9209 9210 9211 17654 17655 17656 17657 17658 17659 48 10604 10605 10606 10607 10608 10609 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 17666 17667 17668 17669 17670 17671 9302 9303 9304 9305 9306 9307 9296 9297 9298 9299 9300 9301 9218 9219 9220 9221 9222 9223 17660 17661 17662 17663 17664 17665 48 10688 10689 10690 10691 10692 10693 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 17672 17673 17674 17675 17676 17677 9332 9333 9334 9335 9336 9337 9326 9327 9328 9329 9330 9331 9302 9303 9304 9305 9306 9307 17666 17667 17668 17669 17670 17671 48 10718 10719 10720 10721 10722 10723 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 17678 17679 17680 17681 17682 17683 9368 9369 9370 9371 9372 9373 9362 9363 9364 9365 9366 9367 9332 9333 9334 9335 9336 9337 17672 17673 17674 17675 17676 17677 48 10754 10755 10756 10757 10758 10759 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 17684 17685 17686 17687 17688 17689 9428 9429 9430 9431 9432 9433 9422 9423 9424 9425 9426 9427 9368 9369 9370 9371 9372 9373 17678 17679 17680 17681 17682 17683 48 10814 10815 10816 10817 10818 10819 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 17690 17691 17692 17693 17694 17695 9458 9459 9460 9461 9462 9463 9452 9453 9454 9455 9456 9457 9428 9429 9430 9431 9432 9433 17684 17685 17686 17687 17688 17689 48 10844 10845 10846 10847 10848 10849 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 17696 17697 17698 17699 17700 17701 9488 9489 9490 9491 9492 9493 9482 9483 9484 9485 9486 9487 9458 9459 9460 9461 9462 9463 17690 17691 17692 17693 17694 17695 48 10874 10875 10876 10877 10878 10879 10928 10929 10930 10931 10932 10933 10922 10923 10924 10925 10926 10927 17702 17703 17704 17705 17706 17707 9518 9519 9520 9521 9522 9523 9512 9513 9514 9515 9516 9517 9488 9489 9490 9491 9492 9493 17696 17697 17698 17699 17700 17701 48 10922 10923 10924 10925 10926 10927 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 17708 17709 17710 17711 17712 17713 9548 9549 9550 9551 9552 9553 9542 9543 9544 9545 9546 9547 9518 9519 9520 9521 9522 9523 17702 17703 17704 17705 17706 17707 48 10964 10965 10966 10967 10968 10969 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 17714 17715 17716 17717 17718 17719 9578 9579 9580 9581 9582 9583 9572 9573 9574 9575 9576 9577 9548 9549 9550 9551 9552 9553 17708 17709 17710 17711 17712 17713 48 10994 10995 10996 10997 10998 10999 11048 11049 11050 11051 11052 11053 11042 11043 11044 11045 11046 11047 17720 17721 17722 17723 17724 17725 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9578 9579 9580 9581 9582 9583 17714 17715 17716 17717 17718 17719 48 11042 11043 11044 11045 11046 11047 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 17726 17727 17728 17729 17730 17731 9668 9669 9670 9671 9672 9673 9662 9663 9664 9665 9666 9667 9626 9627 9628 9629 9630 9631 17720 17721 17722 17723 17724 17725 48 11084 11085 11086 11087 11088 11089 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 17732 17733 17734 17735 17736 17737 9698 9699 9700 9701 9702 9703 9692 9693 9694 9695 9696 9697 9668 9669 9670 9671 9672 9673 17726 17727 17728 17729 17730 17731 48 11114 11115 11116 11117 11118 11119 11168 11169 11170 11171 11172 11173 11162 11163 11164 11165 11166 11167 17738 17739 17740 17741 17742 17743 9728 9729 9730 9731 9732 9733 9722 9723 9724 9725 9726 9727 9698 9699 9700 9701 9702 9703 17732 17733 17734 17735 17736 17737 48 11162 11163 11164 11165 11166 11167 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 17744 17745 17746 17747 17748 17749 9758 9759 9760 9761 9762 9763 9752 9753 9754 9755 9756 9757 9728 9729 9730 9731 9732 9733 17738 17739 17740 17741 17742 17743 48 11204 11205 11206 11207 11208 11209 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 17750 17751 17752 17753 17754 17755 9788 9789 9790 9791 9792 9793 9782 9783 9784 9785 9786 9787 9758 9759 9760 9761 9762 9763 17744 17745 17746 17747 17748 17749 48 11234 11235 11236 11237 11238 11239 11288 11289 11290 11291 11292 11293 11282 11283 11284 11285 11286 11287 17756 17757 17758 17759 17760 17761 9818 9819 9820 9821 9822 9823 9812 9813 9814 9815 9816 9817 9788 9789 9790 9791 9792 9793 17750 17751 17752 17753 17754 17755 48 11282 11283 11284 11285 11286 11287 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 17762 17763 17764 17765 17766 17767 9848 9849 9850 9851 9852 9853 9842 9843 9844 9845 9846 9847 9818 9819 9820 9821 9822 9823 17756 17757 17758 17759 17760 17761 48 11324 11325 11326 11327 11328 11329 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 17768 17769 17770 17771 17772 17773 9878 9879 9880 9881 9882 9883 9872 9873 9874 9875 9876 9877 9848 9849 9850 9851 9852 9853 17762 17763 17764 17765 17766 17767 48 11354 11355 11356 11357 11358 11359 11408 11409 11410 11411 11412 11413 11402 11403 11404 11405 11406 11407 17774 17775 17776 17777 17778 17779 9908 9909 9910 9911 9912 9913 9902 9903 9904 9905 9906 9907 9878 9879 9880 9881 9882 9883 17768 17769 17770 17771 17772 17773 48 11402 11403 11404 11405 11406 11407 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 17780 17781 17782 17783 17784 17785 9938 9939 9940 9941 9942 9943 9932 9933 9934 9935 9936 9937 9908 9909 9910 9911 9912 9913 17774 17775 17776 17777 17778 17779 48 11444 11445 11446 11447 11448 11449 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 17786 17787 17788 17789 17790 17791 9968 9969 9970 9971 9972 9973 9962 9963 9964 9965 9966 9967 9938 9939 9940 9941 9942 9943 17780 17781 17782 17783 17784 17785 48 11474 11475 11476 11477 11478 11479 11528 11529 11530 11531 11532 11533 11522 11523 11524 11525 11526 11527 17792 17793 17794 17795 17796 17797 9998 9999 10000 10001 10002 10003 9992 9993 9994 9995 9996 9997 9968 9969 9970 9971 9972 9973 17786 17787 17788 17789 17790 17791 48 11522 11523 11524 11525 11526 11527 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 17798 17799 17800 17801 17802 17803 10028 10029 10030 10031 10032 10033 10022 10023 10024 10025 10026 10027 9998 9999 10000 10001 10002 10003 17792 17793 17794 17795 17796 17797 48 11564 11565 11566 11567 11568 11569 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 17804 17805 17806 17807 17808 17809 10058 10059 10060 10061 10062 10063 10052 10053 10054 10055 10056 10057 10028 10029 10030 10031 10032 10033 17798 17799 17800 17801 17802 17803 48 11594 11595 11596 11597 11598 11599 11648 11649 11650 11651 11652 11653 11642 11643 11644 11645 11646 11647 17810 17811 17812 17813 17814 17815 10088 10089 10090 10091 10092 10093 10082 10083 10084 10085 10086 10087 10058 10059 10060 10061 10062 10063 17804 17805 17806 17807 17808 17809 48 11642 11643 11644 11645 11646 11647 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 17816 17817 17818 17819 17820 17821 10118 10119 10120 10121 10122 10123 10112 10113 10114 10115 10116 10117 10088 10089 10090 10091 10092 10093 17810 17811 17812 17813 17814 17815 48 11684 11685 11686 11687 11688 11689 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 17822 17823 17824 17825 17826 17827 10148 10149 10150 10151 10152 10153 10142 10143 10144 10145 10146 10147 10118 10119 10120 10121 10122 10123 17816 17817 17818 17819 17820 17821 48 11714 11715 11716 11717 11718 11719 11768 11769 11770 11771 11772 11773 11762 11763 11764 11765 11766 11767 17828 17829 17830 17831 17832 17833 10178 10179 10180 10181 10182 10183 10172 10173 10174 10175 10176 10177 10148 10149 10150 10151 10152 10153 17822 17823 17824 17825 17826 17827 48 11762 11763 11764 11765 11766 11767 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 17834 17835 17836 17837 17838 17839 10208 10209 10210 10211 10212 10213 10202 10203 10204 10205 10206 10207 10178 10179 10180 10181 10182 10183 17828 17829 17830 17831 17832 17833 48 11804 11805 11806 11807 11808 11809 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 17840 17841 17842 17843 17844 17845 10238 10239 10240 10241 10242 10243 10232 10233 10234 10235 10236 10237 10208 10209 10210 10211 10212 10213 17834 17835 17836 17837 17838 17839 48 11834 11835 11836 11837 11838 11839 11888 11889 11890 11891 11892 11893 11882 11883 11884 11885 11886 11887 17846 17847 17848 17849 17850 17851 10268 10269 10270 10271 10272 10273 10262 10263 10264 10265 10266 10267 10238 10239 10240 10241 10242 10243 17840 17841 17842 17843 17844 17845 48 11882 11883 11884 11885 11886 11887 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 17852 17853 17854 17855 17856 17857 10298 10299 10300 10301 10302 10303 10292 10293 10294 10295 10296 10297 10268 10269 10270 10271 10272 10273 17846 17847 17848 17849 17850 17851 48 11924 11925 11926 11927 11928 11929 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 17858 17859 17860 17861 17862 17863 10328 10329 10330 10331 10332 10333 10322 10323 10324 10325 10326 10327 10298 10299 10300 10301 10302 10303 17852 17853 17854 17855 17856 17857 48 11954 11955 11956 11957 11958 11959 12008 12009 12010 12011 12012 12013 12002 12003 12004 12005 12006 12007 17864 17865 17866 17867 17868 17869 10358 10359 10360 10361 10362 10363 10352 10353 10354 10355 10356 10357 10328 10329 10330 10331 10332 10333 17858 17859 17860 17861 17862 17863 48 12002 12003 12004 12005 12006 12007 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 17870 17871 17872 17873 17874 17875 10388 10389 10390 10391 10392 10393 10382 10383 10384 10385 10386 10387 10358 10359 10360 10361 10362 10363 17864 17865 17866 17867 17868 17869 48 12044 12045 12046 12047 12048 12049 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 17876 17877 17878 17879 17880 17881 10418 10419 10420 10421 10422 10423 10412 10413 10414 10415 10416 10417 10388 10389 10390 10391 10392 10393 17870 17871 17872 17873 17874 17875 48 12074 12075 12076 12077 12078 12079 12128 12129 12130 12131 12132 12133 12122 12123 12124 12125 12126 12127 17882 17883 17884 17885 17886 17887 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10418 10419 10420 10421 10422 10423 17876 17877 17878 17879 17880 17881 48 12122 12123 12124 12125 12126 12127 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 17888 17889 17890 17891 17892 17893 10508 10509 10510 10511 10512 10513 10502 10503 10504 10505 10506 10507 10466 10467 10468 10469 10470 10471 17882 17883 17884 17885 17886 17887 48 12164 12165 12166 12167 12168 12169 15866 15867 15868 15869 15870 15871 2807 2808 2809 2810 2811 2812 3653 3654 3655 3656 3657 3658 2579 2580 2581 2582 2583 2584 10532 10533 10534 10535 10536 10537 10508 10509 10510 10511 10512 10513 17888 17889 17890 17891 17892 17893 48 4802 4803 4804 4805 4806 4807 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 17894 17895 17896 17897 17898 17899 7484 7485 7486 7487 7488 7489 7478 7479 7480 7481 7482 7483 4574 4575 4576 4577 4578 4579 5558 5559 5560 5561 5562 5563 48 9152 9153 9154 9155 9156 9157 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 17900 17901 17902 17903 17904 17905 7514 7515 7516 7517 7518 7519 7508 7509 7510 7511 7512 7513 7484 7485 7486 7487 7488 7489 17894 17895 17896 17897 17898 17899 48 9182 9183 9184 9185 9186 9187 9242 9243 9244 9245 9246 9247 9206 9207 9208 9209 9210 9211 17906 17907 17908 17909 17910 17911 7538 7539 7540 7541 7542 7543 7574 7575 7576 7577 7578 7579 7514 7515 7516 7517 7518 7519 17900 17901 17902 17903 17904 17905 48 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 17912 17913 17914 17915 17916 17917 7550 7551 7552 7553 7554 7555 7544 7545 7546 7547 7548 7549 7538 7539 7540 7541 7542 7543 17906 17907 17908 17909 17910 17911 48 9218 9219 9220 9221 9222 9223 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 17918 17919 17920 17921 17922 17923 7634 7635 7636 7637 7638 7639 7628 7629 7630 7631 7632 7633 7550 7551 7552 7553 7554 7555 17912 17913 17914 17915 17916 17917 48 9302 9303 9304 9305 9306 9307 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 17924 17925 17926 17927 17928 17929 7664 7665 7666 7667 7668 7669 7658 7659 7660 7661 7662 7663 7634 7635 7636 7637 7638 7639 17918 17919 17920 17921 17922 17923 48 9332 9333 9334 9335 9336 9337 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 17930 17931 17932 17933 17934 17935 7700 7701 7702 7703 7704 7705 7694 7695 7696 7697 7698 7699 7664 7665 7666 7667 7668 7669 17924 17925 17926 17927 17928 17929 48 9368 9369 9370 9371 9372 9373 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 17936 17937 17938 17939 17940 17941 7760 7761 7762 7763 7764 7765 7754 7755 7756 7757 7758 7759 7700 7701 7702 7703 7704 7705 17930 17931 17932 17933 17934 17935 48 9428 9429 9430 9431 9432 9433 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 17942 17943 17944 17945 17946 17947 7790 7791 7792 7793 7794 7795 7784 7785 7786 7787 7788 7789 7760 7761 7762 7763 7764 7765 17936 17937 17938 17939 17940 17941 48 9458 9459 9460 9461 9462 9463 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 17948 17949 17950 17951 17952 17953 7820 7821 7822 7823 7824 7825 7814 7815 7816 7817 7818 7819 7790 7791 7792 7793 7794 7795 17942 17943 17944 17945 17946 17947 48 9488 9489 9490 9491 9492 9493 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 17954 17955 17956 17957 17958 17959 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7820 7821 7822 7823 7824 7825 17948 17949 17950 17951 17952 17953 48 9518 9519 9520 9521 9522 9523 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 17960 17961 17962 17963 17964 17965 7910 7911 7912 7913 7914 7915 7904 7905 7906 7907 7908 7909 7868 7869 7870 7871 7872 7873 17954 17955 17956 17957 17958 17959 48 9548 9549 9550 9551 9552 9553 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 17966 17967 17968 17969 17970 17971 7940 7941 7942 7943 7944 7945 7934 7935 7936 7937 7938 7939 7910 7911 7912 7913 7914 7915 17960 17961 17962 17963 17964 17965 48 9578 9579 9580 9581 9582 9583 9632 9633 9634 9635 9636 9637 9626 9627 9628 9629 9630 9631 17972 17973 17974 17975 17976 17977 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 7940 7941 7942 7943 7944 7945 17966 17967 17968 17969 17970 17971 48 9626 9627 9628 9629 9630 9631 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 17978 17979 17980 17981 17982 17983 8030 8031 8032 8033 8034 8035 8024 8025 8026 8027 8028 8029 7988 7989 7990 7991 7992 7993 17972 17973 17974 17975 17976 17977 48 9668 9669 9670 9671 9672 9673 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 17984 17985 17986 17987 17988 17989 8060 8061 8062 8063 8064 8065 8054 8055 8056 8057 8058 8059 8030 8031 8032 8033 8034 8035 17978 17979 17980 17981 17982 17983 48 9698 9699 9700 9701 9702 9703 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 17990 17991 17992 17993 17994 17995 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8060 8061 8062 8063 8064 8065 17984 17985 17986 17987 17988 17989 48 9728 9729 9730 9731 9732 9733 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 17996 17997 17998 17999 18000 18001 8150 8151 8152 8153 8154 8155 8144 8145 8146 8147 8148 8149 8108 8109 8110 8111 8112 8113 17990 17991 17992 17993 17994 17995 48 9758 9759 9760 9761 9762 9763 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 18002 18003 18004 18005 18006 18007 8180 8181 8182 8183 8184 8185 8174 8175 8176 8177 8178 8179 8150 8151 8152 8153 8154 8155 17996 17997 17998 17999 18000 18001 48 9788 9789 9790 9791 9792 9793 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 18008 18009 18010 18011 18012 18013 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8180 8181 8182 8183 8184 8185 18002 18003 18004 18005 18006 18007 48 9818 9819 9820 9821 9822 9823 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 18014 18015 18016 18017 18018 18019 8270 8271 8272 8273 8274 8275 8264 8265 8266 8267 8268 8269 8228 8229 8230 8231 8232 8233 18008 18009 18010 18011 18012 18013 48 9848 9849 9850 9851 9852 9853 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 18020 18021 18022 18023 18024 18025 8300 8301 8302 8303 8304 8305 8294 8295 8296 8297 8298 8299 8270 8271 8272 8273 8274 8275 18014 18015 18016 18017 18018 18019 48 9878 9879 9880 9881 9882 9883 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 18026 18027 18028 18029 18030 18031 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8300 8301 8302 8303 8304 8305 18020 18021 18022 18023 18024 18025 48 9908 9909 9910 9911 9912 9913 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 18032 18033 18034 18035 18036 18037 8390 8391 8392 8393 8394 8395 8384 8385 8386 8387 8388 8389 8348 8349 8350 8351 8352 8353 18026 18027 18028 18029 18030 18031 48 9938 9939 9940 9941 9942 9943 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 18038 18039 18040 18041 18042 18043 8420 8421 8422 8423 8424 8425 8414 8415 8416 8417 8418 8419 8390 8391 8392 8393 8394 8395 18032 18033 18034 18035 18036 18037 48 9968 9969 9970 9971 9972 9973 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 18044 18045 18046 18047 18048 18049 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8420 8421 8422 8423 8424 8425 18038 18039 18040 18041 18042 18043 48 9998 9999 10000 10001 10002 10003 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 18050 18051 18052 18053 18054 18055 8510 8511 8512 8513 8514 8515 8504 8505 8506 8507 8508 8509 8468 8469 8470 8471 8472 8473 18044 18045 18046 18047 18048 18049 48 10028 10029 10030 10031 10032 10033 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 18056 18057 18058 18059 18060 18061 8540 8541 8542 8543 8544 8545 8534 8535 8536 8537 8538 8539 8510 8511 8512 8513 8514 8515 18050 18051 18052 18053 18054 18055 48 10058 10059 10060 10061 10062 10063 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 18062 18063 18064 18065 18066 18067 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8540 8541 8542 8543 8544 8545 18056 18057 18058 18059 18060 18061 48 10088 10089 10090 10091 10092 10093 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 18068 18069 18070 18071 18072 18073 8630 8631 8632 8633 8634 8635 8624 8625 8626 8627 8628 8629 8588 8589 8590 8591 8592 8593 18062 18063 18064 18065 18066 18067 48 10118 10119 10120 10121 10122 10123 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 18074 18075 18076 18077 18078 18079 8660 8661 8662 8663 8664 8665 8654 8655 8656 8657 8658 8659 8630 8631 8632 8633 8634 8635 18068 18069 18070 18071 18072 18073 48 10148 10149 10150 10151 10152 10153 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 18080 18081 18082 18083 18084 18085 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8660 8661 8662 8663 8664 8665 18074 18075 18076 18077 18078 18079 48 10178 10179 10180 10181 10182 10183 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 18086 18087 18088 18089 18090 18091 8750 8751 8752 8753 8754 8755 8744 8745 8746 8747 8748 8749 8708 8709 8710 8711 8712 8713 18080 18081 18082 18083 18084 18085 48 10208 10209 10210 10211 10212 10213 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 18092 18093 18094 18095 18096 18097 8780 8781 8782 8783 8784 8785 8774 8775 8776 8777 8778 8779 8750 8751 8752 8753 8754 8755 18086 18087 18088 18089 18090 18091 48 10238 10239 10240 10241 10242 10243 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 18098 18099 18100 18101 18102 18103 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8780 8781 8782 8783 8784 8785 18092 18093 18094 18095 18096 18097 48 10268 10269 10270 10271 10272 10273 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 18104 18105 18106 18107 18108 18109 8870 8871 8872 8873 8874 8875 8864 8865 8866 8867 8868 8869 8828 8829 8830 8831 8832 8833 18098 18099 18100 18101 18102 18103 48 10298 10299 10300 10301 10302 10303 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 18110 18111 18112 18113 18114 18115 8900 8901 8902 8903 8904 8905 8894 8895 8896 8897 8898 8899 8870 8871 8872 8873 8874 8875 18104 18105 18106 18107 18108 18109 48 10328 10329 10330 10331 10332 10333 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 18116 18117 18118 18119 18120 18121 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8900 8901 8902 8903 8904 8905 18110 18111 18112 18113 18114 18115 48 10358 10359 10360 10361 10362 10363 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 18122 18123 18124 18125 18126 18127 8990 8991 8992 8993 8994 8995 8984 8985 8986 8987 8988 8989 8948 8949 8950 8951 8952 8953 18116 18117 18118 18119 18120 18121 48 10388 10389 10390 10391 10392 10393 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 18128 18129 18130 18131 18132 18133 9020 9021 9022 9023 9024 9025 9014 9015 9016 9017 9018 9019 8990 8991 8992 8993 8994 8995 18122 18123 18124 18125 18126 18127 48 10418 10419 10420 10421 10422 10423 10472 10473 10474 10475 10476 10477 10466 10467 10468 10469 10470 10471 18134 18135 18136 18137 18138 18139 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9020 9021 9022 9023 9024 9025 18128 18129 18130 18131 18132 18133 48 10466 10467 10468 10469 10470 10471 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 18140 18141 18142 18143 18144 18145 9110 9111 9112 9113 9114 9115 9104 9105 9106 9107 9108 9109 9068 9069 9070 9071 9072 9073 18134 18135 18136 18137 18138 18139 48 10508 10509 10510 10511 10512 10513 10532 10533 10534 10535 10536 10537 2579 2580 2581 2582 2583 2584 3683 3684 3685 3686 3687 3688 2305 2306 2307 2308 2309 2310 9134 9135 9136 9137 9138 9139 9110 9111 9112 9113 9114 9115 18140 18141 18142 18143 18144 18145 48 4574 4575 4576 4577 4578 4579 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 18146 18147 18148 18149 18150 18151 5816 5817 5818 5819 5820 5821 5810 5811 5812 5813 5814 5815 4310 4311 4312 4313 4314 4315 5594 5595 5596 5597 5598 5599 48 7484 7485 7486 7487 7488 7489 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 18152 18153 18154 18155 18156 18157 5846 5847 5848 5849 5850 5851 5840 5841 5842 5843 5844 5845 5816 5817 5818 5819 5820 5821 18146 18147 18148 18149 18150 18151 48 7514 7515 7516 7517 7518 7519 7574 7575 7576 7577 7578 7579 7538 7539 7540 7541 7542 7543 18158 18159 18160 18161 18162 18163 5870 5871 5872 5873 5874 5875 5906 5907 5908 5909 5910 5911 5846 5847 5848 5849 5850 5851 18152 18153 18154 18155 18156 18157 48 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 18164 18165 18166 18167 18168 18169 5882 5883 5884 5885 5886 5887 5876 5877 5878 5879 5880 5881 5870 5871 5872 5873 5874 5875 18158 18159 18160 18161 18162 18163 48 7550 7551 7552 7553 7554 7555 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 18170 18171 18172 18173 18174 18175 5966 5967 5968 5969 5970 5971 5960 5961 5962 5963 5964 5965 5882 5883 5884 5885 5886 5887 18164 18165 18166 18167 18168 18169 48 7634 7635 7636 7637 7638 7639 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 18176 18177 18178 18179 18180 18181 5996 5997 5998 5999 6000 6001 5990 5991 5992 5993 5994 5995 5966 5967 5968 5969 5970 5971 18170 18171 18172 18173 18174 18175 48 7664 7665 7666 7667 7668 7669 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 18182 18183 18184 18185 18186 18187 6032 6033 6034 6035 6036 6037 6026 6027 6028 6029 6030 6031 5996 5997 5998 5999 6000 6001 18176 18177 18178 18179 18180 18181 48 7700 7701 7702 7703 7704 7705 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 18188 18189 18190 18191 18192 18193 6092 6093 6094 6095 6096 6097 6086 6087 6088 6089 6090 6091 6032 6033 6034 6035 6036 6037 18182 18183 18184 18185 18186 18187 48 7760 7761 7762 7763 7764 7765 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 18194 18195 18196 18197 18198 18199 6122 6123 6124 6125 6126 6127 6116 6117 6118 6119 6120 6121 6092 6093 6094 6095 6096 6097 18188 18189 18190 18191 18192 18193 48 7790 7791 7792 7793 7794 7795 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 18200 18201 18202 18203 18204 18205 6152 6153 6154 6155 6156 6157 6146 6147 6148 6149 6150 6151 6122 6123 6124 6125 6126 6127 18194 18195 18196 18197 18198 18199 48 7820 7821 7822 7823 7824 7825 7874 7875 7876 7877 7878 7879 7868 7869 7870 7871 7872 7873 18206 18207 18208 18209 18210 18211 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6152 6153 6154 6155 6156 6157 18200 18201 18202 18203 18204 18205 48 7868 7869 7870 7871 7872 7873 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 18212 18213 18214 18215 18216 18217 6242 6243 6244 6245 6246 6247 6236 6237 6238 6239 6240 6241 6200 6201 6202 6203 6204 6205 18206 18207 18208 18209 18210 18211 48 7910 7911 7912 7913 7914 7915 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 18218 18219 18220 18221 18222 18223 6272 6273 6274 6275 6276 6277 6266 6267 6268 6269 6270 6271 6242 6243 6244 6245 6246 6247 18212 18213 18214 18215 18216 18217 48 7940 7941 7942 7943 7944 7945 7994 7995 7996 7997 7998 7999 7988 7989 7990 7991 7992 7993 18224 18225 18226 18227 18228 18229 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6272 6273 6274 6275 6276 6277 18218 18219 18220 18221 18222 18223 48 7988 7989 7990 7991 7992 7993 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 18230 18231 18232 18233 18234 18235 6362 6363 6364 6365 6366 6367 6356 6357 6358 6359 6360 6361 6320 6321 6322 6323 6324 6325 18224 18225 18226 18227 18228 18229 48 8030 8031 8032 8033 8034 8035 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 18236 18237 18238 18239 18240 18241 6392 6393 6394 6395 6396 6397 6386 6387 6388 6389 6390 6391 6362 6363 6364 6365 6366 6367 18230 18231 18232 18233 18234 18235 48 8060 8061 8062 8063 8064 8065 8114 8115 8116 8117 8118 8119 8108 8109 8110 8111 8112 8113 18242 18243 18244 18245 18246 18247 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6392 6393 6394 6395 6396 6397 18236 18237 18238 18239 18240 18241 48 8108 8109 8110 8111 8112 8113 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 18248 18249 18250 18251 18252 18253 6482 6483 6484 6485 6486 6487 6476 6477 6478 6479 6480 6481 6440 6441 6442 6443 6444 6445 18242 18243 18244 18245 18246 18247 48 8150 8151 8152 8153 8154 8155 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 18254 18255 18256 18257 18258 18259 6512 6513 6514 6515 6516 6517 6506 6507 6508 6509 6510 6511 6482 6483 6484 6485 6486 6487 18248 18249 18250 18251 18252 18253 48 8180 8181 8182 8183 8184 8185 8234 8235 8236 8237 8238 8239 8228 8229 8230 8231 8232 8233 18260 18261 18262 18263 18264 18265 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6512 6513 6514 6515 6516 6517 18254 18255 18256 18257 18258 18259 48 8228 8229 8230 8231 8232 8233 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 18266 18267 18268 18269 18270 18271 6602 6603 6604 6605 6606 6607 6596 6597 6598 6599 6600 6601 6560 6561 6562 6563 6564 6565 18260 18261 18262 18263 18264 18265 48 8270 8271 8272 8273 8274 8275 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 18272 18273 18274 18275 18276 18277 6632 6633 6634 6635 6636 6637 6626 6627 6628 6629 6630 6631 6602 6603 6604 6605 6606 6607 18266 18267 18268 18269 18270 18271 48 8300 8301 8302 8303 8304 8305 8354 8355 8356 8357 8358 8359 8348 8349 8350 8351 8352 8353 18278 18279 18280 18281 18282 18283 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6632 6633 6634 6635 6636 6637 18272 18273 18274 18275 18276 18277 48 8348 8349 8350 8351 8352 8353 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 18284 18285 18286 18287 18288 18289 6722 6723 6724 6725 6726 6727 6716 6717 6718 6719 6720 6721 6680 6681 6682 6683 6684 6685 18278 18279 18280 18281 18282 18283 48 8390 8391 8392 8393 8394 8395 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 18290 18291 18292 18293 18294 18295 6752 6753 6754 6755 6756 6757 6746 6747 6748 6749 6750 6751 6722 6723 6724 6725 6726 6727 18284 18285 18286 18287 18288 18289 48 8420 8421 8422 8423 8424 8425 8474 8475 8476 8477 8478 8479 8468 8469 8470 8471 8472 8473 18296 18297 18298 18299 18300 18301 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6752 6753 6754 6755 6756 6757 18290 18291 18292 18293 18294 18295 48 8468 8469 8470 8471 8472 8473 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 18302 18303 18304 18305 18306 18307 6842 6843 6844 6845 6846 6847 6836 6837 6838 6839 6840 6841 6800 6801 6802 6803 6804 6805 18296 18297 18298 18299 18300 18301 48 8510 8511 8512 8513 8514 8515 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 18308 18309 18310 18311 18312 18313 6872 6873 6874 6875 6876 6877 6866 6867 6868 6869 6870 6871 6842 6843 6844 6845 6846 6847 18302 18303 18304 18305 18306 18307 48 8540 8541 8542 8543 8544 8545 8594 8595 8596 8597 8598 8599 8588 8589 8590 8591 8592 8593 18314 18315 18316 18317 18318 18319 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6872 6873 6874 6875 6876 6877 18308 18309 18310 18311 18312 18313 48 8588 8589 8590 8591 8592 8593 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 18320 18321 18322 18323 18324 18325 6962 6963 6964 6965 6966 6967 6956 6957 6958 6959 6960 6961 6920 6921 6922 6923 6924 6925 18314 18315 18316 18317 18318 18319 48 8630 8631 8632 8633 8634 8635 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 18326 18327 18328 18329 18330 18331 6992 6993 6994 6995 6996 6997 6986 6987 6988 6989 6990 6991 6962 6963 6964 6965 6966 6967 18320 18321 18322 18323 18324 18325 48 8660 8661 8662 8663 8664 8665 8714 8715 8716 8717 8718 8719 8708 8709 8710 8711 8712 8713 18332 18333 18334 18335 18336 18337 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 6992 6993 6994 6995 6996 6997 18326 18327 18328 18329 18330 18331 48 8708 8709 8710 8711 8712 8713 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 18338 18339 18340 18341 18342 18343 7082 7083 7084 7085 7086 7087 7076 7077 7078 7079 7080 7081 7040 7041 7042 7043 7044 7045 18332 18333 18334 18335 18336 18337 48 8750 8751 8752 8753 8754 8755 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 18344 18345 18346 18347 18348 18349 7112 7113 7114 7115 7116 7117 7106 7107 7108 7109 7110 7111 7082 7083 7084 7085 7086 7087 18338 18339 18340 18341 18342 18343 48 8780 8781 8782 8783 8784 8785 8834 8835 8836 8837 8838 8839 8828 8829 8830 8831 8832 8833 18350 18351 18352 18353 18354 18355 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7112 7113 7114 7115 7116 7117 18344 18345 18346 18347 18348 18349 48 8828 8829 8830 8831 8832 8833 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 18356 18357 18358 18359 18360 18361 7202 7203 7204 7205 7206 7207 7196 7197 7198 7199 7200 7201 7160 7161 7162 7163 7164 7165 18350 18351 18352 18353 18354 18355 48 8870 8871 8872 8873 8874 8875 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 18362 18363 18364 18365 18366 18367 7232 7233 7234 7235 7236 7237 7226 7227 7228 7229 7230 7231 7202 7203 7204 7205 7206 7207 18356 18357 18358 18359 18360 18361 48 8900 8901 8902 8903 8904 8905 8954 8955 8956 8957 8958 8959 8948 8949 8950 8951 8952 8953 18368 18369 18370 18371 18372 18373 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7232 7233 7234 7235 7236 7237 18362 18363 18364 18365 18366 18367 48 8948 8949 8950 8951 8952 8953 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 18374 18375 18376 18377 18378 18379 7322 7323 7324 7325 7326 7327 7316 7317 7318 7319 7320 7321 7280 7281 7282 7283 7284 7285 18368 18369 18370 18371 18372 18373 48 8990 8991 8992 8993 8994 8995 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 18380 18381 18382 18383 18384 18385 7352 7353 7354 7355 7356 7357 7346 7347 7348 7349 7350 7351 7322 7323 7324 7325 7326 7327 18374 18375 18376 18377 18378 18379 48 9020 9021 9022 9023 9024 9025 9074 9075 9076 9077 9078 9079 9068 9069 9070 9071 9072 9073 18386 18387 18388 18389 18390 18391 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7352 7353 7354 7355 7356 7357 18380 18381 18382 18383 18384 18385 48 9068 9069 9070 9071 9072 9073 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 18392 18393 18394 18395 18396 18397 7442 7443 7444 7445 7446 7447 7436 7437 7438 7439 7440 7441 7400 7401 7402 7403 7404 7405 18386 18387 18388 18389 18390 18391 48 9110 9111 9112 9113 9114 9115 9134 9135 9136 9137 9138 9139 2305 2306 2307 2308 2309 2310 3719 3720 3721 3722 3723 3724 2083 2084 2085 2086 2087 2088 7466 7467 7468 7469 7470 7471 7442 7443 7444 7445 7446 7447 18392 18393 18394 18395 18396 18397 48 5180 5181 5182 5183 5184 5185 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 18398 18399 18400 18401 18402 18403 12188 12189 12190 12191 12192 12193 15818 15819 15820 15821 15822 15823 5048 5049 5050 5051 5052 5053 5618 5619 5620 5621 5622 5623 48 14156 14157 14158 14159 14160 14161 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 18404 18405 18406 18407 18408 18409 12200 12201 12202 12203 12204 12205 12194 12195 12196 12197 12198 12199 12188 12189 12190 12191 12192 12193 18398 18399 18400 18401 18402 18403 48 14186 14187 14188 14189 14190 14191 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 18410 18411 18412 18413 18414 18415 12266 12267 12268 12269 12270 12271 12260 12261 12262 12263 12264 12265 12200 12201 12202 12203 12204 12205 18404 18405 18406 18407 18408 18409 48 14216 14217 14218 14219 14220 14221 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 18416 18417 18418 18419 18420 18421 12308 12309 12310 12311 12312 12313 12302 12303 12304 12305 12306 12307 12266 12267 12268 12269 12270 12271 18410 18411 18412 18413 18414 18415 48 14246 14247 14248 14249 14250 14251 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 18422 18423 18424 18425 18426 18427 12350 12351 12352 12353 12354 12355 12344 12345 12346 12347 12348 12349 12308 12309 12310 12311 12312 12313 18416 18417 18418 18419 18420 18421 48 14276 14277 14278 14279 14280 14281 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 18428 18429 18430 18431 18432 18433 12392 12393 12394 12395 12396 12397 12386 12387 12388 12389 12390 12391 12350 12351 12352 12353 12354 12355 18422 18423 18424 18425 18426 18427 48 14306 14307 14308 14309 14310 14311 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 18434 18435 18436 18437 18438 18439 12434 12435 12436 12437 12438 12439 12428 12429 12430 12431 12432 12433 12392 12393 12394 12395 12396 12397 18428 18429 18430 18431 18432 18433 48 14336 14337 14338 14339 14340 14341 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 18440 18441 18442 18443 18444 18445 12476 12477 12478 12479 12480 12481 12470 12471 12472 12473 12474 12475 12434 12435 12436 12437 12438 12439 18434 18435 18436 18437 18438 18439 48 14366 14367 14368 14369 14370 14371 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 18446 18447 18448 18449 18450 18451 12524 12525 12526 12527 12528 12529 12518 12519 12520 12521 12522 12523 12476 12477 12478 12479 12480 12481 18440 18441 18442 18443 18444 18445 48 14396 14397 14398 14399 14400 14401 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 18452 18453 18454 18455 18456 18457 12572 12573 12574 12575 12576 12577 12566 12567 12568 12569 12570 12571 12524 12525 12526 12527 12528 12529 18446 18447 18448 18449 18450 18451 48 14426 14427 14428 14429 14430 14431 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 18458 18459 18460 18461 18462 18463 12620 12621 12622 12623 12624 12625 12614 12615 12616 12617 12618 12619 12572 12573 12574 12575 12576 12577 18452 18453 18454 18455 18456 18457 48 14456 14457 14458 14459 14460 14461 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 18464 18465 18466 18467 18468 18469 12668 12669 12670 12671 12672 12673 12662 12663 12664 12665 12666 12667 12620 12621 12622 12623 12624 12625 18458 18459 18460 18461 18462 18463 48 14486 14487 14488 14489 14490 14491 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 18470 18471 18472 18473 18474 18475 12716 12717 12718 12719 12720 12721 12710 12711 12712 12713 12714 12715 12668 12669 12670 12671 12672 12673 18464 18465 18466 18467 18468 18469 48 14516 14517 14518 14519 14520 14521 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 18476 18477 18478 18479 18480 18481 12764 12765 12766 12767 12768 12769 12758 12759 12760 12761 12762 12763 12716 12717 12718 12719 12720 12721 18470 18471 18472 18473 18474 18475 48 14546 14547 14548 14549 14550 14551 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 18482 18483 18484 18485 18486 18487 12812 12813 12814 12815 12816 12817 12806 12807 12808 12809 12810 12811 12764 12765 12766 12767 12768 12769 18476 18477 18478 18479 18480 18481 48 14576 14577 14578 14579 14580 14581 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 18488 18489 18490 18491 18492 18493 12860 12861 12862 12863 12864 12865 12854 12855 12856 12857 12858 12859 12812 12813 12814 12815 12816 12817 18482 18483 18484 18485 18486 18487 48 14606 14607 14608 14609 14610 14611 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 18494 18495 18496 18497 18498 18499 12908 12909 12910 12911 12912 12913 12902 12903 12904 12905 12906 12907 12860 12861 12862 12863 12864 12865 18488 18489 18490 18491 18492 18493 48 14636 14637 14638 14639 14640 14641 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 18500 18501 18502 18503 18504 18505 12956 12957 12958 12959 12960 12961 12950 12951 12952 12953 12954 12955 12908 12909 12910 12911 12912 12913 18494 18495 18496 18497 18498 18499 48 14666 14667 14668 14669 14670 14671 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 18506 18507 18508 18509 18510 18511 13004 13005 13006 13007 13008 13009 12998 12999 13000 13001 13002 13003 12956 12957 12958 12959 12960 12961 18500 18501 18502 18503 18504 18505 48 14696 14697 14698 14699 14700 14701 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 18512 18513 18514 18515 18516 18517 13052 13053 13054 13055 13056 13057 13046 13047 13048 13049 13050 13051 13004 13005 13006 13007 13008 13009 18506 18507 18508 18509 18510 18511 48 14726 14727 14728 14729 14730 14731 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 18518 18519 18520 18521 18522 18523 13100 13101 13102 13103 13104 13105 13094 13095 13096 13097 13098 13099 13052 13053 13054 13055 13056 13057 18512 18513 18514 18515 18516 18517 48 14756 14757 14758 14759 14760 14761 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 18524 18525 18526 18527 18528 18529 13148 13149 13150 13151 13152 13153 13142 13143 13144 13145 13146 13147 13100 13101 13102 13103 13104 13105 18518 18519 18520 18521 18522 18523 48 14786 14787 14788 14789 14790 14791 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 18530 18531 18532 18533 18534 18535 13196 13197 13198 13199 13200 13201 13190 13191 13192 13193 13194 13195 13148 13149 13150 13151 13152 13153 18524 18525 18526 18527 18528 18529 48 14816 14817 14818 14819 14820 14821 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 18536 18537 18538 18539 18540 18541 13244 13245 13246 13247 13248 13249 13238 13239 13240 13241 13242 13243 13196 13197 13198 13199 13200 13201 18530 18531 18532 18533 18534 18535 48 14846 14847 14848 14849 14850 14851 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 18542 18543 18544 18545 18546 18547 13292 13293 13294 13295 13296 13297 13286 13287 13288 13289 13290 13291 13244 13245 13246 13247 13248 13249 18536 18537 18538 18539 18540 18541 48 14876 14877 14878 14879 14880 14881 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 18548 18549 18550 18551 18552 18553 13340 13341 13342 13343 13344 13345 13334 13335 13336 13337 13338 13339 13292 13293 13294 13295 13296 13297 18542 18543 18544 18545 18546 18547 48 14906 14907 14908 14909 14910 14911 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 18554 18555 18556 18557 18558 18559 13388 13389 13390 13391 13392 13393 13382 13383 13384 13385 13386 13387 13340 13341 13342 13343 13344 13345 18548 18549 18550 18551 18552 18553 48 14936 14937 14938 14939 14940 14941 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 18560 18561 18562 18563 18564 18565 13436 13437 13438 13439 13440 13441 13430 13431 13432 13433 13434 13435 13388 13389 13390 13391 13392 13393 18554 18555 18556 18557 18558 18559 48 14966 14967 14968 14969 14970 14971 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 18566 18567 18568 18569 18570 18571 13484 13485 13486 13487 13488 13489 13478 13479 13480 13481 13482 13483 13436 13437 13438 13439 13440 13441 18560 18561 18562 18563 18564 18565 48 14996 14997 14998 14999 15000 15001 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 18572 18573 18574 18575 18576 18577 13532 13533 13534 13535 13536 13537 13526 13527 13528 13529 13530 13531 13484 13485 13486 13487 13488 13489 18566 18567 18568 18569 18570 18571 48 15026 15027 15028 15029 15030 15031 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 18578 18579 18580 18581 18582 18583 13580 13581 13582 13583 13584 13585 13574 13575 13576 13577 13578 13579 13532 13533 13534 13535 13536 13537 18572 18573 18574 18575 18576 18577 48 15056 15057 15058 15059 15060 15061 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 18584 18585 18586 18587 18588 18589 13628 13629 13630 13631 13632 13633 13622 13623 13624 13625 13626 13627 13580 13581 13582 13583 13584 13585 18578 18579 18580 18581 18582 18583 48 15086 15087 15088 15089 15090 15091 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 18590 18591 18592 18593 18594 18595 13676 13677 13678 13679 13680 13681 13670 13671 13672 13673 13674 13675 13628 13629 13630 13631 13632 13633 18584 18585 18586 18587 18588 18589 48 15116 15117 15118 15119 15120 15121 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 18596 18597 18598 18599 18600 18601 13724 13725 13726 13727 13728 13729 13718 13719 13720 13721 13722 13723 13676 13677 13678 13679 13680 13681 18590 18591 18592 18593 18594 18595 48 15146 15147 15148 15149 15150 15151 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 18602 18603 18604 18605 18606 18607 13772 13773 13774 13775 13776 13777 13766 13767 13768 13769 13770 13771 13724 13725 13726 13727 13728 13729 18596 18597 18598 18599 18600 18601 48 15176 15177 15178 15179 15180 15181 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 18608 18609 18610 18611 18612 18613 13820 13821 13822 13823 13824 13825 13814 13815 13816 13817 13818 13819 13772 13773 13774 13775 13776 13777 18602 18603 18604 18605 18606 18607 48 15206 15207 15208 15209 15210 15211 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 18614 18615 18616 18617 18618 18619 13868 13869 13870 13871 13872 13873 13862 13863 13864 13865 13866 13867 13820 13821 13822 13823 13824 13825 18608 18609 18610 18611 18612 18613 48 15236 15237 15238 15239 15240 15241 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 18620 18621 18622 18623 18624 18625 13916 13917 13918 13919 13920 13921 13910 13911 13912 13913 13914 13915 13868 13869 13870 13871 13872 13873 18614 18615 18616 18617 18618 18619 48 15266 15267 15268 15269 15270 15271 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 18626 18627 18628 18629 18630 18631 13964 13965 13966 13967 13968 13969 13958 13959 13960 13961 13962 13963 13916 13917 13918 13919 13920 13921 18620 18621 18622 18623 18624 18625 48 15296 15297 15298 15299 15300 15301 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 18632 18633 18634 18635 18636 18637 14012 14013 14014 14015 14016 14017 14006 14007 14008 14009 14010 14011 13964 13965 13966 13967 13968 13969 18626 18627 18628 18629 18630 18631 48 15326 15327 15328 15329 15330 15331 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 18638 18639 18640 18641 18642 18643 14060 14061 14062 14063 14064 14065 14054 14055 14056 14057 14058 14059 14012 14013 14014 14015 14016 14017 18632 18633 18634 18635 18636 18637 48 15356 15357 15358 15359 15360 15361 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 18644 18645 18646 18647 18648 18649 14108 14109 14110 14111 14112 14113 14102 14103 14104 14105 14106 14107 14060 14061 14062 14063 14064 14065 18638 18639 18640 18641 18642 18643 48 15386 15387 15388 15389 15390 15391 15410 15411 15412 15413 15414 15415 3203 3204 3205 3206 3207 3208 3779 3780 3781 3782 3783 3784 3017 3018 3019 3020 3021 3022 15848 15849 15850 15851 15852 15853 14108 14109 14110 14111 14112 14113 18644 18645 18646 18647 18648 18649 48 12572 12573 12574 12575 12576 12577 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 18650 18651 18652 18653 18654 18655 10910 10911 10912 10913 10914 10915 10904 10905 10906 10907 10908 10909 10898 10899 10900 10901 10902 10903 18656 18657 18658 18659 18660 18661 48 12716 12717 12718 12719 12720 12721 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 18662 18663 18664 18665 18666 18667 11030 11031 11032 11033 11034 11035 11024 11025 11026 11027 11028 11029 11018 11019 11020 11021 11022 11023 18668 18669 18670 18671 18672 18673 48 12860 12861 12862 12863 12864 12865 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 18674 18675 18676 18677 18678 18679 11150 11151 11152 11153 11154 11155 11144 11145 11146 11147 11148 11149 11138 11139 11140 11141 11142 11143 18680 18681 18682 18683 18684 18685 48 13004 13005 13006 13007 13008 13009 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 18686 18687 18688 18689 18690 18691 11270 11271 11272 11273 11274 11275 11264 11265 11266 11267 11268 11269 11258 11259 11260 11261 11262 11263 18692 18693 18694 18695 18696 18697 48 13148 13149 13150 13151 13152 13153 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 18698 18699 18700 18701 18702 18703 11390 11391 11392 11393 11394 11395 11384 11385 11386 11387 11388 11389 11378 11379 11380 11381 11382 11383 18704 18705 18706 18707 18708 18709 48 13292 13293 13294 13295 13296 13297 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 18710 18711 18712 18713 18714 18715 11510 11511 11512 11513 11514 11515 11504 11505 11506 11507 11508 11509 11498 11499 11500 11501 11502 11503 18716 18717 18718 18719 18720 18721 48 13436 13437 13438 13439 13440 13441 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 18722 18723 18724 18725 18726 18727 11630 11631 11632 11633 11634 11635 11624 11625 11626 11627 11628 11629 11618 11619 11620 11621 11622 11623 18728 18729 18730 18731 18732 18733 48 13580 13581 13582 13583 13584 13585 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 18734 18735 18736 18737 18738 18739 11750 11751 11752 11753 11754 11755 11744 11745 11746 11747 11748 11749 11738 11739 11740 11741 11742 11743 18740 18741 18742 18743 18744 18745 48 13724 13725 13726 13727 13728 13729 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 18746 18747 18748 18749 18750 18751 11870 11871 11872 11873 11874 11875 11864 11865 11866 11867 11868 11869 11858 11859 11860 11861 11862 11863 18752 18753 18754 18755 18756 18757 48 13868 13869 13870 13871 13872 13873 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 18758 18759 18760 18761 18762 18763 11990 11991 11992 11993 11994 11995 11984 11985 11986 11987 11988 11989 11978 11979 11980 11981 11982 11983 18764 18765 18766 18767 18768 18769 48 14012 14013 14014 14015 14016 14017 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 18770 18771 18772 18773 18774 18775 12110 12111 12112 12113 12114 12115 12104 12105 12106 12107 12108 12109 12098 12099 12100 12101 12102 12103 18776 18777 18778 18779 18780 18781 48 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18793 18800 18801 18802 18803 18804 18805 18794 18795 18796 18797 18798 18799 18806 18807 18808 18809 18810 18811 48 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 18812 18813 18814 18815 18816 18817 9614 9615 9616 9617 9618 9619 9608 9609 9610 9611 9612 9613 9602 9603 9604 9605 9606 9607 18818 18819 18820 18821 18822 18823 48 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18835 18842 18843 18844 18845 18846 18847 18836 18837 18838 18839 18840 18841 18848 18849 18850 18851 18852 18853 48 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18865 18872 18873 18874 18875 18876 18877 18866 18867 18868 18869 18870 18871 18878 18879 18880 18881 18882 18883 48 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18902 18903 18904 18905 18906 18907 18896 18897 18898 18899 18900 18901 18908 18909 18910 18911 18912 18913 48 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18925 18932 18933 18934 18935 18936 18937 18926 18927 18928 18929 18930 18931 18938 18939 18940 18941 18942 18943 48 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18955 18962 18963 18964 18965 18966 18967 18956 18957 18958 18959 18960 18961 18968 18969 18970 18971 18972 18973 48 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18985 18992 18993 18994 18995 18996 18997 18986 18987 18988 18989 18990 18991 18998 18999 19000 19001 19002 19003 48 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19022 19023 19024 19025 19026 19027 19016 19017 19018 19019 19020 19021 19028 19029 19030 19031 19032 19033 48 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19045 19052 19053 19054 19055 19056 19057 19046 19047 19048 19049 19050 19051 19058 19059 19060 19061 19062 19063 48 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 19064 19065 19066 19067 19068 19069 10454 10455 10456 10457 10458 10459 10448 10449 10450 10451 10452 10453 10442 10443 10444 10445 10446 10447 19070 19071 19072 19073 19074 19075 48 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18805 18788 18789 18790 18791 18792 18793 19076 19077 19078 19079 19080 19081 7856 7857 7858 7859 7860 7861 7850 7851 7852 7853 7854 7855 7844 7845 7846 7847 7848 7849 19082 19083 19084 19085 19086 19087 48 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 19088 19089 19090 19091 19092 19093 7976 7977 7978 7979 7980 7981 7970 7971 7972 7973 7974 7975 7964 7965 7966 7967 7968 7969 19094 19095 19096 19097 19098 19099 48 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18847 18830 18831 18832 18833 18834 18835 19100 19101 19102 19103 19104 19105 8096 8097 8098 8099 8100 8101 8090 8091 8092 8093 8094 8095 8084 8085 8086 8087 8088 8089 19106 19107 19108 19109 19110 19111 48 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18877 18860 18861 18862 18863 18864 18865 19112 19113 19114 19115 19116 19117 8216 8217 8218 8219 8220 8221 8210 8211 8212 8213 8214 8215 8204 8205 8206 8207 8208 8209 19118 19119 19120 19121 19122 19123 48 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18907 18890 18891 18892 18893 18894 18895 19124 19125 19126 19127 19128 19129 8336 8337 8338 8339 8340 8341 8330 8331 8332 8333 8334 8335 8324 8325 8326 8327 8328 8329 19130 19131 19132 19133 19134 19135 48 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18937 18920 18921 18922 18923 18924 18925 19136 19137 19138 19139 19140 19141 8456 8457 8458 8459 8460 8461 8450 8451 8452 8453 8454 8455 8444 8445 8446 8447 8448 8449 19142 19143 19144 19145 19146 19147 48 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18950 18951 18952 18953 18954 18955 19148 19149 19150 19151 19152 19153 8576 8577 8578 8579 8580 8581 8570 8571 8572 8573 8574 8575 8564 8565 8566 8567 8568 8569 19154 19155 19156 19157 19158 19159 48 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18980 18981 18982 18983 18984 18985 19160 19161 19162 19163 19164 19165 8696 8697 8698 8699 8700 8701 8690 8691 8692 8693 8694 8695 8684 8685 8686 8687 8688 8689 19166 19167 19168 19169 19170 19171 48 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19027 19010 19011 19012 19013 19014 19015 19172 19173 19174 19175 19176 19177 8816 8817 8818 8819 8820 8821 8810 8811 8812 8813 8814 8815 8804 8805 8806 8807 8808 8809 19178 19179 19180 19181 19182 19183 48 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19057 19040 19041 19042 19043 19044 19045 19184 19185 19186 19187 19188 19189 8936 8937 8938 8939 8940 8941 8930 8931 8932 8933 8934 8935 8924 8925 8926 8927 8928 8929 19190 19191 19192 19193 19194 19195 48 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 19196 19197 19198 19199 19200 19201 9056 9057 9058 9059 9060 9061 9050 9051 9052 9053 9054 9055 9044 9045 9046 9047 9048 9049 19202 19203 19204 19205 19206 19207 48 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 19208 19209 19210 19211 19212 19213 6188 6189 6190 6191 6192 6193 6182 6183 6184 6185 6186 6187 6176 6177 6178 6179 6180 6181 19214 19215 19216 19217 19218 19219 48 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 19220 19221 19222 19223 19224 19225 6308 6309 6310 6311 6312 6313 6302 6303 6304 6305 6306 6307 6296 6297 6298 6299 6300 6301 19226 19227 19228 19229 19230 19231 48 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 19232 19233 19234 19235 19236 19237 6428 6429 6430 6431 6432 6433 6422 6423 6424 6425 6426 6427 6416 6417 6418 6419 6420 6421 19238 19239 19240 19241 19242 19243 48 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 19244 19245 19246 19247 19248 19249 6548 6549 6550 6551 6552 6553 6542 6543 6544 6545 6546 6547 6536 6537 6538 6539 6540 6541 19250 19251 19252 19253 19254 19255 48 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 19256 19257 19258 19259 19260 19261 6668 6669 6670 6671 6672 6673 6662 6663 6664 6665 6666 6667 6656 6657 6658 6659 6660 6661 19262 19263 19264 19265 19266 19267 48 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 19268 19269 19270 19271 19272 19273 6788 6789 6790 6791 6792 6793 6782 6783 6784 6785 6786 6787 6776 6777 6778 6779 6780 6781 19274 19275 19276 19277 19278 19279 48 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 19280 19281 19282 19283 19284 19285 6908 6909 6910 6911 6912 6913 6902 6903 6904 6905 6906 6907 6896 6897 6898 6899 6900 6901 19286 19287 19288 19289 19290 19291 48 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 19292 19293 19294 19295 19296 19297 7028 7029 7030 7031 7032 7033 7022 7023 7024 7025 7026 7027 7016 7017 7018 7019 7020 7021 19298 19299 19300 19301 19302 19303 48 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 19304 19305 19306 19307 19308 19309 7148 7149 7150 7151 7152 7153 7142 7143 7144 7145 7146 7147 7136 7137 7138 7139 7140 7141 19310 19311 19312 19313 19314 19315 48 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 19316 19317 19318 19319 19320 19321 7268 7269 7270 7271 7272 7273 7262 7263 7264 7265 7266 7267 7256 7257 7258 7259 7260 7261 19322 19323 19324 19325 19326 19327 48 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 19328 19329 19330 19331 19332 19333 7388 7389 7390 7391 7392 7393 7382 7383 7384 7385 7386 7387 7376 7377 7378 7379 7380 7381 19334 19335 19336 19337 19338 19339 48 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 17138 17139 17140 17141 17142 17143 12212 12213 12214 12215 12216 12217 12224 12225 12226 12227 12228 12229 12188 12189 12190 12191 12192 12193 18398 18399 18400 18401 18402 18403 36 12242 12243 12244 12245 12246 12247 12212 12213 12214 12215 12216 12217 14168 14169 14170 14171 14172 14173 12254 12255 12256 12257 12258 12259 17138 17139 17140 17141 17142 17143 15872 15873 15874 15875 15876 15877 48 12188 12189 12190 12191 12192 12193 12224 12225 12226 12227 12228 12229 12212 12213 12214 12215 12216 12217 17390 17391 17392 17393 17394 17395 10544 10545 10546 10547 10548 10549 10784 10785 10786 10787 10788 10789 10778 10779 10780 10781 10782 10783 19340 19341 19342 19343 19344 19345 48 12212 12213 12214 12215 12216 12217 12254 12255 12256 12257 12258 12259 12242 12243 12244 12245 12246 12247 16124 16125 16126 16127 16128 16129 10574 10575 10576 10577 10578 10579 10586 10587 10588 10589 10590 10591 10544 10545 10546 10547 10548 10549 17390 17391 17392 17393 17394 17395 48 10544 10545 10546 10547 10548 10549 10586 10587 10588 10589 10590 10591 10574 10575 10576 10577 10578 10579 16376 16377 16378 16379 16380 16381 9164 9165 9166 9167 9168 9169 9158 9159 9160 9161 9162 9163 9152 9153 9154 9155 9156 9157 17642 17643 17644 17645 17646 17647 48 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 16628 16629 16630 16631 16632 16633 7496 7497 7498 7499 7500 7501 7490 7491 7492 7493 7494 7495 7484 7485 7486 7487 7488 7489 17894 17895 17896 17897 17898 17899 48 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7484 7485 7486 7487 7488 7489 18146 18147 18148 18149 18150 18151 5816 5817 5818 5819 5820 5821 6062 6063 6064 6065 6066 6067 6056 6057 6058 6059 6060 6061 19346 19347 19348 19349 19350 19351 48 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 16880 16881 16882 16883 16884 16885 5828 5829 5830 5831 5832 5833 5822 5823 5824 5825 5826 5827 5816 5817 5818 5819 5820 5821 18146 18147 18148 18149 18150 18151 48 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 17144 17145 17146 17147 17148 17149 637 638 639 640 641 642 12206 12207 12208 12209 12210 12211 12200 12201 12202 12203 12204 12205 18404 18405 18406 18407 18408 18409 36 12236 12237 12238 12239 12240 12241 637 638 639 640 641 642 14198 14199 14200 14201 14202 14203 12230 12231 12232 12233 12234 12235 17144 17145 17146 17147 17148 17149 15878 15879 15880 15881 15882 15883 48 637 638 639 640 641 642 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 16130 16131 16132 16133 16134 16135 10568 10569 10570 10571 10572 10573 10562 10563 10564 10565 10566 10567 10556 10557 10558 10559 10560 10561 17396 17397 17398 17399 17400 17401 48 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 16382 16383 16384 16385 16386 16387 9194 9195 9196 9197 9198 9199 9188 9189 9190 9191 9192 9193 9182 9183 9184 9185 9186 9187 17648 17649 17650 17651 17652 17653 48 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 16634 16635 16636 16637 16638 16639 7526 7527 7528 7529 7530 7531 7520 7521 7522 7523 7524 7525 7514 7515 7516 7517 7518 7519 17900 17901 17902 17903 17904 17905 48 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 16886 16887 16888 16889 16890 16891 5858 5859 5860 5861 5862 5863 5852 5853 5854 5855 5856 5857 5846 5847 5848 5849 5850 5851 18152 18153 18154 18155 18156 18157 48 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 17150 17151 17152 17153 17154 17155 649 650 651 652 653 654 12272 12273 12274 12275 12276 12277 12266 12267 12268 12269 12270 12271 18410 18411 18412 18413 18414 18415 36 12290 12291 12292 12293 12294 12295 649 650 651 652 653 654 14228 14229 14230 14231 14232 14233 12284 12285 12286 12287 12288 12289 17150 17151 17152 17153 17154 17155 15884 15885 15886 15887 15888 15889 48 649 650 651 652 653 654 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 16136 16137 16138 16139 16140 16141 10640 10641 10642 10643 10644 10645 10634 10635 10636 10637 10638 10639 10592 10593 10594 10595 10596 10597 17402 17403 17404 17405 17406 17407 48 10592 10593 10594 10595 10596 10597 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 16388 16389 16390 16391 16392 16393 9254 9255 9256 9257 9258 9259 9248 9249 9250 9251 9252 9253 9206 9207 9208 9209 9210 9211 17654 17655 17656 17657 17658 17659 48 9206 9207 9208 9209 9210 9211 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 16640 16641 16642 16643 16644 16645 7586 7587 7588 7589 7590 7591 7580 7581 7582 7583 7584 7585 7538 7539 7540 7541 7542 7543 17906 17907 17908 17909 17910 17911 48 7538 7539 7540 7541 7542 7543 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 16892 16893 16894 16895 16896 16897 5918 5919 5920 5921 5922 5923 5912 5913 5914 5915 5916 5917 5870 5871 5872 5873 5874 5875 18158 18159 18160 18161 18162 18163 48 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 17156 17157 17158 17159 17160 17161 661 662 663 664 665 666 12314 12315 12316 12317 12318 12319 12308 12309 12310 12311 12312 12313 18416 18417 18418 18419 18420 18421 36 12332 12333 12334 12335 12336 12337 661 662 663 664 665 666 14258 14259 14260 14261 14262 14263 12326 12327 12328 12329 12330 12331 17156 17157 17158 17159 17160 17161 15890 15891 15892 15893 15894 15895 48 661 662 663 664 665 666 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 16142 16143 16144 16145 16146 16147 10658 10659 10660 10661 10662 10663 10652 10653 10654 10655 10656 10657 10604 10605 10606 10607 10608 10609 17408 17409 17410 17411 17412 17413 48 10604 10605 10606 10607 10608 10609 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 16394 16395 16396 16397 16398 16399 9272 9273 9274 9275 9276 9277 9266 9267 9268 9269 9270 9271 9218 9219 9220 9221 9222 9223 17660 17661 17662 17663 17664 17665 48 9218 9219 9220 9221 9222 9223 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 16646 16647 16648 16649 16650 16651 7604 7605 7606 7607 7608 7609 7598 7599 7600 7601 7602 7603 7550 7551 7552 7553 7554 7555 17912 17913 17914 17915 17916 17917 48 7550 7551 7552 7553 7554 7555 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 16898 16899 16900 16901 16902 16903 5936 5937 5938 5939 5940 5941 5930 5931 5932 5933 5934 5935 5882 5883 5884 5885 5886 5887 18164 18165 18166 18167 18168 18169 48 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 17162 17163 17164 17165 17166 17167 673 674 675 676 677 678 12356 12357 12358 12359 12360 12361 12350 12351 12352 12353 12354 12355 18422 18423 18424 18425 18426 18427 36 12374 12375 12376 12377 12378 12379 673 674 675 676 677 678 14288 14289 14290 14291 14292 14293 12368 12369 12370 12371 12372 12373 17162 17163 17164 17165 17166 17167 15896 15897 15898 15899 15900 15901 48 673 674 675 676 677 678 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 16148 16149 16150 16151 16152 16153 10700 10701 10702 10703 10704 10705 10694 10695 10696 10697 10698 10699 10688 10689 10690 10691 10692 10693 17414 17415 17416 17417 17418 17419 48 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 16400 16401 16402 16403 16404 16405 9314 9315 9316 9317 9318 9319 9308 9309 9310 9311 9312 9313 9302 9303 9304 9305 9306 9307 17666 17667 17668 17669 17670 17671 48 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 16652 16653 16654 16655 16656 16657 7646 7647 7648 7649 7650 7651 7640 7641 7642 7643 7644 7645 7634 7635 7636 7637 7638 7639 17918 17919 17920 17921 17922 17923 48 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 16904 16905 16906 16907 16908 16909 5978 5979 5980 5981 5982 5983 5972 5973 5974 5975 5976 5977 5966 5967 5968 5969 5970 5971 18170 18171 18172 18173 18174 18175 48 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 17168 17169 17170 17171 17172 17173 685 686 687 688 689 690 12398 12399 12400 12401 12402 12403 12392 12393 12394 12395 12396 12397 18428 18429 18430 18431 18432 18433 36 12416 12417 12418 12419 12420 12421 685 686 687 688 689 690 14318 14319 14320 14321 14322 14323 12410 12411 12412 12413 12414 12415 17168 17169 17170 17171 17172 17173 15902 15903 15904 15905 15906 15907 48 685 686 687 688 689 690 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 16154 16155 16156 16157 16158 16159 10730 10731 10732 10733 10734 10735 10724 10725 10726 10727 10728 10729 10718 10719 10720 10721 10722 10723 17420 17421 17422 17423 17424 17425 48 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 16406 16407 16408 16409 16410 16411 9344 9345 9346 9347 9348 9349 9338 9339 9340 9341 9342 9343 9332 9333 9334 9335 9336 9337 17672 17673 17674 17675 17676 17677 48 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 16658 16659 16660 16661 16662 16663 7676 7677 7678 7679 7680 7681 7670 7671 7672 7673 7674 7675 7664 7665 7666 7667 7668 7669 17924 17925 17926 17927 17928 17929 48 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 16910 16911 16912 16913 16914 16915 6008 6009 6010 6011 6012 6013 6002 6003 6004 6005 6006 6007 5996 5997 5998 5999 6000 6001 18176 18177 18178 18179 18180 18181 48 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 17174 17175 17176 17177 17178 17179 697 698 699 700 701 702 12440 12441 12442 12443 12444 12445 12434 12435 12436 12437 12438 12439 18434 18435 18436 18437 18438 18439 36 12458 12459 12460 12461 12462 12463 697 698 699 700 701 702 14348 14349 14350 14351 14352 14353 12452 12453 12454 12455 12456 12457 17174 17175 17176 17177 17178 17179 15908 15909 15910 15911 15912 15913 48 697 698 699 700 701 702 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 16160 16161 16162 16163 16164 16165 10766 10767 10768 10769 10770 10771 10760 10761 10762 10763 10764 10765 10754 10755 10756 10757 10758 10759 17426 17427 17428 17429 17430 17431 48 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 16412 16413 16414 16415 16416 16417 9380 9381 9382 9383 9384 9385 9374 9375 9376 9377 9378 9379 9368 9369 9370 9371 9372 9373 17678 17679 17680 17681 17682 17683 48 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 16664 16665 16666 16667 16668 16669 7712 7713 7714 7715 7716 7717 7706 7707 7708 7709 7710 7711 7700 7701 7702 7703 7704 7705 17930 17931 17932 17933 17934 17935 48 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 16916 16917 16918 16919 16920 16921 6044 6045 6046 6047 6048 6049 6038 6039 6040 6041 6042 6043 6032 6033 6034 6035 6036 6037 18182 18183 18184 18185 18186 18187 48 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 17180 17181 17182 17183 17184 17185 12488 12489 12490 12491 12492 12493 12482 12483 12484 12485 12486 12487 12476 12477 12478 12479 12480 12481 18440 18441 18442 18443 18444 18445 36 12506 12507 12508 12509 12510 12511 12488 12489 12490 12491 12492 12493 14378 14379 14380 14381 14382 14383 12500 12501 12502 12503 12504 12505 17180 17181 17182 17183 17184 17185 15914 15915 15916 15917 15918 15919 48 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 17432 17433 17434 17435 17436 17437 10814 10815 10816 10817 10818 10819 19358 19359 19360 19361 19362 19363 19352 19353 19354 19355 19356 19357 19364 19365 19366 19367 19368 19369 48 12488 12489 12490 12491 12492 12493 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 16166 16167 16168 16169 16170 16171 10826 10827 10828 10829 10830 10831 10820 10821 10822 10823 10824 10825 10814 10815 10816 10817 10818 10819 17432 17433 17434 17435 17436 17437 48 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 16418 16419 16420 16421 16422 16423 9440 9441 9442 9443 9444 9445 9434 9435 9436 9437 9438 9439 9428 9429 9430 9431 9432 9433 17684 17685 17686 17687 17688 17689 48 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 16670 16671 16672 16673 16674 16675 7772 7773 7774 7775 7776 7777 7766 7767 7768 7769 7770 7771 7760 7761 7762 7763 7764 7765 17936 17937 17938 17939 17940 17941 48 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 7760 7761 7762 7763 7764 7765 18188 18189 18190 18191 18192 18193 6092 6093 6094 6095 6096 6097 19388 19389 19390 19391 19392 19393 19382 19383 19384 19385 19386 19387 19394 19395 19396 19397 19398 19399 48 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 16922 16923 16924 16925 16926 16927 6104 6105 6106 6107 6108 6109 6098 6099 6100 6101 6102 6103 6092 6093 6094 6095 6096 6097 18188 18189 18190 18191 18192 18193 48 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 17186 17187 17188 17189 17190 17191 12536 12537 12538 12539 12540 12541 12530 12531 12532 12533 12534 12535 12524 12525 12526 12527 12528 12529 18446 18447 18448 18449 18450 18451 36 12554 12555 12556 12557 12558 12559 12536 12537 12538 12539 12540 12541 14408 14409 14410 14411 14412 14413 12548 12549 12550 12551 12552 12553 17186 17187 17188 17189 17190 17191 15920 15921 15922 15923 15924 15925 48 12536 12537 12538 12539 12540 12541 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 16172 16173 16174 16175 16176 16177 10856 10857 10858 10859 10860 10861 10850 10851 10852 10853 10854 10855 10844 10845 10846 10847 10848 10849 17438 17439 17440 17441 17442 17443 48 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 16424 16425 16426 16427 16428 16429 9470 9471 9472 9473 9474 9475 9464 9465 9466 9467 9468 9469 9458 9459 9460 9461 9462 9463 17690 17691 17692 17693 17694 17695 48 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 16676 16677 16678 16679 16680 16681 7802 7803 7804 7805 7806 7807 7796 7797 7798 7799 7800 7801 7790 7791 7792 7793 7794 7795 17942 17943 17944 17945 17946 17947 48 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 16928 16929 16930 16931 16932 16933 6134 6135 6136 6137 6138 6139 6128 6129 6130 6131 6132 6133 6122 6123 6124 6125 6126 6127 18194 18195 18196 18197 18198 18199 48 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 17192 17193 17194 17195 17196 17197 12584 12585 12586 12587 12588 12589 12578 12579 12580 12581 12582 12583 12572 12573 12574 12575 12576 12577 18452 18453 18454 18455 18456 18457 36 12602 12603 12604 12605 12606 12607 12584 12585 12586 12587 12588 12589 14438 14439 14440 14441 14442 14443 12596 12597 12598 12599 12600 12601 17192 17193 17194 17195 17196 17197 15926 15927 15928 15929 15930 15931 48 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 17444 17445 17446 17447 17448 17449 10874 10875 10876 10877 10878 10879 10934 10935 10936 10937 10938 10939 10898 10899 10900 10901 10902 10903 18656 18657 18658 18659 18660 18661 48 12584 12585 12586 12587 12588 12589 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 16178 16179 16180 16181 16182 16183 10886 10887 10888 10889 10890 10891 10880 10881 10882 10883 10884 10885 10874 10875 10876 10877 10878 10879 17444 17445 17446 17447 17448 17449 48 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 16430 16431 16432 16433 16434 16435 9500 9501 9502 9503 9504 9505 9494 9495 9496 9497 9498 9499 9488 9489 9490 9491 9492 9493 17696 17697 17698 17699 17700 17701 48 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 16682 16683 16684 16685 16686 16687 7832 7833 7834 7835 7836 7837 7826 7827 7828 7829 7830 7831 7820 7821 7822 7823 7824 7825 17948 17949 17950 17951 17952 17953 48 7844 7845 7846 7847 7848 7849 7880 7881 7882 7883 7884 7885 7820 7821 7822 7823 7824 7825 18200 18201 18202 18203 18204 18205 6152 6153 6154 6155 6156 6157 6212 6213 6214 6215 6216 6217 6176 6177 6178 6179 6180 6181 19214 19215 19216 19217 19218 19219 48 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 16934 16935 16936 16937 16938 16939 6164 6165 6166 6167 6168 6169 6158 6159 6160 6161 6162 6163 6152 6153 6154 6155 6156 6157 18200 18201 18202 18203 18204 18205 48 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 17198 17199 17200 17201 17202 17203 12632 12633 12634 12635 12636 12637 12626 12627 12628 12629 12630 12631 12620 12621 12622 12623 12624 12625 18458 18459 18460 18461 18462 18463 36 12650 12651 12652 12653 12654 12655 12632 12633 12634 12635 12636 12637 14468 14469 14470 14471 14472 14473 12644 12645 12646 12647 12648 12649 17198 17199 17200 17201 17202 17203 15932 15933 15934 15935 15936 15937 48 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 17450 17451 17452 17453 17454 17455 10922 10923 10924 10925 10926 10927 10916 10917 10918 10919 10920 10921 10910 10911 10912 10913 10914 10915 18650 18651 18652 18653 18654 18655 48 12632 12633 12634 12635 12636 12637 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 16184 16185 16186 16187 16188 16189 10946 10947 10948 10949 10950 10951 10940 10941 10942 10943 10944 10945 10922 10923 10924 10925 10926 10927 17450 17451 17452 17453 17454 17455 48 10922 10923 10924 10925 10926 10927 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 16436 16437 16438 16439 16440 16441 9530 9531 9532 9533 9534 9535 9524 9525 9526 9527 9528 9529 9518 9519 9520 9521 9522 9523 17702 17703 17704 17705 17706 17707 48 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 16688 16689 16690 16691 16692 16693 7892 7893 7894 7895 7896 7897 7886 7887 7888 7889 7890 7891 7868 7869 7870 7871 7872 7873 17954 17955 17956 17957 17958 17959 48 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 18206 18207 18208 18209 18210 18211 6200 6201 6202 6203 6204 6205 6194 6195 6196 6197 6198 6199 6188 6189 6190 6191 6192 6193 19208 19209 19210 19211 19212 19213 48 7868 7869 7870 7871 7872 7873 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 16940 16941 16942 16943 16944 16945 6224 6225 6226 6227 6228 6229 6218 6219 6220 6221 6222 6223 6200 6201 6202 6203 6204 6205 18206 18207 18208 18209 18210 18211 48 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 17204 17205 17206 17207 17208 17209 12680 12681 12682 12683 12684 12685 12674 12675 12676 12677 12678 12679 12668 12669 12670 12671 12672 12673 18464 18465 18466 18467 18468 18469 36 12698 12699 12700 12701 12702 12703 12680 12681 12682 12683 12684 12685 14498 14499 14500 14501 14502 14503 12692 12693 12694 12695 12696 12697 17204 17205 17206 17207 17208 17209 15938 15939 15940 15941 15942 15943 48 12680 12681 12682 12683 12684 12685 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 16190 16191 16192 16193 16194 16195 10976 10977 10978 10979 10980 10981 10970 10971 10972 10973 10974 10975 10964 10965 10966 10967 10968 10969 17456 17457 17458 17459 17460 17461 48 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 16442 16443 16444 16445 16446 16447 9560 9561 9562 9563 9564 9565 9554 9555 9556 9557 9558 9559 9548 9549 9550 9551 9552 9553 17708 17709 17710 17711 17712 17713 48 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 16694 16695 16696 16697 16698 16699 7922 7923 7924 7925 7926 7927 7916 7917 7918 7919 7920 7921 7910 7911 7912 7913 7914 7915 17960 17961 17962 17963 17964 17965 48 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 16946 16947 16948 16949 16950 16951 6254 6255 6256 6257 6258 6259 6248 6249 6250 6251 6252 6253 6242 6243 6244 6245 6246 6247 18212 18213 18214 18215 18216 18217 48 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 17210 17211 17212 17213 17214 17215 12728 12729 12730 12731 12732 12733 12722 12723 12724 12725 12726 12727 12716 12717 12718 12719 12720 12721 18470 18471 18472 18473 18474 18475 36 12746 12747 12748 12749 12750 12751 12728 12729 12730 12731 12732 12733 14528 14529 14530 14531 14532 14533 12740 12741 12742 12743 12744 12745 17210 17211 17212 17213 17214 17215 15944 15945 15946 15947 15948 15949 48 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 17462 17463 17464 17465 17466 17467 10994 10995 10996 10997 10998 10999 11054 11055 11056 11057 11058 11059 11018 11019 11020 11021 11022 11023 18668 18669 18670 18671 18672 18673 48 12728 12729 12730 12731 12732 12733 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 16196 16197 16198 16199 16200 16201 11006 11007 11008 11009 11010 11011 11000 11001 11002 11003 11004 11005 10994 10995 10996 10997 10998 10999 17462 17463 17464 17465 17466 17467 48 11018 11019 11020 11021 11022 11023 11054 11055 11056 11057 11058 11059 10994 10995 10996 10997 10998 10999 17714 17715 17716 17717 17718 17719 9578 9579 9580 9581 9582 9583 9638 9639 9640 9641 9642 9643 9602 9603 9604 9605 9606 9607 18818 18819 18820 18821 18822 18823 48 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 16448 16449 16450 16451 16452 16453 9590 9591 9592 9593 9594 9595 9584 9585 9586 9587 9588 9589 9578 9579 9580 9581 9582 9583 17714 17715 17716 17717 17718 17719 48 9602 9603 9604 9605 9606 9607 9638 9639 9640 9641 9642 9643 9578 9579 9580 9581 9582 9583 17966 17967 17968 17969 17970 17971 7940 7941 7942 7943 7944 7945 8000 8001 8002 8003 8004 8005 7964 7965 7966 7967 7968 7969 19094 19095 19096 19097 19098 19099 48 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 16700 16701 16702 16703 16704 16705 7952 7953 7954 7955 7956 7957 7946 7947 7948 7949 7950 7951 7940 7941 7942 7943 7944 7945 17966 17967 17968 17969 17970 17971 48 7964 7965 7966 7967 7968 7969 8000 8001 8002 8003 8004 8005 7940 7941 7942 7943 7944 7945 18218 18219 18220 18221 18222 18223 6272 6273 6274 6275 6276 6277 6332 6333 6334 6335 6336 6337 6296 6297 6298 6299 6300 6301 19226 19227 19228 19229 19230 19231 48 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 16952 16953 16954 16955 16956 16957 6284 6285 6286 6287 6288 6289 6278 6279 6280 6281 6282 6283 6272 6273 6274 6275 6276 6277 18218 18219 18220 18221 18222 18223 48 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 17216 17217 17218 17219 17220 17221 12776 12777 12778 12779 12780 12781 12770 12771 12772 12773 12774 12775 12764 12765 12766 12767 12768 12769 18476 18477 18478 18479 18480 18481 36 12794 12795 12796 12797 12798 12799 12776 12777 12778 12779 12780 12781 14558 14559 14560 14561 14562 14563 12788 12789 12790 12791 12792 12793 17216 17217 17218 17219 17220 17221 15950 15951 15952 15953 15954 15955 48 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 17468 17469 17470 17471 17472 17473 11042 11043 11044 11045 11046 11047 11036 11037 11038 11039 11040 11041 11030 11031 11032 11033 11034 11035 18662 18663 18664 18665 18666 18667 48 12776 12777 12778 12779 12780 12781 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 16202 16203 16204 16205 16206 16207 11066 11067 11068 11069 11070 11071 11060 11061 11062 11063 11064 11065 11042 11043 11044 11045 11046 11047 17468 17469 17470 17471 17472 17473 48 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 17720 17721 17722 17723 17724 17725 9626 9627 9628 9629 9630 9631 9620 9621 9622 9623 9624 9625 9614 9615 9616 9617 9618 9619 18812 18813 18814 18815 18816 18817 48 11042 11043 11044 11045 11046 11047 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 16454 16455 16456 16457 16458 16459 9650 9651 9652 9653 9654 9655 9644 9645 9646 9647 9648 9649 9626 9627 9628 9629 9630 9631 17720 17721 17722 17723 17724 17725 48 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 17972 17973 17974 17975 17976 17977 7988 7989 7990 7991 7992 7993 7982 7983 7984 7985 7986 7987 7976 7977 7978 7979 7980 7981 19088 19089 19090 19091 19092 19093 48 9626 9627 9628 9629 9630 9631 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 16706 16707 16708 16709 16710 16711 8012 8013 8014 8015 8016 8017 8006 8007 8008 8009 8010 8011 7988 7989 7990 7991 7992 7993 17972 17973 17974 17975 17976 17977 48 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 18224 18225 18226 18227 18228 18229 6320 6321 6322 6323 6324 6325 6314 6315 6316 6317 6318 6319 6308 6309 6310 6311 6312 6313 19220 19221 19222 19223 19224 19225 48 7988 7989 7990 7991 7992 7993 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 16958 16959 16960 16961 16962 16963 6344 6345 6346 6347 6348 6349 6338 6339 6340 6341 6342 6343 6320 6321 6322 6323 6324 6325 18224 18225 18226 18227 18228 18229 48 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 17222 17223 17224 17225 17226 17227 12824 12825 12826 12827 12828 12829 12818 12819 12820 12821 12822 12823 12812 12813 12814 12815 12816 12817 18482 18483 18484 18485 18486 18487 36 12842 12843 12844 12845 12846 12847 12824 12825 12826 12827 12828 12829 14588 14589 14590 14591 14592 14593 12836 12837 12838 12839 12840 12841 17222 17223 17224 17225 17226 17227 15956 15957 15958 15959 15960 15961 48 12824 12825 12826 12827 12828 12829 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 16208 16209 16210 16211 16212 16213 11096 11097 11098 11099 11100 11101 11090 11091 11092 11093 11094 11095 11084 11085 11086 11087 11088 11089 17474 17475 17476 17477 17478 17479 48 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 16460 16461 16462 16463 16464 16465 9680 9681 9682 9683 9684 9685 9674 9675 9676 9677 9678 9679 9668 9669 9670 9671 9672 9673 17726 17727 17728 17729 17730 17731 48 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 16712 16713 16714 16715 16716 16717 8042 8043 8044 8045 8046 8047 8036 8037 8038 8039 8040 8041 8030 8031 8032 8033 8034 8035 17978 17979 17980 17981 17982 17983 48 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 16964 16965 16966 16967 16968 16969 6374 6375 6376 6377 6378 6379 6368 6369 6370 6371 6372 6373 6362 6363 6364 6365 6366 6367 18230 18231 18232 18233 18234 18235 48 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 17228 17229 17230 17231 17232 17233 12872 12873 12874 12875 12876 12877 12866 12867 12868 12869 12870 12871 12860 12861 12862 12863 12864 12865 18488 18489 18490 18491 18492 18493 36 12890 12891 12892 12893 12894 12895 12872 12873 12874 12875 12876 12877 14618 14619 14620 14621 14622 14623 12884 12885 12886 12887 12888 12889 17228 17229 17230 17231 17232 17233 15962 15963 15964 15965 15966 15967 48 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 17480 17481 17482 17483 17484 17485 11114 11115 11116 11117 11118 11119 11174 11175 11176 11177 11178 11179 11138 11139 11140 11141 11142 11143 18680 18681 18682 18683 18684 18685 48 12872 12873 12874 12875 12876 12877 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 16214 16215 16216 16217 16218 16219 11126 11127 11128 11129 11130 11131 11120 11121 11122 11123 11124 11125 11114 11115 11116 11117 11118 11119 17480 17481 17482 17483 17484 17485 48 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 16466 16467 16468 16469 16470 16471 9710 9711 9712 9713 9714 9715 9704 9705 9706 9707 9708 9709 9698 9699 9700 9701 9702 9703 17732 17733 17734 17735 17736 17737 48 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 16718 16719 16720 16721 16722 16723 8072 8073 8074 8075 8076 8077 8066 8067 8068 8069 8070 8071 8060 8061 8062 8063 8064 8065 17984 17985 17986 17987 17988 17989 48 8084 8085 8086 8087 8088 8089 8120 8121 8122 8123 8124 8125 8060 8061 8062 8063 8064 8065 18236 18237 18238 18239 18240 18241 6392 6393 6394 6395 6396 6397 6452 6453 6454 6455 6456 6457 6416 6417 6418 6419 6420 6421 19238 19239 19240 19241 19242 19243 48 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 16970 16971 16972 16973 16974 16975 6404 6405 6406 6407 6408 6409 6398 6399 6400 6401 6402 6403 6392 6393 6394 6395 6396 6397 18236 18237 18238 18239 18240 18241 48 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 17234 17235 17236 17237 17238 17239 12920 12921 12922 12923 12924 12925 12914 12915 12916 12917 12918 12919 12908 12909 12910 12911 12912 12913 18494 18495 18496 18497 18498 18499 36 12938 12939 12940 12941 12942 12943 12920 12921 12922 12923 12924 12925 14648 14649 14650 14651 14652 14653 12932 12933 12934 12935 12936 12937 17234 17235 17236 17237 17238 17239 15968 15969 15970 15971 15972 15973 48 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 17486 17487 17488 17489 17490 17491 11162 11163 11164 11165 11166 11167 11156 11157 11158 11159 11160 11161 11150 11151 11152 11153 11154 11155 18674 18675 18676 18677 18678 18679 48 12920 12921 12922 12923 12924 12925 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 16220 16221 16222 16223 16224 16225 11186 11187 11188 11189 11190 11191 11180 11181 11182 11183 11184 11185 11162 11163 11164 11165 11166 11167 17486 17487 17488 17489 17490 17491 48 11162 11163 11164 11165 11166 11167 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 16472 16473 16474 16475 16476 16477 9740 9741 9742 9743 9744 9745 9734 9735 9736 9737 9738 9739 9728 9729 9730 9731 9732 9733 17738 17739 17740 17741 17742 17743 48 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 16724 16725 16726 16727 16728 16729 8132 8133 8134 8135 8136 8137 8126 8127 8128 8129 8130 8131 8108 8109 8110 8111 8112 8113 17990 17991 17992 17993 17994 17995 48 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 18242 18243 18244 18245 18246 18247 6440 6441 6442 6443 6444 6445 6434 6435 6436 6437 6438 6439 6428 6429 6430 6431 6432 6433 19232 19233 19234 19235 19236 19237 48 8108 8109 8110 8111 8112 8113 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 16976 16977 16978 16979 16980 16981 6464 6465 6466 6467 6468 6469 6458 6459 6460 6461 6462 6463 6440 6441 6442 6443 6444 6445 18242 18243 18244 18245 18246 18247 48 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 17240 17241 17242 17243 17244 17245 12968 12969 12970 12971 12972 12973 12962 12963 12964 12965 12966 12967 12956 12957 12958 12959 12960 12961 18500 18501 18502 18503 18504 18505 36 12986 12987 12988 12989 12990 12991 12968 12969 12970 12971 12972 12973 14678 14679 14680 14681 14682 14683 12980 12981 12982 12983 12984 12985 17240 17241 17242 17243 17244 17245 15974 15975 15976 15977 15978 15979 48 12968 12969 12970 12971 12972 12973 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 16226 16227 16228 16229 16230 16231 11216 11217 11218 11219 11220 11221 11210 11211 11212 11213 11214 11215 11204 11205 11206 11207 11208 11209 17492 17493 17494 17495 17496 17497 48 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 16478 16479 16480 16481 16482 16483 9770 9771 9772 9773 9774 9775 9764 9765 9766 9767 9768 9769 9758 9759 9760 9761 9762 9763 17744 17745 17746 17747 17748 17749 48 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 16730 16731 16732 16733 16734 16735 8162 8163 8164 8165 8166 8167 8156 8157 8158 8159 8160 8161 8150 8151 8152 8153 8154 8155 17996 17997 17998 17999 18000 18001 48 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 16982 16983 16984 16985 16986 16987 6494 6495 6496 6497 6498 6499 6488 6489 6490 6491 6492 6493 6482 6483 6484 6485 6486 6487 18248 18249 18250 18251 18252 18253 48 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 17246 17247 17248 17249 17250 17251 13016 13017 13018 13019 13020 13021 13010 13011 13012 13013 13014 13015 13004 13005 13006 13007 13008 13009 18506 18507 18508 18509 18510 18511 36 13034 13035 13036 13037 13038 13039 13016 13017 13018 13019 13020 13021 14708 14709 14710 14711 14712 14713 13028 13029 13030 13031 13032 13033 17246 17247 17248 17249 17250 17251 15980 15981 15982 15983 15984 15985 48 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 17498 17499 17500 17501 17502 17503 11234 11235 11236 11237 11238 11239 11294 11295 11296 11297 11298 11299 11258 11259 11260 11261 11262 11263 18692 18693 18694 18695 18696 18697 48 13016 13017 13018 13019 13020 13021 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 16232 16233 16234 16235 16236 16237 11246 11247 11248 11249 11250 11251 11240 11241 11242 11243 11244 11245 11234 11235 11236 11237 11238 11239 17498 17499 17500 17501 17502 17503 48 11258 11259 11260 11261 11262 11263 11294 11295 11296 11297 11298 11299 11234 11235 11236 11237 11238 11239 17750 17751 17752 17753 17754 17755 9788 9789 9790 9791 9792 9793 19400 19401 19402 19403 19404 19405 18866 18867 18868 18869 18870 18871 18878 18879 18880 18881 18882 18883 48 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 16484 16485 16486 16487 16488 16489 9800 9801 9802 9803 9804 9805 9794 9795 9796 9797 9798 9799 9788 9789 9790 9791 9792 9793 17750 17751 17752 17753 17754 17755 48 18866 18867 18868 18869 18870 18871 19400 19401 19402 19403 19404 19405 9788 9789 9790 9791 9792 9793 18002 18003 18004 18005 18006 18007 8180 8181 8182 8183 8184 8185 8240 8241 8242 8243 8244 8245 8204 8205 8206 8207 8208 8209 19118 19119 19120 19121 19122 19123 48 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 16736 16737 16738 16739 16740 16741 8192 8193 8194 8195 8196 8197 8186 8187 8188 8189 8190 8191 8180 8181 8182 8183 8184 8185 18002 18003 18004 18005 18006 18007 48 8204 8205 8206 8207 8208 8209 8240 8241 8242 8243 8244 8245 8180 8181 8182 8183 8184 8185 18254 18255 18256 18257 18258 18259 6512 6513 6514 6515 6516 6517 6572 6573 6574 6575 6576 6577 6536 6537 6538 6539 6540 6541 19250 19251 19252 19253 19254 19255 48 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 16988 16989 16990 16991 16992 16993 6524 6525 6526 6527 6528 6529 6518 6519 6520 6521 6522 6523 6512 6513 6514 6515 6516 6517 18254 18255 18256 18257 18258 18259 48 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 17252 17253 17254 17255 17256 17257 13064 13065 13066 13067 13068 13069 13058 13059 13060 13061 13062 13063 13052 13053 13054 13055 13056 13057 18512 18513 18514 18515 18516 18517 36 13082 13083 13084 13085 13086 13087 13064 13065 13066 13067 13068 13069 14738 14739 14740 14741 14742 14743 13076 13077 13078 13079 13080 13081 17252 17253 17254 17255 17256 17257 15986 15987 15988 15989 15990 15991 48 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 17504 17505 17506 17507 17508 17509 11282 11283 11284 11285 11286 11287 11276 11277 11278 11279 11280 11281 11270 11271 11272 11273 11274 11275 18686 18687 18688 18689 18690 18691 48 13064 13065 13066 13067 13068 13069 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 16238 16239 16240 16241 16242 16243 11306 11307 11308 11309 11310 11311 11300 11301 11302 11303 11304 11305 11282 11283 11284 11285 11286 11287 17504 17505 17506 17507 17508 17509 48 11282 11283 11284 11285 11286 11287 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 16490 16491 16492 16493 16494 16495 9830 9831 9832 9833 9834 9835 9824 9825 9826 9827 9828 9829 9818 9819 9820 9821 9822 9823 17756 17757 17758 17759 17760 17761 48 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 16742 16743 16744 16745 16746 16747 8252 8253 8254 8255 8256 8257 8246 8247 8248 8249 8250 8251 8228 8229 8230 8231 8232 8233 18008 18009 18010 18011 18012 18013 48 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 18260 18261 18262 18263 18264 18265 6560 6561 6562 6563 6564 6565 6554 6555 6556 6557 6558 6559 6548 6549 6550 6551 6552 6553 19244 19245 19246 19247 19248 19249 48 8228 8229 8230 8231 8232 8233 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 16994 16995 16996 16997 16998 16999 6584 6585 6586 6587 6588 6589 6578 6579 6580 6581 6582 6583 6560 6561 6562 6563 6564 6565 18260 18261 18262 18263 18264 18265 48 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 17258 17259 17260 17261 17262 17263 13112 13113 13114 13115 13116 13117 13106 13107 13108 13109 13110 13111 13100 13101 13102 13103 13104 13105 18518 18519 18520 18521 18522 18523 36 13130 13131 13132 13133 13134 13135 13112 13113 13114 13115 13116 13117 14768 14769 14770 14771 14772 14773 13124 13125 13126 13127 13128 13129 17258 17259 17260 17261 17262 17263 15992 15993 15994 15995 15996 15997 48 13112 13113 13114 13115 13116 13117 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 16244 16245 16246 16247 16248 16249 11336 11337 11338 11339 11340 11341 11330 11331 11332 11333 11334 11335 11324 11325 11326 11327 11328 11329 17510 17511 17512 17513 17514 17515 48 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 16496 16497 16498 16499 16500 16501 9860 9861 9862 9863 9864 9865 9854 9855 9856 9857 9858 9859 9848 9849 9850 9851 9852 9853 17762 17763 17764 17765 17766 17767 48 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 16748 16749 16750 16751 16752 16753 8282 8283 8284 8285 8286 8287 8276 8277 8278 8279 8280 8281 8270 8271 8272 8273 8274 8275 18014 18015 18016 18017 18018 18019 48 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 17000 17001 17002 17003 17004 17005 6614 6615 6616 6617 6618 6619 6608 6609 6610 6611 6612 6613 6602 6603 6604 6605 6606 6607 18266 18267 18268 18269 18270 18271 48 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 17264 17265 17266 17267 17268 17269 13160 13161 13162 13163 13164 13165 13154 13155 13156 13157 13158 13159 13148 13149 13150 13151 13152 13153 18524 18525 18526 18527 18528 18529 36 13178 13179 13180 13181 13182 13183 13160 13161 13162 13163 13164 13165 14798 14799 14800 14801 14802 14803 13172 13173 13174 13175 13176 13177 17264 17265 17266 17267 17268 17269 15998 15999 16000 16001 16002 16003 48 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 17516 17517 17518 17519 17520 17521 11354 11355 11356 11357 11358 11359 11414 11415 11416 11417 11418 11419 11378 11379 11380 11381 11382 11383 18704 18705 18706 18707 18708 18709 48 13160 13161 13162 13163 13164 13165 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 16250 16251 16252 16253 16254 16255 11366 11367 11368 11369 11370 11371 11360 11361 11362 11363 11364 11365 11354 11355 11356 11357 11358 11359 17516 17517 17518 17519 17520 17521 48 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 16502 16503 16504 16505 16506 16507 9890 9891 9892 9893 9894 9895 9884 9885 9886 9887 9888 9889 9878 9879 9880 9881 9882 9883 17768 17769 17770 17771 17772 17773 48 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 16754 16755 16756 16757 16758 16759 8312 8313 8314 8315 8316 8317 8306 8307 8308 8309 8310 8311 8300 8301 8302 8303 8304 8305 18020 18021 18022 18023 18024 18025 48 8324 8325 8326 8327 8328 8329 8360 8361 8362 8363 8364 8365 8300 8301 8302 8303 8304 8305 18272 18273 18274 18275 18276 18277 6632 6633 6634 6635 6636 6637 6692 6693 6694 6695 6696 6697 6656 6657 6658 6659 6660 6661 19262 19263 19264 19265 19266 19267 48 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 17006 17007 17008 17009 17010 17011 6644 6645 6646 6647 6648 6649 6638 6639 6640 6641 6642 6643 6632 6633 6634 6635 6636 6637 18272 18273 18274 18275 18276 18277 48 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 17270 17271 17272 17273 17274 17275 13208 13209 13210 13211 13212 13213 13202 13203 13204 13205 13206 13207 13196 13197 13198 13199 13200 13201 18530 18531 18532 18533 18534 18535 36 13226 13227 13228 13229 13230 13231 13208 13209 13210 13211 13212 13213 14828 14829 14830 14831 14832 14833 13220 13221 13222 13223 13224 13225 17270 17271 17272 17273 17274 17275 16004 16005 16006 16007 16008 16009 48 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 17522 17523 17524 17525 17526 17527 11402 11403 11404 11405 11406 11407 11396 11397 11398 11399 11400 11401 11390 11391 11392 11393 11394 11395 18698 18699 18700 18701 18702 18703 48 13208 13209 13210 13211 13212 13213 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 16256 16257 16258 16259 16260 16261 11426 11427 11428 11429 11430 11431 11420 11421 11422 11423 11424 11425 11402 11403 11404 11405 11406 11407 17522 17523 17524 17525 17526 17527 48 11402 11403 11404 11405 11406 11407 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 16508 16509 16510 16511 16512 16513 9920 9921 9922 9923 9924 9925 9914 9915 9916 9917 9918 9919 9908 9909 9910 9911 9912 9913 17774 17775 17776 17777 17778 17779 48 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 16760 16761 16762 16763 16764 16765 8372 8373 8374 8375 8376 8377 8366 8367 8368 8369 8370 8371 8348 8349 8350 8351 8352 8353 18026 18027 18028 18029 18030 18031 48 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 18278 18279 18280 18281 18282 18283 6680 6681 6682 6683 6684 6685 6674 6675 6676 6677 6678 6679 6668 6669 6670 6671 6672 6673 19256 19257 19258 19259 19260 19261 48 8348 8349 8350 8351 8352 8353 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 17012 17013 17014 17015 17016 17017 6704 6705 6706 6707 6708 6709 6698 6699 6700 6701 6702 6703 6680 6681 6682 6683 6684 6685 18278 18279 18280 18281 18282 18283 48 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 17276 17277 17278 17279 17280 17281 13256 13257 13258 13259 13260 13261 13250 13251 13252 13253 13254 13255 13244 13245 13246 13247 13248 13249 18536 18537 18538 18539 18540 18541 36 13274 13275 13276 13277 13278 13279 13256 13257 13258 13259 13260 13261 14858 14859 14860 14861 14862 14863 13268 13269 13270 13271 13272 13273 17276 17277 17278 17279 17280 17281 16010 16011 16012 16013 16014 16015 48 13256 13257 13258 13259 13260 13261 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 16262 16263 16264 16265 16266 16267 11456 11457 11458 11459 11460 11461 11450 11451 11452 11453 11454 11455 11444 11445 11446 11447 11448 11449 17528 17529 17530 17531 17532 17533 48 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 16514 16515 16516 16517 16518 16519 9950 9951 9952 9953 9954 9955 9944 9945 9946 9947 9948 9949 9938 9939 9940 9941 9942 9943 17780 17781 17782 17783 17784 17785 48 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 16766 16767 16768 16769 16770 16771 8402 8403 8404 8405 8406 8407 8396 8397 8398 8399 8400 8401 8390 8391 8392 8393 8394 8395 18032 18033 18034 18035 18036 18037 48 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 17018 17019 17020 17021 17022 17023 6734 6735 6736 6737 6738 6739 6728 6729 6730 6731 6732 6733 6722 6723 6724 6725 6726 6727 18284 18285 18286 18287 18288 18289 48 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 17282 17283 17284 17285 17286 17287 13304 13305 13306 13307 13308 13309 13298 13299 13300 13301 13302 13303 13292 13293 13294 13295 13296 13297 18542 18543 18544 18545 18546 18547 36 13322 13323 13324 13325 13326 13327 13304 13305 13306 13307 13308 13309 14888 14889 14890 14891 14892 14893 13316 13317 13318 13319 13320 13321 17282 17283 17284 17285 17286 17287 16016 16017 16018 16019 16020 16021 48 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 17534 17535 17536 17537 17538 17539 11474 11475 11476 11477 11478 11479 11534 11535 11536 11537 11538 11539 11498 11499 11500 11501 11502 11503 18716 18717 18718 18719 18720 18721 48 13304 13305 13306 13307 13308 13309 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 16268 16269 16270 16271 16272 16273 11486 11487 11488 11489 11490 11491 11480 11481 11482 11483 11484 11485 11474 11475 11476 11477 11478 11479 17534 17535 17536 17537 17538 17539 48 11498 11499 11500 11501 11502 11503 11534 11535 11536 11537 11538 11539 11474 11475 11476 11477 11478 11479 17786 17787 17788 17789 17790 17791 9968 9969 9970 9971 9972 9973 19406 19407 19408 19409 19410 19411 18926 18927 18928 18929 18930 18931 18938 18939 18940 18941 18942 18943 48 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 16520 16521 16522 16523 16524 16525 9980 9981 9982 9983 9984 9985 9974 9975 9976 9977 9978 9979 9968 9969 9970 9971 9972 9973 17786 17787 17788 17789 17790 17791 48 18926 18927 18928 18929 18930 18931 19406 19407 19408 19409 19410 19411 9968 9969 9970 9971 9972 9973 18038 18039 18040 18041 18042 18043 8420 8421 8422 8423 8424 8425 8480 8481 8482 8483 8484 8485 8444 8445 8446 8447 8448 8449 19142 19143 19144 19145 19146 19147 48 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 16772 16773 16774 16775 16776 16777 8432 8433 8434 8435 8436 8437 8426 8427 8428 8429 8430 8431 8420 8421 8422 8423 8424 8425 18038 18039 18040 18041 18042 18043 48 8444 8445 8446 8447 8448 8449 8480 8481 8482 8483 8484 8485 8420 8421 8422 8423 8424 8425 18290 18291 18292 18293 18294 18295 6752 6753 6754 6755 6756 6757 6812 6813 6814 6815 6816 6817 6776 6777 6778 6779 6780 6781 19274 19275 19276 19277 19278 19279 48 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 17024 17025 17026 17027 17028 17029 6764 6765 6766 6767 6768 6769 6758 6759 6760 6761 6762 6763 6752 6753 6754 6755 6756 6757 18290 18291 18292 18293 18294 18295 48 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 17288 17289 17290 17291 17292 17293 13352 13353 13354 13355 13356 13357 13346 13347 13348 13349 13350 13351 13340 13341 13342 13343 13344 13345 18548 18549 18550 18551 18552 18553 36 13370 13371 13372 13373 13374 13375 13352 13353 13354 13355 13356 13357 14918 14919 14920 14921 14922 14923 13364 13365 13366 13367 13368 13369 17288 17289 17290 17291 17292 17293 16022 16023 16024 16025 16026 16027 48 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 17540 17541 17542 17543 17544 17545 11522 11523 11524 11525 11526 11527 11516 11517 11518 11519 11520 11521 11510 11511 11512 11513 11514 11515 18710 18711 18712 18713 18714 18715 48 13352 13353 13354 13355 13356 13357 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 16274 16275 16276 16277 16278 16279 11546 11547 11548 11549 11550 11551 11540 11541 11542 11543 11544 11545 11522 11523 11524 11525 11526 11527 17540 17541 17542 17543 17544 17545 48 11522 11523 11524 11525 11526 11527 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 16526 16527 16528 16529 16530 16531 10010 10011 10012 10013 10014 10015 10004 10005 10006 10007 10008 10009 9998 9999 10000 10001 10002 10003 17792 17793 17794 17795 17796 17797 48 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 16778 16779 16780 16781 16782 16783 8492 8493 8494 8495 8496 8497 8486 8487 8488 8489 8490 8491 8468 8469 8470 8471 8472 8473 18044 18045 18046 18047 18048 18049 48 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 18296 18297 18298 18299 18300 18301 6800 6801 6802 6803 6804 6805 6794 6795 6796 6797 6798 6799 6788 6789 6790 6791 6792 6793 19268 19269 19270 19271 19272 19273 48 8468 8469 8470 8471 8472 8473 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 17030 17031 17032 17033 17034 17035 6824 6825 6826 6827 6828 6829 6818 6819 6820 6821 6822 6823 6800 6801 6802 6803 6804 6805 18296 18297 18298 18299 18300 18301 48 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 17294 17295 17296 17297 17298 17299 13400 13401 13402 13403 13404 13405 13394 13395 13396 13397 13398 13399 13388 13389 13390 13391 13392 13393 18554 18555 18556 18557 18558 18559 36 13418 13419 13420 13421 13422 13423 13400 13401 13402 13403 13404 13405 14948 14949 14950 14951 14952 14953 13412 13413 13414 13415 13416 13417 17294 17295 17296 17297 17298 17299 16028 16029 16030 16031 16032 16033 48 13400 13401 13402 13403 13404 13405 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 16280 16281 16282 16283 16284 16285 11576 11577 11578 11579 11580 11581 11570 11571 11572 11573 11574 11575 11564 11565 11566 11567 11568 11569 17546 17547 17548 17549 17550 17551 48 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 16532 16533 16534 16535 16536 16537 10040 10041 10042 10043 10044 10045 10034 10035 10036 10037 10038 10039 10028 10029 10030 10031 10032 10033 17798 17799 17800 17801 17802 17803 48 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 16784 16785 16786 16787 16788 16789 8522 8523 8524 8525 8526 8527 8516 8517 8518 8519 8520 8521 8510 8511 8512 8513 8514 8515 18050 18051 18052 18053 18054 18055 48 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 17036 17037 17038 17039 17040 17041 6854 6855 6856 6857 6858 6859 6848 6849 6850 6851 6852 6853 6842 6843 6844 6845 6846 6847 18302 18303 18304 18305 18306 18307 48 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 17300 17301 17302 17303 17304 17305 13448 13449 13450 13451 13452 13453 13442 13443 13444 13445 13446 13447 13436 13437 13438 13439 13440 13441 18560 18561 18562 18563 18564 18565 36 13466 13467 13468 13469 13470 13471 13448 13449 13450 13451 13452 13453 14978 14979 14980 14981 14982 14983 13460 13461 13462 13463 13464 13465 17300 17301 17302 17303 17304 17305 16034 16035 16036 16037 16038 16039 48 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 17552 17553 17554 17555 17556 17557 11594 11595 11596 11597 11598 11599 11654 11655 11656 11657 11658 11659 11618 11619 11620 11621 11622 11623 18728 18729 18730 18731 18732 18733 48 13448 13449 13450 13451 13452 13453 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 16286 16287 16288 16289 16290 16291 11606 11607 11608 11609 11610 11611 11600 11601 11602 11603 11604 11605 11594 11595 11596 11597 11598 11599 17552 17553 17554 17555 17556 17557 48 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 16538 16539 16540 16541 16542 16543 10070 10071 10072 10073 10074 10075 10064 10065 10066 10067 10068 10069 10058 10059 10060 10061 10062 10063 17804 17805 17806 17807 17808 17809 48 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 16790 16791 16792 16793 16794 16795 8552 8553 8554 8555 8556 8557 8546 8547 8548 8549 8550 8551 8540 8541 8542 8543 8544 8545 18056 18057 18058 18059 18060 18061 48 8564 8565 8566 8567 8568 8569 8600 8601 8602 8603 8604 8605 8540 8541 8542 8543 8544 8545 18308 18309 18310 18311 18312 18313 6872 6873 6874 6875 6876 6877 6932 6933 6934 6935 6936 6937 6896 6897 6898 6899 6900 6901 19286 19287 19288 19289 19290 19291 48 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 17042 17043 17044 17045 17046 17047 6884 6885 6886 6887 6888 6889 6878 6879 6880 6881 6882 6883 6872 6873 6874 6875 6876 6877 18308 18309 18310 18311 18312 18313 48 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 17306 17307 17308 17309 17310 17311 13496 13497 13498 13499 13500 13501 13490 13491 13492 13493 13494 13495 13484 13485 13486 13487 13488 13489 18566 18567 18568 18569 18570 18571 36 13514 13515 13516 13517 13518 13519 13496 13497 13498 13499 13500 13501 15008 15009 15010 15011 15012 15013 13508 13509 13510 13511 13512 13513 17306 17307 17308 17309 17310 17311 16040 16041 16042 16043 16044 16045 48 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 17558 17559 17560 17561 17562 17563 11642 11643 11644 11645 11646 11647 11636 11637 11638 11639 11640 11641 11630 11631 11632 11633 11634 11635 18722 18723 18724 18725 18726 18727 48 13496 13497 13498 13499 13500 13501 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 16292 16293 16294 16295 16296 16297 11666 11667 11668 11669 11670 11671 11660 11661 11662 11663 11664 11665 11642 11643 11644 11645 11646 11647 17558 17559 17560 17561 17562 17563 48 11642 11643 11644 11645 11646 11647 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 16544 16545 16546 16547 16548 16549 10100 10101 10102 10103 10104 10105 10094 10095 10096 10097 10098 10099 10088 10089 10090 10091 10092 10093 17810 17811 17812 17813 17814 17815 48 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 16796 16797 16798 16799 16800 16801 8612 8613 8614 8615 8616 8617 8606 8607 8608 8609 8610 8611 8588 8589 8590 8591 8592 8593 18062 18063 18064 18065 18066 18067 48 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 18314 18315 18316 18317 18318 18319 6920 6921 6922 6923 6924 6925 6914 6915 6916 6917 6918 6919 6908 6909 6910 6911 6912 6913 19280 19281 19282 19283 19284 19285 48 8588 8589 8590 8591 8592 8593 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 17048 17049 17050 17051 17052 17053 6944 6945 6946 6947 6948 6949 6938 6939 6940 6941 6942 6943 6920 6921 6922 6923 6924 6925 18314 18315 18316 18317 18318 18319 48 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 17312 17313 17314 17315 17316 17317 13544 13545 13546 13547 13548 13549 13538 13539 13540 13541 13542 13543 13532 13533 13534 13535 13536 13537 18572 18573 18574 18575 18576 18577 36 13562 13563 13564 13565 13566 13567 13544 13545 13546 13547 13548 13549 15038 15039 15040 15041 15042 15043 13556 13557 13558 13559 13560 13561 17312 17313 17314 17315 17316 17317 16046 16047 16048 16049 16050 16051 48 13544 13545 13546 13547 13548 13549 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 16298 16299 16300 16301 16302 16303 11696 11697 11698 11699 11700 11701 11690 11691 11692 11693 11694 11695 11684 11685 11686 11687 11688 11689 17564 17565 17566 17567 17568 17569 48 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 16550 16551 16552 16553 16554 16555 10130 10131 10132 10133 10134 10135 10124 10125 10126 10127 10128 10129 10118 10119 10120 10121 10122 10123 17816 17817 17818 17819 17820 17821 48 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 16802 16803 16804 16805 16806 16807 8642 8643 8644 8645 8646 8647 8636 8637 8638 8639 8640 8641 8630 8631 8632 8633 8634 8635 18068 18069 18070 18071 18072 18073 48 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 17054 17055 17056 17057 17058 17059 6974 6975 6976 6977 6978 6979 6968 6969 6970 6971 6972 6973 6962 6963 6964 6965 6966 6967 18320 18321 18322 18323 18324 18325 48 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 17318 17319 17320 17321 17322 17323 13592 13593 13594 13595 13596 13597 13586 13587 13588 13589 13590 13591 13580 13581 13582 13583 13584 13585 18578 18579 18580 18581 18582 18583 36 13610 13611 13612 13613 13614 13615 13592 13593 13594 13595 13596 13597 15068 15069 15070 15071 15072 15073 13604 13605 13606 13607 13608 13609 17318 17319 17320 17321 17322 17323 16052 16053 16054 16055 16056 16057 48 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 17570 17571 17572 17573 17574 17575 11714 11715 11716 11717 11718 11719 11774 11775 11776 11777 11778 11779 11738 11739 11740 11741 11742 11743 18740 18741 18742 18743 18744 18745 48 13592 13593 13594 13595 13596 13597 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 16304 16305 16306 16307 16308 16309 11726 11727 11728 11729 11730 11731 11720 11721 11722 11723 11724 11725 11714 11715 11716 11717 11718 11719 17570 17571 17572 17573 17574 17575 48 11738 11739 11740 11741 11742 11743 11774 11775 11776 11777 11778 11779 11714 11715 11716 11717 11718 11719 17822 17823 17824 17825 17826 17827 10148 10149 10150 10151 10152 10153 19412 19413 19414 19415 19416 19417 18986 18987 18988 18989 18990 18991 18998 18999 19000 19001 19002 19003 48 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 16556 16557 16558 16559 16560 16561 10160 10161 10162 10163 10164 10165 10154 10155 10156 10157 10158 10159 10148 10149 10150 10151 10152 10153 17822 17823 17824 17825 17826 17827 48 18986 18987 18988 18989 18990 18991 19412 19413 19414 19415 19416 19417 10148 10149 10150 10151 10152 10153 18074 18075 18076 18077 18078 18079 8660 8661 8662 8663 8664 8665 8720 8721 8722 8723 8724 8725 8684 8685 8686 8687 8688 8689 19166 19167 19168 19169 19170 19171 48 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 16808 16809 16810 16811 16812 16813 8672 8673 8674 8675 8676 8677 8666 8667 8668 8669 8670 8671 8660 8661 8662 8663 8664 8665 18074 18075 18076 18077 18078 18079 48 8684 8685 8686 8687 8688 8689 8720 8721 8722 8723 8724 8725 8660 8661 8662 8663 8664 8665 18326 18327 18328 18329 18330 18331 6992 6993 6994 6995 6996 6997 7052 7053 7054 7055 7056 7057 7016 7017 7018 7019 7020 7021 19298 19299 19300 19301 19302 19303 48 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 17060 17061 17062 17063 17064 17065 7004 7005 7006 7007 7008 7009 6998 6999 7000 7001 7002 7003 6992 6993 6994 6995 6996 6997 18326 18327 18328 18329 18330 18331 48 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 17324 17325 17326 17327 17328 17329 13640 13641 13642 13643 13644 13645 13634 13635 13636 13637 13638 13639 13628 13629 13630 13631 13632 13633 18584 18585 18586 18587 18588 18589 36 13658 13659 13660 13661 13662 13663 13640 13641 13642 13643 13644 13645 15098 15099 15100 15101 15102 15103 13652 13653 13654 13655 13656 13657 17324 17325 17326 17327 17328 17329 16058 16059 16060 16061 16062 16063 48 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 17576 17577 17578 17579 17580 17581 11762 11763 11764 11765 11766 11767 11756 11757 11758 11759 11760 11761 11750 11751 11752 11753 11754 11755 18734 18735 18736 18737 18738 18739 48 13640 13641 13642 13643 13644 13645 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 16310 16311 16312 16313 16314 16315 11786 11787 11788 11789 11790 11791 11780 11781 11782 11783 11784 11785 11762 11763 11764 11765 11766 11767 17576 17577 17578 17579 17580 17581 48 11762 11763 11764 11765 11766 11767 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 16562 16563 16564 16565 16566 16567 10190 10191 10192 10193 10194 10195 10184 10185 10186 10187 10188 10189 10178 10179 10180 10181 10182 10183 17828 17829 17830 17831 17832 17833 48 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 16814 16815 16816 16817 16818 16819 8732 8733 8734 8735 8736 8737 8726 8727 8728 8729 8730 8731 8708 8709 8710 8711 8712 8713 18080 18081 18082 18083 18084 18085 48 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 18332 18333 18334 18335 18336 18337 7040 7041 7042 7043 7044 7045 7034 7035 7036 7037 7038 7039 7028 7029 7030 7031 7032 7033 19292 19293 19294 19295 19296 19297 48 8708 8709 8710 8711 8712 8713 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 17066 17067 17068 17069 17070 17071 7064 7065 7066 7067 7068 7069 7058 7059 7060 7061 7062 7063 7040 7041 7042 7043 7044 7045 18332 18333 18334 18335 18336 18337 48 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 17330 17331 17332 17333 17334 17335 13688 13689 13690 13691 13692 13693 13682 13683 13684 13685 13686 13687 13676 13677 13678 13679 13680 13681 18590 18591 18592 18593 18594 18595 36 13706 13707 13708 13709 13710 13711 13688 13689 13690 13691 13692 13693 15128 15129 15130 15131 15132 15133 13700 13701 13702 13703 13704 13705 17330 17331 17332 17333 17334 17335 16064 16065 16066 16067 16068 16069 48 13688 13689 13690 13691 13692 13693 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 16316 16317 16318 16319 16320 16321 11816 11817 11818 11819 11820 11821 11810 11811 11812 11813 11814 11815 11804 11805 11806 11807 11808 11809 17582 17583 17584 17585 17586 17587 48 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 16568 16569 16570 16571 16572 16573 10220 10221 10222 10223 10224 10225 10214 10215 10216 10217 10218 10219 10208 10209 10210 10211 10212 10213 17834 17835 17836 17837 17838 17839 48 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 16820 16821 16822 16823 16824 16825 8762 8763 8764 8765 8766 8767 8756 8757 8758 8759 8760 8761 8750 8751 8752 8753 8754 8755 18086 18087 18088 18089 18090 18091 48 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 17072 17073 17074 17075 17076 17077 7094 7095 7096 7097 7098 7099 7088 7089 7090 7091 7092 7093 7082 7083 7084 7085 7086 7087 18338 18339 18340 18341 18342 18343 48 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 17336 17337 17338 17339 17340 17341 13736 13737 13738 13739 13740 13741 13730 13731 13732 13733 13734 13735 13724 13725 13726 13727 13728 13729 18596 18597 18598 18599 18600 18601 36 13754 13755 13756 13757 13758 13759 13736 13737 13738 13739 13740 13741 15158 15159 15160 15161 15162 15163 13748 13749 13750 13751 13752 13753 17336 17337 17338 17339 17340 17341 16070 16071 16072 16073 16074 16075 48 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 17588 17589 17590 17591 17592 17593 11834 11835 11836 11837 11838 11839 11894 11895 11896 11897 11898 11899 11858 11859 11860 11861 11862 11863 18752 18753 18754 18755 18756 18757 48 13736 13737 13738 13739 13740 13741 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 16322 16323 16324 16325 16326 16327 11846 11847 11848 11849 11850 11851 11840 11841 11842 11843 11844 11845 11834 11835 11836 11837 11838 11839 17588 17589 17590 17591 17592 17593 48 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 16574 16575 16576 16577 16578 16579 10250 10251 10252 10253 10254 10255 10244 10245 10246 10247 10248 10249 10238 10239 10240 10241 10242 10243 17840 17841 17842 17843 17844 17845 48 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 16826 16827 16828 16829 16830 16831 8792 8793 8794 8795 8796 8797 8786 8787 8788 8789 8790 8791 8780 8781 8782 8783 8784 8785 18092 18093 18094 18095 18096 18097 48 8804 8805 8806 8807 8808 8809 8840 8841 8842 8843 8844 8845 8780 8781 8782 8783 8784 8785 18344 18345 18346 18347 18348 18349 7112 7113 7114 7115 7116 7117 7172 7173 7174 7175 7176 7177 7136 7137 7138 7139 7140 7141 19310 19311 19312 19313 19314 19315 48 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 17078 17079 17080 17081 17082 17083 7124 7125 7126 7127 7128 7129 7118 7119 7120 7121 7122 7123 7112 7113 7114 7115 7116 7117 18344 18345 18346 18347 18348 18349 48 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 17342 17343 17344 17345 17346 17347 13784 13785 13786 13787 13788 13789 13778 13779 13780 13781 13782 13783 13772 13773 13774 13775 13776 13777 18602 18603 18604 18605 18606 18607 36 13802 13803 13804 13805 13806 13807 13784 13785 13786 13787 13788 13789 15188 15189 15190 15191 15192 15193 13796 13797 13798 13799 13800 13801 17342 17343 17344 17345 17346 17347 16076 16077 16078 16079 16080 16081 48 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 17594 17595 17596 17597 17598 17599 11882 11883 11884 11885 11886 11887 11876 11877 11878 11879 11880 11881 11870 11871 11872 11873 11874 11875 18746 18747 18748 18749 18750 18751 48 13784 13785 13786 13787 13788 13789 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 16328 16329 16330 16331 16332 16333 11906 11907 11908 11909 11910 11911 11900 11901 11902 11903 11904 11905 11882 11883 11884 11885 11886 11887 17594 17595 17596 17597 17598 17599 48 11882 11883 11884 11885 11886 11887 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 16580 16581 16582 16583 16584 16585 10280 10281 10282 10283 10284 10285 10274 10275 10276 10277 10278 10279 10268 10269 10270 10271 10272 10273 17846 17847 17848 17849 17850 17851 48 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 16832 16833 16834 16835 16836 16837 8852 8853 8854 8855 8856 8857 8846 8847 8848 8849 8850 8851 8828 8829 8830 8831 8832 8833 18098 18099 18100 18101 18102 18103 48 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 18350 18351 18352 18353 18354 18355 7160 7161 7162 7163 7164 7165 7154 7155 7156 7157 7158 7159 7148 7149 7150 7151 7152 7153 19304 19305 19306 19307 19308 19309 48 8828 8829 8830 8831 8832 8833 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 17084 17085 17086 17087 17088 17089 7184 7185 7186 7187 7188 7189 7178 7179 7180 7181 7182 7183 7160 7161 7162 7163 7164 7165 18350 18351 18352 18353 18354 18355 48 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 17348 17349 17350 17351 17352 17353 13832 13833 13834 13835 13836 13837 13826 13827 13828 13829 13830 13831 13820 13821 13822 13823 13824 13825 18608 18609 18610 18611 18612 18613 36 13850 13851 13852 13853 13854 13855 13832 13833 13834 13835 13836 13837 15218 15219 15220 15221 15222 15223 13844 13845 13846 13847 13848 13849 17348 17349 17350 17351 17352 17353 16082 16083 16084 16085 16086 16087 48 13832 13833 13834 13835 13836 13837 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 16334 16335 16336 16337 16338 16339 11936 11937 11938 11939 11940 11941 11930 11931 11932 11933 11934 11935 11924 11925 11926 11927 11928 11929 17600 17601 17602 17603 17604 17605 48 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 16586 16587 16588 16589 16590 16591 10310 10311 10312 10313 10314 10315 10304 10305 10306 10307 10308 10309 10298 10299 10300 10301 10302 10303 17852 17853 17854 17855 17856 17857 48 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 16838 16839 16840 16841 16842 16843 8882 8883 8884 8885 8886 8887 8876 8877 8878 8879 8880 8881 8870 8871 8872 8873 8874 8875 18104 18105 18106 18107 18108 18109 48 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 17090 17091 17092 17093 17094 17095 7214 7215 7216 7217 7218 7219 7208 7209 7210 7211 7212 7213 7202 7203 7204 7205 7206 7207 18356 18357 18358 18359 18360 18361 48 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 17354 17355 17356 17357 17358 17359 13880 13881 13882 13883 13884 13885 13874 13875 13876 13877 13878 13879 13868 13869 13870 13871 13872 13873 18614 18615 18616 18617 18618 18619 36 13898 13899 13900 13901 13902 13903 13880 13881 13882 13883 13884 13885 15248 15249 15250 15251 15252 15253 13892 13893 13894 13895 13896 13897 17354 17355 17356 17357 17358 17359 16088 16089 16090 16091 16092 16093 48 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 17606 17607 17608 17609 17610 17611 11954 11955 11956 11957 11958 11959 12014 12015 12016 12017 12018 12019 11978 11979 11980 11981 11982 11983 18764 18765 18766 18767 18768 18769 48 13880 13881 13882 13883 13884 13885 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 16340 16341 16342 16343 16344 16345 11966 11967 11968 11969 11970 11971 11960 11961 11962 11963 11964 11965 11954 11955 11956 11957 11958 11959 17606 17607 17608 17609 17610 17611 48 11978 11979 11980 11981 11982 11983 12014 12015 12016 12017 12018 12019 11954 11955 11956 11957 11958 11959 17858 17859 17860 17861 17862 17863 10328 10329 10330 10331 10332 10333 19418 19419 19420 19421 19422 19423 19046 19047 19048 19049 19050 19051 19058 19059 19060 19061 19062 19063 48 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 16592 16593 16594 16595 16596 16597 10340 10341 10342 10343 10344 10345 10334 10335 10336 10337 10338 10339 10328 10329 10330 10331 10332 10333 17858 17859 17860 17861 17862 17863 48 19046 19047 19048 19049 19050 19051 19418 19419 19420 19421 19422 19423 10328 10329 10330 10331 10332 10333 18110 18111 18112 18113 18114 18115 8900 8901 8902 8903 8904 8905 8960 8961 8962 8963 8964 8965 8924 8925 8926 8927 8928 8929 19190 19191 19192 19193 19194 19195 48 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 16844 16845 16846 16847 16848 16849 8912 8913 8914 8915 8916 8917 8906 8907 8908 8909 8910 8911 8900 8901 8902 8903 8904 8905 18110 18111 18112 18113 18114 18115 48 8924 8925 8926 8927 8928 8929 8960 8961 8962 8963 8964 8965 8900 8901 8902 8903 8904 8905 18362 18363 18364 18365 18366 18367 7232 7233 7234 7235 7236 7237 7292 7293 7294 7295 7296 7297 7256 7257 7258 7259 7260 7261 19322 19323 19324 19325 19326 19327 48 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 17096 17097 17098 17099 17100 17101 7244 7245 7246 7247 7248 7249 7238 7239 7240 7241 7242 7243 7232 7233 7234 7235 7236 7237 18362 18363 18364 18365 18366 18367 48 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 17360 17361 17362 17363 17364 17365 13928 13929 13930 13931 13932 13933 13922 13923 13924 13925 13926 13927 13916 13917 13918 13919 13920 13921 18620 18621 18622 18623 18624 18625 36 13946 13947 13948 13949 13950 13951 13928 13929 13930 13931 13932 13933 15278 15279 15280 15281 15282 15283 13940 13941 13942 13943 13944 13945 17360 17361 17362 17363 17364 17365 16094 16095 16096 16097 16098 16099 48 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 17612 17613 17614 17615 17616 17617 12002 12003 12004 12005 12006 12007 11996 11997 11998 11999 12000 12001 11990 11991 11992 11993 11994 11995 18758 18759 18760 18761 18762 18763 48 13928 13929 13930 13931 13932 13933 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 16346 16347 16348 16349 16350 16351 12026 12027 12028 12029 12030 12031 12020 12021 12022 12023 12024 12025 12002 12003 12004 12005 12006 12007 17612 17613 17614 17615 17616 17617 48 12002 12003 12004 12005 12006 12007 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 16598 16599 16600 16601 16602 16603 10370 10371 10372 10373 10374 10375 10364 10365 10366 10367 10368 10369 10358 10359 10360 10361 10362 10363 17864 17865 17866 17867 17868 17869 48 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 16850 16851 16852 16853 16854 16855 8972 8973 8974 8975 8976 8977 8966 8967 8968 8969 8970 8971 8948 8949 8950 8951 8952 8953 18116 18117 18118 18119 18120 18121 48 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 18368 18369 18370 18371 18372 18373 7280 7281 7282 7283 7284 7285 7274 7275 7276 7277 7278 7279 7268 7269 7270 7271 7272 7273 19316 19317 19318 19319 19320 19321 48 8948 8949 8950 8951 8952 8953 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 17102 17103 17104 17105 17106 17107 7304 7305 7306 7307 7308 7309 7298 7299 7300 7301 7302 7303 7280 7281 7282 7283 7284 7285 18368 18369 18370 18371 18372 18373 48 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 17366 17367 17368 17369 17370 17371 13976 13977 13978 13979 13980 13981 13970 13971 13972 13973 13974 13975 13964 13965 13966 13967 13968 13969 18626 18627 18628 18629 18630 18631 36 13994 13995 13996 13997 13998 13999 13976 13977 13978 13979 13980 13981 15308 15309 15310 15311 15312 15313 13988 13989 13990 13991 13992 13993 17366 17367 17368 17369 17370 17371 16100 16101 16102 16103 16104 16105 48 13976 13977 13978 13979 13980 13981 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 16352 16353 16354 16355 16356 16357 12056 12057 12058 12059 12060 12061 12050 12051 12052 12053 12054 12055 12044 12045 12046 12047 12048 12049 17618 17619 17620 17621 17622 17623 48 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 16604 16605 16606 16607 16608 16609 10400 10401 10402 10403 10404 10405 10394 10395 10396 10397 10398 10399 10388 10389 10390 10391 10392 10393 17870 17871 17872 17873 17874 17875 48 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 16856 16857 16858 16859 16860 16861 9002 9003 9004 9005 9006 9007 8996 8997 8998 8999 9000 9001 8990 8991 8992 8993 8994 8995 18122 18123 18124 18125 18126 18127 48 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 17108 17109 17110 17111 17112 17113 7334 7335 7336 7337 7338 7339 7328 7329 7330 7331 7332 7333 7322 7323 7324 7325 7326 7327 18374 18375 18376 18377 18378 18379 48 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 17372 17373 17374 17375 17376 17377 14024 14025 14026 14027 14028 14029 14018 14019 14020 14021 14022 14023 14012 14013 14014 14015 14016 14017 18632 18633 18634 18635 18636 18637 36 14042 14043 14044 14045 14046 14047 14024 14025 14026 14027 14028 14029 15338 15339 15340 15341 15342 15343 14036 14037 14038 14039 14040 14041 17372 17373 17374 17375 17376 17377 16106 16107 16108 16109 16110 16111 48 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 17624 17625 17626 17627 17628 17629 12074 12075 12076 12077 12078 12079 12134 12135 12136 12137 12138 12139 12098 12099 12100 12101 12102 12103 18776 18777 18778 18779 18780 18781 48 14024 14025 14026 14027 14028 14029 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 16358 16359 16360 16361 16362 16363 12086 12087 12088 12089 12090 12091 12080 12081 12082 12083 12084 12085 12074 12075 12076 12077 12078 12079 17624 17625 17626 17627 17628 17629 48 12098 12099 12100 12101 12102 12103 12134 12135 12136 12137 12138 12139 12074 12075 12076 12077 12078 12079 17876 17877 17878 17879 17880 17881 10418 10419 10420 10421 10422 10423 10478 10479 10480 10481 10482 10483 10442 10443 10444 10445 10446 10447 19070 19071 19072 19073 19074 19075 48 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 16610 16611 16612 16613 16614 16615 10430 10431 10432 10433 10434 10435 10424 10425 10426 10427 10428 10429 10418 10419 10420 10421 10422 10423 17876 17877 17878 17879 17880 17881 48 10442 10443 10444 10445 10446 10447 10478 10479 10480 10481 10482 10483 10418 10419 10420 10421 10422 10423 18128 18129 18130 18131 18132 18133 9020 9021 9022 9023 9024 9025 9080 9081 9082 9083 9084 9085 9044 9045 9046 9047 9048 9049 19202 19203 19204 19205 19206 19207 48 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 16862 16863 16864 16865 16866 16867 9032 9033 9034 9035 9036 9037 9026 9027 9028 9029 9030 9031 9020 9021 9022 9023 9024 9025 18128 18129 18130 18131 18132 18133 48 9044 9045 9046 9047 9048 9049 9080 9081 9082 9083 9084 9085 9020 9021 9022 9023 9024 9025 18380 18381 18382 18383 18384 18385 7352 7353 7354 7355 7356 7357 7412 7413 7414 7415 7416 7417 7376 7377 7378 7379 7380 7381 19334 19335 19336 19337 19338 19339 48 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 17114 17115 17116 17117 17118 17119 7364 7365 7366 7367 7368 7369 7358 7359 7360 7361 7362 7363 7352 7353 7354 7355 7356 7357 18380 18381 18382 18383 18384 18385 48 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 17378 17379 17380 17381 17382 17383 14072 14073 14074 14075 14076 14077 14066 14067 14068 14069 14070 14071 14060 14061 14062 14063 14064 14065 18638 18639 18640 18641 18642 18643 36 14090 14091 14092 14093 14094 14095 14072 14073 14074 14075 14076 14077 15368 15369 15370 15371 15372 15373 14084 14085 14086 14087 14088 14089 17378 17379 17380 17381 17382 17383 16112 16113 16114 16115 16116 16117 48 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 17630 17631 17632 17633 17634 17635 12122 12123 12124 12125 12126 12127 12116 12117 12118 12119 12120 12121 12110 12111 12112 12113 12114 12115 18770 18771 18772 18773 18774 18775 48 14072 14073 14074 14075 14076 14077 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 16364 16365 16366 16367 16368 16369 12146 12147 12148 12149 12150 12151 12140 12141 12142 12143 12144 12145 12122 12123 12124 12125 12126 12127 17630 17631 17632 17633 17634 17635 48 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 17882 17883 17884 17885 17886 17887 10466 10467 10468 10469 10470 10471 10460 10461 10462 10463 10464 10465 10454 10455 10456 10457 10458 10459 19064 19065 19066 19067 19068 19069 48 12122 12123 12124 12125 12126 12127 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 16616 16617 16618 16619 16620 16621 10490 10491 10492 10493 10494 10495 10484 10485 10486 10487 10488 10489 10466 10467 10468 10469 10470 10471 17882 17883 17884 17885 17886 17887 48 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 18134 18135 18136 18137 18138 18139 9068 9069 9070 9071 9072 9073 9062 9063 9064 9065 9066 9067 9056 9057 9058 9059 9060 9061 19196 19197 19198 19199 19200 19201 48 10466 10467 10468 10469 10470 10471 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 16868 16869 16870 16871 16872 16873 9092 9093 9094 9095 9096 9097 9086 9087 9088 9089 9090 9091 9068 9069 9070 9071 9072 9073 18134 18135 18136 18137 18138 18139 48 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 18386 18387 18388 18389 18390 18391 7400 7401 7402 7403 7404 7405 7394 7395 7396 7397 7398 7399 7388 7389 7390 7391 7392 7393 19328 19329 19330 19331 19332 19333 48 9068 9069 9070 9071 9072 9073 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 17120 17121 17122 17123 17124 17125 7424 7425 7426 7427 7428 7429 7418 7419 7420 7421 7422 7423 7400 7401 7402 7403 7404 7405 18386 18387 18388 18389 18390 18391 48 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 17384 17385 17386 17387 17388 17389 14120 14121 14122 14123 14124 14125 14114 14115 14116 14117 14118 14119 14108 14109 14110 14111 14112 14113 18644 18645 18646 18647 18648 18649 36 14138 14139 14140 14141 14142 14143 14120 14121 14122 14123 14124 14125 15398 15399 15400 15401 15402 15403 14132 14133 14134 14135 14136 14137 17384 17385 17386 17387 17388 17389 16118 16119 16120 16121 16122 16123 48 14120 14121 14122 14123 14124 14125 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 16370 16371 16372 16373 16374 16375 12176 12177 12178 12179 12180 12181 12170 12171 12172 12173 12174 12175 12164 12165 12166 12167 12168 12169 17636 17637 17638 17639 17640 17641 48 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 16622 16623 16624 16625 16626 16627 10520 10521 10522 10523 10524 10525 10514 10515 10516 10517 10518 10519 10508 10509 10510 10511 10512 10513 17888 17889 17890 17891 17892 17893 48 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 16874 16875 16876 16877 16878 16879 9122 9123 9124 9125 9126 9127 9116 9117 9118 9119 9120 9121 9110 9111 9112 9113 9114 9115 18140 18141 18142 18143 18144 18145 48 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 17126 17127 17128 17129 17130 17131 7454 7455 7456 7457 7458 7459 7448 7449 7450 7451 7452 7453 7442 7443 7444 7445 7446 7447 18392 18393 18394 18395 18396 18397 48 4310 4311 4312 4313 4314 4315 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 19424 19425 19426 19427 19428 19429 127 128 129 130 131 132 121 122 123 124 125 126 115 116 117 118 119 120 5780 5781 5782 5783 5784 5785 48 5816 5817 5818 5819 5820 5821 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 19430 19431 19432 19433 19434 19435 139 140 141 142 143 144 133 134 135 136 137 138 127 128 129 130 131 132 19424 19425 19426 19427 19428 19429 48 5846 5847 5848 5849 5850 5851 5906 5907 5908 5909 5910 5911 5870 5871 5872 5873 5874 5875 19436 19437 19438 19439 19440 19441 151 152 153 154 155 156 145 146 147 148 149 150 139 140 141 142 143 144 19430 19431 19432 19433 19434 19435 48 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 19442 19443 19444 19445 19446 19447 163 164 165 166 167 168 157 158 159 160 161 162 151 152 153 154 155 156 19436 19437 19438 19439 19440 19441 48 5882 5883 5884 5885 5886 5887 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 19448 19449 19450 19451 19452 19453 175 176 177 178 179 180 169 170 171 172 173 174 163 164 165 166 167 168 19442 19443 19444 19445 19446 19447 48 5966 5967 5968 5969 5970 5971 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 19454 19455 19456 19457 19458 19459 187 188 189 190 191 192 181 182 183 184 185 186 175 176 177 178 179 180 19448 19449 19450 19451 19452 19453 48 5996 5997 5998 5999 6000 6001 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 19460 19461 19462 19463 19464 19465 199 200 201 202 203 204 193 194 195 196 197 198 187 188 189 190 191 192 19454 19455 19456 19457 19458 19459 48 6032 6033 6034 6035 6036 6037 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 19466 19467 19468 19469 19470 19471 211 212 213 214 215 216 205 206 207 208 209 210 199 200 201 202 203 204 19460 19461 19462 19463 19464 19465 48 6092 6093 6094 6095 6096 6097 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 19472 19473 19474 19475 19476 19477 223 224 225 226 227 228 217 218 219 220 221 222 211 212 213 214 215 216 19466 19467 19468 19469 19470 19471 48 6122 6123 6124 6125 6126 6127 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 19478 19479 19480 19481 19482 19483 235 236 237 238 239 240 229 230 231 232 233 234 223 224 225 226 227 228 19472 19473 19474 19475 19476 19477 48 6152 6153 6154 6155 6156 6157 6206 6207 6208 6209 6210 6211 6200 6201 6202 6203 6204 6205 19484 19485 19486 19487 19488 19489 247 248 249 250 251 252 241 242 243 244 245 246 235 236 237 238 239 240 19478 19479 19480 19481 19482 19483 48 6200 6201 6202 6203 6204 6205 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 19490 19491 19492 19493 19494 19495 259 260 261 262 263 264 253 254 255 256 257 258 247 248 249 250 251 252 19484 19485 19486 19487 19488 19489 48 6242 6243 6244 6245 6246 6247 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 19496 19497 19498 19499 19500 19501 271 272 273 274 275 276 265 266 267 268 269 270 259 260 261 262 263 264 19490 19491 19492 19493 19494 19495 48 6272 6273 6274 6275 6276 6277 6326 6327 6328 6329 6330 6331 6320 6321 6322 6323 6324 6325 19502 19503 19504 19505 19506 19507 283 284 285 286 287 288 277 278 279 280 281 282 271 272 273 274 275 276 19496 19497 19498 19499 19500 19501 48 6320 6321 6322 6323 6324 6325 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 19508 19509 19510 19511 19512 19513 295 296 297 298 299 300 289 290 291 292 293 294 283 284 285 286 287 288 19502 19503 19504 19505 19506 19507 48 6362 6363 6364 6365 6366 6367 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 19514 19515 19516 19517 19518 19519 307 308 309 310 311 312 301 302 303 304 305 306 295 296 297 298 299 300 19508 19509 19510 19511 19512 19513 48 6392 6393 6394 6395 6396 6397 6446 6447 6448 6449 6450 6451 6440 6441 6442 6443 6444 6445 19520 19521 19522 19523 19524 19525 319 320 321 322 323 324 313 314 315 316 317 318 307 308 309 310 311 312 19514 19515 19516 19517 19518 19519 48 6440 6441 6442 6443 6444 6445 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 19526 19527 19528 19529 19530 19531 331 332 333 334 335 336 325 326 327 328 329 330 319 320 321 322 323 324 19520 19521 19522 19523 19524 19525 48 6482 6483 6484 6485 6486 6487 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 19532 19533 19534 19535 19536 19537 343 344 345 346 347 348 337 338 339 340 341 342 331 332 333 334 335 336 19526 19527 19528 19529 19530 19531 48 6512 6513 6514 6515 6516 6517 6566 6567 6568 6569 6570 6571 6560 6561 6562 6563 6564 6565 19538 19539 19540 19541 19542 19543 355 356 357 358 359 360 349 350 351 352 353 354 343 344 345 346 347 348 19532 19533 19534 19535 19536 19537 48 6560 6561 6562 6563 6564 6565 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 19544 19545 19546 19547 19548 19549 367 368 369 370 371 372 361 362 363 364 365 366 355 356 357 358 359 360 19538 19539 19540 19541 19542 19543 48 6602 6603 6604 6605 6606 6607 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 19550 19551 19552 19553 19554 19555 379 380 381 382 383 384 373 374 375 376 377 378 367 368 369 370 371 372 19544 19545 19546 19547 19548 19549 48 6632 6633 6634 6635 6636 6637 6686 6687 6688 6689 6690 6691 6680 6681 6682 6683 6684 6685 19556 19557 19558 19559 19560 19561 391 392 393 394 395 396 385 386 387 388 389 390 379 380 381 382 383 384 19550 19551 19552 19553 19554 19555 48 6680 6681 6682 6683 6684 6685 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 19562 19563 19564 19565 19566 19567 403 404 405 406 407 408 397 398 399 400 401 402 391 392 393 394 395 396 19556 19557 19558 19559 19560 19561 48 6722 6723 6724 6725 6726 6727 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 19568 19569 19570 19571 19572 19573 415 416 417 418 419 420 409 410 411 412 413 414 403 404 405 406 407 408 19562 19563 19564 19565 19566 19567 48 6752 6753 6754 6755 6756 6757 6806 6807 6808 6809 6810 6811 6800 6801 6802 6803 6804 6805 19574 19575 19576 19577 19578 19579 427 428 429 430 431 432 421 422 423 424 425 426 415 416 417 418 419 420 19568 19569 19570 19571 19572 19573 48 6800 6801 6802 6803 6804 6805 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 19580 19581 19582 19583 19584 19585 439 440 441 442 443 444 433 434 435 436 437 438 427 428 429 430 431 432 19574 19575 19576 19577 19578 19579 48 6842 6843 6844 6845 6846 6847 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 19586 19587 19588 19589 19590 19591 451 452 453 454 455 456 445 446 447 448 449 450 439 440 441 442 443 444 19580 19581 19582 19583 19584 19585 48 6872 6873 6874 6875 6876 6877 6926 6927 6928 6929 6930 6931 6920 6921 6922 6923 6924 6925 19592 19593 19594 19595 19596 19597 463 464 465 466 467 468 457 458 459 460 461 462 451 452 453 454 455 456 19586 19587 19588 19589 19590 19591 48 6920 6921 6922 6923 6924 6925 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 19598 19599 19600 19601 19602 19603 475 476 477 478 479 480 469 470 471 472 473 474 463 464 465 466 467 468 19592 19593 19594 19595 19596 19597 48 6962 6963 6964 6965 6966 6967 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 19604 19605 19606 19607 19608 19609 487 488 489 490 491 492 481 482 483 484 485 486 475 476 477 478 479 480 19598 19599 19600 19601 19602 19603 48 6992 6993 6994 6995 6996 6997 7046 7047 7048 7049 7050 7051 7040 7041 7042 7043 7044 7045 19610 19611 19612 19613 19614 19615 499 500 501 502 503 504 493 494 495 496 497 498 487 488 489 490 491 492 19604 19605 19606 19607 19608 19609 48 7040 7041 7042 7043 7044 7045 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 19616 19617 19618 19619 19620 19621 511 512 513 514 515 516 505 506 507 508 509 510 499 500 501 502 503 504 19610 19611 19612 19613 19614 19615 48 7082 7083 7084 7085 7086 7087 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 19622 19623 19624 19625 19626 19627 523 524 525 526 527 528 517 518 519 520 521 522 511 512 513 514 515 516 19616 19617 19618 19619 19620 19621 48 7112 7113 7114 7115 7116 7117 7166 7167 7168 7169 7170 7171 7160 7161 7162 7163 7164 7165 19628 19629 19630 19631 19632 19633 535 536 537 538 539 540 529 530 531 532 533 534 523 524 525 526 527 528 19622 19623 19624 19625 19626 19627 48 7160 7161 7162 7163 7164 7165 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 19634 19635 19636 19637 19638 19639 547 548 549 550 551 552 541 542 543 544 545 546 535 536 537 538 539 540 19628 19629 19630 19631 19632 19633 48 7202 7203 7204 7205 7206 7207 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 19640 19641 19642 19643 19644 19645 559 560 561 562 563 564 553 554 555 556 557 558 547 548 549 550 551 552 19634 19635 19636 19637 19638 19639 48 7232 7233 7234 7235 7236 7237 7286 7287 7288 7289 7290 7291 7280 7281 7282 7283 7284 7285 19646 19647 19648 19649 19650 19651 571 572 573 574 575 576 565 566 567 568 569 570 559 560 561 562 563 564 19640 19641 19642 19643 19644 19645 48 7280 7281 7282 7283 7284 7285 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 19652 19653 19654 19655 19656 19657 583 584 585 586 587 588 577 578 579 580 581 582 571 572 573 574 575 576 19646 19647 19648 19649 19650 19651 48 7322 7323 7324 7325 7326 7327 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 19658 19659 19660 19661 19662 19663 595 596 597 598 599 600 589 590 591 592 593 594 583 584 585 586 587 588 19652 19653 19654 19655 19656 19657 48 7352 7353 7354 7355 7356 7357 7406 7407 7408 7409 7410 7411 7400 7401 7402 7403 7404 7405 19664 19665 19666 19667 19668 19669 607 608 609 610 611 612 601 602 603 604 605 606 595 596 597 598 599 600 19658 19659 19660 19661 19662 19663 48 7400 7401 7402 7403 7404 7405 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 19670 19671 19672 19673 19674 19675 619 620 621 622 623 624 613 614 615 616 617 618 607 608 609 610 611 612 19664 19665 19666 19667 19668 19669 48 7442 7443 7444 7445 7446 7447 7466 7467 7468 7469 7470 7471 2083 2084 2085 2086 2087 2088 19676 19677 19678 19679 19680 19681 631 632 633 634 635 636 625 626 627 628 629 630 619 620 621 622 623 624 19670 19671 19672 19673 19674 19675 48 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 5816 5817 5818 5819 5820 5821 19424 19425 19426 19427 19428 19429 127 128 129 130 131 132 15446 15447 15448 15449 15450 15451 15422 15423 15424 15425 15426 15427 19682 19683 19684 19685 19686 19687 48 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 6092 6093 6094 6095 6096 6097 19466 19467 19468 19469 19470 19471 211 212 213 214 215 216 15470 15471 15472 15473 15474 15475 15464 15465 15466 15467 15468 15469 19688 19689 19690 19691 19692 19693 48 6176 6177 6178 6179 6180 6181 6212 6213 6214 6215 6216 6217 6152 6153 6154 6155 6156 6157 19478 19479 19480 19481 19482 19483 235 236 237 238 239 240 15506 15507 15508 15509 15510 15511 15482 15483 15484 15485 15486 15487 19694 19695 19696 19697 19698 19699 48 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 19484 19485 19486 19487 19488 19489 247 248 249 250 251 252 15500 15501 15502 15503 15504 15505 15494 15495 15496 15497 15498 15499 19700 19701 19702 19703 19704 19705 48 6296 6297 6298 6299 6300 6301 6332 6333 6334 6335 6336 6337 6272 6273 6274 6275 6276 6277 19496 19497 19498 19499 19500 19501 271 272 273 274 275 276 15536 15537 15538 15539 15540 15541 15512 15513 15514 15515 15516 15517 19706 19707 19708 19709 19710 19711 48 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 19502 19503 19504 19505 19506 19507 283 284 285 286 287 288 15530 15531 15532 15533 15534 15535 15524 15525 15526 15527 15528 15529 19712 19713 19714 19715 19716 19717 48 6416 6417 6418 6419 6420 6421 6452 6453 6454 6455 6456 6457 6392 6393 6394 6395 6396 6397 19514 19515 19516 19517 19518 19519 307 308 309 310 311 312 15566 15567 15568 15569 15570 15571 15542 15543 15544 15545 15546 15547 19718 19719 19720 19721 19722 19723 48 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 19520 19521 19522 19523 19524 19525 319 320 321 322 323 324 15560 15561 15562 15563 15564 15565 15554 15555 15556 15557 15558 15559 19724 19725 19726 19727 19728 19729 48 6536 6537 6538 6539 6540 6541 6572 6573 6574 6575 6576 6577 6512 6513 6514 6515 6516 6517 19532 19533 19534 19535 19536 19537 343 344 345 346 347 348 15596 15597 15598 15599 15600 15601 15572 15573 15574 15575 15576 15577 19730 19731 19732 19733 19734 19735 48 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 19538 19539 19540 19541 19542 19543 355 356 357 358 359 360 15590 15591 15592 15593 15594 15595 15584 15585 15586 15587 15588 15589 19736 19737 19738 19739 19740 19741 48 6656 6657 6658 6659 6660 6661 6692 6693 6694 6695 6696 6697 6632 6633 6634 6635 6636 6637 19550 19551 19552 19553 19554 19555 379 380 381 382 383 384 15626 15627 15628 15629 15630 15631 15602 15603 15604 15605 15606 15607 19742 19743 19744 19745 19746 19747 48 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 19556 19557 19558 19559 19560 19561 391 392 393 394 395 396 15620 15621 15622 15623 15624 15625 15614 15615 15616 15617 15618 15619 19748 19749 19750 19751 19752 19753 48 6776 6777 6778 6779 6780 6781 6812 6813 6814 6815 6816 6817 6752 6753 6754 6755 6756 6757 19568 19569 19570 19571 19572 19573 415 416 417 418 419 420 15656 15657 15658 15659 15660 15661 15632 15633 15634 15635 15636 15637 19754 19755 19756 19757 19758 19759 48 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 19574 19575 19576 19577 19578 19579 427 428 429 430 431 432 15650 15651 15652 15653 15654 15655 15644 15645 15646 15647 15648 15649 19760 19761 19762 19763 19764 19765 48 6896 6897 6898 6899 6900 6901 6932 6933 6934 6935 6936 6937 6872 6873 6874 6875 6876 6877 19586 19587 19588 19589 19590 19591 451 452 453 454 455 456 15686 15687 15688 15689 15690 15691 15662 15663 15664 15665 15666 15667 19766 19767 19768 19769 19770 19771 48 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 19592 19593 19594 19595 19596 19597 463 464 465 466 467 468 15680 15681 15682 15683 15684 15685 15674 15675 15676 15677 15678 15679 19772 19773 19774 19775 19776 19777 48 7016 7017 7018 7019 7020 7021 7052 7053 7054 7055 7056 7057 6992 6993 6994 6995 6996 6997 19604 19605 19606 19607 19608 19609 487 488 489 490 491 492 15716 15717 15718 15719 15720 15721 15692 15693 15694 15695 15696 15697 19778 19779 19780 19781 19782 19783 48 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 19610 19611 19612 19613 19614 19615 499 500 501 502 503 504 15710 15711 15712 15713 15714 15715 15704 15705 15706 15707 15708 15709 19784 19785 19786 19787 19788 19789 48 7136 7137 7138 7139 7140 7141 7172 7173 7174 7175 7176 7177 7112 7113 7114 7115 7116 7117 19622 19623 19624 19625 19626 19627 523 524 525 526 527 528 15746 15747 15748 15749 15750 15751 15722 15723 15724 15725 15726 15727 19790 19791 19792 19793 19794 19795 48 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 19628 19629 19630 19631 19632 19633 535 536 537 538 539 540 15740 15741 15742 15743 15744 15745 15734 15735 15736 15737 15738 15739 19796 19797 19798 19799 19800 19801 48 7256 7257 7258 7259 7260 7261 7292 7293 7294 7295 7296 7297 7232 7233 7234 7235 7236 7237 19640 19641 19642 19643 19644 19645 559 560 561 562 563 564 15776 15777 15778 15779 15780 15781 15752 15753 15754 15755 15756 15757 19802 19803 19804 19805 19806 19807 48 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 19646 19647 19648 19649 19650 19651 571 572 573 574 575 576 15770 15771 15772 15773 15774 15775 15764 15765 15766 15767 15768 15769 19808 19809 19810 19811 19812 19813 48 7376 7377 7378 7379 7380 7381 7412 7413 7414 7415 7416 7417 7352 7353 7354 7355 7356 7357 19658 19659 19660 19661 19662 19663 595 596 597 598 599 600 15806 15807 15808 15809 15810 15811 15782 15783 15784 15785 15786 15787 19814 19815 19816 19817 19818 19819 48 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 19664 19665 19666 19667 19668 19669 607 608 609 610 611 612 15800 15801 15802 15803 15804 15805 15794 15795 15796 15797 15798 15799 19820 19821 19822 19823 19824 19825 48 2053 2054 2055 2056 2057 2058 2095 2096 2097 2098 2099 2100 2083 2084 2085 2086 2087 2088 19676 19677 19678 19679 19680 19681 631 632 633 634 635 636 19832 19833 19834 19835 19836 19837 19826 19827 19828 19829 19830 19831 19838 19839 19840 19841 19842 19843 30 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 19865 19866 19867 19862 19863 19864 19868 19869 19870 19871 19872 19873 30 19862 19863 19864 19865 19866 19867 19859 19860 19861 19874 19875 19876 19877 19878 19879 19880 19881 19882 19886 19887 19888 19883 19884 19885 19889 19890 19891 19892 19893 19894 30 19850 19851 19852 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19912 19859 19860 19861 19853 19854 19855 19856 19857 19858 36 19859 19860 19861 19910 19911 19912 19907 19908 19909 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19930 19880 19881 19882 19874 19875 19876 19877 19878 19879 30 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 19952 19953 19954 19949 19950 19951 19955 19956 19957 19958 19959 19960 30 19949 19950 19951 19952 19953 19954 19946 19947 19948 19961 19962 19963 19964 19965 19966 19967 19968 19969 19973 19974 19975 19970 19971 19972 19976 19977 19978 19979 19980 19981 30 19937 19938 19939 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19999 19946 19947 19948 19940 19941 19942 19943 19944 19945 30 19844 19845 19846 19868 19869 19870 19871 19872 19873 19862 19863 19864 20000 20001 20002 19949 19950 19951 19955 19956 19957 19958 19959 19960 19931 19932 19933 20003 20004 20005 30 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20027 20028 20029 20024 20025 20026 20030 20031 20032 20033 20034 20035 30 20012 20013 20014 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20021 20022 20023 20015 20016 20017 20018 20019 20020 30 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20075 20076 20077 20072 20073 20074 20078 20079 20080 20081 20082 20083 30 20060 20061 20062 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20069 20070 20071 20063 20064 20065 20066 20067 20068 30 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20123 20124 20125 20120 20121 20122 20126 20127 20128 20129 20130 20131 42 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 20132 20133 20134 20135 20136 20137 19883 19884 19885 19889 19890 19891 19892 19893 19894 19862 19863 19864 20138 20139 20140 20141 20142 20143 30 20108 20109 20110 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20117 20118 20119 20111 20112 20113 20114 20115 20116 39 20117 20118 20119 20159 20160 20161 20156 20157 20158 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20180 20181 20182 20183 20184 20185 20174 20175 20176 20177 20178 20179 20186 20187 20188 20189 20190 20191 42 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 5966 5967 5968 5969 5970 5971 20138 20139 20140 20141 20142 20143 19862 19863 19864 19868 19869 19870 19871 19872 19873 19844 19845 19846 20204 20205 20206 20207 20208 20209 30 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20231 20232 20233 20228 20229 20230 20234 20235 20236 20237 20238 20239 30 19862 19863 19864 19889 19890 19891 19892 19893 19894 19883 19884 19885 20240 20241 20242 19970 19971 19972 19976 19977 19978 19979 19980 19981 19949 19950 19951 20000 20001 20002 30 19931 19932 19933 19955 19956 19957 19958 19959 19960 19949 19950 19951 20243 20244 20245 20024 20025 20026 20030 20031 20032 20033 20034 20035 20006 20007 20008 20246 20247 20248 30 20006 20007 20008 20030 20031 20032 20033 20034 20035 20024 20025 20026 20249 20250 20251 20072 20073 20074 20078 20079 20080 20081 20082 20083 20054 20055 20056 20252 20253 20254 30 20054 20055 20056 20078 20079 20080 20081 20082 20083 20072 20073 20074 20255 20256 20257 20120 20121 20122 20126 20127 20128 20129 20130 20131 20102 20103 20104 20258 20259 20260 27 20174 20175 20176 20177 20178 20179 20117 20118 20119 20069 20070 20071 20186 20187 20188 20189 20190 20191 20267 20268 20269 20261 20262 20263 20264 20265 20266 27 20168 20169 20170 20171 20172 20173 20156 20157 20158 20096 20097 20098 20162 20163 20164 20165 20166 20167 20276 20277 20278 20270 20271 20272 20273 20274 20275 42 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 5996 5997 5998 5999 6000 6001 20291 20292 20293 20294 20295 20296 19859 19860 19861 19853 19854 19855 19856 19857 19858 19850 19851 19852 20297 20298 20299 20300 20301 20302 42 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 20303 20304 20305 20306 20307 20308 19880 19881 19882 19874 19875 19876 19877 19878 19879 19859 19860 19861 20291 20292 20293 20294 20295 20296 30 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 20309 20310 20311 19946 19947 19948 19940 19941 19942 19943 19944 19945 19937 19938 19939 20312 20313 20314 30 19859 19860 19861 19874 19875 19876 19877 19878 19879 19880 19881 19882 20315 20316 20317 19967 19968 19969 19961 19962 19963 19964 19965 19966 19946 19947 19948 20309 20310 20311 30 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 20318 20319 20320 20021 20022 20023 20015 20016 20017 20018 20019 20020 20012 20013 20014 20321 20322 20323 30 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20324 20325 20326 20069 20070 20071 20063 20064 20065 20066 20067 20068 20060 20061 20062 20327 20328 20329 30 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20267 20268 20269 20117 20118 20119 20111 20112 20113 20114 20115 20116 20108 20109 20110 20330 20331 20332 30 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20333 20334 20335 20228 20229 20230 20234 20235 20236 20237 20238 20239 20210 20211 20212 20336 20337 20338 42 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 6032 6033 6034 6035 6036 6037 20351 20352 20353 20354 20355 20356 19907 19908 19909 19901 19902 19903 19904 19905 19906 19898 19899 19900 20357 20358 20359 20360 20361 20362 45 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 20363 20364 20365 20366 20367 20368 19919 19920 19921 19922 19923 19924 19913 19914 19915 19916 19917 19918 19907 19908 19909 20351 20352 20353 20354 20355 20356 30 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 20369 20370 20371 19994 19995 19996 19988 19989 19990 19991 19992 19993 19985 19986 19987 20372 20373 20374 30 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 20375 20376 20377 20048 20049 20050 20042 20043 20044 20045 20046 20047 20039 20040 20041 20378 20379 20380 30 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20381 20382 20383 20096 20097 20098 20090 20091 20092 20093 20094 20095 20087 20088 20089 20384 20385 20386 30 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20276 20277 20278 20156 20157 20158 20150 20151 20152 20153 20154 20155 20147 20148 20149 20387 20388 20389 30 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20390 20391 20392 20225 20226 20227 20219 20220 20221 20222 20223 20224 20216 20217 20218 20393 20394 20395 39 20192 20193 20194 20195 20196 20197 20204 20205 20206 20207 20208 20209 19844 19845 19846 19847 19848 19849 19850 19851 19852 20297 20298 20299 20300 20301 20302 20279 20280 20281 20282 20283 20284 20396 20397 20398 20399 20400 20401 39 20279 20280 20281 20282 20283 20284 20297 20298 20299 20300 20301 20302 19850 19851 19852 19895 19896 19897 19898 19899 19900 20357 20358 20359 20360 20361 20362 20339 20340 20341 20342 20343 20344 20402 20403 20404 20405 20406 20407 24 19844 19845 19846 20003 20004 20005 19931 19932 19933 19934 19935 19936 19937 19938 19939 20312 20313 20314 19850 19851 19852 19847 19848 19849 24 19850 19851 19852 20312 20313 20314 19937 19938 19939 19982 19983 19984 19985 19986 19987 20372 20373 20374 19898 19899 19900 19895 19896 19897 24 19931 19932 19933 20246 20247 20248 20006 20007 20008 20009 20010 20011 20012 20013 20014 20321 20322 20323 19937 19938 19939 19934 19935 19936 24 19937 19938 19939 20321 20322 20323 20012 20013 20014 20036 20037 20038 20039 20040 20041 20378 20379 20380 19985 19986 19987 19982 19983 19984 24 20006 20007 20008 20252 20253 20254 20054 20055 20056 20057 20058 20059 20060 20061 20062 20327 20328 20329 20012 20013 20014 20009 20010 20011 24 20012 20013 20014 20327 20328 20329 20060 20061 20062 20084 20085 20086 20087 20088 20089 20384 20385 20386 20039 20040 20041 20036 20037 20038 24 20054 20055 20056 20258 20259 20260 20102 20103 20104 20105 20106 20107 20108 20109 20110 20330 20331 20332 20060 20061 20062 20057 20058 20059 24 20060 20061 20062 20330 20331 20332 20108 20109 20110 20144 20145 20146 20147 20148 20149 20387 20388 20389 20087 20088 20089 20084 20085 20086 24 20108 20109 20110 20336 20337 20338 20210 20211 20212 20213 20214 20215 20216 20217 20218 20393 20394 20395 20147 20148 20149 20144 20145 20146 39 5966 5967 5968 5969 5970 5971 20138 20139 20140 20141 20142 20143 19862 19863 19864 19865 19866 19867 19859 19860 19861 20291 20292 20293 20294 20295 20296 5996 5997 5998 5999 6000 6001 5990 5991 5992 5993 5994 5995 39 5996 5997 5998 5999 6000 6001 20291 20292 20293 20294 20295 20296 19859 19860 19861 19910 19911 19912 19907 19908 19909 20351 20352 20353 20354 20355 20356 6032 6033 6034 6035 6036 6037 6026 6027 6028 6029 6030 6031 24 19862 19863 19864 20000 20001 20002 19949 19950 19951 19952 19953 19954 19946 19947 19948 20309 20310 20311 19859 19860 19861 19865 19866 19867 24 19859 19860 19861 20309 20310 20311 19946 19947 19948 19997 19998 19999 19994 19995 19996 20369 20370 20371 19907 19908 19909 19910 19911 19912 24 19949 19950 19951 20243 20244 20245 20024 20025 20026 20027 20028 20029 20021 20022 20023 20318 20319 20320 19946 19947 19948 19952 19953 19954 24 19946 19947 19948 20318 20319 20320 20021 20022 20023 20051 20052 20053 20048 20049 20050 20375 20376 20377 19994 19995 19996 19997 19998 19999 24 20024 20025 20026 20249 20250 20251 20072 20073 20074 20075 20076 20077 20069 20070 20071 20324 20325 20326 20021 20022 20023 20027 20028 20029 24 20021 20022 20023 20324 20325 20326 20069 20070 20071 20099 20100 20101 20096 20097 20098 20381 20382 20383 20048 20049 20050 20051 20052 20053 24 20072 20073 20074 20255 20256 20257 20120 20121 20122 20123 20124 20125 20117 20118 20119 20267 20268 20269 20069 20070 20071 20075 20076 20077 24 20069 20070 20071 20267 20268 20269 20117 20118 20119 20159 20160 20161 20156 20157 20158 20276 20277 20278 20096 20097 20098 20099 20100 20101 24 20117 20118 20119 20333 20334 20335 20228 20229 20230 20231 20232 20233 20225 20226 20227 20390 20391 20392 20156 20157 20158 20159 20160 20161 39 5978 5979 5980 5981 5982 5983 20132 20133 20134 20135 20136 20137 19883 19884 19885 19886 19887 19888 19880 19881 19882 20303 20304 20305 20306 20307 20308 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 45 6008 6009 6010 6011 6012 6013 20303 20304 20305 20306 20307 20308 19880 19881 19882 19925 19926 19927 19928 19929 19930 19919 19920 19921 19922 19923 19924 20363 20364 20365 20366 20367 20368 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 24 19883 19884 19885 20240 20241 20242 19970 19971 19972 19973 19974 19975 19967 19968 19969 20315 20316 20317 19880 19881 19882 19886 19887 19888 48 10688 10689 10690 10691 10692 10693 10682 10683 10684 10685 10686 10687 10604 10605 10606 10607 10608 10609 10622 10623 10624 10625 10626 10627 667 668 669 670 671 672 20408 20409 20410 20411 20412 20413 679 680 681 682 683 684 20414 20415 20416 20417 20418 20419 48 10718 10719 10720 10721 10722 10723 10712 10713 10714 10715 10716 10717 10688 10689 10690 10691 10692 10693 20414 20415 20416 20417 20418 20419 679 680 681 682 683 684 20420 20421 20422 20423 20424 20425 691 692 693 694 695 696 20426 20427 20428 20429 20430 20431 48 10754 10755 10756 10757 10758 10759 10748 10749 10750 10751 10752 10753 10718 10719 10720 10721 10722 10723 20426 20427 20428 20429 20430 20431 691 692 693 694 695 696 20432 20433 20434 20435 20436 20437 703 704 705 706 707 708 20438 20439 20440 20441 20442 20443 48 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 10814 10815 10816 10817 10818 10819 20456 20457 20458 20459 20460 20461 703 704 705 706 707 708 20462 20463 20464 20465 20466 20467 36 10754 10755 10756 10757 10758 10759 703 704 705 706 707 708 10814 10815 10816 10817 10818 10819 20438 20439 20440 20441 20442 20443 20456 20457 20458 20459 20460 20461 10808 10809 10810 10811 10812 10813 48 9302 9303 9304 9305 9306 9307 9296 9297 9298 9299 9300 9301 9218 9219 9220 9221 9222 9223 9236 9237 9238 9239 9240 9241 721 722 723 724 725 726 20468 20469 20470 20471 20472 20473 727 728 729 730 731 732 20474 20475 20476 20477 20478 20479 48 9332 9333 9334 9335 9336 9337 9326 9327 9328 9329 9330 9331 9302 9303 9304 9305 9306 9307 20474 20475 20476 20477 20478 20479 727 728 729 730 731 732 20480 20481 20482 20483 20484 20485 733 734 735 736 737 738 20486 20487 20488 20489 20490 20491 48 9368 9369 9370 9371 9372 9373 9362 9363 9364 9365 9366 9367 9332 9333 9334 9335 9336 9337 20486 20487 20488 20489 20490 20491 733 734 735 736 737 738 20492 20493 20494 20495 20496 20497 739 740 741 742 743 744 20498 20499 20500 20501 20502 20503 48 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 9428 9429 9430 9431 9432 9433 20528 20529 20530 20531 20532 20533 739 740 741 742 743 744 20534 20535 20536 20537 20538 20539 36 9368 9369 9370 9371 9372 9373 739 740 741 742 743 744 9428 9429 9430 9431 9432 9433 20498 20499 20500 20501 20502 20503 20528 20529 20530 20531 20532 20533 9422 9423 9424 9425 9426 9427 48 7634 7635 7636 7637 7638 7639 7628 7629 7630 7631 7632 7633 7550 7551 7552 7553 7554 7555 7568 7569 7570 7571 7572 7573 757 758 759 760 761 762 20540 20541 20542 20543 20544 20545 763 764 765 766 767 768 20546 20547 20548 20549 20550 20551 48 7664 7665 7666 7667 7668 7669 7658 7659 7660 7661 7662 7663 7634 7635 7636 7637 7638 7639 20546 20547 20548 20549 20550 20551 763 764 765 766 767 768 20552 20553 20554 20555 20556 20557 769 770 771 772 773 774 20558 20559 20560 20561 20562 20563 48 7700 7701 7702 7703 7704 7705 7694 7695 7696 7697 7698 7699 7664 7665 7666 7667 7668 7669 20558 20559 20560 20561 20562 20563 769 770 771 772 773 774 20564 20565 20566 20567 20568 20569 775 776 777 778 779 780 20570 20571 20572 20573 20574 20575 48 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 7760 7761 7762 7763 7764 7765 20588 20589 20590 20591 20592 20593 775 776 777 778 779 780 20594 20595 20596 20597 20598 20599 36 7700 7701 7702 7703 7704 7705 775 776 777 778 779 780 7760 7761 7762 7763 7764 7765 20570 20571 20572 20573 20574 20575 20588 20589 20590 20591 20592 20593 7754 7755 7756 7757 7758 7759 48 5966 5967 5968 5969 5970 5971 5960 5961 5962 5963 5964 5965 5882 5883 5884 5885 5886 5887 5900 5901 5902 5903 5904 5905 793 794 795 796 797 798 20600 20601 20602 20603 20604 20605 799 800 801 802 803 804 20606 20607 20608 20609 20610 20611 48 5996 5997 5998 5999 6000 6001 5990 5991 5992 5993 5994 5995 5966 5967 5968 5969 5970 5971 20606 20607 20608 20609 20610 20611 799 800 801 802 803 804 20612 20613 20614 20615 20616 20617 805 806 807 808 809 810 20618 20619 20620 20621 20622 20623 48 6032 6033 6034 6035 6036 6037 6026 6027 6028 6029 6030 6031 5996 5997 5998 5999 6000 6001 20618 20619 20620 20621 20622 20623 805 806 807 808 809 810 20624 20625 20626 20627 20628 20629 811 812 813 814 815 816 20630 20631 20632 20633 20634 20635 48 20339 20340 20341 20342 20343 20344 20636 20637 20638 20639 20640 20641 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 6092 6093 6094 6095 6096 6097 20642 20643 20644 20645 20646 20647 811 812 813 814 815 816 20648 20649 20650 20651 20652 20653 36 6032 6033 6034 6035 6036 6037 811 812 813 814 815 816 6092 6093 6094 6095 6096 6097 20630 20631 20632 20633 20634 20635 20642 20643 20644 20645 20646 20647 6086 6087 6088 6089 6090 6091 36 20654 20655 20656 20657 20658 20659 823 824 825 826 827 828 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20660 20661 20662 20663 20664 20665 48 20339 20340 20341 20342 20343 20344 20636 20637 20638 20639 20640 20641 19382 19383 19384 19385 19386 19387 20684 20685 20686 20687 20688 20689 20666 20667 20668 20669 20670 20671 20678 20679 20680 20681 20682 20683 823 824 825 826 827 828 20690 20691 20692 20693 20694 20695 48 20654 20655 20656 20657 20658 20659 20702 20703 20704 20705 20706 20707 20696 20697 20698 20699 20700 20701 20708 20709 20710 20711 20712 20713 835 836 837 838 839 840 20714 20715 20716 20717 20718 20719 823 824 825 826 827 828 20672 20673 20674 20675 20676 20677 48 20696 20697 20698 20699 20700 20701 20726 20727 20728 20729 20730 20731 20720 20721 20722 20723 20724 20725 20732 20733 20734 20735 20736 20737 847 848 849 850 851 852 20738 20739 20740 20741 20742 20743 835 836 837 838 839 840 20708 20709 20710 20711 20712 20713 48 20720 20721 20722 20723 20724 20725 20750 20751 20752 20753 20754 20755 20744 20745 20746 20747 20748 20749 20756 20757 20758 20759 20760 20761 859 860 861 862 863 864 20762 20763 20764 20765 20766 20767 847 848 849 850 851 852 20732 20733 20734 20735 20736 20737 36 20768 20769 20770 20771 20772 20773 817 818 819 820 821 822 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20774 20775 20776 20777 20778 20779 48 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 19370 19371 19372 19373 19374 19375 20798 20799 20800 20801 20802 20803 20780 20781 20782 20783 20784 20785 20792 20793 20794 20795 20796 20797 817 818 819 820 821 822 20804 20805 20806 20807 20808 20809 48 20768 20769 20770 20771 20772 20773 20816 20817 20818 20819 20820 20821 20810 20811 20812 20813 20814 20815 20822 20823 20824 20825 20826 20827 829 830 831 832 833 834 20828 20829 20830 20831 20832 20833 817 818 819 820 821 822 20786 20787 20788 20789 20790 20791 48 20810 20811 20812 20813 20814 20815 20840 20841 20842 20843 20844 20845 20834 20835 20836 20837 20838 20839 20846 20847 20848 20849 20850 20851 841 842 843 844 845 846 20852 20853 20854 20855 20856 20857 829 830 831 832 833 834 20822 20823 20824 20825 20826 20827 48 20834 20835 20836 20837 20838 20839 20864 20865 20866 20867 20868 20869 20858 20859 20860 20861 20862 20863 20870 20871 20872 20873 20874 20875 853 854 855 856 857 858 20876 20877 20878 20879 20880 20881 841 842 843 844 845 846 20846 20847 20848 20849 20850 20851 36 20882 20883 20884 20885 20886 20887 889 890 891 892 893 894 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20888 20889 20890 20891 20892 20893 48 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20912 20913 20914 20915 20916 20917 20894 20895 20896 20897 20898 20899 20906 20907 20908 20909 20910 20911 889 890 891 892 893 894 20918 20919 20920 20921 20922 20923 48 20882 20883 20884 20885 20886 20887 20930 20931 20932 20933 20934 20935 20924 20925 20926 20927 20928 20929 20936 20937 20938 20939 20940 20941 895 896 897 898 899 900 20942 20943 20944 20945 20946 20947 889 890 891 892 893 894 20900 20901 20902 20903 20904 20905 48 20924 20925 20926 20927 20928 20929 20954 20955 20956 20957 20958 20959 20948 20949 20950 20951 20952 20953 20960 20961 20962 20963 20964 20965 901 902 903 904 905 906 20966 20967 20968 20969 20970 20971 895 896 897 898 899 900 20936 20937 20938 20939 20940 20941 48 20948 20949 20950 20951 20952 20953 20978 20979 20980 20981 20982 20983 20972 20973 20974 20975 20976 20977 20984 20985 20986 20987 20988 20989 907 908 909 910 911 912 20990 20991 20992 20993 20994 20995 901 902 903 904 905 906 20960 20961 20962 20963 20964 20965 36 20996 20997 20998 20999 21000 21001 925 926 927 928 929 930 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21002 21003 21004 21005 21006 21007 48 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 19352 19353 19354 19355 19356 19357 21026 21027 21028 21029 21030 21031 21008 21009 21010 21011 21012 21013 21020 21021 21022 21023 21024 21025 925 926 927 928 929 930 21032 21033 21034 21035 21036 21037 48 20996 20997 20998 20999 21000 21001 21044 21045 21046 21047 21048 21049 21038 21039 21040 21041 21042 21043 21050 21051 21052 21053 21054 21055 931 932 933 934 935 936 21056 21057 21058 21059 21060 21061 925 926 927 928 929 930 21014 21015 21016 21017 21018 21019 48 21038 21039 21040 21041 21042 21043 21068 21069 21070 21071 21072 21073 21062 21063 21064 21065 21066 21067 21074 21075 21076 21077 21078 21079 937 938 939 940 941 942 21080 21081 21082 21083 21084 21085 931 932 933 934 935 936 21050 21051 21052 21053 21054 21055 48 21062 21063 21064 21065 21066 21067 21092 21093 21094 21095 21096 21097 21086 21087 21088 21089 21090 21091 21098 21099 21100 21101 21102 21103 943 944 945 946 947 948 21104 21105 21106 21107 21108 21109 937 938 939 940 941 942 21074 21075 21076 21077 21078 21079 24 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21124 21128 21129 21130 21125 21126 21127 21131 21132 21133 45 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21125 21126 21127 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21157 21164 21165 21166 21167 21168 21169 21158 21159 21160 21161 21162 21163 21170 21171 21172 21173 21174 21175 39 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21110 21111 21112 21131 21132 21133 21125 21126 21127 21140 21141 21142 21143 21144 21145 21134 21135 21136 21137 21138 21139 21188 21189 21190 21191 21192 21193 24 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21208 21212 21213 21214 21209 21210 21211 21215 21216 21217 24 21221 21222 21223 21218 21219 21220 21194 21195 21196 21215 21216 21217 21209 21210 21211 21224 21225 21226 21227 21228 21229 21230 21231 21232 24 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21244 21194 21195 21196 21218 21219 21220 21221 21222 21223 21245 21246 21247 24 21248 21249 21250 21251 21252 21253 21221 21222 21223 21230 21231 21232 21227 21228 21229 21257 21258 21259 21254 21255 21256 21260 21261 21262 24 21263 21264 21265 21266 21267 21268 21233 21234 21235 21245 21246 21247 21221 21222 21223 21251 21252 21253 21248 21249 21250 21269 21270 21271 24 21272 21273 21274 21275 21276 21277 21248 21249 21250 21260 21261 21262 21254 21255 21256 21281 21282 21283 21278 21279 21280 21284 21285 21286 24 21287 21288 21289 21290 21291 21292 21263 21264 21265 21269 21270 21271 21248 21249 21250 21275 21276 21277 21272 21273 21274 21293 21294 21295 24 21296 21297 21298 21299 21300 21301 21272 21273 21274 21284 21285 21286 21278 21279 21280 21305 21306 21307 21302 21303 21304 21308 21309 21310 24 21311 21312 21313 21314 21315 21316 21287 21288 21289 21293 21294 21295 21272 21273 21274 21299 21300 21301 21296 21297 21298 21317 21318 21319 39 20696 20697 20698 20699 20700 20701 21320 21321 21322 21323 21324 21325 21296 21297 21298 21308 21309 21310 21302 21303 21304 21326 21327 21328 21329 21330 21331 20654 20655 20656 20657 20658 20659 20702 20703 20704 20705 20706 20707 39 20720 20721 20722 20723 20724 20725 21332 21333 21334 21335 21336 21337 21311 21312 21313 21317 21318 21319 21296 21297 21298 21320 21321 21322 21323 21324 21325 20696 20697 20698 20699 20700 20701 20726 20727 20728 20729 20730 20731 30 20147 20148 20149 21338 21339 21340 21341 21342 21343 21209 21210 21211 21212 21213 21214 21206 21207 21208 21344 21345 21346 21347 21348 21349 20216 20217 20218 20393 20394 20395 30 20087 20088 20089 21350 21351 21352 21353 21354 21355 21227 21228 21229 21224 21225 21226 21209 21210 21211 21338 21339 21340 21341 21342 21343 20147 20148 20149 20387 20388 20389 30 20039 20040 20041 21356 21357 21358 21359 21360 21361 21254 21255 21256 21257 21258 21259 21227 21228 21229 21350 21351 21352 21353 21354 21355 20087 20088 20089 20384 20385 20386 30 19985 19986 19987 21362 21363 21364 21365 21366 21367 21278 21279 21280 21281 21282 21283 21254 21255 21256 21356 21357 21358 21359 21360 21361 20039 20040 20041 20378 20379 20380 30 19898 19899 19900 21368 21369 21370 21371 21372 21373 21302 21303 21304 21305 21306 21307 21278 21279 21280 21362 21363 21364 21365 21366 21367 19985 19986 19987 20372 20373 20374 45 20654 20655 20656 20657 20658 20659 21374 21375 21376 21377 21378 21379 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21169 21152 21153 21154 21155 21156 21157 21380 21381 21382 21383 21384 21385 21302 21303 21304 21326 21327 21328 21329 21330 21331 42 20339 20340 20341 20342 20343 20344 21386 21387 21388 21389 21390 21391 20654 20655 20656 20657 20658 20659 21326 21327 21328 21329 21330 21331 21302 21303 21304 21368 21369 21370 21371 21372 21373 19898 19899 19900 20357 20358 20359 20360 20361 20362 30 20108 20109 20110 21392 21393 21394 21395 21396 21397 21194 21195 21196 21197 21198 21199 21200 21201 21202 21398 21399 21400 21401 21402 21403 20210 20211 20212 20336 20337 20338 30 20060 20061 20062 21404 21405 21406 21407 21408 21409 21221 21222 21223 21218 21219 21220 21194 21195 21196 21392 21393 21394 21395 21396 21397 20108 20109 20110 20330 20331 20332 30 20012 20013 20014 21410 21411 21412 21413 21414 21415 21248 21249 21250 21251 21252 21253 21221 21222 21223 21404 21405 21406 21407 21408 21409 20060 20061 20062 20327 20328 20329 30 19937 19938 19939 21416 21417 21418 21419 21420 21421 21272 21273 21274 21275 21276 21277 21248 21249 21250 21410 21411 21412 21413 21414 21415 20012 20013 20014 20321 20322 20323 30 21296 21297 21298 21422 21423 21424 21425 21426 21427 21125 21126 21127 21128 21129 21130 21122 21123 21124 21428 21429 21430 21431 21432 21433 21272 21273 21274 21299 21300 21301 30 19850 19851 19852 21434 21435 21436 21437 21438 21439 21296 21297 21298 21299 21300 21301 21272 21273 21274 21416 21417 21418 21419 21420 21421 19937 19938 19939 20312 20313 20314 42 20696 20697 20698 20699 20700 20701 21440 21441 21442 21443 21444 21445 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21125 21126 21127 21422 21423 21424 21425 21426 21427 21296 21297 21298 21320 21321 21322 21323 21324 21325 42 20279 20280 20281 20282 20283 20284 21446 21447 21448 21449 21450 21451 20696 20697 20698 20699 20700 20701 21320 21321 21322 21323 21324 21325 21296 21297 21298 21434 21435 21436 21437 21438 21439 19850 19851 19852 20297 20298 20299 20300 20301 20302 27 21458 21459 21460 21461 21462 21463 21209 21210 21211 21227 21228 21229 21464 21465 21466 21467 21468 21469 21224 21225 21226 21452 21453 21454 21455 21456 21457 27 21476 21477 21478 21479 21480 21481 21194 21195 21196 21221 21222 21223 21482 21483 21484 21485 21486 21487 21218 21219 21220 21470 21471 21472 21473 21474 21475 30 20054 20055 20056 21488 21489 21490 21491 21492 21493 21233 21234 21235 21236 21237 21238 21239 21240 21241 21494 21495 21496 21497 21498 21499 20102 20103 20104 20258 20259 20260 30 20006 20007 20008 21500 21501 21502 21503 21504 21505 21263 21264 21265 21266 21267 21268 21233 21234 21235 21488 21489 21490 21491 21492 21493 20054 20055 20056 20252 20253 20254 30 19931 19932 19933 21506 21507 21508 21509 21510 21511 21287 21288 21289 21290 21291 21292 21263 21264 21265 21500 21501 21502 21503 21504 21505 20006 20007 20008 20246 20247 20248 30 21311 21312 21313 21512 21513 21514 21515 21516 21517 21110 21111 21112 21113 21114 21115 21116 21117 21118 21518 21519 21520 21521 21522 21523 21287 21288 21289 21314 21315 21316 30 20210 20211 20212 20213 20214 20215 20216 20217 20218 21344 21345 21346 21347 21348 21349 21206 21207 21208 21203 21204 21205 21200 21201 21202 21398 21399 21400 21401 21402 21403 42 20192 20193 20194 20195 20196 20197 21524 21525 21526 21527 21528 21529 20720 20721 20722 20723 20724 20725 21332 21333 21334 21335 21336 21337 21311 21312 21313 21530 21531 21532 21533 21534 21535 19844 19845 19846 20204 20205 20206 20207 20208 20209 39 21194 21195 21196 21215 21216 21217 21209 21210 21211 21464 21465 21466 21467 21468 21469 21458 21459 21460 21461 21462 21463 21536 21537 21538 21539 21540 21541 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 21487 30 20108 20109 20110 20144 20145 20146 20147 20148 20149 21338 21339 21340 21341 21342 21343 21209 21210 21211 21215 21216 21217 21194 21195 21196 21392 21393 21394 21395 21396 21397 42 20720 20721 20722 20723 20724 20725 21542 21543 21544 21545 21546 21547 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21110 21111 21112 21512 21513 21514 21515 21516 21517 21311 21312 21313 21332 21333 21334 21335 21336 21337 30 20102 20103 20104 20105 20106 20107 20108 20109 20110 21392 21393 21394 21395 21396 21397 21194 21195 21196 21242 21243 21244 21239 21240 21241 21494 21495 21496 21497 21498 21499 30 20060 20061 20062 20084 20085 20086 20087 20088 20089 21350 21351 21352 21353 21354 21355 21227 21228 21229 21230 21231 21232 21221 21222 21223 21404 21405 21406 21407 21408 21409 30 20054 20055 20056 20057 20058 20059 20060 20061 20062 21404 21405 21406 21407 21408 21409 21221 21222 21223 21245 21246 21247 21233 21234 21235 21488 21489 21490 21491 21492 21493 30 20012 20013 20014 20036 20037 20038 20039 20040 20041 21356 21357 21358 21359 21360 21361 21254 21255 21256 21260 21261 21262 21248 21249 21250 21410 21411 21412 21413 21414 21415 30 20006 20007 20008 20009 20010 20011 20012 20013 20014 21410 21411 21412 21413 21414 21415 21248 21249 21250 21269 21270 21271 21263 21264 21265 21500 21501 21502 21503 21504 21505 30 19844 19845 19846 21530 21531 21532 21533 21534 21535 21311 21312 21313 21314 21315 21316 21287 21288 21289 21506 21507 21508 21509 21510 21511 19931 19932 19933 20003 20004 20005 30 19937 19938 19939 19982 19983 19984 19985 19986 19987 21362 21363 21364 21365 21366 21367 21278 21279 21280 21284 21285 21286 21272 21273 21274 21416 21417 21418 21419 21420 21421 30 21287 21288 21289 21293 21294 21295 21272 21273 21274 21428 21429 21430 21431 21432 21433 21122 21123 21124 21119 21120 21121 21116 21117 21118 21518 21519 21520 21521 21522 21523 30 19931 19932 19933 19934 19935 19936 19937 19938 19939 21416 21417 21418 21419 21420 21421 21272 21273 21274 21293 21294 21295 21287 21288 21289 21506 21507 21508 21509 21510 21511 36 21296 21297 21298 21308 21309 21310 21302 21303 21304 21380 21381 21382 21383 21384 21385 21152 21153 21154 21155 21156 21157 21146 21147 21148 21149 21150 21151 21125 21126 21127 21422 21423 21424 21425 21426 21427 30 19850 19851 19852 19895 19896 19897 19898 19899 19900 21368 21369 21370 21371 21372 21373 21302 21303 21304 21308 21309 21310 21296 21297 21298 21434 21435 21436 21437 21438 21439 30 21311 21312 21313 21317 21318 21319 21296 21297 21298 21422 21423 21424 21425 21426 21427 21125 21126 21127 21131 21132 21133 21110 21111 21112 21512 21513 21514 21515 21516 21517 30 19844 19845 19846 19847 19848 19849 19850 19851 19852 21434 21435 21436 21437 21438 21439 21296 21297 21298 21317 21318 21319 21311 21312 21313 21530 21531 21532 21533 21534 21535 48 2053 2054 2055 2056 2057 2058 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 1009 1010 1011 1012 1013 1014 21566 21567 21568 21569 21570 21571 19826 19827 19828 19829 19830 19831 19838 19839 19840 19841 19842 19843 48 7388 7389 7390 7391 7392 7393 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 1015 1016 1017 1018 1019 1020 21590 21591 21592 21593 21594 21595 15794 15795 15796 15797 15798 15799 19820 19821 19822 19823 19824 19825 48 7376 7377 7378 7379 7380 7381 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 1027 1028 1029 1030 1031 1032 21614 21615 21616 21617 21618 21619 15782 15783 15784 15785 15786 15787 19814 19815 19816 19817 19818 19819 48 7268 7269 7270 7271 7272 7273 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 1051 1052 1053 1054 1055 1056 21638 21639 21640 21641 21642 21643 15764 15765 15766 15767 15768 15769 19808 19809 19810 19811 19812 19813 48 7256 7257 7258 7259 7260 7261 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 1063 1064 1065 1066 1067 1068 21662 21663 21664 21665 21666 21667 15752 15753 15754 15755 15756 15757 19802 19803 19804 19805 19806 19807 48 7148 7149 7150 7151 7152 7153 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 1087 1088 1089 1090 1091 1092 21686 21687 21688 21689 21690 21691 15734 15735 15736 15737 15738 15739 19796 19797 19798 19799 19800 19801 48 7136 7137 7138 7139 7140 7141 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 1099 1100 1101 1102 1103 1104 21710 21711 21712 21713 21714 21715 15722 15723 15724 15725 15726 15727 19790 19791 19792 19793 19794 19795 48 7028 7029 7030 7031 7032 7033 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 1123 1124 1125 1126 1127 1128 21734 21735 21736 21737 21738 21739 15704 15705 15706 15707 15708 15709 19784 19785 19786 19787 19788 19789 48 7016 7017 7018 7019 7020 7021 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 1135 1136 1137 1138 1139 1140 21758 21759 21760 21761 21762 21763 15692 15693 15694 15695 15696 15697 19778 19779 19780 19781 19782 19783 48 6908 6909 6910 6911 6912 6913 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 1159 1160 1161 1162 1163 1164 21782 21783 21784 21785 21786 21787 15674 15675 15676 15677 15678 15679 19772 19773 19774 19775 19776 19777 48 6896 6897 6898 6899 6900 6901 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 1171 1172 1173 1174 1175 1176 21806 21807 21808 21809 21810 21811 15662 15663 15664 15665 15666 15667 19766 19767 19768 19769 19770 19771 48 6788 6789 6790 6791 6792 6793 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 1195 1196 1197 1198 1199 1200 21830 21831 21832 21833 21834 21835 15644 15645 15646 15647 15648 15649 19760 19761 19762 19763 19764 19765 48 6776 6777 6778 6779 6780 6781 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 1207 1208 1209 1210 1211 1212 21854 21855 21856 21857 21858 21859 15632 15633 15634 15635 15636 15637 19754 19755 19756 19757 19758 19759 48 6668 6669 6670 6671 6672 6673 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 1231 1232 1233 1234 1235 1236 21878 21879 21880 21881 21882 21883 15614 15615 15616 15617 15618 15619 19748 19749 19750 19751 19752 19753 48 6656 6657 6658 6659 6660 6661 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 1243 1244 1245 1246 1247 1248 21902 21903 21904 21905 21906 21907 15602 15603 15604 15605 15606 15607 19742 19743 19744 19745 19746 19747 48 6548 6549 6550 6551 6552 6553 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 1267 1268 1269 1270 1271 1272 21926 21927 21928 21929 21930 21931 15584 15585 15586 15587 15588 15589 19736 19737 19738 19739 19740 19741 48 6536 6537 6538 6539 6540 6541 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 1279 1280 1281 1282 1283 1284 21950 21951 21952 21953 21954 21955 15572 15573 15574 15575 15576 15577 19730 19731 19732 19733 19734 19735 48 6428 6429 6430 6431 6432 6433 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 1303 1304 1305 1306 1307 1308 21974 21975 21976 21977 21978 21979 15554 15555 15556 15557 15558 15559 19724 19725 19726 19727 19728 19729 48 6416 6417 6418 6419 6420 6421 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 1315 1316 1317 1318 1319 1320 21998 21999 22000 22001 22002 22003 15542 15543 15544 15545 15546 15547 19718 19719 19720 19721 19722 19723 48 6308 6309 6310 6311 6312 6313 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 1339 1340 1341 1342 1343 1344 22022 22023 22024 22025 22026 22027 15524 15525 15526 15527 15528 15529 19712 19713 19714 19715 19716 19717 48 6296 6297 6298 6299 6300 6301 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 1351 1352 1353 1354 1355 1356 22046 22047 22048 22049 22050 22051 15512 15513 15514 15515 15516 15517 19706 19707 19708 19709 19710 19711 48 6188 6189 6190 6191 6192 6193 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 1375 1376 1377 1378 1379 1380 22070 22071 22072 22073 22074 22075 15494 15495 15496 15497 15498 15499 19700 19701 19702 19703 19704 19705 48 6176 6177 6178 6179 6180 6181 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 1387 1388 1389 1390 1391 1392 22094 22095 22096 22097 22098 22099 15482 15483 15484 15485 15486 15487 19694 19695 19696 19697 19698 19699 48 19382 19383 19384 19385 19386 19387 20684 20685 20686 20687 20688 20689 20666 20667 20668 20669 20670 20671 22100 22101 22102 22103 22104 22105 1411 1412 1413 1414 1415 1416 22106 22107 22108 22109 22110 22111 15464 15465 15466 15467 15468 15469 19688 19689 19690 19691 19692 19693 48 6056 6057 6058 6059 6060 6061 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 1495 1496 1497 1498 1499 1500 22130 22131 22132 22133 22134 22135 15422 15423 15424 15425 15426 15427 19682 19683 19684 19685 19686 19687 48 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 1009 1010 1011 1012 1013 1014 1003 1004 1005 1006 1007 1008 997 998 999 1000 1001 1002 22148 22149 22150 22151 22152 22153 48 21578 21579 21580 21581 21582 21583 22154 22155 22156 22157 22158 22159 22136 22137 22138 22139 22140 22141 22148 22149 22150 22151 22152 22153 997 998 999 1000 1001 1002 1021 1022 1023 1024 1025 1026 1015 1016 1017 1018 1019 1020 21584 21585 21586 21587 21588 21589 48 21602 21603 21604 21605 21606 21607 22160 22161 22162 22163 22164 22165 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 1015 1016 1017 1018 1019 1020 1033 1034 1035 1036 1037 1038 1027 1028 1029 1030 1031 1032 21608 21609 21610 21611 21612 21613 48 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 1027 1028 1029 1030 1031 1032 1045 1046 1047 1048 1049 1050 1039 1040 1041 1042 1043 1044 22178 22179 22180 22181 22182 22183 48 21626 21627 21628 21629 21630 21631 22184 22185 22186 22187 22188 22189 22166 22167 22168 22169 22170 22171 22178 22179 22180 22181 22182 22183 1039 1040 1041 1042 1043 1044 1057 1058 1059 1060 1061 1062 1051 1052 1053 1054 1055 1056 21632 21633 21634 21635 21636 21637 48 21650 21651 21652 21653 21654 21655 22190 22191 22192 22193 22194 22195 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 1051 1052 1053 1054 1055 1056 1069 1070 1071 1072 1073 1074 1063 1064 1065 1066 1067 1068 21656 21657 21658 21659 21660 21661 48 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 1063 1064 1065 1066 1067 1068 1081 1082 1083 1084 1085 1086 1075 1076 1077 1078 1079 1080 22208 22209 22210 22211 22212 22213 48 21674 21675 21676 21677 21678 21679 22214 22215 22216 22217 22218 22219 22196 22197 22198 22199 22200 22201 22208 22209 22210 22211 22212 22213 1075 1076 1077 1078 1079 1080 1093 1094 1095 1096 1097 1098 1087 1088 1089 1090 1091 1092 21680 21681 21682 21683 21684 21685 48 21698 21699 21700 21701 21702 21703 22220 22221 22222 22223 22224 22225 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 1087 1088 1089 1090 1091 1092 1105 1106 1107 1108 1109 1110 1099 1100 1101 1102 1103 1104 21704 21705 21706 21707 21708 21709 48 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 1099 1100 1101 1102 1103 1104 1117 1118 1119 1120 1121 1122 1111 1112 1113 1114 1115 1116 22238 22239 22240 22241 22242 22243 48 21722 21723 21724 21725 21726 21727 22244 22245 22246 22247 22248 22249 22226 22227 22228 22229 22230 22231 22238 22239 22240 22241 22242 22243 1111 1112 1113 1114 1115 1116 1129 1130 1131 1132 1133 1134 1123 1124 1125 1126 1127 1128 21728 21729 21730 21731 21732 21733 48 21746 21747 21748 21749 21750 21751 22250 22251 22252 22253 22254 22255 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 1123 1124 1125 1126 1127 1128 1141 1142 1143 1144 1145 1146 1135 1136 1137 1138 1139 1140 21752 21753 21754 21755 21756 21757 48 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 1135 1136 1137 1138 1139 1140 1153 1154 1155 1156 1157 1158 1147 1148 1149 1150 1151 1152 22268 22269 22270 22271 22272 22273 48 21770 21771 21772 21773 21774 21775 22274 22275 22276 22277 22278 22279 22256 22257 22258 22259 22260 22261 22268 22269 22270 22271 22272 22273 1147 1148 1149 1150 1151 1152 1165 1166 1167 1168 1169 1170 1159 1160 1161 1162 1163 1164 21776 21777 21778 21779 21780 21781 48 21794 21795 21796 21797 21798 21799 22280 22281 22282 22283 22284 22285 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 1159 1160 1161 1162 1163 1164 1177 1178 1179 1180 1181 1182 1171 1172 1173 1174 1175 1176 21800 21801 21802 21803 21804 21805 48 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 1171 1172 1173 1174 1175 1176 1189 1190 1191 1192 1193 1194 1183 1184 1185 1186 1187 1188 22298 22299 22300 22301 22302 22303 48 21818 21819 21820 21821 21822 21823 22304 22305 22306 22307 22308 22309 22286 22287 22288 22289 22290 22291 22298 22299 22300 22301 22302 22303 1183 1184 1185 1186 1187 1188 1201 1202 1203 1204 1205 1206 1195 1196 1197 1198 1199 1200 21824 21825 21826 21827 21828 21829 48 21842 21843 21844 21845 21846 21847 22310 22311 22312 22313 22314 22315 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 1195 1196 1197 1198 1199 1200 1213 1214 1215 1216 1217 1218 1207 1208 1209 1210 1211 1212 21848 21849 21850 21851 21852 21853 48 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 1207 1208 1209 1210 1211 1212 1225 1226 1227 1228 1229 1230 1219 1220 1221 1222 1223 1224 22328 22329 22330 22331 22332 22333 48 21866 21867 21868 21869 21870 21871 22334 22335 22336 22337 22338 22339 22316 22317 22318 22319 22320 22321 22328 22329 22330 22331 22332 22333 1219 1220 1221 1222 1223 1224 1237 1238 1239 1240 1241 1242 1231 1232 1233 1234 1235 1236 21872 21873 21874 21875 21876 21877 48 21890 21891 21892 21893 21894 21895 22340 22341 22342 22343 22344 22345 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 1231 1232 1233 1234 1235 1236 1249 1250 1251 1252 1253 1254 1243 1244 1245 1246 1247 1248 21896 21897 21898 21899 21900 21901 48 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 1243 1244 1245 1246 1247 1248 1261 1262 1263 1264 1265 1266 1255 1256 1257 1258 1259 1260 22358 22359 22360 22361 22362 22363 48 21914 21915 21916 21917 21918 21919 22364 22365 22366 22367 22368 22369 22346 22347 22348 22349 22350 22351 22358 22359 22360 22361 22362 22363 1255 1256 1257 1258 1259 1260 1273 1274 1275 1276 1277 1278 1267 1268 1269 1270 1271 1272 21920 21921 21922 21923 21924 21925 48 21938 21939 21940 21941 21942 21943 22370 22371 22372 22373 22374 22375 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 1267 1268 1269 1270 1271 1272 1285 1286 1287 1288 1289 1290 1279 1280 1281 1282 1283 1284 21944 21945 21946 21947 21948 21949 48 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 1279 1280 1281 1282 1283 1284 1297 1298 1299 1300 1301 1302 1291 1292 1293 1294 1295 1296 22388 22389 22390 22391 22392 22393 48 21962 21963 21964 21965 21966 21967 22394 22395 22396 22397 22398 22399 22376 22377 22378 22379 22380 22381 22388 22389 22390 22391 22392 22393 1291 1292 1293 1294 1295 1296 1309 1310 1311 1312 1313 1314 1303 1304 1305 1306 1307 1308 21968 21969 21970 21971 21972 21973 48 21986 21987 21988 21989 21990 21991 22400 22401 22402 22403 22404 22405 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 1303 1304 1305 1306 1307 1308 1321 1322 1323 1324 1325 1326 1315 1316 1317 1318 1319 1320 21992 21993 21994 21995 21996 21997 48 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 1315 1316 1317 1318 1319 1320 1333 1334 1335 1336 1337 1338 1327 1328 1329 1330 1331 1332 22418 22419 22420 22421 22422 22423 48 22010 22011 22012 22013 22014 22015 22424 22425 22426 22427 22428 22429 22406 22407 22408 22409 22410 22411 22418 22419 22420 22421 22422 22423 1327 1328 1329 1330 1331 1332 1345 1346 1347 1348 1349 1350 1339 1340 1341 1342 1343 1344 22016 22017 22018 22019 22020 22021 48 22034 22035 22036 22037 22038 22039 22430 22431 22432 22433 22434 22435 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 1339 1340 1341 1342 1343 1344 1357 1358 1359 1360 1361 1362 1351 1352 1353 1354 1355 1356 22040 22041 22042 22043 22044 22045 48 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 1351 1352 1353 1354 1355 1356 1369 1370 1371 1372 1373 1374 1363 1364 1365 1366 1367 1368 22448 22449 22450 22451 22452 22453 48 22058 22059 22060 22061 22062 22063 22454 22455 22456 22457 22458 22459 22436 22437 22438 22439 22440 22441 22448 22449 22450 22451 22452 22453 1363 1364 1365 1366 1367 1368 1381 1382 1383 1384 1385 1386 1375 1376 1377 1378 1379 1380 22064 22065 22066 22067 22068 22069 48 22082 22083 22084 22085 22086 22087 22460 22461 22462 22463 22464 22465 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 1375 1376 1377 1378 1379 1380 1393 1394 1395 1396 1397 1398 1387 1388 1389 1390 1391 1392 22088 22089 22090 22091 22092 22093 48 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 1387 1388 1389 1390 1391 1392 1405 1406 1407 1408 1409 1410 1399 1400 1401 1402 1403 1404 22478 22479 22480 22481 22482 22483 48 20666 20667 20668 20669 20670 20671 22484 22485 22486 22487 22488 22489 22466 22467 22468 22469 22470 22471 22478 22479 22480 22481 22482 22483 1399 1400 1401 1402 1403 1404 1417 1418 1419 1420 1421 1422 1411 1412 1413 1414 1415 1416 22100 22101 22102 22103 22104 22105 48 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 22100 22101 22102 22103 22104 22105 1411 1412 1413 1414 1415 1416 1429 1430 1431 1432 1433 1434 1423 1424 1425 1426 1427 1428 22490 22491 22492 22493 22494 22495 48 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20654 20655 20656 20657 20658 20659 22490 22491 22492 22493 22494 22495 1423 1424 1425 1426 1427 1428 1441 1442 1443 1444 1445 1446 1435 1436 1437 1438 1439 1440 22496 22497 22498 22499 22500 22501 48 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20696 20697 20698 20699 20700 20701 22496 22497 22498 22499 22500 22501 1435 1436 1437 1438 1439 1440 1453 1454 1455 1456 1457 1458 1447 1448 1449 1450 1451 1452 22502 22503 22504 22505 22506 22507 48 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20720 20721 20722 20723 20724 20725 22502 22503 22504 22505 22506 22507 1447 1448 1449 1450 1451 1452 1465 1466 1467 1468 1469 1470 1459 1460 1461 1462 1463 1464 22508 22509 22510 22511 22512 22513 48 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 20744 20745 20746 20747 20748 20749 22508 22509 22510 22511 22512 22513 1459 1460 1461 1462 1463 1464 1477 1478 1479 1480 1481 1482 1471 1472 1473 1474 1475 1476 22526 22527 22528 22529 22530 22531 48 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22514 22515 22516 22517 22518 22519 22526 22527 22528 22529 22530 22531 1471 1472 1473 1474 1475 1476 1489 1490 1491 1492 1493 1494 1483 1484 1485 1486 1487 1488 22544 22545 22546 22547 22548 22549 48 22118 22119 22120 22121 22122 22123 22550 22551 22552 22553 22554 22555 22532 22533 22534 22535 22536 22537 22544 22545 22546 22547 22548 22549 1483 1484 1485 1486 1487 1488 1501 1502 1503 1504 1505 1506 1495 1496 1497 1498 1499 1500 22124 22125 22126 22127 22128 22129 48 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 1495 1496 1497 1498 1499 1500 1513 1514 1515 1516 1517 1518 1507 1508 1509 1510 1511 1512 22568 22569 22570 22571 22572 22573 48 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 22136 22137 22138 22139 22140 22141 22610 22611 22612 22613 22614 22615 48 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22586 22587 22588 22589 22590 22591 22580 22581 22582 22583 22584 22585 22574 22575 22576 22577 22578 22579 22640 22641 22642 22643 22644 22645 48 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22628 22629 22630 22631 22632 22633 22622 22623 22624 22625 22626 22627 22616 22617 22618 22619 22620 22621 22670 22671 22672 22673 22674 22675 48 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22658 22659 22660 22661 22662 22663 22652 22653 22654 22655 22656 22657 22646 22647 22648 22649 22650 22651 22700 22701 22702 22703 22704 22705 36 22688 22689 22690 22691 22692 22693 22676 22677 22678 22679 22680 22681 22706 22707 22708 22709 22710 22711 22682 22683 22684 22685 22686 22687 22718 22719 22720 22721 22722 22723 22712 22713 22714 22715 22716 22717 48 15386 15387 15388 15389 15390 15391 22724 22725 22726 22727 22728 22729 22706 22707 22708 22709 22710 22711 22718 22719 22720 22721 22722 22723 22676 22677 22678 22679 22680 22681 22730 22731 22732 22733 22734 22735 14108 14109 14110 14111 14112 14113 18644 18645 18646 18647 18648 18649 48 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 21578 21579 21580 21581 21582 21583 22772 22773 22774 22775 22776 22777 48 9056 9057 9058 9059 9060 9061 22778 22779 22780 22781 22782 22783 22736 22737 22738 22739 22740 22741 22772 22773 22774 22775 22776 22777 21578 21579 21580 21581 21582 21583 21572 21573 21574 21575 21576 21577 7388 7389 7390 7391 7392 7393 19328 19329 19330 19331 19332 19333 48 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22748 22749 22750 22751 22752 22753 22742 22743 22744 22745 22746 22747 22736 22737 22738 22739 22740 22741 22808 22809 22810 22811 22812 22813 48 10454 10455 10456 10457 10458 10459 22814 22815 22816 22817 22818 22819 22784 22785 22786 22787 22788 22789 22808 22809 22810 22811 22812 22813 22736 22737 22738 22739 22740 22741 22778 22779 22780 22781 22782 22783 9056 9057 9058 9059 9060 9061 19196 19197 19198 19199 19200 19201 48 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22796 22797 22798 22799 22800 22801 22790 22791 22792 22793 22794 22795 22784 22785 22786 22787 22788 22789 22844 22845 22846 22847 22848 22849 48 12110 12111 12112 12113 12114 12115 22850 22851 22852 22853 22854 22855 22820 22821 22822 22823 22824 22825 22844 22845 22846 22847 22848 22849 22784 22785 22786 22787 22788 22789 22814 22815 22816 22817 22818 22819 10454 10455 10456 10457 10458 10459 19064 19065 19066 19067 19068 19069 48 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22832 22833 22834 22835 22836 22837 22826 22827 22828 22829 22830 22831 22820 22821 22822 22823 22824 22825 22880 22881 22882 22883 22884 22885 48 14060 14061 14062 14063 14064 14065 22886 22887 22888 22889 22890 22891 22856 22857 22858 22859 22860 22861 22880 22881 22882 22883 22884 22885 22820 22821 22822 22823 22824 22825 22850 22851 22852 22853 22854 22855 12110 12111 12112 12113 12114 12115 18770 18771 18772 18773 18774 18775 36 22868 22869 22870 22871 22872 22873 22856 22857 22858 22859 22860 22861 22892 22893 22894 22895 22896 22897 22862 22863 22864 22865 22866 22867 22904 22905 22906 22907 22908 22909 22898 22899 22900 22901 22902 22903 48 15356 15357 15358 15359 15360 15361 22910 22911 22912 22913 22914 22915 22892 22893 22894 22895 22896 22897 22904 22905 22906 22907 22908 22909 22856 22857 22858 22859 22860 22861 22886 22887 22888 22889 22890 22891 14060 14061 14062 14063 14064 14065 18638 18639 18640 18641 18642 18643 48 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 21602 21603 21604 21605 21606 21607 22952 22953 22954 22955 22956 22957 48 9044 9045 9046 9047 9048 9049 22958 22959 22960 22961 22962 22963 22916 22917 22918 22919 22920 22921 22952 22953 22954 22955 22956 22957 21602 21603 21604 21605 21606 21607 21596 21597 21598 21599 21600 21601 7376 7377 7378 7379 7380 7381 19334 19335 19336 19337 19338 19339 48 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22928 22929 22930 22931 22932 22933 22922 22923 22924 22925 22926 22927 22916 22917 22918 22919 22920 22921 22988 22989 22990 22991 22992 22993 48 10442 10443 10444 10445 10446 10447 22994 22995 22996 22997 22998 22999 22964 22965 22966 22967 22968 22969 22988 22989 22990 22991 22992 22993 22916 22917 22918 22919 22920 22921 22958 22959 22960 22961 22962 22963 9044 9045 9046 9047 9048 9049 19202 19203 19204 19205 19206 19207 48 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 22976 22977 22978 22979 22980 22981 22970 22971 22972 22973 22974 22975 22964 22965 22966 22967 22968 22969 23024 23025 23026 23027 23028 23029 48 12098 12099 12100 12101 12102 12103 23030 23031 23032 23033 23034 23035 23000 23001 23002 23003 23004 23005 23024 23025 23026 23027 23028 23029 22964 22965 22966 22967 22968 22969 22994 22995 22996 22997 22998 22999 10442 10443 10444 10445 10446 10447 19070 19071 19072 19073 19074 19075 48 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23012 23013 23014 23015 23016 23017 23006 23007 23008 23009 23010 23011 23000 23001 23002 23003 23004 23005 23060 23061 23062 23063 23064 23065 48 14012 14013 14014 14015 14016 14017 23066 23067 23068 23069 23070 23071 23036 23037 23038 23039 23040 23041 23060 23061 23062 23063 23064 23065 23000 23001 23002 23003 23004 23005 23030 23031 23032 23033 23034 23035 12098 12099 12100 12101 12102 12103 18776 18777 18778 18779 18780 18781 36 23048 23049 23050 23051 23052 23053 23036 23037 23038 23039 23040 23041 23072 23073 23074 23075 23076 23077 23042 23043 23044 23045 23046 23047 23084 23085 23086 23087 23088 23089 23078 23079 23080 23081 23082 23083 48 15326 15327 15328 15329 15330 15331 23090 23091 23092 23093 23094 23095 23072 23073 23074 23075 23076 23077 23084 23085 23086 23087 23088 23089 23036 23037 23038 23039 23040 23041 23066 23067 23068 23069 23070 23071 14012 14013 14014 14015 14016 14017 18632 18633 18634 18635 18636 18637 48 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 22166 22167 22168 22169 22170 22171 23132 23133 23134 23135 23136 23137 48 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23108 23109 23110 23111 23112 23113 23102 23103 23104 23105 23106 23107 23096 23097 23098 23099 23100 23101 23162 23163 23164 23165 23166 23167 48 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23150 23151 23152 23153 23154 23155 23144 23145 23146 23147 23148 23149 23138 23139 23140 23141 23142 23143 23192 23193 23194 23195 23196 23197 48 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23180 23181 23182 23183 23184 23185 23174 23175 23176 23177 23178 23179 23168 23169 23170 23171 23172 23173 23222 23223 23224 23225 23226 23227 36 23210 23211 23212 23213 23214 23215 23198 23199 23200 23201 23202 23203 23228 23229 23230 23231 23232 23233 23204 23205 23206 23207 23208 23209 23240 23241 23242 23243 23244 23245 23234 23235 23236 23237 23238 23239 48 15296 15297 15298 15299 15300 15301 23246 23247 23248 23249 23250 23251 23228 23229 23230 23231 23232 23233 23240 23241 23242 23243 23244 23245 23198 23199 23200 23201 23202 23203 23252 23253 23254 23255 23256 23257 13964 13965 13966 13967 13968 13969 18626 18627 18628 18629 18630 18631 48 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 21626 21627 21628 21629 21630 21631 23294 23295 23296 23297 23298 23299 48 8936 8937 8938 8939 8940 8941 23300 23301 23302 23303 23304 23305 23258 23259 23260 23261 23262 23263 23294 23295 23296 23297 23298 23299 21626 21627 21628 21629 21630 21631 21620 21621 21622 21623 21624 21625 7268 7269 7270 7271 7272 7273 19316 19317 19318 19319 19320 19321 48 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23270 23271 23272 23273 23274 23275 23264 23265 23266 23267 23268 23269 23258 23259 23260 23261 23262 23263 23330 23331 23332 23333 23334 23335 48 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23318 23319 23320 23321 23322 23323 23312 23313 23314 23315 23316 23317 23306 23307 23308 23309 23310 23311 23360 23361 23362 23363 23364 23365 48 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23348 23349 23350 23351 23352 23353 23342 23343 23344 23345 23346 23347 23336 23337 23338 23339 23340 23341 23390 23391 23392 23393 23394 23395 48 13916 13917 13918 13919 13920 13921 23396 23397 23398 23399 23400 23401 23366 23367 23368 23369 23370 23371 23390 23391 23392 23393 23394 23395 23336 23337 23338 23339 23340 23341 23402 23403 23404 23405 23406 23407 11990 11991 11992 11993 11994 11995 18758 18759 18760 18761 18762 18763 36 23378 23379 23380 23381 23382 23383 23366 23367 23368 23369 23370 23371 23408 23409 23410 23411 23412 23413 23372 23373 23374 23375 23376 23377 23420 23421 23422 23423 23424 23425 23414 23415 23416 23417 23418 23419 48 15266 15267 15268 15269 15270 15271 23426 23427 23428 23429 23430 23431 23408 23409 23410 23411 23412 23413 23420 23421 23422 23423 23424 23425 23366 23367 23368 23369 23370 23371 23396 23397 23398 23399 23400 23401 13916 13917 13918 13919 13920 13921 18620 18621 18622 18623 18624 18625 48 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 21650 21651 21652 21653 21654 21655 23468 23469 23470 23471 23472 23473 48 8924 8925 8926 8927 8928 8929 23474 23475 23476 23477 23478 23479 23432 23433 23434 23435 23436 23437 23468 23469 23470 23471 23472 23473 21650 21651 21652 21653 21654 21655 21644 21645 21646 21647 21648 21649 7256 7257 7258 7259 7260 7261 19322 19323 19324 19325 19326 19327 48 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23444 23445 23446 23447 23448 23449 23438 23439 23440 23441 23442 23443 23432 23433 23434 23435 23436 23437 23504 23505 23506 23507 23508 23509 48 19046 19047 19048 19049 19050 19051 23510 23511 23512 23513 23514 23515 23480 23481 23482 23483 23484 23485 23504 23505 23506 23507 23508 23509 23432 23433 23434 23435 23436 23437 23474 23475 23476 23477 23478 23479 8924 8925 8926 8927 8928 8929 19190 19191 19192 19193 19194 19195 48 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23492 23493 23494 23495 23496 23497 23486 23487 23488 23489 23490 23491 23480 23481 23482 23483 23484 23485 23540 23541 23542 23543 23544 23545 48 11978 11979 11980 11981 11982 11983 23546 23547 23548 23549 23550 23551 23516 23517 23518 23519 23520 23521 23540 23541 23542 23543 23544 23545 23480 23481 23482 23483 23484 23485 23510 23511 23512 23513 23514 23515 19046 19047 19048 19049 19050 19051 19058 19059 19060 19061 19062 19063 48 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23528 23529 23530 23531 23532 23533 23522 23523 23524 23525 23526 23527 23516 23517 23518 23519 23520 23521 23576 23577 23578 23579 23580 23581 48 13868 13869 13870 13871 13872 13873 23582 23583 23584 23585 23586 23587 23552 23553 23554 23555 23556 23557 23576 23577 23578 23579 23580 23581 23516 23517 23518 23519 23520 23521 23546 23547 23548 23549 23550 23551 11978 11979 11980 11981 11982 11983 18764 18765 18766 18767 18768 18769 36 23564 23565 23566 23567 23568 23569 23552 23553 23554 23555 23556 23557 23588 23589 23590 23591 23592 23593 23558 23559 23560 23561 23562 23563 23600 23601 23602 23603 23604 23605 23594 23595 23596 23597 23598 23599 48 15236 15237 15238 15239 15240 15241 23606 23607 23608 23609 23610 23611 23588 23589 23590 23591 23592 23593 23600 23601 23602 23603 23604 23605 23552 23553 23554 23555 23556 23557 23582 23583 23584 23585 23586 23587 13868 13869 13870 13871 13872 13873 18614 18615 18616 18617 18618 18619 48 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 22196 22197 22198 22199 22200 22201 23648 23649 23650 23651 23652 23653 48 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23624 23625 23626 23627 23628 23629 23618 23619 23620 23621 23622 23623 23612 23613 23614 23615 23616 23617 23678 23679 23680 23681 23682 23683 48 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23666 23667 23668 23669 23670 23671 23660 23661 23662 23663 23664 23665 23654 23655 23656 23657 23658 23659 23708 23709 23710 23711 23712 23713 48 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23696 23697 23698 23699 23700 23701 23690 23691 23692 23693 23694 23695 23684 23685 23686 23687 23688 23689 23738 23739 23740 23741 23742 23743 36 23726 23727 23728 23729 23730 23731 23714 23715 23716 23717 23718 23719 23744 23745 23746 23747 23748 23749 23720 23721 23722 23723 23724 23725 23756 23757 23758 23759 23760 23761 23750 23751 23752 23753 23754 23755 48 15206 15207 15208 15209 15210 15211 23762 23763 23764 23765 23766 23767 23744 23745 23746 23747 23748 23749 23756 23757 23758 23759 23760 23761 23714 23715 23716 23717 23718 23719 23768 23769 23770 23771 23772 23773 13820 13821 13822 13823 13824 13825 18608 18609 18610 18611 18612 18613 48 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 21674 21675 21676 21677 21678 21679 23810 23811 23812 23813 23814 23815 48 8816 8817 8818 8819 8820 8821 23816 23817 23818 23819 23820 23821 23774 23775 23776 23777 23778 23779 23810 23811 23812 23813 23814 23815 21674 21675 21676 21677 21678 21679 21668 21669 21670 21671 21672 21673 7148 7149 7150 7151 7152 7153 19304 19305 19306 19307 19308 19309 48 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23786 23787 23788 23789 23790 23791 23780 23781 23782 23783 23784 23785 23774 23775 23776 23777 23778 23779 23846 23847 23848 23849 23850 23851 48 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23834 23835 23836 23837 23838 23839 23828 23829 23830 23831 23832 23833 23822 23823 23824 23825 23826 23827 23876 23877 23878 23879 23880 23881 48 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23864 23865 23866 23867 23868 23869 23858 23859 23860 23861 23862 23863 23852 23853 23854 23855 23856 23857 23906 23907 23908 23909 23910 23911 48 13772 13773 13774 13775 13776 13777 23912 23913 23914 23915 23916 23917 23882 23883 23884 23885 23886 23887 23906 23907 23908 23909 23910 23911 23852 23853 23854 23855 23856 23857 23918 23919 23920 23921 23922 23923 11870 11871 11872 11873 11874 11875 18746 18747 18748 18749 18750 18751 36 23894 23895 23896 23897 23898 23899 23882 23883 23884 23885 23886 23887 23924 23925 23926 23927 23928 23929 23888 23889 23890 23891 23892 23893 23936 23937 23938 23939 23940 23941 23930 23931 23932 23933 23934 23935 48 15176 15177 15178 15179 15180 15181 23942 23943 23944 23945 23946 23947 23924 23925 23926 23927 23928 23929 23936 23937 23938 23939 23940 23941 23882 23883 23884 23885 23886 23887 23912 23913 23914 23915 23916 23917 13772 13773 13774 13775 13776 13777 18602 18603 18604 18605 18606 18607 48 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 21698 21699 21700 21701 21702 21703 23984 23985 23986 23987 23988 23989 48 8804 8805 8806 8807 8808 8809 23990 23991 23992 23993 23994 23995 23948 23949 23950 23951 23952 23953 23984 23985 23986 23987 23988 23989 21698 21699 21700 21701 21702 21703 21692 21693 21694 21695 21696 21697 7136 7137 7138 7139 7140 7141 19310 19311 19312 19313 19314 19315 48 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 23960 23961 23962 23963 23964 23965 23954 23955 23956 23957 23958 23959 23948 23949 23950 23951 23952 23953 24020 24021 24022 24023 24024 24025 48 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24008 24009 24010 24011 24012 24013 24002 24003 24004 24005 24006 24007 23996 23997 23998 23999 24000 24001 24050 24051 24052 24053 24054 24055 48 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24038 24039 24040 24041 24042 24043 24032 24033 24034 24035 24036 24037 24026 24027 24028 24029 24030 24031 24080 24081 24082 24083 24084 24085 48 13724 13725 13726 13727 13728 13729 24086 24087 24088 24089 24090 24091 24056 24057 24058 24059 24060 24061 24080 24081 24082 24083 24084 24085 24026 24027 24028 24029 24030 24031 24092 24093 24094 24095 24096 24097 11858 11859 11860 11861 11862 11863 18752 18753 18754 18755 18756 18757 36 24068 24069 24070 24071 24072 24073 24056 24057 24058 24059 24060 24061 24098 24099 24100 24101 24102 24103 24062 24063 24064 24065 24066 24067 24110 24111 24112 24113 24114 24115 24104 24105 24106 24107 24108 24109 48 15146 15147 15148 15149 15150 15151 24116 24117 24118 24119 24120 24121 24098 24099 24100 24101 24102 24103 24110 24111 24112 24113 24114 24115 24056 24057 24058 24059 24060 24061 24086 24087 24088 24089 24090 24091 13724 13725 13726 13727 13728 13729 18596 18597 18598 18599 18600 18601 48 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 22226 22227 22228 22229 22230 22231 24158 24159 24160 24161 24162 24163 48 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24134 24135 24136 24137 24138 24139 24128 24129 24130 24131 24132 24133 24122 24123 24124 24125 24126 24127 24188 24189 24190 24191 24192 24193 48 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24176 24177 24178 24179 24180 24181 24170 24171 24172 24173 24174 24175 24164 24165 24166 24167 24168 24169 24218 24219 24220 24221 24222 24223 48 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24206 24207 24208 24209 24210 24211 24200 24201 24202 24203 24204 24205 24194 24195 24196 24197 24198 24199 24248 24249 24250 24251 24252 24253 36 24236 24237 24238 24239 24240 24241 24224 24225 24226 24227 24228 24229 24254 24255 24256 24257 24258 24259 24230 24231 24232 24233 24234 24235 24266 24267 24268 24269 24270 24271 24260 24261 24262 24263 24264 24265 48 15116 15117 15118 15119 15120 15121 24272 24273 24274 24275 24276 24277 24254 24255 24256 24257 24258 24259 24266 24267 24268 24269 24270 24271 24224 24225 24226 24227 24228 24229 24278 24279 24280 24281 24282 24283 13676 13677 13678 13679 13680 13681 18590 18591 18592 18593 18594 18595 48 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 21722 21723 21724 21725 21726 21727 24320 24321 24322 24323 24324 24325 48 8696 8697 8698 8699 8700 8701 24326 24327 24328 24329 24330 24331 24284 24285 24286 24287 24288 24289 24320 24321 24322 24323 24324 24325 21722 21723 21724 21725 21726 21727 21716 21717 21718 21719 21720 21721 7028 7029 7030 7031 7032 7033 19292 19293 19294 19295 19296 19297 48 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24296 24297 24298 24299 24300 24301 24290 24291 24292 24293 24294 24295 24284 24285 24286 24287 24288 24289 24356 24357 24358 24359 24360 24361 48 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24344 24345 24346 24347 24348 24349 24338 24339 24340 24341 24342 24343 24332 24333 24334 24335 24336 24337 24386 24387 24388 24389 24390 24391 48 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24374 24375 24376 24377 24378 24379 24368 24369 24370 24371 24372 24373 24362 24363 24364 24365 24366 24367 24416 24417 24418 24419 24420 24421 48 13628 13629 13630 13631 13632 13633 24422 24423 24424 24425 24426 24427 24392 24393 24394 24395 24396 24397 24416 24417 24418 24419 24420 24421 24362 24363 24364 24365 24366 24367 24428 24429 24430 24431 24432 24433 11750 11751 11752 11753 11754 11755 18734 18735 18736 18737 18738 18739 36 24404 24405 24406 24407 24408 24409 24392 24393 24394 24395 24396 24397 24434 24435 24436 24437 24438 24439 24398 24399 24400 24401 24402 24403 24446 24447 24448 24449 24450 24451 24440 24441 24442 24443 24444 24445 48 15086 15087 15088 15089 15090 15091 24452 24453 24454 24455 24456 24457 24434 24435 24436 24437 24438 24439 24446 24447 24448 24449 24450 24451 24392 24393 24394 24395 24396 24397 24422 24423 24424 24425 24426 24427 13628 13629 13630 13631 13632 13633 18584 18585 18586 18587 18588 18589 48 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 21746 21747 21748 21749 21750 21751 24494 24495 24496 24497 24498 24499 48 8684 8685 8686 8687 8688 8689 24500 24501 24502 24503 24504 24505 24458 24459 24460 24461 24462 24463 24494 24495 24496 24497 24498 24499 21746 21747 21748 21749 21750 21751 21740 21741 21742 21743 21744 21745 7016 7017 7018 7019 7020 7021 19298 19299 19300 19301 19302 19303 48 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24470 24471 24472 24473 24474 24475 24464 24465 24466 24467 24468 24469 24458 24459 24460 24461 24462 24463 24530 24531 24532 24533 24534 24535 48 18986 18987 18988 18989 18990 18991 24536 24537 24538 24539 24540 24541 24506 24507 24508 24509 24510 24511 24530 24531 24532 24533 24534 24535 24458 24459 24460 24461 24462 24463 24500 24501 24502 24503 24504 24505 8684 8685 8686 8687 8688 8689 19166 19167 19168 19169 19170 19171 48 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24518 24519 24520 24521 24522 24523 24512 24513 24514 24515 24516 24517 24506 24507 24508 24509 24510 24511 24566 24567 24568 24569 24570 24571 48 11738 11739 11740 11741 11742 11743 24572 24573 24574 24575 24576 24577 24542 24543 24544 24545 24546 24547 24566 24567 24568 24569 24570 24571 24506 24507 24508 24509 24510 24511 24536 24537 24538 24539 24540 24541 18986 18987 18988 18989 18990 18991 18998 18999 19000 19001 19002 19003 48 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24554 24555 24556 24557 24558 24559 24548 24549 24550 24551 24552 24553 24542 24543 24544 24545 24546 24547 24602 24603 24604 24605 24606 24607 48 13580 13581 13582 13583 13584 13585 24608 24609 24610 24611 24612 24613 24578 24579 24580 24581 24582 24583 24602 24603 24604 24605 24606 24607 24542 24543 24544 24545 24546 24547 24572 24573 24574 24575 24576 24577 11738 11739 11740 11741 11742 11743 18740 18741 18742 18743 18744 18745 36 24590 24591 24592 24593 24594 24595 24578 24579 24580 24581 24582 24583 24614 24615 24616 24617 24618 24619 24584 24585 24586 24587 24588 24589 24626 24627 24628 24629 24630 24631 24620 24621 24622 24623 24624 24625 48 15056 15057 15058 15059 15060 15061 24632 24633 24634 24635 24636 24637 24614 24615 24616 24617 24618 24619 24626 24627 24628 24629 24630 24631 24578 24579 24580 24581 24582 24583 24608 24609 24610 24611 24612 24613 13580 13581 13582 13583 13584 13585 18578 18579 18580 18581 18582 18583 48 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 22256 22257 22258 22259 22260 22261 24674 24675 24676 24677 24678 24679 48 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24650 24651 24652 24653 24654 24655 24644 24645 24646 24647 24648 24649 24638 24639 24640 24641 24642 24643 24704 24705 24706 24707 24708 24709 48 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24692 24693 24694 24695 24696 24697 24686 24687 24688 24689 24690 24691 24680 24681 24682 24683 24684 24685 24734 24735 24736 24737 24738 24739 48 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24722 24723 24724 24725 24726 24727 24716 24717 24718 24719 24720 24721 24710 24711 24712 24713 24714 24715 24764 24765 24766 24767 24768 24769 36 24752 24753 24754 24755 24756 24757 24740 24741 24742 24743 24744 24745 24770 24771 24772 24773 24774 24775 24746 24747 24748 24749 24750 24751 24782 24783 24784 24785 24786 24787 24776 24777 24778 24779 24780 24781 48 15026 15027 15028 15029 15030 15031 24788 24789 24790 24791 24792 24793 24770 24771 24772 24773 24774 24775 24782 24783 24784 24785 24786 24787 24740 24741 24742 24743 24744 24745 24794 24795 24796 24797 24798 24799 13532 13533 13534 13535 13536 13537 18572 18573 18574 18575 18576 18577 48 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 21770 21771 21772 21773 21774 21775 24836 24837 24838 24839 24840 24841 48 8576 8577 8578 8579 8580 8581 24842 24843 24844 24845 24846 24847 24800 24801 24802 24803 24804 24805 24836 24837 24838 24839 24840 24841 21770 21771 21772 21773 21774 21775 21764 21765 21766 21767 21768 21769 6908 6909 6910 6911 6912 6913 19280 19281 19282 19283 19284 19285 48 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24812 24813 24814 24815 24816 24817 24806 24807 24808 24809 24810 24811 24800 24801 24802 24803 24804 24805 24872 24873 24874 24875 24876 24877 48 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24860 24861 24862 24863 24864 24865 24854 24855 24856 24857 24858 24859 24848 24849 24850 24851 24852 24853 24902 24903 24904 24905 24906 24907 48 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24890 24891 24892 24893 24894 24895 24884 24885 24886 24887 24888 24889 24878 24879 24880 24881 24882 24883 24932 24933 24934 24935 24936 24937 48 13484 13485 13486 13487 13488 13489 24938 24939 24940 24941 24942 24943 24908 24909 24910 24911 24912 24913 24932 24933 24934 24935 24936 24937 24878 24879 24880 24881 24882 24883 24944 24945 24946 24947 24948 24949 11630 11631 11632 11633 11634 11635 18722 18723 18724 18725 18726 18727 36 24920 24921 24922 24923 24924 24925 24908 24909 24910 24911 24912 24913 24950 24951 24952 24953 24954 24955 24914 24915 24916 24917 24918 24919 24962 24963 24964 24965 24966 24967 24956 24957 24958 24959 24960 24961 48 14996 14997 14998 14999 15000 15001 24968 24969 24970 24971 24972 24973 24950 24951 24952 24953 24954 24955 24962 24963 24964 24965 24966 24967 24908 24909 24910 24911 24912 24913 24938 24939 24940 24941 24942 24943 13484 13485 13486 13487 13488 13489 18566 18567 18568 18569 18570 18571 48 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 21794 21795 21796 21797 21798 21799 25010 25011 25012 25013 25014 25015 48 8564 8565 8566 8567 8568 8569 25016 25017 25018 25019 25020 25021 24974 24975 24976 24977 24978 24979 25010 25011 25012 25013 25014 25015 21794 21795 21796 21797 21798 21799 21788 21789 21790 21791 21792 21793 6896 6897 6898 6899 6900 6901 19286 19287 19288 19289 19290 19291 48 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 24986 24987 24988 24989 24990 24991 24980 24981 24982 24983 24984 24985 24974 24975 24976 24977 24978 24979 25046 25047 25048 25049 25050 25051 48 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25034 25035 25036 25037 25038 25039 25028 25029 25030 25031 25032 25033 25022 25023 25024 25025 25026 25027 25076 25077 25078 25079 25080 25081 48 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25064 25065 25066 25067 25068 25069 25058 25059 25060 25061 25062 25063 25052 25053 25054 25055 25056 25057 25106 25107 25108 25109 25110 25111 48 13436 13437 13438 13439 13440 13441 25112 25113 25114 25115 25116 25117 25082 25083 25084 25085 25086 25087 25106 25107 25108 25109 25110 25111 25052 25053 25054 25055 25056 25057 25118 25119 25120 25121 25122 25123 11618 11619 11620 11621 11622 11623 18728 18729 18730 18731 18732 18733 36 25094 25095 25096 25097 25098 25099 25082 25083 25084 25085 25086 25087 25124 25125 25126 25127 25128 25129 25088 25089 25090 25091 25092 25093 25136 25137 25138 25139 25140 25141 25130 25131 25132 25133 25134 25135 48 14966 14967 14968 14969 14970 14971 25142 25143 25144 25145 25146 25147 25124 25125 25126 25127 25128 25129 25136 25137 25138 25139 25140 25141 25082 25083 25084 25085 25086 25087 25112 25113 25114 25115 25116 25117 13436 13437 13438 13439 13440 13441 18560 18561 18562 18563 18564 18565 48 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 22286 22287 22288 22289 22290 22291 25184 25185 25186 25187 25188 25189 48 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25160 25161 25162 25163 25164 25165 25154 25155 25156 25157 25158 25159 25148 25149 25150 25151 25152 25153 25214 25215 25216 25217 25218 25219 48 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25202 25203 25204 25205 25206 25207 25196 25197 25198 25199 25200 25201 25190 25191 25192 25193 25194 25195 25244 25245 25246 25247 25248 25249 48 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25232 25233 25234 25235 25236 25237 25226 25227 25228 25229 25230 25231 25220 25221 25222 25223 25224 25225 25274 25275 25276 25277 25278 25279 36 25262 25263 25264 25265 25266 25267 25250 25251 25252 25253 25254 25255 25280 25281 25282 25283 25284 25285 25256 25257 25258 25259 25260 25261 25292 25293 25294 25295 25296 25297 25286 25287 25288 25289 25290 25291 48 14936 14937 14938 14939 14940 14941 25298 25299 25300 25301 25302 25303 25280 25281 25282 25283 25284 25285 25292 25293 25294 25295 25296 25297 25250 25251 25252 25253 25254 25255 25304 25305 25306 25307 25308 25309 13388 13389 13390 13391 13392 13393 18554 18555 18556 18557 18558 18559 48 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 21818 21819 21820 21821 21822 21823 25346 25347 25348 25349 25350 25351 48 8456 8457 8458 8459 8460 8461 25352 25353 25354 25355 25356 25357 25310 25311 25312 25313 25314 25315 25346 25347 25348 25349 25350 25351 21818 21819 21820 21821 21822 21823 21812 21813 21814 21815 21816 21817 6788 6789 6790 6791 6792 6793 19268 19269 19270 19271 19272 19273 48 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25322 25323 25324 25325 25326 25327 25316 25317 25318 25319 25320 25321 25310 25311 25312 25313 25314 25315 25382 25383 25384 25385 25386 25387 48 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25370 25371 25372 25373 25374 25375 25364 25365 25366 25367 25368 25369 25358 25359 25360 25361 25362 25363 25412 25413 25414 25415 25416 25417 48 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25400 25401 25402 25403 25404 25405 25394 25395 25396 25397 25398 25399 25388 25389 25390 25391 25392 25393 25442 25443 25444 25445 25446 25447 48 13340 13341 13342 13343 13344 13345 25448 25449 25450 25451 25452 25453 25418 25419 25420 25421 25422 25423 25442 25443 25444 25445 25446 25447 25388 25389 25390 25391 25392 25393 25454 25455 25456 25457 25458 25459 11510 11511 11512 11513 11514 11515 18710 18711 18712 18713 18714 18715 36 25430 25431 25432 25433 25434 25435 25418 25419 25420 25421 25422 25423 25460 25461 25462 25463 25464 25465 25424 25425 25426 25427 25428 25429 25472 25473 25474 25475 25476 25477 25466 25467 25468 25469 25470 25471 48 14906 14907 14908 14909 14910 14911 25478 25479 25480 25481 25482 25483 25460 25461 25462 25463 25464 25465 25472 25473 25474 25475 25476 25477 25418 25419 25420 25421 25422 25423 25448 25449 25450 25451 25452 25453 13340 13341 13342 13343 13344 13345 18548 18549 18550 18551 18552 18553 48 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 25519 21842 21843 21844 21845 21846 21847 25520 25521 25522 25523 25524 25525 48 8444 8445 8446 8447 8448 8449 25526 25527 25528 25529 25530 25531 25484 25485 25486 25487 25488 25489 25520 25521 25522 25523 25524 25525 21842 21843 21844 21845 21846 21847 21836 21837 21838 21839 21840 21841 6776 6777 6778 6779 6780 6781 19274 19275 19276 19277 19278 19279 48 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25555 25496 25497 25498 25499 25500 25501 25490 25491 25492 25493 25494 25495 25484 25485 25486 25487 25488 25489 25556 25557 25558 25559 25560 25561 48 18926 18927 18928 18929 18930 18931 25562 25563 25564 25565 25566 25567 25532 25533 25534 25535 25536 25537 25556 25557 25558 25559 25560 25561 25484 25485 25486 25487 25488 25489 25526 25527 25528 25529 25530 25531 8444 8445 8446 8447 8448 8449 19142 19143 19144 19145 19146 19147 48 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25591 25544 25545 25546 25547 25548 25549 25538 25539 25540 25541 25542 25543 25532 25533 25534 25535 25536 25537 25592 25593 25594 25595 25596 25597 48 11498 11499 11500 11501 11502 11503 25598 25599 25600 25601 25602 25603 25568 25569 25570 25571 25572 25573 25592 25593 25594 25595 25596 25597 25532 25533 25534 25535 25536 25537 25562 25563 25564 25565 25566 25567 18926 18927 18928 18929 18930 18931 18938 18939 18940 18941 18942 18943 48 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25627 25580 25581 25582 25583 25584 25585 25574 25575 25576 25577 25578 25579 25568 25569 25570 25571 25572 25573 25628 25629 25630 25631 25632 25633 48 13292 13293 13294 13295 13296 13297 25634 25635 25636 25637 25638 25639 25604 25605 25606 25607 25608 25609 25628 25629 25630 25631 25632 25633 25568 25569 25570 25571 25572 25573 25598 25599 25600 25601 25602 25603 11498 11499 11500 11501 11502 11503 18716 18717 18718 18719 18720 18721 36 25616 25617 25618 25619 25620 25621 25604 25605 25606 25607 25608 25609 25640 25641 25642 25643 25644 25645 25610 25611 25612 25613 25614 25615 25652 25653 25654 25655 25656 25657 25646 25647 25648 25649 25650 25651 48 14876 14877 14878 14879 14880 14881 25658 25659 25660 25661 25662 25663 25640 25641 25642 25643 25644 25645 25652 25653 25654 25655 25656 25657 25604 25605 25606 25607 25608 25609 25634 25635 25636 25637 25638 25639 13292 13293 13294 13295 13296 13297 18542 18543 18544 18545 18546 18547 48 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 25699 22316 22317 22318 22319 22320 22321 25700 25701 25702 25703 25704 25705 48 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25729 25676 25677 25678 25679 25680 25681 25670 25671 25672 25673 25674 25675 25664 25665 25666 25667 25668 25669 25730 25731 25732 25733 25734 25735 48 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25759 25718 25719 25720 25721 25722 25723 25712 25713 25714 25715 25716 25717 25706 25707 25708 25709 25710 25711 25760 25761 25762 25763 25764 25765 48 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25789 25748 25749 25750 25751 25752 25753 25742 25743 25744 25745 25746 25747 25736 25737 25738 25739 25740 25741 25790 25791 25792 25793 25794 25795 36 25778 25779 25780 25781 25782 25783 25766 25767 25768 25769 25770 25771 25796 25797 25798 25799 25800 25801 25772 25773 25774 25775 25776 25777 25808 25809 25810 25811 25812 25813 25802 25803 25804 25805 25806 25807 48 14846 14847 14848 14849 14850 14851 25814 25815 25816 25817 25818 25819 25796 25797 25798 25799 25800 25801 25808 25809 25810 25811 25812 25813 25766 25767 25768 25769 25770 25771 25820 25821 25822 25823 25824 25825 13244 13245 13246 13247 13248 13249 18536 18537 18538 18539 18540 18541 48 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 25861 21866 21867 21868 21869 21870 21871 25862 25863 25864 25865 25866 25867 48 8336 8337 8338 8339 8340 8341 25868 25869 25870 25871 25872 25873 25826 25827 25828 25829 25830 25831 25862 25863 25864 25865 25866 25867 21866 21867 21868 21869 21870 21871 21860 21861 21862 21863 21864 21865 6668 6669 6670 6671 6672 6673 19256 19257 19258 19259 19260 19261 48 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25897 25838 25839 25840 25841 25842 25843 25832 25833 25834 25835 25836 25837 25826 25827 25828 25829 25830 25831 25898 25899 25900 25901 25902 25903 48 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25927 25886 25887 25888 25889 25890 25891 25880 25881 25882 25883 25884 25885 25874 25875 25876 25877 25878 25879 25928 25929 25930 25931 25932 25933 48 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25957 25916 25917 25918 25919 25920 25921 25910 25911 25912 25913 25914 25915 25904 25905 25906 25907 25908 25909 25958 25959 25960 25961 25962 25963 48 13196 13197 13198 13199 13200 13201 25964 25965 25966 25967 25968 25969 25934 25935 25936 25937 25938 25939 25958 25959 25960 25961 25962 25963 25904 25905 25906 25907 25908 25909 25970 25971 25972 25973 25974 25975 11390 11391 11392 11393 11394 11395 18698 18699 18700 18701 18702 18703 36 25946 25947 25948 25949 25950 25951 25934 25935 25936 25937 25938 25939 25976 25977 25978 25979 25980 25981 25940 25941 25942 25943 25944 25945 25988 25989 25990 25991 25992 25993 25982 25983 25984 25985 25986 25987 48 14816 14817 14818 14819 14820 14821 25994 25995 25996 25997 25998 25999 25976 25977 25978 25979 25980 25981 25988 25989 25990 25991 25992 25993 25934 25935 25936 25937 25938 25939 25964 25965 25966 25967 25968 25969 13196 13197 13198 13199 13200 13201 18530 18531 18532 18533 18534 18535 48 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 26035 21890 21891 21892 21893 21894 21895 26036 26037 26038 26039 26040 26041 48 8324 8325 8326 8327 8328 8329 26042 26043 26044 26045 26046 26047 26000 26001 26002 26003 26004 26005 26036 26037 26038 26039 26040 26041 21890 21891 21892 21893 21894 21895 21884 21885 21886 21887 21888 21889 6656 6657 6658 6659 6660 6661 19262 19263 19264 19265 19266 19267 48 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26071 26012 26013 26014 26015 26016 26017 26006 26007 26008 26009 26010 26011 26000 26001 26002 26003 26004 26005 26072 26073 26074 26075 26076 26077 48 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26101 26060 26061 26062 26063 26064 26065 26054 26055 26056 26057 26058 26059 26048 26049 26050 26051 26052 26053 26102 26103 26104 26105 26106 26107 48 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26131 26090 26091 26092 26093 26094 26095 26084 26085 26086 26087 26088 26089 26078 26079 26080 26081 26082 26083 26132 26133 26134 26135 26136 26137 48 13148 13149 13150 13151 13152 13153 26138 26139 26140 26141 26142 26143 26108 26109 26110 26111 26112 26113 26132 26133 26134 26135 26136 26137 26078 26079 26080 26081 26082 26083 26144 26145 26146 26147 26148 26149 11378 11379 11380 11381 11382 11383 18704 18705 18706 18707 18708 18709 36 26120 26121 26122 26123 26124 26125 26108 26109 26110 26111 26112 26113 26150 26151 26152 26153 26154 26155 26114 26115 26116 26117 26118 26119 26162 26163 26164 26165 26166 26167 26156 26157 26158 26159 26160 26161 48 14786 14787 14788 14789 14790 14791 26168 26169 26170 26171 26172 26173 26150 26151 26152 26153 26154 26155 26162 26163 26164 26165 26166 26167 26108 26109 26110 26111 26112 26113 26138 26139 26140 26141 26142 26143 13148 13149 13150 13151 13152 13153 18524 18525 18526 18527 18528 18529 48 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 26209 22346 22347 22348 22349 22350 22351 26210 26211 26212 26213 26214 26215 48 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26239 26186 26187 26188 26189 26190 26191 26180 26181 26182 26183 26184 26185 26174 26175 26176 26177 26178 26179 26240 26241 26242 26243 26244 26245 48 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26269 26228 26229 26230 26231 26232 26233 26222 26223 26224 26225 26226 26227 26216 26217 26218 26219 26220 26221 26270 26271 26272 26273 26274 26275 48 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26299 26258 26259 26260 26261 26262 26263 26252 26253 26254 26255 26256 26257 26246 26247 26248 26249 26250 26251 26300 26301 26302 26303 26304 26305 36 26288 26289 26290 26291 26292 26293 26276 26277 26278 26279 26280 26281 26306 26307 26308 26309 26310 26311 26282 26283 26284 26285 26286 26287 26318 26319 26320 26321 26322 26323 26312 26313 26314 26315 26316 26317 48 14756 14757 14758 14759 14760 14761 26324 26325 26326 26327 26328 26329 26306 26307 26308 26309 26310 26311 26318 26319 26320 26321 26322 26323 26276 26277 26278 26279 26280 26281 26330 26331 26332 26333 26334 26335 13100 13101 13102 13103 13104 13105 18518 18519 18520 18521 18522 18523 48 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 26371 21914 21915 21916 21917 21918 21919 26372 26373 26374 26375 26376 26377 48 8216 8217 8218 8219 8220 8221 26378 26379 26380 26381 26382 26383 26336 26337 26338 26339 26340 26341 26372 26373 26374 26375 26376 26377 21914 21915 21916 21917 21918 21919 21908 21909 21910 21911 21912 21913 6548 6549 6550 6551 6552 6553 19244 19245 19246 19247 19248 19249 48 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26407 26348 26349 26350 26351 26352 26353 26342 26343 26344 26345 26346 26347 26336 26337 26338 26339 26340 26341 26408 26409 26410 26411 26412 26413 48 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26437 26396 26397 26398 26399 26400 26401 26390 26391 26392 26393 26394 26395 26384 26385 26386 26387 26388 26389 26438 26439 26440 26441 26442 26443 48 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26467 26426 26427 26428 26429 26430 26431 26420 26421 26422 26423 26424 26425 26414 26415 26416 26417 26418 26419 26468 26469 26470 26471 26472 26473 48 13052 13053 13054 13055 13056 13057 26474 26475 26476 26477 26478 26479 26444 26445 26446 26447 26448 26449 26468 26469 26470 26471 26472 26473 26414 26415 26416 26417 26418 26419 26480 26481 26482 26483 26484 26485 11270 11271 11272 11273 11274 11275 18686 18687 18688 18689 18690 18691 36 26456 26457 26458 26459 26460 26461 26444 26445 26446 26447 26448 26449 26486 26487 26488 26489 26490 26491 26450 26451 26452 26453 26454 26455 26498 26499 26500 26501 26502 26503 26492 26493 26494 26495 26496 26497 48 14726 14727 14728 14729 14730 14731 26504 26505 26506 26507 26508 26509 26486 26487 26488 26489 26490 26491 26498 26499 26500 26501 26502 26503 26444 26445 26446 26447 26448 26449 26474 26475 26476 26477 26478 26479 13052 13053 13054 13055 13056 13057 18512 18513 18514 18515 18516 18517 48 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 26545 21938 21939 21940 21941 21942 21943 26546 26547 26548 26549 26550 26551 48 8204 8205 8206 8207 8208 8209 26552 26553 26554 26555 26556 26557 26510 26511 26512 26513 26514 26515 26546 26547 26548 26549 26550 26551 21938 21939 21940 21941 21942 21943 21932 21933 21934 21935 21936 21937 6536 6537 6538 6539 6540 6541 19250 19251 19252 19253 19254 19255 48 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26581 26522 26523 26524 26525 26526 26527 26516 26517 26518 26519 26520 26521 26510 26511 26512 26513 26514 26515 26582 26583 26584 26585 26586 26587 48 18866 18867 18868 18869 18870 18871 26588 26589 26590 26591 26592 26593 26558 26559 26560 26561 26562 26563 26582 26583 26584 26585 26586 26587 26510 26511 26512 26513 26514 26515 26552 26553 26554 26555 26556 26557 8204 8205 8206 8207 8208 8209 19118 19119 19120 19121 19122 19123 48 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26617 26570 26571 26572 26573 26574 26575 26564 26565 26566 26567 26568 26569 26558 26559 26560 26561 26562 26563 26618 26619 26620 26621 26622 26623 48 11258 11259 11260 11261 11262 11263 26624 26625 26626 26627 26628 26629 26594 26595 26596 26597 26598 26599 26618 26619 26620 26621 26622 26623 26558 26559 26560 26561 26562 26563 26588 26589 26590 26591 26592 26593 18866 18867 18868 18869 18870 18871 18878 18879 18880 18881 18882 18883 48 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26606 26607 26608 26609 26610 26611 26600 26601 26602 26603 26604 26605 26594 26595 26596 26597 26598 26599 26654 26655 26656 26657 26658 26659 48 13004 13005 13006 13007 13008 13009 26660 26661 26662 26663 26664 26665 26630 26631 26632 26633 26634 26635 26654 26655 26656 26657 26658 26659 26594 26595 26596 26597 26598 26599 26624 26625 26626 26627 26628 26629 11258 11259 11260 11261 11262 11263 18692 18693 18694 18695 18696 18697 36 26642 26643 26644 26645 26646 26647 26630 26631 26632 26633 26634 26635 26666 26667 26668 26669 26670 26671 26636 26637 26638 26639 26640 26641 26678 26679 26680 26681 26682 26683 26672 26673 26674 26675 26676 26677 48 14696 14697 14698 14699 14700 14701 26684 26685 26686 26687 26688 26689 26666 26667 26668 26669 26670 26671 26678 26679 26680 26681 26682 26683 26630 26631 26632 26633 26634 26635 26660 26661 26662 26663 26664 26665 13004 13005 13006 13007 13008 13009 18506 18507 18508 18509 18510 18511 48 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 22376 22377 22378 22379 22380 22381 26726 26727 26728 26729 26730 26731 48 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26755 26702 26703 26704 26705 26706 26707 26696 26697 26698 26699 26700 26701 26690 26691 26692 26693 26694 26695 26756 26757 26758 26759 26760 26761 48 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26744 26745 26746 26747 26748 26749 26738 26739 26740 26741 26742 26743 26732 26733 26734 26735 26736 26737 26786 26787 26788 26789 26790 26791 48 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26815 26774 26775 26776 26777 26778 26779 26768 26769 26770 26771 26772 26773 26762 26763 26764 26765 26766 26767 26816 26817 26818 26819 26820 26821 36 26804 26805 26806 26807 26808 26809 26792 26793 26794 26795 26796 26797 26822 26823 26824 26825 26826 26827 26798 26799 26800 26801 26802 26803 26834 26835 26836 26837 26838 26839 26828 26829 26830 26831 26832 26833 48 14666 14667 14668 14669 14670 14671 26840 26841 26842 26843 26844 26845 26822 26823 26824 26825 26826 26827 26834 26835 26836 26837 26838 26839 26792 26793 26794 26795 26796 26797 26846 26847 26848 26849 26850 26851 12956 12957 12958 12959 12960 12961 18500 18501 18502 18503 18504 18505 48 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 26887 21962 21963 21964 21965 21966 21967 26888 26889 26890 26891 26892 26893 48 8096 8097 8098 8099 8100 8101 26894 26895 26896 26897 26898 26899 26852 26853 26854 26855 26856 26857 26888 26889 26890 26891 26892 26893 21962 21963 21964 21965 21966 21967 21956 21957 21958 21959 21960 21961 6428 6429 6430 6431 6432 6433 19232 19233 19234 19235 19236 19237 48 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26923 26864 26865 26866 26867 26868 26869 26858 26859 26860 26861 26862 26863 26852 26853 26854 26855 26856 26857 26924 26925 26926 26927 26928 26929 48 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26953 26912 26913 26914 26915 26916 26917 26906 26907 26908 26909 26910 26911 26900 26901 26902 26903 26904 26905 26954 26955 26956 26957 26958 26959 48 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26983 26942 26943 26944 26945 26946 26947 26936 26937 26938 26939 26940 26941 26930 26931 26932 26933 26934 26935 26984 26985 26986 26987 26988 26989 48 12908 12909 12910 12911 12912 12913 26990 26991 26992 26993 26994 26995 26960 26961 26962 26963 26964 26965 26984 26985 26986 26987 26988 26989 26930 26931 26932 26933 26934 26935 26996 26997 26998 26999 27000 27001 11150 11151 11152 11153 11154 11155 18674 18675 18676 18677 18678 18679 36 26972 26973 26974 26975 26976 26977 26960 26961 26962 26963 26964 26965 27002 27003 27004 27005 27006 27007 26966 26967 26968 26969 26970 26971 27014 27015 27016 27017 27018 27019 27008 27009 27010 27011 27012 27013 48 14636 14637 14638 14639 14640 14641 27020 27021 27022 27023 27024 27025 27002 27003 27004 27005 27006 27007 27014 27015 27016 27017 27018 27019 26960 26961 26962 26963 26964 26965 26990 26991 26992 26993 26994 26995 12908 12909 12910 12911 12912 12913 18494 18495 18496 18497 18498 18499 48 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 21986 21987 21988 21989 21990 21991 27062 27063 27064 27065 27066 27067 48 8084 8085 8086 8087 8088 8089 27068 27069 27070 27071 27072 27073 27026 27027 27028 27029 27030 27031 27062 27063 27064 27065 27066 27067 21986 21987 21988 21989 21990 21991 21980 21981 21982 21983 21984 21985 6416 6417 6418 6419 6420 6421 19238 19239 19240 19241 19242 19243 48 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27038 27039 27040 27041 27042 27043 27032 27033 27034 27035 27036 27037 27026 27027 27028 27029 27030 27031 27098 27099 27100 27101 27102 27103 48 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27127 27086 27087 27088 27089 27090 27091 27080 27081 27082 27083 27084 27085 27074 27075 27076 27077 27078 27079 27128 27129 27130 27131 27132 27133 48 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27157 27116 27117 27118 27119 27120 27121 27110 27111 27112 27113 27114 27115 27104 27105 27106 27107 27108 27109 27158 27159 27160 27161 27162 27163 48 12860 12861 12862 12863 12864 12865 27164 27165 27166 27167 27168 27169 27134 27135 27136 27137 27138 27139 27158 27159 27160 27161 27162 27163 27104 27105 27106 27107 27108 27109 27170 27171 27172 27173 27174 27175 11138 11139 11140 11141 11142 11143 18680 18681 18682 18683 18684 18685 36 27146 27147 27148 27149 27150 27151 27134 27135 27136 27137 27138 27139 27176 27177 27178 27179 27180 27181 27140 27141 27142 27143 27144 27145 27188 27189 27190 27191 27192 27193 27182 27183 27184 27185 27186 27187 48 14606 14607 14608 14609 14610 14611 27194 27195 27196 27197 27198 27199 27176 27177 27178 27179 27180 27181 27188 27189 27190 27191 27192 27193 27134 27135 27136 27137 27138 27139 27164 27165 27166 27167 27168 27169 12860 12861 12862 12863 12864 12865 18488 18489 18490 18491 18492 18493 48 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 27235 22406 22407 22408 22409 22410 22411 27236 27237 27238 27239 27240 27241 48 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27265 27212 27213 27214 27215 27216 27217 27206 27207 27208 27209 27210 27211 27200 27201 27202 27203 27204 27205 27266 27267 27268 27269 27270 27271 48 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27254 27255 27256 27257 27258 27259 27248 27249 27250 27251 27252 27253 27242 27243 27244 27245 27246 27247 27296 27297 27298 27299 27300 27301 48 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27284 27285 27286 27287 27288 27289 27278 27279 27280 27281 27282 27283 27272 27273 27274 27275 27276 27277 27326 27327 27328 27329 27330 27331 36 27314 27315 27316 27317 27318 27319 27302 27303 27304 27305 27306 27307 27332 27333 27334 27335 27336 27337 27308 27309 27310 27311 27312 27313 27344 27345 27346 27347 27348 27349 27338 27339 27340 27341 27342 27343 48 14576 14577 14578 14579 14580 14581 27350 27351 27352 27353 27354 27355 27332 27333 27334 27335 27336 27337 27344 27345 27346 27347 27348 27349 27302 27303 27304 27305 27306 27307 27356 27357 27358 27359 27360 27361 12812 12813 12814 12815 12816 12817 18482 18483 18484 18485 18486 18487 48 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 22010 22011 22012 22013 22014 22015 27398 27399 27400 27401 27402 27403 48 7976 7977 7978 7979 7980 7981 27404 27405 27406 27407 27408 27409 27362 27363 27364 27365 27366 27367 27398 27399 27400 27401 27402 27403 22010 22011 22012 22013 22014 22015 22004 22005 22006 22007 22008 22009 6308 6309 6310 6311 6312 6313 19220 19221 19222 19223 19224 19225 48 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27374 27375 27376 27377 27378 27379 27368 27369 27370 27371 27372 27373 27362 27363 27364 27365 27366 27367 27434 27435 27436 27437 27438 27439 48 9614 9615 9616 9617 9618 9619 27440 27441 27442 27443 27444 27445 27410 27411 27412 27413 27414 27415 27434 27435 27436 27437 27438 27439 27362 27363 27364 27365 27366 27367 27404 27405 27406 27407 27408 27409 7976 7977 7978 7979 7980 7981 19088 19089 19090 19091 19092 19093 48 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27422 27423 27424 27425 27426 27427 27416 27417 27418 27419 27420 27421 27410 27411 27412 27413 27414 27415 27470 27471 27472 27473 27474 27475 48 11030 11031 11032 11033 11034 11035 27476 27477 27478 27479 27480 27481 27446 27447 27448 27449 27450 27451 27470 27471 27472 27473 27474 27475 27410 27411 27412 27413 27414 27415 27440 27441 27442 27443 27444 27445 9614 9615 9616 9617 9618 9619 18812 18813 18814 18815 18816 18817 48 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27458 27459 27460 27461 27462 27463 27452 27453 27454 27455 27456 27457 27446 27447 27448 27449 27450 27451 27506 27507 27508 27509 27510 27511 48 12764 12765 12766 12767 12768 12769 27512 27513 27514 27515 27516 27517 27482 27483 27484 27485 27486 27487 27506 27507 27508 27509 27510 27511 27446 27447 27448 27449 27450 27451 27476 27477 27478 27479 27480 27481 11030 11031 11032 11033 11034 11035 18662 18663 18664 18665 18666 18667 36 27494 27495 27496 27497 27498 27499 27482 27483 27484 27485 27486 27487 27518 27519 27520 27521 27522 27523 27488 27489 27490 27491 27492 27493 27530 27531 27532 27533 27534 27535 27524 27525 27526 27527 27528 27529 48 14546 14547 14548 14549 14550 14551 27536 27537 27538 27539 27540 27541 27518 27519 27520 27521 27522 27523 27530 27531 27532 27533 27534 27535 27482 27483 27484 27485 27486 27487 27512 27513 27514 27515 27516 27517 12764 12765 12766 12767 12768 12769 18476 18477 18478 18479 18480 18481 48 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 22034 22035 22036 22037 22038 22039 27578 27579 27580 27581 27582 27583 48 7964 7965 7966 7967 7968 7969 27584 27585 27586 27587 27588 27589 27542 27543 27544 27545 27546 27547 27578 27579 27580 27581 27582 27583 22034 22035 22036 22037 22038 22039 22028 22029 22030 22031 22032 22033 6296 6297 6298 6299 6300 6301 19226 19227 19228 19229 19230 19231 48 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27613 27554 27555 27556 27557 27558 27559 27548 27549 27550 27551 27552 27553 27542 27543 27544 27545 27546 27547 27614 27615 27616 27617 27618 27619 48 9602 9603 9604 9605 9606 9607 27620 27621 27622 27623 27624 27625 27590 27591 27592 27593 27594 27595 27614 27615 27616 27617 27618 27619 27542 27543 27544 27545 27546 27547 27584 27585 27586 27587 27588 27589 7964 7965 7966 7967 7968 7969 19094 19095 19096 19097 19098 19099 48 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27649 27602 27603 27604 27605 27606 27607 27596 27597 27598 27599 27600 27601 27590 27591 27592 27593 27594 27595 27650 27651 27652 27653 27654 27655 48 11018 11019 11020 11021 11022 11023 27656 27657 27658 27659 27660 27661 27626 27627 27628 27629 27630 27631 27650 27651 27652 27653 27654 27655 27590 27591 27592 27593 27594 27595 27620 27621 27622 27623 27624 27625 9602 9603 9604 9605 9606 9607 18818 18819 18820 18821 18822 18823 48 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27685 27638 27639 27640 27641 27642 27643 27632 27633 27634 27635 27636 27637 27626 27627 27628 27629 27630 27631 27686 27687 27688 27689 27690 27691 48 12716 12717 12718 12719 12720 12721 27692 27693 27694 27695 27696 27697 27662 27663 27664 27665 27666 27667 27686 27687 27688 27689 27690 27691 27626 27627 27628 27629 27630 27631 27656 27657 27658 27659 27660 27661 11018 11019 11020 11021 11022 11023 18668 18669 18670 18671 18672 18673 36 27674 27675 27676 27677 27678 27679 27662 27663 27664 27665 27666 27667 27698 27699 27700 27701 27702 27703 27668 27669 27670 27671 27672 27673 27710 27711 27712 27713 27714 27715 27704 27705 27706 27707 27708 27709 48 14516 14517 14518 14519 14520 14521 27716 27717 27718 27719 27720 27721 27698 27699 27700 27701 27702 27703 27710 27711 27712 27713 27714 27715 27662 27663 27664 27665 27666 27667 27692 27693 27694 27695 27696 27697 12716 12717 12718 12719 12720 12721 18470 18471 18472 18473 18474 18475 48 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 22436 22437 22438 22439 22440 22441 27758 27759 27760 27761 27762 27763 48 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 27734 27735 27736 27737 27738 27739 27728 27729 27730 27731 27732 27733 27722 27723 27724 27725 27726 27727 27788 27789 27790 27791 27792 27793 48 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27817 27776 27777 27778 27779 27780 27781 27770 27771 27772 27773 27774 27775 27764 27765 27766 27767 27768 27769 27818 27819 27820 27821 27822 27823 48 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27847 27806 27807 27808 27809 27810 27811 27800 27801 27802 27803 27804 27805 27794 27795 27796 27797 27798 27799 27848 27849 27850 27851 27852 27853 36 27836 27837 27838 27839 27840 27841 27824 27825 27826 27827 27828 27829 27854 27855 27856 27857 27858 27859 27830 27831 27832 27833 27834 27835 27866 27867 27868 27869 27870 27871 27860 27861 27862 27863 27864 27865 48 14486 14487 14488 14489 14490 14491 27872 27873 27874 27875 27876 27877 27854 27855 27856 27857 27858 27859 27866 27867 27868 27869 27870 27871 27824 27825 27826 27827 27828 27829 27878 27879 27880 27881 27882 27883 12668 12669 12670 12671 12672 12673 18464 18465 18466 18467 18468 18469 48 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 27919 22058 22059 22060 22061 22062 22063 27920 27921 27922 27923 27924 27925 48 7856 7857 7858 7859 7860 7861 27926 27927 27928 27929 27930 27931 27884 27885 27886 27887 27888 27889 27920 27921 27922 27923 27924 27925 22058 22059 22060 22061 22062 22063 22052 22053 22054 22055 22056 22057 6188 6189 6190 6191 6192 6193 19208 19209 19210 19211 19212 19213 48 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27955 27896 27897 27898 27899 27900 27901 27890 27891 27892 27893 27894 27895 27884 27885 27886 27887 27888 27889 27956 27957 27958 27959 27960 27961 48 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27985 27944 27945 27946 27947 27948 27949 27938 27939 27940 27941 27942 27943 27932 27933 27934 27935 27936 27937 27986 27987 27988 27989 27990 27991 48 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 28015 27974 27975 27976 27977 27978 27979 27968 27969 27970 27971 27972 27973 27962 27963 27964 27965 27966 27967 28016 28017 28018 28019 28020 28021 48 12620 12621 12622 12623 12624 12625 28022 28023 28024 28025 28026 28027 27992 27993 27994 27995 27996 27997 28016 28017 28018 28019 28020 28021 27962 27963 27964 27965 27966 27967 28028 28029 28030 28031 28032 28033 10910 10911 10912 10913 10914 10915 18650 18651 18652 18653 18654 18655 36 28004 28005 28006 28007 28008 28009 27992 27993 27994 27995 27996 27997 28034 28035 28036 28037 28038 28039 27998 27999 28000 28001 28002 28003 28046 28047 28048 28049 28050 28051 28040 28041 28042 28043 28044 28045 48 14456 14457 14458 14459 14460 14461 28052 28053 28054 28055 28056 28057 28034 28035 28036 28037 28038 28039 28046 28047 28048 28049 28050 28051 27992 27993 27994 27995 27996 27997 28022 28023 28024 28025 28026 28027 12620 12621 12622 12623 12624 12625 18458 18459 18460 18461 18462 18463 48 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 28093 22082 22083 22084 22085 22086 22087 28094 28095 28096 28097 28098 28099 48 7844 7845 7846 7847 7848 7849 28100 28101 28102 28103 28104 28105 28058 28059 28060 28061 28062 28063 28094 28095 28096 28097 28098 28099 22082 22083 22084 22085 22086 22087 22076 22077 22078 22079 22080 22081 6176 6177 6178 6179 6180 6181 19214 19215 19216 19217 19218 19219 48 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28129 28070 28071 28072 28073 28074 28075 28064 28065 28066 28067 28068 28069 28058 28059 28060 28061 28062 28063 28130 28131 28132 28133 28134 28135 48 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28159 28118 28119 28120 28121 28122 28123 28112 28113 28114 28115 28116 28117 28106 28107 28108 28109 28110 28111 28160 28161 28162 28163 28164 28165 48 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28189 28148 28149 28150 28151 28152 28153 28142 28143 28144 28145 28146 28147 28136 28137 28138 28139 28140 28141 28190 28191 28192 28193 28194 28195 48 12572 12573 12574 12575 12576 12577 28196 28197 28198 28199 28200 28201 28166 28167 28168 28169 28170 28171 28190 28191 28192 28193 28194 28195 28136 28137 28138 28139 28140 28141 28202 28203 28204 28205 28206 28207 10898 10899 10900 10901 10902 10903 18656 18657 18658 18659 18660 18661 36 28178 28179 28180 28181 28182 28183 28166 28167 28168 28169 28170 28171 28208 28209 28210 28211 28212 28213 28172 28173 28174 28175 28176 28177 28220 28221 28222 28223 28224 28225 28214 28215 28216 28217 28218 28219 48 14426 14427 14428 14429 14430 14431 28226 28227 28228 28229 28230 28231 28208 28209 28210 28211 28212 28213 28220 28221 28222 28223 28224 28225 28166 28167 28168 28169 28170 28171 28196 28197 28198 28199 28200 28201 12572 12573 12574 12575 12576 12577 18452 18453 18454 18455 18456 18457 48 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 28267 22466 22467 22468 22469 22470 22471 28268 28269 28270 28271 28272 28273 48 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28297 28244 28245 28246 28247 28248 28249 28238 28239 28240 28241 28242 28243 28232 28233 28234 28235 28236 28237 28298 28299 28300 28301 28302 28303 48 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28327 28286 28287 28288 28289 28290 28291 28280 28281 28282 28283 28284 28285 28274 28275 28276 28277 28278 28279 28328 28329 28330 28331 28332 28333 48 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28357 28316 28317 28318 28319 28320 28321 28310 28311 28312 28313 28314 28315 28304 28305 28306 28307 28308 28309 28358 28359 28360 28361 28362 28363 36 28346 28347 28348 28349 28350 28351 28334 28335 28336 28337 28338 28339 28364 28365 28366 28367 28368 28369 28340 28341 28342 28343 28344 28345 28376 28377 28378 28379 28380 28381 28370 28371 28372 28373 28374 28375 48 14396 14397 14398 14399 14400 14401 28382 28383 28384 28385 28386 28387 28364 28365 28366 28367 28368 28369 28376 28377 28378 28379 28380 28381 28334 28335 28336 28337 28338 28339 28388 28389 28390 28391 28392 28393 12524 12525 12526 12527 12528 12529 18446 18447 18448 18449 18450 18451 48 20780 20781 20782 20783 20784 20785 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 28423 20666 20667 20668 20669 20670 20671 28424 28425 28426 28427 28428 28429 48 19370 19371 19372 19373 19374 19375 20798 20799 20800 20801 20802 20803 20780 20781 20782 20783 20784 20785 28424 28425 28426 28427 28428 28429 20666 20667 20668 20669 20670 20671 20684 20685 20686 20687 20688 20689 19382 19383 19384 19385 19386 19387 19394 19395 19396 19397 19398 19399 48 20894 20895 20896 20897 20898 20899 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28447 28400 28401 28402 28403 28404 28405 28394 28395 28396 28397 28398 28399 20780 20781 20782 20783 20784 20785 28448 28449 28450 28451 28452 28453 48 21008 21009 21010 21011 21012 21013 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28471 28436 28437 28438 28439 28440 28441 28430 28431 28432 28433 28434 28435 20894 20895 20896 20897 20898 20899 28472 28473 28474 28475 28476 28477 48 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28501 28460 28461 28462 28463 28464 28465 28454 28455 28456 28457 28458 28459 21008 21009 21010 21011 21012 21013 28502 28503 28504 28505 28506 28507 48 12476 12477 12478 12479 12480 12481 28508 28509 28510 28511 28512 28513 28478 28479 28480 28481 28482 28483 28502 28503 28504 28505 28506 28507 21008 21009 21010 21011 21012 21013 21026 21027 21028 21029 21030 21031 19352 19353 19354 19355 19356 19357 19364 19365 19366 19367 19368 19369 36 28490 28491 28492 28493 28494 28495 28478 28479 28480 28481 28482 28483 28514 28515 28516 28517 28518 28519 28484 28485 28486 28487 28488 28489 28526 28527 28528 28529 28530 28531 28520 28521 28522 28523 28524 28525 48 14366 14367 14368 14369 14370 14371 28532 28533 28534 28535 28536 28537 28514 28515 28516 28517 28518 28519 28526 28527 28528 28529 28530 28531 28478 28479 28480 28481 28482 28483 28508 28509 28510 28511 28512 28513 12476 12477 12478 12479 12480 12481 18440 18441 18442 18443 18444 18445 48 20768 20769 20770 20771 20772 20773 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 28555 21158 21159 21160 21161 21162 21163 21374 21375 21376 21377 21378 21379 20654 20655 20656 20657 20658 20659 28556 28557 28558 28559 28560 28561 48 20882 20883 20884 20885 20886 20887 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28579 28544 28545 28546 28547 28548 28549 28538 28539 28540 28541 28542 28543 20768 20769 20770 20771 20772 20773 28580 28581 28582 28583 28584 28585 48 20996 20997 20998 20999 21000 21001 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28603 28568 28569 28570 28571 28572 28573 28562 28563 28564 28565 28566 28567 20882 20883 20884 20885 20886 20887 28604 28605 28606 28607 28608 28609 48 961 962 963 964 965 966 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28627 28592 28593 28594 28595 28596 28597 28586 28587 28588 28589 28590 28591 20996 20997 20998 20999 21000 21001 28628 28629 28630 28631 28632 28633 36 28616 28617 28618 28619 28620 28621 961 962 963 964 965 966 28634 28635 28636 28637 28638 28639 28610 28611 28612 28613 28614 28615 28646 28647 28648 28649 28650 28651 28640 28641 28642 28643 28644 28645 48 14336 14337 14338 14339 14340 14341 28652 28653 28654 28655 28656 28657 28634 28635 28636 28637 28638 28639 28646 28647 28648 28649 28650 28651 961 962 963 964 965 966 28658 28659 28660 28661 28662 28663 12434 12435 12436 12437 12438 12439 18434 18435 18436 18437 18438 18439 48 20810 20811 20812 20813 20814 20815 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 28681 21134 21135 21136 21137 21138 21139 21440 21441 21442 21443 21444 21445 20696 20697 20698 20699 20700 20701 28682 28683 28684 28685 28686 28687 48 20924 20925 20926 20927 20928 20929 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28705 28670 28671 28672 28673 28674 28675 28664 28665 28666 28667 28668 28669 20810 20811 20812 20813 20814 20815 28706 28707 28708 28709 28710 28711 48 21038 21039 21040 21041 21042 21043 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28729 28694 28695 28696 28697 28698 28699 28688 28689 28690 28691 28692 28693 20924 20925 20926 20927 20928 20929 28730 28731 28732 28733 28734 28735 48 967 968 969 970 971 972 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28753 28718 28719 28720 28721 28722 28723 28712 28713 28714 28715 28716 28717 21038 21039 21040 21041 21042 21043 28754 28755 28756 28757 28758 28759 36 28742 28743 28744 28745 28746 28747 967 968 969 970 971 972 28760 28761 28762 28763 28764 28765 28736 28737 28738 28739 28740 28741 28772 28773 28774 28775 28776 28777 28766 28767 28768 28769 28770 28771 48 14306 14307 14308 14309 14310 14311 28778 28779 28780 28781 28782 28783 28760 28761 28762 28763 28764 28765 28772 28773 28774 28775 28776 28777 967 968 969 970 971 972 28784 28785 28786 28787 28788 28789 12392 12393 12394 12395 12396 12397 18428 18429 18430 18431 18432 18433 48 20834 20835 20836 20837 20838 20839 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 28807 21176 21177 21178 21179 21180 21181 21542 21543 21544 21545 21546 21547 20720 20721 20722 20723 20724 20725 28808 28809 28810 28811 28812 28813 48 20948 20949 20950 20951 20952 20953 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28831 28796 28797 28798 28799 28800 28801 28790 28791 28792 28793 28794 28795 20834 20835 20836 20837 20838 20839 28832 28833 28834 28835 28836 28837 48 21062 21063 21064 21065 21066 21067 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28855 28820 28821 28822 28823 28824 28825 28814 28815 28816 28817 28818 28819 20948 20949 20950 20951 20952 20953 28856 28857 28858 28859 28860 28861 48 973 974 975 976 977 978 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28879 28844 28845 28846 28847 28848 28849 28838 28839 28840 28841 28842 28843 21062 21063 21064 21065 21066 21067 28880 28881 28882 28883 28884 28885 36 28868 28869 28870 28871 28872 28873 973 974 975 976 977 978 28886 28887 28888 28889 28890 28891 28862 28863 28864 28865 28866 28867 28898 28899 28900 28901 28902 28903 28892 28893 28894 28895 28896 28897 48 14276 14277 14278 14279 14280 14281 28904 28905 28906 28907 28908 28909 28886 28887 28888 28889 28890 28891 28898 28899 28900 28901 28902 28903 973 974 975 976 977 978 28910 28911 28912 28913 28914 28915 12350 12351 12352 12353 12354 12355 18422 18423 18424 18425 18426 18427 48 20858 20859 20860 20861 20862 20863 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 28945 20744 20745 20746 20747 20748 20749 28946 28947 28948 28949 28950 28951 48 20972 20973 20974 20975 20976 20977 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28969 28922 28923 28924 28925 28926 28927 28916 28917 28918 28919 28920 28921 20858 20859 20860 20861 20862 20863 28970 28971 28972 28973 28974 28975 48 21086 21087 21088 21089 21090 21091 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28993 28958 28959 28960 28961 28962 28963 28952 28953 28954 28955 28956 28957 20972 20973 20974 20975 20976 20977 28994 28995 28996 28997 28998 28999 48 979 980 981 982 983 984 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 29017 28982 28983 28984 28985 28986 28987 28976 28977 28978 28979 28980 28981 21086 21087 21088 21089 21090 21091 29018 29019 29020 29021 29022 29023 36 29006 29007 29008 29009 29010 29011 979 980 981 982 983 984 29024 29025 29026 29027 29028 29029 29000 29001 29002 29003 29004 29005 29036 29037 29038 29039 29040 29041 29030 29031 29032 29033 29034 29035 48 14246 14247 14248 14249 14250 14251 29042 29043 29044 29045 29046 29047 29024 29025 29026 29027 29028 29029 29036 29037 29038 29039 29040 29041 979 980 981 982 983 984 29048 29049 29050 29051 29052 29053 12308 12309 12310 12311 12312 12313 18416 18417 18418 18419 18420 18421 48 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 29089 22514 22515 22516 22517 22518 22519 29090 29091 29092 29093 29094 29095 48 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29119 29066 29067 29068 29069 29070 29071 29060 29061 29062 29063 29064 29065 29054 29055 29056 29057 29058 29059 29120 29121 29122 29123 29124 29125 48 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29149 29108 29109 29110 29111 29112 29113 29102 29103 29104 29105 29106 29107 29096 29097 29098 29099 29100 29101 29150 29151 29152 29153 29154 29155 48 985 986 987 988 989 990 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29173 29138 29139 29140 29141 29142 29143 29132 29133 29134 29135 29136 29137 29126 29127 29128 29129 29130 29131 29174 29175 29176 29177 29178 29179 36 29162 29163 29164 29165 29166 29167 985 986 987 988 989 990 29180 29181 29182 29183 29184 29185 29156 29157 29158 29159 29160 29161 29192 29193 29194 29195 29196 29197 29186 29187 29188 29189 29190 29191 48 14216 14217 14218 14219 14220 14221 29198 29199 29200 29201 29202 29203 29180 29181 29182 29183 29184 29185 29192 29193 29194 29195 29196 29197 985 986 987 988 989 990 29204 29205 29206 29207 29208 29209 12266 12267 12268 12269 12270 12271 18410 18411 18412 18413 18414 18415 48 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 29245 22532 22533 22534 22535 22536 22537 29246 29247 29248 29249 29250 29251 48 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29275 29222 29223 29224 29225 29226 29227 29216 29217 29218 29219 29220 29221 29210 29211 29212 29213 29214 29215 29276 29277 29278 29279 29280 29281 48 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29305 29264 29265 29266 29267 29268 29269 29258 29259 29260 29261 29262 29263 29252 29253 29254 29255 29256 29257 29306 29307 29308 29309 29310 29311 48 991 992 993 994 995 996 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29329 29294 29295 29296 29297 29298 29299 29288 29289 29290 29291 29292 29293 29282 29283 29284 29285 29286 29287 29330 29331 29332 29333 29334 29335 36 29318 29319 29320 29321 29322 29323 991 992 993 994 995 996 29336 29337 29338 29339 29340 29341 29312 29313 29314 29315 29316 29317 29348 29349 29350 29351 29352 29353 29342 29343 29344 29345 29346 29347 48 14186 14187 14188 14189 14190 14191 29354 29355 29356 29357 29358 29359 29336 29337 29338 29339 29340 29341 29348 29349 29350 29351 29352 29353 991 992 993 994 995 996 29360 29361 29362 29363 29364 29365 12200 12201 12202 12203 12204 12205 18404 18405 18406 18407 18408 18409 48 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 29401 22118 22119 22120 22121 22122 22123 29402 29403 29404 29405 29406 29407 48 7724 7725 7726 7727 7728 7729 29408 29409 29410 29411 29412 29413 29366 29367 29368 29369 29370 29371 29402 29403 29404 29405 29406 29407 22118 22119 22120 22121 22122 22123 22112 22113 22114 22115 22116 22117 6056 6057 6058 6059 6060 6061 19346 19347 19348 19349 19350 19351 48 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29437 29378 29379 29380 29381 29382 29383 29372 29373 29374 29375 29376 29377 29366 29367 29368 29369 29370 29371 29438 29439 29440 29441 29442 29443 48 29444 29445 29446 29447 29448 29449 29450 29451 29452 29453 29454 29455 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29467 29426 29427 29428 29429 29430 29431 29420 29421 29422 29423 29424 29425 29414 29415 29416 29417 29418 29419 29468 29469 29470 29471 29472 29473 48 29474 29475 29476 29477 29478 29479 29480 29481 29482 29483 29484 29485 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29497 29456 29457 29458 29459 29460 29461 29450 29451 29452 29453 29454 29455 29444 29445 29446 29447 29448 29449 29498 29499 29500 29501 29502 29503 48 12188 12189 12190 12191 12192 12193 29504 29505 29506 29507 29508 29509 29474 29475 29476 29477 29478 29479 29498 29499 29500 29501 29502 29503 29444 29445 29446 29447 29448 29449 29510 29511 29512 29513 29514 29515 10778 10779 10780 10781 10782 10783 19340 19341 19342 19343 19344 19345 36 29486 29487 29488 29489 29490 29491 29474 29475 29476 29477 29478 29479 29516 29517 29518 29519 29520 29521 29480 29481 29482 29483 29484 29485 29528 29529 29530 29531 29532 29533 29522 29523 29524 29525 29526 29527 48 14156 14157 14158 14159 14160 14161 29534 29535 29536 29537 29538 29539 29516 29517 29518 29519 29520 29521 29528 29529 29530 29531 29532 29533 29474 29475 29476 29477 29478 29479 29504 29505 29506 29507 29508 29509 12188 12189 12190 12191 12192 12193 18398 18399 18400 18401 18402 18403 48 22574 22575 22576 22577 22578 22579 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 29557 21554 21555 21556 21557 21558 21559 22142 22143 22144 22145 22146 22147 22136 22137 22138 22139 22140 22141 22610 22611 22612 22613 22614 22615 48 22736 22737 22738 22739 22740 22741 29558 29559 29560 29561 29562 29563 22574 22575 22576 22577 22578 22579 22610 22611 22612 22613 22614 22615 22136 22137 22138 22139 22140 22141 22154 22155 22156 22157 22158 22159 21578 21579 21580 21581 21582 21583 22772 22773 22774 22775 22776 22777 48 22916 22917 22918 22919 22920 22921 29564 29565 29566 29567 29568 29569 22736 22737 22738 22739 22740 22741 22772 22773 22774 22775 22776 22777 21578 21579 21580 21581 21582 21583 22160 22161 22162 22163 22164 22165 21602 21603 21604 21605 21606 21607 22952 22953 22954 22955 22956 22957 48 23096 23097 23098 23099 23100 23101 29570 29571 29572 29573 29574 29575 22916 22917 22918 22919 22920 22921 22952 22953 22954 22955 22956 22957 21602 21603 21604 21605 21606 21607 22172 22173 22174 22175 22176 22177 22166 22167 22168 22169 22170 22171 23132 23133 23134 23135 23136 23137 48 23258 23259 23260 23261 23262 23263 29576 29577 29578 29579 29580 29581 23096 23097 23098 23099 23100 23101 23132 23133 23134 23135 23136 23137 22166 22167 22168 22169 22170 22171 22184 22185 22186 22187 22188 22189 21626 21627 21628 21629 21630 21631 23294 23295 23296 23297 23298 23299 48 23432 23433 23434 23435 23436 23437 29582 29583 29584 29585 29586 29587 23258 23259 23260 23261 23262 23263 23294 23295 23296 23297 23298 23299 21626 21627 21628 21629 21630 21631 22190 22191 22192 22193 22194 22195 21650 21651 21652 21653 21654 21655 23468 23469 23470 23471 23472 23473 48 23612 23613 23614 23615 23616 23617 29588 29589 29590 29591 29592 29593 23432 23433 23434 23435 23436 23437 23468 23469 23470 23471 23472 23473 21650 21651 21652 21653 21654 21655 22202 22203 22204 22205 22206 22207 22196 22197 22198 22199 22200 22201 23648 23649 23650 23651 23652 23653 48 23774 23775 23776 23777 23778 23779 29594 29595 29596 29597 29598 29599 23612 23613 23614 23615 23616 23617 23648 23649 23650 23651 23652 23653 22196 22197 22198 22199 22200 22201 22214 22215 22216 22217 22218 22219 21674 21675 21676 21677 21678 21679 23810 23811 23812 23813 23814 23815 48 23948 23949 23950 23951 23952 23953 29600 29601 29602 29603 29604 29605 23774 23775 23776 23777 23778 23779 23810 23811 23812 23813 23814 23815 21674 21675 21676 21677 21678 21679 22220 22221 22222 22223 22224 22225 21698 21699 21700 21701 21702 21703 23984 23985 23986 23987 23988 23989 48 24122 24123 24124 24125 24126 24127 29606 29607 29608 29609 29610 29611 23948 23949 23950 23951 23952 23953 23984 23985 23986 23987 23988 23989 21698 21699 21700 21701 21702 21703 22232 22233 22234 22235 22236 22237 22226 22227 22228 22229 22230 22231 24158 24159 24160 24161 24162 24163 48 24284 24285 24286 24287 24288 24289 29612 29613 29614 29615 29616 29617 24122 24123 24124 24125 24126 24127 24158 24159 24160 24161 24162 24163 22226 22227 22228 22229 22230 22231 22244 22245 22246 22247 22248 22249 21722 21723 21724 21725 21726 21727 24320 24321 24322 24323 24324 24325 48 24458 24459 24460 24461 24462 24463 29618 29619 29620 29621 29622 29623 24284 24285 24286 24287 24288 24289 24320 24321 24322 24323 24324 24325 21722 21723 21724 21725 21726 21727 22250 22251 22252 22253 22254 22255 21746 21747 21748 21749 21750 21751 24494 24495 24496 24497 24498 24499 48 24638 24639 24640 24641 24642 24643 29624 29625 29626 29627 29628 29629 24458 24459 24460 24461 24462 24463 24494 24495 24496 24497 24498 24499 21746 21747 21748 21749 21750 21751 22262 22263 22264 22265 22266 22267 22256 22257 22258 22259 22260 22261 24674 24675 24676 24677 24678 24679 48 24800 24801 24802 24803 24804 24805 29630 29631 29632 29633 29634 29635 24638 24639 24640 24641 24642 24643 24674 24675 24676 24677 24678 24679 22256 22257 22258 22259 22260 22261 22274 22275 22276 22277 22278 22279 21770 21771 21772 21773 21774 21775 24836 24837 24838 24839 24840 24841 48 24974 24975 24976 24977 24978 24979 29636 29637 29638 29639 29640 29641 24800 24801 24802 24803 24804 24805 24836 24837 24838 24839 24840 24841 21770 21771 21772 21773 21774 21775 22280 22281 22282 22283 22284 22285 21794 21795 21796 21797 21798 21799 25010 25011 25012 25013 25014 25015 48 25148 25149 25150 25151 25152 25153 29642 29643 29644 29645 29646 29647 24974 24975 24976 24977 24978 24979 25010 25011 25012 25013 25014 25015 21794 21795 21796 21797 21798 21799 22292 22293 22294 22295 22296 22297 22286 22287 22288 22289 22290 22291 25184 25185 25186 25187 25188 25189 48 25310 25311 25312 25313 25314 25315 29648 29649 29650 29651 29652 29653 25148 25149 25150 25151 25152 25153 25184 25185 25186 25187 25188 25189 22286 22287 22288 22289 22290 22291 22304 22305 22306 22307 22308 22309 21818 21819 21820 21821 21822 21823 25346 25347 25348 25349 25350 25351 48 25484 25485 25486 25487 25488 25489 29654 29655 29656 29657 29658 29659 25310 25311 25312 25313 25314 25315 25346 25347 25348 25349 25350 25351 21818 21819 21820 21821 21822 21823 22310 22311 22312 22313 22314 22315 21842 21843 21844 21845 21846 21847 25520 25521 25522 25523 25524 25525 48 25664 25665 25666 25667 25668 25669 29660 29661 29662 29663 29664 29665 25484 25485 25486 25487 25488 25489 25520 25521 25522 25523 25524 25525 21842 21843 21844 21845 21846 21847 22322 22323 22324 22325 22326 22327 22316 22317 22318 22319 22320 22321 25700 25701 25702 25703 25704 25705 48 25826 25827 25828 25829 25830 25831 29666 29667 29668 29669 29670 29671 25664 25665 25666 25667 25668 25669 25700 25701 25702 25703 25704 25705 22316 22317 22318 22319 22320 22321 22334 22335 22336 22337 22338 22339 21866 21867 21868 21869 21870 21871 25862 25863 25864 25865 25866 25867 48 26000 26001 26002 26003 26004 26005 29672 29673 29674 29675 29676 29677 25826 25827 25828 25829 25830 25831 25862 25863 25864 25865 25866 25867 21866 21867 21868 21869 21870 21871 22340 22341 22342 22343 22344 22345 21890 21891 21892 21893 21894 21895 26036 26037 26038 26039 26040 26041 48 26174 26175 26176 26177 26178 26179 29678 29679 29680 29681 29682 29683 26000 26001 26002 26003 26004 26005 26036 26037 26038 26039 26040 26041 21890 21891 21892 21893 21894 21895 22352 22353 22354 22355 22356 22357 22346 22347 22348 22349 22350 22351 26210 26211 26212 26213 26214 26215 48 26336 26337 26338 26339 26340 26341 29684 29685 29686 29687 29688 29689 26174 26175 26176 26177 26178 26179 26210 26211 26212 26213 26214 26215 22346 22347 22348 22349 22350 22351 22364 22365 22366 22367 22368 22369 21914 21915 21916 21917 21918 21919 26372 26373 26374 26375 26376 26377 48 26510 26511 26512 26513 26514 26515 29690 29691 29692 29693 29694 29695 26336 26337 26338 26339 26340 26341 26372 26373 26374 26375 26376 26377 21914 21915 21916 21917 21918 21919 22370 22371 22372 22373 22374 22375 21938 21939 21940 21941 21942 21943 26546 26547 26548 26549 26550 26551 48 26690 26691 26692 26693 26694 26695 29696 29697 29698 29699 29700 29701 26510 26511 26512 26513 26514 26515 26546 26547 26548 26549 26550 26551 21938 21939 21940 21941 21942 21943 22382 22383 22384 22385 22386 22387 22376 22377 22378 22379 22380 22381 26726 26727 26728 26729 26730 26731 48 26852 26853 26854 26855 26856 26857 29702 29703 29704 29705 29706 29707 26690 26691 26692 26693 26694 26695 26726 26727 26728 26729 26730 26731 22376 22377 22378 22379 22380 22381 22394 22395 22396 22397 22398 22399 21962 21963 21964 21965 21966 21967 26888 26889 26890 26891 26892 26893 48 27026 27027 27028 27029 27030 27031 29708 29709 29710 29711 29712 29713 26852 26853 26854 26855 26856 26857 26888 26889 26890 26891 26892 26893 21962 21963 21964 21965 21966 21967 22400 22401 22402 22403 22404 22405 21986 21987 21988 21989 21990 21991 27062 27063 27064 27065 27066 27067 48 27200 27201 27202 27203 27204 27205 29714 29715 29716 29717 29718 29719 27026 27027 27028 27029 27030 27031 27062 27063 27064 27065 27066 27067 21986 21987 21988 21989 21990 21991 22412 22413 22414 22415 22416 22417 22406 22407 22408 22409 22410 22411 27236 27237 27238 27239 27240 27241 48 27362 27363 27364 27365 27366 27367 29720 29721 29722 29723 29724 29725 27200 27201 27202 27203 27204 27205 27236 27237 27238 27239 27240 27241 22406 22407 22408 22409 22410 22411 22424 22425 22426 22427 22428 22429 22010 22011 22012 22013 22014 22015 27398 27399 27400 27401 27402 27403 48 27542 27543 27544 27545 27546 27547 29726 29727 29728 29729 29730 29731 27362 27363 27364 27365 27366 27367 27398 27399 27400 27401 27402 27403 22010 22011 22012 22013 22014 22015 22430 22431 22432 22433 22434 22435 22034 22035 22036 22037 22038 22039 27578 27579 27580 27581 27582 27583 48 27722 27723 27724 27725 27726 27727 29732 29733 29734 29735 29736 29737 27542 27543 27544 27545 27546 27547 27578 27579 27580 27581 27582 27583 22034 22035 22036 22037 22038 22039 22442 22443 22444 22445 22446 22447 22436 22437 22438 22439 22440 22441 27758 27759 27760 27761 27762 27763 48 27884 27885 27886 27887 27888 27889 29738 29739 29740 29741 29742 29743 27722 27723 27724 27725 27726 27727 27758 27759 27760 27761 27762 27763 22436 22437 22438 22439 22440 22441 22454 22455 22456 22457 22458 22459 22058 22059 22060 22061 22062 22063 27920 27921 27922 27923 27924 27925 48 28058 28059 28060 28061 28062 28063 29744 29745 29746 29747 29748 29749 27884 27885 27886 27887 27888 27889 27920 27921 27922 27923 27924 27925 22058 22059 22060 22061 22062 22063 22460 22461 22462 22463 22464 22465 22082 22083 22084 22085 22086 22087 28094 28095 28096 28097 28098 28099 48 28232 28233 28234 28235 28236 28237 29750 29751 29752 29753 29754 29755 28058 28059 28060 28061 28062 28063 28094 28095 28096 28097 28098 28099 22082 22083 22084 22085 22086 22087 22472 22473 22474 22475 22476 22477 22466 22467 22468 22469 22470 22471 28268 28269 28270 28271 28272 28273 48 20780 20781 20782 20783 20784 20785 29756 29757 29758 29759 29760 29761 28232 28233 28234 28235 28236 28237 28268 28269 28270 28271 28272 28273 22466 22467 22468 22469 22470 22471 22484 22485 22486 22487 22488 22489 20666 20667 20668 20669 20670 20671 28424 28425 28426 28427 28428 28429 48 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 28424 28425 28426 28427 28428 28429 20666 20667 20668 20669 20670 20671 20660 20661 20662 20663 20664 20665 20654 20655 20656 20657 20658 20659 28556 28557 28558 28559 28560 28561 48 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20768 20769 20770 20771 20772 20773 28556 28557 28558 28559 28560 28561 20654 20655 20656 20657 20658 20659 20702 20703 20704 20705 20706 20707 20696 20697 20698 20699 20700 20701 28682 28683 28684 28685 28686 28687 48 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20810 20811 20812 20813 20814 20815 28682 28683 28684 28685 28686 28687 20696 20697 20698 20699 20700 20701 20726 20727 20728 20729 20730 20731 20720 20721 20722 20723 20724 20725 28808 28809 28810 28811 28812 28813 48 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20834 20835 20836 20837 20838 20839 28808 28809 28810 28811 28812 28813 20720 20721 20722 20723 20724 20725 20750 20751 20752 20753 20754 20755 20744 20745 20746 20747 20748 20749 28946 28947 28948 28949 28950 28951 48 29054 29055 29056 29057 29058 29059 29762 29763 29764 29765 29766 29767 20858 20859 20860 20861 20862 20863 28946 28947 28948 28949 28950 28951 20744 20745 20746 20747 20748 20749 22520 22521 22522 22523 22524 22525 22514 22515 22516 22517 22518 22519 29090 29091 29092 29093 29094 29095 48 29210 29211 29212 29213 29214 29215 29768 29769 29770 29771 29772 29773 29054 29055 29056 29057 29058 29059 29090 29091 29092 29093 29094 29095 22514 22515 22516 22517 22518 22519 22538 22539 22540 22541 22542 22543 22532 22533 22534 22535 22536 22537 29246 29247 29248 29249 29250 29251 48 29366 29367 29368 29369 29370 29371 29774 29775 29776 29777 29778 29779 29210 29211 29212 29213 29214 29215 29246 29247 29248 29249 29250 29251 22532 22533 22534 22535 22536 22537 22550 22551 22552 22553 22554 22555 22118 22119 22120 22121 22122 22123 29402 29403 29404 29405 29406 29407 48 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29791 29366 29367 29368 29369 29370 29371 29402 29403 29404 29405 29406 29407 22118 22119 22120 22121 22122 22123 22562 22563 22564 22565 22566 22567 22556 22557 22558 22559 22560 22561 29792 29793 29794 29795 29796 29797 48 22616 22617 22618 22619 22620 22621 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29815 29546 29547 29548 29549 29550 29551 29540 29541 29542 29543 29544 29545 22574 22575 22576 22577 22578 22579 22640 22641 22642 22643 22644 22645 48 22784 22785 22786 22787 22788 22789 29816 29817 29818 29819 29820 29821 22616 22617 22618 22619 22620 22621 22640 22641 22642 22643 22644 22645 22574 22575 22576 22577 22578 22579 29558 29559 29560 29561 29562 29563 22736 22737 22738 22739 22740 22741 22808 22809 22810 22811 22812 22813 48 22964 22965 22966 22967 22968 22969 29822 29823 29824 29825 29826 29827 22784 22785 22786 22787 22788 22789 22808 22809 22810 22811 22812 22813 22736 22737 22738 22739 22740 22741 29564 29565 29566 29567 29568 29569 22916 22917 22918 22919 22920 22921 22988 22989 22990 22991 22992 22993 48 23138 23139 23140 23141 23142 23143 29828 29829 29830 29831 29832 29833 22964 22965 22966 22967 22968 22969 22988 22989 22990 22991 22992 22993 22916 22917 22918 22919 22920 22921 29570 29571 29572 29573 29574 29575 23096 23097 23098 23099 23100 23101 23162 23163 23164 23165 23166 23167 48 23306 23307 23308 23309 23310 23311 29834 29835 29836 29837 29838 29839 23138 23139 23140 23141 23142 23143 23162 23163 23164 23165 23166 23167 23096 23097 23098 23099 23100 23101 29576 29577 29578 29579 29580 29581 23258 23259 23260 23261 23262 23263 23330 23331 23332 23333 23334 23335 48 23480 23481 23482 23483 23484 23485 29840 29841 29842 29843 29844 29845 23306 23307 23308 23309 23310 23311 23330 23331 23332 23333 23334 23335 23258 23259 23260 23261 23262 23263 29582 29583 29584 29585 29586 29587 23432 23433 23434 23435 23436 23437 23504 23505 23506 23507 23508 23509 48 23654 23655 23656 23657 23658 23659 29846 29847 29848 29849 29850 29851 23480 23481 23482 23483 23484 23485 23504 23505 23506 23507 23508 23509 23432 23433 23434 23435 23436 23437 29588 29589 29590 29591 29592 29593 23612 23613 23614 23615 23616 23617 23678 23679 23680 23681 23682 23683 48 23822 23823 23824 23825 23826 23827 29852 29853 29854 29855 29856 29857 23654 23655 23656 23657 23658 23659 23678 23679 23680 23681 23682 23683 23612 23613 23614 23615 23616 23617 29594 29595 29596 29597 29598 29599 23774 23775 23776 23777 23778 23779 23846 23847 23848 23849 23850 23851 48 23996 23997 23998 23999 24000 24001 29858 29859 29860 29861 29862 29863 23822 23823 23824 23825 23826 23827 23846 23847 23848 23849 23850 23851 23774 23775 23776 23777 23778 23779 29600 29601 29602 29603 29604 29605 23948 23949 23950 23951 23952 23953 24020 24021 24022 24023 24024 24025 48 24164 24165 24166 24167 24168 24169 29864 29865 29866 29867 29868 29869 23996 23997 23998 23999 24000 24001 24020 24021 24022 24023 24024 24025 23948 23949 23950 23951 23952 23953 29606 29607 29608 29609 29610 29611 24122 24123 24124 24125 24126 24127 24188 24189 24190 24191 24192 24193 48 24332 24333 24334 24335 24336 24337 29870 29871 29872 29873 29874 29875 24164 24165 24166 24167 24168 24169 24188 24189 24190 24191 24192 24193 24122 24123 24124 24125 24126 24127 29612 29613 29614 29615 29616 29617 24284 24285 24286 24287 24288 24289 24356 24357 24358 24359 24360 24361 48 24506 24507 24508 24509 24510 24511 29876 29877 29878 29879 29880 29881 24332 24333 24334 24335 24336 24337 24356 24357 24358 24359 24360 24361 24284 24285 24286 24287 24288 24289 29618 29619 29620 29621 29622 29623 24458 24459 24460 24461 24462 24463 24530 24531 24532 24533 24534 24535 48 24680 24681 24682 24683 24684 24685 29882 29883 29884 29885 29886 29887 24506 24507 24508 24509 24510 24511 24530 24531 24532 24533 24534 24535 24458 24459 24460 24461 24462 24463 29624 29625 29626 29627 29628 29629 24638 24639 24640 24641 24642 24643 24704 24705 24706 24707 24708 24709 48 24848 24849 24850 24851 24852 24853 29888 29889 29890 29891 29892 29893 24680 24681 24682 24683 24684 24685 24704 24705 24706 24707 24708 24709 24638 24639 24640 24641 24642 24643 29630 29631 29632 29633 29634 29635 24800 24801 24802 24803 24804 24805 24872 24873 24874 24875 24876 24877 48 25022 25023 25024 25025 25026 25027 29894 29895 29896 29897 29898 29899 24848 24849 24850 24851 24852 24853 24872 24873 24874 24875 24876 24877 24800 24801 24802 24803 24804 24805 29636 29637 29638 29639 29640 29641 24974 24975 24976 24977 24978 24979 25046 25047 25048 25049 25050 25051 48 25190 25191 25192 25193 25194 25195 29900 29901 29902 29903 29904 29905 25022 25023 25024 25025 25026 25027 25046 25047 25048 25049 25050 25051 24974 24975 24976 24977 24978 24979 29642 29643 29644 29645 29646 29647 25148 25149 25150 25151 25152 25153 25214 25215 25216 25217 25218 25219 48 25358 25359 25360 25361 25362 25363 29906 29907 29908 29909 29910 29911 25190 25191 25192 25193 25194 25195 25214 25215 25216 25217 25218 25219 25148 25149 25150 25151 25152 25153 29648 29649 29650 29651 29652 29653 25310 25311 25312 25313 25314 25315 25382 25383 25384 25385 25386 25387 48 25532 25533 25534 25535 25536 25537 29912 29913 29914 29915 29916 29917 25358 25359 25360 25361 25362 25363 25382 25383 25384 25385 25386 25387 25310 25311 25312 25313 25314 25315 29654 29655 29656 29657 29658 29659 25484 25485 25486 25487 25488 25489 25556 25557 25558 25559 25560 25561 48 25706 25707 25708 25709 25710 25711 29918 29919 29920 29921 29922 29923 25532 25533 25534 25535 25536 25537 25556 25557 25558 25559 25560 25561 25484 25485 25486 25487 25488 25489 29660 29661 29662 29663 29664 29665 25664 25665 25666 25667 25668 25669 25730 25731 25732 25733 25734 25735 48 25874 25875 25876 25877 25878 25879 29924 29925 29926 29927 29928 29929 25706 25707 25708 25709 25710 25711 25730 25731 25732 25733 25734 25735 25664 25665 25666 25667 25668 25669 29666 29667 29668 29669 29670 29671 25826 25827 25828 25829 25830 25831 25898 25899 25900 25901 25902 25903 48 26048 26049 26050 26051 26052 26053 29930 29931 29932 29933 29934 29935 25874 25875 25876 25877 25878 25879 25898 25899 25900 25901 25902 25903 25826 25827 25828 25829 25830 25831 29672 29673 29674 29675 29676 29677 26000 26001 26002 26003 26004 26005 26072 26073 26074 26075 26076 26077 48 26216 26217 26218 26219 26220 26221 29936 29937 29938 29939 29940 29941 26048 26049 26050 26051 26052 26053 26072 26073 26074 26075 26076 26077 26000 26001 26002 26003 26004 26005 29678 29679 29680 29681 29682 29683 26174 26175 26176 26177 26178 26179 26240 26241 26242 26243 26244 26245 48 26384 26385 26386 26387 26388 26389 29942 29943 29944 29945 29946 29947 26216 26217 26218 26219 26220 26221 26240 26241 26242 26243 26244 26245 26174 26175 26176 26177 26178 26179 29684 29685 29686 29687 29688 29689 26336 26337 26338 26339 26340 26341 26408 26409 26410 26411 26412 26413 48 26558 26559 26560 26561 26562 26563 29948 29949 29950 29951 29952 29953 26384 26385 26386 26387 26388 26389 26408 26409 26410 26411 26412 26413 26336 26337 26338 26339 26340 26341 29690 29691 29692 29693 29694 29695 26510 26511 26512 26513 26514 26515 26582 26583 26584 26585 26586 26587 48 26732 26733 26734 26735 26736 26737 29954 29955 29956 29957 29958 29959 26558 26559 26560 26561 26562 26563 26582 26583 26584 26585 26586 26587 26510 26511 26512 26513 26514 26515 29696 29697 29698 29699 29700 29701 26690 26691 26692 26693 26694 26695 26756 26757 26758 26759 26760 26761 48 26900 26901 26902 26903 26904 26905 29960 29961 29962 29963 29964 29965 26732 26733 26734 26735 26736 26737 26756 26757 26758 26759 26760 26761 26690 26691 26692 26693 26694 26695 29702 29703 29704 29705 29706 29707 26852 26853 26854 26855 26856 26857 26924 26925 26926 26927 26928 26929 48 27074 27075 27076 27077 27078 27079 29966 29967 29968 29969 29970 29971 26900 26901 26902 26903 26904 26905 26924 26925 26926 26927 26928 26929 26852 26853 26854 26855 26856 26857 29708 29709 29710 29711 29712 29713 27026 27027 27028 27029 27030 27031 27098 27099 27100 27101 27102 27103 48 27242 27243 27244 27245 27246 27247 29972 29973 29974 29975 29976 29977 27074 27075 27076 27077 27078 27079 27098 27099 27100 27101 27102 27103 27026 27027 27028 27029 27030 27031 29714 29715 29716 29717 29718 29719 27200 27201 27202 27203 27204 27205 27266 27267 27268 27269 27270 27271 48 27410 27411 27412 27413 27414 27415 29978 29979 29980 29981 29982 29983 27242 27243 27244 27245 27246 27247 27266 27267 27268 27269 27270 27271 27200 27201 27202 27203 27204 27205 29720 29721 29722 29723 29724 29725 27362 27363 27364 27365 27366 27367 27434 27435 27436 27437 27438 27439 48 27590 27591 27592 27593 27594 27595 29984 29985 29986 29987 29988 29989 27410 27411 27412 27413 27414 27415 27434 27435 27436 27437 27438 27439 27362 27363 27364 27365 27366 27367 29726 29727 29728 29729 29730 29731 27542 27543 27544 27545 27546 27547 27614 27615 27616 27617 27618 27619 48 27764 27765 27766 27767 27768 27769 29990 29991 29992 29993 29994 29995 27590 27591 27592 27593 27594 27595 27614 27615 27616 27617 27618 27619 27542 27543 27544 27545 27546 27547 29732 29733 29734 29735 29736 29737 27722 27723 27724 27725 27726 27727 27788 27789 27790 27791 27792 27793 48 27932 27933 27934 27935 27936 27937 29996 29997 29998 29999 30000 30001 27764 27765 27766 27767 27768 27769 27788 27789 27790 27791 27792 27793 27722 27723 27724 27725 27726 27727 29738 29739 29740 29741 29742 29743 27884 27885 27886 27887 27888 27889 27956 27957 27958 27959 27960 27961 48 28106 28107 28108 28109 28110 28111 30002 30003 30004 30005 30006 30007 27932 27933 27934 27935 27936 27937 27956 27957 27958 27959 27960 27961 27884 27885 27886 27887 27888 27889 29744 29745 29746 29747 29748 29749 28058 28059 28060 28061 28062 28063 28130 28131 28132 28133 28134 28135 48 28274 28275 28276 28277 28278 28279 30008 30009 30010 30011 30012 30013 28106 28107 28108 28109 28110 28111 28130 28131 28132 28133 28134 28135 28058 28059 28060 28061 28062 28063 29750 29751 29752 29753 29754 29755 28232 28233 28234 28235 28236 28237 28298 28299 28300 28301 28302 28303 48 20894 20895 20896 20897 20898 20899 30014 30015 30016 30017 30018 30019 28274 28275 28276 28277 28278 28279 28298 28299 28300 28301 28302 28303 28232 28233 28234 28235 28236 28237 29756 29757 29758 29759 29760 29761 20780 20781 20782 20783 20784 20785 28448 28449 28450 28451 28452 28453 48 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 28448 28449 28450 28451 28452 28453 20780 20781 20782 20783 20784 20785 20774 20775 20776 20777 20778 20779 20768 20769 20770 20771 20772 20773 28580 28581 28582 28583 28584 28585 48 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20882 20883 20884 20885 20886 20887 28580 28581 28582 28583 28584 28585 20768 20769 20770 20771 20772 20773 20816 20817 20818 20819 20820 20821 20810 20811 20812 20813 20814 20815 28706 28707 28708 28709 28710 28711 48 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20924 20925 20926 20927 20928 20929 28706 28707 28708 28709 28710 28711 20810 20811 20812 20813 20814 20815 20840 20841 20842 20843 20844 20845 20834 20835 20836 20837 20838 20839 28832 28833 28834 28835 28836 28837 48 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20948 20949 20950 20951 20952 20953 28832 28833 28834 28835 28836 28837 20834 20835 20836 20837 20838 20839 20864 20865 20866 20867 20868 20869 20858 20859 20860 20861 20862 20863 28970 28971 28972 28973 28974 28975 48 29096 29097 29098 29099 29100 29101 30020 30021 30022 30023 30024 30025 20972 20973 20974 20975 20976 20977 28970 28971 28972 28973 28974 28975 20858 20859 20860 20861 20862 20863 29762 29763 29764 29765 29766 29767 29054 29055 29056 29057 29058 29059 29120 29121 29122 29123 29124 29125 48 29252 29253 29254 29255 29256 29257 30026 30027 30028 30029 30030 30031 29096 29097 29098 29099 29100 29101 29120 29121 29122 29123 29124 29125 29054 29055 29056 29057 29058 29059 29768 29769 29770 29771 29772 29773 29210 29211 29212 29213 29214 29215 29276 29277 29278 29279 29280 29281 48 29414 29415 29416 29417 29418 29419 30032 30033 30034 30035 30036 30037 29252 29253 29254 29255 29256 29257 29276 29277 29278 29279 29280 29281 29210 29211 29212 29213 29214 29215 29774 29775 29776 29777 29778 29779 29366 29367 29368 29369 29370 29371 29438 29439 29440 29441 29442 29443 48 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 30049 29414 29415 29416 29417 29418 29419 29438 29439 29440 29441 29442 29443 29366 29367 29368 29369 29370 29371 29786 29787 29788 29789 29790 29791 29780 29781 29782 29783 29784 29785 30050 30051 30052 30053 30054 30055 48 22646 22647 22648 22649 22650 22651 30056 30057 30058 30059 30060 30061 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 30073 29804 29805 29806 29807 29808 29809 29798 29799 29800 29801 29802 29803 22616 22617 22618 22619 22620 22621 22670 22671 22672 22673 22674 22675 48 22820 22821 22822 22823 22824 22825 30074 30075 30076 30077 30078 30079 22646 22647 22648 22649 22650 22651 22670 22671 22672 22673 22674 22675 22616 22617 22618 22619 22620 22621 29816 29817 29818 29819 29820 29821 22784 22785 22786 22787 22788 22789 22844 22845 22846 22847 22848 22849 48 23000 23001 23002 23003 23004 23005 30080 30081 30082 30083 30084 30085 22820 22821 22822 22823 22824 22825 22844 22845 22846 22847 22848 22849 22784 22785 22786 22787 22788 22789 29822 29823 29824 29825 29826 29827 22964 22965 22966 22967 22968 22969 23024 23025 23026 23027 23028 23029 48 23168 23169 23170 23171 23172 23173 30086 30087 30088 30089 30090 30091 23000 23001 23002 23003 23004 23005 23024 23025 23026 23027 23028 23029 22964 22965 22966 22967 22968 22969 29828 29829 29830 29831 29832 29833 23138 23139 23140 23141 23142 23143 23192 23193 23194 23195 23196 23197 48 23336 23337 23338 23339 23340 23341 30092 30093 30094 30095 30096 30097 23168 23169 23170 23171 23172 23173 23192 23193 23194 23195 23196 23197 23138 23139 23140 23141 23142 23143 29834 29835 29836 29837 29838 29839 23306 23307 23308 23309 23310 23311 23360 23361 23362 23363 23364 23365 48 23516 23517 23518 23519 23520 23521 30098 30099 30100 30101 30102 30103 23336 23337 23338 23339 23340 23341 23360 23361 23362 23363 23364 23365 23306 23307 23308 23309 23310 23311 29840 29841 29842 29843 29844 29845 23480 23481 23482 23483 23484 23485 23540 23541 23542 23543 23544 23545 48 23684 23685 23686 23687 23688 23689 30104 30105 30106 30107 30108 30109 23516 23517 23518 23519 23520 23521 23540 23541 23542 23543 23544 23545 23480 23481 23482 23483 23484 23485 29846 29847 29848 29849 29850 29851 23654 23655 23656 23657 23658 23659 23708 23709 23710 23711 23712 23713 48 23852 23853 23854 23855 23856 23857 30110 30111 30112 30113 30114 30115 23684 23685 23686 23687 23688 23689 23708 23709 23710 23711 23712 23713 23654 23655 23656 23657 23658 23659 29852 29853 29854 29855 29856 29857 23822 23823 23824 23825 23826 23827 23876 23877 23878 23879 23880 23881 48 24026 24027 24028 24029 24030 24031 30116 30117 30118 30119 30120 30121 23852 23853 23854 23855 23856 23857 23876 23877 23878 23879 23880 23881 23822 23823 23824 23825 23826 23827 29858 29859 29860 29861 29862 29863 23996 23997 23998 23999 24000 24001 24050 24051 24052 24053 24054 24055 48 24194 24195 24196 24197 24198 24199 30122 30123 30124 30125 30126 30127 24026 24027 24028 24029 24030 24031 24050 24051 24052 24053 24054 24055 23996 23997 23998 23999 24000 24001 29864 29865 29866 29867 29868 29869 24164 24165 24166 24167 24168 24169 24218 24219 24220 24221 24222 24223 48 24362 24363 24364 24365 24366 24367 30128 30129 30130 30131 30132 30133 24194 24195 24196 24197 24198 24199 24218 24219 24220 24221 24222 24223 24164 24165 24166 24167 24168 24169 29870 29871 29872 29873 29874 29875 24332 24333 24334 24335 24336 24337 24386 24387 24388 24389 24390 24391 48 24542 24543 24544 24545 24546 24547 30134 30135 30136 30137 30138 30139 24362 24363 24364 24365 24366 24367 24386 24387 24388 24389 24390 24391 24332 24333 24334 24335 24336 24337 29876 29877 29878 29879 29880 29881 24506 24507 24508 24509 24510 24511 24566 24567 24568 24569 24570 24571 48 24710 24711 24712 24713 24714 24715 30140 30141 30142 30143 30144 30145 24542 24543 24544 24545 24546 24547 24566 24567 24568 24569 24570 24571 24506 24507 24508 24509 24510 24511 29882 29883 29884 29885 29886 29887 24680 24681 24682 24683 24684 24685 24734 24735 24736 24737 24738 24739 48 24878 24879 24880 24881 24882 24883 30146 30147 30148 30149 30150 30151 24710 24711 24712 24713 24714 24715 24734 24735 24736 24737 24738 24739 24680 24681 24682 24683 24684 24685 29888 29889 29890 29891 29892 29893 24848 24849 24850 24851 24852 24853 24902 24903 24904 24905 24906 24907 48 25052 25053 25054 25055 25056 25057 30152 30153 30154 30155 30156 30157 24878 24879 24880 24881 24882 24883 24902 24903 24904 24905 24906 24907 24848 24849 24850 24851 24852 24853 29894 29895 29896 29897 29898 29899 25022 25023 25024 25025 25026 25027 25076 25077 25078 25079 25080 25081 48 25220 25221 25222 25223 25224 25225 30158 30159 30160 30161 30162 30163 25052 25053 25054 25055 25056 25057 25076 25077 25078 25079 25080 25081 25022 25023 25024 25025 25026 25027 29900 29901 29902 29903 29904 29905 25190 25191 25192 25193 25194 25195 25244 25245 25246 25247 25248 25249 48 25388 25389 25390 25391 25392 25393 30164 30165 30166 30167 30168 30169 25220 25221 25222 25223 25224 25225 25244 25245 25246 25247 25248 25249 25190 25191 25192 25193 25194 25195 29906 29907 29908 29909 29910 29911 25358 25359 25360 25361 25362 25363 25412 25413 25414 25415 25416 25417 48 25568 25569 25570 25571 25572 25573 30170 30171 30172 30173 30174 30175 25388 25389 25390 25391 25392 25393 25412 25413 25414 25415 25416 25417 25358 25359 25360 25361 25362 25363 29912 29913 29914 29915 29916 29917 25532 25533 25534 25535 25536 25537 25592 25593 25594 25595 25596 25597 48 25736 25737 25738 25739 25740 25741 30176 30177 30178 30179 30180 30181 25568 25569 25570 25571 25572 25573 25592 25593 25594 25595 25596 25597 25532 25533 25534 25535 25536 25537 29918 29919 29920 29921 29922 29923 25706 25707 25708 25709 25710 25711 25760 25761 25762 25763 25764 25765 48 25904 25905 25906 25907 25908 25909 30182 30183 30184 30185 30186 30187 25736 25737 25738 25739 25740 25741 25760 25761 25762 25763 25764 25765 25706 25707 25708 25709 25710 25711 29924 29925 29926 29927 29928 29929 25874 25875 25876 25877 25878 25879 25928 25929 25930 25931 25932 25933 48 26078 26079 26080 26081 26082 26083 30188 30189 30190 30191 30192 30193 25904 25905 25906 25907 25908 25909 25928 25929 25930 25931 25932 25933 25874 25875 25876 25877 25878 25879 29930 29931 29932 29933 29934 29935 26048 26049 26050 26051 26052 26053 26102 26103 26104 26105 26106 26107 48 26246 26247 26248 26249 26250 26251 30194 30195 30196 30197 30198 30199 26078 26079 26080 26081 26082 26083 26102 26103 26104 26105 26106 26107 26048 26049 26050 26051 26052 26053 29936 29937 29938 29939 29940 29941 26216 26217 26218 26219 26220 26221 26270 26271 26272 26273 26274 26275 48 26414 26415 26416 26417 26418 26419 30200 30201 30202 30203 30204 30205 26246 26247 26248 26249 26250 26251 26270 26271 26272 26273 26274 26275 26216 26217 26218 26219 26220 26221 29942 29943 29944 29945 29946 29947 26384 26385 26386 26387 26388 26389 26438 26439 26440 26441 26442 26443 48 26594 26595 26596 26597 26598 26599 30206 30207 30208 30209 30210 30211 26414 26415 26416 26417 26418 26419 26438 26439 26440 26441 26442 26443 26384 26385 26386 26387 26388 26389 29948 29949 29950 29951 29952 29953 26558 26559 26560 26561 26562 26563 26618 26619 26620 26621 26622 26623 48 26762 26763 26764 26765 26766 26767 30212 30213 30214 30215 30216 30217 26594 26595 26596 26597 26598 26599 26618 26619 26620 26621 26622 26623 26558 26559 26560 26561 26562 26563 29954 29955 29956 29957 29958 29959 26732 26733 26734 26735 26736 26737 26786 26787 26788 26789 26790 26791 48 26930 26931 26932 26933 26934 26935 30218 30219 30220 30221 30222 30223 26762 26763 26764 26765 26766 26767 26786 26787 26788 26789 26790 26791 26732 26733 26734 26735 26736 26737 29960 29961 29962 29963 29964 29965 26900 26901 26902 26903 26904 26905 26954 26955 26956 26957 26958 26959 48 27104 27105 27106 27107 27108 27109 30224 30225 30226 30227 30228 30229 26930 26931 26932 26933 26934 26935 26954 26955 26956 26957 26958 26959 26900 26901 26902 26903 26904 26905 29966 29967 29968 29969 29970 29971 27074 27075 27076 27077 27078 27079 27128 27129 27130 27131 27132 27133 48 27272 27273 27274 27275 27276 27277 30230 30231 30232 30233 30234 30235 27104 27105 27106 27107 27108 27109 27128 27129 27130 27131 27132 27133 27074 27075 27076 27077 27078 27079 29972 29973 29974 29975 29976 29977 27242 27243 27244 27245 27246 27247 27296 27297 27298 27299 27300 27301 48 27446 27447 27448 27449 27450 27451 30236 30237 30238 30239 30240 30241 27272 27273 27274 27275 27276 27277 27296 27297 27298 27299 27300 27301 27242 27243 27244 27245 27246 27247 29978 29979 29980 29981 29982 29983 27410 27411 27412 27413 27414 27415 27470 27471 27472 27473 27474 27475 48 27626 27627 27628 27629 27630 27631 30242 30243 30244 30245 30246 30247 27446 27447 27448 27449 27450 27451 27470 27471 27472 27473 27474 27475 27410 27411 27412 27413 27414 27415 29984 29985 29986 29987 29988 29989 27590 27591 27592 27593 27594 27595 27650 27651 27652 27653 27654 27655 48 27794 27795 27796 27797 27798 27799 30248 30249 30250 30251 30252 30253 27626 27627 27628 27629 27630 27631 27650 27651 27652 27653 27654 27655 27590 27591 27592 27593 27594 27595 29990 29991 29992 29993 29994 29995 27764 27765 27766 27767 27768 27769 27818 27819 27820 27821 27822 27823 48 27962 27963 27964 27965 27966 27967 30254 30255 30256 30257 30258 30259 27794 27795 27796 27797 27798 27799 27818 27819 27820 27821 27822 27823 27764 27765 27766 27767 27768 27769 29996 29997 29998 29999 30000 30001 27932 27933 27934 27935 27936 27937 27986 27987 27988 27989 27990 27991 48 28136 28137 28138 28139 28140 28141 30260 30261 30262 30263 30264 30265 27962 27963 27964 27965 27966 27967 27986 27987 27988 27989 27990 27991 27932 27933 27934 27935 27936 27937 30002 30003 30004 30005 30006 30007 28106 28107 28108 28109 28110 28111 28160 28161 28162 28163 28164 28165 48 28304 28305 28306 28307 28308 28309 30266 30267 30268 30269 30270 30271 28136 28137 28138 28139 28140 28141 28160 28161 28162 28163 28164 28165 28106 28107 28108 28109 28110 28111 30008 30009 30010 30011 30012 30013 28274 28275 28276 28277 28278 28279 28328 28329 28330 28331 28332 28333 48 21008 21009 21010 21011 21012 21013 30272 30273 30274 30275 30276 30277 28304 28305 28306 28307 28308 28309 28328 28329 28330 28331 28332 28333 28274 28275 28276 28277 28278 28279 30014 30015 30016 30017 30018 30019 20894 20895 20896 20897 20898 20899 28472 28473 28474 28475 28476 28477 48 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 28472 28473 28474 28475 28476 28477 20894 20895 20896 20897 20898 20899 20888 20889 20890 20891 20892 20893 20882 20883 20884 20885 20886 20887 28604 28605 28606 28607 28608 28609 48 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 20996 20997 20998 20999 21000 21001 28604 28605 28606 28607 28608 28609 20882 20883 20884 20885 20886 20887 20930 20931 20932 20933 20934 20935 20924 20925 20926 20927 20928 20929 28730 28731 28732 28733 28734 28735 48 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21038 21039 21040 21041 21042 21043 28730 28731 28732 28733 28734 28735 20924 20925 20926 20927 20928 20929 20954 20955 20956 20957 20958 20959 20948 20949 20950 20951 20952 20953 28856 28857 28858 28859 28860 28861 48 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21062 21063 21064 21065 21066 21067 28856 28857 28858 28859 28860 28861 20948 20949 20950 20951 20952 20953 20978 20979 20980 20981 20982 20983 20972 20973 20974 20975 20976 20977 28994 28995 28996 28997 28998 28999 48 29126 29127 29128 29129 29130 29131 30278 30279 30280 30281 30282 30283 21086 21087 21088 21089 21090 21091 28994 28995 28996 28997 28998 28999 20972 20973 20974 20975 20976 20977 30020 30021 30022 30023 30024 30025 29096 29097 29098 29099 29100 29101 29150 29151 29152 29153 29154 29155 48 29282 29283 29284 29285 29286 29287 30284 30285 30286 30287 30288 30289 29126 29127 29128 29129 29130 29131 29150 29151 29152 29153 29154 29155 29096 29097 29098 29099 29100 29101 30026 30027 30028 30029 30030 30031 29252 29253 29254 29255 29256 29257 29306 29307 29308 29309 29310 29311 48 29444 29445 29446 29447 29448 29449 30290 30291 30292 30293 30294 30295 29282 29283 29284 29285 29286 29287 29306 29307 29308 29309 29310 29311 29252 29253 29254 29255 29256 29257 30032 30033 30034 30035 30036 30037 29414 29415 29416 29417 29418 29419 29468 29469 29470 29471 29472 29473 48 30296 30297 30298 30299 30300 30301 30302 30303 30304 30305 30306 30307 29444 29445 29446 29447 29448 29449 29468 29469 29470 29471 29472 29473 29414 29415 29416 29417 29418 29419 30044 30045 30046 30047 30048 30049 30038 30039 30040 30041 30042 30043 30308 30309 30310 30311 30312 30313 48 22676 22677 22678 22679 22680 22681 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30062 30063 30064 30065 30066 30067 30056 30057 30058 30059 30060 30061 22646 22647 22648 22649 22650 22651 22700 22701 22702 22703 22704 22705 48 22856 22857 22858 22859 22860 22861 30332 30333 30334 30335 30336 30337 22676 22677 22678 22679 22680 22681 22700 22701 22702 22703 22704 22705 22646 22647 22648 22649 22650 22651 30074 30075 30076 30077 30078 30079 22820 22821 22822 22823 22824 22825 22880 22881 22882 22883 22884 22885 48 23036 23037 23038 23039 23040 23041 30338 30339 30340 30341 30342 30343 22856 22857 22858 22859 22860 22861 22880 22881 22882 22883 22884 22885 22820 22821 22822 22823 22824 22825 30080 30081 30082 30083 30084 30085 23000 23001 23002 23003 23004 23005 23060 23061 23062 23063 23064 23065 48 23198 23199 23200 23201 23202 23203 30344 30345 30346 30347 30348 30349 23036 23037 23038 23039 23040 23041 23060 23061 23062 23063 23064 23065 23000 23001 23002 23003 23004 23005 30086 30087 30088 30089 30090 30091 23168 23169 23170 23171 23172 23173 23222 23223 23224 23225 23226 23227 48 23366 23367 23368 23369 23370 23371 30350 30351 30352 30353 30354 30355 23198 23199 23200 23201 23202 23203 23222 23223 23224 23225 23226 23227 23168 23169 23170 23171 23172 23173 30092 30093 30094 30095 30096 30097 23336 23337 23338 23339 23340 23341 23390 23391 23392 23393 23394 23395 48 23552 23553 23554 23555 23556 23557 30356 30357 30358 30359 30360 30361 23366 23367 23368 23369 23370 23371 23390 23391 23392 23393 23394 23395 23336 23337 23338 23339 23340 23341 30098 30099 30100 30101 30102 30103 23516 23517 23518 23519 23520 23521 23576 23577 23578 23579 23580 23581 48 23714 23715 23716 23717 23718 23719 30362 30363 30364 30365 30366 30367 23552 23553 23554 23555 23556 23557 23576 23577 23578 23579 23580 23581 23516 23517 23518 23519 23520 23521 30104 30105 30106 30107 30108 30109 23684 23685 23686 23687 23688 23689 23738 23739 23740 23741 23742 23743 48 23882 23883 23884 23885 23886 23887 30368 30369 30370 30371 30372 30373 23714 23715 23716 23717 23718 23719 23738 23739 23740 23741 23742 23743 23684 23685 23686 23687 23688 23689 30110 30111 30112 30113 30114 30115 23852 23853 23854 23855 23856 23857 23906 23907 23908 23909 23910 23911 48 24056 24057 24058 24059 24060 24061 30374 30375 30376 30377 30378 30379 23882 23883 23884 23885 23886 23887 23906 23907 23908 23909 23910 23911 23852 23853 23854 23855 23856 23857 30116 30117 30118 30119 30120 30121 24026 24027 24028 24029 24030 24031 24080 24081 24082 24083 24084 24085 48 24224 24225 24226 24227 24228 24229 30380 30381 30382 30383 30384 30385 24056 24057 24058 24059 24060 24061 24080 24081 24082 24083 24084 24085 24026 24027 24028 24029 24030 24031 30122 30123 30124 30125 30126 30127 24194 24195 24196 24197 24198 24199 24248 24249 24250 24251 24252 24253 48 24392 24393 24394 24395 24396 24397 30386 30387 30388 30389 30390 30391 24224 24225 24226 24227 24228 24229 24248 24249 24250 24251 24252 24253 24194 24195 24196 24197 24198 24199 30128 30129 30130 30131 30132 30133 24362 24363 24364 24365 24366 24367 24416 24417 24418 24419 24420 24421 48 24578 24579 24580 24581 24582 24583 30392 30393 30394 30395 30396 30397 24392 24393 24394 24395 24396 24397 24416 24417 24418 24419 24420 24421 24362 24363 24364 24365 24366 24367 30134 30135 30136 30137 30138 30139 24542 24543 24544 24545 24546 24547 24602 24603 24604 24605 24606 24607 48 24740 24741 24742 24743 24744 24745 30398 30399 30400 30401 30402 30403 24578 24579 24580 24581 24582 24583 24602 24603 24604 24605 24606 24607 24542 24543 24544 24545 24546 24547 30140 30141 30142 30143 30144 30145 24710 24711 24712 24713 24714 24715 24764 24765 24766 24767 24768 24769 48 24908 24909 24910 24911 24912 24913 30404 30405 30406 30407 30408 30409 24740 24741 24742 24743 24744 24745 24764 24765 24766 24767 24768 24769 24710 24711 24712 24713 24714 24715 30146 30147 30148 30149 30150 30151 24878 24879 24880 24881 24882 24883 24932 24933 24934 24935 24936 24937 48 25082 25083 25084 25085 25086 25087 30410 30411 30412 30413 30414 30415 24908 24909 24910 24911 24912 24913 24932 24933 24934 24935 24936 24937 24878 24879 24880 24881 24882 24883 30152 30153 30154 30155 30156 30157 25052 25053 25054 25055 25056 25057 25106 25107 25108 25109 25110 25111 48 25250 25251 25252 25253 25254 25255 30416 30417 30418 30419 30420 30421 25082 25083 25084 25085 25086 25087 25106 25107 25108 25109 25110 25111 25052 25053 25054 25055 25056 25057 30158 30159 30160 30161 30162 30163 25220 25221 25222 25223 25224 25225 25274 25275 25276 25277 25278 25279 48 25418 25419 25420 25421 25422 25423 30422 30423 30424 30425 30426 30427 25250 25251 25252 25253 25254 25255 25274 25275 25276 25277 25278 25279 25220 25221 25222 25223 25224 25225 30164 30165 30166 30167 30168 30169 25388 25389 25390 25391 25392 25393 25442 25443 25444 25445 25446 25447 48 25604 25605 25606 25607 25608 25609 30428 30429 30430 30431 30432 30433 25418 25419 25420 25421 25422 25423 25442 25443 25444 25445 25446 25447 25388 25389 25390 25391 25392 25393 30170 30171 30172 30173 30174 30175 25568 25569 25570 25571 25572 25573 25628 25629 25630 25631 25632 25633 48 25766 25767 25768 25769 25770 25771 30434 30435 30436 30437 30438 30439 25604 25605 25606 25607 25608 25609 25628 25629 25630 25631 25632 25633 25568 25569 25570 25571 25572 25573 30176 30177 30178 30179 30180 30181 25736 25737 25738 25739 25740 25741 25790 25791 25792 25793 25794 25795 48 25934 25935 25936 25937 25938 25939 30440 30441 30442 30443 30444 30445 25766 25767 25768 25769 25770 25771 25790 25791 25792 25793 25794 25795 25736 25737 25738 25739 25740 25741 30182 30183 30184 30185 30186 30187 25904 25905 25906 25907 25908 25909 25958 25959 25960 25961 25962 25963 48 26108 26109 26110 26111 26112 26113 30446 30447 30448 30449 30450 30451 25934 25935 25936 25937 25938 25939 25958 25959 25960 25961 25962 25963 25904 25905 25906 25907 25908 25909 30188 30189 30190 30191 30192 30193 26078 26079 26080 26081 26082 26083 26132 26133 26134 26135 26136 26137 48 26276 26277 26278 26279 26280 26281 30452 30453 30454 30455 30456 30457 26108 26109 26110 26111 26112 26113 26132 26133 26134 26135 26136 26137 26078 26079 26080 26081 26082 26083 30194 30195 30196 30197 30198 30199 26246 26247 26248 26249 26250 26251 26300 26301 26302 26303 26304 26305 48 26444 26445 26446 26447 26448 26449 30458 30459 30460 30461 30462 30463 26276 26277 26278 26279 26280 26281 26300 26301 26302 26303 26304 26305 26246 26247 26248 26249 26250 26251 30200 30201 30202 30203 30204 30205 26414 26415 26416 26417 26418 26419 26468 26469 26470 26471 26472 26473 48 26630 26631 26632 26633 26634 26635 30464 30465 30466 30467 30468 30469 26444 26445 26446 26447 26448 26449 26468 26469 26470 26471 26472 26473 26414 26415 26416 26417 26418 26419 30206 30207 30208 30209 30210 30211 26594 26595 26596 26597 26598 26599 26654 26655 26656 26657 26658 26659 48 26792 26793 26794 26795 26796 26797 30470 30471 30472 30473 30474 30475 26630 26631 26632 26633 26634 26635 26654 26655 26656 26657 26658 26659 26594 26595 26596 26597 26598 26599 30212 30213 30214 30215 30216 30217 26762 26763 26764 26765 26766 26767 26816 26817 26818 26819 26820 26821 48 26960 26961 26962 26963 26964 26965 30476 30477 30478 30479 30480 30481 26792 26793 26794 26795 26796 26797 26816 26817 26818 26819 26820 26821 26762 26763 26764 26765 26766 26767 30218 30219 30220 30221 30222 30223 26930 26931 26932 26933 26934 26935 26984 26985 26986 26987 26988 26989 48 27134 27135 27136 27137 27138 27139 30482 30483 30484 30485 30486 30487 26960 26961 26962 26963 26964 26965 26984 26985 26986 26987 26988 26989 26930 26931 26932 26933 26934 26935 30224 30225 30226 30227 30228 30229 27104 27105 27106 27107 27108 27109 27158 27159 27160 27161 27162 27163 48 27302 27303 27304 27305 27306 27307 30488 30489 30490 30491 30492 30493 27134 27135 27136 27137 27138 27139 27158 27159 27160 27161 27162 27163 27104 27105 27106 27107 27108 27109 30230 30231 30232 30233 30234 30235 27272 27273 27274 27275 27276 27277 27326 27327 27328 27329 27330 27331 48 27482 27483 27484 27485 27486 27487 30494 30495 30496 30497 30498 30499 27302 27303 27304 27305 27306 27307 27326 27327 27328 27329 27330 27331 27272 27273 27274 27275 27276 27277 30236 30237 30238 30239 30240 30241 27446 27447 27448 27449 27450 27451 27506 27507 27508 27509 27510 27511 48 27662 27663 27664 27665 27666 27667 30500 30501 30502 30503 30504 30505 27482 27483 27484 27485 27486 27487 27506 27507 27508 27509 27510 27511 27446 27447 27448 27449 27450 27451 30242 30243 30244 30245 30246 30247 27626 27627 27628 27629 27630 27631 27686 27687 27688 27689 27690 27691 48 27824 27825 27826 27827 27828 27829 30506 30507 30508 30509 30510 30511 27662 27663 27664 27665 27666 27667 27686 27687 27688 27689 27690 27691 27626 27627 27628 27629 27630 27631 30248 30249 30250 30251 30252 30253 27794 27795 27796 27797 27798 27799 27848 27849 27850 27851 27852 27853 48 27992 27993 27994 27995 27996 27997 30512 30513 30514 30515 30516 30517 27824 27825 27826 27827 27828 27829 27848 27849 27850 27851 27852 27853 27794 27795 27796 27797 27798 27799 30254 30255 30256 30257 30258 30259 27962 27963 27964 27965 27966 27967 28016 28017 28018 28019 28020 28021 48 28166 28167 28168 28169 28170 28171 30518 30519 30520 30521 30522 30523 27992 27993 27994 27995 27996 27997 28016 28017 28018 28019 28020 28021 27962 27963 27964 27965 27966 27967 30260 30261 30262 30263 30264 30265 28136 28137 28138 28139 28140 28141 28190 28191 28192 28193 28194 28195 48 28334 28335 28336 28337 28338 28339 30524 30525 30526 30527 30528 30529 28166 28167 28168 28169 28170 28171 28190 28191 28192 28193 28194 28195 28136 28137 28138 28139 28140 28141 30266 30267 30268 30269 30270 30271 28304 28305 28306 28307 28308 28309 28358 28359 28360 28361 28362 28363 48 28478 28479 28480 28481 28482 28483 30530 30531 30532 30533 30534 30535 28334 28335 28336 28337 28338 28339 28358 28359 28360 28361 28362 28363 28304 28305 28306 28307 28308 28309 30272 30273 30274 30275 30276 30277 21008 21009 21010 21011 21012 21013 28502 28503 28504 28505 28506 28507 48 961 962 963 964 965 966 30536 30537 30538 30539 30540 30541 28478 28479 28480 28481 28482 28483 28502 28503 28504 28505 28506 28507 21008 21009 21010 21011 21012 21013 21002 21003 21004 21005 21006 21007 20996 20997 20998 20999 21000 21001 28628 28629 28630 28631 28632 28633 48 967 968 969 970 971 972 30542 30543 30544 30545 30546 30547 961 962 963 964 965 966 28628 28629 28630 28631 28632 28633 20996 20997 20998 20999 21000 21001 21044 21045 21046 21047 21048 21049 21038 21039 21040 21041 21042 21043 28754 28755 28756 28757 28758 28759 48 973 974 975 976 977 978 30548 30549 30550 30551 30552 30553 967 968 969 970 971 972 28754 28755 28756 28757 28758 28759 21038 21039 21040 21041 21042 21043 21068 21069 21070 21071 21072 21073 21062 21063 21064 21065 21066 21067 28880 28881 28882 28883 28884 28885 48 979 980 981 982 983 984 30554 30555 30556 30557 30558 30559 973 974 975 976 977 978 28880 28881 28882 28883 28884 28885 21062 21063 21064 21065 21066 21067 21092 21093 21094 21095 21096 21097 21086 21087 21088 21089 21090 21091 29018 29019 29020 29021 29022 29023 48 985 986 987 988 989 990 30560 30561 30562 30563 30564 30565 979 980 981 982 983 984 29018 29019 29020 29021 29022 29023 21086 21087 21088 21089 21090 21091 30278 30279 30280 30281 30282 30283 29126 29127 29128 29129 29130 29131 29174 29175 29176 29177 29178 29179 48 991 992 993 994 995 996 30566 30567 30568 30569 30570 30571 985 986 987 988 989 990 29174 29175 29176 29177 29178 29179 29126 29127 29128 29129 29130 29131 30284 30285 30286 30287 30288 30289 29282 29283 29284 29285 29286 29287 29330 29331 29332 29333 29334 29335 48 29474 29475 29476 29477 29478 29479 30572 30573 30574 30575 30576 30577 991 992 993 994 995 996 29330 29331 29332 29333 29334 29335 29282 29283 29284 29285 29286 29287 30290 30291 30292 30293 30294 30295 29444 29445 29446 29447 29448 29449 29498 29499 29500 29501 29502 29503 48 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 30589 29474 29475 29476 29477 29478 29479 29498 29499 29500 29501 29502 29503 29444 29445 29446 29447 29448 29449 30302 30303 30304 30305 30306 30307 30296 30297 30298 30299 30300 30301 30590 30591 30592 30593 30594 30595 48 22706 22707 22708 22709 22710 22711 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30613 30320 30321 30322 30323 30324 30325 30314 30315 30316 30317 30318 30319 22676 22677 22678 22679 22680 22681 22718 22719 22720 22721 22722 22723 48 22892 22893 22894 22895 22896 22897 30614 30615 30616 30617 30618 30619 22706 22707 22708 22709 22710 22711 22718 22719 22720 22721 22722 22723 22676 22677 22678 22679 22680 22681 30332 30333 30334 30335 30336 30337 22856 22857 22858 22859 22860 22861 22904 22905 22906 22907 22908 22909 48 23072 23073 23074 23075 23076 23077 30620 30621 30622 30623 30624 30625 22892 22893 22894 22895 22896 22897 22904 22905 22906 22907 22908 22909 22856 22857 22858 22859 22860 22861 30338 30339 30340 30341 30342 30343 23036 23037 23038 23039 23040 23041 23084 23085 23086 23087 23088 23089 48 23228 23229 23230 23231 23232 23233 30626 30627 30628 30629 30630 30631 23072 23073 23074 23075 23076 23077 23084 23085 23086 23087 23088 23089 23036 23037 23038 23039 23040 23041 30344 30345 30346 30347 30348 30349 23198 23199 23200 23201 23202 23203 23240 23241 23242 23243 23244 23245 48 23408 23409 23410 23411 23412 23413 30632 30633 30634 30635 30636 30637 23228 23229 23230 23231 23232 23233 23240 23241 23242 23243 23244 23245 23198 23199 23200 23201 23202 23203 30350 30351 30352 30353 30354 30355 23366 23367 23368 23369 23370 23371 23420 23421 23422 23423 23424 23425 48 23588 23589 23590 23591 23592 23593 30638 30639 30640 30641 30642 30643 23408 23409 23410 23411 23412 23413 23420 23421 23422 23423 23424 23425 23366 23367 23368 23369 23370 23371 30356 30357 30358 30359 30360 30361 23552 23553 23554 23555 23556 23557 23600 23601 23602 23603 23604 23605 48 23744 23745 23746 23747 23748 23749 30644 30645 30646 30647 30648 30649 23588 23589 23590 23591 23592 23593 23600 23601 23602 23603 23604 23605 23552 23553 23554 23555 23556 23557 30362 30363 30364 30365 30366 30367 23714 23715 23716 23717 23718 23719 23756 23757 23758 23759 23760 23761 48 23924 23925 23926 23927 23928 23929 30650 30651 30652 30653 30654 30655 23744 23745 23746 23747 23748 23749 23756 23757 23758 23759 23760 23761 23714 23715 23716 23717 23718 23719 30368 30369 30370 30371 30372 30373 23882 23883 23884 23885 23886 23887 23936 23937 23938 23939 23940 23941 48 24098 24099 24100 24101 24102 24103 30656 30657 30658 30659 30660 30661 23924 23925 23926 23927 23928 23929 23936 23937 23938 23939 23940 23941 23882 23883 23884 23885 23886 23887 30374 30375 30376 30377 30378 30379 24056 24057 24058 24059 24060 24061 24110 24111 24112 24113 24114 24115 48 24254 24255 24256 24257 24258 24259 30662 30663 30664 30665 30666 30667 24098 24099 24100 24101 24102 24103 24110 24111 24112 24113 24114 24115 24056 24057 24058 24059 24060 24061 30380 30381 30382 30383 30384 30385 24224 24225 24226 24227 24228 24229 24266 24267 24268 24269 24270 24271 48 24434 24435 24436 24437 24438 24439 30668 30669 30670 30671 30672 30673 24254 24255 24256 24257 24258 24259 24266 24267 24268 24269 24270 24271 24224 24225 24226 24227 24228 24229 30386 30387 30388 30389 30390 30391 24392 24393 24394 24395 24396 24397 24446 24447 24448 24449 24450 24451 48 24614 24615 24616 24617 24618 24619 30674 30675 30676 30677 30678 30679 24434 24435 24436 24437 24438 24439 24446 24447 24448 24449 24450 24451 24392 24393 24394 24395 24396 24397 30392 30393 30394 30395 30396 30397 24578 24579 24580 24581 24582 24583 24626 24627 24628 24629 24630 24631 48 24770 24771 24772 24773 24774 24775 30680 30681 30682 30683 30684 30685 24614 24615 24616 24617 24618 24619 24626 24627 24628 24629 24630 24631 24578 24579 24580 24581 24582 24583 30398 30399 30400 30401 30402 30403 24740 24741 24742 24743 24744 24745 24782 24783 24784 24785 24786 24787 48 24950 24951 24952 24953 24954 24955 30686 30687 30688 30689 30690 30691 24770 24771 24772 24773 24774 24775 24782 24783 24784 24785 24786 24787 24740 24741 24742 24743 24744 24745 30404 30405 30406 30407 30408 30409 24908 24909 24910 24911 24912 24913 24962 24963 24964 24965 24966 24967 48 25124 25125 25126 25127 25128 25129 30692 30693 30694 30695 30696 30697 24950 24951 24952 24953 24954 24955 24962 24963 24964 24965 24966 24967 24908 24909 24910 24911 24912 24913 30410 30411 30412 30413 30414 30415 25082 25083 25084 25085 25086 25087 25136 25137 25138 25139 25140 25141 48 25280 25281 25282 25283 25284 25285 30698 30699 30700 30701 30702 30703 25124 25125 25126 25127 25128 25129 25136 25137 25138 25139 25140 25141 25082 25083 25084 25085 25086 25087 30416 30417 30418 30419 30420 30421 25250 25251 25252 25253 25254 25255 25292 25293 25294 25295 25296 25297 48 25460 25461 25462 25463 25464 25465 30704 30705 30706 30707 30708 30709 25280 25281 25282 25283 25284 25285 25292 25293 25294 25295 25296 25297 25250 25251 25252 25253 25254 25255 30422 30423 30424 30425 30426 30427 25418 25419 25420 25421 25422 25423 25472 25473 25474 25475 25476 25477 48 25640 25641 25642 25643 25644 25645 30710 30711 30712 30713 30714 30715 25460 25461 25462 25463 25464 25465 25472 25473 25474 25475 25476 25477 25418 25419 25420 25421 25422 25423 30428 30429 30430 30431 30432 30433 25604 25605 25606 25607 25608 25609 25652 25653 25654 25655 25656 25657 48 25796 25797 25798 25799 25800 25801 30716 30717 30718 30719 30720 30721 25640 25641 25642 25643 25644 25645 25652 25653 25654 25655 25656 25657 25604 25605 25606 25607 25608 25609 30434 30435 30436 30437 30438 30439 25766 25767 25768 25769 25770 25771 25808 25809 25810 25811 25812 25813 48 25976 25977 25978 25979 25980 25981 30722 30723 30724 30725 30726 30727 25796 25797 25798 25799 25800 25801 25808 25809 25810 25811 25812 25813 25766 25767 25768 25769 25770 25771 30440 30441 30442 30443 30444 30445 25934 25935 25936 25937 25938 25939 25988 25989 25990 25991 25992 25993 48 26150 26151 26152 26153 26154 26155 30728 30729 30730 30731 30732 30733 25976 25977 25978 25979 25980 25981 25988 25989 25990 25991 25992 25993 25934 25935 25936 25937 25938 25939 30446 30447 30448 30449 30450 30451 26108 26109 26110 26111 26112 26113 26162 26163 26164 26165 26166 26167 48 26306 26307 26308 26309 26310 26311 30734 30735 30736 30737 30738 30739 26150 26151 26152 26153 26154 26155 26162 26163 26164 26165 26166 26167 26108 26109 26110 26111 26112 26113 30452 30453 30454 30455 30456 30457 26276 26277 26278 26279 26280 26281 26318 26319 26320 26321 26322 26323 48 26486 26487 26488 26489 26490 26491 30740 30741 30742 30743 30744 30745 26306 26307 26308 26309 26310 26311 26318 26319 26320 26321 26322 26323 26276 26277 26278 26279 26280 26281 30458 30459 30460 30461 30462 30463 26444 26445 26446 26447 26448 26449 26498 26499 26500 26501 26502 26503 48 26666 26667 26668 26669 26670 26671 30746 30747 30748 30749 30750 30751 26486 26487 26488 26489 26490 26491 26498 26499 26500 26501 26502 26503 26444 26445 26446 26447 26448 26449 30464 30465 30466 30467 30468 30469 26630 26631 26632 26633 26634 26635 26678 26679 26680 26681 26682 26683 48 26822 26823 26824 26825 26826 26827 30752 30753 30754 30755 30756 30757 26666 26667 26668 26669 26670 26671 26678 26679 26680 26681 26682 26683 26630 26631 26632 26633 26634 26635 30470 30471 30472 30473 30474 30475 26792 26793 26794 26795 26796 26797 26834 26835 26836 26837 26838 26839 48 27002 27003 27004 27005 27006 27007 30758 30759 30760 30761 30762 30763 26822 26823 26824 26825 26826 26827 26834 26835 26836 26837 26838 26839 26792 26793 26794 26795 26796 26797 30476 30477 30478 30479 30480 30481 26960 26961 26962 26963 26964 26965 27014 27015 27016 27017 27018 27019 48 27176 27177 27178 27179 27180 27181 30764 30765 30766 30767 30768 30769 27002 27003 27004 27005 27006 27007 27014 27015 27016 27017 27018 27019 26960 26961 26962 26963 26964 26965 30482 30483 30484 30485 30486 30487 27134 27135 27136 27137 27138 27139 27188 27189 27190 27191 27192 27193 48 27332 27333 27334 27335 27336 27337 30770 30771 30772 30773 30774 30775 27176 27177 27178 27179 27180 27181 27188 27189 27190 27191 27192 27193 27134 27135 27136 27137 27138 27139 30488 30489 30490 30491 30492 30493 27302 27303 27304 27305 27306 27307 27344 27345 27346 27347 27348 27349 48 27518 27519 27520 27521 27522 27523 30776 30777 30778 30779 30780 30781 27332 27333 27334 27335 27336 27337 27344 27345 27346 27347 27348 27349 27302 27303 27304 27305 27306 27307 30494 30495 30496 30497 30498 30499 27482 27483 27484 27485 27486 27487 27530 27531 27532 27533 27534 27535 48 27698 27699 27700 27701 27702 27703 30782 30783 30784 30785 30786 30787 27518 27519 27520 27521 27522 27523 27530 27531 27532 27533 27534 27535 27482 27483 27484 27485 27486 27487 30500 30501 30502 30503 30504 30505 27662 27663 27664 27665 27666 27667 27710 27711 27712 27713 27714 27715 48 27854 27855 27856 27857 27858 27859 30788 30789 30790 30791 30792 30793 27698 27699 27700 27701 27702 27703 27710 27711 27712 27713 27714 27715 27662 27663 27664 27665 27666 27667 30506 30507 30508 30509 30510 30511 27824 27825 27826 27827 27828 27829 27866 27867 27868 27869 27870 27871 48 28034 28035 28036 28037 28038 28039 30794 30795 30796 30797 30798 30799 27854 27855 27856 27857 27858 27859 27866 27867 27868 27869 27870 27871 27824 27825 27826 27827 27828 27829 30512 30513 30514 30515 30516 30517 27992 27993 27994 27995 27996 27997 28046 28047 28048 28049 28050 28051 48 28208 28209 28210 28211 28212 28213 30800 30801 30802 30803 30804 30805 28034 28035 28036 28037 28038 28039 28046 28047 28048 28049 28050 28051 27992 27993 27994 27995 27996 27997 30518 30519 30520 30521 30522 30523 28166 28167 28168 28169 28170 28171 28220 28221 28222 28223 28224 28225 48 28364 28365 28366 28367 28368 28369 30806 30807 30808 30809 30810 30811 28208 28209 28210 28211 28212 28213 28220 28221 28222 28223 28224 28225 28166 28167 28168 28169 28170 28171 30524 30525 30526 30527 30528 30529 28334 28335 28336 28337 28338 28339 28376 28377 28378 28379 28380 28381 48 28514 28515 28516 28517 28518 28519 30812 30813 30814 30815 30816 30817 28364 28365 28366 28367 28368 28369 28376 28377 28378 28379 28380 28381 28334 28335 28336 28337 28338 28339 30530 30531 30532 30533 30534 30535 28478 28479 28480 28481 28482 28483 28526 28527 28528 28529 28530 28531 48 28634 28635 28636 28637 28638 28639 30818 30819 30820 30821 30822 30823 28514 28515 28516 28517 28518 28519 28526 28527 28528 28529 28530 28531 28478 28479 28480 28481 28482 28483 30536 30537 30538 30539 30540 30541 961 962 963 964 965 966 28646 28647 28648 28649 28650 28651 48 28760 28761 28762 28763 28764 28765 30824 30825 30826 30827 30828 30829 28634 28635 28636 28637 28638 28639 28646 28647 28648 28649 28650 28651 961 962 963 964 965 966 30542 30543 30544 30545 30546 30547 967 968 969 970 971 972 28772 28773 28774 28775 28776 28777 48 28886 28887 28888 28889 28890 28891 30830 30831 30832 30833 30834 30835 28760 28761 28762 28763 28764 28765 28772 28773 28774 28775 28776 28777 967 968 969 970 971 972 30548 30549 30550 30551 30552 30553 973 974 975 976 977 978 28898 28899 28900 28901 28902 28903 48 29024 29025 29026 29027 29028 29029 30836 30837 30838 30839 30840 30841 28886 28887 28888 28889 28890 28891 28898 28899 28900 28901 28902 28903 973 974 975 976 977 978 30554 30555 30556 30557 30558 30559 979 980 981 982 983 984 29036 29037 29038 29039 29040 29041 48 29180 29181 29182 29183 29184 29185 30842 30843 30844 30845 30846 30847 29024 29025 29026 29027 29028 29029 29036 29037 29038 29039 29040 29041 979 980 981 982 983 984 30560 30561 30562 30563 30564 30565 985 986 987 988 989 990 29192 29193 29194 29195 29196 29197 48 29336 29337 29338 29339 29340 29341 30848 30849 30850 30851 30852 30853 29180 29181 29182 29183 29184 29185 29192 29193 29194 29195 29196 29197 985 986 987 988 989 990 30566 30567 30568 30569 30570 30571 991 992 993 994 995 996 29348 29349 29350 29351 29352 29353 48 29516 29517 29518 29519 29520 29521 30854 30855 30856 30857 30858 30859 29336 29337 29338 29339 29340 29341 29348 29349 29350 29351 29352 29353 991 992 993 994 995 996 30572 30573 30574 30575 30576 30577 29474 29475 29476 29477 29478 29479 29528 29529 29530 29531 29532 29533 48 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 30871 29516 29517 29518 29519 29520 29521 29528 29529 29530 29531 29532 29533 29474 29475 29476 29477 29478 29479 30584 30585 30586 30587 30588 30589 30578 30579 30580 30581 30582 30583 30872 30873 30874 30875 30876 30877 36 30884 30885 30886 30887 30888 30889 30896 30897 30898 30899 30900 30901 22598 22599 22600 22601 22602 22603 30890 30891 30892 30893 30894 30895 30902 30903 30904 30905 30906 30907 30878 30879 30880 30881 30882 30883 48 22586 22587 22588 22589 22590 22591 30908 30909 30910 30911 30912 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30925 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 30907 22598 22599 22600 22601 22602 22603 22592 22593 22594 22595 22596 22597 48 22748 22749 22750 22751 22752 22753 30926 30927 30928 30929 30930 30931 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 30932 30933 30934 30935 30936 30937 22760 22761 22762 22763 22764 22765 22754 22755 22756 22757 22758 22759 48 22928 22929 22930 22931 22932 22933 30938 30939 30940 30941 30942 30943 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 30944 30945 30946 30947 30948 30949 22940 22941 22942 22943 22944 22945 22934 22935 22936 22937 22938 22939 48 23108 23109 23110 23111 23112 23113 30950 30951 30952 30953 30954 30955 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 30956 30957 30958 30959 30960 30961 23120 23121 23122 23123 23124 23125 23114 23115 23116 23117 23118 23119 48 23270 23271 23272 23273 23274 23275 30962 30963 30964 30965 30966 30967 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 30968 30969 30970 30971 30972 30973 23282 23283 23284 23285 23286 23287 23276 23277 23278 23279 23280 23281 48 23444 23445 23446 23447 23448 23449 30974 30975 30976 30977 30978 30979 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 30980 30981 30982 30983 30984 30985 23456 23457 23458 23459 23460 23461 23450 23451 23452 23453 23454 23455 48 23624 23625 23626 23627 23628 23629 30986 30987 30988 30989 30990 30991 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 30992 30993 30994 30995 30996 30997 23636 23637 23638 23639 23640 23641 23630 23631 23632 23633 23634 23635 48 23786 23787 23788 23789 23790 23791 30998 30999 31000 31001 31002 31003 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 31004 31005 31006 31007 31008 31009 23798 23799 23800 23801 23802 23803 23792 23793 23794 23795 23796 23797 48 23960 23961 23962 23963 23964 23965 31010 31011 31012 31013 31014 31015 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 31016 31017 31018 31019 31020 31021 23972 23973 23974 23975 23976 23977 23966 23967 23968 23969 23970 23971 48 24134 24135 24136 24137 24138 24139 31022 31023 31024 31025 31026 31027 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 31028 31029 31030 31031 31032 31033 24146 24147 24148 24149 24150 24151 24140 24141 24142 24143 24144 24145 48 24296 24297 24298 24299 24300 24301 31034 31035 31036 31037 31038 31039 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 31040 31041 31042 31043 31044 31045 24308 24309 24310 24311 24312 24313 24302 24303 24304 24305 24306 24307 48 24470 24471 24472 24473 24474 24475 31046 31047 31048 31049 31050 31051 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 31052 31053 31054 31055 31056 31057 24482 24483 24484 24485 24486 24487 24476 24477 24478 24479 24480 24481 48 24650 24651 24652 24653 24654 24655 31058 31059 31060 31061 31062 31063 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 31064 31065 31066 31067 31068 31069 24662 24663 24664 24665 24666 24667 24656 24657 24658 24659 24660 24661 48 24812 24813 24814 24815 24816 24817 31070 31071 31072 31073 31074 31075 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 31076 31077 31078 31079 31080 31081 24824 24825 24826 24827 24828 24829 24818 24819 24820 24821 24822 24823 48 24986 24987 24988 24989 24990 24991 31082 31083 31084 31085 31086 31087 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 31088 31089 31090 31091 31092 31093 24998 24999 25000 25001 25002 25003 24992 24993 24994 24995 24996 24997 48 25160 25161 25162 25163 25164 25165 31094 31095 31096 31097 31098 31099 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 31100 31101 31102 31103 31104 31105 25172 25173 25174 25175 25176 25177 25166 25167 25168 25169 25170 25171 48 25322 25323 25324 25325 25326 25327 31106 31107 31108 31109 31110 31111 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 31112 31113 31114 31115 31116 31117 25334 25335 25336 25337 25338 25339 25328 25329 25330 25331 25332 25333 48 25496 25497 25498 25499 25500 25501 31118 31119 31120 31121 31122 31123 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 31124 31125 31126 31127 31128 31129 25508 25509 25510 25511 25512 25513 25502 25503 25504 25505 25506 25507 48 25676 25677 25678 25679 25680 25681 31130 31131 31132 31133 31134 31135 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 31136 31137 31138 31139 31140 31141 25688 25689 25690 25691 25692 25693 25682 25683 25684 25685 25686 25687 48 25838 25839 25840 25841 25842 25843 31142 31143 31144 31145 31146 31147 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 31148 31149 31150 31151 31152 31153 25850 25851 25852 25853 25854 25855 25844 25845 25846 25847 25848 25849 48 26012 26013 26014 26015 26016 26017 31154 31155 31156 31157 31158 31159 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 31160 31161 31162 31163 31164 31165 26024 26025 26026 26027 26028 26029 26018 26019 26020 26021 26022 26023 48 26186 26187 26188 26189 26190 26191 31166 31167 31168 31169 31170 31171 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 31172 31173 31174 31175 31176 31177 26198 26199 26200 26201 26202 26203 26192 26193 26194 26195 26196 26197 48 26348 26349 26350 26351 26352 26353 31178 31179 31180 31181 31182 31183 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 31184 31185 31186 31187 31188 31189 26360 26361 26362 26363 26364 26365 26354 26355 26356 26357 26358 26359 48 26522 26523 26524 26525 26526 26527 31190 31191 31192 31193 31194 31195 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 26365 31196 31197 31198 31199 31200 31201 26534 26535 26536 26537 26538 26539 26528 26529 26530 26531 26532 26533 48 26702 26703 26704 26705 26706 26707 31202 31203 31204 31205 31206 31207 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 26539 31208 31209 31210 31211 31212 31213 26714 26715 26716 26717 26718 26719 26708 26709 26710 26711 26712 26713 48 26864 26865 26866 26867 26868 26869 31214 31215 31216 31217 31218 31219 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 31220 31221 31222 31223 31224 31225 26876 26877 26878 26879 26880 26881 26870 26871 26872 26873 26874 26875 48 27038 27039 27040 27041 27042 27043 31226 31227 31228 31229 31230 31231 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 26881 31232 31233 31234 31235 31236 31237 27050 27051 27052 27053 27054 27055 27044 27045 27046 27047 27048 27049 48 27212 27213 27214 27215 27216 27217 31238 31239 31240 31241 31242 31243 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 31244 31245 31246 31247 31248 31249 27224 27225 27226 27227 27228 27229 27218 27219 27220 27221 27222 27223 48 27374 27375 27376 27377 27378 27379 31250 31251 31252 31253 31254 31255 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 31256 31257 31258 31259 31260 31261 27386 27387 27388 27389 27390 27391 27380 27381 27382 27383 27384 27385 48 27554 27555 27556 27557 27558 27559 31262 31263 31264 31265 31266 31267 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 31268 31269 31270 31271 31272 31273 27566 27567 27568 27569 27570 27571 27560 27561 27562 27563 27564 27565 48 27734 27735 27736 27737 27738 27739 31274 31275 31276 31277 31278 31279 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 31280 31281 31282 31283 31284 31285 27746 27747 27748 27749 27750 27751 27740 27741 27742 27743 27744 27745 48 27896 27897 27898 27899 27900 27901 31286 31287 31288 31289 31290 31291 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 31292 31293 31294 31295 31296 31297 27908 27909 27910 27911 27912 27913 27902 27903 27904 27905 27906 27907 48 28070 28071 28072 28073 28074 28075 31298 31299 31300 31301 31302 31303 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 31304 31305 31306 31307 31308 31309 28082 28083 28084 28085 28086 28087 28076 28077 28078 28079 28080 28081 48 28244 28245 28246 28247 28248 28249 31310 31311 31312 31313 31314 31315 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 28087 31316 31317 31318 31319 31320 31321 28256 28257 28258 28259 28260 28261 28250 28251 28252 28253 28254 28255 48 28400 28401 28402 28403 28404 28405 31322 31323 31324 31325 31326 31327 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 28261 31328 31329 31330 31331 31332 31333 28412 28413 28414 28415 28416 28417 28406 28407 28408 28409 28410 28411 48 28544 28545 28546 28547 28548 28549 31334 31335 31336 31337 31338 31339 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 28417 31340 31341 31342 31343 31344 31345 21158 21159 21160 21161 21162 21163 28550 28551 28552 28553 28554 28555 48 28670 28671 28672 28673 28674 28675 31346 31347 31348 31349 31350 31351 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 28555 21158 21159 21160 21161 21162 21163 21170 21171 21172 21173 21174 21175 21134 21135 21136 21137 21138 21139 28676 28677 28678 28679 28680 28681 48 28796 28797 28798 28799 28800 28801 31352 31353 31354 31355 31356 31357 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 28681 21134 21135 21136 21137 21138 21139 21188 21189 21190 21191 21192 21193 21176 21177 21178 21179 21180 21181 28802 28803 28804 28805 28806 28807 48 28922 28923 28924 28925 28926 28927 31358 31359 31360 31361 31362 31363 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 28807 21176 21177 21178 21179 21180 21181 31364 31365 31366 31367 31368 31369 28934 28935 28936 28937 28938 28939 28928 28929 28930 28931 28932 28933 48 29066 29067 29068 29069 29070 29071 31370 31371 31372 31373 31374 31375 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 28939 31376 31377 31378 31379 31380 31381 29078 29079 29080 29081 29082 29083 29072 29073 29074 29075 29076 29077 48 29222 29223 29224 29225 29226 29227 31382 31383 31384 31385 31386 31387 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 31388 31389 31390 31391 31392 31393 29234 29235 29236 29237 29238 29239 29228 29229 29230 29231 29232 29233 48 29378 29379 29380 29381 29382 29383 31394 31395 31396 31397 31398 31399 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 29239 31400 31401 31402 31403 31404 31405 29390 29391 29392 29393 29394 29395 29384 29385 29386 29387 29388 29389 48 31406 31407 31408 31409 31410 31411 31412 31413 31414 31415 31416 31417 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 31424 31425 31426 31427 31428 31429 31418 31419 31420 31421 31422 31423 31430 31431 31432 31433 31434 31435 48 22628 22629 22630 22631 22632 22633 31436 31437 31438 31439 31440 31441 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 31453 30914 30915 30916 30917 30918 30919 30908 30909 30910 30911 30912 30913 22586 22587 22588 22589 22590 22591 22634 22635 22636 22637 22638 22639 48 22796 22797 22798 22799 22800 22801 31454 31455 31456 31457 31458 31459 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22586 22587 22588 22589 22590 22591 30926 30927 30928 30929 30930 30931 22748 22749 22750 22751 22752 22753 22802 22803 22804 22805 22806 22807 48 22976 22977 22978 22979 22980 22981 31460 31461 31462 31463 31464 31465 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22748 22749 22750 22751 22752 22753 30938 30939 30940 30941 30942 30943 22928 22929 22930 22931 22932 22933 22982 22983 22984 22985 22986 22987 48 23150 23151 23152 23153 23154 23155 31466 31467 31468 31469 31470 31471 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22928 22929 22930 22931 22932 22933 30950 30951 30952 30953 30954 30955 23108 23109 23110 23111 23112 23113 23156 23157 23158 23159 23160 23161 48 23318 23319 23320 23321 23322 23323 31472 31473 31474 31475 31476 31477 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23108 23109 23110 23111 23112 23113 30962 30963 30964 30965 30966 30967 23270 23271 23272 23273 23274 23275 23324 23325 23326 23327 23328 23329 48 23492 23493 23494 23495 23496 23497 31478 31479 31480 31481 31482 31483 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23270 23271 23272 23273 23274 23275 30974 30975 30976 30977 30978 30979 23444 23445 23446 23447 23448 23449 23498 23499 23500 23501 23502 23503 48 23666 23667 23668 23669 23670 23671 31484 31485 31486 31487 31488 31489 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23444 23445 23446 23447 23448 23449 30986 30987 30988 30989 30990 30991 23624 23625 23626 23627 23628 23629 23672 23673 23674 23675 23676 23677 48 23834 23835 23836 23837 23838 23839 31490 31491 31492 31493 31494 31495 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23624 23625 23626 23627 23628 23629 30998 30999 31000 31001 31002 31003 23786 23787 23788 23789 23790 23791 23840 23841 23842 23843 23844 23845 48 24008 24009 24010 24011 24012 24013 31496 31497 31498 31499 31500 31501 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23786 23787 23788 23789 23790 23791 31010 31011 31012 31013 31014 31015 23960 23961 23962 23963 23964 23965 24014 24015 24016 24017 24018 24019 48 24176 24177 24178 24179 24180 24181 31502 31503 31504 31505 31506 31507 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 23960 23961 23962 23963 23964 23965 31022 31023 31024 31025 31026 31027 24134 24135 24136 24137 24138 24139 24182 24183 24184 24185 24186 24187 48 24344 24345 24346 24347 24348 24349 31508 31509 31510 31511 31512 31513 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24134 24135 24136 24137 24138 24139 31034 31035 31036 31037 31038 31039 24296 24297 24298 24299 24300 24301 24350 24351 24352 24353 24354 24355 48 24518 24519 24520 24521 24522 24523 31514 31515 31516 31517 31518 31519 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24296 24297 24298 24299 24300 24301 31046 31047 31048 31049 31050 31051 24470 24471 24472 24473 24474 24475 24524 24525 24526 24527 24528 24529 48 24692 24693 24694 24695 24696 24697 31520 31521 31522 31523 31524 31525 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24470 24471 24472 24473 24474 24475 31058 31059 31060 31061 31062 31063 24650 24651 24652 24653 24654 24655 24698 24699 24700 24701 24702 24703 48 24860 24861 24862 24863 24864 24865 31526 31527 31528 31529 31530 31531 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24650 24651 24652 24653 24654 24655 31070 31071 31072 31073 31074 31075 24812 24813 24814 24815 24816 24817 24866 24867 24868 24869 24870 24871 48 25034 25035 25036 25037 25038 25039 31532 31533 31534 31535 31536 31537 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24812 24813 24814 24815 24816 24817 31082 31083 31084 31085 31086 31087 24986 24987 24988 24989 24990 24991 25040 25041 25042 25043 25044 25045 48 25202 25203 25204 25205 25206 25207 31538 31539 31540 31541 31542 31543 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 24986 24987 24988 24989 24990 24991 31094 31095 31096 31097 31098 31099 25160 25161 25162 25163 25164 25165 25208 25209 25210 25211 25212 25213 48 25370 25371 25372 25373 25374 25375 31544 31545 31546 31547 31548 31549 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25160 25161 25162 25163 25164 25165 31106 31107 31108 31109 31110 31111 25322 25323 25324 25325 25326 25327 25376 25377 25378 25379 25380 25381 48 25544 25545 25546 25547 25548 25549 31550 31551 31552 31553 31554 31555 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25322 25323 25324 25325 25326 25327 31118 31119 31120 31121 31122 31123 25496 25497 25498 25499 25500 25501 25550 25551 25552 25553 25554 25555 48 25718 25719 25720 25721 25722 25723 31556 31557 31558 31559 31560 31561 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25555 25496 25497 25498 25499 25500 25501 31130 31131 31132 31133 31134 31135 25676 25677 25678 25679 25680 25681 25724 25725 25726 25727 25728 25729 48 25886 25887 25888 25889 25890 25891 31562 31563 31564 31565 31566 31567 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25729 25676 25677 25678 25679 25680 25681 31142 31143 31144 31145 31146 31147 25838 25839 25840 25841 25842 25843 25892 25893 25894 25895 25896 25897 48 26060 26061 26062 26063 26064 26065 31568 31569 31570 31571 31572 31573 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25897 25838 25839 25840 25841 25842 25843 31154 31155 31156 31157 31158 31159 26012 26013 26014 26015 26016 26017 26066 26067 26068 26069 26070 26071 48 26228 26229 26230 26231 26232 26233 31574 31575 31576 31577 31578 31579 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26071 26012 26013 26014 26015 26016 26017 31166 31167 31168 31169 31170 31171 26186 26187 26188 26189 26190 26191 26234 26235 26236 26237 26238 26239 48 26396 26397 26398 26399 26400 26401 31580 31581 31582 31583 31584 31585 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26239 26186 26187 26188 26189 26190 26191 31178 31179 31180 31181 31182 31183 26348 26349 26350 26351 26352 26353 26402 26403 26404 26405 26406 26407 48 26570 26571 26572 26573 26574 26575 31586 31587 31588 31589 31590 31591 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26407 26348 26349 26350 26351 26352 26353 31190 31191 31192 31193 31194 31195 26522 26523 26524 26525 26526 26527 26576 26577 26578 26579 26580 26581 48 26744 26745 26746 26747 26748 26749 31592 31593 31594 31595 31596 31597 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26581 26522 26523 26524 26525 26526 26527 31202 31203 31204 31205 31206 31207 26702 26703 26704 26705 26706 26707 26750 26751 26752 26753 26754 26755 48 26912 26913 26914 26915 26916 26917 31598 31599 31600 31601 31602 31603 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26755 26702 26703 26704 26705 26706 26707 31214 31215 31216 31217 31218 31219 26864 26865 26866 26867 26868 26869 26918 26919 26920 26921 26922 26923 48 27086 27087 27088 27089 27090 27091 31604 31605 31606 31607 31608 31609 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26923 26864 26865 26866 26867 26868 26869 31226 31227 31228 31229 31230 31231 27038 27039 27040 27041 27042 27043 27092 27093 27094 27095 27096 27097 48 27254 27255 27256 27257 27258 27259 31610 31611 31612 31613 31614 31615 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27038 27039 27040 27041 27042 27043 31238 31239 31240 31241 31242 31243 27212 27213 27214 27215 27216 27217 27260 27261 27262 27263 27264 27265 48 27422 27423 27424 27425 27426 27427 31616 31617 31618 31619 31620 31621 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27265 27212 27213 27214 27215 27216 27217 31250 31251 31252 31253 31254 31255 27374 27375 27376 27377 27378 27379 27428 27429 27430 27431 27432 27433 48 27602 27603 27604 27605 27606 27607 31622 31623 31624 31625 31626 31627 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27374 27375 27376 27377 27378 27379 31262 31263 31264 31265 31266 31267 27554 27555 27556 27557 27558 27559 27608 27609 27610 27611 27612 27613 48 27776 27777 27778 27779 27780 27781 31628 31629 31630 31631 31632 31633 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27613 27554 27555 27556 27557 27558 27559 31274 31275 31276 31277 31278 31279 27734 27735 27736 27737 27738 27739 27782 27783 27784 27785 27786 27787 48 27944 27945 27946 27947 27948 27949 31634 31635 31636 31637 31638 31639 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 27734 27735 27736 27737 27738 27739 31286 31287 31288 31289 31290 31291 27896 27897 27898 27899 27900 27901 27950 27951 27952 27953 27954 27955 48 28118 28119 28120 28121 28122 28123 31640 31641 31642 31643 31644 31645 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27955 27896 27897 27898 27899 27900 27901 31298 31299 31300 31301 31302 31303 28070 28071 28072 28073 28074 28075 28124 28125 28126 28127 28128 28129 48 28286 28287 28288 28289 28290 28291 31646 31647 31648 31649 31650 31651 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28129 28070 28071 28072 28073 28074 28075 31310 31311 31312 31313 31314 31315 28244 28245 28246 28247 28248 28249 28292 28293 28294 28295 28296 28297 48 28436 28437 28438 28439 28440 28441 31652 31653 31654 31655 31656 31657 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28297 28244 28245 28246 28247 28248 28249 31322 31323 31324 31325 31326 31327 28400 28401 28402 28403 28404 28405 28442 28443 28444 28445 28446 28447 48 28568 28569 28570 28571 28572 28573 31658 31659 31660 31661 31662 31663 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28447 28400 28401 28402 28403 28404 28405 31334 31335 31336 31337 31338 31339 28544 28545 28546 28547 28548 28549 28574 28575 28576 28577 28578 28579 48 28694 28695 28696 28697 28698 28699 31664 31665 31666 31667 31668 31669 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28579 28544 28545 28546 28547 28548 28549 31346 31347 31348 31349 31350 31351 28670 28671 28672 28673 28674 28675 28700 28701 28702 28703 28704 28705 48 28820 28821 28822 28823 28824 28825 31670 31671 31672 31673 31674 31675 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28705 28670 28671 28672 28673 28674 28675 31352 31353 31354 31355 31356 31357 28796 28797 28798 28799 28800 28801 28826 28827 28828 28829 28830 28831 48 28958 28959 28960 28961 28962 28963 31676 31677 31678 31679 31680 31681 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28831 28796 28797 28798 28799 28800 28801 31358 31359 31360 31361 31362 31363 28922 28923 28924 28925 28926 28927 28964 28965 28966 28967 28968 28969 48 29108 29109 29110 29111 29112 29113 31682 31683 31684 31685 31686 31687 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28969 28922 28923 28924 28925 28926 28927 31370 31371 31372 31373 31374 31375 29066 29067 29068 29069 29070 29071 29114 29115 29116 29117 29118 29119 48 29264 29265 29266 29267 29268 29269 31688 31689 31690 31691 31692 31693 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29119 29066 29067 29068 29069 29070 29071 31382 31383 31384 31385 31386 31387 29222 29223 29224 29225 29226 29227 29270 29271 29272 29273 29274 29275 48 29426 29427 29428 29429 29430 29431 31694 31695 31696 31697 31698 31699 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29275 29222 29223 29224 29225 29226 29227 31394 31395 31396 31397 31398 31399 29378 29379 29380 29381 29382 29383 29432 29433 29434 29435 29436 29437 48 31700 31701 31702 31703 31704 31705 31706 31707 31708 31709 31710 31711 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29437 29378 29379 29380 29381 29382 29383 31412 31413 31414 31415 31416 31417 31406 31407 31408 31409 31410 31411 31712 31713 31714 31715 31716 31717 48 22658 22659 22660 22661 22662 22663 31718 31719 31720 31721 31722 31723 30062 30063 30064 30065 30066 30067 31724 31725 31726 31727 31728 31729 31442 31443 31444 31445 31446 31447 31436 31437 31438 31439 31440 31441 22628 22629 22630 22631 22632 22633 22664 22665 22666 22667 22668 22669 48 22832 22833 22834 22835 22836 22837 31730 31731 31732 31733 31734 31735 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22628 22629 22630 22631 22632 22633 31454 31455 31456 31457 31458 31459 22796 22797 22798 22799 22800 22801 22838 22839 22840 22841 22842 22843 48 23012 23013 23014 23015 23016 23017 31736 31737 31738 31739 31740 31741 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22796 22797 22798 22799 22800 22801 31460 31461 31462 31463 31464 31465 22976 22977 22978 22979 22980 22981 23018 23019 23020 23021 23022 23023 48 23180 23181 23182 23183 23184 23185 31742 31743 31744 31745 31746 31747 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 22976 22977 22978 22979 22980 22981 31466 31467 31468 31469 31470 31471 23150 23151 23152 23153 23154 23155 23186 23187 23188 23189 23190 23191 48 23348 23349 23350 23351 23352 23353 31748 31749 31750 31751 31752 31753 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23150 23151 23152 23153 23154 23155 31472 31473 31474 31475 31476 31477 23318 23319 23320 23321 23322 23323 23354 23355 23356 23357 23358 23359 48 23528 23529 23530 23531 23532 23533 31754 31755 31756 31757 31758 31759 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23318 23319 23320 23321 23322 23323 31478 31479 31480 31481 31482 31483 23492 23493 23494 23495 23496 23497 23534 23535 23536 23537 23538 23539 48 23696 23697 23698 23699 23700 23701 31760 31761 31762 31763 31764 31765 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23492 23493 23494 23495 23496 23497 31484 31485 31486 31487 31488 31489 23666 23667 23668 23669 23670 23671 23702 23703 23704 23705 23706 23707 48 23864 23865 23866 23867 23868 23869 31766 31767 31768 31769 31770 31771 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23666 23667 23668 23669 23670 23671 31490 31491 31492 31493 31494 31495 23834 23835 23836 23837 23838 23839 23870 23871 23872 23873 23874 23875 48 24038 24039 24040 24041 24042 24043 31772 31773 31774 31775 31776 31777 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23834 23835 23836 23837 23838 23839 31496 31497 31498 31499 31500 31501 24008 24009 24010 24011 24012 24013 24044 24045 24046 24047 24048 24049 48 24206 24207 24208 24209 24210 24211 31778 31779 31780 31781 31782 31783 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24008 24009 24010 24011 24012 24013 31502 31503 31504 31505 31506 31507 24176 24177 24178 24179 24180 24181 24212 24213 24214 24215 24216 24217 48 24374 24375 24376 24377 24378 24379 31784 31785 31786 31787 31788 31789 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24176 24177 24178 24179 24180 24181 31508 31509 31510 31511 31512 31513 24344 24345 24346 24347 24348 24349 24380 24381 24382 24383 24384 24385 48 24554 24555 24556 24557 24558 24559 31790 31791 31792 31793 31794 31795 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24344 24345 24346 24347 24348 24349 31514 31515 31516 31517 31518 31519 24518 24519 24520 24521 24522 24523 24560 24561 24562 24563 24564 24565 48 24722 24723 24724 24725 24726 24727 31796 31797 31798 31799 31800 31801 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24518 24519 24520 24521 24522 24523 31520 31521 31522 31523 31524 31525 24692 24693 24694 24695 24696 24697 24728 24729 24730 24731 24732 24733 48 24890 24891 24892 24893 24894 24895 31802 31803 31804 31805 31806 31807 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24692 24693 24694 24695 24696 24697 31526 31527 31528 31529 31530 31531 24860 24861 24862 24863 24864 24865 24896 24897 24898 24899 24900 24901 48 25064 25065 25066 25067 25068 25069 31808 31809 31810 31811 31812 31813 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24860 24861 24862 24863 24864 24865 31532 31533 31534 31535 31536 31537 25034 25035 25036 25037 25038 25039 25070 25071 25072 25073 25074 25075 48 25232 25233 25234 25235 25236 25237 31814 31815 31816 31817 31818 31819 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25034 25035 25036 25037 25038 25039 31538 31539 31540 31541 31542 31543 25202 25203 25204 25205 25206 25207 25238 25239 25240 25241 25242 25243 48 25400 25401 25402 25403 25404 25405 31820 31821 31822 31823 31824 31825 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25202 25203 25204 25205 25206 25207 31544 31545 31546 31547 31548 31549 25370 25371 25372 25373 25374 25375 25406 25407 25408 25409 25410 25411 48 25580 25581 25582 25583 25584 25585 31826 31827 31828 31829 31830 31831 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25370 25371 25372 25373 25374 25375 31550 31551 31552 31553 31554 31555 25544 25545 25546 25547 25548 25549 25586 25587 25588 25589 25590 25591 48 25748 25749 25750 25751 25752 25753 31832 31833 31834 31835 31836 31837 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25591 25544 25545 25546 25547 25548 25549 31556 31557 31558 31559 31560 31561 25718 25719 25720 25721 25722 25723 25754 25755 25756 25757 25758 25759 48 25916 25917 25918 25919 25920 25921 31838 31839 31840 31841 31842 31843 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25759 25718 25719 25720 25721 25722 25723 31562 31563 31564 31565 31566 31567 25886 25887 25888 25889 25890 25891 25922 25923 25924 25925 25926 25927 48 26090 26091 26092 26093 26094 26095 31844 31845 31846 31847 31848 31849 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25927 25886 25887 25888 25889 25890 25891 31568 31569 31570 31571 31572 31573 26060 26061 26062 26063 26064 26065 26096 26097 26098 26099 26100 26101 48 26258 26259 26260 26261 26262 26263 31850 31851 31852 31853 31854 31855 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26101 26060 26061 26062 26063 26064 26065 31574 31575 31576 31577 31578 31579 26228 26229 26230 26231 26232 26233 26264 26265 26266 26267 26268 26269 48 26426 26427 26428 26429 26430 26431 31856 31857 31858 31859 31860 31861 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26269 26228 26229 26230 26231 26232 26233 31580 31581 31582 31583 31584 31585 26396 26397 26398 26399 26400 26401 26432 26433 26434 26435 26436 26437 48 26606 26607 26608 26609 26610 26611 31862 31863 31864 31865 31866 31867 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26437 26396 26397 26398 26399 26400 26401 31586 31587 31588 31589 31590 31591 26570 26571 26572 26573 26574 26575 26612 26613 26614 26615 26616 26617 48 26774 26775 26776 26777 26778 26779 31868 31869 31870 31871 31872 31873 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26617 26570 26571 26572 26573 26574 26575 31592 31593 31594 31595 31596 31597 26744 26745 26746 26747 26748 26749 26780 26781 26782 26783 26784 26785 48 26942 26943 26944 26945 26946 26947 31874 31875 31876 31877 31878 31879 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26744 26745 26746 26747 26748 26749 31598 31599 31600 31601 31602 31603 26912 26913 26914 26915 26916 26917 26948 26949 26950 26951 26952 26953 48 27116 27117 27118 27119 27120 27121 31880 31881 31882 31883 31884 31885 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26953 26912 26913 26914 26915 26916 26917 31604 31605 31606 31607 31608 31609 27086 27087 27088 27089 27090 27091 27122 27123 27124 27125 27126 27127 48 27284 27285 27286 27287 27288 27289 31886 31887 31888 31889 31890 31891 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27127 27086 27087 27088 27089 27090 27091 31610 31611 31612 31613 31614 31615 27254 27255 27256 27257 27258 27259 27290 27291 27292 27293 27294 27295 48 27458 27459 27460 27461 27462 27463 31892 31893 31894 31895 31896 31897 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27254 27255 27256 27257 27258 27259 31616 31617 31618 31619 31620 31621 27422 27423 27424 27425 27426 27427 27464 27465 27466 27467 27468 27469 48 27638 27639 27640 27641 27642 27643 31898 31899 31900 31901 31902 31903 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27422 27423 27424 27425 27426 27427 31622 31623 31624 31625 31626 31627 27602 27603 27604 27605 27606 27607 27644 27645 27646 27647 27648 27649 48 27806 27807 27808 27809 27810 27811 31904 31905 31906 31907 31908 31909 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27649 27602 27603 27604 27605 27606 27607 31628 31629 31630 31631 31632 31633 27776 27777 27778 27779 27780 27781 27812 27813 27814 27815 27816 27817 48 27974 27975 27976 27977 27978 27979 31910 31911 31912 31913 31914 31915 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27817 27776 27777 27778 27779 27780 27781 31634 31635 31636 31637 31638 31639 27944 27945 27946 27947 27948 27949 27980 27981 27982 27983 27984 27985 48 28148 28149 28150 28151 28152 28153 31916 31917 31918 31919 31920 31921 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27985 27944 27945 27946 27947 27948 27949 31640 31641 31642 31643 31644 31645 28118 28119 28120 28121 28122 28123 28154 28155 28156 28157 28158 28159 48 28316 28317 28318 28319 28320 28321 31922 31923 31924 31925 31926 31927 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28159 28118 28119 28120 28121 28122 28123 31646 31647 31648 31649 31650 31651 28286 28287 28288 28289 28290 28291 28322 28323 28324 28325 28326 28327 48 28460 28461 28462 28463 28464 28465 31928 31929 31930 31931 31932 31933 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28327 28286 28287 28288 28289 28290 28291 31652 31653 31654 31655 31656 31657 28436 28437 28438 28439 28440 28441 28466 28467 28468 28469 28470 28471 48 28592 28593 28594 28595 28596 28597 31934 31935 31936 31937 31938 31939 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28471 28436 28437 28438 28439 28440 28441 31658 31659 31660 31661 31662 31663 28568 28569 28570 28571 28572 28573 28598 28599 28600 28601 28602 28603 48 28718 28719 28720 28721 28722 28723 31940 31941 31942 31943 31944 31945 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28603 28568 28569 28570 28571 28572 28573 31664 31665 31666 31667 31668 31669 28694 28695 28696 28697 28698 28699 28724 28725 28726 28727 28728 28729 48 28844 28845 28846 28847 28848 28849 31946 31947 31948 31949 31950 31951 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28729 28694 28695 28696 28697 28698 28699 31670 31671 31672 31673 31674 31675 28820 28821 28822 28823 28824 28825 28850 28851 28852 28853 28854 28855 48 28982 28983 28984 28985 28986 28987 31952 31953 31954 31955 31956 31957 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28855 28820 28821 28822 28823 28824 28825 31676 31677 31678 31679 31680 31681 28958 28959 28960 28961 28962 28963 28988 28989 28990 28991 28992 28993 48 29138 29139 29140 29141 29142 29143 31958 31959 31960 31961 31962 31963 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28993 28958 28959 28960 28961 28962 28963 31682 31683 31684 31685 31686 31687 29108 29109 29110 29111 29112 29113 29144 29145 29146 29147 29148 29149 48 29294 29295 29296 29297 29298 29299 31964 31965 31966 31967 31968 31969 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29149 29108 29109 29110 29111 29112 29113 31688 31689 31690 31691 31692 31693 29264 29265 29266 29267 29268 29269 29300 29301 29302 29303 29304 29305 48 29456 29457 29458 29459 29460 29461 31970 31971 31972 31973 31974 31975 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29305 29264 29265 29266 29267 29268 29269 31694 31695 31696 31697 31698 31699 29426 29427 29428 29429 29430 29431 29462 29463 29464 29465 29466 29467 48 30296 30297 30298 30299 30300 30301 31976 31977 31978 31979 31980 31981 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29467 29426 29427 29428 29429 29430 29431 31706 31707 31708 31709 31710 31711 31700 31701 31702 31703 31704 31705 31982 31983 31984 31985 31986 31987 48 22688 22689 22690 22691 22692 22693 31988 31989 31990 31991 31992 31993 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30062 30063 30064 30065 30066 30067 31718 31719 31720 31721 31722 31723 22658 22659 22660 22661 22662 22663 22694 22695 22696 22697 22698 22699 48 22868 22869 22870 22871 22872 22873 31994 31995 31996 31997 31998 31999 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22658 22659 22660 22661 22662 22663 31730 31731 31732 31733 31734 31735 22832 22833 22834 22835 22836 22837 22874 22875 22876 22877 22878 22879 48 23048 23049 23050 23051 23052 23053 32000 32001 32002 32003 32004 32005 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22832 22833 22834 22835 22836 22837 31736 31737 31738 31739 31740 31741 23012 23013 23014 23015 23016 23017 23054 23055 23056 23057 23058 23059 48 23210 23211 23212 23213 23214 23215 32006 32007 32008 32009 32010 32011 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23012 23013 23014 23015 23016 23017 31742 31743 31744 31745 31746 31747 23180 23181 23182 23183 23184 23185 23216 23217 23218 23219 23220 23221 48 23378 23379 23380 23381 23382 23383 32012 32013 32014 32015 32016 32017 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23180 23181 23182 23183 23184 23185 31748 31749 31750 31751 31752 31753 23348 23349 23350 23351 23352 23353 23384 23385 23386 23387 23388 23389 48 23564 23565 23566 23567 23568 23569 32018 32019 32020 32021 32022 32023 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23348 23349 23350 23351 23352 23353 31754 31755 31756 31757 31758 31759 23528 23529 23530 23531 23532 23533 23570 23571 23572 23573 23574 23575 48 23726 23727 23728 23729 23730 23731 32024 32025 32026 32027 32028 32029 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23528 23529 23530 23531 23532 23533 31760 31761 31762 31763 31764 31765 23696 23697 23698 23699 23700 23701 23732 23733 23734 23735 23736 23737 48 23894 23895 23896 23897 23898 23899 32030 32031 32032 32033 32034 32035 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23696 23697 23698 23699 23700 23701 31766 31767 31768 31769 31770 31771 23864 23865 23866 23867 23868 23869 23900 23901 23902 23903 23904 23905 48 24068 24069 24070 24071 24072 24073 32036 32037 32038 32039 32040 32041 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23864 23865 23866 23867 23868 23869 31772 31773 31774 31775 31776 31777 24038 24039 24040 24041 24042 24043 24074 24075 24076 24077 24078 24079 48 24236 24237 24238 24239 24240 24241 32042 32043 32044 32045 32046 32047 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24038 24039 24040 24041 24042 24043 31778 31779 31780 31781 31782 31783 24206 24207 24208 24209 24210 24211 24242 24243 24244 24245 24246 24247 48 24404 24405 24406 24407 24408 24409 32048 32049 32050 32051 32052 32053 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24206 24207 24208 24209 24210 24211 31784 31785 31786 31787 31788 31789 24374 24375 24376 24377 24378 24379 24410 24411 24412 24413 24414 24415 48 24590 24591 24592 24593 24594 24595 32054 32055 32056 32057 32058 32059 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24374 24375 24376 24377 24378 24379 31790 31791 31792 31793 31794 31795 24554 24555 24556 24557 24558 24559 24596 24597 24598 24599 24600 24601 48 24752 24753 24754 24755 24756 24757 32060 32061 32062 32063 32064 32065 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24554 24555 24556 24557 24558 24559 31796 31797 31798 31799 31800 31801 24722 24723 24724 24725 24726 24727 24758 24759 24760 24761 24762 24763 48 24920 24921 24922 24923 24924 24925 32066 32067 32068 32069 32070 32071 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24722 24723 24724 24725 24726 24727 31802 31803 31804 31805 31806 31807 24890 24891 24892 24893 24894 24895 24926 24927 24928 24929 24930 24931 48 25094 25095 25096 25097 25098 25099 32072 32073 32074 32075 32076 32077 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24890 24891 24892 24893 24894 24895 31808 31809 31810 31811 31812 31813 25064 25065 25066 25067 25068 25069 25100 25101 25102 25103 25104 25105 48 25262 25263 25264 25265 25266 25267 32078 32079 32080 32081 32082 32083 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25064 25065 25066 25067 25068 25069 31814 31815 31816 31817 31818 31819 25232 25233 25234 25235 25236 25237 25268 25269 25270 25271 25272 25273 48 25430 25431 25432 25433 25434 25435 32084 32085 32086 32087 32088 32089 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25232 25233 25234 25235 25236 25237 31820 31821 31822 31823 31824 31825 25400 25401 25402 25403 25404 25405 25436 25437 25438 25439 25440 25441 48 25616 25617 25618 25619 25620 25621 32090 32091 32092 32093 32094 32095 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25400 25401 25402 25403 25404 25405 31826 31827 31828 31829 31830 31831 25580 25581 25582 25583 25584 25585 25622 25623 25624 25625 25626 25627 48 25778 25779 25780 25781 25782 25783 32096 32097 32098 32099 32100 32101 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25627 25580 25581 25582 25583 25584 25585 31832 31833 31834 31835 31836 31837 25748 25749 25750 25751 25752 25753 25784 25785 25786 25787 25788 25789 48 25946 25947 25948 25949 25950 25951 32102 32103 32104 32105 32106 32107 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25789 25748 25749 25750 25751 25752 25753 31838 31839 31840 31841 31842 31843 25916 25917 25918 25919 25920 25921 25952 25953 25954 25955 25956 25957 48 26120 26121 26122 26123 26124 26125 32108 32109 32110 32111 32112 32113 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25957 25916 25917 25918 25919 25920 25921 31844 31845 31846 31847 31848 31849 26090 26091 26092 26093 26094 26095 26126 26127 26128 26129 26130 26131 48 26288 26289 26290 26291 26292 26293 32114 32115 32116 32117 32118 32119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26131 26090 26091 26092 26093 26094 26095 31850 31851 31852 31853 31854 31855 26258 26259 26260 26261 26262 26263 26294 26295 26296 26297 26298 26299 48 26456 26457 26458 26459 26460 26461 32120 32121 32122 32123 32124 32125 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26299 26258 26259 26260 26261 26262 26263 31856 31857 31858 31859 31860 31861 26426 26427 26428 26429 26430 26431 26462 26463 26464 26465 26466 26467 48 26642 26643 26644 26645 26646 26647 32126 32127 32128 32129 32130 32131 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26467 26426 26427 26428 26429 26430 26431 31862 31863 31864 31865 31866 31867 26606 26607 26608 26609 26610 26611 26648 26649 26650 26651 26652 26653 48 26804 26805 26806 26807 26808 26809 32132 32133 32134 32135 32136 32137 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26606 26607 26608 26609 26610 26611 31868 31869 31870 31871 31872 31873 26774 26775 26776 26777 26778 26779 26810 26811 26812 26813 26814 26815 48 26972 26973 26974 26975 26976 26977 32138 32139 32140 32141 32142 32143 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26815 26774 26775 26776 26777 26778 26779 31874 31875 31876 31877 31878 31879 26942 26943 26944 26945 26946 26947 26978 26979 26980 26981 26982 26983 48 27146 27147 27148 27149 27150 27151 32144 32145 32146 32147 32148 32149 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26983 26942 26943 26944 26945 26946 26947 31880 31881 31882 31883 31884 31885 27116 27117 27118 27119 27120 27121 27152 27153 27154 27155 27156 27157 48 27314 27315 27316 27317 27318 27319 32150 32151 32152 32153 32154 32155 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27157 27116 27117 27118 27119 27120 27121 31886 31887 31888 31889 31890 31891 27284 27285 27286 27287 27288 27289 27320 27321 27322 27323 27324 27325 48 27494 27495 27496 27497 27498 27499 32156 32157 32158 32159 32160 32161 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27284 27285 27286 27287 27288 27289 31892 31893 31894 31895 31896 31897 27458 27459 27460 27461 27462 27463 27500 27501 27502 27503 27504 27505 48 27674 27675 27676 27677 27678 27679 32162 32163 32164 32165 32166 32167 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27458 27459 27460 27461 27462 27463 31898 31899 31900 31901 31902 31903 27638 27639 27640 27641 27642 27643 27680 27681 27682 27683 27684 27685 48 27836 27837 27838 27839 27840 27841 32168 32169 32170 32171 32172 32173 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27685 27638 27639 27640 27641 27642 27643 31904 31905 31906 31907 31908 31909 27806 27807 27808 27809 27810 27811 27842 27843 27844 27845 27846 27847 48 28004 28005 28006 28007 28008 28009 32174 32175 32176 32177 32178 32179 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27847 27806 27807 27808 27809 27810 27811 31910 31911 31912 31913 31914 31915 27974 27975 27976 27977 27978 27979 28010 28011 28012 28013 28014 28015 48 28178 28179 28180 28181 28182 28183 32180 32181 32182 32183 32184 32185 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 28015 27974 27975 27976 27977 27978 27979 31916 31917 31918 31919 31920 31921 28148 28149 28150 28151 28152 28153 28184 28185 28186 28187 28188 28189 48 28346 28347 28348 28349 28350 28351 32186 32187 32188 32189 32190 32191 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28189 28148 28149 28150 28151 28152 28153 31922 31923 31924 31925 31926 31927 28316 28317 28318 28319 28320 28321 28352 28353 28354 28355 28356 28357 48 28490 28491 28492 28493 28494 28495 32192 32193 32194 32195 32196 32197 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28357 28316 28317 28318 28319 28320 28321 31928 31929 31930 31931 31932 31933 28460 28461 28462 28463 28464 28465 28496 28497 28498 28499 28500 28501 48 28616 28617 28618 28619 28620 28621 32198 32199 32200 32201 32202 32203 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28501 28460 28461 28462 28463 28464 28465 31934 31935 31936 31937 31938 31939 28592 28593 28594 28595 28596 28597 28622 28623 28624 28625 28626 28627 48 28742 28743 28744 28745 28746 28747 32204 32205 32206 32207 32208 32209 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28627 28592 28593 28594 28595 28596 28597 31940 31941 31942 31943 31944 31945 28718 28719 28720 28721 28722 28723 28748 28749 28750 28751 28752 28753 48 28868 28869 28870 28871 28872 28873 32210 32211 32212 32213 32214 32215 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28753 28718 28719 28720 28721 28722 28723 31946 31947 31948 31949 31950 31951 28844 28845 28846 28847 28848 28849 28874 28875 28876 28877 28878 28879 48 29006 29007 29008 29009 29010 29011 32216 32217 32218 32219 32220 32221 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28879 28844 28845 28846 28847 28848 28849 31952 31953 31954 31955 31956 31957 28982 28983 28984 28985 28986 28987 29012 29013 29014 29015 29016 29017 48 29162 29163 29164 29165 29166 29167 32222 32223 32224 32225 32226 32227 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 29017 28982 28983 28984 28985 28986 28987 31958 31959 31960 31961 31962 31963 29138 29139 29140 29141 29142 29143 29168 29169 29170 29171 29172 29173 48 29318 29319 29320 29321 29322 29323 32228 32229 32230 32231 32232 32233 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29173 29138 29139 29140 29141 29142 29143 31964 31965 31966 31967 31968 31969 29294 29295 29296 29297 29298 29299 29324 29325 29326 29327 29328 29329 48 29486 29487 29488 29489 29490 29491 32234 32235 32236 32237 32238 32239 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29329 29294 29295 29296 29297 29298 29299 31970 31971 31972 31973 31974 31975 29456 29457 29458 29459 29460 29461 29492 29493 29494 29495 29496 29497 48 30578 30579 30580 30581 30582 30583 32240 32241 32242 32243 32244 32245 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29497 29456 29457 29458 29459 29460 29461 31976 31977 31978 31979 31980 31981 30296 30297 30298 30299 30300 30301 30590 30591 30592 30593 30594 30595 48 22706 22707 22708 22709 22710 22711 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30613 30320 30321 30322 30323 30324 30325 31988 31989 31990 31991 31992 31993 22688 22689 22690 22691 22692 22693 22712 22713 22714 22715 22716 22717 48 22892 22893 22894 22895 22896 22897 30614 30615 30616 30617 30618 30619 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22717 22688 22689 22690 22691 22692 22693 31994 31995 31996 31997 31998 31999 22868 22869 22870 22871 22872 22873 22898 22899 22900 22901 22902 22903 48 23072 23073 23074 23075 23076 23077 30620 30621 30622 30623 30624 30625 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22903 22868 22869 22870 22871 22872 22873 32000 32001 32002 32003 32004 32005 23048 23049 23050 23051 23052 23053 23078 23079 23080 23081 23082 23083 48 23228 23229 23230 23231 23232 23233 30626 30627 30628 30629 30630 30631 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23083 23048 23049 23050 23051 23052 23053 32006 32007 32008 32009 32010 32011 23210 23211 23212 23213 23214 23215 23234 23235 23236 23237 23238 23239 48 23408 23409 23410 23411 23412 23413 30632 30633 30634 30635 30636 30637 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23239 23210 23211 23212 23213 23214 23215 32012 32013 32014 32015 32016 32017 23378 23379 23380 23381 23382 23383 23414 23415 23416 23417 23418 23419 48 23588 23589 23590 23591 23592 23593 30638 30639 30640 30641 30642 30643 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23419 23378 23379 23380 23381 23382 23383 32018 32019 32020 32021 32022 32023 23564 23565 23566 23567 23568 23569 23594 23595 23596 23597 23598 23599 48 23744 23745 23746 23747 23748 23749 30644 30645 30646 30647 30648 30649 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23599 23564 23565 23566 23567 23568 23569 32024 32025 32026 32027 32028 32029 23726 23727 23728 23729 23730 23731 23750 23751 23752 23753 23754 23755 48 23924 23925 23926 23927 23928 23929 30650 30651 30652 30653 30654 30655 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23726 23727 23728 23729 23730 23731 32030 32031 32032 32033 32034 32035 23894 23895 23896 23897 23898 23899 23930 23931 23932 23933 23934 23935 48 24098 24099 24100 24101 24102 24103 30656 30657 30658 30659 30660 30661 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23935 23894 23895 23896 23897 23898 23899 32036 32037 32038 32039 32040 32041 24068 24069 24070 24071 24072 24073 24104 24105 24106 24107 24108 24109 48 24254 24255 24256 24257 24258 24259 30662 30663 30664 30665 30666 30667 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24109 24068 24069 24070 24071 24072 24073 32042 32043 32044 32045 32046 32047 24236 24237 24238 24239 24240 24241 24260 24261 24262 24263 24264 24265 48 24434 24435 24436 24437 24438 24439 30668 30669 30670 30671 30672 30673 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24265 24236 24237 24238 24239 24240 24241 32048 32049 32050 32051 32052 32053 24404 24405 24406 24407 24408 24409 24440 24441 24442 24443 24444 24445 48 24614 24615 24616 24617 24618 24619 30674 30675 30676 30677 30678 30679 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24445 24404 24405 24406 24407 24408 24409 32054 32055 32056 32057 32058 32059 24590 24591 24592 24593 24594 24595 24620 24621 24622 24623 24624 24625 48 24770 24771 24772 24773 24774 24775 30680 30681 30682 30683 30684 30685 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24625 24590 24591 24592 24593 24594 24595 32060 32061 32062 32063 32064 32065 24752 24753 24754 24755 24756 24757 24776 24777 24778 24779 24780 24781 48 24950 24951 24952 24953 24954 24955 30686 30687 30688 30689 30690 30691 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24781 24752 24753 24754 24755 24756 24757 32066 32067 32068 32069 32070 32071 24920 24921 24922 24923 24924 24925 24956 24957 24958 24959 24960 24961 48 25124 25125 25126 25127 25128 25129 30692 30693 30694 30695 30696 30697 24950 24951 24952 24953 24954 24955 24956 24957 24958 24959 24960 24961 24920 24921 24922 24923 24924 24925 32072 32073 32074 32075 32076 32077 25094 25095 25096 25097 25098 25099 25130 25131 25132 25133 25134 25135 48 25280 25281 25282 25283 25284 25285 30698 30699 30700 30701 30702 30703 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25135 25094 25095 25096 25097 25098 25099 32078 32079 32080 32081 32082 32083 25262 25263 25264 25265 25266 25267 25286 25287 25288 25289 25290 25291 48 25460 25461 25462 25463 25464 25465 30704 30705 30706 30707 30708 30709 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25291 25262 25263 25264 25265 25266 25267 32084 32085 32086 32087 32088 32089 25430 25431 25432 25433 25434 25435 25466 25467 25468 25469 25470 25471 48 25640 25641 25642 25643 25644 25645 30710 30711 30712 30713 30714 30715 25460 25461 25462 25463 25464 25465 25466 25467 25468 25469 25470 25471 25430 25431 25432 25433 25434 25435 32090 32091 32092 32093 32094 32095 25616 25617 25618 25619 25620 25621 25646 25647 25648 25649 25650 25651 48 25796 25797 25798 25799 25800 25801 30716 30717 30718 30719 30720 30721 25640 25641 25642 25643 25644 25645 25646 25647 25648 25649 25650 25651 25616 25617 25618 25619 25620 25621 32096 32097 32098 32099 32100 32101 25778 25779 25780 25781 25782 25783 25802 25803 25804 25805 25806 25807 48 25976 25977 25978 25979 25980 25981 30722 30723 30724 30725 30726 30727 25796 25797 25798 25799 25800 25801 25802 25803 25804 25805 25806 25807 25778 25779 25780 25781 25782 25783 32102 32103 32104 32105 32106 32107 25946 25947 25948 25949 25950 25951 25982 25983 25984 25985 25986 25987 48 26150 26151 26152 26153 26154 26155 30728 30729 30730 30731 30732 30733 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25987 25946 25947 25948 25949 25950 25951 32108 32109 32110 32111 32112 32113 26120 26121 26122 26123 26124 26125 26156 26157 26158 26159 26160 26161 48 26306 26307 26308 26309 26310 26311 30734 30735 30736 30737 30738 30739 26150 26151 26152 26153 26154 26155 26156 26157 26158 26159 26160 26161 26120 26121 26122 26123 26124 26125 32114 32115 32116 32117 32118 32119 26288 26289 26290 26291 26292 26293 26312 26313 26314 26315 26316 26317 48 26486 26487 26488 26489 26490 26491 30740 30741 30742 30743 30744 30745 26306 26307 26308 26309 26310 26311 26312 26313 26314 26315 26316 26317 26288 26289 26290 26291 26292 26293 32120 32121 32122 32123 32124 32125 26456 26457 26458 26459 26460 26461 26492 26493 26494 26495 26496 26497 48 26666 26667 26668 26669 26670 26671 30746 30747 30748 30749 30750 30751 26486 26487 26488 26489 26490 26491 26492 26493 26494 26495 26496 26497 26456 26457 26458 26459 26460 26461 32126 32127 32128 32129 32130 32131 26642 26643 26644 26645 26646 26647 26672 26673 26674 26675 26676 26677 48 26822 26823 26824 26825 26826 26827 30752 30753 30754 30755 30756 30757 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26642 26643 26644 26645 26646 26647 32132 32133 32134 32135 32136 32137 26804 26805 26806 26807 26808 26809 26828 26829 26830 26831 26832 26833 48 27002 27003 27004 27005 27006 27007 30758 30759 30760 30761 30762 30763 26822 26823 26824 26825 26826 26827 26828 26829 26830 26831 26832 26833 26804 26805 26806 26807 26808 26809 32138 32139 32140 32141 32142 32143 26972 26973 26974 26975 26976 26977 27008 27009 27010 27011 27012 27013 48 27176 27177 27178 27179 27180 27181 30764 30765 30766 30767 30768 30769 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 27013 26972 26973 26974 26975 26976 26977 32144 32145 32146 32147 32148 32149 27146 27147 27148 27149 27150 27151 27182 27183 27184 27185 27186 27187 48 27332 27333 27334 27335 27336 27337 30770 30771 30772 30773 30774 30775 27176 27177 27178 27179 27180 27181 27182 27183 27184 27185 27186 27187 27146 27147 27148 27149 27150 27151 32150 32151 32152 32153 32154 32155 27314 27315 27316 27317 27318 27319 27338 27339 27340 27341 27342 27343 48 27518 27519 27520 27521 27522 27523 30776 30777 30778 30779 30780 30781 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27343 27314 27315 27316 27317 27318 27319 32156 32157 32158 32159 32160 32161 27494 27495 27496 27497 27498 27499 27524 27525 27526 27527 27528 27529 48 27698 27699 27700 27701 27702 27703 30782 30783 30784 30785 30786 30787 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27529 27494 27495 27496 27497 27498 27499 32162 32163 32164 32165 32166 32167 27674 27675 27676 27677 27678 27679 27704 27705 27706 27707 27708 27709 48 27854 27855 27856 27857 27858 27859 30788 30789 30790 30791 30792 30793 27698 27699 27700 27701 27702 27703 27704 27705 27706 27707 27708 27709 27674 27675 27676 27677 27678 27679 32168 32169 32170 32171 32172 32173 27836 27837 27838 27839 27840 27841 27860 27861 27862 27863 27864 27865 48 28034 28035 28036 28037 28038 28039 30794 30795 30796 30797 30798 30799 27854 27855 27856 27857 27858 27859 27860 27861 27862 27863 27864 27865 27836 27837 27838 27839 27840 27841 32174 32175 32176 32177 32178 32179 28004 28005 28006 28007 28008 28009 28040 28041 28042 28043 28044 28045 48 28208 28209 28210 28211 28212 28213 30800 30801 30802 30803 30804 30805 28034 28035 28036 28037 28038 28039 28040 28041 28042 28043 28044 28045 28004 28005 28006 28007 28008 28009 32180 32181 32182 32183 32184 32185 28178 28179 28180 28181 28182 28183 28214 28215 28216 28217 28218 28219 48 28364 28365 28366 28367 28368 28369 30806 30807 30808 30809 30810 30811 28208 28209 28210 28211 28212 28213 28214 28215 28216 28217 28218 28219 28178 28179 28180 28181 28182 28183 32186 32187 32188 32189 32190 32191 28346 28347 28348 28349 28350 28351 28370 28371 28372 28373 28374 28375 48 28514 28515 28516 28517 28518 28519 30812 30813 30814 30815 30816 30817 28364 28365 28366 28367 28368 28369 28370 28371 28372 28373 28374 28375 28346 28347 28348 28349 28350 28351 32192 32193 32194 32195 32196 32197 28490 28491 28492 28493 28494 28495 28520 28521 28522 28523 28524 28525 48 28634 28635 28636 28637 28638 28639 30818 30819 30820 30821 30822 30823 28514 28515 28516 28517 28518 28519 28520 28521 28522 28523 28524 28525 28490 28491 28492 28493 28494 28495 32198 32199 32200 32201 32202 32203 28616 28617 28618 28619 28620 28621 28640 28641 28642 28643 28644 28645 48 28760 28761 28762 28763 28764 28765 30824 30825 30826 30827 30828 30829 28634 28635 28636 28637 28638 28639 28640 28641 28642 28643 28644 28645 28616 28617 28618 28619 28620 28621 32204 32205 32206 32207 32208 32209 28742 28743 28744 28745 28746 28747 28766 28767 28768 28769 28770 28771 48 28886 28887 28888 28889 28890 28891 30830 30831 30832 30833 30834 30835 28760 28761 28762 28763 28764 28765 28766 28767 28768 28769 28770 28771 28742 28743 28744 28745 28746 28747 32210 32211 32212 32213 32214 32215 28868 28869 28870 28871 28872 28873 28892 28893 28894 28895 28896 28897 48 29024 29025 29026 29027 29028 29029 30836 30837 30838 30839 30840 30841 28886 28887 28888 28889 28890 28891 28892 28893 28894 28895 28896 28897 28868 28869 28870 28871 28872 28873 32216 32217 32218 32219 32220 32221 29006 29007 29008 29009 29010 29011 29030 29031 29032 29033 29034 29035 48 29180 29181 29182 29183 29184 29185 30842 30843 30844 30845 30846 30847 29024 29025 29026 29027 29028 29029 29030 29031 29032 29033 29034 29035 29006 29007 29008 29009 29010 29011 32222 32223 32224 32225 32226 32227 29162 29163 29164 29165 29166 29167 29186 29187 29188 29189 29190 29191 48 29336 29337 29338 29339 29340 29341 30848 30849 30850 30851 30852 30853 29180 29181 29182 29183 29184 29185 29186 29187 29188 29189 29190 29191 29162 29163 29164 29165 29166 29167 32228 32229 32230 32231 32232 32233 29318 29319 29320 29321 29322 29323 29342 29343 29344 29345 29346 29347 48 29516 29517 29518 29519 29520 29521 30854 30855 30856 30857 30858 30859 29336 29337 29338 29339 29340 29341 29342 29343 29344 29345 29346 29347 29318 29319 29320 29321 29322 29323 32234 32235 32236 32237 32238 32239 29486 29487 29488 29489 29490 29491 29522 29523 29524 29525 29526 29527 48 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 30871 29516 29517 29518 29519 29520 29521 29522 29523 29524 29525 29526 29527 29486 29487 29488 29489 29490 29491 32240 32241 32242 32243 32244 32245 30578 30579 30580 30581 30582 30583 30872 30873 30874 30875 30876 30877 36 22658 22659 22660 22661 22662 22663 30062 30063 30064 30065 30066 30067 22646 22647 22648 22649 22650 22651 31718 31719 31720 31721 31722 31723 30056 30057 30058 30059 30060 30061 22652 22653 22654 22655 22656 22657 36 22688 22689 22690 22691 22692 22693 30320 30321 30322 30323 30324 30325 22676 22677 22678 22679 22680 22681 31988 31989 31990 31991 31992 31993 30314 30315 30316 30317 30318 30319 22682 22683 22684 22685 22686 22687 48 14108 14109 14110 14111 14112 14113 22730 22731 22732 22733 22734 22735 22676 22677 22678 22679 22680 22681 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 30325 32246 32247 32248 32249 32250 32251 3017 3018 3019 3020 3021 3022 15848 15849 15850 15851 15852 15853 36 29456 29457 29458 29459 29460 29461 29444 29445 29446 29447 29448 29449 30296 30297 30298 30299 30300 30301 29450 29451 29452 29453 29454 29455 30302 30303 30304 30305 30306 30307 31976 31977 31978 31979 31980 31981 36 29486 29487 29488 29489 29490 29491 29474 29475 29476 29477 29478 29479 30578 30579 30580 30581 30582 30583 29480 29481 29482 29483 29484 29485 30584 30585 30586 30587 30588 30589 32240 32241 32242 32243 32244 32245 48 5048 5049 5050 5051 5052 5053 32252 32253 32254 32255 32256 32257 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 30589 29474 29475 29476 29477 29478 29479 29504 29505 29506 29507 29508 29509 12188 12189 12190 12191 12192 12193 15818 15819 15820 15821 15822 15823 48 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 21590 21591 21592 21593 21594 21595 1015 1016 1017 1018 1019 1020 1033 1034 1035 1036 1037 1038 1027 1028 1029 1030 1031 1032 21614 21615 21616 21617 21618 21619 48 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 21638 21639 21640 21641 21642 21643 1051 1052 1053 1054 1055 1056 1069 1070 1071 1072 1073 1074 1063 1064 1065 1066 1067 1068 21662 21663 21664 21665 21666 21667 48 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 21686 21687 21688 21689 21690 21691 1087 1088 1089 1090 1091 1092 1105 1106 1107 1108 1109 1110 1099 1100 1101 1102 1103 1104 21710 21711 21712 21713 21714 21715 48 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 21734 21735 21736 21737 21738 21739 1123 1124 1125 1126 1127 1128 1141 1142 1143 1144 1145 1146 1135 1136 1137 1138 1139 1140 21758 21759 21760 21761 21762 21763 48 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 21782 21783 21784 21785 21786 21787 1159 1160 1161 1162 1163 1164 1177 1178 1179 1180 1181 1182 1171 1172 1173 1174 1175 1176 21806 21807 21808 21809 21810 21811 48 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 21830 21831 21832 21833 21834 21835 1195 1196 1197 1198 1199 1200 1213 1214 1215 1216 1217 1218 1207 1208 1209 1210 1211 1212 21854 21855 21856 21857 21858 21859 48 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 21878 21879 21880 21881 21882 21883 1231 1232 1233 1234 1235 1236 1249 1250 1251 1252 1253 1254 1243 1244 1245 1246 1247 1248 21902 21903 21904 21905 21906 21907 48 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 21926 21927 21928 21929 21930 21931 1267 1268 1269 1270 1271 1272 1285 1286 1287 1288 1289 1290 1279 1280 1281 1282 1283 1284 21950 21951 21952 21953 21954 21955 48 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 21974 21975 21976 21977 21978 21979 1303 1304 1305 1306 1307 1308 1321 1322 1323 1324 1325 1326 1315 1316 1317 1318 1319 1320 21998 21999 22000 22001 22002 22003 48 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 22022 22023 22024 22025 22026 22027 1339 1340 1341 1342 1343 1344 1357 1358 1359 1360 1361 1362 1351 1352 1353 1354 1355 1356 22046 22047 22048 22049 22050 22051 48 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 22070 22071 22072 22073 22074 22075 1375 1376 1377 1378 1379 1380 1393 1394 1395 1396 1397 1398 1387 1388 1389 1390 1391 1392 22094 22095 22096 22097 22098 22099 48 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 22106 22107 22108 22109 22110 22111 1411 1412 1413 1414 1415 1416 1429 1430 1431 1432 1433 1434 1423 1424 1425 1426 1427 1428 32258 32259 32260 32261 32262 32263 48 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 32264 32265 32266 32267 32268 32269 1483 1484 1485 1486 1487 1488 1501 1502 1503 1504 1505 1506 1495 1496 1497 1498 1499 1500 22130 22131 22132 22133 22134 22135 48 15386 15387 15388 15389 15390 15391 15410 15411 15412 15413 15414 15415 3203 3204 3205 3206 3207 3208 32270 32271 32272 32273 32274 32275 30602 30603 30604 30605 30606 30607 30596 30597 30598 30599 30600 30601 22706 22707 22708 22709 22710 22711 22724 22725 22726 22727 22728 22729 48 15356 15357 15358 15359 15360 15361 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 22724 22725 22726 22727 22728 22729 22706 22707 22708 22709 22710 22711 30614 30615 30616 30617 30618 30619 22892 22893 22894 22895 22896 22897 22910 22911 22912 22913 22914 22915 48 15326 15327 15328 15329 15330 15331 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 22910 22911 22912 22913 22914 22915 22892 22893 22894 22895 22896 22897 30620 30621 30622 30623 30624 30625 23072 23073 23074 23075 23076 23077 23090 23091 23092 23093 23094 23095 48 15296 15297 15298 15299 15300 15301 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 23090 23091 23092 23093 23094 23095 23072 23073 23074 23075 23076 23077 30626 30627 30628 30629 30630 30631 23228 23229 23230 23231 23232 23233 23246 23247 23248 23249 23250 23251 48 15266 15267 15268 15269 15270 15271 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 23246 23247 23248 23249 23250 23251 23228 23229 23230 23231 23232 23233 30632 30633 30634 30635 30636 30637 23408 23409 23410 23411 23412 23413 23426 23427 23428 23429 23430 23431 48 15236 15237 15238 15239 15240 15241 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 23426 23427 23428 23429 23430 23431 23408 23409 23410 23411 23412 23413 30638 30639 30640 30641 30642 30643 23588 23589 23590 23591 23592 23593 23606 23607 23608 23609 23610 23611 48 15206 15207 15208 15209 15210 15211 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 23606 23607 23608 23609 23610 23611 23588 23589 23590 23591 23592 23593 30644 30645 30646 30647 30648 30649 23744 23745 23746 23747 23748 23749 23762 23763 23764 23765 23766 23767 48 15176 15177 15178 15179 15180 15181 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 23762 23763 23764 23765 23766 23767 23744 23745 23746 23747 23748 23749 30650 30651 30652 30653 30654 30655 23924 23925 23926 23927 23928 23929 23942 23943 23944 23945 23946 23947 48 15146 15147 15148 15149 15150 15151 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 23942 23943 23944 23945 23946 23947 23924 23925 23926 23927 23928 23929 30656 30657 30658 30659 30660 30661 24098 24099 24100 24101 24102 24103 24116 24117 24118 24119 24120 24121 48 15116 15117 15118 15119 15120 15121 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 24116 24117 24118 24119 24120 24121 24098 24099 24100 24101 24102 24103 30662 30663 30664 30665 30666 30667 24254 24255 24256 24257 24258 24259 24272 24273 24274 24275 24276 24277 48 15086 15087 15088 15089 15090 15091 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 24272 24273 24274 24275 24276 24277 24254 24255 24256 24257 24258 24259 30668 30669 30670 30671 30672 30673 24434 24435 24436 24437 24438 24439 24452 24453 24454 24455 24456 24457 48 15056 15057 15058 15059 15060 15061 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 24452 24453 24454 24455 24456 24457 24434 24435 24436 24437 24438 24439 30674 30675 30676 30677 30678 30679 24614 24615 24616 24617 24618 24619 24632 24633 24634 24635 24636 24637 48 15026 15027 15028 15029 15030 15031 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 24632 24633 24634 24635 24636 24637 24614 24615 24616 24617 24618 24619 30680 30681 30682 30683 30684 30685 24770 24771 24772 24773 24774 24775 24788 24789 24790 24791 24792 24793 48 14996 14997 14998 14999 15000 15001 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 24788 24789 24790 24791 24792 24793 24770 24771 24772 24773 24774 24775 30686 30687 30688 30689 30690 30691 24950 24951 24952 24953 24954 24955 24968 24969 24970 24971 24972 24973 48 14966 14967 14968 14969 14970 14971 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 24968 24969 24970 24971 24972 24973 24950 24951 24952 24953 24954 24955 30692 30693 30694 30695 30696 30697 25124 25125 25126 25127 25128 25129 25142 25143 25144 25145 25146 25147 48 14936 14937 14938 14939 14940 14941 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 25142 25143 25144 25145 25146 25147 25124 25125 25126 25127 25128 25129 30698 30699 30700 30701 30702 30703 25280 25281 25282 25283 25284 25285 25298 25299 25300 25301 25302 25303 48 14906 14907 14908 14909 14910 14911 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 25298 25299 25300 25301 25302 25303 25280 25281 25282 25283 25284 25285 30704 30705 30706 30707 30708 30709 25460 25461 25462 25463 25464 25465 25478 25479 25480 25481 25482 25483 48 14876 14877 14878 14879 14880 14881 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 25478 25479 25480 25481 25482 25483 25460 25461 25462 25463 25464 25465 30710 30711 30712 30713 30714 30715 25640 25641 25642 25643 25644 25645 25658 25659 25660 25661 25662 25663 48 14846 14847 14848 14849 14850 14851 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 25658 25659 25660 25661 25662 25663 25640 25641 25642 25643 25644 25645 30716 30717 30718 30719 30720 30721 25796 25797 25798 25799 25800 25801 25814 25815 25816 25817 25818 25819 48 14816 14817 14818 14819 14820 14821 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 25814 25815 25816 25817 25818 25819 25796 25797 25798 25799 25800 25801 30722 30723 30724 30725 30726 30727 25976 25977 25978 25979 25980 25981 25994 25995 25996 25997 25998 25999 48 14786 14787 14788 14789 14790 14791 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 25994 25995 25996 25997 25998 25999 25976 25977 25978 25979 25980 25981 30728 30729 30730 30731 30732 30733 26150 26151 26152 26153 26154 26155 26168 26169 26170 26171 26172 26173 48 14756 14757 14758 14759 14760 14761 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 26168 26169 26170 26171 26172 26173 26150 26151 26152 26153 26154 26155 30734 30735 30736 30737 30738 30739 26306 26307 26308 26309 26310 26311 26324 26325 26326 26327 26328 26329 48 14726 14727 14728 14729 14730 14731 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 26324 26325 26326 26327 26328 26329 26306 26307 26308 26309 26310 26311 30740 30741 30742 30743 30744 30745 26486 26487 26488 26489 26490 26491 26504 26505 26506 26507 26508 26509 48 14696 14697 14698 14699 14700 14701 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 26504 26505 26506 26507 26508 26509 26486 26487 26488 26489 26490 26491 30746 30747 30748 30749 30750 30751 26666 26667 26668 26669 26670 26671 26684 26685 26686 26687 26688 26689 48 14666 14667 14668 14669 14670 14671 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 26684 26685 26686 26687 26688 26689 26666 26667 26668 26669 26670 26671 30752 30753 30754 30755 30756 30757 26822 26823 26824 26825 26826 26827 26840 26841 26842 26843 26844 26845 48 14636 14637 14638 14639 14640 14641 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 26840 26841 26842 26843 26844 26845 26822 26823 26824 26825 26826 26827 30758 30759 30760 30761 30762 30763 27002 27003 27004 27005 27006 27007 27020 27021 27022 27023 27024 27025 48 14606 14607 14608 14609 14610 14611 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 27020 27021 27022 27023 27024 27025 27002 27003 27004 27005 27006 27007 30764 30765 30766 30767 30768 30769 27176 27177 27178 27179 27180 27181 27194 27195 27196 27197 27198 27199 48 14576 14577 14578 14579 14580 14581 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 27194 27195 27196 27197 27198 27199 27176 27177 27178 27179 27180 27181 30770 30771 30772 30773 30774 30775 27332 27333 27334 27335 27336 27337 27350 27351 27352 27353 27354 27355 48 14546 14547 14548 14549 14550 14551 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 27350 27351 27352 27353 27354 27355 27332 27333 27334 27335 27336 27337 30776 30777 30778 30779 30780 30781 27518 27519 27520 27521 27522 27523 27536 27537 27538 27539 27540 27541 48 14516 14517 14518 14519 14520 14521 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 27536 27537 27538 27539 27540 27541 27518 27519 27520 27521 27522 27523 30782 30783 30784 30785 30786 30787 27698 27699 27700 27701 27702 27703 27716 27717 27718 27719 27720 27721 48 14486 14487 14488 14489 14490 14491 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 27716 27717 27718 27719 27720 27721 27698 27699 27700 27701 27702 27703 30788 30789 30790 30791 30792 30793 27854 27855 27856 27857 27858 27859 27872 27873 27874 27875 27876 27877 48 14456 14457 14458 14459 14460 14461 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 27872 27873 27874 27875 27876 27877 27854 27855 27856 27857 27858 27859 30794 30795 30796 30797 30798 30799 28034 28035 28036 28037 28038 28039 28052 28053 28054 28055 28056 28057 48 14426 14427 14428 14429 14430 14431 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 28052 28053 28054 28055 28056 28057 28034 28035 28036 28037 28038 28039 30800 30801 30802 30803 30804 30805 28208 28209 28210 28211 28212 28213 28226 28227 28228 28229 28230 28231 48 14396 14397 14398 14399 14400 14401 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 28226 28227 28228 28229 28230 28231 28208 28209 28210 28211 28212 28213 30806 30807 30808 30809 30810 30811 28364 28365 28366 28367 28368 28369 28382 28383 28384 28385 28386 28387 48 14366 14367 14368 14369 14370 14371 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 28382 28383 28384 28385 28386 28387 28364 28365 28366 28367 28368 28369 30812 30813 30814 30815 30816 30817 28514 28515 28516 28517 28518 28519 28532 28533 28534 28535 28536 28537 48 14336 14337 14338 14339 14340 14341 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 28532 28533 28534 28535 28536 28537 28514 28515 28516 28517 28518 28519 30818 30819 30820 30821 30822 30823 28634 28635 28636 28637 28638 28639 28652 28653 28654 28655 28656 28657 48 14306 14307 14308 14309 14310 14311 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 28652 28653 28654 28655 28656 28657 28634 28635 28636 28637 28638 28639 30824 30825 30826 30827 30828 30829 28760 28761 28762 28763 28764 28765 28778 28779 28780 28781 28782 28783 48 14276 14277 14278 14279 14280 14281 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 28778 28779 28780 28781 28782 28783 28760 28761 28762 28763 28764 28765 30830 30831 30832 30833 30834 30835 28886 28887 28888 28889 28890 28891 28904 28905 28906 28907 28908 28909 48 14246 14247 14248 14249 14250 14251 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 28904 28905 28906 28907 28908 28909 28886 28887 28888 28889 28890 28891 30836 30837 30838 30839 30840 30841 29024 29025 29026 29027 29028 29029 29042 29043 29044 29045 29046 29047 48 14216 14217 14218 14219 14220 14221 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 29042 29043 29044 29045 29046 29047 29024 29025 29026 29027 29028 29029 30842 30843 30844 30845 30846 30847 29180 29181 29182 29183 29184 29185 29198 29199 29200 29201 29202 29203 48 14186 14187 14188 14189 14190 14191 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 29198 29199 29200 29201 29202 29203 29180 29181 29182 29183 29184 29185 30848 30849 30850 30851 30852 30853 29336 29337 29338 29339 29340 29341 29354 29355 29356 29357 29358 29359 48 14156 14157 14158 14159 14160 14161 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 29354 29355 29356 29357 29358 29359 29336 29337 29338 29339 29340 29341 30854 30855 30856 30857 30858 30859 29516 29517 29518 29519 29520 29521 29534 29535 29536 29537 29538 29539 48 5180 5181 5182 5183 5184 5185 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 29534 29535 29536 29537 29538 29539 29516 29517 29518 29519 29520 29521 30866 30867 30868 30869 30870 30871 30860 30861 30862 30863 30864 30865 32276 32277 32278 32279 32280 32281 48 22856 22857 22858 22859 22860 22861 30332 30333 30334 30335 30336 30337 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 31994 31995 31996 31997 31998 31999 22868 22869 22870 22871 22872 22873 22862 22863 22864 22865 22866 22867 48 14060 14061 14062 14063 14064 14065 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 22730 22731 22732 22733 22734 22735 22676 22677 22678 22679 22680 22681 30332 30333 30334 30335 30336 30337 22856 22857 22858 22859 22860 22861 22886 22887 22888 22889 22890 22891 48 23036 23037 23038 23039 23040 23041 30338 30339 30340 30341 30342 30343 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 32000 32001 32002 32003 32004 32005 23048 23049 23050 23051 23052 23053 23042 23043 23044 23045 23046 23047 48 14012 14013 14014 14015 14016 14017 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 22886 22887 22888 22889 22890 22891 22856 22857 22858 22859 22860 22861 30338 30339 30340 30341 30342 30343 23036 23037 23038 23039 23040 23041 23066 23067 23068 23069 23070 23071 48 23198 23199 23200 23201 23202 23203 30344 30345 30346 30347 30348 30349 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 32006 32007 32008 32009 32010 32011 23210 23211 23212 23213 23214 23215 23204 23205 23206 23207 23208 23209 48 13964 13965 13966 13967 13968 13969 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 23066 23067 23068 23069 23070 23071 23036 23037 23038 23039 23040 23041 30344 30345 30346 30347 30348 30349 23198 23199 23200 23201 23202 23203 23252 23253 23254 23255 23256 23257 48 23366 23367 23368 23369 23370 23371 30350 30351 30352 30353 30354 30355 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 32012 32013 32014 32015 32016 32017 23378 23379 23380 23381 23382 23383 23372 23373 23374 23375 23376 23377 48 13916 13917 13918 13919 13920 13921 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 23252 23253 23254 23255 23256 23257 23198 23199 23200 23201 23202 23203 30350 30351 30352 30353 30354 30355 23366 23367 23368 23369 23370 23371 23396 23397 23398 23399 23400 23401 48 23552 23553 23554 23555 23556 23557 30356 30357 30358 30359 30360 30361 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 32018 32019 32020 32021 32022 32023 23564 23565 23566 23567 23568 23569 23558 23559 23560 23561 23562 23563 48 13868 13869 13870 13871 13872 13873 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 23396 23397 23398 23399 23400 23401 23366 23367 23368 23369 23370 23371 30356 30357 30358 30359 30360 30361 23552 23553 23554 23555 23556 23557 23582 23583 23584 23585 23586 23587 48 23714 23715 23716 23717 23718 23719 30362 30363 30364 30365 30366 30367 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 32024 32025 32026 32027 32028 32029 23726 23727 23728 23729 23730 23731 23720 23721 23722 23723 23724 23725 48 13820 13821 13822 13823 13824 13825 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 23582 23583 23584 23585 23586 23587 23552 23553 23554 23555 23556 23557 30362 30363 30364 30365 30366 30367 23714 23715 23716 23717 23718 23719 23768 23769 23770 23771 23772 23773 48 23882 23883 23884 23885 23886 23887 30368 30369 30370 30371 30372 30373 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 32030 32031 32032 32033 32034 32035 23894 23895 23896 23897 23898 23899 23888 23889 23890 23891 23892 23893 48 13772 13773 13774 13775 13776 13777 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 23768 23769 23770 23771 23772 23773 23714 23715 23716 23717 23718 23719 30368 30369 30370 30371 30372 30373 23882 23883 23884 23885 23886 23887 23912 23913 23914 23915 23916 23917 48 24056 24057 24058 24059 24060 24061 30374 30375 30376 30377 30378 30379 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 32036 32037 32038 32039 32040 32041 24068 24069 24070 24071 24072 24073 24062 24063 24064 24065 24066 24067 48 13724 13725 13726 13727 13728 13729 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 23912 23913 23914 23915 23916 23917 23882 23883 23884 23885 23886 23887 30374 30375 30376 30377 30378 30379 24056 24057 24058 24059 24060 24061 24086 24087 24088 24089 24090 24091 48 24224 24225 24226 24227 24228 24229 30380 30381 30382 30383 30384 30385 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 32042 32043 32044 32045 32046 32047 24236 24237 24238 24239 24240 24241 24230 24231 24232 24233 24234 24235 48 13676 13677 13678 13679 13680 13681 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 24086 24087 24088 24089 24090 24091 24056 24057 24058 24059 24060 24061 30380 30381 30382 30383 30384 30385 24224 24225 24226 24227 24228 24229 24278 24279 24280 24281 24282 24283 48 24392 24393 24394 24395 24396 24397 30386 30387 30388 30389 30390 30391 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 32048 32049 32050 32051 32052 32053 24404 24405 24406 24407 24408 24409 24398 24399 24400 24401 24402 24403 48 13628 13629 13630 13631 13632 13633 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 24278 24279 24280 24281 24282 24283 24224 24225 24226 24227 24228 24229 30386 30387 30388 30389 30390 30391 24392 24393 24394 24395 24396 24397 24422 24423 24424 24425 24426 24427 48 24578 24579 24580 24581 24582 24583 30392 30393 30394 30395 30396 30397 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 32054 32055 32056 32057 32058 32059 24590 24591 24592 24593 24594 24595 24584 24585 24586 24587 24588 24589 48 13580 13581 13582 13583 13584 13585 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 24422 24423 24424 24425 24426 24427 24392 24393 24394 24395 24396 24397 30392 30393 30394 30395 30396 30397 24578 24579 24580 24581 24582 24583 24608 24609 24610 24611 24612 24613 48 24740 24741 24742 24743 24744 24745 30398 30399 30400 30401 30402 30403 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 32060 32061 32062 32063 32064 32065 24752 24753 24754 24755 24756 24757 24746 24747 24748 24749 24750 24751 48 13532 13533 13534 13535 13536 13537 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 24608 24609 24610 24611 24612 24613 24578 24579 24580 24581 24582 24583 30398 30399 30400 30401 30402 30403 24740 24741 24742 24743 24744 24745 24794 24795 24796 24797 24798 24799 48 24908 24909 24910 24911 24912 24913 30404 30405 30406 30407 30408 30409 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 32066 32067 32068 32069 32070 32071 24920 24921 24922 24923 24924 24925 24914 24915 24916 24917 24918 24919 48 13484 13485 13486 13487 13488 13489 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 24794 24795 24796 24797 24798 24799 24740 24741 24742 24743 24744 24745 30404 30405 30406 30407 30408 30409 24908 24909 24910 24911 24912 24913 24938 24939 24940 24941 24942 24943 48 25082 25083 25084 25085 25086 25087 30410 30411 30412 30413 30414 30415 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 32072 32073 32074 32075 32076 32077 25094 25095 25096 25097 25098 25099 25088 25089 25090 25091 25092 25093 48 13436 13437 13438 13439 13440 13441 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 24938 24939 24940 24941 24942 24943 24908 24909 24910 24911 24912 24913 30410 30411 30412 30413 30414 30415 25082 25083 25084 25085 25086 25087 25112 25113 25114 25115 25116 25117 48 25250 25251 25252 25253 25254 25255 30416 30417 30418 30419 30420 30421 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 32078 32079 32080 32081 32082 32083 25262 25263 25264 25265 25266 25267 25256 25257 25258 25259 25260 25261 48 13388 13389 13390 13391 13392 13393 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 25112 25113 25114 25115 25116 25117 25082 25083 25084 25085 25086 25087 30416 30417 30418 30419 30420 30421 25250 25251 25252 25253 25254 25255 25304 25305 25306 25307 25308 25309 48 25418 25419 25420 25421 25422 25423 30422 30423 30424 30425 30426 30427 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 32084 32085 32086 32087 32088 32089 25430 25431 25432 25433 25434 25435 25424 25425 25426 25427 25428 25429 48 13340 13341 13342 13343 13344 13345 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 25304 25305 25306 25307 25308 25309 25250 25251 25252 25253 25254 25255 30422 30423 30424 30425 30426 30427 25418 25419 25420 25421 25422 25423 25448 25449 25450 25451 25452 25453 48 25604 25605 25606 25607 25608 25609 30428 30429 30430 30431 30432 30433 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 32090 32091 32092 32093 32094 32095 25616 25617 25618 25619 25620 25621 25610 25611 25612 25613 25614 25615 48 13292 13293 13294 13295 13296 13297 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 25448 25449 25450 25451 25452 25453 25418 25419 25420 25421 25422 25423 30428 30429 30430 30431 30432 30433 25604 25605 25606 25607 25608 25609 25634 25635 25636 25637 25638 25639 48 25766 25767 25768 25769 25770 25771 30434 30435 30436 30437 30438 30439 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 32096 32097 32098 32099 32100 32101 25778 25779 25780 25781 25782 25783 25772 25773 25774 25775 25776 25777 48 13244 13245 13246 13247 13248 13249 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 25634 25635 25636 25637 25638 25639 25604 25605 25606 25607 25608 25609 30434 30435 30436 30437 30438 30439 25766 25767 25768 25769 25770 25771 25820 25821 25822 25823 25824 25825 48 25934 25935 25936 25937 25938 25939 30440 30441 30442 30443 30444 30445 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 32102 32103 32104 32105 32106 32107 25946 25947 25948 25949 25950 25951 25940 25941 25942 25943 25944 25945 48 13196 13197 13198 13199 13200 13201 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 25820 25821 25822 25823 25824 25825 25766 25767 25768 25769 25770 25771 30440 30441 30442 30443 30444 30445 25934 25935 25936 25937 25938 25939 25964 25965 25966 25967 25968 25969 48 26108 26109 26110 26111 26112 26113 30446 30447 30448 30449 30450 30451 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 32108 32109 32110 32111 32112 32113 26120 26121 26122 26123 26124 26125 26114 26115 26116 26117 26118 26119 48 13148 13149 13150 13151 13152 13153 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 25964 25965 25966 25967 25968 25969 25934 25935 25936 25937 25938 25939 30446 30447 30448 30449 30450 30451 26108 26109 26110 26111 26112 26113 26138 26139 26140 26141 26142 26143 48 26276 26277 26278 26279 26280 26281 30452 30453 30454 30455 30456 30457 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 32114 32115 32116 32117 32118 32119 26288 26289 26290 26291 26292 26293 26282 26283 26284 26285 26286 26287 48 13100 13101 13102 13103 13104 13105 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 26138 26139 26140 26141 26142 26143 26108 26109 26110 26111 26112 26113 30452 30453 30454 30455 30456 30457 26276 26277 26278 26279 26280 26281 26330 26331 26332 26333 26334 26335 48 26444 26445 26446 26447 26448 26449 30458 30459 30460 30461 30462 30463 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 26293 32120 32121 32122 32123 32124 32125 26456 26457 26458 26459 26460 26461 26450 26451 26452 26453 26454 26455 48 13052 13053 13054 13055 13056 13057 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 26330 26331 26332 26333 26334 26335 26276 26277 26278 26279 26280 26281 30458 30459 30460 30461 30462 30463 26444 26445 26446 26447 26448 26449 26474 26475 26476 26477 26478 26479 48 26630 26631 26632 26633 26634 26635 30464 30465 30466 30467 30468 30469 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 26461 32126 32127 32128 32129 32130 32131 26642 26643 26644 26645 26646 26647 26636 26637 26638 26639 26640 26641 48 13004 13005 13006 13007 13008 13009 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 26474 26475 26476 26477 26478 26479 26444 26445 26446 26447 26448 26449 30464 30465 30466 30467 30468 30469 26630 26631 26632 26633 26634 26635 26660 26661 26662 26663 26664 26665 48 26792 26793 26794 26795 26796 26797 30470 30471 30472 30473 30474 30475 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 32132 32133 32134 32135 32136 32137 26804 26805 26806 26807 26808 26809 26798 26799 26800 26801 26802 26803 48 12956 12957 12958 12959 12960 12961 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 26660 26661 26662 26663 26664 26665 26630 26631 26632 26633 26634 26635 30470 30471 30472 30473 30474 30475 26792 26793 26794 26795 26796 26797 26846 26847 26848 26849 26850 26851 48 26960 26961 26962 26963 26964 26965 30476 30477 30478 30479 30480 30481 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 32138 32139 32140 32141 32142 32143 26972 26973 26974 26975 26976 26977 26966 26967 26968 26969 26970 26971 48 12908 12909 12910 12911 12912 12913 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 26846 26847 26848 26849 26850 26851 26792 26793 26794 26795 26796 26797 30476 30477 30478 30479 30480 30481 26960 26961 26962 26963 26964 26965 26990 26991 26992 26993 26994 26995 48 27134 27135 27136 27137 27138 27139 30482 30483 30484 30485 30486 30487 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 26977 32144 32145 32146 32147 32148 32149 27146 27147 27148 27149 27150 27151 27140 27141 27142 27143 27144 27145 48 12860 12861 12862 12863 12864 12865 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 26990 26991 26992 26993 26994 26995 26960 26961 26962 26963 26964 26965 30482 30483 30484 30485 30486 30487 27134 27135 27136 27137 27138 27139 27164 27165 27166 27167 27168 27169 48 27302 27303 27304 27305 27306 27307 30488 30489 30490 30491 30492 30493 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 32150 32151 32152 32153 32154 32155 27314 27315 27316 27317 27318 27319 27308 27309 27310 27311 27312 27313 48 12812 12813 12814 12815 12816 12817 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 27164 27165 27166 27167 27168 27169 27134 27135 27136 27137 27138 27139 30488 30489 30490 30491 30492 30493 27302 27303 27304 27305 27306 27307 27356 27357 27358 27359 27360 27361 48 27482 27483 27484 27485 27486 27487 30494 30495 30496 30497 30498 30499 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 32156 32157 32158 32159 32160 32161 27494 27495 27496 27497 27498 27499 27488 27489 27490 27491 27492 27493 48 12764 12765 12766 12767 12768 12769 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 27356 27357 27358 27359 27360 27361 27302 27303 27304 27305 27306 27307 30494 30495 30496 30497 30498 30499 27482 27483 27484 27485 27486 27487 27512 27513 27514 27515 27516 27517 48 27662 27663 27664 27665 27666 27667 30500 30501 30502 30503 30504 30505 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 32162 32163 32164 32165 32166 32167 27674 27675 27676 27677 27678 27679 27668 27669 27670 27671 27672 27673 48 12716 12717 12718 12719 12720 12721 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 27512 27513 27514 27515 27516 27517 27482 27483 27484 27485 27486 27487 30500 30501 30502 30503 30504 30505 27662 27663 27664 27665 27666 27667 27692 27693 27694 27695 27696 27697 48 27824 27825 27826 27827 27828 27829 30506 30507 30508 30509 30510 30511 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 32168 32169 32170 32171 32172 32173 27836 27837 27838 27839 27840 27841 27830 27831 27832 27833 27834 27835 48 12668 12669 12670 12671 12672 12673 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 27692 27693 27694 27695 27696 27697 27662 27663 27664 27665 27666 27667 30506 30507 30508 30509 30510 30511 27824 27825 27826 27827 27828 27829 27878 27879 27880 27881 27882 27883 48 27992 27993 27994 27995 27996 27997 30512 30513 30514 30515 30516 30517 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 32174 32175 32176 32177 32178 32179 28004 28005 28006 28007 28008 28009 27998 27999 28000 28001 28002 28003 48 12620 12621 12622 12623 12624 12625 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 27878 27879 27880 27881 27882 27883 27824 27825 27826 27827 27828 27829 30512 30513 30514 30515 30516 30517 27992 27993 27994 27995 27996 27997 28022 28023 28024 28025 28026 28027 48 28166 28167 28168 28169 28170 28171 30518 30519 30520 30521 30522 30523 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 28009 32180 32181 32182 32183 32184 32185 28178 28179 28180 28181 28182 28183 28172 28173 28174 28175 28176 28177 48 12572 12573 12574 12575 12576 12577 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 28022 28023 28024 28025 28026 28027 27992 27993 27994 27995 27996 27997 30518 30519 30520 30521 30522 30523 28166 28167 28168 28169 28170 28171 28196 28197 28198 28199 28200 28201 48 28334 28335 28336 28337 28338 28339 30524 30525 30526 30527 30528 30529 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 28183 32186 32187 32188 32189 32190 32191 28346 28347 28348 28349 28350 28351 28340 28341 28342 28343 28344 28345 48 12524 12525 12526 12527 12528 12529 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 28196 28197 28198 28199 28200 28201 28166 28167 28168 28169 28170 28171 30524 30525 30526 30527 30528 30529 28334 28335 28336 28337 28338 28339 28388 28389 28390 28391 28392 28393 48 28478 28479 28480 28481 28482 28483 30530 30531 30532 30533 30534 30535 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 28351 32192 32193 32194 32195 32196 32197 28490 28491 28492 28493 28494 28495 28484 28485 28486 28487 28488 28489 48 12476 12477 12478 12479 12480 12481 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 28388 28389 28390 28391 28392 28393 28334 28335 28336 28337 28338 28339 30530 30531 30532 30533 30534 30535 28478 28479 28480 28481 28482 28483 28508 28509 28510 28511 28512 28513 48 961 962 963 964 965 966 30536 30537 30538 30539 30540 30541 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 28495 32198 32199 32200 32201 32202 32203 28616 28617 28618 28619 28620 28621 28610 28611 28612 28613 28614 28615 48 12434 12435 12436 12437 12438 12439 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 28508 28509 28510 28511 28512 28513 28478 28479 28480 28481 28482 28483 30536 30537 30538 30539 30540 30541 961 962 963 964 965 966 28658 28659 28660 28661 28662 28663 48 967 968 969 970 971 972 30542 30543 30544 30545 30546 30547 961 962 963 964 965 966 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 28621 32204 32205 32206 32207 32208 32209 28742 28743 28744 28745 28746 28747 28736 28737 28738 28739 28740 28741 48 12392 12393 12394 12395 12396 12397 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 28658 28659 28660 28661 28662 28663 961 962 963 964 965 966 30542 30543 30544 30545 30546 30547 967 968 969 970 971 972 28784 28785 28786 28787 28788 28789 48 973 974 975 976 977 978 30548 30549 30550 30551 30552 30553 967 968 969 970 971 972 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 28747 32210 32211 32212 32213 32214 32215 28868 28869 28870 28871 28872 28873 28862 28863 28864 28865 28866 28867 48 12350 12351 12352 12353 12354 12355 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 28784 28785 28786 28787 28788 28789 967 968 969 970 971 972 30548 30549 30550 30551 30552 30553 973 974 975 976 977 978 28910 28911 28912 28913 28914 28915 48 979 980 981 982 983 984 30554 30555 30556 30557 30558 30559 973 974 975 976 977 978 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 28873 32216 32217 32218 32219 32220 32221 29006 29007 29008 29009 29010 29011 29000 29001 29002 29003 29004 29005 48 12308 12309 12310 12311 12312 12313 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 28910 28911 28912 28913 28914 28915 973 974 975 976 977 978 30554 30555 30556 30557 30558 30559 979 980 981 982 983 984 29048 29049 29050 29051 29052 29053 48 985 986 987 988 989 990 30560 30561 30562 30563 30564 30565 979 980 981 982 983 984 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 32222 32223 32224 32225 32226 32227 29162 29163 29164 29165 29166 29167 29156 29157 29158 29159 29160 29161 48 12266 12267 12268 12269 12270 12271 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 29048 29049 29050 29051 29052 29053 979 980 981 982 983 984 30560 30561 30562 30563 30564 30565 985 986 987 988 989 990 29204 29205 29206 29207 29208 29209 48 991 992 993 994 995 996 30566 30567 30568 30569 30570 30571 985 986 987 988 989 990 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 29167 32228 32229 32230 32231 32232 32233 29318 29319 29320 29321 29322 29323 29312 29313 29314 29315 29316 29317 48 12200 12201 12202 12203 12204 12205 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 29204 29205 29206 29207 29208 29209 985 986 987 988 989 990 30566 30567 30568 30569 30570 30571 991 992 993 994 995 996 29360 29361 29362 29363 29364 29365 48 29474 29475 29476 29477 29478 29479 30572 30573 30574 30575 30576 30577 991 992 993 994 995 996 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 32234 32235 32236 32237 32238 32239 29486 29487 29488 29489 29490 29491 29480 29481 29482 29483 29484 29485 48 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 29360 29361 29362 29363 29364 29365 991 992 993 994 995 996 30572 30573 30574 30575 30576 30577 29474 29475 29476 29477 29478 29479 29504 29505 29506 29507 29508 29509 48 22820 22821 22822 22823 22824 22825 30074 30075 30076 30077 30078 30079 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 31730 31731 31732 31733 31734 31735 22832 22833 22834 22835 22836 22837 22826 22827 22828 22829 22830 22831 48 23000 23001 23002 23003 23004 23005 30080 30081 30082 30083 30084 30085 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 31736 31737 31738 31739 31740 31741 23012 23013 23014 23015 23016 23017 23006 23007 23008 23009 23010 23011 48 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 22850 22851 22852 22853 22854 22855 22820 22821 22822 22823 22824 22825 30080 30081 30082 30083 30084 30085 23000 23001 23002 23003 23004 23005 23030 23031 23032 23033 23034 23035 48 23168 23169 23170 23171 23172 23173 30086 30087 30088 30089 30090 30091 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 31742 31743 31744 31745 31746 31747 23180 23181 23182 23183 23184 23185 23174 23175 23176 23177 23178 23179 48 23336 23337 23338 23339 23340 23341 30092 30093 30094 30095 30096 30097 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 31748 31749 31750 31751 31752 31753 23348 23349 23350 23351 23352 23353 23342 23343 23344 23345 23346 23347 48 23516 23517 23518 23519 23520 23521 30098 30099 30100 30101 30102 30103 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 31754 31755 31756 31757 31758 31759 23528 23529 23530 23531 23532 23533 23522 23523 23524 23525 23526 23527 48 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 23402 23403 23404 23405 23406 23407 23336 23337 23338 23339 23340 23341 30098 30099 30100 30101 30102 30103 23516 23517 23518 23519 23520 23521 23546 23547 23548 23549 23550 23551 48 23684 23685 23686 23687 23688 23689 30104 30105 30106 30107 30108 30109 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 31760 31761 31762 31763 31764 31765 23696 23697 23698 23699 23700 23701 23690 23691 23692 23693 23694 23695 48 23852 23853 23854 23855 23856 23857 30110 30111 30112 30113 30114 30115 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 31766 31767 31768 31769 31770 31771 23864 23865 23866 23867 23868 23869 23858 23859 23860 23861 23862 23863 48 24026 24027 24028 24029 24030 24031 30116 30117 30118 30119 30120 30121 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 31772 31773 31774 31775 31776 31777 24038 24039 24040 24041 24042 24043 24032 24033 24034 24035 24036 24037 48 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 23918 23919 23920 23921 23922 23923 23852 23853 23854 23855 23856 23857 30116 30117 30118 30119 30120 30121 24026 24027 24028 24029 24030 24031 24092 24093 24094 24095 24096 24097 48 24194 24195 24196 24197 24198 24199 30122 30123 30124 30125 30126 30127 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 31778 31779 31780 31781 31782 31783 24206 24207 24208 24209 24210 24211 24200 24201 24202 24203 24204 24205 48 24362 24363 24364 24365 24366 24367 30128 30129 30130 30131 30132 30133 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 31784 31785 31786 31787 31788 31789 24374 24375 24376 24377 24378 24379 24368 24369 24370 24371 24372 24373 48 24542 24543 24544 24545 24546 24547 30134 30135 30136 30137 30138 30139 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 31790 31791 31792 31793 31794 31795 24554 24555 24556 24557 24558 24559 24548 24549 24550 24551 24552 24553 48 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 24428 24429 24430 24431 24432 24433 24362 24363 24364 24365 24366 24367 30134 30135 30136 30137 30138 30139 24542 24543 24544 24545 24546 24547 24572 24573 24574 24575 24576 24577 48 24710 24711 24712 24713 24714 24715 30140 30141 30142 30143 30144 30145 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 31796 31797 31798 31799 31800 31801 24722 24723 24724 24725 24726 24727 24716 24717 24718 24719 24720 24721 48 24878 24879 24880 24881 24882 24883 30146 30147 30148 30149 30150 30151 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 31802 31803 31804 31805 31806 31807 24890 24891 24892 24893 24894 24895 24884 24885 24886 24887 24888 24889 48 25052 25053 25054 25055 25056 25057 30152 30153 30154 30155 30156 30157 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 31808 31809 31810 31811 31812 31813 25064 25065 25066 25067 25068 25069 25058 25059 25060 25061 25062 25063 48 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 24944 24945 24946 24947 24948 24949 24878 24879 24880 24881 24882 24883 30152 30153 30154 30155 30156 30157 25052 25053 25054 25055 25056 25057 25118 25119 25120 25121 25122 25123 48 25220 25221 25222 25223 25224 25225 30158 30159 30160 30161 30162 30163 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 31814 31815 31816 31817 31818 31819 25232 25233 25234 25235 25236 25237 25226 25227 25228 25229 25230 25231 48 25388 25389 25390 25391 25392 25393 30164 30165 30166 30167 30168 30169 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 31820 31821 31822 31823 31824 31825 25400 25401 25402 25403 25404 25405 25394 25395 25396 25397 25398 25399 48 25568 25569 25570 25571 25572 25573 30170 30171 30172 30173 30174 30175 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 31826 31827 31828 31829 31830 31831 25580 25581 25582 25583 25584 25585 25574 25575 25576 25577 25578 25579 48 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 25454 25455 25456 25457 25458 25459 25388 25389 25390 25391 25392 25393 30170 30171 30172 30173 30174 30175 25568 25569 25570 25571 25572 25573 25598 25599 25600 25601 25602 25603 48 25736 25737 25738 25739 25740 25741 30176 30177 30178 30179 30180 30181 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 31832 31833 31834 31835 31836 31837 25748 25749 25750 25751 25752 25753 25742 25743 25744 25745 25746 25747 48 25904 25905 25906 25907 25908 25909 30182 30183 30184 30185 30186 30187 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 31838 31839 31840 31841 31842 31843 25916 25917 25918 25919 25920 25921 25910 25911 25912 25913 25914 25915 48 26078 26079 26080 26081 26082 26083 30188 30189 30190 30191 30192 30193 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 31844 31845 31846 31847 31848 31849 26090 26091 26092 26093 26094 26095 26084 26085 26086 26087 26088 26089 48 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 25970 25971 25972 25973 25974 25975 25904 25905 25906 25907 25908 25909 30188 30189 30190 30191 30192 30193 26078 26079 26080 26081 26082 26083 26144 26145 26146 26147 26148 26149 48 26246 26247 26248 26249 26250 26251 30194 30195 30196 30197 30198 30199 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 26095 31850 31851 31852 31853 31854 31855 26258 26259 26260 26261 26262 26263 26252 26253 26254 26255 26256 26257 48 26414 26415 26416 26417 26418 26419 30200 30201 30202 30203 30204 30205 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 26263 31856 31857 31858 31859 31860 31861 26426 26427 26428 26429 26430 26431 26420 26421 26422 26423 26424 26425 48 26594 26595 26596 26597 26598 26599 30206 30207 30208 30209 30210 30211 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 26431 31862 31863 31864 31865 31866 31867 26606 26607 26608 26609 26610 26611 26600 26601 26602 26603 26604 26605 48 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 26480 26481 26482 26483 26484 26485 26414 26415 26416 26417 26418 26419 30206 30207 30208 30209 30210 30211 26594 26595 26596 26597 26598 26599 26624 26625 26626 26627 26628 26629 48 26762 26763 26764 26765 26766 26767 30212 30213 30214 30215 30216 30217 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 26611 31868 31869 31870 31871 31872 31873 26774 26775 26776 26777 26778 26779 26768 26769 26770 26771 26772 26773 48 26930 26931 26932 26933 26934 26935 30218 30219 30220 30221 30222 30223 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 31874 31875 31876 31877 31878 31879 26942 26943 26944 26945 26946 26947 26936 26937 26938 26939 26940 26941 48 27104 27105 27106 27107 27108 27109 30224 30225 30226 30227 30228 30229 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 26947 31880 31881 31882 31883 31884 31885 27116 27117 27118 27119 27120 27121 27110 27111 27112 27113 27114 27115 48 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 26996 26997 26998 26999 27000 27001 26930 26931 26932 26933 26934 26935 30224 30225 30226 30227 30228 30229 27104 27105 27106 27107 27108 27109 27170 27171 27172 27173 27174 27175 48 27272 27273 27274 27275 27276 27277 30230 30231 30232 30233 30234 30235 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 31886 31887 31888 31889 31890 31891 27284 27285 27286 27287 27288 27289 27278 27279 27280 27281 27282 27283 48 27446 27447 27448 27449 27450 27451 30236 30237 30238 30239 30240 30241 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 31892 31893 31894 31895 31896 31897 27458 27459 27460 27461 27462 27463 27452 27453 27454 27455 27456 27457 48 27626 27627 27628 27629 27630 27631 30242 30243 30244 30245 30246 30247 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 31898 31899 31900 31901 31902 31903 27638 27639 27640 27641 27642 27643 27632 27633 27634 27635 27636 27637 48 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 27476 27477 27478 27479 27480 27481 27446 27447 27448 27449 27450 27451 30242 30243 30244 30245 30246 30247 27626 27627 27628 27629 27630 27631 27656 27657 27658 27659 27660 27661 48 27794 27795 27796 27797 27798 27799 30248 30249 30250 30251 30252 30253 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 31904 31905 31906 31907 31908 31909 27806 27807 27808 27809 27810 27811 27800 27801 27802 27803 27804 27805 48 27962 27963 27964 27965 27966 27967 30254 30255 30256 30257 30258 30259 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 31910 31911 31912 31913 31914 31915 27974 27975 27976 27977 27978 27979 27968 27969 27970 27971 27972 27973 48 28136 28137 28138 28139 28140 28141 30260 30261 30262 30263 30264 30265 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 31916 31917 31918 31919 31920 31921 28148 28149 28150 28151 28152 28153 28142 28143 28144 28145 28146 28147 48 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 28028 28029 28030 28031 28032 28033 27962 27963 27964 27965 27966 27967 30260 30261 30262 30263 30264 30265 28136 28137 28138 28139 28140 28141 28202 28203 28204 28205 28206 28207 48 28304 28305 28306 28307 28308 28309 30266 30267 30268 30269 30270 30271 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 28153 31922 31923 31924 31925 31926 31927 28316 28317 28318 28319 28320 28321 28310 28311 28312 28313 28314 28315 48 21008 21009 21010 21011 21012 21013 30272 30273 30274 30275 30276 30277 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 28321 31928 31929 31930 31931 31932 31933 28460 28461 28462 28463 28464 28465 28454 28455 28456 28457 28458 28459 48 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 28465 31934 31935 31936 31937 31938 31939 28592 28593 28594 28595 28596 28597 28586 28587 28588 28589 28590 28591 48 29444 29445 29446 29447 29448 29449 29510 29511 29512 29513 29514 29515 10778 10779 10780 10781 10782 10783 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 32282 32283 32284 32285 32286 32287 955 956 957 958 959 960 32288 32289 32290 32291 32292 32293 48 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 20996 20997 20998 20999 21000 21001 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 28597 31940 31941 31942 31943 31944 31945 28718 28719 28720 28721 28722 28723 28712 28713 28714 28715 28716 28717 36 29444 29445 29446 29447 29448 29449 955 956 957 958 959 960 29282 29283 29284 29285 29286 29287 32288 32289 32290 32291 32292 32293 32294 32295 32296 32297 32298 32299 30290 30291 30292 30293 30294 30295 48 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21038 21039 21040 21041 21042 21043 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 28723 31946 31947 31948 31949 31950 31951 28844 28845 28846 28847 28848 28849 28838 28839 28840 28841 28842 28843 48 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21062 21063 21064 21065 21066 21067 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 28849 31952 31953 31954 31955 31956 31957 28982 28983 28984 28985 28986 28987 28976 28977 28978 28979 28980 28981 48 29126 29127 29128 29129 29130 29131 30284 30285 30286 30287 30288 30289 29282 29283 29284 29285 29286 29287 32294 32295 32296 32297 32298 32299 955 956 957 958 959 960 32300 32301 32302 32303 32304 32305 949 950 951 952 953 954 32306 32307 32308 32309 32310 32311 48 29126 29127 29128 29129 29130 29131 30278 30279 30280 30281 30282 30283 21086 21087 21088 21089 21090 21091 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 31958 31959 31960 31961 31962 31963 29138 29139 29140 29141 29142 29143 29132 29133 29134 29135 29136 29137 48 29282 29283 29284 29285 29286 29287 30284 30285 30286 30287 30288 30289 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 29143 31964 31965 31966 31967 31968 31969 29294 29295 29296 29297 29298 29299 29288 29289 29290 29291 29292 29293 48 21086 21087 21088 21089 21090 21091 30278 30279 30280 30281 30282 30283 29126 29127 29128 29129 29130 29131 32306 32307 32308 32309 32310 32311 949 950 951 952 953 954 32312 32313 32314 32315 32316 32317 943 944 945 946 947 948 21098 21099 21100 21101 21102 21103 48 29444 29445 29446 29447 29448 29449 30290 30291 30292 30293 30294 30295 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 29299 31970 31971 31972 31973 31974 31975 29456 29457 29458 29459 29460 29461 29450 29451 29452 29453 29454 29455 48 22616 22617 22618 22619 22620 22621 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 29809 32318 32319 32320 32321 32322 32323 31442 31443 31444 31445 31446 31447 31436 31437 31438 31439 31440 31441 22628 22629 22630 22631 22632 22633 22622 22623 22624 22625 22626 22627 48 22784 22785 22786 22787 22788 22789 29816 29817 29818 29819 29820 29821 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 31454 31455 31456 31457 31458 31459 22796 22797 22798 22799 22800 22801 22790 22791 22792 22793 22794 22795 48 22964 22965 22966 22967 22968 22969 29822 29823 29824 29825 29826 29827 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 31460 31461 31462 31463 31464 31465 22976 22977 22978 22979 22980 22981 22970 22971 22972 22973 22974 22975 48 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 22814 22815 22816 22817 22818 22819 22784 22785 22786 22787 22788 22789 29822 29823 29824 29825 29826 29827 22964 22965 22966 22967 22968 22969 22994 22995 22996 22997 22998 22999 48 23138 23139 23140 23141 23142 23143 29828 29829 29830 29831 29832 29833 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 31466 31467 31468 31469 31470 31471 23150 23151 23152 23153 23154 23155 23144 23145 23146 23147 23148 23149 48 23306 23307 23308 23309 23310 23311 29834 29835 29836 29837 29838 29839 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 31472 31473 31474 31475 31476 31477 23318 23319 23320 23321 23322 23323 23312 23313 23314 23315 23316 23317 48 23480 23481 23482 23483 23484 23485 29840 29841 29842 29843 29844 29845 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 31478 31479 31480 31481 31482 31483 23492 23493 23494 23495 23496 23497 23486 23487 23488 23489 23490 23491 48 23654 23655 23656 23657 23658 23659 29846 29847 29848 29849 29850 29851 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 31484 31485 31486 31487 31488 31489 23666 23667 23668 23669 23670 23671 23660 23661 23662 23663 23664 23665 48 23822 23823 23824 23825 23826 23827 29852 29853 29854 29855 29856 29857 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 31490 31491 31492 31493 31494 31495 23834 23835 23836 23837 23838 23839 23828 23829 23830 23831 23832 23833 48 23996 23997 23998 23999 24000 24001 29858 29859 29860 29861 29862 29863 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 31496 31497 31498 31499 31500 31501 24008 24009 24010 24011 24012 24013 24002 24003 24004 24005 24006 24007 48 24164 24165 24166 24167 24168 24169 29864 29865 29866 29867 29868 29869 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 31502 31503 31504 31505 31506 31507 24176 24177 24178 24179 24180 24181 24170 24171 24172 24173 24174 24175 48 24332 24333 24334 24335 24336 24337 29870 29871 29872 29873 29874 29875 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 31508 31509 31510 31511 31512 31513 24344 24345 24346 24347 24348 24349 24338 24339 24340 24341 24342 24343 48 24506 24507 24508 24509 24510 24511 29876 29877 29878 29879 29880 29881 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 31514 31515 31516 31517 31518 31519 24518 24519 24520 24521 24522 24523 24512 24513 24514 24515 24516 24517 48 24680 24681 24682 24683 24684 24685 29882 29883 29884 29885 29886 29887 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 31520 31521 31522 31523 31524 31525 24692 24693 24694 24695 24696 24697 24686 24687 24688 24689 24690 24691 48 24848 24849 24850 24851 24852 24853 29888 29889 29890 29891 29892 29893 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 31526 31527 31528 31529 31530 31531 24860 24861 24862 24863 24864 24865 24854 24855 24856 24857 24858 24859 48 25022 25023 25024 25025 25026 25027 29894 29895 29896 29897 29898 29899 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 31532 31533 31534 31535 31536 31537 25034 25035 25036 25037 25038 25039 25028 25029 25030 25031 25032 25033 48 25190 25191 25192 25193 25194 25195 29900 29901 29902 29903 29904 29905 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 31538 31539 31540 31541 31542 31543 25202 25203 25204 25205 25206 25207 25196 25197 25198 25199 25200 25201 48 25358 25359 25360 25361 25362 25363 29906 29907 29908 29909 29910 29911 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 31544 31545 31546 31547 31548 31549 25370 25371 25372 25373 25374 25375 25364 25365 25366 25367 25368 25369 48 25532 25533 25534 25535 25536 25537 29912 29913 29914 29915 29916 29917 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 31550 31551 31552 31553 31554 31555 25544 25545 25546 25547 25548 25549 25538 25539 25540 25541 25542 25543 48 25706 25707 25708 25709 25710 25711 29918 29919 29920 29921 29922 29923 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 31556 31557 31558 31559 31560 31561 25718 25719 25720 25721 25722 25723 25712 25713 25714 25715 25716 25717 48 25874 25875 25876 25877 25878 25879 29924 29925 29926 29927 29928 29929 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 31562 31563 31564 31565 31566 31567 25886 25887 25888 25889 25890 25891 25880 25881 25882 25883 25884 25885 48 26048 26049 26050 26051 26052 26053 29930 29931 29932 29933 29934 29935 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 31568 31569 31570 31571 31572 31573 26060 26061 26062 26063 26064 26065 26054 26055 26056 26057 26058 26059 48 26216 26217 26218 26219 26220 26221 29936 29937 29938 29939 29940 29941 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 26065 31574 31575 31576 31577 31578 31579 26228 26229 26230 26231 26232 26233 26222 26223 26224 26225 26226 26227 48 26384 26385 26386 26387 26388 26389 29942 29943 29944 29945 29946 29947 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 26233 31580 31581 31582 31583 31584 31585 26396 26397 26398 26399 26400 26401 26390 26391 26392 26393 26394 26395 48 26558 26559 26560 26561 26562 26563 29948 29949 29950 29951 29952 29953 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 26401 31586 31587 31588 31589 31590 31591 26570 26571 26572 26573 26574 26575 26564 26565 26566 26567 26568 26569 48 26732 26733 26734 26735 26736 26737 29954 29955 29956 29957 29958 29959 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 26575 31592 31593 31594 31595 31596 31597 26744 26745 26746 26747 26748 26749 26738 26739 26740 26741 26742 26743 48 26900 26901 26902 26903 26904 26905 29960 29961 29962 29963 29964 29965 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 31598 31599 31600 31601 31602 31603 26912 26913 26914 26915 26916 26917 26906 26907 26908 26909 26910 26911 48 27074 27075 27076 27077 27078 27079 29966 29967 29968 29969 29970 29971 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 26917 31604 31605 31606 31607 31608 31609 27086 27087 27088 27089 27090 27091 27080 27081 27082 27083 27084 27085 48 27242 27243 27244 27245 27246 27247 29972 29973 29974 29975 29976 29977 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 31610 31611 31612 31613 31614 31615 27254 27255 27256 27257 27258 27259 27248 27249 27250 27251 27252 27253 48 27410 27411 27412 27413 27414 27415 29978 29979 29980 29981 29982 29983 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 31616 31617 31618 31619 31620 31621 27422 27423 27424 27425 27426 27427 27416 27417 27418 27419 27420 27421 48 27590 27591 27592 27593 27594 27595 29984 29985 29986 29987 29988 29989 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 31622 31623 31624 31625 31626 31627 27602 27603 27604 27605 27606 27607 27596 27597 27598 27599 27600 27601 48 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 27440 27441 27442 27443 27444 27445 27410 27411 27412 27413 27414 27415 29984 29985 29986 29987 29988 29989 27590 27591 27592 27593 27594 27595 27620 27621 27622 27623 27624 27625 48 27764 27765 27766 27767 27768 27769 29990 29991 29992 29993 29994 29995 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 31628 31629 31630 31631 31632 31633 27776 27777 27778 27779 27780 27781 27770 27771 27772 27773 27774 27775 48 27932 27933 27934 27935 27936 27937 29996 29997 29998 29999 30000 30001 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 31634 31635 31636 31637 31638 31639 27944 27945 27946 27947 27948 27949 27938 27939 27940 27941 27942 27943 48 28106 28107 28108 28109 28110 28111 30002 30003 30004 30005 30006 30007 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 31640 31641 31642 31643 31644 31645 28118 28119 28120 28121 28122 28123 28112 28113 28114 28115 28116 28117 48 28274 28275 28276 28277 28278 28279 30008 30009 30010 30011 30012 30013 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 28123 31646 31647 31648 31649 31650 31651 28286 28287 28288 28289 28290 28291 28280 28281 28282 28283 28284 28285 48 20894 20895 20896 20897 20898 20899 30014 30015 30016 30017 30018 30019 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 28291 31652 31653 31654 31655 31656 31657 28436 28437 28438 28439 28440 28441 28430 28431 28432 28433 28434 28435 48 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 28441 31658 31659 31660 31661 31662 31663 28568 28569 28570 28571 28572 28573 28562 28563 28564 28565 28566 28567 48 29414 29415 29416 29417 29418 29419 32324 32325 32326 32327 32328 32329 9392 9393 9394 9395 9396 9397 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 32330 32331 32332 32333 32334 32335 919 920 921 922 923 924 32336 32337 32338 32339 32340 32341 48 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20882 20883 20884 20885 20886 20887 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 28573 31664 31665 31666 31667 31668 31669 28694 28695 28696 28697 28698 28699 28688 28689 28690 28691 28692 28693 36 29414 29415 29416 29417 29418 29419 919 920 921 922 923 924 29252 29253 29254 29255 29256 29257 32336 32337 32338 32339 32340 32341 32342 32343 32344 32345 32346 32347 30032 30033 30034 30035 30036 30037 48 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20924 20925 20926 20927 20928 20929 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 28699 31670 31671 31672 31673 31674 31675 28820 28821 28822 28823 28824 28825 28814 28815 28816 28817 28818 28819 48 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20948 20949 20950 20951 20952 20953 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 28825 31676 31677 31678 31679 31680 31681 28958 28959 28960 28961 28962 28963 28952 28953 28954 28955 28956 28957 48 29096 29097 29098 29099 29100 29101 30026 30027 30028 30029 30030 30031 29252 29253 29254 29255 29256 29257 32342 32343 32344 32345 32346 32347 919 920 921 922 923 924 32348 32349 32350 32351 32352 32353 913 914 915 916 917 918 32354 32355 32356 32357 32358 32359 48 29096 29097 29098 29099 29100 29101 30020 30021 30022 30023 30024 30025 20972 20973 20974 20975 20976 20977 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 31682 31683 31684 31685 31686 31687 29108 29109 29110 29111 29112 29113 29102 29103 29104 29105 29106 29107 48 29252 29253 29254 29255 29256 29257 30026 30027 30028 30029 30030 30031 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 29113 31688 31689 31690 31691 31692 31693 29264 29265 29266 29267 29268 29269 29258 29259 29260 29261 29262 29263 48 20972 20973 20974 20975 20976 20977 30020 30021 30022 30023 30024 30025 29096 29097 29098 29099 29100 29101 32354 32355 32356 32357 32358 32359 913 914 915 916 917 918 32360 32361 32362 32363 32364 32365 907 908 909 910 911 912 20984 20985 20986 20987 20988 20989 48 29414 29415 29416 29417 29418 29419 30032 30033 30034 30035 30036 30037 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 29269 31694 31695 31696 31697 31698 31699 29426 29427 29428 29429 29430 29431 29420 29421 29422 29423 29424 29425 48 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 30049 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 31706 31707 31708 31709 31710 31711 31700 31701 31702 31703 31704 31705 32366 32367 32368 32369 32370 32371 48 22574 22575 22576 22577 22578 22579 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 29551 32372 32373 32374 32375 32376 32377 30914 30915 30916 30917 30918 30919 30908 30909 30910 30911 30912 30913 22586 22587 22588 22589 22590 22591 22580 22581 22582 22583 22584 22585 48 22736 22737 22738 22739 22740 22741 29558 29559 29560 29561 29562 29563 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 30926 30927 30928 30929 30930 30931 22748 22749 22750 22751 22752 22753 22742 22743 22744 22745 22746 22747 48 22916 22917 22918 22919 22920 22921 29564 29565 29566 29567 29568 29569 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 30938 30939 30940 30941 30942 30943 22928 22929 22930 22931 22932 22933 22922 22923 22924 22925 22926 22927 48 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 22778 22779 22780 22781 22782 22783 22736 22737 22738 22739 22740 22741 29564 29565 29566 29567 29568 29569 22916 22917 22918 22919 22920 22921 22958 22959 22960 22961 22962 22963 48 23096 23097 23098 23099 23100 23101 29570 29571 29572 29573 29574 29575 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 30950 30951 30952 30953 30954 30955 23108 23109 23110 23111 23112 23113 23102 23103 23104 23105 23106 23107 48 23258 23259 23260 23261 23262 23263 29576 29577 29578 29579 29580 29581 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 30962 30963 30964 30965 30966 30967 23270 23271 23272 23273 23274 23275 23264 23265 23266 23267 23268 23269 48 23432 23433 23434 23435 23436 23437 29582 29583 29584 29585 29586 29587 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 30974 30975 30976 30977 30978 30979 23444 23445 23446 23447 23448 23449 23438 23439 23440 23441 23442 23443 48 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 23300 23301 23302 23303 23304 23305 23258 23259 23260 23261 23262 23263 29582 29583 29584 29585 29586 29587 23432 23433 23434 23435 23436 23437 23474 23475 23476 23477 23478 23479 48 23612 23613 23614 23615 23616 23617 29588 29589 29590 29591 29592 29593 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 30986 30987 30988 30989 30990 30991 23624 23625 23626 23627 23628 23629 23618 23619 23620 23621 23622 23623 48 23774 23775 23776 23777 23778 23779 29594 29595 29596 29597 29598 29599 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 30998 30999 31000 31001 31002 31003 23786 23787 23788 23789 23790 23791 23780 23781 23782 23783 23784 23785 48 23948 23949 23950 23951 23952 23953 29600 29601 29602 29603 29604 29605 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 31010 31011 31012 31013 31014 31015 23960 23961 23962 23963 23964 23965 23954 23955 23956 23957 23958 23959 48 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 23816 23817 23818 23819 23820 23821 23774 23775 23776 23777 23778 23779 29600 29601 29602 29603 29604 29605 23948 23949 23950 23951 23952 23953 23990 23991 23992 23993 23994 23995 48 24122 24123 24124 24125 24126 24127 29606 29607 29608 29609 29610 29611 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 31022 31023 31024 31025 31026 31027 24134 24135 24136 24137 24138 24139 24128 24129 24130 24131 24132 24133 48 24284 24285 24286 24287 24288 24289 29612 29613 29614 29615 29616 29617 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 31034 31035 31036 31037 31038 31039 24296 24297 24298 24299 24300 24301 24290 24291 24292 24293 24294 24295 48 24458 24459 24460 24461 24462 24463 29618 29619 29620 29621 29622 29623 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 31046 31047 31048 31049 31050 31051 24470 24471 24472 24473 24474 24475 24464 24465 24466 24467 24468 24469 48 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 24326 24327 24328 24329 24330 24331 24284 24285 24286 24287 24288 24289 29618 29619 29620 29621 29622 29623 24458 24459 24460 24461 24462 24463 24500 24501 24502 24503 24504 24505 48 24638 24639 24640 24641 24642 24643 29624 29625 29626 29627 29628 29629 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 31058 31059 31060 31061 31062 31063 24650 24651 24652 24653 24654 24655 24644 24645 24646 24647 24648 24649 48 24800 24801 24802 24803 24804 24805 29630 29631 29632 29633 29634 29635 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 31070 31071 31072 31073 31074 31075 24812 24813 24814 24815 24816 24817 24806 24807 24808 24809 24810 24811 48 24974 24975 24976 24977 24978 24979 29636 29637 29638 29639 29640 29641 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 31082 31083 31084 31085 31086 31087 24986 24987 24988 24989 24990 24991 24980 24981 24982 24983 24984 24985 48 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 24842 24843 24844 24845 24846 24847 24800 24801 24802 24803 24804 24805 29636 29637 29638 29639 29640 29641 24974 24975 24976 24977 24978 24979 25016 25017 25018 25019 25020 25021 48 25148 25149 25150 25151 25152 25153 29642 29643 29644 29645 29646 29647 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 31094 31095 31096 31097 31098 31099 25160 25161 25162 25163 25164 25165 25154 25155 25156 25157 25158 25159 48 25310 25311 25312 25313 25314 25315 29648 29649 29650 29651 29652 29653 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 31106 31107 31108 31109 31110 31111 25322 25323 25324 25325 25326 25327 25316 25317 25318 25319 25320 25321 48 25484 25485 25486 25487 25488 25489 29654 29655 29656 29657 29658 29659 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 31118 31119 31120 31121 31122 31123 25496 25497 25498 25499 25500 25501 25490 25491 25492 25493 25494 25495 48 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 25352 25353 25354 25355 25356 25357 25310 25311 25312 25313 25314 25315 29654 29655 29656 29657 29658 29659 25484 25485 25486 25487 25488 25489 25526 25527 25528 25529 25530 25531 48 25664 25665 25666 25667 25668 25669 29660 29661 29662 29663 29664 29665 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 31130 31131 31132 31133 31134 31135 25676 25677 25678 25679 25680 25681 25670 25671 25672 25673 25674 25675 48 25826 25827 25828 25829 25830 25831 29666 29667 29668 29669 29670 29671 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 31142 31143 31144 31145 31146 31147 25838 25839 25840 25841 25842 25843 25832 25833 25834 25835 25836 25837 48 26000 26001 26002 26003 26004 26005 29672 29673 29674 29675 29676 29677 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 31154 31155 31156 31157 31158 31159 26012 26013 26014 26015 26016 26017 26006 26007 26008 26009 26010 26011 48 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 25868 25869 25870 25871 25872 25873 25826 25827 25828 25829 25830 25831 29672 29673 29674 29675 29676 29677 26000 26001 26002 26003 26004 26005 26042 26043 26044 26045 26046 26047 48 26174 26175 26176 26177 26178 26179 29678 29679 29680 29681 29682 29683 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 31166 31167 31168 31169 31170 31171 26186 26187 26188 26189 26190 26191 26180 26181 26182 26183 26184 26185 48 26336 26337 26338 26339 26340 26341 29684 29685 29686 29687 29688 29689 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 26191 31178 31179 31180 31181 31182 31183 26348 26349 26350 26351 26352 26353 26342 26343 26344 26345 26346 26347 48 26510 26511 26512 26513 26514 26515 29690 29691 29692 29693 29694 29695 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 26353 31190 31191 31192 31193 31194 31195 26522 26523 26524 26525 26526 26527 26516 26517 26518 26519 26520 26521 48 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 26378 26379 26380 26381 26382 26383 26336 26337 26338 26339 26340 26341 29690 29691 29692 29693 29694 29695 26510 26511 26512 26513 26514 26515 26552 26553 26554 26555 26556 26557 48 26690 26691 26692 26693 26694 26695 29696 29697 29698 29699 29700 29701 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 26527 31202 31203 31204 31205 31206 31207 26702 26703 26704 26705 26706 26707 26696 26697 26698 26699 26700 26701 48 26852 26853 26854 26855 26856 26857 29702 29703 29704 29705 29706 29707 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 31214 31215 31216 31217 31218 31219 26864 26865 26866 26867 26868 26869 26858 26859 26860 26861 26862 26863 48 27026 27027 27028 27029 27030 27031 29708 29709 29710 29711 29712 29713 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 26869 31226 31227 31228 31229 31230 31231 27038 27039 27040 27041 27042 27043 27032 27033 27034 27035 27036 27037 48 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 26894 26895 26896 26897 26898 26899 26852 26853 26854 26855 26856 26857 29708 29709 29710 29711 29712 29713 27026 27027 27028 27029 27030 27031 27068 27069 27070 27071 27072 27073 48 27200 27201 27202 27203 27204 27205 29714 29715 29716 29717 29718 29719 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 31238 31239 31240 31241 31242 31243 27212 27213 27214 27215 27216 27217 27206 27207 27208 27209 27210 27211 48 27362 27363 27364 27365 27366 27367 29720 29721 29722 29723 29724 29725 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 31250 31251 31252 31253 31254 31255 27374 27375 27376 27377 27378 27379 27368 27369 27370 27371 27372 27373 48 27542 27543 27544 27545 27546 27547 29726 29727 29728 29729 29730 29731 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 31262 31263 31264 31265 31266 31267 27554 27555 27556 27557 27558 27559 27548 27549 27550 27551 27552 27553 48 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 27404 27405 27406 27407 27408 27409 27362 27363 27364 27365 27366 27367 29726 29727 29728 29729 29730 29731 27542 27543 27544 27545 27546 27547 27584 27585 27586 27587 27588 27589 48 27722 27723 27724 27725 27726 27727 29732 29733 29734 29735 29736 29737 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 31274 31275 31276 31277 31278 31279 27734 27735 27736 27737 27738 27739 27728 27729 27730 27731 27732 27733 48 27884 27885 27886 27887 27888 27889 29738 29739 29740 29741 29742 29743 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 31286 31287 31288 31289 31290 31291 27896 27897 27898 27899 27900 27901 27890 27891 27892 27893 27894 27895 48 28058 28059 28060 28061 28062 28063 29744 29745 29746 29747 29748 29749 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 31298 31299 31300 31301 31302 31303 28070 28071 28072 28073 28074 28075 28064 28065 28066 28067 28068 28069 48 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 27926 27927 27928 27929 27930 27931 27884 27885 27886 27887 27888 27889 29744 29745 29746 29747 29748 29749 28058 28059 28060 28061 28062 28063 28100 28101 28102 28103 28104 28105 48 28232 28233 28234 28235 28236 28237 29750 29751 29752 29753 29754 29755 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 28075 31310 31311 31312 31313 31314 31315 28244 28245 28246 28247 28248 28249 28238 28239 28240 28241 28242 28243 48 20780 20781 20782 20783 20784 20785 29756 29757 29758 29759 29760 29761 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 28249 31322 31323 31324 31325 31326 31327 28400 28401 28402 28403 28404 28405 28394 28395 28396 28397 28398 28399 48 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 28405 31334 31335 31336 31337 31338 31339 28544 28545 28546 28547 28548 28549 28538 28539 28540 28541 28542 28543 48 29366 29367 29368 29369 29370 29371 29408 29409 29410 29411 29412 29413 7724 7725 7726 7727 7728 7729 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 32378 32379 32380 32381 32382 32383 877 878 879 880 881 882 32384 32385 32386 32387 32388 32389 48 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20768 20769 20770 20771 20772 20773 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 28549 31346 31347 31348 31349 31350 31351 28670 28671 28672 28673 28674 28675 28664 28665 28666 28667 28668 28669 36 29366 29367 29368 29369 29370 29371 877 878 879 880 881 882 29210 29211 29212 29213 29214 29215 32384 32385 32386 32387 32388 32389 32390 32391 32392 32393 32394 32395 29774 29775 29776 29777 29778 29779 48 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20810 20811 20812 20813 20814 20815 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 28675 31352 31353 31354 31355 31356 31357 28796 28797 28798 28799 28800 28801 28790 28791 28792 28793 28794 28795 48 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20834 20835 20836 20837 20838 20839 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 28801 31358 31359 31360 31361 31362 31363 28922 28923 28924 28925 28926 28927 28916 28917 28918 28919 28920 28921 48 29054 29055 29056 29057 29058 29059 29768 29769 29770 29771 29772 29773 29210 29211 29212 29213 29214 29215 32390 32391 32392 32393 32394 32395 877 878 879 880 881 882 32396 32397 32398 32399 32400 32401 865 866 867 868 869 870 32402 32403 32404 32405 32406 32407 48 29054 29055 29056 29057 29058 29059 29762 29763 29764 29765 29766 29767 20858 20859 20860 20861 20862 20863 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 28927 31370 31371 31372 31373 31374 31375 29066 29067 29068 29069 29070 29071 29060 29061 29062 29063 29064 29065 48 29210 29211 29212 29213 29214 29215 29768 29769 29770 29771 29772 29773 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 31382 31383 31384 31385 31386 31387 29222 29223 29224 29225 29226 29227 29216 29217 29218 29219 29220 29221 48 20858 20859 20860 20861 20862 20863 29762 29763 29764 29765 29766 29767 29054 29055 29056 29057 29058 29059 32402 32403 32404 32405 32406 32407 865 866 867 868 869 870 32408 32409 32410 32411 32412 32413 853 854 855 856 857 858 20870 20871 20872 20873 20874 20875 48 29366 29367 29368 29369 29370 29371 29774 29775 29776 29777 29778 29779 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 29227 31394 31395 31396 31397 31398 31399 29378 29379 29380 29381 29382 29383 29372 29373 29374 29375 29376 29377 48 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29791 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 31412 31413 31414 31415 31416 31417 31406 31407 31408 31409 31410 31411 32414 32415 32416 32417 32418 32419 48 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 21554 21555 21556 21557 21558 21559 32420 32421 32422 32423 32424 32425 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 30907 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 48 21578 21579 21580 21581 21582 21583 22154 22155 22156 22157 22158 22159 22136 22137 22138 22139 22140 22141 22604 22605 22606 22607 22608 22609 22598 22599 22600 22601 22602 22603 30932 30933 30934 30935 30936 30937 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 48 21602 21603 21604 21605 21606 21607 22160 22161 22162 22163 22164 22165 21578 21579 21580 21581 21582 21583 22766 22767 22768 22769 22770 22771 22760 22761 22762 22763 22764 22765 30944 30945 30946 30947 30948 30949 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 48 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 22160 22161 22162 22163 22164 22165 21602 21603 21604 21605 21606 21607 21596 21597 21598 21599 21600 21601 48 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 21602 21603 21604 21605 21606 21607 22946 22947 22948 22949 22950 22951 22940 22941 22942 22943 22944 22945 30956 30957 30958 30959 30960 30961 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 48 21626 21627 21628 21629 21630 21631 22184 22185 22186 22187 22188 22189 22166 22167 22168 22169 22170 22171 23126 23127 23128 23129 23130 23131 23120 23121 23122 23123 23124 23125 30968 30969 30970 30971 30972 30973 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 48 21650 21651 21652 21653 21654 21655 22190 22191 22192 22193 22194 22195 21626 21627 21628 21629 21630 21631 23288 23289 23290 23291 23292 23293 23282 23283 23284 23285 23286 23287 30980 30981 30982 30983 30984 30985 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 48 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 22190 22191 22192 22193 22194 22195 21650 21651 21652 21653 21654 21655 21644 21645 21646 21647 21648 21649 48 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 21650 21651 21652 21653 21654 21655 23462 23463 23464 23465 23466 23467 23456 23457 23458 23459 23460 23461 30992 30993 30994 30995 30996 30997 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 48 21674 21675 21676 21677 21678 21679 22214 22215 22216 22217 22218 22219 22196 22197 22198 22199 22200 22201 23642 23643 23644 23645 23646 23647 23636 23637 23638 23639 23640 23641 31004 31005 31006 31007 31008 31009 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 48 21698 21699 21700 21701 21702 21703 22220 22221 22222 22223 22224 22225 21674 21675 21676 21677 21678 21679 23804 23805 23806 23807 23808 23809 23798 23799 23800 23801 23802 23803 31016 31017 31018 31019 31020 31021 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 48 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 22220 22221 22222 22223 22224 22225 21698 21699 21700 21701 21702 21703 21692 21693 21694 21695 21696 21697 48 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 21698 21699 21700 21701 21702 21703 23978 23979 23980 23981 23982 23983 23972 23973 23974 23975 23976 23977 31028 31029 31030 31031 31032 31033 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 48 21722 21723 21724 21725 21726 21727 22244 22245 22246 22247 22248 22249 22226 22227 22228 22229 22230 22231 24152 24153 24154 24155 24156 24157 24146 24147 24148 24149 24150 24151 31040 31041 31042 31043 31044 31045 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 48 21746 21747 21748 21749 21750 21751 22250 22251 22252 22253 22254 22255 21722 21723 21724 21725 21726 21727 24314 24315 24316 24317 24318 24319 24308 24309 24310 24311 24312 24313 31052 31053 31054 31055 31056 31057 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 48 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 22250 22251 22252 22253 22254 22255 21746 21747 21748 21749 21750 21751 21740 21741 21742 21743 21744 21745 48 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 21746 21747 21748 21749 21750 21751 24488 24489 24490 24491 24492 24493 24482 24483 24484 24485 24486 24487 31064 31065 31066 31067 31068 31069 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 48 21770 21771 21772 21773 21774 21775 22274 22275 22276 22277 22278 22279 22256 22257 22258 22259 22260 22261 24668 24669 24670 24671 24672 24673 24662 24663 24664 24665 24666 24667 31076 31077 31078 31079 31080 31081 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 48 21794 21795 21796 21797 21798 21799 22280 22281 22282 22283 22284 22285 21770 21771 21772 21773 21774 21775 24830 24831 24832 24833 24834 24835 24824 24825 24826 24827 24828 24829 31088 31089 31090 31091 31092 31093 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 48 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 22280 22281 22282 22283 22284 22285 21794 21795 21796 21797 21798 21799 21788 21789 21790 21791 21792 21793 48 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 21794 21795 21796 21797 21798 21799 25004 25005 25006 25007 25008 25009 24998 24999 25000 25001 25002 25003 31100 31101 31102 31103 31104 31105 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 48 21818 21819 21820 21821 21822 21823 22304 22305 22306 22307 22308 22309 22286 22287 22288 22289 22290 22291 25178 25179 25180 25181 25182 25183 25172 25173 25174 25175 25176 25177 31112 31113 31114 31115 31116 31117 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 48 21842 21843 21844 21845 21846 21847 22310 22311 22312 22313 22314 22315 21818 21819 21820 21821 21822 21823 25340 25341 25342 25343 25344 25345 25334 25335 25336 25337 25338 25339 31124 31125 31126 31127 31128 31129 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 25519 48 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 22310 22311 22312 22313 22314 22315 21842 21843 21844 21845 21846 21847 21836 21837 21838 21839 21840 21841 48 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 21842 21843 21844 21845 21846 21847 25514 25515 25516 25517 25518 25519 25508 25509 25510 25511 25512 25513 31136 31137 31138 31139 31140 31141 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 25699 48 21866 21867 21868 21869 21870 21871 22334 22335 22336 22337 22338 22339 22316 22317 22318 22319 22320 22321 25694 25695 25696 25697 25698 25699 25688 25689 25690 25691 25692 25693 31148 31149 31150 31151 31152 31153 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 25861 48 21890 21891 21892 21893 21894 21895 22340 22341 22342 22343 22344 22345 21866 21867 21868 21869 21870 21871 25856 25857 25858 25859 25860 25861 25850 25851 25852 25853 25854 25855 31160 31161 31162 31163 31164 31165 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 26035 48 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 22340 22341 22342 22343 22344 22345 21890 21891 21892 21893 21894 21895 21884 21885 21886 21887 21888 21889 48 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 21890 21891 21892 21893 21894 21895 26030 26031 26032 26033 26034 26035 26024 26025 26026 26027 26028 26029 31172 31173 31174 31175 31176 31177 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 26209 48 21914 21915 21916 21917 21918 21919 22364 22365 22366 22367 22368 22369 22346 22347 22348 22349 22350 22351 26204 26205 26206 26207 26208 26209 26198 26199 26200 26201 26202 26203 31184 31185 31186 31187 31188 31189 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 26371 48 21938 21939 21940 21941 21942 21943 22370 22371 22372 22373 22374 22375 21914 21915 21916 21917 21918 21919 26366 26367 26368 26369 26370 26371 26360 26361 26362 26363 26364 26365 31196 31197 31198 31199 31200 31201 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 26545 48 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 22370 22371 22372 22373 22374 22375 21938 21939 21940 21941 21942 21943 21932 21933 21934 21935 21936 21937 48 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 21938 21939 21940 21941 21942 21943 26540 26541 26542 26543 26544 26545 26534 26535 26536 26537 26538 26539 31208 31209 31210 31211 31212 31213 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 48 21962 21963 21964 21965 21966 21967 22394 22395 22396 22397 22398 22399 22376 22377 22378 22379 22380 22381 26720 26721 26722 26723 26724 26725 26714 26715 26716 26717 26718 26719 31220 31221 31222 31223 31224 31225 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 26887 48 21986 21987 21988 21989 21990 21991 22400 22401 22402 22403 22404 22405 21962 21963 21964 21965 21966 21967 26882 26883 26884 26885 26886 26887 26876 26877 26878 26879 26880 26881 31232 31233 31234 31235 31236 31237 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 48 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 22400 22401 22402 22403 22404 22405 21986 21987 21988 21989 21990 21991 21980 21981 21982 21983 21984 21985 48 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 21986 21987 21988 21989 21990 21991 27056 27057 27058 27059 27060 27061 27050 27051 27052 27053 27054 27055 31244 31245 31246 31247 31248 31249 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 27235 48 22010 22011 22012 22013 22014 22015 22424 22425 22426 22427 22428 22429 22406 22407 22408 22409 22410 22411 27230 27231 27232 27233 27234 27235 27224 27225 27226 27227 27228 27229 31256 31257 31258 31259 31260 31261 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 48 22034 22035 22036 22037 22038 22039 22430 22431 22432 22433 22434 22435 22010 22011 22012 22013 22014 22015 27392 27393 27394 27395 27396 27397 27386 27387 27388 27389 27390 27391 31268 31269 31270 31271 31272 31273 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 48 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22430 22431 22432 22433 22434 22435 22034 22035 22036 22037 22038 22039 22028 22029 22030 22031 22032 22033 48 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22034 22035 22036 22037 22038 22039 27572 27573 27574 27575 27576 27577 27566 27567 27568 27569 27570 27571 31280 31281 31282 31283 31284 31285 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 48 22058 22059 22060 22061 22062 22063 22454 22455 22456 22457 22458 22459 22436 22437 22438 22439 22440 22441 27752 27753 27754 27755 27756 27757 27746 27747 27748 27749 27750 27751 31292 31293 31294 31295 31296 31297 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 27919 48 22082 22083 22084 22085 22086 22087 22460 22461 22462 22463 22464 22465 22058 22059 22060 22061 22062 22063 27914 27915 27916 27917 27918 27919 27908 27909 27910 27911 27912 27913 31304 31305 31306 31307 31308 31309 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 28093 48 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22460 22461 22462 22463 22464 22465 22082 22083 22084 22085 22086 22087 22076 22077 22078 22079 22080 22081 48 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22082 22083 22084 22085 22086 22087 28088 28089 28090 28091 28092 28093 28082 28083 28084 28085 28086 28087 31316 31317 31318 31319 31320 31321 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 28267 48 20666 20667 20668 20669 20670 20671 22484 22485 22486 22487 22488 22489 22466 22467 22468 22469 22470 22471 28262 28263 28264 28265 28266 28267 28256 28257 28258 28259 28260 28261 31328 31329 31330 31331 31332 31333 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 28423 48 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 28418 28419 28420 28421 28422 28423 28412 28413 28414 28415 28416 28417 31340 31341 31342 31343 31344 31345 21158 21159 21160 21161 21162 21163 21374 21375 21376 21377 21378 21379 48 22118 22119 22120 22121 22122 22123 22112 22113 22114 22115 22116 22117 6056 6057 6058 6059 6060 6061 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 32426 32427 32428 32429 32430 32431 883 884 885 886 887 888 32432 32433 32434 32435 32436 32437 48 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20654 20655 20656 20657 20658 20659 21374 21375 21376 21377 21378 21379 21158 21159 21160 21161 21162 21163 21170 21171 21172 21173 21174 21175 21134 21135 21136 21137 21138 21139 21440 21441 21442 21443 21444 21445 36 22118 22119 22120 22121 22122 22123 883 884 885 886 887 888 22532 22533 22534 22535 22536 22537 32432 32433 32434 32435 32436 32437 32438 32439 32440 32441 32442 32443 22550 22551 22552 22553 22554 22555 48 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20696 20697 20698 20699 20700 20701 21440 21441 21442 21443 21444 21445 21134 21135 21136 21137 21138 21139 21188 21189 21190 21191 21192 21193 21176 21177 21178 21179 21180 21181 21542 21543 21544 21545 21546 21547 48 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20720 20721 20722 20723 20724 20725 21542 21543 21544 21545 21546 21547 21176 21177 21178 21179 21180 21181 31364 31365 31366 31367 31368 31369 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 28945 48 22514 22515 22516 22517 22518 22519 22538 22539 22540 22541 22542 22543 22532 22533 22534 22535 22536 22537 32438 32439 32440 32441 32442 32443 883 884 885 886 887 888 32444 32445 32446 32447 32448 32449 871 872 873 874 875 876 32450 32451 32452 32453 32454 32455 48 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 20744 20745 20746 20747 20748 20749 28940 28941 28942 28943 28944 28945 28934 28935 28936 28937 28938 28939 31376 31377 31378 31379 31380 31381 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 29089 48 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22514 22515 22516 22517 22518 22519 29084 29085 29086 29087 29088 29089 29078 29079 29080 29081 29082 29083 31388 31389 31390 31391 31392 31393 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 29245 48 20744 20745 20746 20747 20748 20749 22520 22521 22522 22523 22524 22525 22514 22515 22516 22517 22518 22519 32450 32451 32452 32453 32454 32455 871 872 873 874 875 876 32456 32457 32458 32459 32460 32461 859 860 861 862 863 864 20756 20757 20758 20759 20760 20761 48 22118 22119 22120 22121 22122 22123 22550 22551 22552 22553 22554 22555 22532 22533 22534 22535 22536 22537 29240 29241 29242 29243 29244 29245 29234 29235 29236 29237 29238 29239 31400 31401 31402 31403 31404 31405 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 29401 48 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22118 22119 22120 22121 22122 22123 29396 29397 29398 29399 29400 29401 29390 29391 29392 29393 29394 29395 31424 31425 31426 31427 31428 31429 31418 31419 31420 31421 31422 31423 32462 32463 32464 32465 32466 32467 48 4256 4257 4258 4259 4260 4261 5804 5805 5806 5807 5808 5809 5246 5247 5248 5249 5250 5251 32468 32469 32470 32471 32472 32473 1519 1520 1521 1522 1523 1524 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 32491 48 4244 4245 4246 4247 4248 4249 5798 5799 5800 5801 5802 5803 5234 5235 5236 5237 5238 5239 32492 32493 32494 32495 32496 32497 1531 1532 1533 1534 1535 1536 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 32515 48 4142 4143 4144 4145 4146 4147 5792 5793 5794 5795 5796 5797 5216 5217 5218 5219 5220 5221 32516 32517 32518 32519 32520 32521 1555 1556 1557 1558 1559 1560 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 32539 48 1741 1742 1743 1744 1745 1746 5786 5787 5788 5789 5790 5791 5204 5205 5206 5207 5208 5209 32540 32541 32542 32543 32544 32545 1567 1568 1569 1570 1571 1572 32552 32553 32554 32555 32556 32557 32546 32547 32548 32549 32550 32551 32558 32559 32560 32561 32562 32563 48 32480 32481 32482 32483 32484 32485 32474 32475 32476 32477 32478 32479 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1507 1508 1509 1510 1511 1512 22568 22569 22570 22571 22572 22573 22556 22557 22558 22559 22560 22561 32564 32565 32566 32567 32568 32569 48 32504 32505 32506 32507 32508 32509 32498 32499 32500 32501 32502 32503 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1519 1520 1521 1522 1523 1524 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32485 32570 32571 32572 32573 32574 32575 48 32582 32583 32584 32585 32586 32587 32576 32577 32578 32579 32580 32581 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1531 1532 1533 1534 1535 1536 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32509 32588 32589 32590 32591 32592 32593 48 32528 32529 32530 32531 32532 32533 32522 32523 32524 32525 32526 32527 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1543 1544 1545 1546 1547 1548 32576 32577 32578 32579 32580 32581 32582 32583 32584 32585 32586 32587 32594 32595 32596 32597 32598 32599 48 32546 32547 32548 32549 32550 32551 32552 32553 32554 32555 32556 32557 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1555 1556 1557 1558 1559 1560 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32533 32600 32601 32602 32603 32604 32605 48 29780 29781 29782 29783 29784 29785 32414 32415 32416 32417 32418 32419 31406 31407 31408 31409 31410 31411 31430 31431 31432 31433 31434 31435 31418 31419 31420 31421 31422 31423 32462 32463 32464 32465 32466 32467 22556 22557 22558 22559 22560 22561 29792 29793 29794 29795 29796 29797 48 30038 30039 30040 30041 30042 30043 32366 32367 32368 32369 32370 32371 31700 31701 31702 31703 31704 31705 31712 31713 31714 31715 31716 31717 31406 31407 31408 31409 31410 31411 32414 32415 32416 32417 32418 32419 29780 29781 29782 29783 29784 29785 30050 30051 30052 30053 30054 30055 36 31700 31701 31702 31703 31704 31705 30038 30039 30040 30041 30042 30043 30296 30297 30298 30299 30300 30301 32366 32367 32368 32369 32370 32371 30308 30309 30310 30311 30312 30313 31982 31983 31984 31985 31986 31987 48 5180 5181 5182 5183 5184 5185 32276 32277 32278 32279 32280 32281 30860 30861 30862 30863 30864 30865 30872 30873 30874 30875 30876 30877 30578 30579 30580 30581 30582 30583 32252 32253 32254 32255 32256 32257 5048 5049 5050 5051 5052 5053 5618 5619 5620 5621 5622 5623 48 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 32623 32630 32631 32632 32633 32634 32635 32624 32625 32626 32627 32628 32629 32636 32637 32638 32639 32640 32641 32480 32481 32482 32483 32484 32485 32642 32643 32644 32645 32646 32647 48 4520 4521 4522 4523 4524 4525 32648 32649 32650 32651 32652 32653 32606 32607 32608 32609 32610 32611 32642 32643 32644 32645 32646 32647 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 32491 4256 4257 4258 4259 4260 4261 5708 5709 5710 5711 5712 5713 48 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32677 32618 32619 32620 32621 32622 32623 32612 32613 32614 32615 32616 32617 32606 32607 32608 32609 32610 32611 32678 32679 32680 32681 32682 32683 48 5666 5667 5668 5669 5670 5671 32684 32685 32686 32687 32688 32689 32654 32655 32656 32657 32658 32659 32678 32679 32680 32681 32682 32683 32606 32607 32608 32609 32610 32611 32648 32649 32650 32651 32652 32653 4520 4521 4522 4523 4524 4525 5690 5691 5692 5693 5694 5695 36 32666 32667 32668 32669 32670 32671 32654 32655 32656 32657 32658 32659 32696 32697 32698 32699 32700 32701 32660 32661 32662 32663 32664 32665 32702 32703 32704 32705 32706 32707 32690 32691 32692 32693 32694 32695 48 4898 4899 4900 4901 4902 4903 32708 32709 32710 32711 32712 32713 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32707 32654 32655 32656 32657 32658 32659 32684 32685 32686 32687 32688 32689 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 48 5018 5019 5020 5021 5022 5023 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32731 32696 32697 32698 32699 32700 32701 32708 32709 32710 32711 32712 32713 4898 4899 4900 4901 4902 4903 5636 5637 5638 5639 5640 5641 48 5150 5151 5152 5153 5154 5155 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32749 32720 32721 32722 32723 32724 32725 32714 32715 32716 32717 32718 32719 5018 5019 5020 5021 5022 5023 5612 5613 5614 5615 5616 5617 48 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 32767 32774 32775 32776 32777 32778 32779 32768 32769 32770 32771 32772 32773 32780 32781 32782 32783 32784 32785 32504 32505 32506 32507 32508 32509 32786 32787 32788 32789 32790 32791 48 4508 4509 4510 4511 4512 4513 32792 32793 32794 32795 32796 32797 32750 32751 32752 32753 32754 32755 32786 32787 32788 32789 32790 32791 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 32515 4244 4245 4246 4247 4248 4249 5702 5703 5704 5705 5706 5707 48 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32821 32762 32763 32764 32765 32766 32767 32756 32757 32758 32759 32760 32761 32750 32751 32752 32753 32754 32755 32822 32823 32824 32825 32826 32827 36 32810 32811 32812 32813 32814 32815 32798 32799 32800 32801 32802 32803 32834 32835 32836 32837 32838 32839 32804 32805 32806 32807 32808 32809 32840 32841 32842 32843 32844 32845 32828 32829 32830 32831 32832 32833 48 4988 4989 4990 4991 4992 4993 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32863 32834 32835 32836 32837 32838 32839 32864 32865 32866 32867 32868 32869 4886 4887 4888 4889 4890 4891 5630 5631 5632 5633 5634 5635 48 5120 5121 5122 5123 5124 5125 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32887 32852 32853 32854 32855 32856 32857 32846 32847 32848 32849 32850 32851 4988 4989 4990 4991 4992 4993 5606 5607 5608 5609 5610 5611 48 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 32905 32912 32913 32914 32915 32916 32917 32906 32907 32908 32909 32910 32911 32918 32919 32920 32921 32922 32923 32582 32583 32584 32585 32586 32587 32924 32925 32926 32927 32928 32929 48 32930 32931 32932 32933 32934 32935 32936 32937 32938 32939 32940 32941 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32953 32900 32901 32902 32903 32904 32905 32894 32895 32896 32897 32898 32899 32888 32889 32890 32891 32892 32893 32954 32955 32956 32957 32958 32959 36 32942 32943 32944 32945 32946 32947 32930 32931 32932 32933 32934 32935 32966 32967 32968 32969 32970 32971 32936 32937 32938 32939 32940 32941 32972 32973 32974 32975 32976 32977 32960 32961 32962 32963 32964 32965 48 5078 5079 5080 5081 5082 5083 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32989 32996 32997 32998 32999 33000 33001 32990 32991 32992 32993 32994 32995 33002 33003 33004 33005 33006 33007 4946 4947 4948 4949 4950 4951 5600 5601 5602 5603 5604 5605 48 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33025 33032 33033 33034 33035 33036 33037 33026 33027 33028 33029 33030 33031 33038 33039 33040 33041 33042 33043 32528 32529 32530 32531 32532 32533 33044 33045 33046 33047 33048 33049 48 4406 4407 4408 4409 4410 4411 33050 33051 33052 33053 33054 33055 33008 33009 33010 33011 33012 33013 33044 33045 33046 33047 33048 33049 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 32539 4142 4143 4144 4145 4146 4147 5738 5739 5740 5741 5742 5743 36 33020 33021 33022 33023 33024 33025 33008 33009 33010 33011 33012 33013 33062 33063 33064 33065 33066 33067 33014 33015 33016 33017 33018 33019 33068 33069 33070 33071 33072 33073 33056 33057 33058 33059 33060 33061 48 4670 4671 4672 4673 4674 4675 33074 33075 33076 33077 33078 33079 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33073 33008 33009 33010 33011 33012 33013 33050 33051 33052 33053 33054 33055 4406 4407 4408 4409 4410 4411 5732 5733 5734 5735 5736 5737 36 33062 33063 33064 33065 33066 33067 4670 4671 4672 4673 4674 4675 33086 33087 33088 33089 33090 33091 33074 33075 33076 33077 33078 33079 33092 33093 33094 33095 33096 33097 33080 33081 33082 33083 33084 33085 36 33086 33087 33088 33089 33090 33091 4670 4671 4672 4673 4674 4675 4838 4839 4840 4841 4842 4843 33092 33093 33094 33095 33096 33097 5726 5727 5728 5729 5730 5731 33098 33099 33100 33101 33102 33103 48 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33121 33128 33129 33130 33131 33132 33133 33122 33123 33124 33125 33126 33127 33134 33135 33136 33137 33138 33139 32546 32547 32548 32549 32550 32551 33140 33141 33142 33143 33144 33145 48 1729 1730 1731 1732 1733 1734 33146 33147 33148 33149 33150 33151 33104 33105 33106 33107 33108 33109 33140 33141 33142 33143 33144 33145 32546 32547 32548 32549 32550 32551 32558 32559 32560 32561 32562 32563 1741 1742 1743 1744 1745 1746 5696 5697 5698 5699 5700 5701 36 33116 33117 33118 33119 33120 33121 33158 33159 33160 33161 33162 33163 33104 33105 33106 33107 33108 33109 33152 33153 33154 33155 33156 33157 33164 33165 33166 33167 33168 33169 33110 33111 33112 33113 33114 33115 36 33158 33159 33160 33161 33162 33163 33170 33171 33172 33173 33174 33175 33104 33105 33106 33107 33108 33109 33176 33177 33178 33179 33180 33181 33182 33183 33184 33185 33186 33187 33164 33165 33166 33167 33168 33169 48 1729 1730 1731 1732 1733 1734 33146 33147 33148 33149 33150 33151 33104 33105 33106 33107 33108 33109 33182 33183 33184 33185 33186 33187 33170 33171 33172 33173 33174 33175 33188 33189 33190 33191 33192 33193 1717 1718 1719 1720 1721 1722 5678 5679 5680 5681 5682 5683 36 33170 33171 33172 33173 33174 33175 1717 1718 1719 1720 1721 1722 1705 1706 1707 1708 1709 1710 33188 33189 33190 33191 33192 33193 5642 5643 5644 5645 5646 5647 33194 33195 33196 33197 33198 33199 48 32606 32607 32608 32609 32610 32611 32642 32643 32644 32645 32646 32647 32480 32481 32482 32483 32484 32485 32564 32565 32566 32567 32568 32569 22556 22557 22558 22559 22560 22561 29792 29793 29794 29795 29796 29797 29780 29781 29782 29783 29784 29785 33200 33201 33202 33203 33204 33205 48 32750 32751 32752 32753 32754 32755 32786 32787 32788 32789 32790 32791 32504 32505 32506 32507 32508 32509 32570 32571 32572 32573 32574 32575 32480 32481 32482 32483 32484 32485 32642 32643 32644 32645 32646 32647 32606 32607 32608 32609 32610 32611 33206 33207 33208 33209 33210 33211 48 32888 32889 32890 32891 32892 32893 32924 32925 32926 32927 32928 32929 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32593 32504 32505 32506 32507 32508 32509 32786 32787 32788 32789 32790 32791 32750 32751 32752 32753 32754 32755 33212 33213 33214 33215 33216 33217 48 33008 33009 33010 33011 33012 33013 33044 33045 33046 33047 33048 33049 32528 32529 32530 32531 32532 32533 32594 32595 32596 32597 32598 32599 32582 32583 32584 32585 32586 32587 32924 32925 32926 32927 32928 32929 32888 32889 32890 32891 32892 32893 33218 33219 33220 33221 33222 33223 48 33104 33105 33106 33107 33108 33109 33140 33141 33142 33143 33144 33145 32546 32547 32548 32549 32550 32551 32600 32601 32602 32603 32604 32605 32528 32529 32530 32531 32532 32533 33044 33045 33046 33047 33048 33049 33008 33009 33010 33011 33012 33013 33224 33225 33226 33227 33228 33229 48 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 33253 32546 32547 32548 32549 32550 32551 33140 33141 33142 33143 33144 33145 33104 33105 33106 33107 33108 33109 33254 33255 33256 33257 33258 33259 48 32654 32655 32656 32657 32658 32659 32678 32679 32680 32681 32682 32683 32606 32607 32608 32609 32610 32611 33200 33201 33202 33203 33204 33205 29780 29781 29782 29783 29784 29785 30050 30051 30052 30053 30054 30055 30038 30039 30040 30041 30042 30043 33260 33261 33262 33263 33264 33265 48 32798 32799 32800 32801 32802 32803 32822 32823 32824 32825 32826 32827 32750 32751 32752 32753 32754 32755 33206 33207 33208 33209 33210 33211 32606 32607 32608 32609 32610 32611 32678 32679 32680 32681 32682 32683 32654 32655 32656 32657 32658 32659 33266 33267 33268 33269 33270 33271 48 32930 32931 32932 32933 32934 32935 32954 32955 32956 32957 32958 32959 32888 32889 32890 32891 32892 32893 33212 33213 33214 33215 33216 33217 32750 32751 32752 32753 32754 32755 32822 32823 32824 32825 32826 32827 32798 32799 32800 32801 32802 32803 33272 33273 33274 33275 33276 33277 48 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33073 33008 33009 33010 33011 33012 33013 33218 33219 33220 33221 33222 33223 32888 32889 32890 32891 32892 32893 32954 32955 32956 32957 32958 32959 32930 32931 32932 32933 32934 32935 33278 33279 33280 33281 33282 33283 48 33158 33159 33160 33161 33162 33163 33164 33165 33166 33167 33168 33169 33104 33105 33106 33107 33108 33109 33224 33225 33226 33227 33228 33229 33008 33009 33010 33011 33012 33013 33068 33069 33070 33071 33072 33073 33062 33063 33064 33065 33066 33067 33284 33285 33286 33287 33288 33289 48 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33301 33230 33231 33232 33233 33234 33235 33254 33255 33256 33257 33258 33259 33104 33105 33106 33107 33108 33109 33164 33165 33166 33167 33168 33169 33158 33159 33160 33161 33162 33163 33302 33303 33304 33305 33306 33307 48 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32707 32654 32655 32656 32657 32658 32659 33260 33261 33262 33263 33264 33265 30038 30039 30040 30041 30042 30043 30308 30309 30310 30311 30312 30313 30296 30297 30298 30299 30300 30301 33308 33309 33310 33311 33312 33313 48 32834 32835 32836 32837 32838 32839 32840 32841 32842 32843 32844 32845 32798 32799 32800 32801 32802 32803 33266 33267 33268 33269 33270 33271 32654 32655 32656 32657 32658 32659 32702 32703 32704 32705 32706 32707 32696 32697 32698 32699 32700 32701 33314 33315 33316 33317 33318 33319 48 32966 32967 32968 32969 32970 32971 32972 32973 32974 32975 32976 32977 32930 32931 32932 32933 32934 32935 33272 33273 33274 33275 33276 33277 32798 32799 32800 32801 32802 32803 32840 32841 32842 32843 32844 32845 32834 32835 32836 32837 32838 32839 33320 33321 33322 33323 33324 33325 48 33086 33087 33088 33089 33090 33091 33080 33081 33082 33083 33084 33085 33062 33063 33064 33065 33066 33067 33278 33279 33280 33281 33282 33283 32930 32931 32932 32933 32934 32935 32972 32973 32974 32975 32976 32977 32966 32967 32968 32969 32970 32971 33326 33327 33328 33329 33330 33331 48 4934 4935 4936 4937 4938 4939 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33349 33086 33087 33088 33089 33090 33091 33098 33099 33100 33101 33102 33103 4838 4839 4840 4841 4842 4843 5498 5499 5500 5501 5502 5503 48 1657 1658 1659 1660 1661 1662 5492 5493 5494 5495 5496 5497 4934 4935 4936 4937 4938 4939 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33356 33357 33358 33359 33360 33361 33350 33351 33352 33353 33354 33355 33362 33363 33364 33365 33366 33367 47 33230 33231 33232 33233 33234 33235 33368 33369 33370 33371 33372 33373 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33396 33242 33243 33244 33245 33246 33247 33236 33237 33238 33239 33240 33241 48 1681 1682 1683 1684 1685 1686 33397 33398 33399 33400 33401 33402 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33247 33403 33404 33405 33406 33407 33408 1693 1694 1695 1696 1697 1698 5486 5487 5488 5489 5490 5491 36 33374 33375 33376 33377 33378 33379 33230 33231 33232 33233 33234 33235 33290 33291 33292 33293 33294 33295 33368 33369 33370 33371 33372 33373 33296 33297 33298 33299 33300 33301 33409 33410 33411 33412 33413 33414 48 1669 1670 1671 1672 1673 1674 33415 33416 33417 33418 33419 33420 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33301 33230 33231 33232 33233 33234 33235 33397 33398 33399 33400 33401 33402 1681 1682 1683 1684 1685 1686 5474 5475 5476 5477 5478 5479 48 32618 32619 32620 32621 32622 32623 32630 32631 32632 32633 32634 32635 32624 32625 32626 32627 32628 32629 33421 33422 33423 33424 33425 33426 31418 31419 31420 31421 31422 31423 31430 31431 31432 31433 31434 31435 31406 31407 31408 31409 31410 31411 33427 33428 33429 33430 33431 33432 48 32762 32763 32764 32765 32766 32767 32774 32775 32776 32777 32778 32779 32768 32769 32770 32771 32772 32773 33433 33434 33435 33436 33437 33438 32624 32625 32626 32627 32628 32629 32630 32631 32632 32633 32634 32635 32618 32619 32620 32621 32622 32623 33439 33440 33441 33442 33443 33444 48 32900 32901 32902 32903 32904 32905 32912 32913 32914 32915 32916 32917 32906 32907 32908 32909 32910 32911 33445 33446 33447 33448 33449 33450 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 32762 32763 32764 32765 32766 32767 33451 33452 33453 33454 33455 33456 48 33020 33021 33022 33023 33024 33025 33032 33033 33034 33035 33036 33037 33026 33027 33028 33029 33030 33031 33457 33458 33459 33460 33461 33462 32906 32907 32908 32909 32910 32911 32912 32913 32914 32915 32916 32917 32900 32901 32902 32903 32904 32905 33463 33464 33465 33466 33467 33468 48 33116 33117 33118 33119 33120 33121 33128 33129 33130 33131 33132 33133 33122 33123 33124 33125 33126 33127 33469 33470 33471 33472 33473 33474 33026 33027 33028 33029 33030 33031 33032 33033 33034 33035 33036 33037 33020 33021 33022 33023 33024 33025 33475 33476 33477 33478 33479 33480 47 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33481 33482 33483 33484 33485 33486 33122 33123 33124 33125 33126 33127 33128 33129 33130 33131 33132 33133 33116 33117 33118 33119 33120 33121 33487 33488 33489 33490 33491 33492 48 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32677 32618 32619 32620 32621 32622 32623 33427 33428 33429 33430 33431 33432 31406 31407 31408 31409 31410 31411 31712 31713 31714 31715 31716 31717 31700 31701 31702 31703 31704 31705 33493 33494 33495 33496 33497 33498 48 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32821 32762 32763 32764 32765 32766 32767 33439 33440 33441 33442 33443 33444 32618 32619 32620 32621 32622 32623 32672 32673 32674 32675 32676 32677 32666 32667 32668 32669 32670 32671 33499 33500 33501 33502 33503 33504 48 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32953 32900 32901 32902 32903 32904 32905 33451 33452 33453 33454 33455 33456 32762 32763 32764 32765 32766 32767 32816 32817 32818 32819 32820 32821 32810 32811 32812 32813 32814 32815 33505 33506 33507 33508 33509 33510 48 33062 33063 33064 33065 33066 33067 33056 33057 33058 33059 33060 33061 33020 33021 33022 33023 33024 33025 33463 33464 33465 33466 33467 33468 32900 32901 32902 32903 32904 32905 32948 32949 32950 32951 32952 32953 32942 32943 32944 32945 32946 32947 33511 33512 33513 33514 33515 33516 48 33158 33159 33160 33161 33162 33163 33152 33153 33154 33155 33156 33157 33116 33117 33118 33119 33120 33121 33475 33476 33477 33478 33479 33480 33020 33021 33022 33023 33024 33025 33056 33057 33058 33059 33060 33061 33062 33063 33064 33065 33066 33067 33284 33285 33286 33287 33288 33289 48 33290 33291 33292 33293 33294 33295 33409 33410 33411 33412 33413 33414 33374 33375 33376 33377 33378 33379 33487 33488 33489 33490 33491 33492 33116 33117 33118 33119 33120 33121 33152 33153 33154 33155 33156 33157 33158 33159 33160 33161 33162 33163 33302 33303 33304 33305 33306 33307 48 32696 32697 32698 32699 32700 32701 32690 32691 32692 32693 32694 32695 32666 32667 32668 32669 32670 32671 33493 33494 33495 33496 33497 33498 31700 31701 31702 31703 31704 31705 31982 31983 31984 31985 31986 31987 30296 30297 30298 30299 30300 30301 33308 33309 33310 33311 33312 33313 48 32834 32835 32836 32837 32838 32839 32828 32829 32830 32831 32832 32833 32810 32811 32812 32813 32814 32815 33499 33500 33501 33502 33503 33504 32666 32667 32668 32669 32670 32671 32690 32691 32692 32693 32694 32695 32696 32697 32698 32699 32700 32701 33314 33315 33316 33317 33318 33319 48 32966 32967 32968 32969 32970 32971 32960 32961 32962 32963 32964 32965 32942 32943 32944 32945 32946 32947 33505 33506 33507 33508 33509 33510 32810 32811 32812 32813 32814 32815 32828 32829 32830 32831 32832 32833 32834 32835 32836 32837 32838 32839 33320 33321 33322 33323 33324 33325 48 33086 33087 33088 33089 33090 33091 33080 33081 33082 33083 33084 33085 33062 33063 33064 33065 33066 33067 33511 33512 33513 33514 33515 33516 32942 32943 32944 32945 32946 32947 32960 32961 32962 32963 32964 32965 32966 32967 32968 32969 32970 32971 33326 33327 33328 33329 33330 33331 48 1705 1706 1707 1708 1709 1710 33194 33195 33196 33197 33198 33199 33170 33171 33172 33173 33174 33175 33517 33518 33519 33520 33521 33522 33062 33063 33064 33065 33066 33067 33080 33081 33082 33083 33084 33085 33086 33087 33088 33089 33090 33091 33523 33524 33525 33526 33527 33528 36 1705 1706 1707 1708 1709 1710 33170 33171 33172 33173 33174 33175 1669 1670 1671 1672 1673 1674 33194 33195 33196 33197 33198 33199 33529 33530 33531 33532 33533 33534 5342 5343 5344 5345 5346 5347 48 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32731 32696 32697 32698 32699 32700 32701 33308 33309 33310 33311 33312 33313 30296 30297 30298 30299 30300 30301 30590 30591 30592 30593 30594 30595 30578 30579 30580 30581 30582 30583 33535 33536 33537 33538 33539 33540 48 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32863 32834 32835 32836 32837 32838 32839 33314 33315 33316 33317 33318 33319 32696 32697 32698 32699 32700 32701 32726 32727 32728 32729 32730 32731 32720 32721 32722 32723 32724 32725 33541 33542 33543 33544 33545 33546 48 32990 32991 32992 32993 32994 32995 33547 33548 33549 33550 33551 33552 32966 32967 32968 32969 32970 32971 33320 33321 33322 33323 33324 33325 32834 32835 32836 32837 32838 32839 32858 32859 32860 32861 32862 32863 32852 32853 32854 32855 32856 32857 33553 33554 33555 33556 33557 33558 48 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33349 33086 33087 33088 33089 33090 33091 33326 33327 33328 33329 33330 33331 32966 32967 32968 32969 32970 32971 33547 33548 33549 33550 33551 33552 32990 32991 32992 32993 32994 32995 33559 33560 33561 33562 33563 33564 48 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32749 32720 32721 32722 32723 32724 32725 33535 33536 33537 33538 33539 33540 30578 30579 30580 30581 30582 30583 30872 30873 30874 30875 30876 30877 30860 30861 30862 30863 30864 30865 33565 33566 33567 33568 33569 33570 48 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32887 32852 32853 32854 32855 32856 32857 33541 33542 33543 33544 33545 33546 32720 32721 32722 32723 32724 32725 32744 32745 32746 32747 32748 32749 32738 32739 32740 32741 32742 32743 33571 33572 33573 33574 33575 33576 48 32984 32985 32986 32987 32988 32989 32996 32997 32998 32999 33000 33001 32990 32991 32992 32993 32994 32995 33553 33554 33555 33556 33557 33558 32852 32853 32854 32855 32856 32857 32882 32883 32884 32885 32886 32887 32876 32877 32878 32879 32880 32881 33577 33578 33579 33580 33581 33582 48 33350 33351 33352 33353 33354 33355 33356 33357 33358 33359 33360 33361 33338 33339 33340 33341 33342 33343 33559 33560 33561 33562 33563 33564 32990 32991 32992 32993 32994 32995 32996 32997 32998 32999 33000 33001 32984 32985 32986 32987 32988 32989 33583 33584 33585 33586 33587 33588 48 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 32468 32469 32470 32471 32472 32473 1519 1520 1521 1522 1523 1524 1537 1538 1539 1540 1541 1542 1531 1532 1533 1534 1535 1536 32492 32493 32494 32495 32496 32497 48 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 32516 32517 32518 32519 32520 32521 1555 1556 1557 1558 1559 1560 1573 1574 1575 1576 1577 1578 1567 1568 1569 1570 1571 1572 32540 32541 32542 32543 32544 32545 48 5150 5151 5152 5153 5154 5155 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 32276 32277 32278 32279 32280 32281 30860 30861 30862 30863 30864 30865 33565 33566 33567 33568 33569 33570 32738 32739 32740 32741 32742 32743 32732 32733 32734 32735 32736 32737 48 5120 5121 5122 5123 5124 5125 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 32743 33571 33572 33573 33574 33575 33576 32876 32877 32878 32879 32880 32881 32870 32871 32872 32873 32874 32875 48 5078 5079 5080 5081 5082 5083 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 32881 33577 33578 33579 33580 33581 33582 32984 32985 32986 32987 32988 32989 32978 32979 32980 32981 32982 32983 48 1657 1658 1659 1660 1661 1662 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32989 33583 33584 33585 33586 33587 33588 33350 33351 33352 33353 33354 33355 33362 33363 33364 33365 33366 33367 48 5018 5019 5020 5021 5022 5023 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 32252 32253 32254 32255 32256 32257 30578 30579 30580 30581 30582 30583 33535 33536 33537 33538 33539 33540 32720 32721 32722 32723 32724 32725 32714 32715 32716 32717 32718 32719 48 4988 4989 4990 4991 4992 4993 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 32725 33541 33542 33543 33544 33545 33546 32852 32853 32854 32855 32856 32857 32846 32847 32848 32849 32850 32851 48 4946 4947 4948 4949 4950 4951 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 32857 33553 33554 33555 33556 33557 33558 32990 32991 32992 32993 32994 32995 33002 33003 33004 33005 33006 33007 48 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 33002 33003 33004 33005 33006 33007 32990 32991 32992 32993 32994 32995 33559 33560 33561 33562 33563 33564 33338 33339 33340 33341 33342 33343 33332 33333 33334 33335 33336 33337 48 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 32708 32709 32710 32711 32712 32713 32696 32697 32698 32699 32700 32701 33314 33315 33316 33317 33318 33319 32834 32835 32836 32837 32838 32839 32864 32865 32866 32867 32868 32869 48 4838 4839 4840 4841 4842 4843 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 33589 33590 33591 33592 33593 33594 32966 32967 32968 32969 32970 32971 33326 33327 33328 33329 33330 33331 33086 33087 33088 33089 33090 33091 33098 33099 33100 33101 33102 33103 36 33086 33087 33088 33089 33090 33091 4838 4839 4840 4841 4842 4843 1705 1706 1707 1708 1709 1710 33098 33099 33100 33101 33102 33103 4850 4851 4852 4853 4854 4855 33523 33524 33525 33526 33527 33528 48 32654 32655 32656 32657 32658 32659 33260 33261 33262 33263 33264 33265 30038 30039 30040 30041 30042 30043 32366 32367 32368 32369 32370 32371 31700 31701 31702 31703 31704 31705 33493 33494 33495 33496 33497 33498 32666 32667 32668 32669 32670 32671 32660 32661 32662 32663 32664 32665 48 32798 32799 32800 32801 32802 32803 33266 33267 33268 33269 33270 33271 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 32671 33499 33500 33501 33502 33503 33504 32810 32811 32812 32813 32814 32815 32804 32805 32806 32807 32808 32809 48 32930 32931 32932 32933 32934 32935 33272 33273 33274 33275 33276 33277 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 32815 33505 33506 33507 33508 33509 33510 32942 32943 32944 32945 32946 32947 32936 32937 32938 32939 32940 32941 36 33170 33171 33172 33173 33174 33175 1717 1718 1719 1720 1721 1722 1669 1670 1671 1672 1673 1674 33188 33189 33190 33191 33192 33193 4730 4731 4732 4733 4734 4735 33529 33530 33531 33532 33533 33534 48 4670 4671 4672 4673 4674 4675 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 33595 33596 33597 33598 33599 33600 32930 32931 32932 32933 32934 32935 33278 33279 33280 33281 33282 33283 33062 33063 33064 33065 33066 33067 33074 33075 33076 33077 33078 33079 48 1669 1670 1671 1672 1673 1674 33415 33416 33417 33418 33419 33420 33290 33291 33292 33293 33294 33295 33302 33303 33304 33305 33306 33307 33158 33159 33160 33161 33162 33163 33176 33177 33178 33179 33180 33181 33170 33171 33172 33173 33174 33175 33529 33530 33531 33532 33533 33534 48 1717 1718 1719 1720 1721 1722 33188 33189 33190 33191 33192 33193 33170 33171 33172 33173 33174 33175 33517 33518 33519 33520 33521 33522 33062 33063 33064 33065 33066 33067 33074 33075 33076 33077 33078 33079 4670 4671 4672 4673 4674 4675 4682 4683 4684 4685 4686 4687 36 33158 33159 33160 33161 33162 33163 33062 33063 33064 33065 33066 33067 33170 33171 33172 33173 33174 33175 33284 33285 33286 33287 33288 33289 33517 33518 33519 33520 33521 33522 33176 33177 33178 33179 33180 33181 36 32942 32943 32944 32945 32946 32947 32930 32931 32932 32933 32934 32935 33062 33063 33064 33065 33066 33067 32936 32937 32938 32939 32940 32941 33278 33279 33280 33281 33282 33283 33511 33512 33513 33514 33515 33516 48 32606 32607 32608 32609 32610 32611 33200 33201 33202 33203 33204 33205 29780 29781 29782 29783 29784 29785 32414 32415 32416 32417 32418 32419 31406 31407 31408 31409 31410 31411 33427 33428 33429 33430 33431 33432 32618 32619 32620 32621 32622 32623 32612 32613 32614 32615 32616 32617 48 32750 32751 32752 32753 32754 32755 33206 33207 33208 33209 33210 33211 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 32623 33439 33440 33441 33442 33443 33444 32762 32763 32764 32765 32766 32767 32756 32757 32758 32759 32760 32761 48 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 32648 32649 32650 32651 32652 32653 32606 32607 32608 32609 32610 32611 33206 33207 33208 33209 33210 33211 32750 32751 32752 32753 32754 32755 32792 32793 32794 32795 32796 32797 48 32888 32889 32890 32891 32892 32893 33212 33213 33214 33215 33216 33217 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 32767 33451 33452 33453 33454 33455 33456 32900 32901 32902 32903 32904 32905 32894 32895 32896 32897 32898 32899 48 33008 33009 33010 33011 33012 33013 33218 33219 33220 33221 33222 33223 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 32905 33463 33464 33465 33466 33467 33468 33020 33021 33022 33023 33024 33025 33014 33015 33016 33017 33018 33019 48 33104 33105 33106 33107 33108 33109 33224 33225 33226 33227 33228 33229 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33025 33475 33476 33477 33478 33479 33480 33116 33117 33118 33119 33120 33121 33110 33111 33112 33113 33114 33115 48 1729 1730 1731 1732 1733 1734 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 33050 33051 33052 33053 33054 33055 33008 33009 33010 33011 33012 33013 33224 33225 33226 33227 33228 33229 33104 33105 33106 33107 33108 33109 33146 33147 33148 33149 33150 33151 48 33230 33231 33232 33233 33234 33235 33254 33255 33256 33257 33258 33259 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33121 33487 33488 33489 33490 33491 33492 33374 33375 33376 33377 33378 33379 33368 33369 33370 33371 33372 33373 48 1681 1682 1683 1684 1685 1686 4334 4335 4336 4337 4338 4339 1729 1730 1731 1732 1733 1734 33146 33147 33148 33149 33150 33151 33104 33105 33106 33107 33108 33109 33254 33255 33256 33257 33258 33259 33230 33231 33232 33233 33234 33235 33397 33398 33399 33400 33401 33402 48 32480 32481 32482 32483 32484 32485 32564 32565 32566 32567 32568 32569 22556 22557 22558 22559 22560 22561 32462 32463 32464 32465 32466 32467 31418 31419 31420 31421 31422 31423 33421 33422 33423 33424 33425 33426 32624 32625 32626 32627 32628 32629 32636 32637 32638 32639 32640 32641 48 32504 32505 32506 32507 32508 32509 32570 32571 32572 32573 32574 32575 32480 32481 32482 32483 32484 32485 32636 32637 32638 32639 32640 32641 32624 32625 32626 32627 32628 32629 33433 33434 33435 33436 33437 33438 32768 32769 32770 32771 32772 32773 32780 32781 32782 32783 32784 32785 48 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 32486 32487 32488 32489 32490 32491 32480 32481 32482 32483 32484 32485 32570 32571 32572 32573 32574 32575 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 32515 48 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32593 32504 32505 32506 32507 32508 32509 32780 32781 32782 32783 32784 32785 32768 32769 32770 32771 32772 32773 33445 33446 33447 33448 33449 33450 32906 32907 32908 32909 32910 32911 32918 32919 32920 32921 32922 32923 48 32528 32529 32530 32531 32532 32533 32594 32595 32596 32597 32598 32599 32582 32583 32584 32585 32586 32587 32918 32919 32920 32921 32922 32923 32906 32907 32908 32909 32910 32911 33457 33458 33459 33460 33461 33462 33026 33027 33028 33029 33030 33031 33038 33039 33040 33041 33042 33043 48 32546 32547 32548 32549 32550 32551 32600 32601 32602 32603 32604 32605 32528 32529 32530 32531 32532 32533 33038 33039 33040 33041 33042 33043 33026 33027 33028 33029 33030 33031 33469 33470 33471 33472 33473 33474 33122 33123 33124 33125 33126 33127 33134 33135 33136 33137 33138 33139 48 1741 1742 1743 1744 1745 1746 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 32534 32535 32536 32537 32538 32539 32528 32529 32530 32531 32532 32533 32600 32601 32602 32603 32604 32605 32546 32547 32548 32549 32550 32551 32558 32559 32560 32561 32562 32563 47 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 33253 32546 32547 32548 32549 32550 32551 33134 33135 33136 33137 33138 33139 33122 33123 33124 33125 33126 33127 33481 33482 33483 33484 33485 33486 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33396 48 1693 1694 1695 1696 1697 1698 4073 4074 4075 4076 4077 4078 1741 1742 1743 1744 1745 1746 32558 32559 32560 32561 32562 32563 32546 32547 32548 32549 32550 32551 33248 33249 33250 33251 33252 33253 33242 33243 33244 33245 33246 33247 33403 33404 33405 33406 33407 33408 48 1927 1928 1929 1930 1931 1932 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 33618 1591 1592 1593 1594 1595 1596 33619 33620 33621 33622 33623 33624 3341 3342 3343 3344 3345 3346 4067 4068 4069 4070 4071 4072 48 1879 1880 1881 1882 1883 1884 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 33642 1579 1580 1581 1582 1583 1584 33643 33644 33645 33646 33647 33648 3263 3264 3265 3266 3267 3268 4061 4062 4063 4064 4065 4066 48 1831 1832 1833 1834 1835 1836 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 33666 1597 1598 1599 1600 1601 1602 33667 33668 33669 33670 33671 33672 3251 3252 3253 3254 3255 3256 4055 4056 4057 4058 4059 4060 48 1759 1760 1761 1762 1763 1764 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 33690 1621 1622 1623 1624 1625 1626 33691 33692 33693 33694 33695 33696 3281 3282 3283 3284 3285 3286 4049 4050 4051 4052 4053 4054 48 1747 1748 1749 1750 1751 1752 33697 33698 33699 33700 33701 33702 33703 33704 33705 33706 33707 33708 33709 33710 33711 33712 33713 33714 1609 1610 1611 1612 1613 1614 33715 33716 33717 33718 33719 33720 3299 3300 3301 3302 3303 3304 4043 4044 4045 4046 4047 4048 48 33631 33632 33633 33634 33635 33636 33721 33722 33723 33724 33725 33726 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 33618 1591 1592 1593 1594 1595 1596 1585 1586 1587 1588 1589 1590 1579 1580 1581 1582 1583 1584 33637 33638 33639 33640 33641 33642 48 33655 33656 33657 33658 33659 33660 33727 33728 33729 33730 33731 33732 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 33642 1579 1580 1581 1582 1583 1584 1603 1604 1605 1606 1607 1608 1597 1598 1599 1600 1601 1602 33661 33662 33663 33664 33665 33666 48 33679 33680 33681 33682 33683 33684 33733 33734 33735 33736 33737 33738 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 33666 1597 1598 1599 1600 1601 1602 1627 1628 1629 1630 1631 1632 1621 1622 1623 1624 1625 1626 33685 33686 33687 33688 33689 33690 48 33703 33704 33705 33706 33707 33708 33739 33740 33741 33742 33743 33744 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 33690 1621 1622 1623 1624 1625 1626 1615 1616 1617 1618 1619 1620 1609 1610 1611 1612 1613 1614 33709 33710 33711 33712 33713 33714 36 33757 33758 33759 33760 33761 33762 33763 33764 33765 33766 33767 33768 33745 33746 33747 33748 33749 33750 33769 33770 33771 33772 33773 33774 33775 33776 33777 33778 33779 33780 33751 33752 33753 33754 33755 33756 48 2323 2324 2325 2326 2327 2328 33781 33782 33783 33784 33785 33786 33745 33746 33747 33748 33749 33750 33775 33776 33777 33778 33779 33780 33763 33764 33765 33766 33767 33768 33787 33788 33789 33790 33791 33792 1975 1976 1977 1978 1979 1980 4007 4008 4009 4010 4011 4012 48 2609 2610 2611 2612 2613 2614 33799 33800 33801 33802 33803 33804 33793 33794 33795 33796 33797 33798 33805 33806 33807 33808 33809 33810 33745 33746 33747 33748 33749 33750 33781 33782 33783 33784 33785 33786 2323 2324 2325 2326 2327 2328 3947 3948 3949 3950 3951 3952 36 33793 33794 33795 33796 33797 33798 2609 2610 2611 2612 2613 2614 2849 2850 2851 2852 2853 2854 33799 33800 33801 33802 33803 33804 3911 3912 3913 3914 3915 3916 33811 33812 33813 33814 33815 33816 36 33823 33824 33825 33826 33827 33828 2849 2850 2851 2852 2853 2854 2975 2976 2977 2978 2979 2980 33829 33830 33831 33832 33833 33834 3875 3876 3877 3878 3879 3880 33817 33818 33819 33820 33821 33822 48 3161 3162 3163 3164 3165 3166 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33852 33823 33824 33825 33826 33827 33828 33817 33818 33819 33820 33821 33822 2975 2976 2977 2978 2979 2980 3839 3840 3841 3842 3843 3844 36 33841 33842 33843 33844 33845 33846 3161 3162 3163 3164 3165 3166 3413 3414 3415 3416 3417 3418 33835 33836 33837 33838 33839 33840 3803 3804 3805 3806 3807 3808 33853 33854 33855 33856 33857 33858 48 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33894 33607 33608 33609 33610 33611 33612 33895 33896 33897 33898 33899 33900 48 2233 2234 2235 2236 2237 2238 33901 33902 33903 33904 33905 33906 33859 33860 33861 33862 33863 33864 33895 33896 33897 33898 33899 33900 33607 33608 33609 33610 33611 33612 33601 33602 33603 33604 33605 33606 1927 1928 1929 1930 1931 1932 3995 3996 3997 3998 3999 4000 48 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33930 33871 33872 33873 33874 33875 33876 33865 33866 33867 33868 33869 33870 33859 33860 33861 33862 33863 33864 33931 33932 33933 33934 33935 33936 48 2507 2508 2509 2510 2511 2512 33937 33938 33939 33940 33941 33942 33907 33908 33909 33910 33911 33912 33931 33932 33933 33934 33935 33936 33859 33860 33861 33862 33863 33864 33901 33902 33903 33904 33905 33906 2233 2234 2235 2236 2237 2238 3941 3942 3943 3944 3945 3946 48 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33954 33919 33920 33921 33922 33923 33924 33913 33914 33915 33916 33917 33918 33907 33908 33909 33910 33911 33912 33955 33956 33957 33958 33959 33960 2825 2826 2827 2828 2829 2830 33961 33962 33963 33964 33965 33966 36 33907 33908 33909 33910 33911 33912 2507 2508 2509 2510 2511 2512 2825 2826 2827 2828 2829 2830 33937 33938 33939 33940 33941 33942 3905 3906 3907 3908 3909 3910 33955 33956 33957 33958 33959 33960 36 33943 33944 33945 33946 33947 33948 2825 2826 2827 2828 2829 2830 33967 33968 33969 33970 33971 33972 33961 33962 33963 33964 33965 33966 33979 33980 33981 33982 33983 33984 33973 33974 33975 33976 33977 33978 36 33967 33968 33969 33970 33971 33972 2825 2826 2827 2828 2829 2830 2945 2946 2947 2948 2949 2950 33979 33980 33981 33982 33983 33984 3869 3870 3871 3872 3873 3874 33985 33986 33987 33988 33989 33990 48 3131 3132 3133 3134 3135 3136 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 34008 33967 33968 33969 33970 33971 33972 33985 33986 33987 33988 33989 33990 2945 2946 2947 2948 2949 2950 3833 3834 3835 3836 3837 3838 36 33997 33998 33999 34000 34001 34002 3131 3132 3133 3134 3135 3136 3395 3396 3397 3398 3399 3400 33991 33992 33993 33994 33995 33996 3797 3798 3799 3800 3801 3802 34009 34010 34011 34012 34013 34014 48 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 34050 33631 33632 33633 33634 33635 33636 34051 34052 34053 34054 34055 34056 48 2185 2186 2187 2188 2189 2190 34057 34058 34059 34060 34061 34062 34015 34016 34017 34018 34019 34020 34051 34052 34053 34054 34055 34056 33631 33632 33633 33634 33635 33636 33625 33626 33627 33628 33629 33630 1879 1880 1881 1882 1883 1884 3965 3966 3967 3968 3969 3970 48 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34086 34027 34028 34029 34030 34031 34032 34021 34022 34023 34024 34025 34026 34015 34016 34017 34018 34019 34020 34087 34088 34089 34090 34091 34092 48 2459 2460 2461 2462 2463 2464 34093 34094 34095 34096 34097 34098 34063 34064 34065 34066 34067 34068 34087 34088 34089 34090 34091 34092 34015 34016 34017 34018 34019 34020 34057 34058 34059 34060 34061 34062 2185 2186 2187 2188 2189 2190 3935 3936 3937 3938 3939 3940 48 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34122 34075 34076 34077 34078 34079 34080 34069 34070 34071 34072 34073 34074 34063 34064 34065 34066 34067 34068 34123 34124 34125 34126 34127 34128 48 2735 2736 2737 2738 2739 2740 34129 34130 34131 34132 34133 34134 34099 34100 34101 34102 34103 34104 34123 34124 34125 34126 34127 34128 34063 34064 34065 34066 34067 34068 34093 34094 34095 34096 34097 34098 2459 2460 2461 2462 2463 2464 3899 3900 3901 3902 3903 3904 36 34111 34112 34113 34114 34115 34116 34099 34100 34101 34102 34103 34104 34135 34136 34137 34138 34139 34140 34105 34106 34107 34108 34109 34110 34147 34148 34149 34150 34151 34152 34141 34142 34143 34144 34145 34146 48 2915 2916 2917 2918 2919 2920 34153 34154 34155 34156 34157 34158 34135 34136 34137 34138 34139 34140 34147 34148 34149 34150 34151 34152 34099 34100 34101 34102 34103 34104 34129 34130 34131 34132 34133 34134 2735 2736 2737 2738 2739 2740 3863 3864 3865 3866 3867 3868 48 3101 3102 3103 3104 3105 3106 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34176 34135 34136 34137 34138 34139 34140 34153 34154 34155 34156 34157 34158 2915 2916 2917 2918 2919 2920 3827 3828 3829 3830 3831 3832 36 34165 34166 34167 34168 34169 34170 3101 3102 3103 3104 3105 3106 3377 3378 3379 3380 3381 3382 34159 34160 34161 34162 34163 34164 3791 3792 3793 3794 3795 3796 34177 34178 34179 34180 34181 34182 48 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 34218 33655 33656 33657 33658 33659 33660 34219 34220 34221 34222 34223 34224 48 2137 2138 2139 2140 2141 2142 34225 34226 34227 34228 34229 34230 34183 34184 34185 34186 34187 34188 34219 34220 34221 34222 34223 34224 33655 33656 33657 33658 33659 33660 33649 33650 33651 33652 33653 33654 1831 1832 1833 1834 1835 1836 3971 3972 3973 3974 3975 3976 48 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34254 34195 34196 34197 34198 34199 34200 34189 34190 34191 34192 34193 34194 34183 34184 34185 34186 34187 34188 34255 34256 34257 34258 34259 34260 48 2411 2412 2413 2414 2415 2416 34261 34262 34263 34264 34265 34266 34231 34232 34233 34234 34235 34236 34255 34256 34257 34258 34259 34260 34183 34184 34185 34186 34187 34188 34225 34226 34227 34228 34229 34230 2137 2138 2139 2140 2141 2142 3929 3930 3931 3932 3933 3934 48 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34290 34243 34244 34245 34246 34247 34248 34237 34238 34239 34240 34241 34242 34231 34232 34233 34234 34235 34236 34291 34292 34293 34294 34295 34296 48 2687 2688 2689 2690 2691 2692 34297 34298 34299 34300 34301 34302 34267 34268 34269 34270 34271 34272 34291 34292 34293 34294 34295 34296 34231 34232 34233 34234 34235 34236 34261 34262 34263 34264 34265 34266 2411 2412 2413 2414 2415 2416 3893 3894 3895 3896 3897 3898 36 34279 34280 34281 34282 34283 34284 34267 34268 34269 34270 34271 34272 34303 34304 34305 34306 34307 34308 34273 34274 34275 34276 34277 34278 34315 34316 34317 34318 34319 34320 34309 34310 34311 34312 34313 34314 48 2885 2886 2887 2888 2889 2890 34321 34322 34323 34324 34325 34326 34303 34304 34305 34306 34307 34308 34315 34316 34317 34318 34319 34320 34267 34268 34269 34270 34271 34272 34297 34298 34299 34300 34301 34302 2687 2688 2689 2690 2691 2692 3857 3858 3859 3860 3861 3862 48 3071 3072 3073 3074 3075 3076 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34344 34303 34304 34305 34306 34307 34308 34321 34322 34323 34324 34325 34326 2885 2886 2887 2888 2889 2890 3821 3822 3823 3824 3825 3826 36 34333 34334 34335 34336 34337 34338 3071 3072 3073 3074 3075 3076 3323 3324 3325 3326 3327 3328 34327 34328 34329 34330 34331 34332 3785 3786 3787 3788 3789 3790 34345 34346 34347 34348 34349 34350 48 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 34386 33679 33680 33681 33682 33683 33684 34387 34388 34389 34390 34391 34392 48 2065 2066 2067 2068 2069 2070 34393 34394 34395 34396 34397 34398 34351 34352 34353 34354 34355 34356 34387 34388 34389 34390 34391 34392 33679 33680 33681 33682 33683 33684 33673 33674 33675 33676 33677 33678 1759 1760 1761 1762 1763 1764 3953 3954 3955 3956 3957 3958 48 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34422 34363 34364 34365 34366 34367 34368 34357 34358 34359 34360 34361 34362 34351 34352 34353 34354 34355 34356 34423 34424 34425 34426 34427 34428 48 2287 2288 2289 2290 2291 2292 34429 34430 34431 34432 34433 34434 34399 34400 34401 34402 34403 34404 34423 34424 34425 34426 34427 34428 34351 34352 34353 34354 34355 34356 34393 34394 34395 34396 34397 34398 2065 2066 2067 2068 2069 2070 3917 3918 3919 3920 3921 3922 48 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34458 34411 34412 34413 34414 34415 34416 34405 34406 34407 34408 34409 34410 34399 34400 34401 34402 34403 34404 34459 34460 34461 34462 34463 34464 48 2561 2562 2563 2564 2565 2566 34465 34466 34467 34468 34469 34470 34435 34436 34437 34438 34439 34440 34459 34460 34461 34462 34463 34464 34399 34400 34401 34402 34403 34404 34429 34430 34431 34432 34433 34434 2287 2288 2289 2290 2291 2292 3881 3882 3883 3884 3885 3886 36 34447 34448 34449 34450 34451 34452 34435 34436 34437 34438 34439 34440 34471 34472 34473 34474 34475 34476 34441 34442 34443 34444 34445 34446 34483 34484 34485 34486 34487 34488 34477 34478 34479 34480 34481 34482 48 2789 2790 2791 2792 2793 2794 34489 34490 34491 34492 34493 34494 34471 34472 34473 34474 34475 34476 34483 34484 34485 34486 34487 34488 34435 34436 34437 34438 34439 34440 34465 34466 34467 34468 34469 34470 2561 2562 2563 2564 2565 2566 3845 3846 3847 3848 3849 3850 48 3029 3030 3031 3032 3033 3034 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34512 34471 34472 34473 34474 34475 34476 34489 34490 34491 34492 34493 34494 2789 2790 2791 2792 2793 2794 3809 3810 3811 3812 3813 3814 48 3215 3216 3217 3218 3219 3220 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34530 34501 34502 34503 34504 34505 34506 34495 34496 34497 34498 34499 34500 3029 3030 3031 3032 3033 3034 3773 3774 3775 3776 3777 3778 48 21554 21555 21556 21557 21558 21559 32420 32421 32422 32423 32424 32425 30896 30897 30898 30899 30900 30901 30890 30891 30892 30893 30894 30895 30884 30885 30886 30887 30888 30889 34531 34532 34533 34534 34535 34536 33703 33704 33705 33706 33707 33708 34537 34538 34539 34540 34541 34542 48 2053 2054 2055 2056 2057 2058 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 34537 34538 34539 34540 34541 34542 33703 33704 33705 33706 33707 33708 33697 33698 33699 33700 33701 33702 1747 1748 1749 1750 1751 1752 3959 3960 3961 3962 3963 3964 48 29546 29547 29548 29549 29550 29551 32372 32373 32374 32375 32376 32377 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30925 30896 30897 30898 30899 30900 30901 32420 32421 32422 32423 32424 32425 21554 21555 21556 21557 21558 21559 29552 29553 29554 29555 29556 29557 48 2275 2276 2277 2278 2279 2280 34543 34544 34545 34546 34547 34548 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 29557 21554 21555 21556 21557 21558 21559 21548 21549 21550 21551 21552 21553 2053 2054 2055 2056 2057 2058 3923 3924 3925 3926 3927 3928 48 29804 29805 29806 29807 29808 29809 32318 32319 32320 32321 32322 32323 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 31453 30914 30915 30916 30917 30918 30919 32372 32373 32374 32375 32376 32377 29546 29547 29548 29549 29550 29551 29810 29811 29812 29813 29814 29815 48 2549 2550 2551 2552 2553 2554 34549 34550 34551 34552 34553 34554 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29815 29546 29547 29548 29549 29550 29551 34543 34544 34545 34546 34547 34548 2275 2276 2277 2278 2279 2280 3887 3888 3889 3890 3891 3892 36 31442 31443 31444 31445 31446 31447 29804 29805 29806 29807 29808 29809 30062 30063 30064 30065 30066 30067 32318 32319 32320 32321 32322 32323 30068 30069 30070 30071 30072 30073 31724 31725 31726 31727 31728 31729 48 2777 2778 2779 2780 2781 2782 34555 34556 34557 34558 34559 34560 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 30073 29804 29805 29806 29807 29808 29809 34549 34550 34551 34552 34553 34554 2549 2550 2551 2552 2553 2554 3851 3852 3853 3854 3855 3856 48 3017 3018 3019 3020 3021 3022 32246 32247 32248 32249 32250 32251 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30062 30063 30064 30065 30066 30067 34555 34556 34557 34558 34559 34560 2777 2778 2779 2780 2781 2782 3815 3816 3817 3818 3819 3820 48 3203 3204 3205 3206 3207 3208 32270 32271 32272 32273 32274 32275 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30613 30320 30321 30322 30323 30324 30325 32246 32247 32248 32249 32250 32251 3017 3018 3019 3020 3021 3022 3779 3780 3781 3782 3783 3784 48 34015 34016 34017 34018 34019 34020 34561 34562 34563 34564 34565 34566 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 34567 34568 34569 34570 34571 34572 33631 33632 33633 33634 33635 33636 34051 34052 34053 34054 34055 34056 48 34183 34184 34185 34186 34187 34188 34573 34574 34575 34576 34577 34578 34015 34016 34017 34018 34019 34020 34051 34052 34053 34054 34055 34056 33631 33632 33633 33634 33635 33636 33727 33728 33729 33730 33731 33732 33655 33656 33657 33658 33659 33660 34219 34220 34221 34222 34223 34224 48 34351 34352 34353 34354 34355 34356 34579 34580 34581 34582 34583 34584 34183 34184 34185 34186 34187 34188 34219 34220 34221 34222 34223 34224 33655 33656 33657 33658 33659 33660 33733 33734 33735 33736 33737 33738 33679 33680 33681 33682 33683 33684 34387 34388 34389 34390 34391 34392 48 21554 21555 21556 21557 21558 21559 34585 34586 34587 34588 34589 34590 34351 34352 34353 34354 34355 34356 34387 34388 34389 34390 34391 34392 33679 33680 33681 33682 33683 33684 33739 33740 33741 33742 33743 33744 33703 33704 33705 33706 33707 33708 34537 34538 34539 34540 34541 34542 48 34063 34064 34065 34066 34067 34068 34591 34592 34593 34594 34595 34596 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33930 33871 33872 33873 33874 33875 33876 34561 34562 34563 34564 34565 34566 34015 34016 34017 34018 34019 34020 34087 34088 34089 34090 34091 34092 48 34231 34232 34233 34234 34235 34236 34597 34598 34599 34600 34601 34602 34063 34064 34065 34066 34067 34068 34087 34088 34089 34090 34091 34092 34015 34016 34017 34018 34019 34020 34573 34574 34575 34576 34577 34578 34183 34184 34185 34186 34187 34188 34255 34256 34257 34258 34259 34260 48 34399 34400 34401 34402 34403 34404 34603 34604 34605 34606 34607 34608 34231 34232 34233 34234 34235 34236 34255 34256 34257 34258 34259 34260 34183 34184 34185 34186 34187 34188 34579 34580 34581 34582 34583 34584 34351 34352 34353 34354 34355 34356 34423 34424 34425 34426 34427 34428 48 29546 29547 29548 29549 29550 29551 34609 34610 34611 34612 34613 34614 34399 34400 34401 34402 34403 34404 34423 34424 34425 34426 34427 34428 34351 34352 34353 34354 34355 34356 34585 34586 34587 34588 34589 34590 21554 21555 21556 21557 21558 21559 29552 29553 29554 29555 29556 29557 48 34099 34100 34101 34102 34103 34104 34615 34616 34617 34618 34619 34620 2825 2826 2827 2828 2829 2830 34621 34622 34623 34624 34625 34626 33919 33920 33921 33922 33923 33924 34591 34592 34593 34594 34595 34596 34063 34064 34065 34066 34067 34068 34123 34124 34125 34126 34127 34128 48 34267 34268 34269 34270 34271 34272 34627 34628 34629 34630 34631 34632 34099 34100 34101 34102 34103 34104 34123 34124 34125 34126 34127 34128 34063 34064 34065 34066 34067 34068 34597 34598 34599 34600 34601 34602 34231 34232 34233 34234 34235 34236 34291 34292 34293 34294 34295 34296 48 34435 34436 34437 34438 34439 34440 34633 34634 34635 34636 34637 34638 34267 34268 34269 34270 34271 34272 34291 34292 34293 34294 34295 34296 34231 34232 34233 34234 34235 34236 34603 34604 34605 34606 34607 34608 34399 34400 34401 34402 34403 34404 34459 34460 34461 34462 34463 34464 48 29804 29805 29806 29807 29808 29809 34639 34640 34641 34642 34643 34644 34435 34436 34437 34438 34439 34440 34459 34460 34461 34462 34463 34464 34399 34400 34401 34402 34403 34404 34609 34610 34611 34612 34613 34614 29546 29547 29548 29549 29550 29551 29810 29811 29812 29813 29814 29815 48 34135 34136 34137 34138 34139 34140 34645 34646 34647 34648 34649 34650 33967 33968 33969 33970 33971 33972 33979 33980 33981 33982 33983 33984 2825 2826 2827 2828 2829 2830 34615 34616 34617 34618 34619 34620 34099 34100 34101 34102 34103 34104 34147 34148 34149 34150 34151 34152 48 34303 34304 34305 34306 34307 34308 34651 34652 34653 34654 34655 34656 34135 34136 34137 34138 34139 34140 34147 34148 34149 34150 34151 34152 34099 34100 34101 34102 34103 34104 34627 34628 34629 34630 34631 34632 34267 34268 34269 34270 34271 34272 34315 34316 34317 34318 34319 34320 48 34471 34472 34473 34474 34475 34476 34657 34658 34659 34660 34661 34662 34303 34304 34305 34306 34307 34308 34315 34316 34317 34318 34319 34320 34267 34268 34269 34270 34271 34272 34633 34634 34635 34636 34637 34638 34435 34436 34437 34438 34439 34440 34483 34484 34485 34486 34487 34488 48 30062 30063 30064 30065 30066 30067 34663 34664 34665 34666 34667 34668 34471 34472 34473 34474 34475 34476 34483 34484 34485 34486 34487 34488 34435 34436 34437 34438 34439 34440 34639 34640 34641 34642 34643 34644 29804 29805 29806 29807 29808 29809 30068 30069 30070 30071 30072 30073 34 34675 34676 34677 34678 34679 34680 2023 2024 2025 2026 2027 2028 2347 2348 2349 2350 34681 34682 34683 34684 34685 34686 3641 3642 3643 3644 3645 3646 34669 34670 34671 34672 34673 34674 46 33745 33746 33747 33748 33749 33750 34687 34688 34689 34690 34691 34692 2347 2348 2349 2350 34669 34670 34671 34672 34673 34674 34675 34676 34677 34678 34679 34680 34693 34694 34695 34696 34697 34698 33757 33758 33759 33760 33761 33762 33751 33752 33753 33754 33755 33756 48 33871 33872 33873 33874 33875 33876 34699 34700 34701 34702 34703 34704 33745 33746 33747 33748 33749 33750 33751 33752 33753 33754 33755 33756 33757 33758 33759 33760 33761 33762 34705 34706 34707 34708 34709 34710 33883 33884 33885 33886 33887 33888 33877 33878 33879 33880 33881 33882 48 34027 34028 34029 34030 34031 34032 34711 34712 34713 34714 34715 34716 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 34717 34718 34719 34720 34721 34722 34039 34040 34041 34042 34043 34044 34033 34034 34035 34036 34037 34038 48 34195 34196 34197 34198 34199 34200 34723 34724 34725 34726 34727 34728 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34044 34729 34730 34731 34732 34733 34734 34207 34208 34209 34210 34211 34212 34201 34202 34203 34204 34205 34206 48 34363 34364 34365 34366 34367 34368 34735 34736 34737 34738 34739 34740 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34212 34741 34742 34743 34744 34745 34746 34375 34376 34377 34378 34379 34380 34369 34370 34371 34372 34373 34374 48 30896 30897 30898 30899 30900 30901 34747 34748 34749 34750 34751 34752 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34380 34753 34754 34755 34756 34757 34758 30884 30885 30886 30887 30888 30889 30890 30891 30892 30893 30894 30895 46 33793 33794 33795 33796 33797 33798 34759 34760 34761 34762 34763 34764 2621 2622 2623 2624 2625 2626 3593 3594 3595 3596 3597 3598 2347 2348 2349 2350 34687 34688 34689 34690 34691 34692 33745 33746 33747 33748 33749 33750 33805 33806 33807 33808 33809 33810 48 33919 33920 33921 33922 33923 33924 34765 34766 34767 34768 34769 34770 33793 33794 33795 33796 33797 33798 33805 33806 33807 33808 33809 33810 33745 33746 33747 33748 33749 33750 34699 34700 34701 34702 34703 34704 33871 33872 33873 33874 33875 33876 33925 33926 33927 33928 33929 33930 48 34075 34076 34077 34078 34079 34080 34771 34772 34773 34774 34775 34776 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33930 33871 33872 33873 33874 33875 33876 34711 34712 34713 34714 34715 34716 34027 34028 34029 34030 34031 34032 34081 34082 34083 34084 34085 34086 48 34243 34244 34245 34246 34247 34248 34777 34778 34779 34780 34781 34782 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34086 34027 34028 34029 34030 34031 34032 34723 34724 34725 34726 34727 34728 34195 34196 34197 34198 34199 34200 34249 34250 34251 34252 34253 34254 48 34411 34412 34413 34414 34415 34416 34783 34784 34785 34786 34787 34788 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34254 34195 34196 34197 34198 34199 34200 34735 34736 34737 34738 34739 34740 34363 34364 34365 34366 34367 34368 34417 34418 34419 34420 34421 34422 48 30914 30915 30916 30917 30918 30919 34789 34790 34791 34792 34793 34794 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34422 34363 34364 34365 34366 34367 34368 34747 34748 34749 34750 34751 34752 30896 30897 30898 30899 30900 30901 30920 30921 30922 30923 30924 30925 36 2621 2622 2623 2624 2625 2626 33793 33794 33795 33796 33797 33798 2849 2850 2851 2852 2853 2854 34759 34760 34761 34762 34763 34764 33811 33812 33813 33814 33815 33816 3551 3552 3553 3554 3555 3556 48 33943 33944 33945 33946 33947 33948 34795 34796 34797 34798 34799 34800 2849 2850 2851 2852 2853 2854 33811 33812 33813 33814 33815 33816 33793 33794 33795 33796 33797 33798 34765 34766 34767 34768 34769 34770 33919 33920 33921 33922 33923 33924 33949 33950 33951 33952 33953 33954 48 34111 34112 34113 34114 34115 34116 34801 34802 34803 34804 34805 34806 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33954 33919 33920 33921 33922 33923 33924 34771 34772 34773 34774 34775 34776 34075 34076 34077 34078 34079 34080 34117 34118 34119 34120 34121 34122 48 34279 34280 34281 34282 34283 34284 34807 34808 34809 34810 34811 34812 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34122 34075 34076 34077 34078 34079 34080 34777 34778 34779 34780 34781 34782 34243 34244 34245 34246 34247 34248 34285 34286 34287 34288 34289 34290 48 34447 34448 34449 34450 34451 34452 34813 34814 34815 34816 34817 34818 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34290 34243 34244 34245 34246 34247 34248 34783 34784 34785 34786 34787 34788 34411 34412 34413 34414 34415 34416 34453 34454 34455 34456 34457 34458 48 31442 31443 31444 31445 31446 31447 34819 34820 34821 34822 34823 34824 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34458 34411 34412 34413 34414 34415 34416 34789 34790 34791 34792 34793 34794 30914 30915 30916 30917 30918 30919 31448 31449 31450 31451 31452 31453 36 3005 3006 3007 3008 3009 3010 2849 2850 2851 2852 2853 2854 33823 33824 33825 33826 33827 33828 3509 3510 3511 3512 3513 3514 33829 33830 33831 33832 33833 33834 34825 34826 34827 34828 34829 34830 48 33967 33968 33969 33970 33971 33972 34831 34832 34833 34834 34835 34836 33823 33824 33825 33826 33827 33828 33829 33830 33831 33832 33833 33834 2849 2850 2851 2852 2853 2854 34795 34796 34797 34798 34799 34800 33943 33944 33945 33946 33947 33948 33973 33974 33975 33976 33977 33978 48 34135 34136 34137 34138 34139 34140 34645 34646 34647 34648 34649 34650 33967 33968 33969 33970 33971 33972 33973 33974 33975 33976 33977 33978 33943 33944 33945 33946 33947 33948 34801 34802 34803 34804 34805 34806 34111 34112 34113 34114 34115 34116 34141 34142 34143 34144 34145 34146 48 34303 34304 34305 34306 34307 34308 34651 34652 34653 34654 34655 34656 34135 34136 34137 34138 34139 34140 34141 34142 34143 34144 34145 34146 34111 34112 34113 34114 34115 34116 34807 34808 34809 34810 34811 34812 34279 34280 34281 34282 34283 34284 34309 34310 34311 34312 34313 34314 48 34471 34472 34473 34474 34475 34476 34657 34658 34659 34660 34661 34662 34303 34304 34305 34306 34307 34308 34309 34310 34311 34312 34313 34314 34279 34280 34281 34282 34283 34284 34813 34814 34815 34816 34817 34818 34447 34448 34449 34450 34451 34452 34477 34478 34479 34480 34481 34482 48 30062 30063 30064 30065 30066 30067 34663 34664 34665 34666 34667 34668 34471 34472 34473 34474 34475 34476 34477 34478 34479 34480 34481 34482 34447 34448 34449 34450 34451 34452 34819 34820 34821 34822 34823 34824 31442 31443 31444 31445 31446 31447 31724 31725 31726 31727 31728 31729 48 33841 33842 33843 33844 33845 33846 34837 34838 34839 34840 34841 34842 3191 3192 3193 3194 3195 3196 3467 3468 3469 3470 3471 3472 3005 3006 3007 3008 3009 3010 34825 34826 34827 34828 34829 34830 33823 33824 33825 33826 33827 33828 33847 33848 33849 33850 33851 33852 48 33997 33998 33999 34000 34001 34002 34843 34844 34845 34846 34847 34848 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33852 33823 33824 33825 33826 33827 33828 34831 34832 34833 34834 34835 34836 33967 33968 33969 33970 33971 33972 34003 34004 34005 34006 34007 34008 48 34165 34166 34167 34168 34169 34170 34849 34850 34851 34852 34853 34854 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 34008 33967 33968 33969 33970 33971 33972 34645 34646 34647 34648 34649 34650 34135 34136 34137 34138 34139 34140 34171 34172 34173 34174 34175 34176 48 34333 34334 34335 34336 34337 34338 34855 34856 34857 34858 34859 34860 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34176 34135 34136 34137 34138 34139 34140 34651 34652 34653 34654 34655 34656 34303 34304 34305 34306 34307 34308 34339 34340 34341 34342 34343 34344 48 34501 34502 34503 34504 34505 34506 34861 34862 34863 34864 34865 34866 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34344 34303 34304 34305 34306 34307 34308 34657 34658 34659 34660 34661 34662 34471 34472 34473 34474 34475 34476 34507 34508 34509 34510 34511 34512 48 30320 30321 30322 30323 30324 30325 34867 34868 34869 34870 34871 34872 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34512 34471 34472 34473 34474 34475 34476 34663 34664 34665 34666 34667 34668 30062 30063 30064 30065 30066 30067 30326 30327 30328 30329 30330 30331 36 3191 3192 3193 3194 3195 3196 33841 33842 33843 33844 33845 33846 3413 3414 3415 3416 3417 3418 34837 34838 34839 34840 34841 34842 33853 33854 33855 33856 33857 33858 3425 3426 3427 3428 3429 3430 48 3395 3396 3397 3398 3399 3400 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 33853 33854 33855 33856 33857 33858 33841 33842 33843 33844 33845 33846 34843 34844 34845 34846 34847 34848 33997 33998 33999 34000 34001 34002 34009 34010 34011 34012 34013 34014 48 3377 3378 3379 3380 3381 3382 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 34009 34010 34011 34012 34013 34014 33997 33998 33999 34000 34001 34002 34849 34850 34851 34852 34853 34854 34165 34166 34167 34168 34169 34170 34177 34178 34179 34180 34181 34182 48 3323 3324 3325 3326 3327 3328 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 34177 34178 34179 34180 34181 34182 34165 34166 34167 34168 34169 34170 34855 34856 34857 34858 34859 34860 34333 34334 34335 34336 34337 34338 34345 34346 34347 34348 34349 34350 48 34519 34520 34521 34522 34523 34524 34873 34874 34875 34876 34877 34878 3323 3324 3325 3326 3327 3328 34345 34346 34347 34348 34349 34350 34333 34334 34335 34336 34337 34338 34861 34862 34863 34864 34865 34866 34501 34502 34503 34504 34505 34506 34525 34526 34527 34528 34529 34530 48 30602 30603 30604 30605 30606 30607 34879 34880 34881 34882 34883 34884 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34530 34501 34502 34503 34504 34505 34506 34867 34868 34869 34870 34871 34872 30320 30321 30322 30323 30324 30325 30608 30609 30610 30611 30612 30613 48 3263 3264 3265 3266 3267 3268 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 33619 33620 33621 33622 33623 33624 1591 1592 1593 1594 1595 1596 1585 1586 1587 1588 1589 1590 1579 1580 1581 1582 1583 1584 33643 33644 33645 33646 33647 33648 36 34519 34520 34521 34522 34523 34524 3323 3324 3325 3326 3327 3328 3215 3216 3217 3218 3219 3220 34873 34874 34875 34876 34877 34878 3329 3330 3331 3332 3333 3334 34513 34514 34515 34516 34517 34518 48 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3281 3282 3283 3284 3285 3286 33691 33692 33693 33694 33695 33696 1621 1622 1623 1624 1625 1626 1615 1616 1617 1618 1619 1620 1609 1610 1611 1612 1613 1614 33715 33716 33717 33718 33719 33720 48 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3251 3252 3253 3254 3255 3256 33667 33668 33669 33670 33671 33672 1597 1598 1599 1600 1601 1602 1627 1628 1629 1630 1631 1632 1621 1622 1623 1624 1625 1626 33691 33692 33693 33694 33695 33696 48 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 33643 33644 33645 33646 33647 33648 1579 1580 1581 1582 1583 1584 1603 1604 1605 1606 1607 1608 1597 1598 1599 1600 1601 1602 33667 33668 33669 33670 33671 33672 48 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34524 34879 34880 34881 34882 34883 34884 30602 30603 30604 30605 30606 30607 32270 32271 32272 32273 32274 32275 36 33841 33842 33843 33844 33845 33846 3191 3192 3193 3194 3195 3196 3161 3162 3163 3164 3165 3166 34837 34838 34839 34840 34841 34842 3197 3198 3199 3200 3201 3202 33835 33836 33837 33838 33839 33840 48 3131 3132 3133 3134 3135 3136 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 33846 34843 34844 34845 34846 34847 34848 33997 33998 33999 34000 34001 34002 33991 33992 33993 33994 33995 33996 48 3101 3102 3103 3104 3105 3106 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34002 34849 34850 34851 34852 34853 34854 34165 34166 34167 34168 34169 34170 34159 34160 34161 34162 34163 34164 48 3071 3072 3073 3074 3075 3076 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34170 34855 34856 34857 34858 34859 34860 34333 34334 34335 34336 34337 34338 34327 34328 34329 34330 34331 34332 48 3029 3030 3031 3032 3033 3034 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34338 34861 34862 34863 34864 34865 34866 34501 34502 34503 34504 34505 34506 34495 34496 34497 34498 34499 34500 48 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34506 34867 34868 34869 34870 34871 34872 30320 30321 30322 30323 30324 30325 32246 32247 32248 32249 32250 32251 36 33823 33824 33825 33826 33827 33828 3005 3006 3007 3008 3009 3010 2975 2976 2977 2978 2979 2980 34825 34826 34827 34828 34829 34830 3011 3012 3013 3014 3015 3016 33817 33818 33819 33820 33821 33822 48 2945 2946 2947 2948 2949 2950 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 33817 33818 33819 33820 33821 33822 33823 33824 33825 33826 33827 33828 34831 34832 34833 34834 34835 34836 33967 33968 33969 33970 33971 33972 33985 33986 33987 33988 33989 33990 48 2915 2916 2917 2918 2919 2920 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 33985 33986 33987 33988 33989 33990 33967 33968 33969 33970 33971 33972 34645 34646 34647 34648 34649 34650 34135 34136 34137 34138 34139 34140 34153 34154 34155 34156 34157 34158 48 2885 2886 2887 2888 2889 2890 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 34153 34154 34155 34156 34157 34158 34135 34136 34137 34138 34139 34140 34651 34652 34653 34654 34655 34656 34303 34304 34305 34306 34307 34308 34321 34322 34323 34324 34325 34326 48 2789 2790 2791 2792 2793 2794 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 34321 34322 34323 34324 34325 34326 34303 34304 34305 34306 34307 34308 34657 34658 34659 34660 34661 34662 34471 34472 34473 34474 34475 34476 34489 34490 34491 34492 34493 34494 36 34099 34100 34101 34102 34103 34104 2825 2826 2827 2828 2829 2830 2735 2736 2737 2738 2739 2740 34615 34616 34617 34618 34619 34620 2873 2874 2875 2876 2877 2878 34129 34130 34131 34132 34133 34134 48 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34801 34802 34803 34804 34805 34806 33943 33944 33945 33946 33947 33948 33961 33962 33963 33964 33965 33966 2825 2826 2827 2828 2829 2830 34615 34616 34617 34618 34619 34620 36 33943 33944 33945 33946 33947 33948 2849 2850 2851 2852 2853 2854 2825 2826 2827 2828 2829 2830 34795 34796 34797 34798 34799 34800 2855 2856 2857 2858 2859 2860 33961 33962 33963 33964 33965 33966 48 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 34489 34490 34491 34492 34493 34494 34471 34472 34473 34474 34475 34476 34663 34664 34665 34666 34667 34668 30062 30063 30064 30065 30066 30067 34555 34556 34557 34558 34559 34560 48 34267 34268 34269 34270 34271 34272 34627 34628 34629 34630 34631 34632 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34807 34808 34809 34810 34811 34812 34279 34280 34281 34282 34283 34284 34273 34274 34275 34276 34277 34278 48 2687 2688 2689 2690 2691 2692 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 34129 34130 34131 34132 34133 34134 34099 34100 34101 34102 34103 34104 34627 34628 34629 34630 34631 34632 34267 34268 34269 34270 34271 34272 34297 34298 34299 34300 34301 34302 48 34435 34436 34437 34438 34439 34440 34633 34634 34635 34636 34637 34638 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34284 34813 34814 34815 34816 34817 34818 34447 34448 34449 34450 34451 34452 34441 34442 34443 34444 34445 34446 48 2561 2562 2563 2564 2565 2566 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 34297 34298 34299 34300 34301 34302 34267 34268 34269 34270 34271 34272 34633 34634 34635 34636 34637 34638 34435 34436 34437 34438 34439 34440 34465 34466 34467 34468 34469 34470 48 29804 29805 29806 29807 29808 29809 34639 34640 34641 34642 34643 34644 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34452 34819 34820 34821 34822 34823 34824 31442 31443 31444 31445 31446 31447 32318 32319 32320 32321 32322 32323 48 2507 2508 2509 2510 2511 2512 33937 33938 33939 33940 33941 33942 33907 33908 33909 33910 33911 33912 34885 34886 34887 34888 34889 34890 33793 33794 33795 33796 33797 33798 33799 33800 33801 33802 33803 33804 2609 2610 2611 2612 2613 2614 2645 2646 2647 2648 2649 2650 36 33919 33920 33921 33922 33923 33924 33793 33794 33795 33796 33797 33798 33907 33908 33909 33910 33911 33912 34765 34766 34767 34768 34769 34770 34885 34886 34887 34888 34889 34890 33913 33914 33915 33916 33917 33918 36 33793 33794 33795 33796 33797 33798 2621 2622 2623 2624 2625 2626 2609 2610 2611 2612 2613 2614 34759 34760 34761 34762 34763 34764 2627 2628 2629 2630 2631 2632 33799 33800 33801 33802 33803 33804 48 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 34465 34466 34467 34468 34469 34470 34435 34436 34437 34438 34439 34440 34639 34640 34641 34642 34643 34644 29804 29805 29806 29807 29808 29809 34549 34550 34551 34552 34553 34554 48 34063 34064 34065 34066 34067 34068 34891 34892 34893 34894 34895 34896 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 33924 34771 34772 34773 34774 34775 34776 34075 34076 34077 34078 34079 34080 34069 34070 34071 34072 34073 34074 48 2459 2460 2461 2462 2463 2464 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 33937 33938 33939 33940 33941 33942 33907 33908 33909 33910 33911 33912 34891 34892 34893 34894 34895 34896 34063 34064 34065 34066 34067 34068 34093 34094 34095 34096 34097 34098 48 34231 34232 34233 34234 34235 34236 34597 34598 34599 34600 34601 34602 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34080 34777 34778 34779 34780 34781 34782 34243 34244 34245 34246 34247 34248 34237 34238 34239 34240 34241 34242 48 2411 2412 2413 2414 2415 2416 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 34093 34094 34095 34096 34097 34098 34063 34064 34065 34066 34067 34068 34597 34598 34599 34600 34601 34602 34231 34232 34233 34234 34235 34236 34261 34262 34263 34264 34265 34266 48 34399 34400 34401 34402 34403 34404 34603 34604 34605 34606 34607 34608 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34783 34784 34785 34786 34787 34788 34411 34412 34413 34414 34415 34416 34405 34406 34407 34408 34409 34410 48 2287 2288 2289 2290 2291 2292 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 34261 34262 34263 34264 34265 34266 34231 34232 34233 34234 34235 34236 34603 34604 34605 34606 34607 34608 34399 34400 34401 34402 34403 34404 34429 34430 34431 34432 34433 34434 48 29546 29547 29548 29549 29550 29551 34609 34610 34611 34612 34613 34614 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34416 34789 34790 34791 34792 34793 34794 30914 30915 30916 30917 30918 30919 32372 32373 32374 32375 32376 32377 48 2233 2234 2235 2236 2237 2238 2369 2370 2371 2372 2373 2374 2323 2324 2325 2326 2327 2328 33781 33782 33783 33784 33785 33786 33745 33746 33747 33748 33749 33750 34897 34898 34899 34900 34901 34902 33859 33860 33861 33862 33863 33864 33901 33902 33903 33904 33905 33906 36 33871 33872 33873 33874 33875 33876 33745 33746 33747 33748 33749 33750 33859 33860 33861 33862 33863 33864 34699 34700 34701 34702 34703 34704 34897 34898 34899 34900 34901 34902 33865 33866 33867 33868 33869 33870 34 33745 33746 33747 33748 33749 33750 2347 2348 2349 2350 2323 2324 2325 2326 2327 2328 34687 34688 34689 34690 34691 34692 2351 2352 2353 2354 2355 2356 33781 33782 33783 33784 33785 33786 48 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 34429 34430 34431 34432 34433 34434 34399 34400 34401 34402 34403 34404 34609 34610 34611 34612 34613 34614 29546 29547 29548 29549 29550 29551 34543 34544 34545 34546 34547 34548 48 34015 34016 34017 34018 34019 34020 34903 34904 34905 34906 34907 34908 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 33876 34711 34712 34713 34714 34715 34716 34027 34028 34029 34030 34031 34032 34021 34022 34023 34024 34025 34026 48 2185 2186 2187 2188 2189 2190 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 33901 33902 33903 33904 33905 33906 33859 33860 33861 33862 33863 33864 34903 34904 34905 34906 34907 34908 34015 34016 34017 34018 34019 34020 34057 34058 34059 34060 34061 34062 48 34183 34184 34185 34186 34187 34188 34573 34574 34575 34576 34577 34578 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34032 34723 34724 34725 34726 34727 34728 34195 34196 34197 34198 34199 34200 34189 34190 34191 34192 34193 34194 48 2137 2138 2139 2140 2141 2142 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 34057 34058 34059 34060 34061 34062 34015 34016 34017 34018 34019 34020 34573 34574 34575 34576 34577 34578 34183 34184 34185 34186 34187 34188 34225 34226 34227 34228 34229 34230 48 34351 34352 34353 34354 34355 34356 34579 34580 34581 34582 34583 34584 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34200 34735 34736 34737 34738 34739 34740 34363 34364 34365 34366 34367 34368 34357 34358 34359 34360 34361 34362 48 2065 2066 2067 2068 2069 2070 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 34225 34226 34227 34228 34229 34230 34183 34184 34185 34186 34187 34188 34579 34580 34581 34582 34583 34584 34351 34352 34353 34354 34355 34356 34393 34394 34395 34396 34397 34398 48 21554 21555 21556 21557 21558 21559 34585 34586 34587 34588 34589 34590 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34368 34747 34748 34749 34750 34751 34752 30896 30897 30898 30899 30900 30901 32420 32421 32422 32423 32424 32425 48 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 34393 34394 34395 34396 34397 34398 34351 34352 34353 34354 34355 34356 34585 34586 34587 34588 34589 34590 21554 21555 21556 21557 21558 21559 21548 21549 21550 21551 21552 21553 36 33757 33758 33759 33760 33761 33762 34675 34676 34677 34678 34679 34680 33763 33764 33765 33766 33767 33768 34693 34694 34695 34696 34697 34698 34909 34910 34911 34912 34913 34914 33769 33770 33771 33772 33773 33774 48 1975 1976 1977 1978 1979 1980 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 34681 34682 34683 34684 34685 34686 34675 34676 34677 34678 34679 34680 34909 34910 34911 34912 34913 34914 33763 33764 33765 33766 33767 33768 33787 33788 33789 33790 33791 33792 48 33607 33608 33609 33610 33611 33612 34915 34916 34917 34918 34919 34920 33763 33764 33765 33766 33767 33768 33769 33770 33771 33772 33773 33774 33757 33758 33759 33760 33761 33762 34705 34706 34707 34708 34709 34710 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33894 48 1927 1928 1929 1930 1931 1932 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 33787 33788 33789 33790 33791 33792 33763 33764 33765 33766 33767 33768 34915 34916 34917 34918 34919 34920 33607 33608 33609 33610 33611 33612 33601 33602 33603 33604 33605 33606 48 33631 33632 33633 33634 33635 33636 33721 33722 33723 33724 33725 33726 33607 33608 33609 33610 33611 33612 33889 33890 33891 33892 33893 33894 33883 33884 33885 33886 33887 33888 34717 34718 34719 34720 34721 34722 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 34050 48 1879 1880 1881 1882 1883 1884 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33612 33721 33722 33723 33724 33725 33726 33631 33632 33633 33634 33635 33636 33625 33626 33627 33628 33629 33630 48 33655 33656 33657 33658 33659 33660 33727 33728 33729 33730 33731 33732 33631 33632 33633 33634 33635 33636 34045 34046 34047 34048 34049 34050 34039 34040 34041 34042 34043 34044 34729 34730 34731 34732 34733 34734 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 34218 48 1831 1832 1833 1834 1835 1836 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33636 33727 33728 33729 33730 33731 33732 33655 33656 33657 33658 33659 33660 33649 33650 33651 33652 33653 33654 48 33679 33680 33681 33682 33683 33684 33733 33734 33735 33736 33737 33738 33655 33656 33657 33658 33659 33660 34213 34214 34215 34216 34217 34218 34207 34208 34209 34210 34211 34212 34741 34742 34743 34744 34745 34746 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 34386 48 1759 1760 1761 1762 1763 1764 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33660 33733 33734 33735 33736 33737 33738 33679 33680 33681 33682 33683 33684 33673 33674 33675 33676 33677 33678 48 33703 33704 33705 33706 33707 33708 33739 33740 33741 33742 33743 33744 33679 33680 33681 33682 33683 33684 34381 34382 34383 34384 34385 34386 34375 34376 34377 34378 34379 34380 34753 34754 34755 34756 34757 34758 30884 30885 30886 30887 30888 30889 34531 34532 34533 34534 34535 34536 48 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33684 33739 33740 33741 33742 33743 33744 33703 33704 33705 33706 33707 33708 33697 33698 33699 33700 33701 33702 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small1-0.grf000066400000000000000000000000521514310134000257540ustar00rootroot000000000000002 4 0 12 34 3 7 0 000 2 1 3 3 0 2 4 2 1 5 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small1-1.grf000066400000000000000000000000611514310134000257550ustar00rootroot000000000000002 4 1 12 34 3 10 0 000 3 0 4 6 4 1 3 5 7 3 2 4 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small1-2.grf000066400000000000000000000000631514310134000257600ustar00rootroot000000000000002 4 2 12 34 3 10 0 000 3 3 7 9 4 4 6 8 10 3 5 7 11 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small1-3.grf000066400000000000000000000000551514310134000257620ustar00rootroot000000000000002 4 3 12 34 3 7 0 000 2 6 10 3 7 9 11 2 8 10 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small1.grf000066400000000000000000000001571514310134000256250ustar00rootroot000000000000000 12 34 0 000 2 1 3 3 0 2 4 2 1 5 3 0 4 6 4 1 3 5 7 3 2 4 8 3 3 7 9 4 4 6 8 10 3 5 7 11 2 6 10 3 7 9 11 2 8 10 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small2.msh000066400000000000000000000001631514310134000256340ustar00rootroot000000000000001 6 7 36 0 6 000 3 0 1 2 3 0 1 5 3 1 5 4 3 1 4 6 3 1 6 3 3 1 3 2 2 0 1 6 0 1 2 3 4 5 2 0 5 2 4 5 2 2 3 2 1 2 2 3 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small2_d1.grf000066400000000000000000000001251514310134000262050ustar00rootroot000000000000000 6 30 0 000 5 1 2 3 4 5 5 0 2 3 4 5 5 0 1 3 4 5 5 0 1 2 4 5 5 0 1 2 3 5 5 0 1 2 3 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small2_d2.grf000066400000000000000000000000611514310134000262050ustar00rootroot000000000000000 6 12 0 000 2 1 5 2 0 2 2 1 3 2 2 4 2 3 5 2 4 0 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small3-0.adm000066400000000000000000000000511514310134000257400ustar00rootroot000000000000003 3 0 8 15 2 8 1 000 4 1 2 6 7 4 2 3 7 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small3-0.dgr000066400000000000000000000000431514310134000257540ustar00rootroot000000000000002 3 0 8 20 2 5 1 000 2 2 5 3 1 3 6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small3-1.adm000066400000000000000000000000521514310134000257420ustar00rootroot000000000000003 3 1 8 15 2 8 1 000 4 3 4 8 9 4 4 5 9 10 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small3-1.dgr000066400000000000000000000000431514310134000257550ustar00rootroot000000000000002 3 1 8 20 2 5 1 000 3 2 4 7 2 3 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small3-2.adm000066400000000000000000000001071514310134000257440ustar00rootroot000000000000003 3 2 8 15 4 16 1 000 4 6 7 11 12 4 7 8 12 13 4 8 9 13 14 4 9 10 14 15 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/data/small3-2.dgr000066400000000000000000000000621514310134000257570ustar00rootroot000000000000002 3 2 8 20 4 10 1 000 2 1 6 3 2 5 7 3 3 6 8 2 4 7 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_common_file_compress.c000066400000000000000000000121741514310134000304320ustar00rootroot00000000000000/* Copyright 2018,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_common_file_compress.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the random number **/ /** generator module. **/ /** **/ /** DATES : # Version 6.0 : from : 09 jul 2018 **/ /** to : 10 jul 2018 **/ /** # Version 7.0 : from : 04 jul 2024 **/ /** to : 05 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* _XOPEN_SOURCE */ #ifndef __USE_XOPEN2K #define __USE_XOPEN2K /* For POSIX pthread_barrier_t */ #endif /* __USE_XOPEN2K */ #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #define C_FILENBR 2 /* Number of files in list */ #define C_BUFFSIZ 65536 #define C_filepntrinp fileBlockFile (C_fileTab, 0) /* Input file */ #define C_filepntrout fileBlockFile (C_fileTab, 1) /* Output file */ /* ** The static and global variables. */ static File C_fileTab[2] = { /* File array */ { FILEMODER }, { FILEMODEW } }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { byte * bufftab; errorProg (argv[0]); if (argc != 3) { errorPrint ("usage: %s infile outfile", argv[0]); exit (EXIT_FAILURE); } if ((bufftab = malloc (C_BUFFSIZ * sizeof (byte))) == NULL) { errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ fileBlockName (C_fileTab, 0) = argv[1]; fileBlockName (C_fileTab, 1) = argv[2]; switch (fileBlockOpen (C_fileTab, C_FILENBR)) { /* Open all files */ case 2 : errorPrint ("main: (de)compression method not implemented"); free (bufftab); exit (EXIT_SUCCESS); case 1 : errorPrint ("main: cannot open files"); free (bufftab); exit (EXIT_FAILURE); } while (1) { size_t bytenbr; if ((bytenbr = fread (bufftab, 1, C_BUFFSIZ, C_filepntrinp)) == 0) { if (ferror (C_filepntrinp)) { errorPrint ("main: read error"); exit (EXIT_FAILURE); } break; } if (fwrite (bufftab, 1, bytenbr, C_filepntrout) != bytenbr) { errorPrint ("main: write error"); exit (EXIT_FAILURE); } } free (bufftab); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (de)compression tasks */ #ifdef COMMON_PTHREAD pthread_exit ((void *) 0); /* Allow potential (de)compression tasks to complete */ #endif /* COMMON_PTHREAD */ exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_common_random.c000066400000000000000000000171421514310134000270600ustar00rootroot00000000000000/* Copyright 2012,2014,2016,2018,2019,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_common_random.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the random number **/ /** generator module. **/ /** **/ /** DATES : # Version 6.0 : from : 01 oct 2014 **/ /** to : 24 aug 2019 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 05 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* _XOPEN_SOURCE */ #ifndef __USE_XOPEN2K #define __USE_XOPEN2K /* For POSIX pthread_barrier_t */ #endif /* __USE_XOPEN2K */ #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #define RANDNBR 100 /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { INT * randtab; int randnum; FILE * fileptr; int passnum; errorProg (argv[0]); if (argc != 3) { errorPrint ("usage: %s state_file passnum", argv[0]); exit (EXIT_FAILURE); } if ((randtab = malloc (RANDNBR * sizeof (INT))) == NULL) { errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } intRandInit (&intranddat); /* Initialize random generator */ for (randnum = 0; randnum < RANDNBR; randnum ++) randtab[randnum] = intRandVal (&intranddat, INTVALMAX); intRandReset (&intranddat); passnum = (atoi (argv[2]) == 0); /* First pass to write file; second pass to read it */ if ((fileptr = fopen (argv[1], (passnum) ? "wb+" : "rb")) == NULL) { errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (passnum) { /* If first pass */ for (randnum = 0; randnum < RANDNBR; randnum ++) { if (randtab[randnum] != intRandVal (&intranddat, INTVALMAX)) { errorPrint ("main: cannot replay random sequence"); exit (EXIT_FAILURE); } } if (fwrite (randtab, sizeof (INT), RANDNBR, fileptr) < RANDNBR) { errorPrint ("main: cannot write to file (1)"); exit (EXIT_FAILURE); } switch (intRandSave (&intranddat, fileptr)) { /* Try to save random state, if enabled */ case 0 : if (fprintf (fileptr, "#") != 1) { /* Write separator character */ errorPrint ("main: cannot write to file (2)"); exit (EXIT_FAILURE); } for (randnum = 0; randnum < RANDNBR; randnum ++) randtab[randnum] = intRandVal (&intranddat, INTVALMAX); if (fwrite (randtab, sizeof (INT), RANDNBR, fileptr) < RANDNBR) { errorPrint ("main: cannot write to file (3)"); exit (EXIT_FAILURE); } break; case 1 : printf ("Random state cannot be saved\n"); break; default : errorPrint ("Could not save random state"); exit (EXIT_FAILURE); } sleep (2); /* Next run will not get the same time() value */ } else { /* Second pass */ char * charptr; int o; if (fread (randtab, sizeof (INT), RANDNBR, fileptr) < RANDNBR) { errorPrint ("main: cannot read from file (1)"); exit (EXIT_FAILURE); } for (randnum = 0; randnum < RANDNBR; randnum ++) { if (randtab[randnum] != intRandVal (&intranddat, INTVALMAX)) break; } o = (randnum == RANDNBR); charptr = (o) ? "same" : "different"; #if ((defined COMMON_DEBUG) || (defined COMMON_RANDOM_FIXED_SEED) || (defined SCOTCH_DETERMINISTIC)) o ^= 1; #endif /* ((defined COMMON_DEBUG) || (defined COMMON_RANDOM_FIXED_SEED) || (defined SCOTCH_DETERMINISTIC)) */ if (o) { errorPrint ("main: two consecutive runs yield %s values.", charptr); exit (EXIT_FAILURE); } printf ("Two consecutive runs yield %s values.\n", charptr); intRandReset (&intranddat); /* Reset random seed to be sure */ switch (intRandLoad (&intranddat, fileptr)) { case 0 : while (1) { /* Discard all CR(LF) before separator character */ int c; c = getc (fileptr); if (c == '#') /* If separator character found */ break; if (c == EOF) { errorPrint ("main: cannot read from file (2)"); exit (EXIT_FAILURE); } } if (fread (randtab, sizeof (INT), RANDNBR, fileptr) < RANDNBR) { errorPrint ("main: cannot read from file (3)"); exit (EXIT_FAILURE); } for (randnum = 0; randnum < RANDNBR; randnum ++) { if (randtab[randnum] != intRandVal (&intranddat, INTVALMAX)) { errorPrint ("main: state not properly saved/restored"); exit (EXIT_FAILURE); } } break; case 1 : errorPrint ("main: random state cannot be loaded"); exit (EXIT_FAILURE); default : SCOTCH_errorPrint ("main: could not save random state"); exit (EXIT_FAILURE); } } fclose (fileptr); free (randtab); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_common_thread.c000066400000000000000000000165051514310134000270510ustar00rootroot00000000000000/* Copyright 2012,2014,2015,2018,2019,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_common_thread.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the thread **/ /** management module. **/ /** **/ /** DATES : # Version 6.0 : from : 04 nov 2012 **/ /** to : 10 jul 2018 **/ /** # Version 7.0 : from : 21 aug 2019 **/ /** to : 31 aug 2021 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* _XOPEN_SOURCE */ #ifndef __USE_XOPEN2K #define __USE_XOPEN2K /* For POSIX pthread_barrier_t */ #endif /* __USE_XOPEN2K */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "../libscotch/common_thread.h" #include "../libscotch/common_thread_system.h" #define COMPVAL(n) (((n) * ((n) + 1)) / 2) /* ** The static and global variables. */ static int C_erroval = 0; /* Global error value */ /* ** The type and structure definitions. */ /*+ The thread-specific data block. +*/ typedef struct TestData_ { int reduval; /*+ Value to reduce +*/ int scanval[2]; /*+ Values for scan +*/ } TestData; /*+ The block data structure +*/ typedef struct TestGroup_ { TestData * datatab; /*+ Thread test data +*/ int redusum; /*+ Value to compare reduction to +*/ } TestGroup; /*************************/ /* */ /* The threaded routine. */ /* */ /*************************/ static void testReduce ( TestData * restrict const vlocptr, /* Pointer to local value */ TestData * restrict const vremptr, /* Pointer to remote value */ void * dataptr) /* Pointer to shared data */ { if (dataptr != &C_erroval) errorPrint ("testReduce: invalid data pointer"); vlocptr->reduval += vremptr->reduval; } static void testScan ( TestData * restrict const vlocptr, /* Pointer to local value */ TestData * restrict const vremptr, /* Pointer to remote value */ const int srcpval, /* Source phase value */ const int dstpval, /* Destination phase value */ void * dataptr) /* Pointer to shared data */ { if (dataptr != &C_erroval) errorPrint ("testScan: invalid data pointer"); vlocptr->scanval[dstpval] = vlocptr->scanval[srcpval] + ((vremptr == NULL) ? 0 : vremptr->scanval[srcpval]); } static void testThreads ( ThreadDescriptor * restrict const descptr, volatile TestGroup * restrict grouptr) { const int thrdnum = threadNum (descptr); TestData * const dataptr = &grouptr->datatab[thrdnum]; printf ("%d: running\n", thrdnum); threadBarrier (descptr); fflush (stdout); if (thrdnum == 0) printf ("Performing reduction\n"); dataptr->reduval = thrdnum + 1; threadReduce (descptr, (void *) dataptr, sizeof (TestData), (ThreadReduceFunc) testReduce, 0, &C_erroval); if ((thrdnum == 0) && /* Test reduction result on thread 0 */ (dataptr->reduval != grouptr->redusum)) { errorPrint ("testThreads: invalid reduction operator (0)"); C_erroval = 1; } threadBarrier (descptr); if (thrdnum == 0) printf ("Performing scan\n"); dataptr->scanval[0] = 1 + thrdnum; threadScan (descptr, (void *) dataptr, sizeof (TestData), (ThreadScanFunc) testScan, &C_erroval); if (dataptr->scanval[0] != COMPVAL (thrdnum + 1)) { errorPrint ("testThreads: invalid scan operator (%d)", thrdnum); C_erroval = 1; } threadBarrier (descptr); /* Final barrier before freeing work array */ } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { ThreadContext contdat; TestGroup groudat; int thrdnbr; errorProg (argv[0]); #ifdef SCOTCH_PTHREAD_NUMBER thrdnbr = SCOTCH_PTHREAD_NUMBER; /* If prescribed number defined at compile time, use it as default */ #else /* SCOTCH_PTHREAD_NUMBER */ thrdnbr = -1; /* Else take the number of cores at run time */ #endif /* SCOTCH_PTHREAD_NUMBER */ thrdnbr = envGetInt ("SCOTCH_PTHREAD_NUMBER", thrdnbr); if (thrdnbr < 1) thrdnbr = threadSystemCoreNbr (); if (threadContextInit (&contdat, thrdnbr, NULL) != 0) { errorPrint ("main: cannot initialize thread context"); exit (EXIT_FAILURE); } thrdnbr = threadContextNbr (&contdat); printf ("%d threads in context\n", thrdnbr); if ((groudat.datatab = malloc (thrdnbr * sizeof (TestData))) == NULL) { errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } groudat.redusum = COMPVAL (thrdnbr); threadLaunch (&contdat, (ThreadFunc) testThreads, (void *) &groudat); free (groudat.datatab); threadContextExit (&contdat); exit ((C_erroval == 0) ? EXIT_SUCCESS : EXIT_FAILURE); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_fibo.c000066400000000000000000000206241514310134000251460ustar00rootroot00000000000000/* Copyright 2016,2018,2019,2022,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_fibo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the fibonacci heap **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 23 aug 2016 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 05 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* _XOPEN_SOURCE */ #ifndef __USE_XOPEN2K #define __USE_XOPEN2K /* For POSIX pthread_barrier_t */ #endif /* __USE_XOPEN2K */ #include "../libscotch/module.h" #include "../libscotch/common.h" #include "../libscotch/fibo.h" /* ** The type and structure definitions. */ /* The fibo cell structure. */ typedef struct TestFibo_ { FiboNode nodedat; /* TRICK: FIRST */ INT randval; } TestFibo; /***************************/ /* */ /* The comparison routine. */ /* */ /***************************/ static int testFiboCmpFunc ( const FiboNode * nod0ptr, const FiboNode * nod1ptr) { INT ran0val; INT ran1val; ran0val = ((TestFibo *) nod0ptr)->randval; ran1val = ((TestFibo *) nod1ptr)->randval; if (ran0val < ran1val) return (-1); return (1); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FiboHeap fibodat; TestFibo * nodetab; TestFibo * nodeptr; int nodesiz; int nodemax; int nodenbr; int nodenum; int nodetmp; int randval; int passnbr; int passnum; errorProg (argv[0]); if (fiboHeapInit (&fibodat, testFiboCmpFunc) != 0) { errorPrint ("main: cannot initialize Fibonacci heap"); exit (EXIT_FAILURE); } intRandInit (&intranddat); /* Initialize random generator */ nodesiz = 100; passnbr = -1; switch (argc) { case 4 : intRandSeed (&intranddat, MAX (0, atoi (argv[3]))); case 3 : passnbr = MAX (1, atoi (argv[2])); case 2 : nodesiz = MAX (1, atoi (argv[1])); case 1 : break; default : errorPrint ("usage: %s [nodenbr [passnbr [seed]]]", argv[0]); exit (EXIT_FAILURE); } if (passnbr < 0) passnbr = 10 * nodesiz; if ((nodetab = malloc (nodesiz * sizeof (TestFibo))) == NULL) { errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } for (nodenum = 0; nodenum < nodesiz; nodenum ++) /* Initialize node array */ nodetab[nodenum].randval = -1; nodemax = nodesiz - 1; /* Set maximum index */ nodenbr = 0; /* Array is empty */ for (passnum = 0; passnum < passnbr; passnum ++) { INT randtmp; switch (intRandVal (&intranddat, 6)) { case 0 : /* Add node */ case 1 : case 2 : /* More additions than deletions on average */ if (nodenbr >= nodemax) break; for (nodenum = 0; nodenum <= nodemax; nodenum ++) { /* Search for a free slot */ if (nodetab[nodenum].randval < 0) break; } if (nodenum > nodemax) { errorPrint ("main: invalid node array (1)"); exit (EXIT_FAILURE); } nodetab[nodenum].randval = (INT) intRandVal (&intranddat, INTVALMAX); /* Only take positive numbers */ fiboHeapAdd (&fibodat, (FiboNode *) &nodetab[nodenum]); nodenbr ++; break; case 3 : /* Remove arbitrary node */ if (nodenbr <= 0) break; nodetmp = (int) intRandVal (&intranddat, nodenbr); for (nodenum = 0; ; nodenum ++) { /* Search for non-empty slot */ if (nodenum > nodemax) { errorPrint ("main: invalid node array (2)"); exit (EXIT_FAILURE); } if (nodetab[nodenum].randval >= 0) { if (-- nodetmp <= 0) break; } } fiboHeapDel (&fibodat, (FiboNode *) &nodetab[nodenum]); nodetab[nodenum].randval = -1; nodenbr --; break; case 4 : /* Remove minimum node */ if (nodenbr <= 0) break; nodeptr = (TestFibo *) fiboHeapMin (&fibodat); randval = nodeptr->randval; /* Keep node key value */ fiboHeapDel (&fibodat, (FiboNode *) nodeptr); /* Remove node first */ nodeptr->randval = -1; nodenbr --; for (nodenum = 0; nodenum <= nodemax; nodenum ++) { /* Check if smaller node exists */ if ((nodetab[nodenum].randval >= 0) && (nodetab[nodenum].randval < randval)) { errorPrint ("main: node is not of minimum key"); exit (EXIT_FAILURE); } } break; case 5 : /* Decrease value of arbitrary node */ if (nodenbr <= 0) break; nodetmp = intRandVal (&intranddat, nodenbr); for (nodenum = 0; ; nodenum ++) { /* Search for non-empty slot */ if (nodenum > nodemax) { errorPrint ("main: invalid node array (3)"); exit (EXIT_FAILURE); } if (nodetab[nodenum].randval >= 0) { if (-- nodetmp <= 0) break; } } if (nodetab[nodenum].randval <= 0) /* Cannot decrease smallest value */ break; randtmp = intRandVal (&intranddat, nodetab[nodenum].randval + 1); if (randtmp > nodetab[nodenum].randval) break; nodetab[nodenum].randval -= randtmp; fiboHeapDecrease (&fibodat, (FiboNode *) &nodetab[nodenum]); break; } } fiboHeapExit (&fibodat); free (nodetab); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_libesmumps.c000066400000000000000000000134351514310134000264110ustar00rootroot00000000000000/* Copyright 2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_libesmumps.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the libesmumps routines. **/ /** **/ /** DATES : # Version 6.0 : from : 19 jan 2020 **/ /** to : 19 jan 2020 **/ /** # Version 6.1 : from : 22 feb 2020 **/ /** to : 05 sep 2020 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "scotch.h" #include "esmumps.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Num vertnbr; SCOTCH_Num vertnum; SCOTCH_Num * verttab; SCOTCH_Num * velotab; SCOTCH_Num edgenbr; SCOTCH_Num * edgetab; SCOTCH_Num * elentab; SCOTCH_Num * lasttab; SCOTCH_Num * lentab; SCOTCH_Num * nvtab; SCOTCH_Num * petab; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, 1, 0) != 0) { /* Read source graph with base 1 for esmumps */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphData (&grafdat, NULL, &vertnbr, &verttab, NULL, &velotab, NULL, &edgenbr, &edgetab, NULL); if (((elentab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((lasttab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((lentab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((nvtab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((petab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } memcpy (petab, verttab, vertnbr * sizeof (SCOTCH_Num)); /* Prepare graph topology arrays */ for (vertnum = 0; vertnum < vertnbr; vertnum ++) lentab[vertnum] = verttab[vertnum + 1] - verttab[vertnum]; if (esmumps (vertnbr, 0, petab, edgenbr + 1, lentab, edgetab, nvtab, elentab, lasttab) != 0) { SCOTCH_errorPrint ("main: cannot run esmumps"); exit (EXIT_FAILURE); } #ifdef ESMUMPS_HAS_ESMUMPSV if (velotab != NULL) { memcpy (petab, verttab, vertnbr * sizeof (SCOTCH_Num)); /* Prepare graph topology arrays */ for (vertnum = 0; vertnum < vertnbr; vertnum ++) lentab[vertnum] = verttab[vertnum + 1] - verttab[vertnum]; memcpy (nvtab, velotab, vertnbr * sizeof (SCOTCH_Num)); /* Prepare node multiplicity array */ if (esmumpsv (vertnbr, 0, petab, edgenbr + 1, lentab, edgetab, nvtab, elentab, lasttab) != 0) { SCOTCH_errorPrint ("main: cannot run esmumpsv"); exit (EXIT_FAILURE); } } #endif /* ESMUMPS_HAS_ESMUMPSV */ free (petab); free (nvtab); free (lentab); free (lasttab); free (elentab); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_libmetis.c000066400000000000000000000202441514310134000260350ustar00rootroot00000000000000/* Copyright 2019,2021,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_libmetis.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the libscotchmetis routines. **/ /** **/ /** DATES : # Version 6.0 : from : 15 may 2019 **/ /** to : 19 may 2019 **/ /** # Version 6.1 : from : 22 jun 2021 **/ /** to : 30 dec 2021 **/ /** # Version 7.0 : from : 08 aug 2024 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Num baseval; SCOTCH_Num vertnbr; SCOTCH_Num * verttab; SCOTCH_Num * velotab; SCOTCH_Num * edgetab; SCOTCH_Num * edlotab; SCOTCH_Num edgecut; SCOTCH_Num * parttab; SCOTCH_Num * peritab; #if (SCOTCH_METIS_VERSION == 3) SCOTCH_Num fwgtval; const SCOTCH_Num foptval = 0; #endif /* (SCOTCH_METIS_VERSION == 3) */ const SCOTCH_Num partnbr = 9; #if (SCOTCH_METIS_VERSION == 5) const double awgttab[9] = { 0.10, 0.10, 0.05, 0.10, 0.20, 0.30, 0.05, 0.05, 0.05 }; const SCOTCH_Num nconval = 1; const double kbaltab[1] = { 0.05 }; SCOTCH_Num options[METIS_NOPTIONS]; #endif /* (SCOTCH_METIS_VERSION == 5) */ SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphData (&grafdat, &baseval, &vertnbr, &verttab, NULL, &velotab, NULL, NULL, &edgetab, &edlotab); if (((parttab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((peritab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } #if (SCOTCH_METIS_VERSION == 3) fwgtval = ((velotab != NULL) ? 2 : 0) + ((edlotab != NULL) ? 1 : 0); if (SCOTCHMETISNAMEC (METIS_PartGraphKway) (&vertnbr, verttab, edgetab, velotab, edlotab, &fwgtval, &baseval, &partnbr, &foptval, &edgecut, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V3_PartGraphKway"); exit (EXIT_FAILURE); } if (SCOTCHMETISNAMEC (METIS_PartGraphRecursive) (&vertnbr, verttab, edgetab, velotab, edlotab, &fwgtval, &baseval, &partnbr, &foptval, &edgecut, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V3_PartGraphRecursive"); exit (EXIT_FAILURE); } fwgtval &= ~2; /* Take vertex load array as communication volume array */ if (SCOTCHMETISNAMEC (METIS_PartGraphVKway) (&vertnbr, verttab, edgetab, NULL, velotab, &fwgtval, &baseval, &partnbr, &foptval, &edgecut, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V3_PartGraphKway"); exit (EXIT_FAILURE); } if (SCOTCHMETISNAMEC (METIS_EdgeND) (&vertnbr, verttab, edgetab, &baseval, &foptval, peritab, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V3_EdgeND"); exit (EXIT_FAILURE); } if (SCOTCHMETISNAMEC (METIS_NodeND) (&vertnbr, verttab, edgetab, &baseval, &foptval, peritab, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V3_NodeND"); exit (EXIT_FAILURE); } if (SCOTCHMETISNAMEC (METIS_NodeWND) (&vertnbr, verttab, edgetab, velotab, &baseval, &foptval, peritab, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V3_NodeWND"); exit (EXIT_FAILURE); } #endif /* (SCOTCH_METIS_VERSION == 3) */ #if (SCOTCH_METIS_VERSION == 5) SCOTCHMETISNAMEC (METIS_SetDefaultOptions) (options); /* MeTiS v5 handles graph base through the option array */ options[METIS_OPTION_NUMBERING] = baseval; if (SCOTCHMETISNAMEC (METIS_PartGraphKway) (&vertnbr, &nconval, verttab, edgetab, velotab, NULL, edlotab, &partnbr, awgttab, kbaltab, options, &edgecut, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V5_PartGraphKway"); exit (EXIT_FAILURE); } if (SCOTCHMETISNAMEC (METIS_PartGraphRecursive) (&vertnbr, &nconval, verttab, edgetab, velotab, NULL, edlotab, &partnbr, awgttab, kbaltab, options, &edgecut, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V5_PartGraphRecursive"); exit (EXIT_FAILURE); } if (SCOTCHMETISNAMEC (METIS_NodeND) (&vertnbr, verttab, edgetab, velotab, options, peritab, parttab) != METIS_OK) { SCOTCH_errorPrint ("main: error in METIS_V5_NodeND"); exit (EXIT_FAILURE); } #endif /* (SCOTCH_METIS_VERSION == 5) */ free (peritab); free (parttab); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_libmetis_dual.c000066400000000000000000000144561514310134000270520ustar00rootroot00000000000000/* Copyright 2021,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_libmetis_dual.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operations of **/ /** libscotchmetis dual graph routines. **/ /** **/ /** DATES : # Version 6.1 : from : 10 feb 2021 **/ /** to : 17 jul 2021 **/ /** # Version 7.0 : from : 08 aug 2024 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Num vertnum; SCOTCH_Num edgenum; SCOTCH_Num * xadj; SCOTCH_Num * adjncy; SCOTCH_Num ncommon = 1; SCOTCH_Num baseval = 0; SCOTCH_Num xadnbr; SCOTCH_Num adjnbr; SCOTCH_Num * epart; SCOTCH_Num * npart; SCOTCH_Num nparts; SCOTCH_Num objval; SCOTCH_Num options[METIS_NOPTIONS]; SCOTCH_Num ne = 6; SCOTCH_Num nn = 7; double tpwgt[3] = { 0.75, 0.125, 0.125 }; SCOTCH_Num vgwt[6] = { 1, 2, 1, 1, 1, 1 }; SCOTCH_Num eptr[] = { 0, 3, 6, 9, 12, 15, 18 }; SCOTCH_Num eind[] = { 0, 1, 2, 0, 1, 5, 1, 5, 4, 1, 4, 6, 1, 6, 3, 1, 3, 2 }; SCOTCH_Num xadj_c[] = { 0, 5, 10, 15, 20, 25, 30 }; SCOTCH_Num adjncy_c[] = { 1, 2, 3, 4, 5, 0, 2, 3, 4, 5, 0, 1, 3, 4, 5, 0, 1, 2, 4, 5, 0, 1, 2, 3, 5, 0, 1, 2, 3, 4 }; SCOTCH_errorProg (argv[0]); xadnbr = sizeof (xadj_c) / sizeof (SCOTCH_Num); adjnbr = sizeof (adjncy_c) / sizeof (SCOTCH_Num); if (argc >= 2) { SCOTCH_Num edgenbr; SCOTCH_Num velmnum; baseval = atoi (argv[1]); edgenbr = eptr[ne]; /* Preserve un-based number of edges */ for (velmnum = 0; velmnum <= ne; velmnum ++) eptr[velmnum] += baseval; for (edgenum = 0; edgenum < edgenbr; edgenum ++) eind[edgenum] += baseval; for (vertnum = 0; vertnum < xadnbr; vertnum ++) xadj_c[vertnum] += baseval; for (edgenum = 0; edgenum < adjnbr; edgenum ++) adjncy_c[edgenum] += baseval; } SCOTCHMETISNAMEC (METIS_MeshToDual) (&ne, &nn, eptr, eind, &ncommon, &baseval, &xadj, &adjncy); if (xadj == NULL) { SCOTCH_errorPrint ("main: error in METIS_MeshToDual"); exit (EXIT_FAILURE); } for (vertnum = 0; vertnum < xadnbr; vertnum ++) { if (xadj[vertnum] != xadj_c[vertnum]) { SCOTCH_errorPrint ("main: invalid vertex array"); exit (EXIT_FAILURE); } } for (edgenum = 0; edgenum < adjnbr; edgenum ++) { if (adjncy[edgenum] != adjncy_c[edgenum]) { SCOTCH_errorPrint ("main: invalid edge array"); exit (EXIT_FAILURE); } } free (xadj); /* Free memory arrays allocated by METIS_MeshToDual() */ free (adjncy); if (((epart = (SCOTCH_Num *) malloc (ne * sizeof (SCOTCH_Num))) == NULL) || ((npart = (SCOTCH_Num *) malloc (nn * sizeof (SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } nparts = 3; ncommon ++; SCOTCHMETISNAMEC (METIS_SetDefaultOptions) (options); options[METIS_OPTION_NUMBERING] = baseval; SCOTCHMETISNAMEC (METIS_PartMeshDual) (&ne, &nn, eptr, eind, vgwt, NULL, &ncommon, &nparts, tpwgt, options, &objval, epart, npart); if (objval < 0) { SCOTCH_errorPrint ("main: error in METIS_PartMeshDual"); exit (EXIT_FAILURE); } free (npart); free (epart); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_libmetis_dual_f.f90.in000066400000000000000000000134011514310134000301250ustar00rootroot00000000000000!* Copyright 2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS !* !* This file is part of the Scotch software package for static mapping, !* graph partitioning and sparse matrix ordering. !* !* This software is governed by the CeCILL-C license under French law !* and abiding by the rules of distribution of free software. You can !* use, modify and/or redistribute the software under the terms of the !* CeCILL-C license as circulated by CEA, CNRS and INRIA at the following !* URL: "http://www.cecill.info". !* !* As a counterpart to the access to the source code and rights to copy, !* modify and redistribute granted by the license, users are provided !* only with a limited warranty and the software's author, the holder of !* the economic rights, and the successive licensors have only limited !* liability. !* !* In this respect, the user's attention is drawn to the risks associated !* with loading, using, modifying and/or developing or reproducing the !* software by the user in light of its specific status of free software, !* that may mean that it is complicated to manipulate, and that also !* therefore means that it is reserved for developers and experienced !* professionals having in-depth computer knowledge. Users are therefore !* encouraged to load and test the software's suitability as regards !* their requirements in conditions enabling the security of their !* systems and/or data to be ensured and, more generally, to use and !* operate it in the same conditions as regards security. !* !* The fact that you are presently reading this means that you have had !* knowledge of the CeCILL-C license and that you accept its terms. ! !*********************************************************** !* ** !* NAME : test_libmetis_dual_f.f90 ** !* ** !* AUTHOR : Marc FUENTES ** !* Francois PELLEGRINI ** !* ** !* FUNCTION : This module tests te operation of ** !* libscotchmetis dual graph routines. ** !* ** !* DATES : # Version 6.1 : from : 10 feb 2021 ** !* to 22 jun 2021 ** !* # Version 7.0 : from : 09 aug 2024 ** !* to 11 aug 2024 ** !* ** !234567***************************************************** program test_libmetis_dual use iso_c_binding implicit none interface subroutine free_c(ptr) bind(c, name='free') use, intrinsic :: iso_c_binding, only: c_ptr type(c_ptr), value, intent(in) :: ptr end subroutine free_c subroutine exit_c(val) bind(c, name='exit') use, intrinsic :: iso_c_binding, only: c_int integer(c_int), value, intent(in) :: val end subroutine exit_c end interface include 'scotchf.h' include 'metisf.h' integer :: i, argc type(c_ptr) :: xadj type(c_ptr) :: adjncy integer(SCOTCH_NUMSIZE), pointer :: xadj_f(:) integer(SCOTCH_NUMSIZE), pointer :: adjncy_f(:) integer(SCOTCH_NUMSIZE), allocatable :: epart(:) integer(SCOTCH_NUMSIZE), allocatable :: npart(:) integer(SCOTCH_NUMSIZE) :: nparts integer(SCOTCH_NUMSIZE) :: objval integer(SCOTCH_NUMSIZE), parameter :: baseval = 1 integer(SCOTCH_NUMSIZE), parameter :: ne = 6 integer(SCOTCH_NUMSIZE), parameter :: nn = 7 integer(SCOTCH_NUMSIZE) :: eptr(7) = [ 0, 3, 6, 9, 12, 15, 18 ] integer(SCOTCH_NUMSIZE) :: eind(18) = [ 0, 1, 2, 0, 1, 5, 1, 5, 4, 1, 4, 6, 1, 6, 3, 1, 3, 2 ] integer(SCOTCH_NUMSIZE) :: xadj_c(7) = [ 0, 5, 10, 15, 20, 25, 30 ] integer(SCOTCH_NUMSIZE) :: adjncy_c(30) = [ 1, 2, 3, 4, 5, 0, 2, 3, 4, 5, 0, 1, 3, 4, 5, 0, 1, 2, 4, 5, 0, & 1, 2, 3, 5, 0, 1, 2, 3, 4 ] integer(SCOTCH_NUMSIZE) :: options(METIS_NOPTIONS) integer(SCOTCH_NUMSIZE) :: ncommon = 1 allocate (epart(ne)) allocate (npart(nn)) eind (:) = eind (:) + baseval eptr (:) = eptr (:) + baseval xadj_c (:) = xadj_c (:) + baseval adjncy_c (:) = adjncy_c (:) + baseval call SCOTCHMETISNAMEFU (METIS_MeshToDual) (ne, nn, eptr, eind, ncommon, baseval, xadj, adjncy) if (.not. c_associated (xadj)) then print *, "ERROR: main: error in METIS_MeshToDual" call exit_c (1) end if call c_f_pointer (xadj, xadj_f, [7]) ! convert c_pointers to fortran arrays call c_f_pointer (adjncy, adjncy_f, [30]) do i = 1, 7 if (xadj_f(i) /= xadj_c(i)) then print *, "ERROR: main: invalid vertex array" call exit_c (1) end if end do do i = 1, 30 if (adjncy_f(i) /= adjncy_c(i)) then print *, "ERROR: main: invalid edge array" call exit_c (1) end if end do ! Free c pointers calling the stdlib free function call free_c (xadj) call free_c (adjncy) block real(c_double) :: tpwgt(3) = [ 0.75, 0.125, 0.125 ] integer(SCOTCH_NUMSIZE) :: vgwt(6) = [ 1, 2, 1, 1, 1, 1 ] integer(SCOTCH_NUMSIZE) :: vsize(6) = [ 2, 1, 2, 2, 3, 1 ] nparts = 3 ncommon = ncommon + 1 call SCOTCHMETISNAMEFU (METIS_SetDefaultOptions) (options) options (METIS_OPTION_NUMBERING) = baseval call SCOTCHMETISNAMEFU (METIS_PartMeshDual) (ne, nn, eptr, eind, vgwt, vsize, ncommon, nparts, tpwgt, options, objval, epart, npart) end block deallocate (npart) deallocate (epart) end program test_libmetis_dual scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_multilib.c000066400000000000000000000104571514310134000260530ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_multilib.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the use of two **/ /** versions of the libScotch libraries. **/ /** **/ /** DATES : # Version 6.0 : from : 27 apr 2018 **/ /** to : 22 may 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "scotch.h" #include "scotch_64.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Num vertnbr; SCOTCH_Graph_64 grafdat_64; SCOTCH_Num_64 vertnbr_64; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if ((SCOTCH_graphInit (&grafdat) != 0) || (SCOTCH_graphInit_64 (&grafdat_64) != 0)) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph (1)"); exit (EXIT_FAILURE); } fclose (fileptr); if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (2)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad_64 (&grafdat_64, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph (2)"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphSize (&grafdat, &vertnbr, NULL); SCOTCH_graphSize_64 (&grafdat_64, &vertnbr_64, NULL); SCOTCH_graphExit (&grafdat); SCOTCH_graphExit_64 (&grafdat_64); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_arch.c000066400000000000000000000160541514310134000265110ustar00rootroot00000000000000/* Copyright 2014,2015,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_arch.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_arch*() routines. **/ /** **/ /** DATES : # Version 6.0 : from : 25 jun 2014 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #define ARCHNBR 20 /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Arch archtab[ARCHNBR]; SCOTCH_Num vnumnbr = 5; SCOTCH_Num vnumtab[8] = { 0, 4, 1, 5, 7, 11, 13, 15 }; SCOTCH_Num dimnnbr = 5; SCOTCH_Num dimntab[5] = { 3, 3, 5, 4, 8 }; SCOTCH_Num levlnbr = 3; SCOTCH_Num sizetab[3] = { 6, 3, 4 }; SCOTCH_Num linktab[3] = { 20, 5, 1 }; int archnbr = 0; int i; SCOTCH_errorProg (argv[0]); SCOTCH_randomReset (); if (SCOTCH_archHcub (&archtab[archnbr ++], 4) != 0) { /* TRICK: must be in rank 0 to create sub-architecture from it */ SCOTCH_errorPrint ("main: cannot create hcub architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archCmplt (&archtab[archnbr ++], 8) != 0) { SCOTCH_errorPrint ("main: cannot create cmplt architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archMesh2 (&archtab[archnbr ++], 2, 4) != 0) { SCOTCH_errorPrint ("main: cannot create mesh2D architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archMesh3 (&archtab[archnbr ++], 3, 4, 5) != 0) { SCOTCH_errorPrint ("main: cannot create mesh3D architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archMeshX (&archtab[archnbr ++], dimnnbr, dimntab) != 0) { SCOTCH_errorPrint ("main: cannot create meshXD architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archTleaf (&archtab[archnbr ++], levlnbr, sizetab, linktab) != 0) { SCOTCH_errorPrint ("main: cannot create tleaf architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archTorus2 (&archtab[archnbr ++], 2, 4) != 0) { SCOTCH_errorPrint ("main: cannot create torus2D architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archTorus3 (&archtab[archnbr ++], 3, 4, 5) != 0) { SCOTCH_errorPrint ("main: cannot create torus3D architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archTorusX (&archtab[archnbr ++], dimnnbr, dimntab) != 0) { SCOTCH_errorPrint ("main: cannot create torusXD architecture"); exit (EXIT_FAILURE); } if (SCOTCH_archSub (&archtab[archnbr ++], &archtab[0], vnumnbr + 3, vnumtab) != 0) { /* TRICK: create sub-architecture of hypercube at rank 0 */ SCOTCH_errorPrint ("main: cannot create sub-architecture (1)"); exit (EXIT_FAILURE); } for (i = 0; i < archnbr; i ++) { if (SCOTCH_archSub (&archtab[i + archnbr], &archtab[i], vnumnbr, vnumtab) != 0) { /* Create sub-architectures (of sub-architecture, too) */ SCOTCH_errorPrint ("main: cannot create sub-architecture (%d)", 2 + i); exit (EXIT_FAILURE); } } archnbr *= 2; /* Number of architectures has doubled */ if ((fileptr = fopen (argv[1], "w+")) == NULL) { /* Write all architectures to file */ SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } for (i = 0; i < archnbr; i ++) { /* Save all architectures to same file */ if (SCOTCH_archSave (&archtab[i], fileptr) != 0) { SCOTCH_errorPrint ("main: cannot save architecture (%d)", 1 + i); exit (EXIT_FAILURE); } } fclose (fileptr); for (i = archnbr - 1; i >= 0; i --) /* Destroy architectures in reverse order to destroy sub-architectures first */ SCOTCH_archExit (&archtab[i]); if ((fileptr = fopen (argv[1], "r")) == NULL) { /* Read all architectures from file where they were written to */ SCOTCH_errorPrint ("main: cannot open file (2)"); exit (EXIT_FAILURE); } for (i = 0; i < archnbr; i ++) { if ((SCOTCH_archInit (&archtab[i]) != 0) || (SCOTCH_archLoad (&archtab[i], fileptr) != 0)) { SCOTCH_errorPrint ("main: cannot load architecture (%d)", 1 + i); exit (EXIT_FAILURE); } } fclose (fileptr); for (i = 0; i < archnbr; i ++) /* Destroy architectures in any order, as they are now all autonomous from each other */ SCOTCH_archExit (&archtab[i]); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_arch_deco.c000066400000000000000000000154251514310134000275040ustar00rootroot00000000000000/* Copyright 2015,2016,2018,2019,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_arch_deco.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_arch*() routines. **/ /** **/ /** DATES : # Version 6.0 : from : 28 dec 2015 **/ /** to : 25 sep 2019 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /** DATES : # This code derives from that of **/ /** test_scotch_arch.c **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #define ARCHNBR 6 /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Num vertnbr; SCOTCH_Graph grafdat; SCOTCH_Strat stradat; SCOTCH_Arch archtab[ARCHNBR]; int archnbr = 0; int i; SCOTCH_Num listnbr = 5; SCOTCH_Num listtab[] = { 0, 4, 1, 5, 7 }; SCOTCH_errorProg (argv[0]); if (argc != 3) { SCOTCH_errorPrint ("usage: %s graph_file architecture_file", argv[0]); exit (EXIT_FAILURE); } SCOTCH_randomReset (); if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphSize (&grafdat, &vertnbr, NULL); if (vertnbr < 8) { SCOTCH_errorPrint ("main: graph is too small"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[2], "w")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } SCOTCH_stratInit (&stradat); for (i = 1, archnbr = 0; i <= 2; i ++) { int j; int o; if (i == 1) o = SCOTCH_archBuild0 (&archtab[archnbr], &grafdat, vertnbr, NULL, &stradat); else o = SCOTCH_archBuild2 (&archtab[archnbr], &grafdat, vertnbr, NULL); if (o != 0) { SCOTCH_errorPrint ("main: cannot create decomposition-described architecture (%d)", 2 * i - 1); exit (EXIT_FAILURE); } if (i == 1) o = SCOTCH_archBuild0 (&archtab[archnbr + 1], &grafdat, listnbr, listtab, &stradat); else o = SCOTCH_archBuild2 (&archtab[archnbr + 1], &grafdat, listnbr, listtab); if (o != 0) { SCOTCH_errorPrint ("main: cannot create decomposition-described architecture (%d)", 2 * i); exit (EXIT_FAILURE); } if (i == 2) { if (SCOTCH_archSub (&archtab[archnbr + 2], &archtab[archnbr], listnbr, listtab) != 0) { SCOTCH_errorPrint ("main: cannot create sub-architecture (%d)", i); exit (EXIT_FAILURE); } } for (j = 0; j < (1 + i); j ++) { if (SCOTCH_archSave (&archtab[archnbr + j], fileptr) != 0) { SCOTCH_errorPrint ("main: cannot save architecture (%d)", archnbr + 1 + j); exit (EXIT_FAILURE); } } archnbr += (1 + i); } fclose (fileptr); SCOTCH_stratExit (&stradat); for (i = archnbr - 1; i >= 0; i --) /* Destroy architectures in reverse order to destroy sub-architectures first */ SCOTCH_archExit (&archtab[i]); SCOTCH_graphExit (&grafdat); if ((fileptr = fopen (argv[2], "r")) == NULL) { /* Read all architectures from file where they were written to */ SCOTCH_errorPrint ("main: cannot open file (2)"); exit (EXIT_FAILURE); } for (i = 0; i < archnbr; i ++) { if ((SCOTCH_archInit (&archtab[i]) != 0) || (SCOTCH_archLoad (&archtab[i], fileptr) != 0)) { SCOTCH_errorPrint ("main: cannot load architecture (%d)", 1 + i); exit (EXIT_FAILURE); } } fclose (fileptr); for (i = 0; i < archnbr; i ++) /* Destroy architectures in any order, as they are now all autonomous from each other */ SCOTCH_archExit (&archtab[i]); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_context.c000066400000000000000000000270721514310134000272620ustar00rootroot00000000000000/* Copyright 2019,2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_context.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the thread import **/ /** feature of the library Context object. **/ /** **/ /** DATES : # Version 7.0 : from : 25 aug 2019 **/ /** to : 30 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* _XOPEN_SOURCE */ #ifndef __USE_XOPEN2K #define __USE_XOPEN2K /* For POSIX pthread_barrier_t */ #endif /* __USE_XOPEN2K */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "../libscotch/context.h" #include "../libscotch/graph.h" #include "scotch.h" /* ** The type and structure definitions. */ /*+ The thread-specific data block that represents what a thread has access to. +*/ typedef struct TestThreadData_ { SCOTCH_Context * contptr; /* Pointer to the context */ int thrdnum; } TestThreadData; /**********************************/ /* */ /* The fake threaded API routine. */ /* */ /**********************************/ /* This routine checks that a context is proprely ** bound to a graph and tests it. ** It returns: ** - 0 : if the binding succeeded. ** - !0 : on error. */ static void scotchGraphDoUsefulStuff ( ThreadDescriptor * restrict const descptr, const Graph * restrict const grafptr) { const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); printf ("(%d/%d) : " GNUMSTRING "\n", thrdnum, thrdnbr, grafptr->vertnbr); } /* Split work routine. */ void scotchSplit ( Context * const contptr, /* Sub-context */ const int spltnum, /* Rank of sub-context (0 or 1) */ Graph * restrict const grafptr) { const int thrdnbr = contextThreadNbr (contptr); printf ("Sub-context %d (%d) : " GNUMSTRING ", " GNUMSTRING "\n", spltnum, thrdnbr, grafptr->vertnbr, contextIntRandVal (contptr, grafptr->vertnbr)); printf ("Launching multi-threaded work in sub-context\n"); contextThreadLaunch (contptr, (ThreadFunc) scotchGraphDoUsefulStuff, grafptr); } /* Context-dependent main task routine. */ int SCOTCH_graphDoUsefulStuff ( const SCOTCH_Graph * restrict const libgrafptr) { CONTEXTDECL (libgrafptr); if (CONTEXTINIT (libgrafptr)) { errorPrint (STRINGIFY (SCOTCH_contextGraphTest) ": cannot initialize context"); return (1); } printf ("Launching multi-threaded work in provided context\n"); contextThreadLaunch (CONTEXTGETDATA (libgrafptr), /* Fake libScotch routine uses worker threads to perform some task in parallel */ (ThreadFunc) scotchGraphDoUsefulStuff, (void *) CONTEXTGETOBJECT (libgrafptr)); printf ("Splitting provided context\n"); contextThreadLaunchSplit (CONTEXTGETDATA (libgrafptr), (ContextSplitFunc) scotchSplit, (void *) CONTEXTGETOBJECT (libgrafptr)); printf ("Back to provided context\n"); CONTEXTEXIT (libgrafptr); return (0); } /********************************/ /* */ /* The threaded import routine. */ /* */ /********************************/ #ifdef COMMON_PTHREAD static void * testContextImport ( TestThreadData * thrdptr) { pthread_t thidval; thidval = pthread_self (); pthread_detach (thidval); /* Pretend not to care about the worker threads */ SCOTCH_contextThreadImport2 (thrdptr->contptr, thrdptr->thrdnum); /* All threads should call contextThreadImport2(); worker threads are captured */ return (NULL); /* Worker threads live their own life after the context is freed */ } #endif /* COMMON_PTHREAD */ /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Context contdat; TestThreadData * thrdtab; /* Array of thread local data */ int thrdnbr; int thrdnum; SCOTCH_Graph graftab[2]; /* Original graph and context container */ int * coretab; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } #ifdef SCOTCH_PTHREAD_NUMBER thrdnbr = SCOTCH_PTHREAD_NUMBER; /* If prescribed number defined at compile time, use it as default */ #else /* SCOTCH_PTHREAD_NUMBER */ thrdnbr = 3; #endif /* SCOTCH_PTHREAD_NUMBER */ SCOTCH_graphInit (&graftab[0]); if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&graftab[0], fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); printf ("Using a default context\n"); if (SCOTCH_contextInit (&contdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize context"); exit (EXIT_FAILURE); } SCOTCH_graphInit (&graftab[1]); if (SCOTCH_contextBindGraph (&contdat, &graftab[0], &graftab[1]) != 0) { /* graftab[1] is the context graph */ SCOTCH_errorPrint ("main: cannot bind context (1)"); exit (EXIT_FAILURE); } SCOTCH_graphDoUsefulStuff (&graftab[1]); /* Do some useful work using the context graph */ SCOTCH_graphExit (&graftab[1]); /* Free the context graph before its bound context */ SCOTCH_contextExit (&contdat); printf ("Using a tailored context (1)\n"); SCOTCH_contextInit (&contdat); SCOTCH_contextThreadSpawn (&contdat, thrdnbr, NULL); SCOTCH_graphInit (&graftab[1]); if (SCOTCH_contextBindGraph (&contdat, &graftab[0], &graftab[1]) != 0) { /* graftab[1] is the context graph */ SCOTCH_errorPrint ("main: cannot bind context (2)"); exit (EXIT_FAILURE); } SCOTCH_graphDoUsefulStuff (&graftab[1]); /* Do some useful work using the context graph */ SCOTCH_graphExit (&graftab[1]); SCOTCH_contextExit (&contdat); printf ("Using a tailored context (2)\n"); if ((coretab = (int *) malloc (thrdnbr * sizeof (int))) == NULL) { /* Create core placement array */ SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } coretab[0] = 0; for (thrdnum = 1; thrdnum < thrdnbr; thrdnum ++) coretab[thrdnum] = thrdnbr - thrdnum; SCOTCH_contextInit (&contdat); SCOTCH_contextThreadSpawn (&contdat, thrdnbr, coretab); if (SCOTCH_contextRandomClone (&contdat) != 0) { SCOTCH_errorPrint ("main: cannot clone random context"); exit (EXIT_FAILURE); } free (coretab); SCOTCH_graphInit (&graftab[1]); if (SCOTCH_contextBindGraph (&contdat, &graftab[0], &graftab[1]) != 0) { /* graftab[1] is the context graph */ SCOTCH_errorPrint ("main: cannot bind context (3)"); exit (EXIT_FAILURE); } SCOTCH_graphDoUsefulStuff (&graftab[1]); /* Do some useful work using the context graph */ SCOTCH_graphExit (&graftab[1]); SCOTCH_contextExit (&contdat); printf ("Using an imported context\n"); if ((thrdtab = (TestThreadData *) malloc (thrdnbr * sizeof (TestThreadData))) == NULL) { /* Create a fake environment for threads */ SCOTCH_errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } for (thrdnum = 0; thrdnum < thrdnbr; thrdnum ++) { thrdtab[thrdnum].contptr = &contdat; /* All threads know where the context is */ thrdtab[thrdnum].thrdnum = thrdnum; /* All threads know their index in their thread group */ } SCOTCH_contextInit (&contdat); /* Leader thread creates the context */ SCOTCH_contextThreadImport1 (&contdat, thrdnbr); /* Leader thread calls "Import1" before any others */ #ifdef COMMON_PTHREAD for (thrdnum = 1; thrdnum < thrdnbr; thrdnum ++) { /* Then all other threads run their part */ pthread_t thidval; if (pthread_create (&thidval, NULL, (void * (*) (void *)) testContextImport, (void *) &thrdtab[thrdnum]) != 0) { SCOTCH_errorPrint ("main: cannot launch thread (%d)", thrdnum); exit (EXIT_FAILURE); } } #endif /* COMMON_PTHREAD */ SCOTCH_contextThreadImport2 (&contdat, 0); /* Leader thread calls "Import2" along with all other threads */ SCOTCH_graphInit (&graftab[1]); if (SCOTCH_contextBindGraph (&contdat, &graftab[0], &graftab[1]) != 0) { /* graftab[1] is the context graph */ SCOTCH_errorPrint ("main: cannot bind context (4)"); exit (EXIT_FAILURE); } SCOTCH_graphDoUsefulStuff (&graftab[1]); /* Do some useful work using the context graph */ SCOTCH_graphExit (&graftab[1]); SCOTCH_contextExit (&contdat); /* Worker threads are released when the context is destroyed */ free (thrdtab); SCOTCH_graphExit (&graftab[0]); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_band.c000066400000000000000000000162231514310134000300230ustar00rootroot00000000000000/* Copyright 2011,2012,2014,2015,2018,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_band.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_dgraphBand() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 10 nov 2011 **/ /** to : 21 may 2018 **/ /** # Version 6.1 : from : 28 dec 2021 **/ /** to : 28 dec 2021 **/ /** # Version 7.0 : from : 03 jul 2023 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "ptscotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ SCOTCH_Num vertglbnbr; SCOTCH_Num vertlocnbr; SCOTCH_Num * fronloctab; SCOTCH_Num baseval; SCOTCH_Dgraph grafdat; SCOTCH_Dgraph bandgrafdat; SCOTCH_Num bandvertglbnbr; SCOTCH_Num bandvertlocnbr; SCOTCH_Num * bandvlblloctab; FILE * file; int procnum; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 3) { SCOTCH_errorPrint ("usage: %s graph_file mapping_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph (1)"); exit (EXIT_FAILURE); } file = NULL; if ((proclocnum == 0) && ((file = fopen (argv[1], "r")) == NULL)) { SCOTCH_errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphLoad (&grafdat, file, -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } if (file != NULL) fclose (file); if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&grafdat, &baseval, &vertglbnbr, &vertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if ((fronloctab = malloc (vertlocnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: cannot allocate frontier array"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&bandgrafdat, proccomm) != 0) { /* Initialize band graph */ SCOTCH_errorPrint ("main: cannot initialize graph (2)"); exit (EXIT_FAILURE); } fronloctab[0] = baseval; if (SCOTCH_dgraphBand (&grafdat, (proclocnum == 1) ? 1 : 0, fronloctab, 4, &bandgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot compute band graph"); exit (EXIT_FAILURE); } free (fronloctab); SCOTCH_dgraphData (&bandgrafdat, &baseval, &bandvertglbnbr, &bandvertlocnbr, NULL, NULL, NULL, NULL, NULL, &bandvlblloctab, NULL, NULL, NULL, NULL, NULL, NULL, NULL); for (procnum = 0; procnum < procglbnbr; procnum ++) { SCOTCH_Num bandvertlocnum; MPI_Barrier (proccomm); if (procnum == proclocnum) { if ((file = fopen (argv[2], (procnum == 0) ? "w" : "a+")) == NULL) { SCOTCH_errorPrint ("main: cannot open mapping file"); exit (EXIT_FAILURE); } if (procnum == 0) fprintf (file, "%ld\n", (long) bandvertglbnbr); for (bandvertlocnum = 0; bandvertlocnum < bandvertlocnbr; bandvertlocnum ++) fprintf (file, "%ld\t1\n", (long) bandvlblloctab[bandvertlocnum]); fclose (file); } } SCOTCH_dgraphExit (&bandgrafdat); SCOTCH_dgraphExit (&grafdat); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_check.c000066400000000000000000000126631514310134000302000ustar00rootroot00000000000000/* Copyright 2014,2015,2018,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_dgraphCheck() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 28 sep 2014 **/ /** to : 22 may 2018 **/ /** # Version 6.1 : from : 28 dec 2021 **/ /** to : 28 dec 2021 **/ /** # Version 7.0 : from : 03 jul 2023 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "ptscotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ SCOTCH_Dgraph grafdat; FILE * file; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } file = NULL; if ((proclocnum == 0) && ((file = fopen (argv[1], "r")) == NULL)) { SCOTCH_errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphLoad (&grafdat, file, -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } if (file != NULL) fclose (file); if (SCOTCH_dgraphCheck (&grafdat) != 0) { SCOTCH_errorPrint ("main: invalid graph"); exit (EXIT_FAILURE); } if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } SCOTCH_dgraphExit (&grafdat); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_coarsen.c000066400000000000000000000213351514310134000305510ustar00rootroot00000000000000/* Copyright 2014,2015,2018,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_dgraphCoarsen() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 28 sep 2014 **/ /** to : 22 may 2018 **/ /** # Version 6.1 : from : 16 jun 2021 **/ /** to : 28 dec 2021 **/ /** # Version 7.0 : from : 03 jul 2023 **/ /** to : 02 Aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "ptscotch.h" static File C_fileTab[1] = { /* File array */ { FILEMODER } }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ SCOTCH_Dgraph finegrafdat; SCOTCH_Num finevertglbnbr; SCOTCH_Num finevertlocnbr; SCOTCH_Dgraph coargrafdat; SCOTCH_Num coarvertglbnbr; SCOTCH_Num coarvertlocnbr; double coarrat; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ int i; SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } fileBlockInit (C_fileTab, 1); /* Set default stream pointers */ fileBlockName (C_fileTab, 0) = argv[1]; /* Use provided file */ if (SCOTCH_dgraphInit (&finegrafdat, proccomm) != 0) { /* Initialize fine graph */ SCOTCH_errorPrint ("main: cannot initialize graph (1)"); exit (EXIT_FAILURE); } fileBlockOpenDist (C_fileTab, 1, procglbnbr, proclocnum, 0); /* Open all files */ if (SCOTCH_dgraphLoad (&finegrafdat, fileBlockFile (C_fileTab, 0), -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fileBlockClose (C_fileTab, 1); /* Always close explicitely to end eventual (un)compression tasks */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&finegrafdat, NULL, &finevertglbnbr, &finevertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); coarrat = 0.8; /* Lazy coarsening ratio */ for (i = 0; i < 3; i ++) { /* For all test cases */ SCOTCH_Num coarvertlocmax; SCOTCH_Num * multloctab; SCOTCH_Num foldval; char * foldstr; char * coarstr; int procnum; int o; switch (i) { case 0 : foldval = SCOTCH_COARSENNONE; foldstr = "Plain coarsening"; break; case 1 : foldval = SCOTCH_COARSENFOLD; foldstr = "Folding"; break; case 2 : foldval = SCOTCH_COARSENFOLDDUP; foldstr = "Folding with duplication"; break; } if (proclocnum == 0) printf ("%s\n", foldstr); coarvertlocmax = SCOTCH_dgraphCoarsenVertLocMax (&finegrafdat, foldval); /* Get upper bound on size of multinode array */ if ((multloctab = malloc (coarvertlocmax * 2 * sizeof (SCOTCH_Num))) == NULL) { /* Allocate prescribed size */ SCOTCH_errorPrint ("main: cannot allocate multinode array"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&coargrafdat, proccomm) != 0) { /* Initialize band graph */ SCOTCH_errorPrint ("main: cannot initialize graph (2)"); exit (EXIT_FAILURE); } o = SCOTCH_dgraphCoarsen (&finegrafdat, 0, coarrat, foldval, &coargrafdat, multloctab); switch (o) { case 0 : coarstr = ((foldval == SCOTCH_COARSENFOLD) && (proclocnum > (procglbnbr / 2))) ? "folded graph not created here" : "coarse graph created"; break; case 1 : coarstr = "graph could not be coarsened"; break; default : coarstr = "cannot create coarse graph"; o = 2; /* Set unique error flag */ break; } if (o == 2) { SCOTCH_errorPrint ("main: %s", coarstr); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&coargrafdat, NULL, &coarvertglbnbr, &coarvertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); for (procnum = 0; procnum < procglbnbr; procnum ++) { if (coarvertlocnbr > coarvertlocmax) { SCOTCH_errorPrint ("main: invalid local multinode array size"); exit (EXIT_FAILURE); } if (procnum == proclocnum) printf ("%d: %s (" SCOTCH_NUMSTRING " / " SCOTCH_NUMSTRING " / " SCOTCH_NUMSTRING " / %f)\n", procnum, coarstr, finevertlocnbr, coarvertlocmax, coarvertlocnbr, (double) coarvertglbnbr / (double) finevertglbnbr); MPI_Barrier (proccomm); } SCOTCH_dgraphExit (&coargrafdat); free (multloctab); } SCOTCH_dgraphExit (&finegrafdat); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_grow.c000066400000000000000000000173571514310134000301060ustar00rootroot00000000000000/* Copyright 2012,2014,2015,2018,2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_grow.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_dgraphGrow() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 26 sep 2012 **/ /** to : 22 may 2018 **/ /** # Version 6.1 : from : 28 dec 2021 **/ /** to : 28 dec 2021 **/ /** # Version 7.0 : from : 14 jan 2020 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #include "ptscotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Status statdat; MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ long vertlocadj; SCOTCH_Num vertglbnbr; SCOTCH_Num vertlocnbr; SCOTCH_Num vertgstnbr; SCOTCH_Num * seedloctab; SCOTCH_Num * partgsttab; SCOTCH_Num baseval; SCOTCH_Dgraph grafdat; FILE * file; int procnum; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 3) { SCOTCH_errorPrint ("usage: %s graph_file mapping_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } file = NULL; if ((proclocnum == 0) && ((file = fopen (argv[1], "r")) == NULL)) { SCOTCH_errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphLoad (&grafdat, file, -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } if (file != NULL) fclose (file); if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphGhst (&grafdat) != 0) { SCOTCH_errorPrint ("main: cannot compute ghost edge array"); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&grafdat, &baseval, &vertglbnbr, &vertlocnbr, NULL, &vertgstnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if ((seedloctab = malloc (vertlocnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: cannot allocate seed array"); exit (EXIT_FAILURE); } if ((partgsttab = malloc (vertgstnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: cannot allocate part array"); exit (EXIT_FAILURE); } memset (partgsttab, ~0, vertgstnbr * sizeof (SCOTCH_Num)); SCOTCH_randomReset (); seedloctab[0] = baseval + SCOTCH_randomVal (vertlocnbr); seedloctab[1] = baseval + SCOTCH_randomVal (vertlocnbr); seedloctab[2] = baseval + SCOTCH_randomVal (vertlocnbr); partgsttab[seedloctab[0] - baseval] = 0; partgsttab[seedloctab[1] - baseval] = 1; partgsttab[seedloctab[2] - baseval] = 2; if (SCOTCH_dgraphGrow (&grafdat, 3, seedloctab, 4, partgsttab) != 0) { SCOTCH_errorPrint ("main: cannot compute grown regions"); exit (EXIT_FAILURE); } free (seedloctab); for (procnum = 0; procnum < procglbnbr; procnum ++) { SCOTCH_Num vertlocnum; MPI_Barrier (proccomm); if (procnum == proclocnum) { if ((file = fopen (argv[2], (procnum == 0) ? "w" : "a+")) == NULL) { SCOTCH_errorPrint ("main: cannot open mapping file"); exit (EXIT_FAILURE); } if (procnum == 0) { fprintf (file, "%ld\n", (long) vertglbnbr); vertlocadj = (long) baseval; } else MPI_Recv (&vertlocadj, 1, MPI_LONG, procnum - 1, 0, MPI_COMM_WORLD, &statdat); for (vertlocnum = 0; vertlocnum < vertlocnbr; vertlocnum ++) fprintf (file, "%ld\t%ld\n", vertlocadj + (long) vertlocnum, (long) partgsttab[vertlocnum]); fclose (file); if (procnum < (procglbnbr - 1)) { vertlocadj += (long) vertlocnbr; MPI_Send (&vertlocadj, 1, MPI_LONG, procnum + 1, 0, MPI_COMM_WORLD); } } } SCOTCH_dgraphExit (&grafdat); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_induce.c000066400000000000000000000171631514310134000303720ustar00rootroot00000000000000/* Copyright 2019,2020,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_induce.c **/ /** **/ /** AUTHOR : Amaury JACQUES (v6.0) **/ /** Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operations of **/ /** the SCOTCH_dgraphInducePart() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 16 apr 2019 **/ /** to : 22 apr 2019 **/ /** # Version 7.0 : from : 14 jan 2020 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #include "ptscotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ FILE * fileptr; SCOTCH_Num baseval; SCOTCH_Num orgvertlocnum; SCOTCH_Num orgvertlocnbr; SCOTCH_Num * orgpartloctab; SCOTCH_Dgraph orggrafdat; SCOTCH_Dgraph indgrafdat; SCOTCH_Num * indlistloctab; SCOTCH_Num indvertlocnbr; SCOTCH_Num indvertlocnum; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&orggrafdat, proccomm) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph (1)"); exit (EXIT_FAILURE); } fileptr = NULL; if ((proclocnum == 0) && ((fileptr = fopen (argv[1], "r")) == NULL)) { SCOTCH_errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphLoad (&orggrafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } if (fileptr != NULL) fclose (fileptr); if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&orggrafdat, &baseval, NULL, &orgvertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &proccomm); if ((orgpartloctab = malloc (orgvertlocnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } if ((indlistloctab = malloc (orgvertlocnbr * sizeof (SCOTCH_Num))) == NULL) { /* TRICK: size is orgvertlocnbr */ SCOTCH_errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } SCOTCH_randomReset (); /* Initialize random generator */ for (orgvertlocnum = 0, indvertlocnum = baseval; orgvertlocnum < orgvertlocnbr; orgvertlocnum ++) indlistloctab[orgvertlocnum] = indvertlocnum ++; for (orgvertlocnum = 0; orgvertlocnum < orgvertlocnbr; orgvertlocnum ++) { SCOTCH_Num orgvertloctmp; SCOTCH_Num indlistloctmp; orgvertloctmp = orgvertlocnum + SCOTCH_randomVal (orgvertlocnbr - orgvertlocnum); indlistloctmp = indlistloctab[orgvertlocnum]; indlistloctab[orgvertlocnum] = indlistloctab[orgvertloctmp]; indlistloctab[orgvertloctmp] = indlistloctmp; } indvertlocnbr = (orgvertlocnbr + 1) / 2; /* Keep only half of the original vertices */ memset (orgpartloctab, 0, orgvertlocnbr * sizeof (SCOTCH_Num)); for (indvertlocnum = 0; indvertlocnum < indvertlocnbr; indvertlocnum ++) /* Flag kept vertices as belonging to part 1 */ orgpartloctab[indlistloctab[indvertlocnum] - baseval] = 1; if (SCOTCH_dgraphInit (&indgrafdat, proccomm) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph (2)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInducePart (&orggrafdat, orgpartloctab, 1, indvertlocnbr, &indgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot induce graph"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphCheck (&indgrafdat) != 0) { SCOTCH_errorPrint ("main: invalid induced graph"); exit (EXIT_FAILURE); } SCOTCH_dgraphExit (&indgrafdat); SCOTCH_dgraphExit (&orggrafdat); free (indlistloctab); free (orgpartloctab); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_order.c000066400000000000000000000302601514310134000302270ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_order.c **/ /** **/ /** AUTHOR : Clement BARTHELEMY **/ /** **/ /** **/ /** FUNCTION : This module tests the operation of the **/ /** SCOTCH_dgraphOrderCompute() and **/ /** SCOTCH_dgraphOrderComputeList() **/ /** routines. **/ /** **/ /** DATES : # Version 7.0 : from : 10 sep 2025 **/ /** to : 17 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "ptscotch.h" static File C_fileTab[1] = { /* File array */ { FILEMODER } }; /*******************************/ /* */ /* This routine handles lists. */ /* */ /*******************************/ /* This routine fills a list array with a subset ** of based vertex indices. ** It returns : ** - 0 : if list array could be filled ** - !0 : on error. */ static int listFillRandom ( SCOTCH_Num listlocnbr, /* Size of list to fill */ SCOTCH_Num * restrict listloctab, /* List area to fill */ SCOTCH_Num baseval, /* Base value */ SCOTCH_Num vertlocnbr) /* Local vertex range */ { SCOTCH_Num listlocidx; SCOTCH_Num vertlocnum; /* Based local vertex index to be put in list */ if (listlocnbr > vertlocnbr) { SCOTCH_errorPrint ("listFillRandom: invalid arguments"); return (1); } if (listlocnbr == 0) /* If nothing to do */ return (0); vertlocnum = baseval; /* If list is full, take all vertices */ if (listlocnbr < vertlocnbr) /* Else select only a vertex range */ vertlocnum += SCOTCH_randomVal (vertlocnbr - listlocnbr + 1); for (listlocidx = 0; listlocidx < listlocnbr; listlocidx ++, vertlocnum ++) listloctab[listlocidx] = vertlocnum; return (0); } /***************************************/ /* */ /* These routines handle permutations. */ /* */ /***************************************/ static SCOTCH_Num permGather ( SCOTCH_Dgraph * const grafptr, SCOTCH_Dordering * const dordptr, SCOTCH_Num * permtab, /* Permutation array to fill with full permutation */ int proclocnum) /* Index of this process */ { SCOTCH_Ordering corddat; SCOTCH_Ordering * cordptr; SCOTCH_Num cblknbr; if (proclocnum == 0) { /* Gather ordering results on root process */ if (SCOTCH_dgraphCorderInit (grafptr, &corddat, permtab, NULL, &cblknbr, NULL, NULL) != 0) { SCOTCH_errorPrint ("permGather: cannot initialize distributed ordering"); return (1); } cordptr = &corddat; } else cordptr = NULL; if (SCOTCH_dgraphOrderGather (grafptr, dordptr, cordptr) != 0) { SCOTCH_errorPrint ("permGather: cannot gather distributed ordering"); return (1); } if (cordptr != NULL) SCOTCH_dgraphCorderExit (grafptr, cordptr); return (0); } static SCOTCH_Num permCheckIdentity ( const SCOTCH_Num * const permtab, SCOTCH_Num baseval, SCOTCH_Num vertnbr) { SCOTCH_Num vertnum; for (vertnum = 0; vertnum < vertnbr; vertnum ++) { if (permtab[vertnum] != vertnum + baseval) return (1); } return (0); } static SCOTCH_Num permCheckList ( const SCOTCH_Num * const permtab, SCOTCH_Num baseval, SCOTCH_Num listlocnbr, /* Number of local vertices in list */ SCOTCH_Num * listloctab, /* Local list of vertices */ SCOTCH_Num listglbnbr) /* Global number of vertices in list */ { SCOTCH_Num listlocidx; const SCOTCH_Num * const permtax = permtab - baseval; for (listlocidx = 0; listlocidx < listlocnbr; listlocidx ++) /* For all vertices in list */ if (permtax[listloctab[listlocidx]] >= listglbnbr + baseval) { /* Must be ordered first */ return (1); } return (0); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ SCOTCH_Dgraph grafdat; SCOTCH_Dordering dorddat; SCOTCH_Strat stradat; SCOTCH_Num baseval; SCOTCH_Num vertglbnbr; SCOTCH_Num vertlocnbr; SCOTCH_Num listlocnbr; SCOTCH_Num * listloctab; SCOTCH_Num listglbnbr; SCOTCH_Num * permtab; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ SCOTCH_randomReset (); if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } fileBlockInit (C_fileTab, 1); /* Set default stream pointers */ fileBlockName (C_fileTab, 0) = argv[1]; /* Use provided file */ if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } fileBlockOpenDist (C_fileTab, 1, procglbnbr, proclocnum, 0); /* Open all files */ if (SCOTCH_dgraphLoad (&grafdat, fileBlockFile (C_fileTab, 0), -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&grafdat, &baseval, &vertglbnbr, &vertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if ((permtab = malloc (vertglbnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } SCOTCH_stratInit (&stradat); if (SCOTCH_stratDgraphOrderBuild (&stradat, 0, (SCOTCH_Num) procglbnbr, 0, 0.2) != 0) { SCOTCH_errorPrint ("main: cannot build ordering strategy"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphOrderInit (&grafdat, &dorddat) != 0) { SCOTCH_errorPrint ("main: cannot initialize ordering (1)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphOrderComputeList (&grafdat, &dorddat, 0, NULL, &stradat) != 0) { /* Identity permutation */ SCOTCH_errorPrint ("main: cannot compute graph ordering (1)"); exit (EXIT_FAILURE); } memset (permtab, ~0, vertglbnbr * sizeof (SCOTCH_Num)); if (permGather (&grafdat, &dorddat, permtab, proclocnum) != 0) { SCOTCH_errorPrint ("main: error checking ordering (1)"); exit (EXIT_FAILURE); } if ((proclocnum == 0) && (permCheckIdentity (permtab, baseval, vertglbnbr) != 0)) { SCOTCH_errorPrint ("main: invalid ordering (1)"); exit (EXIT_FAILURE); } SCOTCH_dgraphOrderExit (&grafdat, &dorddat); if (SCOTCH_dgraphOrderInit (&grafdat, &dorddat) != 0) { SCOTCH_errorPrint ("main: cannot initialize ordering (2)"); exit (EXIT_FAILURE); } if (proclocnum == 0) listlocnbr = vertlocnbr; /* Experiment with a full local list */ else if (proclocnum == (procglbnbr - 1)) listlocnbr = 0; /* And an empty local list */ else listlocnbr = (9 * vertlocnbr) / 10; /* And a partial local list */ if ((listloctab = malloc (listlocnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } listFillRandom (listlocnbr, listloctab, baseval, vertlocnbr); if (SCOTCH_dgraphOrderComputeList (&grafdat, &dorddat, listlocnbr, listloctab, &stradat)) { /* List ordering */ SCOTCH_errorPrint ("main: cannot compute graph ordering (2)"); exit (EXIT_FAILURE); } if (MPI_Reduce (&listlocnbr, &listglbnbr, 1, SCOTCH_NUM_MPI, MPI_SUM, 0, proccomm) != MPI_SUCCESS) { SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } memset (permtab, ~0, vertglbnbr * sizeof (SCOTCH_Num)); if (permGather (&grafdat, &dorddat, permtab, proclocnum) != 0) { SCOTCH_errorPrint ("main: error checking ordering (2)"); exit (EXIT_FAILURE); } if ((proclocnum == 0) && (permCheckList (permtab, baseval, listlocnbr, listloctab, listglbnbr) != 0)) { SCOTCH_errorPrint ("main: invalid ordering (2)"); exit (EXIT_FAILURE); } SCOTCH_dgraphOrderExit (&grafdat, &dorddat); fileBlockClose (C_fileTab, 1); /* Always close explicitly to end eventual (un)compression tasks */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (3)"); exit (EXIT_FAILURE); } SCOTCH_stratExit (&stradat); SCOTCH_dgraphExit (&grafdat); free (listloctab); free (permtab); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_dgraph_redist.c000066400000000000000000000146531514310134000304160ustar00rootroot00000000000000/* Copyright 2012,2014,2018,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_dgraph_redist.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_dgraphBand() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 21 feb 2012 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 03 jul 2023 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #include "ptscotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ SCOTCH_Num vertglbnbr; SCOTCH_Num vertlocnbr; SCOTCH_Num vertlocnum; SCOTCH_Num * partloctab; SCOTCH_Dgraph srcgrafdat; SCOTCH_Dgraph dstgrafdat; FILE * file; #ifdef SCOTCH_PTHREAD int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ SCOTCH_errorProg (argv[0]); #ifdef SCOTCH_PTHREAD thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD */ if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } proccomm = MPI_COMM_WORLD; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); #ifdef SCOTCH_CHECK_NOAUTO fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == 0) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); scanf ("%c", &c); } #endif /* SCOTCH_CHECK_NOAUTO */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (1)"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&srcgrafdat, proccomm) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize source graph"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphInit (&dstgrafdat, proccomm) != 0) { /* Initialize destination graph */ SCOTCH_errorPrint ("main: cannot initialize destination graph"); exit (EXIT_FAILURE); } file = NULL; if ((proclocnum == 0) && ((file = fopen (argv[1], "r")) == NULL)) { SCOTCH_errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (SCOTCH_dgraphLoad (&srcgrafdat, file, -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load source graph"); exit (EXIT_FAILURE); } if (file != NULL) fclose (file); if (SCOTCH_dgraphCheck (&srcgrafdat) != 0) { SCOTCH_errorPrint ("main: invalid source graph"); exit (EXIT_FAILURE); } if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize for debug */ SCOTCH_errorPrint ("main: cannot communicate (2)"); exit (EXIT_FAILURE); } SCOTCH_dgraphData (&srcgrafdat, NULL, &vertglbnbr, &vertlocnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if ((partloctab = malloc (vertlocnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: cannot allocate frontier array"); exit (EXIT_FAILURE); } for (vertlocnum = 0; vertlocnum < vertlocnbr; vertlocnum ++) /* Create packs of 3 vertices each */ partloctab[vertlocnum] = (vertlocnum / 3) % procglbnbr; if (SCOTCH_dgraphRedist (&srcgrafdat, partloctab, NULL, -1, -1, &dstgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot compute redistributed graph"); exit (EXIT_FAILURE); } SCOTCH_dgraphExit (&dstgrafdat); SCOTCH_dgraphExit (&srcgrafdat); free (partloctab); MPI_Finalize (); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_coarsen.c000066400000000000000000000326741514310134000304150ustar00rootroot00000000000000/* Copyright 2014,2015,2018,2021,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the sequential graph coarsening **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 15 oct 2014 **/ /** to : 22 may 2018 **/ /** # Version 6.1 : from : 24 jun 2021 **/ /** to : 24 jun 2021 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /**************************************/ /* */ /* The consistency checking routines. */ /* */ /**************************************/ static void checkCoarMult ( const SCOTCH_Num * const coarmulttab, const SCOTCH_Num coarvertnbr, const SCOTCH_Num finevertnbr, const SCOTCH_Num baseval) { SCOTCH_Num finevertnnd; SCOTCH_Num coarvertnum; SCOTCH_Num coarverttmp; for (coarvertnum = 0, coarverttmp = finevertnbr, finevertnnd = finevertnbr + baseval; coarvertnum < coarvertnbr; coarvertnum ++) { SCOTCH_Num finevertnum0; SCOTCH_Num finevertnum1; finevertnum0 = coarmulttab[2 * coarvertnum]; finevertnum1 = coarmulttab[2 * coarvertnum + 1]; if ((finevertnum0 < baseval) || (finevertnum0 >= finevertnnd) || (finevertnum1 < baseval) || (finevertnum1 >= finevertnnd)) { SCOTCH_errorPrint ("checkCoarMult: invalid multinode array (1)"); exit (EXIT_FAILURE); } if (finevertnum0 != finevertnum1) coarverttmp --; } if (coarverttmp != coarvertnbr) { SCOTCH_errorPrint ("checkCoarMult: invalid multinode array (2)"); exit (EXIT_FAILURE); } } static void checkFineCoar ( const SCOTCH_Num * const finematetab, const SCOTCH_Num coarvertnbr, const SCOTCH_Num finevertnbr, const SCOTCH_Num baseval) { SCOTCH_Num finevertnnd; SCOTCH_Num finevertnum; SCOTCH_Num coarverttmp; const SCOTCH_Num * restrict const finematetax = finematetab - baseval; for (finevertnum = baseval, finevertnnd = finevertnbr + baseval, coarverttmp = finevertnbr; finevertnum < finevertnnd; finevertnum ++) { SCOTCH_Num finevertend; finevertend = finematetax[finevertnum]; if ((finevertend < baseval) || (finevertend >= finevertnnd)) { SCOTCH_errorPrint ("checkFineCoar: invalid mate array (1)"); exit (EXIT_FAILURE); } if (finevertend > finevertnum) { /* If mates make a multinode (counted once) */ coarverttmp --; /* One less coarse vertex */ if (finematetax[finevertend] != finevertnum) { SCOTCH_errorPrint ("checkFineCoar: invalid mate array (2)"); exit (EXIT_FAILURE); } } } if (coarverttmp != coarvertnbr) { SCOTCH_errorPrint ("checkFineCoar: invalid mate array (3)"); exit (EXIT_FAILURE); } } /**********************************/ /* */ /* The matching building routine. */ /* */ /**********************************/ static SCOTCH_Num matchBuild ( const SCOTCH_Graph * const finegrafptr, SCOTCH_Num * const finematetab) { SCOTCH_Num * restrict finematetax; SCOTCH_Num * fineverttax; SCOTCH_Num * finevendtax; SCOTCH_Num finevertnbr; SCOTCH_Num finevertnnd; SCOTCH_Num finevertnum; SCOTCH_Num * fineedgetax; SCOTCH_Num coarvertnbr; SCOTCH_Num baseval; SCOTCH_graphData (finegrafptr, &baseval, &finevertnbr, &fineverttax, &finevendtax, NULL, NULL, NULL, &fineedgetax, NULL); fineverttax -= baseval; finevendtax -= baseval; fineedgetax -= baseval; memset (finematetab, ~0, finevertnbr * sizeof (SCOTCH_Num)); /* Set based array to "-1"'s */ finematetax = finematetab - baseval; for (finevertnum = baseval, finevertnnd = finevertnbr + baseval, coarvertnbr = 0; /* Compute simple matching */ finevertnum < finevertnnd; finevertnum ++) { SCOTCH_Num finematenum; if (finematetax[finevertnum] >= 0) /* If vertex already matched */ continue; coarvertnbr ++; /* One more coarse vertex will be created */ finematenum = finevertnum; /* Assume we mate with ourselves */ if (fineverttax[finevertnum] == finevendtax[finevertnum]) { /* If isolated vertex */ while (1) { /* Use first free vertex as a mate */ if (++ finevertnum >= finevertnnd) { /* If no other free vertex available */ finematetax[finematenum] = finematenum; /* Mate isolated vertex with itself */ return (coarvertnbr); /* Matching complete */ } if (finematetax[finevertnum] < 0) /* If vertex is free, keep it as mate */ break; /* Increment performed in outer loop */ } } else { SCOTCH_Num fineedgenum; for (fineedgenum = fineverttax[finevertnum]; /* Find a suitable mate */ fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { SCOTCH_Num finevertend; finevertend = fineedgetax[fineedgenum]; /* Find end vertex */ if (finematetax[finevertend] < 0) { /* If vertex is free */ finematenum = finevertend; /* Keep vertex as mate */ break; } } } finematetax[finevertnum] = finematenum; finematetax[finematenum] = finevertnum; } return (coarvertnbr); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Num baseval; /* Base value */ SCOTCH_Graph finegrafdat; /* Fine graph */ SCOTCH_Num finevertnbr; /* Number of fine vertices */ SCOTCH_Num * finematetab; /* Mate array */ SCOTCH_Graph coargrafdat; /* Coarse graph */ SCOTCH_Num * coarmulttab; /* Multinode array */ SCOTCH_Num coarvertnbr; /* Number of coarse vertices */ SCOTCH_Num coaredgenbr; /* Number of coarse edges */ FILE * fileptr; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&finegrafdat) != 0) { /* Initialize fine source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { /* Open fine graph file */ SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&finegrafdat, fileptr, -1, 0) != 0) { /* Read fine source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphData (&finegrafdat, &baseval, &finevertnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if ((finematetab = malloc (finevertnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } coarvertnbr = 0; /* Set minimum number of vertices in graph */ if (SCOTCH_graphCoarsenMatch (&finegrafdat, &coarvertnbr, 1.0, SCOTCH_COARSENNOMERGE, finematetab) != 0) { SCOTCH_errorPrint ("main: cannot compute matching"); exit (EXIT_FAILURE); } checkFineCoar (finematetab, coarvertnbr, finevertnbr, baseval); printf ("Mate array has " SCOTCH_NUMSTRING " vertices\n", coarvertnbr); printf ("Graph mated with a ratio of %lg\n", (double) coarvertnbr / (double) finevertnbr); if ((coarmulttab = malloc (coarvertnbr * 2 * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } if (SCOTCH_graphCoarsenBuild (&finegrafdat, coarvertnbr, finematetab, &coargrafdat, coarmulttab) != 0) { SCOTCH_errorPrint ("main: cannot compute coarse graph (1)"); exit (EXIT_FAILURE); } SCOTCH_graphSize (&coargrafdat, &coarvertnbr, &coaredgenbr); printf ("Coarse graph has " SCOTCH_NUMSTRING " vertices and " SCOTCH_NUMSTRING " edges\n", coarvertnbr, coaredgenbr); printf ("Graph coarsened with a ratio of %lg\n", (double) coarvertnbr / (double) finevertnbr); checkCoarMult (coarmulttab, coarvertnbr, finevertnbr, baseval); SCOTCH_graphExit (&coargrafdat); free (coarmulttab); /* Free first multinode array */ coarvertnbr = matchBuild (&finegrafdat, finematetab); /* Create simple matching */ printf ("Mate array has " SCOTCH_NUMSTRING " vertices\n", coarvertnbr); printf ("Graph mated with a ratio of %lg\n", (double) coarvertnbr / (double) finevertnbr); if ((coarmulttab = malloc (coarvertnbr * 2 * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (3)"); exit (EXIT_FAILURE); } if (SCOTCH_graphCoarsenBuild (&finegrafdat, coarvertnbr, finematetab, &coargrafdat, coarmulttab) != 0) { SCOTCH_errorPrint ("main: cannot compute coarse graph (2)"); exit (EXIT_FAILURE); } SCOTCH_graphSize (&coargrafdat, &coarvertnbr, &coaredgenbr); printf ("Coarse graph has " SCOTCH_NUMSTRING " vertices and " SCOTCH_NUMSTRING " edges\n", coarvertnbr, coaredgenbr); printf ("Graph coarsened with a ratio of %lg\n", (double) coarvertnbr / (double) finevertnbr); SCOTCH_graphExit (&coargrafdat); free (coarmulttab); /* Free second multinode array */ free (finematetab); if ((coarmulttab = malloc (finevertnbr * 2 * sizeof (SCOTCH_Num))) == NULL) { /* Number of coarse vertices and ratio not bounded */ SCOTCH_errorPrint ("main: out of memory (3)"); exit (EXIT_FAILURE); } if (SCOTCH_graphCoarsen (&finegrafdat, 1, 1.0, SCOTCH_COARSENNONE, &coargrafdat, coarmulttab) != 0) { SCOTCH_errorPrint ("main: cannot coarsen graph"); exit (EXIT_FAILURE); } SCOTCH_graphSize (&coargrafdat, &coarvertnbr, NULL); printf ("Coarse graph has " SCOTCH_NUMSTRING " vertices and " SCOTCH_NUMSTRING " edges\n", coarvertnbr, coaredgenbr); printf ("Graph coarsened with a ratio of %lg\n", (double) coarvertnbr / (double) finevertnbr); checkCoarMult (coarmulttab, coarvertnbr, finevertnbr, baseval); SCOTCH_graphExit (&coargrafdat); free (coarmulttab); /* Free third multinode array */ SCOTCH_graphExit (&finegrafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_color.c000066400000000000000000000145701514310134000300740ustar00rootroot00000000000000/* Copyright 2012,2014,2018,2025,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_color.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphColor() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 06 jan 2012 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 14 jan 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*************************************/ /* */ /* The consistency checking routine. */ /* */ /*************************************/ static int checkColor ( const SCOTCH_Graph * const grafptr, const SCOTCH_Num * const colotab) { SCOTCH_Num baseval; SCOTCH_Num vertnbr; SCOTCH_Num vertnnd; SCOTCH_Num vertnum; SCOTCH_Num * verttab; const SCOTCH_Num * verttax; SCOTCH_Num * vendtab; const SCOTCH_Num * vendtax; SCOTCH_Num * edgetab; const SCOTCH_Num * edgetax; const SCOTCH_Num * colotax; SCOTCH_graphData (grafptr, &baseval, &vertnbr, &verttab, &vendtab, NULL, NULL, NULL, &edgetab, NULL); verttax = verttab - baseval; vendtax = vendtab - baseval; edgetax = edgetab - baseval; colotax = colotab - baseval; for (vertnum = baseval, vertnnd = vertnbr + baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num edgenum; SCOTCH_Num coloval; coloval = colotax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { SCOTCH_Num vertend; vertend = edgetax[edgenum]; if (colotax[vertend] == coloval) { SCOTCH_errorPrint ("checkColor: invalid coloring"); return (1); } } } return (0); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Num vertnbr; SCOTCH_Num vertnum; SCOTCH_Num colonbr; SCOTCH_Num colonum; SCOTCH_Num * colotab; SCOTCH_Num * cnbrtab; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphSize (&grafdat, &vertnbr, NULL); if ((colotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } if ((cnbrtab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } memset (cnbrtab, 0, vertnbr * sizeof (SCOTCH_Num)); if (SCOTCH_graphColor (&grafdat, colotab, &colonbr, 0) != 0) { SCOTCH_errorPrint ("main: cannot color graph"); exit (EXIT_FAILURE); } if (checkColor (&grafdat, colotab) != 0) /* Verify coloring validity */ exit (EXIT_FAILURE); printf ("Number of colors: %ld\n", (long) colonbr); for (vertnum = 0; vertnum < vertnbr; vertnum ++) /* Sum-up color histogram */ cnbrtab[colotab[vertnum]] ++; for (colonum = 0; colonum < colonbr; colonum ++) printf ("Color %5ld: %ld\n", (long) colonum, (long) cnbrtab[colonum]); free (cnbrtab); free (colotab); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_diam.c000066400000000000000000000101641514310134000276630ustar00rootroot00000000000000/* Copyright 2017,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_diam.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphDiamPV () routine. **/ /** **/ /** DATES : # Version 6.0 : from : 26 jan 2017 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 17 jan 2020 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Num diamval; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_randomReset (); if ((diamval = SCOTCH_graphDiamPV (&grafdat)) < 0) { SCOTCH_errorPrint ("main: cannot compute graph pseudo-diameter"); exit (EXIT_FAILURE); } printf ("Graph pseudo-diameter: %ld\n", (long) diamval); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_dump.c000066400000000000000000000103621514310134000277160ustar00rootroot00000000000000/* Copyright 2019,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_dump.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphDump() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 08 jan 2019 **/ /** to : 08 jan 2019 **/ /** # Version 6.1 : from : 24 jun 2021 **/ /** to : 24 jun 2021 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" int testGraphBuild (SCOTCH_Graph *); /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if (testGraphBuild (&grafdat) != 0) { /* Build source graph */ SCOTCH_errorPrint ("main: cannot build graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "w")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphSave (&grafdat, fileptr) != 0) { /* Save source graph */ SCOTCH_errorPrint ("main: cannot save graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } /* The testGraphBuild() code will be pasted after this line */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_induce.c000066400000000000000000000150151514310134000302200ustar00rootroot00000000000000/* Copyright 2019,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_graph_induce.c **/ /** **/ /** AUTHOR : Amaury JACQUES (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operations of **/ /** the SCOTCH_graphInduceList() and **/ /** SCOTCH_graphInducePart() routines. **/ /** **/ /** DATES : # Version 6.0 : from : 15 apr 2019 **/ /** to : 16 apr 2019 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Num baseval; SCOTCH_Num orgvertnbr; SCOTCH_Num orgvertnum; SCOTCH_GraphPart2 * orgparttab; SCOTCH_Graph orggrafdat; SCOTCH_Graph indgrafdat; SCOTCH_Num * indlisttab; SCOTCH_Num indvertnbr; SCOTCH_Num indvertnum; if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&orggrafdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph (1)"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&orggrafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphData (&orggrafdat, &baseval, &orgvertnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if ((orgparttab = malloc (orgvertnbr * sizeof (SCOTCH_GraphPart2))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } if ((indlisttab = malloc (orgvertnbr * sizeof (SCOTCH_Num))) == NULL) { /* TRICK: size is orgvertnbr */ SCOTCH_errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } SCOTCH_randomReset (); /* Initialize global random generator */ for (orgvertnum = 0; orgvertnum < orgvertnbr; orgvertnum ++) /* Random permutation of all original graph vertices */ indlisttab[orgvertnum] = orgvertnum + baseval; for (orgvertnum = 0; orgvertnum < (orgvertnbr - 1); orgvertnum ++) { SCOTCH_Num randval; SCOTCH_Num verttmp; randval = SCOTCH_randomVal (orgvertnbr - orgvertnum); verttmp = indlisttab[orgvertnum + randval]; indlisttab[orgvertnum + randval] = indlisttab[orgvertnum]; indlisttab[orgvertnum] = verttmp; } indvertnbr = (orgvertnbr + 1) / 2; /* Keep only half of the original vertices */ memset (orgparttab, 0, orgvertnbr * sizeof (SCOTCH_GraphPart2)); for (indvertnum = 0; indvertnum < indvertnbr; indvertnum ++) /* Flag kept vertices as belonging to part 1 */ orgparttab[indlisttab[indvertnum] - baseval] = 1; if (SCOTCH_graphInit (&indgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph (2)"); exit (EXIT_FAILURE); } if (SCOTCH_graphInduceList (&orggrafdat, indvertnbr, indlisttab, &indgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot induce graph (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphCheck (&indgrafdat) != 0) { SCOTCH_errorPrint ("main: invalid induced graph (1)"); exit (EXIT_FAILURE); } SCOTCH_graphExit (&indgrafdat); if (SCOTCH_graphInit (&indgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph (3)"); exit (EXIT_FAILURE); } if (SCOTCH_graphInducePart (&orggrafdat, indvertnbr, orgparttab, 1, &indgrafdat) != 0) { SCOTCH_errorPrint ("main: cannot induce graph (2)"); exit (EXIT_FAILURE); } if (SCOTCH_graphCheck (&indgrafdat) != 0) { SCOTCH_errorPrint ("main: invalid induced graph (2)"); exit (EXIT_FAILURE); } SCOTCH_graphExit (&indgrafdat); free (indlisttab); free (orgparttab); SCOTCH_graphExit (&orggrafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_map.c000066400000000000000000000243111514310134000275250ustar00rootroot00000000000000/* Copyright 2014,2018,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_map.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphMap*() routines. **/ /** **/ /** DATES : # Version 6.0 : from : 12 aug 2014 **/ /** to : 17 jul 2024 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #define ARCHNBR 4 #define STRANBR 2 #define COORD(x,y) ((y) * xdimsiz + (x)) /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Mapping mappdat; /* Mapping to compute */ SCOTCH_Mapping mapodat; /* Old mapping */ FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Num xdimsiz; int archnum; SCOTCH_Arch archtab[ARCHNBR]; SCOTCH_Strat stratab[STRANBR]; int stranum; int typenum; SCOTCH_Num vertnbr; SCOTCH_Num vertnum; SCOTCH_Num * parttab; SCOTCH_Num * parotab; SCOTCH_Num * vmlotab; SCOTCH_Num * vmloptr; /* vmlotab or NULL */ SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { /* Read a square 2D grid graph */ SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphSize (&grafdat, &vertnbr, NULL); xdimsiz = (SCOTCH_Num) sqrt ((double) vertnbr); if (vertnbr != (xdimsiz * xdimsiz)) { SCOTCH_errorPrint ("main: graph is not a square grid"); exit (EXIT_FAILURE); } if (((parttab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((parotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((vmlotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } for (vertnum = 0; vertnum < vertnbr; vertnum ++) /* Fill vertex migration load array */ vmlotab[vertnum] = vertnum % 3; for (stranum = 0; stranum < STRANBR; stranum ++) { /* Initialize mapping strategies */ if (SCOTCH_stratInit (&stratab[stranum]) != 0) { SCOTCH_errorPrint ("main: cannot initialize strategy"); exit (EXIT_FAILURE); } } SCOTCH_stratGraphMapBuild (&stratab[0], SCOTCH_STRATRECURSIVE, 4, 0.05); SCOTCH_stratGraphMapBuild (&stratab[1], SCOTCH_STRATDEFAULT, 4, 0.05); for (archnum = 0; archnum < ARCHNBR; archnum ++) { /* Initialize architectures */ if (SCOTCH_archInit (&archtab[archnum]) != 0) { SCOTCH_errorPrint ("main: cannot initialize architecture"); exit (EXIT_FAILURE); } } SCOTCH_archCmplt (&archtab[0], 5); SCOTCH_archMesh2 (&archtab[1], 2, 2); SCOTCH_archMesh2 (&archtab[2], xdimsiz * 2, xdimsiz * 2); /* Oversized architecture */ SCOTCH_archVhcub (&archtab[3]); if ((fileptr = tmpfile ()) == NULL) { /* Open temporary file for resulting output */ SCOTCH_errorPrint ("main: cannot open file (2)"); exit (EXIT_FAILURE); } for (stranum = 0; stranum < STRANBR; stranum ++) { for (archnum = 0; archnum < ARCHNBR; archnum ++) { SCOTCH_Num archsiz; if (SCOTCH_graphMapInit (&grafdat, &mappdat, &archtab[archnum], parttab) != 0) { /* Initialize new mapping */ SCOTCH_errorPrint ("main: cannot initialize mapping (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphMapInit (&grafdat, &mapodat, &archtab[archnum], parotab) != 0) { /* Initialize old mapping */ SCOTCH_errorPrint ("main: cannot initialize mapping (2)"); exit (EXIT_FAILURE); } archsiz = SCOTCH_archSize (&archtab[archnum]); for (typenum = 0; typenum < 7; typenum ++) { int i; int o; memset (parttab, ~0, xdimsiz * xdimsiz * sizeof (SCOTCH_Num)); /* Assume all vertices are not fixed */ if (archnum < 2) { /* For fixed-size architectures */ for (i = 0; i < (xdimsiz - 1); i ++) { /* Place fixed vertices at all four sides */ parttab[COORD (0, i)] = 0; parttab[COORD (i + 1, 0)] = 1; parttab[COORD (xdimsiz - 1, i + 1)] = archsiz - 2; parttab[COORD (i, xdimsiz - 1)] = archsiz - 1; } } else { /* For variable-sized architectures */ for (i = 0; i < (xdimsiz - 1); i ++) { /* Place fixed vertices at all four sides */ parttab[COORD (0, i)] = vertnbr - 2; parttab[COORD (i + 1, 0)] = vertnbr - 1; parttab[COORD (xdimsiz - 1, i + 1)] = vertnbr; parttab[COORD (i, xdimsiz - 1)] = vertnbr + 1; } } printf ("Strat %d, arch %d, type %d\n", stranum, archnum, typenum); vmloptr = vmlotab; switch (typenum) { case 0 : /* Plain mapping */ o = SCOTCH_graphMapCompute (&grafdat, &mappdat, &stratab[stranum]); memcpy (parotab, parttab, vertnbr * sizeof (SCOTCH_Num)); /* Use plain mapping as old mapping in the following */ break; case 1 : /* Plain mapping with fixed vertices */ o = SCOTCH_graphMapFixedCompute (&grafdat, &mappdat, &stratab[stranum]); break; case 2 : /* Remapping without vertex migration load array */ vmloptr = NULL; case 3 : /* Remapping with vertex migration load array */ o = SCOTCH_graphRemapCompute (&grafdat, &mappdat, &mapodat, 0.2, vmloptr, &stratab[stranum]); break; case 4 : /* Remapping with vertex migration load array and incomplete old mapping */ parotab[0] = -1; o = SCOTCH_graphRemapCompute (&grafdat, &mappdat, &mapodat, 0.2, vmloptr, &stratab[stranum]); break; case 5 : /* Remapping with fixed vertices and without vertex migration load array */ vmloptr = NULL; case 6 : /* Remapping with fixed vertices and with vertex migration load array */ o = SCOTCH_graphRemapFixedCompute (&grafdat, &mappdat, &mapodat, 0.2, vmloptr, &stratab[stranum]); break; } if (o != 0) { SCOTCH_errorPrint ("main: cannot compute mapping"); exit (EXIT_FAILURE); } } SCOTCH_graphMapSave (&grafdat, &mappdat, fileptr); SCOTCH_graphMapExit (&grafdat, &mapodat); SCOTCH_graphMapExit (&grafdat, &mappdat); } } fclose (fileptr); for (archnum = 0; archnum < ARCHNBR; archnum ++) SCOTCH_archExit (&archtab[archnum]); for (stranum = 0; stranum < STRANBR; stranum ++) SCOTCH_stratExit (&stratab[stranum]); free (vmlotab); free (parotab); free (parttab); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_map_copy.c000066400000000000000000000156251514310134000305670ustar00rootroot00000000000000/* Copyright 2014,2015,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_map_copy.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphMap*() routines in the **/ /** specific case of the "copy" method. **/ /** **/ /** DATES : # Version 6.0 : from : 15 oct 2014 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" #define STRANBR 3 /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Mapping mappdat; /* Mapping to compute */ SCOTCH_Mapping mapodat; /* Old mapping */ FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Arch archdat; SCOTCH_Strat stratab[STRANBR]; int stranum; int typenum; SCOTCH_Num vertnbr; SCOTCH_Num * parttab; SCOTCH_Num * parotab; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { /* Read the givel graph */ SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphSize (&grafdat, &vertnbr, NULL); if (((parttab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((parotab = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } for (stranum = 0; stranum < STRANBR; stranum ++) { /* Initialize mapping strategies */ if (SCOTCH_stratInit (&stratab[stranum]) != 0) { SCOTCH_errorPrint ("main: cannot initialize strategy"); exit (EXIT_FAILURE); } } SCOTCH_stratGraphMap (&stratab[0], "cf{move=10000,pass=-1,bal=0.05}"); SCOTCH_stratGraphMap (&stratab[1], "m{vert=120,low=cf{move=10000,pass=-1,bal=0.05},asc=b{bnd=f{move=10000,pass=-1,bal=0.05},org=f{move=10000,pass=-1,bal=0.05}}}"); if (SCOTCH_archInit (&archdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize architecture"); exit (EXIT_FAILURE); } SCOTCH_archCmplt (&archdat, 5); for (stranum = 0; stranum < (STRANBR - 1); stranum ++) { for (typenum = 0; typenum < 2; typenum ++) { int o; printf ("Strat %d, type %d\n", stranum, typenum); switch (typenum) { case 0 : /* Plain mapping */ if (SCOTCH_graphMapInit (&grafdat, &mappdat, &archdat, parttab) != 0) { /* Initialize new mapping */ SCOTCH_errorPrint ("main: cannot initialize mapping (1)"); exit (EXIT_FAILURE); } o = SCOTCH_graphMapCompute (&grafdat, &mappdat, &stratab[STRANBR - 1]); /* Last strategy is plain mapping strategy */ memcpy (parotab, parttab, vertnbr * sizeof (SCOTCH_Num)); /* Use plain mapping as old mapping in the following */ break; case 1 : /* Remapping with copy of the old partition array */ if (SCOTCH_graphMapInit (&grafdat, &mapodat, &archdat, parotab) != 0) { /* Initialize old mapping */ SCOTCH_errorPrint ("main: cannot initialize mapping (2)"); exit (EXIT_FAILURE); } o = SCOTCH_graphRemapCompute (&grafdat, &mappdat, &mapodat, 0, NULL, &stratab[stranum]); break; } if (o != 0) { SCOTCH_errorPrint ("main: cannot compute mapping"); exit (EXIT_FAILURE); } } SCOTCH_graphMapExit (&grafdat, &mapodat); SCOTCH_graphMapExit (&grafdat, &mappdat); } SCOTCH_archExit (&archdat); for (stranum = 0; stranum < STRANBR; stranum ++) SCOTCH_stratExit (&stratab[stranum]); free (parotab); free (parttab); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_order.c000066400000000000000000000152521514310134000300670ustar00rootroot00000000000000/* Copyright 2014,2018,2019,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphOrderCompute*() **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 05 aug 2014 **/ /** to : 01 sep 2019 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Graph grafdat; SCOTCH_Ordering ordedat; SCOTCH_Strat stradat; SCOTCH_Num baseval; SCOTCH_Num vertnbr; SCOTCH_Num vertnum; SCOTCH_Num listnbr; SCOTCH_Num listnum; SCOTCH_Num * listtab; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphData (&grafdat, &baseval, &vertnbr, NULL, NULL, NULL, NULL, NULL, NULL, NULL); listnbr = (vertnbr + 1) / 2; /* Only keep half of the vertices in induced graph */ if ((listtab = malloc (listnbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } for (listnum = 0, vertnum = baseval + (listnbr / 4); /* Keep only middle half of the vertices */ listnum < listnbr; listnum ++, vertnum ++) listtab[listnum] = vertnum; if ((fileptr = tmpfile ()) == NULL) { /* Open temporary file for resulting output */ SCOTCH_errorPrint ("main: cannot open file (2)"); exit (EXIT_FAILURE); } if (SCOTCH_stratInit (&stradat) != 0) { /* Initialize ordering strategy */ SCOTCH_errorPrint ("main: cannot initialize strategy"); exit (EXIT_FAILURE); } if (SCOTCH_graphOrderInit (&grafdat, &ordedat, NULL, NULL, NULL, NULL, NULL) != 0) { /* Initialize ordering */ SCOTCH_errorPrint ("main: cannot initialize ordering (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphOrderCompute (&grafdat, &ordedat, &stradat) != 0) { SCOTCH_errorPrint ("main: cannot order graph"); exit (EXIT_FAILURE); } if (SCOTCH_graphOrderCheck (&grafdat, &ordedat) != 0) { SCOTCH_errorPrint ("main: invalid ordering (1)"); exit (EXIT_FAILURE); } SCOTCH_graphOrderSave (&grafdat, &ordedat, fileptr); /* Test ordering data output routines */ SCOTCH_graphOrderSaveMap (&grafdat, &ordedat, fileptr); SCOTCH_graphOrderSaveTree (&grafdat, &ordedat, fileptr); SCOTCH_graphOrderExit (&grafdat, &ordedat); /* Free computed ordering */ if (SCOTCH_graphOrderInit (&grafdat, &ordedat, NULL, NULL, NULL, NULL, NULL) != 0) { /* Initialize ordering again */ SCOTCH_errorPrint ("main: cannot initialize ordering (2)"); exit (EXIT_FAILURE); } if (SCOTCH_graphOrderComputeList (&grafdat, &ordedat, listnbr, listtab, &stradat) != 0) { SCOTCH_errorPrint ("main: cannot order induced graph"); exit (EXIT_FAILURE); } if (SCOTCH_graphOrderCheck (&grafdat, &ordedat) != 0) { SCOTCH_errorPrint ("main: invalid ordering (2)"); exit (EXIT_FAILURE); } SCOTCH_graphOrderSave (&grafdat, &ordedat, fileptr); /* Test ordering data output routines */ SCOTCH_graphOrderSaveMap (&grafdat, &ordedat, fileptr); SCOTCH_graphOrderSaveTree (&grafdat, &ordedat, fileptr); fclose (fileptr); free (listtab); SCOTCH_stratExit (&stradat); SCOTCH_graphOrderExit (&grafdat, &ordedat); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_graph_part_ovl.c000066400000000000000000000204561514310134000306040ustar00rootroot00000000000000/* Copyright 2011,2014,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_graph_part_ovl.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the sequential **/ /** graph partitioning with overlap **/ /** routine. **/ /** **/ /** DATES : # Version 6.0 : from : 20 sep 2014 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; SCOTCH_Strat stradat; SCOTCH_Num baseval; SCOTCH_Num partnbr; SCOTCH_Num partnum; SCOTCH_Num * restrict parttax; SCOTCH_Num vertnbr; SCOTCH_Num vertnum; SCOTCH_Num * verttab; SCOTCH_Num * vendtab; SCOTCH_Num * velotab; SCOTCH_Num * vlbltab; SCOTCH_Num * edgetax; SCOTCH_Num * restrict flagtab; SCOTCH_Num * restrict loadtab; SCOTCH_Num loadmin; SCOTCH_Num loadmax; SCOTCH_Num loadsum; double loadavg; FILE * fileptr; SCOTCH_errorProg (argv[0]); if ((argc < 4) || (argc > 5)) { SCOTCH_errorPrint ("usage: %s nparts input_source_graph_file output_mapping_file [strategy]", argv[0]); exit (EXIT_FAILURE); } if ((partnbr = (SCOTCH_Num) atoi (argv[1])) < 1) { SCOTCH_errorPrint ("main: invalid number of parts (\"%s\")", argv[1]); exit (EXIT_FAILURE); } if (SCOTCH_stratInit (&stradat) != 0) { SCOTCH_errorPrint ("main: cannot initialize strategy"); exit (EXIT_FAILURE); } if (argc == 5) { if (SCOTCH_stratGraphPartOvl (&stradat, argv[4]) != 0) { SCOTCH_errorPrint ("main: invalid user-provided strategy"); exit (EXIT_FAILURE); } } if (SCOTCH_graphInit (&grafdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[2], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (1)"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); SCOTCH_graphData (&grafdat, &baseval, &vertnbr, &verttab, &vendtab, &velotab, &vlbltab, NULL, &edgetax, NULL); if (((parttax = malloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) || ((flagtab = malloc (partnbr * sizeof (SCOTCH_Num))) == NULL) || ((loadtab = malloc (partnbr * sizeof (SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("main: out of memory"); exit (EXIT_FAILURE); } if (SCOTCH_graphPartOvl (&grafdat, partnbr, &stradat, parttax) != 0) { /* Parttax is not based yet */ SCOTCH_errorPrint ("main: cannot compute mapping"); exit (EXIT_FAILURE); } edgetax -= baseval; parttax -= baseval; memset (loadtab, 0, partnbr * sizeof (SCOTCH_Num)); /* Part loads set to 0 */ memset (flagtab, ~0, partnbr * sizeof (SCOTCH_Num)); /* Flags set to invalid vertex number */ for (vertnum = 0; vertnum < vertnbr; vertnum ++) { SCOTCH_Num veloval; SCOTCH_Num partval; veloval = (velotab == NULL) ? 1 : velotab[vertnum]; partval = parttax[vertnum + baseval]; /* vertnum is not based */ if (partval >= 0) /* If vertex belongs to one part only */ loadtab[partval] += veloval; /* Add vertex load to this part */ else { /* Vertex belongs to several parts */ SCOTCH_Num edgenum; for (edgenum = verttab[vertnum]; edgenum < vendtab[vertnum]; edgenum ++) { SCOTCH_Num vertend; SCOTCH_Num partend; vertend = edgetax[edgenum]; partend = parttax[vertend]; /* vertend is based */ if (partend < 0) /* If neighbor has no identifiable part */ continue; if (flagtab[partend] == vertnum) /* If neighbor part already accounted for, skip it */ continue; loadtab[partend] += veloval; /* Vertex load contributes to this part */ flagtab[partend] = vertnum; /* Record a contribution has been made */ } } } loadsum = loadmax = 0; loadmin = SCOTCH_NUMMAX; for (partnum = 0; partnum < partnbr; partnum ++) { loadsum += loadtab[partnum]; if (loadtab[partnum] > loadmax) loadmax = loadtab[partnum]; if (loadtab[partnum] < loadmin) loadmin = loadtab[partnum]; printf ("M\tCompload[%02ld]\t%ld\n", (long) partnum, (long) loadtab[partnum]); } loadavg = (double) loadsum / (double) partnbr; printf ("M\tCompLoadAvg\t%g\n", (double) loadavg); printf ("M\tCompLoadMax/Avg\t%g\n", (double) loadmax / loadavg); if ((fileptr = fopen (argv[3], "w")) == NULL) { SCOTCH_errorPrint ("main: cannot open file (2)"); exit (EXIT_FAILURE); } if (fprintf (fileptr, "%ld\n", (long) vertnbr) == EOF) { SCOTCH_errorPrint ("main: bad output (1)"); exit (EXIT_FAILURE); } for (vertnum = 0; vertnum < vertnbr; vertnum ++) { if (fprintf (fileptr, "%ld\t%ld\n", (long) ((vlbltab == NULL) ? vertnum : vlbltab[vertnum]), (long) parttax[vertnum + baseval]) == EOF) { SCOTCH_errorPrint ("main: bad output (2)"); exit (EXIT_FAILURE); } } fclose (fileptr); free (loadtab); free (flagtab); free (parttax + baseval); SCOTCH_stratExit (&stradat); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_scotch_mesh_graph.c000066400000000000000000000103151514310134000277030ustar00rootroot00000000000000/* Copyright 2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_scotch_mesh_graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the operation of **/ /** the SCOTCH_graphColor() routine. **/ /** **/ /** DATES : # Version 6.0 : from : 11 feb 2018 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { FILE * fileptr; SCOTCH_Mesh meshdat; SCOTCH_Graph grafdat; SCOTCH_errorProg (argv[0]); if (argc != 2) { SCOTCH_errorPrint ("usage: %s graph_file", argv[0]); exit (EXIT_FAILURE); } if (SCOTCH_meshInit (&meshdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize mesh"); exit (EXIT_FAILURE); } if (SCOTCH_graphInit (&grafdat) != 0) { /* Initialize source graph */ SCOTCH_errorPrint ("main: cannot initialize graph"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_meshLoad (&meshdat, fileptr, -1) != 0) { /* Read source mesh */ SCOTCH_errorPrint ("main: cannot load mesh"); exit (EXIT_FAILURE); } fclose (fileptr); if (SCOTCH_meshGraph (&meshdat, &grafdat) != 0) { SCOTCH_errorPrint ("main: cannot create graph from mesh"); exit (EXIT_FAILURE); } SCOTCH_graphExit (&grafdat); SCOTCH_meshExit (&meshdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_strat_par.c000066400000000000000000000117311514310134000262250ustar00rootroot00000000000000/* Copyright 2012,2013,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_strat_par.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the sequential **/ /** strategy building routines. **/ /** **/ /** DATES : # Version 6.0 : from : 08 jan 2012 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "ptscotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Strat stradat; SCOTCH_errorProg (argv[0]); if (argc != 1) { SCOTCH_errorPrint ("usage: %s", argv[0]); exit (EXIT_FAILURE); } printf ("Parallel mapping strategy, SCOTCH_STRATDEFAULT\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphMapBuild (&stradat, SCOTCH_STRATDEFAULT, 16, 16, 0.03); SCOTCH_stratExit (&stradat); printf ("Parallel mapping strategy, SCOTCH_STRATRECURSIVE\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphMapBuild (&stradat, SCOTCH_STRATRECURSIVE, 16, 16, 0.03); SCOTCH_stratExit (&stradat); printf ("Parallel ordering strategy, SCOTCH_STRATDEFAULT\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrderBuild (&stradat, SCOTCH_STRATDEFAULT, 1, 0, 0.2); SCOTCH_stratExit (&stradat); printf ("Parallel ordering strategy, SCOTCH_STRATLEVELMAX\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrderBuild (&stradat, SCOTCH_STRATLEVELMAX, 1, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Parallel ordering strategy, SCOTCH_STRATLEVELMIN\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrderBuild (&stradat, SCOTCH_STRATLEVELMIN, 1, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Parallel ordering strategy, SCOTCH_STRATLEVELMAX | SCOTCH_STRATLEVELMIN\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrderBuild (&stradat, SCOTCH_STRATLEVELMAX | SCOTCH_STRATLEVELMIN, 1, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Parallel ordering strategy, SCOTCH_STRATLEAFSIMPLE\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrderBuild (&stradat, SCOTCH_STRATLEAFSIMPLE, 1, 0, 0.2); SCOTCH_stratExit (&stradat); printf ("Parallel ordering strategy, SCOTCH_STRATSEPASIMPLE\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrderBuild (&stradat, SCOTCH_STRATSEPASIMPLE, 1, 0, 0.2); SCOTCH_stratExit (&stradat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/check/test_strat_seq.c000066400000000000000000000130771514310134000262400ustar00rootroot00000000000000/* Copyright 2012,2013,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_strat_seq.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the sequential **/ /** strategy building routines. **/ /** **/ /** DATES : # Version 6.0 : from : 08 jan 2012 **/ /** to : 14 jul 2018 **/ /** # Version 7.0 : from : 04 jul 2025 **/ /** to : 04 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "scotch.h" /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Strat stradat; SCOTCH_errorProg (argv[0]); if (argc != 1) { SCOTCH_errorPrint ("usage: %s", argv[0]); exit (EXIT_FAILURE); } printf ("Sequential mapping strategy, SCOTCH_STRATDEFAULT\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphMapBuild (&stradat, SCOTCH_STRATDEFAULT, 16, 0.03); SCOTCH_stratExit (&stradat); printf ("Sequential mapping strategy, SCOTCH_STRATRECURSIVE\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphMapBuild (&stradat, SCOTCH_STRATRECURSIVE, 16, 0.03); SCOTCH_stratExit (&stradat); printf ("Sequential mapping strategy, SCOTCH_STRATREMAP\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphMapBuild (&stradat, SCOTCH_STRATREMAP, 16, 0.03); SCOTCH_stratExit (&stradat); printf ("Sequential mapping strategy, SCOTCH_STRATRECURSIVE | SCOTCH_STRATREMAP\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphMapBuild (&stradat, SCOTCH_STRATRECURSIVE | SCOTCH_STRATREMAP, 16, 0.03); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATDEFAULT\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATDEFAULT, 0, 0.2); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATDISCONNECTED\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATDISCONNECTED, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATLEVELMAX\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATLEVELMAX, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATLEVELMIN\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATLEVELMIN, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATLEVELMAX | SCOTCH_STRATLEVELMIN\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATLEVELMAX | SCOTCH_STRATLEVELMIN, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATLEAFSIMPLE\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATLEAFSIMPLE, 3, 0.2); SCOTCH_stratExit (&stradat); printf ("Sequential ordering strategy, SCOTCH_STRATSEPASIMPLE\n"); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrderBuild (&stradat, SCOTCH_STRATSEPASIMPLE, 3, 0.2); SCOTCH_stratExit (&stradat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/000077500000000000000000000000001514310134000234345ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/CMakeLists.txt000066400000000000000000000156121514310134000262010ustar00rootroot00000000000000## Copyright 2014-2016,2021-2023 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Cedric LACHAT ## ## Amaury JACQUES ## ## Florent PRUVOST ## ## Marc FUENTES ## ## Francois PELLEGRINI ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 21 apr 2022 ## ## # Version 7.1 : from : 11 dec 2022 ## ## to 01 nov 2023 ## ## ## ############################################################ set_source_files_properties(${GENERATED_INCLUDE_DIR}/scotch.h PROPERTIES GENERATED 1) ################ # libEsMUMPS # ################ # esmumps.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/esmumps.h COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/library.h ${GENERATED_INCLUDE_DIR}/esmumps.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/library.h COMMENT "Copy esmumps.h to include directory") add_custom_target(esmumps_h DEPENDS "${GENERATED_INCLUDE_DIR}/esmumps.h") # libEsMUMPS set(esmumps_src dof.c esmumps.c graph_graph.c library_esmumps.c library_esmumps_f.c library_esmumps_strats.c order.c order_check.c order_io.c order_scotch_graph.c symbol.c symbol_check.c symbol_cost.c symbol_fax_graph.c symbol_fax.c) set(esmumps_headers module.h library.h ${GENERATED_INCLUDE_DIR}/scotch.h ${LIBSCOTCH_INCLUDE_DIR}/common.h graph.h dof.h symbol.h order.h fax.h ${GENERATED_INCLUDE_DIR}/esmumps.h) add_library(esmumps ${esmumps_src} ${esmumps_headers}) add_library(SCOTCH::esmumps ALIAS esmumps) add_dependencies(esmumps esmumps_h) set_target_properties(esmumps PROPERTIES PUBLIC_HEADER "${GENERATED_INCLUDE_DIR}/esmumps.h") set_target_properties(esmumps PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) if(APPLE) set_target_properties(esmumps PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif() target_include_directories(esmumps PRIVATE $ $ $) target_link_libraries(esmumps PRIVATE scotch) if(NOT "${LIBSCOTCHERR}" STREQUAL "") target_link_libraries(esmumps PRIVATE ${LIBSCOTCHERR}) endif() add_dependencies(esmumps scotch_h) add_executable(test_esmumps test_esmumps.c) set_target_properties(test_esmumps PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(test_esmumps PRIVATE ${GENERATED_INCLUDE_DIR}/) target_link_libraries(test_esmumps PRIVATE esmumps scotch scotcherrexit) add_dependencies(test_esmumps scotch_h) add_executable(test_fax test_fax.c) set_target_properties(test_fax PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(test_fax PRIVATE ${GENERATED_INCLUDE_DIR}/) target_link_libraries(test_fax PRIVATE esmumps scotch scotcherrexit) add_dependencies(test_fax scotch_h) # libEsMUMPS targets install install(EXPORT esmumpsTargets COMPONENT libscotch FILE esmumpsTargets.cmake NAMESPACE SCOTCH:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) install(TARGETS esmumps COMPONENT libscotch EXPORT esmumpsTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) # Dummy PTEsMUMPS library file if(BUILD_PTSCOTCH) add_library(ptesmumps ${esmumps_src} ${esmumps_headers}) add_library(SCOTCH::ptesmumps ALIAS ptesmumps) if(APPLE) set_target_properties(ptesmumps PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif() set_target_properties(ptesmumps PROPERTIES PUBLIC_HEADER "${GENERATED_INCLUDE_DIR}/esmumps.h") set_target_properties(ptesmumps PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_include_directories(ptesmumps PRIVATE $ $ $) target_link_libraries(ptesmumps PRIVATE scotch) if(NOT "${LIBSCOTCHERR}" STREQUAL "") target_link_libraries(ptesmumps PRIVATE ${LIBSCOTCHERR}) endif() add_dependencies(ptesmumps scotch_h) # libptesmumps targets install install(EXPORT ptesmumpsTargets COMPONENT libptscotch FILE ptesmumpsTargets.cmake NAMESPACE SCOTCH:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) install(TARGETS ptesmumps COMPONENT libptscotch EXPORT ptesmumpsTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif() scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/Makefile000066400000000000000000000143371514310134000251040ustar00rootroot00000000000000## Copyright 2004,2007-2010,2012,2015,2020,2022 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## SCOTCHINCLUDEDIR ?= ../../include SCOTCHLIBDIR ?= ../../lib SCOTCHSRCLIBSCOTCHDIR ?= ../libscotch ## ## General inference rules. ## include ../Makefile.inc %$(OBJ) : %.c $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(SCOTCHSRCLIBSCOTCHDIR) -I$(SCOTCHINCLUDEDIR) -c $(<) -o $(@) %$(EXE) : %.c $(CC) $(CFLAGS) -I$(SCOTCHSRCLIBSCOTCHDIR) -I$(SCOTCHINCLUDEDIR) $(<) -o $(@) -L. -lesmumps -L$(SCOTCHLIBDIR) -lscotch -lscotcherrexit $(LDFLAGS) ## ## Project rules. ## .PHONY : ptscotch scotch ptinstall install clean realclean scotch : $(MAKE) CC="$(CCS)" CCD="$(CCS)" \ libesmumps$(LIB) \ test_esmumps$(EXE) \ test_fax$(EXE) ptscotch : scotch install : scotch \ library.h -$(CP) library.h $(SCOTCHINCLUDEDIR)/esmumps.h -$(CP) libesmumps$(LIB) $(SCOTCHLIBDIR) ptinstall : scotch \ library.h -$(CP) library.h $(SCOTCHINCLUDEDIR)/esmumps.h -$(CP) libesmumps$(LIB) $(SCOTCHLIBDIR)/libptesmumps$(LIB) clean : -$(RM) *~ common.h *$(OBJ) lib*$(LIB) test_esmumps$(EXE) test_fax$(EXE) realclean : clean ## ## Library dependencies. ## LIBESMUMPSDEPS = dof$(OBJ) \ esmumps$(OBJ) \ graph_graph$(OBJ) \ library_esmumps$(OBJ) \ library_esmumps_f$(OBJ) \ library_esmumps_strats$(OBJ) \ order$(OBJ) \ order_check$(OBJ) \ order_io$(OBJ) \ order_scotch_graph$(OBJ) \ symbol$(OBJ) \ symbol_check$(OBJ) \ symbol_cost$(OBJ) \ symbol_fax_graph$(OBJ) ## ## Todo list. ## module.h : $(SCOTCHSRCLIBSCOTCHDIR)/module.h dof$(OBJ) : dof.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ graph.h \ dof.h esmumps$(OBJ) : esmumps.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ graph.h \ dof.h \ symbol.h \ order.h \ fax.h \ esmumps.h graph_graph$(OBJ) : graph_graph.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ graph.h \ library_esmumps$(OBJ) : library_esmumps.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ esmumps.h \ library.h library_esmumps_f$(OBJ) : library_esmumps_f.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ library.h library_esmumps_strats$(OBJ) : library_esmumps_strats.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ library.h order$(OBJ) : order.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ graph.h \ order.h order_check$(OBJ) : order_check.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ graph.h \ order.h order_scotch_graph$(OBJ) : order_scotch_graph.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ graph.h \ order.h order_io$(OBJ) : order_io.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ graph.h \ order.h symbol$(OBJ) : symbol.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ symbol.h symbol_check$(OBJ) : symbol_check.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ symbol.h symbol_cost$(OBJ) : symbol_cost.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ symbol.h \ symbol_cost.h symbol_fax$(OBJ) : symbol_fax.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ graph.h \ symbol.h \ order.h \ fax.h symbol_fax_graph$(OBJ) : symbol_fax_graph.c \ symbol_fax.c \ module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ graph.h \ symbol.h \ order.h \ fax.h libesmumps$(LIB) : $(LIBESMUMPSDEPS) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) test_esmumps$(EXE) : test_esmumps.c \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ module.h \ graph.h \ order.h \ symbol.h \ esmumps.h \ libesmumps$(LIB) \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) test_fax$(EXE) : test_fax.c \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ module.h \ graph.h \ order.h \ dof.h \ symbol.h \ fax.h \ esmumps.h \ libesmumps$(LIB) \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/dof.c000066400000000000000000000162071514310134000243560ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dof.c **/ /** **/ /** AUTHORS : David GOUDIN **/ /** Pascal HENON **/ /** Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the general purpose **/ /** routines for the DOF structure. **/ /** **/ /** DATES : # Version 0.0 : from : 07 oct 1998 **/ /** to : 14 oct 1998 **/ /** # Version 3.0 : from : 28 feb 2004 **/ /** to : 03 feb 2006 **/ /** # Version 5.1 : from : 22 jan 2009 **/ /** to : 22 jan 2009 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" #include "dof.h" /******************************/ /* */ /* The DOF handling routines. */ /* */ /******************************/ /*+ This routine initializes *** the given DOF structure. *** It returns: *** - 0 : in all cases. +*/ int dofInit ( Dof * const deofptr) { deofptr->baseval = 0; deofptr->nodenbr = 0; deofptr->noddval = 1; /* Set constant, non zero, number of DOFs */ deofptr->noddtab = NULL; return (0); } /*+ This routine frees the contents *** of the given DOF structure. *** It returns: *** - VOID : in all cases. +*/ void dofExit ( Dof * const deofptr) { if (deofptr->noddtab != NULL) memFree (deofptr->noddtab); #ifdef DOF_DEBUG dofInit (deofptr); #endif /* DOF_DEBUG */ } /*+ This routine sets the number of DOFs *** per node to a constant value. *** It returns: *** - VOID : in all cases. +*/ void dofConstant ( Dof * const deofptr, const INT baseval, const INT nodenbr, const INT noddval) { deofptr->baseval = baseval; deofptr->nodenbr = nodenbr; if (deofptr->noddtab != NULL) { /* If DOF array already allocated */ memFree (deofptr->noddtab); /* It is no longer of use */ deofptr->noddtab = NULL; } deofptr->noddval = noddval; } /*+ This routine builds the DOF index *** array from the graph vertex array. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int dofGraph ( Dof * const deofptr, /*+ DOF index array to build [based] +*/ const Graph * const grafptr, /*+ Matrix adjacency structure [based] +*/ const INT deofval, /*+ DOFs per node if no graph vertex load array +*/ const INT * const peritab) /*+ Inverse vertex->node permutation array +*/ { INT baseval; INT vertnbr; INT * velotab; INT edgenbr; SCOTCH_graphData (grafptr, &baseval, &vertnbr, NULL, NULL, &velotab, NULL, &edgenbr, NULL, NULL); deofptr->baseval = baseval; deofptr->nodenbr = vertnbr; if (velotab == NULL) { /* If no vertex weight (i.e. DOF) array */ deofptr->noddtab = NULL; /* No DOF array */ deofptr->noddval = deofval; /* Get node DOF value */ } else { /* Vertex load array present */ #ifdef DOF_CONSTANT deofptr->noddtab = NULL; /* No DOF array */ deofptr->noddval = deofval; #else /* DOF_CONSTANT */ const INT * restrict velotax; /* Based access to grafptr->velotab */ INT nodenum; /* Number of current node */ INT * noddtnd; /* Pointer to end of DOF index array */ INT * noddptr; /* Pointer to current DOF index */ const INT * periptr; deofptr->noddval = 0; /* DOF values are not constant */ if ((deofptr->noddtab = (INT *) memAlloc ((vertnbr + 1) * sizeof (INT))) == NULL) { errorPrint ("dofGraph: out of memory"); return (1); } for (noddptr = deofptr->noddtab, noddtnd = noddptr + vertnbr, periptr = peritab, nodenum = baseval, velotax = velotab - baseval; noddptr < noddtnd; noddptr ++, periptr ++) { *noddptr = nodenum; /* Set index to DOF array */ nodenum += velotax[*periptr]; /* Add number of DOFs for vertex */ } *noddptr = nodenum; /* Set end of DOF array */ #endif /* DOF_CONSTANT */ } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/dof.h000066400000000000000000000124251514310134000243610ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dof.h **/ /** **/ /** AUTHORS : David GOUDIN **/ /** Pascal HENON **/ /** Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the DOF handling structure. **/ /** **/ /** DATES : # Version 0.0 : from : 07 oct 1998 **/ /** to : 16 oct 1998 **/ /** # Version 1.0 : from : 06 jun 2002 **/ /** to : 06 jun 2002 **/ /** # Version 3.0 : from : 28 feb 2004 **/ /** to : 29 feb 2004 **/ /** # Version 6.0 : from : 22 may 2018 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ #define ESMUMPS_DOF_H #define DOF_CONSTANT /* Constant DOFs for ESMUMPS */ /* ** The type and structure definitions. */ /*+ The DOF structure. This structure is always associated to a Graph structure, which holds the base value. +*/ typedef struct Dof_ { INT baseval; /*+ Base value for indexing +*/ INT nodenbr; /*+ Number of nodes in DOF array +*/ INT noddval; /*+ DOF value for every node (if noddtab == NULL, 0 else) +*/ INT * restrict noddtab; /*+ Array of node->first DOF indexes (if noddval == 0) [+1,based] +*/ } Dof; /* ** The function prototypes. */ int dofInit (Dof * const deofptr); void dofExit (Dof * const deofptr); int dofLoad (Dof * const deofptr, FILE * const stream); int dofSave (const Dof * const deofptr, FILE * const stream); void dofConstant (Dof * const deofptr, const INT baseval, const INT nodenbr, const INT noddval); #ifdef ESMUMPS_GRAPH_H int dofGraph (Dof * const deofptr, const Graph * grafptr, const INT, const INT * const peritab); #endif /* ESMUMPS_GRAPH_H */ /* ** The macro definitions. */ #ifdef DOF_CONSTANT #define noddVal(deofptr,nodenum) ((deofptr)->baseval + (deofptr)->noddval * ((nodenum) - (deofptr)->baseval)) #define noddDlt(deofptr,nodenum) ((deofptr)->noddval) #else /* DOF_CONSTANT */ #define noddVal(deofptr,nodenum) (((deofptr)->noddtab != NULL) ? (deofptr)->noddtab[(deofptr)->baseval + (nodenum)] : ((deofptr)->baseval + (deofptr)->noddval * ((nodenum) - (deofptr)->baseval))) #define noddDlt(deofptr,nodenum) (((deofptr)->noddtab != NULL) ? ((deofptr)->noddtab[(deofptr)->baseval + (nodenum) + 1] - (deofptr)->noddtab[(deofptr)->baseval + (nodenum)]) : (deofptr)->noddval) #endif /* DOF_CONSTANT */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/esmumps.c000066400000000000000000000252441514310134000253000ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2020,2022,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : esmumps.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains a MUMPS interface **/ /** for the ordering routines of the **/ /** libSCOTCH + Emilio libfax libraries. **/ /** **/ /** DATES : # Version 0.0 : from : 16 may 2001 **/ /** to : 04 jun 2001 **/ /** # Version 0.1 : from : 13 feb 2002 **/ /** to : 13 feb 2002 **/ /** # Version 1.0 : from : 06 dec 2004 **/ /** to : 06 dec 2004 **/ /** # Version 5.1 : from : 22 jan 2009 **/ /** to : 22 jan 2009 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 6.1 : from : 28 aug 2020 **/ /** to : 05 sep 2020 **/ /** # Version 7.0 : from : 01 dec 2022 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" #include "dof.h" #include "symbol.h" #include "order.h" #include "fax.h" #include "esmumps.h" /**************************************/ /* */ /* This routine acts as an interface */ /* between ordering software such as */ /* MUMPS and Scotch+Emilio. */ /* */ /**************************************/ /* Meaning of the parameters : ** - n : order of the system (that is, number of columns). ** - iwlen : not used. Here for compatibility. ** - pe : on input, position in array iw of the extra-diagonal ** terms for the considered column. ** on output, -pe(i) is the father of node i in the elimination ** tree if i is a principal variable, or it is the index of ** the principal variable if i is a secondary variable. ** - pfree : number of extra-diagonal terms for the considered ** node (that is, the number of arcs dans le graph for this ** vertex). ** - len : array holding the number of extra-diagonal terms for ** each column. ** - iw : array of extra-diagonal terms (preserved). ** - nv : on output, nv(i) = 0 if variable i is a secondary ** variable, else nv(i) is the number of columns that are ** merged into principal variable i. ** - elen : on output, direct permutation (for MUMPS; the ** meaning of the "direct" and "inverse" permutations is ** just the opposite for Scotch) : ** k=elen(i) <==> column i is the k-th pivot. ** - last : on output, inverse permutation (for MUMPS) : ** i=last(k) <==> column i est le k-th pivot */ int esmumps2 ( const INT n, const INT pfree, /*+ Number of arcs, plus 1 +*/ INT * restrict const petab, INT * restrict const lentab, INT * restrict const iwtab, INT * restrict const velotab, /*+ NULL or nvtab +*/ INT * restrict const nvtab, INT * restrict const elentab, /*+ Permutations computed for debugging only +*/ INT * restrict const lasttab) /*+ Permutations computed for debugging only +*/ { INT baseval; /* Base value */ Graph grafdat; /* Graph */ Order ordedat; /* Graph ordering */ SymbolMatrix symbdat; /* Block factored matrix */ INT vertnum; INT * restrict vendtab; /* Vertex end array */ const INT * restrict velotax; /* Based access to inverse permutation */ const INT * restrict peritax; /* Based access to inverse permutation */ const SymbolCblk * restrict cblktax; /* Based access to column block array */ const SymbolBlok * restrict bloktax; /* Based access to block array */ INT * restrict nvtax; INT * restrict petax; INT cblknum; if ((vendtab = memAlloc (n * sizeof (INT))) == NULL) { errorPrint ("esmumps2: out of memory"); return (1); } for (vertnum = 0; vertnum < n; vertnum ++) vendtab[vertnum] = petab[vertnum] + lentab[vertnum]; graphInit (&grafdat); graphBuildGraph2 (&grafdat, 1, n, pfree - 1, petab, vendtab, velotab, NULL, iwtab, NULL); /* Assume Fortran-based indexing */ orderInit (&ordedat); orderGraph (&ordedat, &grafdat); /* Compute ordering with Scotch */ #ifdef ESMUMPS_ORDER_DUMP { const char * filestr; FILE * fileptr; filestr = envGetStr ("ESMUMPS_ORDER_DUMP_FILE", "/tmp/esmumps_ordering.ord"); if (filestr[0] != '\0') { /* If environment variable is not empty, perform dump of block ordering */ if ((fileptr = fopen (filestr, "w+")) == NULL) { errorPrint ("esmumps2: cannot open ordering dump file"); return (1); } orderSave (&ordedat, fileptr); fclose (fileptr); } } #endif /* ESMUMPS_ORDER_DUMP */ #ifdef ESMUMPS_DEBUG /* Permutations are output for debugging only */ memCpy (elentab, ordedat.permtab, n * sizeof (INT)); /* Copy permutations */ memCpy (lasttab, ordedat.peritab, n * sizeof (INT)); #endif /* ESMUMPS_DEBUG */ symbolInit (&symbdat); symbolFaxGraph (&symbdat, &grafdat, &ordedat); /* Compute block symbolic factorizaion */ #ifdef ESMUMPS_DEBUG_OUTPUT { Dof deofdat; /* Matrix DOF structure */ double fnnzval; double fopcval; dofInit (&deofdat); dofGraph (&deofdat, &grafdat, 1, ordedat.peritab); /* Base on graph weights or constant load of 1 */ symbolCost (&symbdat, &deofdat, SYMBOLCOSTLDLT, &fnnzval, &fopcval); /* Compute factorization cost */ fprintf (stderr, "ESMUMPS CblkNbr=" INTSTRING ", BlokNbr=" INTSTRING ", NNZ=%lg, OPC=%lg\n", symbdat.cblknbr, symbdat.bloknbr, fnnzval, fopcval); dofExit (&deofdat); } #endif /* ESMUMPS_DEBUG_OUTPUT */ baseval = 1; /* Assume Fortran-based indexing */ peritax = ordedat.peritab - baseval; /* Based accesses */ cblktax = symbdat.cblktab - baseval; bloktax = symbdat.bloktab - baseval; nvtax = nvtab - baseval; petax = petab - baseval; velotax = (velotab != NULL) ? velotab - baseval : velotab; for (cblknum = baseval; cblknum < (symbdat.cblknbr + baseval); cblknum ++) { /* For all column blocks */ INT degrval; /* True degree of column block */ INT bloknum; INT colunum; if (velotax == NULL) { /* If graph has no vertex weights */ for (bloknum = cblktax[cblknum].bloknum, degrval = 0; bloknum < cblktax[cblknum + 1].bloknum; bloknum ++) degrval += bloktax[bloknum].lrownum - bloktax[bloknum].frownum + 1; } else { /* Graph has vertex weights */ for (bloknum = cblktax[cblknum].bloknum, degrval = 0; bloknum < cblktax[cblknum + 1].bloknum; bloknum ++) { INT brownum; /* Block row index in permuted matrix */ for (brownum = bloktax[bloknum].frownum; brownum <= bloktax[bloknum].lrownum; brownum ++) degrval += velotax[peritax[brownum]]; } } nvtax[peritax[cblktax[cblknum].fcolnum]] = degrval; /* Set true block degree */ petax[peritax[cblktax[cblknum].fcolnum]] = (cblktax[cblknum].bloknum == cblktax[cblknum + 1].bloknum - 1) /* If column block has no extra-diagonals */ ? 0 /* Then mark block as root of subtree */ : - peritax[cblktax[bloktax[cblktax[cblknum].bloknum + 1].cblknum].fcolnum]; for (colunum = cblktax[cblknum].fcolnum + 1; /* For all secondary variables */ colunum <= cblktax[cblknum].lcolnum; colunum ++) { nvtax[peritax[colunum]] = 0; /* Set nv = 0 and pe = - principal variable */ petax[peritax[colunum]] = - peritax[cblktax[cblknum].fcolnum]; } } symbolExit (&symbdat); orderExit (&ordedat); graphExit (&grafdat); memFree (vendtab); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/esmumps.h000066400000000000000000000061751514310134000253070ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : esmumps.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the symbolic factorization routine. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 24 sep 1998 **/ /** # Version 0.1 : from : 04 apr 1999 **/ /** to : 01 may 1999 **/ /** # Version 6.0 : from : 22 may 2018 **/ /** to : 22 may 2018 **/ /** # Version 6.1 : from : 22 feb 2020 **/ /** to : 05 sep 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int esmumps2 (const INT, const INT, INT * const, INT * const, INT * const, INT * const, INT * const, INT * const, INT * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/fax.h000066400000000000000000000152371514310134000243730ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : fax.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Jean ROMAN (v0.0) **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the symbolic factorization routine. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 24 sep 1998 **/ /** # Version 0.1 : from : 04 apr 1999 **/ /** to : 01 may 1999 **/ /** # Version 1.0 : from : 01 jun 2002 **/ /** to : 25 jun 2002 **/ /** # Version 1.1 : from : 26 jun 2002 **/ /** to : 25 sep 2002 **/ /** # Version 1.3 : from : 17 jun 2003 **/ /** to : 17 jul 2003 **/ /** # Version 2.0 : from : 21 mar 2003 **/ /** to : 29 oct 2003 **/ /** # Version 2.0 : from : 03 mar 2004 **/ /** to : 03 mar 2004 **/ /** # Version 3.0 : from : 23 nov 2004 **/ /** to : 03 mar 2005 **/ /** # Version 6.0 : from : 22 may 2018 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int symbolCompact (SymbolMatrix * const symbptr); int symbolFax (SymbolMatrix * const symbptr, const INT vertnbr, const INT edgenbr, const INT baseval, void * const ngbdptr, INT ngbfrst (void * const, const INT), INT ngbnext (void * const), INT ngbdegr (void * const, const INT), const Order * const ordeptr); #ifdef ESMUMPS_GRAPH_H int symbolFaxGraph (SymbolMatrix * const symbptr, const Graph * const grafptr, const Order * const ordeptr); #endif /* ESMUMPS_GRAPH_H */ int symbolFaxGrid2C (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT baseval, const Order * const ordeptr); int symbolFaxGrid2D (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT baseval, const Order * const ordeptr); int symbolFaxGrid2E (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT baseval, const Order * const ordeptr); int symbolFaxGrid3C (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const Order * const ordeptr); int symbolFaxGrid3D (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const Order * const ordeptr); int symbolFaxGrid3E (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const Order * const ordeptr); #ifdef ESMUMPS_MESH_H int symbolFaxMesh (SymbolMatrix * const symbptr, const Mesh * const meshptr, const Order * const ordeptr); #endif /* ESMUMPS_MESH_H */ int symbolFaxi (SymbolMatrix * const symbptr, const INT vertnbr, const INT edgenbr, const INT baseval, void * const ngbdptr, INT ngbfrst (void * const, const INT), INT ngbnext (void * const), INT ngbdegr (void * const, const INT), const Order * const ordeptr, const INT levfmax); #ifdef ESMUMPS_GRAPH_H int symbolFaxiGraph (SymbolMatrix * const symbptr, const Graph * const grafptr, const Order * const ordeptr, const INT levfmax); #endif /* ESMUMPS_GRAPH_H */ int symbolFaxiGrid2D (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT baseval, const Order * const ordeptr, const INT levfmax); int symbolFaxiGrid2E (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT baseval, const Order * const ordeptr, const INT levfmax); int symbolFaxiGrid3D (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const Order * const ordeptr, const INT levfmax); int symbolFaxiGrid3E (SymbolMatrix * const symbptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const Order * const ordeptr, const INT levfmax); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/graph.h000066400000000000000000000103541514310134000247110ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph.h **/ /** **/ /** AUTHORS : David GOUDIN **/ /** Pascal HENON **/ /** Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the graph structure. **/ /** **/ /** DATES : # Version 0.0 : from : 27 jul 1998 **/ /** to : 24 jan 2004 **/ /** # Version 2.0 : from : 28 feb 2004 **/ /** to : 23 apr 2004 **/ /** # Version 6.0 : from : 22 may 2018 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ #define ESMUMPS_GRAPH_H /* ** The defines. */ #define Graph SCOTCH_Graph #define graphInit SCOTCH_graphInit #define graphExit SCOTCH_graphExit #define graphLoad SCOTCH_graphLoad #define graphSave SCOTCH_graphSave #define graphBase SCOTCH_graphBase #define graphData SCOTCH_graphData #define graphCheck SCOTCH_graphCheck /* ** The function prototypes. */ int graphBuild (Graph * const grafptr, const INT baseval, const INT vertnbr, const INT edgenbr, void * const ngbdptr, INT nghbfrstfunc (void * const, const INT), INT nghbnextfunc (void * const)); int graphBuildGraph (Graph * const grafptr, const INT baseval, const INT vertnbr, const INT edgenbr, INT * restrict verttab, INT * restrict velotab, INT * restrict edgetab); int graphBuildGraph2 (Graph * const grafptr, const INT baseval, const INT vertnbr, const INT edgenbr, INT * restrict verttab, INT * restrict vendtab, INT * restrict velotab, INT * restrict vlbltab, INT * restrict edgetab, INT * restrict edlotab); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/graph_graph.c000066400000000000000000000145131514310134000260660ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_graph.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These module holds the array graph **/ /** building routine. **/ /** **/ /** DATES : # Version 1.3 : from : 14 oct 2003 **/ /** to : 22 jan 2004 **/ /** # Version 2.0 : from : 28 feb 2004 **/ /** to : 06 dec 2004 **/ /** # Version 5.1 : from : 22 jan 2009 **/ /** to : 22 jan 2009 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" /********************************/ /* */ /* The graph handling routines. */ /* */ /********************************/ /* This routine builds a graph ** structure from the given ** arrays. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphBuildGraph ( Graph * const grafptr, /*+ Graph to build +*/ const INT baseval, /*+ Base value +*/ const INT vertnbr, /*+ Number of vertices +*/ const INT edgenbr, /*+ Number of arcs +*/ INT * restrict verttab, /*+ Vertex array +*/ INT * restrict velotab, /*+ Array of vertex weights (DOFs) if not NULL +*/ INT * restrict edgetab) /*+ Edge array +*/ { if (sizeof (INT) != sizeof (SCOTCH_Num)) { /* Check integer consistency */ errorPrint ("graphBuildGraph: inconsistent integer types"); return (1); } SCOTCH_graphBuild (grafptr, baseval, vertnbr, verttab, NULL, velotab, NULL, edgenbr, edgetab, NULL); #ifdef GRAPH_DEBUG if (graphCheck (grafptr) != 0) { /* Check graph consistency */ errorPrint ("graphBuildGraph: inconsistent graph data"); return (1); } #endif /* GRAPH_DEBUG */ return (0); } /* This routine builds a graph ** structure from the given ** arrays, with full libScotch ** features. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphBuildGraph2 ( Graph * const grafptr, /*+ Graph to build +*/ const INT baseval, /*+ Base value +*/ const INT vertnbr, /*+ Number of vertices +*/ const INT edgenbr, /*+ Number of arcs +*/ INT * restrict verttab, /*+ Vertex array +*/ INT * restrict vendtab, /*+ Vertex end array +*/ INT * restrict velotab, /*+ Array of vertex weights (DOFs) if not NULL +*/ INT * restrict vlbltab, /*+ Array of vertex labels if not NULL +*/ INT * restrict edgetab, /*+ Edge array +*/ INT * restrict edlotab) /*+ Edge load array +*/ { if (sizeof (INT) != sizeof (SCOTCH_Num)) { /* Check integer consistency */ errorPrint ("graphBuildGraph2: inconsistent integer types"); return (1); } SCOTCH_graphBuild (grafptr, baseval, vertnbr, verttab, vendtab, velotab, vlbltab, edgenbr, edgetab, edlotab); #ifdef GRAPH_DEBUG if (graphCheck (grafptr) != 0) { /* Check graph consistency */ errorPrint ("graphBuildGraph2: inconsistent graph data"); return (1); } #endif /* GRAPH_DEBUG */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/library.h000066400000000000000000000071361514310134000252600ustar00rootroot00000000000000/* Copyright 2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : esmumps.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the symbolic factorization routine. **/ /** **/ /** DATES : # Version 6.1 : from : 05 sep 2020 **/ /** to : 05 sep 2020 **/ /** # Version 7.0 : from : 26 aug 2024 **/ /** to : 26 aug 2024 **/ /** **/ /** NOTES : # This code derives from that of the **/ /** internal "esmumps.h" header file. **/ /** **/ /************************************************************/ #ifndef LIB_ESMUMPS_H #define LIB_ESMUMPS_H /* ** The function prototypes. */ int esmumps (const SCOTCH_Num n, const SCOTCH_Num iwlen, SCOTCH_Num * const pe, const SCOTCH_Num pfree, SCOTCH_Num * const len, SCOTCH_Num * const iw, SCOTCH_Num * const nv, SCOTCH_Num * const elen, SCOTCH_Num * const last); int esmumpsv (const SCOTCH_Num n, const SCOTCH_Num iwlen, SCOTCH_Num * const pe, const SCOTCH_Num pfree, SCOTCH_Num * const len, SCOTCH_Num * const iw, SCOTCH_Num * const nv, SCOTCH_Num * const elen, SCOTCH_Num * const last); int esmumps_strat1 (const SCOTCH_Num procnbr, const SCOTCH_Num leafsiz, const int leorval, const SCOTCH_Num cminval, const SCOTCH_Num cmaxval, const double fratval, const int verbval, FILE * const stream, char * const straptr); #endif /* LIB_ESMUMPS_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/library_esmumps.c000066400000000000000000000106401514310134000270160ustar00rootroot00000000000000/* Copyright 2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_esmumps.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains a MUMPS interface **/ /** for the ordering routines of the **/ /** libSCOTCH + Emilio libfax libraries. **/ /** **/ /** DATES : # Version 6.1 : from : 05 sep 2020 **/ /** to : 05 sep 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # This code derives from that of the **/ /** original "esmumps.c" file. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "esmumps.h" #include "library.h" /**************************************/ /* */ /* This routine acts as an interface */ /* between ordering software such as */ /* MUMPS and Scotch+Emilio. */ /* */ /**************************************/ int esmumps ( const SCOTCH_Num n, const SCOTCH_Num iwlen, /*+ Not used, just here for consistency +*/ SCOTCH_Num * restrict const petab, const SCOTCH_Num pfree, SCOTCH_Num * restrict const lentab, SCOTCH_Num * restrict const iwtab, SCOTCH_Num * restrict const nvtab, SCOTCH_Num * restrict const elentab, /*+ Permutations computed for debugging only +*/ SCOTCH_Num * restrict const lasttab) /*+ Permutations computed for debugging only +*/ { return (esmumps2 (n, pfree, petab, lentab, iwtab, NULL, nvtab, elentab, lasttab)); } /* ** */ int esmumpsv ( const SCOTCH_Num n, const SCOTCH_Num iwlen, /*+ Not used, just here for consistency +*/ SCOTCH_Num * restrict const petab, const SCOTCH_Num pfree, SCOTCH_Num * restrict const lentab, SCOTCH_Num * restrict const iwtab, SCOTCH_Num * restrict const nvtab, SCOTCH_Num * restrict const elentab, /*+ Permutations computed for debugging only +*/ SCOTCH_Num * restrict const lasttab) /*+ Permutations computed for debugging only +*/ { return (esmumps2 (n, pfree, petab, lentab, iwtab, nvtab, nvtab, elentab, lasttab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/library_esmumps_f.c000066400000000000000000000105331514310134000273240ustar00rootroot00000000000000/* Copyright 2004,2007,2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_esmumps_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains Fortran MUMPS **/ /** stubs for the ordering routines of the **/ /** libSCOTCH + Emilio libfax libraries. **/ /** **/ /** DATES : # Version 0.0 : from : 16 may 2001 **/ /** to : 17 may 2001 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 6.1 : from : 05 sep 2020 **/ /** to : 05 sep 2020 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "library.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the MUMPS ordering routines. */ /* */ /**************************************/ ESMUMPS_FORTRAN ( \ ESMUMPSF, esmumpsf, ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const iwlen, \ SCOTCH_Num * const petab, \ const SCOTCH_Num * const pfree, \ SCOTCH_Num * const lentab, \ SCOTCH_Num * const iwtab, \ SCOTCH_Num * const nvtab, \ SCOTCH_Num * const elentab, \ SCOTCH_Num * const lasttab, \ SCOTCH_Num * const ncmpa), \ (n, iwlen, petab, pfree, lentab, iwtab, nvtab, elentab, lasttab, ncmpa)) { *ncmpa = esmumps (*n, *iwlen, petab, *pfree, lentab, iwtab, nvtab, elentab, lasttab); } /* ** */ ESMUMPS_FORTRAN ( \ ESMUMPSVF, esmumpsvf, ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const iwlen, \ SCOTCH_Num * const petab, \ const SCOTCH_Num * const pfree, \ SCOTCH_Num * const lentab, \ SCOTCH_Num * const iwtab, \ SCOTCH_Num * const nvtab, \ SCOTCH_Num * const elentab, \ SCOTCH_Num * const lasttab, \ SCOTCH_Num * const ncmpa), \ (n, iwlen, petab, pfree, lentab, iwtab, nvtab, elentab, lasttab, ncmpa)) { *ncmpa = esmumpsv (*n, *iwlen, petab, *pfree, lentab, iwtab, nvtab, elentab, lasttab); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/library_esmumps_strats.c000066400000000000000000000151751514310134000304260ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : esmumps_strats.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains defalut strategy **/ /** building routines for calling Scotch **/ /** from MUMPS. **/ /** **/ /** DATES : # Version 1.0 : from : 08 dec 2003 **/ /** to : 08 dec 2003 **/ /** # Version 1.1 : from : 21 jun 2007 **/ /** to : 21 jun 2007 **/ /** # Version 5.0 : from : 08 feb 2008 **/ /** to : 08 feb 2008 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 6.1 : from : 05 sep 2020 **/ /** to : 05 sep 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "library.h" /**************************************/ /* */ /* This routine creates a strategy */ /* string from the given parameters. */ /* */ /**************************************/ /* Meaning of the parameters : ** - procnbr : number of processors. ** - leafsiz : limit size in vertices of the leaf subgraphs. ** - leorval : type of halo ordering : 0 : HAMD; 1 : HAMF. ** - cminval : minimum number of column blocks. ** - cmaxval : maximum number of column blocks. ** - fratval : maximum fill ratio. ** - verbval : verbose flag if > 0. ** - stream : verbose stream. ** - straptr : pointer to character string of sufficient size ** to hold the resulting Scotch strategy. */ int esmumps_strat1 ( const SCOTCH_Num procnbr, const SCOTCH_Num leafsiz, const int leorval, const SCOTCH_Num cminval, const SCOTCH_Num cmaxval, const double fratval, const int verbval, FILE * const stream, char * const straptr) { SCOTCH_Num levlval; /* Nested dissection level */ SCOTCH_Num procmax; char hamxval; /* Type of halo ordering routine */ for (levlval = 1, procmax = 1; procmax < procnbr; procmax <<= 1, levlval ++) ; /* Compute log2 of procnbr, + 1 */ hamxval = (leorval == 0) ? 'h' : 'f'; /* HAMD if 0, HAMF if 1 */ if (verbval != 0) { fprintf (stream, "Scotch strategy:\n- %ld levels of ND are necessary for %ld processors\n", (long) levlval, (long) procnbr); fprintf (stream, "- If compressed (0.7) graph, then perform %ld levels of ND, then switch to HAM(%c)\n", (long) levlval, (char) hamxval); fprintf (stream, "- If uncompressed graph, then perform at least %ld levels of ND, and proceed\n until graph size less than %ld vertices, then switch to HAM(%c)\n", (long) levlval, (long) leafsiz, (char) hamxval); fprintf (stream, "- At the end of HAM(%c), amalgamate if number of columns not greater than %ld,\n and if either column size is smaller than %ld or fill ratio less than %lf\n", (char) hamxval, (long) cmaxval, (long) cminval, (double) fratval); fprintf (stream, "- During uncoarsening, band graphs of width 3 are used for refinement\n"); fprintf (stream, "- Separators are not split and are ordered in natural order\n"); } sprintf (straptr, "c{rat=0.7,cpr=n{sep=/((levl<%ld)|(vert>%ld))?m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=h{pass=10}f{bal=0.2}}}|m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=h{pass=10}f{bal=0.2}}};,ole=%c{cmin=%ld,cmax=%ld,frat=%lf},ose=s},unc=n{sep=/(levl<%ld)?(m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=h{pass=10}f{bal=0.2}}})|m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=h{pass=10}f{bal=0.2}}};,ole=%c{cmin=%ld,cmax=%ld,frat=%lf},ose=s}}", (long) levlval, (long) leafsiz, (char) hamxval, (long) cminval, (long) cmaxval, (double) fratval, (long) levlval, (char) hamxval, (long) cminval, (long) cmaxval, (double) fratval); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/module.h000066400000000000000000000246271514310134000251050ustar00rootroot00000000000000/* Copyright 2009,2018,2022-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : module.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This is the global configuration file **/ /** for the ESMUMPS library module. **/ /** **/ /** DATES : # Version 5.1 : from : 22 jan 2009 **/ /** to : 22 jan 2009 **/ /** # Version 6.0 : from : 21 may 2018 **/ /** to : 21 may 2018 **/ /** # Version 6.1 : from : 05 sep 2020 **/ /** to : 05 sep 2020 **/ /** # Version 7.0 : from : 21 apr 2022 **/ /** to : 24 nov 2025 **/ /** **/ /************************************************************/ /* ** Debug values. */ #ifdef SCOTCH_DEBUG_FULL #ifndef SCOTCH_DEBUG_ALL #define SCOTCH_DEBUG_ALL #endif /* SCOTCH_DEBUG_ALL */ #define ESMUMPS_DEBUG_OUTPUT #endif /* SCOTCH_DEBUG_FULL */ #ifdef SCOTCH_DEBUG_ALL #define DOF_DEBUG #define ESMUMPS_DEBUG #define FAX_DEBUG #define GRAPH_DEBUG #define ORDER_DEBUG #define SYMBOL_DEBUG #endif /* SCOTCH_DEBUG_ALL */ /* ** Function renaming. */ #ifndef SCOTCH_NAME_SUFFIX #define SCOTCH_NAME_SUFFIXC #else /* SCOTCH_NAME_SUFFIX */ #ifndef SCOTCH_NAME_SUFFIXC #define SCOTCH_NAME_SUFFIXC SCOTCH_NAME_SUFFIX #endif /* SCOTCH_NAME_SUFFIXC */ #ifndef SCOTCH_RENAME #define SCOTCH_RENAME #endif /* SCOTCH_RENAME */ #ifndef SCOTCH_RENAME_PUBLIC #define SCOTCH_RENAME_PUBLIC #endif /* SCOTCH_RENAME_PUBLIC */ #endif /* SCOTCH_NAME_SUFFIX */ #ifndef SCOTCH_NAME_SUFFIXFL #define SCOTCH_NAME_SUFFIXFL SCOTCH_NAME_SUFFIXC #define SCOTCH_NAME_SUFFIXFU SCOTCH_NAME_SUFFIXC #else /* SCOTCH_NAME_SUFFIXFL */ #ifndef SCOTCH_RENAME #define SCOTCH_RENAME #endif /* SCOTCH_RENAME */ #ifndef SCOTCH_RENAME_PUBLIC #define SCOTCH_RENAME_PUBLIC #endif /* SCOTCH_RENAME_PUBLIC */ #endif /* SCOTCH_NAME_SUFFIXFL */ #define SCOTCH_NAME_PREFIX_INTERN _SCOTCH #define SCOTCH_NAME_PREFIX_PUBLICFL scotchf #define SCOTCH_NAME_PREFIX_PUBLICFU SCOTCHF #ifdef SCOTCH_RENAME #ifndef SCOTCH_COMMON_RENAME #define SCOTCH_COMMON_RENAME #endif /* SCOTCH_COMMON_RENAME */ #endif /* SCOTCH_RENAME */ #define SCOTCH_NAME_GLUE2(n,s) n##s #define SCOTCH_NAME_GLUE3(p,n,s) p##n##s #define SCOTCH_NAME_MACRO2(n,s) SCOTCH_NAME_GLUE2 (n,s) #define SCOTCH_NAME_MACRO3(p,n,s) SCOTCH_NAME_GLUE3 (p,n,s) #define SCOTCH_NAME_INTERN(f) SCOTCH_NAME_MACRO3 (SCOTCH_NAME_PREFIX_INTERN,f,SCOTCH_NAME_SUFFIXC) #define SCOTCH_NAME_PUBLIC(f) SCOTCH_NAME_MACRO2 (f,SCOTCH_NAME_SUFFIXC) #define SCOTCH_NAME_PUBLICFL(f) SCOTCH_NAME_MACRO3 (SCOTCH_NAME_PREFIX_PUBLICFL,f,SCOTCH_NAME_SUFFIXFL) #define SCOTCH_NAME_PUBLICFU(f) SCOTCH_NAME_MACRO3 (SCOTCH_NAME_PREFIX_PUBLICFU,f,SCOTCH_NAME_SUFFIXFU) #define SCOTCH_FORTRAN(nu,nl,pl,pc) FORTRAN (SCOTCH_NAME_PUBLICFU(nu),SCOTCH_NAME_PUBLICFL(nl),pl,pc) #define SCOTCH_NAME_GLOBAL(n) SCOTCH_NAME_MACRO2 (SCOTCH_, n) /* Always renamed, since exposed in Scotch user's manual */ #define errorPrint SCOTCH_NAME_GLOBAL (errorPrint) #define errorPrintW SCOTCH_NAME_GLOBAL (errorPrintW) #define errorProg SCOTCH_NAME_GLOBAL (errorProg) #if ((defined SCOTCH_COMMON_RENAME) && ! (defined SCOTCH_COMMON_INTERNAL)) #define intLoad SCOTCH_NAME_INTERN (intLoad) #define intSave SCOTCH_NAME_INTERN (intSave) #define intSort1asc1 SCOTCH_NAME_INTERN (intSort1asc1) #endif /* ((defined SCOTCH_COMMON_RENAME) && ! (defined SCOTCH_COMMON_INTERNAL)) */ #ifndef ESMUMPS_NAME_PREFIX_INTERN #define ESMUMPS_NAME_PREFIX_INTERN _ESMUMPS #endif /* ESMUMPS_NAME_PREFIX_INTERN */ #ifndef ESMUMPS_NAME_PREFIX_PUBLICFL #define ESMUMPS_NAME_PREFIX_PUBLICFL #define ESMUMPS_NAME_PREFIX_PUBLICFU #endif /* ESMUMPS_NAME_PREFIX_PUBLICFL */ #ifndef ESMUMPS_NAME_SUFFIX #define ESMUMPS_NAME_SUFFIX #endif /* ESMUMPS_NAME_SUFFIX */ #ifndef ESMUMPS_NAME_SUFFIXFL #define ESMUMPS_NAME_SUFFIXFL ESMUMPS_NAME_SUFFIX #define ESMUMPS_NAME_SUFFIXFU ESMUMPS_NAME_SUFFIX #endif /* ESMUMPS_NAME_SUFFIXFL */ #define ESMUMPS_NAME_GLUE2(n,s) n##s #define ESMUMPS_NAME_GLUE3(p,n,s) p##n##s #define ESMUMPS_NAME_MACRO2(n,s) ESMUMPS_NAME_GLUE2 (n,s) #define ESMUMPS_NAME_MACRO3(p,n,s) ESMUMPS_NAME_GLUE3 (p,n,s) #define ESMUMPS_NAME_INTERN(f) ESMUMPS_NAME_MACRO3 (ESMUMPS_NAME_PREFIX_INTERN,f,ESMUMPS_NAME_SUFFIX) #define ESMUMPS_NAME_PUBLIC(f) ESMUMPS_NAME_MACRO2 (f,ESMUMPS_NAME_SUFFIX) #define ESMUMPS_NAME_PUBLICFL(f) ESMUMPS_NAME_MACRO3 (ESMUMPS_NAME_PREFIX_PUBLICFL,f,ESMUMPS_NAME_SUFFIXFL) #define ESMUMPS_NAME_PUBLICFU(f) ESMUMPS_NAME_MACRO3 (ESMUMPS_NAME_PREFIX_PUBLICFU,f,ESMUMPS_NAME_SUFFIXFU) #define ESMUMPS_FORTRAN(nu,nl,pl,pc) FORTRAN (ESMUMPS_NAME_PUBLICFU(nu),ESMUMPS_NAME_PUBLICFL(nl),pl,pc) #define dofConstant ESMUMPS_NAME_INTERN (dofConstant) #define dofGraph ESMUMPS_NAME_INTERN (dofGraph) #define dofExit ESMUMPS_NAME_INTERN (dofExit) #define dofInit ESMUMPS_NAME_INTERN (dofInit) #define dofLoad ESMUMPS_NAME_INTERN (dofLoad) #define dofSave ESMUMPS_NAME_INTERN (dofSave) #define envGetStr SCOTCH_NAME_INTERN (envGetStr) #define esmumps2 ESMUMPS_NAME_INTERN (esmumps2) #define graphBuild ESMUMPS_NAME_INTERN (graphBuild) #define graphBuildGraph ESMUMPS_NAME_INTERN (graphBuildGraph) #define graphBuildGraph2 ESMUMPS_NAME_INTERN (graphBuildGraph2) #define orderBase ESMUMPS_NAME_INTERN (orderBase) #define orderCheck ESMUMPS_NAME_INTERN (orderCheck) #define orderExit ESMUMPS_NAME_INTERN (orderExit) #define orderGraph ESMUMPS_NAME_INTERN (orderGraph) #define orderGraphList ESMUMPS_NAME_INTERN (orderGraphList) #define orderGraphListStrat ESMUMPS_NAME_INTERN (orderGraphListStrat) #define orderGraphStrat ESMUMPS_NAME_INTERN (orderGraphStrat) #define orderGrid2 ESMUMPS_NAME_INTERN (orderGrid2) #define orderGrid2C ESMUMPS_NAME_INTERN (orderGrid2C) #define orderGrid3 ESMUMPS_NAME_INTERN (orderGrid3) #define orderGrid3C ESMUMPS_NAME_INTERN (orderGrid3C) #define orderInit ESMUMPS_NAME_INTERN (orderInit) #define orderLoad ESMUMPS_NAME_INTERN (orderLoad) #define orderMesh ESMUMPS_NAME_INTERN (orderMesh) #define orderMeshList ESMUMPS_NAME_INTERN (orderMeshList) #define orderMeshListStrat ESMUMPS_NAME_INTERN (orderMeshListStrat) #define orderMeshStrat ESMUMPS_NAME_INTERN (orderMeshStrat) #define orderSave ESMUMPS_NAME_INTERN (orderSave) #define symbolCheck ESMUMPS_NAME_INTERN (symbolCheck) #define symbolCost ESMUMPS_NAME_INTERN (symbolCost) #define symbolCosti ESMUMPS_NAME_INTERN (symbolCosti) #define symbolDraw ESMUMPS_NAME_INTERN (symbolDraw) #define symbolDrawColor ESMUMPS_NAME_INTERN (symbolDrawColor) #define symbolDrawFunc ESMUMPS_NAME_INTERN (symbolDrawFunc) #define symbolExit ESMUMPS_NAME_INTERN (symbolExit) #define symbolFaxGraph ESMUMPS_NAME_INTERN (symbolFaxGraph) #define symbolInit ESMUMPS_NAME_INTERN (symbolInit) #define symbolLevf ESMUMPS_NAME_INTERN (symbolLevf) #define symbolLoad ESMUMPS_NAME_INTERN (symbolLoad) #define symbolNonzeros ESMUMPS_NAME_INTERN (symbolNonzeros) #define symbolRealloc ESMUMPS_NAME_INTERN (symbolRealloc) #define symbolSave ESMUMPS_NAME_INTERN (symbolSave) #define symbolTree ESMUMPS_NAME_INTERN (symbolTree) #define symbolKeepAdd ESMUMPS_NAME_INTERN (symbolKeepAdd) #define symbolKeepCompute ESMUMPS_NAME_INTERN (symbolKeepCompute) #define symbolKeepDel ESMUMPS_NAME_INTERN (symbolKeepDel) #define symbolKeepExit ESMUMPS_NAME_INTERN (symbolKeepExit) #define symbolKeepHisto ESMUMPS_NAME_INTERN (symbolKeepHisto) #define symbolKeepInit ESMUMPS_NAME_INTERN (symbolKeepInit) #define symbolKeepPurge ESMUMPS_NAME_INTERN (symbolKeepPurge) #define symbolKeepView ESMUMPS_NAME_INTERN (symbolKeepView) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/order.c000066400000000000000000000071471514310134000247240ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This module computes orderings. **/ /** **/ /** DATES : # Version 0.0 : from : 20 aug 1998 **/ /** to : 24 sep 1998 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "order.h" /***********************************/ /* */ /* The ordering handling routines. */ /* */ /***********************************/ /* This routine initializes the given ** ordering structure. ** It returns: ** - 0 : in all cases. */ int orderInit ( Order * const ordeptr) { memSet (ordeptr, 0, sizeof (Order)); return (0); } /* This routine frees the contents ** of the given ordering. ** It returns: ** - VOID : in all cases. */ void orderExit ( Order * const ordeptr) { if (ordeptr->rangtab != NULL) memFree (ordeptr->rangtab); if (ordeptr->permtab != NULL) memFree (ordeptr->permtab); if (ordeptr->peritab != NULL) memFree (ordeptr->peritab); #ifdef ORDER_DEBUG memSet (ordeptr, ~0, sizeof (Order)); #endif /* ORDER_DEBUG */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/order.h000066400000000000000000000140641514310134000247250ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the graph ordering routine. **/ /** **/ /** DATES : # Version 0.0 : from : 22 aug 1998 **/ /** to : 01 may 1999 **/ /** # Version 2.0 : from : 25 oct 2003 **/ /** to : 02 jul 2010 **/ /** # Version 6.0 : from : 22 may 2018 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Ordering structure. vnodbas holds the base value for node indexings. vnodbas is equal to baseval for graphs, and to vnodbas for meshes. The same holds for rangtab, with rangtab[0] = vnodbas. +*/ typedef struct Order_ { INT cblknbr; /*+ Number of column blocks +*/ INT * rangtab; /*+ Column block range array [based,+1] +*/ INT * permtab; /*+ Permutation array [based] +*/ INT * peritab; /*+ Inverse permutation array [based] +*/ } Order; /* ** The function prototypes. */ int orderInit (Order * const ordeptr); void orderExit (Order * const ordeptr); int orderLoad (Order * const ordeptr, FILE * const stream); int orderSave (const Order * const ordeptr, FILE * const stream); void orderBase (Order * restrict const ordeptr, const INT baseval); int orderCheck (const Order * const ordeptr); int orderGrid2 (Order * const ordeptr, const INT xnbr, const INT ynbr, const INT baseval, const INT xlim, const INT ylim); int orderGrid2C (Order * const ordeptr, const INT xnbr, const INT ynbr, const INT baseval, const INT xlim, const INT ylim); int orderGrid3 (Order * const ordeptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const INT xlim, const INT ylim, const INT zlim); int orderGrid3C (Order * const ordeptr, const INT xnbr, const INT ynbr, const INT znbr, const INT baseval, const INT xlim, const INT ylim, const INT zlim); #ifdef ESMUMPS_GRAPH_H int orderGraph (Order * restrict const ordeptr, Graph * restrict const grafptr); int orderGraphList (Order * restrict const ordeptr, Graph * restrict const grafptr, const INT listnbr, const INT * restrict const listtab); int orderGraphStrat (Order * restrict const ordeptr, Graph * restrict const grafptr, const char * restrict const); int orderGraphListStrat (Order * restrict const ordeptr, Graph * restrict const grafptr, const INT listnbr, const INT * restrict const listtab, const char * const); #endif /* ESMUMPS_GRAPH_H */ #ifdef ESMUMPS_MESH_H int orderMesh (Order * restrict const ordeptr, Mesh * restrict const meshptr); int orderMeshList (Order * restrict const ordeptr, Mesh * restrict const meshptr, const INT listnbr, const INT * restrict const listtab); int orderMeshStrat (Order * restrict const ordeptr, Mesh * restrict const meshptr, const char * const); int orderMeshListStrat (Order * restrict const ordeptr, Mesh * restrict const meshptr, const INT listnbr, const INT * restrict const listtab, const char * const); #endif /* ESMUMPS_MESH_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/order_check.c000066400000000000000000000120261514310134000260510ustar00rootroot00000000000000/* Copyright 2004,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order_check.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This module checks the consistency of **/ /** orderings. **/ /** **/ /** DATES : # Version 0.0 : from : 06 oct 1998 **/ /** to : 06 oct 1998 **/ /** # Version 1.0 : from : 19 nov 2003 **/ /** to : 20 nov 2003 **/ /** # Version 2.0 : from : 28 feb 2004 **/ /** to : 28 feb 2004 **/ /** # Version 6.0 : from : 06 feb 2020 **/ /** to : 06 feb 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "order.h" /***********************************/ /* */ /* The ordering handling routines. */ /* */ /***********************************/ /*+ This routine checks the consistency *** of the given ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int orderCheck ( const Order * restrict const ordeptr) { INT baseval; /* Node base value */ INT vnodnnd; /* Based number of nodes */ INT vnodnum; /* Number of current node */ INT rangnum; /* Current column block index */ const INT * restrict peritax; /* Based access to peritab */ const INT * restrict permtax; /* Based access to permtab */ if (ordeptr->cblknbr < 0) { errorPrint ("orderCheck: invalid nunber of column blocks"); return (1); } baseval = ordeptr->rangtab[0]; /* Get base value */ if (baseval < 0) { errorPrint ("orderCheck: invalid vertex node base number"); return (1); } peritax = ordeptr->peritab - baseval; /* Set based accesses */ vnodnnd = ordeptr->rangtab[ordeptr->cblknbr]; for (rangnum = 0; rangnum < ordeptr->cblknbr; rangnum ++) { if ((ordeptr->rangtab[rangnum] < baseval) || (ordeptr->rangtab[rangnum] >= vnodnnd) || (ordeptr->rangtab[rangnum] >= ordeptr->rangtab[rangnum + 1])) { errorPrint ("orderCheck: invalid range array"); return (1); } } permtax = ordeptr->permtab - baseval; for (vnodnum = baseval; vnodnum < vnodnnd; vnodnum ++) { INT vnodold; vnodold = peritax[vnodnum]; if ((vnodold < baseval) || (vnodold >= vnodnnd) || (permtax[vnodold] != vnodnum)) { errorPrint ("orderCheck: invalid permutation arrays"); return (1); } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/order_io.c000066400000000000000000000147751514310134000254200ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order_io.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the input/output **/ /** routines for the ordering structure. **/ /** **/ /** DATES : # Version 0.0 : from : 04 jan 1999 **/ /** to 05 jan 1999 **/ /** # Version 2.0 : from : 28 feb 2004 **/ /** to 28 feb 2004 **/ /** # Version 7.0 : from : 21 apr 2022 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "order.h" /***********************************/ /* */ /* The ordering handling routines. */ /* */ /***********************************/ /*+ This routine reads the given ordering *** structure from the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int orderLoad ( Order * const ordeptr, FILE * const stream) { INT versval; /* Version number */ INT cblknbr; INT cblknum; INT vertnbr; INT vertnum; INT vertnnd; INT * permtax; INT * peritax; int i; if ((intLoad (stream, &versval) + intLoad (stream, &cblknbr) + intLoad (stream, &vertnbr) != 3) || (versval != 0) || (cblknbr > vertnbr)) { errorPrint ("orderLoad: bad input (1)"); return (1); } if (((ordeptr->rangtab = (INT *) memAlloc ((cblknbr + 1) * sizeof (INT))) == NULL) || ((ordeptr->permtab = (INT *) memAlloc (vertnbr * sizeof (INT))) == NULL) || ((ordeptr->peritab = (INT *) memAlloc (vertnbr * sizeof (INT))) == NULL)) { errorPrint ("orderLoad: out of memory"); orderExit (ordeptr); orderInit (ordeptr); return (1); } ordeptr->cblknbr = cblknbr; for (cblknum = 0, i = 1; (i == 1) && (cblknum <= cblknbr); cblknum ++) /* Read column-block data */ i = intLoad (stream, &ordeptr->rangtab[cblknum]); for (vertnum = 0; (i == 1) && (vertnum < vertnbr); vertnum ++) /* Read direct permutation */ i = intLoad (stream, &ordeptr->permtab[vertnum]); if (i != 1) { errorPrint ("orderLoad: bad input (2)"); orderExit (ordeptr); orderInit (ordeptr); return (1); } permtax = ordeptr->permtab - ordeptr->rangtab[0]; peritax = ordeptr->peritab - ordeptr->rangtab[0]; for (vertnum = ordeptr->rangtab[0], vertnnd = vertnum + vertnbr; /* Build inverse permutation */ vertnum < vertnnd; vertnum ++) peritax[permtax[vertnum]] = vertnum; return (0); } /*+ This routine saves the given *** ordering structure to the *** given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int orderSave ( const Order * const ordeptr, FILE * const stream) { INT vertnbr; INT vertnum; INT cblknum; int o; if (ordeptr->rangtab == NULL) { errorPrint ("orderSave: cannot save ordering without column block data"); return (1); } if (ordeptr->permtab == NULL) { errorPrint ("orderSave: cannot save ordering without direct permutation data"); return (1); } vertnbr = ordeptr->rangtab[ordeptr->cblknbr] - /* Get number of nodes */ ordeptr->rangtab[0]; if (fprintf (stream, "0\n%ld\t%ld\n", (long) ordeptr->cblknbr, (long) vertnbr) == EOF) { errorPrint ("orderSave: bad output (1)"); return (1); } for (cblknum = 0, o = 1; (o == 1) && (cblknum < ordeptr->cblknbr); cblknum ++) { /* Save column-block range array */ o = intSave (stream, ordeptr->rangtab[cblknum]); putc (((cblknum & 7) == 7) ? '\n' : '\t', stream); } o = intSave (stream, ordeptr->rangtab[cblknum]); putc ('\n', stream); for (vertnum = 0; (o == 1) && (vertnum < (vertnbr - 1)); vertnum ++) { /* Save direct permutation */ o = intSave (stream, ordeptr->permtab[vertnum]); putc (((vertnum & 7) == 7) ? '\n' : '\t', stream); } o = intSave (stream, ordeptr->permtab[vertnum]); putc ('\n', stream); if (o != 1) errorPrint ("orderSave: bad output (2)"); return (1 - o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/order_scotch_graph.c000066400000000000000000000210711514310134000274400ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order_scotch_graph.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This is the interface module with the **/ /** libSCOTCH matrix ordering library. **/ /** **/ /** DATES : # Version 0.0 : from : 20 aug 1998 **/ /** to : 18 may 1999 **/ /** # Version 1.0 : from : 18 mar 2003 **/ /** to : 21 jan 2004 **/ /** # Version 2.0 : from : 28 feb 2004 **/ /** to : 04 jan 2005 **/ /** # Version 2.1 : from : 21 jun 2007 **/ /** to : 21 jun 2007 **/ /** # Version 5.0 : from : 08 feb 2008 **/ /** to : 01 jun 2008 **/ /** # Version 5.1 : from : 22 jan 2009 **/ /** to : 02 jul 2010 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" #include "order.h" /****************************/ /* */ /* Graph ordering routines. */ /* */ /****************************/ /*+ This routine orders the given *** graph using the Emilio default *** ordering strategy. *** It returns: *** - 0 : if ordering succeeded. *** - !0 : on error. +*/ int orderGraph ( Order * restrict const ordeptr, /*+ Ordering to compute +*/ Graph * restrict const grafptr) /*+ Graph matrix to order +*/ { INT vertnbr; SCOTCH_graphSize (grafptr, &vertnbr, NULL); return (orderGraphList (ordeptr, grafptr, vertnbr, NULL)); } /*+ This routine orders the subgraph of *** the given graph induced by the given *** vertex list, using the Emilio default *** ordering strategy. *** It returns: *** - 0 : if ordering succeeded. *** - !0 : on error. +*/ int orderGraphList ( Order * restrict const ordeptr, /*+ Ordering to compute +*/ Graph * restrict const grafptr, /*+ Graph matrix to order +*/ const INT listnbr, /*+ Number of vertices in list +*/ const INT * restrict const listtab) /*+ Vertex list array +*/ { return (orderGraphListStrat (ordeptr, grafptr, listnbr, listtab, "c{rat=0.7,cpr=n{sep=/(vert>120)?m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=(|h{pass=10})f{bal=0.2}}}|m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=(|h{pass=10})f{bal=0.2}}};,ole=f{cmin=0,cmax=100000,frat=0.0},ose=g},unc=n{sep=/(vert>120)?m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=(|h{pass=10})f{bal=0.2}}}|m{type=h,rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.2},org=(|h{pass=10})f{bal=0.2}}};,ole=f{cmin=15,cmax=100000,frat=0.0},ose=g}}")); } /*+ This routine orders the given *** graph using the given ordering *** strategy. *** It returns: *** - 0 : if ordering succeeded. *** - !0 : on error. +*/ int orderGraphStrat ( Order * restrict const ordeptr, /*+ Ordering to compute +*/ Graph * restrict const grafptr, /*+ Graph matrix to order +*/ const char * restrict const stratptr) /*+ Ordering strategy +*/ { INT vertnbr; SCOTCH_graphSize (grafptr, &vertnbr, NULL); return (orderGraphListStrat (ordeptr, grafptr, vertnbr, NULL, stratptr)); } /*+ This routine orders the subgraph of *** the given graph induced by the given *** vertex list, using the given ordering *** strategy. *** It returns: *** - 0 : if ordering succeeded. *** - !0 : on error. +*/ int orderGraphListStrat ( Order * restrict const ordeptr, /*+ Ordering to compute +*/ Graph * restrict const grafptr, /*+ Graph matrix to order +*/ const INT listnbr, /*+ Number of vertices in list +*/ const INT * restrict const listtab, /*+ Vertex list array +*/ const char * restrict const stratptr) /*+ Ordering strategy +*/ { SCOTCH_Strat scotstrat; /* Scotch ordering strategy */ INT baseval; INT vertnbr; INT edgenbr; int o; if (sizeof (INT) != sizeof (SCOTCH_Num)) { /* Check integer consistency */ errorPrint ("orderGraphListStrat: inconsistent integer types"); return (1); } SCOTCH_graphData (grafptr, &baseval, &vertnbr, NULL, NULL, NULL, NULL, &edgenbr, NULL, NULL); if (((ordeptr->permtab = (INT *) memAlloc ( vertnbr * sizeof (INT))) == NULL) || ((ordeptr->peritab = (INT *) memAlloc ( vertnbr * sizeof (INT))) == NULL) || ((ordeptr->rangtab = (INT *) memAlloc ((vertnbr + 1) * sizeof (INT))) == NULL)) { errorPrint ("orderGraphListStrat: out of memory"); orderExit (ordeptr); orderInit (ordeptr); return (1); } SCOTCH_stratInit (&scotstrat); /* Initialize default ordering strategy */ o = SCOTCH_stratGraphOrder (&scotstrat, stratptr); if (o == 0) o = SCOTCH_graphOrderList (grafptr, /* Compute graph ordering */ (SCOTCH_Num) listnbr, (SCOTCH_Num *) listtab, &scotstrat, (SCOTCH_Num *) ordeptr->permtab, (SCOTCH_Num *) ordeptr->peritab, (SCOTCH_Num *) &ordeptr->cblknbr, (SCOTCH_Num *) ordeptr->rangtab, NULL); SCOTCH_stratExit (&scotstrat); if (o != 0) { /* If something failed in Scotch */ orderExit (ordeptr); /* Free ordering arrays */ orderInit (ordeptr); return (1); } #ifdef ORDER_DEBUG if ((ordeptr->rangtab[0] != baseval) || (ordeptr->rangtab[ordeptr->cblknbr] != baseval + vertnbr) || (orderCheck (ordeptr) != 0)) { errorPrint ("orderGraphListStrat: invalid ordering"); } #endif /* ORDER_DEBUG */ ordeptr->rangtab = (INT *) memRealloc (ordeptr->rangtab, (ordeptr->cblknbr + 1) * sizeof (INT)); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol.c000066400000000000000000000120751514310134000251120ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol.c **/ /** **/ /** AUTHORS : David GOUDIN **/ /** Pascal HENON **/ /** Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the general purpose **/ /** routines for the symbolic matrix. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 07 oct 1998 **/ /** # Version 0.1 : from : 03 dec 1998 **/ /** to : 03 dec 1998 **/ /** # Version 3.0 : from : 29 feb 2004 **/ /** to : 29 feb 2004 **/ /** # Version 6.0 : from : 22 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "symbol.h" /******************************************/ /* */ /* The symbolic matrix handling routines. */ /* */ /******************************************/ /*+ This routine initializes the given *** symbolic block matrix structure. *** It returns: *** - 0 : in all cases. +*/ int symbolInit ( SymbolMatrix * const symbptr) { memSet (symbptr, 0, sizeof (SymbolMatrix)); return (0); } /*+ This routine frees the contents *** of the given symbolic block matrix. *** It returns: *** - VOID : in all cases. +*/ void symbolExit ( SymbolMatrix * const symbptr) { if (symbptr->cblktab != NULL) memFree (symbptr->cblktab); if (symbptr->bloktab != NULL) memFree (symbptr->bloktab); #ifdef SYMBOL_DEBUG symbolInit (symbptr); #endif /* SYMBOL_DEBUG */ } /*+ This routine reallocates the arrays *** of the given symbolic block matrix. *** It returns: *** - VOID : in all cases. +*/ void symbolRealloc ( SymbolMatrix * const symbptr) { SymbolCblk * cblktab; SymbolBlok * bloktab; if ((cblktab = (SymbolCblk *) memAlloc ((symbptr->cblknbr + 1) * sizeof (SymbolCblk))) == NULL) return; /* Cannot move smallest array */ memCpy (cblktab, symbptr->cblktab, (symbptr->cblknbr + 1) * sizeof (SymbolCblk)); memFree (symbptr->cblktab); /* Move column block array */ symbptr->cblktab = cblktab; if ((bloktab = (SymbolBlok *) memAlloc (symbptr->bloknbr * sizeof (SymbolBlok))) == NULL) return; /* Cannot move array */ memCpy (bloktab, symbptr->bloktab, symbptr->bloknbr * sizeof (SymbolBlok)); memFree (symbptr->bloktab); /* Move column block array */ symbptr->bloktab = bloktab; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol.h000066400000000000000000000230651514310134000251200ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** David GOUDIN (v0.0) **/ /** Pascal HENON (v0.0) **/ /** Pierre RAMET (v0.0) **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the symbolic matrix. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 07 oct 1998 **/ /** # Version 0.1 : from : 21 mar 2002 **/ /** to : 21 mar 2002 **/ /** # Version 1.0 : from : 03 jun 2002 **/ /** to : 26 jun 2002 **/ /** # Version 1.3 : from : 10 apr 2003 **/ /** to : 10 jun 2003 **/ /** # Version 3.0 : from : 28 feb 2004 **/ /** to : 03 mar 2005 **/ /** # Version 5.1 : from : 05 nov 2010 **/ /** to : 05 nov 2010 **/ /** # Version 6.0 : from : 22 may 2018 **/ /** to : 22 may 2018 **/ /** # Version 6.1 : from : 24 feb 2020 **/ /** to : 24 feb 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The column block structure. +*/ typedef struct SymbolCblk_ { INT fcolnum; /*+ First column index +*/ INT lcolnum; /*+ Last column index (inclusive) +*/ INT bloknum; /*+ First block in column (diagonal) +*/ } SymbolCblk; /*+ The column block structure. +*/ typedef struct SymbolBlok_ { INT frownum; /*+ First row index +*/ INT lrownum; /*+ Last row index (inclusive) +*/ INT cblknum; /*+ Facing column block +*/ #ifdef SYMBOL_HAS_LEVFVAL INT levfval; /*+ Level-of-fill value +*/ #endif /* SYMBOL_HAS_LEVFVAL */ } SymbolBlok; /*+ The symbolic block matrix. +*/ typedef struct SymbolMatrix_ { INT baseval; /*+ Base value for numberings +*/ INT cblknbr; /*+ Number of column blocks +*/ INT bloknbr; /*+ Number of blocks +*/ SymbolCblk * cblktab; /*+ Array of column blocks [+1,based] +*/ SymbolBlok * bloktab; /*+ Array of blocks [based] +*/ INT nodenbr; /*+ Number of nodes in matrix +*/ } SymbolMatrix; /*+ The type of cost computations. +*/ typedef enum SymbolCostType_ { SYMBOLCOSTLDLT /*+ Crout (i.e. LDLt) cost function +*/ } SymbolCostType; /* Structure for keeping track of selected blocks in the matrix pattern. The values of the tables are the remaining values for the yet unselected blocks. */ typedef struct SymbolKeepBlok_ { INT levfval; /*+ Values for incomplete factorisation +*/ INT nupdval; INT ctrival; INT ctroval; INT hghtval; } SymbolKeepBlok; typedef struct SymbolKeep_ { INT levfmax; /*+ Maximum values for incomplete fax +*/ INT nupdmax; INT ctrimax; INT ctromax; INT hghtmax; byte * keeptab; /*+ Flag array for kept blocks +*/ SymbolKeepBlok * kblktab; /*+ Block parameter array +*/ double * levftab; /*+ Area arrays for selected blocks +*/ double * nupdtab; double * ctritab; double * ctrotab; double * hghttab; } SymbolKeep; /* ** The function prototypes. */ int symbolInit (SymbolMatrix * const symbptr); void symbolExit (SymbolMatrix * const symbptr); void symbolRealloc (SymbolMatrix * const symbptr); int symbolLoad (SymbolMatrix * const symbptr, FILE * const stream); int symbolSave (const SymbolMatrix * const symbptr, FILE * const stream); int symbolCheck (const SymbolMatrix * const symbptr); int symbolDraw (const SymbolMatrix * const symbptr, FILE * const stream); int symbolDrawFunc (const SymbolMatrix * const symbptr, int (*) (const SymbolMatrix * const, const SymbolBlok * const, void * const, float * const), int (*) (const SymbolMatrix * const, const SymbolBlok * const, void * const, float * const), void * const, FILE * const stream); void symbolDrawColor (const INT labl, float * const coloptr); #ifdef ESMUMPS_DOF_H int symbolCost (const SymbolMatrix * const symbptr, const Dof * const deofptr, const SymbolCostType typeval, double * const nnzptr, double * const opcptr); int symbolCosti (const SymbolMatrix * const symbptr, const Dof * const deofptr, const SymbolCostType typeval, const INT levfval, double * const nnzptr, double * const opcptr); int symbolLevf (const SymbolMatrix * const symbptr, INT * const levfmax, INT ** const levftab); int symbolTree (const SymbolMatrix * const symbptr, const Dof * const deofptr, INT * const leafnbr, INT * const heigmin, INT * const heigmax, double * const heigavg, double * const heigdlt); int symbolNonzeros (const SymbolMatrix * const symbptr, FILE * const stream); #endif /* ESMUMPS_DOF_H */ int symbolKeepInit (SymbolKeep * restrict const keepptr, const SymbolMatrix * const symbptr); void symbolKeepExit (SymbolKeep * restrict const keepptr); void symbolKeepAdd (SymbolKeep * restrict const keepptr, const SymbolMatrix * const symbptr, int (* funcptr) (const SymbolKeepBlok * const, void * const), void * dataptr); void symbolKeepDel (SymbolKeep * restrict const keepptr, const SymbolMatrix * const symbptr, int (* funcptr) (const SymbolKeepBlok * const, void * const), void * dataptr); int symbolKeepCompute (SymbolKeep * restrict const keepptr, const SymbolMatrix * const symbptr); int symbolKeepHisto (SymbolKeep * const keepptr, const SymbolMatrix * const, int (* funcptr) (const SymbolKeepBlok * const, void * const), void * dataptr); int symbolKeepPurge (SymbolKeep * restrict const keepptr, SymbolMatrix * restrict const symbptr); int symbolKeepView (const SymbolKeep * const keepptr, const double nnzlmax, const char * const nameptr); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol_check.c000066400000000000000000000145071514310134000262510ustar00rootroot00000000000000/* Copyright 2004,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol_check.c **/ /** **/ /** AUTHORS : David GOUDIN **/ /** Pascal HENON **/ /** Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This module checks the consistency of **/ /** symbolic matrices. **/ /** **/ /** DATES : # Version 0.0 : from : 29 sep 1998 **/ /** to : 07 oct 1998 **/ /** # Version 1.0 : from : 03 jun 2002 **/ /** to : 03 jun 2002 **/ /** # Version 3.0 : from : 29 feb 2004 **/ /** to : 29 feb 2004 **/ /** # Version 6.0 : from : 06 feb 2020 **/ /** to : 06 feb 2020 **/ /** # Version 6.1 : from : 24 feb 2020 **/ /** to : 24 feb 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "symbol.h" /******************************************/ /* */ /* The symbolic matrix handling routines. */ /* */ /******************************************/ /*+ This routine checks the consistency *** of the given symbolic block matrix. *** Because of incomplete factorization, *** from version 1.0, no check is performed *** regarding the existence of facing blocks *** in facing columns. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int symbolCheck ( const SymbolMatrix * const symbptr) { INT baseval; /* Base value */ const SymbolCblk * restrict cblktax; /* Based access to cblktab */ INT cblkmax; /* Maximum column block index */ INT cblknum; /* Based number of current column block */ const SymbolBlok * restrict bloktax; /* Based access to bloktab */ INT blokmax; /* Maximum block index */ INT bloknum; /* Based number of current block */ INT nodemax; /* Maximum node index */ baseval = symbptr->baseval; cblktax = symbptr->cblktab - baseval; cblkmax = symbptr->cblknbr + (baseval - 1); bloktax = symbptr->bloktab - baseval; blokmax = symbptr->bloknbr + baseval; nodemax = symbptr->nodenbr + (baseval - 1); for (cblknum = bloknum = baseval; cblknum <= cblkmax; cblknum ++) { if ((cblktax[cblknum].fcolnum < baseval) || (cblktax[cblknum].lcolnum > nodemax) || (cblktax[cblknum].bloknum > blokmax) || (cblktax[cblknum].fcolnum > cblktax[cblknum].lcolnum) || (cblktax[cblknum + 1].fcolnum <= cblktax[cblknum].lcolnum) || (cblktax[cblknum + 1].bloknum <= cblktax[cblknum].bloknum)) { errorPrint ("symbolCheck: invalid column block array"); return (1); } if ((bloktax[bloknum].frownum != cblktax[cblknum].fcolnum) || (bloktax[bloknum].lrownum != cblktax[cblknum].lcolnum) || #ifdef SYMBOL_HAS_LEVFVAL (bloktax[bloknum].levfval != 0) || #endif /* SYMBOL_HAS_LEVFVAL */ (bloktax[bloknum].cblknum != cblknum)) { errorPrint ("symbolCheck: invalid diagonal block"); return (1); } for (bloknum ++; bloknum < cblktax[cblknum + 1].bloknum; bloknum ++) { if ((bloktax[bloknum].cblknum < baseval) || (bloktax[bloknum].cblknum > cblkmax) || (bloktax[bloknum].frownum <= bloktax[bloknum - 1].lrownum) || (bloktax[bloknum].cblknum < bloktax[bloknum - 1].cblknum)) { errorPrint ("symbolCheck: invalid block array"); return (1); } } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol_cost.c000066400000000000000000000212701514310134000261370ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol_cost.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This module computes the block solving **/ /** cost of symbolic matrices, using the **/ /** cost functions of "Fonctions de Comple- **/ /** xite pour la Resolution par Blocs de **/ /** Systemes Lineaires Denses et Creux", by **/ /** Pierre Ramet. **/ /** **/ /** DATES : # Version 0.0 : from : 14 oct 1998 **/ /** to : 15 oct 1998 **/ /** # Version 1.0 : from : 24 jun 2002 **/ /** to : 26 jun 2002 **/ /** # Version 1.2 : from : 02 sep 2002 **/ /** to : 02 sep 2002 **/ /** # Version 3.0 : from : 29 sep 2004 **/ /** to : 29 sep 2004 **/ /** # Version 6.1 : from : 28 aug 2020 **/ /** to : 28 aug 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ESMUMPS_SYMBOL_COST #include "module.h" #include "common.h" #include "dof.h" #include "symbol.h" #include "symbol_cost.h" /******************************************/ /* */ /* The symbolic matrix handling routines. */ /* */ /******************************************/ /*+ This routine computes the factorization *** and solving cost of the given symbolic *** block matrix, whose nodes hold the number *** of DOFs given by the proper DOF structure. *** To ensure maximum accuracy and minimum loss *** of precision, costs are summed-up recursively. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int symbolCost ( const SymbolMatrix * const symbptr, /*+ Symbolic matrix to evaluate +*/ const Dof * const deofptr, /*+ DOF structure associated with the matrix +*/ const SymbolCostType typeval, /*+ Type of cost computation +*/ double * const nnzptr, /*+ Size of the structure, to be filled +*/ double * const opcptr) /*+ Operation count, to be filled +*/ { if (typeval != SYMBOLCOSTLDLT) { errorPrint ("symbolCost: cost function not supported"); return (1); } *opcptr = 0.0L; *nnzptr = 0.0L; symbolCost2 (symbptr->cblktab - symbptr->baseval, /* Perform recursion on column blocks */ symbptr->bloktab - symbptr->baseval, deofptr, nnzptr, opcptr, symbptr->baseval, symbptr->cblknbr); return (0); } static void symbolCost2 ( const SymbolCblk * restrict const cblktax, /*+ Based access to cblktab +*/ const SymbolBlok * restrict const bloktax, /*+ Based access to bloktab +*/ const Dof * restrict const deofptr, /*+ DOF structure associated with the matrix +*/ double * restrict const nnzptr, /*+ Size of the structure, to be filled +*/ double * restrict const opcptr, /*+ Operation count, to be filled +*/ const INT cblkmin, /*+ Minimum column block index to consider +*/ const INT cblknbr) /*+ Number of column blocks to consider +*/ { INT bloknum; /* Number of current extra-diagonal block */ INT cmednum; /* Median column block number */ INT cfacnum; /* Number of facing column block */ INT cdofnbr; /* Number of DOFs in column block (l_k) */ INT rdofnbr; /* Number of DOFs in row blocks (h_{ki}) */ INT rdofsum; /* Number of DOFs in all row blocks (g_{ki} or g_{k}) */ double nnzval; /* Number of non-zeroes in subtree */ double opcval; /* Operation count in subtree */ nnzval = /* Initialize local values */ opcval = 0.0L; if (cblknbr > 1) { /* If more than one column block, perform recursion */ cmednum = cblknbr / 2; symbolCost2 (cblktax, bloktax, deofptr, &nnzval, &opcval, cblkmin, cmednum); symbolCost2 (cblktax, bloktax, deofptr, &nnzval, &opcval, cblkmin + cmednum, cblknbr - cmednum); *nnzptr += nnzval; /* Sum-up local values */ *opcptr += opcval; } else { /* Single column block */ cdofnbr = noddVal (deofptr, cblktax[cblkmin].lcolnum + 1) - noddVal (deofptr, cblktax[cblkmin].fcolnum); rdofnbr = rdofsum = 0; for (bloknum = cblktax[cblkmin + 1].bloknum - 1; /* Scan extra-diagonals, backwards */ bloknum > cblktax[cblkmin].bloknum; ) { rdofsum += rdofnbr; rdofnbr = 0; cfacnum = bloktax[bloknum].cblknum; /* Accumulate extra-diagonal blocks facing same column block */ do { rdofnbr += noddVal (deofptr, bloktax[bloknum].lrownum + 1) - noddVal (deofptr, bloktax[bloknum].frownum); } while (bloktax[-- bloknum].cblknum == cfacnum); #ifndef DEAD_CODE opcval += ((double) (rdofnbr)) * /* Count Upsilon_{ki} */ ((double) (rdofnbr + 1 + 2 * rdofsum)) * 0.5L + ((double) (rdofnbr + rdofsum)) * /* Count Lambda_{k}(i) */ ((double) (cdofnbr)) * ((double) (2 * rdofnbr + 1)); #else /* DEAD_CODE */ opcval += ((double) (rdofnbr)) * /* Count C3'(k,i) + C3''(k,i) */ ((double) (rdofnbr + rdofsum)) * ((double) (2 * cdofnbr + 1)); #endif /* DEAD_CODE */ } rdofsum += rdofnbr; /* Get overall sum */ *nnzptr += ((double) (cdofnbr + rdofsum)) * ((double) cdofnbr); /* Sum-up stored coefficients */ *opcptr += opcval + ((double) cdofnbr) * /* Count C1(k) + C2(k) */ (((double) cdofnbr) * ((double) (2 * cdofnbr + 6 * rdofsum + 3)) + 1.0L) / 6.0L; } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol_cost.h000066400000000000000000000062641514310134000261520ustar00rootroot00000000000000/* Copyright 1998,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol_cost.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Pascal HENON **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the symbolic matrix cost computing **/ /** routine. **/ /** **/ /** DATES : # Version 0.0 : from : 14 oct 1998 **/ /** to : 16 oct 1998 **/ /** # Version 6.1 : from : 28 aug 2020 **/ /** to : 28 aug 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #ifdef ESMUMPS_SYMBOL_COST static void symbolCost2 (const SymbolCblk * const cblktax, const SymbolBlok * const bloktax, const Dof * const deofptr, double * const nnzptr, double * const opcptr, const INT cblkmin, const INT cblknbr); #endif /* ESMUMPS_SYMBOL_COST */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol_fax.c000066400000000000000000000652341514310134000257550ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2022,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol_fax.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Jean ROMAN (v0.0) **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This is the generic block symbolic **/ /** factorization routine. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 29 sep 1998 **/ /** # Version 0.1 : from : 04 apr 1999 **/ /** to : 21 apr 1999 **/ /** # Version 0.2 : from : 08 may 2000 **/ /** to : 09 may 2000 **/ /** # Version 1.0 : from : 13 mar 2002 **/ /** to : 08 jun 2002 **/ /** # Version 1.2 : from : 23 aug 2002 **/ /** to : 23 aug 2002 **/ /** # Version 2.0 : from : 21 mar 2003 **/ /** to : 21 mar 2003 **/ /** # Version 6.0 : from : 06 feb 2020 **/ /** to : 06 feb 2020 **/ /** # Version 6.1 : from : 24 feb 2020 **/ /** to : 24 feb 2020 **/ /** # Version 7.0 : from : 11 dec 2022 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef SYMBOL_FAX_INCLUDED /* If not included from other file */ #include "module.h" #include "common.h" #include "symbol.h" #include "order.h" #include "fax.h" #include "symbol_fax.h" #endif /* SYMBOL_FAX_INCLUDED */ /***********************************/ /* */ /* Symbolic factorization routine. */ /* */ /***********************************/ /*+ This routine computes the block symbolic *** factorization of the given matrix *** according to the given vertex ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. *** Algorithm: *** The algorithm is implemented in a *** cache-friendly manner, by using a single *** dynamic array which grows along with the *** number of computed blocks. The array is *** decomposed in the following manner: *** - In a first phase, a hash table and a *** sort area are reserved at the end of *** the space of already computed blocks. *** The sort area is created far enough from *** the end of the array of already computed *** blocks such that if there are no contributing *** blocks all new blocks can be created without *** colliding with the sort area. *** - Then, in a second phase, if the current *** column block does have contributing column *** blocks, an area for simply-linked temporary *** blocks is reserved at least after the sort area, *** leaving enough space to create all of the *** corresponding potential new blocks *** just after all the blocks of the previous *** column block (right picture). *** ___________ *** |ccccccccccc| <- bloktab (bloktax) *** |ccccccccccc| *** |ccccccccccc| :ccccccccccc: *** |ccccccccccc| >- Computed blocks ----------< |ccccccccccc| *** |ccccccccccc| |ccccccccccc| *** |-----------| |:::::::::::| *** |hhhhhhhhhhh| <- hashtab = bloknum --------> |bcbcbcbcbcb| *** |hhhhhhhhhhh| | |cbcbcbcbcbc| *** |hhhhhhhhhhh| | |bcbcbcbcbcb| *** |hhhhhhhhhhh| | |cbcbcbcbcbc| *** |-----------| | |bcbcbcbcbcb| *** | | | |-----------| *** |-----------| <- sorttab...... ------------> | | *** |sssssssssss| | | *** |sssssssssss| | | *** |-----------| <- ............................| | *** | | tloktab -> |-----------| *** | | |ttttttttttt| *** | | |ttttttttttt| *** : : |-----------| *** :___________: :___________: *** <- bloktab + blokmax +*/ #ifndef SYMBOL_FAX_INCLUDED #define SYMBOL_FAX_ITERATOR(ngbdptr, vertnum, vertend) \ for (vertend = ngbfrst ((ngbdptr), (vertnum)); \ vertend >= baseval; \ vertend = ngbnext (ngbdptr)) { #define SYMBOL_FAX_VERTEX_DEGREE(ngbdptr, vertnum) \ (ngbdegr ((ngbdptr), (vertnum))) int symbolFax ( SymbolMatrix * const symbptr, /*+ Symbolic block matrix [based] +*/ const INT vertnbr, /*+ Number of vertices +*/ const INT edgenbr, /*+ Number of edges +*/ const INT baseval, /*+ Base value +*/ void * const ngbdptr, /*+ Neighbor bookkeeping area +*/ INT ngbfrst (void * const, const INT), /*+ First neighbor function +*/ INT ngbnext (void * const), /*+ Next neighbor function +*/ INT ngbdegr (void * const, const INT), /*+ Vertex degree function (upper bound) +*/ const Order * const ordeptr) /*+ Matrix ordering +*/ #endif /* SYMBOL_FAX_INCLUDED */ { INT vertnum; /* Vertex number of current column */ INT vertend; /* Current end vertex number */ const INT * restrict permtax; /* Based access to direct permutation array */ const INT * restrict peritax; /* Based access to inverse permutation array */ const INT * restrict rangtax; /* Based access to column block range array */ INT * restrict ctrbtax; /* Based access to array of contribution chains */ SymbolCblk * restrict cblktax; /* Based access to column block array */ INT cblknum; /* Based number of current column block */ INT cblkctr; /* Based number of current contributing column block */ SymbolBlok * restrict bloktax; /* Based access to block array */ INT bloknum; /* Based number of current first free block slot */ INT blokmax; /* Maximum number of blocks in array */ SymbolFaxTlok * restrict tloktab; /* Beginning of array of temporary blocks */ INT ctrbsum; /* Number of contributing blocks for column block */ INT * restrict sorttab; /* Beginning of sort area */ INT sortnbr; /* Number of vertices in sort area and hash table */ INT * restrict hashtab; /* Hash vertex table */ INT hashmsk; /* Mask for access to hash table */ INT colend; /* Column number of vertex neighbor */ permtax = ordeptr->permtab - baseval; /* Compute array bases */ peritax = ordeptr->peritab - baseval; rangtax = ordeptr->rangtab - baseval; blokmax = ordeptr->cblknbr * (2 + edgenbr / vertnbr) + 2; /* Estimate size of initial block array */ { /* Allocate arrays for factoring */ INT * ctrbtab; /* Array for contribution chaining */ SymbolCblk * cblktab; /* Column block array */ SymbolBlok * bloktab; /* Block array */ if (((ctrbtab = (INT *) memAlloc (ordeptr->cblknbr * sizeof (INT))) == NULL) || ((cblktab = (SymbolCblk *) memAlloc ((ordeptr->cblknbr + 1) * sizeof (SymbolCblk))) == NULL) || ((bloktab = (SymbolBlok *) memAlloc (blokmax * sizeof (SymbolBlok))) == NULL)) { errorPrint ("symbolFax: out of memory (1)"); if (ctrbtab != NULL) { if (cblktab != NULL) memFree (cblktab); memFree (ctrbtab); } return (1); } memset (ctrbtab, ~0, ordeptr->cblknbr * sizeof (INT)); /* Initialize column block contributions link array */ cblktax = cblktab - baseval; /* Set based accesses */ bloktax = bloktab - baseval; ctrbtax = ctrbtab - baseval; } bloknum = baseval; for (cblknum = baseval; cblknum < baseval + ordeptr->cblknbr; cblknum ++) { /* For all column blocks */ INT colnum; /* Number of current column [based] */ INT colmax; /* Maximum column index for current column block */ { /* Compute offsets and check for array size */ INT degrmax; /* Maximum number of local blocks in array */ INT hashsiz; INT hashmax; INT ctrbtmp; ptrdiff_t sortoft; /* Offset of sort array */ ptrdiff_t tlokoft; /* Offset of temporary block array */ ptrdiff_t tlndoft; /* Offset of end of temporary block array */ INT tlokmax; colnum = rangtax[cblknum]; colmax = rangtax[cblknum + 1]; /* Get maximum column value */ cblktax[cblknum].fcolnum = colnum; /* Set column block data */ cblktax[cblknum].lcolnum = colmax - 1; cblktax[cblknum].bloknum = bloknum; degrmax = 0; for ( ; colnum < colmax; colnum ++) /* For all columns */ degrmax += SYMBOL_FAX_VERTEX_DEGREE (ngbdptr, peritax[colnum]); /* Add column degrees */ if (degrmax > vertnbr) /* There cannot be more neighbors than vertices */ degrmax = vertnbr; for (hashmax = 256; hashmax < degrmax; hashmax *= 2) ; /* Get upper bound on hash table size */ hashsiz = hashmax << 2; /* Fill hash table at 1/4 of capacity */ hashmsk = hashsiz - 1; for (ctrbsum = 0, ctrbtmp = ctrbtax[cblknum]; /* Follow chain of contributing column blocks */ ctrbtmp != ~0; ctrbtmp = ctrbtax[ctrbtmp]) ctrbsum += cblktax[ctrbtmp + 1].bloknum - cblktax[ctrbtmp].bloknum - 2; /* Sum contributing column blocks */ tlokmax = degrmax + ctrbsum; /* Maximum possible number of blocks in temporary area */ sortoft = ((ptrdiff_t) tlokmax) * sizeof (SymbolBlok); if ((((ptrdiff_t) hashsiz) * (ptrdiff_t) sizeof (INT)) > sortoft) /* Compute offset of sort area */ sortoft = (((ptrdiff_t) hashsiz) * (ptrdiff_t) sizeof (INT)); tlokoft = sortoft + ((ptrdiff_t) degrmax) * sizeof (INT); /* Compute offset of temporary block area */ tlndoft = tlokoft + ((ptrdiff_t) tlokmax) * sizeof (SymbolFaxTlok); /* Compute end of area */ if (((byte *) (bloktax + bloknum) + tlndoft) > /* If not enough room */ ((byte *) (bloktax + blokmax))) { SymbolBlok * bloktmp; /* Temporary pointer for array resizing */ do { blokmax = blokmax + (blokmax >> 2) + 4; /* Increase block array size by 25% as long as it does not fit */ if (blokmax < bloknum) { errorPrint ("symbolFax: integer overflow"); memFree (bloktax + baseval); memFree (cblktax + baseval); memFree (ctrbtax + baseval); return (1); } } while (((byte *) (bloktax + bloknum) + tlndoft) > ((byte *) (bloktax + blokmax))); if ((bloktmp = (SymbolBlok *) memRealloc (bloktax + baseval, (blokmax * sizeof (SymbolBlok)))) == NULL) { errorPrint ("symbolFax: out of memory (2)"); memFree (bloktax + baseval); memFree (cblktax + baseval); memFree (ctrbtax + baseval); return (1); } bloktax = bloktmp - baseval; } hashtab = (INT *) (bloktax + bloknum); sorttab = (INT *) ((byte *) hashtab + sortoft); tloktab = (SymbolFaxTlok *) ((byte *) hashtab + tlokoft); memset (hashtab, ~0, hashsiz * sizeof (INT)); /* Initialize hash table */ } sortnbr = 0; /* No vertices yet */ for (colnum = rangtax[cblknum]; colnum < colmax; colnum ++) { /* For all columns */ INT hashnum; vertnum = peritax[colnum]; /* Get associated vertex */ SYMBOL_FAX_ITERATOR (ngbdptr, vertnum, vertend) /* For all adjacent edges */ colend = permtax[vertend]; /* Get end column number */ if (colend < colmax) /* If end vertex number in left columns */ continue; /* Skip to next neighbor */ for (hashnum = (colend * SYMBOL_FAX_HASHPRIME) & hashmsk; ; /* Search end column in hash table */ hashnum = (hashnum + 1) & hashmsk) { INT * hashptr; hashptr = hashtab + hashnum; /* Point to hash slot */ if (*hashptr == colend) /* If end column in hash table */ break; /* Skip to next end column */ if (*hashptr == ~0) { /* If slot is empty */ *hashptr = colend; /* Set column in hash table */ sorttab[sortnbr ++] = colend; /* Add end column to sort array */ break; } } } /* End of loop on neighbors */ } /* End of loop on columns */ intSort1asc1 (sorttab, sortnbr); /* Sort neighbor array */ cblkctr = cblknum; if (ctrbtax[cblknum] == ~0) { /* If column is not to be updated */ INT sortnum; bloktax[bloknum].frownum = cblktax[cblknum].fcolnum; /* Build diagonal block */ bloktax[bloknum].lrownum = cblktax[cblknum].lcolnum; bloktax[bloknum].cblknum = cblknum; #ifdef SYMBOL_HAS_LEVFVAL bloktax[bloknum].levfval = 0; #endif /* SYMBOL_HAS_LEVFVAL */ bloknum ++; for (sortnum = 0; sortnum < sortnbr; ) { /* For all entries in sorted array */ INT colend; /* Column number of current entry */ colend = sorttab[sortnum]; if (colend >= rangtax[cblkctr + 1]) { /* If column block number to be found */ INT cblktmm; /* Median value */ INT cblktmx; /* Maximum value */ for (cblkctr ++, /* Find new column block by dichotomy */ cblktmx = ordeptr->cblknbr + baseval; cblktmx - cblkctr > 1; ) { cblktmm = (cblktmx + cblkctr) >> 1; if (rangtax[cblktmm] <= colend) cblkctr = cblktmm; else cblktmx = cblktmm; } } bloktax[bloknum].frownum = colend; /* Set beginning of new block */ while ((++ sortnum < sortnbr) && /* Scan extent of block */ (sorttab[sortnum] - 1 == sorttab[sortnum - 1]) && (sorttab[sortnum] < rangtax[cblkctr + 1])) ; bloktax[bloknum].lrownum = sorttab[sortnum - 1]; /* Set end of block */ bloktax[bloknum].cblknum = cblkctr; #ifdef SYMBOL_HAS_LEVFVAL bloktax[bloknum].levfval = 0; #endif /* SYMBOL_HAS_LEVFVAL */ bloknum ++; /* One more block */ } } else { /* Column will be updated */ INT sortnum; /* Current index in sort array */ INT tloknum; /* Current index on temporary block */ INT tlokfre; /* Index of first free chained block */ INT tlokfrm; /* Index of next free unchained block */ #ifdef FAX_DEBUG INT tlokmax; /* Maximum index of reserved space */ #endif /* FAX_DEBUG */ tloktab->frownum = cblktax[cblknum].fcolnum; /* Build diagonal chained block */ tloktab->lrownum = cblktax[cblknum].lcolnum; tloktab->cblknum = cblknum; tloktab->nextnum = 1; tloknum = 1; /* Prepare for extra-diagonal blocks */ for (sortnum = 0; sortnum < sortnbr; ) { /* For all entries in sorted array */ INT colend; /* Column number of current entry */ colend = sorttab[sortnum]; if (colend >= rangtax[cblkctr + 1]) { /* If column block number to be found */ INT cblktmm; /* Median value */ INT cblktmx; /* Maximum value */ for (cblkctr ++, /* Find new column block by dichotomy */ cblktmx = ordeptr->cblknbr + baseval; cblktmx - cblkctr > 1; ) { cblktmm = (cblktmx + cblkctr) >> 1; if (rangtax[cblktmm] <= colend) cblkctr = cblktmm; else cblktmx = cblktmm; } } tloktab[tloknum].frownum = colend; /* Set beginning of new block */ while ((++ sortnum < sortnbr) && /* Scan extent of block */ (sorttab[sortnum] - 1 == sorttab[sortnum - 1]) && (sorttab[sortnum] < rangtax[cblkctr + 1])) ; tloktab[tloknum].lrownum = sorttab[sortnum - 1]; /* Set end of block */ tloktab[tloknum].cblknum = cblkctr; tloktab[tloknum].nextnum = tloknum + 1; /* Chain block */ tloknum ++; } tloktab[tloknum].frownum = /* Build trailing block */ tloktab[tloknum].lrownum = vertnbr + baseval; tloktab[tloknum].cblknum = ordeptr->cblknbr + baseval; tloktab[tloknum].nextnum = 0; /* Set end of chain (never chain to diagonal block) */ tlokfre = ~0; /* Chain of free blocks is empty */ tlokfrm = tloknum + 1; /* First allocatable unchained free block */ #ifdef FAX_DEBUG tlokmax = tlokfrm + ctrbsum; /* Index after end of array */ #endif /* FAX_DEBUG */ for (cblkctr = ctrbtax[cblknum]; cblkctr != ~0; cblkctr = ctrbtax[cblkctr]) { /* Follow chain */ INT blokctr; /* Current index of contributing column block */ INT tloklst; /* Index of previous temporary block */ tloklst = 0; /* Previous is diagonal block */ tloknum = 0; /* Current is diagonal block */ for (blokctr = cblktax[cblkctr].bloknum + 2; /* For all blocks in contributing column block */ blokctr < cblktax[cblkctr + 1].bloknum; blokctr ++) { while ((tloktab[tloknum].cblknum < bloktax[blokctr].cblknum) || /* Skip unmatched chained blocks */ (tloktab[tloknum].lrownum < bloktax[blokctr].frownum - 1)) { tloklst = tloknum; tloknum = tloktab[tloknum].nextnum; } if ((bloktax[blokctr].cblknum < tloktab[tloknum].cblknum) || /* If contributing block has no mate */ (bloktax[blokctr].lrownum < tloktab[tloknum].frownum - 1)) { INT tloktmp; if (tlokfre == ~0) { /* If no available chained free block */ #ifdef FAX_DEBUG if (tlokfrm >= tlokmax) { errorPrint ("symbolFax: internal error (1)"); return (1); } #endif /* FAX_DEBUG */ tlokfre = tlokfrm ++; /* New free block is first unchained block */ tloktab[tlokfre].nextnum = ~0; /* Make it the end of its own pseudo-chain */ } tloktmp = tloktab[tloklst].nextnum = tlokfre; /* Chain new block */ tloktab[tlokfre].frownum = bloktax[blokctr].frownum; /* Copy block data */ tloktab[tlokfre].lrownum = bloktax[blokctr].lrownum; tloktab[tlokfre].cblknum = bloktax[blokctr].cblknum; tlokfre = tloktab[tlokfre].nextnum; tloktab[tloktmp].nextnum = tloknum; /* Complete chainimg */ tloknum = tloktab[tloklst].nextnum; /* Resume from new block */ continue; /* Process next block */ } if ((bloktax[blokctr].lrownum >= tloktab[tloknum].frownum - 1) && /* Update chained block lower bound */ (bloktax[blokctr].frownum < tloktab[tloknum].frownum)) tloktab[tloknum].frownum = bloktax[blokctr].frownum; if ((bloktax[blokctr].frownum <= tloktab[tloknum].lrownum + 1) && /* Update chained block upper bound */ (bloktax[blokctr].lrownum > tloktab[tloknum].lrownum)) { INT tloktmp; tloktab[tloknum].lrownum = bloktax[blokctr].lrownum; for (tloktmp = tloktab[tloknum].nextnum; /* Aggregate following chained blocks */ (tloktab[tloktmp].cblknum == tloktab[tloknum].cblknum) && (tloktab[tloktmp].frownum <= tloktab[tloknum].lrownum + 1); tloktmp = tloktab[tloknum].nextnum) { if (tloktab[tloktmp].lrownum > tloktab[tloknum].lrownum) /* Merge aggregated block */ tloktab[tloknum].lrownum = tloktab[tloktmp].lrownum; tloktab[tloknum].nextnum = tloktab[tloktmp].nextnum; /* Unlink aggregated block */ tloktab[tloktmp].nextnum = tlokfre; tlokfre = tloktmp; } } } } for (tloknum = 0; /* For all chained blocks */ tloktab[tloknum].nextnum != 0; /* Until trailer block is reached */ tloknum = tloktab[tloknum].nextnum, bloknum ++) { /* Copy block data to block array */ bloktax[bloknum].frownum = tloktab[tloknum].frownum; bloktax[bloknum].lrownum = tloktab[tloknum].lrownum; bloktax[bloknum].cblknum = tloktab[tloknum].cblknum; #ifdef SYMBOL_HAS_LEVFVAL bloktax[bloknum].levfval = 0; #endif /* SYMBOL_HAS_LEVFVAL */ } } if ((bloknum - cblktax[cblknum].bloknum) > 2) { /* If more than one extra-diagonal blocks exist */ ctrbtax[cblknum] = ctrbtax[bloktax[cblktax[cblknum].bloknum + 1].cblknum]; /* Link contributing column blocks */ ctrbtax[bloktax[cblktax[cblknum].bloknum + 1].cblknum] = cblknum; } } cblktax[cblknum].fcolnum = /* Set last column block data */ cblktax[cblknum].lcolnum = vertnbr + baseval; cblktax[cblknum].bloknum = bloknum; memFree (ctrbtax + baseval); /* Free contribution link array */ symbptr->baseval = baseval; /* Fill in matrix fields */ symbptr->cblknbr = ordeptr->cblknbr; symbptr->bloknbr = bloknum - baseval; symbptr->cblktab = cblktax + baseval; symbptr->bloktab = memRealloc (bloktax + baseval, (bloknum - baseval) * sizeof (SymbolBlok)); /* Set array to its exact size */ symbptr->nodenbr = vertnbr; #ifdef FAX_DEBUG if (symbolCheck (symbptr) != 0) { errorPrint ("symbolFax: internal error (2)"); symbolExit (symbptr); return (1); } #endif /* FAX_DEBUG */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol_fax.h000066400000000000000000000076131514310134000257570ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol_fax.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Jean ROMAN (v0.0) **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the data declarations **/ /** for the symbolic factorization routine. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 24 sep 1998 **/ /** # Version 0.1 : from : 04 apr 1999 **/ /** to : 01 may 1999 **/ /** # Version 1.0 : from : 01 jun 2002 **/ /** to : 05 jun 2002 **/ /** # Version 1.1 : from : 26 jun 2002 **/ /** to : 26 jun 2002 **/ /** # Version 3.0 : from : 03 mar 2004 **/ /** to : 03 mar 2004 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Prime number for hashing vertex numbers. */ #define SYMBOL_FAX_HASHPRIME 17 /*+ Prime number for hashing +*/ /* ** The type and structure definitions. */ /*+ The chained column block structure. These blocks are chained in a single linked list for block merge with blocks of left columns. +*/ typedef struct SymbolFaxTlok_ { INT frownum; /*+ First row index +*/ INT lrownum; /*+ Last row index (inclusive) +*/ INT cblknum; /*+ Facing column block +*/ INT nextnum; /*+ Index of next block +*/ } SymbolFaxTlok; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/symbol_fax_graph.c000066400000000000000000000136071514310134000271330ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : symbol_fax_graph.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This is the block symbolic factoriza- **/ /** tion routine for graphs. **/ /** **/ /** DATES : # Version 0.0 : from : 22 jul 1998 **/ /** to : 29 sep 1998 **/ /** # Version 0.2 : from : 08 may 2000 **/ /** to : 09 may 2000 **/ /** # Version 1.0 : from : 01 jun 2002 **/ /** to : 03 jun 2002 **/ /** # Version 1.1 : from : 26 jun 2002 **/ /** to : 26 jun 2002 **/ /** # Version 2.0 : from : 21 mar 2003 **/ /** to : 21 mar 2003 **/ /** # Version 3.0 : from : 02 mar 2004 **/ /** to : 02 mar 2004 **/ /** # Version 5.1 : from : 22 jan 2009 **/ /** to : 22 jan 2009 **/ /** # Version 6.0 : from : 21 jan 2020 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # symbolFaxGraph() could have called **/ /** symbolFax() in the regular way, as **/ /** do all of the grid-like factorization **/ /** routines. However, for efficiency **/ /** reasons, we have decided to inline **/ /** symbolFax(), to avoid a function call **/ /** for every arc. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" #include "symbol.h" #include "order.h" #include "fax.h" #include "symbol_fax.h" /***********************************/ /* */ /* Symbolic factorization routine. */ /* */ /***********************************/ /*+ This routine computes the block symbolic *** factorization of the given matrix graph *** according to the given vertex ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int symbolFaxGraph ( SymbolMatrix * const symbptr, /*+ Symbolic block matrix [based] +*/ const Graph * const grafptr, /*+ Matrix adjacency structure [based] +*/ const Order * const ordeptr) /*+ Matrix ordering +*/ { INT baseval; INT vertnbr; INT * verttab; const INT * restrict verttax; INT * vendtab; const INT * restrict vendtax; INT edgenbr; INT edgenum; INT * edgetab; const INT * restrict edgetax; SCOTCH_graphData (grafptr, &baseval, &vertnbr, &verttab, &vendtab, NULL, NULL, &edgenbr, &edgetab, NULL); verttax = verttab - baseval; vendtax = vendtab - baseval; edgetax = edgetab - baseval; #define SYMBOL_FAX_ITERATOR(ngbdptr, vertnum, vertend) \ for (edgenum = verttax[vertnum]; \ edgenum < vendtax[vertnum]; \ edgenum ++) { \ vertend = edgetax[edgenum]; #define SYMBOL_FAX_VERTEX_DEGREE(ngbdptr, vertnum) \ (vendtax[(vertnum)] - verttax[(vertnum)]) { #define SYMBOL_FAX_INCLUDED #include "symbol_fax.c" } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/test_esmumps.c000066400000000000000000000135031514310134000263320ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2012,2015,2018,2020,2022,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : main_mumps.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This is the test module for the MUMPS **/ /** interface routine. **/ /** **/ /** DATES : # Version 0.0 : from : 17 may 2001 **/ /** to : 17 may 2001 **/ /** # Version 1.0 : from : 17 jun 2005 **/ /** to : 17 jun 2005 **/ /** # Version 5.1 : from : 22 jan 2009 **/ /** to : 22 jan 2009 **/ /** # Version 6.0 : from : 01 dec 2012 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 10 dec 2022 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" #include "esmumps.h" void ESMUMPSF (const INT * const, const INT * const, INT * const, const INT * const, INT * const, INT * const, INT * const, INT * const, INT * const, INT * const); /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { Graph grafdat; /* Graph to load */ INT vertnbr; INT * verttab; INT edgenbr; INT * edgetab; INT * lentab; INT * nvtab; INT * elentab; INT * lasttab; INT pfree; INT ncmpa; INT vertnum; FILE * stream; if (argc != 2) { errorPrint ("test_esmumps: usage: test_esmumps graph_file"); exit (EXIT_FAILURE); } graphInit (&grafdat); if ((stream = fopen (argv[1], "r")) == NULL) { errorPrint ("test_esmumps: cannot open graph file"); graphExit (&grafdat); exit (EXIT_FAILURE); } if (graphLoad (&grafdat, stream, 1, 3) != 0) { /* Base graph with base value 1, no loads */ errorPrint ("test_esmumps: cannot load graph file"); graphExit (&grafdat); exit (EXIT_FAILURE); } fclose (stream); graphData (&grafdat, NULL, &vertnbr, &verttab, NULL, NULL, NULL, &edgenbr, &edgetab, NULL); nvtab = /* Assume an error */ elentab = lasttab = NULL; if (((lentab = malloc (vertnbr * sizeof (INT))) == NULL) || ((nvtab = malloc (vertnbr * sizeof (INT))) == NULL) || ((elentab = malloc (vertnbr * sizeof (INT))) == NULL) || ((lasttab = malloc (vertnbr * sizeof (INT))) == NULL)) { errorPrint ("test_esmumps: out of memory"); free (lentab); free (nvtab); free (elentab); free (lasttab); graphExit (&grafdat); exit (EXIT_FAILURE); } for (vertnum = 0; vertnum < vertnbr; vertnum ++) { if (verttab[vertnum] == verttab[vertnum + 1]) { lentab[vertnum] = 0; verttab[vertnum] = 0; /* Graph structure no longer valid in Emilio */ } else lentab[vertnum] = verttab[vertnum + 1] - verttab[vertnum]; } pfree = edgenbr + 1; ESMUMPSF (&vertnbr, &edgenbr, verttab, &pfree, lentab, edgetab, nvtab, elentab, lasttab, &ncmpa); free (lentab); free (nvtab); free (elentab); free (lasttab); graphExit (&grafdat); if (ncmpa < 0) { errorPrint ("test_esmumps: error in ESMUMPSF (%d)", ncmpa); exit (EXIT_FAILURE); } exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/esmumps/test_fax.c000066400000000000000000000112421514310134000254150ustar00rootroot00000000000000/* Copyright 2022,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_fax.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This is the test module for the **/ /** symbolic factorization routine. **/ /** **/ /** DATES : # Version 7.0 : from : 21 apr 2022 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "graph.h" #include "order.h" #include "dof.h" #include "symbol.h" #include "fax.h" /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { Graph grafdat; /* Graph to load */ Order ordedat; SymbolMatrix symbdat; Dof deofdat; FILE * stream; double nonzval; double opcoval; if (argc != 3) { errorPrint ("test_fax: usage: test_fax graph_file ordering_file"); exit (EXIT_FAILURE); } graphInit (&grafdat); if ((stream = fopen (argv[1], "r")) == NULL) { errorPrint ("test_fax: cannot open graph file"); graphExit (&grafdat); exit (EXIT_FAILURE); } if (graphLoad (&grafdat, stream, -1, 3) != 0) { /* Graph with untouched base value and loads */ errorPrint ("test_fax: cannot load graph file"); graphExit (&grafdat); exit (EXIT_FAILURE); } fclose (stream); orderInit (&ordedat); if ((stream = fopen (argv[2], "r")) == NULL) { errorPrint ("test_fax: cannot open ordering file"); orderExit (&ordedat); graphExit (&grafdat); exit (EXIT_FAILURE); } if (orderLoad (&ordedat, stream) != 0) { errorPrint ("test_fax: cannot load ordering file"); orderExit (&ordedat); graphExit (&grafdat); exit (EXIT_FAILURE); } fclose (stream); symbolInit (&symbdat); if (symbolFaxGraph (&symbdat, &grafdat, &ordedat) != 0) { errorPrint ("test_fax: error in symbolic factorization"); exit (EXIT_FAILURE); } dofInit (&deofdat); dofGraph (&deofdat, &grafdat, 1, ordedat.peritab); if (symbolCost (&symbdat, &deofdat, SYMBOLCOSTLDLT, &nonzval, &opcoval) != 0) { errorPrint ("test_fax: error in symbolic cost computation"); exit (EXIT_FAILURE); } printf ("NNZ: %le\nOPC: %le\n", nonzval, opcoval); dofExit (&deofdat); symbolExit (&symbdat); orderExit (&ordedat); graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/000077500000000000000000000000001514310134000237155ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/CMakeLists.txt000066400000000000000000000611751514310134000264670ustar00rootroot00000000000000## Copyright 2014-2016,2021-2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Cedric LACHAT ## ## Amaury JACQUES ## ## Florent PRUVOST ## ## Marc FUENTES ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 11 aug 2025 ## ## ## ############################################################ ################ # dummysizes # ################ add_executable(dummysizes dummysizes.c) set_target_properties(dummysizes PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) if(BUILD_PTSCOTCH) add_executable(ptdummysizes dummysizes.c) set_target_properties(ptdummysizes PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(ptdummysizes PRIVATE MPI::MPI_C) add_dependencies(ptdummysizes scotch_h) set_target_properties(ptdummysizes PROPERTIES COMPILE_FLAGS -DSCOTCH_PTSCOTCH) endif() ############## # scotch.h # ############## # Generate scotch.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/scotch.h COMMAND $ "-s${SCOTCH_NAME_SUFFIX}" ${CMAKE_CURRENT_SOURCE_DIR}/library.h ${GENERATED_INCLUDE_DIR}/scotch.h DEPENDS dummysizes DEPENDS library.h COMMENT "Generate scotch.h") add_custom_target(scotch_h DEPENDS "${GENERATED_INCLUDE_DIR}/scotch.h") # Generate scotchf.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/scotchf.h COMMAND $ "-s${SCOTCH_NAME_SUFFIX}" ${CMAKE_CURRENT_SOURCE_DIR}/library_f.h ${GENERATED_INCLUDE_DIR}/scotchf.h DEPENDS dummysizes DEPENDS library.h COMMENT "Generate scotchf.h") add_custom_target(scotchf_h DEPENDS "${GENERATED_INCLUDE_DIR}/scotchf.h") ################ # ptscotch.h # ################ if(BUILD_PTSCOTCH) # Generate ptscotch.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/ptscotch.h COMMAND $ "-s${SCOTCH_NAME_SUFFIX}" ${CMAKE_CURRENT_SOURCE_DIR}/library_pt.h ${GENERATED_INCLUDE_DIR}/ptscotch.h DEPENDS ptdummysizes DEPENDS library_pt.h scotch_h COMMENT "Generate ptscotch.h") add_custom_target(ptscotch_h DEPENDS ${GENERATED_INCLUDE_DIR}/ptscotch.h) # Generate ptscotchf.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/ptscotchf.h COMMAND $ "-s${SCOTCH_NAME_SUFFIX}" ${CMAKE_CURRENT_SOURCE_DIR}/library_pt_f.h ${GENERATED_INCLUDE_DIR}/ptscotchf.h DEPENDS ptdummysizes DEPENDS library.h COMMENT "Generate ptscotchf.h") add_custom_target(ptscotchf_h DEPENDS "${GENERATED_INCLUDE_DIR}/ptscotchf.h") endif() ################# # parser_yy.c # ################# if (BISON_FOUND) # Generate parser_yy.c using Bison add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parser_yy.c ${CMAKE_CURRENT_BINARY_DIR}/parser_ly.h COMMAND ${BISON_EXECUTABLE} "-p_SCOTCHyy${SCOTCH_NAME_SUFFIX}" --defines="parser_ly.h" --output="parser_yy.c" ${CMAKE_CURRENT_SOURCE_DIR}/parser_yy.y DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parser_yy.y module.h common.h parser.h parser_yy.h COMMENT "Generate parser_yy.c and parser_ly.h using Bison") else() # use fallback add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parser_yy.c ${CMAKE_CURRENT_BINARY_DIR}/parser_ly.h COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/last_resort/parser_yy.c" "${CMAKE_CURRENT_SOURCE_DIR}/last_resort/parser_ly.h" "${CMAKE_CURRENT_BINARY_DIR}/.") endif(BISON_FOUND) add_custom_target(parser_yy_c DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/parser_yy.c ${CMAKE_CURRENT_BINARY_DIR}/parser_ly.h) ################# # parser_ll.c # ################# if (FLEX_FOUND) # Generate parser_ll.c using Flex add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parser_ll.c ${CMAKE_CURRENT_BINARY_DIR}/parser_lh.h COMMAND ${FLEX_EXECUTABLE} "-P_SCOTCHyy${SCOTCH_NAME_SUFFIX}" "-oparser_ll.c" "--header-file=parser_lh.h" ${CMAKE_CURRENT_SOURCE_DIR}/parser_ll.l DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parser_ll.l module.h common.h parser.h parser_ll.h parser_ly.h COMMENT "Generate parser_ll.c using Flex") else() # use fallback add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parser_ll.c ${CMAKE_CURRENT_BINARY_DIR}/parser_lh.h COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/last_resort/parser_ll.c" "${CMAKE_CURRENT_SOURCE_DIR}/last_resort/parser_lh.h" "${CMAKE_CURRENT_BINARY_DIR}/.") endif(FLEX_FOUND) add_custom_target(parser_ll_c DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/parser_ll.c ${CMAKE_CURRENT_BINARY_DIR}/parser_lh.h) ############### # libScotch # ############### set(SCOTCH_C_SOURCES arch.c arch.h arch_build.c arch_build.h arch_build2.c arch_build2.h arch_cmplt.c arch_cmplt.h arch_cmpltw.c arch_cmpltw.h arch_deco.c arch_deco.h arch_deco2.c arch_deco2.h arch_dist.c arch_dist.h arch_hcub.c arch_hcub.h arch_mesh.c arch_mesh.h arch_tleaf.c arch_tleaf.h arch_sub.c arch_sub.h arch_torus.c arch_torus.h arch_vcmplt.c arch_vcmplt.h arch_vhcub.c arch_vhcub.h bgraph.c bgraph.h bgraph_bipart_bd.c bgraph_bipart_bd.h bgraph_bipart_df.c bgraph_bipart_df.h bgraph_bipart_ex.c bgraph_bipart_ex.h bgraph_bipart_fm.c bgraph_bipart_fm.h bgraph_bipart_ga.c bgraph_bipart_ga.h bgraph_bipart_gg.c bgraph_bipart_gg.h bgraph_bipart_gp.c bgraph_bipart_gp.h bgraph_bipart_ml.c bgraph_bipart_ml.h bgraph_bipart_st.c bgraph_bipart_st.h bgraph_bipart_zr.c bgraph_bipart_zr.h bgraph_cost.c bgraph_check.c bgraph_cost.c bgraph_store.c common.c common.h common_context.c common_error.c common_file.c common_file.h common_file_compress.c common_file_compress.h common_file_decompress.c common_integer.c common_memory.c common_string.c common_stub.c common_thread.c common_thread_system.c common_thread_system.h common_timer.c common_timer.h common_values.c common_values.h context.c context.h fibo.c fibo.h gain.c gain.h geom.c geom.h graph.c graph.h graph_band.c graph_base.c graph_check.c graph_clone.c graph_coarsen.c graph_coarsen.h graph_diam.c graph_dump.c graph_dump.h graph_ielo.c library_graph_induce.c graph_induce.c graph_induce.h graph_io.c graph_io.h graph_io_chac.c graph_io_habo.c graph_io_habo.h graph_io_mmkt.c graph_io_mmkt.h graph_io_scot.c graph_io_scot.h graph_list.c graph_list.h graph_match.c graph_match.h hall_order_hd.c hall_order_hd.h hall_order_hf.c hall_order_hf.h hall_order_hx.c hall_order_hx.h hgraph.c hgraph.h hgraph_check.c hgraph_induce.c hgraph_induce.h hgraph_order_bl.c hgraph_order_bl.h hgraph_order_cc.c hgraph_order_cc.h hgraph_order_cp.c hgraph_order_cp.h hgraph_order_gp.c hgraph_order_gp.h hgraph_order_hd.c hgraph_order_hd.h hgraph_order_hf.c hgraph_order_hf.h hgraph_order_hx.c hgraph_order_hx.h hgraph_order_kp.c hgraph_order_kp.h hgraph_order_nd.c hgraph_order_nd.h hgraph_order_si.c hgraph_order_si.h hgraph_order_st.c hgraph_order_st.h hmesh.c hmesh.h hmesh_check.c hmesh_hgraph.c hmesh_hgraph.h hmesh_induce.c hmesh_mesh.c hmesh_order_bl.c hmesh_order_bl.h hmesh_order_cp.c hmesh_order_cp.h hmesh_order_gp.c hmesh_order_gp.h hmesh_order_gr.c hmesh_order_gr.h hmesh_order_hd.c hmesh_order_hd.h hmesh_order_hf.c hmesh_order_hf.h hmesh_order_hx.c hmesh_order_hx.h hmesh_order_nd.c hmesh_order_nd.h hmesh_order_si.c hmesh_order_si.h hmesh_order_st.c hmesh_order_st.h kgraph.c kgraph.h kgraph_band.c kgraph_check.c kgraph_cost.c kgraph_map_bd.c kgraph_map_bd.h kgraph_map_cp.c kgraph_map_cp.h kgraph_map_df.c kgraph_map_df.h kgraph_map_ex.c kgraph_map_ex.h kgraph_map_fm.c kgraph_map_fm.h kgraph_map_ml.c kgraph_map_ml.h kgraph_map_rb.c kgraph_map_rb.h kgraph_map_rb_map.c kgraph_map_rb_map.h kgraph_map_rb_part.c kgraph_map_rb_part.h kgraph_map_st.c kgraph_map_st.h kgraph_store.c library.h library_arch.c library_arch_build.c library_arch_build_f.c library_arch_dom.c library_arch_dom_f.c library_arch_f.c library_common.c library_common_f.c library_context.c library_context_graph.c library_context_graph_f.c library_context_f.c #library_errcom.c #library_error.c #library_error_exit.c library_f.h library_geom.c library_geom_f.c library_graph.c library_graph_base.c library_graph_base_f.c library_graph_check.c library_graph_check_f.c library_graph_coarsen.c library_graph_coarsen_f.c library_graph_color.c library_graph_color_f.c library_graph_diam.c library_graph_diam_f.c library_graph_dump.c library_graph_f.c library_graph_io_chac.c library_graph_io_chac_f.c library_graph_io_habo.c library_graph_io_habo_f.c library_graph_io_mmkt.c library_graph_io_mmkt_f.c library_graph_io_scot.c library_graph_io_scot_f.c library_graph_map.c library_graph_map_f.c library_graph_map_io.c library_graph_map_io.h library_graph_map_io_f.c library_graph_map_view.c library_graph_map_view.h library_graph_map_view_f.c library_graph_order.c library_graph_order_f.c library_graph_part_ovl.c library_graph_part_ovl_f.c library_mapping.c library_mapping.h library_memory.c library_mesh.c library_mesh_f.c library_mesh_graph.c library_mesh_graph_f.c library_mesh_io_habo.c library_mesh_io_habo_f.c library_mesh_io_scot.c library_mesh_io_scot_f.c library_mesh_order.c library_mesh_order_f.c library_order.c library_order.h library_parser.c library_parser_f.c library_pt.h library_pt_f.h library_random.c library_random_f.c library_strat.c library_version.c library_version_f.c mapping.c mapping.h mapping_check.c mapping_io.c mapping_io.h mesh.c mesh.h mesh_check.c mesh_coarsen.c mesh_coarsen.h mesh_graph.c mesh_graph.h mesh_induce_sepa.c mesh_induce_sepa.h mesh_io.c mesh_io.h mesh_io_habo.c mesh_io_scot.c module.h order.c order.h order_check.c order_io.c parser.c parser.h ${CMAKE_CURRENT_BINARY_DIR}/parser_ll.c ${CMAKE_CURRENT_BINARY_DIR}/parser_ly.h ${CMAKE_CURRENT_BINARY_DIR}/parser_yy.c parser_yy.h ${GENERATED_INCLUDE_DIR}/scotch.h vgraph.c vgraph.h vgraph_check.c vgraph_separate_bd.c vgraph_separate_bd.h vgraph_separate_df.c vgraph_separate_df.h vgraph_separate_es.c vgraph_separate_es.h vgraph_separate_fm.c vgraph_separate_fm.h vgraph_separate_gg.c vgraph_separate_gg.h vgraph_separate_gp.c vgraph_separate_gp.h vgraph_separate_ml.c vgraph_separate_ml.h vgraph_separate_st.c vgraph_separate_st.h vgraph_separate_th.c vgraph_separate_th.h vgraph_separate_vw.c vgraph_separate_vw.h vgraph_separate_zr.c vgraph_separate_zr.h vgraph_store.c vmesh.c vmesh.h vmesh_check.c vmesh_separate_fm.c vmesh_separate_fm.h vmesh_separate_gg.c vmesh_separate_gg.h vmesh_separate_gr.c vmesh_separate_gr.h vmesh_separate_ml.c vmesh_separate_ml.h vmesh_separate_st.c vmesh_separate_st.h vmesh_separate_zr.c vmesh_separate_zr.h vmesh_store.c wgraph.c wgraph.h wgraph_check.c wgraph_part_fm.c wgraph_part_fm.h wgraph_part_es.c wgraph_part_es.h wgraph_part_ml.c wgraph_part_ml.h wgraph_part_rb.c wgraph_part_rb.h wgraph_part_st.c wgraph_part_st.h wgraph_part_zr.c wgraph_part_zr.h wgraph_store.c) add_library(scotch ${SCOTCH_C_SOURCES}) add_library(SCOTCH::scotch ALIAS scotch) set_target_properties(scotch PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) add_dependencies(scotch parser_yy_c parser_ll_c) # scotcherr lib if(NOT "${LIBSCOTCHERR}" STREQUAL "") target_link_libraries(scotch PUBLIC ${LIBSCOTCHERR}) endif() if(NOT WIN32) target_link_libraries(scotch PUBLIC m) endif() target_include_directories(scotch PUBLIC $ $ $ $) if(APPLE) set_target_properties(scotch PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif() if(OS_IS_FREEBSD) target_compile_definitions(scotch PUBLIC cpu_set_t=cpuset_t __BSD_VISIBLE) endif() if(SCOTCH_DETERMINISTIC STREQUAL FULL) target_compile_definitions(scotch PUBLIC COMMON_RANDOM_FIXED_SEED) target_compile_definitions(scotch PUBLIC SCOTCH_DETERMINISTIC) message(STATUS "Determinism: full") elseif(SCOTCH_DETERMINISTIC STREQUAL FIXED_SEED) target_compile_definitions(scotch PUBLIC COMMON_RANDOM_FIXED_SEED) message(STATUS "Determinism: fixed random seed") else() message(STATUS "Determinism: none") endif() # Add (de)compression libraries if(ZLIB_FOUND) target_compile_definitions(scotch PRIVATE COMMON_FILE_COMPRESS_GZ) target_include_directories(scotch PRIVATE ${ZLIB_INCLUDE_DIRS}) target_link_libraries(scotch PRIVATE ${ZLIB_LIBRARIES}) endif() if(BZIP2_FOUND) target_compile_definitions(scotch PRIVATE COMMON_FILE_COMPRESS_BZ2) target_include_directories(scotch PRIVATE ${BZIP2_INCLUDE_DIRS}) target_link_libraries(scotch PRIVATE ${BZIP2_LIBRARIES}) endif() if(LIBLZMA_FOUND) target_compile_definitions(scotch PRIVATE COMMON_FILE_COMPRESS_LZMA) target_include_directories(scotch PRIVATE ${LIBLZMA_INCLUDE_DIRS}) target_link_libraries(scotch PRIVATE ${LIBLZMA_LIBRARIES}) endif() # Add thread library if(Threads_FOUND) target_compile_definitions(scotch PRIVATE COMMON_PTHREAD SCOTCH_PTHREAD) target_link_libraries(scotch PRIVATE Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) endif() # Include files add_dependencies(scotch scotch_h scotchf_h) if(BUILD_PTSCOTCH) add_dependencies(scotch ptscotch_h ptscotchf_h) endif() # Error management libraries if(CMAKE_BUILD_TYPE STREQUAL Debug) target_compile_definitions(scotch PRIVATE SCOTCH_DEBUG_ALL) endif() add_library(scotcherr library_error.c) add_library(SCOTCH::scotcherr ALIAS scotcherr) set_target_properties(scotcherr PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_include_directories(scotcherr PUBLIC $ $ $) add_dependencies(scotcherr scotch_h) add_library(scotcherrexit library_error_exit.c) add_library(SCOTCH::scotcherrexit ALIAS scotcherrexit) set_target_properties(scotcherrexit PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_include_directories(scotcherrexit PUBLIC $ $ $) add_dependencies(scotcherrexit scotch_h) ################# # libPTScotch # ################# set(PTSCOTCH_C_SOURCES arch_mpi.c arch_mpi.h arch_cmplt_mpi.c arch_cmplt_mpi.h arch_cmpltw_mpi.c arch_cmpltw_mpi.h arch_deco_mpi.c arch_deco_mpi.h arch_deco2_mpi.c arch_deco2_mpi.h arch_dist_mpi.c arch_dist_mpi.h arch_hcub_mpi.c arch_hcub_mpi.h arch_mesh_mpi.c arch_mesh_mpi.h arch_sub_mpi.c arch_sub_mpi.h arch_tleaf_mpi.c arch_tleaf_mpi.h arch_torus_mpi.h arch_vcmplt_mpi.c arch_vcmplt_mpi.h arch_vhcub_mpi.c arch_vhcub_mpi.h bdgraph.c bdgraph.h bdgraph_bipart_bd.c bdgraph_bipart_bd.h bdgraph_bipart_df.c bdgraph_bipart_df.h bdgraph_bipart_ex.c bdgraph_bipart_ex.h bdgraph_bipart_ml.c bdgraph_bipart_ml.h bdgraph_bipart_sq.c bdgraph_bipart_sq.h bdgraph_bipart_st.c bdgraph_bipart_st.h bdgraph_bipart_zr.c bdgraph_bipart_zr.h bdgraph_check.c bdgraph_gather_all.c bdgraph_store.c comm.c comm.h dgraph.c dgraph.h dgraph_allreduce.c dgraph_allreduce.h dgraph_band.c dgraph_band_grow.h dgraph_build.c dgraph_build.h dgraph_build_grid3d.c dgraph_build_grid3d.h dgraph_build_hcub.c dgraph_check.c dgraph_coarsen.c dgraph_coarsen.h dgraph_compact.c dgraph_fold.c dgraph_fold.h dgraph_fold_comm.c dgraph_fold_comm.h dgraph_fold_dup.c dgraph_fold_dup.h dgraph_gather.c dgraph_gather_all.c dgraph_ghst.c dgraph_ghst.h dgraph_halo.c dgraph_halo.h dgraph_induce.c dgraph_io_load.c dgraph_io_load.h dgraph_io_save.c dgraph_match.c dgraph_match.h dgraph_match_check.c dgraph_match_sync_coll.c dgraph_match_sync_ptop.c dgraph_redist.c dgraph_redist.h dgraph_scatter.c dgraph_view.c dmapping.c dmapping.h dmapping_io.c dmesh.c dmesh.h dmesh_build_adm.c dmesh_dgraph.c dmesh_dgraph.h dmesh_io_load.c dmesh_io_load.h dorder.c dorder.h dorder_gather.c dorder_gather.h dorder_io.c dorder_io_block.c dorder_io_tree.c dorder_perm.c dorder_perm.h dorder_tree_dist.c hdgraph.c hdgraph.h hdgraph_check.c hdgraph_fold.c hdgraph_fold.h hdgraph_gather.c hdgraph_induce.c hdgraph_order_nd.c hdgraph_order_nd.h hdgraph_order_si.c hdgraph_order_si.h hdgraph_order_sq.c hdgraph_order_sq.h hdgraph_order_st.c hdgraph_order_st.h kdgraph.c kdgraph.h kdgraph_gather.c kdgraph_map_rb.c kdgraph_map_rb.h kdgraph_map_rb_map.c kdgraph_map_rb_map.h kdgraph_map_rb_part.c kdgraph_map_rb_part.h kdgraph_map_st.c kdgraph_map_st.h library_context_dgraph.c library_context_dgraph_f.c library_dgraph.c library_dgraph_band.c library_dgraph_band_f.c library_dgraph_build.c library_dgraph_build_f.c library_dgraph_build_grid3d.c library_dgraph_build_grid3d_f.c library_dgraph_check.c library_dgraph_check_f.c library_dgraph_coarsen.c library_dgraph_coarsen_f.c library_dgraph_f.c library_dgraph_gather.c library_dgraph_gather_f.c library_dgraph_grow.c library_dgraph_halo.c library_dgraph_halo_f.c library_dgraph_induce.c library_dgraph_induce_f.c library_dgraph_io_load.c library_dgraph_io_load_f.c library_dgraph_io_save.c library_dgraph_io_save_f.c library_dgraph_map.c library_dgraph_map_f.c library_dgraph_map_stat.c library_dgraph_map_stat_f.c library_dgraph_map_view.c library_dgraph_map_view_f.c library_dgraph_order.c library_dgraph_order_f.c library_dgraph_order_gather.c library_dgraph_order_gather_f.c library_dgraph_order_io.c library_dgraph_order_io_block.c library_dgraph_order_io_block_f.c library_dgraph_order_io_f.c library_dgraph_order_perm.c library_dgraph_order_perm_f.c library_dgraph_order_tree_dist.c library_dgraph_order_tree_dist_f.c library_dgraph_redist.c library_dgraph_redist_f.c library_dgraph_scatter.c library_dgraph_scatter_f.c library_dgraph_stat.c library_dgraph_stat.h library_dgraph_stat_f.c library_dmapping.c library_dmapping.h library_dmesh.c library_dmesh_f.c library_dmesh_build_adm.c library_dmesh_build_adm_f.c library_dmesh_dgraph.c library_dmesh_dgraph_f.c library_dmesh_io_load.c library_dmesh_io_load_f.c library_dorder.c ${GENERATED_INCLUDE_DIR}/scotch.h ${GENERATED_INCLUDE_DIR}/ptscotch.h vdgraph.c vdgraph.h vdgraph_check.c vdgraph_gather_all.c vdgraph_separate_bd.c vdgraph_separate_bd.h vdgraph_separate_df.c vdgraph_separate_df.h vdgraph_separate_ml.c vdgraph_separate_ml.h vdgraph_separate_sq.c vdgraph_separate_sq.h vdgraph_separate_st.c vdgraph_separate_st.h vdgraph_separate_zr.c vdgraph_separate_zr.h vdgraph_store.c) if(BUILD_PTSCOTCH) add_library(ptscotch ${PTSCOTCH_C_SOURCES}) add_library(SCOTCH::ptscotch ALIAS ptscotch) set_target_properties(ptscotch PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE} COMPILE_FLAGS -DSCOTCH_PTSCOTCH) target_link_libraries(ptscotch PUBLIC scotch MPI::MPI_C) target_include_directories(ptscotch PUBLIC $ $ $ $) add_dependencies(ptscotch ptscotch_h scotch_h) if(APPLE) set_target_properties(ptscotch PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif() if(Threads_FOUND) target_compile_definitions(ptscotch PRIVATE SCOTCH_PTHREAD COMMON_PTHREAD) target_link_libraries(ptscotch PRIVATE Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) endif() add_library(ptscotcherr library_error.c) add_library(SCOTCH::ptscotcherr ALIAS ptscotcherr) set_target_properties(ptscotcherr PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_include_directories(ptscotcherr PUBLIC $ $ $ $) add_dependencies(ptscotcherr ptscotch_h scotch_h) add_library(ptscotcherrexit library_error_exit.c) add_library(SCOTCH::ptscotcherrexit ALIAS ptscotcherrexit) set_target_properties(ptscotcherrexit PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_include_directories(ptscotcherrexit PUBLIC $ $ $ $) add_dependencies(ptscotcherrexit ptscotch_h scotch_h) if(NOT "${LIBPTSCOTCHERR}" STREQUAL "") target_link_libraries(ptscotch PUBLIC ${LIBPTSCOTCHERR}) endif() endif() set_target_properties(scotch PROPERTIES PUBLIC_HEADER "${GENERATED_INCLUDE_DIR}/scotch.h;${GENERATED_INCLUDE_DIR}/scotchf.h") if(BUILD_PTSCOTCH) set_target_properties(ptscotch PROPERTIES PUBLIC_HEADER "${GENERATED_INCLUDE_DIR}/ptscotch.h;${GENERATED_INCLUDE_DIR}/ptscotchf.h") endif() set(TARGETS_LIST "scotch;scotcherr;scotcherrexit") foreach(_target ${TARGETS_LIST}) install(EXPORT ${_target}Targets COMPONENT libscotch FILE ${_target}Targets.cmake NAMESPACE SCOTCH:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) install(TARGETS ${_target} COMPONENT libscotch EXPORT ${_target}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) if(BUILD_PTSCOTCH) install(EXPORT pt${_target}Targets COMPONENT libptscotch FILE pt${_target}Targets.cmake NAMESPACE SCOTCH:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) install(TARGETS pt${_target} COMPONENT libptscotch EXPORT pt${_target}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif() endforeach() scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/Makefile000066400000000000000000002361451514310134000253700ustar00rootroot00000000000000## Copyright 2004,2007-2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## SCOTCHINCLUDEDIR ?= ../../include SCOTCHLIBDIR ?= ../../lib include ../Makefile.inc CCDFLAGS ?= $(CFLAGS) ifeq ($(strip $(SCOTCH_NAME_SUFFIX)),) ifneq ($(findstring -DSCOTCH_NAME_SUFFIX=,$(CFLAGS)),) scotch_name_suffix_defs = $(filter -DSCOTCH_NAME_SUFFIX=%,$(CFLAGS)) scotch_name_suffix_def = $(lastword $(scotch_name_suffix_defs)) export SCOTCH_NAME_SUFFIX = $(subst -DSCOTCH_NAME_SUFFIX=,,$(scotch_name_suffix_def)) endif endif ifneq ($(strip $(SCOTCH_NAME_SUFFIX)),) $(info Using suffix "$(SCOTCH_NAME_SUFFIX)") ifeq ($(findstring -DSCOTCH_NAME_SUFFIX=,$(CFLAGS)),) CFLAGS += -DSCOTCH_NAME_SUFFIX=$(SCOTCH_NAME_SUFFIX) endif ifeq ($(findstring -DSCOTCH_RENAME_ALL=,$(CFLAGS)),) CFLAGS += -DSCOTCH_RENAME_ALL endif ifeq ($(findstring -DSCOTCH_NAME_SUFFIX=,$(CCDFLAGS)),) CCDFLAGS += -DSCOTCH_NAME_SUFFIX=$(SCOTCH_NAME_SUFFIX) endif ifeq ($(findstring -DSCOTCH_RENAME_ALL=,$(CCDFLAGS)),) CCDFLAGS += -DSCOTCH_RENAME_ALL endif endif ## Manage Flex 2.6.1 bug ifneq ($(strip $(FLEX)),) ifneq ($(findstring 2.6.1,$(shell $(FLEX) --version)),) $(warning WARNING: Flex 2.6.1 is bogus) FLEX = endif endif ifeq ($(strip $(FLEX)),) $(warning WARNING: Compiling with a default version of lexer files. Install Flex >= 2.6.4 if it does not work) FLEX = false blockoptions endif ifeq ($(strip $(BISON)),) $(warning WARNING: Compiling with a default version of parser files. Install Bison >= 3.8.2 if it does not work) BISON = false blockoptions endif ## ## General inference rules. ## %$(OBJ) : %.c $(CC) $(CFLAGS) $(CLIBFLAGS) -c $(<) -o $(@) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) %$(EXE) : %.c $(CC) $(CFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ## ## Project rules. ## .PHONY : ptscotch scotch ptinstall install clean realclean scotch : $(MAKE) \ CC="$(CCS)" \ CCD="$(CCS)" \ scotch.h \ scotchf.h \ libscotch$(LIB) \ libscotcherr$(LIB) \ libscotcherrexit$(LIB) ptscotch : scotch $(MAKE) \ CC="$(CCP)" \ CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" \ CCDFLAGS="$(CCDFLAGS) -DSCOTCH_PTSCOTCH" \ ptscotch.h \ ptscotchf.h \ libptscotch$(LIB) \ libptscotcherr$(LIB) \ libptscotcherrexit$(LIB) install : $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHINCLUDEDIR)/scotchf.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) ptinstall : install \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHINCLUDEDIR)/ptscotchf.h \ $(SCOTCHLIBDIR)/libptscotch$(LIB) clean : -$(RM) *~ *$(OBJ) lib*$(LIB) parser_yy.c parser_lh.h parser_ly.h parser_ll.c parser_yy.c *scotch.h *scotchf.h y.output *dummysizes$(EXE) realclean : clean ## ## Installation dependencies ## $(SCOTCHINCLUDEDIR)/scotch.h : scotch.h -$(CP) scotch.h $(SCOTCHINCLUDEDIR) $(SCOTCHINCLUDEDIR)/scotchf.h : scotchf.h -$(CP) scotchf.h $(SCOTCHINCLUDEDIR) $(SCOTCHINCLUDEDIR)/ptscotch.h : ptscotch.h -$(CP) ptscotch.h $(SCOTCHINCLUDEDIR) $(SCOTCHINCLUDEDIR)/ptscotchf.h : ptscotchf.h -$(CP) ptscotchf.h $(SCOTCHINCLUDEDIR) $(SCOTCHLIBDIR)/libscotch$(LIB) : libscotch$(LIB) -$(CP) libscotch$(LIB) libscotcherr*$(LIB) $(SCOTCHLIBDIR) $(SCOTCHLIBDIR)/libptscotch$(LIB) : libptscotch$(LIB) -$(CP) libptscotch$(LIB) libptscotcherr*$(LIB) $(SCOTCHLIBDIR) ## ## Library dependencies. ## LIBPTSCOTCHDEPS = arch_mpi$(OBJ) \ arch_cmplt_mpi$(OBJ) \ arch_cmpltw_mpi$(OBJ) \ arch_deco_mpi$(OBJ) \ arch_deco2_mpi$(OBJ) \ arch_dist_mpi$(OBJ) \ arch_hcub_mpi$(OBJ) \ arch_mesh_mpi$(OBJ) \ arch_sub_mpi$(OBJ) \ arch_tleaf_mpi$(OBJ) \ arch_vcmplt_mpi$(OBJ) \ arch_vhcub_mpi$(OBJ) \ bdgraph$(OBJ) \ bdgraph_bipart_bd$(OBJ) \ bdgraph_bipart_df$(OBJ) \ bdgraph_bipart_ex$(OBJ) \ bdgraph_bipart_ml$(OBJ) \ bdgraph_bipart_sq$(OBJ) \ bdgraph_bipart_st$(OBJ) \ bdgraph_bipart_zr$(OBJ) \ bdgraph_check$(OBJ) \ bdgraph_gather_all$(OBJ) \ bdgraph_store$(OBJ) \ comm$(OBJ) \ dgraph$(OBJ) \ dgraph_allreduce$(OBJ) \ dgraph_band$(OBJ) \ dgraph_build$(OBJ) \ dgraph_build_grid3d$(OBJ) \ dgraph_build_hcub$(OBJ) \ dgraph_check$(OBJ) \ dgraph_coarsen$(OBJ) \ dgraph_compact$(OBJ) \ dgraph_fold$(OBJ) \ dgraph_fold_comm$(OBJ) \ dgraph_fold_dup$(OBJ) \ dgraph_gather$(OBJ) \ dgraph_gather_all$(OBJ) \ dgraph_ghst$(OBJ) \ dgraph_halo$(OBJ) \ dgraph_induce$(OBJ) \ dgraph_io_load$(OBJ) \ dgraph_io_save$(OBJ) \ dgraph_match$(OBJ) \ dgraph_match_sync_coll$(OBJ) \ dgraph_match_sync_ptop$(OBJ) \ dgraph_match_check$(OBJ) \ dgraph_redist$(OBJ) \ dgraph_scatter$(OBJ) \ dgraph_view$(OBJ) \ dmapping$(OBJ) \ dmapping_io$(OBJ) \ dmesh$(OBJ) \ dmesh_build_adm$(OBJ) \ dmesh_dgraph$(OBJ) \ dmesh_io_load$(OBJ) \ dorder$(OBJ) \ dorder_check$(OBJ) \ dorder_gather$(OBJ) \ dorder_io$(OBJ) \ dorder_io_block$(OBJ) \ dorder_io_tree$(OBJ) \ dorder_perm$(OBJ) \ dorder_tree_dist$(OBJ) \ hdgraph$(OBJ) \ hdgraph_check$(OBJ) \ hdgraph_fold$(OBJ) \ hdgraph_gather$(OBJ) \ hdgraph_induce$(OBJ) \ hdgraph_order_nd$(OBJ) \ hdgraph_order_si$(OBJ) \ hdgraph_order_sq$(OBJ) \ hdgraph_order_st$(OBJ) \ kdgraph$(OBJ) \ kdgraph_gather$(OBJ) \ kdgraph_map_rb$(OBJ) \ kdgraph_map_rb_map$(OBJ) \ kdgraph_map_rb_part$(OBJ) \ kdgraph_map_st$(OBJ) \ library_context_dgraph$(OBJ) \ library_context_dgraph_f$(OBJ) \ library_dgraph$(OBJ) \ library_dgraph_f$(OBJ) \ library_dgraph_band$(OBJ) \ library_dgraph_band_f$(OBJ) \ library_dgraph_build$(OBJ) \ library_dgraph_build_f$(OBJ) \ library_dgraph_build_grid3d$(OBJ) \ library_dgraph_build_grid3d_f$(OBJ) \ library_dgraph_check$(OBJ) \ library_dgraph_check_f$(OBJ) \ library_dgraph_coarsen$(OBJ) \ library_dgraph_coarsen_f$(OBJ) \ library_dgraph_gather$(OBJ) \ library_dgraph_gather_f$(OBJ) \ library_dgraph_grow$(OBJ) \ library_dgraph_halo$(OBJ) \ library_dgraph_halo_f$(OBJ) \ library_dgraph_induce$(OBJ) \ library_dgraph_induce_f$(OBJ) \ library_dgraph_io_load$(OBJ) \ library_dgraph_io_load_f$(OBJ) \ library_dgraph_io_save$(OBJ) \ library_dgraph_io_save_f$(OBJ) \ library_dgraph_map$(OBJ) \ library_dgraph_map_f$(OBJ) \ library_dgraph_map_stat$(OBJ) \ library_dgraph_map_stat_f$(OBJ) \ library_dgraph_map_view$(OBJ) \ library_dgraph_map_view_f$(OBJ) \ library_dgraph_order$(OBJ) \ library_dgraph_order_f$(OBJ) \ library_dgraph_order_gather$(OBJ) \ library_dgraph_order_gather_f$(OBJ) \ library_dgraph_order_io$(OBJ) \ library_dgraph_order_io_f$(OBJ) \ library_dgraph_order_io_block$(OBJ) \ library_dgraph_order_io_block_f$(OBJ) \ library_dgraph_order_perm$(OBJ) \ library_dgraph_order_perm_f$(OBJ) \ library_dgraph_order_tree_dist$(OBJ) \ library_dgraph_order_tree_dist_f$(OBJ) \ library_dgraph_redist$(OBJ) \ library_dgraph_redist_f$(OBJ) \ library_dgraph_scatter$(OBJ) \ library_dgraph_scatter_f$(OBJ) \ library_dgraph_stat$(OBJ) \ library_dgraph_stat_f$(OBJ) \ library_dmapping$(OBJ) \ library_dmesh$(OBJ) \ library_dmesh_f$(OBJ) \ library_dmesh_build_adm$(OBJ) \ library_dmesh_build_adm_f$(OBJ) \ library_dmesh_dgraph$(OBJ) \ library_dmesh_dgraph_f$(OBJ) \ library_dmesh_io_load$(OBJ) \ library_dmesh_io_load_f$(OBJ) \ library_dorder$(OBJ) \ vdgraph$(OBJ) \ vdgraph_check$(OBJ) \ vdgraph_gather_all$(OBJ) \ vdgraph_separate_bd$(OBJ) \ vdgraph_separate_df$(OBJ) \ vdgraph_separate_ml$(OBJ) \ vdgraph_separate_sq$(OBJ) \ vdgraph_separate_st$(OBJ) \ vdgraph_separate_zr$(OBJ) \ vdgraph_store$(OBJ) LIBSCOTCHDEPS = arch$(OBJ) \ arch_build$(OBJ) \ arch_build2$(OBJ) \ arch_cmplt$(OBJ) \ arch_cmpltw$(OBJ) \ arch_deco$(OBJ) \ arch_deco2$(OBJ) \ arch_dist$(OBJ) \ arch_hcub$(OBJ) \ arch_mesh$(OBJ) \ arch_sub$(OBJ) \ arch_tleaf$(OBJ) \ arch_torus$(OBJ) \ arch_vcmplt$(OBJ) \ arch_vhcub$(OBJ) \ bgraph$(OBJ) \ bgraph_bipart_bd$(OBJ) \ bgraph_bipart_df$(OBJ) \ bgraph_bipart_ex$(OBJ) \ bgraph_bipart_fm$(OBJ) \ bgraph_bipart_ga$(OBJ) \ bgraph_bipart_gg$(OBJ) \ bgraph_bipart_gp$(OBJ) \ bgraph_bipart_ml$(OBJ) \ bgraph_bipart_st$(OBJ) \ bgraph_bipart_zr$(OBJ) \ bgraph_check$(OBJ) \ bgraph_cost$(OBJ) \ bgraph_store$(OBJ) \ common$(OBJ) \ common_context$(OBJ) \ common_file$(OBJ) \ common_file_compress$(OBJ) \ common_file_decompress$(OBJ) \ common_integer$(OBJ) \ common_memory$(OBJ) \ common_string$(OBJ) \ common_stub$(OBJ) \ common_thread$(OBJ) \ common_thread_system$(OBJ) \ common_timer$(OBJ) \ common_values$(OBJ) \ context$(OBJ) \ fibo$(OBJ) \ gain$(OBJ) \ geom$(OBJ) \ graph$(OBJ) \ graph_base$(OBJ) \ graph_band$(OBJ) \ graph_check$(OBJ) \ graph_clone$(OBJ) \ graph_coarsen$(OBJ) \ graph_diam$(OBJ) \ graph_dump$(OBJ) \ graph_ielo$(OBJ) \ graph_induce$(OBJ) \ graph_io$(OBJ) \ graph_io_chac$(OBJ) \ graph_io_habo$(OBJ) \ graph_io_mmkt$(OBJ) \ graph_io_scot$(OBJ) \ graph_list$(OBJ) \ graph_match$(OBJ) \ hall_order_hd$(OBJ) \ hall_order_hf$(OBJ) \ hall_order_hx$(OBJ) \ hgraph$(OBJ) \ hgraph_check$(OBJ) \ hgraph_dump$(OBJ) \ hgraph_induce$(OBJ) \ hgraph_order_bl$(OBJ) \ hgraph_order_cc$(OBJ) \ hgraph_order_cp$(OBJ) \ hgraph_order_gp$(OBJ) \ hgraph_order_hd$(OBJ) \ hgraph_order_hf$(OBJ) \ hgraph_order_hx$(OBJ) \ hgraph_order_kp$(OBJ) \ hgraph_order_nd$(OBJ) \ hgraph_order_si$(OBJ) \ hgraph_order_st$(OBJ) \ hmesh$(OBJ) \ hmesh_check$(OBJ) \ hmesh_hgraph$(OBJ) \ hmesh_induce$(OBJ) \ hmesh_mesh$(OBJ) \ hmesh_order_bl$(OBJ) \ hmesh_order_cp$(OBJ) \ hmesh_order_gr$(OBJ) \ hmesh_order_gp$(OBJ) \ hmesh_order_hd$(OBJ) \ hmesh_order_hf$(OBJ) \ hmesh_order_hx$(OBJ) \ hmesh_order_nd$(OBJ) \ hmesh_order_si$(OBJ) \ hmesh_order_st$(OBJ) \ kgraph$(OBJ) \ kgraph_band$(OBJ) \ kgraph_check$(OBJ) \ kgraph_cost$(OBJ) \ kgraph_map_bd$(OBJ) \ kgraph_map_cp$(OBJ) \ kgraph_map_df$(OBJ) \ kgraph_map_ex$(OBJ) \ kgraph_map_fm$(OBJ) \ kgraph_map_ml$(OBJ) \ kgraph_map_rb$(OBJ) \ kgraph_map_rb_map$(OBJ) \ kgraph_map_rb_part$(OBJ) \ kgraph_map_st$(OBJ) \ kgraph_store$(OBJ) \ library_arch$(OBJ) \ library_arch_f$(OBJ) \ library_arch_build$(OBJ) \ library_arch_build_f$(OBJ) \ library_arch_dom$(OBJ) \ library_arch_dom_f$(OBJ) \ library_common$(OBJ) \ library_common_f$(OBJ) \ library_context$(OBJ) \ library_context_f$(OBJ) \ library_context_graph$(OBJ) \ library_context_graph_f$(OBJ) \ library_context_mesh$(OBJ) \ library_context_mesh_f$(OBJ) \ library_geom$(OBJ) \ library_geom_f$(OBJ) \ library_graph$(OBJ) \ library_graph_f$(OBJ) \ library_graph_base$(OBJ) \ library_graph_base_f$(OBJ) \ library_graph_check$(OBJ) \ library_graph_check_f$(OBJ) \ library_graph_coarsen$(OBJ) \ library_graph_coarsen_f$(OBJ) \ library_graph_color$(OBJ) \ library_graph_color_f$(OBJ) \ library_graph_diam$(OBJ) \ library_graph_diam_f$(OBJ) \ library_graph_dump$(OBJ) \ library_graph_induce$(OBJ) \ library_graph_induce_f$(OBJ) \ library_graph_io_chac$(OBJ) \ library_graph_io_chac_f$(OBJ) \ library_graph_io_habo$(OBJ) \ library_graph_io_habo_f$(OBJ) \ library_graph_io_mmkt$(OBJ) \ library_graph_io_mmkt_f$(OBJ) \ library_graph_io_scot$(OBJ) \ library_graph_io_scot_f$(OBJ) \ library_graph_map$(OBJ) \ library_graph_map_f$(OBJ) \ library_graph_map_io$(OBJ) \ library_graph_map_io_f$(OBJ) \ library_graph_map_view$(OBJ) \ library_graph_map_view_f$(OBJ) \ library_graph_order$(OBJ) \ library_graph_order_f$(OBJ) \ library_graph_part_ovl$(OBJ) \ library_graph_part_ovl_f$(OBJ) \ library_mapping$(OBJ) \ library_memory$(OBJ) \ library_memory_f$(OBJ) \ library_mesh$(OBJ) \ library_mesh_f$(OBJ) \ library_mesh_graph$(OBJ) \ library_mesh_graph_f$(OBJ) \ library_mesh_io_habo$(OBJ) \ library_mesh_io_habo_f$(OBJ) \ library_mesh_io_scot$(OBJ) \ library_mesh_io_scot_f$(OBJ) \ library_mesh_order$(OBJ) \ library_mesh_order_f$(OBJ) \ library_order$(OBJ) \ library_parser$(OBJ) \ library_parser_f$(OBJ) \ library_random$(OBJ) \ library_random_f$(OBJ) \ library_strat$(OBJ) \ library_version$(OBJ) \ library_version_f$(OBJ) \ mapping$(OBJ) \ mapping_check$(OBJ) \ mapping_io$(OBJ) \ mesh$(OBJ) \ mesh_check$(OBJ) \ mesh_coarsen$(OBJ) \ mesh_graph$(OBJ) \ mesh_induce_sepa$(OBJ) \ mesh_io$(OBJ) \ mesh_io_habo$(OBJ) \ mesh_io_scot$(OBJ) \ order$(OBJ) \ order_check$(OBJ) \ order_io$(OBJ) \ parser$(OBJ) \ parser_ll$(OBJ) \ parser_yy$(OBJ) \ vgraph$(OBJ) \ vgraph_check$(OBJ) \ vgraph_separate_bd$(OBJ) \ vgraph_separate_df$(OBJ) \ vgraph_separate_es$(OBJ) \ vgraph_separate_fm$(OBJ) \ vgraph_separate_gg$(OBJ) \ vgraph_separate_gp$(OBJ) \ vgraph_separate_ml$(OBJ) \ vgraph_separate_st$(OBJ) \ vgraph_separate_th$(OBJ) \ vgraph_separate_vw$(OBJ) \ vgraph_separate_zr$(OBJ) \ vgraph_store$(OBJ) \ vmesh$(OBJ) \ vmesh_check$(OBJ) \ vmesh_separate_fm$(OBJ) \ vmesh_separate_gg$(OBJ) \ vmesh_separate_gr$(OBJ) \ vmesh_separate_ml$(OBJ) \ vmesh_separate_zr$(OBJ) \ vmesh_separate_st$(OBJ) \ vmesh_store$(OBJ) \ wgraph$(OBJ) \ wgraph_check$(OBJ) \ wgraph_part_es$(OBJ) \ wgraph_part_fm$(OBJ) \ wgraph_part_ml$(OBJ) \ wgraph_part_rb$(OBJ) \ wgraph_part_st$(OBJ) \ wgraph_part_zr$(OBJ) \ wgraph_store$(OBJ) ## ## Todo list. ## common$(OBJ) : common.c \ module.h \ common.h common_context$(OBJ) : common_context.c \ module.h \ common.h \ common_thread.h \ common_thread_system.h \ common_values.h common_file$(OBJ) : common_file.c \ module.h \ common.h \ common_file.h common_file_compress$(OBJ) : common_file_compress.c \ module.h \ common.h \ common_file.h \ common_file_compress.h common_file_decompress$(OBJ) : common_file_decompress.c \ module.h \ common.h \ common_file.h \ common_file_compress.h common_integer$(OBJ) : common_integer.c \ module.h \ common.h \ common_psort.c \ common_sort.c common_memory$(OBJ) : common_memory.c \ module.h \ common.h common_string$(OBJ) : common_string.c \ module.h \ common.h common_stub$(OBJ) : common_stub.c \ module.h \ common.h common_thread$(OBJ) : common_thread.c \ module.h \ common.h \ common_thread_system.h \ common_thread.h common_thread_system$(OBJ) : common_thread_system.c \ module.h \ common.h \ common_thread_system.h common_timer$(OBJ) : common_timer.c \ module.h \ common.h \ common_timer.h common_values$(OBJ) : common_values.c \ module.h \ common.h \ common_values.h arch$(OBJ) : arch.c \ module.h \ common.h \ graph.h \ arch.h \ arch_cmplt.h \ arch_cmpltw.h \ arch_deco.h \ arch_deco2.h \ arch_dist.h \ arch_hcub.h \ arch_mesh.h \ arch_sub.h \ arch_tleaf.h \ arch_torus.h \ arch_vcmplt.h \ arch_vhcub.h arch_mpi$(OBJ) : arch_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_cmplt_mpi.h \ arch_cmpltw_mpi.h \ arch_deco_mpi.h \ arch_deco2_mpi.h \ arch_dist_mpi.h \ arch_hcub_mpi.h \ arch_mesh_mpi.h \ arch_sub_mpi.h \ arch_tleaf_mpi.h \ arch_torus_mpi.h \ arch_vcmplt_mpi.h \ arch_vhcub_mpi.h arch_build$(OBJ) : arch_build.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ arch_deco.h \ arch_vcmplt.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ arch_build.h arch_build2$(OBJ) : arch_build2.c \ module.h \ common.h \ graph.h \ arch.h \ arch.h \ arch_sub.h \ arch_deco2.h \ graph_coarsen.h \ arch_build2.h arch_cmplt$(OBJ) : arch_cmplt.c \ module.h \ common.h \ arch.h \ arch_cmplt.h arch_cmplt_mpi$(OBJ) : arch_cmplt_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_cmplt_mpi.h arch_cmpltw$(OBJ) : arch_cmpltw.c \ module.h \ common.h \ arch.h \ arch_cmpltw.h arch_cmpltw_mpi$(OBJ) : arch_cmpltw_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_cmpltw_mpi.h arch_deco$(OBJ) : arch_deco.c \ module.h \ common.h \ arch.h \ arch_deco2.h \ arch_deco.h arch_deco_mpi$(OBJ) : arch_deco_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_deco_mpi.h arch_deco2$(OBJ) : arch_deco2.c \ module.h \ common.h \ graph.h \ arch.h \ arch_deco2.h arch_deco2_mpi$(OBJ) : arch_deco2_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_deco2_mpi.h arch_dist$(OBJ) : arch_dist.c \ module.h \ common.h \ arch.h \ arch_dist.h arch_dist_mpi$(OBJ) : arch_dist_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_dist_mpi.h arch_hcub$(OBJ) : arch_hcub.c \ module.h \ common.h \ arch.h \ arch_hcub.h arch_hcub_mpi$(OBJ) : arch_hcub_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_hcub_mpi.h arch_mesh$(OBJ) : arch_mesh.c \ module.h \ common.h \ graph.h \ arch.h \ arch_mesh.h arch_mesh_mpi$(OBJ) : arch_mesh_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_mesh_mpi.h arch_tleaf$(OBJ) : arch_tleaf.c \ module.h \ common.h \ arch.h \ arch_tleaf.h arch_tleaf_mpi$(OBJ) : arch_tleaf_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_tleaf_mpi.h arch_sub$(OBJ) : arch_sub.c \ module.h \ common.h \ graph.h \ arch.h \ graph_coarsen.h \ arch_sub.h arch_sub_mpi$(OBJ) : arch_sub_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_sub_mpi.h arch_torus$(OBJ) : arch_torus.c \ module.h \ common.h \ arch.h \ arch_mesh.h \ arch_torus.h arch_vcpmlt$(OBJ) : arch_vcmplt.c \ module.h \ common.h \ arch.h \ arch_vcmplt.h arch_vcmplt_mpi$(OBJ) : arch_vcmplt_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_vcmplt_mpi.h arch_vhcub$(OBJ) : arch_vhcub.c \ module.h \ common.h \ arch.h \ arch_vhcub.h arch_vhcub_mpi$(OBJ) : arch_vhcub_mpi.c \ module.h \ common.h \ arch.h \ arch_mpi.h \ arch_vhcub_mpi.h bdgraph$(OBJ) : bdgraph.c \ module.h \ common.h \ arch.h \ dgraph.h \ dmapping.h \ bdgraph.h bdgraph_bipart_bd$(OBJ) : bdgraph_bipart_bd.c \ module.h \ common.h \ parser.h \ arch.h \ dgraph.h \ dgraph_halo.h \ bdgraph.h \ bdgraph_bipart_bd.h \ bdgraph_bipart_st.h bdgraph_bipart_df$(OBJ) : bdgraph_bipart_df.c \ module.h \ common.h \ arch.h \ dgraph.h \ bdgraph.h \ bdgraph_bipart_df.h bdgraph_bipart_ex$(OBJ) : bdgraph_bipart_ex.c \ module.h \ common.h \ arch.h \ dgraph.h \ bdgraph.h \ bdgraph_bipart_ex.h bdgraph_bipart_ml$(OBJ) : bdgraph_bipart_ml.c \ module.h \ common.h \ parser.h \ arch.h \ dgraph.h \ dgraph_coarsen.h \ bdgraph.h \ bdgraph_bipart_ml.h \ bdgraph_bipart_st.h bdgraph_bipart_sq$(OBJ) : bdgraph_bipart_sq.c \ module.h \ common.h \ comm.h \ parser.h \ arch.h \ graph.h \ bgraph.h \ bgraph_bipart_st.h \ dgraph.h \ bdgraph.h \ bdgraph_bipart_sq.h bdgraph_bipart_st$(OBJ) : bdgraph_bipart_st.c \ module.h \ common.h \ gain.h \ parser.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_st.h \ dgraph.h \ dgraph_coarsen.h \ bdgraph.h \ bdgraph_bipart_bd.h \ bdgraph_bipart_df.h \ bdgraph_bipart_ex.h \ bdgraph_bipart_ml.h \ bdgraph_bipart_sq.h \ bdgraph_bipart_st.h \ bdgraph_bipart_zr.h bdgraph_bipart_zr$(OBJ) : bdgraph_bipart_zr.c \ module.h \ common.h \ arch.h \ dgraph.h \ bdgraph.h \ bdgraph_bipart_zr.h bdgraph_check$(OBJ) : bdgraph_check.c \ module.h \ common.h \ arch.h \ dgraph.h \ bdgraph.h bdgraph_gather_all$(OBJ) : bdgraph_gather_all.c \ module.h \ common.h \ comm.h \ arch.h \ graph.h \ bgraph.h \ dgraph.h \ bdgraph.h bdgraph_store$(OBJ) : bdgraph_store.c \ module.h \ common.h \ arch.h \ dgraph.h \ bdgraph.h bgraph$(OBJ) : bgraph.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h \ bgraph.h bgraph_bipart_bd$(OBJ) : bgraph_bipart_bd.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_bd.h \ bgraph_bipart_st.h bgraph_bipart_df$(OBJ) : bgraph_bipart_df.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_df.h bgraph_bipart_ex$(OBJ) : bgraph_bipart_ex.c \ module.h \ common.h \ gain.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_ex.h \ bgraph_bipart_fm.h \ bgraph_bipart_gg.h bgraph_bipart_fm$(OBJ) : bgraph_bipart_fm.c \ gain.h \ fibo.h \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_fm.h bgraph_bipart_ga$(OBJ) : bgraph_bipart_ga.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_ga.h bgraph_bipart_gg$(OBJ) : bgraph_bipart_gg.c \ gain.h \ fibo.h \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_gg.h bgraph_bipart_gp$(OBJ) : bgraph_bipart_gp.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_gp.h bgraph_bipart_ml$(OBJ) : bgraph_bipart_ml.c \ module.h \ common.h \ parser.h \ graph.h \ graph_coarsen.h \ arch.h \ bgraph.h \ bgraph_bipart_ml.h \ bgraph_bipart_st.h bgraph_bipart_st$(OBJ) : bgraph_bipart_st.c \ module.h \ common.h \ gain.h \ fibo.h \ parser.h \ graph.h \ arch.h \ mapping.h \ graph_coarsen.h \ bgraph.h \ bgraph_bipart_bd.h \ bgraph_bipart_df.h \ bgraph_bipart_ex.h \ bgraph_bipart_fm.h \ bgraph_bipart_gg.h \ bgraph_bipart_gp.h \ bgraph_bipart_ml.h \ bgraph_bipart_st.h \ bgraph_bipart_zr.h bgraph_bipart_zr$(OBJ) : bgraph_bipart_zr.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h \ bgraph_bipart_zr.h bgraph_check$(OBJ) : bgraph_check.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h bgraph_cost$(OBJ) : bgraph_cost.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h bgraph_store$(OBJ) : bgraph_store.c \ module.h \ common.h \ graph.h \ arch.h \ bgraph.h comm$(OBJ) : comm.c \ module.h \ common.h \ comm.h context$(OBJ) : context.c \ module.h \ common.h \ context.h dgraph$(OBJ) : dgraph.c \ module.h \ common.h \ dgraph.h dgraph_allreduce$(OBJ) : dgraph_allreduce.c \ module.h \ common.h \ dgraph.h \ dgraph_allreduce.h dgraph_band$(OBJ) : dgraph_band.c \ dgraph_band_grow.c \ module.h \ common.h \ context.h \ dgraph.h dgraph_build$(OBJ) : dgraph_build.c \ module.h \ common.h \ dgraph.h \ dgraph_allreduce.h \ dgraph_build.h dgraph_build_grid3d$(OBJ) : dgraph_build_grid3d.c \ module.h \ common.h \ dgraph.h \ dgraph_build_grid3d.h dgraph_build_hcub$(OBJ) : dgraph_build_hcub.c \ module.h \ common.h \ dgraph.h dgraph_check$(OBJ) : dgraph_check.c \ module.h \ common.h \ dgraph.h \ dgraph_allreduce.h dgraph_coarsen$(OBJ) : dgraph_coarsen.c \ module.h \ common.h \ context.h \ dgraph.h \ dgraph_allreduce.h \ dgraph_coarsen.h \ dgraph_fold_comm.h \ dgraph_match.h dgraph_compact$(OBJ) : dgraph_compact.c \ module.h \ common.h \ dgraph.h dgraph_fold$(OBJ) : dgraph_fold.c \ module.h \ common.h \ comm.h \ dgraph.h \ dgraph_fold.h \ dgraph_fold_comm.h dgraph_fold_comm$(OBJ) : dgraph_fold_comm.c \ module.h \ common.h \ dgraph.h \ dgraph_coarsen.h \ dgraph_fold_comm.h dgraph_fold_dup$(OBJ) : dgraph_fold_dup.c \ module.h \ common.h \ dgraph.h \ dgraph_fold_dup.h dgraph_gather$(OBJ) : dgraph_gather.c \ module.h \ common.h \ graph.h \ dgraph.h dgraph_gather_all$(OBJ) : dgraph_gather_all.c \ module.h \ common.h \ comm.h \ graph.h \ dgraph.h dgraph_ghst$(OBJ) : dgraph_ghst.c \ module.h \ common.h \ dgraph.h \ dgraph_ghst.h dgraph_halo$(OBJ) : dgraph_halo.c \ dgraph_halo_fill.c \ module.h \ common.h \ dgraph.h \ dgraph_halo.h dgraph_induce$(OBJ) : dgraph_induce.c \ module.h \ common.h \ dgraph.h dgraph_io_load$(OBJ) : dgraph_io_load.c \ module.h \ common.h \ graph.h \ dgraph.h \ dgraph_allreduce.h \ dgraph_io_load.h dgraph_io_save$(OBJ) : dgraph_io_save.c \ module.h \ common.h \ dgraph.h dgraph_match$(OBJ) : dgraph_match.c \ dgraph_match_scan.c \ module.h \ common.h \ dgraph.h \ dgraph_coarsen.h \ dgraph_match.h dgraph_match_check$(OBJ) : dgraph_match_check.c \ module.h \ common.h \ dgraph.h \ dgraph_coarsen.h \ dgraph_match.h dgraph_match_sync_coll$(OBJ) : dgraph_match_sync_coll.c \ module.h \ common.h \ dgraph.h \ dgraph_coarsen.h \ dgraph_match.h dgraph_match_sync_ptop$(OBJ) : dgraph_match_sync_ptop.c \ module.h \ common.h \ context.h \ dgraph.h \ dgraph_coarsen.h \ dgraph_match.h dgraph_redist$(OBJ) : dgraph_redist.c \ module.h \ common.h \ graph.h \ dgraph.h dgraph_scatter$(OBJ) : dgraph_scatter.c \ module.h \ common.h \ graph.h \ dgraph.h dgraph_view$(OBJ) : dgraph_view.c \ module.h \ common.h \ dgraph.h dmapping$(OBJ) : dmapping.c \ module.h \ common.h \ arch.h \ dgraph.h \ dmapping.h dmapping_io$(OBJ) : dmapping_io.c \ module.h \ common.h \ comm.h \ arch.h \ dgraph.h \ dgraph_allreduce.h \ dmapping.h dmesh$(OBJ) : dmesh.c \ module.h \ common.h \ dmesh.h dmesh_build_adm$(OBJ) : dmesh_build_adm.c \ module.h \ common.h \ dgraph_allreduce.h \ dmesh.h dmesh_dgraph$(OBJ) : dmesh_dgraph.c \ module.h \ common.h \ dgraph.h \ dmesh.h \ dmesh_dgraph.h dmesh_io_load$(OBJ) : dmesh_io_load.c \ module.h \ common.h \ graph.h \ dgraph_allreduce.h \ dmesh.h \ dmesh_io_load.h dorder$(OBJ) : dorder.c \ module.h \ common.h \ dgraph.h \ order.h \ dorder.h dorder_check$(OBJ) : dorder_check.c \ module.h \ common.h \ dgraph.h \ dgraph_allreduce.h \ order.h \ dorder.h \ dorder_gather$(OBJ) : dorder_gather.c \ module.h \ common.h \ dgraph.h \ dgraph_allreduce.h \ dorder.h \ dorder_gather.h \ order.h dorder_io$(OBJ) : dorder_io.c \ module.h \ common.h \ comm.h \ dgraph.h \ dorder.h \ order.h dorder_io_block$(OBJ) : dorder_io_block.c \ module.h \ common.h \ dgraph.h \ dorder.h \ order.h dorder_io_tree$(OBJ) : dorder_io_tree.c \ module.h \ common.h \ comm.h \ dgraph.h \ dorder.h \ order.h dorder_perm$(OBJ) : dorder_perm.c \ module.h \ common.h \ dgraph.h \ order.h \ dorder.h \ dorder_perm.h dorder_tree_dist$(OBJ) : dorder_tree_dist.c \ module.h \ common.h \ dgraph.h \ dorder.h fibo$(OBJ) : fibo.c \ module.h \ common.h \ fibo.h gain$(OBJ) : gain.c \ module.h \ common.h \ gain.h geom$(OBJ) : geom.c \ module.h \ common.h \ geom.h graph$(OBJ) : graph.c \ module.h \ common.h \ graph.h graph_band$(OBJ) : graph_band.c \ module.h \ common.h \ graph.h graph_base$(OBJ) : graph_base.c \ module.h \ common.h \ graph.h graph_check$(OBJ) : graph_check.c \ module.h \ common.h \ graph.h graph_clone$(OBJ) : graph_clone.c \ module.h \ common.h \ graph.h graph_coarsen$(OBJ) : graph_coarsen.c \ graph_coarsen_edge.c \ module.h \ common.h \ graph.h \ graph_coarsen.h graph_diam$(OBJ) : graph_diam.c \ module.h \ common.h \ graph.h \ fibo.h \ graph_diam.h graph_dump$(OBJ) : graph_dump.c \ module.h \ common.h \ graph.h \ graph_dump.h graph_ielo$(OBJ) : graph_ielo.c \ module.h \ common.h \ graph.h graph_induce$(OBJ) : graph_induce.c \ module.h \ common.h \ graph.h \ graph_induce.h graph_io$(OBJ) : graph_io.c \ module.h \ common.h \ graph.h \ graph_io.h graph_io_chac$(OBJ) : graph_io_chac.c \ module.h \ common.h \ geom.h \ graph.h graph_io_habo$(OBJ) : graph_io_habo.c \ module.h \ common.h \ geom.h \ graph.h \ graph_io_habo.h graph_io_mmkt$(OBJ) : graph_io_mmkt.c \ module.h \ common.h \ geom.h \ graph.h \ graph_io_mmkt.h graph_io_scot$(OBJ) : graph_io_scot.c \ module.h \ common.h \ geom.h \ graph.h \ graph_io_scot.h graph_list$(OBJ) : graph_list.c \ module.h \ common.h \ graph.h graph_match$(OBJ) : graph_match.c \ graph_match_scan.c \ module.h \ common.h \ context.h \ arch.h \ graph.h \ graph_coarsen.h \ graph_match.h hall_order_hd$(OBJ) : hall_order_hd.c \ module.h \ common.h \ graph.h \ hall_order_hd.h hall_order_hf$(OBJ) : hall_order_hf.c \ module.h \ common.h \ graph.h \ hall_order_hf.h hall_order_hx$(OBJ) : hall_order_hx.c \ module.h \ common.h \ graph.h \ order.h \ hall_order_hx.h hdgraph$(OBJ) : hdgraph.c \ module.h \ common.h \ dgraph.h \ hdgraph.h hdgraph_check$(OBJ) : hdgraph_check.c \ module.h \ common.h \ dgraph.h \ hdgraph.h hdgraph_fold$(OBJ) : hdgraph_fold.c \ module.h \ common.h \ comm.h \ dgraph.h \ dgraph_fold_comm.h \ hdgraph.h \ hdgraph_fold.h hdgraph_gather$(OBJ) : hdgraph_gather.c \ module.h \ common.h \ comm.h \ graph.h \ hgraph.h \ dgraph.h \ hdgraph.h hdgraph_induce$(OBJ) : hdgraph_induce.c \ module.h \ common.h \ dgraph.h \ hdgraph.h hdgraph_order_nd$(OBJ) : hdgraph_order_nd.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_st.h \ dgraph.h \ dorder.h \ hdgraph.h \ hdgraph_order_nd.h \ hdgraph_order_sq.h \ hdgraph_order_st.h \ vdgraph.h \ vdgraph_separate_st.h hdgraph_order_si$(OBJ) : hdgraph_order_si.c \ module.h \ common.h \ dgraph.h \ order.h \ dorder.h \ hdgraph.h \ hdgraph_order_si.h hdgraph_order_sq$(OBJ) : hdgraph_order_sq.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_st.h \ dgraph.h \ dorder.h \ hdgraph.h \ hdgraph_order_sq.h hdgraph_order_st$(OBJ) : hdgraph_order_st.c \ module.h \ common.h \ parser.h \ dgraph.h \ dgraph_coarsen.h \ dorder.h \ hdgraph.h \ vdgraph.h \ vdgraph_separate_st.h \ hdgraph_order_nd.h \ hdgraph_order_si.h \ hdgraph_order_sq.h \ hdgraph_order_st.h hgraph$(OBJ) : hgraph.c \ module.h \ common.h \ graph.h \ hgraph.h hgraph_check$(OBJ) : hgraph_check.c \ module.h \ common.h \ graph.h \ hgraph.h hgraph_dump$(OBJ) : hgraph_dump.c \ module.h \ common.h \ graph.h \ graph_dump.h hgraph_induce$(OBJ) : hgraph_induce.c \ hgraph_induce_edge.c \ module.h \ common.h \ graph.h \ hgraph.h \ hgraph_induce.h hgraph_order_bl$(OBJ) : hgraph_order_bl.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_bl.h hgraph_order_cc$(OBJ) : hgraph_order_cc.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_cc.h \ hgraph_order_st.h hgraph_order_cp$(OBJ) : hgraph_order_cp.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_cp.h \ hgraph_order_st.h hgraph_order_gp$(OBJ) : hgraph_order_gp.c \ module.h \ common.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_gp.h hgraph_order_hd$(OBJ) : hgraph_order_hd.c \ module.h \ common.h \ graph.h \ order.h \ hgraph.h \ hall_order_hd.h \ hall_order_hx.h \ hgraph_order_hd.h \ hgraph_order_hx.h \ hgraph_order_si.h hgraph_order_hf$(OBJ) : hgraph_order_hf.c \ module.h \ common.h \ graph.h \ order.h \ hgraph.h \ hall_order_hf.h \ hall_order_hx.h \ hgraph_order_hf.h \ hgraph_order_hx.h \ hgraph_order_si.h hgraph_order_hx$(OBJ) : hgraph_order_hx.c \ module.h \ common.h \ graph.h \ hgraph.h \ hgraph_order_hx.h hgraph_order_kp$(OBJ) : hgraph_order_kp.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ order.h \ hgraph.h \ hgraph_order_kp.h \ hgraph_order_si.h \ hgraph_order_st.h \ kgraph.h \ kgraph_map_st.h \ scotch.h hgraph_order_nd$(OBJ) : hgraph_order_nd.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_nd.h \ hgraph_order_st.h \ vgraph.h \ vgraph_separate_st.h hgraph_order_si$(OBJ) : hgraph_order_si.c \ module.h \ common.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_si.h hgraph_order_st$(OBJ) : hgraph_order_st.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ order.h \ hgraph.h \ hgraph_order_bl.h \ hgraph_order_cp.h \ hgraph_order_gp.h \ hgraph_order_hd.h \ hgraph_order_hf.h \ hgraph_order_kp.h \ hgraph_order_nd.h \ hgraph_order_si.h \ hgraph_order_st.h \ kgraph.h \ kgraph_map_st.h \ vgraph.h \ vgraph_separate_st.h hmesh$(OBJ) : hmesh.c \ module.h \ common.h \ graph.h \ mesh.h \ hmesh.h hmesh_check$(OBJ) : hmesh_check.c \ module.h \ common.h \ graph.h \ mesh.h \ hmesh.h hmesh_hgraph$(OBJ) : hmesh_hgraph.c \ module.h \ common.h \ graph.h \ hgraph.h \ mesh.h \ hmesh.h \ hmesh_hgraph.h hmesh_induce$(OBJ) : hmesh_induce.c \ module.h \ common.h \ graph.h \ mesh.h \ hmesh.h hmesh_mesh$(OBJ) : hmesh_mesh.c \ module.h \ common.h \ graph.h \ mesh.h \ hmesh.h hmesh_order_bl$(OBJ) : hmesh_order_bl.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hmesh_order_bl.h \ hmesh_order_st.h hmesh_order_cp$(OBJ) : hmesh_order_cp.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hmesh_order_cp.h \ hmesh_order_st.h hmesh_order_gp$(OBJ) : hmesh_order_gp.c \ module.h \ common.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hmesh_order_gp.h hmesh_order_gp$(OBJ) : hmesh_order_gp.c \ module.h \ common.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hmesh_order_gp.h hmesh_order_hd$(OBJ) : hmesh_order_hd.c \ module.h \ common.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hall_order_hd.h \ hall_order_hx.h \ hmesh_order_hd.h \ hmesh_order_si.h hmesh_order_hf$(OBJ) : hmesh_order_hf.c \ module.h \ common.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hall_order_hf.h \ hall_order_hx.h \ hmesh_order_hf.h \ hmesh_order_si.h hmesh_order_hx$(OBJ) : hmesh_order_hx.c \ module.h \ common.h \ graph.h \ mesh.h \ hmesh.h \ hmesh_order_hx.h hmesh_order_nd$(OBJ) : hmesh_order_nd.c \ module.h \ common.h \ parser.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hmesh_order_nd.h \ hmesh_order_st.h \ vmesh.h \ vmesh_separate_st.h hmesh_order_si$(OBJ) : hmesh_order_si.c \ module.h \ common.h \ graph.h \ order.h \ mesh.h \ hmesh.h \ hmesh_order_si.h hmesh_order_st$(OBJ) : hmesh_order_st.c \ module.h \ common.h \ parser.h \ graph.h \ hgraph.h \ hgraph_order_st.h \ mesh.h \ hmesh.h \ order.h \ vmesh_separate_st.h \ hmesh_order_bl.h \ hmesh_order_gp.h \ hmesh_order_gr.h \ hmesh_order_hd.h \ hmesh_order_hf.h \ hmesh_order_nd.h \ hmesh_order_si.h \ hmesh_order_st.h kdgraph$(OBJ) : kdgraph.c \ module.h \ common.h \ arch.h \ dgraph.h \ dmapping.h \ kdgraph.h kdgraph_gather$(OBJ) : kdgraph_gather.c \ module.h \ common.h \ arch.h \ graph.h \ mapping.h \ kgraph.h \ dgraph.h \ kdgraph.h kdgraph_map_rb$(OBJ) : kdgraph_map_rb.c \ module.h \ common.h \ parser.h \ arch.h \ graph.h \ dgraph.h \ dmapping.h \ kdgraph.h \ kdgraph_map_rb.h \ kdgraph_map_rb_map.h \ kdgraph_map_rb_part.h kdgraph_map_rb_map$(OBJ) : kdgraph_map_rb_map.c \ module.h \ common.h \ parser.h \ arch.h \ graph.h \ bgraph.h \ bgraph_bipart_st.h \ mapping.h \ kgraph.h \ kgraph_map_st.h \ dgraph.h \ dmapping.h \ bdgraph.h \ bdgraph_bipart_st.h \ kdgraph.h \ kdgraph_map_rb.h \ kdgraph_map_rb_map.h \ kdgraph_map_st.h kdgraph_map_rb_part$(OBJ) : kdgraph_map_rb_part.c \ module.h \ common.h \ parser.h \ arch.h \ graph.h \ bgraph.h \ bgraph_bipart_st.h \ mapping.h \ kgraph.h \ kgraph_map_st.h \ dgraph.h \ dmapping.h \ bdgraph.h \ bdgraph_bipart_st.h \ kdgraph.h \ kdgraph_map_rb.h \ kdgraph_map_rb_part.h \ kdgraph_map_st.h kdgraph_map_st$(OBJ) : kdgraph_map_st.c \ module.h \ common.h \ parser.h \ arch.h \ graph.h \ dgraph.h \ dgraph_coarsen.h \ mapping.h \ dmapping.h \ bdgraph.h \ bdgraph_bipart_st.h \ kgraph.h \ kgraph_map_st.h \ kdgraph.h \ kdgraph_map_rb.h \ kdgraph_map_st.h kgraph$(OBJ) : kgraph.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h \ kgraph.h kgraph_band$(OBJ) : kgraph_band.c \ module.h \ common.h \ arch.h \ graph.h \ mapping.h \ kgraph.h kgraph_check$(OBJ) : kgraph_check.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h \ kgraph.h kgraph_cost$(OBJ) : kgraph_cost.c \ module.h \ common.h \ graph.h \ arch$(OBJ) \ mapping.h \ kgraph.h kgraph_map_bd$(OBJ) : kgraph_map_bd.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_bd.h kgraph_map_cp$(OBJ) : kgraph_map_cp.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_cp.h kgraph_map_df$(OBJ) : kgraph_map_df.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_df.h kgraph_map_ex$(OBJ) : kgraph_map_ex.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_ex.h kgraph_map_fm$(OBJ) : kgraph_map_fm.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_fm.h \ kgraph_map_rb.h kgraph_map_ml$(OBJ) : kgraph_map_ml.c \ module.h \ common.h \ parser.h \ graph.h \ graph_coarsen.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_ml.h kgraph_map_rb$(OBJ) : kgraph_map_rb.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ kgraph.h \ kgraph_map_rb.h \ kgraph_map_rb_map.h \ kgraph_map_rb_part.h kgraph_map_rb_map$(OBJ) : kgraph_map_rb_map.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ kgraph.h \ kgraph_map_rb.h \ kgraph_map_rb_map.h kgraph_map_rb_part$(OBJ) : kgraph_map_rb_part.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ kgraph.h \ kgraph_map_rb.h \ kgraph_map_rb_part.h kgraph_map_st$(OBJ) : kgraph_map_st.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ kgraph.h \ kgraph_map_bd.h \ kgraph_map_cp.h \ kgraph_map_df.h \ kgraph_map_fm.h \ kgraph_map_ml.h \ kgraph_map_rb.h kgraph_store$(OBJ) : kgraph_store.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h \ kgraph.h library_arch$(OBJ) : library_arch.c \ module.h \ common.h \ graph.h \ arch.h \ arch_cmplt.h \ arch_cmpltw.h \ arch_hcub.h \ arch_mesh.h \ arch_sub.h \ arch_tleaf.h \ arch_torus.h \ arch_vcmplt.h \ arch_vhcub.h \ scotch.h library_arch_f$(OBJ) : library_arch_f.c \ module.h \ common.h \ scotch.h library_arch_build$(OBJ) : library_arch_build.c \ module.h \ common.h \ context.h \ parser.h \ graph.h \ arch.h \ arch_build.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ scotch.h library_arch_build_f$(OBJ) : library_arch_build_f.c \ module.h \ common.h \ scotch.h library_arch_dom$(OBJ) : library_arch.c \ module.h \ common.h \ arch.h \ scotch.h library_arch_dom_f$(OBJ) : library_arch_dom_f.c \ module.h \ common.h \ scotch.h library_common$(OBJ) : library_common.c \ module.h \ common.h \ scotch.h library_common_f$(OBJ) : library_common_f.c \ module.h \ common.h \ scotch.h library_context$(OBJ) : library_context.c \ module.h \ common.h \ common_thread.h \ context.h \ library_context.h \ scotch.h library_context_f$(OBJ) : library_context_f.c \ module.h \ common.h \ scotch.h library_context_dgraph$(OBJ) : library_context_dgraph.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_context_dgraph_f$(OBJ) : library_context_dgraph_f.c \ module.h \ common.h \ ptscotch.h library_context_graph$(OBJ) : library_context_graph.c \ module.h \ common.h \ context.h \ graph.h \ scotch.h library_context_graph_f$(OBJ) : library_context_graph_f.c \ module.h \ common.h \ scotch.h library_context_mesh$(OBJ) : library_context_mesh.c \ module.h \ common.h \ context.h \ graph.h \ mesh.h \ scotch.h library_context_mesh_f$(OBJ) : library_context_mesh_f.c \ module.h \ common.h \ scotch.h library_dgraph$(OBJ) : library_dgraph.c \ module.h \ common.h \ context.h \ graph.h \ dgraph.h \ ptscotch.h library_dgraph_f$(OBJ) : library_dgraph_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_band$(OBJ) : library_dgraph_band.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_band_f$(OBJ) : library_dgraph_band_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_build$(OBJ) : library_dgraph_build.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_build_f$(OBJ) : library_dgraph_build_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_build_grid3d$(OBJ): library_dgraph_build_grid3d.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_build_grid3d_f$(OBJ): library_dgraph_build_grid3d_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_check$(OBJ) : library_dgraph_check.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_check_f$(OBJ) : library_dgraph_check_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_coarsen$(OBJ) : library_dgraph_coarsen.c \ module.h \ common.h \ context.h \ dgraph.h \ dgraph_coarsen.h \ ptscotch.h library_dgraph_coarsen_f$(OBJ) : library_dgraph_coarsen_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_gather$(OBJ) : library_dgraph_gather.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_gather_f$(OBJ) : library_dgraph_gather_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_grow$(OBJ) : library_dgraph_grow.c \ dgraph_band_grow.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_halo$(OBJ) : library_dgraph_halo.c \ module.h \ common.h \ context.h \ dgraph.h \ dgraph_halo.h \ ptscotch.h library_dgraph_halo_f$(OBJ) : library_dgraph_halo_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_induce$(OBJ) : library_dgraph_induce.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_induce_f$(OBJ) : library_dgraph_induce_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_io_load$(OBJ) : library_dgraph_io_load.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_io_load_f$(OBJ) : library_dgraph_io_load_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_io_save$(OBJ) : library_dgraph_io_save.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_io_save_f$(OBJ) : library_dgraph_io_save_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_map$(OBJ) : library_dgraph_map.c \ module.h \ common.h \ context.h \ parser.h \ arch.h \ dgraph.h \ dmapping.h \ kdgraph.h \ kdgraph_map_st.h \ library_dmapping.h \ ptscotch.h library_dgraph_map_f$(OBJ) : library_dgraph_map_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_map_stat$(OBJ) : library_dgraph_map_stat.c \ module.h \ common.h \ context.h \ parser.h \ dgraph.h \ dgraph_halo.h \ arch.h \ dmapping.h \ kdgraph.h \ library_dmapping.h \ ptscotch.h library_dgraph_map_stat_f$(OBJ) : library_dgraph_map_stat_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_map_view$(OBJ) : library_dgraph_map_view.c \ module.h \ common.h \ context.h \ parser.h \ dgraph.h \ dgraph_halo.h \ arch.h \ dmapping.h \ kdgraph.h \ library_dmapping.h \ ptscotch.h library_dgraph_map_view_f$(OBJ) : library_dgraph_map_view_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_order$(OBJ) : library_dgraph_order.c \ module.h \ common.h \ context.h \ parser.h \ dgraph.h \ dorder.h \ hdgraph.h \ hdgraph_order_st.h \ ptscotch.h library_dgraph_order_f$(OBJ) : library_dgraph_order_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_order_gather$(OBJ): library_dgraph_order_gather.c \ module.h \ common.h \ context.h \ dgraph.h \ order.h \ dorder.h \ library_order.h \ ptscotch.h library_dgraph_order_gather_f$(OBJ): library_dgraph_order_gather_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_order_io$(OBJ) : library_dgraph_order_io.c \ module.h \ common.h \ context.h \ dgraph.h \ dorder.h \ ptscotch.h library_dgraph_order_io_f$(OBJ) : library_dgraph_order_io_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_order_io_block$(OBJ): library_dgraph_order_io_block.c \ module.h \ common.h \ context.h \ dgraph.h \ dorder.h \ ptscotch.h library_dgraph_order_io_block_f$(OBJ): library_dgraph_order_io_block_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_order_perm$(OBJ) : library_dgraph_order_perm.c \ module.h \ common.h \ context.h \ dgraph.h \ dorder.h \ ptscotch.h library_dgraph_order_perm_f$(OBJ): library_dgraph_order_perm_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_order_tree_dist$(OBJ): library_dgraph_order_tree_dist.c \ module.h \ common.h \ context.h \ dgraph.h \ dorder.h \ ptscotch.h library_dgraph_order_tree_dist_f$(OBJ): library_dgraph_order_tree_dist_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_redist$(OBJ) : library_dgraph_redist.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_redist_f$(OBJ) : library_dgraph_redist_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_scatter$(OBJ) : library_dgraph_scatter.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h library_dgraph_scatter_f$(OBJ) : library_dgraph_scatter_f.c \ module.h \ common.h \ ptscotch.h library_dgraph_stat$(OBJ) : library_dgraph_stat.c \ module.h \ common.h \ context.h \ dgraph.h \ ptscotch.h \ library_dgraph_stat.h library_dgraph_stat_f$(OBJ) : library_dgraph_stat_f.c \ module.h \ common.h \ ptscotch.h library_dmapping$(OBJ) : library_dmapping.c \ module.h \ common.h \ ptscotch.h library_dmesh$(OBJ) : library_dmesh.c \ module.h \ common.h \ context.h \ dmesh.h \ ptscotch.h library_dmesh_f$(OBJ) : library_dmesh_f.c \ module.h \ common.h \ ptscotch.h library_dmesh_build_adm$(OBJ) : library_dmesh_build_adm.c \ module.h \ common.h \ context.h \ graph.h \ dmesh.h \ ptscotch.h library_dmesh_build_adm_f$(OBJ) : library_dmesh_build_adm_f.c \ module.h \ common.h \ ptscotch.h library_dmesh_io_load$(OBJ) : library_dmesh_io_load.c \ module.h \ common.h \ context.h \ graph.h \ dmesh.h \ ptscotch.h library_dmesh_io_load_f$(OBJ) : library_dmesh_io_load_f.c \ module.h \ common.h \ ptscotch.h library_dmesh_dgraph$(OBJ) : library_dmesh_dgraph.c \ module.h \ common.h \ context.h \ dgraph.h \ dmesh.h \ ptscotch.h library_dmesh_dgraph_f$(OBJ) : library_dmesh_dgraph_f.c \ module.h \ common.h \ ptscotch.h library_dorder$(OBJ) : library_dorder.c \ module.h \ common.h \ ptscotch.h library_error$(OBJ) : library_error.c \ module.h \ common.h \ scotch.h library_error_exit$(OBJ) : library_error_exit.c \ module.h \ common.h \ scotch.h library_error_pt$(OBJ) : library_error.c \ module.h \ common.h \ scotch.h $(CC) $(CFLAGS) $(CLIBFLAGS) -c $(<) -o $(@) library_error_exit_pt$(OBJ) : library_error_exit.c \ module.h \ common.h \ scotch.h $(CC) $(CFLAGS) $(CLIBFLAGS) -c $(<) -o $(@) library_geom$(OBJ) : library_geom.c \ module.h \ common.h \ geom.h \ graph.h \ scotch.h library_geom_f$(OBJ) : library_geom_f.c \ module.h \ common.h \ scotch.h library_graph$(OBJ) : library_graph.c \ module.h \ common.h \ context.h \ graph.h \ graph_io.h \ scotch.h library_graph_f$(OBJ) : library_graph_f.c \ module.h \ common.h \ context.h \ scotch.h library_graph_base$(OBJ) : library_graph_base.c \ module.h \ common.h \ context.h \ graph.h \ scotch.h library_graph_base_f$(OBJ) : library_graph_base_f.c \ module.h \ common.h \ scotch.h library_graph_check$(OBJ) : library_graph_check.c \ module.h \ common.h \ context.h \ graph.h \ scotch.h library_graph_check_f$(OBJ) : library_graph_check_f.c \ module.h \ common.h \ scotch.h library_graph_coarsen$(OBJ) : library_graph_coarsen.c \ module.h \ common.h \ context.h \ graph.h \ graph_coarsen.h \ scotch.h library_graph_coarsen_f$(OBJ) : library_graph_coarsen_f.c \ module.h \ common.h \ scotch.h library_graph_color$(OBJ) : library_graph_color.c \ module.h \ common.h \ context.h \ graph.h \ scotch.h library_graph_color_f$(OBJ) : library_graph_color_f.c \ module.h \ common.h \ scotch.h library_graph_diam$(OBJ) : library_graph_diam.c \ module.h \ common.h \ context.h \ graph.h \ scotch.h library_graph_diam_f$(OBJ) : library_graph_diam_f.c \ module.h \ common.h \ scotch.h library_graph_dump$(OBJ) : library_graph_dump.c \ module.h \ common.h \ graph.h \ graph_dump.h \ scotch.h library_graph_induce$(OBJ) : library_graph_induce.c \ module.h \ common.h \ context.h \ graph.h \ scotch.h library_graph_induce_f$(OBJ) : library_graph_induce_f.c \ module.h \ common.h \ scotch.h library_graph_io_chac$(OBJ) : library_graph_io_chac.c \ module.h \ common.h \ context.h \ geom.h \ graph.h \ scotch.h library_graph_io_chac_f$(OBJ) : library_graph_io_chac_f.c \ module.h \ common.h \ scotch.h library_graph_io_habo$(OBJ) : library_graph_io_habo.c \ module.h \ common.h \ context.h \ geom.h \ graph.h \ scotch.h library_graph_io_habo_f$(OBJ) : library_graph_io_habo_f.c \ module.h \ common.h \ scotch.h library_graph_io_mmkt$(OBJ) : library_graph_io_mmkt.c \ module.h \ common.h \ context.h \ geom.h \ graph.h \ scotch.h library_graph_io_mmkt_f$(OBJ) : library_graph_io_mmkt_f.c \ module.h \ common.h \ scotch.h library_graph_io_scot$(OBJ) : library_graph_io_scot.c \ module.h \ common.h \ context.h \ geom.h \ graph.h \ scotch.h library_graph_io_scot_f$(OBJ) : library_graph_io_scot_f.c \ module.h \ common.h \ scotch.h library_graph_map$(OBJ) : library_graph_map.c \ module.h \ common.h \ context.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_st.h \ library_mapping.h \ scotch.h library_graph_map_f$(OBJ) : library_graph_map_f.c \ module.h \ common.h \ scotch.h library_graph_map_io$(OBJ) : library_graph_map_io.c \ module.h \ common.h \ context.h \ graph.h \ arch.h \ library_mapping.h \ library_graph_map_io.h \ scotch.h library_graph_map_io_f$(OBJ) : library_graph_map_io_f.c \ module.h \ common.h \ scotch.h library_graph_map_view$(OBJ) : library_graph_map_view.c \ module.h \ common.h \ context.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ library_mapping.h \ library_graph_map_view.h \ scotch.h library_graph_map_view_f$(OBJ) : library_graph_map_view_f.c \ module.h \ common.h \ scotch.h library_graph_order$(OBJ) : library_graph_order.c \ module.h \ common.h \ context.h \ parser.h \ graph.h \ order.h \ hgraph.h \ hgraph_order_st.h \ library_order.h \ scotch.h library_graph_order_f$(OBJ) : library_graph_order_f.c \ module.h \ common.h \ scotch.h library_graph_part_ovl$(OBJ) : library_graph_part_ovl.c \ module.h \ common.h \ context.h \ parser.h \ graph.h \ arch.h \ wgraph.h \ wgraph_part_st.h \ scotch.h library_graph_part_ovl_f$(OBJ) : library_graph_part_ovl_f.c \ module.h \ common.h \ scotch.h library_mapping$(OBJ) : library_mapping.c \ module.h \ common.h \ scotch.h library_memory$(OBJ) : library_memory.c \ module.h \ common.h \ scotch.h library_memory_f$(OBJ) : library_memory_f.c \ module.h \ common.h \ scotch.h library_mesh$(OBJ) : library_mesh.c \ module.h \ common.h \ graph.h \ mesh.h \ scotch.h library_mesh_f$(OBJ) : library_mesh_f.c \ module.h \ common.h \ scotch.h library_mesh_graph$(OBJ) : library_mesh_graph.c \ module.h \ common.h \ graph.h \ mesh.h \ scotch.h library_mesh_graph_f$(OBJ) : library_mesh_graph_f.c \ module.h \ common.h \ scotch.h library_mesh_io_habo$(OBJ) : library_mesh_io_habo.c \ module.h \ common.h \ geom.h \ graph.h \ mesh.h \ scotch.h library_mesh_io_habo_f$(OBJ) : library_mesh_io_habo_f.c \ module.h \ common.h \ scotch.h library_mesh_io_scot$(OBJ) : library_mesh_io_scot.c \ module.h \ common.h \ geom.h \ graph.h \ mesh.h \ mesh_io_scot.h \ scotch.h library_mesh_io_scot_f$(OBJ) : library_mesh_io_scot_f.c \ module.h \ common.h \ scotch.h library_mesh_order$(OBJ) : library_mesh_order.c \ module.h \ common.h \ context.h \ parser.h \ graph.h \ mesh.h \ hmesh.h \ order.h \ hmesh_order_st.h \ scotch.h \ library_order.h library_mesh_order_f$(OBJ) : library_mesh_order_f.c \ module.h \ common.h \ scotch.h library_order$(OBJ) : library_order.c \ module.h \ common.h \ scotch.h library_parser$(OBJ) : library_parser.c \ module.h \ common.h \ parser.h \ scotch.h library_parser_f$(OBJ) : library_parser_f.c \ module.h \ common.h \ scotch.h library_random$(OBJ) : library_random.c \ module.h \ common.h \ scotch.h library_random_f$(OBJ) : library_random_f.c \ module.h \ common.h \ scotch.h library_strat$(OBJ) : library_strat.c \ module.h \ common.h \ scotch.h library_version$(OBJ) : library_version.c \ module.h \ common.h \ scotch.h library_version_f$(OBJ) : library_version_f.c \ module.h \ common.h \ scotch.h mapping$(OBJ) : mapping.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h mapping_check$(OBJ) : mapping_check.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h mapping_io$(OBJ) : mapping_io.c \ module.h \ common.h \ graph.h \ arch.h \ mapping.h \ mapping_io.h mesh$(OBJ) : mesh.c \ module.h \ common.h \ graph.h \ mesh.h mesh_check$(OBJ) : mesh_check.c \ module.h \ common.h \ graph.h \ mesh.h mesh_coarsen$(OBJ) : mesh_coarsen.c \ module.h \ common.h \ graph.h \ mesh.h mesh_graph$(OBJ) : mesh_graph.c \ module.h \ common.h \ graph.h \ mesh.h \ mesh_graph.h mesh_induce_sepa$(OBJ) : mesh_induce_sepa.c \ module.h \ common.h \ graph.h \ mesh.h \ mesh_induce_sepa.h mesh_io$(OBJ) : mesh_io.c \ module.h \ common.h \ graph.h \ graph_io.h \ mesh.h \ mesh_io.h mesh_io_habo$(OBJ) : mesh_io_habo.c \ module.h \ common.h \ geom.h \ graph.h \ mesh.h mesh_io_scot$(OBJ) : mesh_io_scot.c \ module.h \ common.h \ geom.h \ graph.h \ mesh.h order$(OBJ) : order.c \ module.h \ common.h \ graph.h \ order.h order_check$(OBJ) : order_check.c \ module.h \ common.h \ graph.h \ order.h order_io$(OBJ) : order_io.c \ module.h \ common.h \ graph.h \ order.h parser$(OBJ) : parser.c \ module.h \ common.h \ parser.h \ parser_lh.h \ parser_ly.h \ parser_yy.h parser_lh.h : parser_ll.c parser_ll.c : parser_ll.l \ module.h \ common.h \ parser.h \ parser_ll.h \ parser_ly.h $(FLEX) "-P_SCOTCHyy$(SCOTCH_NAME_SUFFIX)" "-oparser_ll.c" "--header-file=parser_lh.h" parser_ll.l || \ $(CP) last_resort/parser_ll.c last_resort/parser_lh.h . parser_ll$(OBJ) : parser_ll.c \ parser_lh.h \ parser_ly.h parser_ly.h : parser_yy.c parser_yy.c : parser_yy.y \ module.h \ common.h \ parser.h \ parser_yy.h $(BISON) "-p_SCOTCHyy$(SCOTCH_NAME_SUFFIX)" --defines="parser_ly.h" --output="parser_yy.c" parser_yy.y || \ $(CP) last_resort/parser_ly.h last_resort/parser_yy.c . parser_yy$(OBJ) : parser_yy.c \ parser_lh.h \ parser_ll.h \ parser_yy.h vdgraph$(OBJ) : vdgraph.c \ module.h \ common.h \ dgraph.h \ vdgraph.h vdgraph_check$(OBJ) : vdgraph_check.c \ module.h \ common.h \ dgraph.h \ vdgraph.h vdgraph_gather_all$(OBJ) : vdgraph_gather_all.c \ module.h \ common.h \ comm.h \ graph.h \ vgraph.h \ dgraph.h \ vdgraph.h vdgraph_separate_bd$(OBJ) : vdgraph_separate_bd.c \ module.h \ common.h \ parser.h \ dgraph.h \ vdgraph.h \ vdgraph_separate_bd.h \ vdgraph_separate_st.h vdgraph_separate_df$(OBJ) : vdgraph_separate_df.c \ module.h \ common.h \ dgraph.h \ vdgraph.h \ vdgraph_separate_df.h vdgraph_separate_ml$(OBJ) : vdgraph_separate_ml.c \ module.h \ common.h \ parser.h \ dgraph.h \ dgraph_coarsen.h \ vdgraph.h \ vdgraph_separate_ml.h \ vdgraph_separate_st.h vdgraph_separate_sq$(OBJ) : vdgraph_separate_sq.c \ module.h \ common.h \ comm.h \ parser.h \ graph.h \ vgraph.h \ vgraph_separate_st.h \ dgraph.h \ vdgraph.h \ vdgraph_separate_sq.h vdgraph_separate_st$(OBJ) : vdgraph_separate_st.c \ module.h \ common.h \ parser.h \ graph.h \ vgraph.h \ vgraph_separate_st.h \ dgraph.h \ dgraph_coarsen.h \ vdgraph.h \ vdgraph_separate_bd.h \ vdgraph_separate_df.h \ vdgraph_separate_ml.h \ vdgraph_separate_sq.h \ vdgraph_separate_st.h \ vdgraph_separate_zr.h vdgraph_separate_zr$(OBJ) : vdgraph_separate_zr.c \ module.h \ common.h \ dgraph.h \ vdgraph.h \ vdgraph_separate_zr.h vdgraph_store$(OBJ) : vdgraph_store.c \ module.h \ common.h \ dgraph.h \ vdgraph.h vgraph$(OBJ) : vgraph.c \ module.h \ common.h \ graph.h \ vgraph.h vgraph_check$(OBJ) : vgraph_check.c \ module.h \ common.h \ graph.h \ vgraph.h vgraph_separate_bd$(OBJ) : vgraph_separate_bd.c \ module.h \ common.h \ parser.h \ graph.h \ vgraph.h \ vgraph_separate_bd.h \ vgraph_separate_st.h vgraph_separate_df$(OBJ) : vgraph_separate_df.c \ module.h \ common.h \ graph.h \ vgraph.h \ vgraph_separate_df.h vgraph_separate_es$(OBJ) : vgraph_separate_es.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ vgraph.h \ vgraph_separate_es.h vgraph_separate_fm$(OBJ) : vgraph_separate_fm.c \ module.h \ common.h \ gain.h \ graph.h \ vgraph.h \ vgraph_separate_gg.h \ vgraph_separate_fm.h vgraph_separate_gg$(OBJ) : vgraph_separate_gg.c \ module.h \ common.h \ graph.h \ vgraph.h \ vgraph_separate_gg.h vgraph_separate_gp$(OBJ) : vgraph_separate_gp.c \ module.h \ common.h \ graph.h \ vgraph.h \ vgraph_separate_gp.h vgraph_separate_ml$(OBJ) : vgraph_separate_ml.c \ module.h \ common.h \ parser.h \ graph.h \ graph_coarsen.h \ vgraph.h \ vgraph_separate_ml.h \ vgraph_separate_st.h vgraph_separate_th$(OBJ) : vgraph_separate_th.c \ module.h \ common.h \ graph.h \ vgraph.h \ vgraph_separate_th.h vgraph_separate_vw$(OBJ) : vgraph_separate_vw.c \ module.h \ common.h \ graph.h \ vgraph.h \ vgraph_separate_vw.h vgraph_separate_zr$(OBJ) : vgraph_separate_zr.c \ module.h \ common.h \ graph.h \ vgraph.h \ vgraph_separate_zr.h vgraph_separate_st$(OBJ) : vgraph_separate_st.c \ gain.h \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ bgraph.h \ bgraph_bipart_st.h \ vgraph.h \ vgraph_separate_bd.h \ vgraph_separate_df.h \ vgraph_separate_fm.h \ vgraph_separate_gg.h \ vgraph_separate_gp.h \ vgraph_separate_ml.h \ vgraph_separate_th.h \ vgraph_separate_vw.h \ vgraph_separate_zr.h \ vgraph_separate_st.h vgraph_store$(OBJ) : vgraph_store.c \ module.h \ common.h \ graph.h \ vgraph.h vmesh$(OBJ) : vmesh.c \ module.h \ common.h \ graph.h \ mesh.h \ vmesh.h vmesh_check$(OBJ) : vmesh_check.c \ module.h \ common.h \ graph.h \ mesh.h \ vmesh.h vmesh_separate_fm$(OBJ) : vmesh_separate_fm.c \ module.h \ common.h \ graph.h \ mesh.h \ vmesh.h \ vmesh_separate_fm.h vmesh_separate_gg$(OBJ) : vmesh_separate_gg.c \ module.h \ common.h \ graph.h \ mesh.h \ vmesh.h \ vmesh_separate_gg.h vmesh_separate_gr$(OBJ) : vmesh_separate_gr.c \ module.h \ common.h \ parser.h \ graph.h \ vgraph.h \ vgraph_separate_st.h \ mesh.h \ vmesh.h \ vmesh_separate_gr.h vmesh_separate_ml$(OBJ) : vmesh_separate_ml.c \ module.h \ common.h \ parser.h \ graph.h \ mesh.h \ mesh_coarsen.h \ vmesh.h \ vmesh_separate_ml.h \ vmesh_separate_st.h vmesh_separate_zr$(OBJ) : vmesh_separate_zr.c \ module.h \ common.h \ graph.h \ mesh.h \ vmesh.h \ vmesh_separate_zr.h vmesh_separate_st$(OBJ) : vmesh_separate_st.c \ module.h \ common.h \ gain.h \ parser.h \ graph.h \ vgraph.h \ vgraph_separate_st.h \ mesh.h \ mesh_coarsen.h \ vmesh.h \ vmesh_separate_fm.h \ vmesh_separate_gg.h \ vmesh_separate_gr.h \ vmesh_separate_ml.h \ vmesh_separate_zr.h \ vmesh_separate_st.h vmesh_store$(OBJ) : vmesh_store.c \ module.h \ common.h \ graph.h \ mesh.h \ vmesh.h wgraph$(OBJ) : wgraph.c \ module.h \ common.h \ graph.h \ arch.h \ wgraph.h wgraph_check$(OBJ) : wgraph_check.c \ module.h \ common.h \ graph.h \ arch.h \ wgraph.h wgraph_part_es$(OBJ) : wgraph_part_es.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ kgraph.h \ kgraph_map_st.h \ wgraph.h \ wgraph_part_es.h \ scotch.h wgraph_part_fm$(OBJ) : wgraph_part_fm.c \ module.h \ common.h \ gain.h \ parser.h \ graph.h \ arch.h \ vgraph.h \ vgraph_separate_st.h \ wgraph.h \ wgraph_part_rb.h \ wgraph_part_fm.h wgraph_part_ml$(OBJ) : wgraph_part_ml.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ mapping.h \ graph_coarsen.h \ wgraph.h \ wgraph_part_st.h \ wgraph_part_ml.h wgraph_part_rb$(OBJ) : wgraph_part_rb.c \ module.h \ common.h \ parser.h \ graph.h \ arch.h \ vgraph.h \ vgraph_separate_st.h \ vgraph_separate_zr.h \ wgraph.h \ wgraph_part_rb.h wgraph_part_st$(OBJ) : wgraph_part_st.c \ module.h \ common.h \ gain.h \ parser.h \ graph.h \ arch.h \ mapping.h \ graph_coarsen.h \ kgraph.h \ kgraph_map_st.h \ vgraph.h \ vgraph_separate_st.h \ wgraph.h \ wgraph_part_es.h \ wgraph_part_fm.h \ wgraph_part_ml.h \ wgraph_part_rb.h \ wgraph_part_zr.h \ wgraph_part_st.h wgraph_part_zr$(OBJ) : wgraph_part_zr.c \ module.h \ common.h \ graph.h \ arch.h \ wgraph.h \ wgraph_part_zr.h wgraph_store$(OBJ) : wgraph_store.c \ module.h \ common.h \ graph.h \ arch.h \ wgraph.h dummysizes$(EXE) : dummysizes.c \ module.h \ common.h \ arch.h \ graph.h \ geom.h \ mesh.h \ mapping.h \ order.h \ parser.h $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ptdummysizes$(EXE) : dummysizes.c \ module.h \ common.h \ dgraph.h \ dorder.h $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) scotch.h : dummysizes$(EXE) \ library.h ./dummysizes$(EXE) -s$(SCOTCH_NAME_SUFFIX) library.h scotch.h scotchf.h : dummysizes$(EXE) \ library_f.h ./dummysizes$(EXE) -s$(SCOTCH_NAME_SUFFIX) library_f.h scotchf.h ptscotch.h : ptdummysizes$(EXE) \ library_pt.h ./ptdummysizes$(EXE) -s$(SCOTCH_NAME_SUFFIX) library_pt.h ptscotch.h ptscotchf.h : ptdummysizes$(EXE) \ library_pt_f.h ./ptdummysizes$(EXE) -s$(SCOTCH_NAME_SUFFIX) library_pt_f.h ptscotchf.h libscotch$(LIB) : $(LIBSCOTCHDEPS) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) libscotcherr$(LIB) : library_error$(OBJ) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) libscotcherrexit$(LIB) : library_error_exit$(OBJ) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) libptscotch$(LIB) : $(LIBPTSCOTCHDEPS) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) libptscotcherr$(LIB) : library_error_pt$(OBJ) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) libptscotcherrexit$(LIB) : library_error_exit_pt$(OBJ) $(AR) $(ARFLAGS) $(@) $(?) -$(RANLIB) $(@) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch.c000066400000000000000000000373311514310134000250050ustar00rootroot00000000000000/* Copyright 2004,2007-2013,2015,2016,2018-2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the generic target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 16 aug 1995 **/ /** # Version 3.1 : from : 02 may 1996 **/ /** to : 17 jul 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 28 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 08 nov 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 04 nov 2003 **/ /** to : 09 jan 2004 **/ /** # Version 5.1 : from : 11 dec 2007 **/ /** to : 25 jun 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 24 aug 2020 **/ /** # Version 6.1 : from : 05 apr 2021 **/ /** to : 05 apr 2021 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 30 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "arch_cmplt.h" #include "arch_cmpltw.h" #include "arch_deco.h" #include "arch_deco2.h" #include "arch_dist.h" #include "arch_hcub.h" #include "arch_mesh.h" #include "arch_sub.h" #include "arch_tleaf.h" #include "arch_torus.h" #include "arch_vcmplt.h" #include "arch_vhcub.h" /* ** The static definitions. */ static const ArchClass archClassTab[] = { ARCHCLASSBLOCK (Cmplt, "cmplt", ARCHPART), ARCHCLASSBLOCK (Cmpltw, "cmpltw", ARCHPART), ARCHCLASSBLOCK (Deco, "deco", ARCHNONE), ARCHCLASSBLOCK (Deco2, "deco", ARCHNONE), /* Hidden, type-2 decomposition-defined architecture */ ARCHCLASSBLOCK (Dist, "dist", ARCHNONE), ARCHCLASSBLOCK (Hcub, "hcub", ARCHNONE), ARCHCLASSBLOCK (Tleaf, "tleaf", ARCHNONE), ARCHCLASSBLOCK (Ltleaf, "ltleaf", ARCHNONE), ARCHCLASSBLOCK (Mesh2, "mesh2D", ARCHNONE), ARCHCLASSBLOCK (Mesh3, "mesh3D", ARCHNONE), ARCHCLASSBLOCK (MeshX, "meshXD", ARCHNONE), ARCHCLASSBLOCK (Sub, "sub", ARCHNONE), ARCHCLASSBLOCK (Torus2, "torus2D", ARCHNONE), ARCHCLASSBLOCK (Torus3, "torus3D", ARCHNONE), ARCHCLASSBLOCK (TorusX, "torusXD", ARCHNONE), ARCHCLASSBLOCK (Vcmplt, "varcmplt", ARCHPART | ARCHVAR), ARCHCLASSBLOCK (Vhcub, "varhcub", ARCHVAR), ARCHCLASSBLOCKNULL }; /**************************************/ /* */ /* These are the entry points for the */ /* generic architecture routines. */ /* */ /**************************************/ /* This routine initializes an architecture structure. ** It zeroes the architecture body so that architecture ** specific routines can check if their pointers have ** been initialized or not. ** It returns: ** - !NULL : pointer to the target architecture. ** - NULL : on error. */ int archInit ( Arch * restrict const archptr) { memSet (archptr, 0, sizeof (Arch)); /* Initialize architecture body (arch->clasptr = NULL) */ return (0); } /* This routine deletes an architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archExit ( Arch * restrict const archptr) { return (archFree (archptr)); /* Free architecture data */ } /* This routine frees the architecture data. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archFree ( Arch * restrict const archptr) { int o; o = 0; /* Assume everything will be all right */ if ((archptr->clasptr != NULL) && (archptr->clasptr->archFree != NULL)) /* If there is a specific freeing routine */ o = archptr->clasptr->archFree (&archptr->data); /* Call it */ #ifdef SCOTCH_DEBUG_GRAPH2 memSet (archptr, ~0, sizeof (Arch)); /* Purge graph fields */ #endif /* SCOTCH_DEBUG_GRAPH2 */ return (o); } /* This routine loads an architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archLoad ( Arch * restrict const archptr, FILE * const stream) { const ArchClass * restrict clasptr; /* Pointer to architecture class */ char name[256]; /* Architecture name string */ if (fscanf (stream, "%255s", name) != 1) { /* Read architecture name */ errorPrint ("archLoad: cannot load architecture type"); return (1); } name[255] = '\0'; /* Set end of string */ if ((clasptr = archClass (name)) == NULL) { /* Get class from its name */ errorPrint ("archLoad: invalid architecture type"); return (1); } archptr->clasptr = clasptr; /* Set architecture class */ archptr->flagval = archptr->clasptr->flagval | ARCHFREE; /* Copy architecture flag before it can be modified and set freeing flag */ if (clasptr->archLoad != NULL) { /* If class has loading function */ if (clasptr->archLoad (&archptr->data, stream) != 0) { /* Load class data */ errorPrint ("archLoad: cannot load architecture data"); clasptr->archFree (&archptr->data); /* Perform clean-up */ memSet (archptr, 0, sizeof (Arch)); /* Initialize architecture body */ return (1); } } return (0); } /* This routine saves an architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archSave ( const Arch * restrict const archptr, FILE * restrict const stream) { int o; if (archptr->clasptr == NULL) /* If no architecture type defined */ return (0); /* Nothing to do */ o = (fprintf (stream, "%s\n", /* Write architecture class */ archptr->clasptr->archname) == EOF); if (archptr->clasptr->archSave != NULL) /* If class has saving function */ o |= archptr->clasptr->archSave (&archptr->data, stream); /* Write architecture data */ if (o != 0) errorPrint ("archSave: bad output"); return (o); } /* This routine returns the pointer to ** the class of a given architecture ** name. ** It returns: ** - !NULL : class pointer. ** - NULL : on error. */ const ArchClass * archClass ( const char * const name) { return (archClass2 (name, 0)); /* Get first instance of class name */ } const ArchClass * archClass2 ( const char * const name, const int num) { const ArchClass * restrict clasptr; /* Pointer to architecture class */ for (clasptr = archClassTab; clasptr->archname != NULL; clasptr ++) { /* For all classes */ if (strcasecmp (name, clasptr->archname) == 0) /* If class names matches */ return (clasptr + num); /* Return proper class */ } return (NULL); /* Class not found */ } /* This routine returns the index of the ** given class. ** It returns: ** - -1 : class is NULL. ** - >0 : valid index. */ int archClassNum ( const ArchClass * const clasptr) { return ((clasptr == NULL) ? -1 : (int) (clasptr - archClassTab)); } /**************************************/ /* */ /* These are the entry points for the */ /* generic domain routines. They are */ /* used only in debugging mode, to */ /* provide breakpoints for routines */ /* which are else implemented as */ /* macros for the sake of efficiency. */ /* */ /**************************************/ /* This function returns the smallest number ** of terminal domain included within the ** given domain. */ #ifdef SCOTCH_DEBUG_ARCH2 ArchDomNum archDomNum ( const Arch * const archptr, const ArchDom * const domnptr) { return (archDomNum2 (archptr, domnptr)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This function computes the terminal domain ** associated with the given terminal number. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 int archDomTerm ( const Arch * const archptr, ArchDom * restrict const domnptr, const ArchDomNum domnnum) { return (archDomTerm2 (archptr, domnptr, domnnum)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This function returns the number ** of elements in the given domain. ** It returns: ** - >0 : size of the domain. ** - 0 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 Anum archDomSize ( const Arch * const archptr, const ArchDom * const domnptr) { return (archDomSize2 (archptr, domnptr)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This function returns the weight ** of the given domain. ** It returns: ** - >0 : weight of the domain. ** - 0 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 Anum archDomWght ( const Arch * const archptr, const ArchDom * const domnptr) { return (archDomWght2 (archptr, domnptr)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This function gives the average ** distance between two domains. ** It returns: ** - !-1 : distance between subdomains. ** - -1 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 Anum archDomDist ( const Arch * const archptr, const ArchDom * const dom0ptr, const ArchDom * const dom1ptr) { return (archDomDist2 (archptr, dom0ptr, dom1ptr)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This function sets the biggest ** available domain for the given ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 int archDomFrst ( const Arch * const archptr, ArchDom * const domnptr) { return (archDomFrst2 (archptr, domnptr)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDomLoad ( const Arch * const archptr, ArchDom * const domnptr, FILE * const stream) { return (archptr->clasptr->domLoad (&archptr->data, &domnptr->data, stream)); /* Call proper routine */ } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDomSave ( const Arch * const archptr, const ArchDom * const domnptr, FILE * const stream) { return (archptr->clasptr->domSave (&archptr->data, &domnptr->data, stream)); /* Call proper routine */ } /* This function tries to split a domain into ** two subdomains. The two subdomains are created ** so that subdomain 0 has same T_domNum as ** original domain. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 int archDomBipart ( const Arch * const archptr, const ArchDom * const domnptr, ArchDom * const dom0ptr, ArchDom * const dom1ptr) { return (archDomBipart2 (archptr, domnptr, dom0ptr, dom1ptr)); /* Call proper routine */ } #endif /* SCOTCH_DEBUG_ARCH2 */ /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ #ifdef SCOTCH_DEBUG_ARCH2 int archDomIncl ( const Arch * const archptr, const ArchDom * const dom0ptr, const ArchDom * const dom1ptr) { return archDomIncl2 (archptr, dom0ptr, dom1ptr); } #endif /* SCOTCH_DEBUG_ARCH2 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch.h000066400000000000000000000467121514310134000250150ustar00rootroot00000000000000/* Copyright 2004,2007-2011,2013-2015,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the generic target architecture **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 08 sep 1995 **/ /** # Version 3.1 : from : 02 may 1996 **/ /** to : 20 jul 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 13 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 07 oct 1998 **/ /** # Version 3.4 : from : 08 nov 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 01 jan 2002 **/ /** to : 07 dec 2004 **/ /** # Version 5.1 : from : 11 dec 2007 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Architecture flags. +*/ #define ARCHNONE 0x0000 /*+ No options set +*/ #define ARCHPART 0x0001 /*+ Architecture without external gains +*/ #define ARCHVAR 0x0002 /*+ Variable-sized architecture +*/ #define ARCHFREE 0x0004 /*+ Architecture contents must be freed on exit +*/ #define ARCHBITSUSED 0x0007 /* Significant bits for plain arch routines */ #define ARCHBITSNOTUSED 0x0008 /* Value above which bits not used by plain arch routines */ /* ** The type and structure definitions. */ typedef INT Anum; /*+ Generic integer for architectures +*/ #define ANUMMAX INTVALMAX #define ANUMSTRING INTSTRING /*+ The domain number type. +*/ typedef Anum ArchDomNum; /*+ Domain number +*/ #define ARCHDOMNOTTERM ((ArchDomNum) ~0) /*+ Not-terminal number +*/ /*+ The architecture multinode element, used for architecture coarsening. It is equivalent to the GraphCoarsenMulti structure. +*/ typedef struct ArchCoarsenMulti_ { Anum vertnum[2]; /*+ Numbers of the collapsed vertices of a multinode +*/ } ArchCoarsenMulti; /*+ The sub-includes for structure size computations. +*/ #define ARCH_NOPROTO #include "arch_cmplt.h" #include "arch_cmpltw.h" #include "arch_deco.h" #include "arch_deco2.h" #include "arch_dist.h" #include "arch_hcub.h" #include "arch_tleaf.h" #include "arch_mesh.h" #include "arch_sub.h" #include "arch_torus.h" #include "arch_vcmplt.h" #include "arch_vhcub.h" #undef ARCH_NOPROTO /*+ The architecture class type. +*/ union ArchDummy_; /* Pre-definition of dummy union types for prototyping */ union ArchDomDummy_; union ArchMatchDummy_; typedef int (* ArchLoadFunc) (union ArchDummy_ * const, FILE * const); typedef int (* ArchSaveFunc) (const union ArchDummy_ * const, FILE * const); typedef int (* ArchFreeFunc) (union ArchDummy_ * const); typedef int (* ArchMatchInitFunc) (union ArchMatchDummy_ * const, const union ArchDummy_ * const); typedef void (* ArchMatchExitFunc) (union ArchMatchDummy_ * const); typedef Anum (* ArchMatchMateFunc) (union ArchMatchDummy_ * const, ArchCoarsenMulti ** const); typedef ArchDomNum (* ArchDomNumFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const); typedef int (* ArchDomTermFunc) (const union ArchDummy_ * const, union ArchDomDummy_ * const, const ArchDomNum); typedef Anum (* ArchDomSizeFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const); typedef Anum (* ArchDomWghtFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const); typedef Anum (* ArchDomDistFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const, const union ArchDomDummy_ * const); typedef int (* ArchDomFrstFunc) (const union ArchDummy_ * const, union ArchDomDummy_ * const); typedef int (* ArchDomLoadFunc) (const union ArchDummy_ * const, union ArchDomDummy_ * const, FILE * const); typedef int (* ArchDomSaveFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const, FILE * const); typedef int (* ArchDomBipartFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const, union ArchDomDummy_ * const, union ArchDomDummy_ * const); typedef int (* ArchDomInclFunc) (const union ArchDummy_ * const, const union ArchDomDummy_ * const, const union ArchDomDummy_ * const); typedef struct ArchClass_ { char * archname; /*+ Architecture name +*/ int flagval; /*+ Architecture flags of the class +*/ ArchLoadFunc archLoad; /*+ Architecture loading function +*/ ArchSaveFunc archSave; /*+ Architecture saving function +*/ ArchFreeFunc archFree; /*+ Architecture freeing function +*/ ArchMatchInitFunc matchInit; /*+ Architecture matching init function +*/ ArchMatchExitFunc matchExit; /*+ Architecture matching exit function +*/ ArchMatchMateFunc matchMate; /*+ Architecture matching function +*/ ArchDomNumFunc domNum; /*+ Domain labeling function +*/ ArchDomTermFunc domTerm; /*+ Terminal domain building function +*/ ArchDomSizeFunc domSize; /*+ Domain size function +*/ ArchDomWghtFunc domWght; /*+ Domain weight function +*/ ArchDomDistFunc domDist; /*+ Distance computation function +*/ ArchDomFrstFunc domFrst; /*+ Compute biggest domain +*/ ArchDomLoadFunc domLoad; /*+ Domain loading routine +*/ ArchDomSaveFunc domSave; /*+ Domain saving routine +*/ ArchDomBipartFunc domBipart; /*+ Domain bipartitioning routine +*/ ArchDomInclFunc domIncl; /*+ Domain inclusion routine +*/ int domsizeof; /*+ Size in bytes of domain data +*/ } ArchClass; /*+ The architecture union type. +*/ typedef union ArchDummy_ { /*+ Architecture data +*/ ArchCmplt cmplt; /*+ Complete graph architecture +*/ ArchCmpltw cmpltw; /*+ Weighted complete graph architecture +*/ ArchDeco deco; /*+ Type-1 decomposition-described architecture +*/ ArchDeco2 deco2; /*+ Type-2 decomposition-described architecture +*/ ArchDist dist; /*+ Distance multiplicator pseudo-architecture +*/ ArchHcub hcub; /*+ Hypercube architecture +*/ ArchMeshX meshx; /*+ xD-mesh architecture (includes 2D and 3D) +*/ ArchSub sub; /*+ Sub-architecture meta-architecture +*/ ArchTleaf tleaf; /*+ Tree-leaf architecture +*/ ArchVcmplt vcmplt; /*+ Variable-sized complete graph architecture +*/ ArchVhcub vhcub; /*+ Variable-sized hypercube architecture +*/ } ArchDummy; /*+ The architecture type. +*/ typedef struct Arch_ { const ArchClass * clasptr; /*+ Pointer to architecture sequential class +*/ int flagval; /*+ (Possibly updated) architecture flags +*/ ArchDummy data; /*+ Architecture data +*/ } Arch; /*+ The architecture domain union type. +*/ typedef union ArchDomDummy_ { /*+ The domain data +*/ ArchCmpltDom cmplt; /*+ Complete graph domain +*/ ArchCmpltwDom cmpltw; /*+ Weighted complete graph domain +*/ ArchDecoDom deco; /*+ Type-1 decomposition-described domain +*/ ArchDeco2Dom deco2; /*+ Type-2 decomposition-described domain +*/ /*+ ArchDistDom dist; *+ Distance multiplicator domain is ArchDom +*/ ArchHcubDom hcub; /*+ Hypercube domain +*/ ArchMeshXDom meshx; /*+ xD-mesh domain +*/ ArchSubDom sub; /*+ Sub-architecture meta-architecture +*/ ArchTleafDom tleaf; /*+ Tree-leaf domain +*/ ArchVcmpltDom vcmplt; /*+ Variable-sized complete graph domain +*/ ArchVhcubDom vhcub; /*+ Variable-sized hypercube domain +*/ } ArchDomDummy; /*+ The domain structure type. +*/ typedef struct ArchDom_ { ArchDomDummy data; /*+ The domain data +*/ } ArchDom; /*+ The architecture match union type. +*/ typedef union ArchMatchDummy_ { /*+ Architecture data +*/ ArchCmpltMatch cmplt; /*+ Complete graph architecture +*/ /* ArchMatchCmpltw cmpltw; *+ Weighted complete graph architecture +*/ ArchDecoMatch deco; /*+ Type-1 decomposition-described architecture +*/ /* ArchMatchDist dist; *+ Distance multiplicator pseudo-architecture +*/ ArchHcubMatch hcub; /*+ Hypercube architecture +*/ ArchMeshXMatch meshx; /*+ xD-mesh architecture +*/ ArchSubMatch sub; /*+ Sub-architecture meta-architecture +*/ ArchTleafMatch tleaf; /*+ Tree-leaf architecture +*/ } ArchMatchDummy; /*+ The architecture type. +*/ typedef struct ArchMatch_ { ArchMatchDummy data; /*+ Architecture matching data +*/ } ArchMatch; /* ** The function prototypes. */ int archInit (Arch * restrict const); int archExit (Arch * restrict const); int archFree (Arch * restrict const); int archLoad (Arch * restrict const, FILE * const); int archSave (const Arch * const, FILE * const); char * archName (const Arch * const); const ArchClass * archClass (const char * const); const ArchClass * archClass2 (const char * const, const int); int archClassNum (const ArchClass * const); ArchDomNum archDomNum (const Arch * const, const ArchDom * const); int archDomTerm (const Arch * const, ArchDom * const, const ArchDomNum); Anum archDomSize (const Arch * const, const ArchDom * const); Anum archDomWght (const Arch * const, const ArchDom * const); Anum archDomDist (const Arch * const, const ArchDom * const, const ArchDom * const); int archDomFrst (const Arch * const, ArchDom * const); int archDomLoad (const Arch * const, ArchDom * const, FILE * const); int archDomSave (const Arch * const, const ArchDom * const, FILE * const); int archDomBipart (const Arch * const, const ArchDom * const, ArchDom * const, ArchDom * const); int archDomIncl (const Arch * const, const ArchDom * const, const ArchDom * const); /* ** The macro definitions. */ #define archDomSizeof(a) ((a)->clasptr->domsizeof) #define archName(a) (((a)->clasptr == NULL) ? "" : (a)->clasptr->archname) #define archPart(a) ((((a)->flagval) & ARCHPART) != 0) #define archVar(a) ((((a)->flagval) & ARCHVAR) != 0) #define archArch(a) ((Arch *) ((char *) (a) - ((char *) (&(((Arch *) (NULL))->data)) - (char *) (NULL)))) #if ((! defined SCOTCH_DEBUG_ARCH2) || (defined ARCH)) #define archDomNum2(arch,dom) (((ArchDomNum (*) (const void * const, const void * const)) (arch)->clasptr->domNum) ((const void * const) &(arch)->data, (const void * const) &(dom)->data)) #define archDomTerm2(arch,dom,num) (((int (*) (const void * const, void * const, const ArchDomNum)) (arch)->clasptr->domTerm) ((void *) &(arch)->data, (void *) &(dom)->data, (num))) #define archDomSize2(arch,dom) (((Anum (*) (const void * const, const void * const)) (arch)->clasptr->domSize) ((void *) &(arch)->data, (void *) &(dom)->data)) #define archDomWght2(arch,dom) (((Anum (*) (const void * const, const void * const)) (arch)->clasptr->domWght) ((void *) &(arch)->data, (void *) &(dom)->data)) #define archDomDist2(arch,dom0,dom1) (((Anum (*) (const void * const, const void * const, const void * const)) (arch)->clasptr->domDist) ((const void *) &(arch)->data, (const void *) &(dom0)->data, (const void *) &(dom1)->data)) #define archDomFrst2(arch,dom) (((int (*) (const void * const, void * const)) (arch)->clasptr->domFrst) ((const void * const) &(arch)->data, (void * const) &(dom)->data)) #define archDomBipart2(arch,dom,dom0,dom1) (((int (*) (const void * const, const void * const, void * const, void * const)) (arch)->clasptr->domBipart) ((const void * const) &(arch)->data, (const void * const) &(dom)->data, (void * const) &(dom0)->data, (void * const) &(dom1)->data)) #define archDomIncl2(arch,dom0,dom1) (((int (*) (const void * const, const void * const, void * const)) (arch)->clasptr->domIncl) ((const void * const) &(arch)->data, (void * const) &(dom0)->data, (void * const) &(dom1)->data)) #endif #ifndef SCOTCH_DEBUG_ARCH2 #define archDomNum archDomNum2 #define archDomTerm archDomTerm2 #define archDomSize archDomSize2 #define archDomWght archDomWght2 #define archDomDist archDomDist2 #define archDomFrst archDomFrst2 #define archDomBipart archDomBipart2 #define archDomIncl archDomIncl2 #endif /* SCOTCH_DEBUG_ARCH2 */ #define ARCHCLASSBLOCK(n,s,f) { s, f, \ (ArchLoadFunc) arch##n##ArchLoad, \ (ArchSaveFunc) arch##n##ArchSave, \ (ArchFreeFunc) arch##n##ArchFree, \ (ArchMatchInitFunc) arch##n##MatchInit, \ (ArchMatchExitFunc) arch##n##MatchExit, \ (ArchMatchMateFunc) arch##n##MatchMate, \ (ArchDomNumFunc) arch##n##DomNum, \ (ArchDomTermFunc) arch##n##DomTerm, \ (ArchDomSizeFunc) arch##n##DomSize, \ (ArchDomWghtFunc) arch##n##DomWght, \ (ArchDomDistFunc) arch##n##DomDist, \ (ArchDomFrstFunc) arch##n##DomFrst, \ (ArchDomLoadFunc) arch##n##DomLoad, \ (ArchDomSaveFunc) arch##n##DomSave, \ (ArchDomBipartFunc) arch##n##DomBipart, \ (ArchDomInclFunc) arch##n##DomIncl, \ sizeof (Arch##n##Dom) } #define ARCHCLASSBLOCKNULL { NULL, ARCHNONE } #define ARCH_H_END scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_build.c000066400000000000000000000450371514310134000261660ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2016,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_build.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module builds a decomposition- **/ /** based architecture from a source graph. **/ /** **/ /** DATES : # Version 3.2 : from : 29 may 1997 **/ /** to : 30 aug 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 30 oct 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 10 mar 2005 **/ /** # Version 5.0 : from : 10 sep 2007 **/ /** to : 03 apr 2008 **/ /** # Version 5.1 : from : 28 sep 2008 **/ /** to : 28 jun 2011 **/ /** # Version 6.0 : from : 28 jun 2011 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_ARCH_BUILD #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "arch_deco.h" #include "arch_vcmplt.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "arch_build.h" /************************************/ /* */ /* These routines handle job pools. */ /* */ /************************************/ /* This routine frees the contents of ** the given job pool. ** It returns: ** - VOID : in all cases. */ static void archDecoBuildJobExit ( ArchDecoBuildJob * const jobtab) { ArchDecoBuildJob * jobptr; jobptr = jobtab; do { graphExit (&jobptr->grafdat); jobptr = jobptr->joblink; } while (jobptr != NULL); } /********************************************/ /* */ /* The main routine, which computes the */ /* decomposition-based target architecture. */ /* */ /********************************************/ /* ** This routine builds a target architecture from ** the given source graph and the optional vertex ** list. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDecoArchBuild ( Arch * restrict const tgtarchptr, /*+ Decomposition architecture to build +*/ const Graph * const tgtgrafptr, /*+ Source graph modeling the architecture +*/ const VertList * const tgtlistptr, /*+ Subset of source graph vertices +*/ const Strat * const mapstrat, /*+ Bipartitioning strategy +*/ Context * const contptr) /*+ Execution context +*/ { Arch archdat; /* Variable-sized architecture for bipartitioning */ ArchDom domsub0; /* Temporary space for subdomain 0 */ Gnum termdomnbr; /* Number of terminal domains */ Gnum termdommax; /* Maximum terminal number */ ArchDecoTermVert * restrict termverttab; /* Terminal vertex table */ Anum * restrict termdisttab; /* Vertex distance table */ ArchDecoBuildDistElem * restrict disttax; /* Distance table */ ArchDecoBuildQueuElem * restrict queutab; /* Distance queue table */ Gnum queuhead; /* Head-of-queue index */ Gnum queutail; /* Tail-of-queue index */ Mapping mappdat; /* Partial and final mapping data */ ArchDecoBuildJob * restrict jobtab; /* Job array */ ArchDecoBuildJob * joblink; /* Linked list of jobs to process */ ArchDecoBuildJob * joborgptr; /* Pointer to original job and first subjob */ ArchDecoBuildJob * jobsubptr; /* Pointer to second subjob */ Bgraph actgrafdat; /* Active graph for bipartitioning */ Gnum invedlosiz; /* Size of inversed edge load array */ Gnum * restrict invedlotax; /* Inversed edge load array for cutting */ Gnum * restrict actfrontab; /* Frontier array for all bipartitionings */ GraphPart * restrict actparttax; /* Part array for all bipartitionings */ GraphPart actpartval; /* Part value to put to subjob */ Gnum actpartnbr; /* Size of part value to put to subjob */ Gnum termdomnum; const Gnum * restrict const tgtverttax = tgtgrafptr->verttax; const Gnum * restrict const tgtvendtax = tgtgrafptr->vendtax; const Gnum * restrict const tgtedgetax = tgtgrafptr->edgetax; const Gnum * restrict const tgtedlotax = tgtgrafptr->edlotax; archInit (tgtarchptr); /* Initialize architecture body */ tgtarchptr->clasptr = archClass ("deco"); /* Set architecture class */ termdomnbr = (tgtlistptr != NULL) ? tgtlistptr->vnumnbr : tgtgrafptr->vertnbr; if (termdomnbr == 0) /* If nothing to do */ return (0); invedlosiz = (tgtedlotax != NULL) ? tgtgrafptr->edgenbr : 0; if ((memAllocGroup ((void **) (void *) &jobtab, (size_t) (termdomnbr * sizeof (ArchDecoBuildJob)), &actfrontab, (size_t) (termdomnbr * sizeof (Gnum)), &actparttax, (size_t) (termdomnbr * sizeof (GraphPart)), &invedlotax, (size_t) (invedlosiz * sizeof (Gnum)), NULL) == NULL) || ((mappdat.parttax = memAlloc (tgtgrafptr->vertnbr * sizeof (ArchDomNum))) == NULL) || /* Final mapping array is for all graph vertices */ ((mappdat.domntab = memAlloc (termdomnbr * sizeof (ArchDom))) == NULL)) { errorPrint ("archDecoBuild: out of memory (1)"); if (jobtab != NULL) { memFree (jobtab); if (mappdat.parttax != NULL) memFree (mappdat.parttax); } return (1); } memSet (mappdat.parttax, 0, tgtgrafptr->vertnbr * sizeof (ArchDomNum)); actparttax -= tgtgrafptr->baseval; mappdat.flagval = MAPPINGFREEPART | MAPPINGFREEDOMN; mappdat.grafptr = tgtgrafptr; mappdat.archptr = &archdat; mappdat.parttax -= tgtgrafptr->baseval; mappdat.domnmax = termdomnbr; archInit (&archdat); /* Initialize terminal architecture */ archdat.clasptr = archClass ("varcmplt"); /* Set architecture class */ archDomFrst (&archdat, &mappdat.domntab[0]); /* Get initial domain */ mappdat.domnnbr = 1; jobtab[0].domnum = 0; /* All vertices mapped to first domain */ if ((tgtlistptr != NULL) && (tgtlistptr->vnumtab != NULL)) /* If vertex list given */ graphInduceList (tgtgrafptr, tgtlistptr->vnumnbr, tgtlistptr->vnumtab, &jobtab[0].grafdat); /* Restrict initial job */ else { /* If no vertex list given */ memCpy (&jobtab[0].grafdat, tgtgrafptr, sizeof (Graph)); /* Job takes whole graph */ jobtab[0].grafdat.flagval &= ~GRAPHFREETABS; /* Graph is a clone */ jobtab[0].grafdat.vnumtax = NULL; /* Assume we have no vertex index array */ } if (tgtedlotax != NULL) { /* If architecture graph has edge loads */ invedlotax -= tgtgrafptr->baseval; /* Base inversed edge load array */ graphIelo (&jobtab[0].grafdat, jobtab[0].grafdat.edlotax, invedlotax); /* Compute inverse of edge loads */ jobtab[0].grafdat.edlotax = invedlotax; /* Replace potentially induced edge array with inversed one */ } /* Edge array will be freed along with jobtab group leader */ actgrafdat.veextax = NULL; /* No external gain array */ actgrafdat.parttax = actparttax; /* Set global auxiliary arrays */ actgrafdat.frontab = actfrontab; actgrafdat.contptr = contptr; /* Use same context for all jobs */ joblink = NULL; /* Initialize job list */ if (jobtab[0].grafdat.vertnbr > 1) { /* If job is worth bipartitioning */ jobtab[0].joblink = joblink; /* Add initial job to list */ joblink = &jobtab[0]; } while (joblink != NULL) { /* For all jobs in list */ joborgptr = joblink; /* Get job */ joblink = joblink->joblink; /* Remove job from list */ joborgptr->joblink = NULL; /* In case of freeing */ memCpy (&actgrafdat.s, &joborgptr->grafdat, sizeof (Graph)); actgrafdat.s.flagval = joborgptr->grafdat.flagval & ~GRAPHFREETABS; bgraphInit2 (&actgrafdat, 1, 1, 1, 0, 0); /* Create active graph */ if (bgraphBipartSt (&actgrafdat, mapstrat) != 0) { /* Perform bipartitioning */ errorPrint ("archDecoBuild: internal error"); archDecoBuildJobExit (joborgptr); archDecoBuildJobExit (joblink); archExit (&archdat); mapExit (&mappdat); memFree (jobtab); return (1); } if ((actgrafdat.compsize0 == 0) || /* If one of the jobs is empty */ (actgrafdat.compsize0 == actgrafdat.s.vertnbr)) { errorPrint ("archDecoBuild: strategy leads to empty domains"); graphExit (&actgrafdat.s); /* Only free graph part, global arrays kept */ archDecoBuildJobExit (joborgptr); archDecoBuildJobExit (joblink); archExit (&archdat); mapExit (&mappdat); memFree (jobtab); return (1); } archVcmpltDomBipart ((const ArchVcmplt * const) (void *) &archdat, /* Update mapping domains */ (const ArchVcmpltDom * const) (void *) &mappdat.domntab[joborgptr->domnum], (ArchVcmpltDom * const) (void *) &domsub0, (ArchVcmpltDom * const) (void *) &mappdat.domntab[mappdat.domnnbr]); mappdat.domntab[joborgptr->domnum] = domsub0; actpartval = actgrafdat.parttax[actgrafdat.s.baseval]; /* Always keep first vertex in sub0 */ actpartnbr = (actpartval == 0) ? actgrafdat.compsize0 : (actgrafdat.s.vertnbr - actgrafdat.compsize0); if (actgrafdat.s.vnumtax != NULL) { /* Update mapping fraction */ Gnum actvertnum; for (actvertnum = actgrafdat.s.baseval; actvertnum < actgrafdat.s.vertnnd; actvertnum ++) { if (actgrafdat.parttax[actvertnum] != actpartval) mappdat.parttax[actgrafdat.s.vnumtax[actvertnum]] = mappdat.domnnbr; } } else { Gnum actvertnum; for (actvertnum = actgrafdat.s.baseval; actvertnum < actgrafdat.s.vertnnd; actvertnum ++) { if (actgrafdat.parttax[actvertnum] != actpartval) mappdat.parttax[actvertnum] = mappdat.domnnbr; } } jobsubptr = jobtab + mappdat.domnnbr; /* Point to new subjob */ jobsubptr->domnum = mappdat.domnnbr ++; /* Build subjobs */ actgrafdat.s.flagval = joborgptr->grafdat.flagval; /* Active is now main copy */ if (actpartnbr < (actgrafdat.s.vertnbr - 1)) { /* If part 1 splittable */ graphInducePart (&actgrafdat.s, actgrafdat.parttax, actgrafdat.s.vertnbr - actpartnbr, 1 - actpartval, &jobsubptr->grafdat); jobsubptr->joblink = joblink; /* Link subjobs in list */ joblink = jobsubptr; } if (actpartnbr > 1) { /* If part 0 splittable */ graphInducePart (&actgrafdat.s, actgrafdat.parttax, actpartnbr, actpartval, &joborgptr->grafdat); joborgptr->joblink = joblink; /* Link subjobs in list */ joblink = joborgptr; } graphExit (&actgrafdat.s); /* Only free graph part, global arrays kept */ } memFree (jobtab); /* Free group leader */ if (memAllocGroup ((void **) (void *) &termverttab, (size_t) (termdomnbr * sizeof (ArchDecoTermVert)), &termdisttab, (size_t) (((termdomnbr * (termdomnbr - 1)) / 2) * sizeof (Anum)), &disttax, (size_t) (tgtgrafptr->vertnbr * sizeof (ArchDecoBuildDistElem)), &queutab, (size_t) (tgtgrafptr->vertnbr * sizeof (ArchDecoBuildQueuElem)), NULL) == NULL) { errorPrint ("archDecoBuild: out of memory (2)"); mapExit (&mappdat); archExit (&archdat); return (1); } for (termdomnum = 0, termdommax = 0; termdomnum < termdomnbr; termdomnum ++) { /* Set terminal vertex array */ Gnum tgtvertnum; tgtvertnum = (tgtlistptr != NULL) ? tgtlistptr->vnumtab[termdomnum] : (termdomnum + tgtgrafptr->baseval); termverttab[termdomnum].labl = tgtvertnum; termverttab[termdomnum].wght = (tgtgrafptr->velotax != NULL) ? tgtgrafptr->velotax[tgtvertnum] : 1; termverttab[termdomnum].num = archDomNum (&archdat, mapDomain (&mappdat, tgtvertnum - tgtgrafptr->baseval)); if (termverttab[termdomnum].num > termdommax) /* Find maximum terminal number */ termdommax = termverttab[termdomnum].num; } disttax -= tgtgrafptr->baseval; for (termdomnum = 1; termdomnum < termdomnbr; termdomnum ++) { /* For all active terminal vertices except the first */ Gnum termdomend; Gnum tgtvertnum; for (tgtvertnum = tgtgrafptr->baseval; tgtvertnum < (tgtgrafptr->vertnbr + tgtgrafptr->baseval); tgtvertnum ++) { disttax[tgtvertnum].queued = 0; /* Vertex not queued */ disttax[tgtvertnum].distval = INTVALMAX; /* Assume maximum distance */ } queuhead = /* Reset the queue */ queutail = 0; tgtvertnum = termverttab[termdomnum].labl; queutab[queutail].vertnum = tgtvertnum; /* Insert root vertex */ queutab[queutail ++].distval = 0; disttax[tgtvertnum].queued = 1; /* Mark vertex as queued */ disttax[tgtvertnum].distval = 0; while (queuhead < queutail) { /* As long as there are vertices in queue */ Gnum vertnum; /* Number of current vertex */ Gnum vertdist; /* Current distance value */ Gnum edgenum; vertnum = queutab[queuhead].vertnum; /* Retrieve vertex from queue */ vertdist = queutab[queuhead ++].distval; for (edgenum = tgtverttax[vertnum]; /* For all vertex edges */ edgenum < tgtvendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = tgtedgetax[edgenum]; if (disttax[vertend].queued == 0) { /* If end vertex not queued */ queutab[queutail].vertnum = vertend; /* Queue the vertex */ queutab[queutail ++].distval = disttax[vertend].distval = vertdist + ((tgtedlotax != NULL) ? tgtedlotax[edgenum] : 1); disttax[vertend].queued = 1; /* Mark vertex as queued */ } } } for (termdomend = 0; termdomend < termdomnum; termdomend ++) /* For all previous terminal domains */ termdisttab[((termdomnum * (termdomnum - 1)) / 2) + termdomend] = /* Retrieve distance */ disttax[termverttab[termdomend].labl].distval; } archDecoArchBuild2 ((ArchDeco *) (void *) &tgtarchptr->data, termdomnbr, termdommax, termverttab, termdisttab); memFree (termverttab); /* Free group leader */ mapExit (&mappdat); archExit (&archdat); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_build.h000066400000000000000000000106711514310134000261670ustar00rootroot00000000000000/* Copyright 2004,2007,2016,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_build.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the architecture building routine. **/ /** **/ /** DATES : # Version 3.2 : from : 29 may 1997 **/ /** to : 01 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 29 nov 2003 **/ /** # Version 6.0 : from : 14 mar 2016 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 21 aug 2019 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # This file contains pieces of code **/ /** extracted from release 3.1 of **/ /** "amk_src.c". **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Job to process. +*/ typedef struct ArchDecoBuildJob_ { struct ArchDecoBuildJob_ * joblink; /*+ Link to job pool +*/ ArchDomNum domnum; /*+ Mapping domain to which vertices belong +*/ Graph grafdat; /*+ Job graph data +*/ } ArchDecoBuildJob; /*+ Vertex distance information. +*/ typedef struct ArchDecoBuildDistElem_ { int queued; /*+ Flag set if vertex queued +*/ Anum distval; /*+ Distance to initial vertex +*/ } ArchDecoBuildDistElem; /*+ Queue element. +*/ typedef struct ArchDecoBuildQueuElem_ { Gnum vertnum; /*+ Vertex number in source graph +*/ Anum distval; /*+ Distance reached +*/ } ArchDecoBuildQueuElem; /* ** The function prototypes. */ #ifdef SCOTCH_ARCH_BUILD static void archDecoBuildJobExit (ArchDecoBuildJob *); #endif /* SCOTCH_ARCH_BUILD */ int archDecoArchBuild (Arch * const, const Graph * const, const VertList * const, const Strat * const, Context * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_build2.c000066400000000000000000000767501514310134000262560ustar00rootroot00000000000000/* Copyright 2015,2016,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_build2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module builds a type-2 **/ /** decomposition-described architecture **/ /** from a source graph. **/ /** **/ /** DATES : # Version 6.0 : from : 02 may 2015 **/ /** to : 22 feb 2018 **/ /** # Version 7.0 : from : 03 aug 2016 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # The code of the main routine derives **/ /** from that of archSubArchBuild(). **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_ARCH_DECO2 #define SCOTCH_ARCH_BUILD2 #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "arch_sub.h" #include "arch_deco2.h" #include "graph_coarsen.h" #include "arch_build2.h" /***********************************/ /* */ /* The matching handling routines. */ /* */ /***********************************/ /* This routine frees the matching data ** structure. ** It returns: ** - void : in all cases. */ static void archDeco2BuildMatchExit ( ArchDeco2BuildMatch * restrict const matcptr) { ArchDeco2BuildLevl * lewgtab; ArchDeco2Levl * levltab; if ((lewgtab = matcptr->lewgtab) != NULL) { ArchDeco2BuildLevl * lewgptr; for (lewgptr = lewgtab + matcptr->levlnum; lewgptr >= lewgtab; lewgptr --) { Gnum * edwgtab; if ((edwgtab = lewgptr->edwgtab) != NULL) memFree (edwgtab); /* Free group leader */ } memFree (lewgtab); } if ((levltab = matcptr->levltab) != NULL) { ArchDeco2Levl * levlptr; for (levlptr = levltab + matcptr->levlnum; levlptr >= levltab; levlptr --) graphExit (&levlptr->grafdat); memFree (levltab); } memFree (matcptr->multtab); /* Free group leader */ memFree (matcptr->hashtab); } /* This routine initializes the matching ** data structure according to the original ** graph to be coarsened. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ static int archDeco2BuildMatchInit ( ArchDeco2BuildMatch * restrict const matcptr, const Graph * restrict const grafptr, Context * const contptr) { Gnum verttmp; Gnum levlmax; /* Estimated upper bound on number of coarsening levels */ Gnum multnbr; Gnum hashmax; Gnum hashsiz; const Gnum vertnbr = grafptr->vertnbr; #ifdef SCOTCH_DEBUG_ARCH1 if (sizeof (ArchCoarsenMulti) != sizeof (GraphCoarsenMulti)) { errorPrint ("archDeco2BuildMatchInit: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ matcptr->contptr = contptr; for (hashsiz = 32, hashmax = grafptr->degrmax * 4; /* Compute size of hash table */ hashsiz < hashmax; hashsiz *= 2) ; matcptr->hashsiz = hashsiz; if ((matcptr->hashtab = memAlloc (hashsiz * sizeof (ArchDeco2BuildHash))) == NULL) { errorPrint ("archDeco2BuildMatchInit: out of memory (1)"); return (1); } multnbr = vertnbr - 1; /* In case graph is star-like, only one matching will take place */ if (memAllocGroup ((void **) (void *) &matcptr->multtab, (size_t) (multnbr * sizeof (ArchCoarsenMulti)), &matcptr->ficotab, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("archDeco2BuildMatchInit: out of memory (2)"); memFree (matcptr->hashtab); return (1); } for (verttmp = vertnbr, levlmax = 1; verttmp != 0; verttmp >>= 1, levlmax ++) ; levlmax *= 2; /* Compute estimated upper bound on number of coarsening levels */ #ifdef SCOTCH_DEBUG_ARCH2 levlmax = 1; /* Set levlmax to a small value to test reallocation */ #endif /* SCOTCH_DEBUG_ARCH2 */ matcptr->levltab = NULL; /* In case of error */ matcptr->levlmax = levlmax; matcptr->levlnum = 0; if ((matcptr->lewgtab = memAlloc (levlmax * sizeof (ArchDeco2BuildLevl))) == NULL) { errorPrint ("archDeco2BuildMatchInit: out of memory (3)"); archDeco2BuildMatchExit (matcptr); return (1); } matcptr->lewgtab[0].edwgtab = NULL; /* TRICK: in case of error */ matcptr->lewgtab[0].vewgtab = NULL; /* No vertex traversal cost at level 0 */ matcptr->lewgtab[0].vewgsum = 0; matcptr->lewgtab[0].edwgsum = grafptr->edlosum; /* Assume graph has no edge weights */ if ((matcptr->levltab = memAlloc (levlmax * sizeof (ArchDeco2Levl))) == NULL) { errorPrint ("archDeco2BuildMatchInit: out of memory (4)"); archDeco2BuildMatchExit (matcptr); return (1); } if (graphClone (grafptr, &matcptr->levltab[0].grafdat) != 0) { /* Clone original graph in level 0 */ errorPrint ("archDeco2BuildMatchInit: cannot create clone graph"); archDeco2BuildMatchExit (matcptr); return (1); } if (matcptr->levltab[0].grafdat.edlotax != NULL) { /* If original graph has edge loads */ Gnum edgenbr; edgenbr = matcptr->levltab[0].grafdat.edgenbr; if ((matcptr->lewgtab[0].edwgtab = memAlloc (edgenbr * sizeof (Gnum))) == NULL) { errorPrint ("archDeco2BuildMatchInit: out of memory (5)"); archDeco2BuildMatchExit (matcptr); return (1); } matcptr->lewgtab[0].edwgsum = grafptr->edlosum; /* Record edge load sum for finest graph */ memCpy (matcptr->lewgtab[0].edwgtab, matcptr->levltab[0].grafdat.edlotax + grafptr->baseval, edgenbr * sizeof (Gnum)); /* Keep edge costs (if any) */ matcptr->levltab[0].grafdat.edlosum = /* Record edge load sum of inversed loads */ graphIelo (&matcptr->levltab[0].grafdat, matcptr->levltab[0].grafdat.edlotax, matcptr->levltab[0].grafdat.edlotax); /* Inverse edge costs for coarsening */ } return (0); } /* This routine computes a matching from ** the current state of the matching structure. ** It returns: ** - >=0 : size of matching. ** - <0 : on error. */ Anum archDeco2BuildMatchMate ( ArchDeco2BuildMatch * restrict const matcptr, ArchCoarsenMulti * restrict * restrict const multptr) { const Graph * restrict finegrafptr; const Gnum * restrict fineedwgtax; const Gnum * restrict finevewgtax; const Gnum * restrict fineedgetax; const Gnum * restrict fineverttax; const Gnum * restrict finevendtax; Anum finevertnbr; Gnum * restrict finecoartax; const ArchDeco2Levl * restrict finelevlptr; ArchDeco2Levl * restrict coarlevlptr; ArchCoarsenMulti * restrict coarmulttax; Graph * restrict coargrafptr; Gnum * restrict coaredwgtax; Gnum * restrict coarvewgtax; Gnum coarvewgsum; Gnum coaredwgsum; Gnum coarvertnnd; Gnum coarvertnum; Gnum coarvertsum; /* Sum of all coarse vertices kept in coarsening tree */ Gnum * restrict coarvelotax; Gnum coaredgenum; ArchDeco2BuildHash * restrict coarhashtab; Gnum coarhashmax; Gnum coarhashsiz; Gnum coarhashmsk; Gnum levlmax; Gnum levlnum; levlnum = matcptr->levlnum; finelevlptr = &matcptr->levltab[levlnum]; finevertnbr = finelevlptr->grafdat.vertnbr; if (finevertnbr <= 1) /* This routine is not meant to handle single-vertex graphs */ return (-1); levlmax = matcptr->levlmax; if (++ levlnum >= levlmax) { /* If level array already full */ ArchDeco2BuildLevl * lewgtmp; ArchDeco2Levl * levltmp; levlmax += (levlmax >> 2) + 1; /* Increase size by 25% */ if ((lewgtmp = memRealloc (matcptr->lewgtab, levlmax * sizeof (ArchDeco2BuildLevl))) == NULL) { errorPrint ("archDeco2BuildMatchMate: out of memory (1)"); return (-1); } matcptr->lewgtab = lewgtmp; if ((levltmp = memRealloc (matcptr->levltab, levlmax * sizeof (ArchDeco2Levl))) == NULL) { errorPrint ("archDeco2BuildMatchMate: out of memory (2)"); return (-1); } matcptr->levltab = levltmp; matcptr->levlmax = levlmax; finelevlptr = &levltmp[levlnum - 1]; /* In case array was moved */ } *multptr = /* Provide address of multinode array */ coarmulttax = matcptr->multtab; /* Un-based multinode array */ finecoartax = matcptr->ficotab; /* Un-based fine-to-coarse array */ finegrafptr = &finelevlptr->grafdat; coarlevlptr = &matcptr->levltab[levlnum]; coargrafptr = &coarlevlptr->grafdat; if (graphCoarsen (&finelevlptr->grafdat, coargrafptr, (Gnum **) &finecoartax, (GraphCoarsenMulti **) &coarmulttax, 0, 1.0, GRAPHCOARSENNONE, NULL, NULL, 0, matcptr->contptr) != 0) { errorPrint ("archDeco2BuildMatchMate: cannot coarsen graph"); return (-1); } matcptr->levlnum = levlnum; /* Record new level since coarse graph must be freed */ matcptr->lewgtab[levlnum].edwgtab = NULL; /* Group leader not yet allocated */ for (coarhashsiz = matcptr->hashsiz, coarhashmax = coargrafptr->degrmax * 4; /* Recompute size of hash table */ coarhashsiz < coarhashmax; coarhashsiz *= 2) ; if (coarhashsiz > matcptr->hashsiz) { /* Reallocate hash table if it has to be expanded */ ArchDeco2BuildHash * coarhashtmp; if ((coarhashtmp = memRealloc (matcptr->hashtab, coarhashsiz * sizeof (ArchDeco2BuildHash))) == NULL) { errorPrint ("archDeco2BuildMatchMate: out of memory (3)"); return (-1); } matcptr->hashtab = coarhashtmp; matcptr->hashsiz = coarhashsiz; } coarhashmsk = coarhashsiz - 1; coarhashtab = matcptr->hashtab; memSet (coarhashtab, ~0, coarhashsiz * sizeof (ArchDeco2BuildHash)); /* Initialize hash table area */ if (memAllocGroup ((void **) (void *) &matcptr->lewgtab[levlnum].edwgtab, (size_t) (coargrafptr->edgenbr * sizeof (Gnum)), &matcptr->lewgtab[levlnum].vewgtab, (size_t) (coargrafptr->vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("archDeco2BuildMatchMate: out of memory (4)"); return (-1); } coarvewgtax = matcptr->lewgtab[levlnum].vewgtab - coargrafptr->baseval; coaredwgtax = matcptr->lewgtab[levlnum].edwgtab - coargrafptr->baseval; coarvelotax = coargrafptr->velotax; coarmulttax -= coargrafptr->baseval; finecoartax -= coargrafptr->baseval; fineverttax = finegrafptr->verttax; finevendtax = finegrafptr->vendtax; fineedgetax = finegrafptr->edgetax; finevewgtax = matcptr->lewgtab[levlnum - 1].vewgtab; fineedwgtax = matcptr->lewgtab[levlnum - 1].edwgtab; if (finevewgtax != NULL) /* Fine edge and vertex weight arrays may be NULL */ finevewgtax-= finegrafptr->baseval; if (fineedwgtax != NULL) fineedwgtax-= finegrafptr->baseval; coarvewgsum = coaredwgsum = 0; for (coarvertnum = coaredgenum = coargrafptr->baseval, coarvertnnd = coargrafptr->vertnnd, coarvertsum = 0; coarvertnum < coarvertnnd; coarvertnum ++) { Gnum coaredgetmp; Gnum coarvewgval; /* Aggregated vertex traversal cost */ Gnum coaredwgval; /* Aggregated edge traversal cost */ Gnum finevertnum; int i; if (coarvelotax[coarvertnum] != 0) /* If coarse vertex does not have a zero weight */ coarvertsum ++; /* Account for it in tree */ coaredgetmp = coaredgenum; /* Record edge position in array */ coarvewgval = 0; /* Accumulate coarse vertex traversal costs */ coaredwgval = 0; /* Accumulate coarse edge traversal costs for collapsed edges */ i = 0; do { /* For all fine edges of multinode vertices */ Gnum fineedgenum; finevertnum = coarmulttax[coarvertnum].vertnum[i]; coarvewgval += (finevewgtax != NULL) ? finevewgtax[finevertnum] : 0; /* Accumulate vertex traversal costs */ for (fineedgenum = fineverttax[finevertnum]; fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { Gnum coarvertend; /* Number of coarse vertex which is end of fine edge */ Gnum h; coarvertend = finecoartax[fineedgetax[fineedgenum]]; if (coarvertend != coarvertnum) { /* If not end of collapsed edge */ for (h = (coarvertend * GRAPHCOARSENHASHPRIME) & coarhashmsk; ; h = (h + 1) & coarhashmsk) { if (coarhashtab[h].coarvertnum != coarvertnum) { /* If old slot */ coarhashtab[h].coarvertnum = coarvertnum; /* Mark it in reference array */ coarhashtab[h].coarvertend = coarvertend; coarhashtab[h].coaredgenum = coaredgenum; /* Edge location in coarse graph */ coarhashtab[h].fineedwgmin = (fineedwgtax != NULL) ? fineedwgtax[fineedgenum] : 1; coaredwgtax[coaredgenum] = h; /* Record edge location for summing up */ coaredgenum ++; /* One more edge created */ break; /* Give up hashing */ } if (coarhashtab[h].coarvertend == coarvertend) { /* If coarse edge already exists */ Gnum fineedwgval; fineedwgval = (fineedwgtax != NULL) ? fineedwgtax[fineedgenum] : 1; if (coarhashtab[h].fineedwgmin > fineedwgval) /* Take minimum of edge weights */ coarhashtab[h].fineedwgmin = fineedwgval; break; /* Give up hashing */ } } } else /* If collapsed edge, accumulate traversal cost (twice: once for each arc) */ coaredwgval += (fineedwgtax != NULL) ? fineedwgtax[fineedgenum] : 1; } } while (i ++, finevertnum != coarmulttax[coarvertnum].vertnum[1]); /* Skip to next matched vertex if both vertices not equal */ coarvewgsum += /* Accumulate vertex load sum of coarse graph */ coarvewgtax[coarvertnum] = coarvewgval + coaredwgval; /* Add vertex traversal cost plus edge traversal cost */ #ifdef SCOTCH_DEBUG_ARCH2 if (coaredgenum != coargrafptr->verttax[coarvertnum + 1]) { /* If not same number of coarse edges found */ errorPrint ("archDeco2BuildMatchMate: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ for ( ; coaredgetmp < coaredgenum; coaredgetmp ++) { /* Finalize building of edge traversal cost array */ Gnum h; h = coaredwgtax[coaredgetmp]; /* Replace hash table index with average edge traversal cost */ #ifdef SCOTCH_DEBUG_ARCH2 if (coarhashtab[h].coaredgenum != coaredgetmp) { errorPrint ("archDeco2BuildMatchMate: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ coaredwgsum += coaredwgtax[coaredgetmp] = coarhashtab[h].fineedwgmin; } } matcptr->lewgtab[levlnum].edwgsum = coaredwgsum; matcptr->lewgtab[levlnum].vewgsum = coarvewgsum; matcptr->vertsum += coarvertsum; /* Sum all vertices in coarsening tree */ return (coargrafptr->vertnbr); } /******************************************/ /* */ /* The main routine, which computes the */ /* type-2, decomposition-described target */ /* architecture. */ /* */ /******************************************/ /* This routine collapses the recursive coarsening tree ** into a decomposition-defined tree, by removing single ** vertices that have not been collapsed. Unlike the ** archSubArchBuild3() routine from which it derives, it ** preserves some information on removed single vertices, ** so as to identify the relevant vertices at each level, ** to start distance computations. ** It returns: ** - the first free index in the domain array. */ static Anum archDeco2BuildBuild3 ( ArchDeco2Build3 * restrict const dataptr, /*+ Data area +*/ const ArchSubTree * restrict const treeptr, /*+ Pointer to current node being traversed +*/ const Anum domnnum, /*+ Domain number of current node +*/ const Anum domnidx, /*+ Current first free slot in domain array +*/ const Anum levlnum) /*+ Current tree level +*/ { Anum termnum; const ArchSubTree * son0ptr; const ArchSubTree * son1ptr; const ArchSubTree * sonsptr; Anum levltmp; Anum didxtmp; Gnum vnumidx; ArchSubData * restrict const domntab = dataptr->domntab; ArchDeco2Data * restrict const doextab = dataptr->doextab; ArchSubTerm * restrict const termtab = dataptr->termtab; vnumidx = dataptr->vnumidx ++; /* One more slot for vertex number */ dataptr->vnumtab[vnumidx] = treeptr->vertnum; /* Record vertex number of collapsed node */ son0ptr = treeptr->sonstab[0]; son1ptr = treeptr->sonstab[1]; sonsptr = NULL; levltmp = levlnum - 1; /* Level 0 is finest graph, so proceed in decreasing order */ if (son0ptr != NULL) /* If node is a single node, traverse it without any processing */ sonsptr = son0ptr; if (son1ptr != NULL) sonsptr = (sonsptr != NULL) ? NULL : son1ptr; if (sonsptr != NULL) return (archDeco2BuildBuild3 (dataptr, sonsptr, domnnum, domnidx, levltmp)); domntab[domnidx].domnnum = domnnum; domntab[domnidx].domnsiz = treeptr->domnsiz; domntab[domnidx].domnwgt = treeptr->domnwgt; termnum = domntab[domnidx].termnum = treeptr->termnum; doextab[domnidx].levlnum = levlnum; doextab[domnidx].vnumidx = vnumidx; /* Record index of vertex number for this level */ didxtmp = domnidx + 1; if (son0ptr != NULL) { /* If node is a branch node */ Anum domntmp; domntmp = domnnum * 2; /* Domain number of first son */ domntab[didxtmp].dfatidx = domnidx; domntab[domnidx].dsubidx[0] = didxtmp; didxtmp = archDeco2BuildBuild3 (dataptr, son0ptr, domntmp, didxtmp, levltmp); domntab[didxtmp].dfatidx = domnidx; domntab[domnidx].dsubidx[1] = didxtmp; didxtmp = archDeco2BuildBuild3 (dataptr, son1ptr, domntmp + 1, didxtmp, levltmp); } else { domntab[domnidx].dsubidx[0] = domntab[domnidx].dsubidx[1] = -1; termtab[termnum].domnidx = domnidx; } return (didxtmp); } /* ** This routine builds a type-2 target architecture ** from the given source graph and the optional ** vertex list. If vnumtab is null, all vertices ** are part of the target architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDeco2ArchBuild ( Arch * restrict const archptr, /*+ Decomposition architecture to build +*/ const Graph * const grafptr, /*+ Source graph modeling the architecture +*/ const Gnum vnumnbr, /*+ Number of vertices in list +*/ const Gnum * restrict const vnumtab, /*+ vertex array +*/ Context * const contptr) /*+ Execution context +*/ { ArchDeco2Build3 datadat; /* Data for building decomposition tree */ ArchDeco2BuildMatch matcdat; /* Data for successive matchings */ ArchSubTree * rootptr; ArchSubTree * treetab; ArchSubTree * treetmp; ArchSubTerm * termtab; ArchSubData * domntab; ArchDeco2Data * doextab; Anum domnnbr; /* Number of domains */ Gnum vertnum; Gnum * restrict velotmp; /* Temporary vertex load array */ Anum vnumnum; Gnum * vnumtmp; Anum levlnum; const char * messptr; /* Pointer to error message */ ArchDeco2 * restrict const decoptr = &archptr->data.deco2; const Gnum baseval = grafptr->baseval; const Gnum vertnbr = grafptr->vertnbr; /* Number of terminals in original graph */ const Gnum * restrict const velotab = (grafptr->velotax != NULL) ? grafptr->velotax + baseval : NULL; /* Un-based original vertex load array */ if (baseval != 0) { /* Because of current limitations in archSubArchBuild2() */ errorPrint ("archDeco2ArchBuild: input graph must have base value set to 0"); return (1); } #ifdef SCOTCH_DEBUG_ARCH1 if ((vnumnbr < 0) || (vnumnbr > vertnbr)) { errorPrint ("archDeco2ArchBuild: invalid number of terminal domains"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ archInit (archptr); /* Initialize architecture body */ archptr->clasptr = archClass2 ("deco", 1); /* Set type-2 architecture class */ domnnbr = 2 * vnumnbr - 1; if (memAllocGroup ((void **) (void *) &termtab, (size_t) (vnumnbr * sizeof (ArchSubTerm)), &domntab, (size_t) (domnnbr * sizeof (ArchSubData)), &doextab, (size_t) (domnnbr * sizeof (ArchDeco2Data)), NULL) == NULL) { errorPrint ("archDeco2ArchBuild: out of memory (1)"); return (1); } if ((treetab = memAlloc ((vertnbr + 1) * sizeof (ArchSubTree))) == NULL) { /* TRICK: One more slot to link to coarser array */ errorPrint ("archDeco2ArchBuild: out of memory (2)"); memFree (termtab); /* Free group leader */ return (1); } velotmp = NULL; /* Assume no need for temporary load array */ if (vnumnbr < vertnbr) { /* If restriction of the target architecture */ if ((velotmp = memAlloc (vertnbr * sizeof (Gnum))) == NULL) { /* Create temporary load array */ errorPrint ("archDeco2ArchBuild: out of memory (3)"); memFree (treetab); memFree (termtab); return (1); } memSet (velotmp, 0, vertnbr * sizeof (Gnum)); /* Assume no vertex kept in target architecture */ } treetab ++; /* TRICK: Hide first slot */ for (vertnum = 0; vertnum < vertnbr; vertnum ++) { /* Initialize values for all vertices of original architecture */ treetab[vertnum].domnsiz = treetab[vertnum].domnwgt = 0; treetab[vertnum].termnum = treetab[vertnum].vertnum = ANUMMAX; treetab[vertnum].sonstab[0] = treetab[vertnum].sonstab[1] = NULL; } messptr = NULL; for (vnumnum = 0; vnumnum < vnumnbr; vnumnum ++) { /* For all kept terminal numbers */ Gnum vertnum; /* Terminal number in original architecture */ vertnum = (vnumtab != NULL) ? (vnumtab[vnumnum] - baseval) : vnumnum; /* Un-base vertex number */ if ((vertnum < 0) || (vertnum >= vertnbr)) messptr = "archDeco2ArchBuild: invalid vertex number in vertex list"; else if (treetab[vertnum].domnsiz != 0) messptr = "archDeco2ArchBuild: duplicate vertex number in vertex list"; if (messptr != NULL) { errorPrint (messptr); if (velotmp != NULL) memFree (velotmp); memFree (treetab - 1); memFree (termtab); return (1); } termtab[vnumnum].termnum = vertnum; /* Record number of original terminal number */ if (velotmp != NULL) velotmp[vertnum] = 1; /* Vertex belongs to restricted architecture */ treetab[vertnum].domnsiz = 1; /* Here lies one terminal vertex */ treetab[vertnum].domnwgt = (velotab != NULL) ? velotab[vertnum] : 1; treetab[vertnum].vertnum = vertnum; /* Record number of original vertex in original graph */ treetab[vertnum].termnum = vnumnum; /* Sub-architecture terminal number in original architecture */ } if (archDeco2BuildMatchInit (&matcdat, grafptr, contptr) != 0) { /* Initialize matching structure */ errorPrint ("archDeco2ArchBuild: cannot initialize matching structure"); if (velotmp != NULL) memFree (velotmp); memFree (treetab - 1); memFree (termtab); return (1); } if (velotmp != NULL) { /* If restricted architecture, keep track of present vertices */ matcdat.levltab[0].grafdat.velotax = velotmp - baseval; /* Graph is cloned, so velotax can be modified */ matcdat.levltab[0].grafdat.velosum = vnumnbr; } decoptr->baseval = baseval; decoptr->termnbr = vnumnbr; decoptr->termtab = termtab; /* From now on, termtab will be freed on its own */ decoptr->domnnbr = domnnbr; decoptr->domntab = domntab; decoptr->doextab = doextab; #ifdef SCOTCH_DEBUG_ARCH1 decoptr->vnumtab = NULL; #endif /* SCOTCH_DEBUG_ARCH1 */ matcdat.vertsum = vnumnbr; /* Account for kept vertices of original graph */ rootptr = archSubArchBuild2 (&matcdat, (Anum (*) (void *, ArchCoarsenMulti * restrict *)) archDeco2BuildMatchMate, treetab, vnumnbr); if (velotmp != NULL) /* Temporary vertex load array will no longer be necessary */ memFree (velotmp); if (rootptr == NULL) { errorPrint ("archDeco2ArchBuild: cannot create sub-architecture (1)"); archDeco2BuildMatchExit (&matcdat); memFree (treetab - 1); return (1); } #ifdef SCOTCH_DEBUG_ARCH2 if (rootptr->domnsiz != vnumnbr) { errorPrint ("archDeco2ArchBuild: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ for (levlnum = matcdat.levlnum; levlnum >= 0; levlnum --) { ArchDeco2BuildLevl * lewgptr; ArchDeco2Levl * levlptr; lewgptr = &matcdat.lewgtab[levlnum]; levlptr = &matcdat.levltab[levlnum]; if (lewgptr->vewgtab != NULL) { memCpy (levlptr->grafdat.velotax + levlptr->grafdat.baseval, lewgptr->vewgtab, levlptr->grafdat.vertnbr * sizeof (Gnum)); levlptr->grafdat.velosum = lewgptr->vewgsum; } else { levlptr->grafdat.velotax = NULL; levlptr->grafdat.velosum = levlptr->grafdat.vertnbr; } if (lewgptr->edwgtab != NULL) { memCpy (levlptr->grafdat.edlotax + levlptr->grafdat.baseval, lewgptr->edwgtab, levlptr->grafdat.edgenbr * sizeof (Gnum)); levlptr->grafdat.edlosum = lewgptr->edwgsum; memFree (lewgptr->edwgtab); lewgptr->edwgtab = NULL; } else { levlptr->grafdat.edlotax = NULL; levlptr->grafdat.edlosum = levlptr->grafdat.edgenbr; } #ifdef SCOTCH_DEBUG_ARCH2 if (graphCheck (&levlptr->grafdat) != 0) { errorPrint ("archDeco2ArchBuild: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ if ((levlptr->wdiaval = graphDiamPV (&levlptr->grafdat, matcdat.contptr)) < 0) { errorPrint ("archDeco2ArchBuild: cannot compute graph diameter"); return (1); } if (levlptr->wdiaval < 1) /* No division by zero allowed */ levlptr->wdiaval = 1; } if ((vnumtmp = memAlloc (matcdat.vertsum * sizeof (Gnum))) == NULL) { errorPrint ("archDeco2ArchBuild: out of memory (4)"); archDeco2BuildMatchExit (&matcdat); memFree (treetab - 1); return (1); } decoptr->vnumnbr = matcdat.vertsum; decoptr->vnumtab = vnumtmp; datadat.domntab = domntab; datadat.doextab = doextab; datadat.termtab = termtab; datadat.vnumtab = vnumtmp; datadat.vnumidx = 0; /* Vertex number index array is empty */ if (archDeco2BuildBuild3 (&datadat, rootptr, 1, 0, matcdat.levlnum) != domnnbr) { errorPrint ("archDeco2ArchBuild: cannot create sub-architecture (2)"); memFree (treetab - 1); return (1); } domntab[0].dfatidx = -1; /* Set index of root father as -1 */ #ifdef SCOTCH_DEBUG_ARCH2 if (datadat.vnumidx != matcdat.vertsum) { errorPrint ("archDeco2ArchBuild: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ for (treetab --; treetab != NULL; treetab = treetmp) { /* Free all tree blocks */ treetmp = treetab[0].sonstab[0]; /* Get pointer to next tree block */ memFree (treetab); } decoptr->levlmax = matcdat.levlnum; /* Save maximum level number */ decoptr->levltab = matcdat.levltab; /* Reuse graph array for architecture */ matcdat.levltab = NULL; /* Will not be freed in archDeco2BuildMatchExit() */ archDeco2BuildMatchExit (&matcdat); /* Free data structures used for matching */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_build2.h000066400000000000000000000144471514310134000262560ustar00rootroot00000000000000/* Copyright 2015,2016,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_build2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the type-2 decomposition-described **/ /** architecture building routine. **/ /** **/ /** DATES : # Version 6.0 : from : 02 may 2015 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 22 aug 2019 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The internal type and structure definitions. */ #ifdef SCOTCH_ARCH_BUILD2 /*+ Ancillary structure to avoid passing too many parameters recursively in the archDeco2Build3() routine. +*/ typedef struct ArchDeco2Build3_ { ArchSubData * domntab; /*+ Domain array to fill [domnnbr] +*/ ArchDeco2Data * doextab; /*+ Extended domain array to fill [domnnbr] +*/ ArchSubTerm * termtab; /*+ Terminal domain array to fill [termnbr] +*/ Gnum * vnumtab; /*+ Level vertex index array +*/ Anum vnumidx; /*+ Current first free index in index array +*/ } ArchDeco2Build3; /*+ Hash table cell to find coarse vertex ends during the computation of edge costs in the coarsened graph. +*/ typedef struct ArchDeco2BuildHash_ { Gnum coarvertnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum coarvertend; /*+ Other end vertex number +*/ Gnum coaredgenum; /*+ Index of corresponding edge in graph +*/ Gnum fineedwgmin; /*+ Minimum of all fine edge weights +*/ } ArchDeco2BuildHash; /*+ Communication vertex and edge weights for graph coarsenings. Edge array is the group leader because there are no vertex traversal costs at level 0, while there may be edge traversal costs. +*/ typedef struct ArchDeco2BuildLevl_ { Gnum * edwgtab; /*+ Edge load array; TRICK: group leader +*/ Gnum * vewgtab; /*+ Vertex load array +*/ Gnum edwgsum; /*+ Sum of edge weights +*/ Gnum vewgsum; /*+ Sum of vertex weights +*/ } ArchDeco2BuildLevl; /*+ Matching structure for graph coarsenings. +*/ typedef struct ArchDeco2BuildMatch_ { ArchDeco2BuildHash * hashtab; /*+ Hash array for edge coarsening +*/ Gnum hashsiz; /*+ Size of hash data structure +*/ ArchCoarsenMulti * multtab; /*+ Multinode array for all coarsenings +*/ Gnum * ficotab; /*+ Fine-to-coarse array for all coarsenings +*/ ArchDeco2BuildLevl * lewgtab; /*+ Level array for vertex weights +*/ ArchDeco2Levl * levltab; /*+ Level array +*/ Gnum levlmax; /*+ Maximum number of levels in array +*/ Gnum levlnum; /*+ Current number of levels in array +*/ Gnum vertsum; /*+ Sum of all vertices at all levels +*/ Context * contptr; /*+ Execution context +*/ } ArchDeco2BuildMatch; #endif /* SCOTCH_ARCH_BUILD2 */ /* ** The function prototypes. */ #ifdef SCOTCH_ARCH_BUILD2 static int archDeco2BuildMatchInit (ArchDeco2BuildMatch * restrict const, const Graph * restrict const, Context * const); static void archDeco2BuildMatchExit (ArchDeco2BuildMatch * restrict const); static Anum archDeco2BuildMatchMate (ArchDeco2BuildMatch * restrict const, ArchCoarsenMulti * restrict * restrict const); #endif /* SCOTCH_ARCH_BUILD2 */ int archDeco2ArchBuild (Arch * const, const Graph * const, const Gnum, const Gnum * restrict const, Context * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmplt.c000066400000000000000000000316311514310134000262010ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2011,2015,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmplt.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the complete graph **/ /** target architecture. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 08 sep 1995 **/ /** # Version 3.1 : from : 11 jun 1996 **/ /** to : 11 jun 1996 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 13 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 09 jan 2004 **/ /** to : 10 mar 2005 **/ /** # Version 5.1 : from : 19 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 02 may 2015 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_cmplt.h" /******************************************/ /* */ /* These are the complete graph routines. */ /* */ /******************************************/ /* This routine loads the complete ** graph architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archCmpltArchLoad ( ArchCmplt * restrict const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchCmplt) > sizeof (ArchDummy)) || (sizeof (ArchCmpltDom) > sizeof (ArchDomDummy))) { errorPrint ("archCmpltArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &archptr->termnbr) != 1) || (archptr->termnbr < 1)) { errorPrint ("archCmpltArchLoad: bad input"); return (1); } return (0); } /* This routine saves the ** complete graph architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archCmpltArchSave ( const ArchCmplt * const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchCmplt) > sizeof (ArchDummy)) || (sizeof (ArchCmpltDom) > sizeof (ArchDomDummy))) { errorPrint ("archCmpltArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING "\n", (Anum) archptr->termnbr) == EOF) { errorPrint ("archCmpltArchSave: bad output"); return (1); } return (0); } /* This routine initializes the matching ** data structure according to the number ** of vertices to be managed. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ int archCmpltMatchInit ( ArchCmpltMatch * restrict const matcptr, const ArchCmplt * restrict const archptr) { Anum vertnbr; vertnbr = archptr->termnbr; if ((matcptr->multtab = memAlloc (((vertnbr + 1) >> 1) * sizeof (ArchCoarsenMulti))) == NULL) { /* In case vertnbr is odd */ errorPrint ("archCmpltMatchInit: out of memory"); return (1); } matcptr->vertnbr = vertnbr; matcptr->passnum = 0; return (0); } /* This routine frees the matching data ** structure. ** It returns: ** - void : in all cases. */ void archCmpltMatchExit ( ArchCmpltMatch * restrict const matcptr) { memFree (matcptr->multtab); } /* This routine computes a matching from ** the current state of the matching structure. ** It returns: ** - >=0 : size of matching. ** - <0 : on error. */ Anum archCmpltMatchMate ( ArchCmpltMatch * restrict const matcptr, ArchCoarsenMulti ** restrict const multptr) { ArchCoarsenMulti * restrict coarmulttab; Anum coarvertmax; /* Maximum coarse vertex index to be processed for matching */ Anum coarvertnum; Anum finevertnbr; Anum finevertnum; Anum passnum; finevertnbr = matcptr->vertnbr; if (finevertnbr <= 1) return (-1); coarvertmax = finevertnbr >> 1; /* One less slot when finevertnbr is odd */ coarmulttab = matcptr->multtab; coarvertnum = finevertnum = 0; passnum = matcptr->passnum; if ((finevertnbr & passnum) != 0) { /* If finevertnbr is odd and old passnum == 1 */ coarmulttab[coarvertnum].vertnum[0] = /* First coarse vertex is single multinode */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; coarvertnum ++; } for ( ; coarvertnum < coarvertmax; coarvertnum ++) { /* For all even slots */ coarmulttab[coarvertnum].vertnum[0] = finevertnum ++; /* Dimensional splatting */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; } if ((finevertnbr & (passnum ^ 1)) != 0) { /* If finevertnbr is odd and old passnum == 0 */ coarmulttab[coarvertnum].vertnum[0] = /* Last coarse vertex is single multinode */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; coarvertnum ++; } #ifdef SCOTCH_DEBUG_ARCH2 if (coarvertnum != ((finevertnbr + 1) >> 1)) { /* Number of coarse vertices in all cases */ errorPrint ("archCmpltMatchMate: internal error"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ matcptr->vertnbr = coarvertnum; /* Prepare for next mating */ if (finevertnbr & 1) /* Invert pass value if dimension is odd */ matcptr->passnum = passnum; *multptr = coarmulttab; /* Always provide same mating array */ return (coarvertnum); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archCmpltDomNum ( const ArchCmplt * const archptr, const ArchCmpltDom * const domnptr) { return (domnptr->termmin); /* Return vertex number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archCmpltDomTerm ( const ArchCmplt * const archptr, ArchCmpltDom * const domnptr, const ArchDomNum domnnum) { if (domnnum < archptr->termnbr) { /* If valid label */ domnptr->termmin = domnnum; /* Set the domain */ domnptr->termnbr = 1; return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the complete domain. */ Anum archCmpltDomSize ( const ArchCmplt * const archptr, const ArchCmpltDom * const domnptr) { return (domnptr->termnbr); } /* This function returns the average ** distance between two complete ** subdomains. */ Anum archCmpltDomDist ( const ArchCmplt * const archptr, const ArchCmpltDom * const dom0ptr, const ArchCmpltDom * const dom1ptr) { return (((dom0ptr->termmin == dom1ptr->termmin) && /* All domains are at distance 1 */ (dom0ptr->termnbr == dom1ptr->termnbr)) ? 0 : 1); /* If they are different */ } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archCmpltDomFrst ( const ArchCmplt * const archptr, ArchCmpltDom * restrict const domnptr) { domnptr->termmin = 0; domnptr->termnbr = archptr->termnbr; return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archCmpltDomLoad ( const ArchCmplt * const archptr, ArchCmpltDom * restrict const domnptr, FILE * const stream) { Anum termmin; Anum termnbr; if ((intLoad (stream, &termmin) != 1) || (intLoad (stream, &termnbr) != 1) || (termnbr < 1) || ((termnbr + termmin) > archptr->termnbr)) { errorPrint ("archCmpltDomLoad: bad input"); return (1); } domnptr->termmin = termmin; domnptr->termnbr = termnbr; return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archCmpltDomSave ( const ArchCmplt * const archptr, const ArchCmpltDom * const domnptr, FILE * const stream) { if (fprintf (stream, ANUMSTRING " " ANUMSTRING " ", (Anum) domnptr->termmin, (Anum) domnptr->termnbr) == EOF) { errorPrint ("archCmpltDomSave: bad output"); return (1); } return (0); } /* This function tries to split a complete ** graph domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archCmpltDomBipart ( const ArchCmplt * const archptr, const ArchCmpltDom * const domnptr, ArchCmpltDom * restrict const dom0ptr, ArchCmpltDom * restrict const dom1ptr) { if (domnptr->termnbr <= 1) /* Return if cannot bipartition more */ return (1); dom0ptr->termmin = domnptr->termmin; /* Bipartition vertices */ dom0ptr->termnbr = domnptr->termnbr / 2; dom1ptr->termmin = domnptr->termmin + dom0ptr->termnbr; dom1ptr->termnbr = domnptr->termnbr - dom0ptr->termnbr; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archCmpltDomIncl ( const ArchCmplt * const archptr, const ArchCmpltDom * const dom0ptr, const ArchCmpltDom * const dom1ptr) { if ((dom1ptr->termmin >= dom0ptr->termmin) && ((dom1ptr->termmin + dom1ptr->termnbr) <= (dom0ptr->termmin + dom0ptr->termnbr))) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmplt.h000066400000000000000000000153071514310134000262100ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmplt.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the complete graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 24 jul 1995 **/ /** # Version 3.1 : from : 11 jun 1996 **/ /** to : 11 jun 1996 **/ /** # Version 3.2 : from : 20 sep 1996 **/ /** to : 13 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 09 jan 2004 **/ /** to : 09 jan 2004 **/ /** # Version 5.1 : from : 19 jan 2008 **/ /** to : 19 jan 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 18 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_CMPLT_H_STRUCT #define ARCH_CMPLT_H_STRUCT /*+ The complete graph definitions. +*/ typedef struct ArchCmplt_ { Anum termnbr; /*+ Number of vertices +*/ } ArchCmplt; typedef struct ArchCmpltDom_ { Anum termmin; /*+ Minimum vertex number +*/ Anum termnbr; /*+ Number of vertices +*/ } ArchCmpltDom; typedef struct ArchCmpltMatch_ { ArchCoarsenMulti * multtab; /*+ Multinode array for all coarsenings +*/ Anum vertnbr; /*+ Number of vertices in fine graph +*/ Anum passnum; /*+ Pass number +*/ } ArchCmpltMatch; #endif /* ARCH_CMPLT_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_CMPLT_H_PROTO #define ARCH_CMPLT_H_PROTO int archCmpltArchLoad (ArchCmplt * restrict const, FILE * restrict const); int archCmpltArchSave (const ArchCmplt * const, FILE * restrict const); #define archCmpltArchFree NULL int archCmpltMatchInit (ArchCmpltMatch * restrict const, const ArchCmplt * restrict const); void archCmpltMatchExit (ArchCmpltMatch * restrict const); Anum archCmpltMatchMate (ArchCmpltMatch * restrict const, ArchCoarsenMulti ** restrict const); ArchDomNum archCmpltDomNum (const ArchCmplt * const, const ArchCmpltDom * const); int archCmpltDomTerm (const ArchCmplt * const, ArchCmpltDom * restrict const, const ArchDomNum); Anum archCmpltDomSize (const ArchCmplt * const, const ArchCmpltDom * const); #define archCmpltDomWght archCmpltDomSize Anum archCmpltDomDist (const ArchCmplt * const, const ArchCmpltDom * const, const ArchCmpltDom * const); int archCmpltDomFrst (const ArchCmplt * const, ArchCmpltDom * const); int archCmpltDomLoad (const ArchCmplt * const, ArchCmpltDom * const, FILE * const); int archCmpltDomSave (const ArchCmplt * const, const ArchCmpltDom * const, FILE * const); int archCmpltDomBipart (const ArchCmplt * const, const ArchCmpltDom * const, ArchCmpltDom * restrict const, ArchCmpltDom * restrict const); int archCmpltDomIncl (const ArchCmplt * const, const ArchCmpltDom * const, const ArchCmpltDom * const); #endif /* ARCH_CMPLT_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmplt_mpi.c000066400000000000000000000061451514310134000270500ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmplt_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the complete graph **/ /** target architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_CMPLT_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_cmplt_mpi.h" /******************************************/ /* */ /* These are the complete graph routines. */ /* */ /******************************************/ /* This function creates the MPI_Datatype for ** the complete graph domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archCmpltDomMpiType ( const ArchCmplt * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (2, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmplt_mpi.h000066400000000000000000000051561514310134000270560ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmplt_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the complete graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archCmpltDomMpiType (const ArchCmplt * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmpltw.c000066400000000000000000000414351514310134000263730ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2011,2014,2015,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmpltw.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the weighted **/ /** complete graph target architecture. **/ /** **/ /** DATES : # Version 5.1 : from : 11 dec 2007 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 12 apr 2015 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 20 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "arch_cmpltw.h" /******************************************/ /* */ /* These are the complete graph routines. */ /* */ /******************************************/ /* This routine builds a complete weighted ** graph architecture from the given load array. ** The load array is sorted recursively in such ** a way that recusive bipartitions of subdomains ** yield parts that are not too much imbalanced. ** It returns: ** - 0 : if the architecture has been successfully built. ** - !0 : on error. */ static void archCmpltwArchBuild3 ( ArchCmpltwLoad * restrict const velotab, ArchCmpltwLoad * restrict const vesotab, Anum vertnbr, Anum velosum) { Anum vel0sum; Anum vel1sum; Anum ver0nbr; Anum ver1nbr; Anum ver0num; Anum ver1num; Anum vertnum; ver0num = ver1num = vertnbr - 1; vel0sum = velotab[ver0num --].veloval; vel1sum = 0; for (vertnum = ver0num; vertnum >= 0; vertnum --) { if (vel1sum < vel0sum) { vel1sum += velotab[vertnum].veloval; vesotab[ver1num --] = velotab[vertnum]; } else { vel0sum += velotab[vertnum].veloval; velotab[ver0num --] = velotab[vertnum]; } } if (vel0sum >= vel1sum) { ver0nbr = vertnbr - ver0num - 1; ver1nbr = vertnbr - ver0nbr; memMov (velotab, velotab + ver1nbr, ver0nbr * sizeof (ArchCmpltwLoad)); memCpy (velotab + ver0nbr, vesotab + ver0nbr, ver1nbr * sizeof (ArchCmpltwLoad)); } else { Anum velotmp; ver0nbr = vertnbr - ver1num - 1; ver1nbr = vertnbr - ver0nbr; memCpy (velotab, vesotab + ver1nbr, ver0nbr * sizeof (ArchCmpltwLoad)); velotmp = vel0sum; vel0sum = vel1sum; vel1sum = velotmp; } if (ver0nbr > 2) archCmpltwArchBuild3 (velotab, vesotab, ver0nbr, vel0sum); if (ver1nbr > 2) archCmpltwArchBuild3 (velotab + ver0nbr, vesotab + ver0nbr, ver1nbr, vel1sum); } static int archCmpltwArchBuild2 ( ArchCmpltw * restrict const archptr) { ArchCmpltwLoad * restrict vesotab; /* Auxiliary sort array for weighted vertices */ if (archptr->vertnbr < 3) /* No need to sort if less than 3 vertices */ return (0); if ((vesotab = (ArchCmpltwLoad *) memAlloc (archptr->vertnbr * sizeof (ArchCmpltwLoad))) == NULL) { errorPrint ("archCmpltwArchBuild2: out of memory"); memFree (archptr->velotab); archptr->velotab = NULL; return (1); } intSort2asc2 (archptr->velotab, archptr->vertnbr); /* Sort load array by both keys to be portable across sorting implementations */ archCmpltwArchBuild3 (archptr->velotab, vesotab, archptr->vertnbr, archptr->velosum); memFree (vesotab); return (0); } int archCmpltwArchBuild ( ArchCmpltw * restrict const archptr, const Anum vertnbr, const Anum * restrict const velotab) { ArchCmpltwLoad * vecwtab; Anum velosum; Anum vertnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchCmpltw) > sizeof (ArchDummy)) || (sizeof (ArchCmpltwDom) > sizeof (ArchDomDummy))) { errorPrint ("archCmpltwArchBuild: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (vertnbr <= 0) { errorPrint ("archCmpltwArchBuild: invalid parameters (1)"); return (1); } if ((vecwtab = (ArchCmpltwLoad *) memAlloc (vertnbr * sizeof (ArchCmpltwLoad))) == NULL) { errorPrint ("archCmpltwArchBuild: out of memory"); return (1); } for (vertnum = 0, velosum = 0; vertnum < vertnbr; vertnum ++) { /* Fill vertex load array */ Anum veloval; veloval = velotab[vertnum]; if (veloval <= 0) { /* Target weights cannot be negative nor null */ errorPrint ("archCmpltwArchBuild: invalid parameters (2)"); memFree (vecwtab); return (1); } velosum += veloval; vecwtab[vertnum].veloval = veloval; vecwtab[vertnum].vertnum = vertnum; } archptr->vertnbr = (Anum) vertnbr; archptr->velotab = vecwtab; archptr->velosum = (Anum) velosum; return (archCmpltwArchBuild2 (archptr)); } /* This routine loads the weighted complete ** graph architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archCmpltwArchLoad ( ArchCmpltw * restrict const archptr, FILE * restrict const stream) { ArchCmpltwLoad * vecwtab; Anum velosum; long vertnbr; long vertnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchCmpltw) > sizeof (ArchDummy)) || (sizeof (ArchCmpltwDom) > sizeof (ArchDomDummy))) { errorPrint ("archCmpltwArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((fscanf (stream, "%ld", &vertnbr) != 1) || (vertnbr < 1)) { errorPrint ("archCmpltwArchLoad: bad input (1)"); return (1); } if ((vecwtab = (ArchCmpltwLoad *) memAlloc (vertnbr * sizeof (ArchCmpltwLoad))) == NULL) { errorPrint ("archCmpltwArchLoad: out of memory"); return (1); } for (vertnum = 0, velosum = 0; vertnum < vertnbr; vertnum ++) { long velotmp; Anum veloval; if ((fscanf (stream, "%ld", &velotmp) != 1) || (velotmp < 1)) { errorPrint ("archCmpltwArchLoad: bad input (2)"); return (1); } veloval = (Anum) velotmp; if (veloval <= 0) { /* Target weights cannot be negative nor null */ errorPrint ("archCmpltwArchLoad: bad input (3)"); memFree (vecwtab); return (1); } velosum += veloval; vecwtab[vertnum].veloval = veloval; vecwtab[vertnum].vertnum = vertnum; } archptr->vertnbr = (Anum) vertnbr; archptr->velotab = vecwtab; archptr->velosum = (Anum) velosum; return (archCmpltwArchBuild2 (archptr)); } /* This routine saves the weighted ** complete graph architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archCmpltwArchSave ( const ArchCmpltw * const archptr, FILE * restrict const stream) { Anum vertnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchCmpltw) > sizeof (ArchDummy)) || (sizeof (ArchCmpltwDom) > sizeof (ArchDomDummy))) { errorPrint ("archCmpltwArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING, (Anum) archptr->vertnbr) == EOF) { errorPrint ("archCmpltwArchSave: bad output (1)"); return (1); } for (vertnum = 0; vertnum < archptr->vertnbr; vertnum ++) { /* For all weights to output */ Anum verttmp; for (verttmp = 0; verttmp < archptr->vertnbr; verttmp ++) { /* For all vertex indices: O(n^2) loop but we don't really care */ if (archptr->velotab[verttmp].vertnum == vertnum) { if (fprintf (stream, " " ANUMSTRING, (Anum) archptr->velotab[verttmp].veloval) == EOF) { errorPrint ("archCmpltwArchSave: bad output (2)"); return (1); } break; } if (verttmp == archptr->vertnbr) { errorPrint ("archCmpltwArchSave: internal error"); return (1); } } } if (fprintf (stream, "\n") == EOF) { errorPrint ("archCmpltwArchSave: bad output (3)"); return (1); } return (0); } /* This routine frees the weighted complete ** graph architecture data structures. ** It returns: ** - 0 : if the architecture has been successfully freed. ** - !0 : on error. */ int archCmpltwArchFree ( ArchCmpltw * const archptr) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchCmpltw) > sizeof (ArchDummy)) || (sizeof (ArchCmpltwDom) > sizeof (ArchDomDummy))) { errorPrint ("archCmpltwArchFree: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (archptr->velotab != NULL) { memFree (archptr->velotab); archptr->velotab = NULL; } return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archCmpltwDomNum ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const domnptr) { return (archptr->velotab[domnptr->vertmin].vertnum); /* Return vertex number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archCmpltwDomTerm ( const ArchCmpltw * const archptr, ArchCmpltwDom * const domnptr, const ArchDomNum domnnum) { if (domnnum < archptr->vertnbr) { /* If valid label */ Anum vertnum; for (vertnum = 0; vertnum < archptr->vertnbr; vertnum ++) { /* Search for terminal domain index matching vertex label */ if (archptr->velotab[vertnum].vertnum == domnnum) break; } #ifdef SCOTCH_DEBUG_ARCH2 if (vertnum == archptr->vertnbr) { /* If index not found */ errorPrint ("archCmpltwDomTerm: internal error"); return (2); } #endif /* SCOTCH_DEBUG_ARCH2 */ domnptr->vertmin = vertnum; /* Set the domain */ domnptr->vertnbr = 1; domnptr->veloval = archptr->velotab[vertnum].veloval; return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the complete domain. */ Anum archCmpltwDomSize ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const domnptr) { return (domnptr->vertnbr); } /* This function returns the weight of ** the complete domain. */ Anum archCmpltwDomWght ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const domnptr) { return (domnptr->veloval); } /* This function returns the average ** distance between two complete ** subdomains. */ Anum archCmpltwDomDist ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const dom0ptr, const ArchCmpltwDom * const dom1ptr) { return (((dom0ptr->vertmin == dom1ptr->vertmin) && /* All domains are at distance 1 */ (dom0ptr->vertnbr == dom1ptr->vertnbr)) ? 0 : 1); /* If they are different */ } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archCmpltwDomFrst ( const ArchCmpltw * const archptr, ArchCmpltwDom * restrict const domnptr) { domnptr->vertmin = 0; domnptr->vertnbr = archptr->vertnbr; domnptr->veloval = archptr->velosum; return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archCmpltwDomLoad ( const ArchCmpltw * const archptr, ArchCmpltwDom * restrict const domnptr, FILE * const stream) { long vertmin; long vertnbr; Anum vertnum; Anum vertnnd; Anum velosum; if ((fscanf (stream, "%ld%ld", &vertmin, &vertnbr) != 2) || (vertnbr < 1) || (vertnbr + vertmin > (long) archptr->vertnbr)) { errorPrint ("archCmpltwDomLoad: bad input"); return (1); } domnptr->vertmin = (Anum) vertmin; domnptr->vertnbr = (Anum) vertnbr; for (vertnum = domnptr->vertmin, vertnnd = vertnum + domnptr->vertnbr, velosum = 0; vertnum < vertnnd; vertnum ++) velosum += archptr->velotab[vertnum].veloval; domnptr->veloval += velosum; return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archCmpltwDomSave ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const domnptr, FILE * const stream) { if (fprintf (stream, ANUMSTRING " " ANUMSTRING " ", (Anum) domnptr->vertmin, (Anum) domnptr->vertnbr) == EOF) { errorPrint ("archCmpltwDomSave: bad output"); return (1); } return (0); } /* This function tries to split a complete ** graph domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archCmpltwDomBipart ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const domnptr, ArchCmpltwDom * restrict const dom0ptr, ArchCmpltwDom * restrict const dom1ptr) { Anum vertnum; Anum velosum1; Anum velosum2; /* Half of overall load sum */ if (domnptr->vertnbr <= 1) /* Return if cannot bipartition more */ return (1); vertnum = domnptr->vertmin + domnptr->vertnbr - 1; velosum1 = (Anum) archptr->velotab[vertnum].veloval; velosum2 = domnptr->veloval / 2; for (vertnum --; vertnum > domnptr->vertmin; vertnum --) { Anum velotmp; velotmp = velosum1 + (Anum) archptr->velotab[vertnum].veloval; if (velotmp > velosum2) /* Domain 1 is always the least loaded */ break; velosum1 = velotmp; } dom0ptr->vertmin = domnptr->vertmin; /* Bipartition vertices */ dom1ptr->vertmin = vertnum + 1; dom0ptr->vertnbr = dom1ptr->vertmin - domnptr->vertmin; dom1ptr->vertnbr = domnptr->vertnbr - dom0ptr->vertnbr; dom0ptr->veloval = domnptr->veloval - velosum1; dom1ptr->veloval = velosum1; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archCmpltwDomIncl ( const ArchCmpltw * const archptr, const ArchCmpltwDom * const dom0ptr, const ArchCmpltwDom * const dom1ptr) { if ((dom1ptr->vertmin >= dom0ptr->vertmin) && ((dom1ptr->vertmin + dom1ptr->vertnbr) <= (dom0ptr->vertmin + dom0ptr->vertnbr))) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmpltw.h000066400000000000000000000136141514310134000263760ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2011,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmpltw.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the weighted complete graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 5.1 : from : 11 dec 2007 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 18 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_CMPLTW_H_STRUCT #define ARCH_CMPLTW_H_STRUCT /*+ The weighted target vertex. Since Anum's are INT's, they can be sorted, by means of the intSort2asc1 routine. +*/ typedef struct ArchCmpltwLoad_ { Anum veloval; /*+ Vertex load +*/ Anum vertnum; /*+ Vertex index +*/ } ArchCmpltwLoad; /*+ The weighted complete graph definitions. +*/ typedef struct ArchCmpltw_ { Anum vertnbr; /*+ Number of vertices +*/ ArchCmpltwLoad * velotab; /*+ Vertex index array +*/ Anum velosum; /*+ Sum of all weights +*/ } ArchCmpltw; /*+ The weighted domain structure. +*/ typedef struct ArchCmpltwDom_ { Anum vertmin; /*+ Minimum vertex number +*/ Anum vertnbr; /*+ Number of vertices +*/ Anum veloval; /*+ Weight of subdomain +*/ } ArchCmpltwDom; #define archCmpltwMatch archCmpltMatch #endif /* ARCH_CMPLTW_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_CMPLTW_H_PROTO #define ARCH_CMPLTW_H_PROTO int archCmpltwArchBuild (ArchCmpltw * restrict const archptr, const Anum, const Anum * restrict const); int archCmpltwArchLoad (ArchCmpltw * restrict const, FILE * restrict const); int archCmpltwArchSave (const ArchCmpltw * const, FILE * restrict const); int archCmpltwArchFree (ArchCmpltw * restrict const); #define archCmpltwMatchInit archCmpltMatchInit #define archCmpltwMatchExit archCmpltMatchExit #define archCmpltwMatchMate archCmpltMatchMate ArchDomNum archCmpltwDomNum (const ArchCmpltw * const, const ArchCmpltwDom * const); int archCmpltwDomTerm (const ArchCmpltw * const, ArchCmpltwDom * restrict const, const ArchDomNum); Anum archCmpltwDomSize (const ArchCmpltw * const, const ArchCmpltwDom * const); Anum archCmpltwDomWght (const ArchCmpltw * const, const ArchCmpltwDom * const); Anum archCmpltwDomDist (const ArchCmpltw * const, const ArchCmpltwDom * const, const ArchCmpltwDom * const); int archCmpltwDomFrst (const ArchCmpltw * const, ArchCmpltwDom * const); int archCmpltwDomLoad (const ArchCmpltw * const, ArchCmpltwDom * const, FILE * const); int archCmpltwDomSave (const ArchCmpltw * const, const ArchCmpltwDom * const, FILE * const); int archCmpltwDomBipart (const ArchCmpltw * const, const ArchCmpltwDom * const, ArchCmpltwDom * restrict const, ArchCmpltwDom * restrict const); int archCmpltwDomIncl (const ArchCmpltw * const, const ArchCmpltwDom * const, const ArchCmpltwDom * const); #endif /* ARCH_CMPLTW_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmpltw_mpi.c000066400000000000000000000062301514310134000272320ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmpltw_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the weighted **/ /** complete graph target architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_CMPLTW_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_cmpltw_mpi.h" /*****************************************/ /* */ /* These are the weighted complete graph */ /* routines. */ /* */ /*****************************************/ /* This function creates the MPI_Datatype for ** the weighted complete graph domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archCmpltwDomMpiType ( const ArchCmpltw * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (3, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_cmpltw_mpi.h000066400000000000000000000051601514310134000272400ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_cmpltw_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the weighted complete graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archCmpltwDomMpiType (const ArchCmpltw * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco.c000066400000000000000000000544341514310134000260020ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the decomposition- **/ /** defined target architecture. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 14 sep 1995 **/ /** # Version 3.1 : from : 20 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 11 sep 1996 **/ /** to : 28 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 17 may 1999 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 10 mar 2005 **/ /** # Version 5.0 : from : 10 sep 2007 **/ /** to : 28 feb 2008 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 apr 2019 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_deco.h" #include "arch_deco2.h" /***************************************/ /* */ /* These are the decomposition-defined */ /* architecture routines. */ /* */ /***************************************/ /* This routine builds a compiled ** decomposition-defined architecture ** from the raw terminal tables that are ** passed to it. ** It returns: ** - 0 : if the decomposition has been successfully computed. ** - !0 : on error. */ int archDecoArchBuild2 ( ArchDeco * restrict const archptr, /*+ Architecture to build +*/ const Anum termdomnbr, /*+ Number of terminal domains (ie processors) +*/ const Anum termdommax, /*+ Maximum domain number given to a terminal domain +*/ const ArchDecoTermVert * const termverttab, /*+ Terminal vertex array +*/ const Anum * const termdisttab) /*+ Terminal distance map +*/ { Anum i, j, k; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchDeco) > sizeof (ArchDummy)) || (sizeof (ArchDecoDom) > sizeof (ArchDomDummy))) { errorPrint ("archDecoArchBuild2: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ /* ,finegrafptr, &coargrafdat, &coarmulttab, 0, 1.0, NULL, NULL, 0, NULL) != 0) { */ if (memAllocGroup ((void **) (void *) &archptr->domverttab, (size_t) (termdommax * sizeof (ArchDecoVert)), &archptr->domdisttab, (size_t) ((((termdommax * (termdommax - 1)) / 2) + 1) * sizeof (Anum)), NULL) == NULL) { errorPrint ("archDecoArchBuild2: out of memory"); return (1); } archptr->flagval = ARCHDECOFREE; archptr->domtermnbr = termdomnbr; archptr->domvertnbr = termdommax; for (i = 0; i < termdommax; i ++) { archptr->domverttab[i].labl = ARCHDOMNOTTERM; /* Assume domain is not a terminal */ archptr->domverttab[i].size = 0; /* Assume domain is not used (yet) */ archptr->domverttab[i].wght = 0; /* Assume domain is not used (yet) */ } for (i = 0; i < termdomnbr; i ++) { /* Set terminal data of all declared terminals */ #ifdef SCOTCH_DEBUG_ARCH1 if (termverttab[i].num > termdommax) { /* If incorrect maximum terminal number */ errorPrint ("archDecoArchBuild2: bad maximum terminal"); archDecoArchFree (archptr); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ archptr->domverttab[termverttab[i].num - 1].labl = termverttab[i].labl; archptr->domverttab[termverttab[i].num - 1].size = 1; archptr->domverttab[termverttab[i].num - 1].wght = termverttab[i].wght; } for (i = termdommax - 1; i > 0; i --) { /* Accumulate data from terminals to root */ j = ((i - 1) >> 1); if (archptr->domverttab[i].labl != ARCHDOMNOTTERM) { if ((archptr->domverttab[j].labl == ARCHDOMNOTTERM) || /* Get smallest label */ (archptr->domverttab[j].labl > archptr->domverttab[i].labl)) archptr->domverttab[j].labl = archptr->domverttab[i].labl; archptr->domverttab[j].size += archptr->domverttab[i].size; archptr->domverttab[j].wght += archptr->domverttab[i].wght; } } #ifdef SCOTCH_DEBUG_ARCH1 if (archptr->domverttab[0].size != termdomnbr) { /* If incorrect accumulation */ errorPrint ("archDecoArchBuild2: bad terminal count"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ memSet (archptr->domdisttab, 0, termdommax * (termdommax - 1) * sizeof (Anum) / 2); /* Assume distance is not known */ for (i = 1, k = 0; i < termdomnbr; i ++) { /* Read the terminal distance map */ for (j = 0; j < i; j ++, k ++) archDecoArchDist (archptr, termverttab[i].num, termverttab[j].num) = termdisttab[k]; } for (j = termdommax; j > 0; j --) { /* Loop on domains */ if (archDecoArchSize (archptr, j) == 0) /* If domain is unused, skip it */ continue; for (i = termdommax; i > j; i --) { /* Double loop on distance array values */ if (archDecoArchSize (archptr, i) == 0) /* If domain is unused, skip it */ continue; if (archDecoArchSize (archptr, i) > 1) { /* If domain i has subdomains */ if (archDecoArchSize (archptr, j) > 1) /* If domain j has subdomains */ archDecoArchDist (archptr, i, j) = (archDecoArchDistE (archptr, 2 * i, 2 * j) + archDecoArchDistE (archptr, 2 * i, 2 * j + 1) + archDecoArchDistE (archptr, 2 * i + 1, 2 * j) + archDecoArchDistE (archptr, 2 * i + 1, 2 * j + 1) + 2) / 4; else /* If domain j is a terminal */ archDecoArchDist (archptr, i, j) = (archDecoArchDistE (archptr, 2 * i, j) + archDecoArchDistE (archptr, 2 * i + 1, j) + 1) / 2; } else { /* If domain i is a terminal */ if (archDecoArchSize (archptr, j) > 1) /* If domain j has subdomains */ archDecoArchDist (archptr, i, j) = (archDecoArchDistE (archptr, i, 2 * j) + archDecoArchDistE (archptr, i, 2 * j + 1) + 1) / 2; #ifdef SCOTCH_DEBUG_ARCH1 else { /* If both domain are terminals */ if (archDecoArchDist (archptr, i, j) == 0) { /* Distance value must be greater than zero */ errorPrint ("archDecoArchBuild2: invalid null distance"); archDecoArchFree (archptr); return (1); } } #endif /* SCOTCH_DEBUG_ARCH1 */ } } } return (0); } /* This routine loads and computes the ** decomposition-defined architecture ** tables. ** It returns: ** - 0 : if the decomposition has been successfully read. ** - !0 : on error. */ int archDecoArchLoad ( ArchDeco * restrict const archptr, FILE * restrict const stream) { INT typeval; /* Type of decomposition */ INT termdomnbr; /* Number of terminal domains (ie processors) */ INT termdommax; /* Maximum domain number given to a terminal domain */ ArchDecoTermVert * restrict termverttab; /* Table of terminal vertex data */ Anum * restrict termdisttab; /* Table of terminal-to-terminal distances */ INT i, j; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchDeco) > sizeof (ArchDummy)) || (sizeof (ArchDecoDom) > sizeof (ArchDomDummy))) { errorPrint ("archDecoArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &typeval) != 1) || /* Read decomposition type */ (typeval < 0) || (typeval > 2)) { errorPrint ("archDecoArchLoad: bad input (1)"); return (1); } if (typeval == 2) { /* If type-2 decomposition */ archArch (archptr)->clasptr = archClass2 ("deco", 1); /* Switch class for future routines */ return (archDeco2ArchLoad2 ((ArchDeco2 *) archptr, stream)); /* Call subclass loading routine */ } if ((intLoad (stream, &termdomnbr) != 1) || /* Proceed with type-0 and type-1 architectures */ (intLoad (stream, &termdommax) != 1) || (termdommax < termdomnbr) || (termdomnbr < 1)) { errorPrint ("archDecoArchLoad: bad input (2)"); return (1); } if (typeval == 0) { /* If raw decomposition */ if (memAllocGroup ((void **) (void *) &termverttab, (size_t) (termdomnbr * sizeof (ArchDecoTermVert)), &termdisttab, (size_t) ((((termdommax * (termdommax - 1)) / 2) + 1) * sizeof (Anum)), NULL) == NULL) { errorPrint ("archDecoArchLoad: out of memory (1)"); return (1); } for (i = 0; i < termdomnbr; i ++) { /* For all declared terminals */ INT termvertlabl; INT termvertwght; INT termvertnum; if ((intLoad (stream, &termvertlabl) != 1) || /* Read terminal data */ (intLoad (stream, &termvertwght) != 1) || (intLoad (stream, &termvertnum) != 1) || (termvertnum < 1) || (termvertnum > termdommax)) { errorPrint ("archDecoArchLoad: bad input (3)"); memFree (termverttab); /* Free group leader */ return (1); } termverttab[i].labl = (ArchDomNum) termvertlabl; termverttab[i].wght = (Anum) termvertwght; termverttab[i].num = (Anum) termvertnum; } for (i = 0, j = (termdomnbr * (termdomnbr - 1)) / 2; i < j; i ++) { /* Read terminal distance map */ INT termdistval; if ((intLoad (stream, &termdistval) != 1) || (termdistval < 1)) { errorPrint ("archDecoArchLoad: bad input (4)"); memFree (termverttab); /* Free group leader */ return (1); } termdisttab[i] = (Anum) termdistval; } archDecoArchBuild2 (archptr, termdomnbr, termdommax, termverttab, termdisttab); memFree (termverttab); /* Free group leader */ } else { /* If it is a compiled decomposition */ if (memAllocGroup ((void **) (void *) &archptr->domverttab, (size_t) (termdommax * sizeof (ArchDecoVert)), &archptr->domdisttab, (size_t) ((((termdommax * (termdommax - 1)) / 2) + 1) * sizeof (Anum)), NULL) == NULL) { errorPrint ("archDecoArchLoad: out of memory (2)"); return (1); } archptr->flagval = ARCHDECOFREE; archptr->domtermnbr = (Anum) termdomnbr; archptr->domvertnbr = (Anum) termdommax; for (i = 0; i < termdommax; i ++) { /* Read domain array */ INT domvertlabl; INT domvertsize; INT domvertwght; if ((intLoad (stream, &domvertlabl) != 1) || (intLoad (stream, &domvertsize) != 1) || (intLoad (stream, &domvertwght) != 1)) { errorPrint ("archDecoArchLoad: bad input (5)"); archDecoArchFree (archptr); return (1); } archptr->domverttab[i].labl = (ArchDomNum) domvertlabl; archptr->domverttab[i].size = (Anum) domvertsize; archptr->domverttab[i].wght = (Anum) domvertwght; } for (i = 0; i < (termdommax * (termdommax - 1)) / 2; i ++) { /* Read distance array */ INT domdistval; if (intLoad (stream, &domdistval) != 1) { errorPrint ("archDecoArchLoad: bad input (6)"); archDecoArchFree (archptr); return (1); } archptr->domdisttab[i] = domdistval; } } return (0); } /* This routine frees the decomposition ** architecture structures. ** It returns: ** - 0 : if the decomposition has been successfully freed. ** - !0 : on error. */ int archDecoArchFree ( ArchDeco * const archptr) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchDeco) > sizeof (ArchDummy)) || (sizeof (ArchDecoDom) > sizeof (ArchDomDummy))) { errorPrint ("archDecoArchFree: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (((archptr->flagval & ARCHDECOFREE) != 0) && (archptr->domverttab != NULL)) memFree (archptr->domverttab); /* Free group leader */ archptr->domtermnbr = archptr->domvertnbr = 0; archptr->domverttab = NULL; archptr->domdisttab = NULL; return (0); } /* This routine saves the given target architecture ** as compiled decomposition tables. ** It returns: ** - 0 : if the decomposition has been successfully written. ** - !0 : on error. */ int archDecoArchSave ( const ArchDeco * const archptr, FILE * restrict const stream) { Anum i, j; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchDeco) > sizeof (ArchDummy)) || (sizeof (ArchDecoDom) > sizeof (ArchDomDummy))) { errorPrint ("archDecoArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, "1\n" ANUMSTRING "\t" ANUMSTRING "\n", /* Write number of domains */ (Anum) archptr->domtermnbr, (Anum) archptr->domvertnbr) == EOF) { errorPrint ("archDecoArchSave: bad output (1)"); return (1); } for (i = 0; i < archptr->domvertnbr; i ++) { /* Write domain array */ if (fprintf (stream, ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\n", (Anum) archptr->domverttab[i].labl, (Anum) archptr->domverttab[i].size, (Anum) archptr->domverttab[i].wght) == EOF) { errorPrint ("archDecoArchSave: bad output (2)"); return (1); } } j = (archptr->domvertnbr * (archptr->domvertnbr - 1)) / 2; for (i = 0; i < j; i ++) { /* Write distance array */ if (fprintf (stream, ANUMSTRING "%c", (Anum) archptr->domdisttab[i], (((i % 8) == 7) && (i != (j - 1))) ? '\n' : '\t') == EOF) { errorPrint ("archDecoArchSave: bad output (3)"); return (1); } } if (fprintf (stream, "\n") == EOF) { errorPrint ("archDecoArchSave: bad output (4)"); return (1); } return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archDecoDomNum ( const ArchDeco * const archptr, const ArchDecoDom * const domnptr) { return (archptr->domverttab[domnptr->num - 1].labl); } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archDecoDomTerm ( const ArchDeco * const archptr, ArchDecoDom * const domnptr, const ArchDomNum domnnum) { Anum domtermnum; Anum domvertnum; for (domtermnum = archptr->domtermnbr, domvertnum = archptr->domvertnbr - 1; domtermnum > 0; domvertnum --) { if (archptr->domverttab[domvertnum].size == 1) { /* If terminal vertex */ domtermnum --; /* One more terminal scanned */ if (archptr->domverttab[domvertnum].labl == domnnum) { /* If terminal domain number found */ domnptr->num = domvertnum; /* Set domain number */ return (0); } } } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the given domain. */ Anum archDecoDomSize ( const ArchDeco * const archptr, const ArchDecoDom * const domnptr) { return (archptr->domverttab[domnptr->num - 1].size); } /* This function returns the weight of ** the given domain. */ Anum archDecoDomWght ( const ArchDeco * const archptr, const ArchDecoDom * const domnptr) { return (archptr->domverttab[domnptr->num - 1].wght); } /* This function returns the average distance ** between two domains, which is extracted ** from the table. */ Anum archDecoDomDist ( const ArchDeco * const archptr, const ArchDecoDom * const dom0ptr, const ArchDecoDom * const dom1ptr) { return (archDecoArchDistE (archptr, dom0ptr->num, dom1ptr->num)); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDecoDomFrst ( const ArchDeco * const archptr, ArchDecoDom * restrict const domnptr) { domnptr->num = 1; return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDecoDomLoad ( const ArchDeco * const archptr, ArchDecoDom * restrict const domnptr, FILE * restrict const stream) { if ((intLoad (stream, &domnptr->num) != 1) || (domnptr->num < 1) || (domnptr->num > archptr->domvertnbr)) { errorPrint ("archDecoDomLoad: bad input"); return (1); } return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDecoDomSave ( const ArchDeco * const archptr, const ArchDecoDom * const domnptr, FILE * restrict const stream) { if (fprintf (stream, ANUMSTRING " ", (Anum) domnptr->num) == EOF) { errorPrint ("archDecoDomSave: bad output"); return (1); } return (0); } /* This function tries to split a ** decomposition domain into two ** subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archDecoDomBipart ( const ArchDeco * const archptr, const ArchDecoDom * const domnptr, ArchDecoDom * restrict const dom0ptr, ArchDecoDom * restrict const dom1ptr) { if (archptr->domverttab[domnptr->num - 1].size <= 1) /* Return if cannot bipartition more */ return (1); dom0ptr->num = domnptr->num << 1; /* Compute subdomain numbers from domain number */ dom1ptr->num = dom0ptr->num + 1; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archDecoDomIncl ( const ArchDeco * const archptr, const ArchDecoDom * const dom0ptr, const ArchDecoDom * const dom1ptr) { Anum dom0num; Anum dom1num; for (dom1num = dom1ptr->num, dom0num = dom0ptr->num; dom1num != 0; dom1num >>= 1) if (dom1num == dom0num) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco.h000066400000000000000000000204601514310134000257770ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014-2016,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the decomposition-defined target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 24 jul 1995 **/ /** # Version 3.1 : from : 20 jul 1996 **/ /** to : 20 jul 1996 **/ /** # Version 3.2 : from : 11 sep 1996 **/ /** to : 28 sep 1998 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 14 jun 2004 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 27 sep 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 18 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ #ifndef ARCH_DECO_H_STRUCT #define ARCH_DECO_H_STRUCT /*+ Decomposition architecture flags. +*/ #define ARCHDECONONE 0x0000 /*+ No options set +*/ #define ARCHDECOFREE 0x0001 /*+ Free arrays +*/ /* ** The type and structure definitions. */ /*+ The decomposition-described terminal vertex definition. +*/ typedef struct ArchDecoTermVert_ { ArchDomNum labl; /*+ Number for terminals, or ARCHDOMNOTTERM +*/ Anum wght; /*+ Weight of the domain (processor load) +*/ Anum num; /*+ Number of the terminal +*/ } ArchDecoTermVert; /*+ The decomposition-described architecture definitions. +*/ typedef struct ArchDecoVert_ { ArchDomNum labl; /*+ Smallest number of included terminal +*/ Anum size; /*+ Number of processors in the domain +*/ Anum wght; /*+ Weight of the domain (processor load) +*/ } ArchDecoVert; typedef struct ArchDeco_ { int flagval; /*+ Flag value +*/ Anum domtermnbr; /*+ Number of terminal domains +*/ Anum domvertnbr; /*+ Number of domains +*/ ArchDecoVert * domverttab; /*+ Table of domain "vertices" +*/ Anum * domdisttab; /*+ Table of domain distances +*/ } ArchDeco; typedef struct ArchDecoDom_ { Anum num; /*+ Domain number in the decomposition +*/ } ArchDecoDom; typedef struct ArchDecoMatch_ { Anum num; /*+ Domain number in the decomposition +*/ } ArchDecoMatch; #endif /* ARCH_DECO_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_DECO_H_PROTO #define ARCH_DECO_H_PROTO int archDecoArchBuild2 (ArchDeco * const, const Anum, const Anum, const ArchDecoTermVert * const, const Anum * const); int archDecoArchLoad (ArchDeco * const, FILE * restrict const); int archDecoArchSave (const ArchDeco * const, FILE * restrict const); int archDecoArchFree (ArchDeco * const); #define archDecoMatchInit NULL #define archDecoMatchExit NULL #define archDecoMatchMate NULL Anum archDecoArchSize (ArchDeco * const, const Anum); Anum archDecoArchDist (ArchDeco * const, const Anum, const Anum); Anum archDecoArchDistE (ArchDeco * const, const Anum, const Anum); ArchDomNum archDecoDomNum (const ArchDeco * const, const ArchDecoDom * const); int archDecoDomTerm (const ArchDeco * const, ArchDecoDom * restrict const, const ArchDomNum); Anum archDecoDomSize (const ArchDeco * const, const ArchDecoDom * const); Anum archDecoDomWght (const ArchDeco * const, const ArchDecoDom * const); Anum archDecoDomDist (const ArchDeco * const, const ArchDecoDom * const, const ArchDecoDom * const); int archDecoDomFrst (const ArchDeco * const, ArchDecoDom * restrict const); int archDecoDomLoad (const ArchDeco * const, ArchDecoDom * restrict const, FILE * restrict const); int archDecoDomSave (const ArchDeco * const, const ArchDecoDom * const, FILE * restrict const); int archDecoDomBipart (const ArchDeco * const, const ArchDecoDom * const, ArchDecoDom * restrict const, ArchDecoDom * restrict const); int archDecoDomIncl (const ArchDeco * const, const ArchDecoDom * const, const ArchDecoDom * const); /* ** The macro definitions. */ #define archDecoArchSize(d,i) ((d)->domverttab[(i) - 1].size) #define archDecoArchDist(d,i,j) ((d)->domdisttab[((i) >= (j)) ? (((i) - 1) * ((i) - 2)) / 2 + (j) - 1 \ : (((j) - 1) * ((j) - 2)) / 2 + (i) - 1]) #define archDecoArchDistE(d,i,j) (((i) == (j)) ? 0 : archDecoArchDist ((d), (i), (j))) #endif /* ARCH_DECO_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco2.c000066400000000000000000000712541514310134000260630ustar00rootroot00000000000000/* Copyright 2015-2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the type-2 **/ /** decomposition-defined target **/ /** architecture. **/ /** **/ /** DATES : # Version 6.0 : from : 30 apr 2015 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_ARCH_DECO2 #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "arch_deco2.h" #include "arch_sub.h" /***************************************/ /* */ /* These are the type-2 decomposition- */ /* defined architecture routines. */ /* */ /***************************************/ /* This routine frees the decomposition ** architecture structures. ** It returns: ** - 0 : if the decomposition has been successfully freed. ** - !0 : on error. */ int archDeco2ArchFree ( ArchDeco2 * const archptr) { ArchDeco2Levl * levltab; if (archptr->vnumtab != NULL) memFree (archptr->vnumtab); if ((levltab = archptr->levltab) != NULL) { ArchDeco2Levl * levlptr; for (levlptr = levltab + archptr->levlmax; levlptr >= levltab; levlptr --) graphExit (&levlptr->grafdat); memFree (levltab); } if (archptr->termtab != NULL) /* Free group leader */ memFree (archptr->termtab); return (0); } /* This routine loads and computes the version-2, ** decomposition-defined architecture tables. ** It is called by archDecoArchLoad. ** It returns: ** - 0 : if the decomposition has been successfully read. ** - !0 : on error. */ int archDeco2ArchLoad2 ( ArchDeco2 * restrict const archptr, FILE * restrict const stream) { ArchSubTerm * restrict termtab; Anum termnbr; Anum termnum; ArchSubData * restrict domntab; Anum domnnbr; Anum domnnum; ArchDeco2Data * restrict doextab; ArchDeco2Levl * restrict levltab; Anum levlnbr; Anum levlnum; Anum * restrict vnumtab; Anum vnummax; Anum vnumnbr; Anum vnumnum; Gnum vertnbr; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchDeco2) > sizeof (ArchDummy)) || (sizeof (ArchDeco2Dom) > sizeof (ArchDomDummy))) { errorPrint ("archDeco2ArchLoad2: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &archptr->termnbr) != 1) || (intLoad (stream, &archptr->levlmax) != 1) || /* Read levlnbr, not lvlmax */ (intLoad (stream, &archptr->vnumnbr) != 1) || (archptr->termnbr < 1) || (archptr->levlmax <= 0)) { errorPrint ("archDeco2ArchLoad2: bad input (1)"); return (1); } archptr->termtab = NULL; /* Assume nothing allocated yet */ archptr->vnumtab = NULL; archptr->levltab = NULL; termnbr = archptr->termnbr; domnnbr = 2 * termnbr - 1; levlnbr = archptr->levlmax --; /* Get levlmax */ if (memAllocGroup ((void **) (void *) &archptr->termtab, (size_t) (termnbr * sizeof (ArchSubTerm)), &archptr->domntab, (size_t) (domnnbr * sizeof (ArchSubData)), &archptr->doextab, (size_t) (domnnbr * sizeof (ArchDeco2Data)), NULL) == NULL) { errorPrint ("archDeco2ArchLoad2: out of memory (1)"); return (1); } termtab = archptr->termtab; domntab = archptr->domntab; doextab = archptr->doextab; for (termnum = 0; termnum < termnbr; termnum ++) { /* For all declared terminals */ if ((intLoad (stream, &termtab[termnum].domnidx) != 1) || (intLoad (stream, &termtab[termnum].termnum) != 1) || (termtab[termnum].domnidx < 0) || (termtab[termnum].domnidx >= domnnbr) || (termtab[termnum].termnum < 0)) { errorPrint ("archDeco2ArchLoad2: bad input (2)"); goto abort; } } vnummax = -1; for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* For all declared domains */ if ((intLoad (stream, &domntab[domnnum].domnnum) != 1) || (intLoad (stream, &domntab[domnnum].domnsiz) != 1) || (intLoad (stream, &domntab[domnnum].domnwgt) != 1) || (intLoad (stream, &domntab[domnnum].termnum) != 1) || (intLoad (stream, &domntab[domnnum].dfatidx) != 1) || (intLoad (stream, &domntab[domnnum].dsubidx[0]) != 1) || (intLoad (stream, &domntab[domnnum].dsubidx[1]) != 1) || (intLoad (stream, &doextab[domnnum].levlnum) != 1) || (intLoad (stream, &doextab[domnnum].vnumidx) != 1) || (domntab[domnnum].domnnum < 0) || (domntab[domnnum].domnsiz < 1) || (domntab[domnnum].domnwgt < 1) || (domntab[domnnum].termnum < 0) || (domntab[domnnum].termnum >= termnbr) || (domntab[domnnum].dfatidx < -1) || (domntab[domnnum].dfatidx >= domnnbr) || (domntab[domnnum].dsubidx[0] < -1) || (domntab[domnnum].dsubidx[0] >= domnnbr) || (domntab[domnnum].dsubidx[1] < -1) || (domntab[domnnum].dsubidx[1] >= domnnbr) || (doextab[domnnum].levlnum < 0) || (doextab[domnnum].levlnum >= levlnbr) || (doextab[domnnum].vnumidx < 0)) { errorPrint ("archDeco2ArchLoad2: bad input (3)"); goto abort; } if (doextab[domnnum].vnumidx > vnummax) /* Keep track of max index */ vnummax = doextab[domnnum].vnumidx; } if ((levltab = memAlloc (levlnbr * sizeof (ArchDeco2Levl))) == NULL) { errorPrint ("archDeco2ArchLoad2: out of memory (2)"); goto abort; } archptr->levltab = levltab; for (levlnum = 0; levlnum < levlnbr; levlnum ++) { if (graphLoad (&levltab[levlnum].grafdat, stream, -1, 0) != 0) { errorPrint ("archDeco2ArchLoad2: bad input (4)"); archptr->levlmax = levlnum - 1; /* Only free existing levels */ goto abort; } if (intLoad (stream, &levltab[levlnum].wdiaval) != 1) { /* Read graph diameter */ errorPrint ("archDeco2ArchLoad2: bad input (5)"); archptr->levlmax = levlnum; /* Free this level as well */ goto abort; } } archptr->levlmax = levlnbr - 1; /* All levels have been read */ archptr->baseval = levltab[0].grafdat.baseval; /* Get base value */ vnumnbr = archptr->vnumnbr; if (vnummax >= vnumnbr) { errorPrint ("archDeco2ArchLoad2: bad input (6)"); goto abort; } if ((vnumtab = memAlloc (vnumnbr * sizeof (Anum))) == NULL) { errorPrint ("archDeco2ArchLoad2: out of memory (3)"); goto abort; } archptr->vnumtab = vnumtab; vertnbr = levltab[0].grafdat.vertnbr; /* Size of largest graph */ for (vnumnum = 0; vnumnum < vnumnbr; vnumnum ++) { /* For all vertex indices */ if ((intLoad (stream, &vnumtab[vnumnum]) != 1) || (vnumtab[vnumnum] < 0) || (vnumtab[vnumnum] >= vertnbr)) { errorPrint ("archDeco2ArchLoad2: bad input (7)"); goto abort; } } #ifdef SCOTCH_DEBUG_ARCH1 for (domnnum = 0; domnnum < domnnbr; domnnum ++) { if (doextab[domnnum].vnumidx > vnumnbr) { errorPrint ("archDeco2ArchLoad2: bad input (8)"); goto abort; } } #endif /* SCOTCH_DEBUG_ARCH1 */ return (0); abort: archDeco2ArchFree (archptr); return (1); } /* This routine saves the given target architecture ** as compiled decomposition tables. ** It returns: ** - 0 : if the decomposition has been successfully written. ** - !0 : on error. */ int archDeco2ArchSave ( const ArchDeco2 * restrict const archptr, FILE * restrict const stream) { Anum termnum; Anum domnnum; Anum levlnum; Anum vnumnum; int o; const Anum termnbr = archptr->termnbr; const ArchSubTerm * restrict const termtab = archptr->termtab; const Anum domnnbr = archptr->domnnbr; const ArchSubData * restrict const domntab = archptr->domntab; const ArchDeco2Data * restrict const doextab = archptr->doextab; const Anum levlmax = archptr->levlmax; const ArchDeco2Levl * restrict const levltab = archptr->levltab; const Anum vnumnbr = archptr->vnumnbr; const Anum * restrict const vnumtab = archptr->vnumtab; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchDeco2) > sizeof (ArchDummy)) || (sizeof (ArchDeco2Dom) > sizeof (ArchDomDummy))) { errorPrint ("archDeco2ArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, "2\n" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\n", /* Write file header */ (Anum) archptr->termnbr, (Anum) (archptr->levlmax + 1), (Anum) archptr->vnumnbr) == EOF) { errorPrint ("archDeco2ArchSave: bad output (1)"); return (1); } for (termnum = 0; termnum < termnbr; termnum ++) { if (fprintf (stream, ANUMSTRING "\t" ANUMSTRING "\n", (Anum) termtab[termnum].domnidx, (Anum) termtab[termnum].termnum) == EOF) { errorPrint ("archDeco2ArchSave: bad output (2)"); return (1); } } for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* For all declared domains */ if (fprintf (stream, ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\t" ANUMSTRING "\n", (Anum) domntab[domnnum].domnnum, (Anum) domntab[domnnum].domnsiz, (Anum) domntab[domnnum].domnwgt, (Anum) domntab[domnnum].termnum, (Anum) domntab[domnnum].dfatidx, (Anum) domntab[domnnum].dsubidx[0], (Anum) domntab[domnnum].dsubidx[1], (Anum) doextab[domnnum].levlnum, (Anum) doextab[domnnum].vnumidx) == EOF) { errorPrint ("archDeco2ArchSave: bad output (3)"); return (1); } } for (levlnum = 0; levlnum <= levlmax; levlnum ++) { if (graphSave (&levltab[levlnum].grafdat, stream) != 0) { errorPrint ("archDeco2ArchSave: bad output (4)"); return (1); } if (fprintf (stream, ANUMSTRING "\n", (Anum) levltab[levlnum].wdiaval) == EOF) { errorPrint ("archDeco2ArchSave: bad output (5)"); return (1); } } o = 0; for (vnumnum = 0; vnumnum < (vnumnbr - 1); vnumnum ++) { if (fprintf (stream, ANUMSTRING "\t", (Anum) vnumtab[vnumnum]) == EOF) { o = 1; break; } } if (vnumnum < vnumnbr) { if (fprintf (stream, ANUMSTRING "\n", (Anum) vnumtab[vnumnum]) == EOF) o = 1; } if (o != 0) { errorPrint ("archDeco2ArchSave: bad output (6)"); return (1); } return (0); } /* This routine initializes the matching data ** structure according to the number of vertices ** to be managed. ** Its purpose is to help compute a "sub" ** architecture of a "deco2" architecture. ** Since "deco2" and "sub" architectures posess ** the same hierarchical domain structure, it ** can be re-used at no additional cost. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ int archDeco2MatchInit ( ArchSubMatch * restrict const matcptr, /* Use "sub" matching data structure instead of propre one */ const ArchDeco2 * restrict const archptr) { Anum termnbr; Anum termnum; Anum domnmax; Anum levlnbr; Anum multnbr; const ArchSubTerm * restrict const termtab = archptr->termtab; const ArchSubData * restrict const domntab = archptr->domntab; for (termnum = 0, termnbr = archptr->termnbr, domnmax = 0; /* Get maximum domain number */ termnum < termnbr; termnum ++) { Anum domnval; domnval = domntab[termtab[termnum].domnidx].domnnum; if (domnval > domnmax) domnmax = domnval; } for (levlnbr = 1; domnmax > 0; levlnbr ++, domnmax >>= 1) ; /* Compute maximum recursion level in bipartitioning tree */ multnbr = 1 << levlnbr; /* Maximum number of multinodes is the size of last level */ if ((matcptr->multtab = memAlloc (multnbr * sizeof (ArchCoarsenMulti))) == NULL) { errorPrint ("archDeco2MatchInit: out of memory"); return (1); } matcptr->domntab = archptr->domntab; /* Keep pointer to sub-architecture domain array */ matcptr->levlnum = matcptr->levlmax = levlnbr - 1; return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archDeco2DomNum ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const domnptr) { return (archptr->domntab[domnptr->domnidx].termnum + archptr->baseval); /* Return based terminal number from un-based number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archDeco2DomTerm ( const ArchDeco2 * const archptr, ArchDeco2Dom * const domnptr, const ArchDomNum termnum) { Gnum termtmp; termtmp = termnum - archptr->baseval; /* Un-base terminal number */ if ((termtmp < 0) || /* Check if it was not un-based */ (termtmp >= archptr->termnbr)) return (1); domnptr->domnidx = archptr->termtab[termtmp].domnidx; return (0); } /* This function returns the number of ** elements in the given domain. */ Anum archDeco2DomSize ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const domnptr) { return (archptr->domntab[domnptr->domnidx].domnsiz); } /* This function returns the weight of ** the given domain. */ Anum archDeco2DomWght ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const domnptr) { return (archptr->domntab[domnptr->domnidx].domnwgt); } /* This function returns the average distance ** between two domains, which is extracted ** from the table. */ Anum archDeco2DomDist ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const dom0ptr, const ArchDeco2Dom * const dom1ptr) { Anum levlnum; Anum levlnum0; Anum levlnum1; Anum domnidx0; Anum domnidx1; const ArchDeco2Levl * levlptr; Gnum * restrict queutab; Gnum * restrict disttax; Anum distmin; Gnum baseval; Gnum vertnbr; #ifdef SCOTCH_DEBUG_ARCH2 Anum domnnum0; Anum domnnum1; #endif /* SCOTCH_DEBUG_ARCH2 */ const ArchSubData * restrict const domntab = archptr->domntab; const ArchDeco2Data * restrict const doextab = archptr->doextab; const Gnum * restrict const vnumtab = archptr->vnumtab; domnidx0 = dom0ptr->domnidx; domnidx1 = dom1ptr->domnidx; if (domnidx0 == domnidx1) /* If same domains, zero distance */ return (0); levlnum0 = doextab[domnidx0].levlnum; levlnum1 = doextab[domnidx1].levlnum; levlnum = MAX (levlnum0, levlnum1); /* Level where to start distance computations */ levlptr = &archptr->levltab[levlnum]; /* Point to start level for distance computation */ vertnbr = levlptr->grafdat.vertnbr; /* Get upper bound on number of vertices */ #ifdef SCOTCH_DEBUG_ARCH2 if (vertnbr <= 1) { /* If coarsest graph hit without exiting before */ errorPrint ("archDeco2DomDist: internal error (1)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ #ifdef SCOTCH_DEBUG_ARCH2 domnnum0 = domntab[domnidx0].domnnum; domnnum1 = domntab[domnidx1].domnnum; if ((domntab[domnidx0].domnnum != domnnum0) || (domntab[domnidx1].domnnum != domnnum1)) { errorPrint ("archDeco2DomDist: internal error (2)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ while (levlnum0 < levlnum1) { /* Level subdomains as much as possible */ Anum domntmp0; Anum levltmp0; domntmp0 = domntab[domnidx0].dfatidx; levltmp0 = doextab[domntmp0].levlnum; if (levltmp0 > levlnum1) /* If cannot find coarser subdomain */ break; domnidx0 = domntmp0; /* Father domain becomes current domain */ levlnum0 = levltmp0; /* Set new current level for new domain */ #ifdef SCOTCH_DEBUG_ARCH2 domnnum0 >>= 1; if ((doextab[domnidx0].levlnum != levlnum0) || (domntab[domnidx0].domnnum != domnnum0)) { errorPrint ("archDeco2DomDist: internal error (3)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ } while (levlnum1 < levlnum0) { /* Level subdomains as much as possible */ Anum domntmp1; Anum levltmp1; domntmp1 = domntab[domnidx1].dfatidx; levltmp1 = doextab[domntmp1].levlnum; if (levltmp1 > levlnum0) /* If cannot find coarser subdomain */ break; domnidx1 = domntmp1; levlnum1 = levltmp1; #ifdef SCOTCH_DEBUG_ARCH2 domnnum1 >>= 1; if ((doextab[domnidx1].levlnum != levlnum1) || (domntab[domnidx1].domnnum != domnnum1)) { errorPrint ("archDeco2DomDist: internal error (4)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ } if (domnidx0 == domnidx1) /* If same domains after leveling, half distance of largest domain */ return (levlptr->grafdat.velotax[vnumtab[domnidx0]]); if (memAllocGroup ((void **) (void *) &queutab, (size_t) ((vertnbr + ARCHDECO2PASSNBR + 1) * sizeof (Anum)), /* Room for pass markers */ &disttax, (size_t) (vertnbr * sizeof (Anum)), NULL) == NULL) { errorPrint ("archDeco2DomDist: out of memory"); return (0); /* Nothing to free because group allocation failed */ } baseval = levlptr->grafdat.baseval; disttax -= baseval; while (1) { /* As long as coarsest graph not hit */ const Gnum * restrict verttax; const Gnum * restrict vendtax; const Gnum * restrict velotax; const Gnum * restrict edgetax; const Gnum * restrict edlotax; Gnum vertnum0; Gnum vertnum1; Anum domntmp0; Anum domntmp1; Gnum queuheadidx; Gnum queutailidx; int passnbr; int flagval; vertnum0 = vnumtab[doextab[domnidx0].vnumidx - (levlnum - levlnum0)]; /* Find vertices at proper level for domain indices */ vertnum1 = vnumtab[doextab[domnidx1].vnumidx - (levlnum - levlnum1)]; #ifdef SCOTCH_DEBUG_ARCH2 if ((vertnum0 < 0) || (vertnum0 >= vertnbr) || (vertnum1 < 0) || (vertnum1 >= vertnbr)) { errorPrint ("archDeco2DomDist: internal error (5)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ distmin = GNUMMAX; flagval = 1; verttax = levlptr->grafdat.verttax; vendtax = levlptr->grafdat.vendtax; velotax = levlptr->grafdat.velotax; edgetax = levlptr->grafdat.edgetax; edlotax = levlptr->grafdat.edlotax; memSet (disttax + baseval, ~0, vertnbr * sizeof (Gnum)); /* Set flag and distance array to -1 */ disttax[vertnum0] = (velotax != NULL) ? ((velotax[vertnum0] + velotax[vertnum1]) / 2) /* Account for half of traversal costs of end vertices */ : 0; passnbr = ARCHDECO2PASSNBR; queutab[0] = vertnum0; queutab[1] = -1; /* Enqueue pass marker as end of pass 0 */ queutailidx = 0; queuheadidx = 2; while (queutailidx != queuheadidx) { Gnum vertnum; Gnum edgenum; Gnum edgennd; Gnum distval; loop: vertnum = queutab[queutailidx ++]; /* Get vertex number from queue */ if (vertnum < 0) { /* If vertex is pass marker */ if (passnbr == 0) /* If vertex found or passes exhausted */ break; queutab[queuheadidx ++] = vertnum; /* Re-enqueue pass marker */ passnbr --; /* One more pass completed */ goto loop; /* Get another vertex number from queue */ } distval = disttax[vertnum]; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { Gnum vertend; Gnum disttmp; vertend = edgetax[edgenum]; disttmp = distval + ((edlotax != NULL) ? edlotax[edgenum] : 1); if (vertend == vertnum1) { /* If path to end vertex found */ if (disttmp < distmin) distmin = disttmp; passnbr = 0; /* Abort at end of this pass */ flagval = 0; /* Record path found for this pass */ } else { disttmp += (velotax != NULL) ? velotax[vertend] : 0; /* Vertex will have to be traversed fully */ if (disttax[vertend] < 0) { /* If vertex not already considered */ queutab[queuheadidx ++] = vertend; /* Enqueue new vertex */ disttax[vertend] = disttmp; } else if (disttax[vertend] > disttmp) /* If path improves distance at this pass */ disttax[vertend] = disttmp; } } } if (flagval == 0) /* If path found, don't search in coarser graphs */ break; levlnum ++; levlptr ++; /* Consider coarser level */ vertnbr = levlptr->grafdat.vertnbr; /* Reduce size of work arrays */ domntmp0 = domntab[domnidx0].dfatidx; /* For both subdomains independently */ if (doextab[domntmp0].levlnum <= levlnum) { /* If father domain is at proper level */ domnidx0 = domntmp0; /* Father domain becomes current domain */ levlnum0 = levlnum; /* Set new current level for new domain */ #ifdef SCOTCH_DEBUG_ARCH2 domnnum0 >>= 1; if ((doextab[domnidx0].levlnum != levlnum0) || (domntab[domnidx0].domnnum != domnnum0)) { errorPrint ("archDeco2DomDist: internal error (6)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ } domntmp1 = domntab[domnidx1].dfatidx; if (doextab[domntmp1].levlnum <= levlnum) { domnidx1 = domntmp1; levlnum1 = levlnum; #ifdef SCOTCH_DEBUG_ARCH2 domnnum1 >>= 1; if ((doextab[domnidx1].levlnum != levlnum1) || (domntab[domnidx1].domnnum != domnnum1)) { errorPrint ("archDeco2DomDist: internal error (7)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ } if (domnidx0 == domnidx1) { /* If same domains after leveling, half distance of largest domain */ distmin = levlptr->grafdat.velotax[vnumtab[domnidx0]]; break; } #ifdef SCOTCH_DEBUG_ARCH2 if (vertnbr <= 1) { /* If coarsest graph hit without exiting before */ errorPrint ("archDeco2DomDist: internal error (8)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ } memFree (queutab); /* Free group leader */ return (distmin); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDeco2DomFrst ( const ArchDeco2 * const archptr, ArchDeco2Dom * restrict const domnptr) { domnptr->domnidx = 0; /* First domain index is slot 0 */ return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDeco2DomLoad ( const ArchDeco2 * const archptr, ArchDeco2Dom * restrict const domnptr, FILE * restrict const stream) { if ((intLoad (stream, &domnptr->domnidx) != 1) || (domnptr->domnidx < 0) || (domnptr->domnidx >= archptr->domnnbr)) { errorPrint ("archDeco2DomLoad: bad input"); return (1); } return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDeco2DomSave ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const domnptr, FILE * restrict const stream) { if (fprintf (stream, ANUMSTRING " ", (Anum) domnptr->domnidx) == EOF) { errorPrint ("archDeco2DomSave: bad output"); return (1); } return (0); } /* This function tries to split a ** decomposition domain into two ** subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archDeco2DomBipart ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const domnptr, ArchDeco2Dom * restrict const dom0ptr, ArchDeco2Dom * restrict const dom1ptr) { Anum dom0idx; dom0idx = archptr->domntab[domnptr->domnidx].dsubidx[0]; if (dom0idx < 0) /* If domain is terminal */ return (1); dom0ptr->domnidx = dom0idx; dom1ptr->domnidx = archptr->domntab[domnptr->domnidx].dsubidx[1]; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archDeco2DomIncl ( const ArchDeco2 * const archptr, const ArchDeco2Dom * const dom0ptr, const ArchDeco2Dom * const dom1ptr) { Anum dom0num; Anum dom1num; for (dom1num = archptr->domntab[dom1ptr->domnidx].domnnum, dom0num = archptr->domntab[dom0ptr->domnidx].domnnum; dom1num != 0; dom1num >>= 1) if (dom1num == dom0num) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco2.h000066400000000000000000000202261514310134000260610ustar00rootroot00000000000000/* Copyright 2015,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the type-2 decomposition-defined **/ /** target architecture functions. **/ /** **/ /** DATES : # Version 6.0 : from : 01 may 2015 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # The internals of the "deco2" **/ /** architecture derive from those of **/ /** the "sub" architecture regarding **/ /** domain handling. Hence, most domain- **/ /** related routines are identical, and **/ /** amount to looking-up into dedicated **/ /** arrays. Hence, it was more efficient **/ /** to copy its code act as a sub-class **/ /** of the "sub" class. The main **/ /** difference with the latter is in the **/ /** distance computation routine, which **/ /** uses the graph hierarchy. **/ /** Matching in the "deco2" architecture **/ /** is identical to matching in the **/ /** "sub" architecture. **/ /** **/ /************************************************************/ /* ** The defines. */ #ifndef ARCH_DECO2_H_STRUCT #define ARCH_DECO2_H_STRUCT /*+ Depth of local search. +*/ #define ARCHDECO2PASSNBR 3 /*+ Decomposition architecture flags. +*/ #define ARCHDECONONE 0x0000 /*+ No options set +*/ #define ARCHDECOFREE 0x0001 /*+ Free arrays +*/ /* ** The internal type and structure definitions. */ #ifdef SCOTCH_ARCH_DECO2 typedef struct ArchDeco2Levl_ { Graph grafdat; /*+ Graph at this level +*/ Gnum wdiaval; /*+ Graph weighted diameter +*/ } ArchDeco2Levl; /*+ Data related to each architecture domain. This structure extends ArchSubData in order to record vertex numbers associated with every domain and ascendent collapsed domains. +*/ typedef struct ArchDeco2Data_ { Anum levlnum; /*+ Deepest level where this domain exists +*/ Anum vnumidx; /*+ Index to vertex number index array +*/ } ArchDeco2Data; #endif /* SCOTCH_ARCH_DECO2 */ /* ** The type and structure definitions. */ /*+ The type-2 decomposition-described target architecture. This architecture is based on the "sub" architecture for handling domains. Distance computations are specific. +*/ typedef struct ArchDeco2_ { Anum baseval; /*+ Base value for terminal numbers +*/ Anum termnbr; /*+ Number of terminals in architecture +*/ struct ArchSubTerm_ * termtab; /*+ Terminal domain array +*/ Anum domnnbr; /*+ Number of domains in domain array +*/ struct ArchSubData_ * domntab; /*+ Domain array [domnnbr] +*/ struct ArchDeco2Data_ * doextab; /*+ Extended domain array [domnnbr] +*/ Anum vnumnbr; /*+ Number of indices un vertex index array +*/ Anum * vnumtab; /*+ Level vertex index array [vnumnbr] +*/ Anum levlmax; /*+ Maximum level number in decomposition +*/ struct ArchDeco2Levl_ * levltab; /*+ Level array [levlnbr] +*/ } ArchDeco2; typedef struct ArchDeco2Dom_ { Anum domnidx; /*+ Domain index in domain array +*/ } ArchDeco2Dom; #endif /* ARCH_DECO2_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_DECO2_H_PROTO #define ARCH_DECO2_H_PROTO #define archDeco2ArchLoad NULL int archDeco2ArchLoad2 (ArchDeco2 * const, FILE * restrict const); int archDeco2ArchSave (const ArchDeco2 * const, FILE * restrict const); int archDeco2ArchFree (ArchDeco2 * const); int archDeco2MatchInit (struct ArchSubMatch_ * restrict const, const ArchDeco2 * restrict const); /* Use "sub" matching routines */ #define archDeco2MatchExit archSubMatchExit #define archDeco2MatchMate archSubMatchMate ArchDomNum archDeco2DomNum (const ArchDeco2 * const, const ArchDeco2Dom * const); int archDeco2DomTerm (const ArchDeco2 * const, ArchDeco2Dom * restrict const, const ArchDomNum); Anum archDeco2DomSize (const ArchDeco2 * const, const ArchDeco2Dom * const); Anum archDeco2DomWght (const ArchDeco2 * const, const ArchDeco2Dom * const); Anum archDeco2DomDist (const ArchDeco2 * const, const ArchDeco2Dom * const, const ArchDeco2Dom * const); int archDeco2DomFrst (const ArchDeco2 * const, ArchDeco2Dom * restrict const); int archDeco2DomLoad (const ArchDeco2 * const, ArchDeco2Dom * restrict const, FILE * restrict const); int archDeco2DomSave (const ArchDeco2 * const, const ArchDeco2Dom * const, FILE * restrict const); int archDeco2DomBipart (const ArchDeco2 * const, const ArchDeco2Dom * const, ArchDeco2Dom * restrict const, ArchDeco2Dom * restrict const); int archDeco2DomIncl (const ArchDeco2 * const, const ArchDeco2Dom * const, const ArchDeco2Dom * const); #ifdef SCOTCH_PTSCOTCH int archDecoDomMpiType (const ArchDeco2 * const, MPI_Datatype * const); #endif /* SCOTCH_PTSCOTCH */ #endif /* ARCH_DECO2_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco2_mpi.c000066400000000000000000000063151514310134000267240ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco2_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the type-2 **/ /** decomposition-defined target **/ /** architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_DECO2_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_deco2_mpi.h" /***************************************/ /* */ /* These are the type-2 decomposition- */ /* defined architecture routines. */ /* */ /***************************************/ /* This function creates the MPI_Datatype for ** the type-2 decomposition-defined domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archDeco2DomMpiType ( const ArchDeco2 * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (1, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco2_mpi.h000066400000000000000000000051561514310134000267330ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco2_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the type-2 decomposition-defined **/ /** target architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archDeco2DomMpiType (const ArchDeco2 * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco_mpi.c000066400000000000000000000062041514310134000266370ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the decomposition- **/ /** defined target architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_DECO_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_deco_mpi.h" /***************************************/ /* */ /* These are the decomposition-defined */ /* architecture routines. */ /* */ /***************************************/ /* This function creates the MPI_Datatype for ** the decomposition-defined domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archDecoDomMpiType ( const ArchDeco * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (1, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_deco_mpi.h000066400000000000000000000051551514310134000266500ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_deco_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the decomposition-defined target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archDecoDomMpiType (const ArchDeco * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_dist.c000066400000000000000000000217161514310134000260300ustar00rootroot00000000000000/* Copyright 2011,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_dist.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the distance **/ /** multiplicator pseudo-architecture **/ /** functions. **/ /** **/ /** DATES : # Version 6.0 : from : 14 feb 2011 **/ /** to : 30 jun 2014 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # This pseudo-architecture is used by **/ /** graph repartitioning routines to **/ /** handle floating-point migration **/ /** costs. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_dist.h" /**************************************/ /* */ /* These are the entry points for the */ /* distance graph routines. They are */ /* used only in debugging mode, to */ /* provide breakpoints for routines */ /* which are else implemented as */ /* macros for the sake of efficiency. */ /* */ /**************************************/ /* This routine loads the distance ** graph architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archDistArchLoad ( ArchDist * restrict const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if (sizeof (ArchDist) > sizeof (ArchDummy)) { errorPrint ("archDistArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (intLoad (stream, &archptr->crloval) != 1) { errorPrint ("archDistArchLoad: bad input"); return (1); } return (archLoad (archptr->archptr, stream)); /* Load sub-architecture */ } /* This routine saves the ** distance graph architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archDistArchSave ( const ArchDist * const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if (sizeof (ArchDist) > sizeof (ArchDummy)) { errorPrint ("archDistArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING "\t", (Anum) archptr->crloval) == EOF) { errorPrint ("archDistArchSave: bad output"); return (1); } return (archSave (archptr->archptr, stream)); /* Save sub-architecture */ } /* This routine builds the distance graph ** architecture of an original architecture. ** It returns: ** - 0 : if the architecture has been successfully built. ** - !0 : on error. */ int archDistArchBuild ( Arch * const archptr, Arch * const orgarchptr, const Anum crloval) { ArchDist * archdataptr; archInit (archptr); /* Initialize architecture body */ archptr->clasptr = archClass ("dist"); /* Set architecture class */ archptr->flagval = orgarchptr->flagval; /* Set architecture flag */ archdataptr = (ArchDist *) (void *) &archptr->data; archdataptr->archptr = orgarchptr; archdataptr->crloval = crloval; return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archDistDomNum ( const ArchDist * const archptr, const ArchDom * const domptr) { return (archDomNum (archptr->archptr, domptr)); /* Call proper routine */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archDistDomTerm ( const ArchDist * const archptr, ArchDom * const domptr, const ArchDomNum domnum) { return (archDomTerm (archptr->archptr, domptr, domnum)); /* Call proper routine */ } /* This function returns the number of ** elements in the distance domain. */ Anum archDistDomSize ( const ArchDist * const archptr, const ArchDom * const domptr) { return (archDomSize (archptr->archptr, domptr)); /* Call proper routine */ } /* This function returns the weight of ** the given distance domain. */ Anum archDistDomWght ( const ArchDist * const archptr, const ArchDom * const domptr) { return (archDomWght (archptr->archptr, domptr)); /* Call proper routine */ } /* This function returns the average ** distance between two distance ** subdomains. */ Anum archDistDomDist ( const ArchDist * const archptr, const ArchDom * const dom0ptr, const ArchDom * const dom1ptr) { return (archptr->crloval * archDomDist (archptr->archptr, dom0ptr, dom1ptr)); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDistDomFrst ( const ArchDist * const archptr, ArchDom * restrict const domptr) { return (archDomFrst (archptr->archptr, domptr)); /* Call proper routine */ } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDistDomLoad ( const ArchDist * const archptr, ArchDom * restrict const domptr, FILE * const stream) { return (archDomLoad (archptr->archptr, domptr, stream)); /* Call proper routine */ } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archDistDomSave ( const ArchDist * const archptr, const ArchDom * const domptr, FILE * const stream) { return (archDomSave (archptr->archptr, domptr, stream)); /* Call proper routine */ } /* This function tries to split a distance ** graph domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archDistDomBipart ( const ArchDist * const archptr, const ArchDom * const domptr, ArchDom * restrict const dom0ptr, ArchDom * restrict const dom1ptr) { return (archDomBipart (archptr->archptr, domptr, dom0ptr, dom1ptr)); /* Call proper routine */ } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archDistDomIncl ( const ArchDist * const archptr, const ArchDom * const dom0ptr, const ArchDom * const dom1ptr) { return (archDomIncl (archptr->archptr, dom0ptr, dom1ptr)); /* Call proper routine */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_dist.h000066400000000000000000000120571514310134000260330ustar00rootroot00000000000000/* Copyright 2011,2012,2014,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_dist.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distance multiplicator pseudo- **/ /** architecture functions. This pseudo- **/ /** architecture is used by graph reparti- **/ /** tioning routines to handle floating- **/ /** point migration costs. **/ /** **/ /** DATES : # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_DIST_H_STRUCT #define ARCH_DIST_H_STRUCT /*+ The distance graph definitions. +*/ typedef struct ArchDist_ { struct Arch_ * archptr; /*+ Encapsulated architecture +*/ Anum crloval; /*+ Coefficient load for regular edges +*/ } ArchDist; #define ArchDistDom ArchDom /*+ Domain is the regular domain +*/ #endif /* ARCH_DIST_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_DIST_H_PROTO #define ARCH_DIST_H_PROTO int archDistArchLoad (ArchDist * restrict const, FILE * restrict const); int archDistArchSave (const ArchDist * const, FILE * restrict const); #define archDistArchFree NULL #define archDistMatchInit NULL #define archDistMatchExit NULL #define archDistMatchMate NULL int archDistArchBuild (struct Arch_ * const, struct Arch_ * const, const Anum); ArchDomNum archDistDomNum (const ArchDist * const, const ArchDom * const); int archDistDomTerm (const ArchDist * const, ArchDom * restrict const, const ArchDomNum); Anum archDistDomSize (const ArchDist * const, const ArchDom * const); Anum archDistDomWght (const ArchDist * const, const ArchDom * const); Anum archDistDomDist (const ArchDist * const, const ArchDom * const, const ArchDom * const); int archDistDomFrst (const ArchDist * const, ArchDom * const); int archDistDomLoad (const ArchDist * const, ArchDom * const, FILE * const); int archDistDomSave (const ArchDist * const, const ArchDom * const, FILE * const); int archDistDomBipart (const ArchDist * const, const ArchDom * const, ArchDom * restrict const, ArchDom * restrict const); int archDistDomIncl (const ArchDist * const, const ArchDom * const, const ArchDom * const); #endif /* ARCH_DIST_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_dist_mpi.c000066400000000000000000000064671514310134000267030ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_dist_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the distance **/ /** multiplicator pseudo-architecture **/ /** functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_DIST_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_dist_mpi.h" /**********************************************/ /* */ /* These are the distance pseudo-architecture */ /* routines. */ /* */ /**********************************************/ /* This function creates the MPI_Datatype for ** the distance pseudo-architecture domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archDistDomMpiType ( const ArchDist * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiType (archptr->archptr, typeptr)); /* Call proper routine as we don't add any parameter */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_dist_mpi.h000066400000000000000000000051551514310134000267010ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_dist_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distance multiplicator pseudo- **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archDistDomMpiType (const ArchDist * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_hcub.c000066400000000000000000000274711514310134000260120ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2011,2015,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_hcub.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the hypercube **/ /** target architecture. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 08 sep 1995 **/ /** # Version 3.1 : from : 11 jun 1996 **/ /** to : 11 jun 1996 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 14 may 1998 **/ /** # Version 4.0 : from : 11 nov 2003 **/ /** to : 10 mar 2005 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 02 may 2015 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 22 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_hcub.h" /********************************************/ /* */ /* These are the binary hypercube routines. */ /* */ /********************************************/ /* This routine loads the binary ** hypercube architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archHcubArchLoad ( ArchHcub * restrict const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchHcub) > sizeof (ArchDummy)) || (sizeof (ArchHcubDom) > sizeof (ArchDomDummy))) { errorPrint ("archHcubArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &archptr->dimnnbr) != 1) || (archptr->dimnnbr < 1) || (archptr->dimnnbr > (Anum) (sizeof (Anum) << 3))) { /* Should have enough bits in ArchHcubDom bitsset field */ errorPrint ("archHcubArchLoad: bad input"); return (1); } return (0); } /* This routine saves the ** binary hypercube architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archHcubArchSave ( const ArchHcub * const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchHcub) > sizeof (ArchDummy)) || (sizeof (ArchHcubDom) > sizeof (ArchDomDummy))) { errorPrint ("archHcubArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING "\n", (Anum) archptr->dimnnbr) == EOF) { errorPrint ("archHcubArchSave: bad output"); return (1); } return (0); } /* This routine initializes the matching ** data structure according to the number ** of vertices to be managed. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ int archHcubMatchInit ( ArchHcubMatch * restrict const matcptr, const ArchHcub * restrict const archptr) { Anum vertnbr; vertnbr = 1 << archptr->dimnnbr; if ((matcptr->multtab = memAlloc ((vertnbr >> 1) * sizeof (ArchCoarsenMulti))) == NULL) { /* Multinodes are half the number of vertices */ errorPrint ("archHcubMatchInit: out of memory"); return (1); } matcptr->vertnbr = vertnbr; return (0); } /* This routine frees the matching data ** structure. ** It returns: ** - void : in all cases. */ void archHcubMatchExit ( ArchHcubMatch * restrict const matcptr) { memFree (matcptr->multtab); } /* This routine computes a matching from ** the current state of the matching structure. ** It returns: ** - >=0 : size of matching. ** - <0 : on error. */ Anum archHcubMatchMate ( ArchHcubMatch * restrict const matcptr, ArchCoarsenMulti ** restrict const multptr) { ArchCoarsenMulti * restrict coarmulttab; Anum coarvertnbr; Anum coarvertnum; Anum finevertnum; coarvertnbr = matcptr->vertnbr >> 1; if (coarvertnbr <= 0) return (-1); coarmulttab = matcptr->multtab; for (coarvertnum = finevertnum = 0; coarvertnum < coarvertnbr; coarvertnum ++) { coarmulttab[coarvertnum].vertnum[0] = finevertnum ++; /* Dimensional splatting */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; } matcptr->vertnbr = coarvertnbr; /* Prepare for next mating */ *multptr = coarmulttab; /* Always provide same mating array */ return (coarvertnbr); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archHcubDomNum ( const ArchHcub * const archptr, const ArchHcubDom * const domnptr) { return (domnptr->bitsset); /* Return vertex number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archHcubDomTerm ( const ArchHcub * const archptr, ArchHcubDom * const domnptr, const ArchDomNum domnnum) { if (domnnum < (1 << archptr->dimnnbr)) { /* If valid label */ domnptr->dimncur = 0; /* Set the domain */ domnptr->bitsset = domnnum; return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the hypercube domain. */ Anum archHcubDomSize ( const ArchHcub * const archptr, const ArchHcubDom * const domnptr) { return (1 << domnptr->dimncur); } /* This function returns the average distance ** between two sub-hypercubes. */ Anum archHcubDomDist ( const ArchHcub * const archptr, const ArchHcubDom * const dom0ptr, const ArchHcubDom * const dom1ptr) { Anum i, j, k; if (dom0ptr->dimncur > dom1ptr->dimncur) { /* Get smallest set dimension value */ i = dom0ptr->dimncur; j = i - dom1ptr->dimncur; } else { i = dom1ptr->dimncur; j = i - dom0ptr->dimncur; } j /= 2; /* For set/unset bits, assume 1/2 difference */ for (k = (dom0ptr->bitsset ^ dom1ptr->bitsset) >> i, i = archptr->dimnnbr - i; i > 0; k >>= 1, i --) j += (k & 1); /* Add Hamming difference on set dimensions */ return (j); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archHcubDomFrst ( const ArchHcub * const archptr, ArchHcubDom * restrict const domnptr) { domnptr->dimncur = archptr->dimnnbr; domnptr->bitsset = 0; return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archHcubDomLoad ( const ArchHcub * const archptr, ArchHcubDom * restrict const domnptr, FILE * restrict const stream) { if ((intLoad (stream, &domnptr->dimncur) != 1) || (intLoad (stream, &domnptr->bitsset) != 1) || (domnptr->dimncur > archptr->dimnnbr)) { errorPrint ("archHcubDomLoad: bad input"); return (1); } return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archHcubDomSave ( const ArchHcub * const archptr, const ArchHcubDom * const domnptr, FILE * restrict const stream) { if (fprintf (stream, ANUMSTRING " " ANUMSTRING " ", (Anum) domnptr->dimncur, (Anum) domnptr->bitsset) == EOF) { errorPrint ("archHcubDomSave: bad output"); return (1); } return (0); } /* This function tries to split a hypercube ** domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archHcubDomBipart ( const ArchHcub * const archptr, const ArchHcubDom * const domnptr, ArchHcubDom * restrict const dom0ptr, ArchHcubDom * restrict const dom1ptr) { if (domnptr->dimncur <= 0) /* Return if cannot bipartition more */ return (1); dom0ptr->dimncur = dom1ptr->dimncur = domnptr->dimncur - 1; dom0ptr->bitsset = domnptr->bitsset; dom1ptr->bitsset = domnptr->bitsset | (1 << dom1ptr->dimncur); return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archHcubDomIncl ( const ArchHcub * const archptr, const ArchHcubDom * const dom0ptr, const ArchHcubDom * const dom1ptr) { if ((dom0ptr->dimncur >= dom1ptr->dimncur) && (((dom0ptr->bitsset ^ dom1ptr->bitsset) >> dom0ptr->dimncur) == 0)) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_hcub.h000066400000000000000000000147001514310134000260060ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_hcub.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the hypercube graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 09 aug 1995 **/ /** # Version 3.1 : from : 11 jun 1996 **/ /** to : 11 jun 1996 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 13 may 1998 **/ /** # Version 4.0 : from : 11 nov 2003 **/ /** to : 11 nov 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 21 jan 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_HCUB_H_STRUCT #define ARCH_HCUB_H_STRUCT /*+ The binary hypercube definitions. +*/ typedef struct ArchHcub_ { Anum dimnnbr; /*+ Number of hypercube dimensions +*/ } ArchHcub; typedef struct ArchHcubDom_ { Anum dimncur; /*+ Current dimension to be set +*/ Anum bitsset; /*+ Bit set of set dimensions +*/ } ArchHcubDom; typedef struct ArchHcubMatch_ { ArchCoarsenMulti * multtab; /*+ Multinode array for all coarsenings +*/ Anum vertnbr; /*+ Number of vertices in fine graph +*/ } ArchHcubMatch; #endif /* ARCH_HCUB_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_HCUB_H_PROTO #define ARCH_HCUB_H_PROTO int archHcubArchLoad (ArchHcub * restrict const, FILE * restrict const); int archHcubArchSave (const ArchHcub * const, FILE * restrict const); #define archHcubArchFree NULL int archHcubMatchInit (ArchHcubMatch * restrict const, const ArchHcub * restrict const); void archHcubMatchExit (ArchHcubMatch * restrict const); Anum archHcubMatchMate (ArchHcubMatch * restrict const, ArchCoarsenMulti ** restrict const); ArchDomNum archHcubDomNum (const ArchHcub * const, const ArchHcubDom * const); int archHcubDomTerm (const ArchHcub * const, ArchHcubDom * restrict const, const ArchDomNum); Anum archHcubDomSize (const ArchHcub * const, const ArchHcubDom * const); #define archHcubDomWght archHcubDomSize Anum archHcubDomDist (const ArchHcub * const, const ArchHcubDom * const, const ArchHcubDom * const); int archHcubDomFrst (const ArchHcub * const, ArchHcubDom * restrict const); int archHcubDomLoad (const ArchHcub * const, ArchHcubDom * restrict const, FILE * restrict const); int archHcubDomSave (const ArchHcub * const, const ArchHcubDom * const, FILE * restrict const); int archHcubDomBipart (const ArchHcub * const, const ArchHcubDom * const, ArchHcubDom * restrict const, ArchHcubDom * restrict const); int archHcubDomIncl (const ArchHcub * const, const ArchHcubDom * const, const ArchHcubDom * const); #endif /* ARCH_HCUB_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_hcub_mpi.c000066400000000000000000000061471514310134000266540ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_hcub_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the hypercube **/ /** target architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_HCUB_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_hcub_mpi.h" /********************************************/ /* */ /* These are the binary hypercube routines. */ /* */ /********************************************/ /* This function creates the MPI_Datatype for ** the hypercube domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archHcubDomMpiType ( const ArchHcub * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (2, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_hcub_mpi.h000066400000000000000000000051551514310134000266570ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_hcub_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the hypercube graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archHcubDomMpiType (const ArchHcub * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_mesh.c000066400000000000000000001057271514310134000260260ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2015,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_mesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the mesh graph **/ /** target architectures. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 08 sep 1995 **/ /** # Version 3.1 : from : 22 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 16 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 09 jan 2004 **/ /** to : 10 mar 2005 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # The vertices of the (dX,dY) mesh are **/ /** numbered as terminals so that **/ /** t(0,0) = 0, t(1,0) = 1, **/ /** t(dX - 1, 0) = dX - 1, t(0,1) = dX, **/ /** and t(x,y) = (y * dX) + x. **/ /** The same holds for meshes of higher **/ /** dimensions: index increases in higher **/ /** dimensions result in higher terminal **/ /** domain numbers. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_mesh.h" /**********************************************/ /* */ /* These are the 2-dimensional mesh routines. */ /* */ /**********************************************/ /* This routine loads the ** bidimensional mesh architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archMesh2ArchLoad ( ArchMesh2 * restrict const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchMesh2) > sizeof (ArchDummy)) || (sizeof (ArchMesh2Dom) > sizeof (ArchDomDummy))) { errorPrint ("archMesh2ArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &archptr->c[0]) != 1) || (intLoad (stream, &archptr->c[1]) != 1) || (archptr->c[0] < 1) || (archptr->c[1] < 1)) { errorPrint ("archMesh2ArchLoad: bad input"); return (1); } archptr->dimnnbr = 2; return (0); } /* This routine saves the ** bidimensional mesh architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archMesh2ArchSave ( const ArchMesh2 * const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchMesh2) > sizeof (ArchDummy)) || (sizeof (ArchMesh2Dom) > sizeof (ArchDomDummy))) { errorPrint ("archMesh2ArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING " " ANUMSTRING "\n", (Anum) archptr->c[0], (Anum) archptr->c[1]) == EOF) { errorPrint ("archMesh2ArchSave: bad output"); return (1); } return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archMesh2DomNum ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const domptr) { return ((domptr->c[1][0] * archptr->c[0]) + domptr->c[0][0]); /* Return vertex number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archMesh2DomTerm ( const ArchMesh2 * const archptr, ArchMesh2Dom * const domptr, const ArchDomNum domnum) { if (domnum < (archptr->c[0] * archptr->c[1])) { /* If valid label */ domptr->c[0][0] = /* Set the domain */ domptr->c[0][1] = domnum % archptr->c[0]; domptr->c[1][0] = domptr->c[1][1] = domnum / archptr->c[0]; return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the rectangular domain. */ Anum archMesh2DomSize ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const domptr) { return ((domptr->c[0][1] - domptr->c[0][0] + 1) * (domptr->c[1][1] - domptr->c[1][0] + 1)); } /* This function returns the average ** distance between two rectangular ** domains (in fact the distance between ** the centers of the domains). */ Anum archMesh2DomDist ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const dom0ptr, const ArchMesh2Dom * const dom1ptr) { return (((abs (dom0ptr->c[0][0] + dom0ptr->c[0][1] - dom1ptr->c[0][0] - dom1ptr->c[0][1]) + 1) / 2) + ((abs (dom0ptr->c[1][0] + dom0ptr->c[1][1] - dom1ptr->c[1][0] - dom1ptr->c[1][1]) + 1) / 2)); } /* These functions try to split a rectangular ** domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archMesh2DomBipart ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const domptr, ArchMesh2Dom * restrict const dom0ptr, ArchMesh2Dom * restrict const dom1ptr) { Anum dimsiz[2]; int dimval; /* Dimension along which to split */ dimsiz[0] = domptr->c[0][1] - domptr->c[0][0]; dimsiz[1] = domptr->c[1][1] - domptr->c[1][0]; if ((dimsiz[0] | dimsiz[1]) == 0) /* Return if cannot bipartition more */ return (1); dimval = 1; if ((dimsiz[0] > dimsiz[1]) || /* Split domain in two along largest dimension */ ((dimsiz[0] == dimsiz[1]) && (archptr->c[0] > archptr->c[1]))) dimval = 0; if (dimval == 0) { /* Split across the X dimension */ dom0ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = (domptr->c[0][0] + domptr->c[0][1]) / 2; dom1ptr->c[0][0] = dom0ptr->c[0][1] + 1; dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = dom1ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = dom1ptr->c[1][1] = domptr->c[1][1]; } else { /* Split across the Y dimension */ dom0ptr->c[0][0] = dom1ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = (domptr->c[1][0] + domptr->c[1][1]) / 2; dom1ptr->c[1][0] = dom0ptr->c[1][1] + 1; dom1ptr->c[1][1] = domptr->c[1][1]; } return (0); } int archMesh2DomBipartO ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const domptr, ArchMesh2Dom * restrict const dom0ptr, ArchMesh2Dom * restrict const dom1ptr) { if ((domptr->c[0][0] == domptr->c[0][1]) && /* Return if cannot bipartition more */ (domptr->c[1][0] == domptr->c[1][1])) return (1); if (domptr->c[1][1] == domptr->c[1][0]) { /* If the Y dimension cannot be cut */ dom0ptr->c[0][0] = domptr->c[0][0]; /* Cut in the X dimension */ dom0ptr->c[0][1] = (domptr->c[0][0] + domptr->c[0][1]) / 2; dom1ptr->c[0][0] = dom0ptr->c[0][1] + 1; dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = dom1ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = dom1ptr->c[1][1] = domptr->c[1][1]; } else { /* If the Y dimension can be cut, cut it */ dom0ptr->c[0][0] = dom1ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = (domptr->c[1][0] + domptr->c[1][1]) / 2; dom1ptr->c[1][0] = dom0ptr->c[1][1] + 1; dom1ptr->c[1][1] = domptr->c[1][1]; } return (0); } int archMesh2DomBipartU ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const domptr, ArchMesh2Dom * restrict const dom0ptr, ArchMesh2Dom * restrict const dom1ptr) { if ((domptr->c[0][0] == domptr->c[0][1]) && /* Return if cannot bipartition more */ (domptr->c[1][0] == domptr->c[1][1])) return (1); if ((domptr->c[0][1] - domptr->c[0][0]) > /* Split domain unevenly along largest dimension */ (domptr->c[1][1] - domptr->c[1][0])) { dom0ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = (domptr->c[0][0] + domptr->c[0][1] + domptr->c[0][1]) / 3; dom1ptr->c[0][0] = dom0ptr->c[0][1] + 1; dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = dom1ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = dom1ptr->c[1][1] = domptr->c[1][1]; } else { dom0ptr->c[0][0] = dom1ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = (domptr->c[1][0] + domptr->c[1][1] + domptr->c[1][1]) / 3; dom1ptr->c[1][0] = dom0ptr->c[1][1] + 1; dom1ptr->c[1][1] = domptr->c[1][1]; } return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archMesh2DomIncl ( const ArchMesh2 * const archptr, const ArchMesh2Dom * const dom0ptr, const ArchMesh2Dom * const dom1ptr) { if ((dom0ptr->c[0][0] <= dom1ptr->c[0][0]) && (dom0ptr->c[0][1] >= dom1ptr->c[0][1]) && (dom0ptr->c[1][0] <= dom1ptr->c[1][0]) && (dom0ptr->c[1][1] >= dom1ptr->c[1][1])) return (1); return (0); } /**********************************************/ /* */ /* These are the 3-dimensional mesh routines. */ /* */ /**********************************************/ /* This routine loads the ** tridimensional mesh architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archMesh3ArchLoad ( ArchMesh3 * restrict const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchMesh3) > sizeof (ArchDummy)) || (sizeof (ArchMesh3Dom) > sizeof (ArchDomDummy))) { errorPrint ("archMesh3ArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &archptr->c[0]) != 1) || (intLoad (stream, &archptr->c[1]) != 1) || (intLoad (stream, &archptr->c[2]) != 1) || (archptr->c[0] < 1) || (archptr->c[1] < 1) || (archptr->c[2] < 1)) { errorPrint ("archMesh3ArchLoad: bad input"); return (1); } archptr->dimnnbr = 3; return (0); } /* This routine saves the ** tridimensional mesh architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archMesh3ArchSave ( const ArchMesh3 * const archptr, FILE * restrict const stream) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchMesh3) > sizeof (ArchDummy)) || (sizeof (ArchMesh3Dom) > sizeof (ArchDomDummy))) { errorPrint ("archMesh3ArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING " " ANUMSTRING " " ANUMSTRING "\n", (Anum) archptr->c[0], (Anum) archptr->c[1], (Anum) archptr->c[2]) == EOF) { errorPrint ("archMesh3ArchSave: bad output"); return (1); } return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archMesh3DomNum ( const ArchMesh3 * const archptr, const ArchMesh3Dom * const domptr) { return ((((domptr->c[2][0] * archptr->c[1]) + /* Return the vertex number */ domptr->c[1][0]) * archptr->c[0]) + domptr->c[0][0]); } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archMesh3DomTerm ( const ArchMesh3 * const archptr, ArchMesh3Dom * const domptr, const ArchDomNum domnum) { if (domnum < (archptr->c[0] * archptr->c[1] * archptr->c[2])) { /* If valid label */ domptr->c[0][0] = /* Set the domain */ domptr->c[0][1] = domnum % archptr->c[0]; domptr->c[1][0] = domptr->c[1][1] = (domnum / archptr->c[0]) % archptr->c[1]; domptr->c[2][0] = domptr->c[2][1] = domnum / (archptr->c[0] * archptr->c[1]); return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the cubic domain. */ Anum archMesh3DomSize ( const ArchMesh3 * const archptr, const ArchMesh3Dom * const domptr) { return ((domptr->c[0][1] - domptr->c[0][0] + 1) * (domptr->c[1][1] - domptr->c[1][0] + 1) * (domptr->c[2][1] - domptr->c[2][0] + 1)); } /* This function returns the average distance ** between two cubic domains (in fact the ** distance between the centers of the domains). */ Anum archMesh3DomDist ( const ArchMesh3 * const archptr, const ArchMesh3Dom * const dom0ptr, const ArchMesh3Dom * const dom1ptr) { return (((abs (dom0ptr->c[0][0] + dom0ptr->c[0][1] - dom1ptr->c[0][0] - dom1ptr->c[0][1]) + 1) / 2) + ((abs (dom0ptr->c[1][0] + dom0ptr->c[1][1] - dom1ptr->c[1][0] - dom1ptr->c[1][1]) + 1) / 2) + ((abs (dom0ptr->c[2][0] + dom0ptr->c[2][1] - dom1ptr->c[2][0] - dom1ptr->c[2][1]) + 1) / 2)); } /* This function tries to split a cubic ** domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archMesh3DomBipart ( const ArchMesh3 * const archptr, const ArchMesh3Dom * const domptr, ArchMesh3Dom * restrict const dom0ptr, ArchMesh3Dom * restrict const dom1ptr) { Anum dimsiz[3]; int dimtmp; int dimval; dimsiz[0] = domptr->c[0][1] - domptr->c[0][0]; dimsiz[1] = domptr->c[1][1] - domptr->c[1][0]; dimsiz[2] = domptr->c[2][1] - domptr->c[2][0]; if ((dimsiz[0] | dimsiz[1] | dimsiz[2]) == 0) /* Return if cannot bipartition more */ return (1); dimval = (archptr->c[1] > archptr->c[0]) ? 1 : 0; /* Assume all subdomain dimensions are equal */ if (archptr->c[2] > archptr->c[dimval]) /* Find priviledged dimension */ dimval = 2; dimtmp = dimval; /* Find best dimension */ if (dimsiz[(dimtmp + 1) % 3] > dimsiz[dimval]) dimval = (dimtmp + 1) % 3; if (dimsiz[(dimtmp + 2) % 3] > dimsiz[dimval]) dimval = (dimtmp + 2) % 3; if (dimval == 0) { /* Split domain in two along largest dimension */ dom0ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = (domptr->c[0][0] + domptr->c[0][1]) / 2; dom1ptr->c[0][0] = dom0ptr->c[0][1] + 1; dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = dom1ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = dom1ptr->c[1][1] = domptr->c[1][1]; dom0ptr->c[2][0] = dom1ptr->c[2][0] = domptr->c[2][0]; dom0ptr->c[2][1] = dom1ptr->c[2][1] = domptr->c[2][1]; } else if (dimval == 1) { dom0ptr->c[0][0] = dom1ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = (domptr->c[1][0] + domptr->c[1][1]) / 2; dom1ptr->c[1][0] = dom0ptr->c[1][1] + 1; dom1ptr->c[1][1] = domptr->c[1][1]; dom0ptr->c[2][0] = dom1ptr->c[2][0] = domptr->c[2][0]; dom0ptr->c[2][1] = dom1ptr->c[2][1] = domptr->c[2][1]; } else { dom0ptr->c[0][0] = dom1ptr->c[0][0] = domptr->c[0][0]; dom0ptr->c[0][1] = dom1ptr->c[0][1] = domptr->c[0][1]; dom0ptr->c[1][0] = dom1ptr->c[1][0] = domptr->c[1][0]; dom0ptr->c[1][1] = dom1ptr->c[1][1] = domptr->c[1][1]; dom0ptr->c[2][0] = domptr->c[2][0]; dom0ptr->c[2][1] = (domptr->c[2][0] + domptr->c[2][1]) / 2; dom1ptr->c[2][0] = dom0ptr->c[2][1] + 1; dom1ptr->c[2][1] = domptr->c[2][1]; } return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archMesh3DomIncl ( const ArchMesh3 * const archptr, const ArchMesh3Dom * const dom0ptr, const ArchMesh3Dom * const dom1ptr) { if ((dom0ptr->c[0][0] <= dom1ptr->c[0][0]) && (dom0ptr->c[0][1] >= dom1ptr->c[0][1]) && (dom0ptr->c[1][0] <= dom1ptr->c[1][0]) && (dom0ptr->c[1][1] >= dom1ptr->c[1][1]) && (dom0ptr->c[2][0] <= dom1ptr->c[2][0]) && (dom0ptr->c[2][1] >= dom1ptr->c[2][1])) return (1); return (0); } /**********************************************/ /* */ /* These are the x-dimensional mesh routines. */ /* */ /**********************************************/ /* This routine loads the X-dimensional mesh ** architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archMeshXArchLoad ( ArchMeshX * restrict const archptr, FILE * restrict const stream) { Anum dimnnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchMeshX) > sizeof (ArchDummy)) || (sizeof (ArchMeshXDom) > sizeof (ArchDomDummy))) { errorPrint ("archMeshXArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((intLoad (stream, &archptr->dimnnbr) != 1) || (archptr->dimnnbr > ARCHMESHDIMNMAX)) { errorPrint ("archMeshXArchLoad: bad input (1)"); return (1); } for (dimnnum = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { if ((intLoad (stream, &archptr->c[dimnnum]) != 1) || (archptr->c[dimnnum] < 1)) { errorPrint ("archMeshXArchLoad: bad input (2)"); return (1); } } return (0); } /* This routine saves the ** tridimensional torus architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archMeshXArchSave ( const ArchMeshX * const archptr, FILE * restrict const stream) { Anum dimnnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchMeshX) > sizeof (ArchDummy)) || (sizeof (ArchMeshXDom) > sizeof (ArchDomDummy))) { errorPrint ("archMeshXArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING " ", (Anum) archptr->dimnnbr) == EOF) { errorPrint ("archMeshXArchSave: bad output (1)"); return (1); } for (dimnnum = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { if (fprintf (stream, ANUMSTRING " ", (Anum) archptr->c[dimnnum]) == EOF) { errorPrint ("archMeshXArchSave: bad output (2)"); return (1); } } if (fprintf (stream, "\n") == EOF) { errorPrint ("archMeshArchSave: bad output (3)"); return (1); } return (0); } /* This routine initializes the matching ** data structure according to the number ** of vertices to be managed. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ int archMeshXMatchInit ( ArchMeshXMatch * restrict const matcptr, const ArchMeshX * restrict const archptr) { Anum dimnnbr; Anum dimnnum; Anum multnbr; const Anum * restrict const dimntab = archptr->c; dimnnbr = archptr->dimnnbr; multnbr = (dimntab[0] + 1) >> 1; /* In case dimension 0, which will be coarsened first, is odd */ for (dimnnum = 1; dimnnum < dimnnbr; dimnnum ++) multnbr *= dimntab[dimnnum]; if ((matcptr->multtab = memAlloc (multnbr * sizeof (ArchCoarsenMulti))) == NULL) { errorPrint ("archMeshXMatchInit: out of memory"); return (1); } matcptr->dimnnbr = dimnnbr; /* Set number of dimensions */ matcptr->dimnnum = 0; /* Set first dimension to consider for coarsening */ memCpy (matcptr->dimntab, dimntab, dimnnbr * sizeof (Anum)); memSet (matcptr->passtab, 0, dimnnbr * sizeof (int)); return (0); } /* This routine frees the matching data ** structure. ** It returns: ** - void : in all cases. */ void archMeshXMatchExit ( ArchMeshXMatch * restrict const matcptr) { memFree (matcptr->multtab); } /* This routine computes a matching from ** the current state of the matching structure. ** It returns: ** - >=0 : size of matching. ** - <0 : on error. */ Anum archMeshXMatchMate ( ArchMeshXMatch * restrict const matcptr, ArchCoarsenMulti ** restrict const multptr) { ArchCoarsenMulti * restrict coarmulttab; Anum coarvertnum; Anum finevertnbr; Anum finevertnum; Anum finevertdlt; /* Span of blocks of fine vertices that have same characteristics */ Anum fineverttmp; /* Next fine vertex index that will result in change in dimension index */ Anum * restrict dimntab; /* Array of mesh dimensions */ Anum dimnnbr; Anum dimntmp; Anum dimnnum; /* Number of dimension that will be coarsened */ Anum indxnbr; /* NUmber of fine indices in coarsened dimension */ Anum indxnum; /* Current fine vertex index in coarsened dimension */ Anum indxval; /* Value of dimension index that will hold single nodes */ int passnum; /* Flag that indicates whether even or odd dimension indices are matched */ dimnnbr = matcptr->dimnnbr; dimntab = matcptr->dimntab; for (dimnnum = matcptr->dimnnum, dimntmp = (dimnnum + dimnnbr - 1) % dimnnbr; /* Search for a dimension to coarsen */ dimntab[dimnnum] <= 1; dimnnum = (dimnnum + 1) % dimnnbr) { if (dimnnum == dimntmp) /* If no dimension can be coarsened, abort */ return (-1); } matcptr->dimnnum = (dimnnum + 1) % dimnnbr; /* Record next dimension to process */ for (dimntmp = 0, finevertdlt = 1; /* Compute stride of blocks of fine vertices to be coarsened according to selected dimension */ dimntmp < dimnnum; dimntmp ++) finevertdlt *= dimntab[dimntmp]; for (finevertnbr = finevertdlt; /* Compute number of fine vertices */ dimntmp < dimnnbr; dimntmp ++) finevertnbr *= dimntab[dimntmp]; indxnbr = dimntab[dimnnum]; /* Get size of selected dimension */ dimntab[dimnnum] = (indxnbr + 1) >> 1; /* Record new size of selected dimension */ if ((indxnbr & 1) != 0) { /* If dimension to consider is odd */ passnum = matcptr->passtab[dimnnum] ^= 1; /* Record that pass did matter for this dimension */ indxval = (passnum != 0) ? 0 : indxnbr - 1; /* Set index that will contain single nodes */ } else { passnum = 0; /* Start multinodes from first index */ indxval = -1; /* No need to have single nodes */ } coarmulttab = matcptr->multtab; for (finevertnum = coarvertnum = indxnum = 0, fineverttmp = finevertdlt - 1; finevertnum < finevertnbr; finevertnum ++) { if (indxnum == indxval) { /* If dimension index is that of single nodes */ coarmulttab[coarvertnum].vertnum[0] = /* Create single node */ coarmulttab[coarvertnum].vertnum[1] = finevertnum; coarvertnum ++; } else if ((indxnum & 1) == passnum) { /* Else if dimension index is that of first mate */ coarmulttab[coarvertnum].vertnum[0] = finevertnum; /* Create multinode */ coarmulttab[coarvertnum].vertnum[1] = finevertnum + finevertdlt; coarvertnum ++; } if (finevertnum == fineverttmp) { /* If dimension stride reached */ indxnum = (indxnum + 1) % indxnbr; /* Increase dimension index */ fineverttmp += finevertdlt; /* Compute next step to reach */ } } #ifdef SCOTCH_DEBUG_ARCH2 if (coarvertnum * indxnbr != finevertnbr * ((indxnbr + 1) >> 1)) { errorPrint ("archMeshXMatchMate: internal error"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ *multptr = coarmulttab; /* Always provide same mating array */ return (coarvertnum); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archMeshXDomNum ( const ArchMeshX * const archptr, const ArchMeshXDom * const domnptr) { Anum dimnnum; Anum domnnum; for (dimnnum = archptr->dimnnbr - 2, domnnum = domnptr->c[archptr->dimnnbr - 1][0]; dimnnum >= 0; dimnnum --) domnnum = (domnnum * archptr->c[dimnnum]) + domnptr->c[dimnnum][0]; return (domnnum); /* Return vertex number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archMeshXDomTerm ( const ArchMeshX * const archptr, ArchMeshXDom * const domnptr, const ArchDomNum domnnum) { Anum dimnnum; Anum domntmp; for (dimnnum = 0, domntmp = domnnum; dimnnum < archptr->dimnnbr; dimnnum ++) { /* Set the domain */ domnptr->c[dimnnum][0] = domnptr->c[dimnnum][1] = domntmp % archptr->c[dimnnum]; domntmp /= archptr->c[dimnnum]; } if (domntmp > 0) /* If residual is not zero, terminal domain number is invalid since too high */ return (1); return (0); } /* This function returns the number of ** elements in the cubic domain. */ Anum archMeshXDomSize ( const ArchMeshX * const archptr, const ArchMeshXDom * const domnptr) { Anum dimnnum; Anum domnsiz; for (dimnnum = 0, domnsiz = 1; dimnnum < archptr->dimnnbr; dimnnum ++) domnsiz *= domnptr->c[dimnnum][1] - domnptr->c[dimnnum][0] + 1; return (domnsiz); } /* This function returns the average distance ** between two cubic domains (in fact the ** distance between the centers of the domains). */ Anum archMeshXDomDist ( const ArchMeshX * const archptr, const ArchMeshXDom * const dom0ptr, const ArchMeshXDom * const dom1ptr) { Anum dimnnum; Anum distval; Anum disttmp; for (dimnnum = 0, distval = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { disttmp = abs (dom0ptr->c[dimnnum][0] + dom0ptr->c[dimnnum][1] - dom1ptr->c[dimnnum][0] - dom1ptr->c[dimnnum][1]); distval += (disttmp > archptr->c[dimnnum]) ? (2 * archptr->c[dimnnum] - disttmp) : disttmp; } return (distval >> 1); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archMeshXDomFrst ( const ArchMeshX * const archptr, ArchMeshXDom * restrict const domptr) { Anum dimnnum; for (dimnnum = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { domptr->c[dimnnum][0] = 0; domptr->c[dimnnum][1] = archptr->c[dimnnum] - 1; } return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archMeshXDomLoad ( const ArchMeshX * const archptr, ArchMeshXDom * restrict const domptr, FILE * restrict const stream) { Anum dimnnum; for (dimnnum = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { if ((intLoad (stream, &domptr->c[dimnnum][0]) != 1) || (intLoad (stream, &domptr->c[dimnnum][1]) != 1) || (domptr->c[dimnnum][0] > domptr->c[dimnnum][1]) || (domptr->c[dimnnum][0] < 0)) { errorPrint ("archMeshXDomLoad: bad input"); return (1); } } return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archMeshXDomSave ( const ArchMeshX * const archptr, const ArchMeshXDom * const domptr, FILE * restrict const stream) { Anum dimnnum; for (dimnnum = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { if (fprintf (stream, ANUMSTRING " " ANUMSTRING " ", (Anum) domptr->c[dimnnum][0], (Anum) domptr->c[dimnnum][1]) == EOF) { errorPrint ("archMeshXDomSave: bad output"); return (1); } } return (0); } /* This function tries to split a cubic ** domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archMeshXDomBipart ( const ArchMeshX * const archptr, const ArchMeshXDom * const domptr, ArchMeshXDom * restrict const dom0ptr, ArchMeshXDom * restrict const dom1ptr) { Anum archdimsizmax; /* Maximum span on largest architecture dimension */ Anum domndimsizmax; /* Maximum span on largest domain dimension */ Anum domndimval; /* Dimension to be split */ Anum domndimflg; /* Flag set if subdomain can be bipartitioned */ Anum domndimtmp; Anum dimnnum; for (dimnnum = domndimval = archptr->dimnnbr - 1, archdimsizmax = domndimflg = 0, domndimsizmax = -1; dimnnum >= 0; dimnnum --) { Anum archdimsiz; Anum domndimsiz; Anum domndim0; Anum domndim1; dom0ptr->c[dimnnum][0] = /* Set up subdomain data as copy of original domain data */ dom1ptr->c[dimnnum][0] = domndim0 = domptr->c[dimnnum][0]; dom0ptr->c[dimnnum][1] = dom1ptr->c[dimnnum][1] = domndim1 = domptr->c[dimnnum][1]; domndimsiz = domndim1 - domndim0; /* Span on current dimension */ domndimflg |= domndimsiz; /* Flag set if at least one is not zero */ if (domndimsiz < domndimsizmax) /* If dimension is too small, skip it */ continue; archdimsiz = archptr->c[dimnnum]; if ((domndimsiz == domndimsizmax) && /* If dimension to split is not priviledged, skip it */ (archdimsiz <= archdimsizmax)) continue; archdimsizmax = archdimsiz; /* Record dimension to split */ domndimsizmax = domndimsiz; domndimval = dimnnum; } if (domndimflg == 0) /* Return if cannot bipartition more */ return (1); domndimtmp = (domptr->c[domndimval][0] + domptr->c[domndimval][1]) / 2; dom0ptr->c[domndimval][1] = domndimtmp; dom1ptr->c[domndimval][0] = domndimtmp + 1; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archMeshXDomIncl ( const ArchMeshX * const archptr, const ArchMeshXDom * const dom0ptr, const ArchMeshXDom * const dom1ptr) { Anum dimnnum; for (dimnnum = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { if ((dom1ptr->c[dimnnum][0] < dom0ptr->c[dimnnum][0]) || (dom1ptr->c[dimnnum][1] > dom0ptr->c[dimnnum][1])) return (0); } return (1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_mesh.h000066400000000000000000000250331514310134000260220ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_mesh.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the mesh graph target architecture **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 17 aug 1995 **/ /** # Version 3.1 : from : 22 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 16 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 09 jan 2004 **/ /** to : 09 jan 2004 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 21 jan 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_MESH_H_STRUCT #define ARCH_MESH_H_STRUCT /*+ Maximum dimension. +*/ #define ARCHMESHDIMNMAX 5 /* Maximum dimension (at least 3) */ /*+ The xD-mesh definitions. +*/ typedef struct ArchMeshX_ { Anum dimnnbr; /*+ Number of mesh dimensions +*/ Anum c[ARCHMESHDIMNMAX]; /*+ Mesh dimensions +*/ } ArchMeshX; typedef struct ArchMeshXDom_ { Anum c[ARCHMESHDIMNMAX][2]; /*+ Inclusive box coordinates +*/ } ArchMeshXDom; typedef struct ArchMeshXMatch_ { ArchCoarsenMulti * multtab; /*+ Multinode array for all coarsenings +*/ Anum dimnnbr; /*+ Number of mesh dimensions +*/ Anum dimnnum; /*+ Current dimension to coarsen +*/ Anum dimntab[ARCHMESHDIMNMAX]; /*+ Mesh dimensions +*/ int passtab[ARCHMESHDIMNMAX]; /*+ Flags for coarsening along dimensions +*/ } ArchMeshXMatch; /*+ The 2D-mesh definitions. +*/ #define ArchMesh2 ArchMeshX #define ArchMesh2Dom ArchMeshXDom #define ArchMesh2Match ArchMeshXMatch /*+ The 3D-mesh definitions. +*/ #define ArchMesh3 ArchMeshX #define ArchMesh3Dom ArchMeshXDom #define ArchMesh3Match ArchMeshXMatch #endif /* ARCH_MESH_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_MESH_H_PROTO #define ARCH_MESH_H_PROTO int archMesh2ArchLoad (ArchMesh2 * restrict const, FILE * restrict const); int archMesh2ArchSave (const ArchMesh2 * const, FILE * restrict const); #define archMesh2ArchFree NULL #define archMesh2MatchInit archMeshXMatchInit #define archMesh2MatchExit archMeshXMatchExit #define archMesh2MatchMate archMeshXMatchMate ArchDomNum archMesh2DomNum (const ArchMesh2 * const, const ArchMesh2Dom * const); int archMesh2DomTerm (const ArchMesh2 * const, ArchMesh2Dom * restrict const, const ArchDomNum); Anum archMesh2DomSize (const ArchMesh2 * const, const ArchMesh2Dom * const); #define archMesh2DomWght archMesh2DomSize Anum archMesh2DomDist (const ArchMesh2 * const, const ArchMesh2Dom * const, const ArchMesh2Dom * const); #define archMesh2DomFrst archMeshXDomFrst #define archMesh2DomLoad archMeshXDomLoad #define archMesh2DomSave archMeshXDomSave int archMesh2DomBipart (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const); int archMesh2DomBipartO (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const); int archMesh2DomBipartU (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const); int archMesh2DomIncl (const ArchMesh2 * const, const ArchMesh2Dom * const, const ArchMesh2Dom * const); int archMesh3ArchLoad (ArchMesh3 * restrict const, FILE * restrict const); int archMesh3ArchSave (const ArchMesh3 * const, FILE * restrict const); #define archMesh3ArchFree NULL #define archMesh3MatchInit archMeshXMatchInit #define archMesh3MatchExit archMeshXMatchExit #define archMesh3MatchMate archMeshXMatchMate ArchDomNum archMesh3DomNum (const ArchMesh3 * const, const ArchMesh3Dom * const); int archMesh3DomTerm (const ArchMesh3 * const, ArchMesh3Dom * restrict const, const ArchDomNum); Anum archMesh3DomSize (const ArchMesh3 * const, const ArchMesh3Dom * const); #define archMesh3DomWght archMesh3DomSize Anum archMesh3DomDist (const ArchMesh3 * const, const ArchMesh3Dom * const, const ArchMesh3Dom * const); #define archMesh3DomFrst archMeshXDomFrst #define archMesh3DomLoad archMeshXDomLoad #define archMesh3DomSave archMeshXDomSave int archMesh3DomBipart (const ArchMesh3 * const, const ArchMesh3Dom * const, ArchMesh3Dom * restrict const, ArchMesh3Dom * restrict const); int archMesh3DomIncl (const ArchMesh3 * const, const ArchMesh3Dom * const, const ArchMesh3Dom * const); int archMeshXArchLoad (ArchMeshX * restrict const, FILE * restrict const); int archMeshXArchSave (const ArchMeshX * const, FILE * restrict const); #define archMeshXArchFree NULL int archMeshXMatchInit (ArchMeshXMatch * restrict const, const ArchMeshX * restrict const); int archMeshXMatchInit2 (ArchMeshXMatch * restrict const, const Anum, const Anum * restrict const); void archMeshXMatchExit (ArchMeshXMatch * restrict const); Anum archMeshXMatchMate (ArchMeshXMatch * restrict const, ArchCoarsenMulti ** restrict const); ArchDomNum archMeshXDomNum (const ArchMeshX * const, const ArchMeshXDom * const); int archMeshXDomTerm (const ArchMeshX * const, ArchMeshXDom * restrict const, const ArchDomNum); Anum archMeshXDomSize (const ArchMeshX * const, const ArchMeshXDom * const); #define archMeshXDomWght archMeshXDomSize Anum archMeshXDomDist (const ArchMeshX * const, const ArchMeshXDom * const, const ArchMeshXDom * const); int archMeshXDomFrst (const ArchMeshX * const, ArchMeshXDom * const); int archMeshXDomLoad (const ArchMeshX * const, ArchMeshXDom * const, FILE * restrict const); int archMeshXDomSave (const ArchMeshX * const, const ArchMeshXDom * const, FILE * restrict const); int archMeshXDomBipart (const ArchMeshX * const, const ArchMeshXDom * const, ArchMeshXDom * restrict const, ArchMeshXDom * restrict const); int archMeshXDomIncl (const ArchMeshX * const, const ArchMeshXDom * const, const ArchMeshXDom * const); #endif /* ARCH_MESH_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_mesh_mpi.c000066400000000000000000000102751514310134000266640ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_mesh_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the mesh graph **/ /** target architectures. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_HCUB_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_mesh_mpi.h" /**********************************************/ /* */ /* These are the 2-dimensional mesh routines. */ /* */ /**********************************************/ /* This function creates the MPI_Datatype for ** the 2D mesh domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archMesh2DomMpiType ( const ArchMesh2 * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (4, typeptr)); } /**********************************************/ /* */ /* These are the 3-dimensional mesh routines. */ /* */ /**********************************************/ /* This function creates the MPI_Datatype for ** the 3D mesh domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archMesh3DomMpiType ( const ArchMesh3 * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (6, typeptr)); } /**********************************************/ /* */ /* These are the x-dimensional mesh routines. */ /* */ /**********************************************/ /* This function creates the MPI_Datatype for ** the xD mesh domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archMeshXDomMpiType ( const ArchMeshX * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (2 * archptr->dimnnbr, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_mesh_mpi.h000066400000000000000000000054601514310134000266710ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_mesh_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the mesh graph target architecture **/ /** functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archMesh2DomMpiType (const ArchMesh2 * const, MPI_Datatype * const); int archMesh3DomMpiType (const ArchMesh3 * const, MPI_Datatype * const); int archMeshXDomMpiType (const ArchMeshX * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_mpi.c000066400000000000000000000136771514310134000256610ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the MPI-related **/ /** generic target architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_MPI #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "arch_mpi.h" #include "arch_cmplt_mpi.h" #include "arch_cmpltw_mpi.h" #include "arch_deco_mpi.h" #include "arch_deco2_mpi.h" #include "arch_dist_mpi.h" #include "arch_hcub_mpi.h" #include "arch_mesh_mpi.h" #include "arch_sub_mpi.h" #include "arch_tleaf_mpi.h" #include "arch_torus_mpi.h" #include "arch_vcmplt_mpi.h" #include "arch_vhcub_mpi.h" /* ** The static definitions. */ static const ArchMpiClass archMpiClassTab[] = { ARCHMPICLASSBLOCK (Cmplt), ARCHMPICLASSBLOCK (Cmpltw), ARCHMPICLASSBLOCK (Deco), ARCHMPICLASSBLOCK (Deco2), /* Hidden, type-2 decomposition-defined architecture */ ARCHMPICLASSBLOCK (Dist), ARCHMPICLASSBLOCK (Hcub), ARCHMPICLASSBLOCK (Tleaf), ARCHMPICLASSBLOCK (Ltleaf), ARCHMPICLASSBLOCK (Mesh2), #ifdef SCOTCH_DEBUG_ARCH3 ARCHMPICLASSBLOCK (Mesh2o), ARCHMPICLASSBLOCK (Mesh2u), #endif /* SCOTCH_DEBUG_ARCH3 */ ARCHMPICLASSBLOCK (Mesh3), ARCHMPICLASSBLOCK (MeshX), ARCHMPICLASSBLOCK (Sub), ARCHMPICLASSBLOCK (Torus2), ARCHMPICLASSBLOCK (Torus3), ARCHMPICLASSBLOCK (TorusX), ARCHMPICLASSBLOCK (Vcmplt), ARCHMPICLASSBLOCK (Vhcub), ARCHMPICLASSBLOCKNULL }; /****************************************/ /* */ /* These are the entry points for the */ /* MPI-related generic domain routines. */ /* */ /****************************************/ /* This routine creates a MPI datatype for the ** domain of the given target architecture. ** It returns: ** - 0 : MPI type has been created and commited. ** - !0 : on error. */ int archDomMpiType ( const Arch * restrict const archptr, MPI_Datatype * restrict const typeptr) { MPI_Datatype typedat; int o; o = archMpiClassTab [archClassNum (archptr->clasptr)].domMpiType (&archptr->data, &typedat); /* Get base datatype */ if (o == 0) { if ((MPI_Type_create_resized (typedat, 0, sizeof (ArchDom), typeptr) != MPI_SUCCESS) || (MPI_Type_commit (typeptr) != MPI_SUCCESS)) o = 1; } MPI_Type_free (&typedat); /* Free intermediate datatype */ return (o); } /* This routine creates a MPI datatype of ** a domain comprising a given number of ** consecutive Anum's. ** It returns: ** - 0 : MPI type has been created and commited. ** - !0 : on error. */ int archDomMpiTypeAnum ( int anumnbr, MPI_Datatype * const typeptr) { return ((MPI_Type_contiguous (anumnbr, ANUM_MPI, typeptr) == MPI_SUCCESS) ? 0 : 1); /* Created MPI types have to be committed */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_mpi.h000066400000000000000000000064561514310134000256630ustar00rootroot00000000000000/* Copyright 2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the MPI-related generic target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 18 feb 2018 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ #define ARCH_MPI_H /* ** The type and structure definitions. */ /*+ The domain number type. +*/ #define ANUM_MPI COMM_INT /* MPI type for Anum is MPI type for INT */ /*+ The architecture class type. +*/ typedef int (* ArchDomMpiFunc) (const ArchDummy * const, MPI_Datatype * const); typedef struct ArchMpiClass_ { ArchDomMpiFunc domMpiType; /*+ Terminal domain MPI type building function +*/ } ArchMpiClass; /* ** The function prototypes. */ int archDomMpiType (const Arch * const, MPI_Datatype * const); int archDomMpiTypeAnum (const int, MPI_Datatype * const); /* ** The macro definitions. */ #define ARCHMPICLASSBLOCK(n) { (ArchDomMpiFunc) arch##n##DomMpiType } #define ARCHMPICLASSBLOCKNULL { NULL } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_sub.c000066400000000000000000000656431514310134000256650ustar00rootroot00000000000000/* Copyright 2015,2016,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_sub.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the sub- **/ /** architecture meta-architecture **/ /** functions. **/ /** **/ /** DATES : # Version 6.0 : from : 13 mar 2015 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 18 feb 2018 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_sub.h" /**********************************/ /* */ /* These are the sub-architecture */ /* meta-architecture routines. */ /* */ /**********************************/ /* This routine loads the distance ** graph architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archSubArchLoad ( ArchSub * restrict const subarchptr, FILE * restrict const stream) { Arch * orgarchptr; Anum termnbr; Anum termnum; Anum * restrict termtab; int o; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchSub) > sizeof (ArchDummy)) || (sizeof (ArchSubDom) > sizeof (ArchDomDummy))) { errorPrint ("archSubArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (intLoad (stream, &termnbr) != 1) { errorPrint ("archSubArchLoad: bad input (1)"); return (1); } if ((termtab = memAlloc (termnbr * sizeof (Anum))) == NULL) { errorPrint ("archSubArchLoad: out of memory (1)"); return (1); } for (termnum = 0; termnum < termnbr; termnum ++) { if (intLoad (stream, &termtab[termnum]) != 1) { errorPrint ("archSubArchLoad: bad input (2)"); memFree (termtab); return (1); } } if ((orgarchptr = memAlloc (sizeof (Arch))) == NULL) { errorPrint ("archSubArchLoad: out of memory (2)"); memFree (termtab); return (1); } o = archLoad (orgarchptr, stream); if (o == 0) o = archSubArchBuild (subarchptr, orgarchptr, termnbr, termtab); if (o != 0) { archExit (orgarchptr); memFree (orgarchptr); } memFree (termtab); return (o); } /* This routine saves the ** distance graph architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archSubArchSave ( const ArchSub * const archptr, FILE * restrict const stream) { Anum termnbr; Anum termnum; const ArchSubTerm * restrict termtab; #ifdef SCOTCH_DEBUG_ARCH1 if (sizeof (ArchSub) > sizeof (ArchDummy)) { errorPrint ("archSubArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ termnbr = archptr->termnbr; if (fprintf (stream, ANUMSTRING, (Anum) termnbr) == EOF) { errorPrint ("archSubArchSave: bad output (1)"); return (1); } for (termnum = 0, termtab = archptr->termtab; termnum < termnbr; termnum ++) { if (fprintf (stream, " " ANUMSTRING, (Anum) termtab[termnum].termnum) == EOF) { errorPrint ("archSubArchSave: bad output (2)"); return (1); } } if (fprintf (stream, "\n") == EOF) { errorPrint ("archSubArchSave: bad output (3)"); return (1); } return (archSave (archptr->archptr, stream)); } /* This routine frees the sub-architecture structures. ** It returns: ** - 0 : if the architecture has been successfully freed. ** - !0 : on error. */ int archSubArchFree ( ArchSub * const archptr) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchSub) > sizeof (ArchDummy)) || (sizeof (ArchSubDom) > sizeof (ArchDomDummy))) { errorPrint ("archSubArchFree: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if ((archArch (archptr)->flagval & ARCHFREE) != 0) { /* If sub-architecture needs to be freed too */ archFree (archptr->archptr); memFree (archptr->archptr); } memFree (archptr->termtab); /* Free group leader */ return (0); } /* This routine builds the recursive coarsening ** tree of an architecture. The coarsening is ** performed by applying a variable function that ** operates on a specific set of data. ** It returns: ** - !NULL : root of the recursive coarsening tree. ** - NULL : on error. */ ArchSubTree * archSubArchBuild2 ( void * dataptr, Anum funcptr (void *, ArchCoarsenMulti * restrict *), ArchSubTree * const finetreetab, const Anum finevertnbr) { ArchCoarsenMulti * restrict coarmulttab; ArchSubTree * restrict coartreetab; Anum coarvertnbr; Anum coarvertnum; ArchSubTree * rootptr; if (finevertnbr <= 1) { /* If recursion achieved, start building architecture */ finetreetab[-1].sonstab[0] = NULL; /* TRICK: no other block to link with */ return (finetreetab); /* Return root of subdomain tree */ } if ((coarvertnbr = funcptr (dataptr, &coarmulttab)) < 0) { /* Perform matching */ errorPrint ("archSubArchBuild2: cannot create matching"); return (NULL); } if ((coartreetab = memAlloc ((coarvertnbr + 1) * sizeof (ArchSubTree))) == NULL) { /* TRICK: One more slot to link to coarser array */ errorPrint ("archSubArchBuild2: out of memory"); return (NULL); } finetreetab[-1].sonstab[0] = coartreetab; /* TRICK: Link to coarse array */ coartreetab ++; /* Hide first slot */ for (coarvertnum = 0; coarvertnum < coarvertnbr; coarvertnum ++) { /* Un-based coarse vertex indices */ Anum finevertnum0; Anum finevertnum1; Anum coardomnsiz; Anum coardomnsiz1; Anum coardomnwgt; Anum coartermnum; ArchSubTree * son0ptr; ArchSubTree * son1ptr; finevertnum0 = coarmulttab[coarvertnum].vertnum[0]; /* Fine vertices must be un-based else mischief may occur */ finevertnum1 = coarmulttab[coarvertnum].vertnum[1]; coardomnsiz = finetreetab[finevertnum0].domnsiz; coardomnwgt = finetreetab[finevertnum0].domnwgt; coartermnum = finetreetab[finevertnum0].termnum; son0ptr = (coardomnsiz > 0) ? &finetreetab[finevertnum0] : NULL; son1ptr = NULL; if (finevertnum1 != finevertnum0) { /* If multinode comprises two fine nodes */ Anum finetermnum1; coardomnsiz1 = finetreetab[finevertnum1].domnsiz; /* Add contributions from second node */ coardomnsiz += coardomnsiz1; coardomnwgt += finetreetab[finevertnum1].domnwgt; finetermnum1 = finetreetab[finevertnum1].termnum; if (finetermnum1 < coartermnum) /* If smaller terminal number found */ coartermnum = finetermnum1; /* Keep it */ if (coardomnsiz1 > 0) son1ptr = &finetreetab[finevertnum1]; } coartreetab[coarvertnum].domnsiz = coardomnsiz; coartreetab[coarvertnum].domnwgt = coardomnwgt; coartreetab[coarvertnum].termnum = coartermnum; coartreetab[coarvertnum].vertnum = coarvertnum; /* Un-based multinode number */ coartreetab[coarvertnum].sonstab[0] = son0ptr; /* Create links to son slot(s) */ coartreetab[coarvertnum].sonstab[1] = son1ptr; } rootptr = archSubArchBuild2 (dataptr, funcptr, coartreetab, coarvertnbr); if (rootptr == NULL) /* On error, do not keep tree arrays */ memFree (coartreetab - 1); return (rootptr); } /* This routine collapses the recursive coarsening tree ** into a decomposition-defined tree, by removing single ** vertices that have not been collapsed. ** It returns: ** - the first free index in the domain array. */ static Anum archSubArchBuild3 ( ArchSubData * restrict const domntab, /*+ Domain array to fill [domnnbr] +*/ ArchSubTerm * restrict const termtab, /*+ Terminal domain array to fill [termnbr] +*/ const ArchSubTree * restrict const treeptr, /*+ Pointer to current node being traversed +*/ const Anum domnnum, /*+ Domain number of current node +*/ const Anum domnidx) /*+ Current first free slot in domain array +*/ { Anum termnum; Anum didxtmp; const ArchSubTree * son0ptr; const ArchSubTree * son1ptr; const ArchSubTree * sonsptr; son0ptr = treeptr->sonstab[0]; son1ptr = treeptr->sonstab[1]; sonsptr = NULL; if (son0ptr != NULL) /* If node is a single node, traverse it without any processing */ sonsptr = son0ptr; if (son1ptr != NULL) sonsptr = (sonsptr != NULL) ? NULL : son1ptr; if (sonsptr != NULL) return (archSubArchBuild3 (domntab, termtab, sonsptr, domnnum, domnidx)); domntab[domnidx].domnnum = domnnum; domntab[domnidx].domnsiz = treeptr->domnsiz; domntab[domnidx].domnwgt = treeptr->domnwgt; termnum = domntab[domnidx].termnum = treeptr->termnum; didxtmp = domnidx + 1; if (son0ptr != NULL) { /* If node is a branch node */ Anum domntmp; domntmp = domnnum * 2; /* Domain number of first son */ domntab[didxtmp].dfatidx = domnidx; domntab[domnidx].dsubidx[0] = didxtmp; didxtmp = archSubArchBuild3 (domntab, termtab, son0ptr, domntmp, didxtmp); domntab[didxtmp].dfatidx = domnidx; domntab[domnidx].dsubidx[1] = didxtmp; didxtmp = archSubArchBuild3 (domntab, termtab, son1ptr, domntmp + 1, didxtmp); } else { domntab[domnidx].dsubidx[0] = domntab[domnidx].dsubidx[1] = -1; termtab[termnum].domnidx = domnidx; } return (didxtmp); } /* This routine builds the sub-architecture of an ** original architecture. ** It returns: ** - 0 : if the sub-architecture has been successfully built. ** - 1 : if the initial architecture does not support sub architectures. ** - 2 : on error. */ int archSubArchBuild ( ArchSub * const subarchptr, Arch * const orgarchptr, const Anum vnumnbr, /* Number of terminal domains in sub-architecture */ const Anum * const vnumtab) /* Ordered list of remaining terminal numbers */ { Anum orgtermnbr; /* Number of terminals in original graph */ Anum orgtermnum; ArchDom orgdomndat; /* Domain in original architecture */ ArchMatchDummy matcdat; /* Data for successive matchings */ ArchSubTree * rootptr; ArchSubTree * restrict treetab; ArchSubTree * restrict treetmp; ArchSubTerm * restrict termtab; ArchSubData * restrict domntab; Anum domnnbr; /* Number of domains */ Anum vnumnum; #ifdef SCOTCH_DEBUG_ARCH1 const char * messptr; /* Pointer to error message */ #endif /* SCOTCH_DEBUG_ARCH1 */ if ((orgarchptr->clasptr->flagval & ARCHVAR) != 0) { errorPrint ("archSubArchBuild: variable-sized architectures not supported"); return (1); } if (orgarchptr->clasptr->matchInit == NULL) { errorPrint ("archSubArchBuild: architecture not supported"); return (1); } archDomFrst (orgarchptr, &orgdomndat); /* Get number of terminal domains in original architecture */ orgtermnbr = archDomSize (orgarchptr, &orgdomndat); #ifdef SCOTCH_DEBUG_ARCH1 if ((vnumnbr < 0) || (vnumnbr > orgtermnbr)) { errorPrint ("archSubArchBuild: invalid number of terminal domains"); return (2); } messptr = NULL; #endif /* SCOTCH_DEBUG_ARCH1 */ domnnbr = 2 * vnumnbr - 1; if (memAllocGroup ((void **) (void *) &termtab, (size_t) (vnumnbr * sizeof (ArchSubTerm)), &domntab, (size_t) (domnnbr * sizeof (ArchSubData)), NULL) == NULL) { errorPrint ("archSubArchBuild: out of memory (1)"); return (2); } if ((treetab = memAlloc ((orgtermnbr + 1) * sizeof (ArchSubTree))) == NULL) { /* TRICK: One more slot to link to coarser array */ errorPrint ("archSubArchBuild: out of memory (2)"); memFree (termtab); return (2); } if (orgarchptr->clasptr->matchInit (&matcdat, &orgarchptr->data) != 0) { /* Initialize matching structure with original architecture data */ errorPrint ("archSubArchBuild: cannot initialize matching structure"); memFree (treetab); memFree (termtab); return (2); } treetab ++; /* TRICK: Hide first slot */ subarchptr->archptr = orgarchptr; subarchptr->termnbr = vnumnbr; subarchptr->termtab = termtab; subarchptr->domnnbr = domnnbr; subarchptr->domntab = domntab; for (orgtermnum = 0; orgtermnum < orgtermnbr; orgtermnum ++) { /* Initialize values for all vertices of original architecture */ treetab[orgtermnum].domnsiz = treetab[orgtermnum].domnwgt = 0; treetab[orgtermnum].termnum = treetab[orgtermnum].vertnum = ANUMMAX; treetab[orgtermnum].sonstab[0] = treetab[orgtermnum].sonstab[1] = NULL; } for (vnumnum = 0; vnumnum < vnumnbr; vnumnum ++) { /* For all kept terminal numbers */ Anum orgtermnum; /* Terminal number in original architecture */ #ifdef SCOTCH_DEBUG_ARCH2 int o; #endif /* SCOTCH_DEBUG_ARCH2 */ orgtermnum = vnumtab[vnumnum]; #ifdef SCOTCH_DEBUG_ARCH1 if ((orgtermnum < 0) || (orgtermnum >= orgtermnbr)) messptr = "archSubArchBuild: invalid vertex number in vertex list"; else if (treetab[orgtermnum].domnsiz != 0) messptr = "archSubArchBuild: duplicate vertex number in vertex list"; if (messptr != NULL) { errorPrint (messptr); orgarchptr->clasptr->matchExit (&matcdat); /* Free matching structure */ memFree (treetab - 1); memFree (termtab); return (2); } #endif /* SCOTCH_DEBUG_ARCH1 */ #ifdef SCOTCH_DEBUG_ARCH2 o = #endif /* SCOTCH_DEBUG_ARCH2 */ archDomTerm (orgarchptr, &orgdomndat, orgtermnum); #ifdef SCOTCH_DEBUG_ARCH2 if (o != 0) { errorPrint ("archSubArchBuild: internal error (1)"); memFree (treetab - 1); memFree (termtab); return (2); } #endif /* SCOTCH_DEBUG_ARCH2 */ termtab[vnumnum].termnum = vnumtab[vnumnum]; /* Record number of original terminal number */ treetab[orgtermnum].domnsiz = 1; /* Here lies one terminal vertex */ treetab[orgtermnum].domnwgt = archDomWght (orgarchptr, &orgdomndat); treetab[orgtermnum].termnum = vnumnum; /* Sub-architecture terminal number in original architecture */ treetab[orgtermnum].vertnum = orgtermnum; /* Vertex number in original architecture */ } rootptr = archSubArchBuild2 (&matcdat, (Anum (*) (void *, ArchCoarsenMulti * restrict *)) orgarchptr->clasptr->matchMate, treetab, vnumnbr); orgarchptr->clasptr->matchExit (&matcdat); /* Free matching structure */ if (rootptr == NULL) { errorPrint ("archSubArchBuild: cannot create sub-architecture (1)"); memFree (treetab - 1); return (2); } #ifdef SCOTCH_DEBUG_ARCH2 if (rootptr->domnsiz != vnumnbr) { errorPrint ("archSubArchBuild: internal error (2)"); return (2); } #endif /* SCOTCH_DEBUG_ARCH2 */ if (archSubArchBuild3 (domntab, termtab, rootptr, 1, 0) != domnnbr) { errorPrint ("archSubArchBuild: cannot create sub-architecture (2)"); memFree (treetab - 1); return (2); } domntab[0].dfatidx = -1; /* Set index of root father as -1 */ for (treetab --; treetab != NULL; treetab = treetmp) { /* Free all tree blocks */ treetmp = treetab[0].sonstab[0]; /* Get pointer to next tree block */ memFree (treetab); } return (0); } /* This routine initializes the matching ** data structure according to the number ** of vertices to be managed. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ int archSubMatchInit ( ArchSubMatch * restrict const matcptr, const ArchSub * restrict const archptr) { Anum termnbr; Anum termnum; Anum domnmax; Anum levlnbr; Anum multnbr; const ArchSubTerm * restrict const termtab = archptr->termtab; const ArchSubData * restrict const domntab = archptr->domntab; for (termnum = 0, termnbr = archptr->termnbr, domnmax = 0; /* Get maximum domain number */ termnum < termnbr; termnum ++) { Anum domnval; domnval = domntab[termtab[termnum].domnidx].domnnum; if (domnval > domnmax) domnmax = domnval; } for (levlnbr = 1; domnmax > 0; levlnbr ++, domnmax >>= 1) ; /* Compute maximum recursion level in bipartitioning tree */ multnbr = 1 << levlnbr; /* Maximum number of multinodes is the size of last level */ if ((matcptr->multtab = memAlloc (multnbr * sizeof (ArchCoarsenMulti))) == NULL) { errorPrint ("archSubMatchInit: out of memory"); return (1); } matcptr->domntab = archptr->domntab; /* Keep pointer to sub-architecture domain array */ matcptr->levlnum = matcptr->levlmax = levlnbr - 1; return (0); } /* This routine frees the matching data ** structure. ** It returns: ** - void : in all cases. */ void archSubMatchExit ( ArchSubMatch * restrict const matcptr) { memFree (matcptr->multtab); } /* This routine computes a matching from ** the current state of the matching structure. ** It returns: ** - >=0 : size of matching. ** - <0 : on error. */ static void archSubMatchMate2 ( ArchSubMatch * restrict const matcptr, const ArchSubData * restrict const domnptr, const Anum levlnum) { const ArchSubData * restrict domntab; Anum levlcur; levlcur = matcptr->levlnum; if (domnptr->dsubidx[0] == -1) { /* If node is terminal */ Anum vertnum; Anum multnum; ArchCoarsenMulti * restrict const multtab = matcptr->multtab; vertnum = (levlcur == matcptr->levlmax) ? domnptr->termnum : matcptr->vertnum ++; /* If last level, provide terminal number, else vertex number */ multnum = matcptr->multnum ++; /* One more multinode created */ multtab[multnum].vertnum[0] = /* In fact, it is a single node */ multtab[multnum].vertnum[1] = vertnum; return; } domntab = matcptr->domntab; if (levlnum == levlcur) { /* If recursion achieved proper level */ Anum vertnum0; Anum vertnum1; Anum multnum; ArchCoarsenMulti * restrict const multtab = matcptr->multtab; if (levlcur == matcptr->levlmax) { /* If last level, get terminal numbers */ vertnum0 = domntab[domnptr->dsubidx[0]].termnum; vertnum1 = domntab[domnptr->dsubidx[1]].termnum; } else { /* Else compute vertex numbers from previous level */ vertnum0 = matcptr->vertnum; vertnum1 = vertnum0 + 1; matcptr->vertnum = vertnum0 + 2; } multnum = matcptr->multnum ++; /* Create multinode */ multtab[multnum].vertnum[0] = vertnum0; multtab[multnum].vertnum[1] = vertnum1; } else { /* Else perform recursion */ archSubMatchMate2 (matcptr, &domntab[domnptr->dsubidx[0]], levlnum + 1); archSubMatchMate2 (matcptr, &domntab[domnptr->dsubidx[1]], levlnum + 1); } } Anum archSubMatchMate ( ArchSubMatch * restrict const matcptr, ArchCoarsenMulti ** restrict const multptr) { if (matcptr->levlnum < 0) /* If already reached root of tree, abort */ return (-1); matcptr->multnum = /* Reset counters for current level */ matcptr->vertnum = 0; archSubMatchMate2 (matcptr, &matcptr->domntab[0], 0); /* Build multinodes for current level */ matcptr->levlnum --; /* Prepare to perform previous level */ *multptr = matcptr->multtab; /* Always provide same mating array */ return (matcptr->multnum); /* Return number of multinodes computed at this level */ } /* This function returns the representative ** terminal domain number for the given domain. */ ArchDomNum archSubDomNum ( const ArchSub * const archptr, const ArchSubDom * const domnptr) { return (archptr->domntab[domnptr->domnidx].termnum); } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archSubDomTerm ( const ArchSub * const archptr, ArchSubDom * const domnptr, const ArchDomNum termnum) { if (termnum >= archptr->termnbr) return (1); domnptr->domnidx = archptr->termtab[termnum].domnidx; return (0); } /* This function returns the number of ** elements in the domain. */ Anum archSubDomSize ( const ArchSub * const archptr, const ArchSubDom * const domnptr) { return (archptr->domntab[domnptr->domnidx].domnsiz); } /* This function returns the weight of ** the given distance domain. */ Anum archSubDomWght ( const ArchSub * const archptr, const ArchSubDom * const domnptr) { return (archptr->domntab[domnptr->domnidx].domnwgt); } /* This function returns the average ** distance between two distance ** subdomains. */ Anum archSubDomDist ( const ArchSub * const archptr, const ArchSubDom * const dom0ptr, const ArchSubDom * const dom1ptr) { ArchDom dom0dat; /* Domains of underlying architecture */ ArchDom dom1dat; archDomTerm (archptr->archptr, &dom0dat, archptr->termtab[archptr->domntab[dom0ptr->domnidx].termnum].termnum); /* Build corresponding subdomains in underlying architecture */ archDomTerm (archptr->archptr, &dom1dat, archptr->termtab[archptr->domntab[dom1ptr->domnidx].termnum].termnum); return (archDomDist (archptr->archptr, &dom0dat, &dom1dat)); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archSubDomFrst ( const ArchSub * const archptr, ArchSubDom * restrict const domnptr) { domnptr->domnidx = 0; /* First domain index is slot 0 */ return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archSubDomLoad ( const ArchSub * const archptr, ArchSubDom * restrict const domnptr, FILE * const stream) { if ((intLoad (stream, &domnptr->domnidx) != 1) || (domnptr->domnidx < 0) || (domnptr->domnidx >= archptr->domnnbr)) { errorPrint ("archSubDomLoad: bad input"); return (1); } return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archSubDomSave ( const ArchSub * const archptr, const ArchSubDom * const domnptr, FILE * const stream) { if (fprintf (stream, ANUMSTRING " ", (Anum) domnptr->domnidx) == EOF) { errorPrint ("archSubDomSave: bad output"); return (1); } return (0); } /* This function tries to split a distance ** graph domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archSubDomBipart ( const ArchSub * const archptr, const ArchSubDom * const domnptr, ArchSubDom * restrict const dom0ptr, ArchSubDom * restrict const dom1ptr) { Anum dom0idx; dom0idx = archptr->domntab[domnptr->domnidx].dsubidx[0]; if (dom0idx < 0) /* If domain is terminal */ return (1); dom0ptr->domnidx = dom0idx; dom1ptr->domnidx = archptr->domntab[domnptr->domnidx].dsubidx[1]; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archSubDomIncl ( const ArchSub * const archptr, const ArchSubDom * const dom0ptr, const ArchSubDom * const dom1ptr) { Anum dom0num; Anum dom1num; for (dom1num = archptr->domntab[dom1ptr->domnidx].domnnum, dom0num = archptr->domntab[dom0ptr->domnidx].domnnum; dom1num != 0; dom1num >>= 1) if (dom1num == dom0num) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_sub.h000066400000000000000000000172231514310134000256610ustar00rootroot00000000000000/* Copyright 2015,2016,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_sub.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the sub-architecture meta- **/ /** architecture functions. **/ /** **/ /** DATES : # Version 6.0 : from : 13 mar 2015 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_SUB_H_STRUCT #define ARCH_SUB_H_STRUCT /*+ The sub-architecture definitions. +*/ typedef struct ArchSubTerm_ { Anum domnidx; /*+ Domain index corresponding to local terminal number +*/ Anum termnum; /*+ Corresponding un-based terminal number in original architecture +*/ } ArchSubTerm; typedef struct ArchSubData_ { Anum domnnum; /*+ Domain number, for dichotomy part. Starts at 1 +*/ Anum domnsiz; /*+ Size of domain, in terms of internal vertices +*/ Anum domnwgt; /*+ Weight of internal vertices within domain +*/ Anum termnum; /*+ Smallest original un-based terminal domain number in domain +*/ Anum dfatidx; /*+ Index of father subdomain; -1 if root +*/ Anum dsubidx[2]; /*+ Indices of son subdomains; -1 if terminal +*/ } ArchSubData; typedef struct ArchSub_ { struct Arch_ * archptr; /*+ Pointer to original architecture +*/ Anum termnbr; /*+ Number of terminals in sub-architecture +*/ ArchSubTerm * termtab; /*+ Terminal domain array +*/ Anum domnnbr; /*+ Number of domains in domain array +*/ ArchSubData * domntab; /*+ Domain array +*/ } ArchSub; typedef struct ArchSubTree_ { Anum domnsiz; /*+ Size of domain +*/ Anum domnwgt; /*+ Weight of internal vertices within domain +*/ Anum termnum; /*+ Number of first subdomain; -1 if terminal +*/ Anum vertnum; /*+ Number of vertex at this level +*/ struct ArchSubTree_ * sonstab[2]; /*+ Pointer to son cells +*/ } ArchSubTree; typedef struct ArchSubDom_ { Anum domnidx; /*+ Domain index in domain array +*/ } ArchSubDom; typedef struct ArchSubMatch_ { const ArchSubData * domntab; /*+ Pointer to sub-architecture domain array +*/ ArchCoarsenMulti * multtab; /*+ Multinode array for all coarsenings +*/ Anum multnum; /*+ Current number of multinode at current level +*/ Anum vertnum; /*+ Current fine vertex number at current level +*/ Anum levlnum; /*+ Current level +*/ Anum levlmax; /*+ Maximum level to be considered +*/ } ArchSubMatch; #endif /* ARCH_SUB_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO int archSubArchLoad (ArchSub * restrict const, FILE * restrict const); int archSubArchSave (const ArchSub * const, FILE * restrict const); int archSubArchFree (ArchSub * const); int archSubMatchInit (ArchSubMatch * restrict const, const ArchSub * restrict const); void archSubMatchExit (ArchSubMatch * restrict const); Anum archSubMatchMate (ArchSubMatch * restrict const, ArchCoarsenMulti ** restrict const); int archSubArchBuild (ArchSub * const, Arch * const, const Anum, const Anum * const); ArchSubTree * archSubArchBuild2 (void *, Anum (*) (void *, ArchCoarsenMulti * restrict *), ArchSubTree * restrict const, const Anum); ArchDomNum archSubDomNum (const ArchSub * const, const ArchSubDom * const); int archSubDomTerm (const ArchSub * const, ArchSubDom * restrict const, const ArchDomNum); Anum archSubDomSize (const ArchSub * const, const ArchSubDom * const); Anum archSubDomWght (const ArchSub * const, const ArchSubDom * const); Anum archSubDomDist (const ArchSub * const, const ArchSubDom * const, const ArchSubDom * const); int archSubDomFrst (const ArchSub * const, ArchSubDom * const); int archSubDomLoad (const ArchSub * const, ArchSubDom * const, FILE * const); int archSubDomSave (const ArchSub * const, const ArchSubDom * const, FILE * const); int archSubDomBipart (const ArchSub * const, const ArchSubDom * const, ArchSubDom * restrict const, ArchSubDom * restrict const); int archSubDomIncl (const ArchSub * const, const ArchSubDom * const, const ArchSubDom * const); #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_sub_mpi.c000066400000000000000000000062571514310134000265260ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_sub_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the sub- **/ /** architecture meta-architecture **/ /** functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_SUB_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_sub_mpi.h" /**********************************/ /* */ /* These are the sub-architecture */ /* meta-architecture routines. */ /* */ /**********************************/ /* This function creates the MPI_Datatype for ** the sub-architecture meta-architecture domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archSubDomMpiType ( const ArchSub * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (2, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_sub_mpi.h000066400000000000000000000051541514310134000265260ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_sub_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the sub-architecture meta- **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archSubDomMpiType (const ArchSub * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_tleaf.c000066400000000000000000000630511514310134000261560ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2015,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_tleaf.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the tree-leaf **/ /** target architecture. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 08 sep 1995 **/ /** # Version 3.1 : from : 20 jul 1996 **/ /** to : 20 jul 1996 **/ /** # Version 3.2 : from : 10 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 07 jun 2001 **/ /** to : 07 jun 2001 **/ /** # Version 4.0 : from : 10 dec 2003 **/ /** to : 10 mar 2005 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 03 may 2019 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # The ltleaf architecture was proposed **/ /** by Emmanuel Jeannot and Francois **/ /** Tessier. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_tleaf.h" /*******************************************/ /* */ /* These are the tree-leaf graph routines. */ /* */ /*******************************************/ /* This routine loads the ** tree leaf architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archTleafArchLoad ( ArchTleaf * restrict const archptr, FILE * restrict const stream) { Anum sizeval; Anum levlnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchTleaf) > sizeof (ArchDummy)) || (sizeof (ArchTleafDom) > sizeof (ArchDomDummy))) { errorPrint ("archTleafArchLoad: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (intLoad (stream, &archptr->levlnbr) != 1) { errorPrint ("archTleafArchLoad: bad input (1)"); return (1); } if ((archptr->sizetab = memAlloc ((archptr->levlnbr * 2 + 1) * sizeof (Anum))) == NULL) { /* TRICK: One more slot for linktab[-1] */ errorPrint ("archTleafArchLoad: out of memory"); return (1); } archptr->linktab = archptr->sizetab + archptr->levlnbr + 1; /* TRICK: One more slot */ archptr->linktab[-1] = 0; /* Dummy slot for for level-0 communication */ archptr->permtab = NULL; /* Assume no permutation array */ for (levlnum = 0, sizeval = 1; levlnum < archptr->levlnbr; levlnum ++) { if ((intLoad (stream, &archptr->sizetab[levlnum]) != 1) || (intLoad (stream, &archptr->linktab[levlnum]) != 1) || (archptr->sizetab[levlnum] < 2) || (archptr->linktab[levlnum] < 1)) { errorPrint ("archTleafArchLoad: bad input (2)"); return (1); } sizeval *= archptr->sizetab[levlnum]; } archptr->termnbr = sizeval; return (0); } /* This routine frees the tree ** leaf architecture structures. ** It returns: ** - 0 : if the architecture has been successfully freed. ** - !0 : on error. */ int archTleafArchFree ( ArchTleaf * const archptr) { #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchTleaf) > sizeof (ArchDummy)) || (sizeof (ArchTleafDom) > sizeof (ArchDomDummy))) { errorPrint ("archTleafArchFree: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ memFree (archptr->sizetab); /* Free group leader */ if (archptr->permtab != NULL) memFree (archptr->permtab); /* Free group leader */ #ifdef SCOTCH_DEBUG_ARCH2 archptr->sizetab = archptr->linktab = archptr->permtab = NULL; #endif /* SCOTCH_DEBUG_ARCH2 */ return (0); } /* This routine saves the ** tree leaf architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archTleafArchSave ( const ArchTleaf * const archptr, FILE * restrict const stream) { Anum levlnum; #ifdef SCOTCH_DEBUG_ARCH1 if ((sizeof (ArchTleaf) > sizeof (ArchDummy)) || (sizeof (ArchTleafDom) > sizeof (ArchDomDummy))) { errorPrint ("archTleafArchSave: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_ARCH1 */ if (fprintf (stream, ANUMSTRING, (Anum) archptr->levlnbr) == EOF) { errorPrint ("archTleafArchSave: bad output (1)"); return (1); } for (levlnum = 0; levlnum < archptr->levlnbr; levlnum ++) { if (fprintf (stream, " " ANUMSTRING " " ANUMSTRING, (Anum) archptr->sizetab[levlnum], (Anum) archptr->linktab[levlnum]) == EOF) { errorPrint ("archTleafArchSave: bad output (2)"); return (1); } } if (fprintf (stream, "\n") == EOF) { errorPrint ("archTleafArchSave: bad output (3)"); return (1); } return (0); } /* This routine initializes the matching ** data structure according to the number ** of vertices to be managed. ** It returns: ** - 0 : if the data structure has been ** successfully initialized. ** - !0 : on error. */ int archTleafMatchInit ( ArchTleafMatch * restrict const matcptr, const ArchTleaf * restrict const archptr) { Anum multnbr; /* Maximum number of multinodes */ Anum vertnbr; /* Number of vertices in architecture */ Anum levlnnd; Anum levlnum; const Anum * restrict const sizetab = archptr->sizetab; for (levlnum = 0, levlnnd = archptr->levlnbr - 1, vertnbr = 1; /* Compute size of blocks save for last level */ levlnum < levlnnd; levlnum ++) vertnbr *= sizetab[levlnum]; multnbr = vertnbr * ((sizetab[levlnum] + 1) >> 1); /* Number of multinodes will account for half the number of vertices in last level */ vertnbr *= sizetab[levlnum]; if ((matcptr->multtab = memAlloc (multnbr * sizeof (ArchCoarsenMulti))) == NULL) { errorPrint ("archTleafMatchInit: out of memory"); return (1); } matcptr->archptr = archptr; matcptr->passnum = 0; matcptr->levlnum = levlnnd; matcptr->levlsiz = sizetab[levlnnd]; matcptr->vertnbr = vertnbr; return (0); } /* This routine frees the matching data ** structure. ** It returns: ** - void : in all cases. */ void archTleafMatchExit ( ArchTleafMatch * restrict const matcptr) { memFree (matcptr->multtab); } /* This routine computes a matching from ** the current state of the matching structure. ** It returns: ** - >=0 : size of matching. ** - <0 : on error. */ Anum archTleafMatchMate ( ArchTleafMatch * restrict const matcptr, ArchCoarsenMulti ** restrict const multptr) { ArchCoarsenMulti * restrict coarmulttab; Anum finevertnbr; Anum finevertnum; Anum coarvertnum; Anum levlsiz; /* Number of fine vertices in each block */ Anum bloksiz; /* Number of multinodes in each block */ Anum bloknbr; /* Number of blocks */ Anum passnum; levlsiz = matcptr->levlsiz; while (levlsiz == 1) { /* If has to change level */ Anum levlnum; levlnum = matcptr->levlnum - 1; if (levlnum < 0) /* If upper level exceeded */ return (-1); /* Return an error */ matcptr->passnum = 0; /* Reset pass at next level */ matcptr->levlnum = levlnum; levlsiz = matcptr->archptr->sizetab[levlnum]; } finevertnbr = matcptr->vertnbr; #ifdef SCOTCH_DEBUG_ARCH2 if (finevertnbr % levlsiz != 0) { errorPrint ("archTleafMatchMate: internal error (1)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ bloknbr = finevertnbr / levlsiz; if ((levlsiz & 1) != 0) passnum = matcptr->passnum ^= 1; else passnum = -1; bloksiz = levlsiz >> 1; /* Number of multinodes in each block */ levlsiz = (levlsiz + 1) >> 1; /* Number of coarse vertices in each block */ matcptr->levlsiz = levlsiz; matcptr->vertnbr = levlsiz * bloknbr; coarmulttab = matcptr->multtab; for (finevertnum = coarvertnum = 0; bloknbr > 0; bloknbr --) { Anum bloktmp; if (passnum == 0) { /* If block starts with a single node */ coarmulttab[coarvertnum].vertnum[0] = /* Create single node */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; coarvertnum ++; } for (bloktmp = bloksiz; bloktmp > 0; bloktmp --) { /* For all pairs of fine vertices within blocks */ coarmulttab[coarvertnum].vertnum[0] = finevertnum ++; /* Create multinode */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; coarvertnum ++; } if (passnum == 1) { /* If block ends with a single node */ coarmulttab[coarvertnum].vertnum[0] = /* Create single node */ coarmulttab[coarvertnum].vertnum[1] = finevertnum ++; coarvertnum ++; } } #ifdef SCOTCH_DEBUG_ARCH2 if (finevertnum != finevertnbr) { errorPrint ("archTleafMatchMate: internal error (2)"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ *multptr = coarmulttab; /* Always provide same mating array */ return (coarvertnum); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archTleafDomNum ( const ArchTleaf * const archptr, const ArchTleafDom * const domnptr) { Anum levlnum; Anum sizeval; sizeval = 1; /* Compute size of blocks below */ for (levlnum = domnptr->levlnum; levlnum < archptr->levlnbr; levlnum ++) sizeval *= archptr->sizetab[levlnum]; return (domnptr->indxmin * sizeval); } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archTleafDomTerm ( const ArchTleaf * const archptr, ArchTleafDom * const domnptr, const ArchDomNum domnnum) { #ifdef SCOTCH_DEBUG_ARCH2 if (domnnum < 0) { errorPrint ("archTleafDomTerm: invalid parameter"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ if (domnnum < archptr->termnbr) { /* If valid label */ domnptr->levlnum = archptr->levlnbr; /* Set the domain */ domnptr->indxmin = domnnum; domnptr->indxnbr = 1; return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the subtree domain. */ Anum archTleafDomSize ( const ArchTleaf * const archptr, const ArchTleafDom * const domnptr) { Anum levlnum; Anum sizeval; sizeval = 1; /* Compute size of blocks below */ for (levlnum = domnptr->levlnum; levlnum < archptr->levlnbr; levlnum ++) sizeval *= archptr->sizetab[levlnum]; return (sizeval * domnptr->indxnbr); } /* This function returns the average ** distance between two tree leaf ** subdomains. */ Anum archTleafDomDist ( const ArchTleaf * const archptr, const ArchTleafDom * const dom0ptr, const ArchTleafDom * const dom1ptr) { Anum lev0num; Anum lev1num; Anum idx0min; Anum idx1min; Anum idx0nbr; Anum idx1nbr; Anum distval; const Anum * const linktab = archptr->linktab; const Anum * const sizetab = archptr->sizetab; lev0num = dom0ptr->levlnum; lev1num = dom1ptr->levlnum; idx0min = dom0ptr->indxmin; idx1min = dom1ptr->indxmin; idx0nbr = dom0ptr->indxnbr; idx1nbr = dom1ptr->indxnbr; distval = 0; if (lev0num != lev1num) { /* Get enclosing domain level */ if (lev0num > lev1num) { idx0nbr = 1; do { lev0num --; idx0min /= sizetab[lev0num]; distval += linktab[lev0num]; } while (lev0num > lev1num); } else { idx1nbr = 1; do { lev1num --; idx1min /= sizetab[lev1num]; distval += linktab[lev1num]; } while (lev1num > lev0num); } } if (idx0min <= idx1min) { /* Test for equality or inclusion */ if ((idx0min + idx0nbr) >= (idx1min + idx1nbr)) /* If dom1 included in dom0 */ return (distval / 2); } else { if ((idx0min + idx0nbr) <= (idx1min + idx1nbr)) /* If dom0 included in dom1 */ return (distval / 2); } do { #ifdef SCOTCH_DEBUG_ARCH2 if (lev0num == 0) { errorPrint ("archTleafDomDist: internal error"); return (0); } #endif /* SCOTCH_DEBUG_ARCH2 */ lev0num --; idx0min /= sizetab[lev0num]; idx1min /= sizetab[lev0num]; distval += linktab[lev0num]; } while (idx0min != idx1min); return (distval); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archTleafDomFrst ( const ArchTleaf * const archptr, ArchTleafDom * restrict const domnptr) { domnptr->levlnum = 0; domnptr->indxmin = 0; domnptr->indxnbr = 1; /* The root vertex is unique */ return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archTleafDomLoad ( const ArchTleaf * const archptr, ArchTleafDom * restrict const domnptr, FILE * const stream) { if ((intLoad (stream, &domnptr->levlnum) != 1) || (intLoad (stream, &domnptr->indxmin) != 1) || (intLoad (stream, &domnptr->indxnbr) != 1) || (domnptr->levlnum < 0) || (domnptr->levlnum > archptr->levlnbr)) { errorPrint ("archTleafDomLoad: bad input"); return (1); } return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archTleafDomSave ( const ArchTleaf * const archptr, const ArchTleafDom * const domnptr, FILE * const stream) { if (fprintf (stream, ANUMSTRING " " ANUMSTRING " " ANUMSTRING " ", (Anum) domnptr->levlnum, (Anum) domnptr->indxmin, (Anum) domnptr->indxnbr) == EOF) { errorPrint ("archTleafDomSave: bad output"); return (1); } return (0); } /* This function tries to split a tree leaf ** domain into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 1 : if bipartitioning could not be performed. ** - 2 : on error. */ int archTleafDomBipart ( const ArchTleaf * const archptr, const ArchTleafDom * const domnptr, ArchTleafDom * restrict const dom0ptr, ArchTleafDom * restrict const dom1ptr) { Anum sizeval; if (domnptr->indxnbr <= 1) { /* If subdomain has only one node at this level */ if (domnptr->levlnum >= archptr->levlnbr) /* Return if cannot bipartition more */ return (1); sizeval = archptr->sizetab[domnptr->levlnum]; /* Partition all the vertices of a new level */ dom0ptr->levlnum = dom1ptr->levlnum = domnptr->levlnum + 1; dom0ptr->indxmin = domnptr->indxmin * sizeval; } else { /* Subdomain has several indices */ sizeval = domnptr->indxnbr; /* Base on existing block size */ dom0ptr->levlnum = /* Stay at same level */ dom1ptr->levlnum = domnptr->levlnum; dom0ptr->indxmin = domnptr->indxmin; /* Start from the existing start index */ } dom0ptr->indxnbr = (sizeval + 1) >> 1; /* Subdomain 0 is always the largest one */ dom1ptr->indxmin = dom0ptr->indxmin + dom0ptr->indxnbr; dom1ptr->indxnbr = sizeval - dom0ptr->indxnbr; return (0); } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archTleafDomIncl ( const ArchTleaf * const archptr, const ArchTleafDom * const dom0ptr, const ArchTleafDom * const dom1ptr) { Anum lev0num; Anum lev1num; Anum idx0min; Anum idx1min; Anum idx0nbr; Anum idx1nbr; const Anum * const sizetab = archptr->sizetab; lev0num = dom0ptr->levlnum; lev1num = dom1ptr->levlnum; idx0min = dom0ptr->indxmin; idx1min = dom1ptr->indxmin; idx0nbr = dom0ptr->indxnbr; idx1nbr = dom1ptr->indxnbr; if (lev0num != lev1num) { if (lev1num > lev0num) { idx1nbr = 1; do { lev1num --; idx1min /= sizetab[lev1num]; } while (lev1num > lev0num); } else return (0); } return (((idx0min >= (idx1min + idx1nbr)) || (idx1min >= (idx0min + idx0nbr))) ? 0 : 1); } /***********************************/ /* */ /* These are the labeled tree-leaf */ /* graph routines. */ /* */ /***********************************/ /* This routine loads the labeled ** tree leaf architecture. ** It returns: ** - 0 : if the architecture has been successfully read. ** - !0 : on error. */ int archLtleafArchLoad ( ArchTleaf * restrict const archptr, FILE * restrict const stream) { Anum permnum; if (archTleafArchLoad (archptr, stream) != 0) /* Read tree part */ return (1); if ((intLoad (stream, &archptr->permnbr) != 1) || (archptr->permnbr <= 0)) { errorPrint ("archLtleafArchLoad: bad input (1)"); return (1); } #ifdef SCOTCH_DEBUG_ARCH2 if (archptr->permnbr != 1) { /* Valid empty permutation is of size 1 */ Anum levlnum; Anum sizeval; for (levlnum = archptr->levlnbr - 1, sizeval = archptr->sizetab[levlnum]; sizeval != archptr->permnbr; levlnum --, sizeval *= archptr->sizetab[levlnum]) { if (levlnum < 0) { errorPrint ("archLtleafArchLoad: permutation size does not match level boundaries"); return (1); } } } #endif /* SCOTCH_DEBUG_ARCH2 */ if ((archptr->permtab = memAlloc (archptr->permnbr * 2 * sizeof (Anum))) == NULL) { /* TRICK: space for peritab too */ errorPrint ("archLtleafArchLoad: out of memory"); return (1); } for (permnum = 0; permnum < archptr->permnbr; permnum ++) { #ifdef SCOTCH_DEBUG_ARCH2 Anum permtmp; #endif /* SCOTCH_DEBUG_ARCH2 */ if ((intLoad (stream, &archptr->permtab[permnum]) != 1) || (archptr->permtab[permnum] < 0) || (archptr->permtab[permnum] >= archptr->permnbr)) { errorPrint ("archLtleafArchLoad: bad input (2)"); return (1); } #ifdef SCOTCH_DEBUG_ARCH2 for (permtmp = 0; permtmp < permnum; permtmp ++) { if (archptr->permtab[permtmp] == archptr->permtab[permnum]) { errorPrint ("archLtleafArchLoad: duplicate permutation index"); return (1); } } #endif /* SCOTCH_DEBUG_ARCH2 */ } archptr->peritab = archptr->permtab + archptr->permnbr; for (permnum = 0; permnum < archptr->permnbr; permnum ++) /* Build inverse permutation */ archptr->peritab[archptr->permtab[permnum]] = permnum; return (0); } /* This routine saves the labeled ** tree leaf architecture. ** It returns: ** - 0 : if the architecture has been successfully written. ** - !0 : on error. */ int archLtleafArchSave ( const ArchTleaf * const archptr, FILE * restrict const stream) { Anum permnum; if (archTleafArchSave (archptr, stream) != 0) /* Save tree part */ return (1); if (fprintf (stream, ANUMSTRING, (Anum) archptr->permnbr) == EOF) { errorPrint ("archLtleafArchSave: bad output (1)"); return (1); } for (permnum = 0; permnum < archptr->permnbr; permnum ++) { if (fprintf (stream, " " ANUMSTRING, (Anum) archptr->permtab[permnum]) == EOF) { errorPrint ("archLtleafArchSave: bad output (2)"); return (1); } } if (fprintf (stream, "\n") == EOF) { errorPrint ("archLtleafArchSave: bad output (3)"); return (1); } return (0); } /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archLtleafDomNum ( const ArchTleaf * const archptr, const ArchTleafDom * const domnptr) { Anum levlnum; Anum sizeval; Anum domnnum; Anum permnum; sizeval = 1; /* Compute size of blocks below */ for (levlnum = domnptr->levlnum; levlnum < archptr->levlnbr; levlnum ++) sizeval *= archptr->sizetab[levlnum]; domnnum = domnptr->indxmin * sizeval; permnum = domnnum % archptr->permnbr; /* Get non permuted index as terminal domain */ return (domnnum - permnum + archptr->permtab[permnum]); /* Return permuted index */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archLtleafDomTerm ( const ArchTleaf * const archptr, ArchTleafDom * const domnptr, const ArchDomNum domnnum) { #ifdef SCOTCH_DEBUG_ARCH2 if (domnnum < 0) { errorPrint ("archLtleafDomTerm: invalid parameter"); return (1); } #endif /* SCOTCH_DEBUG_ARCH2 */ if (domnnum < archptr->termnbr) { /* If valid label */ Anum permnum; permnum = domnnum % archptr->permnbr; /* Get permuted index as terminal domain */ domnptr->levlnum = archptr->levlnbr; /* Set the domain */ domnptr->indxmin = domnnum - permnum + archptr->peritab[permnum]; domnptr->indxnbr = 1; return (0); } return (1); /* Cannot set domain */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_tleaf.h000066400000000000000000000217651514310134000261710ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_tleaf.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the tree-leaf pseudo-graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 16 aug 1995 **/ /** # Version 3.1 : from : 20 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 10 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 10 dec 2003 **/ /** to : 10 dec 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 24 jun 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_TLEAF_H_STRUCT #define ARCH_TLEAF_H_STRUCT /** The Tree-Leaf graph definitions. **/ typedef struct ArchTleaf_ { Anum termnbr; /*+ Number of terminal domains in architecture +*/ Anum levlnbr; /*+ Number of levels +*/ Anum * sizetab; /*+ Array of cluster sizes, per descending level +*/ Anum * linktab; /*+ Value of extra-cluster link costs +*/ Anum permnbr; /*+ Number of label permutation indices +*/ Anum * permtab; /*+ Label permutation array +*/ Anum * peritab; /*+ Invertse label permutation array +*/ } ArchTleaf; typedef struct ArchTleafDom_ { Anum levlnum; /*+ Current block level +*/ Anum indxmin; /*+ Minimum index in level +*/ Anum indxnbr; /*+ Number of indices in domain +*/ } ArchTleafDom; typedef struct ArchTleafMatch_ { const ArchTleaf * archptr; /*+ Pointer to architecture +*/ ArchCoarsenMulti * multtab; /*+ Multinode array for all coarsenings +*/ Anum passnum; /*+ Pass number +*/ Anum levlnum; /*+ Current block level +*/ Anum levlsiz; /*+ Size of current level +*/ Anum vertnbr; /*+ Number of vertices at current stage +*/ } ArchTleafMatch; #endif /* ARCH_TLEAF_H_STRUCT */ /** The Ltree-Leaf architecture definitions. **/ #define ArchLtleaf ArchTleaf #define ArchLtleafDom ArchTleafDom #define ArchLtleafMatch ArchTleafMatch /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_TLEAF_H_PROTO #define ARCH_TLEAF_H_PROTO int archTleafArchLoad (ArchTleaf * restrict const, FILE * restrict const); int archTleafArchSave (const ArchTleaf * const, FILE * restrict const); int archTleafArchFree (ArchTleaf * restrict const); int archTleafMatchInit (ArchTleafMatch * restrict const, const ArchTleaf * restrict const); void archTleafMatchExit (ArchTleafMatch * restrict const); Anum archTleafMatchMate (ArchTleafMatch * restrict const, ArchCoarsenMulti ** restrict const); ArchDomNum archTleafDomNum (const ArchTleaf * const, const ArchTleafDom * const); int archTleafDomTerm (const ArchTleaf * const, ArchTleafDom * restrict const, const ArchDomNum); Anum archTleafDomSize (const ArchTleaf * const, const ArchTleafDom * const); #define archTleafDomWght archTleafDomSize Anum archTleafDomDist (const ArchTleaf * const, const ArchTleafDom * const, const ArchTleafDom * const); int archTleafDomFrst (const ArchTleaf * const, ArchTleafDom * restrict const); int archTleafDomLoad (const ArchTleaf * const, ArchTleafDom * restrict const, FILE * restrict const); int archTleafDomSave (const ArchTleaf * const, const ArchTleafDom * const, FILE * restrict const); int archTleafDomBipart (const ArchTleaf * const, const ArchTleafDom * const, ArchTleafDom * restrict const, ArchTleafDom * restrict const); int archTleafDomIncl (const ArchTleaf * const, const ArchTleafDom * const, const ArchTleafDom * const); int archLtleafArchLoad (ArchTleaf * restrict const, FILE * restrict const); int archLtleafArchSave (const ArchTleaf * const, FILE * restrict const); #define archLtleafArchFree archTleafArchFree #define archLtleafMatchInit archTleafMatchInit #define archLtleafMatchExit archTleafMatchExit #define archLtleafMatchMate archTleafMatchMate ArchDomNum archLtleafDomNum (const ArchTleaf * const, const ArchTleafDom * const); int archLtleafDomTerm (const ArchTleaf * const, ArchTleafDom * restrict const, const ArchDomNum); #define archLtleafDomSize archTleafDomSize #define archLtleafDomWght archTleafDomWght #define archLtleafDomDist archTleafDomDist #define archLtleafDomFrst archTleafDomFrst #define archLtleafDomLoad archTleafDomLoad #define archLtleafDomSave archTleafDomSave #define archLtleafDomBipart archTleafDomBipart #define archLtleafDomIncl archTleafDomIncl #endif /* ARCH_TLEAF_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_tleaf_mpi.c000066400000000000000000000062311514310134000270200ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_tleaf_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the tree-leaf **/ /** target architectures. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_TLEAF_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_tleaf_mpi.h" /*******************************************/ /* */ /* These are the tree-leaf graph routines. */ /* */ /*******************************************/ /* This function creates the MPI_Datatype for ** the tree-leaf domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ #ifdef SCOTCH_PTSCOTCH int archTleafDomMpiType ( const ArchTleaf * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (3, typeptr)); } #endif /* SCOTCH_PTSCOTCH */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_tleaf_mpi.h000066400000000000000000000052461514310134000270320ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_tleaf_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the tree-leaf pseudo-graph target **/ /** architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archTleafDomMpiType (const ArchTleaf * const, MPI_Datatype * const); #define archLtleafDomMpiType archTleafDomMpiType scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_torus.c000066400000000000000000000162441514310134000262410ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2013,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_torus.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the torus graph **/ /** target architectures. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 08 sep 1995 **/ /** # Version 3.1 : from : 07 may 1996 **/ /** to : 22 jul 1996 **/ /** # Version 3.2 : from : 16 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 05 nov 2003 **/ /** to : 10 mar 2005 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 27 mar 2015 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 21 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_mesh.h" #include "arch_torus.h" /***********************************************/ /* */ /* These are the 2-dimensional torus routines. */ /* */ /***********************************************/ /* This function returns the average ** distance between two rectangular ** domains (in fact the distance between ** the centers of the domains). */ Anum archTorus2DomDist ( const ArchTorus2 * const archptr, const ArchTorus2Dom * const dom0ptr, const ArchTorus2Dom * const dom1ptr) { Anum dc0, dc1; Anum ds0, ds1; dc0 = abs (dom0ptr->c[0][0] + dom0ptr->c[0][1] - dom1ptr->c[0][0] - dom1ptr->c[0][1]); ds0 = (dc0 > archptr->c[0]) ? (2 * archptr->c[0] - dc0) : dc0; dc1 = abs (dom0ptr->c[1][0] + dom0ptr->c[1][1] - dom1ptr->c[1][0] - dom1ptr->c[1][1]); ds1 = (dc1 > archptr->c[1]) ? (2 * archptr->c[1] - dc1) : dc1; return ((ds0 + ds1) >> 1); } /***********************************************/ /* */ /* These are the 3-dimensional torus routines. */ /* */ /***********************************************/ /* This function returns the average distance ** between two cubic domains (in fact the ** distance between the centers of the domains). */ Anum archTorus3DomDist ( const ArchTorus3 * const archptr, const ArchTorus3Dom * const dom0ptr, const ArchTorus3Dom * const dom1ptr) { Anum dc0, dc1, dc2; Anum ds0, ds1, ds2; dc0 = abs (dom0ptr->c[0][0] + dom0ptr->c[0][1] - dom1ptr->c[0][0] - dom1ptr->c[0][1]); ds0 = (dc0 > archptr->c[0]) ? (2 * archptr->c[0] - dc0) : dc0; dc1 = abs (dom0ptr->c[1][0] + dom0ptr->c[1][1] - dom1ptr->c[1][0] - dom1ptr->c[1][1]); ds1 = (dc1 > archptr->c[1]) ? (2 * archptr->c[1] - dc1) : dc1; dc2 = abs (dom0ptr->c[2][0] + dom0ptr->c[2][1] - dom1ptr->c[2][0] - dom1ptr->c[2][1]); ds2 = (dc2 > archptr->c[2]) ? (2 * archptr->c[2] - dc2) : dc2; return ((ds0 + ds1 + ds2) >> 1); } /***********************************************/ /* */ /* These are the x-dimensional torus routines. */ /* */ /***********************************************/ /* This function returns the average distance ** between two X-dimensional domains (that is, ** the Manhattan distance between the centers ** of the domains). */ Anum archTorusXDomDist ( const ArchTorusX * const archptr, const ArchTorusXDom * const dom0ptr, const ArchTorusXDom * const dom1ptr) { Anum dimnnum; Anum distval; for (dimnnum = 0, distval = 0; dimnnum < archptr->dimnnbr; dimnnum ++) { Anum disttmp; disttmp = abs (dom0ptr->c[dimnnum][0] + dom0ptr->c[dimnnum][1] - dom1ptr->c[dimnnum][0] - dom1ptr->c[dimnnum][1]); distval += (disttmp > archptr->c[dimnnum]) ? (2 * archptr->c[dimnnum] - disttmp) : disttmp; } return (distval >> 1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_torus.h000066400000000000000000000167011514310134000262440ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2013,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_torus.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the tori graph target architecture **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 12 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 17 aug 1995 **/ /** # Version 3.1 : from : 22 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 16 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 05 nov 2003 **/ /** to : 05 nov 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 21 jan 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ #ifndef ARCH_TORUS_H_STRUCT #define ARCH_TORUS_H_STRUCT /* ** The type and structure definitions. */ /*+ The torus definitions. +*/ #define ArchTorus2 ArchMesh2 #define ArchTorus2Dom ArchMesh2Dom #define ArchTorus3 ArchMesh3 #define ArchTorus3Dom ArchMesh3Dom #define ArchTorusX ArchMeshX #define ArchTorusXDom ArchMeshXDom #endif /* ARCH_TORUS_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_TORUS_H_PROTO #define ARCH_TORUS_H_PROTO #define archTorus2ArchLoad archMesh2ArchLoad #define archTorus2ArchSave archMesh2ArchSave #define archTorus2ArchFree archMesh2ArchFree #define archTorus2MatchInit archMesh2MatchInit #define archTorus2MatchExit archMesh2MatchExit #define archTorus2MatchMate archMesh2MatchMate #define archTorus2DomNum archMesh2DomNum #define archTorus2DomTerm archMesh2DomTerm #define archTorus2DomSize archMesh2DomSize #define archTorus2DomWght archMesh2DomSize Anum archTorus2DomDist (const ArchTorus2 * const, const ArchTorus2Dom * const, const ArchTorus2Dom * const); #define archTorus2DomFrst archMesh2DomFrst #define archTorus2DomLoad archMesh2DomLoad #define archTorus2DomSave archMesh2DomSave #define archTorus2DomBipart archMesh2DomBipart #define archTorus2DomBipartO archMesh2DomBipartO #define archTorus2DomBipartU archMesh2DomBipartU #define archTorus2DomIncl archMesh2DomIncl #define archTorus3ArchLoad archMesh3ArchLoad #define archTorus3ArchSave archMesh3ArchSave #define archTorus3ArchFree archMesh3ArchFree #define archTorus3MatchInit archMesh3MatchInit #define archTorus3MatchExit archMesh3MatchExit #define archTorus3MatchMate archMesh3MatchMate #define archTorus3DomNum archMesh3DomNum #define archTorus3DomTerm archMesh3DomTerm #define archTorus3DomSize archMesh3DomSize #define archTorus3DomWght archMesh3DomSize Anum archTorus3DomDist (const ArchTorus3 * const, const ArchTorus3Dom * const, const ArchTorus3Dom * const); #define archTorus3DomFrst archMesh3DomFrst #define archTorus3DomLoad archMesh3DomLoad #define archTorus3DomSave archMesh3DomSave #define archTorus3DomBipart archMesh3DomBipart #define archTorus3DomIncl archMesh3DomIncl #define archTorusXArchLoad archMeshXArchLoad #define archTorusXArchSave archMeshXArchSave #define archTorusXArchFree archMeshXArchFree #define archTorusXMatchInit archMeshXMatchInit #define archTorusXMatchExit archMeshXMatchExit #define archTorusXMatchMate archMeshXMatchMate #define archTorusXDomNum archMeshXDomNum #define archTorusXDomTerm archMeshXDomTerm #define archTorusXDomSize archMeshXDomSize #define archTorusXDomWght archMeshXDomSize Anum archTorusXDomDist (const ArchTorusX * const, const ArchTorusXDom * const, const ArchTorusXDom * const); #define archTorusXDomFrst archMeshXDomFrst #define archTorusXDomLoad archMeshXDomLoad #define archTorusXDomSave archMeshXDomSave #define archTorusXDomBipart archMeshXDomBipart #define archTorusXDomIncl archMeshXDomIncl #endif /* ARCH_TORUS_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_torus_mpi.h000066400000000000000000000052651514310134000271140ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_torus_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the tori graph target architecture **/ /** functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #define archTorus2DomMpiType archMesh2DomMpiType #define archTorus3DomMpiType archMesh3DomMpiType #define archTorusXDomMpiType archMeshXDomMpiType scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vcmplt.c000066400000000000000000000214251514310134000263670ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vcmplt.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the variable-sized **/ /** complete graph target architecture. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 24 mar 1993 **/ /** # Version 1.2 : from : 04 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 1.3 : from : 20 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 23 dec 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 29 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 16 aug 1995 **/ /** # Version 3.1 : from : 20 jul 1996 **/ /** to : 20 jul 1996 **/ /** # Version 3.2 : from : 15 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 14 sep 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 05 nov 2003 **/ /** to : 05 nov 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 26 aug 2014 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_vcmplt.h" /*****************************************/ /* */ /* These are the variable-sized complete */ /* graph handling routines. */ /* */ /*****************************************/ /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archVcmpltDomNum ( const ArchVcmplt * const archptr, const ArchVcmpltDom * const domptr) { return (domptr->termnum); /* Return terminal number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archVcmpltDomTerm ( const ArchVcmplt * const archptr, ArchVcmpltDom * const domptr, const ArchDomNum domnum) { Anum termnum; Anum termlvl; if (domnum != ARCHDOMNOTTERM) { /* If valid label */ if (domnum == 0) /* Not a legal domain */ return (2); domptr->termnum = domnum; /* Set the domain */ for (termnum = domnum, termlvl = 0; termnum > 1; termnum >>= 1, termlvl ++) ; /* Compute level */ domptr->termlvl = termlvl; /* Set level */ return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the domain. */ Anum archVcmpltDomSize ( const ArchVcmplt * const archptr, const ArchVcmpltDom * const domptr) { return (1); /* All domains have same size for bipartitioning */ } /* This function returns the average ** distance between two subdomains. */ Anum archVcmpltDomDist ( const ArchVcmplt * const archptr, const ArchVcmpltDom * const dom0ptr, const ArchVcmpltDom * const dom1ptr) { return ((dom0ptr->termnum == dom1ptr->termnum) ? 0 : 1); /* All distinct terminals are at distance 1 */ } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archVcmpltDomFrst ( const ArchVcmplt * const archptr, ArchVcmpltDom * restrict const domptr) { domptr->termlvl = 0; /* First terminal number */ domptr->termnum = 1; return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archVcmpltDomLoad ( const ArchVcmplt * const archptr, ArchVcmpltDom * restrict const domptr, FILE * const stream) { Anum termnum; Anum termlvl; if (intLoad (stream, &domptr->termnum) != 1) { errorPrint ("archVcmpltDomLoad: bad input"); return (1); } for (termnum = domptr->termnum, termlvl = 0; termnum > 1; termnum >>= 1, termlvl ++) ; /* Compute level */ domptr->termlvl = termlvl; return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archVcmpltDomSave ( const ArchVcmplt * const archptr, const ArchVcmpltDom * const domptr, FILE * const stream) { if (fprintf (stream, ANUMSTRING " ", (Anum) domptr->termnum) == EOF) { errorPrint ("archVcmpltDomSave: bad output"); return (1); } return (0); } /* This function splits a domain ** into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 2 : on error. */ int archVcmpltDomBipart ( const ArchVcmplt * const archptr, const ArchVcmpltDom * const domptr, ArchVcmpltDom * restrict const dom0ptr, ArchVcmpltDom * restrict const dom1ptr) { dom0ptr->termlvl = /* Bipartition the domain */ dom1ptr->termlvl = domptr->termlvl + 1; dom0ptr->termnum = domptr->termnum << 1; dom1ptr->termnum = dom0ptr->termnum + 1; return ((dom1ptr->termnum < domptr->termnum) ? 2 : 0); /* Return error on overflow */ } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archVcmpltDomIncl ( const ArchVcmplt * const archptr, const ArchVcmpltDom * const dom0ptr, const ArchVcmpltDom * const dom1ptr) { if ((dom1ptr->termlvl >= dom0ptr->termlvl) && ((dom1ptr->termnum >> (dom1ptr->termlvl - dom0ptr->termlvl)) == dom0ptr->termnum)) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vcmplt.h000066400000000000000000000130711514310134000263720ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vcmplt.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the variable-sized complete graph **/ /** target architecture functions. **/ /** **/ /** DATES : # Version 3.0 : from : 01 jul 1995 **/ /** to : 09 aug 1995 **/ /** # Version 3.1 : from : 20 jul 1996 **/ /** to : 20 jul 1996 **/ /** # Version 3.2 : from : 15 oct 1996 **/ /** to : 14 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 08 nov 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 05 nov 2003 **/ /** to : 05 nov 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 21 jan 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_VCMPLT_H_STRUCT #define ARCH_VCMPLT_H_STRUCT /*+ The variable-sized complete graph bipartitioning definitions. +*/ typedef struct ArchVcmplt_ { int padding; /*+ No data needed +*/ } ArchVcmplt; typedef struct ArchVcmpltDom_ { Anum termlvl; /*+ Terminal depth +*/ Anum termnum; /*+ Terminal number +*/ } ArchVcmpltDom; #endif /* ARCH_VCMPLT_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_VCMPLT_H_PROTO #define ARCH_VCMPLT_H_PROTO #define archVcmpltArchLoad NULL #define archVcmpltArchSave NULL #define archVcmpltArchFree NULL #define archVcmpltMatchInit NULL #define archVcmpltMatchExit NULL #define archVcmpltMatchMate NULL ArchDomNum archVcmpltDomNum (const ArchVcmplt * const, const ArchVcmpltDom * const); int archVcmpltDomTerm (const ArchVcmplt * const, ArchVcmpltDom * restrict const, const ArchDomNum); Anum archVcmpltDomSize (const ArchVcmplt * const, const ArchVcmpltDom * const); #define archVcmpltDomWght archVcmpltDomSize Anum archVcmpltDomDist (const ArchVcmplt * const, const ArchVcmpltDom * const, const ArchVcmpltDom * const); int archVcmpltDomFrst (const ArchVcmplt * const, ArchVcmpltDom * const); int archVcmpltDomLoad (const ArchVcmplt * const, ArchVcmpltDom * const, FILE * const); int archVcmpltDomSave (const ArchVcmplt * const, const ArchVcmpltDom * const, FILE * const); int archVcmpltDomBipart (const ArchVcmplt * const, const ArchVcmpltDom * const, ArchVcmpltDom * restrict const, ArchVcmpltDom * restrict const); int archVcmpltDomIncl (const ArchVcmplt * const, const ArchVcmpltDom * const, const ArchVcmpltDom * const); #endif /* ARCH_VCMPLT_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vcmplt_mpi.c000066400000000000000000000062361514310134000272370ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vcmplt_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the variable-sized **/ /** complete graph target architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_VCMPLT_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_vcmplt_mpi.h" /*****************************************/ /* */ /* These are the variable-sized complete */ /* graph handling routines. */ /* */ /*****************************************/ /* This function creates the MPI_Datatype for ** the variable-sized complete graph domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archVcmpltDomMpiType ( const ArchVcmplt * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (2, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vcmplt_mpi.h000066400000000000000000000051601514310134000272370ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vcmplt_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the variable-sized complete graph **/ /** target architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archVcmpltDomMpiType (const ArchVcmplt * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vhcub.c000066400000000000000000000202451514310134000261700ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vhcub.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the variable-sized **/ /** hypercube target architecture. **/ /** **/ /** DATES : # Version 3.4 : from : 08 nov 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 04 nov 2003 **/ /** to : 04 nov 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 27 feb 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 26 aug 2014 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "arch_vhcub.h" /********************************/ /* */ /* These are the variable-sized */ /* hypercube handling routines. */ /* */ /********************************/ /* This function returns the smallest number ** of terminal domain included in the given ** domain. */ ArchDomNum archVhcubDomNum ( const ArchVhcub * const archptr, const ArchVhcubDom * const domptr) { return (domptr->termnum); /* Return terminal number */ } /* This function returns the terminal domain associated ** with the given terminal number in the architecture. ** It returns: ** - 0 : if label is valid and domain has been updated. ** - 1 : if label is invalid. ** - 2 : on error. */ int archVhcubDomTerm ( const ArchVhcub * const archptr, ArchVhcubDom * const domptr, const ArchDomNum domnum) { Anum termnum; Anum termlvl; if (domnum != ARCHDOMNOTTERM) { /* If valid label */ if (domnum == 0) /* Not a legal domain */ return (2); domptr->termnum = domnum; /* Set the domain */ for (termnum = domnum, termlvl = 0; termnum > 1; termnum >>= 1, termlvl ++) ; /* Compute level */ domptr->termlvl = termlvl; /* Set level */ return (0); } return (1); /* Cannot set domain */ } /* This function returns the number of ** elements in the domain. */ Anum archVhcubDomSize ( const ArchVhcub * const archptr, const ArchVhcubDom * const domptr) { return (1); /* All domains have same size for bipartitioning */ } /* This function returns the average ** distance between two subdomains. */ Anum archVhcubDomDist ( const ArchVhcub * const archptr, const ArchVhcubDom * const dom0ptr, const ArchVhcubDom * const dom1ptr) { Anum dom0num; Anum dom1num; Anum distval; if (dom0ptr->termlvl > dom1ptr->termlvl) { dom0num = dom0ptr->termnum >> (dom0ptr->termlvl - dom1ptr->termlvl); dom1num = dom1ptr->termnum; distval = (dom0ptr->termlvl - dom1ptr->termlvl) >> 1; /* One half of unknown bits */ } else { dom0num = dom0ptr->termnum; dom1num = dom1ptr->termnum >> (dom1ptr->termlvl - dom0ptr->termlvl); distval = (dom1ptr->termlvl - dom0ptr->termlvl) >> 1; /* One half of unknown bits */ } for (dom0num ^= dom1num; dom0num != 0; /* Compute Hamming distance */ distval += (dom0num & 1), dom0num >>= 1) ; return (distval); } /* This function sets the biggest ** domain available for this ** architecture. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archVhcubDomFrst ( const ArchVhcub * const archptr, ArchVhcubDom * restrict const domptr) { domptr->termlvl = 0; /* First terminal number */ domptr->termnum = 1; return (0); } /* This routine reads domain information ** from the given stream. ** It returns: ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archVhcubDomLoad ( const ArchVhcub * const archptr, ArchVhcubDom * restrict const domptr, FILE * const stream) { Anum termnum; Anum termlvl; if (intLoad (stream, &domptr->termnum) != 1) { errorPrint ("archVhcubDomLoad: bad input"); return (1); } for (termnum = domptr->termnum, termlvl = 0; termnum > 1; termnum >>= 1, termlvl ++) ; /* Compute level */ domptr->termlvl = termlvl; return (0); } /* This routine saves domain information ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int archVhcubDomSave ( const ArchVhcub * const archptr, const ArchVhcubDom * const domptr, FILE * const stream) { if (fprintf (stream, ANUMSTRING " ", (Anum) domptr->termnum) == EOF) { errorPrint ("archVhcubDomSave: bad output"); return (1); } return (0); } /* This function splits a domain ** into two subdomains. ** It returns: ** - 0 : if bipartitioning succeeded. ** - 2 : on error. */ int archVhcubDomBipart ( const ArchVhcub * const archptr, const ArchVhcubDom * const domptr, ArchVhcubDom * restrict const dom0ptr, ArchVhcubDom * restrict const dom1ptr) { dom0ptr->termlvl = /* Bipartition the domain */ dom1ptr->termlvl = domptr->termlvl + 1; dom0ptr->termnum = domptr->termnum << 1; dom1ptr->termnum = dom0ptr->termnum + 1; return ((dom1ptr->termnum < domptr->termnum) ? 2 : 0); /* Return error on overflow */ } /* This function checks if dom1 is ** included in dom0. ** It returns: ** - 0 : if dom1 is not included in dom0. ** - 1 : if dom1 is included in dom0. ** - 2 : on error. */ int archVhcubDomIncl ( const ArchVhcub * const archptr, const ArchVhcubDom * const dom0ptr, const ArchVhcubDom * const dom1ptr) { if ((dom1ptr->termlvl >= dom0ptr->termlvl) && ((dom1ptr->termnum >> (dom1ptr->termlvl - dom0ptr->termlvl)) == dom0ptr->termnum)) return (1); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vhcub.h000066400000000000000000000121311514310134000261700ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2015,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vhcub.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the variable-sized hypercube **/ /** target architecture functions. **/ /** **/ /** DATES : # Version 3.4 : from : 08 nov 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 04 nov 2003 **/ /** to : 04 nov 2003 **/ /** # Version 5.1 : from : 21 jan 2008 **/ /** to : 21 jan 2008 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 28 may 2018 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef ARCH_VHCUB_H_STRUCT #define ARCH_VHCUB_H_STRUCT /*+ The variable-sized hypercube bipartitioning definitions. +*/ typedef struct ArchVhcub_ { int padding; /*+ No data needed +*/ } ArchVhcub; typedef struct ArchVhcubDom_ { Anum termlvl; /*+ Terminal depth +*/ Anum termnum; /*+ Terminal number +*/ } ArchVhcubDom; #endif /* ARCH_VHCUB_H_STRUCT */ /* ** The function prototypes. */ #ifndef ARCH_NOPROTO #ifndef ARCH_VHCUB_H_PROTO #define ARCH_VHCUB_H_PROTO #define archVhcubArchLoad NULL #define archVhcubArchSave NULL #define archVhcubArchFree NULL #define archVhcubMatchInit NULL #define archVhcubMatchExit NULL #define archVhcubMatchMate NULL ArchDomNum archVhcubDomNum (const ArchVhcub * const, const ArchVhcubDom * const); int archVhcubDomTerm (const ArchVhcub * const, ArchVhcubDom * restrict const, const ArchDomNum); Anum archVhcubDomSize (const ArchVhcub * const, const ArchVhcubDom * const); #define archVhcubDomWght archVhcubDomSize Anum archVhcubDomDist (const ArchVhcub * const, const ArchVhcubDom * const, const ArchVhcubDom * const); int archVhcubDomFrst (const ArchVhcub * const, ArchVhcubDom * const); int archVhcubDomLoad (const ArchVhcub * const, ArchVhcubDom * const, FILE * const); int archVhcubDomSave (const ArchVhcub * const, const ArchVhcubDom * const, FILE * const); int archVhcubDomBipart (const ArchVhcub * const, const ArchVhcubDom * const, ArchVhcubDom * restrict const, ArchVhcubDom * restrict const); int archVhcubDomIncl (const ArchVhcub * const, const ArchVhcubDom * const, const ArchVhcubDom * const); #endif /* ARCH_VHCUB_H_PROTO */ #endif /* ARCH_NOPROTO */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vhcub_mpi.c000066400000000000000000000061401514310134000270330ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vhcub_mpi.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the variable-sized **/ /** hypercube target architecture. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 19 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define ARCH_VHCUB_MPI #include "module.h" #include "common.h" #include "arch.h" #include "arch_mpi.h" #include "arch_vhcub_mpi.h" /********************************/ /* */ /* These are the variable-sized */ /* hypercube handling routines. */ /* */ /********************************/ /* This function creates the MPI_Datatype for ** the variable-sized hypercube domain. ** It returns: ** - 0 : if type could be created. ** - 1 : on error. */ int archVhcubDomMpiType ( const ArchVhcub * const archptr, MPI_Datatype * const typeptr) { return (archDomMpiTypeAnum (2, typeptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/arch_vhcub_mpi.h000066400000000000000000000051561514310134000270460ustar00rootroot00000000000000/* Copyright 2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : arch_vhcub_mpi.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the variable-sized hypercube **/ /** target architecture functions. **/ /** **/ /** DATES : # Version 7.0 : from : 19 feb 2018 **/ /** to : 28 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int archVhcubDomMpiType (const ArchVhcub * const, MPI_Datatype * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph.c000066400000000000000000000204001514310134000254640ustar00rootroot00000000000000/* Copyright 2007,2008,2011,2014,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** bipartitioning graph data structure **/ /** handling routines. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 31 aug 2014 **/ /** # Version 7.0 : from : 11 sep 2011 **/ /** to : 02 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define BDGRAPH #include "module.h" #include "common.h" #include "arch.h" #include "dgraph.h" #include "dmapping.h" #include "bdgraph.h" /*************************************/ /* */ /* These routines handle distributed */ /* bipartition graphs. */ /* */ /*************************************/ /* This routine builds the active graph ** corresponding to the given bipartitioning ** job parameters. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int bdgraphInit ( Bdgraph * restrict const actgrafptr, /* Active graph */ const Dgraph * restrict const indgrafptr, /* Induced source subdgraph */ const Dgraph * restrict const srcgrafptr, /* Original source graph */ const Arch * restrict const archptr, /* Current mapping of halo vertices */ const ArchDom domnsubtab[]) /* Subdomains */ { Anum domndist; /* Distance between both subdomains */ Anum domnwght0; /* Processor workforce in each domain */ Anum domnwght1; domndist = archDomDist (archptr, &domnsubtab[0], &domnsubtab[1]); /* Get distance between subdomains */ domnwght0 = archDomWght (archptr, &domnsubtab[0]); /* Get weights of subdomains */ domnwght1 = archDomWght (archptr, &domnsubtab[1]); actgrafptr->s = *indgrafptr; /* Get source graph data */ actgrafptr->s.flagval &= ~DGRAPHFREEALL; /* Do not free contents of separation graph */ actgrafptr->s.vlblloctax = NULL; /* Never mind about vertex labels in the future */ actgrafptr->veexloctax = NULL; /* No external gain (yet) */ actgrafptr->veexglbsum = 0; actgrafptr->partgsttax = NULL; /* Do not allocate frontier arrays yet */ actgrafptr->fronloctab = NULL; bdgraphInit2 (actgrafptr, domndist, domnwght0, domnwght1); /* TODO: Compute external gains */ #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (actgrafptr) != 0) { errorPrint ("bdgraphInit: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } void bdgraphInit2 ( Bdgraph * restrict const actgrafptr, /* Active graph */ const Anum domndist, /* Distance between both subdomains */ const Anum domnwght0, /* Processor workforce in each domain */ const Anum domnwght1) { actgrafptr->fronlocnbr = /* No frontier vertices */ actgrafptr->fronglbnbr = 0; actgrafptr->complocload0 = actgrafptr->s.velolocsum; actgrafptr->compglbload0 = actgrafptr->s.veloglbsum; actgrafptr->compglbload0min = 0; /* No external constraints on bipartition (yet) */ actgrafptr->compglbload0max = actgrafptr->s.veloglbsum; actgrafptr->compglbload0avg = (Gnum) (((double) actgrafptr->s.veloglbsum * (double) domnwght0) / (double) (domnwght0 + domnwght1)); actgrafptr->compglbload0dlt = actgrafptr->s.veloglbsum - actgrafptr->compglbload0avg; actgrafptr->complocsize0 = actgrafptr->s.vertlocnbr; actgrafptr->compglbsize0 = actgrafptr->s.vertglbnbr; actgrafptr->commglbload = 0; actgrafptr->commglbloadextn0 = 0; actgrafptr->commglbgainextn = 0; actgrafptr->commglbgainextn0 = 0; actgrafptr->bbalglbval = (actgrafptr->compglbload0avg != 0) ? ((double) actgrafptr->compglbload0dlt / (double) actgrafptr->compglbload0avg) : 0; actgrafptr->domndist = domndist; actgrafptr->domnwght[0] = domnwght0; actgrafptr->domnwght[1] = domnwght1; actgrafptr->levlnum = 0; } /* This routine frees the contents ** of the given distributed active graph. ** It returns: ** - VOID : in all cases. */ void bdgraphExit ( Bdgraph * const grafptr) { if (grafptr->partgsttax != NULL) memFree (grafptr->partgsttax + grafptr->s.baseval); if (grafptr->fronloctab != NULL) memFree (grafptr->fronloctab); if (grafptr->veexloctax != NULL) memFree (grafptr->veexloctax + grafptr->s.baseval); dgraphExit (&grafptr->s); /* Free distributed source graph and its private data (flagval may be corrupted afterwards) */ #ifdef SCOTCH_DEBUG_BDGRAPH2 memSet (grafptr, ~0, sizeof (Bdgraph)); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } /* This routine moves all of the graph ** vertices to the first part. ** It returns: ** - VOID : in all cases. */ void bdgraphZero ( Bdgraph * const grafptr) { if (grafptr->partgsttax != NULL) memSet (grafptr->partgsttax + grafptr->s.baseval, 0, grafptr->s.vertgstnbr * sizeof (GraphPart)); /* Set all local and ghost vertices to part 0 */ grafptr->fronlocnbr = /* No frontier vertices */ grafptr->fronglbnbr = 0; grafptr->complocload0 = grafptr->s.velolocsum; grafptr->compglbload0 = grafptr->s.veloglbsum; grafptr->compglbload0dlt = grafptr->s.veloglbsum - grafptr->compglbload0avg; grafptr->complocsize0 = grafptr->s.vertlocnbr; grafptr->compglbsize0 = grafptr->s.vertglbnbr; grafptr->commglbload = grafptr->commglbloadextn0; grafptr->commglbgainextn = grafptr->commglbgainextn0; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph.h000066400000000000000000000200231514310134000254720ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2011,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for distributed edge bipartition- **/ /** ing routines. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 18 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Graph option flags. +*/ #define BDGRAPHFREEFRON (DGRAPHBITSNOTUSED) /* Free part array */ #define BDGRAPHFREEPART (DGRAPHBITSNOTUSED << 1) /* Free frontier array */ #define BDGRAPHFREEVEEX (DGRAPHBITSNOTUSED << 2) /* Free external gain array */ /*+ Active graph structure. +*/ typedef struct Bdgraph_ { Dgraph s; /*+ Distributed source graph +*/ Gnum * veexloctax; /*+ Local vertex external gain array if moved to 1 +*/ Gnum veexglbsum; /*+ Global sum of veexloctax array cells +*/ GraphPart * partgsttax; /*+ Based local part array: 0,1: part +*/ Gnum * fronloctab; /*+ Array of local frontier vertex numbers +*/ Gnum fronlocnbr; /*+ Number of local frontier vertices +*/ Gnum fronglbnbr; /*+ Number of global frontier vertices +*/ Gnum complocload0; /*+ Local load of part 0 +*/ Gnum compglbload0; /*+ Global load of part 0 +*/ Gnum compglbload0min; /*+ Minimum allowed load in part 0 (strategy variable) +*/ Gnum compglbload0max; /*+ Maximum allowed load in part 0 (strategy variable) +*/ Gnum compglbload0avg; /*+ Global average load of part 0 +*/ Gnum compglbload0dlt; /*+ Load difference from the average +*/ Gnum complocsize0; /*+ Number of local vertices in part 0 +*/ Gnum compglbsize0; /*+ Number of global vertices in part 0 +*/ Gnum commglbload; /*+ Global communication load +*/ Gnum commglbgainextn; /*+ Global external gain if all swapped +*/ Gnum commglbloadextn0; /*+ Global communication load if all moved to part 0 +*/ Gnum commglbgainextn0; /*+ Global external gain if all swapped from part 0 +*/ double bbalglbval; /*+ Bipartitioning imbalance ratio (strategy variable) +*/ Anum domndist; /*+ Distance between subdomains +*/ Anum domnwght[2]; /*+ Weights for each subdomain +*/ INT levlnum; /*+ Graph coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Bdgraph; /*+ The distributed save graph structure. +*/ typedef struct BdgraphStore_ { Gnum fronlocnbr; /*+ Number of local frontier vertices +*/ Gnum fronglbnbr; /*+ Number of frontier vertices +*/ Gnum complocload0; /*+ Local load in part 0 +*/ Gnum compglbload0; /*+ Load in part 0 +*/ Gnum compglbload0dlt; /*+ Difference from the average +*/ Gnum complocsize0; /*+ Number of local vertices in part 0 +*/ Gnum compglbsize0; /*+ Number of global vertices in part 0 +*/ Gnum commglbload; Gnum commglbgainextn; byte * datatab; /*+ Variable-sized data array +*/ } BdgraphStore; /* ** The function prototypes. */ #ifdef SCOTCH_DMAPPING_H int bdgraphInit (Bdgraph * const, const Dgraph * const, const Dgraph * const, const Arch * const, const ArchDom[]); #endif /* SCOTCH_DMAPPING_H */ void bdgraphInit2 (Bdgraph * const, const Anum, const Anum, const Anum); #ifdef SCOTCH_DMAPPING_H int bdgraphInit3 (Bdgraph * const, const Dgraph * const, const Dmapping * const, const ArchDom[]); #endif /* SCOTCH_DMAPPING_H */ void bdgraphExit (Bdgraph * restrict const); void bdgraphFree (Bdgraph * restrict const); void bdgraphZero (Bdgraph * restrict const); int bdgraphCheck (const Bdgraph * restrict const); #ifdef SCOTCH_BGRAPH_H int bdgraphGatherAll (const Bdgraph * restrict const, Bgraph * restrict); #endif /* SCOTCH_BGRAPH_H */ int bdgraphStoreInit (const Bdgraph * const, BdgraphStore * const); void bdgraphStoreExit (BdgraphStore * const); void bdgraphStoreSave (const Bdgraph * const , BdgraphStore * const); void bdgraphStoreUpdt (Bdgraph * const, const BdgraphStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_bd.c000066400000000000000000000541721514310134000275070ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2011,2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_bd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a bipartition of **/ /** the given distributed separator graph **/ /** by creating a band graph of given witdh **/ /** around the current frontier, computing **/ /** an improved bipartition of the band **/ /** graph, and projecting back the obtained **/ /** frontier to the original graph. **/ /** **/ /** DATES : # Version 5.1 : from : 11 nov 2007 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # Since only edges from local vertices **/ /** to local anchors are created in **/ /** dgraphBand(), the communication const **/ /** might be wrong if a local vertex of **/ /** the last layer is linked to a remote **/ /** vertex of different part which was **/ /** not in the band graph. Hence, commun- **/ /** ication costs have to be recomputed **/ /** from scratch. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "arch.h" #include "dgraph.h" #include "dgraph_halo.h" #include "bdgraph.h" #include "bdgraph_bipart_bd.h" #include "bdgraph_bipart_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a distributed band graph ** of given width around the current frontier and ** applies distributed bipartitioning routines to it. ** The distributed graph is not guaranteed to be ** balanced at at all. ** It returns: ** - 0 : if the distributed band graph could be computed. ** - !0 : on error. */ int bdgraphBipartBd ( Bdgraph * const orggrafptr, /*+ Distributed graph +*/ const BdgraphBipartBdParam * const paraptr) /*+ Method parameters +*/ { Bdgraph bndgrafdat; /* Bipartitioning band graph structure */ Gnum bndvertancnnd; /* End of local vertex array, without anchors */ Gnum bndvertlocnbr1; /* Number of band graph vertices in part 1 except anchor 1 */ Gnum bndvertlocnum; Gnum bndvertlvlnum; /* Based number of first band vertex in last layer */ Gnum bndvertlocancadj; /* Flag set when anchor(s) represent unexistent vertices */ Gnum bndvertglbancadj; /* Global adjustment of anchor vertices */ Gnum bndveexlocsum; /* Local sum of veexloctax array cells for band graph */ Gnum bndveexlocsum0; /* Local sum of veexloctax array cells in part 0 for band graph */ Gnum bndedlolocval; Gnum bndfronlocnum; Gnum orgfronlocnum; int * restrict orgflagloctab; Gnum orgvertlocnum; Gnum orgedlolocval; const int * restrict orgprocsidtab; int orgprocsidnbr; int orgprocsidnum; int orgprocsidval; Gnum complocsizeadj0; Gnum commlocloadintn; Gnum commlocloadintn2; /* Twice twice (4 times) the internal communication load of last layer */ Gnum commlocloadextn; Gnum commlocgainextn; Gnum reduloctab[7]; Gnum reduglbtab[7]; DgraphHaloRequest requdat; if (orggrafptr->fronglbnbr == 0) /* If no separator vertices, apply strategy to full (original) graph */ return (bdgraphBipartSt (orggrafptr, paraptr->stratorg)); if (dgraphBand (&orggrafptr->s, orggrafptr->fronlocnbr, orggrafptr->fronloctab, orggrafptr->partgsttax, orggrafptr->complocload0, orggrafptr->s.velolocsum - orggrafptr->complocload0, paraptr->distmax, &bndgrafdat.s, &bndgrafdat.fronloctab, &bndgrafdat.partgsttax, &bndvertlvlnum, &bndvertlocnbr1, &bndvertlocancadj, orggrafptr->contptr) != 0) { errorPrint ("bdgraphBipartBd: cannot create band graph"); return (1); } bndvertancnnd = bndgrafdat.s.vertlocnnd - 2; reduloctab[0] = 0; /* Assume no memory allocation problem */ bndveexlocsum = bndveexlocsum0 = 0; bndgrafdat.veexloctax = NULL; /* Assume no external gains */ if (orggrafptr->veexloctax != NULL) { if ((bndgrafdat.veexloctax = memAlloc (bndgrafdat.s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("bdgraphBipartBd: out of memory (1)"); reduloctab[0] = 1; /* Memory error */ } else { Gnum bndvertlocnum; bndgrafdat.veexloctax -= bndgrafdat.s.baseval; for (bndvertlocnum = bndgrafdat.s.baseval; bndvertlocnum < bndvertancnnd; bndvertlocnum ++) { Gnum veexval; veexval = orggrafptr->veexloctax[bndgrafdat.s.vnumloctax[bndvertlocnum]]; bndgrafdat.veexloctax[bndvertlocnum] = veexval; bndveexlocsum += veexval; bndveexlocsum0 += veexval & (((Gnum) bndgrafdat.partgsttax[bndvertlocnum]) - 1); } } } reduloctab[1] = bndgrafdat.s.vendloctax[bndvertancnnd] - bndgrafdat.s.vertloctax[bndvertancnnd] - (orggrafptr->s.procglbnbr - 1); /* Anchor degrees */ reduloctab[2] = bndgrafdat.s.vendloctax[bndvertancnnd + 1] - bndgrafdat.s.vertloctax[bndvertancnnd + 1] - (orggrafptr->s.procglbnbr - 1); bndgrafdat.complocsize0 = bndgrafdat.s.vertlocnbr - (bndvertlocnbr1 + 1); /* Add 1 for anchor vertex 1 */ complocsizeadj0 = orggrafptr->complocsize0 - bndgrafdat.complocsize0; /* -1 less because of anchor 0 */ reduloctab[3] = bndgrafdat.complocsize0; reduloctab[4] = bndvertlocancadj; /* Sum increases in size and load */ reduloctab[5] = bndveexlocsum; reduloctab[6] = bndveexlocsum0; if (MPI_Allreduce (reduloctab, reduglbtab, 7, GNUM_MPI, MPI_SUM, orggrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartBd: communication error (1)"); return (1); } if (reduglbtab[0] != 0) { bdgraphExit (&bndgrafdat); return (1); } if ((reduglbtab[1] == 0) || /* If graph is too small to have any usable anchors */ (reduglbtab[2] == 0)) { bdgraphExit (&bndgrafdat); return (bdgraphBipartSt (orggrafptr, paraptr->stratorg)); } bndvertglbancadj = reduglbtab[4]; bndgrafdat.veexglbsum = orggrafptr->veexglbsum; /* All external gains preserved */ bndgrafdat.fronlocnbr = orggrafptr->fronlocnbr; /* All separator vertices are kept in band graph */ bndgrafdat.fronglbnbr = orggrafptr->fronglbnbr; bndgrafdat.complocload0 = orggrafptr->complocload0 + bndvertlocancadj; /* All loads are kept in band graph */ bndgrafdat.compglbload0 = orggrafptr->compglbload0 + bndvertglbancadj; bndgrafdat.compglbload0min = orggrafptr->compglbload0min + bndvertglbancadj; /* Tilt extrema loads according to adjustments */ bndgrafdat.compglbload0max = orggrafptr->compglbload0max + bndvertglbancadj; bndgrafdat.compglbload0avg = orggrafptr->compglbload0avg + bndvertglbancadj; /* Tilt average load according to adjustments */ bndgrafdat.compglbload0dlt = orggrafptr->compglbload0dlt; bndgrafdat.compglbsize0 = reduglbtab[3]; bndgrafdat.commglbload = orggrafptr->commglbload; bndgrafdat.commglbgainextn = orggrafptr->commglbgainextn; bndgrafdat.commglbloadextn0 = orggrafptr->commglbloadextn0; bndgrafdat.commglbgainextn0 = orggrafptr->commglbgainextn0; bndgrafdat.bbalglbval = orggrafptr->bbalglbval; bndgrafdat.domndist = orggrafptr->domndist; bndgrafdat.domnwght[0] = orggrafptr->domnwght[0]; bndgrafdat.domnwght[1] = orggrafptr->domnwght[1]; bndgrafdat.levlnum = orggrafptr->levlnum; bndgrafdat.contptr = orggrafptr->contptr; if (bndgrafdat.veexloctax != NULL) { Gnum bndveexglbanc0; Gnum bndveexglbanc1; bndveexglbanc0 = (orggrafptr->veexglbsum + orggrafptr->commglbgainextn) / 2 - reduglbtab[6]; /* Compute global external gains of anchors */ bndveexglbanc1 = (orggrafptr->veexglbsum - bndveexglbanc0) - reduglbtab[5]; bndgrafdat.veexloctax[bndvertancnnd] = DATASIZE (bndveexglbanc0, bndgrafdat.s.procglbnbr, bndgrafdat.s.proclocnum); /* Spread gains across local anchors */ bndgrafdat.veexloctax[bndvertancnnd + 1] = DATASIZE (bndveexglbanc1, bndgrafdat.s.procglbnbr, bndgrafdat.s.proclocnum); } #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (&bndgrafdat) != 0) { errorPrint ("bdgraphBipartBd: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ if (bdgraphBipartSt (&bndgrafdat, paraptr->stratbnd) != 0) { /* Separate distributed band graph */ errorPrint ("bdgraphBipartBd: cannot separate band graph"); bdgraphExit (&bndgrafdat); return (1); } reduloctab[0] = (Gnum) bndgrafdat.partgsttax[bndvertancnnd]; /* Check if anchor vertices remain in their parts */ reduloctab[1] = (Gnum) bndgrafdat.partgsttax[bndvertancnnd + 1]; reduloctab[2] = complocsizeadj0; reduloctab[3] = 0; /* Assume memory allocation is all right */ if ((orgflagloctab = memAlloc (flagSize (orggrafptr->s.vertlocnnd) * sizeof (int))) == NULL) { /* Eventually keep space for based indices */ errorPrint ("bdgraphBipartBd: out of memory (2)"); reduloctab[3] = 1; } if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 4, GNUM_MPI, MPI_SUM, orggrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartBd: communication error (2)"); return (1); } if (((reduglbtab[0] + reduglbtab[1]) != orggrafptr->s.procglbnbr) || /* If not all anchors of initial same parts in same parts */ ((reduglbtab[0] != 0) && (reduglbtab[0] != orggrafptr->s.procglbnbr)) || (reduglbtab[3] != 0)) { if (orgflagloctab != NULL) memFree (orgflagloctab); bdgraphExit (&bndgrafdat); /* Apply original strategy to full graph */ return (bdgraphBipartSt (orggrafptr, paraptr->stratorg)); } if (dgraphGhst (&bndgrafdat.s) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("bdgraphBipartBd: cannot compute ghost edge array"); memFree (orgflagloctab); bdgraphExit (&bndgrafdat); return (1); } if (reduglbtab[0] == orggrafptr->s.procglbnbr) { /* If all anchors swapped parts, swap all parts of original vertices */ Gnum orgvertnum; orggrafptr->complocsize0 = orggrafptr->s.vertlocnbr - reduloctab[2] - bndgrafdat.s.vertlocnbr + bndgrafdat.complocsize0; orggrafptr->compglbsize0 = orggrafptr->s.vertglbnbr - reduglbtab[2] - bndgrafdat.s.vertglbnbr + bndgrafdat.compglbsize0; for (orgvertnum = orggrafptr->s.baseval; orgvertnum < orggrafptr->s.vertlocnnd; orgvertnum ++) orggrafptr->partgsttax[orgvertnum] ^= 1; } else { orggrafptr->complocsize0 = reduloctab[2] + bndgrafdat.complocsize0; orggrafptr->compglbsize0 = reduglbtab[2] + bndgrafdat.compglbsize0; } for (bndvertlocnum = bndgrafdat.s.baseval; bndvertlocnum < bndvertancnnd; bndvertlocnum ++) /* Update part array of all vertices except anchors */ orggrafptr->partgsttax[bndgrafdat.s.vnumloctax[bndvertlocnum]] = bndgrafdat.partgsttax[bndvertlocnum]; dgraphHaloAsync (&orggrafptr->s, (byte *) (orggrafptr->partgsttax + orggrafptr->s.baseval), GRAPHPART_MPI, &requdat); /* Share part array of full graph */ commlocloadintn = commlocloadextn = commlocgainextn = 0; bndedlolocval = 1; /* Assume no edge loads */ for (bndvertlocnum = bndgrafdat.s.baseval; bndvertlocnum < bndvertlvlnum; bndvertlocnum ++) { /* For all vertices of band graph save for last layer */ Gnum bndedgelocnum; Gnum bndedgelocnnd; Gnum bndpartval; bndpartval = (Gnum) bndgrafdat.partgsttax[bndvertlocnum]; if (bndgrafdat.veexloctax != NULL) { commlocloadextn += bndgrafdat.veexloctax[bndvertlocnum] * bndpartval; commlocgainextn += bndgrafdat.veexloctax[bndvertlocnum] * (1 - bndpartval * 2); } for (bndedgelocnum = bndgrafdat.s.vertloctax[bndvertlocnum], bndedgelocnnd = bndgrafdat.s.vendloctax[bndvertlocnum]; bndedgelocnum < bndedgelocnnd; bndedgelocnum ++) { Gnum bndvertlocend; Gnum bndpartend; bndvertlocend = bndgrafdat.s.edgegsttax[bndedgelocnum]; bndpartend = bndgrafdat.partgsttax[bndvertlocend]; if (bndgrafdat.s.edloloctax != NULL) bndedlolocval = bndgrafdat.s.edloloctax[bndedgelocnum]; commlocloadintn += (bndpartval ^ bndpartend) * bndedlolocval; /* Internal load is accounted for twice */ } } for ( ; bndvertlocnum < bndvertancnnd; bndvertlocnum ++) { /* For all vertices of last layer, remove internal loads to band vertices once */ Gnum bndedgelocnum; Gnum bndedgelocnnd; Gnum bndpartval; bndpartval = (Gnum) bndgrafdat.partgsttax[bndvertlocnum]; if (bndgrafdat.veexloctax != NULL) { commlocloadextn += bndgrafdat.veexloctax[bndvertlocnum] * bndpartval; commlocgainextn += bndgrafdat.veexloctax[bndvertlocnum] * (1 - bndpartval * 2); } for (bndedgelocnum = bndgrafdat.s.vertloctax[bndvertlocnum], bndedgelocnnd = bndgrafdat.s.vendloctax[bndvertlocnum] - 1; /* "-1" to avoid anchor edges */ bndedgelocnum < bndedgelocnnd; bndedgelocnum ++) { Gnum bndvertlocend; Gnum bndpartend; bndvertlocend = bndgrafdat.s.edgegsttax[bndedgelocnum]; bndpartend = bndgrafdat.partgsttax[bndvertlocend]; if (bndgrafdat.s.edloloctax != NULL) bndedlolocval = bndgrafdat.s.edloloctax[bndedgelocnum]; commlocloadintn -= (bndpartval ^ bndpartend) * bndedlolocval; /* Remove internal loads to band graph vertices once because afterwards they will be accounted for twice */ } } memSet (orgflagloctab, 0, flagSize (orggrafptr->s.vertlocnnd) * sizeof (int)); /* Set vertices as not already considered */ for (bndfronlocnum = orgfronlocnum = 0; bndfronlocnum < bndgrafdat.fronlocnbr; bndfronlocnum ++) { /* Project back separator except for last layer */ Gnum bndvertlocnum; bndvertlocnum = bndgrafdat.fronloctab[bndfronlocnum]; if (bndvertlocnum < bndvertlvlnum) { /* If vertex does not belong to last layer */ Gnum orgvertlocnum; orgvertlocnum = bndgrafdat.s.vnumloctax[bndvertlocnum]; flagSet (orgflagloctab, orgvertlocnum); /* Set vertex as processed */ orggrafptr->fronloctab[orgfronlocnum ++] = orgvertlocnum; } } if (dgraphHaloWait (&requdat) != 0) { errorPrint ("bdgraphBipartBd: cannot complete asynchronous halo exchange"); return (1); } orgedlolocval = 1; /* Assume no edge loads */ commlocloadintn2 = 0; for (bndvertlocnum = bndvertlvlnum; bndvertlocnum < bndvertancnnd; bndvertlocnum ++) { /* For all vertices of last layer */ Gnum orgedgelocnum; Gnum orgedgelocnnd; Gnum orgvertlocnum; GraphPart orgpartval; Gnum orgflagval; orgvertlocnum = bndgrafdat.s.vnumloctax[bndvertlocnum]; orgpartval = bndgrafdat.partgsttax[bndvertlocnum]; orgflagval = 0; /* Assume vertex does not belong to the frontier */ for (orgedgelocnum = orggrafptr->s.vertloctax[orgvertlocnum], orgedgelocnnd = orggrafptr->s.vendloctax[orgvertlocnum]; orgedgelocnum < orgedgelocnnd; orgedgelocnum ++) { Gnum orgvertlocend; Gnum orgpartend; Gnum orgflagtmp; orgvertlocend = orggrafptr->s.edgegsttax[orgedgelocnum]; orgpartend = orggrafptr->partgsttax[orgvertlocend]; orgflagtmp = orgpartval ^ orgpartend; if (bndgrafdat.s.edloloctax != NULL) orgedlolocval = orggrafptr->s.edloloctax[orgedgelocnum]; orgflagval |= orgflagtmp; commlocloadintn2 += orgflagtmp * orgedlolocval; /* Internal load to band and original graph vertices are accounted for twice */ if ((orgflagtmp != 0) && (orgvertlocend < orggrafptr->s.vertlocnnd) && (flagVal (orgflagloctab, orgvertlocend) == 0)) { orggrafptr->fronloctab[orgfronlocnum ++] = orgvertlocend; flagSet (orgflagloctab, orgvertlocend); } } if ((orgflagval != 0) && (flagVal (orgflagloctab, orgvertlocnum) == 0)) orggrafptr->fronloctab[orgfronlocnum ++] = orgvertlocnum; flagSet (orgflagloctab, orgvertlocnum); /* Set vertex as processed anyway */ } commlocloadintn += 2 * commlocloadintn2; /* Add twice the internal load of original graph edges and once the one of band edges (one removed before) */ orggrafptr->complocload0 = bndgrafdat.complocload0 - bndvertlocancadj; orggrafptr->compglbload0 = bndgrafdat.compglbload0 - bndvertglbancadj; orggrafptr->compglbload0dlt = orggrafptr->compglbload0 - orggrafptr->compglbload0avg; orgprocsidnbr = orggrafptr->s.procsidnbr; if (orgprocsidnbr == 0) goto loop_exit; orgvertlocnum = orggrafptr->s.baseval; orgprocsidnum = 0; orgprocsidtab = orggrafptr->s.procsidtab; orgprocsidval = orgprocsidtab[orgprocsidnum ++]; while (1) { /* Scan all vertices which have foreign neighbors */ while (orgprocsidval < 0) { orgvertlocnum -= (Gnum) orgprocsidval; orgprocsidval = orgprocsidtab[orgprocsidnum ++]; } if (flagVal (orgflagloctab, orgvertlocnum) == 0) { /* If vertex not already processed */ Gnum orgedgelocnum; Gnum orgedgelocnnd; GraphPart orgpartval; orgpartval = orggrafptr->partgsttax[orgvertlocnum]; for (orgedgelocnum = orggrafptr->s.vertloctax[orgvertlocnum], orgedgelocnnd = orggrafptr->s.vendloctax[orgvertlocnum]; orgedgelocnum < orgedgelocnnd; orgedgelocnum ++) { if (orggrafptr->partgsttax[orggrafptr->s.edgegsttax[orgedgelocnum]] != orgpartval) { orggrafptr->fronloctab[orgfronlocnum ++] = orgvertlocnum; break; } } } do { if (orgprocsidnum >= orgprocsidnbr) goto loop_exit; } while ((orgprocsidval = orgprocsidtab[orgprocsidnum ++]) >= 0); } loop_exit : memFree (orgflagloctab); reduloctab[0] = commlocloadintn; /* Twice the internal load; sum globally before dividing by two */ reduloctab[1] = commlocloadextn; reduloctab[2] = commlocgainextn; reduloctab[3] = orgfronlocnum; if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 4, GNUM_MPI, MPI_SUM, orggrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartBd: communication error (3)"); return (1); } orggrafptr->fronlocnbr = orgfronlocnum; orggrafptr->fronglbnbr = reduglbtab[3]; orggrafptr->commglbload = (reduglbtab[0] / 2) * orggrafptr->domndist + reduglbtab[1]; orggrafptr->commglbgainextn = reduglbtab[2]; orggrafptr->bbalglbval = (double) ((orggrafptr->compglbload0dlt < 0) ? (- orggrafptr->compglbload0dlt) : orggrafptr->compglbload0dlt) / (double) orggrafptr->compglbload0avg; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (orggrafptr) != 0) { errorPrint ("bdgraphBipartBd: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ bdgraphExit (&bndgrafdat); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_bd.h000066400000000000000000000062761514310134000275160ustar00rootroot00000000000000/* Copyright 2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_bd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the band graph bipartitioning **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 11 nov 2007 **/ /** to : 15 jul 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct BdgraphBipartBdParam_ { INT distmax; /*+ Width of band surrounding the frontier +*/ Strat * stratbnd; /*+ Strategy for band graph +*/ Strat * stratorg; /*+ Strategy for original graph +*/ } BdgraphBipartBdParam; /* ** The function prototypes. */ int bdgraphBipartBd (Bdgraph * const, const BdgraphBipartBdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_df.c000066400000000000000000000454771514310134000275230ustar00rootroot00000000000000/* Copyright 2007,2008,2011,2014,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_df.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a bipartition of **/ /** the given distributed separator graph **/ /** by applying a diffusion method to what **/ /** is assumed to be a distributed band **/ /** graph. **/ /** **/ /** DATES : # Version 5.1 : from : 16 nov 2007 **/ /** to : 19 jul 2011 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 31 aug 2014 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "dgraph.h" #include "bdgraph.h" #include "bdgraph_bipart_df.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a distributed bipartition ** by diffusion across what is assumed to be a ** distributed band graph. ** It returns: ** - 0 : if the bipartition could be computed. ** - !0 : on error. */ int bdgraphBipartDf ( Bdgraph * const grafptr, /*+ Distributed graph +*/ const BdgraphBipartDfParam * const paraptr) /*+ Method parameters +*/ { float * restrict ielsloctax; /* Inverse of degree array */ float * restrict veexloctax; /* Veexval over domndist */ float * restrict difogsttax; /* Old diffusion value array */ float * restrict difngsttax; /* New diffusion value array */ const Gnum * restrict edgegsttax; Gnum fronlocnum; Gnum veexlocnbr; float vanclocval[2]; float valolocval[2]; /* Fraction of load to remove from anchor vertices at each step */ Gnum vanclocnnd; Gnum vertlocnum; Gnum complocload1; Gnum complocsize1; Gnum commlocloadintn; Gnum commlocloadextn; Gnum commlocgainextn; Gnum reduloctab[6]; Gnum reduglbtab[6]; Gnum passnum; float cdifval; float cremval; int ovflval; /* Overflow flag value */ const Gnum * restrict const veloloctax = grafptr->s.veloloctax; const Gnum * restrict const edloloctax = grafptr->s.edloloctax; if (dgraphGhst (&grafptr->s) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("bdgraphBipartDf: cannot compute ghost edge array"); return (1); } reduloctab[0] = grafptr->s.vendloctax[grafptr->s.vertlocnnd - 2] - grafptr->s.vertloctax[grafptr->s.vertlocnnd - 2] - (grafptr->s.procglbnbr - 1); /* Local degree of both anchor vertices, minus edges to other anchors */ reduloctab[1] = grafptr->s.vendloctax[grafptr->s.vertlocnnd - 1] - grafptr->s.vertloctax[grafptr->s.vertlocnnd - 1] - (grafptr->s.procglbnbr - 1); /* Anchor edges have load 1 even for weighted graphs */ if (grafptr->s.veloloctax == NULL) reduloctab[2] = /* Weights of anchors */ reduloctab[3] = 1; else { reduloctab[2] = grafptr->s.veloloctax[grafptr->s.vertlocnnd - 2]; reduloctab[3] = grafptr->s.veloloctax[grafptr->s.vertlocnnd - 1]; } veexlocnbr = (grafptr->veexloctax != NULL) ? grafptr->s.vertlocnbr : 0; if (memAllocGroup ((void **) (void *) &ielsloctax, (size_t) (grafptr->s.vertlocnbr * sizeof (float)), &veexloctax, (size_t) (veexlocnbr * sizeof (float)), &difogsttax, (size_t) (grafptr->s.vertgstnbr * sizeof (float)), &difngsttax, (size_t) (grafptr->s.vertgstnbr * sizeof (float)), NULL) == NULL) { errorPrint ("bdgraphBipartDf: out of memory"); reduloctab[0] = -1; } ielsloctax -= grafptr->s.baseval; difogsttax -= grafptr->s.baseval; difngsttax -= grafptr->s.baseval; veexloctax = (grafptr->veexloctax != NULL) ? (veexloctax - grafptr->s.baseval) : NULL; if (MPI_Allreduce (reduloctab, reduglbtab, 4, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartDf: communication error (1)"); return (1); } if (reduglbtab[0] < 0) { if (ielsloctax != NULL) memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ return (1); } if ((reduglbtab[0] == 0) || /* If graph is too small to have any usable anchors, leave partition as is */ (reduglbtab[1] == 0)) { memFree (ielsloctax + grafptr->s.baseval); if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (grafptr->partgsttax + grafptr->s.baseval), GRAPHPART_MPI) != 0) { errorPrint ("bdgraphBipartDf: cannot propagate part data (1)"); return (1); } return (0); } vanclocval[0] = (float) ((paraptr->typeval == BDGRAPHBIPARTDFTYPEBAL) /* If balanced parts wanted */ ? grafptr->compglbload0avg /* Target is average */ : ( (grafptr->compglbload0 < grafptr->compglbload0min) ? grafptr->compglbload0min : /* Else keep load if not off balance */ ((grafptr->compglbload0 > grafptr->compglbload0max) ? grafptr->compglbload0max : grafptr->compglbload0))); vanclocval[1] = (float) grafptr->s.veloglbsum - vanclocval[0]; vanclocval[0] = - vanclocval[0]; /* Part 0 holds negative values */ valolocval[0] = (float) reduglbtab[2]; /* Compute values to remove from anchor vertices */ valolocval[1] = (float) reduglbtab[3] - BDGRAPHBIPARTDFEPSILON; /* Slightly tilt value to add to part 1 */ vanclocnnd = grafptr->s.vertlocnnd - 2; /* Do not account for anchor vertices in diffusion computations */ if (grafptr->s.edloloctax != NULL) { for (vertlocnum = grafptr->s.baseval; vertlocnum < vanclocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; Gnum edlolocsum; #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((grafptr->s.vendloctax[vertlocnum] - grafptr->s.vertloctax[vertlocnum]) == 0) { errorPrint ("bdgraphBipartDf: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ difogsttax[vertlocnum] = 0.0F; for (edgelocnum = grafptr->s.vertloctax[vertlocnum], edgelocnnd = grafptr->s.vendloctax[vertlocnum], edlolocsum = 0; edgelocnum < edgelocnnd; edgelocnum ++) edlolocsum += grafptr->s.edloloctax[edgelocnum]; ielsloctax[vertlocnum] = 1.0F / (float) edlolocsum; } } else { /* Graph has no edge loads */ for (vertlocnum = grafptr->s.baseval; vertlocnum < vanclocnnd; vertlocnum ++) { #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((grafptr->s.vendloctax[vertlocnum] - grafptr->s.vertloctax[vertlocnum]) == 0) { errorPrint ("bdgraphBipartDf: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ ielsloctax[vertlocnum] = 1.0F / (float) (grafptr->s.vendloctax[vertlocnum] - grafptr->s.vertloctax[vertlocnum]); difogsttax[vertlocnum] = 0.0F; } } ielsloctax[vanclocnnd] = 1.0F / (float) reduglbtab[0]; ielsloctax[vanclocnnd + 1] = 1.0F / (float) reduglbtab[1]; difogsttax[vanclocnnd] = vanclocval[0] * ielsloctax[vanclocnnd]; /* Load anchor vertices for first pass */ difogsttax[vanclocnnd + 1] = vanclocval[1] * ielsloctax[vanclocnnd + 1]; difngsttax[vanclocnnd] = /* In case of isolated anchors, do not risk overflow because of NaN */ difngsttax[vanclocnnd + 1] = 0.0F; if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (difogsttax + grafptr->s.baseval), MPI_FLOAT) != 0) { /* Perform initial diffusion (and build communication structures) */ errorPrint ("bdgraphBipartDf: cannot propagate diffusion data (1)"); memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ return (1); } ovflval = 0; cdifval = (float) paraptr->cdifval; cremval = (float) paraptr->cremval; edgegsttax = grafptr->s.edgegsttax; for (passnum = 0; ; ) { /* For all passes */ if (ovflval == 0) { /* If no overflow occured */ float * diftgsttax; /* Temporary swap value */ Gnum vertlocnum; float veloval; veloval = 1.0F; /* Assume no vertex loads */ for (vertlocnum = grafptr->s.baseval; vertlocnum < vanclocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; float diffval; diffval = 0.0F; edgelocnum = grafptr->s.vertloctax[vertlocnum]; edgelocnnd = grafptr->s.vendloctax[vertlocnum]; if (grafptr->s.edloloctax != NULL) for ( ; edgelocnum < edgelocnnd; edgelocnum ++) diffval += difogsttax[edgegsttax[edgelocnum]] * (float) grafptr->s.edloloctax[edgelocnum]; else for ( ; edgelocnum < edgelocnnd; edgelocnum ++) diffval += difogsttax[edgegsttax[edgelocnum]]; diffval *= cdifval; diffval += (difogsttax[vertlocnum] * cremval) / ielsloctax[vertlocnum]; if (grafptr->s.veloloctax != NULL) veloval = (float) grafptr->s.veloloctax[vertlocnum]; if (diffval >= 0.0F) { diffval = (diffval - veloval) * ielsloctax[vertlocnum]; if (diffval <= 0.0F) diffval = +BDGRAPHBIPARTDFEPSILON; } else { diffval = (diffval + veloval) * ielsloctax[vertlocnum]; if (diffval >= 0.0F) diffval = -BDGRAPHBIPARTDFEPSILON; } if (isnan (diffval)) { /* If overflow occured */ ovflval = 1; /* We are in state of overflow */ goto abort; /* Exit this loop without swapping arrays */ } difngsttax[vertlocnum] = diffval; } for ( ; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { /* For the two local anchor vertices */ Gnum edgelocnum; Gnum edgelocnnd; float diffval; diffval = 0.0F; edgelocnum = grafptr->s.vertloctax[vertlocnum] + grafptr->s.procglbnbr - 1; /* Skip links to other anchors */ edgelocnnd = grafptr->s.vendloctax[vertlocnum]; if (edgelocnum == edgelocnnd) /* If isolated anchor */ continue; /* Barrel is empty */ for ( ; edgelocnum < edgelocnnd; edgelocnum ++) /* Anchor edges have load 1 even for weighted graphs */ diffval += difogsttax[edgegsttax[edgelocnum]]; diffval *= cdifval; diffval += vanclocval[vertlocnum - vanclocnnd] + (difogsttax[vertlocnum] * cremval) / ielsloctax[vertlocnum]; if (diffval >= 0.0F) { diffval = (diffval - valolocval[vertlocnum - vanclocnnd]) * ielsloctax[vertlocnum]; if (diffval <= 0.0F) diffval = +BDGRAPHBIPARTDFEPSILON; } else { diffval = (diffval + valolocval[vertlocnum - vanclocnnd]) * ielsloctax[vertlocnum]; if (diffval >= 0.0F) diffval = -BDGRAPHBIPARTDFEPSILON; } if (isnan (diffval)) { /* If overflow occured */ ovflval = 1; /* We are in state of overflow */ goto abort; /* Exit this loop without swapping arrays */ } difngsttax[vertlocnum] = diffval; } diftgsttax = (float *) difngsttax; /* Swap old and new diffusion arrays */ difngsttax = (float *) difogsttax; /* Casts to prevent IBM compiler from yelling */ difogsttax = (float *) diftgsttax; } abort : /* If overflow occured, resume here */ if (++ passnum >= paraptr->passnbr) /* If maximum number of passes reached */ break; /* Exit main loop */ if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (difogsttax + grafptr->s.baseval), MPI_FLOAT) != 0) { errorPrint ("bdgraphBipartDf: cannot propagate diffusion data (2)"); memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ return (1); } } for (vertlocnum = grafptr->s.baseval; vertlocnum < vanclocnnd; vertlocnum ++) /* Set new part distribution */ grafptr->partgsttax[vertlocnum] = (difogsttax[vertlocnum] <= 0.0F) ? 0 : 1; grafptr->partgsttax[vanclocnnd] = 0; /* Set up parts in case anchors are isolated */ grafptr->partgsttax[vanclocnnd + 1] = 1; memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (grafptr->partgsttax + grafptr->s.baseval), GRAPHPART_MPI) != 0) { errorPrint ("bdgraphBipartDf: cannot propagate part data (2)"); return (1); } commlocloadintn = commlocloadextn = commlocgainextn = 0; for (vertlocnum = grafptr->s.baseval, fronlocnum = complocsize1 = complocload1 = 0; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; Gnum veloval; Gnum partval; Gnum flagval; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (grafptr->partgsttax[vertlocnum] > 1) { errorPrint ("bdgraphBipartDf: internal error (3)"); break; /* Do not break upcoming collective communications */ } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ partval = (Gnum) grafptr->partgsttax[vertlocnum]; veloval = (veloloctax != NULL) ? veloloctax[vertlocnum] : 1; if (grafptr->veexloctax != NULL) { commlocloadextn += grafptr->veexloctax[vertlocnum] * partval; commlocgainextn += grafptr->veexloctax[vertlocnum] * (1 - partval * 2); } complocsize1 += partval; complocload1 += partval * veloval; flagval = 0; for (edgelocnum = grafptr->s.vertloctax[vertlocnum], edgelocnnd = grafptr->s.vendloctax[vertlocnum]; edgelocnum < edgelocnnd; edgelocnum ++) { Gnum edloval; Gnum partend; partend = (Gnum) grafptr->partgsttax[edgegsttax[edgelocnum]]; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (partend > 1) { errorPrint ("bdgraphBipartDf: internal error (4)"); vertlocnum = grafptr->s.vertlocnnd; break; /* Do not break upcoming collective communications */ } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ edloval = (edloloctax != NULL) ? edloloctax[edgelocnum] : 1; flagval |= partval ^ partend; commlocloadintn += (partval ^ partend) * edloval; /* Internal load is accounted for twice */ } if (flagval != 0) /* If vertex has neighbors in other part */ grafptr->fronloctab[fronlocnum ++] = vertlocnum; /* Record it as member of separator */ } grafptr->complocload0 = grafptr->s.velolocsum - complocload1; grafptr->complocsize0 = grafptr->s.vertlocnbr - complocsize1; grafptr->fronlocnbr = fronlocnum; reduloctab[0] = fronlocnum; reduloctab[1] = grafptr->complocload0; reduloctab[2] = grafptr->complocsize0; reduloctab[3] = commlocloadintn; /* Twice the internal load; sum globally before dividing by two */ reduloctab[4] = commlocloadextn; reduloctab[5] = commlocgainextn; if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 6, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartDf: communication error (2)"); return (1); } grafptr->fronglbnbr = reduglbtab[0]; grafptr->compglbload0 = reduglbtab[1]; grafptr->compglbload0dlt = grafptr->compglbload0 - grafptr->compglbload0avg; grafptr->compglbsize0 = reduglbtab[2]; grafptr->commglbload = (reduglbtab[3] / 2) * grafptr->domndist + reduglbtab[4]; grafptr->commglbgainextn = reduglbtab[5]; grafptr->bbalglbval = (double) ((grafptr->compglbload0dlt < 0) ? (- grafptr->compglbload0dlt) : grafptr->compglbload0dlt) / (double) grafptr->compglbload0avg; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (grafptr) != 0) { errorPrint ("bdgraphBipartDf: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_df.h000066400000000000000000000073621514310134000275170ustar00rootroot00000000000000/* Copyright 2007,2009,2011,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_df.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the parallel diffusion bipartition- **/ /** ing routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 16 nov 2007 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Small non-zero float value. +*/ #define BDGRAPHBIPARTDFEPSILON (1.0F / (float) (GNUMMAX)) /*+ Sign masking operator. +*/ #define BDGRAPHBIPARTDFGNUMSGNMSK(i) ((Gnum) 0 - (((Gunum) (i)) >> (sizeof (Gnum) * 8 - 1))) /* ** The type and structure definitions. */ /*+ Job selection policy types. +*/ typedef enum BdgraphBipartDfType_ { BDGRAPHBIPARTDFTYPEBAL = 0, /*+ Balance to average +*/ BDGRAPHBIPARTDFTYPEKEEP /*+ Preserve current imbalance +*/ } BdgraphBipartDfType; /*+ Method parameters. +*/ typedef struct BdgraphBipartDfParam_ { INT passnbr; /*+ Number of passes to do +*/ double cdifval; /*+ Coefficient of diffused load +*/ double cremval; /*+ Coefficient of remaining load +*/ BdgraphBipartDfType typeval; /*+ Type of balance to reach +*/ } BdgraphBipartDfParam; /* ** The function prototypes. */ int bdgraphBipartDf (Bdgraph * const, const BdgraphBipartDfParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_ex.c000066400000000000000000000544461514310134000275420ustar00rootroot00000000000000/* Copyright 2010,2011,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_ex.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module bipartitions a distributed **/ /** active graph using a parallel gradient **/ /** method to balance the two parts as **/ /** evenly as possible. **/ /** **/ /** DATES : # Version 5.1 : from : 16 jul 2010 **/ /** to : 15 apr 2011 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 31 aug 2014 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "arch.h" #include "bdgraph.h" #include "bdgraph_bipart_ex.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bdgraphBipartEx ( Bdgraph * restrict const grafptr, /*+ Active graph +*/ const BdgraphBipartExParam * restrict const paraptr) /*+ Method parameters +*/ { int sbbtnbr; /* Number of subbits */ Gnum sbbtmsk; /* Subbit mask */ int gainsiz; /* Size of gain array */ int gainidx; Gnum * restrict gainloctab; Gnum * restrict gainglbtab; Gnum * restrict frstloctab; Gnum * restrict nextloctab; Gnum * restrict loadglbtab; const Gnum * restrict edgegsttax; Gnum edlolocval; Gnum fronlocnum; Gnum vertgstnum; Gnum vertlocnnd; Gnum complocsizedlt; /* Count of vertices moved locally */ Gnum complocloaddlt; /* Load of vertices moved locally */ Gnum compglbloaddlt; Gnum compglbloaddltmax; Gnum compglbloaddltmat; Gnum commlocgain; Gnum commlocgainextn; Gnum fronlocnbr; int * restrict movegsttab; int * restrict flagloctab; int cheklocval; int chekglbval; BdgraphBipartExSort * sorttab; size_t sortsiz; Gnum reduloctab[5]; Gnum reduglbtab[5]; Gnum domndist; Gnum partval; const Gnum * restrict const vertloctax = grafptr->s.vertloctax; /* Fast accesses */ const Gnum * restrict const vendloctax = grafptr->s.vendloctax; const Gnum * restrict const veloloctax = grafptr->s.veloloctax; const Gnum * restrict const veexloctax = grafptr->veexloctax; const Gnum * restrict const edloloctax = grafptr->s.edloloctax; Gnum * restrict const fronloctab = grafptr->fronloctab; GraphPart * restrict const partgsttax = grafptr->partgsttax; partval = (grafptr->compglbload0dlt > 0) ? 1 : 0; /* Get number of underloaded part to receive vertices */ compglbloaddltmax = (Gnum) ((double) grafptr->compglbload0avg * paraptr->deltval); compglbloaddltmat = (partval == 0) ? (grafptr->compglbload0avg - grafptr->compglbload0min) : (grafptr->compglbload0max - grafptr->compglbload0avg); if (compglbloaddltmax > compglbloaddltmat) compglbloaddltmax = compglbloaddltmat; if ((abs (grafptr->compglbload0dlt) < compglbloaddltmax) || /* If nothing to do */ (grafptr->fronglbnbr == 0)) /* Or if no current frontier */ return (0); /* This algorithm is useless */ if (dgraphGhst (&grafptr->s) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("bdgraphBipartEx: cannot compute ghost edge array"); return (1); } sbbtnbr = (int) paraptr->sbbtnbr; sbbtmsk = (1 << sbbtnbr) - 1; gainsiz = ((sizeof (Gnum) << 3) - sbbtnbr) << (sbbtnbr + 1); /* Compute gain array size */ sortsiz = MAX ((grafptr->s.procglbnbr * sizeof (BdgraphBipartExSort)), /* TRICK: recycle */ (grafptr->fronlocnbr * sizeof (BdgraphBipartExMove))); cheklocval = 0; if (memAllocGroup ((void **) (void *) &gainglbtab, (size_t) (gainsiz * sizeof (Gnum)), &gainloctab, (size_t) (gainsiz * sizeof (Gnum)), &frstloctab, (size_t) (gainsiz * sizeof (Gnum)), &nextloctab, (size_t) (grafptr->fronlocnbr * sizeof (Gnum)), &loadglbtab, (size_t) (grafptr->s.procglbnbr * sizeof (Gnum)), &movegsttab, (size_t) (flagSize (grafptr->s.vertgstnbr + grafptr->s.baseval) * sizeof (int)), /* TRICK: use based vertices as flag array indices */ &flagloctab, (size_t) (flagSize (grafptr->s.vertlocnbr + grafptr->s.baseval) * sizeof (int)), &sorttab, (size_t) (sortsiz), NULL) == NULL) { errorPrint ("bdgraphBipartEx: out of memory"); cheklocval = 1; } else { memSet (gainloctab, 0, gainsiz * sizeof (Gnum)); /* Initialize gain array */ memSet (frstloctab, ~0, gainsiz * sizeof (Gnum)); /* Initialize linked list */ memSet (nextloctab, ~0, grafptr->fronlocnbr * sizeof (Gnum)); memSet (movegsttab, 0, flagSize (grafptr->s.vertgstnbr + grafptr->s.baseval) * sizeof (int)); /* TRICK: based sizes */ memSet (flagloctab, 0, flagSize (grafptr->s.vertlocnbr + grafptr->s.baseval) * sizeof (int)); } #ifdef SCOTCH_DEBUG_BDGRAPH1 if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartEx: communication error (1)"); return (1); } #else /* SCOTCH_DEBUG_BDGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (chekglbval != 0) { if (gainglbtab != NULL) memFree (gainglbtab); /* Free group leader */ return (1); } domndist = (Gnum) grafptr->domndist; edgegsttax = grafptr->s.edgegsttax; edlolocval = 1; /* Assume no edge loads */ for (fronlocnum = 0; fronlocnum < grafptr->fronlocnbr; fronlocnum ++) { Gnum vertlocnum; Gnum velolocval; Gnum edgelocnum; Gnum commgain; int gainidx; int i; Gnum j; vertlocnum = fronloctab[fronlocnum]; if ((Gnum) partgsttax[vertlocnum] == partval) /* If vertex belongs to lighter part, skip it */ continue; for (edgelocnum = vertloctax[vertlocnum], commgain = 0; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum vertlocend; Gnum partend; Gnum partdlt; vertlocend = edgegsttax[edgelocnum]; partend = (Gnum) partgsttax[vertlocend]; if (edloloctax != NULL) edlolocval = edloloctax[edgelocnum]; partdlt = partval ^ partend; /* Inverse of partdlt, because "partval" is the opposite */ commgain += (2 * partdlt - 1) * edlolocval; /* Since partdlt has reversed meaning, reverse gain too */ } commgain *= domndist; /* Adjust internal gains with respect to external gains */ if (veexloctax != NULL) commgain += (2 * partval - 1) * veexloctax[vertlocnum]; /* Partval has reversed meaning */ velolocval = (veloloctax != NULL) ? veloloctax[vertlocnum] : 1; if (commgain >= 0) { /* Compute table entry for gain */ for (i = 0, j = commgain; j > sbbtmsk; i ++, j >>= 1) ; i = (i << sbbtnbr) + (int) j; } else { for (i = 0, j = - (commgain + 1); j > sbbtmsk; i ++, j >>= 1) ; i = - ((i << sbbtnbr) + (int) j + 1); } gainidx = (gainsiz >> 1) + i; #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((gainidx < 0) || (gainidx >= gainsiz)) { errorPrint ("bdgraphBipartEx: internal error"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ gainloctab[gainidx] += velolocval; /* Accumulate gain in proper cell */ nextloctab[fronlocnum] = frstloctab[gainidx]; /* Chain frontier vertex in gain list */ frstloctab[gainidx] = fronlocnum; } if (MPI_Allreduce (gainloctab, gainglbtab, gainsiz, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartEx: communication error (2)"); return (1); } complocloaddlt = 0; /* No moved vertices yet */ compglbloaddlt = abs (grafptr->compglbload0dlt); /* We want to reduce the absolute value of imbalance */ for (gainidx = 0; gainidx < gainsiz; gainidx ++) { Gnum compglbloadtmp; Gnum gainglbval; Gnum fronlocnum; gainglbval = gainglbtab[gainidx]; if (gainglbval <= 0) continue; compglbloadtmp = compglbloaddlt - gainglbval; if (compglbloadtmp < compglbloaddltmax) break; compglbloaddlt = compglbloadtmp; complocloaddlt += gainloctab[gainidx]; /* We moved that much load locally */ for (fronlocnum = frstloctab[gainidx]; fronlocnum != ~0; /* For all vertices in swapped gain slot */ fronlocnum = nextloctab[fronlocnum]) partgsttax[fronloctab[fronlocnum]] = (GraphPart) (partval | 2); /* Swap vertex part and flag vertex */ } if ((gainidx < gainsiz) && /* If we can make further adjustments */ (compglbloaddlt > compglbloaddltmax)) { /* And if there are some to make */ Gnum loadglbmax; int procglbnbr; int proclocnum; int procnum; int procmax; int sortnbr; int sortnum; if (MPI_Allgather (gainloctab + gainidx, 1, GNUM_MPI, loadglbtab, 1, GNUM_MPI, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartEx: communication error (3)"); return (1); } for (procnum = procmax = sortnbr = 0, loadglbmax = 0; /* For all potential contributions */ procnum < grafptr->s.procglbnbr; procnum ++) { if (loadglbtab[procnum] > 0) { if (loadglbtab[procnum] > loadglbmax) { /* Find maximum contribution index as starting point */ loadglbmax = loadglbtab[procnum]; procmax = procnum; } sorttab[sortnbr].veloval = loadglbtab[procnum]; sorttab[sortnbr].procnum = (Gnum) procnum; sortnbr ++; } } procglbnbr = grafptr->s.procglbnbr; for (sortnum = 0; sortnum < sortnbr; sortnum ++) /* Increase priority value from found maximum */ sorttab[sortnum].prioval = (sorttab[sortnum].procnum + procglbnbr - procmax) % procglbnbr; intSort3asc2 (sorttab, sortnbr); /* Sort contributions array unambiguously */ proclocnum = grafptr->s.proclocnum; for (sortnum = sortnbr - 1; sortnum >= 0; sortnum --) { /* Process contributions by descending load */ Gnum compglbloadtmp; compglbloadtmp = compglbloaddlt - sorttab[sortnum].veloval; if (compglbloadtmp < compglbloaddltmax) { /* If entire move would cause imbalance */ Gnum fronlocnum; BdgraphBipartExMove * movetab; Gnum movenbr; Gnum movenum; if (sorttab[sortnum].procnum != proclocnum) /* If this is not our job to handle it */ break; /* Nothing more to do for us */ movetab = (BdgraphBipartExMove *) sorttab; /* TRICK: recycle sorttab array as move array */ for (fronlocnum = frstloctab[gainidx], movenbr = 0; /* For all vertices in swapped gain slot */ fronlocnum != ~0; fronlocnum = nextloctab[fronlocnum], movenbr ++) { Gnum vertlocnum; vertlocnum = fronloctab[fronlocnum]; movetab[movenbr].veloval = (veloloctax != NULL) ? veloloctax[vertlocnum] : 1; movetab[movenbr].vertnum = vertlocnum; } intSort2asc1 (movetab, movenbr); /* Sort local moves by ascending load order */ for (movenum = movenbr - 1; movenum >= 0; movenum --) { /* For all potential moves by descending weight */ Gnum compglbloadtmp; compglbloadtmp = compglbloaddlt - movetab[movenum].veloval; if (compglbloadtmp >= compglbloaddltmax) { /* If move reduces imbalance */ partgsttax[movetab[movenum].vertnum] = (GraphPart) (partval | 2); /* Swap vertex part and flag vertex */ compglbloaddlt = compglbloadtmp; complocloaddlt += movetab[movenum].veloval; /* We moved that much load locally */ if (compglbloaddlt <= compglbloaddltmax) /* If nothing more to do, exit loop */ break; } } break; /* Nothing more to do */ } compglbloaddlt = compglbloadtmp; /* Accept move entirely */ if (sorttab[sortnum].procnum == proclocnum) { /* If we are the process to do it */ Gnum fronlocnum; complocloaddlt += sorttab[sortnum].veloval; /* We moved all of our local load for this gain */ for (fronlocnum = frstloctab[gainidx]; fronlocnum != ~0; /* For all vertices in swapped gain slot */ fronlocnum = nextloctab[fronlocnum]) partgsttax[fronloctab[fronlocnum]] = (GraphPart) (partval | 2); /* Swap vertex part and flag vertex */ break; /* We did our job; don't care about the rest */ } } } grafptr->complocload0 -= (2 * partval - 1) * complocloaddlt; /* Update according to load of moved vertices */ if (dgraphHaloSync (&grafptr->s, partgsttax + grafptr->s.baseval, GRAPHPART_MPI) != 0) { errorPrint ("bdgraphBipartEx: communication error (4)"); return (1); } for (vertgstnum = grafptr->s.vertlocnnd; /* For all received ghosts */ vertgstnum < grafptr->s.vertgstnnd; vertgstnum ++) { if ((partgsttax[vertgstnum] & 2) != 0) { /* If ghost vertex changed part */ partgsttax[vertgstnum] &= 1; /* Put it back in normal state */ flagSet (movegsttab, vertgstnum); /* While recording state change */ } } complocsizedlt = 0; /* No difference to number of vertices yet */ for (fronlocnum = 0, fronlocnbr = grafptr->fronlocnbr; fronlocnum < fronlocnbr; fronlocnum ++) { Gnum vertlocnum; vertlocnum = fronloctab[fronlocnum]; flagSet (flagloctab, vertlocnum); /* Record vertex as already seen */ if ((partgsttax[vertlocnum] & 2) != 0) { /* If frontier vertex changed part */ partgsttax[vertlocnum] &= 1; /* Put it back in normal state */ flagSet (movegsttab, vertlocnum); /* While recording state change */ complocsizedlt ++; /* One more vertex changed of part */ } } grafptr->complocsize0 -= (2 * partval - 1) * complocsizedlt; /* Update according to number of moved vertices */ if (grafptr->s.procsidnbr != 0) { /* Add potential new frontiers to frontier array */ Gnum vertlocnum; Gnum procsidnbr; Gnum procsidnum; int procsidval; const int * restrict const procsidtab = grafptr->s.procsidtab; vertlocnum = grafptr->s.baseval; procsidnbr = grafptr->s.procsidnbr; procsidnum = 0; procsidval = procsidtab[procsidnum ++]; while (1) { /* Scan all vertices which have foreign neighbors */ while (procsidval < 0) { vertlocnum -= (Gnum) procsidval; procsidval = procsidtab[procsidnum ++]; } if (flagVal (flagloctab, vertlocnum) == 0) { /* If vertex not already processed */ flagSet (flagloctab, vertlocnum); fronloctab[fronlocnbr ++] = vertlocnum; /* Record candidate frontier vertex */ } do { if (procsidnum >= procsidnbr) goto loop_exit; } while ((procsidval = procsidtab[procsidnum ++]) >= 0); } loop_exit : ; } edlolocval = 1; /* Assume no edge loads */ commlocgain = commlocgainextn = 0; for (fronlocnum = 0, vertlocnnd = grafptr->s.vertlocnnd; /* For all potential frontier vertices */ fronlocnum < fronlocnbr; ) { Gnum vertlocnum; Gnum edgelocnum; Gnum commcut; Gnum flagval; vertlocnum = fronloctab[fronlocnum]; partval = partgsttax[vertlocnum]; flagval = flagVal (movegsttab, vertlocnum); for (edgelocnum = vertloctax[vertlocnum], commcut = 0; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum vertlocend; Gnum flagend; Gnum partend; Gnum partdlt; vertlocend = edgegsttax[edgelocnum]; partend = (Gnum) partgsttax[vertlocend]; flagend = (Gnum) flagVal (movegsttab, vertlocend); if (edloloctax != NULL) edlolocval = edloloctax[edgelocnum]; partdlt = partval ^ partend; /* Compute difference between new parts */ commcut |= partdlt; /* Accumulate difference */ if ((partdlt != 0) && /* If vertices belong to different parts */ (vertlocend < vertlocnnd) && /* And end vertex is local */ (flagVal (flagloctab, vertlocend) == 0)) { /* And end vertex not already queued */ fronloctab[fronlocnbr ++] = vertlocend; /* Add end vertex to frontier queue */ flagSet (flagloctab, vertlocend); /* Flag it to avoid multiple insertions */ } commlocgain += (((- partdlt) & edlolocval) - /* Compute difference between new and old communication loads */ ((- (partdlt ^ flagval ^ flagend)) & edlolocval)); } if (veexloctax != NULL) commlocgainextn += (partval - (partval ^ flagval)) * veexloctax[vertlocnum]; /* Compute half of difference in external load */ if (commcut == 0) { /* If vertex no longer belongs to frontier */ fronloctab[fronlocnum] = fronloctab[-- fronlocnbr]; /* Replace it by another one */ continue; /* Process replacement vertex */ } fronlocnum ++; /* Process next vertex */ } grafptr->fronlocnbr = fronlocnbr; /* Set new number of frontier vertices */ memFree (gainglbtab); /* Free group leader */ reduloctab[0] = grafptr->fronlocnbr; reduloctab[1] = grafptr->complocload0; reduloctab[2] = grafptr->complocsize0; reduloctab[3] = commlocgain * domndist; /* Send internal gain */ reduloctab[4] = commlocgainextn * 2; /* Send external gain */ if (MPI_Allreduce (reduloctab, reduglbtab, 5, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartEx: communication error (5)"); return (1); } grafptr->fronglbnbr = reduglbtab[0]; grafptr->compglbload0 = reduglbtab[1]; grafptr->compglbload0dlt = reduglbtab[1] - grafptr->compglbload0avg; grafptr->compglbsize0 = reduglbtab[2]; grafptr->commglbload += reduglbtab[3] / 2 + reduglbtab[4]; /* Add modifications, counted twice for internal gain */ grafptr->commglbgainextn -= reduglbtab[4]; /* Account for modifications in external gain */ grafptr->bbalglbval = (double) ((grafptr->compglbload0dlt < 0) ? (- grafptr->compglbload0dlt) : grafptr->compglbload0dlt) / (double) grafptr->compglbload0avg; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (grafptr) != 0) { errorPrint ("bdgraphBipartEx: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_ex.h000066400000000000000000000076431514310134000275440ustar00rootroot00000000000000/* Copyright 2010,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_ex.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the parallel load imbalance **/ /** minimization bipartitioning routine **/ /** for distributed graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 14 jul 2010 **/ /** to : 14 aug 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct BdgraphBipartExParam_ { INT sbbtnbr; /*+ Number of sub-bits in the distributed gain structure +*/ double deltval; /*+ Maximum weight imbalance ratio +*/ } BdgraphBipartExParam; /* Sort structure for local vertices. First element used for intSort2asc1. */ typedef struct BdgraphBipartExSort_ { Gnum veloval; /* Load per process; TRICK: FIRST */ Gnum prioval; /* Priority value, not to sort by process rank */ Gnum procnum; /* Process number; TRICK: (Gnum) for sorting */ } BdgraphBipartExSort; /* Sort structure for individual moves. */ typedef struct BdgraphBipartExMove_ { Gnum veloval; /* Load per process; TRICK: FIRST */ Gnum vertnum; /* Vertex number */ } BdgraphBipartExMove; /* ** The function prototypes. */ int bdgraphBipartEx (Bdgraph * restrict const, const BdgraphBipartExParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_ml.c000066400000000000000000001115101514310134000275200ustar00rootroot00000000000000/* Copyright 2007-2014,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_ml.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module bipartitions a distributed **/ /** graph using a multi-level scheme. **/ /** **/ /** DATES : # Version 5.1 : from : 30 oct 2007 **/ /** to : 14 apr 2011 **/ /** : # Version 6.0 : from : 11 sep 2011 **/ /** to : 31 aug 2019 **/ /** : # Version 7.0 : from : 27 aug 2019 **/ /** to : 14 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_BDGRAPH_BIPART_ML #include "module.h" #include "common.h" #include "parser.h" #include "arch.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "bdgraph.h" #include "bdgraph_bipart_ml.h" #include "bdgraph_bipart_st.h" /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser graph from the ** Dgraph that is given on input. The coarser ** Dgraphs differ at this stage from classical ** active Dgraphs as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse Dgraph has been built. ** - 1 : if threshold reached or on error. */ static int bdgraphBipartMlCoarsen ( Bdgraph * restrict const finegrafptr, /*+ Finer graph +*/ Bdgraph * restrict const coargrafptr, /*+ Coarser graph to build +*/ DgraphCoarsenMulti * restrict * const coarmultptr, /*+ Pointer to multinode table to build +*/ const BdgraphBipartMlParam * const paraptr) /*+ Method parameters +*/ { int foldval; switch (paraptr->foldval) { case 0 : foldval = DGRAPHCOARSENNONE; break; case 1 : foldval = DGRAPHCOARSENFOLD; break; case 2 : foldval = DGRAPHCOARSENFOLDDUP; break; #ifdef SCOTCH_DEBUG_BGRAPH2 default : errorPrint ("bdgraphBipartMlCoarsen: invalid parameter"); return (1); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } if ((finegrafptr->s.vertglbnbr / finegrafptr->s.procglbnbr) > paraptr->foldmax) /* If no need to fold */ foldval = DGRAPHCOARSENNONE; *coarmultptr = NULL; /* Let the routine create the multinode array */ dgraphInit (&coargrafptr->s, finegrafptr->s.proccomm); /* Re-use fine graph communicator */ if (dgraphCoarsen (&finegrafptr->s, &coargrafptr->s, coarmultptr, paraptr->passnbr, paraptr->coarnbr, paraptr->coarrat, foldval, finegrafptr->contptr) != 0) return (1); /* Return if coarsening failed */ *coarmultptr -= coargrafptr->s.baseval; /* Base pointer to multinode array */ coargrafptr->partgsttax = NULL; /* Do not allocate partition data yet */ coargrafptr->fronloctab = NULL; coargrafptr->fronglbnbr = 0; if (coargrafptr->s.procglbnbr == 0) { /* Not owner of graph */ coargrafptr->veexloctax = NULL; return (0); } if (finegrafptr->veexloctax != NULL) { /* Merge external gains for coarsened vertices */ DgraphCoarsenMulti * restrict coarmulttax; Gnum * restrict coarveexloctax; Gnum coarvertlocnum; if ((coarveexloctax = (Gnum *) memAlloc (coargrafptr->s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("bdgraphBipartMlCoarsen: out of memory"); dgraphExit (&coargrafptr->s); /* Only free Dgraph since veexloctax not allocated */ memFree (*coarmultptr + coargrafptr->s.baseval); return (1); } coarveexloctax -= coargrafptr->s.baseval; coargrafptr->veexloctax = coarveexloctax; coarmulttax = *coarmultptr; for (coarvertlocnum = coargrafptr->s.baseval; coarvertlocnum < coargrafptr->s.vertlocnnd; coarvertlocnum++) { Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ finevertnum0 = coarmulttax[coarvertlocnum].vertglbnum[0]; finevertnum1 = coarmulttax[coarvertlocnum].vertglbnum[1]; coarveexloctax[coarvertlocnum] = (finevertnum0 != finevertnum1) ? finegrafptr->veexloctax[finevertnum0] + finegrafptr->veexloctax[finevertnum1] : finegrafptr->veexloctax[finevertnum0]; } } else /* If fine graph does not have external gains */ coargrafptr->veexloctax = NULL; /* Coarse graph does not have external gains */ coargrafptr->veexglbsum = finegrafptr->veexglbsum; coargrafptr->compglbload0min = finegrafptr->compglbload0min; /* Only set constant partition parameters as others will be set on uncoarsening */ coargrafptr->compglbload0max = finegrafptr->compglbload0max; coargrafptr->compglbload0avg = finegrafptr->compglbload0avg; coargrafptr->commglbloadextn0 = finegrafptr->commglbloadextn0; coargrafptr->commglbgainextn0 = finegrafptr->commglbgainextn0; coargrafptr->domndist = finegrafptr->domndist; coargrafptr->domnwght[0] = finegrafptr->domnwght[0]; coargrafptr->domnwght[1] = finegrafptr->domnwght[1]; coargrafptr->levlnum = finegrafptr->levlnum + 1; coargrafptr->contptr = finegrafptr->contptr; return (0); } /* This routine is the reduction-loc operator which ** returns in inout[2] the rank of the process which ** holds the best partition. ** It returns: ** - void : in all cases. */ static void bdgraphBipartMlOpBest ( const Gnum * const in, /* First operand */ Gnum * const inout, /* Second and output operand */ const int * const len, /* Number of instances ; should be 1, not used */ const MPI_Datatype * const typedat) /* MPI datatype ; not used */ { inout[5] |= in[5]; /* Memory error flag */ if (inout[0] == 1) { /* Handle cases when at least one of them is erroneous */ if (in[0] == 1) { if (inout[1] > in[1]) { /* To enforce commutativity, always keep smallest process number */ inout[1] = in[1]; inout[2] = in[2]; } return; } inout[0] = in[0]; /* Validity flag */ inout[1] = in[1]; /* Lead process rank */ inout[2] = in[2]; /* Lead process color */ inout[3] = in[3]; /* Communication load */ inout[4] = in[4]; /* Load imbalance */ return; } else if (in[0] == 1) return; if ((in[3] < inout[3]) || /* Select best partition (with smallest rank in case of draw) */ ((in[3] == inout[3]) && ((in[4] < inout[4]) || ((in[4] == inout[4]) && (in[1] < inout[1]))))) { inout[1] = in[1]; inout[2] = in[2]; inout[3] = in[3]; inout[4] = in[4]; } } /* This routine propagates the bipartitioning of the ** coarser graph back to the finer graph, according ** to the multinode table of collapsed vertices. ** After the bipartitioning is propagated, it finishes ** to compute the parameters of the finer graph that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse graph data has been propagated to fine graph. ** - !0 : on error. */ static int bdgraphBipartMlUncoarsen ( Bdgraph * restrict finegrafptr, /*+ Finer graph +*/ const Bdgraph * restrict const coargrafptr, /*+ Coarser graph +*/ const DgraphCoarsenMulti * restrict const coarmulttax) /*+ Multinode array +*/ { Gnum baseval; Gnum finefronlocnbr; Gnum finefronlocnum; Gnum fineedlolocval; Gnum finevertlocadj; /* Global vertex adjustment */ Gnum finevertlocnnd; /* Index for frontier array fronloctab */ Gnum finecomplocsize1; Gnum finecomplocload1; Gnum finecommlocloadintn; Gnum finecommlocloadextn; Gnum finecommlocgainextn; int vrcvdspnbr; int vsnddspnbr; int * restrict vrcvcnttab; int * restrict vsndcnttab; int * restrict vrcvdsptab; int * restrict vsnddsptab; Gnum * restrict vrcvdattab; Gnum * restrict vsnddattab; Gnum * restrict vsndidxtab; BdgraphBipartMlSort * restrict sortloctab; /* Array of vertices to send to their owner */ Gnum sortlocnbr; Gnum sortlocnum; int procnum; MPI_Datatype besttypedat; /* Data type for finding best bipartition */ MPI_Op bestoperdat; /* Handle of MPI operator for finding best bipartition */ Gnum reduloctab[6]; /* "6": both for selecting best and propagating data */ Gnum reduglbtab[6]; const Gnum * restrict coarfronloctab; GraphPart * restrict coarpartgsttax; GraphPart * restrict finepartgsttax; Gnum * restrict finefronloctab; #ifdef SCOTCH_DEBUG_BDGRAPH2 Gnum finevertlocnum; #endif /* SCOTCH_DEBUG_BDGRAPH2 */ const int fineprocglbnbr = finegrafptr->s.procglbnbr; const Gnum * restrict const fineprocvrttab = finegrafptr->s.procvrttab; const Gnum * restrict const fineedgegsttax = finegrafptr->s.edgegsttax; const Gnum * restrict const finevertloctax = finegrafptr->s.vertloctax; const Gnum * restrict const finevendloctax = finegrafptr->s.vendloctax; const Gnum * restrict const fineveloloctax = finegrafptr->s.veloloctax; const Gnum * restrict const fineveexloctax = finegrafptr->veexloctax; const Gnum * restrict const fineedloloctax = finegrafptr->s.edloloctax; reduloctab[5] = 0; /* Assume everything is fine */ if (finegrafptr->partgsttax == NULL) { /* If partition array not yet allocated */ if (dgraphGhst (&finegrafptr->s) != 0) { /* Create ghost edge array and compute vertgstnbr */ errorPrint ("bdgraphBipartMlUncoarsen: cannot compute ghost edge array"); reduloctab[5] = 1; /* Allocated data will be freed along with graph structure */ } else if ((finegrafptr->partgsttax = (GraphPart *) memAlloc (finegrafptr->s.vertgstnbr * sizeof (GraphPart))) == NULL) { errorPrint ("bdgraphBipartMlUncoarsen: out of memory (1)"); reduloctab[5] = 1; /* Allocated data will be freed along with graph structure */ } else if (finegrafptr->partgsttax -= finegrafptr->s.baseval, (finegrafptr->fronloctab = (Gnum *) memAlloc (finegrafptr->s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("bdgraphBipartMlUncoarsen: out of memory (2)"); reduloctab[5] = 1; /* Allocated data will be freed along with graph structure */ } } if (coargrafptr == NULL) { /* If coarser graph not provided */ #ifdef SCOTCH_DEBUG_BDGRAPH1 /* Communication cannot be overlapped by a useful one */ if (MPI_Allreduce (&reduloctab[5], &reduglbtab[5], 1, GNUM_MPI, MPI_SUM, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (1)"); return (1); } #else /* SCOTCH_DEBUG_BDGRAPH1 */ reduglbtab[5] = reduloctab[5]; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (reduglbtab[5] != 0) return (1); bdgraphZero (finegrafptr); /* Assign all vertices to part 0 */ #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (finegrafptr) != 0) { errorPrint ("bdgraphBipartMlUncoarsen: inconsistent graph data (1)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } if (coargrafptr->s.procglbnbr <= 0) { /* If unused folded coargrafptr */ reduloctab[0] = 1; /* Set it as invalid */ reduloctab[1] = 0; /* Useless rank */ reduloctab[2] = 1; /* Color is not the one of folded */ reduloctab[3] = /* Prevent Valgrind from yelling */ reduloctab[4] = 0; } else { reduloctab[0] = ((coargrafptr->compglbload0 == 0) || /* Empty subdomains are deemed invalid */ (coargrafptr->compglbload0 == coargrafptr->s.veloglbsum)) ? 1 : 0; reduloctab[1] = (Gnum) finegrafptr->s.proclocnum; /* Set rank according to global order on both sub-communicators */ reduloctab[2] = (Gnum) coargrafptr->s.pkeyglbval; /* Set color key according to coarse graph sub-communicator */ reduloctab[3] = coargrafptr->commglbload; reduloctab[4] = coargrafptr->compglbload0dlt; } if ((MPI_Type_contiguous (6, GNUM_MPI, &besttypedat) != MPI_SUCCESS) || (MPI_Type_commit (&besttypedat) != MPI_SUCCESS) || (MPI_Op_create ((MPI_User_function *) bdgraphBipartMlOpBest, 1, &bestoperdat) != MPI_SUCCESS)) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (2)"); return (1); } if (MPI_Allreduce (reduloctab, reduglbtab, 1, besttypedat, bestoperdat, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (3)"); return (1); } if ((MPI_Op_free (&bestoperdat) != MPI_SUCCESS) || (MPI_Type_free (&besttypedat) != MPI_SUCCESS)) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (4)"); return (1); } if (reduglbtab[5] != 0) /* If memory error, return */ return (1); if (reduglbtab[0] == 1) { /* If all possible partitions are invalid */ #ifdef SCOTCH_DEBUG_BDGRAPH2 errorPrintW ("bdgraphBipartMlUncoarsen: no valid partition"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (1); /* All invalid partitions will lead to low method be applied at upper level */ } if (memAllocGroup ((void **) (void *) &vrcvcnttab, (size_t) (fineprocglbnbr * sizeof (int)), &vrcvdsptab, (size_t) (fineprocglbnbr * sizeof (int)), &vsnddsptab, (size_t) (fineprocglbnbr * sizeof (int)), &vsndcnttab, (size_t) (fineprocglbnbr * sizeof (int)), &vsndidxtab, (size_t) (fineprocglbnbr * sizeof (Gnum) * 4), /* TRICK: sortloctab after vsndidxtab after vsndcnttab */ &sortloctab, (size_t) (2 * coargrafptr->s.vertlocnbr * sizeof (BdgraphBipartMlSort)), NULL) == NULL) { errorPrint ("bdgraphBipartMlUncoarsen: out of memory (3)"); reduloctab[5] = 1; } #ifdef SCOTCH_DEBUG_BDGRAPH1 /* Communication cannot be overlapped by a useful one */ if (MPI_Allreduce (&reduloctab[5], &reduglbtab[5], 1, GNUM_MPI, MPI_SUM, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (5)"); return (1); } #else /* SCOTCH_DEBUG_BDGRAPH1 */ reduglbtab[5] = reduloctab[5]; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (reduglbtab[5] != 0) { if (vrcvcnttab != NULL) memFree (vrcvcnttab); return (1); } memSet (vsndcnttab, 0, ((byte *) sortloctab) - ((byte *) vsndcnttab)); /* TRICK: sortloctab after vsndidxtab after vsndcnttab */ baseval = finegrafptr->s.baseval; coarfronloctab = coargrafptr->fronloctab; coarpartgsttax = coargrafptr->partgsttax; finepartgsttax = finegrafptr->partgsttax; finevertlocnnd = finegrafptr->s.vertlocnnd; finevertlocadj = finegrafptr->s.procvrttab[finegrafptr->s.proclocnum] - baseval; finefronloctab = finegrafptr->fronloctab; finecomplocsize1 = 0; finecomplocload1 = 0; finecommlocloadextn = 0; finecommlocgainextn = 0; #ifdef SCOTCH_DEBUG_BDGRAPH2 memSet (finepartgsttax + baseval, ~0, finegrafptr->s.vertgstnbr * sizeof (GraphPart)); /* All vertices are unvisited */ #endif /* SCOTCH_DEBUG_BDGRAPH2 */ finefronlocnbr = 0; sortlocnbr = 0; if (reduglbtab[2] == (Gnum) coargrafptr->s.pkeyglbval) { /* If we belong to the group of the lead process, we must browse and send local data */ Gnum coarfronlocnum; Gnum coarvertlocnum; for (coarfronlocnum = 0; coarfronlocnum < coargrafptr->fronlocnbr; coarfronlocnum ++) coarpartgsttax[coarfronloctab[coarfronlocnum]] |= 2; /* Flag vertex as belonging to frontier */ for (coarvertlocnum = baseval; coarvertlocnum < coargrafptr->s.vertlocnnd; coarvertlocnum ++) { GraphPart coarpartval; Gnum coarpartmsk; Gnum finevertglbnum; Gnum finevertlocnum; int i; coarpartval = coarpartgsttax[coarvertlocnum]; coarpartmsk = (Gnum) (coarpartval & 1); i = 0; do { /* For the two vertices of the multinode */ finevertglbnum = coarmulttax[coarvertlocnum].vertglbnum[i]; finevertlocnum = finevertglbnum - finevertlocadj; if ((finevertlocnum >= baseval) && /* If fine multinode vertex is local */ (finevertlocnum < finevertlocnnd)) { #ifdef SCOTCH_DEBUG_BDGRAPH2 if (finepartgsttax[finevertlocnum] != ((GraphPart) ~0)) { /* If local vertex already processed before */ errorPrint ("bdgraphBipartMlUncoarsen: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ finepartgsttax[finevertlocnum] = (coarpartval & 1); finecomplocsize1 += coarpartmsk; /* One extra vertex created in part 1 if (coarpartval == 1) */ if ((coarpartval & 2) != 0) /* If coarse frontier vertex, add fine vertex to fine frontier */ finefronloctab[finefronlocnbr ++] = finevertlocnum; if (fineveloloctax != NULL) { Gnum veloval; veloval = fineveloloctax[finevertlocnum]; finecomplocload1 += veloval & (- coarpartmsk); } if (fineveexloctax != NULL) { Gnum veexval; veexval = fineveexloctax[finevertlocnum]; finecommlocloadextn += veexval * coarpartmsk; finecommlocgainextn += veexval * (1 - 2 * coarpartmsk); } } else { /* Multinode fine vertex is remote */ int procngbnum; int procngbmax; procngbnum = 0; procngbmax = fineprocglbnbr; while ((procngbmax - procngbnum) > 1) { /* Find owner process by dichotomy on procvgbtab */ int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (fineprocvrttab[procngbmed] > finevertglbnum) procngbmax = procngbmed; else procngbnum = procngbmed; } vsndidxtab[4 * procngbnum + coarpartval] ++; /* One of four counters per process number will be incremented */ sortloctab[sortlocnbr].vertnum = finevertglbnum; sortloctab[sortlocnbr].procnum = ((procngbnum + (fineprocglbnbr * coarpartmsk)) ^ (- (Gnum) (coarpartval >> 1))); /* Embed part and frontier information */ sortlocnbr ++; } i ++; /* Process next multinode vertex */ } while (finevertglbnum != coarmulttax[coarvertlocnum].vertglbnum[1]); /* If not single node */ } for (procnum = 0; procnum < fineprocglbnbr; procnum ++) { /* Aggregate data to be sent */ vsndcnttab[procnum] = vsndidxtab[4 * procnum] + vsndidxtab[4 * procnum + 1] + vsndidxtab[4 * procnum + 2] + vsndidxtab[4 * procnum + 3]; if (vsndcnttab[procnum] != 0) /* If we will send data to neighbor */ vsndcnttab[procnum] += 3; /* Add control data to message size */ } } if (MPI_Alltoall (vsndcnttab, 1, MPI_INT, vrcvcnttab, 1, MPI_INT, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (6)"); return (1); } for (procnum = 0, vrcvdspnbr = vsnddspnbr = 0; /* Build communication index arrays */ procnum < fineprocglbnbr; procnum ++) { vrcvdsptab[procnum] = vrcvdspnbr; vsnddsptab[procnum] = vsnddspnbr; vrcvdspnbr += vrcvcnttab[procnum]; vsnddspnbr += vsndcnttab[procnum]; } if (memAllocGroup ((void **) (void *) &vrcvdattab, (size_t) (vrcvdspnbr * sizeof (Gnum)), &vsnddattab, (size_t) (vsnddspnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("bdgraphBipartMlUncoarsen: out of memory (4)"); reduloctab[5] = 1; } #ifdef SCOTCH_DEBUG_BDGRAPH1 /* Communication cannot be overlapped by a useful one */ if (MPI_Allreduce (&reduloctab[5], &reduglbtab[5], 1, GNUM_MPI, MPI_SUM, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (7)"); return (1); } #else /* SCOTCH_DEBUG_BDGRAPH1 */ reduglbtab[5] = reduloctab[5]; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (reduglbtab[5] != 0) { if (vrcvdattab != NULL) memFree (vrcvdattab); if (vrcvcnttab != NULL) memFree (vrcvcnttab); return (1); } for (procnum = 0; procnum < fineprocglbnbr; procnum ++) { Gnum vsnddspval; vsnddspval = vsnddsptab[procnum]; if (vsndcnttab[procnum] != 0) { Gnum vsndidxnum; vsnddattab[vsnddspval] = vsndidxtab[4 * procnum]; vsnddattab[vsnddspval + 1] = vsndidxtab[4 * procnum + 1]; vsnddattab[vsnddspval + 2] = vsndidxtab[4 * procnum + 2]; vsnddspval += 3; /* Compute sub-array indices to pack vertices to be sent */ vsndidxnum = vsndidxtab[4 * procnum]; vsndidxtab[4 * procnum] = vsnddspval; vsnddspval += vsndidxnum; vsndidxnum = vsndidxtab[4 * procnum + 1]; vsndidxtab[4 * procnum + 1] = vsnddspval; vsnddspval += vsndidxnum; vsndidxnum = vsndidxtab[4 * procnum + 2]; vsndidxtab[4 * procnum + 2] = vsnddspval; vsnddspval += vsndidxnum; vsndidxtab[4 * procnum + 3] = vsnddspval; } } for (sortlocnum = 0; sortlocnum < sortlocnbr; sortlocnum ++) { /* For all vertices to send */ Gnum vertglbend; Gnum procngbnum; int partval; vertglbend = sortloctab[sortlocnum].vertnum; procngbnum = sortloctab[sortlocnum].procnum; partval = 0; /* Extract frontier and part data from process number */ if (procngbnum < 0) { /* Negative process number means frontier vertex */ partval = 2; procngbnum ^= (Gnum) -1; } if (procngbnum >= fineprocglbnbr) { /* Out-of-bounds process number means vertex belongs to part 1 */ partval |= 1; procngbnum -= fineprocglbnbr; } #ifdef SCOTCH_DEBUG_BDGRAPH2 if (((partval < 3) && (vsndidxtab[4 * procngbnum + partval] >= vsndidxtab[4 * procngbnum + partval + 1])) || (vsndidxtab[4 * procngbnum + partval] >= (vsnddsptab[procngbnum] + vsndcnttab[procngbnum]))) { errorPrint ("bdgraphBipartMlUncoarsen: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ vsnddattab[vsndidxtab[4 * procngbnum + partval] ++] = vertglbend; /* Pack vertex in proper sub-array */ } if (MPI_Alltoallv (vsnddattab, vsndcnttab, vsnddsptab, GNUM_MPI, vrcvdattab, vrcvcnttab, vrcvdsptab, GNUM_MPI, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (8)"); return (1); } for (procnum = 0; procnum < fineprocglbnbr; ++ procnum) { /* Update local ones from the buffer for receiving data */ Gnum vrcvidxnum; Gnum vrcvidxnnd; if (vrcvcnttab[procnum] == 0) /* If nothing received from this process, skip it */ continue; finecomplocsize1 += (vrcvcnttab[procnum] - 3) - vrcvdattab[vrcvdsptab[procnum]] - vrcvdattab[vrcvdsptab[procnum] + 2]; for (vrcvidxnum = vrcvdsptab[procnum] + 3, vrcvidxnnd = vrcvidxnum + vrcvdattab[vrcvdsptab[procnum]]; /* Vertices in sub-array 0 */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum finevertlocnum; finevertlocnum = vrcvdattab[vrcvidxnum] - finevertlocadj; #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((finevertlocnum < baseval) || (finevertlocnum >= finevertlocnnd)) { errorPrint ("bdgraphBipartMlUncoarsen: internal error (3)"); return (1); } if (finepartgsttax[finevertlocnum] != ((GraphPart) ~0)) { /* If vertex already processed before */ errorPrint ("bdgraphBipartMlUncoarsen: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ finepartgsttax[finevertlocnum] = 0; } for (vrcvidxnnd = vrcvidxnum + vrcvdattab[vrcvdsptab[procnum] + 1]; /* Vertices in sub-array 1 */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum finevertlocnum; finevertlocnum = vrcvdattab[vrcvidxnum] - finevertlocadj; #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((finevertlocnum < baseval) || (finevertlocnum >= finevertlocnnd)) { errorPrint ("bdgraphBipartMlUncoarsen: internal error (5)"); return (1); } if (finepartgsttax[finevertlocnum] != ((GraphPart) ~0)) { /* If vertex already processed before */ errorPrint ("bdgraphBipartMlUncoarsen: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ finepartgsttax[finevertlocnum] = 1; if (fineveloloctax != NULL) finecomplocload1 += fineveloloctax[finevertlocnum]; if (fineveexloctax != NULL) { Gnum veexval; veexval = fineveexloctax[finevertlocnum]; finecommlocloadextn += veexval; finecommlocgainextn -= veexval; } } for (vrcvidxnnd = vrcvidxnum + vrcvdattab[vrcvdsptab[procnum] + 2]; /* Vertices in sub-array 2 */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum finevertlocnum; finevertlocnum = vrcvdattab[vrcvidxnum] - finevertlocadj; #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((finevertlocnum < baseval) || (finevertlocnum >= finevertlocnnd)) { errorPrint ("bdgraphBipartMlUncoarsen: internal error (7)"); return (1); } if (finepartgsttax[finevertlocnum] != ((GraphPart) ~0)) { /* If vertex already processed before */ errorPrint ("bdgraphBipartMlUncoarsen: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ finepartgsttax[finevertlocnum] = 0; finefronloctab[finefronlocnbr ++] = finevertlocnum; } for (vrcvidxnnd = vrcvdsptab[procnum] + vrcvcnttab[procnum]; /* Vertices in sub-array 3 */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum finevertlocnum; finevertlocnum = vrcvdattab[vrcvidxnum] - finevertlocadj; #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((finevertlocnum < baseval) || (finevertlocnum >= finevertlocnnd)) { errorPrint ("bdgraphBipartMlUncoarsen: internal error (9)"); return (1); } if (finepartgsttax[finevertlocnum] != ((GraphPart) ~0)) { /* If vertex already processed before */ errorPrint ("bdgraphBipartMlUncoarsen: internal error (10)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ finepartgsttax[finevertlocnum] = 1; finefronloctab[finefronlocnbr ++] = finevertlocnum; if (fineveloloctax != NULL) finecomplocload1 += fineveloloctax[finevertlocnum]; if (fineveexloctax != NULL) { Gnum veexval; veexval = fineveexloctax[finevertlocnum]; finecommlocloadextn += veexval; finecommlocgainextn -= veexval; } } } #ifdef SCOTCH_DEBUG_BDGRAPH2 for (finevertlocnum = baseval; finevertlocnum < finevertlocnnd; finevertlocnum ++) { if (finepartgsttax[finevertlocnum] == ((GraphPart) ~0)) { errorPrint ("bdgraphBipartMlUncoarsen: internal error (11)"); return (1); } } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ if (dgraphHaloSync (&finegrafptr->s, (byte *) (finepartgsttax + baseval), GRAPHPART_MPI) != 0) { errorPrint ("bdgraphBipartMlUncoarsen: cannot perform halo exchange"); return (1); } finecommlocloadintn = 0; fineedlolocval = 1; /* Assume edges are not weighted */ for (finefronlocnum = 0; finefronlocnum < finefronlocnbr; finefronlocnum ++) { Gnum finevertlocnum; Gnum fineedgelocnum; Gnum partval; Gnum commcut; finevertlocnum = finefronloctab[finefronlocnum]; partval = finepartgsttax[finevertlocnum]; for (fineedgelocnum = finevertloctax[finevertlocnum], commcut = 0; fineedgelocnum < finevendloctax[finevertlocnum]; fineedgelocnum ++) { Gnum partdlt; partdlt = partval ^ finepartgsttax[fineedgegsttax[fineedgelocnum]]; commcut += partdlt; if (fineedloloctax != NULL) fineedlolocval = fineedloloctax[fineedgelocnum]; finecommlocloadintn += partdlt * fineedlolocval; /* Counted in both part, should be divided by 2 in summing-up phase */ } if (commcut == 0) /* If vertex does not really belong to frontier */ finefronloctab[finefronlocnum --] = finefronloctab[-- finefronlocnbr]; /* Replace vertex and redo */ } memFree (vrcvdattab); /* Free group leaders */ memFree (vrcvcnttab); finegrafptr->fronlocnbr = finefronlocnbr; finegrafptr->complocsize0 = finegrafptr->s.vertlocnbr - finecomplocsize1; finegrafptr->complocload0 = (fineveloloctax == NULL) ? finegrafptr->complocsize0 : (finegrafptr->s.velolocsum - finecomplocload1); reduloctab[0] = finegrafptr->complocload0; reduloctab[1] = finegrafptr->complocsize0; reduloctab[2] = finegrafptr->fronlocnbr; reduloctab[3] = finecommlocloadintn; reduloctab[4] = finecommlocloadextn; reduloctab[5] = finecommlocgainextn; if (MPI_Allreduce (reduloctab, reduglbtab, 6, GNUM_MPI, MPI_SUM, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartMlUncoarsen: communication error (9)"); return (1); } finegrafptr->compglbload0 = reduglbtab[0]; finegrafptr->compglbload0dlt = finegrafptr->compglbload0 - finegrafptr->compglbload0avg; finegrafptr->compglbsize0 = reduglbtab[1]; finegrafptr->fronglbnbr = reduglbtab[2]; finegrafptr->commglbload = ((reduglbtab[3] / 2) * finegrafptr->domndist + reduglbtab[4] + finegrafptr->commglbloadextn0); finegrafptr->commglbgainextn = reduglbtab[5]; finegrafptr->bbalglbval = coargrafptr->bbalglbval; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (finegrafptr) != 0) { errorPrint ("bdgraphBipartMlUncoarsen: inconsistent graph data (2)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } /* This routine performs the ** bipartitioning recursion. ** It returns: ** - 0 : if bipartitioning could be computed. ** - !0 : on error. */ static int bdgraphBipartMl2 ( Bdgraph * restrict const grafptr, /* Active graph */ const BdgraphBipartMlParam * const paraptr) /* Method parameters */ { Bdgraph coargrafdat; DgraphCoarsenMulti * restrict coarmulttax; int o; if (grafptr->s.procglbnbr <= 1) { /* Enter into sequential mode */ if (((o = bdgraphBipartMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = bdgraphBipartSt (grafptr, paraptr->stratseq)) != 0)) { #ifdef SCOTCH_DEBUG_BDGRAPH2 errorPrintW ("bdgraphBipartMl2: cannot apply sequential strategy"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } return (o); } coarmulttax = NULL; /* Assume multinode array is not allocated */ if (bdgraphBipartMlCoarsen (grafptr, &coargrafdat, &coarmulttax, paraptr) == 0) { o = (coargrafdat.s.procglbnbr == 0) ? 0 : bdgraphBipartMl2 (&coargrafdat, paraptr); /* Apply recursion on coarsened graph if it exists */ if ((o == 0) && ((o = bdgraphBipartMlUncoarsen (grafptr, &coargrafdat, coarmulttax)) == 0) && ((o = bdgraphBipartSt (grafptr, paraptr->stratasc)) != 0)) { /* Apply ascending strategy if uncoarsening worked */ #ifdef SCOTCH_DEBUG_BDGRAPH2 errorPrintW ("bdgraphBipartMl2: cannot apply ascending strategy"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } bdgraphExit (&coargrafdat); if (coarmulttax != NULL) /* If multinode array has been allocated */ memFree (coarmulttax + grafptr->s.baseval); /* Free array */ if (o == 0) /* If multi-level failed, apply low strategy as fallback */ return (o); } if (((o = bdgraphBipartMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = bdgraphBipartSt (grafptr, paraptr->stratlow)) != 0)) { /* Apply low strategy */ #ifdef SCOTCH_DEBUG_BDGRAPH2 errorPrintW ("bdgraphBipartMl2: cannot apply low strategy"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the muti-level bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bdgraphBipartMl ( Bdgraph * const grafptr, /*+ Active graph +*/ const BdgraphBipartMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for graph level */ int o; levlnum = grafptr->levlnum; /* Save graph level */ grafptr->levlnum = 0; /* Initialize coarsening level */ o = bdgraphBipartMl2 (grafptr, paraptr); /* Perform multi-level bipartitioning */ grafptr->levlnum = levlnum; /* Restore graph level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_ml.h000066400000000000000000000115041514310134000275270ustar00rootroot00000000000000/* Copyright 2007-2009,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_ml.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the multi-level bipartition **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 30 oct 2007 **/ /** to : 29 oct 2009 **/ /** # Version 6.0 : from : 28 sep 2014 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct BdgraphBipartMlParam_ { INT passnbr; /*+ Number of coarsening passes to go +*/ INT foldmax; /*+ Maximum number of vertices per processor to do folding +*/ int foldval; /*+ Type of folding +*/ INT coarnbr; /*+ Minimum number of vertices +*/ double coarrat; /*+ Coarsening ratio +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ Strat * stratseq; /*+ Strategy when running on a single processor +*/ } BdgraphBipartMlParam; typedef struct BdgraphBipartMlSort_ { Gnum vertnum; /*+ Global vertex index for uncoarsening +*/ Gnum procnum; /*+ Gnum to have same type +*/ } BdgraphBipartMlSort; /* ** The function prototypes. */ #ifdef SCOTCH_BDGRAPH_BIPART_ML static int bdgraphBipartMlCoarsen (Bdgraph * const, Bdgraph * const, DgraphCoarsenMulti * restrict * const, const BdgraphBipartMlParam * const); static int bdgraphBipartMlUncoarsen (Bdgraph *, const Bdgraph * const, const DgraphCoarsenMulti * restrict const); static void bdgraphBipartMlOpBest (const Gnum * const, Gnum * const, const int * const, const MPI_Datatype * const); static int bdgraphBipartMl2 (Bdgraph * const, const BdgraphBipartMlParam * const); #endif /* SCOTCH_BDGRAPH_BIPART_ML */ int bdgraphBipartMl (Bdgraph * const, const BdgraphBipartMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_sq.c000066400000000000000000000306471514310134000275460ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2011,2013,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_sq.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a bipartition of a **/ /** given bipartitioned distributed graph **/ /** by moving all (interesting) vertices of **/ /** the given graph to every processor, **/ /** executing a sequential bipartition **/ /** routine, and projecting back the best **/ /** result obtained. **/ /** **/ /** DATES : # Version 5.1 : from : 27 dec 2007 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 27 dec 2007 **/ /** to : 31 aug 2014 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_BDGRAPH_BIPART_SQ #include "module.h" #include "common.h" #include "comm.h" #include "arch.h" #include "parser.h" #include "graph.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "dgraph.h" #include "bdgraph.h" #include "bdgraph_bipart_sq.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine is the reduction-loc operator which ** returns in inout[2] the rank of the process which ** holds the best partition. ** It returns: ** - void : in all cases. */ static void bdgraphBipartSqOpBest ( const Gnum * const in, /* First operand */ Gnum * const inout, /* Second and output operand */ const int * const len, /* Number of instances; should be 1, not used */ const MPI_Datatype * const typedat) /* MPI datatype; not used */ { inout[5] |= in[5]; /* Propagate errors */ inout[4] += in[4]; /* Count cases for which a bipartitioning error occured */ if (inout[3] == 1) { /* Handle cases when at least one of them is erroneous */ if (in[3] == 1) return; inout[0] = in[0]; inout[1] = in[1]; inout[2] = in[2]; inout[3] = in[3]; return; } else if (in[3] == 1) return; if ((in[0] < inout[0]) || /* Select best partition */ ((in[0] == inout[0]) && ((in[1] < inout[1]) || ((in[1] == inout[1]) && (in[2] < inout[2]))))) { inout[0] = in[0]; inout[1] = in[1]; inout[2] = in[2]; } } /* This routine computes a partition of the ** given distributed graph by gathering as many ** copies of the graph as there are processes ** sharing the distributed graph, running a ** sequential algorithm on them, and collecting ** the best solution found. ** It returns: ** - 0 : if the bipartition could be computed. ** - !0 : on error. */ int bdgraphBipartSq ( Bdgraph * const dgrfptr, /*+ Distributed graph +*/ const BdgraphBipartSqParam * const paraptr) /*+ Method parameters +*/ { Bgraph cgrfdat; /* Centralized bipartitioned graph structure */ Gnum reduloctab[6]; /* Local array for best bipartition data (7 for Bcast) */ Gnum reduglbtab[6]; /* Global array for best bipartition data */ MPI_Datatype besttypedat; /* Data type for finding best bipartition */ MPI_Op bestoperdat; /* Handle of MPI operator for finding best bipartition */ int bestprocnum; /* Rank of process holding best partition */ Gnum * restrict vnumloctax; Gnum vertlocnum; Gnum complocsize1; Gnum complocload1; Gnum fronlocnbr; int o; if ((MPI_Type_contiguous (6, GNUM_MPI, &besttypedat) != MPI_SUCCESS) || (MPI_Type_commit (&besttypedat) != MPI_SUCCESS) || (MPI_Op_create ((MPI_User_function *) bdgraphBipartSqOpBest, 1, &bestoperdat) != MPI_SUCCESS)) { errorPrint ("bdgraphBipartSq: communication error (1)"); return (1); } reduloctab[0] = /* In case of error, maximum communication load */ reduloctab[1] = GNUMMAX; /* And maximum load imbalance */ reduloctab[2] = dgrfptr->s.proclocnum; reduloctab[3] = /* Assume sequential bipartioning went fine */ reduloctab[4] = 0; reduloctab[5] = 0; /* Assume no errors */ vnumloctax = dgrfptr->s.vnumloctax; /* No need for vertex number array when centralizing graph */ dgrfptr->s.vnumloctax = NULL; o = bdgraphGatherAll (dgrfptr, &cgrfdat); dgrfptr->s.vnumloctax = vnumloctax; /* Restore vertex number array */ if (o != 0) { errorPrint ("bdgraphBipartSq: cannot build centralized graph"); return (1); } if (bgraphBipartSt (&cgrfdat, paraptr->strat) != 0) { /* Bipartition centralized graph */ errorPrint ("bdgraphBipartSq: cannot bipartition centralized graph"); reduloctab[3] = reduloctab[4] = 1; } else { /* Fill local array with local bipartition data */ reduloctab[0] = ((cgrfdat.fronnbr != 0) || ((cgrfdat.compsize0 != 0) && ((cgrfdat.s.vertnbr - cgrfdat.compsize0) != 0))) ? cgrfdat.commload : GNUMMAX; /* Partitions with empty bipartitions unwanted if they are completely unbalanced */ reduloctab[1] = cgrfdat.compload0dlt; } if (dgrfptr->partgsttax == NULL) { if (dgraphGhst (&dgrfptr->s) != 0) { /* Compute ghost edge array if not already present, before copying graph fields */ errorPrint ("bdgraphBipartSq: cannot compute ghost edge array"); reduloctab[5] = 1; } else { if ((dgrfptr->partgsttax = (GraphPart *) memAlloc (dgrfptr->s.vertgstnbr * sizeof (GraphPart))) == NULL) { errorPrint ("bdgraphBipartSq: out of memory (1)"); reduloctab[5] = 1; /* Allocated data will be freed along with graph structure */ } dgrfptr->partgsttax -= dgrfptr->s.baseval; } if ((dgrfptr->fronloctab = (Gnum *) memAlloc (dgrfptr->s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("bdgraphBipartSq: out of memory (2)"); reduloctab[5] = 1; } } if (MPI_Allreduce (reduloctab, reduglbtab, 1, besttypedat, bestoperdat, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartSq: communication error (2)"); return (1); } if ((reduloctab[4] != 0) && (reduloctab[4] != dgrfptr->s.procglbnbr)) { errorPrint ("bdgraphBipartSq: internal error"); return (1); } if ((MPI_Op_free (&bestoperdat) != MPI_SUCCESS) || (MPI_Type_free (&besttypedat) != MPI_SUCCESS)) { errorPrint ("bdgraphBipartSq: communication error (3)"); return (1); } if (reduglbtab[3] != 0) { /* If none of the sequential methods succeeded */ bgraphExit (&cgrfdat); return (1); } bestprocnum = (int) reduglbtab[2]; if (dgrfptr->s.proclocnum == bestprocnum) { /* If process holds best partition */ reduloctab[0] = cgrfdat.compload0; /* Global values to share */ reduloctab[1] = cgrfdat.compsize0; reduloctab[2] = cgrfdat.commload; reduloctab[3] = cgrfdat.commgainextn; reduloctab[4] = cgrfdat.fronnbr; } if (MPI_Bcast (reduloctab, 5, GNUM_MPI, bestprocnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartSq: communication error (4)"); return (1); } dgrfptr->compglbload0 = reduloctab[0]; dgrfptr->compglbload0dlt = reduloctab[0] - dgrfptr->compglbload0avg; dgrfptr->compglbsize0 = reduloctab[1]; dgrfptr->commglbload = reduloctab[2]; dgrfptr->commglbgainextn = reduloctab[3]; dgrfptr->fronglbnbr = reduloctab[4]; if (commScatterv (cgrfdat.parttax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GRAPHPART_MPI, /* No base for sending as procdsptab holds based values */ dgrfptr->partgsttax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GRAPHPART_MPI, bestprocnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphBipartSq: communication error (5)"); return (1); } if (dgraphHaloSync (&dgrfptr->s, (byte *) (dgrfptr->partgsttax + dgrfptr->s.baseval), GRAPHPART_MPI) != 0) { errorPrint ("bdgraphBipartSq: cannot perform halo exchange"); return (1); } complocsize1 = complocload1 = 0; for (vertlocnum = dgrfptr->s.baseval, fronlocnbr = 0; vertlocnum < dgrfptr->s.vertlocnnd; vertlocnum ++) { int partval; Gnum partval1; Gnum commcut; Gnum edgelocnum; partval = dgrfptr->partgsttax[vertlocnum]; partval1 = partval & 1; complocsize1 += partval1; /* Superscalar update */ if (dgrfptr->s.veloloctax != NULL) { Gnum veloval; veloval = dgrfptr->s.veloloctax[vertlocnum]; complocload1 += (-partval1) & veloval; /* Superscalar update */ } for (edgelocnum = dgrfptr->s.vertloctax[vertlocnum], commcut = 0; edgelocnum < dgrfptr->s.vendloctax[vertlocnum]; edgelocnum ++) { /* Build local frontier */ int partend; int partdlt; partend = dgrfptr->partgsttax[dgrfptr->s.edgegsttax[edgelocnum]]; partdlt = partval ^ partend; commcut |= partdlt; } if (commcut != 0) dgrfptr->fronloctab[fronlocnbr ++] = vertlocnum; } dgrfptr->fronlocnbr = fronlocnbr; dgrfptr->complocsize0 = dgrfptr->s.vertlocnbr - complocsize1; dgrfptr->complocload0 = (dgrfptr->s.veloloctax != NULL) ? (dgrfptr->s.velolocsum - complocload1) : dgrfptr->complocsize0; bgraphExit (&cgrfdat); #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (dgrfptr) != 0) { errorPrint ("bdgraphBipartSq: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_sq.h000066400000000000000000000063161514310134000275470ustar00rootroot00000000000000/* Copyright 2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_sq.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the sequential bipartitioning **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 19 nov 2007 **/ /** to : 20 nov 2007 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct BdgraphBipartSqParam_ { Strat * strat; /*+ Sequential bipartitioning strategy used +*/ } BdgraphBipartSqParam; /* ** The function prototypes. */ #ifdef SCOTCH_BDGRAPH_BIPART_SQ static void bdgraphBipartSqOpBest (const Gnum * const, Gnum * const, const int * const, const MPI_Datatype * const); #endif /* SCOTCH_BDGRAPH_BIPART_SQ */ int bdgraphBipartSq (Bdgraph * const, const BdgraphBipartSqParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_st.c000066400000000000000000000505131514310134000275430ustar00rootroot00000000000000/* Copyright 2007-2011,2014,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_st.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the strategy and **/ /** method tables for distributed graph **/ /** bipartitioning methods. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 15 apr 2011 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 28 sep 2014 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 04 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "gain.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "bdgraph.h" #include "bdgraph_bipart_bd.h" #include "bdgraph_bipart_df.h" #include "bdgraph_bipart_ex.h" #include "bdgraph_bipart_ml.h" #include "bdgraph_bipart_sq.h" #include "bdgraph_bipart_st.h" #include "bdgraph_bipart_zr.h" /* ** The static and global variables. */ static Bdgraph bdgraphdummy; /* Dummy distributed bipartitioned graph for offset computations */ static union { BdgraphBipartBdParam param; StratNodeMethodData padding; } bdgraphbipartstdefaultbd = { { 3, &stratdummy } }; static union { BdgraphBipartDfParam param; StratNodeMethodData padding; } bdgraphbipartstdefaultdf = { { 500, 1.0, 0.0, BDGRAPHBIPARTDFTYPEBAL } }; static union { BdgraphBipartExParam param; StratNodeMethodData padding; } bdgraphbipartstdefaultex = { { 5, 0.005 } }; static union { BdgraphBipartMlParam param; StratNodeMethodData padding; } bdgraphbipartstdefaultml = { { 5, 1000, 2, 10000, 0.8L, &stratdummy, &stratdummy, &stratdummy} }; static union { BdgraphBipartSqParam param; StratNodeMethodData padding; } bdgraphbipartstdefaultsq = { { &stratdummy } }; static StratMethodTab bdgraphbipartstmethtab[] = { /* Bipartitioning methods array */ { BDGRAPHBIPARTSTMETHBD, "b", (StratMethodFunc) bdgraphBipartBd, &bdgraphbipartstdefaultbd }, { BDGRAPHBIPARTSTMETHDF, "d", (StratMethodFunc) bdgraphBipartDf, &bdgraphbipartstdefaultdf }, { BDGRAPHBIPARTSTMETHEX, "x", (StratMethodFunc) bdgraphBipartEx, &bdgraphbipartstdefaultex }, { BDGRAPHBIPARTSTMETHML, "m", (StratMethodFunc) bdgraphBipartMl, &bdgraphbipartstdefaultml }, { BDGRAPHBIPARTSTMETHSQ, "q", (StratMethodFunc) bdgraphBipartSq, &bdgraphbipartstdefaultsq }, { BDGRAPHBIPARTSTMETHZR, "z", (StratMethodFunc) bdgraphBipartZr, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab bdgraphbipartstparatab[] = { /* Method parameter list */ { BDGRAPHBIPARTSTMETHBD, STRATPARAMINT, "width", (byte *) &bdgraphbipartstdefaultbd.param, (byte *) &bdgraphbipartstdefaultbd.param.distmax, NULL }, { BDGRAPHBIPARTSTMETHBD, STRATPARAMSTRAT, "bnd", (byte *) &bdgraphbipartstdefaultbd.param, (byte *) &bdgraphbipartstdefaultbd.param.stratbnd, (void *) &bdgraphbipartststratab }, { BDGRAPHBIPARTSTMETHBD, STRATPARAMSTRAT, "org", (byte *) &bdgraphbipartstdefaultbd.param, (byte *) &bdgraphbipartstdefaultbd.param.stratorg, (void *) &bdgraphbipartststratab }, { BDGRAPHBIPARTSTMETHDF, STRATPARAMINT, "pass", (byte *) &bdgraphbipartstdefaultdf.param, (byte *) &bdgraphbipartstdefaultdf.param.passnbr, NULL }, { BDGRAPHBIPARTSTMETHDF, STRATPARAMDOUBLE, "dif", (byte *) &bdgraphbipartstdefaultdf.param, (byte *) &bdgraphbipartstdefaultdf.param.cdifval, NULL }, { BDGRAPHBIPARTSTMETHDF, STRATPARAMDOUBLE, "rem", (byte *) &bdgraphbipartstdefaultdf.param, (byte *) &bdgraphbipartstdefaultdf.param.cremval, NULL }, { BDGRAPHBIPARTSTMETHDF, STRATPARAMCASE, "type", (byte *) &bdgraphbipartstdefaultdf.param, (byte *) &bdgraphbipartstdefaultdf.param.typeval, (void *) "bk" }, { BDGRAPHBIPARTSTMETHEX, STRATPARAMINT, "sbbt", (byte *) &bdgraphbipartstdefaultex.param, (byte *) &bdgraphbipartstdefaultex.param.sbbtnbr, NULL }, { BDGRAPHBIPARTSTMETHEX, STRATPARAMDOUBLE, "bal", (byte *) &bdgraphbipartstdefaultex.param, (byte *) &bdgraphbipartstdefaultex.param.deltval, NULL }, { BDGRAPHBIPARTSTMETHML, STRATPARAMSTRAT, "asc", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.stratasc, (void *) &bdgraphbipartststratab }, { BDGRAPHBIPARTSTMETHML, STRATPARAMSTRAT, "low", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.stratlow, (void *) &bdgraphbipartststratab }, { BDGRAPHBIPARTSTMETHML, STRATPARAMSTRAT, "seq", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.stratseq, (void *) &bdgraphbipartststratab }, { BDGRAPHBIPARTSTMETHML, STRATPARAMINT, "pass", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.passnbr, NULL }, { BDGRAPHBIPARTSTMETHML, STRATPARAMINT, "vert", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.coarnbr, NULL }, { BDGRAPHBIPARTSTMETHML, STRATPARAMINT, "dvert", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.foldmax, NULL }, { BDGRAPHBIPARTSTMETHML, STRATPARAMCASE, "fold", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.foldval, (void *) "nfd" }, { BDGRAPHBIPARTSTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &bdgraphbipartstdefaultml.param, (byte *) &bdgraphbipartstdefaultml.param.coarrat, NULL }, { BDGRAPHBIPARTSTMETHSQ, STRATPARAMSTRAT, "strat", (byte *) &bdgraphbipartstdefaultsq.param, (byte *) &bdgraphbipartstdefaultsq.param.strat, (void *) &bgraphbipartststratab }, { BDGRAPHBIPARTSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab bdgraphbipartstcondtab[] = { /* Active graph condition parameter table */ { STRATNODECOND, STRATPARAMDOUBLE, "bal", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.bbalglbval, NULL }, { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.s.edgeglbnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "lmin0", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.compglbload0min, NULL }, { STRATNODECOND, STRATPARAMINT, "lmax0", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.compglbload0max, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.s.veloglbsum, NULL }, { STRATNODECOND, STRATPARAMINT, "load0", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.compglbload0, NULL }, { STRATNODECOND, STRATPARAMINT, "proc", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.s.procglbnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "rank", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.s.proclocnum, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &bdgraphdummy, (byte *) &bdgraphdummy.s.vertglbnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab bdgraphbipartststratab = { /* Strategy tables for graph bipartitioning methods */ bdgraphbipartstmethtab, bdgraphbipartstparatab, bdgraphbipartstcondtab }; /***********************************************/ /* */ /* This is the generic bipartitioning routine. */ /* */ /***********************************************/ /* This routine performs the bipartitioning of ** the given active graph according to the ** given strategy. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bdgraphBipartSt ( Bdgraph * restrict const grafptr, /*+ Active graph to bipartition +*/ const Strat * restrict const straptr) /*+ Bipartitioning strategy +*/ { StratTest testdat; /* Result of condition evaluation */ BdgraphStore savetab[2]; /* Results of the two strategies */ Gnum compglbload0; int o; int o0; int o1; #ifdef SCOTCH_DEBUG_BDGRAPH2 MPI_Comm proccommold; /*Save area for old communicator */ #endif /* SCOTCH_DEBUG_BDGRAPH2 */ #ifdef SCOTCH_DEBUG_BDGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("bdgraphBipartSt: invalid type specification for parser variables"); return (1); } if (/*(sizeof (BdgraphBipartFmParam) > sizeof (StratNodeMethodData)) || (sizeof (BdgraphBipartGgParam) > sizeof (StratNodeMethodData)) ||*/ (sizeof (BdgraphBipartMlParam) > sizeof (StratNodeMethodData))) { errorPrint ("bdgraphBipartSt: invalid type specification"); return (1); } /* TODO REMOVE */ #endif /* SCOTCH_DEBUG_BDGRAPH2 */ #ifdef SCOTCH_DEBUG_BDGRAPH1 if ((straptr->tablptr != &bdgraphbipartststratab) && (straptr != &stratdummy)) { errorPrint ("bdgraphBipartSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = bdgraphBipartSt (grafptr, straptr->data.concdat.stratab[0]); /* Apply the first strategy */ if (o == 0) /* If it worked all right */ o |= bdgraphBipartSt (grafptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_BDGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("bdgraphBipartSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = bdgraphBipartSt (grafptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = bdgraphBipartSt (grafptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((bdgraphStoreInit (grafptr, &savetab[0])) != 0) || /* Allocate save areas */ ((bdgraphStoreInit (grafptr, &savetab[1])) != 0)) { errorPrint ("bdgraphBipartSt: out of memory"); bdgraphStoreExit (&savetab[0]); return (1); } bdgraphStoreSave (grafptr, &savetab[1]); /* Save initial bipartition */ o0 = bdgraphBipartSt (grafptr, straptr->data.seledat.stratab[0]); /* Apply first strategy */ bdgraphStoreSave (grafptr, &savetab[0]); /* Save its result */ bdgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ o1 = bdgraphBipartSt (grafptr, straptr->data.seledat.stratab[1]); /* Apply second strategy */ if ((o0 | o1) != 0) { /* If at least one method failed */ if (o0 == 0) /* If first succeeded, take it */ goto take0; if (o1 != 0) { /* If none succeeded */ bdgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ o = 1; /* Indicate error */ } goto take1; /* If second succeeded, keep it; anyway, go freeing data structures */ } compglbload0 = grafptr->compglbload0avg + savetab[0].compglbload0dlt; /* Check if balance criterion enforced */ o0 = ((compglbload0 < grafptr->compglbload0min) || (compglbload0 > grafptr->compglbload0max)) ? 1 : 0; compglbload0 = grafptr->compglbload0avg + grafptr->compglbload0dlt; o1 = ((compglbload0 < grafptr->compglbload0min) || (compglbload0 > grafptr->compglbload0max)) ? 1 : 0; if (o1 > o0) /* If first is balanced and second is not, take first */ goto take0; if (o1 < o0) /* If second is balanced and first is not, take second */ goto take1; if (o0 == 0) { /* If both are balanced */ if ( (savetab[0].commglbload > grafptr->commglbload) || /* Compare on cut */ ((savetab[0].commglbload == grafptr->commglbload) && (abs (savetab[0].compglbload0dlt) > abs (grafptr->compglbload0dlt)))) goto take1; else goto take0; } else { /* If both are imbalanced */ if ( (abs (savetab[0].compglbload0dlt) > abs (grafptr->compglbload0dlt)) || /* Compare on imbalance */ ((abs (savetab[0].compglbload0dlt) == abs (grafptr->compglbload0dlt)) && (savetab[0].commglbload > grafptr->commglbload))) goto take1; } take0: bdgraphStoreUpdt (grafptr, &savetab[0]); /* Restore first partition */ take1: /* Keep second partition by default */ bdgraphStoreExit (&savetab[1]); /* Free both save areas */ bdgraphStoreExit (&savetab[0]); break; case STRATNODEMETHOD : #ifdef SCOTCH_DEBUG_BDGRAPH2 proccommold = grafptr->s.proccomm; /* Create new communicator to isolate method communications */ MPI_Comm_dup (proccommold, &grafptr->s.proccomm); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ o = ((BdgraphBipartFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, (const void * const) &straptr->data.methdat.datadat); #ifdef SCOTCH_DEBUG_BDGRAPH2 MPI_Comm_free (&grafptr->s.proccomm); /* Restore old communicator */ grafptr->s.proccomm = proccommold; #endif /* SCOTCH_DEBUG_BDGRAPH2 */ break; default : errorPrint ("bdgraphBipartSt: invalid parameter (2)"); return (1); } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_st.h000066400000000000000000000076671514310134000275640ustar00rootroot00000000000000/* Copyright 2007,2010,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_st.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the strategy and method **/ /** tables and the generic entry point for **/ /** the distributed graph bipartitioning **/ /** methods. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 16 jul 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum BdgraphBipartStMethodType_ { BDGRAPHBIPARTSTMETHBD = 0, /*+ Band (strategy) +*/ BDGRAPHBIPARTSTMETHDF, /*+ Diffusion +*/ BDGRAPHBIPARTSTMETHEX, /*+ Exactifier +*/ BDGRAPHBIPARTSTMETHML, /*+ Multi-level (strategy) +*/ BDGRAPHBIPARTSTMETHSQ, /*+ Sequential Method +*/ BDGRAPHBIPARTSTMETHZR, /*+ Move all to part zero +*/ BDGRAPHBIPARTSTMETHNBR /*+ Number of methods +*/ } BdgraphBipartStMethodType; /*+ Method function pointer type. +*/ typedef int (* BdgraphBipartFunc) (Bdgraph * restrict const, const void * const); /* ** The external declarations. */ extern StratTab bdgraphbipartststratab; /* ** The function prototypes. */ int bdgraphBipartSt (Bdgraph * const, const Strat * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_zr.c000066400000000000000000000070231514310134000275460ustar00rootroot00000000000000/* Copyright 2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_zr.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : This module moves all of the vertices **/ /** to the first subdomain of the **/ /** bipartition. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 26 oct 2007 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "dgraph.h" #include "bdgraph.h" #include "bdgraph_bipart_zr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine moves all of the graph vertices ** to the first part of the partition. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int bdgraphBipartZr ( Bdgraph * const grafptr) /*+ Active graph +*/ { if (grafptr->compglbload0 != grafptr->s.veloglbsum) /* If not all vertices already in part zero */ bdgraphZero (grafptr); #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (grafptr) != 0) { errorPrint ("bdgraphBipartZr: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_bipart_zr.h000066400000000000000000000054331514310134000275560ustar00rootroot00000000000000/* Copyright 2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_bipart_zr.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** distributed bipartitioning module. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 26 oct 2007 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int bdgraphBipartZr (Bdgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_check.c000066400000000000000000000320101514310134000266210ustar00rootroot00000000000000/* Copyright 2007,2008,2011,2013,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_check.c **/ /** **/ /** AUTHORS : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** bipartition graph consistency checking **/ /** routine. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 22 jul 2008 **/ /** # Version 6.0 : from : 03 sep 2011 **/ /** to : 31 aug 2014 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "dgraph.h" #include "bdgraph.h" int bdgraphCheck ( const Bdgraph * restrict const grafptr) { Dgraph grafdat; /* Dummy graph for ghost edge array */ MPI_Comm proccomm; /* Graph communicator */ int * restrict flagloctax; /* Frontier flag array */ GraphPart * restrict partgsttax; Gnum fronlocnum; Gnum vertlocnum; /* Number of current vertex */ Gnum complocload[2]; Gnum complocsize[2]; Gnum commcut[2]; Gnum commlocloadintn; Gnum commlocloadextn; Gnum commlocgainextn; Gnum edlolocval; Gnum reduloctab[21]; /* Arrays for reductions */ Gnum reduglbtab[21]; int chekglbval; /* Global consistency flag */ int cheklocval; /* Local consistency flag */ proccomm = grafptr->s.proccomm; if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize */ errorPrint ("bdgraphCheck: communication error (1)"); return (1); } cheklocval = 0; /* Assume everything is all right */ if ((grafptr->compglbload0min < 0) || (grafptr->compglbload0max > grafptr->s.veloglbsum)) { errorPrint ("bdgraphCheck: invalid extrema loads"); cheklocval = 1; } if (grafptr->compglbload0 != (grafptr->compglbload0avg + grafptr->compglbload0dlt)) { errorPrint ("bdgraphCheck: invalid global balance"); cheklocval |= 2; } if ((grafptr->fronlocnbr < 0) || (grafptr->fronlocnbr > grafptr->s.vertlocnbr)) { errorPrint ("bdgraphCheck: invalid number of local frontier vertices"); cheklocval |= 4; } if (grafptr->partgsttax != NULL) { for (vertlocnum = grafptr->s.baseval; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { if ((grafptr->partgsttax[vertlocnum] | 1) != 1) { /* If part is neither 0 nor 1 */ errorPrint ("bdgraphCheck: invalid local part array"); cheklocval |= 8; break; } } } grafdat = grafptr->s; /* Copy minimal distributed graph data */ if (dgraphGhst (&grafdat) != 0) { /* Create ghost edge array if did not exist */ errorPrint ("bdgraphCheck: cannot compute ghost edge array"); cheklocval |= 16; } if (memAllocGroup ((void **) (void *) &partgsttax, (size_t) (grafdat.vertgstnbr * sizeof (GraphPart)), &flagloctax, (size_t) (grafptr->s.vertlocnbr * sizeof (int)), NULL) == NULL) { errorPrint ("bdgraphCheck: out of memory"); cheklocval |= 32; } else { memSet (flagloctax, ~0, grafptr->s.vertlocnbr * sizeof (int)); flagloctax -= grafptr->s.baseval; for (fronlocnum = 0; fronlocnum < grafptr->fronlocnbr; fronlocnum ++) { Gnum vertlocnum; vertlocnum = grafptr->fronloctab[fronlocnum]; if ((vertlocnum < grafptr->s.baseval) || (vertlocnum >= grafptr->s.vertlocnnd)) { errorPrint ("bdgraphCheck: invalid vertex index in frontier array"); cheklocval |= 64; break; } if (flagloctax[vertlocnum] != ~0) { errorPrint ("bdgraphCheck: duplicate vertex in frontier array"); cheklocval |= 128; break; } flagloctax[vertlocnum] = 0; } } reduloctab[0] = grafptr->commglbload; reduloctab[1] = - grafptr->commglbload; reduloctab[2] = grafptr->compglbload0; reduloctab[3] = - grafptr->compglbload0; reduloctab[4] = grafptr->s.veloglbsum - grafptr->compglbload0; reduloctab[5] = - grafptr->s.veloglbsum + grafptr->compglbload0; reduloctab[6] = grafptr->compglbsize0; reduloctab[7] = - grafptr->compglbsize0; reduloctab[8] = grafptr->s.vertglbnbr - grafptr->compglbsize0; reduloctab[9] = - grafptr->s.vertglbnbr + grafptr->compglbsize0; reduloctab[10] = grafptr->commglbgainextn; reduloctab[11] = - grafptr->commglbgainextn; reduloctab[12] = grafptr->commglbgainextn0; reduloctab[13] = - grafptr->commglbgainextn0; reduloctab[14] = grafptr->commglbloadextn0; reduloctab[15] = - grafptr->commglbloadextn0; reduloctab[16] = grafptr->fronglbnbr; reduloctab[17] = - grafptr->fronglbnbr; reduloctab[18] = grafptr->levlnum; reduloctab[19] = - grafptr->levlnum; reduloctab[20] = cheklocval; if (MPI_Allreduce (reduloctab, reduglbtab, 21, GNUM_MPI, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphCheck: communication error (2)"); return (1); } if (reduglbtab[20] != 0) { /* Exit and Return information of previous errors */ if (partgsttax != NULL) memFree (partgsttax); /* Free yet unbased group leader */ return ((int) reduglbtab[20]); } if ((reduglbtab[1] != - reduglbtab[0]) || (reduglbtab[3] != - reduglbtab[2]) || (reduglbtab[5] != - reduglbtab[4]) || (reduglbtab[7] != - reduglbtab[6]) || (reduglbtab[9] != - reduglbtab[8]) || (reduglbtab[11] != - reduglbtab[10]) || (reduglbtab[13] != - reduglbtab[12]) || (reduglbtab[15] != - reduglbtab[14]) || (reduglbtab[17] != - reduglbtab[16]) || (reduglbtab[19] != - reduglbtab[18])) { errorPrint ("bdgraphCheck: inconsistent global graph data"); return (1); } if (grafptr->partgsttax != NULL) memCpy (partgsttax, grafptr->partgsttax + grafptr->s.baseval, grafptr->s.vertlocnbr * sizeof (GraphPart)); /* Copy local part data */ else memSet (partgsttax, 0, grafptr->s.vertlocnbr * sizeof (GraphPart)); dgraphHaloSync (&grafdat, partgsttax, GRAPHPART_MPI); /* Spread yet unbased halo part data across neighboring processes */ partgsttax -= grafptr->s.baseval; cheklocval = 0; for (fronlocnum = 0; fronlocnum < grafptr->fronlocnbr; fronlocnum ++) { Gnum vertlocnum; Gnum edgelocnum; GraphPart commcut; GraphPart partval; vertlocnum = grafptr->fronloctab[fronlocnum]; partval = partgsttax[vertlocnum]; for (edgelocnum = grafptr->s.vertloctax[vertlocnum], commcut = 0; edgelocnum < grafptr->s.vendloctax[vertlocnum]; edgelocnum ++) { GraphPart partdlt; partdlt = partgsttax[grafdat.edgegsttax[edgelocnum]] ^ partval; commcut |= partdlt; } if (commcut == 0) { errorPrint ("bdgraphCheck: invalid vertex in frontier array"); cheklocval |= 1; break; } } complocload[0] = complocload[1] = 0; complocsize[0] = complocsize[1] = 0; commlocloadintn = 0; commlocloadextn = 0; commlocgainextn = 0; edlolocval = 1; /* Assume edges are not weighted */ for (vertlocnum = grafptr->s.baseval; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { Gnum partval; /* Part of current vertex */ Gnum edgelocnum; /* Number of current edge */ partval = (Gnum) partgsttax[vertlocnum]; if (grafptr->veexloctax != NULL) { Gnum veexval; veexval = grafptr->veexloctax[vertlocnum]; commlocloadextn += veexval * partval; commlocgainextn += veexval * (1 - 2 * partval); } complocload[partval] += (grafptr->s.veloloctax == NULL) ? 1 : grafptr->s.veloloctax[vertlocnum]; complocsize[partval] ++; commcut[0] = commcut[1] = 0; for (edgelocnum = grafptr->s.vertloctax[vertlocnum]; edgelocnum < grafptr->s.vendloctax[vertlocnum]; edgelocnum ++) { int partend; int partdlt; if (grafptr->s.edloloctax != NULL) edlolocval = grafptr->s.edloloctax[edgelocnum]; partend = partgsttax[grafdat.edgegsttax[edgelocnum]]; partdlt = partval ^ partend; commcut[partend] ++; commlocloadintn += partdlt * edlolocval; /* Internal load is accounted for twice */ } if ((commcut[0] != 0) && (commcut[1] != 0) && /* If vertex should be in separator */ (flagloctax[vertlocnum] != 0)) { errorPrint ("bdgraphCheck: vertex should be in separator"); cheklocval |= 2; } } if (grafptr->s.edgegsttax != grafdat.edgegsttax) /* If ghost edge array was allocated here, free it manually */ memFree (grafdat.edgegsttax + grafptr->s.baseval); if (grafptr->s.procsidtab != grafdat.procsidtab) /* The same for procsidtab */ memFree (grafdat.procsidtab); memFree (partgsttax + grafptr->s.baseval); /* Free group leader */ if ((cheklocval == 0) && ((complocsize[0] != grafptr->complocsize0) || (complocsize[1] != (grafptr->s.vertlocnbr - grafptr->complocsize0)))) { errorPrint ("bdgraphCheck: invalid local part size"); cheklocval |= 4; } reduloctab[0] = complocload[0]; reduloctab[1] = complocsize[0]; reduloctab[2] = commlocloadintn; /* Twice the internal load; sum globally before dividing by two */ reduloctab[3] = commlocloadextn; reduloctab[4] = commlocgainextn; reduloctab[5] = cheklocval; if (MPI_Allreduce (reduloctab, reduglbtab, 6, GNUM_MPI, MPI_SUM, proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphCheck: communication error (3)"); return (1); } if (reduglbtab[5] != 0) /* Return from previous errors */ return (1); if (grafptr->compglbload0 != reduglbtab[0]) { errorPrint ("bdgraphCheck: invalid global part loads"); cheklocval |= 8; } if (grafptr->compglbsize0 != reduglbtab[1]) { errorPrint ("bdgraphCheck: invalid global part sizes"); cheklocval |= 16; } if (grafptr->commglbload != ((reduglbtab[2] / 2) * grafptr->domndist + reduglbtab[3] + grafptr->commglbloadextn0)) { errorPrint ("bdgraphCheck: invalid global communication loads"); cheklocval |= 32; } if (grafptr->commglbgainextn != reduglbtab[4]) { errorPrint ("bdgraphCheck: invalid global communication gains"); cheklocval |= 64; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphCheck: communication error (4)"); return (1); } return (chekglbval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_gather_all.c000066400000000000000000000270111514310134000276530ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2011,2014,2018-2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_gather_all.c **/ /** **/ /** AUTHORS : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the routine which **/ /** builds a centralized Bgraph on all **/ /** processors by gathering the pieces of **/ /** a distributed Bdgraph. **/ /** **/ /** DATES : # Version 5.1 : from : 21 dec 2007 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 29 aug 2014 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 14 jan 2020 **/ /** **/ /** NOTES : # The definitions of MPI_Gather and **/ /** MPI_Gatherv indicate that elements in **/ /** the receive array should not be **/ /** written more than once. Great care **/ /** should be taken to enforce this rule, **/ /** especially when the number of **/ /** vertices in the centralized graph is **/ /** smaller than the number of **/ /** processors. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "arch.h" #include "graph.h" #include "bgraph.h" #include "dgraph.h" #include "bdgraph.h" /* This function gathers on all processors ** the pieces of a distributed Bdgraph to ** build a centralized Bgraph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int bdgraphGatherAll ( const Bdgraph * restrict const dgrfptr, /* Distributed graph */ Bgraph * restrict cgrfptr) /* Centralized graph */ { int * restrict froncnttab; /* Count array for gather operations */ int * restrict fronvrttab; /* Displacement array for gather operations */ int fronlocnbr; /* Also int to enforce MPI standard */ #ifdef SCOTCH_DEBUG_BDGRAPH1 int cheklocval; int chekglbval; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ int procnum; #ifdef SCOTCH_DEBUG_BDGRAPH1 cheklocval = 0; if (cgrfptr == NULL) /* Centralized graphs should be provided by all */ cheklocval = 1; if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphGatherAll: communication error (1)"); return (1); } if (chekglbval != 0) { errorPrint ("bdgraphGatherAll: centralized graphs should be provided on every process"); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (dgraphGatherAll (&dgrfptr->s, &cgrfptr->s) != 0) { errorPrint ("bdgraphGatherAll: cannot build centralized graph"); return (1); } cgrfptr->s.flagval |= BGRAPHFREEFRON | BGRAPHFREEPART | BGRAPHFREEVEEX; cgrfptr->veextax = NULL; /* In case of error */ cgrfptr->parttax = NULL; cgrfptr->frontab = NULL; if ((cgrfptr->frontab = (Gnum *) memAlloc (cgrfptr->s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("bdgraphGatherAll: out of memory (1)"); #ifndef SCOTCH_DEBUG_BDGRAPH1 bgraphExit (cgrfptr); return (1); #else /* SCOTCH_DEBUG_BDGRAPH1 */ cheklocval = 1; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ } else if ((cgrfptr->parttax = (GraphPart *) memAlloc (cgrfptr->s.vertnbr * sizeof (GraphPart))) == NULL) { errorPrint ("bdgraphGatherAll: out of memory (2)"); #ifndef SCOTCH_DEBUG_BDGRAPH1 bgraphExit (cgrfptr); return (1); #else /* SCOTCH_DEBUG_BDGRAPH1 */ cheklocval = 1; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ } else { cgrfptr->parttax -= cgrfptr->s.baseval; if (dgrfptr->veexloctax != NULL) { if ((cgrfptr->veextax = (Gnum *) memAlloc (cgrfptr->s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("bdgraphGatherAll: out of memory (3)"); #ifndef SCOTCH_DEBUG_BDGRAPH1 bgraphExit (cgrfptr); return (1); #else /* SCOTCH_DEBUG_BDGRAPH1 */ cheklocval = 1; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ } else cgrfptr->veextax -= cgrfptr->s.baseval; } } #ifdef SCOTCH_DEBUG_BDGRAPH1 if (cheklocval == 0) { #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (memAllocGroup ((void **) (void *) /* Allocate tempory arrays to gather frontiers */ &froncnttab, (size_t) (dgrfptr->s.procglbnbr * sizeof (int)), &fronvrttab, (size_t) (dgrfptr->s.procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("bdgraphGatherAll: out of memory (4)"); #ifndef SCOTCH_DEBUG_BDGRAPH1 bgraphExit (cgrfptr); return (1); } #else /* SCOTCH_DEBUG_BDGRAPH1 */ cheklocval = 1; } } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphGatherAll: communication error (2)"); return (1); } if (chekglbval != 0) { if (froncnttab != NULL) memFree (froncnttab); /* Free group leader */ bgraphExit (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH1 */ cgrfptr->compload0min = dgrfptr->compglbload0min; /* Set constant fields of the centralized graph as those of the distibuted graph */ cgrfptr->compload0max = dgrfptr->compglbload0max; cgrfptr->compload0avg = dgrfptr->compglbload0avg; cgrfptr->commloadextn0 = dgrfptr->commglbloadextn0; cgrfptr->commgainextn0 = dgrfptr->commglbgainextn0; cgrfptr->domndist = dgrfptr->domndist; cgrfptr->domnwght[0] = dgrfptr->domnwght[0]; cgrfptr->domnwght[1] = dgrfptr->domnwght[1]; cgrfptr->vfixload[0] = /* Fixed vertices will soon be available in PT-Scotch */ cgrfptr->vfixload[1] = 0; cgrfptr->levlnum = dgrfptr->levlnum; cgrfptr->contptr = dgrfptr->contptr; if (dgrfptr->partgsttax == NULL) { /* If distributed graph does not have a part array yet */ bgraphZero (cgrfptr); memFree (froncnttab); /* Free group leader */ return (0); } if (commAllgatherv (dgrfptr->partgsttax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GRAPHPART_MPI, /* Get parttax of distributed graph */ cgrfptr->parttax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GRAPHPART_MPI, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphGatherAll: communication error (4)"); return (1); } if (dgrfptr->veexloctax != NULL) { if (commAllgatherv (dgrfptr->veexloctax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GNUM_MPI, /* Get veextax of distributed graph */ cgrfptr->veextax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GNUM_MPI, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphGatherAll: communication error (5)"); return (1); } } fronlocnbr = (int) dgrfptr->fronlocnbr; if (MPI_Allgather (&fronlocnbr, 1, MPI_INT, /* Compute how frontiers are distributed */ froncnttab, 1, MPI_INT, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphGatherAll: communication error (6)"); return (1); } fronvrttab[0] = 0; /* Offset 0 for first process */ for (procnum = 1; procnum < dgrfptr->s.procglbnbr; procnum ++) /* Adjust index sub-arrays for all processors except the first one */ fronvrttab[procnum] = fronvrttab[procnum - 1] + froncnttab[procnum - 1]; if (MPI_Allgatherv (dgrfptr->fronloctab, (int) dgrfptr->fronlocnbr, GNUM_MPI, /* Gather frontiers */ cgrfptr->frontab, froncnttab, fronvrttab, GNUM_MPI, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("bdgraphGatherAll: communication error (7)"); return (1); } for (procnum = 1; procnum < dgrfptr->s.procglbnbr; procnum ++) { /* Adjust index sub-arrays for all processors except the first one */ Gnum vertnum; Gnum vertnnd; for (vertnum = (Gnum) fronvrttab[procnum], vertnnd = (Gnum) fronvrttab[procnum] + (Gnum) froncnttab[procnum]; vertnum < vertnnd; vertnum ++) cgrfptr->frontab[vertnum] += (Gnum) dgrfptr->s.procdsptab[procnum] - dgrfptr->s.baseval; } memFree (froncnttab); /* Free group leader */ for (procnum = 0; procnum < dgrfptr->s.proclocnum; procnum ++) /* Desynchronize random generators across processes */ contextIntRandVal (dgrfptr->contptr, 2); intPerm (cgrfptr->frontab, dgrfptr->fronglbnbr, cgrfptr->contptr); /* Compute permutation of frontier array to have different solutions on every process */ cgrfptr->compload0 = dgrfptr->compglbload0; /* Update other fields */ cgrfptr->compload0dlt = dgrfptr->compglbload0dlt; cgrfptr->compsize0 = dgrfptr->compglbsize0; cgrfptr->commload = dgrfptr->commglbload; cgrfptr->commgainextn = dgrfptr->commglbgainextn; cgrfptr->commgainextn0 = dgrfptr->commglbgainextn0; cgrfptr->fronnbr = dgrfptr->fronglbnbr; #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bgraphCheck (cgrfptr) != 0) { errorPrint ("bdgraphGatherAll: internal error"); bgraphExit (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bdgraph_store.c000066400000000000000000000175061514310134000267150ustar00rootroot00000000000000/* Copyright 2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bdgraph_store.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the save data **/ /** structure handling routines for dis- **/ /** tributed bipartition graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 10 sep 2007 **/ /** to : 22 oct 2008 **/ /** # Version 6.0 : from : 11 sep 2011 **/ /** to : 11 sep 2011 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "dgraph.h" #include "bdgraph.h" /**********************************/ /* */ /* Store graph handling routines. */ /* */ /**********************************/ /* This routine builds a save structure ** for the given active graph. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int bdgraphStoreInit ( const Bdgraph * restrict const grafptr, BdgraphStore * restrict const storptr) { Gnum savsize; savsize = grafptr->s.vertlocnbr * (sizeof (GraphPart) + sizeof (Gnum)); /* Compute size for frontier and part arrays */ if ((storptr->datatab = (byte *) memAlloc (savsize)) == NULL) { /* Allocate save structure */ errorPrint ("bdgraphStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a save structure. ** It returns: ** - VOID : in all cases. */ void bdgraphStoreExit ( BdgraphStore * const storptr) { memFree (storptr->datatab); #ifdef SCOTCH_DEBUG_BDGRAPH2 storptr->datatab = NULL; #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } /* This routine saves partition data from the ** given active graph to the given save structure. ** It returns: ** - VOID : in all cases. */ void bdgraphStoreSave ( const Bdgraph * const grafptr, BdgraphStore * const storptr) { byte * partloctab; /* Pointer to part data save area */ byte * fronloctab; /* Pointer to frontier data save area */ storptr->fronlocnbr = grafptr->fronlocnbr; /* Save partition parameters */ storptr->fronglbnbr = grafptr->fronglbnbr; storptr->complocload0 = grafptr->complocload0; storptr->compglbload0 = grafptr->compglbload0; storptr->compglbload0dlt = grafptr->compglbload0dlt; storptr->complocsize0 = grafptr->complocsize0; storptr->compglbsize0 = grafptr->compglbsize0; storptr->commglbload = grafptr->commglbload; storptr->commglbgainextn = grafptr->commglbgainextn; fronloctab = storptr->datatab; /* Compute data offsets within save structure */ partloctab = fronloctab + grafptr->fronlocnbr * sizeof (Gnum); if (grafptr->fronloctab != NULL) /* If frontier array allocated */ memCpy (fronloctab, grafptr->fronloctab, grafptr->fronlocnbr * sizeof (Gnum)); #ifdef SCOTCH_DEBUG_BDGRAPH2 else if (grafptr->fronglbnbr != 0) errorPrint ("bdgraphStoreSave: inconsistent graph data (1)"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ if (grafptr->partgsttax != NULL) memCpy (partloctab, grafptr->partgsttax + grafptr->s.baseval, grafptr->s.vertlocnbr * sizeof (GraphPart)); else { #ifdef SCOTCH_DEBUG_BDGRAPH2 if (grafptr->compglbload0 != grafptr->s.veloglbsum) errorPrint ("bdgraphStoreSave: inconsistent graph data (2)"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ memSet (partloctab, 0, grafptr->s.vertlocnbr * sizeof (GraphPart)); /* In case part array is allocated before update */ } } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void bdgraphStoreUpdt ( Bdgraph * const grafptr, const BdgraphStore * const storptr) { byte * fronloctab; /* Pointer to frontier data save area */ byte * partloctab; /* Pointer to part data save area */ grafptr->fronlocnbr = storptr->fronlocnbr; /* Save partition parameters */ grafptr->fronglbnbr = storptr->fronglbnbr; grafptr->complocload0 = storptr->complocload0; grafptr->compglbload0 = storptr->compglbload0; grafptr->compglbload0dlt = storptr->compglbload0dlt; grafptr->complocsize0 = storptr->complocsize0; grafptr->compglbsize0 = storptr->compglbsize0; grafptr->commglbload = storptr->commglbload; grafptr->commglbgainextn = storptr->commglbgainextn; grafptr->bbalglbval = (double) ((grafptr->compglbload0dlt < 0) ? (- grafptr->compglbload0dlt) : grafptr->compglbload0dlt) / (double) grafptr->compglbload0avg; fronloctab = storptr->datatab; /* Compute data offsets within save structure */ partloctab = fronloctab + grafptr->fronlocnbr * sizeof (Gnum); if (grafptr->fronloctab != NULL) memCpy (grafptr->fronloctab, fronloctab, grafptr->fronlocnbr * sizeof (Gnum)); #ifdef SCOTCH_DEBUG_BDGRAPH2 else if (grafptr->fronglbnbr != 0) errorPrint ("bdgraphStoreUpdt: inconsistent graph data (1)"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ if (grafptr->partgsttax != NULL) memCpy (grafptr->partgsttax + grafptr->s.baseval, partloctab, grafptr->s.vertlocnbr * sizeof (GraphPart)); #ifdef SCOTCH_DEBUG_BDGRAPH2 else if (grafptr->compglbload0 != grafptr->s.veloglbsum) errorPrint ("bdgraphStoreUpdt: inconsistent graph data (2)"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ #ifdef SCOTCH_DEBUG_BDGRAPH2 if (bdgraphCheck (grafptr) != 0) errorPrint ("bdgraphStoreUpdt: inconsistent graph data (3)"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph.c000066400000000000000000000257131514310134000253340ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the bipartition **/ /** graph data structure handling **/ /** routines. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 12 may 1993 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 09 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 01 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 15 aug 1995 **/ /** # Version 3.1 : from : 15 nov 1995 **/ /** to : 16 nov 1995 **/ /** # Version 3.2 : from : 24 aug 1996 **/ /** to : 14 oct 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 19 oct 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 31 aug 2004 **/ /** # Version 5.0 : from : 17 dec 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 08 oct 2008 **/ /** to : 18 mar 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 22 feb 2023 **/ /** to : 22 feb 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "bgraph.h" /*************************/ /* */ /* These routines handle */ /* bipartition graphs. */ /* */ /*************************/ /* This routine builds the active graph ** corresponding to the given bipartitioning ** job parameters. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int bgraphInit ( Bgraph * restrict const actgrafptr, /*+ Active graph +*/ const Graph * restrict const srcgrafptr, /*+ Source graph +*/ const Arch * restrict const archptr, /*+ Target architecture +*/ const ArchDom * restrict const domnsubtab, /*+ Array of the two subdomains +*/ const Gnum * restrict const vflowgttab) /*+ Array of vertex weight biases +*/ { Anum domndist; /* Distance between both subdomains */ Anum domnwght0; /* Processor workforce in each domain */ Anum domnwght1; domndist = archDomDist (archptr, &domnsubtab[0], &domnsubtab[1]); /* Get distance between subdomains */ domnwght0 = archDomWght (archptr, &domnsubtab[0]); /* Get weights of subdomains */ domnwght1 = archDomWght (archptr, &domnsubtab[1]); actgrafptr->s = *srcgrafptr; /* Get source graph data */ actgrafptr->s.flagval = ((srcgrafptr->flagval & GRAPHBITSUSED) & ~GRAPHFREETABS) | BGRAPHFREEFRON | BGRAPHFREEPART; /* Graph is a clone with own grouped bipartitioning arrays */ actgrafptr->s.vlbltax = NULL; /* Remove vertex labels */ actgrafptr->veextax = NULL; /* No external gains (yet) */ if (((actgrafptr->parttax = memAlloc (actgrafptr->s.vertnbr * sizeof (GraphPart))) == NULL) || ((actgrafptr->frontab = memAlloc (actgrafptr->s.vertnbr * sizeof (Gnum))) == NULL)) { errorPrint ("bgraphInit: out of memory"); if (actgrafptr->parttax != NULL) memFree (actgrafptr->parttax); return (1); } actgrafptr->parttax -= actgrafptr->s.baseval; bgraphInit2 (actgrafptr, domndist, domnwght0, domnwght1, vflowgttab[0], vflowgttab[1]); #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (actgrafptr) != 0) { errorPrint ("bgraphInit: inconsistent graph data"); bgraphExit (actgrafptr); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } /* This routine fills the internal fields of ** the given active graph. ** It returns: ** - void : in all cases. */ void bgraphInit2 ( Bgraph * restrict const grafptr, /*+ Active graph +*/ const Anum domndist, /*+ Distance between both subdomains +*/ const Anum domnwght0, /*+ Processor workforce in each domain +*/ const Anum domnwght1, const Gnum vfixload0, /*+ Fixed load in each subdomain +*/ const Gnum vfixload1) { grafptr->fronnbr = 0; /* No frontier vertices */ grafptr->compload0min = 0; /* No external constraints on bipartition (yet) */ grafptr->compload0max = grafptr->s.velosum; grafptr->compload0avg = (Gnum) (((double) (grafptr->s.velosum + vfixload0 + vfixload1) * (double) domnwght0) / (double) (domnwght0 + domnwght1)) - vfixload0; grafptr->compload0dlt = grafptr->s.velosum - grafptr->compload0avg; grafptr->compload0 = grafptr->s.velosum; grafptr->compsize0 = grafptr->s.vertnbr; /* Size does not account for fixed vertices */ grafptr->commload = 0; grafptr->commloadextn0 = 0; grafptr->commgainextn = 0; grafptr->commgainextn0 = 0; grafptr->domndist = domndist; grafptr->domnwght[0] = domnwght0; grafptr->domnwght[1] = domnwght1; grafptr->vfixload[0] = vfixload0; grafptr->vfixload[1] = vfixload1; grafptr->bbalval = (double) grafptr->compload0dlt / (double) grafptr->compload0avg; grafptr->levlnum = 0; memSet (grafptr->parttax + grafptr->s.baseval, 0, grafptr->s.vertnbr * sizeof (GraphPart)); /* Set all vertices to part 0 */ } /* This routine frees the contents ** of the given active graph. ** It returns: ** - void : in all cases. */ void bgraphExit ( Bgraph * restrict const grafptr) { if ((grafptr->veextax != NULL) && /* External gain array is private */ ((grafptr->s.flagval & BGRAPHFREEVEEX) != 0)) memFree (grafptr->veextax + grafptr->s.baseval); if ((grafptr->frontab != NULL) && ((grafptr->s.flagval & BGRAPHFREEFRON) != 0)) memFree (grafptr->frontab); if ((grafptr->parttax != NULL) && ((grafptr->s.flagval & BGRAPHFREEPART) != 0)) memFree (grafptr->parttax + grafptr->s.baseval); graphExit (&grafptr->s); /* Free re-allocated arrays of cloned source graph, if any */ #ifdef SCOTCH_DEBUG_BGRAPH2 memSet (grafptr, ~0, sizeof (Bgraph)); #endif /* SCOTCH_DEBUG_BGRAPH2 */ } /* This routine swaps all of the graph ** vertices from one part to another, and ** recomputes the resulting gains. ** It returns: ** - void : in all cases. */ void bgraphSwal ( Bgraph * restrict const grafptr) { Gnum vertnnd; Gnum vertnum; Gnum comploadsum; GraphPart * restrict const parttax = grafptr->parttax; for (vertnum = grafptr->s.baseval, vertnnd = grafptr->s.vertnnd; vertnum < vertnnd; vertnum ++) parttax[vertnum] ^= 1; comploadsum = grafptr->s.velosum + grafptr->vfixload[0] + grafptr->vfixload[1]; /* Overall load sum, including fixed vertex loads */ grafptr->compload0 = comploadsum - grafptr->compload0; grafptr->compload0dlt = comploadsum - grafptr->compload0dlt - 2 * grafptr->compload0avg; grafptr->compsize0 = grafptr->s.vertnbr - grafptr->compsize0; /* Size does not account for fixed vertices */ grafptr->commload += grafptr->commgainextn; grafptr->commgainextn = - grafptr->commgainextn; } /* This routine moves all of the graph ** vertices to the first part, and ** computes the resulting gains. ** It returns: ** - void : in all cases. */ void bgraphZero ( Bgraph * restrict const grafptr) { Gnum compload0; compload0 = grafptr->s.velosum + grafptr->vfixload[0]; grafptr->fronnbr = 0; /* No frontier vertices */ grafptr->compload0dlt = compload0 - grafptr->compload0avg; grafptr->compload0 = compload0; grafptr->compsize0 = grafptr->s.vertnbr; grafptr->commload = grafptr->commloadextn0; /* Initialize communication load */ grafptr->commgainextn = grafptr->commgainextn0; grafptr->bbalval = (double) grafptr->compload0dlt / (double) grafptr->compload0avg; memSet (grafptr->parttax + grafptr->s.baseval, 0, grafptr->s.vertnbr * sizeof (GraphPart)); /* Set all vertices to part 0 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph.h000066400000000000000000000214461514310134000253400ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2011,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the job control routines of the **/ /** Dual Recursive Bipartitioning method. **/ /** **/ /** DATES : # Version 0.0 : from : 23 mar 1993 **/ /** to : 12 may 1993 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 09 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 04 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 15 nov 1995 **/ /** to : 15 nov 1995 **/ /** # Version 3.2 : from : 24 aug 1996 **/ /** to : 03 nov 1997 **/ /** # Version 3.3 : from : 01 dec 1998 **/ /** to : 02 dec 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 05 may 2006 **/ /** # Version 5.0 : from : 30 nov 2006 **/ /** to : 30 nov 2006 **/ /** # Version 5.1 : from : 08 jan 2008 **/ /** to : 18 mar 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 08 jun 2018 **/ /** to : 28 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_BGRAPH_H /*+ Graph option flags. +*/ #define BGRAPHFREEFRON (GRAPHBITSNOTUSED) /* Free frontier array */ #define BGRAPHFREEPART (GRAPHBITSNOTUSED << 1) /* Free part array */ #define BGRAPHFREEVEEX (GRAPHBITSNOTUSED << 2) /* Free external gain array */ #define BGRAPHHASANCHORS (GRAPHBITSNOTUSED << 3) /* If graph has anchor vertices */ /* ** The type and structure definitions. */ /*+ The bipartition graph structure. +*/ typedef struct Bgraph_ { Graph s; /*+ Source graph data +*/ Gnum * veextax; /*+ Array of vertex external gain if moved to part 1 +*/ GraphPart * parttax; /*+ Array of parts for every vertex +*/ Gnum * frontab; /*+ Array of frontier vertex numbers +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ Gnum compload0min; /*+ Minimum allowed load in part 0 (strategy variable) +*/ Gnum compload0max; /*+ Maximum allowed load in part 0 (strategy variable) +*/ Gnum compload0avg; /*+ Average load of part 0 +*/ Gnum compload0dlt; /*+ Difference from the average +*/ Gnum compload0; /*+ Load in part 0 (strategy variable) +*/ Gnum compsize0; /*+ Number of vertices in part 0 +*/ Gnum commload; /*+ Communication load +*/ Gnum commloadextn0; /*+ Communication load if all moved to part 0 +*/ Gnum commgainextn0; /*+ External gain if all swapped from part 0 +*/ Gnum commgainextn; /*+ External gain if all swapped +*/ double bbalval; /*+ Bipartitioning imbalance ratio (strategy variable) +*/ Anum domndist; /*+ Distance between subdomains +*/ Gnum domnwght[2]; /*+ Weights of the two subdomains +*/ Gnum vfixload[2]; /*+ Vertex load biases of the two subdomains +*/ INT levlnum; /*+ Coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Bgraph; /*+ The save graph structure. +*/ typedef struct BgraphStore_ { Gnum fronnbr; /*+ Number of frontier nodes +*/ Gnum compload0dlt; /*+ Difference from the average +*/ Gnum compsize0; /*+ Number of vertices in part 0 +*/ Gnum commload; /*+ Communication load +*/ Gnum commgainextn; /*+ External gain if all swapped +*/ byte * datatab; /*+ Variable-sized data array +*/ } BgraphStore; /* ** The function prototypes. */ int bgraphInit (Bgraph * restrict const, const Graph * restrict const, const Arch * restrict const, const ArchDom * restrict const, const Gnum * restrict const); void bgraphInit2 (Bgraph * restrict const, const Anum, const Anum, const Anum, const Gnum, const Gnum); void bgraphExit (Bgraph * restrict const); void bgraphSwal (Bgraph * restrict const); void bgraphZero (Bgraph * restrict const); int bgraphCheck (const Bgraph * restrict const); void bgraphCost (Bgraph * restrict const); void bgraphCost2 (const Bgraph * restrict const, const GraphPart * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const); int bgraphStoreInit (const Bgraph * const, BgraphStore * const); void bgraphStoreExit (BgraphStore * const); void bgraphStoreSave (const Bgraph * const, BgraphStore * const); void bgraphStoreUpdt (Bgraph * const, const BgraphStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_bd.c000066400000000000000000000707271514310134000273470ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2016,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_bd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module builds a band graph around **/ /** the frontier in order to decrease **/ /** problem size for the strategy to be **/ /** applied. **/ /** **/ /** DATES : # Version 5.0 : from : 27 nov 2006 **/ /** to : 23 dec 2007 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 26 mar 2011 **/ /** # Version 6.0 : from : 07 nov 2011 **/ /** to : 31 aug 2019 **/ /** # Version 7.0 : from : 28 aug 2019 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_bd.h" #include "bgraph_bipart_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int bgraphBipartBd ( Bgraph * restrict const orggrafptr, /*+ Active graph +*/ const BgraphBipartBdParam * const paraptr) /*+ Method parameters +*/ { Gnum * restrict queutab; Gnum queuheadval; Gnum queutailval; Gnum distmax; /* Maximum distance allowed */ Gnum * restrict orgindxtax; /* Based access to index array for original graph */ Gnum orgfronnum; Gnum ancfronnum; Gnum bndfronnum; Bgraph bndgrafdat; /* Band graph structure */ Gnum bndvertnbr; /* Number of regular vertices in band graph (without anchors) */ Gnum bndvertnnd; const Gnum * restrict bndvnumtax; /* Band vertex number array, recycling queutab */ Gnum * restrict bndveextax; /* External gain array of band graph, if present */ Gnum bndveexnbr; /* Number of external array vertices */ Gnum bndvelosum; /* Load of regular vertices in band graph */ Gnum bndedlosum; /* Sum of edge loads */ Gnum bndcompsize1; /* Number of regular vertices in part 1 of band graph */ Gnum bndcompload1; /* Load of regular vertices in part 1 */ Gnum bndvlvlnum; /* Index of first band graph vertex to belong to the last layer */ Gnum bndvertnum; Gnum bndeancnbr; /* Number of anchor edges */ Gnum bndedgenbr; /* Upper bound on the number of edges, including anchor edges */ Gnum bndedgenum; Gnum * restrict bndedgetax; Gnum * restrict bndedlotax; Gnum bndedgetmp; Gnum bnddegrmax; Gnum bndcommgainextn; /* Sum of all external gains in band graph */ Gnum bndcommgainextn1; /* Sum of external gains accounted for in load, since in part 1 */ size_t bndedlooftval; /* Offset of edge load array with respect to edge array */ const Gnum * restrict const orgverttax = orggrafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const orgvendtax = orggrafptr->s.vendtax; const Gnum * restrict const orgvelotax = orggrafptr->s.velotax; const Gnum * restrict const orgedgetax = orggrafptr->s.edgetax; const Gnum * restrict const orgedlotax = orggrafptr->s.edlotax; GraphPart * restrict const orgparttax = orggrafptr->parttax; Gnum * restrict const orgfrontab = orggrafptr->frontab; if (orggrafptr->fronnbr == 0) /* If no separator vertices, apply strategy to full (original) graph */ return (bgraphBipartSt (orggrafptr, paraptr->stratorg)); distmax = (Gnum) paraptr->distmax; if (distmax < 1) /* Always at least one layer of vertices around separator */ distmax = 1; if (memAllocGroup ((void **) (void *) &queutab, (size_t) (orggrafptr->s.vertnbr * sizeof (Gnum)), &orgindxtax, (size_t) (orggrafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("bgraphBipartBd: out of memory (1)"); return (1); } memSet (orgindxtax, ~0, orggrafptr->s.vertnbr * sizeof (Gnum)); /* Initialize index array */ orgindxtax -= orggrafptr->s.baseval; queuheadval = orggrafptr->fronnbr; /* First layer is vertices in frontier array */ for (orgfronnum = 0, bndvertnnd = orggrafptr->s.baseval; /* Flag vertices belonging to frontier as band vertices */ orgfronnum < queuheadval; orgfronnum ++) { Gnum orgvertnum; orgvertnum = orgfrontab[orgfronnum]; orgindxtax[orgvertnum] = bndvertnnd ++; queutab[orgfronnum] = orgvertnum; /* Copy frontier array in queue array */ } bndvelosum = 0; bndedgenbr = 0; /* Estimate upper bound on the number of edges */ bndcompsize1 = 0; bndcompload1 = 0; queutailval = 0; bndvlvlnum = 0; /* Assume first layer is last layer */ while (distmax -- > 0) { /* For all passes except the last one */ bndvlvlnum = queuheadval; /* Record start of last layer */ while (queutailval < bndvlvlnum) { /* For all vertices in queue */ Gnum orgvertnum; Gnum orgedgenum; Gnum orgpartval; orgvertnum = queutab[queutailval ++]; #ifdef SCOTCH_DEBUG_BGRAPH2 if ((orgvertnum < orggrafptr->s.baseval) || (orgvertnum >= orggrafptr->s.vertnnd)) { errorPrint ("bgraphBipartBd: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ bndedgenbr += orgvendtax[orgvertnum] - orgverttax[orgvertnum]; /* Exact number of edges */ orgpartval = orgparttax[orgvertnum]; bndcompsize1 += orgpartval; /* Count vertices in part 1 */ if (orgvelotax != NULL) { Gnum orgveloval; orgveloval = orgvelotax[orgvertnum]; bndvelosum += orgveloval; bndcompload1 += orgveloval * orgpartval; } for (orgedgenum = orgverttax[orgvertnum]; orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum orgvertend; orgvertend = orgedgetax[orgedgenum]; if (orgindxtax[orgvertend] == ~0) { /* If vertex not visited yet */ orgindxtax[orgvertend] = bndvertnnd ++; /* Flag it as enqueued */ queutab[queuheadval ++] = orgvertend; /* Enqueue it */ } } } } bndedgenbr += queuheadval - queutailval; /* As many edges from anchors as remaining vertices */ while (queutailval < queuheadval) { /* Process vertices in last layer */ Gnum orgvertnum; Gnum orgpartval; orgvertnum = queutab[queutailval ++]; #ifdef SCOTCH_DEBUG_BGRAPH2 if ((orgvertnum < orggrafptr->s.baseval) || (orgvertnum >= orggrafptr->s.vertnnd)) { errorPrint ("bgraphBipartBd: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ bndedgenbr += orgvendtax[orgvertnum] - orgverttax[orgvertnum]; /* Upper bound on number of edges, including anchor edge */ orgpartval = orgparttax[orgvertnum]; bndcompsize1 += orgpartval; /* Count vertices in part 1 */ if (orgvelotax != NULL) { Gnum orgveloval; orgveloval = orgvelotax[orgvertnum]; bndvelosum += orgveloval; bndcompload1 += orgveloval * orgpartval; } } bndvertnbr = bndvertnnd - orggrafptr->s.baseval; if (orgvelotax == NULL) { bndvelosum = bndvertnbr; bndcompload1 = bndcompsize1; } if ((bndcompsize1 >= (orggrafptr->s.vertnbr - orggrafptr->compsize0)) || /* If either part has all of its vertices in band, use plain graph instead */ ((bndvertnbr - bndcompsize1) >= orggrafptr->compsize0)) { memFree (queutab); return (bgraphBipartSt (orggrafptr, paraptr->stratorg)); } /* TRICK: since always at least one missing vertex per part, there is room for anchor vertices */ queutab[bndvertnbr] = /* Anchor vertices do not have original vertex numbers */ queutab[bndvertnbr + 1] = -1; memSet (&bndgrafdat, 0, sizeof (Bgraph)); bndgrafdat.s.flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP | BGRAPHHASANCHORS; /* All Bgraph arrays are non-freeable by bgraphExit() */ bndgrafdat.s.baseval = orggrafptr->s.baseval; bndgrafdat.s.vertnbr = bndvertnbr += 2; /* "+ 2" for anchor vertices */ bndgrafdat.s.vertnnd = bndvertnnd + 2; bndveexnbr = (orggrafptr->veextax != NULL) ? bndvertnbr : 0; if (memAllocGroup ((void **) (void *) /* Do not allocate vnumtax but keep queutab instead */ &bndgrafdat.s.verttax, (size_t) ((bndvertnbr + 1) * sizeof (Gnum)), &bndgrafdat.s.velotax, (size_t) (bndvertnbr * sizeof (Gnum)), &bndveextax, (size_t) (bndveexnbr * sizeof (Gnum)), &bndgrafdat.frontab, (size_t) (bndvertnbr * sizeof (Gnum)), &bndgrafdat.parttax, (size_t) (bndvertnbr * sizeof (GraphPart)), NULL) == NULL) { errorPrint ("bgraphBipartBd: out of memory (2)"); memFree (queutab); return (1); } bndgrafdat.parttax -= orggrafptr->s.baseval; /* From now on we should free a Bgraph and not a Graph */ bndgrafdat.s.verttax -= orggrafptr->s.baseval; bndgrafdat.s.vendtax = bndgrafdat.s.verttax + 1; /* Band graph is compact */ bndgrafdat.s.velotax -= orggrafptr->s.baseval; bndgrafdat.s.vnumtax = queutab - orggrafptr->s.baseval; /* TRICK: re-use queue array as vertex number array since vertices taken in queue order; will not be freed as graph vertex arrays are said to be grouped */ bndgrafdat.s.velosum = orggrafptr->s.velosum; bndgrafdat.s.velotax[bndvertnnd] = orggrafptr->compload0 - (bndvelosum - bndcompload1); /* Set loads of anchor vertices */ bndgrafdat.s.velotax[bndvertnnd + 1] = orggrafptr->s.velosum - orggrafptr->compload0 - bndcompload1; if (bndveexnbr != 0) { bndveextax -= orggrafptr->s.baseval; bndgrafdat.veextax = bndveextax; } else bndveextax = NULL; if (memAllocGroup ((void **) (void *) &bndgrafdat.s.edgetax, (size_t) (bndedgenbr * sizeof (Gnum)), &bndgrafdat.s.edlotax, (size_t) (bndedgenbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("bgraphBipartBd: out of memory (3)"); bgraphExit (&bndgrafdat); memFree (queutab); return (1); } bndgrafdat.s.edgetax -= orggrafptr->s.baseval; bndgrafdat.s.edlotax -= orggrafptr->s.baseval; bndedgetax = bndgrafdat.s.edgetax; bndedlotax = bndgrafdat.s.edlotax; bndvnumtax = bndgrafdat.s.vnumtax; bndvlvlnum += orggrafptr->s.baseval; /* Now bndvlvlnum is based */ for (bndvertnum = bndedgenum = orggrafptr->s.baseval, bnddegrmax = bndedlosum = bndcommgainextn = bndcommgainextn1 = 0; bndvertnum < bndvlvlnum; bndvertnum ++) { /* Fill index array for vertices not belonging to last level */ Gnum orgvertnum; GraphPart orgpartval; Gnum orgedgenum; Gnum orgedloval; Gnum bnddegrval; orgvertnum = bndvnumtax[bndvertnum]; orgpartval = orgparttax[orgvertnum]; bndgrafdat.s.verttax[bndvertnum] = bndedgenum; bndgrafdat.s.velotax[bndvertnum] = (orgvelotax != NULL) ? orgvelotax[orgvertnum] : 1; bndgrafdat.parttax[bndvertnum] = orgpartval; if (bndveextax != NULL) { Gnum orgveexval; orgveexval = orggrafptr->veextax[orgvertnum]; bndveextax[bndvertnum] = orgveexval; bndcommgainextn += orgveexval; bndcommgainextn1 += orgveexval * (Gnum) orgpartval; } orgedloval = 1; /* Assume unity edge loads if not present */ for (orgedgenum = orgverttax[orgvertnum]; /* All edges of first levels are kept */ orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++, bndedgenum ++) { #ifdef SCOTCH_DEBUG_BGRAPH2 if ((bndedgenum >= (bndedgenbr + orggrafptr->s.baseval)) || (orgindxtax[orgedgetax[orgedgenum]] < 0)) { errorPrint ("bgraphBipartBd: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ if (orgedlotax != NULL) orgedloval = orgedlotax[orgedgenum]; bndedlosum += orgedloval; bndedgetax[bndedgenum] = orgindxtax[orgedgetax[orgedgenum]]; bndedlotax[bndedgenum] = orgedloval; } bnddegrval = bndedgenum - bndgrafdat.s.verttax[bndvertnum]; if (bnddegrmax < bnddegrval) bnddegrmax = bnddegrval; } bndeancnbr = 0; for ( ; bndvertnum < bndvertnnd; bndvertnum ++) { /* Fill index array for vertices belonging to last level */ Gnum orgvertnum; Gnum orgedgenum; GraphPart orgpartval; Gnum bnddegrval; Gnum orgedloval; Gnum ancedloval; /* Accumulated edge load for anchor edge */ orgvertnum = bndvnumtax[bndvertnum]; orgpartval = orgparttax[orgvertnum]; bndgrafdat.s.verttax[bndvertnum] = bndedgenum; bndgrafdat.s.velotax[bndvertnum] = (orgvelotax != NULL) ? orgvelotax[orgvertnum] : 1; bndgrafdat.parttax[bndvertnum] = orgpartval; /* Record part for vertices of last level */ if (bndveextax != NULL) { Gnum orgveexval; orgveexval = orggrafptr->veextax[orgvertnum]; bndveextax[bndvertnum] = orgveexval; bndcommgainextn += orgveexval; bndcommgainextn1 += orgveexval * (Gnum) orgpartval; } ancedloval = 0; orgedloval = 1; /* Assume unity edge loads if not present */ for (orgedgenum = orgverttax[orgvertnum]; /* Keep only band edges */ orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum bndvertend; #ifdef SCOTCH_DEBUG_BGRAPH2 if (bndedgenum >= (bndedgenbr + orggrafptr->s.baseval)) { errorPrint ("bgraphBipartBd: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ if (orgedlotax != NULL) orgedloval = orgedlotax[orgedgenum]; bndedlosum += orgedloval; /* Normal arcs are accounted for twice; anchor arcs only once */ bndvertend = orgindxtax[orgedgetax[orgedgenum]]; if (bndvertend != ~0) { bndedgetax[bndedgenum] = bndvertend; bndedlotax[bndedgenum ++] = orgedloval; } else ancedloval += orgedloval; /* Accumulate loads of edges linking to anchor vertex */ } bndedlosum += ancedloval; /* Account for anchor edges a second time */ if (ancedloval > 0) { /* If vertex is connected to rest of part */ bndedlotax[bndedgenum] = ancedloval; bndedgetax[bndedgenum ++] = bndvertnnd + (Gnum) orgpartval; /* Add anchor edge to proper anchor vertex */ bndeancnbr ++; } bnddegrval = bndedgenum - bndgrafdat.s.verttax[bndvertnum]; if (bnddegrmax < bnddegrval) bnddegrmax = bnddegrval; } bndgrafdat.parttax[bndvertnnd] = 0; /* Set parts of anchor vertices */ bndgrafdat.parttax[bndvertnnd + 1] = 1; bndgrafdat.s.edlosum = bndedlosum; bndgrafdat.s.verttax[bndvertnnd] = bndedgenum; /* Mark end of regular edge array and start of first anchor edge array */ bndedgetmp = bndedgenum + bndeancnbr; #ifdef SCOTCH_DEBUG_BGRAPH2 if ((bndedgetmp - 1) >= (bndedgenbr + orggrafptr->s.baseval)) { errorPrint ("bgraphBipartBd: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ bndgrafdat.s.edgenbr = bndedgetmp - orggrafptr->s.baseval; bndgrafdat.s.verttax[bndvertnnd + 2] = bndedgetmp; /* Mark end of edge array with anchor vertices */ for (bndvertnum = bndvlvlnum; bndvertnum < bndvertnnd; bndvertnum ++) { /* Fill anchor edge arrays */ if (bndgrafdat.s.verttax[bndvertnum + 1] > bndgrafdat.s.verttax[bndvertnum]) { /* If vertex is not isolated */ Gnum bndedgelst; /* Number of last edge */ Gnum bndvertend; bndedgelst = bndgrafdat.s.verttax[bndvertnum + 1] - 1; bndvertend = bndedgetax[bndedgelst]; /* Get last neighbor of its edge sub-array */ if (bndvertend >= bndvertnnd) { /* If it is an anchor */ Gnum bndedloval; bndedloval = bndedlotax[bndedgelst]; bndedlosum += bndedloval; if (bndvertend == bndvertnnd) { /* Add edge from proper anchor */ bndedgetax[bndedgenum] = bndvertnum; bndedlotax[bndedgenum ++] = bndedloval; } else { bndedgetax[-- bndedgetmp] = bndvertnum; bndedlotax[bndedgetmp] = bndedloval; } } } } bndgrafdat.s.verttax[bndvertnnd + 1] = bndedgenum; /* Mark end of edge array of first anchor and start of second */ #ifdef SCOTCH_DEBUG_BGRAPH2 if (bndedgenum != bndedgetmp) { errorPrint ("bgraphBipartBd: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ if ((bndedgenum == bndgrafdat.s.verttax[bndvertnnd]) || /* If any of the anchor edges is isolated */ (bndedgenum == bndgrafdat.s.verttax[bndvertnnd + 2])) { bgraphExit (&bndgrafdat); /* Free all band graph related data */ memFree (queutab); return (bgraphBipartSt (orggrafptr, paraptr->stratorg)); /* Work on original graph */ } if (bnddegrmax < (bndgrafdat.s.verttax[bndvertnnd + 1] - bndgrafdat.s.verttax[bndvertnnd])) bnddegrmax = (bndgrafdat.s.verttax[bndvertnnd + 1] - bndgrafdat.s.verttax[bndvertnnd]); if (bnddegrmax < (bndgrafdat.s.verttax[bndvertnnd + 2] - bndgrafdat.s.verttax[bndvertnnd + 1])) bnddegrmax = (bndgrafdat.s.verttax[bndvertnnd + 2] - bndgrafdat.s.verttax[bndvertnnd + 1]); bndgrafdat.s.degrmax = bnddegrmax; bndedlooftval = bndedlotax - bndedgetax; bndgrafdat.s.edgetax = (Gnum *) memRealloc (bndedgetax + bndgrafdat.s.baseval, (bndedlooftval + bndgrafdat.s.edgenbr) * sizeof (Gnum)) - bndgrafdat.s.baseval; bndgrafdat.s.edlotax = bndgrafdat.s.edgetax + bndedlooftval; /* Use old index into old array as new index */ bndedgetax = bndgrafdat.s.edgetax; bndedlotax = bndgrafdat.s.edlotax; for (bndfronnum = 0, bndvertnum = orggrafptr->s.baseval; /* Fill band frontier array with first vertex indices as they make the separator */ bndfronnum < orggrafptr->fronnbr; bndfronnum ++, bndvertnum ++) bndgrafdat.frontab[bndfronnum] = bndvertnum; if (bndveextax != NULL) { Gnum bndcommloadintn; Gnum bndfronnnd; Gnum bndvertnum; Gnum bndedgenum; bndcommloadintn = 0; for (bndvertnum = orggrafptr->s.baseval, bndfronnnd = bndvertnum + orggrafptr->fronnbr; /* Compute communication load at frontier */ bndvertnum < bndfronnnd; bndvertnum ++) { Gnum bndpartval; bndpartval = (Gnum) bndgrafdat.parttax[bndvertnum]; if (bndpartval != 0) /* Process only frontier vertices in part 0 */ continue; for (bndedgenum = bndgrafdat.s.verttax[bndvertnum]; bndedgenum < bndgrafdat.s.vendtax[bndvertnum]; bndedgenum ++) { Gnum bndpartend; bndpartend = (Gnum) bndgrafdat.parttax[bndedgetax[bndedgenum]]; bndcommloadintn += bndedlotax[bndedgenum] * bndpartend; } } bndcommloadintn *= orggrafptr->domndist; bndveextax[bndvertnnd + 1] = (orggrafptr->commload - orggrafptr->commloadextn0 - bndcommloadintn) - bndcommgainextn1; bndveextax[bndvertnnd] = (orggrafptr->commload - orggrafptr->commloadextn0 - bndcommloadintn) - bndcommgainextn + bndcommgainextn1 + orggrafptr->commgainextn; } bndgrafdat.fronnbr = orggrafptr->fronnbr; bndgrafdat.compload0 = orggrafptr->compload0; bndgrafdat.compload0min = orggrafptr->compload0min; bndgrafdat.compload0max = orggrafptr->compload0max; bndgrafdat.compload0avg = orggrafptr->compload0avg; bndgrafdat.compload0dlt = orggrafptr->compload0dlt; bndgrafdat.compsize0 = bndvertnbr - bndcompsize1 - 1; /* "- 1" for anchor vertex in part 0 */ bndgrafdat.commload = orggrafptr->commload; bndgrafdat.commloadextn0 = orggrafptr->commloadextn0; bndgrafdat.commgainextn = orggrafptr->commgainextn; bndgrafdat.commgainextn0 = orggrafptr->commgainextn0; bndgrafdat.domndist = orggrafptr->domndist; bndgrafdat.domnwght[0] = orggrafptr->domnwght[0]; bndgrafdat.domnwght[1] = orggrafptr->domnwght[1]; bndgrafdat.vfixload[0] = orggrafptr->vfixload[0]; bndgrafdat.vfixload[1] = orggrafptr->vfixload[1]; bndgrafdat.bbalval = orggrafptr->bbalval; bndgrafdat.levlnum = orggrafptr->levlnum; bndgrafdat.contptr = orggrafptr->contptr; #ifdef SCOTCH_DEBUG_BGRAPH2 if ((graphCheck (&bndgrafdat.s) != 0) || /* Check band graph consistency */ (bgraphCheck (&bndgrafdat) != 0)) { errorPrint ("bgraphBipartBd: inconsistent band graph data"); bgraphExit (&bndgrafdat); memFree (queutab); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ if (bgraphBipartSt (&bndgrafdat, paraptr->stratbnd) != 0) { /* Apply strategy to band graph */ errorPrint ("bgraphBipartBd: cannot bipartition band graph"); bgraphExit (&bndgrafdat); memFree (queutab); return (1); } if (bndgrafdat.parttax[bndvertnnd] == /* If band graph was too small and anchors went to the same part, apply strategy on full graph */ bndgrafdat.parttax[bndvertnnd + 1]) { bgraphExit (&bndgrafdat); memFree (queutab); return (bgraphBipartSt (orggrafptr, paraptr->stratorg)); } orggrafptr->compload0 = bndgrafdat.compload0; orggrafptr->compload0dlt = bndgrafdat.compload0dlt; orggrafptr->commload = bndgrafdat.commload; orggrafptr->commgainextn = bndgrafdat.commgainextn; orggrafptr->bbalval = bndgrafdat.bbalval; if (bndgrafdat.parttax[bndvertnnd] != 0) { /* If anchors swapped parts, swap all parts of original vertices */ Gnum orgvertnum; orggrafptr->compsize0 = orggrafptr->s.vertnbr - orggrafptr->compsize0 - bndcompsize1 + bndgrafdat.compsize0 - 1; /* "- 1" for anchor 0 */ for (orgvertnum = orggrafptr->s.baseval; orgvertnum < orggrafptr->s.vertnnd; orgvertnum ++) orgparttax[orgvertnum] ^= 1; } else orggrafptr->compsize0 = orggrafptr->compsize0 - (bndvertnbr - bndcompsize1) + bndgrafdat.compsize0 + 1; /* "+ 1" for anchor 0 */ for (bndvertnum = bndgrafdat.s.baseval; bndvertnum < bndvertnnd; bndvertnum ++) /* Update part array of full graph */ orgparttax[bndvnumtax[bndvertnum]] = bndgrafdat.parttax[bndvertnum]; for (bndfronnum = orgfronnum = ancfronnum = 0; /* Update frontier array of full graph */ bndfronnum < bndgrafdat.fronnbr; bndfronnum ++) { Gnum bndvertnum; Gnum orgvertnum; bndvertnum = bndgrafdat.frontab[bndfronnum]; orgvertnum = bndvnumtax[bndvertnum]; if (orgvertnum != -1) /* If frontier vertex is not an anchor vertex */ orgfrontab[orgfronnum ++] = orgvertnum; /* Record it as original frontier vertex */ else bndgrafdat.frontab[ancfronnum ++] = bndvertnum; /* Else record it for future processing */ } while (ancfronnum > 0) { /* For all recorded frontier anchor vertices */ Gnum bndvertnum; /* Index of frontier anchor vertex in band graph */ GraphPart ancpartval; bndvertnum = bndgrafdat.frontab[-- ancfronnum]; ancpartval = bndgrafdat.parttax[bndvertnum]; for (bndedgenum = bndgrafdat.s.verttax[bndvertnum]; bndedgenum < bndgrafdat.s.vendtax[bndvertnum]; bndedgenum ++) { Gnum bndvertend; /* Index of neighbor of anchor vertex in band graph */ Gnum orgvertnum; /* Index of neighbor of anchor vertex in original graph */ Gnum orgedgenum; bndvertend = bndedgetax[bndedgenum]; if (bndgrafdat.parttax[bndvertend] == ancpartval) /* If neighbor is in same part as anchor, skip to next */ continue; orgvertnum = bndvnumtax[bndvertend]; for (orgedgenum = orgverttax[orgvertnum]; /* For all neighbors of neighbor */ orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum orgvertend; orgvertend = orgedgetax[orgedgenum]; /* Get end vertex in original graph */ if (orgindxtax[orgvertend] == ~0) { /* If vertex never considered before */ #ifdef SCOTCH_DEBUG_BGRAPH2 if (orgparttax[orgvertend] != ancpartval) { /* Original vertex should always be in same part as anchor */ errorPrint ("bgraphBipartBd: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ orggrafptr->frontab[orgfronnum ++] = orgvertend; /* Add vertex to frontier array */ orgindxtax[orgvertend] = 0; /* Flag vertex as already enqueued */ } } } } orggrafptr->fronnbr = orgfronnum; bgraphExit (&bndgrafdat); /* Free band graph structures */ memFree (queutab); #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (orggrafptr) != 0) { errorPrint ("bgraphBipartBd: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_bd.h000066400000000000000000000064451514310134000273500ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2011 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_bd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the bipartition graph banding **/ /** module. **/ /** **/ /** DATES : Version 5.0 : from : 27 nov 2006 **/ /** to : 29 may 2007 **/ /** Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** Version 6.0 : from : 07 nov 2011 **/ /** to : 07 nov 2011 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct BgraphBipartBdParam_ { Gnum distmax; /*+ Maximum distance to separator +*/ Strat * stratbnd; /*+ Strategy for band graph +*/ Strat * stratorg; /*+ Strategy for original graph +*/ } BgraphBipartBdParam; /* ** The function prototypes. */ int bgraphBipartBd (Bgraph * restrict const, const BgraphBipartBdParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_df.c000066400000000000000000000577021514310134000273510ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011-2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_df.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a bipartition of **/ /** a bipartition graph by using a **/ /** diffusion scheme. **/ /** **/ /** NOTES : # This algorithm has been designed to **/ /** work on band graphs only, for which **/ /** the two anchor vertices are the two **/ /** last vertices, the before-last as **/ /** anchor of part 0, and the last as **/ /** anchor of part 1. **/ /** **/ /** DATES : # Version 5.0 : from : 09 jan 2007 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 29 oct 2007 **/ /** to : 27 mar 2011 **/ /** # Version 6.0 : from : 07 nov 2011 **/ /** to : 08 aug 2013 **/ /** # Version 7.0 : from : 08 jun 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_df.h" /************************************/ /* */ /* The threaded reduction routines. */ /* */ /************************************/ #ifndef BGRAPHBIPARTDFNOTHREAD static void bgraphBipartDfReduceVanc ( BgraphBipartDfThread * restrict const blocptr, /* Pointer to local block */ BgraphBipartDfThread * restrict const bremptr, /* Pointer to remote block */ const void * const globptr) /* Unused */ { blocptr->vanctab[0] += bremptr->vanctab[0]; /* Accumulate external gains */ blocptr->vanctab[1] += bremptr->vanctab[1]; } static void bgraphBipartDfReduceVeex ( BgraphBipartDfThread * restrict const blocptr, /* Pointer to local block */ BgraphBipartDfThread * restrict const bremptr, /* Pointer to remote block */ const void * const globptr) /* Unused */ { blocptr->veexsum += bremptr->veexsum; /* Accumulate external gains */ blocptr->veexsum1 += bremptr->veexsum1; } static void bgraphBipartDfScan ( BgraphBipartDfThread * restrict const blocptr, /* Pointer to local block */ BgraphBipartDfThread * restrict const bremptr, /* Pointer to remote block */ const int srcpval, /* Source phase value */ const int dstpval, /* Destination phase value */ const void * const globptr) /* Unused */ { if (bremptr != NULL) { blocptr->fronnnd[dstpval] = blocptr->fronnnd[srcpval] + bremptr->fronnnd[srcpval]; /* Compute positions of frontier sub-arrays */ blocptr->compload1[dstpval] = blocptr->compload1[srcpval] + bremptr->compload1[srcpval]; /* Accumulate graph properties */ blocptr->compsize1[dstpval] = blocptr->compsize1[srcpval] + bremptr->compsize1[srcpval]; blocptr->commloadextn[dstpval] = blocptr->commloadextn[srcpval] + bremptr->commloadextn[srcpval]; blocptr->commloadintn[dstpval] = blocptr->commloadintn[srcpval] + bremptr->commloadintn[srcpval]; blocptr->commgainextn[dstpval] = blocptr->commgainextn[srcpval] + bremptr->commgainextn[srcpval]; } else { blocptr->fronnnd[dstpval] = blocptr->fronnnd[srcpval]; blocptr->compload1[dstpval] = blocptr->compload1[srcpval]; blocptr->compsize1[dstpval] = blocptr->compsize1[srcpval]; blocptr->commloadextn[dstpval] = blocptr->commloadextn[srcpval]; blocptr->commloadintn[dstpval] = blocptr->commloadintn[srcpval]; blocptr->commgainextn[dstpval] = blocptr->commgainextn[srcpval]; } } #endif /* BGRAPHBIPARTDFNOTHREAD */ /******************************/ /* */ /* The threaded loop routine. */ /* */ /******************************/ /* This routine computes the diffusion of two ** liquids on the given part of the bipartition ** graph. ** It returns: ** - 0 : if algorithm went up to last pass. ** - !0 : on error. */ static void bgraphBipartDfLoop ( ThreadDescriptor * restrict const descptr, BgraphBipartDfData * restrict const loopptr) { float * restrict ielstax; /* Inverse of edge load sum array */ float * restrict difotax; /* Old diffusion value array */ float * restrict difntax; /* New diffusion value array */ Gnum vancnnd; /* Index of last non-anchor vertex in range */ Gnum vertbas; /* Start index of vertex range */ Gnum vertnnd; /* End index of vertex range */ Gnum vertnum; Gnum vertsiz; /* Size of local vertex array */ Gnum fronsiz; /* Size of local frontier array */ Gnum * restrict frontab; Gnum fronnbr; /* Local number of frontier vertices */ Gnum compload1; Gnum compsize1; Gnum commloadintn; Gnum commloadextn; Gnum commgainextn; Gnum veexval; Gnum veexval1; /* Negative external gain to part 1 */ Gnum veexsum; Gnum veexsum1; /* Sum of negative external gains */ Gnum veloval; float velfval; INT passnum; Anum distval; #ifndef BGRAPHBIPARTDFNOTHREAD const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); #else /* BGRAPHBIPARTDFNOTHREAD */ const int thrdnbr = 1; const int thrdnum = 0; #endif /* BGRAPHBIPARTDFNOTHREAD */ Bgraph * restrict const grafptr = loopptr->grafptr; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Gnum * restrict const veextax = grafptr->veextax; GraphPart * restrict const parttax = grafptr->parttax; const int thrdlst = thrdnbr - 1; const Gnum vancnbr = grafptr->s.vertnbr - 2; /* Number of non-anchor vertices in graph */ vertbas = grafptr->s.baseval + DATASCAN (vancnbr, thrdnbr, thrdnum); /* Compute bounds of each thread */ if (thrdnum == thrdnbr - 1) { vertnnd = grafptr->s.vertnnd; vancnnd = vertnnd - 2; } else { vertnnd = grafptr->s.baseval + DATASCAN (vancnbr, thrdnbr, (thrdnum + 1)); vancnnd = vertnnd; } vertsiz = vertnnd - vertbas; /* Compute size of vertex sub-array */ fronsiz = (thrdnum != 0) ? vertsiz : 0; /* No extra frontier array for thread 0 */ difotax = loopptr->difotax; difntax = loopptr->difntax; distval = grafptr->domndist; if (memAllocGroup ((void **) (void *) /* Allocate here for memory affinity as it is a private array */ &ielstax, (size_t) (vertsiz * sizeof (Gnum)), /* Ielstab is group leader as never optional */ &frontab, (size_t) (fronsiz * sizeof (Gnum)), NULL) == NULL) { errorPrint ("bgraphBipartDfLoop: out of memory"); loopptr->abrtval = 1; goto skip; } if (thrdnum == 0) /* Thread 0 will write directly in frontab */ frontab = grafptr->frontab; ielstax -= vertbas; /* Base access to local part of edge load sum array */ veexval = /* Assume no external gains */ veexval1 = 0; veexsum = veexsum1 = 0; for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* Process all vertices, including anchors */ Gnum edlosum; if (edlotax == NULL) /* If graph doesn't have edge weights */ edlosum = vendtax[vertnum] - verttax[vertnum]; else { Gnum edgenum; Gnum edgennd; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum], edlosum = 0; edgenum < edgennd; edgenum ++) edlosum += edlotax[edgenum]; } edlosum *= distval; if (veextax != NULL) { veexval = veextax[vertnum]; veexval1 = veexval & BGRAPHBIPARTDFGNUMSGNMSK (veexval); /* Get negative external gain only, by superscalar update */ #ifdef SCOTCH_DEBUG_BGRAPH2 if (((veexval >= 0) && (veexval1 != 0)) || ((veexval < 0) && (veexval1 != veexval))) { errorPrint ("bgraphBipartDfLoop: internal error"); loopptr->abrtval = 1; } #endif /* SCOTCH_DEBUG_BGRAPH2 */ veexsum += veexval; /* Sum all external gains, positive and negative */ veexsum1 += veexval1; /* Sum all negative gains */ } difotax[vertnum] = 0.0; ielstax[vertnum] = 1.0F / (float) (edlosum + veexval - 2 * veexval1); /* Add absolute value of veexval */ } if (veextax != NULL) { loopptr->thrdtab[thrdnum].veexsum = veexsum; loopptr->thrdtab[thrdnum].veexsum1 = veexsum1; #ifndef BGRAPHBIPARTDFNOTHREAD threadReduce (descptr, &loopptr->thrdtab[thrdnum], sizeof (BgraphBipartDfThread), (ThreadReduceFunc) bgraphBipartDfReduceVeex, thrdlst, NULL); #endif /* BGRAPHBIPARTDFNOTHREAD */ veexsum = loopptr->thrdtab[thrdnum].veexsum; /* Will be useful for thread (thrdlst) only */ veexsum1 = loopptr->thrdtab[thrdnum].veexsum1; if (thrdnum == thrdlst) { /* Last thread will handle anchors as root of reduction */ ielstax[vertnnd - 2] = 1.0F / (1.0F / ielstax[vertnnd - 2] + (float) (veexsum - veexsum1)); ielstax[vertnnd - 1] = 1.0F / (1.0F / ielstax[vertnnd - 1] - (float) veexsum1); } } if (thrdnum == thrdlst) { /* Last thread will handle anchors as root of reduction */ difotax[vertnnd - 2] = loopptr->vanctab[0] * ielstax[vertnnd - 2]; /* Load anchor vertices for first pass */ difotax[vertnnd - 1] = loopptr->vanctab[1] * ielstax[vertnnd - 1]; } skip : #ifndef BGRAPHBIPARTDFNOTHREAD threadBarrier (descptr); /* Wait until all array values have been computed */ #endif /* BGRAPHBIPARTDFNOTHREAD */ if (loopptr->abrtval == 1) { /* If any process decided to quit */ if (ielstax != NULL) /* Free local array if necessary */ memFree (ielstax + vertbas); return; } velfval = 1.0F; /* Assume no vertex loads */ for (passnum = loopptr->passnbr; passnum > 0; passnum --) { /* For all passes */ Gnum vertnum; Gnum vancnnt; float vancval; /* Value to load vertex with if anchor */ float * difttax; /* Temporary swap value */ float vancold0 = difotax[grafptr->s.vertnnd - 2]; /* Get for all threads */ float vancold1 = difotax[grafptr->s.vertnnd - 1]; float vancval0; /* External gain contributions from regular vertices to anchors */ float vancval1; vancval0 = vancval1 = 0.0F; vancval = 0.0F; /* At first vertices are not anchors */ vertnum = vertbas; /* Start processing regular vertices, then see */ vancnnt = vancnnd; /* Loop until end of (regular) vertex block */ while (1) { for ( ; vertnum < vancnnt; vertnum ++) { Gnum edgenum; Gnum edgennd; float diffval; edgenum = verttax[vertnum]; edgennd = vendtax[vertnum]; diffval = 0.0F; if (edlotax != NULL) for ( ; edgenum < edgennd; edgenum ++) diffval += difotax[edgetax[edgenum]] * (float) edlotax[edgenum]; else for ( ; edgenum < edgennd; edgenum ++) diffval += difotax[edgetax[edgenum]]; diffval *= (float) distval; if (veextax != NULL) { Gnum veexval; veexval = veextax[vertnum]; if (veexval != 0) { float veextmp; float vanctmp; veextmp = (float) veexval; vanctmp = veextmp * difotax[vertnum]; if (veexval > 0) { /* If external gain links to part 0 */ diffval += veextmp * vancold0; /* Spread contribution from anchor 0 */ vancval0 += vanctmp; } else { /* If external gain links to part 1 */ diffval -= veextmp * vancold1; /* Take opposite of negative value */ vancval1 -= vanctmp; } } } diffval += vancval; /* Add anchor contribution if anchor vertex */ if (velotax != NULL) velfval = (float) velotax[vertnum]; if (diffval >= 0.0F) { diffval -= velfval; if (diffval <= 0.0F) diffval = +BGRAPHBIPARTDFEPSILON; } else { diffval += velfval; if (diffval >= 0.0F) diffval = -BGRAPHBIPARTDFEPSILON; } if (isnan (diffval)) { /* If overflow occured (because of avalanche process) */ #ifdef SCOTCH_DEBUG_BGRAPH2 errorPrintW ("bgraphBipartDfLoop: overflow"); #endif /* SCOTCH_DEBUG_BGRAPH2 */ loopptr->abrtval = 1; /* Threads need to halt */ vertnum = vancnnt; /* Skip regular computations but synchronize */ } difntax[vertnum] = diffval * ielstax[vertnum]; } if (vertnum == vancnnd) { /* If first time we reach the end of regular vertices */ loopptr->thrdtab[thrdnum].vanctab[0] = vancval0; loopptr->thrdtab[thrdnum].vanctab[1] = vancval1; if (veextax != NULL) { #ifndef BGRAPHBIPARTDFNOTHREAD threadReduce (descptr, &loopptr->thrdtab[thrdnum], sizeof (BgraphBipartDfThread), (ThreadReduceFunc) bgraphBipartDfReduceVanc, thrdlst, NULL); #endif /* BGRAPHBIPARTDFNOTHREAD */ } } if (vertnum >= vertnnd) /* If all vertices processed in range array, exit intermediate infinite loop */ break; vancnnt ++; /* Prepare to go only for one more run, to be done twice */ vancval = loopptr->vanctab[vertnum - vancnnd] + loopptr->vanctab[vertnum - vancnnd]; /* Load variable with anchor value */ } difttax = (float *) difntax; /* Swap old and new diffusion arrays */ difntax = (float *) difotax; /* Casts to prevent IBM compiler from yelling */ difotax = (float *) difttax; #ifndef BGRAPHBIPARTDFNOTHREAD threadBarrier (descptr); #endif /* BGRAPHBIPARTDFNOTHREAD */ if (loopptr->abrtval == 1) { /* If all threads need to abort */ difotax = difntax; /* Roll-back to keep last valid array */ break; } } for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) /* Update part according to diffusion state */ parttax[vertnum] = (difotax[vertnum] <= 0.0F) ? 0 : 1; #ifndef BGRAPHBIPARTDFNOTHREAD threadBarrier (descptr); #endif /* BGRAPHBIPARTDFNOTHREAD */ veloval = 1; for (vertnum = vertbas, fronnbr = 0, commloadextn = commgainextn = commloadintn = compload1 = compsize1 = 0; vertnum < vertnnd; vertnum ++) { Gnum edgenum; Gnum partval; Gnum commload; /* Vertex internal communication load */ partval = (Gnum) parttax[vertnum]; if (velotax != NULL) veloval = velotax[vertnum]; if (veextax != NULL) { Gnum veexval; veexval = veextax[vertnum]; commloadextn += veexval * partval; commgainextn += veexval * (1 - 2 * partval); } compsize1 += partval; compload1 += partval * veloval; commload = 0; if (edlotax != NULL) { for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum partend; partend = (Gnum) parttax[edgetax[edgenum]]; commload += (partval ^ partend) * edlotax[edgenum]; } } else { for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) commload += partval ^ (Gnum) parttax[edgetax[edgenum]]; } commloadintn += commload; /* Internal loads will be added twice */ if (commload != 0) /* If end vertex is in the other part */ frontab[fronnbr ++] = vertnum; /* Then it belongs to the frontier */ } loopptr->thrdtab[thrdnum].fronnnd[0] = fronnbr; /* Save state for scan-reduce */ loopptr->thrdtab[thrdnum].compload1[0] = compload1; loopptr->thrdtab[thrdnum].compsize1[0] = compsize1; loopptr->thrdtab[thrdnum].commloadextn[0] = commloadextn; loopptr->thrdtab[thrdnum].commloadintn[0] = commloadintn; loopptr->thrdtab[thrdnum].commgainextn[0] = commgainextn; #ifndef BGRAPHBIPARTDFNOTHREAD threadScan (descptr, (void *) &loopptr->thrdtab[thrdnum], sizeof (BgraphBipartDfThread), (ThreadScanFunc) bgraphBipartDfScan, NULL); #endif /* BGRAPHBIPARTDFNOTHREAD */ if (thrdnum != 0) /* If thread is not first one, gather frontier sub-array */ memCpy (grafptr->frontab + loopptr->thrdtab[thrdnum].fronnnd[0] - fronnbr, frontab, fronnbr * sizeof (Gnum)); memFree (ielstax + vertbas); /* Free group leader of local arrays */ } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartDf ( Bgraph * restrict const grafptr, /*+ Active graph +*/ const BgraphBipartDfParam * const paraptr) /*+ Method parameters +*/ { BgraphBipartDfData loopdat; Gnum compload0; const int thrdnbr = contextThreadNbr (grafptr->contptr); #ifndef BGRAPHBIPARTDFNOTHREAD const int thrdlst = thrdnbr - 1; #else /* BGRAPHBIPARTDFNOTHREAD */ const int thrdlst = 0; #endif /* BGRAPHBIPARTDFNOTHREAD */ #ifdef SCOTCH_DEBUG_BGRAPH1 if ((grafptr->s.flagval & BGRAPHHASANCHORS) == 0) { /* Method valid only if graph has anchors */ errorPrint ("bgraphBipartDf: graph does not have anchors"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH1 */ if (memAllocGroup ((void **) (void *) &loopdat.thrdtab, (size_t) (thrdnbr * sizeof (BgraphBipartDfThread)), &loopdat.difotax, (size_t) (grafptr->s.vertnbr * sizeof (float)), &loopdat.difntax, (size_t) (grafptr->s.vertnbr * sizeof (float)), NULL) == NULL) { errorPrint ("bgraphBipartDf: out of memory (1)"); return (1); } loopdat.grafptr = grafptr; loopdat.difotax -= grafptr->s.baseval; loopdat.difntax -= grafptr->s.baseval; loopdat.passnbr = paraptr->passnbr; compload0 = (paraptr->typeval == BGRAPHBIPARTDFTYPEBAL) /* If balanced parts wanted */ ? grafptr->compload0avg /* Target is average */ : ( (grafptr->compload0 < grafptr->compload0min) ? grafptr->compload0min : /* Else keep load if not off balance */ ((grafptr->compload0 > grafptr->compload0max) ? grafptr->compload0max : grafptr->compload0)); loopdat.vanctab[0] = (float) - compload0; /* Values to be injected to anchor vertices at every iteration */ loopdat.vanctab[1] = (float) (grafptr->s.velosum - compload0) - BGRAPHBIPARTDFEPSILON; /* Slightly tilt value to add to part 1 */ loopdat.abrtval = 0; /* Nobody wants to abort yet */ #ifndef BGRAPHBIPARTDFNOTHREAD contextThreadLaunch (grafptr->contptr, (ThreadFunc) bgraphBipartDfLoop, (void *) &loopdat); #else /* BGRAPHBIPARTDFNOTHREAD */ bgraphBipartDfLoop (NULL, &loopdat); #endif /* BGRAPHBIPARTDFNOTHREAD */ grafptr->fronnbr = loopdat.thrdtab[thrdlst].fronnnd[0]; /* Get data after scan-reduction */ grafptr->compload0 = grafptr->s.velosum - loopdat.thrdtab[thrdlst].compload1[0]; grafptr->compload0dlt = grafptr->compload0 - grafptr->compload0avg; grafptr->compsize0 = grafptr->s.vertnbr - loopdat.thrdtab[thrdlst].compsize1[0]; grafptr->commload = loopdat.thrdtab[thrdlst].commloadextn[0] + grafptr->commloadextn0 + (loopdat.thrdtab[thrdlst].commloadintn[0] / 2) * grafptr->domndist; grafptr->commgainextn = loopdat.thrdtab[thrdlst].commgainextn[0]; grafptr->bbalval = (double) ((grafptr->compload0dlt < 0) ? (- grafptr->compload0dlt) : grafptr->compload0dlt) / (double) grafptr->compload0avg; memFree (loopdat.thrdtab); /* Free group leader */ #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartDf: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_df.h000066400000000000000000000124601514310134000273460ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2012,2018,2019,2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_df.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the function **/ /** declarations for the diffusion scheme **/ /** bipartitioning method. **/ /** **/ /** DATES : # Version 5.0 : from : 09 jan 2007 **/ /** to : 28 may 2007 **/ /** # Version 5.1 : from : 29 oct 2007 **/ /** to : 28 mar 2011 **/ /** # Version 6.0 : from : 08 nov 2011 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 08 jun 2018 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Small non-zero float value. */ #define BGRAPHBIPARTDFEPSILON (1.0F / (float) (GNUMMAX)) /*+ Sign masking operator. +*/ #define BGRAPHBIPARTDFGNUMSGNMSK(i) (- (Gnum) (((Gunum) (i)) >> (sizeof (Gnum) * 8 - 1))) /* ** The type and structure definitions. */ /*+ Job selection policy types. +*/ typedef enum BgraphBipartDfType_ { BGRAPHBIPARTDFTYPEBAL = 0, /*+ Balance to average +*/ BGRAPHBIPARTDFTYPEKEEP /*+ Preserve current imbalance +*/ } BgraphBipartDfType; /*+ Method parameters. +*/ typedef struct BgraphBipartDfParam_ { INT passnbr; /*+ Number of passes to do +*/ BgraphBipartDfType typeval; /*+ Type of balance to reach +*/ } BgraphBipartDfParam; /*+ The thread-specific data block. +*/ typedef struct BgraphBipartDfThread_ { Gnum fronnnd[2]; /*+ After-last frontier vertex index; [2] for scan +*/ Gnum compload1[2]; /*+ State return values to aggregate +*/ Gnum compsize1[2]; Gnum commloadextn[2]; Gnum commloadintn[2]; Gnum commgainextn[2]; float vanctab[2]; /*+ Area for (reducing) contributions to anchors +*/ Gnum veexsum; /*+ Area for reducing sums of external gains +*/ Gnum veexsum1; } BgraphBipartDfThread; /*+ The loop routine parameter structure. It contains the thread-independent data. +*/ typedef struct BgraphBipartDfData_ { Bgraph * grafptr; /*+ Graph to work on +*/ float * difntax; /*+ New diffusion value array +*/ float * difotax; /*+ Old diffusion value array +*/ BgraphBipartDfThread * thrdtab; /*+ Array of thread-specific data +*/ INT passnbr; /*+ Number of passes +*/ float vanctab[2]; /*+ Anchor load arrays +*/ int abrtval; /*+ Abort value +*/ } BgraphBipartDfData; /* ** The function prototypes. */ int bgraphBipartDf (Bgraph * restrict const, const BgraphBipartDfParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_ex.c000066400000000000000000000124761514310134000273730ustar00rootroot00000000000000/* Copyright 2004,2007,2016,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_ex.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tries to balance the **/ /** subgraphs of the partition as best as **/ /** it can. **/ /** **/ /** DATES : # Version 2.0 : from : 25 oct 1994 **/ /** to : 03 nov 1994 **/ /** # Version 3.0 : from : 18 nov 1995 **/ /** to : 18 nov 1995 **/ /** # Version 3.1 : from : 20 nov 1995 **/ /** to : 29 nov 1995 **/ /** # Version 3.2 : from : 15 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 11 dec 2003 **/ /** to : 11 dec 2003 **/ /** # Version 5.1 : from : 30 nov 2007 **/ /** to : 30 nov 2007 **/ /** # Version 6.0 : from : 14 aug 2016 **/ /** to : 21 may 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes */ #include "module.h" #include "common.h" #include "gain.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_ex.h" #include "bgraph_bipart_fm.h" #include "bgraph_bipart_gg.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartEx ( Bgraph * restrict const grafptr) { BgraphBipartFmParam parafmdat; /* Parameter area for the Fiduccia-Mattheyses algorithm */ if (grafptr->compload0dlt == 0) /* Return if nothing to do */ return (0); parafmdat.movenbr = grafptr->s.vertnbr; parafmdat.passnbr = ~0; parafmdat.deltval = 0.0L; /* Exact balance required */ parafmdat.typeval = BGRAPHBIPARTFMTYPEALL; /* All vertices involved */ if (bgraphBipartFm (grafptr, ¶fmdat) != 0) /* Return if error */ return (1); if ((grafptr->s.vertnbr > 1) && /* If graph has several vertices but is completely imbalanced */ ((grafptr->compsize0 == 0) || (grafptr->compsize0 == grafptr->s.vertnbr))) { BgraphBipartGgParam paraggdat; /* Parameter area for the Greedy Graph Growing algorithm */ paraggdat.passnbr = 4; if (bgraphBipartGg (grafptr, ¶ggdat) != 0) /* Return if error */ return (1); } #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartEx: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_ex.h000066400000000000000000000073631514310134000273770ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_ex.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the exact-balance post-processing **/ /** module. **/ /** **/ /** DATES : # Version 2.0 : from : 25 oct 1994 **/ /** to : 26 oct 1994 **/ /** # Version 3.0 : from : 18 nov 1995 **/ /** to : 20 nov 1995 **/ /** # Version 3.1 : from : 20 nov 1995 **/ /** to : 20 nov 1995 **/ /** # Version 3.2 : from : 15 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 11 dec 2003 **/ /** to : 11 dec 2003 **/ /** # Version 6.0 : from : 05 apr 2018 **/ /** to : 05 apr 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ System-defined constants. +*/ #define BGRAPHBIPARTEXGAINTABLSUBBITS 1 #define BGRAPHBIPARTEXSTATEFREE ((GainLink *) 0) /*+ Vertex in initial state (TRICK: must be 0) +*/ #define BGRAPHBIPARTEXSTATEUSED ((GainLink *) 1) /*+ Swapped vertex +*/ #define BGRAPHBIPARTEXSTATELINK ((GainLink *) 2) /*+ Currently in gain table if higher +*/ /* ** The function prototypes. */ int bgraphBipartEx (Bgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_fm.c000066400000000000000000001434251514310134000273600ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2016,2019,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_fm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module bipartitions an active **/ /** graph using our improvements of the **/ /** Fiduccia-Mattheyses heuristics. **/ /** **/ /** DATES : # Version 1.0 : from : 30 sep 1993 **/ /** to : 09 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.2 : from : 07 feb 1994 **/ /** to : 15 feb 1994 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 30 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 03 nov 1994 **/ /** # Version 3.1 : from : 06 nov 1995 **/ /** to : 07 jun 1996 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 12 mar 1999 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 20 dec 2003 **/ /** to : 05 may 2006 **/ /** # Version 5.0 : from : 24 mar 2008 **/ /** to : 22 may 2008 **/ /** # Version 5.1 : from : 30 oct 2008 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 23 feb 2011 **/ /** to : 20 aug 2019 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 25 jan 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_BGRAPH_BIPART_FM #define SCOTCH_TABLE_GAIN #include "module.h" #include "common.h" #include "fibo.h" #include "gain.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_fm.h" #include "bgraph_bipart_gg.h" /*********************************/ /* */ /* Gain table handling routines. */ /* */ /*********************************/ #ifdef SCOTCH_TABLE_GAIN /* This routine returns the vertex of best gain ** whose swap will keep the balance correct. ** It returns: ** - !NULL : pointer to the vertex. ** - NULL : if no more vertices available. */ static BgraphBipartFmVertex * bgraphBipartFmTablGet ( BgraphBipartFmTabl * restrict const gainptr, /*+ Gain table +*/ const Gnum deltcur, /*+ Current imbalance +*/ const Gnum deltmin, /*+ Minimum imbalance +*/ const Gnum deltmax) /*+ Maximum imbalance +*/ { GainTabl * tablptr; BgraphBipartFmVertex * vexxptr; BgraphBipartFmVertex * vertbest; Gnum gainbest; const GainEntr * tablbest; Gnum deltbest; tablptr = *gainptr; tablbest = tablptr->tend; /* Assume no candidate vertex found yet */ gainbest = GAINMAX; vertbest = NULL; deltbest = deltmax; for (vexxptr = (BgraphBipartFmVertex *) gainTablFrst (tablptr); /* Select candidate vertices */ (vexxptr != NULL) && (vexxptr->gainlink.tabl < tablbest); vexxptr = (BgraphBipartFmVertex *) gainTablNext (tablptr, &vexxptr->gainlink)) { Gnum deltnew; deltnew = deltcur + vexxptr->compgain; if ((deltnew >= deltmin) && /* If vertex enforces balance */ (deltnew <= deltmax)) { deltnew = abs (deltnew); if ((vexxptr->commgain < gainbest) || /* And if it gives better gain */ ((vexxptr->commgain == gainbest) && /* Or if it gives better load */ (deltnew < deltbest))) { tablbest = vexxptr->gainlink.tabl; /* Select it */ gainbest = vexxptr->commgain; vertbest = vexxptr; deltbest = deltnew; } } } return (vertbest); } #else /* SCOTCH_TABLE_GAIN */ /* bgraphBipartFmCmpFunc(a,b) must return a negative ** number if a is "better" than b. The smaller, the ** better. */ static int bgraphBipartFmCmpFunc ( const FiboNode * const data0ptr, /* TRICK: BgraphBipartFmLink is FIRST in BgraphBipartFmVertex */ const FiboNode * const data1ptr) { const BgraphBipartFmVertex * const node0ptr = (BgraphBipartFmVertex *) data0ptr; const BgraphBipartFmVertex * const node1ptr = (BgraphBipartFmVertex *) data1ptr; if (node0ptr->commgain < node1ptr->commgain) return (-1); if (node0ptr->commgain > node1ptr->commgain) return (1); return (0); } static BgraphBipartFmVertex * bgraphBipartFmTablGet ( BgraphBipartFmTabl * restrict const tablptr, /*+ Gain table +*/ const Gnum deltcur, /*+ Current imbalance +*/ const Gnum deltmin, /*+ Minimum imbalance +*/ const Gnum deltmax) /*+ Maximum imbalance +*/ { FiboNode * remoptr; /* List of removed links */ BgraphBipartFmVertex * vexxptr; BgraphBipartFmVertex * vertbest; Gnum gainbest; Gnum deltbest; FiboNode * linkptr; /* Pointer to current gain link */ gainbest = GAINMAX; vertbest = NULL; deltbest = deltmax; remoptr = NULL; while ((linkptr = fiboHeapMin (tablptr)) != NULL) { /* Select candidate vertices */ Gnum deltnew; Gnum gainval; /* Separator gain of current link */ vexxptr = (BgraphBipartFmVertex *) linkptr; gainval = vexxptr->commgain; if (gainval > gainbest) /* If no more interesting vertices, stop searching */ break; fiboHeapDel (tablptr, linkptr); /* Remove vertex link from table */ linkptr->linkdat.prevptr = remoptr; /* Node has been removed but is not kept */ remoptr = linkptr; /* It will be chained back afterwards */ deltnew = deltcur + vexxptr->compgain; if ((deltnew >= deltmin) && /* If vertex enforces balance */ (deltnew <= deltmax)) { deltnew = abs (deltnew); if (deltnew <= deltbest) { /* If vertex enforces balance */ vertbest = vexxptr; gainbest = gainval; deltbest = deltnew; } } } while (remoptr != NULL) { /* Put back all temporarily removed nodes */ FiboNode * tempptr; tempptr = remoptr; /* Get pointer to node */ remoptr = remoptr->linkdat.prevptr; /* Find next node */ fiboHeapAdd (tablptr, tempptr); /* Re-link node */ } return (vertbest); } #endif /* SCOTCH_TABLE_GAIN */ /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartFm ( Bgraph * restrict const grafptr, /*+ Active graph +*/ const BgraphBipartFmParam * const paraptr) /*+ Method parameters +*/ { BgraphBipartFmTabl tabldat; /* Gain table */ BgraphBipartFmTabl * tablptr; /* Pointer to gain table */ INT passnbr; /* Maximum number of passes to go */ BgraphBipartFmSave * restrict savetab; /* Pointer to move array */ Gnum movenbr; /* Number of uneffective moves done */ Gnum savenbr; /* Number of recorded backtrack moves */ Gnum mswpnum; /* Current number of recording sweep */ int moveflag; /* Flag set if useful moves made */ int swapval; /* Flag set if global swap performed */ int swapvalbst; /* Recorded swap value for best position */ Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ Gnum hashnum; /* Hash value */ BgraphBipartFmVertex * lockptr; /* Linked list of locked vertices */ BgraphBipartFmVertex * restrict hashtab; /* Extended vertex array */ Gnum hashmax; Gnum hashnbr; void * hashtmp; /* Temporary variable to avoid "restrict" */ Gnum comploadsum; /* Overall vertex load sum, including fixed */ Gnum compload0dltmit; /* Theoretical smallest imbalance allowed */ Gnum compload0dltmat; /* Theoretical largest imbalance allowed */ Gnum compload0dltmin; /* Smallest imbalance allowed */ Gnum compload0dltmax; /* Largest imbalance allowed */ Gnum compload0dltbst; /* Best imbalance value found to date */ Gnum compload0dlt; /* Current imbalance */ Gnum compsize0dlt; /* Update of size of part 0 */ Gnum commgainextn; /* Current external communication gain */ Gnum commgainextnbst; /* External gain of best recorded position */ Gnum commload; /* Communication load of current position */ Gnum commloadbst; /* Best communication load to date */ Gnum domndist; /* Distance between the two subdomains */ Gnum fronnbr; Gnum fronnum; BgraphBipartFmType typeval; const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Gnum * restrict const veextax = grafptr->veextax; comploadsum = grafptr->s.velosum + grafptr->vfixload[0] + grafptr->vfixload[1]; compload0dltmat = (paraptr->deltval <= 0.0L) ? 0 : ((Gnum) ((double) comploadsum * paraptr->deltval / (double) MAX (grafptr->domnwght[0], grafptr->domnwght[1])) + 1); compload0dltmit = MAX ((grafptr->compload0min - grafptr->compload0avg), - compload0dltmat); compload0dltmat = MIN ((grafptr->compload0max - grafptr->compload0avg), compload0dltmat); compload0dltmin = MIN (grafptr->compload0dlt, compload0dltmit); /* Set current maximum distance */ compload0dltmax = MAX (grafptr->compload0dlt, compload0dltmat); typeval = BGRAPHBIPARTFMTYPEBOUNDARY; /* Start by using boundary moves only */ if (grafptr->fronnbr == 0) { /* If no current frontier */ if ((grafptr->compload0dlt >= compload0dltmit) && /* If balance is correct */ (grafptr->compload0dlt <= compload0dltmat)) return (0); /* Nothing to do */ else { /* Imbalance must be fought */ BgraphBipartGgParam paradat; paradat.passnbr = 4; /* Use a standard algorithm */ if (bgraphBipartGg (grafptr, ¶dat) != 0) /* Return if error */ return (1); if (grafptr->fronnbr == 0) /* If new partition has no frontier */ return (0); /* This algorithm is still useless */ compload0dltmin = MIN (compload0dltmit, grafptr->compload0dlt); compload0dltmax = MAX (compload0dltmat, grafptr->compload0dlt); typeval = BGRAPHBIPARTFMTYPEALL; } } #ifdef SCOTCH_DEBUG_BGRAPH2 hashnbr = 2 * grafptr->fronnbr + 1; /* Ensure resizing will be performed, for maximum code coverage */ #else /* SCOTCH_DEBUG_BGRAPH2 */ hashnbr = 4 * (grafptr->fronnbr + paraptr->movenbr + grafptr->s.degrmax); #endif /* SCOTCH_DEBUG_BGRAPH2 */ if (hashnbr > grafptr->s.vertnbr) hashnbr = grafptr->s.vertnbr; if (typeval == BGRAPHBIPARTFMTYPEALL) /* Take maximum space so that hashmax will fit */ hashnbr = grafptr->s.vertnbr * 4; for (hashsiz = 256; hashsiz < hashnbr; hashsiz <<= 1) ; /* Get upper power of two */ hashmsk = hashsiz - 1; hashmax = hashsiz >> 2; if (bgraphBipartFmTablInit (&tabldat) != 0) { errorPrint ("bgraphBipartFm: internal error (1)"); /* Unable to do proper initialization */ bgraphBipartFmTablExit (&tabldat); return (1); } tablptr = &tabldat; if (memAllocGroup ((void **) (void *) &hashtmp, (size_t) (hashsiz * sizeof (BgraphBipartFmVertex)), &savetab, (size_t) (hashsiz * sizeof (BgraphBipartFmSave)), NULL) == NULL) { errorPrint ("bgraphBipartFm: out of memory (1)"); bgraphBipartFmTablExit (tablptr); return (1); } hashtab = hashtmp; memSet (hashtab, ~0, hashsiz * sizeof (BgraphBipartFmVertex)); /* Set all vertex numbers to ~0 */ domndist = grafptr->domndist; if (typeval == BGRAPHBIPARTFMTYPEALL) { Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { /* Set initial gains */ Gnum veloval; Gnum hashnum; Gnum edgenum; Gnum edloval; Gnum commcut; Gnum commgain; int partval; int partdlt; partval = grafptr->parttax[vertnum]; for (edgenum = verttax[vertnum], commcut = commgain = 0, edloval = 1; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; int partend; int partdlt; vertend = edgetax[edgenum]; partend = grafptr->parttax[vertend]; if (edlotax != NULL) edloval = edlotax[edgenum]; partdlt = partval ^ partend; commcut += partdlt; commgain += (1 - 2 * partdlt) * edloval; } commgain *= domndist; /* Adjust internal gains with respect to external gains */ partdlt = 2 * partval - 1; veloval = (velotax != NULL) ? velotax[vertnum] : 1; for (hashnum = (vertnum * BGRAPHBIPARTFMHASHPRIME) & hashmsk; hashtab[hashnum].vertnum != ~0; hashnum = (hashnum + 1) & hashmsk) ; hashtab[hashnum].vertnum = vertnum; /* Implicitely set slot as used */ hashtab[hashnum].partval = partval; hashtab[hashnum].compgain = partdlt * veloval; hashtab[hashnum].commgain = (veextax == NULL) ? commgain : (commgain - partdlt * veextax[vertnum]); hashtab[hashnum].commcut = commcut; hashtab[hashnum].mswpnum = 0; /* Implicitely set slot as used */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnum]); } } else { for (fronnum = 0, hashnbr = grafptr->fronnbr; /* Set initial gains */ fronnum < hashnbr; fronnum ++) { Gnum vertnum; Gnum veloval; Gnum hashnum; Gnum edgenum; Gnum edloval; Gnum commcut; Gnum commgain; int partval; int partdlt; vertnum = grafptr->frontab[fronnum]; partval = grafptr->parttax[vertnum]; for (edgenum = verttax[vertnum], commcut = commgain = 0, edloval = 1; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; int partend; int partdlt; vertend = edgetax[edgenum]; partend = grafptr->parttax[vertend]; if (edlotax != NULL) edloval = edlotax[edgenum]; partdlt = partval ^ partend; commcut += partdlt; commgain += (1 - 2 * partdlt) * edloval; } commgain *= domndist; /* Adjust internal gains with respect to external gains */ partdlt = 2 * partval - 1; veloval = (velotax != NULL) ? velotax[vertnum] : 1; for (hashnum = (vertnum * BGRAPHBIPARTFMHASHPRIME) & hashmsk; hashtab[hashnum].vertnum != ~0; hashnum = (hashnum + 1) & hashmsk) ; hashtab[hashnum].vertnum = vertnum; /* Implicitely set slot as used */ hashtab[hashnum].partval = partval; hashtab[hashnum].compgain = partdlt * veloval; hashtab[hashnum].commgain = (veextax == NULL) ? commgain : (commgain - partdlt * veextax[vertnum]); hashtab[hashnum].commcut = commcut; hashtab[hashnum].mswpnum = 0; /* Implicitely set slot as used */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnum]); } } compload0dltbst = grafptr->compload0dlt; commloadbst = grafptr->commload; commgainextnbst = grafptr->commgainextn; swapvalbst = 0; /* No global swap performed yet */ #ifdef SCOTCH_DEBUG_BGRAPH2 #ifdef SCOTCH_DEBUG_BGRAPH3 if (bgraphBipartFmCheck (grafptr, hashtab, hashmsk, 0, compload0dltbst, commloadbst, commgainextnbst) != 0) { errorPrint ("bgraphBipartFm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH3 */ #endif /* SCOTCH_DEBUG_BGRAPH2 */ passnbr = paraptr->passnbr; /* Set remaining number of passes */ savenbr = 0; /* For empty backtrack of first pass */ mswpnum = 0; /* Will be incremented afterwards */ lockptr = NULL; /* Locked list is empty */ do { /* As long as there are improvements */ BgraphBipartFmVertex * vexxptr; while (savenbr -- > 0) { /* Delete exceeding moves */ Gnum hashnum; int partval; hashnum = savetab[savenbr].hashnum; partval = savetab[savenbr].partval; hashtab[hashnum].partval = partval; /* Restore vertex data */ hashtab[hashnum].compgain = savetab[savenbr].compgain; hashtab[hashnum].commgain = savetab[savenbr].commgain; hashtab[hashnum].commcut = savetab[savenbr].commcut; if (bgraphBipartFmIsTabl (&hashtab[hashnum])) { /* If vertex is linked */ bgraphBipartFmTablDel (tablptr, &hashtab[hashnum]); /* Unlink it */ bgraphBipartFmSetFree (&hashtab[hashnum]); /* Set it as free */ } if (bgraphBipartFmIsFree (&hashtab[hashnum]) && (partval == 2)) /* If vertex not locked and in separator */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnum]); /* Re-link it */ } compload0dlt = compload0dltbst; /* Restore best separator parameters */ commload = commloadbst; commgainextn = commgainextnbst; swapval = swapvalbst; mswpnum ++; /* Forget all recorded moves */ #ifdef SCOTCH_DEBUG_BGRAPH2 #ifdef SCOTCH_DEBUG_BGRAPH3 if (bgraphBipartFmCheck (grafptr, hashtab, hashmsk, swapval, compload0dlt, commload, commgainextn) != 0) { errorPrint ("bgraphBipartFm: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH3 */ #endif /* SCOTCH_DEBUG_BGRAPH2 */ while (lockptr != NULL) { /* For all vertices in locked list */ BgraphBipartFmVertex * vexxptr; vexxptr = lockptr; /* Unlink vertex from list */ lockptr = bgraphBipartFmChainNext (vexxptr); if ((typeval == BGRAPHBIPARTFMTYPEALL) || (vexxptr->commcut > 0)) /* If vertex has cut edges or should be put anyway */ bgraphBipartFmTablAdd (tablptr, vexxptr); /* Put it in table */ else bgraphBipartFmSetFree (vexxptr); /* Set it free anyway */ } moveflag = 0; /* No useful moves made */ movenbr = 0; /* No uneffective moves recorded yet */ savenbr = 0; /* Back up to beginning of table */ while ((movenbr < paraptr->movenbr) && /* As long as we can find effective vertices */ ((vexxptr = (BgraphBipartFmVertex *) bgraphBipartFmTablGet (tablptr, compload0dlt, compload0dltmin, compload0dltmax)) != NULL)) { Gnum vertnum; /* Number of current vertex */ int partval; /* Part of current vertex */ Gnum edgenum; Gnum edloval; bgraphBipartFmTablDel (tablptr, vexxptr); /* Remove it from table */ bgraphBipartFmSetUsed (vexxptr); /* Mark it as used */ bgraphBipartFmChain (&lockptr, vexxptr); /* Lock it */ vertnum = vexxptr->vertnum; partval = vexxptr->partval; if (vexxptr->mswpnum != mswpnum) { /* If vertex data not yet recorded */ vexxptr->mswpnum = mswpnum; savetab[savenbr].hashnum = (Gnum) (vexxptr - hashtab); savetab[savenbr].partval = partval; savetab[savenbr].compgain = vexxptr->compgain; savetab[savenbr].commgain = vexxptr->commgain; savetab[savenbr].commcut = vexxptr->commcut; savenbr ++; /* One more move recorded */ } movenbr ++; /* One more move done */ commload += vexxptr->commgain; compload0dlt += vexxptr->compgain; if (veextax != NULL) commgainextn += 2 * (2 * partval - 1) * veextax[vertnum]; vexxptr->partval = partval ^ 1; /* Swap vertex first in case neighbors are added */ vexxptr->compgain = - vexxptr->compgain; vexxptr->commgain = - vexxptr->commgain; vexxptr->commcut = vendtax[vertnum] - verttax[vertnum] - vexxptr->commcut; edloval = 1; for (edgenum = verttax[vertnum]; /* (Re-)link neighbors */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* Number of current end neighbor vertex */ Gnum hashnum; vertend = edgetax[edgenum]; if (edlotax != NULL) edloval = edlotax[edgenum]; for (hashnum = (vertend * BGRAPHBIPARTFMHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].vertnum == vertend) { /* If hash slot found */ int partdlt; if (hashtab[hashnum].mswpnum != mswpnum) { /* If vertex data not yet recorded */ savetab[savenbr].hashnum = hashnum; /* Record them */ savetab[savenbr].partval = hashtab[hashnum].partval; savetab[savenbr].compgain = hashtab[hashnum].compgain; savetab[savenbr].commgain = hashtab[hashnum].commgain; savetab[savenbr].commcut = hashtab[hashnum].commcut; hashtab[hashnum].mswpnum = mswpnum; savenbr ++; } partdlt = 2 * (partval ^ hashtab[hashnum].partval) - 1; hashtab[hashnum].commgain += (domndist * 2) * edloval * partdlt; hashtab[hashnum].commcut -= partdlt; if (! bgraphBipartFmIsUsed(&hashtab[hashnum])) { /* If vertex is of use */ if (bgraphBipartFmIsTabl(&hashtab[hashnum])) { /* If vertex is linked */ bgraphBipartFmTablDel (tablptr, &hashtab[hashnum]); /* Remove it from table */ bgraphBipartFmSetFree (&hashtab[hashnum]); /* Mark it as free anyway */ } if (hashtab[hashnum].commcut > 0) /* If vertex belongs to the frontier */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnum]); /* Re-link it */ } break; } if (hashtab[hashnum].vertnum == ~0) { /* If hash slot empty */ Gnum commgain; /* Communication gain of current vertex */ Gnum commgainold; /* Old communication gain of current vertex */ Gnum veloval; Gnum veexval; int partold; int partdlt; if (hashnbr >= hashmax) { /* If extended vertex table is already full */ if (bgraphBipartFmResize (&hashtab, &hashmax, &hashmsk, &savetab, savenbr, tablptr, &lockptr) != 0) { errorPrint ("bgraphBipartFm: out of memory (2)"); memFree (hashtab); /* Free group leader */ bgraphBipartFmTablExit (tablptr); } for (hashnum = (vertend * BGRAPHBIPARTFMHASHPRIME) & hashmsk; hashtab[hashnum].vertnum != ~0; hashnum = (hashnum + 1) & hashmsk) ; /* Search for new first free slot */ } if (edlotax != NULL) { /* If graph edges are weighted */ Gnum edgeend; for (edgeend = verttax[vertend], commgainold = 0; /* Compute neighbor edge load sum */ edgeend < vendtax[vertend]; edgeend ++) commgainold += edlotax[edgeend]; commgain = commgainold - 2 * edloval; } else { /* Graph edges are not weighted */ commgainold = vendtax[vertend] - verttax[vertend]; commgain = commgainold - 2; } veloval = 1; if (velotax != NULL) veloval = velotax[vertend]; veexval = 0; if (veextax != NULL) veexval = veextax[vertend]; #ifdef SCOTCH_DEBUG_BGRAPH2 if (grafptr->parttax[vertend] != (partval ^ swapval)) { errorPrint ("bgraphBipartFm: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ partold = partval ^ swapval ^ swapvalbst; /* Get part of vertex as in latest accepted configuration */ partdlt = 2 * partold - 1; /* Compute values to fill save table according to last stable configuration */ savetab[savenbr].hashnum = hashnum; /* Record initial state of new vertex */ savetab[savenbr].partval = partold; savetab[savenbr].compgain = partdlt * veloval; savetab[savenbr].commgain = commgainold * domndist - (partdlt * veexval); savetab[savenbr].commcut = 0; savenbr ++; partdlt = 2 * partval - 1; /* Compute values to fill hash table according to current configuration */ hashtab[hashnum].vertnum = vertend; hashtab[hashnum].partval = partval; /* It was a neighbor of the moved vertex, in current global swap state */ hashtab[hashnum].compgain = partdlt * veloval; hashtab[hashnum].commgain = commgain * domndist - (partdlt * veexval); hashtab[hashnum].commcut = 1; hashtab[hashnum].mswpnum = mswpnum; /* Vertex has just been saved */ hashnbr ++; /* One more vertex in hash table */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnum]); break; } } } if (commload < commloadbst) { /* If move improves the cost */ compload0dltbst = compload0dlt; /* This move was effective */ commloadbst = commload; commgainextnbst = commgainextn; swapvalbst = swapval; moveflag = 1; movenbr = savenbr = 0; mswpnum ++; } else if (commload == commloadbst) { if (abs (compload0dlt) < abs (compload0dltbst)) { compload0dltbst = compload0dlt; /* This move was effective */ commgainextnbst = commgainextn; swapvalbst = swapval; moveflag = 1; movenbr = savenbr = 0; mswpnum ++; } else if (abs (compload0dlt) == abs (compload0dltbst)) { compload0dltbst = compload0dlt; /* Forget backtracking */ commgainextnbst = commgainextn; swapvalbst = swapval; savenbr = 0; mswpnum ++; } } if (((compload0dltmin < compload0dltmit) && /* If must restrict distance bounds */ (compload0dlt > compload0dltmin) && /* And we have done something useful */ (compload0dlt <= compload0dltmax)) || ((compload0dltmax > compload0dltmat) && (compload0dlt < compload0dltmax) && (compload0dlt >= compload0dltmin))) { compload0dltmin = MIN (compload0dltmit, compload0dlt); /* Update bounds */ compload0dltmax = MAX (compload0dltmat, compload0dlt); compload0dltbst = compload0dlt; /* Record best move done */ commloadbst = commload; commgainextnbst = commgainextn; swapvalbst = swapval; moveflag = 1; movenbr = savenbr = 0; mswpnum ++; } #ifdef SCOTCH_DEBUG_BGRAPH2 #ifdef SCOTCH_DEBUG_BGRAPH3 if (bgraphBipartFmCheck (grafptr, hashtab, hashmsk, swapval, compload0dlt, commload, commgainextn) != 0) { errorPrint ("bgraphBipartFm: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH3 */ #endif /* SCOTCH_DEBUG_BGRAPH2 */ if (commgainextn < 0) { /* If global swap improves gain */ Gnum compload0dlttmp; #ifdef SCOTCH_DEBUG_BGRAPH2 if (veextax == NULL) { /* commgainextn should always be 0 if (veextab == NULL) */ errorPrint ("bgraphBipartFm: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ compload0dlttmp = grafptr->s.velosum - compload0dlt - 2 * grafptr->compload0avg; if (abs (compload0dlttmp) <= compload0dltmax) { /* If still within bounds, perform actual swapping */ Gnum hashnum; commload += commgainextn; /* Perform global swap */ commgainextn = - commgainextn; compload0dlt = compload0dlttmp; swapval ^= 1; for (hashnum = 0; hashnum <= hashmsk; hashnum ++) { /* hashsiz no longer valid after resizing, so use hashmsk */ Gnum commgain; if (hashtab[hashnum].mswpnum == ~0) /* If hash slot not used, skip it */ continue; if (hashtab[hashnum].mswpnum != mswpnum) { /* And vertex data not yet recorded */ hashtab[hashnum].mswpnum = mswpnum; /* Record them */ savetab[savenbr].hashnum = hashnum; savetab[savenbr].partval = hashtab[hashnum].partval; savetab[savenbr].compgain = hashtab[hashnum].compgain; savetab[savenbr].commgain = hashtab[hashnum].commgain; savetab[savenbr].commcut = hashtab[hashnum].commcut; savenbr ++; } hashtab[hashnum].partval ^= 1; /* Swap the vertex */ hashtab[hashnum].compgain = - hashtab[hashnum].compgain; commgain = veextax[hashtab[hashnum].vertnum]; if (commgain != 0) { /* If vertex has external cocycle edges */ hashtab[hashnum].commgain += 2 * (1 - 2 * hashtab[hashnum].partval) * commgain; /* Compute new gain */ if (bgraphBipartFmIsTabl (&hashtab[hashnum])) { /* If vertex is linked */ bgraphBipartFmTablDel (tablptr, &hashtab[hashnum]); /* Remove it from table */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnum]); /* Re-link it */ } } } if ((commload < commloadbst) || /* If move improves cost */ ((commload == commloadbst) && (abs (compload0dlt) < abs (compload0dltbst)))) { compload0dltbst = compload0dlt; /* Then record best move done */ commloadbst = commload; commgainextnbst = commgainextn; swapvalbst = swapval; moveflag = 1; movenbr = savenbr = 0; mswpnum ++; } #ifdef SCOTCH_DEBUG_BGRAPH2 #ifdef SCOTCH_DEBUG_BGRAPH3 if (bgraphBipartFmCheck (grafptr, hashtab, hashmsk, swapval, compload0dlt, commload, commgainextn) != 0) { errorPrint ("bgraphBipartFm: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH3 */ #endif /* SCOTCH_DEBUG_BGRAPH2 */ } } } } while ((moveflag != 0) && /* As long as vertices are moved */ (-- passnbr != 0)); /* And we are allowed to loop (TRICK for negative values) */ #ifdef SCOTCH_DEBUG_BGRAPH2 #ifdef SCOTCH_DEBUG_BGRAPH3 if (bgraphBipartFmCheck (grafptr, hashtab, hashmsk, swapval, compload0dlt, commload, commgainextn) != 0) { errorPrint ("bgraphBipartFm: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH3 */ #endif /* SCOTCH_DEBUG_BGRAPH2 */ compsize0dlt = 0; /* No difference to number of vertices yet */ if (swapvalbst != 0) { /* If global swap needed */ Gnum vertnum; compsize0dlt = grafptr->s.vertnbr - 2 * grafptr->compsize0; /* Set difference so as to swap all vertices */ for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) /* Swap all vertices in part array */ grafptr->parttax[vertnum] ^= 1; } while (savenbr -- > 0) { /* Delete exceeding moves */ Gnum hashnum; hashnum = savetab[savenbr].hashnum; hashtab[hashnum].partval = savetab[savenbr].partval; /* Restore vertex data */ hashtab[hashnum].commcut = savetab[savenbr].commcut; } compload0dlt = compload0dltbst; /* Restore best separator parameters */ commload = commloadbst; commgainextn = commgainextnbst; for (hashnum = fronnbr = 0; /* Build new frontier */ hashnum <= hashmsk; hashnum ++) { /* hashsiz no longer valid after resizing, so use hashmsk */ Gnum vertnum; int partval; vertnum = hashtab[hashnum].vertnum; /* Get vertex data from slot */ if (vertnum == ~0) continue; partval = hashtab[hashnum].partval; if (grafptr->parttax[vertnum] != partval) { /* If vertex part changed */ grafptr->parttax[vertnum] = partval; /* Set new part value */ compsize0dlt += (1 - 2 * partval); /* Adjust size of part 0 accordingly */ } if (hashtab[hashnum].commcut > 0) /* If vertex belongs to cut */ grafptr->frontab[fronnbr ++] = vertnum; /* Add vertex to frontier */ } grafptr->fronnbr = fronnbr; grafptr->compload0 = compload0dlt + grafptr->compload0avg; grafptr->compload0dlt = compload0dlt; grafptr->compsize0 += compsize0dlt; grafptr->commload = commload; grafptr->commgainextn = commgainextn; grafptr->bbalval = (double) ((grafptr->compload0dlt < 0) ? (- grafptr->compload0dlt) : grafptr->compload0dlt) / (double) grafptr->compload0avg; #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartFm: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ memFree (hashtab); /* Free group leader */ bgraphBipartFmTablExit (tablptr); return (0); } /* This routine doubles the size all of the arrays ** involved in handling the hash table and hash ** vertex arrays. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int bgraphBipartFmResize ( BgraphBipartFmVertex * restrict * hashtabptr, /*+ Extended vertex array +*/ Gnum * restrict const hashmaxptr, /*+ Size of vertex array +*/ Gnum * const hashmskptr, /*+ Pointer to hash table mask +*/ BgraphBipartFmSave * restrict * savetabptr, /*+ Move array +*/ const Gnum savenbr, /*+ Number of moves recorded +*/ BgraphBipartFmTabl * tablptr, /*+ Gain table +*/ BgraphBipartFmVertex ** const lockptr) /*+ Pointer to locked list +*/ { BgraphBipartFmVertex * restrict hashtab; /* Extended vertex array */ BgraphBipartFmSave * savetab; /* Move backtracking array */ BgraphBipartFmSave * saveold; /* Pointer to translated old save array */ Gnum savenum; Gnum hashold; /* Size of old hash table (half of new) */ Gnum hashsiz; Gnum hashmax; Gnum hashmsk; Gnum hashbas; /* Start index of range of hash indices to move */ Gnum hashnnd; /* End index of range of hash indices to move */ Gnum hashnum; hashmax = *hashmaxptr << 1; /* Compute new sizes */ hashold = *hashmaxptr << 2; hashsiz = *hashmaxptr << 3; hashmsk = hashsiz - 1; #ifdef SCOTCH_DEBUG_BGRAPH2 if (sizeof (BgraphBipartFmVertex) < sizeof (BgraphBipartFmSave)) { /* Should always be true */ errorPrint ("bgraphBipartFmResize: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ if (memReallocGroup ((void *) *hashtabptr, &hashtab, (size_t) (hashsiz * sizeof (BgraphBipartFmVertex)), &savetab, (size_t) (hashsiz * sizeof (BgraphBipartFmSave)), NULL) == NULL) { errorPrint ("bgraphBipartFmResize: out of memory"); return (1); } saveold = (BgraphBipartFmSave *) ((byte *) hashtab + ((byte *) *savetabptr - (byte *) *hashtabptr)); for (savenum = savenbr - 1; savenum >= 0; savenum --) { /* Move save array, in reverse order */ savetab[savenum].commcut = saveold[savenum].commcut; savetab[savenum].commgain = saveold[savenum].commgain; savetab[savenum].compgain = saveold[savenum].compgain; savetab[savenum].partval = saveold[savenum].partval; savetab[savenum].hashnum = hashtab[saveold[savenum].hashnum].vertnum; /* Temporarily translate from hash index to number */ } *hashtabptr = hashtab; *hashmaxptr = hashmax; *hashmskptr = hashmsk; *savetabptr = savetab; memSet (hashtab + hashold, ~0, hashold * sizeof (BgraphBipartFmVertex)); bgraphBipartFmTablFree (tablptr); /* Reset gain table */ *lockptr = NULL; /* Rebuild lock list */ for (hashbas = hashold - 1; hashtab[hashbas].vertnum != ~0; hashbas --) ; /* Start index of first segment to reconsider is last empty slot */ hashnnd = hashold; /* First segment to reconsider ends at the end of the old array */ while (hashnnd != hashbas) { /* For each of the two segments to consider */ for (hashnum = hashbas; hashnum < hashnnd; hashnum ++) { /* Re-compute position of vertices in new table */ Gnum vertnum; vertnum = hashtab[hashnum].vertnum; if (vertnum != ~0) { /* If hash slot used */ Gnum hashnew; for (hashnew = (vertnum * BGRAPHBIPARTFMHASHPRIME) & hashmsk; ; hashnew = (hashnew + 1) & hashmsk) { if (hashnew == hashnum) /* If hash slot is the same */ break; /* There is nothing to do */ if (hashtab[hashnew].vertnum == ~0) { /* If new slot is empty */ #ifdef SCOTCH_DEBUG_BGRAPH2 if ((hashnew > hashnum) && (hashnew < hashnnd)) { /* If vertex is not moved either before its old position or after the end of the segment */ errorPrint ("bgraphBipartFmResize: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ hashtab[hashnew] = hashtab[hashnum]; /* Copy data to new slot */ hashtab[hashnum].mswpnum = ~0; /* TRICK: not tested at creation */ hashtab[hashnum].vertnum = ~0; /* Make old slot empty */ break; } } if (bgraphBipartFmIsTabl (&hashtab[hashnew])) /* If vertex was linked, re-link it */ bgraphBipartFmTablAdd (tablptr, &hashtab[hashnew]); else if (bgraphBipartFmIsUsed (&hashtab[hashnew])) /* Re-lock used vertices */ bgraphBipartFmChain (lockptr, &hashtab[hashnew]); /* Lock it */ } } hashnnd = hashbas; /* End of second segment to consider is start of first one */ hashbas = 0; /* Start of second segment is beginning of array */ } /* After second segment, hashbas = hashnnd = 0 and loop stops */ for (savenum = 0; savenum < savenbr; savenum ++) { Gnum vertnum; Gnum hashnum; vertnum = savetab[savenum].hashnum; /* Get vertex number temporarily saved */ for (hashnum = (vertnum * BGRAPHBIPARTFMHASHPRIME) & hashmsk; hashtab[hashnum].vertnum != vertnum; hashnum = (hashnum + 1) & hashmsk) { #ifdef SCOTCH_DEBUG_BGRAPH2 if (hashtab[hashnum].vertnum == ~0) { errorPrint ("bgraphBipartFmResize: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ } savetab[savenum].hashnum = hashnum; /* Set new hash table index */ } return (0); } /* This routine checks the consistency of ** the hash structures. ** It returns: ** - 0 : in case of success. ** - !0 : in case of error. */ #ifdef SCOTCH_DEBUG_BGRAPH3 static int bgraphBipartFmCheck ( const Bgraph * restrict const grafptr, const BgraphBipartFmVertex * restrict const hashtab, const Gnum hashmsk, const int swapval, const Gnum compload0dlt, const Gnum commload, const Gnum commgainextn) { Gnum domndist; Gnum hashnum; Gnum compload0tmp; Gnum commloaddlttmp; /* Difference between old and current communication load */ Gnum commloadextndlttmp; Gnum commgainextntmp; const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Gnum * restrict const veextax = grafptr->veextax; domndist = grafptr->domndist; compload0tmp = (swapval == 0) ? grafptr->compload0 : (grafptr->s.velosum - grafptr->compload0); commloaddlttmp = 0; /* No difference yet */ commloadextndlttmp = swapval * grafptr->commgainextn; commgainextntmp = (1 - 2 * swapval) * grafptr->commgainextn; for (hashnum = 0; hashnum <= hashmsk; hashnum ++) { /* For all vertex slots */ Gnum vertnum; Gnum veloval; Gnum veexval; Gnum edgenum; int partval; int partold; Gnum commcut; Gnum commgain; Gnum commgainextn; vertnum = hashtab[hashnum].vertnum; if (vertnum == ~0) /* If unallocated slot */ continue; /* Skip to next slot */ veloval = (velotax != NULL) ? velotax[vertnum] : 1; partval = hashtab[hashnum].partval; if ((partval < 0) || (partval > 1)) { errorPrint ("bgraphBipartFmCheck: invalid vertex part value"); return (1); } if (hashtab[hashnum].compgain != (2 * partval - 1) * veloval) { errorPrint ("bgraphBipartFmCheck: invalid vertex computation gain"); return (1); } partold = grafptr->parttax[vertnum] ^ swapval; veexval = (veextax != NULL) ? veextax[vertnum] : 0; compload0tmp += (partval ^ partold) * (1 - 2 * partval) * veloval; commgainextn = (1 - 2 * partval) * veexval; commgainextntmp += (partval ^ partold) * commgainextn * 2; commloadextndlttmp -= (partval ^ partold) * commgainextn; commcut = commgain = 0; for (edgenum = verttax[vertnum]; /* For all neighbors */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum edloval; Gnum vertend; Gnum hashend; int partend; int partond; int partdlt; vertend = edgetax[edgenum]; partond = grafptr->parttax[vertend] ^ swapval; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; for (hashend = (vertend * BGRAPHBIPARTFMHASHPRIME) & hashmsk; ; hashend = (hashend + 1) & hashmsk) { if (hashtab[hashend].vertnum == vertend) { /* If end vertex found */ partend = hashtab[hashend].partval; break; } if (hashtab[hashend].vertnum == ~0) { /* If end vertex not present */ partend = partond; /* Keep old end part */ break; } } partdlt = partval ^ partend; commcut += partdlt; commgain += (1 - 2 * partdlt) * edloval; commloaddlttmp += (partdlt - (partold ^ partond)) * edloval; /* Will account twice for difference of edge loads */ } if (commcut != hashtab[hashnum].commcut) { errorPrint ("bgraphBipartFmCheck: invalid vertex cut value"); return (1); } if ((commgain * domndist + commgainextn) != hashtab[hashnum].commgain) { errorPrint ("bgraphBipartFmCheck: invalid vertex communication gain value"); return (1); } } if ((compload0tmp - grafptr->compload0avg) != compload0dlt) { errorPrint ("bgraphBipartFmCheck: invalid computation load"); return (1); } if ((grafptr->commload + (commloaddlttmp / 2) * domndist) != (commload - commloadextndlttmp)) { errorPrint ("bgraphBipartFmCheck: invalid communication load"); return (1); } if (commgainextntmp != commgainextn) { errorPrint ("bgraphBipartFmCheck: invalid external communication gain"); return (1); } return (0); } #endif /* SCOTCH_DEBUG_BGRAPH3 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_fm.h000066400000000000000000000262051514310134000273610ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2016,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_fm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for our Improved Fiduccia-Mattheyses **/ /** bipartitioning algorithm. **/ /** **/ /** DATES : # Version 1.0 : from : 30 sep 1993 **/ /** to : 09 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 13 apr 1994 **/ /** # Version 2.0 : from : 04 jul 1994 **/ /** to : 25 nov 1994 **/ /** # Version 3.0 : from : 06 jul 1995 **/ /** to : 06 jul 1995 **/ /** # Version 3.1 : from : 06 nov 1995 **/ /** to : 07 jun 1996 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 12 mar 1999 **/ /** # Version 4.0 : from : 27 aug 2004 **/ /** to : 27 aug 2004 **/ /** # Version 6.0 : from : 23 feb 2011 **/ /** to : 27 aug 2016 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing vertex numbers. +*/ #define BGRAPHBIPARTFMHASHPRIME 17 /*+ Prime number for hashing +*/ /* ** The type and structure definitions. */ /*+ Move type. +*/ typedef enum BgraphBipartFmType_ { BGRAPHBIPARTFMTYPEALL, /*+ All vertices +*/ BGRAPHBIPARTFMTYPEBOUNDARY /*+ Boundary vertices only +*/ } BgraphBipartFmType; /*+ This structure holds the method parameters. +*/ typedef struct BgraphBipartFmParam_ { INT movenbr; /*+ Maximum number of uneffective moves that can be done +*/ INT passnbr; /*+ Number of passes to be performed (-1 : infinite) +*/ double deltval; /*+ Maximum weight imbalance ratio +*/ BgraphBipartFmType typeval; /*+ Whether considered vertices are boundary or all +*/ } BgraphBipartFmParam; #ifdef SCOTCH_BGRAPH_BIPART_FM /* Private part of the module */ /*+ The hash vertex structure. For trick reasons, the gain table data structure must be the first field of the structure. +*/ #ifdef SCOTCH_TABLE_GAIN typedef GainTabl * BgraphBipartFmTabl; typedef GainLink BgraphBipartFmLink; #else /* SCOTCH_TABLE_GAIN */ typedef FiboHeap BgraphBipartFmTabl; typedef FiboNode BgraphBipartFmLink; #endif /* SCOTCH_TABLE_GAIN */ typedef struct BgraphBipartFmVertex_ { BgraphBipartFmLink gainlink; /*+ Gain link: FIRST +*/ Gnum vertnum; /*+ Number of vertex +*/ int partval; /*+ Vertex part +*/ Gnum compgain; /*+ Computation gain +*/ Gnum commgain; /*+ Communication gain +*/ Gnum commcut; /*+ Cut edges +*/ Gnum mswpnum; /*+ Number of move sweep when data recorded +*/ } BgraphBipartFmVertex; /*+ The move recording structure. +*/ typedef struct BgraphBipartFmSave_ { Gnum hashnum; /*+ Number of vertex slot +*/ int partval; /*+ Vertex part +*/ Gnum compgain; /*+ Computation gain +*/ Gnum commgain; /*+ Communication gain +*/ Gnum commcut; /*+ Cut edges +*/ } BgraphBipartFmSave; /* ** The function prototypes. */ static BgraphBipartFmVertex * bgraphBipartFmTablGet (BgraphBipartFmTabl * restrict const, const Gnum, const Gnum, const Gnum); static int bgraphBipartFmResize (BgraphBipartFmVertex * restrict *, Gnum * restrict const, Gnum * const, BgraphBipartFmSave * restrict *, const Gnum, BgraphBipartFmTabl * const, BgraphBipartFmVertex ** const); #ifdef SCOTCH_DEBUG_BGRAPH3 static int bgraphBipartFmCheck (const Bgraph * restrict const, const BgraphBipartFmVertex * restrict const, const Gnum, const int, const Gnum, const Gnum, const Gnum); #endif /* SCOTCH_DEBUG_BGRAPH3 */ #endif /* SCOTCH_BGRAPH_BIPART_FM */ int bgraphBipartFm (Bgraph * restrict const, const BgraphBipartFmParam * const); /* ** The macro definitions. */ #ifdef SCOTCH_TABLE_GAIN /*+ Gain table subbits. +*/ #define BGRAPHBIPARTFMSUBBITS 4 /** Gain table vertex status. **/ #define BGRAPHBIPARTFMSTATEFREE ((GainLink *) 0) /*+ Vertex in initial state +*/ #define BGRAPHBIPARTFMSTATEUSED ((GainLink *) 1) /*+ Swapped vertex +*/ #define BGRAPHBIPARTFMSTATELINK ((GainLink *) 2) /*+ Currently in gain table if higher +*/ /*+ Service routines. +*/ #define bgraphBipartFmTablInit(t) (((*(t)) = gainTablInit (GAINMAX, BGRAPHBIPARTFMSUBBITS)) == NULL) #define bgraphBipartFmTablFree(t) gainTablFree (*(t)) #define bgraphBipartFmTablExit(t) do { \ if (*(t) != NULL) \ gainTablExit (*(t)); \ } while (0) #define bgraphBipartFmTablAdd(t,v) gainTablAdd ((*(t)), &(v)->gainlink, (v)->commgain) #define bgraphBipartFmTablDel(t,v) gainTablDel ((*(t)), &(v)->gainlink) #define bgraphBipartFmIsFree(v) ((v)->gainlink.next == BGRAPHBIPARTFMSTATEFREE) #define bgraphBipartFmIsTabl(v) ((v)->gainlink.next >= BGRAPHBIPARTFMSTATELINK) #define bgraphBipartFmIsUsed(v) ((v)->gainlink.next == BGRAPHBIPARTFMSTATEUSED) #define bgraphBipartFmSetFree(v) do { \ (v)->gainlink.next = BGRAPHBIPARTFMSTATEFREE; \ } while (0) #define bgraphBipartFmSetUsed(v) do { \ (v)->gainlink.next = BGRAPHBIPARTFMSTATEUSED; \ } while (0) #define bgraphBipartFmChain(l,v) do { \ (v)->gainlink.prev = (GainLink *) *(l); \ *(l) = (v); \ } while (0) #define bgraphBipartFmChainNext(v) ((BgraphBipartFmVertex *) (v)->gainlink.prev) #else /* SCOTCH_TABLE_GAIN */ /** Gain table vertex status. **/ #define BGRAPHBIPARTFMSTATEFREE ((FiboNode *) 0) /*+ Vertex in initial state +*/ #define BGRAPHBIPARTFMSTATEUSED ((FiboNode *) 1) /*+ Swapped vertex +*/ #define BGRAPHBIPARTFMSTATELINK ((FiboNode *) 2) /*+ Currently in gain table if higher +*/ /*+ Service routines. +*/ #define bgraphBipartFmTablInit(t) (fiboHeapInit ((t), bgraphBipartFmCmpFunc)) #define bgraphBipartFmTablFree(t) fiboHeapFree (t) #define bgraphBipartFmTablExit(t) fiboHeapExit (t) #define bgraphBipartFmTablAdd(t,v) fiboHeapAdd ((t), &(v)->gainlink) #define bgraphBipartFmTablDel(t,v) fiboHeapDel ((t), &(v)->gainlink) #define bgraphBipartFmIsFree(v) ((v)->gainlink.linkdat.nextptr == BGRAPHBIPARTFMSTATEFREE) #define bgraphBipartFmIsTabl(v) ((v)->gainlink.linkdat.nextptr >= BGRAPHBIPARTFMSTATELINK) #define bgraphBipartFmIsUsed(v) ((v)->gainlink.linkdat.nextptr == BGRAPHBIPARTFMSTATEUSED) #define bgraphBipartFmSetFree(v) do { \ (v)->gainlink.linkdat.nextptr = BGRAPHBIPARTFMSTATEFREE; \ } while (0) #define bgraphBipartFmSetUsed(v) do { \ (v)->gainlink.linkdat.nextptr = BGRAPHBIPARTFMSTATEUSED; \ } while (0) #define bgraphBipartFmChain(l,v) do { \ (v)->gainlink.linkdat.prevptr = (FiboNode *) *(l); \ *(l) = (v); \ } while (0) #define bgraphBipartFmChainNext(v) ((BgraphBipartFmVertex *) (v)->gainlink.linkdat.prevptr) #endif /* SCOTCH_TABLE_GAIN */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_ga.c000066400000000000000000000362211514310134000273400ustar00rootroot00000000000000/* Copyright 2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_ga.c **/ /** **/ /** AUTHOR : Connor MAYON **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a bipartition of **/ /** a bipartition graph by using a **/ /** genetic algorithm. **/ /** **/ /** NOTES : # This algorithm has been designed to **/ /** work on band graphs only, for which **/ /** the two anchor vertices are the two **/ /** last vertices, the before-last as **/ /** anchor of part 0, and the last as **/ /** anchor of part 1. **/ /** **/ /** DATES : # Version 7.0 : from : 15 feb 2023 **/ /** to : 18 apr 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_ga.h" //#define BGRAPHBIPARTGANOTHREAD #define DEMENBR(p,t) ((((p) + (2 * (t)) - 1) / (2 * (t))) * 2) /* Even number and multiple of number of threads */ /************************/ /* */ /* The sorting routine. */ /* */ /************************/ /* This routine sorts an array of bgraphBipartGaSort ** values in ascending order by their cost. ** By nature of the sorting algorithm, data are left in ** place in case of equality. ** It returns: ** - VOID : in all cases. */ #define INTSORTQUAL static #define INTSORTNAME bgraphBipartGaSort #define INTSORTSIZE (sizeof (BgraphBipartGaSort)) #define INTSORTSWAP(p,q) do { \ BgraphBipartGaSort t; \ t = *((BgraphBipartGaSort *) (p)); \ *((BgraphBipartGaSort *) (p)) = *((BgraphBipartGaSort *) (q)); \ *((BgraphBipartGaSort *) (q)) = t; \ } while (0) #define INTSORTCMP(p,q) ((((BgraphBipartGaSort *) (p))->cmloval < ((BgraphBipartGaSort *) (q))->cmloval) || \ ((((BgraphBipartGaSort *) (p))->cmloval == ((BgraphBipartGaSort *) (q))->cmloval) && \ (((BgraphBipartGaSort *) (p))->cplodlt < ((BgraphBipartGaSort *) (q))->cplodlt))) #include "common_sort.c" #undef INTSORTQUAL #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /******************************/ /* */ /* The threaded loop routine. */ /* */ /******************************/ /* This routine sorts and mates partions ** on the given part of the bipartition ** graph. ** It returns: ** - 0 : if algorithm went up to last pass. ** - !0 : on error. */ static void bgraphBipartGaLoop ( ThreadDescriptor * restrict const descptr, BgraphBipartGaData * restrict const loopptr) { GraphPart * demetab; /* Parent and offspring local population arrays */ GraphPart * demeptr[2]; /* Pointers to current parent and offspring sub-arrays */ INT passnum; Gnum partnum; #ifndef BGRAPHBIPARTGANOTHREAD const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); #else /* BGRAPHBIPARTGANOTHREAD */ const int thrdnbr = 1; const int thrdnum = 0; #endif /* BGRAPHBIPARTGANOTHREAD */ Bgraph * restrict const grafptr = loopptr->grafptr; BgraphBipartGaSort * const sorttab = loopptr->sorttab; /* [norestrict: async] */ Gnum * const matetab = loopptr->matetab; /* [norestrict: async] */ const Gnum baseval = grafptr->s.baseval; const Gnum vertnbr = grafptr->s.vertnbr; const Gnum popunbr = loopptr->popunbr; const Gnum compload0min = grafptr->compload0min; const Gnum compload0max = grafptr->compload0max; const Gnum demenbr = DEMENBR (popunbr, thrdnbr); /* Number of individuals in local deme */ const Gnum demesiz = demenbr * vertnbr; /* Size of each deme array (current and new) */ const Gnum sortnbr = demenbr * thrdnbr; /* Size of global sort array for thread 0 */ const Gnum sortbas = demenbr * thrdnum; /* Start index in sort array for the thread */ const Gnum sortnnd = sortbas + demenbr; /* End index in sort array for the thread */ const Gnum cpl0avg = grafptr->compload0avg; /* Average vertex load in part 0 */ const Gnum cmloadj = grafptr->s.edlosum * grafptr->domndist; /* Penalty for imbalance */ if ((demetab = (GraphPart *) memAlloc ((size_t) (demesiz * 2 * sizeof (GraphPart)))) == NULL) { errorPrint ("bgraphBipartGa: out of memory (1)"); loopptr->abrtval = 1; } #ifndef BGRAPHBIPARTGANOTHREAD threadBarrier (descptr); /* Check that local memory allocation went well */ #endif /* BGRAPHBIPARTGANOTHREAD */ if (loopptr->abrtval == 1) { /* If any process decided to quit */ if (demetab != NULL) /* Free local array if necessary */ memFree (demetab); return; } demeptr[0] = demetab; /* Point to initial and future demes */ demeptr[1] = demetab + demesiz; partnum = demesiz; if (thrdnum == 0) { /* Insert initial solution in last slot of deme of thread 0 */ memCpy (demetab + demesiz - vertnbr, grafptr->parttax + baseval, vertnbr * sizeof (GraphPart)); partnum -= vertnbr; } while (partnum > 0) { /* Fill (remaining) deme area with random values */ UINT randval; /* Integer random value to slice into bits */ Gnum randnbr; /* Number of slices to use in a random value */ randval = contextIntRandVal2 (grafptr->contptr); /* Get UINT random value */ randnbr = MIN (sizeof (UINT), partnum); /* Compute useable slices */ while (randnbr -- > 0) { demetab[-- partnum] = (GraphPart) (randval & 1); /* Use lowest bit value as part value */ randval >>= 1; /* Shift to next bit */ } } for (passnum = loopptr->passnbr; ; passnum --) { GraphPart * demetmp; GraphPart * parttab; Gnum sortnum; for (sortnum = sortbas, parttab = demeptr[0]; /* Compute cost of individuals in current deme */ sortnum < sortnnd; sortnum ++, parttab += vertnbr) { Gnum ver1nbr; /* Number of vertices in part 1 */ Gnum cpl1val; /* Load of part 1 */ Gnum cpl0val; /* Load of part 0 */ Gnum cmlival; /* Internal communication load */ Gnum cmleval; /* External communication load */ Gnum cxgnval; /* Communication gain if all swapped */ Gnum cmloval; /* Communication load */ bgraphCost2 (grafptr, parttab - baseval, NULL, NULL, &cpl1val, &ver1nbr, &cmlival, &cmleval, &cxgnval); /* Compute cost of individual */ cpl0val = grafptr->s.velosum - cpl1val; cmloval = cmlival * grafptr->domndist + cmleval; sorttab[sortnum].cmloval = ((cpl0val >= compload0min) && (cpl0val <= compload0max)) ? cmloval : (cmloval + cmloadj); sorttab[sortnum].cplodlt = abs (cpl0val - cpl0avg); sorttab[sortnum].parttab = parttab; } #ifndef BGRAPHBIPARTGANOTHREAD threadBarrier (descptr); #endif /* BGRAPHBIPARTGANOTHREAD */ if (thrdnum == 0) /* Main thread sorts the individuals by ascending cost */ bgraphBipartGaSort (loopptr->sorttab, sortnbr); if (passnum < 0) /* Exit loop for last generation */ break; if (thrdnum == 0) { Gnum sortold; Gnum sortnew; for (sortold = 0, sortnew = (3 * sortnbr) / 4; /* Replace 1/4 of the least fit individuals by 1/4 of best fit */ sortnew < sortnbr; ) sorttab[sortnew ++] = sorttab[sortold ++]; intAscn (loopptr->matetab, sortnbr, 0); /* Generate permutation for mating array */ intPerm (loopptr->matetab, sortnbr, grafptr->contptr); intSort2asc1 (loopptr->matetab, sortnbr / 2); } #ifndef BGRAPHBIPARTGANOTHREAD threadBarrier (descptr); #endif /* BGRAPHBIPARTGANOTHREAD */ for (sortnum = sortbas, parttab = demeptr[1]; sortnum < sortnnd; sortnum += 2) { /* Create offsprings */ Gnum vecridx; /* Crossover point for individuals to be mated */ Gnum vemuidx; /* Mutation point for individuals */ vecridx = 1 + contextIntRandVal (grafptr->contptr, vertnbr - 2); /* Crossing-over preserves at least one vertex in each segment */ memCpy (parttab, sorttab[matetab[sortnum]].parttab, vecridx); memCpy (parttab + vecridx, sorttab[matetab[sortnum + 1]].parttab + vecridx, vertnbr - vecridx); parttab += vertnbr; /* Move to next offspring */ memCpy (parttab, sorttab[matetab[sortnum + 1]].parttab, vecridx); memCpy (parttab + vecridx, sorttab[matetab[sortnum]].parttab + vecridx, vertnbr - vecridx); vemuidx = contextIntRandVal (grafptr->contptr, vertnbr); /* Perform mutation on every other offspring */ parttab[vemuidx] ^= 1; parttab += vertnbr; /* Move to next offspring */ } demetmp = demeptr[0]; /* Swap pointers for current and new demes */ demeptr[0] = demeptr[1]; demeptr[1] = demetmp; } if (thrdnum == 0) { if ((loopptr->sorttab[0].cmloval < grafptr->commload) || /* If most fit offspring has lower cost than current solution */ ((loopptr->sorttab[0].cmloval == grafptr->commload) && (loopptr->sorttab[0].cplodlt < abs (grafptr->compload0dlt)))) { memCpy (grafptr->parttax + baseval, sorttab[0].parttab, vertnbr * sizeof (GraphPart)); bgraphCost (grafptr); } } #ifndef BGRAPHBIPARTGANOTHREAD threadBarrier (descptr); /* Make sure champion is copied before local memory is freed */ #endif /* BGRAPHBIPARTGANOTHREAD */ memFree (demetab); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int bgraphBipartGa ( Bgraph * restrict const grafptr, /* Active graph */ const BgraphBipartGaParam * const paraptr) /* Method parameters */ { BgraphBipartGaData loopdat; #ifndef BGRAPHBIPARTGANOTHREAD const int thrdnbr = contextThreadNbr (grafptr->contptr); #else /* BGRAPHBIPARTGANOTHREAD */ const int thrdnbr = 1; #endif /* BGRAPHBIPARTGANOTHREAD */ const Gnum demenbr = DEMENBR (paraptr->popunbr, thrdnbr); /* Size of thread local deme */ const Gnum sortnbr = demenbr * thrdnbr; /* Overall number of individuals to sort */ if (grafptr->s.vertnbr < 2) /* If less than two vertices, no crossing-over possible and nothing relevant to do */ return (0); if (memAllocGroup ((void **) (void *) &loopdat.thrdtab, (size_t) (thrdnbr * sizeof (BgraphBipartGaThread)), &loopdat.sorttab, (size_t) (sortnbr * sizeof (BgraphBipartGaSort)), &loopdat.matetab, (size_t) (sortnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("bgraphBipartGa: out of memory (1)"); return (1); } loopdat.grafptr = grafptr; loopdat.passnbr = paraptr->passnbr; loopdat.popunbr = paraptr->popunbr; loopdat.abrtval = 0; /* No reason to abort (yet) */ #ifndef BGRAPHBIPARTGANOTHREAD contextThreadLaunch (grafptr->contptr, (ThreadFunc) bgraphBipartGaLoop, (void *) &loopdat); #else /* BGRAPHBIPARTGANOTHREAD */ bgraphBipartGaLoop (NULL, &loopdat); #endif /* BGRAPHBIPARTGANOTHREAD */ memFree (loopdat.thrdtab); /* Free group leader */ #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartGa: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); /* Genetic Algorithm partition successful */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_ga.h000066400000000000000000000115171514310134000273460ustar00rootroot00000000000000/* Copyright 2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_ga.h **/ /** **/ /** AUTHOR : Connor MAYON **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the function **/ /** declarations for the genetic algorithm **/ /** bipartitioning method. **/ /** **/ /** DATES : # Version 7.0 : from : 15 feb 2023 **/ /** to : 31 may 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct BgraphBipartGaParam_ { INT passnbr; /*+ Number of generations +*/ INT popunbr; /*+ Number of individuals +*/ } BgraphBipartGaParam; /*+ The thread-specific data block. +*/ typedef struct BgraphBipartGaThread_ { Gnum fronnnd[2]; /*+ After-last frontier vertex index; [2] for scan +*/ Gnum compload1[2]; /*+ State return values to aggregate +*/ Gnum compsize1[2]; Gnum commloadextn[2]; Gnum commloadintn[2]; Gnum commgainextn[2]; Gnum veexsum; /*+ Area for reducing sums of external gains +*/ Gnum veexsum1; } BgraphBipartGaThread; /*+ The sort structure. +*/ typedef struct BgraphBipartGaSort_ { Gnum cmloval; /*+ Communication load +*/ Gnum cplodlt; /*+ Absolute value of load imbalance +*/ GraphPart * parttab; /*+ Pointer to part array +*/ } BgraphBipartGaSort; /*+ The loop routine parameter structure. It contains the thread-independent data. +*/ typedef struct BgraphBipartGaData_ { Bgraph * grafptr; /*+ Graph to work on +*/ BgraphBipartGaSort * sorttab; /*+ Shared array to sort individualsby fitness +*/ Gnum * matetab; /*+ Mating array, of pairs of indices in sorttab +*/ BgraphBipartGaThread * thrdtab; /*+ Array of thread-specific data +*/ INT passnbr; /*+ Number of generations +*/ INT popunbr; /*+ Number of individuals per thread +*/ INT abrtval; /*+ Abort value +*/ } BgraphBipartGaData; /* ** The function prototypes. */ int bgraphBipartGa (Bgraph * restrict const, const BgraphBipartGaParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_gg.c000066400000000000000000000405611514310134000273500ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2011,2013,2014,2016,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_gg.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Luca SCARANO (v3.1) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module computes a bipartition of **/ /** a bipartition graph by multiple runs of **/ /** the greedy graph growing algorithm. **/ /** **/ /** DATES : # Version 3.1 : from : 07 jan 1996 **/ /** to : 07 jun 1996 **/ /** # Version 3.2 : from : 20 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 09 jan 2004 **/ /** to : 01 sep 2004 **/ /** # Version 5.0 : from : 02 jan 2007 **/ /** to : 04 feb 2007 **/ /** # Version 5.1 : from : 21 nov 2007 **/ /** to : 22 feb 2011 **/ /** # Version 6.0 : from : 23 feb 2011 **/ /** to : 01 may 2016 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_BGRAPH_BIPART_GG #define SCOTCH_TABLE_GAIN #include "module.h" #include "common.h" #include "gain.h" #include "fibo.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_gg.h" /* ** The static variables. */ static const Gnum bgraphbipartggloadone = 1; /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ #ifndef SCOTCH_TABLE_GAIN /* bgraphBipartFmCmpFunc(a,b) must return a negative ** number if a is "better" than b. The smaller, the ** better. */ static int bgraphBipartGgCmpFunc ( const FiboNode * const data0ptr, /* TRICK: BgraphBipartFmLink is FIRST in BgraphBipartFmVertex */ const FiboNode * const data1ptr) { const BgraphBipartGgVertex * const node0ptr = (BgraphBipartGgVertex *) data0ptr; const BgraphBipartGgVertex * const node1ptr = (BgraphBipartGgVertex *) data1ptr; if (node0ptr->commgain < node1ptr->commgain) return (-1); if (node0ptr->commgain > node1ptr->commgain) return (1); return (0); } #endif /* SCOTCH_TABLE_GAIN */ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartGg ( Bgraph * restrict const grafptr, /*+ Active graph +*/ const BgraphBipartGgParam * const paraptr) /*+ Method parameters +*/ { BgraphBipartGgTabl tabldat; /* Gain table */ BgraphBipartGgVertex * vexxtax; /* Extended vertex array [norestrict] */ BgraphBipartGgVertex * vexxptr; /* Pointer to current vertex to swap */ Gnum * restrict permtab; /* Permutation table for finding new roots */ Gnum permnum; /* Current permutation index */ const Gnum * restrict velobax; /* Data for handling of optional arrays */ Gnum velomsk; const Gnum * edlobax; /* Pointer to array or dummy value [norestrict] */ Gnum edlomsk; byte * restrict flagtax; Gnum vertnum; Gnum fronnum; Gnum compsize1; Gnum commgainextn; INT passnum; Anum domndist; Anum domndist2; /* Two times domndist */ const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * const edlotax = grafptr->s.edlotax; /* [norestrict] */ const Gnum * restrict const veextax = grafptr->veextax; if ((bgraphBipartGgTablInit (&tabldat) != 0) || ((vexxtax = (BgraphBipartGgVertex *) memAlloc (grafptr->s.vertnbr * sizeof (BgraphBipartGgVertex))) == NULL)) { errorPrint ("bgraphBipartGg: out of memory (1)"); bgraphBipartGgTablExit (&tabldat); return (1); } vexxtax -= grafptr->s.baseval; /* Base access to vexxtax */ permtab = NULL; /* Do not allocate permutation array yet */ domndist = grafptr->domndist; domndist2 = grafptr->domndist * 2; if (edlotax == NULL) { /* If graph has no edge weights */ Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum commload; commload = (vendtax[vertnum] - verttax[vertnum]) * domndist; vexxtax[vertnum].commgain0 = (veextax == NULL) ? commload : commload + veextax[vertnum]; } edlobax = &bgraphbipartggloadone; edlomsk = 0; } else { /* Graph has edge weights */ Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum commload; Gnum edgenum; for (edgenum = verttax[vertnum], commload = 0; edgenum < vendtax[vertnum]; edgenum ++) commload += edlotax[edgenum]; commload *= domndist; vexxtax[vertnum].commgain0 = (veextax == NULL) ? commload : commload + veextax[vertnum]; } edlobax = edlotax; edlomsk = ~((Gnum) 0); /* TRICK: assume that ~0 is -1 */ } if (grafptr->s.velotax == NULL) { /* Set accesses to optional arrays */ velobax = &bgraphbipartggloadone; /* In case vertices not weighted (least often) */ velomsk = 0; } else { velobax = grafptr->s.velotax; velomsk = ~((Gnum) 0); } for (passnum = 0; passnum < paraptr->passnbr; passnum ++) { /* For all passes */ Gnum vertnum; Gnum commload; Gnum compload0dlt; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { /* Reset extended vertex array */ bgraphBipartGgSetFree (&vexxtax[vertnum]); vexxtax[vertnum].commgain = vexxtax[vertnum].commgain0; } bgraphBipartGgTablFree (&tabldat); /* Reset gain table */ permnum = 0; /* No permutation built yet */ compload0dlt = grafptr->s.velosum - grafptr->compload0avg; /* Reset bipartition parameters */ commload = grafptr->commloadextn0; vexxptr = vexxtax + (grafptr->s.baseval + contextIntRandVal (grafptr->contptr, grafptr->s.vertnbr)); /* Randomly select first root vertex */ do { /* For all root vertices, till balance */ #ifdef SCOTCH_TABLE_GAIN vexxptr->gainlink.next = /* TRICK: allow deletion of root vertex */ vexxptr->gainlink.prev = (GainLink *) vexxptr; #ifdef SCOTCH_DEBUG_BGRAPH2 vexxptr->gainlink.tabl = NULL; #endif /* SCOTCH_DEBUG_BGRAPH2 */ #endif /* SCOTCH_TABLE_GAIN */ do { /* As long as vertices can be retrieved */ const Gnum * restrict edgeptr; /* Pointer to current end vertex index */ const Gnum * restrict edgetnd; /* Pointer to end of edge array */ const Gnum * restrict edloptr; /* Pointer to current edge load */ Gnum vertnum; /* Number of current vertex */ Gnum veloval; /* Load of selected vertex */ #ifndef SCOTCH_TABLE_GAIN if (bgraphBipartGgIsTabl (vexxptr)) #endif /* SCOTCH_TABLE_GAIN */ bgraphBipartGgTablDel (&tabldat, vexxptr); /* Remove vertex from table */ vertnum = (Gnum) (vexxptr - vexxtax); /* Get number of selected vertex */ veloval = velobax[vertnum & velomsk]; if ((abs (compload0dlt - veloval) >= abs (compload0dlt)) && /* If swapping would cause imbalance */ (veloval > 0)) { /* And not a zero weight vertex */ #ifndef SCOTCH_TABLE_GAIN bgraphBipartGgNext (vexxptr) = BGRAPHBIPARTGGSTATELINK; /* Vertex belongs to frontier of part 0 */ #endif /* SCOTCH_TABLE_GAIN */ permnum = grafptr->s.vertnbr; /* Terminate swapping process */ vexxptr = NULL; break; } bgraphBipartGgSetUsed (vexxptr); /* Mark it as swapped */ compload0dlt -= veloval; /* Update partition parameters */ commload += vexxptr->commgain; for (edgeptr = edgetax + verttax[vertnum], /* (Re-)link neighbors */ edgetnd = edgetax + vendtax[vertnum], edloptr = edlobax + (verttax[vertnum] & edlomsk); edgeptr < edgetnd; edgeptr ++, edloptr -= edlomsk) { /* TRICK: assume that ~0 is -1 */ BgraphBipartGgVertex * vexxend; /* Pointer to end vertex of current edge */ vexxend = vexxtax + *edgeptr; /* Point to end vertex */ if (! bgraphBipartGgIsUsed (vexxend)) { /* If vertex needs to be updated */ vexxend->commgain -= *edloptr * domndist2; /* Adjust gain value */ if (bgraphBipartGgIsTabl (vexxend)) /* If vertex is linked */ bgraphBipartGgTablDel (&tabldat, vexxend); /* Remove it from table */ bgraphBipartGgTablAdd (&tabldat, vexxend); /* (Re-)link vertex in table */ } } } while ((vexxptr = (BgraphBipartGgVertex *) bgraphBipartGgTablFrst (&tabldat)) != NULL); if (permnum == 0) { /* If permutation has not been built yet */ if (permtab == NULL) { /* If permutation array not allocated yet */ if ((permtab = (Gnum *) memAlloc (grafptr->s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("bgraphBipartGg: out of memory (3)"); memFree (vexxtax + grafptr->s.baseval); bgraphBipartGgTablExit (&tabldat); return (1); } intAscn (permtab, grafptr->s.vertnbr, grafptr->s.baseval); /* Initialize based permutation array */ } intPerm (permtab, grafptr->s.vertnbr, grafptr->contptr); /* Build random permutation */ } for ( ; permnum < grafptr->s.vertnbr; permnum ++) { /* Find next root vertex */ if (bgraphBipartGgIsFree (&vexxtax[permtab[permnum]])) { vexxptr = vexxtax + permtab[permnum ++]; break; } } } while (vexxptr != NULL); if ((passnum == 0) || /* If first try */ ( (grafptr->commload > commload) || /* Or if better solution reached */ ((grafptr->commload == commload) && (abs (grafptr->compload0dlt) > abs (compload0dlt))))) { Gnum vertnum; grafptr->compload0dlt = compload0dlt; /* Set graph parameters */ grafptr->commload = commload; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) /* Copy bipartition state with flag 2 for tabled vertices */ grafptr->parttax[vertnum] = (bgraphBipartGgIsTabl (&vexxtax[vertnum])) ? 2 : (GraphPart) ((intptr_t) bgraphBipartGgNext (&vexxtax[vertnum])); } } flagtax = (byte *) (vexxtax + grafptr->s.baseval) - grafptr->s.baseval; /* Re-use extended vertex array for flag array */ memSet (flagtax + grafptr->s.baseval, ~0, grafptr->s.vertnbr * sizeof (byte)); for (vertnum = grafptr->s.baseval, fronnum = 0, compsize1 = 0, commgainextn = grafptr->commgainextn0; vertnum < grafptr->s.vertnnd; vertnum ++) { int partval; partval = grafptr->parttax[vertnum]; if (partval > 1) { /* If vertex belongs to frontier of part 0 */ Gnum edgenum; Gnum frontmp; /* Temporary count value for frontier */ grafptr->frontab[fronnum ++] = vertnum; /* Then it belongs to the frontier */ grafptr->parttax[vertnum] = 0; /* And it belongs to part 0 */ for (edgenum = verttax[vertnum], frontmp = 1; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (grafptr->parttax[vertend] == 1) { /* If vertex belongs to other part */ frontmp = 0; /* Then first frontier vertex was useful */ if (flagtax[vertend] != 0) { /* If vertex has not yet been flagged */ grafptr->frontab[fronnum ++] = vertend; /* Then add it to the frontier */ flagtax[vertend] = 0; /* Flag it */ } } } fronnum -= frontmp; /* Remove vertex from frontier if it was useless */ } partval &= 1; compsize1 += partval; if (veextax != NULL) commgainextn -= partval * 2 * veextax[vertnum]; } grafptr->fronnbr = fronnum; grafptr->compload0 = grafptr->compload0avg + grafptr->compload0dlt; grafptr->compsize0 = grafptr->s.vertnbr - compsize1; grafptr->commgainextn = commgainextn; grafptr->bbalval = (double) ((grafptr->compload0dlt < 0) ? (- grafptr->compload0dlt) : grafptr->compload0dlt) / (double) grafptr->compload0avg; if (permtab != NULL) /* Free work arrays */ memFree (permtab); memFree (vexxtax + grafptr->s.baseval); bgraphBipartGgTablExit (&tabldat); #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartGg: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_gg.h000066400000000000000000000165311514310134000273550ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_gg.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Luca SCARANO (v3.1) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the function **/ /** declarations for the greedy graph **/ /** growing bipartitioning method. **/ /** **/ /** DATES : # Version 3.1 : from : 07 jan 1996 **/ /** to : 29 apr 1996 **/ /** # Version 3.2 : from : 20 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 09 jan 2004 **/ /** to : 09 jan 2004 **/ /** # Version 6.0 : from : 23 feb 2011 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /** Method parameters. **/ typedef struct BgraphBipartGgParam_ { INT passnbr; /*+ Number of passes to do +*/ } BgraphBipartGgParam; #ifdef SCOTCH_BGRAPH_BIPART_GG /* Private part of the module */ /*+ The complementary vertex structure. For trick reasons, the gain table data structure must be the first field of the structure. +*/ #ifdef SCOTCH_TABLE_GAIN typedef GainTabl * BgraphBipartGgTabl; typedef GainLink BgraphBipartGgLink; #else /* SCOTCH_TABLE_GAIN */ typedef FiboHeap BgraphBipartGgTabl; typedef FiboNode BgraphBipartGgLink; #endif /* SCOTCH_TABLE_GAIN */ typedef struct BgraphBipartGgVertex_ { BgraphBipartGgLink gainlink; /*+ Gain link: FIRST +*/ Gnum commgain0; /*+ Gain if vertex and neighbors in part 0 +*/ Gnum commgain; /*+ Gain value +*/ } BgraphBipartGgVertex; #endif /* SCOTCH_BGRAPH_BIPART_GG */ /* ** The function prototypes. */ int bgraphBipartGg (Bgraph * restrict const, const BgraphBipartGgParam * const); /* ** The macro definitions. */ #ifdef SCOTCH_TABLE_GAIN /*+ Gain table subbits. +*/ #define BGRAPHBIPARTGGGAINTABLSUBBITS 1 /** Gain table vertex status. **/ #define BGRAPHBIPARTGGSTATEFREE ((GainLink *) 0) /*+ Vertex in initial state (TRICK: must be 0) +*/ #define BGRAPHBIPARTGGSTATEUSED ((GainLink *) 1) /*+ Swapped vertex +*/ #define BGRAPHBIPARTGGSTATELINK ((GainLink *) 2) /*+ Currently in gain table if higher +*/ /*+ Service routines. +*/ #define bgraphBipartGgTablInit(t) (((*(t)) = gainTablInit (GAIN_LINMAX, BGRAPHBIPARTGGGAINTABLSUBBITS)) == NULL) #define bgraphBipartGgTablFree(t) gainTablFree (*(t)) #define bgraphBipartGgTablExit(t) do { \ if (*(t) != NULL) \ gainTablExit (*(t)); \ } while (0) #define bgraphBipartGgTablAdd(t,v) gainTablAdd ((*(t)), &(v)->gainlink, (v)->commgain) #define bgraphBipartGgTablDel(t,v) gainTablDel ((*(t)), &(v)->gainlink) #define bgraphBipartGgTablFrst(t) gainTablFrst (*(t)) #define bgraphBipartGgIsFree(v) ((v)->gainlink.next == BGRAPHBIPARTGGSTATEFREE) #define bgraphBipartGgIsTabl(v) ((v)->gainlink.next >= BGRAPHBIPARTGGSTATELINK) #define bgraphBipartGgIsUsed(v) ((v)->gainlink.next == BGRAPHBIPARTGGSTATEUSED) #define bgraphBipartGgSetFree(v) ((v)->gainlink.next = BGRAPHBIPARTGGSTATEFREE) #define bgraphBipartGgSetUsed(v) ((v)->gainlink.next = BGRAPHBIPARTGGSTATEUSED) #define bgraphBipartGgNext(v) ((v)->gainlink.next) #else /* SCOTCH_TABLE_GAIN */ /*+ Gain table vertex status. +*/ #define BGRAPHBIPARTGGSTATEFREE ((FiboNode *) 0) /*+ Vertex in initial state (TRICK: must be 0) +*/ #define BGRAPHBIPARTGGSTATEUSED ((FiboNode *) 1) /*+ Swapped vertex +*/ #define BGRAPHBIPARTGGSTATELINK ((FiboNode *) 2) /*+ Currently in gain table if higher +*/ /*+ Service routines. +*/ #define bgraphBipartGgTablInit(t) (fiboHeapInit ((t), bgraphBipartGgCmpFunc)) #define bgraphBipartGgTablFree(t) fiboHeapFree (t) #define bgraphBipartGgTablExit(t) fiboHeapExit (t) #define bgraphBipartGgTablAdd(t,v) fiboHeapAdd ((t), &(v)->gainlink) #define bgraphBipartGgTablDel(t,v) fiboHeapDel ((t), &(v)->gainlink) #define bgraphBipartGgTablFrst(t) fiboHeapMin ((t)) #define bgraphBipartGgIsFree(v) ((v)->gainlink.linkdat.nextptr == BGRAPHBIPARTGGSTATEFREE) #define bgraphBipartGgIsTabl(v) ((v)->gainlink.linkdat.nextptr >= BGRAPHBIPARTGGSTATELINK) #define bgraphBipartGgIsUsed(v) ((v)->gainlink.linkdat.nextptr == BGRAPHBIPARTGGSTATEUSED) #define bgraphBipartGgSetFree(v) ((v)->gainlink.linkdat.nextptr = BGRAPHBIPARTGGSTATEFREE) #define bgraphBipartGgSetUsed(v) ((v)->gainlink.linkdat.nextptr = BGRAPHBIPARTGGSTATEUSED) #define bgraphBipartGgNext(v) ((v)->gainlink.linkdat.nextptr) #endif /* SCOTCH_TABLE_GAIN */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_gp.c000066400000000000000000000305031514310134000273540ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2014,2016,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bipart_gp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module bipartitions an active **/ /** graph using the Gibbs, Poole, and **/ /** Stockmeyer algorithm. **/ /** **/ /** DATES : # Version 2.0 : from : 02 jun 1994 **/ /** to : 05 oct 1994 **/ /** # Version 3.1 : from : 02 may 1996 **/ /** to : 02 may 1996 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 04 nov 2003 **/ /** to : 27 nov 2006 **/ /** # Version 5.0 : from : 10 sep 2007 **/ /** to : 22 feb 2011 **/ /** # Version 6.0 : from : 08 aug 2014 **/ /** to : 14 aug 2016 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_gp.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartGp ( Bgraph * restrict const grafptr, const BgraphBipartGpParam * const paraptr) /*+ Method parameters +*/ { BgraphBipartGpQueue queudat; /* Neighbor queue */ BgraphBipartGpVertex * restrict vexxtax; /* Complementary vertex array */ Gnum compload0dlt; Gnum compsize0; Gnum commloadintn; Gnum commloadextn; Gnum rootnum; /* Index of potential next root */ const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Gnum * restrict const veextax = grafptr->veextax; if (grafptr->compsize0 != grafptr->s.vertnbr) /* If not all vertices already in part 0 */ bgraphZero (grafptr); /* Move all graph vertices to part 0 */ if (memAllocGroup ((void **) (void *) &queudat.queutab, (size_t) (grafptr->s.vertnbr * sizeof (Gnum)), &vexxtax, (size_t) (grafptr->s.vertnbr * sizeof (BgraphBipartGpVertex)), NULL) == NULL) { errorPrint ("bgraphBipartGp: out of memory"); return (1); } memSet (vexxtax, 0, grafptr->s.vertnbr * sizeof (BgraphBipartGpVertex)); /* Initialize pass numbers */ vexxtax -= grafptr->s.baseval; compsize0 = grafptr->s.vertnbr; /* All vertices in part zero */ compload0dlt = grafptr->s.velosum - grafptr->compload0avg; commloadintn = 0; commloadextn = 0; for (rootnum = grafptr->s.baseval; /* Loop on connected components */ (rootnum < grafptr->s.vertnnd) && (compload0dlt > 0); rootnum ++) { Gnum passnum; /* Pass number */ Gnum diamnum; /* Number of current diameter vertex */ Gnum diamval; /* Current diameter value */ Gnum diamdeg; /* Degree of current diameter vertex */ int diamflag; /* Flag set if improvement in diameter between passes */ while (vexxtax[rootnum].passnum != 0) /* Find first unallocated vertex */ rootnum ++; for (diamnum = rootnum, diamval = diamdeg = 0, diamflag = 1, passnum = 1; /* Start from root */ (passnum < paraptr->passnbr) && (diamflag -- != 0); passnum ++) { /* Loop if improvements */ bgraphBipartGpQueueFlush (&queudat); /* Flush vertex queue */ bgraphBipartGpQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* It has been enqueued */ vexxtax[diamnum].distval = 0; do { /* Loop on vertices in queue */ Gnum vertnum; Gnum distval; Gnum edgenum; vertnum = bgraphBipartGpQueueGet (&queudat); /* Get vertex from queue */ distval = vexxtax[vertnum].distval; /* Get vertex distance */ if ((distval > diamval) || /* If vertex increases diameter */ ((distval == diamval) && /* Or is at diameter distance */ ((vendtax[vertnum] - verttax[vertnum]) < diamdeg))) { /* With smaller degree */ diamnum = vertnum; /* Set it as new diameter vertex */ diamval = distval; diamdeg = vendtax[vertnum] - verttax[vertnum]; diamflag = 1; } distval ++; /* Set neighbor distance */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* End vertex number */ vertend = edgetax[edgenum]; if (vexxtax[vertend].passnum < passnum) { /* If vertex not yet queued */ bgraphBipartGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; vexxtax[vertend].distval = distval; } } } while (! bgraphBipartGpQueueEmpty (&queudat)); /* As long as queue is not empty */ } bgraphBipartGpQueueFlush (&queudat); /* Flush vertex queue */ bgraphBipartGpQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* It has been enqueued */ vexxtax[diamnum].distval = 0; do { /* Loop on vertices in queue */ Gnum vertnum; Gnum distval; Gnum edgenum; vertnum = bgraphBipartGpQueueGet (&queudat); /* Get vertex from queue */ grafptr->parttax[vertnum] = 1; /* Move selected vertex to part 1 */ compsize0 --; compload0dlt -= (velotax != NULL) ? velotax[vertnum] : 1; if (veextax != NULL) commloadextn += veextax[vertnum]; distval = vexxtax[vertnum].distval + 1; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* End vertex number */ vertend = edgetax[edgenum]; if (vexxtax[vertend].passnum < passnum) { /* If vertex not yet queued */ bgraphBipartGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; vexxtax[vertend].distval = distval; } } } while ((compload0dlt > 0) && (! bgraphBipartGpQueueEmpty (&queudat))); /* As long as balance not achieved and queue is not empty */ if (! bgraphBipartGpQueueEmpty (&queudat)) { /* If frontier non empty */ Gnum edloval; Gnum fronnbr; fronnbr = 0; /* No frontier yet */ edloval = 1; /* Assume no edge loads */ do { Gnum vertnum; Gnum edgenum; vertnum = bgraphBipartGpQueueGet (&queudat); /* Get vertex from queue */ grafptr->frontab[fronnbr ++] = vertnum; #ifdef SCOTCH_DEBUG_BGRAPH2 if (grafptr->parttax[vertnum] != 0) { errorPrint ("bgraphBipartGp: internal error"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* End vertex number */ vertend = edgetax[edgenum]; if (grafptr->parttax[vertend] == 1) { /* If vertex belongs to other part */ if (edlotax != NULL) edloval = edlotax[edgenum]; commloadintn += edloval; if (vexxtax[vertend].distval != ~0) { /* If neighbor vertex not already put in frontier */ grafptr->frontab[fronnbr ++] = vertend; /* Record it in frontier */ vexxtax[vertend].distval = ~0; /* Set it as recorded */ } } } } while (! bgraphBipartGpQueueEmpty (&queudat)); grafptr->fronnbr = fronnbr; break; /* No need to process rest of graph */ } /* Else grafptr->fronnbr = 0 anyway */ } grafptr->compload0 = grafptr->compload0avg + compload0dlt; grafptr->compload0dlt = compload0dlt; grafptr->compsize0 = compsize0; grafptr->commload = grafptr->commloadextn0 + commloadextn + commloadintn * grafptr->domndist; grafptr->commgainextn = grafptr->commgainextn0 - commloadextn * 2; grafptr->bbalval = (double) ((grafptr->compload0dlt < 0) ? (- grafptr->compload0dlt) : grafptr->compload0dlt) / (double) grafptr->compload0avg; memFree (queudat.queutab); /* Free group leader */ #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartGp: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_gp.h000066400000000000000000000106761514310134000273720ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_gp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Gibbs, Poole, and Stockmeyer **/ /** bipartitioning algorithm. **/ /** **/ /** DATES : # Version 2.0 : from : 06 jun 1994 **/ /** to : 28 oct 1994 **/ /** # Version 3.2 : from : 21 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 01 nov 2003 **/ /** to : 20 aug 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 05 apr 2018 **/ /** to : 05 apr 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct BgraphBipartGpParam_ { INT passnbr; /*+ Number of passes to do +*/ } BgraphBipartGpParam; /*+ Complementary vertex structure. +*/ typedef struct BgraphBipartGpVertex_ { Gnum passnum; /*+ Number of pass when vertex selected +*/ Gnum distval; /*+ Current distance from diameter vertex +*/ } BgraphBipartGpVertex; /*+ Neighbor queue. +*/ typedef struct BgraphBipartGpQueue_ { Gnum headnum; /*+ Head of distance queue +*/ Gnum tailnum; /*+ Tail of distance queue +*/ Gnum * queutab; /*+ Array of queue elements +*/ } BgraphBipartGpQueue; /* ** The function prototypes. */ int bgraphBipartGp (Bgraph * restrict const, const BgraphBipartGpParam * const); /* ** The macro definitions. */ #define bgraphBipartGpQueueFlush(queue) ((queue)->headnum = (queue)->tailnum = 0) #define bgraphBipartGpQueueEmpty(queue) ((queue)->headnum <= (queue)->tailnum) #define bgraphBipartGpQueuePut(queue,vnum) ((queue)->queutab[(queue)->headnum ++] = (vnum)) #define bgraphBipartGpQueueGet(queue) ((queue)->queutab[(queue)->tailnum ++]) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_ml.c000066400000000000000000000402171514310134000273610ustar00rootroot00000000000000/* Copyright 2004,2007-2011,2014,2015,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_ml.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Luca SCARANO (v3.1) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module bipartitions an active **/ /** graph using a multi-level scheme. **/ /** **/ /** DATES : # Version 3.1 : from : 24 oct 1995 **/ /** to : 19 sep 1996 **/ /** # Version 3.2 : from : 20 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 12 mar 1999 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 12 dec 2003 **/ /** to : 20 mar 2005 **/ /** # Version 5.1 : from : 28 sep 2008 **/ /** to : 27 mar 2011 **/ /** # Version 6.0 : from : 09 mar 2011 **/ /** to : 16 aug 2015 **/ /** # Version 7.0 : from : 08 jun 2018 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_BGRAPH_BIPART_ML #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "bgraph.h" #include "bgraph_bipart_ml.h" #include "bgraph_bipart_st.h" /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser graph from the ** graph that is given on input. The coarser ** graphs differ at this stage from classical ** active graphs as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse graph has been built. ** - 1 : if threshold reached or on error. */ static int bgraphBipartMlCoarsen ( const Bgraph * const finegrafptr, /*+ Finer graph +*/ Bgraph * restrict const coargrafptr, /*+ Coarser graph to build +*/ GraphCoarsenMulti * restrict * const coarmultptr, /*+ Pointer to un-based multinode table to build +*/ const BgraphBipartMlParam * const paraptr) /*+ Method parameters +*/ { Gnum comploadtmp; /* Increase of imbalance range for coarse graph */ *coarmultptr = NULL; /* Allocate multloctab along with coarse graph */ if (graphCoarsen (&finegrafptr->s, &coargrafptr->s, NULL, coarmultptr, paraptr->coarnbr, paraptr->coarrat, GRAPHCOARSENNOCOMPACT, NULL, NULL, 0, finegrafptr->contptr) != 0) return (1); /* Return if coarsening failed */ if (finegrafptr->veextax != NULL) { /* Merge external gains for coarsened vertices */ GraphCoarsenMulti * restrict coarmulttab; Gnum * restrict coarveextab; Gnum coarvertnbr; Gnum coarvertnum; const Gnum * restrict const fineveextax = finegrafptr->veextax; if ((coarveextab = (Gnum *) memAlloc (coargrafptr->s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("bgraphBipartMlCoarsen: out of memory"); graphExit (&coargrafptr->s); /* Only free Graph since veextab not allocated */ return (1); } coarmulttab = *coarmultptr; for (coarvertnum = 0, coarvertnbr = coargrafptr->s.vertnbr; coarvertnum < coarvertnbr; coarvertnum ++) { Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ finevertnum0 = coarmulttab[coarvertnum].vertnum[0]; finevertnum1 = coarmulttab[coarvertnum].vertnum[1]; coarveextab[coarvertnum] = (finevertnum0 != finevertnum1) ? fineveextax[finevertnum0] + fineveextax[finevertnum1] : fineveextax[finevertnum0]; } coargrafptr->s.flagval |= BGRAPHFREEVEEX; coargrafptr->veextax = coarveextab - coargrafptr->s.baseval; } else /* If fine graph does not have external gains */ coargrafptr->veextax = NULL; /* Coarse graph does not have external gains */ coargrafptr->s.flagval |= BGRAPHFREEPART; /* Only part array will have to be freed, as frontier is shared */ coargrafptr->parttax = NULL; /* Do not allocate partition data yet */ coargrafptr->frontab = finegrafptr->frontab; /* Use frontier array of finer graph as coarse frontier array */ comploadtmp = (finegrafptr->levlnum + 1) + (Gnum) (((double) MIN ((finegrafptr->compload0max - finegrafptr->compload0avg), (finegrafptr->compload0avg - finegrafptr->compload0min))) * 0.05); coargrafptr->compload0min = finegrafptr->compload0min - comploadtmp; /* Only set constant partition parameters as others will be set on uncoarsening */ coargrafptr->compload0max = finegrafptr->compload0max + comploadtmp; coargrafptr->compload0avg = finegrafptr->compload0avg; coargrafptr->commloadextn0 = finegrafptr->commloadextn0; coargrafptr->commgainextn0 = finegrafptr->commgainextn0; coargrafptr->domndist = finegrafptr->domndist; coargrafptr->domnwght[0] = finegrafptr->domnwght[0]; coargrafptr->domnwght[1] = finegrafptr->domnwght[1]; coargrafptr->vfixload[0] = finegrafptr->vfixload[0]; coargrafptr->vfixload[1] = finegrafptr->vfixload[1]; coargrafptr->levlnum = finegrafptr->levlnum + 1; coargrafptr->contptr = finegrafptr->contptr; return (0); } /* This routine propagates the bipartition of the ** coarser graph back to the finer graph, according ** to the multinode table of collapsed vertices. ** After the bipartition is propagated, it finishes ** to compute the parameters of the finer graph that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse graph data has been propagated to fine graph. ** - !0 : on error. */ static int bgraphBipartMlUncoarsen ( Bgraph * restrict const finegrafptr, /*+ Finer graph +*/ const Bgraph * const coargrafptr, /*+ Coarser graph +*/ const GraphCoarsenMulti * const coarmulttab) /*+ Pointer to un-based multinode array +*/ { Gnum coarvertnnd; Gnum coarvertnum; Gnum coarfronnbr; Gnum coarfronnum; Gnum * restrict coarfrontab; GraphPart * restrict coarparttax; GraphPart * restrict fineparttax; Gnum finefronnbr; Gnum finecompsize1; const GraphCoarsenMulti * const coarmulttax = coarmulttab - finegrafptr->s.baseval; const Gnum * restrict const fineverttax = finegrafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const finevendtax = finegrafptr->s.vendtax; const Gnum * restrict const fineedgetax = finegrafptr->s.edgetax; if (finegrafptr->parttax == NULL) { /* If partition array not yet allocated */ if ((finegrafptr->parttax = (GraphPart *) memAlloc (finegrafptr->s.vertnbr * sizeof (GraphPart))) == NULL) { errorPrint ("bgraphBipartMlUncoarsen: out of memory"); return (1); /* Allocated data will be freed along with graph structure */ } finegrafptr->parttax -= finegrafptr->s.baseval; } if (coargrafptr == NULL) { /* If no coarse graph provided */ bgraphZero (finegrafptr); /* Assign all vertices to part 0 */ return (0); } coarparttax = coargrafptr->parttax; coarfrontab = coargrafptr->frontab; /* TRICK: also equal to finefrontab */ fineparttax = finegrafptr->parttax; finecompsize1 = coargrafptr->s.vertnbr - coargrafptr->compsize0; /* Pre-allocate sizes */ for (coarvertnum = coargrafptr->s.baseval, coarvertnnd = coargrafptr->s.vertnnd; coarvertnum < coarvertnnd; coarvertnum ++) { Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ GraphPart partval; finevertnum0 = coarmulttax[coarvertnum].vertnum[0]; finevertnum1 = coarmulttax[coarvertnum].vertnum[1]; partval = coarparttax[coarvertnum]; fineparttax[finevertnum0] = partval; if (finevertnum0 != finevertnum1) { fineparttax[finevertnum1] = partval; finecompsize1 += partval; /* Account for extra vertices created in part 1 */ } } finegrafptr->compload0 = coargrafptr->compload0; finegrafptr->compload0dlt = coargrafptr->compload0dlt; finegrafptr->compsize0 = finegrafptr->s.vertnbr - finecompsize1; finegrafptr->commload = coargrafptr->commload; finegrafptr->commgainextn = coargrafptr->commgainextn; finegrafptr->bbalval = coargrafptr->bbalval; for (coarfronnum = 0, finefronnbr = coarfronnbr = coargrafptr->fronnbr; /* Re-cycle frontier array from coarse to fine graph */ coarfronnum < coarfronnbr; coarfronnum ++) { Gnum coarvertnum; Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ coarvertnum = coarfrontab[coarfronnum]; finevertnum0 = coarmulttax[coarvertnum].vertnum[0]; finevertnum1 = coarmulttax[coarvertnum].vertnum[1]; if (finevertnum0 != finevertnum1) { /* If multinode is made of two distinct vertices */ GraphPart coarpartval; Gnum fineedgenum; coarpartval = coarparttax[coarvertnum]; #ifdef SCOTCH_DEBUG_BGRAPH2 coarfrontab[coarfronnum] = ~0; #endif /* SCOTCH_DEBUG_BGRAPH2 */ for (fineedgenum = fineverttax[finevertnum0]; fineedgenum < finevendtax[finevertnum0]; fineedgenum ++) { if (fineparttax[fineedgetax[fineedgenum]] != coarpartval) { /* If first vertex belongs to frontier */ coarfrontab[coarfronnum] = finevertnum0; /* Record it in lieu of the coarse frontier vertex */ break; } } if (fineedgenum >= finevendtax[finevertnum0]) { /* If first vertex not in frontier */ coarfrontab[coarfronnum] = finevertnum1; /* Then second vertex must be in frontier */ continue; /* Skip to next multinode */ } for (fineedgenum = fineverttax[finevertnum1]; /* Check if second vertex belong to frontier too */ fineedgenum < finevendtax[finevertnum1]; fineedgenum ++) { if (fineparttax[fineedgetax[fineedgenum]] != coarpartval) { /* If second vertex belongs to frontier */ coarfrontab[finefronnbr ++] = finevertnum1; /* Record it at the end of the recycled frontier array */ break; } } #ifdef SCOTCH_DEBUG_BGRAPH2 if (coarfrontab[coarfronnum] == ~0) { errorPrint ("bgraphBipartMlUncoarsen: internal error"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ } else /* If coarse vertex is single node */ coarfrontab[coarfronnum] = finevertnum0; /* Then it belongs to the frontier */ } finegrafptr->fronnbr = finefronnbr; #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (finegrafptr) != 0) { errorPrint ("bgraphBipartMlUncoarsen: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } /* This routine recursively performs the ** bipartitioning recursion. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ static int bgraphBipartMl2 ( Bgraph * restrict const grafptr, /*+ Active graph +*/ const BgraphBipartMlParam * const paraptr) /*+ Method parameters +*/ { Bgraph coargrafdat; GraphCoarsenMulti * coarmulttab; int o; if (bgraphBipartMlCoarsen (grafptr, &coargrafdat, &coarmulttab, paraptr) == 0) { if (((o = bgraphBipartMl2 (&coargrafdat, paraptr)) == 0) && ((o = bgraphBipartMlUncoarsen (grafptr, &coargrafdat, coarmulttab)) == 0) && ((o = bgraphBipartSt (grafptr, paraptr->stratasc)) != 0)) /* Apply ascending strategy */ errorPrint ("bgraphBipartMl2: cannot apply ascending strategy"); bgraphExit (&coargrafdat); } else { if (((o = bgraphBipartMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = bgraphBipartSt (grafptr, paraptr->stratlow)) != 0)) /* Apply low strategy */ errorPrint ("bgraphBipartMl2: cannot apply low strategy"); } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the multi-level bipartitioning. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartMl ( Bgraph * restrict const grafptr, /*+ Active graph +*/ const BgraphBipartMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for graph level */ int o; levlnum = grafptr->levlnum; /* Save graph level */ grafptr->levlnum = 0; /* Initialize coarsening level */ o = bgraphBipartMl2 (grafptr, paraptr); /* Perform multi-level bipartitioning */ grafptr->levlnum = levlnum; /* Restore graph level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_ml.h000066400000000000000000000106651514310134000273720ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2011,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_ml.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Luca SCARANO (v3.1) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the multi-level graph bipartitio- **/ /** ning routines. **/ /** **/ /** DATES : # Version 3.1 : from : 24 oct 1995 **/ /** to : 03 jul 1996 **/ /** # Version 3.2 : from : 20 sep 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 12 dec 2003 **/ /** to : 20 mar 2005 **/ /** # Version 5.1 : from : 13 jul 2010 **/ /** to : 13 jul 2010 **/ /** # Version 6.0 : from : 16 apr 2011 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct BgraphBipartMlParam_ { INT coarnbr; /*+ Minimum number of vertices +*/ double coarrat; /*+ Coarsening ratio +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ } BgraphBipartMlParam; /* ** The function prototypes. */ #ifdef SCOTCH_BGRAPH_BIPART_ML static int bgraphBipartMlCoarsen (const Bgraph * const, Bgraph * restrict const, GraphCoarsenMulti * restrict * const, const BgraphBipartMlParam * const); static int bgraphBipartMlUncoarsen (Bgraph * restrict const, const Bgraph * restrict const, const GraphCoarsenMulti * const); static int bgraphBipartMl2 (Bgraph * restrict const, const BgraphBipartMlParam * const); #endif /* SCOTCH_BGRAPH_BIPART_ML */ int bgraphBipartMl (Bgraph * restrict const, const BgraphBipartMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_st.c000066400000000000000000000500671514310134000274030ustar00rootroot00000000000000/* Copyright 2004,2007,2009-2012,2016,2017,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the strategy and **/ /** method tables for graph bipartitioning **/ /** methods. **/ /** **/ /** DATES : # Version 3.2 : from : 08 oct 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 12 mar 1999 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 12 jan 2004 **/ /** to : 20 aug 2004 **/ /** # Version 5.0 : from : 27 nov 2006 **/ /** to : 29 may 2007 **/ /** # Version 5.1 : from : 26 oct 2009 **/ /** to : 15 apr 2011 **/ /** # Version 6.0 : from : 23 feb 2011 **/ /** to : 02 jan 2017 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 04 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "fibo.h" #include "gain.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "bgraph.h" #include "bgraph_bipart_bd.h" #include "bgraph_bipart_df.h" #include "bgraph_bipart_ex.h" #include "bgraph_bipart_fm.h" #include "bgraph_bipart_ga.h" #include "bgraph_bipart_gg.h" #include "bgraph_bipart_gp.h" #include "bgraph_bipart_ml.h" #include "bgraph_bipart_zr.h" #include "bgraph_bipart_st.h" /* ** The static and global variables. */ static Bgraph bgraphdummy; /*+ Dummy active graph for offset computations +*/ static union { BgraphBipartBdParam param; StratNodeMethodData padding; } bgraphbipartstdefaultbd = { { 3, &stratdummy } }; static union { BgraphBipartDfParam param; StratNodeMethodData padding; } bgraphbipartstdefaultdf = { { 40, BGRAPHBIPARTDFTYPEBAL } }; static union { /* Default parameters for bipartitioning methods */ BgraphBipartFmParam param; /* Parameter zone */ StratNodeMethodData padding; /* To avoid reading out of structure */ } bgraphbipartstdefaultfm = { { 80, ~0, 0.01L, BGRAPHBIPARTFMTYPEBOUNDARY } }; static union { BgraphBipartGaParam param; StratNodeMethodData padding; } bgraphbipartstdefaultga = { { 40, 100 } }; static union { BgraphBipartGgParam param; StratNodeMethodData padding; } bgraphbipartstdefaultgg = { { 5 } }; static union { BgraphBipartGpParam param; StratNodeMethodData padding; } bgraphbipartstdefaultgp = { { 5 } }; static union { BgraphBipartMlParam param; StratNodeMethodData padding; } bgraphbipartstdefaultml = { { 100, 0.8L, &stratdummy, &stratdummy } }; static StratMethodTab bgraphbipartstmethtab[] = { /* Bipartitioning methods array */ { BGRAPHBIPARTSTMETHBD, "b", (StratMethodFunc) bgraphBipartBd, &bgraphbipartstdefaultbd }, { BGRAPHBIPARTSTMETHDF, "d", (StratMethodFunc) bgraphBipartDf, &bgraphbipartstdefaultdf }, { BGRAPHBIPARTSTMETHEX, "x", (StratMethodFunc) bgraphBipartEx, NULL }, { BGRAPHBIPARTSTMETHFM, "f", (StratMethodFunc) bgraphBipartFm, &bgraphbipartstdefaultfm }, { BGRAPHBIPARTSTMETHGA, "a", (StratMethodFunc) bgraphBipartGa, &bgraphbipartstdefaultga }, { BGRAPHBIPARTSTMETHGG, "h", (StratMethodFunc) bgraphBipartGg, &bgraphbipartstdefaultgg }, { BGRAPHBIPARTSTMETHGP, "g", (StratMethodFunc) bgraphBipartGp, &bgraphbipartstdefaultgp }, { BGRAPHBIPARTSTMETHML, "m", (StratMethodFunc) bgraphBipartMl, &bgraphbipartstdefaultml }, { BGRAPHBIPARTSTMETHZR, "z", (StratMethodFunc) bgraphBipartZr, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab bgraphbipartstparatab[] = { /* Method parameter list */ { BGRAPHBIPARTSTMETHBD, STRATPARAMSTRAT, "bnd", (byte *) &bgraphbipartstdefaultbd.param, (byte *) &bgraphbipartstdefaultbd.param.stratbnd, (void *) &bgraphbipartststratab }, { BGRAPHBIPARTSTMETHBD, STRATPARAMSTRAT, "org", (byte *) &bgraphbipartstdefaultbd.param, (byte *) &bgraphbipartstdefaultbd.param.stratorg, (void *) &bgraphbipartststratab }, { BGRAPHBIPARTSTMETHBD, STRATPARAMINT, "width", (byte *) &bgraphbipartstdefaultbd.param, (byte *) &bgraphbipartstdefaultbd.param.distmax, NULL }, { BGRAPHBIPARTSTMETHDF, STRATPARAMINT, "pass", (byte *) &bgraphbipartstdefaultdf.param, (byte *) &bgraphbipartstdefaultdf.param.passnbr, NULL }, { BGRAPHBIPARTSTMETHDF, STRATPARAMCASE, "type", (byte *) &bgraphbipartstdefaultdf.param, (byte *) &bgraphbipartstdefaultdf.param.typeval, (void *) "bk" }, { BGRAPHBIPARTSTMETHFM, STRATPARAMINT, "move", (byte *) &bgraphbipartstdefaultfm.param, (byte *) &bgraphbipartstdefaultfm.param.movenbr, NULL }, { BGRAPHBIPARTSTMETHFM, STRATPARAMINT, "pass", (byte *) &bgraphbipartstdefaultfm.param, (byte *) &bgraphbipartstdefaultfm.param.passnbr, NULL }, { BGRAPHBIPARTSTMETHFM, STRATPARAMDOUBLE, "bal", (byte *) &bgraphbipartstdefaultfm.param, (byte *) &bgraphbipartstdefaultfm.param.deltval, NULL }, { BGRAPHBIPARTSTMETHFM, STRATPARAMCASE, "type", (byte *) &bgraphbipartstdefaultfm.param, (byte *) &bgraphbipartstdefaultfm.param.typeval, (void *) "ab" }, { BGRAPHBIPARTSTMETHGA, STRATPARAMINT, "pass", (byte *) &bgraphbipartstdefaultga.param, (byte *) &bgraphbipartstdefaultga.param.passnbr, NULL }, { BGRAPHBIPARTSTMETHGA, STRATPARAMINT, "pop", (byte *) &bgraphbipartstdefaultga.param, (byte *) &bgraphbipartstdefaultga.param.popunbr, NULL }, { BGRAPHBIPARTSTMETHGG, STRATPARAMINT, "pass", (byte *) &bgraphbipartstdefaultgg.param, (byte *) &bgraphbipartstdefaultgg.param.passnbr, NULL }, { BGRAPHBIPARTSTMETHGP, STRATPARAMINT, "pass", (byte *) &bgraphbipartstdefaultgp.param, (byte *) &bgraphbipartstdefaultgp.param.passnbr, NULL }, { BGRAPHBIPARTSTMETHML, STRATPARAMSTRAT, "asc", (byte *) &bgraphbipartstdefaultml.param, (byte *) &bgraphbipartstdefaultml.param.stratasc, (void *) &bgraphbipartststratab }, { BGRAPHBIPARTSTMETHML, STRATPARAMSTRAT, "low", (byte *) &bgraphbipartstdefaultml.param, (byte *) &bgraphbipartstdefaultml.param.stratlow, (void *) &bgraphbipartststratab }, { BGRAPHBIPARTSTMETHML, STRATPARAMINT, "vert", (byte *) &bgraphbipartstdefaultml.param, (byte *) &bgraphbipartstdefaultml.param.coarnbr, NULL }, { BGRAPHBIPARTSTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &bgraphbipartstdefaultml.param, (byte *) &bgraphbipartstdefaultml.param.coarrat, NULL }, { BGRAPHBIPARTSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab bgraphbipartstcondtab[] = { /* Active graph condition parameter table */ { STRATNODECOND, STRATPARAMDOUBLE, "bal", (byte *) &bgraphdummy, (byte *) &bgraphdummy.bbalval, NULL }, { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &bgraphdummy, (byte *) &bgraphdummy.s.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &bgraphdummy, (byte *) &bgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "lmin0", (byte *) &bgraphdummy, (byte *) &bgraphdummy.compload0min, NULL }, { STRATNODECOND, STRATPARAMINT, "lmax0", (byte *) &bgraphdummy, (byte *) &bgraphdummy.compload0max, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &bgraphdummy, (byte *) &bgraphdummy.s.velosum, NULL }, { STRATNODECOND, STRATPARAMINT, "load0", (byte *) &bgraphdummy, (byte *) &bgraphdummy.compload0, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &bgraphdummy, (byte *) &bgraphdummy.s.vertnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab bgraphbipartststratab = { /* Strategy tables for graph bipartitioning methods */ bgraphbipartstmethtab, bgraphbipartstparatab, bgraphbipartstcondtab }; /***********************************************/ /* */ /* This is the generic bipartitioning routine. */ /* */ /***********************************************/ /* This routine performs the bipartitioning of ** the given active graph according to the ** given strategy. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartSt ( Bgraph * restrict const grafptr, /*+ Active graph to bipartition +*/ const Strat * restrict const straptr) /*+ Bipartitioning strategy +*/ { StratTest testdat; /* Result of condition evaluation */ BgraphStore savetab[2]; /* Results of the two strategies */ Gnum compload0; int o; int o0; int o1; #ifdef SCOTCH_DEBUG_BGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("bgraphBipartSt: invalid type specification for parser variables"); return (1); } if ((sizeof (BgraphBipartFmParam) > sizeof (StratNodeMethodData)) || (sizeof (BgraphBipartGgParam) > sizeof (StratNodeMethodData)) || (sizeof (BgraphBipartMlParam) > sizeof (StratNodeMethodData))) { errorPrint ("bgraphBipartSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ #ifdef SCOTCH_DEBUG_BGRAPH1 if (straptr->tablptr != &bgraphbipartststratab) { errorPrint ("bgraphBipartSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = bgraphBipartSt (grafptr, straptr->data.concdat.stratab[0]); /* Apply the first strategy */ if (o == 0) /* If it worked all right */ o |= bgraphBipartSt (grafptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_VGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("bgraphBipartSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = bgraphBipartSt (grafptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = bgraphBipartSt (grafptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((bgraphStoreInit (grafptr, &savetab[0])) != 0) || /* Allocate save areas */ ((bgraphStoreInit (grafptr, &savetab[1])) != 0)) { errorPrint ("bgraphBipartSt: out of memory"); bgraphStoreExit (&savetab[0]); return (1); } bgraphStoreSave (grafptr, &savetab[1]); /* Save initial bipartition */ o0 = bgraphBipartSt (grafptr, straptr->data.seledat.stratab[0]); /* Apply first strategy */ bgraphStoreSave (grafptr, &savetab[0]); /* Save its result */ bgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ o1 = bgraphBipartSt (grafptr, straptr->data.seledat.stratab[1]); /* Apply second strategy */ if ((o0 | o1) != 0) { /* If at least one method failed */ if (o0 == 0) /* If first succeeded, take it */ goto take0; if (o1 != 0) { /* If none succeeded */ bgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ o = 1; /* Indicate error */ } goto take1; /* If second succeeded, keep it; anyway, go freeing data structures */ } compload0 = grafptr->compload0avg + savetab[0].compload0dlt; o0 = ((compload0 < grafptr->compload0min) || (compload0 > grafptr->compload0max)) ? 1 : 0; compload0 = grafptr->compload0avg + grafptr->compload0dlt; o1 = ((compload0 < grafptr->compload0min) || (compload0 > grafptr->compload0max)) ? 1 : 0; if (o1 > o0) /* If first is balanced and second is not, take first */ goto take0; if (o1 < o0) /* If second is balanced and first is not, take second */ goto take1; if (o0 == 0) { /* If both are balanced */ if ( (savetab[0].commload > grafptr->commload) || /* Compare on cut */ ((savetab[0].commload == grafptr->commload) && (abs (savetab[0].compload0dlt) > abs (grafptr->compload0dlt)))) goto take1; else goto take0; } else { /* If both are imbalanced */ if ( (abs (savetab[0].compload0dlt) > abs (grafptr->compload0dlt)) || /* Compare on imbalance */ ((abs (savetab[0].compload0dlt) == abs (grafptr->compload0dlt)) && (savetab[0].commload > grafptr->commload))) goto take1; } take0: bgraphStoreUpdt (grafptr, &savetab[0]); /* Restore first partition */ take1: /* Keep second partition by default */ bgraphStoreExit (&savetab[1]); /* Free both save areas */ bgraphStoreExit (&savetab[0]); break; case STRATNODEMETHOD : return (((BgraphBipartFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, (const void * const) &straptr->data.methdat.datadat)); default : errorPrint ("bgraphBipartSt: invalid parameter (2)"); return (1); } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_st.h000066400000000000000000000105001514310134000273740ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the strategy and method **/ /** tables and the generic entry point for **/ /** the graph bipartitioning methods. **/ /** **/ /** DATES : # Version 3.2 : from : 08 oct 1996 **/ /** to : 13 sep 1998 **/ /** # Version 4.0 : from : 15 jan 2002 **/ /** to : 15 jan 2002 **/ /** # Version 5.0 : from : 27 nov 2006 **/ /** to : 13 jan 2007 **/ /** # Version 6.0 : from : 05 apr 2018 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 08 mar 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum BgraphBipartStMethodType_ { BGRAPHBIPARTSTMETHBD = 0, /*+ Band +*/ BGRAPHBIPARTSTMETHDF, /*+ Diffusion +*/ BGRAPHBIPARTSTMETHEX, /*+ Exactifying +*/ BGRAPHBIPARTSTMETHFM, /*+ Fiduccia-Mattheyses +*/ BGRAPHBIPARTSTMETHGA, /*+ Genetic Algorithm +*/ BGRAPHBIPARTSTMETHGG, /*+ Greedy Graph Growing +*/ BGRAPHBIPARTSTMETHGP, /*+ Gibbs-Poole-Stockmeyer +*/ BGRAPHBIPARTSTMETHML, /*+ Multi-level (strategy) +*/ BGRAPHBIPARTSTMETHZR, /*+ Move all to part zero +*/ BGRAPHBIPARTSTMETHNBR /*+ Number of methods +*/ } BgraphBipartStMethodType; /*+ Method function pointer type. +*/ typedef int (* BgraphBipartFunc) (Bgraph * restrict const, const void * const); /* ** The external declarations. */ extern StratTab bgraphbipartststratab; /* ** The function prototypes. */ int bgraphBipartSt (Bgraph * restrict const, const Strat * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_zr.c000066400000000000000000000076111514310134000274050ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_zr.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module moves all of the vertices **/ /** to the first subdomain of the **/ /** bipartition. **/ /** **/ /** DATES : # Version 3.2 : from : 23 aug 1996 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 01 jun 2001 **/ /** # Version 4.0 : from : 01 nov 2003 **/ /** to : 29 may 2004 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_zr.h" /********************************/ /* */ /* Zero bipartitioning routine. */ /* */ /********************************/ /* This routine moves all the vertices ** of the given graph to the first part. ** It returns: ** - 0 : if bipartitioning could be computed. ** - 1 : on error. */ int bgraphBipartZr ( Bgraph * restrict const grafptr) /*+ Active graph +*/ { if (grafptr->compload0 != grafptr->s.velosum) /* If not all vertices already in part zero */ bgraphZero (grafptr); #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) { errorPrint ("bgraphBipartZr: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_BGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_bipart_zr.h000066400000000000000000000060331514310134000274070ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_bipart_zr.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** bipartitioning module. **/ /** **/ /** DATES : # Version 3.2 : from : 23 aug 1996 **/ /** to : 19 oct 1996 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 01 nov 2003 **/ /** to : 01 nov 2003 **/ /** # Version 6.0 : from : 05 apr 2018 **/ /** to : 05 apr 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int bgraphBipartZr (Bgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_check.c000066400000000000000000000176671514310134000265020ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2013,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the bipartition **/ /** graph consistency checking routine. **/ /** **/ /** DATES : # Version 4.0 : from : 08 jan 2004 **/ /** to : 07 dec 2005 **/ /** # Version 5.1 : from : 04 oct 2009 **/ /** to : 04 oct 2009 **/ /** # Version 6.0 : from : 06 oct 2013 **/ /** to : 25 aug 2014 **/ /** # Version 7.0 : from : 22 feb 2023 **/ /** to : 28 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" /*************************/ /* */ /* These routines handle */ /* bipartition graphs. */ /* */ /*************************/ /* This routine checks the consistency ** of the given bipartition graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int bgraphCheck ( const Bgraph * restrict const grafptr) { int * restrict flagtax; /* Frontier flag array */ Gnum cpl1sum; /* Sum of vertex loads in part 1 */ Gnum ver1nbr; /* Number of vertices in part 1 */ Gnum commloadintn; Gnum commloadextn; Gnum commgainextn; Gnum fronnum; /* Number of frontier vertex */ Gnum vertnum; /* Number of current vertex */ int o; const Gnum baseval = grafptr->s.baseval; const Gnum vertnnd = grafptr->s.vertnnd; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const GraphPart * restrict const parttax = grafptr->parttax; const Gnum * restrict const frontab = grafptr->frontab; if (grafptr->compload0avg != (Gnum) (((double) (grafptr->s.velosum + grafptr->vfixload[0] + grafptr->vfixload[1]) * (double) grafptr->domnwght[0]) / (double) (grafptr->domnwght[0] + grafptr->domnwght[1])) - grafptr->vfixload[0]) { errorPrint ("bgraphCheck: invalid average load"); return (1); } if (grafptr->compload0 != (grafptr->compload0avg + grafptr->compload0dlt)) { errorPrint ("bgraphCheck: invalid load balance"); return (1); } for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { if ((parttax[vertnum] | 1) != 1) { /* If part is neither 0 nor 1 */ errorPrint ("bgraphCheck: invalid part array"); return (1); } } if ((grafptr->fronnbr < 0) || (grafptr->fronnbr > grafptr->s.vertnbr)) { errorPrint ("bgraphCheck: invalid number of frontier vertices"); return (1); } if ((flagtax = memAlloc (grafptr->s.vertnbr * sizeof (int))) == NULL) { errorPrint ("bgraphCheck: out of memory"); return (1); } memSet (flagtax, ~0, grafptr->s.vertnbr * sizeof (int)); flagtax -= baseval; o = 1; /* Assume failure when checking */ for (fronnum = 0; fronnum < grafptr->fronnbr; fronnum ++) { Gnum vertnum; Gnum edgenum; GraphPart partval; GraphPart flagval; vertnum = frontab[fronnum]; if ((vertnum < baseval) || (vertnum >= vertnnd)) { errorPrint ("bgraphCheck: invalid vertex index in frontier array"); goto fail; } if (flagtax[vertnum] != ~0) { errorPrint ("bgraphCheck: duplicate vertex in frontier array"); goto fail; } flagtax[vertnum] = 0; partval = parttax[vertnum]; for (edgenum = verttax[vertnum], flagval = 0; edgenum < vendtax[vertnum]; edgenum ++) flagval |= parttax[edgetax[edgenum]] ^ partval; /* Flag set if neighbor part differs from vertex part */ if (flagval == 0) { errorPrint ("bgraphCheck: invalid vertex in frontier array"); goto fail; } } for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { GraphPart partval; /* Part of current vertex */ GraphPart flagval; /* Difference in part values */ Gnum edgenum; /* Number of current edge */ partval = parttax[vertnum]; for (edgenum = verttax[vertnum], flagval = 0; edgenum < vendtax[vertnum]; edgenum ++) flagval |= parttax[edgetax[edgenum]] ^ partval; /* Flag set if neighbor part differs from vertex part */ if ((flagval != 0) && (flagtax[vertnum] != 0)) { /* If vertex should be in frontier array */ errorPrint ("bgraphCheck: vertex should be in frontier array"); goto fail; } } bgraphCost2 (grafptr, parttax, NULL, NULL, /* Compute values for part array */ &cpl1sum, &ver1nbr, &commloadintn, &commloadextn, &commgainextn); if ((grafptr->s.vertnbr - ver1nbr) != grafptr->compsize0) { errorPrint ("bgraphCheck: invalid part size"); goto fail; } if ((grafptr->s.velosum - cpl1sum) != grafptr->compload0) { errorPrint ("bgraphCheck: invalid part load"); goto fail; } if ((commloadintn * grafptr->domndist + commloadextn) != grafptr->commload) { errorPrint ("bgraphCheck: invalid communication loads"); goto fail; } if (commgainextn != grafptr->commgainextn) { errorPrint ("bgraphCheck: invalid communication gains"); goto fail; } o = 0; /* Everything turned well */ fail : memFree (flagtax + baseval); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_cost.c000066400000000000000000000210521514310134000263540ustar00rootroot00000000000000/* Copyright 2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_cost.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the bipartition **/ /** cost function computation routine. **/ /** **/ /** DATES : # Version 7.0 : from : 22 feb 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" /*************************/ /* */ /* These routines handle */ /* bipartition graphs. */ /* */ /*************************/ /* This routine computes the cost of the ** provided partition for the given graph. ** It returns: ** - VOID : in all cases. */ void bgraphCost2 ( const Bgraph * restrict const grafptr, /*+ Graph the topology and external gains of which to use +*/ const GraphPart * restrict const parttax, /*+ Part array to use; may not be graph's parttax +*/ Gnum * restrict const frontab, /*+ Frontier array to compute; NULL if no need to +*/ Gnum * restrict const fnbrptr, /*+ Pointer to frontier size to compute if needed +*/ Gnum * restrict const cpl1ptr, /*+ Pointer to load sum in part 1 to compute +*/ Gnum * restrict const ver1ptr, /*+ Pointer to size of part 1 to compute +*/ Gnum * restrict const cmliptr, /*+ Pointer to internal communication load to compute +*/ Gnum * restrict const cmleptr, /*+ Pointer to external communication load to compute +*/ Gnum * restrict const cmgeptr) /*+ Pointer to external communication gain to compute +*/ { Gnum * fronptr; /* Pointer to current end of frontier array */ Gnum cpl1sum; /* Sum of vertex loads in part 1 */ Gnum ver1nbr; /* Number of vertices in part 1 */ Gnum cmlisum; /* Twice the sum of internal communication load */ Gnum cmlesum; /* External communication load */ Gnum cmgesum; /* External communication gain */ Gnum vertnum; /* Number of current vertex */ const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const veextax = grafptr->veextax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; fronptr = frontab; cpl1sum = 0; ver1nbr = 0; cmlisum = 0; cmlesum = grafptr->commloadextn0; cmgesum = 0; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum fronval; /* Frontier flag */ Gnum partval; /* Part of current vertex */ Gnum partmsk; /* Mask for adding contributions or not */ Gnum veloval; /* Vertex load */ Gnum edloval; /* Edge load */ Gnum edgenum; /* Number of current edge */ partval = (Gnum) parttax[vertnum]; partmsk = - partval; /* TRICK: 0 -> 0; 1 -> 0xFF..FF */ veloval = (velotax == NULL) ? 1 : velotax[vertnum]; ver1nbr += partval; cpl1sum += veloval & partmsk; /* TRICK: add contribution only for part 1 */ if (veextax != NULL) { Gnum veexval; veexval = veextax[vertnum]; cmlesum += veexval & partmsk; /* TRICK: add contribution only for part 1 */ cmgesum += veexval * (1 - 2 * partval); } edloval = 1; /* Assume edges are not weighted */ fronval = 0; /* Assume vertex is not in frontier */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum partend; Gnum partdlt; if (edlotax != NULL) edloval = edlotax[edgenum]; partend = parttax[edgetax[edgenum]]; partdlt = partval ^ partend; cmlisum += edloval & (- partdlt); /* TRICK: add load only if difference in parts; loads are counted twice */ fronval |= partdlt; /* Record whether some neighbor is not in same part as vertex */ } if ((fronptr != NULL) && (fronval != 0)) /* If frontier array wanted and vertex belongs to it */ *(fronptr ++) = vertnum; /* Add vertex to frontier array */ } if (fronptr != NULL) /* If frontier array wanted */ *fnbrptr = (Gnum) (fronptr - frontab); /* Record size of frontier array */ *cpl1ptr = cpl1sum; *ver1ptr = ver1nbr; *cmliptr = cmlisum / 2; /* We counted cut load twice */ *cmleptr = cmlesum; *cmgeptr = cmgesum; } /* This routine computes the cost of the ** current partition of the given graph. ** It returns: ** - VOID : in all cases. */ void bgraphCost ( Bgraph * restrict const grafptr) { Gnum cpl1sum; /* Sum of vertex loads in part 1 */ Gnum ver1nbr; /* Number of vertices in part 1 */ Gnum cmlisum; /* Sum of internal communication load */ Gnum cmlesum; /* External communication load */ Gnum cmgesum; /* External communication gain */ bgraphCost2 (grafptr, grafptr->parttax, grafptr->frontab, &grafptr->fronnbr, &cpl1sum, &ver1nbr, &cmlisum, &cmlesum, &cmgesum); grafptr->compload0 = grafptr->s.velosum - cpl1sum; grafptr->compload0dlt = grafptr->compload0 - grafptr->compload0avg; grafptr->compsize0 = grafptr->s.vertnbr - ver1nbr; grafptr->commload = cmlisum * grafptr->domndist + cmlesum; /* Overall communication load */ grafptr->commgainextn = cmgesum; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/bgraph_store.c000066400000000000000000000152551514310134000265500ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : bgraph_store.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the save data **/ /** structure handling routines for bipar- **/ /** tition graphs. **/ /** **/ /** DATES : # Version 3.3 : from : 17 oct 1998 **/ /** to : 17 oct 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 16 jun 2004 **/ /** # Version 5.1 : from : 22 feb 2011 **/ /** to : 22 feb 2011 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "bgraph.h" /**********************************/ /* */ /* Store graph handling routines. */ /* */ /**********************************/ /* This routine builds a save structure ** for the given active graph. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int bgraphStoreInit ( const Bgraph * const grafptr, BgraphStore * const storptr) { Gnum savsize; savsize = (grafptr->s.vertnnd - grafptr->s.baseval) * (sizeof (GraphPart) + sizeof (Gnum)); /* Compute size for frontier and part arrays */ if ((storptr->datatab = (byte *) memAlloc (savsize)) == NULL) { /* Allocate save structure */ errorPrint ("bgraphStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a save structure. ** It returns: ** - VOID : in all cases. */ void bgraphStoreExit ( BgraphStore * const storptr) { memFree (storptr->datatab); #ifdef SCOTCH_DEBUG_BGRAPH2 storptr->datatab = NULL; #endif /* SCOTCH_DEBUG_BGRAPH2 */ } /* This routine saves partition data from the ** given active graph to the given save structure. ** It returns: ** - VOID : in all cases. */ void bgraphStoreSave ( const Bgraph * const grafptr, BgraphStore * const storptr) { Gnum vertnbr; /* Number of vertices in graph */ byte * parttab; /* Pointer to part data save area */ byte * frontab; /* Pointer to frontier data save area */ storptr->fronnbr = grafptr->fronnbr; /* Save partition parameters */ storptr->compload0dlt = grafptr->compload0dlt; storptr->compsize0 = grafptr->compsize0; storptr->commload = grafptr->commload; storptr->commgainextn = grafptr->commgainextn; frontab = storptr->datatab; /* Compute data offsets within save structure */ parttab = frontab + grafptr->fronnbr * sizeof (Gnum); vertnbr = grafptr->s.vertnnd - grafptr->s.baseval; memCpy (frontab, grafptr->frontab, grafptr->fronnbr * sizeof (Gnum)); memCpy (parttab, grafptr->parttax + grafptr->s.baseval, vertnbr * sizeof (GraphPart)); } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void bgraphStoreUpdt ( Bgraph * const grafptr, const BgraphStore * const storptr) { Gnum vertnbr; /* Number of vertices in graph */ byte * frontab; /* Pointer to frontier data save area */ byte * parttab; /* Pointer to part data save area */ grafptr->fronnbr = storptr->fronnbr; /* Load partition parameters */ grafptr->compload0 = storptr->compload0dlt + grafptr->compload0avg; grafptr->compload0dlt = storptr->compload0dlt; grafptr->compsize0 = storptr->compsize0; grafptr->commload = storptr->commload; grafptr->commgainextn = storptr->commgainextn; grafptr->bbalval = (double) ((grafptr->compload0dlt < 0) ? (- grafptr->compload0dlt) : grafptr->compload0dlt) / (double) grafptr->compload0avg; frontab = storptr->datatab; /* Compute data offsets within save structure */ parttab = frontab + grafptr->fronnbr * sizeof (Gnum); vertnbr = grafptr->s.vertnnd - grafptr->s.baseval; memCpy (grafptr->frontab, frontab, grafptr->fronnbr * sizeof (Gnum)); memCpy (grafptr->parttax + grafptr->s.baseval, parttab, vertnbr * sizeof (GraphPart)); #ifdef SCOTCH_DEBUG_BGRAPH2 if (bgraphCheck (grafptr) != 0) errorPrint ("bgraphStoreUpdt: inconsistent graph data"); #endif /* SCOTCH_DEBUG_BGRAPH2 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/comm.c000066400000000000000000000210751514310134000250210ustar00rootroot00000000000000/* Copyright 2010,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : comm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the large size **/ /** communication handling routines. **/ /** **/ /** DATES : # Version 5.1 : from : 30 jul 2010 **/ /** to : 30 jul 2010 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 02 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_COMM #include "module.h" #include "common.h" #include "comm.h" /************************************/ /* */ /* These routines handle large size */ /* communications */ /* */ /************************************/ /* ** */ int commAllgatherv ( void * const senddattab, const Gnum sendcntnbr, MPI_Datatype sendtypval, void * const recvdattab, const Gnum * const recvcnttab, const Gnum * const recvdsptab, MPI_Datatype recvtypval, MPI_Comm comm) { int * restrict ircvcnttab; int * restrict ircvdsptab; int procglbnbr; int procnum; int o; if (sizeof (Gnum) == sizeof (int)) /* If no integer size issue, directly call the MPI routine */ return (MPI_Allgatherv (senddattab, (int) sendcntnbr, sendtypval, recvdattab, (const int * const) recvcnttab, (const int * const) recvdsptab, recvtypval, comm)); MPI_Comm_size (comm, &procglbnbr); if (memAllocGroup ((void **) (void *) &ircvcnttab, (size_t) (procglbnbr * sizeof (int)), &ircvdsptab, (size_t) (procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("commAllgatherv: out of memory"); return (MPI_ERR_OTHER); } for (procnum = 0; procnum < procglbnbr; procnum ++) { ircvcnttab[procnum] = (int) recvcnttab[procnum]; ircvdsptab[procnum] = (int) recvdsptab[procnum]; if (((Gnum) ircvcnttab[procnum] != recvcnttab[procnum]) || ((Gnum) ircvdsptab[procnum] != recvdsptab[procnum])) { errorPrint ("commAllgatherv: communication indices out of range"); memFree (ircvcnttab); return (MPI_ERR_ARG); } } o = MPI_Allgatherv (senddattab, sendcntnbr, sendtypval, recvdattab, ircvcnttab, ircvdsptab, recvtypval, comm); memFree (ircvcnttab); return (o); } /* ** */ int commGatherv ( void * const senddattab, const Gnum sendcntnbr, MPI_Datatype sendtypval, void * const recvdattab, const Gnum * const recvcnttab, const Gnum * const recvdsptab, MPI_Datatype recvtypval, const int rootnum, MPI_Comm comm) { int * restrict ircvcnttab; int * restrict ircvdsptab; int proclocnum; int o; if (sizeof (Gnum) == sizeof (int)) /* If no integer size issue, directly call the MPI routine */ return (MPI_Gatherv (senddattab, (int) sendcntnbr, sendtypval, recvdattab, (const int * const) recvcnttab, (const int * const) recvdsptab, recvtypval, rootnum, comm)); MPI_Comm_rank (comm, &proclocnum); ircvcnttab = NULL; if (rootnum == proclocnum) { int procglbnbr; int procnum; MPI_Comm_size (comm, &procglbnbr); if (memAllocGroup ((void **) (void *) &ircvcnttab, (size_t) (procglbnbr * sizeof (int)), &ircvdsptab, (size_t) (procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("commGatherv: out of memory"); return (MPI_ERR_OTHER); } for (procnum = 0; procnum < procglbnbr; procnum ++) { ircvcnttab[procnum] = (int) recvcnttab[procnum]; ircvdsptab[procnum] = (int) recvdsptab[procnum]; if (((Gnum) ircvcnttab[procnum] != recvcnttab[procnum]) || ((Gnum) ircvdsptab[procnum] != recvdsptab[procnum])) { errorPrint ("commGatherv: communication indices out of range"); memFree (ircvcnttab); return (MPI_ERR_ARG); } } } o = MPI_Gatherv (senddattab, sendcntnbr, sendtypval, recvdattab, ircvcnttab, ircvdsptab, recvtypval, rootnum, comm); if (ircvcnttab != NULL) memFree (ircvcnttab); return (o); } /* ** */ int commScatterv ( void * const senddattab, const Gnum * const sendcnttab, const Gnum * const senddsptab, MPI_Datatype sendtypval, void * const recvdattab, const Gnum recvcntnbr, MPI_Datatype recvtypval, const int rootnum, MPI_Comm comm) { int * restrict isndcnttab; int * restrict isnddsptab; int proclocnum; int o; if (sizeof (Gnum) == sizeof (int)) /* If no integer size issue, directly call the MPI routine */ return (MPI_Scatterv (senddattab, (const int * const) sendcnttab, (const int * const) senddsptab, sendtypval, recvdattab, (int) recvcntnbr, recvtypval, rootnum, comm)); MPI_Comm_rank (comm, &proclocnum); isndcnttab = NULL; if (rootnum == proclocnum) { int procglbnbr; int procnum; MPI_Comm_size (comm, &procglbnbr); if (memAllocGroup ((void **) (void *) &isndcnttab, (size_t) (procglbnbr * sizeof (int)), &isnddsptab, (size_t) (procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("commScatterv: out of memory"); return (MPI_ERR_OTHER); } for (procnum = 0; procnum < procglbnbr; procnum ++) { isndcnttab[procnum] = (int) sendcnttab[procnum]; isnddsptab[procnum] = (int) senddsptab[procnum]; if (((Gnum) isndcnttab[procnum] != sendcnttab[procnum]) || ((Gnum) isnddsptab[procnum] != senddsptab[procnum])) { errorPrint ("commScatterv: communication indices out of range"); memFree (isndcnttab); return (MPI_ERR_ARG); } } } o = MPI_Scatterv (senddattab, isndcnttab, isnddsptab, sendtypval, recvdattab, (int) recvcntnbr, recvtypval, rootnum, comm); if (isndcnttab != NULL) memFree (isndcnttab); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/comm.h000066400000000000000000000073201514310134000250230ustar00rootroot00000000000000/* Copyright 2010,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : comm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for communication functions. **/ /** **/ /** DATES : # Version 5.1 : from : 30 jul 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 02 aug 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ #ifndef GNUMMAX /* If dgraph.h not included */ typedef INT Gnum; /* Vertex and edge numbers */ typedef UINT Gunum; /* Unsigned type of same width */ #define GNUMMAX (INTVALMAX) /* Maximum signed Gnum value */ #define GNUMSTRING INTSTRING /* String to printf a Gnum */ #endif /* GNUMMAX */ /* ** The function prototypes. */ int commAllgatherv (void * const, const Gnum, MPI_Datatype, void * const, const Gnum * const, const Gnum * const, MPI_Datatype, MPI_Comm); int commGatherv (void * const, const Gnum, MPI_Datatype, void * const, const Gnum * const, const Gnum * const, MPI_Datatype, const int, MPI_Comm); int commScatterv (void * const, const Gnum * const, const Gnum * const, MPI_Datatype, void * const, const Gnum, MPI_Datatype, const int, MPI_Comm); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common.c000066400000000000000000000143701514310134000253560ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2022,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** David GOUDIN **/ /** Pascal HENON **/ /** Pierre RAMET **/ /** Yves SECRETAN (v5.1) **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are common routines used **/ /** by all modules. **/ /** **/ /** DATES : # Version 0.0 : from : 08 may 1998 **/ /** to : 14 sep 1998 **/ /** # Version 2.0 : from : 27 sep 2004 **/ /** to : 27 sep 2004 **/ /** # Version 5.1 : from : 27 jun 2010 **/ /** to : 23 nov 2010 **/ /** # Version 6.0 : from : 21 sep 2013 **/ /** to : 21 sep 2013 **/ /** # Version 7.0 : from : 10 jun 2018 **/ /** to : 27 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" /*********************************/ /* */ /* Environment reading routines. */ /* */ /*********************************/ int envGetInt ( const char * const nameptr, /*+ Variable name +*/ const int defaval) /*+ Default value +*/ { char * envvptr; /* Pointer to environment value */ char * envvend; long envvval; envvptr = getenv (nameptr); if ((envvptr == NULL) || (*envvptr == '\0')) return (defaval); envvval = strtol (envvptr, &envvend, 0); return ((*envvend == '\0') ? (int) envvval : defaval); } const char * envGetStr ( const char * const nameptr, /*+ Variable name +*/ const char * const defaval) /*+ Default value +*/ { const char * envvptr; /* Pointer to environment value */ envvptr = getenv (nameptr); return ((envvptr == NULL) ? defaval : envvptr); } /*******************/ /* */ /* Timing routine. */ /* */ /*******************/ double clockGet (void) { #ifdef MPI_INT return (MPI_Wtime ()); #else /* MPI_INT */ #if defined COMMON_OS_WINDOWS double res = 0.0; LARGE_INTEGER fq; if (QueryPerformanceFrequency (&fq) == 0) { FILETIME ft; ULARGE_INTEGER t; GetSystemTimeAsFileTime (&ft); t.LowPart = ft.dwLowDateTime; t.HighPart = ft.dwHighDateTime; res = (double) t.QuadPart / 10000000.0; } else { LARGE_INTEGER pc; QueryPerformanceCounter (&pc); res = (double) pc.QuadPart / (double) fq.QuadPart; } return (res); #elif defined COMMON_TIMING_OLD /* Old Unix timing routine */ struct rusage data; getrusage (RUSAGE_SELF, &data); return (((double) data.ru_utime.tv_sec + (double) data.ru_stime.tv_sec) + ((double) data.ru_utime.tv_usec + (double) data.ru_stime.tv_usec) * 1.0e-6L); #else /* COMMON_TIMING_OLD */ #if defined (_POSIX_TIMERS) && (_POSIX_TIMERS >= 200112L) struct timespec tp; clock_gettime (CLOCK_REALTIME, &tp); /* Elapsed time */ return ((double) tp.tv_sec + (double) tp.tv_nsec * 1.0e-9L); #else /* defined (_POSIX_TIMERS) && (_POSIX_TIMERS >= 200112L) */ struct timeval tv; gettimeofday (&tv, NULL); return ((double) tv.tv_sec + (double) tv.tv_usec * 1.0e-6L); #endif /* defined (_POSIX_TIMERS) && (_POSIX_TIMERS >= 200112L) */ #endif /* COMMON_OS_WINDOWS / COMMON_TIMING_OLD */ #endif /* MPI_INT */ } /***************************/ /* */ /* Usage printing routine. */ /* */ /***************************/ void usagePrint ( FILE * const stream, const char ** const data) { const char ** cptr; fprintf (stream, "Usage is:\n"); for (cptr = data; *cptr != NULL; cptr ++) fprintf (stream, " %s\n", *cptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common.h000066400000000000000000000562321514310134000253660ustar00rootroot00000000000000/* Copyright 2004,2007-2016,2018-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** David GOUDIN **/ /** Pascal HENON **/ /** Pierre RAMET **/ /** Cedric CHEVALIER (v5.0) **/ /** Sebastien FOURESTIER (v6.0) **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are the common data **/ /** declarations for all modules. **/ /** **/ /** DATES : # Version 0.0 : from : 08 may 1998 **/ /** to : 08 jan 2001 **/ /** # Version 1.0 : from : 06 jun 2002 **/ /** to : 06 jun 2002 **/ /** # Version 2.0 : from : 13 jun 2005 **/ /** to : 01 jul 2008 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 23 nov 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 21 aug 2020 **/ /** # Version 6.1 : from : 02 apr 2021 **/ /** to : 24 jun 2021 **/ /** # Version 7.0 : from : 03 jun 2018 **/ /** to : 28 sep 2025 **/ /** **/ /************************************************************/ #ifndef COMMON_H #define COMMON_H /* ** The includes. */ #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif /* _XOPEN_SOURCE */ #ifdef COMMON_OS_MACOS #ifndef _DARWIN_C_SOURCE #define _DARWIN_C_SOURCE #endif /* _DARWIN_C_SOURCE */ #define HAVE_SYS_SYSCTL_H #ifndef COMMON_TIMING_OLD #define COMMON_TIMING_OLD #endif /* COMMON_TIMING_OLD */ #endif /* COMMON_OS_MACOS */ #ifdef COMMON_PTHREAD #ifdef COMMON_PTHREAD_AFFINITY_LINUX #define _GNU_SOURCE /* Must define this before any include */ #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ #endif /* COMMON_PTHREAD */ #ifdef COMMON_OS_WINDOWS #include /* For _pipe () */ #include /* Fow Windows _pipe () call */ #include #define HAVE_STDINT_H #define HAVE_UINT_T #define HAVE_NOT_SYS_WAIT_H #ifdef _MSC_VER #define HAVE_NOT_STRINGS_H #if (INT_WIDTH == 64) /* On WIN32 / MSVC, sizeof (int) == sizeof (long) in all cases, unlike other platforms */ #define __sync_lock_test_and_set(m,v) _InterlockedExchange64 ((long *) (m), (v)) #define __sync_lock_release(m) _InterlockedExchange64 ((long *) (m), 0L) #else /* (INT_WIDTH == 64) */ #define __sync_lock_test_and_set(m,v) _InterlockedExchange ((long *) (m), (v)) #define __sync_lock_release(m) _InterlockedExchange ((long *) (m), 0L) #endif /* (INT_WIDTH == 64) */ #endif /* _MSC_VER */ #define ssize_t SSIZE_T #if ((defined _WIN32) && (! defined __MINGW32__)) #define strncasecmp strnicmp #define strcasecmp stricmp #endif /* ((defined _WIN32) && (! defined __MINGW32__)) */ #define pipe(fd) _pipe (fd, 32768, O_BINARY) #define sleep(s) Sleep (1000 * (s)) #endif /* COMMON_OS_WINDOWS */ #if ((! defined COMMON_OS_WINDOWS) && (! defined HAVE_NOT_UNISTD_H)) #include #endif /* ((! defined COMMON_OS_WINDOWS) && (! defined HAVE_NOT_UNISTD_H)) */ #include #include #include #include /* For ptrdiff_t */ #include #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #ifdef HAVE_MALLOC_H #include /* Deprecated, but required on some old systems */ #endif /* HAVE_MALLOC_H */ #include #ifndef HAVE_NOT_STRINGS_H #include #endif /* HAVE_NOT_STRINGS_H */ #include /* For the effective calls to clock () */ #include #include #include #if ((defined COMMON_TIMING_OLD) || (defined HAVE_SYS_TIME_H)) #include #endif /* ((defined COMMON_TIMING_OLD) || (defined HAVE_SYS_TIME_H)) */ #if ((defined COMMON_TIMING_OLD) || (defined HAVE_SYS_RESOURCE_H)) #include #endif /* ((defined COMMON_TIMING_OLD) || (defined HAVE_SYS_RESOURCE_H)) */ #if (defined HAVE_SYS_SYSCTL_H) #include #endif /* (defined HAVE_SYS_SYSCTL_H) */ #ifndef HAVE_NOT_SYS_WAIT_H #include /* For waitpid () */ #endif /* HAVE_NOT_SYS_WAIT_H */ #ifdef COMMON_MPI #include #endif /* COMMON_MPI */ #ifdef COMMON_PTHREAD #ifdef COMMON_THREAD_WIN32 #include "pthread_win32.h" #else /* COMMON_THREAD_WIN32 */ #include #endif /* COMMON_THREAD_WIN32 */ #ifdef COMMON_PTHREAD_AFFINITY_LINUX #include #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ #endif /* COMMON_PTHREAD */ /* ** Working definitions. */ #if ((defined COMMON_MEMORY_TRACE) || (defined COMMON_MEMORY_CHECK)) #define memAlloc(size) memAllocRecord ((size) | 8) #define memRealloc(ptr,size) memReallocRecord ((ptr), ((size) | 8)) #define memFree(ptr) memFreeRecord ((void *) (ptr)) #else /* ((defined COMMON_MEMORY_TRACE) || (defined COMMON_MEMORY_CHECK)) */ #define memAlloc(size) malloc ((size) | 8) /* For platforms which return NULL for malloc(0) */ #define memRealloc(ptr,size) realloc ((ptr), ((size) | 8)) #define memFree(ptr) free ((char *) (ptr)) #endif /* ((defined COMMON_MEMORY_TRACE) || (defined COMMON_MEMORY_CHECK)) */ #define memSet(ptr,val,siz) memset ((void *) (ptr), (val), (siz)) #define memCpy(dst,src,siz) memcpy ((void *) (dst), (void *) (src), (siz)) #define memMov(dst,src,siz) memmove ((void *) (dst), (void *) (src), (siz)) #ifndef MIN #define MIN(x,y) (((x) < (y)) ? (x) : (y)) #endif /* MIN */ #ifndef MAX #define MAX(x,y) (((x) < (y)) ? (y) : (x)) #endif /* MAX */ #ifndef ABS #define ABS(x) MAX ((x), -(x)) #endif /* ABS */ #ifndef SIGN #define SIGN(x) (((x) < 0) ? -1 : 1) #endif /* SIGN */ /* ** Handling of generic types. */ #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_UINT_T)) #define UINT32 uint32_t #define UINT64 uint64_t #else /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_UINT_T)) */ #define UINT32 u_int32_t #define UINT64 u_int64_t #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_UINT_T)) */ #ifndef INT /* If type not externally overriden */ #ifdef INTSIZE32 #define INT int32_t #define UINT UINT32 #define COMM_INT MPI_INT32_T #ifdef PRId32 #define INTSTRING "%" PRId32 #define UINTSTRING "%" PRIu32 #else /* PRId32 */ #define INTSTRING "%d" #define UINTSTRING "%u" #endif /* PRId32 */ #else /* INTSIZE32 */ #ifdef INTSIZE64 #define INT int64_t #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_UINT_T)) #define UINT uint64_t #else /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_UINT_T)) */ #define UINT u_int64_t #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_UINT_T)) */ #define COMM_INT MPI_INT64_T #ifdef PRId64 #define INTSTRING "%" PRId64 #define UINTSTRING "%" PRIu64 #else /* PRId64 */ #define INTSTRING "%lld" #define UINTSTRING "%llu" #endif /* PRId64 */ #else /* INTSIZE64 */ #ifdef LONG /* Better not use it */ #define INT long /* Long integer type */ #define UINT unsigned long #define COMM_INT MPI_LONG #define INTSTRING "%ld" #define UINTSTRING "%lu" #else /* LONG */ #define INT int /* Default integer type */ #define UINT unsigned int #define COMM_INT MPI_INT /* Generic MPI integer type */ #define INTSTRING "%d" #define UINTSTRING "%u" #endif /* LONG */ #endif /* INTSIZE64 */ #endif /* INTSIZE32 */ #endif /* INT */ #ifndef IDX /* If type not externally overriden */ #ifdef IDXSIZE32 #define IDX int32_t #else /* IDXSIZE32 */ #ifdef IDXSIZE64 #define IDX int64_t #else /* IDXSIZE64 */ #define IDX INT #endif /* IDXSIZE64 */ #endif /* IDXSIZE32 */ #endif /* IDX */ #ifndef INTSIZEBITS #define INTSIZEBITS (sizeof (INT) << 3) #endif /* INTSIZEBITS */ #define INTVALMAX ((INT) (((UINT) 1 << (INTSIZEBITS - 1)) - 1)) #define byte unsigned char /* Byte type */ #ifndef BYTE #define BYTE byte #endif /* BYTE */ #ifndef COMM_BYTE #define COMM_BYTE MPI_BYTE #endif /* COMM_BYTE */ #define COMM_PART COMM_BYTE /* ** Handling of pseudo-random numbers. */ /* The pseudo-random state structure. It is based on the xorshift128+ algorithm by Vigna, both for 32- and 64-bit integers. */ typedef struct IntRandState_ { UINT64 randtab[2]; /*+ State vector +*/ } IntRandState; /** The pseudo-random context. **/ typedef struct IntRandContext_ { volatile int flagval; /*+ Initialized flag +*/ int procval; /*+ Process number +*/ UINT64 seedval; /*+ Seed value +*/ IntRandState statdat; /*+ State data +*/ } IntRandContext; /** The global pseudo-random context. **/ extern IntRandContext intranddat; /*+ Global random context +*/ /* ** Handling of flag arrays. */ #define flagSize(n) (((n) + (sizeof (int) << 3) - 1) / (sizeof (int) << 3)) #define flagVal(a,n) (((a)[(n) / (sizeof (int) << 3)] >> ((n) & ((sizeof (int) << 3) - 1))) & 1) #define flagSet(a,n) (a)[(n) / (sizeof (int) << 3)] |= (1 << ((n) & ((sizeof (int) << 3) - 1))) /* ** Handling of timers. */ /** The clock type. **/ typedef struct Clock_ { double time[2]; /*+ The start and accumulated times +*/ } Clock; /* ** Handling of threads. */ /** The abstract thread context. **/ struct ThreadContext_; typedef struct ThreadContext_ ThreadContext; /** The thread descriptor. **/ typedef struct ThreadDescriptor_ { ThreadContext * contptr; /*+ Pointer to thread context +*/ int thrdnum; /*+ Thread instance number +*/ } ThreadDescriptor; /** The thread service routines auxiliary function types. **/ typedef void (* ThreadFunc) (ThreadDescriptor * const, void * const); typedef void (* ThreadReduceFunc) (void * const, void * const, const void * const); typedef void (* ThreadScanFunc) (void * const, void * const, const int, const int, const void * const); /* ** Handling of values. */ /*+ The abstract context values datatype. +*/ struct ValuesContext_; typedef struct ValuesContext_ ValuesContext; /* ** Handling of execution contexts. */ /** The execution context. **/ typedef struct Context_ { ThreadContext * thrdptr; /*+ Threading context +*/ IntRandContext * randptr; /*+ Random context +*/ ValuesContext * valuptr; /*+ Values context +*/ } Context; /*+ The context splitting user function. +*/ typedef void (* ContextSplitFunc) (Context * const, const int, void * const); /*+ The data structure for passing arguments to the context splitting threaded routine. +*/ typedef struct ContextSplit_ { Context conttab[2]; /*+ Context data for sub-context +*/ ContextSplitFunc funcptr; /*+ Pointer to user function to be called by leaders +*/ void * paraptr; /*+ Parameter data +*/ } ContextSplit; /* ** Handling of files. */ /** The file flags **/ #define FILEMODE 0x0001 #define FILEMODER 0x0000 #define FILEMODEW 0x0001 #define FILEFREENAME 0x0002 /** The file structure. **/ typedef struct File_ { int flagval; /*+ File mode +*/ char * nameptr; /*+ File name +*/ FILE * fileptr; /*+ File pointer +*/ struct FileCompress_ * compptr; /*+ (De)compression data +*/ } File; /* ** Function prototypes. */ int envGetInt (const char * const, const int); const char * envGetStr (const char * const, const char *); void * memAllocGroup (void **, ...); void * memReallocGroup (void *, ...); void * memOffset (void *, ...); #if ((defined COMMON_MEMORY_TRACE) || (defined COMMON_MEMORY_CHECK)) void * memAllocRecord (size_t); void * memReallocRecord (void * const, size_t); void memFreeRecord (void * const); #endif /* ((defined COMMON_MEMORY_TRACE) || (defined COMMON_MEMORY_CHECK)) */ IDX memCur (); /* What is internally an intptr_t has to be turned into an interface type */ IDX memMax (); void usagePrint (FILE * const, const char (* [])); void fileBlockInit (File * const, const int); int fileBlockOpen (File * const, const int); int fileBlockOpenDist (File * const, const int, const int, const int, const int); void fileBlockClose (File * const, const int); char * fileNameDistExpand (char * const, const int, const int); void errorProg (const char * const); void errorPrint (const char * const, ...); void errorPrintW (const char * const, ...); int intLoad (FILE * const, INT * const); int intSave (FILE * const, const INT); void intAscn (INT * const, const INT, const INT); void intPerm (INT * const, const INT, Context * const); void intRandInit (IntRandContext * const); int intRandLoad (IntRandContext * const, FILE * const); void intRandProc (IntRandContext * const, const int); void intRandReset (IntRandContext * const); int intRandSave (IntRandContext * const, FILE * const); void intRandSeed (IntRandContext * const, INT); UINT intRandVal (IntRandContext * const, UINT); UINT intRandVal2 (IntRandContext * const); void intRandSpawn (IntRandContext * const, const int, IntRandContext * const); void intSort1asc1 (void * const, const INT); void intSort2asc1 (void * const, const INT); void intSort2asc2 (void * const, const INT); void intSort3asc1 (void * const, const INT); void intSort3asc2 (void * const, const INT); void intPsort2asc1 (void * const, const INT, const int); INT intSearchDicho (const INT * const, const INT, const INT, const INT); INT intGcd (INT, INT); void clockInit (Clock * const); void clockStart (Clock * const); void clockStop (Clock * const); double clockVal (Clock * const); double clockGet (void); void stringSubst (char * const, const char * const, const char * const); int threadContextInit (ThreadContext * const, int, const int * const); void threadContextExit (ThreadContext * const); void threadContextExit2 (ThreadContext * const); int threadContextBarrier (ThreadContext * const); void threadContextImport1 (ThreadContext * const, const int); void threadContextImport2 (ThreadContext * const, const int); int threadContextNbr (ThreadContext * const); void threadLaunch (ThreadContext * const, ThreadFunc const, void * const); void threadReduce (const ThreadDescriptor * const, void * const, const size_t, ThreadReduceFunc const, const int, const void * const); void threadScan (const ThreadDescriptor * const, void * const, const size_t, ThreadScanFunc const, const void * const); void contextInit (Context * const); void contextExit (Context * const); int contextCommit (Context * const); int contextRandomClone (Context * const); int contextThreadInit2 (Context * const, const int, const int * const); int contextThreadInit (Context * const); int contextThreadLaunchSplit (Context * const, ContextSplitFunc const, void * const); int contextValuesInit (Context * const, void * const, const size_t, const int, const size_t, const int, const size_t); int contextValuesGetDbl (Context * const, const int, double * const); int contextValuesGetInt (Context * const, const int, INT * const); int contextValuesSetDbl (Context * const, const int, const double); int contextValuesSetInt (Context * const, const int, const INT); /* ** Macro definitions. */ #define clockInit(clk) ((clk)->time[0] = (clk)->time[1] = 0) #define clockStart(clk) ((clk)->time[0] = clockGet ()) #define clockStop(clk) ((clk)->time[1] += (clockGet () - (clk)->time[0])) #define clockVal(clk) ((clk)->time[1]) #define fileBlockFile(b,i) ((b)[i].fileptr) #define fileBlockMode(b,i) ((b)[i].modeptr) #define fileBlockName(b,i) ((b)[i].nameptr) #define threadBarrier(t) threadContextBarrier ((t)->contptr) #define threadNbr(t) threadContextNbr ((t)->contptr) #define threadNum(t) ((t)->thrdnum) #define contextRandom(c) ((c)->randptr) #define contextIntRandVal(c,n) intRandVal ((c)->randptr, (n)) #define contextIntRandVal2(c) intRandVal2 ((c)->randptr) #define contextThreadLaunch(c,f,d) threadLaunch ((c)->thrdptr, (f), (d)) #define contextThreadNbr(c) threadContextNbr ((c)->thrdptr) #define DATASIZE(n,p,i) ((INT) (((n) + ((p) - 1 - (i))) / (p))) #define DATASCAN(n,p,i) ((i) * ((INT) (n) / (INT) (p)) + (((i) > ((n) % (p))) ? ((n) % (p)) : (i))) #define FORTRAN(nu,nl,pl,pc) FORTRAN2(REPLACE(nu),REPLACE(nl),pl,pc) #define FORTRAN2(nu,nl,pl,pc) \ void nu pl; \ void nl pl \ { nu pc; } \ void GLUE(nl,_) pl \ { nu pc; } \ void GLUE(nl,__) pl \ { nu pc; } \ void nu pl #define REPLACE(s) s #define GLUE(p,s) p##s #define STRINGIFY2(n) #n #define STRINGIFY(n) STRINGIFY2(n) #endif /* COMMON_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_context.c000066400000000000000000000260631514310134000271240ustar00rootroot00000000000000/* Copyright 2019,2021-2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_context.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the execution **/ /** context management routines. **/ /** **/ /** DATES : # Version 7.0 : from : 07 may 2019 **/ /** to : 12 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_thread.h" #include "common_thread_system.h" #include "common_values.h" /* ** The static and global variables. */ static ValuesContext valudat = { NULL, NULL, 0, 0, 0, 0, 0 }; /***********************************/ /* */ /* These routines handle contexts. */ /* */ /***********************************/ /* This routine initializes the given context. ** It returns: ** - void : in all cases. */ void contextInit ( Context * const contptr) { contptr->thrdptr = NULL; /* Thread context not initialized yet */ contptr->randptr = &intranddat; /* Use global random generator by default */ contptr->valuptr = NULL; /* Allow user library to provide its values */ intRandInit (&intranddat); /* Make sure random context is initialized before cloning */ } /* This routine frees a context structure. ** It returns: ** - VOID : in all cases. */ void contextExit ( Context * const contptr) { if (contptr->thrdptr != NULL) { /* If context has been commited */ threadContextExit (contptr->thrdptr); memFree (contptr->thrdptr); } if (contptr->randptr != &intranddat) /* If not global random generator */ memFree (contptr->randptr); if (contptr->valuptr != &valudat) { /* If not global values array */ if (contptr->valuptr->dataptr != contptr->valuptr->dainptr) /* If modified data array */ memFree (contptr->valuptr->dataptr); memFree (contptr->valuptr); } #ifdef SCOTCH_DEBUG_CONTEXT1 contptr->thrdptr = NULL; contptr->randptr = NULL; contptr->valuptr = NULL; #endif /* SCOTCH_DEBUG_CONTEXT1 */ } /* This routine allocates the features of the ** given context if they have not been already. ** It returns: ** - 0 : if the initialization succeeded. ** - !0 : on error. */ int contextCommit ( Context * const contptr) { int o; o = 0; if (contptr->thrdptr == NULL) /* If thread context not already initialized */ o = contextThreadInit (contptr); if (contptr->valuptr == NULL) /* If no values provided by user library */ contptr->valuptr = &valudat; /* Set default data to avoid any crash */ return (o); } /************************************/ /* */ /* These routines handle the random */ /* generator features of contexts. */ /* */ /************************************/ /*+ This routine creates a clone of the default *** pseudo-random in its current state and places *** it in the given context. *** It returns: *** - 0 : if the cloning succeeded. *** - !0 : on error. +*/ int contextRandomClone ( Context * const contptr) { IntRandContext * randptr; if (contptr->randptr == &intranddat) { /* If no clone yet, allocate space for it */ if ((randptr = memAlloc (sizeof (IntRandContext))) == NULL) { errorPrint ("contextRandomClone: out of memory"); return (1); } contptr->randptr = randptr; /* Context now uses its private clone */ } else /* Else re-use old clone */ randptr = contptr->randptr; *randptr = intranddat; /* Clone default generator (always already initialized) */ return (0); } /************************************/ /* */ /* These routines handle the thread */ /* features of contexts. */ /* */ /************************************/ /* This routine initializes the thread context ** of an execution context. ** It returns: ** - 0 : if the thread context has been initialized. ** - !0 : on error. */ int contextThreadInit2 ( Context * const contptr, const int thrdnbr, const int * const coretab) { if (contptr->thrdptr != NULL) { errorPrint ("contextThreadInit2: thread context already allocated"); return (1); } if ((contptr->thrdptr = memAlloc (sizeof (ThreadContext))) == NULL) { errorPrint ("contextThreadInit2: out of memory"); return (1); } if (threadContextInit (contptr->thrdptr, thrdnbr, coretab) != 0) { memFree (contptr->thrdptr); contptr->thrdptr = NULL; return (1); } return (0); } int contextThreadInit ( Context * const contptr) { int thrdnbr; #ifdef SCOTCH_PTHREAD #ifdef SCOTCH_PTHREAD_NUMBER thrdnbr = SCOTCH_PTHREAD_NUMBER; /* If prescribed number defined at compile time, use it as default */ #else /* SCOTCH_PTHREAD_NUMBER */ thrdnbr = -1; /* Else take the number of cores at run time */ #endif /* SCOTCH_PTHREAD_NUMBER */ thrdnbr = envGetInt ("SCOTCH_PTHREAD_NUMBER", thrdnbr); #else /* SCOTCH_PTHREAD */ thrdnbr = 1; /* No threads allowed */ #endif /* SCOTCH_PTHREAD */ return (contextThreadInit2 (contptr, thrdnbr, NULL)); } /* This routine, to be called only by the leader thread ** of the current threading environment, splits this ** context into two sub-contexts, each of them inheriting ** of (almost) half of the threads of the initial context. ** A new, independent, pseudo-random generator is created ** for the second sub-context. The two sub-contexts are ** initialized as if a contextInit() were called on each ** of them, after which each sub-context leader runs the ** user-provided function within its sub-context. ** It returns: ** - 0 : if sub-contexts could be created. ** - 1 : if initial context is too small. */ static void contextThreadLaunchSplit2 ( ThreadDescriptor * restrict const descptr, /*+ Thread descriptor in initial context +*/ ContextSplit * restrict const spltptr) /*+ Data structure for splitting context +*/ { const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); const int thrdmed = (thrdnbr + 1) / 2; /* Median thread number */ if (thrdnum < thrdmed) { /* If thread belongs to first sub-context */ threadContextImport2 (spltptr->conttab[0].thrdptr, thrdnum); /* Lock all worker threads */ if (thrdnum == 0) { /* If leader thread of sub-context 0 */ spltptr->funcptr (&spltptr->conttab[0], 0, spltptr->paraptr); threadContextExit2 (spltptr->conttab[0].thrdptr); } } else { /* Thread belongs to second sub-context */ threadContextImport2 (spltptr->conttab[1].thrdptr, thrdnum - thrdmed); /* Lock all worker threads */ if (thrdnum == thrdmed) { /* If leader thread of sub-context 1 */ spltptr->funcptr (&spltptr->conttab[1], 1, spltptr->paraptr); threadContextExit2 (spltptr->conttab[1].thrdptr); } } } int contextThreadLaunchSplit ( Context * const contptr, ContextSplitFunc const funcptr, /* Function to launch */ void * const paraptr) /* Function parameters */ { ContextSplit spltdat; /* Data structure for passing arguments */ ThreadContext thrdtab[2]; /* Thread contexts for both sub-contexts */ IntRandContext randdat; /* Pseudo-random context for second sub-context */ const int thrdnbr = contextThreadNbr (contptr); if (thrdnbr <= 1) /* If current context too small or inactive, nothing to do */ return (1); spltdat.conttab[0].thrdptr = &thrdtab[0]; spltdat.conttab[0].randptr = contptr->randptr; /* Re-use pseudo-random generator of initial context in sub-context 0 */ spltdat.conttab[0].valuptr = contptr->valuptr; spltdat.conttab[1].thrdptr = &thrdtab[1]; spltdat.conttab[1].randptr = &randdat; /* Set independent pseudo-random generator for sub-context 1 */ spltdat.conttab[1].valuptr = contptr->valuptr; spltdat.funcptr = funcptr; spltdat.paraptr = paraptr; threadContextImport1 (&thrdtab[0], (thrdnbr + 1) / 2); /* Prepare sub-contexts to host threads */ threadContextImport1 (&thrdtab[1], thrdnbr / 2); intRandProc (&randdat, intRandVal2 (contptr->randptr)); /* Initialize new generator from existing one */ intRandSeed (&randdat, intRandVal2 (contptr->randptr)); threadLaunch (contptr->thrdptr, (ThreadFunc) contextThreadLaunchSplit2, (void *) &spltdat); /* Launch all threads of initial context */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_error.c000066400000000000000000000111331514310134000265610ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_error.c **/ /** **/ /** AUTHORS : David GOUDIN **/ /** Pascal HENON **/ /** Francois PELLEGRINI **/ /** Pierre RAMET **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This module handles errors. **/ /** **/ /** DATES : # Version 0.0 : from : 08 may 1998 **/ /** to : 02 oct 1998 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "common.h" /********************************/ /* */ /* The error handling routines. */ /* */ /********************************/ static char errorProgName[32] = ""; /* This routine sets the program name for ** error reporting. ** It returns: ** - VOID : in all cases. */ void errorProg ( const char * const progstr) /*+ Program name +*/ { strncpy (errorProgName, progstr, 29); errorProgName[29] = '\0'; strcat (errorProgName, ": "); } /* This routine prints an error message with ** a variable number of arguments, as printf () ** does, and exits. ** It returns: ** - EXIT : in all cases. */ void errorPrint ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* Argument list of the call */ fprintf (stderr, "%sERROR: ", errorProgName); va_start (errlist, errstr); vfprintf (stderr, errstr, errlist); /* Print arguments */ va_end (errlist); fprintf (stderr, "\n"); fflush (stderr); /* In case it has been set to buffered mode */ } /* This routine prints a warning message with ** a variable number of arguments, as printf () ** does. ** It returns: ** - VOID : in all cases. */ void errorPrintW ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* Argument list of the call */ fprintf (stderr, "%sWARNING: ", errorProgName); va_start (errlist, errstr); vfprintf (stderr, errstr, errlist); /* Print arguments */ va_end (errlist); fprintf (stderr, "\n"); fflush (stderr); /* In case it has been set to buffered mode */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_file.c000066400000000000000000000266631514310134000263650ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_file.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles files and file **/ /** names. **/ /** **/ /** DATES : # Version 5.0 : from : 21 may 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 27 jun 2010 **/ /** to : 27 jun 2010 **/ /** # Version 6.0 : from : 10 nov 2014 **/ /** to : 14 jul 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 08 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_file.h" #include "common_file_compress.h" /*********************************/ /* */ /* Basic routines for filenames. */ /* */ /*********************************/ /* This routine expands distributed filenames ** according to process numbers. ** It returns: ** - NULL : on error. ** - nameptr : no expansion took place. ** - !NULL : expanded string. */ char * fileNameDistExpand ( char * const nameptr, /*+ Pointer to name string pointer +*/ const int procnbr, /*+ Number of processes +*/ const int procnum) /*+ Number of current process +*/ { size_t namemax; size_t namenum; char * naexptr; size_t naexmax; size_t naexnum; int flagval; /* Flag set if expansion took place */ namemax = strlen (nameptr); naexmax = namemax + FILENAMEDISTEXPANDNBR * 2; if ((naexptr = memAlloc ((naexmax + 1) * sizeof (char))) == NULL) /* "+ 1" for terminating character */ return (NULL); #ifdef COMMON_DEBUG sprintf (naexptr, FILENAMEDISTEXPANDSTR, procnbr); /* TRICK: test if FILENAMEDISTEXPANDNBR is a size large enough */ if (atoi (naexptr) != procnbr) { errorPrint ("fileNameDistExpand: undersized integer string size"); memFree (naexptr); return (NULL); } #endif /* COMMON_DEBUG */ for (namenum = naexnum = 0, flagval = 0; namenum < namemax; ) { char charval; int dataval = 0; size_t datasiz; charval = nameptr[namenum ++]; /* Get current character */ datasiz = 1; /* Assume individual expanded character */ if (charval == '%') { char chnxval; /* Value of next char */ switch (chnxval = nameptr[namenum ++]) { case 'p' : /* "%p" translates into number of processes */ flagval = 1; datasiz = FILENAMEDISTEXPANDNBR; dataval = procnbr; break; case 'r' : /* "%r" translates into process rank */ flagval = 1; datasiz = FILENAMEDISTEXPANDNBR; dataval = procnum; break; case '-' : /* "%-" translates into nothing but indicates distributed file */ datasiz = 0; flagval = 1; break; case '%' : /* "%%" translates into '%' */ break; default : charval = chnxval; /* Unrecognized character */ } } if (datasiz > 0) { if ((naexnum + datasiz) > naexmax) { char * nanwptr; naexmax += datasiz + FILENAMEDISTEXPANDNBR; if ((nanwptr = memRealloc (naexptr, (naexmax + 1) * sizeof (char))) == NULL) { /* "+ 1" for terminating character */ memFree (naexptr); return (NULL); } naexptr = nanwptr; } if (datasiz == 1) naexptr[naexnum ++] = charval; else { sprintf (&naexptr[naexnum], FILENAMEDISTEXPANDSTR, dataval); /* TRICK: Change format string if FILENAMEDISTEXPANDNBR changes */ naexptr[naexnum + FILENAMEDISTEXPANDNBR] = ' '; naexnum = (size_t) (strchr (&naexptr[naexnum], ' ') - naexptr); } } } naexptr[naexnum] = '\0'; /* Set terminating character as there is always room for it */ if (flagval == 0) { /* If no expansion took place */ memFree (naexptr); /* No need for the expanded string */ naexptr = nameptr; } return (naexptr); } /* This routine initializes a block of ** file descriptor structures. ** It returns: ** - void : in all cases. */ void fileBlockInit ( File * const filetab, const int filenbr) { int i; for (i = 0; i < filenbr; i ++) { /* For all file names */ filetab[i].nameptr = "-"; /* Assume standard stream */ filetab[i].fileptr = ((filetab[i].flagval & FILEMODE) == FILEMODER) ? stdin : stdout; filetab[i].compptr = NULL; /* No (de)compression yet */ } } /* This routine opens a block of file ** descriptor structures. ** It returns: ** - 0 : on success. ** - 1 : if could not open a stream. ** - 2 : if (de)compression method not implemented. */ int fileBlockOpen ( File * const filetab, const int filenbr) { int i, j; for (i = 0; i < filenbr; i ++) { /* For all file names */ if (filetab[i].fileptr == NULL) /* If unwanted stream, do nothing */ continue; for (j = 0; j < i; j ++) { if ((((filetab[i].flagval ^ filetab[j].flagval) & FILEMODE) == 0) && /* If very same name with same opening mode */ (filetab[j].nameptr != NULL) && (strcmp (filetab[i].nameptr, filetab[j].nameptr) == 0)) { filetab[i].fileptr = filetab[j].fileptr; /* Share pointer to already processed stream */ filetab[i].nameptr = NULL; /* Do not close this stream multiple times */ break; } } if (j == i) { /* If original stream */ int compval; /* Compression type */ if (filetab[i].nameptr[0] != '-') { /* If not standard stream, open it */ if ((filetab[i].fileptr = fopen (filetab[i].nameptr, ((filetab[i].flagval & FILEMODE) == FILEMODER) ? "r" : "w")) == NULL) { /* Open the file */ errorPrint ("fileBlockOpen: cannot open file (%d)", i); return (1); } } compval = (((filetab[i].flagval & FILEMODE) == FILEMODER) ? fileDecompressType : fileCompressType) (filetab[i].nameptr); if (compval < 0) { errorPrint ("fileBlockOpen: (de)compression method not implemented"); return (2); } if ((((filetab[i].flagval & FILEMODE) == FILEMODER) ? fileDecompress : fileCompress) (&filetab[i], compval) != 0) { errorPrint ("fileBlockOpen: cannot create (de)compression subprocess"); return (1); } } } return (0); } /* This routine opens a block of eventually ** distributed file descriptor structures. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int fileBlockOpenDist ( File * const filetab, const int filenbr, const int procglbnbr, const int proclocnum, const int protglbnum) { int i; for (i = 0; i < filenbr; i ++) { /* For all file names */ char * naexptr; if (filetab[i].fileptr == NULL) /* If unwanted stream, do nothing */ continue; if ((naexptr = fileNameDistExpand (filetab[i].nameptr, procglbnbr, proclocnum)) == NULL) { errorPrint ("fileBlockOpenDist: cannot create file name (%d)", i); return (1); } if (naexptr == filetab[i].nameptr) { /* If centralized stream */ if (proclocnum != protglbnum) { /* If not root process */ filetab[i].nameptr = NULL; /* Remove stream */ filetab[i].fileptr = NULL; continue; } } else { /* Else keep expanded distributed file name */ filetab[i].flagval |= FILEFREENAME; filetab[i].nameptr = naexptr; } } return (fileBlockOpen (filetab, filenbr)); /* Open remaining files */ } /* This routine opens a block of file ** descriptor structures. ** It returns: ** - 0 : on success. ** - !0 : on error. */ void fileBlockClose ( File * const filetab, const int filenbr) { int i; for (i = 0; i < filenbr; i ++) { /* For all file names */ if ((filetab[i].fileptr != NULL) && /* If stream exists */ (filetab[i].nameptr != NULL) && /* And it has a name */ (filetab[i].nameptr[0] != '-')) { /* Which is not default */ fclose (filetab[i].fileptr); /* Close the stream */ if (filetab[i].flagval & FILEFREENAME) memFree (filetab[i].nameptr); } fileCompressExit (&filetab[i]); /* After stream closed, if there is (de)compression data to free */ } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_file.h000066400000000000000000000056721514310134000263670ustar00rootroot00000000000000/* Copyright 2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_file.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the file and file name handling **/ /** routines. **/ /** **/ /** DATES : # Version P0.5 : from : 21 may 2007 **/ /** to : 21 may 2007 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /* Expansion string size and associated format string. */ #define FILENAMEDISTEXPANDNBR 10 /* TRICK: Change this value in ssprintf() format strings too */ #define FILENAMEDISTEXPANDSTR "%-10d" /* TRICK: Change this value if FILENAMEDISTEXPANDNBR changes */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_file_compress.c000066400000000000000000000346171514310134000302760ustar00rootroot00000000000000/* Copyright 2008,2010,2015,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_file_compress.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles compressed streams **/ /** for compression. **/ /** **/ /** DATES : # Version 5.0 : from : 13 mar 2008 **/ /** to : 15 may 2008 **/ /** # Version 5.1 : from : 27 jun 2010 **/ /** to : 27 jun 2010 **/ /** # Version 6.0 : from : 27 apr 2015 **/ /** to : 14 jul 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_COMMON_FILE_COMPRESS #include "module.h" #include "common.h" #include "common_file.h" #include "common_file_compress.h" #ifdef COMMON_FILE_COMPRESS_BZ2 #include "bzlib.h" #endif /* COMMON_FILE_COMPRESS_BZ2 */ #ifdef COMMON_FILE_COMPRESS_GZ #include "zlib.h" #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA #include "lzma.h" #endif /* COMMON_FILE_COMPRESS_LZMA */ /* ** The static definitions. */ static FileCompressTab filetab[] = { #ifdef COMMON_FILE_COMPRESS_BZ2 { ".bz2", FILECOMPRESSTYPEBZ2, }, #else /* COMMON_FILE_COMPRESS_BZ2 */ { ".bz2", FILECOMPRESSTYPENOTIMPL }, #endif /* COMMON_FILE_COMPRESS_BZ */ #ifdef COMMON_FILE_COMPRESS_GZ { ".gz", FILECOMPRESSTYPEGZ, }, #else /* COMMON_FILE_COMPRESS_GZ */ { ".gz", FILECOMPRESSTYPENOTIMPL }, #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA { ".lzma", FILECOMPRESSTYPELZMA }, { ".xz", FILECOMPRESSTYPELZMA }, #else /* COMMON_FILE_COMPRESS_LZMA */ { ".lzma", FILECOMPRESSTYPENOTIMPL }, { ".xz", FILECOMPRESSTYPENOTIMPL }, #endif /* COMMON_FILE_COMPRESS_LZMA */ { NULL, FILECOMPRESSTYPENOTIMPL } }; /*********************************/ /* */ /* Basic routines for filenames. */ /* */ /*********************************/ /* This routine waits until the termination ** of the de/compressing task associated with ** the given file. ** It returns: ** - VOID : in all cases. */ void fileCompressExit ( File * const fileptr) { if (fileptr->compptr == NULL) /* If nothing to do */ return; #ifdef COMMON_PTHREAD_FILE pthread_join (fileptr->compptr->thrdval, NULL); /* Wait for (de)compression thread to terminate */ #else /* COMMON_PTHREAD_FILE */ waitpid (fileptr->compptr->procval, NULL, 0); #endif /* COMMON_PTHREAD_FILE */ memFree (fileptr->compptr); /* Free compression structure */ } /* This routine searches the given file name ** for relevant extensions and returns the ** corresponding code if it is the case. ** It returns: ** - FILECOMPRESSTYPENONE : no recognized file extension. ** - FILECOMPRESSTYPENOTIMPL : compression algorithm not implemented. ** - FILECOMPRESSTYPExxxx : implemented compression algorithm. */ int fileCompressType ( const char * const nameptr) /*+ Name string +*/ { size_t namelen; int i; namelen = strlen (nameptr); for (i = 0; filetab[i].name != NULL; i ++) { size_t extnlen; /* Name of extension string */ extnlen = strlen (filetab[i].name); if ((namelen >= extnlen) && (strncmp (filetab[i].name, nameptr + (namelen - extnlen), extnlen) == 0)) return (filetab[i].type); } return (FILECOMPRESSTYPENONE); } /* This routine creates a thread to compress the ** given stream according to the given compression ** algorithm. ** If threads are available, compression will be ** performed by an auxiliary thread. Else, a child process ** will be fork()'ed, and after completion this process ** will remain a zombie until the main process terminates. ** It returns: ** - !NULL : stream holding compressed data. ** - NULL : on error. */ static void * /* (void *) to comply to the Posix pthread API */ fileCompress2 ( FileCompress * const compptr) { switch (compptr->typeval) { #ifdef COMMON_FILE_COMPRESS_BZ2 case FILECOMPRESSTYPEBZ2 : fileCompressBz2 (compptr); break; #endif /* COMMON_FILE_COMPRESS_BZ2 */ #ifdef COMMON_FILE_COMPRESS_GZ case FILECOMPRESSTYPEGZ : fileCompressGz (compptr); break; #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA case FILECOMPRESSTYPELZMA : fileCompressLzma (compptr); break; #endif /* COMMON_FILE_COMPRESS_LZMA */ default : errorPrint ("fileCompress2: method not implemented"); } close (compptr->infdnum); /* Close writer's end */ memFree (compptr->bufftab); /* Free data buffer */ #ifdef COMMON_DEBUG compptr->bufftab = NULL; #endif /* COMMON_DEBUG */ return (NULL); /* Don't care anyway */ } int fileCompress ( File * const fileptr, /*+ Uncompressed stream +*/ const FileCompressType typeval) /*+ Compression algorithm +*/ { int filetab[2]; FILE * writptr; FileCompress * compptr; if (typeval <= FILECOMPRESSTYPENONE) /* If nothing to do */ return (0); if (pipe (filetab) != 0) { errorPrint ("fileCompress: cannot create pipe"); return (1); } if ((writptr = fdopen (filetab[1], "w")) == NULL) { /* New stream master will write to */ errorPrint ("fileCompress: cannot create stream"); close (filetab[0]); close (filetab[1]); return (1); } if (((compptr = memAlloc (sizeof (FileCompress))) == NULL) || /* Compression structure to be freed by master */ ((compptr->bufftab = memAlloc (FILECOMPRESSDATASIZE)) == NULL)) { errorPrint ("fileCompress: out of memory"); if (compptr != NULL) memFree (compptr); close (filetab[0]); fclose (writptr); return (1); } compptr->typeval = typeval; /* Fill structure to be passed to compression thread/process */ compptr->infdnum = filetab[0]; compptr->oustptr = fileptr->fileptr; /* Compressed stream to write to */ #ifdef COMMON_PTHREAD_FILE if (pthread_create (&compptr->thrdval, NULL, (void * (*) (void *)) fileCompress2, (void *) compptr) != 0) { /* If could not create thread */ errorPrint ("fileCompress: cannot create thread"); memFree (compptr->bufftab); memFree (compptr); close (filetab[0]); fclose (writptr); return (1); } #else /* COMMON_PTHREAD_FILE */ switch (compptr->procval = fork ()) { case -1 : /* Error */ errorPrint ("fileCompress: cannot create child process"); memFree (compptr->bufftab); memFree (compptr); close (filetab[0]); fclose (writptr); return (1); case 0 : /* We are the son process */ fclose (writptr); /* Close writer pipe stream */ fileCompress2 (compptr); /* Perform compression */ exit (EXIT_SUCCESS); /* Exit gracefully */ default : /* We are the father process */ close (filetab[0]); /* Close the reader pipe end */ } #endif /* COMMON_PTHREAD_FILE */ fileptr->fileptr = writptr; /* Master can write to pipe */ fileptr->compptr = compptr; return (0); } /* This routine compresses a stream in the ** bz2 format. ** It returns: ** - void : in all cases. Compression stops ** immediately in case of error. */ #ifdef COMMON_FILE_COMPRESS_BZ2 static void fileCompressBz2 ( FileCompress * const compptr) { BZFILE * encoptr; int bytenbr; int flagval; if ((encoptr = BZ2_bzWriteOpen (&flagval, compptr->oustptr, 9, 0, 0)) == NULL) { errorPrint ("fileCompressBz2: cannot start compression"); BZ2_bzWriteClose (&flagval, encoptr, 1, NULL, NULL); return; } while ((bytenbr = read (compptr->infdnum, compptr->bufftab, FILECOMPRESSDATASIZE)) > 0) { /* Read from pipe */ BZ2_bzWrite (&flagval, encoptr, compptr->bufftab, bytenbr); if (flagval != BZ_OK) { errorPrint ("fileCompressBz2: cannot write"); break; } } if (bytenbr < 0) { errorPrint ("fileCompressBz2: cannot read"); flagval = BZ_STREAM_END; /* Will set abandon flag to 1 in BZ2_bzWriteClose */ } BZ2_bzWriteClose (&flagval, encoptr, (flagval != BZ_OK) ? 1 : 0, NULL, NULL); fclose (compptr->oustptr); /* Do as zlib does */ } #endif /* COMMON_FILE_COMPRESS_BZ2 */ /* This routine compresses a stream in the ** gzip format. ** It returns: ** - void : in all cases. Compression stops ** immediately in case of error. */ #ifdef COMMON_FILE_COMPRESS_GZ static void fileCompressGz ( FileCompress * const compptr) { gzFile encoptr; int bytenbr; if ((encoptr = gzdopen (fileno (compptr->oustptr), "wb")) == NULL) { errorPrint ("fileCompressGz: cannot start compression"); return; } gzsetparams (encoptr, 9, Z_DEFAULT_STRATEGY); /* Maximum compression */ while ((bytenbr = read (compptr->infdnum, compptr->bufftab, FILECOMPRESSDATASIZE)) > 0) { /* Read from pipe */ if (gzwrite (encoptr, compptr->bufftab, bytenbr) != bytenbr) { errorPrint ("fileCompressGz: cannot write"); break; } } if (bytenbr < 0) errorPrint ("fileCompressGz: cannot read"); gzclose (encoptr); /* Closes oustptr */ } #endif /* COMMON_FILE_COMPRESS_GZ */ /* This routine compresses a stream in the ** LZMA format. ** It returns: ** - void : in all cases. Compression stops ** immediately in case of error. */ #ifdef COMMON_FILE_COMPRESS_LZMA static void fileCompressLzma ( FileCompress * const compptr) { lzma_stream encodat = LZMA_STREAM_INIT; /* Encoder data */ lzma_action enacval; /* Encoder action value */ lzma_ret enreval; /* Encoder return value */ byte * obuftab; /* Encoder output buffer */ if ((obuftab = memAlloc (FILECOMPRESSDATASIZE)) == NULL) { errorPrint ("fileCompressLzma: out of memory"); return; } if (lzma_easy_encoder (&encodat, LZMA_PRESET_EXTREME, LZMA_CHECK_CRC64) != LZMA_OK) { errorPrint ("fileCompressLzma: cannot start compression"); memFree (obuftab); return; } enacval = LZMA_RUN; enreval = LZMA_OK; encodat.avail_in = 0; encodat.next_out = obuftab; encodat.avail_out = FILECOMPRESSDATASIZE; do { if ((encodat.avail_in == 0) && (enacval == LZMA_RUN)) { ssize_t bytenbr; bytenbr = read (compptr->infdnum, compptr->bufftab, FILECOMPRESSDATASIZE); /* Read from pipe */ if (bytenbr < 0) { errorPrint ("fileCompressLzma: cannot read"); break; } if (bytenbr == 0) enacval = LZMA_FINISH; /* If end of stream, request completion of encoding */ encodat.next_in = (byte *) compptr->bufftab; encodat.avail_in = bytenbr; } enreval = lzma_code (&encodat, enacval); if ((encodat.avail_out == 0) || (enreval == LZMA_STREAM_END)) { /* Write when output buffer full or end of encoding */ size_t obufnbr; obufnbr = FILECOMPRESSDATASIZE - encodat.avail_out; /* Compute number of bytes to write */ if (fwrite (obuftab, 1, obufnbr, compptr->oustptr) != obufnbr) { errorPrint ("fileCompressLzma: cannot write"); break; } encodat.next_out = obuftab; encodat.avail_out = FILECOMPRESSDATASIZE; } } while (enreval == LZMA_OK); lzma_end (&encodat); memFree (obuftab); fclose (compptr->oustptr); /* Do as zlib does */ } #endif /* COMMON_FILE_COMPRESS_LZMA */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_file_compress.h000066400000000000000000000131151514310134000302710ustar00rootroot00000000000000/* Copyright 2008,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_file_compress.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the file (de)compression routines. **/ /** **/ /** DATES : # Version 5.0 : from : 12 mar 2008 **/ /** to : 17 mar 2008 **/ /** # Version 6.0 : from : 08 jul 2018 **/ /** to : 14 jul 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 06 aug 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /* Buffer size. */ #define FILECOMPRESSDATASIZE (128 * 1024) /* Size of (de)compressing buffers */ /* Available types of (de)compression. */ typedef enum FileCompressType_ { FILECOMPRESSTYPENOTIMPL = -1, /* Error code */ FILECOMPRESSTYPENONE = 0, /* No compression */ FILECOMPRESSTYPEBZ2, FILECOMPRESSTYPEGZ, FILECOMPRESSTYPELZMA } FileCompressType; /* (De)compression type slot. */ typedef struct FileCompressTab_ { char * name; /* File extension name */ FileCompressType type; /* (De)compression type */ } FileCompressTab; /* ** The type and structure definitions. */ typedef struct FileCompress_ { FileCompressType typeval; /*+ Type of (de)compression +*/ int infdnum; /*+ Inner file handle (pipe end) +*/ FILE * oustptr; /*+ Outer stream +*/ byte * bufftab; /*+ Data buffer +*/ #ifdef COMMON_PTHREAD_FILE pthread_t thrdval; /*+ Spawned thread ID +*/ #else /* COMMON_PTHREAD_FILE */ int procval; /*+ Forked process ID +*/ #endif /* COMMON_PTHREAD_FILE */ } FileCompress; /* ** The function prototypes. */ #ifdef COMMON_FILE_COMPRESS_BZ2 #ifdef SCOTCH_COMMON_FILE_COMPRESS static void fileCompressBz2 (FileCompress * const dataptr); #endif /* SCOTCH_COMMON_FILE_COMPRESS */ #ifdef SCOTCH_COMMON_FILE_DECOMPRESS static void fileDecompressBz2 (FileCompress * const dataptr); #endif /* SCOTCH_COMMON_FILE_DECOMPRESS */ #endif /* COMMON_FILE_COMPRESS_Bz2 */ #ifdef COMMON_FILE_COMPRESS_GZ #ifdef SCOTCH_COMMON_FILE_COMPRESS static void fileCompressGz (FileCompress * const dataptr); #endif /* SCOTCH_COMMON_FILE_COMPRESS */ #ifdef SCOTCH_COMMON_FILE_DECOMPRESS static void fileDecompressGz (FileCompress * const dataptr); #endif /* SCOTCH_COMMON_FILE_DECOMPRESS */ #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA #ifdef SCOTCH_COMMON_FILE_COMPRESS static void fileCompressLzma (FileCompress * const dataptr); #endif /* SCOTCH_COMMON_FILE_COMPRESS */ #ifdef SCOTCH_COMMON_FILE_DECOMPRESS static void fileDecompressLzma (FileCompress * const dataptr); #endif /* SCOTCH_COMMON_FILE_DECOMPRESS */ #endif /* COMMON_FILE_COMPRESS_LZMA */ int fileCompress (File * const, const int); void fileCompressExit (File * const); int fileCompressType (const char * const); int fileDecompress (File * const, const int); int fileDecompressType (const char * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_file_decompress.c000066400000000000000000000351131514310134000305770ustar00rootroot00000000000000/* Copyright 2008,2010,2015,2018,2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_file_decompress.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles compressed streams **/ /** for decompression. **/ /** **/ /** DATES : # Version 5.0 : from : 11 mar 2008 **/ /** to : 15 may 2008 **/ /** # Version 5.1 : from : 27 jun 2010 **/ /** to : 27 jun 2010 **/ /** # Version 6.0 : from : 27 apr 2015 **/ /** to : 30 aug 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_COMMON_FILE_DECOMPRESS #include "module.h" #include "common.h" #include "common_file.h" #include "common_file_compress.h" #ifdef COMMON_FILE_COMPRESS_BZ2 #include "bzlib.h" #endif /* COMMON_FILE_COMPRESS_BZ2 */ #ifdef COMMON_FILE_COMPRESS_GZ #include "zlib.h" #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA #include "lzma.h" #endif /* COMMON_FILE_COMPRESS_LZMA */ /* ** The static definitions. */ static FileCompressTab filetab[] = { #ifdef COMMON_FILE_COMPRESS_BZ2 { ".bz2", FILECOMPRESSTYPEBZ2, }, #else /* COMMON_FILE_COMPRESS_BZ2 */ { ".bz2", FILECOMPRESSTYPENOTIMPL }, #endif /* COMMON_FILE_COMPRESS_BZ */ #ifdef COMMON_FILE_COMPRESS_GZ { ".gz", FILECOMPRESSTYPEGZ, }, #else /* COMMON_FILE_COMPRESS_GZ */ { ".gz", FILECOMPRESSTYPENOTIMPL }, #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA { ".lzma", FILECOMPRESSTYPELZMA }, { ".xz", FILECOMPRESSTYPELZMA }, #else /* COMMON_FILE_COMPRESS_LZMA */ { ".lzma", FILECOMPRESSTYPENOTIMPL }, { ".xz", FILECOMPRESSTYPENOTIMPL }, #endif /* COMMON_FILE_COMPRESS_LZMA */ { NULL, FILECOMPRESSTYPENOTIMPL } }; /*********************************/ /* */ /* Basic routines for filenames. */ /* */ /*********************************/ /* This routine searches the given file name ** for relevant extensions and returns the ** corresponding code if it is the case. ** It returns: ** - FILECOMPRESSTYPENONE : no recognized file extension. ** - FILECOMPRESSTYPENOTIMPL : compression algorithm not implemented. ** - FILECOMPRESSTYPExxxx : implemented compression algorithm. */ int fileDecompressType ( const char * const nameptr) /*+ Name string +*/ { size_t namelen; int i; namelen = strlen (nameptr); for (i = 0; filetab[i].name != NULL; i ++) { size_t extnlen; /* Name of extension string */ extnlen = strlen (filetab[i].name); if ((namelen >= extnlen) && (strncmp (filetab[i].name, nameptr + (namelen - extnlen), extnlen) == 0)) return (filetab[i].type); } return (FILECOMPRESSTYPENONE); } /* This routine creates a thread to decompress the ** given stream according to the given (de)compression ** algorithm. ** If threads are available, decompression will be ** performed by an auxiliary thread. Else, a child process ** will be fork()'ed, and after completion this process ** will remain a zombie until the main process terminates. ** It returns: ** - !NULL : stream holding decompressed data. ** - NULL : on error. */ static void * /* (void *) to comply to the Posix pthread API */ fileDecompress2 ( FileCompress * const compptr) { switch (compptr->typeval) { #ifdef COMMON_FILE_COMPRESS_BZ2 case FILECOMPRESSTYPEBZ2 : fileDecompressBz2 (compptr); break; #endif /* COMMON_FILE_COMPRESS_BZ2 */ #ifdef COMMON_FILE_COMPRESS_GZ case FILECOMPRESSTYPEGZ : fileDecompressGz (compptr); break; #endif /* COMMON_FILE_COMPRESS_GZ */ #ifdef COMMON_FILE_COMPRESS_LZMA case FILECOMPRESSTYPELZMA : fileDecompressLzma (compptr); break; #endif /* COMMON_FILE_COMPRESS_LZMA */ default : errorPrint ("fileDecompress2: method not implemented"); } close (compptr->infdnum); /* Close writer's end */ memFree (compptr->bufftab); /* Free data buffer */ #ifdef COMMON_DEBUG compptr->bufftab = NULL; #endif /* COMMON_DEBUG */ return (NULL); /* Don't care anyway */ } int fileDecompress ( File * const fileptr, /*+ Compressed input stream +*/ const FileCompressType typeval) /*+ (De)compression algorithm +*/ { int filetab[2]; FILE * readptr; FileCompress * compptr; if (typeval <= FILECOMPRESSTYPENONE) /* If nothing to do */ return (0); if (pipe (filetab) != 0) { errorPrint ("fileDecompress: cannot create pipe"); return (1); } if ((readptr = fdopen (filetab[0], "r")) == NULL) { /* New stream master will read from */ errorPrint ("fileDecompress: cannot create stream"); close (filetab[0]); close (filetab[1]); return (1); } if (((compptr = memAlloc (sizeof (FileCompress))) == NULL) || /* Compression structure to be freed by master */ ((compptr->bufftab = memAlloc (FILECOMPRESSDATASIZE)) == NULL)) { errorPrint ("fileDecompress: out of memory"); if (compptr != NULL) memFree (compptr); fclose (readptr); close (filetab[1]); return (1); } compptr->typeval = typeval; /* Fill structure to be passed to decompression thread/process */ compptr->infdnum = filetab[1]; compptr->oustptr = fileptr->fileptr; /* Compressed stream to read from */ #ifdef COMMON_PTHREAD_FILE if (pthread_create (&compptr->thrdval, NULL, (void * (*) (void *)) fileDecompress2, (void *) compptr) != 0) { /* If could not create thread */ errorPrint ("fileDecompress: cannot create thread"); memFree (compptr->bufftab); memFree (compptr); fclose (readptr); close (filetab[1]); return (1); } #else /* COMMON_PTHREAD_FILE */ switch (compptr->procval = fork ()) { case -1 : /* Error */ errorPrint ("fileDecompress: cannot create child process"); memFree (compptr->bufftab); memFree (compptr); fclose (readptr); close (filetab[1]); return (1); case 0 : /* We are the son process */ fclose (readptr); /* Close reader pipe stream */ fileDecompress2 (compptr); /* Perform decompression */ exit (EXIT_SUCCESS); /* Exit gracefully */ default : /* We are the father process */ close (filetab[1]); /* Close the writer pipe end */ } #endif /* COMMON_PTHREAD_FILE */ fileptr->fileptr = readptr; /* Master can read from pipe */ fileptr->compptr = compptr; return (0); } /* This routine decompresses a stream compressed ** in the bzip2 format. ** It returns: ** - void : in all cases. Decompression stops ** immediately in case of error. */ #ifdef COMMON_FILE_COMPRESS_BZ2 static void fileDecompressBz2 ( FileCompress * const compptr) { BZFILE * decoptr; int bytenbr; int flagval; if (FILECOMPRESSDATASIZE < (BZ_MAX_UNUSED)) { errorPrint ("fileDecompressBz2: cannot start decompression (1)"); return; } if ((decoptr = BZ2_bzReadOpen (&flagval, compptr->oustptr, 0, 0, NULL, 0)) == NULL) { errorPrint ("fileDecompressBz2: cannot start decompression (2)"); BZ2_bzReadClose (&flagval, decoptr); return; } while ((bytenbr = BZ2_bzRead (&flagval, decoptr, compptr->bufftab, FILECOMPRESSDATASIZE), flagval) >= BZ_OK) { /* If BZ_OK or BZ_STREAM_END */ if (write (compptr->infdnum, compptr->bufftab, bytenbr) != bytenbr) { errorPrint ("fileDecompressBz2: cannot write"); flagval = BZ_STREAM_END; /* Avoid other error message */ break; } if (flagval == BZ_STREAM_END) { /* If end of compressed stream */ void * byunptr; int byunnbr; BZ2_bzReadGetUnused (&flagval, decoptr, &byunptr, &byunnbr); /* Get remaining chars in stream */ if ((byunnbr == 0) && (feof (compptr->oustptr) != 0)) { /* If end of decompressed stream too */ flagval = BZ_STREAM_END; break; } memMov (compptr->bufftab, byunptr, byunnbr); BZ2_bzReadClose (&flagval, decoptr); if ((decoptr = BZ2_bzReadOpen (&flagval, compptr->oustptr, 0, 0, compptr->bufftab, byunnbr)) == NULL) { errorPrint ("fileDecompressBz2: cannot start decompression (3)"); flagval = BZ_STREAM_END; break; } } } if (flagval != BZ_STREAM_END) errorPrint ("fileDecompressBz2: cannot read"); BZ2_bzReadClose (&flagval, decoptr); fclose (compptr->oustptr); /* Do as zlib does */ } #endif /* COMMON_FILE_COMPRESS_BZ2 */ /* This routine decompresses a stream compressed ** in the gzip format. ** It returns: ** - void : in all cases. Decompression stops ** immediately in case of error. */ #ifdef COMMON_FILE_COMPRESS_GZ static void fileDecompressGz ( FileCompress * const compptr) { gzFile decoptr; int bytenbr; if ((decoptr = gzdopen (fileno (compptr->oustptr), "rb")) == NULL) { errorPrint ("fileDecompressGz: cannot start decompression"); return; } while ((bytenbr = gzread (decoptr, compptr->bufftab, FILECOMPRESSDATASIZE)) > 0) { if (write (compptr->infdnum, compptr->bufftab, bytenbr) != bytenbr) { errorPrint ("fileDecompressGz: cannot write"); break; } } if (bytenbr < 0) errorPrint ("fileDecompressGz: cannot read"); gzclose (decoptr); } #endif /* COMMON_FILE_COMPRESS_GZ */ /* This routine decompresses a stream compressed ** in the lzma format. ** It returns: ** - void : in all cases. Decompression stops ** immediately in case of error. */ #ifdef COMMON_FILE_COMPRESS_LZMA static void fileDecompressLzma ( FileCompress * const compptr) { lzma_stream decodat = LZMA_STREAM_INIT; /* Decoder data */ lzma_action deacval; /* Decoder action value */ lzma_ret dereval; /* Decoder return value */ byte * obuftab; /* Decoder output buffer */ if ((obuftab = memAlloc (FILECOMPRESSDATASIZE)) == NULL) { errorPrint ("fileDecompressLzma: out of memory"); return; } if (lzma_stream_decoder (&decodat, UINT64_MAX, LZMA_CONCATENATED) != LZMA_OK) { errorPrint ("fileDecompressLzma: cannot start decompression"); memFree (obuftab); return; } deacval = LZMA_RUN; dereval = LZMA_OK; decodat.avail_in = 0; decodat.next_out = obuftab; decodat.avail_out = FILECOMPRESSDATASIZE; do { if ((decodat.avail_in == 0) && (deacval == LZMA_RUN)) { ssize_t bytenbr; bytenbr = fread (compptr->bufftab, 1, FILECOMPRESSDATASIZE, compptr->oustptr); /* Read from pipe */ if (ferror (compptr->oustptr)) { errorPrint ("fileDecompressLzma: cannot read"); break; } if (bytenbr == 0) deacval = LZMA_FINISH; /* If end of stream, request completion of decoding */ decodat.next_in = compptr->bufftab; decodat.avail_in = bytenbr; } dereval = lzma_code (&decodat, deacval); if ((decodat.avail_out == 0) || (dereval == LZMA_STREAM_END)) { /* Write when output buffer full or end of encoding */ size_t obufnbr; obufnbr = FILECOMPRESSDATASIZE - decodat.avail_out; /* Compute number of bytes to write */ if (write (compptr->infdnum, obuftab, obufnbr) != obufnbr) { errorPrint ("fileDecompressLzma: cannot write"); break; } decodat.next_out = obuftab; decodat.avail_out = FILECOMPRESSDATASIZE; } } while (dereval == LZMA_OK); lzma_end (&decodat); memFree (obuftab); fclose (compptr->oustptr); /* Do as zlib does */ } #endif /* COMMON_FILE_COMPRESS_LZMA */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_integer.c000066400000000000000000000467701514310134000271040ustar00rootroot00000000000000/* Copyright 2004,2007-2012,2014-2016,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_integer.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the generic integer **/ /** type. **/ /** **/ /** DATES : # Version 0.0 : from : 07 sep 1998 **/ /** to : 22 sep 1998 **/ /** # Version 0.1 : from : 07 jan 2002 **/ /** to : 17 jan 2003 **/ /** # Version 1.0 : from : 23 aug 2005 **/ /** to : 19 dec 2006 **/ /** # Version 2.0 : from : 26 feb 2008 **/ /** to : 26 feb 2008 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 16 jul 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 03 jun 2018 **/ /** # Version 7.0 : from : 03 jun 2018 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" /********************************/ /* */ /* Basic routines for fast I/O. */ /* */ /********************************/ /* Fast read for INT values. ** It returns: ** - 1 : on success. ** - 0 : on error. */ int intLoad ( FILE * const stream, /*+ Stream to read from +*/ INT * const valptr) /*+ Area where to put value +*/ { int sign; /* Sign flag */ int car; /* Character read */ INT val; /* Value */ sign = 0; /* Assume positive constant */ for ( ; ; ) { /* Consume whitespaces and sign */ car = getc (stream); if (isspace (car)) continue; if ((car >= '0') && (car <= '9')) break; if (car == '-') { sign = 1; car = getc (stream); break; } if (car == '+') { car = getc (stream); break; } return (0); } if ((car < '0') || (car > '9')) /* If first char is non numeric */ return (0); /* Then it is an error */ val = car - '0'; /* Get first digit */ for ( ; ; ) { car = getc (stream); if ((car < '0') || (car > '9')) { ungetc (car, stream); break; } val = val * 10 + (car - '0'); /* Accumulate digits */ } *valptr = (sign != 0) ? (- val) : val; /* Set result */ return (1); } /* Write routine for INT values. ** It returns: ** - 1 : on success. ** - 0 : on error. */ int intSave ( FILE * const stream, /*+ Stream to write to +*/ const INT val) /*+ Value to write +*/ { return ((fprintf (stream, INTSTRING, (INT) val) == EOF) ? 0 : 1); } /**********************************/ /* */ /* Permutation building routines. */ /* */ /**********************************/ /* This routine fills an array with ** consecutive INT values, in ** ascending order. ** It returns: ** - VOID : in all cases. */ void intAscn ( INT * const permtab, /*+ Permutation array to build +*/ const INT permnbr, /*+ Number of entries in array +*/ const INT baseval) /*+ Base value +*/ { INT * permtax; INT permnum; INT permnnd; for (permnum = baseval, permnnd = baseval + permnbr, permtax = permtab - baseval; permnum < permnnd; permnum ++) permtax[permnum] = permnum; } /* This routine computes a random permutation ** of an array of INT values. ** It returns: ** - VOID : in all cases. */ void intPerm ( INT * const permtab, /*+ Permutation array to build +*/ const INT permnbr, /*+ Number of entries in array +*/ Context * restrict const contptr) { INT * permptr; UINT permrmn; for (permptr = permtab, permrmn = (UINT) permnbr; /* Perform random permutation */ permrmn > 0; permptr ++, permrmn --) { UINT permnum; INT permtmp; permnum = intRandVal (contptr->randptr, permrmn); /* Select index to swap */ permtmp = permptr[0]; /* Swap it with current index */ permptr[0] = permptr[permnum]; permptr[permnum] = permtmp; } } /*************************************/ /* */ /* Pseudo-random generator routines. */ /* */ /*************************************/ IntRandContext intranddat = { 0, 0 }; /*+ Global context: not initialized, process number is 0 +*/ /* This routine sets the process number that is ** used to generate a different seed across all ** processes. In order for this number to be ** taken into account, it must be followed by ** a subsequent call to intRandInit(), ** intRandReset() or intRandSeed(). ** It returns: ** - VOID : in all cases. */ void intRandProc ( IntRandContext * const randptr, const int procnum) { randptr->procval = procnum; /* Set process number */ } /* These routines initialize and/or reset the seed ** used by the given pseudo-random generator. ** It returns: ** - VOID : in all cases. */ static void intRandSeed2 ( IntRandState * restrict statptr, UINT randval) { UINT64 seedval; UINT64 * restrict const randtab = statptr->randtab; /* Fast access */ seedval = (UINT64) (randval | 1); /* Never have a zero state */ randtab[0] = seedval ^ (seedval << 15); /* In case of 32-bit INTs */ randtab[1] = seedval ^ (seedval << 24); } void intRandReset ( IntRandContext * const randptr) { INT randval; randptr->flagval = 1; /* Generator has been initialized */ randval = (INT) ((((UINT64) randptr->seedval) | 1) * (((UINT64) randptr->procval) + 1)); /* Account for process index */ intRandSeed2 (&randptr->statdat, randval); /* Initialize state vector from random seed */ } void intRandSeed ( IntRandContext * const randptr, INT seedval) { randptr->seedval = seedval; /* Save new seed */ intRandReset (randptr); /* Initialize pseudo-random seed */ } /* This routine spawns a new pseudo-random ** generator from an existing one, so that ** sub-tasks can easily get a distinct stream ** of pseudo-random numbers. ** The building of the new generator does not ** change the state of the old one, so that ** spawning can be performed in parallel by ** the tasks in an asynchronous way. ** The routine itself is not thread-safe. ** It returns: ** - VOID : in all cases. */ void intRandSpawn ( IntRandContext * const roldptr, const int procnum, IntRandContext * const rnewptr) { UINT64 seedval; rnewptr->procval = procnum; seedval = roldptr->statdat.randtab[0]; /* Get value from state of old generator */ intRandSeed (rnewptr, (INT) seedval); /* Set seed and initialize state */ } /* This routine initializes the pseudo-random ** generator if necessary. In order for multi-sequential ** programs to have exactly the same behavior on any ** process, the random seed does not depend on process ** rank. This routine is not really thread-safe, so it ** should not be called concurrently when it has never ** been initialized before. ** It returns: ** - VOID : in all cases. */ void intRandInit ( IntRandContext * const contptr) /*+ Random context to initialize +*/ { if (contptr->flagval == 0) { /* Non thread-safe check */ #if ! ((defined COMMON_DEBUG) || (defined COMMON_RANDOM_FIXED_SEED)) contptr->seedval = (INT) time (NULL); /* Set random seed if needed */ #else /* ((defined COMMON_DEBUG) || (defined COMMON_RANDOM_FIXED_SEED)) */ contptr->seedval = 1; #endif /* ((defined COMMON_DEBUG) || (defined COMMON_RANDOM_FIXED_SEED)) */ intRandReset (contptr); /* Initialize state vector from seed */ } } /* This routine loads the random state. ** It returns: ** - 0 : on success. ** - 2 : on error. */ static int intRandLoad2 ( IntRandState * restrict const statptr, /*+ Random state to load +*/ FILE * restrict const stream) /*+ Stream to read from +*/ { if (fscanf (stream, "%" PRIu64 "%" PRIu64, &statptr->randtab[0], &statptr->randtab[1]) != 2) { errorPrint ("intRandLoad2: bad input"); return (2); } return (0); } int intRandLoad ( IntRandContext * restrict const randptr, /*+ Random context to load +*/ FILE * restrict const stream) /*+ Stream to read from +*/ { INT versval; if (intLoad (stream, &versval) != 1) { /* Read version number */ errorPrint ("intRandLoad: bad input (1)"); return (2); } if (versval != 1) { /* If version not one */ errorPrint ("intRandLoad: invalid version number"); return (2); } if (fscanf (stream, "%d%" PRIu64, &randptr->procval, &randptr->seedval) != 2) { errorPrint ("intRandLoad: bad input (2)"); return (2); } randptr->flagval = 1; /* Assume state has been initialized */ return (intRandLoad2 (&randptr->statdat, stream)); } /* This routine saves the random state. ** It returns: ** - 0 : on success. ** - 1 : state cannot be saved. ** - 2 : on error. */ static int intRandSave2 ( IntRandState * restrict const statptr, /*+ Random state to load +*/ FILE * restrict const stream) /*+ Stream to read from +*/ { if (fprintf (stream, "%" PRIu64 "\t%" PRIu64 "\n", statptr->randtab[0], statptr->randtab[1]) < 0) { errorPrint ("intRandSave2: bad output"); return (2); } return (0); } int intRandSave ( IntRandContext * restrict const randptr, /*+ Random state to load +*/ FILE * restrict const stream) /*+ Stream to read from +*/ { if (randptr->flagval == 0) { errorPrint ("intRandSave: context not initialized"); return (1); } if (fprintf (stream, "1\n%d\t%" PRIu64 "\n", randptr->procval, randptr->seedval) < 0) { errorPrint ("intRandSave: bad output"); return (2); } return (intRandSave2 (&randptr->statdat, stream)); } /* This routine computes a new pseudo-random ** INT value from the state that is passed to it. ** For speed and reproducibility reasons, ** this routine is not thread-safe. Providing ** a thread-safe routine would mean determinism ** could not be achieved in caller routines. ** It is the responsibility of application ** routines to call intRandVal() in a way that ** avoids concurrent execution and potentially ** enforces reproducibility. ** It returns: ** - x : pseudo-random value. */ UINT intRandVal3 ( IntRandState * restrict const statptr) { UINT64 x, y; /* State variables */ UINT64 * restrict const randtab = statptr->randtab; /* Fast access */ x = randtab[0]; y = randtab[1]; randtab[0] = y; x ^= x << 23; x = x ^ y ^ (x >> 17) ^ (y >> 26); randtab[1] = x; return ((UINT) (x + y)); } /* This routine returns a pseudo-random integer ** value in the range [0..randmax[. This routine ** is not thread-safe as it uses a global state ** variable. ** It returns: ** - x : pseudo-random value. */ UINT intRandVal ( IntRandContext * const contptr, /*+ Random context to load +*/ UINT randmax) { #ifdef COMMON_DEBUG if (contptr->flagval == 0) { errorPrint ("intRandVal: random generator not initialized"); return (~0); } #endif /* COMMON_DEBUG */ return (((UINT) intRandVal3 (&contptr->statdat)) % randmax); } UINT intRandVal2 ( IntRandContext * const contptr) /*+ Random context to load +*/ { return (intRandVal3 (&contptr->statdat)); } /*********************/ /* */ /* Sorting routines. */ /* */ /*********************/ /* This routine sorts an array of ** INT values in ascending order ** by their first value, used as key. ** It returns: ** - VOID : in all cases. */ #define INTSORTNAME intSort1asc1 #define INTSORTSIZE (sizeof (INT)) #define INTSORTSWAP(p,q) do { INT t; t = *((INT *) (p)); *((INT *) (p)) = *((INT *) (q)); *((INT *) (q)) = t; } while (0) #define INTSORTCMP(p,q) (*((INT *) (p)) < *((INT *) (q))) #include "common_sort.c" #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /* This routine sorts an array of pairs of ** INT values in ascending order by their ** first value, used as key. ** It returns: ** - VOID : in all cases. */ #define INTSORTNAME intSort2asc1 #define INTSORTSIZE (2 * sizeof (INT)) #define INTSORTSWAP(p,q) do { INT t, u; t = *((INT *) (p)); u = *((INT *) (p) + 1); *((INT *) (p)) = *((INT *) (q)); *((INT *) (p) + 1) = *((INT *) (q) + 1); *((INT *) (q)) = t; *((INT *) (q) + 1) = u; } while (0) #define INTSORTCMP(p,q) (*((INT *) (p)) < *((INT *) (q))) #include "common_sort.c" #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /* This routine sorts an array of pairs of ** INT values in ascending order by both ** of their values, used as primary and ** secondary keys. ** It returns: ** - VOID : in all cases. */ #define INTSORTNAME intSort2asc2 #define INTSORTSIZE (2 * sizeof (INT)) #define INTSORTSWAP(p,q) do { INT t, u; t = *((INT *) (p)); u = *((INT *) (p) + 1); *((INT *) (p)) = *((INT *) (q)); *((INT *) (p) + 1) = *((INT *) (q) + 1); *((INT *) (q)) = t; *((INT *) (q) + 1) = u; } while (0) #define INTSORTCMP(p,q) ((*((INT *) (p)) < *((INT *) (q))) || ((*((INT *) (p)) == *((INT *) (q))) && (*((INT *) (p) + 1) < *((INT *) (q) + 1)))) #include "common_sort.c" #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /* This routine sorts an array of 3-uples of ** INT values in ascending order by their ** first value, used as key. ** It returns: ** - VOID : in all cases. */ #define INTSORTNAME intSort3asc1 #define INTSORTSIZE (3 * sizeof (INT)) #define INTSORTSWAP(p,q) do { INT t, u, v; t = *((INT *) (p)); u = *((INT *) (p) + 1); v = *((INT *) (p) + 2); *((INT *) (p)) = *((INT *) (q)); *((INT *) (p) + 1) = *((INT *) (q) + 1); *((INT *) (p) + 2) = *((INT *) (q) + 2); *((INT *) (q)) = t; *((INT *) (q) + 1) = u; *((INT *) (q) + 2) = v; } while (0) #define INTSORTCMP(p,q) (*((INT *) (p)) < *((INT *) (q))) #include "common_sort.c" #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /* This routine sorts an array of 3-uples of ** INT values in ascending order by their ** first and second values, used as primary ** and secondary keys. ** It returns: ** - VOID : in all cases. */ #define INTSORTNAME intSort3asc2 #define INTSORTSIZE (3 * sizeof (INT)) #define INTSORTSWAP(p,q) do { INT t, u, v; t = *((INT *) (p)); u = *((INT *) (p) + 1); v = *((INT *) (p) + 2); *((INT *) (p)) = *((INT *) (q)); *((INT *) (p) + 1) = *((INT *) (q) + 1); *((INT *) (p) + 2) = *((INT *) (q) + 2); *((INT *) (q)) = t; *((INT *) (q) + 1) = u; *((INT *) (q) + 2) = v; } while (0) #define INTSORTCMP(p,q) ((*((INT *) (p)) < *((INT *) (q))) || ((*((INT *) (p)) == *((INT *) (q))) && (*((INT *) (p) + 1) < *((INT *) (q) + 1)))) #include "common_sort.c" #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /*****************************/ /* */ /* Partial sorting routines. */ /* */ /*****************************/ /* This routine partially sorts an array of ** pairs of INT values in ascending order by ** their first value, used as key. ** It returns: ** - VOID : in all cases. */ #define INTSORTNAME intPsort2asc1 #define INTSORTSIZE (2 * sizeof (INT)) #define INTSORTSWAP(p,q) do { INT t, u; t = *((INT *) (p)); u = *((INT *) (p) + 1); *((INT *) (p)) = *((INT *) (q)); *((INT *) (p) + 1) = *((INT *) (q) + 1); *((INT *) (q)) = t; *((INT *) (q) + 1) = u; } while (0) #define INTSORTCMP(p,q) (*((INT *) (p)) < *((INT *) (q))) #include "common_psort.c" #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /* This routine computes the greatest common ** divisor of two non-negative integers u and v. ** It returns: ** - x : the GCD of u and v. */ INT intGcd ( INT u, INT v) { INT t; if (v < u) { /* u should always be the biggest */ t = u; u = v; v = t; } while (v != 0) { t = v; v = u % v; u = t; } return (u); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_memory.c000066400000000000000000000500061514310134000267420ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2012,2015,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_memory.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** This module handles errors. **/ /** **/ /** DATES : # Version 0.0 : from : 07 sep 2001 **/ /** to : 07 sep 2001 **/ /** # Version 0.1 : from : 14 apr 2001 **/ /** to : 24 mar 2003 **/ /** # Version 2.0 : from : 01 jul 2008 **/ /** to : 01 jul 2008 **/ /** # Version 5.1 : from : 22 nov 2008 **/ /** to : 27 jun 2010 **/ /** # Version 6.0 : from : 11 jun 2012 **/ /** to : 15 may 2018 **/ /** # Version 6.1 : from : 24 jun 2021 **/ /** to : 24 jun 2021 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 08 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #define COMMON_MEMORY_SZSP (MAX ((sizeof (size_t)), (sizeof (double)))) /* Space for size, properly aligned */ #ifdef COMMON_MEMORY_CHECK #ifndef COMMON_MEMORY_TRACE #define COMMON_MEMORY_TRACE #endif /* COMMON_MEMORY_TRACE */ #define MEMORY_CHECK_BLOCKS 10000 #define MEMORY_CHECK_BORDER 16384 /* Huge sentinel block */ #define COMMON_MEMORY_SKEW MEMORY_CHECK_BORDER #define COMMON_MEMORY_OVHD (MEMORY_CHECK_BORDER * 2) static int memorycheckenabled = COMMON_MEMORY_CHECK; /* Set to 1 by default */ static char memorycheckmagktab[16] = { 0123, 0156, 0371, 0012, 0345, 0272, 0301, 0234, 0167, 0010, 0127, 0254, 0321, 0012, 0276, 0143 }; static void * memorycheckbloktab[MEMORY_CHECK_BLOCKS] = { NULL }; /* Pre-allocated static array, less easily wrecked by out-of-bound heap memory writes */ static int memorycheckbloknbr = 0; static void * memorycheckwtchval = NULL; /* Block address to watch */ #endif /* COMMON_MEMORY_CHECK */ /*********************************/ /* */ /* The memory checking routines. */ /* */ /*********************************/ #ifdef COMMON_MEMORY_CHECK static int memCheckBlock ( void * blokptr) { char * zoneptr; char * zoneend; int zoneidx; size_t bloksiz; int o; o = 0; /* Assume no error */ bloksiz = *((size_t *) blokptr); /* Get real block size */ for (zoneptr = (char *) blokptr + COMMON_MEMORY_SZSP, /* Check "before" sentinel */ zoneend = (char *) blokptr + MEMORY_CHECK_BORDER, zoneidx = 0; zoneptr < zoneend; ) { if (*zoneptr ++ != memorycheckmagktab[zoneidx ++ % 16]) { errorPrintW ("memoryCheck: error before block at %p, real size %ld", (char *) blokptr + MEMORY_CHECK_BORDER, (long) bloksiz); o = 1; /* Error detected */ break; } } for (zoneptr = (char *) blokptr + MEMORY_CHECK_BORDER + bloksiz, /* Check "after" sentinel */ zoneend = (char *) zoneptr + MEMORY_CHECK_BORDER, zoneidx = 0; zoneptr < zoneend; ) { if (*zoneptr ++ != memorycheckmagktab[zoneidx ++ % 16]) { errorPrintW ("memoryCheck: error after block at %p, real size %ld", (char *) blokptr + MEMORY_CHECK_BORDER, (long) bloksiz); o = 1; /* Error detected */ break; } } return (o); } int memCheck () { int bloknum; int o; o = 0; /* Assume no error */ for (bloknum = 0; bloknum < memorycheckbloknbr; bloknum ++) o |= memCheckBlock (memorycheckbloktab[bloknum]); return (o); } int memCheckToggle () { return (memorycheckenabled = (memorycheckenabled != 0) ? 0 : 1); } int memCheckExists ( void * blokptr) { void * bloktmp; int bloknum; bloktmp = (void *) ((char *) blokptr - MEMORY_CHECK_BORDER); for (bloknum = 0; bloknum < memorycheckbloknbr; bloknum ++) { if (memorycheckbloktab[bloknum] == bloktmp) return (1); } return (0); } size_t memCheckSize ( void * blokptr) { void * bloktmp; int bloknum; bloktmp = (void *) ((char *) blokptr - MEMORY_CHECK_BORDER); for (bloknum = 0; bloknum < memorycheckbloknbr; bloknum ++) { if (memorycheckbloktab[bloknum] == bloktmp) return (*((size_t *) bloktmp)); } return (-1); } void memCheckWatch ( void * blokptr) { memorycheckwtchval = blokptr; /* Record user location */ } static void memCheckEnlist ( void * blokptr, size_t bloksiz) { char * zoneptr; char * zoneend; int zoneidx; if (memorycheckbloknbr >= MEMORY_CHECK_BLOCKS) { errorPrintW ("memoryEnlist: too many blocks"); return; } if (memorycheckenabled != 0) memCheck (); memorycheckbloktab[memorycheckbloknbr ++] = blokptr; /* Insert block into checked block array */ for (zoneptr = (char *) blokptr + COMMON_MEMORY_SZSP, /* Set "before" sentinel */ zoneend = (char *) blokptr + MEMORY_CHECK_BORDER, zoneidx = 0; zoneptr < zoneend; ) *zoneptr ++ = memorycheckmagktab[zoneidx ++ % 16]; if (memorycheckwtchval == (void *) zoneend) /* Test user location */ errorPrintW ("memoryEnlist: watched block address %p enlisted", zoneend); for (zoneptr = (char *) blokptr + MEMORY_CHECK_BORDER + bloksiz, /* Set "after" sentinel */ zoneend = (char *) zoneptr + MEMORY_CHECK_BORDER, zoneidx = 0; zoneptr < zoneend; ) *zoneptr ++ = memorycheckmagktab[zoneidx ++ % 16]; } static void memCheckDelist ( void * blokptr) { int bloknum; if (memorycheckenabled != 0) memCheck (); for (bloknum = 0; bloknum < memorycheckbloknbr; bloknum ++) { if (memorycheckbloktab[bloknum] == blokptr) break; } if (bloknum == memorycheckbloknbr) { errorPrintW ("memoryDelist: block not found"); return; } if (memorycheckwtchval == (void *) ((char *) blokptr + MEMORY_CHECK_BORDER)) errorPrintW ("memoryDelist: watched block address %p unlisted", blokptr); memorycheckbloktab[bloknum] = memorycheckbloktab[-- memorycheckbloknbr]; /* Remove block from checked block array */ } #endif /* COMMON_MEMORY_CHECK */ /*********************************/ /* */ /* The memory handling routines. */ /* */ /*********************************/ /* This routine keeps track of the amount of ** allocated memory, and keeps track of the ** maximum allowed. */ #ifdef COMMON_MEMORY_TRACE #ifndef COMMON_MEMORY_SKEW #define COMMON_MEMORY_SKEW COMMON_MEMORY_SZSP /* Increase block size just to store size */ #define COMMON_MEMORY_OVHD COMMON_MEMORY_SKEW #endif /* COMMON_MEMORY_SKEW */ static intptr_t memorysiz = 0; /*+ Number of allocated bytes +*/ static intptr_t memorymax = 0; /*+ Maximum amount of allocated data +*/ #ifdef COMMON_PTHREAD_MEMORY static int muteflag = 1; /*+ Flag for mutex initialization +*/ static pthread_mutex_t mutelocdat; /*+ Local mutex for updates +*/ #endif /* COMMON_PTHREAD_MEMORY */ /* This routine allocates and records ** a memory block. ** It returns: ** - NULL : if block could not be allocated. ** - !NULL : location of the allocated block. */ void * memAllocRecord ( size_t newsiz) { byte * newptr; #ifdef COMMON_PTHREAD_MEMORY if (muteflag != 0) { /* Unsafe code with respect to race conditions but should work as first allocs are sequential; portable TSL needed */ muteflag = 0; pthread_mutex_init (&mutelocdat, NULL); /* Initialize local mutex */ } pthread_mutex_lock (&mutelocdat); /* Lock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ if ((newptr = malloc (newsiz + COMMON_MEMORY_OVHD)) != NULL) { /* Non-zero size will guarantee non-NULL pointers */ memorysiz += (intptr_t) newsiz; if (memorymax < memorysiz) memorymax = memorysiz; #ifdef COMMON_MEMORY_CHECK memCheckEnlist (newptr, newsiz); #endif /* COMMON_MEMORY_CHECK */ *((size_t *) newptr) = newsiz; /* Record size for freeing */ newptr += COMMON_MEMORY_SKEW; /* Skew pointer while enforcing alignment */ } #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_unlock (&mutelocdat); /* Unlock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ return ((void *) newptr); /* Return skewed pointer or NULL */ } /* This routine reallocates and records ** a memory block. ** It returns: ** - NULL : if block could not be reallocated. ** - !NULL : location of the reallocated block. */ void * memReallocRecord ( void * oldptr, size_t newsiz) { byte * tmpptr; byte * newptr; size_t oldsiz; tmpptr = ((byte *) oldptr) - COMMON_MEMORY_SKEW; oldsiz = *((size_t *) tmpptr); #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_lock (&mutelocdat); /* Lock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ #ifdef COMMON_MEMORY_CHECK memCheckDelist (tmpptr); #endif /* COMMON_MEMORY_CHECK */ if ((newptr = realloc (tmpptr, newsiz + COMMON_MEMORY_OVHD)) != NULL) { memorysiz -= (intptr_t) oldsiz; /* Subtract then add unsigned values to avoid handling signs */ memorysiz += (intptr_t) newsiz; if (memorymax < memorysiz) memorymax = memorysiz; #ifdef COMMON_MEMORY_CHECK memCheckEnlist (newptr, newsiz); #endif /* COMMON_MEMORY_CHECK */ *((size_t *) newptr) = newsiz; /* Record size for freeing */ newptr += COMMON_MEMORY_SKEW; /* Skew pointer while enforcing alignment */ } #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_unlock (&mutelocdat); /* Unlock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ return ((void *) newptr); /* Return skewed pointer or NULL */ } /* This routine frees a recorded ** memory block. ** It returns: ** - void : in all cases. */ void memFreeRecord ( void * oldptr) { byte * tmpptr; size_t oldsiz; tmpptr = ((byte *) oldptr) - COMMON_MEMORY_SKEW; oldsiz = *((size_t *) tmpptr); #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_lock (&mutelocdat); /* Lock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ #ifdef COMMON_MEMORY_CHECK memCheckBlock (tmpptr); /* Check the block first */ memCheckDelist (tmpptr); /* Then check all blocks */ #endif /* COMMON_MEMORY_CHECK */ free (tmpptr); memorysiz -= oldsiz; #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_unlock (&mutelocdat); /* Unlock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ } /* This routine returns the memory ** footprint of Scotch at the date ** of the call. ** It returns: ** - x : current memory footprint. */ IDX memCur () { intptr_t memotmp; #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_lock (&mutelocdat); /* Lock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ memotmp = memorysiz; #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_unlock (&mutelocdat); /* Unlock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ return ((IDX) memotmp); } /* This routine returns the maximum memory ** footprint of Scotch at the date of the ** call. ** It returns: ** - x : current maximum memory footprint. */ IDX memMax () { intptr_t memotmp; #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_lock (&mutelocdat); /* Lock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ memotmp = memorymax; #ifdef COMMON_PTHREAD_MEMORY pthread_mutex_unlock (&mutelocdat); /* Unlock local mutex */ #endif /* COMMON_PTHREAD_MEMORY */ return ((IDX) memotmp); } #else /* COMMON_MEMORY_TRACE */ /* Dummy routines if not compiled with flag ** COMMON_MEMORY_TRACE set. */ IDX memCur () { return ((IDX) -1); } IDX memMax () { return ((IDX) -1); } #endif /* COMMON_MEMORY_TRACE */ /* This routine allocates a set of arrays in ** a single memAlloc()'ed array, the address ** of which is placed in the first argument. ** Arrays to be allocated are described as ** a duplet of ..., &ptr, size, ..., ** terminated by a NULL pointer. ** It returns: ** - !NULL : pointer to block, all arrays allocated. ** - NULL : no array allocated; first block pointer is also set to NULL. */ void * memAllocGroup ( void ** memptr, /*+ Pointer to first argument to allocate +*/ ...) { va_list memlist; /* Argument list of the call */ byte ** memloc; /* Pointer to pointer of current argument */ size_t memoff; /* Offset value of argument */ byte * blkptr; /* Pointer to memory chunk */ memoff = 0; memloc = (byte **) memptr; /* Point to first memory argument */ va_start (memlist, memptr); /* Start argument parsing */ while (memloc != NULL) { /* As long as not NULL pointer */ memoff = (memoff + (sizeof (double) - 1)) & (~ (sizeof (double) - 1)); memoff += va_arg (memlist, size_t); memloc = va_arg (memlist, byte **); } va_end (memlist); if ((blkptr = (byte *) memAlloc (memoff)) == NULL) { /* If cannot allocate */ *memptr = NULL; /* Set first pointer to NULL */ return (NULL); } memoff = 0; memloc = (byte **) memptr; /* Point to first memory argument */ va_start (memlist, memptr); /* Restart argument parsing */ while (memloc != NULL) { /* As long as not NULL pointer */ memoff = (memoff + (sizeof (double) - 1)) & (~ (sizeof (double) - 1)); /* Pad */ *memloc = blkptr + memoff; /* Set argument address */ memoff += va_arg (memlist, size_t); /* Accumulate padded sizes */ memloc = va_arg (memlist, void *); /* Get next argument pointer */ } va_end (memlist); return ((void *) blkptr); } /* This routine reallocates a set of arrays in ** a single memRealloc()'ed array passed as ** first argument, and the address of which ** is placed in the second argument. ** Arrays to be allocated are described as ** a duplet of ..., &ptr, size, ..., ** terminated by a NULL pointer. ** It returns: ** - !NULL : pointer to block, all arrays allocated. ** - NULL : no array allocated. */ void * memReallocGroup ( void * oldptr, /*+ Pointer to block to reallocate +*/ ...) { va_list memlist; /* Argument list of the call */ byte ** memloc; /* Pointer to pointer of current argument */ size_t memoff; /* Offset value of argument */ byte * blkptr; /* Pointer to memory chunk */ memoff = 0; va_start (memlist, oldptr); /* Start argument parsing */ while ((memloc = va_arg (memlist, byte **)) != NULL) { /* As long as not NULL pointer */ memoff = (memoff + (sizeof (double) - 1)) & (~ (sizeof (double) - 1)); /* Pad */ memoff += va_arg (memlist, size_t); /* Accumulate padded sizes */ } va_end (memlist); if ((blkptr = (byte *) memRealloc (oldptr, memoff)) == NULL) /* If cannot allocate block */ return (NULL); memoff = 0; va_start (memlist, oldptr); /* Restart argument parsing */ while ((memloc = va_arg (memlist, byte **)) != NULL) { /* As long as not NULL pointer */ memoff = (memoff + (sizeof (double) - 1)) & (~ (sizeof (double) - 1)); /* Pad */ *memloc = blkptr + memoff; /* Set argument address */ memoff += va_arg (memlist, size_t); /* Accumulate padded sizes */ } va_end (memlist); return ((void *) blkptr); } /* This routine computes the offsets of arrays ** of given sizes and types with respect to a ** given base address passed as first argument. ** Arrays the offsets of which are to be computed ** are described as a duplet of ..., &ptr, size, ..., ** terminated by a NULL pointer. ** It returns: ** - !NULL : in all cases, pointer to the end of ** the memory area. */ void * memOffset ( void * memptr, /*+ Pointer to base address of memory area +*/ ...) { va_list memlist; /* Argument list of the call */ byte ** memloc; /* Pointer to pointer of current argument */ size_t memoff; /* Offset value of argument */ memoff = 0; va_start (memlist, memptr); /* Start argument parsing */ while ((memloc = va_arg (memlist, byte **)) != NULL) { /* As long as not NULL pointer */ memoff = (memoff + (sizeof (double) - 1)) & (~ (sizeof (double) - 1)); *memloc = (byte *) memptr + memoff; /* Set argument address */ memoff += va_arg (memlist, size_t); /* Accumulate padded sizes */ } va_end (memlist); return ((void *) ((byte *) memptr + memoff)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_psort.c000066400000000000000000000166631514310134000266140ustar00rootroot00000000000000/* This file is part of the Scotch distribution. ** It does not include the standard Scotch header because it is a ** slight adaptation of the qsort routine of glibc 2.4, taylored to ** match Scotch needs. ** Consequently, this file is distributed according to the terms of ** the GNU LGPL, see copyright notice below. */ /* Copyright (C) 1991,1992,1996,1997,1999,2004 Free Software Foundation, Inc. This file is extracted from the GNU C Library. Written by Douglas C. Schmidt (schmidt@ics.uci.edu). Modifications (C) 2019 IPB, Universite de Bordeaux, INRIA & CNRS Modified by Francois Pellegrini (francois.pellegrini@u-bordeaux.fr). The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ /* If you consider tuning this algorithm, you should consult first: Engineering a sort function; Jon Bentley and M. Douglas McIlroy; Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993. */ #ifndef STACK_NODE_L_DEFINED #define STACK_NODE_L_DEFINED /* Stack node declarations used to store unfulfilled partition obligations. */ typedef struct { char *lo; char *hi; int lv; } stack_node_l; #endif /* STACK_NODE_L_DEFINED */ #ifndef MAX_THRESH #define MAX_THRESH 6 #define max_thresh (MAX_THRESH * INTSORTSIZE) /* Variable turned into constant */ /* The next 4 #defines implement a very fast in-line stack abstraction. */ /* The stack needs log (total_elements) entries (we could even subtract log(MAX_THRESH)). Since total_elements has type size_t, we get as upper bound for log (total_elements): bits per byte (CHAR_BIT) * sizeof(size_t). */ #define STACK_SIZE (CHAR_BIT * sizeof (INT)) #define PUSH(low, high, lvl) ((void) ((top->lo = (low)), (top->hi = (high)), (top->lv = (lvl)), ++top)) #define POP(low, high, lvl) ((void) (--top, (low = top->lo), (high = top->hi), (lvl = top->lv))) #define STACK_NOT_EMPTY (stack < top) #endif /* MAX_THRESH */ /* Order size using quicksort. This implementation incorporates four optimizations discussed in Sedgewick: 1. Non-recursive, using an explicit stack of pointer that store the next array partition to sort. To save time, this maximum amount of space required to store an array of SIZE_MAX is allocated on the stack. Assuming a 32-bit (64 bit) integer for size_t, this needs only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes). Pretty cheap, actually. 2. Chose the pivot element using a median-of-three decision tree. This reduces the probability of selecting a bad pivot value and eliminates certain extraneous comparisons. 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving insertion sort to order the MAX_THRESH items within each partition. This is a big win, since insertion sort is faster for small, mostly sorted array segments. 4. The larger of the two sub-partitions is always pushed onto the stack first, with the algorithm then concentrating on the smaller partition. This *guarantees* no more than log (total_elems) stack size is needed (actually O(1) in this case)! */ /* To be defined : ** INTSORTQUAL : whether the function is "static" or not ** INTSORTNAME : Name of function ** INTSORTSIZE : Size of elements to sort ** INTSORTSWAP : Swapping macro ** INTSORTCMP : Comparison function */ #ifdef INTSORTQUAL INTSORTQUAL #endif /* INTSORTQUAL */ void INTSORTNAME ( void * const pbase, /*+ Array to sort +*/ const INT total_elems, /*+ Number of entries to sort +*/ const int max_levels) /*+ Maximum number of levels to go +*/ { register char *base_ptr = (char *) pbase; if (total_elems > MAX_THRESH) { char *lo = base_ptr; char *hi = &lo[INTSORTSIZE * (total_elems - 1)]; int lvl = 0; stack_node_l stack[STACK_SIZE]; stack_node_l *top = stack; PUSH (NULL, NULL, 0); while (STACK_NOT_EMPTY) { char *left_ptr; char *right_ptr; /* Select median value from among LO, MID, and HI. Rearrange LO and HI so the three values are sorted. This lowers the probability of picking a pathological pivot value and skips a comparison for both the LEFT_PTR and RIGHT_PTR in the while loops. */ char *mid = lo + INTSORTSIZE * ((hi - lo) / INTSORTSIZE >> 1); if (INTSORTCMP ((void *) mid, (void *) lo)) INTSORTSWAP (mid, lo); if (INTSORTCMP ((void *) hi, (void *) mid)) { INTSORTSWAP (mid, hi); if (INTSORTCMP ((void *) mid, (void *) lo)) INTSORTSWAP (mid, lo); } left_ptr = lo + INTSORTSIZE; right_ptr = hi - INTSORTSIZE; /* Here's the famous ``collapse the walls'' section of quicksort. Gotta like those tight inner loops! They are the main reason that this algorithm runs much faster than others. */ do { while (INTSORTCMP ((void *) left_ptr, (void *) mid)) left_ptr += INTSORTSIZE; while (INTSORTCMP ((void *) mid, (void *) right_ptr)) right_ptr -= INTSORTSIZE; if (left_ptr < right_ptr) { INTSORTSWAP (left_ptr, right_ptr); if (mid == left_ptr) mid = right_ptr; else if (mid == right_ptr) mid = left_ptr; left_ptr += INTSORTSIZE; right_ptr -= INTSORTSIZE; } else if (left_ptr == right_ptr) { left_ptr += INTSORTSIZE; right_ptr -= INTSORTSIZE; break; } } while (left_ptr <= right_ptr); /* Set up pointers for next iteration. First determine whether left and right partitions are below the threshold size. If so, ignore one or both. Otherwise, push the larger partition's bounds on the stack and continue sorting the smaller one. */ if (++lvl >= max_levels) { /* If maximum level achieved, prevent going on further on this branch */ lo = right_ptr; hi = left_ptr; } if ((size_t) (right_ptr - lo) <= max_thresh) { if ((size_t) (hi - left_ptr) <= max_thresh) /* Ignore both small partitions. */ POP (lo, hi, lvl); else /* Ignore small left partition. */ lo = left_ptr; } else if ((size_t) (hi - left_ptr) <= max_thresh) /* Ignore small right partition. */ hi = right_ptr; else if ((right_ptr - lo) > (hi - left_ptr)) { /* Push larger left partition indices. */ PUSH (lo, right_ptr, lvl); lo = left_ptr; } else { /* Push larger right partition indices. */ PUSH (left_ptr, hi, lvl); hi = right_ptr; } } } } #undef MAX_THRESH #undef max_thresh #undef STACK_SIZE #undef PUSH #undef POP #undef STACK_NOT_EMPTY scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_sort.c000066400000000000000000000214471514310134000264300ustar00rootroot00000000000000/* This file is part of the Scotch distribution. ** It does not include the standard Scotch header because it is a very ** slight adaptation of the qsort routine of glibc 2.4, taylored to ** match Scotch needs. ** Consequently, this file is distributed according to the terms of ** the GNU LGPL, see copyright notice below. */ /* Copyright (C) 1991,1992,1996,1997,1999,2004 Free Software Foundation, Inc. This file is extracted from the GNU C Library. Written by Douglas C. Schmidt (schmidt@ics.uci.edu). Modifications (C) 2005 IPB, Universite de Bordeaux, INRIA & CNRS Modified by Francois Pellegrini (francois.pellegrini@u-bordeaux.fr). The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ /* If you consider tuning this algorithm, you should consult first: Engineering a sort function; Jon Bentley and M. Douglas McIlroy; Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993. */ #ifndef STACK_NODE_DEFINED #define STACK_NODE_DEFINED /* Stack node declarations used to store unfulfilled partition obligations. */ typedef struct { char *lo; char *hi; } stack_node; #endif /* STACK_NODE_DEFINED */ #ifndef MAX_THRESH #define MAX_THRESH 6 #define max_thresh (MAX_THRESH * INTSORTSIZE) /* Variable turned into constant */ /* The next 4 #defines implement a very fast in-line stack abstraction. */ /* The stack needs log (total_elements) entries (we could even subtract log(MAX_THRESH)). Since total_elements has type size_t, we get as upper bound for log (total_elements): bits per byte (CHAR_BIT) * sizeof(size_t). */ #define STACK_SIZE (CHAR_BIT * sizeof (INT)) #define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top)) #define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi))) #define STACK_NOT_EMPTY (stack < top) #endif /* MAX_THRESH */ /* Order size using quicksort. This implementation incorporates four optimizations discussed in Sedgewick: 1. Non-recursive, using an explicit stack of pointer that store the next array partition to sort. To save time, this maximum amount of space required to store an array of SIZE_MAX is allocated on the stack. Assuming a 32-bit (64 bit) integer for size_t, this needs only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes). Pretty cheap, actually. 2. Chose the pivot element using a median-of-three decision tree. This reduces the probability of selecting a bad pivot value and eliminates certain extraneous comparisons. 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving insertion sort to order the MAX_THRESH items within each partition. This is a big win, since insertion sort is faster for small, mostly sorted array segments. 4. The larger of the two sub-partitions is always pushed onto the stack first, with the algorithm then concentrating on the smaller partition. This *guarantees* no more than log (total_elems) stack size is needed (actually O(1) in this case)! */ /* To be defined : ** INTSORTQUAL : whether the function is "static" or not ** INTSORTNAME : Name of function ** INTSORTSIZE : Size of elements to sort ** INTSORTSWAP : Swapping macro ** INTSORTCMP : Comparison function */ #ifdef INTSORTQUAL INTSORTQUAL #endif /* INTSORTQUAL */ void INTSORTNAME ( void * const pbase, /*+ Array to sort +*/ const INT total_elems) /*+ Number of entries to sort +*/ { register char *base_ptr = (char *) pbase; if (total_elems == 0) /* Avoid lossage with unsigned arithmetic below. */ return; if (total_elems > MAX_THRESH) { char *lo = base_ptr; char *hi = &lo[INTSORTSIZE * (total_elems - 1)]; stack_node stack[STACK_SIZE]; stack_node *top = stack; PUSH (NULL, NULL); while (STACK_NOT_EMPTY) { char *left_ptr; char *right_ptr; /* Select median value from among LO, MID, and HI. Rearrange LO and HI so the three values are sorted. This lowers the probability of picking a pathological pivot value and skips a comparison for both the LEFT_PTR and RIGHT_PTR in the while loops. */ char *mid = lo + INTSORTSIZE * ((hi - lo) / INTSORTSIZE >> 1); if (INTSORTCMP ((void *) mid, (void *) lo)) INTSORTSWAP (mid, lo); if (INTSORTCMP ((void *) hi, (void *) mid)) { INTSORTSWAP (mid, hi); if (INTSORTCMP ((void *) mid, (void *) lo)) INTSORTSWAP (mid, lo); } left_ptr = lo + INTSORTSIZE; right_ptr = hi - INTSORTSIZE; /* Here's the famous ``collapse the walls'' section of quicksort. Gotta like those tight inner loops! They are the main reason that this algorithm runs much faster than others. */ do { while (INTSORTCMP ((void *) left_ptr, (void *) mid)) left_ptr += INTSORTSIZE; while (INTSORTCMP ((void *) mid, (void *) right_ptr)) right_ptr -= INTSORTSIZE; if (left_ptr < right_ptr) { INTSORTSWAP (left_ptr, right_ptr); if (mid == left_ptr) mid = right_ptr; else if (mid == right_ptr) mid = left_ptr; left_ptr += INTSORTSIZE; right_ptr -= INTSORTSIZE; } else if (left_ptr == right_ptr) { left_ptr += INTSORTSIZE; right_ptr -= INTSORTSIZE; break; } } while (left_ptr <= right_ptr); /* Set up pointers for next iteration. First determine whether left and right partitions are below the threshold size. If so, ignore one or both. Otherwise, push the larger partition's bounds on the stack and continue sorting the smaller one. */ if ((size_t) (right_ptr - lo) <= max_thresh) { if ((size_t) (hi - left_ptr) <= max_thresh) /* Ignore both small partitions. */ POP (lo, hi); else /* Ignore small left partition. */ lo = left_ptr; } else if ((size_t) (hi - left_ptr) <= max_thresh) /* Ignore small right partition. */ hi = right_ptr; else if ((right_ptr - lo) > (hi - left_ptr)) { /* Push larger left partition indices. */ PUSH (lo, right_ptr); lo = left_ptr; } else { /* Push larger right partition indices. */ PUSH (left_ptr, hi); hi = right_ptr; } } } /* Once the BASE_PTR array is partially sorted by quicksort the rest is completely sorted using insertion sort, since this is efficient for partitions below MAX_THRESH size. BASE_PTR points to the beginning of the array to sort, and END_PTR points at the very last element in the array (*not* one beyond it!). */ { char *const end_ptr = &base_ptr[INTSORTSIZE * (total_elems - 1)]; char *tmp_ptr = base_ptr; char *thresh = MIN (end_ptr, base_ptr + max_thresh); register char *run_ptr; /* Find smallest element in first threshold and place it at the array's beginning. This is the smallest array element, and the operation speeds up insertion sort's inner loop. */ for (run_ptr = tmp_ptr + INTSORTSIZE; run_ptr <= thresh; run_ptr += INTSORTSIZE) if (INTSORTCMP ((void *) run_ptr, (void *) tmp_ptr)) tmp_ptr = run_ptr; if (tmp_ptr != base_ptr) INTSORTSWAP (tmp_ptr, base_ptr); /* Insertion sort, running from left-hand-side up to right-hand-side. */ run_ptr = base_ptr + INTSORTSIZE; while ((run_ptr += INTSORTSIZE) <= end_ptr) { tmp_ptr = run_ptr - INTSORTSIZE; while (INTSORTCMP ((void *) run_ptr, (void *) tmp_ptr)) tmp_ptr -= INTSORTSIZE; tmp_ptr += INTSORTSIZE; if (tmp_ptr != run_ptr) { char *trav; trav = run_ptr + INTSORTSIZE; while (--trav >= run_ptr) { char c = *trav; char *hi, *lo; for (hi = lo = trav; (lo -= INTSORTSIZE) >= tmp_ptr; hi = lo) *hi = *lo; *hi = c; } } } } } #undef MAX_THRESH #undef max_thresh #undef STACK_SIZE #undef PUSH #undef POP #undef STACK_NOT_EMPTY scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_string.c000066400000000000000000000111211514310134000267330ustar00rootroot00000000000000/* Copyright 2010,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_string.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel direct block solver. **/ /** These lines are common routines used **/ /** by all modules. **/ /** **/ /** DATES : # Version 5.1 : from : 23 jul 2010 **/ /** to : 23 jul 2010 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include #include "common.h" /********************************/ /* */ /* String substitution routine. */ /* */ /********************************/ static void stringSubst2 ( char * const bsrcptr, char * const bdstptr, const char * const pattstr, const char * const replstr, const size_t pattsiz, const size_t replsiz) { char * pattptr; size_t pattidx; pattptr = strstr (bsrcptr, pattstr); /* Search for the pattern in the remaining source string */ pattidx = (pattptr == NULL) ? (strlen (bsrcptr) + 1) : (size_t) (pattptr - bsrcptr); /* Get length of unchanged part */ if (replsiz < pattsiz) /* If replacement is smaller, pre-move unchanged part */ memMov (bdstptr, bsrcptr, pattidx * sizeof (char)); if (pattptr != NULL) /* If remaining part of string has to be processed */ stringSubst2 (pattptr + pattsiz, bdstptr + pattidx + replsiz, pattstr, replstr, pattsiz, replsiz); if (replsiz > pattsiz) /* If replacement is longer, post-move unchanged part */ memMov (bdstptr, bsrcptr, pattidx * sizeof (char)); if (pattptr != NULL) /* If there is something to replace */ memCpy (bdstptr + pattidx, replstr, replsiz * sizeof (char)); /* Write replacement string */ } void stringSubst ( char * const buffptr, /* String to search into */ const char * const pattstr, /* Pattern to search for */ const char * const replstr) /* Replacement string */ { size_t pattsiz; size_t replsiz; pattsiz = strlen (pattstr); replsiz = strlen (replstr); stringSubst2 (buffptr, buffptr, pattstr, replstr, pattsiz, replsiz); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_stub.c000066400000000000000000000070701514310134000264120ustar00rootroot00000000000000/* Copyright 2008,2010,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_stub.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : These lines are common stub routines **/ /** for several systems, used by all **/ /** modules. **/ /** **/ /** DATES : # Version 5.0 : from : 11 may 2008 **/ /** to : 11 may 2008 **/ /** # Version 5.1 : from : 27 jun 2010 **/ /** to : 01 jul 2010 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 01 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" /* ** The static and global variables. */ int commonStubDummy; /* Dummy variable so that the object file will never be empty */ /******************/ /* */ /* Stub routines. */ /* */ /******************/ #ifdef COMMON_STUB_FORK int fork () { errorPrint ("fork() not implemented on this system"); return (-1); } int waitpid ( int pid, /* Not used */ int * wstatus, /* Not used */ int options) /* Not used */ { errorPrint ("waitpid() not implemented on this system"); return (-1); } #endif /* COMMON_STUB_FORK */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_thread.c000066400000000000000000000716101514310134000267050ustar00rootroot00000000000000/* Copyright 2012-2015,2018,2019,2021,2022,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_thread.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module provides routines to ease **/ /** the use of Posix threads. **/ /** **/ /** DATES : # Version 6.0 : from : 04 jul 2012 **/ /** to : 27 apr 2015 **/ /** # Version 7.0 : from : 03 jun 2018 **/ /** to : 28 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_COMMON_THREAD #include "module.h" #include "common.h" #include "common_thread.h" #include "common_thread_system.h" /*****************************/ /* */ /* Thread handling routines. */ /* */ /*****************************/ /* This routine returns the number of threads ** of the given comtext. ** It returns: ** - (int) : in all cases. */ int threadContextNbr ( ThreadContext * const contptr) { return (contptr->thrdnbr); } /* This routine returns the pointer to the ** parameter of the parallel routine being ** currently executed in the given context. ** It returns: ** - (void *) : in all cases. */ void * threadContextParam ( ThreadContext * const contptr) { return ((void *) contptr->paraptr); } #ifdef COMMON_PTHREAD /* This routine initializes a thread context ** structure using the given number of threads. ** It returns: ** - 0 : if thread context initialized. ** - !0 : on error. */ int threadContextInit ( ThreadContext * const contptr, int thrdnbr, const int * const coretab) { ThreadDescriptor * desctab; int corenbr; int corenum; int thrdnum; threadProcessStateSave (contptr); /* Save state of main thread */ corenbr = threadProcessCoreNbr (contptr); /* Get number of assigned cores */ if (thrdnbr < 0) /* If unspecified number of threads */ thrdnbr = corenbr; /* Take as many as available */ contptr->barrnbr = 0; contptr->bainnum = 0; contptr->funcptr = NULL; contptr->paraptr = NULL; contptr->thrdnbr = thrdnbr; if (thrdnbr == 1) { /* If no threads wanted */ contptr->statval = THREADCONTEXTSTATUSDWN; /* Do not start thread system */ return (0); } if ((desctab = memAlloc (thrdnbr * sizeof (ThreadDescriptor))) == NULL) { errorPrint ("threadContextInit: out of memory"); return (1); } pthread_mutex_init (&contptr->lockdat, NULL); pthread_cond_init (&contptr->conddat, NULL); contptr->statval = THREADCONTEXTSTATUSRDY; for (thrdnum = 1; thrdnum < thrdnbr; thrdnum ++) { /* Launch threads from 1 to (thrdnbr - 1) */ desctab[thrdnum].contptr = contptr; desctab[thrdnum].thrdnum = thrdnum; corenum = (coretab != NULL) ? (coretab[thrdnum] % corenbr) : threadProcessCoreNum (contptr, thrdnum); if (threadCreate (&desctab[thrdnum], thrdnum, corenum) != 0) { errorPrint ("threadContextInit: cannot create thread (%d)", thrdnum); contptr->thrdnbr = thrdnum; /* Terminate all threads that have been launched to date */ threadContextExit (contptr); return (1); } } desctab[0].contptr = contptr; desctab[0].thrdnum = 0; corenum = (coretab != NULL) ? (coretab[0] % corenbr) : threadProcessCoreNum (contptr, 0); threadCreate (&desctab[0], 0, corenum); /* Set affinity of local thread (slaves use saved main thread mask) */ threadContextBarrier (contptr); /* Ensure all slave threads have started before cleaning-up resources */ memFree (desctab); return (0); } /* This routine frees the given thread context ** without restoring the thread affinity mask. ** It is used to free sub-contexts, such as ** those created by splitting an existing ** context. ** It returns: ** - VOID : in all cases. */ void threadContextExit2 ( ThreadContext * const contptr) { int thrdnbr; int barrnbr; thrdnbr = contptr->thrdnbr; if (thrdnbr <= 1) /* If thread system not started, nothing to do */ return; pthread_mutex_lock (&contptr->lockdat); contptr->statval = THREADCONTEXTSTATUSDWN; /* Request shutdow */ pthread_cond_broadcast (&contptr->conddat); /* Wake-up slave threads */ pthread_mutex_unlock (&contptr->lockdat); thrdnbr --; /* Do not count ourselves in the spin-lock barrier */ do { /* Spin-lock until all slave threads have exited critical section */ pthread_mutex_lock (&contptr->lockdat); barrnbr = contptr->barrnbr; pthread_mutex_unlock (&contptr->lockdat); } while (barrnbr != thrdnbr); pthread_cond_destroy (&contptr->conddat); /* Destroy critical section features */ pthread_mutex_destroy (&contptr->lockdat); } /* This routine frees the given thread context ** and restores the thread affinity mask. ** It returns: ** - VOID : in all cases. */ void threadContextExit ( ThreadContext * const contptr) { threadContextExit2 (contptr); /* Exit context and release threads */ threadProcessStateRestore (contptr); /* Restore state of main thread */ } /* This routine performs a barrier on the given ** thread context. One could have used the ** standard pthread barrier routine, but it is ** not always available, and the cond and mutex ** objects already exist in the thread context, ** so it is more efficient to re-use them. ** It returns: ** - 0 : thread is not the last thread. ** - !0 : thread is the last thread. */ int threadContextBarrier ( ThreadContext * const contptr) { int barrnbr; unsigned int bainnum; int o; if (contptr->thrdnbr == 1) /* If thread system not started, return immediately */ return (PTHREAD_BARRIER_SERIAL_THREAD); pthread_mutex_lock (&contptr->lockdat); barrnbr = contptr->barrnbr + 1; bainnum = contptr->bainnum; o = 0; /* Assume thread will not be the last one */ if (barrnbr == contptr->thrdnbr) { /* If last thread */ contptr->barrnbr = 0; /* Reset barrier counters */ contptr->bainnum = bainnum + 1; pthread_cond_broadcast (&contptr->conddat); /* Wake-up all sleeping threads */ o = PTHREAD_BARRIER_SERIAL_THREAD; /* Last thread returns special value */ } else { /* Not last thread */ contptr->barrnbr = barrnbr; /* One more thread blocked */ do pthread_cond_wait (&contptr->conddat, &contptr->lockdat); while (contptr->bainnum == bainnum); } pthread_mutex_unlock (&contptr->lockdat); return (o); } /* This routine performs a specific barrier on ** the given thread context. It is called at the ** end of a round, to reset the statval flag to ** its wait state. ** It returns: ** - void : in all cases. */ static inline void threadWaitBarrier ( ThreadContext * const contptr) { int barrnbr; unsigned int bainnum; pthread_mutex_lock (&contptr->lockdat); barrnbr = contptr->barrnbr + 1; bainnum = contptr->bainnum; if (barrnbr == contptr->thrdnbr) { /* If last thread */ contptr->statval = THREADCONTEXTSTATUSRDY; /* Round has completed for all threads */ #ifdef COMMON_DEBUG contptr->funcptr = NULL; contptr->paraptr = NULL; #endif /* COMMON_DEBUG */ contptr->barrnbr = 0; /* Reset barrier counters */ contptr->bainnum = bainnum + 1; pthread_cond_broadcast (&contptr->conddat); /* Wake-up all sleeping threads */ } else { /* Not last thread */ contptr->barrnbr = barrnbr; /* One more thread blocked */ do pthread_cond_wait (&contptr->conddat, &contptr->lockdat); while (contptr->bainnum == bainnum); } pthread_mutex_unlock (&contptr->lockdat); } /* This routine is the wait loop for all slave ** threads of the thread context. ** It returns: ** - NULL : in all cases. */ static void * threadWait ( ThreadDescriptor * const thrdptr) /* Initial thread descriptor; may me destroyed afterwards */ { ThreadContextStatus statval; /* Status being read at wake-up time */ ThreadDescriptor thrddat; /* Permanent descriptor passed to the routines of the current thread */ thrddat = *thrdptr; /* Make local copy of thread descriptor before barrier */ threadContextBarrier (thrddat.contptr); /* Wait for all threads to complete initialization */ while (1) { pthread_mutex_lock (&thrddat.contptr->lockdat); while ((statval = thrddat.contptr->statval) == THREADCONTEXTSTATUSRDY) /* As long as nothing to do, go on sleeping */ pthread_cond_wait (&thrddat.contptr->conddat, &thrddat.contptr->lockdat); pthread_mutex_unlock (&thrddat.contptr->lockdat); if (statval != THREADCONTEXTSTATUSRUN) /* Exit loop if not asked to run a routine */ break; thrddat.contptr->funcptr (&thrddat, (void *) thrddat.contptr->paraptr); /* Call routine */ threadWaitBarrier (thrddat.contptr); /* Special barrier to reset to wait state */ } #ifdef COMMON_DEBUG if (statval != THREADCONTEXTSTATUSDWN) errorPrint ("threadWait: invalid status"); #endif /* COMMON_DEBUG */ pthread_mutex_lock (&thrddat.contptr->lockdat); /* Acknowledge termination */ thrddat.contptr->barrnbr ++; pthread_mutex_unlock (&thrddat.contptr->lockdat); return (NULL); } /* This routine, called by the master thread, ** launches a parallel task across the given ** thread context. ** It returns: ** - void : in all cases. */ void threadLaunch ( ThreadContext * const contptr, ThreadFunc const funcptr, /* Function to launch */ void * const paraptr) /* Function parameters */ { ThreadDescriptor thrddat; thrddat.contptr = contptr; /* Fill master descriptor */ thrddat.thrdnum = 0; if (contptr->thrdnbr == 1) { /* If thread system not started, run function alone */ funcptr (&thrddat, paraptr); return; } pthread_mutex_lock (&contptr->lockdat); /* In case writes are not atomic */ contptr->funcptr = funcptr; /* Set function parameters */ contptr->paraptr = paraptr; contptr->statval = THREADCONTEXTSTATUSRUN; /* Allow other threads to run */ pthread_cond_broadcast (&contptr->conddat); /* Wake them up */ pthread_mutex_unlock (&contptr->lockdat); funcptr (&thrddat, paraptr); /* Run function along with other threads */ threadWaitBarrier (contptr); /* Special barrier to reset to wait state */ } /* This routine performs a synchronous ** reduction operation on the given block ** of threads. The routine is called only ** if the two threads in the reduction binary ** tree exist. ** A final, global barrier may be necessary for ** all threads to benefit from the result of the ** reduction operation. ** It returns: ** - void : in all cases. */ #ifdef COMMON_PTHREAD_REDUCE_CANONICAL void threadReduce ( const ThreadDescriptor * const thrdptr, void * const dataptr, /* Local data object */ const size_t datasiz, /* Size of per-thread data block */ ThreadReduceFunc const redfptr, /* Pointer to reduction routine */ const int rootnum, /* Root of reduction */ const void * const globptr) /* Global data for reduction */ { int thrdnsk; /* Rank of thread in skewed reduction tree */ int thrdmsk; ThreadContext * const contptr = thrdptr->contptr; /* Fast accesses */ const int thrdnbr = contptr->thrdnbr; const int thrdnum = thrdptr->thrdnum; #ifdef COMMON_DEBUG if ((rootnum < 0) || (rootnum >= thrdnbr)) { errorPrint ("threadReduce: invalid root number (1)"); return; } #endif /* COMMON_DEBUG */ if (thrdnbr <= 1) /* If thread system not started, nothing to do */ return; thrdnsk = (thrdnum + thrdnbr - rootnum) % thrdnbr; for (thrdmsk = 1; thrdmsk < thrdnbr; thrdmsk <<= 1) { int thrdesk; /* Skewed rank of end thread */ threadContextBarrier (contptr); thrdesk = thrdnsk ^ thrdmsk; /* Get skewed rank of end thread */ if (thrdesk < thrdnbr) { /* If end thread exists */ if (thrdesk > thrdnsk) { /* If we are on the receiving side */ int thrdend; int thrddlt; thrdend = (thrdesk + rootnum) % thrdnbr; thrddlt = thrdend - thrdnum; redfptr (dataptr, (void *) ((byte *) dataptr + thrddlt * datasiz), globptr); /* Call reduction routine */ } else /* We are on the sending side */ thrdnsk += thrdnbr; /* Make sure we will no longer work */ } } threadContextBarrier (contptr); } #else /* COMMON_PTHREAD_REDUCE_CANONICAL */ void threadReduce ( const ThreadDescriptor * const thrdptr, void * const dataptr, /* Local data object */ const size_t datasiz, /* Size of per-thread data block */ ThreadReduceFunc const redfptr, /* Pointer to reduction routine */ const int rootnum, /* Root of reduction */ const void * const globptr) /* Global data for reduction */ { ThreadContext * const contptr = thrdptr->contptr; /* Fast accesses */ const int thrdnbr = contptr->thrdnbr; const int thrdnum = thrdptr->thrdnum; #ifdef COMMON_DEBUG if ((rootnum < 0) || (rootnum >= thrdnbr)) { errorPrint ("threadReduce: invalid root number (1)"); return; } #endif /* COMMON_DEBUG */ if (thrdnbr <= 1) /* If thread system not started, nothing to do */ return; threadContextBarrier (contptr); if (thrdnum == rootnum) { /* If we are the root */ int thrdtmp; for (thrdtmp = 1; thrdtmp < thrdnbr; thrdtmp ++) { int thrdesk; /* Skewed rank of end thread */ thrdesk = (rootnum + thrdtmp) % thrdnbr - rootnum; redfptr (dataptr, (void *) ((byte *) dataptr + thrdesk * datasiz), globptr); /* Call reduction routine */ } } threadContextBarrier (contptr); } #endif /* COMMON_PTHREAD_REDUCE_CANONICAL */ /* This routine performs a synchronous ** scan operation on the given block of ** threads. It requires a dummy area for ** storing every other result, hence the ** phase number that is passed to the ** auxiliary routine. ** Both areas should be set with initial ** values, depending on the start phase ** number. ** It returns: ** - void : in all cases. */ #ifdef COMMON_PTHREAD_SCAN_CANONICAL void threadScan ( const ThreadDescriptor * const thrdptr, /* Pointer to thread header */ void * const dataptr, /* Local data object */ const size_t datasiz, /* Size of per-thread data block */ ThreadScanFunc const scafptr, /* Scan function */ const void * const globptr) /* Global data for reduction */ { void * cellptr; /* Pointer to local data block */ int thrdmsk; /* Thread number skew mask */ int phasnum; /* Phase number */ ThreadContext * const contptr = thrdptr->contptr; /* Fast accesses */ const int thrdnbr = contptr->thrdnbr; const int thrdnum = thrdptr->thrdnum; if (thrdnbr <= 1) /* If thread system not started, nothing to do */ return; cellptr = dataptr; for (thrdmsk = 1, phasnum = 0; thrdmsk < thrdnbr; thrdmsk <<= 1) { threadContextBarrier (contptr); /* Barrier on all threads, even those which do not participate */ if (cellptr != NULL) { /* If local thread is still active */ int thrdend; thrdend = thrdnum - thrdmsk; /* Get rank of end thread */ if (thrdend >= 0) { /* If end slot exists */ scafptr (cellptr, (void *) ((byte *) cellptr - thrdmsk * datasiz), phasnum, phasnum ^ 1, globptr); phasnum ^= 1; /* Next destination will be the opposite */ } else { /* End slot does not exist */ scafptr (cellptr, NULL, phasnum, phasnum ^ 1, globptr); /* Copy value for next steps to use it */ phasnum = 0; /* No need to move it afterwards */ cellptr = NULL; /* Do not consider this thread again */ } } } if (phasnum != 0) /* If accumulated local value of last round not in place */ scafptr (cellptr, NULL, phasnum, 0, globptr); /* Move value in place before returning */ threadContextBarrier (contptr); } #else /* COMMON_PTHREAD_SCAN_CANONICAL */ void threadScan ( const ThreadDescriptor * const thrdptr, /* Pointer to thread header */ void * const dataptr, /* Local data object */ const size_t datasiz, /* Size of per-thread data block */ ThreadScanFunc const scafptr, /* Scan function */ const void * const globptr) /* Global data for reduction */ { byte * cellptr; /* Pointer to local data block */ int thrdtmp; ThreadContext * const contptr = thrdptr->contptr; /* Fast accesses */ const int thrdnbr = contptr->thrdnbr; const int thrdnum = thrdptr->thrdnum; if (thrdnbr <= 1) /* If thread system not started, nothing to do */ return; threadContextBarrier (contptr); if (thrdnum == 0) { for (thrdtmp = thrdnbr - 1, cellptr = (byte *) dataptr; thrdtmp > 0; thrdtmp --, cellptr += datasiz) scafptr ((void *) (cellptr + datasiz), (void *) cellptr, 0, 0, globptr); } threadContextBarrier (contptr); } #endif /* COMMON_PTHREAD_SCAN_CANONICAL */ /* This routine, to be called only by the master ** thread of an outside threading environment, ** creates a Scotch context to be populated by ** its fellow threads. ** It returns: ** - void : in all cases. */ void threadContextImport1 ( ThreadContext * const contptr, const int thrdnbr) { contptr->thrdnbr = thrdnbr; contptr->paraptr = NULL; contptr->funcptr = NULL; contptr->barrnbr = 0; contptr->bainnum = 0; if (thrdnbr == 1) { /* If no threads wanted */ contptr->statval = THREADCONTEXTSTATUSDWN; /* Do not start thread system */ return; } pthread_mutex_init (&contptr->lockdat, NULL); pthread_cond_init (&contptr->conddat, NULL); contptr->statval = THREADCONTEXTSTATUSRDY; } /* This routine, to be called by all threads of ** an outside threading environment once the master ** has successfully returned from threadContextImport1(), ** populates the given Scotch context by the slave ** threads which are put to sleep and gives back ** control to the master thread. ** It returns: ** - void : in all cases. */ void threadContextImport2 ( ThreadContext * const contptr, const int thrdnum) /*+ Number of thread in its outside environment +*/ { if (thrdnum != 0) { ThreadDescriptor thrddat; thrddat.contptr = contptr; thrddat.thrdnum = thrdnum; threadWait (&thrddat); /* Lock slave threads */ } else threadContextBarrier (contptr); } #endif /* COMMON_PTHREAD */ /**********************************/ /* */ /* Thread handling routine stubs. */ /* */ /**********************************/ #ifndef COMMON_PTHREAD int threadContextInit ( ThreadContext * const contptr, const int thrdnbr, const int * const coretab) { contptr->thrdnbr = 1; /* Only main thread will be active */ contptr->statval = THREADCONTEXTSTATUSDWN; /* Thread system is not functional */ return (0); } /* ** */ void threadContextExit2 ( ThreadContext * restrict const contptr) { } /* ** */ void threadContextExit ( ThreadContext * restrict const contptr) { } /* ** */ int threadContextBarrier ( ThreadContext * const contptr) { return (PTHREAD_BARRIER_SERIAL_THREAD); /* Last and only thread returns special value */ } /* ** */ void threadLaunch ( ThreadContext * const contptr, ThreadFunc const funcptr, /* Function to launch */ void * const paraptr) /* Function parameters */ { ThreadDescriptor thrddat; thrddat.contptr = contptr; /* Fill master descriptor */ thrddat.thrdnum = 0; funcptr (&thrddat, paraptr); /* Run function alone */ } /* ** */ void threadReduce ( const ThreadDescriptor * const thrdptr, void * const dataptr, /* Local data object */ const size_t datasiz, /* Size of per-thread data block */ ThreadReduceFunc const redfptr, /* Pointer to reduction routine */ const int rootnum, /* Root of reduction */ const void * const globptr) /* Global data for reduction */ { #ifdef COMMON_DEBUG if (rootnum != 0) errorPrint ("threadReduce: invalid root number (2)"); #endif /* COMMON_DEBUG */ } /* ** */ void threadScan ( const ThreadDescriptor * const thrdptr, /* Pointer to thread header */ void * const dataptr, /* Local data object */ const size_t datasiz, /* Size of per-thread data block */ ThreadScanFunc const scafptr, /* Scan function */ const void * const globptr) /* Global data for reduction */ { } /* ** */ void threadContextImport1 ( ThreadContext * const contptr, const int thrdnbr) { contptr->thrdnbr = 1; /* Only main thread will be active */ contptr->statval = THREADCONTEXTSTATUSDWN; /* Thread system is not functional */ } /* ** */ void threadContextImport2 ( ThreadContext * const contptr, const int thrdnum) /*+ Number of thread in its outside environment +*/ { } #endif /* COMMON_PTHREAD */ /*****************************/ /* */ /* Thread affinity routines. */ /* */ /*****************************/ #ifdef COMMON_PTHREAD static int threadCreate ( ThreadDescriptor * const descptr, const int thrdnum, const int corenum) { pthread_t thidval; #ifdef COMMON_PTHREAD_AFFINITY_LINUX cpu_set_t cpusdat; #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ if (thrdnum > 0) { /* Do not create master thread */ if (pthread_create (&thidval, NULL, (void * (*) (void *)) threadWait, (void *) descptr) != 0) { errorPrint ("threadCreate: cannot launch thread (%d)", thrdnum); return (1); } pthread_detach (thidval); /* Nobody will wait for us to join */ } else thidval = pthread_self (); #ifdef COMMON_PTHREAD_AFFINITY_LINUX if ((corenum >= 0) && (corenum < CPU_SETSIZE)) { CPU_ZERO (&cpusdat); CPU_SET (corenum, &cpusdat); pthread_setaffinity_np (thidval, sizeof (cpu_set_t), &cpusdat); } #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ return (0); } /* This routine returns the number of available threads ** to run the process: either the number of threads assigned ** to the process by the environment (e.g., an MPI launcher) ** or the system number of threads. ** It returns: ** - >0 : number of threads, in all cases. */ static int threadProcessCoreNbr ( ThreadContext * const contptr) { int corenbr; #ifdef COMMON_PTHREAD_AFFINITY_LINUX corenbr = CPU_COUNT (&contptr->savedat.cpusdat); #else /* COMMON_PTHREAD_AFFINITY_LINUX */ corenbr = threadSystemCoreNbr (); #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ return (corenbr); } /* This routine returns the number of the core to be ** associated with the given thread number. ** It returns: ** - x : number of the core associated with the thread. */ static int threadProcessCoreNum ( ThreadContext * const contptr, int thrdnum) { int corenum; #ifdef COMMON_PTHREAD_AFFINITY_LINUX int corenbr; corenbr = CPU_COUNT (&contptr->savedat.cpusdat); thrdnum %= corenbr; /* Round-robin on thread allocation */ for (corenum = 0; thrdnum >= 0; corenum ++) { /* For all potential cores */ if (CPU_ISSET (corenum, &contptr->savedat.cpusdat)) { /* If core is available */ if (thrdnum <= 0) /* And it is the one we want */ break; /* We have found our core number */ thrdnum --; /* One less available core */ } } #else /* COMMON_PTHREAD_AFFINITY_LINUX */ corenum = thrdnum; #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ return (corenum); } /* This routine saves the thread context of ** the master thread. ** It returns: ** - void : in all cases. */ static void threadProcessStateSave ( ThreadContext * const contptr) { #ifdef COMMON_PTHREAD_AFFINITY_LINUX pthread_getaffinity_np (pthread_self (), sizeof (cpu_set_t), &contptr->savedat.cpusdat); #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ } /* This routine restores the thread context ** of the master thread. ** It returns: ** - void : in all cases. */ static void threadProcessStateRestore ( ThreadContext * const contptr) { #ifdef COMMON_PTHREAD_AFFINITY_LINUX pthread_setaffinity_np (pthread_self (), sizeof (cpu_set_t), &contptr->savedat.cpusdat); #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ } #endif /* COMMON_PTHREAD */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_thread.h000066400000000000000000000120771514310134000267140ustar00rootroot00000000000000/* Copyright 2018,2019,2021,2022,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_thread.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the internal data **/ /** declarations for the thread management **/ /** routines. **/ /** **/ /** DATES : # Version 7.0 : from : 05 jun 2018 **/ /** to : 06 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Barrier return flag. +*/ #ifndef PTHREAD_BARRIER_SERIAL_THREAD #define PTHREAD_BARRIER_SERIAL_THREAD -1 #endif /* PTHREAD_BARRIER_SERIAL_THREAD */ /* ** The type and structure definitions. */ /*+ Thread context status. +*/ typedef enum ThreadContextStatus_ { THREADCONTEXTSTATUSRDY, /*+ Ready to run +*/ THREADCONTEXTSTATUSRUN, /*+ Task running +*/ THREADCONTEXTSTATUSDWN /*+ Out of order +*/ } ThreadContextStatus; /*+ Context in which parallel tasks can be launched. The abstract type is defined in "common.h". +*/ struct ThreadContext_ { int thrdnbr; /*+ Number of threads +*/ volatile ThreadContextStatus statval; /*+ Thread group status +*/ volatile void * paraptr; /*+ Pointer to function parameter +*/ #ifdef COMMON_PTHREAD volatile ThreadFunc funcptr; /*+ Function to call at run time +*/ volatile int barrnbr; /*+ Number of threads currently blocked +*/ volatile unsigned int bainnum; /*+ Number of barrier instance +*/ pthread_mutex_t lockdat; /*+ Lock for updating status +*/ pthread_cond_t conddat; /*+ Wakeup condition for slave threads +*/ union { /*+ Context save area for main thread +*/ int dummval; /*+ Dummy value if no affinity enabled +*/ #ifdef COMMON_PTHREAD_AFFINITY_LINUX cpu_set_t cpusdat; /*+ Original thread mask of main thread +*/ #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ } savedat; /*+ Save area for affinity mask +*/ #endif /* COMMON_PTHREAD */ }; /* ** The function prototypes. */ #ifdef SCOTCH_COMMON_THREAD #ifdef COMMON_PTHREAD static void threadWaitBarrier (ThreadContext * const); static void * threadWait (ThreadDescriptor * const); static int threadCreate (ThreadDescriptor * const, const int, const int); static int threadProcessCoreNbr (ThreadContext * const); static int threadProcessCoreNum (ThreadContext * const, int); static void threadProcessStateRestore (ThreadContext * const); static void threadProcessStateSave (ThreadContext * const); #endif /* COMMON_PTHREAD */ #endif /* SCOTCH_COMMON_THREAD */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_thread_system.c000066400000000000000000000115311514310134000303050ustar00rootroot00000000000000/* Copyright 2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_thread_system.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module provides system, low-level **/ /** routines to ease the use of Posix **/ /** threads. **/ /** **/ /** DATES : # Version 7.0 : from : 24 aug 2019 **/ /** to : 19 jan 2023 **/ /** **/ /** NOTES : # This code mainly derives from that **/ /** of the Pastix solver. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_thread_system.h" /* ** The static variables. */ #ifdef COMMON_PTHREAD static pthread_mutex_t threadsystemmutedat = PTHREAD_MUTEX_INITIALIZER; static volatile int threadsystemflagval = 0; static volatile int threadsystemcorenbr = 1; #else /* COMMON_PTHREAD */ static const int threadsystemcorenbr = 1; #endif /* COMMON_PTHREAD */ /*****************************/ /* */ /* Thread handling routines. */ /* */ /*****************************/ #ifdef COMMON_PTHREAD /* This routine returns the number of cores ** known to the system. ** It returns: ** - !0 : number of cores. */ int threadSystemCoreNbr () { int corenbr; pthread_mutex_lock (&threadsystemmutedat); if (threadsystemflagval == 0) { #if (defined (COMMON_OS_MACOS)) int maibtab[4]; size_t corelen; corelen = sizeof (corenbr); /* Request hw.ncpu from Management Information Base */ maibtab[0] = CTL_HW; maibtab[1] = HW_AVAILCPU; sysctl (maibtab, 2, &corenbr, &corelen, NULL, 0); /* Get number of cores from the system */ if (corenbr < 1) { maibtab[1] = HW_NCPU; sysctl (maibtab, 2, &corenbr, &corelen, NULL, 0); if (corenbr < 1) corenbr = 1; } #elif (defined (COMMON_OS_WINDOWS)) SYSTEM_INFO sinfdat; GetSystemInfo (&sinfdat); corenbr = sinfdat.dwNumberOfProcessors; #else /* (defined (COMMON_OS_LINUX) || defined (COMMON_OS_FREEBSD) || defined (COMMON_OS_AIX)) */ corenbr = sysconf (_SC_NPROCESSORS_ONLN); #endif threadsystemcorenbr = corenbr; threadsystemflagval = 1; } else corenbr = threadsystemcorenbr; pthread_mutex_unlock (&threadsystemmutedat); return (corenbr); } #endif /* COMMON_PTHREAD */ /**********************************/ /* */ /* Thread handling routine stubs. */ /* */ /**********************************/ #ifndef COMMON_PTHREAD int threadSystemCoreNbr () { return (threadsystemcorenbr); } #endif /* COMMON_PTHREAD */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_thread_system.h000066400000000000000000000051121514310134000303100ustar00rootroot00000000000000/* Copyright 2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_thread_system.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the internal data **/ /** declarations for the low-level thread **/ /** management routines. **/ /** **/ /** DATES : # Version 7.0 : from : 24 aug 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int threadSystemCoreNbr (void); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_timer.c000066400000000000000000000107101514310134000265500ustar00rootroot00000000000000/* Copyright 2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_timer.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the timers. **/ /** **/ /** DATES : # Version 7.0 : from : 22 aug 2023 **/ /** to : 22 aug 2023 **/ /** **/ /************************************************************/ #include "module.h" #include "common.h" /* ** The global variables. */ int timerNbr = 0; /* Number of timers */ Clock * timerTab = NULL; /* Array of timers */ /*******************/ /* */ /* Timer routines. */ /* */ /*******************/ int timerInit ( const int timenbr) { int timenum; #ifdef COMMON_DEBUG if (timerTab != NULL) { errorPrint ("timerInit: timers already initialized"); return (1); } #endif /* COMMON_DEBUG */ if ((timerTab = memAlloc (timenbr * sizeof (Clock))) == NULL) { errorPrint ("timerInit: out of memory"); return (1); } timerNbr = timenbr; for (timenum = 0; timenum < timenbr; timenum ++) clockInit (&timerTab[timenum]); return (0); } void timerExit () { #ifdef COMMON_DEBUG if (timerTab == NULL) { errorPrint ("timerExit: timers not initialized"); return; } #endif /* COMMON_DEBUG */ memFree (timerTab); timerNbr = 0; timerTab = NULL; } void timerStart ( const int timenum) { #ifdef COMMON_DEBUG if (timerTab == NULL) { errorPrint ("timerStart: timers not initialized"); return; } if ((timenum < 0) || (timenum >= timerNbr)) { errorPrint ("timerStart: invalid timer number"); return; } #endif /* COMMON_DEBUG */ clockStart (&timerTab[timenum]); } void timerStop ( const int timenum) { #ifdef COMMON_DEBUG if (timerTab == NULL) { errorPrint ("timerStop: timers not initialized"); return; } if ((timenum < 0) || (timenum >= timerNbr)) { errorPrint ("timerStop: invalid timer number"); return; } #endif /* COMMON_DEBUG */ clockStop (&timerTab[timenum]); } double timerVal ( const int timenum) { #ifdef COMMON_DEBUG if (timerTab == NULL) { errorPrint ("timerStop: timers not initialized"); return (-1.0); } if ((timenum < 0) || (timenum >= timerNbr)) { errorPrint ("timerVal: invalid timer number"); return (-1.0); } #endif /* COMMON_DEBUG */ return ((double) clockVal (&timerTab[timenum])); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_timer.h000066400000000000000000000056561514310134000265720ustar00rootroot00000000000000/* Copyright 2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_timer.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the timing functions. **/ /** **/ /** DATES : # Version 7.0 : from : 22 aug 2023 **/ /** to : 22 aug 2023 **/ /** **/ /************************************************************/ /* ** The global variables. */ extern int timerNbr; /* Number of timers */ extern Clock * timerTab; /* Array of timers */ /* ** The function prototypes. */ int timerInit (const int); void timerExit (void); void timerStart (const int); void timerStop (const int); double timerVal (const int); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_values.c000066400000000000000000000154571514310134000267440ustar00rootroot00000000000000/* Copyright 2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_values.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the context values **/ /** management routines. **/ /** **/ /** DATES : # Version 7.0 : from : 09 sep 2021 **/ /** to : 30 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_values.h" /************************************/ /* */ /* These routines handle the values */ /* features of contexts. */ /* */ /************************************/ /*+ This routine initializes a values context *** in the given context. *** It returns: *** - 0 : if the values context has been created. *** - !0 : else. +*/ int contextValuesInit ( Context * const contptr, void * const dataptr, const size_t datasiz, const int vintnbr, const size_t ointval, const int vdblnbr, const size_t odblval) { ValuesContext * restrict valuptr; if (contptr->valuptr == NULL) { if ((contptr->valuptr = memAlloc (sizeof (ValuesContext))) == NULL) { errorPrint ("contextValuesInit: out of memory"); return (1); } } valuptr = contptr->valuptr; valuptr->dainptr = /* Initialize values context area, pointing to default values array */ valuptr->dataptr = dataptr; valuptr->datasiz = datasiz; valuptr->vintnbr = vintnbr; valuptr->ointval = ointval; valuptr->vdblnbr = vdblnbr; valuptr->odblval = odblval; return (0); } /*+ These routines get a value of the said *** type from the given context. *** They return: *** - 0 : if the value was obtained. *** - !0 : invalid value number. +*/ int contextValuesGetDbl ( Context * const contptr, const int valunum, double * const vdblptr) { const ValuesContext * restrict const valuptr = contptr->valuptr; if ((valunum < 0) || /* If invalid value number */ (valunum >= valuptr->vdblnbr)) return (1); *vdblptr = ((double *) ((byte *) valuptr->dataptr + valuptr->odblval))[valunum]; return (0); } int contextValuesGetInt ( Context * const contptr, const int valunum, INT * const vintptr) { const ValuesContext * restrict const valuptr = contptr->valuptr; if ((valunum < 0) || /* If invalid value number */ (valunum >= valuptr->vintnbr)) return (1); *vintptr = ((INT *) ((byte *) valuptr->dataptr + valuptr->ointval))[valunum]; return (0); } /*+ This routine sets an interger option value *** in the given context. *** It returns: *** - 0 : if the value was set. *** - !0 : on error. +*/ static int contextValuesAllocate ( Context * const contptr) { ValuesContext * restrict const valuptr = contptr->valuptr; if (valuptr->dataptr == valuptr->dainptr) { /* If current value array is default array, allocate a new one */ void * dataptr; if ((dataptr = (void *) memAlloc (valuptr->datasiz)) == NULL) /* If cannot allocate new array */ return (1); memCpy (dataptr, valuptr->dainptr, valuptr->datasiz); /* Initialize new values array */ valuptr->dataptr = dataptr; } return (0); } int contextValuesSetDbl ( Context * const contptr, const int valunum, const double vdblval) { if ((valunum < 0) || /* If invalid value number */ (valunum >= contptr->valuptr->vdblnbr)) return (1); if (((double *) ((byte *) contptr->valuptr->dataptr + contptr->valuptr->odblval))[valunum] == vdblval) /* If nothing to do */ return (0); if (contextValuesAllocate (contptr) != 0) /* If current value array is default array, allocate a new one */ return (1); ((double *) ((byte *) contptr->valuptr->dataptr + contptr->valuptr->odblval))[valunum] = vdblval; return (0); } int contextValuesSetInt ( Context * const contptr, const int valunum, const INT vintval) { if ((valunum < 0) || /* If invalid value number */ (valunum >= contptr->valuptr->vintnbr)) return (1); if (((INT *) ((byte *) contptr->valuptr->dataptr + contptr->valuptr->ointval))[valunum] == vintval) /* If nothing to do */ return (0); if (contextValuesAllocate (contptr) != 0) /* If current value array is default array, allocate a new one */ return (1); ((INT *) ((byte *) contptr->valuptr->dataptr + contptr->valuptr->ointval))[valunum] = vintval; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/common_values.h000066400000000000000000000065661514310134000267520ustar00rootroot00000000000000/* Copyright 2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : common_values.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the internal data **/ /** declarations for the context values **/ /** management routines. **/ /** **/ /** DATES : # Version 7.0 : from : 03 oct 2021 **/ /** to : 06 aug 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Thread context status. The abstract type is defined in "common.h". +*/ struct ValuesContext_ { const void * dainptr; /* Pointer to initial data structure */ void * dataptr; /* Pointer to current data structure */ size_t datasiz; /* Size of data structure, including all value arrays */ int vintnbr; /* Number of INT values */ size_t ointval; /* Offset of INT array in data structure */ int vdblnbr; /* Number of double values */ size_t odblval; /* Offset of double array in data structure */ }; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/context.c000066400000000000000000000113451514310134000255510ustar00rootroot00000000000000/* Copyright 2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : context.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles contexts within **/ /** the libScotch routines. **/ /** **/ /** DATES : # Version 7.0 : from : 03 oct 2021 **/ /** to : 14 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" /* ** The static and global variables. */ static struct ContextValuesData_ { INT vinttab[CONTEXTOPTIONNUMNBR]; double vdbltab[CONTEXTOPTIONDBLNBR + 1]; /* TRICK: temporary hack: +1 since ISO C does not accept zero-sized arrays */ } contextvaluesdat = { { #ifdef SCOTCH_DETERMINISTIC 1 #else /* SCOTCH_DETERMINISTIC */ 0 #endif /* SCOTCH_DETERMINISTIC */ , #if ((defined SCOTCH_DETERMINISTIC) || (defined COMMON_RANDOM_FIXED_SEED)) 1 #else /* ((defined SCOTCH_DETERMINISTIC) || (defined COMMON_RANDOM_FIXED_SEED)) */ 0 #endif /* ((defined SCOTCH_DETERMINISTIC) || (defined COMMON_RANDOM_FIXED_SEED)) */ }, { -1.0 } }; /* Temporary hack: dummy value since ISO C does not accept zero-sized arrays */ /***********************************/ /* */ /* These routines handle contexts. */ /* */ /***********************************/ /* This routine initializes the values of a context ** according to the needs of the libScotch. ** It returns: ** - 0 : in all cases. */ int contextOptionsInit ( Context * const contptr) { int o; o = contextValuesInit (contptr, &contextvaluesdat, sizeof (contextvaluesdat), CONTEXTOPTIONNUMNBR, (byte *) &contextvaluesdat.vinttab - (byte *) &contextvaluesdat, CONTEXTOPTIONDBLNBR, (byte *) &contextvaluesdat.vdbltab - (byte *) &contextvaluesdat); if (o == 0) { /* If values array allocated, update it with existing environment variables */ INT deteval; INT rafival; contextValuesGetInt (contptr, CONTEXTOPTIONNUMDETERMINISTIC, &deteval); contextValuesSetInt (contptr, CONTEXTOPTIONNUMDETERMINISTIC, envGetInt ("SCOTCH_DETERMINISTIC", deteval)); contextValuesGetInt (contptr, CONTEXTOPTIONNUMRANDOMFIXEDSEED, &rafival); contextValuesSetInt (contptr, CONTEXTOPTIONNUMRANDOMFIXEDSEED, envGetInt ("SCOTCH_RANDOM_FIXED_SEED", rafival)); } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/context.h000066400000000000000000000117071514310134000255600ustar00rootroot00000000000000/* Copyright 2018,2019,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : context.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the execution context handling **/ /** routines. **/ /** **/ /** DATES : # Version 7.0 : from : 04 aug 2018 **/ /** to : 08 oct 2021 **/ /** **/ /************************************************************/ #define CONTEXT_H /* ** The defines. */ /*+ Container option flags. +*/ #define CONTEXTCONTAINERTYPE 0x4000 /*+ Object is a container +*/ /*+ The container integer option values. +*/ typedef enum { CONTEXTOPTIONNUMDETERMINISTIC, CONTEXTOPTIONNUMRANDOMFIXEDSEED, CONTEXTOPTIONNUMNBR } ContextOptionNum; /*+ The container double option values. +*/ typedef enum { CONTEXTOPTIONDBLNBR } ContextOptionDbl; /* ** The type and structure definitions. */ /*+ The container flag type. +*/ typedef unsigned int ContextContainerFlag; /*+ Container flag; TRICK: same type as first field of contained objects +*/ /*+ The context container structure. It simulates the shape of objects to which a context is attached. +*/ typedef struct ContextContainer_ { ContextContainerFlag flagval; /*+ TRICK: flag area similar to that of attached objects +*/ Context * contptr; /*+ Context attached to the object +*/ void * dataptr; /*+ Object to which the context is attached +*/ } ContextContainer; /* ** The function prototypes. */ int contextOptionsInit (Context * const); /* ** The macro definitions. */ #define contextContainerTrue(c) ((*((ContextContainerFlag *) (c)) & CONTEXTCONTAINERTYPE) != 0) #define contextContainerData(c) (((ContextContainer *) (c))->contptr) #define contextContainerObject(c) (((ContextContainer *) (c))->dataptr) #define CONTEXTDECL(c) \ Context * c##_contptr; \ Context c##_contdat; \ void * c##_cdatptr #define CONTEXTINIT(c) \ ((contextContainerTrue (c)) \ ? (c##_contptr = contextContainerData (c), \ c##_cdatptr = contextContainerObject (c), \ 0) \ : (c##_contptr = (void *) &c##_contdat, \ c##_cdatptr = (void *) (c), \ contextInit (&c##_contdat), \ contextOptionsInit (&c##_contdat), \ contextCommit (&c##_contdat))) #define CONTEXTGETDATA(c) c##_contptr #define CONTEXTGETOBJECT(c) c##_cdatptr #define CONTEXTEXIT(c) \ if (c##_contptr == &c##_contdat) \ contextExit (&c##_contdat) #define CONTEXTOBJECT(c) \ ((contextContainerTrue (c)) \ ? contextContainerObject (c) \ : ((void *) (c))) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph.c000066400000000000000000000211011514310134000253210ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** graph data structure handling **/ /** routines. **/ /** **/ /** DATES : # Version P0.0 : from : 01 apr 1997 **/ /** to : 01 apr 1997 **/ /** # Version P0.1 : from : 12 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version 5.0 : from : 16 feb 2005 **/ /** to : 17 jul 2008 **/ /** # Version 5.1 : from : 21 jun 2008 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 12 sep 2012 **/ /** to : 12 sep 2012 **/ /** # Version 6.1 : from : 24 sep 2021 **/ /** to : 24 sep 2021 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" /*************************************/ /* */ /* These routines handle distributed */ /* source graphs. */ /* */ /*************************************/ /* This routine initializes a distributed graph ** structure. In order to avoid collective ** communication whenever possible, the allocation ** of send and receive index arrays is not performed ** in the routine itself, but rather delegated to ** subsequent routines such as dgraphBuild. ** However, these arrays will not be freed by ** dgraphFree, but by dgraphExit. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphInit ( Dgraph * restrict const grafptr, /* Distributed graph structure */ MPI_Comm proccomm) /* Communicator to be used for all communications */ { memSet (grafptr, 0, sizeof (Dgraph)); /* Clear public and private graph fields */ grafptr->proccomm = proccomm; /* Set private fields */ MPI_Comm_size (proccomm, &grafptr->procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &grafptr->proclocnum); return (0); } /* This routine frees the public and private data ** of the given distributed graph, but not its ** communicator. ** Private data could have been kept and freed only ** in dgraphExit(). Yet, freeing it along with the ** graph public data is a way to avoid memory ** fragmentation. Moreover, it allows to use compact ** private data if some graphs are known not to have ** holes. ** It is not a collective routine, as no communication ** is needed to perform the freeing of memory structures. ** It returns: ** - VOID : in all cases. */ static void dgraphFree2 ( Dgraph * restrict const grafptr) { if ((grafptr->flagval & DGRAPHFREETABS) != 0) { /* If local arrays must be freed */ if (grafptr->vertloctax != NULL) memFree (grafptr->vertloctax + grafptr->baseval); if ((grafptr->flagval & DGRAPHVERTGROUP) == 0) { /* If vertex arrays not grouped */ if ((grafptr->flagval & DGRAPHHASVENDLOC) != 0) /* If graph is not compact */ memFree (grafptr->vendloctax + grafptr->baseval); if (grafptr->veloloctax != NULL) memFree (grafptr->veloloctax + grafptr->baseval); if (grafptr->vnumloctax != NULL) memFree (grafptr->vnumloctax + grafptr->baseval); if (grafptr->vlblloctax != NULL) memFree (grafptr->vlblloctax + grafptr->baseval); } if (grafptr->edgeloctax != NULL) memFree (grafptr->edgeloctax + grafptr->baseval); if ((grafptr->flagval & DGRAPHEDGEGROUP) == 0) { /* If edge arrays not grouped */ if (grafptr->edloloctax != NULL) memFree (grafptr->edloloctax + grafptr->baseval); } } if ((grafptr->flagval & DGRAPHFREEPSID) != 0) { /* If process send arrays must be freed */ if (grafptr->procsidtab != NULL) memFree (grafptr->procsidtab); } if ((grafptr->flagval & DGRAPHFREEEDGEGST) != 0) { /* If ghost array must be freed */ if (grafptr->edgegsttax != NULL) memFree (grafptr->edgegsttax + grafptr->baseval); } if ((grafptr->flagval & DGRAPHFREEPRIV) != 0) /* If private data has to be freed */ if (grafptr->procdsptab != NULL) memFree (grafptr->procdsptab); /* Free group leader of graph private data */ } void dgraphFree ( Dgraph * restrict const grafptr) { DgraphFlag flagval; MPI_Comm proccomm; /* Data for temporarily saving private data */ int procglbnbr; int proclocnum; dgraphFree2 (grafptr); /* Free all user fields */ flagval = grafptr->flagval & DGRAPHFREECOMM; proccomm = grafptr->proccomm; /* Save private fields only */ procglbnbr = grafptr->procglbnbr; proclocnum = grafptr->proclocnum; memSet (grafptr, 0, sizeof (Dgraph)); /* Reset graph structure */ grafptr->flagval = flagval; /* Restore private fields */ grafptr->proccomm = proccomm; grafptr->procglbnbr = procglbnbr; grafptr->proclocnum = proclocnum; return; } /* This routine destroys a distributed graph structure. ** It is not a collective routine, as no communication ** is needed to perform the freeing of memory structures. ** Private data are always destroyed. If this is not ** wanted, use dgraphFree() instead. ** It returns: ** - VOID : in all cases. */ void dgraphExit ( Dgraph * restrict const grafptr) { DgraphFlag flagval; flagval = grafptr->flagval; if ((flagval & DGRAPHFREECOMM) != 0) /* If communicator has to be freed */ MPI_Comm_free (&grafptr->proccomm); /* Free it */ dgraphFree2 (grafptr); #ifdef SCOTCH_DEBUG_DGRAPH1 memSet (grafptr, ~0, sizeof (Dgraph)); #endif /* SCOTCH_DEBUG_DGRAPH1 */ grafptr->flagval = flagval & ~DGRAPHBITSUSED; /* A subsequent dgraphExit() will have no effect */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph.h000066400000000000000000000413651514310134000253440ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2015,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed source graph **/ /** structure. **/ /** **/ /** DATES : # Version P0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.1 : from : 07 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version P0.2 : from : 11 may 1999 **/ /** to : 02 feb 2000 **/ /** # Version P0.3 : from : 16 jun 2005 **/ /** to : 16 jun 2005 **/ /** # Version 5.0 : from : 22 jul 2005 **/ /** to : 03 aug 2007 **/ /** # Version 5.1 : from : 11 nov 2007 **/ /** to : 20 feb 2011 **/ /** # Version 6.0 : from : 30 aug 2012 **/ /** to : 28 dec 2015 **/ /** # Version 6.1 : from : 19 jun 2021 **/ /** to : 19 jun 2021 **/ /** # Version 7.0 : from : 03 may 2019 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_DGRAPH_H /* Point-to-point communication ratio. */ #ifndef SCOTCH_COMM_PTOP_RAT #define SCOTCH_COMM_PTOP_RAT 0.25 /* Percentage under which point-to-point is allowed */ #endif /* SCOTCH_COMM_PTOP_RAT */ /* Graph flags. */ #define DGRAPHNONE 0x0000 /* No options set */ #define DGRAPHFREEPRIV 0x0001 /* Set if private arrays freed on exit */ #define DGRAPHFREECOMM 0x0002 /* MPI communicator has to be freed */ #define DGRAPHFREETABS 0x0004 /* Set if local arrays freed on exit */ #define DGRAPHFREEPSID 0x0008 /* Set if procsidtab freed on exit */ #define DGRAPHFREEEDGEGST 0x0010 /* Set if edgegsttab freed on exit */ #define DGRAPHHASEDGEGST 0x0020 /* Edge ghost array computed */ #define DGRAPHVERTGROUP 0x0040 /* All vertex arrays grouped */ #define DGRAPHEDGEGROUP 0x0080 /* All edge arrays grouped */ #define DGRAPHFREEALL (DGRAPHFREEPRIV | DGRAPHFREECOMM | DGRAPHFREETABS | DGRAPHFREEPSID | DGRAPHFREEEDGEGST) #define DGRAPHCOMMPTOP 0x0100 /* Use point-to-point collective communication */ #define DGRAPHHASVENDLOC 0x0200 /* Graph is not compact */ #define DGRAPHBITSUSED 0x03FF /* Significant bits for plain distributed graph routines */ #define DGRAPHBITSNOTUSED 0x0400 /* Value above which bits not used by plain distributed graph routines */ /* Used in algorithms */ #define COARPERTPRIME 31 /* Prime number */ #define COARHASHPRIME 179 /* Prime number */ /* ** The type and structure definitions. */ /* The graph basic types, which must be signed. */ #ifndef GNUMMAX /* If graph.h not included */ typedef INT Gnum; /* Vertex or edge number */ #define GNUMMAX (INTVALMAX) /* Maximum Gnum value */ #define GNUMMIN (-GNUMMAX - 1) /* Minimum signed Gnum value */ #define GNUMSTRING INTSTRING /* String to printf a Gnum */ #endif /* GNUMMAX */ #ifndef GNUM_MPI #define GNUM_MPI COMM_INT /* MPI type for Gnum is MPI type for INT */ #endif /* GNUM_MPI */ #ifndef GRAPHPART_MPI #define GRAPHPART_MPI COMM_BYTE /* Raw byte type for graph parts */ #endif /* GRAPHPART_MPI */ /* Tags used for point-to-point communications. */ typedef enum DgraphTag_ { TAGPROCVRTTAB = 0, /*+ procvrttab message +*/ TAGVERTLOCTAB, /*+ vertloctab message +*/ TAGVENDLOCTAB, /*+ vendloctab message +*/ TAGVELOLOCTAB, /*+ veloloctab message +*/ TAGVNUMLOCTAB, /*+ vnumloctab message +*/ TAGVLBLLOCTAB, /*+ vlblloctab message +*/ TAGEDGELOCTAB, /*+ edgeloctab message +*/ TAGEDLOLOCTAB, /*+ edloloctab message +*/ TAGDATALOCTAB, /*+ Generic data message +*/ TAGOK, /*+ Positive answer +*/ TAGBAD, /*+ Negative answer +*/ TAGHALO = 100, /*+ Tag class for halo +*/ TAGCOARSEN = 200, /*+ Tag class for coarsening +*/ TAGMATCH = 300, /*+ Tag class for matching +*/ TAGFOLD = 400, /*+ Tag class for folding +*/ TAGBAND = 500 /*+ Tag class for band graph +*/ } DgraphTag; /*+ The graph flag type. +*/ typedef unsigned int DgraphFlag; /*+ Graph property flags +*/ /*+ The vertex part type, in compressed form. From graph.h +*/ #ifndef SCOTCH_GRAPH_H typedef byte GraphPart; #endif /* SCOTCH_GRAPH_H */ /* The distributed graph structure. */ typedef struct Dgraph_ { DgraphFlag flagval; /*+ Graph properties +*/ Gnum baseval; /*+ Base index for edge/vertex arrays +*/ Gnum vertglbnbr; /*+ Global number of vertices +*/ Gnum vertglbmax; /*+ Maximum number of local vertices over all processes +*/ Gnum vertgstnbr; /*+ Number of local + ghost vertices +*/ Gnum vertgstnnd; /*+ vertgstnbr + baseval +*/ Gnum vertlocnbr; /*+ Local number of vertices +*/ Gnum vertlocnnd; /*+ Local number of vertices + baseval +*/ Gnum * vertloctax; /*+ Local vertex beginning index array [based] +*/ Gnum * vendloctax; /*+ Local vertex end index array [based] +*/ Gnum * veloloctax; /*+ Local vertex load array if present +*/ Gnum velolocsum; /*+ Local sum of all vertex loads +*/ Gnum veloglbsum; /*+ Global sum of all vertex loads +*/ Gnum * vnumloctax; /*+ Arrays of global vertex numbers in original graph +*/ Gnum * vlblloctax; /*+ Arrays of vertex labels (when read from file) +*/ Gnum edgeglbnbr; /*+ Global number of arcs +*/ Gnum edgeglbmax; /*+ Maximum number of local edges over all processes +*/ Gnum edgelocnbr; /*+ Number of local edges +*/ Gnum edgelocsiz; /*+ Size of local edge array (= edgelocnbr when compact) +*/ Gnum edgeglbsmx; /*+ Maximum size of local edge arrays over all processes +*/ Gnum * edgegsttax; /*+ Edge array holding local indices of neighbors [based] +*/ Gnum * edgeloctax; /*+ Edge array holding global neighbor numbers [based] +*/ Gnum * edloloctax; /*+ Edge load array +*/ Gnum degrglbmax; /*+ Maximum degree over all processes +*/ int pkeyglbval; /*+ Communicator key value: folded communicators are distinct +*/ MPI_Comm proccomm; /*+ Graph communicator +*/ int procglbnbr; /*+ Number of processes sharing graph data +*/ int proclocnum; /*+ Number of this process +*/ Gnum * procvrttab; /*+ Global array of vertex number ranges [+1,based] +*/ Gnum * proccnttab; /*+ Count array for local number of vertices +*/ Gnum * procdsptab; /*+ Displacement array with respect to proccnttab [+1,based] +*/ int procngbnbr; /*+ Number of neighboring processes +*/ int procngbmax; /*+ Maximum number of neighboring processes +*/ int * procngbtab; /*+ Array of neighbor process numbers [sorted] +*/ int * procrcvtab; /*+ Number of vertices to receive in ghost vertex sub-arrays +*/ int procsndnbr; /*+ Overall size of local send array +*/ int * procsndtab; /*+ Number of vertices to send in ghost vertex sub-arrays +*/ int * procsidtab; /*+ Array of indices to build communication vectors (send) +*/ int procsidnbr; /*+ Size of the send index array +*/ } Dgraph; /* ** The function prototypes. */ int dgraphInit (Dgraph * const, MPI_Comm); void dgraphExit (Dgraph * const); void dgraphFree (Dgraph * const); int dgraphLoad (Dgraph * const, FILE * const, const Gnum, const DgraphFlag); int dgraphSave (Dgraph * const, FILE * const); int dgraphBuild (Dgraph * const, const Gnum, const Gnum, const Gnum, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, const Gnum, const Gnum, Gnum * const, Gnum * const, Gnum * const); int dgraphBuild2 (Dgraph * const, const Gnum, const Gnum, const Gnum, Gnum * const, Gnum * const, Gnum * const, const Gnum, Gnum * const, Gnum * const, const Gnum, const Gnum, Gnum * const, Gnum * const, Gnum * const, const Gnum); int dgraphBuild3 (Dgraph * const, const Gnum, const Gnum, Gnum * const, Gnum * const, Gnum * const, const Gnum, Gnum * const, Gnum * const, const Gnum, const Gnum, Gnum * const, Gnum * const, Gnum * const, const Gnum); int dgraphBuild4 (Dgraph * const); int dgraphBuildHcub (Dgraph * const, const Gnum, const Gnum, const Gnum); int dgraphBuildGrid3D (Dgraph * const, const Gnum, const Gnum, const Gnum, const Gnum, const Gnum, const Gnum); int dgraphCheck (const Dgraph * const); int dgraphCompact2 (const Dgraph * const, Gnum * restrict * const, Gnum * restrict * const, Gnum * restrict * const); int dgraphView (const Dgraph * const, FILE * const); int dgraphGhst2 (Dgraph * const, const int); int dgraphBand (Dgraph * restrict const, const Gnum, Gnum * restrict const, const GraphPart * restrict const, const Gnum, const Gnum, Gnum, Dgraph * restrict const, Gnum * restrict * const, GraphPart * restrict * const, Gnum * const, Gnum * const, Gnum * const, Context * restrict const); int dgraphFold (const Dgraph * restrict const, const int, Dgraph * restrict const, const void * restrict const, void ** restrict const, MPI_Datatype); int dgraphFold2 (const Dgraph * restrict const, const int, Dgraph * const, MPI_Comm, const void * restrict const, void ** restrict const, MPI_Datatype); int dgraphFoldDup (const Dgraph * restrict const, Dgraph * restrict const, void * restrict const, void ** restrict const, MPI_Datatype, Context * restrict const); int dgraphInduce2 (Dgraph * restrict const, Gnum (*) (Dgraph * restrict const, Dgraph * restrict const, const void * restrict const, Gnum * restrict const), const void * const, const Gnum, Gnum *, Dgraph * restrict const); int dgraphInduceList (Dgraph * const, const Gnum, const Gnum * const, Dgraph * const); int dgraphInducePart (Dgraph * const, const GraphPart * restrict const, const Gnum, const GraphPart, Dgraph * const); #ifdef SCOTCH_GRAPH_H int dgraphGather (const Dgraph * restrict const, Graph * restrict); int dgraphGather2 (const Dgraph * restrict const, Graph * restrict, const int, const Gnum); int dgraphGatherAll (const Dgraph * restrict const, Graph * restrict); int dgraphGatherAll2 (const Dgraph * restrict const, Graph * restrict, const Gnum, const int); int dgraphScatter (Dgraph * const, const Graph * const); #endif /* SCOTCH_GRAPH_H */ int dgraphHaloSync (Dgraph * const, void * const, MPI_Datatype); /* ** The macro definitions. */ #define dgraphGhst(grafptr) dgraphGhst2 (grafptr, 0) /* Build ghost edge array in addition to local edge array */ #define dgraphGhstReplace(grafptr) dgraphGhst2 (grafptr, 1) /* Replace local edge array by ghost edge array */ #define dgraphHasGhst(grafptr) (((grafptr)->flagval & DGRAPHHASEDGEGST) != 0) /* If graph has a ghost edge array */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_allreduce.c000066400000000000000000000104101514310134000273420ustar00rootroot00000000000000/* Copyright 2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_allreduce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the distributed source **/ /** graph building routines. **/ /** **/ /** DATES : # Version 5.0 : from : 28 aug 2006 **/ /** to : 28 aug 2006 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ #include "module.h" #include "common.h" #include "dgraph.h" /* This routine creates an allreduce operator from ** the function pointer that is passed to it, and ** use it to perform an allreduce operation on the ** given data. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphAllreduceMaxSum2 ( Gnum * reduloctab, /* Pointer to array of local Gnum data */ Gnum * reduglbtab, /* Pointer to array of reduced Gnum data */ int redumaxsumnbr, /* Number of max + sum Gnum operations */ MPI_User_function * redufuncptr, /* Pointer to operator function */ MPI_Comm proccomm) /* Communicator to be used for reduction */ { MPI_Datatype redutypedat; /* Data type for finding best separator */ MPI_Op reduoperdat; /* Handle of MPI operator for finding best separator */ if ((MPI_Type_contiguous (redumaxsumnbr, GNUM_MPI, &redutypedat) != MPI_SUCCESS) || (MPI_Type_commit (&redutypedat) != MPI_SUCCESS) || (MPI_Op_create (redufuncptr, 1, &reduoperdat) != MPI_SUCCESS)) { errorPrint ("dgraphAllreduceMaxSum: communication error (1)"); return (1); } if (MPI_Allreduce (reduloctab, reduglbtab, 1, redutypedat, reduoperdat, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphAllreduceMaxSum: communication error (2)"); return (1); } if ((MPI_Op_free (&reduoperdat) != MPI_SUCCESS) || (MPI_Type_free (&redutypedat) != MPI_SUCCESS)) { errorPrint ("dgraphAllreduceMaxSum: communication error (3)"); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_allreduce.h000066400000000000000000000106761514310134000273650ustar00rootroot00000000000000/* Copyright 2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /**********************************************************/ /* */ /* NAME : dgraph_allreduce.h */ /* */ /* AUTHOR : Francois PELLEGRINI */ /* */ /* FUNCTION : These lines are the data declarations */ /* for the communication routines */ /* */ /* # Version 5.0 : from : 28 aug 2006 */ /* to : 29 aug 2006 */ /* */ /**********************************************************/ /* ** The defines. */ /*+ Combined maximum-sum reduction operator +*/ #define DGRAPHALLREDUCEMAXSUMOP(m,s) \ static \ void \ dgraphAllreduceMaxSumOp##m##_##s ( \ const Gnum * const in, /* First operand */ \ Gnum * const inout, /* Second and output operand */ \ const int * const len, /* Number of instances ; should be 1, not used */ \ const MPI_Datatype * const typedat) /* MPI datatype ; not used */ \ { \ int i; \ \ for (i = 0; i < (m); i ++) /* Perform maximum on first part of data array */ \ if (in[i] > inout[i]) \ inout[i] = in[i]; \ \ for ( ; i < ((m) + (s)); i ++) /* Perform sum on second part of data array */ \ inout[i] += in[i]; \ } #define dgraphAllreduceMaxSum(rlt,rgt,m,s,comm) dgraphAllreduceMaxSum2 ((rlt), (rgt), (m) + (s), (MPI_User_function *) (dgraphAllreduceMaxSumOp##m##_##s), (comm)) /* ** The function prototypes. */ int dgraphAllreduceMaxSum2 (Gnum *, Gnum *, int, MPI_User_function *, MPI_Comm); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_band.c000066400000000000000000000607271514310134000263260ustar00rootroot00000000000000/* Copyright 2007-2012,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_band.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a distributed band **/ /** graph from the given frontier array. **/ /** **/ /** DATES : # Version 5.1 : from : 11 nov 2007 **/ /** to : 20 feb 2011 **/ /** # Version 6.0 : from : 03 apr 2012 **/ /** to : 22 may 2018 **/ /** # Version 7.0 : from : 08 oct 2021 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # This code derives from the code of **/ /** vdgraph_separate_bd.c in version **/ /** 5.0. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" /**********************************/ /* */ /* Distance computation routines. */ /* */ /**********************************/ #define DGRAPHBANDGROWNAME dgraphBand2 #define DGRAPHBANDGROWEDGE(n) bandedgelocnbr += vendloctax[n] - vertloctax[n] #define DGRAPHBANDGROWENQ1 do { \ Gnum queulocnum; \ for (queulocnum = 0; queulocnum < queulocnbr; queulocnum ++) { \ Gnum vertlocnum; \ \ vertlocnum = queuloctab[queulocnum]; \ vnumgsttax[vertlocnum] = bandvertlocnnd ++; \ DGRAPHBANDGROWEDGE (vertlocnum); \ } \ } while (0) #define DGRAPHBANDGROWENQ2 bandvertlocnnd ++ #define DGRAPHBANDGROWENQ3 /* Nothing more to send */ #define DGRAPHBANDGROWENQ4 bandvertlocnnd ++ #define DGRAPHBANDGROWSMUL(n) (n) #include "dgraph_band_grow.h" #include "dgraph_band_grow.c" #undef DGRAPHBANDGROWNAME #undef DGRAPHBANDGROWEDGE #undef DGRAPHBANDGROWENQU #undef DGRAPHBANDGROWSMUL /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a distributed index array ** of given width around the current separator. ** It returns: ** - 0 : if the index array could be computed. ** - !0 : on error. */ int dgraphBand ( Dgraph * restrict const grafptr, /*+ Distributed graph +*/ const Gnum fronlocnbr, /*+ Number of frontier vertices +*/ Gnum * restrict const fronloctab, /*+ Array of frontier vertices, re-used as queue array +*/ const GraphPart * restrict const partgsttax, /*+ Part array for original graph ({0,1} or {0,1,2}) +*/ const Gnum complocload0, /*+ Load in part 0 or {0,2} +*/ const Gnum complocload1, /*+ Load in part 1 +*/ Gnum distmax, /*+ Maximum distance from separator vertices +*/ Dgraph * restrict const bandgrafptr, /*+ Pointer to band graph structure to fill +*/ Gnum * restrict * const bandfronlocptr, /*+ Pointer to bandfronloctab +*/ GraphPart * restrict * const bandpartgstptr, /*+ Pointer to bandpartgsttax +*/ Gnum * const bandvertlvlptr, /*+ Pointer to based start index of last level +*/ Gnum * const bandver1locptr, /*+ Pointer to number of band vertices in part 1 +*/ Gnum * const bandvertlocancptr, /*+ Pointer to flag set if anchor vertices overloaded +*/ Context * contptr) /*+ Execution context +*/ { Gnum bandvertlocnnd; /* End of local band vertex array, (without anchor vertices) */ Gnum bandvertlocnbr; /* Number of local band vertices (including anchor vertices) */ Gnum bandvertlocnbr1; /* Number of band graph vertices in part 1 except anchor 1 */ Gnum bandvertlvlnum; /* Index of first band vertex belonging to last level */ Gnum * restrict bandvertloctax; Gnum bandvertlocadj; /* Ajust value for local-to-global band vertex indices */ Gnum bandvertlocancadj; /* Flag set when anchor(s) represent unexistent vertices */ Gnum bandvertlocnum; Gnum bandvelolocsum; Gnum bandvelolocsum1; Gnum * restrict bandedgeloctax; Gnum bandedgelocnum; Gnum bandedgeloctmp; Gnum bandedgelocnbr; /* Number of local edges in band graph */ Gnum * restrict bandedloloctax; Gnum bandedlolocnbr; /* Size of local band edge load array */ Gnum * restrict bandfronloctab; GraphPart * restrict bandpartgsttax; Gnum bandvnumgstsiz; Gnum * restrict bandvnumgsttax; /* Indices of selected band vertices in band graph */ Gnum banddegrlocmax; Gnum degrval; Gnum veloval; const Gnum * restrict edgegsttax; Gnum fronlocnum; int cheklocval; int procngbnum; if (dgraphGhst (grafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("dgraphBand: cannot compute ghost edge array"); return (1); } cheklocval = 0; bandvnumgstsiz = MAX ((grafptr->vertgstnbr * sizeof (Gnum)), (grafptr->procglbnbr * sizeof (int))); /* TRICK: re-use array for further error collective communications */ if ((bandvnumgsttax = memAlloc (bandvnumgstsiz)) == NULL) /* Error will be propagated by dgraphBand2*() */ errorPrint ("dgraphBand: out of memory (1)"); else { memSet (bandvnumgsttax, ~0, grafptr->vertgstnbr * sizeof (Gnum)); /* Reset part array */ bandvnumgsttax -= grafptr->baseval; } if ((((grafptr->flagval & DGRAPHCOMMPTOP) != 0) ? dgraphBand2Ptop : dgraphBand2Coll) (grafptr, fronlocnbr, fronloctab, distmax, bandvnumgsttax, &bandvertlvlnum, &bandvertlocnbr, &bandedgelocnbr, contptr) != 0) { if (bandvnumgsttax != NULL) memFree (bandvnumgsttax + grafptr->baseval); return (1); } if (bandvertlvlptr != NULL) *bandvertlvlptr = bandvertlvlnum; bandedgelocnbr += 2 * ((bandvertlocnbr + grafptr->baseval - bandvertlvlnum) + (grafptr->procglbnbr - 1)); /* Add edges to and from anchors */ bandvertlocnbr += 2; /* Add anchor vertices */ bandedlolocnbr = (grafptr->edloloctax != NULL) ? bandedgelocnbr : 0; dgraphInit (bandgrafptr, grafptr->proccomm); bandgrafptr->flagval = (DGRAPHFREEALL ^ DGRAPHFREECOMM) | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; /* Arrays created by the routine itself */ bandgrafptr->baseval = grafptr->baseval; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &bandgrafptr->procdsptab, (size_t) ((grafptr->procglbnbr + 1) * sizeof (Gnum)), &bandgrafptr->proccnttab, (size_t) (grafptr->procglbnbr * sizeof (Gnum)), &bandgrafptr->procngbtab, (size_t) (grafptr->procglbnbr * sizeof (int)), &bandgrafptr->procrcvtab, (size_t) (grafptr->procglbnbr * sizeof (int)), &bandgrafptr->procsndtab, (size_t) (grafptr->procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphBand: out of memory (2)"); cheklocval = 1; } else if (memAllocGroup ((void **) (void *) /* Allocate distributed graph public data */ &bandgrafptr->vertloctax, (size_t) ((bandvertlocnbr + 1) * sizeof (Gnum)), /* Compact vertex array */ &bandgrafptr->vnumloctax, (size_t) (bandvertlocnbr * sizeof (Gnum)), &bandgrafptr->veloloctax, (size_t) (bandvertlocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphBand: out of memory (3)"); cheklocval = 1; } else if (bandgrafptr->vertloctax -= bandgrafptr->baseval, bandgrafptr->veloloctax -= bandgrafptr->baseval, bandgrafptr->vnumloctax -= bandgrafptr->baseval, (memAllocGroup ((void **) (void *) &bandedgeloctax, (size_t) (bandedgelocnbr * sizeof (Gnum)), &bandedloloctax, (size_t) (bandedlolocnbr * sizeof (Gnum)), NULL) == NULL)) { errorPrint ("dgraphBand: out of memory (4)"); cheklocval = 1; } else { bandedgeloctax -= bandgrafptr->baseval; bandedloloctax = (grafptr->edloloctax != NULL) ? (bandedloloctax - bandgrafptr->baseval) : NULL; if ((bandfronloctab = memAlloc (bandvertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("dgraphBand: out of memory (5)"); cheklocval = 1; } else if ((bandpartgsttax = memAlloc ((bandvertlocnbr + bandedgelocnbr) * sizeof (GraphPart))) == NULL) { /* Upper bound on number of ghost vertices */ errorPrint ("dgraphBand: out of memory (6)"); cheklocval = 1; } else bandpartgsttax -= bandgrafptr->baseval; } if (cheklocval != 0) { /* In case of memory error */ bandgrafptr->procdsptab[0] = -1; if (MPI_Allgather (&bandgrafptr->procdsptab[0], 1, GNUM_MPI, /* Send received data to dummy array */ bandvnumgsttax + bandgrafptr->baseval, 1, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphBand: communication error (1)"); return (1); } if (bandfronloctab != NULL) memFree (bandfronloctab); dgraphFree (bandgrafptr); memFree (bandvnumgsttax + bandgrafptr->baseval); return (1); } else { bandgrafptr->procdsptab[0] = bandvertlocnbr; if (MPI_Allgather (&bandgrafptr->procdsptab[0], 1, GNUM_MPI, &bandgrafptr->procdsptab[1], 1, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphBand: communication error (2)"); return (1); } } bandgrafptr->procdsptab[0] = bandgrafptr->baseval; /* Build vertex-to-process array */ #ifdef SCOTCH_DEBUG_DGRAPH2 memSet (bandgrafptr->vnumloctax + bandgrafptr->baseval, ~0, (bandvertlocnbr * sizeof (Gnum))); #endif /* SCOTCH_DEBUG_DGRAPH2 */ for (procngbnum = 1; procngbnum <= grafptr->procglbnbr; procngbnum ++) { /* Process potential error flags from other processes */ if (bandgrafptr->procdsptab[procngbnum] < 0) { /* If error notified by another process */ if (bandpartgsttax != NULL) memFree (bandpartgsttax + bandgrafptr->baseval); if (bandfronloctab != NULL) memFree (bandfronloctab); dgraphFree (bandgrafptr); memFree (bandvnumgsttax + bandgrafptr->baseval); return (1); } bandgrafptr->procdsptab[procngbnum] += bandgrafptr->procdsptab[procngbnum - 1]; bandgrafptr->proccnttab[procngbnum - 1] = bandgrafptr->procdsptab[procngbnum] - bandgrafptr->procdsptab[procngbnum - 1]; } for (fronlocnum = 0, bandvertlocnum = bandgrafptr->baseval, bandvertlocadj = bandgrafptr->procdsptab[grafptr->proclocnum] - bandgrafptr->baseval; fronlocnum < fronlocnbr; fronlocnum ++, bandvertlocnum ++) { /* Turn all graph frontier vertices into band frontier vertices */ Gnum vertlocnum; bandfronloctab[fronlocnum] = bandvertlocnum; /* All frontier vertices are first vertices of band graph */ vertlocnum = fronloctab[fronlocnum]; bandgrafptr->vnumloctax[bandvertlocnum] = vertlocnum; bandvnumgsttax[vertlocnum] += bandvertlocadj; /* Turn local indices in band graph into global indices */ } for (bandvertlocnnd = bandvertlocnbr + bandgrafptr->baseval - 2; /* Pick selected band vertices from rest of frontier array without anchors */ bandvertlocnum < bandvertlocnnd; fronlocnum ++, bandvertlocnum ++) { Gnum vertlocnum; vertlocnum = fronloctab[fronlocnum]; bandgrafptr->vnumloctax[bandvertlocnum] = vertlocnum; bandvnumgsttax[vertlocnum] += bandvertlocadj; /* Turn local indices in band graph into global indices */ } bandgrafptr->vnumloctax[bandvertlocnnd] = /* Prevent Valgrind from yelling when centralizing band graphs */ bandgrafptr->vnumloctax[bandvertlocnnd + 1] = -1; if (dgraphHaloSync (grafptr, (byte *) (bandvnumgsttax + bandgrafptr->baseval), GNUM_MPI) != 0) { /* Share global indexing of halo vertices */ errorPrint ("dgraphBand: cannot perform halo exchange"); return (1); } edgegsttax = grafptr->edgegsttax; veloval = 1; bandvertloctax = bandgrafptr->vertloctax; bandvertlocnbr1 = 0; bandvelolocsum = 0; bandvelolocsum1 = 0; banddegrlocmax = 0; for (bandvertlocnum = bandedgelocnum = bandgrafptr->baseval; /* Build global vertex array of band graph */ bandvertlocnum < bandvertlvlnum; bandvertlocnum ++) { /* For all vertices that do not belong to the last level */ Gnum vertlocnum; Gnum edgelocnum; Gnum degrval; GraphPart partval; Gnum partval1; vertlocnum = bandgrafptr->vnumloctax[bandvertlocnum]; partval = partgsttax[vertlocnum]; #ifdef SCOTCH_DEBUG_DGRAPH2 if (partval > 2) { errorPrint ("dgraphBand: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ partval1 = partval & 1; bandvertlocnbr1 += partval1; /* Count vertices in part 1 */ bandpartgsttax[bandvertlocnum] = partval; bandvertloctax[bandvertlocnum] = bandedgelocnum; if (grafptr->veloloctax != NULL) { veloval = grafptr->veloloctax[vertlocnum]; bandvelolocsum += veloval; bandvelolocsum1 += veloval & (- partval1); /* Sum vertex load if (partval == 1) */ } bandgrafptr->veloloctax[bandvertlocnum] = veloval; degrval = grafptr->vendloctax[vertlocnum] - grafptr->vertloctax[vertlocnum]; if (banddegrlocmax < degrval) banddegrlocmax = degrval; for (edgelocnum = grafptr->vertloctax[vertlocnum]; /* For all original edges */ edgelocnum < grafptr->vendloctax[vertlocnum]; edgelocnum ++) { #ifdef SCOTCH_DEBUG_DGRAPH2 if (bandvnumgsttax[edgegsttax[edgelocnum]] == ~0) { /* All ends should belong to the band graph too */ errorPrint ("dgraphBand: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ bandedgeloctax[bandedgelocnum ++] = bandvnumgsttax[edgegsttax[edgelocnum]]; } } for ( ; bandvertlocnum < bandvertlocnnd; bandvertlocnum ++) { /* For all vertices that belong to the last level except anchors */ Gnum vertlocnum; Gnum edgelocnum; Gnum degrval; GraphPart partval; Gnum partval1; vertlocnum = bandgrafptr->vnumloctax[bandvertlocnum]; partval = partgsttax[vertlocnum]; #ifdef SCOTCH_DEBUG_DGRAPH2 if (partval > 2) { errorPrint ("dgraphBand: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ partval1 = partval & 1; bandvertlocnbr1 += partval1; /* Count vertices in part 1 */ bandpartgsttax[bandvertlocnum] = partval; bandvertloctax[bandvertlocnum] = bandedgelocnum; if (grafptr->veloloctax != NULL) { veloval = grafptr->veloloctax[vertlocnum]; bandvelolocsum += veloval; bandvelolocsum1 += veloval & (- partval1); /* Sum vertex load if (partval == 1) */ } bandgrafptr->veloloctax[bandvertlocnum] = veloval; for (edgelocnum = grafptr->vertloctax[vertlocnum]; /* For all original edges */ edgelocnum < grafptr->vendloctax[vertlocnum]; edgelocnum ++) { Gnum bandvertlocend; bandvertlocend = bandvnumgsttax[edgegsttax[edgelocnum]]; if (bandvertlocend != ~0) { /* If end vertex belongs to band graph */ if (bandedloloctax != NULL) /* If graph has edge weights, copy load */ bandedloloctax[bandedgelocnum] = grafptr->edloloctax[edgelocnum]; bandedgeloctax[bandedgelocnum ++] = bandvertlocend; } } if (bandedloloctax != NULL) /* If graph has edge weights */ bandedloloctax[bandedgelocnum] = 1; /* Edge to anchor has load 1 */ bandedgeloctax[bandedgelocnum ++] = bandvertlocnnd + bandvertlocadj + partval1; /* Add edge to anchor of proper part */ degrval = bandedgelocnum - bandvertloctax[bandvertlocnum]; if (banddegrlocmax < degrval) banddegrlocmax = degrval; } memFree (bandvnumgsttax + bandgrafptr->baseval); /* Free useless space */ bandpartgsttax[bandvertlocnnd] = 0; /* Set parts of anchor vertices */ bandpartgsttax[bandvertlocnnd + 1] = 1; bandvertloctax[bandvertlocnum] = bandedgelocnum; /* Process anchor vertex in part 0 */ for (procngbnum = 0; procngbnum < grafptr->proclocnum; procngbnum ++) /* Build clique with anchors of part 0 */ bandedgeloctax[bandedgelocnum ++] = bandgrafptr->procdsptab[procngbnum + 1] - 2; for (procngbnum ++; procngbnum < grafptr->procglbnbr; procngbnum ++) /* Build clique with anchors of part 0 */ bandedgeloctax[bandedgelocnum ++] = bandgrafptr->procdsptab[procngbnum + 1] - 2; bandedgeloctmp = bandedgelocnum + (bandvertlocnnd - bandvertlvlnum); for (procngbnum = 0; procngbnum < grafptr->proclocnum; procngbnum ++) /* Build clique with anchors of part 1 */ bandedgeloctax[bandedgeloctmp ++] = bandgrafptr->procdsptab[procngbnum + 1] - 1; for (procngbnum ++; procngbnum < grafptr->procglbnbr; procngbnum ++) /* Build clique with anchors of part 1 */ bandedgeloctax[bandedgeloctmp ++] = bandgrafptr->procdsptab[procngbnum + 1] - 1; bandvertloctax[bandvertlocnnd + 2] = bandedgeloctmp; bandedgelocnbr = bandedgeloctmp - bandgrafptr->baseval; /* Set real number of edges */ for (bandvertlocnum = bandvertlvlnum, bandedgeloctmp = bandedgelocnum + (bandvertlocnnd - bandvertlvlnum); /* Link vertices of last level to anchors */ bandvertlocnum < bandvertlocnnd; bandvertlocnum ++) { if (bandpartgsttax[bandvertlocnum] == 0) bandedgeloctax[bandedgelocnum ++] = bandvertlocnum + bandvertlocadj; else bandedgeloctax[-- bandedgeloctmp] = bandvertlocnum + bandvertlocadj; } bandvertloctax[bandvertlocnnd + 1] = bandedgeloctmp; degrval = bandvertloctax[bandvertlocnnd + 1] - bandvertloctax[bandvertlocnnd]; if (banddegrlocmax < degrval) banddegrlocmax = degrval; degrval = bandvertloctax[bandvertlocnnd + 2] - bandvertloctax[bandvertlocnnd + 1]; if (banddegrlocmax < degrval) banddegrlocmax = degrval; if (bandedloloctax != NULL) { /* If graph has edge weights */ Gnum edgelocnum; Gnum edgelocnnd; for (bandvertlocnum = bandgrafptr->baseval; /* For all vertices that do not belong to the last level */ bandvertlocnum < bandvertlvlnum; bandvertlocnum ++) { Gnum vertlocnum; Gnum bandedgelocnum; vertlocnum = bandgrafptr->vnumloctax[bandvertlocnum]; bandedgelocnum = bandvertloctax[bandvertlocnum]; memCpy (bandedloloctax + bandedgelocnum, /* Copy edge load array */ &grafptr->edloloctax[grafptr->vertloctax[vertlocnum]], (bandvertloctax[bandvertlocnum + 1] - bandedgelocnum) * sizeof (Gnum)); } /* Vertices of last level have been processed before */ for (edgelocnum = bandvertloctax[bandvertlocnnd], /* Loads of anchor edges are all 1's too */ edgelocnnd = bandvertloctax[bandvertlocnnd + 2]; edgelocnum < edgelocnnd; edgelocnum ++) bandedloloctax[edgelocnum] = 1; } if (grafptr->veloloctax == NULL) { /* If original graph is not weighted */ bandgrafptr->veloloctax[bandvertlocnnd] = complocload0 + bandvertlocnbr1 - bandvertlocnbr + 2; /* Plus 2 for anchors */ bandgrafptr->veloloctax[bandvertlocnnd + 1] = complocload1 - bandvertlocnbr1; } else { bandgrafptr->veloloctax[bandvertlocnnd] = complocload0 + bandvelolocsum1 - bandvelolocsum; bandgrafptr->veloloctax[bandvertlocnnd + 1] = complocload1 - bandvelolocsum1; } bandvertlocancadj = 0; if ((bandgrafptr->veloloctax[bandvertlocnnd] == 0) || /* If at least one anchor is empty */ (bandgrafptr->veloloctax[bandvertlocnnd + 1] == 0)) { bandvertlocancadj = 1; bandgrafptr->veloloctax[bandvertlocnnd] ++; /* Increase weight of both anchors to keep balance */ bandgrafptr->veloloctax[bandvertlocnnd + 1] ++; } bandgrafptr->procvrttab = bandgrafptr->procdsptab; /* Graph does not have holes */ bandgrafptr->vertlocnbr = bandvertlocnbr; bandgrafptr->vertlocnnd = bandvertlocnbr + bandgrafptr->baseval; bandgrafptr->vendloctax = bandvertloctax + 1; /* Band graph is compact */ bandgrafptr->velolocsum = grafptr->velolocsum + 2 * bandvertlocancadj; bandgrafptr->edgeloctax = bandedgeloctax; bandgrafptr->edloloctax = bandedloloctax; bandgrafptr->edgelocnbr = bandedgelocnbr; bandgrafptr->edgelocsiz = bandedgelocnbr; bandgrafptr->degrglbmax = banddegrlocmax; /* Local maximum degree will be turned into global maximum degree */ if (dgraphBuild4 (bandgrafptr) != 0) { errorPrint ("dgraphBand: cannot build band graph"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (bandgrafptr) != 0) { errorPrint ("dgraphBand: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ *bandfronlocptr = bandfronloctab; *bandpartgstptr = bandpartgsttax; *bandver1locptr = bandvertlocnbr1; *bandvertlocancptr = bandvertlocancadj; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_band_grow.c000066400000000000000000000716001514310134000273540ustar00rootroot00000000000000/* Copyright 2007-2012,2018,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_band_grow.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module flags vertices according **/ /** to a breadth-first search traversal of **/ /** the distributed graph. It is used both **/ /** by dgraphBand() and **/ /** SCOTCH_dgraphGrow(). **/ /** **/ /** DATES : # Version 5.1 : from : 11 nov 2007 **/ /** to : 20 feb 2011 **/ /** # Version 6.0 : from : 03 apr 2012 **/ /** to : 21 may 2018 **/ /** # Version 7.0 : from : 01 oct 2021 **/ /** to : 08 oct 2021 **/ /** **/ /** NOTES : # This code derives from the code of **/ /** vdgraph_separate_bd.c in version **/ /** 5.0. It was first moved to **/ /** dgraph_band.c, then to here to be **/ /** mutualized between dgraphBand and **/ /** dgraphGrow. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define DGRAPHBANDGROWNSTR STRINGIFY (DGRAPHBANDGROWNAME) /**********************************/ /* */ /* Distance computation routines. */ /* */ /**********************************/ /* This routine computes a distributed index array ** of given width around the current separator, ** using collective communication. ** It returns: ** - 0 : if the index array could be computed. ** - !0 : on error. */ int DGRAPHBANDGROWNAMECOLL ( Dgraph * restrict const grafptr, /*+ Distributed graph +*/ const Gnum queulocnbr, /*+ Number of frontier vertices, start size for vertex queue +*/ Gnum * restrict const queuloctab, /*+ Array of frontier vertices, re-used as queue array +*/ const Gnum distmax, /*+ Maximum distance from separator vertices +*/ Gnum * restrict const vnumgsttax, /*+ Flag or index array to fill +*/ Gnum * restrict const bandvertlvlptr, /*+ Pointer to based start index of last level +*/ Gnum * restrict const bandvertlocptr, /*+ Pointer to bandvertlocnnd +*/ Gnum * restrict const bandedgelocptr, /*+ Pointer to bandedgelocnbr +*/ Context * contptr) /*+ Execution context +*/ { Gnum vertlocnnd; Gnum vrcvdatsiz; /* Sizes of data send and receive arrays */ Gnum vsnddatsiz; Gnum * vrcvdattab; /* Data arrays [norestrict:async] */ Gnum * restrict vsnddattab; Gnum * restrict procvgbtab; /* Array of neighbor bounds [+1] */ int procngbnbr; int procngbnum; int * restrict vrcvcnttab; int * restrict vsndcnttab; int * restrict vrcvdsptab; int * restrict vsnddsptab; int * restrict nsndidxtab; int vrcvdspnum; int vsnddspnum; Gnum queuheadidx; /* Index of head of queue */ Gnum queutailidx; /* Index of tail of queue */ Gnum bandvertlvlnum; Gnum bandvertlocnnd; Gnum bandedgelocnbr; Gnum distval; #ifdef SCOTCH_DEBUG_DGRAPH1 Gnum reduloctab[3]; Gnum reduglbtab[3]; #else /* SCOTCH_DEBUG_DGRAPH1 */ Gnum reduglbtab[1]; #endif /* SCOTCH_DEBUG_DGRAPH1 */ const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; const Gnum * restrict const edgeloctax = grafptr->edgeloctax; procngbnbr = grafptr->procngbnbr; reduglbtab[0] = 0; /* Assume everything is all right */ vrcvdatsiz = DGRAPHBANDGROWSMUL (grafptr->procsndnbr); /* Senders and receivers inverted because we send local, not halo vertices */ vsnddatsiz = DGRAPHBANDGROWSMUL (grafptr->vertgstnbr - grafptr->vertlocnbr); procvgbtab = NULL; /* In case of error */ if ((vnumgsttax == NULL) || (memAllocGroup ((void **) (void *) &procvgbtab, (size_t) ((procngbnbr + 1) * sizeof (Gnum)), &nsndidxtab, (size_t) (procngbnbr * sizeof (int)), &vrcvcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), &vsndcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), /* TRICK: vsndcnttab, vrcvdsptab, vrcvdattab, vrcvdattab joined */ &vrcvdsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &vsnddsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &vrcvdattab, (size_t) (vrcvdatsiz * sizeof (Gnum)), &vsnddattab, (size_t) (vsnddatsiz * sizeof (Gnum)), NULL) == NULL)) { errorPrint (DGRAPHBANDGROWNSTR "Coll: out of memory (1)"); reduglbtab[0] = 1; } #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication not needed and not absorbable by the algorithm */ reduloctab[0] = reduglbtab[0]; reduloctab[1] = distmax; reduloctab[2] = - distmax; if (MPI_Allreduce (reduloctab, reduglbtab, 3, GNUM_MPI, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Coll: communication error (1)"); return (1); } if (reduglbtab[1] != - reduglbtab[2]) { errorPrint (DGRAPHBANDGROWNSTR "Coll: invalid parameters"); reduglbtab[0] = 1; } #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (reduglbtab[0] != 0) { if (procvgbtab != NULL) memFree (procvgbtab); /* Free group leader */ return (1); } memSet (vsndcnttab, 0, (((int *) vrcvdattab) - vsndcnttab) * sizeof (int)); /* TRICK: vsndcnttab, vrcvdsptab, vrcvdattab, vrcvdattab joined */ for (procngbnum = 0, vrcvdspnum = vsnddspnum = 0; /* Build communication index arrays */ procngbnum < procngbnbr; procngbnum ++) { int procglbnum; procglbnum = grafptr->procngbtab[procngbnum]; procvgbtab[procngbnum] = grafptr->procvrttab[procglbnum]; vrcvdsptab[procglbnum] = vrcvdspnum; vsnddsptab[procglbnum] = vsnddspnum; vrcvdspnum += DGRAPHBANDGROWSMUL (grafptr->procsndtab[procglbnum]); /* Senders and receivers are reversed */ vsnddspnum += DGRAPHBANDGROWSMUL (grafptr->procrcvtab[procglbnum]); } procvgbtab[procngbnum] = grafptr->procvrttab[grafptr->procglbnbr]; bandvertlvlnum = /* Start index of last level is start index */ bandvertlocnnd = grafptr->baseval; /* Reset number of band vertices, plus base */ bandedgelocnbr = 0; /* No edges accounted for yet */ DGRAPHBANDGROWENQ1; /* Record queued vertices in index array and account for their edges */ vertlocnnd = grafptr->vertlocnnd; queuheadidx = 0; /* No queued vertex read yet */ queutailidx = queulocnbr; /* All frontier vertices are already in queue */ for (distval = 0; ++ distval <= distmax; ) { Gnum queunextidx; /* Tail index for enqueuing vertices of next band */ int procngbnum; bandvertlvlnum = bandvertlocnnd; /* Save start index of current level, based */ *bandvertlvlptr = bandvertlvlnum; for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) /* Build communication index arrays */ nsndidxtab[procngbnum] = vsnddsptab[grafptr->procngbtab[procngbnum]]; for (queunextidx = queutailidx; queuheadidx < queutailidx; ) { /* For all vertices in queue */ Gnum vertlocnum; Gnum edgelocnum; vertlocnum = queuloctab[queuheadidx ++]; /* Dequeue vertex */ for (edgelocnum = vertloctax[vertlocnum]; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum vertlocend; vertlocend = edgegsttax[edgelocnum]; if (vnumgsttax[vertlocend] != ~0) /* If end vertex has already been processed */ continue; /* Skip to next vertex */ if (vertlocend < vertlocnnd) { /* If end vertex is local */ vnumgsttax[vertlocend] = DGRAPHBANDGROWENQ2; /* Label vertex as enqueued */ queuloctab[queunextidx ++] = vertlocend; /* Enqueue vertex for next pass */ DGRAPHBANDGROWEDGE (vertlocend); /* Account for its edges */ } else { /* End vertex is a ghost */ Gnum vertglbend; int procngbnum; int procngbmax; int nsndidxnum; vnumgsttax[vertlocend] = 0; /* Label ghost vertex as enqueued */ vertglbend = edgeloctax[edgelocnum]; /* Get global number of end vertex */ procngbnum = 0; procngbmax = procngbnbr; while ((procngbmax - procngbnum) > 1) { /* Find owner process by dichotomy on procvgbtab */ int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (procvgbtab[procngbmed] > vertglbend) procngbmax = procngbmed; else procngbnum = procngbmed; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((grafptr->procvrttab[grafptr->procngbtab[procngbnum]] > vertglbend) || (grafptr->procvrttab[grafptr->procngbtab[procngbnum] + 1] <= vertglbend) || (nsndidxtab[procngbnum] >= (vsnddsptab[grafptr->procngbtab[procngbnum]] + grafptr->procrcvtab[grafptr->procngbtab[procngbnum]]))) { errorPrint (DGRAPHBANDGROWNSTR "Coll: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ nsndidxnum = nsndidxtab[procngbnum]; vsnddattab[nsndidxnum ++] = vertglbend - procvgbtab[procngbnum] + grafptr->baseval; /* Buffer local value on neighbor processor */ DGRAPHBANDGROWENQ3; /* Send additional data if needed */ nsndidxtab[procngbnum] = nsndidxnum; } } } for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { int procglbnum; procglbnum = grafptr->procngbtab[procngbnum]; vsndcnttab[procglbnum] = nsndidxtab[procngbnum] - vsnddsptab[procglbnum]; } if (MPI_Alltoall (vsndcnttab, 1, MPI_INT, vrcvcnttab, 1, MPI_INT, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Coll: communication error (2)"); return (1); } if (MPI_Alltoallv (vsnddattab, vsndcnttab, vsnddsptab, GNUM_MPI, vrcvdattab, vrcvcnttab, vrcvdsptab, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Coll: communication error (3)"); return (1); } for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { /* For all receive buffers */ Gnum * restrict vrcvdatptr; int vertrcvnum; int procglbnum; int statsiz; procglbnum = grafptr->procngbtab[procngbnum]; vrcvdatptr = vrcvdattab + vrcvdsptab[procglbnum]; statsiz = vrcvcnttab[procglbnum]; for (vertrcvnum = 0; vertrcvnum < statsiz; vertrcvnum += DGRAPHBANDGROWSMUL (1)) { Gnum vertlocend; vertlocend = vrcvdatptr[vertrcvnum]; /* Get local vertex from message */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocend < grafptr->baseval) || (vertlocend >= vertlocnnd)) { errorPrint (DGRAPHBANDGROWNSTR "Coll: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (vnumgsttax[vertlocend] != ~0) /* If end vertex has already been processed */ continue; /* Skip to next vertex */ vnumgsttax[vertlocend] = DGRAPHBANDGROWENQ4; /* Label vertex as enqueued */ queuloctab[queunextidx ++] = vertlocend; /* Enqueue vertex for next pass */ DGRAPHBANDGROWEDGE (vertlocend); /* Account for its edges */ } } queutailidx = queunextidx; /* Prepare queue for next sweep */ } memFree (procvgbtab); /* Free group leader */ *bandvertlocptr = bandvertlocnnd - grafptr->baseval; *bandedgelocptr = bandedgelocnbr; return (0); } /* This routine computes a distributed index array ** of given width around the current separator, ** using point-to-point communication. ** It returns: ** - 0 : if the index array could be computed. ** - !0 : on error. */ int DGRAPHBANDGROWNAMEPTOP ( Dgraph * restrict const grafptr, /*+ Distributed graph +*/ const Gnum queulocnbr, /*+ Number of frontier vertices, start size for vertex queue +*/ Gnum * restrict const queuloctab, /*+ Array of frontier vertices, re-used as queue array +*/ const Gnum distmax, /*+ Maximum distance from separator vertices +*/ Gnum * restrict const vnumgsttax, /*+ Flag or index array to fill +*/ Gnum * restrict const bandvertlvlptr, /*+ Pointer to based start index of last level +*/ Gnum * restrict const bandvertlocptr, /*+ Pointer to bandvertlocnnd +*/ Gnum * restrict const bandedgelocptr, /*+ Pointer to bandedgelocnbr +*/ Context * contptr) /*+ Execution context +*/ { Gnum vertlocnnd; Gnum vrcvdatsiz; /* Sizes of data send and receive arrays */ Gnum vsnddatsiz; Gnum * vrcvdattab; /* Data arrays [norestrict:async] */ Gnum * vsnddattab; Gnum * restrict procvgbtab; /* Array of neighbor bounds [+1] */ int procngbnbr; int procngbnum; int procngbnxt; Gnum * restrict nrcvdsptab; Gnum * restrict nsnddsptab; Gnum nrcvdspnum; Gnum nsnddspnum; Gnum * restrict nsndidxtab; Gnum queuheadidx; /* Index of head of queue */ Gnum queutailidx; /* Index of tail of queue */ MPI_Request * nrcvreqtab; /* Array of receive requests */ MPI_Request * nsndreqtab; /* Array of receive requests */ Gnum bandvertlvlnum; Gnum bandvertlocnnd; Gnum bandedgelocnbr; Gnum distval; Gnum deteval; /* Flag set if deterministic behavior */ #ifdef SCOTCH_DEBUG_DGRAPH1 Gnum reduloctab[3]; Gnum reduglbtab[3]; #else /* SCOTCH_DEBUG_DGRAPH1 */ Gnum reduglbtab[1]; #endif /* SCOTCH_DEBUG_DGRAPH1 */ const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; const Gnum * restrict const edgeloctax = grafptr->edgeloctax; procngbnbr = grafptr->procngbnbr; reduglbtab[0] = 0; /* Assume everything is all right */ vrcvdatsiz = DGRAPHBANDGROWSMUL (grafptr->procsndnbr); /* Senders and receivers inverted because we send local, not halo vertices */ vsnddatsiz = DGRAPHBANDGROWSMUL (grafptr->vertgstnbr - grafptr->vertlocnbr); if (memAllocGroup ((void **) (void *) &procvgbtab, (size_t) ((procngbnbr + 1) * sizeof (Gnum)), &nrcvdsptab, (size_t) ((procngbnbr + 1) * sizeof (Gnum)), /* +1 to check against end of array */ &nsnddsptab, (size_t) ((procngbnbr + 1) * sizeof (Gnum)), /* +1 to check against end of array */ &nsndidxtab, (size_t) (procngbnbr * sizeof (Gnum)), /* Here Gnum's since point-to-point */ &nrcvreqtab, (size_t) (procngbnbr * sizeof (MPI_Request)), &nsndreqtab, (size_t) (procngbnbr * sizeof (MPI_Request)), &vrcvdattab, (size_t) (vrcvdatsiz * sizeof (Gnum)), &vsnddattab, (size_t) (vsnddatsiz * sizeof (Gnum)), NULL) == NULL) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: out of memory (1)"); reduglbtab[0] = 1; } #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication not needed and not absorbable by the algorithm */ reduloctab[0] = reduglbtab[0]; reduloctab[1] = distmax; reduloctab[2] = - distmax; if (MPI_Allreduce (reduloctab, reduglbtab, 3, GNUM_MPI, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (1)"); return (1); } if (reduglbtab[1] != - reduglbtab[2]) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: invalid parameters"); reduglbtab[0] = 1; } #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (reduglbtab[0] != 0) { if (vnumgsttax != NULL) { if (procvgbtab != NULL) memFree (procvgbtab); /* Free group leader */ memFree (vnumgsttax); } return (1); } contextValuesGetInt (contptr, CONTEXTOPTIONNUMDETERMINISTIC, &deteval); for (procngbnum = 0, nrcvdspnum = nsnddspnum = procngbnxt = 0; /* Build communication index arrays */ procngbnum < procngbnbr; procngbnum ++) { int procglbnum; procglbnum = grafptr->procngbtab[procngbnum]; if ((procngbnxt == 0) && (procglbnum > grafptr->proclocnum)) /* Find index of first neighbor of higher rank */ procngbnxt = procngbnum; procvgbtab[procngbnum] = grafptr->procvrttab[procglbnum]; nrcvdsptab[procngbnum] = nrcvdspnum; /* Arrays are indexed per neighbor since we are doing point-to-point communication */ nsnddsptab[procngbnum] = nsnddspnum; nrcvdspnum += DGRAPHBANDGROWSMUL (grafptr->procsndtab[procglbnum]); /* Senders and receivers are reversed */ nsnddspnum += DGRAPHBANDGROWSMUL (grafptr->procrcvtab[procglbnum]); } procvgbtab[procngbnum] = grafptr->procvrttab[grafptr->procglbnbr]; nrcvdsptab[procngbnum] = nrcvdspnum; /* Mark end of communication index arrays */ nsnddsptab[procngbnum] = nsnddspnum; procngbnum = procngbnxt; /* Create receive requests in descending order */ if (procngbnbr != 0) { do { procngbnum = (procngbnum + (procngbnbr - 1)) % procngbnbr; /* Pre-decrement neighbor rank */ if (MPI_Recv_init (vrcvdattab + nrcvdsptab[procngbnum], (int) (nrcvdsptab[procngbnum + 1] - nrcvdsptab[procngbnum]), GNUM_MPI, grafptr->procngbtab[procngbnum], TAGBAND, grafptr->proccomm, nrcvreqtab + procngbnum) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (2)"); return (1); } } while (procngbnum != procngbnxt); } bandvertlvlnum = /* Start index of last level is start index */ bandvertlocnnd = grafptr->baseval; /* Reset number of band vertices, plus base */ bandedgelocnbr = 0; /* No edges accounted for yet */ DGRAPHBANDGROWENQ1; /* Record queued vertices in index array and account for their edges */ vertlocnnd = grafptr->vertlocnnd; queuheadidx = 0; /* No queued vertex read yet */ queutailidx = queulocnbr; /* All frontier vertices are already in queue */ for (distval = 0; ++ distval <= distmax; ) { Gnum queunextidx; /* Tail index for enqueuing vertices of next band */ int vrcvreqnbr; if (MPI_Startall (procngbnbr, nrcvreqtab) != MPI_SUCCESS) { /* Start all receive operations from neighbors */ errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (3)"); return (1); } bandvertlvlnum = bandvertlocnnd; /* Save start index of current level, based */ *bandvertlvlptr = bandvertlvlnum; memCpy (nsndidxtab, nsnddsptab, procngbnbr * sizeof (Gnum)); /* Reset send buffer indices */ for (queunextidx = queutailidx; queuheadidx < queutailidx; ) { /* For all vertices in queue */ Gnum vertlocnum; Gnum edgelocnum; vertlocnum = queuloctab[queuheadidx ++]; /* Dequeue vertex */ for (edgelocnum = vertloctax[vertlocnum]; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum vertlocend; vertlocend = edgegsttax[edgelocnum]; if (vnumgsttax[vertlocend] != ~0) /* If end vertex has already been processed */ continue; /* Skip to next vertex */ if (vertlocend < vertlocnnd) { /* If end vertex is local */ vnumgsttax[vertlocend] = DGRAPHBANDGROWENQ2; /* Label vertex as enqueued */ queuloctab[queunextidx ++] = vertlocend; /* Enqueue vertex for next pass */ DGRAPHBANDGROWEDGE (vertlocend); /* Account for its edges */ } else { /* End vertex is a ghost */ Gnum vertglbend; int procngbnum; int procngbmax; int nsndidxnum; vnumgsttax[vertlocend] = 0; /* Label ghost vertex as enqueued */ vertglbend = edgeloctax[edgelocnum]; /* Get global number of end vertex */ procngbnum = 0; procngbmax = procngbnbr; while ((procngbmax - procngbnum) > 1) { /* Find owner process by dichotomy on procvgbtab */ int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (procvgbtab[procngbmed] > vertglbend) procngbmax = procngbmed; else procngbnum = procngbmed; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((grafptr->procvrttab[grafptr->procngbtab[procngbnum]] > vertglbend) || (grafptr->procvrttab[grafptr->procngbtab[procngbnum] + 1] <= vertglbend) || (nsndidxtab[procngbnum] >= nsnddsptab[procngbnum + 1])) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ nsndidxnum = nsndidxtab[procngbnum]; vsnddattab[nsndidxnum ++] = vertglbend - procvgbtab[procngbnum] + grafptr->baseval; /* Buffer local value on neighbor processor */ DGRAPHBANDGROWENQ3; /* Send additional data if needed */ nsndidxtab[procngbnum] = nsndidxnum; } } } procngbnum = procngbnxt; /* Send all buffers to neighbors */ if (procngbnbr != 0) { do { if (MPI_Isend (vsnddattab + nsnddsptab[procngbnum], nsndidxtab[procngbnum] - nsnddsptab[procngbnum], GNUM_MPI, grafptr->procngbtab[procngbnum], TAGBAND, grafptr->proccomm, nsndreqtab + procngbnum) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (4)"); return (1); } procngbnum = (procngbnum + 1) % procngbnbr; /* Post-increment neighbor rank */ } while (procngbnum != procngbnxt); } for (vrcvreqnbr = procngbnbr; vrcvreqnbr > 0; vrcvreqnbr --) { /* For all pending receive requests */ Gnum * restrict vrcvdatptr; int vertrcvnum; MPI_Status statdat; int statsiz; int o; if (deteval) { procngbnum = vrcvreqnbr - 1; o = MPI_Wait (&nrcvreqtab[procngbnum], &statdat); } else o = MPI_Waitany (procngbnbr, nrcvreqtab, &procngbnum, &statdat); if ((o != MPI_SUCCESS) || (MPI_Get_count (&statdat, GNUM_MPI, &statsiz) != MPI_SUCCESS)) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (5)"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (statdat.MPI_SOURCE != grafptr->procngbtab[procngbnum]) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vrcvdatptr = vrcvdattab + nrcvdsptab[procngbnum]; for (vertrcvnum = 0; vertrcvnum < statsiz; vertrcvnum += DGRAPHBANDGROWSMUL (1)) { Gnum vertlocend; vertlocend = vrcvdatptr[vertrcvnum]; /* Get local vertex from message */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocend < grafptr->baseval) || (vertlocend >= vertlocnnd)) { errorPrint (DGRAPHBANDGROWNSTR "dgraphBandPtop: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (vnumgsttax[vertlocend] != ~0) /* If end vertex has already been processed */ continue; /* Skip to next vertex */ vnumgsttax[vertlocend] = DGRAPHBANDGROWENQ4; /* Label vertex as enqueued */ queuloctab[queunextidx ++] = vertlocend; /* Enqueue vertex for next pass */ DGRAPHBANDGROWEDGE (vertlocend); /* Account for its edges */ } } queutailidx = queunextidx; /* Prepare queue for next sweep */ if (MPI_Waitall (procngbnbr, nsndreqtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait until all send operations completed */ errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (6)"); return (1); } } for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { /* Free persistent receive requests */ if (MPI_Request_free (nrcvreqtab + procngbnum) != MPI_SUCCESS) { errorPrint (DGRAPHBANDGROWNSTR "Ptop: communication error (7)"); return (1); } } memFree (procvgbtab); /* Free group leader */ *bandvertlocptr = bandvertlocnnd - grafptr->baseval; *bandedgelocptr = bandedgelocnbr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_band_grow.h000066400000000000000000000066571514310134000273730ustar00rootroot00000000000000/* Copyright 2012,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_band_grow.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file provides the prototypes of **/ /** the generic band graph growing **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 26 sep 2012 **/ /** to : 26 sep 2012 **/ /** # Version 7.0 : from : 01 oct 2021 **/ /** to : 01 oct 2021 **/ /** **/ /************************************************************/ /* ** The defines. */ #define DGRAPHBANDGROWNAMECOLL REPLACE (DGRAPHBANDGROWNAMECOLL2 (REPLACE (DGRAPHBANDGROWNAME))) #define DGRAPHBANDGROWNAMECOLL2(s) GLUE (s,Coll) #define DGRAPHBANDGROWNAMEPTOP REPLACE (DGRAPHBANDGROWNAMEPTOP2 (REPLACE (DGRAPHBANDGROWNAME))) #define DGRAPHBANDGROWNAMEPTOP2(s) GLUE (s,Ptop) /* ** The function prototypes. */ int DGRAPHBANDGROWNAMECOLL (Dgraph * restrict const, const Gnum, Gnum * restrict const, const Gnum, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Context * contptr); int DGRAPHBANDGROWNAMEPTOP (Dgraph * restrict const, const Gnum, Gnum * restrict const, const Gnum, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Context * contptr); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_build.c000066400000000000000000000622331514310134000265130ustar00rootroot00000000000000/* Copyright 2007,2010,2013,2014,2018,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_build.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the distributed source **/ /** graph building routines. **/ /** **/ /** DATES : # Version P0.1 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.2 : from : 02 feb 2000 **/ /** to : 02 feb 2000 **/ /** # Version 5.0 : from : 22 jul 2005 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 30 jul 2010 **/ /** to : 03 nov 2010 **/ /** # Version 6.0 : from : 23 dec 2013 **/ /** to : 03 jun 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 01 oct 2025 **/ /** **/ /************************************************************/ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "dgraph_build.h" /* This routine builds a distributed graph from ** the local arrays that are passed to it. If ** a vertex label array is given, it is assumed ** that edge ends are given with respect to these ** labels, and thus they are updated so as to be ** given with respect to the implicit (based) ** global numbering. ** As for all routines that build graphs, the private ** fields of the Dgraph structure have to be initialized ** if they are not already. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphBuild ( Dgraph * restrict const grafptr, /* Graph */ const Gnum baseval, /* Base for indexing */ const Gnum vertlocnbr, /* Number of local vertices */ const Gnum vertlocmax, /* Maximum number of local vertices */ Gnum * const vertloctax, /* Local vertex begin array */ Gnum * const vendloctax, /* Local vertex end array */ Gnum * const veloloctax, /* Local vertex load array (if any) */ Gnum * const vnumloctax, /* Local vertex number array (if any) */ Gnum * const vlblloctax, /* Local vertex label array (if any) */ const Gnum edgelocnbr, /* Number of local edges */ const Gnum edgelocsiz, /* Size of local edge array */ Gnum * const edgeloctax, /* Local edge array */ Gnum * const edgegsttax, /* Ghost edge array (if any); not const */ Gnum * const edloloctax) /* Local edge load array (if any) */ { Gnum vertlocnum; Gnum vertlocnnd; Gnum velolocsum; Gnum degrlocmax; /* Local maximum degree */ for (vertlocnum = baseval, vertlocnnd = vertlocnbr + baseval, degrlocmax = 0; vertlocnum < vertlocnnd; vertlocnum ++) { Gnum degrval; degrval = vendloctax[vertlocnum] - vertloctax[vertlocnum]; if (degrlocmax < degrval) degrlocmax = degrval; } if (veloloctax == NULL) /* Get local vertex load sum */ velolocsum = vertlocnbr; else { Gnum vertlocnum; for (vertlocnum = baseval, velolocsum = 0; vertlocnum < vertlocnnd; vertlocnum ++) velolocsum += veloloctax[vertlocnum]; } return (dgraphBuild2 (grafptr, baseval, vertlocnbr, vertlocmax, vertloctax, vendloctax, veloloctax, velolocsum, vnumloctax, vlblloctax, edgelocnbr, edgelocsiz, edgeloctax, edgegsttax, edloloctax, degrlocmax)); } /* This routine builds a distributed graph from ** the local arrays that are passed to it. If ** a vertex label array is given, it is assumed ** that edge ends are given with respect to these ** labels, and thus they are updated so as to be ** given with respect to the implicit (based) ** global numbering. ** As for all routines that build graphs, the private ** fields of the Dgraph structure have to be initialized ** if they are not already. ** These graphs do not have holes, since procvrttab ** points to procdsptab. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphBuild2 ( Dgraph * restrict const grafptr, /* Graph */ const Gnum baseval, /* Base for indexing */ const Gnum vertlocnbr, /* Number of local vertices */ const Gnum vertlocmax, /* Maximum number of local vertices */ Gnum * const vertloctax, /* Local vertex begin array */ Gnum * const vendloctax, /* Local vertex end array */ Gnum * const veloloctax, /* Local vertex load array (if any) */ const Gnum velolocsum, /* Local sum of vertex loads */ Gnum * const vnumloctax, /* Local vertex number array (if any) */ Gnum * const vlblloctax, /* Local vertex label array (if any) */ const Gnum edgelocnbr, /* Number of local edges */ const Gnum edgelocsiz, /* Size of local edge array */ Gnum * const edgeloctax, /* Local edge array */ Gnum * const edgegsttax, /* Ghost edge array (if any); not const */ Gnum * const edloloctax, /* Local edge load array (if any) */ const Gnum degrlocmax) { Gnum procnum; int reduloctab[2]; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocmax < vertlocnbr) || (edgelocsiz < edgelocnbr)) { errorPrint ("dgraphBuild2: invalid parameters"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (grafptr->procdsptab == NULL) { /* If private data not yet allocated */ int procglbnbr; procglbnbr = grafptr->procglbnbr; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &grafptr->procdsptab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &grafptr->procvrttab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &grafptr->proccnttab, (size_t) (procglbnbr * sizeof (Gnum)), &grafptr->procngbtab, (size_t) (procglbnbr * sizeof (int)), &grafptr->procrcvtab, (size_t) (procglbnbr * sizeof (int)), &grafptr->procsndtab, (size_t) (procglbnbr * sizeof (int)), NULL) == NULL) { int * dummtab; errorPrint ("dgraphBuild2: out of memory"); if ((dummtab = memAlloc ((procglbnbr * 2) * sizeof (int))) != NULL) { reduloctab[0] = reduloctab[1] = -1; if (MPI_Allgather (reduloctab, 2, MPI_INT, /* Use dummy receive array (if can be allocated too) */ dummtab, 2, MPI_INT, grafptr->proccomm) != MPI_SUCCESS) errorPrint ("dgraphBuild2: communication error (1)"); memFree (dummtab); } return (1); } } reduloctab[0] = (int) vertlocnbr; reduloctab[1] = (int) vertlocmax; if (MPI_Allgather (reduloctab, 2, MPI_INT, /* Use procngbtab and procrcvtab as a joint allreduce receive array */ grafptr->procngbtab, 2, MPI_INT, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphBuild2: communication error (2)"); return (1); } grafptr->procdsptab[0] = /* Build vertex-to-process array */ grafptr->procvrttab[0] = baseval; for (procnum = 0; procnum < grafptr->procglbnbr; procnum ++) { if (grafptr->procngbtab[procnum] < 0) { /* If error notified by another process during memory allocation */ memFree (grafptr->procdsptab); grafptr->procdsptab = NULL; /* Free memory that has just been allocated */ return (1); } grafptr->procdsptab[procnum + 1] = grafptr->procdsptab[procnum] + (Gnum) grafptr->procngbtab[2 * procnum]; grafptr->procvrttab[procnum + 1] = grafptr->procvrttab[procnum] + (Gnum) grafptr->procngbtab[2 * procnum + 1]; grafptr->proccnttab[procnum] = grafptr->procdsptab[procnum + 1] - grafptr->procdsptab[procnum]; } grafptr->flagval |= DGRAPHFREEPRIV; return (dgraphBuild3 (grafptr, baseval, vertlocnbr, vertloctax, vendloctax, veloloctax, velolocsum, vnumloctax, vlblloctax, edgelocnbr, edgelocsiz, edgeloctax, edgegsttax, edloloctax, degrlocmax)); } /* This routine builds a distributed graph from ** the local arrays that are passed to it. If ** a vertex label array is given, it is assumed ** that edge ends are given with respect to these ** labels, and thus they are updated so as to be ** given with respect to the implicit (based) ** global numbering. ** This alternate interface assumes that the private ** fields of the Dgraph structure have already been ** initialized. ** It returns: ** - 0 : on success. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (17, 4) int dgraphBuild3 ( Dgraph * restrict const grafptr, /* Graph */ const Gnum baseval, /* Base for indexing */ const Gnum vertlocnbr, /* Number of local vertices */ Gnum * const vertloctax, /* Local vertex begin array */ Gnum * const vendloctax, /* Local vertex end array */ Gnum * const veloloctax, /* Local vertex load array (if any) */ const Gnum velolocsum, /* Local sum of vertex loads */ Gnum * const vnumloctax, /* Local vertex number array (if any) */ Gnum * const vlblloctax, /* Local vertex label array (if any) */ const Gnum edgelocnbr, /* Number of local edges */ const Gnum edgelocsiz, /* Minimum useful size of local edge array */ Gnum * const edgeloctax, /* Local edge array */ Gnum * const edgegsttax, /* Ghost edge array (if any); not const */ Gnum * const edloloctax, /* Local edge load array (if any) */ const Gnum degrlocmax) { int procrcvnum; /* Number of process from which to receive */ int procsndnum; /* Number of process to which to send */ int procngbnbr; /* Number of neighbors processed */ int procngbnum; /* Number of current neighbor process */ int procngbsel; /* Value of the currently used neighbor buffers */ Gnum vertngbmin; /* Smallest vertex number of neighbor process */ Gnum vertlocnum; Gnum edgelocnum; const Gnum * vlbllocptr; /* Pointer to current vertex label */ DgraphLablSortVert * vesongbptr; /* Pointer to current sort cell */ DgraphLablSortVert * vesongbtnd; /* Pointer to end of current sort array */ DgraphLablSortVert * vesongbtab[2]; /* Neighbor vertex sorting array [norestrict:async] */ int vesongbnbr[2]; /* Sizes of both vertex sort arrays */ DgraphLablSortEdge * edsoloctab; /* Local edge sorting array */ DgraphLablSortEdge * edsoloctnd; /* Pointer to end of edge sort array */ DgraphLablSortEdge * edsolocptr; /* Pointer to current sort edge */ MPI_Request requloctab[2]; /* Arrays for pipelined communication */ MPI_Status statloctab[2]; int cheklocval; /* Local consistency flag */ int chekglbval; /* Global consistency flag */ Gnum reduloctab[21]; /* Arrays for reductions */ Gnum reduglbtab[21]; reduloctab[0] = baseval; /* Check argument consistency */ reduloctab[1] = - baseval; reduloctab[2] = (veloloctax != NULL) ? 1 : 0; reduloctab[3] = - reduloctab[2]; reduloctab[4] = (vnumloctax != NULL) ? 1 : 0; reduloctab[5] = - reduloctab[4]; reduloctab[6] = (vlblloctax != NULL) ? 1 : 0; reduloctab[7] = - reduloctab[6]; reduloctab[8] = (edloloctax != NULL) ? 1 : 0; reduloctab[9] = - reduloctab[8]; reduloctab[10] = (edgegsttax != NULL) ? 1 : 0; reduloctab[11] = - reduloctab[10]; reduloctab[12] = vertlocnbr; /* Get maximum number of local vertices */ reduloctab[13] = edgelocnbr; reduloctab[14] = edgelocsiz; reduloctab[15] = degrlocmax; reduloctab[16] = (grafptr->procdsptab == NULL) ? 1 : 0; /* Error if private data not yet allocated */ reduloctab[17] = vertlocnbr; /* Sum local sizes */ reduloctab[18] = velolocsum; reduloctab[19] = edgelocnbr; reduloctab[20] = (vendloctax == (vertloctax + 1)) ? 1 : 0; /* Check whether the graph is compact */ if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 17, 4, grafptr->proccomm) != 0) { errorPrint ("dgraphBuild3: cannot compute reductions"); return (1); } if (reduglbtab[16] != 0) { errorPrint ("dgraphBuild3: no private data"); return (1); } if ((reduglbtab[1] != - reduglbtab[0]) || (reduglbtab[3] != - reduglbtab[2]) || (reduglbtab[5] != - reduglbtab[4]) || (reduglbtab[7] != - reduglbtab[6]) || (reduglbtab[9] != - reduglbtab[8]) || (reduglbtab[11] != - reduglbtab[10])) { errorPrint ("dgraphBuild3: inconsistent parameters"); return (1); } grafptr->vertglbmax = reduglbtab[12]; /* Set maximum number of local vertices */ grafptr->edgeglbmax = reduglbtab[13]; /* Set maximum number of local edges */ grafptr->edgeglbsmx = reduglbtab[14]; /* Set maximum size of local edge arrays */ grafptr->degrglbmax = reduglbtab[15]; /* Set maximum degree */ if (reduglbtab[20] != grafptr->procglbnbr) /* If at least one process does not seem to have a compact vertex array */ grafptr->flagval |= DGRAPHHASVENDLOC; grafptr->baseval = baseval; grafptr->vertglbnbr = reduglbtab[17]; /* Set global and local data */ grafptr->vertlocnbr = vertlocnbr; grafptr->vertlocnnd = vertlocnbr + baseval; grafptr->velolocsum = velolocsum; grafptr->veloglbsum = reduglbtab[18]; grafptr->vertloctax = vertloctax; grafptr->vendloctax = vendloctax; grafptr->veloloctax = veloloctax; grafptr->vnumloctax = vnumloctax; grafptr->vlblloctax = vlblloctax; grafptr->edgeglbnbr = reduglbtab[19]; grafptr->edgelocnbr = edgelocnbr; grafptr->edgelocsiz = edgelocsiz; grafptr->edgegsttax = edgegsttax; grafptr->edgeloctax = edgeloctax; grafptr->edloloctax = edloloctax; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((grafptr->procdsptab[grafptr->procglbnbr] - baseval) < grafptr->vertglbnbr) { errorPrint ("dgraphBuild3: invalid process vertex array"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (vlblloctax != NULL) { /* If vertex labels given */ int procglbnbr; procglbnbr = grafptr->procglbnbr; if (memAllocGroup ((void **) (void *) &vesongbtab[0], (size_t) (grafptr->vertglbmax * sizeof (DgraphLablSortVert)), &vesongbtab[1], (size_t) (grafptr->vertglbmax * sizeof (DgraphLablSortVert)), &edsoloctab, (size_t) (grafptr->edgeglbmax * sizeof (DgraphLablSortEdge)), NULL) == NULL) { errorPrint ("dgraphBuild3: out of memory"); return (1); } for (vertlocnum = 0, vesongbptr = vesongbtab[0], vlbllocptr = vlblloctax + baseval; vertlocnum < vertlocnbr; vertlocnum ++, vesongbptr ++, vlbllocptr ++) { vesongbptr->vlblglbnum = *vlbllocptr; /* Build vertex sort array */ vesongbptr->vertlocnum = vertlocnum; /* Local index is not based */ } intSort2asc1 (vesongbtab[0], vertlocnbr); vesongbnbr[0] = vertlocnbr; /* Set array size */ cheklocval = 0; for (vesongbptr = vesongbtab[0] + 1, vesongbtnd = vesongbtab[0] + vertlocnbr; vesongbptr < vesongbtnd; vesongbptr ++) { if (vesongbptr[0].vlblglbnum == vesongbptr[-1].vlblglbnum) { cheklocval = 1; break; } } #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication cannot be merged with a useful one */ MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->proccomm); #else /* SCOTCH_DEBUG_DGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (chekglbval != 0) { errorPrint ("dgraphBuild3: duplicate vertex label (1)"); memFree (vesongbtab[0]); return (1); } for (edsolocptr = edsoloctab, edsoloctnd = edsoloctab + edgelocnbr, edgelocnum = baseval; edsolocptr < edsoloctnd; edsolocptr ++, edgelocnum ++) { edsolocptr->vlblglbnum = edgeloctax[edgelocnum]; edsolocptr->edgelocnum = edgelocnum; } intSort2asc2 (edsoloctab, grafptr->edgelocnbr); procrcvnum = (grafptr->proclocnum + 1) % procglbnbr; /* Compute indices of neighbors */ procsndnum = (grafptr->proclocnum - 1 + procglbnbr) % procglbnbr; for (procngbnbr = 0, procngbsel = 0; /* For all processes */ procngbnbr < procglbnbr; procngbnbr ++, procngbsel = 1 - procngbsel) { procngbnum = (grafptr->proclocnum + procngbnbr) % procglbnbr; /* Get neighbor process */ vertngbmin = grafptr->procvrttab[procngbnum]; /* Get neighbor vertex number range */ if (procngbnbr < (procglbnbr - 1)) { /* If not last iteration */ MPI_Irecv (vesongbtab[1 - procngbsel], 2 * grafptr->vertglbmax, GNUM_MPI, procrcvnum, TAGVLBLLOCTAB, grafptr->proccomm, &requloctab[0]); MPI_Isend (vesongbtab[procngbsel], 2 * vesongbnbr[procngbsel], GNUM_MPI, procsndnum, TAGVLBLLOCTAB, grafptr->proccomm, &requloctab[1]); } if (vesongbnbr[procngbsel] > 0) { /* If neighbor vertex sort array not empty */ for (edsolocptr = edsoloctab, /* Replace label by global vertex number */ vesongbptr = vesongbtab[procngbsel], vesongbtnd = vesongbptr + vesongbnbr[procngbsel]; edsolocptr < edsoloctnd; ) { if (edsolocptr->vlblglbnum == vesongbptr->vlblglbnum) { if (edsolocptr->edgelocnum == -1) /* If edge label already replaced */ cheklocval = 1; /* Set error flag */ else { edgeloctax[edsolocptr->edgelocnum] = vertngbmin + vesongbptr->vertlocnum; edsolocptr->edgelocnum = -1; /* Edge has been processed */ } edsolocptr ++; /* One more edge processed */ continue; /* Go on as quickly as possible */ } if (edsolocptr->vlblglbnum < vesongbptr->vlblglbnum) { edsolocptr ++; /* One more edge processed */ continue; /* Go on as quickly as possible */ } while (edsolocptr->vlblglbnum > vesongbptr->vlblglbnum) { if (++ vesongbptr >= vesongbtnd) { /* Break if all labels processed */ edsolocptr = edsoloctnd; break; } } } } if (procngbnbr < (procglbnbr - 1)) { /* If not last iteration */ MPI_Waitall (2, requloctab, statloctab); /* Wait for communication completion */ MPI_Get_count (&statloctab[0], GNUM_MPI, &vesongbnbr[1 - procngbsel]); vesongbnbr[1 - procngbsel] /= 2; /* Count items, not fields */ } } memFree (vesongbtab[0]); #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication cannot be merged with a useful one */ MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->proccomm); #else /* SCOTCH_DEBUG_DGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (chekglbval != 0) { errorPrint ("dgraphBuild3: duplicate vertex label (2)"); return (1); } } return (0); } /* This subroutine computes the reduced values ** of all of the distributed graph fields. ** It does not deal with vertex labels, nor with ** the ghost edge array. ** It returns: ** - 0 : on success. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (4, 3) int dgraphBuild4 ( Dgraph * restrict const grafptr) /* Distributed graph */ { Gnum reduloctab[7]; /* Arrays for reductions */ Gnum reduglbtab[7]; reduloctab[0] = grafptr->vertlocnbr; /* Get maximum over all processes */ reduloctab[1] = grafptr->edgelocnbr; reduloctab[2] = grafptr->edgelocsiz; reduloctab[3] = grafptr->degrglbmax; /* Here, degrglbmax may store only a local maximum degree before calling */ reduloctab[4] = grafptr->vertlocnbr; /* Sum local sizes */ reduloctab[5] = grafptr->velolocsum; reduloctab[6] = grafptr->edgelocnbr; if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 4, 3, grafptr->proccomm) != 0) { errorPrint ("dgraphBuild4: cannot compute reductions"); return (1); } grafptr->vertglbmax = reduglbtab[0]; /* Set maximum number of local vertices */ grafptr->edgeglbmax = reduglbtab[1]; /* Set maximum number of local edges */ grafptr->edgeglbsmx = reduglbtab[2]; /* Set maximum size of local edge arrays */ grafptr->degrglbmax = reduglbtab[3]; /* Set maximum degree */ grafptr->vertglbnbr = reduglbtab[4]; grafptr->veloglbsum = reduglbtab[5]; grafptr->edgeglbnbr = reduglbtab[6]; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((grafptr->procdsptab[grafptr->procglbnbr] - grafptr->baseval) < grafptr->vertglbnbr) { errorPrint ("dgraphBuild4: invalid process vertex array"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_build.h000066400000000000000000000067101514310134000265160ustar00rootroot00000000000000/* Copyright 2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /**********************************************************/ /* */ /* NAME : dgraph_build.h */ /* */ /* AUTHOR : Francois PELLEGRINI */ /* Francois CHATENET (P0.0) */ /* Sebastien FOUCAULT (P0.0) */ /* Nicolas GICQUEL (P0.1) */ /* Jerome LACOSTE (P0.1) */ /* */ /* FUNCTION : Part of a parallel static mapper. */ /* These lines are the data declarations */ /* for the distributed source graph */ /* building routines. */ /* */ /* # Version P0.1 : from : 01 apr 1997 */ /* to : 13 sep 2006 */ /* # Version 5.0 : from : 22 dec 2006 */ /* to : 22 dec 2006 */ /* */ /**********************************************************/ /* ** The type and structure definitions. */ /* Sort structure for local vertices. First element used for intSort2asc1. */ typedef struct DgraphLablSortVert_ { Gnum vlblglbnum; /* Global vertex label: FIRST */ Gnum vertlocnum; /* Index in local vertex array */ } DgraphLablSortVert; /* Sort structure for local edges. */ typedef struct DgraphLablSortEdge_ { Gnum vlblglbnum; /* Global vertex label */ Gnum edgelocnum; /* Index of local edge */ } DgraphLablSortEdge; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_build_grid3d.c000066400000000000000000000452241514310134000277500ustar00rootroot00000000000000/* Copyright 2007,2010,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_build_grid3d.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (5.0) **/ /** **/ /** FUNCTION : These lines are the distributed source **/ /** graph building routines for 3D grid **/ /** graphs. **/ /** **/ /** DATES : # Version 5.0 : from : 21 jul 2005 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 05 jun 2010 **/ /** to : 06 jun 2010 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 28 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_DGRAPH_BUILD_GRID3D #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_build_grid3d.h" /**************************************/ /* */ /* Vertex neighbor handling routines. */ /* */ /**************************************/ /* ** */ static Gnum dgraphBuildGrid3Dvertex26M ( const DgraphBuildGrid3DData * restrict const dataptr, const Gnum vertglbnum, Gnum edgelocnum, const Gnum posxval, const Gnum posyval, const Gnum poszval) { Gnum ngbxmin; Gnum ngbxmax; Gnum ngbxval; Gnum ngbymin; Gnum ngbymax; Gnum ngbyval; Gnum ngbzmin; Gnum ngbzmax; Gnum ngbzval; ngbxmin = (posxval > 0) ? -1 : 0; ngbymin = (posyval > 0) ? -1 : 0; ngbzmin = (poszval > 0) ? -1 : 0; ngbxmax = (posxval < (dataptr->dimxval - 1)) ? 1 : 0; ngbymax = (posyval < (dataptr->dimyval - 1)) ? 1 : 0; ngbzmax = (poszval < (dataptr->dimzval - 1)) ? 1 : 0; for (ngbzval = ngbzmin; ngbzval <= ngbzmax; ngbzval ++) { for (ngbyval = ngbymin; ngbyval <= ngbymax; ngbyval ++) { for (ngbxval = ngbxmin; ngbxval <= ngbxmax; ngbxval ++) { if ((ngbxval | ngbyval | ngbzval) != 0) /* If not loop edge */ DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, (posxval + dataptr->dimxval + ngbxval) % dataptr->dimxval, (posyval + dataptr->dimyval + ngbyval) % dataptr->dimyval, (poszval + dataptr->dimzval + ngbzval) % dataptr->dimzval); } } } return (edgelocnum); } /* ** */ static Gnum dgraphBuildGrid3Dvertex26T ( const DgraphBuildGrid3DData * restrict const dataptr, const Gnum vertglbnum, Gnum edgelocnum, const Gnum posxval, const Gnum posyval, const Gnum poszval) { Gnum ngbxmin; Gnum ngbxmax; Gnum ngbxval; Gnum ngbymin; Gnum ngbymax; Gnum ngbyval; Gnum ngbzmin; Gnum ngbzmax; Gnum ngbzval; ngbxmin = dataptr->t26.ngbxmin; ngbxmax = dataptr->t26.ngbxmax; ngbymin = dataptr->t26.ngbymin; ngbymax = dataptr->t26.ngbymax; ngbzmin = dataptr->t26.ngbzmin; ngbzmax = dataptr->t26.ngbzmax; for (ngbzval = ngbzmin; ngbzval <= ngbzmax; ngbzval ++) { for (ngbyval = ngbymin; ngbyval <= ngbymax; ngbyval ++) { for (ngbxval = ngbxmin; ngbxval <= ngbxmax; ngbxval ++) { Gnum vertglbend; vertglbend = (((poszval + ngbzval) % dataptr->dimzval) * dataptr->dimyval + ((posyval + ngbyval) % dataptr->dimyval)) * dataptr->dimxval + ((posxval + ngbxval) % dataptr->dimxval) + dataptr->baseval; if (vertglbend != vertglbnum) { /* If not loop edge */ if (dataptr->edloloctax != NULL) dataptr->edloloctax[edgelocnum] = ((vertglbend + vertglbnum) % 16) + 1; dataptr->edgeloctax[edgelocnum ++] = vertglbend; } } } } return (edgelocnum); } /* ** */ static Gnum dgraphBuildGrid3Dvertex6M ( const DgraphBuildGrid3DData * restrict const dataptr, const Gnum vertglbnum, Gnum edgelocnum, const Gnum posxval, const Gnum posyval, const Gnum poszval) { Gnum ngbxval; Gnum ngbyval; Gnum ngbzval; ngbxval = posxval - 1; if (ngbxval >= 0) DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, ngbxval, posyval, poszval); ngbxval = posxval + 1; if (ngbxval < dataptr->dimxval) DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, ngbxval, posyval, poszval); ngbyval = posyval - 1; if (ngbyval >= 0) DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, ngbyval, poszval); ngbyval = posyval + 1; if (ngbyval < dataptr->dimyval) DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, ngbyval, poszval); ngbzval = poszval - 1; if (ngbzval >= 0) DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, posyval, ngbzval); ngbzval = poszval + 1; if (ngbzval < dataptr->dimzval) DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, posyval, ngbzval); return (edgelocnum); } /* ** */ static Gnum dgraphBuildGrid3Dvertex6T ( const DgraphBuildGrid3DData * restrict const dataptr, const Gnum vertglbnum, Gnum edgelocnum, const Gnum posxval, const Gnum posyval, const Gnum poszval) { Gnum ngbxval; Gnum ngbyval; Gnum ngbzval; if (dataptr->dimxval > 1) { ngbxval = (posxval + 1) % dataptr->dimxval; DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, ngbxval, posyval, poszval); if (dataptr->dimxval > 2) { ngbxval = (posxval + dataptr->dimxval - 1) % dataptr->dimxval; DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, ngbxval, posyval, poszval); } } if (dataptr->dimyval > 1) { ngbyval = (posyval + 1) % dataptr->dimyval; DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, ngbyval, poszval); if (dataptr->dimyval > 2) { ngbyval = (posyval + dataptr->dimyval - 1) % dataptr->dimyval; DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, ngbyval, poszval); } } if (dataptr->dimzval > 1) { ngbzval = (poszval + 1) % dataptr->dimzval; DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, posyval, ngbzval); if (dataptr->dimzval > 2) { ngbzval = (poszval + dataptr->dimzval - 1) % dataptr->dimzval; DGRAPHBUILDGRID3DNGB (dataptr, vertglbnum, edgelocnum ++, posxval, posyval, ngbzval); } } return (edgelocnum); } /*******************************************/ /* */ /* The distributed graph building routine. */ /* */ /*******************************************/ /* This routine builds a distrbuted grid graph ** of the given dimensions. ** hashval is the increment between two vertex ** indices (1 for sliced meshes). ** flagval is a combination of: ** - 1 : 26-neighbor mesh (default: 6-neighbor mesh). ** - 2 : torus (default: mesh) ** - 4 : weighted vertices (default: no weights). ** - 8 : weighted edges (default: no weights). ** It returns: ** - 0 : graph created. ** - !0 : on error. */ int dgraphBuildGrid3D ( Dgraph * restrict const grafptr, /* Graph */ const Gnum baseval, /* Base value */ const Gnum dimxval, /* First dimension */ const Gnum dimyval, /* Second dimension */ const Gnum dimzval, /* Third dimension */ const Gnum incrval, /* Increment step */ const Gnum flagval) /* Grid type */ { DgraphBuildGrid3DData datadat; /* Data structure for creating vertices */ Gnum proclocadj; /* Number of processes with most vertices */ Gnum vertglbmin; /* Minimum global index of local vertices */ Gnum vertglbnbr; Gnum vertlocnbr; Gnum vertlocnnd; Gnum vertlocnum; Gnum * vertloctax; Gnum velolocsiz; Gnum velolocsum; Gnum * veloloctax; Gnum * vlblloctax; Gnum vlbllocsiz; Gnum edgelocsiz; Gnum edgelocnum; Gnum * edgeloctab; Gnum edlolocsiz; Gnum * edloloctab; Gnum degrglbmax; #ifdef SCOTCH_DEBUG_DGRAPH1 if ((dimxval < 1) || (dimyval < 1) || (dimzval < 1)) { /* At least one vertex */ errorPrint ("dgraphBuildGrid3D: invalid parameters (1)"); return (1); } if (incrval < 1) { errorPrint ("dgraphBuildGrid3D: invalid parameters (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH1 */ vertglbnbr = dimxval * dimyval * dimzval; vertlocnbr = DATASIZE (vertglbnbr, grafptr->procglbnbr, grafptr->proclocnum); if ((flagval & 1) != 0) { /* If 26-neighbor mesh */ degrglbmax = 26; if ((flagval & 2) != 0) { /* If torus graph */ datadat.t26.ngbxmin = (dimxval > 1) ? (dimxval - 1) : dimxval; /* Avoid loop edges */ datadat.t26.ngbxmax = (dimxval > 2) ? (dimxval + 1) : dimxval; datadat.t26.ngbymin = (dimyval > 1) ? (dimyval - 1) : dimyval; datadat.t26.ngbymax = (dimyval > 2) ? (dimyval + 1) : dimyval; datadat.t26.ngbzmin = (dimzval > 1) ? (dimzval - 1) : dimzval; datadat.t26.ngbzmax = (dimzval > 2) ? (dimzval + 1) : dimzval; datadat.funcvrtptr = dgraphBuildGrid3Dvertex26T; } else datadat.funcvrtptr = dgraphBuildGrid3Dvertex26M; } else { /* If 6-neighbor mesh */ degrglbmax = 6; datadat.funcvrtptr = ((flagval & 2) != 0) ? dgraphBuildGrid3Dvertex6T : dgraphBuildGrid3Dvertex6M; } edgelocsiz = vertlocnbr * degrglbmax; /* (Possibly upper bound on) number of edges */ vlbllocsiz = (incrval != 1) ? vertlocnbr : 0; /* If no hashing, no need for vertex labels */ velolocsiz = ((flagval & 4) != 0) ? vertlocnbr : 0; edlolocsiz = ((flagval & 8) != 0) ? edgelocsiz : 0; if (memAllocGroup ((void **) (void *) &vertloctax, (size_t) ((vertlocnbr + 1) * sizeof (Gnum)), /* +1 to indicate end of array */ &veloloctax, (size_t) (velolocsiz * sizeof (Gnum)), &vlblloctax, (size_t) (vlbllocsiz * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphBuildGrid3D: out of memory (1)"); return (1); } if (memAllocGroup ((void **) (void *) &edgeloctab, (size_t) (edgelocsiz * sizeof (Gnum)), &edloloctab, (size_t) (edlolocsiz * sizeof (Gnum)), NULL) == NULL) { memFree (vertloctax); errorPrint ("dgraphBuildGrid3D: out of memory (2)"); return (1); } datadat.baseval = baseval; datadat.dimxval = dimxval; datadat.dimyval = dimyval; datadat.dimzval = dimzval; datadat.edgeloctax = edgeloctab - baseval; datadat.edloloctax = ((flagval & 8) != 0) ? (edloloctab - baseval) : NULL; vertloctax = vertloctax - baseval; veloloctax = ((flagval & 4) != 0) ? (veloloctax - baseval) : NULL; vlblloctax = (incrval != 1) ? (vlblloctax - baseval) : NULL; proclocadj = vertglbnbr % grafptr->procglbnbr; /* Number of processes with +1 number of vertices */ vertglbmin = (vertglbnbr / grafptr->procglbnbr) * grafptr->proclocnum + MIN (grafptr->proclocnum, proclocadj); edgelocnum = vertlocnum = baseval; vertlocnnd = baseval + vertlocnbr; velolocsum = (veloloctax == NULL) ? vertlocnbr : 0; if (incrval != 1) { /* If strided or pseudo-randomly distributed mesh */ Gnum vertglbidx; /* Un-based global index of current vertex */ Gnum rondlocnbr; /* Number of already completed rounds of increments */ Gnum a; Gnum b; a = (vertglbnbr > incrval) ? vertglbnbr : incrval; /* Get biggest of the two */ b = (vertglbnbr + incrval) - a; /* Get smallest of the two */ do { Gnum t; t = a % b; if (t == 0) break; a = b; b = t; } while (b > 1); /* Compute GCD of vertglbnbr and incrval in b */ rondlocnbr = (vertglbmin * b) / vertglbnbr; vertglbidx = (vertglbmin * incrval + rondlocnbr) % vertglbnbr; /* Compute skewed index, with rounds */ for ( ; vertlocnum < vertlocnnd; vertlocnum ++) { Gnum vertglbnum; Gnum positmp; Gnum posxval; Gnum posyval; Gnum poszval; poszval = vertglbidx / (dimxval * dimyval); positmp = vertglbidx % (dimxval * dimyval); posyval = positmp / dimxval; posxval = positmp % dimxval; vertglbnum = vertglbidx + baseval; vertloctax[vertlocnum] = edgelocnum; vlblloctax[vertlocnum] = vertglbnum; if (veloloctax != NULL) { velolocsum += veloloctax[vertlocnum] = (vertglbnum % 16) + 1; } edgelocnum = datadat.funcvrtptr (&datadat, vertglbnum, edgelocnum, posxval, posyval, poszval); #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum > (edgelocsiz + baseval)) { errorPrint ("dgraphBuildGrid3D: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vertglbidx = (vertglbidx + incrval) % vertglbnbr; /* Add increment to global index */ if (vertglbidx == rondlocnbr) { /* If we looped back to the current beginning */ rondlocnbr ++; /* Start a new round of increments */ vertglbidx = rondlocnbr; } } } else { /* Regularly sliced mesh */ Gnum vertglbnum; /* Based global vertex number */ Gnum positmp; Gnum posxval; Gnum posyval; Gnum poszval; poszval = vertglbmin / (dimxval * dimyval); positmp = vertglbmin % (dimxval * dimyval); posyval = positmp / dimxval; posxval = positmp % dimxval; for (vertglbnum = vertglbmin + baseval; vertlocnum < vertlocnnd; vertlocnum ++, vertglbnum ++) { vertloctax[vertlocnum] = edgelocnum; if (veloloctax != NULL) { velolocsum += veloloctax[vertlocnum] = (vertglbnum % 16) + 1; } edgelocnum = datadat.funcvrtptr (&datadat, vertglbnum, edgelocnum, posxval, posyval, poszval); #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum > (edgelocsiz + baseval)) { errorPrint ("dgraphBuildGrid3D: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (++ posxval >= dimxval) { posxval = 0; if (++ posyval >= dimyval) { posyval = 0; poszval ++; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((poszval >= dimzval) && (vertglbnum < (vertglbnbr + baseval - 1))){ errorPrint ("dgraphBuildGrid3D: internal error (X)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } } } } vertloctax[vertlocnum] = edgelocnum; /* Mark end of local vertex array */ grafptr->flagval = (DGRAPHFREETABS | DGRAPHVERTGROUP | DGRAPHEDGEGROUP); /* All arrays will be freed on exit */ if (dgraphBuild2 (grafptr, baseval, /* Build distributed graph */ vertlocnbr, vertlocnbr, vertloctax, vertloctax + 1, veloloctax, velolocsum, NULL, vlblloctax, edgelocnum - baseval, edgelocsiz, datadat.edgeloctax, NULL, datadat.edloloctax, degrglbmax) != 0) { memFree (datadat.edgeloctax + baseval); /* Free memory group leaders */ memFree (vertloctax + baseval); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_build_grid3d.h000066400000000000000000000127001514310134000277460ustar00rootroot00000000000000/* Copyright 2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_build_grid3d.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data **/ /** declarations for the distributed 3D **/ /** grid graph building routine. **/ /** **/ /** DATES : # Version 5.1 : from : 06 jun 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The distributed graph building structure, which contains all the data needed by the various graph building routines for the different kinds of graphs (grids, tori, etc.). +*/ typedef struct DgraphBuildGrid3DData_ { Gnum baseval; Gnum dimxval; Gnum dimyval; Gnum dimzval; Gnum * edgeloctax; Gnum * edloloctax; Gnum (* funcvrtptr) (const struct DgraphBuildGrid3DData_ * restrict const, const Gnum, Gnum, const Gnum, const Gnum, const Gnum); struct { /* Pre-computed data for 26-neighbor torus */ Gnum ngbxmin; Gnum ngbxmax; Gnum ngbymin; Gnum ngbymax; Gnum ngbzmin; Gnum ngbzmax; } t26; } DgraphBuildGrid3DData; /* ** The function prototypes. */ #ifdef SCOTCH_DGRAPH_BUILD_GRID3D static Gnum dgraphBuildGrid3Dvertex26M (const DgraphBuildGrid3DData * restrict const, const Gnum, Gnum, const Gnum, const Gnum, const Gnum); static Gnum dgraphBuildGrid3Dvertex26T (const DgraphBuildGrid3DData * restrict const, const Gnum, Gnum, const Gnum, const Gnum, const Gnum); static Gnum dgraphBuildGrid3Dvertex6M (const DgraphBuildGrid3DData * restrict const, const Gnum, Gnum, const Gnum, const Gnum, const Gnum); static Gnum dgraphBuildGrid3Dvertex6T (const DgraphBuildGrid3DData * restrict const, const Gnum, Gnum, const Gnum, const Gnum, const Gnum); #endif /* SCOTCH_DGRAPH_BUILD_GRID3D */ /* ** The macro definitions. */ #define DGRAPHBUILDGRID3DNGB(d,v,e,x,y,z) { \ Gnum edgeloctmp; \ Gnum vertglbend; \ edgeloctmp = (e); \ vertglbend = ((z) * (d)->dimyval + (y)) * (d)->dimxval + (x) + (d)->baseval; \ (d)->edgeloctax[edgeloctmp] = vertglbend; \ if ((d)->edloloctax != NULL) \ (d)->edloloctax[edgeloctmp] = ((vertglbend + (v)) % 16) + 1; \ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_build_hcub.c000066400000000000000000000226661514310134000275220ustar00rootroot00000000000000/* Copyright 2007,2008,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_build_hcub.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the distributed source **/ /** graph building routines for hypercube **/ /** graphs. **/ /** **/ /** DATES : # Version P0.1 : from : 19 may 1999 **/ /** to : 19 may 1999 **/ /** # Version P0.2 : from : 02 feb 2000 **/ /** to : 02 feb 2000 **/ /** # Version 5.0 : from : 20 jul 2005 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 12 nov 2008 **/ /** to : 12 nov 2008 **/ /** # Version 6.0 : from : 15 may 2018 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" /*******************************************/ /* */ /* The distributed graph building routine. */ /* */ /*******************************************/ /* This routine builds a distributed hypercube of ** given dimension. ** Since this routine calls dgraphBuild, the private ** data of the Dgraph structure will be initialized ** by the latter, if needed. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphBuildHcub ( Dgraph * restrict const grafptr, /* Graph */ const Gnum hcubdim, /* Hypercube dimension */ const Gnum baseval, /* Base value */ const Gnum flagval) /* Flags */ { Gnum procngbnum; Gnum vertglbnbr; /* Total number of vertices */ Gnum vertglbnum; /* Global number of current vertex */ Gnum vertlocnbr; /* Number of local vertices */ Gnum velolocnbr; /* Number of local vertex loads */ Gnum vertlocnnd; Gnum vertlocnum; Gnum * restrict vertloctax; Gnum * restrict veloloctax; #ifdef SCOTCH_DEBUG_DGRAPH3 Gnum * restrict vlblloctax; #endif /* SCOTCH_DEBUG_DGRAPH3 */ Gnum edgelocnbr; Gnum * restrict edgeloctax; Gnum edgelocnum; Gnum edlolocnbr; Gnum * restrict edloloctax; int cheklocval; Gnum reduloctab[7]; Gnum reduglbtab[7]; vertglbnbr = 1 << hcubdim; vertlocnbr = DATASIZE (vertglbnbr, grafptr->procglbnbr, grafptr->proclocnum); velolocnbr = ((flagval & 1) != 0) ? vertlocnbr : 0; edgelocnbr = vertlocnbr * hcubdim; /* Set local number of arcs */ edlolocnbr = ((flagval & 2) != 0) ? edgelocnbr : 0; for (procngbnum = 0, vertglbnum = 0; /* Compute index of first local vertex */ procngbnum < grafptr->proclocnum; procngbnum ++) vertglbnum += DATASIZE (vertglbnbr, grafptr->procglbnbr, procngbnum); cheklocval = 0; vertloctax = edgeloctax = NULL; if (memAllocGroup ((void **) (void *) &vertloctax, (size_t) ((vertlocnbr + 1) * sizeof (Gnum)), /* Compact vertex array */ #ifdef SCOTCH_DEBUG_DGRAPH3 &vlblloctax, (size_t) (vertlocnbr * sizeof (Gnum)), #endif /* SCOTCH_DEBUG_DGRAPH3 */ &veloloctax, (size_t) (velolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphBuildHcub: out of memory (1)"); cheklocval = 1; } else if (memAllocGroup ((void **) (void *) &edgeloctax, (size_t) (edgelocnbr * sizeof (Gnum)), &edloloctax, (size_t) (edlolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphBuildHcub: out of memory (2)"); cheklocval = 1; } reduloctab[0] = hcubdim; reduloctab[1] = - hcubdim; reduloctab[2] = baseval; reduloctab[3] = - baseval; reduloctab[4] = flagval; reduloctab[5] = - flagval; reduloctab[6] = cheklocval; if (MPI_Allreduce (reduloctab, reduglbtab, 7, GNUM_MPI, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphBuildHcub: communication error"); return (1); } if (reduglbtab[6] != 0) { if (vertloctax != NULL) { if (edgeloctax != NULL) memFree (edgeloctax); memFree (vertloctax); } return (1); } if ((reduglbtab[1] != - reduglbtab[0]) || (reduglbtab[3] != - reduglbtab[2]) || (reduglbtab[5] != - reduglbtab[4])) { errorPrint ("dgraphBuildHcub: inconsistent parameters"); return (1); } vertloctax -= baseval; veloloctax = ((flagval & 1) != 0) ? (veloloctax - baseval) : NULL; edgeloctax -= baseval; edloloctax = ((flagval & 2) != 0) ? (edloloctax - baseval) : NULL; #ifdef SCOTCH_DEBUG_DGRAPH3 vlblloctax -= baseval; #endif /* SCOTCH_DEBUG_DGRAPH3 */ for (vertlocnum = baseval, vertlocnnd = vertlocnbr + baseval, edgelocnum = baseval; vertlocnum < vertlocnnd; vertlocnum ++, vertglbnum ++) { Gnum vertngbbit; /* Bit that differs between neighbors */ if (veloloctax != NULL) veloloctax[vertlocnum] = 1 + (vertglbnum & 3); /* Pseudo random weight (1 to 5) */ #ifdef SCOTCH_DEBUG_DGRAPH3 vlblloctax[vertlocnum] = ((vertglbnum * COARHASHPRIME) % vertglbnbr) + baseval; /* Hash vertices to spread labels */ #endif /* SCOTCH_DEBUG_DGRAPH3 */ vertloctax[vertlocnum] = edgelocnum; for (vertngbbit = 1; vertngbbit < vertglbnbr; vertngbbit <<= 1, edgelocnum ++) { #ifdef SCOTCH_DEBUG_DGRAPH3 edgeloctax[edgelocnum] = (((vertglbnum ^ vertngbbit) * COARHASHPRIME) % vertglbnbr) + baseval; #else /* SCOTCH_DEBUG_DGRAPH3 */ edgeloctax[edgelocnum] = (vertglbnum ^ vertngbbit) + baseval; #endif /* SCOTCH_DEBUG_DGRAPH3 */ if (edloloctax != NULL) edloloctax[edgelocnum] = ((vertglbnum + edgeloctax[edgelocnum]) % 16) + 1; /* Pseudo random weight (1 to 16) */ } } vertloctax[vertlocnum] = edgelocnum; /* Mark end of local vertex array */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum != edgelocnbr + baseval) { errorPrint ("dgraphBuildHcub: internal error"); memFree (vertloctax + baseval); /* Free memory group leader */ return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (dgraphBuild2 (grafptr, baseval, /* Build the distributed graph */ #ifdef SCOTCH_DEBUG_DGRAPH3 vertlocnbr, vertlocnbr, vertloctax, vertloctax + 1, NULL, vertlocnbr, NULL, vlblloctax, #else /* SCOTCH_DEBUG_DGRAPH3 */ vertlocnbr, vertlocnbr, vertloctax, vertloctax + 1, NULL, vertlocnbr, NULL, NULL, #endif /* SCOTCH_DEBUG_DGRAPH3 */ edgelocnbr, edgelocnbr, edgeloctax, NULL, edloloctax, hcubdim) != 0) { memFree (edgeloctax + baseval); /* Free memory group leaders */ memFree (vertloctax + baseval); return (1); } grafptr->flagval |= DGRAPHFREETABS | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; /* Arrays created by the routine itself */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_check.c000066400000000000000000000575551514310134000265040ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2014,2019,2020,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_check.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : Part of a parallel static mapper. **/ /** This module contains the distributed **/ /** graph consistency checking routine. **/ /** **/ /** # Version P0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.1 : from : 14 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version P0.2 : from : 11 may 1999 **/ /** to : 02 feb 2000 **/ /** # Version 5.0 : from : 04 jul 2005 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 20 nov 2008 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 29 sep 2012 **/ /** to : 31 aug 2019 **/ /** # Version 7.0 : from : 03 may 2019 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_allreduce.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ DGRAPHALLREDUCEMAXSUMOP (19, 7) /* This function checks the consistency ** of the given distributed graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int dgraphCheck ( const Dgraph * restrict const grafptr) { MPI_Comm proccomm; /* Graph communicator */ int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ int procrcvnum; /* Number of process from which to receive */ int procsndnum; /* Number of process to which to send */ int procngbsel; /* Value of the currently used neighbor buffers */ int procngbnum; /* Number of current neighbor process */ Gnum * procngbtab; /* Array of neighbor vertex ranges */ int procnum; Gnum vertlocnum; Gnum vertngbmin; /* Smallest vertex number of neighbor process */ Gnum vertngbmax; /* Largest vertex number of neighbor process */ int vertngbnbr[2]; /* Size of the neighbor vertex arrays */ Gnum * restrict vertngbtab[2]; /* Array of two neighbor vertex arrays */ Gnum * restrict vertngbptr; /* Pointer to working neighbor vertex array */ Gnum * restrict vendngbtab[2]; /* Array of two neighbor end vertex arrays */ Gnum * restrict vendngbptr; /* Pointer to working neighbor end vertex array */ Gnum edgelocnbr; /* Local number of edges */ int edgengbnbr[2]; /* Size of the neighbor vertex arrays */ Gnum * restrict edgengbtab[2]; /* Array of two neighbor edge arrays */ Gnum * restrict edgengbptr; /* Pointer to working neighbor edge array */ Gnum * restrict edlongbtab[2]; /* Array of two neighbor edge load arrays */ Gnum * restrict edlongbptr; /* Pointer to working neighbor edge load array */ Gnum edlolocsiz; /* Size of neighbor edge load array (if any) */ int cheklocval; /* Local consistency flag */ int chekglbval; /* Global consistency flag */ Gnum reduloctab[26]; /* Arrays for reductions */ Gnum reduglbtab[26]; MPI_Request requloctab[8]; /* Arrays for pipelined communications */ MPI_Status statloctab[8]; Gnum * restrict const vertloctax = grafptr->vertloctax; Gnum * restrict const vendloctax = grafptr->vendloctax; Gnum * restrict const veloloctax = grafptr->veloloctax; Gnum * restrict const edgeloctax = grafptr->edgeloctax; Gnum * restrict const edgegsttax = grafptr->edgegsttax; Gnum * restrict const edloloctax = grafptr->edloloctax; proccomm = grafptr->proccomm; /* Simplify */ if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize */ errorPrint ("dgraphCheck: communication error (1)"); return (1); } cheklocval = /* Assume everything is all right */ chekglbval = 0; MPI_Comm_size (proccomm, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &proclocnum); if ((grafptr->procglbnbr != procglbnbr) || (grafptr->proclocnum != proclocnum) || ((grafptr->procdsptab == NULL) && (grafptr->vertlocnbr != 0))) { errorPrint ("dgraphCheck: inconsistent communication data (1)"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (2)"); return (1); } if (chekglbval != 0) return (1); reduloctab[0] = (grafptr->procdsptab == NULL) ? 0 : 1; /* If private data not initialized */ if (MPI_Allreduce (reduloctab, reduglbtab, 1, GNUM_MPI, MPI_SUM, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (3)"); return (1); } if (reduglbtab[0] == 0) /* If distributed graph is empty */ return (0); /* Do not go any further */ if (reduglbtab[0] != procglbnbr) { /* If private data not consistently here */ errorPrint ("dgraphCheck: inconsistent communication data (2)"); return (1); } for (procrcvnum = 0; procrcvnum < grafptr->procglbnbr; procrcvnum ++) { if ((grafptr->proccnttab[procrcvnum] < 0) || (grafptr->proccnttab[procrcvnum] != (grafptr->procdsptab[procrcvnum + 1] - grafptr->procdsptab[procrcvnum])) || (grafptr->proccnttab[procrcvnum] > (grafptr->procvrttab[procrcvnum + 1] - grafptr->procvrttab[procrcvnum]))) { errorPrint ("dgraphCheck: inconsistent communication data (3)"); cheklocval = 1; } } if (grafptr->proccnttab[proclocnum] != grafptr->vertlocnbr) { errorPrint ("dgraphCheck: inconsistent communication data (4)"); cheklocval = 1; } procrcvnum = (proclocnum + 1) % procglbnbr; /* Compute indices of neighbors */ procsndnum = (proclocnum - 1 + procglbnbr) % procglbnbr; if ((procngbtab = (Gnum *) memAlloc ((procglbnbr + 1) * sizeof (Gnum))) == NULL) { errorPrint ("dgraphCheck: out of memory (1)"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (4)"); return (1); } if (chekglbval != 0) { if (procngbtab != NULL) memFree (procngbtab); return (1); } MPI_Sendrecv (grafptr->procdsptab, procglbnbr + 1, GNUM_MPI, procsndnum, TAGPROCVRTTAB, /* Check vertex range array */ procngbtab, procglbnbr + 1, GNUM_MPI, procrcvnum, TAGPROCVRTTAB, proccomm, &statloctab[0]); for (procngbnum = 0; procngbnum <= procglbnbr; procngbnum ++) { if (grafptr->procdsptab[procngbnum] != procngbtab[procngbnum]) { errorPrint ("dgraphCheck: inconsistent communication data (5)"); cheklocval = 1; break; } } MPI_Sendrecv (grafptr->procvrttab, procglbnbr + 1, GNUM_MPI, procsndnum, TAGPROCVRTTAB, /* Check vertex range array */ procngbtab, procglbnbr + 1, GNUM_MPI, procrcvnum, TAGPROCVRTTAB, proccomm, &statloctab[0]); for (procngbnum = 0; procngbnum <= procglbnbr; procngbnum ++) { if (grafptr->procvrttab[procngbnum] != procngbtab[procngbnum]) { errorPrint ("dgraphCheck: inconsistent communication data (6)"); cheklocval = 1; break; } } memFree (procngbtab); if ((grafptr->baseval < 0) || /* Elementary constraints on graph fields */ (grafptr->vertlocnbr < 0) || (grafptr->vertlocnnd != (grafptr->vertlocnbr + grafptr->baseval)) || (((grafptr->flagval & DGRAPHHASVENDLOC) == 0) && /* Graph is declared to be compact but vertex arrays are not merged */ (grafptr->vendloctax != (grafptr->vertloctax + 1))) || (((grafptr->flagval & DGRAPHHASEDGEGST) != 0) && /* Graph is declared to have a ghost edge array but data are inconsistent */ ((grafptr->vertgstnbr < grafptr->vertlocnbr) || (grafptr->vertgstnnd != (grafptr->vertgstnbr + grafptr->baseval)))) || (grafptr->edgelocnbr < 0) || (grafptr->edgelocsiz < grafptr->edgelocnbr)) { errorPrint ("dgraphCheck: inconsistent local graph data"); cheklocval = 1; } reduloctab[ 0] = (Gnum) grafptr->flagval; reduloctab[ 1] = - (Gnum) grafptr->flagval; reduloctab[ 2] = grafptr->baseval; reduloctab[ 3] = - grafptr->baseval; reduloctab[ 4] = grafptr->vertglbnbr; reduloctab[ 5] = - grafptr->vertglbnbr; reduloctab[ 6] = grafptr->vertglbmax; reduloctab[ 7] = - grafptr->vertglbmax; reduloctab[ 8] = grafptr->vertlocnbr; reduloctab[ 9] = grafptr->edgeglbnbr; reduloctab[10] = - grafptr->edgeglbnbr; reduloctab[11] = grafptr->edgeglbmax; reduloctab[12] = - grafptr->edgeglbmax; reduloctab[13] = grafptr->edgelocnbr; reduloctab[14] = grafptr->edgelocsiz; reduloctab[15] = grafptr->edgeglbsmx; reduloctab[16] = - grafptr->edgeglbsmx; reduloctab[17] = grafptr->degrglbmax; reduloctab[18] = - grafptr->degrglbmax; reduloctab[19] = (veloloctax != NULL) ? 1 : 0; /* Check consistency */ reduloctab[20] = (edgegsttax != NULL) ? 1 : 0; reduloctab[21] = (edloloctax != NULL) ? 1 : 0; reduloctab[22] = (grafptr->vnumloctax != NULL) ? 1 : 0; reduloctab[23] = grafptr->vertlocnbr; /* Recompute local sizes */ reduloctab[24] = grafptr->edgelocnbr; reduloctab[25] = (Gnum) cheklocval; if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 19, 7, proccomm) != 0) { errorPrint ("dgraphCheck: communication error (5)"); return (1); } if (reduglbtab[25] != 0) return (1); if ((reduglbtab[ 1] != - reduglbtab[ 0]) || /* Check if global graph data match */ (reduglbtab[ 3] != - reduglbtab[ 2]) || (reduglbtab[ 5] != - reduglbtab[ 4]) || (reduglbtab[ 7] != - reduloctab[ 6]) || (reduglbtab[ 8] != reduloctab[ 6]) || (reduglbtab[10] != - reduglbtab[ 9]) || (reduglbtab[12] != - reduglbtab[11]) || (reduglbtab[13] != reduloctab[11]) || /* Recompute and test maximum number of local edges */ (reduglbtab[14] != reduloctab[15]) || /* Recompute and test maximum size of local edge array */ (reduglbtab[16] != - reduloctab[15]) || (reduglbtab[18] != - reduloctab[17])) { errorPrint ("dgraphCheck: inconsistent global graph data (1)"); cheklocval = 1; goto abort; } if (((reduglbtab[19] != 0) && (reduglbtab[19] != procglbnbr)) || ((reduglbtab[20] != 0) && (reduglbtab[20] != procglbnbr)) || ((reduglbtab[21] != 0) && (reduglbtab[21] != procglbnbr)) || ((reduglbtab[22] != 0) && (reduglbtab[22] != procglbnbr)) || (reduglbtab[23] != grafptr->vertglbnbr) || (reduglbtab[24] != grafptr->edgeglbnbr)) { errorPrint ("dgraphCheck: inconsistent global graph data (2)"); cheklocval = 1; goto abort; } for (vertlocnum = grafptr->baseval, edgelocnbr = 0; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; if ((vendloctax[vertlocnum] < vertloctax[vertlocnum]) || (vendloctax[vertlocnum] > (grafptr->edgelocsiz + grafptr->baseval))) { errorPrint ("dgraphCheck: inconsistent local vertex arrays"); cheklocval = 1; goto abort; } edgelocnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum]; if ((grafptr->flagval & DGRAPHHASEDGEGST) != 0) { /* If ghost edge array is valid */ for (edgelocnum = vertloctax[vertlocnum]; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { if ((edgegsttax[edgelocnum] < grafptr->baseval) || (edgegsttax[edgelocnum] >= grafptr->vertgstnnd)) { errorPrint ("dgraphCheck: inconsistent ghost edge array"); cheklocval = 1; goto abort; } if ((edloloctax != NULL) && (edloloctax[edgelocnum] <= 0)) { errorPrint ("dgraphCheck: invalid edge load"); cheklocval = 1; goto abort; } } } } if (edgelocnbr != grafptr->edgelocnbr) { errorPrint ("dgraphCheck: invalid local number of edges"); cheklocval = 1; } abort: if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (6)"); return (1); } if (chekglbval != 0) return (1); if (veloloctax != NULL) { /* Check vertex load consistency */ Gnum velolocsum; Gnum veloglbsum; for (vertlocnum = grafptr->baseval, velolocsum = 0; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) { Gnum veloval; veloval = veloloctax[vertlocnum]; if ((veloval < 0) && (cheklocval == 0)) { errorPrint ("dgraphCheck: invalid vertex load"); cheklocval = 1; } velolocsum += veloval; } if (MPI_Allreduce (&velolocsum, &veloglbsum, 1, GNUM_MPI, MPI_SUM, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (7)"); return (1); } if (velolocsum != grafptr->velolocsum) { errorPrint ("dgraphCheck: invalid local vertex load sum"); cheklocval = 1; } if (veloglbsum != grafptr->veloglbsum) { errorPrint ("dgraphCheck: invalid global vertex load sum"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (8)"); return (1); } if (chekglbval != 0) return (1); } edlolocsiz = (edloloctax != NULL) ? grafptr->edgeglbsmx : 0; if (memAllocGroup ((void **) (void *) &vertngbtab[0], (size_t) (grafptr->vertglbmax * sizeof (Gnum)), /* Send vertex and vertex end arrays, even when they are compact */ &vertngbtab[1], (size_t) (grafptr->vertglbmax * sizeof (Gnum)), &vendngbtab[0], (size_t) (grafptr->vertglbmax * sizeof (Gnum)), &vendngbtab[1], (size_t) (grafptr->vertglbmax * sizeof (Gnum)), &edgengbtab[0], (size_t) (grafptr->edgeglbsmx * sizeof (Gnum)), &edgengbtab[1], (size_t) (grafptr->edgeglbsmx * sizeof (Gnum)), &edlongbtab[0], (size_t) (edlolocsiz * sizeof (Gnum)), &edlongbtab[1], (size_t) (edlolocsiz * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphCheck: out of memory (2)"); cheklocval = 1; } edgengbtab[0] -= grafptr->baseval; /* Base edges arrays only */ edgengbtab[1] -= grafptr->baseval; if (edloloctax == NULL) { /* If graph edges are not weighted */ edlongbtab[0] = /* Edge load arrays are fake */ edlongbtab[1] = NULL; } else { edlongbtab[0] -= grafptr->baseval; edlongbtab[1] -= grafptr->baseval; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCheck: communication error (9)"); return (1); } if (chekglbval != 0) { if (cheklocval == 0) memFree (vertngbtab[0]); /* Free group leader */ return (1); } procngbsel = 0; /* Initial work array selector */ vertngbptr = vertloctax + grafptr->baseval; /* Start working on self arrays */ vendngbptr = vendloctax + grafptr->baseval; /* Un-base vertex arrays */ edgengbptr = edgeloctax; /* Edge arrays are based */ edlongbptr = edloloctax; vertngbnbr[0] = grafptr->vertlocnbr; /* Set number of local vertices and edges to send */ edgengbnbr[0] = grafptr->edgelocsiz; /* Send all of edge array is case graph is not compact */ for (procnum = 0; procnum < procglbnbr; procnum ++) { /* For all processes including self */ Gnum procngbnum; Gnum vertlocnum; Gnum vertglbnum; procngbnum = (proclocnum + procnum) % procglbnbr; /* Compute neighbor process number */ vertngbmin = grafptr->procvrttab[procngbnum]; /* Get neighbor vertex number range */ vertngbmax = grafptr->procvrttab[procngbnum + 1]; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertngbnbr[procngbsel] != grafptr->proccnttab[procngbnum]) || (vertngbnbr[procngbsel] > (vertngbmax - vertngbmin))) { errorPrint ("dgraphCheck: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (procnum < (procglbnbr - 1)) { /* For all rounds except the last one */ MPI_Irecv (vertngbtab[1 - procngbsel], grafptr->vertglbmax, GNUM_MPI, procrcvnum, TAGVERTLOCTAB, proccomm, &requloctab[4]); MPI_Irecv (vendngbtab[1 - procngbsel], grafptr->vertglbmax, GNUM_MPI, procrcvnum, TAGVENDLOCTAB, proccomm, &requloctab[5]); MPI_Irecv (edgengbtab[1 - procngbsel] + grafptr->baseval, grafptr->edgeglbsmx, GNUM_MPI, procrcvnum, TAGEDGELOCTAB, proccomm, &requloctab[6]); MPI_Isend (vertngbptr, vertngbnbr[procngbsel], GNUM_MPI, procsndnum, TAGVERTLOCTAB, proccomm, &requloctab[1]); MPI_Isend (vendngbptr, vertngbnbr[procngbsel], GNUM_MPI, procsndnum, TAGVENDLOCTAB, proccomm, &requloctab[2]); MPI_Isend (edgengbptr + grafptr->baseval, edgengbnbr[procngbsel], GNUM_MPI, procsndnum, TAGEDGELOCTAB, proccomm, &requloctab[3]); if (edlongbptr != NULL) { MPI_Irecv (edlongbtab[1 - procngbsel] + grafptr->baseval, grafptr->edgeglbsmx, GNUM_MPI, procrcvnum, TAGEDLOLOCTAB, proccomm, &requloctab[7]); MPI_Isend (edlongbptr + grafptr->baseval, edgengbnbr[procngbsel], GNUM_MPI, procsndnum, TAGEDLOLOCTAB, proccomm, &requloctab[0]); /* Complete communications before accessing arrays being sent */ MPI_Waitall (8, &requloctab[0], &statloctab[0]); } else MPI_Waitall (6, &requloctab[1], &statloctab[1]); MPI_Get_count (&statloctab[4], GNUM_MPI, &vertngbnbr[1 - procngbsel]); MPI_Get_count (&statloctab[6], GNUM_MPI, &edgengbnbr[1 - procngbsel]); } for (vertlocnum = grafptr->baseval, vertglbnum = grafptr->procvrttab[proclocnum]; vertlocnum < grafptr->vertlocnnd; vertlocnum ++, vertglbnum ++) { Gnum edgelocnum; for (edgelocnum = vertloctax[vertlocnum]; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum vertglbend; vertglbend = edgeloctax[edgelocnum]; if ((vertglbend >= vertngbmin) && /* If end vertex belongs to current neighbor process */ (vertglbend < vertngbmax)) { Gnum edgengbnum; Gnum edgengbnnd; Gnum edgengbsum; for (edgengbnum = vertngbptr[vertglbend - vertngbmin], edgengbnnd = vendngbptr[vertglbend - vertngbmin], edgengbsum = 0; edgengbnum < edgengbnnd; edgengbnum ++) { if (edgengbptr[edgengbnum] == vertglbnum) { /* If matching edge found */ edgengbsum ++; /* Account for it */ if ((edlongbptr != NULL) && /* If edge weights do not match */ (edlongbptr[edgengbnum] != edloloctax[edgelocnum])) cheklocval = 3; } } if (edgengbsum < 1) /* If matching edge not found */ cheklocval = 1; else if (edgengbsum > 1) /* If duplicate edge */ cheklocval = 2; } } } MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm); if (chekglbval != 0) { /* Error number ranges from 1 to 3 */ if (chekglbval == 1) errorPrint ("dgraphCheck: arc data do not match"); else if (chekglbval == 2) errorPrint ("dgraphCheck: duplicate arc"); else errorPrint ("dgraphCheck: arc load data do not match"); memFree (vertngbtab[0]); /* Free group leader */ return (1); } procngbsel ^= 1; /* Swap work and receive buffers */ vertngbptr = vertngbtab[procngbsel]; /* Point to future work buffers */ vendngbptr = vendngbtab[procngbsel]; /* Vertex pointers are unbased */ edgengbptr = edgengbtab[procngbsel]; /* Edge pointers are based */ edlongbptr = edlongbtab[procngbsel]; } memFree (vertngbtab[0]); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_coarsen.c000066400000000000000000002267151514310134000270550ustar00rootroot00000000000000/* Copyright 2007-2012,2014,2018-2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** Selmane LEBDAOUI (v7.0, b_dcoarsen) **/ /** **/ /** FUNCTION : This file implements the coarsening **/ /** phase of the multi-level method. **/ /** The implementation uses several **/ /** processes, which could have several **/ /** threads each (3 at this time). **/ /** **/ /** DATES : # Version 5.0 : from : 27 jul 2005 **/ /** to : 15 may 2008 **/ /** # Version 5.1 : from : 23 jun 2008 **/ /** to : 20 feb 2011 **/ /** # Version 6.0 : from : 11 sep 2012 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 17 jun 2021 **/ /** to : 27 dec 2021 **/ /** # Version 7.0 : from : 14 jan 2020 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_DGRAPH_COARSEN #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "dgraph_coarsen.h" #include "dgraph_match.h" /******************************/ /* */ /* Graph coarsening routines. */ /* */ /******************************/ static int dgraphCoarsenInit ( DgraphCoarsenData * restrict const coarptr, /*+ Coarsening data structure +*/ Dgraph * restrict const finegrafptr, /*+ Graph to coarsen +*/ Dgraph * restrict const coargrafptr) /*+ Coarse graph to build +*/ { int procglbnbr; int procglbnum; int procngbnbr; int procngbnum; int procngbnxt; int vertrcvnbr; int vertsndnbr; Gnum vertlocnbr; Gnum vertgstnbr; int vdsprcvnum; int vdspsndnum; byte * bufftab; size_t buffsiz; const int * restrict const fineprocngbtab = finegrafptr->procngbtab; const int * restrict const fineprocrcvtab = finegrafptr->procrcvtab; const int * restrict const fineprocsndtab = finegrafptr->procsndtab; vertlocnbr = finegrafptr->vertlocnbr; vertgstnbr = finegrafptr->vertgstnbr; procglbnbr = finegrafptr->procglbnbr; procngbnbr = finegrafptr->procngbnbr; vertrcvnbr = vertgstnbr - vertlocnbr; vertsndnbr = finegrafptr->procsndnbr; coarptr->coarprvptr = NULL; /* Assume nothing to free on error */ coarptr->multloctmp = NULL; coarptr->nsndidxtab = NULL; coarptr->nrcvidxtab = NULL; coarptr->thrdtab = NULL; if ((coarptr->coarprvptr = memAllocGroup ((void **) (void *) /* Allocate distributed coarse graph private data */ &coargrafptr->procdsptab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &coargrafptr->proccnttab, (size_t) (procglbnbr * sizeof (Gnum)), &coargrafptr->procngbtab, (size_t) (procglbnbr * sizeof (int)), &coargrafptr->procrcvtab, (size_t) (procglbnbr * sizeof (int)), &coargrafptr->procsndtab, (size_t) (procglbnbr * sizeof (int)), NULL)) == NULL) { errorPrint ("dgraphCoarsenInit: out of memory (1)"); return (1); } coargrafptr->procvrttab = coargrafptr->procdsptab; /* Coarse graph has no holes */ if (coarptr->multloctab == NULL) { /* If no multinode array provided */ Gnum multlocsiz; /* Size of local multinode array */ multlocsiz = vertlocnbr; /* Size of multinode array of plain coarsened graph, not taking folding into account */ #ifdef SCOTCH_DEBUG_DGRAPH2 coarptr->multlocsiz = multlocsiz; #endif /* SCOTCH_DEBUG_DGRAPH2 */ if ((coarptr->multloctab = memAlloc (multlocsiz * sizeof (DgraphCoarsenMulti))) == NULL) { errorPrint ("dgraphCoarsenInit: out of memory (2)"); dgraphCoarsenExit (coarptr); return (1); } coarptr->multloctmp = coarptr->multloctab; /* Array will have to be freed on error */ } #ifdef SCOTCH_DEBUG_DGRAPH2 else /* User-provided multinode array */ coarptr->multlocsiz = dgraphCoarsenVertLocMax (finegrafptr, DGRAPHCOARSENNONE); /* Impossible to know: use prescribed bound to test it */ #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (memAllocGroup ((void **) (void *) /* Data used up to edge exchange phase at coarse graph build time */ &coarptr->nrcvidxtab, (size_t) (procngbnbr * sizeof (int)), &coarptr->vrcvdsptab, (size_t) ((procglbnbr + 1) * sizeof (int)), /* TRICK: "+1" for size count */ &coarptr->coargsttax, (size_t) (vertgstnbr * sizeof (Gnum)), &coarptr->procgsttax, (size_t) (vertrcvnbr * sizeof (int)), /* TRICK: Only purely ghost part of array will be used */ &coarptr->vrcvdattab, (size_t) (vertrcvnbr * sizeof (DgraphCoarsenVert)), NULL) == NULL) { errorPrint ("dgraphCoarsenInit: out of memory (3)"); dgraphCoarsenExit (coarptr); return (1); } buffsiz = 2 * MAX ((procngbnbr * sizeof (MPI_Request)), (procglbnbr * sizeof (int))); if (memAllocGroup ((void **) (void *) /* Data released after coarse vertex index exchange phase */ &coarptr->nsndidxtab, (size_t) (procngbnbr * sizeof (int)), &coarptr->vsnddsptab, (size_t) ((procglbnbr + 1) * sizeof (int)), /* TRICK: "+1" for size count check */ &bufftab, (size_t) buffsiz, &coarptr->dcntloctab, (size_t) (procglbnbr * sizeof (DgraphCoarsenCount)), &coarptr->dcntglbtab, (size_t) (procglbnbr * sizeof (DgraphCoarsenCount)), &coarptr->vsnddattab, (size_t) (vertsndnbr * sizeof (DgraphCoarsenVert)), NULL) == NULL) { errorPrint ("dgraphCoarsenInit: out of memory (4)"); dgraphCoarsenExit (coarptr); return (1); } coarptr->nrcvreqtab = (MPI_Request *) (void *) bufftab; /* TRICK: point-to-point requests and collective arrays share same space */ coarptr->nsndreqtab = coarptr->nrcvreqtab + procngbnbr; coarptr->vrcvcnttab = (int *) (void *) bufftab; coarptr->vsndcnttab = coarptr->vrcvcnttab + procglbnbr; for (procglbnum = 0, vdsprcvnum = vdspsndnum = 0; /* Build communication index arrays */ procglbnum < procglbnbr; procglbnum ++) { coarptr->vrcvdsptab[procglbnum] = vdsprcvnum; coarptr->vsnddsptab[procglbnum] = vdspsndnum; vdsprcvnum += fineprocrcvtab[procglbnum]; vdspsndnum += fineprocsndtab[procglbnum]; } coarptr->vrcvdsptab[procglbnum] = vdsprcvnum; /* Mark end of communication index arrays */ coarptr->vsnddsptab[procglbnum] = vdspsndnum; for (procngbnum = procngbnxt = 0; procngbnum < procngbnbr; procngbnum ++) { if ((procngbnxt == 0) && (fineprocngbtab[procngbnum] > finegrafptr->proclocnum)) { /* Find index of first neighbor of higher rank */ procngbnxt = procngbnum; break; } } coarptr->procngbnxt = procngbnxt; coarptr->coargsttax -= finegrafptr->baseval; coarptr->finegrafptr = finegrafptr; coarptr->coargrafptr = coargrafptr; memSet (coarptr->dcntloctab, 0, procglbnbr * sizeof (DgraphCoarsenCount)); memSet (coarptr->procgsttax, ~0, vertrcvnbr * sizeof (int)); /* Values have not yet been computed */ coarptr->procgsttax -= vertlocnbr + finegrafptr->baseval; /* TRICK: base array such that only purely ghost part is used */ coarptr->edgekptnbr = 0; return (0); } static void dgraphCoarsenExit ( DgraphCoarsenData * restrict const coarptr) /*+ Coarsening data structure +*/ { if (coarptr->nsndidxtab != NULL) /* Auxiliary array is released after first phase of coarse graph building */ memFree (coarptr->nsndidxtab); if (coarptr->nrcvidxtab != NULL) memFree (coarptr->nrcvidxtab); if (coarptr->multloctmp != NULL) /* If multinode array not provided nor passed back to calling routine */ memFree (coarptr->multloctmp); if (coarptr->coarprvptr != NULL) /* If ownership of coarse graph private data not yet transferred to it */ memFree (coarptr->coarprvptr); if (coarptr->thrdtab != NULL) memFree (coarptr->thrdtab); } /*************************************/ /* */ /* Multinode data exchange routines. */ /* */ /*************************************/ static int dgraphCoarsenBuildColl ( DgraphCoarsenData * restrict const coarptr) { int procngbnum; MPI_Comm proccomm = coarptr->finegrafptr->proccomm; Dgraph * restrict const grafptr = coarptr->finegrafptr; const Gnum vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - grafptr->baseval; const int procngbnbr = grafptr->procngbnbr; const int * restrict const procngbtab = grafptr->procngbtab; Gnum * restrict const coargsttax = coarptr->coargsttax; int * restrict const vsndcnttab = coarptr->vsndcnttab; int * restrict const vrcvdsptab = coarptr->coargrafptr->procrcvtab; /* TRICK: use coarse graph procrcvtab and procsndtab */ int * restrict const vsnddsptab = coarptr->coargrafptr->procsndtab; int * restrict const nrcvidxtab = coarptr->nrcvidxtab; int * restrict const nsndidxtab = coarptr->nsndidxtab; memSet (vsndcnttab, 0, grafptr->procglbnbr * sizeof (int)); memSet (vrcvdsptab, 0, grafptr->procglbnbr * sizeof (int)); memSet (vsnddsptab, 0, grafptr->procglbnbr * sizeof (int)); for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { int procglbnum; procglbnum = procngbtab[procngbnum]; vsndcnttab[procglbnum] = 2 * (nsndidxtab[procngbnum] - coarptr->vsnddsptab[procglbnum]); vrcvdsptab[procglbnum] = 2 * coarptr->vrcvdsptab[procglbnum]; vsnddsptab[procglbnum] = 2 * coarptr->vsnddsptab[procglbnum]; } if (MPI_Alltoall (vsndcnttab, 1, MPI_INT, coarptr->vrcvcnttab, 1, MPI_INT, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuildColl: communication error (1)"); return (1); } if (MPI_Alltoallv (coarptr->vsnddattab, vsndcnttab, vsnddsptab, GNUM_MPI, coarptr->vrcvdattab, coarptr->vrcvcnttab, vrcvdsptab, GNUM_MPI, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuildColl: communication error (2)"); return (1); } for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { /* For all received data chunks */ int vrcvidxnnd; int vrcvidxnum; int procglbnum; int statsiz; const DgraphCoarsenVert * restrict const vrcvdattab = coarptr->vrcvdattab; /* After data is received */ procglbnum = procngbtab[procngbnum]; statsiz = coarptr->vrcvcnttab[procglbnum]; for (vrcvidxnum = coarptr->vrcvdsptab[procglbnum], vrcvidxnnd = vrcvidxnum + (statsiz / 2); /* TRICK: each message item costs 2 Gnum's */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum vertglbnum; /* Our global number (the one seen as mate by sender) */ Gnum vertlocnum; /* Our local number (the one seen as mate by sender) */ Gnum multglbnum; /* Global number of coarse vertex */ vertglbnum = vrcvdattab[vrcvidxnum].datatab[0]; multglbnum = vrcvdattab[vrcvidxnum].datatab[1]; vertlocnum = vertglbnum - vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocnum < grafptr->baseval) || /* If matching request is not directed towards our process */ (vertlocnum >= grafptr->vertlocnnd)) { errorPrint ("dgraphCoarsenBuildColl: internal error"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coargsttax[vertlocnum] = multglbnum; } nrcvidxtab[procngbnum] = vrcvidxnnd; /* Keep receive end index for preparing edge arrays */ } return (0); } static int dgraphCoarsenBuildPtop ( DgraphCoarsenData * restrict const coarptr) { int procngbnum; int vrcvreqnbr; MPI_Comm proccomm = coarptr->finegrafptr->proccomm; Dgraph * restrict const grafptr = coarptr->finegrafptr; const Gnum vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - grafptr->baseval; const int procngbnbr = grafptr->procngbnbr; const int * restrict const procngbtab = grafptr->procngbtab; Gnum * restrict const coargsttax = coarptr->coargsttax; const int * restrict const vrcvdsptab = coarptr->vrcvdsptab; const int * restrict const vsnddsptab = coarptr->vsnddsptab; int * restrict const nrcvidxtab = coarptr->nrcvidxtab; int * restrict const nsndidxtab = coarptr->nsndidxtab; if (procngbnbr > 0) { /* If we have neighbors to communication with */ procngbnum = coarptr->procngbnxt; /* Post receives in descending order */ do { int procglbnum; procngbnum = (procngbnum + (procngbnbr - 1)) % procngbnbr; /* Pre-decrement neighbor rank */ procglbnum = procngbtab[procngbnum]; if (MPI_Irecv (coarptr->vrcvdattab + vrcvdsptab[procglbnum], 2 * (vrcvdsptab[procglbnum + 1] - vrcvdsptab[procglbnum]), GNUM_MPI, procglbnum, TAGCOARSEN, proccomm, &coarptr->nrcvreqtab[procngbnum]) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuildPtop: communication error (1)"); return (1); } } while (procngbnum != coarptr->procngbnxt); procngbnum = coarptr->procngbnxt; /* Post sends in ascending order */ do { int procglbnum; procglbnum = procngbtab[procngbnum]; if (MPI_Isend (coarptr->vsnddattab + vsnddsptab[procglbnum], 2 * (nsndidxtab[procngbnum] - vsnddsptab[procglbnum]), GNUM_MPI, procglbnum, TAGCOARSEN, proccomm, &coarptr->nsndreqtab[procngbnum]) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuildPtop: communication error (2)"); return (1); } procngbnum = (procngbnum + 1) % procngbnbr; /* Post-increment neighbor rank */ } while (procngbnum != coarptr->procngbnxt); } for (vrcvreqnbr = procngbnbr; vrcvreqnbr > 0; vrcvreqnbr --) { /* For all pending receive requests */ int vrcvidxnnd; int vrcvidxnum; int procngbnum; MPI_Status statdat; int statsiz; int o; #ifdef SCOTCH_DEBUG_DGRAPH2 procngbnum = vrcvreqnbr - 1; /* Receive messages in order */ o = MPI_Wait (&coarptr->nrcvreqtab[procngbnum], &statdat); #else /* SCOTCH_DEBUG_DGRAPH2 */ o = MPI_Waitany (procngbnbr, coarptr->nrcvreqtab, &procngbnum, &statdat); #endif /* SCOTCH_DEBUG_DGRAPH2 */ if ((o != MPI_SUCCESS) || (MPI_Get_count (&statdat, GNUM_MPI, &statsiz) != MPI_SUCCESS)) { errorPrint ("dgraphCoarsenBuildPtop: communication error (3)"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (statdat.MPI_SOURCE != procngbtab[procngbnum]) { errorPrint ("dgraphCoarsenBuildPtop: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ { const DgraphCoarsenVert * restrict const vrcvdattab = coarptr->vrcvdattab; /* After data is received */ for (vrcvidxnum = vrcvdsptab[procngbtab[procngbnum]], vrcvidxnnd = vrcvidxnum + (statsiz / 2); /* TRICK: each message item costs 2 Gnum's */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum vertglbnum; /* Our global number (the one seen as mate by sender) */ Gnum vertlocnum; /* Our local number (the one seen as mate by sender) */ Gnum multglbnum; /* Global number of coarse vertex */ vertglbnum = vrcvdattab[vrcvidxnum].datatab[0]; multglbnum = vrcvdattab[vrcvidxnum].datatab[1]; vertlocnum = vertglbnum - vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocnum < grafptr->baseval) || /* If matching request is not directed towards our process */ (vertlocnum >= grafptr->vertlocnnd)) { errorPrint ("dgraphCoarsenBuildPtop: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coargsttax[vertlocnum] = multglbnum; } nrcvidxtab[procngbnum] = vrcvidxnnd; /* Keep receive end index for preparing edge arrays */ } } if (MPI_Waitall (procngbnbr, coarptr->nsndreqtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait for send requests to complete */ errorPrint ("dgraphCoarsenBuildPtop: communication error (4)"); return (1); } return (0); } /******************************/ /* */ /* The coarse graph adjacency */ /* building routine. */ /* */ /******************************/ /* This routine merges the adjacency of the two ** fine vertices of a multinode into a coarse ** vertex, using a hash table for merging. The ** first multinode vertex is always local, while ** the second one can be either local or remote. ** It returns: ** - >= 0 : new coaredgenum value. */ static Gnum dgraphCoarsenBuildAdj ( const Dgraph * restrict const finegrafptr, DgraphCoarsenMulti * restrict const multloctax, const Gnum coarvertlocnum, const Gnum coarvertglbnum, Gnum * restrict const coarveloloctax, Gnum * restrict const coaredgeloctax, Gnum coaredgelocnum, Gnum * restrict const coaredloloctax, const Gnum vertlocadj, /* Fine vertex local adjustment */ const Gnum * restrict const coargsttax, int * restrict const ercvdsptab, const Gnum * restrict const ercvdattab, const int * restrict const procgsttax, DgraphCoarsenHash * restrict const coarhashtab, const Gnum coarhashmsk) { Gnum coarvelolocval; Gnum vertlocnum; int i; const Gnum * restrict const vertloctax = finegrafptr->vertloctax; const Gnum * restrict const vendloctax = finegrafptr->vendloctax; const Gnum * restrict const veloloctax = finegrafptr->veloloctax; const Gnum * restrict const edgeloctax = finegrafptr->edgeloctax; const Gnum * restrict const edgegsttax = finegrafptr->edgegsttax; const Gnum * restrict const edloloctax = finegrafptr->edloloctax; i = 0; coarvelolocval = 0; vertlocnum = multloctax[coarvertlocnum].vertglbnum[0] - vertlocadj; while (1) { /* Pseudo-infinite loop on both vertices of the multinode */ Gnum vertglbnum; Gnum edgelocnum; Gnum edgelocnnd; Gnum degrlocval; int procngbnum; int ercvidxnum; coarvelolocval += (veloloctax != NULL) ? veloloctax[vertlocnum] : 1; for (edgelocnum = vertloctax[vertlocnum], edgelocnnd = vendloctax[vertlocnum]; /* Loop on edges of first (and sometimes second) local mate */ edgelocnum < edgelocnnd; edgelocnum ++) { Gnum coarvertglbend; Gnum edlolocval; Gnum h; coarvertglbend = coargsttax[edgegsttax[edgelocnum]]; if (coarvertglbend == coarvertglbnum) /* If end of collapsed edge */ continue; edlolocval = (edloloctax != NULL) ? edloloctax[edgelocnum] : 1; for (h = (coarvertglbend * COARHASHPRIME) & coarhashmsk; ; h = (h + 1) & coarhashmsk) { if (coarhashtab[h].vertorgnum != coarvertglbnum) { /* If old slot */ coarhashtab[h].vertorgnum = coarvertglbnum; /* Mark it in reference array */ coarhashtab[h].vertendnum = coarvertglbend; coarhashtab[h].edgelocnum = coaredgelocnum; coaredgeloctax[coaredgelocnum] = coarvertglbend; /* One more edge created */ coaredloloctax[coaredgelocnum] = edlolocval; coaredgelocnum ++; break; /* Give up hashing */ } if (coarhashtab[h].vertendnum == coarvertglbend) { /* If coarse edge already exists */ coaredloloctax[coarhashtab[h].edgelocnum] += edlolocval; break; /* Give up hashing */ } } } if (i ++ > 0) /* If second local vertex has been processed, exit */ break; vertglbnum = multloctax[coarvertlocnum].vertglbnum[1]; if (vertglbnum >= 0) { /* If second multinode vertex is local */ if ((vertglbnum - vertlocadj) == vertlocnum) /* If single multinode */ break; vertlocnum = (vertglbnum - vertlocadj); continue; } edgelocnum = -2 - vertglbnum; /* Get edge number associated with remote second multinode vertex */ multloctax[coarvertlocnum].vertglbnum[1] = edgeloctax[edgelocnum]; /* Set global number of second multinode vertex */ procngbnum = procgsttax[edgegsttax[edgelocnum]]; /* Get number of neighbor process to which owns end vertex */ ercvidxnum = ercvdsptab[procngbnum]; /* Get start index of remote vertex adgacency list */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (ercvidxnum < 0) { /* If we attempt to read an adjacency that has not been sent */ errorPrint ("dgraphCoarsenBuildAdj: internal error (1)"); return (GNUMMAX); } if (ercvdattab[ercvidxnum ++] != edgeloctax[edgelocnum]) { /* If we are not reading the proper adjacency data */ errorPrint ("dgraphCoarsenBuildAdj: internal error (2)"); return (GNUMMAX); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ degrlocval = ercvdattab[ercvidxnum ++]; /* Read vertex degree */ coarvelolocval += (veloloctax != NULL) ? ercvdattab[ercvidxnum ++] : 1; /* Read vertex load if any */ while (degrlocval -- > 0) { /* For all edges */ Gnum coarvertglbend; Gnum edlolocval; Gnum h; coarvertglbend = ercvdattab[ercvidxnum ++]; /* Get coarse end vertex number */ edlolocval = (edloloctax != NULL) ? ercvdattab[ercvidxnum ++] : 1; /* Read edge load if any */ if (coarvertglbend == coarvertglbnum) /* If loop coarse edge, skip it */ continue; for (h = (coarvertglbend * COARHASHPRIME) & coarhashmsk; ; h = (h + 1) & coarhashmsk) { if (coarhashtab[h].vertorgnum != coarvertglbnum) { /* If old slot */ coarhashtab[h].vertorgnum = coarvertglbnum; /* Mark it in reference array */ coarhashtab[h].vertendnum = coarvertglbend; coarhashtab[h].edgelocnum = coaredgelocnum; coaredgeloctax[coaredgelocnum] = coarvertglbend; /* One more edge created */ coaredloloctax[coaredgelocnum] = edlolocval; coaredgelocnum ++; break; /* Give up hashing */ } if (coarhashtab[h].vertendnum == coarvertglbend) { /* If coarse edge already exists */ coaredloloctax[coarhashtab[h].edgelocnum] += edlolocval; break; /* Give up hashing */ } } } ercvdsptab[procngbnum] = ercvidxnum; /* Write back updated receive index */ break; /* Exit loop after processing remote mate */ } coarveloloctax[coarvertlocnum] = coarvelolocval; return (coaredgelocnum); } /***********************************/ /* */ /* Coarse graph building routines. */ /* */ /***********************************/ /* This routine finalizes the creation of the ** distributed coarse graph in a sequential way. ** The distributed coarse graph is compact. ** It returns: ** - 0 : if coarse graph was created. ** - !0 : on error. */ static int dgraphCoarsenBuildSeq ( DgraphCoarsenData * restrict const coarptr) { Gnum coarvertlocnum; Gnum coarvertlocnnd; Gnum coarvelolocsum; Gnum coardegrlocmax; Gnum coaredgelocnum; DgraphCoarsenHash * restrict coarhashtab; /* Table for merging vertex edges to same multinode */ size_t coarhashsiz; /* Size of hash table */ Dgraph * restrict const finegrafptr = coarptr->finegrafptr; Dgraph * restrict const coargrafptr = coarptr->coargrafptr; const Gnum * restrict const coargsttax = coarptr->coargsttax; const Gnum vertlocadj = finegrafptr->procvrttab[finegrafptr->proclocnum] - finegrafptr->baseval; const int * restrict const procgsttax = coarptr->procgsttax; const Gnum * restrict const ercvdattab = coarptr->ercvdattab; int * restrict const ercvdsptab = coarptr->ercvdsptab; /* Use global displacement data */ DgraphCoarsenMulti * restrict const multloctax = coarptr->multloctab - finegrafptr->baseval; const Gnum multlocadj = coargrafptr->procdsptab[finegrafptr->proclocnum] - finegrafptr->baseval; Gnum * restrict const coarvertloctax = coargrafptr->vertloctax; Gnum * restrict const coarveloloctax = coargrafptr->veloloctax; Gnum * restrict const coaredgeloctax = coargrafptr->edgeloctax; Gnum * restrict const coaredloloctax = coargrafptr->edloloctax; const Gnum coarhashmsk = coarptr->coarhashmsk; coarhashsiz = (coarhashmsk + 1) * sizeof (DgraphCoarsenHash); /* TRICK: (coarhashmsk + 1) is power of two */ if ((coarhashtab = memAlloc (coarhashsiz)) == NULL) { errorPrint ("dgraphCoarsenBuildSeq: out of memory"); return (1); } memSet (coarhashtab, ~0, coarhashsiz); coarvelolocsum = 0; coardegrlocmax = 0; for (coarvertlocnum = coaredgelocnum = finegrafptr->baseval, coarvertlocnnd = coarvertlocnum + coargrafptr->vertlocnbr; coarvertlocnum < coarvertlocnnd; coarvertlocnum ++) { coarvertloctax[coarvertlocnum] = coaredgelocnum; coaredgelocnum = dgraphCoarsenBuildAdj (finegrafptr, multloctax, coarvertlocnum, coarvertlocnum + multlocadj, coarveloloctax, coaredgeloctax, coaredgelocnum, coaredloloctax, vertlocadj, coargsttax, ercvdsptab, ercvdattab, procgsttax, coarhashtab, coarhashmsk); #ifdef SCOTCH_DEBUG_DGRAPH2 if (coaredgelocnum > (coargrafptr->edgelocsiz + coargrafptr->baseval)) { /* Number of local edges can be reached, not exceeded */ errorPrint ("dgraphCoarsenBuildSeq: internal error"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coarvelolocsum += coarveloloctax[coarvertlocnum]; if (coardegrlocmax < (coaredgelocnum - coarvertloctax[coarvertlocnum])) coardegrlocmax = (coaredgelocnum - coarvertloctax[coarvertlocnum]); } coarvertloctax[coarvertlocnum] = coaredgelocnum; /* Set end of compact edge array */ coargrafptr->degrglbmax = coardegrlocmax; /* Save local maximum degree before subsequent reduction */ coargrafptr->velolocsum = coarvelolocsum; coargrafptr->edgelocnbr = coargrafptr->edgelocsiz = coaredgelocnum - coargrafptr->baseval; /* Compact edge array */ memFree (coarhashtab); return (0); } /* This routine aggregates a sum and max ** reduction of partial coarse graph ** parameters computed by multiple ** threads. */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) static void dgraphCoarsenBuildThrReduce ( DgraphCoarsenThread * restrict const tlocptr, /* Pointer to local thread block */ DgraphCoarsenThread * restrict const tremptr, /* Pointer to remote thread block */ const void * const globptr) /* Unused */ { tlocptr->velolocsum += tremptr->velolocsum; /* Sum vertex loads */ tlocptr->edgelocnbr += tremptr->edgelocnbr; /* Sum number of edges */ if (tremptr->degrlocmax > tlocptr->degrlocmax) /* Take maximum of degrees */ tlocptr->degrlocmax = tremptr->degrlocmax; tlocptr->retuval |= tremptr->retuval; /* Agregate return values */ } /* This routine finalizes the creation of the ** distributed coarse graph in a multi-threaded way. ** The distributed coarse graph is not compact, so ** coargrafptr->vendloctab must have been allocated. ** To manage the case where processes may have ** different numbers of threads, only thrdmin threads ** are used per process, instead of thrdnbr. ** It returns: ** - 0 : if coarse graph was created. ** - !0 : on error. */ static void dgraphCoarsenBuildThr ( ThreadDescriptor * restrict const descptr, DgraphCoarsenData * restrict const coarptr) { Gnum coarvertlocnum; Gnum coarvertlocnnd; Gnum coarvelolocsum; Gnum coaredgelocbas; /* Start index of edge sub-array for current thread */ Gnum coaredgelocnum; Gnum coardegrlocmax; DgraphCoarsenHash * restrict coarhashtab; /* Table for merging vertex edges to same multinode */ size_t coarhashsiz; /* Size of hash table */ int * restrict ercvdsptab; int procngbnum; int o; const int thrdmin = coarptr->thrdmin; /* All processes must have same number of threads */ const int thrdnum = threadNum (descptr); Dgraph * restrict const finegrafptr = coarptr->finegrafptr; Dgraph * restrict const coargrafptr = coarptr->coargrafptr; const Gnum * restrict const coargsttax = coarptr->coargsttax; const Gnum vertlocadj = finegrafptr->procvrttab[finegrafptr->proclocnum] - finegrafptr->baseval; const int * restrict const procgsttax = coarptr->procgsttax; const int procngbnbr = finegrafptr->procngbnbr; const Gnum * restrict const ercvdattab = coarptr->ercvdattab; DgraphCoarsenMulti * restrict const multloctax = coarptr->multloctab - finegrafptr->baseval; const Gnum multlocadj = coargrafptr->procdsptab[finegrafptr->proclocnum] - finegrafptr->baseval; Gnum * restrict const coarvertloctax = coargrafptr->vertloctax; Gnum * restrict const coarvendloctax = coargrafptr->vendloctax; Gnum * restrict const coarveloloctax = coargrafptr->veloloctax; Gnum * restrict const coaredgeloctax = coargrafptr->edgeloctax; Gnum * restrict const coaredloloctax = coargrafptr->edloloctax; const Gnum coarhashmsk = coarptr->coarhashmsk; if (thrdnum >= thrdmin) { /* If extra, idle thread */ coarptr->thrdtab[thrdnum].velolocsum = 0; /* Nothing to do */ coarptr->thrdtab[thrdnum].edgelocnbr = 0; coarptr->thrdtab[thrdnum].degrlocmax = 0; o = 0; /* Everything went well */ goto abort2; /* Skip all work */ } o = 1; /* Assume an error */ coarhashsiz = (coarhashmsk + 1) * sizeof (DgraphCoarsenHash); /* TRICK: (coarhashmsk + 1) is power of two */ if (memAllocGroup ((void **) (void *) &coarhashtab, (size_t) coarhashsiz, &ercvdsptab, (size_t) (procngbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphCoarsenBuildThr: out of memory"); goto abort2; } memSet (coarhashtab, ~0, coarhashsiz); coaredgelocbas = finegrafptr->baseval; if (thrdnum == 0) { /* First thread does not have a thread adjacency start index */ for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { #ifdef SCOTCH_DEBUG_DGRAPH2 if (coarptr->ercvcnttab[procngbnum] <= 0) /* If no data received from this neighbor */ ercvdsptab[procngbnum] = -1; /* Set canary value */ else /* In the general case, computation is harmless */ #endif /* SCOTCH_DEBUG_DGRAPH2 */ ercvdsptab[procngbnum] = coarptr->ercvdsptab[procngbnum] + 2 * (thrdmin - 1); /* Skip thread index sub-array to reach start of array for thread 0 */ } } else { /* Other threads have a thread adjacency start index */ coaredgelocbas += coarptr->thrdtab[thrdnum].edgelocsum; /* Skip all local edges for this thread */ for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { if (coarptr->ercvcnttab[procngbnum] > 0) { /* If we have received data from this neighbor */ int ercvdspidx; /* Start index of neighbor sub-array */ ercvdspidx = coarptr->ercvdsptab[procngbnum]; ercvdsptab[procngbnum] = ercvdspidx + ercvdattab[ercvdspidx + (2 * thrdnum) - 1]; /* Get start index for thread slot */ coaredgelocbas += ercvdattab[ercvdspidx + (2 * thrdnum) - 2]; /* Skip sum of edges received from all neighbors before slot */ } #ifdef SCOTCH_DEBUG_DGRAPH2 else /* Set canary value */ ercvdsptab[procngbnum] = -1; #endif /* SCOTCH_DEBUG_DGRAPH2 */ } } coarvelolocsum = 0; coardegrlocmax = 0; coarvertlocnum = finegrafptr->baseval + DATASCAN (coargrafptr->vertlocnbr, thrdmin, thrdnum); coarvertlocnnd = finegrafptr->baseval + DATASCAN (coargrafptr->vertlocnbr, thrdmin, thrdnum + 1); for (coaredgelocnum = coaredgelocbas; coarvertlocnum < coarvertlocnnd; coarvertlocnum ++) { coarvertloctax[coarvertlocnum] = coaredgelocnum; /* Set start of vertex adjacency sub-array */ coaredgelocnum = dgraphCoarsenBuildAdj (finegrafptr, multloctax, coarvertlocnum, coarvertlocnum + multlocadj, coarveloloctax, coaredgeloctax, coaredgelocnum, coaredloloctax, vertlocadj, coargsttax, ercvdsptab, ercvdattab, procgsttax, coarhashtab, coarhashmsk); #ifdef SCOTCH_DEBUG_DGRAPH2 if (coaredgelocnum > (coargrafptr->edgelocsiz + coargrafptr->baseval)) { /* Number of local edges can be reached, not exceeded */ errorPrint ("dgraphCoarsenBuildThr: internal error"); goto abort1; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coarvendloctax[coarvertlocnum] = coaredgelocnum; /* Set end of vertex adjacency sub-array */ coarvelolocsum += coarveloloctax[coarvertlocnum]; if (coardegrlocmax < (coaredgelocnum - coarvertloctax[coarvertlocnum])) coardegrlocmax = (coaredgelocnum - coarvertloctax[coarvertlocnum]); } o = 0; /* Everything went well */ coarptr->thrdtab[thrdnum].velolocsum = coarvelolocsum; coarptr->thrdtab[thrdnum].edgelocnbr = coaredgelocnum - coaredgelocbas; coarptr->thrdtab[thrdnum].degrlocmax = coardegrlocmax; if (thrdnum == (thrdmin - 1)) coargrafptr->edgelocsiz = coaredgelocnum - finegrafptr->baseval; /* For non-compact edge array, array size is end of last edge sub-array */ #ifdef SCOTCH_DEBUG_DGRAPH2 abort1: #endif /* SCOTCH_DEBUG_DGRAPH2 */ memFree (coarhashtab); /* Free group leader */ abort2: coarptr->thrdtab[thrdnum].retuval = o; threadReduce (descptr, &coarptr->thrdtab[thrdnum], sizeof (DgraphCoarsenThread), (ThreadReduceFunc) dgraphCoarsenBuildThrReduce, 0, NULL); /* Sum edges and get maximum of degrmax */ return; } #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ /* This routine performs the coarsening of edges ** with respect to the coarmulttax array computed ** by dgraphMatch. All data must be available when ** running (all receptions done). This function is ** inspired by src/libscotch/graph_coarsen_edge.c. */ DGRAPHALLREDUCEMAXSUMOP (4, 1) static int dgraphCoarsenBuild ( DgraphCoarsenData * restrict const coarptr) { Gnum vendlocsiz; /* Size of local vertex end array (if any) */ Gnum edgelocsiz; /* Size of local coarse edge array */ int ercvdatsiz; /* Size of adjacency receive data array */ int esnddatsiz; /* Size of adjacency send data array */ Gnum * restrict ercvdattab; /* Adjacency receive data array */ Gnum * restrict esnddattab; /* Adjacency send data array */ int * restrict ercvcnttab; /* Adjacency receive count array */ int * restrict esndcnttab; /* Adjacency send count array */ int * restrict ercvdsptab; /* Adjacency receive displacement array */ int * restrict esnddsptab; /* Adjacency send displacement array */ int ercvdspidx; /* Current receive displacement index */ int esnddspidx; /* Current send displacement index */ Gnum multlocnum; int procngbnum; int procnum; Gnum coarhashnbr; /* Size of adjacency hash table */ int vertmltval; int edgemltval; Gnum reduloctab[5]; Gnum reduglbtab[5]; int cheklocval; int chekglbval; #ifdef SCOTCH_DEBUG_DGRAPH2 Gnum vertlocnum; int * restrict ercvdbgtab; #endif /* SCOTCH_DEBUG_DGRAPH2 */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) Gnum coarlocnnd; /* Boundary for current thread slot in neighbor */ Gnum edgelocsum; /* Cumulative number of edges for this thread slot */ int procrcvnbr; /* Number of neighbors actually sending data to us */ int thrdnum; #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) const int thrdnbr = contextThreadNbr (coarptr->contptr); const int thrdmin = coarptr->thrdmin; #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ MPI_Comm proccomm = coarptr->finegrafptr->proccomm; Dgraph * restrict const finegrafptr = coarptr->finegrafptr; Dgraph * restrict const coargrafptr = coarptr->coargrafptr; Gnum * restrict const coargsttax = coarptr->coargsttax; const int procngbnbr = finegrafptr->procngbnbr; const int * restrict const procngbtab = finegrafptr->procngbtab; const int * restrict const procgsttax = coarptr->procgsttax; const Gnum * restrict const vertloctax = finegrafptr->vertloctax; const Gnum * restrict const vendloctax = finegrafptr->vendloctax; const Gnum * restrict const veloloctax = finegrafptr->veloloctax; const Gnum * restrict const edgeloctax = finegrafptr->edgeloctax; const Gnum * restrict const edgegsttax = finegrafptr->edgegsttax; const Gnum * restrict const edloloctax = finegrafptr->edloloctax; const Gnum vertlocadj = finegrafptr->procvrttab[finegrafptr->proclocnum] - finegrafptr->baseval; const Gnum multlocadj = coargrafptr->procdsptab[finegrafptr->proclocnum]; const DgraphCoarsenMulti * restrict const multloctab = coarptr->multloctab; DgraphCoarsenVert * const vrcvdattab = coarptr->vrcvdattab; /* [norestrict:async] */ DgraphCoarsenVert * restrict const vsnddattab = coarptr->vsnddattab; int * restrict const nsndidxtab = coarptr->nsndidxtab; #ifdef SCOTCH_DEBUG_DGRAPH2 memSet (coargsttax + finegrafptr->baseval, ~0, finegrafptr->vertgstnbr * sizeof (Gnum)); /* To ckeck no data will be left uninitialized */ #endif /* SCOTCH_DEBUG_DGRAPH2 */ for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) /* Reset indices for sending messages */ nsndidxtab[procngbnum] = coarptr->vsnddsptab[procngbtab[procngbnum]]; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) if ((coarptr->thrdtab = memAlloc (thrdnbr * sizeof (DgraphCoarsenThread))) == NULL) { /* TRICK: thrdnbr and not thrdmin for reduction across all threads */ errorPrint ("dgraphCoarsenBuild: out of memory (1)"); return (1); /* TODO: cleaner exit */ } coarptr->thrdtab[0].edgelocsum = 0; /* No local edges exist before thread 0 */ thrdnum = 1; coarlocnnd = DATASCAN (coarptr->multlocnbr, thrdmin, 1); /* Compute first thread slot boundary */ edgelocsum = 0; #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ for (multlocnum = 0; multlocnum < coarptr->multlocnbr; multlocnum ++) { /* Loop on local multinode data */ Gnum ver0locnum; Gnum ver1locnum; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) Gnum deg0locval; /* Degree of first fine multinode vertex */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) while (multlocnum >= coarlocnnd) { /* If crossed boundary of current thread */ coarptr->thrdtab[thrdnum].edgelocsum = edgelocsum; /* Record sum of local edges to date */ thrdnum ++; coarlocnnd = DATASCAN (coarptr->multlocnbr, thrdmin, thrdnum); /* Compute next thread slot boundary */ } #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ ver0locnum = multloctab[multlocnum].vertglbnum[0] - vertlocadj; /* Compute local value of (always local) first multinode vertex */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((ver0locnum < finegrafptr->baseval) || (ver0locnum >= finegrafptr->vertlocnnd)) { errorPrint ("dgraphCoarsenBuild: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coargsttax[ver0locnum] = multlocnum + multlocadj; /* Un-based number with base adjustment */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) deg0locval = vendloctax[ver0locnum] - vertloctax[ver0locnum]; edgelocsum += deg0locval; /* Account for local edges of first multinode vertex */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ ver1locnum = multloctab[multlocnum].vertglbnum[1]; if (ver1locnum >= 0) { /* If second vertex is local */ ver1locnum -= vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((ver1locnum < finegrafptr->baseval) || (ver1locnum >= finegrafptr->vertlocnnd)) { errorPrint ("dgraphCoarsenBuild: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coargsttax[ver1locnum] = multlocnum + multlocadj; /* Valid if single multinode or not */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) if (ver1locnum != ver0locnum) { /* If multinode does not comprise a single vertex */ edgelocsum += vendloctax[ver1locnum] - vertloctax[ver1locnum]; /* Account for edges of second local multinode vertex */ if (deg0locval > 0) /* If multinode is not created by merging an isolated vertex to some other */ edgelocsum -= 2; /* Remove collapsed arcs */ } #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ } else { /* Second vertex is not local */ Gnum edgelocnum; /* Fine edge number to remote fine vertex */ Gnum ver1glbnum; /* Global number of fine end vertex */ Gnum ver1gstnum; /* Local ghost number of fine end vertex */ int coarsndidx; /* Index in request send array */ int procngbnum; /* Number of target process */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) edgelocsum --; /* Remove collapsed ghost edge */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ edgelocnum = -2 - ver1locnum; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((edgelocnum < finegrafptr->baseval) || (edgelocnum >= (finegrafptr->baseval + finegrafptr->edgelocsiz))) { errorPrint ("dgraphCoarsenBuild: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ ver1glbnum = edgeloctax[edgelocnum]; ver1gstnum = edgegsttax[edgelocnum]; procngbnum = procgsttax[ver1gstnum]; /* Find neighbor owner process */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (procngbnum < 0) { /* If neighbor had not been computed */ errorPrint ("dgraphCoarsenBuild: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ coarsndidx = nsndidxtab[procngbnum] ++; /* Get position of message in send array */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (coarsndidx >= coarptr->vsnddsptab[procngbtab[procngbnum] + 1]) { errorPrint ("dgraphCoarsenBuild: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vsnddattab[coarsndidx].datatab[0] = ver1glbnum; /* Send fine global remote vertex number */ vsnddattab[coarsndidx].datatab[1] = multlocnum + multlocadj; /* Send coarse global multinode value; TRICK: sorted ascending */ } } #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) for ( ; thrdnum < thrdmin; thrdnum ++) /* Fill remaining thread slots (excluding idle ones) */ coarptr->thrdtab[thrdnum].edgelocsum = edgelocsum; /* Record sum of local edges to date */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ if ((((finegrafptr->flagval & DGRAPHCOMMPTOP) != 0) ? dgraphCoarsenBuildPtop : dgraphCoarsenBuildColl) (coarptr) != 0) return (1); #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Make sure all-to-all communication did complete */ errorPrint ("dgraphCoarsenBuild: communication error (1)"); return (1); } for (vertlocnum = finegrafptr->baseval; vertlocnum < finegrafptr->vertlocnnd; vertlocnum ++) { /* Make sure all multinode data has been exchanged */ if (coargsttax[vertlocnum] < 0) { errorPrint ("dgraphCoarsenBuild: invalid matching"); return (1); } } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (dgraphHaloSync (finegrafptr, coargsttax + finegrafptr->baseval, GNUM_MPI) != 0) { errorPrint ("dgraphCoarsenBuild: cannot propagate multinode indices"); return (1); } ercvcnttab = coargrafptr->procrcvtab; /* TRICK: re-use some private coarse graph arrays after vertex exchange phase */ ercvdsptab = coargrafptr->procsndtab; vertmltval = ((veloloctax != NULL) ? 2 : 1); #ifdef SCOTCH_DEBUG_DGRAPH2 vertmltval ++; /* Send vertex indices as well, to check inconsistencies */ #endif /* SCOTCH_DEBUG_DGRAPH2 */ edgemltval = ((edloloctax != NULL) ? 2 : 1); /* Multiplication factor for edge array size */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) procrcvnbr = 0; /* No sending neighbors yet */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ for (procnum = 0, ercvdspidx = 0; /* TRICK: dcntglbtab array no longer needed afterwards; can be freed */ procnum < finegrafptr->procglbnbr; procnum ++) { ercvdsptab[procnum] = ercvdspidx; ercvcnttab[procnum] = coarptr->dcntglbtab[procnum].vertsndnbr * vertmltval + coarptr->dcntglbtab[procnum].edgesndnbr * edgemltval; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) if (coarptr->dcntglbtab[procnum].vertsndnbr > 0) { /* If process is a neighbor that actually sends data */ ercvcnttab[procnum] += 2 * (thrdmin - 1); /* Add space for thread index array */ procrcvnbr ++; /* One more sending neighbor for us to receive */ } #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ ercvdspidx += ercvcnttab[procnum]; } memFree (coarptr->nsndidxtab); /* Free now useless work memory */ coarptr->nsndidxtab = NULL; /* This block won't be reclaimed */ edgelocsiz = coarptr->edgekptnbr + coarptr->edgercvnbr - coarptr->vertrcvnbr; /* TRICK: remote edge to local vertex will always collapse */ ercvdatsiz = coarptr->vertrcvnbr + coarptr->edgercvnbr; /* Basic size: degrees plus edge data */ esnddatsiz = coarptr->vertsndnbr + coarptr->edgesndnbr; if (finegrafptr->veloloctax != NULL) { /* Add vertex loads if necessary */ ercvdatsiz += coarptr->vertrcvnbr; esnddatsiz += coarptr->vertsndnbr; } if (finegrafptr->edloloctax != NULL) { /* Add edge loads if necessary */ ercvdatsiz += coarptr->edgercvnbr; esnddatsiz += coarptr->edgesndnbr; } #ifdef SCOTCH_DEBUG_DGRAPH2 ercvdatsiz += coarptr->vertrcvnbr; /* Send vertex indices, to check for inconsistencies */ esnddatsiz += coarptr->vertsndnbr; #endif /* SCOTCH_DEBUG_DGRAPH2 */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) ercvdatsiz += 2 * (thrdmin - 1) * procrcvnbr; /* Set thread slot space only for neighbors from which we receive */ esnddatsiz += 2 * (thrdmin - 1) * finegrafptr->procngbnbr; /* Cannot compute exactly so take upper bound */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (ercvdspidx != ercvdatsiz) { errorPrint ("dgraphCoarsenBuild: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ cheklocval = 0; coargrafptr->flagval = DGRAPHFREETABS | DGRAPHFREEPRIV | DGRAPHVERTGROUP; /* Coarse graph is not yet based */ coarptr->coarprvptr = NULL; /* Transfer ownership of private arrays to coarse graph */ esndcnttab = NULL; /* In case of memory allocation error */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) if (thrdmin > 1) { /* If more than one thread */ vendlocsiz = coarptr->multlocnbr; /* Create a non-compact graph */ coargrafptr->flagval |= DGRAPHHASVENDLOC; /* Flag graph as not compact */ } else #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ vendlocsiz = 1; /* Else create a compact graph */ if ((memAllocGroup ((void **) (void *) &coargrafptr->vertloctax, (size_t) ((coarptr->multlocnbr + vendlocsiz) * sizeof (Gnum)), &coargrafptr->veloloctax, (size_t) ( coarptr->multlocnbr * sizeof (Gnum)), NULL) == NULL) || ((coargrafptr->edgeloctax = memAlloc (edgelocsiz * sizeof (Gnum))) == NULL) || ((coargrafptr->edloloctax = memAlloc (edgelocsiz * sizeof (Gnum))) == NULL) || (memAllocGroup ((void **) (void *) &esndcnttab, (size_t) (finegrafptr->procglbnbr * sizeof (int)), &esnddsptab, (size_t) (finegrafptr->procglbnbr * sizeof (int)), &esnddattab, (size_t) (esnddatsiz * sizeof (Gnum)), &ercvdattab, (size_t) (ercvdatsiz * sizeof (Gnum)), #ifdef SCOTCH_DEBUG_DGRAPH2 &ercvdbgtab, (size_t) (finegrafptr->procglbnbr * sizeof (int)), #endif /* SCOTCH_DEBUG_DGRAPH2 */ NULL) == NULL)) { errorPrint ("dgraphCoarsenBuild: out of memory (2)"); cheklocval = 1; } coarptr->nsndidxtab = esndcnttab; /* TRICK: allow data array to be released on error */ #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication cannot be overlapped by a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_SUM, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuild: communication error (2)"); chekglbval = 1; } #else /* SCOTCH_DEBUG_DGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (chekglbval != 0) { dgraphFree (coargrafptr); return (1); } coargrafptr->baseval = finegrafptr->baseval; coargrafptr->vertlocnnd = coargrafptr->baseval + coargrafptr->vertlocnbr; coargrafptr->vertloctax -= coargrafptr->baseval; coargrafptr->vendloctax = coargrafptr->vertloctax + vendlocsiz; /* Graph may or may not be compact */ coargrafptr->veloloctax -= coargrafptr->baseval; coargrafptr->edgeloctax -= coargrafptr->baseval; coargrafptr->edloloctax -= coargrafptr->baseval; coargrafptr->edgelocsiz = edgelocsiz; /* Temporary size of edge array */ coargrafptr->veloglbsum = finegrafptr->veloglbsum; for (procngbnum = procnum = 0, esnddspidx = 0; /* Fill-in adjacency arrays to be sent to neighbor processes */ procngbnum < procngbnbr; procngbnum ++, procnum ++) { int procglbnum; int vrcvidxnnd; int vrcvidxnum; int esnddspbas; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) Gnum coarngbnbr; /* Number of coarse vertices in neighbor process */ Gnum coarngbadj; /* Adjustment value for global coarse vertex number */ Gnum coarngbnnd; /* Boundary for current thread slot in neighbor */ Gnum edgengbsum; /* Cumulative number of edges to be sent to thread slots */ int thrdnum; #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ procglbnum = procngbtab[procngbnum]; while (procnum < procglbnum) { /* Fill empty slots */ esnddsptab[procnum] = esnddspidx; esndcnttab[procnum] = 0; procnum ++; } esnddsptab[procnum] = esnddspidx; /* Record start of send array for this (neighbor) process */ vrcvidxnum = coarptr->vrcvdsptab[procglbnum]; /* Get boundaries of neighbor message */ vrcvidxnnd = coarptr->nrcvidxtab[procngbnum]; if (vrcvidxnum >= vrcvidxnnd) { /* If no data requested by this neighbor */ esndcnttab[procnum] = 0; /* Nothing to send back */ #ifdef SCOTCH_DEBUG_DGRAPH2 #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) esnddatsiz -= 2 * (thrdmin - 1); /* Lower boundary by discarding thread slot index space not used by this neighbor */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ #endif /* SCOTCH_DEBUG_DGRAPH2 */ continue; /* Skip to next neighbor */ } esnddspbas = esnddspidx; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) esnddspidx += 2 * (thrdmin - 1); /* Reserve space for thread slot index */ thrdnum = 1; coarngbnbr = coargrafptr->proccnttab[procglbnum]; /* Get initial value and number of coarse vertices for this neighbor */ coarngbadj = coargrafptr->procdsptab[procglbnum]; coarngbnnd = coarngbadj + DATASCAN (coarngbnbr, thrdmin, 1); /* Compute first thread slot boundary */ edgengbsum = 0; #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ do { /* For all multinode requests received, in order */ Gnum vertlocnum; /* Local number of vertex whose adjacency to send */ Gnum edgelocnum; /* Start index of fine adjacency array */ Gnum edgelocnnd; /* End index of fine adjacency array */ vertlocnum = vrcvdattab[vrcvidxnum].datatab[0] - vertlocadj; /* Get number of fine local vertex whose adjacency is wanted */ edgelocnum = vertloctax[vertlocnum]; edgelocnnd = vendloctax[vertlocnum]; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) while (vrcvdattab[vrcvidxnum].datatab[1] >= coarngbnnd) { /* As long as sender not in the proper thread slot */ esnddattab[esnddspbas + (2 * thrdnum) - 2] = edgengbsum; /* Record number of indices for new slot */ esnddattab[esnddspbas + (2 * thrdnum) - 1] = (Gnum) (esnddspidx - esnddspbas); /* Record start index for new slot */ thrdnum ++; coarngbnnd = coarngbadj + DATASCAN (coarngbnbr, thrdmin, thrdnum); /* Compute next thread slot boundary */ } edgengbsum += edgelocnnd - edgelocnum - 1; /* Account for edges to be sent in this slot; TRICK : "-1" for collapsed ghost edge */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((esnddspidx + vertmltval + edgemltval * (edgelocnnd - edgelocnum)) > esnddatsiz) { errorPrint ("dgraphCoarsenBuild: internal error (7)"); return (1); } esnddattab[esnddspidx ++] = vertlocnum + vertlocadj; /* Write global fine vertex number; accounted for in computation just above */ #endif /* SCOTCH_DEBUG_DGRAPH2 */ esnddattab[esnddspidx ++] = (edgelocnnd - edgelocnum); /* Write degree */ if (veloloctax != NULL) esnddattab[esnddspidx ++] = veloloctax[vertlocnum]; if (edloloctax != NULL) { /* If coarse graph has edge loads */ for ( ; edgelocnum < edgelocnnd; edgelocnum ++) { /* Send coarse adjacency and edge load */ esnddattab[esnddspidx ++] = coargsttax[edgegsttax[edgelocnum]]; esnddattab[esnddspidx ++] = edloloctax[edgelocnum]; } } else { /* Else only send coarse adjacency */ for ( ; edgelocnum < edgelocnnd; edgelocnum ++) esnddattab[esnddspidx ++] = coargsttax[edgegsttax[edgelocnum]]; } } while (++ vrcvidxnum < vrcvidxnnd); esndcnttab[procnum] = esnddspidx - esnddspbas; /* Record amount of data to be sent to this process */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) for ( ; thrdnum < thrdmin; thrdnum ++) { /* Fill remaining thread slots */ esnddattab[esnddspbas + (2 * thrdnum) - 2] = edgengbsum; esnddattab[esnddspbas + (2 * thrdnum) - 1] = (Gnum) (esnddspidx - esnddspbas); } #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ } while (procnum < finegrafptr->procglbnbr) { /* Complete fill-in of empty slots */ esnddsptab[procnum] = esnddspidx; esndcnttab[procnum] = 0; procnum ++; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (esnddspidx != esnddatsiz) { /* Check that all expected data has been encoded */ errorPrint ("dgraphCoarsenBuild: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Alltoall (esndcnttab, 1, MPI_INT, ercvdbgtab, 1, MPI_INT, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuild: communication error (3)"); return (1); } for (procnum = 0; procnum < finegrafptr->procglbnbr; procnum ++) { if (ercvdbgtab[procnum] != ercvcnttab[procnum]) { errorPrint ("dgraphCoarsenBuild: internal error (9)"); return (1); } } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (MPI_Alltoallv (esnddattab, esndcnttab, esnddsptab, GNUM_MPI, ercvdattab, ercvcnttab, ercvdsptab, GNUM_MPI, proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsenBuild: communication error (4)"); return (1); } for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { /* Make receive array store only neighbor-related data */ ercvdsptab[procngbnum] = ercvdsptab[procngbtab[procngbnum]]; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) ercvcnttab[procngbnum] = ercvcnttab[procngbtab[procngbnum]]; /* Count array also needed for threaded version */ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ } coarptr->ercvdattab = ercvdattab; coarptr->ercvdsptab = ercvdsptab; #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) coarptr->ercvcnttab = ercvcnttab; #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ for (coarhashnbr = 32; coarhashnbr < finegrafptr->degrglbmax; coarhashnbr = coarhashnbr * 2) ; /* Compute size of adjacency hash table */ coarptr->coarhashmsk = coarhashnbr * 4 - 1; /* TRICK: size is power of two */ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) if (thrdmin > 1) { /* If multithreading, coarse graph shall not be compact */ contextThreadLaunch (coarptr->contptr, (ThreadFunc) dgraphCoarsenBuildThr, (void *) coarptr); if (coarptr->thrdtab[0].retuval != 0) { errorPrint ("dgraphCoarsenBuild: could not compute adjacency (1)"); return (1); } coargrafptr->velolocsum = coarptr->thrdtab[0].velolocsum; /* Get reduced vertex load sum */ coargrafptr->edgelocnbr = coarptr->thrdtab[0].edgelocnbr; /* Get reduced local number of edges */ coargrafptr->degrglbmax = coarptr->thrdtab[0].degrlocmax; /* Get reduced maximum local degree */ } else #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ { if (dgraphCoarsenBuildSeq (coarptr)) { errorPrint ("dgraphCoarsenBuild: could not compute adjacency (2)"); return (1); } } coargrafptr->edgeloctax = memRealloc (coargrafptr->edgeloctax + coargrafptr->baseval, coargrafptr->edgelocsiz * sizeof (Gnum)); coargrafptr->edgeloctax -= coargrafptr->baseval; coargrafptr->edloloctax = memRealloc (coargrafptr->edloloctax + coargrafptr->baseval, coargrafptr->edgelocsiz * sizeof (Gnum)); coargrafptr->edloloctax -= coargrafptr->baseval; reduloctab[0] = coargrafptr->vertlocnbr; /* Compute maximum of local vertices across all processes */ reduloctab[1] = coargrafptr->edgelocnbr; /* Compute maximum of local edges across all processes */ reduloctab[2] = coargrafptr->edgelocsiz; /* Compute maximum of edge array size across all processes */ reduloctab[3] = coargrafptr->degrglbmax; /* Compute maximum vertex degree across all processes */ reduloctab[4] = coargrafptr->edgelocnbr; /* Compute sum of edges across all processes */ if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 4, 1, proccomm) != 0) { errorPrint ("dgraphCoarsenBuild: communication error (5)"); return (1); } coargrafptr->vertglbmax = reduglbtab[0]; coargrafptr->edgeglbmax = reduglbtab[1]; coargrafptr->edgeglbsmx = reduglbtab[2]; coargrafptr->degrglbmax = reduglbtab[3]; /* It is now a real global maximum degree */ coargrafptr->edgeglbnbr = reduglbtab[4]; memFree (coarptr->thrdtab); coarptr->thrdtab = NULL; return (0); } /***************************/ /* */ /* The coarsening routine. */ /* */ /***************************/ /* This routine coarsens the given fine distributed ** graph, as long as the coarsening ratio remains ** below some threshold value and the coarsened graph ** is not too small. ** If a multinode array is provided (*multlocptr != NULL), ** it must be of a size sufficient to hold multinode data ** in any configuration, including in the case of folding ** with duplication, where folded data is spread across ** floor(P/2) processes. ** It returns: ** - 0 : if the graph has been coarsened. ** - 1 : if the graph could not be coarsened. ** - 2 : on error. */ int dgraphCoarsen ( Dgraph * restrict const finegrafptr, /*+ Graph to coarsen +*/ Dgraph * restrict const coargrafptr, /*+ Coarse graph to build +*/ DgraphCoarsenMulti * restrict * const multlocptr, /*+ Pointer to un-based multinode array +*/ const Gnum passnbr, /*+ Number of coarsening passes to go +*/ const Gnum coarnbr, /*+ Minimum number of coarse vertices +*/ const double coarrat, /*+ Maximum contraction ratio +*/ const int flagval, /*+ Flag value +*/ Context * restrict const contptr) /*+ Execution context +*/ { DgraphMatchData matedat; /* Matching state data; includes coarsening handling data */ Gnum vertrcvnbr; /* Overall number of vertices to be received from neighbors */ Gnum edgercvnbr; /* Overall number of edges to be received from neighbors */ Gnum vertsndnbr; /* Overall number of vertices to be sent to neighbors */ Gnum edgesndnbr; /* Overall number of edges to be sent to neighbors */ int thrdlocmin; int thrdglbmin; int cheklocval; Gnum coarvertmax; Gnum passnum; int procnum; int o; #ifdef SCOTCH_DEBUG_DGRAPH1 if (coarrat < 0.5L) /* If impossible coarsening ratio wanted */ return (1); /* We will never succeed */ #endif /* SCOTCH_DEBUG_DGRAPH1 */ coarvertmax = (Gnum) ((double) finegrafptr->vertglbnbr * coarrat); /* Maximum number of coarse vertices */ if (coarvertmax < coarnbr) /* If there are too few vertices in graph */ return (1); /* It is useless to go any further */ if (dgraphGhst (finegrafptr) != 0) { /* Compute ghost edge array of fine graph if not already present */ errorPrint ("dgraphCoarsen: cannot compute ghost edge array"); return (2); } matedat.c.flagval = flagval; matedat.c.multloctab = *multlocptr; /* Propagate the provided multinode array or NULL if it has to be allocated */ matedat.c.contptr = contptr; /* Set execution context as it might be needed for initialization */ cheklocval = dgraphCoarsenInit (&matedat.c, finegrafptr, coargrafptr); cheklocval |= dgraphMatchInit (&matedat, 0.5F); thrdlocmin = (cheklocval != 0) ? -1 : contextThreadNbr (contptr); /* TRICK: negative value on error */ if (MPI_Allreduce (&thrdlocmin, &thrdglbmin, 1, MPI_INT, MPI_MIN, finegrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsen: communication error (1)"); return (2); } if (thrdglbmin < 0) { /* On error */ dgraphMatchExit (&matedat); dgraphCoarsenExit (&matedat.c); return (2); } matedat.c.thrdmin = thrdglbmin; /* Minimum number of threads across all processes */ for (passnum = 0; passnum < passnbr; passnum ++) { ((passnum == 0) ? dgraphMatchHl : dgraphMatchHy) (&matedat); /* If first pass, process lightest vertices first */ if ((((finegrafptr->flagval & DGRAPHCOMMPTOP) != 0) ? dgraphMatchSyncPtop : dgraphMatchSyncColl) (&matedat) != 0) { errorPrint ("dgraphCoarsen: cannot perform matching"); dgraphMatchExit (&matedat); dgraphCoarsenExit (&matedat.c); return (2); } } dgraphMatchLy (&matedat); /* All remaining vertices are matched locally */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphMatchCheck (&matedat) != 0) { errorPrint ("dgraphCoarsen: invalid matching"); dgraphMatchExit (&matedat); dgraphCoarsenExit (&matedat.c); return (2); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ dgraphMatchExit (&matedat); vertsndnbr = edgesndnbr = 0; for (procnum = 0; procnum < finegrafptr->procglbnbr; procnum ++) { vertsndnbr += matedat.c.dcntloctab[procnum].vertsndnbr; edgesndnbr += matedat.c.dcntloctab[procnum].edgesndnbr; matedat.c.dcntloctab[procnum].vertlocnbr = matedat.c.multlocnbr; } matedat.c.vertsndnbr = vertsndnbr; matedat.c.edgesndnbr = edgesndnbr; if (MPI_Alltoall (matedat.c.dcntloctab, 3, GNUM_MPI, matedat.c.dcntglbtab, 3, GNUM_MPI, finegrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphCoarsen: communication error (2)"); return (2); } vertrcvnbr = edgercvnbr = 0; coargrafptr->procdsptab[0] = finegrafptr->baseval; /* Build vertex-to-process array */ for (procnum = 0; procnum < finegrafptr->procglbnbr; procnum ++) { Gnum proccntval; vertrcvnbr += matedat.c.dcntglbtab[procnum].vertsndnbr; edgercvnbr += matedat.c.dcntglbtab[procnum].edgesndnbr; proccntval = matedat.c.dcntglbtab[procnum].vertlocnbr; coargrafptr->proccnttab[procnum] = proccntval; coargrafptr->procdsptab[procnum + 1] = coargrafptr->procdsptab[procnum] + proccntval; } coargrafptr->vertlocnbr = matedat.c.multlocnbr; coargrafptr->vertglbnbr = coargrafptr->procdsptab[finegrafptr->procglbnbr] - finegrafptr->baseval; matedat.c.vertrcvnbr = vertrcvnbr; matedat.c.edgercvnbr = edgercvnbr; if (coargrafptr->vertglbnbr > coarvertmax) { /* If coarsening ratio not met */ dgraphCoarsenExit (&matedat.c); return (1); } if (matedat.c.multloctmp != NULL) { /* If we allocated the multinode array */ matedat.c.multloctmp = matedat.c.multloctab = memRealloc (matedat.c.multloctab, matedat.c.multlocnbr * sizeof (DgraphCoarsenMulti)); /* Resize multinode array */ } if (dgraphCoarsenBuild (&matedat.c) != 0) { /* Build coarse graph */ dgraphCoarsenExit (&matedat.c); return (2); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (coargrafptr) != 0) { /* Check graph consistency */ errorPrint ("dgraphCoarsen: inconsistent graph data"); dgraphFree (coargrafptr); return (2); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ matedat.c.multloctmp = NULL; /* So that it will not be freed */ dgraphCoarsenExit (&matedat.c); /* Free all other temporary arrays */ o = 0; /* Assume everything is now all right */ if (((flagval & DGRAPHCOARSENFOLDDUP) != 0) && /* If some form of folding is requested */ (coargrafptr->procglbnbr >= 2)) { /* And if there is need to it */ Dgraph coargrafdat; /* Coarse graph data before folding */ DgraphCoarsenMulti * coarmultptr; /* Pointer to folded multinode array */ MPI_Datatype coarmultype; MPI_Type_contiguous (2, GNUM_MPI, &coarmultype); /* Define type for MPI transfer */ MPI_Type_commit (&coarmultype); /* Commit new type */ coargrafdat = *coargrafptr; /* Copy unfolded coarse graph data to save area */ coarmultptr = NULL; /* Assume we will not get a multinode array */ if ((flagval & DGRAPHCOARSENFOLDDUP) == DGRAPHCOARSENFOLD) { /* Do a simple folding */ memSet (coargrafptr, 0, sizeof (Dgraph)); /* Also reset procglbnbr for unused processes */ o = dgraphFold (&coargrafdat, 0, coargrafptr, (void *) matedat.c.multloctab, (void **) (void *) &coarmultptr, coarmultype); } else { /* Do a duplicant-folding */ int loopval; o = dgraphFoldDup (&coargrafdat, coargrafptr, (void *) matedat.c.multloctab, (void **) (void *) &coarmultptr, coarmultype, contptr); loopval = contextIntRandVal (contptr, finegrafptr->proclocnum + contextIntRandVal (contptr, finegrafptr->proclocnum * 2 + 1) + 1); while (loopval --) /* Desynchronize pseudo-random generator across processes */ contextIntRandVal (contptr, 2); } dgraphExit (&coargrafdat); /* Free unfolded graph */ MPI_Type_free (&coarmultype); if (*multlocptr == NULL) /* If unfolded multinode array was not user-provided, free it */ memFree (matedat.c.multloctab); *multlocptr = coarmultptr; /* Return folded multinode array or NULL */ } else /* No folding at all */ *multlocptr = matedat.c.multloctab; /* Return un-based pointer (maybe the same as initially user-provided) */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_coarsen.h000066400000000000000000000264731514310134000270610ustar00rootroot00000000000000/* Copyright 2007-2009,2012,2014,2018,2020,2021,2023,2024 Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_coarsen.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This file implements the distributed **/ /** graph coarsening method. **/ /** **/ /** DATES : # Version 5.0 : from : 27 Jul 2005 **/ /** to : 24 feb 2007 **/ /** # Version 5.1 : from : 11 nov 2008 **/ /** to : 26 may 2009 **/ /** # Version 6.0 : from : 18 sep 2012 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 17 jun 2021 **/ /** to : 17 jun 2021 **/ /** # Version 7.0 : from : 14 jan 2020 **/ /** to : 31 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Graph option flags. Their values must be equal to those defined in library.h and library_f.h +*/ #define DGRAPHCOARSENNONE 0x0000 /* No options set */ #define DGRAPHCOARSENFOLD 0x0100 /* Do folding without duplication */ #define DGRAPHCOARSENFOLDDUP 0x0300 /* Do folding with duplication */ #define DGRAPHCOARSENNOMERGE 0x4000 /* Do not merge isolated vertices */ /* ** The type and structure definitions. */ /*+ The multinode table element, which contains pairs of based indices of collapsed vertices. Both values are equal for uncollapsed vertices. +*/ typedef struct DgraphCoarsenMulti_ { Gnum vertglbnum[2]; /*+ Global indices of the collapsed vertices of a multinode +*/ } DgraphCoarsenMulti; /* This structure defines vertex data exchange cell. It can have many uses depending on the type of algorithm. */ typedef struct DgraphCoarsenVert_ { Gnum datatab[2]; /*+ Two values +*/ } DgraphCoarsenVert; /* This structure defines the inter-process vertex and edge count structure. At matching time, it records the amount of data to be sent to each neighbor process. */ typedef struct DgraphCoarsenCount_ { Gnum vertsndnbr; /*+ Number of vertices to send to this neighbor +*/ Gnum edgesndnbr; /*+ Number of edges to send to this neighbor +*/ Gnum vertlocnbr; /*+ Number of local vertices in this neighbor +*/ } DgraphCoarsenCount; /*+ A table made of such elements is used during coarsening to build the edge array of the new graph, after the labeling of the vertices. +*/ typedef struct DgraphCoarsenHash_ { Gnum vertorgnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum vertendnum; /*+ Other end vertex number +*/ Gnum edgelocnum; /*+ Number of corresponding edge +*/ } DgraphCoarsenHash; /*+ The thread-specific data block, which has two uses. Firstly, it helps define the repartition across threads of the adjacency lists received from the different neighbors. Secondly, it allows reduction of graph properties. +*/ typedef struct DgraphCoarsenThread_ { Gnum edgelocsum; /*+ Upper bound on sum of local (fine) edges for this thread and below +*/ Gnum velolocsum; /*+ Sum of vertex loads for each thread, for final reduce-sum operation +*/ Gnum edgelocnbr; /*+ Number of edges for each thread, for final reduce-sum operation +*/ Gnum degrlocmax; /*+ Maximum degree for each thread, for final reduce-max operation +*/ int retuval; /*+ Return value +*/ } DgraphCoarsenThread; /*+ This structure gathers all data necessary to the proper execution of the coarsening and matching routines. +*/ typedef struct DgraphCoarsenData_ { int flagval; /*+ Flag value +*/ Dgraph * finegrafptr; /*+ Pointer to fine graph +*/ Dgraph * coargrafptr; /*+ Pointer to coarse graph which is built +*/ int * coarprvptr; /*+ Pointer to coarse private data to free in case of error +*/ DgraphCoarsenVert * vrcvdattab; /*+ Area reserved for receiving vertex messages +*/ DgraphCoarsenVert * vsnddattab; /*+ Area reserved for sending vertex messages +*/ int * vrcvcnttab; /*+ Count data for vertex receive sub-arrays +*/ int * vsndcnttab; /*+ Count data for vertex send sub-arrays +*/ int * vrcvdsptab; /*+ Displacement for vertex receive sub-arrays [+1] +*/ int * vsnddsptab; /*+ Displacement data for vertex send sub-arrays [+1] +*/ int * nrcvidxtab; /*+ Count array for neighbor receive sub-arrays +*/ int * nsndidxtab; /*+ Count array for neighbor send sub-arrays +*/ MPI_Request * nrcvreqtab; /*+ Request array for receive requests +*/ MPI_Request * nsndreqtab; /*+ TRICK: nsndreqtab = (nrcvreqtab + procngbnbr) +*/ int * procgsttax; /*+ Array giving the neighbor process index of each ghost vertex +*/ int procngbnxt; /*+ Index of first neighbor of higher rank than current process +*/ DgraphCoarsenCount * dcntloctab; /*+ Count array for sending vertices and edges +*/ DgraphCoarsenCount * dcntglbtab; /*+ Count array for receiving vertices and edges +*/ Gnum * coargsttax; /*+ Fine-to-coarse vertex index array +*/ DgraphCoarsenMulti * multloctmp; /*+ Pointer to multloctab structure to free (if any) +*/ DgraphCoarsenMulti * multloctab; /*+ Structure which contains the result of the matching +*/ Gnum multlocnbr; /*+ Index of next multinode to be created +*/ #ifdef SCOTCH_DEBUG_DGRAPH2 Gnum multlocsiz; /*+ Size of allocated multinode array +*/ #endif /* SCOTCH_DEBUG_DGRAPH2 */ Gnum vertrcvnbr; /*+ Number of fine vertices to be received +*/ Gnum edgercvnbr; /*+ Number of fine edges to be received +*/ Gnum edgekptnbr; /*+ Upper bound on number of edges kept from finer graph +*/ Gnum vertsndnbr; /*+ Number of fine vertices to be sent +*/ Gnum edgesndnbr; /*+ Number of fine edges to be sent +*/ Gnum * ercvdattab; /*+ Pointer to adjacency exchange receive array +*/ int * ercvdsptab; /*+ Displacement data for adjacency exchange receive array +*/ #if (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) int * ercvcnttab; /*+ Count data for adjacency exchange receive array +*/ #endif /* (defined SCOTCH_PTHREAD) && (! defined DGRAPHCOARSENNOTHREAD) */ Gnum degrlocmax; /*+ Local maximum degree of coarse graph +*/ Gnum coarhashmsk; /*+ Mask value of adjacency hash table (TRICK: size - 1) +*/ DgraphCoarsenThread * thrdtab; /*+ Optional array for adjacency splitting across threads +*/ int thrdmin; /*+ Minimum number of threads across all processes +*/ Context * contptr; /*+ Execution context +*/ } DgraphCoarsenData; /* ** The function prototypes. */ #ifdef SCOTCH_DGRAPH_COARSEN static int dgraphCoarsenInit (DgraphCoarsenData * restrict const, Dgraph * restrict const, Dgraph * restrict const); static void dgraphCoarsenExit (DgraphCoarsenData * restrict const); static int dgraphCoarsenBuild (DgraphCoarsenData * restrict const); #endif /* SCOTCH_DGRAPH_COARSEN */ int dgraphCoarsen (Dgraph * restrict const, Dgraph * restrict const, DgraphCoarsenMulti * restrict * const, const Gnum, const Gnum, const double, const int, Context * restrict const); Gnum dgraphCoarsenVertLocMax (const Dgraph * restrict const, const int); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_compact.c000066400000000000000000000127051514310134000270410ustar00rootroot00000000000000/* Copyright 2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_compact.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file creates compact graphs from **/ /** non-compact ones. **/ /** **/ /** DATES : # Version 7.0 : from : 14 sep 2021 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" /******************************/ /* */ /* Graph compacting routines. */ /* */ /******************************/ /* This routine creates grouped compact arrays for ** vertex and edge arrays. ** It returns: ** - 0 : if compact arrays have been created. ** - !0 : on error. */ int dgraphCompact2 ( const Dgraph * restrict const orggrafptr, /*+ Graph to compact +*/ Gnum * restrict * const cmpvertlocptr, /*+ Pointer to compact vertex array to build +*/ Gnum * restrict * const cmpedgelocptr, /*+ Pointer to compact edge array to build +*/ Gnum * restrict * const cmpedlolocptr) /*+ Pointer to compact edge load array to build +*/ { Gnum datasiz; Gnum cmpvertlocnum; Gnum * restrict cmpvertloctax; Gnum * restrict cmpedgeloctax; Gnum * restrict cmpedloloctax; Gnum cmpedgelocnum; const Gnum * restrict const orgvertloctax = orggrafptr->vertloctax; const Gnum * restrict const orgvendloctax = orggrafptr->vendloctax; const Gnum * restrict const orgedgeloctax = orggrafptr->edgeloctax; const Gnum * restrict const orgedloloctax = orggrafptr->edloloctax; datasiz = (orggrafptr->vertlocnbr + 1) + orggrafptr->edgelocnbr + ((orgedloloctax != NULL) ? orggrafptr->edgelocnbr : 0); if ((cmpvertloctax = memAlloc (datasiz * sizeof (Gnum))) == NULL) { errorPrint ("dgraphCompact2: out of memory"); return (1); } cmpvertloctax -= orggrafptr->baseval; cmpedgeloctax = cmpvertloctax + (orggrafptr->vertlocnbr + 1); cmpedloloctax = (orgedloloctax != NULL) ? (cmpedgeloctax + orggrafptr->edgelocnbr) : NULL; for (cmpvertlocnum = cmpedgelocnum = orggrafptr->baseval; cmpvertlocnum < orggrafptr->vertlocnnd; cmpvertlocnum ++) { /* For all local vertices */ Gnum degrval; Gnum orgedgelocnum; cmpvertloctax[cmpvertlocnum] = cmpedgelocnum; /* Set beginning of local edge sub-array */ orgedgelocnum = orgvertloctax[cmpvertlocnum]; degrval = orgvendloctax[cmpvertlocnum] - orgedgelocnum; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((cmpedgelocnum + degrval) > (orggrafptr->edgelocnbr + orggrafptr->baseval)) { errorPrint ("dgraphCompact2: internal error"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ memCpy (cmpedgeloctax + cmpedgelocnum, orgedgeloctax + orgedgelocnum, degrval * sizeof (Gnum)); /* Copy edge sub-array */ if (orgedloloctax != NULL) memCpy (cmpedloloctax + cmpedgelocnum, orgedloloctax + orgedgelocnum, degrval * sizeof (Gnum)); /* Copy edge load sub-array */ cmpedgelocnum += degrval; /* Advance compact edge index by number of end vertices */ } cmpvertloctax[cmpvertlocnum] = cmpedgelocnum; /* Set end of compact edge array */ *cmpvertlocptr = cmpvertloctax; *cmpedgelocptr = cmpedgeloctax; *cmpedlolocptr = cmpedloloctax; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_fold.c000066400000000000000000001121441514310134000263350ustar00rootroot00000000000000/* Copyright 2007-2011,2014,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_fold.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the distributed **/ /** source graph folding function. **/ /** **/ /** DATES : # Version 5.0 : from : 10 aug 2006 **/ /** to : 27 jun 2008 **/ /** # Version 5.1 : from : 12 nov 2008 **/ /** to : 04 jan 2011 **/ /** # Version 6.0 : from : 28 sep 2014 **/ /** to : 28 sep 2014 **/ /** # Version 6.1 : from : 18 jun 2021 **/ /** to : 19 jun 2021 **/ /** # Version 7.0 : from : 14 sep 2021 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_fold.h" #include "dgraph_fold_comm.h" /******************************/ /* */ /* This routine handles */ /* distributed source graphs. */ /* */ /******************************/ /* This routine builds a folded graph by merging graph ** data to the processes of the first half or to the ** second half of the communicator. ** The key value of the folded communicator is not ** changed as it is not relevant. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphFold ( const Dgraph * restrict const orggrafptr, const int partval, /*+ 0 for first half, 1 for second half +*/ Dgraph * restrict const fldgrafptr, const void * restrict const orgdataptr, /*+ Un-based array of data which must be folded, e.g. coarmulttab +*/ void ** const flddataptr, /*+ Un-based array of data which must be folded, e.g. coarmulttab [norestrict] +*/ MPI_Datatype datatype) { int fldprocnbr; int fldprocnum; /* Index of local process in folded communicator */ int fldproccol; /* Color of receiver or not wanted in communicator */ MPI_Comm fldproccomm; /* Communicator of folded part */ int o; fldprocnbr = (orggrafptr->procglbnbr + 1) / 2; fldprocnum = orggrafptr->proclocnum; if (partval == 1) { fldprocnum = fldprocnum - fldprocnbr; fldprocnbr = orggrafptr->procglbnbr - fldprocnbr; } fldproccol = ((fldprocnum >= 0) && (fldprocnum < fldprocnbr)) ? 0 : MPI_UNDEFINED; if (MPI_Comm_split (orggrafptr->proccomm, fldproccol, fldprocnum, &fldproccomm) != MPI_SUCCESS) { errorPrint ("dgraphFold: communication error"); return (1); } o = dgraphFold2 (orggrafptr, partval, fldgrafptr, fldproccomm, orgdataptr, flddataptr, datatype); fldgrafptr->pkeyglbval = fldproccol; /* Key of folded communicator is always zero if no duplication occurs */ return (o); } int dgraphFold2 ( const Dgraph * restrict const orggrafptr, const int partval, /*+ 0 for first half, 1 for second half +*/ Dgraph * const fldgrafptr, /*+ Folded graph structure to fill [norestrict:async] +*/ MPI_Comm fldproccomm, const void * restrict const orgdataptr, /*+ Un-based array of data which must be kept, e.g. coarmulttab +*/ void ** const flddataptr, /*+ Un-based array of data which must be kept, e.g. coarmulttab +*/ MPI_Datatype datatype) { Gnum * restrict orgvertloctax; /* Pointer to (possible compacted) vertex array */ Gnum * restrict orgedgeloctax; /* Pointer to (possible compacted) edge array */ Gnum * restrict orgedloloctax; /* Pointer to (possible compacted) edge load array */ int fldcommtypval; /* Type of communication for this process */ DgraphFoldCommData * restrict fldcommdattab; /* Array of two communication data */ Gnum * fldcommvrttab; /* Starting global send indices of communications [norestrict] */ Gnum * fldvertidxtab; /* Start indices of vertex arrays [norestrict] */ Gnum * fldedgeidxtab; /* Start indices of edge arrays [norestrict] */ Gnum * fldedgecnttab; /* Number of edges exchanged during each communication [norestrict] */ Gnum * fldedgecnptab; /* Temporary save for fldedgecnttab for MPI standard [norestrict] */ Gnum fldvertlocnbr; /* Number of vertices in local folded part */ Gnum fldedgelocsiz; /* (Upper bound of) number of edges in folded graph */ Gnum fldedlolocsiz; /* (Upper bound of) number of edge loads in folded graph */ int fldprocglbnbr; int fldproclocnum; /* Index of local process in folded communicator */ int fldvertadjnbr; Gnum * restrict fldvertadjtab; /* Array of global start indices for adjustment slots */ Gnum * restrict fldvertdlttab; /* Array of index adjustments for original global indices */ int cheklocval; int chekglbval; int commmax; int commnbr; int requnbr; MPI_Request * restrict requtab; int infosiz; /* Size of one information */ const Gnum orgprocvrtbas = orggrafptr->procvrttab[orggrafptr->proclocnum]; if ((orggrafptr->flagval & DGRAPHHASVENDLOC) != 0) { /* If graph is not compact */ if (dgraphCompact2 (orggrafptr, &orgvertloctax, &orgedgeloctax, &orgedloloctax) != 0) { errorPrint ("dgraphFold2: cannot compact graph"); return (1); } } else { /* Graph is compact; take arrays as is */ orgvertloctax = orggrafptr->vertloctax; orgedgeloctax = orggrafptr->edgeloctax; orgedloloctax = orggrafptr->edloloctax; } fldprocglbnbr = (orggrafptr->procglbnbr + 1) / 2; if (partval == 1) { fldproclocnum = orggrafptr->proclocnum - fldprocglbnbr; fldprocglbnbr = orggrafptr->procglbnbr - fldprocglbnbr; } else fldproclocnum = orggrafptr->proclocnum; fldcommtypval = ((fldproclocnum >= 0) && (fldproclocnum < fldprocglbnbr)) ? DGRAPHFOLDCOMMRECV : DGRAPHFOLDCOMMSEND; if (orgdataptr != NULL) MPI_Type_size (datatype, &infosiz); cheklocval = 0; fldcommdattab = NULL; fldvertidxtab = NULL; if (fldcommtypval == DGRAPHFOLDCOMMRECV) { /* If we are going to receive */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (fldgrafptr == NULL) { errorPrint ("dgraphFold2: invalid parameters (1)"); return (1); } if (fldproccomm == MPI_COMM_NULL) { errorPrint ("dgraphFold2: invalid parameters (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ memSet (fldgrafptr, 0, sizeof (Dgraph)); /* Pre-initialize graph fields */ fldgrafptr->proccomm = fldproccomm; fldgrafptr->procglbnbr = fldprocglbnbr; fldgrafptr->proclocnum = fldproclocnum; fldgrafptr->flagval = DGRAPHFREEALL | DGRAPHVERTGROUP | DGRAPHEDGEGROUP | DGRAPHFREECOMM; /* For premature freeing on error (folded communicator created by caller) */ if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &fldgrafptr->procdsptab, (size_t) ((fldprocglbnbr + 1) * sizeof (Gnum)), &fldgrafptr->proccnttab, (size_t) (fldprocglbnbr * sizeof (Gnum)), &fldgrafptr->procngbtab, (size_t) (fldprocglbnbr * sizeof (int)), &fldgrafptr->procrcvtab, (size_t) (fldprocglbnbr * sizeof (int)), &fldgrafptr->procsndtab, (size_t) (fldprocglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphFold2: out of memory (1)"); cheklocval = 1; } else if (dgraphFoldComm (orggrafptr, partval, &commmax, &fldcommtypval, &fldcommdattab, &fldcommvrttab, /* Process can become a sender receiver */ fldgrafptr->proccnttab, &fldvertadjnbr, &fldvertadjtab, &fldvertdlttab) != 0) { errorPrint ("dgraphFold2: cannot compute folding communications (1)"); cheklocval = 1; } else { Gnum fldvelolocnbr; if ((fldcommtypval & DGRAPHFOLDCOMMSEND) == 0) { /* If process is a normal receiver */ int i; for (i = 0, fldvertlocnbr = 0; (i < commmax) && (fldcommdattab[i].procnum != -1); i ++) fldvertlocnbr += fldcommdattab[i].vertnbr; commnbr = i; fldedgelocsiz = orggrafptr->edgeglbsmx * i; /* Upper bound on received edges */ if ((orggrafptr->degrglbmax > 0) && (fldvertlocnbr < (fldedgelocsiz / orggrafptr->degrglbmax))) /* Choose best upper bound on number of edges (avoid multiply overflow) */ fldedgelocsiz = fldvertlocnbr * orggrafptr->degrglbmax; fldedgelocsiz += orggrafptr->edgelocnbr; /* Add local edges and vertices */ fldvertlocnbr += orggrafptr->vertlocnbr; } else { /* Process is a sender receiver */ fldvertlocnbr = fldcommvrttab[0] - orgprocvrtbas; /* Communications will remove vertices */ fldedgelocsiz = orgvertloctax[fldvertlocnbr + orggrafptr->baseval] - orggrafptr->baseval; /* Exact number of edges */ fldgrafptr->edgelocnbr = fldgrafptr->edgelocsiz = fldedgelocsiz; } fldvelolocnbr = (orggrafptr->veloloctax != NULL) ? fldvertlocnbr : 0; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph public data */ &fldgrafptr->vertloctax, (size_t) ((fldvertlocnbr + 1) * sizeof (Gnum)), &fldgrafptr->vnumloctax, (size_t) ( fldvertlocnbr * sizeof (Gnum)), &fldgrafptr->veloloctax, (size_t) ( fldvelolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphFold2: out of memory (2)"); cheklocval = 1; } else if (fldgrafptr->vertloctax -= orggrafptr->baseval, fldgrafptr->vnumloctax -= orggrafptr->baseval, fldgrafptr->vendloctax = fldgrafptr->vertloctax + 1, /* Folded graph is compact */ fldgrafptr->veloloctax = ((orggrafptr->veloloctax != NULL) ? (fldgrafptr->veloloctax - orggrafptr->baseval) : NULL), fldedlolocsiz = ((orgedloloctax != NULL) ? fldedgelocsiz : 0), (fldgrafptr->edgeloctax = memAlloc ((fldedgelocsiz + fldedlolocsiz) * sizeof (Gnum))) == NULL) { /* Allocate single array for both edge arrays */ errorPrint ("dgraphFold2: out of memory (3)"); cheklocval = 1; } else { if (orgdataptr != NULL) { if ((*flddataptr = (byte *) memAlloc (fldvertlocnbr * infosiz)) == NULL) { errorPrint ("dgraphFold2: out of memory (4)"); cheklocval = 1; } } fldgrafptr->edgeloctax -= orggrafptr->baseval; /* Do not care about the validity of edloloctax at this stage */ } } } else { /* Process is a sender */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if (fldproccomm != MPI_COMM_NULL) { errorPrint ("dgraphFold2: invalid parameters (3)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ if (dgraphFoldComm (orggrafptr, partval, &commmax, &fldcommtypval, &fldcommdattab, &fldcommvrttab, NULL, NULL, NULL, NULL) != 0) { errorPrint ("dgraphFold2: cannot compute folding communications (2)"); cheklocval = 1; } } if ((cheklocval == 0) && (memAllocGroup ((void **) (void *) /* Allocate folding data */ &fldvertidxtab, (size_t) (commmax * sizeof (Gnum)), &fldedgeidxtab, (size_t) (commmax * sizeof (Gnum)), &fldedgecnttab, (size_t) (commmax * sizeof (Gnum)), &fldedgecnptab, (size_t) (commmax * sizeof (Gnum)), &requtab, (size_t) (commmax * DGRAPHFOLDTAGNBR * sizeof (MPI_Request)), NULL) == NULL)) { errorPrint ("dgraphFold2: out of memory (5)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, orggrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (1)"); chekglbval = 1; } #else /* SCOTCH_DEBUG_DGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (chekglbval != 0) { if ((fldcommtypval & DGRAPHFOLDCOMMRECV) != 0) { if (fldvertidxtab != NULL) memFree (fldvertidxtab); /* Free group leader */ if (fldcommdattab != NULL) memFree (fldcommdattab); dgraphExit (fldgrafptr); } return (1); } requnbr = 0; /* Communications without further processing are placed at beginning of array */ if ((fldcommtypval & DGRAPHFOLDCOMMSEND) != 0) { /* If process is (also) a sender */ Gnum vertsndbas; Gnum vertsndnbr; int i; vertsndnbr = ((fldcommtypval & DGRAPHFOLDCOMMRECV) != 0) ? (fldcommvrttab[0] - orgprocvrtbas) : 0; /* If process is also a receiver, start sending after kept vertices */ for (i = 0, vertsndbas = orggrafptr->baseval; /* For all send communications to perform */ (i < commmax) && (fldcommdattab[i].procnum != -1) && (cheklocval == 0); i ++) { vertsndbas += vertsndnbr; vertsndnbr = fldcommdattab[i].vertnbr; fldvertidxtab[i] = vertsndbas; fldedgeidxtab[i] = orgvertloctax[vertsndbas]; fldedgecnptab[i] = /* Save fldedgecnttab in temporary array to read it while MPI communication in progress */ fldedgecnttab[i] = orgvertloctax[vertsndbas + vertsndnbr] - orgvertloctax[vertsndbas]; /* Graph is compact */ if (MPI_Isend (&fldedgecnptab[i], 1, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVLBLLOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (2)"); cheklocval = 1; } } commnbr = i; for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Isend (orgvertloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVERTLOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (3)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Isend (orgedgeloctax + fldedgeidxtab[i], fldedgecnttab[i], GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGEDGELOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (4)"); cheklocval = 1; } } if (orggrafptr->veloloctax != NULL) { for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Isend (orggrafptr->veloloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVELOLOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (5)"); cheklocval = 1; } } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { int procsndnum; /* Rank of process to send to */ procsndnum = fldcommdattab[i].procnum; if ((orgedloloctax != NULL) && (MPI_Isend (orgedloloctax + fldedgeidxtab[i], fldedgecnttab[i], GNUM_MPI, procsndnum, TAGFOLD + TAGEDLOLOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("dgraphFold2: communication error (6)"); cheklocval = 1; } else if ((orggrafptr->vnumloctax != NULL) && (MPI_Isend (orggrafptr->vnumloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, procsndnum, TAGFOLD + TAGVNUMLOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("dgraphFold2: communication error (7)"); cheklocval = 1; } else if ((orgdataptr != NULL) && (MPI_Isend ((byte *) orgdataptr + ((fldvertidxtab[i] - orggrafptr->baseval) * infosiz), fldcommdattab[i].vertnbr, datatype, procsndnum, TAGFOLD + TAGDATALOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("dgraphFold2: communication error (8)"); cheklocval = 1; } } } /* Communications of sender-receivers will be completed in the receiving phase */ if ((fldcommtypval & DGRAPHFOLDCOMMRECV) != 0) { /* If process is (also) a receiver */ Gnum orgvertlocnbr; Gnum orgvertlocnnd; Gnum orgvertlocmin; Gnum orgvertlocmax; Gnum fldvertlocadj; Gnum fldvelolocsum; Gnum * restrict fldedgeloctax; Gnum fldedgelocnum; Gnum fldedgelocnnd; int fldprocnum; int procngbmin; int procngbmax; int i; fldgrafptr->procvrttab = fldgrafptr->procdsptab; /* Graph does not have holes */ fldgrafptr->procdsptab[0] = orggrafptr->baseval; /* Build private data of folded graph and array */ for (fldprocnum = 0; fldprocnum < fldprocglbnbr; fldprocnum ++) { /* New subdomain indices start from baseval */ fldgrafptr->procdsptab[fldprocnum + 1] = fldgrafptr->procdsptab[fldprocnum] + fldgrafptr->proccnttab[fldprocnum]; } if ((fldcommtypval & DGRAPHFOLDCOMMSEND) == 0) { /* If process is a normal receiver */ Gnum fldedgelocbas; Gnum fldvertrcvbas; Gnum fldvertrcvnbr; for (i = 0, fldvertrcvbas = orggrafptr->vertlocnnd, fldvertrcvnbr = 0; /* For all receive communications to perform */ (i < commnbr) && (cheklocval == 0); i ++) { fldvertrcvbas += fldvertrcvnbr; fldvertrcvnbr = fldcommdattab[i].vertnbr; fldvertidxtab[i] = fldvertrcvbas; if (MPI_Irecv (&fldedgecnttab[i], 1, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVLBLLOCTAB, orggrafptr->proccomm, &requtab[DGRAPHFOLDTAGENBR * commmax + i]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (9)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { /* Let these communications progress while we process the edge size messages */ if (MPI_Irecv (fldgrafptr->vertloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVERTLOCTAB, orggrafptr->proccomm, &requtab[DGRAPHFOLDTAGVERT * commmax + i]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (10)"); cheklocval = 1; } } MPI_Waitall (commnbr, &requtab[DGRAPHFOLDTAGENBR * commmax], MPI_STATUSES_IGNORE); for (i = 0, fldedgelocbas = orgvertloctax[orggrafptr->vertlocnnd]; (i < commnbr) && (cheklocval == 0); i ++) { fldedgeidxtab[i] = fldedgelocbas; fldedgelocbas += fldedgecnttab[i]; if (MPI_Irecv (fldgrafptr->edgeloctax + fldedgeidxtab[i], fldedgecnttab[i], GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGEDGELOCTAB, orggrafptr->proccomm, &requtab[DGRAPHFOLDTAGEDGE * commmax + i]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (11)"); cheklocval = 1; } } fldgrafptr->edgelocnbr = /* Get number of local edges */ fldgrafptr->edgelocsiz = fldedgelocbas - orggrafptr->baseval; if (orggrafptr->veloloctax != NULL) { for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Irecv (fldgrafptr->veloloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVELOLOCTAB, orggrafptr->proccomm, &requtab[DGRAPHFOLDTAGVELO * commmax + i]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (12)"); cheklocval = 1; } } } if (orgedloloctax != NULL) { fldgrafptr->edloloctax = fldgrafptr->edgeloctax + fldgrafptr->edgelocnbr; /* Set start index of edge load array */ for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Irecv (fldgrafptr->edloloctax + fldedgeidxtab[i], fldedgecnttab[i], GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGEDLOLOCTAB, orggrafptr->proccomm, &requtab[DGRAPHFOLDTAGEDLO * commmax + i]) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (13)"); cheklocval = 1; } } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { int procrcvnum; /* Rank of process to receive from */ Gnum vertrcvnbr; procrcvnum = fldcommdattab[i].procnum; vertrcvnbr = fldcommdattab[i].vertnbr; if ((orggrafptr->vnumloctax != NULL) && (MPI_Irecv (fldgrafptr->vnumloctax + fldvertidxtab[i], vertrcvnbr, GNUM_MPI, procrcvnum, TAGFOLD + TAGVNUMLOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("dgraphFold2: communication error (14)"); cheklocval = 1; } else if ((orgdataptr != NULL) && (MPI_Irecv ((byte *) (*flddataptr) + ((fldvertidxtab[i] - orggrafptr->baseval) * infosiz), vertrcvnbr, datatype, procrcvnum, TAGFOLD + TAGDATALOCTAB, orggrafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("dgraphFold2: communication error (15)"); cheklocval = 1; } } orgvertlocnbr = orggrafptr->vertlocnbr; /* Process all local vertices */ orgvertlocnnd = orggrafptr->vertlocnnd; if (orggrafptr->vnumloctax == NULL) { /* If original graph does not have vertex numbers, create remote parts of vertex number array */ Gnum fldvertlocnum; Gnum fldvertlocadj; int i; Gnum * restrict const fldvnumloctax = fldgrafptr->vnumloctax; for (i = 0, fldvertlocnum = orgvertlocnnd; i < commnbr; i ++) { Gnum fldvertlocnnd; for (fldvertlocnnd = fldvertlocnum + fldcommdattab[i].vertnbr, fldvertlocadj = fldcommvrttab[i]; fldvertlocnum < fldvertlocnnd; fldvertlocnum ++) fldvnumloctax[fldvertlocnum] = fldvertlocadj ++; } } fldedgelocnnd = orgvertloctax[orggrafptr->vertlocnnd]; fldvelolocsum = orggrafptr->velolocsum; /* In case there are vertex loads, we keep all of existing load */ } else { /* Receiver process is also a sender */ orgvertlocnbr = fldvertlocnbr; /* Process only remaining local vertices */ orgvertlocnnd = fldvertlocnbr + orggrafptr->baseval; if (orggrafptr->veloloctax != NULL) { /* If original graph has vertex loads */ Gnum fldvertlocnum; for (fldvertlocnum = orggrafptr->baseval, fldvelolocsum = 0; /* Accumulate load sum of remaining part */ fldvertlocnum < orgvertlocnnd; fldvertlocnum ++) fldvelolocsum += orggrafptr->veloloctax[fldvertlocnum]; } fldedgelocnnd = orgvertloctax[orgvertlocnnd]; /* Reorder remaining local part of edge array */ if (orgedloloctax != NULL) fldgrafptr->edloloctax = fldgrafptr->edgeloctax + fldgrafptr->edgelocnbr; /* Set start index of edge load array */ commnbr = 0; /* Turn sender-receiver into normal receiver without any communications to perform */ } for (procngbmin = 0, procngbmax = fldvertadjnbr; /* Initialize search accelerator */ procngbmax - procngbmin > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbmin) / 2; if (fldvertadjtab[procngbmed] <= orgprocvrtbas) procngbmin = procngbmed; else procngbmax = procngbmed; } orgvertlocmin = fldvertadjtab[procngbmin]; orgvertlocmax = fldvertadjtab[procngbmax]; fldvertlocadj = fldvertdlttab[procngbmin]; fldedgeloctax = fldgrafptr->edgeloctax; for (fldedgelocnum = orggrafptr->baseval; fldedgelocnum < fldedgelocnnd; fldedgelocnum ++) { Gnum orgvertlocend; orgvertlocend = orgedgeloctax[fldedgelocnum]; if ((orgvertlocend >= orgvertlocmin) && /* If end vertex is local */ (orgvertlocend < orgvertlocmax)) fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertlocadj; else { /* End vertex is not local */ int procngbnum; int procngbmax; for (procngbnum = 0, procngbmax = fldvertadjnbr; procngbmax - procngbnum > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (fldvertadjtab[procngbmed] <= orgvertlocend) procngbnum = procngbmed; else procngbmax = procngbmed; } fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertdlttab[procngbnum]; } } if (orggrafptr->veloloctax != NULL) /* If original graph has vertex loads */ memCpy (fldgrafptr->veloloctax + orggrafptr->baseval, /* Copy local part of vertex load array */ orggrafptr->veloloctax + orggrafptr->baseval, orgvertlocnbr * sizeof (Gnum)); if (orgedloloctax != NULL) /* If original graph has edge loads */ memCpy (fldgrafptr->edloloctax + orggrafptr->baseval, /* Copy local part of edge load array */ orgedloloctax + orggrafptr->baseval, (orgvertloctax[orgvertlocnnd] - orggrafptr->baseval) * sizeof (Gnum)); if (orggrafptr->vnumloctax != NULL) /* If original graph has vertex numbers */ memCpy (fldgrafptr->vnumloctax + orggrafptr->baseval, /* Copy local part of vertex number array */ orggrafptr->vnumloctax + orggrafptr->baseval, orgvertlocnbr * sizeof (Gnum)); else { /* Build local part of vertex number array */ Gnum fldvertlocnum; Gnum fldvertlocadj; for (fldvertlocnum = orggrafptr->baseval, fldvertlocadj = orgprocvrtbas; fldvertlocnum < orgvertlocnnd; fldvertlocnum ++) fldgrafptr->vnumloctax[fldvertlocnum] = fldvertlocadj ++; } memCpy (fldgrafptr->vertloctax + orggrafptr->baseval, /* Copy local part of vertex array, since it is compact */ orgvertloctax + orggrafptr->baseval, orgvertlocnbr * sizeof (Gnum)); /* Last value is not copied */ fldgrafptr->vertloctax[fldvertlocnbr + orggrafptr->baseval] = fldgrafptr->edgelocnbr + orggrafptr->baseval; if (orgdataptr != NULL) /* If additional data present */ memCpy ((byte *) (*flddataptr), (byte *) orgdataptr, orgvertlocnbr * infosiz); /* Copy local part */ for (i = 0; i < commnbr; i ++) { int j; if (MPI_Waitany (commnbr, &requtab[DGRAPHFOLDTAGVERT * commmax], &j, MPI_STATUS_IGNORE) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (16)"); cheklocval = 1; } else { /* Adjust first remote part of vertex array */ Gnum fldvertlocnum; Gnum fldvertlocnnd; Gnum fldvertlocadj; Gnum * restrict const fldvertloctax = fldgrafptr->vertloctax; fldvertlocnum = fldvertidxtab[j]; fldvertlocadj = fldedgeidxtab[j] - fldgrafptr->vertloctax[fldvertlocnum]; for (fldvertlocnnd = fldvertlocnum + fldcommdattab[j].vertnbr; fldvertlocnum < fldvertlocnnd; fldvertlocnum ++) fldvertloctax[fldvertlocnum] += fldvertlocadj; } } for (i = 0; i < commnbr; i ++) { MPI_Status statdat; int j; if (MPI_Waitany (commnbr, &requtab[DGRAPHFOLDTAGEDGE * commmax], &j, &statdat) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (17)"); cheklocval = 1; } else if (cheklocval == 0) { /* Adjust remote part(s) of edge array */ Gnum orgvertlocmin; Gnum orgvertlocmax; Gnum fldvertlocadj; Gnum * restrict fldedgeloctax; int procngbnum; int procngbmax; #ifdef SCOTCH_DEBUG_DGRAPH2 int fldedgercvnbr; MPI_Get_count (&statdat, GNUM_MPI, &fldedgercvnbr); if (fldedgercvnbr != fldedgecnttab[j]) { errorPrint ("dgraphFold2: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ for (procngbnum = 0, procngbmax = fldvertadjnbr; /* Initialize search accelerator */ procngbmax - procngbnum > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (fldvertadjtab[procngbmed] <= fldcommvrttab[j]) procngbnum = procngbmed; else procngbmax = procngbmed; } orgvertlocmin = fldvertadjtab[procngbnum]; orgvertlocmax = fldvertadjtab[procngbmax]; fldvertlocadj = fldvertdlttab[procngbnum]; fldedgeloctax = fldgrafptr->edgeloctax; for (fldedgelocnum = fldedgeidxtab[j], fldedgelocnnd = fldedgelocnum + fldedgecnttab[j]; fldedgelocnum < fldedgelocnnd; fldedgelocnum ++) { /* Reorder end vertices */ Gnum orgvertlocend; #ifdef SCOTCH_DEBUG_DGRAPH2 if (fldedgelocnum >= (fldgrafptr->edgelocnbr + orggrafptr->baseval)) { errorPrint ("dgraphFold2: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ orgvertlocend = fldedgeloctax[fldedgelocnum]; if ((orgvertlocend >= orgvertlocmin) && /* If end vertex is local */ (orgvertlocend < orgvertlocmax)) fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertlocadj; else { int procngbnum; int procngbmax; for (procngbnum = 0, procngbmax = fldvertadjnbr; procngbmax - procngbnum > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (fldvertadjtab[procngbmed] <= orgvertlocend) procngbnum = procngbmed; else procngbmax = procngbmed; } fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertdlttab[procngbnum]; } } } } if (orggrafptr->veloloctax == NULL) /* If no vertex loads, reset graph vertex load to number of vertices */ fldvelolocsum = fldvertlocnbr; else { /* Graph has vertex loads and load of local part has already been computed */ for (i = 0; i < commnbr; i ++) { int j; if (MPI_Waitany (commnbr, &requtab[DGRAPHFOLDTAGVELO * commmax], &j, MPI_STATUS_IGNORE) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (18)"); cheklocval = 1; } else if (cheklocval == 0) { /* Accumulate vertex loads for received vertex load array */ Gnum fldvertlocnum; Gnum fldvertlocnnd; for (fldvertlocnum = fldvertidxtab[j], fldvertlocnnd = fldvertlocnum + fldcommdattab[j].vertnbr; fldvertlocnum < fldvertlocnnd; fldvertlocnum ++) fldvelolocsum += fldgrafptr->veloloctax[fldvertlocnum]; } } } if ((fldcommtypval & DGRAPHFOLDCOMMSEND) == 0) { /* If process is a normal receiver, edge arrays may have been oversized */ Gnum fldedgeloctmp; fldedgeloctmp = fldgrafptr->edgelocnbr; if (orgedloloctax != NULL) { fldedgeloctmp *= 2; if (MPI_Waitall (commnbr, &requtab[DGRAPHFOLDTAGEDLO * commmax], MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait for edge load sub-arrays */ errorPrint ("dgraphFold2: communication error (19)"); cheklocval = 1; } } fldgrafptr->edgeloctax = memRealloc (fldgrafptr->edgeloctax + orggrafptr->baseval, fldedgeloctmp * sizeof (Gnum)); fldgrafptr->edgeloctax -= orggrafptr->baseval; if (orgedloloctax != NULL) fldgrafptr->edloloctax = fldgrafptr->edgeloctax + fldgrafptr->edgelocnbr; } fldgrafptr->baseval = orggrafptr->baseval; fldgrafptr->vertlocnbr = fldvertlocnbr; fldgrafptr->vertlocnnd = fldvertlocnbr + orggrafptr->baseval; fldgrafptr->velolocsum = fldvelolocsum; fldgrafptr->degrglbmax = orggrafptr->degrglbmax; if (dgraphBuild4 (fldgrafptr) != 0) { errorPrint ("dgraphFold2: cannot build folded graph"); dgraphExit (fldgrafptr); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (fldgrafptr) != 0) { /* Check graph consistency; vnumloctab is not checked so no need to wait for it */ errorPrint ("dgraphFold2: internal error (3)"); dgraphExit (fldgrafptr); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } memFree (fldcommdattab); /* Free group leader */ if (MPI_Waitall (requnbr, requtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait for all graph data to arrive because graph could be freed afterwards */ errorPrint ("dgraphFold2: communication error (20)"); cheklocval = 1; } memFree (fldvertidxtab); /* Free group leader including request array */ if (orgvertloctax != orggrafptr->vertloctax) memFree (orgvertloctax + orggrafptr->baseval); #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, orggrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphFold2: communication error (21)"); chekglbval = 1; } #else /* SCOTCH_DEBUG_DGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH1 */ return (chekglbval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_fold.h000066400000000000000000000066171514310134000263510ustar00rootroot00000000000000/* Copyright 2007-2009 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_fold.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed source graph **/ /** folding routines. **/ /** **/ /** # Version 5.0 : from : 06 sep 2006 **/ /** to : 06 sep 2006 **/ /** # Version 5.1 : from : 31 dec 2008 **/ /** to : 01 jan 2009 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Slot indices used for point-to-point folding communications. First indices are used for communications without further processing. At the moment, there are two anonymous slots: the first one for vnumloctab, and the second one for vertinfotab. */ typedef enum DgraphFoldTag_ { DGRAPHFOLDTAGENBR = 2, /*+ Edge size message +*/ DGRAPHFOLDTAGVERT, /*+ vertloctab message +*/ DGRAPHFOLDTAGVELO, /*+ veloloctab message +*/ DGRAPHFOLDTAGEDGE, /*+ edgeloctab message +*/ DGRAPHFOLDTAGEDLO, /*+ edgeloctab message +*/ DGRAPHFOLDTAGNBR /*+ Number of tags +*/ } DgraphFoldTag; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_fold_comm.c000066400000000000000000001114031514310134000273450ustar00rootroot00000000000000/* Copyright 2007,2009-2011,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_fold_comm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes the communication **/ /** pattern of the distributed graph **/ /** folding process. **/ /** **/ /** DATES : # Version 5.0 : from : 23 may 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 18 jan 2009 **/ /** to : 10 sep 2011 **/ /** # Version 7.0 : from : 18 jun 2023 **/ /** to : 12 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "dgraph_fold_comm.h" /* This routine computes an upper bound on the size of ** local vertex arrays that have to be allocated before ** coarsening (and possibly folding) take place, notably ** the multinode array. ** Since this value depends on the folding distribution ** algorithm, it is placed in the same source file. ** The extreme case is when vertglbmax receivers have ** (coarvertlocavg - 1) vertices, and a sender has ** vertglbmax vertices as well. Only DGRAPHFOLDCOMMNBR ** vertices will be transferred to achieve balance, and ** (vertglbmax - DGRAPHFOLDCOMMNBR) vertices will have ** to be spread across DGRAPHFOLDCOMMNBR processes. ** It returns: ** - >= 0 : size of vertex arrays */ Gnum dgraphCoarsenVertLocMax ( const Dgraph * restrict const finegrafptr, /*+ Graph to coarsen and possibly fold +*/ const int flagval) /*+ Coarsening type +*/ { Gnum coarvertlocavg; /* Average load on all processes if perfect balance achieved */ Gnum coarvertlocmax; /* Possible Maximum load on a specific process */ int foldval; /* Type of folding (do not consider merging) */ const int procglbnbr = finegrafptr->procglbnbr; const Gnum vertlocnbr = finegrafptr->vertlocnbr; const Gnum vertglbnbr = finegrafptr->vertglbnbr; const Gnum vertglbmax = finegrafptr->vertglbmax; foldval = flagval & (DGRAPHCOARSENFOLD | DGRAPHCOARSENFOLDDUP); /* Only consider folding flags */ if ((foldval == DGRAPHCOARSENNONE) || /* If plain coarsening */ (procglbnbr == 1)) /* Or user called the routine with a mono-process context */ return (vertlocnbr); /* Local number of vertices may not change if all local matchings succeeded */ if (foldval == DGRAPHCOARSENFOLD) /* If simple folding, with coarsening ratio 1.0 */ coarvertlocavg = ((vertglbnbr * 2) / procglbnbr) + 1; /* Max ratio for FOLD is 2 -> 1 */ else /* Folding with duplication with coarsening ratio 1.0 */ coarvertlocavg = ((vertglbnbr * 2) / (procglbnbr - (procglbnbr % 2))) + 1; /* Max ratio FOLD-DUP is 3 -> 1 */ if (procglbnbr < (2 * DGRAPHFOLDCOMMNBR)) /* If there is always enough communications to spread the load of a single process */ coarvertlocmax = coarvertlocavg; /* No overload is possible in this case */ else coarvertlocmax = coarvertlocavg + ((vertglbmax - DGRAPHFOLDCOMMNBR + (DGRAPHFOLDCOMMNBR - 1)) / DGRAPHFOLDCOMMNBR); /* Add possible overload */ return (coarvertlocmax); } /* This routine computes an optimized communication ** scheme for folding the data of a distributed graph. ** It is currently based on a maximum fixed number of ** communications per process. If this maximum is reached, ** the algorithm will fail. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphFoldComm ( const Dgraph * restrict const grafptr, const int partval, /* 0 for first half, 1 for second half */ int * restrict const commmaxptr, /* Pointer to maximum number of communications per process */ int * restrict const commtypvalptr, /* Process will be sender or receiver */ DgraphFoldCommData * restrict * restrict const commdattabptr, /* Slots for communication */ Gnum * restrict * restrict const commvrttabptr, /* Slots of starting global vertex send indices */ Gnum * restrict const proccnttab, /* Receive count array, for receivers */ int * restrict const vertadjnbrptr, /* Number of adjustment ranges, for receivers */ Gnum * restrict * restrict const vertadjtabptr, /* Pointer to global index adjustment array, for receivers */ Gnum * restrict * restrict const vertdlttabptr) /* Pointer to global delta adjustment array, for receivers */ { Gnum * restrict fldproccnttab; /* Sanitized access to proccnttab of folded graph (used as flag) */ DgraphFoldCommData * restrict commdattab; /* Array of communication slots for current process */ Gnum * restrict commvrttab; /* Adday of starting global vertex indices of communication slots */ DgraphFoldCommData * restrict procsrttab; /* Sort array for sender and receiver processes */ int procfldnbr; /* Number of processes in folded part */ int procrcvbas; int procrcvnnd; int procsndbas; int procsndnnd; int sortsndbas; /* Start index of first non-empty sender in sort array */ int * restrict slotsndtab; /* Array of send slot indices for adjustment range computations */ Gnum * restrict vertadjtab; /* Arrays of global index ajustments for all receiver slots */ Gnum * restrict vertdlttab; int commmax; /* Current maximum number of communications per process */ int procnum; #ifdef SCOTCH_DEBUG_DGRAPH2 DgraphFoldCommData * restrict procchktab; int chekloctab[2]; int chekglbtab[2]; #endif /* SCOTCH_DEBUG_DGRAPH2 */ const int orgprocglbnbr = grafptr->procglbnbr; const int orgproclocnum = grafptr->proclocnum; const Gnum * restrict const orgproccnttab = grafptr->proccnttab; const Gnum * restrict const orgprocvrttab = grafptr->procvrttab; #ifdef SCOTCH_DEBUG_DGRAPH2 if (orgprocglbnbr < 2) { /* Folding is useless when graph is on a single process */ errorPrint ("dgraphFoldComm: invalid parameters (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if ((procsrttab = memAlloc (orgprocglbnbr * sizeof (DgraphFoldCommData))) == NULL) { errorPrint ("dgraphFoldComm: out of memory (1)"); return (1); } procfldnbr = (orgprocglbnbr + 1) / 2; /* Get number of processes in part 0 (always more than in part 1) */ if (partval == 0) { /* If part 0 will receive the data */ procrcvbas = 0; /* Receive by ascending weight order in first part */ procrcvnnd = procsndbas = procfldnbr; /* Send by descending weight order in second part */ procsndnnd = orgprocglbnbr; } else { /* Part 1 will receive the data */ procsndbas = 0; /* Send by descending weight order in first part */ procsndnnd = procrcvbas = procfldnbr; /* Receive by ascending weight order in second part */ procrcvnnd = orgprocglbnbr; procfldnbr = orgprocglbnbr - procfldnbr; /* Number of processes in folded graph is in fact the smaller half */ } if ((orgproclocnum >= procrcvbas) && (orgproclocnum < procrcvnnd)) { /* If calling process is a receiver */ fldproccnttab = proccnttab; /* Point to vertex count array of receiver process */ *commtypvalptr = DGRAPHFOLDCOMMRECV; /* Set local process type as receiver (pure receiver, by default) */ } else { fldproccnttab = NULL; /* Flag process as a sender */ *commtypvalptr = DGRAPHFOLDCOMMSEND; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((*commtypvalptr == DGRAPHFOLDCOMMRECV) && /* Check that a receiver has the proper receiver array locations */ ((proccnttab == NULL) || (vertadjtabptr == NULL) || (vertdlttabptr == NULL))) { errorPrint ("dgraphFoldComm: invalid parameters (2)"); memFree (procsrttab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ for (procnum = procsndbas; procnum < procsndnnd; procnum ++) { /* Senders will not be changed in loop */ procsrttab[procnum].vertnbr = orgproccnttab[procnum]; /* All vertices of senders must be disposed of */ procsrttab[procnum].procnum = (Gnum) procnum; } intSort2asc1 (procsrttab + procsndbas, procsndnnd - procsndbas); /* Sort sender part once for good */ commdattab = NULL; /* Vertex redistribution arrays not allocated yet */ for (commmax = DGRAPHFOLDCOMMNBR; ; commmax ++) { /* Start with small number of communications per process */ int * restrict slotsndtax; /* Based access to slot array, with respect to (procrcvbas * commsiz) */ int sortsndnnd; /* Index of current end of send sub-array in sort array */ int sortrcvnnd; /* Index of current end of receive sub-array in sort array */ int sortrcvnum; /* Index of current receiver process in sort array */ Gnum vertglbdlt; /* Global overload accepted for receiver vertices */ int commrcvnum; /* Number of communications already performed by current receiver */ int commsiz; /* Size of receiver communication arrays for local process (commmax + 1) */ int commnum; for (procnum = procrcvbas; procnum < procrcvnnd; procnum ++) { /* Compute difference with respect to average for receivers */ procsrttab[procnum].vertnbr = orgproccnttab[procnum] - DATASIZE (grafptr->vertglbnbr, procfldnbr, procnum - procrcvbas); procsrttab[procnum].procnum = (Gnum) procnum; } intSort2asc1 (procsrttab + procrcvbas, procrcvnnd - procrcvbas); /* (Re)sort receiver part as may have been modified by previous loop */ for (sortsndbas = procsndbas; sortsndbas < procsndnnd; sortsndbas ++) { /* Discard empty senders */ if (procsrttab[sortsndbas].vertnbr != 0) /* Stop at first non-empty sender */ break; } if (commdattab != NULL) /* If retry, delete old arrays before rebuilding them */ memFree (commdattab); commsiz = (fldproccnttab != NULL) ? (commmax + 1) : 0; /* Receiver-side arrays only necessary if process is a receiver */ if (memAllocGroup ((void **) (void *) &commdattab, (size_t) (commmax * sizeof (DgraphFoldCommData)), &commvrttab, (size_t) (commmax * sizeof (Gnum)), &vertadjtab, (size_t) (commsiz * orgprocglbnbr * sizeof (Gnum)), &vertdlttab, (size_t) (commsiz * orgprocglbnbr * sizeof (Gnum)), #ifdef SCOTCH_DEBUG_DGRAPH2 &procchktab, (size_t) (commmax * orgprocglbnbr * sizeof (DgraphFoldCommData)), #endif /* SCOTCH_DEBUG_DGRAPH2 */ &slotsndtab, (size_t) (commsiz * procfldnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphFoldComm: out of memory (2)"); memFree (procsrttab); return (1); } for (commnum = 0; commnum < commmax; commnum ++) { /* Assume we will perform no communication at all */ commdattab[commnum].vertnbr = 0; commdattab[commnum].procnum = -1; } if (fldproccnttab != NULL) { /* If we are a receiver process, initialize count and adjustment arrays */ int procrcvnum; memSet (vertadjtab, ~0, commsiz * orgprocglbnbr * sizeof (Gnum)); /* Initialize index adjustment arrays */ memSet (slotsndtab, ~0, commsiz * procfldnbr * sizeof (int)); slotsndtax = slotsndtab - (procrcvbas * commsiz); /* Base access to slot array for receivers */ for (procrcvnum = procrcvbas; procrcvnum < procrcvnnd; procrcvnum ++) { /* For all slots of receiver processes */ int slotrcvnum; /* First index in slot array for receiver process */ slotrcvnum = procrcvnum * commsiz; vertadjtab[slotrcvnum] = orgprocvrttab[procrcvnum]; /* Set global start index of local chunk */ vertdlttab[slotrcvnum] = orgproccnttab[procrcvnum]; /* Set number of vertices to be kept in local chunk */ slotsndtax[slotrcvnum] = slotrcvnum; /* First slot of receiver is active */ } } sortsndnnd = procsndnnd - 1; /* TRICK: point to end processes in arrays rather than just after them */ sortrcvnnd = procrcvnnd - 1; sortrcvnum = procrcvbas; /* First receiver to start with is receiver of smallest load */ commrcvnum = 0; /* Current receiver has not started any remote communication */ vertglbdlt = 0; /* No overload yet among receiver processes */ while (1) { /* Loop on candidate processes for setting up communications */ int flagsndval; /* Type of current sender: pure sender or sender receiver */ int procsndnum; /* Index of current sender process */ int slotsndnum; /* Index of first slot of current sender */ int sortrcvtmp; /* Temporary receive index for aggregating receiver capacities */ int sortsndnum; /* Index of sender process in sort array (either send or receive) */ Gnum vertsndnbr; /* Number of vertices to send from current sender process */ Gnum vertadjval; /* Global index of first vertex to send in a chunk */ Gnum vertrcvnbr; /* Number of vertices a receiver can/will take at a time */ Gnum vertrcvdlt; /* Room available to interleave pure senders with receiver sender messages */ int commsndnum; /* Number of communications already performed by current sender */ int commnbr; /* Number of elementary communcations to achive vertex transfer */ vertsndnbr = 0; /* Nothing sent yet */ if (sortsndnnd >= sortsndbas) { /* If a sender process remains */ sortsndnum = sortsndnnd --; /* Select and remove it */ vertsndnbr = procsrttab[sortsndnum].vertnbr; /* Get number of vertices to send */ flagsndval = DGRAPHFOLDCOMMSEND; /* Sender is a true sender */ } if (sortrcvnnd >= sortrcvnum) { /* If a receiver process remains */ Gnum vertsndtmp; vertsndtmp = procsrttab[sortrcvnnd].vertnbr; /* Get number of vertices possibly to send */ if ((vertsndtmp > vertsndnbr) && /* If receiver has something to send (> 0) and would be prioritary */ (vertsndtmp > vertglbdlt)) { /* And sending it would contribute not to degrade imbalance further */ if (vertsndnbr > 0) /* If a sender vertex was chosen before */ sortsndnnd ++; /* Restore it */ sortsndnum = sortrcvnnd --; /* Select and remove sender receiver */ vertsndnbr = vertsndtmp - vertglbdlt; /* Number of vertices to send, keeping local part */ flagsndval = DGRAPHFOLDCOMMSEND | DGRAPHFOLDCOMMRECV; /* Sender is a sender receiver */ } } else { /* No more receiver processes available */ if (vertsndnbr > 0) /* If a sender was willing to communicate */ goto redo; /* We could not compute a valid communication pattern */ } if (vertsndnbr <= 0) /* If no more communications to perform */ goto done; /* We have computed a valid communcation pattern */ vertrcvdlt = 0; /* Assume we will not be able to interleave pure senders */ for (commnbr = 0, vertrcvnbr = 0, sortrcvtmp = sortrcvnum; /* Compute maximum available room on receivers */ (commnbr < commmax) && (sortrcvtmp <= sortrcvnnd); commnbr ++, sortrcvtmp ++) vertrcvnbr += vertglbdlt - procsrttab[sortrcvtmp].vertnbr; if (vertrcvnbr < vertsndnbr) { /* If receiver processes cannot hold the data without additional overload */ if (flagsndval == DGRAPHFOLDCOMMSEND) /* If sender is a true sender */ vertglbdlt += (vertsndnbr - vertrcvnbr + (commnbr - 1)) / commnbr; /* Spread extra overload across receivers */ else { /* Sender is a sender receiver */ Gnum vertglbtmp; vertglbtmp = (vertsndnbr - vertrcvnbr + commnbr) / (commnbr + 1); /* Compute overload including sender process */ vertglbdlt += vertglbtmp; /* Add extra overload to current overload */ vertsndnbr -= vertglbtmp; /* Extra overload vertices will not be sent by sender receiver process */ } } else { /* There is room for adding messages */ if (flagsndval != DGRAPHFOLDCOMMSEND) /* If selected sender is a sender receiver */ vertrcvdlt = vertrcvnbr - vertsndnbr; /* Compute remaining space among receivers */ } procsndnum = (int) procsrttab[sortsndnum].procnum; /* Get rank of sender process */ slotsndnum = procsndnum * commsiz; /* Get first slot of sender process */ commsndnum = 0; /* Sender has not communicated yet */ vertadjval = orgprocvrttab[procsndnum] + orgproccnttab[procsndnum] - vertsndnbr; /* Get global index of first vertex to send */ do { /* Loop on communications to exchange chunks of vertices */ int procrcvnum; int slotrcvnum; /* Index of first slot in receiver part */ int flagrcvval; /* Flag set if receiver will be full */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (commsndnum >= commmax) { /* Overload should have been computed so that this never happens */ errorPrint ("dgraphFoldComm: internal error (1)"); return (1); } if (sortrcvnum > sortrcvnnd) { /* Overload should have been computed so that this never happens */ errorPrint ("dgraphFoldComm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ procrcvnum = (int) procsrttab[sortrcvnum].procnum; /* Get receiver index */ slotrcvnum = procrcvnum * commsiz + 1; /* Start slot of receiver is after local slot (even if empty) */ vertrcvnbr = vertglbdlt - procsrttab[sortrcvnum].vertnbr; /* Compute capacity of receiver process */ if ((vertrcvdlt > 0) && /* If there is a possibility to interleave a pure sender */ (commrcvnum == 0) && /* And we are considering a new receiver process */ (sortsndbas <= sortsndnnd) && /* And there is a pure sender available */ (vertrcvdlt >= procsrttab[sortsndbas].vertnbr) && /* And it can fit in the available space */ (vertrcvnbr >= procsrttab[sortsndbas].vertnbr)) { /* And it will not overload the receiver */ int procsndtmp; int slotsndtmp; Gnum vertrcvtmp; Gnum vertadjtmp; procsndtmp = (int) procsrttab[sortsndbas].procnum; /* Sender process for communication is interleaved sender */ slotsndtmp = procsndtmp * commsiz; /* Interleaved sender will use only its first communication */ vertrcvtmp = procsrttab[sortsndbas].vertnbr; /* Receive all of its vertices in one chunk */ vertadjtmp = orgprocvrttab[procsndtmp]; /* Send all of its vertices in one chunk */ sortsndbas ++; /* Discard interleaved sender */ vertrcvdlt -= vertrcvtmp; /* Reduce interleaving capacity */ if (fldproccnttab != NULL) { /* If we are a receiver process, fill count and adjustment arrays */ if (procrcvnum == orgproclocnum) { /* If we are the receiver process */ commdattab[commrcvnum].vertnbr = vertrcvtmp; /* Record receive communication */ commdattab[commrcvnum].procnum = (Gnum) procsndtmp; /* Sender is interleaved sender */ commvrttab[commrcvnum] = vertadjtmp; } vertadjtab[slotsndtmp] = vertadjtmp; /* Record communication in slot */ vertdlttab[slotsndtmp] = vertrcvtmp; slotsndtax[slotrcvnum + commrcvnum] = slotsndtmp; /* Receiver slot points to sender slot */ } else { /* We are a sender process */ if (procsndtmp == orgproclocnum) { /* If we are the sender process */ commdattab[0].vertnbr = vertrcvtmp; /* Record communication */ commdattab[0].procnum = (Gnum) procrcvnum; commvrttab[0] = vertadjtmp; } } commrcvnum ++; /* One more communication performed for receiver processes */ vertrcvnbr -= vertrcvtmp; /* Receiver's capacity has been reduced */ if (vertrcvnbr <= 0) { /* If receiver's capacity has been exhausted */ sortrcvnum ++; /* Switch to next receiver */ commrcvnum = 0; procrcvnum = (int) procsrttab[sortrcvnum].procnum; /* Get receiver index */ slotrcvnum = procrcvnum * commsiz + 1; /* Start slot of receiver is after local slot (even if empty) */ vertrcvnbr = vertglbdlt - procsrttab[sortrcvnum].vertnbr; /* Compute capacity of receiver process */ } } flagrcvval = 1; /* Assume receiver will be full */ if (vertsndnbr < vertrcvnbr) { /* If less vertices (remaining) to send than capacity */ vertrcvnbr = vertsndnbr; /* Only send and receive the given amount */ flagrcvval = 0; /* Receiver will not be considered full */ } vertsndnbr -= vertrcvnbr; /* Remove number of received vertices from amount to send */ if (fldproccnttab != NULL) { /* If we are a receiver process, fill count and adjustment arrays */ int slotsndtmp; /* Index of current slot for communication send */ slotsndtmp = 0; /* Assume sender is a pure sender */ if (flagsndval != DGRAPHFOLDCOMMSEND) { /* If sender is a sender receiver */ vertdlttab[slotsndnum] -= vertrcvnbr; /* Remove vertices from the initial slot of the sender receiver */ slotsndtmp = 1; /* Send slots will be created after local receiver slot */ if (procsndnum == orgproclocnum) { /* If we are the sender receiver process */ *commtypvalptr = flagsndval; /* Indicate it (maybe multiple times!) */ commdattab[commsndnum].vertnbr = vertrcvnbr; /* Record send communication */ commdattab[commsndnum].procnum = (Gnum) procrcvnum; commvrttab[commsndnum] = vertadjval; } } if (procrcvnum == orgproclocnum) { /* If we are the receiver process */ commdattab[commrcvnum].vertnbr = vertrcvnbr; /* Record receive communication */ commdattab[commrcvnum].procnum = (Gnum) procsndnum; commvrttab[commrcvnum] = vertadjval; } slotsndtmp += slotsndnum + commsndnum; /* Compute actual send slot index */ vertadjtab[slotsndtmp] = vertadjval; /* Record communication in slot */ vertdlttab[slotsndtmp] = vertrcvnbr; slotsndtax[slotrcvnum + commrcvnum] = slotsndtmp; /* Receiver slot points to sender slot */ } else { /* We are a sender process */ if (procsndnum == orgproclocnum) { /* If we are the sender process */ commdattab[commsndnum].vertnbr = vertrcvnbr; /* Record communication */ commdattab[commsndnum].procnum = (Gnum) procrcvnum; commvrttab[commsndnum] = vertadjval; } } commrcvnum ++; /* One more communication performed for receiver and sender processes */ commsndnum ++; if ((flagrcvval != 0) || /* If receiver has been filled by previous communication */ (commrcvnum == commmax)) { /* Or maximum number of communications reached for receiver */ sortrcvnum ++; /* Switch to next receiver */ commrcvnum = 0; } vertadjval += vertrcvnbr; /* Update start global vertex index of next chunk */ } while (vertsndnbr > 0); /* As long as there are vertices to send */ if (commrcvnum > 0) { /* If current receiver may receive more messages */ Gnum vertrcvtmp; vertrcvtmp = procsrttab[sortrcvnum].vertnbr + vertrcvnbr; /* Update its capacity from last communication */ if (vertrcvtmp < 0) /* If vertex has not been overloaded by previous communication */ procsrttab[sortrcvnum].vertnbr = vertrcvtmp; /* Update capacity to be taken into account in next round */ else { /* Else switch to next receiver */ sortrcvnum ++; commrcvnum = 0; } } } redo: ; /* Increase maximum number of communications and retry */ } done: /* A valid communication pattern has been produced */ memFree (procsrttab); /* Sort array is no longer necessary */ #ifdef SCOTCH_DEBUG_DGRAPH2 chekloctab[0] = - commmax; chekloctab[1] = commmax; if (MPI_Allreduce (chekloctab, chekglbtab, 2, MPI_INT, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphFoldComm: communication error (1)"); memFree (commdattab); /* Free group leader */ return (1); } if ((chekglbtab[0] != chekloctab[0]) || (chekglbtab[1] != chekloctab[1])) { errorPrint ("dgraphFoldComm: internal error (3)"); memFree (commdattab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (fldproccnttab != NULL) { /* If we are a receiver process, finalize arrays */ Gnum * fldproccntptr; /* Pointer to current cell of proccnttab to fill */ Gnum fldvertlocnbr; /* Number of vertices in folded receiver process */ int vertadjnbr; /* Number of adjustment slots */ Gnum vertadjsum; /* Current new starting position of current slot */ int slotglbnbr; /* Number of slots in the full slot array */ int slotglbnum; /* Index of current slot in the full slot array */ int slotrcvnbr; /* Number of slots in the receiver part of arrays */ int slotrcvnum; /* Index of current slot in receiver part */ int commsiz; /* Number of communication slots per process */ int commnum; /* Index of communication for current receiver */ commsiz = commmax + 1; for (slotrcvnum = 0, commnum = 0, fldvertlocnbr = 0, fldproccntptr = fldproccnttab, /* For all receiver processes and slots */ slotrcvnbr = commsiz * procfldnbr, vertadjsum = grafptr->baseval; /* Compute slot adjustments and number of vertices */ slotrcvnum < slotrcvnbr; slotrcvnum ++, commnum ++) { Gnum vertadjtmp; int slotsndnum; /* Index of sender slot matching the receiver slot */ if (commnum == commsiz) { /* If reached the slots of a new receiver process */ *(fldproccntptr ++) = fldvertlocnbr; /* Record number of vertices in proccnttab */ fldvertlocnbr = 0; /* Reset number of vertices and of communications */ commnum = 0; } slotsndnum = slotsndtab[slotrcvnum]; /* Get index of matching sender slot */ if (slotsndnum == -1) /* Skip empty slots */ continue; vertadjtmp = vertdlttab[slotsndnum]; /* Accumulate sender slot indices and compute adjustments */ vertdlttab[slotsndnum] = vertadjsum - vertadjtab[slotsndnum]; vertadjsum += vertadjtmp; fldvertlocnbr += vertadjtmp; } *fldproccntptr = fldvertlocnbr; /* Record last cell in proccnttab */ for (slotglbnum = vertadjnbr = 0, slotglbnbr = (commmax + 1) * orgprocglbnbr; /* Compact vertex adjustment arrays */ slotglbnum < slotglbnbr; slotglbnum ++) { if (vertadjtab[slotglbnum] != -1) { /* If slot is not empty, compact it */ vertadjtab[vertadjnbr] = vertadjtab[slotglbnum]; vertdlttab[vertadjnbr] = vertdlttab[slotglbnum]; vertadjnbr ++; } } vertadjtab[vertadjnbr] = orgprocvrttab[orgprocglbnbr]; /* Set upper bound on global vertex indices */ *vertadjnbrptr = vertadjnbr; *vertadjtabptr = vertadjtab; *vertdlttabptr = vertdlttab; } *commdattabptr = commdattab; /* Set group leader */ *commvrttabptr = commvrttab; *commmaxptr = commmax; #ifdef SCOTCH_DEBUG_DGRAPH2 if (fldproccnttab == NULL) { /* If we are a sender process */ Gnum vertsndnbr; /* Number of vertices actually sent */ int commnum; for (commnum = 0, vertsndnbr = 0; /* Accumulate number of vertices sent */ (commnum < commmax) && (commdattab[commnum].procnum >= 0); commnum ++) vertsndnbr += commdattab[commnum].vertnbr; if (vertsndnbr != grafptr->vertlocnbr) { /* All vertices should have been sent */ errorPrint ("dgraphFoldComm: internal error (4)"); commdattab[0].procnum = -2; /* Set collective error flag */ } } if (MPI_Allgather (commdattab, 2 * commmax, GNUM_MPI, procchktab, 2 * commmax, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphFoldComm: communication error (2)"); goto fail; } for (procnum = 0; procnum < orgprocglbnbr; procnum ++) { /* For all processes in initial graph */ int commnum; if (commdattab[0].procnum == -2) /* Delayed error handling */ goto fail; for (commnum = 0; (commnum < commmax) && (procchktab[commmax * procnum + commnum].procnum != -1); commnum ++) { /* For all communications */ Gnum procend; Gnum vertnbr; int commend; procend = procchktab[commmax * procnum + commnum].procnum; /* Get communication parameters */ vertnbr = procchktab[commmax * procnum + commnum].vertnbr; for (commend = 0; commend < commmax; commend ++) { /* Search for matching communication */ if ((procchktab[procend * commmax + commend].procnum == procnum) && (procchktab[procend * commmax + commend].vertnbr == vertnbr)) break; /* If matching communication found, terminate search */ } if (commend >= commmax) { /* If no matching communication found */ errorPrint ("dgraphFoldComm: internal error (5)"); fail: memFree (commdattab); /* Free group leader */ return (1); } } } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_fold_comm.h000066400000000000000000000110771514310134000273600ustar00rootroot00000000000000/* Copyright 2007,2010,2011,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_fold_comm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed source graph **/ /** building routines. **/ /** **/ /** # Version 5.0 : from : 23 may 2006 **/ /** to : 19 aug 2006 **/ /** # Version 5.1 : from : 30 jul 2010 **/ /** to : 03 jan 2011 **/ /** # Version 7.0 : from : 29 jul 2023 **/ /** to : 29 jul 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Starting maximum number of communications per process. +*/ #define DGRAPHFOLDCOMMNBR 4 /* Starting maximum number of communications per process */ /* ** The type and structure definitions. */ /*+ Process communication type. Receivers that have more local vertices than needed can also be senders, hence both values can be "or"-ed. +*/ typedef enum DgraphFoldCommType_ { DGRAPHFOLDCOMMRECV = 1, /*+ Process is a receiver +*/ DGRAPHFOLDCOMMSEND = 2 /*+ Process is a sender +*/ } DgraphFoldCommType; /*+ Dual-purpose structure: describes both a communication slot and a sorting structure. As a communication slot, the first field is the number of vertices to communicate, and the second field is the origin or target processor index for the communication. As a sort structure for processors, the first field is the amount of vertices that must be disposed of (> 0), or which can be accepted (< 0). For pure senders, it amounts to all the processor vertices, while for (sender-) receivers, it is the difference with respect to the target average number of vertices. +*/ typedef struct DgraphFoldCommData_ { Gnum vertnbr; /*+ Number of (extra) vertices; TRICK: FIRST +*/ Gnum procnum; /*+ Processor index; TRICK: Gnum for sorting +*/ } DgraphFoldCommData; /* ** The function prototypes. */ int dgraphFoldComm (const Dgraph * restrict const, const int, int * restrict const, int * restrict const, DgraphFoldCommData * restrict * restrict const, Gnum * restrict * restrict const, Gnum * restrict const, int * restrict const, Gnum * restrict * restrict const, Gnum * restrict * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_fold_dup.c000066400000000000000000000204341514310134000272050ustar00rootroot00000000000000/* Copyright 2007-2009,2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_fold_dup.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module folds a distributed graph **/ /** into two distinct copies, which may **/ /** be different when the number of **/ /** processes is odd. **/ /** **/ /** DATES : # Version 5.0 : from : 10 aug 2006 **/ /** to : 20 jun 2007 **/ /** # Version 5.1 : from : 14 nov 2008 **/ /** to : 28 oct 2009 **/ /** # Version 6.0 : from : 28 sep 2014 **/ /** to : 28 sep 2014 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 12 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_DGRAPH_FOLD_DUP #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_fold_dup.h" /******************************/ /* */ /* This routine handles */ /* distributed source graphs. */ /* */ /******************************/ /* This routine builds two folded graphs of ** a given graph on each of the two halves ** of the processes. The number of processes ** does not need to be even. There is a ** multi-threaded version, as well as a ** sequential one. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static void dgraphFoldDup2 ( Context * restrict const contptr, /*+ (Sub-)context (not used) +*/ const int spltnum, /*+ Rank of sub-context in initial context +*/ const DgraphFoldDupSplit * const spltptr) { int o; o = dgraphFold2 (spltptr->splttab[spltnum].orggrafptr, spltnum, spltptr->fldgrafptr, spltptr->splttab[spltnum].fldproccomm, spltptr->orgdataptr, spltptr->flddataptr, spltptr->datatype); if (o != 0) *spltptr->revaptr = 1; /* No mutex protection */ } int dgraphFoldDup ( const Dgraph * restrict const orggrafptr, Dgraph * restrict const fldgrafptr, void * restrict const orgdataptr, /*+ Un-based array of data which must be folded, e.g. coarmulttab +*/ void ** restrict const flddataptr, /*+ Un-based array of data which must be folded, e.g. coarmulttab +*/ MPI_Datatype datatype, /*+ Data type for array of data which must be folded +*/ Context * restrict const contptr) /*+ Context +*/ { #ifdef SCOTCH_PTHREAD_MPI Dgraph orggrafdat; int thrdprolvl; int thrdglbmin; #endif /* SCOTCH_PTHREAD_MPI */ int thrdval; /* Flag set if multithreaded process is possible */ int fldprocnbr; int fldprocnum; int fldproccol; DgraphFoldDupSplit fldspltdat; int o; fldprocnbr = (orggrafptr->procglbnbr + 1) / 2; /* Median cut on number of processors */ if (orggrafptr->proclocnum < fldprocnbr) { /* Compute color and rank in two subparts */ fldproccol = 0; fldprocnum = orggrafptr->proclocnum; } else { fldproccol = 1; fldprocnum = orggrafptr->proclocnum - fldprocnbr; } if (MPI_Comm_split (orggrafptr->proccomm, fldproccol, fldprocnum, &fldspltdat.splttab[fldproccol].fldproccomm) != MPI_SUCCESS) { errorPrint ("dgraphFoldDup: communication error (1)"); return (1); } fldspltdat.splttab[fldproccol ^ 1].fldproccomm = MPI_COMM_NULL; fldspltdat.splttab[0].orggrafptr = orggrafptr; fldspltdat.orgdataptr = orgdataptr; fldspltdat.flddataptr = flddataptr; fldspltdat.fldgrafptr = fldgrafptr; fldspltdat.datatype = datatype; fldspltdat.revaptr = &o; o = 0; /* Assume splitting will go well */ thrdval = 0; /* Assume splitting will be sequential */ #ifdef SCOTCH_PTHREAD_MPI MPI_Query_thread (&thrdprolvl); /* Get thread level of MPI implementation */ if (thrdprolvl >= MPI_THREAD_MULTIPLE) { /* If multiple threads can be used */ int thrdlocmin; thrdlocmin = contextThreadNbr (contptr); if (MPI_Allreduce (&thrdlocmin, &thrdglbmin, 1, MPI_INT, MPI_MIN, orggrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphFoldDup: communication error (2)"); return (1); } if (thrdglbmin > 1) { /* If all processes have multiple threads available */ fldspltdat.splttab[1].orggrafptr = &orggrafdat; orggrafdat = *orggrafptr; /* Create a separate graph structure to change its communicator */ if (MPI_Comm_dup (orggrafptr->proccomm, &orggrafdat.proccomm) != MPI_SUCCESS) { /* Duplicate communicator to avoid interferences in communications */ errorPrint ("dgraphFoldDup: communication error (3)"); return (1); } #ifndef DGRAPHFOLDDUPNOTHREAD if (contextThreadLaunchSplit (contptr, (ContextSplitFunc) dgraphFoldDup2, &fldspltdat) == 0) /* If context could be split to run concurrently */ thrdval = 1; /* No need to go through sequantial run */ #endif /* DGRAPHFOLDDUPNOTHREAD */ } } #endif /* SCOTCH_PTHREAD_MPI */ if (thrdval == 0) { /* If need to go through the sequential run */ fldspltdat.splttab[1].orggrafptr = orggrafptr; /* No need for separate graph with separate communicator */ dgraphFoldDup2 (contptr, 0, &fldspltdat); /* Run tasks in sequence */ if (o == 0) dgraphFoldDup2 (contptr, 1, &fldspltdat); } #ifdef SCOTCH_PTHREAD_MPI if (thrdprolvl >= MPI_THREAD_MULTIPLE) { /* If duplicated communicator was created, free it */ if (thrdglbmin > 1) /* If all processes have multiple threads available */ MPI_Comm_free (&orggrafdat.proccomm); } #endif /* SCOTCH_PTHREAD_MPI */ fldgrafptr->pkeyglbval = fldproccol; /* Discriminate between folded communicators at same level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_fold_dup.h000066400000000000000000000102521514310134000272070ustar00rootroot00000000000000/* Copyright 2007,2010,2014,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_fold_dup.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the distributed graph duplicate **/ /** folding routine. **/ /** **/ /** DATES : # Version 5.0 : from : 13 aug 2006 **/ /** to : 13 aug 2006 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 28 sep 2014 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 26 sep 2021 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the splitting parameters. +*/ typedef struct DgraphFoldDupSplit2_ { const Dgraph * orggrafptr; /*+ Pointer to original graph +*/ MPI_Comm fldproccomm; /*+ Communicator to be used in folded graph +*/ } DgraphFoldDupSplit2; typedef struct DgraphFoldDupSplit_ { DgraphFoldDupSplit2 splttab[2]; /*+ Array of folded graph data +*/ void * orgdataptr; /*+ Data associated to vertices, e.g. coarmulttab +*/ Dgraph * fldgrafptr; /*+ Pointer to folded graph +*/ void * flddataptr; /*+ Data associated to vertices, e.g. coarmulttab +*/ MPI_Datatype datatype; /*+ MPI type of associated information +*/ int * revaptr; /*+ Pointer to return value +*/ } DgraphFoldDupSplit; /* ** The function prototypes. */ #ifdef SCOTCH_DGRAPH_FOLD_DUP #ifdef SCOTCH_PTHREAD_MPI static void dgraphFoldDup2 (Context * restrict const, const int, const DgraphFoldDupSplit * const); #endif /* SCOTCH_PTHREAD_MPI */ #endif /* SCOTCH_DGRAPH_FOLD_DUP */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_gather.c000066400000000000000000000132031514310134000266570ustar00rootroot00000000000000/* Copyright 2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_gather.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Francois CHATENET (0.0) **/ /** Sebastien FOUCAULT (0.0) **/ /** **/ /** FUNCTION : This module contains the routine which **/ /** builds a centralized graph by gathering **/ /** the pieces of a distributed graph. **/ /** **/ /** DATES : # Version 0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version 0.1 : from : 14 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version 0.2 : from : 20 may 1999 **/ /** to : 20 may 1999 **/ /** # Version 5.0 : from : 07 feb 2006 **/ /** to : 16 jul 2007 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # The definitions of MPI_Gather and **/ /** MPI_Gatherv indicate that elements in **/ /** the receive array should not be **/ /** written more than once. Great care **/ /** should be taken to enforce this rule, **/ /** especially when the number of **/ /** vertices in the centralized graph is **/ /** smaller than the number of **/ /** processors. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "dgraph.h" /* This function gathers the pieces of ** a distributed graph to build a ** centralized graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int dgraphGather ( const Dgraph * restrict const dgrfptr, /* Distributed graph */ Graph * restrict cgrfptr) /* Centralized graph */ { Gnum reduloctab[3]; Gnum reduglbtab[3]; if (dgrfptr->edloloctax == NULL) /* Compute sum of edge loads */ reduloctab[2] = dgrfptr->edgelocnbr; else { Gnum vertlocnum; Gnum edlolocsum; for (vertlocnum = dgrfptr->baseval, edlolocsum = 0; vertlocnum < dgrfptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; for (edgelocnum = dgrfptr->vertloctax[vertlocnum], edgelocnnd = dgrfptr->vendloctax[vertlocnum]; edgelocnum < edgelocnnd; edgelocnum ++) edlolocsum += dgrfptr->edloloctax[edgelocnum]; } reduloctab[2] = edlolocsum; } if (cgrfptr != NULL) { /* If centralized graph provided */ reduloctab[0] = 1; /* This process is the root */ reduloctab[1] = (Gnum) dgrfptr->proclocnum; /* Get its number */ } else { reduloctab[0] = /* This process is not the root */ reduloctab[1] = 0; } if (MPI_Allreduce (reduloctab, reduglbtab, 3, GNUM_MPI, MPI_SUM, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGather: communication error"); return (1); } if (reduglbtab[0] != 1) { errorPrint ("dgraphGather: should have only one root"); return (1); } return (dgraphGatherAll2 (dgrfptr, cgrfptr, reduglbtab[2], (int) reduglbtab[1])); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_gather_all.c000066400000000000000000000564711514310134000275250ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2012,2018,2021,2023,2025 Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_gather_all.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the routine which **/ /** builds a centralized graph on all **/ /** processes by gathering the pieces of **/ /** a distributed graph. **/ /** **/ /** DATES : # Version 5.0 : from : 07 feb 2006 **/ /** to : 17 jun 2008 **/ /** # Version 5.1 : from : 30 jul 2010 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 27 nov 2012 **/ /** to : 27 nov 2012 **/ /** # Version 6.1 : from : 18 jun 2021 **/ /** to : 04 dec 2021 **/ /** # Version 7.0 : from : 04 aug 2018 **/ /** to : 29 sep 2025 **/ /** **/ /** NOTES : # The definitions of MPI_Gather and **/ /** MPI_Gatherv indicate that elements in **/ /** the receive array should not be **/ /** written more than once. Great care **/ /** should be taken to enforce this rule, **/ /** especially when the number of **/ /** vertices in the centralized graph is **/ /** smaller than the number of **/ /** processes. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "graph.h" #include "dgraph.h" /* This function gathers on all processes ** the pieces of a distributed graph to ** build a centralized graph. This function ** does not compute edlosum on the centralized ** graphs when it is already given in the passed ** value, as a non-negative number. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ static int dgraphGatherAll3 ( Gnum * const senddattab, const Gnum sendcntnbr, Gnum * const recvdattab, Gnum * const recvcnttab, Gnum * const recvdsptab, const int rootnum, MPI_Comm comm) { if (rootnum == -1) /* If collective communication wanted */ return (commAllgatherv (senddattab, sendcntnbr, GNUM_MPI, recvdattab, recvcnttab, recvdsptab, GNUM_MPI, comm)); else return (commGatherv (senddattab, sendcntnbr, GNUM_MPI, recvdattab, recvcnttab, recvdsptab, GNUM_MPI, rootnum, comm)); } int dgraphGatherAll2 ( const Dgraph * restrict const dgrfptr, /* Distributed graph */ Graph * restrict cgrfptr, /* Centralized graph */ const Gnum edlosum, /* -1 means recompute */ const int protnum) /* -1 means allgather */ { Gnum baseval; Gnum * verttax; /* Target vertex array for root, dummy for non-roots [norestrict] */ Gnum * vendtax; /* Target end vertex array for root, dummy for non-roots */ Gnum * velotax; /* Target vertex load array for root, dummy for non-roots */ Gnum * vnumtax; /* Target vertex index array for root, dummy for non-roots */ Gnum * vlbltax; /* Target vertex label array for root, dummy for non-roots */ Gnum * restrict edgetax; /* Target edge array for root, dummy for non-roots */ Gnum * restrict edlotax; /* Target edge load array for root, dummy for non-roots */ Gnum vertlocnbr; /* Size of temporary distributed vertex array */ Gnum * vertloctax; /* Temporary vertex array if graph is not compact [norestrict] */ Gnum edgelocnbr; /* Size of temporary distributed edge array */ Gnum * edgeloctab; /* Temporary edge array if distributed graph not compact [norestrict] */ Gnum * recvcnttab; /* Count array for gather operations [norestrict] */ Gnum * recvdsptab; /* Displacement array for gather operations [norestrict] */ int cheklocval; int chekglbval; const Gnum * restrict const edgeloctax = dgrfptr->edgeloctax; #ifdef SCOTCH_DEBUG_DGRAPH1 cheklocval = 0; if (cgrfptr != NULL) /* Centralized graphs should be provided by all */ cheklocval = 1; if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_SUM, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (1)"); return (1); } if (protnum == -1) { /* If collective gathering wanted */ if (chekglbval != dgrfptr->procglbnbr) { errorPrint ("dgraphGatherAll2: centralized graphs should be provided on every process"); return (1); } } else { /* Single gathering wanted */ if (chekglbval != 1) { errorPrint ("dgraphGatherAll2: should have only one root"); return (1); } } #endif /* SCOTCH_DEBUG_DGRAPH1 */ baseval = dgrfptr->baseval; cheklocval = 0; if (cgrfptr != NULL) { /* If root process */ Gnum velonbr; Gnum vnumnbr; Gnum vlblnbr; Gnum edlonbr; velonbr = (dgrfptr->veloloctax != NULL) ? dgrfptr->vertglbnbr : 0; vnumnbr = (dgrfptr->vnumloctax != NULL) ? dgrfptr->vertglbnbr : 0; vlblnbr = (dgrfptr->vlblloctax != NULL) ? dgrfptr->vertglbnbr : 0; edlonbr = (dgrfptr->edloloctax != NULL) ? dgrfptr->edgeglbnbr : 0; if (memAllocGroup ((void **) (void *) &cgrfptr->verttax, (size_t) ((dgrfptr->vertglbnbr + 1) * sizeof (Gnum)), /* Gathered graph will be compact */ &cgrfptr->velotax, (size_t) (velonbr * sizeof (Gnum)), &cgrfptr->vnumtax, (size_t) (vnumnbr * sizeof (Gnum)), &cgrfptr->vlbltax, (size_t) (vlblnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphGatherAll2: out of memory (1)"); cheklocval = 1; } else if (memAllocGroup ((void **) (void *) &cgrfptr->edgetax, (size_t) (dgrfptr->edgeglbnbr * sizeof (Gnum)), &cgrfptr->edlotax, (size_t) (edlonbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphGatherAll2: out of memory (2)"); cheklocval = 1; } } if ((dgrfptr->flagval & DGRAPHHASVENDLOC) == 0) { /* If distributed graph is compact */ vertlocnbr = /* No need to recompact arrays */ edgelocnbr = 0; } else { /* Need extra space to compact vertex and edge arrays before sending */ vertlocnbr = dgrfptr->vertlocnbr; edgelocnbr = dgrfptr->edgelocnbr; } if (cheklocval == 0) { if (memAllocGroup ((void **) (void *) &recvcnttab, (size_t) (dgrfptr->procglbnbr * sizeof (Gnum)), /* Allocated for non-roots too but don't care as these are very small */ &recvdsptab, (size_t) (dgrfptr->procglbnbr * sizeof (Gnum)), &vertloctax, (size_t) (vertlocnbr * sizeof (Gnum)), &edgeloctab, (size_t) (edgelocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphGatherAll2: out of memory (3)"); cheklocval = 1; } } #ifdef SCOTCH_DEBUG_DGRAPH1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (2)"); return (1); } #else /* SCOTCH_DEBUG_DGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH1 */ if (chekglbval != 0) { if (recvcnttab != NULL) memFree (recvcnttab); if (cgrfptr->verttax != NULL) { if (cgrfptr->edgetax != NULL) memFree (cgrfptr->edgetax); /* Arrays are not based yet */ memFree (cgrfptr->verttax); } return (1); } if (cgrfptr != NULL) { verttax = cgrfptr->verttax - baseval; vendtax = verttax + 1; /* TRICK: used for gather operations, omitting first vertloctax cell */ velotax = (dgrfptr->veloloctax != NULL) ? (cgrfptr->velotax - baseval) : NULL; vnumtax = (dgrfptr->vnumloctax != NULL) ? (cgrfptr->vnumtax - baseval) : NULL; vlbltax = (dgrfptr->vlblloctax != NULL) ? (cgrfptr->vlbltax - baseval) : NULL; edgetax = cgrfptr->edgetax - baseval; edlotax = (dgrfptr->edloloctax != NULL) ? (cgrfptr->edlotax - baseval) : NULL; cgrfptr->flagval = GRAPHFREEVERT | GRAPHVERTGROUP | GRAPHFREEEDGE | GRAPHEDGEGROUP; /* Other arrays are grouped, too */ cgrfptr->baseval = baseval; cgrfptr->vertnbr = dgrfptr->vertglbnbr; cgrfptr->vertnnd = dgrfptr->vertglbnbr + baseval; cgrfptr->verttax = verttax; cgrfptr->vendtax = vendtax; /* Compact edge array */ cgrfptr->velotax = velotax; cgrfptr->velosum = dgrfptr->veloglbsum; cgrfptr->vnumtax = vnumtax; cgrfptr->vlbltax = vlbltax; cgrfptr->edgenbr = dgrfptr->edgeglbnbr; cgrfptr->edgetax = edgetax; cgrfptr->edlotax = edlotax; cgrfptr->edlosum = edlosum; cgrfptr->degrmax = dgrfptr->degrglbmax; } #ifdef SCOTCH_DEBUG_DGRAPH2 /* Prevent Valgrind from yelling */ else { /* Process is not root */ verttax = vendtax = velotax = vlbltax = edgetax = edlotax = NULL; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if ((dgrfptr->flagval & DGRAPHHASVENDLOC) == 0) { /* If distributed graph is compact */ if (dgraphGatherAll3 (dgrfptr->vertloctax + baseval + 1, dgrfptr->vertlocnbr, /* Do not send first index, it is always equal to baseval */ vendtax, /* First index will always be equal to baseval too, and procdsptab holds based values */ dgrfptr->proccnttab, dgrfptr->procdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (3)"); return (1); } if (cgrfptr != NULL) { int procnum; verttax[baseval] = baseval; for (procnum = 1; procnum < dgrfptr->procglbnbr; procnum ++) { /* Adjust index sub-arrays for all processes except the first one */ Gnum vertnum; Gnum vertnnd; Gnum edgedlt; for (vertnum = dgrfptr->procdsptab[procnum] + 1, vertnnd = dgrfptr->proccnttab[procnum] + vertnum, edgedlt = verttax[vertnum - 1] - baseval; vertnum < vertnnd; vertnum ++) verttax[vertnum] += edgedlt; } } } else { /* Distributed graph is not compact */ Gnum vertlocnum; Gnum * restrict edgelocptr; vertloctax -= baseval; /* Base temporary vertex array */ for (vertlocnum = baseval, edgelocptr = edgeloctab; /* Build vertex send array */ vertlocnum < dgrfptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; edgelocnum = dgrfptr->vertloctax[vertlocnum]; edgelocnnd = dgrfptr->vendloctax[vertlocnum]; vertloctax[vertlocnum] = edgelocnnd - edgelocnum; /* Get vertex degree */ for ( ; edgelocnum < edgelocnnd; edgelocnum ++) /* Create compact edge sub-array */ *(edgelocptr ++) = edgeloctax[edgelocnum]; } if (dgraphGatherAll3 (vertloctax + baseval, dgrfptr->vertlocnbr, vendtax, /* First index will always be equal to baseval, and procdsptab holds based values */ dgrfptr->proccnttab, dgrfptr->procdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (4)"); return (1); } if (cgrfptr != NULL) { Gnum vertnum; Gnum edgenum; verttax[baseval] = baseval; for (vertnum = baseval + 1, edgenum = baseval; /* Create compact centralized vertex array */ vertnum <= cgrfptr->vertnnd; vertnum ++) { edgenum += verttax[vertnum]; verttax[vertnum] = edgenum; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (verttax[cgrfptr->vertnnd] != (cgrfptr->edgenbr + baseval)) { errorPrint ("dgraphGatherAll2: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } } if (dgrfptr->veloloctax != NULL) { if (dgraphGatherAll3 (dgrfptr->veloloctax + baseval, dgrfptr->vertlocnbr, velotax, /* Based array since procdsptab holds based values */ dgrfptr->proccnttab, dgrfptr->procdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (5)"); return (1); } } if (dgrfptr->vnumloctax != NULL) { if (dgraphGatherAll3 (dgrfptr->vnumloctax + baseval, dgrfptr->vertlocnbr, vnumtax, /* Based array since procdsptab holds based values */ dgrfptr->proccnttab, dgrfptr->procdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (6)"); return (1); } } if (dgrfptr->vlblloctax != NULL) { if (dgraphGatherAll3 (dgrfptr->vlblloctax + baseval, dgrfptr->vertlocnbr, vlbltax, /* Based array since procdsptab holds based values */ dgrfptr->proccnttab, dgrfptr->procdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (7)"); return (1); } } if (cgrfptr != NULL) { int procnum; Gnum edgenum; for (procnum = 0, edgenum = baseval; /* Build arrays for MPI_Gatherv on edge arrays */ procnum < dgrfptr->procglbnbr; procnum ++) { recvcnttab[procnum] = verttax[dgrfptr->procdsptab[procnum] + dgrfptr->proccnttab[procnum]] - verttax[dgrfptr->procdsptab[procnum]]; /* verttax used twice since centralized graph is compact */ recvdsptab[procnum] = edgenum; edgenum += recvcnttab[procnum]; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((recvdsptab[dgrfptr->procglbnbr - 1] + recvcnttab[dgrfptr->procglbnbr - 1]) != (cgrfptr->edgenbr + baseval)) { errorPrint ("dgraphGatherAll2: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } if ((dgrfptr->flagval & DGRAPHHASVENDLOC) == 0) { /* If distributed graph is compact */ if (dgraphGatherAll3 (dgrfptr->edgeloctax + baseval, dgrfptr->edgelocnbr, /* Send global indices */ edgetax, /* Based array as recvdsptab holds based values */ recvcnttab, recvdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (8)"); return (1); } if (dgrfptr->edloloctax != NULL) { if (dgraphGatherAll3 (dgrfptr->edloloctax + baseval, dgrfptr->edgelocnbr, edlotax, /* Based array as recvdsptab holds based values */ recvcnttab, recvdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (9)"); return (1); } } } else { /* Distributed graph is not compact */ if (dgraphGatherAll3 (edgeloctab, dgrfptr->edgelocnbr, edgetax, /* Based array as recvdsptab holds based values */ recvcnttab, recvdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (10)"); return (1); } if (dgrfptr->edloloctax != NULL) { Gnum vertlocnum; Gnum * restrict edlolocptr; for (vertlocnum = baseval, edlolocptr = edgeloctab; /* Recycle edge send array to build edge load send array */ vertlocnum < dgrfptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; edgelocnum = dgrfptr->vertloctax[vertlocnum]; edgelocnnd = dgrfptr->vendloctax[vertlocnum]; for ( ; edgelocnum < edgelocnnd; edgelocnum ++) *(edlolocptr ++) = dgrfptr->edloloctax[edgelocnum]; } if (dgraphGatherAll3 (edgeloctab, dgrfptr->edgelocnbr, /* Send compacted edge load array */ edlotax, /* Based array as recvdsptab holds based values */ recvcnttab, recvdsptab, protnum, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (11)"); return (1); } } } if (cgrfptr != NULL) { if ((dgrfptr->procdsptab[dgrfptr->procglbnbr] != /* If graph has holes, relabel end vertices */ dgrfptr->procvrttab[dgrfptr->procglbnbr])) { int procnum; for (procnum = 0; procnum < dgrfptr->procglbnbr; procnum ++) { /* Accelerate search per sender process */ Gnum vertlocmin; Gnum vertlocmax; Gnum vertlocadj; Gnum edgelocnum; Gnum edgelocnnd; vertlocmin = dgrfptr->procvrttab[procnum]; /* Initialize search accelerator */ vertlocmax = dgrfptr->procvrttab[procnum + 1]; vertlocadj = dgrfptr->procdsptab[procnum] - vertlocmin; for (edgelocnum = recvdsptab[procnum], edgelocnnd = edgelocnum + recvcnttab[procnum]; edgelocnum < edgelocnnd; edgelocnum ++) { Gnum vertlocend; vertlocend = edgetax[edgelocnum]; if ((vertlocend >= vertlocmin) && /* If end vertex is local with respect to current process */ (vertlocend < vertlocmax)) edgetax[edgelocnum] = vertlocend + vertlocadj; else { /* End vertex is not local */ int procngbmin; int procngbmax; for (procngbmin = 0, procngbmax = dgrfptr->procglbnbr; procngbmax - procngbmin > 1; ) { int procngbnum; procngbnum = (procngbmax + procngbmin) / 2; if (dgrfptr->procvrttab[procngbnum] <= vertlocend) procngbmin = procngbnum; else procngbmax = procngbnum; } edgetax[edgelocnum] = vertlocend + dgrfptr->procdsptab[procngbmin] - dgrfptr->procvrttab[procngbmin]; } } } } if (edlotax == NULL) /* If no edge loads */ cgrfptr->edlosum = cgrfptr->edgenbr; /* Edge load sum is trivial */ else { if (edlosum >= 0) /* If edge load sum already computed by library call */ cgrfptr->edlosum = edlosum; else { /* Compute it from scratch on every root process (small graph assumed) */ Gnum edgenum; Gnum edgennd; Gnum edlotmp; for (edgenum = cgrfptr->baseval, edgennd = edgenum + cgrfptr->edgenbr, edlotmp = 0; /* Edge load array is always compact */ edgenum < edgennd; edgenum ++) edlotmp += edlotax[edgenum]; cgrfptr->edlosum = edlotmp; } } } memFree (recvcnttab); #ifdef SCOTCH_DEBUG_DGRAPH2 cheklocval = (cgrfptr != NULL) ? graphCheck (cgrfptr) : 0; if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphGatherAll2: communication error (12)"); return (1); } if (chekglbval != 0) { errorPrint ("dgraphGatherAll2: inconsistent centralized graph data"); if (cgrfptr != NULL) graphFree (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } /* This function gathers on all processes ** the pieces of a distributed graph to ** build a centralized graph. ** Since the resulting centralized graphs are ** supposed to be small in the general case, ** edlosum is computed without communication ** on each of the processors. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int dgraphGatherAll ( const Dgraph * restrict const dgrfptr, /* Distributed graph */ Graph * restrict cgrfptr) /* Centralized graph */ { return (dgraphGatherAll2 (dgrfptr, cgrfptr, -1, -1)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_ghst.c000066400000000000000000000376101514310134000263620ustar00rootroot00000000000000/* Copyright 2007-2009,2011,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_ghst.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** **/ /** FUNCTION : Part of a parallel static mapper. **/ /** This module contains the halo building **/ /** routine. **/ /** **/ /** # Version P0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.1 : from : 14 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version 5.0 : from : 28 feb 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 02 jul 2008 **/ /** to : 20 feb 2011 **/ /** # Version 6.0 : from : 21 nov 2011 **/ /** to : 21 nov 2011 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 22 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "dgraph_ghst.h" #include "dgraph_halo.h" /* This routine builds the ghost structures ** required by the halo routines. If flagval ** is set to 0, the ghost edge array is built ** in addition to the local edge array, while ** if flagval is set to 1, the ghost edge array ** replaces the local edge array. This latter ** option is useful to save memory when processing ** intermediate graphs that are not visible to ** the user. ** It returns: ** - 0 : on success. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (2, 1) int dgraphGhst2 ( Dgraph * restrict const grafptr, /* Graph structure */ const int flagval) /* Replacement flag */ { int procngbnbr; /* Number of neighboring processes */ int * restrict procsndtab; Gnum procsndnbr; int * restrict procsidtab; /* Send index array */ int procsidnbr; /* Number of entries in send index array */ Gnum vertsidnum; /* Last vertex index in send index array */ Gnum vertlocmin; /* Smallest index of local vertices */ Gnum vertlocmax; /* Largest index of local vertices, + 1 */ Gnum vertlocbas; /* Base index for ghost edge array */ Gnum vertlocnum; /* Current vertex number (based) */ Gnum * restrict vertsidtab; /* Flag array for building procs(i|n)dtab */ Gnum vertgstnum; /* Number of current ghost vertex */ DgraphGhstSort * restrict sortloctab; /* Array for sorting ghost vertices */ Gnum sortlocnbr; /* Number of ghost edges in sort array */ Gnum sortlocnum; Gnum * edgegsttax; /* Pointer to ghost edge array, maybe the same */ Gnum reduloctab[3]; /* Gnum to perform a maxsum operator */ Gnum reduglbtab[3]; int cheklocval; const Gnum * restrict const procvrttab = grafptr->procvrttab; const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgeloctax = grafptr->edgeloctax; /* Pointer to original edgeloctax array */ if ((grafptr->flagval & DGRAPHHASEDGEGST) != 0) /* If ghost edge array already computed, do nothing */ return (0); cheklocval = 0; if (grafptr->edgegsttax == NULL) { /* If ghost edge array not allocated yet */ if ((flagval == 0) || ((grafptr->flagval & DGRAPHFREETABS) == 0)) { /* If no replacement or cannot modify array */ if ((grafptr->edgegsttax = (Gnum *) memAlloc (grafptr->edgelocsiz * sizeof (Gnum))) == NULL) { errorPrint ("dgraphGhst: out of memory (1)"); cheklocval = 1; } else { grafptr->edgegsttax -= grafptr->baseval; grafptr->flagval |= DGRAPHFREEEDGEGST; /* Free array on exit */ } } else { /* Replace edgeloctab by edgegsttab */ grafptr->edgegsttax = grafptr->edgeloctax; grafptr->edgeloctax = NULL; if ((grafptr->flagval & DGRAPHFREETABS) != 0) grafptr->flagval |= DGRAPHFREEEDGEGST; /* It is edgegsttax which will free edloloctax if edge arrays are grouped */ } } if ((cheklocval == 0) && (memAllocGroup ((void **) (void *) &procsidtab, (size_t) ((grafptr->edgelocnbr + grafptr->vertlocnbr) * sizeof (int)), &vertsidtab, (size_t) (grafptr->procglbnbr * sizeof (Gnum)), &sortloctab, (size_t) ((grafptr->edgelocnbr + 1) * sizeof (DgraphGhstSort)), NULL) == NULL)) { errorPrint ("dgraphGhst: out of memory (2)"); cheklocval = 1; } reduloctab[0] = 1; /* Assume memory error and prepare data for aborting */ reduloctab[1] = reduloctab[2] = 0; if (cheklocval != 0) { /* TRICK: Processes not on error will perform collective communication at end of routine */ if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 2, 1, grafptr->proccomm) != 0) { errorPrint ("dgraphGhst: communication error (1)"); return (1); } } vertlocmin = procvrttab[grafptr->proclocnum]; vertlocmax = procvrttab[grafptr->proclocnum + 1]; vertlocbas = vertlocmin - grafptr->baseval; memSet (grafptr->procrcvtab, 0, grafptr->procglbnbr * sizeof (int)); memSet (grafptr->procsndtab, 0, grafptr->procglbnbr * sizeof (int)); memSet (vertsidtab, ~0, grafptr->procglbnbr * sizeof (Gnum)); edgegsttax = grafptr->edgegsttax; procsndtab = grafptr->procsndtab; for (vertlocnum = vertsidnum = grafptr->baseval, sortlocnbr = 0, procsidnbr = 0; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; for (edgelocnum = vertloctax[vertlocnum]; edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum vertlocend; vertlocend = edgeloctax[edgelocnum]; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocend < grafptr->baseval) || (vertlocend >= (procvrttab[grafptr->procglbnbr]))) { errorPrint ("dgraphGhst: invalid edge array"); if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 2, 1, grafptr->proccomm) != 0) errorPrint ("dgraphGhst: communication error (2)"); memFree (procsidtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if ((vertlocend >= vertlocmin) && (vertlocend < vertlocmax)) /* If edge is local */ edgegsttax[edgelocnum] = vertlocend - vertlocbas; /* Adjust its index */ else { /* End vertex is not local */ int procngbnum; int procngbmax; sortloctab[sortlocnbr].vertglbnum = vertlocend; /* Add it to sort array */ sortloctab[sortlocnbr].edgegstnum = edgelocnum; sortlocnbr ++; for (procngbnum = 0, procngbmax = grafptr->procglbnbr; procngbmax - procngbnum > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (procvrttab[procngbmed] <= vertlocend) procngbnum = procngbmed; else procngbmax = procngbmed; } if (vertsidtab[procngbnum] != vertlocnum) { /* If vertex not already sent to process */ vertsidtab[procngbnum] = vertlocnum; /* Neighbor process will receive vertex */ procsndtab[procngbnum] ++; /* One more vertex to send to this neighbor */ while ((vertlocnum - vertsidnum) >= (Gnum) DGRAPHGHSTSIDMAX) { /* If Gnum range too long for int */ procsidtab[procsidnbr ++] = -DGRAPHGHSTSIDMAX; /* Decrease by maximum int distance */ vertsidnum += DGRAPHGHSTSIDMAX; } if (vertsidnum != vertlocnum) { /* If communication concerns new local vertex */ procsidtab[procsidnbr ++] = - (vertlocnum - vertsidnum); /* Encode jump in procsidtab */ vertsidnum = vertlocnum; /* Current local vertex is last send vertex */ } procsidtab[procsidnbr ++] = procngbnum; /* Send this vertex data to this processor */ } } } } vertgstnum = grafptr->vertlocnnd; /* No ghost vertices yet */ procngbnbr = 0; /* No neighbor processes yet */ procsndnbr = 0; /* No vertex to send yet */ if (sortlocnbr > 0) { /* If there are ghost vertices */ Gnum vertgstbas; /* Number of current ghost vertex */ int procngbnum; intSort2asc1 (sortloctab, sortlocnbr); /* Sort them by ascending end vertex */ sortlocnum = 0; /* Start adjacency search from beginning */ procngbnum = -1; /* Start neighbor search from begnning */ do { /* For each distinct neighbor process */ vertgstbas = vertgstnum; /* Record first ghost number used for it */ edgegsttax[sortloctab[sortlocnum].edgegstnum] = vertgstnum; /* First ghost is always allocated */ while (procvrttab[++ procngbnum + 1] <= sortloctab[sortlocnum].vertglbnum) { /* Find owner process */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((procngbnum > grafptr->procglbnbr) || /* If we have skipped a neighbor to which we have to send something */ (procsndtab[procngbnum] != 0)) { errorPrint ("dgraphGhst: internal error (1)"); if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 2, 1, grafptr->proccomm) != 0) errorPrint ("dgraphGhst: communication error (3)"); memFree (procsidtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } #ifdef SCOTCH_DEBUG_DGRAPH2 if (procsndtab[procngbnum] == 0) { /* If we had in fact no edges to send to this neighbor */ errorPrint ("dgraphGhst: internal error (2)"); if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 2, 1, grafptr->proccomm) != 0) errorPrint ("dgraphGhst: communication error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ procsndnbr += procsndtab[procngbnum]; /* Sum-up vertices to send */ grafptr->procngbtab[procngbnbr ++] = procngbnum; /* Add it to neighbor process array */ while (++ sortlocnum < sortlocnbr) { /* For all following ghost edges */ if (sortloctab[sortlocnum].vertglbnum != /* If new ghost vertex */ sortloctab[sortlocnum - 1].vertglbnum) { vertgstnum ++; /* Allocate new ghost vertex number */ if (procvrttab[procngbnum + 1] <= sortloctab[sortlocnum].vertglbnum) { /* If new neighbor */ grafptr->procrcvtab[procngbnum] = vertgstnum - vertgstbas; /* Sum-up data for old neighbor */ break; /* Process new neighbor */ } } edgegsttax[sortloctab[sortlocnum].edgegstnum] = vertgstnum; /* Allocate ghost */ } } while (sortlocnum < sortlocnbr); vertgstnum ++; /* Size is one above last number */ grafptr->procrcvtab[procngbnum] = vertgstnum - vertgstbas; /* Sum-up data for last neighbor */ } grafptr->vertgstnbr = vertgstnum - grafptr->baseval; grafptr->vertgstnnd = grafptr->vertgstnbr + grafptr->baseval; grafptr->procngbnbr = procngbnbr; grafptr->procsndnbr = procsndnbr; grafptr->procsidtab = memRealloc (procsidtab, procsidnbr * sizeof (int)); /* Reallocate send index array */ grafptr->procsidnbr = procsidnbr; reduloctab[0] = 0; /* No memory error */ reduloctab[1] = /* Set maximum number of neighbors */ reduloctab[2] = grafptr->procngbnbr; if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 2, 1, grafptr->proccomm) != 0) { errorPrint ("dgraphGhst: communication error (5)"); return (1); } if (reduglbtab[0] != 0) /* If error, propagated by some previous reduction operator */ return (1); grafptr->procngbmax = reduglbtab[1]; grafptr->flagval |= DGRAPHFREEPSID | DGRAPHHASEDGEGST; /* Graph now has a valid ghost edge array */ #ifndef SCOTCH_COMM_COLL #ifndef SCOTCH_COMM_PTOP if (((float) reduglbtab[2]) <= ((float) grafptr->procglbnbr * (float) (grafptr->procglbnbr - 1) * (float) SCOTCH_COMM_PTOP_RAT)) #endif /* SCOTCH_COMM_PTOP */ grafptr->flagval |= DGRAPHCOMMPTOP; /* If too few communications, use point-to-point instead */ #endif /* SCOTCH_COMM_COLL */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphHaloCheck (grafptr) != 0) { errorPrint ("dgraphGhst: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_ghst.h000066400000000000000000000072221514310134000263630ustar00rootroot00000000000000/* Copyright 2007,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_ghst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the halo building routine. **/ /** **/ /** # Version P0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.1 : from : 12 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version 5.0 : from : 28 feb 2006 **/ /** to : 31 dec 2006 **/ /** # Version 6.1 : from : 04 dec 2021 **/ /** to : 04 dec 2021 **/ /** # Version 7.0 : from : 22 mar 2023 **/ /** to : 22 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /* procsidtab-related values. */ #define DGRAPHGHSTSIDMAX ((int) ((1U << (sizeof (unsigned int) * 8 - 1)) - 2U)) /* Maximum leap value for procsidtab entries */ /* ** The type and structure definitions. */ /* Sort structure for ghost edges. */ typedef struct DgraphGhstSort_ { Gnum vertglbnum; /* Global end vertex number */ Gnum edgegstnum; /* Number of ghost edge */ } DgraphGhstSort; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_halo.c000066400000000000000000000413061514310134000263350ustar00rootroot00000000000000/* Copyright 2007-2009,2011,2014,2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_halo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** Nicolas GICQUEL (P0.1) **/ /** Jerome LACOSTE (P0.1) **/ /** **/ /** FUNCTION : Part of a parallel static mapper. **/ /** This module contains the halo update **/ /** routines. **/ /** **/ /** # Version P0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.1 : from : 14 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version 5.0 : from : 28 feb 2006 **/ /** to : 05 feb 2008 **/ /** # Version 5.1 : from : 28 aug 2008 **/ /** to : 22 feb 2011 **/ /** # Version 6.0 : from : 29 oct 2014 **/ /** to : 29 oct 2014 **/ /** # Version 6.1 : from : 05 apr 2021 **/ /** to : 18 dec 2021 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 29 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_halo.h" /* These routines fill the send arrays used by ** all of the halo routines. ** They return: ** - void : in all cases. */ #define DGRAPHHALOFILLNAME dgraphHaloFillGeneric #define DGRAPHHALOFILLSIZE attrglbsiz #define DGRAPHHALOFILLCOPY(d,s,n) memCpy ((d), (s), (n)) #include "dgraph_halo_fill.c" #undef DGRAPHHALOFILLNAME #undef DGRAPHHALOFILLSIZE #undef DGRAPHHALOFILLCOPY #define DGRAPHHALOFILLNAME dgraphHaloFillGnum #define DGRAPHHALOFILLSIZE sizeof (Gnum) #define DGRAPHHALOFILLCOPY(d,s,n) *((Gnum *) (d)) = *((Gnum *) (s)) #include "dgraph_halo_fill.c" #undef DGRAPHHALOFILLNAME #undef DGRAPHHALOFILLSIZE #undef DGRAPHHALOFILLCOPY #define DGRAPHHALOFILLNAME dgraphHaloFillGraphPart #define DGRAPHHALOFILLSIZE sizeof (GraphPart) #define DGRAPHHALOFILLCOPY(d,s,n) *((GraphPart *) (d)) = *((GraphPart *) (s)) #include "dgraph_halo_fill.c" #undef DGRAPHHALOFILLNAME #undef DGRAPHHALOFILLSIZE #undef DGRAPHHALOFILLCOPY #define DGRAPHHALOFILLNAME dgraphHaloFillInt /* In case Gnum is not int */ #define DGRAPHHALOFILLSIZE sizeof (int) #define DGRAPHHALOFILLCOPY(d,s,n) *((int *) (d)) = *((int *) (s)) #include "dgraph_halo_fill.c" #undef DGRAPHHALOFILLNAME #undef DGRAPHHALOFILLSIZE #undef DGRAPHHALOFILLCOPY static void dgraphHaloFill ( const Dgraph * restrict const grafptr, const void * restrict const attrgsttab, /* Attribute array to diffuse */ int attrglbsiz, /* Type extent of attribute */ byte * restrict const attrsndtab, /* Array for packing data to send */ int * const senddsptab, /* Temporary displacement array */ const int * restrict const sendcnttab) /* Count array */ { int procnum; byte ** attrdsptab; attrdsptab = (byte **) senddsptab; /* TRICK: use senddsptab (int *) as attrdsptab (byte **) */ attrdsptab[0] = attrsndtab; /* Pre-set send arrays for send buffer filling routines */ for (procnum = 1; procnum < grafptr->procglbnbr; procnum ++) attrdsptab[procnum] = attrdsptab[procnum - 1] + sendcnttab[procnum - 1] * attrglbsiz; if (attrglbsiz == sizeof (Gnum)) dgraphHaloFillGnum (grafptr, attrgsttab, attrglbsiz, attrdsptab); else if (attrglbsiz == sizeof (GraphPart)) dgraphHaloFillGraphPart (grafptr, attrgsttab, attrglbsiz, attrdsptab); else if (attrglbsiz == sizeof (int)) /* In case Gnum is not int (suitable for float's too) */ dgraphHaloFillInt (grafptr, attrgsttab, attrglbsiz, attrdsptab); else /* Generic but slower fallback routine */ dgraphHaloFillGeneric (grafptr, attrgsttab, attrglbsiz, attrdsptab); senddsptab[0] = 0; /* Pre-set send arrays for data sending routines */ for (procnum = 1; procnum < grafptr->procglbnbr; procnum ++) senddsptab[procnum] = senddsptab[procnum - 1] + sendcnttab[procnum - 1]; } /* This function checks that the data of proc{snd,rcv}tab ** are consistent. */ #ifdef SCOTCH_DEBUG_DGRAPH2 int dgraphHaloCheck ( const Dgraph * restrict const grafptr) { int * proctab; /* Array to collect data */ int procnum; int o; if ((proctab = memAlloc (grafptr->procglbnbr * sizeof (int))) == NULL) { errorPrint ("dgraphHaloCheck: out of memory"); return (1); } if (MPI_Alltoall (grafptr->procsndtab, 1, MPI_INT, proctab, 1, MPI_INT, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphHaloCheck: communication error"); memFree (proctab); /* Free group leader */ return (1); } o = 0; for (procnum = 0; procnum < grafptr->procglbnbr; procnum ++) { if (proctab[procnum] != grafptr->procrcvtab[procnum]) { errorPrint ("dgraphHaloCheck: data error"); o = 1; break; } } memFree (proctab); /* Free group leader */ return (o); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ /* These functions perform a synchronous collective ** halo diffusion operation on the ghost array given ** on input. ** It returns: ** - 0 : if the halo has been successfully propagated. ** - !0 : on error. */ static int dgraphHaloSync2 ( Dgraph * restrict const grafptr, void * restrict const attrgsttab, /* Attribute array to share */ const MPI_Datatype attrglbtype, /* Attribute datatype */ byte ** const attrsndptr, /* Pointer to array for packing data to send */ int ** const senddspptr, /* Pointers to communication displacement arrays */ int ** const recvdspptr, MPI_Request ** const requptr) /* Pointer to local request array for point-to-point */ { #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Aint attrglbtmp; /* Lower bound of attribute datatype (not used) */ #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Aint attrglbsiz; /* Extent of attribute datatype */ int procngbsiz; /* Size of request array for point-to-point communications */ int procngbnum; int * restrict recvdsptab; const int * restrict procrcvtab; if (dgraphGhst (grafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("dgraphHaloSync2: cannot compute ghost edge array"); return (1); } procngbsiz = ((grafptr->flagval & DGRAPHCOMMPTOP) != 0) ? grafptr->procngbnbr : 0; #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Type_get_extent (attrglbtype, &attrglbtmp, &attrglbsiz); /* Get type extent */ #else /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Type_extent (attrglbtype, &attrglbsiz); /* Get type extent */ #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ if (memAllocGroup ((void **) (void *) attrsndptr, (size_t) (grafptr->procsndnbr * attrglbsiz), senddspptr, (size_t) (grafptr->procglbnbr * MAX (sizeof (int), sizeof (byte *))), /* TRICK: use senddsptab (int *) as attrdsptab (byte **) */ recvdspptr, (size_t) (grafptr->procglbnbr * sizeof (int)), requptr, (size_t) (procngbsiz * 2 * sizeof (MPI_Request)), NULL) == NULL) { errorPrint ("dgraphHaloSync2: out of memory"); return (1); } dgraphHaloFill (grafptr, attrgsttab, (int) attrglbsiz, *attrsndptr, *senddspptr, grafptr->procsndtab); /* Fill data arrays */ recvdsptab = *recvdspptr; procrcvtab = grafptr->procrcvtab; recvdsptab[0] = grafptr->vertlocnbr; for (procngbnum = 1; procngbnum < grafptr->procglbnbr; procngbnum ++) recvdsptab[procngbnum] = recvdsptab[procngbnum - 1] + procrcvtab[procngbnum - 1]; #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphHaloCheck (grafptr) != 0) { errorPrint ("dgraphHaloSync2: invalid communication data"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } int dgraphHaloSync ( Dgraph * restrict const grafptr, void * restrict const attrgsttab, /* Attribute array to share */ const MPI_Datatype attrglbtype) /* Attribute datatype */ { byte * attrsndtab; /* Array for packing data to send */ int * senddsptab; int * recvdsptab; MPI_Request * requtab; int o; if (dgraphHaloSync2 (grafptr, attrgsttab, attrglbtype, &attrsndtab, &senddsptab, &recvdsptab, &requtab) != 0) /* Prepare communication arrays */ return (1); o = 0; /* Assume success */ if ((grafptr->flagval & DGRAPHCOMMPTOP) != 0) { /* If point-to-point exchange */ #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Aint attrglbtmp; /* Lower bound of attribute datatype (not used) */ #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Aint attrglbsiz; /* Extent of attribute datatype */ int procngbnbr; int procngbnum; MPI_Comm proccomm; int requnbr; proccomm = grafptr->proccomm; procngbnbr = grafptr->procngbnbr; #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Type_get_extent (attrglbtype, &attrglbtmp, &attrglbsiz); /* Get type extent */ #else /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Type_extent (attrglbtype, &attrglbsiz); /* Get type extent */ #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ for (procngbnum = procngbnbr - 1, requnbr = 0; procngbnum >= 0; procngbnum --, requnbr ++) { /* Post receives first */ int procglbnum; procglbnum = grafptr->procngbtab[procngbnum]; if (MPI_Irecv ((byte *) attrgsttab + recvdsptab[procglbnum] * attrglbsiz, grafptr->procrcvtab[procglbnum], attrglbtype, procglbnum, TAGHALO, proccomm, requtab + requnbr) != MPI_SUCCESS) { errorPrint ("dgraphHaloSync: communication error (1)"); o = 1; break; } } for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++, requnbr ++) { /* Post sends afterwards */ int procglbnum; procglbnum = grafptr->procngbtab[procngbnum]; if (MPI_Isend (attrsndtab + senddsptab[procglbnum] * attrglbsiz, grafptr->procsndtab[procglbnum], attrglbtype, procglbnum, TAGHALO, proccomm, requtab + requnbr) != MPI_SUCCESS) { errorPrint ("dgraphHaloSync: communication error (2)"); o = 1; break; } } if (MPI_Waitall (requnbr, requtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { errorPrint ("dgraphHaloSync: communication error (3)"); o = 1; } } else { /* Collective communication */ if (MPI_Alltoallv (attrsndtab, grafptr->procsndtab, senddsptab, attrglbtype, /* Perform diffusion */ attrgsttab, grafptr->procrcvtab, recvdsptab, attrglbtype, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphHaloSync: communication error (4)"); o = 1; } } memFree (attrsndtab); /* Free group leader */ return (o); } /* This function performs an asynchronous collective ** halo diffusion operation on the ghost array given ** on input. It fills the given request structure with ** the relevant data. ** It returns: ** - 0 : if the halo has been successfully propagated. ** - !0 : on error. */ void dgraphHaloAsync ( Dgraph * restrict const grafptr, void * restrict const attrgsttab, /* Attribute array to share */ const MPI_Datatype attrglbtype, /* Attribute datatype */ DgraphHaloRequest * restrict requptr) { #ifdef SCOTCH_MPI_ASYNC_COLL int * senddsptab; int * recvdsptab; MPI_Request * requtab; /* Not used as only a single asynchronous communication takes place */ requptr->flagval = 1; /* Assume error */ requptr->attrsndtab = NULL; /* No memory */ if (dgraphHaloSync2 (grafptr, attrgsttab, attrglbtype, &requptr->attrsndtab, &senddsptab, &recvdsptab, &requtab) != 0) { /* Prepare communication arrays */ errorPrint ("dgraphHaloAsync: cannot create halo exchange arrays"); return; } if (MPI_Ialltoallv (requptr->attrsndtab, grafptr->procsndtab, senddsptab, attrglbtype, /* Perform asynchronous collective communication */ attrgsttab, grafptr->procrcvtab, recvdsptab, attrglbtype, grafptr->proccomm, &requptr->requval) != MPI_SUCCESS) { errorPrint ("dgraphHaloAsync: communication error"); /* Group leader will be freed on wait routine */ return; } requptr->flagval = -1; /* Communication successfully launched */ #else /* SCOTCH_MPI_ASYNC_COLL */ requptr->flagval = dgraphHaloSync (grafptr, attrgsttab, attrglbtype); /* Else perform synchronous communication */ #endif /* SCOTCH_MPI_ASYNC_COLL */ } /* This function performs an asynchronous collective ** halo diffusion operation on the ghost array given ** on input. It fills the given request structure with ** the relevant data. ** It returns: ** - 0 : if the halo has been successfully propagated. ** - !0 : on error. */ int dgraphHaloWait ( DgraphHaloRequest * restrict requptr) { #ifdef SCOTCH_MPI_ASYNC_COLL if (requptr->flagval == -1) /* If communication launched */ requptr->flagval = (MPI_Wait (&requptr->requval, MPI_STATUS_IGNORE) != MPI_SUCCESS); /* Wait for completion of asynchronous collective communication */ if (requptr->attrsndtab != NULL) /* Free group leader if it was successfully allocated before */ memFree (requptr->attrsndtab); #endif /* SCOTCH_MPI_ASYNC_COLL */ return (requptr->flagval); /* Return asynchronous or synchronous error code */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_halo.h000066400000000000000000000074001514310134000263370ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2018,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_halo.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the asynchronous halo **/ /** exchange routine. **/ /** **/ /** DATES : # Version 5.0 : from : 28 dec 2007 **/ /** to : 05 feb 2008 **/ /** # Version 5.1 : from : 28 aug 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 24 dec 2021 **/ /** to : 24 dec 2021 **/ /** # Version 7.0 : from : 18 dec 2021 **/ /** to : 18 dec 2021 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /* Sort structure for ghost edges. */ typedef struct DgraphHaloRequest_ { int flagval; #ifdef SCOTCH_MPI_ASYNC_COLL byte * attrsndtab; /* Group leader for memory freeing */ MPI_Request requval; /* MPI asynchronous communication request */ #endif /* SCOTCH_MPI_ASYNC_COLL */ } DgraphHaloRequest; /* ** The function prototypes. */ void dgraphHaloAsync (Dgraph * restrict const, void * restrict const, const MPI_Datatype, DgraphHaloRequest * restrict); int dgraphHaloWait (DgraphHaloRequest * restrict); int dgraphHaloCheck (const Dgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_halo_fill.c000066400000000000000000000073761514310134000273540ustar00rootroot00000000000000/* Copyright 2007-2010 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_halo_fill.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel static mapper. **/ /** This module contains the halo update **/ /** routines. **/ /** **/ /** # Version 5.0 : from : 31 dec 2006 **/ /** to : 05 feb 2008 **/ /** # Version 5.1 : from : 28 aug 2008 **/ /** to : 29 aug 2010 **/ /** **/ /************************************************************/ /* This function fills the send array used by ** all of the halo routines. ** It returns: ** - void : in all cases. */ static void DGRAPHHALOFILLNAME ( const Dgraph * restrict const grafptr, const void * restrict const attrgsttab, /* Attribute array to diffuse */ const int attrglbsiz, /* Type extent of attribute */ byte ** restrict const attrdsptab) /* Temporary address displacement array */ { byte * restrict attrgstptr; const int * restrict procsidptr; const int * restrict procsidnnd; for (procsidptr = grafptr->procsidtab, procsidnnd = procsidptr + grafptr->procsidnbr, attrgstptr = (byte *) attrgsttab; procsidptr < procsidnnd; procsidptr ++) { int procsidval; procsidval = *procsidptr; if (procsidval < 0) attrgstptr -= ((Gnum) procsidval) * DGRAPHHALOFILLSIZE; else { byte * attrdspptr; attrdspptr = attrdsptab[procsidval]; attrdsptab[procsidval] = attrdspptr + DGRAPHHALOFILLSIZE; /* Skip to next position in send buffer */ DGRAPHHALOFILLCOPY (attrdspptr, attrgstptr, DGRAPHHALOFILLSIZE); } } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_induce.c000066400000000000000000000477451514310134000266760ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** subgraph-making functions. **/ /** **/ /** DATES : # Version 5.0 : from : 08 apr 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 31 mar 2008 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 29 aug 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ int dgraphInduce2 ( Dgraph * restrict const orggrafptr, Gnum (* orgfuncptr) (Dgraph * restrict const, Dgraph * restrict const, const void * restrict const, Gnum * restrict const), const void * const orgdataptr, /* Pointer to routine-specific data */ const Gnum indvertlocnbr, /* Number of vertices in induced subgraph */ Gnum * indvnumloctmp, /* Pointer to temporary index array; TRICK: [alias] */ Dgraph * restrict const indgrafptr) { Gnum * restrict orgindxgsttax; /* Based access to vertex translation array */ Gnum indvertlocnnd; /* Based index of end of local vertex array */ Gnum indvertlocnum; /* Number of current vertex in induced graph */ Gnum indvelolocnbr; /* Size of local vertex load array */ Gnum indvelolocsum; /* Sum of vertex loads */ Gnum * indvnumloctax; /* TRICK: maybe alias of indvnumloctmp */ Gnum indvlbllocnbr; /* Size of local vertex label array */ Gnum indedgelocmax; /* (Approximate) number of edges in induced graph */ Gnum indedgelocnbr; /* Real number of edges in induced graph */ Gnum indedgelocnum; Gnum * restrict indedloloctax; Gnum inddegrlocmax; /* Local maximum degree */ Gnum baseval; int cheklocval; int chekglbval; const Gnum * restrict const orgvertloctax = orggrafptr->vertloctax; const Gnum * restrict const orgvendloctax = orggrafptr->vendloctax; const Gnum * restrict const orgvnumloctax = orggrafptr->vnumloctax; const Gnum * restrict const orgvlblloctax = orggrafptr->vlblloctax; const Gnum * restrict const orgveloloctax = orggrafptr->veloloctax; const Gnum * restrict const orgedloloctax = orggrafptr->edloloctax; if (dgraphGhst (orggrafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("dgraphInduce2: cannot compute ghost edge array"); return (1); } baseval = orggrafptr->baseval; indgrafptr->flagval |= (DGRAPHFREEALL ^ DGRAPHFREECOMM) | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; indgrafptr->baseval = baseval; indgrafptr->vertlocnbr = indvertlocnbr; /* Must be set before orgfuncptr() is called */ indgrafptr->vertlocnnd = indvertlocnbr + baseval; if (orgveloloctax != NULL) { indvelolocnbr = indvertlocnbr; indvelolocsum = 0; } else { indvelolocnbr = 0; indvelolocsum = indvertlocnbr; } indvlbllocnbr = (orgvlblloctax != NULL) ? indvertlocnbr : 0; indedgelocmax = orggrafptr->edgelocnbr; /* Choose best upper bound on number of edges (avoid multiply overflow) */ if ((orggrafptr->degrglbmax > 0) && (indvertlocnbr < (indedgelocmax / orggrafptr->degrglbmax))) indedgelocmax = indvertlocnbr * orggrafptr->degrglbmax; if (orggrafptr->edloloctax != NULL) /* If graph has edge weights */ indedgelocmax *= 2; /* Account for edge weights */ cheklocval = chekglbval = 0; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &indgrafptr->procdsptab, (size_t) ((orggrafptr->procglbnbr + 1) * sizeof (Gnum)), &indgrafptr->proccnttab, (size_t) (orggrafptr->procglbnbr * sizeof (Gnum)), &indgrafptr->procngbtab, (size_t) (orggrafptr->procglbnbr * sizeof (int)), &indgrafptr->procrcvtab, (size_t) (orggrafptr->procglbnbr * sizeof (int)), &indgrafptr->procsndtab, (size_t) (orggrafptr->procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphInduce2: out of memory (1)"); cheklocval = 1; } else if (memAllocGroup ((void **) (void *) /* Allocate distributed graph public data */ &indgrafptr->vertloctax, (size_t) ((indvertlocnbr + 1) * sizeof (Gnum)), /* Compact vertex array */ &indgrafptr->vnumloctax, (size_t) (indvertlocnbr * sizeof (Gnum)), &indgrafptr->veloloctax, (size_t) (indvelolocnbr * sizeof (Gnum)), &indgrafptr->vlblloctax, (size_t) (indvlbllocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphInduce2: out of memory (2)"); cheklocval = 1; } else if (indgrafptr->vertloctax -= baseval, indgrafptr->vnumloctax -= baseval, indgrafptr->veloloctax = (orgveloloctax != NULL) ? indgrafptr->veloloctax - baseval : NULL, indgrafptr->vlblloctax = indgrafptr->vlblloctax - baseval, /* If no vertex labels, vlblloctax will point to vnumloctax afterward */ memAllocGroup ((void **) (void *) &indgrafptr->edgeloctax, (size_t) (indedgelocmax * sizeof (Gnum)), /* Pre-allocate space for edgetab (and edlotab) */ &orgindxgsttax, (size_t) (orggrafptr->vertgstnbr * sizeof (Gnum)), NULL) == NULL) { /* orgindxgsttab is at the end */ errorPrint ("dgraphInduce2: out of memory (3)"); cheklocval = 1; } else indgrafptr->edgeloctax -= baseval; if (cheklocval != 0) { /* In case of memory error */ Gnum procngbnum; Gnum dummyval; dummyval = -1; chekglbval = 1; if (MPI_Allgather (&dummyval, 1, GNUM_MPI, /* Use proccnttab of orggraf as dummy receive array (will be regenerated) */ orggrafptr->proccnttab, 1, GNUM_MPI, indgrafptr->proccomm) != MPI_SUCCESS) errorPrint ("dgraphInduce2: communication error (1)"); for (procngbnum = 1; procngbnum <= orggrafptr->procglbnbr; procngbnum ++) /* Rebuild proccnttab of orggraf */ orggrafptr->proccnttab[procngbnum - 1] = orggrafptr->procdsptab[procngbnum] - orggrafptr->procdsptab[procngbnum - 1]; } else { indgrafptr->procdsptab[0] = indvertlocnbr; if (MPI_Allgather (&indgrafptr->procdsptab[0], 1, GNUM_MPI, &indgrafptr->proccnttab[0], 1, GNUM_MPI, indgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphInduce2: communication error (2)"); chekglbval = 1; } else { Gnum procngbnum; indgrafptr->procdsptab[0] = baseval; /* Build vertex-to-process array */ for (procngbnum = 0; procngbnum < indgrafptr->procglbnbr; procngbnum ++) { /* Process potential error flags from other processes */ if (indgrafptr->procdsptab[procngbnum] < 0) { /* If error notified by another process */ chekglbval = 1; break; } indgrafptr->procdsptab[procngbnum + 1] = indgrafptr->procdsptab[procngbnum] + indgrafptr->proccnttab[procngbnum]; } } indgrafptr->procvrttab = indgrafptr->procdsptab; /* Graph does not have holes */ } if (chekglbval != 0) { /* If something went wrong in all of the above */ dgraphFree (indgrafptr); return (1); } memSet (orgindxgsttax, ~0, orggrafptr->vertlocnbr * sizeof (Gnum)); /* Preset index array */ orgindxgsttax -= baseval; indedgelocmax = orgfuncptr (indgrafptr, orggrafptr, orgdataptr, orgindxgsttax); /* Call flagging subroutine */ if (dgraphHaloSync (orggrafptr, (byte *) (orgindxgsttax + baseval), GNUM_MPI) != 0) { /* Share global indexing of subgraph vertices */ errorPrint ("dgraphInduce2: cannot perform halo exchange"); dgraphFree (indgrafptr); return (1); } if (indvnumloctmp == NULL) /* indgrafptr->vnumloctax did not exist when function was called */ indvnumloctmp = indgrafptr->vnumloctax; indedloloctax = (orggrafptr->edloloctax != NULL) ? indgrafptr->edgeloctax + indedgelocmax : NULL; inddegrlocmax = 0; for (indvertlocnum = indedgelocnum = baseval, indvertlocnnd = indvertlocnbr + baseval; indvertlocnum < indvertlocnnd; indvertlocnum ++) { Gnum orgvertlocnum; Gnum orgedgelocnum; orgvertlocnum = indvnumloctmp[indvertlocnum]; indgrafptr->vertloctax[indvertlocnum] = indedgelocnum; if (orgveloloctax != NULL) { /* If graph has vertex weights */ indvelolocsum += /* Accumulate vertex loads */ indgrafptr->veloloctax[indvertlocnum] = orgveloloctax[orgvertlocnum]; } if (orgvlblloctax != NULL) /* If graph has vertex labels */ indgrafptr->vlblloctax[indvertlocnum] = orgvlblloctax[orgvertlocnum]; for (orgedgelocnum = orgvertloctax[orgvertlocnum]; orgedgelocnum < orgvendloctax[orgvertlocnum]; orgedgelocnum ++) { Gnum indvertgstend; indvertgstend = orgindxgsttax[orggrafptr->edgegsttax[orgedgelocnum]]; if (indvertgstend != ~0) { /* If edge should be kept */ indgrafptr->edgeloctax[indedgelocnum] = indvertgstend; if (indedloloctax != NULL) indedloloctax[indedgelocnum] = orgedloloctax[orgedgelocnum]; indedgelocnum ++; } } if (inddegrlocmax < (indedgelocnum - indgrafptr->vertloctax[indvertlocnum])) inddegrlocmax = (indedgelocnum - indgrafptr->vertloctax[indvertlocnum]); } indedgelocnbr = indedgelocnum - baseval; indgrafptr->vertloctax[indvertlocnum] = indedgelocnum; /* Mark end of edge array */ indgrafptr->vendloctax = indgrafptr->vertloctax + 1; /* Induced graph is compact */ indgrafptr->velolocsum = indvelolocsum; indgrafptr->edgelocnbr = indedgelocnbr; indgrafptr->edgelocsiz = indedgelocnbr; if (orgvlblloctax == NULL) /* If we didn't have vertex labels, use vertex index array as vertex label array */ indgrafptr->vlblloctax = indgrafptr->vnumloctax; if (indedloloctax != NULL) { /* Re-allocate arrays and delete orgindxtab */ size_t indedlooftval; /* Offset of edge load array with respect to edge array */ indedlooftval = indedloloctax - indgrafptr->edgeloctax; indgrafptr->edgeloctax = memRealloc (indgrafptr->edgeloctax + baseval, (indedlooftval + indedgelocnbr) * sizeof (Gnum)); indgrafptr->edgeloctax -= baseval; indedloloctax = indgrafptr->edgeloctax + indedlooftval; /* Use old index into old array as new index to avoid alignment problems */ } else { indgrafptr->edgeloctax = memRealloc (indgrafptr->edgeloctax + baseval, indedgelocnbr * sizeof (Gnum)); indgrafptr->edgeloctax -= baseval; } indvertlocnum = baseval; indvnumloctax = indgrafptr->vnumloctax; /* TRICK: maybe alias */ if (orgvnumloctax != NULL) { /* Adjust vnumloctax */ for ( ; indvertlocnum < indvertlocnnd; indvertlocnum ++) indvnumloctax[indvertlocnum] = orgvnumloctax[indvnumloctmp[indvertlocnum]]; /* TRICK: indvnumloctmp and indgrafptr->vnumloctax may be aliases */ } else { Gnum orgvertglbadj; orgvertglbadj = orggrafptr->procvrttab[orggrafptr->proclocnum] - baseval; /* Set adjustement for global indexing */ for ( ; indvertlocnum < indvertlocnnd; indvertlocnum ++) indvnumloctax[indvertlocnum] = indvnumloctmp[indvertlocnum] + orgvertglbadj; /* TRICK: indvnumloctmp and indgrafptr->vnumloctax may be aliases */ } indgrafptr->edloloctax = indedloloctax; indgrafptr->degrglbmax = inddegrlocmax; /* Local maximum degree will be turned into global maximum degree */ if (dgraphBuild4 (indgrafptr) != 0) { errorPrint ("dgraphInduce2: cannot build induced graph"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (indgrafptr) != 0) { /* Check graph consistency */ errorPrint ("dgraphInduce2: inconsistent graph data"); dgraphFree (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } /* This routine builds the graph induced ** by the original graph and the list of ** selected vertices. ** The induced vnumtab array is the global ** translation of the list array if the ** original graph does not have a vnumtab, ** or the proper subset of the original ** vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static Gnum dgraphInduceList2 ( Dgraph * restrict const indgrafptr, Dgraph * restrict const orggrafptr, const void * restrict const orgdataptr, /* Data pointer is list array pointer */ Gnum * restrict const orgindxgsttax) { Gnum orglistnbr; Gnum orglistnum; Gnum indvertglbnum; Gnum indedgelocmax; const Gnum * restrict const orgvertloctax = orggrafptr->vertloctax; const Gnum * restrict const orgvendloctax = orggrafptr->vendloctax; const Gnum * restrict const orglisttab = (const Gnum * restrict) orgdataptr; for (orglistnum = 0, indvertglbnum = indgrafptr->procvrttab[indgrafptr->proclocnum], /* Fill index array while recomputing tighter upper bound on arcs */ orglistnbr = indgrafptr->vertlocnbr, indedgelocmax = 0; orglistnum < orglistnbr; orglistnum ++, indvertglbnum ++) { Gnum orgvertlocnum; orgvertlocnum = orglisttab[orglistnum]; orgindxgsttax[orgvertlocnum] = indvertglbnum; /* Mark selected vertices */ indedgelocmax += orgvendloctax[orgvertlocnum] - orgvertloctax[orgvertlocnum]; } return (indedgelocmax); } int dgraphInduceList ( Dgraph * restrict const orggrafptr, const Gnum orglistnbr, const Gnum * const orglisttab, /* Local list of kept vertices */ Dgraph * restrict const indgrafptr) { return (dgraphInduce2 (orggrafptr, dgraphInduceList2, (const void * const) orglisttab, orglistnbr, (Gnum * const) (orglisttab - orggrafptr->baseval), indgrafptr)); } /* This routine builds the graph induced ** by the original graph and the vector of ** selected vertices. ** The induced vnumtab array is the global ** translation of the list array if the ** original graph does not have a vnumtab, ** or the proper subset of the original ** vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ typedef struct DgraphInducePartData_ { const GraphPart * orgpartloctax; GraphPart indpartval; } DgraphInducePartData; static Gnum dgraphInducePart2 ( Dgraph * restrict const indgrafptr, Dgraph * restrict const orggrafptr, const void * restrict const orgdataptr, Gnum * restrict const orgindxgsttax) { Gnum orgvertlocnnd; Gnum orgvertlocnum; Gnum indvertlocnum; Gnum indvertglbnum; Gnum indedgelocmax; const Gnum * restrict const orgvertloctax = orggrafptr->vertloctax; const Gnum * restrict const orgvendloctax = orggrafptr->vendloctax; const GraphPart * restrict const orgpartloctax = ((const DgraphInducePartData * restrict const) orgdataptr)->orgpartloctax; const GraphPart indpartval = ((const DgraphInducePartData * restrict const) orgdataptr)->indpartval; Gnum * restrict const indvnumloctax = indgrafptr->vnumloctax; for (orgvertlocnum = indvertlocnum = orggrafptr->baseval, indvertglbnum = indgrafptr->procvrttab[indgrafptr->proclocnum], /* Fill index array while recomputing tighter upper bound on arcs */ orgvertlocnnd = orggrafptr->vertlocnnd, indedgelocmax = 0; orgvertlocnum < orgvertlocnnd; orgvertlocnum ++) { if (orgpartloctax[orgvertlocnum] == indpartval) { orgindxgsttax[orgvertlocnum] = indvertglbnum; /* Mark selected vertices */ indvnumloctax[indvertlocnum] = orgvertlocnum; indedgelocmax += orgvendloctax[orgvertlocnum] - orgvertloctax[orgvertlocnum]; indvertlocnum ++, indvertglbnum ++; } else orgindxgsttax[orgvertlocnum] = ~0; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((indvertlocnum - orggrafptr->baseval) != indgrafptr->vertlocnbr) { errorPrint ("dgraphInducePart2: inconsistent data"); dgraphFree (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (indedgelocmax); } int dgraphInducePart ( Dgraph * restrict const orggrafptr, /* Pointer to original distributed graph */ const GraphPart * restrict const orgpartloctax, /* Based array of local vertex partition flags */ const Gnum indvertlocnbr, /* Number of local vertices in selected part */ const GraphPart indpartval, Dgraph * restrict const indgrafptr) { DgraphInducePartData orgdatadat; orgdatadat.orgpartloctax = orgpartloctax; orgdatadat.indpartval = indpartval; return (dgraphInduce2 (orggrafptr, dgraphInducePart2, &orgdatadat, indvertlocnbr, NULL, indgrafptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_io_load.c000066400000000000000000001125451514310134000270240ustar00rootroot00000000000000/* Copyright 2007-2009,2012,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_io_load.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These routines load a distributed **/ /** graph from either centralized or **/ /** distributed files. **/ /** **/ /** # Version 5.0 : from : 28 apr 2007 **/ /** to : 24 mar 2008 **/ /** # Version 5.1 : from : 23 jun 2008 **/ /** to : 27 jan 2009 **/ /** # Version 6.0 : from : 25 aug 2012 **/ /** to : 18 nov 2012 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 07 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_DGRAPH_IO_LOAD #include "module.h" #include "common.h" #include "graph.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "dgraph_io_load.h" /* This routine loads a distributed source ** graph from the given stream(s). Either ** one process holds a non-NULL stream ** of a centralized graph, or all of them ** hold valid streams to either a centralized ** or a distributed graph. ** It returns: ** - 0 : on success. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (6, 3) DGRAPHALLREDUCEMAXSUMOP (10, 2) int dgraphLoad ( Dgraph * restrict const grafptr, /* Not const since halo may update structure */ FILE * const fileptr, /* One single centralized stream or distributed ones */ const Gnum baseval, /* Base value (-1 means keep file base) */ const GraphLoadFlag flagval) /* Graph loading flags */ { Gnum reduloctab[9]; Gnum reduglbtab[9]; Gnum versval; #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { /* Synchronize for debugging */ errorPrint ("dgraphLoad: communication error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ reduloctab[0] = baseval; /* Exchange baseval to check it is the same for all */ reduloctab[1] = - baseval; reduloctab[2] = (Gnum) flagval; /* Exchange flagval to check it is the same for all */ reduloctab[3] = - (Gnum) flagval; reduloctab[4] = 0; /* Set uneffective values for versval */ reduloctab[5] = -2; reduloctab[6] = /* Assume everything will be fine */ reduloctab[7] = /* Assume does not have a stream */ reduloctab[8] = 0; if (fileptr != NULL) { if (intLoad (fileptr, &versval) != 1) { /* Read version number */ errorPrint ("dgraphLoad: bad input"); versval = 0; reduloctab[6] = 1; } else if ((versval != 0) && (versval != 2)) { /* If not a graph format */ errorPrint ("dgraphLoad: not a graph format"); reduloctab[6] = 1; } reduloctab[4] = versval; reduloctab[5] = - versval; reduloctab[7] = 1; /* One more process involved in loading */ reduloctab[8] = grafptr->proclocnum; } if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 6, 3, grafptr->proccomm) != 0) { errorPrint ("dgraphLoad: communication error (2)"); return (1); } if (reduglbtab[6] != 0) /* Return from previous errors */ return (1); if ((reduglbtab[0] != - reduglbtab[1])) { errorPrint ("dgraphLoad: inconsistent base value"); return (1); } if ((reduglbtab[2] != - reduglbtab[3])) { errorPrint ("dgraphLoad: inconsistent flag value"); return (1); } if ((reduglbtab[7] != 0) && (reduglbtab[4] != - reduglbtab[5])) { errorPrint ("dgraphLoad: inconsistent graph file version value"); return (1); } if (reduglbtab[4] == 2) { /* If distributed graph format */ if (reduglbtab[7] == grafptr->procglbnbr) /* If as many input streams as processes */ return (dgraphLoadDist (grafptr, fileptr, baseval, flagval)); /* Read distributed graph */ } else { /* If centralized graph format */ if (reduglbtab[7] == 1) /* If only one reader stream */ return (dgraphLoadCent (grafptr, fileptr, baseval, flagval, reduglbtab[8])); /* Distribute centralized graph from known root */ else if (reduglbtab[7] == grafptr->procglbnbr) return (dgraphLoadMulti (grafptr, fileptr, baseval, flagval)); /* Read multi-centralized graph */ } errorPrint ((reduglbtab[7] == 0) ? "dgraphLoad: no input stream provided" : "dgraphLoad: invalid number of input streams"); return (1); } /* This routine loads a centralized source ** graph from a single stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dgraphLoadCent ( Dgraph * restrict const grafptr, /* Distributed graph to load */ FILE * const fileptr, /* One single centralized stream */ Gnum baseval, /* Base value (-1 means keep file base) */ const GraphLoadFlag flagval, /* Graph loading flags */ const int protnum) /* Root process number */ { Gnum vertglbnbr; Gnum vertglbmax; Gnum vertlocnbr; Gnum * vertloctax; /* [norestrict:async] */ Gnum * vertlocptr; Gnum * restrict vertredtax; Gnum velolocnbr; Gnum velolocsum; Gnum * veloloctax; Gnum * restrict veloredtax; Gnum vlbllocnbr; Gnum * vlblloctax; Gnum * restrict vlblredtax; Gnum edgelocnbr; Gnum * edgeloctax; Gnum edgeredmnd; Gnum * restrict edgeredtax; Gnum * edloloctax; Gnum * restrict edloredtax; Gnum degrglbmax; Gnum baseadj; Gnum reduglbtab[5]; char proptab[4]; /* Property string array */ int cheklocval; int chekglbval; int o; #ifdef SCOTCH_DEBUG_DGRAPH2 if (((fileptr != NULL) && (protnum != grafptr->proclocnum)) || /* Enforce single stream */ ((fileptr == NULL) && (protnum == grafptr->proclocnum))) { errorPrint ("dgraphLoadCent: invalid parameter (1)"); return (1); } if ((protnum < 0) || (protnum >= grafptr->procglbnbr)) { errorPrint ("dgraphLoadCent: invalid parameter (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ reduglbtab[0] = 0; /* Assume everything will be fine */ if (fileptr != NULL) { if ((intLoad (fileptr, &reduglbtab[1]) != 1) || /* Read rest of header */ (intLoad (fileptr, &reduglbtab[2]) != 1) || (intLoad (fileptr, &reduglbtab[3]) != 1) || (intLoad (fileptr, &reduglbtab[4]) != 1) || (reduglbtab[4] < 0) || (reduglbtab[4] > 111)) { errorPrint ("dgraphLoadCent: bad input (1)"); cheklocval = 1; } } if (MPI_Bcast (&reduglbtab[0], 5, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (1)"); return (1); } if (reduglbtab[0] != 0) return (1); if (baseval == -1) { /* If keep file graph base */ baseval = reduglbtab[3]; /* Set graph base as file base */ baseadj = 0; /* No base adjustment needed */ } else /* If set graph base */ baseadj = baseval - reduglbtab[3]; /* Update base adjust */ vertglbnbr = reduglbtab[1]; vertglbmax = DATASIZE (vertglbnbr, grafptr->procglbnbr, 0); vertlocnbr = DATASIZE (vertglbnbr, grafptr->procglbnbr, grafptr->proclocnum); sprintf (proptab, "%3.3d", (int) reduglbtab[4]); /* Compute file properties */ proptab[0] -= '0'; /* Vertex labels flag */ proptab[1] -= '0'; /* Edge weights flag */ proptab[2] -= '0'; /* Vertex loads flag */ velolocnbr = ((proptab[2] != 0) && ((flagval & GRAPHIONOLOADVERT) == 0)) ? vertglbmax : 0; vlbllocnbr = (proptab[0] != 0) ? vertglbmax : 0; vlblloctax = veloloctax = vertloctax = edgeloctax = /* Send arrays not allocated yet for root process */ edgeredtax = NULL; /* No read edge array yet */ cheklocval = 0; if ((vertlocptr = memAlloc ((vertglbmax + 2 + velolocnbr + vlbllocnbr) * sizeof (Gnum))) == NULL) { /* TRICK: "+2" for space for velolocsum */ errorPrint ("dgraphLoadCent: out of memory (1)"); cheklocval = 1; } else { vertloctax = vertlocptr -= baseval; vertlocptr += vertglbmax + 2; /* TRICK: "+2" for space for velolocsum */ if ((proptab[2] != 0) && ((flagval & GRAPHIONOLOADVERT) == 0)) { veloloctax = vertlocptr; vertlocptr += vertglbmax; } if (proptab[0] != 0) { vlblloctax = vertlocptr; baseadj = 0; /* No vertex adjustments if vertex labels */ } if (fileptr != NULL) { /* Allocate read edge array */ Gnum edgeredmax; Gnum edloredmax; edgeredmax = reduglbtab[2] / grafptr->procglbnbr + 1; edgeredmax += (edgeredmax >> 2) + 4; /* Add 25% more space for edges than average */ edloredmax = ((proptab[1] != 0) && ((flagval & GRAPHIONOLOADEDGE) == 0)) ? edgeredmax : 0; if ((edgeredtax = memAlloc ((edgeredmax + edloredmax) * sizeof (Gnum))) == NULL) { errorPrint ("dgraphLoadCent: out of memory (2)"); cheklocval = 1; } else { edgeredtax -= baseval; edloredtax = (edloredmax != 0) ? (edgeredtax + edgeredmax) : NULL; vertredtax = vertloctax; /* Prepare read vertex arrays, which will never move */ veloredtax = veloloctax; vlblredtax = vlblloctax; } edgeredmnd = edgeredmax + baseval; } } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (2)"); chekglbval = 1; } if (chekglbval != 0) { if (edgeredtax != NULL) memFree (edgeredtax + baseval); if (vertloctax != NULL) memFree (vertloctax + baseval); return (1); } degrglbmax = 0; /* No maximum degree yet */ if (fileptr != NULL) { Gnum procnum; for (procnum = 0; procnum < grafptr->procglbnbr; procnum ++) { Gnum vertrednnd; Gnum vertrednum; Gnum edgerednum; Gnum veloredsum; for (vertrednum = edgerednum = baseval, veloredsum = 0, vertrednnd = DATASIZE (vertglbnbr, grafptr->procglbnbr, procnum) + baseval; vertrednum < vertrednnd; vertrednum ++) { Gnum degrredval; if (vlblredtax != NULL) { /* If must read label */ Gnum vlblredval; /* Vertex label value to be read */ if (intLoad (fileptr, &vlblredval) != 1) { /* Read label data */ errorPrint ("dgraphLoadCent: bad input (2)"); cheklocval = 1; break; } vlblredtax[vertrednum] = vlblredval; } if (proptab[2] != 0) { /* If must read vertex load */ Gnum veloredval; if (intLoad (fileptr, &veloredval) != 1) { /* Read vertex load data */ errorPrint ("dgraphLoadCent: bad input (3)"); cheklocval = 1; break; } if (veloredtax != NULL) veloredsum += veloredtax[vertrednum] = veloredval; } if (intLoad (fileptr, °rredval) != 1) { /* Read vertex degree */ errorPrint ("dgraphLoadCent: bad input (4)"); cheklocval = 1; break; } if (degrglbmax < degrredval) /* Set maximum degree */ degrglbmax = degrredval; vertredtax[vertrednum] = edgerednum; /* Set index in edge array */ degrredval += edgerednum; if (degrredval > edgeredmnd) { /* Check if edge array overflows */ Gnum edgeredmax; Gnum edgenewmax; Gnum edgenewsiz; Gnum * restrict edgenewtab; edgenewmax = edgeredmax = edgeredmnd - baseval; do /* Increase edge array size by 25 % */ edgenewmax += (edgenewmax >> 2) + 4; while (edgenewmax < (degrredval - baseval)); edgenewsiz = (edloredtax != NULL) ? (2 * edgenewmax) : edgenewmax; if ((edgenewtab = memRealloc (edgeredtax + baseval, edgenewsiz * sizeof (Gnum))) == NULL) { errorPrint ("dgraphLoadCent: out of memory (3)"); cheklocval = 1; break; } edgeredtax = edgenewtab - baseval; edgeredmnd = edgenewmax + baseval; if (edloredtax != NULL) { /* Move edge load array if present */ memMov (edgenewtab + edgenewmax, edgenewtab + edgeredmax, (edgerednum - baseval) * sizeof (Gnum)); edloredtax = edgeredtax + edgenewmax; } } for ( ; edgerednum < degrredval; edgerednum ++) { Gnum edgeredval; /* Value where to read edge end */ if (proptab[1] != 0) { /* If must read edge load */ Gnum edloredval; /* Value where to read edge load */ if (intLoad (fileptr, &edloredval) != 1) { /* Read edge load data */ errorPrint ("dgraphLoadCent: bad input (5)"); cheklocval = 1; break; } if (edloredtax != NULL) edloredtax[edgerednum] = edloredval; } if (intLoad (fileptr, &edgeredval) != 1) { /* Read edge data */ errorPrint ("dgraphLoadCent: bad input (6)"); cheklocval = 1; break; } edgeredtax[edgerednum] = edgeredval + baseadj; } if (cheklocval != 0) break; } vertredtax[vertrednum ++] = edgerednum; /* Set end of edge array */ if (cheklocval == 0) { if (procnum != grafptr->proclocnum) { /* If arrays have to be sent */ MPI_Request requtab[5]; MPI_Status stattab[5]; int requnbr; vertredtax[baseval] = edgerednum - baseval; /* First slot is number of edges */ vertredtax[vertrednum] = (veloredtax != NULL) ? veloredsum : (vertrednnd - baseval); /* Add vertex load sum to send vertex array */ if (MPI_Isend (vertredtax + baseval, vertrednnd - baseval + 2, /* TRICK: "+2" and not "+1" because of space for velolocsum */ GNUM_MPI, procnum, TAGVERTLOCTAB, grafptr->proccomm, &requtab[0]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (5)"); return (1); /* Dirty exit as we can do nothing */ } requnbr = 1; if (veloredtax != NULL) { if (MPI_Isend (veloredtax + baseval, vertrednnd - baseval, GNUM_MPI, procnum, TAGVELOLOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (6)"); return (1); } } if (vlblredtax != NULL) { if (MPI_Isend (vlblredtax + baseval, vertrednnd - baseval, GNUM_MPI, procnum, TAGVLBLLOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (7)"); return (1); } } if (MPI_Recv (&reduglbtab[0], 0, MPI_INT, procnum, MPI_ANY_TAG, grafptr->proccomm, &stattab[0]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (8)"); return (1); } if (stattab[0].MPI_TAG != TAGOK) /* If receiver could not allocate memory for edge arrays */ cheklocval = 1; else { if (MPI_Isend (edgeredtax + baseval, edgerednum - baseval, GNUM_MPI, procnum, TAGEDGELOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (9)"); return (1); } if (edloredtax != NULL) { if (MPI_Isend (edloredtax + baseval, edgerednum - baseval, GNUM_MPI, procnum, TAGEDLOLOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (10)"); return (1); } } MPI_Waitall (requnbr, &requtab[0], &stattab[0]); } } else { /* Arrays are local */ velolocsum = (veloredtax != NULL) ? veloredsum : vertlocnbr; /* Save accumulated values as local data */ edgelocnbr = edgerednum - baseval; if (edgeredmnd - edgerednum > 10000) { /* If array can be compacted */ if (edloredtax != NULL) { memMov (edgeredtax + edgerednum, edloredtax + baseval, edgelocnbr * sizeof (Gnum)); edgeredtax = memRealloc (edgeredtax + baseval, edgelocnbr * 2 * sizeof (Gnum)); edgeredtax -= baseval; edloredtax = edgeredtax + edgelocnbr; } else { edgeredtax = memRealloc (edgeredtax + baseval, edgelocnbr * sizeof (Gnum)); edgeredtax -= baseval; } } edgeloctax = edgeredtax; /* Keep read edge array as local edge array */ edloloctax = edloredtax; if (grafptr->proclocnum == (grafptr->procglbnbr - 1)) { /* If root process is last process */ vertredtax = /* No need to reallocate read arrays */ edgeredtax = NULL; break; /* And we can exit now */ } if ((vertlocptr = memAlloc ((vertglbmax + 2 + velolocnbr + vlbllocnbr) * sizeof (Gnum))) == NULL) { /* TRICK: "+2" for space for velolocsum */ errorPrint ("dgraphLoadCent: out of memory (4)"); cheklocval = 1; } else { Gnum edgeredmax; Gnum edloredmax; vertredtax = vertlocptr -= baseval; vertlocptr += vertglbmax + 2; /* TRICK: "+2" for space for velolocsum */ if (veloredtax != NULL) { veloredtax = vertlocptr; vertlocptr += vertglbmax; } if (vlblredtax != NULL) vlblredtax = vertlocptr; edgeredmax = edgeredmnd - baseval; edloredmax = (edloloctax != NULL) ? edgeredmax : 0; if ((edgeredtax = memAlloc ((edgeredmax + edloredmax) * sizeof (Gnum))) == NULL) { errorPrint ("dgraphLoadCent: out of memory (5)"); cheklocval = 1; } else { edgeredtax -= baseval; if (edloredtax != NULL) edloredtax = edgeredtax + edgeredmax; } } } } if (cheklocval != 0) { /* If error encountered */ for ( ; procnum < grafptr->procglbnbr; procnum ++) { /* Send abortion messages */ if (procnum != grafptr->proclocnum) { /* Abortion messages complete vertloctab receives */ if (MPI_Send (vertredtax + baseval, 0, GNUM_MPI, procnum, TAGVERTLOCTAB, grafptr->proccomm) != MPI_SUCCESS) errorPrint ("dgraphLoadCent: communication error (11)"); } } break; } } if (vertredtax != NULL) { /* Free reader arrays if reallocated */ if (vertredtax != vertloctax) /* If equal, vertloctax will be deallocated afterwards */ memFree (vertredtax + baseval); memFree (edgeredtax + baseval); } } else { /* Process is not reader */ MPI_Request requtab[5]; MPI_Status stattab[5]; int requnbr; int vertrcvnbr; /* int because of the MPI API */ if (MPI_Irecv (vertloctax + baseval, vertlocnbr + 2, GNUM_MPI, /* TRICK: "+2" and not "+1" because of velolocsum */ protnum, TAGVERTLOCTAB, grafptr->proccomm, &requtab[2]) != MPI_SUCCESS) { /* requtab[2] is first surely available slot */ errorPrint ("dgraphLoadCent: communication error (10)"); return (1); /* Dirty exit as we can do nothing */ } requnbr = 0; if (veloloctax != NULL) { if (MPI_Irecv (veloloctax + baseval, vertlocnbr, GNUM_MPI, protnum, TAGVELOLOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (11)"); return (1); } } if (vlblloctax != NULL) { if (MPI_Irecv (vlblloctax + baseval, vertlocnbr, GNUM_MPI, protnum, TAGVLBLLOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (12)"); return (1); } } MPI_Wait (&requtab[2], &stattab[2]); /* Wait until vertloctab received */ MPI_Get_count (&stattab[2], GNUM_MPI, &vertrcvnbr); /* Get size of received array */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (((Gnum) vertrcvnbr != 0) && /* vertrcvnbr == 0 in the case of abortion message */ ((Gnum) vertrcvnbr != (vertlocnbr + 2))) { /* TRICK: "+2" and not "+1" because of velolocsum */ errorPrint ("dgraphLoadCent: invalid vertex array size"); vertrcvnbr = 0; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (vertrcvnbr == 0) { /* Empty message means abortion wanted */ while (requnbr > 0) { /* Cancel all pending requests */ requnbr --; MPI_Cancel (&requtab[requnbr]); MPI_Request_free (&requtab[requnbr]); } /* No more pending requests */ } else { Gnum edlolocnbr; edgelocnbr = vertloctax[baseval]; /* edgelocnbr is first cell */ vertloctax[baseval] = baseval; /* First cell is always baseval */ velolocsum = vertloctax[vertlocnbr + baseval + 1]; /* TRICK: get velolocsum */ edlolocnbr = ((proptab[1] != 0) && ((flagval & GRAPHIONOLOADEDGE) == 0)) ? edgelocnbr : 0; edloloctax = NULL; /* Assume no edge load array */ if ((edgeloctax = memAlloc ((edgelocnbr + edlolocnbr) * sizeof (Gnum))) == NULL) { errorPrint ("dgraphLoadCent: out of memory (6)"); MPI_Send (&cheklocval, 0, MPI_INT, protnum, TAGBAD, grafptr->proccomm); /* Memory could not be allocated */ cheklocval = 1; } else { if (MPI_Irecv (edgeloctax, edgelocnbr, GNUM_MPI, protnum, TAGEDGELOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (13)"); return (1); } if (edlolocnbr != 0) { edloloctax = edgeloctax + edgelocnbr; if (MPI_Irecv (edloloctax, edgelocnbr, GNUM_MPI, protnum, TAGEDLOLOCTAB, grafptr->proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (14)"); return (1); } edloloctax -= baseval; } edgeloctax -= baseval; MPI_Isend (&cheklocval, 0, MPI_INT, protnum, TAGOK, grafptr->proccomm, &requtab[requnbr ++]); /* Send ready to receive */ } } MPI_Waitall (requnbr, &requtab[0], &stattab[0]); /* Wait until all pending communications completed and all arrays received */ } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphLoadCent: communication error (15)"); chekglbval = 1; } if (chekglbval != 0) { if (edgeloctax != NULL) memFree (edgeloctax + baseval); memFree (vertloctax + baseval); return (1); } o = dgraphBuild2 (grafptr, baseval, /* Build distributed graph */ vertlocnbr, vertlocnbr, vertloctax, vertloctax + 1, veloloctax, velolocsum, NULL, vlblloctax, edgelocnbr, edgelocnbr, edgeloctax, NULL, edloloctax, degrglbmax); /* Non-readers will have degrglbmax set to 0 */ grafptr->flagval |= DGRAPHFREETABS | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; return (o); } /* This routine loads a distributed source ** graph from a distributed source graph ** file spread across all of the streams. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dgraphLoadDist ( Dgraph * restrict const grafptr, /* Distributed graph to load */ FILE * const fileptr, /* One single centralized stream */ Gnum baseval, /* Base value (-1 means keep file base) */ const GraphLoadFlag flagval) /* Graph loading flags */ { Gnum proclocnum; Gnum vertlocnbr; Gnum vertlocnnd; Gnum vertlocnum; Gnum * restrict vertloctax; Gnum * vertlocptr; Gnum velolocnbr; Gnum velolocsum; Gnum * restrict veloloctax; Gnum vlbllocnbr; Gnum * restrict vlblloctax; Gnum edgelocnbr; Gnum edgelocnnd; Gnum edgelocnum; Gnum * restrict edgeloctax; Gnum * restrict edloloctax; Gnum degrlocmax; Gnum baseadj; Gnum reduloctab[12]; Gnum reduglbtab[12]; char proptab[4]; /* Property string array */ int cheklocval; int chekglbval; int o; #ifdef SCOTCH_DEBUG_DGRAPH2 if (fileptr == NULL) { errorPrint ("dgraphLoadDist: invalid parameter"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ reduloctab[0] = 0; /* Assume everything will be fine */ o = intLoad (fileptr, &reduloctab[1]); /* Read rest of header */ o += intLoad (fileptr, &proclocnum); o += intLoad (fileptr, &reduloctab[3]); o += intLoad (fileptr, &reduloctab[5]); o += intLoad (fileptr, &reduloctab[10]); o += intLoad (fileptr, &reduloctab[11]); o += intLoad (fileptr, &reduloctab[7]); o += intLoad (fileptr, &reduloctab[9]); if ((o != 8) || (reduloctab[9] < 0) || (reduloctab[9] > 111)) { errorPrint ("dgraphLoadDist: bad input (1)"); reduloctab[0] = 2; /* Immediate abort has maximum value so as to be propagated by MAX reduce */ } reduloctab[2] = - reduloctab[1]; reduloctab[4] = - reduloctab[3]; reduloctab[6] = - reduloctab[5]; reduloctab[8] = - reduloctab[7]; if ((int) proclocnum != grafptr->proclocnum) { /* If fragment is not read by proper process */ errorPrint ("dgraphLoadDist: wrong process number to read distributed graph fragment"); reduloctab[0] |= 1; } if ((int) reduloctab[1] != grafptr->procglbnbr) { errorPrint ("dgraphLoadDist: wrong number of processes to read distributed graph"); reduloctab[0] = 2; } if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 10, 2, grafptr->proccomm) != 0) { errorPrint ("dgraphLoadDist: communication error (1)"); reduglbtab[0] = 2; } if (reduglbtab[0] >= 2) /* If has to abort immediately */ return (1); if ((reduglbtab[2] != - reduglbtab[1]) || (reduglbtab[4] != - reduglbtab[3]) || (reduglbtab[6] != - reduglbtab[5]) || (reduglbtab[8] != - reduglbtab[7]) || (reduglbtab[10] != reduglbtab[3]) || (reduglbtab[11] != reduglbtab[5])) { errorPrint ("dgraphLoadDist: inconsistent distributed graph headers"); return (1); } if (reduglbtab[0] != 0) /* If cannot go on anyway */ return (1); if (baseval == -1) { /* If keep file graph base */ baseval = reduglbtab[7]; /* Set graph base as file base */ baseadj = 0; /* No base adjustment needed */ } else /* If set graph base */ baseadj = baseval - reduglbtab[7]; /* Update base adjust */ vertlocnbr = reduloctab[10]; edgelocnbr = reduloctab[11]; sprintf (proptab, "%3.3d", (int) reduglbtab[9]); /* Compute file properties */ proptab[0] -= '0'; /* Vertex labels flag */ proptab[1] -= '0'; /* Edge weights flag */ proptab[2] -= '0'; /* Vertex loads flag */ velolocnbr = ((proptab[2] != 0) && ((flagval & GRAPHIONOLOADVERT) == 0)) ? vertlocnbr : 0; vlbllocnbr = (proptab[0] != 0) ? vertlocnbr : 0; vlblloctax = veloloctax = vertloctax = edgeloctax = NULL; cheklocval = 0; if ((vertlocptr = memAlloc ((vertlocnbr + 1 + velolocnbr + vlbllocnbr) * sizeof (Gnum))) == NULL) { errorPrint ("dgraphLoadDist: out of memory (1)"); cheklocval = 1; } else { Gnum edlolocnbr; vertloctax = vertlocptr -= baseval; vertlocptr += vertlocnbr + 1; if ((proptab[2] != 0) && ((flagval & GRAPHIONOLOADVERT) == 0)) { veloloctax = vertlocptr; vertlocptr += vertlocnbr; } if (proptab[0] != 0) { vlblloctax = vertlocptr; baseadj = 0; /* No vertex adjustments if vertex labels */ } edlolocnbr = ((proptab[1] != 0) && ((flagval & GRAPHIONOLOADEDGE) == 0)) ? edgelocnbr : 0; if ((edgeloctax = memAlloc ((edgelocnbr + edlolocnbr) * sizeof (Gnum))) == NULL) { errorPrint ("dgraphLoadDist: out of memory (2)"); cheklocval = 1; } else { edgeloctax -= baseval; edloloctax = ((proptab[1] != 0) && ((flagval & GRAPHIONOLOADEDGE) == 0)) ? (edgeloctax + edgelocnbr) : NULL; } } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphLoadDist: communication error (2)"); chekglbval = 1; } if (chekglbval != 0) { if (edgeloctax != NULL) memFree (edgeloctax + baseval); if (vertloctax != NULL) memFree (vertloctax + baseval); return (1); } degrlocmax = 0; /* No maximum degree yet */ velolocsum = (veloloctax != NULL) ? 0 : vertlocnbr; for (vertlocnum = edgelocnum = baseval, vertlocnnd = vertlocnbr + baseval, edgelocnnd = edgelocnbr + baseval; vertlocnum < vertlocnnd; vertlocnum ++) { Gnum degrlocval; if (vlblloctax != NULL) { /* If must read label */ Gnum vlbllocval; /* Vertex label value to be read */ if (intLoad (fileptr, &vlbllocval) != 1) { /* Read label data */ errorPrint ("dgraphLoadDist: bad input (2)"); cheklocval = 1; break; } vlblloctax[vertlocnum] = vlbllocval; } if (proptab[2] != 0) { /* If must read vertex load */ Gnum velolocval; if (intLoad (fileptr, &velolocval) != 1) { /* Read vertex load data */ errorPrint ("dgraphLoadDist: bad input (3)"); cheklocval = 1; break; } if (veloloctax != NULL) velolocsum += veloloctax[vertlocnum] = velolocval; } if (intLoad (fileptr, °rlocval) != 1) { /* Read vertex degree */ errorPrint ("dgraphLoadDist: bad input (4)"); cheklocval = 1; break; } if (degrlocmax < degrlocval) /* Set maximum degree */ degrlocmax = degrlocval; vertloctax[vertlocnum] = edgelocnum; /* Set index in edge array */ degrlocval += edgelocnum; if (degrlocval > edgelocnnd) { /* Check if edge array overflows */ errorPrint ("dgraphLoadDist: invalid arc count (1)"); cheklocval = 1; break; } for ( ; edgelocnum < degrlocval; edgelocnum ++) { Gnum edgelocval; /* Value where to read edge end */ if (proptab[1] != 0) { /* If must read edge load */ Gnum edlolocval; /* Value where to read edge load */ if (intLoad (fileptr, &edlolocval) != 1) { /* Read edge load data */ errorPrint ("dgraphLoadDist: bad input (5)"); cheklocval = 1; break; } if (edloloctax != NULL) edloloctax[edgelocnum] = edlolocval; } if (intLoad (fileptr, &edgelocval) != 1) { /* Read edge data */ errorPrint ("dgraphLoadDist: bad input (6)"); cheklocval = 1; break; } edgeloctax[edgelocnum] = edgelocval + baseadj; } if (cheklocval != 0) break; } vertloctax[vertlocnum] = edgelocnum; /* Set end of edge array */ if (edgelocnum != edgelocnnd) { /* Check if number of edges is valid */ errorPrint ("dgraphLoadDist: invalid arc count (2)"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphLoadDist: communication error (17)"); chekglbval = 1; } if (chekglbval != 0) { memFree (edgeloctax + baseval); memFree (vertloctax + baseval); return (1); } o = dgraphBuild2 (grafptr, baseval, /* Build distributed graph */ vertlocnbr, vertlocnbr, vertloctax, vertloctax + 1, veloloctax, velolocsum, NULL, vlblloctax, edgelocnbr, edgelocnbr, edgeloctax, NULL, edloloctax, degrlocmax); grafptr->flagval |= DGRAPHFREETABS | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; return (o); } /* This routine loads a distributed source ** graph from a centralized source graph ** file replicated on all of the streams. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dgraphLoadMulti ( Dgraph * restrict const grafptr, /* Distributed graph to load */ FILE * const fileptr, /* Duplicated centralized streams */ Gnum baseval, /* Base value (-1 means keep file base) */ const GraphLoadFlag flagval) /* Graph loading flags */ { errorPrint ("dgraphLoadMulti: not implemented"); return (1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_io_load.h000066400000000000000000000062771514310134000270350ustar00rootroot00000000000000/* Copyright 2007,2018,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_io_load.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the distributed graph loading **/ /** routines. **/ /** **/ /** DATES : # Version 5.0 : from : 12 may 2007 **/ /** to : 13 may 2007 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 11 aug 2025 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #ifdef SCOTCH_DGRAPH_IO_LOAD static int dgraphLoadCent (Dgraph * restrict const, FILE * const, Gnum, const GraphLoadFlag, const int); static int dgraphLoadDist (Dgraph * restrict const, FILE * const, Gnum, const GraphLoadFlag); static int dgraphLoadMulti (Dgraph * restrict const, FILE * const, Gnum, const GraphLoadFlag); #endif /* SCOTCH_DGRAPH_IO_LOAD */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_io_save.c000066400000000000000000000170661514310134000270450ustar00rootroot00000000000000/* Copyright 2007,2010,2013,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_io_save.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the input/output routines for **/ /** distributed graphs. **/ /** **/ /** # Version P0.2 : from : 11 may 1999 **/ /** to : 12 may 1999 **/ /** # Version 5.0 : from : 22 jul 2005 **/ /** to : 22 apr 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 18 sep 2013 **/ /** to : 18 sep 2013 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" /* This routine saves a distributed source ** graph to the given streams. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphSave ( Dgraph * restrict const grafptr, /* Not const since halo may update structure */ FILE * const stream) { Gnum * restrict vlblgsttax; /* Based index to ghost label array */ Gnum vertlocnum; char propstr[4]; /* Property string */ int o; #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { /* Synchronize for debugging */ errorPrint ("dgraphSave: communication error"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vlblgsttax = NULL; /* Assume ghost label array is free */ if ((grafptr->vlblloctax != NULL) || /* If graph has vertex labels or */ (grafptr->edgeloctax == NULL) || /* If no global index edge array present or */ (grafptr->procvrttab[grafptr->procglbnbr] != grafptr->procdsptab[grafptr->procglbnbr])) { /* If graph may have holes in its numbering */ if (dgraphGhst (grafptr) != 0) { /* Compute ghost edge array */ errorPrint ("dgraphSave: cannot compute ghost edge array"); return (1); } if ((vlblgsttax = (Gnum *) memAlloc (grafptr->vertgstnbr * sizeof (Gnum))) == NULL) { errorPrint ("dgraphSave: out of memory"); return (1); } if (grafptr->vlblloctax != NULL) memCpy (vlblgsttax, grafptr->vlblloctax + grafptr->baseval, grafptr->vertlocnbr * sizeof (Gnum)); else { for (vertlocnum = 0; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) /* vlblgsttax is not based yet at this time */ vlblgsttax[vertlocnum] = grafptr->procvrttab[grafptr->proclocnum] + vertlocnum; } if (dgraphHaloSync (grafptr, (byte *) vlblgsttax, GNUM_MPI) != 0) { /* vlblgsttax is not based yet at this time */ errorPrint ("dgraphSave: cannot halo labels"); memFree (vlblgsttax); return (1); } vlblgsttax -= grafptr->baseval; } propstr[0] = (vlblgsttax != NULL) ? '1' : '0'; /* Set property string */ propstr[1] = (grafptr->edloloctax != NULL) ? '1' : '0'; propstr[2] = (grafptr->veloloctax != NULL) ? '1' : '0'; propstr[3] = '\0'; if (fprintf (stream, "2\n" GNUMSTRING "\t" GNUMSTRING "\n" GNUMSTRING "\t" GNUMSTRING "\n" GNUMSTRING "\t" GNUMSTRING "\n" GNUMSTRING "\t%3s\n", /* Write file header */ (Gnum) grafptr->procglbnbr, (Gnum) grafptr->proclocnum, (Gnum) grafptr->vertglbnbr, (Gnum) grafptr->edgeglbnbr, (Gnum) grafptr->vertlocnbr, (Gnum) grafptr->edgelocnbr, (Gnum) grafptr->baseval, propstr) == EOF) { errorPrint ("dgraphSave: bad output (1)"); return (1); } o = 0; for (vertlocnum = grafptr->baseval; (vertlocnum < grafptr->vertlocnnd) && (o == 0); vertlocnum ++) { Gnum edgelocnum; if (vlblgsttax != NULL) /* Write vertex label if necessary */ o = (fprintf (stream, GNUMSTRING "\t", (Gnum) vlblgsttax[vertlocnum]) == EOF); if (grafptr->veloloctax != NULL) /* Write vertex load if necessary */ o |= (fprintf (stream, GNUMSTRING "\t", (Gnum) grafptr->veloloctax[vertlocnum]) == EOF); o |= (fprintf (stream, GNUMSTRING, (Gnum) (grafptr->vendloctax[vertlocnum] - grafptr->vertloctax[vertlocnum])) == EOF); /* Write vertex degree */ for (edgelocnum = grafptr->vertloctax[vertlocnum]; edgelocnum < grafptr->vendloctax[vertlocnum]; edgelocnum ++) { o |= (putc ('\t', stream) == EOF); if (grafptr->edloloctax != NULL) /* Write edge load if necessary */ o |= (fprintf (stream, "\t" GNUMSTRING " ", (Gnum) grafptr->edloloctax[edgelocnum]) == EOF); o |= (fprintf (stream, GNUMSTRING, (Gnum) ((vlblgsttax != NULL) /* Write edge end */ ? vlblgsttax[grafptr->edgegsttax[edgelocnum]] : grafptr->edgeloctax[edgelocnum])) == EOF); } o |= (putc ('\n', stream) == EOF); } if (o != 0) errorPrint ("dgraphSave: bad output (2)"); if (vlblgsttax != NULL) /* Free ghost label array if used */ memFree (vlblgsttax + grafptr->baseval); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_match.c000066400000000000000000000325661514310134000265160ustar00rootroot00000000000000/* Copyright 2008-2010,2012,2013,2019,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_match.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed graph matching **/ /** routines. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2008 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 03 oct 2012 **/ /** to : 10 oct 2013 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "dgraph_match.h" /*************************************/ /* */ /* These routines handle distributed */ /* source graphs. */ /* */ /*************************************/ /* This routine initializes a distributed graph ** structure. In order to avoid collective ** communication whenever possible, the allocation ** of send and receive index arrays is not performed ** in the routine itself, but rather delegated to ** subsequent routines such as dgraphBuild. ** However, these arrays will not be freed by ** dgraphFree, but by dgraphExit. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphMatchInit ( DgraphMatchData * restrict const mateptr, const float probval) { Gnum * restrict procvgbtab; int procngbnum; Gnum vertlocnbr; Gnum vertgstnbr; Dgraph * restrict const grafptr = mateptr->c.finegrafptr; const int * restrict const procngbtab = grafptr->procngbtab; const Gnum * restrict const procvrttab = grafptr->procvrttab; vertlocnbr = grafptr->vertlocnbr; vertgstnbr = grafptr->vertgstnbr; if (memAllocGroup ((void **) (void *) &mateptr->procvgbtab, (size_t) ((grafptr->procngbnbr + 1) * sizeof (Gnum)), &mateptr->queuloctab, (size_t) (vertlocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphMatchInit: out of memory"); return (1); } mateptr->c.multlocnbr = 0; mateptr->mategsttax = mateptr->c.coargsttax; /* TRICK: re-use array */ mateptr->matelocnbr = 0; /* All vertices need to be processed */ mateptr->queulocnbr = 0; mateptr->probval = (grafptr->procngbnbr == 0) ? 1.0F : probval; memSet (mateptr->mategsttax + grafptr->vertlocnnd, ~0, (vertgstnbr - vertlocnbr) * sizeof (Gnum)); /* No ghost vertices matched to date */ for (procngbnum = 0, procvgbtab = mateptr->procvgbtab; procngbnum < grafptr->procngbnbr; procngbnum ++) procvgbtab[procngbnum] = (Gnum) procvrttab[procngbtab[procngbnum]]; procvgbtab[procngbnum] = (Gnum) procvrttab[grafptr->procglbnbr]; /* Mark end */ return (0); } /* This routine frees the contents of a matching ** data structure. ** It returns: ** - VOID : in all cases. */ void dgraphMatchExit ( DgraphMatchData * restrict const mateptr) { memFree (mateptr->procvgbtab); } /* These routines perform a round of computations ** among enqueued vertices to produce matching requests. ** They return: ** - 0 : on success. ** - !0 : on error. */ #define DGRAPHMATCHSCANNAME dgraphMatchSc /* Scan matching (no edge weights) */ #define DGRAPHMATCHSCANINIT \ probmax = (Gnum) (mateptr->probval * 32768.0); /* Compute integer threshold of random value */ #define DGRAPHMATCHSCANCOUNTDECL ; #define DGRAPHMATCHSCANCOUNTINIT \ probval = contextIntRandVal (mateptr->c.contptr, 32768); /* Get proba for this vertex */ #define DGRAPHMATCHSCANCOUNTSELECT \ edgefrenbr ++; #define DGRAPHMATCHSCANFINDSELECT \ (edgefrenbr -- == 0) #include "dgraph_match_scan.c" #undef DGRAPHMATCHSCANFINDSELECT #undef DGRAPHMATCHSCANCOUNTSELECT #undef DGRAPHMATCHSCANCOUNTINIT #undef DGRAPHMATCHSCANCOUNTDECL #undef DGRAPHMATCHSCANINIT #undef DGRAPHMATCHSCANNAME #define DGRAPHMATCHSCANNAME dgraphMatchHy /* Heavy edge matching */ #define DGRAPHMATCHSCANINIT \ const Gnum * restrict const edloloctax = grafptr->edloloctax; \ if (edloloctax == NULL) { \ dgraphMatchSc (mateptr); \ return; \ } \ probmax = (Gnum) (mateptr->probval * 32768.0); /* Compute integer threshold of random value */ #define DGRAPHMATCHSCANCOUNTDECL \ Gnum edlolocmax; #define DGRAPHMATCHSCANCOUNTINIT \ edlolocmax = 0; \ probval = contextIntRandVal (mateptr->c.contptr, 32768); /* Get proba for this vertex */ #define DGRAPHMATCHSCANCOUNTSELECT \ Gnum edlolocval; \ edlolocval = edloloctax[edgelocnum]; \ if (edlolocval > edlolocmax) { \ edlolocmax = edlolocval; \ edgefrenbr = 1; \ } \ else if (edlolocval == edlolocmax) \ edgefrenbr ++; #define DGRAPHMATCHSCANFINDSELECT \ ((edloloctax[edgelocnum] == edlolocmax) && \ (edgefrenbr -- == 0)) #include "dgraph_match_scan.c" #undef DGRAPHMATCHSCANFINDSELECT #undef DGRAPHMATCHSCANCOUNTSELECT #undef DGRAPHMATCHSCANCOUNTINIT #undef DGRAPHMATCHSCANCOUNTDECL #undef DGRAPHMATCHSCANINIT #undef DGRAPHMATCHSCANNAME #define DGRAPHMATCHSCANNAME dgraphMatchHl /* Heavy edge matching of lightest vertices */ #define DGRAPHMATCHSCANINIT \ const Gnum * restrict const veloloctax = grafptr->veloloctax; \ const Gnum * restrict const edloloctax = grafptr->edloloctax; \ if ((veloloctax == NULL) || (edloloctax == NULL)) { \ dgraphMatchHy (mateptr); \ return; \ } \ probmax = (1 * grafptr->veloglbsum) / (5 * grafptr->vertglbnbr); #define DGRAPHMATCHSCANCOUNTDECL \ Gnum edlolocmax; #define DGRAPHMATCHSCANCOUNTINIT \ edlolocmax = 0; \ probval = veloloctax[vertlocnum]; /* Process vertex if vertex weight smaller than threshold */ #define DGRAPHMATCHSCANCOUNTSELECT \ Gnum edlolocval; \ edlolocval = edloloctax[edgelocnum]; \ if (edlolocval > edlolocmax) { \ edlolocmax = edlolocval; \ edgefrenbr = 1; \ } \ else if (edlolocval == edlolocmax) \ edgefrenbr ++; #define DGRAPHMATCHSCANFINDSELECT \ ((edloloctax[edgelocnum] == edlolocmax) && \ (edgefrenbr -- == 0)) #include "dgraph_match_scan.c" #undef DGRAPHMATCHSCANFINDSELECT #undef DGRAPHMATCHSCANCOUNTSELECT #undef DGRAPHMATCHSCANCOUNTINIT #undef DGRAPHMATCHSCANCOUNTDECL #undef DGRAPHMATCHSCANINIT #undef DGRAPHMATCHSCANNAME #define DGRAPHMATCHSCANNAME dgraphMatchLc /* Local scan matching */ #define DGRAPHMATCHSCANINIT \ probmax = 0; /* Vertices will always be active */ #define DGRAPHMATCHSCANCOUNTDECL ; #define DGRAPHMATCHSCANCOUNTINIT \ probval = 0; /* Vertices will always be active */ #define DGRAPHMATCHSCANCOUNTSELECT \ if (vertgstend < vertlocnnd) \ edgefrenbr ++; \ else \ edgeendnbr --; #define DGRAPHMATCHSCANFINDSELECT \ ((vertgstend < vertlocnnd) && \ (edgefrenbr -- == 0)) #include "dgraph_match_scan.c" #undef DGRAPHMATCHSCANFINDSELECT #undef DGRAPHMATCHSCANCOUNTSELECT #undef DGRAPHMATCHSCANCOUNTINIT #undef DGRAPHMATCHSCANCOUNTDECL #undef DGRAPHMATCHSCANINIT #undef DGRAPHMATCHSCANNAME #define DGRAPHMATCHSCANNAME dgraphMatchLy /* Local heavy edge matching */ #define DGRAPHMATCHSCANINIT \ const Gnum * restrict const edloloctax = mateptr->c.finegrafptr->edloloctax; \ if (edloloctax == NULL) { \ dgraphMatchLc (mateptr); \ return; \ } \ probmax = 0; /* Vertices will always be active */ #define DGRAPHMATCHSCANCOUNTDECL \ Gnum edlolocmax; #define DGRAPHMATCHSCANCOUNTINIT \ edlolocmax = 0; \ probval = 0; /* Vertices will always be active */ #define DGRAPHMATCHSCANCOUNTSELECT \ if (vertgstend < vertlocnnd) { \ Gnum edlolocval; \ edlolocval = edloloctax[edgelocnum]; \ if (edlolocval > edlolocmax) { \ edlolocmax = edlolocval; \ edgefrenbr = 1; \ } \ else if (edlolocval == edlolocmax) \ edgefrenbr ++; \ } \ else \ edgeendnbr --; #define DGRAPHMATCHSCANFINDSELECT \ ((vertgstend < vertlocnnd) && \ (edloloctax[edgelocnum] == edlolocmax) && \ (edgefrenbr -- == 0)) #include "dgraph_match_scan.c" #undef DGRAPHMATCHSCANFINDSELECT #undef DGRAPHMATCHSCANCOUNTSELECT #undef DGRAPHMATCHSCANCOUNTINIT #undef DGRAPHMATCHSCANCOUNTDECL #undef DGRAPHMATCHSCANINIT #undef DGRAPHMATCHSCANNAME scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_match.h000066400000000000000000000115211514310134000265070ustar00rootroot00000000000000/* Copyright 2007-2009,2012 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_match.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This file provides the structure **/ /** definitions for the coasening phase of **/ /** the multi-level method. **/ /** **/ /** DATES : # Version 5.0 : from : 04 may 2006 **/ /** to : 21 jun 2007 **/ /** # Version 5.1 : from : 23 nov 2008 **/ /** to : 04 apr 2009 **/ /** # Version 6.0 : from : 03 oct 2012 **/ /** to : 03 oct 2012 **/ /** # Version 7.0 : from : 30 mar 2023 **/ /** to : 30 mar 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /* This structure contains all the tables describing the matching state */ typedef struct DgraphMatchData_ { DgraphCoarsenData c; /*+ Coarsening structure +*/ Gnum * mategsttax; /*+ Mating table for local and ghost vertices +*/ Gnum matelocnbr; /*+ Number of local matchings +*/ Gnum * queuloctab; /*+ Queue of unmated local vertex +*/ Gnum queulocnbr; /*+ Number of enqueued unmated vertices +*/ Gnum * procvgbtab; /*+ Global vertex number bounds for neighboring processors [+1] +*/ float probval; /*+ Vertex mating probability (1.0 is certain) +*/ } DgraphMatchData; /* ** The function prototypes. */ int dgraphMatchInit (DgraphMatchData * restrict const, const float); void dgraphMatchExit (DgraphMatchData * restrict const); int dgraphMatchSync (DgraphMatchData * restrict const); int dgraphMatchSyncColl (DgraphMatchData * const); int dgraphMatchSyncPtop (DgraphMatchData * const); int dgraphMatchCheck (DgraphMatchData * restrict const); void dgraphMatchHl (DgraphMatchData * restrict const); void dgraphMatchSc (DgraphMatchData * restrict const); void dgraphMatchHy (DgraphMatchData * restrict const); void dgraphMatchLc (DgraphMatchData * restrict const); void dgraphMatchLy (DgraphMatchData * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_match_check.c000066400000000000000000000251011514310134000276360ustar00rootroot00000000000000/* Copyright 2008,2009,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_match_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed graph matching **/ /** routines. **/ /** **/ /** DATES : # Version 5.1 : from : 25 dec 2008 **/ /** to : 08 apr 2009 **/ /** # Version 6.0 : from : 15 may 2018 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "dgraph_match.h" /*************************************/ /* */ /* These routines handle distributed */ /* matchings. */ /* */ /*************************************/ /* This routine checks the consistency of a ** given complete matching. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphMatchCheck ( DgraphMatchData * restrict const mateptr) { Gnum baseval; Gnum * restrict flaggsttax; int procngbnum; Gnum multlocnbr; Gnum multlocnum; Gnum vertlocnbr; Gnum vertlocnnd; Gnum vertlocnum; Gnum vertlocadj; int cheklocval; int chekglbval; Dgraph * restrict const grafptr = mateptr->c.finegrafptr; const int * restrict const procngbtab = grafptr->procngbtab; const Gnum * restrict const mategsttax = mateptr->mategsttax; DgraphCoarsenVert * restrict const vsnddattab = mateptr->c.vsnddattab; const DgraphCoarsenMulti * restrict const multloctab = mateptr->c.multloctab; const int * restrict const procgsttax = mateptr->c.procgsttax; const Gnum * restrict const edgeloctax = grafptr->edgeloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; int * restrict const nsndidxtab = mateptr->c.nsndidxtab; baseval = grafptr->baseval; cheklocval = 0; multlocnbr = mateptr->c.multlocnbr; if ((multlocnbr < 0) || (multlocnbr > grafptr->vertlocnbr)) { errorPrint ("dgraphMatchCheck: invalid number of multinodes"); cheklocval = 1; } vertlocnbr = grafptr->vertlocnbr; for (vertlocnum = baseval; vertlocnum < vertlocnbr; vertlocnum ++) { if (mategsttax[vertlocnum] < 0) { errorPrint ("dgraphMatchCheck: unmatched local vertex"); cheklocval = 1; break; } } if ((flaggsttax = memAlloc (grafptr->vertgstnbr * sizeof (Gnum))) == NULL) { errorPrint ("dgraphMatchCheck: out of memory"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_SUM, mateptr->c.finegrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchCheck: communication error (1)"); chekglbval = 1; } if (chekglbval != 0) { if (flaggsttax != NULL) memFree (flaggsttax); return (1); } for (procngbnum = 0; procngbnum < grafptr->procngbnbr; procngbnum ++) /* Reset indices for sending messages */ nsndidxtab[procngbnum] = mateptr->c.vsnddsptab[procngbtab[procngbnum]]; memSet (flaggsttax, ~0, grafptr->vertgstnbr * sizeof (Gnum)); flaggsttax -= baseval; vertlocnnd = grafptr->vertlocnnd; vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - baseval; for (multlocnum = 0; multlocnum < multlocnbr; multlocnum ++) { Gnum vertglbnum; Gnum vertlocnum; Gnum vertglbend; vertglbnum = multloctab[multlocnum].vertglbnum[0]; vertlocnum = vertglbnum - vertlocadj; /* First vertex is always local */ if ((vertlocnum < baseval) || (vertlocnum >= vertlocnnd)) { errorPrint ("dgraphMatchCheck: invalid multinode vertex (1)"); goto abort; } if (flaggsttax[vertlocnum] != -1) { errorPrint ("dgraphMatchCheck: duplicate multinode vertex (1)"); goto abort; } flaggsttax[vertlocnum] = multlocnum + vertlocadj; vertglbend = multloctab[multlocnum].vertglbnum[1]; if (vertglbend < 0) { /* If end vertex is remote */ Gnum edgelocnum; Gnum vertgstend; int vsndidxnum; int procngbnum; edgelocnum = -2 - vertglbend; if ((edgelocnum < grafptr->baseval) || (edgelocnum >= (grafptr->edgelocsiz + grafptr->baseval))) { errorPrint ("dgraphMatchCheck: invalid multinode vertex (2)"); goto abort; } vertglbend = edgeloctax[edgelocnum]; if (mategsttax[vertlocnum] != vertglbend) { errorPrint ("dgraphMatchCheck: invalid mate array (1)"); goto abort; } vertgstend = edgegsttax[edgelocnum]; if (flaggsttax[vertgstend] != -1) { errorPrint ("dgraphMatchCheck: duplicate multinode vertex (2)"); goto abort; } flaggsttax[vertgstend] = multlocnum + vertlocadj; if (mategsttax[vertgstend] != vertglbnum) { errorPrint ("dgraphMatchCheck: invalid mate array (2)"); goto abort; } procngbnum = procgsttax[vertgstend]; /* Find neighbor owner process */ if ((procngbnum < 0) || (procngbnum >= grafptr->procngbnbr)) { /* If neighbor had not been computed or is wrong */ errorPrint ("dgraphMatchCheck: internal error (1)"); goto abort; } if ((grafptr->procvrttab[procngbtab[procngbnum]] > vertglbend) || (grafptr->procvrttab[procngbtab[procngbnum] + 1] <= vertglbend)) { errorPrint ("dgraphMatchCheck: internal error (2)"); goto abort; } vsndidxnum = nsndidxtab[procngbnum] ++; /* Get position of message in send array */ if (vsndidxnum >= mateptr->c.vsnddsptab[procngbtab[procngbnum] + 1]) { errorPrint ("dgraphMatchCheck: internal error (3)"); goto abort; } vsnddattab[vsndidxnum].datatab[0] = vertglbnum; vsnddattab[vsndidxnum].datatab[1] = vertglbend; } else { /* End vertex is local */ Gnum vertlocend; Gnum edgelocnum; Gnum edgelocnnd; if (mategsttax[vertlocnum] != vertglbend) { errorPrint ("dgraphMatchCheck: invalid mate array (3)"); goto abort; } if (vertglbend == vertglbnum) /* If single multinode */ continue; vertlocend = vertglbend - vertlocadj; if ((vertlocend < baseval) || (vertlocend >= vertlocnnd)) { errorPrint ("dgraphMatchCheck: invalid multinode vertex (3)"); goto abort; } edgelocnum = vertloctax[vertlocnum]; edgelocnnd = vendloctax[vertlocnum]; if (edgelocnum != edgelocnnd) { /* If first multinode vertex is not an isolated vertex */ for ( ; ; edgelocnum ++) { /* Loop on edges of first multinode vertex */ if (edgelocnum >= edgelocnnd) { /* If not a valid neighbor */ errorPrint ("dgraphMatchCheck: invalid multinode vertex (4)"); goto abort; } if (edgeloctax[edgelocnum] == vertglbend) /* If edge to end vertex found */ break; } } if (flaggsttax[vertlocend] != -1) { errorPrint ("dgraphMatchCheck: duplicate multinode vertex (3)"); goto abort; } flaggsttax[vertlocend] = multlocnum + vertlocadj; if (mategsttax[vertlocend] != vertglbnum) { errorPrint ("dgraphMatchCheck: invalid mate array (4)"); goto abort; } } } cheklocval = -1; abort: cheklocval ++; if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_SUM, mateptr->c.finegrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchCheck: communication error (2)"); chekglbval = 1; } if (chekglbval != 0) { memFree (flaggsttax + baseval); return (1); } /* TODO: Send messages and check consistency of matching on the receiving side */ memFree (flaggsttax + baseval); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_match_scan.c000066400000000000000000000365721514310134000275230ustar00rootroot00000000000000/* Copyright 2008,2012,2013,2019-2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_match_scan.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines define a generic scanning **/ /** framework for distributed graph **/ /** matching routines. **/ /** **/ /** DATES : # Version 6.0 : from : 04 dec 2008 **/ /** to : 10 oct 2013 **/ /** # Version 6.1 : from : 17 jun 2021 **/ /** to : 27 dec 2021 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 14 jan 2020 **/ /** **/ /************************************************************/ void DGRAPHMATCHSCANNAME ( DgraphMatchData * restrict const mateptr) { int flagval; Gnum vertlocnnd; Gnum vertlocadj; Gnum edgekptnbr; Gnum queulocnbr; Gnum matelocnbr; /* TRICK: Initial number of local mated vertices, from which are subtracted single multinodes */ Gnum multlocnbr; Gnum probmax; const Dgraph * restrict const grafptr = mateptr->c.finegrafptr; const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; Gnum * restrict const queuloctab = mateptr->queuloctab; Gnum * restrict const mategsttax = mateptr->mategsttax; DgraphCoarsenMulti * restrict const multloctab = mateptr->c.multloctab; DGRAPHMATCHSCANINIT flagval = mateptr->c.flagval; /* Get flag value */ vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - grafptr->baseval; vertlocnnd = grafptr->vertlocnnd; matelocnbr = mateptr->matelocnbr; multlocnbr = mateptr->c.multlocnbr; edgekptnbr = mateptr->c.edgekptnbr; if (matelocnbr == 0) { /* If initial pass or nothing useful done */ Gnum vertlocnnt; /* End of useable local vertices */ Gnum vertlocnum; memSet (mategsttax + grafptr->baseval, ~0, grafptr->vertlocnbr * sizeof (Gnum)); /* No local vertices matched to date: wipe all unsatisfied queries */ queulocnbr = 0; /* Build queue from scratch */ for (vertlocnum = grafptr->baseval, vertlocnnt = vertlocnnd; vertlocnum < vertlocnnt; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; Gnum edgeendnbr; Gnum edgefrenbr; Gnum probval; DGRAPHMATCHSCANCOUNTDECL if (mategsttax[vertlocnum] >= 0) /* If vertex has been matched by one of the previous ones, skip it */ continue; #ifdef SCOTCH_DEBUG_DGRAPH2 if (mategsttax[vertlocnum] < -1) { /* Vertex must not be requesting yet */ errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": internal error (1)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ DGRAPHMATCHSCANCOUNTINIT if (probval > probmax) { /* If vertex not active this turn */ queuloctab[queulocnbr ++] = vertlocnum; /* Enqueue it for next time */ continue; /* Skip to next vertex */ } edgelocnum = vertloctax[vertlocnum]; edgelocnnd = vendloctax[vertlocnum]; if (((edgelocnnd - edgelocnum) == 0) && /* If vertex is isolated */ ((flagval & DGRAPHCOARSENNOMERGE) == 0)) { /* And merging isolated vertices is allowed */ while (mategsttax[-- vertlocnnt] != ~0) ; /* Search for first matchable local neighbor */ mategsttax[vertlocnum] = (vertlocnnt + vertlocadj); /* At worst we will stop at vertlocnum */ mategsttax[vertlocnnt] = (vertlocnum + vertlocadj); #ifdef SCOTCH_DEBUG_DGRAPH2 if (multlocnbr >= mateptr->c.multlocsiz) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": undersized multinode array (1)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ multloctab[multlocnbr].vertglbnum[0] = (vertlocnum + vertlocadj); multloctab[multlocnbr].vertglbnum[1] = (vertlocnnt + vertlocadj); multlocnbr ++; /* One more coarse vertex created (two more local mates) */ edgekptnbr += vendloctax[vertlocnnt] - vertloctax[vertlocnnt]; /* Add edges of other vertex only */ continue; } for (edgeendnbr = edgefrenbr = 0; edgelocnum < edgelocnnd; edgelocnum ++) { /* For all edges, count yet unmatched ends */ Gnum vertgstend; vertgstend = edgegsttax[edgelocnum]; if (mategsttax[vertgstend] == -1) { /* Count relevant free end vertices */ DGRAPHMATCHSCANCOUNTSELECT } if (mategsttax[vertgstend] < 0) /* Count not yet assigned end vertices */ edgeendnbr ++; } if (edgeendnbr <= 0) { /* If vertex has no possible neighbor */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (multlocnbr >= mateptr->c.multlocsiz) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": undersized multinode array (2)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mategsttax[vertlocnum] = /* Create single multinode */ multloctab[multlocnbr].vertglbnum[0] = multloctab[multlocnbr].vertglbnum[1] = vertlocnum + vertlocadj; multlocnbr ++; /* One more coarse vertex created */ matelocnbr --; /* TRICK: But with only one vertex */ edgekptnbr += edgelocnnd - vertloctax[vertlocnum]; continue; } if (edgefrenbr > 0) { /* If vertex has some free neighbor */ Gnum vertgstend; edgefrenbr = contextIntRandVal (mateptr->c.contptr, edgefrenbr); /* Select one of them randomly */ for (edgelocnum = vertloctax[vertlocnum]; ; edgelocnum ++) { /* Loop again on edges */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum >= edgelocnnd) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": internal error (2)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vertgstend = edgegsttax[edgelocnum]; if (mategsttax[vertgstend] == -1) { /* If free end vertex found */ if (DGRAPHMATCHSCANFINDSELECT) /* If it is the one we want */ break; /* Exit loop */ } } if (vertgstend >= vertlocnnd) { /* If end vertex is a ghost vertex */ queuloctab[queulocnbr ++] = vertlocnum; /* Enqueue vertex for communication processing */ mategsttax[vertlocnum] = -2 - edgelocnum; /* Local vertex index codes edge number */ } else { /* Perform local matching */ mategsttax[vertlocnum] = (vertgstend + vertlocadj); mategsttax[vertgstend] = (vertlocnum + vertlocadj); #ifdef SCOTCH_DEBUG_DGRAPH2 if (multlocnbr >= mateptr->c.multlocsiz) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": undersized multinode array (3)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ multloctab[multlocnbr].vertglbnum[0] = (vertlocnum + vertlocadj); multloctab[multlocnbr].vertglbnum[1] = (vertgstend + vertlocadj); multlocnbr ++; /* One more coarse vertex created (two more local mates) */ edgekptnbr += (edgelocnnd - vertloctax[vertlocnum]) + (vendloctax[vertgstend] - vertloctax[vertgstend]) - 2; /* "-2" for collapsed arcs */ } } else queuloctab[queulocnbr ++] = vertlocnum; /* Enqueue vertex for next time */ } } else { /* Vertices to consider are already enqueued */ Gnum queulocnum; Gnum queulocnew; for (queulocnum = queulocnew = 0, queulocnbr = mateptr->queulocnbr; queulocnum < queulocnbr; queulocnum ++) { /* For all vertices in queue */ Gnum vertlocnum; Gnum mategstnum; vertlocnum = queuloctab[queulocnum]; /* Get current vertex */ mategstnum = mategsttax[vertlocnum]; if (mategstnum > -1) /* If already mated */ continue; /* Find another one */ queuloctab[queulocnew ++] = vertlocnum; if (mategstnum < -1) mategsttax[vertlocnum] = -1; } queulocnbr = queulocnew; for (queulocnum = 0; queulocnum < queulocnbr; queulocnum ++) { /* For all vertices in queue */ Gnum vertlocnum; Gnum edgelocnum; Gnum edgelocnnd; Gnum edgeendnbr; Gnum edgefrenbr; Gnum probval; DGRAPHMATCHSCANCOUNTDECL vertlocnum = queuloctab[queulocnum]; /* Get current vertex */ if (mategsttax[vertlocnum] >= 0) /* If already mated */ continue; /* Find another one */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (mategsttax[vertlocnum] < -1) { /* Vertex must not be requesting yet */ errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": internal error (3)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ DGRAPHMATCHSCANCOUNTINIT if (probval > probmax) /* If vertex not active this turn */ continue; /* Keep vertex enqueued and skip to next vertex */ edgelocnum = vertloctax[vertlocnum]; edgelocnnd = vendloctax[vertlocnum]; /* No need to test for isolated vertices this turn */ for (edgeendnbr = edgefrenbr = 0; edgelocnum < edgelocnnd; edgelocnum ++) { /* For all edges, count yet unmatched ends */ Gnum vertgstend; vertgstend = edgegsttax[edgelocnum]; if (mategsttax[vertgstend] == -1) { /* Count free end vertices */ DGRAPHMATCHSCANCOUNTSELECT } if (mategsttax[vertgstend] < 0) /* Count not yet assigned end vertices */ edgeendnbr ++; } if (edgeendnbr <= 0) { /* If vertex has no possible neighbor */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (multlocnbr >= mateptr->c.multlocsiz) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": undersized multinode array (4)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mategsttax[vertlocnum] = /* Create single multinode */ multloctab[multlocnbr].vertglbnum[0] = multloctab[multlocnbr].vertglbnum[1] = vertlocnum + vertlocadj; multlocnbr ++; /* One more coarse vertex created */ matelocnbr --; /* TRICK: But with only one vertex */ edgekptnbr += edgelocnnd - vertloctax[vertlocnum]; continue; } if (edgefrenbr > 0) { /* If vertex has some free neighbor */ Gnum vertgstend; edgefrenbr = contextIntRandVal (mateptr->c.contptr, edgefrenbr); /* Select one of them randomly */ for (edgelocnum = vertloctax[vertlocnum]; ; edgelocnum ++) { /* Loop again on edges */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum >= edgelocnnd) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": internal error (4)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vertgstend = edgegsttax[edgelocnum]; if (mategsttax[vertgstend] == -1) { /* If free end vertex found */ if (DGRAPHMATCHSCANFINDSELECT) /* If it is the one we want */ break; /* Exit loop */ } } if (vertgstend >= vertlocnnd) /* If end vertex is a ghost vertex */ mategsttax[vertlocnum] = -2 - edgelocnum; /* Local vertex index codes edge number */ else { /* Perform local matching */ mategsttax[vertlocnum] = (vertgstend + vertlocadj); mategsttax[vertgstend] = (vertlocnum + vertlocadj); #ifdef SCOTCH_DEBUG_DGRAPH2 if (multlocnbr >= mateptr->c.multlocsiz) { errorPrint (STRINGIFY (DGRAPHMATCHSCANNAME) ": undersized multinode array (5)"); return; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ multloctab[multlocnbr].vertglbnum[0] = (vertlocnum + vertlocadj); multloctab[multlocnbr].vertglbnum[1] = (vertgstend + vertlocadj); multlocnbr ++; /* One more coarse vertex created (two more local mates) */ edgekptnbr += (edgelocnnd - vertloctax[vertlocnum]) + (vendloctax[vertgstend] - vertloctax[vertgstend]) - 2; /* "-2" for collapsed arcs */ } } /* Else vertex stays enqueued */ } } mateptr->matelocnbr = matelocnbr + 2 * (multlocnbr - mateptr->c.multlocnbr); /* TRICK: Two times new multinodes, minus single multinode adjustment */ mateptr->queulocnbr = queulocnbr; mateptr->c.multlocnbr = multlocnbr; mateptr->c.edgekptnbr = edgekptnbr; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_match_sync_coll.c000066400000000000000000000525721514310134000305620ustar00rootroot00000000000000/* Copyright 2009,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_match_sync_coll.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This routine synchronizes the fragments **/ /** of a distributed matching by means of **/ /** collective communications. **/ /** **/ /** DATES : # Version 5.1 : from : 06 feb 2009 **/ /** to : 22 apr 2009 **/ /** # Version 6.1 : from : 27 dec 2021 **/ /** to : 27 dec 2021 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 30 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "dgraph_match.h" /*************************************/ /* */ /* These routines handle distributed */ /* source graphs. */ /* */ /*************************************/ /* This routine performs a round of communication ** to synchronize enqueued matching requests across ** processors. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphMatchSyncColl ( DgraphMatchData * restrict mateptr) /* [norestrict:async] */ { Gnum queulocnbr; Gnum queulocnum; Gnum matelocnbr; Gnum multlocnbr; Gnum vertlocadj; Gnum edgekptnbr; int procngbnbr; int procngbidx; int procngbnum; int * restrict vsndcnttab; int * restrict vrcvcnttab; int * restrict vsnddsptab; int * restrict vrcvdsptab; Dgraph * const grafptr = mateptr->c.finegrafptr; /* [norestrict:async] */ const int * restrict const procngbtab = grafptr->procngbtab; int * restrict const procgsttax = mateptr->c.procgsttax; const Gnum * restrict const procvgbtab = mateptr->procvgbtab; const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgeloctax = grafptr->edgeloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; Gnum * restrict const queuloctab = mateptr->queuloctab; Gnum * restrict const mategsttax = mateptr->mategsttax; DgraphCoarsenMulti * restrict const multloctab = mateptr->c.multloctab; int * restrict const nsndidxtab = mateptr->c.nsndidxtab; DgraphCoarsenVert * const vsnddattab = mateptr->c.vsnddattab; /* [norestrict:async] */ procngbnbr = grafptr->procngbnbr; #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgeloctax == NULL) { errorPrint ("dgraphMatchSyncColl: not implemented"); return (1); } if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncColl: communication error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if ((vsnddsptab = memAlloc (4 * grafptr->procglbnbr * sizeof (int))) == NULL) { errorPrint ("dgraphMatchSyncColl: out of memory"); return (1); } vsndcnttab = vsnddsptab + grafptr->procglbnbr; /* TRICK: put vsnddsptab, vsndcnttab, vrcvdsptab in order for memSet() */ vrcvdsptab = vsndcnttab + grafptr->procglbnbr; vrcvcnttab = vrcvdsptab + grafptr->procglbnbr; for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) /* Reset indices for sending messages */ nsndidxtab[procngbnum] = mateptr->c.vsnddsptab[procngbtab[procngbnum]]; vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - grafptr->baseval; for (queulocnum = 0, queulocnbr = mateptr->queulocnbr; queulocnum < queulocnbr; queulocnum ++) { Gnum vertlocnum; Gnum vertgstnum; Gnum edgelocnum; Gnum mategstnum; Gnum mateglbnum; int procngbnum; int vsndidxnum; vertlocnum = queuloctab[queulocnum]; /* Get local vertex index */ mategstnum = mategsttax[vertlocnum]; /* Get mate (edge ?) index */ if (mategstnum >= -1) /* If vertex not willing to mate or matched locally after being considered during matching phase */ continue; edgelocnum = -2 - mategstnum; /* Get local edge to mate ghost vertex */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((edgelocnum < grafptr->baseval) || (edgelocnum >= (grafptr->edgelocsiz + grafptr->baseval)) || (mategsttax[edgegsttax[edgelocnum]] != -1)) { errorPrint ("dgraphMatchSyncColl: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mateglbnum = edgeloctax[edgelocnum]; vertgstnum = edgegsttax[edgelocnum]; procngbnum = procgsttax[vertgstnum]; /* Find neighbor owner process */ if (procngbnum < 0) { /* If neighbor not yet computed */ int procngbmax; procngbnum = 0; procngbmax = procngbnbr; while ((procngbmax - procngbnum) > 1) { /* Find owner process by dichotomy on procvgbtab */ int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (procvgbtab[procngbmed] > mateglbnum) procngbmax = procngbmed; else procngbnum = procngbmed; } procgsttax[vertgstnum] = procngbnum; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((grafptr->procvrttab[procngbtab[procngbnum]] > mateglbnum) || (grafptr->procvrttab[procngbtab[procngbnum] + 1] <= mateglbnum)) { errorPrint ("dgraphMatchSyncColl: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vsndidxnum = nsndidxtab[procngbnum] ++; /* Get position of message in send array */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (vsndidxnum >= mateptr->c.vsnddsptab[procngbtab[procngbnum] + 1]) { errorPrint ("dgraphMatchSyncColl: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vsnddattab[vsndidxnum].datatab[0] = vertlocnum + vertlocadj; vsnddattab[vsndidxnum].datatab[1] = mateglbnum; } memSet (vsnddsptab, 0, 3 * grafptr->procglbnbr * sizeof (int)); /* TRICK: resets vsnddsptab, vsndcnttab, vrcvdsptab */ for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) { int procglbnum; procglbnum = procngbtab[procngbnum]; vrcvdsptab[procglbnum] = 2 * mateptr->c.vrcvdsptab[procglbnum]; /* Times 2 because a "DgraphCoarsenVert" is two "Gnum"s */ vsnddsptab[procglbnum] = 2 * mateptr->c.vsnddsptab[procglbnum]; vsndcnttab[procglbnum] = 2 * (nsndidxtab[procngbnum] - mateptr->c.vsnddsptab[procglbnum]); } if (MPI_Alltoall (vsndcnttab, 1, MPI_INT, vrcvcnttab, 1, MPI_INT, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncColl: communication error (2)"); return (1); } if (MPI_Alltoallv (vsnddattab, vsndcnttab, vsnddsptab, GNUM_MPI, mateptr->c.vrcvdattab, vrcvcnttab, vrcvdsptab, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncColl: communication error (3)"); return (1); } matelocnbr = mateptr->matelocnbr; multlocnbr = mateptr->c.multlocnbr; edgekptnbr = mateptr->c.edgekptnbr; for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { int procngbnum; int procglbnum; int vrcvidxnnd; int requrcvnum; int requnxtnum; /* Index of location where to pack requests to process when all messages arrive */ procngbnum = (procngbidx + mateptr->c.procngbnxt) % procngbnbr; procglbnum = procngbtab[procngbnum]; vrcvidxnnd = mateptr->c.vrcvdsptab[procglbnum]; if (vrcvcnttab[procglbnum] > 0) { /* If query message is not empty */ Gnum vertsndnbr; /* Number of vertices to be sent to requesting neighbor */ Gnum edgesndnbr; /* Number of edges to be sent to requesting neighbor */ DgraphCoarsenVert * restrict const vrcvdattab = mateptr->c.vrcvdattab; /* Local restrict pointer only when data available */ vertsndnbr = edgesndnbr = 0; for (requrcvnum = requnxtnum = vrcvidxnnd, vrcvidxnnd += (vrcvcnttab[procglbnum] / 2); /* TRICK: each message item costs 2 Gnum's */ requrcvnum < vrcvidxnnd; requrcvnum ++) { Gnum vertglbnum; /* Our global number (the one seen as mate by sender) */ Gnum vertlocnum; /* Our local number (the one seen as mate by sender) */ Gnum vmatglbnum; /* Global number of requesting mate (sender of message) */ Gnum mategstnum; /* The mate we wanted to ask for */ vmatglbnum = vrcvdattab[requrcvnum].datatab[0]; /* Names are opposite because receiving side */ vertglbnum = vrcvdattab[requrcvnum].datatab[1]; vertlocnum = vertglbnum - vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocnum < grafptr->baseval) || /* If matching request is not directed towards our process */ (vertlocnum >= grafptr->vertlocnnd)) { errorPrint ("dgraphMatchSyncColl: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mategstnum = mategsttax[vertlocnum]; /* Get our local mating decision data */ if (mategstnum == -1) { /* If local vertex wanted for mating is free */ Gnum edgelocnum; for (edgelocnum = vertloctax[vertlocnum]; edgeloctax[edgelocnum] != vmatglbnum; edgelocnum ++) { #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum >= vendloctax[vertlocnum]) { errorPrint ("dgraphMatchSyncColl: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } mategsttax[edgegsttax[edgelocnum]] = vertglbnum; /* We are no longer free */ mategsttax[vertlocnum] = vmatglbnum; /* Leave message as is to acknowledge it */ matelocnbr ++; vertsndnbr ++; edgesndnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum]; } else if (mategstnum < -1) { /* If local vertex is also asking for mating */ Gnum edgelocnum; Gnum mateglbnum; edgelocnum = -2 - mategstnum; mateglbnum = edgeloctax[edgelocnum]; /* Get global number of our remote mate */ if (mateglbnum == vmatglbnum) { /* If it is with the sender */ Gnum flagval; /* Flag for choosing side to create multinode */ mategsttax[vertlocnum] = mateglbnum; /* Say we are mated to inform future requesting processes in same pass */ mategsttax[edgegsttax[edgelocnum]] = vertglbnum; flagval = (mateglbnum > vertglbnum) ? 1 : 0; /* Compute pseudo-random flag always opposite for both ends */ flagval = ((mateglbnum + (mateglbnum - vertglbnum) * flagval) & 1) ^ flagval; if (flagval == 0) { /* If flag is even, create multinode */ multloctab[multlocnbr].vertglbnum[0] = vertglbnum; multloctab[multlocnbr].vertglbnum[1] = mategstnum; /* Remote mate: negative value */ multlocnbr ++; /* One more coarse vertex created */ edgekptnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum] - 1; /* "-1" for ghost edge */ } else { /* If flag is odd, prepare to send vertex data at build time */ vertsndnbr ++; edgesndnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum]; } /* Go on by destroying message in all cases since both ends know what it is about */ vrcvdattab[requrcvnum --] = vrcvdattab[-- vrcvidxnnd]; /* Replace current message with another one and process it */ matelocnbr ++; /* One more local vertex mated on each side; no messages will tell it */ } else { /* If willing to mate but not with the sender, tell later with whom */ DgraphCoarsenVert vertdat; /* Temporary storage data for swapping vertices */ vertdat = vrcvdattab[requnxtnum]; /* Pack requests to process later at beginning of message */ vrcvdattab[requnxtnum].datatab[0] = vmatglbnum; vrcvdattab[requnxtnum].datatab[1] = -2 - vertlocnum; /* Build appropriate answer to mating request later, when all messages arrived */ if (requnxtnum ++ != requrcvnum) vrcvdattab[requrcvnum] = vertdat; /* Swap vertices if not already at the right place */ } } else /* If already matched, inform sender */ vrcvdattab[requrcvnum].datatab[1] = mategstnum; } mateptr->c.dcntloctab[procglbnum].vertsndnbr += vertsndnbr; mateptr->c.dcntloctab[procglbnum].edgesndnbr += edgesndnbr; } mateptr->c.nrcvidxtab[procngbnum] = vrcvidxnnd; } for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { int procngbnum; int procglbnum; int vsndidxnnd; int vsndidxnum; DgraphCoarsenVert * restrict const vrcvdattab = mateptr->c.vrcvdattab; /* Local restrict pointer only once data received */ procngbnum = (procngbidx + mateptr->c.procngbnxt) % procngbnbr; procglbnum = procngbtab[procngbnum]; vsndidxnnd = mateptr->c.nrcvidxtab[procngbnum]; /* Re-send the messages we have received to acknowledge */ for (vsndidxnum = mateptr->c.vrcvdsptab[procglbnum]; /* Finalize unfinished messages */ vsndidxnum < vsndidxnnd; vsndidxnum ++) { Gnum vertlocnum; Gnum mateglbnum; vertlocnum = vrcvdattab[vsndidxnum].datatab[1]; if (vertlocnum >= 0) /* If no more unfinished messages to process, quit scanning */ break; vertlocnum = -2 - vertlocnum; mateglbnum = mategsttax[vertlocnum]; if (mateglbnum >= 0) /* If vertex we wanted to mate with has been mated in this round */ vrcvdattab[vsndidxnum].datatab[1] = mateglbnum; /* Propagate this information back to the requester */ else { /* Vertex mating data not yet available (maybe in answer) */ vrcvdattab[vsndidxnum] = vrcvdattab[-- vsndidxnnd]; /* Remove message as no reply means not willing */ if (vrcvdattab[vsndidxnum].datatab[1] < 0) /* If replacing message is also to be processed */ vsndidxnum --; /* Do not skip replaced message in next iteration */ } } if (vsndidxnnd < (mateptr->c.vrcvdsptab[procglbnum] + (vrcvcnttab[procglbnum] / 2))) { /* If space created */ vrcvdattab[vsndidxnnd].datatab[0] = /* Indicate end of useful data */ vrcvdattab[vsndidxnnd].datatab[1] = -1; } } if (MPI_Alltoallv (mateptr->c.vrcvdattab, vrcvcnttab, vrcvdsptab, GNUM_MPI, vsnddattab, vsndcnttab, vsnddsptab, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncColl: communication error (3)"); return (1); } for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { int procngbnum; int procglbnum; int vrcvidxnnd; int vrcvidxnum; procngbnum = (procngbidx + mateptr->c.procngbnxt) % procngbnbr; procglbnum = procngbtab[procngbnum]; for (vrcvidxnum = mateptr->c.vsnddsptab[procglbnum], vrcvidxnnd = vrcvidxnum + (vsndcnttab[procglbnum] / 2); /* TRICK: each message item costs 2 Gnum's */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum edgelocnum; Gnum vertglbnum; /* Our global number (the one seen as mate by sender) */ Gnum vertlocnum; /* Our local number (the one seen as mate by sender) */ Gnum vmatglbnum; /* Global number of vertex to which the mate is mated */ Gnum mategstnum; /* The mate we wanted to ask for */ vertglbnum = vsnddattab[vrcvidxnum].datatab[0]; if (vertglbnum == -1) /* If end of useful space reached */ break; vmatglbnum = vsnddattab[vrcvidxnum].datatab[1]; vertlocnum = vertglbnum - vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocnum < grafptr->baseval) || /* If matching reply is not directed towards our process */ (vertlocnum >= grafptr->vertlocnnd)) { errorPrint ("dgraphMatchSyncColl: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mategstnum = mategsttax[vertlocnum]; /* Get our local mating decision data */ edgelocnum = -2 - mategstnum; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((mategstnum >= -1) || /* If we did not ask anything or if we were already matched, no reply message should come to us */ ((mategsttax[edgegsttax[edgelocnum]] >= 0) && /* Also, if our prospective mate was itself already set as matched by a previous reply */ (mategsttax[edgegsttax[edgelocnum]] != vertglbnum) && /* And this message is not the positive reply which acknowledges this mating */ (mategsttax[edgegsttax[edgelocnum]] != vmatglbnum))) { /* Or an informative negative reply which gives again the mate of the ghost */ errorPrint ("dgraphMatchSyncColl: internal error (9)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (edgeloctax[edgelocnum] == vmatglbnum) { /* If positive answer from the mate we wanted */ mategsttax[vertlocnum] = vmatglbnum; /* Set local vertex as matched with the mate */ mategsttax[edgegsttax[edgelocnum]] = vertglbnum; /* Update state of ghost mate */ multloctab[multlocnbr].vertglbnum[0] = vertglbnum; multloctab[multlocnbr].vertglbnum[1] = mategstnum; /* Remote mate: negative value */ multlocnbr ++; /* One more coarse vertex created */ matelocnbr ++; edgekptnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum] - 1; /* "-1" for ghost edge */ } else { /* If negative answer from the mate we wanted */ mategsttax[vertlocnum] = -1; /* Reset local vertex as free for mating */ mategsttax[edgegsttax[edgelocnum]] = vmatglbnum; /* Update state of unwilling ghost mate */ } } } mateptr->matelocnbr = matelocnbr; mateptr->c.multlocnbr = multlocnbr; mateptr->c.edgekptnbr = edgekptnbr; #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncColl: communication error (11)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ memFree (vsnddsptab); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_match_sync_ptop.c000066400000000000000000000622061514310134000306060ustar00rootroot00000000000000/* Copyright 2008,2009,2012,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_match_sync_ptop.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed graph matching **/ /** routines. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2008 **/ /** to : 22 apr 2009 **/ /** # Version 6.0 : from : 03 apr 2012 **/ /** to : 03 apr 2012 **/ /** # Version 6.1 : from : 27 dec 2021 **/ /** to : 27 dec 2021 **/ /** # Version 7.0 : from : 22 oct 2021 **/ /** to : 30 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "dgraph_match.h" /*************************************/ /* */ /* These routines handle distributed */ /* source graphs. */ /* */ /*************************************/ /* This routine performs a round of point-to-point ** communication to synchronize enqueued matching ** requests across processors. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphMatchSyncPtop ( DgraphMatchData * const mateptr) /* [norestrict:async] */ { Gnum queulocnbr; Gnum queulocnum; Gnum matelocnbr; Gnum multlocnbr; Gnum vertlocadj; Gnum edgekptnbr; int procngbnbr; int procngbidx; int procngbnum; int vrcvreqnbr; Gnum deteval; /* Flag set if deterministic behavior */ Dgraph * const grafptr = mateptr->c.finegrafptr; /* [norestrict:async] */ const int * restrict const procngbtab = grafptr->procngbtab; int * restrict const procgsttax = mateptr->c.procgsttax; const Gnum * restrict const procvgbtab = mateptr->procvgbtab; const Gnum * restrict const vertloctax = grafptr->vertloctax; const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgeloctax = grafptr->edgeloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; Gnum * restrict const queuloctab = mateptr->queuloctab; Gnum * restrict const mategsttax = mateptr->mategsttax; DgraphCoarsenMulti * restrict const multloctab = mateptr->c.multloctab; int * restrict const nsndidxtab = mateptr->c.nsndidxtab; DgraphCoarsenVert * const vsnddattab = mateptr->c.vsnddattab; /* [norestrict:async] */ procngbnbr = grafptr->procngbnbr; #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgeloctax == NULL) { errorPrint ("dgraphMatchSyncPtop: not implemented"); return (1); } if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ for (procngbnum = 0; procngbnum < procngbnbr; procngbnum ++) /* Reset indices for sending messages */ nsndidxtab[procngbnum] = mateptr->c.vsnddsptab[procngbtab[procngbnum]]; vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - grafptr->baseval; for (queulocnum = 0, queulocnbr = mateptr->queulocnbr; queulocnum < queulocnbr; queulocnum ++) { Gnum vertlocnum; Gnum vertgstnum; Gnum edgelocnum; Gnum mategstnum; Gnum mateglbnum; int procngbnum; int vsndidxnum; vertlocnum = queuloctab[queulocnum]; /* Get local vertex index */ mategstnum = mategsttax[vertlocnum]; /* Get mate (edge ?) index */ if (mategstnum >= -1) /* If vertex not willing to mate or matched locally after being considered during matching phase */ continue; edgelocnum = -2 - mategstnum; /* Get local edge to mate ghost vertex */ #ifdef SCOTCH_DEBUG_DGRAPH2 if ((edgelocnum < grafptr->baseval) || (edgelocnum >= (grafptr->edgelocsiz + grafptr->baseval)) || (mategsttax[edgegsttax[edgelocnum]] != -1)) { errorPrint ("dgraphMatchSyncPtop: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mateglbnum = edgeloctax[edgelocnum]; vertgstnum = edgegsttax[edgelocnum]; procngbnum = procgsttax[vertgstnum]; /* Find neighbor owner process */ if (procngbnum < 0) { /* If neighbor not yet computed */ int procngbmax; procngbnum = 0; procngbmax = procngbnbr; while ((procngbmax - procngbnum) > 1) { /* Find owner process by dichotomy on procvgbtab */ int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (procvgbtab[procngbmed] > mateglbnum) procngbmax = procngbmed; else procngbnum = procngbmed; } procgsttax[vertgstnum] = procngbnum; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((grafptr->procvrttab[procngbtab[procngbnum]] > mateglbnum) || (grafptr->procvrttab[procngbtab[procngbnum] + 1] <= mateglbnum)) { errorPrint ("dgraphMatchSyncPtop: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vsndidxnum = nsndidxtab[procngbnum] ++; /* Get position of message in send array */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (vsndidxnum >= mateptr->c.vsnddsptab[procngbtab[procngbnum] + 1]) { errorPrint ("dgraphMatchSyncPtop: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vsnddattab[vsndidxnum].datatab[0] = vertlocnum + vertlocadj; vsnddattab[vsndidxnum].datatab[1] = mateglbnum; } for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { /* Post receives of mating requests in descending order */ int procngbnum; int procglbnum; procngbnum = (mateptr->c.procngbnxt + (procngbnbr - 1) - procngbidx) % procngbnbr; procglbnum = procngbtab[procngbnum]; if (MPI_Irecv (mateptr->c.vrcvdattab + mateptr->c.vrcvdsptab[procglbnum], 2 * (mateptr->c.vrcvdsptab[procglbnum + 1] - mateptr->c.vrcvdsptab[procglbnum]), GNUM_MPI, procglbnum, TAGMATCH, grafptr->proccomm, &mateptr->c.nrcvreqtab[procngbnum]) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (2)"); return (1); } } for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { /* Post sends of mating requests in ascending order */ int procngbnum; int procglbnum; procngbnum = (procngbidx + mateptr->c.procngbnxt) % procngbnbr; procglbnum = procngbtab[procngbnum]; if (MPI_Isend (vsnddattab + mateptr->c.vsnddsptab[procglbnum], 2 * (nsndidxtab[procngbnum] - mateptr->c.vsnddsptab[procglbnum]), GNUM_MPI, procglbnum, TAGMATCH, grafptr->proccomm, &mateptr->c.nsndreqtab[procngbnum]) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (3)"); return (1); } } matelocnbr = mateptr->matelocnbr; multlocnbr = mateptr->c.multlocnbr; edgekptnbr = mateptr->c.edgekptnbr; contextValuesGetInt (mateptr->c.contptr, CONTEXTOPTIONNUMDETERMINISTIC, &deteval); for (vrcvreqnbr = procngbnbr; vrcvreqnbr > 0; vrcvreqnbr --) { /* For all pending receive requests */ int procglbnum; int procngbnum; int vrcvidxnnd; int requrcvnum; int requnxtnum; /* Index of location where to pack requests to process when all messages arrive */ MPI_Status statdat; int statsiz; int o; if (deteval) { procngbnum = vrcvreqnbr - 1; o = MPI_Wait (&mateptr->c.nrcvreqtab[procngbnum], &statdat); } else o = MPI_Waitany (procngbnbr, mateptr->c.nrcvreqtab, &procngbnum, &statdat); if ((o != MPI_SUCCESS) || (MPI_Get_count (&statdat, GNUM_MPI, &statsiz) != MPI_SUCCESS)) { errorPrint ("dgraphMatchSyncPtop: communication error (4)"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (statdat.MPI_SOURCE != procngbtab[procngbnum]) { errorPrint ("dgraphMatchSyncPtop: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ procglbnum = procngbtab[procngbnum]; vrcvidxnnd = mateptr->c.vrcvdsptab[procglbnum]; if (statsiz <= 0) { /* If query message is empty */ mateptr->c.nrcvidxtab[procngbnum] = -1; /* No need to send a reply */ continue; /* Skip message processing */ } else { Gnum vertsndnbr; /* Number of vertices to be sent to requesting neighbor */ Gnum edgesndnbr; /* Number of edges to be sent to requesting neighbor */ DgraphCoarsenVert * restrict const vrcvdattab = mateptr->c.vrcvdattab; /* Local restrict pointer only when data available (has been received) */ vertsndnbr = edgesndnbr = 0; for (requrcvnum = requnxtnum = vrcvidxnnd, vrcvidxnnd += (statsiz / 2); /* TRICK: each message item costs 2 Gnum's */ requrcvnum < vrcvidxnnd; requrcvnum ++) { Gnum vertglbnum; /* Our global number (the one seen as mate by sender) */ Gnum vertlocnum; /* Our local number (the one seen as mate by sender) */ Gnum vmatglbnum; /* Global number of requesting mate (sender of message) */ Gnum mategstnum; /* The mate we wanted to ask for */ vmatglbnum = vrcvdattab[requrcvnum].datatab[0]; /* Names are opposite because receiving side */ vertglbnum = vrcvdattab[requrcvnum].datatab[1]; vertlocnum = vertglbnum - vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocnum < grafptr->baseval) || /* If matching request is not directed towards our process */ (vertlocnum >= grafptr->vertlocnnd)) { errorPrint ("dgraphMatchSyncPtop: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mategstnum = mategsttax[vertlocnum]; /* Get our local mating decision data */ if (mategstnum == -1) { /* If local vertex wanted for mating is free */ Gnum edgelocnum; for (edgelocnum = vertloctax[vertlocnum]; edgeloctax[edgelocnum] != vmatglbnum; edgelocnum ++) { #ifdef SCOTCH_DEBUG_DGRAPH2 if (edgelocnum >= vendloctax[vertlocnum]) { errorPrint ("dgraphMatchSyncPtop: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } mategsttax[edgegsttax[edgelocnum]] = vertglbnum; /* We are no longer free */ mategsttax[vertlocnum] = vmatglbnum; /* Leave message as is to acknowledge it */ matelocnbr ++; vertsndnbr ++; edgesndnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum]; } else if (mategstnum < -1) { /* If local vertex is also asking for mating */ Gnum edgelocnum; Gnum mateglbnum; edgelocnum = -2 - mategstnum; mateglbnum = edgeloctax[edgelocnum]; /* Get global number of our remote mate */ if (mateglbnum == vmatglbnum) { /* If it is with the sender */ Gnum flagval; /* Flag for choosing side to create multinode */ mategsttax[vertlocnum] = mateglbnum; /* Say we are mated to inform future requesting processes in same pass */ mategsttax[edgegsttax[edgelocnum]] = vertglbnum; flagval = (mateglbnum > vertglbnum) ? 1 : 0; /* Compute pseudo-random flag always opposite for both ends */ flagval = ((mateglbnum + (mateglbnum - vertglbnum) * flagval) & 1) ^ flagval; if (flagval == 0) { /* If flag is even, create multinode */ multloctab[multlocnbr].vertglbnum[0] = vertglbnum; multloctab[multlocnbr].vertglbnum[1] = mategstnum; /* Remote mate: negative value */ multlocnbr ++; /* One more coarse vertex created */ edgekptnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum] - 1; /* "-1" for ghost edge */ } else { /* If flag is odd, prepare to send vertex data at build time */ vertsndnbr ++; edgesndnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum]; } /* Go on by destroying message in all cases since both ends know what it is about */ vrcvdattab[requrcvnum --] = vrcvdattab[-- vrcvidxnnd]; /* Replace current message with another one and process it */ matelocnbr ++; /* One more local vertex mated on each side; no messages will tell it */ } else { /* If willing to mate but not with the sender, tell later with whom */ DgraphCoarsenVert vertdat; /* Temporary storage data for swapping vertices */ vertdat = vrcvdattab[requnxtnum]; /* Pack requests to process later at beginning of message */ vrcvdattab[requnxtnum].datatab[0] = vmatglbnum; vrcvdattab[requnxtnum].datatab[1] = -2 - vertlocnum; /* Build appropriate answer to mating request later, when all messages arrived */ if (requnxtnum ++ != requrcvnum) vrcvdattab[requrcvnum] = vertdat; /* Swap vertices if not already at the right place */ } } else /* If already matched, inform sender */ vrcvdattab[requrcvnum].datatab[1] = mategstnum; } mateptr->c.dcntloctab[procglbnum].vertsndnbr += vertsndnbr; mateptr->c.dcntloctab[procglbnum].edgesndnbr += edgesndnbr; } mateptr->c.nrcvidxtab[procngbnum] = vrcvidxnnd; } if (MPI_Waitall (procngbnbr, mateptr->c.nsndreqtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait for send requests of mating requests to complete */ errorPrint ("dgraphMatchSyncPtop: communication error (5)"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (6)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ vrcvreqnbr = procngbnbr; /* Count number of receive requests we will have to consider */ for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { /* Post receives of mating replies in descending order */ int procngbnum; int procglbnum; procngbnum = (mateptr->c.procngbnxt + (procngbnbr - 1) - procngbidx) % procngbnbr; procglbnum = procngbtab[procngbnum]; if (nsndidxtab[procngbnum] <= mateptr->c.vsnddsptab[procglbnum]) { /* If we had sent an empty query message, do not expect any reply */ mateptr->c.nrcvreqtab[procngbnum] = MPI_REQUEST_NULL; vrcvreqnbr --; /* One less receive request to wait for */ continue; } if (MPI_Irecv (vsnddattab + mateptr->c.vsnddsptab[procglbnum], 2 * (mateptr->c.vsnddsptab[procglbnum + 1] - mateptr->c.vsnddsptab[procglbnum]), GNUM_MPI, procglbnum, TAGMATCH + 1, grafptr->proccomm, &mateptr->c.nrcvreqtab[procngbnum]) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (7)"); return (1); } } for (procngbidx = 0; procngbidx < procngbnbr; procngbidx ++) { /* Post sends of mating requests in ascending order */ int procngbnum; int procglbnum; int vsndidxnnd; procngbnum = (procngbidx + mateptr->c.procngbnxt) % procngbnbr; procglbnum = procngbtab[procngbnum]; vsndidxnnd = mateptr->c.nrcvidxtab[procngbnum]; /* Re-send (or not) the messages we have received to acknowledge */ if (vsndidxnnd >= 0) { /* If we had received a non-empty message (but reply might be empty) */ int vsndidxnum; DgraphCoarsenVert * restrict const vrcvdattab = mateptr->c.vrcvdattab; /* Local restrict pointer only when data available */ for (vsndidxnum = mateptr->c.vrcvdsptab[procglbnum]; /* Finalize unfinished messages */ vsndidxnum < vsndidxnnd; vsndidxnum ++) { Gnum vertlocnum; Gnum mateglbnum; vertlocnum = vrcvdattab[vsndidxnum].datatab[1]; if (vertlocnum >= 0) /* If no more unfinished messages to process, quit scanning */ break; vertlocnum = -2 - vertlocnum; mateglbnum = mategsttax[vertlocnum]; if (mateglbnum >= 0) /* If vertex we wanted to mate with has been mated in this round */ vrcvdattab[vsndidxnum].datatab[1] = mateglbnum; /* Propagate this information back to the requester */ else { /* Vertex mating data not yet available (maybe in answer) */ vrcvdattab[vsndidxnum] = vrcvdattab[-- vsndidxnnd]; /* Remove message as no reply means not willing */ if (vrcvdattab[vsndidxnum].datatab[1] < 0) /* If replacing message is also to be processed */ vsndidxnum --; /* Do not skip replaced message in next iteration */ } } if (MPI_Isend (vrcvdattab + mateptr->c.vrcvdsptab[procglbnum], 2 * (vsndidxnnd - mateptr->c.vrcvdsptab[procglbnum]), GNUM_MPI, procglbnum, TAGMATCH + 1, grafptr->proccomm, &mateptr->c.nsndreqtab[procngbnum]) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (8)"); return (1); } } #ifdef SCOTCH_DEBUG_DGRAPH2 else { if (mateptr->c.nsndreqtab[procngbnum] != MPI_REQUEST_NULL) { /* Should have been set by previous MPI_Waitall() */ errorPrint ("dgraphMatchSyncPtop: internal error (7)"); return (1); } } #endif /* SCOTCH_DEBUG_DGRAPH2 */ } if (deteval) vrcvreqnbr = procngbnbr; /* For deterministic behavior, consider all neighbors in order, whether communicating or not */ for ( ; vrcvreqnbr > 0; vrcvreqnbr --) { /* For all pending receive requests */ int vrcvidxnnd; int vrcvidxnum; int procngbnum; MPI_Status statdat; int statsiz; int o; if (deteval) { procngbnum = vrcvreqnbr - 1; if (mateptr->c.nrcvreqtab[procngbnum] == MPI_REQUEST_NULL) /* If we do not expect this message, skip it */ continue; o = MPI_Wait (&mateptr->c.nrcvreqtab[procngbnum], &statdat); } else o = MPI_Waitany (procngbnbr, mateptr->c.nrcvreqtab, &procngbnum, &statdat); if ((o != MPI_SUCCESS) || (MPI_Get_count (&statdat, GNUM_MPI, &statsiz) != MPI_SUCCESS)) { errorPrint ("dgraphMatchSyncPtop: communication error (9)"); return (1); } for (vrcvidxnum = mateptr->c.vsnddsptab[procngbtab[procngbnum]], vrcvidxnnd = vrcvidxnum + (statsiz / 2); /* TRICK: each message item costs 2 Gnum's */ vrcvidxnum < vrcvidxnnd; vrcvidxnum ++) { Gnum edgelocnum; Gnum vertglbnum; /* Our global number (the one seen as mate by sender) */ Gnum vertlocnum; /* Our local number (the one seen as mate by sender) */ Gnum vmatglbnum; /* Global number of vertex to which the mate is mated */ Gnum mategstnum; /* The mate we wanted to ask for */ vertglbnum = vsnddattab[vrcvidxnum].datatab[0]; vmatglbnum = vsnddattab[vrcvidxnum].datatab[1]; vertlocnum = vertglbnum - vertlocadj; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((vertlocnum < grafptr->baseval) || /* If matching reply is not directed towards our process */ (vertlocnum >= grafptr->vertlocnnd)) { errorPrint ("dgraphMatchSyncPtop: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ mategstnum = mategsttax[vertlocnum]; /* Get our local mating decision data */ edgelocnum = -2 - mategstnum; #ifdef SCOTCH_DEBUG_DGRAPH2 if ((mategstnum >= -1) || /* If we did not ask anything or if we were already matched, no reply message should come to us */ ((mategsttax[edgegsttax[edgelocnum]] >= 0) && /* Also, if our prospective mate was itself already set as matched by a previous reply */ (mategsttax[edgegsttax[edgelocnum]] != vertglbnum) && /* And this message is not the positive reply which acknowledges this mating */ (mategsttax[edgegsttax[edgelocnum]] != vmatglbnum))) { /* Or an informative negative reply which gives again the mate of the ghost */ errorPrint ("dgraphMatchSyncPtop: internal error (9)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (edgeloctax[edgelocnum] == vmatglbnum) { /* If positive answer from the mate we wanted */ mategsttax[vertlocnum] = vmatglbnum; /* Set local vertex as matched with the mate */ mategsttax[edgegsttax[edgelocnum]] = vertglbnum; /* Update state of ghost mate */ multloctab[multlocnbr].vertglbnum[0] = vertglbnum; multloctab[multlocnbr].vertglbnum[1] = mategstnum; /* Remote mate: negative value */ multlocnbr ++; /* One more coarse vertex created */ matelocnbr ++; edgekptnbr += vendloctax[vertlocnum] - vertloctax[vertlocnum] - 1; /* "-1" for ghost edge */ } else { /* If negative answer from the mate we wanted */ mategsttax[vertlocnum] = -1; /* Reset local vertex as free for mating */ mategsttax[edgegsttax[edgelocnum]] = vmatglbnum; /* Update state of unwilling ghost mate */ } } } mateptr->matelocnbr = matelocnbr; mateptr->c.multlocnbr = multlocnbr; mateptr->c.edgekptnbr = edgekptnbr; if (MPI_Waitall (procngbnbr, mateptr->c.nsndreqtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait for send requests of mating requests to complete */ errorPrint ("dgraphMatchSyncPtop: communication error (10)"); return (1); } #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Barrier (grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphMatchSyncPtop: communication error (11)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_redist.c000066400000000000000000000575411514310134000267140ustar00rootroot00000000000000/* Copyright 2012,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_redist.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file implements the distributed **/ /** graph redistribution method. **/ /** **/ /** DATES : # Version 6.0 : from : 10 may 2010 **/ /** to : 13 sep 2012 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_DGRAPH_REDIST #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_redist.h" /**********************************/ /* */ /* Graph redistribution routines. */ /* */ /**********************************/ /* This routine creates a redistributed ** destination graph by redistributing ** the contents of the given source graph ** according to the provided information. ** It returns: ** - 0 : if the redistributed graph has been created. ** - !0 : on error. */ int dgraphRedist ( Dgraph * restrict const srcgrafptr, /* Source distributed graph */ const Gnum * restrict const srcpartloctax, /* Array of process destinations */ const Gnum * restrict const srcpermgsttax, /* Redistribution permutation array */ const Gnum dstvertlocdlt, /* Extra size of local vertex array */ const Gnum dstedgelocdlt, /* Extra size of local edge array */ Dgraph * restrict const dstgrafptr) /* Destination distributed graph */ { Gnum * restrict permgsttax; const Gnum * restrict permgsttmp; Gnum permgstnbr; Gnum * restrict procdsptab; Gnum * restrict procvrttab; Gnum * restrict vadjloctab; Gnum * restrict vadjglbtab; Gnum vadjglbnbr; Gnum vertlocnum; int cheklocval; int chekglbval; Gnum procdspval; Gnum procvrtval; int procglbnbr; int procnum; int o; if (srcpartloctax == NULL) { errorPrint ("dgraphRedist: part array must be provided"); return (1); } cheklocval = 0; procglbnbr = srcgrafptr->procglbnbr; if (srcpermgsttax != NULL) { /* Do not allocate permutation array if already provided */ permgstnbr = vadjglbnbr = 0; } else { if (dgraphGhst (srcgrafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("dgraphRedist: cannot compute ghost edge array"); return (1); } permgstnbr = srcgrafptr->vertgstnbr; vadjglbnbr = procglbnbr; } if (memAllocGroup ((void **) (void *) &procvrttab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &procdsptab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &vadjloctab, (size_t) (procglbnbr * sizeof (Gnum)), &vadjglbtab, (size_t) (vadjglbnbr * sizeof (Gnum)), &permgsttax, (size_t) (permgstnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphRedist: out of memory"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphRedist: communication error (1)"); return (1); } #else /* SCOTCH_DEBUG_DGRAPH2 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (chekglbval != 0) { if (procvrttab != NULL) memFree (procvrttab); return (1); } memSet (vadjloctab, 0, procglbnbr * sizeof (Gnum)); for (vertlocnum = srcgrafptr->baseval; vertlocnum < srcgrafptr->vertlocnnd; vertlocnum ++) /* Count number of vertices for each processor */ vadjloctab[srcpartloctax[vertlocnum]] ++; if (MPI_Allreduce (vadjloctab, procdsptab, procglbnbr, GNUM_MPI, MPI_SUM, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphRedist: communication error (2)"); return (1); } for (procnum = 0, procdspval = procvrtval = srcgrafptr->baseval; procnum < procglbnbr; procnum ++) { /* Create vertex range arrays */ Gnum procglbval; procglbval = procdsptab[procnum]; procdsptab[procnum] = procdspval; /* Build displacement array */ procdspval += procglbval; procvrttab[procnum] = procvrtval; /* Build vertex index array by adding vertlocdlt */ procvrtval += procglbval + dstvertlocdlt; } procdsptab[procnum] = procdspval; /* Set end of vertex range arrays */ procvrttab[procnum] = procvrtval; if (srcpermgsttax == NULL) { permgsttax -= srcgrafptr->baseval; if (MPI_Scan (vadjloctab, vadjglbtab, procglbnbr, GNUM_MPI, MPI_SUM, srcgrafptr->proccomm) != MPI_SUCCESS) { /* Compute permutation start indices */ errorPrint ("dgraphRedist: communication error (3)"); return (1); } for (procnum = 0; procnum < procglbnbr; procnum ++) /* Finalize permutation start indices */ vadjglbtab[procnum] -= vadjloctab[procnum] - procvrttab[procnum]; for (vertlocnum = srcgrafptr->baseval; vertlocnum < srcgrafptr->vertlocnnd; vertlocnum ++) /* Renumber local vertices */ permgsttax[vertlocnum] = vadjglbtab[srcpartloctax[vertlocnum]] ++; if (dgraphHaloSync (srcgrafptr, permgsttax + srcgrafptr->baseval, GNUM_MPI) != 0) { errorPrint ("dgraphRedist: cannot compute halo"); memFree (procvrttab); /* Free group leader */ return (1); } permgsttmp = permgsttax; } else permgsttmp = srcpermgsttax; o = dgraphRedist2 (srcgrafptr, srcpartloctax, permgsttmp, procdsptab, procvrttab, 0, dstedgelocdlt, dstgrafptr); memFree (procvrttab); /* Free group leader */ return (o); } static int dgraphRedist2 ( Dgraph * restrict const srcgrafptr, /* Source distributed graph */ const Gnum * restrict const srcpartloctax, /* Array of process destinations */ const Gnum * restrict const srcpermgsttax, /* Redistribution permutation array */ const Gnum * const dstprocdsptab, /* New distribution of graph vertices */ const Gnum * const dstprocvrttab, /* New distribution of graph vertices */ const Gnum dstvertlocdlt, /* Extra size of local vertex array */ const Gnum dstedgelocdlt, /* Extra size of local edge array */ Dgraph * restrict const dstgrafptr) /* Destination distributed graph */ { Gnum baseval; int flveval; /* Number of data to send per vertex */ int fledval; /* Number of data to send per edge */ Gnum * drcvdattab; /* Receive array for vertex and edge data [norestrict] */ Gnum * dsnddattab; /* Send array for vertex and edge data [norestrict] */ int * restrict drcvcnttab; /* Count array for received data */ int * restrict dsndcnttab; /* Count array for sent data */ int * restrict drcvdsptab; /* Displacement array for received data */ int * restrict dsnddsptab; /* Displacement array for sent data */ int drcvdatnbr; /* Amount of data to allocate */ int dsnddatnbr; int drcvdatidx; int dsnddatidx; Gnum srcvertlocnum; Gnum srcvertlocnnd; Gnum srcvertlocadj; Gnum * restrict dstvertloctax; Gnum dstvertlocadj; Gnum dstvertlocnbr; Gnum dstvertlocnnd; Gnum dstvertlocnum; Gnum * restrict dstveloloctax; Gnum dstvelolocsiz; Gnum dstvelolocsum; Gnum * restrict dstvlblloctax; Gnum * dstedgeloctax; /* Pointer to destination edge array [norestrict] */ Gnum dstedgelocnbr; Gnum dstedgelocsiz; Gnum dstedgelocnum; Gnum * dstedloloctax; /* Pointer to destination edge load array [norestrict] */ Gnum dstedlolocsiz; int dstvertloctmp; /* Vertex and edge numbers, as (int)s */ int dstedgeloctmp; Gnum procdspval; int procglbnbr; int cheklocval; int chekglbval; int procnum; const Gnum * restrict const srcvertloctax = srcgrafptr->vertloctax; const Gnum * restrict const srcvendloctax = srcgrafptr->vendloctax; const Gnum * restrict const srcveloloctax = srcgrafptr->veloloctax; const Gnum * restrict const srcvlblloctax = srcgrafptr->vlblloctax; const Gnum * restrict const srcedgegsttax = srcgrafptr->edgegsttax; const Gnum * restrict const srcedloloctax = srcgrafptr->edloloctax; dstgrafptr->flagval |= (DGRAPHFREEALL ^ DGRAPHFREECOMM) | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; cheklocval = 0; procglbnbr = srcgrafptr->procglbnbr; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &dstgrafptr->procdsptab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &dstgrafptr->procvrttab, (size_t) ((procglbnbr + 1) * sizeof (Gnum)), &dstgrafptr->proccnttab, (size_t) (procglbnbr * sizeof (Gnum)), &dstgrafptr->procngbtab, (size_t) (procglbnbr * sizeof (int)), &dstgrafptr->procrcvtab, (size_t) (procglbnbr * sizeof (int)), &dstgrafptr->procsndtab, (size_t) (procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphRedist2: out of memory (1)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphRedist2: communication error (1)"); return (1); } #else /* SCOTCH_DEBUG_DGRAPH2 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (chekglbval != 0) { dgraphFree (dstgrafptr); return (1); } dsndcnttab = (int *) dstgrafptr->procdsptab; /* TRICK: use procdsptab and procvrttab as paired send count arrays */ drcvcnttab = (int *) dstgrafptr->proccnttab; /* TRICK: use proccnttab and procngbtab as paired receive arrays */ dsnddsptab = (int *) dstgrafptr->procrcvtab; drcvdsptab = (int *) dstgrafptr->procsndtab; memSet (dsndcnttab, 0, procglbnbr * 2 * sizeof (int)); /* TRICK: Pairs of vertex and edge counts will be exchanged */ baseval = srcgrafptr->baseval; for (srcvertlocnum = baseval, srcvertlocnnd = srcgrafptr->vertlocnnd; srcvertlocnum < srcvertlocnnd; srcvertlocnum ++) { Gnum procngbnum; procngbnum = srcpartloctax[srcvertlocnum]; dsndcnttab[2 * procngbnum] ++; /* One more vertex */ dsndcnttab[2 * procngbnum + 1] += (int) (srcvendloctax[srcvertlocnum] - srcvertloctax[srcvertlocnum]); /* More edges */ } if (MPI_Alltoall (dsndcnttab, 2, MPI_INT, /* Get amounts of vertex and edge data to receive */ drcvcnttab, 2, MPI_INT, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphRedist2: communication error (2)"); return (1); } fledval = ((srcgrafptr->edloloctax != NULL) ? 1 : 0) + 1; /* Amount of data to exchange per edge */ flveval = ((srcgrafptr->veloloctax != NULL) ? 1 : 0) + 3; /* Number, degree and label count for 3 */ for (procnum = 0, drcvdatidx = dsnddatidx = 0, dstvertloctmp = dstedgeloctmp = 0; procnum < procglbnbr; procnum ++) { /* Compute start indices for data send and receive arrays */ int dsndcntval; int drcvcntval; dsndcntval = dsndcnttab[2 * procnum] * flveval + dsndcnttab[2 * procnum + 1] * fledval; drcvcntval = drcvcnttab[2 * procnum] * flveval + drcvcnttab[2 * procnum + 1] * fledval; dstvertloctmp += drcvcnttab[2 * procnum]; /* Accumulate number of vertices and edges */ dstedgeloctmp += drcvcnttab[2 * procnum + 1]; dsnddsptab[procnum] = dsnddatidx; dsnddatidx += dsndcntval; drcvdsptab[procnum] = drcvdatidx; drcvdatidx += drcvcntval; } dsnddatnbr = dsnddatidx; /* Preserve amount of data to allocate for sending and receiving */ drcvdatnbr = drcvdatidx; for (procnum = procglbnbr - 1; procnum >= 0; procnum --) { /* Compute count arrays for data send and receive arrays */ int dsnddspval; int drcvdspval; dsnddspval = dsnddsptab[procnum]; dsndcnttab[procnum] = dsnddatidx - dsnddspval; dsnddatidx = dsnddspval; drcvdspval = drcvdsptab[procnum]; drcvcnttab[procnum] = drcvdatidx - drcvdspval; drcvdatidx = drcvdspval; } dstvertlocnbr = (Gnum) dstvertloctmp; dstedgelocnbr = (Gnum) dstedgeloctmp; dstedgelocsiz = dstedgelocnbr + dstedgelocdlt; dstvelolocsiz = (srcgrafptr->veloloctax != NULL) ? dstvertlocnbr + dstvertlocdlt : 0; dstedlolocsiz = (srcgrafptr->edloloctax != NULL) ? dstedgelocsiz : 0; if (memAllocGroup ((void **) (void *) &dstvertloctax, (size_t) ((dstvertlocnbr + dstvertlocdlt + 1) * sizeof (Gnum)), /* Create compact array */ &dstveloloctax, (size_t) ( dstvelolocsiz * sizeof (Gnum)), &dstvlblloctax, (size_t) ((dstvertlocnbr + dstvertlocdlt) * sizeof (Gnum)), NULL) == NULL) { /* Vertex labels always present */ errorPrint ("dgraphRedist2: out of memory (2)"); cheklocval = 1; } else if (dstvertloctax -= baseval, dstveloloctax = ((srcgrafptr->veloloctax != NULL) ? dstveloloctax - baseval : NULL), dstvlblloctax -= baseval, memAllocGroup ((void **) (void *) &dstedgeloctax, (size_t) ((dstedlolocsiz + /* TRICK: extra space required only if edge loads */ MAX (dstedgelocdlt, srcgrafptr->degrglbmax)) * sizeof (Gnum)), /* TRICK: degrmax to avoid overlap */ &dsnddattab, (size_t) (dsnddatnbr * sizeof (Gnum)), /* TRICK: send space will be edgeloctab or edloloctab */ &drcvdattab, (size_t) (drcvdatnbr * sizeof (Gnum)), NULL) == NULL) { /* TRICK: Remaining space will be freed */ errorPrint ("dgraphRedist2: out of memory (3)"); cheklocval = 1; } else { dstedgeloctax -= baseval; dstedloloctax = (srcgrafptr->edloloctax != NULL) ? (dstedgeloctax + dstedgelocsiz) : NULL; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphRedist2: communication error (3)"); return (1); } #else /* SCOTCH_DEBUG_DGRAPH2 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (chekglbval != 0) { dgraphFree (dstgrafptr); return (1); } srcvertlocadj = srcgrafptr->procvrttab[srcgrafptr->proclocnum] - baseval; for (srcvertlocnum = baseval; srcvertlocnum < srcvertlocnnd; srcvertlocnum ++) { /* Record data to send */ Gnum procngbnum; int dsnddatidx; Gnum srcedgelocnum; Gnum srcedgelocnnd; Gnum srcdegrval; procngbnum = srcpartloctax[srcvertlocnum]; /* Retrieve destination process number */ dsnddatidx = dsnddsptab[procngbnum]; srcedgelocnum = srcvertloctax[srcvertlocnum]; srcedgelocnnd = srcvendloctax[srcvertlocnum]; srcdegrval = srcedgelocnnd - srcedgelocnum; dsnddattab[dsnddatidx ++] = srcpermgsttax[srcvertlocnum]; /* Record destination vertex global number */ dsnddattab[dsnddatidx ++] = srcdegrval; /* Record number of edges */ dsnddattab[dsnddatidx ++] = (srcvlblloctax != NULL) /* Record source vertex global number or label */ ? srcvlblloctax[srcvertlocnum] : srcvertlocnum + srcvertlocadj; if (srcveloloctax != NULL) dsnddattab[dsnddatidx ++] = srcveloloctax[srcvertlocnum]; /* Record vertex load if needed */ if (srcedloloctax != NULL) { /* If edge loads have to be sent too */ memCpy (dsnddattab + dsnddatidx, srcedloloctax + srcedgelocnum, srcdegrval * sizeof (Gnum)); /* Copy edge loads */ dsnddatidx += srcdegrval; } for ( ; srcedgelocnum < srcedgelocnnd; srcedgelocnum ++) /* Record translated edge array */ dsnddattab[dsnddatidx ++] = srcpermgsttax[srcedgegsttax[srcedgelocnum]]; dsnddsptab[procngbnum] = dsnddatidx; } for (procnum = 0, dsnddatidx = 0; /* Recompute dsnddsptab */ procnum < procglbnbr; procnum ++) { dsnddsptab[procnum] = dsnddatidx; dsnddatidx += dsndcnttab[procnum]; } if (MPI_Alltoallv (dsnddattab, dsndcnttab, dsnddsptab, GNUM_MPI, /* Exchange graph data */ drcvdattab, drcvcnttab, drcvdsptab, GNUM_MPI, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphRedist2: communication error (4)"); return (1); } dstvertlocadj = dstprocvrttab[srcgrafptr->proclocnum] - baseval; for (drcvdatidx = 0; drcvdatidx < drcvdatnbr; ) { Gnum dstvertlocnum; Gnum dstdegrval; dstvertlocnum = drcvdattab[drcvdatidx ++] - dstvertlocadj; /* Get vertex index */ dstdegrval = drcvdattab[drcvdatidx ++]; /* Get number of edges */ dstvertloctax[dstvertlocnum] = dstdegrval; /* Record vertex degree to compute index array */ dstvlblloctax[dstvertlocnum] = drcvdatidx; /* TRICK: record data position in label array */ drcvdatidx += dstdegrval * fledval + (flveval - 2); /* Increase index by proper value */ } dstvelolocsum = (dstveloloctax != NULL) ? 0 : dstvertlocnbr; /* Set local vertex load sum if no vertex loads present */ for (dstvertlocnum = dstedgelocnum = baseval, dstvertlocnnd = dstvertlocnbr + baseval; /* Copy edge information in due place */ dstvertlocnum < dstvertlocnnd; dstvertlocnum ++) { int drcvdatidx; Gnum dstdegrval; drcvdatidx = dstvlblloctax[dstvertlocnum]; dstdegrval = dstvertloctax[dstvertlocnum]; dstvertloctax[dstvertlocnum] = dstedgelocnum; dstvlblloctax[dstvertlocnum] = drcvdattab[drcvdatidx ++]; /* Set vertex label */ if (dstveloloctax != NULL) { dstvelolocsum += dstveloloctax[dstvertlocnum] = drcvdattab[drcvdatidx ++]; /* Set vertex load */ } if (dstedloloctax != NULL) { #ifdef SCOTCH_DEBUG_DGRAPH2 if (abs ((dstedloloctax + dstedgelocnum) - (drcvdattab + drcvdatidx)) < dstdegrval) { /* Memory areas should never overlap */ errorPrint ("dgraphRedist2: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ memCpy (dstedloloctax + dstedgelocnum, drcvdattab + drcvdatidx, dstdegrval * sizeof (Gnum)); drcvdatidx += dstdegrval; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (abs ((dstedgeloctax + dstedgelocnum) - (drcvdattab + drcvdatidx)) < dstdegrval) { /* TRICK: memory areas should never overlap because of degrmax */ errorPrint ("dgraphRedist2: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ memCpy (dstedgeloctax + dstedgelocnum, drcvdattab + drcvdatidx, dstdegrval * sizeof (Gnum)); /* TRICK: will never overlap */ dstedgelocnum += dstdegrval; } dstvertloctax[dstvertlocnum] = dstedgelocnum; /* Set end of compact vertex array */ dstedgeloctax = memRealloc (dstedgeloctax + baseval, dstedgelocsiz * fledval * sizeof (Gnum)); #ifdef SCOTCH_DEBUG_DGRAPH2 if (dstedgeloctax == NULL) { /* Shrinking should never fail */ errorPrint ("dgraphRedist2: out of memory (4)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ dstedgeloctax -= baseval; if (dstedloloctax != NULL) dstedloloctax = dstedgeloctax + dstedgelocsiz; dstgrafptr->procglbnbr = procglbnbr; dstgrafptr->proclocnum = srcgrafptr->proclocnum; memCpy (dstgrafptr->procvrttab, dstprocvrttab, (procglbnbr + 1) * sizeof (Gnum)); /* Set vertex range array (possibly with holes) */ memCpy (dstgrafptr->procdsptab, dstprocdsptab, (procglbnbr + 1) * sizeof (Gnum)); /* Set vertex displacement array */ for (procnum = procglbnbr - 1, procdspval = dstprocdsptab[procglbnbr]; /* Set vertex count array */ procnum >= 0; procnum --) { Gnum procdsptmp; procdsptmp = dstprocdsptab[procnum]; dstgrafptr->proccnttab[procnum] = procdspval - procdsptmp; procdspval = procdsptmp; } if (dgraphBuild3 (dstgrafptr, baseval, dstvertlocnbr, dstvertloctax, dstvertloctax + 1, dstveloloctax, dstvelolocsum, NULL, NULL, dstedgelocnbr, dstedgelocsiz, dstedgeloctax, NULL, dstedloloctax, srcgrafptr->degrglbmax) != 0) { errorPrint ("dgraphRedist2: cannot build redistributed graph"); dgraphFree (dstgrafptr); return (1); } dstgrafptr->vlblloctax = dstvlblloctax; /* Set label array after building so that labels not taken into account at build time */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (dstgrafptr) != 0) { /* Check graph consistency */ errorPrint ("dgraphRedist2: inconsistent graph data"); dgraphFree (dstgrafptr); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_redist.h000066400000000000000000000061471514310134000267150ustar00rootroot00000000000000/* Copyright 2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_redist.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the graph redistribution **/ /** routine. **/ /** **/ /** DATES : # Version 6.0 : from : 10 may 2010 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #ifdef SCOTCH_DGRAPH_REDIST static int dgraphRedist2 (Dgraph * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum * const, const Gnum * const, const Gnum, const Gnum, Dgraph * restrict const); #endif /* SCOTCH_DGRAPH_REDIST */ int dgraphRedist (Dgraph * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum, const Gnum, Dgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_scatter.c000066400000000000000000000435141514310134000270620ustar00rootroot00000000000000/* Copyright 2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_scatter.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Francois CHATENET (P0.0) **/ /** Sebastien FOUCAULT (P0.0) **/ /** **/ /** FUNCTION : This module contains the routine that **/ /** builds a distributed graph by evenly **/ /** distributing the pieces of a central- **/ /** ized graph across processors. **/ /** **/ /** # Version P0.0 : from : 01 apr 1997 **/ /** to : 20 jun 1997 **/ /** # Version P0.1 : from : 14 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version P0.2 : from : 19 may 1999 **/ /** to : 19 may 1999 **/ /** # Version 5.0 : from : 27 apr 2006 **/ /** to : 10 sep 2007 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # The definitions of MPI_Scatter and **/ /** MPI_Scatterv indicate that elements **/ /** in the send array should not be read **/ /** more than once. Great care should be **/ /** taken to enforce this rule, especial- **/ /** ly when the number of vertices in the **/ /** centralized graph is smaller than the **/ /** number of processors. **/ /** **/ /** # When the source graph is not compact, **/ /** compacted arrays are created prior to **/ /** sending parts of them. In a really **/ /** efficient implementation, these **/ /** should be created by pieces and sent **/ /** in a one-to-one way so as to save as **/ /** much memory as possible. This is yet **/ /** to be done. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "dgraph.h" /* Service function which creates compact ** arrays from non-compact ones. */ static void dgraphScatter2 ( const Graph * restrict const cgrfptr, Gnum * restrict verttax, Gnum * restrict edgetax, Gnum * restrict edlotax) { Gnum vertnum; /* Current vertex number in compacted arrays */ Gnum edgenum; /* Current edge number in compacted arrays */ for (vertnum = edgenum = cgrfptr->baseval; vertnum < cgrfptr->vertnnd; vertnum ++) { Gnum edgetmp; Gnum edgetnd; verttax[vertnum] = edgenum; edgetmp = cgrfptr->verttax[vertnum]; edgetnd = cgrfptr->vendtax[vertnum]; for ( ; edgetmp < edgetnd; edgetmp ++, edgenum ++) edgetax[edgenum] = cgrfptr->edgetax[edgetmp]; if (edlotax != NULL) { for (edgetmp = cgrfptr->verttax[vertnum], edgenum = verttax[vertnum]; edgetmp < edgetnd; edgetmp ++, edgenum ++) edlotax[edgenum] = cgrfptr->edlotax[edgetmp]; } } verttax[vertnum] = edgenum; } /* This function evenly distributes the pieces ** of a centralized graph across processors. ** It returns: ** - 0 : if scattering has succeeded. ** - !0 : on error. */ int dgraphScatter ( Dgraph * restrict const grafptr, /* Distributed graph */ const Graph * restrict const cgrfptr) /* Centralized graph to scatter */ { Gnum baseval; /* Base value */ Gnum * restrict verttax; /* Array of vertices when edge array is not compact */ Gnum * restrict edgetax; /* Compact array of edges when edge aray is not compact */ Gnum * restrict edlotax; /* Compact array of edges weights */ Gnum vertlocnum; /* Current local vertex number */ Gnum vertlocnbr; /* Number of local vertices */ Gnum vertlocnnd; Gnum * restrict vertloctax; /* Array of local vertices */ Gnum * restrict veloloctax; /* Array of local vertex weights */ Gnum velolocnbr; Gnum vlbllocnbr; Gnum * restrict vlblloctax; /* Array of local vertex labels */ Gnum edgelocnbr; /* Number of local edges */ Gnum edlolocnbr; Gnum * restrict edgeloctax; /* Array of local edges */ Gnum * restrict edloloctax; /* Array of local edge weights */ int * restrict attrdsptab; /* Displacement array for scatter operations */ int * restrict attrcnttab; /* Count array for scatter operations */ Gnum * restrict attrdattab; /* Temporary array to avoid multiple scatter reads */ Gnum reduloctab[9]; /* Arrays for reductions */ Gnum reduglbtab[9]; Gnum vertlocadj; /* Local vertex array adjust */ int protnum; /* Root process */ if (cgrfptr != NULL) { /* If centralized graph provided */ if (cgrfptr->vendtax != (cgrfptr->verttax + 1)) { /* If edge array is not compact */ Gnum edlonbr; edlonbr = (cgrfptr->edlotax != NULL) ? cgrfptr->edgenbr : 0; if (memAllocGroup ((void **) (void *) &verttax, (size_t) ((cgrfptr->vertnbr + 1) * sizeof (Gnum)), &edgetax, (size_t) (cgrfptr->edgenbr * sizeof (Gnum)), &edlotax, (size_t) (edlonbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphScatter: out of memory (1)"); return (1); } verttax -= cgrfptr->baseval; edgetax -= cgrfptr->baseval; edlotax = (cgrfptr->edlotax != NULL) ? (edlotax - cgrfptr->baseval) : NULL; dgraphScatter2 (cgrfptr, verttax, edgetax, edlotax); } else { verttax = cgrfptr->verttax; edgetax = cgrfptr->edgetax; edlotax = cgrfptr->edlotax; } reduloctab[0] = 1; /* This process is the root */ reduloctab[1] = (Gnum) grafptr->proclocnum; /* Get its number */ reduloctab[2] = cgrfptr->baseval; reduloctab[3] = cgrfptr->vertnbr; reduloctab[4] = cgrfptr->edgenbr; reduloctab[5] = cgrfptr->velosum; reduloctab[6] = (cgrfptr->velotax != NULL) ? 1 : 0; reduloctab[7] = (cgrfptr->vlbltax != NULL) ? 1 : 0; reduloctab[8] = (cgrfptr->edlotax != NULL) ? 1 : 0; } else { reduloctab[0] = /* This process is not the root */ reduloctab[1] = reduloctab[2] = reduloctab[3] = reduloctab[4] = reduloctab[5] = reduloctab[6] = reduloctab[7] = reduloctab[8] = 0; } if (MPI_Allreduce (reduloctab, reduglbtab, 9, GNUM_MPI, MPI_SUM, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (1)"); return (1); } if (reduglbtab[0] != 1) { errorPrint ("dgraphScatter: should have only one root"); return (1); } baseval = reduglbtab[2]; vertlocnbr = DATASIZE (reduglbtab[3], grafptr->procglbnbr, grafptr->proclocnum); velolocnbr = (reduglbtab[6] != 0) ? vertlocnbr : 0; vlbllocnbr = (reduglbtab[7] != 0) ? vertlocnbr : 0; if (memAllocGroup ((void **) (void *) &vertloctax, (size_t) ((vertlocnbr + 1) * sizeof (Gnum)), &veloloctax, (size_t) (velolocnbr * sizeof (Gnum)), &vlblloctax, (size_t) (vlbllocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphScatter: out of memory (2)"); if ((cgrfptr != NULL) && (cgrfptr->verttax != verttax)) memFree (verttax + baseval); /* Free group leader */ return (1); } vertloctax -= baseval; veloloctax = (reduglbtab[6] != 0) ? (veloloctax - baseval) : NULL; vlblloctax = (reduglbtab[7] != 0) ? (vlblloctax - baseval) : NULL; protnum = (int) reduglbtab[1]; if (cgrfptr != NULL) { /* If root process */ Gnum procnum; if (memAllocGroup ((void **) (void *) &attrdattab, (size_t) (grafptr->procglbnbr * sizeof (Gnum)), &attrdsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &attrcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("dgraphScatter: out of memory (3)"); memFree (vertloctax + baseval); if (cgrfptr->verttax != verttax) memFree (verttax + baseval); /* Free group leader */ return (1); } attrdsptab[0] = 0; /* Build arrays for MPI_Scatterv */ attrcnttab[0] = DATASIZE (reduglbtab[3], grafptr->procglbnbr, 0); attrdattab[0] = verttax[attrdsptab[0] + attrcnttab[0] + baseval]; for (procnum = 1; procnum < grafptr->procglbnbr; procnum ++) { attrdsptab[procnum] = attrdsptab[procnum - 1] + attrcnttab[procnum - 1]; attrcnttab[procnum] = DATASIZE (reduglbtab[3], grafptr->procglbnbr, procnum); attrdattab[procnum] = verttax[attrdsptab[procnum] + attrcnttab[procnum] + baseval]; } if (MPI_Scatterv (verttax + baseval, attrcnttab, attrdsptab, GNUM_MPI, /* Perform two scatters since cannot avoid multiple reads with only one scatter */ vertloctax + baseval, vertlocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (2)"); return (1); } if (MPI_Scatter (attrdattab, 1, GNUM_MPI, vertloctax + baseval + vertlocnbr, 1, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (3)"); return (1); } if (reduglbtab[6] != 0) { /* Scatter vertex loads */ if (MPI_Scatterv (cgrfptr->velotax + baseval, attrcnttab, attrdsptab, GNUM_MPI, veloloctax + baseval, vertlocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (4)"); return (1); } } if (reduglbtab[7] != 0) { /* Scatter labels */ if (MPI_Scatterv (cgrfptr->vlbltax + baseval, attrcnttab, attrdsptab, GNUM_MPI, vlblloctax + baseval, vertlocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (5)"); return (1); } } } else { /* Process is not root */ if (MPI_Scatterv (NULL, NULL, NULL, GNUM_MPI, vertloctax + baseval, vertlocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (6)"); return (1); } if (MPI_Scatter (NULL, 1, GNUM_MPI, vertloctax + baseval + vertlocnbr, 1, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (7)"); return (1); } if (reduglbtab[6] != 0) { /* Scatter vertex loads */ if (MPI_Scatterv (NULL, NULL, NULL, GNUM_MPI, veloloctax + baseval, vertlocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (8)"); return (1); } } if (reduglbtab[7] != 0) { /* Scatter labels */ if (MPI_Scatterv (NULL, NULL, NULL, GNUM_MPI, vlblloctax + baseval, vertlocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (9)"); return (1); } } } vertlocadj = vertloctax[baseval] - baseval; /* Compute local indices */ for (vertlocnum = baseval, vertlocnnd = vertlocnbr + baseval; vertlocnum <= vertlocnnd; vertlocnum ++) vertloctax[vertlocnum] -= vertlocadj; edgelocnbr = vertloctax[vertlocnnd] - vertloctax[baseval]; edlolocnbr = (reduglbtab[8] != 0) ? edgelocnbr : 0; if (memAllocGroup ((void **) (void *) &edgeloctax, (size_t) (edgelocnbr * sizeof (Gnum)), &edloloctax, (size_t) (edlolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dgraphScatter: out of memory (4)"); if (cgrfptr != NULL) { memFree (attrdattab); /* Free group leader */ if (cgrfptr->verttax != verttax) memFree (verttax + baseval); /* Free group leader */ } memFree (vertloctax + baseval); return (1); } edgeloctax -= baseval; edloloctax = (reduglbtab[8] != 0) ? edloloctax - baseval : NULL; if (cgrfptr != NULL) { /* If root process */ Gnum procnum; for (procnum = 0; procnum < grafptr->procglbnbr; procnum ++) { /* Build arrays for MPI_Scatterv */ attrcnttab[procnum] = verttax[attrdsptab[procnum] + attrcnttab[procnum]+baseval] - verttax[attrdsptab[procnum] + baseval]; attrdsptab[procnum] = verttax[attrdsptab[procnum] + baseval] - baseval; } if (MPI_Scatterv (edgetax + baseval, attrcnttab, attrdsptab, GNUM_MPI, edgeloctax + baseval, edgelocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (10)"); return (1); } if (reduglbtab[8] != 0) { if (MPI_Scatterv (edlotax + baseval, attrcnttab, attrdsptab, GNUM_MPI, edloloctax + baseval, edgelocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (11)"); return (1); } } memFree (attrdattab); /* Free group leader */ if (cgrfptr->verttax != verttax) memFree (verttax + baseval); } else { /* Process is not root */ if (MPI_Scatterv (NULL, NULL, NULL, GNUM_MPI, edgeloctax + baseval , edgelocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (12)"); return (1); } if (reduglbtab[8] != 0) { if (MPI_Scatterv (NULL, NULL, NULL, GNUM_MPI, edloloctax + baseval , edgelocnbr, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dgraphScatter: communication error (13)"); return (1); } } } if (dgraphBuild (grafptr, baseval, vertlocnbr, vertlocnbr, vertloctax, vertloctax + 1, veloloctax, NULL, NULL, edgelocnbr, edgelocnbr, edgeloctax, NULL, edloloctax) != 0) { memFree (edgeloctax + baseval); memFree (vertloctax + baseval); return (1); } grafptr->flagval |= DGRAPHFREETABS | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; /* Give ownership of arrays to graph */ grafptr->vlblloctax = vlblloctax; /* Add labels afterwards, since relabeling already done */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dgraph_view.c000066400000000000000000000165661514310134000263760ustar00rootroot00000000000000/* Copyright 2007,2010,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgraph_view.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed graph general **/ /** purpose routines. **/ /** **/ /** DATES : # Version P0.0 : from : 01 apr 1997 **/ /** to : 01 apr 1997 **/ /** # Version P0.1 : from : 12 apr 1998 **/ /** to : 20 jun 1998 **/ /** # Version 5.0 : from : 16 feb 2005 **/ /** to : 15 aug 2006 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 12 aug 2010 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" /*************************************/ /* */ /* These routines handle distributed */ /* source graphs. */ /* */ /*************************************/ /* This routine displays the contents ** of the given graph structure. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dgraphView ( const Dgraph * restrict const grafptr, FILE * const stream) { MPI_Comm proccomm; /* Graph communicator */ int procglbnbr; /* Number of processes sharing graph data */ int proclocnum; /* Number of this process */ int procngbnbr; int procngbnum; Gnum vertlocnum; Gnum edgelocnum; Gnum * edgelocptr; proccomm = grafptr->proccomm; /* Simplify */ MPI_Comm_size (proccomm, &procglbnbr); /* Rely on communicator data */ MPI_Comm_rank (proccomm, &proclocnum); fflush (stream); /* Flush previous data */ for (procngbnbr = 0; procngbnbr < procglbnbr; procngbnbr ++) { MPI_Barrier (proccomm); if (procngbnbr == proclocnum) { fprintf (stream, "Process %d:\n", proclocnum); fprintf (stream, " vertglbnbr: " GNUMSTRING "\n vertgstnbr: " GNUMSTRING "\n vertgstnnd: " GNUMSTRING "\n vertlocnbr: " GNUMSTRING "\n vertlocnnd: " GNUMSTRING "\n", (Gnum) grafptr->vertglbnbr, (Gnum) grafptr->vertgstnbr, (Gnum) grafptr->vertgstnnd, (Gnum) grafptr->vertlocnbr, (Gnum) grafptr->vertlocnnd); fprintf (stream, " vertloctax:"); if ((grafptr->flagval & DGRAPHHASVENDLOC) == 0) { /* If graph is compact */ for (vertlocnum = grafptr->baseval; vertlocnum <= grafptr->vertlocnnd; vertlocnum ++) fprintf (stream, " " GNUMSTRING, (Gnum) grafptr->vertloctax[vertlocnum]); fprintf (stream, " x\n vendloctax: = vertloctax + 1"); } else { for (vertlocnum = grafptr->baseval; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) fprintf (stream, " " GNUMSTRING, (Gnum) grafptr->vertloctax[vertlocnum]); fprintf (stream, " vendloctax: x"); for (vertlocnum = grafptr->baseval; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) fprintf (stream, " " GNUMSTRING, (Gnum) grafptr->vendloctax[vertlocnum]); } fprintf (stream, "\n edgeglbnbr: " GNUMSTRING "\n edgelocnbr: " GNUMSTRING "\n", (Gnum) grafptr->edgeglbnbr, (Gnum) grafptr->edgelocnbr); fprintf (stream, " edgeloctax:"); for (edgelocnum = grafptr->baseval, edgelocptr = grafptr->edgeloctax; edgelocnum < grafptr->edgelocnbr + grafptr->baseval; edgelocnum ++, edgelocptr ++) fprintf (stream, " " GNUMSTRING, (Gnum) *edgelocptr); if ((grafptr->flagval & DGRAPHHASEDGEGST) != 0) { fprintf (stream, "\n edgegsttax:"); for (edgelocnum = grafptr->baseval, edgelocptr = grafptr->edgegsttax; edgelocnum < grafptr->edgelocnbr + grafptr->baseval; edgelocnum ++, edgelocptr ++) fprintf (stream, " " GNUMSTRING, (Gnum) *edgelocptr); } fprintf (stream, "\n procdsptab:"); for (procngbnum = 0; procngbnum <= procglbnbr ; procngbnum ++) fprintf (stream, " " GNUMSTRING, (Gnum) grafptr->procdsptab[procngbnum]); fprintf (stream, "\n procngbnbr: %d", grafptr->procngbnbr); fprintf (stream, "\n procngbtab:"); for (procngbnum = 0; procngbnum < grafptr->procngbnbr; procngbnum ++) fprintf (stream, " %d", grafptr->procngbtab[procngbnum]); fprintf (stream, "\n procrcvtab:"); for (procngbnum = 0; procngbnum < grafptr->procglbnbr; procngbnum ++) fprintf (stream, " %d", grafptr->procrcvtab[procngbnum]); fprintf (stream, "\n procsndnbr: %d", grafptr->procsndnbr); fprintf (stream, "\n procsndtab:"); for (procngbnum = 0; procngbnum < grafptr->procglbnbr; procngbnum ++) fprintf (stream, " %d", grafptr->procsndtab[procngbnum]); fprintf (stream, "\n degrglbmax: " GNUMSTRING, (Gnum) grafptr->degrglbmax); fprintf (stream, "\n"); fflush (stream); /* Flush data */ } } MPI_Barrier (proccomm); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmapping.c000066400000000000000000000257701514310134000256730ustar00rootroot00000000000000/* Copyright 2008,2013,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmapping.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : This module handles (partial) mappings. **/ /** **/ /** DATES : # Version 5.1 : from : 31 mar 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 03 sep 2013 **/ /** to : 03 sep 2013 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "arch.h" #include "dmapping.h" /***********************************/ /* */ /* These routines handle mappings. */ /* */ /***********************************/ /* This routine builds a mapping. ** It returns: ** - 0 : if mapping successfully initialized. ** - !0 : on error. */ int dmapInit ( Dmapping * restrict const dmapptr, const Arch * restrict const archptr) { dmapptr->fragptr = NULL; dmapptr->fragnbr = dmapptr->vertlocmax = dmapptr->vertlocnbr = 0; dmapptr->archdat = *archptr; #ifdef SCOTCH_PTHREAD pthread_mutex_init (&dmapptr->mutelocdat, NULL); /* Initialize local mutex */ #endif /* SCOTCH_PTHREAD */ return (0); } /* This routine frees the contents of the given ** mapping. The architecture data is never freed ** as it is usually a copy of an existing Arch ** structure. ** It returns: ** - VOID : in all cases. */ void dmapExit ( Dmapping * const dmapptr) { DmappingFrag * fragptr; DmappingFrag * fragtmp; for (fragptr = dmapptr->fragptr; fragptr != NULL; fragptr = fragtmp) { memFree (fragptr->vnumtab); memFree (fragptr->parttab); memFree (fragptr->domntab); fragtmp = fragptr->nextptr; memFree (fragptr); } #ifdef SCOTCH_PTHREAD pthread_mutex_destroy (&dmapptr->mutelocdat); /* Destroy local mutex */ #endif /* SCOTCH_PTHREAD */ #ifdef SCOTCH_DEBUG_DMAP2 memSet (dmapptr, ~0, sizeof (Dmapping)); #endif /* SCOTCH_DEBUG_DMAP2 */ } /* This routine adds a fragment to the given ** distributed mapping. ** It returns: ** - void : in all cases. */ void dmapAdd ( Dmapping * restrict const dmapptr, DmappingFrag * restrict const fragptr) { #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&dmapptr->mutelocdat); /* Lock local mutex */ #endif /* SCOTCH_PTHREAD */ if (dmapptr->vertlocmax < fragptr->vertnbr) dmapptr->vertlocmax = fragptr->vertnbr; dmapptr->vertlocnbr += fragptr->vertnbr; dmapptr->fragnbr ++; fragptr->nextptr = dmapptr->fragptr; /* Link fragment to mapping */ dmapptr->fragptr = fragptr; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&dmapptr->mutelocdat); /* Unlock local mutex */ #endif /* SCOTCH_PTHREAD */ } /* This routine propagates back distributed mapping ** information to a part array associated with a ** distributed graph structure. ** It returns: ** - 0 : if partition data successfully obtained. ** - !0 : on error. */ int dmapTerm ( const Dmapping * restrict const dmapptr, const Dgraph * restrict const grafptr, Gnum * restrict const termloctab) { Gnum * restrict termloctax; int * restrict sendcnttab; int * restrict senddsptab; int * restrict recvcnttab; int * restrict recvdsptab; DmappingTermSort * restrict sortsndtab; DmappingTermSort * restrict sortrcvtab; Gnum vertlocnum; int vertrcvnbr; int vertsndnbr; int procnum; DmappingFrag * restrict fragptr; Gnum reduloctab[2]; Gnum reduglbtab[2]; reduloctab[0] = dmapptr->vertlocnbr; reduloctab[1] = 0; if (memAllocGroup ((void **) (void *) &senddsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &sendcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), &recvdsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &recvcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), &sortsndtab, (size_t) ((dmapptr->vertlocnbr + 1) * sizeof (DmappingTermSort)), /* "+1" for end marker */ &sortrcvtab, (size_t) (grafptr->vertlocnbr * sizeof (DmappingTermSort)), NULL) == NULL) { errorPrint ("dmapTerm: out of memory"); reduloctab[1] = 1; } if (MPI_Allreduce (reduloctab, reduglbtab, 2, GNUM_MPI, MPI_SUM, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapTerm: communication error (1)"); reduglbtab[1] = 1; } if (reduglbtab[1] != 0) { if (senddsptab != NULL) memFree (senddsptab); /* Free group leader */ return (1); } if (reduglbtab[0] == 0) { /* If mapping structure is empty, create an empty mapping */ memSet (termloctab, 0, grafptr->vertlocnbr * sizeof (Gnum)); memFree (senddsptab); /* Free group leader */ return (0); } if (reduglbtab[0] != grafptr->vertglbnbr) { errorPrint ("dmapTerm: invalid mapping (1)"); memFree (senddsptab); /* Free group leader */ return (1); } for (fragptr = dmapptr->fragptr, vertlocnum = 0; fragptr != NULL; fragptr = fragptr->nextptr) { Gnum fraglocnum; for (fraglocnum = 0; fraglocnum < fragptr->vertnbr; fraglocnum ++, vertlocnum ++) { #ifdef SCOTCH_DEBUG_DMAP2 if ((vertlocnum >= dmapptr->vertlocnbr) || (fragptr->parttab[fraglocnum] < 0) || (fragptr->parttab[fraglocnum] >= fragptr->domnnbr)) { errorPrint ("dmapTerm: invalid mapping (2)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ sortsndtab[vertlocnum].vertnum = fragptr->vnumtab[fraglocnum]; sortsndtab[vertlocnum].termnum = (Gnum) archDomNum (&dmapptr->archdat, &fragptr->domntab[fragptr->parttab[fraglocnum]]); } } #ifdef SCOTCH_DEBUG_DMAP2 if (vertlocnum != dmapptr->vertlocnbr) { errorPrint ("dmapTerm: invalid mapping (3)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ sortsndtab[vertlocnum].vertnum = /* Set end marker */ sortsndtab[vertlocnum].termnum = GNUMMAX; intSort2asc1 (sortsndtab, dmapptr->vertlocnbr); /* Sort mapping array by original vertex numbers, without marker */ for (vertlocnum = 0, procnum = 0; procnum < grafptr->procglbnbr; ) { Gnum vertsndnbr; Gnum procvrtval; vertsndnbr = 0; procvrtval = grafptr->procvrttab[procnum + 1]; while (sortsndtab[vertlocnum].vertnum < procvrtval) { vertsndnbr ++; vertlocnum ++; #ifdef SCOTCH_DEBUG_DMAP2 if (vertlocnum > dmapptr->vertlocnbr) { /* If beyond regular indices plus end marker */ errorPrint ("dmapTerm: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ } sendcnttab[procnum ++] = (int) (vertsndnbr * 2); /* Communication array for MPI, so (int), and "*2" because a Sort is 2 Gnums */ } #ifdef SCOTCH_DEBUG_DMAP2 if (vertlocnum != dmapptr->vertlocnbr) { errorPrint ("dmapTerm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ if (MPI_Alltoall (sendcnttab, 1, MPI_INT, recvcnttab, 1, MPI_INT, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapTerm: communication error (2)"); return (1); } for (procnum = 0, vertrcvnbr = vertsndnbr = 0; procnum < grafptr->procglbnbr; procnum ++) { /* Accumulate send and receive indices */ recvdsptab[procnum] = vertrcvnbr; vertrcvnbr += recvcnttab[procnum]; /* Accumulate "*2" values as counts */ senddsptab[procnum] = vertsndnbr; vertsndnbr += sendcnttab[procnum]; } if (MPI_Alltoallv (sortsndtab, sendcnttab, senddsptab, GNUM_MPI, sortrcvtab, recvcnttab, recvdsptab, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapTerm: communication error (3)"); return (1); } memSet (termloctab, ~0, grafptr->vertlocnbr * sizeof (Gnum)); termloctax = termloctab - grafptr->procvrttab[grafptr->proclocnum]; /* Base local array through global indices */ for (vertlocnum = 0; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) { #ifdef SCOTCH_DEBUG_DMAP2 if (termloctax[sortrcvtab[vertlocnum].vertnum] != ~0) { errorPrint ("dmapTerm: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ termloctax[sortrcvtab[vertlocnum].vertnum] = sortrcvtab[vertlocnum].termnum; } #ifdef SCOTCH_DEBUG_DMAP2 for (vertlocnum = 0; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) { if (termloctab[vertlocnum] == ~0) { errorPrint ("dmapTerm: internal error (4)"); return (1); } } #endif /* SCOTCH_DEBUG_DMAP2 */ memFree (senddsptab); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmapping.h000066400000000000000000000123101514310134000256620ustar00rootroot00000000000000/* Copyright 2008,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmapping.h **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the parallel mapping handling routines. **/ /** **/ /** DATES : # Version 5.1 : from : 31 mar 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_DMAPPING_H /* ** The type definitions. */ /*+ This structure defines a mapping fragment. +*/ typedef struct DmappingFrag_ { struct DmappingFrag_ * nextptr; /*+ Pointer to next fragment +*/ Gnum vertnbr; /*+ Number of local vertices in mapping +*/ Gnum * vnumtab; /*+ Vertex index array +*/ Anum * parttab; /*+ Mapping array [vertlocnbr] +*/ Anum domnnbr; /*+ Local number of domains +*/ ArchDom * domntab; /*+ Array of domains [domnnbr] +*/ } DmappingFrag; /*+ This structure defines an (eventually partial) mapping of a source graph to a target architecture. +*/ typedef struct Dmapping_ { struct DmappingFrag_ * fragptr; /*+ Pointer to first mapping fragment +*/ Gnum fragnbr; /*+ Number of local fragments +*/ Gnum vertlocmax; /*+ Size of biggest local fragment +*/ Gnum vertlocnbr; /*+ Number of local vertices in mapping +*/ Arch archdat; /*+ Architecture data +*/ #ifdef SCOTCH_PTHREAD pthread_mutex_t mutelocdat; /*+ Local mutex for updates +*/ #endif /* SCOTCH_PTHREAD */ } Dmapping; /*+ The sort structure, used to sort mapped vertices. Field vertnum is first and field termnum is a Gnum and not an Anum because of intSort2asc1. +*/ typedef struct DmappingTermSort_ { Gnum vertnum; /*+ Vertex number: FIRST +*/ Gnum termnum; /*+ Direct permutation index +*/ } DmappingTermSort; /* ** The function prototypes. */ int dmapInit (Dmapping * restrict const, const Arch * restrict const); void dmapExit (Dmapping * const); void dmapAdd (Dmapping * restrict const, DmappingFrag * restrict const); int dmapSave (const Dmapping * restrict const, const Dgraph * restrict const, FILE * restrict const); int dmapTerm (const Dmapping * restrict const, const Dgraph * restrict const, Gnum * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmapping_io.c000066400000000000000000000302121514310134000263450ustar00rootroot00000000000000/* Copyright 2008,2010,2014,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmapping_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** mappings. **/ /** **/ /** DATES : # Version 5.1 : from : 13 jun 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 29 oct 2014 **/ /** to : 29 oct 2014 **/ /** # Version 6.1 : from : 05 apr 2021 **/ /** to : 05 apr 2021 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 09 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "arch.h" #include "dmapping.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ DGRAPHALLREDUCEMAXSUMOP (1, 5) /* This routine saves a distributed mapping. ** The distributed graph structure is provided ** to access the distribution of vertex labels, ** whenever present. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dmapSave ( const Dmapping * restrict const dmapptr, const Dgraph * restrict const grafptr, FILE * restrict const stream) { const DmappingFrag * restrict fragptr; Gnum fragglbnbr; Gnum * termloctab; Gnum * termrcvtab; Gnum vertrcvmax; Gnum vertglbnbr; Gnum * restrict vlbltax; Gnum reduloctab[6]; Gnum reduglbtab[6]; int protnum; reduloctab[0] = dmapptr->vertlocmax; reduloctab[1] = dmapptr->vertlocnbr; reduloctab[2] = dmapptr->fragnbr; if (stream != NULL) { /* If file provided */ reduloctab[3] = 1; /* This process is the root */ reduloctab[4] = grafptr->proclocnum; /* Get its rank */ } else { reduloctab[3] = /* This process is not the root */ reduloctab[4] = 0; } reduloctab[5] = (grafptr->vlblloctax != NULL) ? 1 : 0; /* See if vertex labels provided */ if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 1, 5, grafptr->proccomm) != 0) { errorPrint ("dmapSave: communication error (1)"); return (1); } if (reduglbtab[3] != 1) { errorPrint ("dmapSave: should have only one root"); return (1); } if ((reduglbtab[5] != 0) && (reduglbtab[5] != grafptr->procglbnbr)) { errorPrint ("dmapSave: inconsistent parameters"); return (1); } if ((reduglbtab[1] < 0) && (reduglbtab[1] > grafptr->procglbnbr)) { errorPrint ("dmapSave: invalid mapping (1)"); return (1); } vertrcvmax = reduglbtab[0]; /* Size of largest fragment to receive */ vertglbnbr = reduglbtab[1]; fragglbnbr = reduglbtab[2]; protnum = (int) reduglbtab[4]; /* Get rank of root process */ reduloctab[0] = 0; if (protnum == grafptr->proclocnum) { Gnum vlblsiz; vlblsiz = (grafptr->vlblloctax != NULL) ? grafptr->vertglbnbr : 0; if ((termloctab = memAllocGroup ((void **) (void *) /* termloctab not used on root processor, but used only for freeing the block */ &termrcvtab, (size_t) (vertrcvmax * 2 * sizeof (Gnum)), /* TRICK: "*2" as vnumrcvtab is sent after termrcvtab */ &vlbltax, (size_t) (vlblsiz * sizeof (Gnum)), NULL)) == NULL) { errorPrint ("dmapSave: out of memory (1)"); reduloctab[0] = 1; } else if (fprintf (stream, GNUMSTRING "\n", (Gnum) vertglbnbr) == EOF) { errorPrint ("dmapSave: bad output (1)"); reduloctab[0] = 1; } } else { /* Process is not the root */ vlbltax = NULL; /* Prevent Valgrind from yelling */ if ((termloctab = memAlloc (dmapptr->vertlocmax * sizeof (Gnum))) == NULL) { errorPrint ("dmapSave: out of memory (2)"); reduloctab[0] = 1; } } #ifdef SCOTCH_DEBUG_DMAP1 /* This communication cannot be covered by a useful one */ if (MPI_Allreduce (reduloctab, reduglbtab, 1, GNUM_MPI, MPI_SUM, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapSave: communication error (2)"); reduglbtab[0] = 1; } #else /* SCOTCH_DEBUG_DMAP1 */ reduglbtab[0] = reduloctab[0]; #endif /* SCOTCH_DEBUG_DMAP1 */ if (reduglbtab[0] != 0) { if (termloctab != NULL) memFree (termloctab); /* Free group leader */ return (1); } if (grafptr->vlblloctax != NULL) { vlbltax -= grafptr->baseval; /* Base label array since displacement array is based */ if (commGatherv (grafptr->vlblloctax + grafptr->baseval, grafptr->vertlocnbr, GNUM_MPI, vlbltax, grafptr->proccnttab, grafptr->procdsptab, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapSave: communication error (3)"); return (1); } } if (protnum == grafptr->proclocnum) { Gnum vertrcvnbr; for (fragptr = dmapptr->fragptr; fragptr != NULL; fragptr = fragptr->nextptr) { /* Output local fragments */ Gnum fraglocnum; for (fraglocnum = 0; fraglocnum < fragptr->vertnbr; fraglocnum ++) { Gnum vnumnum; Gnum termnum; vnumnum = fragptr->vnumtab[fraglocnum]; #ifdef SCOTCH_DEBUG_DMAP2 if ((vnumnum < 0) || (vnumnum >= (grafptr->vertglbnbr + grafptr->baseval))) { errorPrint ("dmapSave: invalid mapping (2)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ termnum = archDomNum (&dmapptr->archdat, &fragptr->domntab[fragptr->parttab[fraglocnum]]); if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) ((grafptr->vlblloctax != NULL) ? vlbltax[vnumnum] : vnumnum), (Gnum) termnum) == EOF) { errorPrint ("dmapSave: bad output (2)"); reduloctab[0] = 1; break; } } } for (fragglbnbr -= dmapptr->fragnbr; fragglbnbr > 0; fragglbnbr --) { /* For all non-local fragments */ Gnum * termrcvnnd; Gnum * restrict termrcvptr; Gnum * restrict vnumrcvptr; MPI_Status statdat; int recvnbr; if (MPI_Recv (termrcvtab, (int) (vertrcvmax * 2), GNUM_MPI, MPI_ANY_SOURCE, MPI_ANY_TAG, grafptr->proccomm, &statdat) != MPI_SUCCESS) { errorPrint ("dmapSave: communication error (4)"); /* TRICK: "*2" as vnumrcvtab is sent after termrcvtab */ return (1); } if (reduloctab[0] != 0) continue; MPI_Get_count (&statdat, GNUM_MPI, &recvnbr); vertrcvnbr = (Gnum) (recvnbr / 2); /* We received a composite message made of both vectors */ vnumrcvptr = termrcvtab + vertrcvnbr; /* Vertex index array is just after terminal number array */ for (termrcvptr = termrcvtab, termrcvnnd = termrcvtab + vertrcvnbr; termrcvptr < termrcvnnd; termrcvptr ++, vnumrcvptr ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) ((grafptr->vlblloctax != NULL) ? vlbltax[*vnumrcvptr] : *vnumrcvptr), (Gnum) *termrcvptr) == EOF) { errorPrint ("dmapSave: bad output (3)"); reduloctab[0] = 1; break; } } } } else { int typecnttab[2]; MPI_Aint typedsptab[2]; MPI_Datatype typedat; for (fragptr = dmapptr->fragptr; fragptr != NULL; fragptr = fragptr->nextptr) { /* Output local fragments */ Gnum fraglocnum; for (fraglocnum = 0; fraglocnum < fragptr->vertnbr; fraglocnum ++) { #ifdef SCOTCH_DEBUG_DMAP2 Gnum vnumnum; vnumnum = fragptr->vnumtab[fraglocnum]; if ((vnumnum < 0) || (vnumnum >= (grafptr->vertglbnbr + grafptr->baseval))) { errorPrint ("dmapSave: invalid mapping (3)"); return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ termloctab[fraglocnum] = archDomNum (&dmapptr->archdat, &fragptr->domntab[fragptr->parttab[fraglocnum]]); } #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Get_address (termloctab, &typedsptab[0]); MPI_Get_address (fragptr->vnumtab, &typedsptab[1]); #else /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Address (termloctab, &typedsptab[0]); MPI_Address (fragptr->vnumtab, &typedsptab[1]); #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ typedsptab[1] -= typedsptab[0]; typedsptab[0] = 0; typecnttab[0] = typecnttab[1] = (int) fragptr->vertnbr; #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Type_create_hindexed (2, typecnttab, typedsptab, GNUM_MPI, &typedat); #else /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Type_hindexed (2, typecnttab, typedsptab, GNUM_MPI, &typedat); #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Type_commit (&typedat); if (MPI_Send (termloctab, 1, typedat, protnum, 0, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapSave: communication error (5)"); return (1); } MPI_Type_free (&typedat); } } memFree (termloctab); /* Free group leader */ #ifdef SCOTCH_DEBUG_DMAP1 /* This communication cannot be covered by a useful one */ if (MPI_Allreduce (reduloctab, reduglbtab, 1, GNUM_MPI, MPI_SUM, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmapSave: communication error (6)"); reduglbtab[0] = 1; } #else /* SCOTCH_DEBUG_DMAP1 */ reduglbtab[0] = reduloctab[0]; #endif /* SCOTCH_DEBUG_DMAP1 */ return ((int) reduglbtab[0]); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh.c000066400000000000000000000142111514310134000251600ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** mesh data structure handling routines. **/ /** **/ /** DATES : # Version 7.0 : from : 09 aug 2025 **/ /** to : 09 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dmesh.h" /*************************************/ /* */ /* These routines handle distributed */ /* source meshes. */ /* */ /*************************************/ /* This routine initializes a distributed mesh ** structure. In order to avoid collective ** communication whenever possible, the allocation ** of send and receive index arrays is not performed ** in the routine itself, but rather delegated to ** subsequent routines such as dmeshBuild. ** However, these arrays will not be freed by ** dmeshFree, but by dmeshExit. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dmeshInit ( Dmesh * restrict const meshptr, /* Distributed mesh structure */ MPI_Comm proccomm) /* Communicator to be used for all communications */ { memSet (meshptr, 0, sizeof (Dmesh)); /* Clear public and private mesh fields */ meshptr->proccomm = proccomm; /* Set private fields */ MPI_Comm_size (proccomm, &meshptr->procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &meshptr->proclocnum); return (0); } /* This routine frees the public and private data ** of the given distributed mesh, but not its ** communicator. ** Private data could have been kept and freed only ** in dmeshExit(). Yet, freeing it along with the ** mesh public data is a way to avoid memory ** fragmentation. ** It is not a collective routine, as no communication ** is needed to perform the freeing of memory structures. ** It returns: ** - VOID : in all cases. */ static void dmeshFree2 ( Dmesh * restrict const meshptr) { if ((meshptr->flagval & DMESHFREEPRIV) != 0) { if (meshptr->prelvrttab != NULL) memFree (meshptr->prelvrttab); } if ((meshptr->flagval & DMESHFREETABS) != 0) { /* If local arrays must be freed */ if (meshptr->velmloctab != NULL) memFree (meshptr->velmloctab); if (meshptr->eelmloctab != NULL) memFree (meshptr->eelmloctab); } } void dmeshFree ( Dmesh * restrict const meshptr) { DmeshFlag flagval; MPI_Comm proccomm; /* Data for temporarily saving private data */ int procglbnbr; int proclocnum; dmeshFree2 (meshptr); /* Free all user fields */ flagval = meshptr->flagval & DMESHFREECOMM; proccomm = meshptr->proccomm; /* Save private fields only */ procglbnbr = meshptr->procglbnbr; proclocnum = meshptr->proclocnum; memSet (meshptr, 0, sizeof (Dmesh)); /* Reset mesh structure */ meshptr->flagval = flagval; /* Restore private fields */ meshptr->proccomm = proccomm; meshptr->procglbnbr = procglbnbr; meshptr->proclocnum = proclocnum; return; } /* This routine destroys a distributed mesh structure. ** It is not a collective routine, as no communication ** is needed to perform the freeing of memory structures. ** Private data are always destroyed. If this is not ** wanted, use dmeshFree() instead. ** It returns: ** - VOID : in all cases. */ void dmeshExit ( Dmesh * restrict const meshptr) { DmeshFlag flagval; flagval = meshptr->flagval; if ((flagval & DMESHFREECOMM) != 0) /* If communicator has to be freed */ MPI_Comm_free (&meshptr->proccomm); /* Free it */ dmeshFree2 (meshptr); #ifdef SCOTCH_DEBUG_DMESH1 memSet (meshptr, ~0, sizeof (Dmesh)); #endif /* SCOTCH_DEBUG_DMESH1 */ meshptr->flagval = flagval & ~DMESHBITSUSED; /* A subsequent dmeshExit() will have no effect */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh.h000066400000000000000000000152211514310134000251670ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed source mesh **/ /** structure. **/ /** **/ /** DATES : # Version 7.0 : from : 09 aug 2025 **/ /** to : 11 aug 2925 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_DMESH_H /* Mesh flags. */ #define DMESHNONE 0x0000 /* No options set */ #define DMESHFREEPRIV 0x0001 /* Set if private arrays freed on exit */ #define DMESHFREECOMM 0x0002 /* MPI communicator has to be freed */ #define DMESHFREETABS 0x0004 /* Set if local arrays freed on exit */ #define DMESHBITSUSED 0x0007 /* Significant bits for plain distributed mesh routines */ #define DMESHBITSNOTUSED 0x0008 /* Value above which bits not used by plain distributed mesh routines */ /* ** The type and structure definitions. */ /* The mesh basic types, which must be signed. */ #ifndef GNUMMAX /* If mesh.h not included */ typedef INT Gnum; /* Vertex or edge number */ #define GNUMMAX (INTVALMAX) /* Maximum Gnum value */ #define GNUMMIN (-GNUMMAX - 1) /* Minimum signed Gnum value */ #define GNUMSTRING INTSTRING /* String to printf a Gnum */ #endif /* GNUMMAX */ #ifndef GNUM_MPI #define GNUM_MPI COMM_INT /* MPI type for Gnum is MPI type for INT */ #endif /* GNUM_MPI */ #ifndef GRAPHPART_MPI #define GRAPHPART_MPI COMM_BYTE /* Raw byte type for graph parts */ #endif /* GRAPHPART_MPI */ /*+ The mesh flag type. +*/ typedef unsigned int DmeshFlag; /*+ Mesh property flags +*/ /*+ The vertex part type, in compressed form. From mesh.h +*/ #ifndef SCOTCH_MESH_H typedef byte MeshPart; #endif /* SCOTCH_MESH_H */ /* The distributed mesh structure. */ typedef struct Dmesh_ { DmeshFlag flagval; /*+ Mesh properties +*/ Gnum baseval; /*+ Base index for edge/vertex arrays +*/ Gnum velmglbnbr; /*+ Global number of element vertices +*/ Gnum velmglbmax; /*+ Maximum number of local element vertices over all processes +*/ Gnum velmlocnbr; /*+ Local number of element vertices +*/ Gnum * velmloctab; /*+ Local element vertex beginning index array +*/ Gnum eelmglbnbr; /*+ Global number of element-to-node edges +*/ Gnum eelmglbmax; /*+ Maximum number of local element edges over all processes +*/ Gnum eelmlocnbr; /*+ Local number of element vertices +*/ Gnum * eelmloctab; /*+ Edge array holding global neighbor numbers +*/ Gnum vnodglbnbr; /*+ Global number of node vertices +*/ MPI_Comm proccomm; /*+ Mesh communicator +*/ int procglbnbr; /*+ Number of processes sharing mesh data +*/ int proclocnum; /*+ Number of this process +*/ Gnum * prelvrttab; /*+ Per-process element vertex distribution array +*/ } Dmesh; /* ** The function prototypes. */ int dmeshInit (Dmesh * const, MPI_Comm); void dmeshExit (Dmesh * const); void dmeshFree (Dmesh * const); #ifdef SCOTCH_GRAPH_H int dmeshLoad (Dmesh * const, FILE * const, const Gnum, const GraphLoadFlag); #endif /* SCOTCH_GRAPH_H */ int dmeshBuildAdm (Dmesh * const, const Gnum, const Gnum, Gnum * const, const Gnum, Gnum * const, const Gnum); #ifdef SCOTCH_DGRAPH_H int dmeshDgraphDual (const Dmesh * restrict const, Dgraph * restrict const, const Gnum); #endif /* SCOTCH_DGRAPH_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh_build_adm.c000066400000000000000000000143771514310134000271750ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh_build_adm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** mesh data structure handling routines. **/ /** **/ /** DATES : # Version 7.0 : from : 15 aug 2025 **/ /** to : 15 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dmesh.h" #include "dgraph_allreduce.h" /*************************************/ /* */ /* These routines handle distributed */ /* source meshes. */ /* */ /*************************************/ /* This routine builds an auxiliary distributed ** mesh from the local arrays that are passed to ** it. ** As for all routines that build meshes, the ** private fields of the Dmesh structure have to ** be initialized if they are not already. ** It returns: ** - 0 : on success. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (7, 2) int dmeshBuildAdm ( Dmesh * restrict const meshptr, /* Distributed mesh structure */ const Gnum baseval, /* Base for indexing */ const Gnum velmlocnbr, /* Number of local elements */ Gnum * const velmloctab, /* Local element vertex begin array */ const Gnum eelmlocnbr, /* Number of local element-to-node edges */ Gnum * const eelmloctab, /* Local edge array */ const Gnum vnodglbnbr) /* Global number of node vertices */ { Gnum preldspadj; /* Adjustment value for element-to-process array */ Gnum reduloctab[9]; Gnum reduglbtab[9]; int procnum; reduloctab[0] = baseval; /* Exchange baseval to check it is the same for all */ reduloctab[1] = - baseval; reduloctab[2] = vnodglbnbr; /* Exchange baseval to check it is the same for all */ reduloctab[3] = - vnodglbnbr; reduloctab[4] = velmlocnbr; reduloctab[5] = eelmlocnbr; reduloctab[6] = 0; /* Assume everything will be fine */ reduloctab[7] = velmlocnbr; reduloctab[8] = eelmlocnbr; if (meshptr->prelvrttab == NULL) { if ((meshptr->prelvrttab = memAlloc ((meshptr->procglbnbr + 1) * sizeof (Gnum))) == NULL) { errorPrint ("dmeshBuildAdm: out of memory"); reduloctab[6] = 1; } else meshptr->flagval |= DMESHFREEPRIV; } if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 7, 2, meshptr->proccomm) != 0) { errorPrint ("dmeshBuildAdm: communication error (1)"); return (1); } if (reduglbtab[6] != 0) return (1); if ((reduglbtab[1] != - reduglbtab[0]) || (reduglbtab[3] != - reduglbtab[2])) { errorPrint ("dmeshBuildAdm: inconsistent parameters (1)"); return (1); } if (MPI_Allgather (&reduloctab[4], 1, GNUM_MPI, meshptr->prelvrttab, 1, GNUM_MPI, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshBuildAdm: communication error (2)"); return (1); } preldspadj = baseval; /* Use the new base to build displacement array */ for (procnum = 0; procnum < meshptr->procglbnbr; procnum ++) { /* Build element-to-process array */ Gnum preldspval; preldspval = meshptr->prelvrttab[procnum]; meshptr->prelvrttab[procnum] = preldspadj; preldspadj += preldspval; } meshptr->prelvrttab[procnum] = preldspadj; /* Set end of displacement array */ if (preldspadj != (reduglbtab[7] + baseval)) { errorPrint ("dmeshBuildAdm: inconsistent parameters (2)"); return (1); } meshptr->baseval = baseval; meshptr->velmglbnbr = reduglbtab[7]; meshptr->velmglbmax = reduglbtab[4]; meshptr->velmlocnbr = velmlocnbr; meshptr->velmloctab = velmloctab; meshptr->eelmglbnbr = reduglbtab[8]; meshptr->eelmglbmax = reduglbtab[5]; meshptr->eelmlocnbr = eelmlocnbr; meshptr->eelmloctab = eelmloctab; meshptr->vnodglbnbr = vnodglbnbr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh_dgraph.c000066400000000000000000001024401514310134000265070ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh_dgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Marc FUENTES **/ /** **/ /** FUNCTION : This module contains the source **/ /** distributed mesh to distributed graph **/ /** conversion function. **/ /** **/ /** DATES : # Version 7.0 : from : 20 jan 2023 **/ /** to : 27 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dmesh.h" #include "dmesh_dgraph.h" /* This routine increases the size of the edge ** hash table array. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int dmeshDgraphDualHashEdgeResize ( DmeshDgraphDualHashEdge * restrict * hashtabptr, Gnum * hashsizptr, Gnum * hashmaxptr, Gnum * hashmskptr, const Gnum vertnum) /* Current vertex number for used slots */ { DmeshDgraphDualHashEdge * restrict hashtab; Gnum hashold; Gnum hashbas; Gnum hashnnd; Gnum hashsiz; Gnum hashmsk; hashold = *hashsizptr; hashsiz = hashold * 2; if ((hashtab = memRealloc (*hashtabptr, hashsiz * sizeof (DmeshDgraphDualHashEdge))) == NULL) /* Resize hash table */ return (1); memSet (hashtab + hashold, ~0, hashold * sizeof (DmeshDgraphDualHashEdge)); /* Initialize second half */ for (hashbas = hashold - 1; hashtab[hashbas].vertnum == vertnum; hashbas --) ; /* Find start index of last block */ hashnnd = hashold; /* First segment to reconsider ends at the end of the old array */ hashmsk = hashsiz - 1; while (hashnnd != hashbas) { /* For each of the two segments to consider */ Gnum hashnum; for (hashnum = hashbas; hashnum < hashnnd; hashnum ++) { /* Re-compute position in new table */ if (hashtab[hashnum].vertnum == vertnum) { /* If hash slot used in this pass */ Gnum vertend; Gnum hashnew; vertend = hashtab[hashnum].vertend; /* Get hash key value */ for (hashnew = (vertend * DMESHDGRAPHHASHPRIME) & hashmsk; ; hashnew = (hashnew + 1) & hashmsk) { if (hashnew == hashnum) /* If hash slot is the same */ break; /* There is nothing to do */ if (hashtab[hashnew].vertnum != vertnum) { /* If new slot is empty */ hashtab[hashnew] = hashtab[hashnum]; /* Copy data to new slot */ hashtab[hashnum].vertnum = ~0; /* Mark old slot as empty */ break; } } /* Go on searching */ } } hashnnd = hashbas; /* End of second segment to consider is start of first one */ hashbas = 0; /* Start of second segment is beginning of array */ } /* After second segment, hashbas = hashnnd = 0 and loop stops */ *hashtabptr = hashtab; *hashsizptr = hashsiz; *hashmaxptr *= 2; /* Adjust maximum capacity proportionally, whatever it is */ *hashmskptr = hashmsk; return (0); } static int dmeshDgraphDualProcNum ( Gnum vertglbnbr, Gnum vertlocnum, /* Un-based vertex number */ int procglbnbr) /* Number of processes */ { Gnum bloksizmin; Gnum bloksizmax; Gnum blokrmnval; Gnum proclocnum; blokrmnval = 1 + (vertglbnbr - 1) % (Gnum) procglbnbr; /* Index of first process of size bloksizmin (TRICK: or procglbnbr if it would be 0) */ bloksizmax = ((vertglbnbr - 1) + (Gnum) procglbnbr) / (Gnum) procglbnbr; /* Maximum size of block per process (procnum < blokrmnval) */ bloksizmin = bloksizmax - 1; /* Minimum size of block per process (proclocnum >= blokrmnval) */ proclocnum = vertlocnum / bloksizmax; /* Get estimated index of block */ if ((proclocnum >= blokrmnval) && (bloksizmin > 0)) proclocnum = blokrmnval + (vertlocnum - blokrmnval * bloksizmax) / bloksizmin; return ((int) proclocnum); } /*************************/ /* */ /* The distributed graph */ /* building routines. */ /* */ /*************************/ /* This routine builds a distributed dual graph ** (that is, an element graph) from the given ** distributed mesh. An edge is built between any two ** element vertices if these two elements e1 and e2 ** have at least noconbr nodes in common. ** It returns: ** - 0 : if the distributed graph has been successfully built. ** - 1 : on error. */ int dmeshDgraphDual ( const Dmesh * restrict const meshptr, /*+ Original mesh +*/ Dgraph * restrict const grafptr, /*+ Graph to build +*/ const Gnum noconbr) /*+ Number of common points to define adjacency of elements +*/ { Gnum velmlocnum; Gnum eelmlocnum; int * restrict vnflloctax; /* Flag array for sending node vertices to processes */ Gnum vnodglbnbr; Gnum vnodglbmax; /* Highest node global index across all processes */ Gnum vnodlocmax; /* Highest node global index on local process */ #ifdef SCOTCH_DEBUG_DMESH2 Gnum vnodglbmin; /* Lowest node global number across all processes */ Gnum vnodlocmin; /* Lowest node global number on local process */ #endif /* SCOTCH_DEBUG_DMESH2 */ Gnum vnodlocbas; /* First global node index on local process */ Gnum vnodlocnnd; /* After-last global node index on local process */ Gnum vnodlocnbr; /* Number of node vertices on local process */ Gnum * restrict vnodloctax; /* Vertex index array for local node vertices */ Gnum vnodlocnum; Gnum vnodlocadj; /* Temporary variable to adjust node vertex indices */ Gnum * restrict enodloctax; /* Edge element adjacency array for local node vertices */ Gnum * restrict prfrloctab; /* Start of per-process linked list of edge data to send */ Gnum * restrict eeneloctax; /* After-start linked list of per-process edge data */ int * restrict ercvcnttab; /* Edge receive count array */ int * restrict ercvdsptab; /* Edge receive displacement array */ Gnum * restrict ercvdattab; /* Receive array for element-node edges */ int ercvdatsiz; /* Size of edge receive array */ int ercvdatidx; /* Index to traverse edge receive array entirely */ int * restrict esndcnttab; /* Edge send count array */ int * restrict esnddsptab; /* Edge send displacement array */ int esnddatsiz; /* Size of edge send array */ Gnum * restrict esnddattab; /* Send array for element-node edges */ #define nrcvcnttab ercvcnttab /* Node adjacency receive count array; TRICK: reused */ int * restrict nrcvdsptab; /* Node adjacency receive displacement array */ int nrcvdatsiz; /* Size of node adjacency receive array */ int nrcvdatidx; /* Index to traverse node receive array entirely */ Gnum * restrict nrcvdattab; /* Receive array for node adjacencies */ #define nsndcnttab esndcnttab /* Node adjacency send count array; TRICK: reused */ #define nsnddsptab esnddsptab /* Node adjacency send displacement array; TRICK: reused */ int nsnddspval; /* Node adjacency send displacement value */ int nsnddatsiz; /* Size of node adjacency send array */ Gnum * restrict nsnddattab; /* Send array for node adjacencies */ Gnum * restrict vertloctax; /* Vertex array of distributed dual graph */ Gnum * restrict edgeloctax; /* Edge array of distributed dual graph */ Gnum edgelocnnd; /* End marker for current size of edge array */ Gnum edgelocnum; Gnum degrlocmax; /* Local maximum degree */ DmeshDgraphDualHashEdge * restrict helmtab; /* Hash table for building dual graph edge adjacencies */ Gnum helmsiz; Gnum helmmsk; Gnum helmmax; Gnum helmnbr; Gnum hnodnbr; /* Expected number of nodes in node hash table */ DmeshDgraphDualHashNode * restrict hnodtab; /* Hash table for locating node adjacencies in array */ Gnum hnodsiz; Gnum hnodmsk; int procnum; const int procglbnbr = meshptr->procglbnbr; const int proclocnum = meshptr->proclocnum; const Gnum baseval = meshptr->baseval; const Gnum velmlocbas = meshptr->prelvrttab[proclocnum]; const Gnum velmlocnnd = meshptr->prelvrttab[proclocnum + 1]; const Gnum velmlocnbr = velmlocnnd - velmlocbas; const Gnum * restrict const velmloctax = meshptr->velmloctab - velmlocbas; /* TRICK: base with respect to global indices */ const Gnum * restrict const eelmloctax = meshptr->eelmloctab - baseval; const Gnum eelmlocnnd = velmloctax[velmlocnnd]; /* Because element vertex array is compact */ const Gnum eelmlocnbr = eelmlocnnd - baseval; #ifdef SCOTCH_DEBUG_DMESH2 vnodlocmin = GNUMMAX; #endif /* SCOTCH_DEBUG_DMESH2 */ vnodlocmax = 0; for (eelmlocnum = baseval; eelmlocnum < eelmlocnnd; eelmlocnum ++) { /* Search for highest node vertex */ Gnum vnodlocend; vnodlocend = eelmloctax[eelmlocnum]; #ifdef SCOTCH_DEBUG_DMESH2 if (vnodlocmin > vnodlocend) vnodlocmin = vnodlocend; #endif /* SCOTCH_DEBUG_DMESH2 */ if (vnodlocmax < vnodlocend) vnodlocmax = vnodlocend; } if (MPI_Allreduce (&vnodlocmax, &vnodglbmax, 1, GNUM_MPI, MPI_MAX, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshDgraphDual: communication error (1)"); return (1); } #ifdef SCOTCH_DEBUG_DMESH2 if (MPI_Allreduce (&vnodlocmin, &vnodglbmin, 1, GNUM_MPI, MPI_MIN, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshDgraphDual: communication error (2)"); return (1); } if (vnodglbmin != baseval) { errorPrint ("dmeshDgraphDual: invalid parameters"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ vnodglbnbr = vnodglbmax - baseval + 1; if (((ercvcnttab = memAlloc (procglbnbr * sizeof (int) * 5)) == NULL) || /* TRICK: allocate all cnt/dsp arrays as well */ ((prfrloctab = memAlloc (procglbnbr * sizeof (Gnum))) == NULL) || /* Heads of linked lists to send to each process */ ((eeneloctax = memAlloc (eelmlocnbr * sizeof (Gnum) * 2)) == NULL)) { /* TRICK: double array with element and edge index */ errorPrint ("dmeshDgraphDual: out of memory (1)"); return (1); } eeneloctax -= baseval; ercvdsptab = ercvcnttab + procglbnbr; esndcnttab = ercvdsptab + procglbnbr; esnddsptab = esndcnttab + procglbnbr; nrcvdsptab = esnddsptab + procglbnbr; memSet (esndcnttab, 0, procglbnbr * sizeof (int)); /* Initialize data send count array */ memSet (prfrloctab, ~0, procglbnbr * sizeof (Gnum)); /* TRICK: set all values to -1 */ for (velmlocnum = velmlocbas, eelmlocnum = baseval; /* Chain all edges to send per destination process */ velmlocnum < velmlocnnd; velmlocnum ++) { Gnum eelmlocnnd; for (eelmlocnnd = velmloctax[velmlocnum + 1]; eelmlocnum < eelmlocnnd; eelmlocnum ++) { Gnum vnodlocend; /* End node value */ int procnum; /* Destination process */ vnodlocend = eelmloctax[eelmlocnum]; procnum = dmeshDgraphDualProcNum (vnodglbnbr, vnodlocend - baseval, procglbnbr); /* Compute destination process for given (un-based) edge end */ esndcnttab[procnum] += 2; /* Count edge data to send to given process */ eeneloctax[2 * eelmlocnum] = velmlocnum; /* Record element vertex number */ eeneloctax[2 * eelmlocnum + 1] = prfrloctab[procnum]; /* Chain edge number of node data to send */ prfrloctab[procnum] = eelmlocnum; } } if (MPI_Alltoall (esndcnttab, 1, MPI_INT, /* Exchange counts of data to be sent/received to/from each process */ ercvcnttab, 1, MPI_INT, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshDgraphDual: communication error (3)"); return (1); } for (procnum = 0, esnddatsiz = ercvdatsiz = 0; procnum < procglbnbr; procnum ++) { esnddsptab[procnum] = esnddatsiz; /* Set start indices for building send arrays */ esnddatsiz += esndcnttab[procnum]; ercvdsptab[procnum] = ercvdatsiz; /* Set start indices for building receive arrays */ ercvdatsiz += ercvcnttab[procnum]; /* Sum-up size of data receive array */ } vnodlocbas = DATASCAN (vnodglbnbr, procglbnbr, proclocnum) + baseval; vnodlocnnd = DATASCAN (vnodglbnbr, procglbnbr, proclocnum + 1) + baseval; vnodlocnbr = vnodlocnnd - vnodlocbas; if (((vnodloctax = memAlloc ((vnodlocnbr + 1) * sizeof (Gnum))) == NULL) || ((vnflloctax = memAlloc (vnodlocnbr * sizeof (int))) == NULL) || ((enodloctax = memAlloc (ercvdatsiz * sizeof (Gnum) / 2)) == NULL) || /* Node edge array size is half the received data pairs */ ((ercvdattab = memAlloc (ercvdatsiz * sizeof (Gnum))) == NULL) || ((esnddattab = memAlloc (esnddatsiz * sizeof (Gnum))) == NULL)) { /* Will be freed first */ errorPrint ("dmeshDgraphDual: out of memory (2)"); return (1); } for (procnum = 0; procnum < procglbnbr; procnum ++) { /* Build per-process send arrays from edge linked lists */ Gnum esnddspidx; esnddspidx = esnddsptab[procnum]; for (eelmlocnum = prfrloctab[procnum]; eelmlocnum != -1; eelmlocnum = eeneloctax[2 * eelmlocnum + 1]) { /* For all edges in linked list */ esnddattab[esnddspidx] = eelmloctax[eelmlocnum]; /* Send node number */ esnddattab[esnddspidx + 1] = eeneloctax[2 * eelmlocnum]; /* Send neighbor element number */ esnddspidx += 2; /* Two more data items added to send array */ } #ifdef SCOTCH_DEBUG_DMESH2 if ((procnum < (procglbnbr - 1)) && (esnddspidx != esnddsptab[procnum + 1])) { errorPrint ("dmeshDgraphDual: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ } memFree (eeneloctax + baseval); /* Free linked list of element edges */ memFree (prfrloctab); memSet (vnodloctax, 0, vnodlocnbr * sizeof (Gnum)); /* Initialize neighbor count array */ vnodloctax -= vnodlocbas; /* TRICK: base node vertex array with respect to global indices */ enodloctax -= baseval; /* Node edge array is commonly based with respect to base value */ if (MPI_Alltoallv (esnddattab, esndcnttab, esnddsptab, GNUM_MPI, ercvdattab, ercvcnttab, ercvdsptab, GNUM_MPI, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshDgraphDual: communication error (4)"); return (1); } memFree (esnddattab); /* Free send array for first phase */ for (ercvdatidx = 0; ercvdatidx < ercvdatsiz; ercvdatidx += 2) { /* Count adjacency of each node vertex */ Gnum vnodlocnum; vnodlocnum = ercvdattab[ercvdatidx]; /* Get node global index in edge */ #ifdef SCOTCH_DEBUG_DMESH2 if ((vnodlocnum < vnodlocbas) || /* If received node number is out of bounds for process */ (vnodlocnum >= vnodlocnnd)) { errorPrint ("dmeshDgraphDual: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ vnodloctax[vnodlocnum] ++; /* One more edge neighbor for node vertex */ } for (vnodlocnum = vnodlocbas, vnodlocadj = baseval; vnodlocnum < vnodlocnnd; vnodlocnum ++) { /* Set indices to edge array */ Gnum vnodloctmp; vnodloctmp = vnodloctax[vnodlocnum]; vnodloctax[vnodlocnum] = vnodlocadj; vnodlocadj += vnodloctmp; } for (ercvdatidx = 0; ercvdatidx < ercvdatsiz; ercvdatidx += 2) { /* Build adjacency of each node vertex */ Gnum velmlocnum; Gnum vnodlocnum; vnodlocnum = ercvdattab[ercvdatidx]; /* Get edge pair of global indices */ velmlocnum = ercvdattab[ercvdatidx + 1]; enodloctax[vnodloctax[vnodlocnum] ++] = velmlocnum; /* Add edge to node adjacency */ } memMov (vnodloctax + vnodlocbas + 1, vnodloctax + vnodlocbas, vnodlocnbr * sizeof (Gnum)); /* Rebuild indices in node vertex array */ vnodloctax[vnodlocbas] = baseval; memSet (vnflloctax, ~0, vnodlocnbr * sizeof (int)); /* Initialize node vertex flag array with invalid process number */ vnflloctax -= vnodlocbas; /* TRICK: base node vertex flag array with respect to global indices */ for (procnum = 0, ercvdatidx = 0; procnum < procglbnbr; procnum ++) { /* For all processes holding elements */ Gnum ercvdatnnd; /* End index of edge data to consider for current process */ int nsndcntval; /* Amount of node adjacency data to send to current process */ nsndcntval = 0; /* No nodes to send to this process yet */ for (ercvdatnnd = (procnum < (procglbnbr - 1)) ? ercvdsptab[procnum + 1] : ercvdatsiz; ercvdatidx < ercvdatnnd; ercvdatidx += 2) { /* Build adjacency of each node vertex */ Gnum vnodlocnum; vnodlocnum = ercvdattab[ercvdatidx]; /* Get number of node to send back to given process */ if (vnflloctax[vnodlocnum] != procnum) { /* If flag not set for this destination process */ nsndcntval += 2 + (int) (vnodloctax[vnodlocnum + 1] - vnodloctax[vnodlocnum]); /* Add data size */ vnflloctax[vnodlocnum] = procnum; /* Flag node vertex as already being sent */ } } nsndcnttab[procnum] = nsndcntval; } if (MPI_Alltoall (nsndcnttab, 1, MPI_INT, /* Exchange counts of data to be sent/received to/from each process */ nrcvcnttab, 1, MPI_INT, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshDgraphDual: communication error (5)"); return (1); } for (procnum = 0, nsnddatsiz = nrcvdatsiz = 0; procnum < procglbnbr; procnum ++) { nsnddsptab[procnum] = nsnddatsiz; /* Set start indices for building send arrays */ nsnddatsiz += nsndcnttab[procnum]; nrcvdsptab[procnum] = nrcvdatsiz; /* Set start indices for building receive arrays */ nrcvdatsiz += nrcvcnttab[procnum]; /* Sum-up size of data receive array */ } edgelocnnd = nrcvdatsiz + baseval + 4; /* Estimate on number of edges to be built; TRICK: "+4" for 25% increase to work */ if (((vertloctax = memAlloc ((velmlocnbr + 1) * sizeof (Gnum))) == NULL) || /* Dual graph vertex array */ ((edgeloctax = memAlloc ((edgelocnnd - baseval) * sizeof (Gnum))) == NULL) || ((nrcvdattab = memAlloc (nrcvdatsiz * sizeof (Gnum))) == NULL) || ((nsnddattab = memAlloc (nsnddatsiz * sizeof (Gnum))) == NULL)) { /* Will be freed first */ errorPrint ("dmeshDgraphDual: out of memory (3)"); return (1); } vertloctax -= velmlocbas; /* TRICK: base vertex array with respect to global indices */ edgeloctax -= baseval; for (procnum = 0, ercvdatidx = 0, nsnddspval = 0; /* For all processes holding elements */ procnum < procglbnbr; procnum ++) { Gnum ercvdatnnd; /* End index of edge data to consider for current process */ #ifdef SCOTCH_DEBUG_DMESH2 if (nsnddspval != nsnddsptab[procnum]) { errorPrint ("dmeshDgraphDual: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ for (ercvdatnnd = (procnum < (procglbnbr - 1)) ? ercvdsptab[procnum + 1] : ercvdatsiz; ercvdatidx < ercvdatnnd; ercvdatidx += 2) { /* Build adjacency of each node vertex */ Gnum vnodlocnum; vnodlocnum = ercvdattab[ercvdatidx]; /* Get number of node to send back to given process */ if (vnflloctax[vnodlocnum] != (procglbnbr + procnum)) { /* If flag not set for this destination process; TRICK: new range */ Gnum degrval; degrval = vnodloctax[vnodlocnum + 1] - vnodloctax[vnodlocnum]; #ifdef SCOTCH_DEBUG_DMESH2 if ((nsnddspval + 2 + degrval) > nsnddatsiz) { errorPrint ("dmeshDgraphDual: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ nsnddattab[nsnddspval ++] = vnodlocnum; /* Send node number */ nsnddattab[nsnddspval ++] = degrval; /* Send degree */ memCpy (nsnddattab + nsnddspval, enodloctax + vnodloctax[vnodlocnum], degrval * sizeof (Gnum)); /* Send neighbors */ nsnddspval += degrval; /* Update start of area */ vnflloctax[vnodlocnum] = (procglbnbr + procnum); /* Flag node vertex as already being sent */ } } } #ifdef SCOTCH_DEBUG_DMESH2 if (nsnddspval != nsnddatsiz) { errorPrint ("dmeshDgraphDual: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ memFree (ercvdattab); /* Free receive array for first phase */ memFree (enodloctax + baseval); memFree (vnflloctax + vnodlocbas); memFree (vnodloctax + vnodlocbas); if (MPI_Alltoallv (nsnddattab, nsndcnttab, nsnddsptab, GNUM_MPI, nrcvdattab, nrcvcnttab, nrcvdsptab, GNUM_MPI, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshDgraphDual: communication error (6)"); return (1); } memFree (nsnddattab); /* Free send array for second phase */ memFree (ercvcnttab); /* Free process count and displacement arrays */ for (nrcvdatidx = 0, hnodnbr = 0; nrcvdatidx < nrcvdatsiz; ) { /* Count received nodes to set node hash table size */ Gnum degrval; degrval = nrcvdattab[nrcvdatidx + 1]; /* Get node degree */ nrcvdatidx += 2 + degrval; /* Skip adjacency to next node data */ hnodnbr ++; /* One more slot in node hash table */ } for (hnodsiz = 32; hnodsiz < hnodnbr; hnodsiz *= 2) ; /* Get upper power of two */ hnodsiz *= 2; /* Load node hash table at 50% capacity since large array */ if ((hnodtab = memAlloc (hnodsiz * sizeof (DmeshDgraphDualHashNode))) == NULL) { errorPrint ("dmeshDgraphDual: out of memory (4)"); return (1); } memSet (hnodtab, ~0, hnodsiz * sizeof (DmeshDgraphDualHashNode)); hnodmsk = hnodsiz - 1; for (nrcvdatidx = 0; nrcvdatidx < nrcvdatsiz; ) { /* Record all node locations in node hash table */ Gnum vnodlocnum; Gnum degrval; Gnum hnodnum; vnodlocnum = nrcvdattab[nrcvdatidx ++]; /* Get node number */ degrval = nrcvdattab[nrcvdatidx]; /* Get node degree */ for (hnodnum = (vnodlocnum * DMESHDGRAPHHASHPRIME) & hnodmsk; ; hnodnum = (hnodnum + 1) & hnodmsk) { if (hnodtab[hnodnum].vnodnum == ~0) { /* If hash slot empty */ hnodtab[hnodnum].vnodnum = vnodlocnum; /* Record node location */ hnodtab[hnodnum].dataidx = nrcvdatidx; /* Point to degree value */ break; } } nrcvdatidx += 1 + degrval; /* Skip adjacency to next node data */ } helmmax = 64; helmsiz = helmmax * 4; /* Load edge hash table at 1/4 capacity */ if ((helmtab = memAlloc (helmsiz * sizeof (DmeshDgraphDualHashEdge))) == NULL) { errorPrint ("dmeshDgraphDual: out of memory (5)"); return (1); } memSet (helmtab, ~0, helmsiz * sizeof (DmeshDgraphDualHashEdge)); helmmsk = helmsiz - 1; degrlocmax = 0; for (velmlocnum = velmlocbas, edgelocnum = baseval; velmlocnum < velmlocnnd; velmlocnum ++) { Gnum eelmlocnum; Gnum eelmlocnnd; Gnum degrlocval; Gnum helmnum; vertloctax[velmlocnum] = edgelocnum; helmnum = (velmlocnum * DMESHDGRAPHHASHPRIME) & helmmsk; /* Prevent adding loop edge */ helmtab[helmnum].vertnum = velmlocnum; helmtab[helmnum].vertend = velmlocnum; helmtab[helmnum].nghbnbr = 0; /* Loop edge never created as boundary already crossed */ helmnbr = 1; /* One entry added to edge hash table */ eelmlocnum = velmloctax[velmlocnum]; eelmlocnnd = velmloctax[velmlocnum + 1]; for ( ; eelmlocnum < eelmlocnnd; eelmlocnum ++) { /* For all element edges */ Gnum vnodlocnum; int nrcvdatidx; int enoddatnum; int enoddatnnd; Gnum hnodnum; vnodlocnum = eelmloctax[eelmlocnum]; /* Get number of node neighbor */ for (hnodnum = (vnodlocnum * DMESHDGRAPHHASHPRIME) & hnodmsk; ; hnodnum = (hnodnum + 1) & hnodmsk) { #ifdef SCOTCH_DEBUG_DMESH2 if (hnodtab[hnodnum].vnodnum == ~0) { /* If hash slot empty */ errorPrint ("dmeshDgraphDual: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ if (hnodtab[hnodnum].vnodnum == vnodlocnum) /* If hash slot found */ break; } nrcvdatidx = hnodtab[hnodnum].dataidx; /* Get index of node degree then adjacency */ enoddatnum = nrcvdatidx + 1; /* Start at first index of adjacency */ enoddatnnd = enoddatnum + nrcvdattab[nrcvdatidx]; /* Compute end index from node degree */ for ( ; enoddatnum < enoddatnnd; enoddatnum ++) { Gnum velmlocend; Gnum helmend; velmlocend = nrcvdattab[enoddatnum]; /* Get number of end element vertex */ for (helmend = (velmlocend * DMESHDGRAPHHASHPRIME) & helmmsk; ; helmend = (helmend + 1) & helmmsk) { Gnum nghbnbr; if (helmtab[helmend].vertnum != velmlocnum) { /* If edge not yet created */ if (helmnbr >= helmmax) /* If edge hash table full, resize it */ dmeshDgraphDualHashEdgeResize (&helmtab, &helmsiz, &helmmax, &helmmsk, velmlocnum); helmtab[helmend].vertnum = velmlocnum; /* Record new edge */ helmtab[helmend].vertend = velmlocend; helmtab[helmend].nghbnbr = /* One instance recorded to date */ nghbnbr = noconbr - 1; helmnbr ++; /* One more item added to hash table */ goto test; /* Check if one instance is enough to create edge */ } if (helmtab[helmend].vertend == velmlocend) { /* If hash slot found */ nghbnbr = helmtab[helmend].nghbnbr; /* Get number of times neighbor element met yet */ if (nghbnbr > 0) { /* If edge not already created */ helmtab[helmend].nghbnbr = -- nghbnbr; /* One more instance of neighbor element met */ test: if (nghbnbr <= 0) { /* If new instance allows us to reach threshold */ if (edgelocnum >= edgelocnnd) { /* If edge array already full */ Gnum edgelocmax; Gnum * restrict edgeloctmp; edgelocmax = edgelocnnd - baseval; /* Increase size by 25 % */ edgelocmax = edgelocmax + (edgelocmax >> 2); if ((edgeloctmp = memRealloc (edgeloctax + baseval, edgelocmax * sizeof (Gnum))) == NULL) { errorPrint ("dmeshDgraphDual: out of memory (6)"); return (1); } edgeloctax = edgeloctmp - baseval; edgelocnnd = edgelocmax + baseval; } edgeloctax[edgelocnum ++] = velmlocend; /* Create edge */ } } break; } } } } degrlocval = edgelocnum - vertloctax[velmlocnum]; /* Compute local maximum degree */ if (degrlocval > degrlocmax) degrlocmax = degrlocval; } vertloctax[velmlocnum] = edgelocnum; /* Set end of vertex array */ memFree (helmtab); memFree (hnodtab); memFree (nrcvdattab); edgeloctax = memRealloc (edgeloctax + baseval, (edgelocnum - baseval) * sizeof (Gnum)); /* Reduce size of edge array */ edgeloctax -= baseval; if (dgraphBuild2 (grafptr, baseval, /* Build distributed graph */ meshptr->velmlocnbr, meshptr->velmlocnbr, vertloctax + velmlocbas - baseval, vertloctax + velmlocbas - baseval + 1, NULL, meshptr->velmlocnbr, NULL, NULL, edgelocnum - baseval, edgelocnum - baseval, edgeloctax, NULL, NULL, degrlocmax) != 0) { errorPrint ("dmeshDgraphDual: cannot build dual graph"); memFree (edgeloctax + baseval); memFree (vertloctax + velmlocbas); return (1); } grafptr->flagval |= DGRAPHFREETABS; #ifdef SCOTCH_DEBUG_DMESH2 if (dgraphCheck (grafptr) != 0) { errorPrint ("dmeshDgraphDual: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh_dgraph.h000066400000000000000000000070601514310134000265160ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh_dgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Marc FUENTES **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed source mesh to **/ /** distributed source graph building **/ /** routine. **/ /** **/ /** DATES : # Version 7.0 : from : 20 jan 2023 **/ /** to : 14 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ /** Prime number for cache-friendly perturbations. **/ #define DMESHDGRAPHHASHPRIME 17 /* Prime number */ /* ** The type and structure definitions. */ /*+ A table made of such elements is used during graph building to build the edge array of the graph from the one of the mesh. +*/ typedef struct DmeshDgraphDualHashNode_ { Gnum vnodnum; /*+ Node global number +*/ int dataidx; /*+ Index of node degree then adjacency +*/ } DmeshDgraphDualHashNode; typedef struct DmeshDgraphDualHashEdge_ { Gnum vertnum; /*+ Current element vertex number +*/ Gnum vertend; /*+ End element vertex number +*/ Gnum nghbnbr; /*+ Rremaining number of neighbors to find +*/ } DmeshDgraphDualHashEdge; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh_io_load.c000066400000000000000000000405021514310134000266500ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh_io_load.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module loads an auxiliary **/ /** distributed mesh. **/ /** **/ /** DATES : # Version 7.0 : from : 11 jan 2024 **/ /** to : 09 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_DMESH_IO_LOAD #include "module.h" #include "common.h" #include "graph.h" #include "dgraph_allreduce.h" #include "dmesh.h" #include "dmesh_io_load.h" /* This routine loads a distributed source ** graph from the given stream(s). Either ** one processor holds a non-NULL stream ** of a centralized graph, or all of them ** hold valid streams to either a centralized ** or a distributed graph. ** It returns: ** - 0 : on success. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (6, 3) DGRAPHALLREDUCEMAXSUMOP (12, 2) int dmeshLoad ( Dmesh * restrict const meshptr, /* Distributed mesh structure to fill */ FILE * const fileptr, /* Local distributed stream to read data from */ const Gnum baseval, /* Base value (-1 means keep file base) */ const GraphLoadFlag flagval) /* Mesh loading flags (unused) */ { Gnum reduloctab[9]; Gnum reduglbtab[9]; Gnum versval; #ifdef SCOTCH_DEBUG_DMESH2 if (MPI_Barrier (meshptr->proccomm) != MPI_SUCCESS) { /* Synchronize for debugging */ errorPrint ("dmeshLoad: communication error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ reduloctab[0] = baseval; /* Exchange baseval to check it is the same for all */ reduloctab[1] = - baseval; reduloctab[2] = (Gnum) flagval; /* Exchange flagval to check it is the same for all */ reduloctab[3] = - (Gnum) flagval; reduloctab[4] = 1; /* Set uneffective values for versval */ reduloctab[5] = -3; reduloctab[6] = /* Assume everything will be fine */ reduloctab[7] = /* Assume does not have a stream */ reduloctab[8] = 0; if (fileptr != NULL) { if (intLoad (fileptr, &versval) != 1) { /* Read version number */ errorPrint ("dmeshLoad: bad input"); versval = 0; reduloctab[6] = 1; } else if ((versval != 1) && (versval != 3)) { /* If not a mesh format */ errorPrint ("dmeshLoad: not a mesh format"); reduloctab[6] = 1; } reduloctab[4] = versval; reduloctab[5] = - versval; reduloctab[7] = 1; /* One more process involved in loading */ reduloctab[8] = meshptr->proclocnum; } if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 6, 3, meshptr->proccomm) != 0) { errorPrint ("dmeshLoad: communication error (2)"); return (1); } if (reduglbtab[6] != 0) /* Return from previous errors */ return (1); if ((reduglbtab[0] != - reduglbtab[1])) { errorPrint ("dmeshLoad: inconsistent base value"); return (1); } if ((reduglbtab[2] != - reduglbtab[3])) { errorPrint ("dmeshLoad: inconsistent flag value"); return (1); } if ((reduglbtab[7] != 0) && (reduglbtab[4] != - reduglbtab[5])) { errorPrint ("dmeshLoad: inconsistent mesh file version value"); return (1); } if (reduglbtab[4] == 3) { /* If distributed mesh format */ if (reduglbtab[7] == meshptr->procglbnbr) /* If as many input streams as processors */ return (dmeshLoadAdm (meshptr, fileptr, baseval, flagval)); /* Read distributed mesh */ } else { /* If centralized mesh format */ if (reduglbtab[7] == 1) /* If only one reader stream */ return (dmeshLoadCent (meshptr, fileptr, baseval, flagval, reduglbtab[8])); /* Distribute centralized mesh from known root */ else if (reduglbtab[7] == meshptr->procglbnbr) return (dmeshLoadMulti (meshptr, fileptr, baseval, flagval)); /* Read multi-centralized mesh */ } errorPrint ((reduglbtab[7] == 0) ? "dmeshLoad: no input stream provided" : "dmeshLoad: invalid number of input streams"); return (1); } /* This routine loads a centralized source ** mesh from a single stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dmeshLoadCent ( Dmesh * restrict const meshptr, /* Distributed mesh to load */ FILE * const fileptr, /* One single centralized stream */ Gnum baseval, /* Base value (-1 means keep file base) */ const DmeshFlag flagval, /* Mesh loading flags */ const int protnum) /* Root process number */ { errorPrint ("dmeshLoadCent: not implemented"); return (1); } /* This routine loads a distributed source ** mesh from a distributed source auxiliary ** distributed mesh file spread across all ** of the streams. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dmeshLoadAdm ( Dmesh * restrict const meshptr, /* Distributed mesh structure to fill */ FILE * const fileptr, /* Local distributed stream to read data from */ Gnum baseval, /* Base value (-1 means keep file base) */ const DmeshFlag flagval) /* Mesh loading flags */ { Gnum baseadj; Gnum proclocnum; Gnum vnodglbnbr; /* Global number of node vertices */ Gnum vnodglbnnd; Gnum velmglbnbr; /* Global number of element vertices */ Gnum * restrict velmloctab; /* Un-based pointer to element vertex index array */ Gnum velmlocnbr; Gnum velmlocnum; Gnum * restrict eelmloctax; /* Based pointer to element edge array to node vertices */ Gnum eelmlocnbr; Gnum eelmlocnnd; Gnum eelmlocnum; Gnum * restrict prelvrttab; Gnum preldspadj; /* Adjustment value for element-to-process array */ Gnum reduloctab[14]; Gnum reduglbtab[14]; int procnum; int o; reduloctab[0] = 0; /* Assume everything will be fine */ o = intLoad (fileptr, &reduloctab[1]); /* Read procglbnbr */ o += intLoad (fileptr, &proclocnum); /* Read proclocnum */ o += intLoad (fileptr, &reduloctab[3]); /* Read velmglbnbr */ o += intLoad (fileptr, &reduloctab[5]); /* Read vnodglbnbr */ o += intLoad (fileptr, &reduloctab[10]); /* Read velmlocnbr */ o += intLoad (fileptr, &reduloctab[11]); /* Read eelmlocnbr */ o += intLoad (fileptr, &reduloctab[7]); /* Read baseval */ o += intLoad (fileptr, &reduloctab[9]); /* Read flagval; not used yet */ if ((o != 8) || (reduloctab[9] < 0) || (reduloctab[9] > 111)) { errorPrint ("dmeshLoadAdm: bad input (1)"); reduloctab[0] = 2; /* Immediate abort has maximum value so as to be propagated by MAX reduce */ } reduloctab[2] = - reduloctab[1]; reduloctab[4] = - reduloctab[3]; reduloctab[6] = - reduloctab[5]; reduloctab[8] = - reduloctab[7]; reduloctab[12] = reduloctab[10]; /* Compute sums of local numbers */ reduloctab[13] = reduloctab[11]; if ((int) proclocnum != meshptr->proclocnum) { /* If fragment is not read by proper process */ errorPrint ("dmeshLoadAdm: wrong process number to read auxiliary distributed mesh fragment"); reduloctab[0] |= 1; } if ((int) reduloctab[1] != meshptr->procglbnbr) { errorPrint ("dmeshLoadAdm: wrong number of processes to read auxiliary distributed mesh"); reduloctab[0] = 2; } if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 12, 2, meshptr->proccomm) != 0) { errorPrint ("dmeshLoadAdm: communication error (1)"); reduglbtab[0] = 2; } if (reduglbtab[0] >= 2) /* If has to abort immediately */ return (1); if ((reduglbtab[2] != - reduglbtab[1]) || (reduglbtab[4] != - reduglbtab[3]) || (reduglbtab[6] != - reduglbtab[5]) || (reduglbtab[8] != - reduglbtab[7]) || (reduglbtab[12] != reduloctab[3])) { errorPrint ("dmeshLoadAdm: inconsistent distributed mesh headers"); return (1); } if (baseval == -1) { /* If keep file graph base */ baseval = reduglbtab[7]; /* Set graph base as file base */ baseadj = 0; /* No base adjustment needed */ } else /* If set graph base */ baseadj = baseval - reduglbtab[7]; /* Update base adjust */ velmglbnbr = reduloctab[3]; vnodglbnbr = reduloctab[5]; velmlocnbr = reduloctab[10]; eelmlocnbr = reduloctab[11]; if ((prelvrttab = memAlloc ((meshptr->procglbnbr + 1) * sizeof (Gnum))) == NULL) { errorPrint ("dmeshLoadAdm: out of memory (1)"); reduloctab[0] = 1; } if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 1, GNUM_MPI, MPI_MAX, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshLoadAdm: communication error (2)"); return (1); } if (reduglbtab[0] == 1) { if (prelvrttab != NULL) memFree (prelvrttab); return (1); } if ((velmloctab = memAlloc ((velmlocnbr + 1) * sizeof (Gnum))) == NULL) { /* Vertex array will remain unbased */ errorPrint ("dmeshLoadAdm: out of memory (2)"); reduloctab[10] = -1; /* TRICK: update velmlocnbr to be broadcast */ } if ((eelmloctax = memAlloc (eelmlocnbr * sizeof (Gnum))) == NULL) { /* Edge array will be based */ errorPrint ("dmeshLoadAdm: out of memory (3)"); reduloctab[10] = -1; } if (MPI_Allgather (&reduloctab[10], 1, GNUM_MPI, prelvrttab, 1, GNUM_MPI, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshLoadAdm: communication error (3)"); return (1); } preldspadj = baseval; /* Use the new base to build displacement array */ for (procnum = 0; procnum < meshptr->procglbnbr; procnum ++) { /* Build element-to-process array */ Gnum preldspval; preldspval = prelvrttab[procnum]; if (preldspval < 0) { /* If error notified by us or by another process */ if (eelmloctax != NULL) memFree (eelmloctax); /* Array is not yet based */ if (velmloctab != NULL) memFree (velmloctab); memFree (prelvrttab); return (1); } prelvrttab[procnum] = preldspadj; preldspadj += preldspval; } prelvrttab[procnum] = preldspadj; /* Set end of displacement array */ if (preldspadj != (velmglbnbr + baseval)) { errorPrint ("dmeshLoadAdm: bad input (2)"); reduloctab[0] = 1; goto abort; } vnodglbnnd = vnodglbnbr + baseval; eelmloctax -= baseval; /* Base edge array with new base */ eelmlocnnd = eelmlocnbr + baseval; for (velmlocnum = 0, eelmlocnum = baseval; velmlocnum < velmlocnbr; velmlocnum ++) { Gnum degrval; /* Number of neighbors for element */ velmloctab[velmlocnum] = eelmlocnum; /* Set start of neighbor list for new vertex */ if ((intLoad (fileptr, °rval) != 1) || (degrval < 0)) { errorPrint ("dmeshLoadAdm: bad input (3)"); reduloctab[0] = 1; goto abort; } while (degrval -- > 0) { /* For all neighbors */ if ((eelmlocnum >= eelmlocnnd) || /* If out of bounds */ (intLoad (fileptr, &eelmloctax[eelmlocnum]) != 1) || (eelmloctax[eelmlocnum] += baseadj, /* Adjust end element vertex value */ eelmloctax[eelmlocnum] < baseval) || (eelmloctax[eelmlocnum] >= vnodglbnnd)) { errorPrint ("dmeshLoadAdm: bad input (4)"); reduloctab[0] = 1; goto abort; } eelmlocnum ++; /* One more edge recorded */ } } velmloctab[velmlocnum] = eelmlocnum; /* Set end of vertex array */ if (eelmlocnum != eelmlocnnd) { errorPrint ("dmeshLoadAdm: bad input (5)"); reduloctab[0] = 1; } abort: if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 1, GNUM_MPI, MPI_MAX, meshptr->proccomm) != MPI_SUCCESS) { errorPrint ("dmeshLoadAdm: communication error (4)"); return (1); } if (reduglbtab[0] != 0) { memFree (eelmloctax + baseval); memFree (velmloctab); memFree (prelvrttab); return (1); } meshptr->flagval |= DMESHFREETABS; meshptr->baseval = baseval; meshptr->velmglbnbr = reduglbtab[3]; meshptr->velmglbmax = reduglbtab[10]; meshptr->velmlocnbr = reduloctab[10]; meshptr->velmloctab = velmloctab; meshptr->eelmglbnbr = reduglbtab[13]; meshptr->eelmglbmax = reduglbtab[11]; meshptr->eelmlocnbr = reduloctab[11]; meshptr->eelmloctab = eelmloctax + baseval; meshptr->vnodglbnbr = reduloctab[5]; meshptr->prelvrttab = prelvrttab; return (0); } /* This routine loads a distributed source ** mesh from a centralized source mesh ** file replicated on all of the streams. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dmeshLoadMulti ( Dmesh * restrict const meshptr, /* Distributed mesh to load */ FILE * const fileptr, /* Duplicated centralized streams */ Gnum baseval, /* Base value (-1 means keep file base) */ const DmeshFlag flagval) /* Mesh loading flags */ { errorPrint ("dmeshLoadMulti: not implemented"); return (1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dmesh_io_load.h000066400000000000000000000056571514310134000266710ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dmesh_io_load.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the distributed mesh loading **/ /** routines. **/ /** **/ /** DATES : # Version 7.0 : from : 10 aug 2025 **/ /** to : 10 aug 2025 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #ifdef SCOTCH_DMESH_IO_LOAD static int dmeshLoadCent (Dmesh * restrict const, FILE * const, Gnum, const GraphLoadFlag, const int); static int dmeshLoadAdm (Dmesh * restrict const, FILE * const, Gnum, const GraphLoadFlag); static int dmeshLoadMulti (Dmesh * restrict const, FILE * const, Gnum, const GraphLoadFlag); #endif /* SCOTCH_DMESH_IO_LOAD */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder.c000066400000000000000000000316431514310134000253470ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.0 : from : 18 apr 2006 **/ /** to : 28 jul 2006 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "order.h" #include "dorder.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine initializes a distributed ** ordering with respect to the given parameters. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dorderInit ( Dorder * restrict const ordeptr, const Gnum baseval, const Gnum vnodglbnbr, MPI_Comm proccomm) { ordeptr->baseval = baseval; ordeptr->vnodglbnbr = vnodglbnbr; ordeptr->cblklocnbr = 0; ordeptr->linkdat.nextptr = &ordeptr->linkdat; /* Loop double-chained list */ ordeptr->linkdat.prevptr = &ordeptr->linkdat; MPI_Comm_dup (proccomm, &ordeptr->proccomm); /* Duplicate communicator to avoid lifespan problems */ MPI_Comm_rank (ordeptr->proccomm, &ordeptr->proclocnum); #ifdef SCOTCH_PTHREAD pthread_mutex_init (&ordeptr->mutelocdat, NULL); /* Initialize local mutex */ #endif /* SCOTCH_PTHREAD */ return (0); } /* This routine frees the column blocks ** of the given distributed ordering. ** It returns: ** - void : in all cases. */ static void dorderFreeCblk ( DorderCblk * restrict const cblkptr) { #ifdef SCOTCH_DEBUG_DORDER2 if ((cblkptr->typeval != DORDERCBLKNONE) && /* If not distributed leaf of a local sequential nested dissection */ (cblkptr->typeval != DORDERCBLKNEDI) && /* If not distributed leaf of a local sequential nested dissection */ (cblkptr->typeval != DORDERCBLKDICO) && /* And if not a node of a disconnected component split */ (cblkptr->typeval != DORDERCBLKLEAF) && /* And if not sub-ordering computed elsewhere by hdgraphOrderSq() */ (cblkptr->typeval != (DORDERCBLKLEAF | DORDERCBLKNEDI)) && (cblkptr->typeval != (DORDERCBLKLEAF | DORDERCBLKDICO)) && (cblkptr->typeval != (DORDERCBLKLEAF | DORDERCBLKSEQU))) errorPrint ("dorderFreeCblk: invalid column block type"); #endif /* SCOTCH_DEBUG_DORDER2 */ if ((cblkptr->typeval & DORDERCBLKLEAF) != 0) { memFree (cblkptr->data.leaf.periloctab); if (cblkptr->data.leaf.nodeloctab != NULL) memFree (cblkptr->data.leaf.nodeloctab); } memFree (cblkptr); /* Free column block structure */ } void dorderFree ( Dorder * restrict const ordeptr) { DorderCblk * cblkptr; DorderLink * linkptr; for (linkptr = ordeptr->linkdat.nextptr; linkptr != &ordeptr->linkdat; ) { cblkptr = (DorderCblk *) linkptr; /* TRICK: FIRST */ linkptr = linkptr->nextptr; dorderFreeCblk (cblkptr); } ordeptr->linkdat.nextptr = /* Loop double-chained list */ ordeptr->linkdat.prevptr = &ordeptr->linkdat; } /* This routine frees the contents ** of the given ordering. ** It returns: ** - void : in all cases. */ void dorderExit ( Dorder * restrict const ordeptr) { dorderFree (ordeptr); MPI_Comm_free (&ordeptr->proccomm); /* Free duplicated communicator */ #ifdef SCOTCH_PTHREAD pthread_mutex_destroy (&ordeptr->mutelocdat); /* Destroy local mutex */ #endif /* SCOTCH_PTHREAD */ #ifdef SCOTCH_DEBUG_DORDER2 memSet (ordeptr, ~0, sizeof (Dorder)); #endif /* SCOTCH_DEBUG_DORDER2 */ } /* This routine creates the root column ** block slot in the given distributed ** ordering structure. ** It returns: ** - !NULL : root column block. ** - NULL : on error. */ DorderCblk * dorderFrst ( Dorder * const ordeptr) { DorderCblk cblkdat; DorderCblk * cblkptr; cblkdat.ordelocptr = ordeptr; /* Fake father node */ cblkdat.cblknum.proclocnum = 0; /* Belongs to process 0 to ease displacement computations */ cblkdat.cblknum.cblklocnum = -1; if ((cblkptr = dorderNew (&cblkdat, ordeptr->proccomm)) == NULL) return (NULL); cblkptr->ordeglbval = 0; /* Un-based inverse permutation index */ cblkptr->vnodglbnbr = ordeptr->vnodglbnbr; cblkptr->cblkfthnum = 0; return (cblkptr); } /* This routine gives back a new distributed ** column block slot in the same ordering ** structure as the given column block. ** It returns: ** - !NULL : new column block. ** - NULL : on error. */ DorderCblk * dorderNew ( DorderCblk * const cblkptr, /* One of the column blocks */ MPI_Comm proccomm) /* Communicator sharing the block */ { Dorder * restrict ordeptr; DorderCblk * restrict cblknewptr; Gnum reduloctab[3]; Gnum reduglbtab[3]; int proclocnum; MPI_Comm_rank (proccomm, &proclocnum); ordeptr = cblkptr->ordelocptr; reduloctab[1] = /* Assume process is not root for this column block */ reduloctab[2] = 0; if ((cblknewptr = (DorderCblk *) memAlloc (sizeof (DorderCblk))) == NULL) { errorPrint ("dorderNew: out of memory"); reduloctab[0] = 2; /* Indicate error without doubt */ } else { reduloctab[0] = 0; if (proclocnum == 0) { /* If root of sub-tree */ reduloctab[0] = 1; /* Indicate it is the root */ reduloctab[1] = ordeptr->proclocnum; /* Broadcast global rank of block root */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutelocdat); /* Lock local mutex */ #endif /* SCOTCH_PTHREAD */ reduloctab[2] = ordeptr->cblklocnbr ++; /* One more root block in local ordering */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutelocdat); /* Unlock local mutex */ #endif /* SCOTCH_PTHREAD */ } } if (MPI_Allreduce (&reduloctab, &reduglbtab, 3, GNUM_MPI, MPI_SUM, proccomm) != MPI_SUCCESS) { errorPrint ("dorderNew: communication error"); return (NULL); } if (reduglbtab[0] != 1) { errorPrint ("dorderNew: cannot create new node"); if (cblknewptr != NULL) memFree (cblknewptr); return (NULL); } cblknewptr->ordelocptr = ordeptr; cblknewptr->typeval = DORDERCBLKNONE; cblknewptr->fathnum = cblkptr->cblknum; cblknewptr->cblknum.proclocnum = (int) reduglbtab[1]; cblknewptr->cblknum.cblklocnum = reduglbtab[2]; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutelocdat); /* Lock local mutex */ #endif /* SCOTCH_PTHREAD */ cblknewptr->linkdat.nextptr = &ordeptr->linkdat; /* Link new block at end of local ordering node list */ cblknewptr->linkdat.prevptr = ordeptr->linkdat.prevptr; ordeptr->linkdat.prevptr->nextptr = &cblknewptr->linkdat; ordeptr->linkdat.prevptr = &cblknewptr->linkdat; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutelocdat); /* Unlock local mutex */ #endif /* SCOTCH_PTHREAD */ return (cblknewptr); } /* This routine gives back a new centralized ** column block slot in the same ordering ** structure as the given column block. ** It returns: ** - !NULL : new column block. ** - NULL : on error. */ DorderCblk * dorderNewSequ ( DorderCblk * const cblkptr) /* One of the column blocks */ { Dorder * restrict ordeptr; DorderCblk * restrict cblknewptr; if ((cblknewptr = (DorderCblk *) memAlloc (sizeof (DorderCblk))) == NULL) { errorPrint ("dorderNewSequ: out of memory"); return (NULL); } ordeptr = cblkptr->ordelocptr; cblknewptr->ordelocptr = ordeptr; cblknewptr->typeval = DORDERCBLKNONE; cblknewptr->fathnum = cblkptr->cblknum; cblknewptr->cblknum.proclocnum = ordeptr->proclocnum; /* Node belongs to this process */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutelocdat); /* Lock local mutex */ #endif /* SCOTCH_PTHREAD */ cblknewptr->cblknum.cblklocnum = ordeptr->cblklocnbr ++; /* One more locally-rooted block in ordering */ cblknewptr->linkdat.nextptr = &ordeptr->linkdat; /* Link new block at end of local ordering node list */ cblknewptr->linkdat.prevptr = ordeptr->linkdat.prevptr; ordeptr->linkdat.prevptr->nextptr = &cblknewptr->linkdat; ordeptr->linkdat.prevptr = &cblknewptr->linkdat; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutelocdat); /* Unlock local mutex */ #endif /* SCOTCH_PTHREAD */ return (cblknewptr); } /* This routine gives back a new centralized ** index range in the same ordering structure ** as the given column block. ** It returns: ** - !NULL : new column block. ** - NULL : on error. */ Gnum dorderNewSequIndex ( DorderCblk * const cblkptr, /* One of the column blocks */ const Gnum cblknbr) /* Number of indices to reserve */ { Dorder * restrict ordeptr; Gnum cblklocnum; ordeptr = cblkptr->ordelocptr; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutelocdat); /* Lock local mutex */ #endif /* SCOTCH_PTHREAD */ cblklocnum = ordeptr->cblklocnbr; /* Get current local index number */ ordeptr->cblklocnbr += cblknbr; /* These more root blocks in local ordering */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutelocdat); /* Unlock local mutex */ #endif /* SCOTCH_PTHREAD */ return (cblklocnum); } /* This routine removes a no longer used ** column block from the given distributed ** ordering. Leaves or locally-rooted column ** blocks are kept, others are removed. ** It returns: ** - void : in all cases. */ void dorderDispose ( DorderCblk * const cblkptr) /* Column block to consider */ { Dorder * restrict ordeptr; ordeptr = cblkptr->ordelocptr; if (cblkptr->cblknum.proclocnum == ordeptr->proclocnum) /* If node is local root of column block, keep it */ return; if ((cblkptr->typeval & DORDERCBLKLEAF) == 0) { /* If node is not non-rooted leaf of distributed ordering */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutelocdat); /* Lock local mutex */ #endif /* SCOTCH_PTHREAD */ cblkptr->linkdat.nextptr->prevptr = cblkptr->linkdat.prevptr; /* Unchain node from double-chained list */ cblkptr->linkdat.prevptr->nextptr = cblkptr->linkdat.nextptr; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutelocdat); /* Unlock local mutex */ #endif /* SCOTCH_PTHREAD */ memFree (cblkptr); } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder.h000066400000000000000000000253571514310134000253610ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data **/ /** declarations for the generic **/ /** distributed ordering structure. **/ /** **/ /** DATES : # Version 5.0 : from : 15 apr 2006 **/ /** to : 14 oct 2007 **/ /** # Version 5.1 : from : 28 nov 2007 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 08 may 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 10 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Tag for MPI communications. +*/ #define DORDERTAGPERI 0 /*+ Column block separation tree cell flags. They must be equal to the same values as for the Order flag structure. +*/ #define DORDERCBLKNONE ORDERCBLKNONE /*+ Not yet assigned +*/ #define DORDERCBLKNEDI ORDERCBLKNEDI /*+ Nested dissection separator node +*/ #define DORDERCBLKDICO ORDERCBLKDICO /*+ Disconnected components node +*/ #define DORDERCBLKSEQU ORDERCBLKSEQU /*+ Sequentially dependent node +*/ #define DORDERCBLKLEAF ORDERCBLKLEAF /*+ Distributed leaf +*/ /* ** The type and structure definitions. */ /*+ Distributed index of column block tree cell. +*/ typedef struct DorderIndex_ { int proclocnum; /*+ Number of this process +*/ Gnum cblklocnum; /*+ Local index of column block +*/ } DorderIndex; /*+ Link structure to double-chain all column blocks into the distributed ordering structure. Nodes are inserted at end of list such that a simple traversal gives nodes in ascending creation order, which is essential for locally-rooted nodes when gathering them on a centralized ordering. +*/ typedef struct DorderLink_ { struct DorderLink_ * nextptr; /*+ Pointer to previous column block +*/ struct DorderLink_ * prevptr; /*+ Pointer to next column block +*/ } DorderLink; /*+ Centralized column block node. +*/ typedef struct DorderNode_ { Gnum fathnum; /*+ Number of father in centralized node array +*/ int typeval; /*+ Centralized type of tree node +*/ Gnum vnodnbr; /*+ Number of nodes in this column block +*/ Gnum cblknum; /*+ Rank of column block in father column block array +*/ } DorderNode; /*+ Distributed column-block tree cell. Each cell defines a distributed column block, which is either a nested dissection node, with its two subgraphs and its separator, or a leaf. Leaves which are located on a single process can be nested dissection sequential nodes, with the sequential tree folded as a node array. Column blocks are given in ascending order within all sub-arrays, for proper infix traversal. +*/ typedef struct DorderCblk_ { DorderLink linkdat; /*+ Link to other blocks. TRICK: FIRST +*/ struct Dorder_ * ordelocptr; /*+ Pointer to local distributed ordering +*/ int typeval; /*+ Distributed type of tree node +*/ DorderIndex fathnum; /*+ Master index of parent column block +*/ DorderIndex cblknum; /*+ Master index of this column block +*/ Gnum ordeglbval; /*+ Un-based starting index of inverse permutation +*/ Gnum vnodglbnbr; /*+ Number of node vertices in subtree +*/ Gnum cblkfthnum; /*+ Rank of node in father column block array +*/ union { struct { /*+ Fragment of inverse permutation +*/ Gnum ordelocval; /*+ Starting index of inverse permutation +*/ Gnum vnodlocnbr; /*+ Number of node vertices in fragment +*/ Gnum * periloctab; /*+ Pointer to inverse permutation fragment +*/ Gnum nodelocnbr; /*+ Number of local column blocks +*/ DorderNode * nodeloctab; /*+ Array of local column blocks +*/ Gnum cblklocnum; /*+ Local number of first local column block +*/ } leaf; struct { /*+ Fragment of inverse permutation +*/ Gnum cblkglbnbr; /*+ Number of descendent nodes (2 or 3) +*/ } nedi; } data; } DorderCblk; /*+ Distributed ordering structure. A distributed block ordering is defined by fragments of its inverse permutation, distributed across all of the participating processes. For the sake of consistency between orderings that have been produced either from graphs or meshes, whether centralized or distributed, all ordering values are based from baseval. However, distributed column block indices themselves are not based. +*/ typedef struct Dorder_ { Gnum baseval; /*+ Base value for structures +*/ Gnum vnodglbnbr; /*+ Global number of node vertices +*/ Gnum cblklocnbr; /*+ Local number of unique locally-rooted distributed and sequential column blocks +*/ DorderLink linkdat; /*+ Link to column blocks +*/ MPI_Comm proccomm; /*+ Ordering global communicator +*/ int proclocnum; /*+ Rank of this process in the communicator +*/ #ifdef SCOTCH_PTHREAD pthread_mutex_t mutelocdat; /*+ Local mutex for counter and link updates +*/ #endif /* SCOTCH_PTHREAD */ } Dorder; /* ** The function prototypes. */ int dorderInit (Dorder * const, const Gnum, const Gnum, MPI_Comm); void dorderExit (Dorder * const); void dorderFree (Dorder * const); #ifdef SCOTCH_DGRAPH_H int dorderPerm (const Dorder * const, const Dgraph * const, Gnum * const); int dorderSave (const Dorder * const, const Dgraph * const, FILE * const); int dorderSaveBlock (const Dorder * const, const Dgraph * const, FILE * const); int dorderSaveMap (const Dorder * const, const Dgraph * const, FILE * const); int dorderSaveTree (const Dorder * const, const Dgraph * const, FILE * const); #ifdef SCOTCH_ORDER_H int dorderSaveTree2 (const Dorder * restrict const, const Dgraph * restrict const, FILE * restrict const, int (*) (const Order * const, const Gnum * const, FILE * const)); #endif /* SCOTCH_ORDER_H */ #endif /* SCOTCH_DGRAPH_H */ Gnum dorderCblkDist (const Dorder * restrict const); int dorderTreeDist (const Dorder * restrict const, const Dgraph * restrict const, Gnum * restrict const, Gnum * restrict const); #ifdef SCOTCH_ORDER_H int dorderGather (const Dorder * const, Order * const); int dorderGatherTree (const Dorder * const, Order * const, const int); #endif /* SCOTCH_ORDER_H */ DorderCblk * dorderFrst (Dorder * const); DorderCblk * dorderNew (DorderCblk * const, MPI_Comm); DorderCblk * dorderNewSequ (DorderCblk * const); Gnum dorderNewSequIndex (DorderCblk * const, const Gnum); void dorderDispose (DorderCblk * const); int dorderCheck (const Dorder * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_check.c000066400000000000000000000462321514310134000265040ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_check.c **/ /** **/ /** AUTHOR : Clement BARTHELEMY **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module checks the consistency of **/ /** distributed orderings. **/ /** **/ /** DATES : # Version 7.0 : from : 29 sep 2025 **/ /** to : 30 dec 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "order.h" #include "dorder.h" /************************************************/ /* */ /* These routines check distributed orderings. */ /* */ /************************************************/ /* This routine checks the consistency ** of a direct or inverse permutation. ** It returns: ** - 0 : if permutation data is consistent. ** - !0 : on error. */ static int dorderCheck2 ( const Gnum baseval, const Gnum vnodglbnbr, Gnum * flagloctab, const Gnum sortsndnbr, Gnum * sortsndtab, Gnum sortrcvsiz, Gnum * sortrcvtab, MPI_Comm proccomm, const char * const typestr) { Gnum * flagloctax; /* Based flag array */ Gnum perxlocbas; /* Start value for local permutation segment */ Gnum perxlocnnd; /* After-end value for permutation segment */ Gnum perxlocnum; int procglbnbr; /* Number of processes in communicator */ int proclocnum; /* Local process number */ int procnum; int cheklocval; int chekglbval; MPI_Comm_size (proccomm, &procglbnbr); MPI_Comm_rank (proccomm, &proclocnum); perxlocbas = DATASCAN (vnodglbnbr, procglbnbr, proclocnum) + baseval; /* Spread evenly inverse permutation values for checking */ perxlocnnd = DATASCAN (vnodglbnbr, procglbnbr, proclocnum + 1) + baseval; memSet (flagloctab, ~0, (perxlocnnd - perxlocbas) * sizeof (Gnum)); /* Initialize permutation flag array */ flagloctax = flagloctab - perxlocbas; cheklocval = 0; /* Assume everything will be all right */ for (procnum = 0; procnum < procglbnbr; procnum ++) { /* For all sender processing elements */ MPI_Request requtab[2]; MPI_Status statdat; Gnum perxsndbas; /* Start inverse permutation value for segment */ Gnum perxsndnnd; /* After-end inverse permutation value for segment */ int procsndnum; /* Process to send to during this pass */ Gnum sortsndbas; /* Start index for sending segment */ Gnum sortsndnnd; /* After-end index for sending segment */ int sortrcvnbr; /* MPI count of received message; hence (int) */ int sortrcvnum; procsndnum = (proclocnum + procnum) % procglbnbr; /* Destination process for this round */ perxsndbas = DATASCAN (vnodglbnbr, procglbnbr, procsndnum) + baseval; perxsndnnd = DATASCAN (vnodglbnbr, procglbnbr, procsndnum + 1) + baseval; if ((sortsndnbr == 0) || /* If send array is empty */ (sortsndtab[0] >= perxsndnnd) || /* Or its contents are out of bounds */ (sortsndtab[sortsndnbr - 2] < perxsndbas)) { sortsndbas = /* Noting to send */ sortsndnnd = 0; } else { /* Must find out what to send */ Gnum sortsndmin; /* Minimum index for sending segment */ for (sortsndmin = 0, sortsndbas = sortsndnbr; /* Find start index by dichotomy */ sortsndbas - sortsndmin > 2; ) { /* Dichotomy on array of number pairs; hence "2" */ Gnum sortsndmed; sortsndmed = ((sortsndmin + sortsndbas) / 4) * 2; /* TRICK: Allow for dichotomy on multiples of 2 (zero last bit) */ if (sortsndtab[sortsndmed] < perxsndbas) sortsndmin = sortsndmed; else sortsndbas = sortsndmed; } while ((sortsndbas > 0) && (sortsndtab[sortsndbas - 2] >= perxsndbas)) /* Search for first instance */ sortsndbas -= 2; for (sortsndmin = sortsndbas, sortsndnnd = sortsndnbr; /* Find after-end index by dichotomy */ sortsndnnd - sortsndmin > 2; ) { /* Dichotomy on array of number pairs; hence "2" */ Gnum sortsndmed; sortsndmed = ((sortsndmin + sortsndnnd + 2) / 4) * 2; /* TRICK: Allow for dichotomy on multiples of 2 (zero last bit) */ if (sortsndtab[sortsndmed] < perxsndnnd) sortsndmin = sortsndmed; else sortsndnnd = sortsndmed; } while ((sortsndnnd < sortsndnbr) && (sortsndtab[sortsndnnd] < perxsndnnd)) /* Search for last instance */ sortsndnnd += 2; } if (MPI_Irecv (sortrcvtab, (int) sortrcvsiz, GNUM_MPI, MPI_ANY_SOURCE, procnum, proccomm, &requtab[1]) != MPI_SUCCESS) { errorPrint ("dorderCheck2: communication error (1)"); return (1); } if (MPI_Isend (sortsndtab + sortsndbas, (int) (sortsndnnd - sortsndbas), GNUM_MPI, procsndnum, procnum, proccomm, &requtab[0]) != MPI_SUCCESS) { errorPrint ("dorderCheck2: communication error (2)"); return (1); } if (MPI_Wait (&requtab[1], &statdat) != MPI_SUCCESS) { /* Wait for receive to complete before processing received array */ errorPrint ("dorderCheck2: communication error (3)"); return (1); } if (MPI_Get_count (&statdat, GNUM_MPI, &sortrcvnbr) != MPI_SUCCESS) { /* Wait for receive to complete before processing received array */ errorPrint ("dorderCheck2: communication error (4)"); return (1); } for (sortrcvnum = 0; sortrcvnum < sortrcvnbr; ) { Gnum perxlocnum; perxlocnum = sortrcvtab[sortrcvnum ++]; #ifdef SCOTCH_DEBUG_DORDER2 if ((perxlocnum < perxlocbas) || (perxlocnum >= perxlocnnd)) { errorPrint ("dorderCheck2: internal error"); cheklocval = 1; /* We can exit nicely */ goto abort; } #endif /* SCOTCH_DEBUG_DORDER2 */ if (flagloctax[perxlocnum] != ~0) { /* If permutation index already assigned */ errorPrint ("dorderCheck2: duplicate global %s permutation index", typestr); cheklocval = 1; /* We can exit nicely */ goto abort; } flagloctax[perxlocnum] = sortrcvtab[sortrcvnum ++]; /* Record index in inverse permutation */ } if (MPI_Wait (&requtab[0], &statdat) != MPI_SUCCESS) { /* Wait for send to complete before next pass */ errorPrint ("dorderCheck2: communication error (5)"); return (1); } } for (perxlocnum = perxlocbas; perxlocnum < perxlocnnd; perxlocnum ++) { /* For all indices in local permutation array */ if (flagloctax[perxlocnum] == ~0) { /* Unused index */ errorPrint ("dorderCheck2: missing global %s permutation index", typestr); cheklocval = 1; /* We can exit nicely */ goto abort; } } abort: /* Check whether all of the above succeeded */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("dorderCheck2: communication error (6)"); return (1); } return (chekglbval); } /* This routine checks the consistency ** of the given distributed ordering. ** It returns: ** - 0 : if ordering data is consistent. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (3, 1) int dorderCheck ( const Dorder * const dordptr) { Gnum baseval; Gnum cblklocnbr; /* Local number of column blocks in ordering */ Gnum vnodlocnbr; /* Local number of node vertices in ordering */ Gnum vnodglbnbr; /* Global number of node vertices in ordering */ Gnum vnodglbmax; /* Maximum number of local node vertices */ DorderLink * linklocptr; /* Pointer to traverse local column blocks */ Gnum * flagloctab; /* Inverse permutation array used as flag array */ Gnum * sortrcvtab; /* Receive array for inverse permutation pairs */ Gnum * sortsndtab; /* Send array for inverse permutation pairs */ Gnum sortsndnbr; /* Number of data in local send array */ Gnum sortsndnum; Gnum perircvnbr; /* Size of local inverse permutation segment */ Gnum perircvbas; /* Start value for local inverse permutation segment */ int procglbnbr; /* Number of processes in communicator */ int proclocnum; /* Local process number */ int cheklocval; int chekglbval; Gnum reduloctab[4]; Gnum reduglbtab[4]; for (linklocptr = dordptr->linkdat.nextptr, vnodlocnbr = 0; /* Get local number of nodes */ linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * cblklocptr; cblklocptr = (DorderCblk *) linklocptr; if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) { Gnum vnodloctmp; vnodloctmp = cblklocptr->data.leaf.vnodlocnbr; if (vnodloctmp < 0) { errorPrint ("dorderCheck: invalid column block size"); vnodlocnbr = GNUMMAX; /* Set abort maximum value */ break; } vnodlocnbr += vnodloctmp; /* Accumulate local number of vertices in leaves */ } } MPI_Comm_size (dordptr->proccomm, &procglbnbr); MPI_Comm_rank (dordptr->proccomm, &proclocnum); if (proclocnum != dordptr->proclocnum) { errorPrint ("dorderCheck: inconsistent global ordering data (1)"); vnodlocnbr = GNUMMAX; /* Set abort maximum value */ } reduloctab[0] = vnodlocnbr; /* Get maximum of send buffer sizes */ reduloctab[1] = dordptr->baseval; /* Check consistency of baseval */ reduloctab[2] = - dordptr->baseval; reduloctab[3] = vnodlocnbr; /* Accumulate number of node vertices */ if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 3, 1, dordptr->proccomm) != 0) { errorPrint ("dorderCheck: communication error (1)"); return (1); } vnodglbmax = reduglbtab[0]; vnodglbnbr = reduglbtab[3]; if (vnodglbmax == GNUMMAX) /* If need to abort */ return (1); cheklocval = 0; /* Assume everything will be all right */ flagloctab = NULL; if ((vnodglbnbr != dordptr->vnodglbnbr) || /* If inconsistent vnodglbnbr */ (reduglbtab[2] != - reduglbtab[1])) { /* Or if inconsistent baseval */ errorPrint ("dorderCheck: inconsistent global ordering data (2)"); cheklocval = 1; goto abort1; } perircvbas = DATASCAN (vnodglbnbr, procglbnbr, proclocnum); /* Spread evenly inverse permutation values for checking */ perircvnbr = DATASCAN (vnodglbnbr, procglbnbr, proclocnum + 1) - perircvbas; if (memAllocGroup ((void **) (void *) &flagloctab, (size_t) (perircvnbr * sizeof (Gnum)), &sortsndtab, (size_t) (vnodlocnbr * sizeof (Gnum) * 2), &sortrcvtab, (size_t) (vnodglbmax * sizeof (Gnum) * 2), NULL) == NULL) { errorPrint ("dorderCheck: out of memory"); cheklocval = 1; goto abort1; } baseval = dordptr->baseval; for (linklocptr = dordptr->linkdat.nextptr, sortsndnbr = 0, cblklocnbr = 0; /* Fill send sort array */ linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * cblklocptr; /* Pointer to current local column block */ cblklocptr = (DorderCblk *) linklocptr; if (cblklocptr->cblknum.proclocnum == proclocnum) /* Count locally-rooted column blocks */ cblklocnbr ++; if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) { Gnum ordelocval; Gnum nodeloctmp; Gnum vnodloctmp; Gnum vnodlocnum; nodeloctmp = cblklocptr->data.leaf.nodelocnbr; vnodloctmp = cblklocptr->data.leaf.vnodlocnbr; ordelocval = cblklocptr->data.leaf.ordelocval + baseval; /* Base ordering value */ for (vnodlocnum = 0; vnodlocnum < vnodloctmp; vnodlocnum ++) { Gnum perilocval; perilocval = cblklocptr->data.leaf.periloctab[vnodlocnum]; if ((perilocval < baseval) || /* If based inverse permutation value is out of bounds */ (perilocval >= (vnodglbnbr + baseval))) { errorPrint ("dorderCheck: invalid inverse permutation value"); cheklocval = 1; goto abort1; } #ifdef SCOTCH_DEBUG_DORDER2 if (sortsndnbr >= (2 * vnodlocnbr)) { errorPrint ("dorderCheck: internal error (1)"); cheklocval = 1; /* We can exit nicely */ goto abort1; } #endif /* SCOTCH_DEBUG_DORDER2 */ sortsndtab[sortsndnbr ++] = ordelocval ++; sortsndtab[sortsndnbr ++] = perilocval; } if (nodeloctmp != 0) { /* If leaf has centralized column block node */ Gnum vnodleanbr; /* Number of local node vertices in leaf */ const DorderNode * nodelocptr; const DorderNode * nodeloctnd; cblklocnbr += nodeloctmp; for (vnodleanbr = 0, nodelocptr = cblklocptr->data.leaf.nodeloctab, nodeloctnd = nodelocptr + cblklocptr->data.leaf.nodelocnbr; nodelocptr < nodeloctnd; nodelocptr ++) { /* For all local nodes */ if (nodelocptr->fathnum == -1) /* Count root only */ vnodleanbr += nodelocptr->vnodnbr; } if (vnodleanbr != cblklocptr->data.leaf.vnodlocnbr) { errorPrint ("dorderCheck: invalid number of node vertices in column block"); cheklocval = 1; goto abort1; } } } else if ((cblklocptr->typeval & DORDERCBLKNEDI) != 0) { if ((cblklocptr->data.nedi.cblkglbnbr < 0) || (cblklocptr->data.nedi.cblkglbnbr > 3)) { errorPrint ("dorderCheck: invalid number of descendent nodes"); cheklocval = 1; goto abort1; } } else if ((cblklocptr->typeval & DORDERCBLKDICO) == 0) { errorPrint ("dorderCheck: invalid column block type"); cheklocval = 1; goto abort1; } } #ifdef SCOTCH_DEBUG_DORDER2 if (sortsndnbr != (2 * vnodlocnbr)) { errorPrint ("dorderCheck: internal error (2)"); cheklocval = 1; /* We can exit nicely */ goto abort1; } #endif /* SCOTCH_DEBUG_DORDER2 */ if (cblklocnbr != dordptr->cblklocnbr) { errorPrint ("dorderCheck: invalid number of locally rooted column blocks"); cheklocval = 1; } abort1: /* Check whether all of the above succeeded */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderCheck: communication error (2)"); return (1); } if (chekglbval != 0) { if (flagloctab != NULL) memFree (flagloctab); /* Free group leader */ return (1); } intSort2asc1 (sortsndtab, sortsndnbr / 2); /* Sort permutation send array */ cheklocval = 1; /* Assume an error */ if (dorderCheck2 (baseval, vnodglbnbr, flagloctab, sortsndnbr, sortsndtab, vnodglbmax * 2, sortrcvtab, dordptr->proccomm, "inverse") != 0) goto abort2; for (sortsndnum = 0; sortsndnum < sortsndnbr; sortsndnum += 2) { /* Swap global indices in send array for permutation */ Gnum tempval; tempval = sortsndtab[sortsndnum]; sortsndtab[sortsndnum] = sortsndtab[sortsndnum + 1]; sortsndtab[sortsndnum + 1] = tempval; } intSort2asc1 (sortsndtab, sortsndnbr / 2); /* Sort permutation send array */ if (dorderCheck2 (baseval, vnodglbnbr, flagloctab, sortsndnbr, sortsndtab, vnodglbmax * 2, sortrcvtab, dordptr->proccomm, "direct") != 0) goto abort2; cheklocval = 0; /* Everything went all right */ abort2: memFree (flagloctab); /* Free group leader */ return (cheklocval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_gather.c000066400000000000000000000557151514310134000267070ustar00rootroot00000000000000/* Copyright 2007,2008,2013,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_gather.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.0 : from : 19 jul 2007 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 28 sep 2008 **/ /** to : 28 sep 2008 **/ /** # Version 6.0 : from : 10 oct 2013 **/ /** to : 10 oct 2013 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 26 nov 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_allreduce.h" #include "order.h" #include "dorder.h" #include "dorder_gather.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This function gathers the pieces of ** a distributed ordering to build a ** centralized ordering. ** It returns: ** - 0 : if ordering data are consistent. ** - !0 : on error. */ DGRAPHALLREDUCEMAXSUMOP (1, 1) int dorderGather ( const Dorder * restrict const dordptr, Order * restrict const cordptr) { Gnum leaflocnbr; int leafrcvnbr; DorderGatherLeaf * restrict leafrcvtab; int leafsndnbr; /* "int" since used as count in MPI_Gatherv */ DorderGatherLeaf * restrict leafsndtab; Gnum * restrict perircvtab; int perisndnbr; /* "int" since used as count in MPI_Gatherv */ Gnum * restrict perisndtab; int * restrict recvcnttab; int * restrict recvdsptab; const DorderLink * restrict linklocptr; Gnum vnodlocnbr; int procglbnbr; int protnum; Gnum reduloctab[2]; Gnum reduglbtab[2]; int cheklocval; int chekglbval; #ifdef SCOTCH_DEBUG_DORDER2 if (dorderCheck (dordptr) != 0) { errorPrint ("dorderGather: invalid distributed ordering"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ for (linklocptr = dordptr->linkdat.nextptr, leaflocnbr = vnodlocnbr = 0; /* For all nodes in local ordering structure */ linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) { /* If node is leaf */ leaflocnbr ++; /* One more leaf fragment */ vnodlocnbr += cblklocptr->data.leaf.vnodlocnbr; /* And more node vertices */ } #ifdef SCOTCH_DEBUG_DORDER2 else if ((cblklocptr->typeval != DORDERCBLKNEDI) && (cblklocptr->typeval != DORDERCBLKDICO)) { errorPrint ("dorderGather: invalid parameters"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ } MPI_Comm_size (dordptr->proccomm, &procglbnbr); if (cordptr != NULL) { Gnum vnodglbnbr; reduloctab[0] = (Gnum) dordptr->proclocnum; reduloctab[1] = 1; vnodglbnbr = 2 * procglbnbr; /* TRICK: use perircvtab array as gather array */ if (vnodglbnbr < (dordptr->vnodglbnbr - vnodlocnbr)) /* But should receive permutation indices too! */ vnodglbnbr = dordptr->vnodglbnbr - vnodlocnbr; /* TRICK: root will not receive from itself */ if (memAllocGroup ((void **) (void *) &recvcnttab, (size_t) (procglbnbr * sizeof (int)), &recvdsptab, (size_t) (procglbnbr * sizeof (int)), &perircvtab, (size_t) (vnodglbnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dorderGather: out of memory (1)"); reduloctab[0] = (Gnum) procglbnbr; /* Indicate memory error */ } } else { recvcnttab = NULL; /* Prepare possible freeing on error */ reduloctab[0] = reduloctab[1] = 0; } if (dgraphAllreduceMaxSum (reduloctab, reduglbtab, 1, 1, dordptr->proccomm) != 0) { errorPrint ("dorderGather: communication error (1)"); return (1); } if (reduglbtab[1] != 1) { errorPrint ("dorderGather: should have only one root"); reduglbtab[0] = (Gnum) procglbnbr; } if (reduglbtab[0] >= (Gnum) procglbnbr) { if (recvcnttab != NULL) memFree (recvcnttab); return (1); } protnum = (int) reduglbtab[0]; reduloctab[0] = leaflocnbr; reduloctab[1] = vnodlocnbr; if (MPI_Gather (reduloctab, 2, GNUM_MPI, perircvtab, 2, GNUM_MPI, protnum, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGather: communication error (2)"); return (1); } if (dordptr->proclocnum == protnum) { int procnum; perircvtab[2 * protnum] = 0; /* TRICK: root will not send to nor receive from itself to avoid unnecessary memory copy */ for (procnum = 0, leafrcvnbr = 0; procnum < procglbnbr; procnum ++) { recvdsptab[procnum] = leafrcvnbr; recvcnttab[procnum] = (int) (perircvtab[2 * procnum] * 2); /* TRICK: DorderGatherLeaf structures are made of 2 GNUM_MPI fields */ leafrcvnbr += recvcnttab[procnum]; } leafrcvnbr /= 2; /* TRICK: restore real number of leaf structures to be received */ leafsndnbr = 0; perisndnbr = 0; } else { leafrcvnbr = 0; leafsndnbr = (int) leaflocnbr; perisndnbr = (int) vnodlocnbr; } cheklocval = 0; if (memAllocGroup ((void **) (void *) &leafrcvtab, (size_t) (leafrcvnbr * sizeof (DorderGatherLeaf)), &leafsndtab, (size_t) (leafsndnbr * sizeof (DorderGatherLeaf)), &perisndtab, (size_t) (perisndnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dorderGather: out of memory (2)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGather: communication error (3)"); return (1); } #else /* SCOTCH_DEBUG_DORDER1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DORDER1 */ if (chekglbval != 0) { if (recvcnttab != NULL) memFree (recvcnttab); return (1); } if (dordptr->proclocnum == protnum) { /* If root process */ #ifdef SCOTCH_DEBUG_DORDER2 memSet (cordptr->peritab, ~0, dordptr->vnodglbnbr * sizeof (Gnum)); #endif /* SCOTCH_DEBUG_DORDER2 */ for (linklocptr = dordptr->linkdat.nextptr; linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { /* For all nodes */ const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) /* If tree node is leaf, copy fragment */ memCpy (cordptr->peritab + cblklocptr->data.leaf.ordelocval, cblklocptr->data.leaf.periloctab, cblklocptr->data.leaf.vnodlocnbr * sizeof (Gnum)); } } else { Gnum leaflocnum; Gnum vnodlocnum; for (linklocptr = dordptr->linkdat.nextptr, leaflocnum = vnodlocnum = 0; linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { /* For all nodes */ const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) { /* If node is leaf */ leafsndtab[leaflocnum].ordelocval = cblklocptr->data.leaf.ordelocval; /* Fill send structures with permutation data */ leafsndtab[leaflocnum].vnodlocnbr = cblklocptr->data.leaf.vnodlocnbr; memCpy (perisndtab + vnodlocnum, cblklocptr->data.leaf.periloctab, cblklocptr->data.leaf.vnodlocnbr * sizeof (Gnum)); vnodlocnum += cblklocptr->data.leaf.vnodlocnbr; leaflocnum ++; } } leafsndnbr *= 2; /* TRICK: DorderGatherLeaf structures are made of 2 GNUM_MPI fields */ } if (MPI_Gatherv (leafsndtab, leafsndnbr, GNUM_MPI, leafrcvtab, recvcnttab, recvdsptab, GNUM_MPI, protnum, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGather: communication error (4)"); return (1); } if (dordptr->proclocnum == protnum) { int vnodglbnbr; int procnum; perircvtab[2 * protnum + 1] = 0; /* TRICK: root will not send to nor receive from itself to avoid unnecessary memory copy */ for (procnum = 0, vnodglbnbr = 0; procnum < procglbnbr; procnum ++) { recvdsptab[procnum] = vnodglbnbr; recvcnttab[procnum] = (int) perircvtab[2 * procnum + 1]; vnodglbnbr += recvcnttab[procnum]; } #ifdef SCOTCH_DEBUG_DORDER2 if (((Gnum) vnodglbnbr + vnodlocnbr) != dordptr->vnodglbnbr) { errorPrint ("dorderGather: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ } if (MPI_Gatherv (perisndtab, perisndnbr, GNUM_MPI, perircvtab, recvcnttab, recvdsptab, GNUM_MPI, protnum, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGather: communication error (5)"); return (1); } if (dordptr->proclocnum == protnum) { /* If root process */ int leafglbnum; int vnodglbnum; for (leafglbnum = vnodglbnum = 0; leafglbnum < leafrcvnbr; leafglbnum ++) { memCpy (cordptr->peritab + leafrcvtab[leafglbnum].ordelocval, perircvtab + vnodglbnum, leafrcvtab[leafglbnum].vnodlocnbr * sizeof (Gnum)); vnodglbnum += leafrcvtab[leafglbnum].vnodlocnbr; } memFree (recvcnttab); /* Free group leader */ } memFree (leafrcvtab); /* Free group leader */ if (dorderGatherTree (dordptr, cordptr, protnum) != 0) /* Gather ordering tree */ return (1); #ifdef SCOTCH_DEBUG_DORDER2 if (dordptr->proclocnum == protnum) { if (orderCheck (cordptr) != 0) { errorPrint ("dorderGather: invalid centralized ordering"); return (1); } } #endif /* SCOTCH_DEBUG_DORDER2 */ return (0); } /* This function gathers the pieces of ** a distributed ordering tree to build a ** centralized ordering tree. ** It returns: ** - 0 : if ordering data are consistent. ** - !0 : on error. */ int dorderGatherTree ( const Dorder * restrict const dordptr, Order * restrict const cordptr, const int protnum) { int treelocnbr; /* "int" since used as way to fill count array in MPI_Allgather */ Gnum treeglbnbr; DorderGatherNode * restrict treercvtab; int treesndnbr; /* "int" since used as count in MPI_Gatherv */ DorderGatherNode * treesndtab; DorderGatherNode * restrict treesndptr; int * restrict treecnttab; int * restrict treedsptab; DorderGatherCblk * restrict cblkglbtab; const DorderLink * restrict linklocptr; int procglbnbr; int procnum; int cheklocval; int chekglbval; for (linklocptr = dordptr->linkdat.nextptr, treelocnbr = 0; /* Count only purely local nodes */ linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ #ifdef SCOTCH_DEBUG_DORDER2 if ((cblklocptr->cblknum.proclocnum != dordptr->proclocnum) && /* Local sub-nodes of non-locally rooted node not implemented */ ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) && (cblklocptr->data.leaf.nodelocnbr != 0)) { errorPrint ("dorderGatherTree: not implemented"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ if (cblklocptr->cblknum.proclocnum == dordptr->proclocnum) { treelocnbr ++; if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) treelocnbr += (int) cblklocptr->data.leaf.nodelocnbr; } } MPI_Comm_size (dordptr->proccomm, &procglbnbr); treesndnbr = (dordptr->proclocnum == protnum) ? 0 : treelocnbr; /* TRICK: root will not send nor receive */ cheklocval = 0; if (memAllocGroup ((void **) (void *) &treecnttab, (size_t) (procglbnbr * sizeof (int)), &treedsptab, (size_t) (procglbnbr * sizeof (int)), &treesndtab, (size_t) (treesndnbr * sizeof (DorderGatherNode)), NULL) == NULL) { errorPrint ("dorderGatherTree: out of memory (1)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGatherTree: communication error (1)"); return (1); } #else /* SCOTCH_DEBUG_DORDER1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DORDER1 */ if (chekglbval != 0) { if (treecnttab != NULL) memFree (treecnttab); return (1); } if (MPI_Allgather (&treelocnbr, 1, MPI_INT, treecnttab, 1, MPI_INT, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGatherTree: communication error (2)"); return (1); } for (procnum = 0, treeglbnbr = 0; procnum < procglbnbr; procnum ++) { /* Compute prefix sum of local numbers for global numbering */ treedsptab[procnum] = treeglbnbr; treeglbnbr += treecnttab[procnum]; } if (dordptr->proclocnum == protnum) { treecnttab[protnum] = 0; /* TRICK: root will not send to nor receive from itself to avoid unnecessary memory copy */ cordptr->treenbr = treeglbnbr; if (memAllocGroup ((void **) (void *) &treercvtab, (size_t) (treeglbnbr * sizeof (DorderGatherNode)), &cblkglbtab, (size_t) (treeglbnbr * sizeof (DorderGatherCblk)), NULL) == NULL) { errorPrint ("dorderGatherTree: out of memory (2)"); cheklocval = 1; } treesndptr = treercvtab + treedsptab[protnum]; /* TRICK: root process will build its column blocks in place as if received */ } else treesndptr = treesndtab; #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGather: communication error (3)"); return (1); } #else /* SCOTCH_DEBUG_DORDER1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DORDER1 */ if (chekglbval != 0) { memFree (treecnttab); return (1); } for (linklocptr = dordptr->linkdat.nextptr; linklocptr != &dordptr->linkdat; linklocptr = linklocptr->nextptr) { /* For all nodes */ const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if (cblklocptr->cblknum.proclocnum != dordptr->proclocnum) /* Skip non-local nodes */ continue; treesndptr->fathnum = treedsptab[cblklocptr->fathnum.proclocnum] + cblklocptr->fathnum.cblklocnum; /* If node is (part of) the root node */ treesndptr->typeval = (Gnum) ((cblklocptr->typeval == DORDERCBLKLEAF) ? ORDERCBLKLEAF : (cblklocptr->typeval & ~DORDERCBLKLEAF)); treesndptr->vnodnbr = cblklocptr->vnodglbnbr; treesndptr->cblknum = cblklocptr->cblkfthnum; treesndptr ++; if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) { /* If node is a distributed leaf */ Gnum cblkglbnum; Gnum cblkglbadj; const DorderNode * restrict nodelocptr; const DorderNode * restrict nodeloctnd; cblkglbnum = treedsptab[cblklocptr->cblknum.proclocnum] + cblklocptr->cblknum.cblklocnum; cblkglbadj = treedsptab[cblklocptr->cblknum.proclocnum] + cblklocptr->data.leaf.cblklocnum; for (nodelocptr = cblklocptr->data.leaf.nodeloctab, nodeloctnd = nodelocptr + cblklocptr->data.leaf.nodelocnbr; nodelocptr < nodeloctnd; nodelocptr ++) { /* Build nodes for all local nodes */ treesndptr->fathnum = (nodelocptr->fathnum == -1) ? cblkglbnum : (nodelocptr->fathnum + cblkglbadj); treesndptr->typeval = (Gnum) nodelocptr->typeval; treesndptr->vnodnbr = nodelocptr->vnodnbr; treesndptr->cblknum = nodelocptr->cblknum; treesndptr ++; } } #ifdef SCOTCH_DEBUG_DORDER2 else if ((cblklocptr->typeval != DORDERCBLKNEDI) && (cblklocptr->typeval != DORDERCBLKDICO)) { errorPrint ("dorderGatherTree: invalid column block type"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ } #ifdef SCOTCH_DEBUG_DORDER2 if (treesndptr != ((dordptr->proclocnum == protnum) ? (treercvtab + treedsptab[protnum]) : treesndtab) + treelocnbr) { errorPrint ("dorderGatherTree: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ if (dordptr->proclocnum == protnum) { /* If node is root, adjust displacements in terms of Gnum and not DorderGatherNode */ for (procnum = 0; procnum < procglbnbr; procnum ++) { treecnttab[procnum] *= DORDERGATHERNODESIZE; treedsptab[procnum] *= DORDERGATHERNODESIZE; } } if (MPI_Gatherv (treesndtab, treesndnbr * DORDERGATHERNODESIZE, GNUM_MPI, treercvtab, treecnttab, treedsptab, GNUM_MPI, protnum, dordptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderGatherTree: communication error (4)"); return (1); } if (dordptr->proclocnum == protnum) { Gnum treeglbnum; Gnum cblkglbnbr; memSet (cblkglbtab, 0, treeglbnbr * sizeof (DorderGatherCblk)); /* Set all son counters to zero and all array pointers to NULL */ for (treeglbnum = 1; treeglbnum < treeglbnbr; treeglbnum ++) { /* For all local and received tree nodes except root node */ Gnum cblkfthnum; cblkfthnum = treercvtab[treeglbnum].fathnum; #ifdef SCOTCH_DEBUG_DORDER2 if ((cblkfthnum < 0) || /* Father of non-root node cannot be -1 */ (cblkfthnum >= treeglbnum)) { /* Father should always have smaller global node number */ errorPrint ("dorderGatherTree: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ cblkglbtab[cblkfthnum].cblknbr ++; /* Add a son to its father */ } for (treeglbnum = 0, cblkglbnbr = treeglbnbr; treeglbnum < treeglbnbr; treeglbnum ++) { /* For all local and received tree nodes */ if (cblkglbtab[treeglbnum].cblknbr > 0) { #ifdef SCOTCH_DEBUG_DORDER2 if (cblkglbtab[treeglbnum].cblknbr < 2) { /* Descendent nodes should comprise at least two column block slots */ errorPrint ("dorderGatherTree: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ cblkglbnbr --; /* One new subblock means one more shared frontier, so one less column block than nodes */ if ((cblkglbtab[treeglbnum].cblktab = memAlloc (cblkglbtab[treeglbnum].cblknbr * sizeof (OrderCblk))) == NULL) { errorPrint ("dorderGather: out of memory (3)"); while (-- treeglbnum >= 0) { if (cblkglbtab[treeglbnum].cblktab != NULL) memFree (cblkglbtab[treeglbnum].cblktab); } memFree (treercvtab); memFree (treecnttab); return (1); } } } cordptr->cblknbr = cblkglbnbr; cordptr->rootdat.typeval = (int) treercvtab[0].typeval; /* Process root node of separator tree */ cordptr->rootdat.vnodnbr = treercvtab[0].vnodnbr; cordptr->rootdat.cblknbr = cblkglbtab[0].cblknbr; cordptr->rootdat.cblktab = cblkglbtab[0].cblktab; /* Link its sons array */ for (treeglbnum = 1; treeglbnum < treeglbnbr; treeglbnum ++) { /* For all nodes except the root */ Gnum cblkfthnum; OrderCblk * restrict cblksonptr; cblkfthnum = treercvtab[treeglbnum].cblknum; #ifdef SCOTCH_DEBUG_DORDER2 if ((cblkfthnum < 0) || (cblkfthnum >= cblkglbtab[treercvtab[treeglbnum].fathnum].cblknbr)) { errorPrint ("dorderGatherTree: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ cblksonptr = &cblkglbtab[treercvtab[treeglbnum].fathnum].cblktab[cblkfthnum]; /* Point to son's slot in father array */ cblksonptr->typeval = (int) treercvtab[treeglbnum].typeval; cblksonptr->vnodnbr = treercvtab[treeglbnum].vnodnbr; cblksonptr->cblknbr = cblkglbtab[treeglbnum].cblknbr; /* Link son column block array to column block structure */ cblksonptr->cblktab = cblkglbtab[treeglbnum].cblktab; } memFree (treercvtab); } memFree (treecnttab); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_gather.h000066400000000000000000000077751514310134000267170ustar00rootroot00000000000000/* Copyright 2004,2007,2010 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_gather.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the distributed ordering gathering **/ /** function. **/ /** **/ /** DATES : # Version 5.0 : from : 20 jul 2007 **/ /** to : 27 jul 2007 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Tag for MPI communications. +*/ #define DORDERGATHERNODESIZE (sizeof (DorderGatherNode) / sizeof (Gnum)) /* ** The type and structure definitions. */ /*+ This structure holds the tree definition. +*/ typedef struct DorderGatherLeaf_ { Gnum ordelocval; /*+ Starting index of inverse permutation +*/ Gnum vnodlocnbr; /*+ Number of node vertices in fragment +*/ } DorderGatherLeaf; /*+ This structure holds the separator tree structure. Because arrays of this structure is to be sent as a single contiguous array, all its fields must be of the same type. +*/ typedef struct DorderGatherNode_ { Gnum fathnum; /*+ Global number of father node +*/ Gnum typeval; /*+ Node type +*/ Gnum vnodnbr; /*+ Number of node vertices +*/ Gnum cblknum; /*+ Rank of node in father column block array +*/ } DorderGatherNode; /*+ This structure holds the separator tree structure. +*/ typedef struct DorderGatherCblk_ { Gnum cblknbr; /*+ Number of sons +*/ OrderCblk * cblktab; /*+ Pointer to sub-array +*/ } DorderGatherCblk; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_io.c000066400000000000000000000252231514310134000260330ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.0 : from : 27 apr 2006 **/ /** to : 13 jun 2008 **/ /** # Version 5.1 : from : 30 jul 2010 **/ /** to : 11 aug 2010 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 01 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "dgraph.h" #include "dorder.h" #include "order.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine saves a distributed ordering. ** The distributed graph structure is provided ** to access the distribution of vertex labels, ** whenever present. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dorderSave ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, FILE * restrict const stream) { Gnum * restrict peritab; Gnum * restrict permtab; Gnum * restrict vlbltax; int procglbnbr; int reduloctab[3]; int reduglbtab[3]; int protnum; if (stream != NULL) { /* If file provided */ reduloctab[0] = 1; /* This process is the root */ reduloctab[1] = ordeptr->proclocnum; /* Get its rank */ } else { reduloctab[0] = /* This process is not the root */ reduloctab[1] = 0; } reduloctab[2] = (grafptr->vlblloctax != NULL) ? 1 : 0; /* See if vertex labels provided */ if (MPI_Allreduce (reduloctab, reduglbtab, 3, MPI_INT, MPI_SUM, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (1)"); return (1); } if (reduglbtab[0] != 1) { errorPrint ("dorderSave: should have only one root"); return (1); } MPI_Comm_size (ordeptr->proccomm, &procglbnbr); if ((reduglbtab[2] != 0) && (reduglbtab[2] != procglbnbr)) { errorPrint ("dorderSave: inconsistent parameters"); return (1); } protnum = (int) reduglbtab[1]; /* Get rank of root process */ reduloctab[0] = 0; permtab = NULL; if (protnum == ordeptr->proclocnum) { Gnum vlblnbr; vlblnbr = (grafptr->vlblloctax != NULL) ? ordeptr->vnodglbnbr : 0; if (memAllocGroup ((void **) (void *) &permtab, (size_t) (ordeptr->vnodglbnbr * sizeof (Gnum)), &peritab, (size_t) (ordeptr->vnodglbnbr * sizeof (Gnum)), &vlbltax, (size_t) (vlblnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("dorderSave: out of memory"); #ifdef SCOTCH_DEBUG_DORDER1 reduloctab[0] = 1; #else /* SCOTCH_DEBUG_DORDER1 */ return (1); #endif /* SCOTCH_DEBUG_DORDER1 */ } } #ifdef SCOTCH_DEBUG_DORDER1 /* This communication cannot be covered by a useful one */ if (MPI_Bcast (&reduloctab[0], 1, MPI_INT, protnum, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (2)"); if (permtab != NULL) memFree (permtab); /* Free group leader */ return (1); } if (reduloctab[0] != 0) return (1); #endif /* SCOTCH_DEBUG_DORDER1 */ if (grafptr->vlblloctax != NULL) { if (commGatherv (grafptr->vlblloctax + grafptr->baseval, grafptr->vertlocnbr, GNUM_MPI, vlbltax, grafptr->proccnttab, grafptr->procdsptab, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (3)"); return (1); } } if (protnum == ordeptr->proclocnum) { Gnum vertnum; for (vertnum = 0; vertnum < ordeptr->vnodglbnbr; ) { /* Till all inverse permutation indices collected */ const DorderLink * linkptr; for (linkptr = ordeptr->linkdat.nextptr; linkptr != &ordeptr->linkdat; linkptr = linkptr->nextptr) { const DorderCblk * cblkptr; cblkptr = (DorderCblk *) linkptr; /* TRICK: FIRST */ if (((cblkptr->typeval & DORDERCBLKLEAF) != 0) && (cblkptr->data.leaf.ordelocval == vertnum) && /* If column block fragment starts at proper index */ (cblkptr->data.leaf.vnodlocnbr > 0)) { /* And is not an empty local block with relevant data elsewhere */ memCpy (peritab + vertnum, cblkptr->data.leaf.periloctab, cblkptr->data.leaf.vnodlocnbr * sizeof (Gnum)); vertnum += cblkptr->data.leaf.vnodlocnbr; break; } } if (linkptr == &ordeptr->linkdat) { /* If fragment not found locally */ MPI_Status statdat; int recvnbr; if (MPI_Bcast (&vertnum, 1, GNUM_MPI, protnum, ordeptr->proccomm) != MPI_SUCCESS) { /* Broadcast missing fragment */ errorPrint ("dorderSave: communication error (4)"); memFree (permtab); /* Free group leader */ return (1); } if (MPI_Recv (peritab + vertnum, ordeptr->vnodglbnbr - vertnum, GNUM_MPI, MPI_ANY_SOURCE, DORDERTAGPERI, ordeptr->proccomm, &statdat) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (5)"); return (1); } MPI_Get_count (&statdat, GNUM_MPI, &recvnbr); vertnum += recvnbr; } } vertnum = -1; /* Indicate termination */ if (MPI_Bcast (&vertnum, 1, GNUM_MPI, protnum, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (6)"); memFree (permtab); /* Free group leader */ return (1); } if (fprintf (stream, GNUMSTRING "\n", (Gnum) ordeptr->vnodglbnbr) == EOF) { errorPrint ("dorderSave: bad output (1)"); memFree (permtab); return (1); } orderPeri (peritab, ordeptr->baseval, ordeptr->vnodglbnbr, permtab, ordeptr->baseval); /* Compute direct permutation */ if (grafptr->vlblloctax != NULL) { /* If ordering has label array */ vlbltax -= ordeptr->baseval; /* Base label array */ for (vertnum = 0; vertnum < ordeptr->vnodglbnbr; vertnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) vlbltax[vertnum + ordeptr->baseval], (Gnum) vlbltax[permtab[vertnum]]) == EOF) { errorPrint ("dorderSave: bad output (2)"); memFree (permtab); return (1); } } } else { for (vertnum = 0; vertnum < ordeptr->vnodglbnbr; vertnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) (vertnum + ordeptr->baseval), (Gnum) permtab[vertnum]) == EOF) { errorPrint ("dorderSave: bad output (3)"); memFree (permtab); return (1); } } } memFree (permtab); /* Free group leader */ } else { while (1) { const DorderLink * linkptr; Gnum vertnum; if (MPI_Bcast (&vertnum, 1, GNUM_MPI, protnum, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (7)"); return (1); } if (vertnum == -1) /* If asked to quit */ break; /* Finish */ for (linkptr = ordeptr->linkdat.nextptr; linkptr != &ordeptr->linkdat; linkptr = linkptr->nextptr) { const DorderCblk * cblkptr; cblkptr = (DorderCblk *) linkptr; /* TRICK: FIRST */ if (((cblkptr->typeval & DORDERCBLKLEAF) != 0) && /* If matching column block fragment found */ (cblkptr->data.leaf.ordelocval == vertnum) && (cblkptr->data.leaf.vnodlocnbr > 0)) { /* And is not an empty local block with relevent data elsewhere */ if (MPI_Send (cblkptr->data.leaf.periloctab, cblkptr->data.leaf.vnodlocnbr, GNUM_MPI, protnum, DORDERTAGPERI, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSave: communication error (8)"); return (1); } break; } } } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_io_block.c000066400000000000000000000116341514310134000272060ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_io_block.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.0 : from : 26 may 2008 **/ /** to : 26 may 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "order.h" #include "dorder.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine saves a distributed ordering on ** a combined block ordering format. ** The distributed graph structure is provided ** to access the distribution of vertex labels, ** whenever present. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int dorderSaveBlock2 ( const Order * const cordptr, const Gnum * const vlbltab, FILE * const stream) { Gnum vertnum; Gnum * restrict rangtab; Gnum cblknum; int o; if ((rangtab = memAlloc ((cordptr->vnodnbr + 1) * sizeof (Gnum))) == NULL) { errorPrint ("dorderSaveBlock2: out of memory"); return (1); } orderRang (cordptr, rangtab); if (fprintf (stream, "0\n" GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) cordptr->cblknbr, (Gnum) cordptr->vnodnbr) < 0) { errorPrint ("dorderSaveBlock2: bad output (1)"); return (1); } for (cblknum = 0, o = 1; (o == 1) && (cblknum < cordptr->cblknbr); cblknum ++) { /* Save column-block range array */ o = intSave (stream, rangtab[cblknum]); putc (((cblknum & 7) == 7) ? '\n' : '\t', stream); } o = intSave (stream, rangtab[cblknum]); putc ('\n', stream); orderPeri (cordptr->peritab, cordptr->baseval, cordptr->vnodnbr, rangtab, cordptr->baseval); /* TRICK: re-use rangtab as permtab */ for (vertnum = 0; (o == 1) && (vertnum < (cordptr->vnodnbr - 1)); vertnum ++) { /* Save direct permutation */ o = intSave (stream, rangtab[vertnum]); putc (((vertnum & 7) == 7) ? '\n' : '\t', stream); } o = intSave (stream, rangtab[vertnum]); putc ('\n', stream); if (o != 1) errorPrint ("dorderSaveBlock2: bad output (2)"); return (1 - o); } int dorderSaveBlock ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, FILE * restrict const stream) { return (dorderSaveTree2 (ordeptr, grafptr, stream, dorderSaveBlock2)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_io_tree.c000066400000000000000000000172201514310134000270500ustar00rootroot00000000000000/* Copyright 2007,2010,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_io_tree.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.0 : from : 26 jul 2007 **/ /** to : 26 jul 2007 **/ /** # Version 5.1 : from : 30 jul 2010 **/ /** to : 30 jul 2010 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 11 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "dgraph.h" #include "order.h" #include "dorder.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine saves a distributed ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dorderSaveTree2 ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, FILE * restrict const stream, int (* funcptr) (const Order * restrict const, const Gnum * restrict const, FILE * restrict const)) { Order corddat; /* Centralized ordering for tree structure */ Gnum * restrict vlbltab; int procglbnbr; int protnum; int reduloctab[3]; int reduglbtab[3]; int cheklocval; int chekglbval; if (stream != NULL) { /* If file provided */ reduloctab[0] = 1; /* This process is the root */ reduloctab[1] = ordeptr->proclocnum; /* Get its rank */ } else { reduloctab[0] = /* This process is not the root */ reduloctab[1] = 0; } reduloctab[2] = (grafptr->vlblloctax != NULL) ? 1 : 0; /* See if vertex labels provided */ if (MPI_Allreduce (reduloctab, reduglbtab, 3, MPI_INT, MPI_SUM, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSaveTree2: communication error (1)"); return (1); } if (reduglbtab[0] != 1) { errorPrint ("dorderSaveTree2: should have only one root"); return (1); } MPI_Comm_size (ordeptr->proccomm, &procglbnbr); if ((reduglbtab[2] != 0) && (reduglbtab[2] != procglbnbr)) { errorPrint ("dorderSaveTree2: inconsistent parameters"); return (1); } protnum = (int) reduglbtab[1]; /* Get rank of root process */ cheklocval = 0; vlbltab = NULL; if (reduglbtab[2] != 0) { if (protnum == ordeptr->proclocnum) if ((vlbltab = memAlloc (ordeptr->vnodglbnbr * sizeof (Gnum))) == NULL) { errorPrint ("dorderSaveTree2: out of memory"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Bcast (&cheklocval, 1, MPI_INT, protnum, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSaveTree2: communication error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER1 */ if (cheklocval != 0) return (1); if (commGatherv (grafptr->vlblloctax + grafptr->baseval, grafptr->vertlocnbr, GNUM_MPI, vlbltab, grafptr->proccnttab, grafptr->procdsptab, GNUM_MPI, protnum, grafptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSaveTree2: communication error (3)"); return (1); } } if (protnum == ordeptr->proclocnum) cheklocval = orderInit (&corddat, ordeptr->baseval, ordeptr->vnodglbnbr, NULL); #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Bcast (&cheklocval, 1, MPI_INT, protnum, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSaveTree2: communication error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER1 */ if (cheklocval != 0) return (1); if (protnum == ordeptr->proclocnum) { cheklocval = dorderGather (ordeptr, &corddat); /* Need inverse permutation too */ if (cheklocval == 0) cheklocval = funcptr (&corddat, vlbltab, stream); orderExit (&corddat); } else cheklocval = dorderGather (ordeptr, NULL); if (vlbltab != NULL) memFree (vlbltab); #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderSaveTree2: communication error (3)"); return (1); } #else /* SCOTCH_DEBUG_DORDER1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_DORDER1 */ return (chekglbval); } /* This routine saves the separator tree ** data of the given distributed ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dorderSaveTree ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, FILE * restrict const stream) { return (dorderSaveTree2 (ordeptr, grafptr, stream, orderSaveTree)); } /* This routine saves the column block ** mapping data of the given distributed ** ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int dorderSaveMap ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, FILE * restrict const stream) { return (dorderSaveTree2 (ordeptr, grafptr, stream, orderSaveMap)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_perm.c000066400000000000000000000250541514310134000263710ustar00rootroot00000000000000/* Copyright 2007,2008,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_gather.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.0 : from : 13 oct 2007 **/ /** to : 21 oct 2007 **/ /** # Version 5.1 : from : 26 sep 2008 **/ /** to : 26 sep 2008 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 17 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "order.h" #include "dorder.h" #include "dorder_perm.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This function builds a distributed direct ** permutation from the information stored ** in the distributed ordering structure. ** It returns: ** - 0 : if the distributed permutation could be computed. ** - !0 : on error. */ int dorderPerm ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, Gnum * restrict const permloctab) { Gnum * restrict permloctax; int * restrict sendcnttab; int * restrict senddsptab; int * restrict recvcnttab; int * restrict recvdsptab; DorderPermSort * restrict sortsndtab; DorderPermSort * restrict sortrcvtab; const DorderLink * restrict linklocptr; Gnum vnodlocnbr; Gnum vnodlocnum; int vnodrcvnbr; int vnodsndnbr; int procnum; Gnum reduloctab[2]; Gnum reduglbtab[2]; for (linklocptr = ordeptr->linkdat.nextptr, vnodlocnbr = 0; /* For all nodes in local ordering structure */ linklocptr != &ordeptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) /* If node is leaf */ vnodlocnbr += cblklocptr->data.leaf.vnodlocnbr; /* And more node vertices */ #ifdef SCOTCH_DEBUG_DORDER2 else if ((cblklocptr->typeval != DORDERCBLKNEDI) && (cblklocptr->typeval != DORDERCBLKDICO)) { errorPrint ("dorderPerm: invalid parameters (1)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ } reduloctab[0] = vnodlocnbr; reduloctab[1] = 0; if (memAllocGroup ((void **) (void *) &senddsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &sendcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), &recvdsptab, (size_t) (grafptr->procglbnbr * sizeof (int)), &recvcnttab, (size_t) (grafptr->procglbnbr * sizeof (int)), &sortsndtab, (size_t) ((vnodlocnbr + 1) * sizeof (DorderPermSort)), /* "+1" for end marker */ &sortrcvtab, (size_t) (grafptr->vertlocnbr * sizeof (DorderPermSort)), NULL) == NULL) { errorPrint ("dorderPerm: out of memory"); reduloctab[1] = 1; } if (MPI_Allreduce (reduloctab, reduglbtab, 2, GNUM_MPI, MPI_SUM, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderPerm: communication error (1)"); reduglbtab[1] = 1; } if (reduglbtab[1] != 0) { if (senddsptab != NULL) memFree (senddsptab); /* Free group leader */ return (1); } if (reduglbtab[0] == 0) { /* If ordering structure is empty */ Gnum ordelocval; /* Based permutation start index */ memFree (senddsptab); /* Free group leader */ for (vnodlocnum = 0, ordelocval = grafptr->procvrttab[grafptr->proclocnum]; /* Build identity permutation */ vnodlocnum < grafptr->vertlocnbr; vnodlocnum ++) permloctab[vnodlocnum] = ordelocval ++; return (0); } if (reduglbtab[0] != grafptr->vertglbnbr) { errorPrint ("dorderPerm: invalid parameters (2)"); memFree (senddsptab); /* Free group leader */ return (1); } for (linklocptr = ordeptr->linkdat.nextptr, vnodlocnum = 0; /* For all nodes in local ordering structure */ linklocptr != &ordeptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if ((cblklocptr->typeval & DORDERCBLKLEAF) != 0) { /* If node is leaf */ Gnum leaflocnbr; Gnum leaflocnum; Gnum ordelocval; /* Based permutation start index */ for (leaflocnum = 0, leaflocnbr = cblklocptr->data.leaf.vnodlocnbr, ordelocval = cblklocptr->data.leaf.ordelocval + ordeptr->baseval; leaflocnum < leaflocnbr; leaflocnum ++, vnodlocnum ++) { sortsndtab[vnodlocnum].vertnum = cblklocptr->data.leaf.periloctab[leaflocnum]; sortsndtab[vnodlocnum].permnum = ordelocval + leaflocnum; #ifdef SCOTCH_DEBUG_DORDER2 if ((sortsndtab[vnodlocnum].vertnum < ordeptr->baseval) || (sortsndtab[vnodlocnum].vertnum > (ordeptr->baseval + ordeptr->vnodglbnbr)) || (sortsndtab[vnodlocnum].permnum < ordeptr->baseval) || (sortsndtab[vnodlocnum].permnum > (ordeptr->baseval + ordeptr->vnodglbnbr))) { errorPrint ("dorderPerm: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ } } } sortsndtab[vnodlocnbr].vertnum = /* Set end marker */ sortsndtab[vnodlocnbr].permnum = GNUMMAX; intSort2asc1 (sortsndtab, vnodlocnbr); /* Sort permutation array by original vertex numbers, without marker */ for (vnodlocnum = 0, procnum = 0; procnum < grafptr->procglbnbr; ) { Gnum vnodsndnbr; Gnum procdspval; vnodsndnbr = 0; procdspval = grafptr->procdsptab[procnum + 1]; while (sortsndtab[vnodlocnum].vertnum < procdspval) { vnodsndnbr ++; vnodlocnum ++; #ifdef SCOTCH_DEBUG_DORDER2 if (vnodlocnum > vnodlocnbr) { /* If beyond regular indices plus end marker */ errorPrint ("dorderPerm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ } sendcnttab[procnum ++] = (int) (vnodsndnbr * 2); /* Communication array for MPI, so (int), and "*2" because a Sort is 2 Gnums */ } #ifdef SCOTCH_DEBUG_DORDER2 if (vnodlocnum != vnodlocnbr) { errorPrint ("dorderPerm: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ if (MPI_Alltoall (sendcnttab, 1, MPI_INT, recvcnttab, 1, MPI_INT, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderPerm: communication error (2)"); return (1); } for (procnum = 0, vnodrcvnbr = vnodsndnbr = 0; procnum < grafptr->procglbnbr; procnum ++) { /* Accumulate send and receive indices */ recvdsptab[procnum] = vnodrcvnbr; vnodrcvnbr += recvcnttab[procnum]; /* Accumulate "*2" values as counts */ senddsptab[procnum] = vnodsndnbr; vnodsndnbr += sendcnttab[procnum]; } if (MPI_Alltoallv (sortsndtab, sendcnttab, senddsptab, GNUM_MPI, sortrcvtab, recvcnttab, recvdsptab, GNUM_MPI, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderPerm: communication error (3)"); return (1); } #ifdef SCOTCH_DEBUG_DORDER2 memSet (permloctab, ~0, grafptr->vertlocnbr * sizeof (Gnum)); #endif /* SCOTCH_DEBUG_DORDER2 */ permloctax = permloctab - grafptr->procdsptab[grafptr->proclocnum]; /* Base local array through global indices */ for (vnodlocnum = 0; vnodlocnum < grafptr->vertlocnbr; vnodlocnum ++) { #ifdef SCOTCH_DEBUG_DORDER2 if (permloctax[sortrcvtab[vnodlocnum].vertnum] != ~0) { errorPrint ("dorderPerm: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ permloctax[sortrcvtab[vnodlocnum].vertnum] = sortrcvtab[vnodlocnum].permnum; } #ifdef SCOTCH_DEBUG_DORDER2 for (vnodlocnum = 0; vnodlocnum < grafptr->vertlocnbr; vnodlocnum ++) { if (permloctab[vnodlocnum] == ~0) { errorPrint ("dorderPerm: internal error (5)"); return (1); } } #endif /* SCOTCH_DEBUG_DORDER2 */ memFree (senddsptab); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_perm.h000066400000000000000000000054661514310134000264030ustar00rootroot00000000000000/* Copyright 2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /**********************************************************/ /* */ /* NAME : dorder_perm.h */ /* */ /* AUTHOR : Francois PELLEGRINI */ /* */ /* FUNCTION : These lines are the data declarations */ /* for the distributed source graph */ /* folding routines. */ /* */ /* # Version 5.0 : from : 14 oct 2007 */ /* to : 14 oct 2007 */ /* */ /**********************************************************/ /* ** The type and structure definitions. */ /*+ The sort structure, used to sort permuted vertices. Field vertnum is first because of intSort2asc1. +*/ typedef struct DorderPermSort_ { Gnum vertnum; /*+ Vertex number: FIRST +*/ Gnum permnum; /*+ Direct permutation index +*/ } DorderPermSort; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dorder_tree_dist.c000066400000000000000000000333701514310134000274100ustar00rootroot00000000000000/* Copyright 2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dorder_tree_dist.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles distributed **/ /** orderings. **/ /** **/ /** DATES : # Version 5.1 : from : 28 nov 2007 **/ /** to : 09 may 2008 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dorder.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This function returns to all processes the ** number of distributed leaf column blocks ** possessed by the ordering. ** It returns: ** - >=0 : number of distributed column blocks. ** - <0 : on error. */ Gnum dorderCblkDist ( const Dorder * restrict const ordeptr) { const DorderLink * restrict linklocptr; Gnum dblklocnbr; /* Local number of locally-rooted distributed column blocks */ Gnum dblkglbnbr; for (linklocptr = ordeptr->linkdat.nextptr, dblklocnbr = 0; /* For all nodes in local ordering structure */ linklocptr != &ordeptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if (cblklocptr->cblknum.proclocnum == ordeptr->proclocnum) dblklocnbr ++; } if (MPI_Allreduce (&dblklocnbr, &dblkglbnbr, 1, GNUM_MPI, MPI_SUM, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderCblkDist: communication error"); return ((Gnum) -1); } return (dblkglbnbr); } /* This function returns on all of the procesors the ** distributed part of the distributed structure of ** the given distributed ordering. The two array ** pointers which must be passed should both point to ** arrays of size dorderCblkDist(). ** It returns: ** - 0 : if the distributed tree structure could be computed. ** - !0 : on error. */ int dorderTreeDist ( const Dorder * restrict const ordeptr, const Dgraph * restrict const grafptr, Gnum * restrict const treeglbtab, Gnum * restrict const sizeglbtab) { const DorderLink * restrict linklocptr; Gnum * restrict dataloctab; Gnum * restrict dataglbtab; Gnum dblklocnum; Gnum dblklocnbr; /* Local number of distributed column blocks */ Gnum dblkglbnbr; /* Global number of distributed column blocks */ Gnum dblkglbnum; Gnum dblkglbtmp; int * restrict dblkcnttab; int * restrict dblkdsptab; int * restrict cblkdsptab; Gnum cblkglbtmp; Gnum * restrict srt1glbtab; Gnum * restrict srt2glbtab; int procglbnbr; int procnum; Gnum reduloctab[3]; Gnum reduglbtab[3]; for (linklocptr = ordeptr->linkdat.nextptr, dblklocnbr = 0; /* For all nodes in local ordering structure */ linklocptr != &ordeptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if (cblklocptr->cblknum.proclocnum == ordeptr->proclocnum) { #ifdef SCOTCH_DEBUG_DORDER2 Gnum cblklocnum; cblklocnum = cblklocptr->cblknum.cblklocnum; if ((cblklocnum < 0) || (cblklocnum >= ordeptr->cblklocnbr)) { errorPrint ("dorderTreeDist: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ dblklocnbr ++; } } if (MPI_Allreduce (&dblklocnbr, &dblkglbnbr, 1, GNUM_MPI, MPI_SUM, ordeptr->proccomm) != MPI_SUCCESS) { /* Get overall number of distributed blocks */ errorPrint ("dorderTreeDist: communication error (1)"); return (1); } MPI_Comm_size (ordeptr->proccomm, &procglbnbr); reduloctab[0] = reduloctab[1] = reduloctab[2] = 0; if (memAllocGroup ((void **) (void *) &dblkcnttab, (size_t) ( procglbnbr * sizeof (int)), &dblkdsptab, (size_t) ( procglbnbr * sizeof (int)), /* TRICK: cblkdsptab used as secondary array after cblkcnttab */ &cblkdsptab, (size_t) ((procglbnbr + 1) * sizeof (int)), /* TRICK: have an array at least of size 2 */ &dataloctab, (size_t) ( dblklocnbr * 4 * sizeof (Gnum)), &dataglbtab, (size_t) ( dblkglbnbr * 4 * sizeof (Gnum)), &srt1glbtab, (size_t) ( dblkglbnbr * 2 * sizeof (Gnum)), /* TRICK: one more slot for root node */ &srt2glbtab, (size_t) ( dblkglbnbr * 2 * sizeof (Gnum)), NULL) == NULL) { /* TRICK: one more slot for root node */ errorPrint ("dorderTreeDist: out of memory"); reduloctab[0] = 1; /* Memory error */ } else { if (treeglbtab != NULL) reduloctab[1] = 1; /* Compute the "or" of any array being non-null */ if (sizeglbtab != NULL) { reduloctab[2] = reduloctab[1]; /* Compute the "and" of any array being non-null */ reduloctab[1] = 1; } } #ifdef SCOTCH_DEBUG_DORDER1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (reduloctab, reduglbtab, 3, GNUM_MPI, MPI_SUM, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderTreeDist: communication error (1)"); reduglbtab[0] = /* Post-process error below */ reduglbtab[1] = /* Prevent Valgrind from yelling */ reduglbtab[2] = 1; } #else /* SCOTCH_DEBUG_DORDER1 */ reduglbtab[0] = reduloctab[0]; reduglbtab[1] = procglbnbr - 1 + reduloctab[1]; reduglbtab[2] = procglbnbr - 1 + reduloctab[2]; #endif /* SCOTCH_DEBUG_DORDER1 */ if (reduglbtab[1] != reduglbtab[2]) { /* If not both arrays provided on each of the candidate processors */ if (reduloctab[1] != reduloctab[2]) errorPrint ("dorderTreeDist: invalid parameters (1)"); reduglbtab[0] = 1; } if (reduglbtab[2] != procglbnbr) { errorPrint ("dorderTreeDist: invalid parameters (2)"); reduglbtab[0] = 1; } if (reduglbtab[0] != 0) { if (dblkcnttab != NULL) memFree (dblkcnttab); /* Free group leader */ return (1); } cblkdsptab[0] = (int) dblklocnbr; /* MPI only supports int as count type */ cblkdsptab[1] = (int) ordeptr->cblklocnbr; /* TRICK: cblkdsptab is at least of size 2 */ if (MPI_Allgather (cblkdsptab, 2, MPI_INT, dblkcnttab, 2, MPI_INT, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderTreeDist: communication error (2)"); return (1); } for (procnum = cblkglbtmp = 0; procnum < procglbnbr; procnum ++) { /* Accumulate un-based global start indices for all column blocks */ cblkdsptab[procnum] = cblkglbtmp; dblkcnttab[procnum] = dblkcnttab[2 * procnum] * 4; /* Four times for dataloctab */ cblkglbtmp += dblkcnttab[2 * procnum + 1]; } for (procnum = dblkglbtmp = 0; procnum < procglbnbr; procnum ++) { /* Accumulate un-based global start indices for distributed column blocks */ dblkdsptab[procnum] = dblkglbtmp; dblkglbtmp += dblkcnttab[procnum]; } for (linklocptr = ordeptr->linkdat.nextptr, dblklocnum = 0; /* For all nodes in local ordering structure */ linklocptr != &ordeptr->linkdat; linklocptr = linklocptr->nextptr) { const DorderCblk * restrict cblklocptr; cblklocptr = (DorderCblk *) linklocptr; /* TRICK: FIRST */ if (cblklocptr->cblknum.proclocnum == ordeptr->proclocnum) { /* If node is local */ dataloctab[4 * dblklocnum] = cblkdsptab[ordeptr->proclocnum] + cblklocptr->cblknum.cblklocnum; dataloctab[4 * dblklocnum + 1] = cblklocptr->ordeglbval; dataloctab[4 * dblklocnum + 2] = cblkdsptab[cblklocptr->fathnum.proclocnum] + cblklocptr->fathnum.cblklocnum; dataloctab[4 * dblklocnum + 3] = cblklocptr->vnodglbnbr; dblklocnum ++; } } if (MPI_Allgatherv (dataloctab, 4 * dblklocnbr, GNUM_MPI, dataglbtab, dblkcnttab, dblkdsptab, GNUM_MPI, ordeptr->proccomm) != MPI_SUCCESS) { errorPrint ("dorderTreeDist: communication error (3)"); return (1); } for (dblkglbnum = 0; dblkglbnum < dblkglbnbr; dblkglbnum ++) { srt1glbtab[2 * dblkglbnum] = dataglbtab[4 * dblkglbnum + 1]; srt1glbtab[2 * dblkglbnum + 1] = dataglbtab[4 * dblkglbnum]; } intSort2asc2 (srt1glbtab, dblkglbnbr); /* Sort nodes by ascending inverse start index to get permutation of column block indices */ for (dblkglbnum = 0; dblkglbnum < dblkglbnbr; dblkglbnum ++) { srt1glbtab[2 * dblkglbnum] = srt1glbtab[2 * dblkglbnum + 1]; srt1glbtab[2 * dblkglbnum + 1] = dblkglbnum; } intSort2asc2 (srt1glbtab, dblkglbnbr); /* Sort nodes by ascending column block index to match with the ones of dataglbtab */ for (dblkglbnum = 0; dblkglbnum < dblkglbnbr; dblkglbnum ++) { srt2glbtab[2 * dblkglbnum] = dataglbtab[4 * dblkglbnum + 2]; srt2glbtab[2 * dblkglbnum + 1] = dblkglbnum; } intSort2asc2 (srt2glbtab, dblkglbnbr); /* Sort father indices by ascending column block indices */ #ifdef SCOTCH_DEBUG_DORDER2 if (srt2glbtab[0] != -1) { /* If tree has no root */ errorPrint ("dorderTreeDist: internal error (2)"); memFree (dblkcnttab); /* Free group leader */ return (1); } if ((dblkglbnbr > 1) && (srt2glbtab[2] == -1)) { /* If tree has multiple roots */ errorPrint ("dorderTreeDist: internal error (3)"); memFree (dblkcnttab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ for (dblkglbnum = 1, dblkglbtmp = 0; dblkglbnum < dblkglbnbr; ) { /* Replace in block data the father column block indices by the new permuted indices */ if (srt2glbtab[2 * dblkglbnum] == srt1glbtab[2 * dblkglbtmp]) dataglbtab[4 * srt2glbtab[2 * (dblkglbnum ++) + 1] + 2] = srt1glbtab[2 * dblkglbtmp + 1]; else { #ifdef SCOTCH_DEBUG_DORDER2 if ((srt2glbtab[2 * dblkglbnum] < srt1glbtab[2 * dblkglbtmp]) || /* If column block index not found in table */ (dblkglbtmp >= (dblkglbnbr - 1))) { errorPrint ("dorderTreeDist: internal error (4)"); memFree (dblkcnttab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ dblkglbtmp ++; } } for (dblkglbnum = 0; dblkglbnum < dblkglbnbr; dblkglbnum ++) { srt2glbtab[2 * dblkglbnum] = dataglbtab[4 * dblkglbnum]; srt2glbtab[2 * dblkglbnum + 1] = dblkglbnum; } intSort2asc2 (srt2glbtab, dblkglbnbr); /* Sort father indices by ascending column block indices */ for (dblkglbnum = 0; dblkglbnum < dblkglbnbr; dblkglbnum ++) { #ifdef SCOTCH_DEBUG_DORDER2 if (srt1glbtab[2 * dblkglbnum] != srt2glbtab[2 * dblkglbnum]) { errorPrint ("dorderTreeDist: internal error (5)"); memFree (dblkcnttab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DORDER2 */ treeglbtab[srt1glbtab[2 * dblkglbnum + 1]] = dataglbtab[4 * srt2glbtab[2 * dblkglbnum + 1] + 2]; sizeglbtab[srt1glbtab[2 * dblkglbnum + 1]] = dataglbtab[4 * srt2glbtab[2 * dblkglbnum + 1] + 3]; } memFree (dblkcnttab); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/dummysizes.c000066400000000000000000000421401514310134000262730ustar00rootroot00000000000000/* Copyright 2004,2007-2010,2012,2014,2018,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dummysizes.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of the libScotch compilation job. **/ /** This small program processes files that **/ /** are in fact pattern header files for **/ /** the libScotch library, and replaces **/ /** symbolic sizes of the opaque libScotch **/ /** by the proper integer values according **/ /** to the machine on which it is run. **/ /** **/ /** DATES : # Version 3.4 : from : 22 oct 2001 **/ /** to : 22 nov 2001 **/ /** # Version 4.0 : from : 25 nov 2001 **/ /** to : 06 jan 2006 **/ /** # Version 5.0 : from : 26 apr 2006 **/ /** to : 03 apr 2008 **/ /** # Version 5.1 : from : 16 jun 2008 **/ /** to : 15 aug 2010 **/ /** # Version 6.0 : from : 01 dec 2012 **/ /** to : 26 oct 2019 **/ /** # Version 6.1 : from : 09 feb 2021 **/ /** to : 22 jun 2021 **/ /** # Version 7.0 : from : 25 aug 2019 **/ /** to : 13 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define CHARMAX 2048 /* Maximum line size */ #define SUBSMAX 256 /* Maximum number of substitutions */ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamehedinp C_fileTab[0].nameptr /* Source graph input file name */ #define C_filenamehedout C_fileTab[1].nameptr /* Statistics output file name */ #define C_filepntrhedinp C_fileTab[0].fileptr /* Source graph input file */ #define C_filepntrhedout C_fileTab[1].fileptr /* Statistics output file */ #define EXPAND(s) EXPANDTWO(s) #define EXPANDTWO(s) #s #define subsFill(a,b) { \ substab[subsnbr][0] = (a); \ substab[subsnbr][1] = (b); \ subsnbr ++; \ } #define subsSuffix(a) subsFill (a, subsSuffix2 (a, suffptr)) #ifdef SCOTCH_NAME_SUFFIX #include #endif /* SCOTCH_NAME_SUFFIX */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "geom.h" #include "mesh.h" #include "arch.h" #include "mapping.h" #include "order.h" #ifdef SCOTCH_PTSCOTCH #include "dgraph.h" #include "dgraph_halo.h" #include "dmapping.h" #include "dmesh.h" #include "dorder.h" #include "library_dmapping.h" #endif /* SCOTCH_PTSCOTCH */ #include "library_mapping.h" #include "library_order.h" /* ** The static definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODER }, { FILEMODEW } }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ char * subsSize ( int subsval) { char * subsptr; subsptr = malloc (16 * sizeof (char)); sprintf (subsptr, "%d", (int) ((subsval + sizeof (double) - 1) / sizeof (double))); return (subsptr); } char * subsSizeByte ( int subsval) { char * subsptr; subsptr = malloc (16 * sizeof (char)); sprintf (subsptr, "%d", (int) subsval); return (subsptr); } char * subsSuffix2 ( char * nameptr, char * suffptr) { char * subsptr; subsptr = malloc (128 * sizeof (char)); sprintf (subsptr, "%s%s", nameptr, suffptr); return (subsptr); } /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { #ifdef SCOTCH_NAME_SUFFIX regex_t regedat; /* Regular expression for function names */ regmatch_t matcdat; /* Matching structure */ #endif /* SCOTCH_NAME_SUFFIX */ char chartab[CHARMAX]; char chartmp[CHARMAX]; char * substab[SUBSMAX][2]; /* Substitution array */ char * suffptr; /* Pointer to suffix array */ int subsnbr; int i; if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ printf ("Usage is:\ndummysizes [ []]\n"); return (((argv[1][0] == '?') && argv[1][1] == '\0') ? 0 : 1); } suffptr = ""; /* No suffix */ for (i = 0; i < C_FILENBR; i ++) /* Set default stream pointers */ C_fileTab[i].fileptr = ((C_fileTab[i].flagval & FILEMODE) == FILEMODER) ? stdin : stdout; for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '+') && /* If found a file name */ ((argv[i][0] != '-') || (argv[i][1] == '\0'))) { if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ C_fileTab[C_fileNum ++].nameptr = argv[i]; else { fprintf (stderr, "dummysizes: ERROR: main: too many file names given"); exit (EXIT_FAILURE); } } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : printf ("Usage is:\ndummysizes [ []]\n"); exit (EXIT_SUCCESS); case 'S' : case 's' : suffptr = &argv[i][2]; break; case 'V' : fprintf (stderr, "dummysizes, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, "This software is libre/free software under CeCILL-C -- see the user's manual for more information\n"); return (0); default : fprintf (stderr, "dummysizes: ERROR: main: unprocessed option (\"%s\")", argv[i]); exit (EXIT_FAILURE); } } } for (i = 0; i < C_FILENBR; i ++) { /* For all file names */ if ((C_fileTab[i].nameptr[0] != '-') || /* If not standard stream */ (C_fileTab[i].nameptr[1] != '\0')) { if ((C_fileTab[i].fileptr = fopen (C_fileTab[i].nameptr, ((C_fileTab[i].flagval & FILEMODE) == FILEMODER) ? "r" : "w")) == NULL) { /* Open the file */ fprintf (stderr, "dummysizes: ERROR: main: cannot open file (%d)", i); exit (EXIT_FAILURE); } } } subsnbr = 0; #ifdef SCOTCH_PTSCOTCH subsFill ("library_pt.h", "ptscotch.h "); subsFill ("library_pt_f.h", "ptscotchf.h "); subsSuffix ("PTSCOTCH_H"); subsFill ("DUMMYINTMPI", EXPAND (COMM_INT)); #else /* SCOTCH_PTSCOTCH */ subsFill ("library.h", "scotch.h "); subsFill ("library_f.h", "scotchf.h "); subsSuffix ("SCOTCH_H"); #endif /* SCOTCH_PTSCOTCH */ subsFill ("DUMMYIDX", EXPAND (IDX)); subsFill ("DUMMYINT", EXPAND (INT)); subsFill ("DUMMYMAXINT", EXPAND (INTVALMAX)); subsFill ("DUMMYNUMSTRING", "\"" GNUMSTRING "\""); subsFill ("DUMMYVERSION", EXPAND (SCOTCH_VERSION_NUM)); subsFill ("DUMMYRELEASE", EXPAND (SCOTCH_RELEASE_NUM)); subsFill ("DUMMYPATCHLEVEL", EXPAND (SCOTCH_PATCHLEVEL_NUM)); subsFill ("DUMMYSIZEBYTEIDX", subsSizeByte (sizeof (IDX))); subsFill ("DUMMYSIZEBYTENUM", subsSizeByte (sizeof (INT))); subsFill ("DUMMYSIZEARCHDOM", subsSize (sizeof (ArchDom))); subsFill ("DUMMYSIZEARCH", subsSize (sizeof (Arch))); subsFill ("DUMMYSIZEGEOM", subsSize (sizeof (Geom))); subsFill ("DUMMYSIZECONTEXT", subsSize (sizeof (Context))); subsFill ("DUMMYSIZEGRAPH", subsSize (sizeof (Graph))); subsFill ("DUMMYSIZEMESH", subsSize (sizeof (Mesh))); subsFill ("DUMMYSIZEMAP", subsSize (sizeof (LibMapping))); subsFill ("DUMMYSIZEORDER", subsSize (sizeof (LibOrder))); subsFill ("DUMMYSIZESTRAT", subsSize (sizeof (Strat *))); #ifdef SCOTCH_PTSCOTCH subsFill ("DUMMYSIZEDGRAPHHALOREQ", subsSize (sizeof (DgraphHaloRequest))); /* TRICK: before DUMMYSIZEDGRAPH */ subsFill ("DUMMYSIZEDGRAPH", subsSize (sizeof (Dgraph))); subsFill ("DUMMYSIZEDMAP", subsSize (sizeof (LibDmapping))); subsFill ("DUMMYSIZEDMESH", subsSize (sizeof (Dmesh))); subsFill ("DUMMYSIZEDORDER", subsSize (sizeof (Dorder))); #else /* SCOTCH_PTSCOTCH */ subsFill ("DUMMYSIZEDGRAPHHALOREQ", "1"); /* TRICK: before DUMMYSIZEDGRAPH */ subsFill ("DUMMYSIZEDGRAPH", "1"); subsFill ("DUMMYSIZEDMAP", "1"); subsFill ("DUMMYSIZEDMESH", "1"); subsFill ("DUMMYSIZEDORDER", "1"); #endif /* SCOTCH_PTSCOTCH */ subsFill ("##SCOTCH_NAME_SUFFIX", suffptr); if (suffptr[0] != '\0') { /* If suffix provided */ #ifdef SCOTCH_RENAME_ALL subsSuffix ("SCOTCH_COARSENNONE"); subsSuffix ("SCOTCH_COARSENFOLD"); subsSuffix ("SCOTCH_COARSENFOLDDUP"); subsSuffix ("SCOTCH_COARSENNOMERGE"); subsSuffix ("SCOTCH_OPTIONNUMDETERMINISTIC"); subsSuffix ("SCOTCH_OPTIONNUMRANDOMFIXEDSEED"); subsSuffix ("SCOTCH_OPTIONNUMNBR"); subsSuffix ("SCOTCH_STRATDEFAULT"); subsSuffix ("SCOTCH_STRATQUALITY"); subsSuffix ("SCOTCH_STRATSPEED"); subsSuffix ("SCOTCH_STRATBALANCE"); subsSuffix ("SCOTCH_STRATSAFETY"); subsSuffix ("SCOTCH_STRATSCALABILITY"); subsSuffix ("SCOTCH_STRATRECURSIVE"); subsSuffix ("SCOTCH_STRATREMAP"); subsSuffix ("SCOTCH_STRATLEVELMAX"); subsSuffix ("SCOTCH_STRATLEVELMIN"); subsSuffix ("SCOTCH_STRATLEAFSIMPLE"); subsSuffix ("SCOTCH_STRATSEPASIMPLE"); subsSuffix ("SCOTCH_STRATDISCONNECTED"); #ifdef SCOTCH_PTSCOTCH subsSuffix ("SCOTCH_DGRAPHBUILDGRID3DGRID"); subsSuffix ("SCOTCH_DGRAPHBUILDGRID3DTORUS"); subsSuffix ("SCOTCH_DGRAPHBUILDGRID3DNGB6"); subsSuffix ("SCOTCH_DGRAPHBUILDGRID3DNGB26"); subsSuffix ("SCOTCH_DGRAPHBUILDGRID3DVERTLOAD"); subsSuffix ("SCOTCH_DGRAPHBUILDGRID3DEDGELOAD"); #else /* SCOTCH_PTSCOTCH */ #endif /* SCOTCH_PTSCOTCH */ #endif /* SCOTCH_RENAME_ALL */ subsSuffix ("SCOTCH_VERSION"); subsSuffix ("SCOTCH_RELEASE"); subsSuffix ("SCOTCH_PATCHLEVEL"); subsSuffix ("SCOTCH_IDXSIZE"); /* Centralized Fortran types also needed in "ptscotchf.h" */ subsSuffix ("SCOTCH_NUMSIZE"); subsSuffix ("SCOTCH_ARCHDIM"); subsSuffix ("SCOTCH_ARCHDOMDIM"); subsSuffix ("SCOTCH_CONTEXTDIM"); subsSuffix ("SCOTCH_GEOMDIM"); subsSuffix ("SCOTCH_GRAPHDIM"); subsSuffix ("SCOTCH_MAPDIM"); subsSuffix ("SCOTCH_MESHDIM"); subsSuffix ("SCOTCH_ORDERDIM"); subsSuffix ("SCOTCH_STRATDIM"); #ifdef SCOTCH_PTSCOTCH subsSuffix ("SCOTCH_NUM_MPI"); subsSuffix ("SCOTCH_Dgraph"); subsSuffix ("SCOTCH_DgraphHaloReq"); subsSuffix ("SCOTCH_Dmapping"); subsSuffix ("SCOTCH_Dmesh"); subsSuffix ("SCOTCH_Dordering"); subsSuffix ("SCOTCH_DGRAPHDIM"); subsSuffix ("SCOTCH_DGRAPHHALOREQDIM"); subsSuffix ("SCOTCH_DMAPDIM"); subsSuffix ("SCOTCH_DORDERDIM"); #else /* SCOTCH_PTSCOTCH */ subsSuffix ("SCOTCH_Idx"); subsSuffix ("SCOTCH_Num"); subsSuffix ("SCOTCH_NUMMAX"); subsSuffix ("SCOTCH_NUMSTRING"); subsSuffix ("SCOTCH_Arch"); subsSuffix ("SCOTCH_ArchDom"); subsSuffix ("SCOTCH_Context"); subsSuffix ("SCOTCH_Geom"); subsSuffix ("SCOTCH_Graph"); subsSuffix ("SCOTCH_GraphPart2"); subsSuffix ("SCOTCH_Mesh"); subsSuffix ("SCOTCH_Mapping"); subsSuffix ("SCOTCH_Ordering"); subsSuffix ("SCOTCH_Strat"); #endif /* SCOTCH_PTSCOTCH */ #ifdef SCOTCH_NAME_SUFFIX if (regcomp (®edat, " SCOTCH_[a-z][0-9a-zA-Z_]*", 0) != 0) { fprintf (stderr, "dummysizes: ERROR: cannot compile regular expression\n"); exit (EXIT_FAILURE); } #endif /* SCOTCH_NAME_SUFFIX */ } while (fgets (chartab, CHARMAX, C_filepntrhedinp) != NULL) { /* Loop on file lines */ int subsnum; if ((strlen (chartab)) >= (CHARMAX - 1) && /* If line read is at least as long as maximum size */ (chartab[CHARMAX - 1] != '\n')) { /* And last character is not a newline, that is, some is missing */ fprintf (stderr, "dummysizes: ERROR: line too long\n"); exit (EXIT_FAILURE); } for (subsnum = 0; subsnum < subsnbr; subsnum ++) { /* Perform substitutions */ char * charptr; /* Place where token found */ charptr = chartab; /* Start from beginning of string */ while ((charptr = strstr (charptr, substab[subsnum][0])) != NULL) { /* As long as a matching found */ size_t subslen; subslen = strlen (substab[subsnum][0]); if (isalnum (charptr[subslen]) || (charptr[subslen] == '_')) { /* If next character is part of a longer identifier */ charptr += subslen + 1; /* Skip substitution */ continue; } strcpy (chartmp, charptr + subslen); /* Save remaining of line */ sprintf (charptr, "%s%s", substab[subsnum][1], chartmp); /* Replace remaining of line with substituted token */ charptr += strlen (substab[subsnum][1]); /* Restart search from end of substituted token */ } } #ifdef SCOTCH_NAME_SUFFIX if (suffptr[0] != '\0') { /* If suffix provided */ if (regexec (®edat, chartab, 1, &matcdat, 0) == 0) { /* If matched a function name */ strcpy (chartmp, chartab + matcdat.rm_eo); /* Save remaining of line */ sprintf (chartab + matcdat.rm_eo, "%s%s", suffptr, chartmp); /* Add suffix to name */ } } #endif /* SCOTCH_NAME_SUFFIX */ fputs (chartab, C_filepntrhedout); /* Output possibly updated line */ } #ifdef SCOTCH_NAME_SUFFIX if (suffptr[0] != '\0') /* If suffix provided */ regfree (®edat); /* Free regular expression */ #endif /* SCOTCH_NAME_SUFFIX */ #ifdef SCOTCH_DEBUG_MAIN1 for (i = 0; i < C_FILENBR; i ++) { /* For all file names */ if ((C_fileTab[i].name[0] != '-') || /* If not standard stream */ (C_fileTab[i].name[1] != '\0')) { fclose (C_fileTab[i].pntr); /* Close the stream */ } } #endif /* SCOTCH_DEBUG_MAIN1 */ exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/fibo.c000066400000000000000000000322601514310134000250030ustar00rootroot00000000000000/* Copyright 2010,2011,2016,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : fibo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles Fibonacci heaps. **/ /** **/ /** DATES : # Version 5.1 : from : 01 may 2010 **/ /** to : 12 may 2010 **/ /** # Version 6.0 : from : 22 oct 2011 **/ /** to : 25 aug 2016 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /** NOTES : # A very pedagogic explanation of **/ /** Fibonacci heaps is available in **/ /** Chapter 21 of : **/ /** "Introduction to Algorithms" **/ /** Thomas H. Cormen, Charles E. **/ /** Leiserson, and Ronald L. Rivest **/ /** http://staff.ustc.edu.cn/~csli/ **/ /** graduate/algorithms/book6/chap21.htm **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_FIBO #include "module.h" #include "common.h" #include "fibo.h" /*********************************************/ /* */ /* These routines deal with Fibonacci heaps. */ /* */ /*********************************************/ /* This routine initializes a Fibonacci ** heap structure. ** It returns: ** - 0 : in case of success. ** - !0 : on error. */ int fiboHeapInit ( FiboHeap * const treeptr, int (* cmpfptr) (const FiboNode * const, const FiboNode * const)) { if ((treeptr->degrtab = (FiboNode **) memAlloc (FIBO_DEGRMAX * sizeof (FiboNode *))) == NULL) /* By default, as many cells as there are bits in an int type */ return (1); memSet (treeptr->degrtab, 0, FIBO_DEGRMAX * sizeof (FiboNode *)); /* Make degree array ready for consolidation: all cells set to NULL */ treeptr->rootdat.linkdat.prevptr = /* Link root node to itself */ treeptr->rootdat.linkdat.nextptr = &treeptr->rootdat; treeptr->cmpfptr = cmpfptr; return (0); } /* This routine flushes the contents of ** the given Fibonacci heap. ** It returns: ** - VOID : in all cases. */ void fiboHeapExit ( FiboHeap * const treeptr) { if (treeptr->degrtab != NULL) memFree (treeptr->degrtab); } /* This routine flushes the contents of ** the given Fibonacci heap. ** It returns: ** - VOID : in all cases. */ void fiboHeapFree ( FiboHeap * const treeptr) { treeptr->rootdat.linkdat.prevptr = /* Link root node to itself */ treeptr->rootdat.linkdat.nextptr = &treeptr->rootdat; } /* This routine perform the consolidation ** of roots per degree. It returns the best ** element found because this element is not ** recorded in the data structure itself. ** It returns: ** - !NULL : pointer to best element found. ** - NULL : Fibonacci heap is empty. */ FiboNode * fiboHeapConsolidate ( FiboHeap * const treeptr) { FiboNode ** restrict degrtab; int degrmax; int degrval; FiboNode * rootptr; FiboNode * nextptr; FiboNode * bestptr; degrtab = treeptr->degrtab; for (rootptr = treeptr->rootdat.linkdat.nextptr, nextptr = rootptr->linkdat.nextptr, degrmax = 0; /* For all roots in root list */ rootptr != &treeptr->rootdat; ) { degrval = rootptr->deflval >> 1; /* Get degree, getting rid of flag part */ #ifdef SCOTCH_DEBUG_FIBO2 if (degrval >= FIBO_DEGRMAX) { errorPrint ("fiboHeapConsolidate: invalid node degree"); return (NULL); } #endif /* SCOTCH_DEBUG_FIBO2 */ if (degrtab[degrval] == NULL) { /* If no tree with same degree already found */ if (degrval > degrmax) /* Record highest degree found */ degrmax = degrval; degrtab[degrval] = rootptr; /* Record tree as first tree with this degree */ rootptr = nextptr; /* Process next root in list during next iteration */ nextptr = rootptr->linkdat.nextptr; } else { FiboNode * oldrptr; /* Root which will no longer be a root */ FiboNode * chldptr; oldrptr = degrtab[degrval]; /* Assume old root is worse */ if (treeptr->cmpfptr (oldrptr, rootptr) <= 0) { /* If old root is still better */ oldrptr = rootptr; /* This root will be be linked to it */ rootptr = degrtab[degrval]; /* We will go on processing this root */ } degrtab[degrval] = NULL; /* Remaining root changes degree so leaves this cell */ fiboHeapUnlink (oldrptr); /* Old root is no longer a root */ oldrptr->deflval &= ~1; /* Whatever old root flag was, it is reset to 0 */ oldrptr->pareptr = rootptr; /* Remaining root is now father of old root */ chldptr = rootptr->chldptr; /* Get first child of remaining root */ if (chldptr != NULL) { /* If remaining root had already some children, link old root with them */ rootptr->deflval += 2; /* Increase degree by 1, that is, by 2 with left shift in deflval */ fiboHeapLinkAfter (chldptr, oldrptr); } else { /* Old root becomes first child of remaining root */ rootptr->deflval = 2; /* Real degree set to 1, and flag set to 0 */ rootptr->chldptr = oldrptr; oldrptr->linkdat.prevptr = /* Chain old root to oneself as only child */ oldrptr->linkdat.nextptr = oldrptr; } } /* Process again remaining root as its degree has changed */ } bestptr = NULL; for (degrval = 0; degrval <= degrmax; degrval ++) { if (degrtab[degrval] != NULL) { /* If some tree is found */ bestptr = degrtab[degrval]; /* Record it as potential best */ degrtab[degrval] = NULL; /* Clean-up used part of array */ degrval ++; /* Go on at next cell in next loop */ break; } } for ( ; degrval <= degrmax; degrval ++) { /* For remaining roots once a potential best root has been found */ if (degrtab[degrval] != NULL) { if (treeptr->cmpfptr (degrtab[degrval], bestptr) < 0) /* If new root is better */ bestptr = degrtab[degrval]; /* Record new root as best root */ degrtab[degrval] = NULL; /* Clean-up used part of array */ } } #ifdef SCOTCH_DEBUG_FIBO2 for (degrval = 0; degrval < FIBO_DEGRMAX; degrval ++) { if (degrtab[degrval] != NULL) { errorPrint ("fiboHeapConsolidate: invalid node degree"); return (NULL); } } #endif /* SCOTCH_DEBUG_FIBO2 */ return (bestptr); } /* This routine returns the node of minimum ** key in the given heap. The node is searched ** for each time this routine is called, so this ** information should be recorded if needed. ** This is the non-macro version, for testing ** and setting up breakpoints. ** It returns: ** - !NULL : pointer to best element found. ** - NULL : Fibonacci heap is empty. */ #ifndef fiboHeapMinIsMacro FiboNode * fiboHeapMin ( FiboHeap * const treeptr) { FiboNode * bestptr; bestptr = fiboHeapMinMacro (treeptr); #ifdef SCOTCH_DEBUG_FIBO3 fiboHeapCheck (treeptr); #endif /* SCOTCH_DEBUG_FIBO3 */ return (bestptr); } #endif /* fiboHeapMinIsMacro */ /* This routine adds the given node to the ** given heap. This is the non-macro version, ** for testing and setting up breakpoints. ** It returns: ** - void : in all cases. */ #ifndef fiboHeapAddIsMacro void fiboHeapAdd ( FiboHeap * const treeptr, FiboNode * const nodeptr) { fiboHeapAddMacro (treeptr, nodeptr); #ifdef SCOTCH_DEBUG_FIBO3 fiboHeapCheck (treeptr); #endif /* SCOTCH_DEBUG_FIBO3 */ } #endif /* fiboHeapAddIsMacro */ /* This routine reorders the heap according to ** the new, decreased key of the given node. ** If the key has increased instead, the behavior ** of the algorithm is undetermined. ** This is the non-macro version, for testing and ** setting up breakpoints. ** It returns: ** - void : in all cases. */ #ifndef fiboHeapDecreaseIsMacro void fiboHeapDecrease ( FiboHeap * const treeptr, FiboNode * const nodeptr) { fiboHeapDecreaseMacro (treeptr, nodeptr); #ifdef SCOTCH_DEBUG_FIBO3 fiboHeapCheck (treeptr); #endif /* SCOTCH_DEBUG_FIBO3 */ } #endif /* fiboHeapDecreaseIsMacro */ /* This routine deletes the given node from ** the given heap, whatever this node is (root ** or non root). This is the non-macro version, ** for testing and setting up breakpoints. ** It returns: ** - void : in all cases. */ #ifndef fiboHeapDelIsMacro void fiboHeapDel ( FiboHeap * const treeptr, FiboNode * const nodeptr) { fiboHeapDelMacro (treeptr, nodeptr); #ifdef SCOTCH_DEBUG_FIBO3 nodeptr->pareptr = nodeptr->chldptr = nodeptr->linkdat.prevptr = nodeptr->linkdat.nextptr = NULL; fiboHeapCheck (treeptr); #endif /* SCOTCH_DEBUG_FIBO3 */ } #endif /* fiboHeapDelIsMacro */ /* This routine checks the consistency of the ** given fibonacci heap. ** It returns: ** - 0 : if heap data is consistent. ** - !0 : on error. */ #ifdef SCOTCH_DEBUG_FIBO3 static int fiboHeapCheck2 ( const FiboNode * const nodeptr) { FiboNode * chldptr; int degrval; degrval = 0; chldptr = nodeptr->chldptr; if (chldptr != NULL) { do { if (chldptr->linkdat.nextptr->linkdat.prevptr != chldptr) { errorPrint ("fiboHeapCheck: bad child linked list"); return (1); } if (chldptr->pareptr != nodeptr) { errorPrint ("fiboHeapCheck: bad child parent"); return (1); } if (fiboHeapCheck2 (chldptr) != 0) return (1); degrval ++; chldptr = chldptr->linkdat.nextptr; } while (chldptr != nodeptr->chldptr); } if (degrval != (nodeptr->deflval >> 1)) { /* Real node degree is obtained by discarding lowest bit */ errorPrint ("fiboHeapCheck2: invalid child information"); return (1); } return (0); } int fiboHeapCheck ( const FiboHeap * const treeptr) { FiboNode * nodeptr; for (nodeptr = treeptr->rootdat.linkdat.nextptr; nodeptr != &treeptr->rootdat; nodeptr = nodeptr->linkdat.nextptr) { if (nodeptr->linkdat.nextptr->linkdat.prevptr != nodeptr) { errorPrint ("fiboHeapCheck: bad root linked list"); return (1); } if (nodeptr->pareptr != NULL) { errorPrint ("fiboHeapCheck: bad root parent"); return (1); } if (fiboHeapCheck2 (nodeptr) != 0) return (1); } return (0); } #endif /* SCOTCH_DEBUG_FIBO3 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/fibo.h000066400000000000000000000346211514310134000250130ustar00rootroot00000000000000/* Copyright 2010,2011,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : fibo.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the definitions of **/ /** the generic Fibonacci trees. **/ /** **/ /** DATES : # Version 5.1 : from : 01 may 2010 **/ /** to : 12 may 2010 **/ /** # Version 6.0 : from : 22 oct 2011 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /** NOTES : # Since this module is to be used as **/ /** the gain keeping data structure for **/ /** local optimization algorithms, the **/ /** computation of the best node needs **/ /** only to be done when actually picking **/ /** the vertex, while many insertions and **/ /** deletions (neighbor vertices) can **/ /** take place in the mean time. This is **/ /** why this data structure does not keep **/ /** track of the best node, as most **/ /** implementations do. **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Degree range. +*/ #ifndef FIBO_DEGRMAX #define FIBO_DEGRMAX (sizeof (INT) << 3) /* Assume maximum degree derives from an integer range */ #endif /* FIBO_DEGRMAX */ /* ** The type and structure definitions. */ /* The doubly linked list structure. */ typedef struct FiboLink_ { struct FiboNode_ * prevptr; /*+ Pointer to previous sibling element +*/ struct FiboNode_ * nextptr; /*+ Pointer to next sibling element +*/ } FiboLink; /* The tree node data structure. The deflval variable merges degree and flag variables. The degree of a node is smaller than "bitsizeof (INT)", so it can hold on an "int". The flag value is stored in the lowest bit of the value. */ typedef struct FiboNode_ { struct FiboNode_ * pareptr; /*+ Pointer to parent element, if any +*/ struct FiboNode_ * chldptr; /*+ Pointer to first child element, if any +*/ FiboLink linkdat; /*+ Pointers to sibling elements +*/ int deflval; /*+ Lowest bit: flag value; other bits: degree value +*/ } FiboNode; /* The tree data structure. The fake dummy node aims at handling root node insertion without any test. This is important as many insertions have to be performed. */ typedef struct FiboHeap_ { FiboNode rootdat; /*+ Dummy node for fast root insertion +*/ FiboNode ** restrict degrtab; /*+ Consolidation array of size "bitsizeof (INT)" +*/ int (* cmpfptr) (const FiboNode * const, const FiboNode * const); /*+ Comparison routine +*/ } FiboHeap; /* ** The marco definitions. */ #define fiboHeapLinkAfter(o,n) do { \ FiboNode * nextptr; \ nextptr = (o)->linkdat.nextptr; \ (n)->linkdat.nextptr = nextptr; \ (n)->linkdat.prevptr = (o); \ nextptr->linkdat.prevptr = (n); \ (o)->linkdat.nextptr = (n); \ } while (0) #define fiboHeapUnlink(n) do { \ (n)->linkdat.prevptr->linkdat.nextptr = (n)->linkdat.nextptr; \ (n)->linkdat.nextptr->linkdat.prevptr = (n)->linkdat.prevptr; \ } while (0) #define fiboHeapAddMacro(t,n) do { \ (n)->pareptr = NULL; \ (n)->chldptr = NULL; \ (n)->deflval = 0; \ fiboHeapLinkAfter (&((t)->rootdat), (n)); \ } while (0) #define fiboHeapMinMacro(t) (fiboHeapConsolidate (t)) #define fiboHeapMoveToRoot(t,n,p) do { \ FiboNode * rghtptr; \ int deflval; \ rghtptr = (n)->linkdat.nextptr; \ fiboHeapUnlink (n); \ (n)->pareptr = NULL; \ (n)->deflval &= ~1; \ deflval = (p)->deflval - 2; \ (p)->deflval = deflval; \ (p)->chldptr = (deflval <= 1) ? NULL : rghtptr; \ fiboHeapLinkAfter (&((t)->rootdat), (n)); \ } while (0) #define fiboHeapDecreaseMacro(t,n) do { \ FiboNode * pareptr; \ pareptr = (n)->pareptr; \ if ((pareptr != NULL) && \ (treeptr->cmpfptr (nodeptr, pareptr) < 0)) { \ FiboNode * gdpaptr; \ fiboHeapMoveToRoot (treeptr, nodeptr, pareptr); \ gdpaptr = pareptr->pareptr; \ while (gdpaptr != NULL) { \ if ((pareptr->deflval & 1) == 0) { \ pareptr->deflval |= 1; \ break; \ } \ fiboHeapMoveToRoot (treeptr, pareptr, gdpaptr); \ pareptr = gdpaptr; \ gdpaptr = gdpaptr->pareptr; \ } \ } \ } while (0) #define fiboHeapCutChildren(t,n) do { \ FiboNode * chldptr; \ chldptr = (n)->chldptr; \ if (chldptr != NULL) { \ FiboNode * cendptr; \ cendptr = chldptr; \ do { \ FiboNode * nextptr; \ nextptr = chldptr->linkdat.nextptr; \ chldptr->pareptr = NULL; \ fiboHeapLinkAfter (&((t)->rootdat), chldptr); \ chldptr = nextptr; \ } while (chldptr != cendptr); \ } \ } while (0) #define fiboHeapDelMacro(t,n) do { \ FiboNode * pareptr; \ FiboNode * rghtptr; \ pareptr = (n)->pareptr; \ fiboHeapUnlink (n); \ fiboHeapCutChildren ((t), (n)); \ if (pareptr == NULL) \ break; \ rghtptr = (n)->linkdat.nextptr; \ while (1) { \ FiboNode * gdpaptr; \ int deflval; \ deflval = pareptr->deflval - 2; \ pareptr->deflval = deflval | 1; \ gdpaptr = pareptr->pareptr; \ pareptr->chldptr = (deflval <= 1) ? NULL : rghtptr; \ if (((deflval & 1) == 0) || (gdpaptr == NULL)) \ break; \ rghtptr = pareptr->linkdat.nextptr; \ fiboHeapUnlink (pareptr); \ pareptr->pareptr = NULL; \ fiboHeapLinkAfter (&((t)->rootdat), pareptr); \ pareptr = gdpaptr; \ } \ } while (0) /* ** The function prototypes. */ #define fiboHeapAddIsMacro #define fiboHeapMinIsMacro int fiboHeapInit (FiboHeap * const, int (*) (const FiboNode * const, const FiboNode * const)); void fiboHeapExit (FiboHeap * const); void fiboHeapFree (FiboHeap * const); FiboNode * fiboHeapConsolidate (FiboHeap * const); #ifndef fiboHeapAddIsMacro void fiboHeapAdd (FiboHeap * const, FiboNode * const); #else /* fiboHeapAddIsMacro */ #define fiboHeapAdd fiboHeapAddMacro #endif /* fiboHeapAddIsMacro */ #ifndef fiboHeapDecreaseIsMacro void fiboHeapDecrease (FiboHeap * const, FiboNode * const); #else /* fiboHeapDecreaseIsMacro */ #define fiboHeapDecrease fiboHeapDecreaseMacro #endif /* fiboHeapDecreaseIsMacro */ #ifndef fiboHeapDelIsMacro void fiboHeapDel (FiboHeap * const, FiboNode * const); #else /* fiboHeapDelIsMacro */ #define fiboHeapDel fiboHeapDelMacro #endif /* fiboHeapDelIsMacro */ #ifndef fiboHeapMinIsMacro FiboNode * fiboHeapMin (FiboHeap * const); #else /* fiboHeapMinIsMacro */ #define fiboHeapMin fiboHeapMinMacro #endif /* fiboHeapMinIsMacro */ #ifdef SCOTCH_DEBUG_FIBO3 #ifdef SCOTCH_FIBO static int fiboHeapCheck2 (const FiboNode * const); #endif /* SCOTCH_FIBO */ int fiboHeapCheck (const FiboHeap * const); #endif /* SCOTCH_DEBUG_FIBO3 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/gain.c000066400000000000000000000366411514310134000250110ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gain.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles logarithmic gain **/ /** table structures. **/ /** **/ /** DATES : # Version 0.0 : from : 26 oct 1996 **/ /** to : 30 nov 1996 **/ /** # Version 0.1 : from : 10 may 1999 **/ /** to : 10 may 1999 **/ /** # Version 4.0 : from : 10 jan 2004 **/ /** to : 18 mar 2005 **/ /** # Version 5.0 : from : 24 mar 2008 **/ /** to : 24 mar 2008 **/ /** # Version 6.0 : from : 20 aug 2020 **/ /** to : 26 aug 2020 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /** NOTES : # Most of the contents of this module **/ /** comes from "map_b_fm" of the SCOTCH **/ /** project (v3.2). **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_GAIN #include "module.h" #include "common.h" #include "gain.h" /* #define SCOTCH_DEBUG_GAIN3 */ /* ** The static variables. */ static GainLink gainLinkDummy; /*+ Dummy link space for fast linked list operations +*/ /*************************************************/ /* */ /* These routines deal with generic gain tables. */ /* */ /*************************************************/ /* This routine checks the consistency of the ** given linked list. ** It returns: ** - !NULL : pointer to the vertex. ** - NULL : if no such vertex available. */ #ifdef SCOTCH_DEBUG_GAIN3 static int gainTablCheck2 ( GainEntr * const entrptr, GainLink * const linkptr) { GainLink * nextptr; int o; if (linkptr->next == &gainLinkDummy) /* If end of list successfully reached */ return (0); if (linkptr->next == NULL) /* If loop discovered */ return (1); if (linkptr->tabl != entrptr) return (1); nextptr = linkptr->next; /* Save pointer to next cell */ linkptr->next = NULL; /* Flag cell as already visited */ o = gainTablCheck2 (entrptr, nextptr); /* Process next cell */ linkptr->next = nextptr; /* Restore cell state */ return (o); } static int gainTablCheck ( GainEntr * const entrptr) { if (entrptr->next == &gainLinkDummy) /* If end of list successfully reached */ return (0); if ((entrptr->next == NULL) || /* If problem with link */ (gainTablCheck2 (entrptr, entrptr->next) != 0)) { errorPrint ("gainTablCheck: bad linked list"); return (1); } return (0); } #endif /* SCOTCH_DEBUG_GAIN3 */ /* This routine allocates and initializes ** a gain table structure with the proper ** number of subbits. ** It returns: ** - !NULL : pointer to the gain table; ** - NULL : on error. */ GainTabl * gainTablInit ( const INT gainmax, const INT subbits) { GainEntr * entrptr; GainTabl * tablptr; INT totsize; if (gainmax >= GAIN_LINMAX) { /* If logarithmic indexing */ totsize = ((sizeof (INT) << 3) - subbits) << (subbits + 1); /* Allocate gain table */ if ((tablptr = (GainTabl *) memAlloc (sizeof (GainTabl) + (totsize - 1) * sizeof (GainEntr))) == NULL) return (NULL); tablptr->tablAdd = gainTablAddLog; tablptr->subbits = subbits; /* Fill gain table fields */ tablptr->submask = (1 << (subbits + 1)) - 1; /* Mask with all subbits, plus one, set to 1 */ } else { /* Linear indexing */ totsize = 2 * GAIN_LINMAX; /* Allocate gain table */ if ((tablptr = (GainTabl *) memAlloc (sizeof (GainTabl) + (totsize - 1) * sizeof (GainEntr))) == NULL) return (NULL); tablptr->tablAdd = gainTablAddLin; tablptr->subbits = 0; /* Fill gain table fields */ tablptr->submask = 0; } tablptr->totsize = totsize; tablptr->tabl = tablptr->tabk + (totsize / 2); tablptr->tend = tablptr->tabk + (totsize - 1); /* End of gain entry array */ tablptr->tmin = tablptr->tend; /* Entries of extremal gain */ tablptr->tmax = tablptr->tabk; for (entrptr = tablptr->tabk; /* Initialize gain table entries */ entrptr <= tablptr->tend; entrptr ++) entrptr->next = &gainLinkDummy; /* Point to dummy link area */ return (tablptr); } /* This routine deletes a gain list ** It returns: ** - VOID : in all cases. */ void gainTablExit ( GainTabl * const tablptr) { memFree (tablptr); /* Free table structure itself */ } /* This routine flushes the contents of ** the given gain table. ** It returns: ** - VOID : in all cases. */ void gainTablFree ( GainTabl * const tablptr) { GainEntr * entrptr; for (entrptr = tablptr->tmin; /* Flush only used area */ entrptr <= tablptr->tmax; entrptr ++) entrptr->next = &gainLinkDummy; /* Point to dummy link area */ tablptr->tmin = tablptr->tend; /* Entries of extremal gain */ tablptr->tmax = tablptr->tabk; } /* This routine adds a vertex to the table ** and table gain indicated in the vertex ** fields. ** It returns: ** - VOID : in all cases. */ void gainTablAddLin ( GainTabl * const tablptr, /*+ Pointer to gain table +*/ GainLink * const linkptr, /*+ Pointer to entry to add +*/ const INT gain) /*+ Gain value +*/ { GainEntr * entrptr; /* Pointer to gain entry */ GainLink * headptr; /* Pointer to head of list */ #ifdef SCOTCH_DEBUG_GAIN2 if (tablptr->tablAdd != gainTablAddLin) { errorPrint ("gainTablAddLin: table type mismatch"); return; } #endif /* SCOTCH_DEBUG_GAIN2 */ entrptr = tablptr->tabl + gain; if (entrptr < tablptr->tabk) entrptr = tablptr->tabk; else if (entrptr > tablptr->tend) entrptr = tablptr->tend; if (entrptr < tablptr->tmin) tablptr->tmin = entrptr; if (entrptr > tablptr->tmax) tablptr->tmax = entrptr; headptr = (GainLink *) entrptr; /* TRICK: assume gain entry is a link */ linkptr->tabl = entrptr; /* Set table position */ headptr->next->prev = linkptr; /* Link vertex in gain list: TRICK */ linkptr->prev = headptr; linkptr->next = headptr->next; headptr->next = linkptr; } /* This routine adds a vertex to the table ** and table gain indicated in the vertex ** fields. ** It returns: ** - VOID : in all cases. */ void gainTablAddLog ( GainTabl * const tablptr, /*+ Pointer to gain table +*/ GainLink * const linkptr, /*+ Pointer to entry to add +*/ const INT gain) /*+ Gain value +*/ { GainEntr * entrptr; /* Pointer to gain entry */ INT i, j; #ifdef SCOTCH_DEBUG_GAIN2 if (tablptr->tablAdd != gainTablAddLog) { errorPrint ("gainTablAddLog: table type mismatch"); return; } #endif /* SCOTCH_DEBUG_GAIN2 */ if (gain >= 0) { /* Compute table entry for gain */ for (i = 0, j = gain; j > tablptr->submask; i ++, j >>= 1) ; i = (i << tablptr->subbits) + j; } else { for (i = 0, j = - (gain + 1); j > tablptr->submask; i ++, j >>= 1) ; i = - ((i << tablptr->subbits) + j + 1); } entrptr = tablptr->tabl + i; if (entrptr < tablptr->tmin) tablptr->tmin = entrptr; if (entrptr > tablptr->tmax) tablptr->tmax = entrptr; #ifdef SCOTCH_DEBUG_GAIN3 if ((entrptr->next != &gainLinkDummy) && (entrptr->next->prev != (GainLink *) entrptr)) { errorPrint ("gainTablAddLog: bad first element"); return; } if (gainTablCheck (entrptr) != 0) errorPrint ("gainTablAddLog: bad chaining"); #endif /* SCOTCH_DEBUG_GAIN3 */ entrptr->next->prev = linkptr; /* Link vertex in gain list: TRICK */ linkptr->prev = (GainLink *) entrptr; linkptr->next = entrptr->next; linkptr->tabl = entrptr; /* Set table position */ entrptr->next = linkptr; } /* This routine removes a link ** from the table. ** It returns: ** - VOID : in all cases. */ #ifdef SCOTCH_DEBUG_GAIN1 /* Compiled only in debug mode */ void gainTablDel ( GainTabl * const tablptr, GainLink * const linkptr) /*+ Pointer to link to delete +*/ { #ifdef SCOTCH_DEBUG_GAIN3 if (linkptr->tabl != NULL) { if ((linkptr->tabl->next != &gainLinkDummy) && (linkptr->tabl->next->prev != (GainLink *) linkptr->tabl)) { errorPrint ("gainTablDel: bad first element"); return; } if (gainTablCheck (linkptr->tabl) != 0) { errorPrint ("gainTablDel: bad chaining"); return; } } #endif /* SCOTCH_DEBUG_GAIN3 */ linkptr->next->prev = linkptr->prev; /* TRICK: may write in dummy link area */ linkptr->prev->next = linkptr->next; } #endif /* SCOTCH_DEBUG_GAIN1 */ /* This routine returns the link of best ** gain in the table structure. ** It returns: ** - !NULL : pointer to the vertex. ** - NULL : if no such vertex available. */ GainLink * gainTablFrst ( GainTabl * const tablptr) { GainEntr * entrptr; entrptr = tablptr->tmin; if (entrptr->next != &gainLinkDummy) { #ifdef SCOTCH_DEBUG_GAIN3 if (gainTablCheck (entrptr) != 0) { errorPrint ("gainTablFrst: bad chaining (1)"); return (NULL); } #endif /* SCOTCH_DEBUG_GAIN3 */ return (entrptr->next); } for (entrptr ++; entrptr <= tablptr->tend; entrptr ++) { if (entrptr->next != &gainLinkDummy) { /* If found non-empty slot */ tablptr->tmin = entrptr; /* Record its position */ #ifdef SCOTCH_DEBUG_GAIN3 if (gainTablCheck (entrptr) != 0) { errorPrint ("gainTablFrst: bad chaining (2)"); return (NULL); } #endif /* SCOTCH_DEBUG_GAIN3 */ return (entrptr->next); } } tablptr->tmin = tablptr->tend; /* Set table as empty */ tablptr->tmax = tablptr->tabk; return (NULL); } /* This routine returns the next best vertex ** following the given vertex. ** It returns: ** - !NULL : pointer to the vertex. ** - NULL : if no such vertex available. */ GainLink * gainTablNext ( GainTabl * const tablptr, const GainLink * const linkptr) { GainEntr * entrptr; if (linkptr->next != &gainLinkDummy) { #ifdef SCOTCH_DEBUG_GAIN3 if (gainTablCheck (linkptr->tabl) != 0) { errorPrint ("gainTablNext: bad chaining (1)"); return (NULL); } #endif /* SCOTCH_DEBUG_GAIN3 */ return (linkptr->next); } for (entrptr = linkptr->tabl + 1; entrptr < tablptr->tend; entrptr ++) { if (entrptr->next != &gainLinkDummy) { #ifdef SCOTCH_DEBUG_GAIN3 if (gainTablCheck (entrptr) != 0) { errorPrint ("gainTablNext: bad chaining (2)"); return (NULL); } #endif /* SCOTCH_DEBUG_GAIN3 */ return (entrptr->next); } } return (NULL); } /* This routine recomputes all the pointer ** addresses of the given gain table when the ** memory area that contains gain links has ** been moved by the given number of bytes. ** It returns: ** - void : in all cases. */ void gainTablMove ( GainTabl * const tablptr, const ptrdiff_t addrdlt) { GainEntr * entrptr; for (entrptr = tablptr->tmin; /* For all active gain table entries */ entrptr <= tablptr->tmax; entrptr ++) { GainLink * linkptr; GainLink * prevptr; if (entrptr->next == &gainLinkDummy) /* If slot is empty, skip it */ continue; linkptr = (GainLink *) ((byte *) entrptr->next + addrdlt); /* Get skewed address of new first slot */ entrptr->next = linkptr; /* Update entry pointer to first slot */ for (prevptr = linkptr; prevptr->next != &gainLinkDummy; prevptr = linkptr) { /* For all remaining links of this table entry */ linkptr = (GainLink *) ((byte *) prevptr->next + addrdlt); /* Get new address of link from its predecessor */ prevptr->next = linkptr; /* Skew forward chaining of previous link */ linkptr->prev = prevptr; /* Skew backward chaining of current link */ } #ifdef SCOTCH_DEBUG_GAIN3 if (entrptr->next->prev != (GainLink *) entrptr) { errorPrint ("gainTablMove: bad first element"); return; } if (gainTablCheck (entrptr) != 0) errorPrint ("gainTablMove: bad chaining"); #endif /* SCOTCH_DEBUG_GAIN3 */ } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/gain.h000066400000000000000000000151101514310134000250020ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2018,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gain.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the definitions of **/ /** the generic gain tables. **/ /** **/ /** DATES : # Version 0.0 : from : 26 oct 1996 **/ /** to : 17 nov 1997 **/ /** # Version 0.1 : from : 10 may 1999 **/ /** to : 18 mar 2005 **/ /** # Version 5.0 : from : 24 mar 2008 **/ /** to : 01 jun 2008 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 20 aug 2020 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /** NOTES : # Most of the contents of this module **/ /** comes from "map_b_fm" of the SCOTCH **/ /** project. **/ /** **/ /************************************************************/ /* ** The defines. */ #define GAINMAX ((INT) (((UINT) 1 << ((sizeof (INT) << 3) - 1)) - 2)) #define GAIN_LINMAX 1024 /* ** The type and structure definitions. */ /* The gain link data structure. This must be the first item of objects that are linked into gain tables. */ typedef struct GainLink_ { struct GainLink_ * next; /*+ Pointer to next element: FIRST +*/ struct GainLink_ * prev; /*+ Pointer to previous element +*/ struct GainEntr_ * tabl; /*+ Index into the gain table +*/ } GainLink; /* Gain table entry structure. */ typedef struct GainEntr_ { GainLink * next; /*+ Pointer to first element: FIRST +*/ } GainEntr; /* The gain table structure, built from table entries. For trick reasons, the pointer to the first entry must be the first field of the structure. */ typedef struct GainTabl_ { void (* tablAdd) (struct GainTabl_ * const, GainLink * const, const INT); /*+ Add method +*/ INT subbits; /*+ Number of subbits +*/ INT submask; /*+ Subbit mask +*/ INT totsize; /*+ Total table size +*/ GainEntr * tmin; /*+ Non-empty entry of minimum gain +*/ GainEntr * tmax; /*+ Non-empty entry of maximum gain +*/ GainEntr * tend; /*+ Last valid gain entry +*/ GainEntr * tabl; /*+ Gain table structure is.. [SIZE - ADJ] +*/ GainEntr tabk[1]; /*+ Split in two for relative access [ADJ] +*/ } GainTabl; /* ** The function prototypes. */ GainTabl * gainTablInit (const INT, const INT); void gainTablExit (GainTabl * const); void gainTablFree (GainTabl * const); void gainTablAddLin (GainTabl * const, GainLink * const, const INT); void gainTablAddLog (GainTabl * const, GainLink * const, const INT); void gainTablDel (GainTabl * const, GainLink * const); GainLink * gainTablFrst (GainTabl * const); GainLink * gainTablNext (GainTabl * const, const GainLink * const); void gainTablMove (GainTabl * const, const ptrdiff_t); #ifdef SCOTCH_DEBUG_GAIN3 #ifdef SCOTCH_GAIN static int gainTablCheck (GainEntr * const); static int gainTablCheck2 (GainEntr * const, GainLink * const); #endif /* SCOTCH_GAIN */ #endif /* SCOTCH_DEBUG_GAIN3 */ /* ** The marco definitions. */ #define gainTablEmpty(tabl) ((tabl)->tmin == (tabl)->tend) #define gainTablAdd(tabl,link,gain) ((tabl)->tablAdd ((tabl), (link), (gain))) #if ((! defined SCOTCH_GAIN) && (! defined SCOTCH_DEBUG_GAIN1)) #define gainTablDel(tabl,link) (((GainLink *) (link))->next->prev = ((GainLink *) (link))->prev, \ ((GainLink *) (link))->prev->next = ((GainLink *) (link))->next) #endif /* ((! defined SCOTCH_GAIN) && (! defined SCOTCH_DEBUG_GAIN1)) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/geom.c000066400000000000000000000070431514310134000250140ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : geom.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the geometric **/ /** source graph functions. **/ /** **/ /** DATES : # Version 3.3 : from : 12 dec 1998 **/ /** to : 21 dec 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 26 nov 2003 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" /********************************************/ /* */ /* These routines handle geometrical gdata. */ /* */ /********************************************/ /* This routine initializes a geometrical ** data structure. ** It returns: ** - 0 : in all cases. */ int geomInit ( Geom * restrict const geomptr) { geomptr->dimnnbr = 0; /* Initialize geometry */ geomptr->geomtab = NULL; return (0); } /* This routine frees a geometrical graph structure. ** It returns: ** - VOID : in all cases. */ void geomExit ( Geom * restrict const geomptr) { if (geomptr->geomtab != NULL) memFree (geomptr->geomtab); geomptr->dimnnbr = 0; geomptr->geomtab = NULL; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/geom.h000066400000000000000000000071711514310134000250230ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : geom.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the geometrical data handling **/ /** routines. **/ /** **/ /** DATES : # Version 3.3 : from : 13 dec 1998 **/ /** to : 15 dec 1998 **/ /** # Version 3.4 : from : 10 oct 1999 **/ /** to : 12 oct 1999 **/ /** # Version 4.0 : from : 24 nov 2001 **/ /** to : 18 jan 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 18 jan 2023 **/ /** to : 18 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_GEOM_H /* ** The type and structure definitions. */ /*+ Geometrical graph structure. +*/ typedef struct Geom_ { int dimnnbr; /*+ Geometry type (1, 2, or 3D) +*/ double * geomtab; /*+ Geometrical vertex array +*/ } Geom; /* ** The function prototypes. */ int geomInit (Geom * restrict const); void geomExit (Geom * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph.c000066400000000000000000000154251514310134000251710ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2012,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 sep 1998 **/ /** # Version 3.3 : from : 22 sep 1998 **/ /** to : 31 dec 1998 **/ /** # Version 4.0 : from : 24 nov 2001 **/ /** to : 22 apr 2004 **/ /** # Version 5.1 : from : 08 mar 2011 **/ /** to : 08 mar 2011 **/ /** # Version 6.0 : from : 09 sep 2012 **/ /** to : 09 aug 2014 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine initializes a source graph ** structure. ** It returns: ** - 0 : in all cases. */ int graphInit ( Graph * const grafptr) { memSet (grafptr, 0, sizeof (Graph)); /* Initialize graph fields */ grafptr->flagval = GRAPHFREETABS; /* By default, free all arrays */ return (0); } /* This routine frees a source graph structure. ** It returns: ** - VOID : in all cases. */ void graphExit ( Graph * const grafptr) { graphFree (grafptr); /* Free graph data */ #ifdef SCOTCH_DEBUG_GRAPH2 memSet (grafptr, ~0, sizeof (Graph)); /* Purge graph fields */ #endif /* SCOTCH_DEBUG_GRAPH2 */ } /* This routine frees the graph data. ** It returns: ** - VOID : in all cases. */ void graphFree ( Graph * const grafptr) { if (((grafptr->flagval & GRAPHFREEEDGE) != 0) && /* If edgetab must be freed */ (grafptr->edgetax != NULL)) /* And if it exists */ memFree (grafptr->edgetax + grafptr->baseval); /* Free it */ if ((grafptr->flagval & GRAPHFREEVERT) != 0) { /* If verttab/vendtab must be freed */ if ((grafptr->vendtax != NULL) && /* If vendtax is distinct from verttab */ (grafptr->vendtax != grafptr->verttax + 1) && /* (if vertex arrays grouped, vendtab not distinct anyway) */ ((grafptr->flagval & GRAPHVERTGROUP) == 0)) memFree (grafptr->vendtax + grafptr->baseval); /* Then free vendtax */ if (grafptr->verttax != NULL) /* Free verttab anyway, as it is the array group leader */ memFree (grafptr->verttax + grafptr->baseval); } if ((grafptr->flagval & GRAPHFREEVNUM) != 0) { /* If vnumtab must be freed */ if ((grafptr->vnumtax != NULL) && /* And is not in vertex array group */ ((grafptr->flagval & GRAPHVERTGROUP) == 0)) memFree (grafptr->vnumtax + grafptr->baseval); } if ((grafptr->flagval & GRAPHFREEOTHR) != 0) { /* If other arrays must be freed */ if ((grafptr->velotax != NULL) && /* Free graph tables */ ((grafptr->flagval & GRAPHVERTGROUP) == 0)) memFree (grafptr->velotax + grafptr->baseval); if ((grafptr->vlbltax != NULL) && ((grafptr->flagval & GRAPHVERTGROUP) == 0)) memFree (grafptr->vlbltax + grafptr->baseval); if ((grafptr->edlotax != NULL) && ((grafptr->flagval & GRAPHEDGEGROUP) == 0)) memFree (grafptr->edlotax + grafptr->baseval); } #ifdef SCOTCH_DEBUG_GRAPH2 memSet (grafptr, ~0, sizeof (Graph)); /* Purge graph fields */ #endif /* SCOTCH_DEBUG_GRAPH2 */ grafptr->flagval = GRAPHNONE; /* Allow to double-call graphFree or call graphExit */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph.h000066400000000000000000000262451514310134000252000ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014-2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph functions. **/ /** **/ /** DATES : # Version 0.0 : from : 02 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 18 aug 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 28 nov 1995 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 sep 1998 **/ /** # Version 3.3 : from : 28 sep 1998 **/ /** to : 23 mar 1999 **/ /** # Version 3.4 : from : 20 mar 2000 **/ /** to : 20 mar 2000 **/ /** # Version 4.0 : from : 24 nov 2001 **/ /** to : 03 mar 2006 **/ /** # Version 5.0 : from : 03 mar 2006 **/ /** to : 01 jun 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 10 may 2019 **/ /** # Version 7.0 : from : 08 jun 2018 **/ /** to : 16 aug 2025 **/ /** **/ /************************************************************/ #define SCOTCH_GRAPH_H /* ** The defines. */ /*+ Graph option flags. +*/ #define GRAPHNONE 0x0000 /*+ No options set +*/ #define GRAPHFREEEDGE 0x0001 /*+ Free edgetab array +*/ #define GRAPHFREEVERT 0x0002 /*+ Free verttab array +*/ #define GRAPHFREEVNUM 0x0004 /*+ Free vnumtab array +*/ #define GRAPHFREEOTHR 0x0008 /*+ Free all other arrays +*/ #define GRAPHFREETABS 0x000F /*+ Free all graph arrays +*/ #define GRAPHVERTGROUP 0x0010 /*+ All vertex arrays grouped +*/ #define GRAPHEDGEGROUP 0x0020 /*+ All edge arrays grouped +*/ #define GRAPHBITSUSED 0x003F /*+ Significant bits for plain graph routines +*/ #define GRAPHBITSNOTUSED 0x0040 /*+ Value above which bits not used by plain graph routines +*/ /*+ Graph loading flags. +*/ #define GRAPHIONOLOADVERT 1 /*+ Remove vertex loads on loading +*/ #define GRAPHIONOLOADEDGE 2 /*+ Remove edge loads on loading +*/ /* ** The type and structure definitions. */ #ifndef GNUMMAX /* If dgraph.h not included */ typedef INT Gnum; /* Vertex and edge numbers */ typedef UINT Gunum; /* Unsigned type of same width */ #define GNUMMAX INTVALMAX /* Maximum signed Gnum value */ #define GNUMMIN (-GNUMMAX - 1) /* Minimum signed Gnum value */ #define GNUMSTRING INTSTRING /* String to printf a Gnum */ #endif /* GNUMMAX */ /*+ The vertex part type, in compressed form. +*/ typedef byte GraphPart; /*+ The vertex list structure. Since a vertex list always refers to a given graph, vertex indices contained in the vertex list array are based with respect to the base value of the associated graph. However, the array itself is not based. +*/ typedef struct VertList_ { Gnum vnumnbr; /*+ Number of vertices in list +*/ Gnum * vnumtab; /*+ Pointer to vertex array +*/ } VertList; /*+ The graph flag type. +*/ typedef unsigned int GraphFlag; /*+ Graph property flags +*/ /*+ The graph load flag type. +*/ typedef unsigned int GraphLoadFlag; /*+ Graph property flags +*/ /*+ The graph structure. +*/ typedef struct Graph_ { GraphFlag flagval; /*+ Graph properties +*/ Gnum baseval; /*+ Base index for edge/vertex arrays +*/ Gnum vertnbr; /*+ Number of vertices in graph +*/ Gnum vertnnd; /*+ Number of vertices in graph, plus baseval +*/ Gnum * verttax; /*+ Vertex array [based] +*/ Gnum * vendtax; /*+ End vertex array [based] +*/ Gnum * velotax; /*+ Vertex load array (if present) +*/ Gnum velosum; /*+ Overall graph vertex load +*/ Gnum * vnumtax; /*+ Vertex number in ancestor graph +*/ Gnum * vlbltax; /*+ Vertex label (from file) +*/ Gnum edgenbr; /*+ Number of edges (arcs) in graph +*/ Gnum * edgetax; /*+ Edge array [based] +*/ Gnum * edlotax; /*+ Edge load array (if present) +*/ Gnum edlosum; /*+ Sum of edge (in fact arc) loads +*/ Gnum degrmax; /*+ Maximum degree +*/ } Graph; /* ** The function prototypes. */ int listInit (VertList *); void listExit (VertList *); int listAlloc (VertList *, Gnum); int listFree (VertList *); int listLoad (VertList *, FILE *); int listSave (VertList *, FILE *); void listSort (VertList *); int listCopy (VertList *, VertList *); int graphInit (Graph * const); void graphExit (Graph * const); void graphFree (Graph * const); Gnum graphBase (Graph * const, const Gnum); int graphBand (const Graph * restrict const, const Gnum, Gnum * restrict const, const Gnum, Gnum * restrict * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, const Gnum * restrict const, Gnum * restrict const); int graphCheck (const Graph *); int graphClone (const Graph *, Graph *); Gnum graphDiamPV (const Graph * restrict const, Context * restrict const); Gnum graphIelo (const Graph * const, Gnum * const, Gnum * const); int graphInduceList (const Graph * restrict const, const Gnum, const Gnum * restrict const, Graph * restrict const); int graphInducePart (const Graph * restrict const, const GraphPart * restrict const, const Gnum, const GraphPart, Graph * restrict const); int graphLoad (Graph * const, FILE * const, const Gnum, const GraphLoadFlag); int graphLoad2 (const Gnum, const Gnum, const Gnum * const, const Gnum * const, Gnum * restrict const, const Gnum, const Gnum * const); int graphSave (const Graph * const, FILE * const); #ifdef SCOTCH_GEOM_H int graphGeomLoadChac (Graph * restrict const, Geom * restrict const, FILE * const, FILE * const, const char * const); int graphGeomSaveChac (const Graph * restrict const, const Geom * restrict const, FILE * const, FILE * const, const char * const); int graphGeomLoadHabo (Graph * restrict const, Geom * restrict const, FILE * const, FILE * const, const char * const); int graphGeomLoadMmkt (Graph * restrict const, Geom * restrict const, FILE * const, FILE * const, const char * const); int graphGeomSaveMmkt (const Graph * restrict const, const Geom * restrict const, FILE * const, FILE * const, const char * const); int graphGeomLoadScot (Graph * restrict const, Geom * restrict const, FILE * const, FILE * const, const char * const); int graphGeomSaveScot (const Graph * restrict const, const Geom * restrict const, FILE * const, FILE * const, const char * const); #endif /* SCOTCH_GEOM_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_band.c000066400000000000000000000176331514310134000261600ustar00rootroot00000000000000/* Copyright 2010,2011,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_band.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a band graph **/ /** from the given frontier array. **/ /** **/ /** DATES : # Version 6.0 : from : 05 jan 2010 **/ /** to : 22 sep 2011 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /** NOTES : # This code derives from the code of **/ /** dgraph_band.c in version 5.1. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /**********************************/ /* */ /* Distance computation routines. */ /* */ /**********************************/ /* This routine computes an index array ** of given width around the current separator. ** It returns: ** - 0 : if the index array could be computed. ** - !0 : on error. */ int graphBand ( const Graph * restrict const grafptr, /*+ Graph +*/ const Gnum queunbr, /*+ Number of frontier vertices, start size for vertex queue +*/ Gnum * restrict const queutab, /*+ Array of frontier vertices, re-used as queue array +*/ const Gnum distmax, /*+ Maximum distance from separator vertices +*/ Gnum * restrict * restrict const vnumptr, /*+ Pointer to vnumtax +*/ Gnum * restrict const bandvertlvlptr, /*+ Pointer to based start index of last level +*/ Gnum * restrict const bandvertptr, /*+ Pointer to bandvertnbr +*/ Gnum * restrict const bandedgeptr, /*+ Pointer to bandedgenbr +*/ const Gnum * restrict const pfixtax, /*+ Fixed partition array +*/ Gnum * restrict const bandvfixptr) /*+ Pointer to bandvfixnbr +*/ { Gnum queunum; Gnum * restrict vnumtax; /* Index array for vertices kept in band graph */ Gnum queuheadidx; /* Index of head of queue */ Gnum queutailidx; /* Index of tail of queue */ Gnum bandvertlvlnum; Gnum bandvertnum; Gnum bandedgenbr; Gnum distval; Gnum bandvfixnbr; /* Number of band fixed vertices */ const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; if ((vnumtax = memAlloc (grafptr->vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("graphBand: out of memory (1)"); return (1); } bandvertlvlnum = /* Start index of last level is start index */ bandvertnum = grafptr->baseval; /* Reset number of band vertices */ bandedgenbr = bandvfixnbr = 0; memSet (vnumtax, ~0, grafptr->vertnbr * sizeof (Gnum)); /* Reset part array */ vnumtax -= grafptr->baseval; for (queunum = 0; queunum < queunbr; queunum ++) { /* All frontier vertices will be first vertices of band graph */ Gnum vertnum; vertnum = queutab[queunum]; if ((pfixtax != NULL) && (pfixtax[vertnum] != -1)) { /* It is a fixed vertex */ vnumtax[vertnum] = -2; /* Set vertex as fixed */ bandvfixnbr ++; } else vnumtax[vertnum] = bandvertnum ++; /* Keep frontier vertex in band */ bandedgenbr += vendtax[vertnum] - verttax[vertnum]; /* Account for its edges */ } queuheadidx = 0; /* No queued vertex read yet */ queutailidx = queunbr; /* All frontier vertices are already in queue */ for (distval = 0; ++ distval <= distmax; ) { Gnum queunextidx; /* Tail index for enqueuing vertices of next band */ bandvertlvlnum = bandvertnum; *bandvertlvlptr = bandvertlvlnum; /* Save start index of current level, based */ for (queunextidx = queutailidx; queuheadidx < queutailidx; ) { /* For all vertices in queue */ Gnum vertnum; Gnum edgenum; vertnum = queutab[queuheadidx ++]; /* Dequeue vertex */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (vnumtax[vertend] != ~0) /* If end vertex has already been processed */ continue; /* Skip to next vertex */ if ((pfixtax != NULL) && (pfixtax[vertend] != -1)) { /* If fixed vertex */ vnumtax[vertend] = -2; /* Set vertex as fixed */ bandvfixnbr ++; } else vnumtax[vertend] = bandvertnum ++; /* Enqueue vertex label */ bandedgenbr += vendtax[vertend] - verttax[vertend]; /* Account for its edges */ queutab[queunextidx ++] = vertend; /* Enqueue vertex for next pass */ } } queutailidx = queunextidx; /* Prepare queue for next sweep */ } *vnumptr = vnumtax; *bandvfixptr = bandvfixnbr; *bandvertptr = bandvertnum - grafptr->baseval; *bandedgeptr = bandedgenbr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_base.c000066400000000000000000000134221514310134000261560ustar00rootroot00000000000000/* Copyright 2004,2007,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_base.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the graph base **/ /** changing routine. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 sep 1998 **/ /** # Version 3.3 : from : 22 sep 1998 **/ /** to : 31 dec 1998 **/ /** # Version 4.0 : from : 24 nov 2001 **/ /** to : 22 apr 2004 **/ /** # Version 6.0 : from : 05 aug 2014 **/ /** to : 05 aug 2014 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine sets the base of the given ** graph to the given base value, and returns ** the old base value. ** It returns: ** - old base value : in all cases. */ Gnum graphBase ( Graph * const grafptr, const Gnum baseval) { Gnum baseold; /* Old base value */ Gnum baseadj; /* Base adjustment */ Gnum vertnum; Gnum edgenum; if (grafptr->baseval == baseval) /* If nothing to do */ return (baseval); baseold = grafptr->baseval; /* Record old base value */ baseadj = baseval - baseold; /* Compute adjustment */ for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { for (edgenum = grafptr->verttax[vertnum]; edgenum < grafptr->vendtax[vertnum]; edgenum ++) grafptr->edgetax[edgenum] += baseadj; grafptr->verttax[vertnum] += baseadj; } if (grafptr->vendtax != grafptr->verttax + 1) { /* If distinct vertex end array */ for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) grafptr->vendtax[vertnum] += baseadj; } else /* If same vertex end array (of size +1) */ grafptr->verttax[grafptr->vertnnd] += baseadj; /* Adjust last entry of verttax */ grafptr->verttax -= baseadj; /* Adjust array accesses */ grafptr->vendtax -= baseadj; grafptr->edgetax -= baseadj; if (grafptr->velotax != NULL) grafptr->velotax -= baseadj; if (grafptr->vnumtax != NULL) grafptr->vnumtax -= baseadj; if (grafptr->vlbltax != NULL) grafptr->vlbltax -= baseadj; if (grafptr->edlotax != NULL) grafptr->edlotax -= baseadj; grafptr->baseval = baseval; /* Set new base value */ grafptr->vertnnd += baseadj; return (baseold); /* Return old base value */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_check.c000066400000000000000000000205061514310134000263220ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2012,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the source graph **/ /** checking function. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 sep 1998 **/ /** # Version 3.3 : from : 22 sep 1998 **/ /** to : 31 dec 1998 **/ /** # Version 4.0 : from : 24 nov 2001 **/ /** to : 22 apr 2004 **/ /** # Version 5.0 : from : 13 dec 2006 **/ /** to : 02 oct 2007 **/ /** # Version 6.0 : from : 27 jun 2011 **/ /** to : 23 feb 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 12 mar 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine checks the consistency ** of the given graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int graphCheck ( const Graph * const grafptr) { Gnum vertnum; /* Number of current vertex */ Gnum velosum; /* Sum of vertex loads */ Gnum edlosum; /* Sum of edge loads */ Gnum edgenbr; /* Number of edges (arcs) */ Gnum edgenum; /* Number of current edge */ Gnum degrmax; /* Maximum degree */ const Gnum baseval = grafptr->baseval; /* Fast accesses */ const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const velotax = grafptr->velotax; const Gnum * restrict const edgetax = grafptr->edgetax; const Gnum * restrict const edlotax = grafptr->edlotax; if ((grafptr->vertnbr < 0) || (grafptr->vertnbr != (grafptr->vertnnd - baseval))) { errorPrint ("graphCheck: invalid vertex numbers"); return (1); } if ((grafptr->edgenbr < 0) || ((grafptr->edgenbr & 1) != 0)) { errorPrint ("graphCheck: invalid edge numbers"); return (1); } degrmax = edgenbr = 0; velosum = (velotax == NULL) ? grafptr->vertnbr : 0; edlosum = (edlotax == NULL) ? grafptr->edgenbr : 0; for (vertnum = baseval; vertnum < grafptr->vertnnd; vertnum ++) { Gnum degrval; if ((verttax[vertnum] < baseval) || (vendtax[vertnum] < verttax[vertnum])) { errorPrint ("graphCheck: invalid vertex arrays"); return (1); } degrval = vendtax[vertnum] - verttax[vertnum]; if (degrval > degrmax) degrmax = degrval; edgenbr += degrval; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* Number of end vertex */ Gnum edgeend; /* Number of end vertex edge */ vertend = edgetax[edgenum]; if (edlotax != NULL) { Gnum edlotmp; edlotmp = edlosum + edlotax[edgenum]; if (edlotmp < edlosum) { /* If overflow */ errorPrint ("graphCheck: edge load sum overflow"); return (1); } edlosum = edlotmp; } if ((vertend < baseval) || (vertend >= grafptr->vertnnd)) { /* If invalid edge end */ errorPrint ("graphCheck: invalid edge array"); return (1); } if (vertend == vertnum) { /* Loops not allowed */ errorPrint ("graphCheck: loops not allowed"); return (1); } for (edgeend = verttax[vertend]; /* Search for matching arc */ (edgeend < vendtax[vertend]) && (edgetax[edgeend] != vertnum); edgeend ++) ; if ((edgeend >= vendtax[vertend]) || ((edlotax != NULL) && (edlotax[edgenum] != edlotax[edgeend]))) { errorPrint ("graphCheck: arc data do not match"); return (1); } for (edgeend ++; /* Search for duplicate arcs */ (edgeend < vendtax[vertend]) && (edgetax[edgeend] != vertnum); edgeend ++) ; if (edgeend < vendtax[vertend]) { errorPrint ("graphCheck: duplicate arc"); return (1); } } if (velotax != NULL) { Gnum velotmp; if (velotax[vertnum] < 0) { /* If non positive loads */ errorPrint ("graphCheck: invalid vertex load array"); return (1); } velotmp = velosum + velotax[vertnum]; if (velotmp < velosum) { /* If overflow */ errorPrint ("graphCheck: vertex load sum overflow"); return (1); } velosum = velotmp; } } if (grafptr->edgenbr != edgenbr) { errorPrint ("graphCheck: invalid number of edges"); return (1); } if (grafptr->velosum != velosum) { errorPrint ("graphCheck: invalid vertex load sum"); return (1); } if (grafptr->edlosum != edlosum) { errorPrint ("graphCheck: invalid edge load sum"); return (1); } if (grafptr->degrmax < degrmax) { errorPrint ("graphCheck: invalid maximum degree"); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_clone.c000066400000000000000000000170211514310134000263430ustar00rootroot00000000000000/* Copyright 2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_clone.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** cloning function. **/ /** **/ /** DATES : # Version 6.0 : from : 22 feb 2016 **/ /** to : 22 feb 2018 **/ /** # Version 7.0 : from : 04 aug 2018 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine builds a clone of the given ** graph. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphClone ( const Graph * restrict const orggrafptr, Graph * restrict const clngrafptr) { Gnum * datatab; Gnum baseval; Gnum vertnbr; Gnum vertnnd; Gnum datasiz; Gnum edgesiz; baseval = orggrafptr->baseval; vertnbr = orggrafptr->vertnbr; datasiz = vertnbr; /* Account for verttab */ datasiz += (orggrafptr->vendtax != (orggrafptr->verttax + 1)) ? vertnbr : 1; /* Account for vendtab or compact array */ if (orggrafptr->velotax != NULL) datasiz += vertnbr; /* Account for velotab */ if (orggrafptr->vnumtax != NULL) datasiz += vertnbr; /* Account for vnumtab */ if (orggrafptr->vlbltax != NULL) datasiz += vertnbr; /* Account for vlbltab */ if ((datatab = memAlloc (datasiz * sizeof (Gnum))) == NULL) { errorPrint ("graphClone: out of memory (1)"); return (1); } clngrafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; /* Cloned graph has its own arrays */ clngrafptr->baseval = baseval; clngrafptr->vertnbr = vertnbr; clngrafptr->vertnnd = vertnnd = vertnbr + baseval; clngrafptr->verttax = datatab - baseval; /* Manage verttab */ memCpy (datatab, orggrafptr->verttax + baseval, vertnbr * sizeof (Gnum)); datatab += vertnbr; if (orggrafptr->vendtax == (orggrafptr->verttax + 1)) { /* If compact array */ clngrafptr->vendtax = clngrafptr->verttax + 1; /* Set compact array */ edgesiz = orggrafptr->verttax[vertnnd]; /* Get end of compact array */ clngrafptr->verttax[vertnnd] = edgesiz; /* Copy end of compact array */ datatab ++; /* Space for last index */ } else { const Gnum * restrict orgvendptr; Gnum * restrict clnvendptr; Gnum vertnum; clngrafptr->vendtax = datatab - baseval; /* Set vendtab */ clnvendptr = datatab; orgvendptr = orggrafptr->vendtax + baseval; for (vertnum = 0, edgesiz = 0; vertnum < vertnbr; vertnum ++) { Gnum vendval; vendval = *orgvendptr ++; /* Copy vertex index */ *clnvendptr ++ = vendval; if (vendval > edgesiz) /* Record highest end index */ edgesiz = vendval; } datatab = clnvendptr; /* Resume after end of cloned array */ } edgesiz -= baseval; /* Edge size is given by highest index */ if (orggrafptr->velotax != NULL) { /* Account for velotab */ memCpy (datatab, orggrafptr->velotax + baseval, vertnbr * sizeof (Gnum)); clngrafptr->velotax = datatab - baseval; datatab += vertnbr; } else clngrafptr->velotax = NULL; clngrafptr->velosum = orggrafptr->velosum; if (orggrafptr->vnumtax != NULL) { /* Account for vnumtab */ memCpy (datatab, orggrafptr->vnumtax + baseval, vertnbr * sizeof (Gnum)); clngrafptr->vnumtax = datatab - baseval; datatab += vertnbr; } else clngrafptr->vnumtax = NULL; if (orggrafptr->vlbltax != NULL) { /* Account for vlbltab */ memCpy (datatab, orggrafptr->vlbltax + baseval, vertnbr * sizeof (Gnum)); clngrafptr->vlbltax = datatab - baseval; } else clngrafptr->vlbltax = NULL; datasiz = edgesiz; /* Account for edgetab */ if (orggrafptr->edlotax != NULL) datasiz += edgesiz; /* Account for edlotab */ if ((datatab = memAlloc (datasiz * sizeof (Gnum))) == NULL) { errorPrint ("graphClone: out of memory (2)"); memFree (clngrafptr->verttax + baseval); /* Free group leader */ return (1); } clngrafptr->edgenbr = orggrafptr->edgenbr; clngrafptr->edgetax = datatab - baseval; /* Manage edgetab */ memCpy (datatab, orggrafptr->edgetax + baseval, edgesiz * sizeof (Gnum)); if (orggrafptr->edlotax != NULL) { /* Manage edlotab */ datatab += edgesiz; clngrafptr->edlotax = datatab - baseval; memCpy (datatab, orggrafptr->edlotax + baseval, edgesiz * sizeof (Gnum)); } else clngrafptr->edlotax = NULL; clngrafptr->edlosum = orggrafptr->edlosum; clngrafptr->degrmax = orggrafptr->degrmax; #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (clngrafptr) != 0) { /* Check graph consistency */ errorPrint ("graphClone: inconsistent graph data"); graphExit (clngrafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_coarsen.c000066400000000000000000001027661514310134000267100ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2011-2016,2018,2020,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the source graph **/ /** coarsening functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 17 sep 1998 **/ /** # Version 4.0 : from : 13 dec 2001 **/ /** to : 31 aug 2005 **/ /** # Version 5.0 : from : 13 dec 2006 **/ /** to : 24 mar 2008 **/ /** # Version 5.1 : from : 30 oct 2009 **/ /** to : 30 oct 2009 **/ /** # Version 6.0 : from : 09 mar 2011 **/ /** to : 29 apr 2019 **/ /** # Version 7.0 : from : 28 jul 2018 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_GRAPH_COARSEN #include "module.h" #include "common.h" #include "arch.h" #include "graph.h" #include "graph_coarsen.h" #include "graph_match.h" /****************************************/ /* */ /* The edge array building subroutines. */ /* */ /****************************************/ #define GRAPHCOARSENEDGENAME graphCoarsenEdgeLl #define GRAPHCOARSENEDLOTAB #include "graph_coarsen_edge.c" #undef GRAPHCOARSENEDGENAME #undef GRAPHCOARSENEDLOTAB #define GRAPHCOARSENEDGENAME graphCoarsenEdgeLu #include "graph_coarsen_edge.c" #undef GRAPHCOARSENEDGENAME #ifndef GRAPHCOARSENNOTHREAD /* Only relevant when threads are enabled */ #define GRAPHCOARSENEDGENAME graphCoarsenEdgeCt #define GRAPHCOARSENEDGECOUNT /* Local coarse edge count routine */ #include "graph_coarsen_edge.c" #undef GRAPHCOARSENEDGENAME #undef GRAPHCOARSENEDGECOUNT #endif /* GRAPHCOARSENNOTHREAD */ /***************************/ /* */ /* The coarsening routine. */ /* */ /***************************/ #ifndef GRAPHCOARSENNOTHREAD /* This routine aggregates a sum and max ** reduction of partial coarse graph ** parameters computed by multiple ** threads. */ static void graphCoarsenReduce ( GraphCoarsenThread * restrict const tlocptr, /* Pointer to local thread block */ GraphCoarsenThread * restrict const tremptr, /* Pointer to remote thread block */ const void * const globptr) /* Unused */ { tlocptr->coaredgebas += tremptr->coaredgebas; /* Sum number of local edges */ tlocptr->coaredloadj += tremptr->coaredloadj; /* Sum edge load sum adjustments */ if (tremptr->coardegrmax > tlocptr->coardegrmax) /* Take maximum of degrees */ tlocptr->coardegrmax = tremptr->coardegrmax; } /* This routine performs a prefix scan ** sum operation on a single Gnum value, ** backed by a temporary area. */ static void graphCoarsenScan ( Gnum * restrict const tlocptr, /* Pointer to local area */ Gnum * restrict const tremptr, /* Pointer to lremote area */ const int srcpval, /* Source phase value */ const int dstpval, /* Destination phase value */ const void * const globptr) /* Unused */ { tlocptr[dstpval] = tlocptr[srcpval] + ((tremptr == NULL) ? 0 : tremptr[srcpval]); } #endif /* GRAPHCOARSENNOTHREAD */ /* This routine is the threaded core of the building ** of the coarse graph from the fine graph. ** It returns: ** - void: in all cases. */ static void graphCoarsen3 ( ThreadDescriptor * restrict const descptr, GraphCoarsenData * restrict const coarptr) { GraphCoarsenMulti * restrict coarmulttax; /* Work pointer to multinode array */ Gnum coarvertnbr; Gnum coarhashnbr; /* Size of neighbor vertex hash table */ Gnum coaredgebas; /* Start of local edge sub-array */ #ifdef SCOTCH_PTHREAD const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); GraphCoarsenThread * const thrdptr = &coarptr->thrdtab[thrdnum]; #else /* SCOTCH_PTHREAD */ GraphCoarsenThread * restrict const thrdptr = &coarptr->thrdtab[0]; #endif /* SCOTCH_PTHREAD */ const Graph * restrict const finegrafptr = coarptr->finegrafptr; Gnum * const finecoartax = coarptr->finematetax; /* [norestrict] */ Graph * const coargrafptr = coarptr->coargrafptr; /* [norestrict] */ const Gnum baseval = finegrafptr->baseval; #ifdef SCOTCH_PTHREAD thrdptr->finevertbas = baseval + DATASCAN (finegrafptr->vertnbr, thrdnbr, thrdnum); thrdptr->finevertnnd = baseval + DATASCAN (finegrafptr->vertnbr, thrdnbr, thrdnum + 1); #else /* SCOTCH_PTHREAD */ thrdptr->finevertbas = baseval; thrdptr->finevertnnd = finegrafptr->vertnnd; #endif /* SCOTCH_PTHREAD */ if ((coarptr->flagval & GRAPHCOARSENUSEMATE) == 0) { /* If matching data not provided */ graphMatch (descptr, coarptr); /* Perform threaded matching */ if ((coarptr->retuval != 0) || /* If matching failed */ (coargrafptr == NULL)) /* Or if only matching wanted, stop here */ return; coarvertnbr = coarptr->coarvertnbr; /* Get number of vertices actually created */ if (coarvertnbr >= coarptr->coarvertmax) { /* If coarsened graph is too large, stop here */ #ifdef SCOTCH_PTHREAD if (thrdnum == 0) /* Thread 0 sets the return value */ #endif /* SCOTCH_PTHREAD */ coarptr->retuval = 1; return; } } else coarvertnbr = coarptr->coarvertnbr; /* Get provided number of vertices */ #ifdef GRAPHCOARSENNOTHREAD #ifdef SCOTCH_PTHREAD if (thrdnum != 0) { /* Only thread 0 will perform the work */ threadBarrier (descptr); /* End-of-routine synchronization barrier */ return; } #endif /* SCOTCH_PTHREAD */ thrdptr->finevertbas = baseval; /* Now thread 0 takes care of all vertices */ thrdptr->finevertnnd = finegrafptr->vertnnd; #else /* GRAPHCOARSENNOTHREAD */ if (thrdnum == 0) /* Thread 0 populates the graph data structure */ #endif /* GRAPHCOARSENNOTHREAD */ { GraphCoarsenMulti * coarmulttab; /* [norestrict] */ Gnum coarmultsiz; /* Size of embedded multinode array */ Gnum coarvendsiz; #ifdef SCOTCH_DEBUG_GRAPH2 Gnum finevertnum; Gnum finevertnnd; for (finevertnum = thrdptr->finevertbas, finevertnnd = thrdptr->finevertnnd; finevertnum < finevertnnd; finevertnum ++) { Gnum finematenum; /* Number of current mate vertex */ finematenum = finecoartax[finevertnum]; if ((finematenum < baseval) || (finematenum >= finegrafptr->vertnnd)) { errorPrint ("graphCoarsen3: invalid matching (1)"); return; } if (finecoartax[finematenum] != finevertnum) { errorPrint ("graphCoarsen3: invalid matching (2)"); return; } } #endif /* SCOTCH_DEBUG_GRAPH2 */ coarvendsiz = ((coarptr->flagval & GRAPHCOARSENNOCOMPACT) != 0) ? coarvertnbr : 1; /* TRICK: If not a compact graph, allocate a whole array for vendtab */ coarmultsiz = ((coarptr->flagval & GRAPHCOARSENHASMULT) == 0) ? coarvertnbr : 0; /* If coarmulttab is not user-provided, allocate it among graph data */ memSet (coargrafptr, 0, sizeof (Graph)); /* Initialize coarse graph on thread 0 */ coargrafptr->flagval = GRAPHFREEVERT | GRAPHVERTGROUP | GRAPHFREEEDGE; coargrafptr->baseval = baseval; coargrafptr->vertnbr = coarvertnbr; coargrafptr->vertnnd = coarvertnbr + baseval; coargrafptr->velosum = finegrafptr->velosum; /* Keep load of finer graph */ if ((memAllocGroup ((void **) (void *) /* Allocate coarser graph structure */ &coargrafptr->verttax, (size_t) (coarvertnbr * sizeof (Gnum)), &coargrafptr->vendtax, (size_t) (coarvendsiz * sizeof (Gnum)), &coargrafptr->velotax, (size_t) (coarvertnbr * sizeof (Gnum)), &coarmulttab, (size_t) (coarmultsiz * sizeof (GraphCoarsenMulti)), NULL) == NULL) || ((coargrafptr->edgetax = memAlloc (finegrafptr->edgenbr * 2 * sizeof (Gnum))) == NULL)) { /* "* 2" for edlotab */ errorPrint ("graphCoarsen3: out of memory (1)"); if (coargrafptr->verttax != NULL) memFree (coargrafptr->verttax); coarptr->retuval = 2; #ifdef GRAPHCOARSENNOTHREAD #ifdef SCOTCH_PTHREAD threadBarrier (descptr); /* End-of-routine synchronization barrier for thread 0 */ #endif /* SCOTCH_PTHREAD */ return; /* Thread 0 returns */ #endif /* GRAPHCOARSENNOTHREAD */ } else { coargrafptr->verttax -= baseval; /* Base coarse graph arrays */ coargrafptr->vendtax = ((coarptr->flagval & GRAPHCOARSENNOCOMPACT) != 0) ? (coargrafptr->vendtax - baseval) : (coargrafptr->verttax + 1); coargrafptr->velotax -= baseval; coargrafptr->edgetax -= baseval; coargrafptr->edlotax = coargrafptr->edgetax + finegrafptr->edgenbr; if (coarmultsiz > 0) /* If array created internally, record its location */ coarptr->coarmulttab = coarmulttab; /* Record un-based array location */ } } #ifndef GRAPHCOARSENNOTHREAD if (thrdnbr > 1) { /* If more than one thread */ Gnum finevertnum; Gnum finevertnnd; Gnum coarvertnnd; Gnum coarvertnum; for (finevertnum = thrdptr->finevertbas, finevertnnd = thrdptr->finevertnnd, coarvertnum = 0; finevertnum < finevertnnd; finevertnum ++) { Gnum finematenum; /* Number of current mate vertex */ finematenum = finecoartax[finevertnum]; /* Get mate number */ if (finematenum >= finevertnum) /* If mate has larger number */ coarvertnum ++; /* One more local multinode created */ } thrdptr->scantab[0] = coarvertnum; threadScan (descptr, (void * const) &thrdptr->scantab[0], sizeof (GraphCoarsenThread), (ThreadScanFunc) graphCoarsenScan, NULL); /* Compute start indices for multinodes; barrier for coarptr->coarmulttab */ if (coarptr->retuval != 0) /* After scan barrier, in case memory allocation failed */ return; #ifdef SCOTCH_DEBUG_GRAPH2 if ((thrdnum == (thrdnbr - 1)) && (thrdptr->scantab[0] != coarvertnbr)) { errorPrint ("graphCoarsen3: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_GRAPH2 */ coarmulttax = coarptr->coarmulttab - baseval; /* All threads know coarptr->coarmulttab after scan barrier */ coarvertnum = thrdptr->scantab[0] - coarvertnum + baseval; /* Local start of coarse vertex numbering after scan */ for (finevertnum = thrdptr->finevertbas; finevertnum < finevertnnd; finevertnum ++) { Gnum finematenum; /* Number of current mate vertex */ finematenum = finecoartax[finevertnum]; /* Get mate number */ if (finematenum >= finevertnum) { /* If mate has larger number */ coarmulttax[coarvertnum].vertnum[0] = finevertnum; /* Build new multinode */ coarmulttax[coarvertnum].vertnum[1] = finematenum; /* Second index always biggest */ coarvertnum ++; /* One more local multinode created */ } } thrdptr->coarvertbas = baseval + DATASCAN (coarvertnbr, thrdnbr, thrdnum); /* Set bounds for coarse vertex processing */ thrdptr->coarvertnnd = baseval + DATASCAN (coarvertnbr, thrdnbr, thrdnum + 1); threadBarrier (descptr); /* Ensure all of coarmulttax has been written */ for (coarvertnum = thrdptr->coarvertbas, coarvertnnd = thrdptr->coarvertnnd; coarvertnum < coarvertnnd; coarvertnum ++) { finecoartax[coarmulttax[coarvertnum].vertnum[0]] = /* Build fine-to-coarse array */ finecoartax[coarmulttax[coarvertnum].vertnum[1]] = coarvertnum; } } else #endif /* GRAPHCOARSENNOTHREAD */ { Gnum finevertnnd; Gnum finevertnum; Gnum coarvertnum; #ifndef GRAPHCOARSENNOTHREAD if (coarptr->retuval != 0) /* In case memory allocation failed */ return; #endif /* GRAPHCOARSENNOTHREAD */ coarmulttax = coarptr->coarmulttab - baseval; /* Only thread 0 knows coarptr->coarmulttab */ for (finevertnum = thrdptr->finevertbas, finevertnnd = thrdptr->finevertnnd, coarvertnum = baseval; /* Finalize finecoartab array */ finevertnum < finevertnnd; finevertnum ++) { Gnum finematenum; /* Number of current mate vertex */ finematenum = finecoartax[finevertnum]; /* Get mate number */ if (finematenum >= finevertnum) { /* If mate has larger number */ coarmulttax[coarvertnum].vertnum[0] = finevertnum; /* Build new multinode */ coarmulttax[coarvertnum].vertnum[1] = finematenum; /* Second index always biggest */ finecoartax[finematenum] = /* Point to coarse vertex */ finecoartax[finevertnum] = coarvertnum; /* Always valid since coarvertnum <= finevertnum */ coarvertnum ++; /* One more multinode created */ } } #ifdef SCOTCH_DEBUG_GRAPH2 if (coarvertnum != (coarvertnbr + baseval)) { errorPrint ("graphCoarsen3: internal error (2)"); return; } #endif /* SCOTCH_DEBUG_GRAPH2 */ thrdptr->coarvertbas = baseval; /* Set bounds for coarse vertex processing */ thrdptr->coarvertnnd = coarvertnbr + baseval; } coarhashnbr = coarptr->coarhashmsk + 1; if ((thrdptr->coarhashtab = memAlloc (coarhashnbr * sizeof (GraphCoarsenHash))) == NULL) { /* Allocate local thread memory */ errorPrint ("graphCoarsen3: out of memory (2)"); coarptr->retuval = 2; /* No problem if concurrent writes */ #ifdef GRAPHCOARSENNOTHREAD #ifdef SCOTCH_PTHREAD threadBarrier (descptr); /* End-of-routine synchronization barrier */ #endif /* SCOTCH_PTHREAD */ return; /* Thread 0 returns */ #endif /* GRAPHCOARSENNOTHREAD */ } else memSet (thrdptr->coarhashtab, ~0, coarhashnbr * sizeof (GraphCoarsenHash)); /* Initialize (local) hash table */ #ifndef GRAPHCOARSENNOTHREAD if (thrdnbr > 1) { /* If more than one thread */ threadBarrier (descptr); /* Ensure all of finecoartax has been written (or memory error) */ if (coarptr->retuval != 0) /* After barrier, in case memory allocation failed */ return; if ((coarptr->flagval & GRAPHCOARSENNOCOMPACT) != 0) { /* If willing to have faster a non-compact graph */ Gnum coarvertnnd; Gnum coarvertnum; Gnum coaredgenbr; const Gnum * restrict const fineverttax = finegrafptr->verttax; const Gnum * restrict const finevendtax = finegrafptr->vendtax; for (coarvertnum = thrdptr->coarvertbas, /* For all local coarse vertices */ coarvertnnd = thrdptr->coarvertnnd, coaredgenbr = 0; coarvertnum < coarvertnnd; coarvertnum ++) { Gnum finevertnum; int i; i = 0; do { /* For all fine edges of multinode vertices */ finevertnum = coarmulttax[coarvertnum].vertnum[i]; coaredgenbr += finevendtax[finevertnum] - fineverttax[finevertnum]; } while (i ++, finevertnum != coarmulttax[coarvertnum].vertnum[1]); /* Skip to next matched vertex if both vertices not equal */ } thrdptr->coaredgebas = coaredgenbr; /* Save upper bound on local number of coarse edges for scan */ } else { thrdptr->coaredgebas = 0; /* No coarse edges accounted for yet */ graphCoarsenEdgeCt (coarptr, thrdptr); /* Count number of coarse local edges in thrdptr->coaredgebas */ memSet (thrdptr->coarhashtab, ~0, coarhashnbr * sizeof (GraphCoarsenHash)); /* Re-initialize (local) hash table */ } thrdptr->scantab[0] = thrdptr->coaredgebas; threadScan (descptr, &thrdptr->scantab[0], sizeof (GraphCoarsenThread), (ThreadScanFunc) graphCoarsenScan, NULL); /* Compute scan on coarse edge indices */ #ifdef SCOTCH_DEBUG_GRAPH2 if (thrdptr->scantab[0] > finegrafptr->edgenbr) { errorPrint ("graphCoarsen3: internal error (3)"); return; } if (((coarptr->flagval & GRAPHCOARSENNOCOMPACT) != 0) && (thrdnum == (thrdnbr - 1)) && (thrdptr->scantab[0] != finegrafptr->edgenbr)) { errorPrint ("graphCoarsen3: internal error (4)"); return; } #endif /* SCOTCH_DEBUG_GRAPH2 */ thrdptr->coaredgebas = thrdptr->scantab[0] - thrdptr->coaredgebas + baseval; /* Adjust value to have real edge start index */ } else #endif /* GRAPHCOARSENNOTHREAD */ { #ifndef GRAPHCOARSENNOTHREAD if (coarptr->retuval != 0) /* In case memory allocation failed */ return; #endif /* GRAPHCOARSENNOTHREAD */ thrdptr->coaredgebas = baseval; /* Start from the beginning */ } coaredgebas = thrdptr->coaredgebas; /* Record edge start index */ ((finegrafptr->edlotax != NULL) ? graphCoarsenEdgeLl : graphCoarsenEdgeLu) (coarptr, thrdptr); /* Build coarse graph edge array */ memFree (thrdptr->coarhashtab); /* Free local hash table */ thrdptr->coaredgebas -= coaredgebas; /* Compute accurate number of local edges */ #ifndef GRAPHCOARSENNOTHREAD if (thrdnbr > 1) threadReduce (descptr, thrdptr, sizeof (GraphCoarsenThread), (ThreadReduceFunc) graphCoarsenReduce, 0, NULL); /* Sum edloadj and get maximum of degrmax */ if (thrdnum == 0) #endif /* GRAPHCOARSENNOTHREAD */ { coargrafptr->edgenbr = thrdptr->coaredgebas; coargrafptr->edlosum = thrdptr->coaredloadj + finegrafptr->edlosum; coargrafptr->degrmax = thrdptr->coardegrmax; #ifndef GRAPHCOARSENNOTHREAD if ((coarptr->flagval & GRAPHCOARSENNOCOMPACT) == 0) /* If graph is compact */ #endif /* GRAPHCOARSENNOTHREAD */ { size_t coaredlooft; byte * coaredgetab; coargrafptr->verttax[coargrafptr->vertnnd] = coargrafptr->edgenbr + finegrafptr->baseval; /* Mark end of edge array */ coaredlooft = (byte *) coargrafptr->edlotax - (byte *) coargrafptr->edgetax; coaredgetab = memRealloc (coargrafptr->edgetax + baseval, coaredlooft + (coargrafptr->edgenbr * sizeof (Gnum))); coargrafptr->edgetax = (Gnum *) coaredgetab - baseval; coargrafptr->edlotax = (Gnum *) (coaredgetab + coaredlooft) - baseval; } } #ifdef GRAPHCOARSENNOTHREAD #ifdef SCOTCH_PTHREAD threadBarrier (descptr); /* End-of-routine synchronization barrier for thread 0 */ #endif /* SCOTCH_PTHREAD */ #endif /* GRAPHCOARSENNOTHREAD */ } /* This routine is the sequential core of the ** matching and coarse graph building process. ** It returns: ** - 0 : if the graph has been coarsened. ** - 1 : if the graph could not be coarsened. ** - 2 : on error. */ static int graphCoarsen2 ( GraphCoarsenData * restrict const coarptr) { Gnum * finematetab; /* Pointer to locally allocated mate array */ Gnum coarhashmsk; /* Mask for access to hash table */ Graph * restrict const coargrafptr = coarptr->coargrafptr; const Graph * restrict const finegrafptr = coarptr->finegrafptr; const Gnum finevertnbr = finegrafptr->vertnbr; const Gnum baseval = finegrafptr->baseval; #ifdef SCOTCH_PTHREAD const int thrdnbr = contextThreadNbr (coarptr->contptr); #else /* SCOTCH_PTHREAD */ const int thrdnbr = 1; #endif /* SCOTCH_PTHREAD */ for (coarhashmsk = 31; coarhashmsk < finegrafptr->degrmax; coarhashmsk = coarhashmsk * 2 + 1) ; /* Compute size of hash table */ coarptr->coarhashmsk = coarhashmsk * 4 + 3; /* Record it for (local) hash table allocation */ finematetab = NULL; /* Assume mating array provided */ if (coarptr->finematetax == NULL) { /* If no user-provided mating array */ if ((finematetab = (Gnum *) memAlloc (finevertnbr * sizeof (Gnum))) == NULL) { errorPrint ("graphCoarsen2: out of memory (1)"); /* Allocate coarse graph mating and indexing array */ return (2); } coarptr->finematetax = finematetab - baseval; } #ifndef GRAPHCOARSENNOTHREAD if (thrdnbr <= 1) /* If no multithreading, coarse graph will always be compact */ #endif /* GRAPHCOARSENNOTHREAD */ coarptr->flagval &= ~GRAPHCOARSENNOCOMPACT; /* Non-compact graphs always imply more than one thread */ if ((coarptr->flagval & GRAPHCOARSENUSEMATE) == 0) { /* If mating array not provided */ if (graphMatchInit (coarptr, thrdnbr) != 0) /* Initialize global data needed for matching */ return (2); } if (coarptr->coarmulttab != NULL) /* Record that multinode array was provided */ coarptr->flagval |= GRAPHCOARSENHASMULT; if ((coarptr->thrdtab = memAlloc (thrdnbr * sizeof (GraphCoarsenThread))) == NULL) { errorPrint ("graphCoarsen2: out of memory (2)"); if (finematetab != NULL) memFree (finematetab); return (2); } coarptr->retuval = 0; /* Assume no error */ contextThreadLaunch (coarptr->contptr, (ThreadFunc) graphCoarsen3, (void *) coarptr); memFree (coarptr->thrdtab); if ((coarptr->flagval & GRAPHCOARSENDSTMATE) == 0) /* If mating array destination not provided */ memFree (finematetab); /* Do not keep mating data array */ if (coarptr->coarvertnbr >= coarptr->coarvertmax) /* If coarsened graph is said to be too small, return here */ return (coarptr->retuval); if (coargrafptr == NULL) /* If coarse graph not wanted */ return (0); if (coargrafptr->verttax == NULL) /* If graph could not be created */ return (coarptr->retuval); #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (coargrafptr) != 0) { /* Check graph consistency */ errorPrint ("graphCoarsen2: inconsistent graph data"); graphFree (coargrafptr); return (2); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } /* This routine coarsens the given "finegraph" into ** "coargraph", as long as the coarsening ratio remains ** below some threshold value and the coarsened graph ** is not too small. ** It returns: ** - 0 : if the graph has been coarsened. ** - 1 : if the graph could not be coarsened. ** - 2 : on error. */ int graphCoarsen ( const Graph * restrict const finegrafptr, /*+ Graph to coarsen +*/ Graph * restrict const coargrafptr, /*+ Coarse graph to build +*/ Gnum * restrict * restrict const finecoarptr, /*+ Pointer to un-based fine-to-coarse array to build +*/ GraphCoarsenMulti * restrict * restrict const coarmultptr, /*+ Pointer to un-based multinode table to build +*/ const Gnum coarvertnbr, /*+ Minimum number of coarse vertices +*/ const double coarval, /*+ Maximum contraction ratio +*/ const Gnum flagval, const Anum * restrict const fineparotax, const Anum * restrict const finepfixtax, const Gnum finevfixnbr, Context * restrict const contptr) /*+ Execution context +*/ { GraphCoarsenData coardat; /* Graph coarsening global data */ int o; #ifdef SCOTCH_DEBUG_GRAPH1 if (coarval < 0.5L) /* If impossible coarsening ratio wanted */ return (1); /* We will never succeed */ #endif /* SCOTCH_DEBUG_GRAPH1 */ coardat.coarvertmax = (Gnum) ((double) (finegrafptr->vertnbr - finevfixnbr) * coarval) + finevfixnbr; /* Maximum number of coarse vertices */ if (coardat.coarvertmax < coarvertnbr) /* If there will be too few vertices in graph */ return (1); /* It is useless to go any further */ if (finecoarptr != NULL) { /* If fine-to-coarse destination provided */ coardat.flagval = flagval | GRAPHCOARSENDSTMATE; /* Array will be provided and/or kept */ coardat.finematetax = (*finecoarptr == NULL) ? NULL : (*finecoarptr - finegrafptr->baseval); } else { coardat.flagval = flagval; /* No mating array nor array data provided */ coardat.finematetax = NULL; /* No user-provided mating array */ } coardat.finegrafptr = finegrafptr; /* Fill caller part of matching data structure */ coardat.fineparotax = fineparotax; coardat.finepfixtax = finepfixtax; coardat.finevfixnbr = finevfixnbr; coardat.coargrafptr = coargrafptr; coardat.coarmulttab = *coarmultptr; coardat.contptr = contptr; o = graphCoarsen2 (&coardat); if (o != 0) return (o); *coarmultptr = coardat.coarmulttab; /* Give back location of multinode array */ if (finecoarptr != NULL) /* If fine-to-coarse destination provided */ *finecoarptr = coardat.finematetax + finegrafptr->baseval; /* Give back location of fine-to-coarse array */ return (0); } /* This routine coarsens the given "finegraph" into ** "coargraph", as long as the coarsening ratio remains ** below some threshold value and the coarsened graph ** is not too small. ** It returns: ** - 0 : if the graph has been coarsened. ** - 1 : if the graph could not be coarsened. ** - 2 : on error. */ int graphCoarsenMatch ( const Graph * restrict const finegrafptr, /*+ Graph to coarsen +*/ Gnum * restrict * restrict const finemateptr, /*+ Pointer to un-based mating array to build +*/ Gnum * restrict const coarvertptr, /*+ Minimum number of coarse vertices +*/ const double coarval, /*+ Maximum contraction ratio +*/ const Gnum flagval, /*+ Flag value +*/ const Anum * restrict const fineparotax, const Anum * restrict const finepfixtax, const Gnum finevfixnbr, Context * restrict const contptr) /*+ Execution context +*/ { GraphCoarsenData coardat; /* Graph coarsening global data */ int o; #ifdef SCOTCH_DEBUG_GRAPH1 if (coarval < 0.5L) /* If impossible coarsening ratio wanted */ return (1); /* We will never succeed */ #endif /* SCOTCH_DEBUG_GRAPH1 */ coardat.coarvertmax = (Gnum) ((double) (finegrafptr->vertnbr - finevfixnbr) * coarval) + finevfixnbr; /* Maximum number of coarse vertices */ if (coardat.coarvertmax < *coarvertptr) /* If there will be too few vertices in graph */ return (1); /* It is useless to go any further */ coardat.flagval = GRAPHCOARSENDSTMATE | (flagval & GRAPHCOARSENNOMERGE); /* Array will be provided and/or kept */ coardat.finematetax = (*finemateptr == NULL) ? NULL : (*finemateptr - finegrafptr->baseval); coardat.finegrafptr = finegrafptr; /* Fill caller part of matching data structure */ coardat.fineparotax = fineparotax; coardat.finepfixtax = finepfixtax; coardat.finevfixnbr = finevfixnbr; coardat.coargrafptr = NULL; coardat.coarmulttab = NULL; coardat.contptr = contptr; o = graphCoarsen2 (&coardat); if (o != 0) return (o); *coarvertptr = coardat.coarvertnbr; *finemateptr = coardat.finematetax + finegrafptr->baseval; /* Give back location of fine-to-coarse array */ return (0); } /* This routine builds a coarse graph from the fine ** graph topology and a user-provided mating array. ** It returns: ** - 0 : if the graph has been coarsened. ** - 1 : if the graph could not be coarsened. ** - 2 : on error. */ int graphCoarsenBuild ( const Graph * restrict const finegrafptr, /*+ Graph to coarsen +*/ Graph * restrict const coargrafptr, /*+ Coarse graph to build +*/ Gnum * restrict const finematetab, /*+ Pointer to un-based user-provided mating array +*/ GraphCoarsenMulti * restrict * restrict const coarmultptr, /*+ Pointer to un-based multinode table to build +*/ const Gnum coarvertnbr, /*+ User-provided number of coarse vertices +*/ Context * restrict const contptr) /*+ Execution context +*/ { GraphCoarsenData coardat; /* Graph coarsening global data */ int o; coardat.flagval = GRAPHCOARSENDSTMATE | GRAPHCOARSENUSEMATE; /* Mating array data provided */ coardat.finegrafptr = finegrafptr; /* Fill caller part of matching data structure */ coardat.fineparotax = NULL; /* TODO: arrays not handled yet */ coardat.finepfixtax = NULL; coardat.finevfixnbr = 0; coardat.finematetax = finematetab - finegrafptr->baseval; /* User-provided mating array */ coardat.coargrafptr = coargrafptr; coardat.coarvertmax = finegrafptr->vertnbr + 1; /* Value that always succeeds */ coardat.coarvertnbr = coarvertnbr; /* Set number of coarse vertices */ coardat.coarmulttab = *coarmultptr; coardat.contptr = contptr; o = graphCoarsen2 (&coardat); if (o != 0) return (o); *coarmultptr = coardat.coarmulttab; /* Give back location of multinode array */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_coarsen.h000066400000000000000000000256211514310134000267070ustar00rootroot00000000000000/* Copyright 2004,2007,2011-2013,2015,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_coarsen.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph coarsening **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 02 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 18 aug 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 28 nov 1995 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 17 sep 1998 **/ /** # Version 4.0 : from : 13 dec 2001 **/ /** to : 05 dec 2004 **/ /** # Version 6.0 : from : 09 mar 2011 **/ /** to : 30 aug 2020 **/ /** # Version 7.0 : from : 28 jul 2018 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ #if (! defined SCOTCH_PTHREAD) && (! defined GRAPHCOARSENNOTHREAD) #define GRAPHCOARSENNOTHREAD #endif /* (! defined SCOTCH_PTHREAD) && (! defined GRAPHCOARSENNOTHREAD) */ /*+ Graph option flags. Their values must be equal to those defined in library.h and library_f.h +*/ #define GRAPHCOARSENNONE 0x0000 /* No options set */ #define GRAPHCOARSENDSTMATE 0x0001 /* Matching/fine-to-coarse array destination provided */ #define GRAPHCOARSENDSTMULT 0x0002 /* Multinode array destination provided */ #define GRAPHCOARSENHASMULT 0x0004 /* Multinode array provided */ #define GRAPHCOARSENUSEMATE 0x0008 /* Matching array data provided */ #define GRAPHCOARSENNOCOMPACT 0x1000 /* Create a non-compact graph */ #define GRAPHCOARSENDETERMINISTIC 0x2000 /* Use deterministic algorithms only */ #define GRAPHCOARSENNOMERGE 0x4000 /* Do not merge isolated vertices */ /*+ Prime number for hashing vertex numbers. +*/ #define GRAPHCOARSENHASHPRIME 1049 /*+ Prime number +*/ /* ** The type and structure definitions. */ /*+ Here are the edge matching function types for coarsening. +*/ typedef enum GraphCoarsenType_ { GRAPHCOARHEM, /*+ Heavy-edge matching +*/ GRAPHCOARSCN, /*+ Scanning (first) matching +*/ GRAPHCOARNBR /*+ Number of matching types +*/ } GraphCoarsenType; /*+ The multinode table element, which contains pairs of based indices of collapsed vertices. Both values are equal for uncollapsed vertices. As the base values of the fine and coarse graphs may be different, the values of the collapsed vertices are set with respect to the base value of the fine graph. +*/ typedef struct GraphCoarsenMulti_ { Gnum vertnum[2]; /*+ Numbers of the collapsed vertices of a multinode +*/ } GraphCoarsenMulti; /*+ A table made of such elements is used during coarsening to build the edge array of the new graph, after the labeling of the vertices. +*/ typedef struct GraphCoarsenHash_ { Gnum vertorgnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum vertendnum; /*+ Other end vertex number +*/ Gnum edgenum; /*+ Number of corresponding edge +*/ } GraphCoarsenHash; /*+ The thread-specific data block. +*/ typedef struct GraphCoarsenThread_ { GraphCoarsenHash * coarhashtab; /*+ End vertex hash table (may be local) +*/ Gnum coarvertnnd; /*+ After-last coarse vertex number +*/ Gnum coarvertbas; /*+ Minimum coarse vertex number +*/ Gnum coarvertnbr; /*+ Number of coarse vertices to date +*/ Gnum coaredgebas; /*+ Minimum coarse edge number +*/ Gnum coaredloadj; /*+ Local coarse edge load sum adjust +*/ Gnum coardegrmax; /*+ Local maximum degree +*/ Gnum finevertbas; /*+ Start of fine vertex range +*/ Gnum finevertnnd; /*+ End of fine vertex range +*/ Gnum * finequeutab; /*+ Queue array (may be global) +*/ Gnum finequeudlt; /*+ Multiplicative factor for queue slot size on first pass +*/ Gnum finequeunbr; /*+ Number of vertices in (local) queue +*/ Gnum scantab[2]; } GraphCoarsenThread; /*+ The matching and coarsening routine parameter structure. It contains the thread-independent data. +*/ typedef struct GraphCoarsenData_ { int flagval; /*+ Flags for controlling matching and coarsening +*/ const Graph * finegrafptr; /*+ Fine graph to perform matching on +*/ const Anum * fineparotax; /*+ Old part array +*/ const Anum * finepfixtax; /*+ Array of fixed vertices +*/ Gnum finevfixnbr; /*+ Number of fine fixed vertices +*/ Gnum * finematetax; /*+ Fine mate array / fine-to-coarse array +*/ Graph * coargrafptr; /*+ Coarse graph to build +*/ Gnum coarvertmax; /*+ Maximum number of vertices to get +*/ Gnum coarvertnbr; /*+ Global number of coarse vertices after matching +*/ GraphCoarsenMulti * coarmulttab; /*+ Multinode array +*/ Gnum coarmultsiz; /*+ Size of multinode array allocated in graph +*/ Gnum coarhashmsk; /*+ Hash table mask +*/ int * finelocktax; /*+ Global matching lock array (if any) +*/ GraphCoarsenThread * thrdtab; /*+ Array of thread-specific data +*/ int fumaval; /*+ Index of mating routine in function array +*/ volatile int retuval; /*+ Return value +*/ Context * contptr; /*+ Execution context +*/ } GraphCoarsenData; /* ** The function prototypes. */ #ifdef SCOTCH_GRAPH_COARSEN #ifndef GRAPHCOARSENNOTHREAD static void graphCoarsenEdgeCt (const GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const); #endif /* GRAPHCOARSENNOTHREAD */ static void graphCoarsenEdgeLl (const GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const); static void graphCoarsenEdgeLu (const GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const); #endif /* SCOTCH_GRAPH_COARSEN */ int graphCoarsen (const Graph * restrict const, Graph * restrict const, Gnum * restrict * restrict const, GraphCoarsenMulti * restrict * restrict const, const Gnum, const double, const Gnum, const Anum * restrict const, const Anum * restrict const, const Gnum, Context * restrict const); int graphCoarsenMatch (const Graph * restrict const, Gnum * restrict * restrict const, Gnum * restrict const, const double, const Gnum, const Anum * restrict const, const Anum * restrict const, const Gnum, Context * restrict const); int graphCoarsenBuild (const Graph * restrict const, Graph * restrict const, Gnum * restrict const, GraphCoarsenMulti * restrict * restrict const, const Gnum, Context * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_coarsen_edge.c000066400000000000000000000225421514310134000276650ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2012,2018,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_coarsen_edge.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This commodity file contains the edge **/ /** arrays building subroutine which is **/ /** duplicated, with minor modifications, **/ /** into graph_coarsen.c. **/ /** **/ /** DATES : # Version 4.0 : from : 17 dec 2001 **/ /** to : 25 feb 2004 **/ /** # Version 5.0 : from : 13 dec 2006 **/ /** to : 14 dec 2006 **/ /** # Version 5.1 : from : 30 oct 2009 **/ /** to : 30 oct 2009 **/ /** # Version 6.0 : from : 28 oct 2012 **/ /** to : 28 feb 2015 **/ /** # Version 7.0 : from : 28 jul 2018 **/ /** to : 28 oct 2025 **/ /** **/ /************************************************************/ static void GRAPHCOARSENEDGENAME ( const GraphCoarsenData * restrict const coarptr, /* The coarptr structure is constant during all of this process */ GraphCoarsenThread * restrict const thrdptr) { Gnum coarvertnum; Gnum coarvertnnd; Gnum coaredgenum; #ifndef GRAPHCOARSENEDGECOUNT Gnum coaredloadj; /* Edge load sum adjust with respect to fine graph edge load sum */ Gnum coardegrmax; #endif /* GRAPHCOARSENEDGECOUNT */ const Graph * restrict const finegrafptr = coarptr->finegrafptr; const Gnum * restrict const fineverttax = finegrafptr->verttax; const Gnum * restrict const finevendtax = finegrafptr->vendtax; const Gnum * restrict const fineedgetax = finegrafptr->edgetax; #ifdef GRAPHCOARSENEDLOTAB const Gnum * restrict const fineedlotax = finegrafptr->edlotax; #endif /* GRAPHCOARSENEDLOTAB */ Gnum * restrict const finecoartax = coarptr->finematetax; #ifndef GRAPHCOARSENEDGECOUNT const Gnum * restrict const finevelotax = finegrafptr->velotax; const Graph * restrict const coargrafptr = coarptr->coargrafptr; Gnum * restrict const coarverttax = coargrafptr->verttax; Gnum * restrict const coarvelotax = coargrafptr->velotax; Gnum * restrict const coaredgetax = coargrafptr->edgetax; Gnum * restrict const coaredlotax = coargrafptr->edlotax; #endif /* GRAPHCOARSENEDGECOUNT */ GraphCoarsenHash * restrict const coarhashtab = thrdptr->coarhashtab; /* Hash table is thread-dependent for memory locality */ const Gnum coarhashmsk = coarptr->coarhashmsk; const GraphCoarsenMulti * restrict const coarmulttax = coarptr->coarmulttab - finegrafptr->baseval; #ifndef GRAPHCOARSENEDGECOUNT coaredloadj = 0; coardegrmax = 0; #endif /* GRAPHCOARSENEDGECOUNT */ for (coarvertnum = thrdptr->coarvertbas, /* For all local coarse vertices */ coarvertnnd = thrdptr->coarvertnnd, coaredgenum = thrdptr->coaredgebas; coarvertnum < coarvertnnd; coarvertnum ++) { Gnum finevertnum; int i; #ifndef GRAPHCOARSENEDGECOUNT /* If we do not only want to count */ Gnum coarveloval; /* Load of coarse vertex */ Gnum coaredgetmp; /* Current index in edge array */ coarverttax[coarvertnum] = /* Set vertex edge index */ coaredgetmp = coaredgenum; coarveloval = 0; #endif /* GRAPHCOARSENEDGECOUNT */ i = 0; do { /* For all fine edges of multinode vertices */ Gnum fineedgenum; finevertnum = coarmulttax[coarvertnum].vertnum[i]; #ifndef GRAPHCOARSENEDGECOUNT /* If we do not only want to count */ coarveloval += (finevelotax != NULL) ? finevelotax[finevertnum] : 1; #endif /* GRAPHCOARSENEDGECOUNT */ for (fineedgenum = fineverttax[finevertnum]; fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { Gnum coarvertend; /* Number of coarse vertex which is end of fine edge */ Gnum hashnum; coarvertend = finecoartax[fineedgetax[fineedgenum]]; if (coarvertend != coarvertnum) { /* If not end of collapsed edge */ for (hashnum = (coarvertend * GRAPHCOARSENHASHPRIME) & coarhashmsk; ; hashnum = (hashnum + 1) & coarhashmsk) { if (coarhashtab[hashnum].vertorgnum != coarvertnum) { /* If old slot */ coarhashtab[hashnum].vertorgnum = coarvertnum; /* Mark it in reference array */ coarhashtab[hashnum].vertendnum = coarvertend; coarhashtab[hashnum].edgenum = coaredgenum; #ifndef GRAPHCOARSENEDGECOUNT /* If we do not only want to count */ coaredgetax[coaredgenum] = coarvertend; /* One more edge created */ #ifdef GRAPHCOARSENEDLOTAB coaredlotax[coaredgenum] = fineedlotax[fineedgenum]; #else /* GRAPHCOARSENEDLOTAB */ coaredlotax[coaredgenum] = 1; #endif /* GRAPHCOARSENEDLOTAB */ #endif /* GRAPHCOARSENEDGECOUNT */ coaredgenum ++; break; /* Give up hashing */ } if (coarhashtab[hashnum].vertendnum == coarvertend) { /* If coarse edge already exists */ #ifndef GRAPHCOARSENEDGECOUNT #ifdef GRAPHCOARSENEDLOTAB coaredlotax[coarhashtab[hashnum].edgenum] += fineedlotax[fineedgenum]; /* Accumulate edge load */ #else /* GRAPHCOARSENEDLOTAB */ coaredlotax[coarhashtab[hashnum].edgenum] ++; #endif /* GRAPHCOARSENEDLOTAB */ #endif /* GRAPHCOARSENEDGECOUNT */ break; /* Give up hashing */ } } } #ifndef GRAPHCOARSENEDGECOUNT else { #ifdef GRAPHCOARSENEDLOTAB coaredloadj -= fineedlotax[fineedgenum]; #else /* GRAPHCOARSENEDLOTAB */ coaredloadj --; #endif /* GRAPHCOARSENEDLOTAB */ } #endif /* GRAPHCOARSENEDGECOUNT */ } } while (i ++, finevertnum != coarmulttax[coarvertnum].vertnum[1]); /* Skip to next matched vertex if both vertices not equal */ #ifndef GRAPHCOARSENEDGECOUNT /* If we do not only want to count */ coarvelotax[coarvertnum] = coarveloval; /* Create coarse vertex load array */ coaredgetmp = coaredgenum - coaredgetmp; /* Compute degree of current vertex */ if (coardegrmax < coaredgetmp) coardegrmax = coaredgetmp; #ifndef GRAPHCOARSENNOTHREAD if ((coarptr->flagval & GRAPHCOARSENNOCOMPACT) != 0) /* In all cases except for non-compact, multi-threaded graphs */ coargrafptr->vendtax[coarvertnum] = coaredgenum; #endif /* GRAPHCOARSENNOTHREAD */ #endif /* GRAPHCOARSENEDGECOUNT */ } /* End of (local) edge array not marked since will be done by next or main thread */ thrdptr->coaredgebas = coaredgenum; /* Record counted number of edges */ #ifndef GRAPHCOARSENEDGECOUNT thrdptr->coaredloadj = coaredloadj; thrdptr->coardegrmax = coardegrmax; #endif /* GRAPHCOARSENEDGECOUNT */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_diam.c000066400000000000000000000166771514310134000261750ustar00rootroot00000000000000/* Copyright 2017,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_diam.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the graph **/ /** (weighted) pseudo-diameter computation **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 17 jan 2017 **/ /** to : 22 feb 2018 **/ /** # Version 6.1 : from : 31 mar 2021 **/ /** to : 31 mar 2021 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "fibo.h" #include "graph_diam.h" /***************************************/ /* */ /* This routine handles source graphs. */ /* */ /***************************************/ /* Comparison routine for the Fibonacci ** heap structure. */ static int graphDiamCmpFunc ( const FiboNode * nod0ptr, const FiboNode * nod1ptr) { Gnum dis0val; Gnum dis1val; dis0val = ((GraphDiamVertex *) nod0ptr)->distval; dis1val = ((GraphDiamVertex *) nod1ptr)->distval; if (dis0val < dis1val) return (-1); return (1); } /* This routine computes the vertex-traversal, ** edge-weighted pseudo-diameter of the given ** graph. It is equal to GNUMMAX if the graph ** is not connected. ** It returns: ** - >= 0 : weighted pseudo-diameter. ** - -1 : on error. */ Gnum graphDiamPV ( const Graph * const grafptr, Context * restrict const contptr) { FiboHeap fibodat; GraphDiamVertex * restrict vexxtax; /* Extended vertex array */ Gnum vertnum; Gnum rootnum; Gnum diammax; Gnum diambst; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const velotax = grafptr->velotax; const Gnum * restrict const edgetax = grafptr->edgetax; const Gnum * restrict const edlotax = grafptr->edlotax; if (grafptr->vertnbr <= 0) /* Diameter of empty graphs is zero */ return (0); if ((vexxtax = (GraphDiamVertex *) memAlloc (grafptr->vertnbr * sizeof (GraphDiamVertex))) == NULL) { errorPrint ("graphWdiam: out of memory"); return (-1); } if (fiboHeapInit (&fibodat, graphDiamCmpFunc) != 0) { errorPrint ("graphWdiam: cannot initialize Fibonacci heap"); memFree (vexxtax); return (-1); } vexxtax -= grafptr->baseval; rootnum = contextIntRandVal (contptr, grafptr->vertnbr) + grafptr->baseval; diammax = 0; /* Ensure at least one pass */ do { GraphDiamVertex * vexxptr; Gnum vertnbr; diambst = diammax; /* Record as starting values for this pass */ fiboHeapFree (&fibodat); /* Reset tree */ for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) /* Reset work array */ vexxtax[vertnum].distval = GNUMMAX; vexxptr = vexxtax + rootnum; vexxptr->distval = 0; fiboHeapAdd (&fibodat, (FiboNode *) vexxptr); vertnbr = 0; while ((vexxptr = (GraphDiamVertex *) fiboHeapMin (&fibodat)) != NULL) { /* As long as there's a vertex to extract */ Gnum vertnum; Gnum distval; Gnum edgenum; vertnbr ++; /* One more vertex processed */ fiboHeapDel (&fibodat, (FiboNode *) vexxptr); /* Remove it from heap */ distval = vexxptr->distval; /* Keep current distance value */ vexxptr->distval = -1; /* Flag vertex as already processed */ vertnum = (Gnum) (vexxptr - vexxtax); if (diammax < distval) { diammax = distval; rootnum = vertnum; } if (velotax != NULL) /* Add node weight as it is being traversed */ distval += velotax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { GraphDiamVertex * vexxpnd; Gnum vertend; Gnum disttmp; Gnum distold; vertend = edgetax[edgenum]; vexxpnd = vexxtax + vertend; disttmp = distval + ((edlotax != NULL) ? edlotax[edgenum] : 1); distold = vexxpnd->distval; if (disttmp < distold) { /* Never the case for already processed vertices */ vexxpnd->distval = disttmp; if (distold == GNUMMAX) /* If newly touched node */ fiboHeapAdd (&fibodat, (FiboNode *) vexxpnd); /* Add it to the heap */ else fiboHeapDecrease (&fibodat, (FiboNode *) vexxpnd); /* Else decrease its value in the heap */ } } } if (vertnbr != grafptr->vertnbr) { /* If graph is not connected */ diambst = GNUMMAX; goto abort; } } while (diambst < diammax); diambst = diammax; abort: fiboHeapExit (&fibodat); memFree (vexxtax + grafptr->baseval); return (diambst); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_diam.h000066400000000000000000000054421514310134000261660ustar00rootroot00000000000000/* Copyright 2017 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_diam.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph (pseudo)diameter **/ /** computation functions. **/ /** **/ /** DATES : # Version 6.0 : from : 17 jan 2017 **/ /** to : 17 jan 2017 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Auxiliary vertex structure. +*/ typedef struct GraphDiamVertex_ { FiboNode fibodat; /*+ Fibonacci heap node structure +*/ Gnum distval; /*+ Current distance value +*/ } GraphDiamVertex; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_dump.c000066400000000000000000000212441514310134000262120ustar00rootroot00000000000000/* Copyright 2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_dump.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module dumps the contents of a **/ /** graph on the form of a C source code. **/ /** **/ /** DATES : # Version 6.0 : from : 27 dec 2019 **/ /** to : 29 dec 2019 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "graph_dump.h" /* This routine dumps the given graph on ** the form of C source code. ** - 0 : on success. ** - !0 : on error. */ int graphDump ( const Graph * const grafptr, /* Graph to dump */ const char * const prefptr, /* Prefix name */ const char * const suffptr, /* Suffix name */ FILE * const fileptr) /* Output stream */ { int o; o = graphDumpArrays (grafptr, "Gnum", prefptr, suffptr, fileptr); /* Dump data arrays */ o |= (fprintf (fileptr, "void\n" "%sGraphBuild%s (\n" "Graph * grafptr)\n" "{\n" " graphInit (grafptr);\n", prefptr, suffptr) < 0); o |= graphDump2 (grafptr, "grafptr->", prefptr, suffptr, fileptr); o |= (fprintf (fileptr, "}\n") < 0); return (o); } int graphDump2 ( const Graph * const grafptr, /* Graph to dump */ const char * const dataptr, /* Data structure name */ const char * const prefptr, /* Prefix name */ const char * const suffptr, /* Suffix name */ FILE * const fileptr) /* Output stream */ { int o; o = (fprintf (fileptr, " %sbaseval = " GNUMSTRING ";\n" " %svertnbr = " GNUMSTRING ";\n" " %svertnnd = " GNUMSTRING ";\n" " %sverttax = %sverttab%s - " GNUMSTRING ";\n", dataptr, grafptr->baseval, dataptr, grafptr->vertnbr, dataptr, grafptr->vertnnd, dataptr, prefptr, suffptr, grafptr->baseval) < 0); if (grafptr->vendtax != (grafptr->verttax + 1)) o |= (fprintf (fileptr, " %svendtax = %svendtab%s - " GNUMSTRING ";\n", dataptr, prefptr, suffptr, grafptr->baseval) < 0); else o |= (fprintf (fileptr, " %svendtax = %sverttax + 1;\n", dataptr, dataptr) < 0); if (grafptr->velotax != NULL) o |= (fprintf (fileptr, " %svelotax = %svelotab%s - " GNUMSTRING ";\n", dataptr, prefptr, suffptr, grafptr->baseval) < 0); if (grafptr->vlbltax != NULL) o |= (fprintf (fileptr, " %svlbltax = %svlbltab%s - " GNUMSTRING ";\n", dataptr, prefptr, suffptr, grafptr->baseval) < 0); o |= (fprintf (fileptr, " %svelosum = " GNUMSTRING ";\n" " %sedgenbr = " GNUMSTRING ";\n" " %sedgetax = %sedgetab%s - " GNUMSTRING ";\n", dataptr, grafptr->velosum, dataptr, grafptr->edgenbr, dataptr, prefptr, suffptr, grafptr->baseval) < 0); if (grafptr->edlotax != NULL) o |= (fprintf (fileptr, " %sedlotax = %sdelotab%s - " GNUMSTRING ";\n", dataptr, prefptr, suffptr, grafptr->baseval) < 0); o |= (fprintf (fileptr, " %sedlosum = " GNUMSTRING ";\n" " %sdegrmax = " GNUMSTRING ";\n", dataptr, grafptr->edlosum, dataptr, grafptr->degrmax) < 0); return (o); } /* This routine dumps a data array on ** the form of C source code. ** - 0 : on success. ** - !0 : on error. */ int graphDumpArray ( const Gnum * const datatab, const Gnum datanbr, const char * const tyinptr, /* Integer type name */ const char * const prefptr, /* Prefix name */ const char * const nameptr, /* Infix name */ const char * const suffptr, /* Suffix name */ FILE * const fileptr) { Gnum datanum; if (fprintf (fileptr, "%s %s%s%s[] = {", tyinptr, prefptr, nameptr, suffptr) < 0) return (1); for (datanum = 0; datanum < (datanbr - 1); datanum ++) { if (fprintf (fileptr, "%s" GNUMSTRING ",", (((datanum % 16) == 0) ? "\n " : " "), datatab[datanum]) < 0) return (1); } if (datanbr > 0) { if (fprintf (fileptr, "%s" GNUMSTRING, (((datanum % 16) == 0) ? "\n " : " "), datatab[datanum]) < 0) return (1); } if (fprintf (fileptr, "\n};\n\n") < 0) return (1); return (0); } /* This routine dumps graph data arrays ** on the form of C source code. ** - 0 : on success. ** - !0 : on error. */ int graphDumpArrays ( const Graph * const grafptr, /* Graph to dump */ const char * const tyinptr, /* Integer type name */ const char * const prefptr, /* Prefix name */ const char * const suffptr, /* Suffix name */ FILE * const fileptr) /* Output stream */ { int o; const Gnum baseval = grafptr->baseval; const Gnum vertnbr = grafptr->vertnbr; const Gnum edgenbr = grafptr->edgenbr; o = 0; if (grafptr->vendtax != (grafptr->verttax + 1)) { o |= graphDumpArray (grafptr->verttax + baseval, vertnbr, tyinptr, prefptr, "verttab", suffptr, fileptr); o |= graphDumpArray (grafptr->vendtax + baseval, vertnbr, tyinptr, prefptr, "vendtab", suffptr, fileptr); } else o |= graphDumpArray (grafptr->verttax + baseval, vertnbr + 1, tyinptr, prefptr, "verttab", suffptr, fileptr); if (grafptr->velotax != NULL) o |= graphDumpArray (grafptr->velotax + baseval, vertnbr, tyinptr, prefptr, "velotab", suffptr, fileptr); if (grafptr->vlbltax != NULL) o |= graphDumpArray (grafptr->vlbltax + baseval, vertnbr, tyinptr, prefptr, "vlbltab", suffptr, fileptr); o |= graphDumpArray (grafptr->edgetax + baseval, edgenbr, tyinptr, prefptr, "edgetab", suffptr, fileptr); if (grafptr->edlotax != NULL) o |= graphDumpArray (grafptr->edlotax + baseval, edgenbr, tyinptr, prefptr, "edlotab", suffptr, fileptr); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_dump.h000066400000000000000000000060351514310134000262200ustar00rootroot00000000000000/* Copyright 2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_dump.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph dump functions. **/ /** **/ /** DATES : # Version 6.0 : from : 27 dec 2019 **/ /** to : 27 dec 2019 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int graphDump (const Graph * const, const char * const, const char * const, FILE * const); int graphDump2 (const Graph * const, const char * const, const char * const, const char * const, FILE * const); int graphDumpArray (const Gnum * const, const Gnum, const char * const, const char * const, const char * const, const char * const, FILE * const); int graphDumpArrays (const Graph * const, const char * const, const char * const, const char * const, FILE * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_ielo.c000066400000000000000000000130601514310134000261720ustar00rootroot00000000000000/* Copyright 2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_ielo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** functions. **/ /** **/ /** DATES : # Version 6.0 : from : 28 dec 2016 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /** NOTES : # This code derives from that of **/ /** arch_build.c. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine computes the inverse of the edge load ** array of the given graph structure. The original ** edge load array and the inverse edge load array ** might be the same. ** It returns: ** - Gnum : new edlosum of the inverse weight load structure. ** - -1 : on error. */ Gnum graphIelo ( const Graph * const grafptr, Gnum * const edlotax, /* Pointer to edge load array [norestrict] */ Gnum * const ielotax) /* Pointer to inverse edge load array to fill [norestrict] */ { Gnum vertnum; Gnum edlomin; Gnum edlomax; Gnum edlosum; float prodval; const Gnum vertnnd = grafptr->vertnnd; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; edlomin = GNUMMAX; edlomax = 0; for (vertnum = grafptr->baseval; vertnum < vertnnd; vertnum ++) { /* Handle non-compact graphs as well as compact graphs */ Gnum edgenum; Gnum edgennd; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { Gnum edloval; edloval = edlotax[edgenum]; if (edloval < edlomin) edlomin = edloval; if (edloval > edlomax) edlomax = edloval; } } if (edlomin < 1) /* Zero-weight edges cannot be inverted */ edlomin = 1; prodval = (float) edlomin * (float) edlomax; edlosum = 0; for (vertnum = grafptr->baseval; vertnum < vertnnd; vertnum ++) { Gnum edgenum; Gnum edgennd; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { Gnum edloval; edloval = edlotax[edgenum]; if (edloval <= edlomin) /* "<=" for zero-weight edges */ edloval = edlomax; else if (edloval == edlomax) edloval = edlomin; else edloval = (Gnum) (prodval / (float) edloval + 0.49F); #ifdef SCOTCH_DEBUG_ARCH2 if ((edloval < edlomin) || (edloval > edlomax)) { errorPrint ("graphIelo: internal error"); return (-1); } #endif /* SCOTCH_DEBUG_ARCH2 */ edlosum += /* Accumulate edge load sum */ ielotax[edgenum] = edloval; /* Write inversed cost in work array */ } } return (edlosum); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_induce.c000066400000000000000000000420451514310134000265160ustar00rootroot00000000000000/* Copyright 2004,2007-2009,2011,2013-2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** subgraph-making functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 17 sep 1998 **/ /** # Version 4.0 : from : 28 nov 2001 **/ /** to : 17 apr 2006 **/ /** # Version 5.0 : from : 14 dec 2006 **/ /** to : 11 jun 2008 **/ /** # Version 5.1 : from : 01 jan 2009 **/ /** to : 01 jan 2009 **/ /** # Version 6.0 : from : 29 mar 2011 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /** NOTES : # Several algorithms, such as the **/ /** active graph building routine of **/ /** bgraphInit2, assume that, for every **/ /** vertex, remaining edges will be kept **/ /** in the same order as in the original **/ /** graph. This must be enforced. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_GRAPH_INDUCE #include "module.h" #include "common.h" #include "graph.h" #include "graph_induce.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine builds the graph induced ** by the original graph and the list of ** selected vertices. ** The induced vnumtab array is the list ** array if the original graph does not have ** a vnumtab, or the proper subset of the ** original vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphInduceList ( const Graph * restrict const orggrafptr, const Gnum indvnumnbr, const Gnum * restrict const indvnumtab, Graph * restrict const indgrafptr) { Gnum * restrict orgindxtax; /* Based access to vertex translation array */ Gnum indvertnnd; Gnum indvertnum; /* Number of current vertex in induced graph */ const Gnum * restrict indvnumtax; Gnum indedgenbr; /* (Approximate) number of edges in induced graph */ const Gnum * restrict const orgverttax = orggrafptr->verttax; const Gnum * restrict const orgvendtax = orggrafptr->vendtax; if (graphInduce2 (orggrafptr, indgrafptr, indvnumnbr) != 0) { errorPrint ("graphInduceList: cannot create induced graph"); return (1); } memCpy (indgrafptr->vnumtax + indgrafptr->baseval, /* Copy vertex number array from list */ indvnumtab, indvnumnbr * sizeof (Gnum)); indvnumtax = indgrafptr->vnumtax; orgindxtax = indgrafptr->edlotax; memSet (orgindxtax + orggrafptr->baseval, ~0, orggrafptr->vertnbr * sizeof (Gnum)); /* Preset index array */ for (indvertnum = indgrafptr->baseval, indvertnnd = indvertnum + indvnumnbr, indedgenbr = 0; /* Fill index array */ indvertnum < indvertnnd; indvertnum ++) { Gnum orgvertnum; orgvertnum = indvnumtax[indvertnum]; orgindxtax[orgvertnum] = indvertnum; /* Mark selected vertices */ indedgenbr += orgvendtax[orgvertnum] - orgverttax[orgvertnum]; } return (graphInduce3 (orggrafptr, indgrafptr, indvnumnbr, indedgenbr)); } /* This routine builds the graph induced ** by the original graph and the vector ** of selected vertices. ** The induced vnumtab array is the list of ** selected vertices if the original graph ** does not have a vnumtab, or the proper ** subset of the original vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphInducePart ( const Graph * restrict const orggrafptr, /* Pointer to original graph */ const GraphPart * const orgparttax, /* Based array of vertex partition flags */ const Gnum indvnumnbr, /* Number of vertices in selected part */ const GraphPart indpartval, /* Partition value of vertices to keep */ Graph * restrict const indgrafptr) /* Pointer to induced subgraph */ { Gnum * restrict orgindxtax; /* Based access to vertex translation array */ Gnum orgvertnum; Gnum indvertnum; /* Number of current vertex in induced graph */ Gnum * restrict indvnumtax; Gnum indedgenbr; /* (Approximate) number of edges in induced graph */ const Gnum * restrict const orgverttax = orggrafptr->verttax; const Gnum * restrict const orgvendtax = orggrafptr->vendtax; if (graphInduce2 (orggrafptr, indgrafptr, indvnumnbr) != 0) { errorPrint ("graphInducePart: cannot create induced graph"); return (1); } orgindxtax = indgrafptr->edlotax; indvnumtax = indgrafptr->vnumtax; for (orgvertnum = indvertnum = orggrafptr->baseval, indedgenbr = 0; /* Fill index array */ orgvertnum < orggrafptr->vertnnd; orgvertnum ++) { if (orgparttax[orgvertnum] == indpartval) { /* If vertex should be kept */ orgindxtax[orgvertnum] = indvertnum; /* Mark selected vertex */ indvnumtax[indvertnum] = orgvertnum; indedgenbr += orgvendtax[orgvertnum] - orgverttax[orgvertnum]; indvertnum ++; /* One more induced vertex created */ } else orgindxtax[orgvertnum] = ~0; } #ifdef SCOTCH_DEBUG_GRAPH2 if ((indvertnum - indgrafptr->baseval) != indvnumnbr) { errorPrint ("graphInducePart: inconsistent data"); graphExit (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (graphInduce3 (orggrafptr, indgrafptr, indvnumnbr, indedgenbr)); } /* This routine initializes the induced ** graph structure. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int graphInduce2 ( const Graph * restrict const orggrafptr, /* Pointer to original graph */ Graph * restrict const indgrafptr, /* Pointer to induced graph */ const Gnum indvertnbr) /* Number of vertices in induced graph */ { Gnum indedgenbr; /* (Approximate) number of edges in induced graph */ const Gnum baseval = orggrafptr->baseval; /* Fast accesses */ memSet (indgrafptr, 0, sizeof (Graph)); /* Initialize graph fields */ indgrafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; indgrafptr->baseval = baseval; if (orggrafptr->velotax != NULL) { if (memAllocGroup ((void **) (void *) &indgrafptr->verttax, (size_t) ((indvertnbr + 1) * sizeof (Gnum)), &indgrafptr->vnumtax, (size_t) ( indvertnbr * sizeof (Gnum)), &indgrafptr->velotax, (size_t) ( indvertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphInduce2: out of memory (1)"); return (1); /* Nothing to free because group allocation failed */ } indgrafptr->velotax -= baseval; } else { if (memAllocGroup ((void **) (void *) &indgrafptr->verttax, (size_t) ((indvertnbr + 1) * sizeof (Gnum)), &indgrafptr->vnumtax, (size_t) ( indvertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphInduce2: out of memory (2)"); return (1); } } indgrafptr->verttax -= baseval; /* Adjust base of arrays */ indgrafptr->vnumtax -= baseval; indgrafptr->vertnbr = indvertnbr; indgrafptr->vertnnd = indvertnbr + baseval; indedgenbr = orggrafptr->edgenbr; /* Choose best upper bound on number of edges (avoid multiply overflow) */ if ((orggrafptr->degrmax > 0) && (indvertnbr < (indedgenbr / orggrafptr->degrmax))) indedgenbr = indvertnbr * orggrafptr->degrmax; if (orggrafptr->edlotax != NULL) /* If graph has edge weights */ indedgenbr *= 2; /* Account for edge weights */ if (memAllocGroup ((void *) &indgrafptr->edgetax, (size_t) (indedgenbr * sizeof (Gnum)), /* Pre-allocate space for edgetab (and edlotab) */ &indgrafptr->edlotax, (size_t) (orggrafptr->vertnbr * sizeof (Gnum)), NULL) == NULL) { /* orgindxtab is at the end of the heap */ errorPrint ("graphInduce2: out of memory (3)"); graphExit (indgrafptr); return (1); } indgrafptr->edgetax -= baseval; /* TRICK: base edge array in case of premature freeing */ indgrafptr->edlotax -= baseval; /* TRICK: use edlotax as return slot for orgindxtax */ return (0); } /* This routine finalizes the building ** of the induced subgraph. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int graphInduce3 ( const Graph * restrict const orggrafptr, /* Pointer to original graph */ Graph * restrict const indgrafptr, /* Pointer to induced graph */ const Gnum indvertnbr, /* Number of vertices in induced graph */ const Gnum indedgenbr) /* (Upper bound of) number of edges in induced graph */ { Gnum orgvertnum; Gnum orgedgenum; Gnum indvertnum; Gnum indvelosum; /* Overall induced vertex load */ Gnum indedlosum; /* Overall induced edge load */ Gnum indedgenum; /* Number of current induced edge */ Gnum * restrict indedgetax; Gnum * restrict indedlotax; const Gnum * restrict const orgverttax = orggrafptr->verttax; const Gnum * restrict const orgvendtax = orggrafptr->vendtax; const Gnum * restrict const orgvelotax = orggrafptr->velotax; const Gnum * restrict const orgvnumtax = orggrafptr->vnumtax; const Gnum * restrict const orgedgetax = orggrafptr->edgetax; const Gnum * restrict const orgedlotax = orggrafptr->edlotax; const Gnum * restrict const orgindxtax = indgrafptr->edlotax; /* TRICK: get orgindxtax from edlotax */ Gnum * restrict const indverttax = indgrafptr->verttax; Gnum * restrict const indvelotax = indgrafptr->velotax; Gnum * restrict const indvnumtax = indgrafptr->vnumtax; if (orgedlotax != NULL) { memOffset ((void *) indgrafptr->edgetax, /* TRICK: compute based offsets from based array */ &indedgetax, (size_t) (indedgenbr * sizeof (Gnum)), &indedlotax, (size_t) (indedgenbr * sizeof (Gnum)), NULL); } else { indedgetax = indgrafptr->edgetax; indedlotax = NULL; } indvelosum = (indvelotax == NULL) ? indgrafptr->vertnbr : 0; indedlosum = 0; for (indvertnum = indedgenum = indgrafptr->baseval; indvertnum < indgrafptr->vertnnd; indvertnum ++) { orgvertnum = indvnumtax[indvertnum]; indverttax[indvertnum] = indedgenum; if (indvelotax != NULL) { /* If graph has vertex weights */ indvelosum += /* Accumulate vertex loads */ indvelotax[indvertnum] = orgvelotax[orgvertnum]; } if (indedlotax != NULL) { /* If graph has edge weights */ for (orgedgenum = orgverttax[orgvertnum]; orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { if (orgindxtax[orgedgetax[orgedgenum]] != ~0) { /* If edge should be kept */ indedlosum += indedlotax[indedgenum] = orgedlotax[orgedgenum]; indedgetax[indedgenum] = orgindxtax[orgedgetax[orgedgenum]]; indedgenum ++; } } } else { for (orgedgenum = orgverttax[orgvertnum]; orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { if (orgindxtax[orgedgetax[orgedgenum]] != ~0) { /* If edge should be kept */ indedgetax[indedgenum] = orgindxtax[orgedgetax[orgedgenum]]; indedgenum ++; } } } } indverttax[indvertnum] = indedgenum; /* Mark end of edge array */ indgrafptr->vendtax = indgrafptr->verttax + 1; /* Use compact representation of vertex arrays */ indgrafptr->vertnbr = indvertnum - indgrafptr->baseval; indgrafptr->vertnnd = indvertnum; indgrafptr->velosum = indvelosum; indgrafptr->edgenbr = indedgenum - indgrafptr->baseval; /* Set actual number of edges */ indgrafptr->edlosum = (indedlotax != NULL) ? indedlosum : indgrafptr->edgenbr; indgrafptr->degrmax = orggrafptr->degrmax; /* Induced maximum degree is likely to be that of the original graph */ if (orggrafptr->vnumtax != NULL) { /* Adjust vnumtax */ for (indvertnum = indgrafptr->baseval; indvertnum < indgrafptr->vertnnd; indvertnum ++) indvnumtax[indvertnum] = orgvnumtax[indvnumtax[indvertnum]]; } if (indedlotax != NULL) { /* Re-allocate arrays and delete orgindxtab */ size_t indedlooftval; /* Offset of edge load array with respect to edge array */ indedlooftval = indedlotax - indedgetax; indgrafptr->edgetax = (Gnum *) memRealloc ((indgrafptr->edgetax + indgrafptr->baseval), (indedlooftval + indgrafptr->edgenbr) * sizeof (Gnum)) - indgrafptr->baseval; indgrafptr->edlotax = indgrafptr->edgetax + indedlooftval; /* Use old index into old array as new index */ } else { indgrafptr->edgetax = (Gnum *) memRealloc ((indgrafptr->edgetax + indgrafptr->baseval), indgrafptr->edgenbr * sizeof (Gnum)) - indgrafptr->baseval; indgrafptr->edlotax = NULL; /* Delete link to orgindxtax */ } #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (indgrafptr) != 0) { /* Check graph consistency */ errorPrint ("graphInduce3: inconsistent graph data"); graphExit (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_induce.h000066400000000000000000000074351514310134000265270ustar00rootroot00000000000000/* Copyright 2004,2007,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_induce.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph sub-graph making **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 02 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 18 aug 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 28 nov 1995 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 17 sep 1998 **/ /** # Version 4.0 : from : 28 nov 2001 **/ /** to : 28 nov 2001 **/ /** # Version 6.0 : from : 03 aug 2016 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #ifdef SCOTCH_GRAPH_INDUCE static int graphInduce2 (const Graph * const, Graph * const, const Gnum); static int graphInduce3 (const Graph * const, Graph * const, const Gnum, const Gnum); #endif /* SCOTCH_GRAPH_INDUCE */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io.c000066400000000000000000000410501514310134000256510ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2016,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** input/output functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 mar 1999 **/ /** # Version 4.0 : from : 25 nov 2001 **/ /** to : 21 jan 2004 **/ /** # Version 5.0 : from : 13 dec 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 03 aug 2016 **/ /** to : 03 aug 2016 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 11 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "graph_io.h" /*******************************************/ /* */ /* These routines handle source graph I/O. */ /* */ /*******************************************/ /* This routine loads a source graph from ** the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphLoad ( Graph * restrict const grafptr, /* Graph structure to fill */ FILE * const stream, /* Stream from which to read graph data */ const Gnum baseval, /* Base value (-1 means keep file base) */ const GraphLoadFlag flagval) /* Graph loading flags */ { Gnum edgenum; /* Number of edges really allocated */ Gnum edgennd; Gnum vlblsiz; /* = vertnbr if vertex labels */ Gnum vlblmax; /* Maximum vertex label number */ Gnum velosiz; /* = vertnbr if vertex loads wanted */ Gnum velosum; /* Sum of vertex loads */ Gnum edlosiz; /* = edgenbr if edge loads wanted */ Gnum edlosum; /* Sum of edge loads */ Gnum edgeval; /* Value where to read edge end */ Gnum baseadj; Gnum versval; Gnum degrmax; Gnum propval; char proptab[4]; Gnum vertnum; memSet (grafptr, 0, sizeof (Graph)); if (intLoad (stream, &versval) != 1) { /* Read version number */ errorPrint ("graphLoad: bad input (1)"); return (1); } if (versval != 0) { /* If version not zero */ errorPrint ("graphLoad: old-style graph format no longer supported"); return (1); } if ((intLoad (stream, &grafptr->vertnbr) != 1) || /* Read rest of header */ (intLoad (stream, &grafptr->edgenbr) != 1) || (intLoad (stream, &baseadj) != 1) || (intLoad (stream, &propval) != 1) || (propval < 0) || (propval > 111)) { errorPrint ("graphLoad: bad input (2)"); return (1); } if (grafptr->vertnbr < 0) { errorPrint ("graphLoad: invalid number of vertices"); return (1); } if ((grafptr->edgenbr < 0) || ((grafptr->edgenbr & 1) != 0)) { errorPrint ("graphLoad: invalid number of edges"); return (1); } sprintf (proptab, "%3.3d", (int) propval); /* Compute file properties */ proptab[0] -= '0'; /* Vertex labels flag */ proptab[1] -= '0'; /* Edge weights flag */ proptab[2] -= '0'; /* Vertex loads flag */ grafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; if (baseval == -1) { /* If keep file graph base */ grafptr->baseval = baseadj; /* Set graph base as file base */ baseadj = 0; /* No base adjustment needed */ } else { /* If prescribed graph base */ grafptr->baseval = baseval; /* Set wanted graph base */ baseadj = baseval - baseadj; /* Update base adjust */ } if (proptab[0] != 0) /* If vertex labels, no base adjust */ baseadj = 0; velosiz = ((proptab[2] != 0) && ((flagval & GRAPHIONOLOADVERT) == 0)) ? grafptr->vertnbr : 0; vlblsiz = (proptab[0] != 0) ? grafptr->vertnbr : 0; edlosiz = ((proptab[1] != 0) && ((flagval & GRAPHIONOLOADEDGE) == 0)) ? grafptr->edgenbr : 0; if ((memAllocGroup ((void **) (void *) &grafptr->verttax, (size_t) ((grafptr->vertnbr + 1) * sizeof (Gnum)), &grafptr->velotax, (size_t) (velosiz * sizeof (Gnum)), &grafptr->vlbltax, (size_t) (vlblsiz * sizeof (Gnum)), NULL) == NULL) || (memAllocGroup ((void **) (void *) &grafptr->edgetax, (size_t) (grafptr->edgenbr * sizeof (Gnum)), &grafptr->edlotax, (size_t) (edlosiz * sizeof (Gnum)), NULL) == NULL)) { if (grafptr->verttax != NULL) memFree (grafptr->verttax); errorPrint ("graphLoad: out of memory"); graphFree (grafptr); return (1); } grafptr->vertnnd = grafptr->vertnbr + grafptr->baseval; grafptr->verttax -= grafptr->baseval; grafptr->vendtax = grafptr->verttax + 1; /* Use compact vertex array */ grafptr->velotax = (velosiz != 0) ? (grafptr->velotax - grafptr->baseval) : NULL; grafptr->vlbltax = (vlblsiz != 0) ? (grafptr->vlbltax - grafptr->baseval) : NULL; grafptr->edgetax -= grafptr->baseval; grafptr->edlotax = (edlosiz != 0) ? (grafptr->edlotax - grafptr->baseval) : NULL; vlblmax = grafptr->vertnnd - 1; /* No vertex labels known */ velosum = (grafptr->velotax == NULL) ? grafptr->vertnbr : 0; edlosum = (grafptr->edlotax == NULL) ? grafptr->edgenbr : 0; edgennd = grafptr->edgenbr + grafptr->baseval; degrmax = 0; /* No maximum degree yet */ for (vertnum = edgenum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { Gnum degrval; if (grafptr->vlbltax != NULL) { /* If must read label */ Gnum vlblval; /* Value where to read vertex label */ if (intLoad (stream, &vlblval) != 1) { /* Read label data */ errorPrint ("graphLoad: bad input (3)"); graphFree (grafptr); return (1); } grafptr->vlbltax[vertnum] = vlblval; if (grafptr->vlbltax[vertnum] > vlblmax) /* Get maximum vertex label */ vlblmax = grafptr->vlbltax[vertnum]; } if (proptab[2] != 0) { /* If must read vertex load */ Gnum veloval; /* Value where to read vertex load */ if (intLoad (stream, &veloval) != 1) { /* Read vertex load data */ errorPrint ("graphLoad: bad input (4)"); graphFree (grafptr); return (1); } if (grafptr->velotax != NULL) velosum += grafptr->velotax[vertnum] = veloval; } if (intLoad (stream, °rval) != 1) { /* Read vertex degree */ errorPrint ("graphLoad: bad input (5)"); graphFree (grafptr); return (1); } if (degrmax < degrval) /* Set maximum degree */ degrmax = degrval; grafptr->verttax[vertnum] = edgenum; /* Set index in edge array */ degrval += edgenum; if (degrval > edgennd) { /* Check if edge array overflows */ errorPrint ("graphLoad: invalid arc count (1)"); graphFree (grafptr); return (1); } for ( ; edgenum < degrval; edgenum ++) { if (proptab[1] != 0) { /* If must read edge load */ Gnum edloval; /* Value where to read edge load */ if (intLoad (stream, &edloval) != 1) { /* Read edge load data */ errorPrint ("graphLoad: bad input (6)"); graphFree (grafptr); return (1); } if (grafptr->edlotax != NULL) edlosum += grafptr->edlotax[edgenum] = (Gnum) edloval; } if (intLoad (stream, &edgeval) != 1) { /* Read edge data */ errorPrint ("graphLoad: bad input (7)"); graphFree (grafptr); return (1); } grafptr->edgetax[edgenum] = edgeval + baseadj; } } grafptr->verttax[vertnum] = edgenum; /* Set end of edge array */ if (edgenum != edgennd) { /* Check if number of edges is valid */ errorPrint ("graphLoad: invalid arc count (2)"); graphFree (grafptr); return (1); } grafptr->velosum = velosum; grafptr->edlosum = edlosum; grafptr->degrmax = degrmax; if (grafptr->vlbltax != NULL) { /* If vertex label renaming necessary */ if (graphLoad2 (grafptr->baseval, grafptr->vertnnd, grafptr->verttax, /* Rename edge ends */ grafptr->vendtax, grafptr->edgetax, vlblmax, grafptr->vlbltax) != 0) { errorPrint ("graphLoad: cannot relabel vertices"); graphFree (grafptr); return (1); } } #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (grafptr) != 0) { /* Check graph consistency */ errorPrint ("graphLoad: inconsistent graph data"); graphFree (grafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } int graphLoad2 ( const Gnum baseval, const Gnum vertnnd, const Gnum * const verttax, const Gnum * const vendtax, Gnum * restrict const edgetax, const Gnum vlblmax, const Gnum * const vlbltax) { Gnum vertnum; /* Number of current vertex */ Gnum * restrict indxtab; /* Vertex label/number index table */ if ((indxtab = (Gnum *) memAlloc ((vlblmax + 1) * sizeof (Gnum))) == NULL) { errorPrint ("graphLoad2: out of memory"); return (1); } memSet (indxtab, ~0, (vlblmax + 1) * sizeof (Gnum)); /* Assume labels not used */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { if (indxtab[vlbltax[vertnum]] != ~0) { /* If vertex label already used */ errorPrint ("graphLoad2: duplicate vertex label"); memFree (indxtab); return (1); } indxtab[vlbltax[vertnum]] = vertnum; /* Set vertex number index */ } for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { Gnum edgenum; /* Number of current edge */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { if (edgetax[edgenum] > vlblmax) { /* If invalid edge end number */ errorPrint ("graphLoad2: invalid arc end number (1)"); memFree (indxtab); return (1); } if (indxtab[edgetax[edgenum]] == ~0) { /* If unused edge end number */ errorPrint ("graphLoad2: invalid arc end number (2)"); memFree (indxtab); return (1); } edgetax[edgenum] = indxtab[edgetax[edgenum]]; /* Replace label by number */ } } memFree (indxtab); /* Free index array */ return (0); } /* This routine saves a source graph to ** the given stream, in the new-style ** graph format. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphSave ( const Graph * const grafptr, FILE * const stream) { Gnum vertnum; char propstr[4]; /* Property string */ int o; propstr[0] = (grafptr->vlbltax != NULL) ? '1' : '0'; /* Set property string */ propstr[1] = (grafptr->edlotax != NULL) ? '1' : '0'; propstr[2] = (grafptr->velotax != NULL) ? '1' : '0'; propstr[3] = '\0'; if (fprintf (stream, "0\n" GNUMSTRING "\t" GNUMSTRING "\n" GNUMSTRING "\t%3s\n", /* Write file header */ (Gnum) grafptr->vertnbr, (Gnum) grafptr->edgenbr, (Gnum) grafptr->baseval, propstr) == EOF) { errorPrint ("graphSave: bad output (1)"); return (1); } for (vertnum = grafptr->baseval, o = 0; (vertnum < grafptr->vertnnd) && (o == 0); vertnum ++) { Gnum edgenum; if (grafptr->vlbltax != NULL) /* Write vertex label if necessary */ o = (fprintf (stream, GNUMSTRING "\t", (Gnum) grafptr->vlbltax[vertnum]) == EOF); if (grafptr->velotax != NULL) /* Write vertex load if necessary */ o |= (fprintf (stream, GNUMSTRING "\t", (Gnum) grafptr->velotax[vertnum]) == EOF); o |= (fprintf (stream, GNUMSTRING, (Gnum) (grafptr->vendtax[vertnum] - grafptr->verttax[vertnum])) == EOF); /* Write vertex degree */ for (edgenum = grafptr->verttax[vertnum]; (edgenum < grafptr->vendtax[vertnum]) && (o == 0); edgenum ++) { Gnum vertend; o |= (putc ('\t', stream) == EOF); if (grafptr->edlotax != NULL) /* Write edge load if necessary */ o |= (fprintf (stream, GNUMSTRING "\t", (Gnum) grafptr->edlotax[edgenum]) == EOF); vertend = grafptr->edgetax[edgenum]; o |= (fprintf (stream, GNUMSTRING, (Gnum) ((grafptr->vlbltax != NULL) ? grafptr->vlbltax[vertend] : vertend)) == EOF); /* Write edge end */ } o |= (putc ('\n', stream) == EOF); } if (o != 0) errorPrint ("graphSave: bad output (2)"); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io.h000066400000000000000000000073641514310134000256700ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph input/output **/ /** functions. **/ /** **/ /** DATES : # Version 0.0 : from : 02 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 18 aug 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 28 nov 1995 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 may 1999 **/ /** # Version 4.0 : from : 25 nov 2001 **/ /** to : 25 nov 2001 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : to : 11 jul 2024 **/ /** to : 11 jul 2024 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int graphLoad2 (const Gnum, const Gnum, const Gnum * const, const Gnum * const, Gnum * restrict const, const Gnum, const Gnum * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_chac.c000066400000000000000000000335161514310134000266370ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2013,2016,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_chac.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the I/O routines **/ /** for handling the Chaco graph format. **/ /** **/ /** DATES : # Version 3.2 : from : 06 nov 1997 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 13 dec 1998 **/ /** to : 24 dec 1998 **/ /** # Version 3.4 : from : 05 oct 1999 **/ /** to : 04 feb 2000 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 19 jan 2004 **/ /** # Version 5.0 : from : 04 feb 2007 **/ /** to : 21 may 2008 **/ /** # Version 5.1 : from : 02 dec 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 10 oct 2013 **/ /** to : 03 aug 2016 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" /* This routine loads the geometrical graph ** in the Chaco graph format, and allocates ** the proper structures. ** - 0 : on success. ** - !0 : on error. */ int graphGeomLoadChac ( Graph * restrict const grafptr, /* Graph to load */ Geom * restrict const geomptr, /* Geometry to load */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { char chalinetab[80]; /* Header line */ long chavertnbr; /* Number of vertices */ Gnum chavertnum; /* Number of vertex read */ long chaedgenbr; /* Number of edges */ long chaflagval; /* Flag on numeric form */ char chaflagstr[4]; /* Flag for optional data */ int chabuffcar; /* Buffer for line processing */ Gnum vertnum; Gnum velosiz; Gnum velosum; Gnum vlblsiz; Gnum vlblmax; Gnum edgenum; Gnum edlosiz; Gnum edlosum; Gnum degrmax; do { /* Skip comment lines */ chabuffcar = getc (filesrcptr); /* Read first character */ if (chabuffcar == '%') { /* If comment line */ fscanf (filesrcptr, "%*[^\n]"); /* Purge line */ getc (filesrcptr); /* Purge newline */ } } while (chabuffcar == '%'); ungetc (chabuffcar, filesrcptr); chaflagval = 0; if ((fscanf (filesrcptr, "%79[^\n]%*[^\n]", chalinetab) != 1) || /* Read graph header */ (sscanf (chalinetab, "%ld%ld%ld", &chavertnbr, &chaedgenbr, &chaflagval) < 2)) { errorPrint ("graphGeomLoadChac: bad input (1)"); return (1); } getc (filesrcptr); /* Purge newline; cannot be merged with fscanf above */ chaflagstr[0] = /* Pre-set flag array */ chaflagstr[1] = chaflagstr[2] = chaflagstr[3] = '\0'; chaflagstr[0] = '0' + ((chaflagval / 100) % 10); /* Set the flags */ chaflagstr[1] = '0' + ((chaflagval / 10) % 10); chaflagstr[2] = '0' + ((chaflagval) % 10); grafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; grafptr->baseval = 1; /* Chaco graphs are based */ grafptr->vertnbr = chavertnbr; grafptr->vertnnd = chavertnbr + 1; grafptr->edgenbr = chaedgenbr * 2; /* We are counting arcs */ vlblsiz = (chaflagstr[0] != '0') ? grafptr->vertnbr : 0; velosiz = (chaflagstr[1] != '0') ? grafptr->vertnbr : 0; edlosiz = (chaflagstr[2] != '0') ? grafptr->edgenbr : 0; if ((memAllocGroup ((void **) (void *) &grafptr->verttax, (size_t) (grafptr->vertnnd * sizeof (Gnum)), &grafptr->velotax, (size_t) (velosiz * sizeof (Gnum)), &grafptr->vlbltax, (size_t) (vlblsiz * sizeof (Gnum)), NULL) == NULL) || (memAllocGroup ((void **) (void *) &grafptr->edgetax, (size_t) (grafptr->edgenbr * sizeof (Gnum)), &grafptr->edlotax, (size_t) (edlosiz * sizeof (Gnum)), NULL) == NULL)) { if (grafptr->verttax != NULL) memFree (grafptr->verttax); errorPrint ("graphGeomLoadChac: out of memory"); return (1); } grafptr->verttax --; grafptr->vendtax = grafptr->verttax + 1; grafptr->vlbltax = (chaflagstr[0] != '0') ? (grafptr->vlbltax - 1) : NULL; grafptr->edgetax --; if (chaflagstr[1] != '0') { grafptr->velotax --; velosum = 0; } else { grafptr->velotax = NULL; velosum = grafptr->vertnbr; /* No vertex loads */ } if (chaflagstr[2] != '0') { grafptr->edlotax --; edlosum = 0; } else { grafptr->edlotax = NULL; edlosum = grafptr->edgenbr; } for (vertnum = edgenum = 1, degrmax = vlblmax = 0; vertnum < grafptr->vertnnd; vertnum ++) { do { /* Skip comment lines */ chabuffcar = getc (filesrcptr); /* Read first character */ if (chabuffcar == '%') { /* If comment line */ fscanf (filesrcptr, "%*[^\n]"); /* Purge line */ getc (filesrcptr); /* Purge newline */ } } while (chabuffcar == '%'); ungetc (chabuffcar, filesrcptr); /* Put character back to filesrcptr */ if (grafptr->vlbltax != NULL) { if ((intLoad (filesrcptr, &grafptr->vlbltax[vertnum]) != 1) || (grafptr->vlbltax[vertnum] < 1) || (grafptr->vlbltax[vertnum] > chavertnbr)) { errorPrint ("graphGeomLoadChac: bad input (2)"); graphFree (grafptr); return (1); } if (grafptr->vlbltax[vertnum] > vlblmax) vlblmax = grafptr->vlbltax[vertnum]; } if (grafptr->velotax != NULL) { if ((intLoad (filesrcptr, &grafptr->velotax[vertnum]) != 1) || (grafptr->velotax[vertnum] < 1)) { errorPrint ("graphGeomLoadChac: bad input (3)"); graphFree (grafptr); return (1); } velosum += grafptr->velotax[vertnum]; } grafptr->verttax[vertnum] = edgenum; /* Set based edge array index */ while (1) { /* Read graph edges */ fscanf (filesrcptr, "%*[ \t\r]"); /* Skip white spaces except '\n' */ chabuffcar = getc (filesrcptr); /* Read next char */ if (chabuffcar == EOF) /* If end of file reached */ chabuffcar = '\n'; /* Indicate line as complete */ if (chabuffcar == '\n') /* Exit loop if line is complete */ break; ungetc (chabuffcar, filesrcptr); /* Else put character back to stream */ if ((intLoad (filesrcptr, &chavertnum) != 1) || (chavertnum < 1) || (chavertnum > chavertnbr) || ((grafptr->edlotax != NULL) && ((intLoad (filesrcptr, &grafptr->edlotax[edgenum]) != 1) || (edlosum += grafptr->edlotax[edgenum], grafptr->edlotax[edgenum] < 1)))) { errorPrint ("graphGeomLoadChac: bad input (4)"); graphFree (grafptr); return (1); } if (edgenum > (grafptr->edgenbr + 1)) { /* Test edge array overflow */ errorPrint ("graphGeomLoadChac: bad input (5)"); graphFree (grafptr); return (1); } grafptr->edgetax[edgenum ++] = chavertnum; } if ((edgenum - grafptr->verttax[vertnum]) > degrmax) degrmax = edgenum - grafptr->verttax[vertnum]; } grafptr->verttax[vertnum] = edgenum; /* Set end of based vertex array */ grafptr->velosum = velosum; grafptr->edlosum = edlosum; grafptr->degrmax = degrmax; if (grafptr->vlbltax != NULL) { /* If graph has labels */ if (graphLoad2 (1, grafptr->vertnnd, /* Un-label graph data */ grafptr->verttax, grafptr->vendtax, grafptr->edgetax, vlblmax, grafptr->vlbltax) != 0) { errorPrint ("graphGeomLoadChac: cannot relabel graph"); graphFree (grafptr); return (1); } } #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (grafptr) != 0) { /* Check graph consistency */ errorPrint ("graphGeomLoadChac: internal error"); graphFree (grafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } /* This routine saves the geometrical graph ** in the Chaco graph format. ** It returns: ** - 0 : on succes ** - !0 : on error. */ int graphGeomSaveChac ( const Graph * restrict const grafptr, /* Graph to save */ const Geom * restrict const geomptr, /* Geometry to save */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { Gnum baseadj; /* Base adjustment */ Gnum vertnum; /* Current vertex */ Gnum edgenum; /* Current edge */ char * sepaptr; /* Separator string */ int o; baseadj = 1 - grafptr->baseval; /* Output base is always 1 */ o = (fprintf (filesrcptr, GNUMSTRING "\t" GNUMSTRING "\t%c%c%c\n", /* Write graph header */ (Gnum) grafptr->vertnbr, (Gnum) (grafptr->edgenbr / 2), ((grafptr->vlbltax != NULL) ? '1' : '0'), ((grafptr->velotax != NULL) ? '1' : '0'), ((grafptr->edlotax != NULL) ? '1' : '0')) < 0); for (vertnum = grafptr->baseval; (o == 0) && (vertnum < grafptr->vertnnd); vertnum ++) { sepaptr = ""; /* Start lines as is */ if (grafptr->vlbltax != NULL) { o |= (fprintf (filesrcptr, GNUMSTRING, (Gnum) (grafptr->vlbltax[vertnum] + baseadj)) < 0); sepaptr = "\t"; } if (grafptr->velotax != NULL) { o |= (fprintf (filesrcptr, "%s" GNUMSTRING, sepaptr, (Gnum) grafptr->velotax[vertnum]) < 0); sepaptr = "\t"; } for (edgenum = grafptr->verttax[vertnum]; (o == 0) && (edgenum < grafptr->vendtax[vertnum]); edgenum ++) { if (grafptr->vlbltax != NULL) o |= (fprintf (filesrcptr, "%s" GNUMSTRING, sepaptr, (Gnum) (grafptr->vlbltax[grafptr->edgetax[edgenum]] + baseadj)) < 0); else o |= (fprintf (filesrcptr, "%s" GNUMSTRING, sepaptr, (Gnum) (grafptr->edgetax[edgenum] + baseadj)) < 0); if (grafptr->edlotax != NULL) o |= (fprintf (filesrcptr, " " GNUMSTRING, (Gnum) grafptr->edlotax[edgenum]) < 0); sepaptr = "\t"; } o |= (fprintf (filesrcptr, "\n") < 0); } if (o != 0) errorPrint ("graphGeomSaveChac: bad output"); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_habo.c000066400000000000000000000450341514310134000266500ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2016,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_habo.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the I/O routines **/ /** for handling the Harwell-Boeing matrix **/ /** format. **/ /** **/ /** DATES : # Version 3.2 : from : 06 nov 1997 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 13 dec 1998 **/ /** to : 24 dec 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 21 mar 2005 **/ /** # Version 5.0 : from : 06 jun 2007 **/ /** to : 31 aug 2007 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 27 apr 2010 **/ /** # Version 6.0 : from : 04 aug 2016 **/ /** to : 27 aug 2019 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 31 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "graph_io_habo.h" /* This routine loads the geometrical graph ** in the Harwell-Boeing matrix format, and ** allocates the proper structures. ** - 0 : on success. ** - !0 : on error. */ int graphGeomLoadHabo ( Graph * restrict const grafptr, /* Graph to load */ Geom * restrict const geomptr, /* Geometry to load */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* Tag value */ { Gnum habmattag; /* Matrix tag number in file */ Gnum habmatnum; /* Current matrix number */ char habmatbuf[4][84]; /* Matrix header line buffers */ char habmattype[3]; /* Matrix type */ Gnum habcrdnbr; /* Total number of data lines */ Gnum habrhsnbr; /* Number of right hand side lines */ GraphGeomHaboLine habcolfmt; /* Format of column line */ int habvalnum; /* Number of value in line */ Gnum habcolnbr; /* Number of columns */ Gnum habcolnum; /* Number of current column index */ Gnum * restrict habcoltab; /* Index array */ GraphGeomHaboLine habnzrfmt; /* Format of non-zero type */ Gnum habnzrnbr; /* Number of non-zero indices */ Gnum habnzrnum; /* Number of current row data */ Gnum * restrict habnzrtab; /* Row data array */ GraphGeomHaboHash * restrict hashtab; /* Neighbor hash table */ Gnum hashmsk; /* Mask for access to hash table */ Gnum vertnum; /* Number of current vertex */ Gnum edgenum; /* Number of current edge (arc) */ Gnum edgeold; /* Number of non-purged edge */ Gnum edgetmp; /* Temporary edge number */ Gnum degrmax; /* Maximum degree */ int c; habmattag = 0; /* Read first matrix by default */ if ((dataptr != NULL) && /* If tag value provided */ (dataptr[0] != '\0') && ((habmattag = (Gnum) atol (dataptr)) == 0) && /* Get tag value */ (dataptr[0] != '0')) { errorPrint ("graphGeomLoadHabo: invalid parameter"); return (1); } habmattype[0] = habmattype[1] = habmattype[2] = '\0'; for (habmatnum = 0; habmatnum <= habmattag; habmatnum ++) { /* Read headers and skip if necessary */ memSet (habmatbuf[0], ' ', &habmatbuf[3][83] - &habmatbuf[0][0]); /* Initialize header buffers */ if ((fgets (habmatbuf[0], 83, filesrcptr) == NULL) || /* Read graph header */ (fgets (habmatbuf[1], 83, filesrcptr) == NULL) || (fgets (habmatbuf[2], 83, filesrcptr) == NULL) || (fgets (habmatbuf[3], 83, filesrcptr) == NULL)) { errorPrint ("graphGeomLoadHabo: bad input (1)"); return (1); } habmatbuf[1][70] = '\0'; /* Extract header values */ habrhsnbr = (Gnum) atol (&habmatbuf[1][56]); habmatbuf[1][14] = '\0'; habcrdnbr = (Gnum) atol (&habmatbuf[1][00]); habmattype[0] = toupper (habmatbuf[2][0]); habmattype[1] = toupper (habmatbuf[2][1]); habmattype[2] = toupper (habmatbuf[2][2]); habmatbuf[2][56] = '\0'; habnzrnbr = (Gnum) atol (&habmatbuf[2][43]); habmatbuf[2][42] = '\0'; habcolnbr = (Gnum) atol (&habmatbuf[2][29]); #if 0 /* Number of rows not used since only square matrices considered */ habmatbuf[2][28] = '\0'; habrownbr = (Gnum) atol (&habmatbuf[2][14]); #endif habmatbuf[3][32] = '\0'; if (graphGeomLoadHaboFormat (&habnzrfmt, &habmatbuf[3][16]) != 0) { errorPrint ("graphGeomLoadHabo: bad input (2)"); return (1); } habmatbuf[3][16] = '\0'; if (graphGeomLoadHaboFormat (&habcolfmt, &habmatbuf[3][0]) != 0) { errorPrint ("graphGeomLoadHabo: bad input (3)"); return (1); } if (habrhsnbr != 0) { while ((c = getc (filesrcptr)) != '\n'){ /* Skip RHS format line */ if (c == EOF) { errorPrint ("graphGeomLoadHabo: bad input (4)"); return (1); } } } if (habmatnum < habmattag) { /* If we have to skip file */ while (habcrdnbr -- > 0) { /* Skip all of file lines */ while ((c = getc (filesrcptr)) != '\n') { /* Skip line */ if (c == EOF) { errorPrint ("graphGeomLoadHabo: bad input (5)"); return (1); } } } } } if (habmattype[2] != 'A') { errorPrint ("graphGeomLoadHabo: only assembled matrices supported; for unassembled matrices, use the mesh version of the tools"); return (1); } if (habmattype[1] == 'R') { errorPrint ("graphGeomLoadHabo: rectangular matrices not supported"); return (1); } if (((grafptr->verttax = (Gnum *) memAlloc ((habcolnbr + 1) * sizeof (Gnum))) == NULL) || (memAllocGroup ((void **) (void *) &grafptr->edgetax, (size_t) (habnzrnbr * 2 * sizeof (Gnum)), &habcoltab, (size_t) ((habcolnbr + 1) * sizeof (Gnum)), &habnzrtab, (size_t) (habnzrnbr * sizeof (Gnum)), NULL) == NULL)) { errorPrint ("graphGeomLoadHabo: out of memory (1)"); if (grafptr->verttax != NULL) { memFree (grafptr->verttax); grafptr->verttax = NULL; } return (1); } grafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; grafptr->baseval = 1; /* Harwell-Boeing graphs have base 1 */ grafptr->vertnbr = (Gnum) habcolnbr; grafptr->vertnnd = grafptr->vertnbr + 1; grafptr->velosum = grafptr->vertnbr; grafptr->vendtax = grafptr->verttax; /* Use compact representation for array based at 1 */ grafptr->verttax --; /* Base verttab array at 1, with vendtab = verttab + 1 */ grafptr->edgetax --; grafptr->velotax = NULL; grafptr->vnumtax = NULL; grafptr->vlbltax = NULL; grafptr->edlotax = NULL; ungetc ('\n', filesrcptr); /* Create fake previous line */ for (habcolnum = 0, habvalnum = habcolfmt.datanbr; /* Eat up fake previous line */ habcolnum <= habcolnbr; habcolnum ++) { /* Read column indices */ Gnum habcolval; /* Current column value */ int habcolidx; /* Current index in column value */ c = getc (filesrcptr); if (habvalnum ++ >= habcolfmt.datanbr) { /* If all useful data read from line */ habvalnum = 1; /* Start at beginning of new line */ while ((c != '\n') && (c != '\r')) /* Eat up all remaining spaces */ c = getc (filesrcptr); while (((c = getc (filesrcptr)) == '\n') || (c == '\r')) ; /* Read till end of line */ for (habcolidx = 0; habcolidx < habcolfmt.strtnbr; habcolidx ++) /* Get start of line */ c = getc (filesrcptr); } habcolval = (c == ' ') ? 0 : (c - '0'); for (habcolidx = 1; habcolidx < habcolfmt.datalen; habcolidx ++) { if ((c = getc (filesrcptr)) != ' ') habcolval = habcolval * 10 + c - '0'; } if (c == EOF) { errorPrint ("graphGeomLoadHabo: bad input (6)"); graphFree (grafptr); return (1); } habcoltab[habcolnum] = habcolval; } if (habcoltab[habcolnbr] != (Gnum) habnzrnbr + 1) { errorPrint ("graphGeomLoadHabo: bad input (7)"); graphFree (grafptr); return (1); } memSet (grafptr->vendtax, 0, habcolnbr * sizeof (Gnum)); /* Here, vendtax = verttab */ for (vertnum = 1, habnzrnum = 0, habvalnum = habnzrfmt.datanbr; /* Start by eating end of previous line */ vertnum < grafptr->vertnnd; vertnum ++) { /* Read matrix pattern */ for ( ; habnzrnum < (habcoltab[vertnum] - 1); habnzrnum ++) { /* All right since vertnum is based at 1 */ Gnum habnzrval; /* Current non-zero value */ int habnzridx; /* Current index in non-zero value */ c = getc (filesrcptr); if (habvalnum ++ >= habnzrfmt.datanbr) { /* If all useful data read from line */ habvalnum = 1; /* Start at beginning of new line */ while ((c != '\n') && (c != '\r')) /* Eat up all remaining spaces */ c = getc (filesrcptr); while (((c = getc (filesrcptr)) == '\n') || (c == '\r')) ; /* Read till end of line */ for (habnzridx = 0; habnzridx < habnzrfmt.strtnbr; habnzridx ++) /* Get start of line */ c = getc (filesrcptr); } habnzrval = (c == ' ') ? 0 : (c - '0'); for (habnzridx = 1; habnzridx < habnzrfmt.datalen; habnzridx ++) { if ((c = getc (filesrcptr)) != ' ') habnzrval = habnzrval * 10 + c - '0'; } if (c == EOF) { errorPrint ("graphGeomLoadHabo: bad input (8)"); graphFree (grafptr); return (1); } habnzrtab[habnzrnum] = habnzrval; if (habnzrval != vertnum) { /* If not loop edge */ grafptr->verttax[vertnum] ++; /* Account for arc */ grafptr->verttax[habnzrval] ++; /* Add arc to symmetrize */ } } } degrmax = 1; for (vertnum = edgenum = 1; vertnum < grafptr->vertnnd; vertnum ++) { /* Build (superset of) vertex array */ Gnum edgetmp; edgetmp = grafptr->verttax[vertnum]; grafptr->verttax[vertnum] = edgenum; edgenum += edgetmp; if (edgetmp > degrmax) /* Update bound on maximum degree */ degrmax = edgetmp; } grafptr->verttax[vertnum] = edgenum; /* Set end of vertex array */ for (vertnum = 1, habnzrnum = 0; vertnum < grafptr->vertnnd; vertnum ++) { /* Build (superset of) edge array */ for ( ; habnzrnum < (habcoltab[vertnum] - 1); habnzrnum ++) { Gnum vertend; /* Number of end vertex */ vertend = habnzrtab[habnzrnum]; if (vertend != vertnum) { /* If not loop edge */ grafptr->edgetax[grafptr->verttax[vertnum] ++] = vertend; /* Build arc */ grafptr->edgetax[grafptr->verttax[vertend] ++] = vertnum; /* Symmetrize */ } } } for (hashmsk = 31; hashmsk < degrmax; hashmsk = hashmsk * 2 + 1) ; /* Set neighbor hash table size */ hashmsk = hashmsk * 4 + 3; if ((hashtab = (GraphGeomHaboHash *) memAlloc ((hashmsk + 1) * sizeof (GraphGeomHaboHash))) == NULL) { errorPrint ("graphGeomLoadHabo: out of memory (2)"); graphFree (grafptr); return (1); } memSet (hashtab, ~0, (hashmsk + 1) * sizeof (GraphGeomHaboHash)); /* Pre-set hash table */ degrmax = 1; for (vertnum = edgetmp = edgenum = 1; vertnum < grafptr->vertnnd; vertnum ++) { /* Remove duplicates from edge array */ for (edgeold = edgetmp, edgetmp = grafptr->verttax[vertnum], grafptr->verttax[vertnum] = edgenum; edgeold < edgetmp; edgeold ++) { Gnum vertend; /* Number of end vertex */ Gnum hashnum; /* Current hash index */ vertend = grafptr->edgetax[edgeold]; for (hashnum = (vertend * GRAPHGEOMHABOHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].vertnum != vertnum) { /* If edge not found */ hashtab[hashnum].vertnum = vertnum; hashtab[hashnum].vertend = vertend; grafptr->edgetax[edgenum ++] = vertend; break; } if (hashtab[hashnum].vertend == vertend) /* Do not add duplicate edges */ break; } } if ((edgenum - grafptr->verttax[vertnum]) > degrmax) /* Set real maximum degree */ degrmax = edgenum - grafptr->verttax[vertnum]; } grafptr->verttax[vertnum] = edgenum; /* Set end of vertex array */ grafptr->edgenbr = edgenum - 1; grafptr->edlosum = grafptr->edgenbr; grafptr->degrmax = degrmax; memFree (hashtab); grafptr->edgetax = ((Gnum *) memRealloc (grafptr->edgetax + grafptr->baseval, grafptr->edgenbr * sizeof (Gnum))) - grafptr->baseval; #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (grafptr) != 0) { /* Check graph consistency */ errorPrint ("graphGeomLoadHabo: internal error"); graphFree (grafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } /* This routine reads a Fortran format structure ** and returns the size of the integers to read. */ static int graphGeomLoadHaboFormat ( GraphGeomHaboLine * restrict const lineptr, /* Line format to fill */ const char * const dataptr) /* Format string */ { const char * restrict charptr; int number; /* Number to read */ lineptr->strtnbr = lineptr->datanbr = lineptr->datalen = 0; for (charptr = dataptr; ; charptr ++) { /* Skip to first '(' */ if (*charptr == '(') break; if (*charptr == '\0') /* Error if end of string */ return (1); } number = 0; /* Read number */ for (charptr ++ ; ; charptr ++) { if (*charptr == '\0') /* Error if end of string */ return (1); if (! isdigit ((int) (unsigned char) *charptr)) break; number = number * 10 + *charptr - '0'; } if ((*charptr == 'x') || (*charptr == 'X')) { /* If dummy characters at beginning of line */ lineptr->strtnbr = number; for (charptr ++; ; charptr ++) { /* Skip to first ',' */ if (*charptr == '\0') /* Error if end of string */ return (1); if (*charptr == ',') break; } number = 0; /* Read number */ for (charptr ++; *charptr != '\0'; charptr ++) { if (*charptr == '\0') /* Error if end of string */ return (1); if (! isdigit (*charptr < '0')) break; number = number * 10 + *charptr - '0'; } } if ((*charptr != 'I') && (*charptr != 'i')) /* If not integer specification */ return (1); lineptr->datanbr = number; number = 0; /* Read size of integer */ for (charptr ++; ; charptr ++) { if (*charptr == '\0') /* Error if end of string */ return (1); if (! isdigit ((int) (unsigned char) *charptr)) break; number = number * 10 + *charptr - '0'; } if (number == 0) return (1); lineptr->datalen = number; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_habo.h000066400000000000000000000102031514310134000266430ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_habo.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the Harwell-Boeing matrix **/ /** format I/O module. **/ /** **/ /** DATES : # Version 3.2 : from : 06 nov 1997 **/ /** to : 06 nov 1997 **/ /** # Version 3.3 : from : 13 dec 1998 **/ /** to : 15 dec 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 19 jan 2004 **/ /** # Version 5.0 : from : 06 jun 2007 **/ /** to : 06 jun 2007 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing vertex numbers. +*/ #define GRAPHGEOMHABOHASHPRIME 7 /*+ Prime number +*/ /* ** The type and structure definitions. */ /*+ This structure holds neighbor vertex hashing data. +*/ typedef struct GraphGeomHaboHash_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum vertend; /*+ Adjacent end vertex number +*/ } GraphGeomHaboHash; /*+ This structure holds line formats for reading input data +*/ typedef struct GraphGeomHaboLine_ { int strtnbr; /*+ Number of starting blank characters +*/ int datanbr; /*+ Number of integers par line +*/ int datalen; /*+ Number of characters per integer +*/ } GraphGeomHaboLine; /* ** The function prototypes. */ static int graphGeomLoadHaboFormat (GraphGeomHaboLine * restrict const, const char * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_mmkt.c000066400000000000000000000313041514310134000267020ustar00rootroot00000000000000/* Copyright 2008,2010,2016,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_mmkt.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This module contains the input/output **/ /** routines for handling the Matrix Market **/ /** format. **/ /** **/ /** DATES : # Version 5.0 : from : 17 jan 2008 **/ /** to : 21 mar 2008 **/ /** # Version 5.1 : from : 27 apr 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 04 aug 2016 **/ /** to : 04 aug 2016 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "graph_io_mmkt.h" /********************************************************/ /* */ /* These routines handle source Matrix Market matrices. */ /* */ /********************************************************/ /* This routine loads a source graph from ** the given stream, corresponding to a MatrixMarket file. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphGeomLoadMmkt ( Graph * restrict const grafptr, /* Graph to load */ Geom * restrict const geomptr, /* Geometry to load */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* Fake base value */ { Gnum baseval; Gnum mrownbr; Gnum mcolnbr; Gnum linenbr; Gnum linenum; Gnum vertnum; Gnum verttmp; GraphGeomMmktEdge * sorttab; Gnum sortnbr; Gnum sortnum; Gnum * edgetax; Gnum edgenum; Gnum edgetmp; Gnum degrmax; char linetab[1025]; char * lineptr; char c; baseval = 1; /* Regular MatrixMarket indices start from 1 */ if ((dataptr != NULL) && /* If base value provided */ (dataptr[0] != '\0') && ((baseval = (Gnum) atol (dataptr)) == 0) && /* Get base value */ (dataptr[0] != '0')) { errorPrint ("graphGeomLoadMmkt: invalid parameter"); return (1); } if (fgets (linetab, 1025, filesrcptr) == NULL) { /* Read header lines */ errorPrint ("graphGeomLoadMmkt: bad input (1)"); return (1); } if (strncmp (linetab, "%%MatrixMarket", 14) != 0) { errorPrint ("graphGeomLoadMmkt: invalid header"); return (1); } for (lineptr = linetab + 14; *lineptr != '\0'; lineptr ++) *lineptr = tolower (*lineptr); if (strstr (linetab + 14, "matrix") == NULL) { errorPrint ("graphGeomLoadMmkt: only matrix types supported"); return (1); } while ((c = fgetc (filesrcptr)) == '%') { /* Skip additional comment lines */ if (fgets (linetab, 1025, filesrcptr) == NULL) { errorPrint ("graphGeomLoadMmkt: bad input (2)"); return (1); } } ungetc (c, filesrcptr); if ((intLoad (filesrcptr, &mrownbr) != 1) || /* Read number of rows */ (intLoad (filesrcptr, &mcolnbr) != 1) || /* Read number of columns */ (intLoad (filesrcptr, &linenbr) != 1)) { /* Read number of lines */ errorPrint ("graphGeomLoadMmkt: bad input (3)"); return (1); } if (mrownbr != mcolnbr) { /* If not a square matrix */ errorPrint ("graphGeomLoadMmkt: not a square matrix"); return (1); } memSet (grafptr, 0, sizeof (Graph)); grafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; grafptr->baseval = baseval; grafptr->vertnbr = mrownbr; grafptr->vertnnd = grafptr->vertnbr + baseval; if ((grafptr->verttax = memAlloc ((grafptr->vertnbr + 1) * sizeof (Gnum))) == NULL) { errorPrint ("graphGeomLoadMmkt: out of memory (1)"); graphExit (grafptr); return (1); } grafptr->verttax -= baseval; grafptr->vendtax = grafptr->verttax + 1; grafptr->velosum = grafptr->vertnbr; grafptr->velotax = NULL; grafptr->vnumtax = NULL; grafptr->vlbltax = NULL; if ((sorttab = (GraphGeomMmktEdge *) memAlloc (2 * linenbr * sizeof (GraphGeomMmktEdge))) == NULL) { /* Twice the space for symmetric edges */ errorPrint ("graphGeomLoadMmkt: out of memory (2)"); graphExit (grafptr); return (1); } grafptr->edgetax = ((Gnum *) sorttab) - baseval; /* TRICK: will be freed if graph is freed */ grafptr->edlotax = NULL; for (linenum = sortnbr = 0; linenum < linenbr; linenum ++) { if ((intLoad (filesrcptr, &sorttab[sortnbr].vertnum[0]) != 1) || /* Read edge ends */ (intLoad (filesrcptr, &sorttab[sortnbr].vertnum[1]) != 1) || (fgets (linetab, 1025, filesrcptr) == NULL)) { /* Skip end of line */ errorPrint ("graphGeomLoadMmkt: bad input (4)"); graphExit (grafptr); return (1); } if ((sorttab[sortnbr].vertnum[0] < baseval) || (sorttab[sortnbr].vertnum[0] >= (mrownbr + baseval)) || (sorttab[sortnbr].vertnum[1] < baseval) || (sorttab[sortnbr].vertnum[1] >= (mrownbr + baseval))) { errorPrint ("graphGeomLoadMmkt: bad input (5)"); graphExit (grafptr); return (1); } if (sorttab[sortnbr].vertnum[0] != sorttab[sortnbr].vertnum[1]) { /* If not loop edge */ sorttab[sortnbr + 1].vertnum[0] = sorttab[sortnbr].vertnum[1]; /* Add symmetric edge */ sorttab[sortnbr + 1].vertnum[1] = sorttab[sortnbr].vertnum[0]; sortnbr += 2; } } intSort2asc2 (sorttab, sortnbr); /* Sort edges by increasing indices */ edgetax = grafptr->edgetax; /* TRICK: point to beginning of sorted edge array for re-use */ for (sortnum = degrmax = 0, vertnum = verttmp = baseval - 1, edgetmp = edgenum = baseval; sortnum < sortnbr; sortnum ++) { Gnum vertend; if (vertnum < sorttab[sortnum].vertnum[0]) { /* If change of vertex index, that is, first edge end */ edgetmp = edgenum - edgetmp; /* Compute degree and see if it is maximum degree */ if (edgetmp > degrmax) degrmax = edgetmp; edgetmp = edgenum; grafptr->verttax[++ vertnum] = edgenum; /* Set beginning of new edge sub-array */ while (vertnum < sorttab[sortnum].vertnum[0]) /* Fill gaps with isolated vertices */ grafptr->verttax[++ vertnum] = edgenum; verttmp = baseval - 1; /* Make sure next edge will be considered as never seen before */ } vertend = sorttab[sortnum].vertnum[1]; /* Get end of current edge */ if (vertend != verttmp) /* If edge differs from previous one */ edgetax[edgenum ++] = verttmp = vertend; /* Add it to array and prevent duplicates */ } edgetmp = edgenum - edgetmp; /* Compute degree and see if it is maximum degree */ if (edgetmp > degrmax) degrmax = edgetmp; while (vertnum < mrownbr) /* Fill gaps with isolated vertices and mark beginning of new one */ grafptr->verttax[++ vertnum] = edgenum; grafptr->verttax[++ vertnum] = edgenum; /* Mark end of array */ #ifdef SCOTCH_DEBUG_GRAPH2 if (vertnum != grafptr->vertnnd) { errorPrint ("graphGeomLoadMmkt: internal error (1)"); graphExit (grafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ grafptr->edgenbr = edgenum - baseval; grafptr->edgetax = ((Gnum *) memRealloc (edgetax + baseval, grafptr->edgenbr * sizeof (Gnum))) - baseval; /* TRICK: keep only useful space in re-used array */ grafptr->edlotax = NULL; grafptr->edlosum = grafptr->edgenbr; grafptr->degrmax = degrmax; #ifdef SCOTCH_DEBUG_GRAPH2 if (graphCheck (grafptr) != 0) { /* Check graph consistency */ errorPrint ("graphGeomLoadMmkt: internal error (2)"); graphExit (grafptr); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (0); } /* This routine saves the geometrical graph ** in the Matrix Market symmetric graph format. ** It returns: ** - 0 : on succes ** - !0 : on error. */ int graphGeomSaveMmkt ( const Graph * restrict const grafptr, /* Graph to save */ const Geom * restrict const geomptr, /* Geometry to save */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { Gnum baseadj; /* Base adjustment */ Gnum vertnum; /* Current vertex */ Gnum edgenum; /* Current edge */ int o; baseadj = 1 - grafptr->baseval; /* Output base is always 1 */ o = (fprintf (filesrcptr, "%%%%MatrixMarket matrix coordinate pattern symmetric\n%% Produced by Scotch graphGeomSaveMmkt\n" GNUMSTRING " " GNUMSTRING " " GNUMSTRING "\n", /* Write graph header */ (Gnum) grafptr->vertnbr, (Gnum) grafptr->vertnbr, (Gnum) ((grafptr->edgenbr / 2) + grafptr->vertnbr)) == EOF); for (vertnum = grafptr->baseval; (o == 0) && (vertnum < grafptr->vertnnd); vertnum ++) { Gnum vlblnum; /* Vertex label to output */ vlblnum = ((grafptr->vlbltax != NULL) ? grafptr->vlbltax[vertnum] : vertnum) + baseadj; if (fprintf (filesrcptr, GNUMSTRING " " GNUMSTRING "\n", /* Write diagonal term */ (Gnum) vlblnum, (Gnum) vlblnum) < 0) { o = 1; break; } for (edgenum = grafptr->verttax[vertnum]; edgenum < grafptr->vendtax[vertnum]; edgenum ++) { Gnum vlblend; /* End vertex label to output */ vlblend = grafptr->edgetax[edgenum]; if (grafptr->vlbltax != NULL) vlblend = grafptr->vlbltax[vlblend]; vlblend += baseadj; if (vlblend < vlblnum) { if (fprintf (filesrcptr, GNUMSTRING " " GNUMSTRING "\n", (Gnum) vlblnum, (Gnum) vlblend) < 0) { o = 1; break; } } } } if (o != 0) errorPrint ("graphGeomSaveMmkt: bad output"); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_mmkt.h000066400000000000000000000052301514310134000267060ustar00rootroot00000000000000/* Copyright 2008 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_mmkt.h **/ /** **/ /** AUTHORS : Cedric CHEVALIER (v5.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the Input routines **/ /** for handling the Matrix Market format. **/ /** **/ /** DATES : # Version 5.0 : from : 17 jan 2008 **/ /** to : 14 mar 2008 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /* Structure representing edges to symmetrize. */ typedef struct GraphGeomMmktEdge_ { Gnum vertnum[2]; } GraphGeomMmktEdge; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_scot.c000066400000000000000000000306251514310134000267070ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_scot.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the I/O routines **/ /** for handling the Scotch graph format. **/ /** **/ /** DATES : # Version 3.2 : from : 06 nov 1997 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 13 dec 1998 **/ /** to : 21 dec 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 22 dec 2005 **/ /** # Version 5.0 : from : 13 sep 2006 **/ /** to : 27 feb 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "graph_io_scot.h" /* This routine loads the geometrical graph ** in the Scotch graph format, and allocates ** the proper structures. ** - 0 : on success. ** - !0 : on error. */ int graphGeomLoadScot ( Graph * restrict const grafptr, /* Graph to load */ Geom * restrict const geomptr, /* Geometry to load */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { void * coorfileptr; /* Temporary pointer to comply with C99 rules */ double * restrict coorfiletab; /* Pointer to geometric data read from file */ GraphGeomScotSort * restrict coorsorttab; /* Pointer to geometric data sorting array */ int coorsortflag; /* Flag set if geometric data sorted by label */ Gnum coornbr; /* Number of geometric coordinates in file */ Gnum coornum; /* Number of current coordinate */ GraphGeomScotSort * restrict vertsorttab; /* Pointer to graph sorting array */ int vertsortflag; /* Flag set if graph data sorted by label */ Gnum vertnum; /* Current graph vertex */ Gnum dimnnbr; /* Dimension of geometry file */ int o; if (filesrcptr != NULL) { if (graphLoad (grafptr, filesrcptr, -1, 0) != 0) return (1); } if (filegeoptr == NULL) return (0); if ((intLoad (filegeoptr, &dimnnbr) != 1) || /* Read type and number of geometry items */ (intLoad (filegeoptr, &coornbr) != 1) || (dimnnbr < 1) || (dimnnbr > 3)) { errorPrint ("graphGeomLoadScot: bad input (1)"); return (1); } if ((filesrcptr != NULL) && (grafptr->vertnbr != coornbr)) { errorPrint ("graphGeomLoadScot: inconsistent number of vertices"); return (1); } if (grafptr->vertnbr == 0) return (0); if ((geomptr->geomtab == NULL) && /* Allocate geometry if necessary */ ((geomptr->geomtab = (double *) memAlloc (grafptr->vertnbr * dimnnbr * sizeof (double))) == NULL)) { errorPrint ("graphGeomLoadScot: out of memory (1)"); return (1); } if (memAllocGroup ((void **) &coorfileptr, (size_t) (coornbr * dimnnbr * sizeof (double)), &coorsorttab, (size_t) (coornbr * sizeof (GraphGeomScotSort)), &vertsorttab, (size_t) (grafptr->vertnbr * sizeof (GraphGeomScotSort)), NULL) == NULL) { errorPrint ("graphGeomLoadScot: out of memory (2)"); return (1); } coorfiletab = coorfileptr; o = 0; coorsortflag = 1; /* Assume geometry data sorted */ for (coornum = 0; (o == 0) && (coornum < coornbr); coornum ++) { Gnum vlblnum; o = 1 - intLoad (filegeoptr, &vlblnum); coorsorttab[coornum].labl = vlblnum; coorsorttab[coornum].num = coornum; if ((coornum > 0) && /* Check if geometry data sorted */ (coorsorttab[coornum].labl < coorsorttab[coornum - 1].labl)) coorsortflag = 0; /* Geometry data not sorted */ o |= 1 - fscanf (filegeoptr, "%lf", /* Read X coordinate */ &coorfiletab[coornum * dimnnbr]); if (dimnnbr > 1) { o |= 1 - fscanf (filegeoptr, "%lf", /* Read Y coordinate */ &coorfiletab[(coornum * dimnnbr) + 1]); if (dimnnbr > 2) o |= 1 - fscanf (filegeoptr, "%lf", /* Read Z coordinate */ &coorfiletab[(coornum * dimnnbr) + 2]); } } if (o != 0) { errorPrint ("graphGeomLoadScot: bad input (2)"); memFree (coorfiletab); /* Free group leader */ return (1); } if (coorsortflag != 1) /* If geometry data not sorted */ intSort2asc1 (coorsorttab, coornbr); /* Sort sort area by ascending labels */ for (coornum = 1; coornum < coornbr; coornum ++) { /* Check geometric data integrity */ if (coorsorttab[coornum].labl == coorsorttab[coornum - 1].labl) { errorPrint ("graphGeomLoadScot: duplicate vertex label"); memFree (coorfiletab); /* Free group leader */ return (1); } } if (grafptr->vlbltax != NULL) { /* If graph has vertex labels */ vertsortflag = 1; /* Assume graph data sorted */ for (vertnum = 0; vertnum < grafptr->vertnbr; vertnum ++) { vertsorttab[vertnum].labl = grafptr->vlbltax[vertnum + grafptr->baseval]; vertsorttab[vertnum].num = vertnum; if ((vertnum > 0) && /* Check if graph data sorted */ (vertsorttab[vertnum].labl < vertsorttab[vertnum - 1].labl)) vertsortflag = 0; /* Graph data not sorted */ } if (vertsortflag != 1) /* If graph data not sorted */ intSort2asc1 (vertsorttab, grafptr->vertnbr); /* Sort sort area by ascending labels */ } else { /* Graph does not have vertex labels */ for (vertnum = 0; vertnum < grafptr->vertnbr; vertnum ++) vertsorttab[vertnum].labl = vertsorttab[vertnum].num = vertnum; } for (coornum = vertnum = 0; vertnum < grafptr->vertnbr; vertnum ++) { /* For all vertices in graph */ while ((coornum < coornbr) && (coorsorttab[coornum].labl < vertsorttab[vertnum].labl)) coornum ++; /* Search geometry vertex with same label */ if ((coornum >= coornbr) || (coorsorttab[coornum].labl > vertsorttab[vertnum].labl)) { /* If label does not exist */ errorPrint ("graphGeomLoadScot: vertex geometry data not found (%d)", vertsorttab[vertnum].labl); memFree (coorfiletab); /* Free group leader */ return (1); } memCpy (&geomptr->geomtab[vertsorttab[vertnum].num * dimnnbr], &coorfiletab[coorsorttab[coornum ++].num * dimnnbr], dimnnbr * sizeof (double)); } memFree (coorfiletab); /* Free group leader */ return (0); } /* This routine saves the source process graph ** in the Scotch source and geometry formats. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int graphGeomSaveScot ( const Graph * restrict const grafptr, /* Graph to save */ const Geom * restrict const geomptr, /* Geometry to save */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { Gnum vertnum; int dimnnbr; int o; if (filesrcptr != NULL) { if (graphSave (grafptr, filesrcptr) != 0) /* Save graph structural data */ return (1); } dimnnbr = geomptr->dimnnbr; o = 0; if (geomptr->geomtab != NULL) { /* If geometrical data present */ o = (fprintf (filegeoptr, GNUMSTRING "\n" GNUMSTRING "\n", /* Output file header */ (Gnum) geomptr->dimnnbr, (Gnum) grafptr->vertnbr) == EOF); switch (dimnnbr) { /* Output geometry data */ case 1 : for (vertnum = grafptr->baseval; (o == 0) && (vertnum < grafptr->vertnnd); vertnum ++) o |= (fprintf (filegeoptr, GNUMSTRING "\t%lf\n", (Gnum) ((grafptr->vlbltax != NULL) ? grafptr->vlbltax[vertnum] : vertnum), (double) geomptr->geomtab[(vertnum - grafptr->baseval) * dimnnbr]) == EOF); break; case 2 : for (vertnum = grafptr->baseval; (o == 0) && (vertnum < grafptr->vertnnd); vertnum ++) o |= (fprintf (filegeoptr, GNUMSTRING "\t%lf\t%lf\n", (Gnum) ((grafptr->vlbltax != NULL) ? grafptr->vlbltax[vertnum] : vertnum), (double) geomptr->geomtab[(vertnum - grafptr->baseval) * dimnnbr], (double) geomptr->geomtab[(vertnum - grafptr->baseval) * dimnnbr + 1]) == EOF); break; case 3 : for (vertnum = grafptr->baseval; (o == 0) && (vertnum < grafptr->vertnnd); vertnum ++) o |= (fprintf (filegeoptr, GNUMSTRING "\t%lf\t%lf\t%lf\n", (Gnum) ((grafptr->vlbltax != NULL) ? grafptr->vlbltax[vertnum] : vertnum), (double) geomptr->geomtab[(vertnum - grafptr->baseval) * dimnnbr], (double) geomptr->geomtab[(vertnum - grafptr->baseval) * dimnnbr + 1], (double) geomptr->geomtab[(vertnum - grafptr->baseval) * dimnnbr + 2]) == EOF); break; #ifdef SCOTCH_DEBUG_GRAPH2 default : errorPrint ("graphGeomSaveScot: invalid geometry type"); return (1); #endif /* SCOTCH_DEBUG_GRAPH2 */ } if (o != 0) { errorPrint ("graphGeomSaveScot: bad output"); } } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_io_scot.h000066400000000000000000000063311514310134000267110ustar00rootroot00000000000000/* Copyright 2004,2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_io_scot.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the Scotch graph format **/ /** module. **/ /** **/ /** DATES : # Version 3.2 : from : 06 nov 1997 **/ /** to : 06 nov 1997 **/ /** # Version 3.3 : from : 13 dec 1998 **/ /** to : 21 dec 1998 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 19 jan 2004 **/ /** # Version 5.0 : from : 13 sep 2006 **/ /** to : 13 sep 2006 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The sort structure, used to sort graph vertices by label. Field labl is first because of intSort2asc1. +*/ typedef struct GraphGeomScotSort_ { Gnum labl; /*+ Vertex label: FIRST +*/ Gnum num; /*+ Vertex number +*/ } GraphGeomScotSort; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_list.c000066400000000000000000000202311514310134000262130ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_list.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** vertex lists functions. **/ /** **/ /** DATES : # Version 0.0 : from : 01 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 31 oct 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 08 jun 1996 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 sep 1998 **/ /** # Version 4.0 : from : 10 dec 2001 **/ /** to : 10 dec 2001 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /********************************/ /* */ /* These routines handle vertex */ /* number lists. */ /* */ /********************************/ /* This routine creates a vertex number list. ** It returns: ** - 0 : in all cases. */ int listInit ( VertList * listptr) { listptr->vnumnbr = 0; /* Initialize list fields */ listptr->vnumtab = NULL; return (0); } /* This routine deletes the given vertex number list. ** It returns: ** - VOID : in all cases. */ void listExit ( VertList * listptr) { if (listptr->vnumtab != NULL) memFree (listptr->vnumtab); /* Free vertex list array */ #ifdef SCOTCH_DEBUG_GRAPH2 memSet (listptr, 0, sizeof (VertList)); /* Purge list fields */ #endif /* SCOTCH_DEBUG_GRAPH2 */ } /* This routine allocates a vertex ** number list array. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int listAlloc ( VertList * listptr, Gnum vnumnbr) { if (vnumnbr == listptr->vnumnbr) /* If array is already dimensioned */ return (0); /* Keep it as it is */ listFree (listptr); /* Free vertex array */ if (vnumnbr > 0) { /* Reallocate vertex space */ if ((listptr->vnumtab = (Gnum *) memAlloc (vnumnbr * sizeof (Gnum))) == NULL) { errorPrint ("listAlloc: out of memory"); return (1); } listptr->vnumnbr = vnumnbr; } return (0); } /* This routine frees a vertex ** number list array. ** It returns: ** - 0 : in all cases. */ int listFree ( VertList * listptr) { if (listptr->vnumtab != NULL) /* Free vertex list array */ memFree (listptr->vnumtab); listptr->vnumnbr = 0; /* Reset list values */ listptr->vnumtab = NULL; return (0); } /* These routines load a vertex number list ** from the given stream. Because of the search ** for duplicates, the list read is always ** sorted by ascending order. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int listLoad ( VertList * listptr, FILE * stream) { Gnum vnumnbr; Gnum vnumnum; if (intLoad (stream, &vnumnbr) != 1) { /* Read number of vertices */ errorPrint ("listLoad: bad input (1)"); return (1); } if (listAlloc (listptr, vnumnbr) != 0) { /* Allocate vertex space */ errorPrint ("listLoad: out of memory"); return (1); } for (vnumnum = 0; vnumnum < vnumnbr; vnumnum ++) { /* Read vertex list contents */ if (intLoad (stream, &listptr->vnumtab[vnumnum]) != 1) { errorPrint ("listLoad: bad input (2)"); return (1); } } listSort (listptr); /* Sort vertex list by ascending order */ for (vnumnum = 1; vnumnum < vnumnbr; vnumnum ++) { /* Search list for duplicates */ if (listptr->vnumtab[vnumnum] == listptr->vnumtab[vnumnum - 1]) { errorPrint ("listLoad: duplicate vertex numbers"); return (1); } } return (0); } /* This routine sorts a vertex list ** by ascending order. ** It returns: ** - VOID : in all cases. */ void listSort ( VertList * listptr) { intSort1asc1 (listptr->vnumtab, listptr->vnumnbr); } /* This routine saves a vertex number list ** to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int listSave ( VertList * listptr, FILE * stream) { Gnum vnumnum; int o; o = (intSave (stream, listptr->vnumnbr) == 0); /* Write number of vertices */ for (vnumnum = 0; (o == 0) && (vnumnum < listptr->vnumnbr); vnumnum ++) { o = (fprintf (stream, "%c" GNUMSTRING, ((vnumnum % 8) == 0) ? '\n' : '\t', (Gnum) listptr->vnumtab[vnumnum]) == EOF); } o |= (fprintf (stream, "\n") == EOF); if (o != 0) errorPrint ("listSave: bad output"); return (o); } /* This routine copies the contents ** of a vertex list into another. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int listCopy ( VertList * dstlistptr, /* Destination list */ VertList * srclistptr) /* Source list */ { if (listAlloc (dstlistptr, dstlistptr->vnumnbr) != 0) { /* Allocate vertex space */ errorPrint ("listCopy: out of memory"); return (1); } memCpy (dstlistptr->vnumtab, /* Copy list data */ srclistptr->vnumtab, srclistptr->vnumnbr * sizeof (Gnum)); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_list.h000066400000000000000000000115561514310134000262320ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_list.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph functions. **/ /** **/ /** DATES : # Version 0.0 : from : 02 dec 1992 **/ /** to : 18 may 1993 **/ /** # Version 1.3 : from : 30 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 18 aug 1994 **/ /** # Version 3.0 : from : 07 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 28 nov 1995 **/ /** to : 28 nov 1995 **/ /** # Version 3.2 : from : 07 sep 1996 **/ /** to : 15 sep 1998 **/ /** # Version 3.3 : from : 28 sep 1998 **/ /** to : 23 mar 1999 **/ /** # Version 3.4 : from : 20 mar 2000 **/ /** to : 20 mar 2000 **/ /** # Version 4.0 : from : 24 nov 2001 **/ /** to : 27 sep 2002 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The vertex list structure. Since a vertex list always refers to a given graph, vertex indices contained in the vertex list array are based with respect to the base value of the associated graph. However, the array itself is not based. +*/ typedef struct VertList_ { Gnum vnumnbr; /*+ Number of vertices in list +*/ Gnum * vnumtab; /*+ Pointer to vertex array +*/ } VertList; /* ** The function prototypes. */ int listInit (VertList *); void listExit (VertList *); int listAlloc (VertList *, Gnum); int listFree (VertList *); int listLoad (VertList *, FILE *); int listSave (VertList *, FILE *); void listSort (VertList *); int listCopy (VertList *, VertList *); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_match.c000066400000000000000000000333451514310134000263460ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2011,2012,2015,2018-2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_match.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the source graph **/ /** matching functions, generated from the **/ /** generic pattern. **/ /** **/ /** DATES : # Version 6.0 : from : 05 oct 2012 **/ /** to : 30 aug 2020 **/ /** # Version 7.0 : from : 28 jul 2018 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_GRAPH_MATCH #include "module.h" #include "common.h" #include "context.h" #include "arch.h" #include "graph.h" #include "graph_coarsen.h" #include "graph_match.h" /* ** The static variables. */ /* Array of matching routines */ static void (* graphmatchfunctab[]) (GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const) = { GRAPHMATCHFUNCBLOCK (Seq), #ifndef GRAPHMATCHNOTHREAD GRAPHMATCHFUNCBLOCK (Thr) #else /* GRAPHMATCHNOTHREAD */ NULL, /* Raise error if functions are called */ NULL, NULL, NULL #endif /* GRAPHMATCHNOTHREAD */ }; /***************************/ /* */ /* The sequential matching */ /* subroutines. */ /* */ /***************************/ #define GRAPHMATCHSCANSEQ #define GRAPHMATCHSCANNAME graphMatchSeqNfNe #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #define GRAPHMATCHSCANEDLOTAB #define GRAPHMATCHSCANNAME graphMatchSeqNfEl #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #undef GRAPHMATCHSCANEDLOTAB #define GRAPHMATCHSCANPFIXTAB #define GRAPHMATCHSCANNAME graphMatchSeqFxNe #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #define GRAPHMATCHSCANEDLOTAB #define GRAPHMATCHSCANNAME graphMatchSeqFxEl #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #undef GRAPHMATCHSCANEDLOTAB #undef GRAPHMATCHSCANPFIXTAB #undef GRAPHMATCHSCANSEQ /*************************/ /* */ /* The threaded matching */ /* subroutines. */ /* */ /*************************/ #ifndef GRAPHMATCHNOTHREAD #define GRAPHMATCHSCANNAME graphMatchThrNfNe #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #define GRAPHMATCHSCANEDLOTAB #define GRAPHMATCHSCANNAME graphMatchThrNfEl #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #undef GRAPHMATCHSCANEDLOTAB #define GRAPHMATCHSCANPFIXTAB #define GRAPHMATCHSCANNAME graphMatchThrFxNe #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #define GRAPHMATCHSCANEDLOTAB #define GRAPHMATCHSCANNAME graphMatchThrFxEl #include "graph_match_scan.c" #undef GRAPHMATCHSCANNAME #undef GRAPHMATCHSCANEDLOTAB #undef GRAPHMATCHSCANPFIXTAB #endif /* GRAPHMATCHNOTHREAD */ /**********************/ /* */ /* The matching queue */ /* handling routines. */ /* */ /**********************/ static void graphMatchQueueSort ( GraphCoarsenData * restrict const coarptr, GraphCoarsenThread * restrict const thrdptr, Gnum finevertbas, Gnum finevertnnd) { Gnum * restrict finequeuptr; Gnum finequeunbr; Gnum finevertnum; const Gnum * restrict const fineverttax = coarptr->finegrafptr->verttax; const Gnum * restrict const finevendtax = coarptr->finegrafptr->vendtax; for (finevertnum = finevertbas, finequeuptr = thrdptr->finequeutab; finevertnum < finevertnnd; finevertnum ++) { *(finequeuptr ++) = finevendtax[finevertnum] - fineverttax[finevertnum]; *(finequeuptr ++) = finevertnum; } thrdptr->finequeunbr = finequeunbr = finevertnnd - finevertbas; intPsort2asc1 (thrdptr->finequeutab, finequeunbr, 3); } /***********************************/ /* */ /* The matching handling routines. */ /* */ /***********************************/ /* This routine performs the sequential ** initialization of the global mating ** data structures, before the threads ** are launched. ** It returns: ** - 0 : if initialization could be performed. ** - 1 : on error. */ int graphMatchInit ( GraphCoarsenData * restrict coarptr, const int thrdnbr) { int fumaval; /* Matching routine index in function array */ Gnum deteval; /* Flag set if deterministic behavior */ const Graph * restrict const finegrafptr = coarptr->finegrafptr; contextValuesGetInt (coarptr->contptr, CONTEXTOPTIONNUMDETERMINISTIC, &deteval); fumaval = (finegrafptr->edlotax != NULL) ? 1 : 0; if ((coarptr->finevfixnbr > 0) || (coarptr->fineparotax != NULL)) fumaval |= 2; #ifndef GRAPHMATCHNOTHREAD if ((deteval == 0) && (thrdnbr > 1)) { /* If non-deterministic behavior accepted and several threads available */ if ((coarptr->finelocktax = memAlloc (finegrafptr->vertnbr * sizeof (int))) == NULL) { errorPrint ("graphMatchInit: out of memory"); return (1); } coarptr->finelocktax -= finegrafptr->baseval; fumaval |= 4; /* Run threaded routines */ } else #endif /* GRAPHMATCHNOTHREAD */ { coarptr->finelocktax = NULL; /* A NULL finelocktax means sequential (deterministic) process wanted */ } coarptr->fumaval = fumaval; return (0); } /* This routine merges the results of two mating ** threads and re-launches a mating operation ** if necessary. */ #if 0 /* Recursive reduction routine that merges queues; a bit of an overkill to date */ static void graphMatchReduce ( GraphCoarsenThread * restrict const tlocptr, /* Pointer to local block */ GraphCoarsenThread * restrict const tremptr) /* Pointer to remote block */ { Gnum qremnbr; qremnbr = tremptr->finequeunnd - tremptr->finequeubas; /* Number of enqueued fine vertices in second thread */ memMov (tlocptr->finequeutab + tlocptr->finequeunbr, /* Merge queues */ tremptr->finequeutab, qremnbr * sizeof (Gnum)); tlocptr->finequeunbr += qremnbr; if ((tlocptr->thrdnum == 0) && (((tremptr - tlocptr) << 1) >= tlocptr->thrdnbr)) /* If last join */ graphmatchfunctab[coarptr->funcval & ~4] (tlocptr->coarptr, tlocptr); /* Call sequential match routine */ else graphmatchfunctab[coarptr->funcval] (tlocptr->coarptr, tlocptr); /* Call threaded, intermediate match routine */ } #endif /* 0 */ /* This routine matches the vertices of the given ** graph, according to various constraints. The ** matching can be either single-threaded or ** multi-threaded. ** It returns: ** - void : in all cases. */ void graphMatch ( ThreadDescriptor * restrict const descptr, GraphCoarsenData * const coarptr) /* [norestrict] because of retuval in threaded contexts */ { Gnum finevertbas; Gnum finevertnnd; Gnum finevertsiz; /* Fine vertex local (or global) range */ #ifdef SCOTCH_DEBUG_GRAPH2 Gnum finevertnum; #endif /* SCOTCH_DEBUG_GRAPH2 */ #ifdef SCOTCH_PTHREAD const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); GraphCoarsenThread * const thrdptr = &coarptr->thrdtab[thrdnum]; #else /* SCOTCH_PTHREAD */ GraphCoarsenThread * const thrdptr = &coarptr->thrdtab[0]; #endif /* SCOTCH_PTHREAD */ if (coarptr->finelocktax == NULL) { /* If sequential, deterministic processing wanted */ #ifdef SCOTCH_PTHREAD if (thrdnum != 0) { /* Only thread 0 will perform the work */ threadBarrier (descptr); /* End-of-routine synchronization barrier */ return; } #endif /* SCOTCH_PTHREAD */ finevertbas = coarptr->finegrafptr->baseval; /* Work on all graph fine vertices */ finevertnnd = coarptr->finegrafptr->vertnnd; } else { finevertbas = thrdptr->finevertbas; /* Work on slice of fine graph */ finevertnnd = thrdptr->finevertnnd; } finevertsiz = finevertnnd - finevertbas; thrdptr->finequeudlt = 2; /* For sort queue */ if ((thrdptr->finequeutab = memAlloc (finevertsiz * thrdptr->finequeudlt * sizeof (Gnum))) == NULL) { /* Allocate (local or global) processing queue */ errorPrint ("graphMatch: out of memory"); coarptr->retuval = 2; if (coarptr->finelocktax == NULL) { /* If only thread 0 is working */ #ifdef SCOTCH_PTHREAD threadBarrier (descptr); /* End-of-routine synchronization barrier */ #endif /* SCOTCH_PTHREAD */ return; /* Thread 0 returns */ } } memSet (coarptr->finematetax + finevertbas, ~0, finevertsiz * sizeof (Gnum)); /* Initialize (local part of) mate array */ if (coarptr->finelocktax != NULL) { memSet (coarptr->finelocktax + finevertbas, 0, finevertsiz * sizeof (int)); /* Initialize local part of lock array for concurrent acces */ threadBarrier (descptr); /* Synchronization for mating arrays and retuval */ if (coarptr->retuval != 0) { if (thrdptr->finequeutab != NULL) /* If someone else's allocation failed */ memFree (thrdptr->finequeutab); /* Free our own queue */ return; } } graphMatchQueueSort (coarptr, thrdptr, finevertbas, finevertnnd); thrdptr->coarvertnbr = 0; /* No coarse vertices created yet */ #ifdef SCOTCH_PTHREAD if (coarptr->finelocktax != NULL) { graphmatchfunctab[coarptr->fumaval] (coarptr, thrdptr); /* Call parallel matching routine */ threadBarrier (descptr); /* Barrier before pseudo-reduction */ if (thrdnum == 0) { Gnum coarvertnbr; int thrdtmp; for (thrdtmp = 0, coarvertnbr = 0; /* Sequential pseudo-reduction on remaining vertices */ thrdtmp < thrdnbr; thrdtmp ++) { graphmatchfunctab[coarptr->fumaval & ~4] (coarptr, &coarptr->thrdtab[thrdtmp]); /* Call sequential matching routine */ coarvertnbr += coarptr->thrdtab[thrdtmp].coarvertnbr; } coarptr->coarvertnbr = coarvertnbr; /* Global number of coarse vertices is reduced number */ memFree (coarptr->finelocktax + coarptr->finegrafptr->baseval); /* Free now useless lock array */ } threadBarrier (descptr); /* coarptr->coarvertnbr must be known to all */ } else #endif /* SCOTCH_PTHREAD */ { graphmatchfunctab[coarptr->fumaval & ~4] (coarptr, thrdptr); /* Call sequential matching routine */ coarptr->coarvertnbr = thrdptr->coarvertnbr; /* Global number of coarse vertices is that computed by (sequential) thread 0 */ } memFree (thrdptr->finequeutab); #ifdef SCOTCH_DEBUG_GRAPH2 for (finevertnum = finevertbas; finevertnum < finevertnnd; finevertnum ++) { if (coarptr->finematetax[finevertnum] == ~0) { /* If matching not aborted, this should not happen */ errorPrint ("graphMatch: internal error"); coarptr->coarvertnbr = coarptr->coarvertmax; } } #endif /* SCOTCH_DEBUG_GRAPH2 */ #ifdef SCOTCH_PTHREAD if (coarptr->finelocktax == NULL) /* If only thread 0 is working */ threadBarrier (descptr); /* End-of-routine synchronization barrier for thread 0 */ #endif /* SCOTCH_PTHREAD */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_match.h000066400000000000000000000077701514310134000263560ustar00rootroot00000000000000/* Copyright 2012,2015,2018-2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_match.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the centralized source graph **/ /** matching routines. **/ /** **/ /** DATES : # Version 6.0 : from : 02 oct 2012 **/ /** to : 21 feb 2020 **/ /** # Version 7.0 : from : 01 aug 2018 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /** Prime number for cache-friendly perturbations. **/ #define GRAPHMATCHSCANPERTPRIME 179 /* Prime number */ /** Function block building macro. **/ #define GRAPHMATCHFUNCBLOCK(t) graphMatch##t##NfNe, \ graphMatch##t##NfEl, \ graphMatch##t##FxNe, \ graphMatch##t##FxEl #define GRAPHMATCHFUNCDECL(t) static void graphMatch##t##NfNe (GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const); \ static void graphMatch##t##NfEl (GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const); \ static void graphMatch##t##FxNe (GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const); \ static void graphMatch##t##FxEl (GraphCoarsenData * restrict const, GraphCoarsenThread * restrict const) /* ** The function prototypes. */ #ifdef SCOTCH_GRAPH_MATCH GRAPHMATCHFUNCDECL (Seq); #ifndef GRAPHMATCHNOTHREAD GRAPHMATCHFUNCDECL (Thr); #endif /* GRAPHMATCHNOTHREAD */ #endif /* SCOTCH_GRAPH_MATCH */ int graphMatchInit (GraphCoarsenData * restrict, const int); void graphMatch (ThreadDescriptor * restrict const, GraphCoarsenData * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/graph_match_scan.c000066400000000000000000000241651514310134000273520ustar00rootroot00000000000000/* Copyright 2012,2014,2015,2018-2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : graph_match_scan.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the stub of the **/ /** threaded and un-threaded centralized **/ /** graph matching functions. **/ /** **/ /** DATES : # Version 6.0 : from : 01 oct 2012 **/ /** to : 30 aug 2020 **/ /** # Version 7.0 : from : 28 jul 2018 **/ /** to : 14 jan 2020 **/ /** **/ /** NOTES : # This code partly derives from the **/ /** code of graph_match.c partly updated **/ /** in the early stages of release 6.0 **/ /** so as to account for fixed vertices **/ /** and an old partition. **/ /** **/ /************************************************************/ /***************************/ /* */ /* The matching subroutine */ /* pattern. */ /* */ /***************************/ /* This routine matches the vertices of the given ** centralized graph according to various constraints. ** It returns: ** - void : in all cases */ static void GRAPHMATCHSCANNAME ( GraphCoarsenData * restrict const coarptr, GraphCoarsenThread * restrict const thrdptr) { Gnum finequeunew; /* Write index in queue; always <= queunum */ Gnum finequeunum; /* read index in queue */ Gnum finequeunnd; /* Index of end of queue */ const Graph * restrict const finegrafptr = coarptr->finegrafptr; Gnum * restrict const finequeutab = thrdptr->finequeutab; const Gnum finequeudlt = thrdptr->finequeudlt; Gnum coarvertnbr = thrdptr->coarvertnbr; /* Current number of multinode vertices */ const int flagval = coarptr->flagval; #ifndef GRAPHMATCHSCANSEQ volatile int * const locktax = coarptr->finelocktax; #endif /* GRAPHMATCHSCANSEQ */ const Gnum * restrict const fineverttax = finegrafptr->verttax; const Gnum * restrict const finevendtax = finegrafptr->vendtax; const Gnum * restrict const fineedgetax = finegrafptr->edgetax; #ifdef GRAPHMATCHSCANEDLOTAB const Gnum * restrict const fineedlotax = finegrafptr->edlotax; #endif /* GRAPHMATCHSCANEDLOTAB */ volatile Gnum * restrict const finematetax = coarptr->finematetax; #ifdef GRAPHMATCHSCANPFIXTAB const Gnum * restrict const fineparotax = coarptr->fineparotax; const Gnum * restrict const finepfixtax = coarptr->finepfixtax; #endif /* GRAPHMATCHSCANPFIXTAB */ finequeunew = 0; finequeunum = finequeudlt >> 1; /* First pass: dlt = 2, start index = 1; next passes: dlt = 1, start index = 0 */ finequeunnd = finequeunum + thrdptr->finequeunbr * finequeudlt; for ( ; finequeunum < finequeunnd; finequeunum += finequeudlt) { /* For all queued vertex indices */ Gnum finevertnum; Gnum finevertbst; Gnum fineedgenum; Gnum fineedgennd; #ifdef GRAPHMATCHSCANEDLOTAB Gnum fineedlobst = -1; /* Edge load of current best neighbor */ #endif /* GRAPHMATCHSCANEDLOTAB */ finevertnum = finequeutab[finequeunum]; if (finematetax[finevertnum] >= 0) /* If vertex already mated, skip it without remembering it */ continue; finevertbst = finevertnum; /* Assume we match with ourselves */ fineedgenum = fineverttax[finevertnum]; fineedgennd = finevendtax[finevertnum]; if (fineedgenum == fineedgennd) { /* If isolated vertex */ if ((flagval & GRAPHCOARSENNOMERGE) == 0) { /* If can be merged */ Gnum finequisnnd; /* Index for mating isolated vertex at end of queue */ while ((finequeunnd > finequeunum) && /* Discard already matched vertices at end of queue */ (finematetax[finequeutab[finequeunnd - finequeudlt]] >= 0)) finequeunnd -= finequeudlt; for (finequisnnd = finequeunnd; finequisnnd > finequeunum; ) { /* As long we have candidates */ Gnum fineverttmp; fineverttmp = finequeutab[finequisnnd - finequeudlt]; /* Get mate from end of queue */ finequisnnd -= finequeudlt; /* Assume vertex is consumed */ if (finematetax[fineverttmp] < 0) { /* If vertex can be matched */ #ifdef GRAPHMATCHSCANPFIXTAB if (((finepfixtax == NULL) || (finepfixtax[fineverttmp] == finepfixtax[finevertnum])) && /* We can only mate if potential mate has same value */ ((fineparotax == NULL) || (fineparotax[fineverttmp] == fineparotax[finevertnum]))) /* And is in the same old part */ #endif /* GRAPHMATCHSCANPFIXTAB */ { finevertbst = fineverttmp; #ifndef GRAPHMATCHSCANPFIXTAB #ifdef GRAPHMATCHSCANSEQ finequeunnd = finequisnnd; /* In sequential mode and without fixed vertices, vertex is always consumed */ #endif /* GRAPHMATCHSCANSEQ */ #endif /* GRAPHMATCHSCANPFIXTAB */ break; } } } } } else { /* Vertex has at least one neighbor */ do { /* Perform search for mate on neighbors */ Gnum finevertend; finevertend = fineedgetax[fineedgenum]; if ((finematetax[finevertend] < 0) /* If unmatched vertex */ #ifdef GRAPHMATCHSCANPFIXTAB && ((finepfixtax == NULL) || (finepfixtax[finevertend] == finepfixtax[finevertnum])) /* We can only mate if potential mate has same value */ && ((fineparotax == NULL) || (fineparotax[finevertend] == fineparotax[finevertnum])) /* And is in the same old part */ #endif /* GRAPHMATCHSCANPFIXTAB */ #ifdef GRAPHMATCHSCANEDLOTAB && (fineedlotax[fineedgenum] > fineedlobst) /* And is better candidate */ #endif /* GRAPHMATCHSCANEDLOTAB */ ) { finevertbst = finevertend; #ifdef GRAPHMATCHSCANEDLOTAB fineedlobst = fineedlotax[fineedgenum]; #else /* GRAPHMATCHSCANEDLOTAB */ break; /* Matching vertex found */ #endif /* GRAPHMATCHSCANEDLOTAB */ } } while (++ fineedgenum < fineedgennd); } #ifndef GRAPHMATCHSCANSEQ if (__sync_lock_test_and_set (&locktax[finevertnum], 1)) /* If could not acquire local vertex (always succeeds for isolated) */ continue; /* Do not remember it as some other vertex has already acquired both */ if (finevertbst != finevertnum) { /* If we mated with another vertex */ if (__sync_lock_test_and_set (&locktax[finevertbst], 1)) { /* If could not acquire mate vertex */ __sync_lock_release (&locktax[finevertnum]); /* Release lock on local vertex */ finequeutab[finequeunew ++] = finevertnum; /* Postpone processing to next pass */ continue; } finematetax[finevertbst] = finevertnum; /* Match other vertex with us */ } #else /* GRAPHMATCHSCANSEQ */ finematetax[finevertbst] = finevertnum; /* Match other vertex with us */ #endif /* GRAPHMATCHSCANSEQ */ finematetax[finevertnum] = finevertbst; /* Match ourselves with other vertex */ coarvertnbr ++; /* One more coarse vertex created */ } thrdptr->finequeunbr = finequeunew; /* Record queue index for next pass */ thrdptr->finequeudlt = 1; /* Next passes always on index queues only */ thrdptr->coarvertnbr = coarvertnbr; /* Record updated number of multinode vertices */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hall_order_hd.c000066400000000000000000001201221514310134000266450ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2018-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hall_order_hd.c **/ /** **/ /** AUTHOR : Patrick AMESTOY & al. **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a halo graph or mesh **/ /** structure using the block-oriented Halo **/ /** Approximate (Multiple) Minimum Degree **/ /** algorithm, with super-variable **/ /** accounting (HaloAMD v2.0). **/ /** **/ /** DATES : # Version 3.2 : from : 09 aug 1998 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 05 jan 1999 **/ /** # Version 4.0 : from : 14 jan 2003 **/ /** to : 29 aug 2007 **/ /** # Version 6.0 : from : 08 mar 2012 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 01 nov 2019 **/ /** to : 11 feb 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 06 aug 2024 **/ /** **/ /** NOTES : # This module contains pieces of code **/ /** that belong to other people; see **/ /** below. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "hall_order_hd.h" /* -- translated by f2c (version 19970219). */ /* -- hand-made adaptation (version 20191101). */ /** -------------------------------------------------------------------- **/ /** December 8th 2003 **/ /** Unique version for both graph of variables and graphs of elements **/ /** Let us refer to as **/ /** Gv a graph with only variables **/ /** Ge a graph with both variables and elements **/ /** **/ /** Notations used: **/ /** **/ /** Let V be the set of nodes **/ /** V = Ve + V0 + V1 **/ /** V0 = Set of variable nodes (not in halo) **/ /** V1 = Set of variable nodes (in halo) **/ /** Ve = Set of element nodes **/ /** **/ /** All 3 sets are disjoint, Ve and V1 can be empty **/ /** **/ /** Modifications w.r.t. previous version : **/ /** **/ /** New Input: **/ /** --------- **/ /** nbelts : integer holding size of Ve **/ /** =0 if Gv (graph of variables) **/ /** >0 if Ge **/ /** **/ /** Extension of the meaning of input entry len for nodes in Ve **/ /** --------- **/ /** len(i) = | Adj(i) | if i \in V0 U Ve **/ /** ( Note that in the case of a GE graph **/ /** if v\in V0 then len(v) = nb of elements adjacent to v ) **/ /** len(i) = - | Adj(i) | if i \in V1 **/ /** or -N -1 if | Adj(i) | = 0 and i \in V1 **/ /** **/ /** Modified the meaning of input entry elen **/ /** --------- **/ /** if e \in Ve then elen (e) = -N-1 **/ /** if v \in V0 then elen (v) = External degree of v **/ /** Gv : elen (v) = len(v) **/ /** Ge : elen (v) **/ /** should be computed in SCOTCH **/ /** if v \in V1 then elen (v) = 0 **/ /** **/ /** **/ /** Output is unchanged **/ /** --------- **/ /** **/ /** **/ /** End remarks done on December 8th 2003 **/ /** ---------------------------------------------------------------------**/ void hallOrderHdR2Halmd ( const Gnum norig, /* Uncompressed matrix order */ const Gnum n, /* Matrix order */ const Gnum nbelts, /* Number of elements */ const Gnum iwlen, /* Length of array iw */ Gnum * restrict pe, /* Array of indexes in iw of start of row i */ Gnum pfree, /* Useful size in iw */ Gnum * restrict len, /* Array of lengths of adjacency lists */ Gnum * restrict iw, /* Adjacency list array */ Gnum * nv, /* Array of element degrees [norestrict] */ Gnum * restrict elen, /* Array that holds the inverse permutation */ Gnum * restrict last, /* Array that holds the permutation */ Gnum * restrict ncmpaptr, /* Number of times array iw was compressed */ Gnum * restrict degree, /* Array that holds degree data */ Gnum * restrict head, /* Linked list structure [norig] */ Gnum * restrict next, /* Linked list structure [n] */ Gnum * restrict w) /* Flag array */ { Gnum deg, degme, dext, dmax, e, elenme, eln, hash, hmod, i, ilast, inext, j, jlast, jnext, k, knt1, knt2, knt3, lenj, ln, me = 0, mem, mindeg, nel, newmem, nleft, nvi, nvj, nvpiv, slenme, we, wflg, wnvi, x, nbflag, nreal, lastd, nelme; Gnum p, p1, p2, p3, pdst, pend, pj, pme, pme1, pme2, pn, psrc; Gnum ncmpa, totel; /** -------------------------------------------------------------------- **/ /** HALOAMD_V6: (January 1999, P. Amestoy) **/ /** *********** **/ /** 1/ ERROR 2 detection followed by stop statement suppressed. **/ /** 2/ Pb 1 identified in V5 was not correctly solved. **/ /** **/ /** HALOAMD_V5: (December 1998, P. Amestoy) **/ /** *********** **/ /** 1/ Solved problem with matrix psmigr 1, because upper bound degree **/ /** DEG>N was considered as a node of V1. **/ /** **/ /** HALOAMD_V4: (October 1998, P. Amestoy) **/ /** *********** **/ /** Only MA41 interface (ok for both scotch and MA41) is included in **/ /** this file. **/ /** **/ /** HALOAMD_V3: (August 1998, P. Amestoy) **/ /** ********** **/ /** Solved problem in version 2: variables of V1 with len(i)=0 were not **/ /** well processed. See modification of the input to characterize those **/ /** variables. **/ /** Problem detected by Jacko Koster while experimenting with C version **/ /** 2 of haloAMD in the context of multiple front method based on **/ /** MA27: "if for an interface variable i, row i in the matrix has only **/ /** a nonzero entry on the diagonal, we first remove this entry and **/ /** len(i) is set to zero on input to HALOAMD. However, this means that **/ /** HALOAMD will treat variable i as an interior variable (in V0) **/ /** instead as an interface variable (in V1). It is indeed a bit **/ /** strange to have such interface variables but we encountered some **/ /** in our debugging experiments with some random partitionings. **/ /** Solution: **/ /** IF on input i \in V1 and len(i)=0 (that is adjlist(i)={}) THEN **/ /** len(i) must be set on input to -N-1. **/ /** ENDIF **/ /** Therefore, all variables i / len(i) < 0 and only those are in V1. **/ /** Variables with len(i) = -N-1 are then processed differently at the **/ /** beginning of the code. **/ /** **/ /** HALOAMD_V2: (April 1998) **/ /** ********** **/ /** The end of the tree (including links to block of flagged indices **/ /** is built) . The list of flagged indices is considered as a dense **/ /** amalgamated node. **/ /** Tested on rosanna: ~amestoy/MA41_NEW/SUN_RISC_dbl/SOFT **/ /** **/ /** Comments on the OUTPUT: **/ /** ---------------------- **/ /** **/ /** Let V= V0 U V1 the nodes of the initial graph (|V|=n). **/ /** The assembly tree corresponds to the tree of the supernodes (or **/ /** supervariables). Each node of the assembly tree is then composed of **/ /** one principal variable and a list of secondary variables. The list **/ /** of variable of a node (principal + secondary variables) then **/ /** describes the structure of the diagonal bloc of the supernode. **/ /** The elimination tree denotes the tree of all the variables(=nodes) **/ /** and is therefore of order n. The arrays NV(N) and PE(N) give a **/ /** description of the assembly tree. **/ /** **/ /** 1/ Description of array nv(N) (on OUPUT) **/ /** nv(i)=0 i is a secondary variable. **/ /** N+1> nv(i) >0 i is a principal variable, nv(i) holds the number **/ /** of elements in column i of L (true degree of i) **/ /** nv(i) = N+1 then i is a flagged variable (belonging to V1) **/ /** **/ /** 2/ Description of array PE(N) (on OUPUT) **/ /** pe(i) = -(father of variable/node i) in the elimination tree. **/ /** If nv (i) .gt. 0, then i represents a node in the assembly tree, **/ /** and the parent of i is -pe (i), or zero if i is a root. **/ /** If nv (i) = 0, then (i,-pe (i)) represents an edge in a **/ /** subtree, the root of which is a node in the assembly tree. **/ /** **/ /** 3/ Example: **/ /** Let If be a root node father of Is in the assembly tree. **/ /** If is the principal variable of the node If and let If1, If2, If3 **/ /** be the secondary variables of node If. Is is the principal **/ /** variable of the node Is and let Is1, Is2 be the secondary **/ /** variables of node Is. **/ /** Then: **/ /** NV(If1)=NV(If2)=NV(If3) = 0 (secondary variables) **/ /** NV(Is1)=NV(Is2) = 0 (secondary variables) **/ /** NV(If) > 0 (principal variable) **/ /** NV(Is) > 0 (principal variable) **/ /** PE(If) = 0 (root node) **/ /** PE(Is) = -If (If is the father of Is in the assembly tree) **/ /** PE(If1)=PE(If2)=PE(If3)= -If (If is the principal variable) **/ /** PE(Is1)=PE(Is2)= -Is (Is is the principal variable) **/ /** **/ /** HALOAMD_V1: (September 1997) **/ /** ********** **/ /** Initial version designed to experiment the numerical (fill-in) **/ /** impact of taking into account the halo. This code should be able to **/ /** experiment no-halo, partial halo, complete halo. **/ /** -------------------------------------------------------------------- **/ /** HALOAMD is designed to process a graph composed of two types **/ /** of nodes, V0 and V1, extracted from a larger gragh. **/ /** V0^V1 = {}, **/ /** We used Min. degree heuristic to order only **/ /** nodes in V0, but the adjacency to nodes **/ /** in V1 is taken into account during ordering. **/ /** Nodes in V1 are odered at last. **/ /** Adjacency between nodes of V1 need not be provided, **/ /** however |len(i)| must always corresponds to the number of **/ /** edges effectively provided in the adjacency list of i. **/ /** On input : **/ /** ******** **/ /** Nodes INODE in V1 are flagged with len(INODE) = -degree **/ /** Update version HALO V3 (August 1998): **/ /** if len(i)=0 and i \in V1 then len(i) must be set **/ /** on input to -N-1. **/ /** ERROR return : **/ /** ************ **/ /** Negative value in ncmpa indicates an error detected **/ /** by HALOAMD. **/ /** **/ /** The graph provided MUST follow the rule: **/ /** if (i,j) is an edge in the gragh then **/ /** j must be in the adjacency list of i AND **/ /** i must be in the adjacency list of j. **/ /** **/ /** REMARKS : **/ /** ------- **/ /** 1/ Providing edges between nodes of V1 should not **/ /** affect the final ordering, only the amount of edges **/ /** of the halo should effectively affect the solution. **/ /** This code should work in the following cases: **/ /** 1/ halo not provided **/ /** 2/ halo partially provided **/ /** 3/ complete halo **/ /** 4/ complete halo+interconnection between nodes of V1. **/ /** **/ /** 1/ should run and provide identical results (w.r.t to **/ /** current implementation of AMD in SCOTCH). **/ /** 3/ and 4/ should provide identical results. **/ /** **/ /** 2/ All modifications of the MC47 initial code are indicated **/ /** with begin HALO .. end HALO **/ /** **/ /** Ordering of nodes in V0 is based on Approximate Minimum Degree **/ /** ordering algorithm, with aggressive absorption: **/ /** Given a representation of the nonzero pattern of a symmetric matrix, **/ /** A, (excluding the diagonal) perform an approximate minimum **/ /** (UMFPACK/MA38-style) degree ordering to compute a pivot order **/ /** such that fill-in in the Cholesky **/ /** factors A = LL^T is kept low. At each step, the pivot **/ /** selected is the one with the minimum UMFPACK/MA38-style **/ /** upper-bound on the external degree. Aggresive absorption is **/ /** used to tighten the bound on the degree. This can result an **/ /** significant improvement in the quality of the ordering for **/ /** some matrices. **/ /** The approximate degree algorithm implemented here is the **/ /** symmetric analogue of the degree update algorithm in MA38, by **/ /** Davis and Duff, also in the Harwell Subroutine Library. **/ /** **/ /** **** CAUTION: ARGUMENTS ARE NOT CHECKED FOR ERRORS ON INPUT. ***** **/ /** ** If you want error checking, a more versatile input format, and ** **/ /** ** a simpler user interface, then use MC47A/AD in the Harwell ** **/ /** ** Subroutine Library, which checks for errors, transforms the ** **/ /** ** input, and calls MC47B/BD. ** **/ /** ******************************************************************** **/ /** References: (UF Tech Reports are available via anonymous ftp **/ /** to ftp.cis.ufl.edu:cis/tech-reports). **/ /** [1] Timothy A. Davis and Iain Duff, "An unsymmetric-pattern **/ /** multifrontal method for sparse LU factorization", **/ /** SIAM J. Matrix Analysis and Applications, to appear. **/ /** also Univ. of Florida Technical Report TR-94-038. **/ /** Discuss UMFPACK / MA38. **/ /** [2] Patrick Amestoy, Timothy A. Davis, and Iain S. Duff, **/ /** "An approximate minimum degree ordering algorithm," **/ /** SIAM J. Matrix Analysis and Applications (to appear), **/ /** also Univ. of Florida Technical Report TR-94-039. **/ /** Discusses this routine. **/ /** [3] Alan George and Joseph Liu, "The evolution of the **/ /** minimum degree ordering algorithm," SIAM Review, vol. **/ /** 31, no. 1, pp. 1-19, March 1989. We list below the **/ /** features mentioned in that paper that this code **/ /** includes: **/ /** mass elimination: **/ /** Yes. MA27 relied on supervariable detection for mass **/ /** elimination. **/ /** indistinguishable nodes: **/ /** Yes (we call these "supervariables"). This was also **/ /** in the MA27 code - although we modified the method of **/ /** detecting them (the previous hash was the true degree, **/ /** which we no longer keep track of). A supervariable is **/ /** a set of rows with identical nonzero pattern. All **/ /** variables in a supervariable are eliminated together. **/ /** Each supervariable has as its numerical name that of **/ /** one of its variables (its principal variable). **/ /** quotient graph representation: **/ /** Yes. We use the term "element" for the cliques formed **/ /** during elimination. This was also in the MA27 code. **/ /** The algorithm can operate in place, but it will work **/ /** more efficiently if given some "elbow room." **/ /** element absorption: **/ /** Yes. This was also in the MA27 code. **/ /** external degree: **/ /** Yes. The MA27 code was based on the true degree. **/ /** incomplete degree update and multiple elimination: **/ /** No. This was not in MA27, either. Our method of **/ /** degree update within MC47B/BD is element-based, not **/ /** variable-based. It is thus not well-suited for use **/ /** with incomplete degree update or multiple elimination. **/ /** -------------------------------------------------------------------- **/ /** Authors, and Copyright (C) 1995 by: **/ /** Timothy A. Davis, Patrick Amestoy, Iain S. Duff, & **/ /** John K. Reid. **/ /** Modified (V1) by P.R. Amestoy ENSEEIHT (1997) **/ /** Modified (V2) by P.R. Amestoy ENSEEIHT (1998) **/ /** Modified (V3) by P.R. Amestoy ENSEEIHT (1998) **/ /** Modified (V4) by P.R. Amestoy ENSEEIHT (1998) **/ /** Modified (V5) by P.R. Amestoy ENSEEIHT (1998) **/ /** Modified (V6) by P.R. Amestoy ENSEEIHT (1999) **/ /** **/ /** Dates: September, 1995 **/ /** September, 1997 (halo AMD V1) **/ /** April, 1998 (halo AMD V2) **/ /** August, 1998 (halo AMD V3) **/ -- w; /* Parameter adjustments */ -- next; /* -- head; As starts from zero */ -- degree; -- last; -- elen; -- nv; -- len; -- pe; -- iw; wflg = 2; mindeg = 0; ncmpa = 0; nel = 0; totel = 0; hmod = MAX (1, (norig - 1)); dmax = 0; mem = pfree - 1; nbflag = 0; lastd = 0; memSet (head, 0, (norig + 1) * sizeof (Gnum)); /* Head array indexed by degree, hence norig */ memSet (last + 1, 0, n * sizeof (Gnum)); /* Last arrat indexed by variable, hence n */ if (nbelts == 0) { /* Patch 8/12/03 */ for (i = 1; i <= n; i ++) { w[i] = 1; if (len[i] < 0) { degree[i] = norig + 1; nbflag ++; if (len[i] == (-1 - norig)) { /* Patch 09/08/98 */ len[i] = 0; pe[i] = 0; /* Patch 12/12/03 : Because of compress, we force skipping those entries (which are anyway empty) */ } else len[i] = - len[i]; } else { totel += nv[i]; if (n == norig) /* If graph not compressed */ degree[i] = len[i]; else { degree[i] = 0; for (p = pe[i]; p < pe[i] + len[i]; p ++) degree[i] += nv[iw[p]]; } } } } else { /* Patch 08/12/03 : Duplicate part of previous loop to avoid sytematic testing for elements */ for (i = 1; i <= n; i ++) { w[i] = 1; if (len[i] < 0) { /* i \in V1 */ degree[i] = norig + 1; nbflag ++; if (len[i] == (-1 - norig)) { /* Patch 09/08/98 */ len[i] = 0; pe[i] = 0; /* Patch 12/12/03 : because of compress, we force skipping those entries (which are anyway empty) */ /* elen[i] = 0; Patch 16/12/03 ; already done before calling */ } else { len[i] = - len[i]; elen[i] = len[i]; /* Patch 16/12/03 : only elements are adjacent to a variable */ } } else { /* i \in Ve or V0 */ if (elen[i] < 0) { /* If i \in Ve */ nel += nv[i]; elen[i] = - nel; if (n == norig) degree[i] = len[i]; else { degree[i] = 0; for (p = pe[i]; p < pe[i] + len[i]; p ++) degree[i] += nv[iw[p]]; } if (degree[i] > dmax) /* Patch 11/03/04 */ dmax = degree[i]; } else { totel += nv[i]; degree[i] = elen[i]; elen[i] = len[i]; /* Patch 16/12/03 : only elements are adjacent to a variable */ } } } } #ifdef SCOTCH_DEBUG_ORDER2 if (nbelts != nel) { /* Temporary Patch 8/12/03 */ errorPrint ("hallOrderHdR2Halmd: internal error (1)"); *ncmpaptr = - norig; return; } #endif /* SCOTCH_DEBUG_ORDER2 */ nreal = n - nbflag; for (i = 1; i <= n; i ++) { if (elen[i] < 0) /* Patch 16/12/03 : Skip elements */ continue; deg = degree[i]; if (deg == (norig + 1)) { deg = norig; if (lastd == 0) { lastd = i; head[deg] = i; next[i] = 0; last[i] = 0; } else { next[lastd] = i; last[i] = lastd; lastd = i; next[i] = 0; } } else if (deg > 0) { inext = head[deg]; if (inext != 0) last[inext] = i; next[i] = inext; head[deg] = i; } else { nel ++; elen[i] = - nel; pe[i] = 0; w[i] = 0; } } /* L20: */ nleft = totel - nel; /* Patch v5 12/12/98 */ while (nel < totel) { /* WHILE (selecting pivots) DO */ for (deg = mindeg; deg <= norig; deg ++) { /* Patch 17/11/97 */ me = head[deg]; if (me > 0) break; /* GO to 50 */ } /* L40: */ mindeg = deg; if (me <= 0) { /* Error 1 */ errorPrint ("hallOrderHdR2Halmd: internal error (2)"); *ncmpaptr = - (norig + 1); return; } inext = next[me]; if (inext != 0) last[inext] = 0; head[deg] = inext; elenme = elen[me]; elen[me] = - (nel + 1); nvpiv = nv[me]; nel += nvpiv; nv[me] = - nvpiv; degme = 0; if (elenme == 0) { pme1 = pe[me]; pme2 = pme1 - 1; for (p = pme1; p <= pme1 + len[me] - 1; p ++) { i = iw[p]; nvi = nv[i]; if (nvi > 0) { degme += nvi; nv[i] = - nvi; pme2 ++; iw[pme2] = i; if (degree[i] <= norig) { ilast = last[i]; inext = next[i]; if (inext != 0) last[inext] = ilast; if (ilast != 0) next[ilast] = inext; else head[degree[i]] = inext; } } } /* L60: */ newmem = 0; } else { p = pe[me]; pme1 = pfree; slenme = len[me] - elenme; for (knt1 = 1; knt1 <= elenme + 1; knt1 ++) { if (knt1 > elenme) { e = me; pj = p; ln = slenme; } else { e = iw[p ++]; pj = pe[e]; ln = len[e]; } for (knt2 = 1; knt2 <= ln; knt2 ++) { i = iw[pj ++]; nvi = nv[i]; if (nvi > 0) { if (pfree > iwlen) { pe[me] = p; len[me] -= knt1; if (len[me] == 0) pe[me] = 0; pe[e] = pj; len[e] = ln - knt2; if (len[e] == 0) pe[e] = 0; ncmpa ++; for (j = 1; j <= n; j ++) { pn = pe[j]; if (pn > 0) { pe[j] = iw[pn]; iw[pn] = - j; } } /* L70: */ pdst = 1; psrc = 1; pend = pme1 - 1; while (psrc <= pend) { /* L80: */ j = - iw[psrc ++]; if (j > 0) { iw[pdst] = pe[j]; pe[j] = pdst ++; lenj = len[j]; for (knt3 = 0; knt3 <= lenj - 2; knt3 ++) iw[pdst + knt3] = iw[psrc + knt3]; pdst = pdst + (lenj - 1); psrc = psrc + (lenj - 1); } } p1 = pdst; for (psrc = pme1; psrc <= pfree - 1; psrc ++, pdst ++) /* L100: */ iw[pdst] = iw[psrc]; pme1 = p1; pfree = pdst; pj = pe[e]; p = pe[me]; } degme += nvi; nv[i] = - nvi; iw[pfree] = i; pfree ++; if (degree[i] <= norig) { ilast = last[i]; inext = next[i]; if (inext != 0) last[inext] = ilast; if (ilast != 0) next[ilast] = inext; else head[degree[i]] = inext; } } } /* L110: */ if (e != me) { pe[e] = -me; w[e] = 0; } } /* L120: */ pme2 = pfree - 1; newmem = pfree - pme1; mem += newmem; } degree[me] = degme; pe[me] = pme1; len[me] = pme2 - pme1 + 1; if (wflg + norig <= wflg) { for (x = 1; x <= n; x ++) { if (w[x] != 0) w[x] = 1; } /* L130: */ wflg = 2; } for (pme = pme1; pme <= pme2; pme ++) { i = iw[pme]; eln = elen[i]; if (eln > 0) { nvi = - nv[i]; wnvi = wflg - nvi; for (p = pe[i]; p < pe[i] + eln; p ++) { e = iw[p]; we = w[e]; if (we >= wflg) we -= nvi; else if (we != 0) we = degree[e] + wnvi; w[e] = we; } /* L140: */ } } /* L150: */ for (pme = pme1; pme <= pme2; pme ++) { i = iw[pme]; p1 = pe[i]; p2 = p1 + elen[i] - 1; pn = p1; hash = 0; deg = 0; for (p = p1; p <= p2; p ++) { e = iw[p]; dext = w[e] - wflg; if (dext > 0) { deg += dext; iw[pn ++] = e; hash += e; } else if (dext == 0) { pe[e] = -me; w[e] = 0; } } /* L160: */ elen[i] = pn - p1 + 1; p3 = pn; for (p = p2 + 1; p < p1 + len[i]; p ++) { j = iw[p]; nvj = nv[j]; if (nvj > 0) { deg += nvj; iw[pn ++] = j; hash += j; } } /* L170: */ if (degree[i] == (norig + 1)) deg = (norig + 1); if (deg == 0) { pe[i] = - me; nvi = - nv[i]; degme -= nvi; nvpiv += nvi; nel += nvi; nv[i] = 0; elen[i] = 0; } else { if (degree[i] != (norig + 1)) { /* Patch v6 05/01/99 */ deg = MIN (nleft, deg); /* Patch v5 12/12/98 */ degree[i] = MIN (degree[i], deg); } iw[pn] = iw[p3]; iw[p3] = iw[p1]; iw[p1] = me; len[i] = pn - p1 + 1; if (deg <= norig) { hash = (hash % hmod) + 1; j = head[hash]; if (j <= 0) { next[i] = - j; head[hash] = - i; } else { next[i] = last[j]; last[j] = i; } last[i] = hash; } } } /* L180: */ degree[me] = degme; dmax = MAX (dmax, degme); wflg += dmax; if (wflg + norig <= wflg) { for (x = 1; x <= n; x ++) { if (w[x] != 0) w[x] = 1; } wflg = 2; } for (pme = pme1; pme <= pme2; pme ++) { i = iw[pme]; if ((nv[i] < 0) && (degree[i] <= norig)) { hash = last[i]; j = head[hash]; if (j == 0) continue; if (j < 0) { i = - j; head[hash] = 0; } else { i = last[j]; last[j] = 0; } if (i == 0) continue; L200: /* WHILE LOOP: */ if (next[i] != 0) { ln = len[i]; eln = elen[i]; for (p = pe[i] + 1; p < pe[i] + ln; p ++) w[iw[p]] = wflg; jlast = i; j = next[i]; L220: /* WHILE LOOP: */ if (j != 0) { if (len[j] != ln) goto L240; if (elen[j] != eln) goto L240; for (p = pe[j] + 1; p < pe[j] + ln; p ++) { if (w[iw[p]] != wflg) goto L240; } /* L230: */ pe[j] = -i; nv[i] += nv[j]; nv[j] = 0; elen[j] = 0; j = next[j]; next[jlast] = j; goto L220; L240: jlast = j; j = next[j]; goto L220; } wflg ++; i = next[i]; if (i != 0) goto L200; } } } p = pme1; nleft = totel - nel; for (pme = pme1; pme <= pme2; pme ++) { i = iw[pme]; nvi = - nv[i]; if (nvi > 0) { nv[i] = nvi; if (degree[i] <= norig) { deg = MIN (degree[i] + degme, nleft) - nvi; inext = head[deg]; if (inext != 0) last[inext] = i; next[i] = inext; last[i] = 0; head[deg] = i; if (deg < mindeg) mindeg = deg; degree[i] = deg; } iw[p ++] = i; } } /* L260: */ nv[me] = nvpiv + degme; len[me] = p - pme1; if (len[me] == 0) { pe[me] = 0; w[me] = 0; } if (newmem != 0) { pfree = p; mem = mem - newmem + len[me]; } } /* END WHILE (selecting pivots) */ if (nel < norig) { /* Patch 12/12/98 (old: nreal < n) */ for (deg = mindeg; deg <= norig; deg ++) { me = head[deg]; if (me > 0) break; } mindeg = deg; nelme = - (nel + 1); for (x = 1; x <= n; x ++) { if ((pe[x] > 0) && (elen[x] < 0)) pe[x] = - me; else if (degree[x] == (norig + 1)) { nel += nv[x]; pe[x] = - me; elen[x] = 0; nv[x] = 0; /* Patch 12/12/98 (old: n + 1) */ } } elen[me] = nelme; nv[me] = norig - nreal; /* Patch 12/12/98 (old: n + 1) */ pe[me] = 0; #ifdef SCOTCH_DEBUG_ORDER2 if (nel != norig) { /* Error 2 */ errorPrint ("hallOrderHdR2Halmd: internal error (3)"); *ncmpaptr = - (norig + 2); return; } #endif /* SCOTCH_DEBUG_ORDER2 */ } for (i = 1; i <= n; i ++) { if (elen[i] == 0) { j = - pe[i]; while (elen[j] >= 0) /* L270: */ j = - pe[j]; e = j; k = - elen[e]; j = i; while (elen[j] >= 0) { /* L280: */ jnext = - pe[j]; pe[j] = - e; if (elen[j] == 0) elen[j] = k ++; j = jnext; } elen[e] = - k; } } /* L290: */ *ncmpaptr = ncmpa; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hall_order_hd.h000066400000000000000000000063341514310134000266620ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2018,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hall_order_hd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the block-oriented Halo **/ /** Approximate (Multiple) Minimum Degree **/ /** ordering routine. **/ /** **/ /** DATES : # Version 3.4 : from : 15 may 2001 **/ /** to : 15 may 2001 **/ /** # Version 4.0 : from : 10 jan 2003 **/ /** to : 10 dec 2003 **/ /** # Version 6.0 : from : 08 mar 2012 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 01 nov 2019 **/ /** to : 01 nov 2019 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ void hallOrderHdR2Halmd (const Gnum, const Gnum, const Gnum, const Gnum, Gnum * const, Gnum, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hall_order_hf.c000066400000000000000000002243611514310134000266610ustar00rootroot00000000000000/* This file is part of the Scotch distribution. ** It does not include the standard Scotch header because it is an ** adaptation of the MUMPS_HAMF4 routine which was released under ** the BSD3 license. ** Consequently, this file is distributed according to the terms of ** the BSD3 licence, see copyright notice below. */ /* Copyright 2004,2007,2010,2012,2018-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS & others */ /************************************************************/ /** **/ /** NAME : hall_order_hf.c **/ /** **/ /** AUTHOR : Patrick AMESTOY & al. **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a halo graph or mesh **/ /** structure using the block-oriented Halo **/ /** Approximate (Multiple) Minimum Fill **/ /** algorithm, with super-variable **/ /** accounting HAMF4 (v20190828). **/ /** **/ /** DATES : # Version 3.4 : from : 15 may 2001 **/ /** to : 23 nov 2001 **/ /** # Version 4.0 : from : 10 jan 2003 **/ /** to : 29 aug 2007 **/ /** # Version 5.1 : from : 08 dec 2010 **/ /** to : 08 dec 2010 **/ /** # Version 6.0 : from : 08 mar 2012 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 29 oct 2019 **/ /** to : 10 feb 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 06 aug 2024 **/ /** **/ /** NOTES : # This module contains pieces of code **/ /** that belong to other people; see **/ /** below. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #if 1 /* Take simplest version; do not care for exact halfway case specification */ #define anint(x) floor ((x) + 0.5) #else #define anint(x) (((x) > 0) ? floor ((x) + 0.5) : ceil ((x) - 0.5)) #endif #include "module.h" #include "common.h" #include "graph.h" #include "hall_order_hf.h" /* -- translated by f2c (version 19970219). */ /* -- hand-made adaptation (as of HAMF 20191101). */ /* -- hand-made adaptation (as of HAMF 20200111). */ /** -------------------------------------------------------------------- **/ /** Version generated on October 29th 2019 **/ /** **/ /** This file includes various modifications of an original **/ /** LGPL/ CeCILL-C compatible **/ /** code implementing the AMD (Approximate Minimum Degree) ordering **/ /** Patrick Amestoy, Timothy A. Davis, and Iain S. Duff, **/ /** "An approximate minimum degree ordering algorithm," **/ /** SIAM J. Matrix Analysis vol 17, pages=886--905 (1996) **/ /** MUMPS_ANA_H is based on the original AMD code: **/ /** **/ /** AMD, Copyright (c), 1996-2016, Timothy A. Davis, **/ /** Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. **/ /** Used in MUMPS under the BSD 3-clause license. **/ /** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND **/ /** CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, **/ /** INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF **/ /** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE **/ /** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE **/ /** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR **/ /** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, **/ /** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, **/ /** OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **/ /** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR **/ /** TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT **/ /** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY **/ /** OF SUCH DAMAGE. **/ /** **/ /** MUMPS_HAMF4 is a major modification of AMD **/ /** since the metric used to select pivots in not anymore the **/ /** degree but an approximation of the fill-in. **/ /** In this approximation **/ /** all cliques of elements adjacent to the variable are deducted. **/ /** MUMPS_HAMF4 also enables to take into account a halo in the graph. **/ /** The graph is composed is partitioned in two types of nodes **/ /** the so called internal nodes and the so called halo nodes. **/ /** Halo nodes cannot be selected the both the initial degrees **/ /** and updated degrees of internal node should be taken **/ /** into account. **/ /** Written by Patrick Amestoy between 1999 and 2019. **/ /** and used by F. Pellegrini in SCOTCH since 2000. **/ /** **/ /** Unique version to order both graph of variables and **/ /** graphs with both elements and variables. **/ /** **/ /** Notations used: **/ /** Let us refer to as **/ /** Gv a graph with only variables **/ /** Ge a graph with both variables and elements **/ /** **/ /** Let V be the set of nodes in the graph **/ /** V = Ve + V0 + V1 **/ /** V0 = Set of variable nodes (not in halo) **/ /** V1 = Set of variable nodes (in halo) **/ /** Ve = Set of element nodes |Ve|=nbelts **/ /** **/ /** All 3 sets are disjoint, Ve and V1 can be empty **/ /** If nbelts>0 then a bipartite graph bewteen **/ /** (V0 U V1) and Ve is provided on entry. **/ /** **/ /** A graph of elements and variables is a bipartite **/ /** graph between the set of variables (that may **/ /** include halo variables) and the set of elements. **/ /** Thus variables are only adjacent to elements and **/ /** in the element list we only have variables. **/ /** Elements are "considered" as already eliminated and **/ /** are provided here only to describe the adjacency between **/ /** variables. Only variables in V0 need to be eliminated. **/ /** **/ /** Comments relative to 64/32 bits integer representation: **/ /** This is [based on] a restrictive integer 64 bit variant: **/ /** It is assumed that IW array size can exceed 32-bit integer and **/ /** thus IWLEN is INTEGER(8) and PE is an INTEGER(8) array. **/ /** Graph size n must be smaller than 2x10^9 but number of **/ /** edges is a 64-bit integer. **/ /** **/ /** Parameters **/ /** Input only, not modified on output : **/ /** N : number of nodes in the complete graph including halo **/ /** N = size of V0 U V1 **/ /** NBBUCK : should be greater than norig **/ /** advised value is 2*norig **/ /** IWLEN : Should be uint64_t # Patch FP: used Gnum as well # **/ /** Input, undefined on output: **/ /** LEN(1..N) **/ /** IW(1..IWLEN) **/ /** NV(N) : also meaningful as input to encode compressed graphs **/ /** Output only : **/ /** NCMPA **/ /** not ELEN(N) # Patch FP: always initialized before call # **/ /** LAST(N) **/ /** Input/output **/ /** ELEN(N) # Patch PA+FP # **/ /** PFREE **/ /** PE(N) : Should be uint64_t # Patch FP: used Gnum as well # **/ /** Internal workspace only **/ /** Min fill approximation one extra array of size NBBUCK+2 **/ /** is also needed **/ /** NEXT(N) **/ /** DEGREE(N) **/ /** W(N) **/ /** HEAD(0:NBBUCK+1) **/ /** WF(N) **/ /** **/ /** Comments on the OUTPUT : **/ /** ------------------------ **/ /** Let V= V0 U V1 the nodes of the initial graph (|V|=n). **/ /** The assembly tree corresponds to the tree **/ /** of the supernodes (or supervariables). Each node of the **/ /** assembly tree is then composed of one principal variable **/ /** and a list of secondary variables. The list of **/ /** variable of a node (principal + secondary variables) then **/ /** describes the structure of the diagonal bloc of the supernode. **/ /** The elimination tree denotes the tree of all the variables(=node) **/ /** and is therefore of order n. **/ /** **/ /** The arrays NV(N) and PE(N) give a description of the assembly tree. **/ /** **/ /** 1/ Description of array nv(N) (on OUTPUT) **/ /** nv(i)=0 i is a secondary variable **/ /** nv(i) >0 i is a principal variable, nv(i) holds the number of **/ /** elements in column i of L (true degree of i) **/ /** nv(i) can be greater than N since degree can be as large as NORIG.**/ /** **/ /** 2/ Description of array PE(N) (on OUTPUT) **/ /** Note that on **/ /** pe(i) = -(father of variable/node i) in the elimination tree: **/ /** If nv (i) .gt. 0, then i represents a node in the assembly **/ /** tree, and the parent of i is -pe (i), or zero if i is a root. **/ /** If nv (i) = 0, then (i,-pe (i)) represents an edge in a **/ /** subtree, the root of which is a node in the assembly tree. **/ /** **/ /** 3/ Example: **/ /** Let If be a root node father of Is in the assembly tree. **/ /** If is the principal variable of the node If and let If1, If2, **/ /** If3 be the secondary variables of node If. **/ /** Is is the principal variable of the node Is and let Is1, Is2 be **/ /** the secondary variables of node Is. **/ /** **/ /** THEN: **/ /** NV(If1) = NV(If2) = NV(If3) = 0 (secondary variables) **/ /** NV(Is1) = NV(Is2) = 0 (secondary variables) **/ /** NV(If) > 0 (principal variable) **/ /** NV(Is) > 0 (principal variable) **/ /** PE(If) = 0 (root node) **/ /** PE(Is) = -If (If is the father of Is in the assembly tree) **/ /** PE(If1)=PE(If2)=PE(If3)= -If ( If is the principal variable) **/ /** PE(Is1)=PE(Is2)= -Is ( Is is the principal variable) **/ /** **/ /** **/ /** Comments on the OUTPUT: **/ /** ---------------------- **/ /** Let V= V0 U V1 the nodes of the initial graph (|V|=n). **/ /** The assembly tree corresponds to the tree **/ /** of the supernodes (or supervariables). Each node of the **/ /** assembly tree is then composed of one principal variable **/ /** and a list of secondary variables. The list of **/ /** variable of a node (principal + secondary variables) then **/ /** describes the structure of the diagonal block of the **/ /** supernode. **/ /** The elimination tree denotes the tree of all the variables(=node) **/ /** and is therefore of order n. **/ /** **/ /** The arrays NV(N) and PE(N) give a description of the **/ /** assembly tree. **/ /** **/ /** 1/ Description of array nv(N) (on OUTPUT) **/ /** nv(i)=0 i is a secondary variable **/ /** nv(i) >0 i is a principal variable, nv(i) holds the number of **/ /** elements in column i of L (true degree of i) **/ /** with compressed graph (nv(1).ne.-1 on input), nv(i) can be **/ /** greater than N since degree can be as large as NORIG. **/ /** **/ /** 2/ Description of array PE(N) (on OUTPUT) **/ /** Note that on **/ /** pe(i) = -(father of variable/node i) in the elimination tree: **/ /** If nv (i) .gt. 0, then i represents a node in the assembly **/ /** tree, and the parent of i is -pe (i), or zero if i is a root. **/ /** If nv (i) = 0, then (i,-pe (i)) represents an edge in a **/ /** subtree, the root of which is a node in the assembly tree. **/ /** **/ /** 3/ Example: **/ /** Let If be a root node father of Is in the assembly tree. **/ /** If is the principal **/ /** variable of the node If and let If1, If2, If3 be the secondary **/ /** variables of node If. **/ /** Is is the principal **/ /** variable of the node Is and let Is1, Is2 be the secondary **/ /** variables of node Is. **/ /** **/ /** THEN: **/ /** NV(If1)=NV(If2)=NV(If3) = 0 (secondary variables) **/ /** NV(Is1)=NV(Is2) = 0 (secondary variables) **/ /** NV(If) > 0 ( principal variable) **/ /** NV(Is) > 0 ( principal variable) **/ /** PE(If) = 0 (root node) **/ /** PE(Is) = -If (If is the father of Is in the assembly tree) **/ /** PE(If1)=PE(If2)=PE(If3)= -If ( If is the principal variable) **/ /** PE(Is1)=PE(Is2)= -Is ( Is is the principal variable) **/ /** **/ /** **/ /** **/ /** HALOAMD_V1: (September 1997) **/ /** ********** **/ /** Initial version designed to experiment the numerical (fill-in) **/ /** impact of taking into account the halo. This code should be able **/ /** to experiment no-halo, partial halo, complete halo. **/ /** DATE: September 17th 1997 **/ /** **/ /** HALOAMD is designed to process a gragh composed of two types **/ /** of nodes, V0 and V1, extracted from a larger gragh. **/ /** V0^V1 = {}, **/ /** **/ /** We used Min. degree heuristic to order only **/ /** nodes in V0, but the adjacency to nodes **/ /** in V1 is taken into account during ordering. **/ /** Nodes in V1 are odered at last. **/ /** Adjacency between nodes of V1 need not be provided, **/ /** however |len(i)| must always corresponds to the number **/ /** of edges effectively provided in the adjacency list of i. **/ /** On input : **/ /** ******** **/ /** Nodes INODE in V1 are flagged with len(INODE) = -degree **/ /** if len(i) =0 and i \in V1 then **/ /** len(i) must be set on input to -NORIG-1 **/ /** ERROR return (negative values in ncmpa) **/ /** ************ **/ /** negative value in ncmpa indicates an error detected **/ /** by HALOAMD. **/ /** **/ /** The graph provided MUST follow the rule: **/ /** if (i,j) is an edge in the gragh then **/ /** j must be in the adjacency list of i AND **/ /** i must be in the adjacency list of j. **/ /** REMARKS **/ /** ------- **/ /** **/ /** 1/ Providing edges between nodes of V1 should not **/ /** affect the final ordering, only the amount of edges **/ /** of the halo should effectively affect the solution. **/ /** This code should work in the following cases: **/ /** 1/ halo not provided **/ /** 2/ halo partially provided **/ /** 3/ complete halo **/ /** 4/ complete halo+interconnection between nodes of V1. **/ /** **/ /** 1/ should run and provide identical results (w.r.t to **/ /** current implementation of AMD in SCOTCH). **/ /** 3/ and 4/ should provide identical results. **/ /** **/ /** 2/ All modifications of the AMD initial code are indicated **/ /** with begin HALO .. end HALO **/ /** **/ /** **/ /** Given a representation of the nonzero pattern of a symmetric **/ /** matrix A, (excluding the diagonal) perform an approximate **/ /** minimum fill-in heuristic. Aggresive absorption is **/ /** used to tighten the bound on the degree. This can result an **/ /** significant improvement in the quality of the ordering for **/ /** some matrices. **/ /**--------------------------------------------------------------------- **/ /** INPUT ARGUMENTS (unaltered): **/ /**--------------------------------------------------------------------- **/ /** n: number of nodes in the complete graph including halo **/ /** n = size of V0 U V1 U Ve **/ /** Restriction: n .ge. 1 **/ /** **/ /** norig if compressed graph (nv(1).ne.-1) then **/ /** norig is the sum(nv(i)) for i \in [1:n] **/ /** and could be larger than n **/ /** else norig = n **/ /** **/ /** nbelts number of elements (size of Ve) **/ /** =0 if Gv (graph of variables) **/ /** >0 if Ge **/ /** nbelts > 0 extends/changes the meaning of **/ /** len/elen on entry (see below) **/ /** **/ /** **/ /** iwlen: The length of iw (1..iwlen). On input, the matrix is **/ /** stored in iw (1..pfree-1). However, iw (1..iwlen) should be **/ /** slightly larger than what is required to hold the matrix, at **/ /** least iwlen .ge. pfree + n is recommended. Otherwise, **/ /** excessive compressions will take place. **/ /** *** We do not recommend running this algorithm with *** **/ /** *** iwlen .lt. pfree + n. *** **/ /** *** Better performance will be obtained if *** **/ /** *** iwlen .ge. pfree + n *** **/ /** *** or better yet *** **/ /** *** iwlen .gt. 1.2 * pfree *** **/ /** *** (where pfree is its value on input). *** **/ /** The algorithm will not run at all if iwlen .lt. pfree-1. **/ /** **/ /** Restriction: iwlen .ge. pfree-1 **/ /**--------------------------------------------------------------------- **/ /** INPUT/OUPUT ARGUMENTS: **/ /**--------------------------------------------------------------------- **/ /** pe: On input, pe (i) is the index in iw of the start of row i, or **/ /** zero if row i has no off-diagonal non-zeros. **/ /** **/ /** During execution, it is used for both supervariables and **/ /** elements: **/ /** **/ /** * Principal supervariable i: index into iw of the **/ /** description of supervariable i. A supervariable **/ /** represents one or more rows of the matrix **/ /** with identical nonzero pattern. **/ /** * Non-principal supervariable i: if i has been absorbed **/ /** into another supervariable j, then pe (i) = -j. **/ /** That is, j has the same pattern as i. **/ /** Note that j might later be absorbed into another **/ /** supervariable j2, in which case pe (i) is still -j, **/ /** and pe (j) = -j2. **/ /** * Unabsorbed element e: the index into iw of the description **/ /** of element e, if e has not yet been absorbed by a **/ /** subsequent element. Element e is created when **/ /** the supervariable of the same name is selected as **/ /** the pivot. **/ /** * Absorbed element e: if element e is absorbed into element **/ /** e2, then pe (e) = -e2. This occurs when the pattern **/ /** of e (that is, Le) is found to be a subset of the **/ /** pattern of e2 (that is, Le2). If element e is "null" **/ /** (it has no nonzeros outside its pivot block), then **/ /** pe (e) = 0. **/ /** **/ /** On output, pe holds the assembly tree/forest, which implicitly **/ /** represents a pivot order with identical fill-in as the actual **/ /** order (via a depth-first search of the tree). **/ /** **/ /** On output: **/ /** If nv (i) .gt. 0, then i represents a node in the assembly **/ /** tree, and the parent of i is -pe (i), or zero if i is a root. **/ /** If nv (i) = 0, then (i,-pe (i)) represents an edge in a **/ /** subtree, the root of which is a node in the assembly tree. **/ /** **/ /** pfree: On input, the matrix is stored in iw (1..pfree-1) and **/ /** the rest of the array iw is free. **/ /** During execution, additional data is placed in iw, and pfree **/ /** is modified so that components of iw from pfree are free. **/ /** On output, pfree is set equal to the size of iw that **/ /** would have been needed for no compressions to occur. If **/ /** ncmpa is zero, then pfree (on output) is less than or equal **/ /** to iwlen, and the space iw (pfree+1 ... iwlen) was not used. **/ /** Otherwise, pfree (on output) is greater than iwlen, and all **/ /** the memory in iw was used. **/ /** **/ /** nv: On input, encoding of compressed graph: **/ /** During execution, abs (nv (i)) is equal to the number of rows **/ /** that are represented by the principal supervariable i. If i **/ /** is a nonprincipal variable, then nv (i) = 0. Initially, **/ /** nv (i) = 1 for all i. nv (i) .lt. 0 signifies that i is a **/ /** principal variable in the pattern Lme of the current pivot **/ /** element me. On output, nv (e) holds the true degree of **/ /** element e at the time it was created (including the diagonal **/ /** part). **/ /** begin HALO **/ /** On output, nv(I) can be used to find node in set V1. **/ /** Not true anymore : ( nv(I) = N+1 characterizes nodes in V1. **/ /** instead nodes in V1 are considered as a dense root **/ /** node) **/ /** end HALO **/ /**--------------------------------------------------------------------- **/ /** INPUT/MODIFIED (undefined on output): **/ /**--------------------------------------------------------------------- **/ /** len: On input, len (i) **/ /** positive or null (>=0) : i \in V0 U Ve and **/ /** if (nbelts==0) then (graph of variables) **/ /** len(i) holds the number of entries in row i of **/ /** the matrix, excluding the diagonal. **/ /** else (graph of elements+variables) **/ /** if i\in V0 then len(i) = nb of elements adjacent **/ /** to i **/ /** if i\in Ve then len(i) = nb of variables **/ /** adjacent to i **/ /** endif **/ /** negative (<0) : i \in V1, and **/ /** if (nbelts==0) then (graph of variables) **/ /** -len(i) hold the number of entries in row i of **/ /** the matrix, excluding the diagonal. **/ /** len(i) = - | Adj(i) | if i \in V1 **/ /** or -N -1 if | Adj(i) | = 0 and i \in V1 **/ /** else (graph of elements+variables) **/ /** -len(i) nb of elements adjacent to i **/ /** endif **/ /** The content of len (1..n) is undefined on output. **/ /** **/ /** elen: defined on input only if nbelts>0 **/ /** if e \in Ve then elen (e) = -N-1 **/ /** if v \in V0 then elen (v) = External degree of v **/ /** that should thus be provided **/ /** on entry to initialize degree **/ /** **/ /** if v \in V1 then elen (v) = 0 **/ /** **/ /** iw: On input, iw (1..pfree-1) holds the description of each row i **/ /** in the matrix. The matrix must be symmetric, and both upper **/ /** and lower triangular parts must be present. The diagonal must **/ /** not be present. Row i is held as follows: **/ /** **/ /** len (i): the length of the row i data structure **/ /** iw (pe (i) ... pe (i) + len (i) - 1): **/ /** the list of column indices for nonzeros **/ /** in row i (simple supervariables), excluding **/ /** the diagonal. All supervariables start with **/ /** one row/column each (supervariable i is just **/ /** row i). **/ /** if len (i) is zero on input, then pe (i) is ignored **/ /** on input. **/ /** **/ /** Note that the rows need not be in any particular **/ /** order, and there may be empty space between the rows. **/ /** **/ /** During execution, the supervariable i experiences fill-in. **/ /** This is represented by placing in i a list of the elements **/ /** that cause fill-in in supervariable i: **/ /** **/ /** len (i): the length of supervariable i **/ /** iw (pe (i) ... pe (i) + elen (i) - 1): **/ /** the list of elements that contain i. This **/ /** list is kept short by removing absorbed **/ /** elements. **/ /** iw (pe (i) + elen (i) ... pe (i) + len (i) - 1): **/ /** the list of supervariables in i. This list **/ /** is kept short by removing nonprincipal **/ /** variables, and any entry j that is also **/ /** contained in at least one of the elements **/ /** (j in Le) in the list for i (e in row i). **/ /** **/ /** When supervariable i is selected as pivot, we create an **/ /** element e of the same name (e=i): **/ /** **/ /** len (e): the length of element e **/ /** iw (pe (e) ... pe (e) + len (e) - 1): **/ /** the list of supervariables in element e. **/ /** **/ /** An element represents the fill-in that occurs when **/ /** supervariable i is selected as pivot (which represents the **/ /** selection of row i and all non-principal variables whose **/ /** principal variable is i). We use the term Le to denote the **/ /** set of all supervariables in element e. Absorbed **/ /** supervariables and elements are pruned from these lists when **/ /** computationally convenient. **/ /** **/ /** CAUTION: THE INPUT MATRIX IS OVERWRITTEN DURING COMPUTATION. **/ /** The contents of iw are undefined on output. **/ /** **/ /**--------------------------------------------------------------------- **/ /** OUTPUT (need not be set on input): **/ /**--------------------------------------------------------------------- **/ /** elen: See the description of iw above. At the start of execution, **/ /** elen (i) is set to zero. During execution, elen (i) is the **/ /** number of elements in the list for supervariable i. When e **/ /** becomes an element, elen (e) = -nel is set, where nel is the **/ /** current step of factorization. elen (i) = 0 is done when i **/ /** becomes nonprincipal. **/ /** **/ /** For variables, elen (i) .ge. 0 holds **/ /** For elements, elen (e) .lt. 0 holds. **/ /** **/ /** last: In a degree list, last (i) is the supervariable preceding i, **/ /** or zero if i is the head of the list. In a hash bucket, **/ /** last (i) is the hash key for i. last (head (hash)) is also **/ /** used as the head of a hash bucket if head (hash) contains a **/ /** degree list (see head, below). **/ /** **/ /** ncmpa: The number of times iw was compressed. If this is **/ /** excessive, then the execution took longer than what could **/ /** have been. To reduce ncmpa, try increasing iwlen to be 10% **/ /** or 20% larger than the value of pfree on input (or at least **/ /** iwlen .ge. pfree + n). The fastest performance will be **/ /** obtained when ncmpa is returned as zero. If iwlen is set to **/ /** the value returned by pfree on *output*, then no compressions **/ /** will occur. **/ /** begin HALO **/ /** on output ncmpa <0 --> error detected during HALO_AMD: **/ /** error 1: ncmpa = -NORIG , ordering was stopped. **/ /** end HALO **/ /** **/ /**--------------------------------------------------------------------- **/ /** LOCAL (not input or output - used only during execution): **/ /**--------------------------------------------------------------------- **/ /** degree: If i is a supervariable, then degree (i) holds the **/ /** current approximation of the external degree of row i (an **/ /** upper bound). The external degree is the number of nonzeros **/ /** minus abs (nv (i)) (the diagonal part). The bound is equal to **/ /** in row i, the external degree if elen (i) is less than or **/ /** equal to two. **/ /** We also use the term "external degree" for elements e to refer **/ /** to |Le \ Lme|. If e is an element, then degree (e) holds **/ /** |Le|, which is the degree of the off-diagonal part of the **/ /** element e (not including the diagonal part). **/ /** begin HALO **/ /** degree(I) = n+1 indicates that i belongs to V1 **/ /** end HALO **/ /** **/ /** head: head is used for degree lists. head (deg) is the first **/ /** supervariable in a degree list (all supervariables i in a **/ /** degree list deg have the same approximate degree, namely, **/ /** deg = degree (i)). If the list deg is empty then **/ /** head (deg) = 0. **/ /** **/ /** During supervariable detection head (hash) also serves as a **/ /** pointer to a hash bucket. **/ /** If head (hash) .gt. 0, there is a degree list of degree hash. **/ /** The hash bucket head pointer is last (head (hash)). **/ /** If head (hash) = 0, then the degree list and hash bucket are **/ /** both empty. **/ /** If head (hash) .lt. 0, then the degree list is empty, and **/ /** -head (hash) is the head of the hash bucket. **/ /** After supervariable detection is complete, all hash buckets **/ /** are empty, and the (last (head (hash)) = 0) condition is **/ /** restored for the non-empty degree lists. **/ /** next: next (i) is the supervariable following i in a link list, or **/ /** zero if i is the last in the list. Used for two kinds of **/ /** lists: degree lists and hash buckets (a supervariable can be **/ /** in only one kind of list at a time). **/ /** w: The flag array w determines the status of elements and **/ /** variables, and the external degree of elements. **/ /** **/ /** for elements: **/ /** if w (e) = 0, then the element e is absorbed **/ /** if w (e) .ge. wflg, then w (e) - wflg is the size of **/ /** the set |Le \ Lme|, in terms of nonzeros (the **/ /** sum of abs (nv (i)) for each principal variable i that **/ /** is both in the pattern of element e and NOT in the **/ /** pattern of the current pivot element, me). **/ /** if wflg .gt. w (e) .gt. 0, then e is not absorbed and has **/ /** not yet been seen in the scan of the element lists in **/ /** the computation of |Le\Lme| in loop 150 below. **/ /** **/ /** for variables: **/ /** during supervariable detection, if w (j) .ne. wflg then j **/ /** is not in the pattern of variable i **/ /** **/ /** The w array is initialized by setting w (i) = 1 for all i, **/ /** and by setting wflg = 2. It is reinitialized if wflg becomes **/ /** too large (to ensure that wflg+n does not cause integer **/ /** overflow). **/ /** **/ /** wf : integer array used to store the already filled area of **/ /** the variables adajcent to current pivot. **/ /** wf is then used to update the score of variable i. **/ void hallOrderHfR3Hamdf4 ( const Gnum norig, /* Uncompressed matrix order */ const Gnum n, /* Current matrix order */ const Gnum nbelts, /* Number of elements */ const Gnum nbbuck, /* Number of buckets */ const Gnum iwlen, /* Length of array iw */ Gnum * restrict pe /* [n] */, /* Array of indexes in iw of start of row i */ Gnum pfree, /* Useful size in iw */ Gnum * restrict len /* [n] */, /* Array of lengths of adjacency lists */ Gnum * restrict iw /* [iwlen] */, /* Adjacency list array */ Gnum * nv /* [n] */, /* Array of element degrees (weights) [norestrict] */ Gnum * restrict elen /* [n] */, /* Array that holds the inverse permutation */ Gnum * restrict last /* [n] */, /* Array that holds the permutation */ Gnum * restrict ncmpaptr, /* Number of times array iw was compressed */ Gnum * restrict degree /* [n] */, /* Array that holds degree data */ Gnum * restrict wf /* [n] */, /* Flag array */ Gnum * restrict next /* [n] */, /* Linked list structure */ Gnum * restrict w /* [n] */, /* Flag array */ Gnum * restrict head /* [0:nbbuck+1] */) /* Linked list structure */ { Gnum deg, degme, dext, dmax, e, elenme, eln, i, ilast, inext, j, jlast, jnext, k, knt1, knt2, knt3, lenj, ln, me, mindeg, nel, nleft, nvi, nvj, nvpiv, slenme, we, wflg, wnvi, x, nbflag, nreal, lastd, nelme, wf3, wf4, n2, pas; Gnum knt1_updated, knt2_updated; Gnum maxmem, mem, newmem; Gnum maxint_n; Gnum hash, hmod; float rmf, rmf1; float dummy; Gnum idummy; /** deg : the degree of a variable or element **/ /** degme : size, |Lme|, of the current element, me (= degree (me)) **/ /** dext : external degree, |Le \ Lme|, of some element e **/ /** dmax : largest |Le| seen so far **/ /** e : an element **/ /** elenme : the length, elen (me), of element list of pivotal var. **/ /** eln : the length, elen (...), of an element list **/ /** hash : the computed value of the hash function **/ /** hmod : the hash function is computed modulo hmod = max (1,n-1) **/ /** i : a supervariable **/ /** ilast : the entry in a link list preceding i **/ /** inext : the entry in a link list following i **/ /** j : a supervariable **/ /** jlast : the entry in a link list preceding j **/ /** jnext : the entry in a link list, or path, following j **/ /** k : the pivot order of an element or variable **/ /** knt1 : loop counter used during element construction **/ /** knt2 : loop counter used during element construction **/ /** knt3 : loop counter used during compression **/ /** lenj : len (j) **/ /** ln : length of a supervariable list **/ /** maxint_n : large integer to test risk of overflow on wflg **/ /** maxmem : amount of memory needed for no compressions **/ /** me : current supervariable being eliminated, and the **/ /** current element created by eliminating that **/ /** supervariable **/ /** mem : memory in use assuming no compressions have occurred **/ /** mindeg : current minimum degree **/ /** nel : number of pivots selected so far **/ /** newmem : amount of new memory needed for current pivot element **/ /** nleft : n - nel, the number of nonpivotal rows/columns remaining **/ /** nvi : the number of variables in a supervariable i (= nv (i)) **/ /** nvj : the number of variables in a supervariable j (= nv (j)) **/ /** nvpiv : number of pivots in current element **/ /** slenme : number of variables in variable list of pivotal variable **/ /** we : w (e) **/ /** wflg : used for flagging the w array. See description of iw. **/ /** wnvi : wflg - nv (i) **/ /** x : either a supervariable or an element **/ /** wf3 : off diagoanl block area **/ /** wf4 : diagonal block area **/ /** mf : minimum fill **/ /** nbflag : number of flagged entries in the initial gragh. **/ /** nreal : number of entries on which ordering must be perfomed **/ /** (nreal = n - nbflag) **/ /** nelme : number of pivots selected when reaching the root **/ /** lastd : index of the last row in the list of dense rows **/ Gnum p, p1, p2, p3, pdst, pend, pj, pme, pme1, pme2, pn, psrc; Gnum ncmpa, totel; /** Any parameter (pe (...) or pfree) or local variable **/ /** starting with "p" (for Pointer) is an index into iw, **/ /** and all indices into iw use variables starting with **/ /** "p." The only exception to this rule is the iwlen **/ /** input argument. **/ /** p : pointer into lots of things **/ /** p1 : pe (i) for some variable i (start of element list) **/ /** p2 : pe (i) + elen (i) - 1 for some var. i (end of el. list) **/ /** p3 : index of first supervariable in clean list **/ /** pdst : destination pointer, for compression **/ /** pend : end of memory to compress **/ /** pj : pointer into an element or variable **/ /** pme : pointer into the current element (pme1...pme2) **/ /** pme1 : the current element, me, is stored in iw (pme1...pme2) **/ /** pme2 : the end of the current element **/ /** pn : pointer into a "clean" variable, also used to compress **/ /** psrc : source pointer, for compression **/ -- pe; /* Array index adjustments */ -- len; -- iw; -- nv; -- elen; -- last; -- degree; -- wf; -- next; -- w; /* -- head; Array head not updated since starts from 0 */ idummy = GNUMMAX - 1; dummy = (float) idummy; n2 = - (nbbuck + 1); /* Variable with degree N2 are in halo; bucket NBBUCK+1 used for halo variables */ pas = MAX ((norig / 8), 1); /* Distance betweeen elements of the N, ..., NBBUCK entries of HEAD */ wflg = 2; maxint_n = GNUMMAX - norig; ncmpa = 0; nel = 0; totel = 0; hmod = MAX (1, nbbuck - 1); dmax = 0; mem = pfree - 1; maxmem = mem; mindeg = 0; nbflag = 0; lastd = 0; memSet (head, 0, (nbbuck + 2) * sizeof (Gnum)); memSet (last + 1, 0, n * sizeof (Gnum)); if (nbelts == 0) { /* If graph has no elements and only variables */ for (i = 1; i <= n; i ++) { /* elen[i] = 0; Already done before calling */ w[i] = 1; if (len[i] < 0) { degree[i] = n2; nbflag ++; if (len[i] == (-1 - norig)) { /* Variable in V1 with empty adj. list */ len[i] = 0; /* Because of compress, we force skipping this entry which is anyway empty */ pe[i] = 0; } else len[i] = - len[i]; } else { totel += nv[i]; if (n == norig) /* If graph not compressed */ degree[i] = len[i]; else { degree[i] = 0; for (p = pe[i]; p < pe[i] + len[i]; p ++) degree[i] += nv[iw[p]]; } } } } else { /* Graph has elements */ for (i = 1; i <= n; i ++) { w[i] = 1; if (len[i] < 0) { degree[i] = n2; nbflag ++; if (len[i] == (-1 - norig)) { len[i] = 0; /* Because of compress, we force skipping this entry (which is anyway empty) */ pe[i] = 0; /* elen[i] = 0; Already done before calling */ } else { len[i] = - len[i]; elen[i] = len[i]; } } else { /* Non-halo vertex or element */ if (elen[i] < 0) { /* If i \in Ve */ nel += nv[i]; elen[i] = - nel; if (n == norig) degree[i] = len[i]; else { degree[i] = 0; for (p = pe[i]; p < pe[i] + len[i]; p ++) degree[i] += nv[iw[p]]; } if (degree[i] > dmax) dmax = degree[i]; } else { /* i \in V0 */ totel += nv[i]; degree[i] = elen[i]; elen[i] = len[i]; } } } } #ifdef SCOTCH_DEBUG_ORDER2 if (nbelts != nel) { errorPrint ("hallOrderHfR3Hamdf4: internal error (1)"); *ncmpaptr = - norig; return; } #endif /* SCOTCH_DEBUG_ORDER2 */ nreal = n - nbflag; /* Number of entries to be ordered */ for (i = 1; i <= n; i ++) { /* Initialize degree lists and eliminate rows with no off-diag. nz. */ if (elen[i] < 0) /* Skip element vertices (Ve) */ continue; deg = degree[i]; if (deg == n2) { /* V1 variables (deg == n2): flagged variables are stored in the degree list of NBBUCK+1 */ deg = nbbuck + 1; if (lastd == 0) { /* Degree list is empty */ lastd = i; head[deg] = i; next[i] = 0; last[i] = 0; } else { next[lastd] = i; last[i] = lastd; lastd = i; next[i] = 0; } } else if (deg > 0) { wf[i] = deg; /* Version 1 */ if (deg > norig) deg = MIN ((deg - norig) / pas + norig, nbbuck); /* Note that if (deg==0), no fill-in will occur but one variable adjacent to i */ inext = head[deg]; if (inext != 0) last[inext] = i; next[i] = inext; head[deg] = i; } else { /* Variable can be eliminated at once because no off-diagonal non-zero in its row */ nel += nv[i]; elen[i] = - nel; pe[i] = 0; w[i] = 0; } } nleft = totel - nel; /* If elements provided (nbelts > 0), they are eliminated */ while (nel < totel) { for (deg = mindeg; deg <= nbbuck; deg ++) { me = head[deg]; if (me > 0) break; } mindeg = deg; if (me <= 0) { errorPrint ("hallOrderHfR3Hamdf4: internal error (2)"); *ncmpaptr = -1 - norig; return; } if (deg > norig) { /* Linear search to find variable with best score in the list */ j = next[me]; k = wf[me]; while (j > 0) { /* L55: CONTINUE */ if (wf[j] < k) { me = j; k = wf[me]; } j = next[j]; } ilast = last[me]; inext = next[me]; if (inext != 0) last[inext] = ilast; if (ilast != 0) next[ilast] = inext; else head[deg] = inext; /* me is at the head of the degree list */ } else { /* Remove chosen variable from link list */ inext = next[me]; if (inext != 0) last[inext] = 0; head[deg] = inext; } elenme = elen[me]; /* me represents the elimination of pivots nel+1 to nel+nv(me) */ elen[me] = - (nel + 1); /* Place me itself as the first in this set. It will be moved */ nvpiv = nv[me]; /* to the nel+nv(me) position when the permutation vectors are */ nel += nvpiv; /* computed */ nv[me] = - nvpiv; /* At this point, me is the pivotal supervariable */ degme = 0; /* It will be converted into the current element */ if (elenme == 0) { /* Construct the new element in place */ pme1 = pe[me]; pme2 = pme1 - 1; for (p = pme1; p < pme1 + len[me]; p ++) { /* Scan list of the pivotal supervariable me */ i = iw[p]; nvi = nv[i]; if (nvi > 0) { /* i is a principal variable not yet placed in Lme */ degme += nvi; /* Store i in new list */ nv[i] = - nvi; /* Flag i as being in Lme by negating nv (i) */ pme2 ++; iw[pme2] = i; if (degree[i] != n2) { /* Remove variable i from degree list. (only if i \in V0) */ ilast = last[i]; inext = next[i]; if (inext != 0) last[inext] = ilast; if (ilast != 0) next[ilast] = inext; else { if (wf[i] > norig) deg = MIN ((wf[i] - norig) / pas + norig, nbbuck); else deg = wf[i]; head[deg] = inext; } } } } /* L60: */ newmem = 0; } else { /* Construct the new element in empty space, iw[pfree ...] */ p = pe[me]; pme1 = pfree; slenme = len[me] - elenme; knt1_updated = 0; for (knt1 = 1; knt1 <= elenme + 1; knt1 ++) { knt1_updated ++; if (knt1 > elenme) { /* Search the supervariables in me */ e = me; pj = p; ln = slenme; } else { /* Search the elements in me */ e = iw[p ++]; pj = pe[e]; ln = len[e]; } knt2_updated = 0; for (knt2 = 1; knt2 <= ln; knt2 ++) { /* Search for different supervariables and add them to the new list */ knt2_updated ++; i = iw[pj ++]; nvi = nv[i]; if (nvi > 0) { if (pfree > iwlen) { /* Compress iw if necessary */ pe[me] = p; /* Prepare for compressing iw by adjusting pointers and lengths so that the lists */ len[me] -= knt1_updated; /* being searched in the inner and outer loops contain only the remaining entries */ knt1_updated = 0; /* Reset knt1_updated in case of recompress at same iteration of the loop 120 */ if (len[me] == 0) /* Check if anything left in supervariable me */ pe[me] = 0; pe[e] = pj; len[e] = ln - knt2_updated; knt2_updated = 0; /* Reset KNT2_UPDATED in case of recompress at same iteration of the loop 110 */ if (len[e] == 0) pe[e] = 0; ncmpa ++; for (j = 1; j <= n; j ++) { /* Store first item in pe; set first entry to -item */ pn = pe[j]; if (pn > 0) { pe[j] = iw[pn]; iw[pn] = - j; } } /* L70: */ pdst = 1; psrc = 1; pend = pme1 - 1; while (psrc <= pend) { /* L80: */ j = - iw[psrc ++]; if (j > 0) { iw[pdst] = pe[j]; pe[j] = pdst ++; lenj = len[j]; for (knt3 = 0; knt3 <= lenj - 2; knt3 ++) /* L90: */ iw[pdst + knt3] = iw[psrc + knt3]; pdst += (lenj - 1); psrc += (lenj - 1); } } p1 = pdst; /* Move the new partially-constructed element */ for (psrc = pme1; psrc <= pfree - 1; psrc ++, pdst ++) /* L100: */ iw[pdst] = iw[psrc]; pme1 = p1; pfree = pdst; pj = pe[e]; p = pe[me]; } degme += nvi; /* i is a principal variable not yet placed in Lme; store i in new list */ nv[i] = - nvi; iw[pfree] = i; pfree ++; if (degree[i] != n2) { /* Remove variable i from degree link list (only if i in V0) */ ilast = last[i]; inext = next[i]; if (inext != 0) last[inext] = ilast; if (ilast != 0) next[ilast] = inext; else { if (wf[i] > norig) deg = MIN ((wf[i] - norig) / pas + norig, nbbuck); else deg = wf[i]; head[deg] = inext; } } } } /* L110: */ if (e != me) { /* Set tree pointer and flag to indicate element e is absorbed into new element me (the parent of e is me) */ pe[e] = - me; w[e] = 0; } } /* L120: */ pme2 = pfree - 1; newmem = pfree - pme1; /* This element takes newmem new memory in iw (possibly zero) */ mem += newmem; maxmem = MAX (maxmem, mem); } degree[me] = degme; /* me has now been converted into an element in iw (pme1..pme2) */ pe[me] = pme1; /* degme holds the external degree of new element */ len[me] = pme2 - pme1 + 1; if (wflg > maxint_n) { /* Make sure that wflg is not too large; wflg+n must not cause integer overflow */ for (x = 1; x <= n; x ++) { if (w[x] != 0) w[x] = 1; } /* L130: */ wflg = 2; } for (pme = pme1; pme <= pme2; pme ++) { /* Compute (w[e] - wflg) = |Le\Lme| for all elements */ i = iw[pme]; eln = elen[i]; if (eln > 0) { /* Note that nv[i] has been negated to denote i in Lme */ nvi = - nv[i]; wnvi = wflg - nvi; for (p = pe[i]; p < pe[i] + eln; p ++) { e = iw[p]; we = w[e]; if (we >= wflg) /* Unabsorbed element e has been seen in this loop */ we -= nvi; else if (we != 0) { /* e is an unabsorbed element; this is the first time we have seen e in all of Scan 1 */ we = degree[e] + wnvi; wf[e] = 0; } w[e] = we; } /* L140: */ } } /* L150: */ for (pme = pme1; pme <= pme2; pme ++) { /* Degree update and element absorption */ i = iw[pme]; p1 = pe[i]; p2 = p1 + elen[i] - 1; pn = p1; hash = 0; deg = 0; wf3 = 0; wf4 = 0; nvi = - nv[i]; for (p = p1; p <= p2; p ++) { /* Scan the element list associated with supervariable i */ e = iw[p]; dext = w[e] - wflg; /* dext = |Le\Lme| */ if (dext > 0) { if (wf[e] == 0) /* First time we meet e: compute wf[e] which is the surface associated to element e */ wf[e] = dext * ((2 * degree[e]) - dext - 1); wf4 += wf[e]; deg += dext; iw[pn ++] = e; hash += e; } else if (dext == 0) { /* Aggressive absorption: e is not adjacent to me, but the |Le \ Lme| is 0, so absorb it into me */ pe[e] = - me; w[e] = 0; } } /* L160: */ elen[i] = pn - p1 + 1; /* Count the number of elements in i (including me) */ p3 = pn; for (p = p2 + 1; p < p1 + len[i]; p ++) { /* Scan the supervariables in the list associated with i */ j = iw[p]; nvj = nv[j]; if (nvj > 0) { /* j is unabsorbed, and not in Lme; add to degree and add to new list */ deg += nvj; wf3 += nvj; iw[pn ++] = j; hash += j; } } /* L170: */ if (degree[i] == n2) deg = n2; if (deg == 0) { /* Mass elimination */ pe[i] = - me; nvi = - nv[i]; degme -= nvi; nvpiv += nvi; nel += nvi; nv[i] = 0; elen[i] = 0; } else { /* Update the upper-bound degree of i */ if (degree[i] != n2) { /* i does not belong to halo */ if (degree[i] < deg) { /* Our appox degree is loose; we cannot subtract wf[i] */ wf4 = 0; wf3 = 0; } else degree[i] = deg; } wf[i] = wf4 + 2 * nvi * wf3; iw[pn] = iw[p3]; /* Add me to the list for i */ iw[p3] = iw[p1]; iw[p1] = me; /* Add new element to front of list */ len[i] = pn - p1 + 1; /* Store the new length of the list in len[i] */ if (deg != n2) { /* Place in hash bucket; save hash key of i in last[i] */ hash = (hash % hmod) + 1; j = head[hash]; if (j <= 0) { /* The degree list is empty, hash head is -j */ next[i] = - j; head[hash] = - i; } else { /* Degree list is not empty; use last (head (hash)) as hash head */ next[i] = last[j]; last[j] = i; } last[i] = hash; } } } /* L180: */ degree[me] = degme; if (degme > dmax) /* Clear the counter array w[...] by incrementing wflg */ dmax = degme; wflg += dmax; if (wflg > maxint_n) { /* Make sure that wflg+n does not cause integer overflow */ for (x = 1; x <= n; x ++) { if (w[x] != 0) w[x] = 1; } wflg = 2; } for (pme = pme1; pme <= pme2; pme ++) { /* Supervariable detection */ i = iw[pme]; if ((nv[i] < 0) && (degree[i] != n2)) { /* i is a principal variable in Lme */ hash = last[i]; j = head[hash]; if (j == 0) continue; /* GOTO L250: */ if (j < 0) { /* Degree list is empty */ i = - j; head[hash] = 0; } else { /* Degree list is not empty: restore last[] of head */ i = last[j]; last[j] = 0; } if (i == 0) continue; L200: /* WHILE LOOP L200: */ if (next[i] != 0) { ln = len[i]; eln = elen[i]; for (p = pe[i] + 1; p < pe[i] + ln; p ++) w[iw[p]] = wflg; jlast = i; j = next[i]; L220: /* WHILE LOOP: */ if (j != 0) { if (len[j] != ln) /* Jump if i and j do not have same size data structure */ goto L240; if (elen[j] != eln) /* Jump if i and j do not have same number adj elts */ goto L240; for (p = pe[j] + 1; p < pe[j] + ln; p ++) { if (w[iw[p]] != wflg) /* Jump if an entry [iw[p]] is in j but not in i */ goto L240; } /* L230: */ pe[j] = -i; /* Found it! j can be absorbed into i */ if (wf[j] > wf[i]) wf[i] = wf[j]; nv[i] += nv[j]; /* Both nv[i] and nv[j] are negated since they are in Lme */ nv[j] = 0; elen[j] = 0; j = next[j]; /* Delete j from hash bucket */ next[jlast] = j; goto L220; L240: jlast = j; /* j cannot be absorbed into i */ j = next[j]; goto L220; } wflg ++; i = next[i]; if (i != 0) goto L200; } } } p = pme1; /* Restore degree lists and remove nonprincipal supervariable from element */ nleft = totel - nel; for (pme = pme1; pme <= pme2; pme ++) { i = iw[pme]; nvi = - nv[i]; if (nvi > 0) { /* i is a principal variable in Lme; restore nv[i] to signify that i is principal */ nv[i] = nvi; if (degree[i] != n2) { /* Compute the external degree (add size of current elem) */ deg = degree[i]; if (degree[i] + degme > nleft) { rmf1 = (float) deg * (float) ((deg - 1) + (2 * degme)) - (float) wf[i]; degree[i] = nleft - nvi; deg = degree[i]; rmf = (float) deg * (float) (deg - 1) - (float) (degme - nvi) * (float) (degme - nvi - 1); rmf = MIN (rmf, rmf1); } else { degree[i] += degme - nvi; rmf = (float) deg * (float) ((deg - 1) + 2 * degme) - (float) wf[i]; } rmf /= (float) (nvi + 1); if (rmf < dummy) wf[i] = (Gnum) anint (rmf); else if ((rmf / (float) n) < dummy) wf[i] = (Gnum) anint (rmf / (float) n); else wf[i] = idummy; if (wf[i] < 1) wf[i] = 1; deg = wf[i]; if (deg > norig) deg = MIN ((deg - norig) / pas + norig, nbbuck); inext = head[deg]; if (inext != 0) last[inext] = i; next[i] = inext; last[i] = 0; head[deg] = i; if (mindeg > deg) /* Save the new degree, and find the minimum degree */ mindeg = deg; } iw[p ++] = i; /* Place the supervariable in the element pattern */ } } /* L260: */ nv[me] = nvpiv + degme; /* Finalize the new element */ len[me] = p - pme1; if (len[me] == 0) { /* There is nothing left of the current pivot element */ pe[me] = 0; w[me] = 0; } if (newmem != 0) { /* Element was not constructed in place: deallocate part of it */ pfree = p; mem = mem - newmem + len[me]; } } /* END WHILE (selecting pivots) */ if (nbflag > 0) { /* Begin halo v2 */ for (deg = mindeg; deg <= (nbbuck + 1); deg ++) { me = head[deg]; if (me > 0) break; } mindeg = deg; nelme = - (nel + 1); for (x = 1; x <= n; x ++) { if ((pe[x] > 0) && (elen[x] < 0)) /* x is an unabsorbed element */ pe[x] = - me; else if (degree[x] == n2) { /* x is a dense row, absorb it in ME (mass elimination) */ nel += nv[x]; pe[x] = - me; elen[x] = 0; nv[x] = 0; /* Patch 12/12/98 (old: n + 1) */ } } elen[me] = nelme; /* me is the root node */ nv[me] = n - nreal; /* Correct value of NV is (principal variable) = nbflag */ pe[me] = 0; #ifdef SCOTCH_DEBUG_ORDER2 if (nel != norig) { /* Error 2 */ errorPrint ("hallOrderHfR3Hamdf4: internal error (3)"); *ncmpaptr = -2 - norig; return; } #endif /* SCOTCH_DEBUG_ORDER2 */ } for (i = 1; i <= n; i ++) { if (elen[i] == 0) { for (j = - pe[i]; elen[j] >= 0; j = - pe[j]) ; /* L270: */ e = j; k = - elen[e]; /* Get the current pivot ordering of e */ j = i; while (elen[j] >= 0) { /* L280: */ jnext = - pe[j]; pe[j] = - e; if (elen[j] == 0) elen[j] = k ++; j = jnext; } elen[e] = - k; } } /* L290: */ *ncmpaptr = ncmpa; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hall_order_hf.h000066400000000000000000000063621514310134000266650ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hall_order_hf.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the block-oriented Halo **/ /** Approximate (Multiple) Minimum Fill **/ /** ordering routine. **/ /** **/ /** DATES : # Version 3.4 : from : 15 may 2001 **/ /** to : 15 may 2001 **/ /** # Version 4.0 : from : 10 jan 2003 **/ /** to : 08 dec 2003 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 02 nov 2019 **/ /** to : 02 nov 2019 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ void hallOrderHfR3Hamdf4 (const Gnum, const Gnum, const Gnum, const Gnum, const Gnum , Gnum * const, Gnum, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hall_order_hx.c000066400000000000000000000410331514310134000266740ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2020,2021,2023 Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hall_order_hx.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains service routines **/ /** for interfacing the halo ordering **/ /** routines provided by Patrick Amestoy **/ /** with the ones of libScotch. **/ /** **/ /** DATES : # Version 4.0 : from : 13 jan 2003 **/ /** to : 28 dec 2004 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 29 may 2008 **/ /** # Version 6.1 : from : 18 jan 2020 **/ /** to : 18 jan 2020 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 10 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hall_order_hx.h" /*********************/ /* */ /* Service routines. */ /* */ /*********************/ /* This routine post-processes the elimination tree ** produced by Amestoy's halo ordering routines. ** On input, the elimination tree is described by ** nvtab and petab. ** On output, we build an un-based elimination tree ** (that is, based to 0), structured as follows: ** - cblknbr : number of column blocks (that is, ** principal variables). ** - sizetab : sizetab[i] holds the total number of ** variables (principal and secondary) if i is ** a principal variable, or ~0 if i is a secondary ** variable or in halo. (sizetab = lentab) ** - petab : petab[i] holds the father of principal ** variable i, or ~0 if i is a root. ** - frsttab : when i is a principal variable, ** frsttab[i] holds the number of the first principal ** son variable of principal variable i, or ~0 if none. ** If i is a secondary variable or in halo, frsttab[i] ** holds ~0 too. ** - nexttab : linked list of principal son variables. ** When i is a principal variable, j=frsttab[i] is ** its first son (if any), and k=nexttab[j] is the ** second son, and l=nexttab[k] is its third son, and ** so on, or ~0 if none. ** - secntab : linked list of secondary variables. ** When i is a principal variable, secntab[i] holds ** the number of the first secondary variable of ** principal variable i, or ~0 if none. When i is ** a secondary variable, secntab[i] holds the next ** secondary variable in linked list, or ~0 if none. ** It returns: ** - 0 : if data structures have been initialized. ** - !0 : on error. */ int hallOrderHxBuild ( const Gnum baseval, /*+ Base value of graph and permutation +*/ const Gnum vertnbr, /*+ Number of vertices in considered graph +*/ const Gnum vnohnbr, /*+ Number of non-halo vertices in considered graph +*/ const Gnum * restrict const vnumtax, /*+ Vertex number array of subgraph, if subgraph +*/ Order * restrict const ordeptr, /*+ Ordering to update +*/ OrderCblk * restrict const cblkptr, /*+ Multiple column-block of ordering +*/ Gnum * restrict const nvartax, Gnum * restrict const sizetax, Gnum * restrict const cwgttax, /*+ Array of column weights (may be NULL) +*/ Gnum * restrict const fathtax, /*+ Was petab +*/ Gnum * restrict const frsttax, Gnum * restrict const nexttax, Gnum * restrict const secntax, Gnum * restrict const desctax, /*+ Was iwtab +*/ Gnum * restrict const permtax, /*+ Based direct permutation array +*/ Gnum * restrict const peritab, /*+ Un-based inverse permutation array +*/ Gnum * restrict const leaftab, /*+ Un-based array for storage of leaves +*/ const Gnum colmin, const Gnum colmax, const float fillrat) { Gnum cblknbr; Gnum cblknum; Gnum leafnbr; Gnum leafnum; Gnum rootnum; Gnum ordetmp; Gnum i, j, k; const Gnum vnohnnd = vnohnbr + baseval; memSet (desctax + baseval, 0, vertnbr * sizeof (Gnum)); memSet (sizetax + baseval, 0, vertnbr * sizeof (Gnum)); memSet (frsttax + baseval, ~0, vertnbr * sizeof (Gnum)); memSet (secntax + baseval, ~0, vertnbr * sizeof (Gnum)); #ifdef SCOTCH_DEBUG_ORDER2 for (i = baseval; i < vnohnnd; i ++) { if ((fathtax[i] > 0) || (fathtax[i] < - vertnbr)) { errorPrint ("hallOrderHxBuild: elimination tree out of bounds"); return (1); } } #endif /* SCOTCH_DEBUG_ORDER2 */ for (i = baseval, cblknbr = 0, rootnum = ~0; /* Assume no root found yet */ i < vnohnnd; i ++) { if (nvartax[i] != 0) { /* If principal variable */ Gnum fathval; /* Index of father */ cblknbr ++; /* One more column block */ sizetax[i] ++; /* One more column */ fathval = fathtax[i]; if ((fathval < 0) && /* If not root of tree */ (fathval > - (vnohnbr + 1))) { /* And father not in halo */ fathval = baseval - (fathval + 1); /* Re-base father number */ fathtax[i] = fathval; nexttax[i] = frsttax[fathval]; /* Link vertex to tree */ frsttax[fathval] = i; /* Variable is first son */ desctax[fathval] ++; /* Father has one more son */ } else { fathtax[i] = ~0; /* Father is (pseudo-)root */ rootnum = i; /* Record (last) root */ } } else { /* If secondary variable */ Gnum fathval; /* Index of father */ Gnum cwgtval; /* Weight of column */ cwgtval = (cwgttax != NULL) ? cwgttax[i] : 1; fathval = baseval - (fathtax[i] + 1); /* Re-base father number */ fathtax[i] = fathval; if (fathval >= vnohnnd) { /* If father in halo */ if (frsttax[fathval] == ~0) { /* If first such vertex */ cblknbr ++; /* One more column block */ sizetax[i] = 1; /* One more column */ nvartax[i] = cwgtval; /* Make it principal */ frsttax[fathval] = i; /* Record it as root */ fathtax[i] = ~0; /* Make it (pseudo-)root */ rootnum = i; /* Record (last) root */ continue; /* Skip to next vertex */ } else { fathval = frsttax[fathval]; /* Get first such vertex as root */ fathtax[i] = fathval; nvartax[fathval] += cwgtval; /* Record us as secondary variable */ } } sizetax[fathval] ++; /* One more column */ if (cwgttax != NULL) cwgttax[fathval] += cwgtval; secntax[i] = secntax[fathval]; /* Link secondary variable */ secntax[fathval] = i; } } for (i = baseval, leafnbr = 0; /* Build leaf list for amalgamation */ i < vnohnnd; i ++) { if ((fathtax[i] != ~0) && /* If node has a father */ (nvartax[i] != 0) && /* And is a principal variable */ (frsttax[i] == ~0)) /* And is a leaf */ leaftab[leafnbr ++] = i; /* Add it to leaf list */ } for (leafnum = 0; leafnum < leafnbr; leafnum ++) { /* As long as candidate leaves exist */ Gnum cwgtvali; Gnum cwgtvalj; i = leaftab[leafnum]; j = fathtax[i]; cwgtvali = (cwgttax != NULL) ? cwgttax[i] : sizetax[i]; cwgtvalj = (cwgttax != NULL) ? cwgttax[j] : sizetax[j]; if ((cwgtvali + cwgtvalj) <= colmax) { /* If will not be too large */ if ((cwgtvali < colmin) || /* If column block too small */ (((float) (2 * cwgtvali) * (float) (nvartax[j] - nvartax[i] + cwgtvali)) < (float) nvartax[j] * (float) nvartax[j] * fillrat)) { nvartax[i] = 0; nvartax[j] += cwgtvali; sizetax[j] += sizetax[i]; if (cwgttax != NULL) cwgttax[j] += cwgtvali; if (secntax[i] == ~0) /* If node had no secondary variables */ secntax[i] = secntax[j]; /* Make it take those of its father */ else if (secntax[j] != ~0) { /* Else if there is something to append */ for (k = secntax[i]; secntax[k] != ~0; k = secntax[k]) ; /* Find last node */ secntax[k] = secntax[j]; /* Append father list to node list */ } secntax[j] = i; /* Now it is a secondary variable of it */ if (frsttax[j] == i) { /* If node is first son of father */ if (frsttax[i] == ~0) /* If node has no sons */ frsttax[j] = nexttax[i]; /* First son is now next node */ else { frsttax[j] = frsttax[i]; for (k = frsttax[i]; nexttax[k] != ~0; k = nexttax[k]) fathtax[k] = j; fathtax[k] = j; nexttax[k] = nexttax[i]; } } else { /* Else unlink node from son chain */ for (k = frsttax[j]; nexttax[k] != i; k = nexttax[k]) ; if (frsttax[i] == ~0) /* If node has no sons */ nexttax[k] = nexttax[i]; else { nexttax[k] = frsttax[i]; for (k = frsttax[i]; nexttax[k] != ~0; k = nexttax[k]) fathtax[k] = j; fathtax[k] = j; nexttax[k] = nexttax[i]; } } cblknbr --; /* One less column block */ } } if (((-- desctax[j]) <= 0) && /* If all descendents processed */ (fathtax[j] != ~0)) /* And node has a father */ leaftab[leafnbr ++] = j; /* Enqueue father */ } #ifdef SCOTCH_DEBUG_ORDER2 memSet (peritab, ~0, vnohnbr * sizeof (Gnum)); #endif /* SCOTCH_DEBUG_ORDER2 */ ordetmp = hallOrderHxTree (frsttax, nexttax, secntax, peritab, 0, rootnum); if (ordetmp < vnohnbr) { /* If not all nodes ordered */ for (i = baseval; i < rootnum; i ++) { /* For all potential remaining roots */ if (fathtax[i] == ~0) /* If node is a pseudo-root */ ordetmp = hallOrderHxTree (frsttax, nexttax, secntax, peritab, ordetmp, i); } } #ifdef SCOTCH_DEBUG_ORDER2 if (ordetmp != vnohnbr) { errorPrint ("hallOrderHxBuild: incomplete elimination tree"); return (1); } memSet (permtax + baseval, ~0, vnohnbr * sizeof (Gnum)); for (i = 0; i < vnohnbr; i ++) { if ((peritab[i] < baseval) || (peritab[i] >= vnohnnd)) { errorPrint ("hallOrderHxBuild: permutation out of bounds"); return (1); } if (permtax[peritab[i]] != ~0) { errorPrint ("hallOrderHxBuild: duplicate permutation index"); return (1); } permtax[peritab[i]] = i; } for (i = baseval; i < vnohnnd; i ++) { if (permtax[i] == ~0) { errorPrint ("hallOrderHxBuild: unused permutation index"); return (1); } } #endif /* SCOTCH_DEBUG_ORDER2 */ if (cblknbr != 1) { /* If more than one column block in the end, create subtree */ if ((cblkptr->cblktab = (OrderCblk *) memAlloc (cblknbr * sizeof (OrderCblk))) == NULL) { errorPrint ("hallOrderHxBuild: out of memory"); return (1); } cblkptr->typeval = ORDERCBLKSEQU; /* Node is a sequence of blocks */ cblkptr->cblknbr = cblknbr; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->cblknbr += cblknbr - 1; /* These more column blocks created */ ordeptr->treenbr += cblknbr; /* These more tree nodes created */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ for (i = 0, cblknum = 0; i < vnohnbr; i ++) { if (nvartax[peritab[i]] == 0) /* If secondary variable */ continue; /* Skip to next vertex */ cblkptr->cblktab[cblknum].typeval = ORDERCBLKLEAF; /* Build column blocks */ cblkptr->cblktab[cblknum].vnodnbr = sizetax[peritab[i]]; cblkptr->cblktab[cblknum].cblknbr = 0; cblkptr->cblktab[cblknum].cblktab = NULL; cblknum ++; /* One more column block created */ } } if (vnumtax != NULL) { /* If graph is not original graph */ for (i = 0; i < vnohnbr; i ++) /* Finalize inverse permutation */ peritab[i] = vnumtax[peritab[i]]; } return (0); } /*+ This routine computes the inverse *** permutation according to the *** elimination tree. *** It returns: *** - >0 : next index to be used to order, in all cases. +*/ Gnum hallOrderHxTree ( const Gnum * restrict const frsttax, const Gnum * restrict const nexttax, const Gnum * restrict const secntax, Gnum * restrict const peritab, const Gnum ordenum, const Gnum nodenum) { Gnum ordetmp; Gnum nodetmp; ordetmp = ordenum; for (nodetmp = frsttax[nodenum]; nodetmp != ~0; nodetmp = nexttax[nodetmp]) ordetmp = hallOrderHxTree (frsttax, nexttax, secntax, peritab, ordetmp, nodetmp); peritab[ordetmp ++] = nodenum; /* Order principal variable */ for (nodetmp = secntax[nodenum]; nodetmp != ~0; nodetmp = secntax[nodetmp]) { peritab[ordetmp ++] = nodetmp; /* Order secondary variables */ } return (ordetmp); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hall_order_hx.h000066400000000000000000000066311514310134000267060ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hall_order_hx.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the halo ordering service **/ /** routines. **/ /** **/ /** DATES : # Version 4.0 : from : 14 jan 2003 **/ /** to : 08 dec 2003 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 18 jan 2020 **/ /** to : 18 jan 2020 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int hallOrderHxBuild (const Gnum, const Gnum, const Gnum, const Gnum * restrict const, Order * restrict const, OrderCblk * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, const Gnum, const Gnum, const float); Gnum hallOrderHxTree (const Gnum * restrict const, const Gnum * restrict const, const Gnum * restrict const, Gnum * restrict const, const Gnum, const Gnum); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph.c000066400000000000000000000075171514310134000255100ustar00rootroot00000000000000/* Copyright 2007,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed graph general **/ /** purpose routines. **/ /** **/ /** DATES : # Version 5.0 : from : 21 apr 2006 **/ /** to : 21 apr 2006 **/ /** # Version 6.1 : from : 24 sep 2021 **/ /** to : 24 sep 2021 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "hdgraph.h" /******************************/ /* */ /* These routines handle halo */ /* distributed source graphs. */ /* */ /******************************/ /* This routine destroys a distributed halo graph ** structure. It is not a collective routine, as no ** communication is needed to perform the freeing of ** memory structures. ** It returns: ** - 0 : on success. ** - !0 : on error. */ void hdgraphExit ( Hdgraph * restrict const grafptr) { if ((grafptr->vhndloctax != grafptr->s.vertloctax + 1) && /* If graph has a halo, with a separate end vertex array */ ((grafptr->s.flagval & HDGRAPHFREEVHND) != 0)) memFree (grafptr->vhndloctax); dgraphExit (&grafptr->s); /* Free distributed graph data */ #ifdef SCOTCH_DEBUG_HDGRAPH1 memSet (grafptr, ~0, sizeof (Hdgraph)); #endif /* SCOTCH_DEBUG_HDGRAPH1 */ grafptr->s.flagval = DGRAPHNONE; /* A subsequent hdgraphExit() will have no effect */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph.h000066400000000000000000000133201514310134000255020ustar00rootroot00000000000000/* Copyright 2007,2010,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source halo distributed graph **/ /** structure. **/ /** **/ /** DATES : # Version 5.0 : from : 15 apr 2006 **/ /** to : 16 jun 2007 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 01 may 2019 **/ /** # Version 6.1 : from : 19 jun 2021 **/ /** to : 07 oct 2021 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Graph option flags. +*/ #define HDGRAPHFREEVHND 0x0400 /* Free vnhdtab array */ #define HDGRAPHFREEALL (DGRAPHFREEALL | HDGRAPHFREEVHND) /* ** The type and structure definitions. */ /*+ Halo distributed graph structure. In order to keep efficiency, distributed halo graphs are not considered as regular graphs as sequential halo graphs are. Halo distributed graphs have a compact vertex array, with halo edges added at the end of each vertex sub-array. They are not visible when considering the vertlocnbr, vertloctax (which is in fact most often of size vhallocnbr + 1 when the graph is compact, as in this case we have vnhdloctax = vertloctax + 1) and vendloctax (which is of size vertlocnbr) of the embedded distributed graph, but can be accessed through vendloctax and vnhdloctax. Halo vertex ends are stored only in edgeloctax, not in edgegsttax, except when graph has only an edgegsttax and no edgeloctax. Since halo vertices have no real existence in distributed graphs, they are simply numbered from baseval. They are converted into real vertices when a distributed halo graph is turned into a sequential halo graph. +*/ typedef struct Hdgraph_ { Dgraph s; /*+ Source distributed graph +*/ Gnum vhallocnbr; /*+ Local number of halo end vertices +*/ Gnum * vhndloctax; /*+ End vertex array including halo vertex indices +*/ Gnum ehallocnbr; /*+ Local number of halo edges +*/ Gnum levlnum; /*+ Nested dissection level +*/ Context * contptr; /*+ Execution context +*/ } Hdgraph; /* ** The function prototypes. */ int hdgraphInit (Hdgraph * const); void hdgraphExit (Hdgraph * const); void hdgraphFree (Hdgraph * const); int hdgraphFold (const Hdgraph * restrict const, const int, Hdgraph * restrict const); int hdgraphFold2 (const Hdgraph * restrict const, const int, Hdgraph * const, MPI_Comm); int hdgraphCheck (const Hdgraph *); #ifdef SCOTCH_HGRAPH_H int hdgraphGather (Hdgraph *, Hgraph *); #endif /* SCOTCH_HGRAPH_H */ int hdgraphInduceList (Hdgraph * restrict const, const Gnum, const Gnum * restrict const, Hdgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_check.c000066400000000000000000000150151514310134000266350ustar00rootroot00000000000000/* Copyright 2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_check.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel static mapper. **/ /** This module contains the distributed **/ /** graph consistency checking routine. **/ /** **/ /** # Version 5.0 : from : 21 apr 2006 **/ /** to : 29 apr 2006 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "hdgraph.h" /******************************/ /* */ /* These routines handle halo */ /* distributed source graphs. */ /* */ /******************************/ /* This function checks the consistency ** of the given halo distributed graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int hdgraphCheck ( const Hdgraph * restrict const grafptr) { Gnum vertlocnum; int * restrict vhalloctax; /* Flag array for halo vertices */ Gnum vhallocnnd; Gnum vhallocnum; Gnum ehallocnbr; int cheklocval; /* Local consistency flag */ int chekglbval; /* Global consistency flag */ cheklocval = 0; for (vertlocnum = grafptr->s.baseval, ehallocnbr = 0; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { if ((grafptr->vhndloctax[vertlocnum] < grafptr->s.vendloctax[vertlocnum]) || (grafptr->vhndloctax[vertlocnum] > (grafptr->s.edgelocsiz + grafptr->s.baseval))) { errorPrint ("hdgraphCheck: inconsistent local vertex arrays"); cheklocval = 1; } ehallocnbr += grafptr->vhndloctax[vertlocnum] - grafptr->s.vendloctax[vertlocnum]; } if (ehallocnbr != grafptr->ehallocnbr) { errorPrint ("hdgraphCheck: invalid local number of halo edges"); cheklocval = 1; } if ((grafptr->vhallocnbr < 0) || (grafptr->vhallocnbr > grafptr->s.edgelocsiz)) { errorPrint ("hdgraphCheck: invalid local number of halo vertices"); cheklocval = 1; } vhalloctax = NULL; if ((cheklocval == 0) && ((vhalloctax = (int *) memAlloc (grafptr->vhallocnbr * sizeof (int))) == NULL)) { errorPrint ("hdgraphCheck: out of memory"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphCheck: communication error (1)"); return (1); } if (chekglbval != 0) { if (vhalloctax != NULL) memFree (vhalloctax); return (1); } memSet (vhalloctax, ~0, grafptr->vhallocnbr * sizeof (int)); vhalloctax -= grafptr->s.baseval; vhallocnnd = grafptr->vhallocnbr + grafptr->s.baseval; for (vertlocnum = grafptr->s.baseval; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { Gnum edgelocnum; for (edgelocnum = grafptr->s.vendloctax[vertlocnum]; edgelocnum < grafptr->vhndloctax[vertlocnum]; edgelocnum ++) { Gnum vhallocend; vhallocend = grafptr->s.edgeloctax[edgelocnum]; if ((vhallocend < grafptr->s.baseval) || (vhallocend >= vhallocnnd)) { errorPrint ("hdgraphCheck: invalid halo vertex number"); vertlocnum = grafptr->s.vertlocnnd; /* Avoid unwanted cascaded error messages */ cheklocval = 1; break; } vhalloctax[vhallocend] = 0; /* Flag halo vertex as used */ } } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphCheck: communication error (2)"); return (1); } if (chekglbval != 0) { memFree (vhalloctax + grafptr->s.baseval); return (1); } for (vhallocnum = grafptr->s.baseval; vhallocnum < vhallocnnd; vhallocnum ++) { if (vhalloctax[vhallocnum] != 0) { /* If halo vertex index not used in graph */ errorPrint ("hdgraphCheck: unused halo vertex number"); cheklocval = 1; break; } } memFree (vhalloctax + grafptr->s.baseval); if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphCheck: communication error (3)"); return (1); } if (chekglbval != 0) return (1); return (dgraphCheck (&grafptr->s)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_fold.c000066400000000000000000001245221514310134000265100ustar00rootroot00000000000000/* Copyright 2007-2011,2019,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_fold.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the halo distribu- **/ /** ted graph folding function. **/ /** **/ /** DATES : # Version 5.0 : from : 23 apr 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 27 jun 2008 **/ /** to : 04 jan 2011 **/ /** # Version 6.1 : from : 02 apr 2021 **/ /** to : 19 jun 2021 **/ /** # Version 7.0 : from : 28 aug 2019 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dgraph_fold_comm.h" #include "hdgraph.h" #include "hdgraph_fold.h" /******************************/ /* */ /* These routines handle halo */ /* distributed source graphs. */ /* */ /******************************/ /* This routine builds a folded graph by ** merging graph data to the processes of ** the first half or to the second half ** of the communicator. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hdgraphFold ( const Hdgraph * restrict const orggrafptr, const int partval, /*+ 0 for first half, 1 for second half +*/ Hdgraph * restrict const fldgrafptr) { int fldprocglbnbr; int fldproclocnum; /* Index of local process in folded communicator */ int fldproccol; /* Color of receiver or not wanted in communicator */ MPI_Comm fldproccomm; /* Communicator of folded part */ fldprocglbnbr = (orggrafptr->s.procglbnbr + 1) / 2; if (partval == 1) { fldproclocnum = orggrafptr->s.proclocnum - fldprocglbnbr; fldprocglbnbr = orggrafptr->s.procglbnbr - fldprocglbnbr; } else fldproclocnum = orggrafptr->s.proclocnum; fldproccol = ((fldproclocnum >= 0) && (fldproclocnum < fldprocglbnbr)) ? 0 : MPI_UNDEFINED; if (MPI_Comm_split (orggrafptr->s.proccomm, fldproccol, fldproclocnum, &fldproccomm) != MPI_SUCCESS) { errorPrint ("hdgraphFold: communication error"); return (1); } return (hdgraphFold2 (orggrafptr, partval, fldgrafptr, fldproccomm)); } int hdgraphFold2 ( const Hdgraph * restrict const orggrafptr, const int partval, /*+ 0 for first half, 1 for second half +*/ Hdgraph * const fldgrafptr, /*+ Folded graph structure to fill [norestrict:async] +*/ MPI_Comm fldproccomm) /*+ Pre-computed communicator +*/ { int fldcommtypval; /* Type of communication for this process */ DgraphFoldCommData * fldcommdattab; /* Array of two communication data [norestrict] */ Gnum * fldcommvrttab; /* Starting global send indices of communications [norestrict] */ Gnum * fldvertidxtab; /* Start indices of vertex arrays [norestrict] */ Gnum * fldvendidxtab; /* Adjustment value for end vertex arrays [norestrict] */ Gnum * fldedgeidxtab; /* Start indices of edge arrays [norestrict] */ Gnum * fldedgecnttab; /* Number of edges exchanged during each communication [norestrict] */ Gnum fldvertlocnbr; /* Number of vertices in local folded part */ Gnum fldedgelocsiz; /* (Upper bound of) number of edges in folded graph */ int fldprocglbnbr; int fldproclocnum; /* Index of local process in folded communicator */ int fldvertadjnbr; Gnum * restrict fldvertadjtab; /* Array of index adjustments for original vertices */ Gnum * restrict fldvertdlttab; /* Array of index adjustments for original vertices */ Gnum * restrict fldvhalloctax; /* Index array for remote halo vertex renumbering */ int cheklocval; int chekglbval; int commmax; int commnbr; int requnbr; MPI_Request * restrict requtab; const Gnum orgprocvrtbas = orggrafptr->s.procvrttab[orggrafptr->s.proclocnum]; #ifdef SCOTCH_DEBUG_HDGRAPH2 if (orggrafptr->vhndloctax != (orggrafptr->s.vertloctax + 1)) { errorPrint ("hdgraphFold2: halo graph must be compact"); return (1); } if (orggrafptr->s.vendloctax < (orggrafptr->s.vertloctax + orggrafptr->s.vertlocnbr)) { /* MPI_Isend calls should not overlap */ errorPrint ("hdgraphFold2: halo graph must have distinct arrays"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ fldprocglbnbr = (orggrafptr->s.procglbnbr + 1) / 2; if (partval == 1) { fldproclocnum = orggrafptr->s.proclocnum - fldprocglbnbr; fldprocglbnbr = orggrafptr->s.procglbnbr - fldprocglbnbr; } else fldproclocnum = orggrafptr->s.proclocnum; fldcommtypval = ((fldproclocnum >= 0) && (fldproclocnum < fldprocglbnbr)) ? DGRAPHFOLDCOMMRECV : DGRAPHFOLDCOMMSEND; cheklocval = 0; fldvertidxtab = NULL; fldcommdattab = NULL; if (fldcommtypval == DGRAPHFOLDCOMMRECV) { /* If we are going to receive */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if (fldgrafptr == NULL) { errorPrint ("hdgraphFold2: invalid parameters (1)"); return (1); } if (fldproccomm == MPI_COMM_NULL) { errorPrint ("hdgraphFold2: invalid parameters (2)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ memSet (fldgrafptr, 0, sizeof (Hdgraph)); /* Pre-initialize graph fields */ fldgrafptr->s.proccomm = fldproccomm; fldgrafptr->s.procglbnbr = fldprocglbnbr; fldgrafptr->s.proclocnum = fldproclocnum; fldgrafptr->s.flagval = DGRAPHFREEALL | DGRAPHVERTGROUP | DGRAPHEDGEGROUP | DGRAPHHASVENDLOC; /* For premature freeing on error; do not free vhndloctab as it is grouped with vertloctab */ if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &fldgrafptr->s.procdsptab, (size_t) ((fldprocglbnbr + 1) * sizeof (Gnum)), &fldgrafptr->s.proccnttab, (size_t) (fldprocglbnbr * sizeof (Gnum)), &fldgrafptr->s.procngbtab, (size_t) (fldprocglbnbr * sizeof (int)), &fldgrafptr->s.procrcvtab, (size_t) (fldprocglbnbr * sizeof (int)), &fldgrafptr->s.procsndtab, (size_t) (fldprocglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("hdgraphFold2: out of memory (1)"); cheklocval = 1; } else if (dgraphFoldComm (&orggrafptr->s, partval, &commmax, &fldcommtypval, &fldcommdattab, &fldcommvrttab, /* Process can become a sender receiver */ fldgrafptr->s.proccnttab, &fldvertadjnbr, &fldvertadjtab, &fldvertdlttab) != 0) { errorPrint ("hdgraphFold2: cannot compute folding communications (1)"); cheklocval = 1; } else { Gnum fldvelolocnbr; if ((fldcommtypval & DGRAPHFOLDCOMMSEND) == 0) { /* If process is a normal receiver */ int i; for (i = 0, fldvertlocnbr = orggrafptr->s.vertlocnbr; (i < commmax) && (fldcommdattab[i].procnum != -1); i ++) fldvertlocnbr += fldcommdattab[i].vertnbr; commnbr = i; fldedgelocsiz = orggrafptr->s.edgelocsiz + orggrafptr->s.edgeglbsmx * i; /* Upper bound on local edges (degree useless since only for non-halo vertices) */ } else { /* Process is a sender receiver */ fldvertlocnbr = fldcommvrttab[0] - orgprocvrtbas; /* Communications will remove vertices */ fldedgelocsiz = orggrafptr->s.vertloctax[fldvertlocnbr + orggrafptr->s.baseval] - orggrafptr->s.baseval; /* Exact number of edges */ fldgrafptr->s.edgelocsiz = fldedgelocsiz; } fldvelolocnbr = (orggrafptr->s.veloloctax != NULL) ? fldvertlocnbr : 0; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph public data */ &fldgrafptr->s.vertloctax, (size_t) ((fldvertlocnbr + 1) * sizeof (Gnum)), &fldgrafptr->s.vendloctax, (size_t) ( fldvertlocnbr * sizeof (Gnum)), /* Vertex end array for non-halo vertices */ &fldgrafptr->s.vnumloctax, (size_t) ( fldvertlocnbr * sizeof (Gnum)), &fldgrafptr->s.veloloctax, (size_t) ( fldvelolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hdgraphFold2: out of memory (2)"); cheklocval = 1; } else if (fldgrafptr->s.vertloctax -= orggrafptr->s.baseval, fldgrafptr->s.vendloctax -= orggrafptr->s.baseval, fldgrafptr->s.vnumloctax -= orggrafptr->s.baseval, fldgrafptr->s.veloloctax = ((orggrafptr->s.veloloctax != NULL) ? fldgrafptr->s.veloloctax - orggrafptr->s.baseval : NULL), memAllocGroup ((void **) (void *) &fldgrafptr->s.edgeloctax, (size_t) (fldedgelocsiz * sizeof (Gnum)), &fldvhalloctax, (size_t) (orggrafptr->s.edgeglbsmx * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hdgraphFold2: out of memory (3)"); cheklocval = 1; } else { fldgrafptr->s.edgeloctax -= orggrafptr->s.baseval; fldvhalloctax -= orggrafptr->s.baseval; } } } else { /* Process is a sender */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if (fldproccomm != MPI_COMM_NULL) { errorPrint ("hdgraphFold2: invalid parameters (3)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ if (dgraphFoldComm (&orggrafptr->s, partval, &commmax, &fldcommtypval, &fldcommdattab, &fldcommvrttab, NULL, NULL, NULL, NULL) != 0) { errorPrint ("hdgraphFold2: cannot compute folding communications (2)"); cheklocval = 1; } } if ((cheklocval == 0) && (memAllocGroup ((void **) (void *) /* Allocate folding data */ &fldvertidxtab, (size_t) (commmax * sizeof (Gnum)), &fldvendidxtab, (size_t) (commmax * sizeof (Gnum)), &fldedgeidxtab, (size_t) (commmax * sizeof (Gnum)), &fldedgecnttab, (size_t) (commmax * sizeof (Gnum)), &requtab, (size_t) (commmax * HDGRAPHFOLDTAGNBR * sizeof (MPI_Request)), NULL) == NULL)) { errorPrint ("hdgraphFold2: out of memory (4)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_HDGRAPH1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, orggrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (1)"); chekglbval = 1; } #else /* SCOTCH_DEBUG_HDGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_HDGRAPH1 */ if (chekglbval != 0) { if ((fldcommtypval & DGRAPHFOLDCOMMRECV) != 0) { hdgraphExit (fldgrafptr); if (fldvertidxtab != NULL) memFree (fldvertidxtab); /* Free group leaders */ if (fldcommdattab != NULL) memFree (fldcommdattab); } return (1); } requnbr = 0; /* Communications without further processing are placed at beginning of array */ if ((fldcommtypval & DGRAPHFOLDCOMMSEND) != 0) { /* If process is (also) a sender */ Gnum vertsndbas; Gnum vertsndnbr; int i; vertsndnbr = ((fldcommtypval & DGRAPHFOLDCOMMRECV) != 0) ? (fldcommvrttab[0] - orgprocvrtbas) : 0; /* If process is also a receiver, start sending after kept vertices */ for (i = 0, requnbr = 0, vertsndbas = orggrafptr->s.baseval; /* For all send communications to perform */ (i < commmax) && (fldcommdattab[i].procnum != -1); i ++) { Gnum edgelocsiz; vertsndbas += vertsndnbr; vertsndnbr = fldcommdattab[i].vertnbr; edgelocsiz = orggrafptr->s.vertloctax[vertsndbas + vertsndnbr] - orggrafptr->s.vertloctax[vertsndbas]; /* Graph is compact */ fldvertidxtab[i] = vertsndbas; fldedgeidxtab[i] = orggrafptr->s.vertloctax[vertsndbas]; fldedgecnttab[i] = edgelocsiz; if (MPI_Isend (&fldedgecnttab[i], 1, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVLBLLOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (2)"); cheklocval = 1; } } commnbr = i; for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Isend (orggrafptr->s.vertloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVERTLOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (3)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Isend (orggrafptr->s.vendloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVENDLOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (4)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Isend (orggrafptr->s.edgeloctax + fldedgeidxtab[i], fldedgecnttab[i], GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGEDGELOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (5)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { Gnum vertsndbas; int vertsndnbr; int procsndnum; /* Rank of process to send to */ vertsndbas = fldvertidxtab[i]; vertsndnbr = (int) fldcommdattab[i].vertnbr; procsndnum = (int) fldcommdattab[i].procnum; if ((orggrafptr->s.veloloctax != NULL) && (MPI_Isend (orggrafptr->s.veloloctax + vertsndbas, vertsndnbr, GNUM_MPI, procsndnum, TAGFOLD + TAGVELOLOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("hdgraphFold2: communication error (6)"); cheklocval = 1; } else if ((orggrafptr->s.vnumloctax != NULL) && (MPI_Isend (orggrafptr->s.vnumloctax + vertsndbas, vertsndnbr, GNUM_MPI, procsndnum, TAGFOLD + TAGVNUMLOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS)) { errorPrint ("hdgraphFold2: communication error (7)"); cheklocval = 1; } } /* Communications of sender-receivers will be completed in the receiving phase */ } if ((fldcommtypval & DGRAPHFOLDCOMMRECV) != 0) { /* If process is (also) a receiver */ Gnum orgvertlocnbr; Gnum orgvertlocnnd; Gnum fldvertlocadj; Gnum fldvelolocsum; Gnum fldedgelocnum; Gnum fldvhallocnum; Gnum fldehallocnbr; int fldprocnum; int i; const Gnum * restrict const orgvertloctax = orggrafptr->s.vertloctax; const Gnum * restrict const orgvendloctax = orggrafptr->s.vendloctax; const Gnum * restrict const orgedgeloctax = orggrafptr->s.edgeloctax; fldgrafptr->s.procvrttab = fldgrafptr->s.procdsptab; /* Graph does not have holes */ fldgrafptr->s.procdsptab[0] = orggrafptr->s.baseval; /* Build private data of folded graph and array */ for (fldprocnum = 0; fldprocnum < fldprocglbnbr; fldprocnum ++) /* New subdomain indices start from baseval */ fldgrafptr->s.procdsptab[fldprocnum + 1] = fldgrafptr->s.procdsptab[fldprocnum] + fldgrafptr->s.proccnttab[fldprocnum]; if ((fldcommtypval & DGRAPHFOLDCOMMSEND) == 0) { /* If process is a normal receiver */ Gnum orgvertlocmin; Gnum orgvertlocmax; Gnum fldvertlocnum; Gnum * restrict fldedgeloctax; Gnum fldedgelocbas; Gnum fldvertrcvbas; Gnum fldvertrcvnbr; int procngbmin; int procngbmax; for (i = 0, fldvertrcvbas = orggrafptr->s.vertlocnnd, fldvertrcvnbr = 0; /* For all receive communications to perform */ (i < commnbr) && (cheklocval == 0); i ++) { fldvertrcvbas += fldvertrcvnbr; fldvertrcvnbr = fldcommdattab[i].vertnbr; fldvertidxtab[i] = fldvertrcvbas; if (MPI_Irecv (&fldedgecnttab[i], 1, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVLBLLOCTAB, orggrafptr->s.proccomm, &requtab[HDGRAPHFOLDTAGENBR * commmax + i]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (8)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { /* Let these communications progress while we process the edge size messages */ if (MPI_Irecv (fldgrafptr->s.vertloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVERTLOCTAB, orggrafptr->s.proccomm, &requtab[HDGRAPHFOLDTAGVERT * commmax + i]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (9)"); cheklocval = 1; } } for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Irecv (fldgrafptr->s.vendloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVENDLOCTAB, orggrafptr->s.proccomm, &requtab[HDGRAPHFOLDTAGVEND * commmax + i]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (10)"); cheklocval = 1; } } MPI_Waitall (commnbr, &requtab[HDGRAPHFOLDTAGENBR * commmax], MPI_STATUSES_IGNORE); for (i = 0, fldedgelocbas = orggrafptr->s.vertloctax[orggrafptr->s.vertlocnnd]; (i < commnbr) && (cheklocval == 0); i ++) { fldedgeidxtab[i] = fldedgelocbas; fldedgelocbas += fldedgecnttab[i]; if (MPI_Irecv (fldgrafptr->s.edgeloctax + fldedgeidxtab[i], fldedgecnttab[i], GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGEDGELOCTAB, orggrafptr->s.proccomm, &requtab[HDGRAPHFOLDTAGEDGE * commmax + i]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (11)"); cheklocval = 1; } } fldgrafptr->s.edgelocsiz = fldedgelocbas - orggrafptr->s.baseval; /* Get number of local and halo edges */ if (orggrafptr->s.veloloctax != NULL) { for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Irecv (fldgrafptr->s.veloloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVELOLOCTAB, orggrafptr->s.proccomm, &requtab[HDGRAPHFOLDTAGVELO * commmax + i]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (12)"); cheklocval = 1; } } } if (orggrafptr->s.vnumloctax != NULL) { for (i = 0; (i < commnbr) && (cheklocval == 0); i ++) { if (MPI_Irecv (fldgrafptr->s.vnumloctax + fldvertidxtab[i], fldcommdattab[i].vertnbr, GNUM_MPI, fldcommdattab[i].procnum, TAGFOLD + TAGVNUMLOCTAB, orggrafptr->s.proccomm, &requtab[requnbr ++]) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (13)"); cheklocval = 1; } } } orgvertlocnbr = orggrafptr->s.vertlocnbr; /* Process all local vertices */ orgvertlocnnd = orggrafptr->s.vertlocnnd; if (orggrafptr->s.vnumloctax == NULL) { /* If original graph does not have vertex numbers, create remote parts of vertex number array */ Gnum fldvertlocnum; Gnum fldvertlocadj; int i; Gnum * restrict const fldvnumloctax = fldgrafptr->s.vnumloctax; for (i = 0, fldvertlocnum = orgvertlocnnd; i < commnbr; i ++) { Gnum fldvertlocnnd; for (fldvertlocnnd = fldvertlocnum + fldcommdattab[i].vertnbr, fldvertlocadj = fldcommvrttab[i]; fldvertlocnum < fldvertlocnnd; fldvertlocnum ++) fldvnumloctax[fldvertlocnum] = fldvertlocadj ++; } } for (procngbmin = 0, procngbmax = fldvertadjnbr; /* Initialize search accelerator */ procngbmax - procngbmin > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbmin) / 2; if (fldvertadjtab[procngbmed] <= orgprocvrtbas) procngbmin = procngbmed; else procngbmax = procngbmed; } orgvertlocmin = fldvertadjtab[procngbmin]; orgvertlocmax = fldvertadjtab[procngbmax]; fldvertlocadj = fldvertdlttab[procngbmin]; fldedgeloctax = fldgrafptr->s.edgeloctax; for (fldvertlocnum = fldedgelocnum = orggrafptr->s.baseval; /* Adjust local part of edge array */ fldvertlocnum < orgvertlocnnd; ) { for ( ; fldedgelocnum < orgvendloctax[fldvertlocnum]; fldedgelocnum ++) { /* Reorder end vertices */ Gnum orgvertlocend; #ifdef SCOTCH_DEBUG_HDGRAPH2 if (fldedgelocnum >= (fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval)) { errorPrint ("hdgraphFold2: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ orgvertlocend = orgedgeloctax[fldedgelocnum]; if ((orgvertlocend >= orgvertlocmin) && /* If end vertex is local */ (orgvertlocend < orgvertlocmax)) fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertlocadj; else { /* End vertex is not local */ int procngbmin; int procngbmax; for (procngbmin = 0, procngbmax = fldvertadjnbr; procngbmax - procngbmin > 1; ) { int procngbnum; procngbnum = (procngbmax + procngbmin) / 2; if (fldvertadjtab[procngbnum] <= orgvertlocend) procngbmin = procngbnum; else procngbmax = procngbnum; } fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertdlttab[procngbmin]; } } fldvertlocnum ++; for ( ; fldedgelocnum < orgvertloctax[fldvertlocnum]; fldedgelocnum ++) { /* Copy halo part as is */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((orgedgeloctax[fldedgelocnum] < orggrafptr->s.baseval) || (orgedgeloctax[fldedgelocnum] >= (orggrafptr->vhallocnbr + orggrafptr->s.baseval))) { errorPrint ("hdgraphFold2: internal error (2)"); return (1); } if (fldedgelocnum >= (fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval)) { errorPrint ("hdgraphFold2: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ fldedgeloctax[fldedgelocnum] = orgedgeloctax[fldedgelocnum]; } } fldvelolocsum = orggrafptr->s.velolocsum; /* In case there are vertex loads, we keep all of existing load */ fldehallocnbr = orggrafptr->ehallocnbr; /* Normal receivers have at least all of their local halo vertices */ fldvhallocnum = orggrafptr->vhallocnbr + orggrafptr->s.baseval; /* Index of next halo vertex number to assign */ } else { /* Receiver process is also a sender */ Gnum orgvertlocmin; Gnum orgvertlocmax; Gnum fldvertlocnum; Gnum fldvertlocadj; Gnum fldvhallocmax; /* Maximum current size of halo vertex array */ Gnum * restrict fldedgeloctax; int procngbmin; int procngbmax; orgvertlocnbr = fldvertlocnbr; /* Process only remaining local vertices */ orgvertlocnnd = fldvertlocnbr + orggrafptr->s.baseval; for (procngbmin = 0, procngbmax = fldvertadjnbr; /* Initialize search accelerator */ procngbmax - procngbmin > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbmin) / 2; if (fldvertadjtab[procngbmed] <= orgprocvrtbas) procngbmin = procngbmed; else procngbmax = procngbmed; } orgvertlocmin = fldvertadjtab[procngbmin]; orgvertlocmax = fldvertadjtab[procngbmax]; fldvertlocadj = fldvertdlttab[procngbmin]; fldvhallocmax = orggrafptr->s.baseval - 1; /* Reset halo vertex array for local part as halo vertices may have disappeared */ fldehallocnbr = 0; /* Recount all remaining halo vertices and edges */ fldvhallocnum = orggrafptr->s.baseval; fldedgeloctax = fldgrafptr->s.edgeloctax; for (fldvertlocnum = fldedgelocnum = orggrafptr->s.baseval; /* Copy remaining local part of edge array */ fldvertlocnum < orgvertlocnnd; ) { for ( ; fldedgelocnum < orgvendloctax[fldvertlocnum]; fldedgelocnum ++) { /* Reorder end vertices */ Gnum orgvertlocend; #ifdef SCOTCH_DEBUG_HDGRAPH2 if (fldedgelocnum >= (fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval)) { errorPrint ("hdgraphFold2: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ orgvertlocend = orgedgeloctax[fldedgelocnum]; if ((orgvertlocend >= orgvertlocmin) && /* If end vertex is local */ (orgvertlocend < orgvertlocmax)) fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertlocadj; else { /* End vertex is not local */ int procngbnum; int procngbmax; for (procngbnum = 0, procngbmax = fldvertadjnbr; procngbmax - procngbnum > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (fldvertadjtab[procngbmed] <= orgvertlocend) procngbnum = procngbmed; else procngbmax = procngbmed; } fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertdlttab[procngbnum]; } } fldvertlocnum ++; fldehallocnbr += orgvertloctax[fldvertlocnum] - fldedgelocnum; for ( ; fldedgelocnum < orgvertloctax[fldvertlocnum]; fldedgelocnum ++) { /* Renumber halo part */ Gnum orgverthalend; Gnum fldvhallocend; orgverthalend = orgedgeloctax[fldedgelocnum]; #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((orgverthalend < orggrafptr->s.baseval) || (orgverthalend >= (orggrafptr->vhallocnbr + orggrafptr->s.baseval)) || (fldedgelocnum >= (fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval))) { errorPrint ("hdgraphFold2: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ while (fldvhallocmax < orgverthalend) /* Expand halo vertex index array whenever necessary */ fldvhalloctax[++ fldvhallocmax] = ~0; fldvhallocend = fldvhalloctax[orgverthalend]; /* Get renumbered halo vertex */ if (fldvhallocend < 0) { /* If new halo vertex not yet given */ fldvhallocend = /* Allocate it */ fldvhalloctax[orgverthalend] = fldvhallocnum ++; } fldedgeloctax[fldedgelocnum] = fldvhallocend; } } if (orggrafptr->s.veloloctax != NULL) { /* If original graph has vertex loads */ Gnum fldvertlocnum; for (fldvertlocnum = orggrafptr->s.baseval, fldvelolocsum = 0; /* Accumulate load sum of remaining part */ fldvertlocnum < orgvertlocnnd; fldvertlocnum ++) fldvelolocsum += orggrafptr->s.veloloctax[fldvertlocnum]; } commnbr = 0; /* Turn sender-receiver into normal receiver without any communications to perform */ } if (orggrafptr->s.veloloctax != NULL) /* If original graph has vertex loads */ memCpy (fldgrafptr->s.veloloctax + orggrafptr->s.baseval, /* Copy local part of vertex load array */ orggrafptr->s.veloloctax + orggrafptr->s.baseval, orgvertlocnbr * sizeof (Gnum)); if (orggrafptr->s.vnumloctax != NULL) /* If original graph has vertex numbers */ memCpy (fldgrafptr->s.vnumloctax + orggrafptr->s.baseval, /* Copy local part of vertex number array */ orggrafptr->s.vnumloctax + orggrafptr->s.baseval, orgvertlocnbr * sizeof (Gnum)); else { /* Build local part of vertex number array */ Gnum fldvertlocnum; Gnum fldvertlocadj; for (fldvertlocnum = orggrafptr->s.baseval, fldvertlocadj = orgprocvrtbas; fldvertlocnum < orgvertlocnnd; fldvertlocnum ++) fldgrafptr->s.vnumloctax[fldvertlocnum] = fldvertlocadj ++; } memCpy (fldgrafptr->s.vertloctax + orggrafptr->s.baseval, /* Copy local part of vertex arrays, since they are compact */ orggrafptr->s.vertloctax + orggrafptr->s.baseval, orgvertlocnbr * sizeof (Gnum)); /* Last value not copied */ fldgrafptr->s.vertloctax[fldvertlocnbr + orggrafptr->s.baseval] = fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval; memCpy (fldgrafptr->s.vendloctax + orggrafptr->s.baseval, orggrafptr->s.vendloctax + orggrafptr->s.baseval, orgvertlocnbr * sizeof (Gnum)); for (i = 0; i < commnbr; i ++) { int j; if (MPI_Waitany (commnbr, &requtab[HDGRAPHFOLDTAGVERT * commmax], &j, MPI_STATUS_IGNORE) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (14)"); cheklocval = 1; } else { /* Adjust first remote part of vertex array */ Gnum fldvertlocnum; Gnum fldvertlocnnd; Gnum fldvertlocadj; Gnum * restrict const fldvertloctax = fldgrafptr->s.vertloctax; fldvertlocnum = fldvertidxtab[j]; fldvertlocadj = fldedgeidxtab[j] - fldgrafptr->s.vertloctax[fldvertlocnum]; fldvendidxtab[j] = fldvertlocadj; /* Record updated adjust value for vendloctab pass */ for (fldvertlocnnd = fldvertlocnum + fldcommdattab[j].vertnbr; fldvertlocnum < fldvertlocnnd; fldvertlocnum ++) fldvertloctax[fldvertlocnum] += fldvertlocadj; } } for (i = 0; i < commnbr; i ++) { int j; if (MPI_Waitany (commnbr, &requtab[HDGRAPHFOLDTAGVEND * commmax], &j, MPI_STATUS_IGNORE) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (15)"); cheklocval = 1; } else { /* Adjust first remote part of vertex array */ Gnum fldvendlocnum; Gnum fldvendlocnnd; Gnum fldvendlocadj; Gnum * restrict const fldvendloctax = fldgrafptr->s.vendloctax; fldvendlocnum = fldvertidxtab[j]; fldvendlocadj = fldvendidxtab[j]; /* Get updated adjust from above vertloctab pass */ for (fldvendlocnnd = fldvendlocnum + fldcommdattab[j].vertnbr; fldvendlocnum < fldvendlocnnd; fldvendlocnum ++) fldvendloctax[fldvendlocnum] += fldvendlocadj; } } for (i = 0; i < commnbr; i ++) { MPI_Status statdat; int j; if (MPI_Waitany (commnbr, &requtab[HDGRAPHFOLDTAGEDGE * commmax], &j, &statdat) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (16)"); cheklocval = 1; } else if (cheklocval == 0) { /* Adjust remote part(s) of edge array */ Gnum orgvertlocmin; Gnum orgvertlocmax; Gnum fldvertlocnum; Gnum fldvertlocnnd; Gnum fldvertlocadj; Gnum fldvhallocmax; /* Maximum current size of halo vertex array */ int procngbmin; int procngbmax; Gnum * restrict const fldvertloctax = fldgrafptr->s.vertloctax; Gnum * restrict const fldvendloctax = fldgrafptr->s.vendloctax; Gnum * restrict const fldedgeloctax = fldgrafptr->s.edgeloctax; #ifdef SCOTCH_DEBUG_HDGRAPH2 int fldedgercvnbr; MPI_Get_count (&statdat, GNUM_MPI, &fldedgercvnbr); if (fldedgercvnbr != fldedgecnttab[j]) { errorPrint ("hdgraphFold2: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ for (procngbmin = 0, procngbmax = fldvertadjnbr; /* Initialize search accelerator */ procngbmax - procngbmin > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbmin) / 2; if (fldvertadjtab[procngbmed] <= fldcommvrttab[j]) procngbmin = procngbmed; else procngbmax = procngbmed; } orgvertlocmin = fldvertadjtab[procngbmin]; orgvertlocmax = fldvertadjtab[procngbmax]; fldvertlocadj = fldvertdlttab[procngbmin]; fldvhallocmax = orggrafptr->s.baseval - 1; /* Reset halo vertex array for each remote part */ for (fldvertlocnum = fldvertidxtab[j], fldedgelocnum = fldedgeidxtab[j], /* Update received part of edge array */ fldvertlocnnd = fldvertlocnum + fldcommdattab[j].vertnbr; fldvertlocnum < fldvertlocnnd; ) { for ( ; fldedgelocnum < fldvendloctax[fldvertlocnum]; fldedgelocnum ++) { /* Reorder end vertices */ Gnum orgvertlocend; #ifdef SCOTCH_DEBUG_HDGRAPH2 if (fldedgelocnum >= (fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval)) { errorPrint ("hdgraphFold2: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ orgvertlocend = fldedgeloctax[fldedgelocnum]; if ((orgvertlocend >= orgvertlocmin) && /* If end vertex is local */ (orgvertlocend < orgvertlocmax)) fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertlocadj; else { int procngbnum; int procngbmax; for (procngbnum = 0, procngbmax = fldvertadjnbr; procngbmax - procngbnum > 1; ) { int procngbmed; procngbmed = (procngbmax + procngbnum) / 2; if (fldvertadjtab[procngbmed] <= orgvertlocend) procngbnum = procngbmed; else procngbmax = procngbmed; } fldedgeloctax[fldedgelocnum] = orgvertlocend + fldvertdlttab[procngbnum]; } } fldvertlocnum ++; fldehallocnbr += fldvertloctax[fldvertlocnum] - fldedgelocnum; for ( ; fldedgelocnum < fldvertloctax[fldvertlocnum]; fldedgelocnum ++) { /* Renumber halo part */ Gnum orgverthalend; Gnum fldvhallocend; orgverthalend = fldedgeloctax[fldedgelocnum]; #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((orgverthalend < orggrafptr->s.baseval) || (orgverthalend >= (orggrafptr->s.edgeglbsmx + orggrafptr->s.baseval)) || (fldedgelocnum >= (fldgrafptr->s.edgelocsiz + orggrafptr->s.baseval))) { errorPrint ("hdgraphFold2: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ while (fldvhallocmax < orgverthalend) /* Expand halo vertex index array whenever necessary */ fldvhalloctax[++ fldvhallocmax] = ~0; fldvhallocend = fldvhalloctax[orgverthalend]; /* Get renumbered halo vertex */ if (fldvhallocend < 0) { /* If new halo vertex not yet given */ fldvhallocend = /* Allocate it */ fldvhalloctax[orgverthalend] = fldvhallocnum ++; } fldedgeloctax[fldedgelocnum] = fldvhallocend; } } } } if ((fldcommtypval & DGRAPHFOLDCOMMSEND) == 0) { /* If process is a normal receiver, edge arrays may have been oversized */ fldgrafptr->s.edgeloctax = memRealloc (fldgrafptr->s.edgeloctax + orggrafptr->s.baseval, fldgrafptr->s.edgelocsiz * sizeof (Gnum)); fldgrafptr->s.edgeloctax -= orggrafptr->s.baseval; } fldgrafptr->vhallocnbr = fldvhallocnum - orggrafptr->s.baseval; fldgrafptr->vhndloctax = fldgrafptr->s.vertloctax + 1; /* Compact edge array with halo vertices */ fldgrafptr->ehallocnbr = fldehallocnbr; fldgrafptr->levlnum = orggrafptr->levlnum; /* Folded graph is of same level */ fldgrafptr->contptr = orggrafptr->contptr; if (orggrafptr->s.veloloctax == NULL) /* If no vertex loads, reset graph vertex load to number of vertices */ fldvelolocsum = fldvertlocnbr; else { /* Graph has vertex loads and load of local part has already been computed */ for (i = 0; i < commnbr; i ++) { int j; if (MPI_Waitany (commnbr, &requtab[HDGRAPHFOLDTAGVELO * commmax], &j, MPI_STATUS_IGNORE) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (17)"); cheklocval = 1; } else if (cheklocval == 0) { /* Accumulate vertex loads for received vertex load array */ Gnum fldvertlocnum; Gnum fldvertlocnnd; for (fldvertlocnum = fldvertidxtab[j], fldvertlocnnd = fldvertlocnum + fldcommdattab[j].vertnbr; fldvertlocnum < fldvertlocnnd; fldvertlocnum ++) fldvelolocsum += fldgrafptr->s.veloloctax[fldvertlocnum]; } } } fldgrafptr->s.baseval = orggrafptr->s.baseval; fldgrafptr->s.vertlocnbr = fldvertlocnbr; fldgrafptr->s.vertlocnnd = fldvertlocnbr + orggrafptr->s.baseval; fldgrafptr->s.velolocsum = fldvelolocsum; fldgrafptr->s.edgelocnbr = fldgrafptr->s.edgelocsiz - fldehallocnbr; fldgrafptr->s.degrglbmax = orggrafptr->s.degrglbmax; if (dgraphBuild4 (&fldgrafptr->s) != 0) { errorPrint ("hdgraphFold2: cannot build folded graph"); hdgraphExit (fldgrafptr); return (1); } #ifdef SCOTCH_DEBUG_HDGRAPH2 if (hdgraphCheck (fldgrafptr) != 0) { /* Check graph consistency; vnumloctab is not checked so no need to wait for it */ errorPrint ("hdgraphFold2: internal error (9)"); hdgraphExit (fldgrafptr); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ } memFree (fldcommdattab); /* Free group leader */ if (MPI_Waitall (requnbr, requtab, MPI_STATUSES_IGNORE) != MPI_SUCCESS) { /* Wait for all graph data to arrive because graph could be freed afterwards */ errorPrint ("hdgraphFold2: communication error (18)"); cheklocval = 1; } memFree (fldvertidxtab); /* Free group leader including request array */ #ifdef SCOTCH_DEBUG_HDGRAPH1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, orggrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphFold2: communication error (19)"); chekglbval = 1; } #else /* SCOTCH_DEBUG_HDGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_HDGRAPH1 */ return (chekglbval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_fold.h000066400000000000000000000065361514310134000265210ustar00rootroot00000000000000/* Copyright 2007-2009 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_fold.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the distributed source graph **/ /** folding routines. **/ /** **/ /** # Version 5.0 : from : 06 sep 2006 **/ /** to : 06 sep 2006 **/ /** # Version 5.1 : from : 03 jan 2009 **/ /** to : 03 jan 2009 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Slot indices used for point-to-point folding communications. First indices are used for communications without further processing. At the moment, there is one anonymous slot: vnumloctab. */ typedef enum HdgraphFoldTag_ { HDGRAPHFOLDTAGENBR = 1, /*+ Edge size message +*/ HDGRAPHFOLDTAGVERT, /*+ vertloctab message +*/ HDGRAPHFOLDTAGVEND, /*+ vendloctab message +*/ HDGRAPHFOLDTAGVELO, /*+ veloloctab message +*/ HDGRAPHFOLDTAGEDGE, /*+ edgeloctab message +*/ HDGRAPHFOLDTAGNBR /*+ Number of tags +*/ } HdgraphFoldTag; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_gather.c000066400000000000000000000524511514310134000270370ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2018,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_gather.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the routine which **/ /** builds a centralized halo graph by **/ /** gathering the pieces of a distributed **/ /** halo graph. **/ /** **/ /** DATES : # Version 5.0 : from : 19 apr 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 30 jul 2010 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 27 nov 2012 **/ /** to : 23 may 2018 **/ /** # Version 7.0 : from : 04 aug 2018 **/ /** to : 07 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "graph.h" #include "hgraph.h" #include "dgraph.h" #include "hdgraph.h" /******************************/ /* */ /* These routines handle halo */ /* distributed source graphs. */ /* */ /******************************/ /* This function gathers the pieces of ** a distributed halo graph to build a ** centralized halo graph. ** There is no gathered vnumtab array if ** the original graph did not have one, as ** vertices are gathered in global order, or ** else the original vnumloctab is gathered. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int hdgraphGather ( Hdgraph * restrict const dgrfptr, /* Distributed halo graph */ Hgraph * restrict const cgrfptr) /* Centralized halo graph */ { Gnum vertlocnum; Gnum vertlocadj; /* Local vertex array adjust */ Gnum vhallocnnd; int vhallocnbr; /* Local copy for sending as a MPI_INT */ Gnum * restrict verthaltax; Gnum * restrict edgehaltax; Gnum edgehalnum; int ehallocnbr; /* Local copy for sending as a MPI_INT */ int rootnum; /* Index of root process */ Gnum reduloctab[4]; /* Arrays for reductions */ Gnum reduglbtab[4]; int * restrict recvcnttab; /* Arrays for parametrizing gather operations */ int * restrict recvdsptab; int cheklocval; int chekglbval; Gnum degrmax; if (cgrfptr != NULL) { /* If centralized graph provided */ reduloctab[0] = 1; /* This process is the root */ reduloctab[1] = (Gnum) dgrfptr->s.proclocnum; /* Get its rank */ } else { reduloctab[0] = /* This process is not the root */ reduloctab[1] = 0; } reduloctab[2] = dgrfptr->vhallocnbr; reduloctab[3] = dgrfptr->ehallocnbr; if (MPI_Allreduce (reduloctab, reduglbtab, 4, GNUM_MPI, MPI_SUM, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (1)"); return (1); } if (reduglbtab[0] != 1) { errorPrint ("hdgraphGather: should have only one root"); return (1); } rootnum = (int) reduglbtab[1]; /* Get rank of root process */ degrmax = dgrfptr->s.degrglbmax; /* Distributed degree does not account for halo edges */ cheklocval = 0; if (cgrfptr != NULL) { /* If process is root */ Gnum vnohnbr; Gnum vertnbr; Gnum velonbr; Gnum vnumnbr; Gnum * restrict velotax; Gnum * restrict vnumtax; Gnum edgenbr; vnohnbr = dgrfptr->s.vertglbnbr; vertnbr = vnohnbr + reduglbtab[2]; velonbr = (dgrfptr->s.veloloctax != NULL) ? vertnbr : 0; vnumnbr = (dgrfptr->s.vnumloctax != NULL) ? vnohnbr : 0; /* Vertex numbers only serve for non-halo vertices */ edgenbr = dgrfptr->s.edgeglbnbr + 2 * reduglbtab[3]; /* Twice since halo vertices will be created for real */ cgrfptr->s.flagval = GRAPHFREEEDGE | GRAPHEDGEGROUP | GRAPHFREEVERT | GRAPHVERTGROUP; /* In case of premature freeing on error */ recvcnttab = NULL; if (memAllocGroup ((void **) (void *) &cgrfptr->s.verttax, (size_t) ((vertnbr + 1) * sizeof (Gnum)), /* Compact vertex array */ &velotax, (size_t) (velonbr * sizeof (Gnum)), &vnumtax, (size_t) (vnumnbr * sizeof (Gnum)), &cgrfptr->vnhdtax, (size_t) (vnohnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hdgraphGather: out of memory (1)"); cheklocval = 1; } else if (cgrfptr->s.verttax -= dgrfptr->s.baseval, cgrfptr->s.velotax = (dgrfptr->s.veloloctax != NULL) ? velotax - dgrfptr->s.baseval : NULL, cgrfptr->s.vnumtax = (dgrfptr->s.vnumloctax != NULL) ? vnumtax - dgrfptr->s.baseval : NULL, cgrfptr->vnhdtax -= dgrfptr->s.baseval, ((cgrfptr->s.edgetax = (Gnum *) memAlloc (edgenbr * sizeof (Gnum))) == NULL)) { errorPrint ("hdgraphGather: out of memory (2)"); cheklocval = 1; } else if (cgrfptr->s.edgetax -= dgrfptr->s.baseval, memAllocGroup ((void **) (void *) &recvcnttab, (size_t) (dgrfptr->s.procglbnbr * sizeof (int)), &recvdsptab, (size_t) (dgrfptr->s.procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("hdgraphGather: out of memory (3)"); cheklocval = 1; } else { cgrfptr->s.baseval = dgrfptr->s.baseval; cgrfptr->s.vertnbr = vertnbr; cgrfptr->s.vertnnd = vertnbr + dgrfptr->s.baseval; cgrfptr->s.vendtax = cgrfptr->s.verttax + 1; /* Compact edge array */ cgrfptr->s.velosum = dgrfptr->s.veloglbsum + reduglbtab[2]; /* Halo vertices have unity vertex loads */ cgrfptr->s.vlbltax = NULL; cgrfptr->s.edgenbr = edgenbr; cgrfptr->s.edlotax = NULL; cgrfptr->s.edlosum = edgenbr; cgrfptr->vnohnbr = vnohnbr; cgrfptr->vnohnnd = vnohnbr + dgrfptr->s.baseval; cgrfptr->vnlosum = dgrfptr->s.veloglbsum; cgrfptr->enohnbr = cgrfptr->enlosum = dgrfptr->s.edgeglbnbr; cgrfptr->levlnum = dgrfptr->levlnum; cgrfptr->contptr = dgrfptr->contptr; } } if (cheklocval == 0) { if (memAllocGroup ((void **) (void *) &verthaltax, (size_t) (dgrfptr->vhallocnbr * sizeof (Gnum)), &edgehaltax, (size_t) (dgrfptr->ehallocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hdgraphGather: out of memory (4)"); cheklocval = 1; } else { verthaltax -= dgrfptr->s.baseval; edgehaltax -= dgrfptr->s.baseval; } } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_SUM, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (2)"); return (1); } if (chekglbval != 0) { if (verthaltax != NULL) memFree (verthaltax + dgrfptr->s.baseval); if (cgrfptr != NULL) { /* If data were previously allocated */ if (recvcnttab != NULL) memFree (recvcnttab); hgraphExit (cgrfptr); } return (1); } if (dgrfptr->vhndloctax == dgrfptr->s.vertloctax + 1) { /* If distributed halo graph is compact */ Gnum procglbnum; Gnum edgenum; if (cgrfptr != NULL) { Gnum vertnum; cgrfptr->s.verttax[dgrfptr->s.baseval] = dgrfptr->s.baseval; if (commGatherv (dgrfptr->s.vertloctax + 1 + dgrfptr->s.baseval, /* Do not send first index, it is always equal to baseval */ dgrfptr->s.vertlocnbr, GNUM_MPI, cgrfptr->s.verttax + 1, /* First index will always be equal to baseval too, and procdsptab holds based values */ dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (3)"); return (1); } if (commGatherv (dgrfptr->s.vendloctax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GNUM_MPI, cgrfptr->vnhdtax, /* procdsptab holds based values */ dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (4)"); return (1); } for (procglbnum = 1, vertnum = dgrfptr->s.procdsptab[1] + 1; /* Adjust index sub-arrays for all processors except the first one */ procglbnum < dgrfptr->s.procglbnbr; procglbnum ++) { Gnum vertnnd; Gnum edgeadj; for (vertnnd = dgrfptr->s.procdsptab[procglbnum + 1] + 1, edgeadj = cgrfptr->s.verttax[vertnum - 1] - dgrfptr->s.baseval; vertnum < vertnnd; vertnum ++) { cgrfptr->s.verttax[vertnum] += edgeadj; cgrfptr->vnhdtax[vertnum - 1] += edgeadj; } } for (procglbnum = 0, edgenum = dgrfptr->s.baseval; /* Build arrays for MPI_Gatherv on edge arrays */ procglbnum < dgrfptr->s.procglbnbr; procglbnum ++) { recvcnttab[procglbnum] = cgrfptr->s.verttax[dgrfptr->s.procdsptab[procglbnum + 1]] - cgrfptr->s.verttax[dgrfptr->s.procdsptab[procglbnum]]; /* verttax used twice since centralized graph is compact */ recvdsptab[procglbnum] = edgenum; edgenum += recvcnttab[procglbnum]; } if (MPI_Gatherv (dgrfptr->s.edgeloctax + dgrfptr->s.baseval, /* Gather edge arrays with global vertex indices */ (int) (dgrfptr->s.edgelocnbr + dgrfptr->ehallocnbr), GNUM_MPI, cgrfptr->s.edgetax, recvcnttab, recvdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (5)"); return (1); } } else { if (MPI_Gatherv (dgrfptr->s.vertloctax + 1 + dgrfptr->s.baseval, /* Do not send first index, it is always equal to baseval */ (int) dgrfptr->s.vertlocnbr, GNUM_MPI, NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (6)"); return (1); } if (MPI_Gatherv (dgrfptr->s.vendloctax + dgrfptr->s.baseval, (int) dgrfptr->s.vertlocnbr, GNUM_MPI, NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (7)"); return (1); } if (MPI_Gatherv (dgrfptr->s.edgeloctax + dgrfptr->s.baseval, /* Gather edge arrays with global vertex indices */ (int) (dgrfptr->s.edgelocnbr + dgrfptr->ehallocnbr), GNUM_MPI, NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (8)"); return (1); } } } else { errorPrint ("hdgraphGather: Not implemented"); /* Not really necessary as all Hdgraph structures created by Scotch itself are compact */ return (1); } memSet (verthaltax + dgrfptr->s.baseval, 0, dgrfptr->vhallocnbr * sizeof (Gnum)); /* Initialize halo end vertex count array */ for (vertlocnum = dgrfptr->s.baseval; vertlocnum < dgrfptr->s.vertlocnnd; vertlocnum ++) { Gnum edgelocnum; for (edgelocnum = dgrfptr->s.vendloctax[vertlocnum]; edgelocnum < dgrfptr->vhndloctax[vertlocnum]; edgelocnum ++) verthaltax[dgrfptr->s.edgeloctax[edgelocnum]] ++; /* One more edge to this halo vertex */ } vhallocnbr = (int) dgrfptr->vhallocnbr; if (MPI_Gather (&vhallocnbr, 1, MPI_INT, recvcnttab, 1, MPI_INT, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (9)"); return (1); } if (cgrfptr != NULL) { /* Build gather parameter array to receive halo edge counts */ Gnum procglbnum; Gnum vertnum; for (procglbnum = 0, vertnum = 0; procglbnum < dgrfptr->s.procglbnbr; procglbnum ++) { /* Displacements start from zero because adjusted later */ recvdsptab[procglbnum] = vertnum; vertnum += recvcnttab[procglbnum]; } if (MPI_Gatherv (verthaltax + dgrfptr->s.baseval, (int) dgrfptr->vhallocnbr, GNUM_MPI, /* Gather count arrays of halo vertices */ cgrfptr->s.verttax + cgrfptr->vnohnnd + 1, recvcnttab, recvdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (10)"); return (1); } for (procglbnum = 0, vertnum = dgrfptr->s.baseval; /* Adjust end vertex indices for halo edges */ procglbnum < dgrfptr->s.procglbnbr; procglbnum ++) { Gnum vertnnd; Gnum vertadj; for (vertnnd = dgrfptr->s.procdsptab[procglbnum + 1], vertadj = cgrfptr->vnohnbr + recvdsptab[procglbnum]; vertnum < vertnnd; vertnum ++) { Gnum edgenum; if (degrmax < (cgrfptr->s.vendtax[vertnum] - cgrfptr->s.verttax[vertnum])) /* Account for halo edges in maximum degree */ degrmax = (cgrfptr->s.vendtax[vertnum] - cgrfptr->s.verttax[vertnum]); for (edgenum = cgrfptr->vnhdtax[vertnum]; edgenum < cgrfptr->s.vendtax[vertnum]; edgenum ++) cgrfptr->s.edgetax[edgenum] += vertadj; } } } else { if (MPI_Gatherv (verthaltax + dgrfptr->s.baseval, (int) dgrfptr->vhallocnbr, GNUM_MPI, /* Gather count arrays of halo vertices */ NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (11)"); return (1); } } for (vertlocnum = edgehalnum = dgrfptr->s.baseval, vhallocnnd = dgrfptr->vhallocnbr + dgrfptr->s.baseval; vertlocnum < vhallocnnd; vertlocnum ++) { /* Prepare index array for edge collection */ Gnum degrlocval; degrlocval = verthaltax[vertlocnum]; verthaltax[vertlocnum] = edgehalnum; edgehalnum += degrlocval; } vertlocadj = dgrfptr->s.procdsptab[dgrfptr->s.proclocnum] - dgrfptr->s.baseval; for (vertlocnum = dgrfptr->s.baseval; vertlocnum < dgrfptr->s.vertlocnnd; vertlocnum ++) { /* Collect halo edge ends */ Gnum edgelocnum; for (edgelocnum = dgrfptr->s.vendloctax[vertlocnum]; edgelocnum < dgrfptr->vhndloctax[vertlocnum]; edgelocnum ++) edgehaltax[verthaltax[dgrfptr->s.edgeloctax[edgelocnum]] ++] = vertlocnum + vertlocadj; } ehallocnbr = (int) dgrfptr->ehallocnbr; if (MPI_Gather (&ehallocnbr, 1, MPI_INT, recvcnttab, 1, MPI_INT, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { /* Gather halo edge counts */ errorPrint ("hdgraphGather: communication error (12)"); return (1); } if (cgrfptr != NULL) { /* Compute receive arrays for edge sub-arrays of halo vertices */ Gnum procglbnum; Gnum edgeadj; for (procglbnum = 0, edgeadj = 0; procglbnum < dgrfptr->s.procglbnbr; procglbnum ++) { recvdsptab[procglbnum] = edgeadj; edgeadj += recvcnttab[procglbnum]; } if (MPI_Gatherv (edgehaltax + dgrfptr->s.baseval, (int) dgrfptr->ehallocnbr, GNUM_MPI, /* Gather edge arrays of halo vertices */ cgrfptr->s.edgetax + cgrfptr->enohnbr + reduglbtab[3] + dgrfptr->s.baseval, recvcnttab, recvdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (13)"); return (1); } } else { if (MPI_Gatherv (edgehaltax + dgrfptr->s.baseval, (int) dgrfptr->ehallocnbr, GNUM_MPI, /* Gather edge arrays of halo vertices */ NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (14)"); return (1); } } memFree (verthaltax + dgrfptr->s.baseval); /* Free group leader */ if (cgrfptr != NULL) { /* Finalize vertex and edge arrays of centralized graph */ Gnum vertnum; Gnum edgeadj; if (dgrfptr->s.veloloctax != NULL) { /* Get vertex loads if any */ if (commGatherv (dgrfptr->s.veloloctax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GNUM_MPI, cgrfptr->s.velotax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (15)"); return (1); } for (vertnum = cgrfptr->vnohnnd; vertnum < cgrfptr->s.vertnnd; vertnum ++) /* complete filling of vertex load array */ cgrfptr->s.velotax[vertnum] = 1; } if (dgrfptr->s.vnumloctax != NULL) { /* Get vertex numbers if any */ if (commGatherv (dgrfptr->s.vnumloctax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GNUM_MPI, cgrfptr->s.vnumtax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (16)"); return (1); } } memFree (recvcnttab); /* Free group leader */ for (vertnum = cgrfptr->vnohnnd + 1, edgeadj = cgrfptr->s.verttax[cgrfptr->vnohnnd]; /* Adjust vertex array for halo vertices */ vertnum <= cgrfptr->s.vertnnd; vertnum ++) { Gnum degrval; degrval = cgrfptr->s.verttax[vertnum]; if (degrmax < degrval) /* Account for halo edges in maximum degree */ degrmax = degrval; edgeadj += degrval; cgrfptr->s.verttax[vertnum] = edgeadj; } cgrfptr->s.degrmax = degrmax; } else { if (dgrfptr->s.veloloctax != NULL) { /* Get vertex loads if any */ if (MPI_Gatherv (dgrfptr->s.veloloctax + dgrfptr->s.baseval, (int) dgrfptr->s.vertlocnbr, GNUM_MPI, NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (17)"); return (1); } } if (dgrfptr->s.vnumloctax != NULL) { /* Get vertex numbers if any */ if (MPI_Gatherv (dgrfptr->s.vnumloctax + dgrfptr->s.baseval, (int) dgrfptr->s.vertlocnbr, GNUM_MPI, NULL, NULL, NULL, GNUM_MPI, rootnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (18)"); return (1); } } } #ifdef SCOTCH_DEBUG_HDGRAPH2 cheklocval = (cgrfptr != NULL) ? hgraphCheck (cgrfptr) : 0; if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphGather: communication error (19)"); return (1); } if (chekglbval != 0) { errorPrint ("hdgraphGather: internal error"); if (cgrfptr != NULL) hgraphExit (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_induce.c000066400000000000000000000440621514310134000270330ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the halo source **/ /** graph subgraph-making functions. **/ /** **/ /** DATES : # Version 5.0 : from : 19 apr 2006 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 27 jun 2008 **/ /** to : 22 oct 2010 **/ /** # Version 7.0 : from : 28 aug 2019 **/ /** to : 29 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "hdgraph.h" /******************************/ /* */ /* These routines handle halo */ /* distributed source graphs. */ /* */ /******************************/ /* This routine builds the graph induced ** by the original graph and the list of ** selected vertices. ** The induced vnumtab array is the global ** translation of the list array if the ** original graph does not have a vnumtab, ** or the proper subset of the original ** vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hdgraphInduceList ( Hdgraph * restrict const orggrafptr, const Gnum indlistnbr, const Gnum * restrict const indlisttab, /* Local list of kept vertices */ Hdgraph * restrict const indgrafptr) { const Gnum * restrict orgvertloctax; const Gnum * restrict orgvendloctax; const Gnum * restrict orgveloloctax; const Gnum * restrict orgedgegsttax; const Gnum * restrict orgedgeloctax; Gnum * restrict orgindxgsttax; /* Based access to vertex translation array */ Gnum * restrict orgindxhaltax; /* Based access to halo vertex translation array */ Gnum * restrict indvertloctax; Gnum * restrict indveloloctax; Gnum indvertlocnnd; /* Based index of end of local vertex array */ Gnum indvertlocnum; /* Number of current vertex in induced graph */ Gnum indvertglbnum; /* Number of current vertex in global ordering */ Gnum * restrict indvendloctax; Gnum indvelolocnbr; /* Size of local vertex load array */ Gnum indvelolocsum; /* Sum of vertex loads */ Gnum indvhallocnum; /* Number of halo vertex to be declared */ Gnum * restrict indedgeloctax; Gnum indedgelocmax; /* (Approximate) number of edges in induced graph */ Gnum indedgelocsiz; /* Real size of edge array, including halo */ Gnum indedgelocnbr; /* Real number of edges in induced graph */ Gnum indedgelocnum; Gnum inddegrlocmax; /* Local maximum degree over non-halo vertices */ const Gnum * restrict indlisttax; /* Based access to list of kept vertices */ int cheklocval; int chekglbval; if (dgraphGhst (&orggrafptr->s) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("hdgraphInduceList: cannot compute ghost edge array"); return (1); } memSet (indgrafptr, 0, sizeof (Hdgraph)); /* Pre-initialize graph fields */ indgrafptr->s.proccomm = orggrafptr->s.proccomm; indgrafptr->s.procglbnbr = orggrafptr->s.procglbnbr; indgrafptr->s.proclocnum = orggrafptr->s.proclocnum; indgrafptr->s.flagval = (DGRAPHFREEALL ^ DGRAPHFREECOMM) | DGRAPHVERTGROUP | DGRAPHEDGEGROUP | DGRAPHHASVENDLOC; /* For premature freeing on error; do not free vhndloctab as it is grouped with vertloctab */ if (orggrafptr->s.veloloctax != NULL) { indvelolocnbr = indlistnbr; indvelolocsum = 0; } else { indvelolocnbr = 0; indvelolocsum = indlistnbr; } indedgelocmax = orggrafptr->s.edgelocnbr; /* Choose best upper bound on number of edges (avoid multiply overflow) */ if ((orggrafptr->s.degrglbmax > 0) && (indlistnbr < (indedgelocmax / orggrafptr->s.degrglbmax))) indedgelocmax = indlistnbr * orggrafptr->s.degrglbmax; indedgelocmax += orggrafptr->ehallocnbr; cheklocval = chekglbval = 0; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &indgrafptr->s.procdsptab, (size_t) ((orggrafptr->s.procglbnbr + 1) * sizeof (Gnum)), &indgrafptr->s.proccnttab, (size_t) (orggrafptr->s.procglbnbr * sizeof (Gnum)), &indgrafptr->s.procngbtab, (size_t) (orggrafptr->s.procglbnbr * sizeof (int)), &indgrafptr->s.procrcvtab, (size_t) (orggrafptr->s.procglbnbr * sizeof (int)), &indgrafptr->s.procsndtab, (size_t) (orggrafptr->s.procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("hdgraphInduceList: out of memory (1)"); cheklocval = 1; } else if (memAllocGroup ((void **) (void *) /* Allocate distributed graph public data */ &indgrafptr->s.vertloctax, (size_t) ((indlistnbr + 1) * sizeof (Gnum)), /* Compact vertex arrays */ &indgrafptr->s.vendloctax, (size_t) (indlistnbr * sizeof (Gnum)), /* Vertex end array for non-halo vertices */ &indgrafptr->s.vnumloctax, (size_t) (indlistnbr * sizeof (Gnum)), &indgrafptr->s.veloloctax, (size_t) (indvelolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hdgraphInduceList: out of memory (2)"); cheklocval = 1; } else if (indgrafptr->s.vertloctax -= orggrafptr->s.baseval, indgrafptr->s.vendloctax -= orggrafptr->s.baseval, indgrafptr->s.vnumloctax -= orggrafptr->s.baseval, indgrafptr->s.veloloctax = ((orggrafptr->s.veloloctax != NULL) ? indgrafptr->s.veloloctax - orggrafptr->s.baseval : NULL), memAllocGroup ((void **) (void *) &indgrafptr->s.edgeloctax, (size_t) (indedgelocmax * sizeof (Gnum)), /* Pre-allocate space for edgeloctab */ &orgindxgsttax, (size_t) (orggrafptr->s.vertgstnbr * sizeof (Gnum)), /* orgindxgsttab and orgindxhaltab are at the end */ &orgindxhaltax, (size_t) (orggrafptr->vhallocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hdgraphInduceList: out of memory (3)"); cheklocval = 1; } else indgrafptr->s.edgeloctax -= orggrafptr->s.baseval; if (cheklocval != 0) { /* In case of memory error */ Gnum procngbnum; Gnum dummyval; dummyval = -1; chekglbval = 1; if (MPI_Allgather (&dummyval, 1, GNUM_MPI, /* Use proccnttab of orggraf as dummy receive array (will be regenerated) */ orggrafptr->s.proccnttab, 1, GNUM_MPI, indgrafptr->s.proccomm) != MPI_SUCCESS) errorPrint ("hdgraphInduceList: communication error (1)"); for (procngbnum = 1; procngbnum <= orggrafptr->s.procglbnbr; procngbnum ++) /* Rebuild proccnttab of orggraf */ orggrafptr->s.proccnttab[procngbnum - 1] = orggrafptr->s.procdsptab[procngbnum] - orggrafptr->s.procdsptab[procngbnum - 1]; } else { indgrafptr->s.procvrttab = indgrafptr->s.procdsptab; /* Graph does not have holes */ indgrafptr->s.procdsptab[0] = indlistnbr; if (MPI_Allgather (&indgrafptr->s.procdsptab[0], 1, GNUM_MPI, &indgrafptr->s.proccnttab[0], 1, GNUM_MPI, indgrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphInduceList: communication error (2)"); chekglbval = 1; } else { Gnum procngbnum; indgrafptr->s.procdsptab[0] = orggrafptr->s.baseval; /* Build vertex-to-process array */ for (procngbnum = 0; procngbnum < indgrafptr->s.procglbnbr; procngbnum ++) { /* Process potential error flags from other processes */ if (indgrafptr->s.proccnttab[procngbnum] < 0) { /* If error notified by another process */ chekglbval = 1; break; } indgrafptr->s.procdsptab[procngbnum + 1] = indgrafptr->s.procdsptab[procngbnum] + indgrafptr->s.proccnttab[procngbnum]; } } } if (chekglbval != 0) { /* If something went wrong in all of the above */ hdgraphExit (indgrafptr); return (1); } memSet (orgindxgsttax, ~0, orggrafptr->s.vertgstnbr * sizeof (Gnum)); /* Preset index arrays */ orgindxgsttax -= orggrafptr->s.baseval; memSet (orgindxhaltax, ~0, orggrafptr->vhallocnbr * sizeof (Gnum)); orgindxhaltax -= orggrafptr->s.baseval; indlisttax = indlisttab - orggrafptr->s.baseval; indvertlocnnd = indlistnbr + orggrafptr->s.baseval; for (indvertlocnum = orggrafptr->s.baseval, indvertglbnum = indgrafptr->s.procdsptab[indgrafptr->s.proclocnum]; /* Set adjustment for global ordering */ indvertlocnum < indvertlocnnd; indvertlocnum ++, indvertglbnum ++) orgindxgsttax[indlisttax[indvertlocnum]] = indvertglbnum; /* Mark selected vertices */ if (dgraphHaloSync (&orggrafptr->s, (byte *) (orgindxgsttax + orggrafptr->s.baseval), GNUM_MPI) != 0) { /* Share global indexing of subgraph vertices */ errorPrint ("hdgraphInduceList: cannot perform halo exchange"); hdgraphExit (indgrafptr); return (1); } orgvertloctax = orggrafptr->s.vertloctax; orgvendloctax = orggrafptr->s.vendloctax; orgveloloctax = orggrafptr->s.veloloctax; orgedgegsttax = orggrafptr->s.edgegsttax; orgedgeloctax = orggrafptr->s.edgeloctax; indvertloctax = indgrafptr->s.vertloctax; indvendloctax = indgrafptr->s.vendloctax; indveloloctax = indgrafptr->s.veloloctax; indedgeloctax = indgrafptr->s.edgeloctax; inddegrlocmax = 0; for (indvertlocnum = indedgelocnum = indvhallocnum = orggrafptr->s.baseval, indedgelocnbr = 0; indvertlocnum < indvertlocnnd; indvertlocnum ++) { Gnum orgvertlocnum; Gnum orgedgelocnum; Gnum orgdegrlocval; Gnum inddegrlocval; Gnum indedgelocnnd; orgvertlocnum = indlisttax[indvertlocnum]; orgdegrlocval = orgvendloctax[orgvertlocnum] - orgvertloctax[orgvertlocnum]; indvertloctax[indvertlocnum] = indedgelocnum; if (orgveloloctax != NULL) { /* If graph has vertex weights */ indvelolocsum += /* Accumulate vertex loads */ indveloloctax[indvertlocnum] = orgveloloctax[orgvertlocnum]; } indedgelocnnd = indedgelocnum + orgdegrlocval; #ifdef SCOTCH_DEBUG_HDGRAPH2 if (indedgelocnnd > (indedgelocmax + orggrafptr->s.baseval)) { errorPrint ("hdgraphInduceList: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ for (orgedgelocnum = orgvertloctax[orgvertlocnum]; /* Process local and ghost non-halo vertices */ orgedgelocnum < orgvendloctax[orgvertlocnum]; orgedgelocnum ++) { Gnum orgvertlocend; Gnum indvertgstend; orgvertlocend = orgedgegsttax[orgedgelocnum]; #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((orgvertlocend < orggrafptr->s.baseval) || (orgvertlocend > orggrafptr->s.vertgstnnd)) { errorPrint ("hdgraphInduceList: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ indvertgstend = orgindxgsttax[orgvertlocend]; if (indvertgstend >= 0) /* If edge is local or halo */ indedgeloctax[indedgelocnum ++] = indvertgstend; /* Keep it as regular edge */ else { /* If edge is halo edge */ if (indvertgstend == ~0) /* If halo vertex not assigned yet */ orgindxgsttax[orgvertlocend] = indvertgstend = -2 - indvhallocnum ++; /* Set new halo number */ indedgeloctax[-- indedgelocnnd] = -2 - indvertgstend; } } #ifdef SCOTCH_DEBUG_HDGRAPH2 if (indedgelocnnd != indedgelocnum) { errorPrint ("hdgraphInduceList: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ indvendloctax[indvertlocnum] = indedgelocnum; inddegrlocval = indedgelocnum - indvertloctax[indvertlocnum]; indedgelocnbr += inddegrlocval; if (inddegrlocmax < inddegrlocval) inddegrlocmax = inddegrlocval; for (indedgelocnum = indvertloctax[indvertlocnum] + orgdegrlocval; /* Process local halo vertices */ orgedgelocnum < orggrafptr->vhndloctax[orgvertlocnum]; orgedgelocnum ++) { Gnum orgvhallocend; Gnum indvhallocend; orgvhallocend = orgedgeloctax[orgedgelocnum]; /* Halo vertices only exist in the edgeloctab array */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((orgvhallocend < orggrafptr->s.baseval) || (orgvhallocend >= (orggrafptr->vhallocnbr + orggrafptr->s.baseval))) { errorPrint ("hdgraphInduceList: inconsistent halo vertex numbers"); hdgraphExit (indgrafptr); return (1); } if (indedgelocnum >= (indedgelocmax + orggrafptr->s.baseval)) { errorPrint ("hdgraphInduceList: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ indvhallocend = orgindxhaltax[orgvhallocend]; if (indvhallocend == ~0) /* If halo vertex not assigned yet */ orgindxhaltax[orgvhallocend] = indvhallocend = indvhallocnum ++; /* Set new halo number */ indgrafptr->s.edgeloctax[indedgelocnum ++] = indvhallocend; } } indvertloctax[indvertlocnum] = indedgelocnum; /* Mark end of edge array for vhndloctax */ indedgelocsiz = indedgelocnum - orggrafptr->s.baseval; /* Global number of edges, both non-halo and halo */ indgrafptr->s.edgeloctax = memRealloc (indgrafptr->s.edgeloctax + orggrafptr->s.baseval, (size_t) (indedgelocsiz * sizeof (Gnum))); indgrafptr->s.edgeloctax -= orggrafptr->s.baseval; if (orggrafptr->s.vnumloctax != NULL) { /* Adjust vnumloctax */ for (indvertlocnum = orggrafptr->s.baseval; indvertlocnum < indvertlocnnd; indvertlocnum ++) indgrafptr->s.vnumloctax[indvertlocnum] = orggrafptr->s.vnumloctax[indlisttax[indvertlocnum]]; } else { Gnum orgvertglbadj; orgvertglbadj = orggrafptr->s.procvrttab[orggrafptr->s.proclocnum] - orggrafptr->s.baseval; /* Set adjustement for global ordering */ for (indvertlocnum = orggrafptr->s.baseval; indvertlocnum < indvertlocnnd; indvertlocnum ++) indgrafptr->s.vnumloctax[indvertlocnum] = indlisttax[indvertlocnum] + orgvertglbadj; } indgrafptr->vhallocnbr = indvhallocnum - orggrafptr->s.baseval; indgrafptr->vhndloctax = indgrafptr->s.vertloctax + 1; /* Compact edge array with halo vertices */ indgrafptr->ehallocnbr = indedgelocsiz - indedgelocnbr; /* Get number of halo edges by difference */ indgrafptr->levlnum = orggrafptr->levlnum + 1; /* Induced subgraph is one level below */ indgrafptr->contptr = orggrafptr->contptr; indgrafptr->s.baseval = orggrafptr->s.baseval; indgrafptr->s.vertlocnbr = indlistnbr; indgrafptr->s.vertlocnnd = indlistnbr + orggrafptr->s.baseval; indgrafptr->s.velolocsum = indvelolocsum; indgrafptr->s.edgelocnbr = indedgelocnbr; indgrafptr->s.edgelocsiz = indedgelocsiz; indgrafptr->s.degrglbmax = orggrafptr->s.degrglbmax; if (dgraphBuild4 (&indgrafptr->s) != 0) { errorPrint ("hdgraphInduceList: cannot build induced graph"); return (1); } #ifdef SCOTCH_DEBUG_HDGRAPH2 if (hdgraphCheck (indgrafptr) != 0) { /* Check graph consistency */ errorPrint ("hdgraphInduceList: internal error (5)"); hdgraphExit (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_nd.c000066400000000000000000000513061514310134000273570ustar00rootroot00000000000000/* Copyright 2007,2008,2012,2019,2022,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_nd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders distributed graphs **/ /** using the nested dissection algorithm. **/ /** **/ /** DATES : # Version 5.0 : from : 16 apr 2006 **/ /** to : 01 mar 2008 **/ /** # Version 5.1 : from : 27 sep 2008 **/ /** to : 11 nov 2008 **/ /** # Version 6.0 : from : 12 sep 2012 **/ /** to : 01 may 2019 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 03 jul 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HDGRAPH_ORDER_ND #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_st.h" #include "dgraph.h" #include "dorder.h" #include "hdgraph.h" #include "hdgraph_order_nd.h" #include "hdgraph_order_sq.h" #include "hdgraph_order_st.h" #include "vdgraph.h" #include "vdgraph_separate_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine builds either a centralized or a ** distributed subgraph, according to the number ** of processes in the given part. The calling ** conventions of this routine have been designed ** so as to allow for multi-threading. */ static int hdgraphOrderNdFold2 ( HdgraphOrderNdData * const fldthrdptr) /* Pointer to thread data */ { HdgraphOrderNdGraph * restrict fldgrafptr; /* Pointer to folded graph area */ Hdgraph indgrafdat; /* Induced distributed halo graph */ int o; fldgrafptr = fldthrdptr->fldgrafptr; if (hdgraphInduceList (fldthrdptr->orggrafptr, fldthrdptr->indlistnbr, /* Compute unfinished induced subgraph on all processes */ fldthrdptr->indlisttab, &indgrafdat) != 0) return (1); o = 0; if (fldthrdptr->fldprocnbr > 1) { /* If subpart has several processes, fold a distributed graph */ if (hdgraphFold2 (&indgrafdat, fldthrdptr->fldpartval, /* Fold temporary induced subgraph from all processes */ &fldgrafptr->data.dgrfdat, fldthrdptr->fldproccomm) != 0) o = 1; } else { /* Create a centralized graph */ Hgraph * restrict fldcgrfptr; fldcgrfptr = (fldthrdptr->fldprocnum == 0) ? &fldgrafptr->data.cgrfdat : NULL; /* See if we are the receiver */ if (hdgraphGather (&indgrafdat, fldcgrfptr) != 0) /* Gather centralized subgraph from all other processes */ o = 1; } hdgraphExit (&indgrafdat); /* Free temporary induced graph */ return (o); } #ifdef SCOTCH_PTHREAD_MPI static void hdgraphOrderNdFold3 ( ThreadDescriptor * restrict const descptr, HdgraphOrderNdData * restrict const fldthrdtab) { const int thrdnum = threadNum (descptr); if (thrdnum < 2) { if (hdgraphOrderNdFold2 (&fldthrdtab[thrdnum]) != 0) fldthrdtab[thrdnum].orggrafptr = NULL; /* Indicate an error */ } } #endif /* SCOTCH_PTHREAD_MPI */ static int hdgraphOrderNdFold ( Hdgraph * restrict const orggrafptr, const Gnum indlistnbr0, /* Number of vertices in subgraph 0 */ const Gnum * restrict const indlisttab0, /* List of vertices in subgraph 0 */ const Gnum indlistnbr1, /* Number of vertices in subgraph 1 */ const Gnum * restrict const indlisttab1, /* List of vertices in subgraph 1 */ HdgraphOrderNdGraph * restrict const fldgrafptr) { #ifdef SCOTCH_PTHREAD_MPI int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ HdgraphOrderNdData fldthrdtab[2]; MPI_Comm fldproccomm; int fldprocnbr; int fldprocnum; int fldproccol; int fldpartval; int o; #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((orggrafptr->s.flagval & DGRAPHHASEDGEGST) == 0) { /* Ghost edge array must have been already computed */ errorPrint ("hdgraphOrderNdFold: internal error"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ fldprocnbr = (orggrafptr->s.procglbnbr + 1) / 2; /* Median cut on number of processors */ fldthrdtab[0].fldprocnbr = fldprocnbr; fldthrdtab[1].fldprocnbr = orggrafptr->s.procglbnbr - fldprocnbr; if (orggrafptr->s.proclocnum < fldprocnbr) { /* Compute color and rank in two subparts */ fldpartval = 0; fldprocnum = orggrafptr->s.proclocnum; fldthrdtab[0].fldprocnum = fldprocnum; fldthrdtab[1].fldprocnum = -1; fldthrdtab[1].fldproccomm = MPI_COMM_NULL; } else { fldpartval = 1; fldprocnum = orggrafptr->s.proclocnum - fldprocnbr; fldprocnbr = orggrafptr->s.procglbnbr - fldprocnbr; fldthrdtab[0].fldproccomm = MPI_COMM_NULL; fldthrdtab[0].fldprocnum = -1; fldthrdtab[1].fldprocnum = fldprocnum; } fldgrafptr->typeval = HDGRAPHORDERNDTYPEDIST; /* Assume we belong to a distributed subpart */ fldproccol = fldpartval; /* Split color is the part value */ if (fldprocnbr <= 1) { /* If our part will have only one processor */ fldproccol = MPI_UNDEFINED; /* Do not create any sub-communicator for it */ fldgrafptr->typeval = HDGRAPHORDERNDTYPECENT; /* We will host a centralized subgraph */ } if (MPI_Comm_split (orggrafptr->s.proccomm, fldproccol, fldprocnum, &fldproccomm) != MPI_SUCCESS) { errorPrint ("hdgraphOrderNdFold: communication error (1)"); return (1); } fldthrdtab[fldpartval].fldproccomm = fldproccomm; /* Assign folded communicator to proper part */ fldthrdtab[0].orggrafptr = orggrafptr; /* Load data to pass to the subgraph building routines */ fldthrdtab[0].indlistnbr = indlistnbr0; fldthrdtab[0].indlisttab = indlisttab0; fldthrdtab[0].fldgrafptr = fldgrafptr; fldthrdtab[0].fldpartval = 0; fldthrdtab[1].indlistnbr = indlistnbr1; fldthrdtab[1].indlisttab = indlisttab1; fldthrdtab[1].fldgrafptr = fldgrafptr; fldthrdtab[1].fldpartval = 1; #ifdef SCOTCH_PTHREAD_MPI MPI_Query_thread (&thrdprolvl); /* Get thread level of MPI implementation */ if ((thrdprolvl >= MPI_THREAD_MULTIPLE) && /* If we can use multiple threads */ (contextThreadNbr (orggrafptr->contptr) > 1)) { /* And there is a need to */ Hdgraph orggrafdat; /* Structure for copying graph fields except communicator */ orggrafdat = *orggrafptr; /* Create a separate graph structure to change its communicator */ fldthrdtab[1].orggrafptr = &orggrafdat; if (MPI_Comm_dup (orggrafptr->s.proccomm, &orggrafdat.s.proccomm) != MPI_SUCCESS) { /* Duplicate communicator to avoid interferences in communications */ errorPrint ("hdgraphOrderNdFold: communication error (2)"); return (1); } contextThreadLaunch (orggrafptr->contptr, (ThreadFunc) hdgraphOrderNdFold3, (void *) fldthrdtab); /* Only threads 0 and 1 will work */ MPI_Comm_free (&orggrafdat.s.proccomm); o = ((fldthrdtab[0].orggrafptr == NULL) || /* See if an error occured */ (fldthrdtab[1].orggrafptr == NULL)); } else #endif /* SCOTCH_PTHREAD_MPI */ { fldthrdtab[1].orggrafptr = orggrafptr; o = hdgraphOrderNdFold2 (&fldthrdtab[0]) || /* Perform inductions in sequence */ hdgraphOrderNdFold2 (&fldthrdtab[1]); } return (o); } /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hdgraphOrderNd2 ( Hdgraph * restrict const grafptr, DorderCblk * restrict const cblkptr, const HdgraphOrderNdParam * restrict const paraptr) { Vdgraph vspgrafdat; /* Vertex separation graph data */ Gnum vspvertlocnum; /* Current vertex in separation graph */ Gnum * restrict vspvnumtab[2]; /* Lists of separated parts */ Gnum * restrict vspvnumptr0; Gnum * restrict vspvnumptr1; Gnum ordeglbval; Gnum vnodglbnbr; Gnum cblkfthnum; HdgraphOrderNdGraph indgrafdat01; /* Induced folded graph area */ DorderCblk * cblkptr01; int partmax; /* Induced part having most vertices */ int procnbr0; /* Number of processes in first part */ int cheklocval; int chekglbval; int o; #ifdef SCOTCH_DEBUG_HDGRAPH2 if (cblkptr->vnodglbnbr != grafptr->s.vertglbnbr) { errorPrint ("hdgraphOrderNd2: inconsistent parameters"); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ if (grafptr->s.procglbnbr == 1) { /* If we are running on a single process */ HdgraphOrderSqParam paradat; paradat.ordstratseq = paraptr->ordstratseq; o = hdgraphOrderSq (grafptr, cblkptr, ¶dat); /* Run sequentially */ hdgraphExit (grafptr); /* Free graph at this level */ return (o); } if (dgraphGhst (&grafptr->s) != 0) { /* Compute ghost edge array if not already present, to have vertgstnbr and procsidtab */ errorPrint ("hdgraphOrderNd2: cannot compute ghost edge array"); hdgraphExit (grafptr); /* Free graph at this level */ return (1); } vspgrafdat.s = grafptr->s; /* Get non-halo part of halo distributed graph */ vspgrafdat.s.flagval &= ~DGRAPHFREEALL; /* Do not free contents of separation graph */ vspgrafdat.s.vlblloctax = NULL; /* Never mind about vertex labels in the future */ cheklocval = 0; if ((vspgrafdat.fronloctab = (Gnum *) memAlloc (vspgrafdat.s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("hdgraphOrderNd2: out of memory (1)"); vspgrafdat.partgsttax = NULL; cheklocval = 1; } else if ((vspgrafdat.partgsttax = (GraphPart *) memAlloc (vspgrafdat.s.vertgstnbr * sizeof (GraphPart))) == NULL) { errorPrint ("hdgraphOrderNd2: out of memory (2)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_HDGRAPH1 /* Communication cannot be merged with a useful one */ if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("hdgraphOrderNd2: communication error (1)"); goto abort; } #else /* SCOTCH_DEBUG_HDGRAPH1 */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_HDGRAPH1 */ if (chekglbval != 0) goto abort; vspgrafdat.partgsttax -= vspgrafdat.s.baseval; vspgrafdat.levlnum = grafptr->levlnum; /* Set level of separation graph as level of halo graph */ vspgrafdat.contptr = grafptr->contptr; vdgraphZero (&vspgrafdat); /* Set all local vertices to part 0 */ if (vdgraphSeparateSt (&vspgrafdat, paraptr->sepstrat) != 0) /* Separate vertex-separation graph */ goto abort; if ((vspgrafdat.compglbsize[0] == 0) || /* If could not separate more */ (vspgrafdat.compglbsize[1] == 0)) { memFree (vspgrafdat.partgsttax + vspgrafdat.s.baseval); /* Free useless space */ memFree (vspgrafdat.fronloctab); hdgraphOrderSt (grafptr, cblkptr, paraptr->ordstratlea); /* Order this leaf */ hdgraphExit (grafptr); /* Free graph at this level */ return (0); /* Leaf has been processed */ } vspvnumtab[0] = vspgrafdat.fronloctab + vspgrafdat.complocsize[2]; /* TRICK: build vertex lists within frontier array */ vspvnumtab[1] = vspvnumtab[0] + vspgrafdat.complocsize[0]; vspvnumptr0 = vspvnumtab[0]; vspvnumptr1 = vspvnumtab[1]; for (vspvertlocnum = vspgrafdat.s.baseval; vspvertlocnum < vspgrafdat.s.vertlocnnd; vspvertlocnum ++) { /* Fill lists */ GraphPart partval; partval = vspgrafdat.partgsttax[vspvertlocnum]; if (partval == 0) *(vspvnumptr0 ++) = vspvertlocnum; else if (partval == 1) *(vspvnumptr1 ++) = vspvertlocnum; } memFree (vspgrafdat.partgsttax + vspgrafdat.s.baseval); /* Free useless space */ vspgrafdat.partgsttax = NULL; /* Will not be freed again */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((vspvnumptr0 != vspvnumtab[0] + vspgrafdat.complocsize[0]) || (vspvnumptr1 != vspvnumtab[1] + vspgrafdat.complocsize[1])) { errorPrint ("hdgraphOrderNd2: internal error (1)"); goto abort; } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ cblkptr->typeval = DORDERCBLKNEDI; /* Node becomes a nested dissection node */ if (vspgrafdat.compglbsize[2] != 0) { /* If separator not empty */ DorderCblk * cblkptr2; Hdgraph indgrafdat2; cblkptr2 = dorderNew (cblkptr, grafptr->s.proccomm); /* Create separator node */ cblkptr2->ordeglbval = cblkptr->ordeglbval + grafptr->s.vertglbnbr - vspgrafdat.compglbsize[2]; cblkptr2->vnodglbnbr = vspgrafdat.compglbsize[2]; cblkptr2->cblkfthnum = 2; cblkptr->data.nedi.cblkglbnbr = 3; /* It is a three-cell node */ dgraphInit (&indgrafdat2.s, grafptr->s.proccomm); /* Re-use original graph communicator */ if (dgraphInduceList (&grafptr->s, vspgrafdat.complocsize[2], /* Perform non-halo induction for separator, as it will get highest numbers */ vspgrafdat.fronloctab, &indgrafdat2.s) != 0) { errorPrint ("hdgraphOrderNd2: cannot build induced subgraph (1)"); goto abort; } indgrafdat2.vhallocnbr = 0; /* No halo on graph */ indgrafdat2.vhndloctax = indgrafdat2.s.vendloctax; indgrafdat2.ehallocnbr = 0; indgrafdat2.levlnum = 0; /* Separator graph is at level zero not to be suppressed as an intermediate graph */ indgrafdat2.contptr = grafptr->contptr; o = hdgraphOrderSt (&indgrafdat2, cblkptr2, paraptr->ordstratsep); hdgraphExit (&indgrafdat2); dorderDispose (cblkptr2); /* Dispose of separator column block (may be kept as leaf) */ if (o != 0) goto abort; } else /* Separator is empty */ cblkptr->data.nedi.cblkglbnbr = 2; /* It is a two-cell tree node */ partmax = (vspgrafdat.compglbsize[0] >= vspgrafdat.compglbsize[1]) ? 0 : 1; /* Get part of largest subgraph */ procnbr0 = (grafptr->s.procglbnbr + 1) / 2; /* Get number of processes in part 0 (always more than in part 1) */ if (grafptr->s.proclocnum < procnbr0) { /* If process will handle part 0 (bigger part if odd number of processes) */ ordeglbval = cblkptr->ordeglbval; vnodglbnbr = vspgrafdat.compglbsize[partmax]; cblkfthnum = 0; } else { /* If process will handle part 1 (smaller part if odd number of processes) */ ordeglbval = cblkptr->ordeglbval + vspgrafdat.compglbsize[partmax]; vnodglbnbr = vspgrafdat.compglbsize[partmax ^ 1]; cblkfthnum = 1; } if (hdgraphOrderNdFold (grafptr, vspgrafdat.complocsize[partmax], vspvnumtab[partmax], vspgrafdat.complocsize[partmax ^ 1], vspvnumtab[partmax ^ 1], &indgrafdat01) != 0) goto abort; switch (indgrafdat01.typeval) { case HDGRAPHORDERNDTYPECENT : if ((cblkptr01 = dorderNewSequ (cblkptr)) == NULL) goto abort; if (grafptr->levlnum > 0) { /* If intermediate level nested dissection graph */ hdgraphExit (grafptr); /* Free graph before going to next level */ dorderDispose (cblkptr); /* Dispose of column block node too */ } cblkptr01->ordeglbval = ordeglbval; cblkptr01->vnodglbnbr = vnodglbnbr; cblkptr01->cblkfthnum = cblkfthnum; o = hdgraphOrderSq2 (&indgrafdat01.data.cgrfdat, cblkptr01, paraptr->ordstratseq); hgraphExit (&indgrafdat01.data.cgrfdat); /* Free centralized graph here as it is last level */ break; /* No need to dispose of final column block as locally created by dorderNewSequ */ #ifdef SCOTCH_DEBUG_HDGRAPH2 case HDGRAPHORDERNDTYPEDIST : #else /* SCOTCH_DEBUG_HDGRAPH2 */ default : #endif /* SCOTCH_DEBUG_HDGRAPH2 */ if ((cblkptr01 = dorderNew (cblkptr, indgrafdat01.data.dgrfdat.s.proccomm)) == NULL) goto abort; if (grafptr->levlnum > 0) { /* If intermediate level nested dissection graph */ hdgraphExit (grafptr); /* Free graph before going to next level */ dorderDispose (cblkptr); /* Dispose of column block node too */ } cblkptr01->ordeglbval = ordeglbval; cblkptr01->vnodglbnbr = vnodglbnbr; cblkptr01->cblkfthnum = cblkfthnum; o = hdgraphOrderNd2 (&indgrafdat01.data.dgrfdat, cblkptr01, paraptr); break; #ifdef SCOTCH_DEBUG_HDGRAPH2 default : errorPrint ("hdgraphOrderNd2: internal error (2)"); goto abort; #endif /* SCOTCH_DEBUG_HDGRAPH2 */ } memFree (vspgrafdat.fronloctab); /* Free remaining space */ return (o); abort : if (vspgrafdat.partgsttax != NULL) memFree (vspgrafdat.partgsttax + vspgrafdat.s.baseval); if (vspgrafdat.fronloctab != NULL) memFree (vspgrafdat.fronloctab); hdgraphExit (grafptr); /* Free graph at this level */ return (1); } /* This routine performs the nested dissection ** ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hdgraphOrderNd ( Hdgraph * restrict const grafptr, DorderCblk * restrict const cblkptr, const HdgraphOrderNdParam * restrict const paraptr) { Hdgraph grafdat; /* Cloned graph */ if (dgraphGhst (&grafptr->s) != 0) { /* Compute ghost edge array on un-cloned graph */ errorPrint ("hdgraphOrderNd: cannot compute ghost edge array"); return (1); } grafdat = *grafptr; /* Clone imput graph */ grafdat.s.flagval &= ~HDGRAPHFREEALL; /* Avoid freeing their data in nested dissection */ grafdat.levlnum = 0; /* Nested dissection level 0 */ return (hdgraphOrderNd2 (&grafdat, cblkptr, paraptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_nd.h000066400000000000000000000133631514310134000273650ustar00rootroot00000000000000/* Copyright 2007,2010,2018,2019,2022,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_nd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the halo distributed graph nested **/ /** dissection ordering algorithm. **/ /** **/ /** DATES : # Version 5.0 : from : 16 apr 2006 **/ /** to : 16 jun 2007 **/ /** # Version 5.1 : from : 11 nov 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 30 apr 2019 **/ /** # Version 7.0 : from : 28 aug 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HdgraphOrderNdParam_ { Strat * sepstrat; /*+ Separation strategy +*/ Strat * ordstratlea; /*+ Leaf ordering strategy +*/ Strat * ordstratsep; /*+ Separator ordering strategy +*/ Strat * ordstratseq; /*+ Sequential ordering strategy +*/ } HdgraphOrderNdParam; /*+ Method types. +*/ typedef enum HdgraphOrderNdType_ { HDGRAPHORDERNDTYPECENT = 0, /*+ Centralized folded graph +*/ HDGRAPHORDERNDTYPEDIST /*+ Distributed folded graph +*/ } HdgraphOrderNdType; /*+ This structure holds folded graph data, whether centralized or distributed. +*/ typedef struct HdgraphOrderNdGraph_ { HdgraphOrderNdType typeval; /*+ Halo graph type +*/ union { Hgraph cgrfdat; /*+ Centralized halo graph +*/ Hdgraph dgrfdat; /*+ Distributed halo graph +*/ } data; } HdgraphOrderNdGraph; /*+ This structure holds the data passed to the subgraph building threads. +*/ typedef struct HdgraphOrderNdData_ { Hdgraph * orggrafptr; /*+ Pointer to original graph +*/ Gnum indlistnbr; /*+ Local number of vertices in subgraph +*/ const Gnum * indlisttab; /*+ Local list of vertices in subgraph +*/ HdgraphOrderNdGraph * fldgrafptr; /*+ Pointer to folded graph union area +*/ int fldpartval; /*+ Part of processor array to which to fold to +*/ int fldprocnbr; /*+ Number of processes in folded communicator +*/ int fldprocnum; /*+ Rank of process in folded communicator, or -1 +*/ MPI_Comm fldproccomm; /*+ Communicator for the folded graph, if any +*/ } HdgraphOrderNdData; /* ** The function prototypes. */ #ifdef SCOTCH_HDGRAPH_ORDER_ND static int hdgraphOrderNd2 (Hdgraph * const, DorderCblk * const, const HdgraphOrderNdParam * const); static int hdgraphOrderNdFold (Hdgraph * restrict const, const Gnum, const Gnum * restrict const, const Gnum, const Gnum * restrict const, HdgraphOrderNdGraph * restrict const); static int hdgraphOrderNdFold2 (HdgraphOrderNdData * const); #ifdef SCOTCH_PTHREAD_MPI static void hdgraphOrderNdFold3 (ThreadDescriptor * restrict const, HdgraphOrderNdData * restrict const); #endif /* SCOTCH_PTHREAD_MPI */ #endif /* SCOTCH_HDGRAPH_ORDER_ND */ int hdgraphOrderNd (Hdgraph * const, DorderCblk * const, const HdgraphOrderNdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_si.c000066400000000000000000000131511514310134000273650ustar00rootroot00000000000000/* Copyright 2007,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_si.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module orders halo distributed **/ /** graph vertices using a simple method. **/ /** **/ /** DATES : # Version 5.0 : from : 15 apr 2006 **/ /** to : 25 jul 2007 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 12 sep 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "order.h" #include "dorder.h" #include "hdgraph.h" #include "hdgraph_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hdgraphOrderSi2 ( DorderCblk * restrict const cblkptr, const Gnum baseval, const Gnum vertlocnbr, const Gnum * restrict const vnumloctax, const Gnum procdspval, MPI_Comm proccomm) { Gnum * periloctab; Gnum * restrict periloctax; Gnum vertlocnum; #ifdef SCOTCH_DEBUG_HDGRAPH1 int cheklocval; int chekglbval; cheklocval = 0; #endif /* SCOTCH_DEBUG_HDGRAPH1 */ if ((periloctab = (Gnum *) memAlloc (vertlocnbr * sizeof (Gnum))) == NULL) { /* Allocate local fragment */ errorPrint ("hdgraphOrderSi2: out of memory"); #ifndef SCOTCH_DEBUG_HDGRAPH1 return (1); } #else /* SCOTCH_DEBUG_HDGRAPH1 */ cheklocval = 1; /* Indicate an error */ } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { /* Communication cannot be merged with a useful one */ errorPrint ("hdgraphOrderSi2: communication error"); return (1); } if (chekglbval != 0) { if (periloctab != NULL) memFree (periloctab); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH1 */ cblkptr->typeval = DORDERCBLKLEAF; /* Fill node as leaf */ cblkptr->data.leaf.ordelocval = cblkptr->ordeglbval + procdspval - baseval; cblkptr->data.leaf.vnodlocnbr = vertlocnbr; cblkptr->data.leaf.periloctab = periloctab; cblkptr->data.leaf.nodelocnbr = 0; cblkptr->data.leaf.nodeloctab = NULL; #ifdef SCOTCH_DEBUG_HDGRAPH2 cblkptr->data.leaf.cblklocnum = -1; #endif /* SCOTCH_DEBUG_HDGRAPH2 */ periloctax = periloctab - baseval; if (vnumloctax == NULL) { /* If graph is original graph */ Gnum vertglbadj; vertglbadj = procdspval - baseval; /* Set adjustement for global ordering */ for (vertlocnum = baseval; vertlocnum < vertlocnbr + baseval; vertlocnum ++) periloctax[vertlocnum] = vertlocnum + vertglbadj; } else { /* Graph is not original graph */ for (vertlocnum = baseval; vertlocnum < vertlocnbr + baseval; vertlocnum ++) periloctax[vertlocnum] = vnumloctax[vertlocnum]; } return (0); } int hdgraphOrderSi ( Hdgraph * restrict const grafptr, DorderCblk * restrict const cblkptr) /*+ Single column-block +*/ { return (hdgraphOrderSi2 (cblkptr, grafptr->s.baseval, grafptr->s.vertlocnbr, grafptr->s.vnumloctax, grafptr->s.procdsptab[grafptr->s.proclocnum], grafptr->s.proccomm)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_si.h000066400000000000000000000060661514310134000274010ustar00rootroot00000000000000/* Copyright 2007,2018,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_si.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the simple halo graph **/ /** ordering routine. **/ /** **/ /** DATES : # Version 5.0 : from : 15 apr 2006 **/ /** to : 15 apr 2006 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 12 sep 2025 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int hdgraphOrderSi (Hdgraph * const, DorderCblk * const); int hdgraphOrderSi2 (DorderCblk * const, const Gnum, const Gnum, const Gnum * const, const Gnum, MPI_Comm); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_sq.c000066400000000000000000000203371514310134000274010ustar00rootroot00000000000000/* Copyright 2008,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_sq.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders distributed graphs **/ /** by centralizing them on a single **/ /** process and running a sequential **/ /** ordering strategy. **/ /** **/ /** DATES : # Version 5.1 : from : 11 nov 2008 **/ /** to : 11 nov 2008 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 17 jan 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HDGRAPH_ORDER_SQ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_st.h" #include "dgraph.h" #include "dorder.h" #include "hdgraph.h" #include "hdgraph_order_sq.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hdgraphOrderSq ( Hdgraph * restrict const grafptr, DorderCblk * restrict const cblkptr, const HdgraphOrderSqParam * restrict const paraptr) { Hgraph cgrfdat; /* Centralized halo graph data */ Hgraph * cgrfptr; /* Pointer to centralized halo graph */ int o; cgrfptr = (grafptr->s.proclocnum == 0) ? &cgrfdat : NULL; /* Set root process */ if (hdgraphGather (grafptr, cgrfptr) != 0) { /* Gather centralized subgraph */ errorPrint ("hdgraphOrderSq: cannot create centralized graph"); return (1); } o = 0; if (cgrfptr != NULL) { o = hdgraphOrderSq2 (&cgrfdat, cblkptr, paraptr->ordstratseq); hgraphFree (&cgrfdat); } return (o); } int hdgraphOrderSq2 ( Hgraph * restrict const grafptr, DorderCblk * restrict const cblkptr, const Strat * restrict const stratptr) { Order corddat; /* Centralized ordering structure */ Gnum * restrict vnumtax; Gnum * restrict peritab; int o; if (orderInit (&corddat, grafptr->s.baseval, cblkptr->vnodglbnbr, NULL) != 0) { errorPrint ("hdgraphOrderSq2: cannot initialize centralized ordering"); return (1); } vnumtax = grafptr->s.vnumtax; /* Save number array of subgraph to order */ grafptr->s.vnumtax = NULL; /* Assume graph does not have one (fake original graph) */ if (hgraphOrderSt (grafptr, &corddat, 0, &corddat.rootdat, stratptr) != 0) { /* Compute sequential ordering */ orderExit (&corddat); return (1); } #ifdef SCOTCH_DEBUG_HDGRAPH2 if (orderCheck (&corddat) != 0) { errorPrint ("hdgraphOrderSq2: invalid centralized ordering"); orderExit (&corddat); return (1); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ peritab = corddat.peritab; /* Get permutation array */ if (vnumtax != NULL) { Gnum perinum; grafptr->s.vnumtax = vnumtax; /* Restore vertex number array */ for (perinum = 0; perinum < grafptr->vnohnbr; perinum ++) /* Adjust inverse permutation */ peritab[perinum] = vnumtax[peritab[perinum]]; } cblkptr->data.leaf.ordelocval = cblkptr->ordeglbval; cblkptr->data.leaf.vnodlocnbr = cblkptr->vnodglbnbr; cblkptr->data.leaf.periloctab = peritab; cblkptr->data.leaf.nodelocnbr = corddat.treenbr - 1; /* Get number of tree nodes, save for root */ o = 0; if (corddat.treenbr > 1) { cblkptr->data.leaf.cblklocnum = dorderNewSequIndex (cblkptr, corddat.treenbr - 1); /* Reserve local indices for local nodes */ if ((cblkptr->data.leaf.nodeloctab = hdgraphOrderSqTree (&corddat)) == NULL) { errorPrint ("hdgraphOrderSq2: cannot import centralized separation tree"); o = 1; } cblkptr->typeval = DORDERCBLKLEAF | corddat.rootdat.typeval; /* Preserve type of root node of centralized ordering */ } else { cblkptr->typeval = DORDERCBLKLEAF; /* Fill node as distributed leaf */ cblkptr->data.leaf.nodeloctab = NULL; } corddat.flagval = ORDERNONE; /* Do not free permutation array */ orderExit (&corddat); /* Free permutation tree */ return (o); } /* This routine builds the distributed part of ** a distributed halo graph. This is a distinct ** routine to allow for multi-threading. */ static DorderNode * hdgraphOrderSqTree ( const Order * const cordptr) { DorderNode * nodetab; Gnum nodenum; Gnum cblknum; if ((nodetab = memAlloc ((cordptr->treenbr - 1) * sizeof (DorderNode))) == NULL) { /* "- 1" as root of tree will not be copied */ errorPrint ("hdgraphOrderSqTree: out of memory"); return (NULL); } nodenum = 0; /* Start labeling nodes from 0 */ for (cblknum = 0; cblknum < cordptr->rootdat.cblknbr; cblknum ++) hdgraphOrderSqTree2 (nodetab, &nodenum, &cordptr->rootdat.cblktab[cblknum], -1, cblknum); /* Root of tree is labeled "-1" */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if (nodenum != (cordptr->treenbr - 1)) { errorPrint ("hdgraphOrderSqTree: internal error"); return (NULL); } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ return (nodetab); } static void hdgraphOrderSqTree2 ( DorderNode * const nodetab, Gnum * const nodeptr, const OrderCblk * const cblkptr, const Gnum fathnum, const Gnum fcbknum) { Gnum nodenum; DorderNode * nodetmp; Gnum cblknum; nodenum = (*nodeptr) ++; nodetmp = &nodetab[nodenum]; nodetmp->fathnum = fathnum; nodetmp->typeval = (Gnum) cblkptr->typeval; nodetmp->vnodnbr = cblkptr->vnodnbr; nodetmp->cblknum = fcbknum; for (cblknum = 0; cblknum < cblkptr->cblknbr; cblknum ++) hdgraphOrderSqTree2 (nodetab, nodeptr, &cblkptr->cblktab[cblknum], nodenum, cblknum); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_sq.h000066400000000000000000000070421514310134000274040ustar00rootroot00000000000000/* Copyright 2008,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_sq.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the halo distributed graph centra- **/ /** lized ordering algorithm. **/ /** **/ /** DATES : # Version 5.1 : from : 11 nov 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HdgraphOrderSqParam_ { Strat * ordstratseq; /*+ Sequential ordering strategy +*/ } HdgraphOrderSqParam; /* ** The function prototypes. */ #ifdef SCOTCH_HDGRAPH_ORDER_SQ static DorderNode * hdgraphOrderSqTree (const Order * const); static void hdgraphOrderSqTree2 (DorderNode * const, Gnum * const, const OrderCblk * const, const Gnum, const Gnum); #endif /* SCOTCH_HDGRAPH_ORDER_SQ */ int hdgraphOrderSq2 (Hgraph * restrict const, DorderCblk * restrict const, const Strat * restrict const); int hdgraphOrderSq (Hdgraph * const, DorderCblk * const, const HdgraphOrderSqParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_st.c000066400000000000000000000260771514310134000274130ustar00rootroot00000000000000/* Copyright 2007,2008,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the generic call to the **/ /** distributed graph ordering module, **/ /** using a given strategy. **/ /** **/ /** DATES : # Version 5.0 : from : 15 apr 2006 **/ /** to : 21 aug 2006 **/ /** # Version 5.1 : from : 11 nov 2008 **/ /** to : 11 nov 2008 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_st.h" #include "dgraph.h" #include "dorder.h" #include "hdgraph.h" #include "hdgraph_order_nd.h" #include "hdgraph_order_si.h" #include "hdgraph_order_sq.h" #include "hdgraph_order_st.h" #include "vdgraph.h" #include "vdgraph_separate_st.h" /* ** The static and global variables. */ static Hdgraph hdgraphorderstgraphdummy; /* Dummy graph for offset computations */ static union { /* Default parameters for nested dissection method */ HdgraphOrderNdParam param; StratNodeMethodData padding; } hdgraphorderstdefaultnd = { { &stratdummy, &stratdummy, &stratdummy } }; static union { /* Default parameters for sequential method */ HdgraphOrderSqParam param; StratNodeMethodData padding; } hdgraphorderstdefaultsq = { { &stratdummy } }; static StratMethodTab hdgraphorderstmethtab[] = { /* Graph ordering methods array */ { HDGRAPHORDERSTMETHND, "n", (StratMethodFunc) hdgraphOrderNd, &hdgraphorderstdefaultnd }, { HDGRAPHORDERSTMETHSI, "s", (StratMethodFunc) hdgraphOrderSi, NULL }, { HDGRAPHORDERSTMETHSQ, "q", (StratMethodFunc) hdgraphOrderSq, &hdgraphorderstdefaultsq }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab hdgraphorderstparatab[] = { /* The method parameter list */ { HDGRAPHORDERSTMETHND, STRATPARAMSTRAT, "sep", (byte *) &hdgraphorderstdefaultnd.param, (byte *) &hdgraphorderstdefaultnd.param.sepstrat, (void *) &vdgraphseparateststratab }, { HDGRAPHORDERSTMETHND, STRATPARAMSTRAT, "ole", (byte *) &hdgraphorderstdefaultnd.param, (byte *) &hdgraphorderstdefaultnd.param.ordstratlea, (void *) &hdgraphorderststratab }, { HDGRAPHORDERSTMETHND, STRATPARAMSTRAT, "ose", (byte *) &hdgraphorderstdefaultnd.param, (byte *) &hdgraphorderstdefaultnd.param.ordstratsep, (void *) &hdgraphorderststratab }, { HDGRAPHORDERSTMETHND, STRATPARAMSTRAT, "osq", (byte *) &hdgraphorderstdefaultnd.param, (byte *) &hdgraphorderstdefaultnd.param.ordstratseq, (void *) &hgraphorderststratab }, { HDGRAPHORDERSTMETHSQ, STRATPARAMSTRAT, "strat", (byte *) &hdgraphorderstdefaultsq.param, (byte *) &hdgraphorderstdefaultsq.param.ordstratseq, (void *) &hgraphorderststratab }, { HDGRAPHORDERSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab hdgraphorderstcondtab[] = { /* Graph condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.s.edgeglbnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.s.veloglbsum, NULL }, { STRATNODECOND, STRATPARAMDOUBLE, "mdeg", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.s.degrglbmax, NULL }, { STRATNODECOND, STRATPARAMINT, "proc", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.s.procglbnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "rank", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.s.proclocnum, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &hdgraphorderstgraphdummy, (byte *) &hdgraphorderstgraphdummy.s.vertglbnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab hdgraphorderststratab = { /* Strategy tables for graph ordering methods */ hdgraphorderstmethtab, hdgraphorderstparatab, hdgraphorderstcondtab }; /************************************/ /* */ /* This routine is the entry point */ /* for the graph ordering routines. */ /* */ /************************************/ /* This routine computes an ordering ** with respect to a given strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hdgraphOrderSt ( Hdgraph * restrict const grafptr, /*+ Subgraph to order +*/ DorderCblk * restrict const cblkptr, /*+ Current column block +*/ const Strat * restrict const straptr) /*+ Graph ordering strategy +*/ { StratTest testdat; int o; if (grafptr->s.vertglbnbr == 0) /* Return immediately if nothing to do */ return (0); o = 0; switch (straptr->typeval) { case STRATNODECONCAT : errorPrint ("hdgraphOrderSt: concatenation operator not available for graph ordering strategies"); return (1); case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_HDGRAPH2 if ((testdat.testval != STRATTESTVAL) && (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("hdgraphOrderSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_HDGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = hdgraphOrderSt (grafptr, cblkptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = hdgraphOrderSt (grafptr, cblkptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : hdgraphOrderSi (grafptr, cblkptr); /* Always maintain a consistent ordering */ break; case STRATNODESELECT : errorPrint ("hdgraphOrderSt: selection operator not available for graph ordering strategies"); return (1); #ifdef SCOTCH_DEBUG_HDGRAPH2 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_HDGRAPH2 */ default : #endif /* SCOTCH_DEBUG_HDGRAPH2 */ return (((HdgraphOrderFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, cblkptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_HDGRAPH2 default : errorPrint ("hdgraphOrderSt: invalid parameter"); return (1); #endif /* SCOTCH_DEBUG_HDGRAPH2 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hdgraph_order_st.h000066400000000000000000000072621514310134000274130ustar00rootroot00000000000000/* Copyright 2007,2008,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hdgraph_order_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data **/ /** declarations for the main distributed **/ /** graph ordering routine. **/ /** **/ /** DATES : # Version 5.0 : from : 14 apr 2006 **/ /** to : 14 apr 2006 **/ /** # Version 5.1 : from : 11 nov 2008 **/ /** to : 11 nov 2008 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum HdgraphOrderStMethodType_ { HDGRAPHORDERSTMETHND = 0, /*+ Nested Dissection +*/ HDGRAPHORDERSTMETHSI, /*+ Simple +*/ HDGRAPHORDERSTMETHSQ, /*+ Sequential method +*/ HDGRAPHORDERSTMETHNBR /*+ Number of methods +*/ } HdgraphOrderStMethodType; /*+ Method function pointer type. +*/ typedef int (* HdgraphOrderFunc) (Hdgraph * restrict const, DorderCblk * restrict const, const void * const); /* ** The external declarations. */ extern StratTab hdgraphorderststratab; /* ** The function prototypes. */ int hdgraphOrderSt (Hdgraph * restrict const, DorderCblk * restrict const, const Strat * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph.c000066400000000000000000000131141514310134000253320ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2014,2016,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 17 jan 2002 **/ /** to : 01 dec 2003 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 30 may 2008 **/ /** # Version 6.0 : from : 17 oct 2012 **/ /** to : 23 may 2018 **/ /** # Version 7.0 : from : 04 aug 2018 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "hgraph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine initializes a source graph ** structure. ** It returns: ** - 0 : in all cases. */ int hgraphInit ( Hgraph * restrict const grafptr) { memSet (grafptr, 0, sizeof (Hgraph)); /* Initialize graph fields */ grafptr->s.flagval = GRAPHFREETABS; /* By default, free all arrays */ return (0); } /* This routine frees a source graph structure. ** It returns: ** - VOID : in all cases. */ void hgraphExit ( Hgraph * restrict const grafptr) { hgraphFree (grafptr); } /* This routine frees a source graph structure. ** It returns: ** - VOID : in all cases. */ void hgraphFree ( Hgraph * restrict const grafptr) { if ((grafptr->vnhdtax != NULL) && /* Free end vertex array for non-halo vertices */ ((grafptr->s.flagval & HGRAPHFREEVNHD) != 0)) memFree (grafptr->vnhdtax + grafptr->s.baseval); graphFree (&grafptr->s); /* Free graph data */ #ifdef SCOTCH_DEBUG_HGRAPH2 memSet (grafptr, ~0, sizeof (Hgraph)); /* Purge graph fields */ #endif /* SCOTCH_DEBUG_HGRAPH2 */ } /* This routine creates a non-halo graph from a ** halo graph. ** It returns: ** - VOID : in all cases. */ void hgraphUnhalo ( const Hgraph * restrict const grafptr, Graph * restrict const ugrfptr) { ugrfptr->flagval = grafptr->s.flagval & (GRAPHBITSUSED & ~GRAPHFREETABS); /* Remove extended graph class flags and do not allow freeing */ ugrfptr->baseval = grafptr->s.baseval; ugrfptr->vertnbr = grafptr->vnohnbr; ugrfptr->vertnnd = grafptr->vnohnnd; ugrfptr->verttax = grafptr->s.verttax; ugrfptr->vendtax = grafptr->vnhdtax; ugrfptr->velotax = grafptr->s.velotax; ugrfptr->velosum = grafptr->vnlosum; ugrfptr->vnumtax = grafptr->s.vnumtax; ugrfptr->vlbltax = NULL; ugrfptr->edgenbr = grafptr->enohnbr; ugrfptr->edgetax = grafptr->s.edgetax; ugrfptr->edlotax = grafptr->s.edlotax; ugrfptr->edlosum = grafptr->enlosum; ugrfptr->degrmax = grafptr->s.degrmax; /* Upper bound */ } /* This routine fills-in the halo fields of a ** halo graph from the fields of its non-halo, ** underlying source graph. ** It returns: ** - VOID : in all cases. */ void hgraphUnhalo2 ( Hgraph * restrict const grafptr) { grafptr->vnohnbr = grafptr->s.vertnbr; grafptr->vnohnnd = grafptr->s.vertnnd; grafptr->vnhdtax = grafptr->s.vendtax; grafptr->vnlosum = grafptr->s.velosum; grafptr->enohnbr = grafptr->s.edgenbr; grafptr->enlosum = grafptr->s.edlosum; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph.h000066400000000000000000000120111514310134000253320ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2012,2018,2019,2022,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source halo graph structure. **/ /** **/ /** DATES : # Version 4.0 : from : 02 jan 2002 **/ /** to : 30 apr 2004 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 19 dec 2006 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 17 oct 2012 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 05 may 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_HGRAPH_H /*+ Graph option flags. +*/ #define HGRAPHFREEVNHD 0x0400 /* Free vnhdtab array */ #define HGRAPHFREETABS (GRAPHFREETABS | HGRAPHFREEVNHD) /* ** The type and structure definitions. */ /*+ Halo graph structure. +*/ typedef struct Hgraph_ { Graph s; /*+ Source graph +*/ Gnum vnohnbr; /*+ Number of non-halo vertices +*/ Gnum vnohnnd; /*+ Based number of first halo vertex in graph (s.vertnnd if none) +*/ Gnum * vnhdtax; /*+ End vertex array for non-halo vertices [vnohnbr, based] +*/ Gnum vnlosum; /*+ Sum of vertex loads for non-halo vertices only (<= s.velosum) +*/ Gnum enohnbr; /*+ Number of non-halo edges +*/ Gnum enlosum; /*+ Sum of non-halo edge loads +*/ Gnum levlnum; /*+ Nested dissection level +*/ Context * contptr; /*+ Execution context +*/ } Hgraph; /* ** The function prototypes. */ int hgraphInit (Hgraph * const); void hgraphExit (Hgraph * const); void hgraphFree (Hgraph * const); Gnum hgraphBase (Hgraph * const, const Gnum); int hgraphCheck (const Hgraph *); int hgraphInduceList (const Hgraph * restrict const, const Gnum, const Gnum * restrict const, const Gnum, Hgraph * restrict const); void hgraphUnhalo (const Hgraph * const, Graph * const); void hgraphUnhalo2 (Hgraph * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_check.c000066400000000000000000000124411514310134000264710ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 17 jan 2002 **/ /** to : 01 dec 2003 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 19 dec 2006 **/ /** # Version 6.0 : from : 23 may 2018 **/ /** to : 23 may 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "hgraph.h" /****************************************/ /* */ /* These routines handle source graphs. */ /* */ /****************************************/ /* This routine checks the consistency ** of the given halo graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int hgraphCheck ( const Hgraph * restrict const grafptr) { Gnum vertnum; /* Number of current vertex */ Gnum edgenum; /* Number of current edge */ Gnum enlosum; if (graphCheck (&grafptr->s) != 0) { errorPrint ("hgraphCheck: invalid graph structure in halo graph"); return (1); } if ((grafptr->vnohnbr < 0) || (grafptr->vnohnbr > grafptr->s.vertnbr) || (grafptr->vnohnnd != (grafptr->vnohnbr + grafptr->s.baseval)) || (grafptr->vnlosum > grafptr->s.velosum) || (grafptr->enohnbr > grafptr->s.edgenbr) || (grafptr->enlosum < grafptr->enohnbr)) { errorPrint ("hgraphCheck: invalid halo graph parameters"); return (1); } enlosum = (grafptr->s.edlotax == NULL) ? grafptr->enohnbr : 0; for (vertnum = grafptr->s.baseval; vertnum < grafptr->vnohnnd; vertnum ++) { /* For all non-halo vertices */ if ((grafptr->vnhdtax[vertnum] < grafptr->s.verttax[vertnum]) || (grafptr->vnhdtax[vertnum] > grafptr->s.vendtax[vertnum])) { errorPrint ("hgraphCheck: invalid non-halo end vertex array"); return (1); } if (grafptr->s.edlotax != NULL) { Gnum edgenum; for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->vnhdtax[vertnum]; edgenum ++) enlosum += grafptr->s.edlotax[edgenum]; } } if (grafptr->enlosum != enlosum) { errorPrint ("hgraphCheck: invalid non-halo edge load sum"); return (1); } for ( ; vertnum < grafptr->s.vertnnd; vertnum ++) { /* For all halo vertices */ for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++) { if (grafptr->s.edgetax[edgenum] >= grafptr->vnohnnd) { /* If two halo vertices connected together */ errorPrint ("hgraphCheck: halo vertices should not be connected together"); return (1); } } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_dump.c000066400000000000000000000111751514310134000263640ustar00rootroot00000000000000/* Copyright 2019,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_dump.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module dumps the contents of a **/ /** halo graph on the form of a C source **/ /** code. **/ /** **/ /** DATES : # Version 6.0 : from : 27 dec 2019 **/ /** to : 25 jan 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "graph_dump.h" #include "hgraph.h" #include "hgraph_dump.h" /* This routine dumps the given halo graph on ** the form of C source code. ** - 0 : on success. ** - !0 : on error. */ int hgraphDump ( const Hgraph * restrict const grafptr, /* Graph to dump */ const char * const prefptr, /* Prefix name */ const char * const suffptr, /* Suffix name */ FILE * const fileptr) /* Output stream */ { int o; o = graphDumpArrays (&grafptr->s, "Gnum", prefptr, suffptr, fileptr); /* Dump source graph data arrays */ if (grafptr->vnhdtax != grafptr->s.vendtax) o |= graphDumpArray (grafptr->vnhdtax + grafptr->s.baseval, grafptr->vnohnbr, "Gnum", prefptr, "vnhdtab", suffptr, fileptr); o |= (fprintf (fileptr, "void\n" "%sHgraphBuild%s (\n" "Hgraph * grafptr)\n" "{\n" " hgraphInit (grafptr);\n", prefptr, suffptr) < 0); o |= graphDump2 (&grafptr->s, "grafptr->s.", prefptr, suffptr, fileptr); o |= (fprintf (fileptr, " grafptr->vnohnbr = " GNUMSTRING ";\n" " grafptr->vnohnnd = " GNUMSTRING ";\n", grafptr->vnohnbr, grafptr->vnohnnd) < 0); if (grafptr->vnhdtax != grafptr->s.vendtax) o |= (fprintf (fileptr, " grafptr->vnhdtax = %svnhdtab%s - " GNUMSTRING ";\n", prefptr, suffptr, grafptr->s.baseval) < 0); else o |= (fprintf (fileptr, " grafptr->vnhdtax = grafptr->s.vendtax;\n") < 0); o |= (fprintf (fileptr, " grafptr->enohnbr = " GNUMSTRING ";\n" " grafptr->enlosum = " GNUMSTRING ";\n", grafptr->enohnbr, grafptr->enlosum) < 0); o |= (fprintf (fileptr, "}\n") < 0); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_dump.h000066400000000000000000000051141514310134000263650ustar00rootroot00000000000000/* Copyright 2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_dump.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the halo graph dump function. **/ /** **/ /** DATES : # Version 6.0 : from : 25 jan 2020 **/ /** to : 25 jan 2020 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int hgraphDump (const Hgraph * const, const char * const, const char * const, FILE * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_induce.c000066400000000000000000000365631514310134000266760ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2012,2014,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the halo source **/ /** graph subgraph-making functions. **/ /** **/ /** DATES : # Version 4.0 : from : 02 jan 2002 **/ /** to : 25 feb 2004 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 11 jun 2008 **/ /** # Version 5.1 : from : 24 oct 2010 **/ /** to : 24 oct 2010 **/ /** # Version 6.0 : from : 27 mar 2012 **/ /** to : 20 aug 2020 **/ /** # Version 7.0 : from : 05 may 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HGRAPH_INDUCE #include "module.h" #include "common.h" #include "graph.h" #include "hgraph.h" #include "hgraph_induce.h" /*********************************************/ /* */ /* These routines handle halo source graphs. */ /* */ /*********************************************/ /* This routine builds the graph induced ** by the original graph and the list of ** selected vertices. ** The induced vnumtab array is the list ** array if the original graph does not have ** a vnumtab, or the proper subset of the ** original vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hgraphInduceList ( const Hgraph * restrict const orggrafptr, /* Pointer to original graph */ const Gnum indvnumnbr, const Gnum * restrict const indvnumtab, const Gnum indhalonbr, /* Upper bound of number of vertices in halo */ Hgraph * restrict const indgrafptr) /* Pointer to induced subgraph */ { Gnum * restrict orgindxtax; /* Original to induced vertex number translation */ Gnum * restrict indedgetab; /* Origin of induced graph edge arrays */ Gnum indvertnbr; /* Number of vertices in induced graph */ Gnum indvertnum; /* Number of current vertex in induced graph */ Gnum indvelosiz; Gnum indedgenbr; /* (Approximate) number of edges in induced graph */ Gnum indedgesiz; /* (Approximate) size of edge and edge load arrays */ memSet (indgrafptr, 0, sizeof (Hgraph)); /* Pre-initialize graph fields */ indgrafptr->s.flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; indgrafptr->s.baseval = orggrafptr->s.baseval; indvertnbr = indvnumnbr + indhalonbr; /* Compute upper bound on number of vertices */ indvelosiz = (orggrafptr->s.velotax != NULL) ? indvertnbr : 0; if (memAllocGroup ((void **) (void *) /* Allocate induced graph structure */ &indgrafptr->s.verttax, (size_t) ((indvertnbr + 1) * sizeof (Gnum)), &indgrafptr->vnhdtax, (size_t) ( indvnumnbr * sizeof (Gnum)), /* Put closest to beginning of array because no padding after */ &indgrafptr->s.velotax, (size_t) ( indvelosiz * sizeof (Gnum)), &indgrafptr->s.vnumtax, (size_t) ( indvertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hgraphInduceList: out of memory (1)"); return (1); } memCpy (indgrafptr->s.vnumtax, indvnumtab, indvnumnbr * sizeof (Gnum)); /* Copy vertex number array from list */ indgrafptr->s.velotax = (orggrafptr->s.velotax != NULL) ? (indgrafptr->s.velotax - indgrafptr->s.baseval) : NULL; indgrafptr->s.verttax -= indgrafptr->s.baseval; indgrafptr->s.vnumtax -= indgrafptr->s.baseval; indgrafptr->vnhdtax -= indgrafptr->s.baseval; indgrafptr->vnohnbr = indvnumnbr; indgrafptr->vnohnnd = indvnumnbr + indgrafptr->s.baseval; indedgenbr = ((orggrafptr->s.degrmax > 0) && (indvertnbr < (orggrafptr->s.edgenbr / orggrafptr->s.degrmax))) /* Choose best upper bound on number of edges (avoid multiply overflow) */ ? (indvertnbr * orggrafptr->s.degrmax) : orggrafptr->s.edgenbr; indedgesiz = (orggrafptr->s.edlotax != NULL) ? indedgenbr * 2 : indedgenbr; /* Account for edge load array size if graph has edge weights */ if (memAllocGroup ((void **) (void *) /* If cannot allocate edge arrays with approximation */ &indedgetab, (size_t) (indedgesiz * sizeof (Gnum)), &orgindxtax, (size_t) (orggrafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { indedgenbr = hgraphInduce3 (orggrafptr, indvnumnbr, indvnumtab); /* Count real number of edges */ indedgesiz = (orggrafptr->s.edlotax != NULL) ? indedgenbr * 2 : indedgenbr; /* Account for edge load array size if graph has edge weights */ if ((indedgenbr < 0) || /* If cannot compute real number of edges */ (memAllocGroup ((void **) (void *) /* Or cannot allocate edge arrays with real values */ &indedgetab, (size_t) (indedgesiz * sizeof (Gnum)), &orgindxtax, (size_t) (orggrafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL)) { errorPrint ("hgraphInduceList: out of memory (2)"); hgraphExit (indgrafptr); return (1); } } memSet (orgindxtax, ~0, orggrafptr->s.vertnbr * sizeof (Gnum)); /* Preset index array */ orgindxtax -= orggrafptr->s.baseval; /* Base access to orgindxtab */ for (indvertnum = indgrafptr->s.baseval; indvertnum < indgrafptr->vnohnnd; indvertnum ++) /* For all non-halo vertices */ orgindxtax[indgrafptr->s.vnumtax[indvertnum]] = indvertnum; /* Mark selected vertices */ return (hgraphInduce2 (orggrafptr, orgindxtax, indgrafptr, indedgenbr, indedgetab)); } /* This routine finalizes the building of the ** halo graph induced by the original halo graph. ** Vertices belonging to the old halo remain to ** be numbered. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int hgraphInduce2 ( const Hgraph * restrict const orggrafptr, /* Pointer to original graph */ Gnum * restrict const orgindxtax, /* Array of numbers of selected vertices */ Hgraph * restrict const indgrafptr, /* Pointer to induced graph */ const Gnum indedgenbr, /* (Approximate) number of edges in induced graph */ Gnum * restrict const indedgetab) /* Pointer to pre-allocated space for edge arrays */ { void * restrict indedgetnd; /* End of compacted edge array */ Gnum indvertnum; /* Current vertex number in induced halo graph */ indedgetnd = memOffset (indedgetab, &indgrafptr->s.edgetax, (size_t) (indedgenbr * sizeof (Gnum)), NULL); indgrafptr->s.edgetax = indedgetab - indgrafptr->s.baseval; #ifdef SCOTCH_DEBUG_HGRAPH2 if (indedgetnd > (void *) (orgindxtax + orggrafptr->s.baseval)) { errorPrint ("hgraphInduce2: invalid edge array size (1)"); hgraphExit (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ if (orggrafptr->s.edlotax != NULL) { ptrdiff_t indedlooftval; /* Offset of edge load array with respect to edge array */ indedgetnd = memOffset (indedgetnd, &indgrafptr->s.edlotax, (size_t) (indedgenbr * sizeof (Gnum)), NULL); indgrafptr->s.edlotax -= indgrafptr->s.baseval; #ifdef SCOTCH_DEBUG_HGRAPH2 if (indedgetnd > (void *) (orgindxtax + orggrafptr->s.baseval)) { errorPrint ("hgraphInduce2: invalid edge array size (2)"); hgraphExit (indgrafptr); /* Indedgetab is now freed as part of indgrafptr */ return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ hgraphInduce2L (orggrafptr, orgindxtax, indgrafptr); indedlooftval = indgrafptr->s.edlotax - indgrafptr->s.edgetax; memReallocGroup ((void *) indedgetab, /* Implicitly free orgindxtab */ &indgrafptr->s.edgetax, (size_t) (indedgenbr * sizeof (Gnum)), /* Keep first offset as estimated number of edges */ &indgrafptr->s.edlotax, (size_t) (indgrafptr->s.edgenbr * sizeof (Gnum)), /* Use real number of edges for second array */ NULL); indgrafptr->s.edgetax -= indgrafptr->s.baseval; indgrafptr->s.edlotax = indgrafptr->s.edgetax + indedlooftval; /* Use old index into old array as new index */ } else { hgraphInduce2U (orggrafptr, orgindxtax, indgrafptr); indgrafptr->s.edgetax = memRealloc ((void *) indedgetab, indgrafptr->s.edgenbr * sizeof (Gnum)); /* Use real number of edges, implicitely free orgindxtab */ indgrafptr->s.edgetax -= indgrafptr->s.baseval; } indgrafptr->s.vendtax = indgrafptr->s.verttax + 1; /* Use compact representation of arrays */ indgrafptr->levlnum = orggrafptr->levlnum + 1; /* Induced subgraph is one level below */ indgrafptr->contptr = orggrafptr->contptr; /* Use same execution context */ if (orggrafptr->s.vnumtax != NULL) { /* Adjust vnumtax */ const Gnum * restrict const orgvnumtax = orggrafptr->s.vnumtax; Gnum * restrict const indvnumtax = indgrafptr->s.vnumtax; for (indvertnum = indgrafptr->s.baseval; indvertnum < indgrafptr->s.vertnnd; indvertnum ++) indvnumtax[indvertnum] = orgvnumtax[indvnumtax[indvertnum]]; } #ifdef SCOTCH_DEBUG_HGRAPH2 if (hgraphCheck (indgrafptr) != 0) { /* Check graph consistency */ errorPrint ("hgraphInduce2: inconsistent graph data"); hgraphExit (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ return (0); } #define HGRAPHINDUCE2U #define HGRAPHINDUCE2NAME hgraphInduce2U #define HGRAPHINDUCE2EDLOINIT(e) #define HGRAPHINDUCE2EDLOSUM indgrafptr->s.edgenbr #define HGRAPHINDUCE2ENOHINIT #define HGRAPHINDUCE2ENLOSUM indgrafptr->enohnbr #include "hgraph_induce_edge.c" #undef HGRAPHINDUCE2NAME #undef HGRAPHINDUCE2EDLOINIT #undef HGRAPHINDUCE2EDLOSUM #undef HGRAPHINDUCE2ENOHINIT #undef HGRAPHINDUCE2ENLOSUM #undef HGRAPHINDUCE2U #define HGRAPHINDUCE2L #define HGRAPHINDUCE2NAME hgraphInduce2L #define HGRAPHINDUCE2EDLOINIT(e) indedlosum += indedlotax[e] = orgedlotax[orgedgenum] #define HGRAPHINDUCE2EDLOSUM indedlosum #define HGRAPHINDUCE2ENOHINIT indenlosum += orgedlotax[orgedgenum] #define HGRAPHINDUCE2ENLOSUM indenlosum #include "hgraph_induce_edge.c" #undef HGRAPHINDUCE2NAME #undef HGRAPHINDUCE2EDLOINIT #undef HGRAPHINDUCE2EDLOSUM #undef HGRAPHINDUCE2ENOHINIT #undef HGRAPHINDUCE2ENLOSUM #undef HGRAPHINDUCE2L /* This routine computes the exact number of edges ** required to build the induced halo subgraph. It ** is used when larger approximations lead to an ** out-of-memory error message. As a side effect, ** yet unnumbered halo vertices of the induced ** subgraph are numbered and the induced halo graph ** data are updated accordingly. ** It returns: ** - >=0 : number of edges in induced halo graph. ** - -1 : if out of memory (this is helpless). */ static Gnum hgraphInduce3 ( const Hgraph * restrict const orggrafptr, /* Pointer to original graph */ const Gnum indvnumnbr, const Gnum * restrict const indvnumtab) { Gnum indedgenbr; /* Revised number of edges in induced halo graph */ Gnum indvertnum; /* Current vertex number in induced halo graph */ Gnum * restrict orgindxtax; /* Array of numbers of selected vertices */ const Gnum * restrict const orgverttax = orggrafptr->s.verttax; const Gnum * restrict const orgvendtax = orggrafptr->s.vendtax; const Gnum * restrict const orgedgetax = orggrafptr->s.edgetax; if ((orgindxtax = memAlloc (orggrafptr->s.vertnbr * sizeof (Gnum))) == NULL) return (-1); memSet (orgindxtax, ~0, orggrafptr->s.vertnbr * sizeof (Gnum)); /* Preset index array */ orgindxtax -= orggrafptr->s.baseval; /* Base access to orgindxtab */ for (indvertnum = 0; indvertnum < indvnumnbr; indvertnum ++) /* For all vertices in list */ orgindxtax[indvnumtab[indvertnum]] = indvertnum; /* Mark selected vertices */ for (indvertnum = 0, indedgenbr = 0; /* For all vertices in list */ indvertnum < indvnumnbr; indvertnum ++) { Gnum orgvertnum; /* Current vertex number in original halo graph */ Gnum orgedgenum; /* Current edge number in original halo graph */ orgvertnum = indvnumtab[indvertnum]; /* Get number of original vertex */ indedgenbr += orgvendtax[orgvertnum] - orgverttax[orgvertnum]; /* Add degree of original vertex */ for (orgedgenum = orgverttax[orgvertnum]; /* For all neighbors of original halo vertex */ orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { if (orgindxtax[orgedgetax[orgedgenum]] == ~0) /* If neighbor is halo vertex */ indedgenbr ++; /* Account for the arc once more */ } } memFree (orgindxtax + orggrafptr->s.baseval); return (indedgenbr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_induce.h000066400000000000000000000064341514310134000266750ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_induce.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the halo graph subgraph making **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 10 jan 2002 **/ /** to : 22 dec 2002 **/ /** # Version 6.0 : from : 05 apr 2018 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ #ifdef SCOTCH_HGRAPH_INDUCE static int hgraphInduce2 (const Hgraph * const, Gnum * const, Hgraph * const, const Gnum, Gnum * const); static void hgraphInduce2L (const Hgraph * const, Gnum * const, Hgraph * const); static void hgraphInduce2U (const Hgraph * const, Gnum * const, Hgraph * const); static Gnum hgraphInduce3 (const Hgraph * restrict const, const Gnum, const Gnum * restrict const); #endif /* SCOTCH_HGRAPH_INDUCE */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_induce_edge.c000066400000000000000000000273761514310134000276640ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2012,2014,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_induce_edge.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This commodity file contains the edge **/ /** arrays building subroutine which is **/ /** duplicated, with minor modifications, **/ /** into hgraph_induce.c **/ /** **/ /** DATES : # Version 4.0 : from : 10 jan 2002 **/ /** to : 17 jan 2003 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 19 dec 2006 **/ /** # Version 5.1 : from : 24 oct 2010 **/ /** to : 24 oct 2010 **/ /** # Version 6.0 : from : 22 mar 2012 **/ /** to : 23 may 2018 **/ /** **/ /************************************************************/ static void HGRAPHINDUCE2NAME ( const Hgraph * restrict const orggrafptr, /* Pointer to original halo graph */ Gnum * restrict const orgindxtax, /* Array of numbers of selected vertices */ Hgraph * restrict const indgrafptr) /* Pointer to induced halo graph */ { Gnum indvertnum; /* Number of current induced vertex */ Gnum indvertnnd; /* Number of after-last induced (halo) vertex */ Gnum indvelosum; /* Overall induced vertex load */ Gnum indedgenum; /* Number of current edge in induced halo subgraph */ Gnum indenohnbr; /* Number of non-halo edges in halo subgraph */ Gnum inddegrmax; /* Maximum degree */ #ifdef SCOTCH_DEBUG_HGRAPH2 Gnum indedgenbs; /* Revised number of edges in halo subgraph */ #endif /* SCOTCH_DEBUG_HGRAPH2 */ #ifdef HGRAPHINDUCE2L /* If edge loads present */ Gnum indedlosum; Gnum indenlosum; #endif /* HGRAPHINDUCE2L */ const Gnum * restrict const orgverttax = orggrafptr->s.verttax; const Gnum * restrict const orgvendtax = orggrafptr->s.vendtax; const Gnum * restrict const orgvelotax = orggrafptr->s.velotax; const Gnum * restrict const orgedgetax = orggrafptr->s.edgetax; Gnum * restrict const indvnhdtax = indgrafptr->vnhdtax; Gnum * restrict const indverttax = indgrafptr->s.verttax; Gnum * restrict const indvelotax = indgrafptr->s.velotax; Gnum * restrict const indvnumtax = indgrafptr->s.vnumtax; Gnum * restrict const indedgetax = indgrafptr->s.edgetax; #ifdef HGRAPHINDUCE2L /* If edge loads present */ const Gnum * restrict const orgedlotax = orggrafptr->s.edlotax; Gnum * restrict indedlotax = indgrafptr->s.edlotax; /* Not const because location will change */ indedlosum = indenlosum = 0; #endif /* HGRAPHINDUCE2L */ inddegrmax = 0; for (indvertnum = indedgenum = indgrafptr->s.baseval, indvelosum = indenohnbr = 0, indvertnnd = indgrafptr->vnohnnd; /* For all non-halo vertices */ indvertnum < indgrafptr->vnohnnd; indvertnum ++) { Gnum orgvertnum; /* Number of current vertex in original halo graph */ Gnum orgedgenum; /* Number of current edge in original halo graph */ Gnum indedgennd; /* Index of after-last edge position in edge array */ Gnum indedhdnum; /* Index of after-last edge linking to non-halo vertices */ Gnum inddegrval; orgvertnum = indvnumtax[indvertnum]; indverttax[indvertnum] = indedgenum; indenohnbr -= indedgenum; /* Subtract base of non-halo edges */ if (indvelotax != NULL) { /* If graph has vertex weights */ indvelosum += /* Accumulate vertex loads */ indvelotax[indvertnum] = orgvelotax[orgvertnum]; } inddegrval = orgvendtax[orgvertnum] - orgverttax[orgvertnum]; /* Get degree of non-halo node */ if (inddegrmax < inddegrval) /* Keep maximum degree */ inddegrmax = inddegrval; for (orgedgenum = orgverttax[orgvertnum], indedhdnum = indedgennd = indedgenum + inddegrval; orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum orgvertend; /* Number of current end vertex in original halo graph */ Gnum indvertend; /* Number of current end vertex in induced halo subgraph */ orgvertend = orgedgetax[orgedgenum]; indvertend = orgindxtax[orgvertend]; if (indvertend == ~0) { /* If neighbor is yet undeclared halo vertex */ indvnumtax[indvertnnd] = orgvertend; /* Add number of halo vertex to array */ indvertend = orgindxtax[orgvertend] = indvertnnd ++; /* Get induced number of vertex */ } if (indvertend >= indgrafptr->vnohnnd) { /* If neighbor is halo vertex */ indedhdnum --; /* Add neighbor at end of edge sub-array */ indedgetax[indedhdnum] = indvertend; HGRAPHINDUCE2EDLOINIT (indedhdnum); } else { /* If neighbor is non-halo vertex */ indedgetax[indedgenum] = indvertend; /* Add neighbor at beginning of edge sub-array */ HGRAPHINDUCE2EDLOINIT (indedgenum); HGRAPHINDUCE2ENOHINIT; indedgenum ++; } } #ifdef SCOTCH_DEBUG_HGRAPH2 if (indedgenum != indedhdnum) { errorPrint (STRINGIFY (HGRAPHINDUCE2NAME) ": internal error (1)"); return; } #endif /* SCOTCH_DEBUG_HGRAPH2 */ indenohnbr += indedhdnum; /* Add position to number of non-halo edges */ indvnhdtax[indvertnum] = indedhdnum; /* Set end of non-halo sub-array */ indedgenum = indedgennd; /* Point to next free space in edge array */ } indgrafptr->vnlosum = (indvelotax != NULL) ? indvelosum : indgrafptr->vnohnbr; indgrafptr->enohnbr = indenohnbr; #ifdef SCOTCH_DEBUG_HGRAPH2 indedgenbs = 2 * (indedgenum - indgrafptr->s.baseval) - indenohnbr; /* Compute total number of edges */ #endif /* SCOTCH_DEBUG_HGRAPH2 */ #ifdef HGRAPHINDUCE2L /* If edge loads present */ { Gnum * indedgetab; /* Dummy area to recieve un-based edgetab */ Gnum * indedlotab; /* Save of old position of edgetab array */ #ifndef SCOTCH_DEBUG_HGRAPH2 Gnum indedgenbs; /* Revised number of edges in halo subgraph */ indedgenbs = 2 * (indedgenum - indgrafptr->s.baseval) - indenohnbr; /* Compute total number of edges */ #endif /* SCOTCH_DEBUG_HGRAPH2 */ indedlotab = indedlotax + indgrafptr->s.baseval; /* Save old offset of move area */ memOffset (indedgetax + indgrafptr->s.baseval, /* Compute new offsets */ &indedgetab, (size_t) (indedgenbs * sizeof (Gnum)), &indedlotax, (size_t) (indedgenbs * sizeof (Gnum)), NULL); memMov (indedlotax, indedlotab, (indedgenum - indgrafptr->s.baseval) * sizeof (Gnum)); /* Move already existing edge load array */ indgrafptr->s.edlotax = /* Record new position of edge load array */ indedlotax -= indgrafptr->s.baseval; } #endif /* HGRAPHINDUCE2L */ for ( ; indvertnum < indvertnnd; indvertnum ++) { /* For all halo vertices found during first pass */ Gnum orgvertnum; /* Number of current vertex in original halo graph */ Gnum orgedgenum; /* Number of current edge in original halo graph */ orgvertnum = indvnumtax[indvertnum]; indverttax[indvertnum] = indedgenum; if (indvelotax != NULL) { /* If graph has vertex weights */ indvelosum += /* Accumulate vertex loads */ indvelotax[indvertnum] = orgvelotax[orgvertnum]; } for (orgedgenum = orgverttax[orgvertnum]; orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum orgvertend; /* Number of current end vertex in original halo graph */ Gnum indvertend; /* Number of current end vertex in induced halo subgraph */ orgvertend = orgedgetax[orgedgenum]; indvertend = orgindxtax[orgvertend]; if ((indvertend != ~0) && /* If end vertex in induced halo subgraph */ (indvertend < indgrafptr->vnohnnd)) { /* And in its non-halo part only */ indedgetax[indedgenum] = indvertend; HGRAPHINDUCE2EDLOINIT (indedgenum); indedgenum ++; } } if (inddegrmax < (indedgenum - indverttax[indvertnum])) inddegrmax = (indedgenum - indverttax[indvertnum]); } #ifdef SCOTCH_DEBUG_HGRAPH2 if ((indedgenum - indgrafptr->s.baseval) != indedgenbs) { errorPrint (STRINGIFY (HGRAPHINDUCE2NAME) ": internal error (2)"); return; } #endif /* SCOTCH_DEBUG_HGRAPH2 */ indverttax[indvertnnd] = indedgenum; /* Set end of compact vertex array */ indgrafptr->s.vertnbr = indvertnnd - indgrafptr->s.baseval; indgrafptr->s.vertnnd = indvertnnd; indgrafptr->s.velosum = (indvelotax != NULL) ? indvelosum : indgrafptr->s.vertnbr; indgrafptr->s.edgenbr = indedgenum - indgrafptr->s.baseval; /* Set actual number of edges */ indgrafptr->s.edlosum = HGRAPHINDUCE2EDLOSUM; indgrafptr->s.degrmax = inddegrmax; indgrafptr->enlosum = HGRAPHINDUCE2ENLOSUM; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_bl.c000066400000000000000000000214051514310134000272040ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_bl.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module resizes block data using **/ /** the block splitting post-processing **/ /** algorithm. **/ /** **/ /** DATES : # Version 3.4 : from : 24 jun 2002 **/ /** to : 24 jun 2002 **/ /** # Version 4.0 : from : 26 jun 2002 **/ /** to : 17 mar 2005 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 25 jul 2007 **/ /** # Version 6.1 : from : 18 jan 2020 **/ /** to : 18 jan 2020 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 10 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_bl.h" #include "hgraph_order_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderBl ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HgraphOrderBlParam * restrict const paraptr) { Gnum cblknbr; /* Number of column blocks for splitting */ Gnum cblksiz; /* Number of allocated column blocks */ if (paraptr->cblkmin <= 0) { errorPrint ("hgraphOrderBl: invalid minimum block size"); return (1); } if (hgraphOrderSt (grafptr, ordeptr, ordenum, cblkptr, paraptr->straptr) != 0) /* Perform ordering strategy */ return (1); if (cblkptr->cblktab == NULL) { /* If single column block */ #ifdef SCOTCH_DEBUG_HGRAPH2 if (cblkptr->vnodnbr != grafptr->vnohnbr) { errorPrint ("hgraphOrderBl: invalid column block"); return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ if ((cblkptr->vnodnbr <= 1) || /* Il block has only one column */ (grafptr->vnlosum < (2 * paraptr->cblkmin))) /* Or does not need to be split */ return (0); cblknbr = grafptr->vnlosum / paraptr->cblkmin; /* Get new (maximum) number of blocks */ cblksiz = MIN (cblknbr, grafptr->vnohnbr); /* No more column blocks than columns */ if ((cblkptr->cblktab = (OrderCblk *) memAlloc (cblksiz * sizeof (OrderCblk))) == NULL) { errorPrint ("hgraphOrderBl: out of memory"); return (1); } if (grafptr->s.velotax == NULL) { /* For unweighted graphs, split blocks evenly */ Gnum cblknum; for (cblknum = 0; cblknum < cblksiz; cblknum ++) { /* No more column blocks than those allocated */ cblkptr->cblktab[cblknum].typeval = ORDERCBLKLEAF; cblkptr->cblktab[cblknum].vnodnbr = DATASIZE (grafptr->vnlosum, cblknbr, cblknum); cblkptr->cblktab[cblknum].cblknbr = 0; cblkptr->cblktab[cblknum].cblktab = NULL; } } else { Gnum vnlomax; /* Maxumum weight to reach for this subblock */ Gnum vnlosum; /* Current accumulated weight */ Gnum vnodnum; /* Current permuted node index */ Gnum vnodbas; /* Starting permuted node index for current block */ Gnum cblknum; /* Current number of column subblocks */ Gnum cblkidx; /* Ghost column block index for even splitting */ vnlomax = vnlosum = 0; vnodbas = vnodnum = grafptr->s.baseval; cblknum = cblkidx = 0; do { /* Go on filling column blocks */ #ifdef SCOTCH_DEBUG_HGRAPH2 if (cblknum >= cblksiz) { /* No more column blocks than those allocated */ errorPrint ("hgraphOrderBl: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ do { /* Compute bound of next subblock */ cblkidx ++; #ifdef SCOTCH_DEBUG_HGRAPH2 if (cblkidx > cblknbr) { /* No more ghost indices than ghost column blocks */ errorPrint ("hgraphOrderBl: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ vnlomax = DATASCAN (grafptr->vnlosum, cblknbr, cblkidx); /* Bound of next subblock */ } while (vnlomax <= vnlosum); /* Next bound must be higher than current state */ do { /* Accumulate weights until bound is reached */ vnlosum += grafptr->s.velotax[vnodnum]; vnodnum ++; } while (vnlosum < vnlomax); cblkptr->cblktab[cblknum].typeval = ORDERCBLKLEAF; /* Build relevant column block */ cblkptr->cblktab[cblknum].vnodnbr = vnodnum - vnodbas; cblkptr->cblktab[cblknum].cblknbr = 0; cblkptr->cblktab[cblknum].cblktab = NULL; cblknum ++; /* One more effective column block */ vnodbas = vnodnum; /* Reset base for next block */ } while (vnlosum < grafptr->vnlosum); /* As long as columns remain */ cblknbr = cblknum; /* Use effective number of blocks */ } cblkptr->typeval = ORDERCBLKSEQU; /* Node becomes a sequence of blocks */ cblkptr->cblknbr = cblknbr; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->treenbr += cblknbr; /* That many more tree nodes */ ordeptr->cblknbr += cblknbr - 1; /* That many more column blocks */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ } else { /* Block already partitioned */ Gnum cblknum; for (cblknum = 0; cblknum < cblkptr->cblknbr; cblknum ++) { if (hgraphOrderBl (grafptr, ordeptr, ordenum, cblkptr->cblktab + cblknum, paraptr) != 0) return (1); } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_bl.h000066400000000000000000000066571514310134000272250ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2010,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_bl.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the block splitting algorithm. **/ /** **/ /** DATES : # Version 3.4 : from : 24 jun 2002 **/ /** to : 24 jun 2002 **/ /** # Version 4.0 : from : 26 jun 2002 **/ /** to : 29 dec 2004 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 05 apr 2018 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderBlParam_ { Strat * straptr; /*+ Ordering strategy +*/ INT cblkmin; /*+ Block splitting size +*/ } HgraphOrderBlParam; /* ** The function prototypes. */ int hgraphOrderBl (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderBlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_cc.c000066400000000000000000000210171514310134000271730ustar00rootroot00000000000000/* Copyright 2018,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_cc.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a subgraph by **/ /** ordering separately its connected **/ /** components. **/ /** **/ /** DATES : # Version 6.0 : from : 04 apr 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 02 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_cc.h" #include "hgraph_order_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderCc ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HgraphOrderCcParam * restrict const paraptr) { Hgraph indgrafdat; Gnum * restrict flagtax; /* Flag array */ Gnum * restrict roottab; /* Array of root indices in queutab */ Gnum rootnbr; /* Number of connected components */ Gnum rootnum; Gnum vrotnum; /* Number of found root vertex */ Gnum * restrict queutab; /* Vertex queue and sub-lists */ Gnum qhedidx; Gnum qtalidx; int o; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vnhdtax = grafptr->vnhdtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; if (memAllocGroup ((void **) (void *) &queutab, (size_t) ( grafptr->vnohnbr * sizeof (Gnum)), &roottab, (size_t) ((grafptr->vnohnbr + 1) * sizeof (Gnum)), /* TRICK: +1 to store end index */ &flagtax, (size_t) ( grafptr->vnohnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hgraphOrderCc: out of memory"); return (1); } memSet (flagtax, ~0, grafptr->vnohnbr * sizeof (Gnum)); /* Initialize flag array */ flagtax -= grafptr->s.baseval; rootnbr = 0; qhedidx = qtalidx = 0; vrotnum = grafptr->s.baseval; while (qtalidx < grafptr->vnohnbr) { while (flagtax[vrotnum] >= 0) /* Search for an unflagged vertex */ vrotnum ++; roottab[rootnbr] = qtalidx; /* Record start vertex of component */ flagtax[vrotnum] = rootnbr; /* Flag vertex as enqueued */ queutab[qtalidx ++] = vrotnum; /* Enqueue found root vertex */ while (qhedidx < qtalidx) { Gnum vertnum; Gnum edgenum; vertnum = queutab[qhedidx ++]; /* Get vertex from queue */ #ifdef SCOTCH_DEBUG_ORDER2 if ((vertnum < grafptr->s.baseval) || (vertnum >= grafptr->vnohnnd)) { errorPrint ("hgraphOrderCc: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ for (edgenum = verttax[vertnum]; edgenum < vnhdtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (flagtax[vertend] < 0) { /* If end vertex has never been enqueued */ flagtax[vertend] = rootnbr; /* Flag end vertex */ queutab[qtalidx ++] = vertend; /* Enqueue it */ } #ifdef SCOTCH_DEBUG_ORDER2 else { if (flagtax[vertend] != rootnbr) { errorPrint ("hgraphOrderCc: internal error (2)"); return (1); } } #endif /* SCOTCH_DEBUG_ORDER2 */ } } rootnbr ++; /* One more connected component */ } roottab[rootnbr] = qtalidx; /* Record end index */ if (rootnbr == 1) { /* If only one connected component */ memFree (queutab); /* Free group leader */ return (hgraphOrderSt (grafptr, ordeptr, ordenum, cblkptr, paraptr->straptr)); /* Perform strategy on whole graph */ } if ((cblkptr->cblktab = (OrderCblk *) memAlloc (rootnbr * sizeof (OrderCblk))) == NULL) { errorPrint ("hgraphOrderCc: out of memory"); memFree (queutab); return (1); } #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->treenbr += rootnbr; /* These more number of tree nodes */ ordeptr->cblknbr += rootnbr - 1; /* These more number of column blocks */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ cblkptr->typeval = ORDERCBLKDICO; /* Node becomes a set of disconnected components */ cblkptr->cblknbr = rootnbr; o = 0; /* Assume everything will be all right */ for (rootnum = 0; rootnum < rootnbr; rootnum ++) { /* Initialize tree node array */ Gnum vnodnbr; vnodnbr = roottab[rootnum + 1] - roottab[rootnum]; cblkptr->cblktab[rootnum].typeval = ORDERCBLKLEAF; cblkptr->cblktab[rootnum].vnodnbr = vnodnbr; cblkptr->cblktab[rootnum].cblknbr = 0; cblkptr->cblktab[rootnum].cblktab = NULL; if (hgraphInduceList (grafptr, vnodnbr, &queutab[roottab[rootnum]], grafptr->s.vertnbr - grafptr->vnohnbr, &indgrafdat) != 0) { errorPrint ("hgraphOrderCc: cannot create induced graph"); memFree (queutab); return (1); } o = hgraphOrderSt (&indgrafdat, ordeptr, ordenum + roottab[rootnum], /* Perform strategy on induced subgraph */ &cblkptr->cblktab[rootnum], paraptr->straptr); hgraphExit (&indgrafdat); if (o != 0) { errorPrint ("hgraphOrderCc: cannot compute ordering on induced graph"); break; } } memFree (queutab); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_cc.h000066400000000000000000000060471514310134000272060ustar00rootroot00000000000000/* Copyright 2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_cc.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the graph connected comp- **/ /** onent ordering routine. **/ /** **/ /** DATES : # Version 6.0 : from : 04 apr 2018 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderCcParam_ { Strat * straptr; /*+ Ordering strategy for connected components +*/ } HgraphOrderCcParam; /* ** The function prototypes. */ int hgraphOrderCc (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderCcParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_cp.c000066400000000000000000000722101514310134000272110ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2014,2015,2018,2020,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_cp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders vertices by compres- **/ /** sing vertices with identical adjacency **/ /** structure. **/ /** **/ /** DATES : # Version 3.2 : from : 29 aug 1998 **/ /** to : 12 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 03 jan 1999 **/ /** # Version 4.0 : from : 01 jan 2003 **/ /** to : 05 jan 2005 **/ /** # Version 5.0 : from : 29 dec 2006 **/ /** to : 22 may 2008 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 6.0 : from : 04 aug 2014 **/ /** to : 27 jan 2020 **/ /** # Version 7.0 : from : 05 may 2019 **/ /** to : 17 jan 2025 **/ /** **/ /** NOTES : # Pre-hashing proves itself extremely **/ /** efficient, since for graphs that **/ /** will be compressed, very few writes **/ /** will be performed in the pre-hashing **/ /** array, and for others, for which pre- **/ /** hashing costs much more, it will save **/ /** time in the end. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HGRAPH_ORDER_CP #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_cp.h" #include "hgraph_order_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderCp ( Hgraph * restrict const finegrafptr, Order * restrict const fineordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HgraphOrderCpParam * const paraptr) { Hgraph coargrafdat; /* Compressed halo subgraph */ Order coarordedat; /* Ordering of compressed halo subgraph */ Gnum * coarperitab; /* Coarse permutation array */ const Gnum * restrict coarperitax; /* Temporary based access to coarperitab */ Gnum coarvertnbr; /* Number of compressed vertices */ Gnum coarvertnum; /* Number of current compressed vertex */ Gnum coarvnhdsiz; /* Size of non-halo end vertex array; zero if graph has no halo */ Gnum coarvsizsiz; /* Size of coarse vertex sizes array; zero if no fine vertex loads */ Gnum * restrict coarvsiztax; /* Array of coarse vertex sizes (as number of merged fine vertices) */ Gnum coaredgenbr; /* Number of compressed edges */ Gnum coaredgenum; /* Number of current compressed edge */ Gnum coarenohnnd; /* Position in edge array of first edge of first halo vertex */ Gnum * restrict coarvpostax; /* Position in fine permutation of fine vertices merged into same vertex */ Gnum * restrict finecoartax; /* Original to compressed vertex number array */ HgraphOrderCpMate * restrict finematetab; /* Array of fine vertices that may be compressed with current vertex */ HgraphOrderCpHash * restrict finehashtab; /* Neighbor hash table */ Gnum finehashmsk; /* Mask for access to hash table */ int * restrict finehasptab; /* Pre-hashing table */ Gnum finehaspmsk; /* Mask for access to pre-hashing table */ Gnum * restrict finehsumtax; /* Array of hash values for each original vertex */ Gnum finevertnum; /* Number of current original vertex */ Gnum finevsizsum; /* Sum of compressed vertex sizes to build fine inverse permutation */ void * dataptr; /* Flag of memory allocation success */ #ifdef SCOTCH_DEBUG_ORDER2 Gnum finevertnbr; /* Number of fine vertices in compressed elimination tree */ #endif /* SCOTCH_DEBUG_ORDER2 */ Gnum * restrict const fineperitab = fineordeptr->peritab; const Gnum * restrict const fineverttax = finegrafptr->s.verttax; const Gnum * restrict const finevelotax = finegrafptr->s.velotax; const Gnum * restrict const finevendtax = finegrafptr->s.vendtax; const Gnum * restrict const finevnumtax = finegrafptr->s.vnumtax; const Gnum * restrict const finevnhdtax = finegrafptr->vnhdtax; const Gnum * restrict const fineedgetax = finegrafptr->s.edgetax; for (finehashmsk = 15; /* Set neighbor hash table sizes */ finehashmsk < finegrafptr->s.degrmax; finehashmsk = finehashmsk * 2 + 1) ; finehashmsk = finehashmsk * 4 + 3; /* Fill hash table at 1/4 of capacity */ if (((finecoartax = (Gnum *) memAlloc (finegrafptr->s.vertnbr * sizeof (Gnum))) == NULL) || (memAllocGroup ((void **) (void *) &finehashtab, (size_t) ((finehashmsk + 1) * sizeof (HgraphOrderCpHash)), &finematetab, (size_t) (finegrafptr->s.degrmax * sizeof (HgraphOrderCpMate)), NULL) == NULL) || ((finehsumtax = (Gnum *) memAlloc (finegrafptr->vnohnbr * sizeof (Gnum))) == NULL)) { errorPrint ("hgraphOrderCp: out of memory (1)"); if (finecoartax != NULL) { if (finehashtab != NULL) memFree (finehashtab); memFree (finecoartax); } return (1); } finehsumtax -= finegrafptr->s.baseval; /* TRICK: do not base finecoartax yet (see later) */ finehasptab = (int *) finecoartax; /* Use finecoartab as temporary pre-hash table */ for (finehaspmsk = 1; /* Get pre-hash mask that fits in finecoartab */ finehaspmsk < finegrafptr->s.vertnbr; /* Smallest (2^i)-1 value >= vertnbr */ finehaspmsk = finehaspmsk * 2 + 1) ; finehaspmsk >>= 1; /* Ensure masked data will always fit into finecoartab array */ finehaspmsk = (finehaspmsk * (sizeof (Gnum) / sizeof (int))) + ((sizeof (Gnum) / sizeof (int)) - 1); if (finehaspmsk >= (Gnum) ((sizeof (int) << (3 + 1)) - 1)) /* Only use 1/8 of array for pre-hashing, for increased cache locality */ finehaspmsk >>= 3; memSet (finehasptab, 0, (finehaspmsk + 1) * sizeof (int)); /* Initialize pre-hash table */ for (finevertnum = finegrafptr->s.baseval, coarvertnbr = finegrafptr->vnohnbr; /* For all non-halo vertices */ finevertnum < finegrafptr->vnohnnd; finevertnum ++) { Gnum fineedgenum; /* Current edge number */ Gnum finehsumval; /* Hash sum value */ Gnum finehsumbit; for (fineedgenum = fineverttax[finevertnum], finehsumval = finevertnum; /* For all edges, including halo edges */ fineedgenum < finevendtax[finevertnum]; fineedgenum ++) finehsumval += fineedgetax[fineedgenum]; finehsumtax[finevertnum] = finehsumval; finehsumbit = finehsumval & ((sizeof (int) << 3) - 1); /* Get bit mask and byte position (division should be optimized into a shift) */ finehsumval /= (sizeof (int) << 3); finehsumval &= finehaspmsk; /* Make hash sum value fit into finehasptab */ coarvertnbr -= (finehasptab[finehsumval] >> finehsumbit) & 1; /* If hash value already in pre-hash table, maybe one more vertex compressed */ finehasptab[finehsumval] |= (1 << finehsumbit); /* Put value into pre-hash table anyway */ } if ((double) coarvertnbr > ((double) finegrafptr->vnohnbr * paraptr->comprat)) { /* If graph needs not be compressed */ memFree (finehsumtax + finegrafptr->s.baseval); memFree (finehashtab); memFree (finecoartax); /* Not yet based */ return (hgraphOrderSt (finegrafptr, fineordeptr, ordenum, cblkptr, paraptr->stratunc)); } finecoartax -= finegrafptr->s.baseval; /* Base finecoartab array */ memSet (finehashtab, ~0, (finehashmsk + 1) * sizeof (HgraphOrderCpHash)); hgraphInit (&coargrafdat); /* Initialize compressed halo graph structure */ coargrafdat.s.baseval = 1; /* Base coarse graph to 1 because hgraphOrderHb and hgraphOrderHf prefer it */ for (finevertnum = finegrafptr->s.baseval, coarvertnbr = coargrafdat.s.baseval, coaredgenbr = finegrafptr->s.edgenbr; /* For all non-halo vertices */ finevertnum < finegrafptr->vnohnnd; finevertnum ++) { Gnum finedegrval; /* Degree of current fine vertex */ Gnum finehsumval; /* Current hash sum value */ Gnum finematenbr; /* Number of mates of current vertex */ Gnum fineedgenum; /* Current edge number */ finedegrval = finevendtax[finevertnum] - fineverttax[finevertnum]; finehsumval = finehsumtax[finevertnum]; finematenbr = 0; /* Reset potential mate array */ for (fineedgenum = fineverttax[finevertnum]; /* For all edges, including halo edges */ fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { Gnum finevertend; finevertend = fineedgetax[fineedgenum]; if ((finevertend < finevertnum) && /* If neighbor has same characteristics */ (finehsumval == finehsumtax[finevertend]) && (finedegrval == (finevendtax[finevertend] - fineverttax[finevertend]))) { Gnum finematenum; Gnum coarvertend; for (finematenum = 0, coarvertend = finecoartax[finevertend]; /* Search if end vertex has already been compressed with some mate */ (finematenum < finematenbr) && (finematetab[finematenum].coarvertend != coarvertend); finematenum ++) ; if (finematenum == finematenbr) { /* If new slot needed */ finematetab[finematenum].coarvertend = coarvertend; /* Build it */ finematetab[finematenum].finevertend = finevertend; finematenbr ++; } } } finecoartax[finevertnum] = coarvertnbr ++; /* Assume no mate found */ if (finematenbr > 0) { /* If potential mates exist */ Gnum fineedgenum; /* Current edge number */ Gnum finehashnum; for (fineedgenum = fineverttax[finevertnum]; /* For all edges, including halo edges */ fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { Gnum finevertend; finevertend = fineedgetax[fineedgenum]; /* Add end vertex to hash table */ for (finehashnum = (finevertend * HGRAPHORDERCPHASHPRIME) & finehashmsk; /* Search for empty slot in hash table */ finehashtab[finehashnum].vertnum == finevertnum; finehashnum = (finehashnum + 1) & finehashmsk) ; finehashtab[finehashnum].vertnum = finevertnum; finehashtab[finehashnum].vertend = finevertend; } for (finehashnum = (finevertnum * HGRAPHORDERCPHASHPRIME) & finehashmsk; /* Add current vertex to hash table */ finehashtab[finehashnum].vertnum == finevertnum; finehashnum = (finehashnum + 1) & finehashmsk) ; finehashtab[finehashnum].vertnum = finevertnum; finehashtab[finehashnum].vertend = finevertnum; finematenbr --; /* Point to first potential mate */ do { /* For all potential mates */ Gnum fineedgenum; /* Current edge number */ Gnum fineedgennd; for (fineedgenum = fineverttax[finematetab[finematenbr].finevertend], /* For all edges, including halo edges */ fineedgennd = finevendtax[finematetab[finematenbr].finevertend]; fineedgenum < fineedgennd; fineedgenum ++) { Gnum finevertend; finevertend = fineedgetax[fineedgenum]; for (finehashnum = (finevertend * HGRAPHORDERCPHASHPRIME) & finehashmsk; ; finehashnum = (finehashnum + 1) & finehashmsk) { if (finehashtab[finehashnum].vertnum != finevertnum) /* If mate neighbor not found in hash table */ goto loop_failed; /* Vertex cannot be merged to mate, so skip to next mate */ if (finehashtab[finehashnum].vertend == finevertend) /* Else if mate neighbor found in hash table */ break; /* Skip to next mate neighbor to find */ } } coarvertnbr --; /* Same adjacency structure */ finecoartax[finevertnum] = finematetab[finematenbr].coarvertend; /* Get number */ coaredgenbr -= finedegrval + 1; /* Remove exceeding edges */ break; loop_failed: ; } while (finematenbr -- > 0); } } coargrafdat.vnohnnd = coarvertnbr; /* Save number of non-halo vertices */ memFree (finehsumtax + finegrafptr->s.baseval); if ((double) (coarvertnbr - coargrafdat.s.baseval) > ((double) finegrafptr->vnohnbr * paraptr->comprat)) { /* If graph needs not be compressed */ memFree (finehashtab); memFree (finecoartax + finegrafptr->s.baseval); return (hgraphOrderSt (finegrafptr, fineordeptr, ordenum, cblkptr, paraptr->stratunc)); } for ( ; finevertnum < finegrafptr->s.vertnnd; finevertnum ++) /* For all halo vertices */ finecoartax[finevertnum] = coarvertnbr ++; /* Halo vertices are never compressed */ coargrafdat.s.flagval = GRAPHFREETABS | GRAPHVERTGROUP; /* Do not set HGRAPHFREEVNHD since vnhdtax allocated in group */ coargrafdat.s.vertnbr = coarvertnbr - coargrafdat.s.baseval; coargrafdat.s.vertnnd = coarvertnbr; coargrafdat.s.velosum = finegrafptr->s.velosum; coargrafdat.s.degrmax = finegrafptr->s.degrmax; coargrafdat.vnohnbr = coargrafdat.vnohnnd - coargrafdat.s.baseval; coargrafdat.vnlosum = finegrafptr->vnlosum; coarvnhdsiz = (finegrafptr->s.vertnbr == finegrafptr->vnohnbr) ? 0 : coargrafdat.vnohnbr; /* If no halo, no need for vnhdtax; will use vendtax */ coarvsizsiz = (finevelotax == NULL) ? 0 : coarvertnbr; /* If no fine vertex loads, use coarse velotax as coarvsiztax */ if ((dataptr = memAllocGroup ((void **) (void *) &coargrafdat.s.verttax, (size_t) ((coarvertnbr + 1) * sizeof (Gnum)), &coargrafdat.vnhdtax, (size_t) (coarvnhdsiz * sizeof (Gnum)), &coargrafdat.s.velotax, (size_t) (coarvertnbr * sizeof (Gnum)), &coarvsiztax, (size_t) (coarvsizsiz * sizeof (Gnum)), NULL)) != NULL) { dataptr = coargrafdat.s.edgetax = (Gnum *) memAlloc (coaredgenbr * sizeof (Gnum)); } if (dataptr == NULL) { errorPrint ("hgraphOrderCp: out of memory (2)"); hgraphExit (&coargrafdat); memFree (finehashtab); memFree (finecoartax + finegrafptr->s.baseval); return (1); } coargrafdat.s.verttax -= coargrafdat.s.baseval; coargrafdat.s.vendtax = coargrafdat.s.verttax + 1; /* Use compact representation of arrays */ coargrafdat.s.velotax -= coargrafdat.s.baseval; coargrafdat.s.edgetax -= coargrafdat.s.baseval; coargrafdat.vnhdtax = (finegrafptr->s.vertnbr == finegrafptr->vnohnbr) ? coargrafdat.s.vendtax : coargrafdat.vnhdtax - coargrafdat.s.baseval; coarvsiztax = (finevelotax == NULL) ? coargrafdat.s.velotax : coarvsiztax - coargrafdat.s.baseval; memSet (finehashtab, ~0, (finehashmsk + 1) * sizeof (HgraphOrderCpHash)); for (finevertnum = finegrafptr->s.baseval, coarvertnum = coaredgenum = coargrafdat.s.baseval; /* For all non-halo vertices */ finevertnum < finegrafptr->vnohnnd; finevertnum ++) { Gnum fineedgenum; /* Current edge number */ if (finecoartax[finevertnum] != coarvertnum) /* Skip fine vertices until we find one that is part of current coarse vertex */ continue; coargrafdat.s.verttax[coarvertnum] = coaredgenum; coarvsiztax[coarvertnum] = 1; /* Fill coargrafdat.s.velotax if finegrafptr has no vertex loads */ for (fineedgenum = fineverttax[finevertnum]; /* For all non-halo edges of vertex */ fineedgenum < finevnhdtax[finevertnum]; fineedgenum ++) { Gnum finevertend; Gnum finehashnum; finevertend = fineedgetax[fineedgenum]; if (finecoartax[finevertend] == coarvertnum) { /* If neighbor is merged into us, merge load but do not write edge */ coarvsiztax[coarvertnum] ++; /* Fill coargrafdat.s.velotax if finegrafptr has no vertex loads */ continue; } for (finehashnum = (finecoartax[finevertend] * HGRAPHORDERCPHASHPRIME) & finehashmsk; ; /* Search for end vertex in hash table */ finehashnum = (finehashnum + 1) & finehashmsk) { if (finehashtab[finehashnum].vertnum != coarvertnum) { finehashtab[finehashnum].vertnum = coarvertnum; finehashtab[finehashnum].vertend = coargrafdat.s.edgetax[coaredgenum ++] = finecoartax[finevertend]; break; } if (finehashtab[finehashnum].vertend == finecoartax[finevertend]) break; /* If edge already exists */ } } coargrafdat.vnhdtax[coarvertnum] = coaredgenum; /* Set end of non-halo edge sub-array */ for ( ; fineedgenum < finegrafptr->s.vendtax[finevertnum]; fineedgenum ++) { /* For edges linking to halo vertices */ Gnum finevertend; finevertend = fineedgetax[fineedgenum]; coargrafdat.s.edgetax[coaredgenum ++] = finecoartax[finevertend]; /* Halo vertices are always defined and unique */ } coarvertnum ++; } for (coarenohnnd = coaredgenum; finevertnum < finegrafptr->s.vertnnd; finevertnum ++) { /* For all halo vertices */ Gnum fineedgenum; /* Current edge number */ #ifdef SCOTCH_DEBUG_ORDER2 if (finecoartax[finevertnum] != coarvertnum) { errorPrint ("hgraphOrderCp: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ coargrafdat.s.verttax[coarvertnum] = coaredgenum; coarvsiztax[coarvertnum] = 1; /* Fill coargrafdat.s.velotax if finegrafptr has no vertex loads */ for (fineedgenum = fineverttax[finevertnum]; /* For all edges of halo vertex */ fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { Gnum finevertend; Gnum finehashnum; finevertend = fineedgetax[fineedgenum]; #ifdef SCOTCH_DEBUG_ORDER2 if (finecoartax[finevertend] == coarvertnum) { /* No neighbor can be merged into us since halo vertices are unique */ errorPrint ("hgraphOrderCp: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ for (finehashnum = (finecoartax[finevertend] * HGRAPHORDERCPHASHPRIME) & finehashmsk; ; /* Search for end vertex in hash table */ finehashnum = (finehashnum + 1) & finehashmsk) { if (finehashtab[finehashnum].vertnum != coarvertnum) { finehashtab[finehashnum].vertnum = coarvertnum; finehashtab[finehashnum].vertend = coargrafdat.s.edgetax[coaredgenum ++] = finecoartax[finevertend]; break; } if (finehashtab[finehashnum].vertend == finecoartax[finevertend]) break; /* If edge already exists */ } } coarvertnum ++; } coargrafdat.s.verttax[coarvertnum] = coaredgenum; /* Set end of compact vertex array */ coargrafdat.s.edlosum = coargrafdat.s.edgenbr = coaredgenum - coargrafdat.s.baseval; coargrafdat.enlosum = coargrafdat.enohnbr = coargrafdat.s.edgenbr - 2 * (coaredgenum - coarenohnnd); coargrafdat.levlnum = finegrafptr->levlnum; /* Keep level */ coargrafdat.contptr = finegrafptr->contptr; /* Use context */ if (finevelotax != NULL) { /* If fine graph has vertex loads */ memSet (coargrafdat.s.velotax + coargrafdat.s.baseval, 0, coargrafdat.s.vertnbr * sizeof (Gnum)); for (finevertnum = finegrafptr->s.baseval; finevertnum < finegrafptr->s.vertnnd; finevertnum ++) /* Compute vertex loads for compressed graph */ coargrafdat.s.velotax[finecoartax[finevertnum]] += finevelotax[finevertnum]; } memFree (finehashtab); coargrafdat.s.edgetax = (Gnum *) memRealloc (coargrafdat.s.edgetax + coargrafdat.s.baseval, coargrafdat.s.edgenbr * sizeof (Gnum)) - coargrafdat.s.baseval; #ifdef SCOTCH_DEBUG_ORDER2 if (hgraphCheck (&coargrafdat) != 0) { errorPrint ("hgraphOrderCp: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ if ((coarperitab = memAlloc (coargrafdat.vnohnbr * sizeof (Gnum))) == NULL) { /* Coarse permutation only for non-halo vertices */ errorPrint ("hgraphOrderCp: out of memory (3)"); hgraphExit (&coargrafdat); memFree (finecoartax + finegrafptr->s.baseval); return (1); } orderInit (&coarordedat, coargrafdat.s.baseval, coargrafdat.vnohnbr, coarperitab); /* Build ordering of compressed subgraph */ if (hgraphOrderSt (&coargrafdat, &coarordedat, 0, &coarordedat.rootdat, paraptr->stratcpr) != 0) { memFree (coarperitab); hgraphExit (&coargrafdat); memFree (finecoartax + finegrafptr->s.baseval); return (1); } *cblkptr = coarordedat.rootdat; /* Link sub-tree to ordering */ coarordedat.rootdat.cblktab = NULL; /* Unlink sub-tree from sub-ordering */ #ifdef SCOTCH_DEBUG_ORDER2 finevertnbr = #endif /* SCOTCH_DEBUG_ORDER2 */ hgraphOrderCpTree (coarordedat.peritab, coarvsiztax, cblkptr, 0); /* Expand sub-tree */ #ifdef SCOTCH_DEBUG_ORDER2 if (finevertnbr != finegrafptr->vnohnbr) { errorPrint ("hgraphOrderCp: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&fineordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ fineordeptr->treenbr += coarordedat.treenbr - 1; /* Adjust number of tree nodes */ fineordeptr->cblknbr += coarordedat.cblknbr - 1; /* Adjust number of column blocks */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&fineordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ coarvpostax = coargrafdat.s.verttax; /* Re-cycle verttab (not velotab as may be merged with coarvsiztab) */ coarperitax = coarperitab - coargrafdat.s.baseval; for (coarvertnum = coargrafdat.s.baseval, finevsizsum = 0; /* Compute initial indices for inverse permutation expansion */ coarvertnum < coargrafdat.vnohnnd; coarvertnum ++) { coarvpostax[coarperitax[coarvertnum]] = finevsizsum; finevsizsum += coarvsiztax[coarperitax[coarvertnum]]; } if (finevnumtax == NULL) { /* If fine graph is original graph */ for (finevertnum = finegrafptr->s.baseval; finevertnum < finegrafptr->vnohnnd; finevertnum ++) /* Compute fine permutation */ fineperitab[coarvpostax[finecoartax[finevertnum]] ++] = finevertnum; } else { /* Graph is not original graph */ for (finevertnum = finegrafptr->s.baseval; finevertnum < finegrafptr->vnohnnd; finevertnum ++) /* Compute fine permutation */ fineperitab[coarvpostax[finecoartax[finevertnum]] ++] = finevnumtax[finevertnum]; } memFree (coarperitab); memFree (finecoartax + finegrafptr->s.baseval); orderExit (&coarordedat); hgraphExit (&coargrafdat); /* Free coarvsiztab as part of vertex group */ return (0); } /* This routine turns the coarse elimination ** tree produced by the ordering of the coarse ** graph into a fine elimination tree, according ** to the cardinality of the coarse vertices. ** It returns: ** - !0 : overall number of fine vertices, in all cases. */ static Gnum hgraphOrderCpTree ( const Gnum * restrict const coarperitab, /* Coarse inverse permutation */ const Gnum * restrict const coarvsiztax, /* Array of fine sizes of coarse vertices */ OrderCblk * restrict const coficblkptr, /* Current coarse/fine column block cell */ const Gnum coarordenum) /* Compressed vertex to start expansion at */ { Gnum finevertnbr; /* Number of fine vertices in subtree */ finevertnbr = 0; /* No fine vertices yet */ if (coficblkptr->cblktab == NULL) { /* If leaf of column block tree */ Gnum coarvnumnum; for (coarvnumnum = coarordenum; coarvnumnum < coarordenum + coficblkptr->vnodnbr; coarvnumnum ++) finevertnbr += coarvsiztax[coarperitab[coarvnumnum]]; /* Sum-up fine vertices */ } else { Gnum coarvertnbr; /* Number of coarse vertices in cell */ Gnum coarvertsum; /* Number of coarse vertices in subtree */ Gnum coficblknum; /* Index in column block array */ for (coficblknum = 0, coarvertsum = coarordenum; /* Start at current coarse index */ coficblknum < coficblkptr->cblknbr; coficblknum ++) { coarvertnbr = coficblkptr->cblktab[coficblknum].vnodnbr; /* Save number of coarse vertices */ finevertnbr += hgraphOrderCpTree (coarperitab, coarvsiztax, &coficblkptr->cblktab[coficblknum], coarvertsum); coarvertsum += coarvertnbr; /* Sum-up coarse vertices */ } } coficblkptr->vnodnbr = finevertnbr; /* Set number of fine vertices */ return (finevertnbr); /* Return accumulated number */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_cp.h000066400000000000000000000112321514310134000272130ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2014,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_cp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the graph compression **/ /** ordering routine. **/ /** **/ /** DATES : # Version 3.2 : from : 29 aug 1998 **/ /** to : 09 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 03 jan 1999 **/ /** # Version 4.0 : from : 01 jan 2003 **/ /** to : 01 jan 2003 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 09 nov 2014 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing vertex numbers. +*/ #define HGRAPHORDERCPHASHPRIME 17 /* Prime number */ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderCpParam_ { double comprat; /*+ Compression ratio threshold +*/ Strat * stratcpr; /*+ Compressed subgraph ordering strategy +*/ Strat * stratunc; /*+ Uncompressed subgraph ordering strategy +*/ } HgraphOrderCpParam; /*+ This structure holds fine neighbor hashing data. +*/ typedef struct HgraphOrderCpHash_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum vertend; /*+ Adjacent end vertex number +*/ } HgraphOrderCpHash; /*+ This structure holds coarse neighbor mate data. +*/ typedef struct HgraphOrderCpMate_ { Gnum coarvertend; /*+ Adjacent coarse end vertex number +*/ Gnum finevertend; /*+ Adjacent end vertex number +*/ } HgraphOrderCpMate; /* ** The function prototypes. */ #ifdef SCOTCH_HGRAPH_ORDER_CP static Gnum hgraphOrderCpTree (const Gnum * const, const Gnum * const, OrderCblk * const, const Gnum); #endif /* SCOTCH_HGRAPH_ORDER_CP */ int hgraphOrderCp (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderCpParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_gp.c000066400000000000000000000276541514310134000272310ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_gp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a subgraph (most **/ /** likely a separator) using the Gibbs, **/ /** Poole, and Stockmeyer algorithm. **/ /** **/ /** DATES : # Version 3.2 : from : 31 oct 1996 **/ /** to : 27 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 4.0 : from : 28 jun 2002 **/ /** to : 01 dec 2003 **/ /** # Version 4.0 : from : 10 sep 2007 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_gp.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderGp ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HgraphOrderGpParam * restrict const paraptr) { HgraphOrgerGpQueue queudat; /* Neighbor queue */ HgraphOrderGpVertex * restrict vexxtax; /* Based access to vertex array */ Gnum passnum; /* Pass number */ Gnum rootnum; /* Number of root vertex */ Gnum diamnum; /* Vertex which achieves diameter */ int diamflag; /* Flag set if diameter changed */ Gnum diamdist; /* Maximum diameter value found */ Gnum vertdist; /* DIstance of current vertex */ Gnum vertnum; /* Number of current vertex */ Gnum edgenum; /* Number of current edge */ Gnum ordeval; /* Current ordering value */ Gnum ordevnd; /* End value of ordering */ const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vnumtax = grafptr->s.vnumtax; const Gnum * restrict const vnhdtax = grafptr->vnhdtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; if (memAllocGroup ((void **) (void *) &queudat.qtab, (size_t) (grafptr->vnohnbr * sizeof (Gnum)), &vexxtax, (size_t) (grafptr->vnohnbr * sizeof (HgraphOrderGpVertex)), NULL) == NULL) { errorPrint ("hgraphOrderGp: out of memory"); return (1); } memSet (vexxtax, 0, grafptr->vnohnbr * sizeof (HgraphOrderGpVertex)); /* Initialize pass numbers */ vexxtax -= grafptr->s.baseval; #ifdef SCOTCH_DEBUG_ORDER2 memSet (ordeptr->peritab + ordenum, ~0, grafptr->vnohnbr * sizeof (Gnum)); #endif /* SCOTCH_DEBUG_ORDER2 */ for (ordeval = ordenum, rootnum = grafptr->s.baseval, /* For all connected components */ ordevnd = ordeval + grafptr->vnohnbr; ordeval < ordevnd; ) { while (vexxtax[rootnum].passnum != 0) { /* Find first unallocated root */ rootnum ++; #ifdef SCOTCH_DEBUG_ORDER2 if (rootnum >= grafptr->vnohnnd) { errorPrint ("hgraphOrderGp: internal error (1)"); memFree (queudat.qtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ } diamnum = rootnum; /* Start from found root */ diamdist = 0; for (diamflag = 0, passnum = 1; /* Loop if modifications */ (diamflag ++ == 0) && (passnum <= paraptr->passnbr); passnum ++) { Gnum diamdegr; /* Degree of current pseudo-peripherial vertex */ hgraphOrderGpQueueFlush (&queudat); /* Flush vertex queue */ hgraphOrderGpQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* It has been enqueued */ vexxtax[diamnum].vertdist = 0; /* It is at distance zero */ diamdegr = vnhdtax[diamnum] - verttax[diamnum]; do { /* Loop on vertices in queue */ vertnum = hgraphOrderGpQueueGet (&queudat); /* Get vertex from queue */ #ifdef SCOTCH_DEBUG_ORDER2 if ((vertnum < grafptr->s.baseval) || (vertnum >= grafptr->vnohnnd)) { errorPrint ("hgraphOrderGp: internal error (2)"); memFree (queudat.qtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ vertdist = vexxtax[vertnum].vertdist; /* Get vertex distance */ if ((vertdist > diamdist) || /* If vertex increases diameter */ ((vertdist == diamdist) && /* Or is at diameter distance */ ((vnhdtax[vertnum] - verttax[vertnum]) < diamdegr))) { /* With smaller degree */ diamnum = vertnum; /* Set it as new diameter vertex */ diamdist = vertdist; diamdegr = vnhdtax[vertnum] - verttax[vertnum]; diamflag = 0; } vertdist ++; /* Set neighbor distance */ for (edgenum = verttax[vertnum]; edgenum < vnhdtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; #ifdef SCOTCH_DEBUG_ORDER2 if ((vertend < grafptr->s.baseval) || (vertend >= grafptr->vnohnnd)) { errorPrint ("hgraphOrderGp: internal error (3)"); memFree (queudat.qtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ if (vexxtax[vertend].passnum < passnum) { /* If vertex not queued yet */ hgraphOrderGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; vexxtax[vertend].vertdist = vertdist; } } } while (! hgraphOrderGpQueueEmpty (&queudat)); /* As long as queue is not empty */ } hgraphOrderGpQueueFlush (&queudat); /* Flush vertex queue */ hgraphOrderGpQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* Vertex has been enqueued */ do { /* Loop on vertices in queue */ vertnum = hgraphOrderGpQueueGet (&queudat); /* Get vertex from queue */ if (vexxtax[vertnum].passnum > passnum) /* If vertex already ordered (by-level ordering) */ continue; /* Skip to next vertex in queue */ vertdist = vexxtax[vertnum].vertdist; /* Get vertex distance */ do { /* Loop on vertices in layer */ Gnum edgennd; /* End of edge sub-array */ ordeptr->peritab[ordeval ++] = (vnumtax == NULL) ? vertnum : vnumtax[vertnum]; vexxtax[vertnum].passnum = passnum + 1; /* Set vertex as ordered */ for (edgenum = verttax[vertnum], edgennd = vnhdtax[vertnum], vertnum = ~0; edgenum < edgennd; edgenum ++) { /* Need edgennd because vertnum is overwritten */ Gnum vertend; vertend = edgetax[edgenum]; if ((vexxtax[vertend].vertdist == vertdist) && /* If neighbor vertex in same layer */ (vexxtax[vertend].passnum <= passnum)) { /* And not yet ordered */ vertnum = vertend; /* Set neighbor as next vertex */ edgenum ++; /* Process next neighbors, not this one again */ break; /* Process next neighbors without further testing */ } if (vexxtax[vertend].passnum < passnum) { /* Else if vertex not yet enqueued */ hgraphOrderGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; /* Set it as enqueued */ } } for ( ; edgenum < edgennd; edgenum ++) { /* Enqueue remaining neighbors */ Gnum vertend; vertend = edgetax[edgenum]; if (vexxtax[vertend].passnum < passnum) { /* If neighbor not yet enqueued */ hgraphOrderGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; /* Set it as enqueued */ } } } while (vertnum != ~0); } while (! hgraphOrderGpQueueEmpty (&queudat)); /* As long as queue is not empty */ } #ifdef SCOTCH_DEBUG_ORDER2 for (ordeval = ordenum; ordeval < ordenum + grafptr->vnohnbr; ordeval ++) { if (ordeptr->peritab[ordeval] == ~0) { errorPrint ("hgraphOrderGp: internal error (4)"); memFree (queudat.qtab); /* Free group leader */ return (1); } } #endif /* SCOTCH_DEBUG_ORDER2 */ memFree (queudat.qtab); /* Group freeing */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_gp.h000066400000000000000000000107551514310134000272300ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2010,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_gp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the Gibbs-Poole-Stockmeyer **/ /** node ordering routine. **/ /** **/ /** DATES : # Version 3.2 : from : 31 oct 1996 **/ /** to : 27 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 4.0 : from : 03 feb 2002 **/ /** to : 01 dec 2003 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderGpParam_ { INT passnbr; /*+ Number of passes to do +*/ } HgraphOrderGpParam; /*+ Complementary vertex structure. +*/ typedef struct HgraphOrgerGpVertex_ { Gnum passnum; /*+ Number of pass when vertex selected +*/ Gnum vertdist; /*+ Current distance from diameter vertex +*/ } HgraphOrderGpVertex; /*+ Neighbor queue. +*/ typedef struct HgraphOrgerGpQueue_ { Gnum * head; /*+ Head of distance queue +*/ Gnum * tail; /*+ Tail of distance queue +*/ Gnum * qtab; /*+ Array of queue elements +*/ } HgraphOrgerGpQueue; /* ** The function prototypes. */ int hgraphOrderGp (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderGpParam * restrict const); /* ** The macro definitions. */ #define hgraphOrderGpQueueFlush(queue) ((queue)->head = (queue)->tail = (queue)->qtab) #define hgraphOrderGpQueueEmpty(queue) ((queue)->head <= (queue)->tail) #define hgraphOrderGpQueuePut(queue,vnum) (* ((queue)->head ++) = (vnum)) #define hgraphOrderGpQueueGet(queue) (* ((queue)->tail ++)) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_hd.c000066400000000000000000000177701514310134000272140ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2019-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_hd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a separator using **/ /** the block-oriented Halo Approximate **/ /** (Multiple) Minimum Degree algorithm, **/ /** with super-variable accounting (HaloAMD **/ /** v2.0). **/ /** **/ /** DATES : # Version 3.2 : from : 09 aug 1998 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 05 jan 1999 **/ /** # Version 4.0 : from : 14 jan 2003 **/ /** to : 23 jan 2004 **/ /** # Version 5.0 : from : 10 sep 2007 **/ /** to : 10 sep 2007 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 11 nov 2019 **/ /** to : 11 feb 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hall_order_hx.h" #include "hall_order_hd.h" #include "hgraph_order_hd.h" #include "hgraph_order_hx.h" #include "hgraph_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderHd ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Multiple column-block +*/ const HgraphOrderHdParam * restrict const paraptr) { Gnum n; /* Number of nodes to order (with halo or not) */ Gnum norig; /* Number of nodes in uncompressed graph */ Gnum * restrict petab; Gnum pfree; Gnum iwlen; Gnum * restrict iwtab; Gnum * restrict lentab; Gnum * restrict nvartab; Gnum * restrict elentab; Gnum * restrict lasttab; Gnum * restrict leaftab; Gnum * restrict secntab; /* Array of index to first secondary variable */ Gnum * restrict nexttab; /* Array of index of next principal variable */ Gnum * restrict frsttab; Gnum * restrict cwgttax; /* Column weight array */ Gnum cwgtsiz; Gnum ncmpa; int o; if (grafptr->vnlosum < paraptr->colmin) /* If graph is too small, order simply */ return (hgraphOrderSi (grafptr, ordeptr, ordenum, cblkptr)); n = grafptr->s.vertnbr; norig = grafptr->s.velosum; iwlen = (Gnum) ((double) grafptr->s.edgenbr * HGRAPHORDERHDCOMPRAT) + 32; if (iwlen < n) /* Prepare to re-use array */ iwlen = n; cwgtsiz = (grafptr->s.velotax != NULL) ? n : 0; if (memAllocGroup ((void **) (void *) &petab, (size_t) (n * sizeof (Gnum)), &iwtab, (size_t) (iwlen * sizeof (Gnum)), &lentab, (size_t) (n * sizeof (Gnum)), &nvartab, (size_t) (n * sizeof (Gnum)), &elentab, (size_t) (n * sizeof (Gnum)), &lasttab, (size_t) (n * sizeof (Gnum)), &leaftab, (size_t) (n * sizeof (Gnum)), &frsttab, (size_t) (n * sizeof (Gnum)), &secntab, (size_t) ((norig + 1) * sizeof (Gnum)), &nexttab, (size_t) (n * sizeof (Gnum)), &cwgttax, (size_t) (cwgtsiz * sizeof (Gnum)), NULL) == NULL) { /* Not based yet */ errorPrint ("hgraphOrderHd: out of memory"); return (1); } hgraphOrderHxFill (grafptr, petab, lentab, iwtab, nvartab, elentab, &pfree); hallOrderHdR2Halmd (norig, n, 0, iwlen, petab, pfree, /* No elements here */ lentab, iwtab, nvartab, elentab, lasttab, &ncmpa, leaftab, secntab, nexttab, frsttab); if (ncmpa < 0) { errorPrint ("hgraphOrderHd: internal error"); memFree (petab); /* Free group leader */ return (1); } if (grafptr->s.velotax != NULL) { memCpy (cwgttax, grafptr->s.velotax + grafptr->s.baseval, n * sizeof (Gnum)); cwgttax -= grafptr->s.baseval; } else cwgttax = NULL; o = hallOrderHxBuild (grafptr->s.baseval, n, grafptr->vnohnbr, grafptr->s.vnumtax, ordeptr, cblkptr, nvartab - grafptr->s.baseval, lentab - grafptr->s.baseval, cwgttax, petab - grafptr->s.baseval, frsttab - grafptr->s.baseval, nexttab - grafptr->s.baseval, secntab - grafptr->s.baseval, iwtab - grafptr->s.baseval, elentab - grafptr->s.baseval, ordeptr->peritab + ordenum, /* Use given inverse permutation as inverse permutation space, never based */ leaftab, paraptr->colmin, paraptr->colmax, (float) paraptr->fillrat); memFree (petab); /* Free group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_hd.h000066400000000000000000000076151514310134000272160ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_hd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the block-oriented Halo **/ /** Approximate (Multiple) Minimum Degree **/ /** ordering routine. **/ /** **/ /** DATES : # Version 3.2 : from : 09 aug 1998 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 19 oct 1998 **/ /** # Version 4.0 : from : 14 jan 2003 **/ /** to : 24 jan 2004 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ #define HGRAPHORDERHDCOMPRAT 1.2L /*+ Compression ratio +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderHdParam_ { INT colmin; /*+ Minimum number of columns +*/ INT colmax; /*+ Maximum number of columns +*/ double fillrat; /*+ Fill-in ratio +*/ } HgraphOrderHdParam; /* ** The function prototypes. */ int hgraphOrderHd (Hgraph * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const HgraphOrderHdParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_hf.c000066400000000000000000000200001514310134000271720ustar00rootroot00000000000000/* Copyright 2004,2007,2018-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_hf.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a subgraph using **/ /** the block-oriented Halo Approximate **/ /** (Multiple) Minimum Fill algorithm, **/ /** with super-variable accounting **/ /** R2HAMDf4 v2.0). **/ /** **/ /** DATES : # Version 3.4 : from : 15 may 2001 **/ /** to : 23 nov 2001 **/ /** # Version 4.0 : from : 10 jan 2003 **/ /** to : 24 jan 2004 **/ /** # Version 5.0 : from : 10 sep 2007 **/ /** to : 10 sep 2007 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 29 oct 2019 **/ /** to : 18 jan 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hall_order_hf.h" #include "hall_order_hx.h" #include "hgraph_order_hf.h" #include "hgraph_order_hx.h" #include "hgraph_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderHf ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Multiple column-block +*/ const HgraphOrderHfParam * restrict const paraptr) { Gnum n; /* Number of nodes to order (with halo or not) */ Gnum norig; /* Number of nodes in uncompressed graph */ Gnum nbbuck; Gnum * restrict petab; Gnum pfree; Gnum * restrict lentab; Gnum iwlen; Gnum * restrict iwtab; Gnum * restrict nvtab; Gnum * restrict elentab; Gnum * restrict lasttab; Gnum * restrict leaftab; Gnum * restrict secntab; /* Array of index to first secondary variable */ Gnum * restrict nexttab; /* Array of index of next principal variable */ Gnum * restrict frsttab; Gnum * restrict headtab; /* Head array : nbbuck = 2 * n */ Gnum * restrict cwgttax; /* Column weight array */ Gnum cwgtsiz; Gnum ncmpa; int o; if (grafptr->vnlosum < paraptr->colmin) /* If graph is too small, order simply */ return (hgraphOrderSi (grafptr, ordeptr, ordenum, cblkptr)); n = grafptr->s.vertnbr; norig = grafptr->s.velosum; nbbuck = norig * 2; iwlen = (Gnum) ((double) grafptr->s.edgenbr * HGRAPHORDERHFCOMPRAT) + 32; if (iwlen < n) /* TRICK: make sure to be able to re-use array */ iwlen = n; cwgtsiz = (grafptr->s.velotax != NULL) ? n : 0; if (memAllocGroup ((void **) (void *) &petab, (size_t) (n * sizeof (Gnum)), &lentab, (size_t) (n * sizeof (Gnum)), &nvtab, (size_t) (n * sizeof (Gnum)), &elentab, (size_t) (n * sizeof (Gnum)), &lasttab, (size_t) (n * sizeof (Gnum)), &leaftab, (size_t) (n * sizeof (Gnum)), &frsttab, (size_t) (n * sizeof (Gnum)), &secntab, (size_t) (n * sizeof (Gnum)), &nexttab, (size_t) (n * sizeof (Gnum)), &cwgttax, (size_t) (cwgtsiz * sizeof (Gnum)), /* Not based yet */ &headtab, (size_t) ((nbbuck + 2) * sizeof (Gnum)), &iwtab, (size_t) (iwlen * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hgraphOrderHf: out of memory"); return (1); } hgraphOrderHxFill (grafptr, petab, lentab, iwtab, nvtab, elentab, &pfree); hallOrderHfR3Hamdf4 (norig, n, 0, nbbuck, iwlen, petab, pfree, lentab, iwtab, nvtab, elentab, lasttab, &ncmpa, leaftab, secntab, nexttab, frsttab, headtab); if (ncmpa < 0) { errorPrint ("hgraphOrderHf: internal error"); memFree (petab); /* Free group leader */ return (1); } if (grafptr->s.velotax != NULL) { memCpy (cwgttax, grafptr->s.velotax + grafptr->s.baseval, n * sizeof (Gnum)); cwgttax -= grafptr->s.baseval; } else cwgttax = NULL; o = hallOrderHxBuild (grafptr->s.baseval, n, grafptr->vnohnbr, grafptr->s.vnumtax, ordeptr, cblkptr, nvtab - grafptr->s.baseval, lentab - grafptr->s.baseval, cwgttax, petab - grafptr->s.baseval, frsttab - grafptr->s.baseval, nexttab - grafptr->s.baseval, secntab - grafptr->s.baseval, iwtab - grafptr->s.baseval, elentab - grafptr->s.baseval, ordeptr->peritab + ordenum, /* Use given inverse permutation as inverse permutation space, never based */ leaftab, paraptr->colmin, paraptr->colmax, (float) paraptr->fillrat); memFree (petab); /* Free group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_hf.h000066400000000000000000000073531514310134000272170ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_hf.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the block-oriented Halo **/ /** Approximate (Multiple) Minimum Fill **/ /** graph ordering routine. **/ /** **/ /** DATES : # Version 3.4 : from : 15 may 2001 **/ /** to : 15 may 2001 **/ /** # Version 4.0 : from : 10 jan 2003 **/ /** to : 24 jan 2004 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ #define HGRAPHORDERHFCOMPRAT 1.2L /*+ Compression ratio +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderHfParam_ { INT colmin; /*+ Minimum number of columns +*/ INT colmax; /*+ Maximum number of columns +*/ double fillrat; /*+ Fill-in ratio +*/ } HgraphOrderHfParam; /* ** The function prototypes. */ int hgraphOrderHf (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderHfParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_hx.c000066400000000000000000000131611514310134000272260ustar00rootroot00000000000000/* Copyright 2004,2007,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_hx.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains service routines **/ /** for the hgraphOrderH{d|f} ordering **/ /** routines. **/ /** **/ /** DATES : # Version 4.0 : from : 23 jan 2004 **/ /** to : 28 jan 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 25 jun 2018 **/ /** # Version 6.1 : from : 29 oct 2019 **/ /** to : 26 jan 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "hgraph.h" #include "hgraph_order_hx.h" /***********************************/ /* */ /* These are the service routines. */ /* */ /***********************************/ /* This routine fills the input arrays for ** the graph ordering routines. ** It returns: ** - void : in all cases. */ void hgraphOrderHxFill ( const Hgraph * restrict const grafptr, Gnum * restrict const petab, Gnum * restrict const lentab, Gnum * restrict const iwtab, Gnum * restrict const nvtab, Gnum * restrict const elentab, Gnum * restrict const pfreptr) { Gnum vertadj; /* Index adjustment for vertices */ Gnum vertnum; Gnum vertnew; Gnum edgenew; Gnum * restrict const petax = petab - 1; /* Base HAMF arrays at base 1 */ Gnum * restrict const iwtax = iwtab - 1; Gnum * restrict const lentax = lentab - 1; Gnum * restrict const nvtax = nvtab - 1; Gnum * restrict const elentax = elentab - 1; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; vertadj = 1 - grafptr->s.baseval; for (vertnum = grafptr->s.baseval, vertnew = edgenew = 1; /* Process non-halo vertices */ vertnum < grafptr->vnohnnd; vertnum ++, vertnew ++) { Gnum degrval; Gnum edgenum; degrval = vendtax[vertnum] - verttax[vertnum]; petax[vertnew] = edgenew; lentax[vertnew] = degrval; elentax[vertnew] = 0; nvtax[vertnew] = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++, edgenew ++) iwtax[edgenew] = edgetax[edgenum] + vertadj; } for ( ; vertnum < grafptr->s.vertnnd; vertnum ++, vertnew ++) { /* Process halo vertices */ Gnum degrval; Gnum edgenum; degrval = verttax[vertnum] - vendtax[vertnum]; /* Negative degree */ petax[vertnew] = edgenew; lentax[vertnew] = (degrval != 0) ? degrval : (-1 - grafptr->s.velosum); elentax[vertnew] = 0; nvtax[vertnew] = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++, edgenew ++) iwtax[edgenew] = grafptr->s.edgetax[edgenum] + vertadj; } *pfreptr = edgenew; /* Set index to first free area */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_hx.h000066400000000000000000000056571514310134000272460ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_hx.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the halo graph block Approxi- **/ /** mate (Multiple) Minimum Degree and Fill **/ /** ordering routines. **/ /** **/ /** DATES : # Version 4.0 : from : 24 jan 2004 **/ /** to : 24 jan 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 03 jun 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ void hgraphOrderHxFill (const Hgraph * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_kp.c000066400000000000000000000170531514310134000272250ustar00rootroot00000000000000/* Copyright 2012,2016,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_kp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a block ordering **/ /** from a k-way edge partition. **/ /** **/ /** DATES : # Version 5.0 : from : 17 oct 2012 **/ /** to : 17 oct 2012 **/ /** # Version 6.0 : from : 23 aug 2014 **/ /** to : 15 aug 2016 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_kp.h" #include "hgraph_order_si.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "scotch.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderKp ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HgraphOrderKpParam * restrict const paraptr) { Kgraph actgrafdat; Arch archdat; Gnum * restrict ordetab; Gnum ordeadj; Anum * restrict parttax; Gnum partnbr; Gnum partnum; Gnum * restrict peritab; Gnum vertnnd; Gnum vertnum; Gnum cblknbr; if ((paraptr->partsiz < 1) || /* If nothing to do, order consecutively */ ((partnbr = grafptr->vnohnbr / paraptr->partsiz) <= 1)) return (hgraphOrderSi (grafptr, ordeptr, ordenum, cblkptr)); if ((cblkptr->cblktab = (OrderCblk *) memAlloc (partnbr * sizeof (OrderCblk))) == NULL) { /* Allocate first as it will remain */ errorPrint ("hgraphOrderKp: out of memory (1)"); return (1); } hgraphUnhalo (grafptr, &actgrafdat.s); /* Extract non-halo part of given graph */ actgrafdat.s.vnumtax = NULL; /* Do not keep numbers from nested dissection */ SCOTCH_archCmplt ((SCOTCH_Arch *) &archdat, (SCOTCH_Num) partnbr); /* Build complete graph architecture */ if ((kgraphInit (&actgrafdat, &actgrafdat.s, &archdat, NULL, 0, NULL, 1, 1, NULL) != 0) || (kgraphMapSt (&actgrafdat, paraptr->strat) != 0)) { errorPrint ("hgraphOrderKp: cannot compute partition"); kgraphExit (&actgrafdat); archExit (&archdat); memFree (cblkptr->cblktab); cblkptr->cblktab = NULL; return (1); } if (memAllocGroup ((void **) (void *) &ordetab, (size_t) (partnbr * sizeof (Gnum)), &parttax, (size_t) (grafptr->vnohnbr * sizeof (Anum)), NULL) == NULL) { errorPrint ("hgraphOrderKp: out of memory (2)"); kgraphExit (&actgrafdat); archExit (&archdat); memFree (cblkptr->cblktab); cblkptr->cblktab = NULL; return (1); } parttax -= actgrafdat.s.baseval; mapTerm (&actgrafdat.m, parttax); /* Get result of partitioning as terminal part array */ memSet (ordetab, 0, partnbr * sizeof (Gnum)); /* Reset part count array */ for (vertnum = actgrafdat.s.baseval, vertnnd = actgrafdat.s.vertnnd; vertnum < vertnnd; vertnum ++) { ordetab[parttax[vertnum]] ++; /* Count number of vertices in each part */ } for (partnum = 0, cblknbr = 0, ordeadj = ordenum; /* For all potential column blocks */ partnum < partnbr; partnum ++) { Gnum ordetmp; ordetmp = ordetab[partnum]; ordetab[partnum] = ordeadj; ordeadj += ordetmp; if (ordetmp != 0) { /* If part is not empty, one more column block */ cblkptr->cblktab[cblknbr].typeval = ORDERCBLKLEAF; cblkptr->cblktab[cblknbr].vnodnbr = ordetmp; cblkptr->cblktab[cblknbr].cblknbr = 0; cblkptr->cblktab[cblknbr].cblktab = NULL; cblknbr ++; } } cblkptr->typeval = ORDERCBLKSEQU; /* Node becomes a sequence of blocks */ cblkptr->cblknbr = cblknbr; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->treenbr += cblknbr; /* These more number of tree nodes */ ordeptr->cblknbr += cblknbr - 1; /* These more number of column blocks */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ peritab = ordeptr->peritab; if (grafptr->s.vnumtax == NULL) { /* If graph is original graph */ for (vertnum = actgrafdat.s.baseval; vertnum < vertnnd; vertnum ++) peritab[ordetab[parttax[vertnum]] ++] = vertnum; } else { /* Graph is not original graph */ const Gnum * restrict vnumtax; vnumtax = grafptr->s.vnumtax; for (vertnum = actgrafdat.s.baseval; vertnum < vertnnd; vertnum ++) peritab[ordetab[parttax[vertnum]] ++] = vnumtax[vertnum]; } memFree (ordetab); /* Free group leader */ kgraphExit (&actgrafdat); archExit (&archdat); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_kp.h000066400000000000000000000061751514310134000272350ustar00rootroot00000000000000/* Copyright 2012,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_kp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the k-way partitioning block **/ /** ordering module. **/ /** **/ /** DATES : # Version 6.0 : from : 17 oct 2012 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderKpParam_ { INT partsiz; /*+ Minimum part size +*/ Strat * strat; /*+ k-way partitioning strategy used +*/ } HgraphOrderKpParam; /* ** The function prototypes. */ int hgraphOrderKp (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderKpParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_nd.c000066400000000000000000000336641514310134000272220ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2012,2014,2016,2018,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_nd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders graphs using the **/ /** nested dissection algorithm. **/ /** **/ /** DATES : # Version 3.2 : from : 17 oct 1996 **/ /** to : 21 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 13 mar 1999 **/ /** # Version 4.0 : from : 03 jan 2002 **/ /** to : 24 dec 2004 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 25 jul 2007 **/ /** # Version 5.1 : from : 24 oct 2010 **/ /** to : 24 oct 2010 **/ /** # Version 6.0 : from : 17 oct 2012 **/ /** to : 23 may 2018 **/ /** # Version 6.1 : from : 01 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 05 may 2019 **/ /** to : 03 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HGRAPH_ORDER_ND #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_nd.h" #include "hgraph_order_st.h" #include "vgraph.h" #include "vgraph_separate_st.h" /***************************/ /* */ /* Multi-threaded routine. */ /* */ /***************************/ static void hgraphOrderNd2 ( Context * restrict const contptr, /*+ (Sub-)context +*/ const int spltnum, /*+ Rank of sub-context in initial context +*/ const HgraphOrderNdSplit * const spltptr) { Hgraph orggrafdat; Hgraph indgrafdat; int o; orggrafdat = *spltptr->grafptr; /* Assign new context to work graph */ orggrafdat.contptr = contptr; o = 0; if ((hgraphInduceList (&orggrafdat, spltptr->splttab[spltnum].vnumnbr, spltptr->splttab[spltnum].vnumtab, spltptr->splttab[spltnum].vhalmax, &indgrafdat)) != 0) { errorPrint ("hgraphOrderNd2: cannot build induced subgraph"); o = 1; } if (o == 0) { o = hgraphOrderNd (&indgrafdat, spltptr->ordeptr, spltptr->splttab[spltnum].ordenum, spltptr->splttab[spltnum].cblkptr, spltptr->paraptr); hgraphExit (&indgrafdat); } if (o != 0) { /* Report any error */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&spltptr->ordeptr->mutedat); /* Use ordering lock to avoid race condition */ #endif /* SCOTCH_PTHREAD */ *spltptr->revaptr = 1; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&spltptr->ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ } } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderNd ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, const HgraphOrderNdParam * restrict const paraptr) { Gnum * vspvnumptr[3]; /* Pointers to vertex lists to fill */ VertList vsplisttab[3]; /* Array of separated part lists */ Vgraph vspgrafdat; /* Vertex separation graph data */ Gnum vspvertnum; /* Current vertex in separation graph */ int o; hgraphUnhalo (grafptr, &vspgrafdat.s); /* Keep only non-halo vertices for separation */ if ((vspgrafdat.frontab = (Gnum *) memAlloc (vspgrafdat.s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("hgraphOrderNd: out of memory (1)"); return (1); } if ((vspgrafdat.parttax = (GraphPart *) memAlloc (vspgrafdat.s.vertnbr * sizeof (GraphPart))) == NULL) { errorPrint ("hgraphOrderNd: out of memory (2)"); memFree (vspgrafdat.frontab); return (1); } memSet (vspgrafdat.parttax, 0, vspgrafdat.s.vertnbr * sizeof (GraphPart)); /* Set all vertices to part 0 */ vspgrafdat.parttax -= vspgrafdat.s.baseval; vspgrafdat.s.flagval |= VGRAPHFREEFRON | VGRAPHFREEPART; vspgrafdat.dwgttab[0] = /* Parts should have about the same weights */ vspgrafdat.dwgttab[1] = 1; vspgrafdat.compload[0] = vspgrafdat.s.velosum; vspgrafdat.compload[1] = 0; vspgrafdat.compload[2] = 0; vspgrafdat.comploaddlt = vspgrafdat.s.velosum; vspgrafdat.compsize[0] = vspgrafdat.s.vertnbr; vspgrafdat.compsize[1] = 0; vspgrafdat.fronnbr = 0; vspgrafdat.levlnum = grafptr->levlnum; /* Set level of separation graph as that of halo graph */ vspgrafdat.contptr = grafptr->contptr; /* Use same execution context */ if (vgraphSeparateSt (&vspgrafdat, paraptr->sepstrat) != 0) { /* Separate vertex-separation graph */ vgraphExit (&vspgrafdat); return (1); } if ((vspgrafdat.compsize[0] == 0) || /* If could not separate more */ (vspgrafdat.compsize[1] == 0)) { vgraphExit (&vspgrafdat); /* Free useless space */ return (hgraphOrderSt (grafptr, ordeptr, ordenum, cblkptr, paraptr->ordstratlea)); /* Order this leaf */ } vsplisttab[0].vnumnbr = vspgrafdat.compsize[0]; /* Build vertex lists within frontier array */ vsplisttab[0].vnumtab = vspgrafdat.frontab + vspgrafdat.fronnbr; vsplisttab[1].vnumnbr = vspgrafdat.compsize[1]; vsplisttab[1].vnumtab = vsplisttab[0].vnumtab + vsplisttab[0].vnumnbr; vsplisttab[2].vnumnbr = vspgrafdat.fronnbr; vsplisttab[2].vnumtab = vspgrafdat.frontab; vspvnumptr[0] = vsplisttab[0].vnumtab; vspvnumptr[1] = vsplisttab[1].vnumtab; vspvnumptr[2] = vsplisttab[2].vnumtab; for (vspvertnum = vspgrafdat.s.baseval; vspvertnum < vspgrafdat.s.vertnnd; vspvertnum ++) { /* Fill lists */ *vspvnumptr[vspgrafdat.parttax[vspvertnum]] ++ = vspvertnum; #ifdef SCOTCH_DEBUG_HGRAPH2 if (vspgrafdat.parttax[vspvertnum] != 2) { /* If vertex does not separate */ Gnum vspedgenum; GraphPart vsppartnum; vsppartnum = 1 - vspgrafdat.parttax[vspvertnum]; /* Get opposite part value */ for (vspedgenum = vspgrafdat.s.verttax[vspvertnum]; vspedgenum < vspgrafdat.s.vendtax[vspvertnum]; vspedgenum ++) { if (vspgrafdat.parttax[vspgrafdat.s.edgetax[vspedgenum]] == vsppartnum) { /* If an edge crosses the separator */ errorPrint ("hgraphOrderNd: internal error (1)"); vgraphExit (&vspgrafdat); return (1); } } } #endif /* SCOTCH_DEBUG_HGRAPH2 */ } #ifdef SCOTCH_DEBUG_HGRAPH2 if ((vspvnumptr[0] != vsplisttab[0].vnumtab + vsplisttab[0].vnumnbr) || (vspvnumptr[1] != vsplisttab[1].vnumtab + vsplisttab[1].vnumnbr) || (vspvnumptr[2] != vsplisttab[2].vnumtab + vsplisttab[2].vnumnbr)) { errorPrint ("hgraphOrderNd: internal error (2)"); vgraphExit (&vspgrafdat); return (1); } #endif /* SCOTCH_DEBUG_HGRAPH2 */ memFree (vspgrafdat.parttax + vspgrafdat.s.baseval); /* Free useless space */ vspgrafdat.parttax = NULL; /* Prevent subsequent freeing */ if ((cblkptr->cblktab = (OrderCblk *) memAlloc (3 * sizeof (OrderCblk))) == NULL) { errorPrint ("hgraphOrderNd: out of memory (3)"); vgraphExit (&vspgrafdat); return (1); } cblkptr->typeval = ORDERCBLKNEDI; /* Node becomes a nested dissection node */ cblkptr->cblktab[0].typeval = ORDERCBLKLEAF; /* Build column blocks for separated parts */ cblkptr->cblktab[0].vnodnbr = vsplisttab[0].vnumnbr; cblkptr->cblktab[0].cblknbr = 0; cblkptr->cblktab[0].cblktab = NULL; cblkptr->cblktab[1].typeval = ORDERCBLKLEAF; cblkptr->cblktab[1].vnodnbr = vsplisttab[1].vnumnbr; cblkptr->cblktab[1].cblknbr = 0; cblkptr->cblktab[1].cblktab = NULL; if (vsplisttab[2].vnumnbr != 0) { /* If separator not empty */ Hgraph indgrafdat; cblkptr->cblknbr = 3; /* It is a three-cell tree node */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->cblknbr += 2; /* Two more column blocks created */ ordeptr->treenbr += 3; /* Three more tree nodes created */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ cblkptr->cblktab[2].typeval = ORDERCBLKLEAF; cblkptr->cblktab[2].vnodnbr = vsplisttab[2].vnumnbr; cblkptr->cblktab[2].cblknbr = 0; cblkptr->cblktab[2].cblktab = NULL; if (graphInduceList (&grafptr->s, vsplisttab[2].vnumnbr, vsplisttab[2].vnumtab, &indgrafdat.s) != 0) { /* Perform non-halo induction for separator, as it will get highest numbers */ errorPrint ("hgraphOrderNd: cannot build induced subgraph (1)"); vgraphExit (&vspgrafdat); return (1); } indgrafdat.vnohnbr = indgrafdat.s.vertnbr; /* Fill halo graph structure of non-halo graph */ indgrafdat.vnohnnd = indgrafdat.s.vertnnd; indgrafdat.vnhdtax = indgrafdat.s.vendtax; indgrafdat.vnlosum = indgrafdat.s.velosum; indgrafdat.enohnbr = indgrafdat.s.edgenbr; indgrafdat.enlosum = indgrafdat.s.edlosum; indgrafdat.levlnum = grafptr->levlnum; /* Separator graph is at level of original graph */ indgrafdat.contptr = grafptr->contptr; /* Use same execution context */ o = hgraphOrderSt (&indgrafdat, ordeptr, ordenum + vsplisttab[0].vnumnbr + vsplisttab[1].vnumnbr, cblkptr->cblktab + 2, paraptr->ordstratsep); hgraphExit (&indgrafdat); } else { /* Separator is empty */ cblkptr->cblknbr = 2; /* It is a two-cell tree node */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->cblknbr ++; /* One more column block created */ ordeptr->treenbr += 2; /* Two more tree nodes created */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ o = 0; /* No separator ordering computed */ } if (o == 0) { HgraphOrderNdSplit spltdat; /* Parameters for context splitting */ spltdat.splttab[0].vnumnbr = vsplisttab[0].vnumnbr; spltdat.splttab[0].vnumtab = vsplisttab[0].vnumtab; spltdat.splttab[0].vhalmax = vsplisttab[2].vnumnbr + grafptr->s.vertnbr - grafptr->vnohnbr; spltdat.splttab[0].ordenum = ordenum; spltdat.splttab[0].cblkptr = cblkptr->cblktab; spltdat.splttab[1].vnumnbr = vsplisttab[1].vnumnbr; spltdat.splttab[1].vnumtab = vsplisttab[1].vnumtab; spltdat.splttab[1].vhalmax = vsplisttab[2].vnumnbr + grafptr->s.vertnbr - grafptr->vnohnbr; spltdat.splttab[1].ordenum = ordenum + vsplisttab[0].vnumnbr; spltdat.splttab[1].cblkptr = cblkptr->cblktab + 1; spltdat.grafptr = grafptr; spltdat.ordeptr = ordeptr; spltdat.paraptr = paraptr; spltdat.revaptr = &o; #ifndef HGRAPHORDERNDNOTHREAD if (contextThreadLaunchSplit (grafptr->contptr, (ContextSplitFunc) hgraphOrderNd2, &spltdat) != 0) /* If counld not split context to run concurrently */ #endif /* HGRAPHORDERNDNOTHREAD */ { hgraphOrderNd2 (grafptr->contptr, 0, &spltdat); /* Run tasks in sequence */ if (o == 0) hgraphOrderNd2 (grafptr->contptr, 1, &spltdat); } } vgraphExit (&vspgrafdat); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_nd.h000066400000000000000000000117571514310134000272260ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_nd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the halo graph nested dissection **/ /** ordering algorithm. **/ /** **/ /** DATES : # Version 3.2 : from : 17 oct 1996 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 13 mar 1999 **/ /** # Version 4.0 : from : 03 jan 2002 **/ /** to : 24 apr 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HgraphOrderNdParam_ { Strat * sepstrat; /*+ Separation strategy +*/ Strat * ordstratlea; /*+ Leaf ordering strategy +*/ Strat * ordstratsep; /*+ Separator ordering strategy +*/ } HgraphOrderNdParam; /*+ This structure holds the splitting parameters. +*/ typedef struct HgraphOrderNdSplit2_ { Gnum vnumnbr; /*+ Number of induced vertices +*/ Gnum * vnumtab; /*+ Pointer to list of induced vertices +*/ Gnum vhalmax; /*+ Upper bound on induced halo vertices +*/ Gnum ordenum; /*+ Local start index of inverse permutation +*/ OrderCblk * cblkptr; /*+ Column block to process +*/ } HgraphOrderNdSplit2; typedef struct HgraphOrderNdSplit_ { HgraphOrderNdSplit2 splttab[2]; /*+ Array of induced subgraph data +*/ const Hgraph * grafptr; /*+ Original graph +*/ Order * ordeptr; /*+ Pointer to ordering +*/ const HgraphOrderNdParam * paraptr; /*+ Nested dissection parameters +*/ int * revaptr; /*+ Pointer to return value +*/ } HgraphOrderNdSplit; /* ** The function prototypes. */ #ifdef SCOTCH_HGRAPH_ORDER_ND static void hgraphOrderNd2 (Context * restrict const, const int, const HgraphOrderNdSplit * const); #endif /* SCOTCH_HGRAPH_ORDER_ND */ int hgraphOrderNd (Hgraph * const, Order * const, const Gnum, OrderCblk * const, const HgraphOrderNdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_si.c000066400000000000000000000105501514310134000272210ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2014,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_si.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders halo graph vertices **/ /** using a simple method. **/ /** **/ /** DATES : # Version 3.2 : from : 01 nov 1996 **/ /** to : 21 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 11 dec 2002 **/ /** # Version 6.0 : from : 17 oct 2012 **/ /** to : 04 aug 2014 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hgraphOrderSi ( Hgraph * restrict const grafptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr) /*+ Single column-block +*/ { Gnum vnohnnd; Gnum vertnum; Gnum vnumnum; Gnum * restrict const peritab = ordeptr->peritab; const Gnum * restrict const vnumtax = grafptr->s.vnumtax; vnohnnd = grafptr->vnohnnd; if (vnumtax == NULL) { /* If graph is original graph */ for (vertnum = grafptr->s.baseval, vnumnum = ordenum; vertnum < vnohnnd; vertnum ++, vnumnum ++) peritab[vnumnum] = vertnum; } else { /* Graph is not original graph */ for (vertnum = grafptr->s.baseval, vnumnum = ordenum; vertnum < vnohnnd; vertnum ++, vnumnum ++) peritab[vnumnum] = vnumtax[vertnum]; } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_si.h000066400000000000000000000062041514310134000272270ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_si.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the simple halo graph **/ /** ordering routine. **/ /** **/ /** DATES : # Version 3.2 : from : 01 nov 1996 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 11 dec 2002 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int hgraphOrderSi (Hgraph * const, Order * const, const Gnum, OrderCblk * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_st.c000066400000000000000000000406301514310134000272360ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2012,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the generic call to the **/ /** graph ordering module, using a given **/ /** strategy. **/ /** **/ /** DATES : # Version 3.2 : from : 19 oct 1996 **/ /** to : 09 sep 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 07 sep 2001 **/ /** # Version 4.0 : from : 27 dec 2001 **/ /** to : 05 jan 2005 **/ /** # Version 5.0 : from : 31 may 2008 **/ /** to : 31 may 2008 **/ /** # Version 6.0 : from : 17 oct 2012 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_bl.h" #include "hgraph_order_cc.h" #include "hgraph_order_cp.h" #include "hgraph_order_gp.h" #include "hgraph_order_hd.h" #include "hgraph_order_hf.h" #include "hgraph_order_kp.h" #include "hgraph_order_nd.h" #include "hgraph_order_si.h" #include "hgraph_order_st.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "vgraph.h" #include "vgraph_separate_st.h" /* ** The static and global variables. */ static Hgraph hgraphorderstgraphdummy; /* Dummy graph for offset computations */ static union { /* Default parameters for block splitting method */ HgraphOrderBlParam param; /* Parameter zone */ StratNodeMethodData padding; /* To avoid reading out of structure */ } hgraphorderstdefaultbl = { { &stratdummy, 8 } }; static union { HgraphOrderCcParam param; StratNodeMethodData padding; } hgraphorderstdefaultcc = { { &stratdummy } }; static union { HgraphOrderCpParam param; StratNodeMethodData padding; } hgraphorderstdefaultcp = { { 0.70L, &stratdummy, &stratdummy } }; static union { HgraphOrderGpParam param; StratNodeMethodData padding; } hgraphorderstdefaultgp = { { 3 } }; static union { HgraphOrderHdParam param; StratNodeMethodData padding; } hgraphorderstdefaulthd = { { 1, 10000, 0.08L } }; static union { HgraphOrderHfParam param; StratNodeMethodData padding; } hgraphorderstdefaulthf = { { 1, 1000000, 0.08L } }; static union { HgraphOrderKpParam param; StratNodeMethodData padding; } hgraphorderstdefaultkp = { { 1, &stratdummy } }; static union { /* Default parameters for nested dissection method */ HgraphOrderNdParam param; StratNodeMethodData padding; } hgraphorderstdefaultnd = { { &stratdummy, &stratdummy, &stratdummy } }; static StratMethodTab hgraphorderstmethtab[] = { /* Graph ordering methods array */ { HGRAPHORDERSTMETHBL, "b", (StratMethodFunc) hgraphOrderBl, &hgraphorderstdefaultbl }, { HGRAPHORDERSTMETHCC, "o", (StratMethodFunc) hgraphOrderCc, &hgraphorderstdefaultcc }, { HGRAPHORDERSTMETHCP, "c", (StratMethodFunc) hgraphOrderCp, &hgraphorderstdefaultcp }, { HGRAPHORDERSTMETHGP, "g", (StratMethodFunc) hgraphOrderGp, &hgraphorderstdefaultgp }, { HGRAPHORDERSTMETHHD, "d", (StratMethodFunc) hgraphOrderHd, &hgraphorderstdefaulthd }, { HGRAPHORDERSTMETHHF, "f", (StratMethodFunc) hgraphOrderHf, &hgraphorderstdefaulthf }, { HGRAPHORDERSTMETHKP, "k", (StratMethodFunc) hgraphOrderKp, &hgraphorderstdefaultkp }, { HGRAPHORDERSTMETHND, "n", (StratMethodFunc) hgraphOrderNd, &hgraphorderstdefaultnd }, { HGRAPHORDERSTMETHSI, "s", (StratMethodFunc) hgraphOrderSi, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab hgraphorderstparatab[] = { /* The method parameter list */ { HGRAPHORDERSTMETHBL, STRATPARAMSTRAT, "strat", (byte *) &hgraphorderstdefaultbl.param, (byte *) &hgraphorderstdefaultbl.param.straptr, (void *) &hgraphorderststratab }, { HGRAPHORDERSTMETHBL, STRATPARAMINT, "cmin", (byte *) &hgraphorderstdefaultbl.param, (byte *) &hgraphorderstdefaultbl.param.cblkmin, NULL }, { HGRAPHORDERSTMETHCC, STRATPARAMSTRAT, "strat", (byte *) &hgraphorderstdefaultcc.param, (byte *) &hgraphorderstdefaultcc.param.straptr, (void *) &hgraphorderststratab }, { HGRAPHORDERSTMETHCP, STRATPARAMDOUBLE, "rat", (byte *) &hgraphorderstdefaultcp.param, (byte *) &hgraphorderstdefaultcp.param.comprat, NULL }, { HGRAPHORDERSTMETHCP, STRATPARAMSTRAT, "cpr", (byte *) &hgraphorderstdefaultcp.param, (byte *) &hgraphorderstdefaultcp.param.stratcpr, (void *) &hgraphorderststratab }, { HGRAPHORDERSTMETHCP, STRATPARAMSTRAT, "unc", (byte *) &hgraphorderstdefaultcp.param, (byte *) &hgraphorderstdefaultcp.param.stratunc, (void *) &hgraphorderststratab }, { HGRAPHORDERSTMETHGP, STRATPARAMINT, "pass", (byte *) &hgraphorderstdefaultgp.param, (byte *) &hgraphorderstdefaultgp.param.passnbr, NULL }, { HGRAPHORDERSTMETHHD, STRATPARAMINT, "cmin", (byte *) &hgraphorderstdefaulthd.param, (byte *) &hgraphorderstdefaulthd.param.colmin, NULL }, { HGRAPHORDERSTMETHHD, STRATPARAMINT, "cmax", (byte *) &hgraphorderstdefaulthd.param, (byte *) &hgraphorderstdefaulthd.param.colmax, NULL }, { HGRAPHORDERSTMETHHD, STRATPARAMDOUBLE, "frat", (byte *) &hgraphorderstdefaulthd.param, (byte *) &hgraphorderstdefaulthd.param.fillrat, NULL }, { HGRAPHORDERSTMETHHF, STRATPARAMINT, "cmin", (byte *) &hgraphorderstdefaulthf.param, (byte *) &hgraphorderstdefaulthf.param.colmin, NULL }, { HGRAPHORDERSTMETHHF, STRATPARAMINT, "cmax", (byte *) &hgraphorderstdefaulthf.param, (byte *) &hgraphorderstdefaulthf.param.colmax, NULL }, { HGRAPHORDERSTMETHHF, STRATPARAMDOUBLE, "frat", (byte *) &hgraphorderstdefaulthf.param, (byte *) &hgraphorderstdefaulthf.param.fillrat, NULL }, { HGRAPHORDERSTMETHKP, STRATPARAMINT, "siz", (byte *) &hgraphorderstdefaultkp.param, (byte *) &hgraphorderstdefaultkp.param.partsiz, NULL }, { HGRAPHORDERSTMETHKP, STRATPARAMSTRAT, "strat", (byte *) &hgraphorderstdefaultkp.param, (byte *) &hgraphorderstdefaultkp.param.strat, (void *) &kgraphmapststratab }, { HGRAPHORDERSTMETHND, STRATPARAMSTRAT, "sep", (byte *) &hgraphorderstdefaultnd.param, (byte *) &hgraphorderstdefaultnd.param.sepstrat, (void *) &vgraphseparateststratab }, { HGRAPHORDERSTMETHND, STRATPARAMSTRAT, "ole", (byte *) &hgraphorderstdefaultnd.param, (byte *) &hgraphorderstdefaultnd.param.ordstratlea, (void *) &hgraphorderststratab }, { HGRAPHORDERSTMETHND, STRATPARAMSTRAT, "ose", (byte *) &hgraphorderstdefaultnd.param, (byte *) &hgraphorderstdefaultnd.param.ordstratsep, (void *) &hgraphorderststratab }, { HGRAPHORDERSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab hgraphorderstcondtab[] = { /* Graph condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &hgraphorderstgraphdummy, (byte *) &hgraphorderstgraphdummy.s.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &hgraphorderstgraphdummy, (byte *) &hgraphorderstgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &hgraphorderstgraphdummy, (byte *) &hgraphorderstgraphdummy.vnlosum, NULL }, { STRATNODECOND, STRATPARAMDOUBLE, "mdeg", (byte *) &hgraphorderstgraphdummy, (byte *) &hgraphorderstgraphdummy.s.degrmax, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &hgraphorderstgraphdummy, (byte *) &hgraphorderstgraphdummy.vnohnbr, /* Only consider non-halo vertices */ NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab hgraphorderststratab = { /* Strategy tables for graph ordering methods */ hgraphorderstmethtab, hgraphorderstparatab, hgraphorderstcondtab }; /************************************/ /* */ /* This routine is the entry point */ /* for the graph ordering routines. */ /* */ /************************************/ /* This routine computes an ordering ** with respect to a given strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hgraphOrderSt ( Hgraph * restrict const grafptr, /*+ Subgraph to order +*/ Order * restrict const ordeptr, /*+ Ordering to complete +*/ const Gnum ordenum, /*+ Index to start ordering at +*/ OrderCblk * restrict const cblkptr, /*+ Current column block +*/ const Strat * restrict const straptr) /*+ Graph ordering strategy +*/ { StratTest testdat; int o; if (grafptr->vnohnbr == 0) /* Return immediately if nothing to do */ return (0); o = 0; switch (straptr->typeval) { case STRATNODECONCAT : errorPrint ("hgraphOrderSt: concatenation operator not available for graph ordering strategies"); return (1); case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_HGRAPH2 if ((testdat.testval != STRATTESTVAL) && (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("hgraphOrderSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_HGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = hgraphOrderSt (grafptr, ordeptr, ordenum, cblkptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = hgraphOrderSt (grafptr, ordeptr, ordenum, cblkptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : hgraphOrderSi (grafptr, ordeptr, ordenum, cblkptr); /* Always maintain a consistent ordering */ break; case STRATNODESELECT : errorPrint ("hgraphOrderSt: selection operator not available for graph ordering strategies"); return (1); #ifdef SCOTCH_DEBUG_HGRAPH2 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_HGRAPH2 */ default : #endif /* SCOTCH_DEBUG_HGRAPH2 */ return (((HgraphOrderFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, ordeptr, ordenum, cblkptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_HGRAPH2 default : errorPrint ("hgraphOrderSt: invalid parameter"); return (1); #endif /* SCOTCH_DEBUG_HGRAPH2 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hgraph_order_st.h000066400000000000000000000110051514310134000272350ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hgraph_order_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data **/ /** declarations for the main graph **/ /** ordering routine. **/ /** **/ /** DATES : # Version 3.2 : from : 31 oct 1996 **/ /** to : 29 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 07 sep 2001 **/ /** # Version 4.0 : from : 29 dec 2001 **/ /** to : 15 jan 2003 **/ /** # Version 6.0 : from : 17 oct 2012 **/ /** to : 05 apr 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum HgraphOrderStMethodType_ { HGRAPHORDERSTMETHBL = 0, /*+ Block splitting post-processing +*/ HGRAPHORDERSTMETHCC, /*+ Splitting of connected components +*/ HGRAPHORDERSTMETHCP, /*+ Graph compression +*/ HGRAPHORDERSTMETHGP, /*+ Gibbs-Poole-Stockmeyer +*/ HGRAPHORDERSTMETHHD, /*+ Block Halo Approximate Minimum Degree +*/ HGRAPHORDERSTMETHHF, /*+ Block Halo Approximate Minimum Fill +*/ HGRAPHORDERSTMETHKP, /*+ K-way block partitioning +*/ HGRAPHORDERSTMETHND, /*+ Nested Dissection +*/ HGRAPHORDERSTMETHSI, /*+ Simple +*/ HGRAPHORDERSTMETHNBR /*+ Number of methods +*/ } HgraphOrderStMethodType; /*+ Method function pointer type. +*/ typedef int (* HgraphOrderFunc) (Hgraph * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const void * const); /* ** The external declarations. */ extern StratTab hgraphorderststratab; /* ** The function prototypes. */ int hgraphOrderSt (Hgraph * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const Strat * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh.c000066400000000000000000000111021514310134000251600ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the halo source **/ /** mesh functions. **/ /** **/ /** DATES : # Version 4.0 : from : 12 sep 2002 **/ /** to : 10 feb 2003 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "hmesh.h" /****************************************/ /* */ /* These routines handle source meshes. */ /* */ /****************************************/ /* This routine frees a source halo mesh structure. ** It returns: ** - VOID : in all cases. */ void hmeshExit ( Hmesh * const meshptr) { if ((meshptr->vehdtax != NULL) && /* Exit halo mesh data */ (meshptr->vehdtax != (meshptr->m.vendtax + (meshptr->m.baseval - meshptr->m.velmbas))) && ((meshptr->m.flagval & MESHVERTGROUP) == 0)) memFree (meshptr->vehdtax + meshptr->m.velmbas); meshExit (&meshptr->m); /* Exit mesh data */ #ifdef SCOTCH_DEBUG_HMESH2 memSet (meshptr, ~0, sizeof (Hmesh)); /* Purge halo mesh fields */ #endif /* SCOTCH_DEBUG_HMESH2 */ } /* This routine sets the base of the given ** halo mesh to the given base value, and ** returns the old base value. ** It returns: ** - old base value : in all cases. */ Gnum hmeshBase ( Hmesh * const meshptr, const Gnum baseval) { Gnum baseold; /* Old base value */ Gnum baseadj; /* Base adjustment */ Gnum velmnum; if (meshptr->m.baseval == baseval) /* If nothing to do */ return (baseval); baseold = meshptr->m.baseval; /* Record old base value */ baseadj = baseval - baseold; /* Compute adjustment */ meshBase (&meshptr->m, baseval); /* Change base of mesh */ for (velmnum = meshptr->m.velmbas; velmnum < meshptr->m.velmnnd; velmnum ++) meshptr->vehdtax[velmnum] += baseadj; /* Change base of array */ meshptr->vnohnnd += baseadj; meshptr->vehdtax -= baseadj; return (baseold); /* Return old base value */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh.h000066400000000000000000000137661514310134000252070ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data **/ /** declarations for the halo mesh **/ /** structure. **/ /** **/ /** DATES : # Version 4.0 : from : 31 dec 2001 **/ /** to : 29 apr 2004 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Halo mesh structure. Only node vertices can be halo vertices, not element vertices. Halo node vertices are numbered with the highest available node numbers. Since un-haloing of a mesh should be costless, and since the vertex array must be continuous, when a halo mesh indeed bears halo nodes, it is preferrable that elements be numbered first, then non-halo node vertices, then halo vertices, so that the removal of the halo does not create holes in the vertex array. Else, the indices of the halo nodes must be reassigned to empty elements, which results in a larger structure until it is coarsened or induced. If no halo is present, the order of nodes and elements is not relevant. As for the halo graph structure, in the adjacency list of elements, halo node neighbors must all be put after non-halo node neighbors, so that the edge sub-array comprised between verttab[i] and vnhdtab[i] refer only to non-halo node neighbors, such that edgetab can be re-used by the un-halo-ed mesh. Since Hmesh halo meshes are used only for node ordering, the velotab and vnumtab arrays that are created by hmesh*() routines can be restricted to their node part. It must be guaranteed that this does not create problems at freeing time, for instance by grouping these arrays with verttab. +*/ typedef struct Hmesh_ { Mesh m; /*+ Source mesh +*/ Gnum * restrict vehdtax; /*+ End vertex array for elements [based] (non-halo nodes look at m.vendtax) +*/ Gnum veihnbr; /*+ Number of halo isolated element vertices, which have halo nodes only +*/ Gnum vnohnbr; /*+ Number of non-halo node vertices +*/ Gnum vnohnnd; /*+ Based number of first halo node vertex in mesh graph (m.vnodnnd if none) +*/ Gnum vnhlsum; /*+ Sum of non-halo node vertex weights +*/ Gnum enohnbr; /*+ Number of non-halo edges +*/ Gnum levlnum; /*+ Nested dissection level +*/ Context * contptr; /*+ Execution context +*/ } Hmesh; /* ** The function prototypes. */ void hmeshExit (Hmesh * const); Gnum hmeshBase (Hmesh * const, const Gnum); #ifdef SCOTCH_HGRAPH_H int hmeshHgraph (const Hmesh * restrict const, Hgraph * restrict const); #endif /* SCOTCH_HGRAPH_H */ int hmeshInducePart (const Hmesh * const, const GraphPart * const, const GraphPart, const Gnum, const Gnum, const Gnum, Hmesh * const); int hmeshMesh (const Hmesh * restrict const, Mesh * restrict const); int hmeshCheck (const Hmesh *); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_check.c000066400000000000000000000114071514310134000263250ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the halo source **/ /** mesh functions. **/ /** **/ /** DATES : # Version 4.0 : from : 12 sep 2002 **/ /** to : 11 may 2004 **/ /** # Version 6.0 : from : 26 jan 2020 **/ /** to : 26 jan 2020 **/ /** # Version 7.0 : from : 19 jan 2023 **/ /** to : 19 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "hmesh.h" /****************************************/ /* */ /* These routines handle source meshes. */ /* */ /****************************************/ /* This routine checks the consistency ** of the given halo mesh. ** It returns: ** - 0 : if halo mesh data are consistent. ** - !0 : on error. */ int hmeshCheck ( const Hmesh * const meshptr) { Gnum vnhlsum; Gnum veihnbr; if ((meshptr->vnohnnd < meshptr->m.vnodbas) || (meshptr->vnohnnd > meshptr->m.vnodnnd)) { errorPrint ("hmeshCheck: invalid halo node numbers"); return (1); } if (meshCheck (&meshptr->m) != 0) { errorPrint ("hmeshCheck: invalid non-halo mesh structure"); return (1); } veihnbr = 0; if (meshptr->vehdtax != meshptr->m.vendtax) { Gnum velmnum; for (velmnum = meshptr->m.velmbas; /* For all element vertices */ velmnum < meshptr->m.velmnnd; velmnum ++) { if ((meshptr->vehdtax[velmnum] < meshptr->m.verttax[velmnum]) || (meshptr->vehdtax[velmnum] > meshptr->m.vendtax[velmnum])) { errorPrint ("hmeshCheck: invalid non-halo end vertex array"); return (1); } if (meshptr->vehdtax[velmnum] == meshptr->m.verttax[velmnum]) veihnbr ++; } } if (veihnbr != meshptr->veihnbr) { errorPrint ("hmeshCheck: invalid number of halo-isolated element vertices"); return (1); } if (meshptr->m.vnlotax == NULL) /* Recompute non-halo node vertex load sum */ vnhlsum = meshptr->vnohnnd - meshptr->m.vnodbas; else { Gnum vnodnum; for (vnodnum = meshptr->m.vnodbas, vnhlsum = 0; vnodnum < meshptr->vnohnnd; vnodnum ++) vnhlsum += meshptr->m.vnlotax[vnodnum]; } if (vnhlsum != meshptr->vnhlsum) { errorPrint ("hmeshCheck: invalid non-halo vertex load sum"); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_hgraph.c000066400000000000000000000355001514310134000265210ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_hgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the source halo **/ /** mesh to halo graph conversion function. **/ /** **/ /** DATES : # Version 4.0 : from : 30 nov 2003 **/ /** to : 05 may 2004 **/ /** # Version 5.0 : from : 10 sep 2007 **/ /** to : 10 sep 2007 **/ /** # Version 6.0 : from : 28 apr 2019 **/ /** to : 28 apr 2019 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /** NOTES : # From a given halo mesh is created a **/ /** halo graph, such that all vertices of **/ /** the graph represent the nodes of the **/ /** mesh, and there exists an edge **/ /** between two vertices if there exists **/ /** at least one element to which the two **/ /** associated nodes belong. **/ /** While all non-halo nodes become non- **/ /** halo vertices, some halo nodes may **/ /** disappear from the graph if their **/ /** elements are only connected to other **/ /** halo nodes. **/ /** Since the contents of vnumtab are **/ /** based with respect to s.baseval and **/ /** not to vnodbas, the vnumtab array can **/ /** simply be shared by the graph. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "hgraph.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_hgraph.h" /************************************/ /* */ /* The halo graph building routine. */ /* */ /************************************/ /* This routine builds a halo graph from ** the given halo mesh. ** It returns: ** - 0 : if the halo graph has been successfully built. ** - 1 : on error. */ int hmeshHgraph ( const Hmesh * restrict const meshptr, /*+ Original mesh +*/ Hgraph * restrict const grafptr) /*+ Graph to build +*/ { Gnum hashnbr; /* Number of vertices in hash table */ Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ HmeshHgraphHash * restrict hashtab; /* Table of edges to other node vertices */ Gnum edgemax; /* Upper bound of number of edges in mesh */ Gnum edgennd; /* Based upper bound on number of edges */ Gnum enohnbr; /* Number of non-halo edges */ Gnum edgenum; /* Number of current graph edge */ Gnum vertnum; /* Number of current graph vertex */ Gnum degrmax; #ifdef SCOTCH_DEBUG_HMESH2 if (hmeshCheck (meshptr) != 0) { errorPrint ("hmeshHgraph: invalid input halo mesh"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ grafptr->s.flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; grafptr->s.baseval = meshptr->m.baseval; grafptr->s.vertnbr = meshptr->m.vnodnbr; grafptr->s.vertnnd = meshptr->m.vnodnbr + meshptr->m.baseval; grafptr->vnohnbr = meshptr->vnohnbr; grafptr->vnohnnd = meshptr->vnohnbr + grafptr->s.baseval; grafptr->vnlosum = meshptr->vnhlsum; for (hashsiz = 2, hashnbr = meshptr->m.degrmax * meshptr->m.degrmax * 2; /* Compute size of hash table */ hashsiz < hashnbr; hashsiz <<= 1) ; hashmsk = hashsiz - 1; if (memAllocGroup ((void **) (void *) &grafptr->s.verttax, (size_t) ((grafptr->s.vertnbr + 1) * sizeof (Gnum)), &grafptr->vnhdtax, (size_t) ( grafptr->vnohnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hmeshHgraph: out of memory (1)"); return (1); } if ((hashtab = memAlloc (hashsiz * sizeof (HmeshHgraphHash))) == NULL) { errorPrint ("hmeshHgraph: out of memory (2)"); memFree (grafptr->s.verttax); return (1); } grafptr->s.verttax -= grafptr->s.baseval; grafptr->s.vendtax = grafptr->s.verttax + 1; grafptr->vnhdtax -= grafptr->s.baseval; if (meshptr->m.vnumtax != NULL) /* If (node) vertex index array present, point to its relevant part */ grafptr->s.vnumtax = meshptr->m.vnumtax + (meshptr->m.vnodbas - grafptr->s.baseval); /* Since GRAPHVERTGROUP, no problem on graphFree */ if (meshptr->m.vnlotax != NULL) /* Keep node part of mesh (node) vertex load array as graph vertex load array */ grafptr->s.velotax = meshptr->m.vnlotax + (meshptr->m.vnodbas - grafptr->s.baseval); /* Since GRAPHVERTGROUP, no problem on graphFree */ grafptr->s.velosum = meshptr->m.vnlosum; edgemax = ((meshptr->m.degrmax * meshptr->m.degrmax) / 2 + 1) * meshptr->m.vnodnbr; /* Compute estimated number of edges in graph */ #ifdef SCOTCH_DEBUG_HMESH2 edgemax = meshptr->m.degrmax + 4; /* Test dynamic reallocation of edge array; 4 guarantees that 25% > 0 */ #endif /* SCOTCH_DEBUG_HMESH2 */ if ((grafptr->s.edgetax = memAlloc (edgemax * sizeof (Gnum))) == NULL) { errorPrint ("hmeshHgraph: out of memory (3)"); hgraphFree (grafptr); memFree (hashtab); return (1); } grafptr->s.edgetax -= grafptr->s.baseval; memSet (hashtab, ~0, hashsiz * sizeof (HmeshHgraphHash)); /* Initialize hash table */ for (vertnum = edgenum = grafptr->s.baseval, edgennd = edgemax + grafptr->s.baseval, enohnbr = degrmax = 0; /* Build graph edges for non-halo vertices */ vertnum < grafptr->vnohnnd; vertnum ++) { Gnum vnodnum; Gnum hnodnum; Gnum enodnum; Gnum enhdnum; /* Index of first non-halo neighbor in edge array for current vertex */ grafptr->s.verttax[vertnum] = edgenum; vnodnum = vertnum + (meshptr->m.vnodbas - meshptr->m.baseval); hnodnum = (vnodnum * HMESHHGRAPHHASHPRIME) & hashmsk; /* Prevent adding loop edge */ hashtab[hnodnum].vertnum = vnodnum; hashtab[hnodnum].vertend = vnodnum; for (enodnum = meshptr->m.verttax[vnodnum], enhdnum = edgenum; enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum eelmnum; velmnum = meshptr->m.edgetax[enodnum]; for (eelmnum = meshptr->m.verttax[velmnum]; eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodend; Gnum hnodend; vnodend = meshptr->m.edgetax[eelmnum]; for (hnodend = (vnodend * HMESHHGRAPHHASHPRIME) & hashmsk; ; hnodend = (hnodend + 1) & hashmsk) { if (hashtab[hnodend].vertnum != vnodnum) { /* If edge not yet created */ Gnum vertend; if (edgenum == edgennd) { /* If edge array already full */ Gnum edgemax; Gnum * restrict edgetmp; edgemax = edgennd - grafptr->s.baseval; /* Increase size by 25 % */ edgemax = edgemax + (edgemax >> 2); if ((edgetmp = memRealloc (grafptr->s.edgetax + grafptr->s.baseval, edgemax * sizeof (Gnum))) == NULL) { errorPrint ("hmeshHgraph: out of memory (4)"); hgraphFree (grafptr); memFree (hashtab); return (1); } grafptr->s.edgetax = edgetmp - grafptr->s.baseval; edgennd = edgemax + grafptr->s.baseval; } hashtab[hnodend].vertnum = vnodnum; /* Record new edge */ hashtab[hnodend].vertend = vnodend; vertend = vnodend - (meshptr->m.vnodbas - grafptr->s.baseval); if (vnodend >= meshptr->vnohnnd) /* If halo edge */ grafptr->s.edgetax[edgenum ++] = vertend; /* Build at end of array */ else { /* If non-halo edge */ if (edgenum != enhdnum) /* If already halo edges */ grafptr->s.edgetax[edgenum] = grafptr->s.edgetax[enhdnum]; /* Make room */ grafptr->s.edgetax[enhdnum ++] = vertend; /* Record new edge */ edgenum ++; /* One more edge created */ } break; } if (hashtab[hnodend].vertend == vnodend) /* If edge already exists */ break; /* Skip to next neighbor */ } } } grafptr->vnhdtax[vertnum] = enhdnum; /* Set end of non-halo edge array */ enohnbr += enhdnum - grafptr->s.verttax[vertnum]; if ((edgenum - grafptr->s.verttax[vertnum]) > degrmax) /* Compute maximum degree */ degrmax = (edgenum - grafptr->s.verttax[vertnum]); } grafptr->enlosum = /* Graph edges are not weighted */ grafptr->enohnbr = enohnbr; /* All other edges will be halo edges */ for ( ; vertnum < grafptr->s.vertnnd; vertnum ++) { /* Build graph edges for halo vertices */ Gnum vnodnum; Gnum enodnum; vnodnum = vertnum + (meshptr->m.vnodbas - meshptr->m.baseval); grafptr->s.verttax[vertnum] = edgenum; for (enodnum = meshptr->m.verttax[vnodnum]; enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum eelmnum; velmnum = meshptr->m.edgetax[enodnum]; for (eelmnum = meshptr->m.verttax[velmnum]; /* Only consider non-halo edges of elements this time */ eelmnum < meshptr->vehdtax[velmnum]; eelmnum ++) { Gnum vnodend; Gnum hnodend; vnodend = meshptr->m.edgetax[eelmnum]; #ifdef SCOTCH_DEBUG_HMESH2 if (vnodend >= meshptr->vnohnnd) { /* Not visiting halo edges should prevent this */ errorPrint ("hmeshHgraph: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ for (hnodend = (vnodend * HMESHHGRAPHHASHPRIME) & hashmsk; ; hnodend = (hnodend + 1) & hashmsk) { if (hashtab[hnodend].vertnum != vnodnum) { /* If edge not yet created */ Gnum vertend; if (edgenum == edgennd) { /* If edge array already full */ Gnum edgemax; Gnum * restrict edgetmp; edgemax = edgennd - grafptr->s.baseval; /* Increase size by 25 % */ edgemax = edgemax + (edgemax >> 2); if ((edgetmp = memRealloc (grafptr->s.edgetax + grafptr->s.baseval, edgemax * sizeof (Gnum))) == NULL) { errorPrint ("hmeshHgraph: out of memory (5)"); hgraphFree (grafptr); memFree (hashtab); return (1); } grafptr->s.edgetax = edgetmp - grafptr->s.baseval; edgennd = edgemax + grafptr->s.baseval; } hashtab[hnodend].vertnum = vnodnum; /* Record new edge */ hashtab[hnodend].vertend = vnodend; vertend = vnodend - (meshptr->m.vnodbas - grafptr->s.baseval); grafptr->s.edgetax[edgenum ++] = vertend; /* Build halo edge */ break; } if (hashtab[hnodend].vertend == vnodend) /* If edge already exists */ break; /* Skip to next neighbor */ } } } if ((edgenum - grafptr->s.verttax[vertnum]) > degrmax) /* Compute maximum degree */ degrmax = (edgenum - grafptr->s.verttax[vertnum]); } grafptr->s.verttax[vertnum] = edgenum; /* Set end of vertex array */ grafptr->s.edlosum = /* Graph edges are not weighted */ grafptr->s.edgenbr = edgenum - grafptr->s.baseval; grafptr->s.degrmax = degrmax; memFree (hashtab); #ifdef SCOTCH_DEBUG_HMESH2 if (hgraphCheck (grafptr) != 0) { errorPrint ("hmeshHgraph: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_hgraph.h000066400000000000000000000060641514310134000265310ustar00rootroot00000000000000/* Copyright 2004,2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_hgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source halo mesh to source halo **/ /** graph building routine. **/ /** **/ /** DATES : # Version 4.0 : from : 30 nov 2003 **/ /** to : 30 nov 2003 **/ /** **/ /************************************************************/ /* ** The defines. */ /** Prime number for cache-friendly perturbations. **/ #define HMESHHGRAPHHASHPRIME 37 /* Prime number */ /* ** The type and structure definitions. */ /*+ A table made of such elements is used during graph building to build the edge array of the graph from the one of the mesh. +*/ typedef struct HmeshHgraphHash_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number in mesh +*/ Gnum vertend; /*+ End vertex number in mesh +*/ } HmeshHgraphHash; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_induce.c000066400000000000000000000452721514310134000265260ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the halo source **/ /** mesh subgraph-making functions. **/ /** **/ /** DATES : # Version 4.0 : from : 07 jan 2002 **/ /** to : 11 may 2004 **/ /** # Version 5.0 : from : 22 dec 2006 **/ /** to : 11 jun 2007 **/ /** # Version 6.0 : from : 23 jan 2020 **/ /** to : 26 jan 2020 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "hmesh.h" /*********************************************/ /* */ /* These routines handle halo source meshes. */ /* */ /*********************************************/ /* This routine builds the halo mesh induced ** by the original halo mesh and the array of ** selected node vertices. Elements which are ** adjacent to the selected nodes are themselves ** selected, as well as their adjacent node ** vertices, which comprise the new halo. ** In the induced halo mesh, elements are ** placed first, then non-halo nodes, then ** halo nodes. This order is quite important ** as it eases the building of vertex separation ** meshes from halo meshes, just by ignoring ** halo nodes. ** The induced vnumtab array is a baseval-based ** list of the selected node vertices if the ** original halo mesh does not have a vnumtab, or ** the proper subset of the original vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hmeshInducePart ( const Hmesh * restrict const orgmeshptr, /* Pointer to original graph */ const GraphPart * restrict const orgparttax, /* Array of vertex partition flags */ const GraphPart orgpartval, /* Partition value of vertices to keep (0 or 1) */ const Gnum orgvelmnbr, /* Number of (maybe isolated) element vertices in selected part */ const Gnum orgvnodnbr, /* Number of node vertices in selected part */ const Gnum orgvnspnbr, /* Number of node vertices in separator */ Hmesh * restrict const indmeshptr) /* Pointer to induced halo submesh */ { Gnum orgvelmnum; /* Number of current element vertex in original halo mesh */ Gnum orgvnodnum; /* Number of current node vertex in original halo mesh */ Gnum * restrict orgindxtax; /* Original to induced vertex number translation array */ Gnum indvertnbr; /* Upper bound on the number of vertices in induced halo mesh */ Gnum indvertnum; /* Number of current vertex in induced mesh graph */ Gnum indvelmnbr; /* Number of element vertices in induced halo mesh */ Gnum indveihnbr; /* Number of newly created halo-isolated elements */ Gnum indvnodnbr; /* Upper bound on the number of node vertices in induced halo mesh */ Gnum indvnodnum; /* Number of current node vertex in induced halo mesh */ Gnum * restrict indedgetax; /* Based access to induced mesh graph edge arrays */ Gnum indedgenbr; /* (Approximate) number of edges in induced halo mesh */ Gnum indedgenum; /* Number of current edge in induced halo mesh */ Gnum * restrict indvnuhtax; /* Array of vertex numbers for halo nodes (aka vnumtab) */ Gnum indvelonbr; Gnum indvelosum; Gnum indvnlonbr; Gnum indvnlosum; Gnum indvnhlsum; indvelmnbr = orgvelmnbr; if (orgpartval == 0) /* If submesh is part zero */ indvelmnbr -= orgmeshptr->m.veisnbr + orgmeshptr->veihnbr; /* Remove isolated elements, which always belong to it */ indvnodnbr = orgvnodnbr + orgvnspnbr + orgmeshptr->m.vnodnnd - orgmeshptr->vnohnnd; /* Compute upper bound on number of node vertices */ indvertnbr = indvnodnbr + indvelmnbr; indedgenbr = ((orgmeshptr->m.degrmax > 0) && (indvertnbr < (orgmeshptr->m.edgenbr / orgmeshptr->m.degrmax))) /* Choose best upper bound on number of edges (avoid multiply overflow) */ ? (indvertnbr * orgmeshptr->m.degrmax) : orgmeshptr->m.edgenbr; memSet (indmeshptr, 0, sizeof (Hmesh)); /* Initialize halo mesh fields */ indmeshptr->m.baseval = orgmeshptr->m.baseval; /* Inherit mesh properties */ indmeshptr->m.flagval = MESHFREETABS | MESHVERTGROUP; indmeshptr->m.velmnbr = indvelmnbr; indmeshptr->m.velmbas = indmeshptr->m.baseval; /* Elements are placed first */ indmeshptr->m.velmnnd = indmeshptr->m.vnodbas = indvelmnbr + indmeshptr->m.baseval; /* Node vertices are placed after elements */ indmeshptr->m.veisnbr = 0; /* All existing isolated elements will be removed in submesh */ indvelonbr = (orgmeshptr->m.velotax != NULL) ? indmeshptr->m.velmnbr : 0; indvnlonbr = (orgmeshptr->m.vnlotax != NULL) ? indvnodnbr : 0; if (memAllocGroup ((void **) (void *) /* Allocate induced mesh graph structure */ &indmeshptr->m.verttax, (size_t) ((indvertnbr + 1) * sizeof (Gnum)), &indmeshptr->vehdtax, (size_t) ( orgvelmnbr * sizeof (Gnum)), /* vehdtab is limited to elements */ &indmeshptr->m.velotax, (size_t) ( indvelonbr * sizeof (Gnum)), &indmeshptr->m.vnlotax, (size_t) ( indvnlonbr * sizeof (Gnum)), &indmeshptr->m.vnumtax, (size_t) ( orgvnodnbr * sizeof (Gnum)), NULL) == NULL) { /* vnumtab is of size vnohnbr */ errorPrint ("hmeshInducePart: out of memory (1)"); return (1); } indmeshptr->m.verttax -= indmeshptr->m.baseval; indmeshptr->m.vendtax = indmeshptr->m.verttax + 1; /* Compact array */ indmeshptr->m.velotax = (indvelonbr != 0) ? (indmeshptr->m.velotax - indmeshptr->m.velmbas) : NULL; indmeshptr->m.vnlotax = (indvnlonbr != 0) ? (indmeshptr->m.vnlotax - indmeshptr->m.vnodbas) : NULL; indmeshptr->m.vnumtax -= indmeshptr->m.vnodbas; /* Only for non-halo nodes */ indmeshptr->m.degrmax = orgmeshptr->m.degrmax; indmeshptr->vnohnbr = orgvnodnbr; indmeshptr->vnohnnd = indmeshptr->m.vnodbas + orgvnodnbr; indmeshptr->vehdtax -= indmeshptr->m.velmbas; indmeshptr->vnhlsum = orgvnodnbr; /* Assume no vertex loads */ if (memAllocGroup ((void **) (void *) &indedgetax, (size_t) (indedgenbr * sizeof (Gnum)), &orgindxtax, (size_t) ((orgmeshptr->m.velmnbr + orgmeshptr->m.vnodnbr) * sizeof (Gnum)), &indvnuhtax, (size_t) ((orgvnspnbr + orgmeshptr->m.vnodnnd - orgmeshptr->vnohnnd) * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hmeshInducePart: out of memory (2)"); /* Allocate induced mesh graph structure */ hmeshExit (indmeshptr); return (1); } indedgetax -= indmeshptr->m.baseval; orgindxtax -= orgmeshptr->m.baseval; indvnuhtax -= indmeshptr->vnohnnd; /* Base array so as to catch halo nodes only */ indvnhlsum = 0; for (orgvnodnum = orgmeshptr->m.vnodbas, /* For all original non-halo node vertices */ indvnodnum = indmeshptr->m.vnodbas; /* And assuming all elements will be kept */ orgvnodnum < orgmeshptr->vnohnnd; orgvnodnum ++) { if (orgparttax[orgvnodnum] == orgpartval) { /* If in right part */ orgindxtax[orgvnodnum] = indvnodnum; /* Set new index of node */ indmeshptr->m.vnumtax[indvnodnum] = orgvnodnum - (orgmeshptr->m.vnodbas - orgmeshptr->m.baseval); if (orgmeshptr->m.vnlotax != NULL) indvnhlsum += (indmeshptr->m.vnlotax[indvnodnum] = orgmeshptr->m.vnlotax[orgvnodnum]); indvnodnum ++; } else if (orgparttax[orgvnodnum] == 2) /* If node belongs to separator */ orgindxtax[orgvnodnum] = ~0; /* Pre-set array for separator nodes */ } #ifdef SCOTCH_DEBUG_HMESH2 if ((indvnodnum - indmeshptr->m.vnodbas) != orgvnodnbr) { errorPrint ("hmeshInducePart: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ memSet (orgindxtax + orgmeshptr->vnohnnd, ~0, (orgmeshptr->m.vnodnnd - orgmeshptr->vnohnnd) * sizeof (Gnum)); /* Pre-set halo node vertices */ indveihnbr = 0; indvelosum = 0; indvnlosum = 0; for (orgvelmnum = orgmeshptr->m.velmbas, /* For all elements of original graph */ indvertnum = indedgenum = indmeshptr->m.baseval; /* Elements are placed first in vertex array */ orgvelmnum < orgmeshptr->m.velmnnd; orgvelmnum ++) { if (orgparttax[orgvelmnum] == orgpartval) { /* If element belongs to right part */ Gnum orgedgenum; Gnum indedgennd; /* Index of after-last edge position in edge array */ Gnum indedhdnum; /* Index of after-last edge linking to non-halo vertices */ orgedgenum = orgmeshptr->m.verttax[orgvelmnum]; if (orgedgenum == orgmeshptr->vehdtax[orgvelmnum]) { /* If (halo-)isolated element vertex */ orgindxtax[orgvelmnum] = ~0; /* Discard element in induced submesh */ continue; } #ifdef SCOTCH_DEBUG_HMESH2 if (indvertnum >= indmeshptr->m.velmnnd) { /* If too many element vertices kept */ errorPrint ("hmeshInducePart: internal error (2)"); /* Maybe a problem with veisnbr or veihnbr */ return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ indmeshptr->m.verttax[indvertnum] = indedgenum; indedhdnum = indedgenum + (orgmeshptr->m.vendtax[orgvelmnum] - orgmeshptr->m.verttax[orgvelmnum]); indedgennd = indedhdnum; if (orgmeshptr->m.velotax != NULL) { Gnum orgveloval; orgveloval = orgmeshptr->m.velotax[orgvelmnum]; indmeshptr->m.velotax[indvertnum] = orgveloval; indvelosum += orgveloval; } for ( ; orgedgenum < orgmeshptr->m.vendtax[orgvelmnum]; orgedgenum ++) { Gnum orgvertend; orgvertend = orgmeshptr->m.edgetax[orgedgenum]; if (orgindxtax[orgvertend] == ~0) { /* If found yet un-numbered halo node */ #ifdef SCOTCH_DEBUG_HMESH2 if ((orgvertend < orgmeshptr->vnohnnd) && (orgparttax[orgvertend] != 2)) { errorPrint ("hmeshInducePart: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ if (orgmeshptr->m.vnlotax != NULL) { Gnum orgvnloval; orgvnloval = orgmeshptr->m.vnlotax[orgvertend]; indmeshptr->m.vnlotax[indvnodnum] = orgvnloval; indvnlosum += orgvnloval; } orgindxtax[orgvertend] = indvnodnum; /* Set number of halo node */ indvnuhtax[indvnodnum] = orgvertend; /* Keep number of halo node */ indvnodnum ++; indedgetax[-- indedhdnum] = orgindxtax[orgvertend]; continue; } if (orgindxtax[orgvertend] < indmeshptr->vnohnnd) /* If non-halo vertex */ indedgetax[indedgenum ++] = orgindxtax[orgvertend]; else /* Else if halo vertex */ indedgetax[-- indedhdnum] = orgindxtax[orgvertend]; } #ifdef SCOTCH_DEBUG_HMESH2 if (indedgenum != indedhdnum) { errorPrint ("hmeshInducePart: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ if (indedhdnum == indmeshptr->m.verttax[indvertnum]) /* If element has halo nodes only */ indveihnbr ++; /* One more halo-isolated element created */ indmeshptr->vehdtax[indvertnum] = indedhdnum; indedgenum = indedgennd; orgindxtax[orgvelmnum] = indvertnum; indvertnum ++; /* One more element created */ } else orgindxtax[orgvelmnum] = ~0; } #ifdef SCOTCH_DEBUG_HMESH2 if (indvertnum != (indvelmnbr + orgmeshptr->m.baseval)) { errorPrint ("hmeshInducePart: internal error (5)"); /* Maybe a problem with veisnbr or veihnbr */ return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ indmeshptr->veihnbr = indveihnbr; /* Record number of new halo-isolated elements found */ indmeshptr->m.vnodnbr = indvnodnum - indmeshptr->m.vnodbas; indmeshptr->m.vnodnnd = indvertnum + indmeshptr->m.vnodnbr; indmeshptr->m.velosum = (indmeshptr->m.velotax != NULL) ? indvelosum : indmeshptr->m.velmnbr; if (indmeshptr->m.vnlotax != NULL) { /* If vertex loads wanted */ indmeshptr->m.vnlosum = indvnhlsum + indvnlosum; indmeshptr->vnhlsum = indvnhlsum; } else { indmeshptr->m.vnlosum = indmeshptr->m.vnodnbr; indmeshptr->vnhlsum = indmeshptr->vnohnbr; } #ifdef SCOTCH_DEBUG_HMESH2 indedgenbr = 2 * (indedgenum - indmeshptr->m.baseval); /* Record number of arcs created from elements to nodes */ #endif /* SCOTCH_DEBUG_HMESH2 */ for ( ; indvertnum < indmeshptr->vnohnnd; indvertnum ++) { /* For all non-halo induced node vertices */ Gnum orgvnodnum; Gnum orgedgenum; orgvnodnum = indmeshptr->m.vnumtax[indvertnum] + (orgmeshptr->m.vnodbas - orgmeshptr->m.baseval); /* Get number of original node */ indmeshptr->m.verttax[indvertnum] = indedgenum; for (orgedgenum = orgmeshptr->m.verttax[orgvnodnum]; orgedgenum < orgmeshptr->m.vendtax[orgvnodnum]; orgedgenum ++) { Gnum orgvertend; orgvertend = orgmeshptr->m.edgetax[orgedgenum]; #ifdef SCOTCH_DEBUG_HMESH2 if (orgindxtax[orgvertend] == ~0) { errorPrint ("hmeshInducePart: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ indedgetax[indedgenum ++] = orgindxtax[orgvertend]; } } indmeshptr->enohnbr = indedgenum - indmeshptr->m.baseval; indmeshptr->levlnum = orgmeshptr->levlnum + 1; indmeshptr->contptr = orgmeshptr->contptr; for ( ; indvertnum < indmeshptr->m.vnodnnd; indvertnum ++) { /* For all halo induced node vertices */ Gnum orgvnodnum; Gnum orgedgenum; orgvnodnum = indvnuhtax[indvertnum]; /* Get number of original node */ indmeshptr->m.verttax[indvertnum] = indedgenum; for (orgedgenum = orgmeshptr->m.verttax[orgvnodnum]; orgedgenum < orgmeshptr->m.vendtax[orgvnodnum]; orgedgenum ++) { Gnum orgvertend; orgvertend = orgmeshptr->m.edgetax[orgedgenum]; if (orgindxtax[orgvertend] != ~0) { /* If end element belongs to right part */ indedgetax[indedgenum ++] = orgindxtax[orgvertend]; } } } #ifdef SCOTCH_DEBUG_HMESH2 if ((indedgenum - indmeshptr->m.baseval) != indedgenbr) { errorPrint ("hmeshInducePart: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ indmeshptr->m.verttax[indvertnum] = indedgenum; /* Set end of edge array */ indmeshptr->m.edgenbr = indedgenum - indmeshptr->m.baseval; indmeshptr->m.vnodnnd = indvertnum; /* Record number of induced non-element vertices */ indmeshptr->m.vnodnbr = indvertnum - indmeshptr->m.vnodbas; if (orgmeshptr->m.vnumtax != NULL) { /* If source mesh is not original mesh */ for (indvnodnum = indmeshptr->m.vnodbas; indvnodnum < indmeshptr->vnohnnd; indvnodnum ++) indmeshptr->m.vnumtax[indvnodnum] = orgmeshptr->m.vnumtax[indmeshptr->m.vnumtax[indvnodnum] + (orgmeshptr->m.vnodbas - orgmeshptr->m.baseval)]; } indmeshptr->m.edgetax = memRealloc (indedgetax + indmeshptr->m.baseval, indmeshptr->m.edgenbr * sizeof (Gnum)); indmeshptr->m.edgetax -= indmeshptr->m.baseval; #ifdef SCOTCH_DEBUG_HMESH2 if (hmeshCheck (indmeshptr) != 0) { /* Check halo mesh consistency */ errorPrint ("hmeshInducePart: inconsistent halo mesh data"); hmeshExit (indmeshptr); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_mesh.c000066400000000000000000000155631514310134000262130ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_mesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the mesh un- **/ /** haloing routine. **/ /** **/ /** DATES : # Version 4.0 : from : 28 apr 2004 **/ /** to : 11 may 2004 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /** NOTES : # From a given halo mesh is created a **/ /** non-halo mesh. When nodes are **/ /** numbered after elements, halo nodes **/ /** are simply removed. When nodes are **/ /** numbered before elements, halo nodes **/ /** are turned into empty elements such **/ /** that the numbering of vertices **/ /** remains continuous, without holes. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "hgraph.h" #include "mesh.h" #include "hmesh.h" /***************************************/ /* */ /* The non-halo mesh building routine. */ /* */ /***************************************/ /* This routine builds a non-halo mesh from ** the given halo mesh. ** It returns: ** - 0 : if the non-halo mesh has been successfully built. ** - 1 : on error. */ int hmeshMesh ( const Hmesh * restrict const hmshptr, /*+ Original halo mesh +*/ Mesh * restrict const meshptr) /*+ Mesh to build +*/ { meshptr->baseval = hmshptr->m.baseval; meshptr->veisnbr = hmshptr->m.veisnbr + hmshptr->veihnbr; /* Add halo isolated elements to isolated elements */ meshptr->vnodnbr = hmshptr->vnohnbr; meshptr->vnodbas = hmshptr->m.vnodbas; meshptr->vnodnnd = hmshptr->vnohnbr + hmshptr->m.vnodbas; meshptr->verttax = hmshptr->m.verttax; meshptr->velotax = hmshptr->m.velotax; meshptr->vnlotax = hmshptr->m.vnlotax; /* Use non-halo part of node vertex load array, if any */ meshptr->velosum = hmshptr->m.velosum; meshptr->vnlosum = hmshptr->vnhlsum; meshptr->vnumtax = hmshptr->m.vnumtax; /* The same for vnumtab */ meshptr->vlbltax = NULL; meshptr->edgenbr = hmshptr->enohnbr; meshptr->edgetax = hmshptr->m.edgetax; meshptr->degrmax = hmshptr->m.degrmax; if (hmshptr->vnohnbr == hmshptr->m.vnodnbr) { /* If halo mesh does not have any halo */ meshptr->flagval = MESHNONE; /* Just create a clone of the original mesh */ meshptr->velmnbr = hmshptr->m.velmnbr; meshptr->velmbas = hmshptr->m.velmbas; meshptr->velmnnd = hmshptr->m.velmnnd; meshptr->vendtax = hmshptr->m.vendtax; return (0); } meshptr->flagval = MESHFREEVEND; if (hmshptr->m.velmbas <= hmshptr->m.vnodbas) { /* If elements numbered before nodes */ if ((meshptr->vendtax = memAlloc ((hmshptr->m.velmnbr + hmshptr->vnohnbr) * sizeof (Gnum))) == NULL) { /* Do not keep halo nodes at end of array */ errorPrint ("hmeshHgraph: out of memory (1)"); return (1); } memCpy (meshptr->vendtax, hmshptr->vehdtax + hmshptr->m.velmbas, hmshptr->m.velmnbr * sizeof (Gnum)); memCpy (meshptr->vendtax + hmshptr->m.velmnbr, hmshptr->m.vendtax + hmshptr->m.vnodbas, hmshptr->vnohnbr * sizeof (Gnum)); meshptr->velmnbr = hmshptr->m.velmnbr; meshptr->velmbas = hmshptr->m.velmbas; meshptr->velmnnd = hmshptr->m.velmnnd; } else { /* If nodes numbered before elements */ if ((meshptr->vendtax = memAlloc ((hmshptr->m.velmnbr + hmshptr->m.vnodnbr) * sizeof (Gnum))) == NULL) { /* Turn halo nodes into empty elements */ errorPrint ("hmeshHgraph: out of memory (2)"); return (1); } memCpy (meshptr->vendtax, hmshptr->m.vendtax + hmshptr->m.baseval, hmshptr->vnohnbr * sizeof (Gnum)); /* Copy non-halo node part */ memCpy (meshptr->vendtax + hmshptr->vnohnbr, hmshptr->m.verttax + hmshptr->vnohnnd, hmshptr->m.vnodnbr - hmshptr->vnohnbr * sizeof (Gnum)); /* Create empty fake element part */ memCpy (meshptr->vendtax + hmshptr->m.vnodnbr, hmshptr->vehdtax + hmshptr->m.velmbas, hmshptr->m.velmnbr * sizeof (Gnum)); meshptr->velmnbr = hmshptr->m.velmnbr + hmshptr->m.vnodnbr - hmshptr->vnohnbr; /* Turn halo node vertices into element vertices */ meshptr->velmbas = hmshptr->vnohnnd; meshptr->velmnnd = hmshptr->m.velmnnd; } meshptr->vendtax -= meshptr->baseval; #ifdef SCOTCH_DEBUG_HMESH2 if (meshCheck (meshptr) != 0) { errorPrint ("hmeshMesh: internal error"); return (1); } #endif /* SCOTCH_DEBUG_HMESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_bl.c000066400000000000000000000130051514310134000270340ustar00rootroot00000000000000/* Copyright 2004,2007,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_bl.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module resizes block data using **/ /** the block splitting post-processing **/ /** algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 28 sep 2002 **/ /** to : 09 feb 2005 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 25 jul 2007 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_bl.h" #include "hmesh_order_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderBl ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HmeshOrderBlParam * restrict const paraptr) { Gnum cblknbr; /* Number of old column blocks before splitting */ Gnum cblknum; /* Number of current column block */ if (paraptr->cblkmin <= 0) { errorPrint ("hmeshOrderBl: invalid minimum block size"); return (1); } if (hmeshOrderSt (meshptr, ordeptr, ordenum, cblkptr, paraptr->strat) != 0) /* Perform ordering strategy */ return (1); if (cblkptr->cblktab == NULL) { /* If single column block */ if (cblkptr->vnodnbr < (2 * paraptr->cblkmin)) /* If block cannot be split */ return (0); cblknbr = cblkptr->vnodnbr / paraptr->cblkmin; /* Get new number of blocks */ if ((cblkptr->cblktab = (OrderCblk *) memAlloc (cblknbr * sizeof (OrderCblk))) == NULL) { errorPrint ("hmeshOrderBl: out of memory"); return (1); } cblkptr->typeval = ORDERCBLKSEQU; /* Node becomes a sequence of blocks */ cblkptr->cblknbr = cblknbr; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->treenbr += cblknbr; /* These more number of tree nodes */ ordeptr->cblknbr += cblknbr - 1; /* These more number of column blocks */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ for (cblknum = 0; cblknum < cblknbr; cblknum ++) { cblkptr->cblktab[cblknum].typeval = ORDERCBLKLEAF; cblkptr->cblktab[cblknum].vnodnbr = ((cblkptr->vnodnbr + cblknbr - 1) - cblknum) / cblknbr; cblkptr->cblktab[cblknum].cblknbr = 0; cblkptr->cblktab[cblknum].cblktab = NULL; } } else { /* Block already partitioned */ for (cblknum = 0; cblknum < cblkptr->cblknbr; cblknum ++) { if (hmeshOrderBl (meshptr, ordeptr, ordenum, cblkptr->cblktab + cblknum, paraptr) != 0) return (1); } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_bl.h000066400000000000000000000064551514310134000270540ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2010,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_bl.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the block splitting algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 28 sep 2002 **/ /** to : 04 jan 2005 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderBlParam_ { Strat * strat; /*+ Ordering strategy +*/ INT cblkmin; /*+ Block splitting size +*/ } HmeshOrderBlParam; /* ** The function prototypes. */ int hmeshOrderBl (Hmesh * const, Order * const, const Gnum, OrderCblk * const, const HmeshOrderBlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_cp.c000066400000000000000000000613641514310134000270540ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_cp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module performs compession of mesh **/ /** nodes, by merging nodes having the same **/ /** adjacency structure. **/ /** **/ /** DATES : # Version 4.0 : from : 08 feb 2004 **/ /** to : 05 jan 2005 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 12 sep 2007 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 09 feb 2020 **/ /** # Version 7.0 : from : 28 aug 2020 **/ /** to : 17 jan 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HMESH_ORDER_CP #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_cp.h" #include "hmesh_order_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderCp ( Hmesh * restrict const finemeshptr, Order * restrict const fineordeptr, const Gnum ordenum, /*+ Zero-based ordering number +*/ OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HmeshOrderCpParam * restrict const paraptr) { Hmesh coarmeshdat; /* Compressed halo submesh */ Order coarordedat; /* Ordering of compressed halo submesh */ Gnum * restrict coarperitab; /* Coarse permutation array */ const Gnum * restrict coarperitax; /* Temporary based access to coarperitab */ Gnum coarvertnum; /* Number of current compressed vertex */ Gnum * restrict coarvsiztax; /* Array of coarse vertex sizes (as number of merged fine vertices) */ Gnum coaredgenum; /* Number of current compressed edge */ Gnum * restrict coarvpostax; /* Position in fine permutation of fine vertices merged into same vertex */ Gnum coarvnodmax; Gnum coarvertmax; Gnum * restrict finecoartax; /* Original to compressed vertex number array */ HmeshOrderCpHash * restrict finehashtab; /* Neighbor hash table */ Gnum finehashmsk; /* Mask for access to hash table */ int * restrict finehasptab; /* Pre-hashing table */ Gnum finehaspmsk; /* Mask for access to pre-hashing table */ Gnum * restrict finehsumtax; /* Array of hash values for each original vertex */ Gnum finevsizsum; /* Sum of compressed vertex sizes to build fine inverse permutation */ Gnum coarvsizsiz; /* Size of array of sizes of coarse nodes */ Gnum coarvelmnbr; /* Number of coarse element vertices */ Gnum * restrict coarverttax; Gnum * restrict coarvnlotax; Gnum * restrict coaredgetax; Gnum * restrict coarfinetax; Gnum finevnodnum; Gnum coarvnodnbr; Gnum finevelmnum; Gnum coarvnodnnd; Gnum coardegrmax; Gnum coarvnodnum; #ifdef SCOTCH_DEBUG_ORDER2 Gnum finevertnbr; /* Number of fine vertices in compressed elimination tree */ #endif /* SCOTCH_DEBUG_ORDER2 */ if (finemeshptr->vnohnbr != finemeshptr->m.vnodnbr) { errorPrint ("hmeshOrderCp: halo meshes not supported yet"); return (1); } coarvelmnbr = finemeshptr->m.velmnbr; /* To date, keep isolated elements */ coarvnodmax = (Gnum) ((double) finemeshptr->vnohnbr * paraptr->comprat) + (finemeshptr->m.vnodnbr - finemeshptr->vnohnbr); coarvertmax = coarvnodmax + coarvelmnbr; coarvsizsiz = (finemeshptr->m.vnlotax == NULL) ? 0 : coarvnodmax; for (finehashmsk = 15; /* Set neighbor hash table size */ finehashmsk < finemeshptr->m.degrmax; finehashmsk = finehashmsk * 2 + 1) ; finehashmsk = finehashmsk * 4 + 3; /* Fill hash table at 1/4 of capacity */ if (memAllocGroup ((void **) (void *) &coarverttax, (size_t) ((coarvertmax + 1) * sizeof (Gnum)), &coarvsiztax, (size_t) (coarvsizsiz * sizeof (Gnum)), /* TRICK: if no vertex loads, coarvsiztax points to coarvnodtax */ &coarvnlotax, (size_t) (coarvnodmax * sizeof (Gnum)), /* Only change node weights */ &finecoartax, (size_t) (finemeshptr->m.vnodnbr * sizeof (Gnum)), &coaredgetax, (size_t) (finemeshptr->m.edgenbr * sizeof (Gnum)), &finehsumtax, (size_t) (finemeshptr->m.vnodnbr * sizeof (Gnum)), &finehashtab, (size_t) ((finehashmsk + 1) * sizeof (HmeshOrderCpHash)), &coarperitab, (size_t) (coarvnodmax * sizeof (Gnum)), /* TODO: move after resize */ &coarfinetax, (size_t) (coarvnodmax * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hmeshOrderCp: out of memory (1)"); return (1); } /* TODO : resize after success */ finehsumtax -= finemeshptr->m.vnodbas; /* TRICK: do not base finecoartax yet (see later) */ finehasptab = (int *) finecoartax; /* Use finecoartab as temporary pre-hash table */ for (finehaspmsk = 1; /* Get pre-hash mask that fits in finecoartab */ finehaspmsk <= finemeshptr->m.vnodnbr; /* Smallest (2^i)-1 value > vertnbr */ finehaspmsk = finehaspmsk * 2 + 1) ; finehaspmsk >>= 1; /* Ensure masked data will always fit into finecoartab array */ finehaspmsk = (finehaspmsk * (sizeof (Gnum) / sizeof (int))) + ((sizeof (Gnum) / sizeof (int)) - 1); if (finehaspmsk >= (Gnum) ((sizeof (int) << (3 + 1)) - 1)) /* Only use 1/8 of array for pre-hashing, for increased cache locality */ finehaspmsk >>= 3; memSet (finehasptab, 0, (finehaspmsk + 1) * sizeof (int)); /* Initialize pre-hash table */ for (finevnodnum = finemeshptr->m.vnodbas, coarvnodnbr = finemeshptr->m.vnodnbr; /* For all non-halo node vertices */ finevnodnum < finemeshptr->vnohnnd; finevnodnum ++) { Gnum fineenodnum; /* Current edge number */ Gnum finehsumval; /* Hash sum value */ Gnum finehsumbit; for (fineenodnum = finemeshptr->m.verttax[finevnodnum], finehsumval = 0; fineenodnum < finemeshptr->m.vendtax[finevnodnum]; fineenodnum ++) finehsumval += finemeshptr->m.edgetax[fineenodnum]; finehsumtax[finevnodnum] = finehsumval; finehsumbit = finehsumval & ((sizeof (int) << 3) - 1); /* Get bit mask and byte position (division should be optimized into a shift) */ finehsumval /= (sizeof (int) << 3); finehsumval &= finehaspmsk; /* Make hash sum value fit into finehasptab */ coarvnodnbr -= (finehasptab[finehsumval] >> finehsumbit) & 1; /* If hash value already in pre-hash table, maybe one more vertex compressed */ finehasptab[finehsumval] |= (1 << finehsumbit); /* Put value into pre-hash table anyway */ } if (coarvnodnbr > coarvnodmax) { /* If mesh needs not be compressed */ memFree (coarverttax); /* Group leader not yet based */ return (hmeshOrderSt (finemeshptr, fineordeptr, ordenum, cblkptr, paraptr->stratunc)); } memSet (finecoartax, ~0, finemeshptr->m.vnodnbr * sizeof (Gnum)); memSet (&coarmeshdat, 0, sizeof (Hmesh)); /* Initialize compressed halo mesh structure */ coarmeshdat.m.flagval = MESHFREEVERT | MESHVERTGROUP; /* Free only coarverttab as group leader */ coarmeshdat.m.baseval = finemeshptr->m.baseval; coarmeshdat.m.velmbas = coarmeshdat.m.baseval; coarmeshdat.m.velmnbr = coarvelmnbr; /* Mesh compression does not touch elements, apart from isolated elements */ coarmeshdat.m.velmnnd = coarmeshdat.m.vnodbas = coarvelmnbr + coarmeshdat.m.baseval; coarmeshdat.m.veisnbr = finemeshptr->m.veisnbr; /* To date, keep all isolated element vertices, if any */ coarmeshdat.m.velosum = finemeshptr->m.velosum; coarmeshdat.m.vnlosum = finemeshptr->m.vnlosum; coarverttax -= coarmeshdat.m.baseval; coarvsiztax -= coarmeshdat.m.vnodbas; /* TRICK: if no vertex loads, coarvsiztax points to coarvnodtax */ coarvnlotax -= coarmeshdat.m.vnodbas; coaredgetax -= coarmeshdat.m.baseval; finecoartax -= finemeshptr->m.vnodbas; coarmeshdat.m.verttax = coarverttax; coarmeshdat.m.vendtax = coarverttax + 1; /* Use compact representation of arrays */ coarmeshdat.m.velotax = finemeshptr->m.velotax; /* Re-use element vertex load array, if any */ coarmeshdat.m.vnlotax = coarvnlotax; coarmeshdat.m.edgetax = coaredgetax; coarfinetax -= coarmeshdat.m.vnodbas; memSet (finehashtab, ~0, (finehashmsk + 1) * sizeof (HmeshOrderCpHash)); for (finevelmnum = finemeshptr->m.velmbas, coarvertnum = coaredgenum = coarmeshdat.m.baseval, /* Build element arrays */ coarvnodnnd = coarmeshdat.m.baseval + finemeshptr->m.velmnbr, coardegrmax = 0; finevelmnum < finemeshptr->m.velmnnd; finevelmnum ++) { Gnum fineeelmnum; Gnum coardegrval; fineeelmnum = finemeshptr->m.verttax[finevelmnum]; #ifdef DEAD_CODE if (fineeelmnum == finemeshptr->m.vendtax[finevelmnum]) /* Skip isolated elements */ continue; #endif #ifdef SCOTCH_DEBUG_ORDER2 if (coarvertnum >= coarmeshdat.m.velmnnd) { /* If too many elements declared */ errorPrint ("hmeshOrderCp: internal error (1)"); /* Maybe problem with veisnbr */ return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ coarverttax[coarvertnum] = coaredgenum; for ( ; fineeelmnum < finemeshptr->m.vendtax[finevelmnum]; fineeelmnum ++) { Gnum finevnodnum; Gnum coarvnodnum; finevnodnum = finemeshptr->m.edgetax[fineeelmnum]; coarvnodnum = finecoartax[finevnodnum]; if (coarvnodnum != ~0) { /* If fine node already considered */ if (coarvnodnum >= 0) /* If node is leader of cluster */ coaredgetax[coaredgenum ++] = coarvnodnum; /* Add it to coarse mesh */ } else { /* Fine node not yet considered */ Gnum finehsumval; Gnum finedegrval; Gnum fineeelmngb; Gnum coarvsizval; /* Number of fine node vertices in coarse node vertex */ if (coarvnodnnd >= (coarvnodmax + coarmeshdat.m.vnodbas)) { /* If mesh needs not be compressed */ memFree (coarverttax + coarmeshdat.m.baseval); return (hmeshOrderSt (finemeshptr, fineordeptr, ordenum, cblkptr, paraptr->stratunc)); } coarvsizval = 1; /* Cluster leader it at least alone */ coarvnodnum = coarvnodnnd ++; /* Node is leader of future cluster */ finecoartax[finevnodnum] = coarvnodnum; /* Record node as cluster leader */ coaredgetax[coaredgenum ++] = coarvnodnum; /* Add leader to coarse mesh */ coarfinetax[coarvnodnum] = finevnodnum; /* Record node to build edge sub-array */ finehsumval = finehsumtax[finevnodnum]; /* Get hash sum of cluster leader */ finedegrval = finemeshptr->m.vendtax[finevnodnum] - finemeshptr->m.verttax[finevnodnum]; for (fineeelmngb = fineeelmnum + 1; /* For all remaining edges of current element */ fineeelmngb < finemeshptr->m.vendtax[finevelmnum]; fineeelmngb ++) { Gnum finevnodngb; Gnum fineenodngb; finevnodngb = finemeshptr->m.edgetax[fineeelmngb]; /* Get index of neighboring node */ if ((finecoartax[finevnodngb] != ~0) || /* If node has already been processed or */ (finehsumval != finehsumtax[finevnodngb]) || /* If hash sum does not match, skip node */ (finedegrval != (finemeshptr->m.vendtax[finevnodngb] - finemeshptr->m.verttax[finevnodngb]))) continue; if (finehashtab[(finevelmnum * HMESHORDERCPHASHPRIME) & finehashmsk].vnodnum != finevnodnum) { /* If hash table not yet filled */ Gnum fineenodnum; for (fineenodnum = finemeshptr->m.verttax[finevnodnum]; fineenodnum < finemeshptr->m.vendtax[finevnodnum]; fineenodnum ++) { Gnum finevelmend; Gnum finehelmend; finevelmend = finemeshptr->m.edgetax[fineenodnum]; for (finehelmend = (finevelmend * HMESHORDERCPHASHPRIME) & finehashmsk; finehashtab[finehelmend].vnodnum == finevnodnum; finehelmend = (finehelmend + 1) & finehashmsk) ; finehashtab[finehelmend].vnodnum = finevnodnum; /* Fill hash table with node adjacency */ finehashtab[finehelmend].velmnum = finevelmend; } } for (fineenodngb = finemeshptr->m.verttax[finevnodngb]; fineenodngb < finemeshptr->m.vendtax[finevnodngb]; fineenodngb ++) { Gnum finevelmngb; Gnum finehelmngb; finevelmngb = finemeshptr->m.edgetax[fineenodngb]; for (finehelmngb = (finevelmngb * HMESHORDERCPHASHPRIME) & finehashmsk; ; finehelmngb = (finehelmngb + 1) & finehashmsk) { if (finehashtab[finehelmngb].vnodnum != finevnodnum) /* If adjacencies differ, break */ goto loop_failed; if (finehashtab[finehelmngb].velmnum == finevelmngb) /* If neighbor found, process next neighbor */ break; } } finecoartax[finevnodngb] = -2 - coarvnodnum; /* Set index of cluster non-leader */ coarvsizval ++; /* One more non-leader in cluster */ loop_failed: ; } coarvsiztax[coarvnodnum] = coarvsizval; } } coardegrval = coaredgenum - coarverttax[coarvertnum]; if (coardegrval > coardegrmax) coardegrmax = coardegrval; coarvertnum ++; /* One more coarse element created */ } #ifdef SCOTCH_DEBUG_ORDER2 if (coarvertnum != coarmeshdat.m.velmnnd) { /* If too many elements declared */ errorPrint ("hmeshOrderCp: internal error (2)"); /* Maybe problem with veisnbr */ return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ coarmeshdat.m.vnodnnd = coarvnodnnd; coarmeshdat.m.vnodnbr = coarvnodnnd - coarmeshdat.m.vnodbas; #ifdef SCOTCH_DEBUG_ORDER2 for (finevnodnum = finemeshptr->m.vnodbas; finevnodnum < finemeshptr->m.vnodnnd; finevnodnum ++) { if (finecoartax[finevnodnum] == ~0) { errorPrint ("hmeshOrderCp: internal error (3)"); return (1); } } #endif /* SCOTCH_DEBUG_ORDER2 */ for ( ; coarvertnum < coarmeshdat.m.vnodnnd; coarvertnum ++) { /* Build node arrays */ Gnum finevnodnum; Gnum fineenodnum; Gnum coardegrval; coarverttax[coarvertnum] = coaredgenum; finevnodnum = coarfinetax[coarvertnum]; coardegrval = finemeshptr->m.vendtax[finevnodnum] - finemeshptr->m.verttax[finevnodnum]; for (fineenodnum = finemeshptr->m.verttax[finevnodnum]; fineenodnum < finemeshptr->m.vendtax[finevnodnum]; fineenodnum ++) coaredgetax[coaredgenum ++] = finemeshptr->m.edgetax[fineenodnum] - (finemeshptr->m.velmbas - coarmeshdat.m.velmbas); if (coardegrval > coardegrmax) coardegrmax = coardegrval; } coarverttax[coarvertnum] = coaredgenum; /* Set end of vertex array */ coarmeshdat.m.edgenbr = coaredgenum - coarmeshdat.m.baseval; coarmeshdat.m.degrmax = coardegrmax; coarmeshdat.vnohnbr = coarmeshdat.m.vnodnbr; /* Halo meshes not yet supported */ coarmeshdat.vnohnnd = coarmeshdat.m.vnodnnd; coarmeshdat.vehdtax = coarmeshdat.m.vendtax; /* Only element part of vendtab will be accessed through vehdtab */ coarmeshdat.vnhlsum = coarmeshdat.m.vnlosum; coarmeshdat.enohnbr = coarmeshdat.m.edgenbr; coarmeshdat.levlnum = finemeshptr->levlnum; /* Compression does not change level */ coarmeshdat.contptr = finemeshptr->contptr; if (finemeshptr->m.vnlotax != NULL) { /* If fine mesh has node vertex loads */ memSet (coarmeshdat.m.vnlotax + coarmeshdat.m.vnodbas, 0, coarmeshdat.m.vnodnbr * sizeof (Gnum)); for (finevnodnum = finemeshptr->m.vnodbas; finevnodnum < finemeshptr->m.vnodnnd; finevnodnum ++) { /* Compute vertex loads for compressed mesh */ coarmeshdat.m.vnlotax[finecoartax[finevnodnum]] += finemeshptr->m.vnlotax[finevnodnum]; } } #ifdef SCOTCH_DEBUG_ORDER2 if (hmeshCheck (&coarmeshdat) != 0) { errorPrint ("hmeshOrderCp: internal error (4)"); hmeshExit (&coarmeshdat); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ orderInit (&coarordedat, coarmeshdat.m.baseval, coarmeshdat.m.vnodnbr, coarperitab); /* Build ordering of compressed submesh */ if (hmeshOrderSt (&coarmeshdat, &coarordedat, 0, &coarordedat.rootdat, paraptr->stratcpr) != 0) { hmeshExit (&coarmeshdat); return (1); } coarvsiztax += (coarmeshdat.m.vnodbas - coarmeshdat.m.baseval); /* Adjust array to match permutation bounds */ *cblkptr = coarordedat.rootdat; /* Link sub-tree to ordering */ coarordedat.rootdat.cblktab = NULL; /* Unlink sub-tree from sub-ordering */ #ifdef SCOTCH_DEBUG_ORDER2 finevertnbr = #endif /* SCOTCH_DEBUG_ORDER2 */ hmeshOrderCpTree (coarordedat.peritab, coarvsiztax, cblkptr, 0); /* Expand sub-tree */ #ifdef SCOTCH_DEBUG_ORDER2 if (finevertnbr != finemeshptr->m.vnodnbr) { errorPrint ("hmeshOrderCp: internal error (5)"); hmeshExit (&coarmeshdat); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&fineordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ fineordeptr->treenbr += coarordedat.treenbr - 1; /* Adjust number of tree nodes */ fineordeptr->cblknbr += coarordedat.cblknbr - 1; /* Adjust number of column blocks */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&fineordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ coarvpostax = coarmeshdat.m.verttax; /* Recycle verttab (not velotab as may be merged with coarvsiztab) */ coarperitax = coarperitab - coarmeshdat.m.vnodbas; for (coarvnodnum = coarmeshdat.m.vnodbas, finevsizsum = 0; /* Compute initial indices for inverse permutation expansion */ coarvnodnum < coarmeshdat.m.vnodnnd; coarvnodnum ++) { coarvpostax[coarperitax[coarvnodnum]] = finevsizsum; finevsizsum += coarvsiztax[coarperitax[coarvnodnum]]; } coarvpostax = coarmeshdat.m.verttax + (coarmeshdat.m.baseval - coarmeshdat.m.vnodbas); for (finevnodnum = finemeshptr->m.vnodbas; finevnodnum < finemeshptr->m.vnodnnd; finevnodnum ++) { /* Compute fine permutation */ Gnum coarvnodnum; coarvnodnum = finecoartax[finevnodnum]; /* Get index of corresponding coarse node */ if (coarvnodnum < 0) /* If node is not cluster leader */ coarvnodnum = -2 - coarvnodnum; /* Get index of cluster leader */ fineordeptr->peritab[coarvpostax[coarvnodnum] ++] = finevnodnum + (finemeshptr->m.baseval - finemeshptr->m.vnodbas); } orderExit (&coarordedat); hmeshExit (&coarmeshdat); return (0); } /* This routine turns the coarse elimination ** tree produced by the ordering of the coarse ** mesh into a fine elimination tree, according ** to the cardinality of the coarse vertices. ** It returns: ** - !0 : overall number of fine vertices, in all cases. */ static Gnum hmeshOrderCpTree ( const Gnum * restrict const coarperitab, /* Coarse inverse permutation */ const Gnum * restrict const coarvsiztax, /* Array of fine sizes of coarse vertices */ OrderCblk * restrict const coficblkptr, /* Current coarse/fine column block cell */ Gnum coarordenum) /* Compressed vertex to start expansion at */ { Gnum finevertnbr; /* Number of fine vertices in subtree */ finevertnbr = 0; /* No fine vertices yet */ if (coficblkptr->cblktab == NULL) { /* If leaf of column block tree */ Gnum coarvnumnum; for (coarvnumnum = coarordenum; coarvnumnum < coarordenum + coficblkptr->vnodnbr; coarvnumnum ++) finevertnbr += coarvsiztax[coarperitab[coarvnumnum]]; /* Sum-up fine vertices */ } else { Gnum coarvertnbr; /* Number of coarse vertices in cell */ Gnum coarvertsum; /* Number of coarse vertices in subtree */ Gnum coficblknum; /* Index in column block array */ for (coficblknum = 0, coarvertsum = coarordenum; /* Start at current coarse index */ coficblknum < coficblkptr->cblknbr; coficblknum ++) { coarvertnbr = coficblkptr->cblktab[coficblknum].vnodnbr; /* Save number of coarse vertices */ finevertnbr += hmeshOrderCpTree (coarperitab, coarvsiztax, &coficblkptr->cblktab[coficblknum], coarvertsum); coarvertsum += coarvertnbr; /* Sum-up coarse vertices */ } } coficblkptr->vnodnbr = finevertnbr; /* Set number of fine vertices */ return (finevertnbr); /* Return accumulated number */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_cp.h000066400000000000000000000105231514310134000270500ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_cp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the mesh compression algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 08 feb 2004 **/ /** to : 08 feb 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /** Prime number for hashing vertex numbers. **/ #define HMESHORDERCPHASHPRIME 17 /* Prime number */ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderCpParam_ { double comprat; /*+ Compression ratio threshold +*/ Strat * stratcpr; /*+ Compressed submesh ordering strategy +*/ Strat * stratunc; /*+ Uncompressed submesh ordering strategy +*/ } HmeshOrderCpParam; /*+ This structure holds fine neighbor hashing data. +*/ typedef struct HmeshOrderCpHash_ { Gnum vnodnum; /*+ Origin node vertex (i.e. pass) number +*/ Gnum velmnum; /*+ Adjacent end element vertex number +*/ } HmeshOrderCpHash; /*+ This structure holds coarse neighbor mate data. +*/ typedef struct HgraphOrderCpMate_ { Gnum coarvertend; /*+ Adjacent coarse end vertex number +*/ Gnum finevertend; /*+ Adjacent end vertex number +*/ } HgraphOrderCpMate; /* ** The function prototypes. */ #ifdef SCOTCH_HMESH_ORDER_CP static Gnum hmeshOrderCpTree (const Gnum * const, const Gnum * const, OrderCblk * const, Gnum); #endif /* SCOTCH_HMESH_ORDER_CP */ int hmeshOrderCp (Hmesh * const, Order * const, const Gnum, OrderCblk * const, const HmeshOrderCpParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_gp.c000066400000000000000000000301121514310134000270430ustar00rootroot00000000000000/* Copyright 2004,2007,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_gp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a subgraph (most **/ /** likely a separator) using the Gibbs, **/ /** Poole, and Stockmeyer algorithm. **/ /** **/ /** DATES : # Version 3.2 : from : 31 oct 1996 **/ /** to : 27 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 4.0 : from : 05 nov 2002 **/ /** to : 27 jan 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 12 sep 2007 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_gp.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderGp ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HmeshOrderGpParam * restrict const paraptr) { HmeshOrderGpQueue queue; /* Neighbor queue */ HmeshOrderGpVertex * restrict vexxtax; /* Based access to vertex array */ HmeshOrderGpVertex * rootptr; /* Pointer to root vertex */ Gnum passnum; /* Pass number */ int passflag; /* Flag set if diameter changed */ Gnum vdianum; /* Vertex which achieves diameter */ Gnum vdiadist; /* Maximum diameter value found */ Gnum vnodnbr; /* Number of vertices found yet */ Gnum ordeval; /* Current ordering value */ if (memAllocGroup ((void **) (void *) &queue.qtab, (size_t) ((meshptr->vnohnnd - meshptr->m.baseval) * sizeof (Gnum)), &vexxtax, (size_t) ((meshptr->m.velmnbr + meshptr->m.vnodnbr) * sizeof (HmeshOrderGpVertex)), NULL) == NULL) { errorPrint ("hmeshOrderGp: out of memory"); return (1); } vexxtax -= meshptr->m.baseval; /* Base vexxtab array */ memSet (vexxtax + meshptr->m.velmbas, 0, meshptr->m.velmnbr * sizeof (HmeshOrderGpVertex)); /* Initialize pass numbers for */ memSet (vexxtax + meshptr->m.vnodbas, 0, (meshptr->vnohnnd - meshptr->m.vnodbas) * sizeof (HmeshOrderGpVertex)); /* All but halo node vertices */ for (vnodnbr = 0, ordeval = ordenum, rootptr = vexxtax + meshptr->m.vnodbas, passnum = 1; /* For all connected components */ vnodnbr < meshptr->vnohnbr; passnum ++) { while (rootptr->passnum != 0) /* Find first unallocated root */ rootptr ++; vdianum = (Gnum) (rootptr - vexxtax); /* Start from found root */ vdiadist = 0; for (passflag = 1; (passflag -- != 0) && (passnum <= paraptr->passnbr); passnum ++) { /* Loop if modifications */ hmeshOrderGpQueueFlush (&queue); /* Flush vertex queue */ hmeshOrderGpQueuePut (&queue, vdianum); /* Start from diameter vertex */ vexxtax[vdianum].passnum = passnum; /* It has been enqueued */ vexxtax[vdianum].vertdist = 0; /* It is at distance zero */ do { /* Loop on vertices in queue */ Gnum vnodnum; /* Number of current vertex */ Gnum vnoddist; /* Distance of current vertex */ Gnum enodnum; vnodnum = hmeshOrderGpQueueGet (&queue); /* Get vertex from queue */ vnoddist = vexxtax[vnodnum].vertdist; /* Get vertex distance */ if ((vnoddist > vdiadist) || /* If vertex increases diameter */ ((vnoddist == vdiadist) && /* Or is at diameter distance */ ((meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]) < /* With smaller degree */ (meshptr->m.vendtax[vdianum] - meshptr->m.verttax[vdianum])))) { vdianum = vnodnum; /* Set it as new diameter vertex */ vdiadist = vnoddist; passflag = 1; } vnoddist ++; /* Set neighbor distance */ for (enodnum = meshptr->m.verttax[vnodnum]; enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum eelmnum; velmnum = meshptr->m.edgetax[enodnum]; /* Get neighboring element */ if (vexxtax[velmnum].passnum >= passnum) /* If element already scanned */ continue; /* Skip to next element */ vexxtax[velmnum].passnum = passnum; /* Set element as scanned */ for (eelmnum = meshptr->m.verttax[velmnum]; /* For all neighboring non-halo nodes */ eelmnum < meshptr->vehdtax[velmnum]; eelmnum ++) { Gnum vnodend; /* Neighboring node */ vnodend = meshptr->m.edgetax[eelmnum]; /* Get neighboring node */ if (vexxtax[vnodend].passnum < passnum) { /* If node vertex not yet enqueued */ hmeshOrderGpQueuePut (&queue, vnodend); /* Enqueue neighbor vertex */ vexxtax[vnodend].passnum = passnum; vexxtax[vnodend].vertdist = vnoddist; } } } } while (! hmeshOrderGpQueueEmpty (&queue)); /* As long as queue is not empty */ } hmeshOrderGpQueueFlush (&queue); /* Flush vertex queue */ hmeshOrderGpQueuePut (&queue, vdianum); /* Start from diameter vertex */ vexxtax[vdianum].passnum = passnum; /* It has been enqueued */ do { /* Loop on vertices in queue */ Gnum vnodnum; /* Number of current vertex */ Gnum vnoddist; /* Distance of current vertex */ vnodnum = hmeshOrderGpQueueGet (&queue); /* Get vertex from queue */ if (vexxtax[vnodnum].passnum > passnum) /* If vertex already ordered */ continue; /* Skip to next vertex in queue */ vnoddist = vexxtax[vnodnum].vertdist; /* Get vertex distance */ do { /* Loop on vertices in layer */ Gnum enodnum; Gnum enodnnd; ordeptr->peritab[ordeval] = (meshptr->m.vnumtax == NULL) /* Order node vertex */ ? vnodnum - (meshptr->m.vnodbas - meshptr->m.baseval) : meshptr->m.vnumtax[vnodnum]; #ifdef SCOTCH_DEBUG_ORDER2 if ((ordeptr->peritab[ordeval] < ordeptr->baseval) || (ordeptr->peritab[ordeval] >= (ordeptr->baseval + ordeptr->vnodnbr))) { errorPrint ("hmeshOrderGp: invalid permutation index"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ ordeval ++; vexxtax[vnodnum].passnum = (passnum + 1); /* Set vertex as ordered */ vnodnbr ++; /* Count it */ for (enodnum = meshptr->m.verttax[vnodnum], enodnnd = meshptr->m.vendtax[vnodnum], vnodnum = ~0; enodnum < enodnnd; enodnum ++) { /* Order node vertices with high locality */ Gnum velmnum; /* Neighboring element */ Gnum eelmnum; velmnum = meshptr->m.edgetax[enodnum]; /* Get neighboring element */ if (vexxtax[velmnum].passnum >= passnum) /* If element already scanned */ continue; /* Skip to next element */ vexxtax[velmnum].passnum = passnum; /* Set element as scanned */ for (eelmnum = meshptr->m.verttax[velmnum]; /* For all neighboring non-halo nodes */ eelmnum < meshptr->vehdtax[velmnum]; eelmnum ++) { Gnum vnodend; /* Neighboring node */ vnodend = meshptr->m.edgetax[eelmnum]; /* Get neighboring node */ if (vexxtax[vnodend].passnum <= passnum) { /* If vertex not ordered yet */ if ((vnodnum == ~0) && /* If no next vertex set yet */ (vexxtax[vnodend].vertdist == vnoddist)) /* And in same layer */ vnodnum = vnodend; /* Set neighbor as next vertex */ else if (vexxtax[vnodend].passnum < passnum) { /* If not enqueued yet */ hmeshOrderGpQueuePut (&queue, vnodend); /* Enqueue neighbor vertex */ vexxtax[vnodend].passnum = passnum; /* Set it as enqueued */ } } } } } while (vnodnum != ~0); } while (! hmeshOrderGpQueueEmpty (&queue)); /* As long as queue is not empty */ } #ifdef SCOTCH_DEBUG_ORDER2 for (ordeval = ordenum; ordeval < (ordenum + meshptr->vnohnbr); ordeval ++) { if (ordeptr->peritab[ordeval] == ~0) { errorPrint ("hmeshOrderGp: internal error"); memFree (queue.qtab); /* Free group leader */ return (1); } } #endif /* SCOTCH_DEBUG_ORDER2 */ memFree (queue.qtab); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_gp.h000066400000000000000000000107401514310134000270550ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_gp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the Gibbs-Poole-Stockmeyer **/ /** node ordering routine. **/ /** **/ /** DATES : # Version 3.2 : from : 31 oct 1996 **/ /** to : 27 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 4.0 : from : 04 nov 2002 **/ /** to : 01 dec 2003 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderGpParam_ { INT passnbr; /*+ Number of passes to do +*/ } HmeshOrderGpParam; /*+ Complementary vertex structure. +*/ typedef struct HmeshOrderGpVertex_ { Gnum passnum; /*+ Number of pass when vertex selected +*/ Gnum vertdist; /*+ Current distance from diameter vertex +*/ } HmeshOrderGpVertex; /*+ Neighbor queue. +*/ typedef struct HmeshOrderGpQueue_ { Gnum * head; /*+ Head of distance queue +*/ Gnum * tail; /*+ Tail of distance queue +*/ Gnum * qtab; /*+ Array of queue elements +*/ } HmeshOrderGpQueue; /* ** The function prototypes. */ int hmeshOrderGp (Hmesh * const, Order * const, const Gnum, OrderCblk * const, const HmeshOrderGpParam * restrict const); /* ** The macro definitions. */ #define hmeshOrderGpQueueFlush(queue) ((queue)->head = (queue)->tail = (queue)->qtab) #define hmeshOrderGpQueueEmpty(queue) ((queue)->head <= (queue)->tail) #define hmeshOrderGpQueuePut(queue,vnum) (* ((queue)->head ++) = (vnum)) #define hmeshOrderGpQueueGet(queue) (* ((queue)->tail ++)) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_gr.c000066400000000000000000000075711514310134000270620ustar00rootroot00000000000000/* Copyright 2004,2007,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_gr.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a halo mesh by **/ /** turning it into a graph and using a **/ /** graph separation strategy. **/ /** **/ /** DATES : # Version 4.0 : from : 30 nov 2003 **/ /** to : 27 jan 2004 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_st.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_gr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderGr ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, const HmeshOrderGrParam * const paraptr) { Hgraph grafdat; int o; hgraphInit (&grafdat); if (hmeshHgraph (meshptr, &grafdat) != 0) { /* Build halo graph with improper vnumtab */ errorPrint ("hmeshOrderGr: cannot build halo graph"); return (1); } if ((o = hgraphOrderSt (&grafdat, ordeptr, ordenum, cblkptr, paraptr->stratptr)) != 0) errorPrint ("hmeshOrderGr: cannot order graph"); hgraphFree (&grafdat); /* Free graph structure */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_gr.h000066400000000000000000000062521514310134000270620ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_gr.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the graph-based node ordering **/ /** routine. **/ /** **/ /** DATES : # Version 4.0 : from : 30 nov 2003 **/ /** to : 30 nov 2003 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderGrParam_ { Strat * stratptr; /*+ Graph ordering strategy +*/ } HmeshOrderGrParam; /* ** The function prototypes. */ int hmeshOrderGr (Hmesh * const, Order * restrict const, const Gnum, OrderCblk * restrict const, const HmeshOrderGrParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_hd.c000066400000000000000000000202031514310134000270300ustar00rootroot00000000000000/* Copyright 2004,2007,2018-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_hd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a submesh using **/ /** the block-oriented Halo Approximate **/ /** (Multiple) Minimum Degree algorithm, **/ /** with super-variable accounting **/ /** R2HAMDf4 v2.0). **/ /** **/ /** DATES : # Version 4.0 : from : 10 dec 2003 **/ /** to : 24 jan 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 12 sep 2007 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 11 nov 2019 **/ /** to : 11 feb 2020 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hall_order_hd.h" #include "hall_order_hx.h" #include "hmesh_order_hd.h" #include "hmesh_order_hx.h" #include "hmesh_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderHd ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HmeshOrderHdParam * restrict const paraptr) { Gnum n; /* Number of nodes to order */ Gnum norig; /* Number of nodes in uncompressed graph */ Gnum * restrict petab; Gnum pfree; Gnum iwlen; Gnum * restrict iwtab; Gnum * restrict lentab; Gnum * restrict nvartab; Gnum * restrict elentab; Gnum * restrict lasttab; Gnum * restrict leaftab; Gnum * restrict secntab; /* Array of index to first secondary variable */ Gnum * restrict nexttab; /* Array of index of next principal variable */ Gnum * restrict frsttab; Gnum * restrict cwgttax; /* Column weight array */ Gnum cwgtsiz; Gnum ncmpa; int o; n = meshptr->m.velmnbr + meshptr->m.vnodnbr; if (meshptr->vnhlsum < paraptr->colmin) /* If mesh is too small, order simply */ return (hmeshOrderSi (meshptr, ordeptr, ordenum, cblkptr)); norig = meshptr->m.velmnbr + meshptr->m.vnlosum; /* Elements always have weight 1 */ iwlen = (Gnum) ((double) meshptr->m.edgenbr * HMESHORDERHDCOMPRAT) + 32; if (iwlen < n) /* Prepare to re-use array */ iwlen = n; cwgtsiz = (meshptr->m.vnlotax != NULL) ? n : 0; if (memAllocGroup ((void **) (void *) &petab, (size_t) (n * sizeof (Gnum)), &iwtab, (size_t) (iwlen * sizeof (Gnum)), &lentab, (size_t) (n * sizeof (Gnum)), &nvartab, (size_t) (n * sizeof (Gnum)), &elentab, (size_t) (n * sizeof (Gnum)), &lasttab, (size_t) (n * sizeof (Gnum)), &leaftab, (size_t) (n * sizeof (Gnum)), &frsttab, (size_t) (n * sizeof (Gnum)), &secntab, (size_t) ((norig + 1) * sizeof (Gnum)), &nexttab, (size_t) (n * sizeof (Gnum)), &cwgttax, (size_t) (cwgtsiz * sizeof (Gnum)), NULL) == NULL) { /* Not based yet */ errorPrint ("hmeshOrderHd: out of memory"); return (1); } hmeshOrderHxFill (meshptr, petab, lentab, iwtab, nvartab, elentab, &pfree); hallOrderHdR2Halmd (norig, n, meshptr->m.velmnbr, iwlen, petab, pfree, lentab, iwtab, nvartab, elentab, lasttab, &ncmpa, leaftab, secntab, nexttab, frsttab); if (ncmpa < 0) { errorPrint ("hmeshOrderHd: internal error"); memFree (petab); /* Free group leader */ return (1); } if (meshptr->m.vnlotax != NULL) { cwgttax -= meshptr->m.baseval; /* Pre-base array for index computations */ memCpy (cwgttax + meshptr->m.vnodbas, meshptr->m.vnlotax + meshptr->m.vnodbas, meshptr->m.vnodnbr * sizeof (Gnum)); memSet (cwgttax + meshptr->m.velmbas, 0, meshptr->m.velmnbr * sizeof (Gnum)); } else cwgttax = NULL; o = hallOrderHxBuild (meshptr->m.baseval, n, meshptr->vnohnbr, (meshptr->m.vnumtax == NULL) ? NULL : meshptr->m.vnumtax + (meshptr->m.vnodbas - meshptr->m.baseval), /* Point to node part of vnumtab array */ ordeptr, cblkptr, nvartab - meshptr->m.baseval, lentab - meshptr->m.baseval, cwgttax, petab - meshptr->m.baseval, frsttab - meshptr->m.baseval, nexttab - meshptr->m.baseval, secntab - meshptr->m.baseval, iwtab - meshptr->m.baseval, elentab - meshptr->m.baseval, ordeptr->peritab + ordenum, /* Use given inverse permutation as inverse permutation space, never based */ leaftab, paraptr->colmin, paraptr->colmax, (float) paraptr->fillrat); memFree (petab); /* Free group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_hd.h000066400000000000000000000072041514310134000270430ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_hd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the block-oriented Halo **/ /** Approximate (Multiple) Minimum Degree **/ /** mesh ordering routine. **/ /** **/ /** DATES : # Version 4.0 : from : 09 dec 2003 **/ /** to : 10 dec 2003 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ #define HMESHORDERHDCOMPRAT 1.2L /*+ Compression ratio +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderHdParam_ { INT colmin; /*+ Minimum number of columns +*/ INT colmax; /*+ Maximum number of columns +*/ double fillrat; /*+ Fill-in ratio +*/ } HmeshOrderHdParam; /* ** The function prototypes. */ int hmeshOrderHd (Hmesh * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const HmeshOrderHdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_hf.c000066400000000000000000000204421514310134000270370ustar00rootroot00000000000000/* Copyright 2004,2007,2018-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_hf.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders a submesh using **/ /** the block-oriented Halo Approximate **/ /** (Multiple) Minimum Fill algorithm, **/ /** with super-variable accounting **/ /** R2HAMDf4 v2.0). **/ /** **/ /** DATES : # Version 4.0 : from : 08 dec 2003 **/ /** to : 09 dec 2003 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 12 sep 2007 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 29 oct 2019 **/ /** to : 18 jan 2020 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hall_order_hf.h" #include "hall_order_hx.h" #include "hmesh_order_hf.h" #include "hmesh_order_hx.h" #include "hmesh_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderHf ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, /*+ Single column-block +*/ const HmeshOrderHfParam * restrict const paraptr) { Gnum n; /* Number of nodes to order */ Gnum norig; /* Number of nodes in uncompressed graph */ Gnum nbbuck; Gnum * restrict petab; Gnum pfree; Gnum * restrict lentab; Gnum iwlen; Gnum * restrict iwtab; Gnum * restrict nvtab; Gnum * restrict elentab; Gnum * restrict lasttab; Gnum * restrict leaftab; Gnum * restrict secntab; /* Array of index to first secondary variable */ Gnum * restrict nexttab; /* Array of index of next principal variable */ Gnum * restrict frsttab; Gnum * restrict headtab; /* Head array : nbbuck = 2 * n */ Gnum * restrict cwgttax; /* Column weight array */ Gnum cwgtsiz; Gnum ncmpa; int o; n = meshptr->m.velmnbr + meshptr->m.vnodnbr; if (n < paraptr->colmin) /* If mesh is too small, order simply */ return (hmeshOrderSi (meshptr, ordeptr, ordenum, cblkptr)); norig = meshptr->m.velmnbr + meshptr->m.vnlosum; /* Elements always have weight 1 */ nbbuck = norig * 2; iwlen = (Gnum) ((double) meshptr->m.edgenbr * HMESHORDERHFCOMPRAT) + 32; if (iwlen < n) /* TRICK: make sure to be able to re-use array */ iwlen = n; cwgtsiz = (meshptr->m.vnlotax != NULL) ? n : 0; if (memAllocGroup ((void **) (void *) &petab, (size_t) (n * sizeof (Gnum)), &lentab, (size_t) (n * sizeof (Gnum)), &nvtab, (size_t) (n * sizeof (Gnum)), &elentab, (size_t) (n * sizeof (Gnum)), &lasttab, (size_t) (n * sizeof (Gnum)), &leaftab, (size_t) (n * sizeof (Gnum)), &frsttab, (size_t) (n * sizeof (Gnum)), &secntab, (size_t) (n * sizeof (Gnum)), &nexttab, (size_t) (n * sizeof (Gnum)), &cwgttax, (size_t) (cwgtsiz * sizeof (Gnum)), /* Not based yet */ &headtab, (size_t) ((nbbuck + 2) * sizeof (Gnum)), &iwtab, (size_t) (iwlen * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hmeshOrderHf: out of memory"); return (1); } hmeshOrderHxFill (meshptr, petab, lentab, iwtab, nvtab, elentab, &pfree); hallOrderHfR3Hamdf4 (norig, n, meshptr->m.velmnbr, nbbuck, iwlen, petab, pfree, lentab, iwtab, nvtab, elentab, lasttab, &ncmpa, leaftab, secntab, nexttab, frsttab, headtab); if (ncmpa < 0) { errorPrint ("hmeshOrderHf: internal error"); memFree (petab); /* Free group leader */ return (1); } if (meshptr->m.vnlotax != NULL) { cwgttax -= meshptr->m.baseval; /* Pre-base array for index computations */ memCpy (cwgttax + meshptr->m.vnodbas, meshptr->m.vnlotax + meshptr->m.vnodbas, meshptr->m.vnodnbr * sizeof (Gnum)); memSet (cwgttax + meshptr->m.velmbas, 0, meshptr->m.velmnbr * sizeof (Gnum)); } else cwgttax = NULL; o = hallOrderHxBuild (meshptr->m.baseval, n, meshptr->vnohnbr, (meshptr->m.vnumtax == NULL) ? NULL : meshptr->m.vnumtax + (meshptr->m.vnodbas - meshptr->m.baseval), /* Point to node part of vnumtab array */ ordeptr, cblkptr, nvtab - meshptr->m.baseval, lentab - meshptr->m.baseval, cwgttax, petab - meshptr->m.baseval, frsttab - meshptr->m.baseval, nexttab - meshptr->m.baseval, secntab - meshptr->m.baseval, iwtab - meshptr->m.baseval, elentab - meshptr->m.baseval, ordeptr->peritab + ordenum, /* Use given inverse permutation as inverse permutation space, never based */ leaftab, paraptr->colmin, paraptr->colmax, (float) paraptr->fillrat); memFree (petab); /* Free group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_hf.h000066400000000000000000000072041514310134000270450ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_hf.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the block-oriented Halo **/ /** Approximate (Multiple) Minimum Fill **/ /** mesh ordering routine. **/ /** **/ /** DATES : # Version 4.0 : from : 09 dec 2003 **/ /** to : 10 dec 2003 **/ /** # Version 5.1 : from : 01 oct 2009 **/ /** to : 01 oct 2009 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ #define HMESHORDERHFCOMPRAT 1.2L /*+ Compression ratio +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderHfParam_ { INT colmin; /*+ Minimum number of columns +*/ INT colmax; /*+ Maximum number of columns +*/ double fillrat; /*+ Fill-in ratio +*/ } HmeshOrderHfParam; /* ** The function prototypes. */ int hmeshOrderHf (Hmesh * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const HmeshOrderHfParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_hx.c000066400000000000000000000203771514310134000270700ustar00rootroot00000000000000/* Copyright 2004,2007,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_hx.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains service routines **/ /** for the hmeshOrderH{d|f} ordering **/ /** routines. **/ /** **/ /** DATES : # Version 4.0 : from : 09 dec 2003 **/ /** to : 24 jan 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 25 jun 2018 **/ /** # Version 6.1 : from : 29 oct 2019 **/ /** to : 26 jan 2020 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_hx.h" /***********************************/ /* */ /* These are the service routines. */ /* */ /***********************************/ /* This routine fills the input arrays for ** the mesh ordering routines. ** It returns: ** - void : in all cases. */ int hmeshOrderHxFill ( const Hmesh * restrict const meshptr, Gnum * restrict const petab, Gnum * restrict const lentab, Gnum * restrict const iwtab, Gnum * restrict const nvtab, Gnum * restrict const elentab, Gnum * restrict const pfreptr) { HmeshOrderHxHash * restrict hashtab; /* Neighbor hash table */ Gnum hashsiz; Gnum hashmsk; Gnum n; /* Number of nodes to order */ Gnum norig; /* Sum of degrees */ Gnum velmadj; /* Index adjustment for element indices */ Gnum vnodadj; /* Index adjustment for node indices */ Gnum velmnum; Gnum vnodnum; Gnum degrval; Gnum vertnum; Gnum edgenum; Gnum * restrict const petax = petab - 1; /* Base HAMF arrays at base 1 */ Gnum * restrict const iwtax = iwtab - 1; Gnum * restrict const lentax = lentab - 1; Gnum * restrict const nvtax = nvtab - 1; Gnum * restrict const elentax = elentab - 1; const Gnum * restrict const verttax = meshptr->m.verttax; const Gnum * restrict const vendtax = meshptr->m.vendtax; const Gnum * restrict const velotax = meshptr->m.velotax; const Gnum * restrict const edgetax = meshptr->m.edgetax; n = meshptr->m.velmnbr + meshptr->m.vnodnbr; norig = meshptr->m.velmnbr + meshptr->m.vnodnbr; /* Elements always have load 1 */ for (hashsiz = 16, degrval = meshptr->m.degrmax * (meshptr->m.degrmax - 1); /* Compute hash table size */ hashsiz < degrval; hashsiz <<= 1) ; hashsiz <<= 1; hashmsk = hashsiz - 1; if ((hashtab = memAlloc (hashsiz * sizeof (HmeshOrderHxHash))) == NULL) { errorPrint ("hmeshOrderHxFill: out of memory"); return (1); } memSet (hashtab, ~0, hashsiz * sizeof (HmeshOrderHxHash)); velmadj = 1 + meshptr->m.vnodnbr - meshptr->m.velmbas; for (vnodnum = meshptr->m.vnodbas, vertnum = edgenum = 1; /* Copy non-halo node data with base 1 */ vnodnum < meshptr->vnohnnd; vertnum ++, vnodnum ++) { Gnum enodnum; Gnum nghbnbr; petax[vertnum] = edgenum; lentax[vertnum] = vendtax[vnodnum] - verttax[vnodnum]; nvtax[vertnum] = (velotax != NULL) ? velotax[vnodnum] : 1; for (enodnum = verttax[vnodnum], nghbnbr = -1; /* -1 since loop edge will be processed in the main loop */ enodnum < vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum eelmnum; velmnum = edgetax[enodnum]; iwtax[edgenum ++] = velmnum + velmadj; /* Adjust end element index */ for (eelmnum = verttax[velmnum]; eelmnum < vendtax[velmnum]; eelmnum ++) { Gnum vnodend; Gnum hnodend; vnodend = edgetax[eelmnum]; for (hnodend = (vnodend * HMESHORDERHXHASHPRIME) & hashmsk; ; hnodend = (hnodend + 1) & hashmsk) { if (hashtab[hnodend].vertnum != vnodnum) { hashtab[hnodend].vertnum = vnodnum; hashtab[hnodend].vertend = vnodend; nghbnbr ++; } if (hashtab[hnodend].vertend == vnodend) /* If end vertex already present */ break; /* Skip to next end vertex */ } } elentax[vertnum] = nghbnbr; } } for ( ; vnodnum < meshptr->m.vnodnnd; vnodnum ++, vertnum ++) { /* Copy halo vertices with base 1 */ Gnum degrval; Gnum enodnum; degrval = verttax[vnodnum] - vendtax[vnodnum]; /* Compute opposite of degree */ petax[vertnum] = edgenum; lentax[vertnum] = (degrval != 0) ? degrval : (-1 - norig); elentax[vertnum] = 0; nvtax[vertnum] = (velotax != NULL) ? velotax[vnodnum] : 1; for (enodnum = verttax[vnodnum]; enodnum < vendtax[vnodnum]; enodnum ++) iwtax[edgenum ++] = edgetax[enodnum] + velmadj; /* Adjust end element index */ } vnodadj = 1 - meshptr->m.vnodbas; /* Base nodes at 1 */ for (velmnum = meshptr->m.velmbas; velmnum < meshptr->m.velmnnd; velmnum ++, vertnum ++) { Gnum eelmnum; petax[vertnum] = edgenum; lentax[vertnum] = meshptr->m.vendtax[velmnum] - meshptr->m.verttax[velmnum]; elentax[vertnum] = - (n + 1); nvtax[vertnum] = 1; /* Elements always have weight 1 */ for (eelmnum = verttax[velmnum]; eelmnum < vendtax[velmnum]; eelmnum ++) iwtax[edgenum ++] = edgetax[eelmnum] + vnodadj; /* Adjust end node index */ } *pfreptr = edgenum; /* Set index to first free area */ memFree (hashtab); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_hx.h000066400000000000000000000066301514310134000270710ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_hx.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the halo mesh block Approxi- **/ /** mate (Multiple) Minimum Degree and Fill **/ /** ordering routines. **/ /** **/ /** DATES : # Version 4.0 : from : 09 dec 2003 **/ /** to : 09 dec 2003 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ #define HMESHORDERHXHASHPRIME 17 /* Prime number */ /* ** The type and structure definitions. */ /*+ A table made of such elements is used to compute the external degree of non-halo vertices. +*/ typedef struct HmeshOrderHxHash_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number +*/ Gnum vertend; /*+ End vertex number in mesh +*/ } HmeshOrderHxHash; /* ** The function prototypes. */ int hmeshOrderHxFill (const Hmesh * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_nd.c000066400000000000000000000260451514310134000270500ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2018-2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_nd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders mesh nodes using the **/ /** nested dissection algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 06 jan 2002 **/ /** to : 05 jan 2005 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 12 sep 2007 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 15 may 2018 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_HMESH_ORDER_ND #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_nd.h" #include "hmesh_order_st.h" #include "vmesh.h" #include "vmesh_separate_st.h" /***************************/ /* */ /* Multi-threaded routine. */ /* */ /***************************/ static void hmeshOrderNd2 ( Context * restrict const contptr, /*+ (Sub-)context +*/ const int spltnum, /*+ Rank of sub-context in initial context +*/ const HmeshOrderNdSplit * const spltptr) { Hmesh orgmeshdat; Hmesh indmeshdat; int o; orgmeshdat = *spltptr->meshptr; /* Assign new context to work mesh */ orgmeshdat.contptr = contptr; o = 0; if ((hmeshInducePart (&orgmeshdat, spltptr->parttax, spltnum, spltptr->splttab[spltnum].velmnbr, spltptr->splttab[spltnum].vnodnbr, spltptr->vnspnbr, &indmeshdat)) != 0) { errorPrint ("hmeshOrderNd2: cannot build induced submesh"); o = 1; } if (o == 0) { o = hmeshOrderNd (&indmeshdat, spltptr->ordeptr, spltptr->splttab[spltnum].ordenum, spltptr->splttab[spltnum].cblkptr, spltptr->paraptr); hmeshExit (&indmeshdat); } if (o != 0) { /* Report any error */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&spltptr->ordeptr->mutedat); /* Use ordering lock to avoid race condition */ #endif /* SCOTCH_PTHREAD */ *spltptr->revaptr = 1; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&spltptr->ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ } } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderNd ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr, const HmeshOrderNdParam * const paraptr) { Vmesh nspmeshdat; /* Node separation mesh */ Gnum vertnbr; int o; if (hmeshMesh (meshptr, &nspmeshdat.m) != 0) { errorPrint ("hmeshOrderNd: cannot create node separation mesh"); return (1); } nspmeshdat.ecmpsize[0] = nspmeshdat.m.velmnbr; nspmeshdat.ecmpsize[1] = 0; nspmeshdat.ncmpload[0] = nspmeshdat.m.vnlosum; nspmeshdat.ncmpload[1] = 0; nspmeshdat.ncmpload[2] = 0; nspmeshdat.ncmploaddlt = nspmeshdat.m.vnlosum; nspmeshdat.ncmpsize[0] = nspmeshdat.m.vnodnbr; nspmeshdat.ncmpsize[1] = 0; nspmeshdat.fronnbr = 0; nspmeshdat.levlnum = meshptr->levlnum; nspmeshdat.contptr = meshptr->contptr; vertnbr = nspmeshdat.m.velmnbr + nspmeshdat.m.vnodnbr; if (memAllocGroup ((void **) (void *) &nspmeshdat.parttax, (size_t) (vertnbr * sizeof (GraphPart)), &nspmeshdat.frontab, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("hmeshOrderNd: out of memory (1)"); return (1); } memSet (nspmeshdat.parttax, 0, vertnbr * sizeof (GraphPart)); /* Set all vertices to part 0 */ nspmeshdat.parttax -= nspmeshdat.m.baseval; if (vmeshSeparateSt (&nspmeshdat, paraptr->sepstrat) != 0) { /* Separate mesh */ vmeshExit (&nspmeshdat); return (1); } if ((nspmeshdat.ncmpsize[0] == 0) || /* If could not separate more */ (nspmeshdat.ncmpsize[1] == 0)) { vmeshExit (&nspmeshdat); return (hmeshOrderSt (meshptr, ordeptr, ordenum, cblkptr, paraptr->ordstratlea)); /* Order this leaf */ } cblkptr->typeval = ORDERCBLKNEDI; /* Node becomes a nested dissection node */ if ((cblkptr->cblktab = (OrderCblk *) memAlloc (3 * sizeof (OrderCblk))) == NULL) { errorPrint ("hmeshOrderNd: out of memory (2)"); vmeshExit (&nspmeshdat); return (1); } cblkptr->cblktab[0].typeval = ORDERCBLKLEAF; /* Build column blocks */ cblkptr->cblktab[0].vnodnbr = nspmeshdat.ncmpsize[0]; cblkptr->cblktab[0].cblknbr = 0; cblkptr->cblktab[0].cblktab = NULL; cblkptr->cblktab[1].typeval = ORDERCBLKLEAF; cblkptr->cblktab[1].vnodnbr = nspmeshdat.ncmpsize[1]; cblkptr->cblktab[1].cblknbr = 0; cblkptr->cblktab[1].cblktab = NULL; cblkptr->cblktab[2].vnodnbr = nspmeshdat.fronnbr; cblkptr->cblktab[2].cblknbr = 0; cblkptr->cblktab[2].cblktab = NULL; cblkptr->typeval = ORDERCBLKNEDI; /* Node becomes a nested dissection node */ if (nspmeshdat.fronnbr != 0) { /* If separator not empty */ Hmesh indmeshdat; cblkptr->cblknbr = 3; /* It is a three-cell tree node */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->cblknbr += 2; /* Two more column blocks created */ ordeptr->treenbr += 3; /* Three more tree nodes created */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ cblkptr->cblktab[2].typeval = ORDERCBLKLEAF; cblkptr->cblktab[2].vnodnbr = nspmeshdat.fronnbr; cblkptr->cblktab[2].cblknbr = 0; cblkptr->cblktab[2].cblktab = NULL; if (meshInduceSepa (&nspmeshdat.m, nspmeshdat.parttax, nspmeshdat.fronnbr, nspmeshdat.frontab, &indmeshdat.m) != 0) { errorPrint ("hmeshOrderNd: cannot build induced subgraph (1)"); memFree (nspmeshdat.frontab); /* Free remaining space */ return (1); } indmeshdat.vnohnbr = indmeshdat.m.vnodnbr; /* Fill halo mesh structure of non-halo mesh */ indmeshdat.vnohnnd = indmeshdat.m.vnodnnd; indmeshdat.vehdtax = indmeshdat.m.vendtax; indmeshdat.vnhlsum = indmeshdat.m.vnlosum; indmeshdat.enohnbr = indmeshdat.m.edgenbr; indmeshdat.levlnum = meshptr->levlnum; /* Separator mesh is at level of original mesh */ indmeshdat.contptr = meshptr->contptr; o = hmeshOrderSt (&indmeshdat, ordeptr, ordenum + nspmeshdat.ncmpsize[0] + nspmeshdat.ncmpsize[1], cblkptr->cblktab + 2, paraptr->ordstratsep); hmeshExit (&indmeshdat); } else { /* Separator is empty */ cblkptr->cblknbr = 2; /* It is a two-cell tree node */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ ordeptr->cblknbr ++; /* One more column block created */ ordeptr->treenbr += 2; /* Two more tree nodes created */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&ordeptr->mutedat); #endif /* SCOTCH_PTHREAD */ o = 0; /* No separator ordering computed */ } if (o == 0) { HmeshOrderNdSplit spltdat; /* Parameters for context splitting */ spltdat.splttab[0].velmnbr = nspmeshdat.ecmpsize[0]; spltdat.splttab[0].vnodnbr = nspmeshdat.ncmpsize[0]; spltdat.splttab[0].ordenum = ordenum; spltdat.splttab[0].cblkptr = cblkptr->cblktab; spltdat.splttab[1].velmnbr = nspmeshdat.ecmpsize[1]; spltdat.splttab[1].vnodnbr = nspmeshdat.ncmpsize[1]; spltdat.splttab[1].ordenum = ordenum + nspmeshdat.ncmpsize[0]; spltdat.splttab[1].cblkptr = cblkptr->cblktab + 1; spltdat.meshptr = meshptr; spltdat.vnspnbr = nspmeshdat.fronnbr; spltdat.parttax = nspmeshdat.parttax; spltdat.ordeptr = ordeptr; spltdat.paraptr = paraptr; spltdat.revaptr = &o; #ifndef HMESHORDERNDNOTHREAD if (contextThreadLaunchSplit (meshptr->contptr, (ContextSplitFunc) hmeshOrderNd2, &spltdat) != 0) /* If counld not split context to run concurrently */ #endif /* HMESHORDERNDNOTHREAD */ { hmeshOrderNd2 (meshptr->contptr, 0, &spltdat); /* Run tasks in sequence */ if (o == 0) hmeshOrderNd2 (meshptr->contptr, 1, &spltdat); } } vmeshExit (&nspmeshdat); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_nd.h000066400000000000000000000113441514310134000270510ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_nd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the halo mesh nested dissection **/ /** ordering algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 06 jan 2002 **/ /** to : 23 jan 2004 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 27 apr 2021 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct HmeshOrderNdParam_ { Strat * sepstrat; /*+ Separation strategy +*/ Strat * ordstratlea; /*+ Leaf ordering strategy +*/ Strat * ordstratsep; /*+ Separator ordering strategy +*/ } HmeshOrderNdParam; /*+ This structure holds the splitting parameters. +*/ typedef struct HmeshOrderNdSplit2_ { Gnum velmnbr; /*+ Number of induced elements +*/ Gnum vnodnbr; /*+ Number of induced nodes +*/ Gnum ordenum; /*+ Local start index of inverse permutation +*/ OrderCblk * cblkptr; /*+ Column block to process +*/ } HmeshOrderNdSplit2; typedef struct HmeshOrderNdSplit_ { HmeshOrderNdSplit2 splttab[2]; /*+ Array of induced submesh data +*/ const Hmesh * meshptr; /*+ Original mesh +*/ Gnum vnspnbr; /*+ Number of induced separator nodes +*/ GraphPart * parttax; /*+ Pointer to part array +*/ Order * ordeptr; /*+ Pointer to ordering +*/ const HmeshOrderNdParam * paraptr; /*+ Nested dissection parameters +*/ int * revaptr; /*+ Pointer to return value +*/ } HmeshOrderNdSplit; /* ** The function prototypes. */ #ifdef SCOTCH_HMESH_ORDER_ND static void hmeshOrderNd2 (Context * restrict const, const int, const HmeshOrderNdSplit * const); #endif /* SCOTCH_HMESH_ORDER_ND */ int hmeshOrderNd (Hmesh * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const HmeshOrderNdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_si.c000066400000000000000000000105151514310134000270550ustar00rootroot00000000000000/* Copyright 2004,2007,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_si.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module orders halo mesh vertices **/ /** using the natural order. **/ /** **/ /** DATES : # Version 4.0 : from : 01 jan 2002 **/ /** to : 27 jan 2004 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" #include "mesh.h" #include "hmesh.h" #include "hmesh_order_si.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the ordering. ** It returns: ** - 0 : if the ordering could be computed. ** - !0 : on error. */ int hmeshOrderSi ( Hmesh * restrict const meshptr, Order * restrict const ordeptr, const Gnum ordenum, OrderCblk * restrict const cblkptr) /*+ Single column-block +*/ { Gnum vnodnum; Gnum ordeval; if (meshptr->m.vnumtax == NULL) { /* If mesh is original mesh (no halo) */ #ifdef SCOTCH_DEBUG_ORDER2 if (meshptr->m.vnodnbr != ordeptr->vnodnbr) { errorPrint ("hmeshOrderSi: invalid permutation bounds"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ for (vnodnum = ordeptr->baseval, ordeval = ordenum; vnodnum < ordeptr->baseval + ordeptr->vnodnbr; vnodnum ++, ordeval ++) { ordeptr->peritab[ordeval] = vnodnum; } } else { /* Mesh is not original mesh */ for (vnodnum = meshptr->m.vnodbas, ordeval = ordenum; vnodnum < meshptr->vnohnnd; vnodnum ++, ordeval ++) { ordeptr->peritab[ordeval] = meshptr->m.vnumtax[vnodnum]; #ifdef SCOTCH_DEBUG_ORDER2 if ((ordeptr->peritab[ordeval] < ordeptr->baseval) || (ordeptr->peritab[ordeval] >= (ordeptr->baseval + ordeptr->vnodnbr))) { errorPrint ("hmeshOrderSi: invalid permutation index"); return (1); } #endif /* SCOTCH_DEBUG_ORDER2 */ } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_si.h000066400000000000000000000056071514310134000270700ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_si.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the simple halo mesh ordering **/ /** routine. **/ /** **/ /** DATES : # Version 4.0 : from : 01 jan 2002 **/ /** to : 28 sep 2002 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int hmeshOrderSi (Hmesh * const, Order * const, const Gnum, OrderCblk * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_st.c000066400000000000000000000364571514310134000271050ustar00rootroot00000000000000/* Copyright 2004,2007,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the generic call to the **/ /** halo mesh ordering module, using a **/ /** given strategy. **/ /** **/ /** DATES : # Version 4.0 : from : 28 sep 2002 **/ /** to : 05 jan 2005 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "hgraph.h" #include "mesh.h" #include "hmesh.h" #include "order.h" #include "hgraph_order_st.h" #include "hmesh_order_bl.h" #include "hmesh_order_cp.h" #include "hmesh_order_gp.h" #include "hmesh_order_gr.h" #include "hmesh_order_hd.h" #include "hmesh_order_hf.h" #include "hmesh_order_nd.h" #include "hmesh_order_si.h" #include "hmesh_order_st.h" #include "vmesh.h" #include "vmesh_separate_st.h" /* ** The static and global variables. */ static Hmesh hmeshorderstmeshdummy; /* Dummy mesh for offset computations */ static union { /* Default parameters for block splitting method */ HmeshOrderBlParam param; /* Parameter zone */ StratNodeMethodData padding; /* To avoid reading out of structure */ } hmeshorderstdefaultbl = { { &stratdummy, 8 } }; static union { HmeshOrderCpParam param; StratNodeMethodData padding; } hmeshorderstdefaultcp = { { 0.70L, &stratdummy, &stratdummy } }; static union { /* Default parameters for nested dissection method */ HmeshOrderGpParam param; StratNodeMethodData padding; } hmeshorderstdefaultgp = { { 3 } }; static union { /* Default parameters for nested dissection method */ HmeshOrderGrParam param; StratNodeMethodData padding; } hmeshorderstdefaultgr = { { &stratdummy } }; static union { HmeshOrderHdParam param; StratNodeMethodData padding; } hmeshorderstdefaulthd = { { 1, 1000000, 0.08L } }; static union { HmeshOrderHfParam param; StratNodeMethodData padding; } hmeshorderstdefaulthf = { { 1, 1000000, 0.08L } }; static union { /* Default parameters for nested dissection method */ HmeshOrderNdParam param; StratNodeMethodData padding; } hmeshorderstdefaultnd = { { &stratdummy, &stratdummy, &stratdummy } }; static StratMethodTab hmeshorderstmethtab[] = { /* Mesh ordering methods array */ { HMESHORDERSTMETHBL, "b", (StratMethodFunc) hmeshOrderBl, &hmeshorderstdefaultbl }, { HMESHORDERSTMETHCP, "c", (StratMethodFunc) hmeshOrderCp, &hmeshorderstdefaultcp }, { HMESHORDERSTMETHGP, "g", (StratMethodFunc) hmeshOrderGp, &hmeshorderstdefaultgp }, { HMESHORDERSTMETHGR, "v", (StratMethodFunc) hmeshOrderGr, &hmeshorderstdefaultgr }, { HMESHORDERSTMETHHD, "d", (StratMethodFunc) hmeshOrderHd, &hmeshorderstdefaulthd }, { HMESHORDERSTMETHHF, "f", (StratMethodFunc) hmeshOrderHf, &hmeshorderstdefaulthf }, { HMESHORDERSTMETHND, "n", (StratMethodFunc) hmeshOrderNd, &hmeshorderstdefaultnd }, { HMESHORDERSTMETHSI, "s", (StratMethodFunc) hmeshOrderSi, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab hmeshorderstparatab[] = { /* The method parameter list */ { HMESHORDERSTMETHBL, STRATPARAMSTRAT, "strat", (byte *) &hmeshorderstdefaultbl.param, (byte *) &hmeshorderstdefaultbl.param.strat, (void *) &hmeshorderststratab }, { HMESHORDERSTMETHBL, STRATPARAMINT, "cmin", (byte *) &hmeshorderstdefaultbl.param, (byte *) &hmeshorderstdefaultbl.param.cblkmin, NULL }, { HMESHORDERSTMETHCP, STRATPARAMDOUBLE, "rat", (byte *) &hmeshorderstdefaultcp.param, (byte *) &hmeshorderstdefaultcp.param.comprat, NULL }, { HMESHORDERSTMETHCP, STRATPARAMSTRAT, "cpr", (byte *) &hmeshorderstdefaultcp.param, (byte *) &hmeshorderstdefaultcp.param.stratcpr, (void *) &hmeshorderststratab }, { HMESHORDERSTMETHCP, STRATPARAMSTRAT, "unc", (byte *) &hmeshorderstdefaultcp.param, (byte *) &hmeshorderstdefaultcp.param.stratunc, (void *) &hmeshorderststratab }, { HMESHORDERSTMETHGP, STRATPARAMINT, "pass", (byte *) &hmeshorderstdefaultgp.param, (byte *) &hmeshorderstdefaultgp.param.passnbr, NULL }, { HMESHORDERSTMETHGR, STRATPARAMSTRAT, "strat", (byte *) &hmeshorderstdefaultgr.param, (byte *) &hmeshorderstdefaultgr.param.stratptr, (void *) &hgraphorderststratab }, { HMESHORDERSTMETHHD, STRATPARAMINT, "cmin", (byte *) &hmeshorderstdefaulthd.param, (byte *) &hmeshorderstdefaulthd.param.colmin, NULL }, { HMESHORDERSTMETHHD, STRATPARAMINT, "cmax", (byte *) &hmeshorderstdefaulthd.param, (byte *) &hmeshorderstdefaulthd.param.colmax, NULL }, { HMESHORDERSTMETHHD, STRATPARAMDOUBLE, "frat", (byte *) &hmeshorderstdefaulthd.param, (byte *) &hmeshorderstdefaulthd.param.fillrat, NULL }, { HMESHORDERSTMETHHF, STRATPARAMINT, "cmin", (byte *) &hmeshorderstdefaulthf.param, (byte *) &hmeshorderstdefaulthf.param.colmin, NULL }, { HMESHORDERSTMETHHF, STRATPARAMINT, "cmax", (byte *) &hmeshorderstdefaulthf.param, (byte *) &hmeshorderstdefaulthf.param.colmax, NULL }, { HMESHORDERSTMETHHF, STRATPARAMDOUBLE, "frat", (byte *) &hmeshorderstdefaulthf.param, (byte *) &hmeshorderstdefaulthf.param.fillrat, NULL }, { HMESHORDERSTMETHND, STRATPARAMSTRAT, "sep", (byte *) &hmeshorderstdefaultnd.param, (byte *) &hmeshorderstdefaultnd.param.sepstrat, (void *) &vmeshseparateststratab }, { HMESHORDERSTMETHND, STRATPARAMSTRAT, "ole", (byte *) &hmeshorderstdefaultnd.param, (byte *) &hmeshorderstdefaultnd.param.ordstratlea, (void *) &hmeshorderststratab }, { HMESHORDERSTMETHND, STRATPARAMSTRAT, "ose", (byte *) &hmeshorderstdefaultnd.param, (byte *) &hmeshorderstdefaultnd.param.ordstratsep, (void *) &hmeshorderststratab }, { HMESHORDERSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab hmeshorderstcondtab[] = { /* Mesh condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &hmeshorderstmeshdummy, (byte *) &hmeshorderstmeshdummy.m.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &hmeshorderstmeshdummy, (byte *) &hmeshorderstmeshdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &hmeshorderstmeshdummy, (byte *) &hmeshorderstmeshdummy.vnhlsum, NULL }, { STRATNODECOND, STRATPARAMDOUBLE, "mdeg", (byte *) &hmeshorderstmeshdummy, (byte *) &hmeshorderstmeshdummy.m.degrmax, NULL }, { STRATNODECOND, STRATPARAMINT, "vnod", (byte *) &hmeshorderstmeshdummy, (byte *) &hmeshorderstmeshdummy.vnohnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "velm", (byte *) &hmeshorderstmeshdummy, (byte *) &hmeshorderstmeshdummy.m.velmnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab hmeshorderststratab = { /* Strategy tables for mesh ordering methods */ hmeshorderstmethtab, hmeshorderstparatab, hmeshorderstcondtab }; /***********************************/ /* */ /* This routine is the entry point */ /* for the mesh ordering routines. */ /* */ /***********************************/ /* This routine computes an ordering ** with respect to a given strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int hmeshOrderSt ( Hmesh * restrict const meshptr, /*+ Submesh to which list apply +*/ Order * restrict const ordeptr, /*+ Ordering to complete +*/ const Gnum ordenum, /*+ Index to start ordering at +*/ OrderCblk * restrict const cblkptr, /*+ Current column block +*/ const Strat * restrict const straptr) /*+ Mesh ordering strategy +*/ { StratTest testdat; int o; if (meshptr->vnohnbr == 0) /* Return immediately if nothing to do */ return (0); o = 0; switch (straptr->typeval) { case STRATNODECONCAT : errorPrint ("hmeshOrderSt: concatenation operator not implemented for ordering strategies"); return (1); case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) meshptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_HMESH2 if ((testdat.testval != STRATTESTVAL) && (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("hmeshOrderSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_HMESH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = hmeshOrderSt (meshptr, ordeptr, ordenum, cblkptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = hmeshOrderSt (meshptr, ordeptr, ordenum, cblkptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : hmeshOrderSi (meshptr, ordeptr, ordenum, cblkptr); /* Always maintain a coherent ordering */ break; case STRATNODESELECT : errorPrint ("hmeshOrderSt: selection operator not available for mesh ordering strategies"); return (1); #ifdef SCOTCH_DEBUG_HMESH2 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_HMESH2 */ default : #endif /* SCOTCH_DEBUG_HMESH2 */ return (((HmeshOrderFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (meshptr, ordeptr, ordenum, cblkptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_HMESH2 default : errorPrint ("hmeshOrderSt: invalid parameter"); return (1); #endif /* SCOTCH_DEBUG_HMESH2 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/hmesh_order_st.h000066400000000000000000000102351514310134000270740ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : hmesh_order_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data **/ /** declarations for the main halo mesh **/ /** ordering routine. **/ /** **/ /** DATES : # Version 4.0 : from : 28 sep 2002 **/ /** to : 08 feb 2004 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 11 sep 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum HmeshOrderStMethodType_ { HMESHORDERSTMETHBL = 0, /*+ Block splitting post-processing +*/ HMESHORDERSTMETHCP, /*+ Mesh compression +*/ HMESHORDERSTMETHGP, /*+ Gibbs-Poole-Stockmeyer +*/ HMESHORDERSTMETHGR, /*+ Graph-based ordering +*/ HMESHORDERSTMETHHD, /*+ Block Halo Approximate Minimum Degree +*/ HMESHORDERSTMETHHF, /*+ Block Halo Approximate Minimum Fill +*/ HMESHORDERSTMETHND, /*+ Nested Dissection +*/ HMESHORDERSTMETHSI, /*+ Simple +*/ HMESHORDERSTMETHNBR /*+ Number of methods +*/ } HmeshOrderStMethodType; /*+ Method function pointer type. +*/ typedef int (* HmeshOrderFunc) (Hmesh * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const void * const); /* ** The external declarations. */ extern StratTab hmeshorderststratab; /* ** The function prototypes. */ int hmeshOrderSt (Hmesh * restrict const, Order * restrict const, const Gnum, OrderCblk * restrict const, const Strat * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph.c000066400000000000000000000105501514310134000255020ustar00rootroot00000000000000/* Copyright 2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel bipartitioning **/ /** mapper. **/ /** This module handles the k-way active **/ /** distributed graph and save data struct- **/ /** ure handling routines. **/ /** **/ /** DATES : # Version 5.1 : from : 31 mar 2008 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 08 sep 2012 **/ /** to : 08 sep 2012 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "dgraph.h" #include "dmapping.h" #include "kdgraph.h" /************************************/ /* */ /* Active dgraph handling routines. */ /* */ /************************************/ /* This routine builds the active dgraph ** corresponding to the given k-way ** partition parameters. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kdgraphInit ( Kdgraph * restrict const actgrafptr, /* Active graph */ const Dgraph * restrict const srcgrafptr, /* Source graph */ Dmapping * restrict const dmapptr) /* Mapping */ { actgrafptr->s = *srcgrafptr; /* Clone source graph */ actgrafptr->s.flagval &= ~DGRAPHFREEALL; actgrafptr->s.vlblloctax = NULL; /* Do not propagate vertex labels within computations (e.g. dgraphInduce) */ actgrafptr->levlnum = 0; actgrafptr->m.mappptr = dmapptr; archDomFrst (&dmapptr->archdat, &actgrafptr->m.domnorg); return (0); } /* This routine frees the contents ** of the given active graph. ** It returns: ** - VOID : in all cases. */ void kdgraphExit ( Kdgraph * restrict const actgrafptr) /* Active graph */ { dgraphExit (&actgrafptr->s); #ifdef SCOTCH_DEBUG_KDGRAPH1 memSet (actgrafptr, 0, sizeof (Kdgraph)); #endif /* SCOTCH_DEBUG_KDGRAPH1 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph.h000066400000000000000000000101041514310134000255020ustar00rootroot00000000000000/* Copyright 2008,2010,2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** These lines are the data declarations **/ /** for the parallel k-way graph partiton- **/ /** ing structures and routines. **/ /** **/ /** DATES : # Version 5.1 : from : 31 mar 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 29 aug 2012 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The dynamic mapping structure. +*/ typedef struct Kdmapping_ { Dmapping * mappptr; /*+ Resulting mapping +*/ ArchDom domnorg; /*+ Initial domain +*/ } Kdmapping; /*+ The graph structure. +*/ typedef struct Kdgraph_ { Dgraph s; /*+ Source graph +*/ Kdmapping m; /*+ Mapping +*/ INT levlnum; /*+ Graph coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Kdgraph; /* ** The function prototypes. */ int kdgraphInit (Kdgraph * const, const Dgraph * restrict const, Dmapping * restrict const); void kdgraphExit (Kdgraph * const); int kdgraphFold (const Kdgraph *, const int, Kdgraph * const); int kdgraphFold2 (const Kdgraph *, const int, Kdgraph * const, MPI_Comm); #ifdef SCOTCH_KGRAPH_H int kdgraphGather (Kdgraph *, Kgraph *); #endif /* SCOTCH_KGRAPH_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_gather.c000066400000000000000000000072441514310134000270420ustar00rootroot00000000000000/* Copyright 2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_gather.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the routine which **/ /** builds a centralized mapping graph by **/ /** gathering the pieces of a distributed **/ /** mapping graph. **/ /** **/ /** DATES : # Version 5.1 : from : 17 jun 2008 **/ /** to : 17 jun 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "graph.h" #include "mapping.h" #include "kgraph.h" #include "dgraph.h" #include "dmapping.h" #include "kdgraph.h" /******************************/ /* */ /* These routines handle */ /* distributed source graphs. */ /* */ /******************************/ /* This function gathers the pieces of ** a distributed mapping graph to build a ** centralized mapping graph. ** There is no gathered vnumtab array if ** the original graph did not have one, as ** vertices are gathered in global order, or ** else the original vnumloctab is gathered. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int kdgraphGather ( Kdgraph * restrict const dgrfptr, /* Distributed halo graph */ Kgraph * restrict const cgrfptr) /* Centralized halo graph */ { return (dgraphGather (&dgrfptr->s, &cgrfptr->s)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_rb.c000066400000000000000000000224541514310134000270300ustar00rootroot00000000000000/* Copyright 2008,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_rb.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module performs the Dual Recursive **/ /** Bipartitioning mapping algorithm **/ /** in parallel. **/ /** **/ /** DATES : # Version 5.1 : from : 16 apr 2008 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 03 oct 2012 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "dgraph.h" #include "dmapping.h" #include "kdgraph.h" #include "kdgraph_map_rb.h" #include "kdgraph_map_rb_map.h" #include "kdgraph_map_rb_part.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* These routines add mapping fragments to the distributed ** mapping structure. */ DmappingFrag * kdgraphMapRbAdd2 ( const Gnum vertnbr, const Anum domnnbr) { DmappingFrag * restrict fragptr; if ((fragptr = memAlloc (sizeof (DmappingFrag))) == NULL) { errorPrint ("kdgraphMapRbAdd2: out of memory (1)"); return (NULL); } if (((fragptr->vnumtab = memAlloc (vertnbr * sizeof (Gnum))) == NULL) || ((fragptr->parttab = memAlloc (vertnbr * sizeof (Anum))) == NULL) || ((fragptr->domntab = memAlloc (domnnbr * sizeof (ArchDom))) == NULL)) { errorPrint ("kdgraphMapRbAdd2: out of memory (2)"); if (fragptr->vnumtab != NULL) { if (fragptr->parttab != NULL) memFree (fragptr->parttab); memFree (fragptr->vnumtab); } memFree (fragptr); return (NULL); } fragptr->vertnbr = vertnbr; fragptr->domnnbr = domnnbr; return (fragptr); } int kdgraphMapRbAddBoth ( const Dgraph * restrict const grafptr, Dmapping * restrict const mappptr, const ArchDom * restrict const domnptr, /*+ Pointer to both subdomains +*/ const GraphPart * restrict const parttab) /*+ Bipartition graph part array +*/ { DmappingFrag * restrict fragptr; Anum * restrict fragparttab; Gnum vertlocnum; if ((fragptr = kdgraphMapRbAdd2 (grafptr->vertlocnbr, 2)) == NULL) /* Two domains */ return (1); fragptr->domntab[0] = domnptr[0]; fragptr->domntab[1] = domnptr[1]; if (parttab == NULL) /* If bipartition part array not set */ memSet (fragptr->parttab, 0, grafptr->vertlocnbr * sizeof (Anum)); else { fragparttab = fragptr->parttab; for (vertlocnum = 0; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) fragparttab[vertlocnum] = (Anum) parttab[vertlocnum]; } if (grafptr->vnumloctax != NULL) memCpy (fragptr->vnumtab, grafptr->vnumloctax + grafptr->baseval, fragptr->vertnbr * sizeof (Gnum)); else { Gnum * restrict fragvnumtab; Gnum vertlocadj; Gnum vertlocnum; fragvnumtab = fragptr->vnumtab; for (vertlocnum = 0, vertlocadj = grafptr->procvrttab[grafptr->proclocnum]; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) fragvnumtab[vertlocnum] = vertlocadj + vertlocnum; } dmapAdd (mappptr, fragptr); return (0); } int kdgraphMapRbAddOne ( const Dgraph * restrict const grafptr, Dmapping * restrict const mappptr, const ArchDom * restrict const domnptr) { DmappingFrag * restrict fragptr; if ((fragptr = kdgraphMapRbAdd2 (grafptr->vertlocnbr, 1)) == NULL) /* Only one domain */ return (1); fragptr->domntab[0] = *domnptr; /* Only one domain for this mapping fragment */ memSet (fragptr->parttab, 0, fragptr->vertnbr * sizeof (Anum)); /* All vertices mapped to it */ if (grafptr->vnumloctax != NULL) memCpy (fragptr->vnumtab, grafptr->vnumloctax + grafptr->baseval, fragptr->vertnbr * sizeof (Gnum)); else { Gnum * restrict fragvnumtab; Gnum vertlocadj; Gnum vertlocnum; fragvnumtab = fragptr->vnumtab; for (vertlocnum = 0, vertlocadj = grafptr->procvrttab[grafptr->proclocnum]; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) fragvnumtab[vertlocnum] = vertlocadj + vertlocnum; } dmapAdd (mappptr, fragptr); return (0); } int kdgraphMapRbAddPart ( const Dgraph * restrict const grafptr, Dmapping * restrict const mappptr, const ArchDom * restrict const domnptr, /*+ Pointer to one subdomain +*/ const Gnum vertnbr, const GraphPart * const parttab, const GraphPart partval) { DmappingFrag * restrict fragptr; Gnum * restrict fragvnumtab; Gnum vertlocnum; Gnum partlocnum; if ((fragptr = kdgraphMapRbAdd2 (vertnbr, 1)) == NULL) /* Only one domain and a limited number of vertices */ return (1); fragptr->domntab[0] = *domnptr; /* Only one domain for this mapping fragment */ memSet (fragptr->parttab, 0, fragptr->vertnbr * sizeof (Anum)); /* All vertices mapped to it */ fragvnumtab = fragptr->vnumtab; if (grafptr->vnumloctax != NULL) { const Gnum * restrict vnumtab; for (vertlocnum = partlocnum = 0, vnumtab = grafptr->vnumloctax + grafptr->baseval; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) { if (parttab[vertlocnum] == partval) { #ifdef SCOTCH_DEBUG_KDMAP2 if (partlocnum >= vertnbr) { errorPrint ("kdgraphMapRbAddPart: invalid parameters (1)"); return (1); } #endif /* SCOTCH_DEBUG_KDMAP2 */ fragvnumtab[partlocnum ++] = vnumtab[vertlocnum]; } } } else { Gnum vertlocadj; for (vertlocnum = partlocnum = 0, vertlocadj = grafptr->procvrttab[grafptr->proclocnum]; vertlocnum < grafptr->vertlocnbr; vertlocnum ++) { if (parttab[vertlocnum] == partval) { #ifdef SCOTCH_DEBUG_KDMAP2 if (partlocnum >= vertnbr) { errorPrint ("kdgraphMapRbAddPart: invalid parameters (2)"); return (1); } #endif /* SCOTCH_DEBUG_KDMAP2 */ fragvnumtab[partlocnum ++] = vertlocadj + vertlocnum; } } } #ifdef SCOTCH_DEBUG_KDMAP2 if (partlocnum != vertnbr) { errorPrint ("kdgraphMapRbAddPart: invalid parameters (3)"); return (1); } #endif /* SCOTCH_DEBUG_KDMAP2 */ dmapAdd (mappptr, fragptr); return (0); } /* ** This routine runs the parallel Dual ** Recursive Bipartitioning algorithm. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kdgraphMapRb ( Kdgraph * restrict const grafptr, Kdmapping * restrict const mappptr, const KdgraphMapRbParam * restrict const paraptr) { if (grafptr->s.vertglbnbr == 0) /* If nothing to do, return immediately */ return (0); return (archPart (&mappptr->mappptr->archdat) /* If target architecture is some flavor of complete graph */ ? kdgraphMapRbPart (grafptr, mappptr, paraptr) : kdgraphMapRbMap (grafptr, mappptr, paraptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_rb.h000066400000000000000000000076371514310134000270430ustar00rootroot00000000000000/* Copyright 2008,2010,2011,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_rb.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Parallel Dual Recursive **/ /** Bipartitioning mapping algorithm. **/ /** **/ /** DATES : # Version 5.1 : from : 16 apr 2008 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 28 aug 2019 **/ /** to : 28 aug 2019 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct KdgraphMapRbParam_ { Strat * stratsep; /*+ Bipartitioning strategy used +*/ Strat * stratseq; /*+ Sequential mapping strategy +*/ double kbalval; /*+ K-way imbalance ratio +*/ } KdgraphMapRbParam; /* ** The function prototypes. */ DmappingFrag * kdgraphMapRbAdd2 (const Gnum, const Anum); int kdgraphMapRbAddBoth (const Dgraph * restrict const, Dmapping * restrict const, const ArchDom * restrict const, const GraphPart * restrict const); int kdgraphMapRbAddOne (const Dgraph * restrict const, Dmapping * restrict const, const ArchDom * restrict const); int kdgraphMapRbAddPart (const Dgraph * restrict const, Dmapping * restrict const, const ArchDom * restrict const, const Gnum, const GraphPart * const, const GraphPart); int kdgraphMapRb (Kdgraph * const, Kdmapping * const, const KdgraphMapRbParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_rb_map.c000066400000000000000000000064441514310134000276660ustar00rootroot00000000000000/* Copyright 2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_rb_map.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : This module performs the Dual Recursive **/ /** Bipartitioning mapping algorithm **/ /** in parallel for non-complete graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 24 jun 2008 **/ /** to : 24 jun 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "dgraph.h" #include "dmapping.h" #include "kdgraph.h" #include "kdgraph_map_rb.h" #include "kdgraph_map_rb_map.h" #include "kdgraph_map_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int kdgraphMapRbMap ( Kdgraph * restrict const grafptr, Kdmapping * restrict const mappptr, const KdgraphMapRbParam * restrict const paraptr) { errorPrint ("kdgraphMapRbMap: not implemented yet"); return (1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_rb_map.h000066400000000000000000000055651514310134000276760ustar00rootroot00000000000000/* Copyright 2008,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_rb_map.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Parallel Dual Recursive **/ /** Bipartitioning mapping algorithm. **/ /** **/ /** DATES : # Version 5.1 : from : 24 jun 2008 **/ /** to : 24 jun 2008 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /* ** The function prototypes. */ int kdgraphMapRbMap (Kdgraph * const, Kdmapping * const, const KdgraphMapRbParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_rb_part.c000066400000000000000000000504551514310134000300600ustar00rootroot00000000000000/* Copyright 2008-2012,2014,2018,2019,2021-2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_rb_part.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module performs the Dual Recursive **/ /** Bipartitioning mapping algorithm **/ /** in parallel. It does so for complete **/ /** graph architectures, hence performing **/ /** plain graph partitioning, which **/ /** avoids to take care of what the other **/ /** processes are doing. **/ /** **/ /** DATES : # Version 5.1 : from : 21 jun 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 03 jun 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_KDGRAPH_MAP_RB_PART #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "dgraph.h" #include "dmapping.h" #include "bdgraph.h" #include "bdgraph_bipart_st.h" #include "kdgraph.h" #include "kdgraph_map_rb.h" #include "kdgraph_map_rb_part.h" #include "kdgraph_map_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine sequentially computes a mapping ** of the given subgraph and adds its result to ** the given distributed mapping. Since no ** cocycle data is needed, the un-synchronized ** sequential Scotch routine can be used as is. ** It returns: ** - 0 : if the mapping could be computed. ** - !0 : on error. */ static int kdgraphMapRbPartSequ ( KdgraphMapRbPartGraph * restrict const grafptr, Dmapping * restrict const mappptr, const KdgraphMapRbPartData * restrict const dataptr) { Graph * restrict cgrfptr; Kgraph kgrfdat; /* Centralized mapping graph */ DmappingFrag * restrict fragptr; cgrfptr = &grafptr->data.cgrfdat; if (kgraphInit (&kgrfdat, cgrfptr, &mappptr->archdat, &grafptr->domnorg, 0, NULL, 1, 1, NULL) != 0) { errorPrint ("kdgraphMapRbPartSequ: cannot initialize centralized graph"); return (1); } kgrfdat.s.flagval = (kgrfdat.s.flagval & ~GRAPHBITSUSED) | cgrfptr->flagval; /* Free sequential graph along with mapping data */ kgrfdat.s.vnumtax = NULL; /* Remove index array if any */ kgrfdat.comploadrat = dataptr->comploadrat; /* Use ideal load of full graph and not that of subgraph */ kgrfdat.contptr = dataptr->contptr; if (kgraphMapSt (&kgrfdat, dataptr->paraptr->stratseq) != 0) { /* Compute sequential mapping */ kgraphExit (&kgrfdat); return (1); } if (((fragptr = memAlloc (sizeof (DmappingFrag))) == NULL) || ((fragptr->vnumtab = memAlloc (cgrfptr->vertnbr * sizeof (Gnum))) == NULL)) { errorPrint ("kdgraphMapRbPartSequ: out of memory"); if (fragptr != NULL) memFree (fragptr); kgraphExit (&kgrfdat); return (1); } fragptr->vertnbr = cgrfptr->vertnbr; fragptr->parttab = kgrfdat.m.parttax + kgrfdat.s.baseval; fragptr->domnnbr = kgrfdat.m.domnnbr; fragptr->domntab = kgrfdat.m.domntab; kgrfdat.m.parttax = NULL; /* Keep sequential mapping arrays for distributed mapping fragment */ kgrfdat.m.domntab = NULL; if (kgrfdat.m.domnmax > kgrfdat.m.domnnbr) fragptr->domntab = memRealloc (fragptr->domntab, kgrfdat.m.domnnbr * sizeof (ArchDom)); /* Reallocate mapping array */ if (cgrfptr->vnumtax != NULL) memCpy (fragptr->vnumtab, cgrfptr->vnumtax + cgrfptr->baseval, cgrfptr->vertnbr * sizeof (Gnum)); else { Gnum vertadj; Gnum vertnum; for (vertnum = 0, vertadj = cgrfptr->baseval; vertnum < cgrfptr->vertnbr; vertnum ++) fragptr->vnumtab[vertnum] = vertadj + vertnum; } dmapAdd (mappptr, fragptr); /* Add mapping fragment */ kgraphExit (&kgrfdat); /* Free mapping without some of its arrays */ return (0); } /* This routine builds either a centralized or a ** distributed subgraph, according to the number ** of processes in the given part. The calling ** conventions of this routine have been designed ** so as to allow for multi-threading. */ static int kdgraphMapRbPartFold2 ( KdgraphMapRbPartThread * const fldthrdptr) { KdgraphMapRbPartGraph * restrict fldgrafptr; /* Pointer to folded graph area */ Dgraph indgrafdat; /* Induced distributed graph */ int o; fldgrafptr = fldthrdptr->fldgrafptr; if (fldthrdptr->fldprocnbr == 0) /* If recursion stopped, build mapping of graph part */ return (kdgraphMapRbAddPart (fldthrdptr->orggrafptr, fldthrdptr->mappptr, fldthrdptr->inddomnptr, fldthrdptr->indvertnbr, fldthrdptr->indparttax + fldthrdptr->orggrafptr->baseval, fldthrdptr->indpartval)); dgraphInit (&indgrafdat, fldthrdptr->orggrafptr->proccomm); /* Re-use communicator of original graph */ if (dgraphInducePart (fldthrdptr->orggrafptr, fldthrdptr->indparttax, /* Compute unfinished induced subgraph on all processes */ fldthrdptr->indvertnbr, fldthrdptr->indpartval, &indgrafdat) != 0) return (1); if (fldthrdptr->fldprocnbr > 1) { /* If subpart has several processes, fold a distributed graph */ o = dgraphFold2 (&indgrafdat, fldthrdptr->fldpartval, /* Fold temporary induced subgraph from all processes */ &fldgrafptr->data.dgrfdat, fldthrdptr->fldproccomm, NULL, NULL, MPI_INT); } else { /* Create a centralized graph */ Graph * restrict fldcgrfptr; fldcgrfptr = (fldthrdptr->fldprocnum == 0) ? &fldgrafptr->data.cgrfdat : NULL; /* See if we are the receiver */ o = dgraphGather (&indgrafdat, fldcgrfptr); /* Gather centralized subgraph from all other processes */ } dgraphExit (&indgrafdat); /* Free temporary induced graph */ return (o); } #ifdef SCOTCH_PTHREAD_MPI static void kdgraphMapRbPartFold3 ( ThreadDescriptor * restrict const descptr, KdgraphMapRbPartThread * restrict const fldthrdtab) { const int thrdnum = threadNum (descptr); if (thrdnum < 2) { if (kdgraphMapRbPartFold2 (&fldthrdtab[thrdnum]) != 0) fldthrdtab[thrdnum].orggrafptr = NULL; /* Indicate an error */ } } #endif /* SCOTCH_PTHREAD_MPI */ static int kdgraphMapRbPartFold ( Bdgraph * restrict const actgrafptr, Dmapping * restrict const mappptr, const ArchDom * restrict const domnsubtab, KdgraphMapRbPartGraph * restrict const fldgrafptr) { #ifdef SCOTCH_PTHREAD_MPI int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ KdgraphMapRbPartThread fldthrdtab[2]; int fldprocnbr0; /* Number of processes in first part */ int fldprocnum; int fldproccol; int fldpartval; Gnum indvertlocmax; /* Local number of vertices in biggest subgraph */ Gnum indflagtab[2]; /* Array of subjob continuation flags */ GraphPart indpartmax; /* Induced part having most vertices */ int o; indflagtab[0] = /* Assume both jobs will not continue */ indflagtab[1] = 0; if ((actgrafptr->compglbsize0 != 0) && /* If graph has been bipartitioned */ (actgrafptr->compglbsize0 != actgrafptr->s.vertglbnbr)) { if (archVar (&mappptr->archdat)) { /* If architecture is variable-sized */ if (actgrafptr->compglbsize0 > 1) /* If graph is not single vertex, go on */ indflagtab[0] = ~0; /* All bits set to 1 */ if ((actgrafptr->s.vertglbnbr - actgrafptr->compglbsize0) > 1) indflagtab[1] = ~0; } else { /* Architecture is not variable-sized */ if (archDomSize (&mappptr->archdat, &domnsubtab[0]) > 1) /* Stop when target is one vertex */ indflagtab[0] = ~0; if (archDomSize (&mappptr->archdat, &domnsubtab[1]) > 1) indflagtab[1] = ~0; } } if ((indflagtab[0] | indflagtab[1]) == 0) { /* If both subjobs stop */ fldgrafptr->procnbr = 0; /* Nothing to do on return */ return (kdgraphMapRbAddBoth (&actgrafptr->s, mappptr, domnsubtab, actgrafptr->partgsttax + actgrafptr->s.baseval)); /* Map both subdomains in the same time */ } if ((2 * actgrafptr->compglbsize0) >= actgrafptr->s.vertglbnbr) { /* Get part of largest subgraph */ indpartmax = 0; indvertlocmax = actgrafptr->complocsize0; } else { indpartmax = 1; indvertlocmax = actgrafptr->s.vertlocnbr - actgrafptr->complocsize0; } fldprocnbr0 = (actgrafptr->s.procglbnbr + 1) / 2; /* Get number of processes in part 0 (always more than in part 1) */ fldthrdtab[0].mappptr = mappptr; /* Load data to pass to the subgraph building routines */ fldthrdtab[0].orggrafptr = &actgrafptr->s; fldthrdtab[0].inddomnptr = &domnsubtab[indpartmax]; fldthrdtab[0].indvertnbr = indvertlocmax; fldthrdtab[0].indpartval = indpartmax; fldthrdtab[0].indparttax = actgrafptr->partgsttax; fldthrdtab[0].fldgrafptr = fldgrafptr; fldthrdtab[0].fldpartval = 0; fldthrdtab[0].fldprocnbr = indflagtab[indpartmax] & fldprocnbr0; /* Stop if domain limited to one vertex */ fldthrdtab[1].mappptr = mappptr; fldthrdtab[1].orggrafptr = &actgrafptr->s; /* Assume jobs won't be run concurrently */ fldthrdtab[1].inddomnptr = &domnsubtab[indpartmax ^ 1]; fldthrdtab[1].indvertnbr = actgrafptr->s.vertlocnbr - indvertlocmax; fldthrdtab[1].indpartval = indpartmax ^ 1; fldthrdtab[1].indparttax = actgrafptr->partgsttax; fldthrdtab[1].fldgrafptr = fldgrafptr; fldthrdtab[1].fldpartval = 1; fldthrdtab[1].fldprocnbr = indflagtab[indpartmax ^ 1] & (actgrafptr->s.procglbnbr - fldprocnbr0); /* Stop if domain limited to one vertex */ if (actgrafptr->s.proclocnum < fldprocnbr0) { /* Compute color and rank in our future subpart */ fldpartval = 0; fldprocnum = actgrafptr->s.proclocnum; } else { fldpartval = 1; fldprocnum = actgrafptr->s.proclocnum - fldprocnbr0; } fldgrafptr->domnorg = *fldthrdtab[fldpartval].inddomnptr; /* Set data of our folded graph */ fldgrafptr->procnbr = fldthrdtab[fldpartval].fldprocnbr; fldgrafptr->levlnum = actgrafptr->levlnum + 1; /* One level down in the DRB process */ fldproccol = fldpartval; /* Split color is the part value */ if (fldgrafptr->procnbr <= 1) /* If our part will have only one processor or will stop */ fldproccol = MPI_UNDEFINED; /* Do not create any sub-communicator for it */ if (actgrafptr->s.procglbnbr > 2) { /* If both folded graphs are mono-process, no need for it */ if (MPI_Comm_split (actgrafptr->s.proccomm, fldproccol, fldprocnum, &fldthrdtab[fldpartval].fldproccomm) != MPI_SUCCESS) { /* Assign folded communicator to proper part */ errorPrint ("kdgraphMapRbPartFold: communication error"); return (1); } } fldthrdtab[fldpartval].fldprocnum = fldprocnum; /* This will be our rank afterwards */ fldthrdtab[fldpartval ^ 1].fldprocnum = -1; /* Other part will not be in communicator */ fldthrdtab[fldpartval ^ 1].fldproccomm = MPI_COMM_NULL; #ifdef SCOTCH_PTHREAD_MPI MPI_Query_thread (&thrdprolvl); /* Get thread level of MPI implementation */ if ((thrdprolvl >= MPI_THREAD_MULTIPLE) && /* If we can use multiple threads */ (contextThreadNbr (actgrafptr->contptr) > 1) && /* And there is a need to */ ((indflagtab[0] & indflagtab[1]) != 0)) { /* And both subjobs have meaningful things to do in parallel */ Dgraph orggrafdat; /* Structure for copying graph fields except communicator */ orggrafdat = actgrafptr->s; /* Create a separate graph structure to change its communicator */ orggrafdat.flagval = (orggrafdat.flagval & ~DGRAPHFREEALL) | DGRAPHFREECOMM; fldthrdtab[1].orggrafptr = &orggrafdat; MPI_Comm_dup (actgrafptr->s.proccomm, &orggrafdat.proccomm); /* Duplicate communicator to avoid interferences in communications */ contextThreadLaunch (actgrafptr->contptr, (ThreadFunc) kdgraphMapRbPartFold3, (void *) fldthrdtab); /* Only threads 0 and 1 will work */ MPI_Comm_free (&orggrafdat.proccomm); o = ((fldthrdtab[0].orggrafptr == NULL) || /* See if an error occured */ (fldthrdtab[1].orggrafptr == NULL)); } else #endif /* SCOTCH_PTHREAD_MPI */ o = kdgraphMapRbPartFold2 (&fldthrdtab[0]) || /* Perform inductions in sequence */ kdgraphMapRbPartFold2 (&fldthrdtab[1]); return (o); } /* This routine performs the Dual Recursive ** Bipartitioning mapping in parallel. ** It returns: ** - 0 : if the mapping could be computed. ** - !0 : on error. */ static int kdgraphMapRbPart2 ( KdgraphMapRbPartGraph * restrict const grafptr, const KdgraphMapRbPartData * restrict const dataptr) { ArchDom domnsubtab[2]; /* Temporary subdomains */ Bdgraph actgrafdat; /* Active bipartitioning graph */ KdgraphMapRbPartGraph indgrafdat; /* Induced folded graph area */ Gnum comploadavg; Dmapping * mappptr; int o; mappptr = dataptr->mappptr; o = ((archVar (&mappptr->archdat)) && /* If architecture is variable-sized */ (grafptr->data.dgrfdat.vertglbnbr <= 1)) /* And source subgraph is of minimal size */ ? 1 /* Then do not bipartition target more */ : archDomBipart (&mappptr->archdat, &grafptr->domnorg, &domnsubtab[0], &domnsubtab[1]); switch (o) { case 1 : /* If target domain is terminal */ o = kdgraphMapRbAddOne (&grafptr->data.dgrfdat, mappptr, &grafptr->domnorg); /* Update mapping and return */ dgraphExit (&grafptr->data.dgrfdat); /* Free graph before returning */ return (o); case 2 : /* On error */ errorPrint ("kdgraphMapRbPart2: cannot bipartition domain"); return (1); } if (dgraphGhst (&grafptr->data.dgrfdat) != 0) { /* Compute ghost edge array if not already present, to have vertgstnbr (and procsidtab) */ errorPrint ("kdgraphMapRbPart2: cannot compute ghost edge array"); return (1); } o = bdgraphInit (&actgrafdat, &grafptr->data.dgrfdat, NULL, &mappptr->archdat, domnsubtab); /* Create active graph */ actgrafdat.levlnum = grafptr->levlnum; /* Initial level of bipartition graph is DRB recursion level */ actgrafdat.contptr = dataptr->contptr; comploadavg = (Gnum) ((double) actgrafdat.s.veloglbsum / (double) archDomWght (&mappptr->archdat, &grafptr->domnorg)); actgrafdat.compglbload0min = actgrafdat.compglbload0avg - (Gnum) MIN ((dataptr->comploadmax - comploadavg) * actgrafdat.domnwght[0], (comploadavg - dataptr->comploadmin) * actgrafdat.domnwght[1]); actgrafdat.compglbload0max = actgrafdat.compglbload0avg + (Gnum) MIN ((comploadavg - dataptr->comploadmin) * actgrafdat.domnwght[0], (dataptr->comploadmax - comploadavg) * actgrafdat.domnwght[1]); if ((o != 0) || (bdgraphBipartSt (&actgrafdat, dataptr->paraptr->stratsep) != 0)) { /* Bipartition edge-separation graph */ bdgraphExit (&actgrafdat); return (1); } o = kdgraphMapRbPartFold (&actgrafdat, mappptr, domnsubtab, &indgrafdat); bdgraphExit (&actgrafdat); /* Free additional bipartitioning data */ dgraphExit (&grafptr->data.dgrfdat); /* Free graph before going to next level */ if (o == 0) { if (indgrafdat.procnbr == 1) /* If sequential job */ o = kdgraphMapRbPartSequ (&indgrafdat, mappptr, dataptr); else if (indgrafdat.procnbr > 1) /* If distributed job */ o = kdgraphMapRbPart2 (&indgrafdat, dataptr); } return (o); } int kdgraphMapRbPart ( Kdgraph * restrict const grafptr, Kdmapping * restrict const mappptr, const KdgraphMapRbParam * restrict const paraptr) { KdgraphMapRbPartGraph grafdat; KdgraphMapRbPartData datadat; grafdat.domnorg = grafptr->m.domnorg; /* Used in all cases */ grafdat.procnbr = grafptr->s.procglbnbr; grafdat.levlnum = 0; /* Set initial DRB level to zero */ datadat.mappptr = mappptr->mappptr; datadat.paraptr = paraptr; datadat.comploadrat = (double) grafptr->s.veloglbsum / (double) archDomWght (&mappptr->mappptr->archdat, &grafptr->m.domnorg); datadat.comploadmin = (1.0 - paraptr->kbalval) * datadat.comploadrat; datadat.comploadmax = (1.0 + paraptr->kbalval) * datadat.comploadrat; datadat.contptr = grafptr->contptr; if (grafptr->s.procglbnbr <= 1) { /* If single process, switch immediately to sequential mode */ if (dgraphGather (&grafptr->s, &grafdat.data.cgrfdat) != 0) { errorPrint ("kdgraphMapRbPart: cannot centralize graph"); return (1); } return (kdgraphMapRbPartSequ (&grafdat, mappptr->mappptr, &datadat)); } grafdat.data.dgrfdat = grafptr->s; /* Create a clone graph that will never be freed */ grafdat.data.dgrfdat.flagval &= ~(DGRAPHFREEALL | DGRAPHFREECOMM); /* Do not free communicator either */ return (kdgraphMapRbPart2 (&grafdat, &datadat)); /* Perform DRB */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_rb_part.h000066400000000000000000000136251514310134000300630ustar00rootroot00000000000000/* Copyright 2008,2010,2011,2018,2019,2022,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_rb_part.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Parallel Dual Recursive **/ /** Bipartitioning mapping algorithm. **/ /** **/ /** DATES : # Version 5.1 : from : 23 jun 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds folded graph data, whether centralized or distributed +*/ typedef struct KdgraphMapRbPartGraph_ { ArchDom domnorg; /*+ Domain to bipartition at this stage +*/ int procnbr; /*+ Number of processes holding graph +*/ INT levlnum; /*+ Level number +*/ union { Graph cgrfdat; /*+ Centralized graph +*/ Dgraph dgrfdat; /*+ Distributed graph +*/ } data; } KdgraphMapRbPartGraph; /*+ This structure holds the data passed to the subgraph building threads. +*/ typedef struct KdgraphMapRbPartThread_ { Dmapping * mappptr; /*+ Pointer to mapping structure +*/ Dgraph * orggrafptr; /*+ Pointer to original graph +*/ const ArchDom * inddomnptr; /*+ Pointer to subjob domain +*/ Gnum indvertnbr; /*+ Local number of vertices in subgraph +*/ GraphPart indpartval; /*+ Graph part from which to extract subgraph +*/ GraphPart * indparttax; /*+ Based local vertex partition flags in subgraph +*/ KdgraphMapRbPartGraph * fldgrafptr; /*+ Pointer to folded graph union area +*/ int fldpartval; /*+ Part of processor array to which to fold to +*/ int fldprocnbr; /*+ Number of processes in folded communicator +*/ int fldprocnum; /*+ Rank of process in folded communicator, or -1 +*/ MPI_Comm fldproccomm; /*+ Communicator for the folded graph, if any +*/ } KdgraphMapRbPartThread; /*+ This structure holds the data passed to each bipartitioning job. +*/ typedef struct KdgraphMapRbPartData_ { Dmapping * mappptr; const KdgraphMapRbParam * paraptr; double comploadrat; /*+ Ideal vertex load per target load +*/ double comploadmin; /*+ Minimum vertex load per target load +*/ double comploadmax; /*+ Maximum vertex load per target load +*/ Context * contptr; /*+ Execution context +*/ } KdgraphMapRbPartData; /* ** The function prototypes. */ #ifdef SCOTCH_KDGRAPH_MAP_RB_PART static int kdgraphMapRbPartFold (Bdgraph * restrict const, Dmapping * restrict const, const ArchDom * restrict const, KdgraphMapRbPartGraph * restrict const); static int kdgraphMapRbPartFold2 (KdgraphMapRbPartThread * const); #ifdef SCOTCH_PTHREAD_MPI static void kdgraphMapRbPartFold3 (ThreadDescriptor * restrict const, KdgraphMapRbPartThread * restrict const); #endif /* SCOTCH_PTHREAD_MPI */ #endif /* SCOTCH_KDGRAPH_MAP_RB_PART */ int kdgraphMapRbPart (Kdgraph * const, Kdmapping * const, const KdgraphMapRbParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_st.c000066400000000000000000000206031514310134000270450ustar00rootroot00000000000000/* Copyright 2008-2011,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_st.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the strategy and **/ /** method tables for the parallel **/ /** multi-way static mapping routines. **/ /** **/ /** DATES : # Version 5.1 : from : 16 jun 2008 **/ /** to : 14 apr 2011 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "arch.h" #include "mapping.h" #include "dmapping.h" #include "bdgraph.h" #include "bdgraph_bipart_st.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "kdgraph.h" #include "kdgraph_map_rb.h" #include "kdgraph_map_st.h" /* ** The static and global variables. */ static union { KdgraphMapRbParam param; StratNodeMethodData padding; } kdgraphmapstdefaultrb = { { &stratdummy, &stratdummy, 0.05 } }; static StratMethodTab kdgraphmapstmethtab[] = { /* Mapping methods array */ { KDGRAPHMAPSTMETHRB, "r", (StratMethodFunc) kdgraphMapRb, &kdgraphmapstdefaultrb }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab kdgraphmapstparatab[] = { /* Method parameter list */ { KDGRAPHMAPSTMETHRB, STRATPARAMSTRAT, "sep", (byte *) &kdgraphmapstdefaultrb.param, (byte *) &kdgraphmapstdefaultrb.param.stratsep, (void *) &bdgraphbipartststratab }, { KDGRAPHMAPSTMETHRB, STRATPARAMSTRAT, "seq", (byte *) &kdgraphmapstdefaultrb.param, (byte *) &kdgraphmapstdefaultrb.param.stratseq, (void *) &kgraphmapststratab }, { KDGRAPHMAPSTMETHRB, STRATPARAMDOUBLE, "bal", (byte *) &kdgraphmapstdefaultrb.param, (byte *) &kdgraphmapstdefaultrb.param.kbalval, NULL }, { KDGRAPHMAPSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab kdgraphmapstcondtab[] = { /* Graph condition parameter table */ { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab kdgraphmapststratab = { /* Strategy tables for graph mapping methods */ kdgraphmapstmethtab, kdgraphmapstparatab, kdgraphmapstcondtab }; /****************************************/ /* */ /* This is the generic mapping routine. */ /* */ /****************************************/ /* This routine computes the given ** mapping according to the given ** strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kdgraphMapSt ( Kdgraph * restrict const grafptr, /*+ Mapping graph +*/ Kdmapping * restrict const mappptr, /*+ Dynamic mapping +*/ const Strat * restrict const straptr) /*+ Mapping strategy +*/ { StratTest testdat; int o; #ifdef SCOTCH_DEBUG_KDGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("kdgraphMapSt: invalid type specification for parser variables"); return (1); } if ((sizeof (KdgraphMapRbParam) > sizeof (StratNodeMethodData))) { errorPrint ("kdgraphMapSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_KDGRAPH2 */ #ifdef SCOTCH_DEBUG_KDGRAPH1 if ((straptr->tablptr != &kdgraphmapststratab) && (straptr != &stratdummy)) { errorPrint ("kdgraphMapSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_KDGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = kdgraphMapSt (grafptr, mappptr, straptr->data.concdat.stratab[0]); /* Apply first strategy */ if (o == 0) /* If it worked all right */ o |= kdgraphMapSt (grafptr, mappptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_KDGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("kdgraphMapSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_KDGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = kdgraphMapSt (grafptr, mappptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = kdgraphMapSt (grafptr, mappptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : errorPrint ("kdgraphMapSt: selection operator not implemented for k-way strategies"); return (1); #ifdef SCOTCH_DEBUG_KDGRAPH1 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_KDGRAPH1 */ default : #endif /* SCOTCH_DEBUG_KDGRAPH1 */ return (((KdgraphMapFunc) straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr) (grafptr, mappptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_KDGRAPH1 default : errorPrint ("kdgraphMapSt: invalid parameter (2)"); return (1); #endif /* SCOTCH_DEBUG_KDGRAPH1 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kdgraph_map_st.h000066400000000000000000000070551514310134000270600ustar00rootroot00000000000000/* Copyright 2008,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kdgraph_map_st.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the strategy and method **/ /** tables and the generic entry point for **/ /** the parallel multi-way static mapping **/ /** routines. **/ /** **/ /** DATES : # Version 5.1 : from : 16 jun 2008 **/ /** to : 16 jun 2008 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum KdgraphMapStMethodType_ { KDGRAPHMAPSTMETHRB = 0, /*+ Dual Recursive Bipartitioning +*/ KDGRAPHMAPSTMETHNBR /*+ Number of methods +*/ } KdgraphMapStMethodType; /*+ Method function pointer type. +*/ typedef int (* KdgraphMapFunc) (Kdgraph * restrict const, Kdmapping * restrict const, const void * const); /* ** The external declarations. */ extern StratTab kdgraphmapststratab; /* ** The function prototypes. */ int kdgraphMapSt (Kdgraph * restrict const, Kdmapping * restrict const, const Strat * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph.c000066400000000000000000000246071514310134000253460ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2020,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : Part of a bipartitioning mapper. **/ /** This module handles the k-way active **/ /** graph and save data structure handling **/ /** routines. **/ /** **/ /** DATES : # Version 3.2 : from : 03 oct 1997 **/ /** to : 26 may 1998 **/ /** # Version 3.4 : from : 30 oct 2001 **/ /** to : 30 oct 2001 **/ /** # Version 4.0 : from : 24 jun 2004 **/ /** to : 16 feb 2005 **/ /** # Version 5.1 : from : 28 sep 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 27 aug 2020 **/ /** # Version 7.0 : from : 22 jun 2021 **/ /** to : 22 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" /***********************************/ /* */ /* Active graph handling routines. */ /* */ /***********************************/ /* This routine builds the active graph ** corresponding to the given k-way ** partition parameters. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphInit ( Kgraph * const actgrafptr, /*+ Active graph +*/ const Graph * const srcgrafptr, /*+ Source graph +*/ Arch * restrict const archptr, /*+ Target architecture +*/ const ArchDom * restrict domnptr, /*+ Target architecture initial domain +*/ const Gnum vfixnbr, /*+ Number of fixed vertices in array +*/ const Anum * restrict const pfixtax, /*+ Fixed vertex part array +*/ const Gnum crloval, /*+ Coefficient load for regular edges +*/ const Gnum cmloval, /*+ Coefficient load for migration edges +*/ const Gnum * restrict const vmlotax) /*+ Vertex migration cost array +*/ { ArchDom domndat; #ifdef SCOTCH_DEBUG_KGRAPH2 if (((crloval < 1)) || ((vmlotax != NULL) && (cmloval < 0))) { errorPrint ("kgraphInit: invalid parameters"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (srcgrafptr != &actgrafptr->s) { /* If graph not already in place */ actgrafptr->s = *srcgrafptr; /* Clone source graph */ actgrafptr->s.flagval &= (GRAPHBITSUSED & ~GRAPHFREETABS); /* Remove extended graph class flags and do not allow freeing */ } if (domnptr == NULL) { /* If domain not provided, use first domain */ archDomFrst (archptr, &domndat); domnptr = &domndat; } actgrafptr->domnorg = *domnptr; /* Copy initial domain */ mapInit (&actgrafptr->m, &actgrafptr->s, archptr, domnptr); /* Compute m.domnmax */ mapInit2 (&actgrafptr->r.m, &actgrafptr->s, archptr, actgrafptr->m.domnmax, 0); actgrafptr->s.flagval |= KGRAPHFREECOMP | KGRAPHFREEFRON; /* Load arrays always grouped */ actgrafptr->comploadavg = NULL; /* In case of allocation error */ if (((actgrafptr->frontab = memAlloc (actgrafptr->s.vertnbr * sizeof (Gnum))) == NULL) || (memAllocGroup ((void **) (void *) &actgrafptr->comploadavg, (size_t) (actgrafptr->m.domnmax * sizeof (Gnum)), /* TRICK: can send both compload arrays in one piece */ &actgrafptr->comploaddlt, (size_t) (actgrafptr->m.domnmax * sizeof (Gnum)), NULL) == NULL)) { errorPrint ("kgraphInit: out of memory"); kgraphExit (actgrafptr); /* Free frontab if needed */ return (1); } actgrafptr->r.crloval = crloval; actgrafptr->r.cmloval = cmloval; actgrafptr->r.vmlotax = vmlotax; /* Set vertex migration load array or NULL */ actgrafptr->vfixnbr = vfixnbr; actgrafptr->pfixtax = pfixtax; actgrafptr->fronnbr = 0; /* No frontier yet */ actgrafptr->comploadavg[0] = actgrafptr->s.velosum; actgrafptr->comploaddlt[0] = 0; actgrafptr->comploadrat = (double) srcgrafptr->velosum / (double) archDomWght (archptr, domnptr); /* Always balance with respect to whole original graph */ actgrafptr->commload = 0; actgrafptr->levlnum = 0; actgrafptr->kbalval = 1.0; /* No information on imbalance yet */ return (0); } /* This routine frees the contents ** of the given active graph and ** updates the mapping data accordingly. ** It returns: ** - VOID : in all cases. */ void kgraphExit ( Kgraph * restrict const grafptr) { if (((grafptr->s.flagval & KGRAPHFREEVMLO) != 0) && /* If vmlotax must be freed */ (grafptr->r.vmlotax != NULL)) /* And if it exists */ memFree (grafptr->r.vmlotax + grafptr->s.baseval); /* Free it */ if (((grafptr->s.flagval & KGRAPHFREEPFIX) != 0) && /* If pfixtax must be freed */ (grafptr->pfixtax != NULL)) /* And if it exists */ memFree (grafptr->pfixtax + grafptr->s.baseval); /* Free it */ if (((grafptr->s.flagval & KGRAPHFREECOMP) != 0) && /* If comptabs must be freed */ (grafptr->comploadavg != NULL)) /* And if they exist */ memFree (grafptr->comploadavg); /* Free group leader */ if (((grafptr->s.flagval & KGRAPHFREEFRON) != 0) && /* If frontab must be freed */ (grafptr->frontab != NULL)) /* And if it exists */ memFree (grafptr->frontab); /* Free it */ mapExit (&grafptr->m); mapExit (&grafptr->r.m); graphExit (&grafptr->s); #ifdef SCOTCH_DEBUG_KGRAPH2 memSet (grafptr, ~0, sizeof (Kgraph)); /* Purge kgraph fields */ #endif /* SCOTCH_DEBUG_KGRAPH2 */ } /* This routine moves all of the graph ** vertices to the first subdomain, and ** computes the resulting gains. ** It returns: ** - VOID : in all cases. */ void kgraphFrst ( Kgraph * restrict const grafptr) { grafptr->m.domnnbr = 1; grafptr->m.domntab[0] = grafptr->domnorg; /* Use initial (sub)domain as root */ memSet (grafptr->m.parttax + grafptr->s.baseval, 0, grafptr->s.vertnbr * sizeof (Anum)); /* Set all vertices to subdomain 0 */ memSet (grafptr->comploadavg + 1, 0, (2 * grafptr->m.domnmax - 1) * sizeof (Gnum)); grafptr->comploadavg[0] = grafptr->s.velosum; grafptr->commload = 0; grafptr->fronnbr = 0; /* No frontier vertices */ } /* This routine computes the frontier ** array of the current partition. ** It returns: ** - VOID : in all cases. */ void kgraphFron ( Kgraph * restrict const grafptr) { Gnum vertnum; Gnum vertnnd; Gnum fronnbr; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Anum * restrict const parttax = grafptr->m.parttax; Gnum * restrict const frontab = grafptr->frontab; for (vertnum = grafptr->s.baseval, vertnnd = grafptr->s.vertnnd, fronnbr = 0; vertnum < vertnnd; vertnum ++) { Anum partval; /* Part of current vertex */ Gnum edgenum; /* Number of current edge */ partval = parttax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { if (parttax[edgetax[edgenum]] != partval) { /* If neighbor does not belong to the same part */ frontab[fronnbr ++] = vertnum; break; } } } grafptr->fronnbr = fronnbr; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph.h000066400000000000000000000236651514310134000253560ustar00rootroot00000000000000/* Copyright 2004,2007,2010-2012,2014,2018,2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** These lines are the data declarations **/ /** for the k-way graph mapping structures **/ /** and routines. **/ /** **/ /** DATES : # Version 3.2 : from : 12 sep 1997 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 12 mar 1999 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 16 feb 2005 **/ /** # Version 5.0 : from : 17 jun 2008 **/ /** to : 17 jun 2008 **/ /** # Version 5.1 : from : 13 jul 2010 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 18 jul 2021 **/ /** to : 18 jul 2021 **/ /** # Version 7.0 : from : 03 aug 2018 **/ /** to : 16 aug 2025 **/ /** **/ /** NOTES : # The comploadavg and comploaddlt **/ /** should always be allocated together, **/ /** with comploaddlt just after **/ /** comploadavg. **/ /** **/ /** # To date, the only k-way graph mapping **/ /** method is recursive bipartitioning, **/ /** which does not use the comploadavg, **/ /** comploaddlt and frontab parameters. **/ /** Consequently, although allocated, **/ /** these parameters are not set by this **/ /** method. However, when coupled with **/ /** the kdgraphMapSq() parallel static **/ /** mapping routine, these parameters **/ /** have to be computed. This is why the **/ /** kgraphCost() routine is called within **/ /** kdgraphMapSq(). When other sequential **/ /** mapping routines are proposed, it may **/ /** be more interesting to move **/ /** kgraphCost() to kgraphMapRb(). **/ /** **/ /** # When (pfixtax != NULL), we are **/ /** handling fixed vertices. **/ /** **/ /** # When (r.m.parttax != NULL), we are **/ /** doing repartitioning. **/ /** **/ /************************************************************/ #define SCOTCH_KGRAPH_H /* ** The defines. */ /*+ Graph option flags. +*/ #define KGRAPHFREEFRON (GRAPHBITSNOTUSED) /*+ Free frontier array +*/ #define KGRAPHFREECOMP (GRAPHBITSNOTUSED << 1) /*+ Free computational loads array +*/ #define KGRAPHFREEPFIX (GRAPHBITSNOTUSED << 2) /*+ Free fixed vertex array +*/ #define KGRAPHFREEVMLO (GRAPHBITSNOTUSED << 3) /*+ Free vertex migration cost array +*/ #define KGRAPHHASANCHORS (GRAPHBITSNOTUSED << 4) /*+ The graph is a band graph +*/ /* ** The type and structure definitions. */ /*+ The graph structure. +*/ typedef struct Kgraph_ { Graph s; /*+ Current graph +*/ ArchDom domnorg; /*+ Initial mapping (sub)domain +*/ Mapping m; /*+ Current mapping of graph vertices +*/ struct { /*+ Remapping structure +*/ Mapping m; /*+ Old mapping +*/ Gnum crloval; /*+ Coefficient load for regular edges +*/ Gnum cmloval; /*+ Coefficient load for migration edges; may be zero +*/ const Gnum * vmlotax; /*+ Vertex migration cost array +*/ } r; Gnum vfixnbr; /*+ Number of fixed vertices +*/ const Anum * pfixtax; /*+ Fixed terminal part array +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ Gnum * frontab; /*+ Array of frontier vertex numbers +*/ Gnum * comploadavg; /*+ Array of target average loads +*/ Gnum * comploaddlt; /*+ Array of target imbalances +*/ double comploadrat; /*+ Ideal load balance per weight unit +*/ Gnum commload; /*+ Communication load +*/ double kbalval; /*+ Last k-way imbalance ratio +*/ INT levlnum; /*+ Graph coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Kgraph; /*+ The save graph structure. +*/ typedef struct KgraphStore_ { Anum * parttab; /*+ Mapping array [vertnbr] +*/ ArchDom * domntab; /*+ Array of domains [termmax] +*/ Gnum domnmax; /*+ Maximum number of parts to save +*/ Anum domnnbr; /*+ Current number of domains +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ Gnum * frontab; /*+ Array of frontier vertex numbers +*/ Gnum * comploadavg; /*+ Array of target average loads +*/ Gnum * comploaddlt; /*+ Array of target imbalances +*/ Gnum commload; /*+ Communication load +*/ double kbalval; /*+ Last k-way imbalance ratio +*/ } KgraphStore; /* ** The function prototypes. */ int kgraphInit (Kgraph * const, const Graph * const, Arch * restrict const, const ArchDom * restrict, const Gnum, const Anum * restrict const, const Gnum, const Gnum, const Gnum * restrict const); void kgraphExit (Kgraph * const); void kgraphFrst (Kgraph * const); int kgraphCheck (const Kgraph * const); void kgraphCost (Kgraph * const); void kgraphFron (Kgraph * const); int kgraphBand (Kgraph * restrict const, const Gnum, Kgraph * restrict const, Gnum * const, Gnum * restrict * restrict const); int kgraphStoreInit (const Kgraph * const, KgraphStore * const); void kgraphStoreExit (KgraphStore * const); void kgraphStoreSave (const Kgraph * const, KgraphStore * const); void kgraphStoreUpdt (Kgraph * const, const KgraphStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_band.c000066400000000000000000000777731514310134000263460ustar00rootroot00000000000000/* Copyright 2009-2011,2013-2016,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_band.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a k-way band **/ /** graph from the given frontier **/ /** array. **/ /** **/ /** DATES : # Version 6.0 : from : 05 jan 2009 **/ /** to : 28 apr 2019 **/ /** # Version 6.1 : from : 19 apr 2021 **/ /** to : 30 jun 2021 **/ /** # Version 7.0 : from : 24 aug 2019 **/ /** to : 19 jul 2024 **/ /** **/ /** NOTES : # This code derives from the code of **/ /** kdgraph_band.c in version 5.2 for **/ /** direct k-way partitioning. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "arch.h" #include "graph.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_band.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a index array of given ** width around the current separator. ** It returns: ** - 0 : if the index array could be computed. ** - !0 : on error. */ int kgraphBand ( Kgraph * restrict const grafptr, /*+ Pointer to original graph +*/ const Gnum distmax, /*+ Maximum distance from separator vertices +*/ Kgraph * restrict const bandgrafptr, /*+ Pointer to band graph structure to fill +*/ Gnum * const bandvertlvlptr, /*+ Pointer to based start index of last level +*/ Gnum * restrict * restrict const bandvnumptr) /*+ Pointer to bandvnumtax +*/ { Gnum bandvertnbr; /* Number of band vertices (including anchor vertices) */ Gnum bandvertnnd; /* Based end of band vertex array (without anchor vertices) */ Gnum bandvertnum; Gnum * restrict bandverttax; Gnum * restrict bandvelotax; Gnum * restrict bandvmlotax; Gnum * restrict bandvnumtax; /* Original numbers of vertices in band graph */ #define bandedgetab bandcomploadtab /* TRICK: use delta array to compute edge offsets */ Gnum * restrict bandedgetax; Gnum * restrict bandedlotax; Gnum * restrict bandeeextab; Gnum bandedgenbr; Gnum bandedgenum; Gnum banddegrmax; Gnum * restrict bandfrontab; Anum * restrict bandparttax; Anum * restrict bandparotax; Gnum bandvfixnbr; Gnum bandvertlvlnum; /* Index of first band vertex belonging to last level */ Gnum bandvertancadj; /* Flag set when anchor(s) represent inexistent vertices */ Gnum * restrict vnumotbdtax; /* Original to band graph vertex numbers (~0 if not in band graph, -2 for fixed vertices) */ Gnum * restrict bandanlotab; /* Temporary array to store loads to anchors */ Gnum bandedlonbr; /* Size of local band edge load array */ Gnum bandedlosum; Gnum * restrict bandcomploadtab; Gnum * restrict comploadtab; /* Load of parts in original graph */ Gnum fronnum; Anum domnnum; Gnum veloval; Gnum vertnum; Gnum vfixnum; Gnum vfixflag; KgraphBandHash * restrict termhashtab; Anum termhashmsk = 0; /* Set initial value to prevent gcc from yelling */ const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Anum * restrict const parttax = grafptr->m.parttax; const Anum domnnbr = grafptr->m.domnnbr; const Anum * restrict const parotax = grafptr->r.m.parttax; const Gnum * restrict const vmlotax = grafptr->r.vmlotax; const Gnum * restrict const pfixtax = grafptr->pfixtax; const Gnum * restrict const frontab = grafptr->frontab; if (graphBand (&grafptr->s, grafptr->fronnbr, grafptr->frontab, distmax, &vnumotbdtax, &bandvertlvlnum, &bandvertnbr, &bandedgenbr, pfixtax, &bandvfixnbr) != 0) { /* Get vertices to keep in band graph */ errorPrint ("kgraphBand: cannot number graph vertices"); return (1); } if (bandvertlvlptr != NULL) *bandvertlvlptr = bandvertlvlnum; termhashtab = NULL; bandanlotab = NULL; bandeeextab = NULL; if (pfixtax != NULL) { /* Fixed vertices may be neighbors of band graph vertices and may not belong to the band graph */ Anum termhashsiz; const Arch * restrict const archptr = grafptr->m.archptr; const ArchDom * restrict const domntab = grafptr->m.domntab; for (termhashsiz = 0, termhashmsk = domnnbr; termhashmsk != 0; termhashsiz ++, termhashmsk >>= 1) ; /* Get upper power of two */ termhashsiz = 1 << (termhashsiz + 2); /* Fill hash table at 25% maximum */ termhashmsk = termhashsiz - 1; if (memAllocGroup ((void **) (void *) /* Allocation and initialization of fixed vertices temporary arrays */ &termhashtab, (size_t) (termhashsiz * sizeof (KgraphBandHash)), &bandanlotab, (size_t) (domnnbr * sizeof (Gnum)), &bandeeextab, (size_t) (domnnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("kgraphBand: out of memory (1)"); memFree (vnumotbdtax + grafptr->s.baseval); return (1); } memSet (termhashtab, ~0, termhashsiz * sizeof (KgraphBandHash)); memSet (bandanlotab, 0, domnnbr * sizeof (Gnum)); /* Assume there are no extra loads to anchors */ memSet (bandeeextab, 0, domnnbr * sizeof (Gnum)); for (domnnum = 0; domnnum < domnnbr; domnnum ++) { const ArchDom * domnptr; domnptr = &domntab[domnnum]; if (archDomSize (archptr, domnptr) == 1) { /* If domain is terminal */ Gnum termhashnum; Anum termnum; termnum = archDomNum (archptr, domnptr); /* Get terminal domain number */ for (termhashnum = (termnum * KGRAPHBANDHASHPRIME) & termhashmsk; ; termhashnum = (termhashnum + 1) & termhashmsk) { if (termhashtab[termhashnum].termnum == ~0) { /* If hash slot empty */ termhashtab[termhashnum].termnum = termnum; /* Create slot */ termhashtab[termhashnum].domnnum = domnnum; break; } #ifdef SCOTCH_DEBUG_KGRAPH2 if (termhashtab[termhashnum].termnum == termnum) { /* If hash slot found */ errorPrint ("kgraphBand: duplicate terminal domain in domain array"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } } } bandedgenbr += 2 * (bandvertnbr + grafptr->s.baseval - bandvertlvlnum) + /* Add edges to and from anchors, plus a band graph vertex that is the neighbour */ grafptr->s.degrmax * grafptr->vfixnbr; /* of a fixed vertex will get an extra edge, even if the fixed vertex is not in the band graph */ bandvertnbr += domnnbr; /* Then add anchor vertices to the initial number of vertices of the band graph */ bandedlonbr = ((edlotax != NULL) || (pfixtax != NULL)) ? bandedgenbr : 0; graphInit (&bandgrafptr->s); bandgrafptr->s.flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP | /* Arrays created by the routine itself */ KGRAPHFREEFRON | KGRAPHFREECOMP | KGRAPHHASANCHORS; bandgrafptr->s.baseval = grafptr->s.baseval; bandgrafptr->s.vertnbr = bandvertnbr; bandgrafptr->s.vertnnd = bandvertnbr + bandgrafptr->s.baseval; /* With anchor vertices */ bandgrafptr->r.crloval = grafptr->r.crloval; bandgrafptr->r.cmloval = grafptr->r.cmloval; bandgrafptr->vfixnbr = 0; /* Band graphs do not have fixed vertices */ bandgrafptr->pfixtax = NULL; bandgrafptr->frontab = NULL; /* Frontier array not yet allocated */ bandgrafptr->comploadavg = NULL; /* Computation load arrays not yet allocated */ bandgrafptr->comploaddlt = NULL; bandgrafptr->commload = grafptr->commload; /* Communication load is preserved */ bandgrafptr->kbalval = grafptr->kbalval; bandgrafptr->levlnum = grafptr->levlnum; bandgrafptr->contptr = grafptr->contptr; bandgrafptr->domnorg = grafptr->domnorg; /* Keep initial domain */ mapInit2 (&bandgrafptr->m, &bandgrafptr->s, grafptr->m.archptr, grafptr->m.domnmax, domnnbr); mapInit2 (&bandgrafptr->r.m, &bandgrafptr->s, grafptr->r.m.archptr, grafptr->r.m.domnmax, grafptr->r.m.domnnbr); bandgrafptr->m.domntab = grafptr->m.domntab; /* TRICK: non-NULL domain array to prevent its allocation */ if (mapAlloc (&bandgrafptr->m) != 0) { /* Allocate band mapping part array */ errorPrint ("kgraphBand: out of memory (2)"); bandgrafptr->m.domntab = NULL; /* TRICK: clean domain array to prevent its freeing on error */ abort: kgraphExit (bandgrafptr); if (termhashtab != NULL) memFree (termhashtab); memFree (vnumotbdtax + grafptr->s.baseval); return (1); } bandgrafptr->m.flagval |= MAPPINGFREEDOMN; /* Mapping will have ownership on array passed to it */ bandgrafptr->m.domntab = NULL; /* TRICK: clean domain array to prevent its freeing on error */ if ((memAllocGroup ((void **) (void *) /* Allocate graph data */ &bandgrafptr->s.verttax, (size_t) ((bandvertnbr + 1) * sizeof (Gnum)), /* Compact vertex array */ &bandgrafptr->s.velotax, (size_t) ( bandvertnbr * sizeof (Gnum)), NULL) == NULL) || ((bandgrafptr->s.edgetax = memAlloc ((bandedgenbr + bandedlonbr) * sizeof (Gnum))) == NULL)) { errorPrint ("kgraphBand: out of memory (3)"); goto abort; } bandgrafptr->s.verttax -= bandgrafptr->s.baseval; bandgrafptr->s.velotax -= bandgrafptr->s.baseval; bandgrafptr->s.edgetax -= bandgrafptr->s.baseval; bandgrafptr->s.edlotax = ((edlotax != NULL) || (pfixtax != NULL)) ? (bandgrafptr->s.edgetax + bandedgenbr) : NULL; if (vmlotax != NULL) { if ((bandvmlotax = memAlloc (bandvertnbr * sizeof (Gnum))) == NULL) { errorPrint ("kgraphBand: out of memory (4)"); goto abort; } bandvmlotax -= bandgrafptr->s.baseval; bandgrafptr->r.vmlotax = bandvmlotax; bandgrafptr->s.flagval |= KGRAPHFREEVMLO; } else bandgrafptr->r.vmlotax = NULL; if (parotax != NULL) { if ((bandparotax = memAlloc (bandvertnbr * sizeof (Gnum))) == NULL) { errorPrint ("kgraphBand: out of memory (5)"); goto abort; } memSet (bandparotax + bandvertnbr - bandgrafptr->r.m.domnnbr, ~0, bandgrafptr->r.m.domnnbr * sizeof (Gnum)); /* Old parts of anchors are unspecified */ bandparotax -= bandgrafptr->s.baseval; bandgrafptr->r.m.flagval |= MAPPINGINCOMPLETE | MAPPINGFREEPART; /* Remapping may be incomplete */ bandgrafptr->r.m.parttax = bandparotax; bandgrafptr->r.m.domntab = grafptr->r.m.domntab; /* Band old mapping domain array is a clone of old mapping (no freeing) */ } if (((bandgrafptr->frontab = memAlloc (bandvertnbr * sizeof (Gnum))) == NULL) || /* Allocation and initialization of imbalance arrays */ (memAllocGroup ((void **) (void *) &bandgrafptr->comploadavg, (size_t) ((domnnbr + 2) * sizeof (Gnum)), /* TRICK: always keep two slots for collective communication */ &bandgrafptr->comploaddlt, (size_t) ((domnnbr + 2) * sizeof (Gnum)), NULL) == NULL)) { errorPrint ("kgraphBand: out of memory (6)"); goto abort; /* TRICK: kgraphExit() will free frontab */ } bandfrontab = bandgrafptr->frontab; if ((bandvnumtax = memAlloc (bandvertnbr * sizeof (Gnum))) == NULL) { /* Allocate alone since it is an output */ errorPrint ("kgraphBand: out of memory (7)"); goto abort; } #ifdef SCOTCH_DEBUG_KGRAPH2 memSet (bandvnumtax, ~0, (bandvertnbr * sizeof (Gnum))); #endif /* SCOTCH_DEBUG_KGRAPH2 */ bandvnumtax -= bandgrafptr->s.baseval; vfixnum = 0; for (fronnum = 0, bandvertnum = bandgrafptr->s.baseval; fronnum < grafptr->fronnbr; fronnum ++) { /* Turn all graph frontier vertices into band frontier vertices */ Gnum vertnum; vertnum = frontab[fronnum]; if ((pfixtax != NULL) && (pfixtax[vertnum] != -1)) /* It is a fixed vertex */ vfixnum ++; else { bandfrontab[bandvertnum - bandgrafptr->s.baseval] = bandvertnum; /* All frontier vertices are first vertices of band graph */ bandvnumtax[bandvertnum] = vertnum; bandvertnum ++; } } bandgrafptr->fronnbr = grafptr->fronnbr - vfixnum; /* Remove fixed vertices from frontier */ for (bandvertnnd = bandvertnbr + bandgrafptr->s.baseval - domnnbr; /* Pick selected band vertices from rest of frontier array without anchors */ bandvertnum < bandvertnnd + bandvfixnbr - vfixnum; fronnum ++) { Gnum vertnum; vertnum = frontab[fronnum]; if ((pfixtax != NULL) && (pfixtax[vertnum] != -1)) /* It is a fixed vertex */ vfixnum ++; else { bandvnumtax[bandvertnum] = vertnum; bandvertnum ++; } } #ifdef SCOTCH_DEBUG_KGRAPH2 if (vfixnum != bandvfixnbr) { errorPrint ("kgraphBand: internal error (1)"); /* All fixed vertices indices must be at the beginning of frontab */ return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ bandverttax = bandgrafptr->s.verttax; bandvelotax = bandgrafptr->s.velotax; bandedgetax = bandgrafptr->s.edgetax; bandedlotax = bandgrafptr->s.edlotax; bandparttax = bandgrafptr->m.parttax; banddegrmax = 0; bandcomploadtab = bandgrafptr->comploaddlt; /* TRICK: use delta array to compute load sums */ memSet (bandcomploadtab, 0, domnnbr * sizeof (Gnum)); bandedlosum = 0; vfixflag = 0; for (bandvertnum = bandedgenum = bandgrafptr->s.baseval; /* Build vertex array of band graph */ bandvertnum < bandvertlvlnum; bandvertnum ++) { /* For all vertices that do not belong to the last level */ Gnum vertnum; Gnum edgenum; Anum partval; Gnum degrval; vertnum = bandvnumtax[bandvertnum]; if (vfixflag == 1) { /* Last vertex had neighbour fixed vertices */ memSet (bandanlotab, 0, domnnbr * sizeof (Gnum)); /* Reset loads to anchors */ vfixflag = 0; /* Guess that these are no extra loads to anchors */ } if (vmlotax != NULL) bandvmlotax[bandvertnum] = vmlotax[vertnum]; if (parotax != NULL) bandparotax[bandvertnum] = parotax[vertnum]; partval = parttax[vertnum]; #ifdef SCOTCH_DEBUG_KGRAPH2 if ((partval < 0) || (partval >= domnnbr)) { errorPrint ("kgraphBand: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ bandparttax[bandvertnum] = partval; bandverttax[bandvertnum] = bandedgenum; veloval = (velotax != NULL) ? velotax[vertnum] : 1; bandcomploadtab[partval] += veloval; /* Sum vertex load for each part */ bandvelotax[bandvertnum] = veloval; degrval = vendtax[vertnum] - verttax[vertnum]; if (banddegrmax < degrval) banddegrmax = degrval; for (edgenum = verttax[vertnum]; /* For all original edges */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; #ifdef SCOTCH_DEBUG_KGRAPH2 if (vnumotbdtax[vertend] == -1) { /* All ends should belong to the band graph too */ errorPrint ("kgraphBand: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (bandedlotax != NULL) { /* If graph has edge weights (always true when fixed vertices present) */ Gnum edloval; Gnum termnum; edloval = (edlotax == NULL) ? 1 : edlotax[edgenum]; if ((pfixtax != NULL) && ((termnum = pfixtax[vertend]) >= 0)) { /* If end vertex is fixed */ Gnum termhashnum; for (termhashnum = (termnum * KGRAPHBANDHASHPRIME) & termhashmsk; ; termhashnum = (termhashnum + 1) & termhashmsk) { if (termhashtab[termhashnum].termnum == termnum) { /* If hash slot found */ bandanlotab[termhashtab[termhashnum].domnnum] += edloval; vfixflag = 1; /* Vertex have some end vertices fixed */ break; } #ifdef SCOTCH_DEBUG_KGRAPH2 if (termhashtab[termhashnum].termnum == ~0) { /* If hash slot not found */ errorPrint ("kgraphBand: missing terminal domain in domain array (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } else { /* End vertex is not fixed */ bandedlosum += edloval; bandedlotax[bandedgenum] = edloval; bandedgetax[bandedgenum ++] = vnumotbdtax[vertend]; } } else bandedgetax[bandedgenum ++] = vnumotbdtax[vertend]; } if (vfixflag == 1) { /* If vertex has at least one neighbours that is fixed */ Gnum edloval; edloval = 0; for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* Traverse bandanlotab to handle loads to anchors */ if (bandanlotab[domnnum] != 0) /* Fixed neighbours are linked to this domain */ edloval += bandanlotab[domnnum]; /* Add load induced by edges to fixed vertices */ if (edloval != 0) { /* We have to add an edge to the anchor */ Gnum degrval; bandedlotax[bandedgenum] = edloval; bandedlosum += edloval; bandedgetax[bandedgenum ++] = bandvertnnd + domnnum; /* Add edge to anchor of proper part */ bandeeextab[domnnum] ++; /* One more extra edge to the anchor */ degrval = bandedgenum - bandverttax[bandvertnum]; if (banddegrmax < degrval) banddegrmax = degrval; edloval = 0; } } } } for ( ; bandvertnum < bandvertnnd; bandvertnum ++) { /* For all vertices that belong to the last level except anchors */ Gnum vertnum; Gnum edgenum; Anum partval; vertnum = bandvnumtax[bandvertnum]; if (vfixflag == 1) { /* Last vertex had neighbours fixed vertices */ memSet (bandanlotab, 0, domnnbr * sizeof (Gnum)); /* Reset loads to anchors */ vfixflag = 0; /* Guess that these are no extra loads to anchors */ } if (vmlotax != NULL) bandvmlotax[bandvertnum] = vmlotax[vertnum]; if (parotax != NULL) bandparotax[bandvertnum] = parotax[vertnum]; partval = parttax[vertnum]; #ifdef SCOTCH_DEBUG_KGRAPH2 if ((partval < 0) || (partval >= domnnbr)) { errorPrint ("kgraphBand: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ bandparttax[bandvertnum] = partval; bandverttax[bandvertnum] = bandedgenum; veloval = (velotax != NULL) ? velotax[vertnum] : 1; bandcomploadtab[partval] += veloval; /* Sum vertex load for each part */ bandvelotax[bandvertnum] = veloval; for (edgenum = verttax[vertnum]; /* For all original edges */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum bandvertend; vertend = edgetax[edgenum]; bandvertend = vnumotbdtax[vertend]; if (bandedlotax != NULL) { /* If graph has edge weights, copy load */ Gnum edloval; Gnum termnum; edloval = (edlotax == NULL) ? 1 : edlotax[edgenum]; if ((pfixtax != NULL) && ((termnum = pfixtax[vertend]) >= 0)) { /* If end vertex is fixed */ Gnum termhashnum; for (termhashnum = (termnum * KGRAPHBANDHASHPRIME) & termhashmsk; ; termhashnum = (termhashnum + 1) & termhashmsk) { if (termhashtab[termhashnum].termnum == termnum) { /* If hash slot found */ bandanlotab[termhashtab[termhashnum].domnnum] += edloval; vfixflag = 1; /* Vertex have some end vertices fixed */ break; } #ifdef SCOTCH_DEBUG_KGRAPH2 if (termhashtab[termhashnum].termnum == ~0) { /* If hash slot not found */ errorPrint ("kgraphBand: missing terminal domain in domain array (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } else if (bandvertend >= 0) { /* If end vertex is not fixed and in the band graph */ bandedlosum += edloval; bandedlotax[bandedgenum] = edloval; } } if (bandvertend >= 0) /* If end vertex is not fixed and in the band graph */ bandedgetax[bandedgenum ++] = vnumotbdtax[vertend]; } if (vfixflag == 1) { /* If vertex has at least one fixed neighbor */ Gnum edloval; for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* Traverse bandanlotab to handle loads to anchors */ edloval = 0; if (domnnum == partval) /* The current vertex is mapped to current domain */ edloval += 1; /* Add basic edge load to anchor */ if (bandanlotab[domnnum] != 0) /* Fixed neighbours are linked to this domain */ edloval += bandanlotab[domnnum]; /* Add load induced by edges to fixed vertices */ if (edloval != 0) { /* We have to add an edge to the anchor */ Gnum degrval; bandedlotax[bandedgenum] = edloval; bandedlosum += edloval; bandedgetax[bandedgenum ++] = bandvertnnd + domnnum; /* Add edge to anchor of proper part */ if (domnnum != partval) bandeeextab[domnnum] ++; /* One more extra edge to the anchor */ degrval = bandedgenum - bandverttax[bandvertnum]; if (banddegrmax < degrval) banddegrmax = degrval; edloval = 0; } } } else { Gnum degrval; if (bandedlotax != NULL) { /* If graph has edge weights */ bandedlotax[bandedgenum] = 1; /* Edge to anchor has load 1 */ bandedlosum ++; } bandedgetax[bandedgenum ++] = bandvertnnd + partval; /* Add edge to anchor of proper part */ degrval = bandedgenum - bandverttax[bandvertnum]; if (banddegrmax < degrval) banddegrmax = degrval; } } memFree (vnumotbdtax + bandgrafptr->s.baseval); /* Free useless space */ comploadtab = bandgrafptr->comploadavg; /* Use average array to store actual part loads */ memSet (comploadtab, 0, domnnbr * sizeof (Gnum)); for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) comploadtab[parttax[vertnum]] += (velotax != NULL) ? velotax[vertnum] : 1; for (domnnum = 0, bandvertancadj = 0; domnnum < domnnbr; domnnum ++) { /* For all anchors */ Gnum bandveloval; bandveloval = comploadtab[domnnum] - bandcomploadtab[domnnum]; /* Get load of anchor */ bandparttax[bandvertnnd + domnnum] = domnnum; /* Set parts of anchor vertices */ bandvelotax[bandvertnnd + domnnum] = bandveloval; if (bandveloval == 0) bandvertancadj = 1; } if (bandvertancadj == 1) /* Anchors have to be adjusted */ for (domnnum = 0; domnnum < domnnbr; domnnum ++) /* Increase weight of all anchors to keep balance */ bandvelotax[bandvertnnd + domnnum] ++; bandverttax[bandvertnum] = bandedgenum; /* Fill last element without anchors */ if (pfixtax != NULL) memCpy (bandedgetab, bandeeextab, domnnbr * sizeof (Gnum)); else memSet (bandedgetab, 0, domnnbr * sizeof (Gnum)); for (bandvertnum = bandvertlvlnum; bandvertnum < bandvertnnd; bandvertnum ++) bandedgetab[bandparttax[bandvertnum]] ++; /* Fill array of anchors' degrees */ for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* Set bandverttax for anchors vertices and pre-set bandedgetab */ Gnum degrval; /* to be able to quickly fill bandedgetax in next loop */ Gnum dispval; degrval = bandedgetab[domnnum]; dispval = bandverttax[bandvertnnd + domnnum]; if (banddegrmax < degrval) /* Update maximum degree value */ banddegrmax = degrval; bandverttax[bandvertnnd + domnnum + 1] = dispval + degrval; bandedgetab[domnnum] = dispval; /* Start index for edges to vertices of last layer */ } if (pfixtax != NULL) { /* We have fixed vertices */ memFree (termhashtab); /* Free group leader */ for (bandvertnum = bandgrafptr->s.baseval, bandedgenum = 0; bandvertnum < bandvertnnd; bandvertnum ++) { /* Link anchors to vertices */ for ( ; bandedgenum < bandverttax[bandvertnum + 1]; bandedgenum ++) { Gnum bandvertend; bandvertend = bandedgetax[bandedgenum]; if (bandvertend >= bandvertnnd) { /* If it is an edge to an anchor */ Gnum partval; /* Add the symmetric edge from the anchor */ Gnum edloval; partval = bandvertend - bandvertnnd; edloval = bandedlotax[bandedgenum]; bandedlotax[bandedgetab[partval]] = edloval; bandedlosum += edloval; bandedgetax[bandedgetab[partval] ++] = bandvertnum; } } } } else { if (bandedlotax != NULL) { /* If graph has edge weights */ Gnum edgenum; Gnum edgennd; for (bandvertnum = bandgrafptr->s.baseval; /* For all vertices not belonging to last level */ bandvertnum < bandvertlvlnum; bandvertnum ++) { Gnum vertnum; Gnum bandedgenum; vertnum = bandvnumtax[bandvertnum]; bandedgenum = bandverttax[bandvertnum]; memCpy (&bandedlotax[bandedgenum], &edlotax[verttax[vertnum]], /* Copy edge load array */ (bandverttax[bandvertnum + 1] - bandedgenum) * sizeof (Gnum)); } /* Vertices of last level have been processed before */ for (edgenum = bandverttax[bandvertnnd], /* Loads of anchor edges are all 1's too */ edgennd = bandverttax[bandvertnnd + domnnbr]; edgenum < edgennd; edgenum ++) bandedlotax[edgenum] = 1; } for (bandvertnum = bandvertlvlnum; bandvertnum < bandvertnnd; /* We do not have fixed vertices */ bandvertnum ++) { /* Link anchors to vertices of last level */ Anum partval; partval = bandparttax[bandvertnum]; bandedgetax[bandedgetab[partval] ++] = bandvertnum; if (bandedlotax != NULL) bandedlotax[bandedgetab[partval] - 1] = 1; bandedlosum ++; } #ifdef SCOTCH_DEBUG_KGRAPH2 for (domnnum = 0; domnnum < domnnbr; domnnum ++) { if (bandedgetab[domnnum] != bandverttax[bandvertnnd + 1 + domnnum]) { errorPrint ("kgraphBand: internal error (5)"); return (1); } } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } bandedgenbr = bandgrafptr->s.verttax[bandvertnnd + domnnbr] - bandgrafptr->s.baseval; /* Set real number of edges */ bandgrafptr->s.vendtax = bandgrafptr->s.verttax + 1; /* Band graph is compact */ bandgrafptr->s.velosum = grafptr->s.velosum + domnnbr * bandvertancadj; bandgrafptr->s.edgenbr = bandedgenbr; if (bandedlotax == NULL) bandedlosum = bandedgenbr; bandgrafptr->s.edlosum = bandedlosum; bandgrafptr->s.degrmax = banddegrmax; /* Local maximum degree will be turned into global maximum degree */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (graphCheck (&bandgrafptr->s) != 0) { errorPrint ("kgraphBand: inconsistent graph data (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (pfixtax != NULL) kgraphFron (bandgrafptr); bandgrafptr->m.domntab = grafptr->m.domntab; /* Use original domain array for computing costs and checking mapping consistency */ kgraphCost (bandgrafptr); #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (bandgrafptr) != 0) { errorPrint ("kgraphBand: inconsistent graph data (2)"); bandgrafptr->m.domntab = NULL; return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ bandgrafptr->m.domntab = NULL; /* Band graph mapping domain array not available yet */ *bandvnumptr = bandvnumtax; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_band.h000066400000000000000000000057771514310134000263460ustar00rootroot00000000000000/* Copyright 2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_band.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the k-way band graph extraction **/ /** routine. **/ /** **/ /** DATES : # Version 6.0 : from : 15 sep 2014 **/ /** to : 15 sep 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing terminal domain numbers. +*/ #define KGRAPHBANDHASHPRIME 17 /*+ Prime number for hashing +*/ /* ** The type and structure definitions. */ /*+ Hash structure for linking fixed vertex domains with non-fixed vertex domains. +*/ typedef struct KgraphBandHash_ { Anum termnum; /*+ Terminal domain number +*/ Anum domnnum; /*+ Domain number in domain array +*/ } KgraphBandHash; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_check.c000066400000000000000000000220571514310134000265000ustar00rootroot00000000000000/* Copyright 2010,2011,2013,2014,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the mapping graph **/ /** consistency checking routine. **/ /** **/ /** DATES : # Version 5.1 : from : 13 jul 2010 **/ /** to : 13 jul 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 14 sep 2014 **/ /** # Version 7.0 : from : 11 jul 2021 **/ /** to : 17 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" /*************************/ /* */ /* These routines handle */ /* mapping graphs. */ /* */ /*************************/ /* This routine checks the consistency ** of the given mapping graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int kgraphCheck ( const Kgraph * restrict const grafptr) { int * restrict flagtax; /* Frontier flag array */ Gnum vertnum; /* Number of current vertex */ Gnum fronnum; /* Number of frontier vertex */ Gnum vfixnbr; /* Number of fixed vertices */ Gnum * restrict comploadtab; Gnum commload; Gnum edloval; Anum domnnum; int o; const Gnum baseval = grafptr->s.baseval; const Gnum vertnnd = grafptr->s.vertnnd; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Anum * restrict const parttax = grafptr->m.parttax; const ArchDom * restrict const domntab = grafptr->m.domntab; const Arch * const archptr = grafptr->m.archptr; const Anum * restrict const pfixtax = grafptr->pfixtax; const Gnum * restrict const frontab = grafptr->frontab; if (&grafptr->s != grafptr->m.grafptr) { errorPrint ("kgraphCheck: invalid mapping graph"); return (1); } if (mapCheck (&grafptr->m) != 0) { errorPrint ("kgraphCheck: invalid mapping (1)"); return (1); } if (grafptr->r.m.parttax != NULL) { /* If old mapping provided */ if (mapCheck (&grafptr->r.m) != 0) { errorPrint ("kgraphCheck: invalid mapping (2)"); return (1); } } if (memAllocGroup ((void **) (void *) &comploadtab, (size_t) (grafptr->m.domnnbr * sizeof (Gnum)), &flagtax, (size_t) (grafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("kgraphCheck: out of memory"); return (1); } memSet (comploadtab, 0, grafptr->m.domnnbr * sizeof (Gnum)); memSet (flagtax, ~0, grafptr->s.vertnbr * sizeof (Gnum)); flagtax -= baseval; o = 1; /* Assume failure when checking */ vfixnbr = 0; /* Assume no fixed vertices */ if (pfixtax != NULL) { for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { Anum domnnum; Anum termnum; domnnum = parttax[vertnum]; termnum = pfixtax[vertnum]; if (termnum != ~0) { /* If vertex is fixed */ if (termnum < 0) { /* If invalid terminal number */ errorPrint ("kgraphCheck: invalid fixed part value"); goto fail; } if (termnum != archDomNum (archptr, &grafptr->m.domntab[domnnum])) { errorPrint ("kgraphCheck: part index does not match fixed array"); goto fail; } vfixnbr ++; } } } if (vfixnbr != grafptr->vfixnbr) { errorPrint ("kgraphCheck: invalid number of fixed vertices"); goto fail; } if ((grafptr->fronnbr < 0) || (grafptr->fronnbr > grafptr->s.vertnbr)) { errorPrint ("kgraphCheck: invalid number of frontier vertices"); goto fail; } for (fronnum = 0; fronnum < grafptr->fronnbr; fronnum ++) { Gnum vertnum; Gnum edgenum; Anum partval; Anum flagval; vertnum = frontab[fronnum]; if ((vertnum < baseval) || (vertnum >= vertnnd)) { errorPrint ("kgraphCheck: invalid vertex index in frontier array"); goto fail; } if (flagtax[vertnum] != ~0) { errorPrint ("kgraphCheck: duplicate vertex in frontier array"); goto fail; } flagtax[vertnum] = 0; partval = parttax[vertnum]; for (edgenum = verttax[vertnum], flagval = 0; edgenum < vendtax[vertnum]; edgenum ++) flagval |= parttax[edgetax[edgenum]] ^ partval; /* Flag set if neighbor part differs from vertex part */ if (flagval == 0) { errorPrint ("kgraphCheck: invalid vertex in frontier array"); goto fail; } } commload = 0; edloval = 1; /* Assume edges are not weighted */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { Anum partval; /* Part of current vertex */ Gnum edgenum; /* Number of current edge */ Gnum commcut; partval = parttax[vertnum]; comploadtab[partval] += (velotax == NULL) ? 1 : velotax[vertnum]; commcut = 0; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Anum partend; if (edlotax != NULL) edloval = edlotax[edgenum]; partend = parttax[edgetax[edgenum]]; if (partend == partval) /* If same part, no communication load */ continue; commcut += edloval * archDomDist (archptr, &domntab[partval], &domntab[partend]); /* Loads are accounted for twice */ } if ((commcut != 0) && (flagtax[vertnum] != 0)) { /* If vertex should be in frontier array */ errorPrint ("kgraphCheck: vertex should be in frontier array"); goto fail; } commload += commcut; } commload /= 2; if (commload != grafptr->commload) { errorPrint ("kgraphCheck: invalid communication load"); goto fail; } for (domnnum = 0; domnnum < grafptr->m.domnnbr; domnnum ++) { if (comploadtab[domnnum] != (grafptr->comploadavg[domnnum] + grafptr->comploaddlt[domnnum])) { errorPrint ("kgraphCheck: invalid computation load"); goto fail; } } o = 0; /* Everything turned well */ fail : memFree (comploadtab); /* Free group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_cost.c000066400000000000000000000162671514310134000264010ustar00rootroot00000000000000/* Copyright 2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_cost.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes the cost of k-way **/ /** partitions. **/ /** **/ /** DATES : # Version 7.0 : from : 16 jun 2023 **/ /** to : 16 jun 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" /***********************************/ /* */ /* Active graph handling routines. */ /* */ /***********************************/ /* This routine computes the cost of the ** current partition. ** It returns: ** - VOID : in all cases. */ void kgraphCost ( Kgraph * restrict const grafptr) { Gnum vertnum; Gnum * restrict compload; Gnum commload; double fdomwgt; Gnum fvelsum; Gnum velosum; Anum domnnum; ArchDom domndat; double domnrat; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Arch * restrict const archptr = grafptr->m.archptr; const ArchDom * restrict const domntab = grafptr->m.domntab; Anum * restrict const parttax = grafptr->m.parttax; const Anum domnnbr = grafptr->m.domnnbr; commload = 0; compload = grafptr->comploaddlt; /* Use delta array as temporary storage */ memSet (compload, 0, domnnbr * sizeof (Gnum)); for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum edgenum; Gnum edgennd; Anum partval; /* Part of current vertex */ Anum partlst; /* Part of last vertex for which a distance was computed */ Anum distlst; /* Last distance computed */ Gnum veloval; partval = parttax[vertnum]; partlst = -1; /* Invalid part to recompute distance */ distlst = -1; /* To prevent compiler from yelling */ #ifdef SCOTCH_DEBUG_KGRAPH2 if ((partval < 0) || (partval >= domnnbr)) { errorPrint ("kgraphCost: invalid part number (1)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ veloval = (velotax != NULL) ? velotax[vertnum] : 1; compload[partval] += veloval; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { Gnum vertend; Anum partend; vertend = edgetax[edgenum]; if (vertend > vertnum) /* Compute loads only once */ continue; partend = parttax[vertend]; #ifdef SCOTCH_DEBUG_KGRAPH2 if ((partend < 0) || (partend >= domnnbr)) { errorPrint ("kgraphCost: invalid part number (2)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (partval != partend) { if (partend != partlst) { distlst = archDomDist (archptr, &domntab[partval], &domntab[partend]); partlst = partend; } commload += (Gnum) distlst * ((edlotax != NULL) ? edlotax[edgenum] : 1); } } } grafptr->commload = commload; fdomwgt = 0; fvelsum = 0; if ((grafptr->s.flagval & KGRAPHHASANCHORS) != 0) { const Gnum vertancnnd = grafptr->s.vertnnd - domnnbr; Gnum veloval; for (domnnum = 0; domnnum < domnnbr; domnnum ++) if ((grafptr->s.verttax[vertancnnd + domnnum + 1] - grafptr->s.verttax[vertancnnd + domnnum]) != 0) continue; if (domnnum != domnnbr) { for (domnnum = 0; domnnum < domnnbr; domnnum ++) { if ((grafptr->s.verttax[vertancnnd + domnnum + 1] - grafptr->s.verttax[vertancnnd + domnnum]) == 0) { veloval = grafptr->s.velotax[vertancnnd + domnnum]; fdomwgt += (double) archDomWght (archptr, &domntab[domnnum]); fvelsum += veloval; compload[domnnum] -= grafptr->comploadavg[domnnum] = veloval; #ifdef SCOTCH_DEBUG_KGRAPH2 if (compload[domnnum] != 0) { errorPrint ("kgraphCost: invalid load difference"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } } } archDomFrst (archptr, &domndat); domnrat = (double) archDomWght (archptr, &domndat); domnrat -= fdomwgt; velosum = grafptr->s.velosum - fvelsum; for (domnnum = 0; domnnum < domnnbr; domnnum ++) { compload[domnnum] -= grafptr->comploadavg[domnnum] = (Gnum) ((double) velosum * ((double) archDomWght (archptr, &domntab[domnnum]) / domnrat)); } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_bd.c000066400000000000000000000370221514310134000266430ustar00rootroot00000000000000/* Copyright 2010,2011,2014,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_bd.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a partition of **/ /** the given k-way mapping graph by **/ /** creating a band graph of given **/ /** width around the current frontier, **/ /** computing an improved partition of the **/ /** band graph, and projecting back the **/ /** obtained frontier to the original **/ /** graph. **/ /** **/ /** DATES : # Version 6.0 : from : 05 jan 2010 **/ /** to : 21 may 2018 **/ /** # Version 6.1 : from : 30 jun 2021 **/ /** to : 16 jul 2021 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 30 nov 2024 **/ /** **/ /** NOTES : # Since only edges from local vertices **/ /** to local anchors are created in **/ /** kdgraphBand(), the communication cost **/ /** might be wrong if a local vertex of **/ /** the last layer is linked to a remote **/ /** vertex of different part which was **/ /** not in the band graph. Hence, commun- **/ /** ication costs have to be recomputed **/ /** from scratch. **/ /** **/ /** # This code derives from the code of **/ /** bdgraph_bipart_bd.c in version 5.1 **/ /** for direct k-way partitioning. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "arch.h" #include "graph.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_map_bd.h" #include "kgraph_map_st.h" /* ** The static variables. */ /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a band graph of given ** width around the current frontier and applies ** partitioning routines to it. ** The graph is not guaranteed to be balanced ** at all. ** It returns: ** - 0 : if the band graph could be computed. ** - !0 : on error. */ int kgraphMapBd ( Kgraph * const orggrafptr, /*+ Graph +*/ const KgraphMapBdParam * const paraptr) /*+ Method parameters +*/ { Kgraph bndgrafdat; /* Partitioning band graph structure */ const Gnum * restrict bndverttax; const Gnum * restrict bndvendtax; const Gnum * restrict bndedgetax; const Gnum * restrict bndedlotax; const Anum * restrict bndparttax; const ArchDom * restrict bnddomntab; Gnum bndvertancnnd; /* End of local vertex array, without anchors */ Gnum bndvertnum; Gnum bndvertlvlnum; /* Based number of first band vertex in last layer */ Gnum orgfronnum; int * restrict orgflagtab; Gnum commload; Gnum commload2; /* Twice twice (4 times) the internal communication load of last layer */ Anum domnnum; Gnum * restrict bndvnumtax; /* Orignal numbers of vertices in band graph */ Gnum * vertnbrtab; Gnum vertnum; int o; const Gnum * restrict const orgverttax = orggrafptr->s.verttax; const Gnum * restrict const orgvendtax = orggrafptr->s.vendtax; const Gnum * restrict const orgedgetax = orggrafptr->s.edgetax; const Gnum * restrict const orgedlotax = orggrafptr->s.edlotax; const Arch * restrict const archptr = orggrafptr->m.archptr; const Anum domnnbr = orggrafptr->m.domnnbr; Gnum * restrict const orgparttax = orggrafptr->m.parttax; Gnum * restrict const orgfrontab = orggrafptr->frontab; if (orggrafptr->fronnbr == 0) /* If no separator vertices, apply strategy to full (original) graph */ return (kgraphMapSt (orggrafptr, paraptr->stratorg)); if (kgraphBand (orggrafptr, paraptr->distmax, &bndgrafdat, &bndvertlvlnum, &bndvnumtax) != 0) { errorPrint ("kgraphMapBd: cannot create band graph"); return (1); } if ((vertnbrtab = memAlloc (domnnbr * sizeof (Gnum))) == NULL) { errorPrint ("kgraphMapBd: out of memory (1)"); memFree (bndvnumtax + bndgrafdat.s.baseval); kgraphExit (&bndgrafdat); return (1); } memSet (vertnbrtab, 0, domnnbr * sizeof (Gnum)); for (vertnum = orggrafptr->s.baseval; vertnum < orggrafptr->s.vertnnd; vertnum ++) vertnbrtab[orgparttax[vertnum]] ++; /* TODO check optimize? */ bndvertancnnd = bndgrafdat.s.vertnnd - domnnbr; for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* For all anchor domains */ Gnum vertnum; vertnum = bndvertancnnd + domnnum; if (((bndgrafdat.s.verttax[vertnum + 1] - bndgrafdat.s.verttax[vertnum]) == 0) && (vertnbrtab[domnnum] != 0)) break; } memFree (vertnbrtab); if (domnnum != domnnbr) { /* If graph is too small to have any usable anchors, apply org strategy */ memFree (bndvnumtax + bndgrafdat.s.baseval); kgraphExit (&bndgrafdat); return (kgraphMapSt (orggrafptr, paraptr->stratorg)); } bndgrafdat.m.domntab = orggrafptr->m.domntab; /* Transfer mapping domain array to band graph */ orggrafptr->m.domntab = NULL; o = kgraphMapSt (&bndgrafdat, paraptr->stratbnd); /* Partition band graph */ orggrafptr->m.domntab = bndgrafdat.m.domntab; /* Transfer (potentially updated) mapping domain array back to original graph */ orggrafptr->m.domnnbr = bndgrafdat.m.domnnbr; orggrafptr->m.domnmax = bndgrafdat.m.domnmax; bndgrafdat.m.domntab = NULL; if (o != 0) { errorPrint ("kgraphMapBd: cannot partition band graph"); memFree (bndvnumtax + bndgrafdat.s.baseval); kgraphExit (&bndgrafdat); return (1); } if (bndgrafdat.m.domnnbr != orggrafptr->m.domnnbr) { errorPrint ("kgraphMapBd: change in band graph number of parts not supported"); memFree (bndvnumtax + bndgrafdat.s.baseval); kgraphExit (&bndgrafdat); return (1); } memCpy (orggrafptr->comploaddlt, bndgrafdat.comploaddlt, domnnbr * sizeof (Gnum)); /* Propagate back imbalance information */ bndparttax = bndgrafdat.m.parttax; for (bndvertnum = bndgrafdat.s.baseval; bndvertnum < bndvertancnnd; bndvertnum ++) /* Update part array of all vertices except anchors */ orgparttax[bndvnumtax[bndvertnum]] = bndparttax[bndvertnum]; bndverttax = bndgrafdat.s.verttax; bndvendtax = bndgrafdat.s.vendtax; bndedgetax = bndgrafdat.s.edgetax; bndedlotax = bndgrafdat.s.edlotax; bnddomntab = orggrafptr->m.domntab; /* Mapping domain array is shared between original and band graphs */ commload = 0; for (bndvertnum = bndgrafdat.s.baseval; bndvertnum < bndvertlvlnum; bndvertnum ++) { /* For all vertices of band graph save for last layer */ Gnum bndedgenum; Gnum bndedgennd; Anum bndpartval; Anum bndpartlst; /* Part of last vertex for which a distance was computed */ Anum bnddistlst; /* Last distance computed */ bndpartval = bndparttax[bndvertnum]; bndpartlst = -1; /* Invalid part to recompute distance */ bnddistlst = -1; /* To prevent compiler from yelling */ for (bndedgenum = bndverttax[bndvertnum], bndedgennd = bndvendtax[bndvertnum]; bndedgenum < bndedgennd; bndedgenum ++) { Gnum bndpartend; bndpartend = bndparttax[bndedgetax[bndedgenum]]; if (bndpartval != bndpartend) { /* TODO maybe can be optimized */ Anum bnddistval; bnddistval = (bndpartend != bndpartlst) ? archDomDist (archptr, &bnddomntab[bndpartval], &bnddomntab[bndpartend]) : bnddistlst; bndpartlst = bndpartend; bnddistlst = bnddistval; commload += (Gnum) bnddistval * ((bndedlotax != NULL) ? bndedlotax[bndedgenum] : 1); } } } for ( ; bndvertnum < bndvertancnnd; bndvertnum ++) { /* For all vertices of last layer, remove communication loads to band vertices once */ Gnum bndedgenum; Gnum bndedgennd; Anum bndpartval; Anum bndpartlst; /* Part of last vertex for which a distance was computed */ Anum bnddistlst; /* Last distance computed */ bndpartval = bndparttax[bndvertnum]; bndpartlst = -1; /* Invalid part to recompute distance */ bnddistlst = -1; /* To prevent compiler from yielding */ for (bndedgenum = bndverttax[bndvertnum], bndedgennd = bndvendtax[bndvertnum] - 1; /* "-1" to avoid anchor edges */ bndedgenum < bndedgennd; bndedgenum ++) { Gnum bndpartend; bndpartend = bndparttax[bndedgetax[bndedgenum]]; if (bndpartval != bndpartend) { Anum bnddistval; bnddistval = (bndpartend != bndpartlst) ? archDomDist (archptr, &bnddomntab[bndpartval], &bnddomntab[bndpartend]) : bnddistlst; bndpartlst = bndpartend; bnddistlst = bnddistval; commload -= (Gnum) bnddistval * ((bndedlotax != NULL) ? bndedlotax[bndedgenum] : 1); /* Remove communication loads to band graph vertices once because afterwards they will be accounted for twice */ } } } if ((orgflagtab = memAlloc (kgraphMapBdFlagSize (orggrafptr->s.vertnnd) * sizeof (int))) == NULL) { errorPrint ("kgraphMapBd: out of memory (2)"); return (1); } memSet (orgflagtab, 0, kgraphMapBdFlagSize (orggrafptr->s.vertnnd) * sizeof (int)); /* Set vertices as not already considered */ orgfronnum = 0; commload2 = 0; for (bndvertnum = bndgrafdat.s.baseval; bndvertnum < bndvertancnnd; bndvertnum ++) { /* For all vertices */ Gnum orgedgenum; Gnum orgedgennd; Gnum orgvertnum; Anum orgpartval; int orgflagval; orgvertnum = bndvnumtax[bndvertnum]; orgpartval = bndparttax[bndvertnum]; orgflagval = 0; /* Assume vertex does not belong to the frontier */ for (orgedgenum = orgverttax[orgvertnum], orgedgennd = orgvendtax[orgvertnum]; orgedgenum < orgedgennd; orgedgenum ++) { Gnum orgvertend; Gnum orgpartend; Anum orgdistval; orgvertend = orgedgetax[orgedgenum]; orgpartend = orgparttax[orgvertend]; orgdistval = archDomDist (archptr, &bnddomntab[orgpartval], &bnddomntab[orgpartend]); if (orgpartval != orgpartend) { orgflagval = 1; commload2 += ((orgedlotax != NULL) ? orgedlotax[orgedgenum] : 1) * orgdistval; /* Internal load to band and original graph vertices are accounted for twice */ if ((orgvertend < orggrafptr->s.vertnnd) && (kgraphMapBdFlagVal (orgflagtab, orgvertend) == 0)) { orgfrontab[orgfronnum ++] = orgvertend; kgraphMapBdFlagSet (orgflagtab, orgvertend); } } } if ((orgflagval != 0) && (kgraphMapBdFlagVal (orgflagtab, orgvertnum) == 0)) orgfrontab[orgfronnum ++] = orgvertnum; kgraphMapBdFlagSet (orgflagtab, orgvertnum); /* Set vertex as processed anyway */ } commload += 2 * commload2; /* Add twice the communication load of original graph edges and once the one of band edges (one removed before) */ if (orggrafptr->pfixtax != NULL) { /* Add fixed vertices with fixed neighbours only in the frontier array */ Gnum vertnum; for (vertnum = orggrafptr->s.baseval; vertnum < orggrafptr->s.vertnnd; vertnum ++) { Gnum partval; Gnum edgenum; if ((orggrafptr->pfixtax[vertnum] == -1) || /* If it is not a fixed vertex */ (kgraphMapBdFlagVal (orgflagtab, vertnum) != 0)) /* Or has already been processed */ continue; /* Skip it */ partval = orgparttax[vertnum]; for (edgenum = orgverttax[vertnum]; edgenum < orgvendtax[vertnum]; edgenum ++) { if (orgparttax[orgedgetax[edgenum]] != partval) { /* If first vertex belongs to frontier */ orgfrontab[orgfronnum] = vertnum; orgfronnum ++; break; } } } } orggrafptr->fronnbr = orgfronnum; orggrafptr->commload = commload / 2; memFree (orgflagtab); memFree (bndvnumtax + bndgrafdat.s.baseval); kgraphExit (&bndgrafdat); kgraphCost (orggrafptr); #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (orggrafptr) != 0) { errorPrint ("kgraphMapBd: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_bd.h000066400000000000000000000066371514310134000266600ustar00rootroot00000000000000/* Copyright 2010,2011,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_bd.h **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the band graph partitioning **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 6.0 : from : 05 jan 2010 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Flag array accessors. +*/ #define kgraphMapBdFlagSize(n) (((n) + (sizeof (int) << 3) - 1) / (sizeof (int) << 3)) #define kgraphMapBdFlagVal(a,n) (((a)[(n) / (sizeof (int) << 3)] >> ((n) & ((sizeof (int) << 3) - 1))) & 1) #define kgraphMapBdFlagSet(a,n) (a)[(n) / (sizeof (int) << 3)] |= (1 << ((n) & ((sizeof (int) << 3) - 1))) /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct KgraphMapBdParam_ { INT distmax; /*+ Width of band surrounding the frontier +*/ Strat * stratbnd; /*+ Strategy for band graph +*/ Strat * stratorg; /*+ Strategy for original graph +*/ } KgraphMapBdParam; /* ** The function prototypes. */ int kgraphMapBd (Kgraph * const, const KgraphMapBdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_cp.c000066400000000000000000000100451514310134000266540ustar00rootroot00000000000000/* Copyright 2012,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_cp.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This method copies a given old mapping **/ /** as a mapping result. **/ /** **/ /** DATES : # Version 6.0 : from : 16 jan 2012 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "parser.h" #include "kgraph.h" #include "kgraph_map_cp.h" #include "kgraph_map_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the k-way partitioning. ** It returns: ** - 0 : if k-partition could be computed. ** - 1 : on error. */ /* TODO handle the case when the old and the new architectures are different. */ int kgraphMapCp ( Kgraph * restrict const grafptr) /*+ Graph +*/ { const Anum * restrict const pfixtax = grafptr->pfixtax; if (grafptr->r.m.parttax == NULL) { /* If we do not have an old partition */ errorPrint ("kgraphMapCp: inconsistent old mapping data"); return (1); } if (mapCopy (&grafptr->m, &grafptr->r.m) != 0) { errorPrint ("kgraphMapCp: cannot copy old mapping"); return (1); } if (pfixtax != NULL) { /* If we have fixed vertices */ if (mapMerge (&grafptr->m, pfixtax) != 0) { errorPrint ("kgraphMapCp: cannot merge with fixed vertices"); return (1); } } kgraphFron (grafptr); kgraphCost (grafptr); #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (grafptr) != 0) { errorPrint ("kgraphMapCp: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_cp.h000066400000000000000000000052411514310134000266630ustar00rootroot00000000000000/* Copyright 2012,2014,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_cp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the mapping method that copy the **/ /** old mapping has a mapping result. **/ /** **/ /** DATES : # Version 6.0 : from : 16 jan 2012 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int kgraphMapCp (Kgraph * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_df.c000066400000000000000000000624541514310134000266560ustar00rootroot00000000000000/* Copyright 2010-2012,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_df.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a k-way partition **/ /** of the given mapping graph by applying **/ /** a diffusion method to what is assumed **/ /** to be a band graph. **/ /** **/ /** DATES : # Version 6.0 : from : 05 jan 2010 **/ /** to : 04 nov 2012 **/ /** # Version 7.0 : from : 03 aug 2018 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_KGRAPH_MAP_DF #include "module.h" #include "common.h" #include "arch.h" #include "graph.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_map_df.h" /************************/ /* */ /* The sorting routine. */ /* */ /************************/ /* This routine sorts an array of KgraphMapDfVertex ** values in descending order by their amount of liquid. ** By nature of the sorting algorithm, data are left in ** place in case of equality. Therefore, the original ** part of the vertex, which is put first in the sort ** array during the diffusion process, is always preserved ** when all liquid amounts are equal. ** It returns: ** - VOID : in all cases. */ #define INTSORTQUAL static #define INTSORTNAME kgraphMapDfSort #define INTSORTSIZE (sizeof (KgraphMapDfSort)) #define INTSORTSWAP(p,q) do { \ KgraphMapDfSort t; \ t = *((KgraphMapDfSort *) (p)); \ *((KgraphMapDfSort *) (p)) = *((KgraphMapDfSort *) (q)); \ *((KgraphMapDfSort *) (q)) = t; \ } while (0) #define INTSORTCMP(p,q) (((KgraphMapDfSort *) (p))->diffval > ((KgraphMapDfSort *) (q))->diffval) #include "common_sort.c" #undef INTSORTQUAL #undef INTSORTNAME #undef INTSORTSIZE #undef INTSORTSWAP #undef INTSORTCMP /********************************/ /* */ /* The sequential loop routine. */ /* */ /********************************/ /* This routine computes the diffusion of two ** liquids on the given part of the bipartition ** graph. ** It returns: ** - 0 : if algorithm went up to last pass. ** - !0 : on error. */ /* Tests flags for mapping TODO remove it after performance tests */ /* #define KGRAPHDIFFMAPPNONE */ /* No special code for mapping */ /* #define KGRAPHDIFFMAPPMORE */ /* Give more liquid on expensive architecture edges */ #define KGRAPHDIFFMAPPLESS /* Give less liquid on expensive architecture edges */ static void kgraphMapDfLoop ( ThreadDescriptor * restrict const descptr, KgraphMapDfData * restrict const loopptr) { KgraphMapDfVertex * restrict difotax; /* Old diffusion value array */ KgraphMapDfVertex * restrict difntax; /* New diffusion value array */ KgraphMapDfSort * restrict sorttab; /* Liquid sort array */ Gnum vertbas; /* Range of non-anchor vertices to process */ Gnum vertnnd; Gnum vertnum; Anum domnbas; /* Range of anchor vertices to process */ Anum domnnnd; Anum domnnum; Gnum passnum; int velsmsk; int mappflag = 0; /* Flag set if we are computing a mapping */ #ifndef KGRAPHMAPDFNOTHREAD const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); #else /* KGRAPHMAPDFNOTHREAD */ const int thrdnbr = 1; const int thrdnum = 0; #endif /* KGRAPHMAPDFNOTHREAD */ const Kgraph * restrict const grafptr = loopptr->grafptr; const Gnum baseval = grafptr->s.baseval; float * restrict const vanctab = loopptr->vanctab; float * restrict const valotab = loopptr->valotab; /* Fraction of load to leak */ Gnum * restrict const velstax = loopptr->velstax; const Arch * restrict const archptr = grafptr->m.archptr; const Anum domnnbr = grafptr->m.domnnbr; Anum * restrict const parttax = grafptr->m.parttax; const float crloval = (float) grafptr->r.crloval; const Anum * restrict const parotax = grafptr->r.m.parttax; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * const edgetax = grafptr->s.edgetax; const Gnum * const edlotax = grafptr->s.edlotax; const Gnum vancnbr = grafptr->s.vertnbr - domnnbr; const Gnum vancnnd = grafptr->s.vertnnd - domnnbr; domnbas = DATASCAN (domnnbr, thrdnbr, thrdnum); domnnnd = DATASCAN (domnnbr, thrdnbr, thrdnum + 1); vertbas = baseval + DATASCAN (vancnbr, thrdnbr, thrdnum); vertnnd = baseval + DATASCAN (vancnbr, thrdnbr, thrdnum + 1); sorttab = NULL; /* In case of abort */ velsmsk = 1; /* Assume no anchors are isolated */ if (edlotax != NULL) { for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* For all local non-anchor vertices */ Gnum velssum; Gnum edgenum; Gnum edgennd; #ifdef SCOTCH_DEBUG_KGRAPH2 if ((vendtax[vertnum] - verttax[vertnum]) == 0) { /* Non-anchor vertices should not be isolated */ errorPrint ("kgraphMapDfLoop: internal error (1)"); loopptr->abrtval = 1; goto abort; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum], velssum = 0; edgenum < edgennd; edgenum ++) velssum += edlotax[edgenum]; velstax[vertnum] = velssum; } for (domnnum = domnbas; domnnum < domnnnd; domnnum ++) { /* For all local anchor vertices */ Gnum edgenum; Gnum edgennd; Gnum velssum; for (edgenum = verttax[vancnnd + domnnum], edgennd = vendtax[vancnnd + domnnum], velssum = 0; edgenum < edgennd; edgenum ++) velssum += edlotax[edgenum]; velstax[vancnnd + domnnum] = velssum; velsmsk &= (velssum != 0); } } else { for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* For all local non-anchor vertices */ #ifdef SCOTCH_DEBUG_KGRAPH2 if ((vendtax[vertnum] - verttax[vertnum]) == 0) { /* Non-anchor vertices should not be isolated */ errorPrint ("kgraphMapDfLoop: internal error (2)"); loopptr->abrtval = 1; goto abort; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ velstax[vertnum] = vendtax[vertnum] - verttax[vertnum]; } for (domnnum = domnbas; domnnum < domnnnd; domnnum ++) { /* For all local anchor vertices */ Gnum velssum; velssum = vendtax[vancnnd + domnnum] - verttax[vancnnd + domnnum]; /* Local degree of anchor vertices */ velstax[vancnnd + domnnum] = velssum; velsmsk &= (velssum != 0); } } if (velsmsk == 0) { /* If graph is too small to have any usable anchors */ loopptr->abrtval = 1; /* We will leave during the first iteration */ goto abort; } if ((sorttab = memAlloc (domnnbr * sizeof (KgraphMapDfSort))) == NULL) { /* Allocate here for memory affinity as it is a private array */ errorPrint ("kgraphMapDfLoop: out of memory"); loopptr->abrtval = 1; goto abort; } if (velotax == NULL) { for (domnnum = domnbas; domnnum < domnnnd; domnnum ++) valotab[domnnum] = 1.0F; } else { for (domnnum = domnbas; domnnum < domnnnd; domnnum ++) valotab[domnnum] = (float) velotax[vancnnd + domnnum]; } difntax = loopptr->difntax; difotax = loopptr->difotax; for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { difotax[vertnum].partval = parttax[vertnum]; /* Set initial part by default */ difotax[vertnum].diffval = difotax[vertnum].fdifval = difotax[vertnum].mdisval = difotax[vertnum].mdidval = difntax[vertnum].fdifval = difntax[vertnum].mdisval = difntax[vertnum].mdidval = 0.0F; } #ifndef KGRAPHMAPDFNOTHREAD threadBarrier (descptr); /* Make sure all of velstax is written */ #endif /* KGRAPHMAPDFNOTHREAD */ for (domnnum = domnbas, vertnum = vancnnd + domnbas; /* For all the subset of anchor vertices */ domnnum < domnnnd; domnnum ++, vertnum ++) { float vancval; Gnum comploadbal; /* Compload to reach to get wished balance */ if (velstax[vancnnd + domnnum] <= 0) { vancval = vanctab[domnnum] = 0.0F; velstax[vertnum] = -1; } else { comploadbal = grafptr->comploadavg[domnnum]; vancval = ((float) comploadbal - valotab[domnnum]) / (float) velstax[vancnnd + domnnum]; /* Amount of liquid to be added at each step */ vanctab[domnnum] = (float) comploadbal; } difotax[vertnum].diffval = vancval; /* Load anchor vertices for first pass */ difotax[vertnum].partval = difntax[vertnum].partval = domnnum; difntax[vertnum].diffval = /* In case of isolated anchors, do not risk overflow because of NaN */ difotax[vertnum].fdifval = difotax[vertnum].mdisval = difotax[vertnum].mdidval = difntax[vertnum].fdifval = difntax[vertnum].mdisval = difntax[vertnum].mdidval = 0.0F; /* Do not consider migration costs for anchors */ } #ifndef KGRAPHMAPDFNOTHREAD threadBarrier (descptr); #endif /* KGRAPHMAPDFNOTHREAD */ if (loopptr->abrtval == 1) { /* If process alone or some decided to quit */ memFree (sorttab); /* Free local array */ return; } #ifndef KGRAPHDIFFMAPPNONE if (! archPart (archptr)) mappflag = 1; #endif /* KGRAPHDIFFMAPPNONE */ passnum = loopptr->passnbr; for ( ; passnum > 0; passnum --) { /* For all passes */ KgraphMapDfVertex * difttax; /* Temporary swap value */ Gnum vertnum; float veloval; veloval = 1.0F; /* Assume no vertex loads */ for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* For all local regular vertices */ Gnum edgenum; Gnum edgennd; Gnum soplval; /* Load sum of edges going to vertex old part */ Gnum sfplval; /* Load sum of edges going to vertex of other parts */ Gnum dfplval; /* Load sum of edges going to vertex of other parts * distval */ float migrval; Anum partnbr; /* Number of active parts */ Anum partnum; float diffval; Anum partcur; partnbr = 1; /* Keep vertex in first place to preserve its part */ partcur = sorttab[0].partval = difotax[vertnum].partval; /* Always keep old part value */ sorttab[0].diffval = 0.0F; /* Assume at first it is null */ sorttab[0].edlosum = 0; /* Assume at first there are no loads */ sorttab[0].distval = 1; /* Do not take distval of our part into account */ for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { Gnum vertend; float diffval; float fdifval; float mdisval; float mdidval; Anum partval; Anum partnum; Gnum edloval; vertend = edgetax[edgenum]; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; partval = difotax[vertend].partval; diffval = difotax[vertend].diffval; /* Value is not yet scaled with respect to diffusion coefficient */ fdifval = difotax[vertend].fdifval; mdisval = difotax[vertend].mdisval; mdidval = difotax[vertend].mdidval; if ((mappflag == 1) && (partval != partcur)) diffval = fdifval; diffval *= (float) edloval * crloval; if (parotax != NULL) { if (difotax[vertnum].partval == parotax[vertend]) diffval += mdisval; else diffval += mdidval; } for (partnum = 0; partnum < partnbr; partnum ++) { if (sorttab[partnum].partval == partval) { sorttab[partnum].diffval += diffval; /* Accumulate contribution in slot */ sorttab[partnum].edlosum += edloval; goto endloop1; /* Do not consider creating a new slot */ } } sorttab[partnbr].partval = partval; /* Create new slot */ sorttab[partnbr].distval = ((mappflag == 1) && (partcur != partval)) ? archDomDist (archptr, &grafptr->m.domntab[partcur], &grafptr->m.domntab[partval]) : 1; sorttab[partnbr].diffval = diffval; sorttab[partnbr].edlosum = edloval; partnbr ++; endloop1 : ; } if (mappflag == 1) for (partnum = 0; partnum < partnbr; partnum ++) #ifdef KGRAPHDIFFMAPPMORE sorttab[partnum].diffval *= sorttab[partnum].distval; #else /* KGRAPHDIFFMAPPLESS */ sorttab[partnum].diffval /= sorttab[partnum].distval; #endif /* KGRAPHDIFFMAPPMORE */ if (partnbr > 1) /* If not interior vertex */ kgraphMapDfSort (sorttab, partnbr); /* Sort array by descending amounts */ soplval = 0; if (parotax != NULL) { for (partnum = 0; partnum < partnbr; partnum ++) { if (sorttab[partnum].partval == parotax[vertnum]) { soplval = sorttab[partnum].edlosum; break; } } } sfplval = 0; dfplval = 0; if (mappflag == 1) { /* We are doing a mapping */ for (partnum = 1; partnum < partnbr; partnum ++) { sfplval += sorttab[partnum].edlosum; #ifdef KGRAPHDIFFMAPPMORE dfplval += sorttab[partnum].edlosum * sorttab[partnum].distval; #else /* KGRAPHDIFFMAPPLESS */ dfplval += sorttab[partnum].edlosum / sorttab[partnum].distval; #endif /* KGRAPHDIFFMAPPMORE */ } } difntax[vertnum].partval = sorttab[0].partval; /* New part is part of most abundant liquid */ diffval = sorttab[0].diffval; /* Get amount of most abundant liquid */ if (velotax != NULL) /* Account for capacity of barrel */ veloval = (float) velotax[vertnum]; diffval -= veloval; /* Leak liquid from barrel */ if (diffval <= 0.0F) /* Amount of liquid cannot be negative */ diffval = 0.0F; migrval = ((soplval == 0) || (soplval == velstax[vertnum])) ? 0.0F : (float) grafptr->r.cmloval * ((grafptr->r.vmlotax != NULL) ? (float) grafptr->r.vmlotax[vertnum] : 1.0F); if (migrval > diffval) { migrval = diffval; diffval = 0; } else diffval -= migrval; diffval = diffval / ((float) velstax[vertnum] * crloval); if (isnan (diffval)) { /* If overflow occured */ #ifdef SCOTCH_DEBUG_KGRAPH2 errorPrintW ("kgraphMapDfLoop: overflow (1)"); #endif /* SCOTCH_DEBUG_KGRAPH2 */ loopptr->abrtval = 1; /* Threads need to halt */ goto abort; /* Skip computations but synchronize */ } if (parotax != NULL) { if (migrval == 0.0F) { difntax[vertnum].mdisval = difntax[vertnum].mdidval = 0.0F; } else { if (parotax[vertnum] == sorttab[0].partval) { difntax[vertnum].mdisval = migrval / (float) soplval; difntax[vertnum].mdidval = 0.0F; } else { difntax[vertnum].mdisval = 0.0F; difntax[vertnum].mdidval = migrval / (float) (velstax[vertnum] - soplval); } } } difntax[vertnum].diffval = diffval; if (dfplval != 0) difntax[vertnum].fdifval = diffval * sfplval / dfplval; else difntax[vertnum].fdifval = 0; } for (domnnum = domnbas, vertnum = vancnnd + domnbas; /* For all the subset of anchor vertices */ domnnum < domnnnd; domnnum ++, vertnum ++) { Gnum edgenum; Gnum edgennd; Anum partnbr; /* Number of active parts */ float diffval; partnbr = 1; /* Keep vertex in first place to preserve its part */ sorttab[0].partval = domnnum; /* Always keep initial part value */ sorttab[0].diffval = 0.0F; /* Assume at first it is null */ edgenum = verttax[vertnum]; edgennd = vendtax[vertnum]; if (edgenum == edgennd) /* If isolated anchor */ continue; /* Barrel is empty */ for ( ; edgenum < edgennd; edgenum ++) { /* For all edges except anchors */ Gnum vertend; float diffval; Anum partval; Anum partnum; vertend = edgetax[edgenum]; partval = difotax[vertend].partval; diffval = difotax[vertend].diffval; /* Value is not yet scaled with respect to diffusion coefficient */ diffval *= (float) ((edlotax != NULL) ? edlotax[edgenum] : 1); diffval *= crloval; for (partnum = 0; partnum < partnbr; partnum ++) { if (sorttab[partnum].partval == partval) { sorttab[partnum].diffval += diffval; /* Accumulate contribution in slot */ goto endloop2; /* Do not consider creating a new slot */ } } sorttab[partnbr].partval = partval; /* Create new slot */ sorttab[partnbr].diffval = diffval; partnbr ++; endloop2 : ; } if (partnbr > 1) /* If not interior vertex */ kgraphMapDfSort (sorttab, partnbr); /* Sort array by descending amounts */ diffval = sorttab[0].diffval; /* Get amount of most abundant liquid */ if (sorttab[0].partval != domnnum) /* Add liquid from tap to barrel */ diffval = vanctab[domnnum] - diffval; else diffval += vanctab[domnnum]; diffval = (diffval - valotab[domnnum]) / ((float) velstax[vertnum] * crloval); /* Add input and leak liquid from barrel */ if (diffval <= 0.0F) /* Amount of liquid cannot be negative */ diffval = 0.0F; if (isnan (diffval)) { /* If overflow occured */ #ifdef SCOTCH_DEBUG_KGRAPH2 errorPrintW ("kgraphMapDfLoop: overflow (2)"); #endif /* SCOTCH_DEBUG_KGRAPH2 */ loopptr->abrtval = 1; /* Threads need to halt */ goto abort; /* Skip computations but synchronize */ } difntax[vertnum].partval = domnnum; /* Anchor part is always domain part */ difntax[vertnum].diffval = diffval; } difttax = (KgraphMapDfVertex *) difntax; /* Swap old and new diffusion arrays */ difntax = (KgraphMapDfVertex *) difotax; /* Casts to prevent IBM compiler from yelling */ difotax = (KgraphMapDfVertex *) difttax; abort : ; /* If overflow occured, resume here */ #ifndef KGRAPHMAPDFNOTHREAD threadBarrier (descptr); #endif /* KGRAPHMAPDFNOTHREAD */ if (loopptr->abrtval == 1) /* If all threads need to abort */ break; } if (loopptr->abrtval == 0) { for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) /* Set new part distribution of local vertices */ parttax[vertnum] = difntax[vertnum].partval; } if (sorttab != NULL) memFree (sorttab); /* Free local array */ } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a k-way partition ** by diffusion across what is assumed ** to be a k-way band graph. ** It returns: ** - 0 : if the k-partition could be computed. ** - !0 : on error. */ int kgraphMapDf ( Kgraph * restrict const grafptr, /*+ Active graph +*/ const KgraphMapDfParam * const paraptr) /*+ Method parameters +*/ { KgraphMapDfData loopdat; const Gnum domnnbr = grafptr->m.domnnbr; const Gnum vertnbr = grafptr->s.vertnbr; #ifdef SCOTCH_DEBUG_KGRAPH1 if ((grafptr->s.flagval & KGRAPHHASANCHORS) == 0) { /* Method valid only if graph has anchors */ errorPrint ("kgraphMapDf: graph does not have anchors"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH1 */ if (memAllocGroup ((void **) (void *) &loopdat.vanctab, (size_t) (domnnbr * sizeof (float)), &loopdat.valotab, (size_t) (domnnbr * sizeof (Gnum)), &loopdat.velstax, (size_t) (vertnbr * sizeof (Gnum)), &loopdat.difntax, (size_t) (vertnbr * sizeof (KgraphMapDfVertex)), &loopdat.difotax, (size_t) (vertnbr * sizeof (KgraphMapDfVertex)), NULL) == NULL) { errorPrint ("kgraphMapDf: out of memory"); return (1); } loopdat.grafptr = grafptr; loopdat.velstax -= grafptr->s.baseval; loopdat.difntax -= grafptr->s.baseval; loopdat.difotax -= grafptr->s.baseval; loopdat.passnbr = paraptr->passnbr; loopdat.abrtval = 0; /* No one wants to abort yet */ #ifndef KGRAPHMAPDFNOTHREAD contextThreadLaunch (grafptr->contptr, (ThreadFunc) kgraphMapDfLoop, (void *) &loopdat); #else /* KGRAPHMAPDFNOTHREAD */ kgraphMapDfLoop (NULL, &loopdat); #endif /* KGRAPHMAPDFNOTHREAD */ memFree (loopdat.vanctab); /* Free group leader */ kgraphFron (grafptr); kgraphCost (grafptr); #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (grafptr) != 0) { errorPrint ("kgraphMapDf: internal error"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_df.h000066400000000000000000000127731514310134000266620ustar00rootroot00000000000000/* Copyright 2009-2012,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_ml.h **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the function **/ /** declarations for the diffusion scheme **/ /** k-partitioning method. **/ /** **/ /** DATES : # Version 6.0 : from : 22 dec 2009 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 03 aug 2018 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Small non-zero float value. */ #define KGRAPHMAPDFEPSILON (1.0F / (float) (GNUMMAX)) /*+ Sign masking operator. +*/ #define KGRAPHMAPDFGNUMSGNMSK(i) ((Gnum) 0 - (((Gunum) (i)) >> (sizeof (Gnum) * 8 - 1))) /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct KgraphMapDfParam_ { INT passnbr; /*+ Number of passes to do +*/ double cdifval; /*+ Coefficient of diffused load +*/ double cremval; /*+ Coefficient of remaining load +*/ } KgraphMapDfParam; /*+ The complementary vertex structure. +*/ typedef struct KgraphMapDfVertex_ { Anum partval; /*+ Type of liquid in barrel +*/ float diffval; /*+ Value to be diffused to everybody +*/ float fdifval; /*+ Value to be diffused to other parts for mapping +*/ float mdisval; /*+ Value to be diffused to vertnum if parotax[vertnum] == partval +*/ float mdidval; /*= Value to be diffused to vertnum else +*/ } KgraphMapDfVertex; /*+ The sort structure. +*/ typedef struct KgraphMapDfSort_ { Anum partval; /*+ Type of liquid in barrel +*/ float diffval; /*+ Value to be diffused +*/ Anum distval; /*+ Distance value +*/ Gnum edlosum; /*+ Sum of edge loads +*/ } KgraphMapDfSort; /*+ The loop routine parameter structure. It contains the thread-independent data. +*/ typedef struct KgraphMapDfData_ { const Kgraph * grafptr; /*+ Graph to work on +*/ float * vanctab; float * valotab; /*+ Fraction of load to leak +*/ Gnum * velstax; /*+ Vertex edge load sum array +*/ KgraphMapDfVertex * difntax; /*+ New diffusion value array +*/ KgraphMapDfVertex * difotax; /*+ Old diffusion value array +*/ int passnbr; /*+ Number of passes +*/ volatile int abrtval; /*+ Abort value +*/ } KgraphMapDfData; /* ** The function prototypes. */ #ifdef SCOTCH_KGRAPH_MAP_DF static void kgraphMapDfSort (void * const, const INT); static void kgraphMapDfLoop (ThreadDescriptor * restrict const, KgraphMapDfData * restrict const); #endif /* SCOTCH_KGRAPH_MAP_DF */ int kgraphMapDf (Kgraph * restrict const, const KgraphMapDfParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_ex.c000066400000000000000000000454021514310134000266730ustar00rootroot00000000000000/* Copyright 2011,2013,2014,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_ex.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tries to balance the **/ /** subgraphs of the partition as best as **/ /** it can. **/ /** **/ /** DATES : # Version 6.0 : from : 27 may 2011 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 11 jul 2021 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_KGRAPH_MAP_EX #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_map_ex.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the balanced mapping. ** It returns: ** - 0 : if mapping could be computed. ** - 1 : on error. */ int kgraphMapEx ( Kgraph * const grafptr, /*+ Graph to map +*/ const KgraphMapExParam * const paraptr) /*+ Method parameters +*/ { KgraphMapExDom * restrict doextab; KgraphMapExSort * restrict sorttab; KgraphMapExTerm * restrict termtab; KgraphMapExTree * restrict treetab; Anum * restrict parttax; Anum treemax; /* Maximum number of nodes in tree structure */ Anum treenbr; /* Number of nodes in tree structure */ ArchDom domndat; /* Root domain */ Anum domnnum; Gnum sortnbr; /* Number of non-fixed vertices */ Gnum sortnum; Anum termnbr; /* Number of terminal domains in mapping */ Gnum vertnum; Gnum vertnnd; double velosum; /* Sum of vertex weights */ double wghtsum; /* Sum of architecture weights */ Anum wghttmp; /* Sum of architecture weights for archVar */ int flagval; /* Flag unset if load imbalance to fix */ const Gnum * restrict const velotax = grafptr->s.velotax; const Arch * restrict const archptr = grafptr->m.archptr; const Anum domnnbr = grafptr->m.domnnbr; const Anum * restrict const pfixtax = grafptr->pfixtax; archDomFrst (archptr, &domndat); grafptr->kbalval = paraptr->kbalval; /* Store last k-way imbalance ratio */ sortnbr = grafptr->s.vertnbr - grafptr->vfixnbr; /* Only sort non-fixed vertices */ treemax = 2 * ((archVar (archptr)) ? domnnbr : archDomSize (archptr, &domndat)); /* At most twice the number of terminals in last rank */ if (memAllocGroup ((void **) (void *) &doextab, (size_t) (domnnbr * sizeof (KgraphMapExDom)), &sorttab, (size_t) (sortnbr * sizeof (KgraphMapExSort)), &termtab, (size_t) (domnnbr * sizeof (KgraphMapExTerm)), &treetab, (size_t) (treemax * sizeof (KgraphMapExTree)), NULL) == NULL) { errorPrint ("kgraphMapEx: out of memory"); return (1); } wghtsum = (double) archDomWght (archptr, &domndat); velosum = (double) grafptr->s.velosum; for (domnnum = 0, termnbr = 0, wghttmp = 0, flagval = 1; domnnum < domnnbr; domnnum ++) { const ArchDom * restrict domnptr; domnptr = &grafptr->m.domntab[domnnum]; if (archDomSize (archptr, domnptr) <= 1) { /* If domain is a terminal (even variable-sized) */ Anum termnum; wghttmp += /* Accumulate subdomain loads in case of variable-sized architectures */ doextab[domnnum].domnwght = archDomWght (archptr, domnptr); doextab[domnnum].compload = 0; doextab[domnnum].comploadmax = (Gnum) (((double) doextab[domnnum].domnwght * velosum * (1.0 + paraptr->kbalval)) / wghtsum); termnum = archDomNum (archptr, domnptr); termtab[termnbr].termnum = termnum; /* Record domain in terminal domain array */ termtab[termnbr].domnnum = domnnum; termnbr ++; /* One more terminal domain */ if ((grafptr->comploadavg[domnnum] + grafptr->comploaddlt[domnnum]) > doextab[domnnum].comploadmax) flagval = 0; /* Set flag if at least one domain is imbalanced */ } } if (archVar (archptr)) { /* If architecture is variable-sized */ Anum termnum; wghtsum = (double) wghttmp / wghtsum; /* Recompute real load sum */ for (termnum = 0; termnum < termnbr; termnum ++) { Anum domnnum; domnnum = termtab[termnum].domnnum; doextab[domnnum].comploadmax = (Gnum) (((double) doextab[domnnum].domnwght * velosum * (1.0 + paraptr->kbalval)) / wghtsum); if ((grafptr->comploadavg[domnnum] + grafptr->comploaddlt[domnnum]) > doextab[domnnum].comploadmax) flagval = 0; /* Set flag if at least one domain is imbalanced */ } } if (flagval != 0) { /* If nothing to do */ memFree (doextab); /* Free group leader */ return (0); } intSort2asc1 (termtab, termnbr); /* Sort terminal domains to allow for dichotomy */ treenbr = 0; /* Prepare to fill tree array; next slot to fill */ kgraphMapExTree (archptr, termtab, termnbr, doextab, treetab, &treenbr, &domndat); /* Recursively fill tree array */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (treenbr >= treemax) { errorPrint ("kgraphMapEx: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ parttax = grafptr->m.parttax; for (vertnum = grafptr->s.baseval, vertnnd = grafptr->s.vertnnd, sortnbr = 0; /* Get vertex weights */ vertnum < vertnnd; vertnum ++) { Gnum veloval; veloval = (velotax != NULL) ? velotax[vertnum] : 1; if ((pfixtax == NULL) || (pfixtax[vertnum] < 0)) { /* If vertex is not fixed */ sorttab[sortnbr].veloval = veloval; /* Record it for sorting */ sorttab[sortnbr].vertnum = vertnum; sortnbr ++; } else doextab[parttax[vertnum]].comploadmax -= veloval; /* Reduce available room in domain for non-fixed vertices */ } #ifdef SCOTCH_DEBUG_KGRAPH2 if (sortnbr != (grafptr->s.vertnbr - grafptr->vfixnbr)) { errorPrint ("kgraphMapEx: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (velotax != NULL) /* If vertices are weighted, sort them in ascending order */ intSort2asc1 (sorttab, sortnbr); for (sortnum = sortnbr - 1; sortnum >= 0; sortnum --) { /* For all sorted vertex indices, by descending weights */ Gnum vertnum; Gnum veloval; Anum domnnum; vertnum = sorttab[sortnum].vertnum; veloval = sorttab[sortnum].veloval; domnnum = parttax[vertnum]; if ((doextab[domnnum].compload + veloval) > doextab[domnnum].comploadmax) { /* If leaving vertex in place would cause imbalance */ domnnum = kgraphMapExFind (archptr, treetab, doextab, domnnum, veloval); /* Try to find better location for vertex load */ if (parttax[vertnum] != domnnum) { /* If vertex moved to another part */ parttax[vertnum] = domnnum; /* Set vertex to new part */ flagval = 0; /* Record change */ } } doextab[domnnum].compload += veloval; } memFree (doextab); /* Free group leader */ if (flagval == 0) { /* If something changed */ kgraphFron (grafptr); /* Recompute frontier */ kgraphCost (grafptr); } #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (grafptr) != 0) { errorPrint ("kgraphMapEx: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } /* This routine fills the tree structure ** with the relevant node information. ** It returns: ** - void : in all cases. */ static Anum kgraphMapExTree ( const Arch * restrict const archptr, const KgraphMapExTerm * restrict const termtab, const Anum termnbr, KgraphMapExDom * restrict const doextab, /*+ Extended domain array, for adding link to tree +*/ KgraphMapExTree * restrict const treetab, Anum * restrict const treeptr, const ArchDom * restrict const domnptr) /*+ Pointer to subdomain to consider for this node +*/ { Anum treenum; if (archDomSize (archptr, domnptr) > 1) { /* If not variable-sized architecture and can bipartition */ ArchDom domntab[2]; /* Temporary area to store subdomains */ Anum sonstab[2]; int i, j; #ifdef SCOTCH_DEBUG_KGRAPH2 int o; o = /* Only collect value in debug mode */ #endif /* SCOTCH_DEBUG_KGRAPH2 */ archDomBipart (archptr, domnptr, &domntab[0], &domntab[1]); #ifdef SCOTCH_DEBUG_KGRAPH2 if (o != 0) { errorPrint ("kgraphMapExTree: internal error"); return (-1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ sonstab[0] = kgraphMapExTree (archptr, termtab, termnbr, doextab, treetab, treeptr, &domntab[0]); sonstab[1] = kgraphMapExTree (archptr, termtab, termnbr, doextab, treetab, treeptr, &domntab[1]); if (sonstab[0] + sonstab[1] < -1) /* If both sub-branches do not exist */ return (-1); /* Return that this branch does not exist */ treenum = (*treeptr) ++; /* Reserve slot for node */ treetab[treenum].fathnum = /* Assume node has no father (yet) */ treetab[treenum].sonstab[1] = -1; /* Assume second node does not exist */ for (i = j = 0; i < 2; i ++) { /* For both prospective sons */ Anum sonsnum; sonsnum = sonstab[i]; if (sonsnum == -1) /* If this son does not exist, skip it */ continue; treetab[treenum].sonstab[j ++] = sonsnum; /* Link son to current node; one more son created */ treetab[sonsnum].fathnum = treenum; } treetab[treenum].domndat = *domnptr; } else { /* If domain is terminal */ Anum termmin; Anum termmax; Anum termnum; Anum domnnum; #ifdef SCOTCH_DEBUG_KGRAPH2 if (archVar (archptr)) { errorPrint ("kgraphMapExTree: not implemented"); return (-1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ termnum = archDomNum (archptr, domnptr); /* Get number of terminal domain */ for (termmin = 0, termmax = termnbr; (termmax - termmin) > 1; ) { Anum termmed; termmed = (termmax + termmin) / 2; if (termtab[termmed].termnum <= termnum) termmin = termmed; else termmax = termmed; } if (termtab[termmin].termnum != termnum) /* If terminal not found */ return (-1); /* This branch is dead */ treenum = (*treeptr) ++; /* Reserve slot for terminal */ domnnum = termtab[termmin].domnnum; /* Get domain location */ treetab[treenum].sonstab[0] = -1; /* Slot is terminal */ treetab[treenum].sonstab[1] = domnnum; /* Record domain number of tree node */ treetab[treenum].domndat = *domnptr; /* Record domain data */ doextab[domnnum].treenum = treenum; /* Record entry point in tree structure */ } return (treenum); } /* This routine tries to find a destination ** target vertex that creates the least imbalance. ** It returns: ** - 0 : if a suitable terminal vertex has been found. ** - 1 : if process has to be continued.. */ static Anum kgraphMapExFind ( const Arch * restrict const archptr, /*+ Target architecture +*/ const KgraphMapExTree * restrict const treetab, /*+ Subdomain tree structure +*/ const KgraphMapExDom * restrict const doextab, /*+ Extended domain array +*/ const Anum domnnum, /*+ Initial domain number +*/ const Gnum veloval) /*+ Weight of vertex to map +*/ { KgraphMapExFind bestdat; Anum treenum; bestdat.comploaddlt = (doextab[domnnum].compload + veloval - doextab[domnnum].comploadmax) / doextab[domnnum].domnwght; /* Compute weighted imbalance */ bestdat.domnnum = domnnum; treenum = doextab[domnnum].treenum; /* Start from leaf of subdomain tree */ while (1) { /* Traverse nodes up to the root */ Anum nodenum; /* Number of the son we come from */ Anum othrnum; /* Number of the other son */ nodenum = treenum; /* Record position of current node */ treenum = treetab[treenum].fathnum; /* Get father node */ if (treenum == -1) /* If already reached root of tree */ break; othrnum = treetab[treenum].sonstab[(treetab[treenum].sonstab[0] == nodenum) ? 1 : 0]; /* Don't consider the branch we come from */ if (othrnum != -1) { /* If we have a sibling */ if (kgraphMapExFind2 (archptr, treetab, doextab, &bestdat, treenum, othrnum, veloval) == 0) break; /* If the sibling is a proper candidate for moving some weight */ } } /* As long as proper candidate not found */ return (bestdat.domnnum); /* Return best candidate found */ } /* This routine tries to find a destination ** target vertex that creates the least imbalance. ** It returns: ** - 0 : if a suitable terminal vertex has been found. ** - 1 : if process has to be continued. */ static int kgraphMapExFind2 ( const Arch * restrict const archptr, const KgraphMapExTree * restrict const treetab, const KgraphMapExDom * restrict const doextab, KgraphMapExFind * restrict const bestptr, /*+ Pointer to structure that keeps best terminal found +*/ const Anum treenum, const Anum nodenum, const Gnum veloval) { Anum son0num; Anum son1num; son0num = treetab[nodenum].sonstab[0]; son1num = treetab[nodenum].sonstab[1]; if (son0num != -1) { /* If node is not a terminal */ int i; int o; if (son1num == -1) /* If node has only one son */ return (kgraphMapExFind2 (archptr, treetab, doextab, bestptr, treenum, son0num, veloval)); /* Process it directly */ i = (archDomDist (archptr, &treetab[treenum].domndat, &treetab[son0num].domndat) <= /* Get closest subdomain */ archDomDist (archptr, &treetab[treenum].domndat, &treetab[son1num].domndat)) ? 0 : 1; o = kgraphMapExFind2 (archptr, treetab, doextab, bestptr, treenum, treetab[nodenum].sonstab[i], veloval); /* Process closest branch */ if (o != 0) /* If didn't find suitable terminal in closest branch */ o = kgraphMapExFind2 (archptr, treetab, doextab, bestptr, treenum, treetab[nodenum].sonstab[i ^ 1], veloval); /* Process farthest one */ return (o); } else { /* If current node is terminal */ Anum domnnum; Gnum comploaddlt; domnnum = son1num; /* Second son records domain number */ comploaddlt = (doextab[domnnum].compload + veloval - doextab[domnnum].comploadmax) / doextab[domnnum].domnwght; /* Compute weighted imbalance */ if (comploaddlt < bestptr->comploaddlt) { /* If found vertex that potentially improves balance */ bestptr->comploaddlt = comploaddlt; bestptr->domnnum = domnnum; } return ((comploaddlt <= 0) ? 0 : 1); /* Return immediatly or go on whether found proper terminal to host vertex or not */ } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_ex.h000066400000000000000000000130761514310134000267020ustar00rootroot00000000000000/* Copyright 2011,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_ex.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the load balancing graph mapping **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 08 jun 2011 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct KgraphMapExParam_ { double kbalval; /*+ Imbalance ratio +*/ } KgraphMapExParam; /*+ This structure holds extended domain information. sonstab[0] == -1 if node is terminal. Else, sonstab[1] == -1 means only one branch is considered at this level. +*/ typedef struct KgraphMapExDom_ { Anum treenum; /*+ Tree node index for this domain +*/ Anum domnwght; /*+ Domain weight +*/ Gnum compload; /*+ Current load in domain +*/ Gnum comploadmax; /*+ Maximum load allowed in domain +*/ } KgraphMapExDom; /*+ This structure records the best candidate domain found to date. +*/ typedef struct KgraphMapExFind_ { Gnum comploaddlt; /*+ Best imbalance +*/ Anum domnnum; /*+ Domain number +*/ } KgraphMapExFind; /*+ This structure allows one to sort vertices by vertex weight. +*/ typedef struct KgraphMapExSort_ { Gnum veloval; /*+ Vertex load +*/ Gnum vertnum; /*+ Vertex number +*/ } KgraphMapExSort; /*+ This structure allows one to sort existing terminal domains by terminal number. +*/ typedef struct KgraphMapExTerm_ { Anum termnum; /*+ Domain terminal number +*/ Anum domnnum; /*+ Domain index in domntab +*/ } KgraphMapExTerm; /*+ This structure holds a recursive bi-mapping tree node. +*/ typedef struct KgraphMapExTree_ { Anum fathnum; /*+ Index of father node; -1 if root +*/ Anum sonstab[2]; /*+ Index of sons; [0] == -1 for terminal +*/ ArchDom domndat; /*+ Subdomain data +*/ } KgraphMapExTree; /* ** The function prototypes. */ #ifdef SCOTCH_KGRAPH_MAP_EX static Anum kgraphMapExTree (const Arch * restrict const, const KgraphMapExTerm * restrict const, const Anum, KgraphMapExDom * restrict const, KgraphMapExTree * restrict const, Anum * restrict const, const ArchDom * restrict const); static Anum kgraphMapExFind (const Arch * restrict const, const KgraphMapExTree * restrict const, const KgraphMapExDom * restrict const, const Anum, const Gnum); static int kgraphMapExFind2 (const Arch * restrict const, const KgraphMapExTree * restrict const, const KgraphMapExDom * restrict const, KgraphMapExFind * restrict const, const Anum, const Anum, const Gnum); #endif /* SCOTCH_KGRAPH_MAP_EX */ int kgraphMapEx (Kgraph * restrict const, const KgraphMapExParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_fm.c000066400000000000000000002453261514310134000266700ustar00rootroot00000000000000/* Copyright 2004,2010-2012,2014,2016,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_fm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module refines a k-way mapping of **/ /** the given mapping graph by applying a **/ /** Fiduccia-Mattheyses-like gradient **/ /** method. **/ /** **/ /** DATES : # Version 6.0 : from : 03 mar 2011 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 03 aug 2018 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_TABLE_GAIN #include "module.h" #include "common.h" #include "gain.h" #include "fibo.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "parser.h" #include "kgraph.h" #include "kgraph_map_fm.h" #include "kgraph_map_st.h" /*********************************/ /* */ /* Gain table handling routines. */ /* */ /*********************************/ /* This routine returns the vertex of best gain ** whose swap will keep the balance correct. ** It returns: ** - !NULL : pointer to the vertex. ** - NULL : if no more vertices available. */ #ifdef SCOTCH_TABLE_GAIN static KgraphMapFmEdge * kgraphMapFmTablGet ( KgraphMapFmTabl * restrict const tablptr, /*+ Gain table +*/ KgraphMapFmVertex * restrict const vexxtab, /*+ Extended vertex hash table array +*/ const Gnum * restrict const comploaddlt, /*+ Current imbalance array +*/ const Gnum * restrict const comploadmax, /*+ Maximum imbalance array +*/ Gnum * restrict comploaddiff, Gnum * restrict flagval) { GainTabl * gaintab; KgraphMapFmEdge * edxxptr; KgraphMapFmEdge * edxxbest; Gnum gainbest; const GainEntr * restrict tablbest; Gnum deltbest; gaintab = *tablptr; tablbest = gaintab->tend; /* Assume no candidate vertex found yet */ gainbest = GAINMAX; edxxbest = NULL; deltbest = GNUMMAX; for (edxxptr = (KgraphMapFmEdge *) gainTablFrst (gaintab); /* Select candidate edges */ (edxxptr != NULL) && (edxxptr->gainlink.tabl < tablbest); edxxptr = (KgraphMapFmEdge *) gainTablNext (gaintab, &edxxptr->gainlink)) { Gnum vexxidx; Gnum veloval; Anum domnnumold; Anum domnnumnew; Gnum deltvalold; Gnum deltvalnew; Gnum deltnew; Gnum commgain; vexxidx = edxxptr->vexxidx; veloval = vexxtab[vexxidx].veloval; #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].lockptr != NULL) { /* If vertex is locked */ errorPrint ("kgraphMapFmTablGet: internal error (1)"); return (NULL); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ domnnumold = vexxtab[vexxidx].domnnum; domnnumnew = edxxptr->domnnum; deltvalold = abs (comploaddlt[domnnumold] - veloval); deltvalnew = abs (comploaddlt[domnnumnew] + veloval); if (((deltvalold > comploadmax[domnnumold]) && (deltvalold >= abs (comploaddlt[domnnumold]))) || /* If vertex does not enforce or improve balance, skip it */ ((deltvalnew > comploadmax[domnnumnew]) && (deltvalnew >= abs (comploaddlt[domnnumnew])))) { if (edxxptr->cmigmask == ~0) { edxxptr->cmigmask = 0; kgraphMapFmTablDel (&gaintab, edxxptr); kgraphMapFmTablAdd (&gaintab, edxxptr); } continue; } deltnew = deltvalold - abs (comploaddlt[domnnumold]) + /* Compute difference in imbalance load sum */ deltvalnew - abs (comploaddlt[domnnumnew]); commgain = edxxptr->commgain + edxxptr->cmiggain; if ((commgain < gainbest) || /* And if it gives better gain */ ((commgain == gainbest) && /* Or if it gives better load */ (deltnew < deltbest))) { tablbest = edxxptr->gainlink.tabl; /* Select it */ gainbest = commgain; edxxbest = edxxptr; deltbest = deltnew; if ((abs (comploaddlt[domnnumold]) > comploadmax[domnnumold]) || (abs (comploaddlt[domnnumnew]) > comploadmax[domnnumnew])) *flagval = 1; else *flagval = 0; } } if (edxxbest != NULL) *comploaddiff += deltbest; return (edxxbest); } #else /* SCOTCH_TABLE_GAIN */ /* kgraphMapFmCmpFunc(a,b) must return a negative ** number if a is "better" than b. The smaller, the ** better. */ static int kgraphMapFmCmpFunc ( const FiboNode * const data0ptr, /* TRICK: KgraphMapFmLink is FIRST in KgraphMapFmEdge */ const FiboNode * const data1ptr) { const KgraphMapFmEdge * const node0ptr = (KgraphMapFmEdge *) data0ptr; const KgraphMapFmEdge * const node1ptr = (KgraphMapFmEdge *) data1ptr; Gnum node0val; Gnum node1val; node0val = node0ptr->commgain + node0ptr->cmiggain; node1val = node1ptr->commgain + node1ptr->cmiggain; if (node0val < node1val) return (-1); if (node0val > node1val) return (1); return (0); } static KgraphMapFmEdge * kgraphMapFmTablGet ( KgraphMapFmTabl * restrict const tablptr, /*+ Gain table +*/ KgraphMapFmVertex * restrict const vexxtab, /*+ Extended vertex hash table array +*/ const Gnum * restrict const comploaddlt, /*+ Current imbalance array +*/ const Gnum * restrict const comploadmax, /*+ Maximum imbalance array +*/ Gnum * restrict comploaddiff, Gnum * restrict flagval) { FiboNode * remoptr; /* List of removed links */ KgraphMapFmEdge * edxxptr; Gnum deltnew; FiboNode * linkptr; /* Pointer to current gain link */ edxxptr = NULL; remoptr = NULL; while ((linkptr = fiboHeapMin (tablptr)) != NULL) { /* Select candidate vertices */ Gnum vexxidx; Gnum veloval; Anum domnnumold; Anum domnnumnew; Gnum deltvalold; Gnum deltvalnew; edxxptr = (KgraphMapFmEdge *) linkptr; vexxidx = edxxptr->vexxidx; veloval = vexxtab[vexxidx].veloval; #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].lockptr != NULL) { /* If vertex is locked */ errorPrint ("kgraphMapFmTablGet: internal error (2)"); return (NULL); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ fiboHeapDel (tablptr, linkptr); /* Remove vertex link from table */ linkptr->linkdat.prevptr = remoptr; /* Node has been removed but is not kept */ remoptr = linkptr; /* It will be chained back afterwards */ domnnumold = vexxtab[vexxidx].domnnum; domnnumnew = edxxptr->domnnum; deltvalold = abs (comploaddlt[domnnumold] - veloval); deltvalnew = abs (comploaddlt[domnnumnew] + veloval); if (((deltvalold <= comploadmax[domnnumold]) || (deltvalold < abs (comploaddlt[domnnumold]))) && /* If vertex does enforce or improve balance, keep it */ ((deltvalnew <= comploadmax[domnnumnew]) || (deltvalnew < abs (comploaddlt[domnnumnew])))) { deltnew = deltvalold - abs (comploaddlt[domnnumold]) + /* Compute difference in imbalance load sum */ deltvalnew - abs (comploaddlt[domnnumnew]); if ((abs (comploaddlt[domnnumold]) > comploadmax[domnnumold]) || (abs (comploaddlt[domnnumnew]) > comploadmax[domnnumnew])) *flagval = 1; break; } else { if (edxxptr->cmigmask == ~0) { edxxptr->cmigmask = 0; kgraphMapFmTablDel (&gaintab, edxxptr); kgraphMapFmTablAdd (&gaintab, edxxptr); } } } while (remoptr != NULL) { /* Put back all temporarily removed nodes */ FiboNode * tempptr; tempptr = remoptr; /* Get pointer to node */ remoptr = remoptr->linkdat.prevptr; /* Find next node */ fiboHeapAdd (tablptr, tempptr); /* Re-link node */ } if (linkptr == NULL) return (NULL); *comploaddiff += deltnew; return (edxxptr); } #endif /* SCOTCH_TABLE_GAIN */ /* This routine checks the consistency of ** the hash structures. ** It returns: ** - 0 : in case of success. ** - !0 : in case of error. */ #ifdef SCOTCH_DEBUG_KGRAPH3 static int kgraphMapFmCheck ( KgraphMapFmTabl * restrict const tablptr, /*+ Gain table +*/ const Kgraph * restrict const grafptr, const KgraphMapFmVertex * restrict const vexxtab, const KgraphMapFmEdge * const edxxtab, /*+ Extended edge array +*/ const Gnum hashmsk, const Gnum commload, Gnum * const chektab) { Gnum vexxidx; Gnum edxxidx; Gnum commloadtmp; Anum * restrict const parttax = grafptr->m.parttax; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const vmlotax = grafptr->r.vmlotax; Gnum * const edlosumtab = chektab; Gnum * const edgenbrtab = chektab + grafptr->m.domnnbr; Gnum * const commgaintab = chektab + (grafptr->m.domnnbr * 2); commloadtmp = 0; for (vexxidx = 0; vexxidx <= hashmsk; vexxidx ++) { /* For all vertex slots */ Gnum vertnum; Gnum edgenum; Anum domnorg; Anum domnlst; /* Domain of last vertex for which a distance was computed */ Anum distlst; /* Last distance computed */ Gnum commloadloctmp; Gnum edlosum; Gnum edgenbr; commloadloctmp = 0; vertnum = vexxtab[vexxidx].vertnum; if ((vertnum == ~0)) /* If unallocated */ continue; /* Skip to next slot */ domnorg = vexxtab[vexxidx].domnnum; if ((domnorg < 0) || (domnorg >= grafptr->m.domnnbr)) { errorPrint ("kgraphMapFmCheck: invalid vertex part value"); return (1); } if (domnorg != parttax[vertnum]) { errorPrint ("kgraphMapFmCheck: invalid extended vertex part value"); return (1); } edxxidx = vexxtab[vexxidx].edxxidx; if ((edxxidx >= 0) && (edxxtab[edxxidx].vexxidx != vexxidx)) { errorPrint ("kgraphMapFmCheck: invalid extended vertex pointer in extended edge"); return (1); } edlosum = edgenbr = 0; domnlst = -1; /* Invalid domnain to recompute distance */ memSet (edlosumtab, 0, grafptr->m.domnnbr * 3 * sizeof(Gnum)); /* Reset edlosumtab, edgenbrtab and commgaintab */ for (edgenum = verttax[vertnum]; /* For all neighbors */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Anum domnend; Gnum edloval; vertend = edgetax[edgenum]; domnend = parttax[vertend]; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; if (domnorg != domnend) { Anum distval; distval = (domnend != domnlst) ? archDomDist (grafptr->m.archptr, &grafptr->m.domntab[domnorg], &grafptr->m.domntab[domnend]) : distlst; distlst = distval; domnlst = domnend; edlosumtab[domnend] += edloval; edgenbrtab[domnend] ++; commloadloctmp += (Gnum) distval * edloval * grafptr->r.crloval; for (edxxidx = vexxtab[vexxidx].edxxidx; (edxxidx != -1) && (edxxtab[edxxidx].domnnum != domnend) ; edxxidx = edxxtab[edxxidx].edxxidx) ; /* Search if edge slot exists */ if (edxxidx == -1) { Gnum vertndd; Gnum vexxndd; vertndd = edgetax[edgenum]; for (vexxndd = 0; (vexxtab[vexxndd].vertnum != vertndd) && (vexxndd <= hashmsk); vexxndd ++) ; /* For all vertex slots */ errorPrint ("kgraphMapFmCheck: no link for migration of vertex %d to domain %d", vexxtab[vexxidx].vertnum, domnend); return (1); } } else { edlosum += edloval; edgenbr ++; } } if (edlosum != vexxtab[vexxidx].edlosum) { errorPrint ("kgraphMapFmCheck: invalid edge load sum for vertex %d", vexxtab[vexxidx].vertnum); return (1); } if (edgenbr != vexxtab[vexxidx].edgenbr) { errorPrint ("kgraphMapFmCheck: invalid edge number for vertex %d", vexxtab[vexxidx].vertnum); return (1); } commloadtmp += commloadloctmp; for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { Gnum domncur; Gnum domnflg; domnflg = 0; domncur = edxxtab[edxxidx].domnnum; commgaintab[domncur] = -commloadloctmp; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Anum domnend; Gnum edloval; vertend = edgetax[edgenum]; domnend = parttax[vertend]; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; if (domnend == domncur) { domnflg = 1; continue; } edloval *= grafptr->r.crloval; commgaintab[domncur] += edloval /* Add edge contribution to target domain */ * archDomDist (grafptr->m.archptr, &grafptr->m.domntab[domncur], &grafptr->m.domntab[domnend]); } if (domnflg == 0) { errorPrint ("kgraphMapFmCheck: extra link for migration of vertex %d to domain %d", vexxtab[vexxidx].vertnum, domncur); return (1); } } if ((vexxtab[vexxidx].domoptr != NULL) && (vexxtab[vexxidx].cmigload != (archDomIncl (grafptr->m.archptr, &grafptr->m.domntab[domnorg], vexxtab[vexxidx].domoptr) == 1) ? 0 : grafptr->r.cmloval * ((vmlotax != NULL) ? vmlotax[vertnum] : 1) * archDomDist (grafptr->m.archptr, &grafptr->m.domntab[domnorg], vexxtab[vexxidx].domoptr))) { errorPrint ("kgraphMapFmCheck: invalid migration communication load for extended vertex"); return (1); } for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { /* For vertex links */ if (edlosumtab[edxxtab[edxxidx].domnnum] != edxxtab[edxxidx].edlosum) { errorPrint ("kgraphMapFmCheck: invalid extended edge edlosum value"); return (1); } if (edgenbrtab[edxxtab[edxxidx].domnnum] != edxxtab[edxxidx].edgenbr) { errorPrint ("kgraphMapFmCheck: invalid extended edge edgenbr value"); return (1); } if (commgaintab[edxxtab[edxxidx].domnnum] != edxxtab[edxxidx].commgain) { errorPrint ("kgraphMapFmCheck: invalid extended edge commgain value"); return (1); } if ((vexxtab[vexxidx].domoptr != NULL) && (edxxtab[edxxidx].cmiggain + vexxtab[vexxidx].cmigload != (archDomIncl (grafptr->m.archptr, &grafptr->m.domntab[edxxtab[edxxidx].domnnum], vexxtab[vexxidx].domoptr) == 1) ? 0 : grafptr->r.cmloval * ((vmlotax != NULL) ? vmlotax[vertnum] : 1) * archDomDist (grafptr->m.archptr, &grafptr->m.domntab[edxxtab[edxxidx].domnnum], vexxtab[vexxidx].domoptr))) { errorPrint ("kgraphMapFmCheck: invalid migration communication gain for extended edge"); return (1); } } } if (grafptr->pfixtax != NULL) { /* We have fixed vertices */ Anum domnlst; /* Domnain of last vertex for which a distance was computed */ Anum distlst; /* Last distance computed */ Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { if (grafptr->pfixtax[vertnum] != -1) { /* If vertex is fixed */ Gnum domnorg; Gnum edgenum; domnorg = parttax[vertnum]; domnlst = -1; /* Invalid part to recompute distance */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Anum domnend; Gnum edloval; vertend = edgetax[edgenum]; domnend = parttax[vertend]; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; edloval *= grafptr->r.crloval; if (domnorg != domnend) { Anum distval; distval = (domnend != domnlst) ? archDomDist (grafptr->m.archptr, &grafptr->m.domntab[domnorg], &grafptr->m.domntab[domnend]) : distlst; distlst = distval; domnlst = domnend; commloadtmp += (Gnum) distval * edloval; } } } } } if (commload != commloadtmp / 2) { errorPrint ("kgraphMapFmCheck: invalid communication load"); return (1); } return (0); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ /*****************************/ /* */ /* These routines handle the */ /* insertion of vertices */ /* into the gain arrays. */ /* */ /*****************************/ static int kgraphMapFmEdgeResize ( KgraphMapFmVertex * restrict const vexxtab, /*+ Extended vertex hash table array +*/ Gnum vexxidx, KgraphMapFmEdge * restrict * const edxxtabptr, Gnum * restrict const edxxsizptr, Gnum const edxxnbr, KgraphMapFmTabl * restrict const tablptr) { KgraphMapFmEdge * restrict edxxtmp; KgraphMapFmEdge * restrict edxxtab; Gnum edxxsiz; edxxtab = *edxxtabptr; edxxsiz = *edxxsizptr; edxxsiz *= 2; /* Compute new array size */ *edxxsizptr = edxxsiz; /* Propagate back new size */ if ((edxxtmp = memRealloc (edxxtab, edxxsiz * sizeof (KgraphMapFmEdge))) == NULL) { errorPrint ("kgraphMapFmEdgeResize: out of memory"); return (1); } if (edxxtmp != edxxtab) { /* If array has been reallocated, re-link all edges */ Gnum edxxidx; edxxtab = *edxxtabptr = edxxtmp; /* Point to new array location */ kgraphMapFmTablFree (tablptr); /* Free all edges in gain structure */ for (edxxidx = 0; edxxidx < edxxnbr; edxxidx ++) { if ((vexxtab[edxxtab[edxxidx].vexxidx].lockptr == NULL) && /* Vertex is not locked */ (edxxtab[edxxidx].vexxidx != vexxidx) && /* Edge of current vertex will be added later */ (edxxtab[edxxidx].edxxidx != -2)) /* Skip deprecated extended edges */ kgraphMapFmTablAdd (tablptr, &edxxtab[edxxidx]); } } return (0); } static int kgraphMapFmPartAdd2 ( const Kgraph * restrict const grafptr, KgraphMapFmVertex * restrict const vexxtab, /*+ Extended vertex hash table array +*/ Gnum vexxidx, KgraphMapFmEdge * restrict * const edxxtabptr, Gnum * restrict const edxxsizptr, Gnum * restrict const edxxnbrptr, Anum domnnum, /*+ Vertex domain +*/ Anum domnend, /*+ Domain of the extended edge to add +*/ Gnum edloval, /*+ Load of the edge to domnend +*/ KgraphMapFmTabl * restrict const tablptr) { KgraphMapFmEdge * restrict edxxtab; Gnum edxxidx; Gnum edxxtmp; Gnum commgain; const Arch * restrict const archptr = grafptr->m.archptr; const ArchDom * restrict const domntab = grafptr->m.domntab; if (*edxxnbrptr >= *edxxsizptr) /* If new slot would not fit */ kgraphMapFmEdgeResize (vexxtab, -1, edxxtabptr, edxxsizptr, *edxxnbrptr, tablptr); /* No vexxidx because vertex extended edges will be readd later */ edxxtab = *edxxtabptr; edxxidx = (*edxxnbrptr) ++; /* Allocate new slot */ edxxtab[edxxidx].domnnum = domnend; /* Set extended edge data */ edxxtab[edxxidx].distval = archDomDist (archptr, &domntab[domnnum], &domntab[domnend]); edxxtab[edxxidx].edlosum = edloval; edxxtab[edxxidx].edgenbr = 1; edxxtab[edxxidx].vexxidx = vexxidx; edxxtab[edxxidx].mswpnum = 0; commgain = 0; /* Compute commgain */ for (edxxtmp = vexxtab[vexxidx].edxxidx; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) { commgain += edxxtab[edxxtmp].edlosum * (archDomDist (archptr, &domntab[edxxtab[edxxtmp].domnnum], &domntab[domnend]) - edxxtab[edxxtmp].distval); } commgain += (vexxtab[vexxidx].edlosum - edloval) * edxxtab[edxxidx].distval; edxxtab[edxxidx].commgain = commgain * grafptr->r.crloval; edxxtab[edxxidx].edxxidx = vexxtab[vexxidx].edxxidx; /* Link edge to vertex */ vexxtab[vexxidx].edxxidx = edxxidx; edxxtab[edxxidx].cmiggain = 0; /* Compute migration commgain */ edxxtab[edxxidx].cmigmask = 0; if (vexxtab[vexxidx].domoptr != NULL) { Gnum migcoef; /* Equal to -migedloval if vertex was mapped in old mapping */ migcoef = grafptr->r.cmloval * ((grafptr->r.vmlotax != NULL) ? grafptr->r.vmlotax[vexxtab[vexxidx].vertnum] : 1); edxxtab[edxxidx].cmiggain = (archDomIncl (archptr, &domntab[edxxtab[edxxidx].domnnum], vexxtab[vexxidx].domoptr) == 1) ? 0 : migcoef * archDomDist (archptr, &domntab[edxxtab[edxxidx].domnnum], vexxtab[vexxidx].domoptr); edxxtab[edxxidx].cmiggain -= vexxtab[vexxidx].cmigload; edxxtab[edxxidx].cmigmask = ~0; } if (vexxtab[vexxidx].lockptr == NULL) /* If value has to be linked */ kgraphMapFmTablAdd (tablptr, &edxxtab[edxxidx]); return (0); } /* This routine adds a vertex to hash table. */ static int kgraphMapFmPartAdd ( const Kgraph * restrict const grafptr, const Gnum vertnum, const Gnum vexxidx, /* Hash value for insertion in vexxtab */ KgraphMapFmVertex * restrict const vexxtab, KgraphMapFmEdge ** edxxtabptr, Gnum * restrict const edxxsizptr, Gnum * restrict const edxxnbrptr, KgraphMapFmTabl * restrict const tablptr) { Gnum oldvertnum; /* Number of current vertex */ KgraphMapFmEdge * restrict edxxtab; Gnum edxxidx; Gnum edgenum; Gnum edlosum; Gnum edgenbr; Anum domnnum; Gnum commload; /* Communication load for local domain */ const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Arch * restrict const archptr = grafptr->m.archptr; const ArchDom * restrict const domntab = grafptr->m.domntab; const Anum * restrict const parttax = grafptr->m.parttax; const Anum * restrict const parotax = grafptr->r.m.parttax; #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].vertnum != ~0) { errorPrint ("kgraphMapFmPartAdd: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ domnnum = parttax[vertnum]; vexxtab[vexxidx].vertnum = vertnum; vexxtab[vexxidx].domnnum = domnnum; vexxtab[vexxidx].veloval = (grafptr->s.velotax != NULL) ? grafptr->s.velotax[vertnum] : 1; /* Vertex will be linked since value is positive */ vexxtab[vexxidx].mswpnum = 0; /* Implicitly set slot as used */ vexxtab[vexxidx].edxxidx = -1; /* No target domains yet */ vexxtab[vexxidx].lockptr = NULL; /* No locked yet */ oldvertnum = ((grafptr->s.vnumtax != NULL) && /* If there is ancestor graph vertex numbers */ (grafptr->s.flagval & KGRAPHHASANCHORS) == 0) /* That are not the ones of the band graph */ ? grafptr->s.vnumtax[vertnum] : vertnum; /* Get vertex number in original graph */ if ((parotax != NULL) && /* If we are doing a repartitioning */ (parotax[oldvertnum] != -1)) /* And if vertex was mapped to an old domain */ vexxtab[vexxidx].domoptr = mapDomain (&grafptr->r.m, oldvertnum); /* Domain in which the vertex was previously mapped */ else vexxtab[vexxidx].domoptr = NULL; edxxtab = *edxxtabptr; /* Compute and link edges */ edgenbr = 0; for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { Gnum domnend; domnend = edxxtab[edxxidx].domnnum; edxxtab[edxxidx].edlosum = 0; edxxtab[edxxidx].edgenbr = 0; edxxtab[edxxidx].distval = archDomDist (archptr, &domntab[domnnum], &domntab[domnend]); } commload = 0; /* Load associated with vertex edges */ edlosum = 0; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum edxxidx; Gnum vertend; Anum domnend; Gnum edloval; vertend = edgetax[edgenum]; domnend = parttax[vertend]; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; /* Do not account for crloval yet */ if (domnend == domnnum) { /* If end vertex belongs to same domain */ edlosum += edloval; /* Record local edge load sum */ edgenbr ++; /* Record local edge */ continue; /* Skip further processing */ } for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { /* Search for edge */ if (edxxtab[edxxidx].domnnum == domnend) /* If edge slot found */ break; } if (edxxidx == -1) { /* If edge slot not found */ if (*edxxnbrptr >= *edxxsizptr) /* If new slot would not fit */ kgraphMapFmEdgeResize (vexxtab, vexxidx, edxxtabptr, edxxsizptr, *edxxnbrptr, tablptr); edxxidx = (*edxxnbrptr) ++; /* Allocate new slot */ edxxtab = *edxxtabptr; /* Update edxxtab */ edxxtab[edxxidx].commgain = 0; edxxtab[edxxidx].cmiggain = 0; edxxtab[edxxidx].cmigmask = (parotax != NULL) ? ~0 : 0; edxxtab[edxxidx].domnnum = domnend; edxxtab[edxxidx].distval = archDomDist (archptr, &domntab[domnnum], &domntab[domnend]); edxxtab[edxxidx].edlosum = 0; edxxtab[edxxidx].edgenbr = 0; edxxtab[edxxidx].vexxidx = vexxidx; edxxtab[edxxidx].edxxidx = vexxtab[vexxidx].edxxidx; /* Link edge to vertex */ vexxtab[vexxidx].edxxidx = edxxidx; edxxtab[edxxidx].mswpnum = 0; } commload += edloval * edxxtab[edxxidx].distval; edxxtab[edxxidx].edlosum += edloval; edxxtab[edxxidx].edgenbr ++; } commload *= grafptr->r.crloval; /* Multiply all local loads by crloval */ vexxtab[vexxidx].edlosum = edlosum; vexxtab[vexxidx].edgenbr = edgenbr; for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { Gnum domncur; Gnum edxxtmp; Gnum commgain; domncur = edxxtab[edxxidx].domnnum; commgain = 0; for (edxxtmp = vexxtab[vexxidx].edxxidx; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) { Anum domnend; if (edxxtmp == edxxidx) continue; domnend = edxxtab[edxxtmp].domnnum; commgain += edxxtab[edxxtmp].edlosum * /* Add edge contribution to target domain */ archDomDist (archptr, &domntab[domncur], &domntab[domnend]); } commgain += vexxtab[vexxidx].edlosum * edxxtab[edxxidx].distval; edxxtab[edxxidx].commgain = commgain * grafptr->r.crloval - commload; } vexxtab[vexxidx].cmigload = 0; if (vexxtab[vexxidx].domoptr != NULL) { Gnum migcoef; /* Equal to -migedloval if vertex was mapped in old mapping */ migcoef = grafptr->r.cmloval * ((grafptr->r.vmlotax != NULL) ? grafptr->r.vmlotax[vertnum] : 1); vexxtab[vexxidx].cmigload = (archDomIncl (archptr, &domntab[domnnum], vexxtab[vexxidx].domoptr) == 1) ? 0 : migcoef * archDomDist (archptr, &domntab[domnnum], vexxtab[vexxidx].domoptr); for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { edxxtab[edxxidx].cmiggain = (archDomIncl (archptr, &domntab[edxxtab[edxxidx].domnnum], vexxtab[vexxidx].domoptr) == 1) ? 0 : migcoef * archDomDist (archptr, &domntab[edxxtab[edxxidx].domnnum], vexxtab[vexxidx].domoptr); edxxtab[edxxidx].cmiggain -= vexxtab[vexxidx].cmigload; edxxtab[edxxidx].cmigmask = ~0; } } if (vexxtab[vexxidx].lockptr == NULL) { /* If value has to be (re)linked */ for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) /* Insert edges to neighbors in gain arrays */ kgraphMapFmTablAdd (tablptr, &edxxtab[edxxidx]); } return (0); } /* This routine doubles the size all of the arrays ** involved in handling the hash table and hash ** vertex arrays. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int kgraphMapFmResize ( KgraphMapFmVertex * restrict * vexxtabptr, /*+ Extended vertex array +*/ Gnum * restrict const hashmaxptr, /*+ Size of vertex array +*/ Gnum * const hashmskptr, /*+ Pointer to hash table mask +*/ KgraphMapFmSave * restrict savetab, /*+ Move array +*/ const Gnum savenbr, /*+ Number of moves recorded +*/ KgraphMapFmTabl * const tablptr, /*+ Gain table +*/ KgraphMapFmEdge * edxxtab, /*+ Extended edge array +*/ KgraphMapFmVertex ** const lockptr) /*+ Pointer to locked list +*/ { KgraphMapFmVertex * restrict vexxtab; /* Extended vertex array */ Gnum savenum; Gnum hashold; /* Size of old hash table (half of new) */ Gnum hashsiz; Gnum hashmax; Gnum hashmsk; Gnum vexxidx; hashmax = *hashmaxptr << 1; /* Compute new sizes */ hashold = *hashmaxptr << 2; hashsiz = *hashmaxptr << 3; hashmsk = hashsiz - 1; #ifdef SCOTCH_DEBUG_KGRAPH2 if (sizeof (KgraphMapFmVertex) < sizeof (KgraphMapFmSave)) { /* Should always be true */ errorPrint ("kgraphMapFmResize: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if ((vexxtab = memRealloc (*vexxtabptr, (size_t) hashsiz * sizeof (KgraphMapFmVertex))) == NULL) { errorPrint ("kgraphMapFmResize: out of memory"); return (1); } for (savenum = savenbr - 1; savenum >= 0; savenum --) { /* Move save array, in reverse order */ if (savetab[savenum].type == KGRAPHMAPPFMSAVEVEXX) savetab[savenum].u.vexxdat.vexxidx = vexxtab[savetab[savenum].u.vexxdat.vexxidx].vertnum; /* Temporarily translate from hash index to number */ else if ((savetab[savenum].type & KGRAPHMAPPFMSAVELINK) != 0) savetab[savenum].u.linkdat.vexxidx = vexxtab[savetab[savenum].u.linkdat.vexxidx].vertnum; /* Temporarily translate from hash index to number */ } *vexxtabptr = vexxtab; *hashmaxptr = hashmax; *hashmskptr = hashmsk; memSet (vexxtab + hashold, ~0, hashold * sizeof (KgraphMapFmVertex)); /* Set new slots to ~0 */ kgraphMapFmTablFree (tablptr); /* Reset gain table */ *lockptr = (KgraphMapFmVertex *) -1; /* Rebuild lock list */ if (vexxtab[0].vertnum != ~0) { /* If vertex overflowing may have occured in old hash table */ Gnum hashtmp; Gnum hashnew; for (hashtmp = hashold - 1, hashnew = 0; /* Temporarily move vertices away from end of old table to prevent overflowing */ vexxtab[hashtmp].vertnum != ~0; hashtmp --) { while (vexxtab[++ hashnew].vertnum != ~0) ; /* Find an empty slot to receive moved vertex */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (hashnew >= hashtmp) { errorPrint ("kgraphMapFmResize: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ vexxtab[hashnew] = vexxtab[hashtmp]; /* Move vertex from end of table */ vexxtab[hashtmp].vertnum = ~0; /* Set old slot as free */ } } for (vexxidx = 0; vexxidx < hashold; vexxidx ++) { /* Re-compute position of vertices in new table */ Gnum vertnum; vertnum = vexxtab[vexxidx].vertnum; if (vertnum != ~0) { /* If hash slot used */ Gnum hashnew; Gnum edxxtmp; for (hashnew = (vertnum * KGRAPHMAPFMHASHPRIME) & hashmsk; ; hashnew = (hashnew + 1) & hashmsk) { if (hashnew == vexxidx) /* If hash slot is the same */ break; /* There is nothing to do */ if (vexxtab[hashnew].vertnum == ~0) { /* If new slot is empty */ vexxtab[hashnew] = vexxtab[vexxidx]; /* Copy data to new slot */ vexxtab[vexxidx].mswpnum = ~0; /* TRICK: not tested at creation */ vexxtab[vexxidx].vertnum = ~0; /* Make old slot empty */ break; } } if ((hashnew > vexxidx) && (hashnew < hashold)) /* If vertex was an overflowed vertex which will be replaced at end of old table */ continue; /* It will be re-processed again and re-linked once for good at the end of the loop */ for (edxxtmp = vexxtab[hashnew].edxxidx; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) /* Insert edges to neighbors in gain arrays */ edxxtab[edxxtmp].vexxidx = hashnew; edxxtmp = vexxtab[hashnew].edxxidx; /* vertices lock is done through their first links */ if (vexxtab[hashnew].lockptr == NULL) { /* If vertex was linked, re-link its edges */ for ( ; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) /* Insert edges to neighbors in gain arrays */ kgraphMapFmTablAdd (tablptr, &edxxtab[edxxtmp]); } else /* Re-lock vertices */ kgraphMapFmLock (*lockptr, &vexxtab[hashnew]); } } for (savenum = 0; savenum < savenbr; savenum ++) { if (savetab[savenum].type == KGRAPHMAPPFMSAVEVEXX) { Gnum vertnum; Gnum vexxidx; vertnum = savetab[savenum].u.vexxdat.vexxidx; /* Get vertex number */ for (vexxidx = (vertnum * KGRAPHMAPFMHASHPRIME) & hashmsk; vexxtab[vexxidx].vertnum != vertnum; vexxidx = (vexxidx + 1) & hashmsk) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].vertnum == ~0) { errorPrint ("kgraphMapFmResize: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } savetab[savenum].u.vexxdat.vexxidx = vexxidx; /* Set new hash table index */ } else if ((savetab[savenum].type & KGRAPHMAPPFMSAVELINK) != 0) { Gnum vertnum; Gnum vexxidx; vertnum = savetab[savenum].u.linkdat.vexxidx; /* Get vertex number */ for (vexxidx = (vertnum * KGRAPHMAPFMHASHPRIME) & hashmsk; vexxtab[vexxidx].vertnum != vertnum; vexxidx = (vexxidx + 1) & hashmsk) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].vertnum == ~0) { errorPrint ("kgraphMapFmResize: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } savetab[savenum].u.linkdat.vexxidx = vexxidx; /* Set new hash table index */ } } return (0); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the k-way partitioning. ** It returns: ** - 0 : if k-partition could be computed. ** - 1 : on error. */ int kgraphMapFm ( Kgraph * restrict const grafptr, /*+ Active graph +*/ const KgraphMapFmParam * const paraptr) /*+ Method parameters +*/ { KgraphMapFmSave * savetab; /* Pointer to move array */ KgraphMapFmVertex * restrict vexxtab; /* Extended vertex hash table array */ KgraphMapFmEdge * edxxtab; /* Edge extended array */ Gnum edxxnbr; /* Current number of links in link array */ Gnum edxxsiz; Gnum edxxnum; Gnum edxxcdx; /* Index for extended edge copy */ Gnum edcunbr; /* Current number of unused extended edge slots */ Gnum edxunbr; /* Number of unused extended edge slots */ Gnum * comploadmax; /* Array of maximum imbalances */ Gnum * comploaddlt; Gnum commload; Gnum cmigload; KgraphMapFmTabl * restrict tablptr; /* Pointer to gain table for easy access */ KgraphMapFmTabl tabldat; /* Gain table */ KgraphMapFmVertex * lockptr; Gnum fronnum; Gnum fronnbr; Gnum commloadbst; Gnum cmigloadbst; Gnum moveflag; /* Flag set if useful moves made */ Gnum edcpflag; /* Extended edge array compacting flag */ Gnum comploaddiff; Gnum flagval; Anum domnnum; Gnum vexxidx; Gnum passnbr; /* Maximum number of passes to go */ Gnum movenbr; /* Number of uneffective moves done */ Gnum savenbr; /* Number of recorded backtrack moves */ Gnum savesiz; /* Size of save array */ Gnum mswpnum; /* Current number of recording sweep */ Gnum vertnum; Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ Gnum hashnum; /* Hash value */ Gnum hashmax; /* Maximum number of entries in vertex hash table */ Gnum hashnbr; /* Current number of entries in vertex hash table */ #ifdef SCOTCH_DEBUG_KGRAPH3 Gnum * chektab; /* Extra memory needed for the check routine */ #endif /* SCOTCH_DEBUG_KGRAPH3 */ const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const edlotax = grafptr->s.edlotax; const Arch * restrict const archptr = grafptr->m.archptr; const Gnum domnnbr = grafptr->m.domnnbr; const ArchDom * restrict const domntab = grafptr->m.domntab; Anum * restrict const parttax = grafptr->m.parttax; Anum * restrict const parotax = grafptr->r.m.parttax; const Gnum * restrict const pfixtax = grafptr->pfixtax; #ifdef SCOTCH_DEBUG_KGRAPH3 /* Allocation of extra memory needed for the check routine */ if ((chektab = memAlloc (domnnbr * 3 * sizeof(Gnum))) == NULL) { errorPrint ("kgraphMapFm: out of memory (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ tablptr = &tabldat; grafptr->kbalval = paraptr->deltval; /* Store last k-way imbalance ratio */ kgraphCost (grafptr); grafptr->commload *= grafptr->r.crloval; /* crloval must be 1 if we are not doing a repartitioning of a no-band graph */ if (memAllocGroup ((void **) (void *) /* Allocation and initialization of imbalance arrays */ &comploadmax, (size_t) (domnnbr * sizeof (Gnum)), &comploaddlt, (size_t) (domnnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("kgraphMapFm: out of memory (2)"); return (1); } for (domnnum = 0; domnnum < domnnbr; domnnum ++) { comploadmax[domnnum] = (Gnum) ((double) grafptr->comploadavg[domnnum] * paraptr->deltval); comploaddlt[domnnum] = grafptr->comploaddlt[domnnum]; } if (grafptr->fronnbr == 0) { /* If no current frontier */ Anum domnnum; for (domnnum = 0; domnnum < domnnbr; domnnum ++) { if (abs (grafptr->comploaddlt[domnnum]) > comploadmax[domnnum]) break; } if (domnnum == domnnbr) { /* If balance is correct */ memFree (comploadmax); /* Nothing to do */ return (0); } else { /* Imbalance must be fought */ const Strat * strat; strat = stratInit (&kgraphmapststratab, "r{sep=h{pass=10}}"); /* Use a standard algorithm */ kgraphMapSt (grafptr, strat); /* Perform mapping */ if (grafptr->fronnbr == 0) { /* If new partition has no frontier */ memFree (comploadmax); return (0); /* This algorithm is still useless */ } if (memReallocGroup ((void *) comploadmax, /* domnnbr has changed after mapping */ &comploadmax, (size_t) (domnnbr * sizeof (Gnum)), &comploaddlt, (size_t) (domnnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("kgraphMapFm: out of memory (3)"); return (1); } for (domnnum = 0; domnnum < domnnbr; domnnum ++) { /* Else update compload{max,dlt} according to new partition */ comploadmax[domnnum] = (Gnum) ((double) grafptr->comploadavg[domnnum] * paraptr->deltval); comploaddlt[domnnum] = grafptr->comploaddlt[domnnum]; } } } #ifdef SCOTCH_DEBUG_KGRAPH2 /* Allocation of extended vertex hash table and extended edge array */ hashnbr = 2 * grafptr->fronnbr + 1; /* Ensure resizing will be performed, for maximum code coverage */ savesiz = 2 * grafptr->fronnbr + 1; /* Ensure resizing will be performed, for maximum code coverage */ edxxsiz = 2 * grafptr->fronnbr + 1; /* Ensure resizing will be performed, for maximum code coverage */ #else /* SCOTCH_DEBUG_KGRAPH2 */ hashnbr = 4 * (grafptr->fronnbr + paraptr->movenbr + grafptr->s.degrmax); savesiz = 4 * (grafptr->fronnbr + paraptr->movenbr + grafptr->s.degrmax) * 2; edxxsiz = 4 * (grafptr->fronnbr + paraptr->movenbr + grafptr->s.degrmax) * 4; #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (hashnbr > grafptr->s.vertnbr) hashnbr = grafptr->s.vertnbr; if (edxxsiz > grafptr->s.edgenbr) edxxsiz = grafptr->s.edgenbr; for (hashsiz = 256; hashsiz < hashnbr; hashsiz <<= 1) ; /* Get upper power of two */ hashmsk = hashsiz - 1; hashmax = hashsiz >> 2; if (kgraphMapFmTablInit (tablptr) != 0) { errorPrint ("kgraphMapFm: internal error (1)"); /* Unable to do proper initialization */ kgraphMapFmTablExit (tablptr); return (1); } else { if (((vexxtab = memAlloc ((size_t) hashsiz * sizeof (KgraphMapFmVertex))) == NULL) || ((savetab = memAlloc ((size_t) savesiz * sizeof (KgraphMapFmSave))) == NULL) || ((edxxtab = memAlloc ((size_t) edxxsiz * sizeof (KgraphMapFmEdge))) == NULL)) { errorPrint ("kgraphMapFm: out of memory (4)"); kgraphMapFmTablExit (tablptr); return (1); } } memSet (vexxtab, ~0, hashsiz * sizeof (KgraphMapFmVertex)); /* Set all vertex numbers to ~0 */ memSet (edxxtab, ~0, edxxsiz * sizeof (KgraphMapFmEdge)); /* Set all edge numbers to ~0 */ hashnbr = grafptr->fronnbr; while (hashnbr >= hashmax) { if (kgraphMapFmResize (&vexxtab, &hashmax, &hashmsk, savetab, 0, tablptr, edxxtab, &lockptr) != 0) { errorPrint ("kgraphMapFm: out of memory (5)"); memFree (vexxtab); /* Free group leader */ kgraphMapFmTablExit (tablptr); return (1); } } edxxnbr = 0; for (fronnum = 0; fronnum < hashnbr; fronnum ++) { /* Set initial gains */ Gnum vertnum; vertnum = grafptr->frontab[fronnum]; if ((pfixtax == NULL) || (pfixtax[vertnum] == -1)) { /* Add only not fixed vertices */ for (hashnum = (vertnum * KGRAPHMAPFMHASHPRIME) & hashmsk; vexxtab[hashnum].vertnum != ~0; hashnum = (hashnum + 1) & hashmsk) ; kgraphMapFmPartAdd (grafptr, vertnum, hashnum, vexxtab, &edxxtab, &edxxsiz, &edxxnbr, tablptr); #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[hashnum].edxxidx == -1) { /* If vertex does not have any neighbor */ errorPrint ("kgraphMapFm: vertex does not belong to frontier"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } #ifdef SCOTCH_DEBUG_KGRAPH2 if (hashnbr >= hashmax) { /* Hash table too small (must not occur) */ errorPrint ("kgraphMapFm: hash table to small"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ commloadbst = grafptr->commload; /* Start from initial situation */ cmigloadbst = 0; /* Do not take initial migration cost situation into account */ #ifdef SCOTCH_DEBUG_KGRAPH3 if (kgraphMapFmCheck (tablptr, grafptr, vexxtab, edxxtab, hashmsk, commloadbst, chektab) != 0) { errorPrint ("kgraphMapFm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ passnbr = paraptr->passnbr; /* Set remaining number of passes */ savenbr = 0; /* For empty backtrack of first pass */ mswpnum = 0; /* Will be incremented afterwards */ lockptr = (KgraphMapFmVertex *) -1; /* Locked list is empty */ edxunbr = 0; do { /* As long as there are improvements */ KgraphMapFmEdge * edxxptr; Gnum oldsavenbr; oldsavenbr = savenbr; while (savenbr -- > 0) { /* Delete exceeding moves */ /* Restore last correct state of the graph * All unlocked vertices have all there valid extended edges in the table * Any of the deprecated edges are in the table * Any of locked vertices have extended edges in the table */ Gnum vexxidx; Gnum oldveloval; Anum domnnum; Anum domnorg; Gnum edxxidx; Gnum * edxiptr; switch (savetab[savenbr].type) { case KGRAPHMAPPFMSAVEVEXX: vexxidx = savetab[savenbr].u.vexxdat.vexxidx; domnnum = savetab[savenbr].u.vexxdat.domnnum; domnorg = vexxtab[vexxidx].domnnum; oldveloval = vexxtab[vexxidx].veloval; vexxtab[vexxidx].domnnum = domnnum; /* Restore vertex data */ vexxtab[vexxidx].veloval = savetab[savenbr].u.vexxdat.veloval; vexxtab[vexxidx].cmigload = savetab[savenbr].u.vexxdat.cmigload; vexxtab[vexxidx].edlosum = savetab[savenbr].u.vexxdat.edlosum; vexxtab[vexxidx].edgenbr = savetab[savenbr].u.vexxdat.edgenbr; parttax[vexxtab[vexxidx].vertnum] = domnnum; comploaddlt[domnorg] -= oldveloval; /* Update domain load delta */ comploaddlt[domnnum] += oldveloval; break; case KGRAPHMAPPFMSAVEEDXX: edxxidx = savetab[savenbr].u.edxxdat.edxxidx; /* Restore extended edge data */ edxxtab[edxxidx].domnnum = savetab[savenbr].u.edxxdat.domnnum; edxxtab[edxxidx].commgain = savetab[savenbr].u.edxxdat.commgain; edxxtab[edxxidx].cmiggain = savetab[savenbr].u.edxxdat.cmiggain; edxxtab[edxxidx].cmigmask = (parotax != NULL) ? ~0 : 0; edxxtab[edxxidx].edlosum = savetab[savenbr].u.edxxdat.edlosum; edxxtab[edxxidx].edgenbr = savetab[savenbr].u.edxxdat.edgenbr; edxxtab[edxxidx].distval = savetab[savenbr].u.edxxdat.distval; break; case KGRAPHMAPPFMSAVELINKDEL: edxxidx = savetab[savenbr].u.linkdat.edxxidx; vexxidx = savetab[savenbr].u.linkdat.vexxidx; if (edxxtab[edxxidx].vexxidx != vexxidx) /* Restore correct vexxidx after resize */ edxxtab[edxxidx].vexxidx = vexxidx; edxxtab[edxxidx].edxxidx = vexxtab[vexxidx].edxxidx; /* Add it back to vertex list and set it as used */ vexxtab[vexxidx].edxxidx = edxxidx; edxunbr --; /* One more used edge slot */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (edxunbr < 0) { errorPrint ("kgraphMapFm: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (vexxtab[vexxidx].lockptr == NULL) kgraphMapFmTablAdd (tablptr, &edxxtab[edxxidx]); /* Link it back */ break; case KGRAPHMAPPFMSAVELINKADD: edxxidx = savetab[savenbr].u.linkdat.edxxidx; vexxidx = savetab[savenbr].u.linkdat.vexxidx; if (edxxtab[edxxidx].vexxidx != vexxidx) /* Restore correct vexxidx after resize */ edxxtab[edxxidx].vexxidx = vexxidx; if (vexxtab[vexxidx].lockptr == NULL) kgraphMapFmTablDel (tablptr, &edxxtab[edxxidx]); /* Unlink it */ for (edxiptr = &vexxtab[vexxidx].edxxidx; (*edxiptr != edxxidx) && (*edxiptr != -1); edxiptr = &edxxtab[*edxiptr].edxxidx) ; #ifdef SCOTCH_DEBUG_KGRAPH2 if (*edxiptr == -1) { /* Since it has been added to the list, extended edge must be in it */ errorPrint ("kgraphMapFm: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ *edxiptr = edxxtab[edxxidx].edxxidx; /* Remove it from the vertex list */ edxxtab[edxxidx].edxxidx = -2; /* Set slot as unused */ edxunbr ++; /* One more unused edge slot */ break; } } edcpflag = 0; /* Assume that extended edge array not need to be compacted */ if (edxunbr > (edxxnbr / KGRAPHMAPFMEDXXCOMP)) { /* If more than 20% of edxxtab is unused, compact edxxtab */ edcpflag = 1; for (vexxidx = 0; vexxidx <= hashmsk; vexxidx ++) /* Extended edge list must be recomputed */ vexxtab[vexxidx].edxxidx = -1; edxxcdx = 0; edcunbr = 0; kgraphMapFmTablFree (tablptr); /* Free all edges in gain structure */ for (edxxnum = 0; edxxnum < edxxnbr; edxxnum ++) { /* Remove unused slots of edxxtab */ if (edxxtab[edxxnum].edxxidx == -2) { if (edcunbr > 0) { memmove (&edxxtab[edxxcdx], &edxxtab[edxxcdx + edcunbr], (edxxnum - edxxcdx - edcunbr) * sizeof (KgraphMapFmEdge)); /* Since there is overlapping, use memmove */ edxxcdx = edxxnum - edcunbr; } else edxxcdx = edxxnum; edcunbr ++; } else { vexxidx = edxxtab[edxxnum].vexxidx; edxxtab[edxxnum].edxxidx = vexxtab[vexxidx].edxxidx; /* Link edge to vertex */ vexxtab[vexxidx].edxxidx = edxxnum - edcunbr; /* Set to new index */ } } if ((edcunbr > 0) && (edxxtab[edxxnbr - 1].edxxidx != -2)) memmove (&edxxtab[edxxcdx], &edxxtab[edxxcdx + edcunbr], (edxxnum - edxxcdx - edcunbr) * sizeof (KgraphMapFmEdge)); edxxnbr -= edcunbr; edxunbr = 0; } else { while (oldsavenbr -- > 0) { /* Must be sure that all parttax is correct before recompute vertices gains */ if (savetab[oldsavenbr].type == KGRAPHMAPPFMSAVEVEXX) { Gnum vexxidx; Gnum edxxtmp; vexxidx = savetab[oldsavenbr].u.vexxdat.vexxidx; if (vexxtab[vexxidx].lockptr == NULL) { for (edxxtmp = vexxtab[vexxidx].edxxidx; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) { /* Relink all vertex links */ kgraphMapFmTablDel (tablptr, &edxxtab[edxxtmp]); kgraphMapFmTablAdd (tablptr, &edxxtab[edxxtmp]); } } } } } while (lockptr != (KgraphMapFmVertex *) -1) { /* Unlock locked vertices */ KgraphMapFmVertex * vexxptr; Gnum edxxtmp; vexxptr = lockptr; /* Get vertex associated with lock list */ lockptr = kgraphMapFmLockNext (lockptr); /* Point to next vertex to unlock */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxptr->lockptr == NULL) { errorPrint ("kgraphMapFm: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ vexxptr->lockptr = NULL; /* Set vertex as unlocked */ if (edcpflag == 0) /* It has not been done during edxxtab compacting */ for (edxxtmp = vexxptr->edxxidx; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) /* Relink all vertex links */ kgraphMapFmTablAdd (tablptr, &edxxtab[edxxtmp]); } if (edcpflag == 1) for (edxxnum = 0; edxxnum < edxxnbr; edxxnum ++) kgraphMapFmTablAdd (tablptr, &edxxtab[edxxnum]); /* Add all used links, all vertices will be unlocked */ commload = commloadbst; cmigload = cmigloadbst; mswpnum ++; /* Forget all recorded moves */ #ifdef SCOTCH_DEBUG_KGRAPH3 if (kgraphMapFmCheck (tablptr, grafptr, vexxtab, edxxtab, hashmsk, commload, chektab) != 0) { errorPrint ("kgraphMapFm: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ moveflag = 0; /* No useful moves made */ movenbr = 0; /* No ineffective moves recorded yet */ savenbr = 0; /* Back up to beginning of table */ comploaddiff = 0; flagval = 0; while ((movenbr < paraptr->movenbr) && ((edxxptr = (KgraphMapFmEdge *) kgraphMapFmTablGet (tablptr, vexxtab, comploaddlt, comploadmax, &comploaddiff, &flagval)) != NULL)) { /* Move one vertex */ Gnum vexxidx; Gnum edxxtmp; Gnum veloval; Gnum edgenum; Anum domnnum; Gnum edlosum; Gnum edgenbr; Anum domnend; Gnum edxxidx; Gnum * edxpptr; Gnum * vpexptr; vexxidx = edxxptr->vexxidx; /* Get relevant information */ vertnum = vexxtab[vexxidx].vertnum; veloval = vexxtab[vexxidx].veloval; domnnum = vexxtab[vexxidx].domnnum; edlosum = vexxtab[vexxidx].edlosum; edgenbr = vexxtab[vexxidx].edgenbr; domnend = edxxptr->domnnum; /* Save moved vertex information */ if (vexxtab[vexxidx].mswpnum != mswpnum) { /* If extended vertex data not yet recorded */ vexxtab[vexxidx].mswpnum = mswpnum; savetab[savenbr].type = KGRAPHMAPPFMSAVEVEXX; /* Save extended vertex data */ savetab[savenbr].u.vexxdat.vexxidx = vexxidx; savetab[savenbr].u.vexxdat.veloval = veloval; savetab[savenbr].u.vexxdat.domnnum = domnnum; savetab[savenbr].u.vexxdat.cmigload = vexxtab[vexxidx].cmigload; savetab[savenbr].u.vexxdat.edlosum = edlosum; savetab[savenbr].u.vexxdat.edgenbr = edgenbr; savenbr ++; /* One more data recorded */ } for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxxidx = edxxtab[edxxidx].edxxidx) { /* Save vertex links */ if (edxxtab[edxxidx].mswpnum != mswpnum) { /* If extended edge data not yet recorded */ edxxtab[edxxidx].mswpnum = mswpnum; savetab[savenbr].type = KGRAPHMAPPFMSAVEEDXX; /* Save extended edge data */ savetab[savenbr].u.edxxdat.edxxidx = edxxidx; savetab[savenbr].u.edxxdat.domnnum = edxxtab[edxxidx].domnnum; savetab[savenbr].u.edxxdat.commgain = edxxtab[edxxidx].commgain; savetab[savenbr].u.edxxdat.cmiggain = edxxtab[edxxidx].cmiggain; savetab[savenbr].u.edxxdat.edlosum = edxxtab[edxxidx].edlosum; savetab[savenbr].u.edxxdat.edgenbr = edxxtab[edxxidx].edgenbr; savetab[savenbr].u.edxxdat.distval = edxxtab[edxxidx].distval; savenbr ++; /* One more data recorded */ } } movenbr ++; /* One more move done */ commload += edxxptr->commgain; cmigload += edxxptr->cmiggain; #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].lockptr != NULL) { /* Vertex is locked */ errorPrint ("kgraphMapFm: internal error (7)"); return (1); } if (vexxtab[vexxidx].edxxidx == -1) { /* Vertex not in the frontier */ errorPrint ("kgraphMapFm: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ kgraphMapFmLock (lockptr, &vexxtab[vexxidx]); /* Set part as having changed (lock vertex) */ for (edxxtmp = vexxtab[vexxidx].edxxidx; edxxtmp != -1; edxxtmp = edxxtab[edxxtmp].edxxidx) /* Unlink all vertex links from gain arrays */ kgraphMapFmTablDel (tablptr, &edxxtab[edxxtmp]); edxxtmp = vexxtab[vexxidx].edxxidx; /* Lock vertex through its first link */ /* Switch information with corresponding extended edge * No add or del of extended edges needed. */ parttax[vertnum] = domnend; /* Change vertex part */ comploaddlt[domnnum] -= veloval; /* Account for move */ comploaddlt[domnend] += veloval; vexxtab[vexxidx].domnnum = domnend; /* Swap edges */ edxxptr->domnnum = domnnum; vexxtab[vexxidx].edlosum = edxxptr->edlosum; edxxptr->edlosum = edlosum; vexxtab[vexxidx].edgenbr = edxxptr->edgenbr; edxxptr->edgenbr = edgenbr; vexxtab[vexxidx].cmigload += edxxptr->cmiggain; edxpptr = &vexxtab[vexxidx].edxxidx; for (edxxidx = vexxtab[vexxidx].edxxidx; edxxidx != -1; edxpptr = &edxxtab[edxxidx].edxxidx, edxxidx = edxxtab[edxxidx].edxxidx) { /* Update vertex links */ Gnum domncur; domncur = edxxtab[edxxidx].domnnum; if (domncur == domnnum) { vpexptr = edxpptr; continue; } edxxtab[edxxidx].commgain -= edxxptr->commgain; edxxtab[edxxidx].cmiggain -= edxxptr->cmiggain; edxxtab[edxxidx].distval = archDomDist (archptr, &domntab[domnend], &domntab[domncur]); } edxxptr->commgain = - edxxptr->commgain; edxxptr->cmiggain = - edxxptr->cmiggain; if (edgenbr == 0) { Gnum edxxidx; edxxidx = *vpexptr; savetab[savenbr].type = KGRAPHMAPPFMSAVELINKDEL; /* Save it */ savetab[savenbr].u.linkdat.edxxidx = edxxidx; savetab[savenbr].u.linkdat.vexxidx = vexxidx; savenbr ++; /* One more data recorded */ *vpexptr = edxxtab[edxxidx].edxxidx; /* Remove it from extended vertex list */ edxxtab[edxxidx].edxxidx = -2; /* Set extended edge slot as unused */ edxunbr ++; /* One more unused edge slot */ } for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* (Re-)link neighbors */ /* - Add the vertex in vexxtab if not yet inserted * - Del the edge to the vertnum old domain if it was the only vertex * linked to this domain. * - Add and edge to the vertnum new domain if it was the first vertex * linked to this domain. * - Update commgain of other edges. * - Relink extended edges */ Gnum edxxend; Gnum vexxend; Gnum edxoidx; /* Index of extended edge to old domain */ Gnum * edxcptr; /* Pointer to index of current extended edge */ Gnum * edxoptr; /* Pointer to index of extended edge to old domain */ Gnum edxnidx; /* index of extended edge to new domain */ Gnum vertend; /* Number of current end neighbor vertex */ Gnum edxfidx; /* Index of first extended edge to update */ Anum divoval; /* Distance between current neighbor domain and old domain */ Anum divnval; /* Distance between current neighbor domain and new domain */ Gnum edloval; vertend = edgetax[edgenum]; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; if ((pfixtax != NULL) && (pfixtax[vertend] != -1)) /* Do not link fixed vertices */ continue; if (savenbr >= (savesiz - (domnnbr + 4) * 4)) { KgraphMapFmSave * saveptr; /* Pointer to move array */ while (savenbr >= (savesiz - (domnnbr + 4) * 4)) savesiz += savesiz / 2; if ((saveptr = memRealloc (savetab, savesiz * sizeof (KgraphMapFmSave))) == NULL) { errorPrint ("kgraphMapFm: out of memory (6)"); memFree (savetab); /* Free group leader */ return (1); } savetab = saveptr; } if (hashnbr >= hashmax) { /* If extended vertex table is already full */ if (kgraphMapFmResize (&vexxtab, &hashmax, &hashmsk, savetab, savenbr, tablptr, edxxtab, &lockptr) != 0) { errorPrint ("kgraphMapFm: out of memory (7)"); memFree (vexxtab); /* Free group leader */ kgraphMapFmTablExit (tablptr); return (1); } } for (vexxend = (vertend * KGRAPHMAPFMHASHPRIME) & hashmsk; /* Search for vertex or first free slot */ (vexxtab[vexxend].vertnum != vertend) && (vexxtab[vexxend].vertnum != ~0); vexxend = (vexxend + 1) & hashmsk) ; if (vexxtab[vexxend].vertnum == ~0) { /* If neighbor vertex not yet inserted, create it */ kgraphMapFmPartAdd (grafptr, vertend, vexxend, vexxtab, &edxxtab, &edxxsiz, &edxxnbr, tablptr); hashnbr ++; /* One more vertex in hash table */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxend].edxxidx == -1) { errorPrint ("kgraphMapFm: internal error (9)"); return (1); } if (edxxtab[vexxtab[vexxend].edxxidx].domnnum != domnend) { errorPrint ("kgraphMapFm: internal error (10)"); return (1); } if (edxxtab[vexxtab[vexxend].edxxidx].edxxidx != -1) { errorPrint ("kgraphMapFm: internal error (11)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ vexxtab[vexxend].mswpnum = mswpnum; savetab[savenbr].type = KGRAPHMAPPFMSAVEVEXX; /* Save extended vertex data */ savetab[savenbr].u.vexxdat.vexxidx = vexxend; savetab[savenbr].u.vexxdat.veloval = vexxtab[vexxend].veloval; savetab[savenbr].u.vexxdat.domnnum = vexxtab[vexxend].domnnum; savetab[savenbr].u.vexxdat.cmigload = vexxtab[vexxend].cmigload; savetab[savenbr].u.vexxdat.edlosum = vexxtab[vexxend].edlosum + edloval; /* Save state before vertex move */ savetab[savenbr].u.vexxdat.edgenbr = vexxtab[vexxend].edgenbr + 1; savenbr ++; /* One more data saved */ savetab[savenbr].type = KGRAPHMAPPFMSAVELINKADD; /* Save extended edge creation */ savetab[savenbr].u.linkdat.edxxidx = vexxtab[vexxend].edxxidx; savetab[savenbr].u.linkdat.vexxidx = vexxend; savenbr ++; /* One more data recorded */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (savenbr > savesiz) { errorPrint ("kgraphMapFm: save array error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ continue; } if (vexxtab[vexxend].mswpnum != mswpnum) { /* If vertex data not yet recorded */ vexxtab[vexxend].mswpnum = mswpnum; savetab[savenbr].type = KGRAPHMAPPFMSAVEVEXX; /* Save extended vertex data */ savetab[savenbr].u.vexxdat.vexxidx = vexxend; savetab[savenbr].u.vexxdat.veloval = vexxtab[vexxend].veloval; savetab[savenbr].u.vexxdat.domnnum = vexxtab[vexxend].domnnum; savetab[savenbr].u.vexxdat.cmigload = vexxtab[vexxend].cmigload; savetab[savenbr].u.vexxdat.edlosum = vexxtab[vexxend].edlosum; savetab[savenbr].u.vexxdat.edgenbr = vexxtab[vexxend].edgenbr; savenbr ++; /* One more data saved */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (savenbr > savesiz) { errorPrint ("kgraphMapFm: save array error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } edxoidx = edxnidx = -1; /* Assume there are no extended edges to domnnum or domnend */ for (edxcptr = &vexxtab[vexxend].edxxidx, edxxidx = vexxtab[vexxend].edxxidx; edxxidx != -1; edxcptr = &edxxtab[edxxidx].edxxidx, edxxidx = edxxtab[edxxidx].edxxidx) { /* Loop on domains */ Gnum domncur; /* Save vertex links */ domncur = edxxtab[edxxidx].domnnum; if (edxxtab[edxxidx].mswpnum != mswpnum) { /* If extended edge data not yet recorded */ edxxtab[edxxidx].mswpnum = mswpnum; savetab[savenbr].type = KGRAPHMAPPFMSAVEEDXX; /* Save extended edge data */ savetab[savenbr].u.edxxdat.edxxidx = edxxidx; savetab[savenbr].u.edxxdat.domnnum = domncur; savetab[savenbr].u.edxxdat.commgain = edxxtab[edxxidx].commgain; savetab[savenbr].u.edxxdat.cmiggain = edxxtab[edxxidx].cmiggain; savetab[savenbr].u.edxxdat.edlosum = edxxtab[edxxidx].edlosum; savetab[savenbr].u.edxxdat.edgenbr = edxxtab[edxxidx].edgenbr; savetab[savenbr].u.edxxdat.distval = edxxtab[edxxidx].distval; savenbr ++; /* One more data recorded */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (savenbr > savesiz) { errorPrint ("kgraphMapFm: save array error (3)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } if (domncur == domnnum) { edxoidx = edxxidx; edxoptr = edxcptr; edxxtab[edxxidx].edlosum -= edloval; edxxtab[edxxidx].edgenbr --; divoval = edxxtab[edxxidx].distval; } else if (domncur == domnend) { edxnidx = edxxidx; edxxtab[edxxidx].edlosum += edloval; edxxtab[edxxidx].edgenbr ++; divnval = edxxtab[edxxidx].distval; } } #ifdef SCOTCH_DEBUG_KGRAPH2 if ((edxoidx == -1) && (vexxtab[vexxend].domnnum != domnnum)) { errorPrint ("kgraphMapFm: internal error (12)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (vexxtab[vexxend].domnnum == domnend) { vexxtab[vexxend].edlosum += edloval; vexxtab[vexxend].edgenbr ++; divnval = 0; } if (vexxtab[vexxend].domnnum == domnnum) { /* Remove edge from neighbor domain */ vexxtab[vexxend].edlosum -= edloval; vexxtab[vexxend].edgenbr --; divoval = 0; } else { if (edxxtab[edxoidx].edgenbr == 0) { /* If it was the last edge in the end domain, save it */ savetab[savenbr].type = KGRAPHMAPPFMSAVELINKDEL; savetab[savenbr].u.linkdat.edxxidx = edxoidx; savetab[savenbr].u.linkdat.vexxidx = vexxend; savenbr ++; /* One more data recorded */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (savenbr > savesiz) { errorPrint ("kgraphMapFm: save array error (4)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ *edxoptr = edxxtab[edxoidx].edxxidx; /* Remove it from extended vertex list */ if (vexxtab[vexxend].lockptr == NULL) /* If edge is of use (vertex not locked) */ kgraphMapFmTablDel (tablptr, &edxxtab[edxoidx]); /* Remove it */ edxxtab[edxoidx].edxxidx = -2; /* Set extended edge slot as unused */ edxunbr ++; /* One more unused edge slot */ } } if ((edxnidx == -1) && (vexxtab[vexxend].domnnum != domnend)) { /* If was first vertex linked to this domain, add edge to new domain */ #ifdef SCOTCH_DEBUG_KGRAPH2 Gnum edxxidx; #endif /* SCOTCH_DEBUG_KGRAPH2 */ kgraphMapFmPartAdd2 (grafptr, vexxtab, vexxend, &edxxtab, &edxxsiz, &edxxnbr, vexxtab[vexxend].domnnum, domnend, edloval, tablptr); /* Add new extended edge */ #ifdef SCOTCH_DEBUG_KGRAPH2 for (edxxidx = vexxtab[vexxend].edxxidx; (edxxidx != -1) && (edxxtab[edxxidx].domnnum != domnend); edxxidx = edxxtab[edxxidx].edxxidx) ; if (edxxidx == -1) { errorPrint ("kgraphMapFm: internal error (13)"); return (1); } if (edxxidx != edxxnbr - 1) { errorPrint ("kgraphMapFm: internal error (14)"); return (1); } if (edxxtab[edxxidx].domnnum != domnend) { errorPrint ("kgraphMapFm: internal error (15)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ savetab[savenbr].type = KGRAPHMAPPFMSAVELINKADD; /* Save extended edge creation */ savetab[savenbr].u.linkdat.edxxidx = edxxnbr - 1; savetab[savenbr].u.linkdat.vexxidx = vexxend; savenbr ++; /* One more data recorded */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (savenbr > savesiz) { errorPrint ("kgraphMapFm: save array error (5)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ divnval = edxxtab[edxxnbr - 1].distval; edxfidx = edxxtab[edxxnbr - 1].edxxidx; /* Skip update of the newly added extended edge */ } else edxfidx = vexxtab[vexxend].edxxidx; edloval *= grafptr->r.crloval; for (edxxend = edxfidx; edxxend != -1; edxxend = edxxtab[edxxend].edxxidx) /* Update vertex links */ edxxtab[edxxend].commgain -= edloval * (divnval - archDomDist (archptr, &domntab[edxxtab[edxxend].domnnum], &domntab[domnend]) - divoval + archDomDist (archptr, &domntab[edxxtab[edxxend].domnnum], &domntab[domnnum])); if (vexxtab[vexxend].lockptr == NULL) { /* If vertex is not locked */ for (edxxend = edxfidx; edxxend != -1; edxxend = edxxtab[edxxend].edxxidx) { /* Relink its extended edges */ kgraphMapFmTablDel (tablptr, &edxxtab[edxxend]); /* Remove it and re-link it */ kgraphMapFmTablAdd (tablptr, &edxxtab[edxxend]); } } } if (flagval == 1) { /* If move improves balance and we do not respect it */ commloadbst = commload; /* This move was effective */ cmigloadbst = cmigload; moveflag = 1; movenbr = savenbr = 0; flagval = 0; comploaddiff = 0; mswpnum ++; } else if ((commload + cmigload) < (commloadbst + cmigloadbst)) { /* If move improves the cost */ commloadbst = commload; /* This move was effective */ cmigloadbst = cmigload; moveflag = 1; movenbr = savenbr = 0; flagval = 0; comploaddiff = 0; mswpnum ++; } else if (((commload + cmigload) == (commloadbst + cmigloadbst)) && (comploaddiff < 0)) { /* If move improves balance and cut does not decrease */ commloadbst = commload; /* This move was effective */ cmigloadbst = cmigload; moveflag = 1; movenbr = savenbr = 0; flagval = 0; comploaddiff = 0; mswpnum ++; } else if (((commload + cmigload) == (commloadbst + cmigloadbst)) && (comploaddiff == 0)) { commloadbst = commload; /* Forget backtracking */ cmigloadbst = cmigload; movenbr = savenbr = 0; flagval = 0; mswpnum ++; } #ifdef SCOTCH_DEBUG_KGRAPH3 if (kgraphMapFmCheck (tablptr, grafptr, vexxtab, edxxtab, hashmsk, commload, chektab) != 0) { errorPrint ("kgraphMapFm: internal error (16)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ } #ifdef SCOTCH_DEBUG_KGRAPH3 if (kgraphMapFmCheck (tablptr, grafptr, vexxtab, edxxtab, hashmsk, commload, chektab) != 0) { errorPrint ("kgraphMapFm: internal error (17)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ } while ((moveflag != 0) && /* As long as vertices are moved */ (-- passnbr != 0)); /* And we are allowed to loop (TRICK for negative values) */ #ifdef SCOTCH_DEBUG_KGRAPH3 if (kgraphMapFmCheck (tablptr, grafptr, vexxtab, edxxtab, hashmsk, commload, chektab) != 0) { errorPrint ("kgraphMapFm: internal error (18)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH3 */ while (savenbr -- > 0) { /* Delete exceeding moves */ Gnum vexxidx; Anum domnnum; Gnum veloval; if (savetab[savenbr].type == KGRAPHMAPPFMSAVEVEXX) { vexxidx = savetab[savenbr].u.vexxdat.vexxidx; domnnum = savetab[savenbr].u.vexxdat.domnnum; veloval = savetab[savenbr].u.vexxdat.veloval; comploaddlt[vexxtab[vexxidx].domnnum] -= veloval; comploaddlt[domnnum] += veloval; vexxtab[vexxidx].domnnum = domnnum; /* Restore vertex data */ parttax[vexxtab[vexxidx].vertnum] = domnnum; } } commload = 0; for (vexxidx = fronnbr = 0; /* Build new frontier, compute commload, update parttax */ vexxidx <= hashmsk; vexxidx ++) { /* hashsiz no longer valid after resizing, so use hashmsk */ Gnum vertnum; Gnum edgenum; Anum domnnum; Anum domnlst; /* Domain of last vertex for which a distance was computed */ Anum distlst; /* Last distance computed */ Gnum commcut; vertnum = vexxtab[vexxidx].vertnum; /* Get vertex data from slot */ if (vertnum != ~0) { commcut = 0; domnnum = parttax[vertnum]; domnlst = -1; /* Invalid domnain to recompute distance */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (vexxtab[vexxidx].domnnum != parttax[vertnum]) { errorPrint ("kgraphMapFm: internal error (19)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum domnend; vertend = edgetax[edgenum]; domnend = parttax[vertend]; if (domnend != domnnum) { Anum distval; Gnum edloval; distval = (domnend != domnlst) ? archDomDist (archptr, &domntab[domnnum], &domntab[domnend]) : distlst; distlst = distval; domnlst = domnend; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; commload += (Gnum) distval * edloval; commcut = 1; } } if (commcut != 0) grafptr->frontab[fronnbr ++] = vertnum; } } if (grafptr->pfixtax != NULL) { /* We have fixed vertices */ Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { if ((grafptr->pfixtax != NULL) && (grafptr->pfixtax[vertnum] != -1)) { /* If vertex is fixed */ Gnum edgenum; Anum domnnum; Gnum commcut; Anum domnlst; /* Domain of last vertex for which a distance was computed */ Anum distlst; /* Last distance computed */ commcut = 0; domnnum = parttax[vertnum]; domnlst = -1; /* Invalid domnain to recompute distance */ for (edgenum = verttax[vertnum]; /* For all neighbors */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum domnend; vertend = edgetax[edgenum]; domnend = parttax[vertend]; if (domnend != domnnum) { Anum distval; Gnum edloval; distval = (domnend != domnlst) ? archDomDist (archptr, &domntab[domnnum], &domntab[domnend]) : distlst; distlst = distval; domnlst = domnend; edloval = (edlotax != NULL) ? edlotax[edgenum] : 1; commload += (Gnum) distval * edloval; commcut = 1; } } if (commcut != 0) grafptr->frontab[fronnbr ++] = vertnum; } } } grafptr->fronnbr = fronnbr; grafptr->commload = commload / 2; for (domnnum = 0; domnnum < domnnbr; domnnum ++) /* Update graph information */ grafptr->comploaddlt[domnnum] = comploaddlt[domnnum]; #ifdef SCOTCH_DEBUG_KGRAPH3 memFree (chektab); /* Free group leader */ #endif /* SCOTCH_DEBUG_KGRAPH3 */ memFree (comploadmax); /* Free group leader */ memFree (vexxtab); memFree (savetab); memFree (edxxtab); kgraphMapFmTablExit (tablptr); #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (grafptr) != 0) { errorPrint ("kgraphMapFm: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_fm.h000066400000000000000000000244141514310134000266660ustar00rootroot00000000000000/* Copyright 2004,2010-2012,2016,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_fm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the k-way Fiduccia-Mattheyses **/ /** mapping algorithm. **/ /** **/ /** DATES : # Version 3.3 : from : 10 may 1999 **/ /** to : 20 jun 1999 **/ /** # Version 3.4 : from : 27 sep 1999 **/ /** to : 13 nov 1999 **/ /** # Version 5.0 : from : 11 oct 2006 **/ /** to : 12 oct 2006 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 07 jun 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing vertex numbers. +*/ #define KGRAPHMAPFMHASHPRIME 17 /*+ Prime number for hashing +*/ /*+ Ratio of unused slots before compacting extended edge array. +*/ #define KGRAPHMAPFMEDXXCOMP 5 /*+ Compact if edxunbr > (edxxnbr / KGRAPHMAPFMEDXXCOMP) */ /*+ Save type identifier +*/ #define KGRAPHMAPPFMSAVEVEXX 0 #define KGRAPHMAPPFMSAVEEDXX 1 #define KGRAPHMAPPFMSAVELINK 2 /* Bit value for KGRAPHMAPPFMSAVELINKADD and KGRAPHMAPPFMSAVELINKDEL */ #define KGRAPHMAPPFMSAVELINKDEL 2 #define KGRAPHMAPPFMSAVELINKADD 3 /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct KgraphMapFmParam_ { INT movenbr; /*+ Maximum number of uneffective moves that can be done +*/ INT passnbr; /*+ Number of passes to be performed (-1 : infinite) +*/ double deltval; /*+ Maximum weight imbalance ratio +*/ } KgraphMapFmParam; /*+ The extended edge structure. In fact, this structure does not represent edges, but possible moves in another domain. For trick reasons, the gain table data structure must be the first field of the structure. +*/ #ifdef SCOTCH_TABLE_GAIN typedef GainTabl * KgraphMapFmTabl; typedef GainLink KgraphMapFmLink; #else /* SCOTCH_TABLE_GAIN */ typedef FiboHeap KgraphMapFmTabl; typedef FiboNode KgraphMapFmLink; #endif /* SCOTCH_TABLE_GAIN */ typedef struct KgraphMapFmEdge_ { KgraphMapFmLink gainlink; /*+ Gain link; TRICK: FIRST +*/ Gnum commgain; /*+ Communication gain +*/ Gnum cmiggain; /*+ Migration communication gain +*/ Gnum cmigmask; /*+ Migration communication mask +*/ Gnum edlosum; /*+ Sum of edge loads linking to the domain +*/ Gnum edgenbr; /*+ Number of edges linking to the domain +*/ Anum domnnum; /*+ Destination domain index +*/ Anum distval; /*+ Distance between the two domains +*/ Gnum vexxidx; /*+ Index of owner vertex in vertex array +*/ Gnum edxxidx; /*+ Index of next edge in edge array +*/ Gnum mswpnum; /*+ Number of move sweep when data recorded +*/ } KgraphMapFmEdge; /*+ The hash vertex structure. +*/ typedef struct KgraphMapFmVertex_ { struct KgraphMapFmVertex_ * lockptr; /*+ Pointer to next vertex in lock list or NULL; FIRST +*/ Gnum vertnum; /*+ Number of vertex +*/ Gnum cmigload; /*+ Migration communication load +*/ Gnum edlosum; /*+ Sum of edge loads linking to self domain +*/ Gnum edgenbr; /*+ Number of edges linking to self domain +*/ Anum domnnum; /*+ Domain number +*/ ArchDom * domoptr; /*+ Domain in old mapping (for repartitioning) +*/ Gnum veloval; /*+ Vertex load; negative when locked +*/ Gnum edxxidx; /*+ Index of first element in edge array +*/ Gnum mswpnum; /*+ Number of move sweep when data recorded +*/ } KgraphMapFmVertex; /*+ The move recording structures. +*/ typedef struct KgraphMapFmSave_ { Gnum type; union { struct { Gnum vexxidx; /*+ Index of vertex slot in hash table (vexxhab) +*/ Gnum veloval; /*+ Vertex load +*/ Anum domnnum; /*+ Original vertex domain +*/ Gnum commload; /*+ Communication load for current domain +*/ Gnum cmigload; /*+ Migration communication load +*/ Gnum edlosum; /*+ Sum of edge loads linking to self domain +*/ Gnum edgenbr; /*+ Number of edges linking to self domain +*/ } vexxdat; struct { Gnum edxxidx; /*+ Index of edge in edge array +*/ Anum domnnum; /*+ Destination domain index +*/ Anum distval; /*+ Distance between the two domains +*/ Gnum commgain; /*+ Communication gain +*/ Gnum cmiggain; /*+ Migration communication gain +*/ Gnum edlosum; /*+ Sum of edge loads linking to the domain +*/ Gnum edgenbr; /*+ Number of edges linking to the domain +*/ } edxxdat; struct { Gnum edxxidx; /*+ Index of extended vertex or edge +*/ Gnum vexxidx; /*+ Index of vertex slot in hash table (vexxhab) +*/ } linkdat; } u; } KgraphMapFmSave; /* ** The function prototypes. */ int kgraphMapFm (Kgraph * restrict const, const KgraphMapFmParam * const); /* ** The macro definitions. */ #ifdef SCOTCH_TABLE_GAIN /*+ Gain table subbits. +*/ #define KGRAPHMAPFMSUBBITS 4 /*+ Service routines. +*/ #define kgraphMapFmTablInit(t) (((*(t)) = gainTablInit (GAINMAX, KGRAPHMAPFMSUBBITS)) == NULL) #define kgraphMapFmTablFree(t) gainTablFree (*(t)) #define kgraphMapFmTablExit(t) do { \ if (*(t) != NULL) \ gainTablExit (*(t)); \ } while (0) #define kgraphMapFmTablAdd(t,e) gainTablAdd ((*(t)), &(e)->gainlink, ((e)->commgain + (((e)->cmiggain) & ((e)->cmigmask))) * (e)->distval) #define kgraphMapFmTablDel(t,e) gainTablDel ((*(t)), &(e)->gainlink) #else /* SCOTCH_TABLE_GAIN */ /*+ Service routines. +*/ #define kgraphMapFmTablInit(t) (fiboHeapInit ((t), kgraphMapFmCmpFunc)) #define kgraphMapFmTablFree(t) fiboHeapFree (t) #define kgraphMapFmTablExit(t) fiboHeapExit (t) #define kgraphMapFmTablAdd(t,e) fiboHeapAdd ((t), &(e)->gainlink) #define kgraphMapFmTablDel(t,e) fiboHeapDel ((t), &(e)->gainlink) #endif /* SCOTCH_TABLE_GAIN */ #define kgraphMapFmLock(l,v) do { \ (v)->lockptr = (KgraphMapFmVertex *) (l); \ (l) = (v); \ } while (0) #define kgraphMapFmLockNext(v) ((KgraphMapFmVertex *) (v)->lockptr) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_ml.c000066400000000000000000000435511514310134000266720ustar00rootroot00000000000000/* Copyright 2010,2011,2012,2014,2015,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_ml.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module maps an active graph **/ /** to a specific architecture graph **/ /** using a multi-level scheme. **/ /** **/ /** DATES : # Version 5.1 : from : 13 jul 2010 **/ /** to : 14 jul 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 25 feb 2018 **/ /** # Version 7.0 : from : 03 aug 2018 **/ /** to : 19 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_KGRAPH_MAP_ML #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "kgraph.h" #include "kgraph_map_ml.h" #include "kgraph_map_st.h" /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser graph from the ** graph that is given on input. The coarser ** graphs differ at this stage from classical ** active graphs as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse graph has been built. ** - 1 : if threshold reached or on error. */ static int kgraphMapMlCoarsen ( Kgraph * restrict const finegrafptr, /*+ Finer graph +*/ Kgraph * restrict const coargrafptr, /*+ Coarser graph to build +*/ GraphCoarsenMulti * restrict * const coarmultptr, /*+ Pointer to un-based multinode table to build +*/ const KgraphMapMlParam * const paraptr) /*+ Method parameters +*/ { const Anum * restrict const finepfixtax = finegrafptr->pfixtax; #ifdef SCOTCH_DEBUG_KGRAPH2 if ((finegrafptr->comploadavg == NULL) || (finegrafptr->comploaddlt == NULL)) { errorPrint ("kgraphMapMlCoarsen: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ *coarmultptr = NULL; /* Allocate coarmulttab along with coarse graph */ if (graphCoarsen (&finegrafptr->s, &coargrafptr->s, NULL, coarmultptr, paraptr->coarnbr, paraptr->coarval, GRAPHCOARSENNOCOMPACT, finegrafptr->r.m.parttax, finepfixtax, finegrafptr->vfixnbr, finegrafptr->contptr) != 0) return (1); coargrafptr->domnorg = finegrafptr->domnorg; /* Keep initial domain */ mapInit2 (&coargrafptr->m, &coargrafptr->s, finegrafptr->m.archptr, finegrafptr->m.domnmax, finegrafptr->m.domnnbr); mapInit2 (&coargrafptr->r.m, &coargrafptr->s, finegrafptr->r.m.archptr, finegrafptr->r.m.domnmax, finegrafptr->r.m.domnnbr); coargrafptr->comploadavg = finegrafptr->comploadavg; /* By default, use fine target load arrays as coarse load arrays */ coargrafptr->comploaddlt = finegrafptr->comploaddlt; coargrafptr->frontab = finegrafptr->frontab; /* Share frontier array of finer graph as coarse frontier array (no freeing) */ coargrafptr->contptr = finegrafptr->contptr; coargrafptr->r.cmloval = finegrafptr->r.cmloval; coargrafptr->r.crloval = finegrafptr->r.crloval; if (finegrafptr->r.m.parttax != NULL) { Gnum * restrict coarparotab; Gnum * restrict coarvmlotab; Gnum coarvertnum; const Gnum * restrict const fineparotax = finegrafptr->r.m.parttax; const Gnum * restrict const finevmlotax = finegrafptr->r.vmlotax; const Gnum coarvertnbr = coargrafptr->s.vertnbr; const GraphCoarsenMulti * restrict coarmulttab = *coarmultptr; coargrafptr->r.m.domntab = finegrafptr->r.m.domntab; /* Re-use old mapping domain array in band graph (no freeing) */ if (memAllocGroup ((void **) (void *) &coarparotab, (size_t) (coarvertnbr * sizeof (Anum)), &coarvmlotab, (size_t) (coarvertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("kgraphMapMlCoarsen: out of memory (1)"); kgraphExit (coargrafptr); return (1); } coargrafptr->r.m.flagval = MAPPINGINCOMPLETE | MAPPINGFREEPART; /* Free group leader */ coargrafptr->r.m.parttax = coarparotab - coargrafptr->s.baseval; /* Set coarse arrays */ coargrafptr->r.vmlotax = coarvmlotab - coargrafptr->s.baseval; for (coarvertnum = 0; coarvertnum < coarvertnbr; coarvertnum ++) { /* Un-based traversal */ Gnum finevertnum0; Gnum finevertnum1; finevertnum0 = coarmulttab[coarvertnum].vertnum[0]; finevertnum1 = coarmulttab[coarvertnum].vertnum[1]; coarparotab[coarvertnum] = fineparotax[finevertnum0]; coarvmlotab[coarvertnum] = (finevmlotax != NULL) ? ((finevertnum0 == finevertnum1) ? 0 : finevmlotax[finevertnum1]) + finevmlotax[finevertnum0] : ((finevertnum0 == finevertnum1) ? 1 : 2); #ifdef SCOTCH_DEBUG_KGRAPH2 if ((fineparotax[finevertnum1] != fineparotax[finevertnum0]) && /* If vertices were not in the same part */ ((finegrafptr->pfixtax == NULL) || ((finepfixtax[finevertnum1] == -1) && /* And both are not fixed */ (finepfixtax[finevertnum0] == -1)))) { errorPrint ("kgraphMapMlCoarsen: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } else coargrafptr->r.vmlotax = NULL; if (finepfixtax != NULL) { /* If we have fixed vertices */ Anum * restrict coarpfixtab; Gnum coarvfixnbr; Gnum coarvertnbr; Gnum coarvertnum; const GraphCoarsenMulti * restrict coarmulttab = *coarmultptr; coarvertnbr = coargrafptr->s.vertnbr; if ((coarpfixtab = (Anum *) memAlloc (coarvertnbr * sizeof (Anum))) == NULL) { errorPrint ("kgraphMapMlCoarsen: out of memory (2)"); kgraphExit (coargrafptr); return (1); } coargrafptr->s.flagval |= KGRAPHFREEPFIX; coargrafptr->pfixtax = coarpfixtab - coargrafptr->s.baseval; coarvfixnbr = coarvertnbr; /* Assume all vertices are fixed */ for (coarvertnum = 0; coarvertnum < coarvertnbr; coarvertnum ++) { Anum coarpfixval; coarpfixval = finepfixtax[coarmulttab[coarvertnum].vertnum[0]]; coarvfixnbr += coarpfixval >> (sizeof (Anum) * 8 - 1); /* Accumulate -1's, that is, non-fixed vertices */ coarpfixtab[coarvertnum] = coarpfixval; #ifdef SCOTCH_DEBUG_KGRAPH2 if (finepfixtax[coarmulttab[coarvertnum].vertnum[1]] != coarpfixval) { errorPrint ("kgraphMapMlCoarsen: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } coargrafptr->vfixnbr = coarvfixnbr; } else { coargrafptr->vfixnbr = 0; coargrafptr->pfixtax = NULL; } coargrafptr->comploadrat = finegrafptr->comploadrat; coargrafptr->kbalval = finegrafptr->kbalval; coargrafptr->levlnum = finegrafptr->levlnum + 1; return (0); } /* This routine propagates the partitioning of the ** coarser graph back to the finer graph, according ** to the multinode table of collapsed vertices. ** After the partitioning is propagated, it finishes ** to compute the parameters of the finer graph that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse graph data has been propagated to fine graph. ** - !0 : on error. */ static int kgraphMapMlUncoarsen ( Kgraph * restrict const finegrafptr, /*+ Finer graph +*/ Kgraph * restrict const coargrafptr, /*+ Coarser graph +*/ const GraphCoarsenMulti * const coarmulttab) /*+ Pointer to multinode array +*/ { const Anum * restrict coarparttax; /* Only known when coagrafptr is not NULL */ Gnum coarvertnnd; Gnum coarvertnum; Gnum * restrict coarfrontab; /* Coarse and fine frontiers arrays are merged */ Gnum coarfronnbr; Gnum coarfronnum; Gnum finefronnum; Anum * restrict fineparttax; /* May not have been allocated yet */ const GraphCoarsenMulti * restrict const coarmulttax = coarmulttab - finegrafptr->s.baseval; const Gnum * restrict const fineverttax = finegrafptr->s.verttax; const Gnum * restrict const finevendtax = finegrafptr->s.vendtax; const Gnum * restrict const fineedgetax = finegrafptr->s.edgetax; if (coargrafptr == NULL) { /* If no coarse graph provided */ if (mapAlloc (&finegrafptr->m) != 0) { /* Allocate mapping arrays at lowest level */ errorPrint ("kgraphMapMlUncoarsen: cannot allocate mapping arrays (1)"); return (1); } kgraphFrst (finegrafptr); /* Assign all vertices to first subdomain */ return (0); } if (mapAlloc (&finegrafptr->m) != 0) { /* Allocate partition array if needed */ errorPrint ("kgraphMapMlUncoarsen: cannot allocate mapping arrays (2)"); return (1); } finegrafptr->s.flagval |= KGRAPHFREECOMP; finegrafptr->comploadavg = coargrafptr->comploadavg; /* Propagate part load data in case it was changed at the coarser levels */ finegrafptr->comploaddlt = coargrafptr->comploaddlt; coargrafptr->comploadavg = NULL; /* No need to free coarse graph load array as it has been transferred */ fineparttax = finegrafptr->m.parttax; /* Fine part array is now allocated */ coarparttax = coargrafptr->m.parttax; coarfrontab = coargrafptr->frontab; for (coarvertnum = coargrafptr->s.baseval, coarvertnnd = coargrafptr->s.vertnnd; coarvertnum < coarvertnnd; coarvertnum ++) { Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ Anum partval; finevertnum0 = coarmulttax[coarvertnum].vertnum[0]; finevertnum1 = coarmulttax[coarvertnum].vertnum[1]; partval = coarparttax[coarvertnum]; fineparttax[finevertnum0] = partval; if (finevertnum0 != finevertnum1) fineparttax[finevertnum1] = partval; } finegrafptr->commload = coargrafptr->commload; for (coarfronnum = 0, finefronnum = coarfronnbr = coargrafptr->fronnbr; /* Re-cycle frontier array from coarse to fine graph */ coarfronnum < coarfronnbr; coarfronnum ++) { Gnum coarvertnum; Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ coarvertnum = coarfrontab[coarfronnum]; finevertnum0 = coarmulttax[coarvertnum].vertnum[0]; finevertnum1 = coarmulttax[coarvertnum].vertnum[1]; if (finevertnum0 != finevertnum1) { /* If multinode si made of two distinct vertices */ Gnum fineedgenum; Gnum partval; partval = coarparttax[coarvertnum]; #ifdef SCOTCH_DEBUG_KGRAPH2 coarfrontab[coarfronnum] = ~0; #endif /* SCOTCH_DEBUG_KGRAPH2 */ for (fineedgenum = fineverttax[finevertnum0]; fineedgenum < finevendtax[finevertnum0]; fineedgenum ++) { if (fineparttax[fineedgetax[fineedgenum]] != partval) { /* If first vertex belongs to frontier */ coarfrontab[coarfronnum] = finevertnum0; /* Record it in lieu of the coarse frontier vertex */ break; } } if (fineedgenum >= finegrafptr->s.vendtax[finevertnum0]) { /* If first vertex not in frontier */ coarfrontab[coarfronnum] = finevertnum1; /* Then second vertex must be in frontier */ continue; /* Skip to next multinode */ } for (fineedgenum = fineverttax[finevertnum1]; /* Check if second vertex also belongs to frontier */ fineedgenum < finevendtax[finevertnum1]; fineedgenum ++) { if (fineparttax[fineedgetax[fineedgenum]] != partval) { /* If second vertex belongs to frontier */ coarfrontab[finefronnum ++] = finevertnum1; /* Record it at the end of the recycled frontier array */ break; } } #ifdef SCOTCH_DEBUG_KGRAPH2 if (coarfrontab[coarfronnum] == ~0) { errorPrint ("kgraphMapMlUncoarsen: internal error"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ } else /* If coarse vertex is single node */ coarfrontab[coarfronnum] = finevertnum0; /* Then it belongs to the frontier */ } finegrafptr->fronnbr = finefronnum; #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (finegrafptr) != 0) { errorPrint ("kgraphMapMlUncoarsen: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } /* This routine performs the ** partitioning recursion. ** It returns: ** - 0 : if partitioning could be computed. ** - 1 : on error. */ static int kgraphMapMl2 ( Kgraph * restrict const grafptr, /*+ Active graph +*/ const KgraphMapMlParam * const paraptr) /*+ Method parameters +*/ { Kgraph coargrafdat; GraphCoarsenMulti * coarmulttab; /* Pointer to un-based multinode array */ int o; if (kgraphMapMlCoarsen (grafptr, &coargrafdat, &coarmulttab, paraptr) == 0) { coargrafdat.m.flagval |= MAPPINGFREEDOMN; /* Transfer ownership of mapping domain array to coarse graph */ coargrafdat.m.domntab = grafptr->m.domntab; grafptr->m.domntab = NULL; o = kgraphMapMl2 (&coargrafdat, paraptr); /* Compute mapping on coarsened graph */ grafptr->m.flagval = coargrafdat.m.flagval; /* Transfer (back) mapping domain array to fine graph */ grafptr->m.domntab = coargrafdat.m.domntab; grafptr->m.domnnbr = coargrafdat.m.domnnbr; grafptr->m.domnmax = coargrafdat.m.domnmax; coargrafdat.m.domntab = NULL; if ((o == 0) && /* If coarsened mapping succeeded */ ((o = kgraphMapMlUncoarsen (grafptr, &coargrafdat, coarmulttab)) == 0) && ((o = kgraphMapSt (grafptr, paraptr->stratasc)) != 0)) /* Apply ascending strategy */ errorPrint ("kgraphMapMl2: cannot apply ascending strategy"); kgraphExit (&coargrafdat); } else { /* Cannot coarsen due to lack of memory or error */ if (((o = kgraphMapMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = kgraphMapSt (grafptr, paraptr->stratlow)) != 0)) /* Apply low strategy */ errorPrint ("kgraphMapMl2: cannot apply low strategy"); } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the multi-level mapping. ** It returns: ** - 0 : if mapping could be computed. ** - 1 : on error. */ int kgraphMapMl ( Kgraph * const grafptr, /*+ Active graph +*/ const KgraphMapMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for graph level */ int o; levlnum = grafptr->levlnum; /* Save graph level */ grafptr->levlnum = 0; /* Initialize coarsening level */ o = kgraphMapMl2 (grafptr, paraptr); /* Perform multi-level mapping */ grafptr->levlnum = levlnum; /* Restore graph level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_ml.h000066400000000000000000000077361514310134000267040ustar00rootroot00000000000000/* Copyright 2010,2011,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_ml.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the multi-level graph mapping **/ /** routines. **/ /** **/ /** DATES : # Version 5.1 : from : 10 jul 2010 **/ /** to : 10 jul 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct KgraphMapMlParam_ { INT coarnbr; /*+ Minimum number of vertices +*/ double coarval; /*+ Coarsening ratio +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ int typeval; /*+ Not used +*/ } KgraphMapMlParam; /* ** The function prototypes. */ #ifdef SCOTCH_KGRAPH_MAP_ML static int kgraphMapMlCoarsen (Kgraph * const, Kgraph * restrict const, GraphCoarsenMulti * restrict * const, const KgraphMapMlParam * const); static int kgraphMapMlUncoarsen (Kgraph * restrict const, Kgraph * const, const GraphCoarsenMulti * const); static int kgraphMapMl2 (Kgraph * restrict const, const KgraphMapMlParam * const); #endif /* SCOTCH_KGRAPH_MAP_ML */ int kgraphMapMl (Kgraph * restrict const, const KgraphMapMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_rb.c000066400000000000000000001034371514310134000266650ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2013,2014,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_rb.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module performs the Dual Recursive **/ /** Bipartitioning mapping algorithm. **/ /** It is now a branching routine. **/ /** **/ /** DATES : # Version 0.0 : from : 31 mar 1993 **/ /** to : 31 mar 1993 **/ /** # Version 1.0 : from : 04 oct 1993 **/ /** to : 06 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 11 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 17 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 19 oct 1995 **/ /** # Version 3.1 : from : 30 oct 1995 **/ /** to : 14 jun 1996 **/ /** # Version 3.2 : from : 23 aug 1996 **/ /** to : 07 sep 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 08 dec 1998 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 07 nov 2001 **/ /** # Version 4.0 : from : 12 jan 2004 **/ /** to : 06 mar 2005 **/ /** # Version 5.1 : from : 22 nov 2007 **/ /** to : 07 oct 2008 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 21 jun 2019 **/ /** # Version 7.0 : from : 23 aug 2019 **/ /** to : 19 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "arch_dist.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "kgraph.h" #include "kgraph_map_rb.h" #include "kgraph_map_rb_map.h" #include "kgraph_map_rb_part.h" /********************************************/ /* */ /* This is the entry point for the Dual */ /* Recursive Bipartitioning mapping method. */ /* */ /********************************************/ /* This routine runs the Dual Recursive ** Bipartitioning algorithm. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapRb ( Kgraph * const grafptr, const KgraphMapRbParam * restrict const paraptr) { KgraphMapRbData datadat; /* Data passed to each bipartitioning job */ Graph indgrafdat; /* Induced graph without fixed vertices */ Graph * restrict indgrafptr; /* Pointer to top-level graph without fixed vertices */ KgraphMapRbVflo * restrict vflotab; /* Array of fixed vertex load slots */ Anum vflonbr; /* Number of fixed vertex load slots */ #ifdef SCOTCH_DEBUG_KGRAPH2 Anum domnnum; #endif /* SCOTCH_DEBUG_KGRAPH2 */ int o; if (mapAlloc (&grafptr->m) != 0) { errorPrint ("kgraphMapRb: cannot allocate mapping arrays"); return (1); } grafptr->kbalval = paraptr->kbalval; /* Store last k-way imbalance ratio */ datadat.grafptr = &grafptr->s; datadat.domnorg = grafptr->domnorg; datadat.mappptr = &grafptr->m; datadat.r.mappptr = (grafptr->r.m.parttax != NULL) ? &grafptr->r.m : NULL; datadat.r.vmlotax = grafptr->r.vmlotax; datadat.r.cmloval = grafptr->r.cmloval; datadat.r.crloval = grafptr->r.crloval; datadat.pfixtax = grafptr->pfixtax; datadat.paraptr = paraptr; datadat.comploadrat = grafptr->comploadrat; datadat.comploadmin = (1.0 - paraptr->kbalval) * grafptr->comploadrat; /* Ratio can have been tilted when working on subgraph */ datadat.comploadmax = (1.0 + paraptr->kbalval) * grafptr->comploadrat; if (grafptr->pfixtax == NULL) { indgrafptr = &grafptr->s; /* Work on the original graph */ vflonbr = 0; /* No fixed vertex load slots */ vflotab = NULL; } else { if (kgraphMapRbVfloBuild (grafptr->m.archptr, &grafptr->s, grafptr->vfixnbr, grafptr->pfixtax, &indgrafdat, &vflonbr, &vflotab) != 0) { errorPrint ("kgraphMapRb: cannot create induced graph"); return (1); } indgrafptr = &indgrafdat; } o = ((archPart (grafptr->m.archptr) != 0) ? kgraphMapRbPart : kgraphMapRbMap) (&datadat, indgrafptr, vflonbr, vflotab, grafptr->contptr); /* Compute recursive bipartitioning */ if (grafptr->pfixtax != NULL) { /* If fixed vertices */ memFree (vflotab); /* Not used any longer */ graphExit (&indgrafdat); if (kgraphMapRbVfloMerge (&grafptr->m, grafptr->vfixnbr, grafptr->pfixtax, vflonbr) != 0) { errorPrint ("kgraphMapRb: cannot merge fixed vertex domains"); return (1); } } if (memReallocGroup (grafptr->comploadavg, /* Reallocate cost array according to potential new size */ &grafptr->comploadavg, (size_t) (grafptr->m.domnmax * sizeof (Gnum)), /* TRICK: can send both compload arrays in one piece */ &grafptr->comploaddlt, (size_t) (grafptr->m.domnmax * sizeof (Gnum)), NULL) == NULL) { errorPrint ("kgraphMapRb: out of memory (3)"); return (1); } kgraphFron (grafptr); kgraphCost (grafptr); /* Compute cost of full k-way partition */ #ifdef SCOTCH_DEBUG_KGRAPH2 for (domnnum = 0; domnnum < grafptr->m.domnnbr; domnnum ++) { if (archDomSize (grafptr->m.archptr, &grafptr->m.domntab[domnnum]) != 1) { errorPrint ("kgraphMapRb: invalid mapping"); return (1); } } if (kgraphCheck (grafptr) != 0) { errorPrint ("kgraphMapRb: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (o); } /*******************************************/ /* */ /* These routines handle fixed vertex load */ /* arrays and fixed vertices. */ /* */ /*******************************************/ /* If the given graph has fixed vertices, this ** routine builds simultaneously an induced subgraph ** from which such vertices have been removed, and ** a list of these fixed vertices. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapRbVfloBuild ( const Arch * restrict const archptr, /*+ Target architecture +*/ const Graph * restrict const orggrafptr, /*+ Original graph with fixed vertices +*/ const Gnum orgvfixnbr, /*+ Number of fixed vertices in graph +*/ const Anum * restrict const orgpfixtax, /*+ Array of fixed vertex terminal domains +*/ Graph * restrict const indgrafptr, /*+ Induced subgraph without fixed vertices +*/ Anum * restrict const vflonbrptr, /*+ Pointer to number of fixed vertex slots +*/ KgraphMapRbVflo * restrict * restrict const vflotabptr) /*+ Pointer to fixed vertex load array pointer +*/ { ArchDom domndat; Gnum orgvertnum; GraphPart * restrict orgparttax; /* Part array for induced graph */ KgraphMapRbVflo * restrict hashtab; /* Hash table for merging fixed vertices */ Gnum hashnbr; /* Prospective number of cells in table */ Gnum hashsiz; /* Size of hash table */ Gnum hashnum; Gnum hashmsk; /* Mask for access to hash table */ Gnum velomsk; /* Zero if all fixed vertex loads are zero */ Anum vflonbr; const Gnum * restrict const orgvelotax = orggrafptr->velotax; if (archVar (archptr) == 0) { /* If fixed size architecture */ archDomFrst (archptr, &domndat); hashnbr = archDomSize (archptr, &domndat); /* Get maximum size of distinct terminal domains */ if (orgvfixnbr < hashnbr) hashnbr = orgvfixnbr; } else hashnbr = orgvfixnbr; for (hashsiz = 0, hashmsk = hashnbr; hashmsk != 0; hashsiz ++, hashmsk >>= 1) ; /* Get upper power of two */ hashsiz = 1 << (hashsiz + 2); /* Fill hash table at 25% maximum */ hashmsk = hashsiz - 1; if (memAllocGroup ((void **) (void *) &hashtab, (size_t) (hashsiz * sizeof (KgraphMapRbVflo)), /* Use fixed vertex load slots as hash slots */ &orgparttax, (size_t) (orggrafptr->vertnbr * sizeof (GraphPart)), NULL) == NULL) { errorPrint ("kgraphMapRbVfloBuild: out of memory"); return (1); } orgparttax -= orggrafptr->baseval; memSet (hashtab, ~0, hashsiz * sizeof (KgraphMapRbVflo)); /* Set all vertex numbers to ~0 */ velomsk = 0; /* Assume all fixed vertex loads are zero */ for (orgvertnum = orggrafptr->baseval; orgvertnum < orggrafptr->vertnnd; orgvertnum ++) { Anum orgpfixval; orgpfixval = orgpfixtax[orgvertnum]; if (orgpfixval >= 0) { /* If vertex is a fixed vertex */ Gnum hashnum; Gnum veloval; veloval = (orgvelotax == NULL) ? 1 : orgvelotax[orgvertnum]; /* Get fixed vertex load */ velomsk |= veloval; /* See if all fixed vertex loads are zero */ for (hashnum = (orgpfixval * KGRAPHMAPRBVFLOHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].termnum == orgpfixval) { /* If hash slot found */ hashtab[hashnum].veloval += veloval; /* Add contribution to slot */ break; } if (hashtab[hashnum].termnum == ~0) { /* If hash slot empty */ hashtab[hashnum].termnum = orgpfixval; /* Create slot */ hashtab[hashnum].veloval = veloval; break; } } orgparttax[orgvertnum] = 1; /* Fixed vertex will not be kept in induced subgraph */ } else orgparttax[orgvertnum] = 0; /* Keep non-fixed vertex in induced subgraph */ } if (graphInducePart (orggrafptr, orgparttax, orggrafptr->vertnbr - orgvfixnbr, 0, indgrafptr) != 0) { /* Keep non-fixed vertices in induced graph */ errorPrint ("kgraphMapRbVfloBuild: cannot build induced subgraph"); memFree (hashtab); return (1); } if (velomsk == 0) { /* If all fixed vertex loads are zero */ memFree (hashtab); /* No need to allocate a table */ *vflonbrptr = 0; *vflotabptr = NULL; return (0); } for (hashnum = vflonbr = 0; hashnum < hashsiz; hashnum ++) { /* Recycle hash table into fixed vertex load table */ if (hashtab[hashnum].termnum != ~0) { hashtab[vflonbr] = hashtab[hashnum]; vflonbr ++; } } *vflonbrptr = vflonbr; *vflotabptr = memRealloc (hashtab, vflonbr * sizeof (KgraphMapRbVflo)); return (0); } /* This routine splits the fixed vertex load ** array in two parts, one for each of the two ** provided subdomains. ** It returns: ** - void : in all cases. */ void kgraphMapRbVfloSplit ( const Arch * restrict const archptr, /*+ Target architecture +*/ const ArchDom * restrict const domnsubtab, /*+ Array of the two subdomains +*/ const Anum vflonbr, /*+ Number of fixed vertex load slots +*/ KgraphMapRbVflo * restrict const vflotab, /*+ Fixed vertex load array +*/ Anum * restrict const vflonbrtab, /*+ Number of slots in each subdomain +*/ Gnum * restrict const vflowgttab) /*+ Fixed vertex load in each subdomain +*/ { KgraphMapRbVflo vflodat; /* Temporary swap area */ ArchDom domndat; /* Terminal domain attached to fixed vertex */ Gnum compload0; /* Load of slots in first subdomain */ Gnum compload1; /* Load of slots in second subdomain */ Gnum vflomax; Gnum vflonum; Gnum vflonnd; compload0 = compload1 = 0; vflomax = vflonbr; if (archVar (archptr) == 0) { for (vflonum = 0, vflonnd = vflonbr - 1; vflonum < vflonnd; ) { while (1) { #ifdef SCOTCH_DEBUG_KGRAPH2 int o; o = #endif /* SCOTCH_DEBUG_KGRAPH2 */ archDomTerm (archptr, &domndat, vflotab[vflonum].termnum); #ifdef SCOTCH_DEBUG_KGRAPH2 if (o != 0) { errorPrint ("kgraphMapRbVfloSplit: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (archDomIncl (archptr, &domnsubtab[0], &domndat) == 1) { /* If terminal vertex subdomain included in first subdomain */ compload0 += vflotab[vflonum].veloval; /* Fixed vertex belongs to first subdomain */ if (++ vflonum > vflonnd) /* If passed beyond the limit of the second subdomain */ goto quit; } else { #ifdef SCOTCH_DEBUG_KGRAPH2 if (archDomIncl (archptr, &domnsubtab[1], &domndat) != 1) { /* If terminal vertex subdomain not included in second subdomain */ errorPrint ("kgraphMapRbVfloSplit: internal error (2)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ break; /* We have found a candidate for swapping */ } } while (1) { archDomTerm (archptr, &domndat, vflotab[vflonnd].termnum); if (archDomIncl (archptr, &domnsubtab[1], &domndat) == 1) { /* If terminal vertex subdomain included in second subdomain */ compload1 += vflotab[vflonnd].veloval; /* Fixed vertex belongs to second subdomain */ if (-- vflonnd <= vflonum) { /* If matched the location of a slot that also belongs to second subdomain */ compload1 += vflotab[vflonnd].veloval; /* Add load of reached slot to second subdomain */ goto quit; } } else { #ifdef SCOTCH_DEBUG_KGRAPH2 if (archDomIncl (archptr, &domnsubtab[0], &domndat) != 1) { /* If terminal vertex subdomain not included in first subdomain */ errorPrint ("kgraphMapRbVfloSplit: internal error (3)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ break; /* We have found a candidate for swapping */ } } vflodat = vflotab[vflonum]; /* Swap slots */ vflotab[vflonum] = vflotab[vflonnd]; vflotab[vflonnd] = vflodat; compload0 += vflotab[vflonum ++].veloval; compload1 += vflotab[vflonnd --].veloval; } } else { /* If variable-sized architecture, pseudo-terminals may not always be included */ for (vflonum = 0, vflonnd = vflonbr - 1; vflonum <= vflonnd; ) { #ifdef SCOTCH_DEBUG_KGRAPH2 int o; o = #endif /* SCOTCH_DEBUG_KGRAPH2 */ archDomTerm (archptr, &domndat, vflotab[vflonum].termnum); #ifdef SCOTCH_DEBUG_KGRAPH2 if (o != 0) { errorPrint ("kgraphMapRbVfloSplit: internal error (4)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (archDomIncl (archptr, &domnsubtab[0], &domndat) == 1) { /* If vertex subdomain included in first subdomain */ compload0 += vflotab[vflonum].veloval; /* Fixed vertex belongs to first subdomain */ vflonum ++; continue; /* Keep it in place */ } if (archDomIncl (archptr, &domnsubtab[1], &domndat) == 1) { /* If vertex subdomain included in second subdomain */ compload1 += vflotab[vflonum].veloval; /* Fixed vertex belongs to second subdomain */ vflodat = vflotab[vflonum]; /* Swap slots */ vflotab[vflonum] = vflotab[vflonnd]; vflotab[vflonnd] = vflodat; } else { /* Fixed vertex is more generic than the two subdomains */ vflomax --; /* One less slot to consider in the future */ vflodat = vflotab[vflonum]; /* Swap slots */ vflotab[vflonum] = vflotab[vflonnd]; vflotab[vflonnd] = vflotab[vflomax]; vflotab[vflomax] = vflodat; } vflonnd --; /* One less slot to consider */ } } quit: vflonbrtab[0] = vflonum; vflonbrtab[1] = vflomax - vflonum; vflowgttab[0] = compload0; vflowgttab[1] = compload1; } /* This routine prolongs the given mapping ** with fixed vertices, by merging back with ** regular domains. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapRbVfloMerge ( Mapping * restrict const mappptr, /*+ Mapping to prolong +*/ const Gnum vfixnbr, /*+ Number of fixed vertices in graph +*/ const Anum * restrict const pfixtax, /*+ Array of fixed vertex terminal domains +*/ const Anum vflonbr) /*+ Number of fixed vertex load slots +*/ { Anum domnnum; Gnum vertnum; Gnum vertnnd; KgraphMapRbVfloHash * restrict hashtab; /* Hash table for merging fixed vertices */ Gnum hashnbr; /* Prospective number of cells in table */ Gnum hashsiz; /* Size of hash table */ Gnum hashnum; Gnum hashmsk; /* Mask for access to hash table */ const Arch * restrict const archptr = mappptr->archptr; Anum * restrict const parttax = mappptr->parttax; hashnbr = mappptr->domnnbr + vflonbr; for (hashsiz = 0, hashmsk = hashnbr; hashmsk != 0; hashsiz ++, hashmsk >>= 1) ; /* Get upper power of two */ hashsiz = 1 << (hashsiz + 2); /* Fill hash table at 25% maximum */ hashmsk = hashsiz - 1; if ((hashtab = memAlloc (hashsiz * sizeof (KgraphMapRbVfloHash))) == NULL) { /* Use fixed vertex load slots as hash slots */ errorPrint ("kgraphMapRbVfloMerge: out of memory (1)"); return (1); } memSet (hashtab, ~0, hashsiz * sizeof (KgraphMapRbVfloHash)); /* Set all vertex numbers to ~0 */ for (domnnum = 0; domnnum < mappptr->domnnbr; domnnum ++) { /* Load all existing domains into hash table */ Anum termnum; termnum = archDomNum (archptr, &mappptr->domntab[domnnum]); for (hashnum = (termnum * KGRAPHMAPRBVFLOHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].termnum == termnum) /* If domain found */ break; if (hashtab[hashnum].termnum == ~0) { /* If empty slot found */ hashtab[hashnum].termnum = termnum; /* Fill it */ hashtab[hashnum].domnnum = domnnum; break; } } } for (vertnum = mappptr->grafptr->baseval, vertnnd = mappptr->grafptr->vertnnd; vertnum < vertnnd; vertnum ++) { Anum pfixval; pfixval = pfixtax[vertnum]; if (pfixval < 0) { /* If vertex is not a fixed vertex */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (mappptr->parttax[vertnum] < 0) { /* If vertex has not been mapped */ errorPrint ("kgraphMapRbVfloMerge: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ continue; /* Skip to next vertex */ } #ifdef SCOTCH_DEBUG_KGRAPH2 if (mappptr->parttax[vertnum] >= 0) { /* If fixed vertex has been mapped */ errorPrint ("kgraphMapRbVfloMerge: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ for (hashnum = (pfixval * KGRAPHMAPRBVFLOHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].termnum == pfixval) /* If hash slot found */ break; if (hashtab[hashnum].termnum == ~0) { /* If hash slot empty */ if (domnnum >= mappptr->domnmax) { if (mapResize (mappptr, mappptr->domnmax + (mappptr->domnmax >> 2) + 8) != 0) { /* Increase size by 25% */ errorPrint ("kgraphMapRbVfloMerge: out of memory (2)"); return (1); } } archDomTerm (archptr, &mappptr->domntab[domnnum], pfixval); /* Add new domain to domain array */ hashtab[hashnum].termnum = pfixval; /* Create slot */ hashtab[hashnum].domnnum = domnnum; domnnum ++; /* One more domain created */ break; } } parttax[vertnum] = hashtab[hashnum].domnnum; /* Assign fixed vertex to existing domain */ } mappptr->domnnbr = domnnum; memFree (hashtab); return (0); } /*****************************************/ /* */ /* This routine computes external gains. */ /* */ /*****************************************/ /* This routines computes the three kinds of ** external loads and gains that can be associated ** with a bipartitioning job: regular external ** gains arising from former bipartitions, fixed ** vertex gains and remapping gains. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapRbBgraph ( const KgraphMapRbData * restrict const dataptr, /*+ Global data +*/ Bgraph * restrict const actgrafptr, /*+ Graph to build +*/ const Graph * restrict const srcgrafptr, /*+ Source graph +*/ const Mapping * restrict const srcmappptr, /*+ Current mapping +*/ const ArchDom * restrict const domnsubtab, /*+ Array of the two subdomains +*/ const Gnum * restrict const vflowgttab, /*+ Array of vertex weight biases +*/ Context * const contptr) /*+ Execution context +*/ { Gnum actvertnum; /* Number of current active vertex */ Gnum commloadextn0; /* External communication load */ Gnum commgainextn0; /* External communication gain */ Gnum * restrict veextax; /* External gain array */ Gnum veexmsk; /* Flag set if external array useful */ int flagval; int o; const Arch * restrict const archptr = dataptr->mappptr->archptr; const Gnum * restrict const orgverttax = dataptr->grafptr->verttax; const Gnum * restrict const orgvendtax = dataptr->grafptr->vendtax; const Gnum * restrict const orgedgetax = dataptr->grafptr->edgetax; const Gnum * restrict const orgedlotax = dataptr->grafptr->edlotax; const Mapping * restrict const oldmappptr = dataptr->r.mappptr; const Gnum * restrict const orgvmlotax = dataptr->r.vmlotax; const Anum * restrict const orgpfixtax = dataptr->pfixtax; const Gnum * restrict const actverttax = srcgrafptr->verttax; /* Get pointers from source graph before bgraphInit() */ const Gnum * restrict const actvendtax = srcgrafptr->vendtax; const Gnum * restrict const actedgetax = srcgrafptr->edgetax; const Gnum * restrict const actvnumtax = srcgrafptr->vnumtax; if (bgraphInit (actgrafptr, srcgrafptr, srcmappptr->archptr, domnsubtab, vflowgttab) != 0) { errorPrint ("kgraphMapRbBgraph: cannot create bipartition graph"); return (1); } actgrafptr->contptr = contptr; flagval = KGRAPHMAPRBVEEXNONE; /* Assume no processing */ if ((! archPart (archptr)) && (actvnumtax != NULL)) flagval |= KGRAPHMAPRBVEEXMAPP; if (orgpfixtax != NULL) /* Fixed vertices always imply (actvnumtax != NULL) */ flagval |= KGRAPHMAPRBVEEXVFIX; if (dataptr->r.mappptr != NULL) flagval |= KGRAPHMAPRBVEEXREMA; if (flagval == KGRAPHMAPRBVEEXNONE) /* If nothing to do */ return (0); if ((veextax = (Gnum *) memAlloc (actgrafptr->s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("kgraphMapRbBgraph: out of memory"); return (1); } veextax -= actgrafptr->s.baseval; o = 1; /* Assume failure */ veexmsk = 0; /* No useful array entry yet */ commloadextn0 = /* No external communication yet */ commgainextn0 = 0; for (actvertnum = actgrafptr->s.baseval; /* Compute external loads */ actvertnum < actgrafptr->s.vertnnd; actvertnum ++) { Gnum commloadextn; /* External communication load for current vertex */ Gnum commgainextn; /* External communication gain for current vertex */ Gnum orgvertnum; /* Number of current original vertex */ commloadextn = /* Assume no external loads */ commgainextn = 0; if (actvnumtax == NULL) /* If active graph is not a subgraph */ orgvertnum = actvertnum; /* Its number is that of original graph */ else { /* Else we have external edges to process */ orgvertnum = actvnumtax[actvertnum]; /* Get vertex number in original graph */ if ((flagval & KGRAPHMAPRBVEEXEDGE) != 0) { /* If edge-based gains have to be computed */ Gnum orgedgenum; Gnum orgedgennd; Gnum actedgenum; Gnum actedgennd; orgedgenum = orgverttax[orgvertnum]; orgedgennd = orgvendtax[orgvertnum]; actedgenum = actverttax[actvertnum]; actedgennd = actvendtax[actvertnum]; if ((orgedgennd - orgedgenum) != (actedgennd - actedgenum)) { /* If vertex has external edges */ Gnum orgedloval; Gnum actvertend; /* Next internal end vertex index to find in original edge array */ orgedloval = 1; /* Assume no edge loads */ actvertend = (actedgenum >= actedgennd) ? ~0 : actvnumtax[actedgetax[actedgenum]]; for ( ; orgedgenum < orgedgennd; orgedgenum ++) { Gnum orgvertend; orgvertend = orgedgetax[orgedgenum]; if (orgvertend == actvertend) { /* If internal edge found */ actedgenum ++; /* Skip internal active edge */ actvertend = (actedgenum >= actedgennd) ? ~0 : actvnumtax[actedgetax[actedgenum]]; /* Set next internal end vertex index to fetch */ continue; /* Skip internal original edge */ } if (orgedlotax != NULL) orgedloval = orgedlotax[orgedgenum]; if (orgpfixtax != NULL) { ArchDom domndat; Anum pfixval; pfixval = orgpfixtax[orgvertend]; if (pfixval >= 0) { /* If end vertex is fixed */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (dataptr->mappptr->parttax[orgvertend] != ~0) { /* If original vertex has a current part */ errorPrint ("kgraphMapRbBgraph: internal error"); goto fail; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (archDomTerm (archptr, &domndat, pfixval) != 0) { /* Get its domain */ errorPrint ("kgraphMapRbBgraph: invalid fixed part array"); goto fail; } commloadextn += (archDomIncl (archptr, &domnsubtab[0], &domndat) != 0) ? 0 : (orgedloval * archDomDist (archptr, &domnsubtab[0], &domndat)); commgainextn += (archDomIncl (archptr, &domnsubtab[1], &domndat) != 0) ? 0 : (orgedloval * archDomDist (archptr, &domnsubtab[1], &domndat)); continue; /* Process next edge */ } } if ((flagval & KGRAPHMAPRBVEEXMAPP) != 0) { /* If mapping */ ArchDom * domnptr; domnptr = mapDomain (srcmappptr, orgvertend); commloadextn += orgedloval * archDomDist (archptr, &domnsubtab[0], domnptr); commgainextn += orgedloval * archDomDist (archptr, &domnsubtab[1], domnptr); } } commloadextn *= dataptr->r.crloval; /* Scale regular, non-remapping gains */ commgainextn *= dataptr->r.crloval; } } } if ((oldmappptr != NULL) && /* If remapping gains have to be computed */ (oldmappptr->parttax[orgvertnum] != -1)) { /* And if old part is known */ ArchDom * domnptr; Gnum edloval; edloval = dataptr->r.cmloval; if (orgvmlotax != NULL) edloval *= orgvmlotax[orgvertnum]; domnptr = mapDomain (oldmappptr, orgvertnum); commloadextn += (archDomIncl (archptr, &domnsubtab[0], domnptr) != 0) ? 0 : (edloval * archDomDist (archptr, &domnsubtab[0], domnptr)); commgainextn += (archDomIncl (archptr, &domnsubtab[1], domnptr) != 0) ? 0 : (edloval * archDomDist (archptr, &domnsubtab[1], domnptr)); } commgainextn -= commloadextn; /* Compute vertex gain */ commloadextn0 += commloadextn; /* Account for external edges */ commgainextn0 += commgainextn; veextax[actvertnum] = commgainextn; /* Record external gain value */ veexmsk |= commgainextn; /* Accumulate non-zero values */ } o = 0; /* Computations succeeded */ fail : if ((o != 0) || (veexmsk == 0)) { /* If external gain array is useless */ memFree (veextax + actgrafptr->s.baseval); /* Forget about it */ return (o); /* Return error code */ } actgrafptr->s.flagval |= BGRAPHFREEVEEX; /* Keep external gain array */ actgrafptr->veextax = veextax; actgrafptr->commload = commloadextn0; /* Account for external gains in future computations */ actgrafptr->commgainextn = commgainextn0; actgrafptr->commloadextn0 = commloadextn0; actgrafptr->commgainextn0 = commgainextn0; #ifdef SCOTCH_DEBUG_KGRAPH2 if (bgraphCheck (actgrafptr) != 0) { errorPrint ("kgraphMapRbBgraph: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_rb.h000066400000000000000000000223101514310134000266600ustar00rootroot00000000000000/* Copyright 2004,2007,2014,2018,2019,2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_rb.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Dual Recursive Bipartitioning **/ /** mapping algorithm. **/ /** **/ /** DATES : # Version 0.0 : from : 23 mar 1993 **/ /** to : 12 may 1993 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 09 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 04 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 15 nov 1995 **/ /** to : 15 nov 1995 **/ /** # Version 3.2 : from : 01 oct 1996 **/ /** to : 10 jun 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 17 may 1999 **/ /** # Version 3.4 : from : 12 sep 2001 **/ /** to : 06 nov 2001 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 05 may 2006 **/ /** # Version 5.1 : from : 07 oct 2008 **/ /** to : 28 mar 2011 **/ /** # Version 6.0 : from : 07 aug 2014 **/ /** to : 03 aug 2018 **/ /** # Version 7.0 : from : 23 aug 2019 **/ /** to : 16 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing terminal domain numbers. +*/ #define KGRAPHMAPRBVFLOHASHPRIME 17 /*+ Prime number for hashing +*/ /*+ Kinds of external edge processing. +*/ #define KGRAPHMAPRBVEEXNONE 0x0000 /* No options set */ #define KGRAPHMAPRBVEEXMAPP 0x0001 /* Graph mapping */ #define KGRAPHMAPRBVEEXVFIX 0x0002 /* Fixed vertices */ #define KGRAPHMAPRBVEEXREMA 0x0004 /* Remapping */ #define KGRAPHMAPRBVEEXEDGE (KGRAPHMAPRBVEEXMAPP | KGRAPHMAPRBVEEXVFIX) #define KGRAPHMAPRBVEEXVERT (KGRAPHMAPRBVEEXREMA) /* ** The type and structure definitions. */ /*+ Job selection policy types. +*/ typedef enum KgraphMapRbPolicy_ { KGRAPHMAPRBPOLIRANDOM = 0, /*+ Random job selection policy +*/ KGRAPHMAPRBPOLILEVEL, /*+ Select job with highest level +*/ KGRAPHMAPRBPOLISIZE, /*+ Select job with largest size +*/ KGRAPHMAPRBPOLINGLEVEL, /*+ Select job with most neighbors of higher level +*/ KGRAPHMAPRBPOLINGSIZE /*+ Select job with most neighbors of smaller size +*/ } KgraphMapRbPolicy; #define KGRAPHMAPRBPOLINEIGHBOR KGRAPHMAPRBPOLINGLEVEL /*+ Priority level computed with respect to neighbors +*/ /*+ Method parameters. +*/ typedef struct KgraphMapRbParam_ { int flagjobtie; /*+ Flag set of job pools are tied +*/ int flagmaptie; /*+ Flag set if mappings are tied +*/ KgraphMapRbPolicy polival; /*+ Job selection policy +*/ Strat * strat; /*+ Bipartitioning strategy used +*/ double kbalval; /*+ K-way imbalance ratio +*/ } KgraphMapRbParam; /*+ This structure holds the data passed to each bipartitioning job. +*/ typedef struct KgraphMapRbData_ { const Graph * grafptr; /*+ Pointer to top-level graph, possibly with fixed vertices +*/ ArchDom domnorg; /*+ Initial mapping (sub)domain +*/ Mapping * mappptr; /*+ Mapping to compute +*/ struct { /*+ Remapping structure +*/ const Mapping * mappptr; /*+ Old mapping (for remapping only) +*/ const Gnum * vmlotax; /*+ Array of vertex migration costs +*/ Gnum cmloval; /*+ Migration edge load for remapping +*/ Gnum crloval; /*+ Regular edge load for mapping +*/ } r; const Anum * pfixtax; /*+ Fixed vertex partition array +*/ const KgraphMapRbParam * paraptr; /*+ Pointer to mapping parameter structure +*/ double comploadrat; /*+ Ideal load balance per weight unit +*/ double comploadmin; /*+ Minimum vertex load per target load +*/ double comploadmax; /*+ Maximum vertex load per target load +*/ } KgraphMapRbData; /*+ Fixed vertex load type. An array of such cells stores the loads of strictly positive fixed vertices (zero ones are discarded) that must be assigned to some subdomain of the current domain to be bipartitioned. +*/ typedef struct KgraphMapRbVflo_ { Anum termnum; /*+ Terminal domain number +*/ Gnum veloval; /*+ Vertex load +*/ } KgraphMapRbVflo; /*+ Hash structure for merging fixed vertex domains with non-fixed vertex domains. +*/ typedef struct KgraphMapRbVfloHash_ { Anum termnum; /*+ Terminal domain number +*/ Anum domnnum; /*+ Domain number in domain array +*/ } KgraphMapRbVfloHash; /* ** The function prototypes. */ int kgraphMapRb (Kgraph * const, const KgraphMapRbParam * const); int kgraphMapRbVfloBuild (const Arch * restrict const, const Graph * restrict const, const Gnum, const Anum * restrict const, Graph * restrict const, Anum * restrict const, KgraphMapRbVflo * restrict * restrict const); void kgraphMapRbVfloSplit (const Arch * restrict const, const ArchDom * restrict const, const Anum, KgraphMapRbVflo * restrict const, Anum * restrict const, Gnum * restrict const); int kgraphMapRbVfloMerge (Mapping * restrict const, const Gnum, const Anum * restrict const, const Anum); int kgraphMapRbBgraph (const KgraphMapRbData * restrict const, Bgraph * restrict const, const Graph * restrict const, const Mapping * restrict const, const ArchDom * restrict const, const Gnum * restrict const, Context * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_rb_map.c000066400000000000000000001346011514310134000275170ustar00rootroot00000000000000/* Copyright 2004,2007-2009,2011,2014,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_rb_map.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module performs the Dual Recursive **/ /** Bipartitioning mapping algorithm. **/ /** **/ /** DATES : # Version 0.0 : from : 31 mar 1993 **/ /** to : 31 mar 1993 **/ /** # Version 1.0 : from : 04 oct 1993 **/ /** to : 06 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 11 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 17 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 19 oct 1995 **/ /** # Version 3.1 : from : 30 oct 1995 **/ /** to : 14 jun 1996 **/ /** # Version 3.2 : from : 23 aug 1996 **/ /** to : 07 sep 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 08 dec 1998 **/ /** # Version 3.4 : from : 01 jun 2001 **/ /** to : 07 nov 2001 **/ /** # Version 4.0 : from : 12 jan 2004 **/ /** to : 06 mar 2005 **/ /** # Version 5.1 : from : 22 nov 2007 **/ /** to : 04 feb 2009 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 21 jun 2019 **/ /** # Version 6.1 : from : 28 jun 2021 **/ /** to : 28 jun 2021 **/ /** # Version 7.0 : from : 25 aug 2019 **/ /** to : 09 aug 2024 **/ /** **/ /** NOTES : # This code is a complete rewrite of **/ /** the original code of kgraphMapRb(), **/ /** hence the kept history. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_KGRAPH_MAP_RB_MAP #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "kgraph.h" #include "kgraph_map_rb.h" #include "kgraph_map_rb_map.h" /* ** The static variables. */ static KgraphMapRbMapPoolLink kgraphmaprbmappooldummy; /* Dummy links for pool routines; TRICK */ /************************************/ /* */ /* These routines handle job pools. */ /* */ /************************************/ /* This routine initializes the job pool ** structures. ** It returns: ** - 0 : in case of success. ** - !0 : on error. */ static int kgraphMapRbMapPoolInit ( KgraphMapRbMapPoolData * restrict const poolptr, const KgraphMapRbData * restrict const dataptr, Context * const contptr) { int flagval; Mapping * restrict const mappptr = dataptr->mappptr; flagval = 0; if (archVar (mappptr->archptr) != 0) flagval |= KGRAPHMAPRBMAPARCHVAR; if (archPart (mappptr->archptr) != 0) { flagval |= KGRAPHMAPRBMAPARCHCMPLT; poolptr->polival = KGRAPHMAPRBPOLILEVEL; /* A simple policy will do */ poolptr->grafptr = NULL; /* We don't need top level graph data */ } else { poolptr->polival = dataptr->paraptr->polival; /* Enforce original policy */ poolptr->grafptr = dataptr->grafptr; /* We will need top-level graph data */ } poolptr->pfixtax = dataptr->pfixtax; poolptr->linktab[0].prev = /* Initialize doubly linked list as empty, pointing to the dummy element */ poolptr->linktab[0].next = poolptr->linktab[1].prev = poolptr->linktab[1].next = &kgraphmaprbmappooldummy; poolptr->pooltab[0] = &poolptr->linktab[0]; poolptr->pooltab[1] = (dataptr->paraptr->flagjobtie != 0) ? &poolptr->linktab[0] : &poolptr->linktab[1]; if ((poolptr->jobtab = (KgraphMapRbMapJob *) memAlloc (mappptr->domnmax * sizeof (KgraphMapRbMapJob))) == NULL) { errorPrint ("kgraphMapRbMapPoolInit: out of memory (2)"); return (1); } poolptr->jobtab[0].poolflag = 0; /* In case kgraphMapRbPoolExit() is called just afterwards on single-domain mapping */ poolptr->mappptr = mappptr; poolptr->domntab[0] = mappptr->domntab; /* Use original domain array */ if (dataptr->paraptr->flagmaptie != 0) { /* If mappings are tied, use same domain array */ poolptr->domntab[1] = mappptr->domntab; flagval |= KGRAPHMAPRBMAPPARTHALF; /* Updates will only involve half of the vertices */ } else { if ((poolptr->domntab[1] = (ArchDom *) memAlloc (mappptr->domnmax * sizeof (ArchDom))) == NULL) { errorPrint ("kgraphMapRbMapPoolInit: out of memory (3)"); memFree (poolptr->jobtab); return (1); } } poolptr->flagval = flagval; poolptr->contptr = contptr; return (0); } /* This routine frees all of the internal arrays ** involved in the DRB algorithms. Great care ** should be taken that this routine always ** succeeds, whatever part of the algorithm it ** is called from. ** It returns: ** - VOID : in all cases. */ static void kgraphMapRbMapPoolExit ( KgraphMapRbMapPoolData * restrict const poolptr) { Anum domnnbr; Anum jobnum; Mapping * restrict const mappptr = poolptr->mappptr; domnnbr = mappptr->domnnbr; for (jobnum = 0; jobnum < domnnbr; jobnum ++) { /* For all potential jobs in both pools */ if (poolptr->jobtab[jobnum].poolflag != 0) { /* If job slot is active */ graphExit (&poolptr->jobtab[jobnum].grafdat); /* Free job graph, if not clone of original graph */ } } if (mappptr->domntab != poolptr->domntab[1]) { /* If current mapping domain array is not original domain array */ if ((mappptr->flagval & MAPPINGFREEDOMN) != 0) /* If mapping domain array was privately owned, free it */ memFree (mappptr->domntab); mappptr->flagval |= MAPPINGFREEDOMN; /* Keep current domain array as private mapping domain array */ mappptr->domntab = poolptr->domntab[1]; } memFree (poolptr->jobtab); } /* This routine swaps the internal arrays ** involved in the DRB algorithms. ** It returns: ** - VOID : in all cases. */ static void kgraphMapRbMapPoolSwap ( KgraphMapRbMapPoolData * restrict const poolptr) { KgraphMapRbMapPoolLink * linktmp; ArchDom * domntmp; linktmp = poolptr->pooltab[0]; poolptr->pooltab[0] = poolptr->pooltab[1]; poolptr->pooltab[1] = linktmp; domntmp = poolptr->domntab[0]; poolptr->domntab[0] = poolptr->domntab[1]; poolptr->domntab[1] = domntmp; } /* This routine doubles the size all of the arrays ** involved in handling the target architecture, ** to make room for new domains of variable-sized ** architectures. ** It returns: ** - 0 : if resize succeeded. ** - !0 : if out of memory. */ static int kgraphMapRbMapPoolResize ( KgraphMapRbMapPoolData * restrict const poolptr) { KgraphMapRbMapJob * restrict jobtab; /* Pointer to (new) job array */ Anum domnnbr; /* Current (max) number of domains */ Anum domnmax; /* New maximum number of domains */ int i; domnnbr = poolptr->mappptr->domnmax; /* Current max size */ domnmax = domnnbr + (domnnbr >> 2) + 8; /* Increase size by 25% */ if ((jobtab = (KgraphMapRbMapJob *) memRealloc (poolptr->jobtab, domnmax * sizeof (KgraphMapRbMapJob))) == NULL) { errorPrint ("kgraphMapRbMapPoolResize: out of memory (1)"); return (1); } if (jobtab != poolptr->jobtab) { /* If job array moved */ KgraphMapRbMapJob * joboldtab; /* Pointer to start of old job array */ KgraphMapRbMapJob * joboldtnd; /* Pointer to end of old job array */ Anum jobnum; /* Temporary job index */ intptr_t jobdlt; /* Address delta value */ joboldtab = poolptr->jobtab; joboldtnd = joboldtab + domnnbr; jobdlt = (byte *) jobtab - (byte *) joboldtab; /* Compute delta between new and old addresses */ for (jobnum = 0; jobnum < domnnbr; jobnum ++) { if ((jobtab[jobnum].poollink.prev >= (KgraphMapRbMapPoolLink *) joboldtab) && /* If old pointers within bounds of old array, adjust them */ (jobtab[jobnum].poollink.prev < (KgraphMapRbMapPoolLink *) joboldtnd)) jobtab[jobnum].poollink.prev = (KgraphMapRbMapPoolLink *) ((byte *) jobtab[jobnum].poollink.prev + jobdlt); if ((jobtab[jobnum].poollink.next >= (KgraphMapRbMapPoolLink *) joboldtab) && (jobtab[jobnum].poollink.next < (KgraphMapRbMapPoolLink *) joboldtnd)) jobtab[jobnum].poollink.next = (KgraphMapRbMapPoolLink *) ((byte *) jobtab[jobnum].poollink.next + jobdlt); } if (poolptr->linktab[0].next != &kgraphmaprbmappooldummy) /* Update first pool pointer */ poolptr->linktab[0].next = (KgraphMapRbMapPoolLink *) ((byte *) poolptr->linktab[0].next + jobdlt); if (poolptr->pooltab[0] != poolptr->pooltab[1]) { /* If job pools not tied */ if (poolptr->linktab[1].next != &kgraphmaprbmappooldummy) /* Update second pool pointer */ poolptr->linktab[1].next = (KgraphMapRbMapPoolLink *) ((byte *) poolptr->linktab[1].next + jobdlt); } poolptr->jobtab = jobtab; /* Set new memory location of job array */ } i = (poolptr->domntab[1] == poolptr->mappptr->domntab) ? 1 : 0; /* Find which domain array is that of the mapping */ if (mapResize (poolptr->mappptr, domnmax) != 0) { errorPrint ("kgraphMapRbMapPoolResize: out of memory (2)"); return (1); } if (poolptr->domntab[1] != poolptr->domntab[0]) { /* If two domain arrays present */ ArchDom * domntab; if ((domntab = (ArchDom *) memRealloc (poolptr->domntab[i ^ 1], domnmax * sizeof (ArchDom))) == NULL) { /* Reallocate other domain array */ errorPrint ("kgraphMapRbMapPoolResize: out of memory (3)"); return (1); } poolptr->domntab[i ^ 1] = domntab; /* Set (possibly new) memory location of other domain array */ } else poolptr->domntab[i ^ 1] = poolptr->mappptr->domntab; /* Both domain arrays point to the same (new) location */ poolptr->domntab[i] = poolptr->mappptr->domntab; /* Set (possibly new) memory location of mapping domain array */ return (0); } /**********************************************/ /* */ /* These routines handle bipartitioning jobs. */ /* */ /**********************************************/ /* This routine adds a job to pool 1 of the ** given pool data structure. ** It returns: ** - VOID : in all cases. */ static void kgraphMapRbMapPoolAdd ( KgraphMapRbMapPoolLink * restrict const linkptr, KgraphMapRbMapJob * const jobptr) { jobptr->poollink.prev = linkptr; /* Link job in pool: TRICK */ jobptr->poollink.next = linkptr->next; jobptr->poolflag = 1; /* Job is in pool */ jobptr->poolptr = linkptr; /* Point to the pool */ linkptr->next->prev = &jobptr->poollink; linkptr->next = &jobptr->poollink; } /* This routine gets the best job available from ** the given pool, according to the given policy. ** It returns: ** - !NULL : pointer to the job. ** - NULL : if the pool is empty. */ static KgraphMapRbMapJob * kgraphMapRbMapPoolGet ( KgraphMapRbMapPoolData * const poolptr) { KgraphMapRbMapJob * jobbest; /* Best job found */ KgraphMapRbMapJob * jobptr; jobbest = (KgraphMapRbMapJob *) poolptr->pooltab[0]->next; /* Get first job in pool */ for (jobptr = jobbest; /* For all jobs in pool */ jobptr != (KgraphMapRbMapJob *) (void *) &kgraphmaprbmappooldummy; jobptr = (KgraphMapRbMapJob *) jobptr->poollink.next) { if (jobptr->priolvl > jobbest->priolvl) /* If the current job has stronger priority */ jobbest = jobptr; /* Select it as the best job */ } if (jobbest != (KgraphMapRbMapJob *) (void *) &kgraphmaprbmappooldummy) { /* If job found */ jobbest->poollink.next->prev = jobbest->poollink.prev; /* Remove it from pool */ jobbest->poollink.prev->next = jobbest->poollink.next; /* But do not mark it unused */ } else /* Dummy job means no job found */ jobbest = NULL; return (jobbest); } /* This routine adds a job to the given pool ** as the first bipartitioning job. ** It returns: ** - VOID : in all cases. */ static void kgraphMapRbMapPoolFrst ( KgraphMapRbMapPoolData * const poolptr, KgraphMapRbMapJob * const jobptr) /* Job to be added */ { switch (poolptr->polival) { /* Set job priority value */ case KGRAPHMAPRBPOLIRANDOM : jobptr->prioval = jobptr->priolvl = contextIntRandVal (poolptr->contptr, INTVALMAX); break; case KGRAPHMAPRBPOLILEVEL : case KGRAPHMAPRBPOLINGLEVEL : jobptr->prioval = jobptr->grafdat.vertnbr; jobptr->priolvl = 0; break; case KGRAPHMAPRBPOLISIZE : case KGRAPHMAPRBPOLINGSIZE : jobptr->prioval = jobptr->priolvl = jobptr->grafdat.vertnbr; break; #ifdef SCOTCH_DEBUG_KGRAPH2 default : errorPrint ("kgraphMapRbMapPoolFrst: unknown job selection policy"); jobptr->prioval = 0; jobptr->priolvl = 0; return; #endif /* SCOTCH_DEBUG_KGRAPH2 */ } kgraphMapRbMapPoolAdd (poolptr->pooltab[0], jobptr); /* Add job to pool */ } /* This routine updates the given job ** table with both of the given subjob ** data. ** This routine can be called only if ** the parent jobs of the vertices to ** be updated still exist. ** It returns: ** - VOID : in all cases. */ static void kgraphMapRbMapPoolUpdt1 ( KgraphMapRbMapPoolData * const poolptr, const KgraphMapRbMapJob * const joboldptr, /* Job to be removed */ const GraphPart * const parttax, KgraphMapRbMapJob * const jobnewptr, /* Its only active subjob */ const GraphPart partval) { Gnum prioval; Gnum priolvl; priolvl = 0; /* Prepare for neighbor updating methods */ switch (poolptr->polival) { /* Set job priority value */ case KGRAPHMAPRBPOLIRANDOM : prioval = priolvl = contextIntRandVal (poolptr->contptr, INTVALMAX); break; case KGRAPHMAPRBPOLILEVEL : priolvl = joboldptr->priolvl + 1; /* FALL THROUGH */ case KGRAPHMAPRBPOLINGLEVEL : prioval = joboldptr->prioval - 1; break; case KGRAPHMAPRBPOLISIZE : priolvl = jobnewptr->grafdat.vertnbr; /* FALL THROUGH */ case KGRAPHMAPRBPOLINGSIZE : prioval = jobnewptr->grafdat.vertnbr; break; default : errorPrint ("kgraphMapRbMapPoolUpdt1: unknown job selection policy"); jobnewptr->prioval = 0; jobnewptr->priolvl = 0; return; } jobnewptr->prioval = prioval; if (poolptr->polival >= KGRAPHMAPRBPOLINEIGHBOR) { /* If neighbors have to be updated */ Gnum prioold; KgraphMapRbMapJob * restrict const jobtab = poolptr->jobtab; const Anum * restrict const mapparttax = poolptr->mappptr->parttax; /* Based pointer to mapping part array */ const Anum * restrict const toppfixtax = poolptr->pfixtax; const Gnum * restrict const topverttax = poolptr->grafptr->verttax; /* Point to top-level graph arrays */ const Gnum * restrict const topvendtax = poolptr->grafptr->vendtax; const Gnum * restrict const topedgetax = poolptr->grafptr->edgetax; prioold = joboldptr->prioval; if (joboldptr->grafdat.vertnbr < poolptr->grafptr->vertnbr) { /* If subgraph is not top graph, change priority of neighboring jobs of old job */ Gnum jobvertnnd; Gnum jobvertnum; const Gnum * restrict const jobverttax = joboldptr->grafdat.verttax; const Gnum * restrict const jobvendtax = joboldptr->grafdat.vendtax; const Gnum * restrict const jobvnumtax = joboldptr->grafdat.vnumtax; jobnewptr->poolflag = 0; /* TRICK: avoid new job being considered for update */ for (jobvertnum = joboldptr->grafdat.baseval, jobvertnnd = joboldptr->grafdat.vertnnd; jobvertnum < jobvertnnd; jobvertnum ++) { Gnum topvertnum; Gnum topedgenum; if (parttax[jobvertnum] == partval) /* If vertex belongs to part which is still alive */ continue; /* Do not consider update part as removed */ topvertnum = jobvnumtax[jobvertnum]; /* If graph is smaller than top graph, then vnumtax must exist */ if ((topvendtax[topvertnum] - topverttax[topvertnum]) == /* If vertex is internal, skip it */ (jobvendtax[jobvertnum] - jobverttax[jobvertnum])) continue; for (topedgenum = topverttax[topvertnum]; topedgenum < topvendtax[topvertnum]; topedgenum ++) { KgraphMapRbMapJob * restrict jobnghbptr; /* (Old ?) job of neighbor vertex */ Gnum topvertend; topvertend = topedgetax[topedgenum]; if ((toppfixtax != NULL) && (toppfixtax[topvertend] >= 0)) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[topvertend] != ~0) { errorPrint ("kgraphMapRbMapPoolUpdt1: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ continue; } jobnghbptr = &jobtab[mapparttax[topvertend]]; /* Get pointer to neighboring job */ if ((jobnghbptr->poolflag != 0) && /* If neighbor is active */ (jobnghbptr->prioval <= prioold)) /* And had not already a stronger priority */ jobnghbptr->priolvl ++; /* Update neighbor priority */ } } jobnewptr->poolflag = 1; /* TRICK: new job is active again */ } if (jobnewptr->grafdat.vertnbr < poolptr->grafptr->vertnbr) { /* If subgraph is not top graph, update priority of neighbors of new job only */ Gnum jobvertnnd; Gnum jobvertnum; const Gnum * restrict const jobverttax = jobnewptr->grafdat.verttax; const Gnum * restrict const jobvendtax = jobnewptr->grafdat.vendtax; const Gnum * restrict const jobvnumtax = jobnewptr->grafdat.vnumtax; for (jobvertnum = jobnewptr->grafdat.baseval, jobvertnnd = jobnewptr->grafdat.vertnnd; jobvertnum < jobvertnnd; jobvertnum ++) { Gnum topvertnum; Gnum topedgenum; topvertnum = jobvnumtax[jobvertnum]; /* For subjobs jobvnumtax always exists */ if ((topvendtax[topvertnum] - topverttax[topvertnum]) == /* If vertex is internal, skip it */ (jobvendtax[jobvertnum] - jobverttax[jobvertnum])) continue; for (topedgenum = topverttax[topvertnum]; topedgenum < topvendtax[topvertnum]; topedgenum ++) { KgraphMapRbMapJob * restrict jobnghbptr; /* (Old ?) job of neighbor vertex */ Gnum topvertend; topvertend = topedgetax[topedgenum]; if ((toppfixtax != NULL) && (toppfixtax[topvertend] >= 0)) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[topvertend] != ~0) { errorPrint ("kgraphMapRbMapPoolUpdt1: internal error (2)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ continue; } jobnghbptr = &jobtab[mapparttax[topvertend]]; /* Get pointer to neighboring job */ if (jobnghbptr == jobnewptr) /* If it is the current job, do not consider the edge */ continue; if ((jobnghbptr->poolflag == 0) || /* If neighbor is not active */ (prioval > jobnghbptr->prioval)) /* Or if we have higher priority */ priolvl ++; /* Increase our priority */ else if ((prioval < jobnghbptr->prioval) && /* Else if neighbor has higher one */ (prioold >= jobnghbptr->prioval)) /* Which it did not already have */ jobnghbptr->priolvl ++; /* Update neighbor priority */ } } } } jobnewptr->priolvl = priolvl; kgraphMapRbMapPoolAdd (poolptr->pooltab[1], jobnewptr); /* Add job to pool */ } static void kgraphMapRbMapPoolUpdt2 ( KgraphMapRbMapPoolData * const poolptr, const KgraphMapRbMapJob * const joboldptr, /* Job to be removed */ const GraphPart * const parttax, KgraphMapRbMapJob * const jobnewptr0, /* Its two subjobs */ KgraphMapRbMapJob * const jobnewptr1) { KgraphMapRbMapJob * restrict jobnewtab[2]; int i; jobnewtab[0] = jobnewptr0; jobnewtab[1] = jobnewptr1; for (i = 1; i >= 0; i --) { KgraphMapRbMapJob * jobnewptr; Gnum prioval; Gnum priolvl; jobnewptr = jobnewtab[i]; /* Get concerned subjob */ priolvl = 0; /* Prepare for neighbor updating methods */ switch (poolptr->polival) { /* Set job priority value */ case KGRAPHMAPRBPOLIRANDOM : prioval = priolvl = contextIntRandVal (poolptr->contptr, INTVALMAX); break; case KGRAPHMAPRBPOLILEVEL : priolvl = joboldptr->priolvl + 1; /* FALL THROUGH */ case KGRAPHMAPRBPOLINGLEVEL : prioval = joboldptr->prioval - 1; break; case KGRAPHMAPRBPOLISIZE : priolvl = jobnewptr->grafdat.vertnbr; /* FALL THROUGH */ case KGRAPHMAPRBPOLINGSIZE : prioval = jobnewptr->grafdat.vertnbr; break; default : errorPrint ("kgraphMapRbMapPoolUpdt2: unknown job selection policy"); jobnewptr->prioval = 0; jobnewptr->priolvl = 0; return; } jobnewptr0->prioval = prioval + 1; /* TRICK: when processing subdomain 1, subdomain 0 has higher priority value */ jobnewptr->prioval = prioval; /* Then in its turn subdomain 0 will have its proper priority value */ if (poolptr->polival >= KGRAPHMAPRBPOLINEIGHBOR) { /* If neighbors have to be updated */ Gnum jobvertnnd; Gnum jobvertnum; Gnum prioold; KgraphMapRbMapJob * restrict const jobtab = poolptr->jobtab; const Anum * restrict const mapparttax = poolptr->mappptr->parttax; /* Based pointer to mapping part array */ const Anum * restrict const toppfixtax = poolptr->pfixtax; const Gnum * restrict const topverttax = poolptr->grafptr->verttax; /* Point to top-level graph arrays */ const Gnum * restrict const topvendtax = poolptr->grafptr->vendtax; const Gnum * restrict const topedgetax = poolptr->grafptr->edgetax; const Gnum * restrict const jobverttax = jobnewptr->grafdat.verttax; const Gnum * restrict const jobvendtax = jobnewptr->grafdat.vendtax; const Gnum * restrict const jobvnumtax = jobnewptr->grafdat.vnumtax; prioold = joboldptr->prioval; for (jobvertnum = jobnewptr->grafdat.baseval, jobvertnnd = jobnewptr->grafdat.vertnnd; jobvertnum < jobvertnnd; jobvertnum ++) { Gnum topvertnum; Gnum topedgenum; topvertnum = jobvnumtax[jobvertnum]; /* For subjobs jobvnumtax always exists */ if ((topvendtax[topvertnum] - topverttax[topvertnum]) == /* If vertex is internal, skip it */ (jobvendtax[jobvertnum] - jobverttax[jobvertnum])) continue; for (topedgenum = topverttax[topvertnum]; topedgenum < topvendtax[topvertnum]; topedgenum ++) { KgraphMapRbMapJob * jobnghbptr; /* (Old ?) job of neighbor vertex */ Gnum topvertend; topvertend = topedgetax[topedgenum]; if ((toppfixtax != NULL) && (toppfixtax[topvertend] >= 0)) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[topvertend] != ~0) { errorPrint ("kgraphMapRbMapPoolUpdt2: internal error"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ continue; } jobnghbptr = &jobtab[mapparttax[topvertend]]; /* Get pointer to neighboring job */ if ((jobnghbptr->poolflag != 0) && /* If neighbor is in active job */ (jobnghbptr->prioval > prioval) && /* Which gained priority over us */ (jobnghbptr->prioval <= prioold)) { jobnghbptr->priolvl ++; /* Update neighbor priority */ } if ((jobnghbptr->poolflag == 0) || /* If neighbor is fully known */ (jobnghbptr->prioval < prioval)) /* Or has smaller priority value */ priolvl ++; /* Then we should be processed */ } } } jobnewptr->priolvl = priolvl; /* Set new priority */ kgraphMapRbMapPoolAdd (poolptr->pooltab[1], jobnewptr); /* Add job to pool */ } } /* ** This routine removes the influence of the ** given job from its neighbor jobs. ** It returns: ** - VOID : in all cases. */ static void kgraphMapRbMapPoolRemv ( KgraphMapRbMapPoolData * const poolptr, const KgraphMapRbMapJob * const joboldptr) /* Job to be removed */ { if (poolptr->polival >= KGRAPHMAPRBPOLINEIGHBOR) { /* If neighbors have to be modified */ Gnum jobvertnnd; Gnum jobvertnum; Gnum prioold; KgraphMapRbMapJob * restrict const jobtab = poolptr->jobtab; const Anum * restrict const mapparttax = poolptr->mappptr->parttax; /* Based pointer to mapping part array */ const Anum * restrict const toppfixtax = poolptr->pfixtax; const Gnum * restrict const topverttax = poolptr->grafptr->verttax; /* Point to top-level graph arrays */ const Gnum * restrict const topvendtax = poolptr->grafptr->vendtax; const Gnum * restrict const topedgetax = poolptr->grafptr->edgetax; const Gnum * restrict const jobverttax = joboldptr->grafdat.verttax; const Gnum * restrict const jobvendtax = joboldptr->grafdat.vendtax; const Gnum * restrict const jobvnumtax = joboldptr->grafdat.vnumtax; prioold = joboldptr->prioval; for (jobvertnum = joboldptr->grafdat.baseval, jobvertnnd = joboldptr->grafdat.vertnnd; jobvertnum < jobvertnnd; jobvertnum ++) { Gnum topvertnum; /* Source graph vertex number */ Gnum topedgenum; /* Source graph edge number */ topvertnum = (jobvnumtax == NULL) ? jobvertnum : jobvnumtax[jobvertnum]; if ((topvendtax[topvertnum] - topverttax[topvertnum]) == /* If vertex is internal, skip it */ (jobvendtax[jobvertnum] - jobverttax[jobvertnum])) continue; for (topedgenum = topverttax[topvertnum]; topedgenum < topvendtax[topvertnum]; topedgenum ++) { KgraphMapRbMapJob * jobnghbptr; /* (Old ?) job of neighbor vertex */ Gnum topvertend; topvertend = topedgetax[topedgenum]; if ((toppfixtax != NULL) && (toppfixtax[topvertend] >= 0)) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[topvertend] != ~0) { errorPrint ("kgraphMapRbMapPoolRemv: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ continue; } jobnghbptr = &jobtab[mapparttax[topvertend]]; /* Get pointer to neighboring job */ if ((jobnghbptr->poolflag != 0) && /* If neighbor job is active */ (jobnghbptr->prioval <= prioold)) /* And had not already a stronger priority */ jobnghbptr->priolvl ++; /* Increase its priority since we are now inactive */ } } } } /**********************************************/ /* */ /* These routines handle the pool part array. */ /* */ /**********************************************/ static void kgraphMapRbMapPartBoth ( KgraphMapRbMapPoolData * restrict const poolptr, const Bgraph * restrict const actgrafptr, const Anum * restrict const jobsubnum) { Gnum actvertnum; const GraphPart * restrict actparttax; Anum * restrict mapparttax; Anum mappartval1; Anum mappartdlt; actparttax = actgrafptr->parttax; mapparttax = poolptr->mappptr->parttax; mappartval1 = jobsubnum[1]; mappartdlt = jobsubnum[0] - jobsubnum[1]; if (actgrafptr->s.vnumtax != NULL) { const Gnum * restrict actvnumtax; actvnumtax = actgrafptr->s.vnumtax; for (actvertnum = actgrafptr->s.baseval; actvertnum < actgrafptr->s.vertnnd; actvertnum ++) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[actvnumtax[actvertnum]] == ~0) { errorPrint ("kgraphMapRbMapPartBoth: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[actvnumtax[actvertnum]] = mappartval1 + ((((Anum) actparttax[actvertnum]) - 1) & mappartdlt); } } else { for (actvertnum = actgrafptr->s.baseval; actvertnum < actgrafptr->s.vertnnd; actvertnum ++) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[actvertnum] == ~0) { errorPrint ("kgraphMapRbMapPartBoth: internal error (2)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[actvertnum] = mappartval1 + ((((Anum) actparttax[actvertnum]) - 1) & mappartdlt); } } } static void kgraphMapRbMapPartOne ( KgraphMapRbMapPoolData * restrict const poolptr, const Bgraph * restrict const actgrafptr, const Anum jobsubnum1) { Gnum actvertnum; const GraphPart * restrict actparttax; Anum * restrict mapparttax; actparttax = actgrafptr->parttax; mapparttax = poolptr->mappptr->parttax; if (actgrafptr->s.vnumtax != NULL) { const Gnum * restrict actvnumtax; actvnumtax = actgrafptr->s.vnumtax; for (actvertnum = actgrafptr->s.baseval; actvertnum < actgrafptr->s.vertnnd; actvertnum ++) { if (actparttax[actvertnum] == 1) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[actvnumtax[actvertnum]] == ~0) { errorPrint ("kgraphMapRbMapPartOne: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[actvnumtax[actvertnum]] = jobsubnum1; } } } else { for (actvertnum = actgrafptr->s.baseval; actvertnum < actgrafptr->s.vertnnd; actvertnum ++) { if (actparttax[actvertnum] == 1) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[actvertnum] == ~0) { errorPrint ("kgraphMapRbMapPartOne: internal error (2)"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[actvertnum] = jobsubnum1; } } } } /********************************************/ /* */ /* This is the entry point for the Dual */ /* Recursive Bipartitioning mapping method. */ /* */ /********************************************/ /* This routine runs the Dual Recursive ** Bipartitioning algorithm. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapRbMap ( const KgraphMapRbData * restrict const dataptr, /*+ Global mapping data +*/ const Graph * restrict const grafptr, /*+ Graph to map, without fixed vertices +*/ const Anum vflonbr, /*+ Number of fixed vertex load slots +*/ KgraphMapRbVflo * restrict const vflotab, /*+ Array of fixed vertex load slots +*/ Context * const contptr) /*+ Execution context +*/ { KgraphMapRbMapPoolData pooldat; /* Data for handling jobs and job pools */ ArchDom domnsubtab[2]; /* Subdomains of current job domain */ KgraphMapRbMapJob joborgdat; /* Aera to save original job data */ Anum jobsubnum[2]; /* Number of subjob slots in job array */ Gnum jobsubsiz[2]; /* Sizes of subjobs */ Bgraph actgrafdat; /* Bipartition graph */ double comploadmin; /* Minimum vertex load per target load */ double comploadmax; /* Maximum vertex load per target load */ int i; Mapping * restrict const mappptr = dataptr->mappptr; mapFrst (mappptr, &dataptr->domnorg); /* Initialize mapping */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (dataptr->pfixtax != NULL) { /* In debug mode, fixed vertex parts are set to ~0 */ Gnum vertnnd; Gnum vertnum; Anum * restrict const parttax = mappptr->parttax; const Anum * restrict const pfixtax = dataptr->pfixtax; for (vertnum = dataptr->grafptr->baseval, vertnnd = dataptr->grafptr->vertnnd; vertnum < vertnnd; vertnum ++) { if (pfixtax[vertnum] >= 0) parttax[vertnum] = ~0; } } mappptr->domnmax = 1; /* Force resizing of job arrays, for debugging */ #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (kgraphMapRbMapPoolInit (&pooldat, dataptr, contptr) != 0) /* Initialize pool data; done first for kgraphMapRbMapPoolExit() to succeed afterwards */ return (1); if ((((pooldat.flagval & KGRAPHMAPRBMAPARCHVAR) == 0) && (archDomSize (mappptr->archptr, &dataptr->domnorg) <= 1)) || /* If single-vertex domain */ (((pooldat.flagval & KGRAPHMAPRBMAPARCHVAR) != 0) && (grafptr->vertnbr <= 1))) { /* Or if variable-sized architecture with single vertex graph */ kgraphMapRbMapPoolExit (&pooldat); return (0); /* Job already done */ } pooldat.jobtab[0].domnorg = dataptr->domnorg; /* Build first job */ pooldat.jobtab[0].grafdat = *grafptr; /* Clone induced graph as first job graph */ pooldat.jobtab[0].grafdat.flagval &= ~GRAPHFREETABS; /* Do not free its arrays on exit */ pooldat.jobtab[0].vflonbr = vflonbr; /* Record initial list of fixed load slots */ pooldat.jobtab[0].vflotab = vflotab; pooldat.jobtab[0].vflotab = vflotab; pooldat.jobtab[0].levlnum = 0; /* Initial recursion level is 0 */ kgraphMapRbMapPoolFrst (&pooldat, &pooldat.jobtab[0]); /* Add initial job */ comploadmin = (1.0 - dataptr->paraptr->kbalval) * dataptr->comploadrat; /* Ratio can have been tilted when working on subgraph */ comploadmax = (1.0 + dataptr->paraptr->kbalval) * dataptr->comploadrat; while (! kgraphMapRbMapPoolEmpty (&pooldat)) { /* For all non-empty pools */ KgraphMapRbMapJob * joborgptr; /* Pointer to current job */ while ((joborgptr = kgraphMapRbMapPoolGet (&pooldat)) != NULL) { /* For all jobs in pool */ Gnum vflonbrtab[2]; Gnum vflowgttab[2]; Gnum levlnum; int partval; jobsubnum[0] = (Anum) (joborgptr - pooldat.jobtab); /* Get current (and first son) job slot number before possible move of pointers */ joborgdat = *joborgptr; /* Save current job data (clone graph) */ if (archDomBipart (mappptr->archptr, &joborgdat.domnorg, &domnsubtab[0], &domnsubtab[1]) != 0) { errorPrint ("kgraphMapRbMap: cannot bipartition domain"); kgraphMapRbMapPoolExit (&pooldat); /* Copied graph will be freed as not yet removed */ return (1); } kgraphMapRbVfloSplit (mappptr->archptr, domnsubtab, /* Split fixed vertex load slots, if any */ joborgdat.vflonbr, joborgdat.vflotab, vflonbrtab, vflowgttab); if (kgraphMapRbBgraph (dataptr, &actgrafdat, &joborgdat.grafdat, pooldat.mappptr, domnsubtab, vflowgttab, contptr) != 0) { /* Create bipartition graph */ errorPrint ("kgraphMapRbMap: cannot create bipartition graph"); kgraphMapRbMapPoolExit (&pooldat); /* Copied graph will be freed as not yet removed */ return (1); } actgrafdat.s.flagval |= (joborgdat.grafdat.flagval & GRAPHFREETABS); /* Bipartition graph is responsible for freeing the cloned graph data fields */ joborgptr->poolflag = 0; /* Original slot is now considered unused so that cloned graph data will not be freed twice */ if ((pooldat.flagval & KGRAPHMAPRBMAPARCHVAR) == 0) { /* If not variable-sized, impose constraints on bipartition */ double comploadavg; comploadavg = (double) actgrafdat.s.velosum / (double) archDomWght (mappptr->archptr, &joborgdat.domnorg); actgrafdat.compload0min = actgrafdat.compload0avg - (Gnum) MIN ((comploadmax - comploadavg) * (double) actgrafdat.domnwght[0], (comploadavg - comploadmin) * (double) actgrafdat.domnwght[1]); actgrafdat.compload0max = actgrafdat.compload0avg + (Gnum) MIN ((comploadavg - comploadmin) * (double) actgrafdat.domnwght[0], (comploadmax - comploadavg) * (double) actgrafdat.domnwght[1]); } if (bgraphBipartSt (&actgrafdat, dataptr->paraptr->strat) != 0) { /* Perform bipartitioning */ errorPrint ("kgraphMapRbMap: cannot bipartition job"); bgraphExit (&actgrafdat); kgraphMapRbMapPoolExit (&pooldat); return (1); } if ((partval = 1, actgrafdat.compsize0 == 0) || /* If no bipartition found */ (partval = 0, actgrafdat.compsize0 == actgrafdat.s.vertnbr)) { if ((pooldat.flagval & KGRAPHMAPRBMAPARCHVAR) != 0) { /* If architecture is variable-sized */ pooldat.domntab[0][jobsubnum[0]] = joborgdat.domnorg; /* Propagate domain in next pool */ kgraphMapRbMapPoolRemv (&pooldat, &joborgdat); /* Remove job from pool as long as graph exists */ } else if (archDomSize (mappptr->archptr, &domnsubtab[partval]) <= 1) { /* If domain is terminal */ pooldat.domntab[0][jobsubnum[0]] = domnsubtab[partval]; /* Refine domain in next pool */ kgraphMapRbMapPoolRemv (&pooldat, &joborgdat); /* Remove job from pool as long as graph exists */ } else { /* Re-use job slot and graph for further bipartitioning */ pooldat.domntab[0][jobsubnum[0]] = /* Update domain in next pool */ joborgptr->domnorg = domnsubtab[partval]; /* New job takes same graph and non-empty subdomain */ joborgptr->vflonbr = vflonbrtab[partval]; joborgptr->vflotab = joborgdat.vflotab + (partval * vflonbrtab[0]); /* Point to proper sub-array */ joborgptr->levlnum ++; kgraphMapRbMapPoolUpdt1 (&pooldat, &joborgdat, actgrafdat.parttax, joborgptr, partval); /* Add job to pool */ actgrafdat.s.flagval &= ~GRAPHFREETABS; /* Since graph will be re-used, never free its internal arrays */ } bgraphExit (&actgrafdat); /* Free bipartitioning data as well as current graph */ continue; /* Process next job in current pool */ } if ((pooldat.mappptr->domnnbr == pooldat.mappptr->domnmax) && /* If all job slots busy and if cannot resize */ (kgraphMapRbMapPoolResize (&pooldat) != 0)) { /* From this point, joborgptr may no longer be valid */ errorPrint ("kgraphMapRbMap: cannot resize structures"); kgraphMapRbMapPoolExit (&pooldat); return (1); } jobsubnum[1] = pooldat.mappptr->domnnbr ++; /* Get slot number of new subdomain */ jobsubsiz[1] = actgrafdat.s.vertnbr - actgrafdat.compsize0; jobsubsiz[0] = actgrafdat.compsize0; pooldat.jobtab[jobsubnum[1]].poolflag = 0; /* Assume that new job is inactive in case of premature freeing */ pooldat.domntab[1][jobsubnum[1]] = joborgdat.domnorg; /* Copy original domain to new subdomain as old mapping shares parttax with new */ pooldat.domntab[0][jobsubnum[0]] = domnsubtab[0]; /* Set subdomains of second mapping before relinking subjobs in pool */ pooldat.domntab[0][jobsubnum[1]] = domnsubtab[1]; if ((pooldat.flagval & KGRAPHMAPRBMAPPARTHALF) != 0) /* If can only update second half */ kgraphMapRbMapPartOne (&pooldat, &actgrafdat, jobsubnum[1]); else kgraphMapRbMapPartBoth (&pooldat, &actgrafdat, jobsubnum); levlnum = joborgdat.levlnum + 1; for (i = 1; i >= 0; i --) { /* For both subdomains */ KgraphMapRbMapJob * jobsubptr; jobsubptr = &pooldat.jobtab[jobsubnum[i]]; /* Point to subdomain job slot */ jobsubptr->poollink.prev = /* Prevent Valgrind from yelling in kgraphMapRbMapPoolResize() */ jobsubptr->poollink.next = NULL; jobsubptr->prioval = /* Prevent Valgrind from yelling in kgraphMapRbMapPoolRemv()/Updt1()/Updt2() */ jobsubptr->priolvl = 0; if ((((pooldat.flagval & KGRAPHMAPRBMAPARCHVAR) == 0) && (archDomSize (mappptr->archptr, &domnsubtab[i]) <= 1)) || /* If single-vertex domain */ (((pooldat.flagval & KGRAPHMAPRBMAPARCHVAR) != 0) && (jobsubsiz[i] <= 1))) { /* Or if variable-sized architecture with single vertex graph */ jobsubsiz[i] = 0; /* Cancel subjob */ continue; } partval = i; /* At least this subjob works */ if (graphInducePart (&actgrafdat.s, actgrafdat.parttax, jobsubsiz[i], (GraphPart) i, &jobsubptr->grafdat) != 0) { errorPrint ("kgraphMapRbMap: cannot create induced subgraph"); bgraphExit (&actgrafdat); kgraphMapRbMapPoolExit (&pooldat); return (1); } jobsubptr->poolflag = 1; /* So that graph is freed in case of error on other part */ jobsubptr->domnorg = domnsubtab[i]; jobsubptr->vflonbr = vflonbrtab[i]; jobsubptr->vflotab = joborgdat.vflotab + (i * vflonbrtab[0]); /* Point to proper sub-array */ jobsubptr->levlnum = levlnum; /* Set new level */ } if ((jobsubsiz[0] | jobsubsiz[1]) == 0) /* If both subjobs do not need further processing */ kgraphMapRbMapPoolRemv (&pooldat, &joborgdat); else if (jobsubsiz[1 - partval] == 0) /* If one of the subjobs only needs further processing */ kgraphMapRbMapPoolUpdt1 (&pooldat, &joborgdat, actgrafdat.parttax, &pooldat.jobtab[jobsubnum[partval]], (GraphPart) partval); else kgraphMapRbMapPoolUpdt2 (&pooldat, &joborgdat, actgrafdat.parttax, &pooldat.jobtab[jobsubnum[0]], &pooldat.jobtab[jobsubnum[1]]); bgraphExit (&actgrafdat); /* Free bipartition graph data */ } kgraphMapRbMapPoolSwap (&pooldat); /* Swap current and next levels */ } kgraphMapRbMapPoolExit (&pooldat); /* Free internal structures and propagate back new partition */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_rb_map.h000066400000000000000000000213461514310134000275250ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_rb_map.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Dual Recursive Bipartitioning **/ /** mapping algorithm. **/ /** **/ /** DATES : # Version 0.0 : from : 23 mar 1993 **/ /** to : 12 may 1993 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 09 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 04 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 30 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 28 sep 1995 **/ /** # Version 3.1 : from : 15 nov 1995 **/ /** to : 15 nov 1995 **/ /** # Version 3.2 : from : 01 oct 1996 **/ /** to : 10 jun 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 17 may 1999 **/ /** # Version 3.4 : from : 12 sep 2001 **/ /** to : 06 nov 2001 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 05 may 2006 **/ /** # Version 5.1 : from : 30 sep 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 28 jun 2021 **/ /** to : 28 jun 2021 **/ /** # Version 7.0 : from : 14 jan 2020 **/ /** to : 16 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Dual recursive bipartitioning option flags. +*/ #define KGRAPHMAPRBMAPARCHVAR 0x0001 /* Variable-sized architecture */ #define KGRAPHMAPRBMAPARCHCMPLT 0x0002 /* Complete-graph architecture */ #define KGRAPHMAPRBMAPPARTHALF 0x0004 /* Only update half of part array as mappings are tied */ /* ** The type and structure definitions. */ /*+ Job pool structures. +*/ typedef struct KgraphMapRbMapPoolLink_ { struct KgraphMapRbMapPoolLink_ * prev; /*+ Pointer to previous link +*/ struct KgraphMapRbMapPoolLink_ * next; /*+ Pointer to next link +*/ } KgraphMapRbMapPoolLink; /*+ This structure defines a job to be performed with respect to a partial mapping of a source graph. +*/ typedef struct KgraphMapRbMapJob_ { KgraphMapRbMapPoolLink poollink; /*+ Link to job pool; TRICK: FIRST +*/ KgraphMapRbMapPoolLink * poolptr; /*+ Pointer to last/current job pool +*/ int poolflag; /*+ Flag set if job in pool +*/ Gnum prioval; /*+ Job priority value by policy +*/ Gnum priolvl; /*+ Priority level computed for this job +*/ ArchDom domnorg; /*+ Domain to which the vertices belong +*/ Graph grafdat; /*+ Job graph data (may be clone of another) +*/ Anum vflonbr; /*+ Number of fixed vertex load slots +*/ KgraphMapRbVflo * vflotab; /*+ Partial array of fixed vertex load slots +*/ Gnum levlnum; /*+ Level of this job +*/ } KgraphMapRbMapJob; /*+ This structure defines the working data, for easier parameter passing. +*/ typedef struct KgraphMapRbMapPoolData_ { int flagval; /*+ Pool flag value +*/ KgraphMapRbPolicy polival; /*+ Job selection policy +*/ const Graph * grafptr; /*+ Pointer to top graph +*/ const Anum * pfixtax; /*+ Pointer to fixed part array +*/ KgraphMapRbMapPoolLink linktab[2]; /*+ Lists of jobs in pools +*/ KgraphMapRbMapPoolLink * pooltab[2]; /*+ Pointer to pools (same if tied) +*/ ArchDom * domntab[2]; /*+ Pointer to domain arrays (same if tied) +*/ KgraphMapRbMapJob * jobtab; /*+ Job table +*/ Mapping * mappptr; /*+ Pointer to original mapping: current state +*/ ArchDom domnorg; /*+ Original domain to map +*/ Context * contptr; } KgraphMapRbMapPoolData; /* ** The function prototypes. */ #ifdef SCOTCH_KGRAPH_MAP_RB_MAP static int kgraphMapRbMapPoolInit (KgraphMapRbMapPoolData * restrict const, const KgraphMapRbData * restrict const, Context * const); static void kgraphMapRbMapPoolExit (KgraphMapRbMapPoolData * restrict const poolptr); static void kgraphMapRbMapPoolAdd (KgraphMapRbMapPoolLink * restrict const, KgraphMapRbMapJob * const); static KgraphMapRbMapJob * kgraphMapRbMapPoolGet (KgraphMapRbMapPoolData * restrict const); static void kgraphMapRbMapPoolFrst (KgraphMapRbMapPoolData * const, KgraphMapRbMapJob * const); static void kgraphMapRbMapPoolUpdt1 (KgraphMapRbMapPoolData * const, const KgraphMapRbMapJob * const, const GraphPart * const, KgraphMapRbMapJob * const, const GraphPart); static void kgraphMapRbMapPoolUpdt2 (KgraphMapRbMapPoolData * const, const KgraphMapRbMapJob * const, const GraphPart * const, KgraphMapRbMapJob * const, KgraphMapRbMapJob * const); static int kgraphMapRbMapPoolResize (KgraphMapRbMapPoolData * restrict const); #endif /* SCOTCH_KGRAPH_MAP_RB_MAP */ int kgraphMapRbMap (const KgraphMapRbData * restrict const, const Graph * restrict const, const Anum, KgraphMapRbVflo * restrict const, Context * restrict const); /* ** The macro definitions. */ #define kgraphMapRbMapPoolEmpty(poolptr) ((poolptr)->pooltab[0]->next == &kgraphmaprbmappooldummy) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_rb_part.c000066400000000000000000000432031514310134000277050ustar00rootroot00000000000000/* Copyright 2008,2011,2014,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_rb_part.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module performs the Dual Recursive **/ /** Bipartitioning mapping algorithm for **/ /** (eventually weighted) complete graph **/ /** target architectures. **/ /** **/ /** DATES : # Version 5.1 : from : 16 sep 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 16 sep 2014 **/ /** # Version 6.1 : from : 28 jun 2021 **/ /** to : 28 jun 2021 **/ /** # Version 7.0 : from : 03 may 2021 **/ /** to : 16 jul 2023 **/ /** **/ /** NOTES : # This is a rewrite of kgraphMapRb() **/ /** for complete-graph target topologies. **/ /** Its advantage over kgraphMapRbMap() **/ /** is that no job arrays are allocated, **/ /** which can save space for instance for **/ /** using the variable-sized complete **/ /** graph architecture. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_KGRAPH_MAP_RB_PART #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "kgraph.h" #include "kgraph_map_rb.h" #include "kgraph_map_rb_part.h" /********************************************/ /* */ /* This is the entry point for the Dual */ /* Recursive Bipartitioning mapping method. */ /* */ /********************************************/ /* This routine updates partial mappings ** according to the result of the recursive ** bipartitioning process. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int kgraphMapRbPart3 ( const Graph * restrict const srcgrafptr, /* Graph to induce and bipartition */ const GraphPart * restrict const srcparttax, /* Part array of original graph */ const GraphPart indpartval, /* Part of graph to consider */ const ArchDom * restrict const domnptr, /* Domain to map */ Mapping * restrict const mappptr) /* Final mapping */ { Anum domnnum; Gnum vertnum; const Gnum * restrict const srcvnumtax = srcgrafptr->vnumtax; Anum * const mapparttax = mappptr->parttax; /* [norestrict] as array can be writter by different threads */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&mappptr->mutedat); #endif /* SCOTCH_PTHREAD */ domnnum = mappptr->domnnbr ++; /* One more subdomain to account for */ if (domnnum >= mappptr->domnmax) { int o; if ((o = mapResize (mappptr, domnnum + (domnnum >> 2) + 8)) != 0) { /* Increase size by 25% */ errorPrint ("kgraphMapRbPart3: cannot resize structures"); #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&mappptr->mutedat); #endif /* SCOTCH_PTHREAD */ return (o); } } mappptr->domntab[domnnum] = *domnptr; /* Write domain in (possibly reallocated) array */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&mappptr->mutedat); #endif /* SCOTCH_PTHREAD */ if (srcparttax == NULL) { /* If graph is full graph */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (domnnum != 0) { errorPrint ("kgraphMapRbPart3: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (srcvnumtax == NULL) /* If full graph doesn't have fixed vertices */ memSet (mapparttax + srcgrafptr->baseval, 0, srcgrafptr->vertnbr * sizeof (Anum)); else { Gnum vertnnd; for (vertnum = srcgrafptr->baseval, vertnnd = srcgrafptr->vertnnd; vertnum < vertnnd; vertnum ++) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[srcvnumtax[vertnum]] == ~0) { errorPrint ("kgraphMapRbPart3: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[srcvnumtax[vertnum]] = domnnum; } } } else { /* Graph to consider is a subgraph of the original graph */ if (srcvnumtax == NULL) { /* If original graph is not itself a subgraph */ Gnum vertnnd; for (vertnum = srcgrafptr->baseval, vertnnd = srcgrafptr->vertnnd; vertnum < vertnnd; vertnum ++) { if (srcparttax[vertnum] == indpartval) { /* If vertex belongs to the right part */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[vertnum] == ~0) { errorPrint ("kgraphMapRbPart3: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[vertnum] = domnnum; } } } else { Gnum vertnnd; for (vertnum = srcgrafptr->baseval, vertnnd = srcgrafptr->vertnnd; vertnum < vertnnd; vertnum ++) { if (srcparttax[vertnum] == indpartval) { /* If vertex belongs to the right part */ #ifdef SCOTCH_DEBUG_KGRAPH2 if (mapparttax[srcvnumtax[vertnum]] == ~0) { errorPrint ("kgraphMapRbPart3: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ mapparttax[srcvnumtax[vertnum]] = domnnum; } } } } return (0); } /* This routine is the core of the degenerated, ** graph partitioning version of the Dual Recursive ** Bipartitioning algorithm. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static void kgraphMapRbPart2 ( Context * restrict const contptr, /*+ (Sub-)context +*/ const int spltnum, /*+ Rank of sub-context in initial context +*/ KgraphMapRbPartSplit * const spltptr) { Graph indgrafdat; const Graph * indgrafptr; Bgraph actgrafdat; ArchDom domnsubtab[2]; /* Target subdomains */ Anum vflonbrtab[2]; /* Number of fixed vertex slots in subdomains */ Gnum vflowgttab[2]; /* Weights of fixed vertex slots in subdomains */ KgraphMapRbPartSplit spltdat; /* Parameters for context splitting */ int avarval; /* Flag set if variable-sized */ GraphPart partval; int o; Mapping * restrict const mappptr = spltptr->dataptr->mappptr; const Graph * restrict const srcgrafptr = spltptr->grafptr; const GraphPart * restrict const srcparttax = spltptr->parttax; const GraphPart indpartval = (GraphPart) spltnum; const Gnum indvertnbr = spltptr->splttab[spltnum].vertnbr; avarval = archVar (mappptr->archptr); o = ((avarval != 0) && /* If architecture is variable-sized */ (indvertnbr <= 1)) /* And source subgraph of minimal size */ ? 1 /* Then do not bipartition target more */ : archDomBipart (mappptr->archptr, spltptr->splttab[spltnum].domnptr, &domnsubtab[0], &domnsubtab[1]); switch (o) { case 1 : /* If target domain is terminal */ o = kgraphMapRbPart3 (srcgrafptr, srcparttax, indpartval, spltptr->splttab[spltnum].domnptr, mappptr); /* Update mapping and return */ goto end3; /* Propagate errors only */ case 2 : /* On error */ errorPrint ("kgraphMapRbPart2: cannot bipartition domain"); o = 1; goto end3; } indgrafptr = srcgrafptr; /* Assume we will work on the original graph */ if ((srcparttax != NULL) && /* If not the case, build induced subgraph */ (indvertnbr < srcgrafptr->vertnbr)) { indgrafptr = &indgrafdat; if ((o = graphInducePart (srcgrafptr, srcparttax, indvertnbr, indpartval, &indgrafdat)) != 0) { errorPrint ("kgraphMapRbPart2: cannot induce graph"); goto end3; } } kgraphMapRbVfloSplit (mappptr->archptr, domnsubtab, spltptr->splttab[spltnum].vflonbr, spltptr->splttab[spltnum].vflotab, vflonbrtab, vflowgttab); if ((o = kgraphMapRbBgraph (spltptr->dataptr, &actgrafdat, indgrafptr, mappptr, domnsubtab, vflowgttab, contptr)) != 0) { /* Create active graph */ errorPrint ("kgraphMapRbPart2: cannot create bipartition graph"); goto end2; } actgrafdat.levlnum = spltptr->levlnum; if (avarval == 0) { /* If not variable-sized, impose constraints on bipartition */ double comploadavg; comploadavg = (double) (actgrafdat.s.velosum + vflowgttab[0] + vflowgttab[1]) / (double) archDomWght (mappptr->archptr, spltptr->splttab[spltnum].domnptr); actgrafdat.compload0min = actgrafdat.compload0avg - (Gnum) MIN ((spltptr->dataptr->comploadmax - comploadavg) * (double) actgrafdat.domnwght[0], (comploadavg - spltptr->dataptr->comploadmin) * (double) actgrafdat.domnwght[1]); actgrafdat.compload0max = actgrafdat.compload0avg + (Gnum) MIN ((comploadavg - spltptr->dataptr->comploadmin) * (double) actgrafdat.domnwght[0], (spltptr->dataptr->comploadmax - comploadavg) * (double) actgrafdat.domnwght[1]); } if ((o = bgraphBipartSt (&actgrafdat, spltptr->dataptr->paraptr->strat)) != 0) { /* Perform bipartitioning */ errorPrint ("kgraphMapRbPart2: cannot bipartition graph"); goto end1; } memFree (actgrafdat.frontab); /* Frontier array of bipartitioning graph is no longer necessary */ actgrafdat.s.flagval &= ~BGRAPHFREEFRON; spltdat.splttab[0].vertnbr = actgrafdat.compsize0; /* Prepare the two subjobs */ spltdat.splttab[0].vflonbr = vflonbrtab[0]; spltdat.splttab[0].vflotab = spltptr->splttab[spltnum].vflotab; spltdat.splttab[0].domnptr = &domnsubtab[0]; spltdat.splttab[1].vertnbr = actgrafdat.s.vertnbr - actgrafdat.compsize0; spltdat.splttab[1].vflonbr = vflonbrtab[1]; spltdat.splttab[1].vflotab = spltptr->splttab[spltnum].vflotab + vflonbrtab[0]; spltdat.splttab[1].domnptr = &domnsubtab[1]; if ((partval = 1, (actgrafdat.compsize0 == 0)) || /* If bipartition failed */ (partval = 0, (actgrafdat.compsize0 == actgrafdat.s.vertnbr))) { if (avarval == 0) { /* If architecture is not variable-sized */ bgraphExit (&actgrafdat); /* Free bipartition graph (that is, parttax) */ if (indgrafptr == &indgrafdat) /* If an induced subgraph had been created */ graphExit (&indgrafdat); /* Free it */ spltptr->splttab[spltnum].vflonbr = spltdat.splttab[partval].vflonbr; /* Restrict to non-empty subdomain (vertnbr unchanged) */ spltptr->splttab[spltnum].vflotab = spltdat.splttab[partval].vflotab; spltptr->splttab[spltnum].domnptr = spltdat.splttab[partval].domnptr; kgraphMapRbPart2 (contptr, spltnum, spltptr); /* Run bipartitioning on same subgraph */ return; /* Error management performed at lower level */ } else { /* If architecture is variable-sized */ o = kgraphMapRbPart3 (srcgrafptr, srcparttax, indpartval, spltptr->splttab[spltnum].domnptr, mappptr); /* Update mapping with original domain */ goto end1; } } spltdat.dataptr = spltptr->dataptr; /* Complete data of the two subjobs for possible concurrent execution */ spltdat.grafptr = indgrafptr; spltdat.parttax = actgrafdat.parttax; spltdat.levlnum = spltptr->levlnum + 1; spltdat.revaptr = &o; #ifndef KGRAPHMAPRBPARTNOTHREAD if (contextThreadLaunchSplit (contptr, (ContextSplitFunc) kgraphMapRbPart2, &spltdat) != 0) /* If counld not split context to run concurrently */ #endif /* KGRAPHMAPRBPARTNOTHREAD */ { kgraphMapRbPart2 (contptr, 0, &spltdat); /* Run tasks in sequence */ if (o == 0) kgraphMapRbPart2 (contptr, 1, &spltdat); } end1: bgraphExit (&actgrafdat); /* Free bipartition graph (that is, parttax) */ end2: if (indgrafptr == &indgrafdat) /* If an induced subgraph had been created */ graphExit (&indgrafdat); /* Free it */ end3: if (o != 0) { /* Lock only to Propagate errors */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&mappptr->mutedat); #endif /* SCOTCH_PTHREAD */ *spltptr->revaptr = o; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&mappptr->mutedat); #endif /* SCOTCH_PTHREAD */ } } /* This routine is the entry point for ** the degenerated, graph partitioning ** version, of the Dual Recursive ** Bipartitioning algorithm. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapRbPart ( const KgraphMapRbData * restrict const dataptr, /*+ Global mapping data +*/ const Graph * restrict const grafptr, /*+ Graph to map, without fixed vertices +*/ const Anum vflonbr, /*+ Number of fixed vertex load slots +*/ KgraphMapRbVflo * restrict const vflotab, /*+ Array of fixed vertex load slots +*/ Context * restrict const contptr) /*+ Execution context +*/ { KgraphMapRbPartSplit spltdat; /*+ Data for initial call +*/ int o; Mapping * const mappptr = dataptr->mappptr; #ifdef SCOTCH_DEBUG_KGRAPH2 if (dataptr->pfixtax != NULL) { /* In debug mode, fixed vertex parts are set to ~0 */ Gnum vertnum; for (vertnum = dataptr->grafptr->baseval; vertnum < dataptr->grafptr->vertnnd; vertnum ++) mappptr->parttax[vertnum] = (dataptr->pfixtax[vertnum] >= 0) ? ~0 : 0; } else memSet (mappptr->parttax + dataptr->grafptr->baseval, 0, dataptr->grafptr->vertnbr * sizeof (Anum)); #endif /* SCOTCH_DEBUG_KGRAPH2 */ #ifdef SCOTCH_PTHREAD pthread_mutex_init (&mappptr->mutedat, NULL); /* Initialize mapping mutex */ #endif /* SCOTCH_PTHREAD */ mappptr->domnnbr = 0; /* Initialize mapping without setting initial domain */ spltdat.splttab[0].vertnbr = grafptr->vertnbr; /* Start from initial domain */ spltdat.splttab[0].vflonbr = vflonbr; spltdat.splttab[0].vflotab = vflotab; spltdat.splttab[0].domnptr = &dataptr->domnorg; /* Point to initial domain to avoid centralized locking on domain array */ spltdat.dataptr = dataptr; spltdat.grafptr = grafptr; spltdat.parttax = NULL; spltdat.levlnum = 0; spltdat.revaptr = &o; o = 0; /* Assume everything will run without error */ kgraphMapRbPart2 (contptr, 0, &spltdat); /* Run recursive partitioning on main graph */ #ifdef SCOTCH_PTHREAD pthread_mutex_destroy (&mappptr->mutedat); /* Destroy local mutex */ #endif /* SCOTCH_PTHREAD */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_rb_part.h000066400000000000000000000110021514310134000277020ustar00rootroot00000000000000/* Copyright 2008,2011,2014,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_rb_part.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Dual Recursive Bipartitioning **/ /** mapping algorithm. **/ /** **/ /** DATES : # Version 5.1 : from : 22 sep 2008 **/ /** to : 14 apr 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 06 may 2021 **/ /** to : 16 jul 2024 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the splitting parameters. +*/ typedef struct KgraphMapRbPartSplit2_ { Gnum vertnbr; /*+ Number of vertices in part or in graph +*/ Anum vflonbr; /*+ Number of fixed vertex load slots +*/ KgraphMapRbVflo * restrict vflotab; /*+ Array of fixed vertex load slots +*/ ArchDom const * domnptr; /*+ Original domain to bipartition (to avoid lock) +*/ } KgraphMapRbPartSplit2; typedef struct KgraphMapRbPartSplit_ { KgraphMapRbPartSplit2 splttab[2]; /*+ Array of induced subgraph data +*/ KgraphMapRbData const * restrict dataptr; /*+ Global mapping data +*/ Graph const * restrict grafptr; /*+ Graph to induce and bipartition +*/ GraphPart const * restrict parttax; /*+ Part array of original graph to consider +*/ Gnum levlnum; /*+ Recursion level number +*/ int * revaptr; /*+ Pointer to return value +*/ } KgraphMapRbPartSplit; /* ** The function prototypes. */ #ifdef SCOTCH_KGRAPH_MAP_RB_PART static void kgraphMapRbPart2 (Context * restrict const, const int, KgraphMapRbPartSplit * const); #endif /* SCOTCH_KGRAPH_MAP_RB_PART */ int kgraphMapRbPart (const KgraphMapRbData * restrict const, const Graph * restrict const, const Anum, KgraphMapRbVflo * restrict const, Context * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_st.c000066400000000000000000000471241514310134000267100ustar00rootroot00000000000000/* Copyright 2004,2007,2009-2011,2014,2018,2021,2023,2024,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the strategy and **/ /** method tables for the multi-way static **/ /** mapping routines. **/ /** **/ /** DATES : # Version 3.2 : from : 15 oct 1996 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 17 may 1999 **/ /** # Version 3.4 : from : 12 sep 2001 **/ /** to : 12 sep 2001 **/ /** # Version 4.0 : from : 12 jan 2004 **/ /** to : 05 jan 2005 **/ /** # Version 5.1 : from : 04 oct 2009 **/ /** to : 29 mar 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 04 aug 2018 **/ /** # Version 6.1 : from : 18 jul 2021 **/ /** to : 18 jul 2021 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 09 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "gain.h" #include "fibo.h" #include "graph.h" #include "arch.h" #include "graph_coarsen.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "kgraph.h" #include "kgraph_map_bd.h" #include "kgraph_map_cp.h" #include "kgraph_map_df.h" #include "kgraph_map_ex.h" #include "kgraph_map_fm.h" #include "kgraph_map_ml.h" #include "kgraph_map_rb.h" #include "kgraph_map_st.h" /* ** The static and global variables. */ static Kgraph kgraphdummy; /*+ Dummy active graph for offset computations +*/ static union { KgraphMapBdParam param; StratNodeMethodData padding; } kgraphmapstdefaultbd = { { 3, &stratdummy, &stratdummy } }; static union { StratNodeMethodData padding; } kgraphmapstdefaultcp; static union { KgraphMapDfParam param; StratNodeMethodData padding; } kgraphmapstdefaultdf = { { 40, 1.0F, 0.0F } }; static union { KgraphMapExParam param; StratNodeMethodData padding; } kgraphmapstdefaultex = { { 0.05 } }; static union { KgraphMapFmParam param; StratNodeMethodData padding; } kgraphmapstdefaultfm = { { 200, ~0, 0.05 } }; static union { KgraphMapMlParam param; StratNodeMethodData padding; } kgraphmapstdefaultml = { { 100, 0.8, &stratdummy, &stratdummy, 0 } }; static union { KgraphMapRbParam param; StratNodeMethodData padding; } kgraphmapstdefaultrb = { { 1, 1, KGRAPHMAPRBPOLINGSIZE, &stratdummy, 0.05 } }; static StratMethodTab kgraphmapstmethtab[] = { /* Mapping methods array */ { KGRAPHMAPSTMETHBD, "b", (StratMethodFunc) kgraphMapBd, &kgraphmapstdefaultbd }, { KGRAPHMAPSTMETHCP, "c", (StratMethodFunc) kgraphMapCp, &kgraphmapstdefaultcp }, { KGRAPHMAPSTMETHDF, "d", (StratMethodFunc) kgraphMapDf, &kgraphmapstdefaultdf }, { KGRAPHMAPSTMETHEX, "x", (StratMethodFunc) kgraphMapEx, &kgraphmapstdefaultex }, { KGRAPHMAPSTMETHFM, "f", (StratMethodFunc) kgraphMapFm, &kgraphmapstdefaultfm }, { KGRAPHMAPSTMETHML, "m", (StratMethodFunc) kgraphMapMl, &kgraphmapstdefaultml }, { KGRAPHMAPSTMETHRB, "r", (StratMethodFunc) kgraphMapRb, &kgraphmapstdefaultrb }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab kgraphmapstparatab[] = { /* Method parameter list */ { KGRAPHMAPSTMETHBD, STRATPARAMINT, "width", (byte *) &kgraphmapstdefaultbd.param, (byte *) &kgraphmapstdefaultbd.param.distmax, NULL }, { KGRAPHMAPSTMETHBD, STRATPARAMSTRAT, "bnd", (byte *) &kgraphmapstdefaultbd.param, (byte *) &kgraphmapstdefaultbd.param.stratbnd, (void *) &kgraphmapststratab }, { KGRAPHMAPSTMETHBD, STRATPARAMSTRAT, "org", (byte *) &kgraphmapstdefaultbd.param, (byte *) &kgraphmapstdefaultbd.param.stratorg, (void *) &kgraphmapststratab }, { KGRAPHMAPSTMETHDF, STRATPARAMINT, "pass", (byte *) &kgraphmapstdefaultdf.param, (byte *) &kgraphmapstdefaultdf.param.passnbr, NULL }, { KGRAPHMAPSTMETHDF, STRATPARAMDOUBLE, "dif", (byte *) &kgraphmapstdefaultdf.param, (byte *) &kgraphmapstdefaultdf.param.cdifval, NULL }, { KGRAPHMAPSTMETHDF, STRATPARAMDOUBLE, "rem", (byte *) &kgraphmapstdefaultdf.param, (byte *) &kgraphmapstdefaultdf.param.cremval, NULL }, { KGRAPHMAPSTMETHEX, STRATPARAMDOUBLE, "bal", (byte *) &kgraphmapstdefaultex.param, (byte *) &kgraphmapstdefaultex.param.kbalval, (void *) &kgraphmapststratab }, { KGRAPHMAPSTMETHFM, STRATPARAMINT, "move", (byte *) &kgraphmapstdefaultfm.param, (byte *) &kgraphmapstdefaultfm.param.movenbr, NULL }, { KGRAPHMAPSTMETHFM, STRATPARAMINT, "pass", (byte *) &kgraphmapstdefaultfm.param, (byte *) &kgraphmapstdefaultfm.param.passnbr, NULL }, { KGRAPHMAPSTMETHFM, STRATPARAMDOUBLE, "bal", (byte *) &kgraphmapstdefaultfm.param, (byte *) &kgraphmapstdefaultfm.param.deltval, NULL }, { KGRAPHMAPSTMETHML, STRATPARAMSTRAT, "asc", (byte *) &kgraphmapstdefaultml.param, (byte *) &kgraphmapstdefaultml.param.stratasc, (void *) &kgraphmapststratab }, { KGRAPHMAPSTMETHML, STRATPARAMSTRAT, "low", (byte *) &kgraphmapstdefaultml.param, (byte *) &kgraphmapstdefaultml.param.stratlow, (void *) &kgraphmapststratab }, { KGRAPHMAPSTMETHML, STRATPARAMINT, "vert", (byte *) &kgraphmapstdefaultml.param, (byte *) &kgraphmapstdefaultml.param.coarnbr, NULL }, { KGRAPHMAPSTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &kgraphmapstdefaultml.param, (byte *) &kgraphmapstdefaultml.param.coarval, NULL }, { KGRAPHMAPSTMETHML, STRATPARAMCASE, "type", (byte *) &kgraphmapstdefaultml.param, (byte *) &kgraphmapstdefaultml.param.typeval, (void *) "hscd" }, { KGRAPHMAPSTMETHRB, STRATPARAMCASE, "job", (byte *) &kgraphmapstdefaultrb.param, (byte *) &kgraphmapstdefaultrb.param.flagjobtie, (void *) "ut" }, { KGRAPHMAPSTMETHRB, STRATPARAMDOUBLE, "bal", (byte *) &kgraphmapstdefaultrb.param, (byte *) &kgraphmapstdefaultrb.param.kbalval, NULL }, { KGRAPHMAPSTMETHRB, STRATPARAMCASE, "map", (byte *) &kgraphmapstdefaultrb.param, (byte *) &kgraphmapstdefaultrb.param.flagmaptie, (void *) "ut" }, { KGRAPHMAPSTMETHRB, STRATPARAMCASE, "poli", (byte *) &kgraphmapstdefaultrb.param, (byte *) &kgraphmapstdefaultrb.param.polival, (void *) "rlsLS" }, { KGRAPHMAPSTMETHRB, STRATPARAMSTRAT, "sep", (byte *) &kgraphmapstdefaultrb.param, (byte *) &kgraphmapstdefaultrb.param.strat, (void *) &bgraphbipartststratab }, { KGRAPHMAPSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab kgraphmapstcondtab[] = { /* Graph condition parameter table */ { STRATNODECOND, STRATPARAMINT, "load", (byte *) &kgraphdummy, (byte *) &kgraphdummy.s.velosum, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &kgraphdummy, (byte *) &kgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &kgraphdummy, (byte *) &kgraphdummy.s.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &kgraphdummy, (byte *) &kgraphdummy.s.vertnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab kgraphmapststratab = { /* Strategy tables for graph mapping methods */ kgraphmapstmethtab, kgraphmapstparatab, kgraphmapstcondtab }; /****************************************/ /* */ /* This is the generic mapping routine. */ /* */ /****************************************/ /* This routine computes the given ** mapping according to the given ** strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int kgraphMapSt ( Kgraph * restrict const grafptr, /*+ Mapping graph +*/ const Strat * restrict const straptr) /*+ Mapping strategy +*/ { StratTest testdat; /* Result of condition evaluation */ KgraphStore savetab[2]; /* Results of the two strategies */ Gnum comploaddltasu[2]; /* Absolute sum of computation load delta */ Anum partnum; int o; int o0; int o1; #ifdef SCOTCH_DEBUG_KGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("kgraphMapSt: invalid type specification for parser variables"); return (1); } if ((sizeof (KgraphMapRbParam) > sizeof (StratNodeMethodData))) { errorPrint ("kgraphMapSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH2 */ #ifdef SCOTCH_DEBUG_KGRAPH1 if ((straptr->tablptr != &kgraphmapststratab) && (straptr != &stratdummy)) { errorPrint ("kgraphMapSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_KGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = kgraphMapSt (grafptr, straptr->data.concdat.stratab[0]); /* Apply first strategy */ if (o == 0) /* If it worked all right */ o |= kgraphMapSt (grafptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_KGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("kgraphMapSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = kgraphMapSt (grafptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = kgraphMapSt (grafptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((kgraphStoreInit (grafptr, &savetab[0])) != 0) || /* Allocate save areas */ ((kgraphStoreInit (grafptr, &savetab[1])) != 0)) { errorPrint ("kgraphMapSt: out of memory"); kgraphStoreExit (&savetab[0]); return (1); } kgraphStoreSave (grafptr, &savetab[1]); /* Save initial mapping */ o0 = kgraphMapSt (grafptr, straptr->data.seledat.stratab[0]); /* Apply first strategy */ kgraphStoreSave (grafptr, &savetab[0]); /* Save its result */ kgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial mapping */ o1 = kgraphMapSt (grafptr, straptr->data.seledat.stratab[1]); /* Apply second strategy */ if ((o0 | o1) != 0) { /* If at least one method failed */ if (o0 == 0) /* If first succeeded, take it */ goto take0; if (o1 != 0) { /* If none succeeded */ kgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial mapping */ o = 1; /* Indicate error */ } goto take1; /* If second succeeded, keep it; anyway, go freeing data structures */ } comploaddltasu[0] = 0; for (partnum = 0; partnum < savetab[0].domnnbr; partnum ++) { Gnum comploadadlt; comploadadlt = abs (savetab[0].comploaddlt[partnum]); if (comploadadlt > ((Gnum) ((double) savetab[0].comploadavg[partnum] * savetab[0].kbalval))) o0 = 1; comploaddltasu[0] += comploadadlt; } comploaddltasu[1] = 0; for (partnum = 0; partnum < grafptr->m.domnnbr; partnum ++) { Gnum comploadadlt; comploadadlt = abs (grafptr->comploaddlt[partnum]); if (comploadadlt > ((Gnum) ((double) grafptr->comploadavg[partnum] * grafptr->kbalval))) o1 = 1; comploaddltasu[1] += comploadadlt; } if (o0 > o1) /* If first mapping is imbalanced */ goto take1; /* Take the second one */ if (o0 < o1) /* If second mapping is imbalanced */ goto take0; /* Take the first one */ if (o0 == 0) { /* If both are valid */ if ( (savetab[0].commload > grafptr->commload) || /* Compare on cut */ ((savetab[0].commload == grafptr->commload) && (comploaddltasu[0] > comploaddltasu[1]))) goto take1; } else { /* If both are invalid */ if ( (comploaddltasu[0] > comploaddltasu[1]) || /* Compare on imbalance */ ((comploaddltasu[0] == comploaddltasu[1]) && (savetab[0].commload > grafptr->commload))) goto take1; } take0: kgraphStoreUpdt (grafptr, &savetab[0]); /* Restore first mapping */ take1: /* Keep second mapping by default */ kgraphStoreExit (&savetab[1]); /* Free both save areas */ kgraphStoreExit (&savetab[0]); break; #ifdef SCOTCH_DEBUG_KGRAPH1 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_KGRAPH1 */ default : #endif /* SCOTCH_DEBUG_KGRAPH1 */ return (((KgraphMapFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, (void *) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_KGRAPH1 default : errorPrint ("kgraphMapSt: invalid parameter (2)"); return (1); #endif /* SCOTCH_DEBUG_KGRAPH1 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_map_st.h000066400000000000000000000106071514310134000267110ustar00rootroot00000000000000/* Copyright 2004,2007,2010-2012,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_map_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the strategy and method **/ /** tables and the generic entry point for **/ /** the graph multipartitioning methods. **/ /** **/ /** DATES : # Version 3.2 : from : 15 oct 1996 **/ /** to : 29 sep 1997 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 09 dec 1998 **/ /** # Version 4.0 : from : 12 jan 2004 **/ /** to : 12 jan 2004 **/ /** # Version 5.1 : from : 13 jul 2010 **/ /** to : 13 jul 2010 **/ /** # Version 6.0 : from : 08 jun 2011 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum KgraphMapStMethodType_ { KGRAPHMAPSTMETHBD = 0, /*+ Band (strategy) +*/ KGRAPHMAPSTMETHCP, /*+ Old mapping copy +*/ KGRAPHMAPSTMETHDF, /*+ Diffusion +*/ KGRAPHMAPSTMETHEX, /*+ Exactifier +*/ KGRAPHMAPSTMETHFM, /*+ Fiduccia-Mattheyses +*/ KGRAPHMAPSTMETHML, /*+ Multi-level (strategy) +*/ KGRAPHMAPSTMETHRB, /*+ Dual Recursive Bipartitioning +*/ KGRAPHMAPSTMETHNBR /*+ Number of methods +*/ } KgraphMapStMethodType; /*+ Method function pointer type. +*/ typedef int (* KgraphMapFunc) (Kgraph * restrict const, const void * const); /* ** The external declarations. */ extern StratTab kgraphmapststratab; /* ** The function prototypes. */ int kgraphMapSt (Kgraph * restrict const, const Strat * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/kgraph_store.c000066400000000000000000000162031514310134000265530ustar00rootroot00000000000000/* Copyright 2011,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : kgraph_store.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the save data **/ /** structure handling routines for k-par- **/ /** tition graphs. **/ /** **/ /** DATES : # Version 6.0 : from : 16 aug 2011 **/ /** to : 16 aug 2011 **/ /** # Version 6.1 : from : 18 jul 2021 **/ /** to : 18 jul 2021 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" /**********************************/ /* */ /* Store graph handling routines. */ /* */ /**********************************/ /* This routine builds a save structure ** for the given active graph. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int kgraphStoreInit ( const Kgraph * const grafptr, KgraphStore * const storptr) { storptr->domnmax = (Gnum) grafptr->m.domnmax; /* Get maximum number of domains to save */ if (memAllocGroup ((void **) (void *) /* Allocate save structure */ &storptr->parttab, (size_t) (grafptr->s.vertnbr * sizeof (Anum)), &storptr->domntab, (size_t) (grafptr->m.domnmax * sizeof (ArchDom)), &storptr->comploadavg, (size_t) (grafptr->m.domnmax * sizeof (Gnum)), &storptr->comploaddlt, (size_t) (grafptr->m.domnmax * sizeof (Gnum)), &storptr->frontab, (size_t) (grafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { /* TRICK: frontab last as partially used */ errorPrint ("kgraphStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a save structure. ** It returns: ** - VOID : in all cases. */ void kgraphStoreExit ( KgraphStore * const storptr) { memFree (storptr->parttab); /* Free group leader */ #ifdef SCOTCH_DEBUG_KGRAPH2 storptr->parttab = NULL; storptr->domntab = NULL; storptr->frontab = NULL; storptr->comploadavg = NULL; storptr->comploaddlt = NULL; #endif /* SCOTCH_DEBUG_KGRAPH2 */ } /* This routine saves partition data from the ** given active graph to the given save structure. ** It returns: ** - VOID : in all cases. */ void kgraphStoreSave ( const Kgraph * const grafptr, KgraphStore * const storptr) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (grafptr->m.domnnbr > storptr->domnmax) { errorPrint ("kgraphStoreSave: cannot save state"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ storptr->domnnbr = grafptr->m.domnnbr; storptr->fronnbr = grafptr->fronnbr; storptr->commload = grafptr->commload; storptr->kbalval = grafptr->kbalval; if (grafptr->m.domnnbr > 0) { /* If valid mapping */ memCpy (storptr->parttab, grafptr->m.parttax + grafptr->s.baseval, grafptr->s.vertnbr * sizeof (Anum)); memCpy (storptr->domntab, grafptr->m.domntab, grafptr->m.domnnbr * sizeof (ArchDom)); memCpy (storptr->comploadavg, grafptr->comploadavg, grafptr->m.domnnbr * sizeof (Gnum)); memCpy (storptr->comploaddlt, grafptr->comploaddlt, grafptr->m.domnnbr * sizeof (Gnum)); memCpy (storptr->frontab, grafptr->frontab, grafptr->fronnbr * sizeof (Gnum)); } } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void kgraphStoreUpdt ( Kgraph * const grafptr, const KgraphStore * const storptr) { #ifdef SCOTCH_DEBUG_KGRAPH2 if (grafptr->m.domnmax < storptr->domnmax) { errorPrint ("kgraphStoreUpdt: cannot update state"); return; } #endif /* SCOTCH_DEBUG_KGRAPH2 */ grafptr->m.domnnbr = storptr->domnnbr; grafptr->fronnbr = storptr->fronnbr; grafptr->commload = storptr->commload; grafptr->kbalval = storptr->kbalval; if (grafptr->m.domnnbr > 0) { /* If valid mapping */ memCpy (grafptr->m.parttax + grafptr->s.baseval, storptr->parttab, grafptr->s.vertnbr * sizeof (Anum)); memCpy (grafptr->m.domntab, storptr->domntab, grafptr->m.domnnbr * sizeof (ArchDom)); memCpy (grafptr->comploadavg, storptr->comploadavg, grafptr->m.domnnbr * sizeof (Gnum)); memCpy (grafptr->comploaddlt, storptr->comploaddlt, grafptr->m.domnnbr * sizeof (Gnum)); memCpy (grafptr->frontab, storptr->frontab, grafptr->fronnbr * sizeof (Gnum)); #ifdef SCOTCH_DEBUG_KGRAPH2 if (kgraphCheck (grafptr) != 0) errorPrint ("kgraphStoreUpdt: inconsistent graph data"); #endif /* SCOTCH_DEBUG_KGRAPH2 */ } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/last_resort/000077500000000000000000000000001514310134000262565ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/last_resort/parser_lh.h000066400000000000000000000502211514310134000304060ustar00rootroot00000000000000#ifndef _SCOTCHyyHEADER_H #define _SCOTCHyyHEADER_H 1 #define _SCOTCHyyIN_HEADER 1 #line 5 "parser_lh.h" /* Copyright 2004,2007,2018-2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_ll.l **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module is the lexical parser **/ /** which processes strategy strings. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 23 aug 1996 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 05 jun 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 11 sep 2001 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 23 dec 2001 **/ /** # Version 5.1 : from : 09 jun 2009 **/ /** to : 24 jul 2011 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 07 jun 2025 **/ /** **/ /** NOTES : # In order for flex to read its input **/ /** with getc() instead of fread, we set **/ /** YY_ALWAYS_INTERACTIVE to 1. This may **/ /** not always work with future releases. **/ /** # Following common.h, we stop unistd.h **/ /** from being included on Windows-like **/ /** platforms by setting YY_NO_UNISTD_H. **/ /** **/ /************************************************************/ #define YY_DECL int yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc, yyscan_t yyscanner) #include "common.h" #if (defined COMMON_OS_WINDOWS || defined HAVE_NOT_UNISTD_H) #define YY_NO_UNISTD_H #endif /* (defined COMMON_OS_WINDOWS || defined HAVE_NOT_UNISTD_H) */ #line 78 "parser_lh.h" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define _SCOTCHyy_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer _SCOTCHyy_create_buffer #endif #ifdef yy_delete_buffer #define _SCOTCHyy_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer _SCOTCHyy_delete_buffer #endif #ifdef yy_scan_buffer #define _SCOTCHyy_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer _SCOTCHyy_scan_buffer #endif #ifdef yy_scan_string #define _SCOTCHyy_scan_string_ALREADY_DEFINED #else #define yy_scan_string _SCOTCHyy_scan_string #endif #ifdef yy_scan_bytes #define _SCOTCHyy_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes _SCOTCHyy_scan_bytes #endif #ifdef yy_init_buffer #define _SCOTCHyy_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer _SCOTCHyy_init_buffer #endif #ifdef yy_flush_buffer #define _SCOTCHyy_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer _SCOTCHyy_flush_buffer #endif #ifdef yy_load_buffer_state #define _SCOTCHyy_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state _SCOTCHyy_load_buffer_state #endif #ifdef yy_switch_to_buffer #define _SCOTCHyy_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer _SCOTCHyy_switch_to_buffer #endif #ifdef yypush_buffer_state #define _SCOTCHyypush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state _SCOTCHyypush_buffer_state #endif #ifdef yypop_buffer_state #define _SCOTCHyypop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state _SCOTCHyypop_buffer_state #endif #ifdef yyensure_buffer_stack #define _SCOTCHyyensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack _SCOTCHyyensure_buffer_stack #endif #ifdef yylex #define _SCOTCHyylex_ALREADY_DEFINED #else #define yylex _SCOTCHyylex #endif #ifdef yyrestart #define _SCOTCHyyrestart_ALREADY_DEFINED #else #define yyrestart _SCOTCHyyrestart #endif #ifdef yylex_init #define _SCOTCHyylex_init_ALREADY_DEFINED #else #define yylex_init _SCOTCHyylex_init #endif #ifdef yylex_init_extra #define _SCOTCHyylex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra _SCOTCHyylex_init_extra #endif #ifdef yylex_destroy #define _SCOTCHyylex_destroy_ALREADY_DEFINED #else #define yylex_destroy _SCOTCHyylex_destroy #endif #ifdef yyget_debug #define _SCOTCHyyget_debug_ALREADY_DEFINED #else #define yyget_debug _SCOTCHyyget_debug #endif #ifdef yyset_debug #define _SCOTCHyyset_debug_ALREADY_DEFINED #else #define yyset_debug _SCOTCHyyset_debug #endif #ifdef yyget_extra #define _SCOTCHyyget_extra_ALREADY_DEFINED #else #define yyget_extra _SCOTCHyyget_extra #endif #ifdef yyset_extra #define _SCOTCHyyset_extra_ALREADY_DEFINED #else #define yyset_extra _SCOTCHyyset_extra #endif #ifdef yyget_in #define _SCOTCHyyget_in_ALREADY_DEFINED #else #define yyget_in _SCOTCHyyget_in #endif #ifdef yyset_in #define _SCOTCHyyset_in_ALREADY_DEFINED #else #define yyset_in _SCOTCHyyset_in #endif #ifdef yyget_out #define _SCOTCHyyget_out_ALREADY_DEFINED #else #define yyget_out _SCOTCHyyget_out #endif #ifdef yyset_out #define _SCOTCHyyset_out_ALREADY_DEFINED #else #define yyset_out _SCOTCHyyset_out #endif #ifdef yyget_leng #define _SCOTCHyyget_leng_ALREADY_DEFINED #else #define yyget_leng _SCOTCHyyget_leng #endif #ifdef yyget_text #define _SCOTCHyyget_text_ALREADY_DEFINED #else #define yyget_text _SCOTCHyyget_text #endif #ifdef yyget_lineno #define _SCOTCHyyget_lineno_ALREADY_DEFINED #else #define yyget_lineno _SCOTCHyyget_lineno #endif #ifdef yyset_lineno #define _SCOTCHyyset_lineno_ALREADY_DEFINED #else #define yyset_lineno _SCOTCHyyset_lineno #endif #ifdef yyget_column #define _SCOTCHyyget_column_ALREADY_DEFINED #else #define yyget_column _SCOTCHyyget_column #endif #ifdef yyset_column #define _SCOTCHyyset_column_ALREADY_DEFINED #else #define yyset_column _SCOTCHyyset_column #endif #ifdef yywrap #define _SCOTCHyywrap_ALREADY_DEFINED #else #define yywrap _SCOTCHyywrap #endif #ifdef yyget_lval #define _SCOTCHyyget_lval_ALREADY_DEFINED #else #define yyget_lval _SCOTCHyyget_lval #endif #ifdef yyset_lval #define _SCOTCHyyset_lval_ALREADY_DEFINED #else #define yyset_lval _SCOTCHyyset_lval #endif #ifdef yyalloc #define _SCOTCHyyalloc_ALREADY_DEFINED #else #define yyalloc _SCOTCHyyalloc #endif #ifdef yyrealloc #define _SCOTCHyyrealloc_ALREADY_DEFINED #else #define yyrealloc _SCOTCHyyrealloc #endif #ifdef yyfree #define _SCOTCHyyfree_ALREADY_DEFINED #else #define yyfree _SCOTCHyyfree #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void* yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ void yyrestart ( FILE *input_file , yyscan_t yyscanner ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); void yypop_buffer_state ( yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); void *yyalloc ( yy_size_t , yyscan_t yyscanner ); void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); void yyfree ( void * , yyscan_t yyscanner ); /* Begin user sect3 */ #define _SCOTCHyywrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP #define yytext_ptr yytext_r #ifdef YY_HEADER_EXPORT_START_CONDITIONS #define INITIAL 0 #define lparam 1 #define lparamcase 2 #define lparamdouble 3 #define lparamint 4 #define lparamstring 5 #define ltest 6 #endif #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif int yylex_init (yyscan_t* scanner); int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( yyscan_t yyscanner ); int yyget_debug ( yyscan_t yyscanner ); void yyset_debug ( int debug_flag , yyscan_t yyscanner ); YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); FILE *yyget_in ( yyscan_t yyscanner ); void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); FILE *yyget_out ( yyscan_t yyscanner ); void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); int yyget_leng ( yyscan_t yyscanner ); char *yyget_text ( yyscan_t yyscanner ); int yyget_lineno ( yyscan_t yyscanner ); void yyset_lineno ( int _line_number , yyscan_t yyscanner ); int yyget_column ( yyscan_t yyscanner ); void yyset_column ( int _column_no , yyscan_t yyscanner ); YYSTYPE * yyget_lval ( yyscan_t yyscanner ); void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( yyscan_t yyscanner ); #else extern int yywrap ( yyscan_t yyscanner ); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * , yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner); #define YY_DECL int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner) #endif /* !YY_DECL */ /* yy_get_previous_state - get the state just before the EOB char was reached */ #undef YY_NEW_FILE #undef YY_FLUSH_BUFFER #undef yy_set_bol #undef yy_new_buffer #undef yy_set_interactive #undef YY_DO_BEFORE_ACTION #ifdef YY_DECL_IS_OURS #undef YY_DECL_IS_OURS #undef YY_DECL #endif #ifndef _SCOTCHyy_create_buffer_ALREADY_DEFINED #undef yy_create_buffer #endif #ifndef _SCOTCHyy_delete_buffer_ALREADY_DEFINED #undef yy_delete_buffer #endif #ifndef _SCOTCHyy_scan_buffer_ALREADY_DEFINED #undef yy_scan_buffer #endif #ifndef _SCOTCHyy_scan_string_ALREADY_DEFINED #undef yy_scan_string #endif #ifndef _SCOTCHyy_scan_bytes_ALREADY_DEFINED #undef yy_scan_bytes #endif #ifndef _SCOTCHyy_init_buffer_ALREADY_DEFINED #undef yy_init_buffer #endif #ifndef _SCOTCHyy_flush_buffer_ALREADY_DEFINED #undef yy_flush_buffer #endif #ifndef _SCOTCHyy_load_buffer_state_ALREADY_DEFINED #undef yy_load_buffer_state #endif #ifndef _SCOTCHyy_switch_to_buffer_ALREADY_DEFINED #undef yy_switch_to_buffer #endif #ifndef _SCOTCHyypush_buffer_state_ALREADY_DEFINED #undef yypush_buffer_state #endif #ifndef _SCOTCHyypop_buffer_state_ALREADY_DEFINED #undef yypop_buffer_state #endif #ifndef _SCOTCHyyensure_buffer_stack_ALREADY_DEFINED #undef yyensure_buffer_stack #endif #ifndef _SCOTCHyylex_ALREADY_DEFINED #undef yylex #endif #ifndef _SCOTCHyyrestart_ALREADY_DEFINED #undef yyrestart #endif #ifndef _SCOTCHyylex_init_ALREADY_DEFINED #undef yylex_init #endif #ifndef _SCOTCHyylex_init_extra_ALREADY_DEFINED #undef yylex_init_extra #endif #ifndef _SCOTCHyylex_destroy_ALREADY_DEFINED #undef yylex_destroy #endif #ifndef _SCOTCHyyget_debug_ALREADY_DEFINED #undef yyget_debug #endif #ifndef _SCOTCHyyset_debug_ALREADY_DEFINED #undef yyset_debug #endif #ifndef _SCOTCHyyget_extra_ALREADY_DEFINED #undef yyget_extra #endif #ifndef _SCOTCHyyset_extra_ALREADY_DEFINED #undef yyset_extra #endif #ifndef _SCOTCHyyget_in_ALREADY_DEFINED #undef yyget_in #endif #ifndef _SCOTCHyyset_in_ALREADY_DEFINED #undef yyset_in #endif #ifndef _SCOTCHyyget_out_ALREADY_DEFINED #undef yyget_out #endif #ifndef _SCOTCHyyset_out_ALREADY_DEFINED #undef yyset_out #endif #ifndef _SCOTCHyyget_leng_ALREADY_DEFINED #undef yyget_leng #endif #ifndef _SCOTCHyyget_text_ALREADY_DEFINED #undef yyget_text #endif #ifndef _SCOTCHyyget_lineno_ALREADY_DEFINED #undef yyget_lineno #endif #ifndef _SCOTCHyyset_lineno_ALREADY_DEFINED #undef yyset_lineno #endif #ifndef _SCOTCHyyget_column_ALREADY_DEFINED #undef yyget_column #endif #ifndef _SCOTCHyyset_column_ALREADY_DEFINED #undef yyset_column #endif #ifndef _SCOTCHyywrap_ALREADY_DEFINED #undef yywrap #endif #ifndef _SCOTCHyyget_lval_ALREADY_DEFINED #undef yyget_lval #endif #ifndef _SCOTCHyyset_lval_ALREADY_DEFINED #undef yyset_lval #endif #ifndef _SCOTCHyyget_lloc_ALREADY_DEFINED #undef yyget_lloc #endif #ifndef _SCOTCHyyset_lloc_ALREADY_DEFINED #undef yyset_lloc #endif #ifndef _SCOTCHyyalloc_ALREADY_DEFINED #undef yyalloc #endif #ifndef _SCOTCHyyrealloc_ALREADY_DEFINED #undef yyrealloc #endif #ifndef _SCOTCHyyfree_ALREADY_DEFINED #undef yyfree #endif #ifndef _SCOTCHyytext_ALREADY_DEFINED #undef yytext #endif #ifndef _SCOTCHyyleng_ALREADY_DEFINED #undef yyleng #endif #ifndef _SCOTCHyyin_ALREADY_DEFINED #undef yyin #endif #ifndef _SCOTCHyyout_ALREADY_DEFINED #undef yyout #endif #ifndef _SCOTCHyy_flex_debug_ALREADY_DEFINED #undef yy_flex_debug #endif #ifndef _SCOTCHyylineno_ALREADY_DEFINED #undef yylineno #endif #ifndef _SCOTCHyytables_fload_ALREADY_DEFINED #undef yytables_fload #endif #ifndef _SCOTCHyytables_destroy_ALREADY_DEFINED #undef yytables_destroy #endif #ifndef _SCOTCHyyTABLES_NAME_ALREADY_DEFINED #undef yyTABLES_NAME #endif #line 169 "parser_ll.l" #line 795 "parser_lh.h" #undef _SCOTCHyyIN_HEADER #endif /* _SCOTCHyyHEADER_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/last_resort/parser_ll.c000066400000000000000000002054401514310134000304120ustar00rootroot00000000000000#line 1 "parser_ll.c" /* Copyright 2004,2007,2018-2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_ll.l **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module is the lexical parser **/ /** which processes strategy strings. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 23 aug 1996 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 05 jun 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 11 sep 2001 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 23 dec 2001 **/ /** # Version 5.1 : from : 09 jun 2009 **/ /** to : 24 jul 2011 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 07 jun 2025 **/ /** **/ /** NOTES : # In order for flex to read its input **/ /** with getc() instead of fread, we set **/ /** YY_ALWAYS_INTERACTIVE to 1. This may **/ /** not always work with future releases. **/ /** # Following common.h, we stop unistd.h **/ /** from being included on Windows-like **/ /** platforms by setting YY_NO_UNISTD_H. **/ /** **/ /************************************************************/ #define YY_DECL int yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc, yyscan_t yyscanner) #include "common.h" #if (defined COMMON_OS_WINDOWS || defined HAVE_NOT_UNISTD_H) #define YY_NO_UNISTD_H #endif /* (defined COMMON_OS_WINDOWS || defined HAVE_NOT_UNISTD_H) */ #line 74 "parser_ll.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define _SCOTCHyy_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer _SCOTCHyy_create_buffer #endif #ifdef yy_delete_buffer #define _SCOTCHyy_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer _SCOTCHyy_delete_buffer #endif #ifdef yy_scan_buffer #define _SCOTCHyy_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer _SCOTCHyy_scan_buffer #endif #ifdef yy_scan_string #define _SCOTCHyy_scan_string_ALREADY_DEFINED #else #define yy_scan_string _SCOTCHyy_scan_string #endif #ifdef yy_scan_bytes #define _SCOTCHyy_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes _SCOTCHyy_scan_bytes #endif #ifdef yy_init_buffer #define _SCOTCHyy_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer _SCOTCHyy_init_buffer #endif #ifdef yy_flush_buffer #define _SCOTCHyy_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer _SCOTCHyy_flush_buffer #endif #ifdef yy_load_buffer_state #define _SCOTCHyy_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state _SCOTCHyy_load_buffer_state #endif #ifdef yy_switch_to_buffer #define _SCOTCHyy_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer _SCOTCHyy_switch_to_buffer #endif #ifdef yypush_buffer_state #define _SCOTCHyypush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state _SCOTCHyypush_buffer_state #endif #ifdef yypop_buffer_state #define _SCOTCHyypop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state _SCOTCHyypop_buffer_state #endif #ifdef yyensure_buffer_stack #define _SCOTCHyyensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack _SCOTCHyyensure_buffer_stack #endif #ifdef yylex #define _SCOTCHyylex_ALREADY_DEFINED #else #define yylex _SCOTCHyylex #endif #ifdef yyrestart #define _SCOTCHyyrestart_ALREADY_DEFINED #else #define yyrestart _SCOTCHyyrestart #endif #ifdef yylex_init #define _SCOTCHyylex_init_ALREADY_DEFINED #else #define yylex_init _SCOTCHyylex_init #endif #ifdef yylex_init_extra #define _SCOTCHyylex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra _SCOTCHyylex_init_extra #endif #ifdef yylex_destroy #define _SCOTCHyylex_destroy_ALREADY_DEFINED #else #define yylex_destroy _SCOTCHyylex_destroy #endif #ifdef yyget_debug #define _SCOTCHyyget_debug_ALREADY_DEFINED #else #define yyget_debug _SCOTCHyyget_debug #endif #ifdef yyset_debug #define _SCOTCHyyset_debug_ALREADY_DEFINED #else #define yyset_debug _SCOTCHyyset_debug #endif #ifdef yyget_extra #define _SCOTCHyyget_extra_ALREADY_DEFINED #else #define yyget_extra _SCOTCHyyget_extra #endif #ifdef yyset_extra #define _SCOTCHyyset_extra_ALREADY_DEFINED #else #define yyset_extra _SCOTCHyyset_extra #endif #ifdef yyget_in #define _SCOTCHyyget_in_ALREADY_DEFINED #else #define yyget_in _SCOTCHyyget_in #endif #ifdef yyset_in #define _SCOTCHyyset_in_ALREADY_DEFINED #else #define yyset_in _SCOTCHyyset_in #endif #ifdef yyget_out #define _SCOTCHyyget_out_ALREADY_DEFINED #else #define yyget_out _SCOTCHyyget_out #endif #ifdef yyset_out #define _SCOTCHyyset_out_ALREADY_DEFINED #else #define yyset_out _SCOTCHyyset_out #endif #ifdef yyget_leng #define _SCOTCHyyget_leng_ALREADY_DEFINED #else #define yyget_leng _SCOTCHyyget_leng #endif #ifdef yyget_text #define _SCOTCHyyget_text_ALREADY_DEFINED #else #define yyget_text _SCOTCHyyget_text #endif #ifdef yyget_lineno #define _SCOTCHyyget_lineno_ALREADY_DEFINED #else #define yyget_lineno _SCOTCHyyget_lineno #endif #ifdef yyset_lineno #define _SCOTCHyyset_lineno_ALREADY_DEFINED #else #define yyset_lineno _SCOTCHyyset_lineno #endif #ifdef yyget_column #define _SCOTCHyyget_column_ALREADY_DEFINED #else #define yyget_column _SCOTCHyyget_column #endif #ifdef yyset_column #define _SCOTCHyyset_column_ALREADY_DEFINED #else #define yyset_column _SCOTCHyyset_column #endif #ifdef yywrap #define _SCOTCHyywrap_ALREADY_DEFINED #else #define yywrap _SCOTCHyywrap #endif #ifdef yyget_lval #define _SCOTCHyyget_lval_ALREADY_DEFINED #else #define yyget_lval _SCOTCHyyget_lval #endif #ifdef yyset_lval #define _SCOTCHyyset_lval_ALREADY_DEFINED #else #define yyset_lval _SCOTCHyyset_lval #endif #ifdef yyalloc #define _SCOTCHyyalloc_ALREADY_DEFINED #else #define yyalloc _SCOTCHyyalloc #endif #ifdef yyrealloc #define _SCOTCHyyrealloc_ALREADY_DEFINED #else #define yyrealloc _SCOTCHyyrealloc #endif #ifdef yyfree #define _SCOTCHyyfree_ALREADY_DEFINED #else #define yyfree _SCOTCHyyfree #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void* yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin , yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void yyrestart ( FILE *input_file , yyscan_t yyscanner ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); void yypop_buffer_state ( yyscan_t yyscanner ); static void yyensure_buffer_stack ( yyscan_t yyscanner ); static void yy_load_buffer_state ( yyscan_t yyscanner ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); void *yyalloc ( yy_size_t , yyscan_t yyscanner ); void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); void yyfree ( void * , yyscan_t yyscanner ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define _SCOTCHyywrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP typedef flex_uint8_t YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state ( yyscan_t yyscanner ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner); static int yy_get_next_buffer ( yyscan_t yyscanner ); static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 13 #define YY_END_OF_BUFFER 14 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[51] = { 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 14, 12, 11, 11, 1, 2, 3, 4, 5, 12, 8, 10, 11, 2, 0, 4, 0, 0, 5, 0, 0, 7, 0, 8, 0, 10, 4, 0, 4, 6, 0, 6, 9, 0, 9, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 5, 6, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[10] = { 0, 1, 2, 2, 1, 1, 1, 3, 3, 3 } ; static const flex_int16_t yy_base[55] = { 0, 0, 0, 3, 0, 6, 0, 9, 0, 57, 56, 15, 0, 16, 0, 62, 65, 0, 0, 65, 0, 65, 20, 24, 57, 28, 0, 0, 0, 53, 0, 33, 52, 0, 36, 50, 65, 44, 0, 39, 0, 40, 41, 38, 43, 35, 32, 46, 29, 25, 65, 26, 18, 55, 17 } ; static const flex_int16_t yy_def[55] = { 0, 50, 1, 1, 3, 3, 5, 3, 7, 7, 7, 7, 11, 7, 13, 50, 50, 51, 51, 50, 52, 50, 50, 50, 53, 50, 54, 51, 52, 50, 22, 50, 50, 23, 50, 53, 50, 50, 25, 50, 54, 50, 50, 50, 50, 50, 50, 50, 50, 50, 0, 50, 50, 50, 50 } ; static const flex_int16_t yy_nxt[75] = { 0, 16, 17, 18, 16, 16, 16, 19, 19, 19, 16, 20, 20, 21, 21, 21, 22, 16, 16, 24, 40, 28, 16, 25, 26, 26, 29, 30, 27, 31, 32, 33, 49, 34, 37, 38, 49, 39, 42, 46, 43, 45, 46, 46, 48, 43, 49, 41, 43, 31, 44, 47, 34, 47, 36, 39, 35, 35, 35, 44, 41, 36, 50, 23, 23, 15, 50, 50, 50, 50, 50, 50, 50, 50, 50 } ; static const flex_int16_t yy_chk[75] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 5, 5, 5, 7, 7, 7, 11, 54, 52, 11, 13, 13, 13, 22, 22, 51, 22, 23, 23, 49, 23, 25, 25, 48, 25, 31, 46, 31, 34, 45, 34, 39, 43, 39, 41, 42, 41, 44, 37, 44, 47, 35, 47, 53, 53, 53, 32, 29, 24, 15, 10, 9, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 } ; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "parser_ll.l" #line 76 "parser_ll.l" /* ** The defines and includes. */ #include "module.h" #include "common.h" #undef INTEGER /* In case someone defined them */ #undef DOUBLE #include "parser.h" #include "parser_yy.h" #include "parser_ly.h" /*+ Definitions produced by yacc +*/ #define YY_USER_ACTION parserLocationUpdate (yylloc, yytext); #line 759 "parser_ll.c" #define YY_NO_INPUT 1 #line 762 "parser_ll.c" #define INITIAL 0 #define lparam 1 #define lparamcase 2 #define lparamdouble 3 #define lparamint 4 #define lparamstring 5 #define ltest 6 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char* yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; YYSTYPE * yylval_r; }; /* end struct yyguts_t */ static int yy_init_globals ( yyscan_t yyscanner ); /* This must go here because YYSTYPE and YYLTYPE are included * from bison output in section 1.*/ # define yylval yyg->yylval_r int yylex_init (yyscan_t* scanner); int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( yyscan_t yyscanner ); int yyget_debug ( yyscan_t yyscanner ); void yyset_debug ( int debug_flag , yyscan_t yyscanner ); YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); FILE *yyget_in ( yyscan_t yyscanner ); void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); FILE *yyget_out ( yyscan_t yyscanner ); void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); int yyget_leng ( yyscan_t yyscanner ); char *yyget_text ( yyscan_t yyscanner ); int yyget_lineno ( yyscan_t yyscanner ); void yyset_lineno ( int _line_number , yyscan_t yyscanner ); int yyget_column ( yyscan_t yyscanner ); void yyset_column ( int _column_no , yyscan_t yyscanner ); YYSTYPE * yyget_lval ( yyscan_t yyscanner ); void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( yyscan_t yyscanner ); #else extern int yywrap ( yyscan_t yyscanner ); #endif #endif #ifndef YY_NO_UNPUT #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * , yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( yyscan_t yyscanner ); #else static int input ( yyscan_t yyscanner ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner); #define YY_DECL int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yylval = yylval_param; if ( !yyg->yy_init ) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yyg->yy_start ) yyg->yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } yy_load_buffer_state( yyscanner ); } { #line 111 "parser_ll.l" #line 1042 "parser_ll.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 51 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 65 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP #line 112 "parser_ll.l" { strncpy (PARSERYYLVAL (STRING), yytext, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (METHODNAME); } YY_BREAK case 2: YY_RULE_SETUP #line 118 "parser_ll.l" { strncpy (PARSERYYLVAL (STRING), yytext, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (PARAMNAME); } YY_BREAK case 3: YY_RULE_SETUP #line 124 "parser_ll.l" { PARSERYYLVAL (CASEVAL) = yytext[0]; return (VALCASE); } YY_BREAK case 4: YY_RULE_SETUP #line 129 "parser_ll.l" { PARSERYYLVAL (DOUBLE) = atof (yytext); return (VALDOUBLE); } YY_BREAK case 5: YY_RULE_SETUP #line 134 "parser_ll.l" { PARSERYYLVAL (INTEGER) = (INT) atol (yytext); return (VALINT); } YY_BREAK case 6: YY_RULE_SETUP #line 138 "parser_ll.l" { PARSERYYLVAL (INTEGER) = (INT) atof (yytext); /* FLOAT is put after so that INTEGER can be matched */ return (VALINT); } YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP #line 143 "parser_ll.l" { yytext[yyleng - 1] = '\0'; /* Remove the heading and trailing \" */ strncpy (PARSERYYLVAL (STRING), yytext + 1, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (VALSTRING); } YY_BREAK case 8: YY_RULE_SETUP #line 150 "parser_ll.l" { PARSERYYLVAL (INTEGER) = (INT) atol (yytext); return (VALINT); } YY_BREAK case 9: YY_RULE_SETUP #line 154 "parser_ll.l" { PARSERYYLVAL (DOUBLE) = atof (yytext); return (VALDOUBLE); } YY_BREAK case 10: YY_RULE_SETUP #line 158 "parser_ll.l" { strncpy (PARSERYYLVAL (STRING), yytext, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (PARAMNAME); } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP #line 164 "parser_ll.l" { parserLocationUpdate (yylloc, yytext); /* Update position without returning */ } YY_BREAK case 12: YY_RULE_SETUP #line 167 "parser_ll.l" return (yytext[0]); YY_BREAK case 13: YY_RULE_SETUP #line 169 "parser_ll.l" ECHO; YY_BREAK #line 1203 "parser_ll.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(lparam): case YY_STATE_EOF(lparamcase): case YY_STATE_EOF(lparamdouble): case YY_STATE_EOF(lparamint): case YY_STATE_EOF(lparamstring): case YY_STATE_EOF(ltest): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( yyscanner ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer( yyscanner ) ) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if ( yywrap( yyscanner ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( yyscanner ); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; yy_current_state = yy_get_previous_state( yyscanner ); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = yyg->yytext_ptr; int number_to_move, i; int ret_val; if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if ( yyg->yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin , yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { yy_state_type yy_current_state; char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_current_state = yyg->yy_start; for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 51 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) { int yy_is_jam; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ char *yy_cp = yyg->yy_c_buf_p; YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 51 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 50); (void)yyg; return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin , yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( yyscanner ) ) return 0; if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(yyscanner); #else return input(yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner); yy_load_buffer_state( yyscanner ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (yyscanner); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( yyscanner ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void yy_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file , yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @param yyscanner The scanner object. */ void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf , yyscanner ); yyfree( (void *) b , yyscanner ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_flush_buffer( b , yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( yyscanner ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (new_buffer == NULL) return; yyensure_buffer_stack(yyscanner); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void yypop_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (yyscan_t yyscanner) { yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b , yyscanner ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner) { return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n , yyscanner ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n , yyscanner); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int yyget_lineno (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (! YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int yyget_column (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (! YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE *yyget_in (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE *yyget_out (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char *yyget_text (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyextra = user_defined ; } /** Set the current line number. * @param _line_number line number * @param yyscanner The scanner object. */ void yyset_lineno (int _line_number , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) YY_FATAL_ERROR( "yyset_lineno called with no buffer" ); yylineno = _line_number; } /** Set the current column. * @param _column_no column number * @param yyscanner The scanner object. */ void yyset_column (int _column_no , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) YY_FATAL_ERROR( "yyset_column called with no buffer" ); yycolumn = _column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * @param yyscanner The scanner object. * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyin = _in_str ; } void yyset_out (FILE * _out_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyout = _out_str ; } int yyget_debug (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yy_flex_debug; } void yyset_debug (int _bdebug , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_flex_debug = _bdebug ; } /* Accessor methods for yylval and yylloc */ YYSTYPE * yyget_lval (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yylval; } void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yylval = yylval_param; } /* User-visible API */ /* yylex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int yylex_init(yyscan_t* ptr_yy_globals) { if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); return yy_init_globals ( *ptr_yy_globals ); } /* yylex_init_extra has the same functionality as yylex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to yyalloc in * the yyextra field. */ int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals ) { struct yyguts_t dummy_yyguts; yyset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); yyset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals ( *ptr_yy_globals ); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = NULL; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = NULL; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(yyscanner); } /* Destroy the stack itself. */ yyfree(yyg->yy_buffer_stack , yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ yyfree( yyg->yy_start_stack , yyscanner ); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( yyscanner); /* Destroy the main struct (reentrant only). */ yyfree ( yyscanner , yyscanner ); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s , yyscan_t yyscanner) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 169 "parser_ll.l" #include "parser_ll.h" /*******************************************/ /* */ /* These routines handle data input to the */ /* lexical analyzer. */ /* */ /*******************************************/ /* This routine selects the sub-parser ** to parse the input. ** It returns: ** - VOID : in all cases. */ void stratParserLexBegin ( yyscan_t yyscanner, unsigned int type) { struct yyguts_t * yyg = (struct yyguts_t *) yyscanner; /* Awful hack to comply with the syntax of BEGIN */ switch (type) { case VALCASE : BEGIN lparamcase; break; case VALDOUBLE : BEGIN lparamdouble; break; case VALINT : BEGIN lparamint; break; case VALSTRING : BEGIN lparamstring; break; case VALPARAM : BEGIN lparam; break; case VALSTRAT : BEGIN INITIAL; break; case VALTEST : BEGIN ltest; break; } } /* These routines are hooks for internal lexer ** routines which are called by the parser and ** cannot be properly accessed when Scotch suffixes ** are used. */ void stratParserLexBufDelete ( YY_BUFFER_STATE b, yyscan_t yyscanner) { yy_delete_buffer (b, yyscanner); } void stratParserLexBufSwitch ( YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { yy_switch_to_buffer (new_buffer, yyscanner); } int stratParserLexDestroy ( yyscan_t yyscanner) { return (yylex_destroy (yyscanner)); } int stratParserLexInit ( yyscan_t * ptr_yy_globals) { return (yylex_init (ptr_yy_globals)); } YY_BUFFER_STATE stratParserLexScanString ( const char * yystr, yyscan_t yyscanner) { return (yy_scan_string (yystr, yyscanner)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/last_resort/parser_ly.h000066400000000000000000000101111514310134000304210ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 3 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, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ #ifndef YY__SCOTCHYY_PARSER_LY_H_INCLUDED # define YY__SCOTCHYY_PARSER_LY_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int _SCOTCHyydebug; #endif /* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { YYEMPTY = -2, YYEOF = 0, /* "end of file" */ YYerror = 256, /* error */ YYUNDEF = 257, /* "invalid token" */ METHODNAME = 258, /* METHODNAME */ PARAMNAME = 259, /* PARAMNAME */ VALCASE = 260, /* VALCASE */ VALDOUBLE = 261, /* VALDOUBLE */ VALINT = 262, /* VALINT */ VALSTRING = 263, /* VALSTRING */ VALSTRAT = 264, /* VALSTRAT */ VALPARAM = 265, /* VALPARAM */ VALTEST = 266 /* VALTEST */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 107 "parser_yy.y" char CASEVAL; /* Case value */ StratTest * TEST; /* Test type */ StratTestType TESTOP; /* Relational type */ double DOUBLE; /* Double-precision */ INT INTEGER; /* Integer */ char STRING[PARSERSTRINGLEN]; /* Character string */ struct { const StratTab * tabl; /* Current tables */ Strat * strat; /* Current method */ const StratParamTab * param; /* Current parameter */ } SAVE; /* Parameter type */ Strat * STRAT; /* Strategy tree */ #line 90 "parser_ly.h" }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif /* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE YYLTYPE; struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; }; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif int _SCOTCHyyparse (void * scanptr, ParserEnv * penvptr); #endif /* !YY__SCOTCHYY_PARSER_LY_H_INCLUDED */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/last_resort/parser_yy.c000066400000000000000000002540161514310134000304470ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 3 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, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ #define YYBISON 30802 /* Bison version string. */ #define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 2 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Substitute the variable and function names. */ #define yyparse _SCOTCHyyparse #define yylex _SCOTCHyylex #define yyerror _SCOTCHyyerror #define yydebug _SCOTCHyydebug #define yynerrs _SCOTCHyynerrs /* First part of user prologue. */ #line 1 "parser_yy.y" /* Copyright 2004,2007,2008,2011,2014,2018,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_yy.y **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the syntactic parser **/ /** which processes strategy strings. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 13 jun 1996 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 27 feb 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 11 jun 2004 **/ /** # Version 5.1 : from : 30 oct 2007 **/ /** to : 24 jul 2011 **/ /** # Version 6.0 : from : 30 sep 2014 **/ /** to : 27 apr 2018 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PARSER_YY #include "module.h" #include "common.h" #include "parser.h" #include "parser_yy.h" #include "parser_ly.h" #include "parser_lh.h" #include "parser_ll.h" #ifdef SCOTCH_DEBUG_PARSER3 #define YYDEBUG 1 #endif /* SCOTCH_DEBUG_PARSER3 */ /* ** The static and global definitions. ** See also at the end of this file. */ /*+ Method token conversion array. +*/ extern unsigned int parsermethtokentab[]; /* Pre-definition */ /* ** The function prototypes. */ YY_DECL; /* Definition of yylex(); Flex and Bison interaction is crap */ #line 168 "parser_yy.c" # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif #include "parser_ly.h" /* Symbol kind. */ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ YYSYMBOL_YYerror = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_METHODNAME = 3, /* METHODNAME */ YYSYMBOL_PARAMNAME = 4, /* PARAMNAME */ YYSYMBOL_VALCASE = 5, /* VALCASE */ YYSYMBOL_VALDOUBLE = 6, /* VALDOUBLE */ YYSYMBOL_VALINT = 7, /* VALINT */ YYSYMBOL_VALSTRING = 8, /* VALSTRING */ YYSYMBOL_VALSTRAT = 9, /* VALSTRAT */ YYSYMBOL_VALPARAM = 10, /* VALPARAM */ YYSYMBOL_VALTEST = 11, /* VALTEST */ YYSYMBOL_12_ = 12, /* '|' */ YYSYMBOL_13_ = 13, /* '/' */ YYSYMBOL_14_ = 14, /* '?' */ YYSYMBOL_15_ = 15, /* ';' */ YYSYMBOL_16_ = 16, /* ':' */ YYSYMBOL_17_ = 17, /* '(' */ YYSYMBOL_18_ = 18, /* ')' */ YYSYMBOL_19_ = 19, /* '{' */ YYSYMBOL_20_ = 20, /* '}' */ YYSYMBOL_21_ = 21, /* ',' */ YYSYMBOL_22_ = 22, /* '=' */ YYSYMBOL_23_ = 23, /* '&' */ YYSYMBOL_24_ = 24, /* '!' */ YYSYMBOL_25_ = 25, /* '<' */ YYSYMBOL_26_ = 26, /* '>' */ YYSYMBOL_27_ = 27, /* '+' */ YYSYMBOL_28_ = 28, /* '-' */ YYSYMBOL_29_ = 29, /* '*' */ YYSYMBOL_30_ = 30, /* '%' */ YYSYMBOL_YYACCEPT = 31, /* $accept */ YYSYMBOL_STRAT = 32, /* STRAT */ YYSYMBOL_STRATSELECT = 33, /* STRATSELECT */ YYSYMBOL_STRATEMPTY = 34, /* STRATEMPTY */ YYSYMBOL_STRATCONCAT = 35, /* STRATCONCAT */ YYSYMBOL_STRATTEST = 36, /* STRATTEST */ YYSYMBOL_37_1 = 37, /* $@1 */ YYSYMBOL_38_2 = 38, /* $@2 */ YYSYMBOL_STRATTESTELSE = 39, /* STRATTESTELSE */ YYSYMBOL_STRATGROUP = 40, /* STRATGROUP */ YYSYMBOL_STRATMETHOD = 41, /* STRATMETHOD */ YYSYMBOL_42_3 = 42, /* $@3 */ YYSYMBOL_METHODPARAM = 43, /* METHODPARAM */ YYSYMBOL_44_4 = 44, /* $@4 */ YYSYMBOL_45_5 = 45, /* $@5 */ YYSYMBOL_PARAMLIST = 46, /* PARAMLIST */ YYSYMBOL_PARAMPARAM = 47, /* PARAMPARAM */ YYSYMBOL_48_6 = 48, /* @6 */ YYSYMBOL_PARAMVAL = 49, /* PARAMVAL */ YYSYMBOL_50_7 = 50, /* @7 */ YYSYMBOL_TEST = 51, /* TEST */ YYSYMBOL_TESTOR = 52, /* TESTOR */ YYSYMBOL_TESTAND = 53, /* TESTAND */ YYSYMBOL_TESTNOT = 54, /* TESTNOT */ YYSYMBOL_TESTREL = 55, /* TESTREL */ YYSYMBOL_TESTRELOP = 56, /* TESTRELOP */ YYSYMBOL_TESTEXPR1 = 57, /* TESTEXPR1 */ YYSYMBOL_TESTEXPR1OP = 58, /* TESTEXPR1OP */ YYSYMBOL_TESTEXPR2 = 59, /* TESTEXPR2 */ YYSYMBOL_TESTEXPR2OP = 60, /* TESTEXPR2OP */ YYSYMBOL_TESTEXPR3 = 61, /* TESTEXPR3 */ YYSYMBOL_TESTEXPR3OP = 62, /* TESTEXPR3OP */ YYSYMBOL_TESTEXPR4 = 63, /* TESTEXPR4 */ YYSYMBOL_TESTVAL = 64, /* TESTVAL */ YYSYMBOL_TESTVAR = 65, /* TESTVAR */ YYSYMBOL_VALSDOUBLE = 66, /* VALSDOUBLE */ YYSYMBOL_VALSINT = 67 /* VALSINT */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure and (if available) are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif /* Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants. This workaround can likely be removed in 2023, as HPE has promised support for HP-UX 11.23 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of . */ #ifdef __hpux # undef UINT_LEAST8_MAX # undef UINT_LEAST16_MAX # define UINT_LEAST8_MAX 255 # define UINT_LEAST16_MAX 65535 #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_int8 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YY_USE(E) ((void) (E)) #else # define YY_USE(E) /* empty */ #endif /* Suppress an incorrect diagnostic about yylval being uninitialized. */ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ # if __GNUC__ * 100 + __GNUC_MINOR__ < 407 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") # else # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 13 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 93 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 31 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 37 /* YYNRULES -- Number of rules. */ #define YYNRULES 65 /* YYNSTATES -- Number of states. */ #define YYNSTATES 93 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 266 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 24, 2, 2, 2, 30, 23, 2, 17, 18, 29, 27, 21, 28, 2, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 15, 25, 22, 26, 14, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 12, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 147, 147, 153, 171, 174, 176, 191, 209, 213, 217, 213, 241, 244, 249, 254, 258, 262, 261, 325, 329, 325, 333, 336, 337, 341, 340, 380, 414, 428, 442, 458, 458, 481, 490, 493, 511, 514, 532, 535, 551, 555, 558, 577, 581, 585, 591, 607, 610, 614, 620, 636, 639, 645, 661, 664, 670, 674, 675, 678, 693, 710, 751, 755, 758, 762 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) #if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "\"invalid token\"", "METHODNAME", "PARAMNAME", "VALCASE", "VALDOUBLE", "VALINT", "VALSTRING", "VALSTRAT", "VALPARAM", "VALTEST", "'|'", "'/'", "'?'", "';'", "':'", "'('", "')'", "'{'", "'}'", "','", "'='", "'&'", "'!'", "'<'", "'>'", "'+'", "'-'", "'*'", "'%'", "$accept", "STRAT", "STRATSELECT", "STRATEMPTY", "STRATCONCAT", "STRATTEST", "$@1", "$@2", "STRATTESTELSE", "STRATGROUP", "STRATMETHOD", "$@3", "METHODPARAM", "$@4", "$@5", "PARAMLIST", "PARAMPARAM", "@6", "PARAMVAL", "@7", "TEST", "TESTOR", "TESTAND", "TESTNOT", "TESTREL", "TESTRELOP", "TESTEXPR1", "TESTEXPR1OP", "TESTEXPR2", "TESTEXPR2OP", "TESTEXPR3", "TESTEXPR3OP", "TESTEXPR4", "TESTVAL", "TESTVAR", "VALSDOUBLE", "VALSINT", YY_NULLPTR }; static const char * yysymbol_name (yysymbol_kind_t yysymbol) { return yytname[yysymbol]; } #endif #define YYPACT_NINF (-33) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-32) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int8 yypact[] = { 5, -33, 5, 10, 7, -33, 5, -33, 4, -33, -33, 19, 40, -33, 5, -33, 27, -33, 20, -33, -33, -33, -33, -33, 27, 27, -33, -33, -33, 28, 3, -33, -33, 47, -1, 33, 13, -33, -33, -33, -33, -33, 44, 41, 39, -33, 42, 27, 27, -33, -33, -33, 43, 43, -33, -33, -33, 43, -33, 43, -33, 55, -33, -33, -33, 5, 3, -33, 43, -4, 33, 13, -33, 46, 44, 57, -9, 14, 8, -33, -33, 5, 63, -33, -33, -33, -33, 5, -33, -33, 7, -33, 7 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int8 yydefact[] = { 6, 17, 6, 0, 2, 4, 5, 8, 0, 12, 16, 22, 0, 1, 6, 7, 0, 18, 0, 15, 3, 61, 63, 65, 0, 0, 48, 49, 10, 34, 36, 38, 41, 0, 0, 47, 51, 54, 57, 58, 59, 60, 0, 0, 0, 39, 0, 0, 0, 44, 43, 45, 0, 0, 62, 64, 52, 0, 55, 0, 25, 20, 24, 40, 56, 6, 35, 37, 0, 42, 46, 50, 53, 0, 0, 0, 14, 0, 0, 23, 21, 6, 0, 33, 27, 30, 26, 6, 28, 29, 13, 11, 32 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -33, -33, -2, 66, -33, 75, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 9, -33, -33, -33, -33, 58, 37, -21, -33, -33, -22, -32, 34, -33, 29, -33, 30, -33, -33, 12, 15 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { 0, 3, 4, 5, 6, 7, 8, 46, 82, 9, 10, 11, 17, 18, 75, 61, 62, 73, 86, 87, 28, 29, 30, 31, 32, 52, 33, 34, 35, 57, 36, 59, 37, 38, 39, 40, 41 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int8 yytable[] = { 12, 53, 44, 14, 45, 54, 55, 81, 1, 83, 13, -31, 53, 84, 22, 23, 85, 16, -9, 14, -31, -31, 2, 26, 27, -31, 48, 67, -31, -31, 69, 21, 64, 22, 23, 26, 27, 53, -19, 42, 47, 26, 27, 58, 24, 53, 77, 21, 60, 22, 23, 25, 14, 47, 26, 27, 65, 64, 19, 63, 68, 49, 56, 76, 50, 51, 26, 27, 78, 49, 26, 27, 50, 51, 26, 27, 74, 80, 91, 90, 20, 15, 43, 79, 66, 92, 71, 70, 0, 72, 88, 0, 0, 89 }; static const yytype_int8 yycheck[] = { 2, 33, 24, 12, 25, 6, 7, 16, 3, 1, 0, 3, 44, 5, 6, 7, 8, 13, 13, 12, 12, 13, 17, 27, 28, 17, 23, 48, 20, 21, 52, 4, 18, 6, 7, 27, 28, 69, 19, 19, 12, 27, 28, 30, 17, 77, 68, 4, 4, 6, 7, 24, 12, 12, 27, 28, 14, 18, 18, 18, 17, 22, 29, 65, 25, 26, 27, 28, 22, 22, 27, 28, 25, 26, 27, 28, 21, 20, 15, 81, 14, 6, 24, 74, 47, 87, 57, 53, -1, 59, 78, -1, -1, 78 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_int8 yystos[] = { 0, 3, 17, 32, 33, 34, 35, 36, 37, 40, 41, 42, 33, 0, 12, 36, 13, 43, 44, 18, 34, 4, 6, 7, 17, 24, 27, 28, 51, 52, 53, 54, 55, 57, 58, 59, 61, 63, 64, 65, 66, 67, 19, 52, 57, 54, 38, 12, 23, 22, 25, 26, 56, 58, 6, 7, 29, 60, 30, 62, 4, 46, 47, 18, 18, 14, 53, 54, 17, 57, 59, 61, 63, 48, 21, 45, 33, 57, 22, 47, 20, 16, 39, 1, 5, 8, 49, 50, 66, 67, 33, 15, 33 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int8 yyr1[] = { 0, 31, 32, 33, 33, 34, 34, 35, 35, 37, 38, 36, 36, 39, 39, 40, 40, 42, 41, 44, 45, 43, 43, 46, 46, 48, 47, 49, 49, 49, 49, 50, 49, 49, 51, 52, 52, 53, 53, 54, 54, 54, 55, 56, 56, 56, 57, 57, 58, 58, 59, 59, 60, 61, 61, 62, 63, 63, 63, 64, 64, 65, 66, 66, 67, 67 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 3, 1, 1, 0, 2, 1, 0, 0, 8, 1, 2, 0, 3, 1, 0, 3, 0, 0, 5, 0, 3, 1, 0, 4, 1, 1, 1, 1, 0, 2, 1, 1, 3, 1, 3, 1, 2, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 2, 1 }; enum { YYENOMEM = -2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYNOMEM goto yyexhaustedlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (&yylloc, scanptr, penvptr, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Backward compatibility with an undocumented macro. Use YYerror or YYUNDEF. */ #define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (0) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* YYLOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ # ifndef YYLOCATION_PRINT # if defined YY_LOCATION_PRINT /* Temporary convenience wrapper in case some people defined the undocumented and private YY_LOCATION_PRINT macros. */ # define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc)) # elif defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ YY_ATTRIBUTE_UNUSED static int yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) { int res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { res += YYFPRINTF (yyo, "%d", yylocp->first_line); if (0 <= yylocp->first_column) res += YYFPRINTF (yyo, ".%d", yylocp->first_column); } if (0 <= yylocp->last_line) { if (yylocp->first_line < yylocp->last_line) { res += YYFPRINTF (yyo, "-%d", yylocp->last_line); if (0 <= end_col) res += YYFPRINTF (yyo, ".%d", end_col); } else if (0 <= end_col && yylocp->first_column < end_col) res += YYFPRINTF (yyo, "-%d", end_col); } return res; } # define YYLOCATION_PRINT yy_location_print_ /* Temporary convenience wrapper in case some people defined the undocumented and private YY_LOCATION_PRINT macros. */ # define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc)) # else # define YYLOCATION_PRINT(File, Loc) ((void) 0) /* Temporary convenience wrapper in case some people defined the undocumented and private YY_LOCATION_PRINT macros. */ # define YY_LOCATION_PRINT YYLOCATION_PRINT # endif # endif /* !defined YYLOCATION_PRINT */ # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Kind, Value, Location, scanptr, penvptr); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, void * scanptr, ParserEnv * penvptr) { FILE *yyoutput = yyo; YY_USE (yyoutput); YY_USE (yylocationp); YY_USE (scanptr); YY_USE (penvptr); if (!yyvaluep) return; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, void * scanptr, ParserEnv * penvptr) { YYFPRINTF (yyo, "%s %s (", yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); YYLOCATION_PRINT (yyo, yylocationp); YYFPRINTF (yyo, ": "); yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, scanptr, penvptr); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, void * scanptr, ParserEnv * penvptr) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), &yyvsp[(yyi + 1) - (yynrhs)], &(yylsp[(yyi + 1) - (yynrhs)]), scanptr, penvptr); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, yylsp, Rule, scanptr, penvptr); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) ((void) 0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, void * scanptr, ParserEnv * penvptr) { YY_USE (yyvaluep); YY_USE (yylocationp); YY_USE (scanptr); YY_USE (penvptr); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*----------. | yyparse. | `----------*/ int yyparse (void * scanptr, ParserEnv * penvptr) { /* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ YY_INITIAL_VALUE (static YYSTYPE yyval_default;) YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Location data for the lookahead symbol. */ static YYLTYPE yyloc_default # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ int yynerrs = 0; yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus = 0; /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ YYPTRDIFF_T yystacksize = YYINITDEPTH; /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss = yyssa; yy_state_t *yyssp = yyss; /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp = yyvs; /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp = yyls; int yyn; /* The return value of yyparse. */ int yyresult; /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[3]; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ /* User initialization code. */ #line 98 "parser_yy.y" { yylloc.cobenum = yylloc.libenum = yylloc.coennum = yylloc.liennum = 1; yylloc.tebeptr = yylloc.teenptr = penvptr->textptr; } #line 1216 "parser_yy.c" yylsp[0] = yylloc; goto yysetstate; /*------------------------------------------------------------. | yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; /*--------------------------------------------------------------------. | yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yyls1, yysize * YYSIZEOF (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; yyls = yyls1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval, &yylloc, scanptr); } if (yychar <= YYEOF) { yychar = YYEOF; yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else if (yychar == YYerror) { /* The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery. */ yychar = YYUNDEF; yytoken = YYSYMBOL_YYerror; yyerror_range[1] = yylloc; goto yyerrlab1; } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; /* Discard the shifted token. */ yychar = YYEMPTY; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: /* STRAT: STRATSELECT */ #line 148 "parser_yy.y" { penvptr->straptr = ((yyvsp[0].STRAT)); /* Save pointer to root of tree */ } #line 1431 "parser_yy.c" break; case 3: /* STRATSELECT: STRATSELECT '|' STRATEMPTY */ #line 154 "parser_yy.y" { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (1)"); stratExit ((yyvsp[-2].STRAT)); stratExit ((yyvsp[0].STRAT)); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODESELECT; straptr->data.seledat.stratab[0] = ((yyvsp[-2].STRAT)); straptr->data.seledat.stratab[1] = ((yyvsp[0].STRAT)); ((yyval.STRAT)) = straptr; } #line 1453 "parser_yy.c" break; case 6: /* STRATEMPTY: %empty */ #line 176 "parser_yy.y" { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (2)"); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODEEMPTY; ((yyval.STRAT)) = straptr; } #line 1471 "parser_yy.c" break; case 7: /* STRATCONCAT: STRATCONCAT STRATTEST */ #line 192 "parser_yy.y" { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (3)"); stratExit ((yyvsp[-1].STRAT)); stratExit ((yyvsp[0].STRAT)); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODECONCAT; straptr->data.concdat.stratab[0] = ((yyvsp[-1].STRAT)); straptr->data.concdat.stratab[1] = ((yyvsp[0].STRAT)); ((yyval.STRAT)) = straptr; } #line 1493 "parser_yy.c" break; case 9: /* $@1: %empty */ #line 213 "parser_yy.y" { PARSERLLBEGIN (VALTEST); /* Parse parameter tokens */ } #line 1501 "parser_yy.c" break; case 10: /* $@2: %empty */ #line 217 "parser_yy.y" { PARSERLLBEGIN (VALSTRAT); /* Parse strategy tokens */ } #line 1509 "parser_yy.c" break; case 11: /* STRATTEST: $@1 '/' TEST $@2 '?' STRATSELECT STRATTESTELSE ';' */ #line 221 "parser_yy.y" { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (4)"); stratExit ((yyvsp[-2].STRAT)); if (((yyvsp[-1].STRAT)) != NULL) stratExit ((yyvsp[-1].STRAT)); stratTestExit ((yyvsp[-5].TEST)); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODECOND; straptr->data.conddat.testptr = ((yyvsp[-5].TEST)); straptr->data.conddat.stratab[0] = ((yyvsp[-2].STRAT)); straptr->data.conddat.stratab[1] = ((yyvsp[-1].STRAT)); ((yyval.STRAT)) = straptr; } #line 1534 "parser_yy.c" break; case 13: /* STRATTESTELSE: ':' STRATSELECT */ #line 245 "parser_yy.y" { ((yyval.STRAT)) = ((yyvsp[0].STRAT)); } #line 1542 "parser_yy.c" break; case 14: /* STRATTESTELSE: %empty */ #line 249 "parser_yy.y" { ((yyval.STRAT)) = NULL; } #line 1550 "parser_yy.c" break; case 15: /* STRATGROUP: '(' STRATSELECT ')' */ #line 255 "parser_yy.y" { ((yyval.STRAT)) = ((yyvsp[-1].STRAT)); } #line 1558 "parser_yy.c" break; case 17: /* $@3: %empty */ #line 262 "parser_yy.y" { Strat * straptr; int methnum; size_t methlen; StratMethodTab * methtab; int i; size_t j; methnum = 0; methlen = 0; /* No method recognized yet */ methtab = penvptr->stratab->methtab; /* Point to the method table */ for (i = 0; methtab[i].nameptr != NULL; i ++) { if ((strncasecmp (((yyvsp[0].STRING)), /* Find longest matching code name */ methtab[i].nameptr, j = strlen (methtab[i].nameptr)) == 0) && (j > methlen)) { methnum = methtab[i].methnum; methlen = j; } } if (methlen == 0) { /* If method name not known */ errorPrint ("stratParserParse: invalid method name \"%s\", line %d, column %d, at \"%s\"", ((yyvsp[0].STRING)), ((yylsp[0])).libenum, ((yylsp[0])).cobenum, ((yylsp[0])).tebeptr); YYABORT; } if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (5)"); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODEMETHOD; straptr->data.methdat.methnum = methnum; /* Set method type */ if (methtab[methnum].dataptr != NULL) /* If default values exist */ memcpy (&straptr->data.methdat.datadat, /* Set values to default */ methtab[methnum].dataptr, sizeof (StratNodeMethodData)); penvptr->straptr = straptr; /* Structure available for parameter processing */ } #line 1603 "parser_yy.c" break; case 18: /* STRATMETHOD: METHODNAME $@3 METHODPARAM */ #line 303 "parser_yy.y" { StratParamTab * paratab; int paraidx; paratab = penvptr->stratab->paratab; /* Point to the parameter table */ for (paraidx = 0; paratab[paraidx].nameptr != NULL; paraidx ++) { if ((paratab[paraidx].methnum == penvptr->straptr->data.methdat.methnum) && /* If a strategy parameter found for this method */ (paratab[paraidx].typeval == STRATPARAMSTRAT)) { if (*((Strat **) ((byte *) &penvptr->straptr->data.methdat.datadat + /* And this parameter has not been set */ (paratab[paraidx].doffptr - paratab[paraidx].dbasptr))) == NULL) errorPrintW ("stratParserParse: strategy parameter \"%s\" of method \"%s\" not set, line %d, column %d, before \"%s\"", paratab[paraidx].nameptr, penvptr->stratab->methtab[penvptr->straptr->data.methdat.methnum].nameptr, ((yylsp[-1])).libenum, ((yylsp[-1])).cobenum, ((yylsp[-1])).tebeptr); } } ((yyval.STRAT)) = penvptr->straptr; /* Return current structure */ penvptr->straptr = NULL; /* No current structure */ } #line 1627 "parser_yy.c" break; case 19: /* $@4: %empty */ #line 325 "parser_yy.y" { PARSERLLBEGIN (VALPARAM); /* Parse parameter tokens */ } #line 1635 "parser_yy.c" break; case 20: /* $@5: %empty */ #line 329 "parser_yy.y" { PARSERLLBEGIN (VALSTRAT); /* Parse strategy tokens */ } #line 1643 "parser_yy.c" break; case 25: /* @6: %empty */ #line 341 "parser_yy.y" { int paraidx; size_t paralen; StratParamTab * paratab; int i; size_t j; paraidx = 0; paralen = 0; /* No parameter recognized yet */ paratab = penvptr->stratab->paratab; /* Point to the parameter table */ for (i = 0; paratab[i].nameptr != NULL; i ++) { if ((paratab[i].methnum == penvptr->straptr->data.methdat.methnum) && (strncasecmp (((yyvsp[0].STRING)), /* Find longest matching parameter name */ paratab[i].nameptr, j = strlen (paratab[i].nameptr)) == 0) && (j > paralen)) { paraidx = i; paralen = j; } } if (paralen == 0) { errorPrint ("stratParserParse: invalid method parameter name \"%s\", line %d, column %d, before \"%s\"", ((yyvsp[0].STRING)), ((yylsp[0])).libenum, ((yylsp[0])).cobenum, ((yylsp[0])).tebeptr); YYABORT; } ((yyval.SAVE)).tabl = penvptr->stratab; /* Save current strategy tables */ penvptr->paraptr = ¶tab[paraidx]; /* Save current parameter value */ PARSERLLBEGIN (stratmethtokentab[penvptr->paraptr->typeval & ~STRATPARAMDEPRECATED]); /* Get non-deprecated type */ if (penvptr->paraptr->typeval == STRATPARAMSTRAT) /* If parameter is a strategy */ penvptr->stratab = (StratTab *) penvptr->paraptr->dselptr; /* Use new strategy tables */ } #line 1680 "parser_yy.c" break; case 26: /* PARAMPARAM: PARAMNAME @6 '=' PARAMVAL */ #line 374 "parser_yy.y" { PARSERLLBEGIN (VALPARAM); /* Go-on reading parameters */ penvptr->stratab = ((yyvsp[-2].SAVE)).tabl; /* Restore current strategy tables */ } #line 1689 "parser_yy.c" break; case 27: /* PARAMVAL: VALCASE */ #line 381 "parser_yy.y" { char c; /* Character read */ char * p; /* Pointer to selector string */ int i; /* Index in selector string */ if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ c = ((yyvsp[0].CASEVAL)); /* First, use char as is */ for (p = (char *) penvptr->paraptr->dselptr, i = 0; (*p != '\0') && (*p != c); p ++, i ++) ; if (*p == '\0') { /* Char was not found */ c = tolower (c); /* Convert char to lower case */ for (p = (char *) penvptr->paraptr->dselptr, i = 0; (*p != '\0') && (*p != c); p ++, i ++) ; if (*p == '\0') { errorPrint ("stratParserParse: invalid method parameter switch \"%s=%c\", line %d, column %d, before \"%s\"", penvptr->paraptr->nameptr, ((yyvsp[0].CASEVAL)), ((yylsp[0])).libenum, ((yylsp[0])).cobenum, ((yylsp[0])).tebeptr); YYABORT; } } #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (int)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (1)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((int *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = i; } } #line 1727 "parser_yy.c" break; case 28: /* PARAMVAL: VALSDOUBLE */ #line 415 "parser_yy.y" { if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (double)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (2)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((double *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = ((yyvsp[0].DOUBLE)); } } #line 1745 "parser_yy.c" break; case 29: /* PARAMVAL: VALSINT */ #line 429 "parser_yy.y" { if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (INT)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (3)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((INT *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = (INT) ((yyvsp[0].INTEGER)); } } #line 1763 "parser_yy.c" break; case 30: /* PARAMVAL: VALSTRING */ #line 443 "parser_yy.y" { if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + strlen ((yyvsp[0].STRING)) + 1) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (4)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ strcpy ((char *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr)), ((yyvsp[0].STRING))); } } #line 1782 "parser_yy.c" break; case 31: /* @7: %empty */ #line 458 "parser_yy.y" { ((yyval.SAVE)).strat = penvptr->straptr; ((yyval.SAVE)).param = penvptr->paraptr; penvptr->straptr = NULL; penvptr->paraptr = NULL; } #line 1793 "parser_yy.c" break; case 32: /* PARAMVAL: @7 STRATSELECT */ #line 465 "parser_yy.y" { penvptr->straptr = ((yyvsp[-1].SAVE)).strat; /* Restore current method */ penvptr->paraptr = ((yyvsp[-1].SAVE)).param; /* Restore current parameter */ if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (Strat *)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (5)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((Strat **) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = ((yyvsp[0].STRAT)); } } #line 1814 "parser_yy.c" break; case 33: /* PARAMVAL: error */ #line 482 "parser_yy.y" { errorPrint ("stratParserParse: invalid value for parameter \"%s\" of method \"%s\", line %d, column %d, before \"%s\"", penvptr->paraptr->nameptr, penvptr->straptr->tablptr->methtab[penvptr->straptr->data.methdat.methnum].nameptr, ((yylsp[0])).libenum, ((yylsp[0])).cobenum, ((yylsp[0])).tebeptr); YYABORT; } #line 1825 "parser_yy.c" break; case 35: /* TESTOR: TESTOR '|' TESTAND */ #line 494 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (6)"); stratTestExit ((yyvsp[-2].TEST)); stratTestExit ((yyvsp[0].TEST)); YYABORT; } testptr->testval = STRATTESTOR; testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ((yyvsp[-2].TEST)); testptr->data.testtab[1] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 1847 "parser_yy.c" break; case 37: /* TESTAND: TESTAND '&' TESTNOT */ #line 515 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (7)"); stratTestExit ((yyvsp[-2].TEST)); stratTestExit ((yyvsp[0].TEST)); YYABORT; } testptr->testval = STRATTESTAND; testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ((yyvsp[-2].TEST)); testptr->data.testtab[1] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 1869 "parser_yy.c" break; case 39: /* TESTNOT: '!' TESTNOT */ #line 536 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (8)"); stratTestExit ((yyvsp[0].TEST)); YYABORT; } testptr->testval = STRATTESTNOT; testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 1889 "parser_yy.c" break; case 40: /* TESTNOT: '(' TESTOR ')' */ #line 552 "parser_yy.y" { ((yyval.TEST)) = ((yyvsp[-1].TEST)); } #line 1897 "parser_yy.c" break; case 42: /* TESTREL: TESTEXPR1 TESTRELOP TESTEXPR1 */ #line 559 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (9)"); stratTestExit ((yyvsp[-2].TEST)); stratTestExit ((yyvsp[0].TEST)); YYABORT; } testptr->testval = ((yyvsp[-1].TESTOP)); testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ((yyvsp[-2].TEST)); testptr->data.testtab[1] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 1918 "parser_yy.c" break; case 43: /* TESTRELOP: '<' */ #line 578 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTLT; } #line 1926 "parser_yy.c" break; case 44: /* TESTRELOP: '=' */ #line 582 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTEQ; } #line 1934 "parser_yy.c" break; case 45: /* TESTRELOP: '>' */ #line 586 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTGT; } #line 1942 "parser_yy.c" break; case 46: /* TESTEXPR1: TESTEXPR1 TESTEXPR1OP TESTEXPR2 */ #line 592 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (10)"); stratTestExit ((yyvsp[-2].TEST)); stratTestExit ((yyvsp[0].TEST)); YYABORT; } testptr->testval = ((yyvsp[-1].TESTOP)); testptr->data.testtab[0] = ((yyvsp[-2].TEST)); testptr->data.testtab[1] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 1962 "parser_yy.c" break; case 48: /* TESTEXPR1OP: '+' */ #line 611 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTADD; } #line 1970 "parser_yy.c" break; case 49: /* TESTEXPR1OP: '-' */ #line 615 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTSUB; } #line 1978 "parser_yy.c" break; case 50: /* TESTEXPR2: TESTEXPR2 TESTEXPR2OP TESTEXPR3 */ #line 621 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { stratTestExit ((yyvsp[-2].TEST)); stratTestExit ((yyvsp[0].TEST)); errorPrint ("stratParserParse: out of memory (11)"); YYABORT; } testptr->testval = ((yyvsp[-1].TESTOP)); testptr->data.testtab[0] = ((yyvsp[-2].TEST)); testptr->data.testtab[1] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 1998 "parser_yy.c" break; case 52: /* TESTEXPR2OP: '*' */ #line 640 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTMUL; } #line 2006 "parser_yy.c" break; case 53: /* TESTEXPR3: TESTEXPR3 TESTEXPR3OP TESTEXPR4 */ #line 646 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (12)"); stratTestExit ((yyvsp[-2].TEST)); stratTestExit ((yyvsp[0].TEST)); YYABORT; } testptr->testval = ((yyvsp[-1].TESTOP)); testptr->data.testtab[0] = ((yyvsp[-2].TEST)); testptr->data.testtab[1] = ((yyvsp[0].TEST)); ((yyval.TEST)) = testptr; } #line 2026 "parser_yy.c" break; case 55: /* TESTEXPR3OP: '%' */ #line 665 "parser_yy.y" { ((yyval.TESTOP)) = STRATTESTMOD; } #line 2034 "parser_yy.c" break; case 56: /* TESTEXPR4: '(' TESTEXPR1 ')' */ #line 671 "parser_yy.y" { ((yyval.TEST)) = ((yyvsp[-1].TEST)); } #line 2042 "parser_yy.c" break; case 59: /* TESTVAL: VALSDOUBLE */ #line 679 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (13)"); YYABORT; } testptr->testval = STRATTESTVAL; testptr->nodeval = STRATPARAMDOUBLE; testptr->data.val.valdbl = ((yyvsp[0].DOUBLE)); ((yyval.TEST)) = testptr; } #line 2061 "parser_yy.c" break; case 60: /* TESTVAL: VALSINT */ #line 694 "parser_yy.y" { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (14)"); YYABORT; } testptr->testval = STRATTESTVAL; testptr->nodeval = STRATPARAMINT; testptr->data.val.valint = ((yyvsp[0].INTEGER)); ((yyval.TEST)) = testptr; } #line 2080 "parser_yy.c" break; case 61: /* TESTVAR: PARAMNAME */ #line 711 "parser_yy.y" { StratTest * testptr; StratParamTab * condtab; int para; size_t paralen; int i; size_t j; para = 0; paralen = 0; /* No parameter recognized yet */ condtab = penvptr->stratab->condtab; /* Point to parameter table */ for (i = 0; condtab[i].nameptr != NULL; i ++) { if ((strncasecmp (((yyvsp[0].STRING)), /* Find longest matching parameter name */ condtab[i].nameptr, j = strlen (condtab[i].nameptr)) == 0) && (j > paralen)) { para = i; paralen = j; } } if (paralen == 0) { errorPrint ("stratParserParse: invalid graph parameter name \"%s\", line %d, column %d, before \"%s\"", ((yyvsp[0].STRING)), ((yylsp[0])).libenum, ((yylsp[0])).cobenum, ((yylsp[0])).tebeptr); YYABORT; } if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (15)"); YYABORT; } testptr->testval = STRATTESTVAR; testptr->nodeval = condtab[para].typeval; testptr->data.var.datatab = penvptr->stratab; testptr->data.var.dataoft = condtab[para].doffptr - condtab[para].dbasptr; ((yyval.TEST)) = testptr; } #line 2123 "parser_yy.c" break; case 62: /* VALSDOUBLE: TESTEXPR1OP VALDOUBLE */ #line 752 "parser_yy.y" { ((yyval.DOUBLE)) = (((yyvsp[-1].TESTOP)) == STRATTESTSUB) ? - ((yyvsp[0].DOUBLE)) : ((yyvsp[0].DOUBLE)); } #line 2131 "parser_yy.c" break; case 64: /* VALSINT: TESTEXPR1OP VALINT */ #line 759 "parser_yy.y" { ((yyval.INTEGER)) = (((yyvsp[-1].TESTOP)) == STRATTESTSUB) ? - ((yyvsp[0].INTEGER)) : ((yyvsp[0].INTEGER)); } #line 2139 "parser_yy.c" break; #line 2143 "parser_yy.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; *++yyvsp = yyval; *++yylsp = yyloc; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; yyerror (&yylloc, scanptr, penvptr, YY_("syntax error")); } yyerror_range[1] = yylloc; if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, &yylloc, scanptr, penvptr); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; ++yynerrs; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYSYMBOL_YYerror; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, scanptr, penvptr); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; ++yylsp; YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturnlab; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturnlab; /*-----------------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | `-----------------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, scanptr, penvptr, YY_("memory exhausted")); yyresult = 2; goto yyreturnlab; /*----------------------------------------------------------. | yyreturnlab -- parsing is finished, clean up and return. | `----------------------------------------------------------*/ yyreturnlab: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc, scanptr, penvptr); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, scanptr, penvptr); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } #line 765 "parser_yy.y" /* ** The static and global definitions (bis). ** These are put at the end of the file because ** the token values that they use are not yet ** defined in the first section of the file. */ unsigned int stratmethtokentab[] = { /* Table for parameter/token type conversion */ VALCASE, VALDOUBLE, VALINT, -1, /* No logical parameters */ VALSTRAT, VALSTRING, -1 /* One more value to detect array overflow */ }; /************************************/ /* */ /* These routines drive the parser. */ /* */ /************************************/ /* This routine is the entry point for ** the strategy parser. ** It returns: ** - !NULL : pointer to the strategy. ** - NULL : on error. */ Strat * stratParserParse ( const StratTab * const stratab, /*+ Pointer to parsing tables +*/ const char * const textptr) /*+ Strategy string to parse +*/ { YY_BUFFER_STATE buffdat; ParserEnv penvdat; /* Parser environment */ yyscan_t scandat; /* Pointer to lex memory */ int o; penvdat.stratab = stratab; /* Point to the parsing tables */ penvdat.straptr = NULL; /* Clear up the temporary strategy pointer */ penvdat.textptr = textptr; /* Initialize the lexical parser */ if (stratParserLexInit (&scandat) != 0) { errorPrint ("stratParserParse: cannot initialize reentrant parser"); return (NULL); } buffdat = stratParserLexScanString (textptr, scandat); /* Let's hope nothing breaks; error management in flex is just crap */ stratParserLexBufSwitch (buffdat, scandat); o = yyparse (scandat, &penvdat); /* Parse the strategy string */ stratParserLexBufDelete (buffdat, scandat); stratParserLexDestroy (scandat); if (o != 0) { if (penvdat.straptr != NULL) stratExit (penvdat.straptr); return (NULL); } return (penvdat.straptr); /* Return strategy pointer */ } /* This routine displays the parser error message. ** It returns: ** - void : in all cases. */ static void yyerror ( const ParserLocation * const plocptr, /*+ Scan location +*/ void * const scanptr, /*+ Not used +*/ const ParserEnv * const penvptr, /*+ Not used +*/ const char * const mesgptr) /*+ Not used +*/ { errorPrint ("stratParserParse: invalid strategy string, line %d, column %d, at \"%s\"", plocptr->libenum, plocptr->cobenum, plocptr->tebeptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library.h000066400000000000000000000662211514310134000255410ustar00rootroot00000000000000/* Copyright 2004,2007-2012,2014-2016,2018-2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : Declaration file for the LibScotch **/ /** static mapping and sparse matrix block **/ /** ordering library. **/ /** **/ /** DATES : # Version 3.2 : from : 07 sep 1996 **/ /** to : 22 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 3.4 : from : 10 oct 1999 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 20 dec 2005 **/ /** # Version 5.0 : from : 26 apr 2006 **/ /** to : 20 feb 2008 **/ /** # Version 5.1 : from : 30 nov 2007 **/ /** to : 07 aug 2011 **/ /** # Version 6.0 : from : 12 sep 2008 **/ /** to : 20 jan 2020 **/ /** # Version 6.1 : from : 05 sep 2020 **/ /** to : 01 apr 2021 **/ /** # Version 7.0 : from : 25 aug 2019 **/ /** to : 03 jun 2024 **/ /** **/ /************************************************************/ #ifndef LIB_SCOTCH_H #define LIB_SCOTCH_H /* ** The type and structure definitions. */ /*+ Integer type. +*/ typedef DUMMYIDX SCOTCH_Idx; typedef DUMMYINT SCOTCH_Num; #define SCOTCH_NUMMAX DUMMYMAXINT #define SCOTCH_NUMSTRING DUMMYNUMSTRING /*+ Version flags. +*/ #if ((! defined LIB_SCOTCH_H_UNIQUE) && (! defined SCOTCH_RENAME_ALL)) #define SCOTCH_VERSION DUMMYVERSION #define SCOTCH_RELEASE DUMMYRELEASE #define SCOTCH_PATCHLEVEL DUMMYPATCHLEVEL #else /* ((! defined LIB_SCOTCH_H_UNIQUE) && (! defined SCOTCH_RENAME_ALL)) */ #if ((SCOTCH_VERSION != DUMMYVERSION) || (SCOTCH_RELEASE != DUMMYRELEASE) || (SCOTCH_PATCHLEVEL != DUMMYPATCHLEVEL)) #ifndef SCOTCH_WARNING_RENAME_UNSAFE #define SCOTCH_WARNING_RENAME_UNSAFE #endif /* SCOTCH_WARNING_RENAME_UNSAFE */ #endif /* ((SCOTCH_VERSION != DUMMYVERSION) || (SCOTCH_RELEASE != DUMMYRELEASE) || (SCOTCH_PATCHLEVEL != DUMMYPATCHLEVEL)) */ #endif /* LIB_SCOTCH_H_UNIQUE */ /*+ Option numbers. +*/ #ifndef SCOTCH_OPTIONNUMNBR #define SCOTCH_OPTIONNUMDETERMINISTIC 0 #define SCOTCH_OPTIONNUMRANDOMFIXEDSEED 1 #define SCOTCH_OPTIONNUMNBR 2 #endif /* SCOTCH_OPTIONNUMNBR */ /*+ Coarsening flags. +*/ #ifndef SCOTCH_COARSENNONE #define SCOTCH_COARSENNONE 0x0000 #define SCOTCH_COARSENFOLD 0x0100 #define SCOTCH_COARSENFOLDDUP 0x0300 #define SCOTCH_COARSENNOMERGE 0x4000 #endif /* SCOTCH_COARSENNONE */ /*+ Strategy string parametrization values. +*/ #ifndef SCOTCH_STRATDEFAULT #define SCOTCH_STRATDEFAULT 0x00000 #define SCOTCH_STRATQUALITY 0x00001 #define SCOTCH_STRATSPEED 0x00002 #define SCOTCH_STRATBALANCE 0x00004 #define SCOTCH_STRATSAFETY 0x00008 #define SCOTCH_STRATSCALABILITY 0x00010 #define SCOTCH_STRATRECURSIVE 0x00100 #define SCOTCH_STRATREMAP 0x00200 #define SCOTCH_STRATLEVELMAX 0x01000 #define SCOTCH_STRATLEVELMIN 0x02000 #define SCOTCH_STRATLEAFSIMPLE 0x04000 #define SCOTCH_STRATSEPASIMPLE 0x08000 #define SCOTCH_STRATDISCONNECTED 0x10000 #endif /* SCOTCH_STRATDEFAULT */ /*+ Opaque objects. The dummy sizes of these objects, computed at compile-time by program "dummysizes", are given as double values for proper padding. +*/ #ifndef LIB_SCOTCH_H_UNIQUE typedef unsigned char SCOTCH_GraphPart2; #endif /* LIB_SCOTCH_H_UNIQUE */ typedef struct { double dummy[DUMMYSIZEARCH]; } SCOTCH_Arch; typedef struct { double dummy[DUMMYSIZEARCHDOM]; } SCOTCH_ArchDom; typedef struct { double dummy[DUMMYSIZECONTEXT]; } SCOTCH_Context; typedef struct { double dummy[DUMMYSIZEGEOM]; } SCOTCH_Geom; typedef struct { double dummy[DUMMYSIZEGRAPH]; } SCOTCH_Graph; typedef struct { double dummy[DUMMYSIZEMESH]; } SCOTCH_Mesh; typedef struct { double dummy[DUMMYSIZEMAP]; } SCOTCH_Mapping; typedef struct { double dummy[DUMMYSIZEORDER]; } SCOTCH_Ordering; typedef struct { double dummy[DUMMYSIZESTRAT]; } SCOTCH_Strat; /* ** The function prototypes. */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ SCOTCH_Arch * SCOTCH_archAlloc (void); int SCOTCH_archSizeof (void); int SCOTCH_archInit (SCOTCH_Arch * const); void SCOTCH_archExit (SCOTCH_Arch * const); int SCOTCH_archLoad (SCOTCH_Arch * const, FILE * const); int SCOTCH_archSave (const SCOTCH_Arch * const, FILE * const); int SCOTCH_archBuild (SCOTCH_Arch * const, const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Strat * const); int SCOTCH_archBuild0 (SCOTCH_Arch * const, const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Strat * const); int SCOTCH_archBuild2 (SCOTCH_Arch * const, const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const); char * SCOTCH_archName (const SCOTCH_Arch * const); SCOTCH_Num SCOTCH_archSize (const SCOTCH_Arch * const); int SCOTCH_archVar (const SCOTCH_Arch * const); int SCOTCH_archCmplt (SCOTCH_Arch * const, const SCOTCH_Num); int SCOTCH_archCmpltw (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num * const); int SCOTCH_archHcub (SCOTCH_Arch * const, const SCOTCH_Num); int SCOTCH_archMesh2 (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_archMesh3 (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_archMeshX (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num * const); int SCOTCH_archSub (SCOTCH_Arch * const, SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num * const); int SCOTCH_archTleaf (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const); int SCOTCH_archTorus2 (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_archTorus3 (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_archTorusX (SCOTCH_Arch * const, const SCOTCH_Num, const SCOTCH_Num * const); int SCOTCH_archVcmplt (SCOTCH_Arch * const); int SCOTCH_archVhcub (SCOTCH_Arch * const); SCOTCH_ArchDom * SCOTCH_archDomAlloc (void); int SCOTCH_archDomSizeof (void); SCOTCH_Num SCOTCH_archDomNum (SCOTCH_Arch * const, const SCOTCH_ArchDom * const); int SCOTCH_archDomTerm (SCOTCH_Arch * const, SCOTCH_ArchDom * const, const SCOTCH_Num); SCOTCH_Num SCOTCH_archDomSize (SCOTCH_Arch * const, const SCOTCH_ArchDom * const); SCOTCH_Num SCOTCH_archDomWght (SCOTCH_Arch * const, const SCOTCH_ArchDom * const); SCOTCH_Num SCOTCH_archDomDist (SCOTCH_Arch * const, const SCOTCH_ArchDom * const, const SCOTCH_ArchDom * const); int SCOTCH_archDomFrst (SCOTCH_Arch * const, SCOTCH_ArchDom * const); int SCOTCH_archDomBipart (SCOTCH_Arch * const, const SCOTCH_ArchDom * const, SCOTCH_ArchDom * const, SCOTCH_ArchDom * const); SCOTCH_Context * SCOTCH_contextAlloc (void); int SCOTCH_contextSizeof (void); int SCOTCH_contextInit (SCOTCH_Context * const); void SCOTCH_contextExit (SCOTCH_Context * const); int SCOTCH_contextOptionGetNum (SCOTCH_Context * const, const int, SCOTCH_Num * const); int SCOTCH_contextOptionSetNum (SCOTCH_Context * const, const int, const SCOTCH_Num); int SCOTCH_contextOptionParse (SCOTCH_Context * const, const char *); int SCOTCH_contextRandomClone (SCOTCH_Context * const); void SCOTCH_contextRandomReset (SCOTCH_Context * const); void SCOTCH_contextRandomSeed (SCOTCH_Context * const, const SCOTCH_Num); int SCOTCH_contextThreadImport1 (SCOTCH_Context * const, const int); int SCOTCH_contextThreadImport2 (SCOTCH_Context * const, const int); int SCOTCH_contextThreadSpawn (SCOTCH_Context * const, const int, const int * const); int SCOTCH_contextBindGraph (SCOTCH_Context * const, const SCOTCH_Graph * const, SCOTCH_Graph * const); int SCOTCH_contextBindMesh (SCOTCH_Context * const, const SCOTCH_Mesh * const, SCOTCH_Mesh * const); void SCOTCH_errorProg (const char * const); void SCOTCH_errorPrint (const char * const, ...); void SCOTCH_errorPrintW (const char * const, ...); SCOTCH_Geom * SCOTCH_geomAlloc (void); int SCOTCH_geomSizeof (void); int SCOTCH_geomInit (SCOTCH_Geom * const); void SCOTCH_geomExit (SCOTCH_Geom * const); void SCOTCH_geomData (const SCOTCH_Geom * const, SCOTCH_Num * const, double ** const); SCOTCH_Graph * SCOTCH_graphAlloc (void); int SCOTCH_graphSizeof (void); int SCOTCH_graphInit (SCOTCH_Graph * const); void SCOTCH_graphExit (SCOTCH_Graph * const); void SCOTCH_graphFree (SCOTCH_Graph * const); int SCOTCH_graphLoad (SCOTCH_Graph * const, FILE * const, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_graphSave (const SCOTCH_Graph * const, FILE * const); int SCOTCH_graphBuild (SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const); SCOTCH_Num SCOTCH_graphBase (SCOTCH_Graph * const, const SCOTCH_Num); int SCOTCH_graphCheck (const SCOTCH_Graph * const); int SCOTCH_graphCoarsen (const SCOTCH_Graph * const, const SCOTCH_Num, const double, const SCOTCH_Num, SCOTCH_Graph * const, SCOTCH_Num * const); int SCOTCH_graphCoarsenMatch (const SCOTCH_Graph * const, SCOTCH_Num * const, const double, const SCOTCH_Num, SCOTCH_Num * const); int SCOTCH_graphCoarsenBuild (const SCOTCH_Graph * const, const SCOTCH_Num, SCOTCH_Num * const, SCOTCH_Graph * const, SCOTCH_Num * const); int SCOTCH_graphColor (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num); void SCOTCH_graphData (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const); void SCOTCH_graphSize (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_graphStat (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const); SCOTCH_Num SCOTCH_graphDiamPV (const SCOTCH_Graph * const); int SCOTCH_graphDump (const SCOTCH_Graph * const, const char * const, const char * const, FILE * const); int SCOTCH_graphGeomLoadChac (SCOTCH_Graph * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphGeomLoadHabo (SCOTCH_Graph * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphGeomLoadMmkt (SCOTCH_Graph * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphGeomLoadScot (SCOTCH_Graph * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphGeomSaveChac (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphGeomSaveMmkt (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphGeomSaveScot (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_graphInduceList (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Graph * const); int SCOTCH_graphInducePart (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_GraphPart2 * const, const SCOTCH_GraphPart2, SCOTCH_Graph * const); int SCOTCH_graphMapInit (const SCOTCH_Graph * const, SCOTCH_Mapping * const, const SCOTCH_Arch * const, SCOTCH_Num * const); void SCOTCH_graphMapExit (const SCOTCH_Graph * const, SCOTCH_Mapping * const); int SCOTCH_graphMapLoad (const SCOTCH_Graph * const, SCOTCH_Mapping * const, FILE * const); int SCOTCH_graphMapSave (const SCOTCH_Graph * const, const SCOTCH_Mapping * const, FILE * const); int SCOTCH_graphMapCompute (SCOTCH_Graph * const, SCOTCH_Mapping * const, SCOTCH_Strat * const); int SCOTCH_graphMapFixedCompute (SCOTCH_Graph * const, SCOTCH_Mapping * const, SCOTCH_Strat * const); int SCOTCH_graphMap (SCOTCH_Graph * const, const SCOTCH_Arch * const, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphMapFixed (SCOTCH_Graph * const, const SCOTCH_Arch * const, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphMapView (const SCOTCH_Graph * const, const SCOTCH_Mapping * const, FILE * const); int SCOTCH_graphPart (SCOTCH_Graph * const, const SCOTCH_Num, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphPartFixed (SCOTCH_Graph * const, const SCOTCH_Num, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphPartOvl (SCOTCH_Graph * const, const SCOTCH_Num, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphPartOvlView (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, FILE * const); int SCOTCH_graphRemap (SCOTCH_Graph * const, const SCOTCH_Arch * const, SCOTCH_Num *, const double, const SCOTCH_Num *, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphRemapFixed (SCOTCH_Graph * const, const SCOTCH_Arch * const, SCOTCH_Num *, const double, const SCOTCH_Num *, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphRemapCompute (SCOTCH_Graph * const, SCOTCH_Mapping * const, SCOTCH_Mapping * const, const double, const SCOTCH_Num *, SCOTCH_Strat * const); int SCOTCH_graphRemapFixedCompute (SCOTCH_Graph * const, SCOTCH_Mapping * const, SCOTCH_Mapping * const, const double, const SCOTCH_Num *, SCOTCH_Strat * const); int SCOTCH_graphRemapView (const SCOTCH_Graph * const, const SCOTCH_Mapping * const, const SCOTCH_Mapping * const, const double, SCOTCH_Num *, FILE * const); int SCOTCH_graphRemapViewRaw (const SCOTCH_Graph * const, const SCOTCH_Mapping * const, const SCOTCH_Mapping * const, const double, SCOTCH_Num *, FILE * const); int SCOTCH_graphRepart (SCOTCH_Graph * const, const SCOTCH_Num, SCOTCH_Num * const, const double, const SCOTCH_Num *, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphRepartFixed (SCOTCH_Graph * const, const SCOTCH_Num, SCOTCH_Num * const, const double, const SCOTCH_Num *, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_graphTabLoad (const SCOTCH_Graph * const, SCOTCH_Num * const, FILE * const); int SCOTCH_graphTabSave (const SCOTCH_Graph * const, const SCOTCH_Num * const, FILE * const); int SCOTCH_graphOrderInit (const SCOTCH_Graph * const, SCOTCH_Ordering * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_graphOrderExit (const SCOTCH_Graph * const, SCOTCH_Ordering * const); int SCOTCH_graphOrderLoad (const SCOTCH_Graph * const, SCOTCH_Ordering * const, FILE * const); int SCOTCH_graphOrderSave (const SCOTCH_Graph * const, const SCOTCH_Ordering * const, FILE * const); int SCOTCH_graphOrderSaveMap (const SCOTCH_Graph * const, const SCOTCH_Ordering * const, FILE * const); int SCOTCH_graphOrderSaveTree (const SCOTCH_Graph * const, const SCOTCH_Ordering * const, FILE * const); int SCOTCH_graphOrderCompute (SCOTCH_Graph * const, SCOTCH_Ordering * const, SCOTCH_Strat * const); int SCOTCH_graphOrderComputeList (SCOTCH_Graph * const, SCOTCH_Ordering * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Strat * const); int SCOTCH_graphOrder (SCOTCH_Graph * const, SCOTCH_Strat * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_graphOrderList (SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Strat * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_graphOrderCheck (const SCOTCH_Graph * const, const SCOTCH_Ordering * const); SCOTCH_Mapping * SCOTCH_mapAlloc (void); int SCOTCH_mapSizeof (void); void SCOTCH_memFree (void * const); SCOTCH_Idx SCOTCH_memCur (void); SCOTCH_Idx SCOTCH_memMax (void); SCOTCH_Mesh * SCOTCH_meshAlloc (void); int SCOTCH_meshSizeof (void); int SCOTCH_meshInit (SCOTCH_Mesh * const); void SCOTCH_meshExit (SCOTCH_Mesh * const); int SCOTCH_meshLoad (SCOTCH_Mesh * const, FILE * const, const SCOTCH_Num); int SCOTCH_meshSave (const SCOTCH_Mesh * const, FILE * const); int SCOTCH_meshBuild (SCOTCH_Mesh * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num * const); int SCOTCH_meshCheck (const SCOTCH_Mesh * const); void SCOTCH_meshSize (const SCOTCH_Mesh * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_meshData (const SCOTCH_Mesh * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num * const); void SCOTCH_meshStat (const SCOTCH_Mesh * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const); int SCOTCH_meshGraph (const SCOTCH_Mesh * const, SCOTCH_Graph * const); int SCOTCH_meshGraphDual (const SCOTCH_Mesh * const, SCOTCH_Graph * const, const SCOTCH_Num); int SCOTCH_meshGeomLoadHabo (SCOTCH_Mesh * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_meshGeomLoadScot (SCOTCH_Mesh * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_meshGeomSaveScot (const SCOTCH_Mesh * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); int SCOTCH_meshOrderInit (const SCOTCH_Mesh * const, SCOTCH_Ordering * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_meshOrderExit (const SCOTCH_Mesh * const, SCOTCH_Ordering * const); int SCOTCH_meshOrderSave (const SCOTCH_Mesh * const, const SCOTCH_Ordering * const, FILE * const); int SCOTCH_meshOrderSaveMap (const SCOTCH_Mesh * const, const SCOTCH_Ordering * const, FILE * const); int SCOTCH_meshOrderSaveTree (const SCOTCH_Mesh * const, const SCOTCH_Ordering * const, FILE * const); int SCOTCH_meshOrderCompute (SCOTCH_Mesh * const, SCOTCH_Ordering * const, SCOTCH_Strat * const); int SCOTCH_meshOrderComputeList (SCOTCH_Mesh * const, SCOTCH_Ordering * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Strat * const); int SCOTCH_meshOrder (SCOTCH_Mesh * const, SCOTCH_Strat * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_meshOrderList (SCOTCH_Mesh * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Strat * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_meshOrderCheck (const SCOTCH_Mesh * const, const SCOTCH_Ordering * const); int SCOTCH_numSizeof (void); SCOTCH_Ordering * SCOTCH_orderAlloc (void); int SCOTCH_orderSizeof (void); int SCOTCH_randomLoad (FILE *); int SCOTCH_randomSave (FILE *); void SCOTCH_randomProc (int); void SCOTCH_randomReset (void); void SCOTCH_randomSeed (SCOTCH_Num); SCOTCH_Num SCOTCH_randomVal (SCOTCH_Num); SCOTCH_Strat * SCOTCH_stratAlloc (void); int SCOTCH_stratSizeof (void); int SCOTCH_stratInit (SCOTCH_Strat * const); void SCOTCH_stratExit (SCOTCH_Strat * const); void SCOTCH_stratFree (SCOTCH_Strat * const); int SCOTCH_stratSave (const SCOTCH_Strat * const, FILE * const); int SCOTCH_stratGraphBipart (SCOTCH_Strat * const, const char * const); int SCOTCH_stratGraphMap (SCOTCH_Strat * const, const char * const); int SCOTCH_stratGraphMapBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const double); int SCOTCH_stratGraphClusterBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const double, const double); int SCOTCH_stratGraphPartOvl (SCOTCH_Strat * const, const char * const); int SCOTCH_stratGraphPartOvlBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const double); int SCOTCH_stratGraphOrder (SCOTCH_Strat * const, const char * const); int SCOTCH_stratGraphOrderBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const double); int SCOTCH_stratMeshOrder (SCOTCH_Strat * const, const char * const); int SCOTCH_stratMeshOrderBuild (SCOTCH_Strat * const, const SCOTCH_Num, const double); void SCOTCH_version (int * const, int * const, int * const); #ifdef __cplusplus } #endif /* __cplusplus */ #define LIB_SCOTCH_H_UNIQUE /* For symbols that need only be defined once */ #endif /* LIB_SCOTCH_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_arch.c000066400000000000000000000465661514310134000265430ustar00rootroot00000000000000/* Copyright 2004,2007,2009-2016,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_arch.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module is the API for the target **/ /** architecture handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.2 : from : 18 aug 1998 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 29 mar 1999 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 13 jan 2004 **/ /** to : 13 jan 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 12 sep 2007 **/ /** # Version 5.1 : from : 05 jun 2009 **/ /** to : 13 feb 2011 **/ /** # Version 6.0 : from : 14 feb 2011 **/ /** to : 05 jun 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** # Version 8.0 : from : 18 feb 2018 **/ /** to : 18 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "arch_cmplt.h" #include "arch_cmpltw.h" #include "arch_hcub.h" #include "arch_mesh.h" #include "arch_sub.h" #include "arch_tleaf.h" #include "arch_torus.h" #include "arch_vcmplt.h" #include "arch_vhcub.h" #include "scotch.h" /***************************************/ /* */ /* These routines are the C API for */ /* the architecture handling routines. */ /* */ /***************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_ArchDom structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_ArchDom * SCOTCH_archDomAlloc () { return ((SCOTCH_ArchDom *) memAlloc (sizeof (SCOTCH_ArchDom))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_ArchDom structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_archDomSizeof () { return (sizeof (SCOTCH_ArchDom)); } /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Arch structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Arch * SCOTCH_archAlloc () { return ((SCOTCH_Arch *) memAlloc (sizeof (SCOTCH_Arch))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Arch structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_archSizeof () { return (sizeof (SCOTCH_Arch)); } /*+ This routine initializes the opaque *** architecture structure used to handle *** target architectures in the Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_archInit ( SCOTCH_Arch * const archptr) { if (sizeof (SCOTCH_Num) != sizeof (Anum)) { errorPrint (STRINGIFY (SCOTCH_archInit) ": internal error (1)"); return (1); } if (sizeof (SCOTCH_Arch) < sizeof (Arch)) { errorPrint (STRINGIFY (SCOTCH_archInit) ": internal error (2)"); return (1); } return (archInit ((Arch *) archptr)); } /*+ This routine frees the contents of the *** given opaque architecture structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_archExit ( SCOTCH_Arch * const archptr) { archExit ((Arch *) archptr); } /*+ This routine loads the given opaque *** architecture structure with the data of *** the given stream. *** It returns: *** - 0 : if the loading succeeded. *** - !0 : on error. +*/ int SCOTCH_archLoad ( SCOTCH_Arch * const archptr, FILE * const stream) { return (archLoad ((Arch *) archptr, stream)); } /*+ This routine saves the given opaque *** architecture structure to the given *** stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_archSave ( const SCOTCH_Arch * const archptr, FILE * const stream) { return (archSave ((Arch *) archptr, stream)); } /*+ This routine returns the name of the *** given target architecture. *** It returns: *** - !NULL : pointer to the name of the *** target architecture. +*/ char * SCOTCH_archName ( const SCOTCH_Arch * const archptr) { return (archName ((const Arch * const) archptr)); } /*+ This routine returns the size of the *** given target architecture. *** It returns: *** - !0 : size of the target architecture. +*/ SCOTCH_Num SCOTCH_archSize ( const SCOTCH_Arch * const archptr) { ArchDom domdat; archDomFrst ((Arch *) archptr, &domdat); /* Get first domain */ return (archDomSize ((Arch *) archptr, &domdat)); /* Return domain size */ } /*+ This routine tells if the given architecture *** is a variable-sized architecture or not. *** It returns: *** - 0 : if the architecture is not variable-sized. *** - 1 : if the architecture is variable-sized. +*/ int SCOTCH_archVar ( const SCOTCH_Arch * const archptr) { return ((archVar ((Arch *) archptr) != 0) ? 1 : 0); } /*+ These routines fill the contents of the given *** opaque target structure so as to yield target *** architectures of the given types. *** It returns: *** - 0 : if the computation succeeded. *** - !0 : on error. +*/ int SCOTCH_archCmplt ( SCOTCH_Arch * const archptr, const SCOTCH_Num termnbr) { Arch * tgtarchptr; ArchCmplt * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archCmplt) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchCmplt *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("cmplt"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->termnbr = (Anum) termnbr; return (0); } /* ** */ int SCOTCH_archCmpltw ( SCOTCH_Arch * const archptr, const SCOTCH_Num vertnbr, const SCOTCH_Num * const velotab) { Arch * tgtarchptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archCmpltw) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchptr->clasptr = archClass ("cmpltw"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ return (archCmpltwArchBuild ((ArchCmpltw *) (void *) (&tgtarchptr->data), vertnbr, velotab)); } /* ** */ int SCOTCH_archHcub ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimnnbr) /*+ Number of dimensions +*/ { Arch * tgtarchptr; ArchHcub * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archHcub) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchHcub *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("hcub"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = (Anum) dimnnbr; return (0); } /* ** */ int SCOTCH_archMesh2 ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimxval, const SCOTCH_Num dimyval) { Arch * tgtarchptr; ArchMesh2 * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archMesh2) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchMesh2 *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("mesh2D"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = 2; tgtarchdatptr->c[0] = (Anum) dimxval; tgtarchdatptr->c[1] = (Anum) dimyval; return (0); } /* ** */ int SCOTCH_archMesh3 ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimxval, const SCOTCH_Num dimyval, const SCOTCH_Num dimzval) { Arch * tgtarchptr; ArchMesh3 * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archMesh3) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchMesh3 *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("mesh3D"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = 3; tgtarchdatptr->c[0] = (Anum) dimxval; tgtarchdatptr->c[1] = (Anum) dimyval; tgtarchdatptr->c[2] = (Anum) dimzval; return (0); } /* ** */ int SCOTCH_archMeshX ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimnnbr, /*+ Number of dimensions in architecture +*/ const SCOTCH_Num * const dimntab) /*+ Array of dimensions +*/ { Arch * tgtarchptr; ArchMeshX * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archMeshX) ": internal error"); return (1); } if (dimnnbr > ARCHMESHDIMNMAX) { errorPrint (STRINGIFY (SCOTCH_archMeshX) ": too many dimensions"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchMeshX *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("meshXD"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = dimnnbr; memCpy (tgtarchdatptr->c, dimntab, dimnnbr * sizeof (SCOTCH_Num)); /* Copy dimension array */ return (0); } /* ** */ int SCOTCH_archSub ( SCOTCH_Arch * const subarchptr, SCOTCH_Arch * const orgarchptr, const SCOTCH_Num vnumnbr, /*+ Number of dimensions +*/ const SCOTCH_Num * const vnumtab) { Arch * tgtarchptr; ArchSub * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archSub) ": internal error"); return (2); } tgtarchptr = (Arch *) subarchptr; tgtarchdatptr = (ArchSub *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("sub"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ return (archSubArchBuild (tgtarchdatptr, (Arch *) orgarchptr, (Gnum) vnumnbr, (Gnum *) vnumtab)); } /* ** */ int SCOTCH_archTleaf ( SCOTCH_Arch * const archptr, const SCOTCH_Num levlnbr, /*+ Number of levels in architecture +*/ const SCOTCH_Num * const sizetab, /*+ Size array, by increasing level number +*/ const SCOTCH_Num * const linktab) /*+ Link cost array, by increasing level number +*/ { Anum levlnum; Anum sizeval; Arch * tgtarchptr; ArchTleaf * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archTleaf) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchTleaf *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("tleaf"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ if ((tgtarchdatptr->sizetab = memAlloc ((levlnbr * 2 + 1) * sizeof (Anum))) == NULL) { /* TRICK: One more slot for linktab[-1] */ errorPrint (STRINGIFY (SCOTCH_archTleaf) ": out of memory"); return (1); } tgtarchdatptr->levlnbr = (Anum) levlnbr; tgtarchdatptr->linktab = tgtarchdatptr->sizetab + tgtarchdatptr->levlnbr + 1; tgtarchdatptr->linktab[-1] = 0; /* TRICK: Dummy slot for for level-0 communication */ tgtarchdatptr->permtab = NULL; /* Assume no permutation array */ for (levlnum = 0, sizeval = 1; levlnum < tgtarchdatptr->levlnbr; levlnum ++) { tgtarchdatptr->sizetab[levlnum] = sizetab[levlnum]; tgtarchdatptr->linktab[levlnum] = linktab[levlnum]; sizeval *= tgtarchdatptr->sizetab[levlnum]; } tgtarchdatptr->termnbr = sizeval; return (0); } /* ** */ int SCOTCH_archLtleaf ( SCOTCH_Arch * const archptr, const SCOTCH_Num levlnbr, /*+ Number of levels in architecture +*/ const SCOTCH_Num * const sizetab, /*+ Size array, by increasing level number +*/ const SCOTCH_Num * const linktab, /*+ Link cost array, by increasing level number +*/ const SCOTCH_Num permnbr, /*+ Number of permutation indices +*/ const SCOTCH_Num * const permtab) /*+ Permutation array +*/ { Anum permnum; Arch * tgtarchptr; ArchTleaf * tgtarchdatptr; if (SCOTCH_archTleaf (archptr, levlnbr, sizetab, linktab) != 0) /* Build tree part */ return (1); tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchTleaf *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("ltleaf"); /* Override class */ if ((tgtarchdatptr->permtab = memAlloc (permnbr * 2 * sizeof (Anum))) == NULL) { /* TRICK: space for peritab too */ errorPrint (STRINGIFY (SCOTCH_archLtleaf) ": out of memory"); return (1); } tgtarchdatptr->permnbr = (Anum) permnbr; tgtarchdatptr->peritab = tgtarchdatptr->permtab + permnbr; for (permnum = 0; permnum < tgtarchdatptr->permnbr; permnum ++) tgtarchdatptr->permtab[permnum] = permtab[permnum]; for (permnum = 0; permnum < tgtarchdatptr->permnbr; permnum ++) /* Build inverse permutation */ tgtarchdatptr->peritab[tgtarchdatptr->permtab[permnum]] = permnum; return (0); } /* ** */ int SCOTCH_archTorus2 ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimxval, const SCOTCH_Num dimyval) { Arch * tgtarchptr; ArchTorusX * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archTorus2) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchTorusX *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("torus2D"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = 2; tgtarchdatptr->c[0] = (Anum) dimxval; tgtarchdatptr->c[1] = (Anum) dimyval; return (0); } /* ** */ int SCOTCH_archTorus3 ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimxval, const SCOTCH_Num dimyval, const SCOTCH_Num dimzval) { Arch * tgtarchptr; ArchTorusX * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archTorus3) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchTorusX *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("torus3D"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = 3; tgtarchdatptr->c[0] = (Anum) dimxval; tgtarchdatptr->c[1] = (Anum) dimyval; tgtarchdatptr->c[2] = (Anum) dimzval; return (0); } /* ** */ int SCOTCH_archTorusX ( SCOTCH_Arch * const archptr, const SCOTCH_Num dimnnbr, /*+ Number of dimensions in architecture +*/ const SCOTCH_Num * const dimntab) /*+ Array of dimensions +*/ { Arch * tgtarchptr; ArchTorusX * tgtarchdatptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archTorusX) ": internal error"); return (1); } if (dimnnbr > ARCHMESHDIMNMAX) { errorPrint (STRINGIFY (SCOTCH_archTorusX) ": too many dimensions"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchdatptr = (ArchTorusX *) (void *) (&tgtarchptr->data); tgtarchptr->clasptr = archClass ("torusXD"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ tgtarchdatptr->dimnnbr = dimnnbr; memCpy (tgtarchdatptr->c, dimntab, dimnnbr * sizeof (SCOTCH_Num)); /* Copy dimension array */ return (0); } /* ** */ int SCOTCH_archVcmplt ( SCOTCH_Arch * const archptr) { Arch * tgtarchptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archVcmplt) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchptr->clasptr = archClass ("varcmplt"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ return (0); } /* ** */ int SCOTCH_archVhcub ( SCOTCH_Arch * const archptr) { Arch * tgtarchptr; if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_archVhcub) ": internal error"); return (1); } tgtarchptr = (Arch *) archptr; tgtarchptr->clasptr = archClass ("varhcub"); tgtarchptr->flagval = tgtarchptr->clasptr->flagval; /* Copy architecture flag */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_arch_build.c000066400000000000000000000200771514310134000277070ustar00rootroot00000000000000/* Copyright 2004,2007,2016,2018,2019,2023,2024,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_arch_build.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the target **/ /** architecture building routine of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.3 : from : 02 oct 1998 **/ /** to : 29 mar 1999 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 08 mar 2005 **/ /** to : 17 mar 2005 **/ /** # Version 6.0 : from : 16 mar 2016 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 21 aug 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "arch_build.h" #include "arch_build2.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the C API for */ /* the architecture building routine. */ /* */ /**************************************/ /*+ This routine parses the given *** bipartitioning strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratGraphBipart ( SCOTCH_Strat * const stratptr, const char * const string) { if (*((Strat **) stratptr) != NULL) stratExit (*((Strat **) stratptr)); if ((*((Strat **) stratptr) = stratInit (&bgraphbipartststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratBipart) ": error in bipartitioning strategy"); return (1); } return (0); } /*+ This routine fills the contents of the given *** opaque target structure with the data provided *** by the user. The source graph provided on input *** is turned into a decomposition-defined target *** architecture. *** It returns: *** - 0 : if the computation succeeded. *** - !0 : on error. +*/ int SCOTCH_archBuild0 ( SCOTCH_Arch * const archptr, /*+ Target architecture to build +*/ const SCOTCH_Graph * const libgrafptr, /*+ Graph to turn into architecture +*/ const SCOTCH_Num listnbr, /*+ Number of elements in sublist +*/ const SCOTCH_Num * const listptr, /*+ Pointer to sublist +*/ const SCOTCH_Strat * const stratptr) /*+ Bipartitoning strategy +*/ { Strat * bipstratptr; VertList graflistdat; VertList * graflistptr; CONTEXTDECL (libgrafptr); int o; if ((sizeof (SCOTCH_Num) != sizeof (Gnum)) || (sizeof (SCOTCH_Num) != sizeof (Anum))) { errorPrint (STRINGIFY (SCOTCH_archBuild0) ": internal error"); return (1); } if (*((Strat **) stratptr) == NULL) /* Set default mapping strategy if necessary */ *((Strat **) stratptr) = stratInit (&bgraphbipartststratab, "(m{vert=50,low=h{pass=10},asc=f{move=100,bal=0.1}}f{move=100,bal=0.05})(/((load0=load)|(load0=0))?x;)"); bipstratptr = *((Strat **) stratptr); if (bipstratptr->tablptr != &bgraphbipartststratab) { errorPrint (STRINGIFY (SCOTCH_archBuild0) ": not a bipartitioning strategy"); return (1); } if (CONTEXTINIT (libgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_archBuild0) ": cannot initialize context"); return (1); } if ((listnbr == (((Graph *) CONTEXTGETOBJECT (libgrafptr))->vertnbr)) || (listnbr == 0) || (listptr == NULL)) graflistptr = NULL; else { graflistptr = &graflistdat; graflistdat.vnumnbr = (Gnum) listnbr; graflistdat.vnumtab = (Gnum *) listptr; } o = archDecoArchBuild ((Arch * const) archptr, (Graph *) CONTEXTGETOBJECT (libgrafptr), graflistptr, bipstratptr, CONTEXTGETDATA (libgrafptr)); CONTEXTEXIT (libgrafptr); return (o); } int SCOTCH_archBuild2 ( SCOTCH_Arch * const archptr, /*+ Target architecture to build +*/ const SCOTCH_Graph * const libgrafptr, /*+ Graph to turn into architecture +*/ const SCOTCH_Num vnumnbr, /*+ Number of elements in sublist +*/ const SCOTCH_Num * const vnumtab) /*+ Pointer to sublist +*/ { Gnum vertnbr; Gnum listnbr; Gnum * listtab; CONTEXTDECL (libgrafptr); int o; if ((sizeof (SCOTCH_Num) != sizeof (Gnum)) || (sizeof (SCOTCH_Num) != sizeof (Anum))) { errorPrint (STRINGIFY (SCOTCH_archBuild2) ": internal error"); return (1); } if (CONTEXTINIT (libgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_archBuild2) ": cannot initialize context"); return (1); } vertnbr = ((Graph *) CONTEXTGETOBJECT (libgrafptr))->vertnbr; if ((vnumnbr == vertnbr) || (vnumnbr == 0) || (vnumtab == NULL)) { listnbr = vertnbr; listtab = NULL; } else { listnbr = (Gnum) vnumnbr; listtab = (Gnum *) vnumtab; } o = archDeco2ArchBuild ((Arch * const) archptr, (Graph *) CONTEXTGETOBJECT (libgrafptr), listnbr, listtab, CONTEXTGETDATA (libgrafptr)); CONTEXTEXIT (libgrafptr); return (o); } int SCOTCH_archBuild ( SCOTCH_Arch * const archptr, /*+ Target architecture to build +*/ const SCOTCH_Graph * const grafptr, /*+ Graph to turn into architecture +*/ const SCOTCH_Num listnbr, /*+ Number of elements in sublist +*/ const SCOTCH_Num * const listptr, /*+ Pointer to sublist +*/ const SCOTCH_Strat * const stratptr) /*+ Bipartitoning strategy +*/ { return (SCOTCH_archBuild0 (archptr, grafptr, listnbr, listptr, stratptr)); /* Old-style behavior */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_arch_build_f.c000066400000000000000000000106561514310134000302160ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_arch_build_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the target architecture building **/ /** routine of the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 17 mar 2005 **/ /** to : 17 mar 2005 **/ /** # Version 6.0 : from : 21 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /****************************************/ /* */ /* These routines are the Fortran API */ /* for the target architecture building */ /* routines. */ /* */ /****************************************/ /* ** */ SCOTCH_FORTRAN ( \ STRATGRAPHBIPART, stratgraphbipart, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATGRAPHBIPART)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratGraphBipart (straptr, strtab); /* Call original routine */ memFree (strtab); } /* ** */ SCOTCH_FORTRAN ( \ ARCHBUILD, archbuild, ( \ SCOTCH_Arch * const archptr, \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const listnbr, \ const SCOTCH_Num * const listptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (archptr, grafptr, listnbr, listptr, straptr, revaptr)) { *revaptr = SCOTCH_archBuild (archptr, grafptr, *listnbr, listptr, straptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_arch_dom.c000066400000000000000000000137071514310134000273710ustar00rootroot00000000000000/* Copyright 2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_arch_dom.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Amaury JACQUES (v6.0) **/ /** **/ /** FUNCTION : This module is the API for the target **/ /** architecture domain handling routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 16 apr 2019 **/ /** to : 25 apr 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "scotch.h" /***************************************/ /* */ /* These routines are the C API for */ /* the architecture domain handling */ /* routines. */ /* */ /***************************************/ /*+ This function returns the smallest number *** of terminal domain included within the *** given domain. *** It returns: *** - SCOTCH_Num : in all cases. +*/ SCOTCH_Num SCOTCH_archDomNum ( SCOTCH_Arch * const archptr, const SCOTCH_ArchDom * const domnptr) { return (archDomNum ((Arch * const) archptr, (const ArchDom * const) domnptr)); } /*+ This function computes the terminal domain *** associated with the given terminal number. *** It returns: *** - 0 : if label is valid and domain has been updated. *** - 1 : if label is invalid. *** - 2 : on error. +*/ int SCOTCH_archDomTerm ( SCOTCH_Arch * const archptr, SCOTCH_ArchDom * const domnptr, const SCOTCH_Num domnnum) { return (archDomTerm ((Arch * const) archptr, (ArchDom * const) domnptr, domnnum)); } /*+ This function returns the number *** of elements in the given domain. *** It returns: *** - >0 : size of the domain. *** - 0 : on error. +*/ SCOTCH_Num SCOTCH_archDomSize ( SCOTCH_Arch * const archptr, const SCOTCH_ArchDom * const domnptr) { return (archDomSize ((Arch * const) archptr, (const ArchDom * const) domnptr)); } /*+ This function returns the weight *** of the given domain. *** It returns: *** - >0 : weight of the domain. *** - 0 : on error. +*/ SCOTCH_Num SCOTCH_archDomWght ( SCOTCH_Arch * const archptr, const SCOTCH_ArchDom * const domnptr) { return (archDomWght ((Arch * const) archptr, (const ArchDom * const) domnptr)); } /*+ This function yields the average *** distance between two domains. *** It returns: *** - !-1 : distance between subdomains. *** - -1 : on error. +*/ SCOTCH_Num SCOTCH_archDomDist ( SCOTCH_Arch * const archptr, const SCOTCH_ArchDom * const dom0ptr, const SCOTCH_ArchDom * const dom1ptr) { return (archDomDist ((Arch * const) archptr, (const ArchDom * const) dom0ptr, (const ArchDom * const) dom1ptr)); } /*+ This routine fills the contents of the *** given domain with the biggest domain *** of the given target architecture. *** It returns: *** - 0 : if domain could be created. *** - !0 : on error. +*/ int SCOTCH_archDomFrst ( SCOTCH_Arch * const archptr, SCOTCH_ArchDom * const domnptr) { return (archDomFrst ((Arch * const) archptr, (ArchDom * const) domnptr)); } /*+ This function tries to split a domain into *** two subdomains. The two subdomains are created *** so that subdomain 0 has same T_domNum as *** original domain. *** It returns: *** - 0 : if bipartitioning succeeded. *** - 1 : if bipartitioning could not be performed. *** - 2 : on error. +*/ int SCOTCH_archDomBipart ( SCOTCH_Arch * const archptr, const SCOTCH_ArchDom * const domnptr, SCOTCH_ArchDom * const dom0ptr, SCOTCH_ArchDom * const dom1ptr) { return (archDomBipart ((Arch * const) archptr, (const ArchDom * const) domnptr, (ArchDom * const) dom0ptr, (ArchDom * const) dom1ptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_arch_dom_f.c000066400000000000000000000125071514310134000276730ustar00rootroot00000000000000/* Copyright 2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_arch_dom_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API **/ /** for the target architecture domains **/ /** handling routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 6.0 : from : 16 apr 2019 **/ /** to : 17 apr 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /***********************************/ /* */ /* These routines are the Fortran */ /* API for the architecture domain */ /* handling routines. */ /* */ /***********************************/ /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMNUM, archdomnum, ( \ SCOTCH_Arch * const archptr, \ SCOTCH_ArchDom * const domnptr, \ SCOTCH_Num * const dnumptr), \ (archptr, domnptr, dnumptr)) { *dnumptr = SCOTCH_archDomNum (archptr, domnptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMTERM, archdomterm, ( \ SCOTCH_Arch * const archptr, \ SCOTCH_ArchDom * const domnptr, \ const SCOTCH_Num * const dnumptr, \ int * const revaptr), \ (archptr, domnptr, dnumptr, revaptr)) { *revaptr = SCOTCH_archDomTerm (archptr, domnptr, *dnumptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMSIZE, archdomsize, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_ArchDom * const domnptr, \ SCOTCH_Num * const sizeptr), \ (archptr, domnptr, sizeptr)) { *sizeptr = SCOTCH_archDomSize (archptr, domnptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMWGHT, archdomwght, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_ArchDom * const domnptr, \ SCOTCH_Num * const wghtptr), \ (archptr, domnptr, wghtptr)) { *wghtptr = SCOTCH_archDomWght (archptr, domnptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMDIST, archdomdist, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_ArchDom * const dom0ptr, \ const SCOTCH_ArchDom * const dom1ptr, \ SCOTCH_Num * const distptr), \ (archptr, dom0ptr, dom1ptr, distptr)) { *distptr = SCOTCH_archDomDist (archptr, dom0ptr, dom1ptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMFRST, archdomfrst, ( \ SCOTCH_Arch * const archptr, \ SCOTCH_ArchDom * const domnptr, \ int * const revaptr), \ (archptr, domnptr, revaptr)) { *revaptr = SCOTCH_archDomFrst (archptr, domnptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMBIPART, archdombipart, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_ArchDom * const domnptr, \ SCOTCH_ArchDom * const dom0ptr, \ SCOTCH_ArchDom * const dom1ptr, \ int * const revaptr), \ (archptr, domnptr, dom0ptr, dom1ptr, revaptr)) { *revaptr = SCOTCH_archDomBipart (archptr, domnptr, dom0ptr, dom1ptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_arch_f.c000066400000000000000000000300001514310134000270200ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2011,2015,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_arch_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the architecture handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.4 : from : 02 dec 1999 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 13 jan 2004 **/ /** to : 13 jan 2004 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 13 feb 2011 **/ /** # Version 6.0 : from : 16 apr 2015 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the Fortran */ /* API for the architecture handling */ /* routines. */ /* */ /*************************************/ /* ** */ SCOTCH_FORTRAN ( \ ARCHINIT, archinit, ( \ SCOTCH_Arch * const archptr, \ int * const revaptr), \ (archptr, revaptr)) { *revaptr = SCOTCH_archInit (archptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHEXIT, archexit, ( \ SCOTCH_Arch * const archptr), \ (archptr)) { SCOTCH_archExit (archptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHSIZEOF, archsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_archSizeof (); } /* ** */ SCOTCH_FORTRAN ( \ ARCHDOMSIZEOF, archdomsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_archDomSizeof (); } /* When an input stream is built from the given ** file handle, it is set as unbuffered, so as to ** allow for multiple stream reads from the same ** file handle. If it were buffered, too many ** input characters would be read on the first ** block read. */ SCOTCH_FORTRAN ( \ ARCHLOAD, archload, ( \ SCOTCH_Arch * const archptr, \ int * const fileptr, \ int * const revaptr), \ (archptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (ARCHLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (ARCHLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } setbuf (stream, NULL); /* Do not buffer on input */ o = SCOTCH_archLoad (archptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ ARCHSAVE, archsave, ( \ SCOTCH_Arch * const archptr, \ int * const fileptr, \ int * const revaptr), \ (archptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (ARCHSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (ARCHSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_archSave (archptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ ARCHNAME, archname, ( \ SCOTCH_Arch * const archptr, \ char * const chartab, \ int * const charptr), \ (archptr, chartab, charptr)) { char * nameptr; /* Name string */ nameptr = SCOTCH_archName (archptr); /* Get architecture name */ strncpy (chartab, nameptr, *charptr); /* Copy architecture name */ } /* ** */ SCOTCH_FORTRAN ( \ ARCHSIZE, archsize, ( \ SCOTCH_Arch * const archptr, \ int * const sizeptr), \ (archptr, sizeptr)) { *sizeptr = SCOTCH_archSize (archptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHVAR, archvar, ( \ SCOTCH_Arch * const archptr, \ int * const flagptr), \ (archptr, flagptr)) { *flagptr = SCOTCH_archVar (archptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHCMPLT, archcmplt, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const vertnbr, \ int * const revaptr), \ (archptr, vertnbr, revaptr)) { *revaptr = SCOTCH_archCmplt (archptr, *vertnbr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHCMPLTW, archcmpltw, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const vertnbr, \ const SCOTCH_Num * const velotab, \ int * const revaptr), \ (archptr, vertnbr, velotab, revaptr)) { *revaptr = SCOTCH_archCmpltw (archptr, *vertnbr, velotab); } /* ** */ SCOTCH_FORTRAN ( \ ARCHHCUB, archhcub, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimnmax, \ int * const revaptr), \ (archptr, dimnmax, revaptr)) { *revaptr = SCOTCH_archHcub (archptr, *dimnmax); } /* ** */ SCOTCH_FORTRAN ( \ ARCHMESH2, archmesh2, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimxval, \ const SCOTCH_Num * const dimyval, \ int * const revaptr), \ (archptr, dimxval, dimyval, revaptr)) { *revaptr = SCOTCH_archMesh2 (archptr, *dimxval, *dimyval); } /* ** */ SCOTCH_FORTRAN ( \ ARCHMESH3, archmesh3, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimxval, \ const SCOTCH_Num * const dimyval, \ const SCOTCH_Num * const dimzval, \ int * const revaptr), \ (archptr, dimxval, dimyval, dimzval, revaptr)) { *revaptr = SCOTCH_archMesh3 (archptr, *dimxval, *dimyval, *dimzval); } /* ** */ SCOTCH_FORTRAN ( \ ARCHMESHX, archmeshx, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimnnbr, \ const SCOTCH_Num * const dimntab, \ int * const revaptr), \ (archptr, dimnnbr, dimntab, revaptr)) { *revaptr = SCOTCH_archMeshX (archptr, *dimnnbr, dimntab); } /* ** */ SCOTCH_FORTRAN ( \ ARCHSUB, archsub, ( \ SCOTCH_Arch * const subarchptr, \ SCOTCH_Arch * const orgarchptr, \ const SCOTCH_Num * const vnumnbr, \ const SCOTCH_Num * const vnumtab, \ int * const revaptr), \ (subarchptr, orgarchptr, vnumnbr, vnumtab, revaptr)) { *revaptr = SCOTCH_archSub (subarchptr, orgarchptr, *vnumnbr, vnumtab); } /* ** */ SCOTCH_FORTRAN ( \ ARCHTLEAF, archtleaf, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const levlnbr, \ const SCOTCH_Num * const sizetab, \ const SCOTCH_Num * const linktab, \ int * const revaptr), \ (archptr, levlnbr, sizetab, linktab, revaptr)) { *revaptr = SCOTCH_archTleaf (archptr, *levlnbr, sizetab, linktab); } /* ** */ SCOTCH_FORTRAN ( \ ARCHTORUS2, archtorus2, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimxval, \ const SCOTCH_Num * const dimyval, \ int * const revaptr), \ (archptr, dimxval, dimyval, revaptr)) { *revaptr = SCOTCH_archTorus2 (archptr, *dimxval, *dimyval); } /* ** */ SCOTCH_FORTRAN ( \ ARCHTORUS3, archtorus3, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimxval, \ const SCOTCH_Num * const dimyval, \ const SCOTCH_Num * const dimzval, \ int * const revaptr), \ (archptr, dimxval, dimyval, dimzval, revaptr)) { *revaptr = SCOTCH_archTorus3 (archptr, *dimxval, *dimyval, *dimzval); } /* ** */ SCOTCH_FORTRAN ( \ ARCHTORUSX, archtorusx, ( \ SCOTCH_Arch * const archptr, \ const SCOTCH_Num * const dimnnbr, \ const SCOTCH_Num * const dimntab, \ int * const revaptr), \ (archptr, dimnnbr, dimntab, revaptr)) { *revaptr = SCOTCH_archTorusX (archptr, *dimnnbr, dimntab); } /* ** */ SCOTCH_FORTRAN ( \ ARCHVCMPLT, archvcmplt, ( \ SCOTCH_Arch * const archptr, \ int * const revaptr), \ (archptr, revaptr)) { *revaptr = SCOTCH_archVcmplt (archptr); } /* ** */ SCOTCH_FORTRAN ( \ ARCHVHCUB, archvhcub, ( \ SCOTCH_Arch * const archptr, \ int * const revaptr), \ (archptr, revaptr)) { *revaptr = SCOTCH_archVhcub (archptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_common.c000066400000000000000000000063651514310134000271070ustar00rootroot00000000000000/* Copyright 2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_common.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for some **/ /** miscellaneous routines provided by the **/ /** common files of the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 20 nov 2024 **/ /** to : 20 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the C API for */ /* the miscellaneous common routines. */ /* */ /**************************************/ /*+ This routine returns the amount of *** memory currently in use by the *** libScotch / libPTScotch. *** It returns: *** - >= 0 : in all cases. +*/ SCOTCH_Idx SCOTCH_memCur () { return ((SCOTCH_Idx) memCur ()); } /*+ This routine returns the maximum *** amount of memory used by the *** libScotch / libPTScotch. *** It returns: *** - >= 0 : in all cases. +*/ SCOTCH_Idx SCOTCH_memMax () { return ((SCOTCH_Idx) memMax ()); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_common_f.c000066400000000000000000000065521514310134000274120ustar00rootroot00000000000000/* Copyright 2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_common_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the some miscellaneous routines **/ /** provided by the common files of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 14 jun 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for some miscellaneous routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ MEMCUR, memcur, ( \ SCOTCH_Idx * const memoptr), \ (memoptr)) { *memoptr = SCOTCH_memCur (); } /* ** */ SCOTCH_FORTRAN ( \ MEMMAX, memmax, ( \ SCOTCH_Idx * const memoptr), \ (memoptr)) { *memoptr = SCOTCH_memMax (); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context.c000066400000000000000000000263441514310134000273020ustar00rootroot00000000000000/* Copyright 2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the context **/ /** management routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 7.0 : from : 07 may 2019 **/ /** to : 03 jun 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_thread.h" #include "context.h" #include "library_context.h" #include "scotch.h" /****************************************/ /* */ /* These routines are the C API for */ /* execution context structure handling */ /* routines. */ /* */ /****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** context structure. *** It returns: *** - !NULL : if the initialization succeeded. *** - NULL : on error. +*/ SCOTCH_Context * SCOTCH_contextAlloc () { return ((SCOTCH_Context *) memAlloc (sizeof (SCOTCH_Context))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Context structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_contextSizeof () { return (sizeof (SCOTCH_Context)); } /*+ This routine initializes the opaque *** graph structure used to handle graphs *** in the Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_contextInit ( SCOTCH_Context * const libcontptr) { Context * const contptr = (Context *) libcontptr; if (sizeof (SCOTCH_Context) < sizeof (Context)) { errorPrint (STRINGIFY (SCOTCH_contextInit) ": internal error"); return (1); } contextInit (contptr); if (contextOptionsInit (contptr)) { errorPrint (STRINGIFY (SCOTCH_contextInit) ": cannot create option array"); return (1); } return (0); } /*+ This routine frees the contents of the *** given opaque context structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_contextExit ( SCOTCH_Context * const libcontptr) { contextExit ((Context *) libcontptr); } /************************************/ /* */ /* These routines handle the random */ /* generator features of contexts. */ /* */ /************************************/ /*+ This routine creates a clone of the default *** pseudo-random in its current state and places *** it in the given context. *** It returns: *** - 0 : if the cloning succeeded. *** - !0 : on error. +*/ int SCOTCH_contextRandomClone ( SCOTCH_Context * const libcontptr) { return (contextRandomClone ((Context *) libcontptr)); } /*+ This routine resets the random generator *** of the given context, to simulate a start *** from scratch. *** It returns: *** - void : in all cases. +*/ void SCOTCH_contextRandomReset ( SCOTCH_Context * const libcontptr) { intRandReset (((Context *) libcontptr)->randptr); } /*+ This routine sets the value of the *** random seed. *** It returns: *** - void : in all cases. +*/ void SCOTCH_contextRandomSeed ( SCOTCH_Context * const libcontptr, const SCOTCH_Num seedval) { intRandSeed (((Context *) libcontptr)->randptr, seedval); } /************************************/ /* */ /* These routines handle the thread */ /* features of contexts. */ /* */ /************************************/ /*+ This routine, called by the master thread of *** a thread pool, initiates the environment to *** capture this thread pool within the given *** opaque context structure. *** It returns: *** - 0 : if thread context prepared. *** - !0 : on error. +*/ int SCOTCH_contextThreadImport1 ( SCOTCH_Context * const libcontptr, const int thrdnbr) { Context * restrict const contptr = (Context *) libcontptr; if (contptr->thrdptr != NULL) { errorPrint (STRINGIFY (SCOTCH_contextThreadImport1) ": thread context already allocated"); return (1); } if ((contptr->thrdptr = memAlloc (sizeof (ThreadContext))) == NULL) { errorPrint (STRINGIFY (SCOTCH_contextThreadImport1) ": out of memory"); return (1); } threadContextImport1 (contptr->thrdptr, thrdnbr); return (0); } /*+ This routine, called by all the threads of *** a thread pool, captures the slave threads *** and yields back control to the master thread. *** It returns: *** - 0 : if thread context finalized. *** - !0 : on error. +*/ int SCOTCH_contextThreadImport2 ( SCOTCH_Context * const libcontptr, const int thrdnum) { Context * restrict const contptr = (Context *) libcontptr; if (contptr->thrdptr == NULL) { errorPrint (STRINGIFY (SCOTCH_contextThreadImport2) ": thread context not allocated"); return (1); } threadContextImport2 (contptr->thrdptr, thrdnum); return (0); } /*+ This routine creates a thread context with *** the given number of threads, possibly mapped *** onto the given set of cores. *** It returns: *** - 0 : if thread context created. *** - !0 : on error. +*/ int SCOTCH_contextThreadSpawn ( SCOTCH_Context * const libcontptr, const int thrdnbr, const int * const coretab) { return (contextThreadInit2 ((Context *) libcontptr, thrdnbr, ((void *) coretab == (void *) &thrdnbr) ? NULL : coretab)); } /*********************************/ /* */ /* These routines handle context */ /* options. */ /* */ /*********************************/ /*+ This routine gets an interger option value *** from the given context. *** It returns: *** - 0 : if the value was obtained. *** - !0 : invalid option number. +*/ int SCOTCH_contextOptionGetNum ( SCOTCH_Context * const libcontptr, const int optinum, SCOTCH_Num * const optiptr) { return (contextValuesGetInt ((Context *) libcontptr, optinum, optiptr)); } /*+ This routine sets an interger option value *** in the given context. *** It returns: *** - 0 : if the value was set. *** - !0 : on error. +*/ int SCOTCH_contextOptionSetNum ( SCOTCH_Context * const libcontptr, const int optinum, const SCOTCH_Num optival) { SCOTCH_Num optitmp; /* Working option value */ int o; optitmp = optival; /* Set working value */ o = 0; /* Assume no error */ switch (optival) { case CONTEXTOPTIONNUMRANDOMFIXEDSEED : if (optitmp != 0) optitmp = 1; /* Only two values available */ break; case CONTEXTOPTIONNUMDETERMINISTIC : if (optitmp != 0) { optitmp = 1; /* Only two values available */ o = contextValuesSetInt ((Context *) libcontptr, CONTEXTOPTIONNUMRANDOMFIXEDSEED, 1); /* If deterministic behavior wanted, use fixed random seed */ } break; default : errorPrint (STRINGIFY (SCOTCH_contextOptionSetNum) ": invalid option name"); return (1); } return (o || contextValuesSetInt ((Context *) libcontptr, optinum, optitmp)); } /*+ This routine parses a context option *** string and sets the option values of *** the given context accordingly. *** It returns: *** - 0 : if the string was properly parsed. *** - !0 : on error. +*/ static ContextOptionArg contextOptionTab[] = { { 'd', CONTEXTOPTIONNUMDETERMINISTIC, 1 }, { 'u', CONTEXTOPTIONNUMDETERMINISTIC, 0 }, { 'f', CONTEXTOPTIONNUMRANDOMFIXEDSEED, 1 }, { 'r', CONTEXTOPTIONNUMRANDOMFIXEDSEED, 0 }, { '\0', -1, -1 } }; int SCOTCH_contextOptionParse ( SCOTCH_Context * const libcontptr, const char * parastr) { const char * paraptr; for (paraptr = parastr; *paraptr != '\0'; ) { char paraval; ContextOptionArg * restrict argsptr; while (isspace (paraval = *paraptr)) /* Advance to next selector */ paraptr ++; if (! isalpha (paraval)) { errorPrint (STRINGIFY (SCOTCH_contextOptionParse) ": invalid syntax before \"%s\"", paraptr); return (1); } for (argsptr = contextOptionTab; argsptr->nameval != '\0'; argsptr ++) { if (argsptr->nameval == paraval) /* If parameter name found */ break; } if (argsptr->nameval == '\0') { /* If parameter name not found */ errorPrint (STRINGIFY (SCOTCH_contextOptionParse) ": invalid parameter name before \"%s\"", paraptr); return (1); } SCOTCH_contextOptionSetNum (libcontptr, argsptr->vtypidx, argsptr->vtypval); /* Set options value */ paraptr ++; /* Skip parameter name */ while (isspace (paraval = *paraptr)) /* Advance to next selector */ paraptr ++; if (paraval == '\0') /* If string completed, exit loop */ break; if (paraval == ',') /* Skip comma separator */ paraptr ++; } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context.h000066400000000000000000000055241514310134000273040ustar00rootroot00000000000000/* Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the context handling routines. **/ /** **/ /** DATES : # Version 7.0 : from : 10 oct 2021 **/ /** to : 10 oct 2021 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ The context parsing fields structure. +*/ typedef struct ContextOptionArg_ { char nameval; /*+ Name of the argument +*/ int vtypidx; /*+ Index of value to update in value type +*/ INT vtypval; /*+ Value to set for index +*/ } ContextOptionArg; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_dgraph.c000066400000000000000000000104211514310134000306140ustar00rootroot00000000000000/* Copyright 2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_dgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the context **/ /** management routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 7.0 : from : 27 aug 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for */ /* execution context structure handling */ /* routines. */ /* */ /****************************************/ /*+ This routine binds a context to a graph. *** It returns: *** - 0 : if the binding succeeded. *** - !0 : on error. +*/ int SCOTCH_contextBindDgraph ( SCOTCH_Context * restrict const libcontptr, const SCOTCH_Dgraph * restrict const orggrafptr, SCOTCH_Dgraph * restrict const cntgrafptr) { ContextContainer * restrict const cocoptr = (ContextContainer *) cntgrafptr; Context * restrict const contptr = (Context *) libcontptr; Dgraph * restrict const grafptr = (Dgraph *) orggrafptr; if (sizeof (SCOTCH_Dgraph) < sizeof (ContextContainer)) { errorPrint (STRINGIFY (SCOTCH_contextBindDgraph) ": internal error"); return (1); } #ifdef SCOTCH_DEBUG_LIBRARY1 if (grafptr == NULL) { errorPrint (STRINGIFY (SCOTCH_contextBindDgraph) ": invalid graph"); return (1); } if ((grafptr->flagval & CONTEXTCONTAINERTYPE) != 0) { errorPrint (STRINGIFY (SCOTCH_contextBindDgraph) ": cannot bind to a container"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (contextCommit (contptr) != 0) { errorPrint (STRINGIFY (SCOTCH_contextBindDgraph) ": cannot commit context"); return (1); } memSet (cocoptr, 0, sizeof (SCOTCH_Dgraph)); /* Bind context to distributed graph */ cocoptr->flagval = CONTEXTCONTAINERTYPE; cocoptr->contptr = contptr; cocoptr->dataptr = grafptr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_dgraph_f.c000066400000000000000000000063101514310134000311230ustar00rootroot00000000000000/* Copyright 2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_dgraph_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the context handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 23 aug 2020 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the context handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ CONTEXTBINDDGRAPH, contextbinddgraph, ( \ SCOTCH_Context * const contptr, \ const SCOTCH_Dgraph * const orggrafptr, \ SCOTCH_Dgraph * const cntgrafptr, \ int * const revaptr), \ (contptr, orggrafptr, cntgrafptr, revaptr)) { *revaptr = SCOTCH_contextBindDgraph (contptr, orggrafptr, cntgrafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_f.c000066400000000000000000000140121514310134000275740ustar00rootroot00000000000000/* Copyright 2020,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the context handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 22 aug 2020 **/ /** to : 03 jun 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the context handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ CONTEXTINIT, contextinit, ( \ SCOTCH_Context * const contptr, \ int * const revaptr), \ (contptr, revaptr)) { *revaptr = SCOTCH_contextInit (contptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTEXIT, contextexit, ( \ SCOTCH_Context * const contptr), \ (contptr)) { SCOTCH_contextExit (contptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTSIZEOF, contextsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_contextSizeof (); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTRANDOMCLONE, contextrandomclone, ( \ SCOTCH_Context * const contptr, \ int * const revaptr), \ (contptr, revaptr)) { *revaptr = SCOTCH_contextRandomClone (contptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTRANDOMRESET, contextrandomreset, ( \ SCOTCH_Context * const contptr), \ (contptr)) { SCOTCH_contextRandomReset (contptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTRANDOMSEED, contextrandomseed, ( \ SCOTCH_Context * const contptr, \ SCOTCH_Num * const seedptr), \ (contptr, seedptr)) { SCOTCH_contextRandomSeed (contptr, *seedptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTTHREADIMPORT1, contextthreadimport1, ( \ SCOTCH_Context * const contptr, \ int * const thrdptr, \ int * const revaptr), \ (contptr, thrdptr, revaptr)) { *revaptr = SCOTCH_contextThreadImport1 (contptr, *thrdptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTTHREADIMPORT2, contextthreadimport2, ( \ SCOTCH_Context * const contptr, \ int * const thrdptr, \ int * const revaptr), \ (contptr, thrdptr, revaptr)) { *revaptr = SCOTCH_contextThreadImport2 (contptr, *thrdptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTTHREADSPAWN, contextthreadspawn, ( \ SCOTCH_Context * const contptr, \ int * const thrdptr, \ const int * const coreptr, \ int * const revaptr), \ (contptr, thrdptr, coreptr, revaptr)) { *revaptr = SCOTCH_contextThreadSpawn (contptr, *thrdptr, ((void *) coreptr == (void *) contptr) ? NULL : coreptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTOPTIONGETNUM, contextoptiongetnum, ( \ SCOTCH_Context * const contptr, \ const int * const optinumptr, \ SCOTCH_Num * const optivalptr, \ int * const revaptr), \ (contptr, optinumptr, optivalptr, revaptr)) { *revaptr = SCOTCH_contextOptionGetNum (contptr, *optinumptr, optivalptr); } /* ** */ SCOTCH_FORTRAN ( \ CONTEXTOPTIONSETNUM, contextoptionsetnum, ( \ SCOTCH_Context * const contptr, \ const int * const optinumptr, \ SCOTCH_Num * const optivalptr, \ int * const revaptr), \ (contptr, optinumptr, optivalptr, revaptr)) { *revaptr = SCOTCH_contextOptionSetNum (contptr, *optinumptr, *optivalptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_graph.c000066400000000000000000000103651514310134000304570ustar00rootroot00000000000000/* Copyright 2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the context **/ /** management routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 7.0 : from : 25 aug 2019 **/ /** to : 24 oct 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "scotch.h" /****************************************/ /* */ /* These routines are the C API for */ /* execution context structure handling */ /* routines. */ /* */ /****************************************/ /*+ This routine binds a context to a graph. *** It returns: *** - 0 : if the binding succeeded. *** - !0 : on error. +*/ int SCOTCH_contextBindGraph ( SCOTCH_Context * restrict const libcontptr, const SCOTCH_Graph * restrict const orggrafptr, SCOTCH_Graph * restrict const cntgrafptr) { ContextContainer * restrict const cocoptr = (ContextContainer *) cntgrafptr; Context * restrict const contptr = (Context *) libcontptr; Graph * restrict const grafptr = (Graph *) orggrafptr; if (sizeof (SCOTCH_Graph) < sizeof (ContextContainer)) { errorPrint (STRINGIFY (SCOTCH_contextBindGraph) ": internal error"); return (1); } #ifdef SCOTCH_DEBUG_LIBRARY1 if (grafptr == NULL) { errorPrint (STRINGIFY (SCOTCH_contextBindGraph) ": invalid graph"); return (1); } if ((grafptr->flagval & CONTEXTCONTAINERTYPE) != 0) { errorPrint (STRINGIFY (SCOTCH_contextBindGraph) ": cannot bind to a container"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (contextCommit (contptr) != 0) { errorPrint (STRINGIFY (SCOTCH_contextBindGraph) ": cannot commit context"); return (1); } memSet (cocoptr, 0, sizeof (SCOTCH_Graph)); /* Bind context to graph */ cocoptr->flagval = CONTEXTCONTAINERTYPE; cocoptr->contptr = contptr; cocoptr->dataptr = grafptr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_graph_f.c000066400000000000000000000063051514310134000307630ustar00rootroot00000000000000/* Copyright 2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_graph_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the context handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 22 aug 2020 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the context handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ CONTEXTBINDGRAPH, contextbindgraph, ( \ SCOTCH_Context * const contptr, \ const SCOTCH_Graph * const orggrafptr, \ SCOTCH_Graph * const cntgrafptr, \ int * const revaptr), \ (contptr, orggrafptr, cntgrafptr, revaptr)) { *revaptr = SCOTCH_contextBindGraph (contptr, orggrafptr, cntgrafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_mesh.c000066400000000000000000000103751514310134000303130ustar00rootroot00000000000000/* Copyright 2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_mesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the context **/ /** management routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 7.0 : from : 13 sep 2019 **/ /** to : 24 oct 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "mesh.h" #include "scotch.h" /****************************************/ /* */ /* These routines are the C API for */ /* execution context structure handling */ /* routines. */ /* */ /****************************************/ /*+ This routine binds a context to a mesh. *** It returns: *** - 0 : if the binding succeeded. *** - !0 : on error. +*/ int SCOTCH_contextBindMesh ( SCOTCH_Context * restrict const libcontptr, const SCOTCH_Mesh * restrict const orgmeshptr, SCOTCH_Mesh * restrict const cntmeshptr) { ContextContainer * restrict const cocoptr = (ContextContainer *) cntmeshptr; Context * restrict const contptr = (Context *) libcontptr; Mesh * restrict const meshptr = (Mesh *) orgmeshptr; if (sizeof (SCOTCH_Mesh) < sizeof (ContextContainer)) { errorPrint (STRINGIFY (SCOTCH_contextBindMesh) ": internal error"); return (1); } #ifdef SCOTCH_DEBUG_LIBRARY1 if (meshptr == NULL) { errorPrint (STRINGIFY (SCOTCH_contextBindMesh) ": invalid mesh"); return (1); } if ((meshptr->flagval & CONTEXTCONTAINERTYPE) != 0) { errorPrint (STRINGIFY (SCOTCH_contextBindMesh) ": cannot bind to a container"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (contextCommit (contptr) != 0) { errorPrint (STRINGIFY (SCOTCH_contextBindMesh) ": cannot commit context"); return (1); } memSet (cocoptr, 0, sizeof (SCOTCH_Mesh)); /* Bind context to mesh */ cocoptr->flagval = CONTEXTCONTAINERTYPE; cocoptr->contptr = contptr; cocoptr->dataptr = meshptr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_context_mesh_f.c000066400000000000000000000063041514310134000306150ustar00rootroot00000000000000/* Copyright 2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_context_mesh_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the context handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 23 aug 2020 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the context handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ CONTEXTBINDMESH, contextbindmesh, ( \ SCOTCH_Context * const contptr, \ const SCOTCH_Mesh * const orgmeshptr, \ SCOTCH_Mesh * const cntmeshptr, \ int * const revaptr), \ (contptr, orgmeshptr, cntmeshptr, revaptr)) { *revaptr = SCOTCH_contextBindMesh (contptr, orgmeshptr, cntmeshptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph.c000066400000000000000000000225221514310134000270550ustar00rootroot00000000000000/* Copyright 2007,2009,2010,2012,2018-2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 26 apr 2006 **/ /** to : 14 apr 2008 **/ /** # Version 5.1 : from : 26 mar 2009 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 27 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" /* For graphPtscotch() */ #include "dgraph.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed graph handling routines. */ /* */ /****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Dgraph structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Dgraph * SCOTCH_dgraphAlloc () { return ((SCOTCH_Dgraph *) memAlloc (sizeof (SCOTCH_Dgraph))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Dgraph structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_dgraphSizeof () { return (sizeof (SCOTCH_Dgraph)); } /*+ This routine initializes the opaque *** distributed graph structure used to *** handle distributed graphs in the *** Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphInit ( SCOTCH_Dgraph * const grafptr, MPI_Comm proccomm) /* Communicator to be used for all communications */ { #ifdef SCOTCH_DEBUG_DGRAPH2 if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_dgraphInit) ": internal error (1)"); return (1); } if (sizeof (SCOTCH_Dgraph) < sizeof (Dgraph)) { errorPrint (STRINGIFY (SCOTCH_dgraphInit) ": internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (dgraphInit ((Dgraph *) grafptr, proccomm)); } /*+ This routine frees the contents of the *** given opaque graph structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphExit ( SCOTCH_Dgraph * const grafptr) { if (! contextContainerTrue (grafptr)) dgraphExit ((Dgraph *) grafptr); } /*+ This routine frees the contents of the *** given opaque graph structure but does *** not free its private data. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphFree ( SCOTCH_Dgraph * const grafptr) { if (! contextContainerTrue (grafptr)) dgraphFree ((Dgraph *) grafptr); } /*+ This routine accesses graph size data. *** NULL pointers on input indicate unwanted *** data. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphSize ( const SCOTCH_Dgraph * const libgrafptr, SCOTCH_Num * const vertglbnbr, SCOTCH_Num * const vertlocnbr, SCOTCH_Num * const edgeglbnbr, SCOTCH_Num * const edgelocnbr) { const Dgraph * const srcgrafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); if (vertglbnbr != NULL) *vertglbnbr = (SCOTCH_Num) (srcgrafptr->vertglbnbr); if (vertlocnbr != NULL) *vertlocnbr = (SCOTCH_Num) (srcgrafptr->vertlocnbr); if (edgeglbnbr != NULL) *edgeglbnbr = (SCOTCH_Num) srcgrafptr->edgeglbnbr; if (edgelocnbr != NULL) *edgelocnbr = (SCOTCH_Num) srcgrafptr->edgelocnbr; } /*+ This routine accesses all of the graph data. *** NULL pointers on input indicate unwanted *** data. NULL pointers on output indicate *** unexisting arrays. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphData ( const SCOTCH_Dgraph * const libgrafptr, /* Graph structure to read */ SCOTCH_Num * const baseptr, /* Base value */ SCOTCH_Num * const vertglbptr, /* Number of global vertices */ SCOTCH_Num * const vertlocptr, /* Number of local vertices */ SCOTCH_Num * const vertlocptz, /* Maximum number of local vertices */ SCOTCH_Num * const vertgstptr, /* Number of local + ghost vertices */ SCOTCH_Num ** const vertloctab, /* Vertex array [vertnbr+1] */ SCOTCH_Num ** const vendloctab, /* Vertex array [vertnbr] */ SCOTCH_Num ** const veloloctab, /* Vertex load array */ SCOTCH_Num ** const vlblloctab, /* Vertex label array */ SCOTCH_Num * const edgeglbptr, /* Number of global edges (arcs) */ SCOTCH_Num * const edgelocptr, /* Number of local edges (arcs) */ SCOTCH_Num * const edgelocptz, /* Size of local edge array */ SCOTCH_Num ** const edgeloctab, /* Local edge array [edgelocsiz] */ SCOTCH_Num ** const edgegsttab, /* Ghost edge array [edgelocsiz] */ SCOTCH_Num ** const edloloctab, /* Edge load array [edgelocsiz] */ MPI_Comm * const commptr) /* MPI Communicator */ { const Dgraph * const srcgrafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); if (baseptr != NULL) *baseptr = srcgrafptr->baseval; if (vertglbptr != NULL) *vertglbptr = srcgrafptr->vertglbnbr; if (vertlocptr != NULL) *vertlocptr = srcgrafptr->vertlocnbr; if (vertlocptz != NULL) *vertlocptz = srcgrafptr->procvrttab[srcgrafptr->proclocnum + 1] - srcgrafptr->procvrttab[srcgrafptr->proclocnum]; if (vertgstptr != NULL) *vertgstptr = ((srcgrafptr->flagval & DGRAPHHASEDGEGST) != 0) ? srcgrafptr->vertgstnbr : -1; if (vertloctab != NULL) *vertloctab = srcgrafptr->vertloctax + srcgrafptr->baseval; if (vendloctab != NULL) *vendloctab = srcgrafptr->vendloctax + srcgrafptr->baseval; if (veloloctab != NULL) *veloloctab = (srcgrafptr->veloloctax != NULL) ? srcgrafptr->veloloctax + srcgrafptr->baseval : NULL; if (vlblloctab != NULL) *vlblloctab = (srcgrafptr->vlblloctax != NULL) ? srcgrafptr->vlblloctax + srcgrafptr->baseval : NULL; if (edgeglbptr != NULL) *edgeglbptr = srcgrafptr->edgeglbnbr; if (edgelocptr != NULL) *edgelocptr = srcgrafptr->edgelocnbr; if (edgelocptz != NULL) *edgelocptz = srcgrafptr->edgelocsiz; if (edgeloctab != NULL) *edgeloctab = srcgrafptr->edgeloctax + srcgrafptr->baseval; if (edgegsttab != NULL) *edgegsttab = (srcgrafptr->edgegsttax != NULL) ? srcgrafptr->edgegsttax + srcgrafptr->baseval : NULL; if (edloloctab != NULL) *edloloctab = (srcgrafptr->edloloctax != NULL) ? srcgrafptr->edloloctax + srcgrafptr->baseval : NULL; if (commptr != NULL) *commptr = srcgrafptr->proccomm; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_band.c000066400000000000000000000407331514310134000300450ustar00rootroot00000000000000/* Copyright 2011,2012,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_band.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted band graph building routine of **/ /** the libScotch library. **/ /** **/ /** DATES : # Version 6.0 : from : 28 oct 2011 **/ /** to : 21 may 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dgraph_halo.h" #include "ptscotch.h" #define DGRAPHBANDGROWNAME dgraphBand2 #include "dgraph_band_grow.h" /************************************/ /* */ /* These routines are the C API for */ /* the mapping routines. */ /* */ /************************************/ /*+ This routine builds a distributed *** band graph, without anchors, from the *** given distributed graph. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphBand ( SCOTCH_Dgraph * const orggrafptr, const SCOTCH_Num fronlocnbr, SCOTCH_Num * const fronloctab, const SCOTCH_Num distval, SCOTCH_Dgraph * const bndgrafptr) { Gnum bandvertlocnnd; /* End of local band vertex array */ Gnum bandvertlocnbr; /* Number of local band vertices */ Gnum bandvertlvlnum; /* Index of first band vertex belonging to last level */ Gnum * restrict bandvertloctax; Gnum bandvertlocadj; /* Ajust value for local-to-global band vertex indices */ Gnum bandvertlocnum; Gnum * restrict bandveloloctax; Gnum bandvelolocnbr; Gnum bandvelolocsum; Gnum * restrict bandedgeloctax; Gnum bandedgelocnum; Gnum bandedgelocsiz; /* Number of local edges in band graph */ Gnum * restrict bandedloloctax; Gnum bandedlolocsiz; /* Size of local band edge load array */ Gnum bandvnumgstsiz; Gnum * restrict bandvnumgsttax; /* Indices of selected band vertices in band graph */ Gnum * restrict bandvlblloctax; Gnum banddegrlocmax; Dgraph * restrict grafptr; const Gnum * restrict vertloctax; const Gnum * restrict vendloctax; const Gnum * restrict vlblloctax; const Gnum * restrict veloloctax; const Gnum * restrict edloloctax; Gnum vertlocadj; const Gnum * restrict edgegsttax; SCOTCH_Num * fronloctax; int cheklocval; int procngbnum; CONTEXTDECL (orggrafptr); int o; Dgraph * restrict const bandgrafptr = (Dgraph *) CONTEXTOBJECT (bndgrafptr); o = 1; /* Assume an error */ if (CONTEXTINIT (orggrafptr)) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": cannot initialize context"); goto abort; } grafptr = (Dgraph *) CONTEXTGETOBJECT (orggrafptr); #ifdef SCOTCH_DEBUG_LIBRARY1 MPI_Comm_compare (grafptr->proccomm, bandgrafptr->proccomm, &o); if ((o != MPI_IDENT) && (o != MPI_CONGRUENT)) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": communicators are not congruent"); goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (dgraphGhst (grafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": cannot compute ghost edge array"); goto abort; } cheklocval = 0; bandvnumgstsiz = MAX ((grafptr->vertgstnbr * sizeof (Gnum)), (grafptr->procglbnbr * sizeof (int))); /* TRICK: re-use array for further error collective communications */ if ((bandvnumgsttax = memAlloc (bandvnumgstsiz)) == NULL) errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": out of memory (1)"); /* Error will be propagated by dgraphBand2*() */ else { memSet (bandvnumgsttax, ~0, grafptr->vertgstnbr * sizeof (Gnum)); /* Reset part array */ bandvnumgsttax -= grafptr->baseval; } if ((((grafptr->flagval & DGRAPHCOMMPTOP) != 0) ? dgraphBand2Ptop : dgraphBand2Coll) (grafptr, fronlocnbr, fronloctab, distval, bandvnumgsttax, &bandvertlvlnum, &bandvertlocnbr, &bandedgelocsiz, CONTEXTGETDATA (orggrafptr)) != 0) { if (bandvnumgsttax != NULL) memFree (bandvnumgsttax + grafptr->baseval); goto abort; } vertloctax = grafptr->vertloctax; vendloctax = grafptr->vendloctax; vlblloctax = grafptr->vlblloctax; veloloctax = grafptr->veloloctax; edloloctax = grafptr->edloloctax; bandvelolocnbr = (veloloctax != NULL) ? bandvertlocnbr : 0; bandedlolocsiz = (edloloctax != NULL) ? bandedgelocsiz : 0; bandgrafptr->flagval |= (DGRAPHFREEALL ^ DGRAPHFREECOMM) | DGRAPHVERTGROUP | DGRAPHEDGEGROUP; /* Arrays created by the routine itself */ bandgrafptr->baseval = grafptr->baseval; cheklocval = 0; if (memAllocGroup ((void **) (void *) /* Allocate distributed graph private data */ &bandgrafptr->procdsptab, (size_t) ((grafptr->procglbnbr + 1) * sizeof (Gnum)), &bandgrafptr->proccnttab, (size_t) (grafptr->procglbnbr * sizeof (Gnum)), &bandgrafptr->procngbtab, (size_t) (grafptr->procglbnbr * sizeof (int)), &bandgrafptr->procrcvtab, (size_t) (grafptr->procglbnbr * sizeof (int)), &bandgrafptr->procsndtab, (size_t) (grafptr->procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": out of memory (2)"); cheklocval = 1; } else if (memAllocGroup ((void **) (void *) /* Allocate distributed graph public data */ &bandgrafptr->vertloctax, (size_t) ((bandvertlocnbr + 1) * sizeof (Gnum)), /* Compact vertex array */ &bandvlblloctax, (size_t) (bandvertlocnbr * sizeof (Gnum)), &bandveloloctax, (size_t) (bandvelolocnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": out of memory (3)"); cheklocval = 1; } else if (bandgrafptr->vertloctax -= bandgrafptr->baseval, bandvlblloctax -= bandgrafptr->baseval, bandveloloctax = (veloloctax != NULL) ? (bandveloloctax - bandgrafptr->baseval) : NULL, (memAllocGroup ((void **) (void *) &bandedgeloctax, (size_t) (bandedgelocsiz * sizeof (Gnum)), &bandedloloctax, (size_t) (bandedlolocsiz * sizeof (Gnum)), NULL) == NULL)) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": out of memory (4)"); cheklocval = 1; } else { bandedgeloctax -= bandgrafptr->baseval; bandedloloctax = (edloloctax != NULL) ? (bandedloloctax - bandgrafptr->baseval) : NULL; } if (cheklocval != 0) { /* In case of memory error */ bandgrafptr->procdsptab[0] = -1; if (MPI_Allgather (&bandgrafptr->procdsptab[0], 1, GNUM_MPI, /* Send received data to dummy array */ bandvnumgsttax + bandgrafptr->baseval, 1, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": communication error (2)"); goto abort; } dgraphExit (bandgrafptr); memFree (bandvnumgsttax + bandgrafptr->baseval); goto abort; } else { bandgrafptr->procdsptab[0] = bandvertlocnbr; if (MPI_Allgather (&bandgrafptr->procdsptab[0], 1, GNUM_MPI, &bandgrafptr->procdsptab[1], 1, GNUM_MPI, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": communication error (3)"); goto abort; } } bandgrafptr->procdsptab[0] = bandgrafptr->baseval; /* Build vertex-to-process array */ #ifdef SCOTCH_DEBUG_DGRAPH2 memSet (bandvlblloctax + bandgrafptr->baseval, ~0, (bandvertlocnbr * sizeof (Gnum))); #endif /* SCOTCH_DEBUG_DGRAPH2 */ for (procngbnum = 1; procngbnum <= grafptr->procglbnbr; procngbnum ++) { /* Process potential error flags from other processes */ if (bandgrafptr->procdsptab[procngbnum] < 0) { /* If error notified by another process */ dgraphExit (bandgrafptr); memFree (bandvnumgsttax + bandgrafptr->baseval); goto abort; } bandgrafptr->procdsptab[procngbnum] += bandgrafptr->procdsptab[procngbnum - 1]; bandgrafptr->proccnttab[procngbnum - 1] = bandgrafptr->procdsptab[procngbnum] - bandgrafptr->procdsptab[procngbnum - 1]; } fronloctax = fronloctab - bandgrafptr->baseval; for (vertlocadj = grafptr->procvrttab[grafptr->proclocnum] - grafptr->baseval, bandvertlocnum = bandgrafptr->baseval, bandvertlocnnd = bandvertlocnbr + bandgrafptr->baseval, bandvertlocadj = bandgrafptr->procdsptab[grafptr->proclocnum] - bandgrafptr->baseval; bandvertlocnum < bandvertlocnnd; bandvertlocnum ++) { /* Turn all kept graph vertices into band graph vertices */ Gnum vertlocnum; vertlocnum = fronloctax[bandvertlocnum]; bandvlblloctax[bandvertlocnum] = (vlblloctax == NULL) ? (vertlocnum + vertlocadj) : vlblloctax[vertlocnum]; bandvnumgsttax[vertlocnum] += bandvertlocadj; /* Turn local indices in band graph into global indices */ } if (dgraphHaloSync (grafptr, (byte *) (bandvnumgsttax + bandgrafptr->baseval), GNUM_MPI) != 0) { /* Share global indexing of halo vertices */ errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": cannot perform halo exchange"); goto abort; } edgegsttax = grafptr->edgegsttax; bandvertloctax = bandgrafptr->vertloctax; bandvelolocsum = 0; banddegrlocmax = 0; for (bandvertlocnum = bandedgelocnum = bandgrafptr->baseval; /* Build global vertex array of band graph */ bandvertlocnum < bandvertlvlnum; bandvertlocnum ++) { /* For all vertices save for the last level */ Gnum vertlocnum; Gnum edgelocnum; Gnum degrval; vertlocnum = bandvlblloctax[bandvertlocnum] - vertlocadj; bandvertloctax[bandvertlocnum] = bandedgelocnum; if (veloloctax != NULL) { Gnum veloval; veloval = veloloctax[vertlocnum]; bandvelolocsum += veloval; bandveloloctax[bandvertlocnum] = veloval; } degrval = vendloctax[vertlocnum] - vertloctax[vertlocnum]; if (banddegrlocmax < degrval) banddegrlocmax = degrval; for (edgelocnum = vertloctax[vertlocnum]; /* For all original edges */ edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { #ifdef SCOTCH_DEBUG_DGRAPH2 if (bandvnumgsttax[edgegsttax[edgelocnum]] == ~0) { /* All ends should belong to the band graph too */ errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": internal error (1)"); goto abort; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ bandedgeloctax[bandedgelocnum ++] = bandvnumgsttax[edgegsttax[edgelocnum]]; } } for ( ; bandvertlocnum < bandvertlocnnd; bandvertlocnum ++) { /* For all vertices that belong to the last level */ Gnum vertlocnum; Gnum edgelocnum; Gnum degrval; vertlocnum = bandvlblloctax[bandvertlocnum] - vertlocadj; bandvertloctax[bandvertlocnum] = bandedgelocnum; if (veloloctax != NULL) { Gnum veloval; veloval = veloloctax[vertlocnum]; bandvelolocsum += veloval; bandveloloctax[bandvertlocnum] = veloval; } for (edgelocnum = vertloctax[vertlocnum]; /* For all original edges */ edgelocnum < vendloctax[vertlocnum]; edgelocnum ++) { Gnum bandvertlocend; bandvertlocend = bandvnumgsttax[edgegsttax[edgelocnum]]; if (bandvertlocend != ~0) { /* If end vertex belongs to band graph */ if (bandedloloctax != NULL) /* If graph has edge weights, copy load */ bandedloloctax[bandedgelocnum] = edloloctax[edgelocnum]; bandedgeloctax[bandedgelocnum ++] = bandvertlocend; } } degrval = bandedgelocnum - bandvertloctax[bandvertlocnum]; if (banddegrlocmax < degrval) banddegrlocmax = degrval; } bandvertloctax[bandvertlocnnd] = bandedgelocnum; /* Set end of vertex array */ memFree (bandvnumgsttax + bandgrafptr->baseval); /* Free useless space */ if (bandedloloctax != NULL) { /* If graph has edge weights */ for (bandvertlocnum = bandgrafptr->baseval; /* For all vertices that do not belong to the last level */ bandvertlocnum < bandvertlvlnum; bandvertlocnum ++) { Gnum vertlocnum; Gnum bandedgelocnum; vertlocnum = bandvlblloctax[bandvertlocnum] - vertlocadj; bandedgelocnum = bandvertloctax[bandvertlocnum]; memCpy (bandedloloctax + bandedgelocnum, /* Copy edge load array */ &edloloctax[vertloctax[vertlocnum]], (bandvertloctax[bandvertlocnum + 1] - bandedgelocnum) * sizeof (Gnum)); } /* Vertices of last level have been processed before */ } bandgrafptr->procvrttab = bandgrafptr->procdsptab; /* Graph does not have holes */ bandgrafptr->vertlocnbr = bandvertlocnbr; bandgrafptr->vertlocnnd = bandvertlocnbr + bandgrafptr->baseval; bandgrafptr->vendloctax = bandvertloctax + 1; /* Band graph is compact */ bandgrafptr->veloloctax = bandveloloctax; bandgrafptr->velolocsum = bandvelolocsum; bandgrafptr->vlblloctax = bandvlblloctax; bandgrafptr->edgeloctax = bandedgeloctax; bandgrafptr->edloloctax = bandedloloctax; bandgrafptr->edgelocnbr = bandedgelocnum - bandgrafptr->baseval; bandgrafptr->edgelocsiz = bandedgelocsiz; bandgrafptr->degrglbmax = banddegrlocmax; /* Local maximum degree will be turned into global maximum degree */ if (dgraphBuild4 (bandgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": cannot build band graph"); goto abort; } #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (bandgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": internal error (2)"); goto abort; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ o = 0; /* Everything went well */ abort: CONTEXTEXIT (orggrafptr); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_band_f.c000066400000000000000000000067661514310134000303620ustar00rootroot00000000000000/* Copyright 2011,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_band_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed graph handling routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 03 nov 2011 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHBAND, dgraphband, ( \ SCOTCH_Dgraph * const srcgrafptr, \ const SCOTCH_Num fronlocnbr, \ SCOTCH_Num * const fronloctab, \ const SCOTCH_Num distval, \ SCOTCH_Dgraph * const bndgrafptr, \ int * const revaptr), \ (srcgrafptr, fronlocnbr, fronloctab, distval, bndgrafptr, revaptr)) { *revaptr = SCOTCH_dgraphBand (srcgrafptr, fronlocnbr, fronloctab, distval, bndgrafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_build.c000066400000000000000000000143641514310134000302410ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_build.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 23 feb 2007 **/ /** to : 18 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 23 apr 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed graph handling routines. */ /* */ /****************************************/ /*+ This routine fills the contents of the given *** opaque distributed graph structure with the *** data provided by the user. The base value *** allows the user to set the graph base to 0 or 1. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphBuild ( SCOTCH_Dgraph * const grafptr, /* Distributed graph structure to fill */ const Gnum baseval, /* Base for indexing */ const Gnum vertlocnbr, /* Number of local vertices */ const Gnum vertlocmax, /* Maximum number of local vertices */ Gnum * const vertloctab, /* Local vertex begin array */ Gnum * const vendloctab, /* Local vertex end array */ Gnum * const veloloctab, /* Local vertex load array (if any) */ Gnum * const vlblloctab, /* Local vertex label array (if any) */ const Gnum edgelocnbr, /* Number of local edges */ const Gnum edgelocsiz, /* Size of local edge array */ Gnum * const edgeloctab, /* Local edge array */ Gnum * const edgegsttab, /* Ghost edge array (if any); not const */ Gnum * const edloloctab) /* Local edge load array (if any) */ { Dgraph * srcgrafptr; /* Pointer to source graph structure */ Gnum * vertloctax; Gnum * vendloctax; Gnum * veloloctax; Gnum * vlblloctax; Gnum * edgeloctax; Gnum * edgegsttax; Gnum * edloloctax; #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Dgraph) < sizeof (Dgraph)) { errorPrint (STRINGIFY (SCOTCH_dgraphBuild) ": internal error"); return (1); } if ((baseval < 0) || (baseval > 1)) errorPrintW (STRINGIFY (SCOTCH_dgraphBuild) ": non-standard base parameter"); #endif /* SCOTCH_DEBUG_LIBRARY1 */ srcgrafptr = (Dgraph *) CONTEXTOBJECT (grafptr); /* Use structure as source graph */ vertloctax = (Gnum *) vertloctab - baseval; vendloctax = ((vendloctab == NULL) || (vendloctab == vertloctab + 1)) ? vertloctax + 1 : (Gnum *) vendloctab - baseval; veloloctax = ((veloloctab == NULL) || (veloloctab == vertloctab)) ? NULL : (Gnum *) veloloctab - baseval; vlblloctax = ((vlblloctab == NULL) || (vlblloctab == vertloctab)) ? NULL : (Gnum *) vlblloctab - baseval; edgeloctax = (Gnum *) edgeloctab - baseval; edgegsttax = ((edgegsttab == NULL) || (edgegsttab == edgeloctab)) ? NULL : (Gnum *) edgegsttab - baseval; edloloctax = ((edloloctab == NULL) || (edloloctab == edgeloctab)) ? NULL : (Gnum *) edloloctab - baseval; return (dgraphBuild (srcgrafptr, baseval, vertlocnbr, vertlocmax, vertloctax, vendloctax, veloloctax, NULL, vlblloctax, edgelocnbr, edgelocsiz, edgeloctax, edgegsttax, edloloctax)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_build_f.c000066400000000000000000000104171514310134000305410ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_build_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 24 feb 2007 **/ /** to : 18 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /********************************************/ /* */ /* These routines are the Fortran API for */ /* the distributed graph handling routines. */ /* */ /********************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHBUILD, dgraphbuild, ( \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const vertlocnbr, \ const SCOTCH_Num * const vertlocmax, \ SCOTCH_Num * const vertloctab, \ SCOTCH_Num * const vendloctab, \ SCOTCH_Num * const veloloctab, \ SCOTCH_Num * const vlblloctab, \ const SCOTCH_Num * const edgelocnbr, \ const SCOTCH_Num * const edgelocsiz, \ SCOTCH_Num * const edgeloctab, \ SCOTCH_Num * const edgegsttab, \ SCOTCH_Num * const edloloctab, \ int * const revaptr), \ (grafptr, baseval, vertlocnbr, vertlocmax, \ vertloctab, vendloctab, veloloctab, \ vlblloctab, edgelocnbr, edgelocsiz, \ edgeloctab, edgegsttab, edloloctab, \ revaptr)) { *revaptr = SCOTCH_dgraphBuild (grafptr, *baseval, *vertlocnbr, *vertlocmax, vertloctab, vendloctab, veloloctab, vlblloctab, *edgelocnbr, *edgelocsiz, edgeloctab, edgegsttab, edloloctab); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_build_grid3d.c000066400000000000000000000100361514310134000314650ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_build_grid3d.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the distributed source **/ /** graph building routines for 3D grid **/ /** graphs. **/ /** **/ /** DATES : # Version 5.0 : from : 21 jul 2005 **/ /** to : 10 sep 2007 **/ /** # Version 5.1 : from : 05 jun 2010 **/ /** to : 06 jun 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine builds a distributed *** 3D grid or torus graph structure. *** It returns: *** - 0 : if the creation succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphBuildGrid3D ( SCOTCH_Dgraph * const grafptr, const SCOTCH_Num baseval, /* Base value */ const SCOTCH_Num dimxval, /* First dimension */ const SCOTCH_Num dimyval, /* Second dimension */ const SCOTCH_Num dimzval, /* Third dimension */ const SCOTCH_Num incrval, /* Increment value */ const SCOTCH_Num flagval) /* Flag value */ { return (dgraphBuildGrid3D ((Dgraph *) CONTEXTOBJECT (grafptr), baseval, dimxval, dimyval, dimzval, incrval, flagval)); } library_dgraph_build_grid3d_f.c000066400000000000000000000075511514310134000317230ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/* Copyright 2007,2010,2012,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_build_grid3d_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 16 feb 2007 **/ /** to : 16 feb 2007 **/ /** # Version 5.1 : from : 06 jun 2010 **/ /** to : 06 jun 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 28 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHBUILDGRID3D, dgraphbuildgrid3d, ( \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const dimxval, \ const SCOTCH_Num * const dimyval, \ const SCOTCH_Num * const dimzval, \ const SCOTCH_Num * const incrval, \ const SCOTCH_Num * const flagval, \ int * const revaptr), \ (grafptr, baseval, dimxval, dimyval, dimzval, incrval, flagval, revaptr)) { *revaptr = SCOTCH_dgraphBuildGrid3D (grafptr, *baseval, *dimxval, *dimyval, *dimzval, *incrval, *flagval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_check.c000066400000000000000000000066501514310134000302160ustar00rootroot00000000000000/* Copyright 2007,2012,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 26 aug 2006 **/ /** to : 26 aug 2006 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed graph handling */ /* routines. */ /* */ /************************************/ /*+ This routine checks the consistency *** of the given graph. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphCheck ( const SCOTCH_Dgraph * const libgrafptr) { return (dgraphCheck ((const Dgraph * const) CONTEXTOBJECT (libgrafptr))); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_check_f.c000066400000000000000000000065451514310134000305260ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_check_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 26 aug 2006 **/ /** to : 26 aug 2006 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHCHECK, dgraphcheck, ( \ const SCOTCH_Dgraph * const grafptr, \ int * const revaptr), \ (grafptr, revaptr)) { *revaptr = SCOTCH_dgraphCheck (grafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_coarsen.c000066400000000000000000000175611514310134000305760ustar00rootroot00000000000000/* Copyright 2011,2012,2014,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the **/ /** distributed graph coarsening routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 07 aug 2011 **/ /** to : 07 aug 2011 **/ /** # Version 6.0 : from : 11 sep 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 12 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dgraph_fold_comm.h" #include "dgraph_coarsen.h" #include "ptscotch.h" /************************************/ /* */ /* This routine is the C API for */ /* the distributed graph coarsening */ /* routine. */ /* */ /************************************/ /*+ This routine provides an upper bound of the *** number of local vertices, on the calling *** process, of the coarse graph that would be *** created by calling SCOTCH_dgraphCoarsen(). *** It is notably used to allocate the external *** multinode array. *** It returns: *** - >= 0 : in all cases. +*/ SCOTCH_Num SCOTCH_dgraphCoarsenVertLocMax ( const SCOTCH_Dgraph * restrict const flibgrafptr, /* Fine graph structure */ const SCOTCH_Num flagval) /* Coarsening type */ { CONTEXTDECL (flibgrafptr); Dgraph * restrict const finegrafptr = (Dgraph *) CONTEXTOBJECT (flibgrafptr); return (dgraphCoarsenVertLocMax (finegrafptr, (int) flagval)); } /*+ This routine creates a distributed coarse graph *** from the given fine graph, unless the coarse graph *** is smaller than some threshold size or the *** coarsening ratio is above some other threshold. *** If the coarse graph is created, a coarse-to-fine *** vertex array is created, that contains a pair of *** fine indices for each coarse index. It is the *** user's responsibility to provide and free this *** array whenever it is no longer needed. *** It returns: *** - 0 : if the graph has been coarsened (and folded). *** - 1 : if the graph could not be coarsened. *** - 2 : on error. +*/ int SCOTCH_dgraphCoarsen ( SCOTCH_Dgraph * const flibgrafptr, /* Fine graph structure */ const SCOTCH_Num coarnbr, /* Minimum number of coarse vertices */ const double coarrat, /* Maximum contraction ratio */ const SCOTCH_Num flagval, /* Flag for coarsening type */ SCOTCH_Dgraph * const clibgrafptr, /* Coarse graph structure to fill */ SCOTCH_Num * const multloctab) /* Pointer to multinode array */ { DgraphCoarsenMulti * multlocptr; /* Pointer to multinode array used by dgraphCoarsen() */ int foldval; /* Flag of folding type */ CONTEXTDECL (flibgrafptr); int o; Dgraph * const coargrafptr = (Dgraph *) CONTEXTOBJECT (clibgrafptr); #ifdef SCOTCH_DEBUG_LIBRARY1 Dgraph * const finegrafptr = (Dgraph *) CONTEXTOBJECT (flibgrafptr); MPI_Comm_compare (finegrafptr->proccomm, coargrafptr->proccomm, &o); if ((o != MPI_IDENT) && (o != MPI_CONGRUENT)) { errorPrint (STRINGIFY (SCOTCH_dgraphCoarsen) ": communicators are not congruent"); return (2); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (CONTEXTINIT (flibgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphCoarsen) ": cannot initialize context"); return (2); } foldval = flagval & (DGRAPHCOARSENFOLD | DGRAPHCOARSENFOLDDUP); /* Only consider folding flags */ multlocptr = (foldval == DGRAPHCOARSENNONE) /* If plain coarsening */ ? ((DgraphCoarsenMulti * restrict) multloctab) /* Use user-provided array (or NULL) */ : NULL; /* Else dgraphCoarsen() will create the array */ o = dgraphCoarsen (CONTEXTGETOBJECT (flibgrafptr), coargrafptr, &multlocptr, 5, coarnbr, coarrat, (int) flagval, CONTEXTGETDATA (flibgrafptr)); if (o > 2) o = 2; if (multloctab == NULL) { /* If user did not provide a multinode array */ if (multlocptr != NULL) /* If coarsening (and folding) went well */ memFree (multlocptr); /* Free allocated multinode array (folded or not) */ } else { /* User provided a multinode array */ if (foldval != DGRAPHCOARSENNONE) { /* If folding took place, user array was not used */ #ifdef SCOTCH_DEBUG_LIBRARY2 SCOTCH_Num multlocsiz; /* Size that the user may have reserved for the multinode folded array */ multlocsiz = SCOTCH_dgraphCoarsenVertLocMax (flibgrafptr, flagval); if (multlocsiz < coargrafptr->vertlocnbr) { /* If advised size is smaller than real size */ errorPrint (STRINGIFY (SCOTCH_dgraphCoarsen) ": invalid estimated multinode array size"); o = 2; } /* Go on copying anyway as the user may have reserved more */ #endif /* SCOTCH_DEBUG_LIBRARY2 */ memCpy (multloctab, multlocptr, coargrafptr->vertlocnbr * sizeof (DgraphCoarsenMulti)); /* Update array with folded multinode data */ memFree (multlocptr); /* Free allocated folded multinode array */ } } CONTEXTEXIT (flibgrafptr); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_coarsen_f.c000066400000000000000000000100531514310134000310700ustar00rootroot00000000000000/* Copyright 2011,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_coarsen_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed graph coarsening routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 07 aug 2011 **/ /** to : 07 aug 2011 **/ /** # Version 6.0 : from : 12 sep 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 27 jul 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHCOARSENVERTLOCMAX, dgraphcoarsenvertlocmax, ( \ SCOTCH_Dgraph * const finegrafptr, \ const SCOTCH_Num * const flagval, \ SCOTCH_Num * const coarvertlocmax), \ (finegrafptr, flagval, coarvertlocmax)) { *coarvertlocmax = SCOTCH_dgraphCoarsenVertLocMax (finegrafptr, *flagval); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHCOARSEN, dgraphcoarsen, ( \ SCOTCH_Dgraph * const finegrafptr, \ const SCOTCH_Num * const coarnbrptr, \ double * const coarrat, \ const SCOTCH_Num * const flagval, \ SCOTCH_Dgraph * const coargrafptr, \ SCOTCH_Num * const multloctab, \ int * const revaptr), \ (finegrafptr, coarnbrptr, coarrat, flagval, coargrafptr, multloctab, revaptr)) { *revaptr = SCOTCH_dgraphCoarsen (finegrafptr, *coarnbrptr, *coarrat, *flagval, coargrafptr, multloctab); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_f.c000066400000000000000000000154201514310134000273610ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 04 sep 2006 **/ /** to : 05 aug 2007 **/ /** # Version 5.1 : from : 27 jul 2008 **/ /** to : 15 apr 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHINIT, dgraphinit, ( \ SCOTCH_Dgraph * const grafptr, \ const MPI_Fint * const commptr, \ int * const revaptr), \ (grafptr, commptr, revaptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); *revaptr = SCOTCH_dgraphInit (grafptr, commdat); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHEXIT, dgraphexit, ( \ SCOTCH_Dgraph * const grafptr), \ (grafptr)) { SCOTCH_dgraphExit (grafptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHSIZEOF, dgraphsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_dgraphSizeof (); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHSIZE, dgraphsize, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Num * const vertglbptr, \ SCOTCH_Num * const vertlocptr, \ SCOTCH_Num * const edgeglbptr, \ SCOTCH_Num * const edgelocptr), \ (grafptr, vertglbptr, vertlocptr, edgeglbptr, edgelocptr)) { SCOTCH_dgraphSize (grafptr, vertglbptr, vertlocptr, edgeglbptr, edgelocptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHDATA, dgraphdata, ( \ const SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Num * const indxptr, \ SCOTCH_Num * const baseptr, \ SCOTCH_Num * const vertglbptr, \ SCOTCH_Num * const vertlocptr, \ SCOTCH_Num * const vertlocptz, \ SCOTCH_Num * const vertgstptr, \ SCOTCH_Idx * const vertlocidx, \ SCOTCH_Idx * const vendlocidx, \ SCOTCH_Idx * const velolocidx, \ SCOTCH_Idx * const vlbllocidx, \ SCOTCH_Num * const edgeglbptr, \ SCOTCH_Num * const edgelocptr, \ SCOTCH_Num * const edgelocptz, \ SCOTCH_Idx * const edgelocidx, \ SCOTCH_Idx * const edgegstidx, \ SCOTCH_Idx * const edlolocidx, \ MPI_Fint * const commptr), \ (grafptr, indxptr, baseptr, \ vertglbptr, vertlocptr, vertlocptz, \ vertgstptr, vertlocidx, vendlocidx, \ velolocidx, vlbllocidx, edgeglbptr, \ edgelocptr, edgelocptz, edgelocidx, \ edgegstidx, edlolocidx, commptr)) { SCOTCH_Num * vertloctab; /* Pointer to graph arrays */ SCOTCH_Num * vendloctab; SCOTCH_Num * veloloctab; SCOTCH_Num * vlblloctab; SCOTCH_Num * edgeloctab; SCOTCH_Num * edgegsttab; SCOTCH_Num * edloloctab; MPI_Comm commdat; SCOTCH_dgraphData (grafptr, baseptr, vertglbptr, vertlocptr, vertlocptz, vertgstptr, &vertloctab, &vendloctab, &veloloctab, &vlblloctab, edgeglbptr, edgelocptr, edgelocptz, &edgeloctab, &edgegsttab, &edloloctab, &commdat); *vertlocidx = (SCOTCH_Idx) (vertloctab - indxptr) + 1; /* Add 1 since Fortran indices start at 1 */ *vendlocidx = (SCOTCH_Idx) (vendloctab - indxptr) + 1; *velolocidx = (veloloctab != NULL) ? (SCOTCH_Idx) (veloloctab - indxptr) + 1 : *vertlocidx; *vlbllocidx = (vlblloctab != NULL) ? (SCOTCH_Idx) (vlblloctab - indxptr) + 1 : *vertlocidx; *edgelocidx = (SCOTCH_Idx) (edgeloctab - indxptr) + 1; *edgegstidx = (edgegsttab != NULL) ? (SCOTCH_Idx) (edgegsttab - indxptr) + 1 : *vertlocidx; *edlolocidx = (edloloctab != NULL) ? (SCOTCH_Idx) (edloloctab - indxptr) + 1 : *vertlocidx; *commptr = MPI_Comm_c2f (commdat); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_gather.c000066400000000000000000000125031514310134000304050ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_gather.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 12 jul 2007 **/ /** to : 17 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dgraph.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine gathers the data of a *** distributed graph on a centralized graph. *** It returns: *** - 0 : if the centralization succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphGather ( const SCOTCH_Dgraph * const dgrfptr, SCOTCH_Graph * const cgrfptr) { Gnum reduloctab[3]; Gnum reduglbtab[3]; Dgraph * restrict const srcdgrfptr = (Dgraph *) CONTEXTOBJECT (dgrfptr); if ((cgrfptr != NULL) && /* If centralized graph provided */ (((void *) cgrfptr) != ((void *) dgrfptr)) && (((void *) cgrfptr) != ((void *) srcdgrfptr))) { reduloctab[0] = 1; /* Process is a potential root */ reduloctab[1] = (Gnum) srcdgrfptr->proclocnum; } else { /* Process is not a root */ reduloctab[0] = 0; reduloctab[1] = 0; } if (srcdgrfptr->edloloctax == NULL) /* Compute sum of edge loads for access to low-level routines */ reduloctab[2] = srcdgrfptr->edgelocnbr; else { Gnum vertlocnum; Gnum edlolocsum; for (vertlocnum = srcdgrfptr->baseval, edlolocsum = 0; vertlocnum < srcdgrfptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; for (edgelocnum = srcdgrfptr->vertloctax[vertlocnum], edgelocnnd = srcdgrfptr->vendloctax[vertlocnum]; edgelocnum < edgelocnnd; edgelocnum ++) edlolocsum += srcdgrfptr->edloloctax[edgelocnum]; } reduloctab[2] = edlolocsum; } if (MPI_Allreduce (reduloctab, reduglbtab, 3, GNUM_MPI, MPI_SUM, srcdgrfptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphGather) ": communication error"); return (1); } if (reduglbtab[0] == 1) /* If only one single root */ return (dgraphGatherAll2 (srcdgrfptr, (Graph *) cgrfptr, reduglbtab[2], (int) reduglbtab[1])); else if (reduglbtab[0] == srcdgrfptr->procglbnbr) /* If all processes are roots */ return (dgraphGatherAll2 (srcdgrfptr, (Graph *) cgrfptr, reduglbtab[2], -1)); errorPrint (STRINGIFY (SCOTCH_dgraphGather) ": invalid number of roots"); return (1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_gather_f.c000066400000000000000000000066401514310134000307170ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_gather_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 12 jul 2007 **/ /** to : 12 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHGATHER, dgraphgather, ( \ SCOTCH_Dgraph * const dgrfptr, \ SCOTCH_Graph * const cgrfptr, \ int * const revaptr), \ (dgrfptr, cgrfptr, revaptr)) { *revaptr = SCOTCH_dgraphGather (dgrfptr, cgrfptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_grow.c000066400000000000000000000133451514310134000301160ustar00rootroot00000000000000/* Copyright 2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_grow.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted graph growing routine of **/ /** the libScotch library. **/ /** **/ /** DATES : # Version 6.0 : from : 26 sep 2012 **/ /** to : 21 may 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dgraph_halo.h" #include "ptscotch.h" /**********************************/ /* */ /* Distance computation routines. */ /* */ /**********************************/ #define DGRAPHBANDGROWNAME dgraphGrow2 #define DGRAPHBANDGROWEDGE(n) /* No need to count edges */ #define DGRAPHBANDGROWENQ1 /* Color array already set */ #define DGRAPHBANDGROWENQ2 vnumgsttax[vertlocnum] /* Set vertex color */ #define DGRAPHBANDGROWENQ3 vsnddattab[nsndidxnum ++] = vnumgsttax[vertlocnum] /* Send color value */ #define DGRAPHBANDGROWENQ4 vrcvdatptr[vertrcvnum + 1] /* Get and set color */ #define DGRAPHBANDGROWSMUL(n) ((n) * 2) /* Add space for color value */ #include "dgraph_band_grow.h" #include "dgraph_band_grow.c" #undef DGRAPHBANDGROWNAME #undef DGRAPHBANDGROWEDGE #undef DGRAPHBANDGROWENQ1 #undef DGRAPHBANDGROWENQ2 #undef DGRAPHBANDGROWENQ3 #undef DGRAPHBANDGROWENQ4 #undef DGRAPHBANDGROWSMUL /*********************************/ /* */ /* This routine is the C API for */ /* the graph growing routine. */ /* */ /*********************************/ /*+ This routine grows areas from a given *** set of seeds of some color. Several *** seeds can have the same color. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphGrow ( SCOTCH_Dgraph * const orggrafptr, const SCOTCH_Num seedlocnbr, SCOTCH_Num * const seedloctab, const SCOTCH_Num distmax, SCOTCH_Num * const partgsttab) { Gnum * bandpartgsttax; Gnum bandvertlocnbr; /* Not used */ Gnum bandvertlvlnum; /* Not used */ Gnum bandedgelocsiz; /* Not used */ CONTEXTDECL (orggrafptr); Dgraph grafdat; int o; o = 1; /* Assume an error */ if (CONTEXTINIT (orggrafptr)) { errorPrint (STRINGIFY (SCOTCH_dgraphBand) ": cannot initialize context"); goto abort; } grafdat = *((Dgraph *) CONTEXTGETOBJECT (orggrafptr)); /* Clone original graph */ grafdat.flagval &= ~DGRAPHFREEALL; /* Never free existing fields */ if (dgraphGhst (&grafdat) != 0) { /* Compute ghost edge array if not already present */ errorPrint (STRINGIFY (SCOTCH_dgraphGrow) ": cannot compute ghost edge array"); return (1); } bandpartgsttax = (partgsttab != NULL) ? (Gnum *) partgsttab - grafdat.baseval : NULL; o = (((grafdat.flagval & DGRAPHCOMMPTOP) != 0) ? dgraphGrow2Ptop : dgraphGrow2Coll) (&grafdat, seedlocnbr, seedloctab, distmax, bandpartgsttax, &bandvertlvlnum, &bandvertlocnbr, &bandedgelocsiz, CONTEXTGETDATA (orggrafptr)); dgraphExit (&grafdat); /* Free ghost edge arrays if any */ abort: CONTEXTEXIT (orggrafptr); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_halo.c000066400000000000000000000143021514310134000300550ustar00rootroot00000000000000/* Copyright 2007,2009,2010,2012,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_halo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 17 jul 2007 **/ /** to : 02 aug 2007 **/ /** # Version 5.1 : from : 02 jul 2008 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 22 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dgraph.h" #include "dgraph_halo.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine requests the computation *** of the ghost edge array. *** It returns: *** - 0 : if the computation succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphGhst ( SCOTCH_Dgraph * const libgrafptr) { return (dgraphGhst ((Dgraph *) CONTEXTOBJECT (libgrafptr))); } /*+ This routine requests the computation of the *** ghost edge array in replacement of the global *** edge array. *** It returns: *** - 0 : if the computation succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphGhstReplace ( SCOTCH_Dgraph * const libgrafptr) { Dgraph * restrict srcgrafptr; /* Pointer to scotch graph */ DgraphFlag srcflagval; /* Graph properties */ int o; srcgrafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); srcflagval = srcgrafptr->flagval; srcgrafptr->flagval |= DGRAPHFREETABS; /* If edge array was not allocated internally, assume it was */ o = dgraphGhstReplace (srcgrafptr); srcgrafptr->flagval = (srcgrafptr->flagval & ~DGRAPHFREETABS) | srcflagval; /* Restore original allocation flag */ return (o); } /*+ This routine spreads local information *** borne by local vertices across the ghost *** vertices of the neighboring processes. *** It returns: *** - 0 : if the exchange succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphHalo ( SCOTCH_Dgraph * const libgrafptr, void * const datatab, const MPI_Datatype typeval) { return (dgraphHaloSync ((Dgraph *) CONTEXTOBJECT (libgrafptr), (byte *) datatab, typeval)); } /*+ This routine spreads local information *** borne by local vertices across the ghost *** vertices of the neighboring processes, in *** an asynchronous way. *** It returns: *** - 0 : if the exchange succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphHaloAsync ( SCOTCH_Dgraph * const libgrafptr, void * const datatab, const MPI_Datatype typeval, SCOTCH_DgraphHaloReq * const requptr) { dgraphHaloAsync ((Dgraph *) CONTEXTOBJECT (libgrafptr), (byte *) datatab, typeval, (DgraphHaloRequest *) requptr); return (0); } /*+ This routine waits for the termination of *** an asynchronous halo request. *** It returns: *** - 0 : if the exchange succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphHaloWait ( SCOTCH_DgraphHaloReq * const requptr) { return (dgraphHaloWait ((DgraphHaloRequest *) requptr)); } /*+ This routine reserves a memory area *** of a size sufficient to store a *** halo request structure. *** It returns: *** - !NULL : if the initialization succeeded. *** - NULL : on error. +*/ SCOTCH_DgraphHaloReq * SCOTCH_dgraphHaloReqAlloc () { return ((SCOTCH_DgraphHaloReq *) memAlloc (sizeof (SCOTCH_DgraphHaloReq))); } /*+ This routine returns the size, in bytes, *** of a halo request structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_dgraphHaloReqSizeof () { return (sizeof (SCOTCH_DgraphHaloReq)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_halo_f.c000066400000000000000000000115161514310134000303660ustar00rootroot00000000000000/* Copyright 2007,2009,2012,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_halo_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 17 jul 2007 **/ /** to : 02 aug 2007 **/ /** # Version 5.1 : from : 09 may 2009 **/ /** to : 10 may 2009 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 22 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHGHST, dgraphghst, ( \ SCOTCH_Dgraph * const grafptr, \ int * const revaptr), \ (grafptr, revaptr)) { *revaptr = SCOTCH_dgraphGhst (grafptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHHALO, dgraphhalo, ( \ SCOTCH_Dgraph * const grafptr, \ void * const datatab, \ MPI_Fint * const typeptr, \ int * const revaptr), \ (grafptr, datatab, typeptr, revaptr)) { MPI_Datatype typeval; typeval = MPI_Type_f2c (*typeptr); *revaptr = SCOTCH_dgraphHalo (grafptr, datatab, typeval); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHHALOASYNC, dgraphhaloasync, ( \ SCOTCH_Dgraph * const grafptr, \ void * const datatab, \ MPI_Fint * const typeptr, \ SCOTCH_DgraphHaloReq * const requptr, \ int * const revaptr), \ (grafptr, datatab, typeptr, requptr, revaptr)) { MPI_Datatype typeval; typeval = MPI_Type_f2c (*typeptr); *revaptr = SCOTCH_dgraphHaloAsync (grafptr, datatab, typeval, requptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHHALOWAIT, dgraphhalowait, ( \ SCOTCH_DgraphHaloReq * const requptr, \ int * const revaptr), \ (requptr, revaptr)) { *revaptr = SCOTCH_dgraphHaloWait (requptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHHALOREQSIZEOF, dgraphhaloreqsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_dgraphHaloReqSizeof (); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_induce.c000066400000000000000000000166551514310134000304160ustar00rootroot00000000000000/* Copyright 2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the **/ /** distributed graph induction routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 30 aug 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # This code is directly derived from **/ /** the code of dgraphInducePart() and **/ /** of its subroutines. The only change **/ /** is that it uses Gnum's instead of **/ /** GraphPart's as part values. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "ptscotch.h" /***********************************/ /* */ /* This routine is the C API for */ /* the distributed graph induction */ /* routine. */ /* */ /***********************************/ /*+ This routine creates a distributed induced graph *** from the given graph, according to the partition *** map that is passed to the routine. *** It returns: *** - 0 : if the induced graph has been created. *** - !0 : on error. +*/ typedef struct _SCOTCHDgraphInducePartData_ { const Gnum * orgpartloctax; /* In the public interface, parts are represented as Gnum's */ Gnum indpartval; } _SCOTCHDgraphInducePartData; static Gnum _SCOTCHdgraphInducePart2 ( Dgraph * restrict const indgrafptr, Dgraph * restrict const orggrafptr, const void * restrict const orgdataptr, Gnum * restrict const orgindxgsttax) { Gnum orgvertlocnnd; Gnum orgvertlocnum; Gnum indvertlocnum; Gnum indvertglbnum; Gnum indedgelocmax; const Gnum * restrict const orgvertloctax = orggrafptr->vertloctax; const Gnum * restrict const orgvendloctax = orggrafptr->vendloctax; const Gnum * restrict const orgpartloctax = ((const _SCOTCHDgraphInducePartData * restrict const) orgdataptr)->orgpartloctax; const Gnum indpartval = ((const _SCOTCHDgraphInducePartData * restrict const) orgdataptr)->indpartval; Gnum * restrict const indvnumloctax = indgrafptr->vnumloctax; for (orgvertlocnum = indvertlocnum = orggrafptr->baseval, indvertglbnum = indgrafptr->procvrttab[indgrafptr->proclocnum], /* Fill index array while recomputing tighter upper bound on arcs */ orgvertlocnnd = orggrafptr->vertlocnnd, indedgelocmax = 0; orgvertlocnum < orgvertlocnnd; orgvertlocnum ++) { if (orgpartloctax[orgvertlocnum] == indpartval) { orgindxgsttax[orgvertlocnum] = indvertglbnum; /* Mark selected vertices */ indvnumloctax[indvertlocnum] = orgvertlocnum; indedgelocmax += orgvendloctax[orgvertlocnum] - orgvertloctax[orgvertlocnum]; indvertlocnum ++, indvertglbnum ++; } else orgindxgsttax[orgvertlocnum] = ~0; } #ifdef SCOTCH_DEBUG_DGRAPH2 if ((indvertlocnum - orggrafptr->baseval) != indgrafptr->vertlocnbr) { errorPrint ("dgraphInducePart2: inconsistent data"); dgraphExit (indgrafptr); return (1); } #endif /* SCOTCH_DEBUG_DGRAPH2 */ return (indedgelocmax); } int SCOTCH_dgraphInducePart ( SCOTCH_Dgraph * const liborggrafptr, /* Original graph */ const SCOTCH_Num * const orgpartloctab, /* Partition array */ const SCOTCH_Num indpartval, /* Part value of induced subgraph */ const SCOTCH_Num indvertlocnbr, /* Number of local vertices in part */ SCOTCH_Dgraph * const libindgrafptr) /* Induced subgraph */ { _SCOTCHDgraphInducePartData orgdatadat; Gnum indvertloctmp; int o; Dgraph * restrict const orggrafptr = (Dgraph *) CONTEXTOBJECT (liborggrafptr); Dgraph * restrict const indgrafptr = (Dgraph *) CONTEXTOBJECT (libindgrafptr); #ifdef SCOTCH_DEBUG_LIBRARY1 MPI_Comm_compare (orggrafptr->proccomm, indgrafptr->proccomm, &o); if ((o != MPI_IDENT) && (o != MPI_CONGRUENT)) { errorPrint (STRINGIFY (SCOTCH_dgraphInducePart) ": communicators are not congruent"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (indvertlocnbr < 0) { /* If number of kept vertices is not known, compute it */ Gnum orgvertlocnum; Gnum orgvertlocnbr; for (orgvertlocnum = indvertloctmp = 0, orgvertlocnbr = orggrafptr->vertlocnbr; orgvertlocnum < orgvertlocnbr; orgvertlocnum ++) { if (orgpartloctab[orgvertlocnum] == indpartval) indvertloctmp ++; } } else indvertloctmp = indvertlocnbr; orgdatadat.orgpartloctax = orgpartloctab - orggrafptr->baseval; orgdatadat.indpartval = indpartval; o = dgraphInduce2 (orggrafptr, _SCOTCHdgraphInducePart2, &orgdatadat, indvertloctmp, NULL, indgrafptr); indgrafptr->vnumloctax = NULL; /* Do not impact subsequent inductions */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_induce_f.c000066400000000000000000000070431514310134000307120ustar00rootroot00000000000000/* Copyright 2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_induce_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 30 aug 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHINDUCEPART, dgraphinducepart, ( \ SCOTCH_Dgraph * const orggrafptr, \ SCOTCH_Num * const orgpartloctab, \ SCOTCH_Num * const indpartval, \ SCOTCH_Num * const indvertlocnbr, \ SCOTCH_Dgraph * const indgrafptr, \ int * const revaptr), \ (orggrafptr, orgpartloctab, indpartval, indvertlocnbr, indgrafptr, revaptr)) { *revaptr = SCOTCH_dgraphInducePart (orggrafptr, orgpartloctab, *indpartval, *indvertlocnbr, indgrafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_io_load.c000066400000000000000000000105351514310134000305440ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_io_load.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph loading routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 13 may 2007 **/ /** to : 13 may 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 11 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dgraph.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed graph handling routines. */ /* */ /****************************************/ /*+ This routine loads the given opaque graph *** structure with the data of the given stream. *** The base value allows the user to set the *** graph base to 0 or 1, or to the base value *** of the stream if the base value is equal *** to -1. On input, vertex loads are discarded if *** flagval is 1, edge loads are discarded if flagval *** is 2, and both if flagval is set to 3. *** It returns: *** - 0 : if the loading succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphLoad ( SCOTCH_Dgraph * const grafptr, FILE * const stream, const SCOTCH_Num baseval, const SCOTCH_Num flagval) { GraphLoadFlag flagtmp; /* Graph load loags */ if ((baseval < -1) || (baseval > 1)) { errorPrint (STRINGIFY (SCOTCH_dgraphLoad) ": invalid base parameter"); return (1); } if ((flagval < 0) || (flagval > 3)) { errorPrint (STRINGIFY (SCOTCH_dgraphLoad) ": invalid flag parameter"); return (1); } flagtmp = (((flagval & 1) != 0) ? GRAPHIONOLOADVERT : 0) + (((flagval & 2) != 0) ? GRAPHIONOLOADEDGE : 0); return (dgraphLoad ((Dgraph * const) CONTEXTOBJECT (grafptr), stream, (Gnum) baseval, flagtmp)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_io_load_f.c000066400000000000000000000116741514310134000310560ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_io_load_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 13 may 2007 **/ /** to : 13 may 2007 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* When an input stream is built from the given ** file handle, it is set as unbuffered, so as to ** allow for multiple stream reads from the same ** file handle. If it were buffered, too many ** input characters would be read on the first ** block read. */ SCOTCH_FORTRAN ( \ DGRAPHLOAD, dgraphload, ( \ SCOTCH_Dgraph * const grafptr, \ int * const fileptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const flagval, \ int * const revaptr), \ (grafptr, fileptr, baseval, flagval, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if (*fileptr == -1) /* If process does not want to open a stream */ stream = NULL; else { if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } setbuf (stream, NULL); /* Do not buffer on input */ } o = SCOTCH_dgraphLoad (grafptr, stream, *baseval, *flagval); if (stream != NULL) /* If process has an open stream */ fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_io_save.c000066400000000000000000000070101514310134000305550ustar00rootroot00000000000000/* Copyright 2007,2012,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_io_save.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph saving routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 16 may 2007 **/ /** to : 16 may 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dgraph.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed graph handling routines. */ /* */ /****************************************/ /*+ This routine saves the contents of the given *** opaque distributed graph structure to the *** given streams. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphSave ( SCOTCH_Dgraph * const grafptr, FILE * const stream) { return (dgraphSave ((Dgraph * const) CONTEXTOBJECT (grafptr), stream)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_io_save_f.c000066400000000000000000000104201514310134000310610ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_io_save_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 16 may 2007 **/ /** to : 16 may 2007 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHSAVE, dgraphsave, ( \ SCOTCH_Dgraph * const grafptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_dgraphSave (grafptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map.c000066400000000000000000000372351514310134000277210ustar00rootroot00000000000000/* Copyright 2008-2012,2018,2019,2023,2024,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted graph mapping routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 12 jun 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 14 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "dgraph.h" #include "arch.h" #include "dmapping.h" #include "kdgraph.h" #include "kdgraph_map_st.h" #include "library_dmapping.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the parallel mapping routines. */ /* */ /************************************/ /*+ This routine initializes an API opaque *** mapping with respect to the given source *** graph and the locations of output parameters. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphMapInit ( const SCOTCH_Dgraph * const libgrafptr, /*+ Graph to map +*/ SCOTCH_Dmapping * const libmappptr, /*+ Mapping structure to initialize +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture used to map +*/ SCOTCH_Num * const termloctab) /*+ Mapping array +*/ { if (sizeof (SCOTCH_Dmapping) < sizeof (LibDmapping)) { errorPrint (STRINGIFY (SCOTCH_dgraphMapInit) ": internal error"); return (1); } Dgraph * restrict const grafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); LibDmapping * restrict const mappptr = (LibDmapping *) libmappptr; mappptr->termloctab = ((termloctab == NULL) || ((void *) termloctab == (void *) grafptr) || ((void *) termloctab == (void *) libgrafptr)) ? NULL : termloctab; return (dmapInit (&mappptr->m, (Arch *) archptr)); } /*+ This routine frees an API mapping. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphMapExit ( const SCOTCH_Dgraph * const grafptr, SCOTCH_Dmapping * const mappptr) { dmapExit (&((LibDmapping *) mappptr)->m); } /*+ This routine saves the contents of *** the given mapping to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphMapSave ( const SCOTCH_Dgraph * const libgrafptr, /*+ Graph to map +*/ const SCOTCH_Dmapping * const libmappptr, /*+ Mapping to save +*/ FILE * const stream) /*+ Output stream +*/ { return (dmapSave (&((LibDmapping *) libmappptr)->m, (Dgraph *) CONTEXTOBJECT (libgrafptr), stream)); } /*+ This routine computes a mapping *** of the API mapping structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphMapCompute ( SCOTCH_Dgraph * const libgrafptr, /*+ Graph to map +*/ SCOTCH_Dmapping * const libmappptr, /*+ Mapping to compute +*/ SCOTCH_Strat * const straptr) /*+ Mapping strategy +*/ { Kdgraph mapgrafdat; /* Effective mapping graph */ Kdmapping mapmappdat; /* Initial mapping domain */ const Strat * mapstraptr; /* Pointer to mapping strategy */ LibDmapping * restrict srcmappptr; Dgraph * srcgrafptr; CONTEXTDECL (libgrafptr); int o; o = 1; /* Assume an error */ if (CONTEXTINIT (libgrafptr)) { errorPrint (STRINGIFY (SCOTCH_dgraphMapCompute) ": cannot initialize context"); return (o); } srcgrafptr = (Dgraph *) CONTEXTGETOBJECT (libgrafptr); srcmappptr = (LibDmapping *) libmappptr; #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (srcgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphMapCompute) ": invalid input graph"); goto abort; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (*((Strat **) straptr) == NULL) { /* Set default mapping strategy if necessary */ ArchDom archdomnorg; archDomFrst (&srcmappptr->m.archdat, &archdomnorg); if (archVar (&srcmappptr->m.archdat)) { if (SCOTCH_stratDgraphClusterBuild (straptr, 0, srcgrafptr->procglbnbr, 1, 1.0, 0.05)) goto abort; } else { if (SCOTCH_stratDgraphMapBuild (straptr, 0, srcgrafptr->procglbnbr, archDomSize (&srcmappptr->m.archdat, &archdomnorg), 0.05)) goto abort; } } mapstraptr = *((Strat **) straptr); if (mapstraptr->tablptr != &kdgraphmapststratab) { errorPrint (STRINGIFY (SCOTCH_dgraphMapCompute) ": not a parallel graph mapping strategy"); goto abort; } if (kdgraphInit (&mapgrafdat, srcgrafptr, &srcmappptr->m) != 0) goto abort; mapgrafdat.contptr = CONTEXTGETDATA (libgrafptr); mapmappdat.mappptr = &srcmappptr->m; if (((o = kdgraphMapSt (&mapgrafdat, &mapmappdat, mapstraptr)) == 0) && /* Perform mapping */ (srcmappptr->termloctab != NULL)) o = dmapTerm (&srcmappptr->m, &mapgrafdat.s, srcmappptr->termloctab); /* Use "&mapgrafdat.s" to take advantage of ghost arrays */ kdgraphExit (&mapgrafdat); abort: CONTEXTEXIT (libgrafptr); return (o); } /*+ This routine computes a mapping of the *** given graph structure onto the given *** target architecture with respect to the *** given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphMap ( SCOTCH_Dgraph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const termloctab) /*+ Mapping array +*/ { SCOTCH_Dmapping mappdat; int o; SCOTCH_dgraphMapInit (grafptr, &mappdat, archptr, termloctab); o = SCOTCH_dgraphMapCompute (grafptr, &mappdat, straptr); SCOTCH_dgraphMapExit (grafptr, &mappdat); return (o); } /*+ This routine computes a partition of *** the given graph structure with respect *** to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphPart ( SCOTCH_Dgraph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Num partnbr, /*+ Number of parts +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const termloctab) /*+ Mapping array +*/ { SCOTCH_Arch archdat; int o; SCOTCH_archInit (&archdat); SCOTCH_archCmplt (&archdat, partnbr); o = SCOTCH_dgraphMap (grafptr, &archdat, straptr, termloctab); SCOTCH_archExit (&archdat); return (o); } /*+ This routine parses the given *** mapping strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratDgraphMap ( SCOTCH_Strat * const straptr, const char * const string) { if (*((Strat **) straptr) != NULL) stratExit (*((Strat **) straptr)); if ((*((Strat **) straptr) = stratInit (&kdgraphmapststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratDgraphMap) ": error in parallel mapping strategy"); return (1); } return (0); } /*+ This routine provides predefined *** mapping strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratDgraphMapBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num procnbr, /*+ Number of processes for running +*/ const SCOTCH_Num partnbr, /*+ Number of expected parts +*/ const double kbalval) /*+ Desired imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char bbaltab[32]; char kbaltab[32]; char verttab[32]; Gnum vertnbr; char * difpptr; char * difsptr; char * exapptr; char * exasptr; char * muceptr; sprintf (kbaltab, "%lf", kbalval); sprintf (bbaltab, "%lf", kbalval); vertnbr = MAX (2000 * procnbr, 10000); vertnbr = MIN (vertnbr, 100000); sprintf (verttab, GNUMSTRING, vertnbr); strcpy (bufftab, "r{bal=,sep=m{vert=,asc=b{bnd=,org=},low=q{strat=(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}})},seq=q{strat=(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}})}},seq=r{bal=,poli=S,sep=(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}})}}"); stringSubst (bufftab, "", ((flagval & SCOTCH_STRATSPEED) != 0) ? "" : "m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}}|"); if ((flagval & SCOTCH_STRATSCALABILITY) != 0) muceptr = "/(edge<10000000)?q{strat=f};"; /* Multi-centralization */ else muceptr = "q{strat=f}"; if ((flagval & SCOTCH_STRATBALANCE) != 0) { exapptr = "x{bal=0}"; exasptr = "f{bal=0}"; } else { exapptr = "x{bal=}"; /* Parallel exactifier */ exasptr = ""; } if ((flagval & SCOTCH_STRATSAFETY) != 0) { difpptr = ""; difsptr = ""; } else { difpptr = "(d{pass=40}|)"; difsptr = "(d{pass=40}|)"; } stringSubst (bufftab, "", muceptr); stringSubst (bufftab, "", exapptr); stringSubst (bufftab, "", exasptr); stringSubst (bufftab, "", difpptr); stringSubst (bufftab, "", difsptr); stringSubst (bufftab, "", bbaltab); stringSubst (bufftab, "", kbaltab); stringSubst (bufftab, "", verttab); return (SCOTCH_stratDgraphMap (straptr, bufftab)); } /*+ This routine provides predefined *** clustering strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratDgraphClusterBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num procnbr, /*+ Number of processes for running +*/ const SCOTCH_Num pwgtval, /*+ Threshold part load +*/ const double densval, /*+ Threshold density value +*/ const double bbalval) /*+ Maximum imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char bbaltab[32]; char denstab[32]; char pwgttab[32]; char verttab[32]; Gnum vertnbr; char * difpptr; char * difsptr; char * exapptr; char * exasptr; char * muceptr; sprintf (bbaltab, "%lf", bbalval); sprintf (denstab, "%lf", densval); sprintf (pwgttab, GNUMSTRING, pwgtval); vertnbr = MAX (2000 * procnbr, 10000); vertnbr = MIN (vertnbr, 100000); sprintf (verttab, GNUMSTRING, vertnbr); strcpy (bufftab, "r{sep=/((load>)&!(edge>vert**(vert-1)))?m{vert=,asc=b{bnd=,org=},low=q{strat=(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}})},seq=q{strat=/((load>)&!(edge>vert**(vert-1)))?(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}});}};,seq=r{sep=/((load>)&!(edge>vert**(vert-1)))?(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}});}}"); stringSubst (bufftab, "", ((flagval & SCOTCH_STRATSPEED) != 0) ? "" : "m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}}|"); if ((flagval & SCOTCH_STRATSCALABILITY) != 0) muceptr = "/(edge<10000000)?q{strat=f};"; /* Multi-centralization */ else muceptr = "q{strat=f}"; if ((flagval & SCOTCH_STRATBALANCE) != 0) { exapptr = "x{bal=0}"; exasptr = "f{bal=0}"; } else { exapptr = "x{bal=}"; /* Parallel exactifier */ exasptr = ""; } if ((flagval & SCOTCH_STRATSAFETY) != 0) { difpptr = ""; difsptr = ""; } else { difpptr = "(d{pass=40}|)"; difsptr = "(d{pass=40}|)"; } stringSubst (bufftab, "", muceptr); stringSubst (bufftab, "", exapptr); stringSubst (bufftab, "", exasptr); stringSubst (bufftab, "", difpptr); stringSubst (bufftab, "", difsptr); stringSubst (bufftab, "", bbaltab); stringSubst (bufftab, "", denstab); stringSubst (bufftab, "", pwgttab); stringSubst (bufftab, "", verttab); return (SCOTCH_stratDgraphMap (straptr, bufftab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map_f.c000066400000000000000000000201671514310134000302220ustar00rootroot00000000000000/* Copyright 2008,2010-2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** parallel mapping routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 28 jun 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the parallel mapping routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAPINIT, dgraphmapinit, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dmapping * const mappptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Num * const termloctab, \ int * const revaptr), \ (grafptr, mappptr, archptr, termloctab, revaptr)) { *revaptr = SCOTCH_dgraphMapInit (grafptr, mappptr, archptr, termloctab); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAPEXIT, dgraphmapexit, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dmapping * const mappptr), \ (grafptr, mappptr)) { SCOTCH_dgraphMapExit (grafptr, mappptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAPSAVE, dgraphmapsave, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dmapping * const mappptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, mappptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHMAPSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHMAPSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_dgraphMapSave (grafptr, mappptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAPCOMPUTE, dgraphmapcompute, ( \ SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dmapping * const mappptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, mappptr, straptr, revaptr)) { *revaptr = SCOTCH_dgraphMapCompute (grafptr, mappptr, straptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAP, dgraphmap, ( \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const partloctab, \ int * const revaptr), \ (grafptr, archptr, straptr, partloctab, revaptr)) { *revaptr = SCOTCH_dgraphMap (grafptr, archptr, straptr, partloctab); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHPART, dgraphpart, ( \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Num * const partnbr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const partloctab, \ int * const revaptr), \ (grafptr, partnbr, straptr, partloctab, revaptr)) { *revaptr = SCOTCH_dgraphPart (grafptr, *partnbr, straptr, partloctab); } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ STRATDGRAPHMAP, stratdgraphmap, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATDGRAPHMAP)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratDgraphMap (straptr, strtab); /* Call original routine */ memFree (strtab); } /* ** */ SCOTCH_FORTRAN ( \ STRATDGRAPHMAPBUILD, stratdgraphmapbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const procnbr, \ const SCOTCH_Num * const partnbr, \ const double * const kbalval, \ int * const revaptr), \ (straptr, flagval, procnbr, partnbr, kbalval, revaptr)) { *revaptr = SCOTCH_stratDgraphMapBuild (straptr, *flagval, *procnbr, *partnbr, *kbalval); } /* ** */ SCOTCH_FORTRAN ( \ STRATDGRAPHCLUSTERBUILD, stratdgraphclusterbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const procnbr, \ const SCOTCH_Num * const pwgtval, \ const double * const densval, \ const double * const bbalval, \ int * const revaptr), \ (straptr, flagval, procnbr, pwgtval, densval, bbalval, revaptr)) { *revaptr = SCOTCH_stratDgraphClusterBuild (straptr, *flagval, *procnbr, *pwgtval, *densval, *bbalval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map_stat.c000066400000000000000000000512451514310134000307510ustar00rootroot00000000000000/* Copyright 2008-2010,2012,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map_stat.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted mapping routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 7.0 : from : 10 sep 2024 **/ /** to : 19 sep 2024 **/ /** **/ /** NOTES : # This code is directly derived from **/ /** the code formerly present in routine **/ /** SCOTCH_dgraphMapView(). **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "dgraph.h" #include "dgraph_halo.h" #include "arch.h" #include "dmapping.h" #include "kdgraph.h" #include "library_dmapping.h" #include "library_dgraph_map_stat.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the mapping routines. */ /* */ /************************************/ /*+ This routine computes distributed mapping *** statistics and returns them in the pointer *** arguments. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphMapStat ( SCOTCH_Dgraph * const libgrafptr, const SCOTCH_Dmapping * const libmappptr, SCOTCH_Num * const tgtnbrptr, /* Number of vertices in target architecture */ SCOTCH_Num * const mapnbrptr, /* Number of target terminal domains used in mapping */ SCOTCH_Num * const mapminptr, /* Minimum load in domain (with respect to domain weight) */ SCOTCH_Num * const mapmaxptr, /* Maximum load in domain (with respect to domain weight) */ double * const mapavgptr, /* Average load in domain (with respect to domain weights) */ double * const mapdltptr, /* Standard deviation of mapping loads */ SCOTCH_Num * const ngbsumptr, /* Total number of neighbors */ SCOTCH_Num * const ngbminptr, /* Minimum number of neighbors */ SCOTCH_Num * const ngbmaxptr, /* Maximum number of neighbors */ SCOTCH_Num * const cdstmaxptr, /* Maximum distance between domains */ SCOTCH_Num cdsttab[256], /* Communication distance histogram array for mapped vertices */ SCOTCH_Num * const cmlosumptr, /* Communication load (sum of edge weights) for mapped vertices */ SCOTCH_Num * const cmdisumptr, /* Communication dilation (sum of distances) for mapped vertices */ SCOTCH_Num * const cmexsumptr) /* Communication expansion (sum of edge weights * distances) etc. */ { ArchDom dorgdat; /* Largest domain in architecture */ unsigned int * restrict nmskloctab; /* Local neighbor bitfield */ unsigned int * restrict nmskglbtab; /* Local neighbor bitfield */ int nmskidxnbr; /* Size of bitfield; int since sent by MPI */ Gnum * restrict tgloloctab; /* Local array of terminal domain loads */ Gnum * restrict tgloglbtab; /* Global array of terminal domain loads */ Gnum * restrict termgsttax; /* Terminal domain ghost mapping array */ Anum tgtnbr; Anum tgtnum; Anum mapnbr; Gnum mapmin; Gnum mapmax; Gnum mapsum; double mapavg; double mapdlt; Gnum vertlocnum; Gnum veloval; int chekloctab[3]; /* Array of local permissions */ int chekglbtab[3]; /* Array of global permissions */ DgraphHaloRequest requdat; Dgraph * const grafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); const LibDmapping * const mappptr = (LibDmapping *) libmappptr; const Arch * restrict const archptr = &mappptr->m.archdat; const Gnum * restrict const veloloctax = grafptr->veloloctax; archDomFrst (archptr, &dorgdat); /* Get architecture domain */ tgtnbr = archDomSize (archptr, &dorgdat); /* Get architecture size */ if (tgtnbrptr != NULL) /* Set size of architecture */ *tgtnbrptr = tgtnbr; if ((grafptr->vertglbnbr == 0) || /* If nothing to do */ (grafptr->edgeglbnbr == 0)) { if (mapnbrptr != NULL) /* Fill needed values with empty results */ *mapnbrptr = 0; if (mapminptr != NULL) *mapminptr = 0; if (mapmaxptr != NULL) *mapmaxptr = 0; if (mapavgptr != NULL) *mapavgptr = 0; if (mapdltptr != NULL) *mapdltptr = 0; if (ngbminptr != NULL) *ngbminptr = 0; if (ngbmaxptr != NULL) *ngbmaxptr = 0; if (ngbsumptr != NULL) *ngbsumptr = 0; if (cdstmaxptr != NULL) *cdstmaxptr = 0; if (cdsttab != NULL) memSet (cdsttab, 0, 256 * sizeof (SCOTCH_Num)); if (cmlosumptr != NULL) *cmlosumptr = 0; if (cmdisumptr != NULL) *cmdisumptr = 0; if (cmexsumptr != NULL) *cmexsumptr = 0; return (0); } if (archVar (archptr)) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": not implemented"); return (1); } chekloctab[1] = chekloctab[2] = LIBDGRAPHMAPSTATNONE; /* Assume nothing to do */ if ((cdstmaxptr != NULL) || (cdsttab != NULL) || (cmlosumptr != NULL) || (cmdisumptr != NULL) || (cmexsumptr != NULL)) chekloctab[1] = LIBDGRAPHMAPSTATCOMM; if ((ngbminptr != NULL) || (ngbmaxptr != NULL) || (ngbsumptr != NULL)) chekloctab[2] = LIBDGRAPHMAPSTATNGHB; if (dgraphGhst (grafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": cannot compute ghost edge array"); return (1); } nmskidxnbr = (tgtnbr + 1 + ((sizeof (int) << 3) - 1)) / (sizeof (int) << 3); /* Size of neighbor subdomain bitfield; TRICK: "+1" to have a "-1" cell for unmapped vertices */ chekloctab[0] = 0; if (memAllocGroup ((void **) (void *) &nmskloctab, (size_t) (nmskidxnbr * sizeof (unsigned int)), &nmskglbtab, (size_t) (nmskidxnbr * sizeof (unsigned int)), &tgloloctab, (size_t) ((tgtnbr + 1) * sizeof (Gnum)), /* TRICK: "+1" to have a "-1" cell for unmapped vertices */ &tgloglbtab, (size_t) ((tgtnbr + 1) * sizeof (Gnum)), &termgsttax, (size_t) (grafptr->vertgstnbr * sizeof (Gnum)), NULL) == NULL) /* TRICK: array not yet based */ chekloctab[0] = 1; if (MPI_Allreduce (chekloctab, chekglbtab, 3, MPI_INT, MPI_MAX, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": communication error (1)"); return (1); } if (chekglbtab[0] != 0) { /* If memory allocation error */ if (nmskloctab != NULL) /* Free group leader if needed */ memFree (nmskloctab); errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": out of memory"); return (1); } if (dmapTerm (&mappptr->m, grafptr, termgsttax) != 0) { /* Fill array of terminal domain numbers for all local vertices */ errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": cannot build local terminal array"); memFree (nmskloctab); /* Free group leader */ return (1); } dgraphHaloAsync (grafptr, termgsttax, GNUM_MPI, &requdat); /* Exchange array of terminal domain numbers across processes */ termgsttax -= grafptr->baseval; memSet (tgloloctab, 0, (tgtnbr + 1) * sizeof (Gnum)); tgloloctab ++; /* TRICK: trim arrays for "-1" cell */ tgloglbtab ++; veloval = 1; for (vertlocnum = grafptr->baseval; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) { #ifdef SCOTCH_DEBUG_DMAP2 if ((termgsttax[vertlocnum] < -1) || (termgsttax[vertlocnum] >= tgtnbr)) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": invalid local terminal array"); tgloloctab[-1] = - (grafptr->veloglbsum + 1); /* Record an error with a value that cannot be compensated for */ break; } #endif /* SCOTCH_DEBUG_DMAP2 */ if (veloloctax != NULL) veloval = veloloctax[vertlocnum]; tgloloctab[termgsttax[vertlocnum]] += veloval; /* One more vertex of given weight assigned to this target */ } if (MPI_Allreduce (tgloloctab - 1, tgloglbtab - 1, tgtnbr + 1, GNUM_MPI, MPI_SUM, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": communication error (2)"); tgloglbtab[-1] = -1; /* Set an error similar to that of an invalid array value */ } if (tgloglbtab[-1] < 0) { /* If error detected */ dgraphHaloWait (&requdat); /* Wait for ghost terminal data to be exchanged */ memFree (nmskloctab); /* Free group leader */ return (1); } mapmin = GNUMMAX; mapmax = 0; mapsum = 0; mapnbr = 0; for (tgtnum = 0; tgtnum < tgtnbr; tgtnum ++) { /* For all valid terminal domain numbers (not -1) */ Gnum tgloval; tgloval = tgloglbtab[tgtnum]; if (tgloval != 0) { /* If target domain has load */ ArchDom domndat; /* Current domain in architecture */ Anum dwgtval; /* Weight of terminal domain */ Gnum tgloavg; /* Average load per target unit load */ mapnbr ++; /* One more terminal domain used */ mapsum += tgloval; /* Aggregate load mapped onto it */ archDomTerm (archptr, &domndat, tgtnum); /* Get weight of terminal domain */ dwgtval = archDomWght (archptr, &domndat); tgloavg = (Gnum) (((double) tgloval / (double) dwgtval) + 0.5L); /* Compute average per domain load */ if (mapmin > tgloavg) mapmin = tgloavg; if (mapmax < tgloavg) mapmax = tgloavg; } } #ifdef SCOTCH_DEBUG_DMAP2 if ((mapsum + tgloglbtab[-1]) != grafptr->veloglbsum) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": invalid mapping data"); dgraphHaloWait (&requdat); /* Wait for ghost terminal data to be exchanged */ memFree (nmskloctab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_DMAP2 */ mapavg = (mapnbr == 0) ? 0.0L : ((double) mapsum / (double) mapnbr); mapdlt = 0.0L; for (tgtnum = 0; tgtnum < tgtnbr; tgtnum ++) { if (tgloglbtab[tgtnum] > 0) /* If non-empty domain */ mapdlt += fabs ((double) tgloglbtab[tgtnum] - mapavg); } mapdlt = (mapnbr != 0) ? mapdlt / ((double) mapnbr * mapavg) : 0.0L; if (mapnbrptr != NULL) *mapnbrptr = (SCOTCH_Num) mapnbr; if (mapminptr != NULL) *mapminptr = (SCOTCH_Num) mapmin; if (mapmaxptr != NULL) *mapmaxptr = (SCOTCH_Num) mapmax; if (mapavgptr != NULL) *mapavgptr = mapavg; if (mapdltptr != NULL) *mapdltptr = mapdlt; if (dgraphHaloWait (&requdat) != 0) { /* Wait for ghost terminal data to be exchanged */ errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": cannot complete asynchronous halo exchange"); memFree (nmskloctab); /* Free group leader */ return (1); } if (chekglbtab[1] == LIBDGRAPHMAPSTATCOMM) { /* If communication data wanted */ Gnum cdstloctab[256 + 3]; /* Local distance histogram array */ Gnum cdstglbtab[256 + 3]; /* Global distance histogram array */ Gnum cmlolocsum; /* Local sum of communication load */ Gnum cmdilocsum; /* Local sum of dilation */ Gnum cmexlocsum; /* Local sum of expansion */ Gnum vertlocnum; Gnum edloval; const Gnum * restrict const vertloctax = grafptr->vertloctax; /* Fast accesses */ const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; const Gnum * restrict const edloloctax = grafptr->edloloctax; memSet (cdstloctab, 0, 256 * sizeof (Gnum)); /* Initialize the data */ cmlolocsum = cmdilocsum = cmexlocsum = 0; edloval = 1; for (vertlocnum = grafptr->baseval; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) { /* For all local vertices */ Gnum termlocnum; ArchDom termdomdat; Gnum edgelocnum; Gnum edgelocnnd; termlocnum = termgsttax[vertlocnum]; if (termlocnum == ~0) /* Skip unmapped vertices */ continue; archDomTerm (archptr, &termdomdat, termlocnum); for (edgelocnum = vertloctax[vertlocnum], edgelocnnd = vendloctax[vertlocnum]; edgelocnum < edgelocnnd; edgelocnum ++) { ArchDom termdomend; Gnum termgstend; Anum distval; termgstend = termgsttax[edgegsttax[edgelocnum]]; if (termgstend == ~0) /* Skip unmapped end vertices */ continue; distval = 0; if (edloloctax != NULL) /* Get edge weight if any */ edloval = edloloctax[edgelocnum]; if (termgstend != termlocnum) { /* If not same domain, compute distance */ archDomTerm (archptr, &termdomend, termgstend); distval = archDomDist (archptr, &termdomdat, &termdomend); } cdstloctab[(distval > 255) ? 255 : distval] += edloval; cmlolocsum += edloval; cmdilocsum += distval; cmexlocsum += distval * edloval; } } cdstloctab[256 + 0] = cmlolocsum; /* Write local sums for collective summing */ cdstloctab[256 + 1] = cmdilocsum; cdstloctab[256 + 2] = cmexlocsum; if (MPI_Allreduce (cdstloctab, cdstglbtab, 256 + 3, GNUM_MPI, MPI_SUM, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": communication error (3)"); memFree (nmskloctab); /* Free group leader */ return (1); } if (cdsttab != NULL) { Anum cdstnum; for (cdstnum = 0; cdstnum < 256; cdstnum ++) /* Arcs have been accounted for twice */ cdsttab[cdstnum] = cdstglbtab[cdstnum] / 2; } if (cdstmaxptr != NULL) { Anum cdstmax; for (cdstmax = 255; cdstmax != -1; cdstmax --) /* Find longest distance */ if (cdstglbtab[cdstmax] != 0) break; *cdstmaxptr = (SCOTCH_Num) cdstmax; } if (cmlosumptr != NULL) *cmlosumptr = (SCOTCH_Num) cdstglbtab[256 + 0] / 2; /* Arcs have been accounted for twice */ if (cmdisumptr != NULL) *cmdisumptr = (SCOTCH_Num) cdstglbtab[256 + 1] / 2; if (cmexsumptr != NULL) *cmexsumptr = (SCOTCH_Num) cdstglbtab[256 + 2] / 2; } if (chekglbtab[2] == LIBDGRAPHMAPSTATNGHB) { /* If neighbor data wanted */ Anum ngbsum; Anum ngbmin; Anum ngbmax; Anum tgtnum; const Gnum * restrict const vertloctax = grafptr->vertloctax; /* Fast accesses */ const Gnum * restrict const vendloctax = grafptr->vendloctax; const Gnum * restrict const edgegsttax = grafptr->edgegsttax; ngbmin = ANUMMAX; ngbmax = 0; ngbsum = 0; for (tgtnum = 0; tgtnum < tgtnbr; tgtnum ++) { /* For all subdomain indices */ int nmskidxnum; Gnum vertlocnum; Anum ngbnbr; if (tgloglbtab[tgtnum] <= 0) /* If empty subdomain, skip it */ continue; memSet (nmskloctab, 0, nmskidxnbr * sizeof (int)); /* Reset neighbor bit mask */ for (vertlocnum = grafptr->baseval; vertlocnum < grafptr->vertlocnnd; vertlocnum ++) { /* For all local vertices */ Gnum termnum; Gnum edgelocnum; Gnum edgelocnnd; termnum = termgsttax[vertlocnum]; if (termnum != tgtnum) /* If vertex does not belong to current part or is not mapped, skip it */ continue; for (edgelocnum = vertloctax[vertlocnum], edgelocnnd = vendloctax[vertlocnum]; edgelocnum < edgelocnnd; edgelocnum ++) { Gnum termend; termend = termgsttax[edgegsttax[edgelocnum]]; if (termend != tgtnum) { /* If edge is not internal */ termend ++; /* TRICK: turn unmapped to 0 and so on */ nmskloctab[termend / (sizeof (int) << 3)] |= 1 << (termend & ((sizeof (int) << 3) - 1)); /* Flag neighbor in bit array */ } } } nmskloctab[0] &= ~1; /* Do not account for unmapped vertices (terminal domain 0 because of "+1") */ if (MPI_Allreduce (nmskloctab, nmskglbtab, nmskidxnbr, MPI_INT, MPI_BOR, grafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphMapStat) ": communication error (4)"); memFree (nmskloctab); /* Free group leader */ return (1); } for (nmskidxnum = 0, ngbnbr = 0; nmskidxnum < nmskidxnbr; nmskidxnum ++) { unsigned int nmskbitval; for (nmskbitval = nmskglbtab[nmskidxnum]; nmskbitval != 0; nmskbitval >>= 1) ngbnbr += nmskbitval & 1; } ngbsum += ngbnbr; if (ngbmin > ngbnbr) ngbmin = ngbnbr; if (ngbmax < ngbnbr) ngbmax = ngbnbr; } if (ngbminptr != NULL) *ngbminptr = (SCOTCH_Num) ngbmin; if (ngbmaxptr != NULL) *ngbmaxptr = (SCOTCH_Num) ngbmax; if (ngbsumptr != NULL) *ngbsumptr = (SCOTCH_Num) ngbsum; } memFree (nmskloctab); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map_stat.h000066400000000000000000000055471514310134000307620ustar00rootroot00000000000000/* Copyright 2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map_stat.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the library distributed **/ /** mapping statistics routine. **/ /** **/ /** DATES : # Version 7.0 : from : 19 sep 2024 **/ /** to : 19 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_LIBRARY_DGRAPH_MAP_STAT_H /* The statistics category computation flags. */ #define LIBDGRAPHMAPSTATNONE 0x0000 /* No computations to perform */ #define LIBDGRAPHMAPSTATCOMM 0x0001 /* Compute communication statistics */ #define LIBDGRAPHMAPSTATNGHB 0x0002 /* Compute statistics on neighbors */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map_stat_f.c000066400000000000000000000103361514310134000312520ustar00rootroot00000000000000/* Copyright 2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map_stat_f.c **/ /** **/ /** AUTHOR : Clement BARTHELEMY **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed mapping handling routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 10 sep 2024 **/ /** to : 19 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAPSTAT, dgraphmapstat, ( \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Dmapping * const mapptr, \ SCOTCH_Num * const tgtnbrptr, \ SCOTCH_Num * const mapnbrptr, \ SCOTCH_Num * const mapminptr, \ SCOTCH_Num * const mapmaxptr, \ double * const mapavgptr, \ double * const mapdltptr, \ SCOTCH_Num * const ngbsumptr, \ SCOTCH_Num * const ngbminptr, \ SCOTCH_Num * const ngbmaxptr, \ SCOTCH_Num * const cdstmaxptr, \ SCOTCH_Num cdsttab[256], \ SCOTCH_Num * const cmlosumptr, \ SCOTCH_Num * const cmdisumptr, \ SCOTCH_Num * const cmexsumptr), \ (grafptr, mapptr, tgtnbrptr, \ mapnbrptr, mapminptr, mapmaxptr, \ mapavgptr, mapdltptr, \ ngbsumptr, ngbminptr, ngbmaxptr, \ cdstmaxptr, cdsttab, cmlosumptr, cmdisumptr, cmexsumptr)) { SCOTCH_dgraphMapStat (grafptr, mapptr, tgtnbrptr, mapnbrptr, mapminptr, mapmaxptr, mapavgptr, mapdltptr, ngbsumptr, ngbminptr, ngbmaxptr, cdstmaxptr, cdsttab, cmlosumptr, cmdisumptr, cmexsumptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map_view.c000066400000000000000000000166751514310134000307600ustar00rootroot00000000000000/* Copyright 2008-2010,2012,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map_view.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted mapping routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.1 : from : 26 jul 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 19 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "dgraph.h" #include "dgraph_halo.h" #include "arch.h" #include "dmapping.h" #include "kdgraph.h" #include "library_dmapping.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines compute statistics */ /* on distributed mappings. */ /* */ /**************************************/ /*+ This routine writes distributed mapping *** statistics to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphMapView ( SCOTCH_Dgraph * const libgrafptr, const SCOTCH_Dmapping * const libmappptr, FILE * const stream) { Anum tgtnbr; /* Number of vertices in target architecture */ Anum mapnbr; /* Number of target terminal domains used in mapping */ Gnum mapmin; /* Minimum load in domain (with respect to domain weight) */ Gnum mapmax; /* Maximum load in domain (with respect to domain weight) */ double mapavg; /* Average load in domain (with respect to domain weights) */ double mapdlt; /* Standard deviation of mapping loads */ double mapmmy; /* Ratio of maximum over average */ Anum ngbsum; /* Total number of neighbors */ Anum ngbmin; /* Minimum number of neighbors */ Anum ngbmax; /* Maximum number of neighbors */ Anum cdstnum; /* Current index in communication distance array */ Anum cdstmax; /* Maximum distance reached in histogram array */ Gnum cdsttab[256]; /* Communication distance histogram array */ Gnum cmlosum; /* Communication load (sum of edge weights) */ Gnum cmdisum; /* Communication dilation (sum of distances) */ Gnum cmexsum; /* Communication expansion (sum of edge weights * distances) */ const Dgraph * const grafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); if (SCOTCH_dgraphMapStat (libgrafptr, libmappptr, &tgtnbr, &mapnbr, &mapmin, &mapmax, &mapavg, &mapdlt, &ngbsum, &ngbmin, &ngbmax, &cdstmax, cdsttab, &cmlosum, &cmdisum, &cmexsum) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphMapView) ": cannot compute dgraph map stats"); return (1); } if (stream == NULL) return (0); fprintf (stream, "M\tProcessors " GNUMSTRING "/" GNUMSTRING "(%g)\n", (Gnum) mapnbr, (Gnum) tgtnbr, (double) mapnbr / (double) tgtnbr); mapmmy = (mapnbr != 0) ? (double) mapmax / (double) mapavg : 0.0L; fprintf (stream, "M\tTarget min=" GNUMSTRING "\tmax=" GNUMSTRING "\tavg=%g\tdlt=%g\tmaxavg=%g\n", (Gnum) mapmin, (Gnum) mapmax, mapavg, mapdlt, mapmmy); fprintf (stream, "M\tNeighbors min=" GNUMSTRING "\tmax=" GNUMSTRING "\tsum=" GNUMSTRING "\n", (Gnum) ngbmin, (Gnum) ngbmax, (Gnum) ngbsum); fprintf (stream, "M\tCommDilat=%f\t(" GNUMSTRING ")\n", (double) cmdisum / (double) (grafptr->edgeglbnbr / 2), (Gnum) cmdisum); fprintf (stream, "M\tCommExpan=%f\t(" GNUMSTRING ")\n", ((cmlosum == 0) ? (double) 0.0L : (double) cmexsum / (double) cmlosum), (Gnum) cmexsum); fprintf (stream, "M\tCommCutSz=%f\t(" GNUMSTRING ")\n", ((cmlosum == 0) ? (double) 0.0L : (double) (cmlosum - cdsttab[0]) / (double) cmlosum), (Gnum) (cmlosum - cdsttab[0])); fprintf (stream, "M\tCommDelta=%f\n", (((double) cmlosum * (double) cmdisum) == 0.0L) ? (double) 0.0L : ((double) grafptr->edgeglbnbr) / (double) (cmlosum * 2)); for (cdstnum = 0; cdstnum <= cdstmax; cdstnum ++) /* Print distance histogram */ fprintf (stream, "M\tCmlosum[" ANUMSTRING "]=%f\n", (Anum) cdstnum, (double) cdsttab[cdstnum] / (double) cmlosum); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_map_view_f.c000066400000000000000000000107161514310134000312530ustar00rootroot00000000000000/* Copyright 2008,2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_map_view_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed mapping handling routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 27 jul 2008 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHMAPVIEW, dgraphmapview, ( \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Dmapping * const mapptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, mapptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if (*fileptr == -1) /* If process does not want to open a stream */ stream = NULL; else { if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHMAPVIEW)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHMAPVIEW)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } } o = SCOTCH_dgraphMapView (grafptr, mapptr, stream); if (stream != NULL) /* If process has an open stream */ fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order.c000066400000000000000000000434151514310134000302540ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2014,2018,2019,2021,2023-2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted graph ordering routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 25 apr 2006 **/ /** to : 11 nov 2008 **/ /** # Version 5.1 : from : 29 mar 2010 **/ /** to : 14 aug 2010 **/ /** # Version 6.0 : from : 08 jan 2012 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 24 sep 2021 **/ /** to : 25 sep 2021 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "dgraph.h" #include "order.h" #include "dorder.h" #include "hdgraph.h" #include "hdgraph_order_si.h" #include "hdgraph_order_st.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed graph ordering */ /* routines. */ /* */ /************************************/ /*+ This routine initializes an API ordering *** with respect to the given source graph *** and the locations of output parameters. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderInit ( const SCOTCH_Dgraph * const libgrafptr, /*+ Distributed graph to order +*/ SCOTCH_Dordering * const libordeptr) /*+ Ordering structure to initialize +*/ { Dgraph * srcgrafptr; Dorder * srcordeptr; if (sizeof (SCOTCH_Dordering) < sizeof (Dorder)) { errorPrint (STRINGIFY (SCOTCH_graphDorderInit) ": internal error"); return (1); } srcgrafptr = (Dgraph *) CONTEXTOBJECT (libgrafptr); /* Use structure as source graph */ srcordeptr = (Dorder *) libordeptr; return (dorderInit (srcordeptr, srcgrafptr->baseval, srcgrafptr->vertglbnbr, srcgrafptr->proccomm)); } /*+ This routine frees an API ordering. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphOrderExit ( const SCOTCH_Dgraph * const libgrafptr, SCOTCH_Dordering * const libordeptr) { dorderExit ((Dorder *) libordeptr); } /*+ This routine saves the contents of *** the given ordering to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderSave ( const SCOTCH_Dgraph * const libgrafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const libordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (dorderSave ((Dorder *) libordeptr, (Dgraph *) CONTEXTOBJECT (libgrafptr), stream)); } /*+ This routine computes an ordering *** of the API ordering structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderCompute ( SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ SCOTCH_Dordering * const ordeptr, /*+ Ordering to compute +*/ SCOTCH_Strat * const straptr) /*+ Ordering strategy +*/ { return (SCOTCH_dgraphOrderComputeList (grafptr, ordeptr, ((Dgraph *) CONTEXTOBJECT (grafptr))->vertlocnbr, NULL, straptr)); } /*+ This routine computes a partial ordering *** of the listed vertices of the API ordering *** structure graph with respect to the given *** strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderComputeList ( SCOTCH_Dgraph * const libgrafptr, /*+ Graph to order +*/ SCOTCH_Dordering * const libordeptr, /*+ Ordering to compute +*/ const SCOTCH_Num listlocnbr, /*+ Number of vertices in local list +*/ const SCOTCH_Num * const listloctab, /*+ List of vertex indices to order +*/ SCOTCH_Strat * const straptr) /*+ Ordering strategy +*/ { Gnum listglbnbr; /* Global number of vertices in list */ Dorder * srcordeptr; /* Pointer to ordering */ Dgraph * restrict srcgrafptr; /* Pointer to scotch graph */ const Strat * ordstraptr; /* Pointer to ordering strategy */ Hdgraph halgrafdat; /* Halo source graph structure */ Hdgraph * halgrafptr; Hdgraph halgraftmp; DorderCblk * cbl0ptr; /* Root column block */ DorderCblk * cbl1ptr; /* Column block induced from list */ DorderCblk * cbl2ptr; /* Complement of cbl1 */ DorderCblk * cblkptr; /* Column block to be ordered */ CONTEXTDECL (libgrafptr); int o; halgrafptr = NULL; cbl0ptr = NULL; cbl1ptr = NULL; cbl2ptr = NULL; cblkptr = NULL; o = 1; /* Assume an error */ if (CONTEXTINIT (libgrafptr)) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot initialize context"); goto abort; } srcgrafptr = (Dgraph *) CONTEXTGETOBJECT (libgrafptr); #ifdef SCOTCH_DEBUG_DGRAPH1 if ((listlocnbr < 0) || (listlocnbr > srcgrafptr->vertlocnbr)) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": invalid parameters (1)"); goto abort; } #endif /* SCOTCH_DEBUG_DGRAPH1 */ #ifdef SCOTCH_DEBUG_DGRAPH2 if (dgraphCheck (srcgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": invalid input graph"); goto abort; } #endif /* SCOTCH_DEBUG_DGRAPH2 */ if (*((Strat **) straptr) == NULL) { /* Set default ordering strategy if necessary */ if (SCOTCH_stratDgraphOrderBuild (straptr, SCOTCH_STRATQUALITY, srcgrafptr->procglbnbr, 0, 0.2)) goto abort; } ordstraptr = *((Strat **) straptr); if (ordstraptr->tablptr != &hdgraphorderststratab) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": not a distributed ordering strategy"); goto abort; } srcordeptr = (Dorder *) libordeptr; /* Get ordering */ dorderFree (srcordeptr); /* Clean all existing ordering data */ if ((cbl0ptr = dorderFrst (srcordeptr)) == NULL) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot create root column block"); goto abort; } if (dgraphGhst (srcgrafptr) != 0) { /* Compute ghost edge array if not already present */ errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot compute ghost edge array"); goto abort; } halgrafdat.s = *srcgrafptr; /* Copy non-halo graph data */ halgrafdat.s.flagval &= ~DGRAPHFREEALL; /* Do not free anything from it */ halgrafdat.s.edloloctax = NULL; /* Never mind about edge loads */ halgrafdat.s.vlblloctax = NULL; /* Do not propagate vertex labels */ halgrafdat.vhallocnbr = 0; /* No halo on graph */ halgrafdat.vhndloctax = halgrafdat.s.vendloctax; halgrafdat.ehallocnbr = 0; halgrafdat.levlnum = 0; halgrafdat.contptr = CONTEXTGETDATA (libgrafptr); halgrafptr = &halgrafdat; /* Assume we work on the whole graph */ if (MPI_Allreduce (&listlocnbr, &listglbnbr, 1, GNUM_MPI, MPI_SUM, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": communication error (1)"); goto abort; } if (listglbnbr == 0) { /* If empty list, return identity permutation */ o = hdgraphOrderSi (halgrafptr, cbl0ptr); goto abort; } if (listglbnbr == srcgrafptr->vertglbnbr) /* If all vertices in list, order whole graph */ cblkptr = cbl0ptr; else { /* If not, order the subset of vertices */ if (hdgraphInduceList (&halgrafdat, listlocnbr, listloctab, &halgraftmp) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot create induced subgraph"); goto abort; } halgrafptr = &halgraftmp; /* Ordering will be computed on induced graph */ cbl0ptr->typeval = DORDERCBLKDICO; /* Node is a set of two disconnected components */ if ((cbl1ptr = dorderNew (cbl0ptr, srcordeptr->proccomm)) == NULL) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot create induced column block (1)"); goto abort; } cbl1ptr->ordeglbval = 0; /* Un-based inverse permutation index */ cbl1ptr->vnodglbnbr = halgrafptr->s.vertglbnbr; cbl1ptr->cblkfthnum = 0; cblkptr = cbl1ptr; /* Order induced graph */ } if (hdgraphOrderSt (halgrafptr, cblkptr, ordstraptr) != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot compute ordering"); goto abort; } if (listglbnbr < srcgrafptr->vertglbnbr) { /* Order vertices excluded from list, if any */ Gnum vnumlocnbr; /* Local number of vertices excluded from list */ Gnum procvrtval; /* Vertex offset of the process */ Gnum vertlocadj; /* Adjustment from local to global vertex index */ Gnum * vnumloctab; Gnum vertlocnum; Gnum vnumlocnum; Gnum listlocnum; vertlocadj = halgrafdat.s.procvrttab[halgrafdat.s.proclocnum]; vnumlocnbr = halgrafdat.s.vertlocnbr - listlocnbr; if ((vnumloctab = memAlloc (halgrafdat.s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": out of memory"); goto abort; } memSet (vnumloctab, 0, halgrafdat.s.vertlocnbr * sizeof (Gnum)); for (listlocnum = 0; listlocnum < listlocnbr; listlocnum ++) /* Flag vertices in list */ vnumloctab[listloctab[listlocnum] - halgrafdat.s.baseval] = ~0; for (vertlocnum = 0, vnumlocnum = 0; vertlocnum < halgrafdat.s.vertlocnbr; vertlocnum ++) { if (vnumloctab[vertlocnum] != ~0) /* Vertex was excluded from list */ vnumloctab[vnumlocnum ++] = vertlocnum + vertlocadj; } #ifdef SCOTCH_DEBUG_DGRAPH1 if (vnumlocnum != vnumlocnbr) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": internal error"); memFree (vnumloctab); goto abort; } #endif /* SCOTCH_DEBUG_DGRAPH1 */ if ((cbl2ptr = dorderNew (cbl0ptr, srcordeptr->proccomm)) == NULL) { /* TRICK: create column block after first ordering */ errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": cannot create induced column block (2)"); memFree (vnumloctab); goto abort; } cbl2ptr->ordeglbval = halgrafptr->s.vertglbnbr; cbl2ptr->vnodglbnbr = srcgrafptr->vertglbnbr - halgrafptr->s.vertglbnbr; cbl2ptr->cblkfthnum = 1; if (MPI_Scan (&vnumlocnbr, &procvrtval, /* Compute vertex offset by partial sum reduction */ 1, GNUM_MPI, MPI_SUM, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphOrderComputeList) ": communication error (2)"); memFree (vnumloctab); goto abort; } procvrtval -= vnumlocnbr - halgrafdat.s.baseval; o = hdgraphOrderSi2 (cbl2ptr, /* Simple ordering of vertices not in list */ halgrafdat.s.baseval, vnumlocnbr, vnumloctab - halgrafdat.s.baseval, procvrtval, halgrafdat.s.proccomm); memFree (vnumloctab); } else o = 0; abort: if (halgrafptr != NULL) { /* If at least one halo graph structure has been created */ hdgraphExit (&halgrafdat); /* Free the contents of the full halo graph structure */ if (halgrafptr == &halgraftmp) /* If the induced subgraph structure has been created */ hdgraphExit (&halgraftmp); /* Free it as well */ } CONTEXTEXIT (libgrafptr); return (o); } /*+ This routine parses the given *** distributed graph ordering strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratDgraphOrder ( SCOTCH_Strat * const straptr, const char * const string) { if (*((Strat **) straptr) != NULL) stratExit (*((Strat **) straptr)); if ((*((Strat **) straptr) = stratInit (&hdgraphorderststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratDgraphOrder) ": error in ordering strategy"); return (1); } return (0); } /*+ This routine provides predefined *** ordering strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratDgraphOrderBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num procnbr, /*+ Number of processes for running +*/ const SCOTCH_Num levlnbr, /*+ Number of nested dissection levels +*/ const double balrat) /*+ Desired imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char bbaltab[32]; char levltab[32]; char verttab[32]; Gnum vertnbr; char * tstpptr; char * tstsptr; char * oleaptr; char * osepptr; vertnbr = MAX (2000 * procnbr, 10000); vertnbr = MIN (vertnbr, 1000000); sprintf (bbaltab, "%lf", balrat); sprintf (levltab, GNUMSTRING, levlnbr); sprintf (verttab, GNUMSTRING, vertnbr); strcpy (bufftab, "n{sep=/()?m{vert=,asc=b{width=3,strat=q{strat=f}},low=q{strat=h},seq=q{strat=m{vert=120,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=h{pass=10}f{bal=}}}}};,ole=q{strat=n{sep=/()?m{vert=120,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=h{pass=10}f{bal=}}};,ole=,ose=}},ose=s,osq=n{sep=/()?m{vert=120,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=h{pass=10}f{bal=}}};,ole=,ose=}}"); switch (flagval & (SCOTCH_STRATLEVELMIN | SCOTCH_STRATLEVELMAX)) { case SCOTCH_STRATLEVELMIN : tstpptr = "0=0"; tstsptr = "(levl<)|(vert>240)"; break; case SCOTCH_STRATLEVELMAX : tstpptr = "(levl<)"; tstsptr = "(levl<)&(vert>240)"; break; case (SCOTCH_STRATLEVELMIN | SCOTCH_STRATLEVELMAX) : tstpptr = tstsptr = "levl<"; oleaptr = "s"; /* Simple ordering for leaves */ break; default : tstpptr = "0=0"; tstsptr = "vert>240"; break; } oleaptr = ((flagval & SCOTCH_STRATLEAFSIMPLE) != 0) ? "s" : "f{cmin=15,cmax=100000,frat=0.0}"; osepptr = ((flagval & SCOTCH_STRATSEPASIMPLE) != 0) ? "s" : "g"; stringSubst (bufftab, "", tstpptr); stringSubst (bufftab, "", tstsptr); stringSubst (bufftab, "", levltab); stringSubst (bufftab, "", oleaptr); stringSubst (bufftab, "", osepptr); stringSubst (bufftab, "", bbaltab); stringSubst (bufftab, "", verttab); return (SCOTCH_stratDgraphOrder (straptr, bufftab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order_f.c000066400000000000000000000170201514310134000305520ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed graph ordering routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 16 feb 2007 **/ /** to : 31 may 2008 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 25 jul 2010 **/ /** # Version 6.0 : from : 08 jan 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERINIT, dgraphorderinit, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr, \ int * const revaptr), \ (grafptr, ordeptr, revaptr)) { *revaptr = SCOTCH_dgraphOrderInit (grafptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDEREXIT, dgraphorderexit, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr), \ (grafptr, ordeptr)) { SCOTCH_dgraphOrderExit (grafptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERSAVE, dgraphordersave, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if (*fileptr == -1) /* If process is not the root */ stream = NULL; else { /* Open stream for root process */ if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } } o = SCOTCH_dgraphOrderSave (grafptr, ordeptr, stream); if (stream != NULL) fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERCOMPUTE, dgraphordercompute, ( \ SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, ordeptr, straptr, revaptr)) { *revaptr = SCOTCH_dgraphOrderCompute (grafptr, ordeptr, straptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERCOMPUTELIST, dgraphordercomputelist, ( \ SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr, \ const SCOTCH_Num * listptr, \ const SCOTCH_Num * const listtab, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, ordeptr, listptr, listtab, straptr, revaptr)) { *revaptr = SCOTCH_dgraphOrderComputeList (grafptr, ordeptr, *listptr, listtab, straptr); } /* ** */ SCOTCH_FORTRAN ( \ STRATDGRAPHORDER, stratdgraphorder, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATDGRAPHORDER)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratDgraphOrder (straptr, strtab); /* Call original routine */ memFree (strtab); /* Prevent compiler warnings */ } /* ** */ SCOTCH_FORTRAN ( \ STRATDGRAPHORDERBUILD, stratdgraphorderbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const procnbr, \ const SCOTCH_Num * const levlnbr, \ const double * const bbalval, \ int * const revaptr), \ (straptr, flagval, procnbr, levlnbr, bbalval, revaptr)) { *revaptr = SCOTCH_stratDgraphOrderBuild (straptr, *flagval, *procnbr, *levlnbr, *bbalval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order_gather.c000066400000000000000000000157371514310134000316140ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_gather.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted ordering gathering routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 21 jul 2007 **/ /** to : 04 aug 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "order.h" #include "dorder.h" #include "library_order.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed ordering */ /* handling routines. */ /* */ /************************************/ /*+ This routine initializes an API centralized *** ordering with respect to the given distributed *** source graph and the locations of output parameters. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphCorderInit ( const SCOTCH_Dgraph * const grafptr, /*+ Distributed graph to order +*/ SCOTCH_Ordering * const cordptr, /*+ Ordering structure to initialize +*/ SCOTCH_Num * const permtab, /*+ Direct permutation array +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Separator tree array +*/ { Dgraph * srcgrafptr; LibOrder * libcordptr; #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Ordering) < sizeof (LibOrder)) { errorPrint (STRINGIFY (SCOTCH_dgraphCorderInit) ": internal error"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ srcgrafptr = (Dgraph *) CONTEXTOBJECT (grafptr); /* Use structure as distributed source graph */ libcordptr = (LibOrder *) cordptr; libcordptr->permtab = ((permtab == NULL) || ((void *) permtab == (void *) srcgrafptr)) ? NULL : (Gnum *) permtab; libcordptr->peritab = ((peritab == NULL) || ((void *) peritab == (void *) srcgrafptr)) ? NULL : (Gnum *) peritab; libcordptr->cblkptr = ((cblkptr == NULL) || ((void *) cblkptr == (void *) srcgrafptr)) ? NULL : (Gnum *) cblkptr; libcordptr->rangtab = ((rangtab == NULL) || ((void *) rangtab == (void *) srcgrafptr)) ? NULL : (Gnum *) rangtab; libcordptr->treetab = ((treetab == NULL) || ((void *) treetab == (void *) srcgrafptr)) ? NULL : (Gnum *) treetab; return (orderInit (&libcordptr->o, srcgrafptr->baseval, srcgrafptr->vertglbnbr, libcordptr->peritab)); } /*+ This routine frees an API centralized ordering. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dgraphCorderExit ( const SCOTCH_Dgraph * const grafptr, SCOTCH_Ordering * const cordptr) { orderExit (&((LibOrder *) cordptr)->o); } /*+ This routine gathers the contents of *** the given distributed ordering into the *** given centralized ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderGather ( const SCOTCH_Dgraph * const grafptr, /*+ Not used +*/ const SCOTCH_Dordering * const dordptr, /*+ Distributed ordering +*/ SCOTCH_Ordering * const cordptr) /*+ Centralized ordering +*/ { LibOrder * libcordptr; /* Pointer to ordering */ if ((cordptr != NULL) && ((void *) cordptr != (void *) dordptr)) { /* If potential root process */ libcordptr = (LibOrder *) cordptr; /* Get centralized ordering */ if (dorderGather ((Dorder *) dordptr, &libcordptr->o) != 0) return (1); if (libcordptr->permtab != NULL) /* Build direct permutation if wanted */ orderPeri (libcordptr->o.peritab, libcordptr->o.baseval, libcordptr->o.vnodnbr, libcordptr->permtab, libcordptr->o.baseval); if (libcordptr->rangtab != NULL) /* Build range array if column block data wanted */ orderRang (&libcordptr->o, libcordptr->rangtab); if (libcordptr->treetab != NULL) /* Build separator tree array if wanted */ orderTree (&libcordptr->o, libcordptr->treetab); if (libcordptr->cblkptr != NULL) /* Set number of column blocks if wanted */ *(libcordptr->cblkptr) = libcordptr->o.cblknbr; return (0); } else return (dorderGather ((Dorder *) dordptr, NULL)); } library_dgraph_order_gather_f.c000066400000000000000000000103741514310134000320320ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_gather_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed ordering gathering routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 21 jul 2007 **/ /** to : 22 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ SCOTCH_FORTRAN ( \ DGRAPHCORDERINIT, dgraphcorderinit, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Ordering * const ordeptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (grafptr, ordeptr, permtab, peritab, \ cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_dgraphCorderInit (grafptr, ordeptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHCORDEREXIT, dgraphcorderexit, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Ordering * const ordeptr), \ (grafptr, ordeptr)) { SCOTCH_dgraphCorderExit (grafptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERGATHER, dgraphordergather, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const dordptr, \ SCOTCH_Ordering * const cordptr, \ int * const revaptr), \ (grafptr, dordptr, cordptr, revaptr)) { *revaptr = SCOTCH_dgraphOrderGather (grafptr, dordptr, cordptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order_io.c000066400000000000000000000103371514310134000307400ustar00rootroot00000000000000/* Copyright 2007,2012,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted ordering I/O routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 26 jul 2007 **/ /** to : 18 oct 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dorder.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed ordering */ /* handling routines. */ /* */ /************************************/ /*+ This routine saves to the given stream *** the mapping data associated with the *** given distributed ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderSaveMap ( const SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (dorderSaveMap ((Dorder *) ordeptr, (Dgraph *) CONTEXTOBJECT (grafptr), stream)); } /*+ This routine saves to the given stream *** the separator tree data associated with *** the given distributed ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderSaveTree ( const SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (dorderSaveTree ((Dorder *) ordeptr, (Dgraph *) CONTEXTOBJECT (grafptr), stream)); } library_dgraph_order_io_block.c000066400000000000000000000074041514310134000320340ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/* Copyright 2007,2008,2012,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_io_block.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted ordering distributed tree **/ /** building routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.1 : from : 28 may 2008 **/ /** to : 28 may 2008 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dorder.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed ordering */ /* handling routines. */ /* */ /************************************/ /*+ This routine saves the contents of *** the given ordering to the given stream *** on the form of a block ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderSaveBlock ( const SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (dorderSaveBlock ((Dorder *) ordeptr, (Dgraph *) CONTEXTOBJECT (grafptr), stream)); } library_dgraph_order_io_block_f.c000066400000000000000000000112001514310134000323260ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/* Copyright 2007,2008,2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_io_block_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed graph ordering routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 28 may 2008 **/ /** to : 28 may 2008 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ SCOTCH_FORTRAN ( \ DGRAPHORDERSAVEBLOCK, dgraphordersaveblock, ( \ const SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Dordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if (*fileptr == -1) /* If process is not the root */ stream = NULL; else { /* Open stream for root process */ if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVEBLOCK)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVEBLOCK)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } } o = SCOTCH_dgraphOrderSaveBlock (grafptr, ordeptr, stream); if (stream != NULL) fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order_io_f.c000066400000000000000000000126451514310134000312510ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_io_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed ordering I/O routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 26 jul 2007 **/ /** to : 18 oct 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ SCOTCH_FORTRAN ( \ DGRAPHORDERSAVEMAP, dgraphordersavemap, ( \ const SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Dordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVEMAP)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVEMAP)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_dgraphOrderSaveMap (grafptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERSAVETREE, dgraphordersavetree, ( \ const SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Dordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVETREE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DGRAPHORDERSAVETREE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_dgraphOrderSaveTree (grafptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order_perm.c000066400000000000000000000073241514310134000312760ustar00rootroot00000000000000/* Copyright 2007,2012,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_perm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted ordering permutation building **/ /** routine of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 18 oct 2007 **/ /** to : 18 oct 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dorder.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed ordering */ /* handling routines. */ /* */ /************************************/ /*+ This routine fills the given distributed *** permutation array with the permutation *** stored in the given distributed ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderPerm ( const SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const ordeptr, /*+ Computed ordering +*/ SCOTCH_Num * const permloctab) /*+ Direct permutation +*/ { return (dorderPerm ((Dorder *) ordeptr, (Dgraph *) CONTEXTOBJECT (grafptr), permloctab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_order_perm_f.c000066400000000000000000000070231514310134000315770ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_perm_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed ordering permutation **/ /** building routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.0 : from : 18 oct 2007 **/ /** to : 18 oct 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ SCOTCH_FORTRAN ( \ DGRAPHORDERPERM, dgraphorderperm, ( \ const SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Dordering * const ordeptr, \ SCOTCH_Num * const permloctab, \ int * const revaptr), \ (grafptr, ordeptr, permloctab, revaptr)) { *revaptr = SCOTCH_dgraphOrderPerm (grafptr, ordeptr, permloctab); } library_dgraph_order_tree_dist.c000066400000000000000000000104401514310134000322270ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/* Copyright 2007,2012,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_tree_dist.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted ordering distributed tree **/ /** building routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.1 : from : 30 nov 2007 **/ /** to : 30 nov 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "dorder.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the distributed ordering */ /* handling routines. */ /* */ /************************************/ /*+ This routine returns the number of *** distributed column blocks contained *** in the given distributed ordering. *** It returns: *** - >=0 : on success. *** - <0 : on error. +*/ SCOTCH_Num SCOTCH_dgraphOrderCblkDist ( const SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const ordeptr) /*+ Computed ordering +*/ { return (dorderCblkDist ((Dorder *) ordeptr)); } /*+ This routine fills the given distributed *** permutation array with the permutation *** stored in the given distributed ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dgraphOrderTreeDist ( const SCOTCH_Dgraph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Dordering * const ordeptr, /*+ Computed ordering +*/ SCOTCH_Num * const treeglbtab, /*+ Father array +*/ SCOTCH_Num * const sizeglbtab) /*+ Size array +*/ { return (dorderTreeDist ((Dorder *) ordeptr, (Dgraph *) CONTEXTOBJECT (grafptr), treeglbtab, sizeglbtab)); } library_dgraph_order_tree_dist_f.c000066400000000000000000000076611514310134000325470ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_order_tree_dist_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** distributed ordering distributed tree **/ /** building routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.1 : from : 30 nov 2007 **/ /** to : 30 nov 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ SCOTCH_FORTRAN ( \ DGRAPHORDERCBLKDIST, dgraphordercblkdist, ( \ SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr, \ SCOTCH_Num * const cblkglbptr), \ (grafptr, ordeptr, cblkglbptr)) { *cblkglbptr = SCOTCH_dgraphOrderCblkDist (grafptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ DGRAPHORDERTREEDIST, dgraphordertreedist, ( \ SCOTCH_Dgraph * const grafptr, \ SCOTCH_Dordering * const ordeptr, \ SCOTCH_Num * const treeglbtab, \ SCOTCH_Num * const sizeglbtab, \ int * const revaptr), \ (grafptr, ordeptr, treeglbtab, sizeglbtab, revaptr)) { *revaptr = SCOTCH_dgraphOrderTreeDist (grafptr, ordeptr, treeglbtab, sizeglbtab); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_redist.c000066400000000000000000000112741514310134000304310ustar00rootroot00000000000000/* Copyright 2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_redist.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the graph redistribution **/ /** routines. **/ /** **/ /** DATES : # Version 6.0 : from : 28 mar 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dgraph.h" #include "dgraph_redist.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine computes a distributed graph *** that matches the provided partition. *** It returns: *** - 0 : if redistributed graph created. *** - !0 : on error. +*/ int SCOTCH_dgraphRedist ( SCOTCH_Dgraph * const liborggrafptr, const SCOTCH_Num * const partloctab, /* Array of part numbers for each local vertex */ const SCOTCH_Num * const permgsttab, /* Redistribution permutation array */ const SCOTCH_Num vertlocdlt, /* Extra size of local vertex array */ const SCOTCH_Num edgelocdlt, /* Extra size of local edge array */ SCOTCH_Dgraph * const libredgrafptr) { SCOTCH_Num baseval; Dgraph * const orggrafptr = (Dgraph *) CONTEXTOBJECT (liborggrafptr); Dgraph * const redgrafptr = (Dgraph *) CONTEXTOBJECT (libredgrafptr); #ifdef SCOTCH_DEBUG_LIBRARY1 int o; MPI_Comm_compare (orggrafptr->proccomm, redgrafptr->proccomm, &o); if ((o != MPI_IDENT) && (o != MPI_CONGRUENT)) { errorPrint (STRINGIFY (SCOTCH_dgraphRedist) ": communicators are not congruent"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ baseval = orggrafptr->baseval; return (dgraphRedist (orggrafptr, ((partloctab != NULL) && (partloctab != (SCOTCH_Num *) orggrafptr)) ? (const Gnum * restrict const) (partloctab - baseval) : NULL, ((permgsttab != NULL) && (permgsttab != (SCOTCH_Num *) orggrafptr)) ? (const Gnum * restrict const) (permgsttab - baseval) : NULL, (vertlocdlt < 0) ? 0 : vertlocdlt, (edgelocdlt < 0) ? 0 : edgelocdlt, redgrafptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_redist_f.c000066400000000000000000000070701514310134000307350ustar00rootroot00000000000000/* Copyright 2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_redist_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 28 mar 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /********************************************/ /* */ /* These routines are the Fortran API for */ /* the distributed graph handling routines. */ /* */ /********************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHREDIST, dgraphredist, ( \ SCOTCH_Dgraph * const srcgrafptr, \ const SCOTCH_Num * const partloctab, \ const SCOTCH_Num * const permgsttab, \ const SCOTCH_Num * const vertlocdlt, \ const SCOTCH_Num * const edgelocdlt, \ SCOTCH_Dgraph * const dstgrafptr, \ int * const revaptr), \ (srcgrafptr, partloctab, permgsttab, vertlocdlt, edgelocdlt, dstgrafptr, revaptr)) { *revaptr = SCOTCH_dgraphRedist (srcgrafptr, partloctab, permgsttab, *vertlocdlt, *edgelocdlt, dstgrafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_scatter.c000066400000000000000000000077021514310134000306050ustar00rootroot00000000000000/* Copyright 2007,2012,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_scatter.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 28 apr 2006 **/ /** to : 12 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 24 oct 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dgraph.h" #include "ptscotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine scatters the data of a *** centralized graph on a distributed graph. *** It returns: *** - 0 : if the scattering succeeded. *** - !0 : on error. +*/ int SCOTCH_dgraphScatter ( SCOTCH_Dgraph * const dgrfptr, const SCOTCH_Graph * const cgrfptr) { const Graph * srccgrfptr; srccgrfptr = ((cgrfptr == NULL) || /* If no centralized graph provided */ (((void *) cgrfptr) == ((void *) dgrfptr))) /* Or same reference as distributed graph */ ? NULL /* Then process does not hold a valid centralized graph */ : (const Graph *) CONTEXTOBJECT (cgrfptr); /* Else get centralized graph without its context */ return (dgraphScatter ((Dgraph *) CONTEXTOBJECT (dgrfptr), srccgrfptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_scatter_f.c000066400000000000000000000066411514310134000311130ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_scatter_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 16 feb 2007 **/ /** to : 12 jul 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph handling */ /* routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHSCATTER, dgraphscatter, ( \ SCOTCH_Dgraph * const dgrfptr, \ SCOTCH_Graph * const cgrfptr, \ int * const revaptr), \ (dgrfptr, cgrfptr, revaptr)) { *revaptr = SCOTCH_dgraphScatter (dgrfptr, cgrfptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_stat.c000066400000000000000000000305411514310134000301100ustar00rootroot00000000000000/* Copyright 2007,2008,2012,2014,2018,2019,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_stat.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 23 jun 2007 **/ /** to : 03 apr 2008 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 21 may 2018 **/ /** # Version 6.1 : from : 05 apr 2021 **/ /** to : 05 apr 2021 **/ /** # Version 7.0 : from : 20 sep 2019 **/ /** to : 08 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "dgraph.h" #include "library_dgraph_stat.h" #include "ptscotch.h" /* ** The static variables. */ static int dgraphstatblentab[2] = { 7, 3 }; static MPI_Datatype dgraphstattypetab[2] = { GNUM_MPI, MPI_DOUBLE }; /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /* This routine is the reduction-loc operator which ** returns in inout[2] the rank of the process which ** holds the best partition. ** It returns: ** - void : in all cases. */ static void dgraphStatReduceAll ( const DgraphStatData * const in, /* First operand */ DgraphStatData * const inout, /* Second and output operand */ const int * const len, /* Number of instances; should be 1, not used */ const MPI_Datatype * const typedat) /* MPI datatype; not used */ { if (inout->velomin > in->velomin) inout->velomin = in->velomin; if (inout->velomax < in->velomax) inout->velomax = in->velomax; if (inout->degrmin > in->degrmin) inout->degrmin = in->degrmin; if (inout->degrmax < in->degrmax) inout->degrmax = in->degrmax; if (inout->edlomin > in->edlomin) inout->edlomin = in->edlomin; if (inout->edlomax < in->edlomax) inout->edlomax = in->edlomax; inout->edlosum += in->edlosum; inout->velodlt += in->velodlt; inout->degrdlt += in->degrdlt; inout->edlodlt += in->edlodlt; } /*+ This routine computes statistics *** on the given distributed graph. *** It returns: *** - VOID : in all cases. +*/ int SCOTCH_dgraphStat ( const SCOTCH_Dgraph * const grafptr, SCOTCH_Num * const velominptr, SCOTCH_Num * const velomaxptr, SCOTCH_Num * const velosumptr, double * veloavgptr, double * velodltptr, SCOTCH_Num * const degrminptr, SCOTCH_Num * const degrmaxptr, double * degravgptr, double * degrdltptr, SCOTCH_Num * const edlominptr, SCOTCH_Num * const edlomaxptr, SCOTCH_Num * const edlosumptr, double * edloavgptr, double * edlodltptr) { const Dgraph * srcgrafptr; DgraphStatData srcgstadat; DgraphStatData srclstadat; MPI_Datatype srctypedat; MPI_Aint srcdisptab[2]; MPI_Op srcoperdat; Gnum vertlocnum; double veloglbavg; double velolocdlt; Gnum degrlocmin; Gnum degrlocmax; double degrglbavg; double degrlocdlt; Gnum edloglbsum; double edloglbavg; double edlolocdlt; int o; srcgrafptr = (Dgraph *) CONTEXTOBJECT (grafptr); velolocdlt = 0.0L; if (srcgrafptr->vertglbnbr > 0) { if (srcgrafptr->veloloctax != NULL) { /* If graph has vertex loads */ const Gnum * restrict veloloctax; Gnum velolocmin; Gnum velolocmax; veloloctax = srcgrafptr->veloloctax; velolocmin = GNUMMAX; velolocmax = 0; veloglbavg = (double) srcgrafptr->veloglbsum / (double) srcgrafptr->vertglbnbr; for (vertlocnum = srcgrafptr->baseval; vertlocnum < srcgrafptr->vertlocnnd; vertlocnum ++) { Gnum velolocval; velolocval = veloloctax[vertlocnum]; if (velolocval < velolocmin) velolocmin = velolocval; if (velolocval > velolocmax) velolocmax = velolocval; velolocdlt += fabs ((double) velolocval - veloglbavg); } srclstadat.velomin = velolocmin; srclstadat.velomax = velolocmax; } else { srclstadat.velomin = srclstadat.velomax = 1; veloglbavg = 1.0L; } } else { srclstadat.velomin = srclstadat.velomax = 0; veloglbavg = 0.0L; } srclstadat.velodlt = velolocdlt; degrlocmax = 0; degrlocdlt = 0.0L; if (srcgrafptr->vertglbnbr > 0) { degrlocmin = GNUMMAX; degrglbavg = (double) srcgrafptr->edgeglbnbr / (double) srcgrafptr->vertglbnbr; for (vertlocnum = srcgrafptr->baseval; vertlocnum < srcgrafptr->vertlocnnd; vertlocnum ++) { Gnum degrlocval; degrlocval = srcgrafptr->vendloctax[vertlocnum] - srcgrafptr->vertloctax[vertlocnum]; /* Get vertex degree */ if (degrlocval < degrlocmin) degrlocmin = degrlocval; if (degrlocval > degrlocmax) degrlocmax = degrlocval; degrlocdlt += fabs ((double) degrlocval - degrglbavg); } } else { degrlocmin = 0; degrglbavg = 0.0L; } srclstadat.degrmin = degrlocmin; srclstadat.degrmax = degrlocmax; srclstadat.degrdlt = degrlocdlt; edlolocdlt = 0.0L; if (srcgrafptr->edgeglbnbr > 0) { if (srcgrafptr->edloloctax != NULL) { /* If graph has edge loads */ Gnum edlolocmin; Gnum edlolocmax; Gnum edlolocsum; edlolocmin = GNUMMAX; edlolocmax = 0; edlolocsum = 0; for (vertlocnum = srcgrafptr->baseval; vertlocnum < srcgrafptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; for (edgelocnum = srcgrafptr->vertloctax[vertlocnum]; edgelocnum < srcgrafptr->vendloctax[vertlocnum]; edgelocnum ++) { Gnum edlolocval; edlolocval = srcgrafptr->edloloctax[edgelocnum]; edlolocsum += edlolocval; if (edlolocval < edlolocmin) /* Account for edge load */ edlolocmin = edlolocval; if (edlolocval > edlolocmax) edlolocmax = edlolocval; } } if (MPI_Allreduce (&edlolocsum, &edloglbsum, 1, GNUM_MPI, MPI_SUM, srcgrafptr->proccomm) != MPI_SUCCESS) { errorPrint (STRINGIFY (SCOTCH_dgraphStat) ": communication error (1)"); return (1); } edloglbavg = (double) edloglbsum / (double) srcgrafptr->edgeglbnbr; /* Divide arc sum by arc count */ for (vertlocnum = srcgrafptr->baseval; vertlocnum < srcgrafptr->vertlocnnd; vertlocnum ++) { Gnum edgelocnum; for (edgelocnum = srcgrafptr->vertloctax[vertlocnum]; edgelocnum < srcgrafptr->vendloctax[vertlocnum]; edgelocnum ++) edlolocdlt += fabs ((double) srcgrafptr->edloloctax[edgelocnum] - edloglbavg); } srclstadat.edlomin = edlolocmin; srclstadat.edlomax = edlolocmax; } else { srclstadat.edlomin = srclstadat.edlomax = 1; edloglbsum = srcgrafptr->edgeglbnbr / 2; edloglbavg = 1.0L; } } else { srclstadat.edlomin = srclstadat.edlomax = 0; edloglbsum = 0; edloglbavg = 0.0L; } srclstadat.edlodlt = edlolocdlt; #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) MPI_Get_address (&srclstadat.velomin, &srcdisptab[0]); MPI_Get_address (&srclstadat.velodlt, &srcdisptab[1]); #else /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ MPI_Address (&srclstadat.velomin, &srcdisptab[0]); MPI_Address (&srclstadat.velodlt, &srcdisptab[1]); #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ srcdisptab[1] -= srcdisptab[0]; srcdisptab[0] = 0; o = 1; /* Assume something will go wrong */ #if ((defined MPI_VERSION) && (MPI_VERSION >= 3)) if ((MPI_Type_create_struct (2, dgraphstatblentab, srcdisptab, dgraphstattypetab, &srctypedat) == MPI_SUCCESS) && #else /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ if ((MPI_Type_struct (2, dgraphstatblentab, srcdisptab, dgraphstattypetab, &srctypedat) == MPI_SUCCESS) && #endif /* ((defined MPI_VERSION) && (MPI_VERSION >= 3)) */ (MPI_Type_commit (&srctypedat) == MPI_SUCCESS)) { if (MPI_Op_create ((MPI_User_function *) dgraphStatReduceAll, 0, &srcoperdat) == MPI_SUCCESS) { if (MPI_Allreduce (&srclstadat, &srcgstadat, 1, srctypedat, srcoperdat, srcgrafptr->proccomm) == MPI_SUCCESS) o = 0; MPI_Op_free (&srcoperdat); } MPI_Type_free (&srctypedat); } if (o != 0) { errorPrint (STRINGIFY (SCOTCH_dgraphStat) ": communication error (2)"); return (1); } if (velominptr != NULL) *velominptr = (SCOTCH_Num) srcgstadat.velomin; if (velomaxptr != NULL) *velomaxptr = (SCOTCH_Num) srcgstadat.velomax; if (velosumptr != NULL) *velosumptr = (SCOTCH_Num) srcgrafptr->veloglbsum; if (veloavgptr != NULL) *veloavgptr = (double) veloglbavg; if (velodltptr != NULL) *velodltptr = srcgstadat.velodlt / (double) srcgrafptr->vertglbnbr; if (degrminptr != NULL) *degrminptr = (SCOTCH_Num) srcgstadat.degrmin; if (degrmaxptr != NULL) *degrmaxptr = (SCOTCH_Num) srcgstadat.degrmax; if (degravgptr != NULL) *degravgptr = (double) degrglbavg; if (degrdltptr != NULL) *degrdltptr = srcgstadat.degrdlt / (double) srcgrafptr->vertglbnbr; if (edlominptr != NULL) *edlominptr = (SCOTCH_Num) srcgstadat.edlomin; if (edlomaxptr != NULL) *edlomaxptr = (SCOTCH_Num) srcgstadat.edlomax; if (edlosumptr != NULL) *edlosumptr = (SCOTCH_Num) edloglbsum; if (edloavgptr != NULL) *edloavgptr = (double) edloglbavg; if (edlodltptr != NULL) *edlodltptr = srcgstadat.edlodlt / (double) srcgrafptr->edgeglbnbr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_stat.h000066400000000000000000000055631514310134000301230ustar00rootroot00000000000000/* Copyright 2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /**********************************************************/ /* */ /* NAME : library_dgraph_stat.h */ /* */ /* AUTHOR : Francois PELLEGRINI */ /* */ /* FUNCTION : These lines are the data declarations */ /* for the distributed source graph */ /* analyzing routine. */ /* */ /* # Version 5.0 : from : 23 jun 2007 */ /* to : 23 jun 2007 */ /* */ /**********************************************************/ /* ** The type and structure definitions. */ /* Communication structure for distributed graph statistics. */ typedef struct DgraphStatData_ { Gnum velomin; Gnum velomax; Gnum degrmin; Gnum degrmax; Gnum edlomin; Gnum edlomax; Gnum edlosum; double velodlt; double degrdlt; double edlodlt; } DgraphStatData; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dgraph_stat_f.c000066400000000000000000000107221514310134000304140ustar00rootroot00000000000000/* Copyright 2007,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dgraph_stat_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source graph analyzing **/ /** routine of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 24 jun 2007 **/ /** to : 24 jun 2007 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DGRAPHSTAT, Dgraphstat, ( \ const SCOTCH_Dgraph * const grafptr, \ SCOTCH_Num * const velominptr, \ SCOTCH_Num * const velomaxptr, \ SCOTCH_Num * const velosumptr, \ double * veloavgptr, \ double * velodltptr, \ SCOTCH_Num * const degrminptr, \ SCOTCH_Num * const degrmaxptr, \ double * degravgptr, \ double * degrdltptr, \ SCOTCH_Num * const edlominptr, \ SCOTCH_Num * const edlomaxptr, \ SCOTCH_Num * const edlosumptr, \ double * edloavgptr, \ double * edlodltptr, \ int * const revaptr), \ (grafptr, velominptr, velomaxptr, velosumptr, \ veloavgptr, velodltptr, degrminptr, \ degrmaxptr, degravgptr, degrdltptr, \ edlominptr, edlomaxptr, edlosumptr, \ edloavgptr, edlodltptr, revaptr)) { *revaptr = SCOTCH_dgraphStat (grafptr, velominptr, velomaxptr, velosumptr, veloavgptr, velodltptr, degrminptr, degrmaxptr, degravgptr, degrdltptr, edlominptr, edlomaxptr, edlosumptr, edloavgptr, edlodltptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmapping.c000066400000000000000000000073201514310134000274060ustar00rootroot00000000000000/* Copyright 2010,2012,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmapping.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains miscellaneous **/ /** routines for handling distributed **/ /** graph mappings. **/ /** **/ /** DATES : # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for */ /* mapping structure handling routines. */ /* */ /****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Dmapping structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Dmapping * SCOTCH_dmapAlloc () { return ((SCOTCH_Dmapping *) memAlloc (sizeof (SCOTCH_Dmapping))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Dmapping structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_dmapSizeof () { return (sizeof (SCOTCH_Dmapping)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmapping.h000066400000000000000000000053721514310134000274200ustar00rootroot00000000000000/* Copyright 2008,2010 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmapping.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the library ordering **/ /** structure. **/ /** **/ /** DATES : # Version 5.1 : from : 16 jun 2008 **/ /** to : 04 nov 2010 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Distributed mapping. +*/ typedef struct LibDmapping_ { Dmapping m; /*+ Distributed mapping data +*/ Gnum * termloctab; /*+ Local mapping array +*/ } LibDmapping; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh.c000066400000000000000000000170221514310134000267070ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source mesh handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 12 aug 2025 **/ /** to : 12 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" /* For graphPtscotch() */ #include "dmesh.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed mesh handling routines. */ /* */ /****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Dmesh structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Dmesh * SCOTCH_dmeshAlloc () { return ((SCOTCH_Dmesh *) memAlloc (sizeof (SCOTCH_Dmesh))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Dmesh structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_dmeshSizeof () { return (sizeof (SCOTCH_Dmesh)); } /*+ This routine initializes the opaque *** distributed mesh structure used to *** handle distributed meshs in the *** Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_dmeshInit ( SCOTCH_Dmesh * const meshptr, MPI_Comm proccomm) /* Communicator to be used for all communications */ { #ifdef SCOTCH_DEBUG_DMESH2 if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_dmeshInit) ": internal error (1)"); return (1); } if (sizeof (SCOTCH_Dmesh) < sizeof (Dmesh)) { errorPrint (STRINGIFY (SCOTCH_dmeshInit) ": internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_DMESH2 */ return (dmeshInit ((Dmesh *) meshptr, proccomm)); } /*+ This routine frees the contents of the *** given opaque mesh structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dmeshExit ( SCOTCH_Dmesh * const meshptr) { if (! contextContainerTrue (meshptr)) dmeshExit ((Dmesh *) meshptr); } /*+ This routine frees the contents of the *** given opaque mesh structure but does *** not free its private data. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dmeshFree ( SCOTCH_Dmesh * const meshptr) { if (! contextContainerTrue (meshptr)) dmeshFree ((Dmesh *) meshptr); } /*+ This routine accesses mesh size data. *** NULL pointers on input indicate unwanted *** data. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dmeshSize ( const SCOTCH_Dmesh * const libmeshptr, SCOTCH_Num * const velmglbnbr, SCOTCH_Num * const velmlocnbr, SCOTCH_Num * const eelmglbnbr, SCOTCH_Num * const eelmlocnbr, SCOTCH_Num * const vnodglbnbr) { const Dmesh * const srcmeshptr = (Dmesh *) CONTEXTOBJECT (libmeshptr); if (velmglbnbr != NULL) *velmglbnbr = (SCOTCH_Num) (srcmeshptr->velmglbnbr); if (velmlocnbr != NULL) *velmlocnbr = (SCOTCH_Num) (srcmeshptr->velmlocnbr); if (eelmglbnbr != NULL) *eelmglbnbr = (SCOTCH_Num) (srcmeshptr->eelmglbnbr); if (eelmlocnbr != NULL) *eelmlocnbr = (SCOTCH_Num) (srcmeshptr->eelmlocnbr); if (vnodglbnbr != NULL) *vnodglbnbr = (SCOTCH_Num) (srcmeshptr->vnodglbnbr); } /*+ This routine accesses all of the graph data. *** NULL pointers on input indicate unwanted *** data. NULL pointers on output indicate *** unexisting arrays. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_dmeshData ( const SCOTCH_Dmesh * const libmeshptr, /* Graph structure to read */ SCOTCH_Num * const baseptr, /* Base value */ SCOTCH_Num * const velmglbnbr, /* Number of global element vertices */ SCOTCH_Num * const velmlocnbr, /* Number of local element vertices */ SCOTCH_Num ** const velmloctab, /* Element vertex array [velmlocnbr+1] */ SCOTCH_Num * const eelmglbnbr, /* Number of global element edges */ SCOTCH_Num * const eelmlocnbr, /* Number of local element edges */ SCOTCH_Num ** const eelmloctab, /* Element edge array [eelmlocnbr] */ SCOTCH_Num * const vnodglbnbr, /* Number of global node vertices */ MPI_Comm * const commptr) /* MPI Communicator */ { const Dmesh * const srcmeshptr = (Dmesh *) CONTEXTOBJECT (libmeshptr); if (baseptr != NULL) *baseptr = srcmeshptr->baseval; if (velmglbnbr != NULL) *velmglbnbr = (SCOTCH_Num) (srcmeshptr->velmglbnbr); if (velmlocnbr != NULL) *velmlocnbr = (SCOTCH_Num) (srcmeshptr->velmlocnbr); if (velmloctab != NULL) *velmloctab = (SCOTCH_Num *) (srcmeshptr->velmloctab); if (eelmglbnbr != NULL) *eelmglbnbr = (SCOTCH_Num) (srcmeshptr->eelmglbnbr); if (eelmlocnbr != NULL) *eelmlocnbr = (SCOTCH_Num) (srcmeshptr->eelmlocnbr); if (eelmloctab != NULL) *eelmloctab = (SCOTCH_Num *) (srcmeshptr->eelmloctab); if (vnodglbnbr != NULL) *vnodglbnbr = (SCOTCH_Num) (srcmeshptr->vnodglbnbr); if (commptr != NULL) *commptr = srcmeshptr->proccomm; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_build_adm.c000066400000000000000000000077101514310134000307120ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_build_adm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source mesh building routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 15 aug 2025 **/ /** to : 15 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dmesh.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed mesh handling routines. */ /* */ /****************************************/ /*+ This routine fills the contents of the given *** opaque distributed mesh structure with the *** data provided by the user. The base value *** allows the user to set the graph base to 0 or 1. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_dmeshBuildAdm ( SCOTCH_Dmesh * const meshptr, const SCOTCH_Num baseval, const SCOTCH_Num velmlocnbr, /* Number of local elements */ SCOTCH_Num * const velmloctab, /* Local element vertex begin array */ const SCOTCH_Num eelmlocnbr, /* Number of local element-to-node edges */ SCOTCH_Num * const eelmloctab, /* Local edge array */ const SCOTCH_Num vnodglbnbr) { if ((baseval < -1) || (baseval > 1)) { errorPrint (STRINGIFY (SCOTCH_dmeshBuildAdm) ": invalid base parameter"); return (1); } return (dmeshBuildAdm ((Dmesh * const) CONTEXTOBJECT (meshptr), baseval, velmlocnbr, velmloctab, eelmlocnbr, eelmloctab, vnodglbnbr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_build_adm_f.c000066400000000000000000000073341514310134000312210ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_io_load_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source mesh handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 15 aug 2025 **/ /** to : 15 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /*******************************************/ /* */ /* These routines are the Fortran API for */ /* the distributed mesh handling routines. */ /* */ /*******************************************/ /* When an input stream is built from the given ** file handle, it is set as unbuffered, so as to ** allow for multiple stream reads from the same ** file handle. If it were buffered, too many ** input characters would be read on the first ** block read. */ SCOTCH_FORTRAN ( \ DMESHBUILDADM, dmeshbuildadm, ( \ SCOTCH_Dmesh * const meshptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const velmlocnbr, \ SCOTCH_Num * const velmloctab, \ const SCOTCH_Num * const eelmlocnbr, \ SCOTCH_Num * const eelmloctab, \ const SCOTCH_Num * const vnodglbnbr, \ int * const revaptr), \ (meshptr, baseval, velmlocnbr, velmloctab, eelmlocnbr, eelmloctab, vnodglbnbr, revaptr)) { *revaptr = SCOTCH_dmeshBuildAdm (meshptr, *baseval, *velmlocnbr, velmloctab, *eelmlocnbr, eelmloctab, *vnodglbnbr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_dgraph.c000066400000000000000000000065301514310134000302360ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_dgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Scotch **/ /** mesh-to-graph converter. **/ /** **/ /** DATES : # Version 7.0 : from : 15 aug 2025 **/ /** to : 15 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "dmesh.h" #include "ptscotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Scotch graph and geometry */ /* handling routines. */ /* */ /*************************************/ /*+ This routine builds an opaque dual graph structure *** from an opaque mesh structure. The dual graph adjacency *** is defined such that two elements are adjacent, if *** both shared at least noconbr points. *** - 0 : if building has succeeded. *** - !0 : on error. +*/ int SCOTCH_dmeshDgraphDual ( const SCOTCH_Dmesh * restrict const meshptr, SCOTCH_Dgraph * restrict const grafptr, const SCOTCH_Num noconbr) { return (dmeshDgraphDual ((Dmesh *) meshptr, (Dgraph *) grafptr, noconbr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_dgraph_f.c000066400000000000000000000064071514310134000305460ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_dgraph_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed mesh-to-distributed **/ /** graph converter of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 7.0 : from : 15 aug 2025 **/ /** to : 15 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /*******************************************/ /* */ /* These routines are the Fortran API for */ /* the distributed mesh handling routines. */ /* */ /*******************************************/ /* ** */ SCOTCH_FORTRAN ( \ DMESHDGRAPHDUAL, dmeshdgraphdual, ( \ const SCOTCH_Dmesh * const meshptr, \ SCOTCH_Dgraph * const grafptr, \ const SCOTCH_Num * const nocoptr, \ int * const revaptr), \ (meshptr, grafptr, nocoptr, revaptr)) { *revaptr = SCOTCH_dmeshDgraphDual (meshptr, grafptr, *nocoptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_f.c000066400000000000000000000124171514310134000272170ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source mesh handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 12 aug 2025 **/ /** to : 12 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mesh handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ DMESHINIT, dmeshinit, ( \ SCOTCH_Dmesh * const meshptr, \ const MPI_Fint * const commptr, \ int * const revaptr), \ (meshptr, commptr, revaptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); *revaptr = SCOTCH_dmeshInit (meshptr, commdat); } /* ** */ SCOTCH_FORTRAN ( \ DMESHEXIT, dmeshexit, ( \ SCOTCH_Dmesh * const meshptr), \ (meshptr)) { SCOTCH_dmeshExit (meshptr); } /* ** */ SCOTCH_FORTRAN ( \ DMESHSIZEOF, dmeshsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_dmeshSizeof (); } /* ** */ SCOTCH_FORTRAN ( \ DMESHSIZE, dmeshsize, ( \ const SCOTCH_Dmesh * const meshptr, \ SCOTCH_Num * const velmglbptr, \ SCOTCH_Num * const velmlocptr, \ SCOTCH_Num * const eelmglbptr, \ SCOTCH_Num * const eelmlocptr, \ SCOTCH_Num * const vnodglbptr), \ (meshptr, velmglbptr, velmlocptr, eelmglbptr, eelmlocptr, vnodglbptr)) { SCOTCH_dmeshSize (meshptr, velmglbptr, velmlocptr, eelmglbptr, eelmlocptr, vnodglbptr); } /* ** */ SCOTCH_FORTRAN ( \ DMESHDATA, dmeshdata, ( \ const SCOTCH_Dmesh * const meshptr, \ const SCOTCH_Num * const indxptr, \ SCOTCH_Num * const baseptr, \ SCOTCH_Num * const velmglbptr, \ SCOTCH_Num * const velmlocptr, \ SCOTCH_Idx * const velmlocidx, \ SCOTCH_Num * const eelmglbptr, \ SCOTCH_Num * const eelmlocptr, \ SCOTCH_Idx * const eelmlocidx, \ SCOTCH_Num * const vnodglbptr, \ MPI_Fint * const commptr), \ (meshptr, indxptr, baseptr, \ velmglbptr, velmlocptr, velmlocidx, \ eelmglbptr, eelmlocptr, eelmlocidx, \ vnodglbptr, commptr)) { SCOTCH_Num * velmloctab; /* Pointer to mesh arrays */ SCOTCH_Num * eelmloctab; MPI_Comm commdat; SCOTCH_dmeshData (meshptr, baseptr, velmglbptr, velmlocptr, &velmloctab, eelmglbptr, eelmlocptr, &eelmloctab, vnodglbptr, &commdat); *velmlocidx = (SCOTCH_Idx) (velmloctab - indxptr) + 1; /* Add 1 since Fortran indices start at 1 */ *eelmlocidx = (SCOTCH_Idx) (eelmloctab - indxptr) + 1; *commptr = MPI_Comm_c2f (commdat); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_io_load.c000066400000000000000000000100721514310134000303730ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_io_load.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the distri- **/ /** buted source mesh loading routine of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 12 aug 2025 **/ /** to : 12 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "dmesh.h" #include "ptscotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* distributed mesh handling routines. */ /* */ /****************************************/ /*+ This routine loads the given opaque mesh *** structure with the data of the given stream. *** The base value allows the user to set the *** mesh base to 0 or 1, or to the base value *** of the stream if the base value is equal *** to -1. On input, vertex loads are discarded if *** flagval is 1, edge loads are discarded if flagval *** is 2, and both if flagval is set to 3. *** It returns: *** - 0 : if the loading succeeded. *** - !0 : on error. +*/ int SCOTCH_dmeshLoad ( SCOTCH_Dmesh * const meshptr, FILE * const fileptr, const SCOTCH_Num baseval, const SCOTCH_Num flagval) { GraphLoadFlag flagtmp; /* Graph load flags */ if ((baseval < -1) || (baseval > 1)) { errorPrint (STRINGIFY (SCOTCH_dmeshLoad) ": invalid base parameter"); return (1); } if ((flagval < 0) || (flagval > 3)) { errorPrint (STRINGIFY (SCOTCH_dmeshLoad) ": invalid flag parameter"); return (1); } flagtmp = (((flagval & 1) != 0) ? GRAPHIONOLOADVERT : 0) + (((flagval & 2) != 0) ? GRAPHIONOLOADEDGE : 0); return (dmeshLoad ((Dmesh * const) CONTEXTOBJECT (meshptr), fileptr, (Gnum) baseval, flagtmp)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dmesh_io_load_f.c000066400000000000000000000111111514310134000306730ustar00rootroot00000000000000/* Copyright 2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dmesh_io_load_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the distributed source mesh handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 7.0 : from : 12 aug 2025 **/ /** to : 12 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /*******************************************/ /* */ /* These routines are the Fortran API for */ /* the distributed mesh handling routines. */ /* */ /*******************************************/ /* When an input stream is built from the given ** file handle, it is set as unbuffered, so as to ** allow for multiple stream reads from the same ** file handle. If it were buffered, too many ** input characters would be read on the first ** block read. */ SCOTCH_FORTRAN ( \ DMESHLOAD, dmeshload, ( \ SCOTCH_Dmesh * const meshptr, \ int * const fileptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const flagval, \ int * const revaptr), \ (meshptr, fileptr, baseval, flagval, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if (*fileptr == -1) /* If process does not want to open a stream */ stream = NULL; else { if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DMESHLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (DMESHLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } setbuf (stream, NULL); /* Do not buffer on input */ } o = SCOTCH_dmeshLoad (meshptr, stream, *baseval, *flagval); if (stream != NULL) /* If process has an open stream */ fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_dorder.c000066400000000000000000000073401514310134000270700ustar00rootroot00000000000000/* Copyright 2010,2012,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_dorder.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains miscellaneous **/ /** routines for handling distributed **/ /** graph orderings. **/ /** **/ /** DATES : # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 29 nov 2012 **/ /** to : 29 nov 2012 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" /*****************************************/ /* */ /* These routines are the C API for */ /* ordering structure handling routines. */ /* */ /*****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Dordering structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Dordering * SCOTCH_dorderAlloc () { return ((SCOTCH_Dordering *) memAlloc (sizeof (SCOTCH_Dordering))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Dordering structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_dorderSizeof () { return (sizeof (SCOTCH_Dordering)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_errcom.c000066400000000000000000000132241514310134000270760ustar00rootroot00000000000000/* Copyright 2004,2007,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_errcom.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module redirects the errors **/ /** generated by the routines of the **/ /** libSCOTCH library to the standard **/ /** error processing routines. **/ /** **/ /** DATES : # Version 3.3 : from : 06 oct 1998 **/ /** to : 13 oct 1998 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 13 oct 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #ifdef errorPrint #undef errorPrint /* No redefinition of routines to be called */ #undef errorPrintW #undef errorProg #endif /* errorPrint */ /********************************/ /* */ /* The error handling routines. */ /* */ /********************************/ static char _SCOTCHerrorProgName[32] = ""; /* This routine sets the program name for ** error reporting. ** It returns: ** - VOID : in all cases. */ void SCOTCH_errorProg ( const char * const progstr) /*+ Program name +*/ { size_t charnbr; const char * nsrcptr; char * ndstptr; nsrcptr = progstr; ndstptr = _SCOTCHerrorProgName; charnbr = strlen (progstr); if (charnbr > 31) { _SCOTCHerrorProgName[0] = _SCOTCHerrorProgName[1] = _SCOTCHerrorProgName[2] = '.'; ndstptr += 3; nsrcptr += charnbr - 28; charnbr = 28; } strncpy (ndstptr, nsrcptr, charnbr); _SCOTCHerrorProgName[31] = '\0'; } /* This routine prints an error message with ** a variable number of arguments, as printf () ** does, and exits. ** It returns: ** - EXIT : in all cases. */ void SCOTCH_errorPrint ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* Argument list of the call */ char errbuf[1024]; /* Error buffer */ va_start (errlist, errstr); /* Open variable-argument list */ vsnprintf (errbuf, 1023, errstr, errlist); /* Write result to buffer */ va_end (errlist); /* Close variable-argument list */ errbuf[1023] = '\0'; /* Set end of string */ errorPrint (errbuf); /* Print arguments */ exit (1); } /* This routine prints a warning message with ** a variable number of arguments, as printf () ** does. ** It returns: ** - VOID : in all cases. */ void SCOTCH_errorPrintW ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* Argument list of the call */ char errbuf[1024]; /* Error buffer */ va_start (errlist, errstr); /* Open variable-argument list */ vsnprintf (errbuf, 1023, errstr, errlist); /* Write result to buffer */ va_end (errlist); /* Close variable-argument list */ errbuf[1023] = '\0'; /* Set end of string */ errorPrintW (errbuf); /* Print arguments */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_error.c000066400000000000000000000144051514310134000267420ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_error.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module provides error handling **/ /** routines to process errors generated by **/ /** the routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 5.0 : from : 06 mar 2008 **/ /** to : 24 may 2008 **/ /** # Version 5.1 : from : 27 sep 2008 **/ /** to : 17 jul 2011 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /********************************/ /* */ /* The error handling routines. */ /* */ /********************************/ static char _SCOTCHerrorProgName[32] = ""; /* This routine sets the program name for ** error reporting. ** It returns: ** - VOID : in all cases. */ void errorProg ( const char * const progstr) /*+ Program name +*/ { size_t charnbr; const char * nsrcptr; char * ndstptr; nsrcptr = progstr; ndstptr = _SCOTCHerrorProgName; charnbr = strlen (progstr); if (charnbr > 31) { _SCOTCHerrorProgName[0] = _SCOTCHerrorProgName[1] = _SCOTCHerrorProgName[2] = '.'; ndstptr += 3; nsrcptr += charnbr - 28; charnbr = 28; } strncpy (ndstptr, nsrcptr, charnbr); _SCOTCHerrorProgName[31] = '\0'; } /* This routine prints an error message with ** a variable number of arguments, as printf () ** does, and exits. ** It returns: ** - void : in all cases. */ void errorPrint ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* The argument list of the call */ #ifdef SCOTCH_PTSCOTCH int proclocnum; #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "%s", _SCOTCHerrorProgName); #ifdef SCOTCH_PTSCOTCH if ((MPI_Initialized (&proclocnum) == MPI_SUCCESS) && (proclocnum != 0) && (MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum) == MPI_SUCCESS)) fprintf (stderr, "(%d): ", proclocnum); else fprintf (stderr, ": "); #else /* SCOTCH_PTSCOTCH */ if (_SCOTCHerrorProgName[0] != '\0') fprintf (stderr, ": "); #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "ERROR: "); va_start (errlist, errstr); vfprintf (stderr, errstr, errlist); /* Print arguments */ va_end (errlist); fprintf (stderr, "\n"); fflush (stderr); /* In case it has been set to buffered mode */ } /* This routine prints a warning message with ** a variable number of arguments, as printf () ** does. ** It returns: ** - VOID : in all cases. */ void errorPrintW ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* The argument list of the call */ #ifdef SCOTCH_PTSCOTCH int proclocnum; #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "%s", _SCOTCHerrorProgName); #ifdef SCOTCH_PTSCOTCH if ((MPI_Initialized (&proclocnum) == MPI_SUCCESS) && (proclocnum != 0) && (MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum) == MPI_SUCCESS)) fprintf (stderr, "(%d): ", proclocnum); else fprintf (stderr, ": "); #else /* SCOTCH_PTSCOTCH */ if (_SCOTCHerrorProgName[0] != '\0') fprintf (stderr, ": "); #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "WARNING: "); va_start (errlist, errstr); vfprintf (stderr, errstr, errlist); /* Print arguments */ va_end (errlist); fprintf (stderr, "\n"); fflush (stderr); /* In case it has been set to buffered mode */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_error_exit.c000066400000000000000000000150611514310134000277720ustar00rootroot00000000000000/* Copyright 2004,2007-2009,2011,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_error_exit.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module provides error handling **/ /** routines to process errors generated by **/ /** the routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 5.0 : from : 06 mar 2008 **/ /** to : 24 may 2008 **/ /** # Version 5.1 : from : 27 sep 2008 **/ /** to : 17 jul 2011 **/ /** # Version 6.0 : from : 24 sep 2019 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /********************************/ /* */ /* The error handling routines. */ /* */ /********************************/ static char _SCOTCHerrorProgName[32] = ""; /* This routine sets the program name for ** error reporting. ** It returns: ** - VOID : in all cases. */ void errorProg ( const char * const progstr) /*+ Program name +*/ { size_t charnbr; const char * nsrcptr; char * ndstptr; nsrcptr = progstr; ndstptr = _SCOTCHerrorProgName; charnbr = strlen (progstr); if (charnbr > 31) { _SCOTCHerrorProgName[0] = _SCOTCHerrorProgName[1] = _SCOTCHerrorProgName[2] = '.'; ndstptr += 3; nsrcptr += charnbr - 28; charnbr = 28; } strncpy (ndstptr, nsrcptr, charnbr); _SCOTCHerrorProgName[31] = '\0'; } /* This routine prints an error message with ** a variable number of arguments, as printf () ** does, and exits. ** It returns: ** - EXIT : in all cases. */ void errorPrint ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* The argument list of the call */ #ifdef SCOTCH_PTSCOTCH int proclocnum; #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "%s", _SCOTCHerrorProgName); #ifdef SCOTCH_PTSCOTCH if ((MPI_Initialized (&proclocnum) == MPI_SUCCESS) && (proclocnum != 0) && (MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum) == MPI_SUCCESS)) fprintf (stderr, "(%d): ", proclocnum); else fprintf (stderr, ": "); #else /* SCOTCH_PTSCOTCH */ if (_SCOTCHerrorProgName[0] != '\0') fprintf (stderr, ": "); #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "ERROR: "); va_start (errlist, errstr); vfprintf (stderr, errstr, errlist); /* Print arguments */ va_end (errlist); fprintf (stderr, "\n"); fflush (stderr); /* In case it has been set to buffered mode */ #ifdef SCOTCH_ERROR_SLEEP sleep (SCOTCH_ERROR_SLEEP); /* Wait for messages to be propagated */ #endif /* SCOTCH_ERROR_SLEEP */ exit (EXIT_FAILURE); } /* This routine prints a warning message with ** a variable number of arguments, as printf () ** does. ** It returns: ** - VOID : in all cases. */ void errorPrintW ( const char * const errstr, /*+ printf-like variable argument list */ ...) { va_list errlist; /* The argument list of the call */ #ifdef SCOTCH_PTSCOTCH int proclocnum; #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "%s", _SCOTCHerrorProgName); #ifdef SCOTCH_PTSCOTCH if ((MPI_Initialized (&proclocnum) == MPI_SUCCESS) && (proclocnum != 0) && (MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum) == MPI_SUCCESS)) fprintf (stderr, "(%d): ", proclocnum); else fprintf (stderr, ": "); #else /* SCOTCH_PTSCOTCH */ if (_SCOTCHerrorProgName[0] != '\0') fprintf (stderr, ": "); #endif /* SCOTCH_PTSCOTCH */ fprintf (stderr, "WARNING: "); va_start (errlist, errstr); vfprintf (stderr, errstr, errlist); /* Print arguments */ va_end (errlist); fprintf (stderr, "\n"); fflush (stderr); /* In case it has been set to buffered mode */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_f.h000066400000000000000000000146111514310134000260420ustar00rootroot00000000000000!* Copyright 2004,2007,2009,2010,2012,2014,2018,2019,2021 IPB, Universite de Bordeaux, INRIA & CNRS !* !* This file is part of the Scotch software package for static mapping, !* graph partitioning and sparse matrix ordering. !* !* This software is governed by the CeCILL-C license under French law !* and abiding by the rules of distribution of free software. You can !* use, modify and/or redistribute the software under the terms of the !* CeCILL-C license as circulated by CEA, CNRS and INRIA at the following !* URL: "http://www.cecill.info". !* !* As a counterpart to the access to the source code and rights to copy, !* modify and redistribute granted by the license, users are provided !* only with a limited warranty and the software's author, the holder of !* the economic rights, and the successive licensors have only limited !* liability. !* !* In this respect, the user's attention is drawn to the risks associated !* with loading, using, modifying and/or developing or reproducing the !* software by the user in light of its specific status of free software, !* that may mean that it is complicated to manipulate, and that also !* therefore means that it is reserved for developers and experienced !* professionals having in-depth computer knowledge. Users are therefore !* encouraged to load and test the software's suitability as regards !* their requirements in conditions enabling the security of their !* systems and/or data to be ensured and, more generally, to use and !* operate it in the same conditions as regards security. !* !* The fact that you are presently reading this means that you have had !* knowledge of the CeCILL-C license and that you accept its terms. !* !*********************************************************** !* ** !* NAME : library_f.h ** !* ** !* AUTHOR : Francois PELLEGRINI ** !* ** !* FUNCTION : FORTRAN declaration file for the ** !* LibScotch static mapping and sparse ** !* matrix block ordering sequential ** !* library. ** !* ** !* DATES : # Version 3.4 : from : 04 feb 2000 ** !* to : 22 oct 2001 ** !* # Version 4.0 : from : 16 jan 2004 ** !* to : 16 jan 2004 ** !* # Version 5.0 : from : 26 apr 2006 ** !* to : 26 apr 2006 ** !* # Version 5.1 : from : 26 mar 2009 ** !* to : 12 feb 2011 ** !* # Version 6.0 : from : 22 oct 2011 ** !* to : 16 apr 2019 ** !* # Version 6.1 : from : 22 jun 2021 ** !* to : 22 jun 2021 ** !* # Version 7.0 : from : 25 aug 2019 ** !* to : 23 oct 2021 ** !* ** !*********************************************************** !* Size definitions for the SCOTCH integer !* and index types. INTEGER SCOTCH_IDXSIZE INTEGER SCOTCH_NUMSIZE PARAMETER (SCOTCH_IDXSIZE = DUMMYSIZEBYTEIDX) PARAMETER (SCOTCH_NUMSIZE = DUMMYSIZEBYTENUM) !* Flag definitions for the context options INTEGER SCOTCH_OPTIONNUMDETERMINISTIC INTEGER SCOTCH_OPTIONNUMRANDOMFIXEDSEED INTEGER SCOTCH_OPTIONNUMNBR PARAMETER (SCOTCH_OPTIONNUMDETERMINISTIC = 0) PARAMETER (SCOTCH_OPTIONNUMRANDOMFIXEDSEED = 1) PARAMETER (SCOTCH_OPTIONNUMNBR = 2) !* Flag definitions for the coarsening !* routines. INTEGER SCOTCH_COARSENNONE INTEGER SCOTCH_COARSENFOLD INTEGER SCOTCH_COARSENFOLDDUP INTEGER SCOTCH_COARSENNOMERGE PARAMETER (SCOTCH_COARSENNONE = 0) PARAMETER (SCOTCH_COARSENFOLD = 256) PARAMETER (SCOTCH_COARSENFOLDDUP = 768) PARAMETER (SCOTCH_COARSENNOMERGE = 16384) !* Flag definitions for the strategy !* string selection routines. INTEGER SCOTCH_STRATDEFAULT INTEGER SCOTCH_STRATQUALITY INTEGER SCOTCH_STRATSPEED INTEGER SCOTCH_STRATBALANCE INTEGER SCOTCH_STRATSAFETY INTEGER SCOTCH_STRATSCALABILITY INTEGER SCOTCH_STRATRECURSIVE INTEGER SCOTCH_STRATREMAP INTEGER SCOTCH_STRATLEVELMAX INTEGER SCOTCH_STRATLEVELMIN INTEGER SCOTCH_STRATLEAFSIMPLE INTEGER SCOTCH_STRATSEPASIMPLE INTEGER SCOTCH_STRATDISCONNECTED PARAMETER (SCOTCH_STRATDEFAULT = 0) PARAMETER (SCOTCH_STRATQUALITY = 1) PARAMETER (SCOTCH_STRATSPEED = 2) PARAMETER (SCOTCH_STRATBALANCE = 4) PARAMETER (SCOTCH_STRATSAFETY = 8) PARAMETER (SCOTCH_STRATSCALABILITY = 16) PARAMETER (SCOTCH_STRATRECURSIVE = 256) PARAMETER (SCOTCH_STRATREMAP = 512) PARAMETER (SCOTCH_STRATLEVELMAX = 4096) PARAMETER (SCOTCH_STRATLEVELMIN = 8192) PARAMETER (SCOTCH_STRATLEAFSIMPLE = 16384) PARAMETER (SCOTCH_STRATSEPASIMPLE = 32768) PARAMETER (SCOTCH_STRATDISCONNECTED = 65536) !* Size definitions for the SCOTCH opaque !* structures. These structures must be !* allocated as arrays of DOUBLEPRECISION !* values for proper padding. The dummy !* sizes are computed at compile-time by !* program "dummysizes". INTEGER SCOTCH_ARCHDIM INTEGER SCOTCH_ARCHDOMDIM INTEGER SCOTCH_CONTEXTDIM INTEGER SCOTCH_GEOMDIM INTEGER SCOTCH_GRAPHDIM INTEGER SCOTCH_MAPDIM INTEGER SCOTCH_MESHDIM INTEGER SCOTCH_ORDERDIM INTEGER SCOTCH_STRATDIM PARAMETER (SCOTCH_ARCHDIM = DUMMYSIZEARCH) PARAMETER (SCOTCH_ARCHDOMDIM = DUMMYSIZEARCHDOM) PARAMETER (SCOTCH_CONTEXTDIM = DUMMYSIZECONTEXT) PARAMETER (SCOTCH_GEOMDIM = DUMMYSIZEGEOM) PARAMETER (SCOTCH_GRAPHDIM = DUMMYSIZEGRAPH) PARAMETER (SCOTCH_MAPDIM = DUMMYSIZEMAP) PARAMETER (SCOTCH_MESHDIM = DUMMYSIZEMESH) PARAMETER (SCOTCH_ORDERDIM = DUMMYSIZEORDER) PARAMETER (SCOTCH_STRATDIM = DUMMYSIZESTRAT) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_geom.c000066400000000000000000000127751514310134000265500ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_geom.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the geom **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.4 : from : 10 oct 1999 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 19 jan 2004 **/ /** # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 25 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "scotch.h" /****************************************/ /* */ /* These routines are the C API for the */ /* graph geometry handling routines. */ /* */ /****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Geom structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Geom * SCOTCH_geomAlloc () { return ((SCOTCH_Geom *) memAlloc (sizeof (SCOTCH_Geom))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Geom structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_geomSizeof () { return (sizeof (SCOTCH_Geom)); } /*+ This routine initializes the opaque *** geom structure used to handle graph *** geometry in the Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_geomInit ( SCOTCH_Geom * const geomptr) { if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_geomInit) ": internal error (1)"); return (1); } if (sizeof (SCOTCH_Geom) < sizeof (Geom)) { errorPrint (STRINGIFY (SCOTCH_geomInit) ": internal error (2)"); return (1); } return (geomInit ((Geom *) geomptr)); } /*+ This routine frees the contents of the *** given opaque geometry structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_geomExit ( SCOTCH_Geom * const geomptr) { geomExit ((Geom *) geomptr); } /*+ This routine accesses all of the geometry data. *** NULL pointers on input indicate unwanted *** data. NULL pointers on output indicate *** unexisting arrays. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_geomData ( const SCOTCH_Geom * const geomptr, /* Geometry structure to read */ SCOTCH_Num * const dimnptr, /* Number of dimensions */ double ** const geomtab) /* Geometry array [vertnbr] */ { const Geom * srcgeomptr; /* Pointer to source geometry structure */ srcgeomptr = (const Geom *) geomptr; if (dimnptr != NULL) *dimnptr = srcgeomptr->dimnnbr; if (geomtab != NULL) *geomtab = (double *) srcgeomptr->geomtab; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_geom_f.c000066400000000000000000000106231514310134000270430ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_geom_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the graph geometry handling routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 15 jun 2005 **/ /** to : 22 dec 2005 **/ /** # Version 5.1 : from : 15 apr 2010 **/ /** to : 15 apr 2010 **/ /** # Version 6.0 : from : 11 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /******************************************/ /* */ /* These routines are the Fortran API for */ /* the graph geometry handling routines. */ /* */ /******************************************/ /* ** */ SCOTCH_FORTRAN ( \ GEOMINIT, geominit, ( \ SCOTCH_Geom * const geomptr, \ int * const revaptr), \ (geomptr, revaptr)) { *revaptr = SCOTCH_geomInit (geomptr); } /* ** */ SCOTCH_FORTRAN ( \ GEOMEXIT, geomexit, ( \ SCOTCH_Geom * const geomptr), \ (geomptr)) { SCOTCH_geomExit (geomptr); } /* ** */ SCOTCH_FORTRAN ( \ GEOMSIZEOF, geomsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_geomSizeof (); } /* ** */ SCOTCH_FORTRAN ( \ GEOMDATA, geomdata, ( \ const SCOTCH_Geom * const geomptr, \ const double * const indxptr, \ SCOTCH_Num * const dimnptr, \ SCOTCH_Idx * const geomidx), \ (geomptr, indxptr, dimnptr, geomidx)) { double * geomtab; SCOTCH_geomData (geomptr, dimnptr, &geomtab); *geomidx = (SCOTCH_Idx) (geomtab - indxptr) + 1; /* Add 1 since Fortran indices start at 1 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph.c000066400000000000000000000450661514310134000267210ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2018,2019,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.2 : from : 18 aug 1998 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 09 dec 2005 **/ /** # Version 5.0 : from : 10 sep 2006 **/ /** to : 03 apr 2008 **/ /** # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 04 dec 2012 **/ /** to : 24 jul 2019 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 31 may 2021 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 11 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "graph_io.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Graph structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Graph * SCOTCH_graphAlloc () { return ((SCOTCH_Graph *) memAlloc (sizeof (SCOTCH_Graph))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Graph structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_graphSizeof () { return (sizeof (SCOTCH_Graph)); } /*+ This routine initializes the opaque *** graph structure used to handle graphs *** in the Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_graphInit ( SCOTCH_Graph * const grafptr) { if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_graphInit) ": internal error (1)"); return (1); } if (sizeof (SCOTCH_Graph) < sizeof (Graph)) { errorPrint (STRINGIFY (SCOTCH_graphInit) ": internal error (2)"); return (1); } return (graphInit ((Graph *) grafptr)); } /*+ This routine frees the contents of the *** given opaque graph structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphExit ( SCOTCH_Graph * const grafptr) { if (! contextContainerTrue (grafptr)) graphExit ((Graph *) grafptr); } /*+ This routine frees the contents of the *** given opaque graph structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphFree ( SCOTCH_Graph * const grafptr) { if (! contextContainerTrue (grafptr)) graphFree ((Graph *) grafptr); } /*+ This routine loads the given opaque graph *** structure with the data of the given stream. *** The base value allows the user to set the *** graph base to 0 or 1, or to the base value *** of the stream if the base value is equal *** to -1. On input, vertex loads are discarded if *** flagval is 1, edge loads are discarded if flagval *** is 2, and both if flagval is set to 3. *** It returns: *** - 0 : if the loading succeeded. *** - !0 : on error. +*/ int SCOTCH_graphLoad ( SCOTCH_Graph * const grafptr, FILE * const stream, const SCOTCH_Num baseval, const SCOTCH_Num flagval) { GraphLoadFlag flagtmp; /* Graph load flags */ if ((flagval < 0) || (flagval > 3)) { errorPrint (STRINGIFY (SCOTCH_graphLoad) ": invalid flag parameter"); return (1); } if (baseval < -1) { errorPrint (STRINGIFY (SCOTCH_graphLoad) ": invalid base parameter"); return (1); } #ifdef SCOTCH_DEBUG_GRAPH1 if (baseval > 1) errorPrintW (STRINGIFY (SCOTCH_graphLoad) ": unusual base parameter"); #endif /* SCOTCH_DEBUG_GRAPH1 */ flagtmp = (((flagval & 1) != 0) ? GRAPHIONOLOADVERT : 0) + (((flagval & 2) != 0) ? GRAPHIONOLOADEDGE : 0); return (graphLoad ((Graph * const) CONTEXTOBJECT (grafptr), stream, (Gnum) baseval, flagtmp)); } /*+ This routine saves the contents of the given *** opaque graph structure to the given stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_graphSave ( const SCOTCH_Graph * const grafptr, FILE * const stream) { return (graphSave ((const Graph * const) CONTEXTOBJECT (grafptr), stream)); } /*+ This routine fills the contents of the given *** opaque graph structure with the data provided *** by the user. The base value allows the user to *** set the graph base to 0 or 1. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphBuild ( SCOTCH_Graph * const grafptr, /* Graph structure to fill */ const SCOTCH_Num baseval, /* Base value */ const SCOTCH_Num vertnbr, /* Number of vertices */ const SCOTCH_Num * const verttab, /* Vertex array [vertnbr or vertnbr+1] */ const SCOTCH_Num * const vendtab, /* Vertex end array [vertnbr] */ const SCOTCH_Num * const velotab, /* Vertex load array */ const SCOTCH_Num * const vlbltab, /* Vertex label array */ const SCOTCH_Num edgenbr, /* Number of edges (arcs) */ const SCOTCH_Num * const edgetab, /* Edge array [edgenbr] */ const SCOTCH_Num * const edlotab) /* Edge load array */ { Graph * srcgrafptr; /* Pointer to source graph structure */ Gnum vertnum; /* Current vertex number */ Gnum degrmax; /* Maximum degree */ #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Graph) < sizeof (Graph)) { errorPrint (STRINGIFY (SCOTCH_graphBuild) ": internal error"); return (1); } if ((baseval < 0) || (baseval > 1)) errorPrintW (STRINGIFY (SCOTCH_graphBuild) ": non-standard base parameter"); #endif /* SCOTCH_DEBUG_LIBRARY1 */ srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); /* Use structure as source graph */ srcgrafptr->flagval = GRAPHNONE; srcgrafptr->baseval = baseval; srcgrafptr->vertnbr = vertnbr; srcgrafptr->vertnnd = vertnbr + baseval; srcgrafptr->verttax = (Gnum *) verttab - baseval; srcgrafptr->vendtax = ((vendtab == NULL) || (vendtab == verttab)) ? srcgrafptr->verttax + 1 : (Gnum *) vendtab - baseval; srcgrafptr->velotax = ((velotab == NULL) || (velotab == verttab)) ? NULL : (Gnum *) velotab - baseval; srcgrafptr->vnumtax = NULL; srcgrafptr->vlbltax = ((vlbltab == NULL) || (vlbltab == verttab)) ? NULL : (Gnum *) vlbltab - baseval; srcgrafptr->edgenbr = edgenbr; srcgrafptr->edgetax = (Gnum *) edgetab - baseval; srcgrafptr->edlotax = ((edlotab == NULL) || (edlotab == edgetab)) ? NULL : (Gnum *) edlotab - baseval; if (srcgrafptr->velotax == NULL) /* Compute vertex load sum */ srcgrafptr->velosum = vertnbr; else { Gnum velosum; /* Sum of vertex loads */ for (vertnum = srcgrafptr->baseval, velosum = 0; vertnum < srcgrafptr->vertnnd; vertnum ++) velosum += srcgrafptr->velotax[vertnum]; srcgrafptr->velosum = velosum; } if (srcgrafptr->edlotax == NULL) { /* If no edge loads */ srcgrafptr->edlosum = srcgrafptr->edgenbr; /* Edge load sum is known */ for (vertnum = srcgrafptr->baseval, degrmax = 0; /* Compute maximum degree only */ vertnum < srcgrafptr->vertnnd; vertnum ++) { Gnum degrval; /* Degree of current vertex */ degrval = srcgrafptr->vendtax[vertnum] - srcgrafptr->verttax[vertnum]; if (degrval > degrmax) degrmax = degrval; } } else { /* Graph has edge loads, compute edge load sum */ Gnum edlosum; for (vertnum = srcgrafptr->baseval, edlosum = degrmax = 0; vertnum < srcgrafptr->vertnnd; vertnum ++) { Gnum edgenum; Gnum degrval; /* Degree of current vertex */ degrval = srcgrafptr->vendtax[vertnum] - srcgrafptr->verttax[vertnum]; if (degrval > degrmax) degrmax = degrval; for (edgenum = srcgrafptr->verttax[vertnum]; edgenum < srcgrafptr->vendtax[vertnum]; edgenum ++) edlosum += srcgrafptr->edlotax[edgenum]; } srcgrafptr->edlosum = edlosum; } srcgrafptr->degrmax = degrmax; return (0); } /*+ This routine accesses graph size data. *** NULL pointers on input indicate unwanted *** data. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphSize ( const SCOTCH_Graph * const grafptr, SCOTCH_Num * const vertnbr, SCOTCH_Num * const edgenbr) { const Graph * srcgrafptr; srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); if (vertnbr != NULL) *vertnbr = (SCOTCH_Num) (srcgrafptr->vertnbr); if (edgenbr != NULL) *edgenbr = (SCOTCH_Num) srcgrafptr->edgenbr; } /*+ This routine accesses all of the graph data. *** NULL pointers on input indicate unwanted *** data. NULL pointers on output indicate *** unexisting arrays. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphData ( const SCOTCH_Graph * const grafptr, /* Graph structure to read */ SCOTCH_Num * const baseptr, /* Base value */ SCOTCH_Num * const vertptr, /* Number of vertices */ SCOTCH_Num ** const verttab, /* Vertex array [vertnbr+1] */ SCOTCH_Num ** const vendtab, /* Vertex array [vertnbr] */ SCOTCH_Num ** const velotab, /* Vertex load array */ SCOTCH_Num ** const vlbltab, /* Vertex label array */ SCOTCH_Num * const edgeptr, /* Number of edges (arcs) */ SCOTCH_Num ** const edgetab, /* Edge array [edgenbr] */ SCOTCH_Num ** const edlotab) /* Edge load array */ { const Graph * srcgrafptr; /* Pointer to source graph structure */ srcgrafptr = (const Graph *) CONTEXTOBJECT (grafptr); if (baseptr != NULL) *baseptr = srcgrafptr->baseval; if (vertptr != NULL) *vertptr = srcgrafptr->vertnbr; if (verttab != NULL) *verttab = srcgrafptr->verttax + srcgrafptr->baseval; if (vendtab != NULL) *vendtab = srcgrafptr->vendtax + srcgrafptr->baseval; if (velotab != NULL) *velotab = (srcgrafptr->velotax != NULL) ? srcgrafptr->velotax + srcgrafptr->baseval : NULL; if (vlbltab != NULL) *vlbltab = (srcgrafptr->vlbltax != NULL) ? srcgrafptr->vlbltax + srcgrafptr->baseval : NULL; if (edgeptr != NULL) *edgeptr = srcgrafptr->edgenbr; if (edgetab != NULL) *edgetab = srcgrafptr->edgetax + srcgrafptr->baseval; if (edlotab != NULL) *edlotab = (srcgrafptr->edlotax != NULL) ? srcgrafptr->edlotax + srcgrafptr->baseval : NULL; } /*+ This routine computes statistics *** on the given graph. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphStat ( const SCOTCH_Graph * const grafptr, SCOTCH_Num * const velominptr, SCOTCH_Num * const velomaxptr, SCOTCH_Num * const velosumptr, double * veloavgptr, double * velodltptr, SCOTCH_Num * const degrminptr, SCOTCH_Num * const degrmaxptr, double * degravgptr, double * degrdltptr, SCOTCH_Num * const edlominptr, SCOTCH_Num * const edlomaxptr, SCOTCH_Num * const edlosumptr, double * edloavgptr, double * edlodltptr) { const Graph * srcgrafptr; Gnum vertnum; Gnum vertnbr; Gnum velomin; Gnum velomax; double veloavg; double velodlt; Gnum degrval; Gnum degrmin; Gnum degrmax; double degravg; double degrdlt; Gnum edgenum; Gnum edlomin; Gnum edlomax; Gnum edlosum; double edloavg; double edlodlt; srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); vertnbr = srcgrafptr->vertnnd - srcgrafptr->baseval; velodlt = 0.0L; if (vertnbr > 0) { if (srcgrafptr->velotax != NULL) { /* If graph has vertex loads */ velomin = GNUMMAX; velomax = 0; veloavg = (double) srcgrafptr->velosum / (double) vertnbr; for (vertnum = srcgrafptr->baseval; vertnum < srcgrafptr->vertnnd; vertnum ++) { if (srcgrafptr->velotax[vertnum] < velomin) /* Account for vertex loads */ velomin = srcgrafptr->velotax[vertnum]; if (srcgrafptr->velotax[vertnum] > velomax) velomax = srcgrafptr->velotax[vertnum]; velodlt += fabs ((double) srcgrafptr->velotax[vertnum] - veloavg); } velodlt /= (double) vertnbr; } else { velomin = velomax = 1; veloavg = 1.0L; } } else { velomin = velomax = 0; veloavg = 0.0L; } if (velominptr != NULL) *velominptr = (SCOTCH_Num) velomin; if (velomaxptr != NULL) *velomaxptr = (SCOTCH_Num) velomax; if (velosumptr != NULL) *velosumptr = (SCOTCH_Num) srcgrafptr->velosum; if (veloavgptr != NULL) *veloavgptr = (double) veloavg; if (velodltptr != NULL) *velodltptr = (double) velodlt; degrmax = 0; degrdlt = 0.0L; if (vertnbr > 0) { degrmin = GNUMMAX; degravg = (double) srcgrafptr->edgenbr / (double) vertnbr; for (vertnum = srcgrafptr->baseval; vertnum < srcgrafptr->vertnnd; vertnum ++) { degrval = srcgrafptr->vendtax[vertnum] - srcgrafptr->verttax[vertnum]; /* Get vertex degree */ if (degrval < degrmin) degrmin = degrval; if (degrval > degrmax) degrmax = degrval; degrdlt += fabs ((double) degrval - degravg); } degrdlt /= (double) vertnbr; } else { degrmin = 0; degravg = 0.0L; } if (degrminptr != NULL) *degrminptr = (SCOTCH_Num) degrmin; if (degrmaxptr != NULL) *degrmaxptr = (SCOTCH_Num) degrmax; if (degravgptr != NULL) *degravgptr = (double) degravg; if (degrdltptr != NULL) *degrdltptr = (double) degrdlt; edlodlt = 0.0L; if (srcgrafptr->edgenbr > 0) { if (srcgrafptr->edlotax != NULL) { /* If graph has edge loads */ edlomin = GNUMMAX; edlomax = 0; edlosum = 0; for (vertnum = srcgrafptr->baseval; vertnum < srcgrafptr->vertnnd; vertnum ++) { for (edgenum = srcgrafptr->verttax[vertnum]; edgenum < srcgrafptr->vendtax[vertnum]; edgenum ++) { /* For all edges */ if (srcgrafptr->edlotax[edgenum] < edlomin) /* Account for edge load */ edlomin = srcgrafptr->edlotax[edgenum]; if (srcgrafptr->edlotax[edgenum] > edlomax) edlomax = srcgrafptr->edlotax[edgenum]; edlosum += srcgrafptr->edlotax[edgenum]; } } edloavg = (double) edlosum / (double) srcgrafptr->edgenbr; for (vertnum = srcgrafptr->baseval; vertnum < srcgrafptr->vertnnd; vertnum ++) { for (edgenum = srcgrafptr->verttax[vertnum]; edgenum < srcgrafptr->vendtax[vertnum]; edgenum ++) /* For all edges */ edlodlt += fabs ((double) srcgrafptr->edlotax[edgenum] - edloavg); } edlodlt /= (double) srcgrafptr->edgenbr; } else { edlomin = edlomax = 1; edlosum = srcgrafptr->edgenbr / 2; edloavg = 1.0L; } } else { edlomin = edlomax = 0; edlosum = 0; edloavg = 0.0L; } if (edlominptr != NULL) *edlominptr = (SCOTCH_Num) edlomin; if (edlomaxptr != NULL) *edlomaxptr = (SCOTCH_Num) edlomax; if (edlosumptr != NULL) *edlosumptr = (SCOTCH_Num) edlosum; if (edloavgptr != NULL) *edloavgptr = (double) edloavg; if (edlodltptr != NULL) *edlodltptr = (double) edlodlt; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_base.c000066400000000000000000000065331514310134000277070ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_base.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 22 apr 2004 **/ /** to : 22 apr 2004 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /* This routine sets the base of the given ** graph to the given base value, and returns ** the old base value. ** It returns: ** - old base value : in all cases. */ SCOTCH_Num SCOTCH_graphBase ( SCOTCH_Graph * const grafptr, const SCOTCH_Num baseval) { return ((SCOTCH_Num) graphBase ((Graph * const) CONTEXTOBJECT (grafptr), (Gnum) baseval)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_base_f.c000066400000000000000000000065631514310134000302170ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_base_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 22 apr 2004 **/ /** to : 23 apr 2004 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHBASE, graphbase, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const basenew, \ SCOTCH_Num * const baseold), \ (grafptr, basenew, baseold)) { *baseold = SCOTCH_graphBase (grafptr, *basenew); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_check.c000066400000000000000000000072631514310134000300530ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.2 : from : 18 aug 1998 **/ /** to : 18 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 22 apr 2004 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 15 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine checks the consistency *** of the given graph. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphCheck ( const SCOTCH_Graph * const grafptr) { const Graph * const srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); if (srcgrafptr->vnumtax != NULL) { errorPrint (STRINGIFY (SCOTCH_graphCheck) ": vertex number array should not be defined"); return (1); } return (graphCheck (srcgrafptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_check_f.c000066400000000000000000000066671514310134000303670ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_check_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.4 : from : 02 dec 1999 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 22 apr 2004 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHCHECK, graphcheck, ( \ const SCOTCH_Graph * const grafptr, \ int * const revaptr), \ (grafptr, revaptr)) { *revaptr = SCOTCH_graphCheck (grafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_coarsen.c000066400000000000000000000176731514310134000304360ustar00rootroot00000000000000/* Copyright 2011,2012,2014,2015,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the graph **/ /** coarsening routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.1 : from : 07 aug 2011 **/ /** to : 07 aug 2011 **/ /** # Version 6.0 : from : 06 sep 2011 **/ /** to : 23 apr 2018 **/ /** # Version 7.0 : from : 03 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "arch.h" #include "graph.h" #include "graph_coarsen.h" #include "scotch.h" /*********************************/ /* */ /* This routine is the C API for */ /* the graph coarsening routine. */ /* */ /*********************************/ /*+ This routine creates a coarse graph from the *** given fine graph, unless the coarse graph is *** smaller than some threshold size or the *** coarsening ratio is above some other threshold. *** If the coarse graph is created, a coarse-to-fine *** vertex array is created, that contains a pair of *** fine indices for each coarse index. The contents *** of the Scotch internal array are copied to the *** array provided by the user. *** It returns: *** - 0 : if the graph has been coarsened. *** - 1 : if the graph could not be coarsened. *** - 2 : on error. +*/ int SCOTCH_graphCoarsen ( const SCOTCH_Graph * restrict const finegrafptr, /* Fine graph structure to fill */ const SCOTCH_Num coarvertnbr, /* Minimum number of coarse vertices */ const double coarval, /* Maximum contraction ratio */ const SCOTCH_Num flagval, /* Flag value */ SCOTCH_Graph * restrict const coargrafptr, /* Coarse graph */ SCOTCH_Num * restrict const coarmulttab) /* Pointer to multinode array to fill */ { GraphCoarsenMulti * restrict coarmultptr; /* Un-based pointer to created, grouped multinode array */ CONTEXTDECL (finegrafptr); int o; if (CONTEXTINIT (finegrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_graphCoarsen) ": cannot initialize context"); return (1); } coarmultptr = (GraphCoarsenMulti *) coarmulttab; /* Indicate multinode array is user-provided */ o = graphCoarsen ((const Graph * restrict const) CONTEXTGETOBJECT (finegrafptr), (Graph * restrict const) coargrafptr, NULL, &coarmultptr, coarvertnbr, coarval, flagval & GRAPHCOARSENNOMERGE, NULL, NULL, 0, CONTEXTGETDATA (finegrafptr)); CONTEXTEXIT (finegrafptr); return (o); } /*+ This routine computes a matching of a (coarse) *** graph, unless the would-be coarse graph is smaller *** than some threshold size or the coarsening ratio is *** above some other threshold. *** If the matching is computed, both a multinode and *** a coarse-to-fine vertex arrays are created. *** It returns: *** - 0 : if the matching has been coarsened. *** - 1 : if the graph could not be matched. *** - 2 : on error. +*/ int SCOTCH_graphCoarsenMatch ( const SCOTCH_Graph * restrict const finegrafptr, /* Fine graph structure to fill */ SCOTCH_Num * restrict const coarvertptr, /* Minimum number of coarse vertices */ const double coarval, /* Maximum contraction ratio */ const SCOTCH_Num flagval, /* Flag value */ SCOTCH_Num * restrict const finematetab) /* Mating array to fill */ { Gnum * restrict finemateptr; CONTEXTDECL (finegrafptr); int o; if (CONTEXTINIT (finegrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_graphCoarsenMatch) ": cannot initialize context"); return (1); } finemateptr = finematetab; /* Slot will not be modified but preserve "const" of finematetab */ o = graphCoarsenMatch ((const Graph * restrict const) CONTEXTGETOBJECT (finegrafptr), &finemateptr, coarvertptr, coarval, flagval & GRAPHCOARSENNOMERGE, NULL, NULL, 0, CONTEXTGETDATA (finegrafptr)); CONTEXTEXIT (finegrafptr); return (o); } /*+ This routine creates a coarse graph from the *** given fine graph and the provided multinode *** array. *** It returns: *** - 0 : if the graph has been coarsened. *** - 1 : on error. +*/ int SCOTCH_graphCoarsenBuild ( const SCOTCH_Graph * restrict const finegrafptr, /* Fine graph structure to fill */ const SCOTCH_Num coarvertnbr, /* Number of coarse vertices */ SCOTCH_Num * restrict const finematetab, /* Mating array */ SCOTCH_Graph * restrict const coargrafptr, /* Coarse graph */ SCOTCH_Num * restrict const coarmulttab) /* Pointer to user-provided multinode array */ { GraphCoarsenMulti * restrict coarmultptr; /* Un-based pointer to created, grouped multinode array */ CONTEXTDECL (finegrafptr); int o; if (CONTEXTINIT (finegrafptr)) { errorPrint (STRINGIFY (SCOTCH_graphCoarsenBuild) ": cannot initialize context"); return (1); } coarmultptr = (GraphCoarsenMulti *) coarmulttab; /* Indicate multinode array is user-provided */ o = (graphCoarsenBuild ((const Graph * restrict const) CONTEXTGETOBJECT (finegrafptr), (Graph * restrict const) coargrafptr, finematetab, &coarmultptr, coarvertnbr, CONTEXTGETDATA (finegrafptr))); CONTEXTEXIT (finegrafptr); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_coarsen_f.c000066400000000000000000000113061514310134000307260ustar00rootroot00000000000000/* Copyright 2011,2015,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_coarsen_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph coarsening routine of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 07 aug 2011 **/ /** to : 07 aug 2011 **/ /** # Version 6.0 : from : 28 feb 2015 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the coarsening routine. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHCOARSEN, graphcoarsen, ( \ SCOTCH_Graph * const finegrafptr, \ const SCOTCH_Num * const coarvertptr, \ const double * const coarnbr, \ const SCOTCH_Num * const flagval, \ SCOTCH_Graph * const coargrafptr, \ SCOTCH_Num * const coarmulttab, \ int * const revaptr), \ (finegrafptr, coarvertptr, coarnbr, flagval, coargrafptr, coarmulttab, revaptr)) { *revaptr = SCOTCH_graphCoarsen (finegrafptr, *coarvertptr, *coarnbr, *flagval, coargrafptr, coarmulttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHCOARSENMATCH, graphcoarsenmatch, ( \ SCOTCH_Graph * const finegrafptr, \ SCOTCH_Num * const coarvertptr, \ const double * const coarnbr, \ const SCOTCH_Num * const flagval, \ SCOTCH_Num * const finematetab, \ int * const revaptr), \ (finegrafptr, coarvertptr, coarnbr, flagval, finematetab, revaptr)) { *revaptr = SCOTCH_graphCoarsenMatch (finegrafptr, coarvertptr, *coarnbr, *flagval, finematetab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHCOARSENBUILD, graphcoarsenbuild, ( \ SCOTCH_Graph * const finegrafptr, \ SCOTCH_Num * const coarvertptr, \ SCOTCH_Num * const finematetab, \ SCOTCH_Graph * const coargrafptr, \ SCOTCH_Num * const coarmulttab, \ int * const revaptr), \ (finegrafptr, coarvertptr, finematetab, coargrafptr, coarmulttab, revaptr)) { *revaptr = SCOTCH_graphCoarsenBuild (finegrafptr, *coarvertptr, finematetab, coargrafptr, coarmulttab); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_color.c000066400000000000000000000147741514310134000301210ustar00rootroot00000000000000/* Copyright 2012,2014,2018,2019,2023,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_color.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the graph **/ /** coloring routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 6.0 : from : 02 jan 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 24 aug 2019 **/ /** to : 16 jan 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "arch.h" #include "graph.h" #include "graph_coarsen.h" #include "scotch.h" /*********************************/ /* */ /* This routine is the C API for */ /* the graph coloring routine. */ /* */ /*********************************/ /*+ This routine creates a color array for the *** given graph. *** It returns: *** - 0 : if the graph has been coarsened. *** - 1 : if the graph could not be coarsened. *** - 2 : on error. +*/ int SCOTCH_graphColor ( const SCOTCH_Graph * const libgrafptr, /* Graph to color */ SCOTCH_Num * const colotab, /* Pointer to color array */ SCOTCH_Num * const coloptr, /* Pointer to number of colors */ const SCOTCH_Num flagval) /* Flag value (not used) */ { CONTEXTDECL (libgrafptr); Gnum baseval; Gnum vertnum; Gnum vertnbr; Gnum vertnnd; Gnum queunnd; Gnum * restrict queutax; Gnum * restrict randtax; Gnum colonum; Gnum * restrict colotax; int o; if (CONTEXTINIT (libgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_graphColor) ": cannot initialize context"); return (1); } const Graph * restrict const grafptr = CONTEXTGETOBJECT (libgrafptr); const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; baseval = grafptr->baseval; vertnbr = grafptr->vertnbr; vertnnd = vertnbr + baseval; memSet (colotab, ~0, vertnbr * sizeof (Gnum)); colotax = ((Gnum *) colotab) - baseval; o = 1; /* Assume an error */ if (memAllocGroup ((void **) (void *) &queutax, (size_t) (vertnbr * sizeof (Gnum)), &randtax, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphColor) ": out of memory"); goto abort; } queutax -= baseval; randtax -= baseval; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) randtax[vertnum] = contextIntRandVal (CONTEXTGETDATA (libgrafptr), 32768); queunnd = vertnnd; for (colonum = 0; queunnd > baseval; colonum ++) { /* Color numbers are not based */ Gnum queuold; Gnum queunew; for (queunew = queuold = baseval; queuold < queunnd; queuold ++) { Gnum vertnum; Gnum edgenum; Gnum edgennd; Gnum randval; vertnum = (queunnd == vertnnd) ? queuold : queutax[queuold]; randval = randtax[vertnum]; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { Gnum vertend; Gnum randend; Gnum coloend; vertend = edgetax[edgenum]; coloend = colotax[vertend]; if ((coloend >= 0) && /* If vertex has been colored */ (coloend < colonum)) /* In a former pass */ continue; /* Do not consider it any longer */ randend = randtax[vertend]; if ((randend > randval) || ((randend == randval) && (vertend > vertnum))) /* Tie breaking when same random value */ break; } if (edgenum >= edgennd) colotax[vertnum] = colonum; else queutax[queunew ++] = vertnum; } queunnd = queunew; } *coloptr = colonum; /* Set number of colors found */ memFree (queutax + baseval); o = 0; abort: CONTEXTEXIT (libgrafptr); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_color_f.c000066400000000000000000000065451514310134000304230ustar00rootroot00000000000000/* Copyright 2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_coarsen_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph coloring routine of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 6.0 : from : 02 jan 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the coloring routine. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHCOLOR, graphcolor, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Num * const colotab, \ SCOTCH_Num * const coloptr, \ const SCOTCH_Num * const flagval, \ int * const revaptr), \ (grafptr, colotab, coloptr, flagval, revaptr)) { *revaptr = SCOTCH_graphColor (grafptr, colotab, coloptr, *flagval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_diam.c000066400000000000000000000072141514310134000277040ustar00rootroot00000000000000/* Copyright 2017-2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_diam.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 26 jan 2017 **/ /** to : 22 apr 2018 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /*+ This routine returns the vertex-traversal *** pseudo-diameter of the given graph. *** It returns: *** - [0; GNUMMAX[ : graph pseudo-diameter. *** - GNUMMAX : disconnected graph. *** - < 0 : on error. +*/ SCOTCH_Num SCOTCH_graphDiamPV ( const SCOTCH_Graph * const libgrafptr) { CONTEXTDECL (libgrafptr); SCOTCH_Num diamval; if (CONTEXTINIT (libgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_graphDiamPV) ": cannot initialize context"); return (1); } diamval = (SCOTCH_Num) graphDiamPV ((Graph * const) CONTEXTGETOBJECT (libgrafptr), CONTEXTGETDATA (libgrafptr)); CONTEXTEXIT (libgrafptr); return (diamval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_diam_f.c000066400000000000000000000062671514310134000302200ustar00rootroot00000000000000/* Copyright 2017,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_diam_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 26 jan 2017 **/ /** to : 29 may 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHDIAMPV, graphdiampv, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Num * const diamptr), \ (grafptr, diamptr)) { *diamptr = SCOTCH_graphDiamPV (grafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_dump.c000066400000000000000000000115631514310134000277410ustar00rootroot00000000000000/* Copyright 2019,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_dump.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 28 dec 2019 **/ /** to : 09 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "graph_dump.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph dumping routine. */ /* */ /************************************/ /*+ This routine dumps the given graph on the form *** of C source code, using a prefix and a suffix. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphDump ( const SCOTCH_Graph * const libgrafptr, const char * const prefptr, const char * const suffptr, FILE * const fileptr) { const Graph * grafptr; const char * prefstr; const char * suffstr; int o; prefstr = (prefptr != NULL) ? prefptr : ""; suffstr = (suffptr != NULL) ? suffptr : ""; grafptr = (const Graph *) libgrafptr; o = graphDumpArrays (grafptr, "SCOTCH_Num", prefstr, suffstr, fileptr); o |= (fprintf (fileptr, "int\n" "%sGraphBuild%s (\n" "SCOTCH_Graph * grafptr)\n" "{\n" " return (SCOTCH_graphBuild (grafptr, " GNUMSTRING ", " GNUMSTRING ", %sverttab%s", prefstr, suffstr, grafptr->baseval, grafptr->vertnbr, prefstr, suffstr) < 0); if (grafptr->vendtax != (grafptr->verttax + 1)) o |= (fprintf (fileptr, ", %svendtab%s", prefstr, suffstr) < 0); else o |= (fprintf (fileptr, ", NULL") < 0); if (grafptr->velotax != NULL) o |= (fprintf (fileptr, ", %svelotab%s", prefstr, suffstr) < 0); else o |= (fprintf (fileptr, ", NULL") < 0); if (grafptr->vlbltax != NULL) o |= (fprintf (fileptr, ", %svlbltab%s", prefstr, suffstr) < 0); else o |= (fprintf (fileptr, ", NULL") < 0); o |= (fprintf (fileptr, ",\n " GNUMSTRING ", %sedgetab%s", grafptr->edgenbr, prefstr, suffstr) < 0); if (grafptr->edlotax != NULL) o |= (fprintf (fileptr, ", %sedlotab%s", prefstr, suffstr) < 0); else o |= (fprintf (fileptr, ", NULL") < 0); o |= (fprintf (fileptr, "));\n" "}\n") < 0); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_f.c000066400000000000000000000254351514310134000272240ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.4 : from : 02 dec 1999 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 17 mar 2005 **/ /** # Version 5.0 : from : 11 jul 2007 **/ /** to : 11 jul 2007 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 15 apr 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHINIT, graphinit, ( \ SCOTCH_Graph * const grafptr, \ int * const revaptr), \ (grafptr, revaptr)) { *revaptr = SCOTCH_graphInit (grafptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHEXIT, graphexit, ( \ SCOTCH_Graph * const grafptr), \ (grafptr)) { SCOTCH_graphExit (grafptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHFREE, graphfree, ( \ SCOTCH_Graph * const grafptr), \ (grafptr)) { SCOTCH_graphFree (grafptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHSIZEOF, graphsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_graphSizeof (); } /* When an input stream is built from the given ** file handle, it is set as unbuffered, so as to ** allow for multiple stream reads from the same ** file handle. If it were buffered, too many ** input characters would be read on the first ** block read. */ SCOTCH_FORTRAN ( \ GRAPHLOAD, graphload, ( \ SCOTCH_Graph * const grafptr, \ int * const fileptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const flagval, \ int * const revaptr), \ (grafptr, fileptr, baseval, flagval, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } setbuf (stream, NULL); /* Do not buffer on input */ o = SCOTCH_graphLoad (grafptr, stream, *baseval, *flagval); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHSAVE, graphsave, ( \ const SCOTCH_Graph * const grafptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphSave (grafptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHBUILD, graphbuild, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const baseval, \ const SCOTCH_Num * const vertnbr, \ const SCOTCH_Num * const verttab, \ const SCOTCH_Num * const vendtab, \ const SCOTCH_Num * const velotab, \ const SCOTCH_Num * const vlbltab, \ const SCOTCH_Num * const edgenbr, \ const SCOTCH_Num * const edgetab, \ const SCOTCH_Num * const edlotab, \ int * const revaptr), \ (grafptr, baseval, vertnbr, verttab, vendtab, \ velotab, vlbltab, edgenbr, edgetab, edlotab, \ revaptr)) { *revaptr = SCOTCH_graphBuild (grafptr, *baseval, *vertnbr, verttab, vendtab, velotab, vlbltab, *edgenbr, edgetab, edlotab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHSIZE, graphsize, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Num * const vertptr, \ SCOTCH_Num * const edgeptr), \ (grafptr, vertptr, edgeptr)) { SCOTCH_graphSize (grafptr, vertptr, edgeptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHDATA, graphdata, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const indxptr, \ SCOTCH_Num * const baseptr, \ SCOTCH_Num * const vertptr, \ SCOTCH_Idx * const vertidx, \ SCOTCH_Idx * const vendidx, \ SCOTCH_Idx * const veloidx, \ SCOTCH_Idx * const vlblidx, \ SCOTCH_Num * const edgeptr, \ SCOTCH_Idx * const edgeidx, \ SCOTCH_Idx * const edloidx), \ (grafptr, indxptr, baseptr, \ vertptr, vertidx, vendidx, veloidx, vlblidx, \ edgeptr, edgeidx, edloidx)) { SCOTCH_Num * verttab; /* Pointer to graph arrays */ SCOTCH_Num * vendtab; SCOTCH_Num * velotab; SCOTCH_Num * vlbltab; SCOTCH_Num * edgetab; SCOTCH_Num * edlotab; SCOTCH_graphData (grafptr, baseptr, vertptr, &verttab, &vendtab, &velotab, &vlbltab, edgeptr, &edgetab, &edlotab); *vertidx = (SCOTCH_Idx) (verttab - indxptr) + 1; /* Add 1 since Fortran indices start at 1 */ *vendidx = (SCOTCH_Idx) (vendtab - indxptr) + 1; *veloidx = (velotab != NULL) ? (SCOTCH_Idx) (velotab - indxptr) + 1 : *vertidx; *vlblidx = (vlbltab != NULL) ? (SCOTCH_Idx) (vlbltab - indxptr) + 1 : *vertidx; *edgeidx = (SCOTCH_Idx) (edgetab - indxptr) + 1; *edloidx = (edlotab != NULL) ? (SCOTCH_Idx) (edlotab - indxptr) + 1 : *edgeidx; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHSTAT, graphstat, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Num * const velominptr, \ SCOTCH_Num * const velomaxptr, \ SCOTCH_Num * const velosumptr, \ double * veloavgptr, \ double * velodltptr, \ SCOTCH_Num * const degrminptr, \ SCOTCH_Num * const degrmaxptr, \ double * degravgptr, \ double * degrdltptr, \ SCOTCH_Num * const edlominptr, \ SCOTCH_Num * const edlomaxptr, \ SCOTCH_Num * const edlosumptr, \ double * edloavgptr, \ double * edlodltptr), \ (grafptr, velominptr, velomaxptr, velosumptr, \ veloavgptr, velodltptr, degrminptr, \ degrmaxptr, degravgptr, degrdltptr, \ edlominptr, edlomaxptr, edlosumptr, \ edloavgptr, edlodltptr)) { SCOTCH_graphStat (grafptr, velominptr, velomaxptr, velosumptr, veloavgptr, velodltptr, degrminptr, degrmaxptr, degravgptr, degrdltptr, edlominptr, edlomaxptr, edlosumptr, edloavgptr, edlodltptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_induce.c000066400000000000000000000122121514310134000302330ustar00rootroot00000000000000/* Copyright 2018,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_induce.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** graph handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 14 jan 2018 **/ /** to : 21 apr 2018 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 15 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph handling routines. */ /* */ /************************************/ /* This routine builds the graph induced ** by the original graph and the list of ** selected vertices. ** The induced vnumtab array is the list ** array if the original graph does not have ** a vnumtab, or the proper subset of the ** original vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int SCOTCH_graphInduceList ( const SCOTCH_Graph * restrict const orggrafptr, const SCOTCH_Num vnumnbr, const SCOTCH_Num * restrict const vnumtab, SCOTCH_Graph * restrict const indgrafptr) { int o; const Graph * const srcorggrafptr = (Graph *) CONTEXTOBJECT (orggrafptr); Graph * const srcindgrafptr = (Graph *) CONTEXTOBJECT (indgrafptr); o = graphInduceList (srcorggrafptr, (const Gnum) vnumnbr, (const Gnum * restrict const) vnumtab, srcindgrafptr); srcindgrafptr->vnumtax = NULL; /* Neutralize vnumtax for subsequent operations */ return (o); } /* This routine builds the graph induced ** by the original graph and the vector ** of selected vertices. ** The induced vnumtab array is the list of ** selected vertices if the original graph ** does not have a vnumtab, or the proper ** subset of the original vnumtab else. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int SCOTCH_graphInducePart ( const SCOTCH_Graph * restrict const orggrafptr, const SCOTCH_Num vnumnbr, const SCOTCH_GraphPart2 * restrict const parttab, const SCOTCH_GraphPart2 partval, SCOTCH_Graph * restrict const indgrafptr) { int o; const Graph * const srcorggrafptr = (Graph *) CONTEXTOBJECT (orggrafptr); Graph * const srcindgrafptr = (Graph *) CONTEXTOBJECT (indgrafptr); o = graphInducePart (srcorggrafptr, ((GraphPart * restrict const) parttab) - srcorggrafptr->baseval, (const Gnum) vnumnbr, (const GraphPart) partval, srcindgrafptr); srcindgrafptr->vnumtax = NULL; /* Neutralize vnumtax for subsequent operations */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_induce_f.c000066400000000000000000000100161514310134000305400ustar00rootroot00000000000000/* Copyright 2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_diam_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 14 jan 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHINDUCELIST, graphinducelist, ( \ SCOTCH_Graph * restrict const orggrafptr, \ const SCOTCH_Num vnumnbr, \ const SCOTCH_Num * restrict const vnumtab, \ SCOTCH_Graph * restrict const indgrafptr, \ int * const revaptr), \ (orggrafptr, vnumnbr, vnumtab, indgrafptr, revaptr)) { *revaptr = SCOTCH_graphInduceList (orggrafptr, vnumnbr, vnumtab, indgrafptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHINDUCEPART, graphinducepart, ( \ SCOTCH_Graph * restrict const orggrafptr, \ const SCOTCH_Num vnumnbr, \ const SCOTCH_GraphPart2 * restrict const parttab, \ const SCOTCH_GraphPart2 partval, \ SCOTCH_Graph * restrict const indgrafptr, \ int * const revaptr), \ (orggrafptr, vnumnbr, parttab, partval, indgrafptr, revaptr)) { *revaptr = SCOTCH_graphInducePart (orggrafptr, vnumnbr, parttab, partval, indgrafptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_chac.c000066400000000000000000000103331514310134000303530ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_chac.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Chaco **/ /** geometry and graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 28 nov 2003 **/ /** to : 19 jan 2004 **/ /** # Version 5.1 : from : 27 apr 2010 **/ /** to : 27 apr 2010 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "geom.h" #include "graph.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Chaco graph and geometry */ /* handling routines. */ /* */ /*************************************/ /*+ This routine loads the given opaque geom *** structure with the data of the given stream. *** - 0 : if loading succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomLoadChac ( SCOTCH_Graph * restrict const grafptr, SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomLoadChac ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } /*+ This routine saves the contents of the given *** opaque graph structure to the given stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomSaveChac ( const SCOTCH_Graph * restrict const grafptr, const SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomSaveChac ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_chac_f.c000066400000000000000000000172051514310134000306650ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_chac_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 23 nov 2005 **/ /** to : 23 nov 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMLOADCHAC, graphgeomloadchac, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADCHAC)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADCHAC)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADCHAC)) ": cannot open input stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADCHAC)) ": cannot open input stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomLoadChac (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMSAVECHAC, graphgeomsavechac, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVECHAC)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVECHAC)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVECHAC)) ": cannot open output stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVECHAC)) ": cannot open output stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomSaveChac (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_habo.c000066400000000000000000000072521514310134000303740ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_habo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Harwell- **/ /** Boeing geometry and graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 18 nov 2003 **/ /** to : 19 jan 2004 **/ /** # Version 5.1 : from : 27 apr 2010 **/ /** to : 27 apr 2010 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "geom.h" #include "graph.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Harwell-Boeing geometry */ /* handling routines. */ /* */ /*************************************/ /*+ This routine loads the given opaque geom *** structure with the data of the given stream. *** - 0 : if loading succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomLoadHabo ( SCOTCH_Graph * restrict const grafptr, SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomLoadHabo ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_habo_f.c000066400000000000000000000126511514310134000307000ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_habo_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 23 nov 2005 **/ /** to : 23 nov 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMLOADHABO, graphgeomloadhabo, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADHABO)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADHABO)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADHABO)) ": cannot open input stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADHABO)) ": cannot open input stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomLoadHabo (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_mmkt.c000066400000000000000000000103261514310134000304270ustar00rootroot00000000000000/* Copyright 2008,2010,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_mmkt.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Matrix **/ /** Market geometry and graph handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.0 : from : 13 mar 2008 **/ /** to : 13 mar 2008 **/ /** # Version 5.1 : from : 27 apr 2010 **/ /** to : 27 apr 2010 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "geom.h" #include "graph.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Matrix Market graph and */ /* geometry handling routines. */ /* */ /*************************************/ /*+ This routine loads the given opaque geom *** structure with the data of the given stream. *** - 0 : if loading succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomLoadMmkt ( SCOTCH_Graph * restrict const grafptr, SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomLoadMmkt ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } /*+ This routine saves the contents of the given *** opaque graph structure to the given stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomSaveMmkt ( const SCOTCH_Graph * restrict const grafptr, const SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomSaveMmkt ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_mmkt_f.c000066400000000000000000000172551514310134000307440ustar00rootroot00000000000000/* Copyright 2008,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_mmkt_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 5.0 : from : 14 mar 2008 **/ /** to : 14 mar 2008 **/ /** # Version 5.1 : from : 11 oct 2008 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMLOADMMKT, graphgeomloadmmkt, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADMMKT)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADMMKT)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADMMKT)) ": cannot open input stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADMMKT)) ": cannot open input stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomLoadMmkt (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMSAVEMMKT, graphgeomsavemmkt, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVEMMKT)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVEMMKT)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVEMMKT)) ": cannot open output stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVEMMKT)) ": cannot open output stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomSaveMmkt (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_scot.c000066400000000000000000000105321514310134000304260ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_scot.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Scotch **/ /** geometry and graph handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.4 : from : 10 oct 1999 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 18 dec 2001 **/ /** to : 19 jan 2004 **/ /** # Version 5.1 : from : 27 apr 2010 **/ /** to : 27 apr 2010 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "geom.h" #include "graph.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Scotch graph and geometry */ /* handling routines. */ /* */ /*************************************/ /*+ This routine loads the given opaque graph *** structure with the data of the given stream. *** - 0 : if loading succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomLoadScot ( SCOTCH_Graph * restrict const grafptr, SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomLoadScot ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } /*+ This routine saves the contents of the given *** opaque graph structure to the given stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_graphGeomSaveScot ( const SCOTCH_Graph * restrict const grafptr, const SCOTCH_Geom * restrict const geomptr, FILE * const filegrfptr, FILE * const filegeoptr, const char * const dataptr) { return (graphGeomSaveScot ((Graph *) CONTEXTOBJECT (grafptr), (Geom *) geomptr, filegrfptr, filegeoptr, dataptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_io_scot_f.c000066400000000000000000000172621514310134000307420ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_io_scot_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 23 nov 2005 **/ /** to : 23 nov 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMLOADSCOT, graphgeomloadscot, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADSCOT)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADSCOT)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADSCOT)) ": cannot open input stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMLOADSCOT)) ": cannot open input stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomLoadScot (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ GRAPHGEOMSAVESCOT, graphgeomsavescot, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (grafptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVESCOT)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVESCOT)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVESCOT)) ": cannot open output stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHGEOMSAVESCOT)) ": cannot open output stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_graphGeomSaveScot (grafptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map.c000066400000000000000000000671461514310134000275610ustar00rootroot00000000000000/* Copyright 2004,2007-2012,2014,2018,2019,2021,2023,2024,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module is the API for the mapping **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.2 : from : 19 aug 1998 **/ /** to : 20 aug 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 13 jan 2004 **/ /** to : 13 nov 2005 **/ /** # Version 5.1 : from : 29 oct 2007 **/ /** to : 24 jul 2011 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "arch_dist.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "library_mapping.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the mapping routines. */ /* */ /************************************/ /*+ This routine initializes an API opaque *** mapping with respect to the given source *** graph and the locations of output parameters. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapInit ( const SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping structure to initialize +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture used to map +*/ SCOTCH_Num * const parttab) /*+ Mapping array +*/ { LibMapping * restrict const lmapptr = (LibMapping *) mappptr; lmapptr->flagval = LIBMAPPINGNONE; /* No options set */ lmapptr->grafptr = (Graph *) CONTEXTOBJECT (grafptr); lmapptr->archptr = (Arch *) archptr; if (parttab == NULL) { if ((lmapptr->parttab = (Gnum *) memAlloc (lmapptr->grafptr->vertnbr * sizeof (Gnum))) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphMapInit) ": out of memory"); return (1); } memSet (lmapptr->parttab, 0, lmapptr->grafptr->vertnbr * sizeof (Anum)); /* All vertices mapped to first domain */ lmapptr->flagval |= LIBMAPPINGFREEPART; /* The user did not provided the partition array, so we will free it */ } else lmapptr->parttab = (Gnum *) parttab; return (0); } /*+ This routine frees an API mapping. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphMapExit ( const SCOTCH_Graph * const grafptr, SCOTCH_Mapping * const mappptr) { LibMapping * restrict const lmapptr = (LibMapping *) mappptr; if (((lmapptr->flagval & LIBMAPPINGFREEPART) != 0) && /* If parttab must be freed */ (lmapptr->parttab != NULL)) /* And if exists */ memFree (lmapptr->parttab); /* Free it */ memSet (lmapptr, 0, sizeof (LibMapping)); } /*+ This routine computes a mapping or a *** remapping, with or without fixed *** vertices, of the API mapping *** structures given in input, with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ static int graphMapCompute2 ( SCOTCH_Graph * const actgrafptr, /*+ Graph to order +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping to compute +*/ SCOTCH_Mapping * const mapoptr, /*+ Old mapping +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ const SCOTCH_Num vfixnbr, /*+ Number of fixed vertices in part array +*/ SCOTCH_Strat * const straptr) /*+ Mapping strategy +*/ { ArchDom domnorg; /* Initial domain */ Kgraph mapgrafdat; /* Effective mapping graph */ const Strat * mapstraptr; /* Pointer to mapping strategy */ CONTEXTDECL (actgrafptr); Anum * pfixtax; Gnum crloval; /* Coefficient load for regular edges */ Gnum cmloval; /* Coefficient load for migration edges */ const Gnum * vmlotax; /* Vertex migration cost array */ int o; o = 1; /* Assume an error */ if (CONTEXTINIT (actgrafptr)) { errorPrint (STRINGIFY (graphMapCompute2) ": cannot initialize context"); return (o); } const Graph * restrict const grafptr = (Graph *) CONTEXTGETOBJECT (actgrafptr); LibMapping * restrict const lmapptr = (LibMapping *) mappptr; const LibMapping * restrict const lmaoptr = (LibMapping *) mapoptr; const Gnum baseval = grafptr->baseval; #ifdef SCOTCH_DEBUG_LIBRARY1 if (grafptr != lmapptr->grafptr) { errorPrint ("graphMapCompute2: output mapping does not correspond to input graph"); goto abort; } if (lmaoptr != NULL) { Gnum vertnbr; Gnum vertnum; if (grafptr != lmaoptr->grafptr) { errorPrint ("graphMapCompute2: old mapping does not correspond to input graph"); goto abort; } if (lmapptr->archptr != lmaoptr->archptr) { errorPrint ("graphMapCompute2: output and old mappings do not correspond to same architecture"); goto abort; } for (vertnum = 0, vertnbr = lmaoptr->grafptr->vertnbr; vertnum < vertnbr; vertnum ++) { ArchDom domndat; if ((lmaoptr->parttab[vertnum] >= 0) && (archDomTerm (lmapptr->archptr, &domndat, lmaoptr->parttab[vertnum]) != 0)) { errorPrint ("graphMapCompute2: invalid old partition"); goto abort; } } } #endif /* SCOTCH_DEBUG_LIBRARY1 */ #ifdef SCOTCH_DEBUG_LIBRARY2 if (graphCheck (grafptr) != 0) { /* Vertex loads can be 0 if we have fixed vertices */ errorPrint ("graphMapCompute2: invalid input graph"); goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY2 */ archDomFrst (lmapptr->archptr, &domnorg); /* Compute initial domain to map to */ if (*((Strat **) straptr) == NULL) { /* Set default mapping strategy if necessary */ if (SCOTCH_stratGraphMapBuild (straptr, SCOTCH_STRATDEFAULT, archDomSize (lmapptr->archptr, &domnorg), 0.01) != 0) goto abort; } mapstraptr = *((Strat **) straptr); if (mapstraptr->tablptr != &kgraphmapststratab) { errorPrint ("graphMapCompute2: not a sequential graph mapping strategy"); goto abort; } if (vfixnbr > 0) { /* We have fixed vertices */ #ifdef SCOTCH_DEBUG_LIBRARY1 ArchDom domndat; Gnum vertnbr; Gnum vertnum; if (lmapptr->parttab == NULL) { /* We must have fixed vertex information */ errorPrint ("graphMapCompute2: missing output mapping part array"); goto abort; } for (vertnum = 0, vertnbr = lmapptr->grafptr->vertnbr; vertnum < vertnbr; vertnum ++) { if ((lmapptr->parttab[vertnum] >= 0) && (archDomTerm (lmapptr->archptr, &domndat, lmapptr->parttab[vertnum]) != 0)) { errorPrint ("graphMapCompute2: invalid fixed partition"); goto abort; } } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if (vfixnbr >= grafptr->vertnbr) { /* If all fixed vertices, do nothing */ o = 0; goto abort; } pfixtax = lmapptr->parttab - baseval; } else pfixtax = NULL; if (lmaoptr != NULL) { /* We are doing a repartitioning */ Gnum numeval; Gnum denoval; vmlotax = (vmlotab != NULL) ? vmlotab - baseval : NULL; numeval = (INT) ((emraval * 100.0) + 0.5); denoval = intGcd (numeval, 100); cmloval = numeval / denoval; crloval = 100 / denoval; } else { vmlotax = NULL; cmloval = crloval = 1; } if (kgraphInit (&mapgrafdat, grafptr, lmapptr->archptr, &domnorg, vfixnbr, pfixtax, crloval, cmloval, vmlotax) != 0) goto abort; if (lmaoptr != NULL) { /* If we are doing a repartitioning, fill old mapping structure */ if (mapAlloc (&mapgrafdat.r.m) != 0) { /* Allocate part and domain arrays */ errorPrint ("kgraphInit: cannot initialize remapping (1)"); kgraphExit (&mapgrafdat); goto abort; } memSet (mapgrafdat.r.m.parttax + baseval, ~0, grafptr->vertnbr * sizeof (Anum)); /* Pre-set unknown vertex domains */ mapgrafdat.r.m.flagval |= MAPPINGINCOMPLETE; /* Mapping may contain incomplete information */ if (mapBuild (&mapgrafdat.r.m, lmaoptr->parttab - baseval) != 0) { /* Merge old part information to incomplete mapping */ errorPrint ("kgraphInit: cannot initialize remapping (2)"); kgraphExit (&mapgrafdat); goto abort; } } mapgrafdat.contptr = CONTEXTGETDATA (actgrafptr); o = kgraphMapSt (&mapgrafdat, mapstraptr); mapTerm (&mapgrafdat.m, lmapptr->parttab - baseval); /* Propagate mapping result to part array */ kgraphExit (&mapgrafdat); abort: CONTEXTEXIT (actgrafptr); return (o); } /*+ This routine computes a mapping *** of the API mapping structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapCompute ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping to compute +*/ SCOTCH_Strat * const straptr) /*+ Mapping strategy +*/ { return (graphMapCompute2 (grafptr, mappptr, NULL, 1, NULL, 0, straptr)); } /*+ This routine computes a mapping *** with fixed vertices of the API *** mapping structure with respect *** to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapFixedCompute ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping to compute +*/ SCOTCH_Strat * const straptr) /*+ Mapping strategy +*/ { return (SCOTCH_graphRemapFixedCompute (grafptr, mappptr, NULL, 1, NULL, straptr)); } /*+ This routine computes a remapping *** of the API mapping structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRemapCompute ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping to compute +*/ SCOTCH_Mapping * const mapoptr, /*+ Old mapping +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ SCOTCH_Strat * const straptr) /*+ Mapping strategy +*/ { return (graphMapCompute2 (grafptr, mappptr, mapoptr, emraval, vmlotab, 0, straptr)); } /*+ This routine computes a remapping *** with fixed vertices of the API *** mapping structure with respect *** to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRemapFixedCompute ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping to compute +*/ SCOTCH_Mapping * const mapoptr, /*+ Old mapping +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ SCOTCH_Strat * const straptr) /*+ Mapping strategy +*/ { Gnum vfixnbr; Gnum vertnbr; Gnum vertnum; const Anum * restrict const pfixtab = ((LibMapping *) mappptr)->parttab; for (vertnum = 0, vertnbr = ((Graph *) CONTEXTOBJECT (grafptr))->vertnbr, vfixnbr = 0; /* Compute number of fixed vertices */ vertnum < vertnbr; vertnum ++) { if (pfixtab[vertnum] != ~0) vfixnbr ++; } return (graphMapCompute2 (grafptr, mappptr, mapoptr, emraval, vmlotab, vfixnbr, straptr)); } /*+ This routine computes a mapping of the *** given graph structure onto the given *** target architecture with respect to the *** given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMap ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Mapping mappdat; int o; SCOTCH_graphMapInit (grafptr, &mappdat, archptr, parttab); o = SCOTCH_graphMapCompute (grafptr, &mappdat, straptr); SCOTCH_graphMapExit (grafptr, &mappdat); return (o); } /*+ This routine computes a mapping of the *** given graph structure onto the given *** target architecture with respect to the *** given strategy and the fixed vertices in *** maptab. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapFixed ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Mapping mappdat; int o; SCOTCH_graphMapInit (grafptr, &mappdat, archptr, parttab); o = SCOTCH_graphMapFixedCompute (grafptr, &mappdat, straptr); SCOTCH_graphMapExit (grafptr, &mappdat); return (o); } /*+ This routine computes a remapping of the *** given graph structure onto the given *** target architecture with respect to the *** given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRemap ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture +*/ SCOTCH_Num * const parotab, /*+ Old partition array +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Mapping mappdat; SCOTCH_Mapping mapodat; int o; SCOTCH_graphMapInit (grafptr, &mappdat, archptr, parttab); SCOTCH_graphMapInit (grafptr, &mapodat, archptr, parotab); o = SCOTCH_graphRemapCompute (grafptr, &mappdat, &mapodat, emraval, vmlotab, straptr); SCOTCH_graphMapExit (grafptr, &mapodat); SCOTCH_graphMapExit (grafptr, &mappdat); return (o); } /*+ This routine computes a remapping of the *** given graph structure onto the given *** target architecture with respect to the *** given strategy and the fixed vertices in *** maptab. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRemapFixed ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Arch * const archptr, /*+ Target architecture +*/ SCOTCH_Num * const parotab, /*+ Old partition array +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Mapping mappdat; SCOTCH_Mapping mapodat; int o; SCOTCH_graphMapInit (grafptr, &mappdat, archptr, parttab); SCOTCH_graphMapInit (grafptr, &mapodat, archptr, parotab); o = SCOTCH_graphRemapFixedCompute (grafptr, &mappdat, &mapodat, emraval, vmlotab, straptr); SCOTCH_graphMapExit (grafptr, &mapodat); SCOTCH_graphMapExit (grafptr, &mappdat); return (o); } /*+ This routine computes a partition of *** the given graph structure with respect *** to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphPart ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Num partnbr, /*+ Number of parts +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Arch archdat; int o; SCOTCH_archInit (&archdat); SCOTCH_archCmplt (&archdat, partnbr); o = SCOTCH_graphMap (grafptr, &archdat, straptr, parttab); SCOTCH_archExit (&archdat); return (o); } /*+ This routine computes a partition of *** the given graph structure with respect *** to the given strategy and the fixed *** vertices in maptab. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphPartFixed ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Num partnbr, /*+ Number of parts +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Arch archdat; int o; SCOTCH_archInit (&archdat); SCOTCH_archCmplt (&archdat, partnbr); o = SCOTCH_graphMapFixed (grafptr, &archdat, straptr, parttab); SCOTCH_archExit (&archdat); return (o); } /*+ This routine computes a repartitionning *** of the given graph structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRepart ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Num partnbr, /*+ Number of parts +*/ SCOTCH_Num * const parotab, /*+ Old partition array +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * const vmlotab, /*+ Vertex migration cost array +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Arch archdat; int o; SCOTCH_archInit (&archdat); SCOTCH_archCmplt (&archdat, partnbr); o = SCOTCH_graphRemap (grafptr, &archdat, parotab, emraval, vmlotab, straptr, parttab); SCOTCH_archExit (&archdat); return (o); } /*+ This routine computes a repartitionning *** of the given graph structure with *** respect to the given strategy and the *** fixed vertices in maptab. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRepartFixed ( SCOTCH_Graph * const grafptr, /*+ Graph to map +*/ const SCOTCH_Num partnbr, /*+ Number of parts +*/ SCOTCH_Num * const parotab, /*+ Old partition array +*/ const double emraval, /*+ Edge migration ratio +*/ const SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ SCOTCH_Strat * const straptr, /*+ Mapping strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { SCOTCH_Arch archdat; int o; SCOTCH_archInit (&archdat); SCOTCH_archCmplt (&archdat, partnbr); o = SCOTCH_graphRemapFixed (grafptr, &archdat, parotab, emraval, vmlotab, straptr, parttab); SCOTCH_archExit (&archdat); return (o); } /*+ This routine parses the given *** mapping strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratGraphMap ( SCOTCH_Strat * const straptr, const char * const string) { if (*((Strat **) straptr) != NULL) stratExit (*((Strat **) straptr)); if ((*((Strat **) straptr) = stratInit (&kgraphmapststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratGraphMap) ": error in mapping strategy"); return (1); } return (0); } /*+ This routine provides predefined *** mapping strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratGraphMapBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num partnbr, /*+ Number of expected parts/size +*/ const double kbalval) /*+ Desired imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char bbaltab[64]; char kbaltab[64]; char kmovtab[64]; char mvrttab[64]; const char * difkptr; const char * difsptr; const char * exasptr; const char * exaxptr; sprintf (bbaltab, "%lf", kbalval); sprintf (kbaltab, "%lf", kbalval); sprintf (kmovtab, GNUMSTRING, (Gnum) (((flagval & SCOTCH_STRATQUALITY) != 0) ? 200 : 80)); sprintf (mvrttab, GNUMSTRING, (Gnum) (MAX ((20 * partnbr), 10000))); strcpy (bufftab, ((flagval & SCOTCH_STRATRECURSIVE) != 0) ? "" /* Use only the recursive bipartitioning framework */ : "m{vert=,low=,asc=b{bnd=f{bal=,move=},org=f{bal=,move=}}}"); stringSubst (bufftab, "", "r{job=t,map=t,poli=S,bal=,sep=}"); stringSubst (bufftab, "", ((flagval & SCOTCH_STRATQUALITY) != 0) ? "||" : "|"); stringSubst (bufftab, "", "m{vert=120,low=h{pass=10}f{bal=,move=120},asc=b{bnd=f{bal=,move=120},org=f{bal=,move=120}}}"); if ((flagval & SCOTCH_STRATSAFETY) != 0) difsptr = ""; else difsptr = "(d{pass=40}|)"; difkptr = "d{pass=40}"; if ((flagval & SCOTCH_STRATBALANCE) != 0) { exasptr = "f{bal=}"; exaxptr = "x{bal=}f{bal=,move=}"; } else { exasptr = ""; exaxptr = ""; } stringSubst (bufftab, "", mvrttab); stringSubst (bufftab, "", exaxptr); stringSubst (bufftab, "", exasptr); stringSubst (bufftab, "", difsptr); stringSubst (bufftab, "", difkptr); stringSubst (bufftab, "", kmovtab); stringSubst (bufftab, "", kbaltab); stringSubst (bufftab, "", bbaltab); return (SCOTCH_stratGraphMap (straptr, bufftab)); } /*+ This routine provides predefined *** clustering strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratGraphClusterBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num pwgtval, /*+ Threshold part weight +*/ const double densval, /*+ Threshold density value +*/ const double bbalval) /*+ Maximum imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char bbaltab[32]; char pwgttab[32]; char denstab[32]; char * difsptr; char * exasptr; sprintf (bbaltab, "%lf", bbalval); sprintf (denstab, "%lf", densval); sprintf (pwgttab, GNUMSTRING, pwgtval); strcpy (bufftab, "r{job=u,map=t,poli=L,sep=/((load>)&!(edge>vert**(vert-1)))?(m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}});}"); stringSubst (bufftab, "", ((flagval & SCOTCH_STRATSPEED) != 0) ? "" : "m{vert=80,low=h{pass=10}f{bal=,move=80},asc=b{bnd=f{bal=,move=80},org=f{bal=,move=80}}}|"); if ((flagval & SCOTCH_STRATBALANCE) != 0) exasptr = "f{bal=0}"; else exasptr = ""; if ((flagval & SCOTCH_STRATSAFETY) != 0) difsptr = ""; else difsptr = "(d{pass=40}|)"; stringSubst (bufftab, "", exasptr); stringSubst (bufftab, "", difsptr); stringSubst (bufftab, "", bbaltab); stringSubst (bufftab, "", denstab); stringSubst (bufftab, "", pwgttab); return (SCOTCH_stratGraphMap (straptr, bufftab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_f.c000066400000000000000000000274551514310134000300650ustar00rootroot00000000000000/* Copyright 2004,2007,2010-2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** mapping routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 3.4 : from : 02 dec 1999 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 12 jan 2004 **/ /** to : 12 dec 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 17 apr 2011 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* ** */ /* TODO update fortran interface... */ SCOTCH_FORTRAN ( \ GRAPHMAPINIT, graphmapinit, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Num * const mapptab, \ int * const revaptr), \ (grafptr, mappptr, archptr, mapptab, revaptr)) { *revaptr = SCOTCH_graphMapInit (grafptr, mappptr, archptr, mapptab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPEXIT, graphmapexit, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr), \ (grafptr, mappptr)) { SCOTCH_graphMapExit (grafptr, mappptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPCOMPUTE, graphmapcompute, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, mappptr, straptr, revaptr)) { *revaptr = SCOTCH_graphMapCompute (grafptr, mappptr, straptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPFIXEDCOMPUTE, graphmapfixedcompute, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, mappptr, straptr, revaptr)) { *revaptr = SCOTCH_graphMapFixedCompute (grafptr, mappptr, straptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHREMAPCOMPUTE, graphremapcompute, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ SCOTCH_Mapping * const mapoptr, \ const double * const emraptr, \ const SCOTCH_Num * const vmlotab, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, mappptr, mapoptr, emraptr, vmlotab, straptr, revaptr)) { *revaptr = SCOTCH_graphRemapCompute (grafptr, mappptr, mapoptr, *emraptr, vmlotab, straptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHREMAPFIXEDCOMPUTE, graphremapfixedcompute, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ SCOTCH_Mapping * const mapoptr, \ const double * const emraptr, \ const SCOTCH_Num * const vmlotab, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, mappptr, mapoptr, emraptr, vmlotab, straptr, revaptr)) { *revaptr = SCOTCH_graphRemapFixedCompute (grafptr, mappptr, mapoptr, *emraptr, vmlotab, straptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAP, graphmap, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, archptr, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphMap (grafptr, archptr, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPFIXED, graphmapfixed, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, archptr, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphMapFixed (grafptr, archptr, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHREMAP, graphremap, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Num * const parotab, \ const double * const emraptr, \ const SCOTCH_Num * const vmlotab, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, archptr, parotab, emraptr, vmlotab, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphRemap (grafptr, archptr, parotab, *emraptr, vmlotab, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHREMAPFIXED, graphremapfixed, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Arch * const archptr, \ SCOTCH_Num * const parotab, \ const double * const emraptr, \ const SCOTCH_Num * const vmlotab, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, archptr, parotab, emraptr, vmlotab, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphRemapFixed (grafptr, archptr, parotab, *emraptr, vmlotab, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHPART, graphpart, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const partptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, partptr, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphPart (grafptr, *partptr, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHPARTFIXED, graphpartfixed, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const partptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, partptr, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphPartFixed (grafptr, *partptr, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHREPART, graphrepart, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const partptr, \ SCOTCH_Num * const parotab, \ const double * const emraptr, \ const SCOTCH_Num * const vmlotab, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, partptr, parotab, emraptr, vmlotab, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphRepart (grafptr, *partptr, parotab, *emraptr, vmlotab, straptr, parttab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHREPARTFIXED, graphrepartfixed, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const partptr, \ SCOTCH_Num * const parotab, \ const double * const emraptr, \ const SCOTCH_Num * const vmlotab, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, partptr, parotab, emraptr, vmlotab, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphRepartFixed (grafptr, *partptr, parotab, *emraptr, vmlotab, straptr, parttab); } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ STRATGRAPHMAP, stratgraphmap, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATGRAPHMAP)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratGraphMap (straptr, strtab); /* Call original routine */ memFree (strtab); } /* ** */ SCOTCH_FORTRAN ( \ STRATGRAPHMAPBUILD, stratgraphmapbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const partnbr, \ const double * const kbalval, \ int * const revaptr), \ (straptr, flagval, partnbr, kbalval, revaptr)) { *revaptr = SCOTCH_stratGraphMapBuild (straptr, *flagval, *partnbr, *kbalval); } /* ** */ SCOTCH_FORTRAN ( \ STRATGRAPHCLUSTERBUILD, stratgraphclusterbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const pwgtval, \ const double * const densval, \ const double * const bbalval, \ int * const revaptr), \ (straptr, flagval, pwgtval, densval, bbalval, revaptr)) { *revaptr = SCOTCH_stratGraphClusterBuild (straptr, *flagval, *pwgtval, *densval, *bbalval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_io.c000066400000000000000000000300301514310134000302260ustar00rootroot00000000000000/* Copyright 2011,2012,2015,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_io.c **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the API mappings **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 16 apr 2011 **/ /** to : 26 oct 2019 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "graph.h" #include "arch.h" #include "library_mapping.h" #include "library_graph_map_io.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the API mapping handling */ /* routines. */ /* */ /*************************************/ /*+ This routine loads the contents of the *** given mapping array from the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphTabLoad ( const SCOTCH_Graph * const actgrafptr, /*+ Graph to map +*/ SCOTCH_Num * const parttab, /*+ Array to load +*/ FILE * const stream) /*+ Input stream +*/ { Gnum vertsortnbr; /* Number of vertex sort slots to allocate */ VertSort * vertsorttab; /* Pointer to graph sorting array */ VertSort * mappsorttab; /* Pointer to mapping data sorting array */ int mappsortflag; /* Flag set if mapping data sorted by label */ Gnum mappsortlabl; /* Old label value */ Gnum mappsortval; Gnum mappfileval; Gnum mappfilenbr; /* Number of mapping pairs in file */ Gnum mappfilenum; /* Counter of mapping pairs in file */ Graph * grafptr; Gnum vertnbr; grafptr = (Graph *) CONTEXTOBJECT (actgrafptr); vertnbr = grafptr->vertnbr; memSet (parttab, ~0, vertnbr * sizeof (Anum)); /* Pre-initialize the partition array */ if ((fscanf (stream, GNUMSTRING, &mappfileval) != 1) || /* Read number of mapping pairs */ (mappfileval < 1)) { errorPrint (STRINGIFY (SCOTCH_graphTabLoad) ": bad input (1)"); return (1); } mappfilenbr = (Gnum) mappfileval; if (mappfilenbr <= 0) /* If nothing to do */ return (0); vertsortnbr = (grafptr->vlbltax != NULL) ? vertnbr : 0; if (memAllocGroup ((void **) (void *) /* Allocate temporary data */ &mappsorttab, (size_t) (mappfilenbr * sizeof (VertSort)), &vertsorttab, (size_t) (vertsortnbr * sizeof (VertSort)), NULL) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphTabLoad) ": out of memory (1)"); return (1); } mappsortflag = 1; /* Assume mapping data sorted */ mappsortlabl = GNUMMIN; for (mappfilenum = 0; mappfilenum < mappfilenbr; mappfilenum ++) { if (fscanf (stream, GNUMSTRING GNUMSTRING, &mappsortval, &mappfileval) != 2) { errorPrint (STRINGIFY (SCOTCH_graphTabLoad) ": bad input (2)"); memFree (mappsorttab); /* Free group leader */ return (1); } mappsorttab[mappfilenum].labl = mappsortval; mappsorttab[mappfilenum].num = mappfileval; if (mappsortval < mappsortlabl) /* Check if mapping data sorted */ mappsortflag = 0; /* Mapping data not sorted */ mappsortlabl = mappsortval; } if (mappsortflag != 1) /* If mapping data not sorted */ intSort2asc1 (mappsorttab, mappfilenbr); /* Sort area by ascending labels */ for (mappfilenum = 1; mappfilenum < mappfilenbr; mappfilenum ++) { /* Check mapping data integrity */ if (mappsorttab[mappfilenum].labl == mappsorttab[mappfilenum - 1].labl) { errorPrint (STRINGIFY (SCOTCH_graphTabLoad) ": duplicate vertex label"); memFree (mappsorttab); /* Free group leader */ return (1); } } if (grafptr->vlbltax != NULL) { /* If graph has vertex labels */ int vertsortflag; /* Flag set if graph data sorted by label */ Gnum vertsortlabl; /* Old label value */ Gnum vertsortnum; vertsortflag = 1; /* Assume graph data sorted */ vertsortlabl = GNUMMIN; for (vertsortnum = 0; vertsortnum < vertnbr; vertsortnum ++) { vertsorttab[vertsortnum].labl = grafptr->vlbltax[vertsortnum]; vertsorttab[vertsortnum].num = vertsortnum; if (vertsorttab[vertsortnum].labl < vertsortlabl) /* Check if graph data sorted */ vertsortflag = 0; /* Graph data not sorted */ vertsortlabl = vertsorttab[vertsortnum].labl; } if (vertsortflag != 1) /* If graph label data not sorted */ intSort2asc1 (vertsorttab, vertnbr); /* Sort sort area by ascending labels */ for (vertsortnum = 0, mappfilenum = 0; vertsortnum < vertnbr; vertsortnum ++) { /* For all vertices in graph */ while (mappsorttab[mappfilenum].labl < vertsorttab[vertsortnum].labl) { mappfilenum ++; /* Search mapping vertex with same label */ if (mappfilenum >= mappfilenbr) /* If all mapping data processed */ goto end; /* Exit main loop */ } if (mappsorttab[mappfilenum].labl == vertsorttab[vertsortnum].labl) /* If label match found */ ((Anum *) parttab)[vertsorttab[vertsortnum].num] = mappsorttab[mappfilenum ++].num; } end: ; } else { /* Graph does not have vertex labels */ const Gnum baseval = grafptr->baseval; for (mappfilenum = 0; mappfilenum < mappfilenbr; mappfilenum ++) { /* For all mapping pairs */ Gnum vertnum; /* Vertex index to which mapping label is applied */ vertnum = mappsorttab[mappfilenum].labl - baseval; if ((vertnum >= 0) && (vertnum < vertnbr)) /* If valid vertex label */ ((Anum *) parttab)[vertnum] = (Anum) mappsorttab[mappfilenum].num; } } memFree (mappsorttab); /* Free group leader */ return (0); } /*+ This routine saves the contents of the *** given mapping array to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphTabSave ( const SCOTCH_Graph * const libgrafptr, /*+ Graph to map +*/ const SCOTCH_Num * const parttab, /*+ Array to save +*/ FILE * const stream) /*+ Input stream +*/ { Gnum vertnum; const Graph * restrict const grafptr = (Graph *) CONTEXTOBJECT (libgrafptr); const Gnum * restrict const vlbltax = grafptr->vlbltax; const Gnum * restrict const parttax = parttab - grafptr->baseval; if (fprintf (stream, GNUMSTRING "\n", (Gnum) grafptr->vertnbr) == EOF) { errorPrint (STRINGIFY (SCOTCH_graphTabSave) ": bad output (1)"); return (1); } for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) ((vlbltax != NULL) ? vlbltax[vertnum] : vertnum), (Gnum) parttax[vertnum]) == EOF) { errorPrint (STRINGIFY (SCOTCH_graphTabSave) ": bad output (2)"); return (1); } } return (0); } /*+ This routine loads the contents of *** the given user mapping from the *** given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapLoad ( const SCOTCH_Graph * const actgrafptr, /*+ Graph to map +*/ SCOTCH_Mapping * const mappptr, /*+ Mapping to save +*/ FILE * const stream) /*+ Output stream +*/ { const Graph * restrict const grafptr = (Graph *) CONTEXTOBJECT (actgrafptr); LibMapping * restrict lmapptr = (LibMapping *) mappptr; #ifdef SCOTCH_DEBUG_GRAPH2 if (grafptr != lmapptr->grafptr) { errorPrint (STRINGIFY (SCOTCH_graphMapLoad) ": mapping structure must derive from graph"); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ if (lmapptr->parttab == NULL) { /* Allocate array if necessary */ if ((lmapptr->parttab = (Gnum *) memAlloc (grafptr->vertnbr * sizeof (Gnum))) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphMapLoad) ": out of memory"); return (1); } lmapptr->flagval |= LIBMAPPINGFREEPART; /* As the array was not allocated by the user, it will be freed */ } return (SCOTCH_graphTabLoad (actgrafptr, (SCOTCH_Num *) lmapptr->parttab, stream)); } /*+ This routine saves the contents of *** the given user mapping to the given *** stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapSave ( const SCOTCH_Graph * const actgrafptr, /*+ Graph to map +*/ const SCOTCH_Mapping * const mappptr, /*+ Mapping to save +*/ FILE * const stream) /*+ Output stream +*/ { #ifdef SCOTCH_DEBUG_GRAPH2 const Graph * restrict const grafptr = (Graph *) CONTEXTOBJECT (actgrafptr); if (grafptr != (((LibMapping *) mappptr)->grafptr)) { errorPrint (STRINGIFY (SCOTCH_graphMapSave) ": mapping structure must derive from graph"); return (1); } #endif /* SCOTCH_DEBUG_GRAPH2 */ return (SCOTCH_graphTabSave (actgrafptr, (SCOTCH_Num *) ((LibMapping *) mappptr)->parttab, stream)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_io.h000066400000000000000000000052661514310134000302500ustar00rootroot00000000000000/* Copyright 2011 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_io.h **/ /** **/ /** AUTHOR : Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the API mapping handling routines. **/ /** **/ /** DATES : # Version 6.0 : from : 17 apr 2011 **/ /** to : 17 apr 2011 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ The sort structure, used to sort graph vertices by label. +*/ typedef struct VertSort_ { Gnum labl; /*+ Vertex label +*/ Gnum num; /*+ Vertex number +*/ } VertSort; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_io_f.c000066400000000000000000000167141514310134000305500ustar00rootroot00000000000000/* Copyright 2012,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_io_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 6.0 : from : 03 jul 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ SCOTCH_FORTRAN ( \ GRAPHTABLOAD, graphtabload, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Num * const parttab, \ const int * const fileptr, \ int * const revaptr), \ (grafptr, parttab, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHTABLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHTABLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphTabLoad (grafptr, parttab, stream); fclose (stream); /* This closes file descriptor too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHTABSAVE, graphtabsave, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const parttab, \ const int * const fileptr, \ int * const revaptr), \ (grafptr, parttab, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHTABSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHTABSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphTabSave (grafptr, parttab, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPLOAD, graphmapload, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ const int * const fileptr, \ int * const revaptr), \ (grafptr, mappptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHMAPLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHMAPLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphMapLoad (grafptr, mappptr, stream); fclose (stream); /* This closes file descriptor too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPSAVE, graphmapsave, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Mapping * const mappptr, \ const int * const fileptr, \ int * const revaptr), \ (grafptr, mappptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHMAPSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHMAPSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphMapSave (grafptr, mappptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_view.c000066400000000000000000000776751514310134000306230ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2015,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_view.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module is the API for the mapping **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 3.2 : from : 19 aug 1998 **/ /** to : 20 aug 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 13 jan 2004 **/ /** to : 30 nov 2006 **/ /** # Version 5.0 : from : 04 feb 2007 **/ /** to : 03 apr 2008 **/ /** # Version 5.1 : from : 27 jul 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 01 jul 2021 **/ /** to : 01 jul 2021 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 30 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" #include "library_mapping.h" #include "library_graph_map_view.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the mapping routines. */ /* */ /************************************/ /*+ This routine computes the pseudo-diameter of *** the given part. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ static Gnum graphMapView3 ( const Graph * const grafptr, /*+ Graph +*/ const Anum * const parttax, /*+ Part array +*/ const Anum partval) /*+ Part value +*/ { GraphMapViewQueue queudat; /* Neighbor queue */ GraphMapViewVertex * restrict vexxtax; /* Based access to vexxtab */ Gnum rootnum; /* Number of current root vertex */ Gnum vertdist; /* Vertex distance */ int diamflag; /* Flag set if diameter changed */ Gnum diambase; /* Base distance for connected components */ Gnum diamdist; /* Current diameter distance */ Gnum passnum; /* Pass number */ const Gnum * restrict verttax; /* Based access to vertex array */ const Gnum * restrict vendtax; /* Based access to vertex end array */ const Gnum * restrict edgetax; if (memAllocGroup ((void **) (void *) &queudat.qtab, (size_t) (grafptr->vertnbr * sizeof (Gnum)), &vexxtax, (size_t) (grafptr->vertnbr * sizeof (GraphMapViewVertex)), NULL) == NULL) { errorPrint ("graphMapView3: out of memory"); return (-1); } memSet (vexxtax, 0, grafptr->vertnbr * sizeof (GraphMapViewVertex)); /* Initialize pass numbers */ edgetax = grafptr->edgetax; verttax = grafptr->verttax; vendtax = grafptr->vendtax; vexxtax -= grafptr->baseval; diamdist = 0; /* Start distances from zero */ for (passnum = 1, rootnum = grafptr->baseval; ; passnum ++) { /* For all connected components */ Gnum diamnum; /* Vertex which achieves diameter */ while ((rootnum < grafptr->vertnbr) && ((vexxtax[rootnum].passnum != 0) || /* Find first unallocated vertex */ (parttax[rootnum] != partval))) rootnum ++; if (rootnum >= grafptr->vertnbr) /* Exit if all of graph processed */ break; diambase = ++ diamdist; /* Start from previous distance */ diamnum = rootnum; /* Start from found root */ for (diamflag = 1; diamflag -- != 0; passnum ++) { /* Loop if modifications */ graphMapViewQueueFlush (&queudat); /* Flush vertex queue */ graphMapViewQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* It has been enqueued */ vexxtax[diamnum].vertdist = diambase; /* It is at base distance */ do { /* Loop on vertices in queue */ Gnum vertnum; Gnum edgenum; vertnum = graphMapViewQueueGet (&queudat); /* Get vertex from queue */ vertdist = vexxtax[vertnum].vertdist; /* Get vertex distance */ if ((vertdist > diamdist) || /* If vertex increases diameter */ ((vertdist == diamdist) && /* Or is at diameter distance */ ((vendtax[vertnum] - verttax[vertnum]) < /* With smaller degree */ (vendtax[diamnum] - verttax[diamnum])))) { diamnum = vertnum; /* Set it as new diameter vertex */ diamdist = vertdist; diamflag = 1; } vertdist ++; /* Set neighbor distance */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if ((vexxtax[vertend].passnum < passnum) && /* If vertex not queued yet */ (parttax[vertend] == partval)) { /* And of proper part */ graphMapViewQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; vexxtax[vertend].vertdist = vertdist; } } } while (! graphMapViewQueueEmpty (&queudat)); /* As long as queue is not empty */ } } memFree (queudat.qtab); /* Free group leader */ return (diamdist); } /*+ This routine writes standard or raw *** mapping or remapping statistics to *** the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ static int graphMapView2 ( const SCOTCH_Graph * const libgrafptr, /*+ Ordered graph +*/ const SCOTCH_Mapping * const libmappptr, /*+ Computed mapping +*/ const SCOTCH_Mapping * const libmapoptr, /*+ Old mapping (equal to NULL if no repartitioning) +*/ const double emraval, /*+ Edge migration ratio +*/ SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ Gnum flagval, /*+ 0: standard output, !0: raw output for curves +*/ FILE * const stream) /*+ Output stream +*/ { const Arch * restrict archptr; LibMapping * restrict lmaoptr; Anum * restrict parttax; /* Part array */ Anum * restrict parotax; /* Old part array */ MappingSort * restrict domntab; /* Pointer to domain sort array */ ArchDom domnfrst; /* Largest domain in architecture */ ArchDom domnorg; /* Vertex domain */ ArchDom domnend; /* End domain */ ArchDom domnold; /* Vertex old domain */ Anum tgtnbr; /* Number of processors in target topology */ Anum mapnbr; /* Number of processors effectively used */ double mapavg; /* Average mapping weight */ Gnum mapmin; Gnum mapmax; Gnum mapsum; /* (Partial) sum of vertex loads */ double mapdlt; double mapmmy; /* Maximum / average ratio */ Anum * restrict nghbtab; /* Table storing neighbors of current subdomain */ Anum nghbnbr; Anum nghbmin; Anum nghbmax; Anum nghbsum; Gnum vertnum; Gnum vertidx; Gnum veloval; Gnum edloval; Gnum commdist[256]; /* Array of load distribution */ Gnum commload; /* Total edge load (edge sum) */ Gnum commdilat; /* Total edge dilation */ Gnum commexpan; /* Total edge expansion */ Anum distmax; Anum distval; Gnum diammin; Gnum diammax; Gnum diamsum; double diamavg; Gnum migrnbr; double migrloadavg; double migrdistavg; double migrcostsum; Gnum * restrict vmlotax; const Graph * restrict const grafptr = (Graph *) CONTEXTOBJECT (libgrafptr); LibMapping * restrict const lmapptr = (LibMapping *) libmappptr; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const velotax = grafptr->velotax; const Gnum * restrict const edgetax = grafptr->edgetax; const Gnum * restrict const edlotax = grafptr->edlotax; #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Mapping) < sizeof (LibMapping)) { errorPrint (STRINGIFY (SCOTCH_graphMapView) ": internal error"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ #ifdef SCOTCH_DEBUG_LIBRARY1 if (lmapptr->grafptr != grafptr) { errorPrint (STRINGIFY (SCOTCH_graphMapView) ": input graph must be the same as mapping graph"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if ((grafptr->vertnbr == 0) || /* Return if nothing to do */ (grafptr->edgenbr == 0)) return (0); if (libmapoptr != NULL) { lmaoptr = (LibMapping *) libmapoptr; parotax = lmaoptr->parttab; } else { lmaoptr = NULL; parotax = NULL; } if (vmlotab != NULL) vmlotax = (Gnum *) vmlotab - grafptr->baseval; else vmlotax = NULL; #ifdef SCOTCH_DEBUG_LIBRARY1 if (lmapptr->parttab == NULL) { errorPrint (STRINGIFY (SCOTCH_graphMapView) ": the mapping given in input must contain a valid partition array"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ archptr = lmapptr->archptr; parttax = lmapptr->parttab; if (memAllocGroup ((void **) (void *) &domntab, (size_t) ((grafptr->vertnbr + 1) * sizeof (MappingSort)), &nghbtab, (size_t) ((grafptr->vertnbr + 2) * sizeof (Anum)), NULL) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphMapView) ": out of memory"); return (1); } for (vertnum = 0; vertnum < grafptr->vertnbr; vertnum ++) { domntab[vertnum].labl = parttax[vertnum]; /* Un-based array at this stage */ domntab[vertnum].peri = vertnum + grafptr->baseval; /* Build inverse permutation */ } parttax -= grafptr->baseval; domntab[grafptr->vertnbr].labl = ARCHDOMNOTTERM; /* TRICK: avoid testing (i+1) */ domntab[grafptr->vertnbr].peri = ~0; /* Prevent Valgrind from yelling */ intSort2asc2 (domntab, grafptr->vertnbr); /* Sort domain label array by increasing target labels */ archDomFrst (archptr, &domnfrst); /* Get architecture domain */ tgtnbr = archDomSize (archptr, &domnfrst); /* Get architecture size */ mapnbr = 0; mapsum = 0; veloval = 1; /* Assume unweighted vertices */ for (vertidx = 0; domntab[vertidx].labl != ARCHDOMNOTTERM; vertidx ++) { parttax[domntab[vertidx].peri] = mapnbr; /* Build map of partition parts starting from 0 */ if (domntab[vertidx].labl != domntab[vertidx + 1].labl) /* TRICK: if new (or end) domain label */ mapnbr ++; if (velotax != NULL) veloval = velotax[domntab[vertidx].peri]; mapsum += veloval; } mapavg = (mapnbr == 0) ? 0.0L : (double) mapsum / (double) mapnbr; mapsum = 0; mapmax = 0; mapdlt = 0.0L; if (mapnbr > 0) { mapmin = GNUMMAX; for (vertidx = 0; domntab[vertidx].labl != ARCHDOMNOTTERM; vertidx ++) { if (velotax != NULL) veloval = velotax[domntab[vertidx].peri]; mapsum += veloval; if (domntab[vertidx].labl != domntab[vertidx + 1].labl) { /* TRICK: if new (or end) domain label */ if (mapsum < mapmin) mapmin = mapsum; if (mapsum > mapmax) mapmax = mapsum; mapdlt += fabs ((double) mapsum - mapavg); mapsum = 0; /* Reset domain load sum */ } } mapdlt = mapdlt / ((double) mapnbr * mapavg); mapmmy = (double) mapmax / (double) mapavg; } else { mapmin = 0; mapmmy = 0; } if (mapnbr > tgtnbr) { /* If more subdomains than architecture size */ #ifdef SCOTCH_DEBUG_MAP2 if (! archVar (archptr)) { /* If not a variable-sized architecture */ errorPrint (STRINGIFY (SCOTCH_graphMapView) ": invalid mapping"); memFree (domntab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_MAP2 */ tgtnbr = mapnbr; /* Assume it is a variable-sized architecture */ } if (flagval == 0) { fprintf (stream, "M\tProcessors " GNUMSTRING "/" GNUMSTRING " (%g)\n", (Gnum) mapnbr, (Gnum) tgtnbr, (double) mapnbr / (double) tgtnbr); fprintf (stream, "M\tTarget min=" GNUMSTRING "\tmax=" GNUMSTRING "\tavg=%g\tdlt=%g\tmaxavg=%g\n", (Gnum) mapmin, (Gnum) mapmax, mapavg, mapdlt, mapmmy); } nghbnbr = 0; nghbmax = 0; nghbsum = 0; nghbtab[0] = -2; if (mapnbr > 0) { nghbmin = ANUMMAX; for (vertidx = 0; domntab[vertidx].labl != ARCHDOMNOTTERM; vertidx ++) { Gnum edgenum; Gnum edgennd; Anum partnum; partnum = parttax[domntab[vertidx].peri]; for (edgenum = verttax[domntab[vertidx].peri], edgennd = vendtax[domntab[vertidx].peri]; edgenum < edgennd; edgenum ++) { Anum partend; partend = parttax[edgetax[edgenum]]; if ((partend != partnum) && /* If edge is not internal */ (partend != nghbtab[nghbnbr])) { /* And neighbor is not sole neighbor or has not just been found */ Anum partmin; Anum partmax; partmin = 0; partmax = nghbnbr; while ((partmax - partmin) > 1) { Anum partmed; partmed = (partmax + partmin) >> 1; if (nghbtab[partmed] > partend) partmax = partmed; else partmin = partmed; } if (nghbtab[partmin] == partend) /* If neighboring part found, skip to next neighbor */ continue; #ifdef SCOTCH_DEBUG_MAP2 if (nghbnbr >= (grafptr->vertnbr + 1)) { errorPrint (STRINGIFY (SCOTCH_graphMapView) ": internal error"); return (1); } #endif /* SCOTCH_DEBUG_MAP2 */ nghbnbr ++; for (partmax = nghbnbr; partmax > (partmin + 1); partmax --) nghbtab[partmax] = nghbtab[partmax - 1]; nghbtab[partmin + 1] = partend; /* Add new neighbor part in the right place */ } } if (domntab[vertidx].labl != domntab[vertidx + 1].labl) { /* TRICK: if new (or end) domain label */ if (nghbnbr < nghbmin) nghbmin = nghbnbr; if (nghbnbr > nghbmax) nghbmax = nghbnbr; nghbsum += nghbnbr; nghbnbr = 0; } } } else nghbmin = 0; if (flagval == 0) { fprintf (stream, "M\tNeighbors min=" GNUMSTRING "\tmax=" GNUMSTRING "\tsum=" GNUMSTRING "\n", (Gnum) nghbmin, (Gnum) nghbmax, (Gnum) nghbsum); } memSet (commdist, 0, 256 * sizeof (Gnum)); /* Initialize the data */ commload = commdilat = commexpan = 0; edloval = 1; for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { Gnum edgenum; if (parttax[vertnum] == ~0) /* Skip unmapped vertices */ continue; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { if (parttax[edgetax[edgenum]] == ~0) continue; archDomTerm (archptr, &domnorg, parttax[vertnum]); /* Get terminal domains */ archDomTerm (archptr, &domnend, parttax[edgetax[edgenum]]); distval = archDomDist (archptr, &domnorg, &domnend); if (edlotax != NULL) /* Get edge weight if any */ edloval = edlotax[edgenum]; commdist[(distval > 255) ? 255 : distval] += edloval; commload += edloval; commdilat += distval; commexpan += distval * edloval; } } migrnbr = 0; /* Initialize variables unconditionally to avoid compiler warnings */ migrdistavg = 0; migrloadavg = 0; migrcostsum = 0; if (lmaoptr != NULL) { for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { if ((parttax[vertnum] == -1) || (parotax[vertnum] == -1)) continue; if (parotax[vertnum] != parttax[vertnum]) { migrnbr ++; archDomTerm (archptr, &domnorg, parotax[vertnum]); /* Get terminal domains */ archDomTerm (archptr, &domnold, parotax[vertnum]); migrdistavg += archDomDist (archptr, &domnorg, &domnold); migrloadavg += (grafptr->velotax == NULL) ? 1 : grafptr->velotax[vertnum]; migrcostsum += emraval * ((vmlotax != NULL) ? vmlotax[vertnum] : 1); } } if (migrnbr > 0) { migrdistavg /= migrnbr; migrloadavg /= migrnbr; } } if (flagval == 0) { fprintf (stream, "M\tCommDilat=%f\t(" GNUMSTRING ")\n", /* Print expansion parameters */ (double) commdilat / grafptr->edgenbr, (Gnum) (commdilat / 2)); fprintf (stream, "M\tCommExpan=%f\t(" GNUMSTRING ")\n", ((commload == 0) ? (double) 0.0L : (double) commexpan / (double) commload), (Gnum) (commexpan / 2)); fprintf (stream, "M\tCommCutSz=%f\t(" GNUMSTRING ")\n", ((commload == 0) ? (double) 0.0L : (double) (commload - commdist[0]) / (double) commload), (Gnum) ((commload - commdist[0]) / 2)); fprintf (stream, "M\tCommDelta=%f\n", (((double) commload * (double) commdilat) == 0.0L) ? (double) 0.0L : ((double) commexpan * (double) grafptr->edgenbr) / ((double) commload * (double) commdilat)); } for (distmax = 255; distmax != -1; distmax --) /* Find longest distance */ if (commdist[distmax] != 0) break; if (flagval == 0) { for (distval = 0; distval <= distmax; distval ++) /* Print distance histogram */ fprintf (stream, "M\tCommLoad[" ANUMSTRING "]=%f\n", (Anum) distval, (double) commdist[distval] / (double) commload); } diammax = 0; diamsum = 0; if (mapnbr != 0) { Anum mapnum; diammin = GNUMMAX; mapnum = 0; do { Gnum diamval; diamval = graphMapView3 (grafptr, parttax, mapnum); diamsum += diamval; if (diamval < diammin) diammin = diamval; if (diamval > diammax) diammax = diamval; } while (++ mapnum < mapnbr); diamavg = (double) diamsum / (double) mapnbr; } else { diammin = 0; diamavg = 0.0; } if (flagval == 0) { fprintf (stream, "M\tPartDiam\tmin=" GNUMSTRING "\tmax=" GNUMSTRING "\tavg=%lf\n", (Gnum) diammin, (Gnum) diammax, diamavg); } if ((flagval == 0) && (lmaoptr != NULL)) { fprintf (stream, "M\tMigrNbr=" GNUMSTRING "(%lf %%)\n", migrnbr, (((double) migrnbr) / ((double) grafptr->vertnbr)) * 100); fprintf (stream, "M\tAvgMigrDist=%lf\n", (double) migrdistavg); fprintf (stream, "M\tAvgMigrLoad=%lf\n", (double) migrloadavg); fprintf (stream, "M\tMigrCost=%lf\n", (double) migrcostsum); } if (flagval != 0) { /* If raw output */ fprintf (stream, "" GNUMSTRING "\t" GNUMSTRING "\t" GNUMSTRING "\t" GNUMSTRING "\t%g\t%g\t%g\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf", /* Print standard data */ (Gnum) mapnbr, (Gnum) tgtnbr, (Gnum) mapmin, (Gnum) mapmax, mapavg, mapdlt, mapmmy, (double) commload, (double) commexpan, (double) commdilat / grafptr->edgenbr, ((commload == 0) ? (double) 0.0L : (double) commexpan / (double) commload), ((commload == 0) ? (double) 0.0L : (double) (commload - commdist[0]) / (double) commload), (((double) commload * (double) commdilat) == 0.0L) ? (double) 0.0L : ((double) commexpan * (double) grafptr->edgenbr) / ((double) commload * (double) commdilat)); if (lmaoptr != NULL) /* If we are doing repartitioning */ fprintf (stream, "\t%lf\t%lf\t%lf\t%lf\t%lf", /* Print repartitioning data */ (double) emraval, (double) migrnbr / (double) grafptr->vertnbr, (double) migrdistavg, (double) migrloadavg, (double) migrcostsum); fprintf (stream, "\n"); } memFree (domntab); /* Free group leader */ return (0); } /*+ This routine writes mapping statistics *** to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapView ( const SCOTCH_Graph * const libgrafptr, /*+ Ordered graph +*/ const SCOTCH_Mapping * const libmappptr, /*+ Computed mapping +*/ FILE * const stream) /*+ Output stream +*/ { return (graphMapView2 (libgrafptr, libmappptr, NULL, 0, NULL, 0, stream)); } /*+ This routine writes remapping statistics *** to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRemapView ( const SCOTCH_Graph * const libgrafptr, /*+ Ordered graph +*/ const SCOTCH_Mapping * const libmappptr, /*+ Computed mapping +*/ const SCOTCH_Mapping * const libmapoptr, /*+ Old mapping (equal to NULL if no repartitioning) +*/ const double emraval, /*+ Edge migration ratio +*/ SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ FILE * const stream) /*+ Output stream +*/ { return (graphMapView2 (libgrafptr, libmappptr, libmapoptr, emraval, vmlotab, 0, stream)); } /*+ This routine writes raw mapping statistics *** to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphMapViewRaw ( const SCOTCH_Graph * const libgrafptr, /*+ Ordered graph +*/ const SCOTCH_Mapping * const libmappptr, /*+ Computed mapping +*/ FILE * const stream) /*+ Output stream +*/ { return (graphMapView2 (libgrafptr, libmappptr, NULL, 0, NULL, 1, stream)); } /*+ This routine writes raw remapping statistics *** to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphRemapViewRaw ( const SCOTCH_Graph * const libgrafptr, /*+ Ordered graph +*/ const SCOTCH_Mapping * const libmappptr, /*+ Computed mapping +*/ const SCOTCH_Mapping * const libmapoptr, /*+ Old mapping (equal to NULL if no repartitioning) +*/ const double emraval, /*+ Edge migration ratio +*/ SCOTCH_Num * vmlotab, /*+ Vertex migration cost array +*/ FILE * const stream) /*+ Output stream +*/ { return (graphMapView2 (libgrafptr, libmappptr, libmapoptr, emraval, vmlotab, 1, stream)); } /* This routine writes the characteristics ** of the given overlap partition to the ** given stream. ** It returns : ** - void : in case of success ** - exit : on error (because of errorPrint) */ int SCOTCH_graphPartOvlView ( const SCOTCH_Graph * restrict const libgrafptr, const SCOTCH_Num partnbr, const SCOTCH_Num * restrict const parttab, FILE * const stream) { const Gnum * restrict parttax; Gnum partnum; GraphMapViewList * restrict listtab; Gnum vertnum; Gnum fronload; Gnum * restrict compload; Gnum * restrict compsize; Gnum comploadsum; Gnum comploadmax; Gnum comploadmin; double comploadavg; const Graph * restrict const grafptr = (Graph *) CONTEXTOBJECT (libgrafptr); const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const velotax = grafptr->velotax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; if (memAllocGroup ((void **) (void *) &compload, (size_t) (partnbr * sizeof (Gnum)), &compsize, (size_t) (partnbr * sizeof (Gnum)), &listtab, (size_t) ((partnbr + 1) * sizeof (GraphMapViewList)), NULL) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphPartOvlView) ": out of memory"); } listtab ++; /* TRICK: Trim array so that listtab[-1] is valid */ memSet (listtab, ~0, partnbr * sizeof (GraphMapViewList)); /* Set vertex indices to ~0 */ memSet (compload, 0, partnbr * sizeof (Gnum)); memSet (compsize, 0, partnbr * sizeof (Gnum)); parttax = ((Gnum *) parttab) - grafptr->baseval; fronload = 0; for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { Gnum partval; partval = parttax[vertnum]; if (partval >= 0) { compload[partval] += (velotax != NULL) ? velotax[vertnum] : 1; compsize[partval] ++; } else { /* Vertex is in separator */ Gnum listidx; /* Index of first neighbor part */ Gnum edgenum; Gnum veloval; veloval = (velotax != NULL) ? velotax[vertnum] : 1; fronload += veloval; /* Add vertex to frontier */ listidx = -1; /* No neighboring parts recorded yet */ listtab[-1].vertnum = vertnum; /* Separator neighbors will not be considered */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* Compute gain */ Gnum vertend; Gnum partend; vertend = edgetax[edgenum]; partend = parttax[vertend]; if (listtab[partend].vertnum != vertnum) { /* If part not yet considered */ listtab[partend].vertnum = vertnum; /* Link it in list of neighbors */ listtab[partend].nextidx = listidx; listidx = partend; } } while (listidx != -1) { /* For all neighboring parts found */ compload[listidx] += veloval; /* Add load of separator vertex to part */ compsize[listidx] ++; listidx = listtab[listidx].nextidx; } } } comploadsum = 0; for (partnum = 0; partnum < partnbr; partnum ++) comploadsum += compload[partnum]; comploadmax = 0; comploadmin = comploadsum; for (partnum = 0; partnum < partnbr; partnum ++) { if (compload[partnum] > comploadmax) comploadmax = compload[partnum]; if (compload[partnum] < comploadmin) comploadmin = compload[partnum]; } comploadavg = (double) comploadsum / (double) partnbr; fprintf (stream, "P\tsep=" GNUMSTRING "\n", (Gnum) fronload); fprintf (stream, "P\tmin=" GNUMSTRING "\tmax=" GNUMSTRING "\tavg=%g\n", (Gnum) comploadmin, (Gnum) comploadmax, (double) comploadavg); #if 0 /* TODO REMOVE */ for (partnum = 0; partnum < partnbr; partnum ++) fprintf (stream, "P\tload[" GNUMSTRING "]=" GNUMSTRING "\n", (Gnum) partnum, (Gnum) compload[partnum]); #endif fprintf (stream, "P\tmaxavg=%g\tminavg=%g\n", ((double) comploadmax / comploadavg), ((double) comploadmin / comploadavg)); memFree (compload); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_view.h000066400000000000000000000076711514310134000306150ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_view.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the mapping viewing routines. **/ /** **/ /** DATES : # Version 5.0 : from : 04 feb 2007 **/ /** to : 04 feb 2007 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Complementary vertex structure. +*/ typedef struct GraphMapViewVertex_ { Gnum passnum; /*+ Number of pass when vertex selected +*/ Gnum vertdist; /*+ Current distance from diameter vertex +*/ } GraphMapViewVertex; /*+ Neighbor queue. +*/ typedef struct GraphMapViewQueue_ { Gnum * head; /*+ Head of distance queue +*/ Gnum * tail; /*+ Tail of distance queue +*/ Gnum * qtab; /*+ Array of queue elements +*/ } GraphMapViewQueue; /*+ This structure stores part lists. +*/ typedef struct GraphMapViewList_ { Gnum vertnum; /*+ Number of vertex of which part is neighbor +*/ Gnum nextidx; /*+ Pointer to index of next recorded neighbor +*/ } GraphMapViewList; /* ** The macro definitions. */ #define graphMapViewQueueFlush(queue) ((queue)->head = (queue)->tail = (queue)->qtab) #define graphMapViewQueueEmpty(queue) ((queue)->head <= (queue)->tail) #define graphMapViewQueuePut(queue,vnum) (* ((queue)->head ++) = (vnum)) #define graphMapViewQueueGet(queue) (* ((queue)->tail ++)) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_map_view_f.c000066400000000000000000000105321514310134000311030ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_map_view_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** mapping routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 21 nov 2005 **/ /** to : 21 nov 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHMAPVIEW, graphmapview, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Mapping * const mappptr, \ const int * const fileptr, \ int * const revaptr), \ (grafptr, mappptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHMAPVIEW)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHMAPVIEW)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphMapView (grafptr, mappptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_order.c000066400000000000000000000525421514310134000301110ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2012-2014,2018,2019,2023-2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the graph **/ /** ordering routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 3.2 : from : 19 aug 1998 **/ /** to : 22 aug 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 27 mar 1999 **/ /** # Version 4.0 : from : 29 jan 2002 **/ /** to : 08 sep 2006 **/ /** # Version 5.0 : from : 19 dec 2006 **/ /** to : 04 aug 2007 **/ /** # Version 5.1 : from : 30 oct 2007 **/ /** to : 14 aug 2010 **/ /** # Version 6.0 : from : 08 jan 2012 **/ /** to : 29 sep 2019 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "graph.h" #include "order.h" #include "hgraph.h" #include "hgraph_order_st.h" #include "library_order.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the graph ordering routines. */ /* */ /************************************/ /*+ This routine initializes an API ordering *** with respect to the given source graph *** and the locations of output parameters. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderInit ( const SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Ordering * const ordeptr, /*+ Ordering structure to initialize +*/ SCOTCH_Num * const permtab, /*+ Direct permutation array +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Separator tree array +*/ { #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Ordering) < sizeof (LibOrder)) { errorPrint (STRINGIFY (SCOTCH_graphOrderInit) ": internal error"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ const Graph * const srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); /* Use structure as source graph */ LibOrder * const libordeptr = (LibOrder *) ordeptr; libordeptr->permtab = ((permtab == NULL) || ((void *) permtab == (void *) grafptr)) ? NULL : (Gnum *) permtab; libordeptr->peritab = ((peritab == NULL) || ((void *) peritab == (void *) grafptr)) ? NULL : (Gnum *) peritab; libordeptr->cblkptr = ((cblkptr == NULL) || ((void *) cblkptr == (void *) grafptr)) ? NULL : (Gnum *) cblkptr; libordeptr->rangtab = ((rangtab == NULL) || ((void *) rangtab == (void *) grafptr)) ? NULL : (Gnum *) rangtab; libordeptr->treetab = ((treetab == NULL) || ((void *) treetab == (void *) grafptr)) ? NULL : (Gnum *) treetab; return (orderInit (&libordeptr->o, srcgrafptr->baseval, srcgrafptr->vertnbr, libordeptr->peritab)); } /*+ This routine frees an API ordering. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_graphOrderExit ( const SCOTCH_Graph * const grafptr, SCOTCH_Ordering * const ordeptr) { orderExit (&((LibOrder *) ordeptr)->o); } /*+ This routine loads the contents of *** the given ordering from the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderLoad ( const SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Ordering * restrict const ordeptr, /*+ Ordering to load +*/ FILE * restrict const stream) /*+ Output stream +*/ { const Graph * const srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); /* Use structure as source graph */ LibOrder * const libordeptr = (LibOrder *) ordeptr; if (orderLoad (&libordeptr->o, srcgrafptr->vlbltax, stream) != 0) return (1); if (libordeptr->permtab != NULL) /* Build inverse permutation if wanted */ orderPeri (libordeptr->o.peritab, srcgrafptr->baseval, libordeptr->o.vnodnbr, libordeptr->permtab, srcgrafptr->baseval); return (0); } /*+ This routine saves the contents of *** the given ordering to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderSave ( const SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Ordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { const Graph * const srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); return (orderSave (&((LibOrder *) ordeptr)->o, srcgrafptr->vlbltax, stream)); } /*+ This routine saves to the given stream *** the mapping data associated with the *** given ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderSaveMap ( const SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Ordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { const Graph * const srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); return (orderSaveMap (&((LibOrder *) ordeptr)->o, srcgrafptr->vlbltax, stream)); } /*+ This routine saves to the given stream *** the separator tree data associated with *** the given ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderSaveTree ( const SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Ordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { const Graph * const srcgrafptr = (Graph *) CONTEXTOBJECT (grafptr); return (orderSaveTree (&((LibOrder *) ordeptr)->o, srcgrafptr->vlbltax, stream)); } /*+ This routine computes an ordering *** of the API ordering structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderCompute ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Ordering * const ordeptr, /*+ Ordering to compute +*/ SCOTCH_Strat * const straptr) /*+ Ordering strategy +*/ { return (SCOTCH_graphOrderComputeList (grafptr, ordeptr, ((Graph *) CONTEXTOBJECT (grafptr))->vertnbr, NULL, straptr)); } /*+ This routine computes a partial ordering *** of the listed vertices of the API ordering *** structure graph with respect to the given *** strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderComputeList ( SCOTCH_Graph * const libgrafptr, /*+ Graph to order +*/ SCOTCH_Ordering * const ordeptr, /*+ Ordering to compute +*/ const SCOTCH_Num listnbr, /*+ Number of vertices in list +*/ const SCOTCH_Num * const listtab, /*+ List of vertex indices to order +*/ SCOTCH_Strat * const straptr) /*+ Ordering strategy +*/ { Hgraph halgrafdat; /* Halo source graph structure */ Hgraph halgraftmp; /* Halo source graph structure */ Hgraph * halgrafptr; /* Pointer to halo graph structure */ CONTEXTDECL (libgrafptr); const Strat * ordstraptr; /* Pointer to ordering strategy */ OrderCblk * cblkptr; int o; o = 1; /* Assume an error */ if (CONTEXTINIT (libgrafptr)) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": cannot initialize context"); return (o); } const Graph * const srcgrafptr = (Graph *) CONTEXTGETOBJECT (libgrafptr); LibOrder * const libordeptr = (LibOrder *) ordeptr; #ifdef SCOTCH_DEBUG_LIBRARY1 if ((listnbr < 0) || (listnbr > srcgrafptr->vertnbr)) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": invalid parameters (1)"); goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY1 */ #ifdef SCOTCH_DEBUG_LIBRARY2 if (graphCheck (srcgrafptr) != 0) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": invalid input graph"); goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY2 */ if (listnbr == 0) { /* If empty list, return identity permutation */ intAscn (libordeptr->o.peritab, srcgrafptr->vertnbr, srcgrafptr->baseval); o = 0; /* Not an error */ goto skip; } if (*((Strat **) straptr) == NULL) { /* Set default ordering strategy if necessary */ if (SCOTCH_stratGraphOrderBuild (straptr, SCOTCH_STRATQUALITY, 0, 0.2)) goto abort; } ordstraptr = *((Strat **) straptr); if (ordstraptr->tablptr != &hgraphorderststratab) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": not a sequential graph ordering strategy"); goto abort; } memCpy (&halgrafdat.s, srcgrafptr, sizeof (Graph)); /* Copy non-halo graph data */ halgrafdat.s.flagval &= ~GRAPHFREETABS; /* Do not allow to free arrays */ halgrafdat.s.edlotax = NULL; /* Never mind about edge loads */ halgrafdat.s.vlbltax = NULL; /* Do not propagate vertex labels */ hgraphUnhalo2 (&halgrafdat); /* Set default halo members */ halgrafdat.levlnum = 0; /* No nested dissection yet */ halgrafdat.contptr = CONTEXTGETDATA (libgrafptr); if (listnbr == srcgrafptr->vertnbr) { /* If work on full graph */ halgrafptr = &halgrafdat; cblkptr = &libordeptr->o.rootdat; } else { Gnum * restrict peritax; Gnum listnum; Gnum vertnum; Gnum halonum; if ((cblkptr = (OrderCblk *) memAlloc (2 * sizeof (OrderCblk))) == NULL) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": out of memory"); goto abort; } libordeptr->o.treenbr = 3; libordeptr->o.cblknbr = 2; libordeptr->o.rootdat.typeval = ORDERCBLKDICO; /* Node is a set of two disconnected components */ libordeptr->o.rootdat.vnodnbr = srcgrafptr->vertnbr; libordeptr->o.rootdat.cblknbr = 2; libordeptr->o.rootdat.cblktab = cblkptr; cblkptr[0].typeval = ORDERCBLKLEAF; /* Build column blocks */ cblkptr[0].vnodnbr = listnbr; cblkptr[0].cblknbr = 0; cblkptr[0].cblktab = NULL; cblkptr[1].typeval = ORDERCBLKLEAF; cblkptr[1].vnodnbr = srcgrafptr->vertnbr - listnbr; cblkptr[1].cblknbr = 0; cblkptr[1].cblktab = NULL; memSet (libordeptr->o.peritab, 0, srcgrafptr->vertnbr * sizeof (Gnum)); /* Fill inverse permutation with dummy values */ for (listnum = 0, peritax = libordeptr->o.peritab - srcgrafptr->baseval; listnum < listnbr; listnum ++) { #ifdef SCOTCH_DEBUG_LIBRARY2 if ((listtab[listnum] < srcgrafptr->baseval) || (listtab[listnum] >= srcgrafptr->vertnnd)) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": invalid parameters (2)"); goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY2 */ peritax[listtab[listnum]] = ~0; /* TRICK: use peritab as flag array to mark used vertices */ } for (vertnum = halonum = srcgrafptr->vertnnd - 1; vertnum >= srcgrafptr->baseval; vertnum --) { if (peritax[vertnum] == 0) peritax[halonum --] = vertnum; } #ifdef SCOTCH_DEBUG_LIBRARY2 if (halonum != (listnbr + srcgrafptr->baseval - 1)) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": internal error"); goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY2 */ if (hgraphInduceList (&halgrafdat, listnbr, (Gnum * const) listtab, srcgrafptr->vertnbr - listnbr, &halgraftmp) != 0) { errorPrint (STRINGIFY (SCOTCH_graphOrderComputeList) ": cannot create induced subgraph"); goto abort; } halgrafptr = &halgraftmp; } o = hgraphOrderSt (halgrafptr, &libordeptr->o, 0, cblkptr, ordstraptr); if (halgrafptr != &halgrafdat) /* If induced subgraph created */ hgraphExit (halgrafptr); /* Free it */ if (o != 0) goto abort; skip: #ifdef SCOTCH_DEBUG_LIBRARY2 if (orderCheck (&libordeptr->o) != 0) { o = 1; goto abort; } #endif /* SCOTCH_DEBUG_LIBRARY2 */ if (libordeptr->permtab != NULL) /* Build direct permutation if wanted */ orderPeri (libordeptr->o.peritab, srcgrafptr->baseval, libordeptr->o.vnodnbr, libordeptr->permtab, srcgrafptr->baseval); if (libordeptr->rangtab != NULL) /* Build range array if column block data wanted */ orderRang (&libordeptr->o, libordeptr->rangtab); if (libordeptr->treetab != NULL) /* Build separator tree array if wanted */ orderTree (&libordeptr->o, libordeptr->treetab); if (libordeptr->cblkptr != NULL) /* Set number of column blocks if wanted */ *(libordeptr->cblkptr) = libordeptr->o.cblknbr; abort: CONTEXTEXIT (libgrafptr); return (o); } /*+ This routine computes an ordering *** of the API ordering structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrder ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ SCOTCH_Strat * const straptr, /*+ Ordering strategy +*/ SCOTCH_Num * const permtab, /*+ Ordering permutation +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Separator tree array +*/ { SCOTCH_Ordering ordedat; int o; if (SCOTCH_graphOrderInit (grafptr, &ordedat, permtab, peritab, cblkptr, rangtab, treetab) != 0) return (1); o = SCOTCH_graphOrderCompute (grafptr, &ordedat, straptr); SCOTCH_graphOrderExit (grafptr, &ordedat); return (o); } /*+ This routine computes an ordering *** of the subgraph of the API ordering *** structure graph induced by the given *** vertex list, with respect to the given *** strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderList ( SCOTCH_Graph * const grafptr, /*+ Graph to order +*/ const SCOTCH_Num listnbr, /*+ Number of vertices in list +*/ const SCOTCH_Num * const listtab, /*+ List of vertex indices to order +*/ SCOTCH_Strat * const straptr, /*+ Ordering strategy +*/ SCOTCH_Num * const permtab, /*+ Ordering permutation +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Column block range array +*/ { SCOTCH_Ordering ordedat; int o; SCOTCH_graphOrderInit (grafptr, &ordedat, permtab, peritab, cblkptr, rangtab, treetab); o = SCOTCH_graphOrderComputeList (grafptr, &ordedat, listnbr, listtab, straptr); SCOTCH_graphOrderExit (grafptr, &ordedat); return (o); } /*+ This routine checks the consistency *** of the given graph ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphOrderCheck ( const SCOTCH_Graph * const grafptr, const SCOTCH_Ordering * const ordeptr) /*+ Ordering to check +*/ { return (orderCheck (&((LibOrder *) ordeptr)->o)); } /*+ This routine parses the given *** graph ordering strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratGraphOrder ( SCOTCH_Strat * const straptr, const char * const string) { if (*((Strat **) straptr) != NULL) stratExit (*((Strat **) straptr)); if ((*((Strat **) straptr) = stratInit (&hgraphorderststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratGraphOrder) ": error in ordering strategy"); return (1); } return (0); } /*+ This routine provides predefined *** ordering strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratGraphOrderBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num levlnbr, /*+ Number of nested dissection levels +*/ const double balrat) /*+ Desired imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char levltab[32]; char bbaltab[32]; char * sepaptr; char * tstsptr; char * oleaptr; char * osepptr; sprintf (bbaltab, "%lf", balrat); sprintf (levltab, GNUMSTRING, levlnbr); sprintf (bufftab, (((flagval & SCOTCH_STRATDISCONNECTED) != 0) ? "o{strat=%s}" : "%s"), "c{rat=0.7,cpr=n{sep=/()?m{rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=(|h{pass=10})f{bal=}}};,ole=,ose=},unc=n{sep=/()?m{rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=(|h{pass=10})f{bal=}}};,ole=,ose=}}"); switch (flagval & (SCOTCH_STRATLEVELMIN | SCOTCH_STRATLEVELMAX)) { case SCOTCH_STRATLEVELMIN : tstsptr = "(levl<)|(vert>240)"; break; case SCOTCH_STRATLEVELMAX : tstsptr = "(levl<)&(vert>240)"; break; case (SCOTCH_STRATLEVELMIN | SCOTCH_STRATLEVELMAX) : tstsptr = "levl<"; break; default : tstsptr = "vert>240"; break; } sepaptr = ((flagval & SCOTCH_STRATSPEED) != 0) ? "" : "|m{rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=(|h{pass=10})f{bal=}}}"; oleaptr = ((flagval & SCOTCH_STRATLEAFSIMPLE) != 0) ? "s" : "f{cmin=15,cmax=100000,frat=0.0}"; osepptr = ((flagval & SCOTCH_STRATSEPASIMPLE) != 0) ? "s" : "g"; stringSubst (bufftab, "", sepaptr); stringSubst (bufftab, "", tstsptr); stringSubst (bufftab, "", levltab); stringSubst (bufftab, "", oleaptr); stringSubst (bufftab, "", osepptr); stringSubst (bufftab, "", bbaltab); return (SCOTCH_stratGraphOrder (straptr, bufftab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_order_f.c000066400000000000000000000271021514310134000304100ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2012,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_order_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph ordering routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.4 : from : 02 feb 2000 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 02 feb 2002 **/ /** to : 13 dec 2005 **/ /** # Version 5.0 : from : 04 aug 2007 **/ /** to : 31 may 2008 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 25 jul 2010 **/ /** # Version 6.0 : from : 08 jan 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERINIT, graphorderinit, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Ordering * const ordeptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (grafptr, ordeptr, permtab, peritab, \ cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_graphOrderInit (grafptr, ordeptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDEREXIT, graphorderexit, ( \ const SCOTCH_Graph * const grafptr, \ SCOTCH_Ordering * const ordeptr), \ (grafptr, ordeptr)) { SCOTCH_graphOrderExit (grafptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERSAVE, graphordersave, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Ordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHORDERSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHORDERSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphOrderSave (grafptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERSAVEMAP, graphordersavemap, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Ordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHORDERSAVEMAP)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHORDERSAVEMAP)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphOrderSaveMap (grafptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERSAVETREE, graphordersavetree, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Ordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (grafptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHORDERSAVETREE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (GRAPHORDERSAVETREE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_graphOrderSaveTree (grafptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERCOMPUTE, graphordercompute, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Ordering * const ordeptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, ordeptr, straptr, revaptr)) { *revaptr = SCOTCH_graphOrderCompute (grafptr, ordeptr, straptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERCOMPUTELIST, graphordercomputelist, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Ordering * const ordeptr, \ const SCOTCH_Num * listptr, \ const SCOTCH_Num * const listtab, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (grafptr, ordeptr, listptr, listtab, straptr, revaptr)) { *revaptr = SCOTCH_graphOrderComputeList (grafptr, ordeptr, *listptr, listtab, straptr); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDER, graphorder, ( \ SCOTCH_Graph * const grafptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (grafptr, straptr, permtab, peritab, \ cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_graphOrder (grafptr, straptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERLIST, graphorderlist, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * listptr, \ const SCOTCH_Num * const listtab, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (grafptr, listptr, listtab, straptr, \ permtab, peritab, cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_graphOrderList (grafptr, *listptr, listtab, straptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ GRAPHORDERCHECK, graphordercheck, ( \ const SCOTCH_Graph * const grafptr, \ const SCOTCH_Ordering * const ordeptr, \ int * const revaptr), \ (grafptr, ordeptr, revaptr)) { *revaptr = SCOTCH_graphOrderCheck (grafptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ STRATGRAPHORDER, stratgraphorder, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATGRAPHORDER)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratGraphOrder (straptr, strtab); /* Call original routine */ memFree (strtab); /* Prevent compiler warnings */ } /* ** */ SCOTCH_FORTRAN ( \ STRATGRAPHORDERBUILD, stratgraphorderbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const levlnbr, \ const double * const kbalval, \ int * const revaptr), \ (straptr, flagval, levlnbr, kbalval, revaptr)) { *revaptr = SCOTCH_stratGraphOrderBuild (straptr, *levlnbr, *flagval, *kbalval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_part_ovl.c000066400000000000000000000156511514310134000306240ustar00rootroot00000000000000/* Copyright 2010,2014,2018,2019,2021,2023,2024,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_part_ovl.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the graph **/ /** partitioning routines with overlap of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 28 may 2010 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 02 dec 2021 **/ /** to : 20 dec 2021 **/ /** # Version 7.0 : from : 07 may 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "wgraph.h" #include "wgraph_part_st.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* graph partitioning with overlap. */ /* */ /************************************/ /*+ This routine computes a partition with *** overlap of the given graph structure *** with respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_graphPartOvl ( SCOTCH_Graph * const libgrafptr, /*+ Graph to map +*/ const SCOTCH_Num partnbr, /*+ Number of parts +*/ SCOTCH_Strat * const straptr, /*+ Partitioning strategy +*/ SCOTCH_Num * const parttab) /*+ Partition array +*/ { Wgraph grafdat; const Strat * partstraptr; CONTEXTDECL (libgrafptr); int o; o = 1; /* Assume an error */ if (CONTEXTINIT (libgrafptr)) { errorPrint (STRINGIFY (SCOTCH_graphPartOvl) ": cannot initialize context"); return (o); } if (*((Strat **) straptr) == NULL) { /* Set default partitioning strategy if necessary */ if (SCOTCH_stratGraphPartOvlBuild (straptr, SCOTCH_STRATQUALITY, (Gnum) partnbr, (double) 0.05)) goto abort; } partstraptr = *((Strat **) straptr); if (partstraptr->tablptr != &wgraphpartststratab) { errorPrint (STRINGIFY (SCOTCH_graphPartOvl) ": not a sequential graph partitioning with overlap strategy"); goto abort; } wgraphInit (&grafdat, (Graph *) CONTEXTGETOBJECT (libgrafptr), partnbr); /* Initialize graph from given graph */ grafdat.parttax = ((Gnum *) parttab) - grafdat.s.baseval; /* Directly use given part array */ grafdat.levlnum = 0; grafdat.contptr = CONTEXTGETDATA (libgrafptr); if (wgraphAlloc (&grafdat) != 0) { /* Always allocate graph data when calling */ errorPrint (STRINGIFY (SCOTCH_graphPartOvl) ": out of memory"); goto abort; } o = wgraphPartSt (&grafdat, partstraptr); wgraphExit (&grafdat); abort: CONTEXTEXIT (libgrafptr); return (o); } /*+ This routine parses the given *** partitioning strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratGraphPartOvl ( SCOTCH_Strat * const straptr, const char * const string) { if (*((Strat **) straptr) != NULL) stratExit (*((Strat **) straptr)); if ((*((Strat **) straptr) = stratInit (&wgraphpartststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratGraphPartOvl) ": error in sequential overlap partitioning strategy"); return (1); } return (0); } /*+ This routine provides predefined *** overlap partitioning strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratGraphPartOvlBuild ( SCOTCH_Strat * const straptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const SCOTCH_Num partnbr, /*+ Number of expected parts/size +*/ const double balrat) /*+ Desired imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char kbaltab[64]; sprintf (kbaltab, "%lf", balrat); if ((flagval & SCOTCH_STRATRECURSIVE) != 0) strcpy (bufftab, ""); /* Use only the recursive bipartitioning framework */ else sprintf (bufftab, "m{vert=%ld,low=,asc=f{bal=}}", (long) (20 * partnbr)); stringSubst (bufftab, "", "r{sep=m{rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=(|h{pass=10})f{bal=}}}|m{rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=},org=(|h{pass=10})f{bal=}}}}"); stringSubst (bufftab, "", kbaltab); return (SCOTCH_stratGraphPartOvl (straptr, bufftab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_graph_part_ovl_f.c000066400000000000000000000114451514310134000311260ustar00rootroot00000000000000/* Copyright 2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_graph_part_ovl_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** graph partitioning routines with **/ /** overlap of the libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 29 may 2010 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the partitioning routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ GRAPHPARTOVL, graphpartovl, ( \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const partptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const parttab, \ int * const revaptr), \ (grafptr, partptr, straptr, parttab, revaptr)) { *revaptr = SCOTCH_graphPartOvl (grafptr, *partptr, straptr, parttab); } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ STRATGRAPHPARTOVL, stratgraphpartovl, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATGRAPHPARTOVL)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratGraphPartOvl (straptr, strtab); /* Call original routine */ memFree (strtab); } /* ** */ SCOTCH_FORTRAN ( \ STRATGRAPHPARTOVLBUILD, stratgraphpartovlbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const SCOTCH_Num * const partnbr, \ const double * const kbalval, \ int * const revaptr), \ (straptr, flagval, partnbr, kbalval, revaptr)) { *revaptr = SCOTCH_stratGraphPartOvlBuild (straptr, *flagval, *partnbr, *kbalval); /* Call original routine */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mapping.c000066400000000000000000000071031514310134000272410ustar00rootroot00000000000000/* Copyright 2010,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mapping.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains miscellaneous **/ /** routines for handling centralized **/ /** graph mappings. **/ /** **/ /** DATES : # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /****************************************/ /* */ /* These routines are the C API for */ /* mapping structure handling routines. */ /* */ /****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Mapping structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Mapping * SCOTCH_mapAlloc () { return ((SCOTCH_Mapping *) memAlloc (sizeof (SCOTCH_Mapping))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Mapping structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_mapSizeof () { return (sizeof (SCOTCH_Mapping)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mapping.h000066400000000000000000000065511514310134000272540ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2011 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mapping.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the library ordering **/ /** structure. **/ /** **/ /** DATES : # Version 4.0 : from : 28 jun 2004 **/ /** to : 28 jun 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 15 apr 2011 **/ /** to : 23 aug 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ User mapping option flags. +*/ #define LIBMAPPINGNONE 0x0000 /* No options set */ #define LIBMAPPINGFREEPART 0x0001 /* Free parttab array */ /* ** The type and structure definitions. */ /*+ User mapping. +*/ typedef struct LibMapping_ { Gnum flagval; Graph * grafptr; /*+ Graph data +*/ Arch * archptr; /*+ Architecture data +*/ Gnum * parttab; /*+ Mapping array +*/ } LibMapping; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_memory.c000066400000000000000000000063761514310134000271310ustar00rootroot00000000000000/* Copyright 2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_memory.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the memory **/ /** handling routines. **/ /** **/ /** DATES : # Version 6.0 : from : 21 sep 2014 **/ /** to : 23 sep 2014 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the memory management routines. */ /* */ /************************************/ /*+ This routine frees a structure allocated *** by a SCOTCH_*Alloc () routine. *** It returns: *** - void : in all cases. +*/ void SCOTCH_memFree ( void * const dataptr) { memFree (dataptr); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Num. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_numSizeof () { return (sizeof (SCOTCH_Num)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_memory_f.c000066400000000000000000000062741514310134000274330ustar00rootroot00000000000000/* Copyright 2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_memory_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the some miscellaneous routines **/ /** provided by the common files of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 6.0 : from : 23 sep 2014 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for some miscellaneous routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ NUMSIZEOF, numsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_numSizeof (); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh.c000066400000000000000000000436761514310134000265610ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2021,2023,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the source **/ /** mesh handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 23 sep 2002 **/ /** to : 11 may 2004 **/ /** # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.0 : from : 25 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 24 jan 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the mesh handling routines. */ /* */ /************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Mesh structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Mesh * SCOTCH_meshAlloc () { return ((SCOTCH_Mesh *) memAlloc (sizeof (SCOTCH_Mesh))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Mesh structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_meshSizeof () { return (sizeof (SCOTCH_Mesh)); } /*+ This routine initializes the opaque *** mesh structure used to handle meshes *** in the Scotch library. *** It returns: *** - 0 : if the initialization succeeded. *** - !0 : on error. +*/ int SCOTCH_meshInit ( SCOTCH_Mesh * const meshptr) { if (sizeof (SCOTCH_Num) != sizeof (Gnum)) { errorPrint (STRINGIFY (SCOTCH_meshInit) ": internal error (1)"); return (1); } if (sizeof (SCOTCH_Mesh) < sizeof (Mesh)) { errorPrint (STRINGIFY (SCOTCH_meshInit) ": internal error (2)"); return (1); } return (meshInit ((Mesh *) meshptr)); } /*+ This routine frees the contents of the *** given opaque mesh structure. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_meshExit ( SCOTCH_Mesh * const meshptr) { meshExit ((Mesh *) meshptr); } /*+ This routine loads the given opaque mesh *** structure with the data of the given stream. *** The base value allows the user to set the *** mesh base to 0 or 1, or to the base value *** of the stream if the base value is equal *** to -1. *** It returns: *** - 0 : if the loading succeeded. *** - !0 : on error. +*/ int SCOTCH_meshLoad ( SCOTCH_Mesh * const meshptr, FILE * const stream, const SCOTCH_Num baseval) { if ((baseval < -1) || (baseval > 1)) { errorPrint (STRINGIFY (SCOTCH_meshLoad) ": invalid base parameter"); return (1); } return (meshLoad ((Mesh * const) meshptr, stream, (Gnum) baseval)); } /*+ This routine saves the contents of the given *** opaque mesh structure to the given stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_meshSave ( const SCOTCH_Mesh * const meshptr, FILE * const stream) { return (meshSave ((const Mesh * const) meshptr, stream)); } /*+ This routine fills the contents of the given *** opaque mesh structure with the data provided *** by the user. The base value allows the user to *** set the mesh base to 0 or 1. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshBuild ( SCOTCH_Mesh * const meshptr, /* Mesh structure to fill */ const SCOTCH_Num velmbas, /* Base index for element vertices */ const SCOTCH_Num vnodbas, /* Base index for node vertices */ const SCOTCH_Num velmnbr, /* Number of elements in mesh graph */ const SCOTCH_Num vnodnbr, /* Number of vertices in mesh graph */ const SCOTCH_Num * const verttab, /* Vertex array [vertnbr or vertnbr+1] */ const SCOTCH_Num * const vendtab, /* Vertex end array [vertnbr] */ const SCOTCH_Num * const velotab, /* Element vertex load array */ const SCOTCH_Num * const vnlotab, /* Node vertex load array */ const SCOTCH_Num * const vlbltab, /* Vertex label array */ const SCOTCH_Num edgenbr, /* Number of edges (arcs) */ const SCOTCH_Num * const edgetab) /* Edge array [edgenbr] */ { Mesh * srcmeshptr; /* Pointer to source mesh structure */ Gnum degrmax; /* Maximum degree */ Gnum veisnbr; /* Number of isolated element vertices */ Gnum vertnum; /* Current vertex number */ #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Mesh) < sizeof (Mesh)) { errorPrint (STRINGIFY (SCOTCH_meshBuild) ": internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ if ((velmbas < 0) || (vnodbas < 0)) { errorPrint (STRINGIFY (SCOTCH_meshBuild) ": invalid base parameters"); return (1); } if (((velmbas + velmnbr) != vnodbas) && ((vnodbas + vnodnbr) != velmbas)) { errorPrint (STRINGIFY (SCOTCH_meshBuild) ": invalid element or node range"); return (1); } srcmeshptr = (Mesh *) meshptr; /* Use structure as source mesh */ srcmeshptr->flagval = MESHNONE; srcmeshptr->baseval = MIN (velmbas, vnodbas); srcmeshptr->velmnbr = velmnbr; srcmeshptr->velmbas = velmbas; srcmeshptr->velmnnd = velmbas + velmnbr; srcmeshptr->vnodnbr = vnodnbr; srcmeshptr->vnodbas = vnodbas; srcmeshptr->vnodnnd = vnodbas + vnodnbr; srcmeshptr->verttax = (Gnum *) verttab - srcmeshptr->baseval; srcmeshptr->vendtax = ((vendtab == NULL) || (vendtab == verttab) || (vendtab == verttab + 1)) ? srcmeshptr->verttax + 1 : (Gnum *) vendtab - srcmeshptr->baseval; srcmeshptr->velotax = ((velotab == NULL) || (velotab == verttab)) ? NULL : (Gnum *) velotab - srcmeshptr->velmbas; srcmeshptr->vnlotax = ((vnlotab == NULL) || (vnlotab == verttab)) ? NULL : (Gnum *) vnlotab - srcmeshptr->vnodbas; srcmeshptr->vlbltax = ((vlbltab == NULL) || (vlbltab == verttab)) ? NULL : (Gnum *) vlbltab - srcmeshptr->baseval; srcmeshptr->edgenbr = edgenbr; srcmeshptr->edgetax = (Gnum *) edgetab - srcmeshptr->baseval; if (srcmeshptr->velotax == NULL) /* Compute element vertex load sum */ srcmeshptr->velosum = srcmeshptr->velmnbr; else { Gnum velosum; /* Sum of element vertex loads */ for (vertnum = srcmeshptr->velmbas, velosum = 0; vertnum < srcmeshptr->velmnnd; vertnum ++) velosum += srcmeshptr->velotax[vertnum]; srcmeshptr->velosum = velosum; } if (srcmeshptr->vnlotax == NULL) /* Compute node vertex load sum */ srcmeshptr->vnlosum = srcmeshptr->vnodnbr; else { Gnum vnlosum; /* Sum of node vertex loads */ for (vertnum = srcmeshptr->vnodbas, vnlosum = 0; vertnum < srcmeshptr->vnodnnd; vertnum ++) vnlosum += srcmeshptr->vnlotax[vertnum]; srcmeshptr->vnlosum = vnlosum; } for (vertnum = srcmeshptr->velmbas, veisnbr = degrmax = 0; /* Compute maximum degree */ vertnum < srcmeshptr->velmnnd; vertnum ++) { Gnum degrval; /* Degree of current vertex */ degrval = srcmeshptr->vendtax[vertnum] - srcmeshptr->verttax[vertnum]; if (degrval > degrmax) degrmax = degrval; else if (degrval == 0) /* Count number of isolated element vertices */ veisnbr ++; } srcmeshptr->veisnbr = veisnbr; for (vertnum = srcmeshptr->vnodbas; /* Compute maximum degree */ vertnum < srcmeshptr->vnodnnd; vertnum ++) { Gnum degrval; /* Degree of current vertex */ degrval = srcmeshptr->vendtax[vertnum] - srcmeshptr->verttax[vertnum]; if (degrval > degrmax) degrmax = degrval; } srcmeshptr->degrmax = degrmax; return (0); } /*+ This routine checks the consistency *** of the given mesh. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshCheck ( const SCOTCH_Mesh * const meshptr) { return (meshCheck ((const Mesh * const) meshptr)); } /*+ This routine accesses mesh size data. *** NULL pointers on input indicate unwanted *** data. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_meshSize ( const SCOTCH_Mesh * const meshptr, SCOTCH_Num * const velmnbr, SCOTCH_Num * const vnodnbr, SCOTCH_Num * const edgenbr) { const Mesh * srcmeshptr; srcmeshptr = (Mesh *) meshptr; if (velmnbr != NULL) *velmnbr = (SCOTCH_Num) srcmeshptr->velmnbr; if (vnodnbr != NULL) *vnodnbr = (SCOTCH_Num) srcmeshptr->vnodnbr; if (edgenbr != NULL) *edgenbr = (SCOTCH_Num) srcmeshptr->edgenbr; } /*+ This routine accesses all of the mesh data. *** NULL pointers on input indicate unwanted *** data. NULL pointers on output indicate *** unexisting arrays. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_meshData ( const SCOTCH_Mesh * const meshptr, /* Mesh structure to read */ SCOTCH_Num * const velmbas, /* Base index for elements */ SCOTCH_Num * const vnodbas, /* Base index for nodes */ SCOTCH_Num * const velmnbr, /* Number of elements */ SCOTCH_Num * const vnodnbr, /* Number of nodes */ SCOTCH_Num ** const verttab, /* Vertex array [vertnbr+1] */ SCOTCH_Num ** const vendtab, /* Vertex array [vertnbr] */ SCOTCH_Num ** const velotab, /* Element vertex load array */ SCOTCH_Num ** const vnlotab, /* Vertex load array */ SCOTCH_Num ** const vlbltab, /* Vertex label array */ SCOTCH_Num * const edgenbr, /* Number of edges (arcs) */ SCOTCH_Num ** const edgetab, /* Edge array [edgenbr] */ SCOTCH_Num * const degrnbr) /* Maximum degree */ { const Mesh * srcmeshptr; /* Pointer to source mesh structure */ srcmeshptr = (const Mesh *) meshptr; if (velmnbr != NULL) *velmnbr = srcmeshptr->velmnbr; if (vnodnbr != NULL) *vnodnbr = srcmeshptr->vnodnbr; if (velmbas != NULL) *velmbas = srcmeshptr->velmbas; if (vnodbas != NULL) *vnodbas = srcmeshptr->vnodbas; if (verttab != NULL) *verttab = srcmeshptr->verttax + srcmeshptr->baseval; if (vendtab != NULL) *vendtab = srcmeshptr->vendtax + srcmeshptr->baseval; if (velotab != NULL) *velotab = (srcmeshptr->velotax != NULL) ? (srcmeshptr->velotax + srcmeshptr->velmbas) : NULL; if (vnlotab != NULL) *vnlotab = (srcmeshptr->vnlotax != NULL) ? (srcmeshptr->vnlotax + srcmeshptr->vnodbas) : NULL; if (vlbltab != NULL) *vlbltab = (srcmeshptr->vlbltax != NULL) ? (srcmeshptr->vlbltax + srcmeshptr->baseval) : NULL; if (edgenbr != NULL) *edgenbr = srcmeshptr->edgenbr; if (edgetab != NULL) *edgetab = srcmeshptr->edgetax + srcmeshptr->baseval; if (degrnbr != NULL) *degrnbr = srcmeshptr->degrmax; } /*+ This routine computes statistics *** on the given graph. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_meshStat ( const SCOTCH_Mesh * const meshptr, SCOTCH_Num * const vnlominptr, /* Vertex loads only for nodes */ SCOTCH_Num * const vnlomaxptr, SCOTCH_Num * const vnlosumptr, double * const vnloavgptr, double * const vnlodltptr, SCOTCH_Num * const edegminptr, /* Element degree data */ SCOTCH_Num * const edegmaxptr, double * const edegavgptr, double * const edegdltptr, SCOTCH_Num * const ndegminptr, /* Node degree data */ SCOTCH_Num * const ndegmaxptr, double * const ndegavgptr, double * const ndegdltptr) { const Mesh * restrict srcmeshptr; Gnum vnlomin; Gnum vnlomax; double vnloavg; double vnlodlt; Gnum degrmin; Gnum degrmax; double degravg; double degrdlt; srcmeshptr = (Mesh *) meshptr; vnlodlt = 0.0L; if (srcmeshptr->vnodnbr > 0) { if (srcmeshptr->vnlotax != NULL) { /* If mesh has node vertex loads */ Gnum vnodnum; vnlomin = GNUMMAX; vnlomax = 0; vnloavg = (double) srcmeshptr->vnlosum / (double) srcmeshptr->vnodnbr; for (vnodnum = srcmeshptr->vnodbas; vnodnum < srcmeshptr->vnodnnd; vnodnum ++) { if (srcmeshptr->vnlotax[vnodnum] < vnlomin) /* Account for vertex loads */ vnlomin = srcmeshptr->vnlotax[vnodnum]; if (srcmeshptr->vnlotax[vnodnum] > vnlomax) vnlomax = srcmeshptr->vnlotax[vnodnum]; vnlodlt += fabs ((double) srcmeshptr->vnlotax[vnodnum] - vnloavg); } vnlodlt /= (double) srcmeshptr->vnodnbr; } else { vnlomin = vnlomax = 1; vnloavg = 1.0L; } } else { vnlomin = vnlomax = 0; vnloavg = 0.0L; } if (vnlominptr != NULL) *vnlominptr = (SCOTCH_Num) vnlomin; if (vnlomaxptr != NULL) *vnlomaxptr = (SCOTCH_Num) vnlomax; if (vnlosumptr != NULL) *vnlosumptr = (SCOTCH_Num) srcmeshptr->vnlosum; if (vnloavgptr != NULL) *vnloavgptr = (double) vnloavg; if (vnlodltptr != NULL) *vnlodltptr = (double) vnlodlt; degrmax = 0; degrdlt = 0.0L; if (srcmeshptr->velmnbr > 0) { Gnum velmnum; degrmin = GNUMMAX; degravg = (double) srcmeshptr->edgenbr / (double) (2 * srcmeshptr->velmnbr); for (velmnum = srcmeshptr->velmbas; velmnum < srcmeshptr->velmnnd; velmnum ++) { Gnum degrval; degrval = srcmeshptr->vendtax[velmnum] - srcmeshptr->verttax[velmnum]; /* Get element degree */ if (degrval < degrmin) degrmin = degrval; if (degrval > degrmax) degrmax = degrval; degrdlt += fabs ((double) degrval - degravg); } degrdlt /= (double) srcmeshptr->velmnbr; } else { degrmin = 0; degravg = 0.0L; } if (edegminptr != NULL) *edegminptr = (SCOTCH_Num) degrmin; if (edegmaxptr != NULL) *edegmaxptr = (SCOTCH_Num) degrmax; if (edegavgptr != NULL) *edegavgptr = (double) degravg; if (edegdltptr != NULL) *edegdltptr = (double) degrdlt; degrmax = 0; degrdlt = 0.0L; if (srcmeshptr->vnodnbr > 0) { Gnum vnodnum; degrmin = GNUMMAX; degravg = (double) srcmeshptr->edgenbr / (double) (2 * srcmeshptr->vnodnbr); for (vnodnum = srcmeshptr->vnodbas; vnodnum < srcmeshptr->vnodnnd; vnodnum ++) { Gnum degrval; degrval = srcmeshptr->vendtax[vnodnum] - srcmeshptr->verttax[vnodnum]; /* Get element degree */ if (degrval < degrmin) degrmin = degrval; if (degrval > degrmax) degrmax = degrval; degrdlt += fabs ((double) degrval - degravg); } degrdlt /= (double) srcmeshptr->vnodnbr; } else { degrmin = 0; degravg = 0.0L; } if (ndegminptr != NULL) *ndegminptr = (SCOTCH_Num) degrmin; if (ndegmaxptr != NULL) *ndegmaxptr = (SCOTCH_Num) degrmax; if (ndegavgptr != NULL) *ndegavgptr = (double) degravg; if (ndegdltptr != NULL) *ndegdltptr = (double) degrdlt; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_f.c000066400000000000000000000236271514310134000270600ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the source mesh handling routines of **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 23 sep 2002 **/ /** to : 13 dec 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 15 apr 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 05 dec 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mesh handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ MESHINIT, meshinit, ( \ SCOTCH_Mesh * const meshptr, \ int * const revaptr), \ (meshptr, revaptr)) { *revaptr = SCOTCH_meshInit (meshptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHEXIT, meshexit, ( \ SCOTCH_Mesh * const meshptr), \ (meshptr)) { SCOTCH_meshExit (meshptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHSIZEOF, meshsizeof, ( \ int * const sizeptr), \ (sizeptr)) { *sizeptr = SCOTCH_meshSizeof (); } /* When an input stream is built from the given ** file handle, it is set as unbuffered, so as to ** allow for multiple stream reads from the same ** file handle. If it were buffered, too many ** input characters would be read on the first ** block read. */ SCOTCH_FORTRAN ( \ MESHLOAD, meshload, ( \ SCOTCH_Mesh * const meshptr, \ int * const fileptr, \ const SCOTCH_Num * const baseptr, \ int * const revaptr), \ (meshptr, fileptr, baseptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } setbuf (stream, NULL); /* Do not buffer on input */ o = SCOTCH_meshLoad (meshptr, stream, *baseptr); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ MESHSAVE, meshsave, ( \ const SCOTCH_Mesh * const meshptr, \ int * const fileptr, \ int * const revaptr), \ (meshptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_meshSave (meshptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ MESHBUILD, meshbuild, ( \ SCOTCH_Mesh * const meshptr, \ const SCOTCH_Num * const velmbas, \ const SCOTCH_Num * const vnodbas, \ const SCOTCH_Num * const velmnbr, \ const SCOTCH_Num * const vnodnbr, \ const SCOTCH_Num * const verttab, \ const SCOTCH_Num * const vendtab, \ const SCOTCH_Num * const velotab, \ const SCOTCH_Num * const vnlotab, \ const SCOTCH_Num * const vlbltab, \ const SCOTCH_Num * const edgenbr, \ const SCOTCH_Num * const edgetab, \ int * const revaptr), \ (meshptr, velmbas, vnodbas, velmnbr, vnodnbr, \ verttab, vendtab, velotab, vnlotab, vlbltab, \ edgenbr, edgetab, revaptr)) { *revaptr = SCOTCH_meshBuild (meshptr, *velmbas, *vnodbas, *velmnbr, *vnodnbr, verttab, vendtab, velotab, vnlotab, vlbltab, *edgenbr, edgetab); } /* ** */ SCOTCH_FORTRAN ( \ MESHCHECK, meshcheck, ( \ const SCOTCH_Mesh * const meshptr, \ int * const revaptr), \ (meshptr, revaptr)) { *revaptr = SCOTCH_meshCheck (meshptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHSIZE, meshsize, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Num * const velmnbr, \ SCOTCH_Num * const vnodnbr, \ SCOTCH_Num * const edgenbr), \ (meshptr, velmnbr, vnodnbr, edgenbr)) { SCOTCH_meshSize (meshptr, velmnbr, vnodnbr, edgenbr); } /* ** */ SCOTCH_FORTRAN ( \ MESHDATA, meshdata, ( \ const SCOTCH_Mesh * const meshptr, \ const SCOTCH_Num * const indxptr, \ SCOTCH_Num * const velmbas, \ SCOTCH_Num * const vnodbas, \ SCOTCH_Num * const velmnbr, \ SCOTCH_Num * const vnodnbr, \ SCOTCH_Idx * const vertidx, \ SCOTCH_Idx * const vendidx, \ SCOTCH_Idx * const veloidx, \ SCOTCH_Idx * const vnloidx, \ SCOTCH_Idx * const vlblidx, \ SCOTCH_Num * const edgenbr, \ SCOTCH_Idx * const edgeidx, \ SCOTCH_Num * const degrnbr), \ (meshptr, indxptr, velmbas, vnodbas, velmnbr, vnodnbr, \ vertidx, vendidx, veloidx, vnloidx, vlblidx, \ edgenbr, edgeidx, degrnbr)) { SCOTCH_Num * verttab; /* Pointer to mesh arrays */ SCOTCH_Num * vendtab; SCOTCH_Num * velotab; SCOTCH_Num * vnlotab; SCOTCH_Num * vlbltab; SCOTCH_Num * edgetab; SCOTCH_meshData (meshptr, velmbas, vnodbas, velmnbr, vnodnbr, &verttab, &vendtab, &velotab, &vnlotab, &vlbltab, edgenbr, &edgetab, degrnbr); *vertidx = (SCOTCH_Idx) (verttab - indxptr) + 1; /* Add 1 since Fortran indices start at 1 */ *vendidx = (SCOTCH_Idx) (vendtab - indxptr) + 1; *veloidx = (velotab != NULL) ? (SCOTCH_Idx) (velotab - indxptr) + 1 : *vertidx; *vnloidx = (vnlotab != NULL) ? (SCOTCH_Idx) (vnlotab - indxptr) + 1 : *vertidx; *vlblidx = (vlbltab != NULL) ? (SCOTCH_Idx) (vlbltab - indxptr) + 1 : *vertidx; *edgeidx = (SCOTCH_Idx) (edgetab - indxptr) + 1; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_graph.c000066400000000000000000000101431514310134000277210ustar00rootroot00000000000000/* Copyright 2004,2007,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Marc FUENTES (v6.1) **/ /** **/ /** FUNCTION : This module is the API for the Scotch **/ /** mesh-to-graph converter. **/ /** **/ /** DATES : # Version 4.0 : from : 21 jan 2004 **/ /** to : 21 jan 2004 **/ /** # Version 6.1 : from : 28 feb 2021 **/ /** to : 28 feb 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 30 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Scotch mesh and graph */ /* handling routines. */ /* */ /*************************************/ /*+ This routine builds an opaque nodal graph structure *** from an opaque mesh structure. The nodal graph *** adjacency is defined such that two nodes are adjacent *** if both share at least one element. *** - 0 : if building has succeeded. *** - !0 : on error. +*/ int SCOTCH_meshGraph ( const SCOTCH_Mesh * restrict const meshptr, SCOTCH_Graph * restrict const grafptr) { return (meshGraphNodal ((Mesh *) meshptr, (Graph *) grafptr)); } /*+ This routine builds an opaque dual graph structure *** from an opaque mesh structure. The dual graph adjacency *** is defined such that two elements are adjacent, if *** both shared at least noconbr points. *** - 0 : if building has succeeded. *** - !0 : on error. +*/ int SCOTCH_meshGraphDual ( const SCOTCH_Mesh * restrict const meshptr, SCOTCH_Graph * restrict const grafptr, const SCOTCH_Num noconbr) { return (meshGraphDual ((Mesh *) meshptr, (Graph *) grafptr, noconbr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_graph_f.c000066400000000000000000000075321514310134000302360ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_graph_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the mesh-to-graph converter of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 21 jan 2004 **/ /** to : 21 jan 2004 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 28 apr 2018 **/ /** # Version 6.1 : from : 19 may 2021 **/ /** to : 19 may 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 28 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mesh handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ MESHGRAPH, meshgraph, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Graph * const grafptr, \ int * const revaptr), \ (meshptr, grafptr, revaptr)) { *revaptr = SCOTCH_meshGraph (meshptr, grafptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHGRAPHDUAL, meshgraphdual, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Graph * const grafptr, \ const SCOTCH_Num * const nocoptr, \ int * const revaptr), \ (meshptr, grafptr, nocoptr, revaptr)) { *revaptr = SCOTCH_meshGraphDual (meshptr, grafptr, *nocoptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_io_habo.c000066400000000000000000000070441514310134000302260ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_io_habo.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Harwell- **/ /** Boeing geometry and mesh handling **/ /** routines of the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 19 jan 2004 **/ /** to : 19 jan 2004 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "mesh.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Harwell-Boeing mesh and */ /* geometry handling routines. */ /* */ /*************************************/ /*+ This routine loads the given opaque geom *** structure with the data of the given stream. *** - 0 : if loading succeeded. *** - !0 : on error. +*/ int SCOTCH_meshGeomLoadHabo ( SCOTCH_Mesh * restrict const meshptr, SCOTCH_Geom * restrict const geomptr, FILE * const filesrcptr, FILE * const filegeoptr, const char * const dataptr) /* No use */ { return (meshGeomLoadHabo ((Mesh *) meshptr, (Geom *) geomptr, filesrcptr, filegeoptr, dataptr)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_io_habo_f.c000066400000000000000000000126441514310134000305350ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_io_habo_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** mesh i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 24 nov 2005 **/ /** to : 24 nov 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ MESHGEOMLOADHABO, meshgeomloadhabo, ( \ SCOTCH_Mesh * const meshptr, \ SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (meshptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADHABO)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADHABO)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADHABO)) ": cannot open input stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADHABO)) ": cannot open input stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_meshGeomLoadHabo (meshptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_io_scot.c000066400000000000000000000101151514310134000302560ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_io_scot.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the Scotch **/ /** geometry and mesh handling routines o f **/ /** the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 19 jan 2004 **/ /** to : 19 jan 2004 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "mesh.h" #include "scotch.h" /*************************************/ /* */ /* These routines are the C API for */ /* the Scotch mesh and geometry */ /* handling routines. */ /* */ /*************************************/ /*+ This routine loads the given opaque mesh *** structure with the data of the given stream. *** - 0 : if loading succeeded. *** - !0 : on error. +*/ int SCOTCH_meshGeomLoadScot ( SCOTCH_Mesh * restrict const meshptr, SCOTCH_Geom * restrict const geomptr, FILE * const filesrcptr, FILE * const filegeoptr, const char * const dataptr) /* No use */ { return (meshGeomLoadScot ((Mesh *) meshptr, (Geom *) geomptr, filesrcptr, filegeoptr, NULL)); } /*+ This routine saves the contents of the given *** opaque mesh structure to the given stream. *** It returns: *** - 0 : if the saving succeeded. *** - !0 : on error. +*/ int SCOTCH_meshGeomSaveScot ( const SCOTCH_Mesh * restrict const meshptr, const SCOTCH_Geom * restrict const geomptr, FILE * const filesrcptr, FILE * const filegeoptr, const char * const dataptr) /* No use */ { return (meshGeomSaveScot ((Mesh *) meshptr, (Geom *) geomptr, filesrcptr, filegeoptr, NULL)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_io_scot_f.c000066400000000000000000000171731514310134000305760ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_io_scot_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** mesh i/o routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 24 nov 2005 **/ /** to : 24 nov 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the mapping routines. */ /* */ /**************************************/ /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ MESHGEOMLOADSCOT, meshgeomloadscot, ( \ SCOTCH_Mesh * const meshptr, \ SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (meshptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADSCOT)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADSCOT)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADSCOT)) ": cannot open input stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMLOADSCOT)) ": cannot open input stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_meshGeomLoadScot (meshptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } /* String lengths are passed at the very ** end of the argument list. */ SCOTCH_FORTRAN ( \ MESHGEOMSAVESCOT, meshgeomsavescot, ( \ const SCOTCH_Mesh * const meshptr, \ const SCOTCH_Geom * const geomptr, \ const int * const filegrfptr, \ const int * const filegeoptr, \ const char * const dataptr, /* No use */ \ int * const revaptr, \ const int datanbr), \ (meshptr, geomptr, filegrfptr, filegeoptr, dataptr, revaptr, datanbr)) { FILE * filegrfstream; /* Streams to build from handles */ FILE * filegeostream; int filegrfnum; /* Duplicated handle */ int filegeonum; int o; if ((filegrfnum = dup (*filegrfptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMSAVESCOT)) ": cannot duplicate handle (1)"); *revaptr = 1; /* Indicate error */ return; } if ((filegeonum = dup (*filegeoptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMSAVESCOT)) ": cannot duplicate handle (2)"); close (filegrfnum); *revaptr = 1; /* Indicate error */ return; } if ((filegrfstream = fdopen (filegrfnum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMSAVESCOT)) ": cannot open output stream (1)"); close (filegrfnum); close (filegeonum); *revaptr = 1; return; } if ((filegeostream = fdopen (filegeonum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHGEOMSAVESCOT)) ": cannot open output stream (2)"); fclose (filegrfstream); close (filegeonum); *revaptr = 1; return; } o = SCOTCH_meshGeomSaveScot (meshptr, geomptr, filegrfstream, filegeostream, NULL); fclose (filegrfstream); /* This closes file descriptors too */ fclose (filegeostream); *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_order.c000066400000000000000000000407071514310134000277440ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2012,2018,2019,2023-2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the mesh **/ /** ordering routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 3.2 : from : 19 aug 1998 **/ /** to : 22 aug 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 27 mar 1999 **/ /** # Version 4.0 : from : 29 jan 2002 **/ /** to : 20 dec 2005 **/ /** # Version 5.0 : from : 04 aug 2007 **/ /** to : 31 may 2008 **/ /** # Version 5.1 : from : 29 mar 2010 **/ /** to : 14 aug 2010 **/ /** # Version 6.0 : from : 14 nov 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "context.h" #include "parser.h" #include "graph.h" #include "mesh.h" #include "order.h" #include "hmesh.h" #include "hmesh_order_st.h" #include "library_order.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the mesh ordering routines. */ /* */ /************************************/ /*+ This routine initializes an API ordering *** with respect to the given source graph *** and the locations of output parameters. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderInit ( const SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ SCOTCH_Ordering * const ordeptr, /*+ Ordering structure to initialize +*/ SCOTCH_Num * const permtab, /*+ Direct permutation array +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Separator tree array +*/ { Mesh * srcmeshptr; LibOrder * libordeptr; #ifdef SCOTCH_DEBUG_LIBRARY1 if (sizeof (SCOTCH_Ordering) < sizeof (LibOrder)) { errorPrint (STRINGIFY (SCOTCH_meshOrderInit) ": internal error"); return (1); } #endif /* SCOTCH_DEBUG_LIBRARY1 */ srcmeshptr = (Mesh *) meshptr; /* Use structure as source mesh */ libordeptr = (LibOrder *) ordeptr; libordeptr->permtab = ((permtab == NULL) || ((void *) permtab == (void *) meshptr)) ? NULL : (Gnum *) permtab; libordeptr->peritab = ((peritab == NULL) || ((void *) peritab == (void *) meshptr)) ? NULL : (Gnum *) peritab; libordeptr->cblkptr = ((cblkptr == NULL) || ((void *) cblkptr == (void *) meshptr)) ? NULL : (Gnum *) cblkptr; libordeptr->rangtab = ((rangtab == NULL) || ((void *) rangtab == (void *) meshptr)) ? NULL : (Gnum *) rangtab; libordeptr->treetab = ((treetab == NULL) || ((void *) treetab == (void *) meshptr)) ? NULL : (Gnum *) treetab; return (orderInit (&libordeptr->o, srcmeshptr->baseval, srcmeshptr->vnodnbr, libordeptr->peritab)); } /*+ This routine frees an API ordering. *** It returns: *** - VOID : in all cases. +*/ void SCOTCH_meshOrderExit ( const SCOTCH_Mesh * const meshptr, SCOTCH_Ordering * const ordeptr) { orderExit (&((LibOrder *) ordeptr)->o); } /*+ This routine saves the contents of *** the given ordering to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderSave ( const SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ const SCOTCH_Ordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (orderSave (&((LibOrder *) ordeptr)->o, ((Mesh *) meshptr)->vlbltax, stream)); } /*+ This routine saves the mapping data *** associated with the given ordering *** to the given stream. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderSaveMap ( const SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ const SCOTCH_Ordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (orderSaveMap (&((LibOrder *) ordeptr)->o, ((Mesh *) meshptr)->vlbltax, stream)); } /*+ This routine saves to the given stream *** the separator tree data associated with *** the given ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderSaveTree ( const SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ const SCOTCH_Ordering * const ordeptr, /*+ Ordering to save +*/ FILE * const stream) /*+ Output stream +*/ { return (orderSaveTree (&((LibOrder *) ordeptr)->o, ((Mesh *) meshptr)->vlbltax, stream)); } /*+ This routine computes an ordering *** of the API ordering structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderCompute ( SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ SCOTCH_Ordering * const ordeptr, /*+ Ordering to compute +*/ SCOTCH_Strat * const stratptr) /*+ Ordering strategy +*/ { return (SCOTCH_meshOrderComputeList (meshptr, ordeptr, 0, NULL, stratptr)); } /*+ This routine computes a partial ordering *** of the listed nodes of the API ordering *** structure mesh with respect to the given *** strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderComputeList ( SCOTCH_Mesh * const libmeshptr, /*+ Mesh to order +*/ SCOTCH_Ordering * const ordeptr, /*+ Ordering to compute +*/ const SCOTCH_Num listnbr, /*+ Number of vertices in list +*/ const SCOTCH_Num * const listtab, /*+ List of vertex indices to order +*/ SCOTCH_Strat * const stratptr) /*+ Ordering strategy +*/ { CONTEXTDECL (libmeshptr); Hmesh srcmeshdat; /* Halo source mesh structure */ VertList srclistdat; /* Subgraph vertex list */ VertList * srclistptr; /* Pointer to subgraph vertex list */ const Strat * ordstratptr; /* Pointer to ordering strategy */ int o; if (CONTEXTINIT (libmeshptr)) { errorPrint (STRINGIFY (SCOTCH_meshOrderComputeList) ": cannot initialize context"); return (1); } const Mesh * const srcmeshptr = (Mesh *) CONTEXTGETOBJECT (libmeshptr); LibOrder * const libordeptr = (LibOrder *) ordeptr; memCpy (&srcmeshdat.m, srcmeshptr, sizeof (Mesh)); /* Copy non-halo mesh data */ srcmeshdat.m.flagval &= ~MESHFREETABS; /* Do not allow to free arrays */ srcmeshdat.vehdtax = srcmeshdat.m.vendtax; /* End of non-halo vertices */ srcmeshdat.veihnbr = 0; /* No halo isolated elements */ srcmeshdat.vnohnbr = srcmeshdat.m.vnodnbr; /* All nodes are non-halo */ srcmeshdat.vnohnnd = srcmeshdat.m.vnodnnd; /* No halo present */ srcmeshdat.vnhlsum = srcmeshdat.m.vnlosum; /* Sum of node vertex weights */ srcmeshdat.enohnbr = srcmeshdat.m.edgenbr; /* All edges are non-halo */ srcmeshdat.levlnum = 0; /* Start from level zero */ srcmeshdat.contptr = CONTEXTGETDATA (libmeshptr); o = 1; /* Assume an error */ #ifdef SCOTCH_DEBUG_MESH2 if (meshCheck (srcmeshptr) != 0) { errorPrint (STRINGIFY (SCOTCH_meshOrderComputeList) ": invalid input mesh"); goto abort; } #endif /* SCOTCH_DEBUG_MESH2 */ if (*((Strat **) stratptr) == NULL) { /* Set default ordering strategy if necessary */ if (SCOTCH_stratMeshOrderBuild (stratptr, SCOTCH_STRATQUALITY, 0.1)) goto abort; } ordstratptr = *((Strat **) stratptr); if (ordstratptr->tablptr != &hmeshorderststratab) { errorPrint (STRINGIFY (SCOTCH_meshOrderComputeList) ": not a mesh ordering strategy"); goto abort; } srclistdat.vnumnbr = (Gnum) listnbr; /* Build vertex list */ srclistdat.vnumtab = (Gnum *) listtab; srclistptr = ((srclistdat.vnumnbr == 0) || (srclistdat.vnumnbr == srcmeshdat.m.vnodnbr)) ? NULL : &srclistdat; /* Is the list really necessary */ if (srclistptr != NULL) { errorPrint (STRINGIFY (SCOTCH_meshOrderComputeList) ": node lists not yet implemented"); goto abort; } if ((o = hmeshOrderSt (&srcmeshdat, &libordeptr->o, 0, &libordeptr->o.rootdat, ordstratptr)) != 0) goto abort; #ifdef SCOTCH_DEBUG_LIBRARY2 if (orderCheck (&libordeptr->o) != 0) goto abort; #endif /* SCOTCH_DEBUG_LIBRARY2 */ if (libordeptr->permtab != NULL) /* Build direct permutation if wanted */ orderPeri (libordeptr->o.peritab, libordeptr->o.baseval, libordeptr->o.vnodnbr, libordeptr->permtab, libordeptr->o.baseval); if (libordeptr->rangtab != NULL) /* Build range array if column block data wanted */ orderRang (&libordeptr->o, libordeptr->rangtab); if (libordeptr->treetab != NULL) /* Build separator tree array if wanted */ orderTree (&libordeptr->o, libordeptr->treetab); if (libordeptr->cblkptr != NULL) /* Set number of column blocks if wanted */ *(libordeptr->cblkptr) = libordeptr->o.cblknbr; abort: meshExit (&srcmeshdat.m); /* Free in case mesh had been reordered */ CONTEXTEXIT (libmeshptr); return (o); } /*+ This routine computes an ordering *** of the API ordering structure with *** respect to the given strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrder ( SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ SCOTCH_Strat * const stratptr, /*+ Ordering strategy +*/ SCOTCH_Num * const permtab, /*+ Ordering permutation +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Separator tree array +*/ { SCOTCH_Ordering ordedat; int o; SCOTCH_meshOrderInit (meshptr, &ordedat, permtab, peritab, cblkptr, rangtab, treetab); o = SCOTCH_meshOrderCompute (meshptr, &ordedat, stratptr); SCOTCH_meshOrderExit (meshptr, &ordedat); return (o); } /*+ This routine computes an ordering *** of the submesh of the API ordering *** structure mesh induced by the given *** vertex list, with respect to the given *** strategy. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderList ( SCOTCH_Mesh * const meshptr, /*+ Mesh to order +*/ const SCOTCH_Num listnbr, /*+ Number of vertices in list +*/ const SCOTCH_Num * const listtab, /*+ List of vertex indices to order +*/ SCOTCH_Strat * const stratptr, /*+ Ordering strategy +*/ SCOTCH_Num * const permtab, /*+ Ordering permutation +*/ SCOTCH_Num * const peritab, /*+ Inverse permutation array +*/ SCOTCH_Num * const cblkptr, /*+ Pointer to number of column blocks +*/ SCOTCH_Num * const rangtab, /*+ Column block range array +*/ SCOTCH_Num * const treetab) /*+ Column block range array +*/ { SCOTCH_Ordering ordedat; int o; SCOTCH_meshOrderInit (meshptr, &ordedat, permtab, peritab, cblkptr, rangtab, treetab); o = SCOTCH_meshOrderComputeList (meshptr, &ordedat, listnbr, listtab, stratptr); SCOTCH_meshOrderExit (meshptr, &ordedat); return (o); } /*+ This routine checks the consistency *** of the given mesh ordering. *** It returns: *** - 0 : on success. *** - !0 : on error. +*/ int SCOTCH_meshOrderCheck ( const SCOTCH_Mesh * const meshptr, const SCOTCH_Ordering * const ordeptr) /*+ Ordering to check +*/ { return (orderCheck (&((LibOrder *) ordeptr)->o)); } /*+ This routine parses the given *** mesh ordering strategy. *** It returns: *** - 0 : if string successfully scanned. *** - !0 : on error. +*/ int SCOTCH_stratMeshOrder ( SCOTCH_Strat * const stratptr, const char * const string) { if (*((Strat **) stratptr) != NULL) stratExit (*((Strat **) stratptr)); if ((*((Strat **) stratptr) = stratInit (&hmeshorderststratab, string)) == NULL) { errorPrint (STRINGIFY (SCOTCH_stratMeshOrder) ": error in ordering strategy"); return (1); } return (0); } /*+ This routine provides predefined *** ordering strategies. *** It returns: *** - 0 : if string successfully initialized. *** - !0 : on error. +*/ int SCOTCH_stratMeshOrderBuild ( SCOTCH_Strat * const stratptr, /*+ Strategy to create +*/ const SCOTCH_Num flagval, /*+ Desired characteristics +*/ const double balrat) /*+ Desired imbalance ratio +*/ { char bufftab[8192]; /* Should be enough */ char bbaltab[32]; strcpy (bufftab, "c{rat=0.7,cpr=n{sep=/(vnod>120)?m{vnod=100,low=h{pass=10},asc=f{bal=}}:;,ole=v{strat=d{cmin=0,cmax=10000000,frat=0}},ose=g},unc=n{sep=/(vnod>120)?m{vnod=100,low=h{pass=10},asc=f{bal=}}:;,ole=v{strat=d{cmin=0,cmax=10000000,frat=0}},ose=g}}"); sprintf (bbaltab, "%lf", balrat); stringSubst (bufftab, "", bbaltab); return (SCOTCH_stratMeshOrder (stratptr, bufftab)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_mesh_order_f.c000066400000000000000000000264151514310134000302510ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_mesh_order_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** mesh ordering routines of the libSCOTCH **/ /** library. **/ /** **/ /** DATES : # Version 4.0 : from : 14 jan 2004 **/ /** to : 20 dec 2005 **/ /** # Version 5.0 : from : 04 aug 2007 **/ /** to : 04 aug 2007 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 25 jul 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ MESHORDERINIT, meshorderinit, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (meshptr, ordeptr, permtab, peritab, \ cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_meshOrderInit (meshptr, ordeptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ MESHORDEREXIT, meshorderexit, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr), \ (meshptr, ordeptr)) { SCOTCH_meshOrderExit (meshptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERSAVE, meshordersave, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (meshptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHORDERSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHORDERSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_meshOrderSave (meshptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERSAVEMAP, meshordersavemap, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (meshptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHORDERSAVEMAP)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHORDERSAVEMAP)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_meshOrderSaveMap (meshptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERSAVETREE, meshordersavetree, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ int * const fileptr, \ int * const revaptr), \ (meshptr, ordeptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHORDERSAVETREE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (MESHORDERSAVETREE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_meshOrderSaveTree (meshptr, ordeptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERCOMPUTE, meshordercompute, ( \ SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (meshptr, ordeptr, straptr, revaptr)) { *revaptr = SCOTCH_meshOrderCompute (meshptr, ordeptr, straptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERCOMPUTELIST, meshordercomputelist, ( \ SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ const SCOTCH_Num * listptr, \ const SCOTCH_Num * const listtab, \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (meshptr, ordeptr, listptr, listtab, straptr, revaptr)) { *revaptr = SCOTCH_meshOrderComputeList (meshptr, ordeptr, *listptr, listtab, straptr); } /* ** */ SCOTCH_FORTRAN ( \ MESHORDER, meshorder, ( \ SCOTCH_Mesh * const meshptr, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (meshptr, straptr, permtab, peritab, \ cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_meshOrder (meshptr, straptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERLIST, meshorderlist, ( \ SCOTCH_Mesh * const meshptr, \ const SCOTCH_Num * listptr, \ const SCOTCH_Num * const listtab, \ SCOTCH_Strat * const straptr, \ SCOTCH_Num * const permtab, \ SCOTCH_Num * const peritab, \ SCOTCH_Num * const cblkptr, \ SCOTCH_Num * const rangtab, \ SCOTCH_Num * const treetab, \ int * const revaptr), \ (meshptr, listptr, listtab, straptr, \ permtab, peritab, cblkptr, rangtab, treetab, revaptr)) { *revaptr = SCOTCH_meshOrderList (meshptr, *listptr, listtab, straptr, permtab, peritab, cblkptr, rangtab, treetab); } /* ** */ SCOTCH_FORTRAN ( \ MESHORDERCHECK, meshordercheck, ( \ const SCOTCH_Mesh * const meshptr, \ SCOTCH_Ordering * const ordeptr, \ int * const revaptr), \ (meshptr, ordeptr, revaptr)) { *revaptr = SCOTCH_meshOrderCheck (meshptr, ordeptr); } /* ** */ SCOTCH_FORTRAN ( \ STRATMESHORDER, stratmeshorder, ( \ SCOTCH_Strat * const straptr, \ const char * const string, \ int * const revaptr, \ const int strnbr), \ (straptr, string, revaptr, strnbr)) { char * restrict strtab; /* Pointer to null-terminated string */ if ((strtab = (char *) memAlloc (strnbr + 1)) == NULL) { /* Allocate temporary space */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATMESHORDER)) ": out of memory"); *revaptr = 1; return; } memCpy (strtab, string, strnbr); /* Copy string contents */ strtab[strnbr] = '\0'; /* Terminate string */ *revaptr = SCOTCH_stratMeshOrder (straptr, strtab); /* Call original routine */ memFree (strtab); /* Prevent compiler warnings */ } /* ** */ SCOTCH_FORTRAN ( \ STRATMESHORDERBUILD, stratmeshorderbuild, ( \ SCOTCH_Strat * const straptr, \ const SCOTCH_Num * const flagval, \ const double * const balrat, \ int * const revaptr), \ (straptr, flagval, balrat, revaptr)) { *revaptr = SCOTCH_stratMeshOrderBuild (straptr, *flagval, *balrat); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_order.c000066400000000000000000000071231514310134000267230ustar00rootroot00000000000000/* Copyright 2010,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains miscellaneous **/ /** routines for handling centralized **/ /** graph orderings. **/ /** **/ /** DATES : # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /*****************************************/ /* */ /* These routines are the C API for */ /* ordering structure handling routines. */ /* */ /*****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** SCOTCH_Ordering structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Ordering * SCOTCH_orderAlloc () { return ((SCOTCH_Ordering *) memAlloc (sizeof (SCOTCH_Ordering))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Ordering structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_orderSizeof () { return (sizeof (SCOTCH_Ordering)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_order.h000066400000000000000000000065621514310134000267360ustar00rootroot00000000000000/* Copyright 2004,2007,2010 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_order.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the library ordering **/ /** structure. **/ /** **/ /** DATES : # Version 3.3 : from : 08 oct 1998 **/ /** to : 08 oct 1998 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 25 dec 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Ordering. +*/ typedef struct LibOrder_ { Order o; /*+ Ordering data +*/ Gnum * permtab; /*+ Direct permutation array +*/ Gnum * peritab; /*+ Inverse permutation array +*/ Gnum * cblkptr; /*+ Pointer to number of column blocks +*/ Gnum * rangtab; /*+ Column block range array +*/ Gnum * treetab; /*+ Separator tree array +*/ } LibOrder; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_parser.c000066400000000000000000000116551514310134000271110ustar00rootroot00000000000000/* Copyright 2004,2007,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_parser.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the generic **/ /** strategy handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 3.2 : from : 19 aug 1998 **/ /** to : 19 aug 1998 **/ /** DATES : # Version 3.3 : from : 01 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 23 dec 2001 **/ /** to : 23 dec 2001 **/ /** # Version 6.0 : from : 07 jan 2014 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the strategy handling routines. */ /* */ /************************************/ /* This routine initializes a strategy ** structure. ** It returns: ** - 0 : in all cases. */ int SCOTCH_stratInit ( SCOTCH_Strat * const stratptr) { if (sizeof (SCOTCH_Strat) < sizeof (Strat *)) { errorPrint (STRINGIFY (SCOTCH_stratInit) ": internal error (1)"); return (1); } *((Strat **) stratptr) = NULL; /* Initialize pointer to strategy */ return (0); } /* This routine frees a strategy structure. ** It returns: ** - VOID : in all cases. */ void SCOTCH_stratExit ( SCOTCH_Strat * const stratptr) { if (*((Strat **) stratptr) != NULL) /* If strategy is not null */ stratExit (*((Strat **) stratptr)); /* Free strategy structure */ } /* This routine frees the contents of a ** strategy structure and cleans it for ** future use. ** It returns: ** - VOID : in all cases. */ void SCOTCH_stratFree ( SCOTCH_Strat * const stratptr) { if (*((Strat **) stratptr) != NULL) { /* If strategy is not null */ stratExit (*((Strat **) stratptr)); /* Free strategy structure */ *((Strat **) stratptr) = NULL; /* Initialize pointer to strategy */ } } /* This routine outputs the contents of the ** given strategy to the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int SCOTCH_stratSave ( const SCOTCH_Strat * const stratptr, FILE * const stream) { return (stratSave (*((Strat **) stratptr), stream)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_parser_f.c000066400000000000000000000115571514310134000274170ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_parser_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the Fortran API for the **/ /** strategy handling routines of the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 17 jan 2004 **/ /** to : 17 mar 2005 **/ /** # Version 5.1 : from : 27 mar 2010 **/ /** to : 27 mar 2010 **/ /** # Version 6.0 : from : 07 jan 2014 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "scotch.h" /***************************************/ /* */ /* These routines are the Fortran API */ /* for the ordering handling routines. */ /* */ /***************************************/ SCOTCH_FORTRAN ( \ STRATINIT, stratinit, ( \ SCOTCH_Strat * const straptr, \ int * const revaptr), \ (straptr, revaptr)) { *revaptr = SCOTCH_stratInit (straptr); } /* ** */ SCOTCH_FORTRAN ( \ STRATEXIT, stratexit, ( \ SCOTCH_Strat * const straptr), \ (straptr)) { SCOTCH_stratExit (straptr); } /* ** */ SCOTCH_FORTRAN ( \ STRATFREE, stratfree, ( \ SCOTCH_Strat * const straptr), \ (straptr)) { SCOTCH_stratFree (straptr); } /* ** */ SCOTCH_FORTRAN ( \ STRATSAVE, stratsave, ( \ SCOTCH_Strat * const straptr, \ int * const fileptr, \ int * const revaptr), \ (straptr, fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (STRATSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_stratSave (straptr, stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_pt.h000066400000000000000000000346421514310134000262460ustar00rootroot00000000000000/* Copyright 2004,2007-2012,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_pt.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : Declaration file for the LibPtscotch **/ /** parallel static mapping and sparse **/ /** matrix block ordering library. **/ /** **/ /** DATES : # Version 3.2 : from : 07 sep 1996 **/ /** to : 22 aug 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 3.4 : from : 10 oct 1999 **/ /** to : 15 nov 2001 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 20 dec 2005 **/ /** # Version 5.0 : from : 26 apr 2006 **/ /** to : 20 feb 2008 **/ /** # Version 5.1 : from : 30 nov 2007 **/ /** to : 07 aug 2011 **/ /** # Version 6.0 : from : 12 sep 2008 **/ /** to : 29 apr 2018 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 14 aug 2025 **/ /** **/ /************************************************************/ #ifndef PTSCOTCH_H #define PTSCOTCH_H /* ** The defines and includes. */ #ifndef LIB_SCOTCH_H #include "scotch.h" #endif /* LIB_SCOTCH_H */ /* ** The type and structure definitions. */ /*+ Parallel processing flag. +*/ #ifndef SCOTCH_PTSCOTCH #define SCOTCH_DUMMYPTFLAG #endif /* SCOTCH_PTSCOTCH */ /*+ Version flags. +*/ #ifdef SCOTCH_VERSION #if ((SCOTCH_VERSION != DUMMYVERSION) || (SCOTCH_RELEASE != DUMMYRELEASE) || (SCOTCH_PATCHLEVEL != DUMMYPATCHLEVEL)) #ifndef SCOTCH_WARNING_RENAME_UNSAFE #define SCOTCH_WARNING_RENAME_UNSAFE #endif /* SCOTCH_WARNING_RENAME_UNSAFE */ #endif /* ((SCOTCH_VERSION != DUMMYVERSION) || (SCOTCH_RELEASE != DUMMYRELEASE) || (SCOTCH_PATCHLEVEL != DUMMYPATCHLEVEL)) */ #endif /* SCOTCH_VERSION */ /*+ 3D grid distributed graph building option flags. +*/ #ifndef SCOTCH_DGRAPHBUILDGRID3DGRID #define SCOTCH_DGRAPHBUILDGRID3DGRID 0 #define SCOTCH_DGRAPHBUILDGRID3DTORUS 2 #define SCOTCH_DGRAPHBUILDGRID3DNGB6 0 #define SCOTCH_DGRAPHBUILDGRID3DNGB26 1 #define SCOTCH_DGRAPHBUILDGRID3DVERTLOAD 4 #define SCOTCH_DGRAPHBUILDGRID3DEDGELOAD 8 #endif /* SCOTCH_DGRAPHBUILDGRID3DGRID */ /*+ Integer type. +*/ #define SCOTCH_NUM_MPI DUMMYINTMPI /*+ Opaque objects. The dummy sizes of these objects, computed at compile-time by program "dummysizes", are given as double values for proper padding. +*/ typedef struct { double dummy[DUMMYSIZEDGRAPH]; } SCOTCH_Dgraph; typedef struct { double dummy[DUMMYSIZEDGRAPHHALOREQ]; } SCOTCH_DgraphHaloReq; typedef struct { double dummy[DUMMYSIZEDMAP]; } SCOTCH_Dmapping; typedef struct { double dummy[DUMMYSIZEDMESH]; } SCOTCH_Dmesh; typedef struct { double dummy[DUMMYSIZEDORDER]; } SCOTCH_Dordering; /* ** The function prototypes. */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ int SCOTCH_contextBindDgraph (SCOTCH_Context * const, const SCOTCH_Dgraph * const, SCOTCH_Dgraph * const); SCOTCH_Dgraph * SCOTCH_dgraphAlloc (void); int SCOTCH_dgraphSizeof (void); int SCOTCH_dgraphInit (SCOTCH_Dgraph * const, MPI_Comm); void SCOTCH_dgraphExit (SCOTCH_Dgraph * const); void SCOTCH_dgraphFree (SCOTCH_Dgraph * const); int SCOTCH_dgraphLoad (SCOTCH_Dgraph * const, FILE * const, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_dgraphSave (SCOTCH_Dgraph * const, FILE * const); int SCOTCH_dgraphCheck (const SCOTCH_Dgraph * const); int SCOTCH_dgraphBand (SCOTCH_Dgraph * const, const SCOTCH_Num, SCOTCH_Num * const, const SCOTCH_Num, SCOTCH_Dgraph * const); int SCOTCH_dgraphBuild (SCOTCH_Dgraph * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_dgraphBuildGrid3D (SCOTCH_Dgraph * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num); int SCOTCH_dgraphCoarsen (SCOTCH_Dgraph * const, const SCOTCH_Num, const double, const SCOTCH_Num, SCOTCH_Dgraph * const, SCOTCH_Num * const); SCOTCH_Num SCOTCH_dgraphCoarsenVertLocMax (const SCOTCH_Dgraph * const, const SCOTCH_Num); int SCOTCH_dgraphGather (const SCOTCH_Dgraph * const, SCOTCH_Graph * const); int SCOTCH_dgraphGrow (SCOTCH_Dgraph * const, const SCOTCH_Num, SCOTCH_Num * const, const SCOTCH_Num, SCOTCH_Num * const); int SCOTCH_dgraphInducePart (SCOTCH_Dgraph * const, const SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num, SCOTCH_Dgraph * const); int SCOTCH_dgraphScatter (SCOTCH_Dgraph * const, const SCOTCH_Graph * const); int SCOTCH_dgraphRedist (SCOTCH_Dgraph * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num, SCOTCH_Dgraph * const); void SCOTCH_dgraphSize (const SCOTCH_Dgraph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_dgraphData (const SCOTCH_Dgraph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, MPI_Comm * const); int SCOTCH_dgraphStat (const SCOTCH_Dgraph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const); int SCOTCH_dgraphGhst (SCOTCH_Dgraph * const); int SCOTCH_dgraphHalo (SCOTCH_Dgraph * const, void * const, const MPI_Datatype); int SCOTCH_dgraphHaloAsync (SCOTCH_Dgraph * const, void * const, const MPI_Datatype, SCOTCH_DgraphHaloReq * const); SCOTCH_DgraphHaloReq * SCOTCH_dgraphHaloReqAlloc (void); int SCOTCH_dgraphHaloReqSizeof (void); int SCOTCH_dgraphHaloWait (SCOTCH_DgraphHaloReq * const); int SCOTCH_dgraphMapInit (const SCOTCH_Dgraph * const, SCOTCH_Dmapping * const, const SCOTCH_Arch * const, SCOTCH_Num * const); void SCOTCH_dgraphMapExit (const SCOTCH_Dgraph * const, SCOTCH_Dmapping * const); int SCOTCH_dgraphMapSave (const SCOTCH_Dgraph * const, const SCOTCH_Dmapping * const, FILE * const); int SCOTCH_dgraphMapStat (SCOTCH_Dgraph * const, const SCOTCH_Dmapping * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num [256], SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_dgraphMapView (SCOTCH_Dgraph * const, const SCOTCH_Dmapping * const, FILE * const); int SCOTCH_dgraphMapCompute (SCOTCH_Dgraph * const, SCOTCH_Dmapping * const, SCOTCH_Strat * const); int SCOTCH_dgraphMap (SCOTCH_Dgraph * const, const SCOTCH_Arch * const, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_dgraphPart (SCOTCH_Dgraph * const, const SCOTCH_Num, SCOTCH_Strat * const, SCOTCH_Num * const); int SCOTCH_dgraphCorderInit (const SCOTCH_Dgraph * const, SCOTCH_Ordering * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_dgraphCorderExit (const SCOTCH_Dgraph * const, SCOTCH_Ordering * const); int SCOTCH_dgraphOrderInit (const SCOTCH_Dgraph * const, SCOTCH_Dordering * const); void SCOTCH_dgraphOrderExit (const SCOTCH_Dgraph * const, SCOTCH_Dordering * const); int SCOTCH_dgraphOrderSave (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, FILE * const); int SCOTCH_dgraphOrderSaveBlock (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, FILE * const); int SCOTCH_dgraphOrderSaveMap (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, FILE * const); int SCOTCH_dgraphOrderSaveTree (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, FILE * const); int SCOTCH_dgraphOrderPerm (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, SCOTCH_Num * const); SCOTCH_Num SCOTCH_dgraphOrderCblkDist (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const); int SCOTCH_dgraphOrderTreeDist (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCH_dgraphOrderCompute (SCOTCH_Dgraph * const, SCOTCH_Dordering * const, SCOTCH_Strat * const); int SCOTCH_dgraphOrderComputeList (SCOTCH_Dgraph * const, SCOTCH_Dordering * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Strat * const); int SCOTCH_dgraphOrderGather (const SCOTCH_Dgraph * const, const SCOTCH_Dordering * const, SCOTCH_Ordering * const); SCOTCH_Dmapping * SCOTCH_dmapAlloc (void); int SCOTCH_dmapSizeof (void); SCOTCH_Dmesh * SCOTCH_dmeshAlloc (void); int SCOTCH_dmeshSizeof (void); int SCOTCH_dmeshInit (SCOTCH_Dmesh * const, MPI_Comm); void SCOTCH_dmeshExit (SCOTCH_Dmesh * const); void SCOTCH_dmeshFree (SCOTCH_Dmesh * const); void SCOTCH_dmeshSize (const SCOTCH_Dmesh * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); void SCOTCH_dmeshData (const SCOTCH_Dmesh * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCH_dmeshBuildAdm (SCOTCH_Dmesh * const, const SCOTCH_Num, const SCOTCH_Num, SCOTCH_Num * const, const SCOTCH_Num, SCOTCH_Num * const, const SCOTCH_Num); int SCOTCH_dmeshDgraphDual (const SCOTCH_Dmesh * const, SCOTCH_Dgraph * const, const SCOTCH_Num); int SCOTCH_dmeshLoad (SCOTCH_Dmesh * const, FILE * const, const SCOTCH_Num, const SCOTCH_Num); SCOTCH_Dordering * SCOTCH_dorderAlloc (void); int SCOTCH_dorderSizeof (void); int SCOTCH_stratDgraphMap (SCOTCH_Strat * const, const char * const); int SCOTCH_stratDgraphMapBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const double); int SCOTCH_stratDgraphClusterBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const double, const double); int SCOTCH_stratDgraphOrder (SCOTCH_Strat * const, const char * const); int SCOTCH_stratDgraphOrderBuild (SCOTCH_Strat * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const double); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* PTSCOTCH_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_pt_f.h000066400000000000000000000163261514310134000265520ustar00rootroot00000000000000!* Copyright 2004,2007,2009,2010,2012,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS !* !* This file is part of the Scotch software package for static mapping, !* graph partitioning and sparse matrix ordering. !* !* This software is governed by the CeCILL-C license under French law !* and abiding by the rules of distribution of free software. You can !* use, modify and/or redistribute the software under the terms of the !* CeCILL-C license as circulated by CEA, CNRS and INRIA at the following !* URL: "http://www.cecill.info". !* !* As a counterpart to the access to the source code and rights to copy, !* modify and redistribute granted by the license, users are provided !* only with a limited warranty and the software's author, the holder of !* the economic rights, and the successive licensors have only limited !* liability. !* !* In this respect, the user's attention is drawn to the risks associated !* with loading, using, modifying and/or developing or reproducing the !* software by the user in light of its specific status of free software, !* that may mean that it is complicated to manipulate, and that also !* therefore means that it is reserved for developers and experienced !* professionals having in-depth computer knowledge. Users are therefore !* encouraged to load and test the software's suitability as regards !* their requirements in conditions enabling the security of their !* systems and/or data to be ensured and, more generally, to use and !* operate it in the same conditions as regards security. !* !* The fact that you are presently reading this means that you have had !* knowledge of the CeCILL-C license and that you accept its terms. !* !*********************************************************** !* ** !* NAME : library_pt_f.h ** !* ** !* AUTHOR : Francois PELLEGRINI ** !* ** !* FUNCTION : FORTRAN declaration file for the ** !* LibPtscotch parallel static mapping and ** !* sparse matrix block ordering sequential ** !* library. ** !* ** !* DATES : # Version 3.4 : from : 04 feb 2000 ** !* to : 22 oct 2001 ** !* # Version 4.0 : from : 16 jan 2004 ** !* to : 16 jan 2004 ** !* # Version 5.0 : from : 26 apr 2006 ** !* to : 26 apr 2006 ** !* # Version 5.1 : from : 26 mar 2009 ** !* to : 12 feb 2011 ** !* # Version 6.0 : from : 22 oct 2011 ** !* to : 27 nov 2012 ** !* # Version 7.0 : from : 28 jul 2024 ** !* to : 29 aug 2025 ** !* ** !*********************************************************** !* Size definitions for the SCOTCH integer !* and index types. INTEGER SCOTCH_IDXSIZE INTEGER SCOTCH_NUMSIZE PARAMETER (SCOTCH_IDXSIZE = DUMMYSIZEBYTEIDX) PARAMETER (SCOTCH_NUMSIZE = DUMMYSIZEBYTENUM) !* Flag definitions for the context options INTEGER SCOTCH_OPTIONNUMDETERMINISTIC INTEGER SCOTCH_OPTIONNUMRANDOMFIXEDSEED INTEGER SCOTCH_OPTIONNUMNBR PARAMETER (SCOTCH_OPTIONNUMDETERMINISTIC = 0) PARAMETER (SCOTCH_OPTIONNUMRANDOMFIXEDSEED = 1) PARAMETER (SCOTCH_OPTIONNUMNBR = 2) !* Flag definitions for the coarsening !* routines. INTEGER SCOTCH_COARSENNOMERGE PARAMETER (SCOTCH_COARSENNOMERGE = 16384) !* Flag definitions for the strategy !* string selection routines. INTEGER SCOTCH_STRATDEFAULT INTEGER SCOTCH_STRATQUALITY INTEGER SCOTCH_STRATSPEED INTEGER SCOTCH_STRATBALANCE INTEGER SCOTCH_STRATSAFETY INTEGER SCOTCH_STRATSCALABILITY INTEGER SCOTCH_STRATRECURSIVE INTEGER SCOTCH_STRATREMAP INTEGER SCOTCH_STRATLEVELMAX INTEGER SCOTCH_STRATLEVELMIN INTEGER SCOTCH_STRATLEAFSIMPLE INTEGER SCOTCH_STRATSEPASIMPLE INTEGER SCOTCH_STRATDISCONNECTED PARAMETER (SCOTCH_STRATDEFAULT = 0) PARAMETER (SCOTCH_STRATQUALITY = 1) PARAMETER (SCOTCH_STRATSPEED = 2) PARAMETER (SCOTCH_STRATBALANCE = 4) PARAMETER (SCOTCH_STRATSAFETY = 8) PARAMETER (SCOTCH_STRATSCALABILITY = 16) PARAMETER (SCOTCH_STRATRECURSIVE = 256) PARAMETER (SCOTCH_STRATREMAP = 512) PARAMETER (SCOTCH_STRATLEVELMAX = 4096) PARAMETER (SCOTCH_STRATLEVELMIN = 8192) PARAMETER (SCOTCH_STRATLEAFSIMPLE = 16384) PARAMETER (SCOTCH_STRATSEPASIMPLE = 32768) PARAMETER (SCOTCH_STRATDISCONNECTED = 65536) !* Size definitions for the SCOTCH opaque !* structures. These structures must be !* allocated as arrays of DOUBLEPRECISION !* values for proper padding. The dummy !* sizes are computed at compile-time by !* program "dummysizes". INTEGER SCOTCH_ARCHDIM INTEGER SCOTCH_ARCHDOMDIM INTEGER SCOTCH_CONTEXTDIM INTEGER SCOTCH_DGRAPHDIM INTEGER SCOTCH_DGRAPHHALOREQDIM INTEGER SCOTCH_DMAPDIM INTEGER SCOTCH_DMESHDIM INTEGER SCOTCH_DORDERDIM INTEGER SCOTCH_GEOMDIM INTEGER SCOTCH_GRAPHDIM INTEGER SCOTCH_MAPDIM INTEGER SCOTCH_MESHDIM INTEGER SCOTCH_ORDERDIM INTEGER SCOTCH_STRATDIM PARAMETER (SCOTCH_ARCHDIM = DUMMYSIZEARCH) PARAMETER (SCOTCH_ARCHDOMDIM = DUMMYSIZEARCHDOM) PARAMETER (SCOTCH_CONTEXTDIM = DUMMYSIZECONTEXT) PARAMETER (SCOTCH_DGRAPHDIM = DUMMYSIZEDGRAPH) PARAMETER (SCOTCH_DGRAPHHALOREQDIM = DUMMYSIZEDGRAPHHALOREQ) PARAMETER (SCOTCH_DMAPDIM = DUMMYSIZEDMAP) PARAMETER (SCOTCH_DMESHDIM = DUMMYSIZEDMESH) PARAMETER (SCOTCH_DORDERDIM = DUMMYSIZEDORDER) PARAMETER (SCOTCH_GEOMDIM = DUMMYSIZEGEOM) PARAMETER (SCOTCH_GRAPHDIM = DUMMYSIZEGRAPH) PARAMETER (SCOTCH_MAPDIM = DUMMYSIZEMAP) PARAMETER (SCOTCH_MESHDIM = DUMMYSIZEMESH) PARAMETER (SCOTCH_ORDERDIM = DUMMYSIZEORDER) PARAMETER (SCOTCH_STRATDIM = DUMMYSIZESTRAT) !* Flag definitions for the !* SCOTCH_dgraphBuildGrid3D() routine. INTEGER SCOTCH_DGRAPHBUILDGRID3DGRID INTEGER SCOTCH_DGRAPHBUILDGRID3DTORUS INTEGER SCOTCH_DGRAPHBUILDGRID3DNGB6 INTEGER SCOTCH_DGRAPHBUILDGRID3DNGB26 INTEGER SCOTCH_DGRAPHBUILDGRID3DVERTLOAD INTEGER SCOTCH_DGRAPHBUILDGRID3DEDGELOAD PARAMETER (SCOTCH_DGRAPHBUILDGRID3DGRID = 0) PARAMETER (SCOTCH_DGRAPHBUILDGRID3DTORUS = 2) PARAMETER (SCOTCH_DGRAPHBUILDGRID3DNGB6 = 0) PARAMETER (SCOTCH_DGRAPHBUILDGRID3DNGB26 = 1) PARAMETER (SCOTCH_DGRAPHBUILDGRID3DVERTLOAD = 4) PARAMETER (SCOTCH_DGRAPHBUILDGRID3DEDGELOAD = 8) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_random.c000066400000000000000000000112401514310134000270630ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2014,2016,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_random.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the API for the random **/ /** generator control routine. **/ /** **/ /** DATES : # Version 4.0 : from : 15 jan 2005 **/ /** to : 15 jun 2005 **/ /** # Version 6.0 : from : 08 oct 2012 **/ /** to : 19 mar 2016 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* the random handling routines. */ /* */ /************************************/ /*+ This routine loads a random state. *** It returns: *** - 0 : if state successfully loaded. *** - 1 : state cannot be loaded. *** - 2 : on error. +*/ int SCOTCH_randomLoad ( FILE * stream) { return (intRandLoad (&intranddat, stream)); } /*+ This routine saves the random state. *** It returns: *** - 0 : if state successfully saved. *** - 1 : state cannot be saved. *** - 2 : on error. +*/ int SCOTCH_randomSave ( FILE * stream) { return (intRandSave (&intranddat, stream)); } /*+ This routine sets the process number that *** is used to generate a different seed across *** all processes. *** It returns: *** - void : in all cases. +*/ void SCOTCH_randomProc ( int procnum) { intRandProc (&intranddat, procnum); } /*+ This routine resets the random generator *** to simulate a start from scratch. *** It returns: *** - void : in all cases. +*/ void SCOTCH_randomReset () { intRandInit (&intranddat); /* In case it was not initialized through a context */ intRandReset (&intranddat); } /*+ This routine sets the value of the *** random seed. *** It returns: *** - void : in all cases. +*/ void SCOTCH_randomSeed ( SCOTCH_Num seedval) { intRandSeed (&intranddat, seedval); } /*+ This routine returns a pseudo-random integer *** value in the range [0..randmax[. This routine *** is not thread-safe as it uses a global state *** variable. *** It returns: *** - x : pseudo-random number, in all cases. +*/ SCOTCH_Num SCOTCH_randomVal ( SCOTCH_Num randmax) { return ((SCOTCH_Num) intRandVal (&intranddat, (UINT) randmax)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_random_f.c000066400000000000000000000135511514310134000273770ustar00rootroot00000000000000/* Copyright 2004,2007,2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_random_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** the random generator handling routines **/ /** of the libSCOTCH library. **/ /** **/ /** DATES : # Version 4.0 : from : 21 nov 2005 **/ /** to : 23 nov 2005 **/ /** # Version 6.0 : from : 08 oct 2012 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 15 sep 2019 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the random handling routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ RANDOMLOAD, randomload, ( \ int * const fileptr, \ int * const revaptr), \ (fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (RANDOMLOAD)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "r")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (RANDOMLOAD)) ": cannot open input stream"); close (filenum); *revaptr = 1; return; } setbuf (stream, NULL); /* Do not buffer on input */ o = SCOTCH_randomLoad (stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ RANDOMSAVE, randomsave, ( \ int * const fileptr, \ int * const revaptr), \ (fileptr, revaptr)) { FILE * stream; /* Stream to build from handle */ int filenum; /* Duplicated handle */ int o; if ((filenum = dup (*fileptr)) < 0) { /* If cannot duplicate file descriptor */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (RANDOMSAVE)) ": cannot duplicate handle"); *revaptr = 1; /* Indicate error */ return; } if ((stream = fdopen (filenum, "w")) == NULL) { /* Build stream from handle */ errorPrint (STRINGIFY (SCOTCH_NAME_PUBLICFU (RANDOMSAVE)) ": cannot open output stream"); close (filenum); *revaptr = 1; return; } o = SCOTCH_randomSave (stream); fclose (stream); /* This closes filenum too */ *revaptr = o; } /* ** */ SCOTCH_FORTRAN ( \ RANDOMPROC, randomproc, ( \ const int * const procnum), \ (procnum)) { SCOTCH_randomProc (*procnum); } /* ** */ SCOTCH_FORTRAN ( \ RANDOMRESET, randomreset, (), \ ()) { SCOTCH_randomReset (); } /* ** */ SCOTCH_FORTRAN ( \ RANDOMSEED, randomseed, ( \ const SCOTCH_Num * const seedptr), \ (seedptr)) { SCOTCH_randomSeed (*seedptr); } /* ** */ SCOTCH_FORTRAN ( \ RANDOMVAL, randomval, ( \ const SCOTCH_Num * const randmax, \ SCOTCH_Num * const revaptr), \ (randmax, revaptr)) { *revaptr = SCOTCH_randomVal (*randmax); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_strat.c000066400000000000000000000071111514310134000267420ustar00rootroot00000000000000/* Copyright 2010,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_strat.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains miscellaneous **/ /** routines for handling strategy **/ /** strings. **/ /** **/ /** DATES : # Version 5.1 : from : 17 nov 2010 **/ /** to : 17 nov 2010 **/ /** # Version 6.1 : from : 15 mar 2021 **/ /** to : 15 mar 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /*****************************************/ /* */ /* These routines are the C API for */ /* ordering structure handling routines. */ /* */ /*****************************************/ /*+ This routine reserves a memory area *** of a size sufficient to store a *** distributed ordering structure. *** It returns: *** - !NULL : if the allocation succeeded. *** - NULL : on error. +*/ SCOTCH_Strat * SCOTCH_stratAlloc () { return ((SCOTCH_Strat *) memAlloc (sizeof (SCOTCH_Strat))); } /*+ This routine returns the size, in bytes, *** of a SCOTCH_Strat structure. *** It returns: *** - > 0 : in all cases. +*/ int SCOTCH_stratSizeof () { return (sizeof (SCOTCH_Strat)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_version.c000066400000000000000000000066431514310134000273030ustar00rootroot00000000000000/* Copyright 2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_version.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains miscellaneous **/ /** routines for handling API- and **/ /** version-related routines in the **/ /** libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 16 nov 2010 **/ /** to : 16 nov 2010 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /************************************/ /* */ /* These routines are the C API for */ /* miscellaneous routines. */ /* */ /************************************/ /*+ This routine returns the version, *** release and patchlevel numbers of *** the library being used (useful for *** dynamic libraries). *** It returns: *** - void : in all cases. +*/ void SCOTCH_version ( int * const versptr, int * const relaptr, int * const patcptr) { *versptr = SCOTCH_VERSION_NUM; *relaptr = SCOTCH_RELEASE_NUM; *patcptr = SCOTCH_PATCHLEVEL_NUM; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/library_version_f.c000066400000000000000000000065511514310134000276060ustar00rootroot00000000000000/* Copyright 2010,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_version_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API for **/ /** handling API- and version-related **/ /** routines in the libSCOTCH library. **/ /** **/ /** DATES : # Version 5.1 : from : 16 nov 2010 **/ /** to : 16 nov 2010 **/ /** # Version 6.0 : from : 20 apr 2018 **/ /** to : 25 apr 2018 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" /**************************************/ /* */ /* These routines are the Fortran API */ /* for the version-related routines. */ /* */ /**************************************/ /* ** */ SCOTCH_FORTRAN ( \ VERSION, version, ( \ int * const versptr, \ int * const relaptr, \ int * const patcptr), \ (versptr, relaptr, patcptr)) { SCOTCH_version (versptr, relaptr, patcptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mapping.c000066400000000000000000000450631514310134000255240ustar00rootroot00000000000000/* Copyright 2004,2007-2009,2011,2012,2014,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mapping.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles (partial) mappings. **/ /** **/ /** DATES : # Version 0.0 : from : 31 mar 1993 **/ /** to : 31 mar 1993 **/ /** # Version 1.0 : from : 04 oct 1993 **/ /** to : 06 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 11 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 17 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 19 oct 1995 **/ /** # Version 3.1 : from : 30 oct 1995 **/ /** to : 14 jun 1996 **/ /** # Version 3.2 : from : 23 aug 1996 **/ /** to : 07 sep 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 3.4 : from : 11 sep 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 16 jan 2004 **/ /** to : 05 jan 2005 **/ /** # Version 5.1 : from : 25 jun 2008 **/ /** to : 28 apr 2009 **/ /** # Version 6.0 : from : 04 mar 2011 **/ /** to : 26 fev 2018 **/ /** # Version 7.0 : from : 15 jul 2021 **/ /** to : 19 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" /***********************************/ /* */ /* These routines handle mappings. */ /* */ /***********************************/ /* This routine builds a mapping. ** It returns: ** - 0 : if mapping successfully initialized. ** - !0 : on error. */ void mapInit ( Mapping * restrict const mappptr, /*+ Mapping structure +*/ const Graph * restrict const grafptr, /*+ Graph data +*/ const Arch * restrict const archptr, /*+ Architecture data +*/ const ArchDom * restrict const domnptr) /*+ Target architecture initial domain +*/ { Anum domnmax; /* Maximum number of domains */ domnmax = (archVar (archptr) != 0) /* If target architecture is variable-sized */ ? MIN (1023, grafptr->vertnbr) /* Pre-set number of domains */ : archDomSize (archptr, domnptr); /* Else get architecture size */ domnmax ++; /* +1 for empty domain in mapBuild()/mapLoad() */ mapInit2 (mappptr, grafptr, archptr, domnmax, 0); } void mapInit2 ( Mapping * restrict const mappptr, /*+ Mapping structure +*/ const Graph * restrict const grafptr, /*+ Graph data +*/ const Arch * restrict const archptr, /*+ Architecture data +*/ const Anum domnmax, /*+ Size of domain array +*/ const Anum domnnbr) /*+ Current number of domains in domain array +*/ { mappptr->flagval = MAPPINGNONE; mappptr->grafptr = grafptr; mappptr->archptr = archptr; mappptr->parttax = NULL; mappptr->domntab = NULL; mappptr->domnnbr = domnnbr; mappptr->domnmax = domnmax; } /* This routine allocates the contents of a mapping. ** It returns: ** - 0 : if mapping successfully allocated. ** - !0 : on error. */ int mapAlloc ( Mapping * restrict const mappptr) /*+ Mapping structure to fill +*/ { if (mappptr->parttax == NULL) { /* If part array not yet allocated */ Anum * restrict parttab; if ((parttab = (Anum *) memAlloc (mappptr->grafptr->vertnbr * sizeof (Anum))) == NULL) { errorPrint ("mapAlloc: out of memory (1)"); return (1); } mappptr->flagval |= MAPPINGFREEPART; /* Part array is locally owned */ mappptr->parttax = parttab - mappptr->grafptr->baseval; } #ifdef SCOTCH_DEBUG_MAP2 memSet (mappptr->parttax + mappptr->grafptr->baseval, ~0, mappptr->grafptr->vertnbr * sizeof (Anum)); /* Pre-set part array anyway */ #endif /* SCOTCH_DEBUG_MAP2 */ if (mappptr->domntab == NULL) { /* If domain array not yet allocated */ if ((mappptr->domntab = (ArchDom *) memAlloc (mappptr->domnmax * sizeof (ArchDom))) == NULL) { errorPrint ("mapAlloc: out of memory (2)"); return (1); } mappptr->flagval |= MAPPINGFREEDOMN; } return (0); } /* This routine resizes the domain array of a ** mapping and preserves its existing contents. ** It returns: ** - 0 : if mapping successfully allocated. ** - !0 : on error. */ int mapResize ( Mapping * restrict const mappptr, /*+ Mapping structure to fill +*/ const Anum domnmax) { ArchDom * domntab; if (mappptr->domntab != NULL) { if ((domntab = memRealloc (mappptr->domntab, domnmax * sizeof (ArchDom))) == NULL) { /* Reallocate domain array */ errorPrint ("mapResize: out of memory"); return (1); } mappptr->domntab = domntab; } mappptr->domnmax = domnmax; return (0); } /* This routine builds an initial mapping. ** It returns: ** - void : in all cases. */ void mapFrst ( Mapping * restrict const mappptr, /*+ Mapping structure to fill +*/ const ArchDom * restrict const domnptr) /*+ Initial (sub)domain +*/ { mappptr->domnnbr = 1; /* One domain in mapping to date */ mappptr->domntab[0] = *domnptr; /* Set initial domain */ memSet (mappptr->parttax + mappptr->grafptr->baseval, 0, mappptr->grafptr->vertnbr * sizeof (Anum)); /* Set parttax to first domain */ } /* This routine frees the contents ** of the given mapping. ** It returns: ** - void : in all cases. */ void mapFree ( Mapping * const mappptr) { if (((mappptr->flagval & MAPPINGFREEPART) != 0) && /* If parttax must be freed */ (mappptr->parttax != NULL)) /* And if exists */ memFree (mappptr->parttax + mappptr->grafptr->baseval); /* Free it */ if (((mappptr->flagval & MAPPINGFREEDOMN) != 0) && /* If domntab must be freed */ (mappptr->domntab != NULL)) /* And if exists */ memFree (mappptr->domntab); /* Free it */ #ifdef SCOTCH_DEBUG_MAP2 mappptr->parttax = NULL; mappptr->domntab = NULL; #endif /* SCOTCH_DEBUG_MAP2 */ } /* This routine frees the contents ** of the given mapping. ** It returns: ** - void : in all cases. */ void mapExit ( Mapping * const mappptr) { mapFree (mappptr); #ifdef SCOTCH_DEBUG_MAP2 memSet (mappptr, ~0, sizeof (Mapping)); #endif /* SCOTCH_DEBUG_MAP2 */ } /* This routine copies a mapping onto another. ** It returns: ** - 0 : if mapping successfully copied. ** - !0 : on error. */ int mapCopy ( Mapping * restrict const mappptr, /*+ Mapping to set +*/ const Mapping * restrict const mapoptr) /*+ Old mapping +*/ { const Gnum baseval = mapoptr->grafptr->baseval; const Anum domnnbr = mapoptr->domnnbr; #ifdef SCOTCH_DEBUG_MAP2 if (mappptr->grafptr != mapoptr->grafptr) { errorPrint ("mapCopy: mappings do not correspond to same graph"); return (1); } #endif /* SCOTCH_DEBUG_MAP2 */ if (mappptr->domntab != NULL) { if (domnnbr > mappptr->domnmax) { /* If we have to resize domain array */ if (mapResize (mappptr, domnnbr) != 0) { /* Resize it */ errorPrint ("mapCopy: cannot resize mapping arrays"); return (1); } } } else { mappptr->domnmax = domnnbr; if (mapAlloc (mappptr) != 0) { /* Do not fill array if incomplete mapping, as it will be copied */ errorPrint ("mapCopy: cannot allocate mapping arrays"); return (1); } } mappptr->flagval |= mapoptr->flagval & MAPPINGINCOMPLETE; /* Preserve incomplete mapping flag */ mappptr->domnnbr = domnnbr; /* Copy domain and mapping data */ memCpy (mappptr->domntab, mapoptr->domntab, domnnbr * sizeof (ArchDom)); memCpy (mappptr->parttax + baseval, mapoptr->parttax + baseval, mapoptr->grafptr->vertnbr * sizeof (Anum)); return (0); } /* This routine builds a mapping from a ** terminal domain partition array. ** It returns: ** - 0 : if mapping successfully filled. ** - !0 : on error. */ static int mapBuild2 ( Mapping * restrict const mappptr, /*+ Mapping to set +*/ MappingHash * restrict * const hashtabptr, /*+ Pointer to hash table to set up +*/ Gnum * const hashsizptr) /*+ Size of hash table +*/ { ArchDom domndat; MappingHash * hashtab; Gnum hashnbr; /* Prospective number of cells in table */ Gnum hashsiz; /* Size of hash table */ const Arch * restrict const archptr = mappptr->archptr; #ifdef SCOTCH_DEBUG_MAP2 if (mappptr->domnmax < 1) { errorPrint ("mapBuild2: domain array is too small"); return (1); } #endif /* SCOTCH_DEBUG_MAP2 */ archDomFrst (archptr, &domndat); hashnbr = (archVar (archptr) == 0) /* If fixed size architecture */ ? archDomSize (archptr, &domndat) /* Get maximum size of distinct terminal domains */ : mappptr->grafptr->vertnbr; /* Else take upper bound as number of vertices */ hashnbr ++; /* Add one extra slot for unknown terminal domain */ for (hashsiz = 32; hashsiz < hashnbr; hashsiz <<= 1) ; /* Get upper power of two */ hashsiz <<= 2; /* Fill hash table at 25% maximum */ if ((hashtab = (MappingHash *) memAlloc (hashsiz * sizeof (MappingHash))) == NULL) { errorPrint ("mapBuild2: out of memory"); return (1); } memSet (hashtab, ~0, hashsiz * sizeof (MappingHash)); /* Set all vertex numbers to ~0 */ *hashtabptr = hashtab; *hashsizptr = hashsiz; return (0); } static int mapBuild3 ( Mapping * restrict const mappptr, /*+ Mapping to fill +*/ MappingHash * restrict const hashtab, /*+ Hash table +*/ const Gnum hashsiz, /*+ Hash table size +*/ const Anum * restrict const termtax) /*+ Terminal array to load +*/ { ArchDom * restrict domntab; Anum domnnbr; Anum domnmax; Gnum hashmsk; Gnum vertnnd; Gnum vertnum; int o; const Arch * restrict const archptr = mappptr->archptr; Anum * restrict const parttax = mappptr->parttax; o = 1; /* Assume loop will fail */ hashmsk = hashsiz - 1; domntab = mappptr->domntab; domnnbr = mappptr->domnnbr; domnmax = mappptr->domnmax; for (vertnum = mappptr->grafptr->baseval, vertnnd = mappptr->grafptr->vertnnd; vertnum < vertnnd; vertnum ++) { Gnum hashnum; Anum termnum; Anum domnnum; termnum = termtax[vertnum]; if (termnum == ~0) /* If unknown part, skip it */ continue; for (hashnum = (termnum * MAPPINGHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].termnum == termnum) { /* If hash slot found */ domnnum = hashtab[hashnum].domnnum; /* Domain number found */ break; } if (hashtab[hashnum].termnum == ~0) { /* If hash slot empty */ hashtab[hashnum].termnum = termnum; /* Create slot */ hashtab[hashnum].domnnum = domnnbr; if (domnnbr == domnmax) { domnmax += (domnmax >> 2) + 8; /* Increase size by 25% */ if (mapResize (mappptr, domnmax) != 0) goto fail; domntab = mappptr->domntab; /* Re-read pointer in case it changed */ } archDomTerm (archptr, &domntab[domnnbr], termnum); /* Create slot with terminal number domain */ domnnum = domnnbr ++; /* Get position of new slot; one more slot created */ break; } } parttax[vertnum] = domnnum; /* Refer to the proper domain */ } o = 0; /* Success */ fail: mappptr->domnnbr = domnnbr; /* Set updated number of domains */ memFree (hashtab); /* Free hash table */ return (o); } int mapBuild ( Mapping * restrict const mappptr, /*+ Mapping to set +*/ const Anum * restrict const termtax) /*+ Terminal array to load +*/ { MappingHash * restrict hashtab; Gnum hashsiz; /* Size of hash table */ if (mapBuild2 (mappptr, &hashtab, &hashsiz) != 0) return (1); return (mapBuild3 (mappptr, hashtab, hashsiz, termtax)); } /* This routine updates a mapping with a ** terminal domain partition array. ** It returns: ** - 0 : if mapping successfully updated. ** - !0 : on error. */ int mapMerge ( Mapping * restrict const mappptr, /*+ Mapping to set +*/ const Anum * restrict const termtab) /*+ Terminal array to load +*/ { MappingHash * restrict hashtab; Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; Anum domnnbr; Anum domnnum; const Arch * restrict const archptr = mappptr->archptr; const ArchDom * restrict const domntab = mappptr->domntab; if (mapBuild2 (mappptr, &hashtab, &hashsiz) != 0) return (1); hashmsk = hashsiz - 1; for (domnnum = 0, domnnbr = mappptr->domnnbr; domnnum < domnnbr; domnnum ++) { const ArchDom * domnptr; Gnum hashnum; Anum termnum; domnptr = &domntab[domnnum]; if (archDomSize (archptr, domnptr) != 1) /* If domain is not terminal, skip it */ continue; termnum = archDomNum (archptr, domnptr); for (hashnum = (termnum * MAPPINGHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { /* Fill hash table with existing domains */ #ifdef SCOTCH_DEBUG_MAP2 if (hashtab[hashnum].termnum == termnum) { /* If hash slot found */ errorPrint ("mapMerge: internal error"); /* Multiple domains with same terminal number */ return (1); } #endif /* SCOTCH_DEBUG_MAP2 */ if (hashtab[hashnum].termnum == ~0) { /* If hash slot empty */ hashtab[hashnum].termnum = termnum; /* Create slot */ hashtab[hashnum].domnnum = domnnum; break; } } } return (mapBuild3 (mappptr, hashtab, hashsiz, termtab)); /* Add new domains to existing domain array */ } /* This routine propagates back mapping ** information to a terminal part array. ** It returns: ** - void : in all cases. */ void mapTerm ( const Mapping * restrict const mappptr, Anum * restrict const termtax) { Gnum vertnnd; Gnum vertnum; const Arch * restrict const archptr = mappptr->archptr; const ArchDom * restrict const domntab = mappptr->domntab; const Anum * restrict const parttax = mappptr->parttax; vertnum = mappptr->grafptr->baseval; if (domntab != NULL) { for (vertnnd = mappptr->grafptr->vertnnd; vertnum < vertnnd; vertnum ++) termtax[vertnum] = archDomNum (archptr, &domntab[parttax[vertnum]]); } else memSet (termtax + vertnum, ~0, mappptr->grafptr->vertnbr * sizeof (Anum)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mapping.h000066400000000000000000000206711514310134000255270ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mapping.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the mapping handling routines. **/ /** **/ /** DATES : # Version 0.0 : from : 15 dec 1992 **/ /** to : 01 apr 1993 **/ /** # Version 1.0 : from : 04 oct 1993 **/ /** to : 06 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 11 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 02 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 04 jul 1995 **/ /** # Version 3.1 : from : 30 oct 1995 **/ /** to : 06 jun 1996 **/ /** # Version 3.2 : from : 23 aug 1996 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 13 nov 2005 **/ /** # Version 5.1 : from : 25 jun 2008 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 19 jul 2021 **/ /** to : 17 jul 2024 **/ /** **/ /** NOTES : # While Anum and Gnum are different **/ /** types, because architectures are **/ /** most often much smaller than **/ /** than graphs and require smaller **/ /** integer ranges, for interface **/ /** consistency reasons as well as for **/ /** variable-sized architecture handling, **/ /** they will always amount to the same **/ /** type. **/ /** **/ /************************************************************/ #define MAPPING_H /* ** The defines. */ /*+ Prime number for hashing terminal domain numbers. +*/ #define MAPPINGHASHPRIME 17 /*+ Prime number for hashing +*/ /*+ Graph option flags. +*/ #define MAPPINGNONE 0x0000 /* No options set */ #define MAPPINGINCOMPLETE 0x0001 /* Incomplete mapping */ #define MAPPINGFREEDOMN 0x0002 /* Free domain array */ #define MAPPINGFREEPART 0x0004 /* Free partition array */ /* ** The type definitions. */ /*+ This structure defines an (eventually partial) mapping of a source graph to a target architecture. +*/ typedef struct Mapping_ { int flagval; /*+ Mapping properties +*/ const Graph * grafptr; /*+ Graph data +*/ const Arch * archptr; /*+ Architecture data +*/ Anum * parttax; /*+ Mapping array [vertnbr] +*/ ArchDom * domntab; /*+ Array of domains [domnmax] +*/ Anum domnnbr; /*+ Current number of domains +*/ Anum domnmax; /*+ Maximum number of domains +*/ #ifdef SCOTCH_PTHREAD pthread_mutex_t mutedat; /*+ Local mutex for updates +*/ #endif /* SCOTCH_PTHREAD */ } Mapping; /*+ The target architecture sort structure, used to sort vertices by increasing label value. +*/ typedef struct MappingHash_ { Anum termnum; /*+ Terminal vertex number +*/ Anum domnnum; /*+ Domain number +*/ } MappingHash; /*+ The target architecture sort structure, used to sort vertices by increasing label value. +*/ typedef struct MappingSort_ { Anum labl; /*+ Target architecture vertex label +*/ Anum peri; /*+ Inverse permutation +*/ } MappingSort; /* ** The function prototypes. */ void mapInit (Mapping * restrict const, const Graph * restrict const, const Arch * restrict const, const ArchDom * restrict const); void mapInit2 (Mapping * restrict const, const Graph * restrict const, const Arch * restrict const, const Anum, const Anum); void mapExit (Mapping * const); int mapAlloc (Mapping * const); void mapFree (Mapping * const); int mapResize (Mapping * restrict const, const Anum); int mapCheck (const Mapping * const); int mapCopy (Mapping * const, const Mapping * const); void mapFrst (Mapping * const, const ArchDom * const domnptr); int mapBuild (Mapping * restrict const, const Anum * restrict const); int mapMerge (Mapping * restrict const, const Anum * restrict const); void mapTerm (const Mapping * restrict const, Anum * restrict const); int mapLoad (Mapping * restrict const, const Gnum * restrict const, FILE * restrict const); int mapSave (const Mapping * restrict const, FILE * restrict const); int mapView (const Mapping * restrict const, const Graph * restrict const, FILE * const); /* ** The macro definitions. */ #define mapDomain(map,idx) (&((map)->domntab[(map)->parttax[(idx)]])) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mapping_check.c000066400000000000000000000126641514310134000266620ustar00rootroot00000000000000/* Copyright 2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mapping_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the mapping **/ /** checking function. **/ /** **/ /** DATES : # Version 7.0 : from : 17 jul 2024 **/ /** to : 17 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" /***********************************/ /* */ /* These routines handle mappings. */ /* */ /***********************************/ /* This routine checks the consistency ** of the given mapping. ** It returns: ** - 0 : if mapping data are consistent. ** - !0 : on error. */ int mapCheck ( const Mapping * const mappptr) { int mincval; /* Flag set if mapping incomplete */ const Anum * restrict parttax; const Arch * restrict archptr; const ArchDom * restrict domntab; ArchDom domnorg; /* Initial domain for the architecture */ Anum domnmax; Anum domnnbr; Anum domnnum; Gnum baseval; Gnum vertnnd; Gnum vertnum; if ((mappptr->grafptr == NULL) && /* If empty mapping */ (mappptr->archptr == NULL)) return (0); if ((mappptr->grafptr == NULL) || /* If incomplete mapping initialization */ (mappptr->archptr == NULL)) { errorPrint ("mapCheck: inconsistent array data (1)"); return (1); } archptr = mappptr->archptr; domnnbr = mappptr->domnnbr; domnmax = mappptr->domnmax; if ((domnmax < 0) || (domnmax < domnnbr)) { errorPrint ("mapCheck: invalid domain numbers"); return (1); } if (domnnbr == 0) /* If nothing to do */ return (0); parttax = mappptr->parttax; domntab = mappptr->domntab; if (parttax == NULL) { /* Partition array should have been allocated */ errorPrint ("mapCheck: inconsistent array data (2)"); return (1); } if (domntab == NULL) { /* Domain array should have been allocated */ errorPrint ("mapCheck: inconsistent array data (3)"); return (1); } mincval = mappptr->flagval & MAPPINGINCOMPLETE; /* Check if mapping may be incomplete */ baseval = mappptr->grafptr->baseval; vertnnd = mappptr->grafptr->vertnnd; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { Anum domnnum; domnnum = parttax[vertnum]; if ((domnnum >= domnnbr) || /* If domain number is too big */ ((domnnum < 0) && /* Or if it is too small and then */ ((domnnum != -1) || (mincval == 0)))) { /* If not equal to -1 for incomplete mappings */ errorPrint ("mapCheck: invalid part array"); return (1); } } archDomFrst (archptr, &domnorg); /* Get initial domain for the architecture */ for (domnnum = 0; domnnum < domnnbr; domnnum ++) { if (archDomIncl (archptr, &domnorg, &domntab[domnnum]) != 1) { errorPrint ("mapCheck: invalid domain array"); return (1); } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mapping_io.c000066400000000000000000000252011514310134000262030ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mapping_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module handles (partial) mappings. **/ /** **/ /** DATES : # Version 0.0 : from : 31 mar 1993 **/ /** to : 31 mar 1993 **/ /** # Version 1.0 : from : 04 oct 1993 **/ /** to : 06 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 11 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 17 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 19 oct 1995 **/ /** # Version 3.1 : from : 30 oct 1995 **/ /** to : 14 jun 1996 **/ /** # Version 3.2 : from : 23 aug 1996 **/ /** to : 07 sep 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 3.4 : from : 11 sep 2001 **/ /** to : 08 nov 2001 **/ /** # Version 4.0 : from : 16 jan 2004 **/ /** to : 14 nov 2005 **/ /** # Version 5.0 : from : 13 sep 2006 **/ /** to : 27 feb 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 03 mar 2011 **/ /** to : 22 aug 2014 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "mapping_io.h" /***********************************/ /* */ /* These routines handle mappings. */ /* */ /***********************************/ /* This routine reads the contents of the given mapping ** file to the given mapping, reordering vertices ** according to the given vertex label table if necessary. ** It returns: ** - 0 : if mapping successfully written. ** - 1 : on error. ** - 2 : variable-sized architectures cannot be loaded. */ /* TODO remove it */ int /* TODO copy the one from gout? */ mapLoad ( Mapping * restrict const mappptr, const Gnum * restrict const vlbltab, FILE * restrict const stream) { Gnum vertnum; Gnum mappnum; Gnum mappnbr; MappingLoadMap * mapptab; /* Mapping array */ MappingLoadPerm * permtab; /* Array of sorted label/index pairs */ Anum archnbr; /* Size of the target architecture */ ArchDom fdomdat; /* First domain of architecture */ if (strcmp (archName (mappptr->archptr), "term") == 0) /* If target architecture is variable-sized */ return (2); archDomFrst (mappptr->archptr, &fdomdat); /* Get architecture size */ archnbr = archDomSize (mappptr->archptr, &fdomdat); if (mappptr->domnmax < (archnbr + 1)) { /* If mapping array too small to store mapping data */ ArchDom * restrict domntab; if ((domntab = (ArchDom *) memRealloc (mappptr->domntab, (archnbr + 1) * sizeof (ArchDom))) == NULL) { /* If cannot resize domain array */ errorPrint ("mapLoad: out of memory (1)"); return (1); } mappptr->domnmax = archnbr + 1; /* Point to new array */ mappptr->domntab = domntab; } mappptr->domnnbr = archnbr + 1; /* One more for first domain, for unmapped vertices */ archDomFrst (mappptr->archptr, &mappptr->domntab[0]); /* Set first domain with root domain data */ for (mappnum = 0; mappnum < archnbr; mappnum ++) /* For all terminal domain numbers */ archDomTerm (mappptr->archptr, &mappptr->domntab[mappnum + 1], mappnum); /* Set domain with terminal domain data */ if ((intLoad (stream, &mappnbr) != 1) || /* Read number of mapping entries */ (mappnbr < 1)) { errorPrint ("mapLoad: bad input (1)"); return (1); } if (memAllocGroup ((void **) (void *) &mapptab, (size_t) (mappnbr * sizeof (MappingLoadMap)), &permtab, (size_t) (mappptr->grafptr->vertnbr * sizeof (MappingLoadPerm)), NULL) == NULL) { errorPrint ("mapLoad: out of memory (2)"); return (1); } for (mappnum = 0; mappnum < mappnbr; mappnum ++) { /* Load mapping array */ if ((intLoad (stream, &mapptab[mappnum].slblnum) != 1) || (intLoad (stream, &mapptab[mappnum].tlblnum) != 1)) { errorPrint ("mapLoad: bad input (2)"); return (1); } } intSort2asc1 (mapptab, mappnbr); /* Sort mapping array by increasing source labels */ if (vlbltab != NULL) { /* If graph has vertex labels */ Gnum vertnum; for (vertnum = 0; vertnum < mappptr->grafptr->vertnbr; vertnum ++) { /* Build inverse permutation */ permtab[vertnum].vertnum = vertnum + mappptr->grafptr->baseval; permtab[vertnum].vlblnum = vlbltab[vertnum]; } intSort2asc1 (permtab, mappptr->grafptr->vertnbr); /* Sort vertex array by increasing labels */ } else { Gnum vertnum; for (vertnum = 0; vertnum < mappptr->grafptr->vertnbr; vertnum ++) { /* Build identity permutation */ permtab[vertnum].vertnum = vertnum + mappptr->grafptr->baseval; permtab[vertnum].vlblnum = vertnum + mappptr->grafptr->baseval; } } for (vertnum = 0, mappnum = 0; /* For all graph vertices */ vertnum < mappptr->grafptr->vertnbr; vertnum ++) { while ((mappnum < mappnbr) && /* Skip useless mapping data (if graph is subgraph of originally mapped graph) */ (permtab[vertnum].vlblnum > mapptab[mappnum].slblnum)) mappnum ++; if (mappnum >= mappnbr) /* If all mapping data exhausted */ break; /* Exit the matching loop */ if (permtab[vertnum].vlblnum == mapptab[mappnum].slblnum) { /* If matching mapping data found */ if ((mapptab[mappnum].tlblnum >= 0) && /* If mapping valid */ (mapptab[mappnum].tlblnum < archnbr)) mappptr->parttax[permtab[vertnum].vertnum] = mapptab[mappnum].tlblnum + 1; /* Set mapping to terminal domain */ mappnum ++; /* Mapping pair has been used */ } } memFree (mapptab); /* Free group leader */ return (0); } /* This routine writes the contents of the ** given mapping to the given string. ** It returns: ** - 0 : if mapping successfully written. ** - !0 : on error. */ int mapSave ( const Mapping * restrict const mappptr, FILE * restrict const stream) { Gnum vertnnd; Gnum vertnum; const Arch * restrict const archptr = mappptr->archptr; const ArchDom * restrict const domntab = mappptr->domntab; const Anum * restrict const parttax = mappptr->parttax; const Gnum * restrict const vlbltax = mappptr->grafptr->vlbltax; vertnum = mappptr->grafptr->baseval; vertnnd = mappptr->grafptr->vertnbr; /* Un-based number at first */ if (fprintf (stream, GNUMSTRING "\n", (Gnum) vertnnd) == EOF) { errorPrint ("mapSave: bad output (1)"); return (1); } for (vertnnd += vertnum; vertnum < vertnnd; vertnum ++) { if (fprintf (stream, GNUMSTRING "\t" ANUMSTRING "\n", (Gnum) ((vlbltax != NULL) ? vlbltax[vertnum] : vertnum), (Anum) (parttax != NULL) ? archDomNum (archptr, &domntab[parttax[vertnum]]) : -1) == EOF) { errorPrint ("mapSave: bad output (2)"); return (1); } } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mapping_io.h000066400000000000000000000111761514310134000262160ustar00rootroot00000000000000/* Copyright 2004,2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mapping_io.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the mapping handling routines. **/ /** **/ /** DATES : # Version 0.0 : from : 15 dec 1992 **/ /** to : 01 apr 1993 **/ /** # Version 1.0 : from : 04 oct 1993 **/ /** to : 06 oct 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 11 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 02 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 04 jul 1995 **/ /** # Version 3.1 : from : 30 oct 1995 **/ /** to : 06 jun 1996 **/ /** # Version 3.2 : from : 23 aug 1996 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 13 nov 2005 **/ /** # Version 5.0 : from : 13 sep 2006 **/ /** to : 13 sep 2006 **/ /** **/ /************************************************************/ #define MAPPING_H /* ** The defines. */ /*+ Ordering option flags. +*/ #define MAPNONE 0x0000 /* No options set */ #define MAPFREEPART 0x0001 /* Free partition array */ /* ** The type definitions. */ /*+ This structure defines a source label to target label mapping element. +*/ typedef struct MappingLoadMap_ { Gnum slblnum; /*+ Source graph vertex label: FIRST +*/ Gnum tlblnum; /*+ Target architecture vertex label +*/ } MappingLoadMap; /*+ The source graph sort structure, used to sort vertices by increasing label value. +*/ typedef struct MappingLoadPerm { Gnum vlblnum; /*+ Vertex label: FIRST +*/ Gnum vertnum; /*+ Vertex number +*/ } MappingLoadPerm; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh.c000066400000000000000000000172231514310134000250220ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source mesh **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 29 dec 2001 **/ /** to : 05 may 2004 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" /****************************************/ /* */ /* These routines handle source meshes. */ /* */ /****************************************/ /* This routine initializes a source mesh ** structure. ** It returns: ** - 0 : in all cases. */ int meshInit ( Mesh * const meshptr) { memSet (meshptr, 0, sizeof (Mesh)); /* Initialize mesh fields */ meshptr->flagval = MESHFREETABS; /* By default, free all arrays */ return (0); } /* This routine frees a source mesh structure. ** It returns: ** - VOID : in all cases. */ void meshExit ( Mesh * const meshptr) { meshFree (meshptr); /* Exit mesh data */ #ifdef SCOTCH_DEBUG_MESH2 memSet (meshptr, ~0, sizeof (Mesh)); /* Purge mesh fields */ #endif /* SCOTCH_DEBUG_MESH2 */ } /* This routine frees the mesh data. Because ** vertex load arrays are either passed by ** the user, or grouped with other arrays, ** they are not considered for explicit ** freeing. This is also much simpler, as ** load arrays can be grouped or not. ** It returns: ** - VOID : in all cases. */ void meshFree ( Mesh * const meshptr) { if (((meshptr->flagval & MESHFREEEDGE) != 0) && /* If edgetab must be freed */ (meshptr->edgetax != NULL)) /* And if it exists */ memFree (meshptr->edgetax + meshptr->baseval); /* Free it */ if ((meshptr->flagval & MESHFREEVEND) != 0) { /* If vendtab must be freed */ if ((meshptr->vendtax != NULL) && /* If vendtab is distinct from verttab */ (meshptr->vendtax != meshptr->verttax + 1) && /* (if vertex arrays grouped, vendtab not distinct anyway) */ ((meshptr->flagval & MESHVERTGROUP) == 0)) memFree (meshptr->vendtax + meshptr->baseval); /* Then free vendtab */ } if ((meshptr->flagval & MESHFREEVERT) != 0) { /* If verttab must be freed */ if (meshptr->verttax != NULL) /* Free verttab anyway, as it is the array group leader */ memFree (meshptr->verttax + meshptr->baseval); } #ifdef SCOTCH_DEBUG_MESH2 if ((meshptr->flagval & MESHFREEVNUM) != 0) { /* If vnumtab must be freed */ if ((meshptr->vnumtax != NULL) && /* And is not in vertex array group */ ((meshptr->flagval & MESHVERTGROUP) == 0)) errorPrint ("meshFree: vnumtab should never be freed as its base may vary according to creation routines"); } #endif /* SCOTCH_DEBUG_MESH2 */ if ((meshptr->flagval & MESHFREEOTHR) != 0) { /* If other arrays must be freed */ if (meshptr->vlbltax != NULL) memFree (meshptr->vlbltax + meshptr->baseval); } #ifdef SCOTCH_DEBUG_MESH2 memSet (meshptr, ~0, sizeof (Mesh)); /* Purge mesh fields */ #endif /* SCOTCH_DEBUG_MESH2 */ } /* This routine sets the base of the given ** mesh to the given base value, and returns ** the old base value. ** It returns: ** - old base value : in all cases. */ Gnum meshBase ( Mesh * const meshptr, const Gnum baseval) { Gnum baseold; /* Old base value */ Gnum baseadj; /* Base adjustment */ Gnum vertnum; Gnum edgenum; if (meshptr->baseval == baseval) /* If nothing to do */ return (baseval); baseold = meshptr->baseval; /* Record old base value */ baseadj = baseval - baseold; /* Compute adjustment */ for (vertnum = meshptr->baseval; vertnum < (meshptr->velmnbr + meshptr->vnodnbr + meshptr->baseval); vertnum ++) { for (edgenum = meshptr->verttax[vertnum]; edgenum < meshptr->vendtax[vertnum]; edgenum ++) meshptr->edgetax[edgenum] += baseadj; meshptr->verttax[vertnum] += baseadj; } if (meshptr->vendtax != meshptr->verttax + 1) { /* If distinct vertex end array */ for (vertnum = meshptr->baseval; vertnum < (meshptr->velmnbr + meshptr->vnodnbr + meshptr->baseval); vertnum ++) meshptr->vendtax[vertnum] += baseadj; } else /* If same vertex end array (of size +1) */ meshptr->verttax[meshptr->velmnbr + meshptr->vnodnbr + meshptr->baseval] += baseadj; /* Adjust last entry of verttab */ meshptr->verttax -= baseadj; /* Adjust array accesses */ meshptr->vendtax -= baseadj; meshptr->edgetax -= baseadj; if (meshptr->vnumtax != NULL) meshptr->vnumtax -= baseadj; if (meshptr->vlbltax != NULL) meshptr->vlbltax -= baseadj; meshptr->baseval = baseval; /* Set new base value */ meshptr->velmbas += baseadj; /* Adjust mesh parameter */ meshptr->velmnnd += baseadj; meshptr->vnodbas += baseadj; meshptr->vnodnnd += baseadj; return (baseold); /* Return old base value */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh.h000066400000000000000000000214431514310134000250260ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source mesh functions. **/ /** **/ /** DATES : # Version 4.0 : from : 29 dec 2001 **/ /** to : 11 may 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 03 may 2019 **/ /** to : 30 aug 2025 **/ /** **/ /************************************************************/ #define SCOTCH_MESH_H /* ** The defines. */ /*+ Mesh option flags. +*/ #define MESHNONE 0x0000 /* No options set */ #define MESHFREEEDGE 0x0001 /* Free edgetab array */ #define MESHFREEVERT 0x0002 /* Free verttab array */ #define MESHFREEVEND 0x0004 /* Free verttab array */ #define MESHFREEVNUM 0x0008 /* Free vnumtab array */ #define MESHFREEOTHR 0x0010 /* Free all other arrays */ #define MESHFREETABS 0x001F /* Free all mesh arrays */ #define MESHVERTGROUP 0x0010 /* All vertex arrays grouped */ /*+ The Mesh flag type. +*/ typedef unsigned int MeshFlag; /*+ Mesh property flags +*/ /*+ Mesh structure. It is basically a graph structure. It is a bipartite graph in the sense that node vertices are adjacent to element vertices only, and that element vertices are adjacent to node vertices only. Node vertices can all be put before or after element vertices, but node and element vertices cannot be mixed. In most algorithms, elements are put at the beginning because critical algorithms, such as the mesh induction and mesh coarsening routines, start by scanning element edges, such that elements can then be built on the fly before nodes are processed. Furthermore, as halo meshes comprise halo nodes but not halo elements, all halo nodes will be put at the end of the node array, making un-haloing much easier and inexpensive. Vertex global indices are also different, as vnumtab is only valid for (non-halo) node vertices. The base of the vnumtax array is thus vnodbas, and not s.baseval . Moreover, the contents of vnumtab is based with respect to baseval, and not to vnodbas, so that building the inverse permutation does not require to know vnodbas to trim node indices. When vertex loads are available, node loads represent the number of degrees of freedom per node, and element loads should be set as the sum of the vertex loads of all of their adjacent nodes (used by routines such as vmeshSeparateGg). +*/ typedef struct Mesh_ { MeshFlag flagval; /*+ Graph properties +*/ Gnum baseval; /*+ Base index for edge/vertex arrays +*/ Gnum velmnbr; /*+ Number of element vertices +*/ Gnum velmbas; /*+ Based number of first element +*/ Gnum velmnnd; /*+ Based number of first non-element vertex +*/ Gnum veisnbr; /*+ Number of isolated element vertices +*/ Gnum vnodnbr; /*+ Number of node vertices in mesh +*/ Gnum vnodbas; /*+ Based number of first node +*/ Gnum vnodnnd; /*+ Based number of first non-node vertex +*/ Gnum * verttax; /*+ Vertex array [based] +*/ Gnum * vendtax; /*+ End vertex array [based] +*/ Gnum * velotax; /*+ Element vertex load array (if present) +*/ Gnum * vnlotax; /*+ Node vertex load array (if present) +*/ Gnum velosum; /*+ Sum of element vertex weights +*/ Gnum vnlosum; /*+ Sum of node vertex weights +*/ Gnum * vnumtax; /*+ Vertex number in ancestor graph +*/ Gnum * vlbltax; /*+ Vertex label (from file) +*/ Gnum edgenbr; /*+ Number of edges (arcs) in graph +*/ Gnum * edgetax; /*+ Edge array [based] +*/ Gnum degrmax; /*+ Maximum degree +*/ } Mesh; /* ** The function prototypes. */ int meshInit (Mesh * const); void meshExit (Mesh * const); void meshFree (Mesh * const); int meshLoad (Mesh * restrict const, FILE * restrict const, const Gnum); int meshSave (const Mesh * restrict const, FILE * restrict const); Gnum meshBase (Mesh * const, const Gnum); int meshGraphNodal (const Mesh * restrict const, Graph * restrict const); int meshGraphDual (const Mesh * restrict const, Graph * restrict const, const Gnum); int meshInduceList (const Mesh *, Mesh *, const VertList *); int meshInducePart (const Mesh *, Mesh *, const Gnum, const GraphPart *, const GraphPart); int meshInduceSepa (const Mesh * restrict const, const GraphPart * restrict const, const Gnum, const Gnum * restrict const, Mesh * restrict const); int meshCheck (const Mesh * const); int meshReorder (const Mesh * restrict const, Mesh * restrict const); #ifdef SCOTCH_GEOM_H int meshGeomLoadHabo (Mesh * restrict const, Geom * restrict const, FILE * const, FILE * const, const char * const); int meshGeomLoadScot (Mesh * restrict const, Geom * restrict const, FILE * const, FILE * const, const char * const); int meshGeomSaveScot (const Mesh * restrict const, const Geom * restrict const, FILE * const, FILE * const, const char * const); #endif /* SCOTCH_GEOM_H */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_check.c000066400000000000000000000224171514310134000261600ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source mesh **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 29 dec 2001 **/ /** to : 11 may 2004 **/ /** # Version 6.0 : from : 24 jan 2020 **/ /** to : 24 jan 2020 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" /****************************************/ /* */ /* These routines handle source meshes. */ /* */ /****************************************/ /* This routine checks the consistency ** of the given mesh. ** It returns: ** - 0 : if mesh data are consistent. ** - !0 : on error. */ int meshCheck ( const Mesh * const meshptr) { Gnum vertnnd; /* Maximum vertex index */ Gnum vertnum; /* Number of current vertex */ Gnum veisnbr; /* Number of isolated element vertices */ Gnum velosum; /* Vertex element load sum */ Gnum vnlosum; /* Vertex node load sum */ Gnum degrmax; /* Maximum degree */ if ((meshptr->velmbas > meshptr->velmnnd) || (meshptr->vnodbas > meshptr->vnodnnd) || (meshptr->velmnnd != (meshptr->velmbas + meshptr->velmnbr)) || (meshptr->vnodnnd != (meshptr->vnodbas + meshptr->vnodnbr)) || ((meshptr->velmnnd != meshptr->vnodbas) && (meshptr->vnodnnd != meshptr->velmbas))) { errorPrint ("meshCheck: invalid node and element numbers"); return (1); } vertnnd = meshptr->velmnbr + meshptr->vnodnbr + meshptr->baseval; degrmax = 0; veisnbr = 0; for (vertnum = meshptr->velmbas; vertnum < meshptr->velmnnd; vertnum ++) { /* For all element vertices */ Gnum degrval; Gnum edgenum; if ((meshptr->verttax[vertnum] < meshptr->baseval) || (meshptr->vendtax[vertnum] < meshptr->verttax[vertnum])) { errorPrint ("meshCheck: invalid vertex arrays (1)"); return (1); } degrval = meshptr->vendtax[vertnum] - meshptr->verttax[vertnum]; if (degrval > degrmax) degrmax = degrval; else if (degrval == 0) veisnbr ++; for (edgenum = meshptr->verttax[vertnum]; edgenum < meshptr->vendtax[vertnum]; edgenum ++) { Gnum vertend; /* Number of end vertex */ Gnum edgeend; /* Number of end vertex edge */ vertend = meshptr->edgetax[edgenum]; if ((vertend < meshptr->baseval) || /* If invalid edge end */ (vertend >= vertnnd)) { errorPrint ("meshCheck: invalid edge array (1)"); return (1); } if ((vertend >= meshptr->velmbas) && (vertend < meshptr->velmnnd)) { errorPrint ("meshCheck: element vertices must not be connected together"); return (1); } for (edgeend = meshptr->verttax[vertend]; /* Search for matching arc */ (edgeend < meshptr->vendtax[vertend]) && (meshptr->edgetax[edgeend] != vertnum); edgeend ++) ; if (edgeend >= meshptr->vendtax[vertend]) { errorPrint ("meshCheck: arc data do not match (1)"); return (1); } for (edgeend ++; /* Search for duplicate arcs */ (edgeend < meshptr->vendtax[vertend]) && (meshptr->edgetax[edgeend] != vertnum); edgeend ++) ; if (edgeend < meshptr->vendtax[vertend]) { errorPrint ("meshCheck: duplicate arc (1)"); return (1); } } } if (veisnbr != meshptr->veisnbr) { errorPrint ("meshCheck: invalid number of isolated element vertices"); return (1); } for (vertnum = meshptr->vnodbas; vertnum < meshptr->vnodnnd; vertnum ++) { /* For all node vertices */ Gnum edgenum; if ((meshptr->verttax[vertnum] < meshptr->baseval) || (meshptr->vendtax[vertnum] < meshptr->verttax[vertnum])) { errorPrint ("meshCheck: invalid vertex arrays (2)"); return (1); } if ((meshptr->vendtax[vertnum] - meshptr->verttax[vertnum]) > degrmax) degrmax = meshptr->vendtax[vertnum] - meshptr->verttax[vertnum]; for (edgenum = meshptr->verttax[vertnum]; edgenum < meshptr->vendtax[vertnum]; edgenum ++) { Gnum vertend; /* Number of end vertex */ Gnum edgeend; /* Number of end vertex edge */ vertend = meshptr->edgetax[edgenum]; if ((vertend < meshptr->baseval) || (vertend >= vertnnd)) { /* If invalid edge end */ errorPrint ("meshCheck: invalid edge array (2)"); return (1); } if ((vertend >= meshptr->vnodbas) && (vertend < meshptr->vnodnnd)) { errorPrint ("meshCheck: node vertices must not be connected together"); return (1); } for (edgeend = meshptr->verttax[vertend]; /* Search for matching arc */ (edgeend < meshptr->vendtax[vertend]) && (meshptr->edgetax[edgeend] != vertnum); edgeend ++) ; if (edgeend >= meshptr->vendtax[vertend]) { errorPrint ("meshCheck: arc data do not match (2)"); return (1); } for (edgeend ++; /* Search for duplicate arcs */ (edgeend < meshptr->vendtax[vertend]) && (meshptr->edgetax[edgeend] != vertnum); edgeend ++) ; if (edgeend < meshptr->vendtax[vertend]) { errorPrint ("meshCheck: duplicate arc (2)"); return (1); } } } if (meshptr->velotax == NULL) /* Recompute node vertex load sum */ velosum = meshptr->velmnnd - meshptr->velmbas; else { for (vertnum = meshptr->velmbas, velosum = 0; vertnum < meshptr->velmnnd; vertnum ++) { if (meshptr->velotax[vertnum] < 1) { errorPrint ("meshCheck: invalid element vertex load"); return (1); } velosum += meshptr->velotax[vertnum]; } } if (velosum != meshptr->velosum) { errorPrint ("meshCheck: invalid element vertex load sum"); return (1); } if (meshptr->vnlotax == NULL) /* Recompute node vertex load sum */ vnlosum = meshptr->vnodnnd - meshptr->vnodbas; else { for (vertnum = meshptr->vnodbas, vnlosum = 0; vertnum < meshptr->vnodnnd; vertnum ++) { if (meshptr->vnlotax[vertnum] < 1) { errorPrint ("meshCheck: invalid node vertex load"); return (1); } vnlosum += meshptr->vnlotax[vertnum]; } } if (vnlosum != meshptr->vnlosum) { errorPrint ("meshCheck: invalid node vertex load sum"); return (1); } if (meshptr->degrmax < degrmax) { errorPrint ("meshCheck: invalid maximum degree"); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_coarsen.c000066400000000000000000001001221514310134000265230ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_coarsen.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the source mesh **/ /** coarsening functions. **/ /** **/ /** DATES : # Version 4.0 : from : 30 jan 2004 **/ /** to : 05 may 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 12 sep 2007 **/ /** # Version 6.0 : from : 23 jan 2020 **/ /** to : 23 jan 2020 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 30 nov 2024 **/ /** **/ /** NOTES : # The coarsening process is as follows. **/ /** First, node collapsing is performed, **/ /** such that pairs of matching nodes are **/ /** created, or kept as single nodes. **/ /** Then, elements are built, and merged **/ /** whenever possible. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_MESH_COARSEN #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "mesh_coarsen.h" /* ** The static variables. */ static MeshCoarsenFunc meshCoarsenFuncTab[MESHCOARSENNBR] = { /* Table of matching routines */ (MeshCoarsenFunc) meshCoarsenMatchNg }; /***************************/ /* */ /* The coarsening routine. */ /* */ /***************************/ /* This routine coarsens the given "finemesh" into ** "coarmesh", as long as the coarsening ratio remains ** below some threshold value and the coarsened mesh ** is not too small. ** It returns: ** - 0 : if the mesh has been coarsened. ** - 1 : if the mesh could not be coarsened. ** - 2 : on error. */ int meshCoarsen ( const Mesh * restrict const finemeshptr, /*+ Mesh to coarsen +*/ Mesh * restrict const coarmeshptr, /*+ Coarse mesh to build +*/ Gnum * restrict * const finecoarptr, /*+ Pointer to multinode data +*/ const Gnum coarnbr, /*+ Minimum number of coarse nodes +*/ const double coarrat, /*+ Maximum contraction ratio +*/ const MeshCoarsenType coartype, /*+ Matching type +*/ Context * restrict const contptr) /*+ Execution context +*/ { Gnum coarhashsiz; /* Size of the hash table */ Gnum coarhashmsk; /* Mask for access to hash table */ MeshCoarsenHngb * restrict coarhngbtab; /* Table of edges to other multinodes */ MeshCoarsenHbdg * restrict coarhbdgtab; /* Table of bridge nodes to other multinodes */ Gnum * restrict coarverttax; /* Pointer to coarse vertex array */ Gnum * restrict coarvelotax; /* Pointer to coarse vertex load array */ Gnum * restrict coaredgetax; /* Pointer to coarse edge array */ Gnum coaredgenbr; /* (Upper bound of) number of edges in mesh */ Gnum coaredgenum; /* Number of current coarse edge */ Gnum coarvertnbr; /* Number of vertices in coarse mesh */ Gnum coarvelmnbr; /* Number of coarse element vertices */ Gnum coarvnodnbr; /* Number of coarse node vertices */ Gnum finevertnbr; /* Number of vertices in fine graph */ Gnum * restrict finecoartax; /* Based access to finecoartab */ Gnum coarveisnbr; /* Number of coarse isolated elements */ Gnum coarvelmnum; /* Number of currently selected coarse element */ Gnum coareelmnum; Gnum coarvnodnum; Gnum coardegrmax; MeshCoarsenMult * restrict finemulttax; Gnum coaredgetmp; size_t coarvelooftval; size_t coaredgeoftval; #ifdef SCOTCH_DEBUG_MESH2 if (coartype >= MESHCOARSENNBR) { errorPrint ("meshCoarsen: invalid parameter"); return (2); } #endif /* SCOTCH_DEBUG_MESH2 */ memSet (coarmeshptr, 0, sizeof (Mesh)); /* Initialize coarse mesh */ coarmeshptr->flagval = GRAPHFREEVERT; coarmeshptr->baseval = finemeshptr->baseval; finevertnbr = finemeshptr->velmnbr + finemeshptr->vnodnbr; if ((finecoartax = (Gnum *) memAlloc (finevertnbr * sizeof (Gnum))) == NULL) { errorPrint ("meshCoarsen: out of memory (1)"); /* Allocate coarse mesh uncoarsening array */ return (2); } memSet (finecoartax, ~0, finevertnbr * sizeof (Gnum)); finecoartax -= finemeshptr->baseval; /* Set based access to finecoartax */ for (coarhashmsk = 31, coarhashsiz = finemeshptr->degrmax * finemeshptr->degrmax - 1; /* Compute size of hash table */ coarhashmsk < coarhashsiz; coarhashmsk = coarhashmsk * 2 + 1) ; coarhashsiz = coarhashmsk + 1; if (memAllocGroup ((void **) (void *) &coarverttax, (size_t) ((finevertnbr + 1) * sizeof (Gnum)), /* Upper bound on number of coarse vertices */ &coarvelotax, (size_t) ( finevertnbr * sizeof (Gnum)), /* Upper bound on number of coarse vertices */ &coaredgetax, (size_t) ( finemeshptr->edgenbr * sizeof (Gnum)), &coarhngbtab, (size_t) ( coarhashsiz * sizeof (MeshCoarsenHngb)), &coarhbdgtab, (size_t) ( coarhashsiz * sizeof (MeshCoarsenHbdg)), &finemulttax, (size_t) ( finemeshptr->velmnbr * sizeof (MeshCoarsenMult)), NULL) == NULL) { errorPrint ("meshCoarsen: out of memory (2)"); /* Allocate coarser mesh structure */ memFree (finecoartax + finemeshptr->baseval); return (2); } memSet (coarhngbtab, ~0, coarhashsiz * sizeof (MeshCoarsenHngb)); memSet (coarhbdgtab, ~0, coarhashsiz * sizeof (MeshCoarsenHbdg)); finemulttax -= coarmeshptr->baseval; meshCoarsenFuncTab[coartype] (finemeshptr, finemulttax, finecoartax, &coarvelmnbr, &coarvnodnbr, &coaredgenbr, contptr); /* Call proper matching function */ #ifndef DEAD_CODE coarvnodnbr = finemeshptr->vnodnbr; /* TODO : coarvnodnbr estimator is wrong : too tight */ coaredgenbr = finemeshptr->edgenbr; #endif /* DEAD_CODE */ coarvertnbr = coarvelmnbr + coarvnodnbr; memOffset ((void *) coarverttax, &coarverttax, (size_t) ((coarvertnbr + 1) * sizeof (Gnum)), &coarvelotax, (size_t) ( coarvertnbr * sizeof (Gnum)), &coaredgetax, (size_t) ( coaredgenbr * sizeof (Gnum)), NULL); /* Hast tables and finemulttax stay in place */ coarverttax -= coarmeshptr->baseval; coarvelotax -= coarmeshptr->baseval; coaredgetax -= coarmeshptr->baseval; coarmeshptr->velmbas = coarmeshptr->baseval; coarmeshptr->velmnbr = coarvelmnbr; coarmeshptr->velmnnd = coarmeshptr->vnodbas = coarvelmnbr + coarmeshptr->velmbas; for (coarvelmnum = coaredgenum = coarmeshptr->baseval, coarvnodnum = coarmeshptr->vnodbas, coarveisnbr = coardegrmax = 0; /* For all coarse elements */ coarvelmnum < coarmeshptr->velmnnd; coarvelmnum ++) { Gnum coardegrval; /* Degree of coarsened element */ Gnum coarveloval; /* Weight of coarsened element */ Gnum coarvnisnum; /* Number of coarse isolated node */ Gnum finevelmnum; /* Number of current element */ int i; coarverttax[coarvelmnum] = coaredgenum; coarvnisnum = ~0; /* No isolated node yet for this element pair */ coarveloval = 0; i = 0; do { /* For both elements of element pair (if they are different) */ Gnum fineeelmnum; finevelmnum = finemulttax[coarvelmnum].finevelmnum[i]; /* Get number of current element */ coarveloval += ((finemeshptr->velotax != NULL) ? finemeshptr->velotax[finevelmnum] : 1); for (fineeelmnum = finemeshptr->verttax[finevelmnum]; fineeelmnum < finemeshptr->vendtax[finevelmnum]; fineeelmnum ++) { Gnum finevnodnum; /* Number of current node neighbor */ Gnum fineenodnum; Gnum finevdegval; Gnum finevnloval; Gnum finevelmend; Gnum coarvnodtmp; Gnum coarhnodtmp; finevnodnum = finemeshptr->edgetax[fineeelmnum]; fineenodnum = finemeshptr->verttax[finevnodnum]; finevdegval = finemeshptr->vendtax[finevnodnum] - fineenodnum; finevnloval = (finemeshptr->vnlotax != NULL) ? finemeshptr->vnlotax[finevnodnum] : 1; if ((finevdegval == 2) && /* If node is an external bridge to another coarse element */ ((finevelmend = (finemeshptr->edgetax[fineenodnum] + finemeshptr->edgetax[fineenodnum + 1] - finevelmnum)) != finemulttax[coarvelmnum].finevelmnum[1 - i])) { Gnum coarvelmend; Gnum coarhelmend; coarvelmend = finecoartax[finevelmend]; /* Get coarse index of end element */ coarvnodtmp = finecoartax[finevnodnum]; /* Get coarse number of fine node */ for (coarhelmend = (coarvelmend * MESHCOARSENHASHPRIME) & coarhashmsk; ; coarhelmend = (coarhelmend + 1) & coarhashmsk) { if (coarhbdgtab[coarhelmend].coarvelmnum != coarvelmnum) { /* If bridge not yet considered */ coarhbdgtab[coarhelmend].coarvelmnum = coarvelmnum; /* Add it to element neighbor list */ coarhbdgtab[coarhelmend].coarvelmend = coarvelmend; if (coarvnodtmp == -1) { /* If bridge nodes not considered before by other element */ coarhbdgtab[coarhelmend].coarvnodnum = /* Assign it */ finecoartax[finevnodnum] = coarvnodtmp = coarvnodnum ++; coarverttax[coarvnodtmp] = 2; /* Prepare the fact that another element will see the node */ coarvelotax[coarvnodtmp] = finevnloval; } coaredgetax[coaredgenum ++] = coarvnodtmp; /* Directly add coarse node to element neighborhood */ break; } if (coarhbdgtab[coarhelmend].coarvelmend == coarvelmend) { /* If bridge already present */ if (coarvnodtmp == -1) { /* If we are the first element to see the bridge node */ finecoartax[finevnodnum] = coarvnodtmp = coarhbdgtab[coarhelmend].coarvnodnum; /* Assign it */ coarvelotax[coarvnodtmp] += finevnloval; /* Update the weight of the node */ } /* Else node already processed with full load, so nothing to do */ break; } } continue; /* Edge has been added or will not be */ } else if (finevdegval < 3) { /* Else if node is isolated or is an internal bridge */ if ((finevdegval == 2) && /* Process bridge edges only once */ (finevelmnum >= finemulttax[coarvelmnum].finevelmnum[1 - i])) continue; if (coarvnisnum == ~0) { /* If no isolated node for this element pair */ coarvnisnum = coarvnodnum ++; /* Create isolated node */ coarverttax[coarvnisnum] = 1; coarvelotax[coarvnisnum] = finevnloval; coaredgetax[coaredgenum ++] = coarvnisnum; } else /* If isolated node already exists */ coarvelotax[coarvnisnum] += finevnloval; /* Add node contribution to it */ finecoartax[finevnodnum] = coarvnisnum; /* Map fine node to isolated node */ continue; } else { coarvnodtmp = finecoartax[finevnodnum]; /* Get coarse number of fine node */ if (coarvnodtmp == ~0) { /* If coarse number not yet assigned */ finecoartax[finevnodnum] = coarvnodtmp = coarvnodnum ++; /* Assign it */ coarverttax[coarvnodtmp] = 0; /* No connections to the node yet */ coarvelotax[coarvnodtmp] = finevnloval; } } for (coarhnodtmp = (coarvnodtmp * MESHCOARSENHASHPRIME) & coarhashmsk; ; coarhnodtmp = (coarhnodtmp + 1) & coarhashmsk) { if (coarhngbtab[coarhnodtmp].coarvelmnum != coarvelmnum) { /* If node neighbor not yet considered */ coarhngbtab[coarhnodtmp].coarvelmnum = coarvelmnum; /* Add it to element neighbor list */ coarhngbtab[coarhnodtmp].coarvnodnum = coarvnodtmp; coaredgetax[coaredgenum ++] = coarvnodtmp; coarverttax[coarvnodtmp] ++; /* One more edge referencing the node */ break; } if (coarhngbtab[coarhnodtmp].coarvnodnum == coarvnodtmp) /* If node already present, nothing to do */ break; } } } while (i ++, finevelmnum != finemulttax[coarvelmnum].finevelmnum[1]); coarvelotax[coarvelmnum] = coarveloval; /* Lose initial weights of elements, if any, to keep coarsening weights */ coardegrval = coaredgenum - coarverttax[coarvelmnum]; if (coardegrval <= 0) /* If zero degree, one more isolated element */ coarveisnbr ++; if (coardegrval > coardegrmax) coardegrmax = coardegrval; } coarmeshptr->veisnbr = coarveisnbr; coarmeshptr->vnodnnd = coarvnodnum; coarmeshptr->vnodnbr = coarvnodnum - coarmeshptr->vnodbas; coarmeshptr->velosum = finemeshptr->velosum; coarmeshptr->vnlosum = finemeshptr->vnlosum; coarmeshptr->edgenbr = 2 * (coaredgenum - coarmeshptr->baseval); for (coarvnodnum = coarmeshptr->vnodbas, coaredgetmp = coaredgenum; /* Build start indices for node edge sub-arrays */ coarvnodnum < coarmeshptr->vnodnnd; coarvnodnum ++) { Gnum coardegrval; coardegrval = coarverttax[coarvnodnum]; coarverttax[coarvnodnum] = coaredgetmp; coaredgetmp += coardegrval; if (coardegrval > coardegrmax) coardegrmax = coardegrval; } coarmeshptr->degrmax = coardegrmax; for (coarvelmnum = coareelmnum = coarmeshptr->baseval; coarvelmnum < coarmeshptr->velmnnd; coarvelmnum ++) { Gnum coareelmnnd; coareelmnnd = (coarvelmnum < (coarmeshptr->velmnnd - 1)) ? coarverttax[coarvelmnum + 1] : coaredgenum; while (coareelmnum < coareelmnnd) { Gnum coarvnodnum; coarvnodnum = coaredgetax[coareelmnum ++]; coaredgetax[coarverttax[coarvnodnum] ++] = coarvelmnum; } } memMov (&coarverttax[coarmeshptr->vnodbas + 1], /* Re-build start indices for node edge sub-arrays */ &coarverttax[coarmeshptr->vnodbas], coarmeshptr->vnodnbr * sizeof (Gnum)); coarverttax[coarmeshptr->vnodbas] = coaredgenum; coarvelooftval = coarvelotax - coarverttax; coaredgeoftval = coaredgetax - coarverttax; coarverttax = memRealloc (coarverttax + coarmeshptr->baseval, (coaredgeoftval + coarmeshptr->edgenbr) * sizeof (Gnum)); /* Re-allocate array to save space */ coarmeshptr->verttax = coarverttax - coarmeshptr->baseval; coarmeshptr->vendtax = coarmeshptr->verttax + 1; coarmeshptr->velotax = coarmeshptr->verttax + coarvelooftval; coarmeshptr->vnlotax = coarmeshptr->velotax; /* Same array for both vertex load sub-arrays */ coarmeshptr->edgetax = coarmeshptr->verttax + coaredgeoftval; #ifdef SCOTCH_DEBUG_MESH2 if (meshCheck (coarmeshptr) != 0) { /* Check mesh consistency */ errorPrint ("meshCoarsen: internal error (7)"); return (2); } #endif /* SCOTCH_DEBUG_MESH2 */ *finecoarptr = finecoartax; /* Return multinode array */ return (0); } /********************************************/ /* */ /* The matching subroutines. In fact, these */ /* are merging routines, which merge */ /* elements of the fine mesh to form larger */ /* elements in the coarse mesh. */ /* New elements are ordered in increasing */ /* order from baseval, while nodes are */ /* ordered in decreasing order from -2, as */ /* -1 is a reserved flag value used */ /* for labelling non yet considered */ /* vertices. */ /* */ /********************************************/ /* This routine performs elements matching by ** selecting the elements that share most nodes ** with the first element. */ static void meshCoarsenMatchNg ( const Mesh * restrict const finemeshptr, /* Fine mesh to perform matching on */ MeshCoarsenMult * restrict const finemulttax, /* Array of fine multielements */ Gnum * restrict const finecoartax, /* Fine to coarse vertex array */ Gnum * restrict const coarvelmptr, /* Pointer to number of coarse element vertices */ Gnum * restrict const coarvnodptr, /* Pointer to (upper bound on) number of coarse node vertices */ Gnum * restrict const coaredgeptr, /* Pointer to (upper bound on) number of edges */ Context * restrict const contptr) { Gnum coarvelmnum; /* Number of current coarse element vertex */ Gnum finepertbas; /* Index of base of perturbation area */ Gnum finepertnbr; /* Size of perturbation area */ MeshCoarsenNgHash * restrict finehashtab; /* Hash table of neighbor elements */ Gnum finehashsiz; Gnum finehashmsk; Gnum coarvnodnbr; Gnum coaredgenbr; for (finehashmsk = 31, finehashsiz = finemeshptr->degrmax * finemeshptr->degrmax - 1; /* Compute size of hash table */ finehashmsk < finehashsiz; finehashmsk = finehashmsk * 2 + 1) ; finehashsiz = finehashmsk + 1; if ((finehashtab = (MeshCoarsenNgHash *) memAlloc (finehashsiz * sizeof (MeshCoarsenNgHash))) == NULL) { *coarvelmptr = finemeshptr->velmnbr; /* Indicate no coarsening occured */ return; } memSet (finehashtab, ~0, finehashsiz * sizeof (MeshCoarsenNgHash)); finehashmsk = finehashsiz - 1; coarvelmnum = finemeshptr->baseval; /* Start numbering elements in ascending order */ coarvnodnbr = finemeshptr->vnodnbr; coaredgenbr = finemeshptr->edgenbr; if (finemeshptr->velotax != NULL) { /* If fine mesh has element coarsening vertex weights, perform first pass */ Gnum finevelomin; Gnum finevelomax; Gnum finevelmnum; finevelomin = (3 * finemeshptr->velosum) / (5 * finemeshptr->velmnbr); finevelomax = (5 * finemeshptr->velosum) / finemeshptr->velmnbr; for (finevelmnum = finemeshptr->velmbas; finevelmnum < finemeshptr->velmnnd; finevelmnum ++) { Gnum fineeelmnum; Gnum finehelmnum; Gnum finevnisnbr; /* Number of isolated node vertices */ Gnum finehebsnum; /* Hash number of best matching element */ Gnum finevebsnum; /* Number of best matching element */ Gnum finevnbsnbr; /* Number of nodes shared with best element */ if (finecoartax[finevelmnum] != ~0) /* If element already selected */ continue; if (finemeshptr->velotax[finevelmnum] >= finevelomin) { /* If element is large enough, leave it for the second pass */ if (finemeshptr->velotax[finevelmnum] > finevelomax) { /* Except if it is too large, as then it is not matched */ finecoartax[finevelmnum] = coarvelmnum; finemulttax[coarvelmnum].finevelmnum[0] = finemulttax[coarvelmnum].finevelmnum[1] = finevelmnum; fprintf (stderr, "++ %ld %ld\n", (long) finevelmnum, (long) finemeshptr->velotax[finevelmnum]); /* TODO REMOVE */ coarvelmnum ++; /* One more single vertex created */ } continue; } finecoartax[finevelmnum] = coarvelmnum; /* Set vertex as used so that it will not be considered as an end vertex */ finehelmnum = (finevelmnum * MESHCOARSENHASHPRIME) & finehashmsk; finehashtab[finehelmnum].velmnum = finevelmnum; /* Put element in hash table so that number of end vertex is right even for uncoarsened elements */ finehashtab[finehelmnum].velmend = finevelmnum; finehebsnum = finehelmnum; /* Mate is element itself */ finevnbsnbr = 0; /* Will never be selected */ finevnisnbr = 0; /* No isolated node vertices yet */ for (fineeelmnum = finemeshptr->verttax[finevelmnum]; /* For all node neighbors of current element */ fineeelmnum < finemeshptr->vendtax[finevelmnum]; fineeelmnum ++) { Gnum finevnodnum; Gnum fineenodnum; Gnum fineenodnnd; Gnum finevdegval; Gnum finevnbgval; finevnodnum = finemeshptr->edgetax[fineeelmnum]; fineenodnum = finemeshptr->verttax[finevnodnum]; fineenodnnd = finemeshptr->vendtax[finevnodnum]; finevdegval = fineenodnnd - fineenodnum; if (finevdegval == 1) { /* If node is isolated */ finevnisnbr ++; continue; /* Directly skip to next node */ } finevnbgval = (finevdegval == 2) ? 1 : 0; /* If node is a bridge which connects the element to only one other element */ for ( ; fineenodnum < fineenodnnd; fineenodnum ++) { /* For all elements which are neighbors of current node */ Gnum finevelmend; Gnum finehelmend; Gnum finevnngnbr; /* Current number of neigoboring nodes that connect the two elements */ finevelmend = finemeshptr->edgetax[fineenodnum]; if (finecoartax[finevelmend] != ~0) /* If end element vertex already matched, do not consider it */ continue; for (finehelmend = (finevelmend * MESHCOARSENHASHPRIME) & finehashmsk; ; finehelmend = (finehelmend + 1) & finehashmsk) { if (finehashtab[finehelmend].velmnum != finevelmnum) { /* If element neighbor not yet considered */ finevnngnbr = 1; finehashtab[finehelmend].velmnum = finevelmnum; finehashtab[finehelmend].velmend = finevelmend; finehashtab[finehelmend].vnngnbr = finevnngnbr; finehashtab[finehelmend].vnbgnbr = finevnbgval; } else if (finehashtab[finehelmend].velmend == finevelmend) { /* Else if element found */ finevnngnbr = ++ finehashtab[finehelmend].vnngnbr; finehashtab[finehelmend].vnbgnbr += finevnbgval; } else /* Else go on searching */ continue; if (finevnngnbr > finevnbsnbr) { finehebsnum = finehelmend; finevnbsnbr = finevnngnbr; } break; } } } finevebsnum = finehashtab[finehebsnum].velmend; finemulttax[coarvelmnum].finevelmnum[0] = finevelmnum; /* Set matching pair */ finemulttax[coarvelmnum].finevelmnum[1] = finevebsnum; if (finevelmnum != finevebsnum) { /* If a matching element has been found */ finecoartax[finevebsnum] = coarvelmnum; if (finevnisnbr > 0) finevnisnbr --; coarvnodnbr -= finehashtab[finehebsnum].vnbgnbr + finevnisnbr; coaredgenbr -= 2 * finevnisnbr + 4 * finehashtab[finehebsnum].vnbgnbr; } coarvelmnum ++; /* Number nodes in ascending order */ } } for (finepertbas = finemeshptr->velmbas, /* Run cache-friendly perturbation on elements */ finepertnbr = 2 + contextIntRandVal (contptr, MESHCOARSENPERTPRIME - 2); /* Compute perturbation area size */ finepertbas < finemeshptr->velmnnd; finepertbas += finepertnbr) { Gnum finepertval; /* Current index in perturbation area */ if (finepertbas + finepertnbr > finemeshptr->velmnnd) finepertnbr = finemeshptr->velmnnd - finepertbas; finepertval = 0; /* Start from first perturbation element vertex */ do { /* Loop on perturbation element vertices */ Gnum finevelmnum; /* Number of currently selected fine element vertex */ Gnum fineeelmnum; Gnum finehelmnum; Gnum finevnisnbr; /* Number of isolated node vertices */ Gnum finehebsnum; /* Hash number of best matching element */ Gnum finevebsnum; /* Number of best matching element */ Gnum finevnbsnbr; /* Number of nodes shared with best element */ finevelmnum = finepertbas + finepertval; /* Compute corresponding elemennt number */ if (finecoartax[finevelmnum] != ~0) /* If element already selected */ continue; finecoartax[finevelmnum] = coarvelmnum; /* Set vertex as used so that it will not be considered as an end vertex */ finehelmnum = (finevelmnum * MESHCOARSENHASHPRIME) & finehashmsk; finehashtab[finehelmnum].velmnum = finevelmnum; /* Put element in hash table so that number of end vertex is right even for uncoarsened elements */ finehashtab[finehelmnum].velmend = finevelmnum; finehebsnum = finehelmnum; /* Mate is element itself */ finevnbsnbr = 0; /* Will never be selected */ finevnisnbr = 0; /* No isolated node vertices yet */ for (fineeelmnum = finemeshptr->verttax[finevelmnum]; /* For all node neighbors of current element */ fineeelmnum < finemeshptr->vendtax[finevelmnum]; fineeelmnum ++) { Gnum finevnodnum; Gnum fineenodnum; Gnum fineenodnnd; Gnum finevdegval; Gnum finevnbgval; finevnodnum = finemeshptr->edgetax[fineeelmnum]; fineenodnum = finemeshptr->verttax[finevnodnum]; fineenodnnd = finemeshptr->vendtax[finevnodnum]; finevdegval = fineenodnnd - fineenodnum; if (finevdegval == 1) { /* If node is isolated */ finevnisnbr ++; continue; /* Directly skip to next node */ } finevnbgval = (finevdegval == 2) ? 1 : 0; /* If node is a bridge which connects the element to only one other element */ for ( ; fineenodnum < fineenodnnd; fineenodnum ++) { /* For all elements which are neighbors of current node */ Gnum finevelmend; Gnum finehelmend; Gnum finevnngnbr; /* Current number of neigoboring nodes that connect the two elements */ finevelmend = finemeshptr->edgetax[fineenodnum]; if (finecoartax[finevelmend] != ~0) /* If end element vertex already matched, do not consider it */ continue; for (finehelmend = (finevelmend * MESHCOARSENHASHPRIME) & finehashmsk; ; finehelmend = (finehelmend + 1) & finehashmsk) { if (finehashtab[finehelmend].velmnum != finevelmnum) { /* If element neighbor not yet considered */ finevnngnbr = 1; finehashtab[finehelmend].velmnum = finevelmnum; finehashtab[finehelmend].velmend = finevelmend; finehashtab[finehelmend].vnngnbr = finevnngnbr; finehashtab[finehelmend].vnbgnbr = finevnbgval; } else if (finehashtab[finehelmend].velmend == finevelmend) { /* Else if element found */ finevnngnbr = ++ finehashtab[finehelmend].vnngnbr; finehashtab[finehelmend].vnbgnbr += finevnbgval; } else /* Else go on searching */ continue; if (finevnngnbr > finevnbsnbr) { finehebsnum = finehelmend; finevnbsnbr = finevnngnbr; } break; } } } finevebsnum = finehashtab[finehebsnum].velmend; finemulttax[coarvelmnum].finevelmnum[0] = finevelmnum; /* Set matching pair */ finemulttax[coarvelmnum].finevelmnum[1] = finevebsnum; if (finevelmnum != finevebsnum) { /* If a matching element has been found */ finecoartax[finevebsnum] = coarvelmnum; if (finevnisnbr > 0) finevnisnbr --; coarvnodnbr -= finehashtab[finehebsnum].vnbgnbr + finevnisnbr; coaredgenbr -= 2 * finevnisnbr + 4 * finehashtab[finehebsnum].vnbgnbr; } coarvelmnum ++; /* Number nodes in ascending order */ } while ((finepertval = (finepertval + MESHCOARSENPERTPRIME) % finepertnbr) != 0); /* Compute next perturbation index */ } memFree (finehashtab); *coarvelmptr = coarvelmnum - finemeshptr->velmbas; *coarvnodptr = coarvnodnbr; *coaredgeptr = coaredgenbr; return; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_coarsen.h000066400000000000000000000135461514310134000265450ustar00rootroot00000000000000/* Copyright 2004,2007,2018-2020,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_coarsen.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source mesh coarsening **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 19 oct 2003 **/ /** to : 04 feb 2004 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ /** Prime number for cache-friendly perturbations. **/ #define MESHCOARSENPERTPRIME 31 /* Prime number */ /** Prime number for hashing vertex numbers. **/ #define MESHCOARSENHASHPRIME 17 /* Prime number */ /* ** The type and structure definitions. */ /*+ The edge matching function types for coarsening. +*/ typedef enum MeshCoarsenType_ { MESHCOARSENNGB, /*+ Most neighbors matching +*/ MESHCOARSENNBR /*+ Number of matching types +*/ } MeshCoarsenType; /*+ A table made of such elements is used during coarsening to build the edge array of the new mesh, after the labeling of the vertices. +*/ typedef struct MeshCoarsenMult_ { Gnum finevelmnum[2]; } MeshCoarsenMult; /*+ The prototype of the mesh matching routine. +*/ typedef void (* MeshCoarsenFunc) (const Mesh * const, MeshCoarsenMult * const, Gnum * const, Gnum * const, Gnum * const, Gnum * const, Context * const); /*+ A table made of such cells is used during coarsening to build the edge array of the elements of the new mesh. +*/ typedef struct MeshCoarsenHngb_ { Gnum coarvelmnum; /*+ Coarse origin element vertex (i.e. pass) number +*/ Gnum coarvnodnum; /*+ Neighbor fine node vertex number +*/ } MeshCoarsenHngb; /*+ A table made of such cells is used during coarsening to detect and merge bridge nodes, that is, nodes that connect only two coarse nodes together. +*/ typedef struct MeshCoarsenHbdg_ { Gnum coarvelmnum; /*+ Coarse origin element vertex (i.e. pass) number +*/ Gnum coarvelmend; /*+ Coarse end element vertex number +*/ Gnum coarvnodnum; /*+ Number of connecting coarse node +*/ } MeshCoarsenHbdg; /*+ A table made of such elements is used during coarsening to build the edge array of the new mesh, after the labeling of the vertices. +*/ typedef struct MeshCoarsenNgHash_ { Gnum velmnum; /*+ Origin element vertex (i.e. pass) number +*/ Gnum velmend; /*+ End element vertex number in fine mesh +*/ Gnum vnngnbr; /*+ Number of shared neighboring node vertices +*/ Gnum vnbgnbr; /*+ Number of bridge neighboring node vertices +*/ } MeshCoarsenNgHash; /* ** The function prototypes. */ #ifdef SCOTCH_MESH_COARSEN static void meshCoarsenMatchNg (const Mesh * restrict const, MeshCoarsenMult * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Gnum * restrict const, Context * restrict const); #endif /* SCOTCH_MESH_COARSEN */ int meshCoarsen (const Mesh * restrict const, Mesh * restrict const, Gnum * restrict * const, const Gnum, const double, const MeshCoarsenType, Context * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_graph.c000066400000000000000000000412001514310134000261730ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2016,2018,2020,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Marc FUENTES (v6.1) **/ /** **/ /** FUNCTION : This module contains the source mesh **/ /** to graph conversion function. **/ /** **/ /** DATES : # Version 4.0 : from : 11 oct 2003 **/ /** to : 05 may 2004 **/ /** # Version 5.1 : from : 19 nov 2009 **/ /** to : 19 nov 2009 **/ /** # Version 6.0 : from : 15 aug 2016 **/ /** to : 13 feb 2018 **/ /** # Version 6.1 : from : 20 nov 2020 **/ /** to : 07 jun 2021 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 30 aug 2025 **/ /** **/ /** NOTES : # From a given mesh is created a graph, **/ /** such that all vertices of the graph **/ /** represent the nodes of the mesh, and **/ /** there exists an edge between two **/ /** vertices if there exists at least one **/ /** element to which the two associated **/ /** nodes belong. **/ /** In order to extract mesh vertex **/ /** partitions from graph vertex **/ /** partitions easily, the vertices of **/ /** the graph are numbered in the same **/ /** order as the nodes of the mesh. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "mesh_graph.h" /********************************/ /* */ /* The graph building routines. */ /* */ /********************************/ /*+ This routine builds an opaque nodal graph structure *** from an opaque mesh structure. The nodal graph *** adjacency is defined such that two nodes are adjacent *** if both share at least one element. *** - 0 : if building has succeeded. *** - !0 : on error. +*/ int meshGraphNodal ( const Mesh * restrict const meshptr, /*+ Original mesh +*/ Graph * restrict const grafptr) /*+ Graph to build +*/ { Gnum hashnbr; /* Number of vertices in hash table */ Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ MeshGraphHash * restrict hashtab; /* Table of edges to other node vertices */ Gnum edgemax; /* Upper bound of number of edges in mesh */ Gnum edgennd; /* Based upper bound on number of edges */ Gnum edgenum; /* Number of current graph edge */ Gnum vertnum; /* Number of current graph vertex */ Gnum degrmax; grafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; grafptr->baseval = meshptr->baseval; grafptr->vertnbr = meshptr->vnodnbr; grafptr->vertnnd = meshptr->vnodnbr + meshptr->baseval; for (hashsiz = 32, hashnbr = meshptr->degrmax * meshptr->degrmax * 2; /* Compute size of hash table */ hashsiz < hashnbr; hashsiz <<= 1) ; hashmsk = hashsiz - 1; if (((grafptr->verttax = memAlloc ((meshptr->vnodnbr + 1) * sizeof (Gnum))) == NULL) || ((hashtab = memAlloc (hashsiz * sizeof (MeshGraphHash))) == NULL)) { errorPrint ("meshGraphNodal: out of memory (1)"); if (grafptr->verttax != NULL) memFree (grafptr->verttax); return (1); } grafptr->verttax -= grafptr->baseval; grafptr->vendtax = grafptr->verttax + 1; grafptr->velotax = (meshptr->vnlotax != NULL) /* Keep node part of mesh vertex load array as graph vertex load array */ ? meshptr->vnlotax + meshptr->vnodbas - grafptr->baseval /* Since GRAPHVERTGROUP, no problem on graphFree */ : NULL; grafptr->velosum = meshptr->vnlosum; grafptr->vnumtax = grafptr->vlbltax = NULL; edgemax = 2 * meshptr->edgenbr; /* Compute lower bound on number of edges in graph */ #ifdef SCOTCH_DEBUG_MESH2 edgemax = meshptr->degrmax + 1; /* Allow testing dynamic reallocation of edge array */ #endif /* SCOTCH_DEBUG_MESH2 */ if ((grafptr->edgetax = memAlloc (edgemax * sizeof (Gnum))) == NULL) { errorPrint ("meshGraphNodal: out of memory (2)"); graphFree (grafptr); return (1); } grafptr->edgetax -= grafptr->baseval; grafptr->edlotax = NULL; memSet (hashtab, ~0, hashsiz * sizeof (MeshGraphHash)); /* Initialize hash table */ for (vertnum = edgenum = grafptr->baseval, edgennd = edgemax + grafptr->baseval, degrmax = 0; /* Build graph edges */ vertnum < grafptr->vertnnd; vertnum ++) { Gnum vnodnum; Gnum hnodnum; Gnum enodnum; grafptr->verttax[vertnum] = edgenum; vnodnum = vertnum + (meshptr->vnodbas - meshptr->baseval); hnodnum = (vnodnum * MESHGRAPHHASHPRIME) & hashmsk; /* Prevent adding loop edge */ hashtab[hnodnum].vertnum = vnodnum; hashtab[hnodnum].vertend = vnodnum; for (enodnum = meshptr->verttax[vnodnum]; enodnum < meshptr->vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum eelmnum; velmnum = meshptr->edgetax[enodnum]; for (eelmnum = meshptr->verttax[velmnum]; eelmnum < meshptr->vendtax[velmnum]; eelmnum ++) { Gnum vnodend; Gnum hnodend; vnodend = meshptr->edgetax[eelmnum]; for (hnodend = (vnodend * MESHGRAPHHASHPRIME) & hashmsk; ; hnodend = (hnodend + 1) & hashmsk) { if (hashtab[hnodend].vertnum != vnodnum) { /* If edge not yet created */ if (edgenum == edgennd) { /* If edge array already full */ Gnum edgemax; Gnum * restrict edgetmp; edgemax = edgennd - grafptr->baseval; /* Increase size by 25 % */ edgemax = edgemax + (edgemax >> 2); if ((edgetmp = memRealloc (grafptr->edgetax + grafptr->baseval, edgemax * sizeof (Gnum))) == NULL) { errorPrint ("meshGraphNodal: out of memory (3)"); graphFree (grafptr); memFree (hashtab); return (1); } grafptr->edgetax = edgetmp - grafptr->baseval; edgennd = edgemax + grafptr->baseval; } hashtab[hnodend].vertnum = vnodnum; /* Record new edge */ hashtab[hnodend].vertend = vnodend; grafptr->edgetax[edgenum ++] = vnodend - (meshptr->vnodbas - grafptr->baseval); /* Build new edge */ break; } if (hashtab[hnodend].vertend == vnodend) /* If edge already exists */ break; /* Skip to next neighbor */ } } } if ((edgenum - grafptr->verttax[vertnum]) > degrmax) /* Compute maximum degree */ degrmax = (edgenum - grafptr->verttax[vertnum]); } grafptr->verttax[vertnum] = edgenum; /* Set end of vertex array */ grafptr->edlosum = grafptr->edgenbr = edgenum - grafptr->baseval; grafptr->degrmax = degrmax; memFree (hashtab); #ifdef SCOTCH_DEBUG_MESH2 if (graphCheck (grafptr) != 0) { errorPrint ("meshGraphNodal: internal error"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ return (0); } /* This routine builds a dual graph (that is, an ** element graph) from the given mesh. An edge is ** built between two element vertices if these two ** elements e1 and e2 have at least min (noconbr, ** degr (e1) - 1, degr (e2) - 1) nodes in common. ** It returns: ** - 0 : if the graph has been successfully built. ** - 1 : on error. */ int meshGraphDual ( const Mesh * restrict const meshptr, /*+ Original mesh +*/ Graph * restrict const grafptr, /*+ Graph to build +*/ const Gnum noconbr) /*+ number of common points to define adjacency of elements +*/ { Gnum hashnbr; /* Number of vertices in hash table */ Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ MeshGraphDualHash * restrict hashtab; /* Table of edges to other node vertices */ Gnum edgemax; /* Upper bound of number of edges in mesh */ Gnum edgennd; /* Based upper bound on number of edges */ Gnum edgenum; /* Number of current graph edge */ Gnum vertnum; /* Number of current graph vertex */ Gnum degrmax; grafptr->flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; grafptr->baseval = meshptr->baseval; grafptr->vertnbr = meshptr->velmnbr; grafptr->vertnnd = meshptr->velmnbr + meshptr->baseval; for (hashsiz = 32, hashnbr = meshptr->degrmax * meshptr->degrmax * 2; /* Compute size of hash table */ hashsiz < hashnbr; hashsiz <<= 1) ; hashmsk = hashsiz - 1; if (((grafptr->verttax = memAlloc ((meshptr->velmnbr + 1) * sizeof (Gnum))) == NULL) || ((hashtab = memAlloc (hashsiz * sizeof (MeshGraphDualHash))) == NULL)) { errorPrint ("meshGraphDual: out of memory (1)"); if (grafptr->verttax != NULL) memFree (grafptr->verttax); return (1); } grafptr->verttax -= grafptr->baseval; grafptr->vendtax = grafptr->verttax + 1; grafptr->velotax = NULL; /* TODO: not implemented */ grafptr->velosum = meshptr->velosum; grafptr->vnumtax = grafptr->vlbltax = NULL; edgemax = 2 * meshptr->edgenbr; /* Compute lower bound on number of edges in graph */ if ((grafptr->edgetax = memAlloc (edgemax * sizeof (Gnum))) == NULL) { errorPrint ("meshGraphDual: out of memory (2)"); graphFree (grafptr); return (1); } grafptr->edgetax -= grafptr->baseval; grafptr->edlotax = NULL; memSet (hashtab, ~0, hashsiz * sizeof (MeshGraphDualHash)); /* Initialize hash table */ for (vertnum = edgenum = grafptr->baseval, edgennd = edgemax + grafptr->baseval, degrmax = 0; /* Build graph edges */ vertnum < grafptr->vertnnd; vertnum ++) { Gnum veconbr; /* Partial minimum of noconbr and element vertex degree */ Gnum velmnum; Gnum helmnum; Gnum eelmnum; grafptr->verttax[vertnum] = edgenum; velmnum = vertnum + (meshptr->velmbas - meshptr->baseval); helmnum = (velmnum * MESHGRAPHHASHPRIME) & hashmsk; /* Prevent adding loop edge */ hashtab[helmnum].vertnum = velmnum; hashtab[helmnum].vertend = velmnum; hashtab[helmnum].nghbnbr = 0; /* Loop edge never created as boundary already crossed */ veconbr = MIN (noconbr, (meshptr->vendtax[velmnum] - meshptr->verttax[velmnum] - 1)); for (eelmnum = meshptr->verttax[velmnum]; eelmnum < meshptr->vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; Gnum enodnum; vnodnum = meshptr->edgetax[eelmnum]; for (enodnum = meshptr->verttax[vnodnum]; enodnum < meshptr->vendtax[vnodnum]; enodnum ++) { Gnum velmend; Gnum helmend; velmend = meshptr->edgetax[enodnum]; for (helmend = (velmend * MESHGRAPHHASHPRIME) & hashmsk; ; helmend = (helmend + 1) & hashmsk) { Gnum nghbnbr; if (hashtab[helmend].vertnum != velmnum) { /* If edge not yet created */ hashtab[helmend].vertnum = velmnum; /* Record new edge */ hashtab[helmend].vertend = velmend; hashtab[helmend].nghbnbr = /* One instance recorded to date */ nghbnbr = MIN (veconbr, (meshptr->vendtax[velmend] - meshptr->verttax[velmend] - 1)) - 1; goto test; /* Check if one instance is enough to create edge */ } if (hashtab[helmend].vertend == velmend) { /* If hash slot found */ nghbnbr = hashtab[helmend].nghbnbr; /* Get number of times neighbor element met yet */ if (nghbnbr > 0) { /* If edge not already created */ hashtab[helmend].nghbnbr = -- nghbnbr; /* One more instance of neighbor element met */ test: if (nghbnbr <= 0) { /* If new instance allows us to reach threshold */ if (edgenum == edgennd) { /* If edge array already full */ Gnum edgemax; Gnum * restrict edgetmp; edgemax = edgennd - grafptr->baseval; /* Increase size by 25 % */ edgemax = edgemax + (edgemax >> 2); if ((edgetmp = memRealloc (grafptr->edgetax + grafptr->baseval, edgemax * sizeof (Gnum))) == NULL) { errorPrint ("meshGraphDual: out of memory (3)"); graphFree (grafptr); memFree (hashtab); return (1); } grafptr->edgetax = edgetmp - grafptr->baseval; edgennd = edgemax + grafptr->baseval; } grafptr->edgetax[edgenum ++] = velmend - (meshptr->velmbas - grafptr->baseval); /* Create edge */ } } break; } } } } if ((edgenum - grafptr->verttax[vertnum]) > degrmax) /* Compute maximum degree */ degrmax = (edgenum - grafptr->verttax[vertnum]); } grafptr->verttax[vertnum] = edgenum; /* Set end of vertex array */ grafptr->edlosum = grafptr->edgenbr = edgenum - grafptr->baseval; grafptr->degrmax = degrmax; memFree (hashtab); #ifdef SCOTCH_DEBUG_MESH2 if (graphCheck (grafptr) != 0) { errorPrint ("meshGraphDual: internal error"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_graph.h000066400000000000000000000071371514310134000262130ustar00rootroot00000000000000/* Copyright 2004,2007,2020,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_graph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source mesh to source graph **/ /** building routine. **/ /** **/ /** DATES : # Version 4.0 : from : 13 oct 2003 **/ /** to : 13 oct 2003 **/ /** # Version 6.1 : from : 20 nov 2020 **/ /** to : 28 feb 2021 **/ /** **/ /************************************************************/ /* ** The defines. */ /** Prime number for cache-friendly perturbations. **/ #define MESHGRAPHHASHPRIME 37 /* Prime number */ /* ** The type and structure definitions. */ /*+ A table made of such elements is used during graph building to build the edge array of the graph from the one of the mesh. +*/ typedef struct MeshGraphHash_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number in mesh +*/ Gnum vertend; /*+ End vertex number in mesh +*/ } MeshGraphHash; typedef struct MeshGraphDualHash_ { Gnum vertnum; /*+ Origin vertex (i.e. pass) number in mesh +*/ Gnum vertend; /*+ End vertex number in mesh +*/ Gnum nghbnbr; /*+ number of neighbours to define relation between elements +*/ } MeshGraphDualHash; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_induce_sepa.c000066400000000000000000000471041514310134000273620ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_induce_sepa.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the source **/ /** mesh separator subgraph-making **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 26 jan 2003 **/ /** to : 11 may 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 03 apr 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /** NOTES : # This routine differs from the **/ /** standard mesh induction routine by **/ /** the fact that neighboring elements do **/ /** not bear the same part number as the **/ /** vertices to keep and are found on the **/ /** fly. **/ /** **/ /** # This routine is used in hmeshInduce- **/ /** Nd to build the induced separator **/ /** mesh. **/ /** Since separator vertices are likely **/ /** to be surrounded by elements that **/ /** belong to different parts but connect **/ /** the same vertices in the separator, **/ /** a simple detection mechanism is used **/ /** to try to reduce the number of such **/ /** redundant elements. **/ /** Also, since this mesh is to be **/ /** ordered with the highest available **/ /** numbers, halo is not really needed **/ /** so this "mesh*" routine is used. If **/ /** halo was needed, a "hmesh*" routine **/ /** should be used instead. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "mesh_induce_sepa.h" /***************************************/ /* */ /* This routine handles source meshes. */ /* */ /***************************************/ /* This routine builds the separator mesh ** induced by the original mesh, the list of ** selected separator node vertices, and the ** vertex part array. Elements which are ** adjacent to the selected nodes are themselves ** selected. ** The induced vnumtab array is the baseval-based ** list of remaining node vertices if the original ** mesh does not have a vnumtab, or the proper ** subset of the original vnumtab else. ** This routine builds a mesh with nodes first ** and elements last. If a halo version of this ** algorithm had to be created, it should be ** re-worked such that elements are put first ** and nodes last, to enforce the structure of ** halo meshes. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int meshInduceSepa ( const Mesh * restrict const orgmeshptr, /* Pointer to original mesh */ const GraphPart * restrict const orgparttax, /* Array of vertex partition flags */ const Gnum orgsepanbr, /* Number of node vertices in separator */ const Gnum * restrict const orgsepatab, /* Array of node indices */ Mesh * restrict const indmeshptr) /* Pointer to induced submesh */ { Gnum orgvertnbr; /* Number of vertices in original mesh */ Gnum orgbitssiz; /* Size of int array holding as many bits as element vertices */ unsigned int * restrict orgbitstab; /* Array of bit flags for mesh elements */ Gnum indvnumnum; /* Current vertex number index in separator node list */ Gnum * restrict indvneltax; /* Array of original numbers for induced elements */ Gnum indvelmnbr; /* (Approximate) number of element vertices in induced mesh */ Gnum indvertnbr; /* (Approximate) number of vertices in induced mesh */ Gnum indvnodnum; /* Number of current node vertex in induced mesh */ Gnum indvnlosum; /* Sum of node vertex load array */ Gnum indvelmnum; /* Number of current element vertex in induced mesh */ Gnum * restrict indedgetax; /* Based array to edge array of induced mesh */ Gnum indedgenum; /* Number of current edge to be created in induced mesh */ Gnum indedgenbr; /* (Approximate) number of edges in induced mesh graph */ Gnum * restrict orgindxtax; /* Original to induced vertex number translation */ MeshInduceSepaHash * restrict hashtab; /* Node hash array */ Gnum hashmsk; /* Mask for hash array */ void * restrict p; orgbitssiz = (orgmeshptr->velmnbr + (INTSIZEBITS - 1)) / INTSIZEBITS; /* Compute size of element bit array */ if ((orgbitstab = (unsigned int *) memAlloc (orgbitssiz * sizeof (unsigned int))) == NULL) { errorPrint ("meshInduceSepa: out of memory (1)"); return (1); } memSet (orgbitstab, ~0, orgbitssiz * sizeof (unsigned int)); for (indvnumnum = 0, indvelmnbr = 0, indedgenbr = 0; /* For all separator nodes in list */ indvnumnum < orgsepanbr; indvnumnum ++) { Gnum orgvnodnum; /* Number of current node in original mesh */ Gnum orgenodnum; orgvnodnum = orgsepatab[indvnumnum]; /* Get number of separator node */ for (orgenodnum = orgmeshptr->verttax[orgvnodnum], indedgenbr += (orgmeshptr->vendtax[orgvnodnum] - orgenodnum); orgenodnum < orgmeshptr->vendtax[orgvnodnum]; orgenodnum ++) { Gnum orgvelmidx; /* Index of incident element in bit array */ Gnum orgvelmbit; /* Bit to update in element bit array */ orgvelmidx = orgmeshptr->edgetax[orgenodnum] - orgmeshptr->velmbas; orgvelmbit = orgvelmidx & (INTSIZEBITS - 1); orgvelmidx /= INTSIZEBITS; indvelmnbr += (orgbitstab[orgvelmidx] >> orgvelmbit) & 1; /* Count element vertex if not yet accounted for */ orgbitstab[orgvelmidx] &= ~(1 << orgvelmbit); } } indedgenbr *= 2; /* Number of arcs is twice number of edges */ memFree (orgbitstab); memSet (indmeshptr, 0, sizeof (Mesh)); /* Initialize mesh fields */ indmeshptr->baseval = orgmeshptr->baseval; indmeshptr->flagval = MESHFREETABS | MESHVERTGROUP; indmeshptr->vnodnbr = orgsepanbr; /* Nodes first */ indmeshptr->vnodbas = indmeshptr->baseval; indmeshptr->vnodnnd = indmeshptr->velmbas = orgsepanbr + indmeshptr->baseval; /* Elements last */ indmeshptr->veisnbr = 0; /* No isolated elements */ for (hashmsk = 15; hashmsk < orgmeshptr->degrmax; hashmsk = hashmsk * 2 + 1) ; hashmsk = hashmsk * 4 + 3; /* Compute size of node hash table */ indvertnbr = indvelmnbr + orgsepanbr; /* Upper bound on number of all vertices */ if (orgmeshptr->velotax != NULL) { p = memAllocGroup ((void **) (void *) &indmeshptr->verttax, (size_t) (indvertnbr * sizeof (Gnum)), /* verttab is not compact */ &indmeshptr->vendtax, (size_t) (indvertnbr * sizeof (Gnum)), &indmeshptr->vnumtax, (size_t) (orgsepanbr * sizeof (Gnum)), /* vnumtab is of size indnodenbr */ &indmeshptr->velotax, (size_t) (orgsepanbr * sizeof (Gnum)), NULL); /* Element vertices assumed not weighted */ indmeshptr->velotax -= indmeshptr->vnodbas; } else p = memAllocGroup ((void **) (void *) &indmeshptr->verttax, (size_t) (indvertnbr * sizeof (Gnum)), &indmeshptr->vendtax, (size_t) (indvertnbr * sizeof (Gnum)), &indmeshptr->vnumtax, (size_t) (orgsepanbr * sizeof (Gnum)), NULL); /* vnumtab is of size indnodenbr */ orgvertnbr = orgmeshptr->velmnbr + orgmeshptr->vnodnbr; if (p != 0) { indmeshptr->verttax -= indmeshptr->baseval; indmeshptr->vendtax -= indmeshptr->baseval; indmeshptr->vnumtax -= indmeshptr->vnodbas; /* vnumtab is of size indmeshptr->vnodnbr */ p = memAllocGroup ((void **) (void *) &indedgetax, (size_t) (indedgenbr * sizeof (Gnum)), &indvneltax, (size_t) (indvelmnbr * sizeof (Gnum)), &orgindxtax, (size_t) (orgvertnbr * sizeof (Gnum)), &hashtab, (size_t) ((hashmsk + 1) * sizeof (MeshInduceSepaHash)), NULL); } if (p == 0) { errorPrint ("meshInduceSepa: out of memory (2)"); /* Allocate induced mesh graph structure */ return (1); } memSet (orgindxtax, ~0, orgvertnbr * sizeof (Gnum)); memSet (hashtab, ~0, (hashmsk + 1) * sizeof (MeshInduceSepaHash)); indedgetax -= indmeshptr->baseval; indvneltax -= indmeshptr->velmbas; orgindxtax -= orgmeshptr->baseval; for (indvnumnum = 0, indvnodnum = indedgenum = indmeshptr->baseval, indvelmnum = orgsepanbr + indvnodnum, indedgenbr = 0, indvnlosum = 0; indvnumnum < orgsepanbr; indvnumnum ++) { /* For all node vertices in separator */ Gnum orgvnodnum; /* Number of current node in original mesh */ Gnum orgenodnum; Gnum indenodnum; /* Current index in node edge sub-array */ orgvnodnum = orgsepatab[indvnumnum]; /* Get number of separator node */ if (orgindxtax[orgvnodnum] == ~0) /* If separator node not yet numbered */ orgindxtax[orgvnodnum] = indvnodnum ++; /* One more node vertex created */ indmeshptr->verttax[orgindxtax[orgvnodnum]] = indedgenum; /* Set beginning of edge sub-array */ indmeshptr->vnumtax[orgindxtax[orgvnodnum]] = orgvnodnum - (orgmeshptr->vnodbas - orgmeshptr->baseval); if (indmeshptr->velotax != NULL) { Gnum indvnloval; indvnloval = orgmeshptr->velotax[orgvnodnum]; indvnlosum += indvnloval; indmeshptr->velotax[orgindxtax[orgvnodnum]] = indvnloval; } indenodnum = indedgenum; /* Record position of node edge sub-array */ indedgenum += orgmeshptr->vendtax[orgvnodnum] - /* Reserve space for node edges */ orgmeshptr->verttax[orgvnodnum]; for (orgenodnum = orgmeshptr->verttax[orgvnodnum]; /* For all element vertices neighboring the separator node */ orgenodnum < orgmeshptr->vendtax[orgvnodnum]; orgenodnum ++) { Gnum orgvelmnum; /* Number of element node in original mesh */ orgvelmnum = orgmeshptr->edgetax[orgenodnum]; /* Get number of element */ if (orgindxtax[orgvelmnum] == -2) /* If discarded element */ continue; /* Skip to next element */ if (orgindxtax[orgvelmnum] == ~0) { /* If element not yet created */ Gnum indedgetmp; /* Save value for edge index */ Gnum orgeelmnum; Gnum indenodtmp; indmeshptr->verttax[indvelmnum] = indedgenum; /* Set beginning of element edge sub-array */ indedgetmp = indedgenum; for (orgeelmnum = orgmeshptr->verttax[orgvelmnum]; /* For all nodes neighboring the element vertex */ orgeelmnum < orgmeshptr->vendtax[orgvelmnum]; orgeelmnum ++) { Gnum orgvnodend; /* Number of current end node vertex in original mesh */ orgvnodend = orgmeshptr->edgetax[orgeelmnum]; /* Get number of end node */ if (orgparttax[orgvnodend] == 2) { /* If end node is in separator */ Gnum hashnum; if (orgindxtax[orgvnodend] == ~0) /* If end node not yet numbered */ orgindxtax[orgvnodend] = indvnodnum ++; /* Assign number to end node */ indedgetax[indedgenum ++] = orgindxtax[orgvnodend]; /* Add node to element edge sub-array */ for (hashnum = (orgindxtax[orgvnodend] * MESHINDUCESEPAHASHPRIME) & hashmsk; hashtab[hashnum].orgvelmnum == orgvelmnum; hashnum = (hashnum + 1) & hashmsk) ; hashtab[hashnum].orgvelmnum = orgvelmnum; /* Add vertex to hash table */ hashtab[hashnum].indvnodnum = orgindxtax[orgvnodend]; } } indmeshptr->vendtax[indvelmnum] = indedgenum; /* Set end of element edge sub-array */ for (indenodtmp = indenodnum - 1; indenodtmp >= indmeshptr->verttax[orgindxtax[orgvnodnum]]; indenodtmp --) { Gnum indvelmtmp; /* Number of current already declared element for current node */ Gnum indeelmtmp; /* Number of current edge of already declared element for current node */ Gnum mtchnbr; /* Number of matches between new element and current element */ indvelmtmp = indedgetax[indenodtmp]; for (indeelmtmp = indmeshptr->verttax[indvelmtmp], mtchnbr = 0; indeelmtmp < indmeshptr->vendtax[indvelmtmp]; indeelmtmp ++) { Gnum indvnodend; Gnum hashnum; indvnodend = indedgetax[indeelmtmp]; /* Get number of current end node of already declared element */ for (hashnum = (indvnodend * MESHINDUCESEPAHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].orgvelmnum != orgvelmnum) /* If end node not present */ break; if (hashtab[hashnum].indvnodnum == indvnodend) { /* If end node found */ mtchnbr ++; /* One more matching node */ break; } } } if (mtchnbr == (indedgenum - indmeshptr->verttax[indvelmnum])) { /* If we are useless */ orgindxtax[orgvelmnum] = -2; /* Never consider this element again */ indedgenum = indedgetmp; /* Recycle edge sub-array of new element */ break; /* No need to go any further */ } if (mtchnbr == (indmeshptr->vendtax[indvelmtmp] - indmeshptr->verttax[indvelmtmp])) { /* If other element is useless */ indedgenbr -= mtchnbr; /* Remove its edges */ indmeshptr->verttax[indvelmtmp] = indmeshptr->verttax[indvelmnum]; /* Recycle it into our element */ indmeshptr->vendtax[indvelmtmp] = indmeshptr->vendtax[indvelmnum]; orgindxtax[indvneltax[indvelmtmp]] = -2; indvneltax[indvelmtmp] = orgvelmnum; } } if (indenodtmp < indmeshptr->verttax[orgindxtax[orgvnodnum]]) { /* If new element distinct from all other neighboring elements */ indedgetax[indenodnum ++] = indvelmnum; /* Record element in edge sub-array of current node */ indedgenbr += indedgenum - indmeshptr->verttax[indvelmnum]; indvneltax[indvelmnum] = orgvelmnum; /* Record original number of element in case we have to remove it afterwards */ orgindxtax[orgvelmnum] = indvelmnum ++; } } else /* Element already exists */ indedgetax[indenodnum ++] = orgindxtax[orgvelmnum]; /* Record element in edge sub-array of current node */ } indmeshptr->vendtax[orgindxtax[orgvnodnum]] = indenodnum; /* Set end of edge sub-array for current node */ indedgenbr += (indenodnum - indmeshptr->verttax[orgindxtax[orgvnodnum]]); /* Account for thes edges */ } #ifdef SCOTCH_DEBUG_MESH2 if (indvnodnum != (orgsepanbr + indmeshptr->baseval)) { errorPrint ("meshInduceSepa: internal error"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ indmeshptr->velmnbr = indvelmnum - indmeshptr->velmbas; indmeshptr->velmnnd = indvelmnum; indmeshptr->edgenbr = indedgenbr; if ((indmeshptr->edgetax = (Gnum *) memRealloc (indedgetax + indmeshptr->baseval, (indedgenum - indmeshptr->baseval) * sizeof (Gnum))) == NULL) { errorPrint ("meshInduceSepa: out of memory (3)"); memFree (indedgetax + indmeshptr->baseval); /* Free group leader */ meshFree (indmeshptr); return (1); } indmeshptr->edgetax -= indmeshptr->baseval; indmeshptr->velosum = indmeshptr->velmnbr; /* TODO: account for element weights */ indmeshptr->vnlosum = (indmeshptr->velotax == NULL) ? orgsepanbr : indvnlosum; indmeshptr->degrmax = orgmeshptr->degrmax; /* Rough estimate */ if (orgmeshptr->vnumtax != NULL) { /* If mesh is a submesh */ for (indvnodnum = indmeshptr->vnodbas; indvnodnum < indmeshptr->vnodnnd; indvnodnum ++) indmeshptr->vnumtax[indvnodnum] = orgmeshptr->vnumtax[indmeshptr->vnumtax[indvnodnum] + (orgmeshptr->vnodbas - orgmeshptr->baseval)]; } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_induce_sepa.h000066400000000000000000000057301514310134000273660ustar00rootroot00000000000000/* Copyright 2004,2007 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_induce_sepa.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the improved Fiduccia-Mattheyses **/ /** graph separation routine. **/ /** **/ /** DATES : # Version 4.0 : from : 04 feb 2003 **/ /** to : 09 feb 2003 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Prime number for hashing vertex numbers. +*/ #define MESHINDUCESEPAHASHPRIME 17 /*+ Prime number for hashing +*/ /* ** The type and structure definitions. */ /*+ The hash vertex structure. +*/ typedef struct MeshInduceSepaHash_ { Gnum orgvelmnum; /*+ Number of element in original mesh +*/ Gnum indvnodnum; /*+ Number of neighbor node vertex in induced mesh +*/ } MeshInduceSepaHash; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_io.c000066400000000000000000000414531514310134000255130ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles the source graph **/ /** input/output functions. **/ /** **/ /** DATES : # Version 4.0 : from : 05 nov 2002 **/ /** to : 06 may 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 27 feb 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "graph_io.h" #include "mesh.h" #include "mesh_io.h" /******************************************/ /* */ /* These routines handle source mesh I/O. */ /* */ /******************************************/ /* This routine loads a source mesh from ** the given stream. ** Edge loads, whenever present, are ** always discarded. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int meshLoad ( Mesh * restrict const meshptr, /* Mesh structure to fill */ FILE * restrict const stream, /* Stream from which to read graph data */ const Gnum baseval) /* Base value (-1 means keep file base) */ { Gnum edgenum; /* Number of edges really allocated */ Gnum edgennd; Gnum vertnbr; Gnum velmnbr; /* Number of elements in mesh */ Gnum velmbas; /* Base index for element vertices */ Gnum vnodnbr; /* Number of nodes in mesh */ Gnum vnodbas; /* Base index for node vertices */ Gnum vlblmax; /* Maximum vertex label number */ Gnum vlblval; /* Value where to read vertex label */ Gnum velonbr; /* Size of vertex load array */ Gnum veloval; /* Value where to read vertex load */ Gnum vlblnbr; /* Size of vertex label array */ Gnum edloval; /* Value where to read edge load */ Gnum edgeval; /* Value where to read edge end */ Gnum baseadj; Gnum versval; Gnum degrmax; Gnum propval; char proptab[4]; Gnum vertbastab[2]; Gnum vertnndtab[2]; Gnum edgeadjtab[2]; int i; memSet (meshptr, 0, sizeof (Mesh)); if ((intLoad (stream, &versval) != 1) || /* Read version number */ (versval != 1)) { errorPrint ("meshLoad: bad input (1)"); return (1); } if ((intLoad (stream, &velmnbr) != 1) || /* Read rest of header */ (intLoad (stream, &vnodnbr) != 1) || (intLoad (stream, &meshptr->edgenbr) != 1) || (intLoad (stream, &velmbas) != 1) || (intLoad (stream, &vnodbas) != 1) || (intLoad (stream, &propval) != 1) || (velmnbr < 0) || (vnodnbr < 0) || (velmbas < 0) || (vnodbas < 0) || (propval < 0) || (propval > 111) || (((velmbas + velmnbr) != vnodbas) && ((vnodbas + vnodnbr) != velmbas))) { errorPrint ("meshLoad: bad input (2)"); return (1); } sprintf (proptab, "%3.3d", (int) propval); /* Compute file properties */ proptab[0] -= '0'; /* Vertex labels flag */ proptab[1] -= '0'; /* Edge weights flag */ proptab[2] -= '0'; /* Vertex loads flag */ baseadj = MIN (velmbas, vnodbas); /* Get file graph base value */ if (baseval == -1) { /* If keep file graph base */ meshptr->baseval = baseadj; /* Set graph base as file base */ baseadj = 0; /* No base adjustment needed */ } else { /* If set graph base */ meshptr->baseval = baseval; /* Set wanted graph base */ baseadj = baseval - baseadj; /* Update base adjust */ } meshptr->flagval = MESHFREEVERT | MESHVERTGROUP; /* Edge array grouped with vertex array */ meshptr->velmnbr = velmnbr; meshptr->velmbas = velmbas + baseadj; meshptr->velmnnd = velmnbr + (velmbas + baseadj); meshptr->vnodnbr = vnodnbr; meshptr->vnodbas = vnodbas + baseadj; meshptr->vnodnnd = vnodnbr + (vnodbas + baseadj); vertnbr = velmnbr + vnodnbr; velonbr = (proptab[2] != 0) ? vertnbr : 0; vlblnbr = (proptab[0] != 0) ? vertnbr : 0; if (memAllocGroup ((void **) (void *) &meshptr->verttax, (size_t) ((vertnbr + 1) * sizeof (Gnum)), &meshptr->vlbltax, (size_t) ( vlblnbr * sizeof (Gnum)), &meshptr->velotax, (size_t) ( velonbr * sizeof (Gnum)), /* Allocate single array for both element and node vertices */ &meshptr->edgetax, (size_t) ( meshptr->edgenbr * sizeof (Gnum)), NULL) == NULL) { /* Edge array grouped with vertex arrays */ errorPrint ("meshLoad: out of memory (1)"); meshFree (meshptr); return (1); } meshptr->verttax -= meshptr->baseval; meshptr->vendtax = meshptr->verttax + 1; /* Use compact vertex array */ meshptr->velotax = (velonbr != 0) ? (meshptr->velotax - meshptr->baseval) : NULL; /* Store based load array access in velotax */ meshptr->vnlotax = meshptr->velotax; meshptr->vlbltax = (vlblnbr != 0) ? (meshptr->vlbltax - meshptr->baseval) : NULL; meshptr->velosum = meshptr->velmnbr; /* Assume element and node vertices not weighted */ meshptr->vnlosum = meshptr->vnodnbr; meshptr->edgetax -= meshptr->baseval; degrmax = 0; edgennd = meshptr->edgenbr + meshptr->baseval; edgenum = meshptr->baseval; /* No edges allocated yet */ vlblmax = vertnbr + meshptr->baseval - 1; /* No vertex labels known */ if (meshptr->velmbas <= meshptr->vnodbas) { /* If elements first */ vertbastab[0] = meshptr->velmbas; vertnndtab[0] = meshptr->velmnnd; edgeadjtab[0] = meshptr->vnodbas - meshptr->baseval; vertbastab[1] = meshptr->vnodbas; vertnndtab[1] = meshptr->vnodnnd; edgeadjtab[1] = meshptr->velmbas - meshptr->baseval; } else { vertbastab[0] = meshptr->vnodbas; vertnndtab[0] = meshptr->vnodnnd; edgeadjtab[0] = meshptr->velmbas - meshptr->baseval; vertbastab[1] = meshptr->velmbas; vertnndtab[1] = meshptr->velmnnd; edgeadjtab[1] = meshptr->vnodbas - meshptr->baseval; } for (i = 0; i < 2; i ++) { /* For both kinds of vertices */ Gnum vertbas; Gnum vertnnd; Gnum edgeadj; Gnum vertnum; Gnum velosum; Gnum velomax; vertbas = vertbastab[i]; vertnnd = vertnndtab[i]; edgeadj = edgeadjtab[i]; velosum = 0; velomax = 1; /* Assume vertex loads all equal to 1 */ for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* For all vertices of same kind */ Gnum degrval; if (meshptr->vlbltax != NULL) { /* If must read label */ if (intLoad (stream, &vlblval) != 1) { /* Read label data */ errorPrint ("meshLoad: bad input (3)"); meshFree (meshptr); return (1); } meshptr->vlbltax[vertnum] = vlblval + vertbas + baseadj; /* Adjust vertex label */ if (meshptr->vlbltax[vertnum] > vlblmax) /* Get maximum vertex label */ vlblmax = meshptr->vlbltax[vertnum]; } if (proptab[2] != 0) { /* If must read vertex load */ if ((intLoad (stream, &veloval) != 1) || /* Read vertex load data */ (veloval < 1)) { errorPrint ("meshLoad: bad input (4)"); meshFree (meshptr); return (1); } if (veloval > velomax) velomax = veloval; meshptr->velotax[vertnum] = veloval; velosum += veloval; } if (intLoad (stream, °rval) != 1) { /* Read vertex degree */ errorPrint ("meshLoad: bad input (5)"); meshFree (meshptr); return (1); } if (degrmax < degrval) /* Set maximum degree */ degrmax = degrval; meshptr->verttax[vertnum] = edgenum; /* Set index in edge array */ degrval += edgenum; if (degrval > edgennd) { /* Check if edge array overflows */ errorPrint ("meshLoad: invalid arc count (1)"); meshFree (meshptr); return (1); } for ( ; edgenum < degrval; edgenum ++) { if (proptab[1] != 0) { /* If must read edge load */ if (intLoad (stream, &edloval) != 1) { /* Read edge load data (useless) */ errorPrint ("meshLoad: bad input (6)"); meshFree (meshptr); return (1); } } if (intLoad (stream, &edgeval) != 1) { /* Read edge data */ errorPrint ("meshLoad: bad input (7)"); meshFree (meshptr); return (1); } meshptr->edgetax[edgenum] = edgeval + edgeadj; } } if (vertbastab[i] == meshptr->velmbas) { /* If elements are processed */ if (velomax == 1) /* If element loads not significant */ meshptr->velotax = NULL; else meshptr->velosum = velosum; } else { if (velomax == 1) /* If node loads not significant */ meshptr->vnlotax = NULL; else meshptr->vnlosum = velosum; } } meshptr->verttax[vertnbr + meshptr->baseval] = meshptr->edgenbr + meshptr->baseval; /* Set end of edge array */ if (edgenum != edgennd) { /* Check if number of edges is valid */ errorPrint ("meshLoad: invalid arc count (2)"); meshFree (meshptr); return (1); } meshptr->degrmax = degrmax; if (meshptr->vlbltax != NULL) { /* If vertex label renaming necessary */ if (graphLoad2 (meshptr->baseval, vertnbr + meshptr->baseval, meshptr->verttax, /* Rename edge ends */ meshptr->vendtax, meshptr->edgetax, vlblmax, meshptr->vlbltax) != 0) { errorPrint ("meshLoad: cannot relabel vertices"); meshFree (meshptr); return (1); } } #ifdef SCOTCH_DEBUG_MESH2 if (meshCheck (meshptr) != 0) { /* Check mesh consistency */ errorPrint ("meshLoad: inconsistent mesh data"); meshFree (meshptr); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ return (0); } /* This routine saves a source mesh to ** the given stream. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int meshSave ( const Mesh * restrict const meshptr, FILE * restrict const stream) { char propstr[4]; /* Property string */ Gnum vertbastab[2]; Gnum vertnndtab[2]; Gnum * velotabtab[2]; Gnum edgeadjtab[2]; int i; int o; propstr[0] = (meshptr->vlbltax != NULL) ? '1' : '0'; /* Set property string */ propstr[1] = '0'; /* No edge loads written */ propstr[2] = ((meshptr->velotax != NULL) || (meshptr->vnlotax != NULL)) ? '1' : '0'; propstr[3] = '\0'; if (fprintf (stream, "1\n" GNUMSTRING "\t" GNUMSTRING "\t" GNUMSTRING "\n" GNUMSTRING "\t" GNUMSTRING "\t%3s\n", /* Write file header */ (Gnum) meshptr->velmnbr, (Gnum) meshptr->vnodnbr, (Gnum) meshptr->edgenbr, (Gnum) meshptr->velmbas, (Gnum) meshptr->vnodbas, propstr) == EOF) { errorPrint ("meshSave: bad output (1)"); return (1); } vertbastab[0] = meshptr->baseval; vertnndtab[1] = meshptr->velmnbr + meshptr->vnodnbr + meshptr->baseval; if (meshptr->velmbas <= meshptr->vnodbas) { /* If elements first */ vertnndtab[0] = meshptr->velmnnd; velotabtab[0] = meshptr->velotax; edgeadjtab[0] = meshptr->vnodbas - meshptr->baseval; vertbastab[1] = meshptr->vnodbas; velotabtab[0] = meshptr->vnlotax; edgeadjtab[1] = meshptr->velmbas - meshptr->baseval; } else { vertnndtab[0] = meshptr->vnodnnd; velotabtab[0] = meshptr->vnlotax; edgeadjtab[0] = meshptr->velmbas - meshptr->baseval; vertbastab[1] = meshptr->velmbas; velotabtab[1] = meshptr->velotax; edgeadjtab[1] = meshptr->vnodbas - meshptr->baseval; } for (i = 0; i < 2; i ++) { /* For both kinds of vertices */ Gnum vertbas; Gnum vertnnd; Gnum * restrict velotax; Gnum edgeadj; Gnum vertnum; vertbas = vertbastab[i]; vertnnd = vertnndtab[i]; velotax = velotabtab[i]; edgeadj = edgeadjtab[i]; for (vertnum = vertbas, o = 0; (vertnum < vertnnd) && (o == 0); vertnum ++) { Gnum edgenum; if (meshptr->vlbltax != NULL) /* Write vertex label if necessary */ o = (fprintf (stream, GNUMSTRING "\t", (Gnum) meshptr->vlbltax[vertnum]) == EOF); if (propstr[2] != '0') /* Write vertex load if necessary */ o |= (fprintf (stream, GNUMSTRING "\t", (Gnum) ((velotax != NULL) ? velotax[vertnum] : 1)) == EOF); o |= (fprintf (stream, GNUMSTRING, (Gnum) (meshptr->vendtax[vertnum] - meshptr->verttax[vertnum])) == EOF); /* Write vertex degree */ for (edgenum = meshptr->verttax[vertnum]; (edgenum < meshptr->vendtax[vertnum]) && (o == 0); edgenum ++) { o |= (putc ('\t', stream) == EOF); o |= (intSave (stream, /* Write edge end */ (meshptr->vlbltax != NULL) ? meshptr->vlbltax[meshptr->edgetax[edgenum]] : meshptr->edgetax[edgenum] - edgeadj) != 1); } o |= (putc ('\n', stream) == EOF); } } if (o != 0) errorPrint ("meshSave: bad output (2)"); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_io.h000066400000000000000000000054651514310134000255230ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_io.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the source graph input/output **/ /** functions. **/ /** **/ /** DATES : # Version 4.0 : from : 14 nov 2002 **/ /** to : 14 nov 2002 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int meshLoad2 (const Gnum, const Gnum, const Gnum * const, const Gnum * const, Gnum * const, const Gnum, const Gnum * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_io_habo.c000066400000000000000000000312051514310134000264760ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_io_habo.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the I/O routines **/ /** for handling the Harwell-Boeing **/ /** elemental matrix format. **/ /** **/ /** DATES : # Version 4.0 : from : 19 jan 2004 **/ /** to : 20 jan 2004 **/ /** # Version 6.0 : from : 15 may 2018 **/ /** to : 15 may 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "mesh.h" /* This routine loads the geometrical mesh ** in the Harwell-Boeing matrix format, and ** allocates the proper structures. ** - 0 : on success. ** - !0 : on error. */ int meshGeomLoadHabo ( Mesh * restrict const meshptr, /* Mesh to load */ Geom * restrict const geomptr, /* Geometry to load */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { long habmattag; /* Matrix tag number in file */ long habmatnum; /* Current matrix number */ char habmatbuf[4][84]; /* Matrix header line buffers */ char habmattype[3]; /* Matrix type */ long habcrdnbr; /* Total number of data lines */ long habrhsnbr; /* Number of right hand side lines */ int habcolsiz; /* Size of column type */ int habnzrsiz; /* Size of non-zero type */ Gnum habvixnbr; /* Number of element matrix variable indices */ Gnum habeltnbr; /* Number of elements */ Gnum habvarnbr; /* Number of variables, that is, nodes */ Gnum velmnum; /* Number of current element vertex */ Gnum vnodnum; /* Number of current node vertex */ Gnum edgenum; /* Number of current edge (arc) */ Gnum edgesum; /* Accumulated number of edges in node part */ Gnum degrmax; /* Maximum degree */ int c; if (((habmattag = atol (dataptr)) == 0) && /* Get tag value */ (dataptr[0] != '0') && (dataptr[0] != '\0')) { errorPrint ("meshGeomLoadHabo: bad input (1)"); return (1); } for (habmatnum = 0; habmatnum <= habmattag; habmatnum ++) { /* Read headers and skip if necessary */ memSet (habmatbuf[0], ' ', &habmatbuf[3][83] - &habmatbuf[0][0]); /* Initialize header buffers */ if ((fgets (habmatbuf[0], 83, filesrcptr) == NULL) || /* Read mesh header */ (fgets (habmatbuf[1], 83, filesrcptr) == NULL) || (fgets (habmatbuf[2], 83, filesrcptr) == NULL) || (fgets (habmatbuf[3], 83, filesrcptr) == NULL)) { errorPrint ("meshGeomLoadHabo: bad input (2)"); return (1); } habmatbuf[1][70] = '\0'; /* Extract header values */ habrhsnbr = atol (&habmatbuf[1][56]); habmatbuf[1][14] = '\0'; habcrdnbr = atol (&habmatbuf[1][00]); habmattype[1] = toupper (habmatbuf[2][1]); habmattype[2] = toupper (habmatbuf[2][2]); #if 0 /* Not used */ habmattype[0] = toupper (habmatbuf[2][0]); habmatbuf[2][70] = '\0'; habevlnbr = (Gnum) atol (&habmatbuf[2][57]); /* NELTVL: number of element matrix values (not used) */ #endif habmatbuf[2][56] = '\0'; habvixnbr = (Gnum) atol (&habmatbuf[2][43]); /* VARIX */ habmatbuf[2][42] = '\0'; habeltnbr = (Gnum) atol (&habmatbuf[2][29]); /* NELT */ habmatbuf[2][28] = '\0'; habvarnbr = (Gnum) atol (&habmatbuf[2][14]); /* NVAR */ habmatbuf[2][14] = '\0'; if ((c = sscanf (habmatbuf[3], "(%*d%*[Ii]%d) (%*d%*[Ii]%d)", &habcolsiz, &habnzrsiz)) != 2) { errorPrint ("meshGeomLoadHabo: bad input (3, %d)", c); return (1); } if (habrhsnbr != 0) { while ((c = getc (filesrcptr)) != '\n'){ /* Skip RHS format line */ if (c == EOF) { errorPrint ("meshGeomLoadHabo: bad input (4)"); return (1); } } } if (habmatnum < habmattag) { /* If we have to skip file */ while (habcrdnbr -- > 0) { /* Skip all of file lines */ while ((c = getc (filesrcptr)) != '\n') { /* Skip line */ if (c == EOF) { errorPrint ("meshGeomLoadHabo: bad input (5)"); return (1); } } } } } if (habmattype[2] != 'E') { errorPrint ("meshGeomLoadHabo: only elemental matrices supported"); return (1); } if (habmattype[1] == 'R') { errorPrint ("meshGeomLoadHabo: rectangular matrices not supported"); return (1); } if (((meshptr->verttax = (Gnum *) memAlloc ((habeltnbr + habvarnbr + 1) * sizeof (Gnum))) == NULL) || ((meshptr->edgetax = (Gnum *) memAlloc (habvixnbr * 2 * sizeof (Gnum))) == NULL)) { errorPrint ("meshGeomLoadHabo: out of memory (1)"); if (meshptr->verttax != NULL) { memFree (meshptr->verttax); meshptr->verttax = NULL; } return (1); } meshptr->flagval = MESHFREETABS; /* Totally new mesh structure */ meshptr->baseval = 1; /* Harwell-Boeing meshes have base 1 */ meshptr->vendtax = meshptr->verttax; meshptr->verttax --; meshptr->edgenbr = habvixnbr * 2; meshptr->edgetax --; meshptr->velmnbr = habeltnbr; meshptr->velmbas = habvarnbr + 1; meshptr->velmnnd = habeltnbr + habvarnbr + 1; meshptr->vnodnbr = habvarnbr; meshptr->vnodbas = 1; meshptr->vnodnnd = meshptr->velmbas; meshptr->vnlosum = habvarnbr; for (velmnum = meshptr->velmbas; velmnum <= meshptr->velmnnd; velmnum ++) { /* Read ELTPTR as second part of vertex array */ Gnum habcolval; /* Current column value */ int habcolidx; /* Current index in column value */ while (((c = getc (filesrcptr)) == '\n') || (c == '\r')) ; habcolval = (c == ' ') ? 0 : (c - '0'); for (habcolidx = 1; habcolidx < habcolsiz; habcolidx ++) { if ((c = getc (filesrcptr)) != ' ') habcolval = habcolval * 10 + c - '0'; } if (c == EOF) { errorPrint ("meshGeomLoadHabo: bad input (6)"); meshFree (meshptr); return (1); } #ifdef SCOTCH_DEBUG_MESH2 if ((habcolval < 1) || (habcolval > (habvixnbr + 1))) { errorPrint ("meshGeomLoadHabo: bad input (7)"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ meshptr->verttax[velmnum] = habcolval + habvixnbr; } if (meshptr->verttax[velmnum - 1] != (habvixnbr + habvixnbr + 1)) { errorPrint ("meshGeomLoadHabo: bad input (8)"); meshFree (meshptr); return (1); } memSet (meshptr->verttax + 1, 0, habvarnbr * sizeof (Gnum)); /* Pre-set node adjacency array */ for (edgenum = habvixnbr + 1; edgenum <= meshptr->edgenbr; edgenum ++) { /* Read VARIND as second part of edge array */ Gnum habnodval; /* Current non-zero value */ int habnzridx; /* Current index in non-zero value */ while (((c = getc (filesrcptr)) == '\n') || (c == '\r')) ; habnodval = (c == ' ') ? 0 : (c - '0'); for (habnzridx = 1; habnzridx < habnzrsiz; habnzridx ++) { if ((c = getc (filesrcptr)) != ' ') habnodval = habnodval * 10 + c - '0'; } if (c == EOF) { errorPrint ("meshGeomLoadHabo: bad input (9)"); meshFree (meshptr); return (1); } #ifdef SCOTCH_DEBUG_MESH2 if ((habnodval < 1) || (habnodval > habvarnbr)) { errorPrint ("meshGeomLoadHabo: bad input (10)"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ meshptr->edgetax[edgenum] = habnodval; meshptr->verttax[habnodval] ++; } degrmax = 1; for (vnodnum = edgesum = 1; vnodnum < meshptr->vnodnnd; vnodnum ++) { /* Accumulate start indices for node part of vertex array */ Gnum degrval; degrval = meshptr->verttax[vnodnum]; if (degrval > degrmax) degrmax = degrval; meshptr->verttax[vnodnum] = edgesum; edgesum += degrval; } #ifdef SCOTCH_DEBUG_MESH2 if (edgesum != meshptr->verttax[meshptr->velmbas]) { errorPrint ("meshGeomLoadHabo: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ for (velmnum = meshptr->velmbas, edgenum = habvixnbr + 1; /* Re-scan element part of edge array to build node part of edge array */ velmnum < meshptr->velmnnd; velmnum ++) { if ((meshptr->vendtax[velmnum] - edgenum) > degrmax) degrmax = (meshptr->vendtax[velmnum] - edgenum); for ( ; edgenum < meshptr->vendtax[velmnum]; edgenum ++) { Gnum vnodnum; vnodnum = meshptr->edgetax[edgenum]; #ifdef SCOTCH_DEBUG_MESH2 if ((vnodnum < 1) || (vnodnum > habvarnbr)) { errorPrint ("meshGeomLoadHabo: internal error (2)"); return (1); } if (meshptr->verttax[vnodnum] > habvixnbr) { errorPrint ("meshGeomLoadHabo: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ meshptr->edgetax[meshptr->verttax[vnodnum] ++] = velmnum; } } meshptr->degrmax = degrmax; for (vnodnum = edgesum = 1; vnodnum < meshptr->vnodnnd; vnodnum ++) { /* Restore start indices for node part of vertex array */ Gnum edgenum; edgenum = meshptr->verttax[vnodnum]; meshptr->verttax[vnodnum] = edgesum; edgesum = edgenum; } #ifdef SCOTCH_DEBUG_MESH2 if (meshCheck (meshptr) != 0) { errorPrint ("meshGeomLoadHabo: inconsistent mesh data"); return (1); } #endif /* SCOTCH_DEBUG_MESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_io_scot.c000066400000000000000000000302131514310134000265330ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_io_scot.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the I/O routines **/ /** for handling the Scotch mesh format. **/ /** **/ /** DATES : # Version 4.0 : from : 19 jan 2004 **/ /** to : 19 jan 2004 **/ /** # Version 5.0 : from : 13 sep 2006 **/ /** to : 27 feb 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 28 apr 2019 **/ /** to : 28 apr 2019 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "geom.h" #include "graph.h" #include "mesh.h" #include "mesh_io_scot.h" /* This routine loads the geometrical mesh ** in the Scotch graph format, and allocates ** the proper structures. ** - 0 : on success. ** - !0 : on error. */ int meshGeomLoadScot ( Mesh * restrict const meshptr, /* Graph to load */ Geom * restrict const geomptr, /* Geometry to load */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { double * restrict coorfiletab; /* Pointer to geometric data read from file */ MeshGeomScotSort * restrict coorsorttab; /* Pointer to geometric data sorting array */ int coorsortflag; /* Flag set if geometric data sorted by label */ Gnum coornbr; /* Number of geometric coordinates in file */ Gnum coornum; /* Number of current coordinate */ MeshGeomScotSort * restrict vnodsorttab; /* Pointer to graph sorting array */ int vnodsortflag; /* Flag set if graph data sorted by label */ Gnum vnodnum; /* Current graph vertex */ Gnum dimnnbr; /* Dimension of geometry file */ int o; if (filesrcptr != NULL) { if (meshLoad (meshptr, filesrcptr, -1) != 0) return (1); } if (filegeoptr == NULL) return (0); if ((intLoad (filegeoptr, &dimnnbr) != 1) || /* Read type and number of geometry items */ (intLoad (filegeoptr, &coornbr) != 1) || (dimnnbr < 1) || (dimnnbr > 3)) { errorPrint ("meshGeomLoadScot: bad input (1)"); return (1); } if ((filesrcptr != NULL) && (meshptr->vnodnbr != coornbr)) { errorPrint ("meshGeomLoadScot: inconsistent number of vertices"); return (1); } if (meshptr->vnodnbr == 0) return (0); if ((geomptr->geomtab == NULL) && /* Allocate geometry if necessary */ ((geomptr->geomtab = (double *) memAlloc (meshptr->vnodnbr * dimnnbr * sizeof (double))) == NULL)) { errorPrint ("meshGeomLoadScot: out of memory (1)"); return (1); } if (memAllocGroup ((void **) &coorfiletab, (size_t) (coornbr * dimnnbr * sizeof (double)), &coorsorttab, (size_t) (coornbr * sizeof (MeshGeomScotSort)), &vnodsorttab, (size_t) (meshptr->vnodnbr * sizeof (MeshGeomScotSort)), NULL) == NULL) { errorPrint ("meshGeomLoadScot: out of memory (2)"); return (1); } o = 0; coorsortflag = 1; /* Assume geometry data sorted */ for (coornum = 0; (o == 0) && (coornum < coornbr); coornum ++) { Gnum vlblnum; o = 1 - intLoad (filegeoptr, &vlblnum); coorsorttab[coornum].labl = vlblnum; coorsorttab[coornum].num = coornum; if ((coornum > 0) && /* Check if geometry data sorted */ (coorsorttab[coornum].labl < coorsorttab[coornum - 1].labl)) coorsortflag = 0; /* Geometry data not sorted */ o |= 1 - fscanf (filegeoptr, "%lf", /* Read X coordinate */ &coorfiletab[coornum * dimnnbr]); if (dimnnbr > 1) { o |= 1 - fscanf (filegeoptr, "%lf", /* Read Y coordinate */ &coorfiletab[(coornum * dimnnbr) + 1]); if (dimnnbr > 2) o |= 1 - fscanf (filegeoptr, "%lf", /* Read Z coordinate */ &coorfiletab[(coornum * dimnnbr) + 2]); } } if (o != 0) { errorPrint ("meshGeomLoadScot: bad input (2)"); memFree (coorfiletab); /* Free group leader */ return (1); } if (coorsortflag != 1) /* If geometry data not sorted */ intSort2asc1 (coorsorttab, coornbr); /* Sort sort area by ascending labels */ for (coornum = 1; coornum < coornbr; coornum ++) { /* Check geometric data integrity */ if (coorsorttab[coornum].labl == coorsorttab[coornum - 1].labl) { errorPrint ("meshGeomLoadScot: duplicate vertex label"); memFree (coorfiletab); /* Free group leader */ return (1); } } if (meshptr->vlbltax != NULL) { /* If graph has vertex labels */ vnodsortflag = 1; /* Assume graph data sorted */ for (vnodnum = 0; vnodnum < meshptr->vnodnbr; vnodnum ++) { vnodsorttab[vnodnum].labl = meshptr->vlbltax[vnodnum + meshptr->baseval]; vnodsorttab[vnodnum].num = vnodnum; if ((vnodnum > 0) && /* Check if graph data sorted */ (vnodsorttab[vnodnum].labl < vnodsorttab[vnodnum - 1].labl)) vnodsortflag = 0; /* Graph data not sorted */ } if (vnodsortflag != 1) /* If graph data not sorted */ intSort2asc1 (vnodsorttab, meshptr->vnodnbr); /* Sort sort area by ascending labels */ } else { /* Graph does not have vertex labels */ for (vnodnum = 0; vnodnum < meshptr->vnodnbr; vnodnum ++) vnodsorttab[vnodnum].labl = vnodsorttab[vnodnum].num = vnodnum; } for (coornum = vnodnum = 0; vnodnum < meshptr->vnodnbr; vnodnum ++) { /* For all vertices in graph */ while ((coornum < coornbr) && (coorsorttab[coornum].labl < vnodsorttab[vnodnum].labl)) coornum ++; /* Search geometry vertex with same label */ if ((coornum >= coornbr) || (coorsorttab[coornum].labl > vnodsorttab[vnodnum].labl)) { /* If label does not exist */ errorPrint ("meshGeomLoadScot: vertex geometry data not found (%d)", vnodsorttab[vnodnum].labl); memFree (coorfiletab); /* Free group leader */ return (1); } memCpy (&geomptr->geomtab[vnodsorttab[vnodnum].num * dimnnbr], &coorfiletab[coorsorttab[coornum ++].num * dimnnbr], dimnnbr * sizeof (double)); } memFree (coorfiletab); /* Free group leader */ return (0); } /* This routine saves the source mesh ** in the Scotch mesh and geometry formats. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int meshGeomSaveScot ( const Mesh * restrict const meshptr, /* Mesh to save */ const Geom * restrict const geomptr, /* Geometry to save */ FILE * const filesrcptr, /* Topological data */ FILE * const filegeoptr, /* No use */ const char * const dataptr) /* No use */ { Gnum vnodnum; int dimnnbr; int o; if (filesrcptr != NULL) { if (meshSave (meshptr, filesrcptr) != 0) /* Save mesh structural data */ return (1); } dimnnbr = geomptr->dimnnbr; o = 0; if (geomptr->geomtab != NULL) { /* If geometrical data present */ o = (fprintf (filegeoptr, GNUMSTRING "\n" GNUMSTRING "\n", /* Output file header */ (Gnum) geomptr->dimnnbr, (Gnum) meshptr->vnodnbr) == EOF); switch (dimnnbr) { /* Output geometry data */ case 1 : for (vnodnum = meshptr->vnodbas; (o == 0) && (vnodnum < meshptr->vnodnnd); vnodnum ++) o |= (fprintf (filegeoptr, GNUMSTRING "\t%lf\n", (Gnum) ((meshptr->vlbltax != NULL) ? meshptr->vlbltax[vnodnum] : vnodnum), (double) geomptr->geomtab[(vnodnum - meshptr->vnodbas) * dimnnbr]) == EOF); break; case 2 : for (vnodnum = meshptr->vnodbas; (o == 0) && (vnodnum < meshptr->vnodnnd); vnodnum ++) o |= (fprintf (filegeoptr, GNUMSTRING "\t%lf\t%lf\n", (Gnum) ((meshptr->vlbltax != NULL) ? meshptr->vlbltax[vnodnum] : vnodnum), (double) geomptr->geomtab[(vnodnum - meshptr->vnodbas) * dimnnbr], (double) geomptr->geomtab[(vnodnum - meshptr->vnodbas) * dimnnbr + 1]) == EOF); break; case 3 : for (vnodnum = meshptr->vnodbas; (o == 0) && (vnodnum < meshptr->vnodnnd); vnodnum ++) o |= (fprintf (filegeoptr, GNUMSTRING "\t%lf\t%lf\t%lf\n", (Gnum) ((meshptr->vlbltax != NULL) ? meshptr->vlbltax[vnodnum] : vnodnum), (double) geomptr->geomtab[(vnodnum - meshptr->vnodbas) * dimnnbr], (double) geomptr->geomtab[(vnodnum - meshptr->vnodbas) * dimnnbr + 1], (double) geomptr->geomtab[(vnodnum - meshptr->vnodbas) * dimnnbr + 2]) == EOF); break; #ifdef SCOTCH_DEBUG_MESH2 default : errorPrint ("meshGeomSaveScot: invalid geometry type"); return (1); #endif /* SCOTCH_DEBUG_MESH2 */ } if (o != 0) { errorPrint ("meshGeomSaveScot: bad output"); } } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/mesh_io_scot.h000066400000000000000000000055621514310134000265510ustar00rootroot00000000000000/* Copyright 2004,2007,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mesh_io_scot.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the Scotch graph format **/ /** module. **/ /** **/ /** DATES : # Version 6.0 : from : 09 apr 2019 **/ /** to : 09 apr 2019 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The sort structure, used to sort graph vertices by label. Field labl is first because of intSort2asc1. +*/ typedef struct MeshGeomScotSort_ { Gnum labl; /*+ Node label: FIRST +*/ Gnum num; /*+ Node number +*/ } MeshGeomScotSort; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/module.h000066400000000000000000002606101514310134000253600ustar00rootroot00000000000000/* Copyright 2004,2007-2016,2018-2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : module.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This is the global configuration file **/ /** for the whole libSCOTCH library module. **/ /** **/ /** DATES : # Version 3.2 : from : 22 jun 1998 **/ /** to : 13 may 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 03 oct 1998 **/ /** # Version 3.4 : from : 01 nov 2001 **/ /** to : 01 nov 2001 **/ /** # Version 4.0 : from : 12 dec 2001 **/ /** to : 24 nov 2005 **/ /** # Version 5.0 : from : 24 feb 2007 **/ /** to : 24 jul 2007 **/ /** # Version 5.1 : from : 25 oct 2007 **/ /** to : 20 feb 2011 **/ /** # Version 6.0 : from : 12 sep 2008 **/ /** to : 24 aug 2020 **/ /** # Version 6.1 : from : 24 aug 2020 **/ /** to : 30 dec 2021 **/ /** # Version 7.0 : from : 19 feb 2018 **/ /** to : 08 feb 2026 **/ /** **/ /************************************************************/ /* ** Version and copyright strings. */ #define SCOTCH_COPYRIGHT_STRING "Copyright 1992-2026 IPB, Universite de Bordeaux, INRIA & CNRS, France" #define SCOTCH_LICENSE_STRING "This software is libre/free software under CeCILL-C -- see the user's manual for more information" #ifdef SCOTCH_CODENAME #define SCOTCH_VERSION_STRING STRINGIFY (SCOTCH_VERSION) "." STRINGIFY (SCOTCH_RELEASE) "." STRINGIFY (SCOTCH_PATCHLEVEL) " (" STRINGIFY (SCOTCH_CODENAME) ")" #else /* SCOTCH_CODENAME */ #define SCOTCH_VERSION_STRING STRINGIFY (SCOTCH_VERSION) "." STRINGIFY (SCOTCH_RELEASE) "." STRINGIFY (SCOTCH_PATCHLEVEL) #endif /* SCOTCH_CODENAME */ /* ** Handling of parallelism. */ #ifdef SCOTCH_PTSCOTCH #define COMMON_MPI #endif /* SCOTCH_PTSCOTCH */ /* ** Thread management. */ /*+ Old versions of Scotch used COMMON_PTHREAD as an alias for COMMON_PTHREAD_FILE. Maintain that semantics. +*/ #ifdef COMMON_PTHREAD #ifndef COMMON_PTHREAD_FILE #define COMMON_PTHREAD_FILE #endif /* COMMON_PTHREAD_FILE */ #endif /* COMMON_PTHREAD */ /*+ Enable the new semantics of COMMON_PTHREAD_FILE. +*/ #ifdef COMMON_PTHREAD_FILE #ifndef COMMON_PTHREAD #define COMMON_PTHREAD #endif /* COMMON_PTHREAD */ #ifndef COMMON_PTHREAD_MEMORY #define COMMON_PTHREAD_MEMORY #endif /* COMMON_PTHREAD_MEMORY */ #endif /* COMMON_PTHREAD_FILE */ /*+ Enable thread management from SCOTCH_PTHREAD. +*/ #ifdef SCOTCH_PTHREAD #ifndef COMMON_PTHREAD #define COMMON_PTHREAD #endif /* COMMON_PTHREAD */ #ifndef COMMON_PTHREAD_MEMORY #define COMMON_PTHREAD_MEMORY #endif /* COMMON_PTHREAD_MEMORY */ #endif /* SCOTCH_PTHREAD */ /*+ Handle old semantics of thread affinity. */ #ifdef SCOTCH_PTHREAD_AFFINITY_LINUX #ifndef COMMON_PTHREAD_AFFINITY_LINUX #define COMMON_PTHREAD_AFFINITY_LINUX #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ #endif /* SCOTCH_PTHREAD_AFFINITY_LINUX */ /* ** Debug values. */ #ifdef SCOTCH_DEBUG_FULL #ifndef SCOTCH_DEBUG_ALL #define SCOTCH_DEBUG_ALL #endif /* SCOTCH_DEBUG_ALL */ #define SCOTCH_DEBUG_BGRAPH3 #define SCOTCH_DEBUG_DGRAPH3 #define SCOTCH_DEBUG_FIBO3 #define SCOTCH_DEBUG_GAIN3 #define SCOTCH_DEBUG_KGRAPH3 #define SCOTCH_DEBUG_PARSER3 #define SCOTCH_DEBUG_VGRAPH3 #define SCOTCH_DEBUG_VMESH3 #define SCOTCH_DEBUG_WGRAPH3 #endif /* SCOTCH_DEBUG_FULL */ #ifdef SCOTCH_DEBUG_ALL #ifndef SCOTCH_DEBUG #define SCOTCH_DEBUG #endif /* SCOTCH_DEBUG */ #define COMMON_DEBUG #define SCOTCH_DEBUG_ARCH2 #define SCOTCH_DEBUG_FIBO2 #define SCOTCH_DEBUG_GAIN2 #define SCOTCH_DEBUG_PARSER2 #define SCOTCH_DEBUG_CONTEXT2 #define SCOTCH_DEBUG_BDGRAPH2 #define SCOTCH_DEBUG_BGRAPH2 #define SCOTCH_DEBUG_DGRAPH2 #define SCOTCH_DEBUG_DMAP2 #define SCOTCH_DEBUG_DMESH2 #define SCOTCH_DEBUG_DORDER2 #define SCOTCH_DEBUG_GEOM2 #define SCOTCH_DEBUG_GRAPH2 #define SCOTCH_DEBUG_HDGRAPH2 #define SCOTCH_DEBUG_HGRAPH2 #define SCOTCH_DEBUG_HMESH2 #define SCOTCH_DEBUG_KDGRAPH2 #define SCOTCH_DEBUG_KDMAP2 #define SCOTCH_DEBUG_KGRAPH2 #define SCOTCH_DEBUG_LIBRARY2 #define SCOTCH_DEBUG_MAP2 #define SCOTCH_DEBUG_MESH2 #define SCOTCH_DEBUG_ORDER2 #define SCOTCH_DEBUG_PARSER2 #define SCOTCH_DEBUG_VDGRAPH2 #define SCOTCH_DEBUG_VGRAPH2 #define SCOTCH_DEBUG_VMESH2 #define SCOTCH_DEBUG_WGRAPH2 #endif /* SCOTCH_DEBUG_ALL */ #ifdef SCOTCH_DEBUG #define SCOTCH_DEBUG_ARCH1 #define SCOTCH_DEBUG_FIBO1 #define SCOTCH_DEBUG_GAIN1 #define SCOTCH_DEBUG_PARSER1 #define SCOTCH_DEBUG_CONTEXT1 #define SCOTCH_DEBUG_BDGRAPH1 #define SCOTCH_DEBUG_BGRAPH1 #define SCOTCH_DEBUG_DGRAPH1 #define SCOTCH_DEBUG_DMAP1 #define SCOTCH_DEBUG_DMESH1 #define SCOTCH_DEBUG_DORDER1 #define SCOTCH_DEBUG_GEOM1 #define SCOTCH_DEBUG_GRAPH1 #define SCOTCH_DEBUG_HDGRAPH1 #define SCOTCH_DEBUG_HGRAPH1 #define SCOTCH_DEBUG_HMESH1 #define SCOTCH_DEBUG_KDGRAPH1 #define SCOTCH_DEBUG_KDMAP1 #define SCOTCH_DEBUG_KGRAPH1 #define SCOTCH_DEBUG_LIBRARY1 #define SCOTCH_DEBUG_MAP1 #define SCOTCH_DEBUG_MESH1 #define SCOTCH_DEBUG_ORDER1 #define SCOTCH_DEBUG_PARSER1 #define SCOTCH_DEBUG_VDGRAPH1 #define SCOTCH_DEBUG_VGRAPH1 #define SCOTCH_DEBUG_VMESH1 #define SCOTCH_DEBUG_WGRAPH1 #endif /* SCOTCH_DEBUG */ /* ** Function renaming. */ #ifndef SCOTCH_NAME_SUFFIX #define SCOTCH_NAME_SUFFIXC #else /* SCOTCH_NAME_SUFFIX */ #ifndef SCOTCH_NAME_SUFFIXC #define SCOTCH_NAME_SUFFIXC SCOTCH_NAME_SUFFIX #endif /* SCOTCH_NAME_SUFFIXC */ #ifndef SCOTCH_RENAME #define SCOTCH_RENAME #endif /* SCOTCH_RENAME */ #ifndef SCOTCH_RENAME_PUBLIC #define SCOTCH_RENAME_PUBLIC #endif /* SCOTCH_RENAME_PUBLIC */ #endif /* SCOTCH_NAME_SUFFIX */ #ifndef SCOTCH_NAME_SUFFIXFL #define SCOTCH_NAME_SUFFIXFL SCOTCH_NAME_SUFFIXC #define SCOTCH_NAME_SUFFIXFU SCOTCH_NAME_SUFFIXC #else /* SCOTCH_NAME_SUFFIXFL */ #ifndef SCOTCH_RENAME #define SCOTCH_RENAME #endif /* SCOTCH_RENAME */ #ifndef SCOTCH_RENAME_PUBLIC #define SCOTCH_RENAME_PUBLIC #endif /* SCOTCH_RENAME_PUBLIC */ #endif /* SCOTCH_NAME_SUFFIXFL */ #define SCOTCH_NAME_PREFIX_INTERN _SCOTCH #define SCOTCH_NAME_PREFIX_PUBLICFL scotchf #define SCOTCH_NAME_PREFIX_PUBLICFU SCOTCHF #ifdef SCOTCH_RENAME #ifndef SCOTCH_COMMON_RENAME #define SCOTCH_COMMON_RENAME #endif /* SCOTCH_COMMON_RENAME */ #endif /* SCOTCH_RENAME */ #define SCOTCH_NAME_GLUE2(n,s) n##s #define SCOTCH_NAME_GLUE3(p,n,s) p##n##s #define SCOTCH_NAME_MACRO2(n,s) SCOTCH_NAME_GLUE2 (n,s) #define SCOTCH_NAME_MACRO3(p,n,s) SCOTCH_NAME_GLUE3 (p,n,s) #define SCOTCH_NAME_INTERN(f) SCOTCH_NAME_MACRO3 (SCOTCH_NAME_PREFIX_INTERN,f,SCOTCH_NAME_SUFFIXC) #define SCOTCH_NAME_PUBLIC(f) SCOTCH_NAME_MACRO2 (f,SCOTCH_NAME_SUFFIXC) #define SCOTCH_NAME_PUBLICFL(f) SCOTCH_NAME_MACRO3 (SCOTCH_NAME_PREFIX_PUBLICFL,f,SCOTCH_NAME_SUFFIXFL) #define SCOTCH_NAME_PUBLICFU(f) SCOTCH_NAME_MACRO3 (SCOTCH_NAME_PREFIX_PUBLICFU,f,SCOTCH_NAME_SUFFIXFU) #define SCOTCH_FORTRAN(nu,nl,pl,pc) FORTRAN (SCOTCH_NAME_PUBLICFU(nu),SCOTCH_NAME_PUBLICFL(nl),pl,pc) #ifdef SCOTCH_RENAME_ALL #define SCOTCH_VERSION SCOTCH_NAME_PUBLIC (SCOTCH_VERSION) #define SCOTCH_RELEASE SCOTCH_NAME_PUBLIC (SCOTCH_RELEASE) #define SCOTCH_PATCHLEVEL SCOTCH_NAME_PUBLIC (SCOTCH_PATCHLEVEL) #define SCOTCH_COARSENNONE SCOTCH_NAME_PUBLIC (SCOTCH_COARSENNONE) #define SCOTCH_COARSENFOLD SCOTCH_NAME_PUBLIC (SCOTCH_COARSENFOLD) #define SCOTCH_COARSENFOLDDUP SCOTCH_NAME_PUBLIC (SCOTCH_COARSENFOLDDUP) #define SCOTCH_COARSENNOMERGE SCOTCH_NAME_PUBLIC (SCOTCH_COARSENNOMERGE) #define SCOTCH_NUM_MPI SCOTCH_NAME_PUBLIC (SCOTCH_NUM_MPI) #define SCOTCH_NUMMAX SCOTCH_NAME_PUBLIC (SCOTCH_NUMMAX) #define SCOTCH_NUMSTRING SCOTCH_NAME_PUBLIC (SCOTCH_NUMSTRING) #define SCOTCH_STRATDEFAULT SCOTCH_NAME_PUBLIC (SCOTCH_STRATDEFAULT) #define SCOTCH_STRATQUALITY SCOTCH_NAME_PUBLIC (SCOTCH_STRATQUALITY) #define SCOTCH_STRATSPEED SCOTCH_NAME_PUBLIC (SCOTCH_STRATSPEED) #define SCOTCH_STRATBALANCE SCOTCH_NAME_PUBLIC (SCOTCH_STRATBALANCE) #define SCOTCH_STRATSAFETY SCOTCH_NAME_PUBLIC (SCOTCH_STRATSAFETY) #define SCOTCH_STRATSCALABILITY SCOTCH_NAME_PUBLIC (SCOTCH_STRATSCALABILITY) #define SCOTCH_STRATRECURSIVE SCOTCH_NAME_PUBLIC (SCOTCH_STRATRECURSIVE) #define SCOTCH_STRATREMAP SCOTCH_NAME_PUBLIC (SCOTCH_STRATREMAP) #define SCOTCH_STRATLEVELMAX SCOTCH_NAME_PUBLIC (SCOTCH_STRATLEVELMAX) #define SCOTCH_STRATLEVELMIN SCOTCH_NAME_PUBLIC (SCOTCH_STRATLEVELMIN) #define SCOTCH_STRATLEAFSIMPLE SCOTCH_NAME_PUBLIC (SCOTCH_STRATLEAFSIMPLE) #define SCOTCH_STRATSEPASIMPLE SCOTCH_NAME_PUBLIC (SCOTCH_STRATSEPASIMPLE) #define SCOTCH_STRATDISCONNECTED SCOTCH_NAME_PUBLIC (SCOTCH_STRATDISCONNECTED) #define SCOTCH_Arch SCOTCH_NAME_PUBLIC (SCOTCH_Arch) #define SCOTCH_ArchDom SCOTCH_NAME_PUBLIC (SCOTCH_ArchDom) #define SCOTCH_Context SCOTCH_NAME_PUBLIC (SCOTCH_Context) #define SCOTCH_Dgraph SCOTCH_NAME_PUBLIC (SCOTCH_Dgraph) #define SCOTCH_DgraphHaloReq SCOTCH_NAME_PUBLIC (SCOTCH_DgraphHaloReq) #define SCOTCH_Dmapping SCOTCH_NAME_PUBLIC (SCOTCH_Dmapping) #define SCOTCH_Dmesh SCOTCH_NAME_PUBLIC (SCOTCH_Dmesh) #define SCOTCH_Dordering SCOTCH_NAME_PUBLIC (SCOTCH_Dordering) #define SCOTCH_Geom SCOTCH_NAME_PUBLIC (SCOTCH_Geom) #define SCOTCH_Graph SCOTCH_NAME_PUBLIC (SCOTCH_Graph) #define SCOTCH_GraphPart2 SCOTCH_NAME_PUBLIC (SCOTCH_GraphPart2) #define SCOTCH_Idx SCOTCH_NAME_PUBLIC (SCOTCH_Idx) #define SCOTCH_Mesh SCOTCH_NAME_PUBLIC (SCOTCH_Mesh) #define SCOTCH_Mapping SCOTCH_NAME_PUBLIC (SCOTCH_Mapping) #define SCOTCH_Num SCOTCH_NAME_PUBLIC (SCOTCH_Num) #define SCOTCH_Ordering SCOTCH_NAME_PUBLIC (SCOTCH_Ordering) #define SCOTCH_Strat SCOTCH_NAME_PUBLIC (SCOTCH_Strat) #endif /* SCOTCH_RENAME_ALL */ #define SCOTCH_NAME_GLOBAL(n) SCOTCH_NAME_MACRO2 (SCOTCH_, n) /* Always renamed, since exposed in Scotch user's manual */ #define errorPrint SCOTCH_NAME_GLOBAL (errorPrint) #define errorPrintW SCOTCH_NAME_GLOBAL (errorPrintW) #define errorProg SCOTCH_NAME_GLOBAL (errorProg) #if ((defined SCOTCH_COMMON_RENAME) && ! (defined SCOTCH_COMMON_INTERNAL)) #define clockGet SCOTCH_NAME_INTERN (clockGet) #define commonStubDummy SCOTCH_NAME_INTERN (commonStubDummy) #define contextCommit SCOTCH_NAME_INTERN (contextCommit) #define contextExit SCOTCH_NAME_INTERN (contextExit) #define contextInit SCOTCH_NAME_INTERN (contextInit) #define contextOptionsInit SCOTCH_NAME_INTERN (contextOptionsInit) #define contextRandomClone SCOTCH_NAME_INTERN (contextRandomClone) #define contextThreadInit SCOTCH_NAME_INTERN (contextThreadInit) #define contextThreadInit2 SCOTCH_NAME_INTERN (contextThreadInit2) #define contextThreadLaunchSplit SCOTCH_NAME_INTERN (contextThreadLaunchSplit) #define contextValuesGetDbl SCOTCH_NAME_INTERN (contextValuesGetDbl) #define contextValuesGetInt SCOTCH_NAME_INTERN (contextValuesGetInt) #define contextValuesInit SCOTCH_NAME_INTERN (contextValuesInit) #define contextValuesSetDbl SCOTCH_NAME_INTERN (contextValuesSetDbl) #define contextValuesSetInt SCOTCH_NAME_INTERN (contextValuesSetInt) #define envGetInt SCOTCH_NAME_INTERN (envGetInt) #define envGetStr SCOTCH_NAME_INTERN (envGetStr) #define fileBlockInit SCOTCH_NAME_INTERN (fileBlockInit) #define fileBlockClose SCOTCH_NAME_INTERN (fileBlockClose) #define fileBlockOpen SCOTCH_NAME_INTERN (fileBlockOpen) #define fileBlockOpenDist SCOTCH_NAME_INTERN (fileBlockOpenDist) #define fileCompress SCOTCH_NAME_INTERN (fileCompress) #define fileCompressExit SCOTCH_NAME_INTERN (fileCompressExit) #define fileCompressType SCOTCH_NAME_INTERN (fileCompressType) #define fileDecompress SCOTCH_NAME_INTERN (fileDecompress) #define fileDecompressType SCOTCH_NAME_INTERN (fileDecompressType) #define fileNameDistExpand SCOTCH_NAME_INTERN (fileNameDistExpand) #define intLoad SCOTCH_NAME_INTERN (intLoad) #define intSave SCOTCH_NAME_INTERN (intSave) #define intAscn SCOTCH_NAME_INTERN (intAscn) #define intGcd SCOTCH_NAME_INTERN (intGcd) #define intPerm SCOTCH_NAME_INTERN (intPerm) #define intPsort2asc1 SCOTCH_NAME_INTERN (intPsort2asc1) #define intranddat SCOTCH_NAME_INTERN (intranddat) /* Public pseudo-random number generator */ #define intRandInit SCOTCH_NAME_INTERN (intRandInit) #define intRandLoad SCOTCH_NAME_INTERN (intRandLoad) #define intRandSave SCOTCH_NAME_INTERN (intRandSave) #define intRandProc SCOTCH_NAME_INTERN (intRandProc) #define intRandReset SCOTCH_NAME_INTERN (intRandReset) #define intRandSeed SCOTCH_NAME_INTERN (intRandSeed) #define intRandSpawn SCOTCH_NAME_INTERN (intRandSpawn) #define intRandVal SCOTCH_NAME_INTERN (intRandVal) #define intRandVal2 SCOTCH_NAME_INTERN (intRandVal2) #define intRandVal3 SCOTCH_NAME_INTERN (intRandVal3) #define intSort1asc1 SCOTCH_NAME_INTERN (intSort1asc1) #define intSort2asc1 SCOTCH_NAME_INTERN (intSort2asc1) #define intSort2asc2 SCOTCH_NAME_INTERN (intSort2asc2) #define intSort3asc1 SCOTCH_NAME_INTERN (intSort3asc1) #define intSort3asc2 SCOTCH_NAME_INTERN (intSort3asc2) #define memAllocGroup SCOTCH_NAME_INTERN (memAllocGroup) #define memAllocRecord SCOTCH_NAME_INTERN (memAllocRecord) #define memCheck SCOTCH_NAME_INTERN (memCheck) #define memCheckExists SCOTCH_NAME_INTERN (memCheckExists) #define memCheckSize SCOTCH_NAME_INTERN (memCheckSize) #define memCheckToggle SCOTCH_NAME_INTERN (memCheckToggle) #define memCheckWatch SCOTCH_NAME_INTERN (memCheckWatch) #define memCur SCOTCH_NAME_INTERN (memCur) #define memFreeRecord SCOTCH_NAME_INTERN (memFreeRecord) #define memMax SCOTCH_NAME_INTERN (memMax) #define memReallocGroup SCOTCH_NAME_INTERN (memReallocGroup) #define memReallocRecord SCOTCH_NAME_INTERN (memReallocRecord) #define memOffset SCOTCH_NAME_INTERN (memOffset) #define stringSubst SCOTCH_NAME_INTERN (stringSubst) #define threadContextBarrier SCOTCH_NAME_INTERN (threadContextBarrier) #define threadContextExit SCOTCH_NAME_INTERN (threadContextExit) #define threadContextExit2 SCOTCH_NAME_INTERN (threadContextExit2) #define threadContextImport1 SCOTCH_NAME_INTERN (threadContextImport1) #define threadContextImport2 SCOTCH_NAME_INTERN (threadContextImport2) #define threadContextInit SCOTCH_NAME_INTERN (threadContextInit) #define threadContextNbr SCOTCH_NAME_INTERN (threadContextNbr) #define threadContextParam SCOTCH_NAME_INTERN (threadContextParam) #define threadSystemCoreNbr SCOTCH_NAME_INTERN (threadSystemCoreNbr) #define timerExit SCOTCH_NAME_INTERN (timerExit) #define timerInit SCOTCH_NAME_INTERN (timerInit) #define timerNbr SCOTCH_NAME_INTERN (timerNbr) #define timerStart SCOTCH_NAME_INTERN (timerStart) #define timerStop SCOTCH_NAME_INTERN (timerStop) #define timerTab SCOTCH_NAME_INTERN (timerTab) #define timerVal SCOTCH_NAME_INTERN (timerVal) #define usagePrint SCOTCH_NAME_INTERN (usagePrint) #endif /* ((defined SCOTCH_COMMON_RENAME) && ! (defined SCOTCH_COMMON_INTERNAL)) */ #ifdef SCOTCH_RENAME #define archInit SCOTCH_NAME_INTERN (archInit) #define archExit SCOTCH_NAME_INTERN (archExit) #define archFree SCOTCH_NAME_INTERN (archFree) #define archLoad SCOTCH_NAME_INTERN (archLoad) #define archSave SCOTCH_NAME_INTERN (archSave) /* #define archName SCOTCH_NAME_INTERN (archName) Already a macro */ #define archClass SCOTCH_NAME_INTERN (archClass) #define archClass2 SCOTCH_NAME_INTERN (archClass2) #define archClassNum SCOTCH_NAME_INTERN (archClassNum) #define archClassTab SCOTCH_NAME_INTERN (archClassTab) #define archDomLoad SCOTCH_NAME_INTERN (archDomLoad) #define archDomSave SCOTCH_NAME_INTERN (archDomSave) #ifdef SCOTCH_DEBUG_ARCH2 /* If already redefined */ #define archDomNum SCOTCH_NAME_INTERN (archDomNum) #define archDomDist SCOTCH_NAME_INTERN (archDomDist) #define archDomFrst SCOTCH_NAME_INTERN (archDomFrst) #define archDomIncl SCOTCH_NAME_INTERN (archDomIncl) #define archDomSize SCOTCH_NAME_INTERN (archDomSize) #define archDomTerm SCOTCH_NAME_INTERN (archDomTerm) #define archDomWght SCOTCH_NAME_INTERN (archDomWght) #define archDomBipart SCOTCH_NAME_INTERN (archDomBipart) #endif /* SCOTCH_DEBUG_ARCH2 */ #define archDomMpiType SCOTCH_NAME_INTERN (archDomMpiType) #define archDomMpiTypeAnum SCOTCH_NAME_INTERN (archDomMpiTypeAnum) #define archBuild SCOTCH_NAME_INTERN (archBuild) #define archCmpltArchLoad SCOTCH_NAME_INTERN (archCmpltArchLoad) #define archCmpltArchSave SCOTCH_NAME_INTERN (archCmpltArchSave) #define archCmpltMatchInit SCOTCH_NAME_INTERN (archCmpltMatchInit) #define archCmpltMatchExit SCOTCH_NAME_INTERN (archCmpltMatchExit) #define archCmpltMatchMate SCOTCH_NAME_INTERN (archCmpltMatchMate) #define archCmpltDomNum SCOTCH_NAME_INTERN (archCmpltDomNum) #define archCmpltDomTerm SCOTCH_NAME_INTERN (archCmpltDomTerm) #define archCmpltDomSize SCOTCH_NAME_INTERN (archCmpltDomSize) /* #define archCmpltDomWght SCOTCH_NAME_INTERN (archCmpltDomWght) Already a macro */ #define archCmpltDomDist SCOTCH_NAME_INTERN (archCmpltDomDist) #define archCmpltDomFrst SCOTCH_NAME_INTERN (archCmpltDomFrst) #define archCmpltDomIncl SCOTCH_NAME_INTERN (archCmpltDomIncl) #define archCmpltDomLoad SCOTCH_NAME_INTERN (archCmpltDomLoad) #define archCmpltDomSave SCOTCH_NAME_INTERN (archCmpltDomSave) #define archCmpltDomBipart SCOTCH_NAME_INTERN (archCmpltDomBipart) #define archCmpltDomMpiType SCOTCH_NAME_INTERN (archCmpltDomMpiType) #define archCmpltwArchBuild SCOTCH_NAME_INTERN (archCmpltwArchBuild) #define archCmpltwArchFree SCOTCH_NAME_INTERN (archCmpltwArchFree) #define archCmpltwArchLoad SCOTCH_NAME_INTERN (archCmpltwArchLoad) #define archCmpltwArchSave SCOTCH_NAME_INTERN (archCmpltwArchSave) #define archCmpltwDomNum SCOTCH_NAME_INTERN (archCmpltwDomNum) #define archCmpltwDomTerm SCOTCH_NAME_INTERN (archCmpltwDomTerm) #define archCmpltwDomSize SCOTCH_NAME_INTERN (archCmpltwDomSize) #define archCmpltwDomWght SCOTCH_NAME_INTERN (archCmpltwDomWght) #define archCmpltwDomDist SCOTCH_NAME_INTERN (archCmpltwDomDist) #define archCmpltwDomFrst SCOTCH_NAME_INTERN (archCmpltwDomFrst) #define archCmpltwDomIncl SCOTCH_NAME_INTERN (archCmpltwDomIncl) #define archCmpltwDomLoad SCOTCH_NAME_INTERN (archCmpltwDomLoad) #define archCmpltwDomSave SCOTCH_NAME_INTERN (archCmpltwDomSave) #define archCmpltwDomBipart SCOTCH_NAME_INTERN (archCmpltwDomBipart) #define archCmpltwDomMpiType SCOTCH_NAME_INTERN (archCmpltwDomMpiType) #define archDecoArchBuild SCOTCH_NAME_INTERN (archDecoArchBuild) #define archDecoArchBuild2 SCOTCH_NAME_INTERN (archDecoArchBuild2) #define archDecoArchFree SCOTCH_NAME_INTERN (archDecoArchFree) #define archDecoArchLoad SCOTCH_NAME_INTERN (archDecoArchLoad) #define archDecoArchSave SCOTCH_NAME_INTERN (archDecoArchSave) #define archDecoDomNum SCOTCH_NAME_INTERN (archDecoDomNum) #define archDecoDomTerm SCOTCH_NAME_INTERN (archDecoDomTerm) #define archDecoDomSize SCOTCH_NAME_INTERN (archDecoDomSize) #define archDecoDomWght SCOTCH_NAME_INTERN (archDecoDomWght) #define archDecoDomDist SCOTCH_NAME_INTERN (archDecoDomDist) #define archDecoDomFrst SCOTCH_NAME_INTERN (archDecoDomFrst) #define archDecoDomIncl SCOTCH_NAME_INTERN (archDecoDomIncl) #define archDecoDomLoad SCOTCH_NAME_INTERN (archDecoDomLoad) #define archDecoDomSave SCOTCH_NAME_INTERN (archDecoDomSave) #define archDecoDomBipart SCOTCH_NAME_INTERN (archDecoDomBipart) #define archDecoDomMpiType SCOTCH_NAME_INTERN (archDecoDomMpiType) #define archDeco2ArchBuild SCOTCH_NAME_INTERN (archDeco2ArchBuild) #define archDeco2ArchFree SCOTCH_NAME_INTERN (archDeco2ArchFree) #define archDeco2ArchLoad2 SCOTCH_NAME_INTERN (archDeco2ArchLoad2) #define archDeco2ArchSave SCOTCH_NAME_INTERN (archDeco2ArchSave) #define archDeco2DomNum SCOTCH_NAME_INTERN (archDeco2DomNum) #define archDeco2DomTerm SCOTCH_NAME_INTERN (archDeco2DomTerm) #define archDeco2DomSize SCOTCH_NAME_INTERN (archDeco2DomSize) #define archDeco2DomWght SCOTCH_NAME_INTERN (archDeco2DomWght) #define archDeco2DomDist SCOTCH_NAME_INTERN (archDeco2DomDist) #define archDeco2DomFrst SCOTCH_NAME_INTERN (archDeco2DomFrst) #define archDeco2DomIncl SCOTCH_NAME_INTERN (archDeco2DomIncl) #define archDeco2DomLoad SCOTCH_NAME_INTERN (archDeco2DomLoad) #define archDeco2DomSave SCOTCH_NAME_INTERN (archDeco2DomSave) #define archDeco2DomBipart SCOTCH_NAME_INTERN (archDeco2DomBipart) #define archDeco2DomMpiType SCOTCH_NAME_INTERN (archDeco2DomMpiType) #define archDeco2MatchInit SCOTCH_NAME_INTERN (archDeco2MatchInit) #define archDistArchLoad SCOTCH_NAME_INTERN (archDistArchLoad) #define archDistArchSave SCOTCH_NAME_INTERN (archDistArchSave) #define archDistArchBuild SCOTCH_NAME_INTERN (archDistArchBuild) #define archDistDomNum SCOTCH_NAME_INTERN (archDistDomNum) #define archDistDomTerm SCOTCH_NAME_INTERN (archDistDomTerm) #define archDistDomSize SCOTCH_NAME_INTERN (archDistDomSize) #define archDistDomWght SCOTCH_NAME_INTERN (archDistDomWght) #define archDistDomDist SCOTCH_NAME_INTERN (archDistDomDist) #define archDistDomFrst SCOTCH_NAME_INTERN (archDistDomFrst) #define archDistDomIncl SCOTCH_NAME_INTERN (archDistDomIncl) #define archDistDomLoad SCOTCH_NAME_INTERN (archDistDomLoad) #define archDistDomSave SCOTCH_NAME_INTERN (archDistDomSave) #define archDistDomBipart SCOTCH_NAME_INTERN (archDistDomBipart) #define archDistDomMpiType SCOTCH_NAME_INTERN (archDistDomMpiType) #define archHcubArchLoad SCOTCH_NAME_INTERN (archHcubArchLoad) #define archHcubArchSave SCOTCH_NAME_INTERN (archHcubArchSave) #define archHcubMatchInit SCOTCH_NAME_INTERN (archHcubMatchInit) #define archHcubMatchExit SCOTCH_NAME_INTERN (archHcubMatchExit) #define archHcubMatchMate SCOTCH_NAME_INTERN (archHcubMatchMate) #define archHcubDomNum SCOTCH_NAME_INTERN (archHcubDomNum) #define archHcubDomTerm SCOTCH_NAME_INTERN (archHcubDomTerm) #define archHcubDomSize SCOTCH_NAME_INTERN (archHcubDomSize) /* #define archHcubDomWght SCOTCH_NAME_INTERN (archHcubDomWght) Already a macro */ #define archHcubDomDist SCOTCH_NAME_INTERN (archHcubDomDist) #define archHcubDomFrst SCOTCH_NAME_INTERN (archHcubDomFrst) #define archHcubDomIncl SCOTCH_NAME_INTERN (archHcubDomIncl) #define archHcubDomLoad SCOTCH_NAME_INTERN (archHcubDomLoad) #define archHcubDomSave SCOTCH_NAME_INTERN (archHcubDomSave) #define archHcubDomBipart SCOTCH_NAME_INTERN (archHcubDomBipart) #define archHcubDomMpiType SCOTCH_NAME_INTERN (archHcubDomMpiType) #define archLtleafArchLoad SCOTCH_NAME_INTERN (archLtleafArchLoad) #define archLtleafArchSave SCOTCH_NAME_INTERN (archLtleafArchSave) #define archLtleafDomNum SCOTCH_NAME_INTERN (archLtleafDomNum) #define archLtleafDomTerm SCOTCH_NAME_INTERN (archLtleafDomTerm) #define archMesh2ArchLoad SCOTCH_NAME_INTERN (archMesh2ArchLoad) #define archMesh2ArchSave SCOTCH_NAME_INTERN (archMesh2ArchSave) #define archMesh2DomNum SCOTCH_NAME_INTERN (archMesh2DomNum) #define archMesh2DomTerm SCOTCH_NAME_INTERN (archMesh2DomTerm) #define archMesh2DomSize SCOTCH_NAME_INTERN (archMesh2DomSize) /* #define archMesh2DomWght SCOTCH_NAME_INTERN (archMesh2DomWght) Already a macro */ #define archMesh2DomDist SCOTCH_NAME_INTERN (archMesh2DomDist) /* #define archMesh2DomFrst SCOTCH_NAME_INTERN (archMesh2DomFrst) Already a macro */ #define archMesh2DomIncl SCOTCH_NAME_INTERN (archMesh2DomIncl) /* #define archMesh2DomLoad SCOTCH_NAME_INTERN (archMesh2DomLoad) Already a macro */ /* #define archMesh2DomSave SCOTCH_NAME_INTERN (archMesh2DomSave) Already a macro */ #define archMesh2DomBipart SCOTCH_NAME_INTERN (archMesh2DomBipart) #define archMesh2DomBipartO SCOTCH_NAME_INTERN (archMesh2DomBipartO) #define archMesh2DomBipartU SCOTCH_NAME_INTERN (archMesh2DomBipartU) #define archMesh2DomMpiType SCOTCH_NAME_INTERN (archMesh2DomMpiType) #define archMesh3ArchLoad SCOTCH_NAME_INTERN (archMesh3ArchLoad) #define archMesh3ArchSave SCOTCH_NAME_INTERN (archMesh3ArchSave) #define archMesh3DomNum SCOTCH_NAME_INTERN (archMesh3DomNum) #define archMesh3DomTerm SCOTCH_NAME_INTERN (archMesh3DomTerm) #define archMesh3DomSize SCOTCH_NAME_INTERN (archMesh3DomSize) /* #define archMesh3DomWght SCOTCH_NAME_INTERN (archMesh3DomWght) Already a macro */ #define archMesh3DomDist SCOTCH_NAME_INTERN (archMesh3DomDist) /* #define archMesh3DomFrst SCOTCH_NAME_INTERN (archMesh3DomFrst) Already a macro */ #define archMesh3DomIncl SCOTCH_NAME_INTERN (archMesh3DomIncl) /* #define archMesh3DomLoad SCOTCH_NAME_INTERN (archMesh3DomLoad) Already a macro */ /* #define archMesh3DomSave SCOTCH_NAME_INTERN (archMesh3DomSave) Already a macro */ #define archMesh3DomBipart SCOTCH_NAME_INTERN (archMesh3DomBipart) #define archMesh3DomMpiType SCOTCH_NAME_INTERN (archMesh3DomMpiType) #define archMeshXArchLoad SCOTCH_NAME_INTERN (archMeshXArchLoad) #define archMeshXArchSave SCOTCH_NAME_INTERN (archMeshXArchSave) #define archMeshXMatchInit SCOTCH_NAME_INTERN (archMeshXMatchInit) #define archMeshXMatchExit SCOTCH_NAME_INTERN (archMeshXMatchExit) #define archMeshXMatchMate SCOTCH_NAME_INTERN (archMeshXMatchMate) #define archMeshXDomNum SCOTCH_NAME_INTERN (archMeshXDomNum) #define archMeshXDomTerm SCOTCH_NAME_INTERN (archMeshXDomTerm) #define archMeshXDomSize SCOTCH_NAME_INTERN (archMeshXDomSize) /* #define archMeshXDomWght SCOTCH_NAME_INTERN (archMeshXDomWght) Already a macro */ #define archMeshXDomDist SCOTCH_NAME_INTERN (archMeshXDomDist) #define archMeshXDomFrst SCOTCH_NAME_INTERN (archMeshXDomFrst) #define archMeshXDomIncl SCOTCH_NAME_INTERN (archMeshXDomIncl) #define archMeshXDomLoad SCOTCH_NAME_INTERN (archMeshXDomLoad) #define archMeshXDomSave SCOTCH_NAME_INTERN (archMeshXDomSave) #define archMeshXDomBipart SCOTCH_NAME_INTERN (archMeshXDomBipart) #define archMeshXDomMpiType SCOTCH_NAME_INTERN (archMeshXDomMpiType) #define archSubArchLoad SCOTCH_NAME_INTERN (archSubArchLoad) #define archSubArchSave SCOTCH_NAME_INTERN (archSubArchSave) #define archSubArchFree SCOTCH_NAME_INTERN (archSubArchFree) #define archSubArchBuild SCOTCH_NAME_INTERN (archSubArchBuild) #define archSubArchBuild2 SCOTCH_NAME_INTERN (archSubArchBuild2) #define archSubMatchInit SCOTCH_NAME_INTERN (archSubMatchInit) #define archSubMatchExit SCOTCH_NAME_INTERN (archSubMatchExit) #define archSubMatchMate SCOTCH_NAME_INTERN (archSubMatchMate) #define archSubDomNum SCOTCH_NAME_INTERN (archSubDomNum) #define archSubDomTerm SCOTCH_NAME_INTERN (archSubDomTerm) #define archSubDomSize SCOTCH_NAME_INTERN (archSubDomSize) #define archSubDomWght SCOTCH_NAME_INTERN (archSubDomWght) #define archSubDomDist SCOTCH_NAME_INTERN (archSubDomDist) #define archSubDomFrst SCOTCH_NAME_INTERN (archSubDomFrst) #define archSubDomIncl SCOTCH_NAME_INTERN (archSubDomIncl) #define archSubDomLoad SCOTCH_NAME_INTERN (archSubDomLoad) #define archSubDomSave SCOTCH_NAME_INTERN (archSubDomSave) #define archSubDomBipart SCOTCH_NAME_INTERN (archSubDomBipart) #define archSubDomMpiType SCOTCH_NAME_INTERN (archSubDomMpiType) #define archTermArchLoad SCOTCH_NAME_INTERN (archTermArchLoad) #define archTermArchSave SCOTCH_NAME_INTERN (archTermArchSave) #define archTermDomNum SCOTCH_NAME_INTERN (archTermDomNum) #define archTermDomTerm SCOTCH_NAME_INTERN (archTermDomTerm) #define archTermDomSize SCOTCH_NAME_INTERN (archTermDomSize) /* #define archTermDomWght SCOTCH_NAME_INTERN (archTermDomWght) Already a macro */ #define archTermDomDist SCOTCH_NAME_INTERN (archTermDomDist) #define archTermDomFrst SCOTCH_NAME_INTERN (archTermDomFrst) #define archTermDomIncl SCOTCH_NAME_INTERN (archTermDomIncl) #define archTermDomLoad SCOTCH_NAME_INTERN (archTermDomLoad) #define archTermDomSave SCOTCH_NAME_INTERN (archTermDomSave) #define archTermDomBipart SCOTCH_NAME_INTERN (archTermDomBipart) #define archTermDomMpiType SCOTCH_NAME_INTERN (archTermDomMpiType) #define archTleafArchLoad SCOTCH_NAME_INTERN (archTleafArchLoad) #define archTleafArchFree SCOTCH_NAME_INTERN (archTleafArchFree) #define archTleafArchSave SCOTCH_NAME_INTERN (archTleafArchSave) #define archTleafMatchInit SCOTCH_NAME_INTERN (archTleafMatchInit) #define archTleafMatchExit SCOTCH_NAME_INTERN (archTleafMatchExit) #define archTleafMatchMate SCOTCH_NAME_INTERN (archTleafMatchMate) #define archTleafDomNum SCOTCH_NAME_INTERN (archTleafDomNum) #define archTleafDomTerm SCOTCH_NAME_INTERN (archTleafDomTerm) #define archTleafDomSize SCOTCH_NAME_INTERN (archTleafDomSize) /* #define archTleafDomWght SCOTCH_NAME_INTERN (archTleafDomWght) Already a macro */ #define archTleafDomDist SCOTCH_NAME_INTERN (archTleafDomDist) #define archTleafDomFrst SCOTCH_NAME_INTERN (archTleafDomFrst) #define archTleafDomIncl SCOTCH_NAME_INTERN (archTleafDomIncl) #define archTleafDomLoad SCOTCH_NAME_INTERN (archTleafDomLoad) #define archTleafDomSave SCOTCH_NAME_INTERN (archTleafDomSave) #define archTleafDomBipart SCOTCH_NAME_INTERN (archTleafDomBipart) #define archTleafDomMpiType SCOTCH_NAME_INTERN (archTleafDomMpiType) /* #define archTorus2ArchLoad SCOTCH_NAME_INTERN (archTorus2ArchLoad) Already a macro */ /* #define archTorus2ArchSave SCOTCH_NAME_INTERN (archTorus2ArchSave) Already a macro */ /* #define archTorus2ArchFree SCOTCH_NAME_INTERN (archTorus2ArchFree) Already a macro */ /* #define archTorus2MatchInit SCOTCH_NAME_INTERN (archTorus2MatchInit) Already a macro */ /* #define archTorus2MatchExit SCOTCH_NAME_INTERN (archTorus2MatchExit) Already a macro */ /* #define archTorus2MatchMate SCOTCH_NAME_INTERN (archTorus2MatchMate) Already a macro */ /* #define archTorus2DomNum SCOTCH_NAME_INTERN (archTorus2DomNum) Already a macro */ /* #define archTorus2DomTerm SCOTCH_NAME_INTERN (archTorus2DomTerm) Already a macro */ /* #define archTorus2DomSize SCOTCH_NAME_INTERN (archTorus2DomSize) Already a macro */ /* #define archTorus2DomWght SCOTCH_NAME_INTERN (archTorus2DomWght) Already a macro */ #define archTorus2DomDist SCOTCH_NAME_INTERN (archTorus2DomDist) /* #define archTorus2DomFrst SCOTCH_NAME_INTERN (archTorus2DomFrst) Already a macro */ /* #define archTorus2DomIncl SCOTCH_NAME_INTERN (archTorus2DomIncl) Already a macro */ /* #define archTorus2DomLoad SCOTCH_NAME_INTERN (archTorus2DomLoad) Already a macro */ /* #define archTorus2DomSave SCOTCH_NAME_INTERN (archTorus2DomSave) Already a macro */ /* #define archTorus2DomBipart SCOTCH_NAME_INTERN (archTorus2DomBipart) Already a macro */ /* #define archTorus2DomMpiType SCOTCH_NAME_INTERN (archTorus2DomMpiType) Already a macro */ /* #define archTorus3ArchLoad SCOTCH_NAME_INTERN (archTorus3ArchLoad) Already a macro */ /* #define archTorus3ArchSave SCOTCH_NAME_INTERN (archTorus3ArchSave) Already a macro */ /* #define archTorus3DomNum SCOTCH_NAME_INTERN (archTorus3DomNum) Already a macro */ /* #define archTorus3DomTerm SCOTCH_NAME_INTERN (archTorus3DomTerm) Already a macro */ /* #define archTorus3DomSize SCOTCH_NAME_INTERN (archTorus3DomSize) Already a macro */ /* #define archTorus3DomWght SCOTCH_NAME_INTERN (archTorus3DomWght) Already a macro */ #define archTorus3DomDist SCOTCH_NAME_INTERN (archTorus3DomDist) /* #define archTorus3DomFrst SCOTCH_NAME_INTERN (archTorus3DomFrst) Already a macro */ /* #define archTorus3DomIncl SCOTCH_NAME_INTERN (archTorus3DomIncl) Already a macro */ /* #define archTorus3DomLoad SCOTCH_NAME_INTERN (archTorus3DomLoad) Already a macro */ /* #define archTorus3DomSave SCOTCH_NAME_INTERN (archTorus3DomSave) Already a macro */ /* #define archTorus3DomBipart SCOTCH_NAME_INTERN (archTorus3DomBipart) Already a macro */ /* #define archTorus3DomMpiType SCOTCH_NAME_INTERN (archTorus3DomMpiType) Already a macro */ /* #define archTorusXArchLoad SCOTCH_NAME_INTERN (archTorusXArchLoad) Already a macro */ /* #define archTorusXArchSave SCOTCH_NAME_INTERN (archTorusXArchSave) Already a macro */ /* #define archTorusXDomNum SCOTCH_NAME_INTERN (archTorusXDomNum) Already a macro */ /* #define archTorusXDomTerm SCOTCH_NAME_INTERN (archTorusXDomTerm) Already a macro */ /* #define archTorusXDomSize SCOTCH_NAME_INTERN (archTorusXDomSize) Already a macro */ /* #define archTorusXDomWght SCOTCH_NAME_INTERN (archTorusXDomWght) Already a macro */ #define archTorusXDomDist SCOTCH_NAME_INTERN (archTorusXDomDist) /* #define archTorusXDomFrst SCOTCH_NAME_INTERN (archTorusXDomFrst) Already a macro */ /* #define archTorusXDomIncl SCOTCH_NAME_INTERN (archTorusXDomIncl) Already a macro */ /* #define archTorusXDomLoad SCOTCH_NAME_INTERN (archTorusXDomLoad) Already a macro */ /* #define archTorusXDomSave SCOTCH_NAME_INTERN (archTorusXDomSave) Already a macro */ /* #define archTorusXDomBipart SCOTCH_NAME_INTERN (archTorusXDomBipart) Already a macro */ /* #define archTorusXDomMpiType SCOTCH_NAME_INTERN (archTorusXDomMpiType) Already a macro */ /* #define archVcmpltArchLoad SCOTCH_NAME_INTERN (archVcmpltArchLoad) Already a macro */ /* #define archVcmpltArchSave SCOTCH_NAME_INTERN (archVcmpltArchSave) Already a macro */ #define archVcmpltDomNum SCOTCH_NAME_INTERN (archVcmpltDomNum) #define archVcmpltDomTerm SCOTCH_NAME_INTERN (archVcmpltDomTerm) #define archVcmpltDomSize SCOTCH_NAME_INTERN (archVcmpltDomSize) /* #define archVcmpltDomWght SCOTCH_NAME_INTERN (archVcmpltDomWght) Already a macro */ #define archVcmpltDomDist SCOTCH_NAME_INTERN (archVcmpltDomDist) #define archVcmpltDomFrst SCOTCH_NAME_INTERN (archVcmpltDomFrst) #define archVcmpltDomIncl SCOTCH_NAME_INTERN (archVcmpltDomIncl) #define archVcmpltDomBipart SCOTCH_NAME_INTERN (archVcmpltDomBipart) #define archVcmpltDomLoad SCOTCH_NAME_INTERN (archVcmpltDomLoad) #define archVcmpltDomSave SCOTCH_NAME_INTERN (archVcmpltDomSave) #define archVcmpltDomBipart SCOTCH_NAME_INTERN (archVcmpltDomBipart) #define archVcmpltDomMpiType SCOTCH_NAME_INTERN (archVcmpltDomMpiType) /* #define archVhcubArchLoad SCOTCH_NAME_INTERN (archVhcubArchLoad) Already a macro */ /* #define archVhcubArchSave SCOTCH_NAME_INTERN (archVhcubArchSave) Already a macro */ #define archVhcubDomNum SCOTCH_NAME_INTERN (archVhcubDomNum) #define archVhcubDomTerm SCOTCH_NAME_INTERN (archVhcubDomTerm) #define archVhcubDomSize SCOTCH_NAME_INTERN (archVhcubDomSize) /* #define archVhcubDomWght SCOTCH_NAME_INTERN (archVhcubDomWght) Already a macro */ #define archVhcubDomDist SCOTCH_NAME_INTERN (archVhcubDomDist) #define archVhcubDomFrst SCOTCH_NAME_INTERN (archVhcubDomFrst) #define archVhcubDomIncl SCOTCH_NAME_INTERN (archVhcubDomIncl) #define archVhcubDomLoad SCOTCH_NAME_INTERN (archVhcubDomLoad) #define archVhcubDomSave SCOTCH_NAME_INTERN (archVhcubDomSave) #define archVhcubDomBipart SCOTCH_NAME_INTERN (archVhcubDomBipart) #define archVhcubDomMpiType SCOTCH_NAME_INTERN (archVhcubDomMpiType) #define bdgraphInit SCOTCH_NAME_INTERN (bdgraphInit) #define bdgraphInit2 SCOTCH_NAME_INTERN (bdgraphInit2) #define bdgraphExit SCOTCH_NAME_INTERN (bdgraphExit) #define bdgraphZero SCOTCH_NAME_INTERN (bdgraphZero) #define bdgraphbipartststratab SCOTCH_NAME_INTERN (bdgraphbipartststratab) #define bdgraphCheck SCOTCH_NAME_INTERN (bdgraphCheck) #define bdgraphGatherAll SCOTCH_NAME_INTERN (bdgraphGatherAll) #define bdgraphBipartBd SCOTCH_NAME_INTERN (bdgraphBipartBd) #define bdgraphBipartDf SCOTCH_NAME_INTERN (bdgraphBipartDf) #define bdgraphBipartEx SCOTCH_NAME_INTERN (bdgraphBipartEx) #define bdgraphBipartMl SCOTCH_NAME_INTERN (bdgraphBipartMl) #define bdgraphBipartSq SCOTCH_NAME_INTERN (bdgraphBipartSq) #define bdgraphBipartSt SCOTCH_NAME_INTERN (bdgraphBipartSt) #define bdgraphBipartZr SCOTCH_NAME_INTERN (bdgraphBipartZr) #define bdgraphStoreInit SCOTCH_NAME_INTERN (bdgraphStoreInit) #define bdgraphStoreExit SCOTCH_NAME_INTERN (bdgraphStoreExit) #define bdgraphStoreSave SCOTCH_NAME_INTERN (bdgraphStoreSave) #define bdgraphStoreUpdt SCOTCH_NAME_INTERN (bdgraphStoreUpdt) #define bgraphbipartststratab SCOTCH_NAME_INTERN (bgraphbipartststratab) #define bgraphInit SCOTCH_NAME_INTERN (bgraphInit) #define bgraphInit2 SCOTCH_NAME_INTERN (bgraphInit2) #define bgraphInit3 SCOTCH_NAME_INTERN (bgraphInit3) #define bgraphInit4 SCOTCH_NAME_INTERN (bgraphInit4) #define bgraphInit5 SCOTCH_NAME_INTERN (bgraphInit5) #define bgraphExit SCOTCH_NAME_INTERN (bgraphExit) #define bgraphCheck SCOTCH_NAME_INTERN (bgraphCheck) #define bgraphCost SCOTCH_NAME_INTERN (bgraphCost) #define bgraphCost2 SCOTCH_NAME_INTERN (bgraphCost2) #define bgraphSwal SCOTCH_NAME_INTERN (bgraphSwal) #define bgraphZero SCOTCH_NAME_INTERN (bgraphZero) #define bgraphBipartBd SCOTCH_NAME_INTERN (bgraphBipartBd) #define bgraphBipartDf SCOTCH_NAME_INTERN (bgraphBipartDf) #define bgraphBipartDf2 SCOTCH_NAME_INTERN (bgraphBipartDf2) #define bgraphBipartDfJoin SCOTCH_NAME_INTERN (bgraphBipartDfJoin) #define bgraphBipartEx SCOTCH_NAME_INTERN (bgraphBipartEx) #define bgraphBipartFm SCOTCH_NAME_INTERN (bgraphBipartFm) #define bgraphBipartGa SCOTCH_NAME_INTERN (bgraphBipartGa) #define bgraphBipartGg SCOTCH_NAME_INTERN (bgraphBipartGg) #define bgraphBipartGp SCOTCH_NAME_INTERN (bgraphBipartGp) #define bgraphBipartMl SCOTCH_NAME_INTERN (bgraphBipartMl) #define bgraphBipartSt SCOTCH_NAME_INTERN (bgraphBipartSt) #define bgraphBipartZr SCOTCH_NAME_INTERN (bgraphBipartZr) #define bgraphStoreInit SCOTCH_NAME_INTERN (bgraphStoreInit) #define bgraphStoreExit SCOTCH_NAME_INTERN (bgraphStoreExit) #define bgraphStoreSave SCOTCH_NAME_INTERN (bgraphStoreSave) #define bgraphStoreUpdt SCOTCH_NAME_INTERN (bgraphStoreUpdt) #define commAllgatherv SCOTCH_NAME_INTERN (commAllgatherv) #define commGatherv SCOTCH_NAME_INTERN (commGatherv) #define commScatterv SCOTCH_NAME_INTERN (commScatterv) #define dgraphAllreduceMaxSum2 SCOTCH_NAME_INTERN (dgraphAllreduceMaxSum2) #define dgraphBuild SCOTCH_NAME_INTERN (dgraphBuild) #define dgraphBuild2 SCOTCH_NAME_INTERN (dgraphBuild2) #define dgraphBuild3 SCOTCH_NAME_INTERN (dgraphBuild3) #define dgraphBuild4 SCOTCH_NAME_INTERN (dgraphBuild4) #define dgraphBuildGrid3D SCOTCH_NAME_INTERN (dgraphBuildGrid3D) #define dgraphBuildHcub SCOTCH_NAME_INTERN (dgraphBuildHcub) #define dgraphCheck SCOTCH_NAME_INTERN (dgraphCheck) #define dgraphBand SCOTCH_NAME_INTERN (dgraphBand) #define dgraphBand2Coll SCOTCH_NAME_INTERN (dgraphBand2Coll) #define dgraphBand2Ptop SCOTCH_NAME_INTERN (dgraphBand2Ptop) #define dgraphCoarsen SCOTCH_NAME_INTERN (dgraphCoarsen) #define dgraphCoarsenVertLocMax SCOTCH_NAME_INTERN (dgraphCoarsenVertLocMax) #define dgraphCompact2 SCOTCH_NAME_INTERN (dgraphCompact2) #define dgraphExit SCOTCH_NAME_INTERN (dgraphExit) #define dgraphFold SCOTCH_NAME_INTERN (dgraphFold) #define dgraphFold2 SCOTCH_NAME_INTERN (dgraphFold2) #define dgraphFoldComm SCOTCH_NAME_INTERN (dgraphFoldComm) #define dgraphFoldDup SCOTCH_NAME_INTERN (dgraphFoldDup) #define dgraphFree SCOTCH_NAME_INTERN (dgraphFree) #define dgraphGather SCOTCH_NAME_INTERN (dgraphGather) #define dgraphGatherAll SCOTCH_NAME_INTERN (dgraphGatherAll) #define dgraphGatherAll2 SCOTCH_NAME_INTERN (dgraphGatherAll2) /* #define dgraphGhst SCOTCH_NAME_INTERN (dgraphGhst) Already a macro */ /* #define dgraphGhstReplace SCOTCH_NAME_INTERN (dgraphGhstReplace) Already a macro */ #define dgraphGhst2 SCOTCH_NAME_INTERN (dgraphGhst2) #define dgraphGrow SCOTCH_NAME_INTERN (dgraphGrow) /* Used before macro replacement */ #define dgraphGrow2Coll SCOTCH_NAME_INTERN (dgraphGrow2Coll) #define dgraphGrow2Ptop SCOTCH_NAME_INTERN (dgraphGrow2Ptop) #define dgraphHaloSync SCOTCH_NAME_INTERN (dgraphHaloSync) #define dgraphHaloAsync SCOTCH_NAME_INTERN (dgraphHaloAsync) #define dgraphHaloWait SCOTCH_NAME_INTERN (dgraphHaloWait) #define dgraphHaloCheck SCOTCH_NAME_INTERN (dgraphHaloCheck) #define dgraphInduceList SCOTCH_NAME_INTERN (dgraphInduceList) #define dgraphInducePart SCOTCH_NAME_INTERN (dgraphInducePart) #define dgraphInducePart2 SCOTCH_NAME_INTERN (dgraphInducePart2) #define dgraphInduce2 SCOTCH_NAME_INTERN (dgraphInduce2) #define dgraphInit SCOTCH_NAME_INTERN (dgraphInit) #define dgraphLoad SCOTCH_NAME_INTERN (dgraphLoad) #define dgraphMatchInit SCOTCH_NAME_INTERN (dgraphMatchInit) #define dgraphMatchExit SCOTCH_NAME_INTERN (dgraphMatchExit) #define dgraphMatchSync SCOTCH_NAME_INTERN (dgraphMatchSync) #define dgraphMatchSyncColl SCOTCH_NAME_INTERN (dgraphMatchSyncColl) #define dgraphMatchSyncPtop SCOTCH_NAME_INTERN (dgraphMatchSyncPtop) #define dgraphMatchCheck SCOTCH_NAME_INTERN (dgraphMatchCheck) #define dgraphMatchHl SCOTCH_NAME_INTERN (dgraphMatchHl) #define dgraphMatchHy SCOTCH_NAME_INTERN (dgraphMatchHy) #define dgraphMatchLc SCOTCH_NAME_INTERN (dgraphMatchLc) #define dgraphMatchLy SCOTCH_NAME_INTERN (dgraphMatchLy) #define dgraphMatchSc SCOTCH_NAME_INTERN (dgraphMatchSc) #define dgraphRedist SCOTCH_NAME_INTERN (dgraphRedist) #define dgraphSave SCOTCH_NAME_INTERN (dgraphSave) #define dgraphScatter SCOTCH_NAME_INTERN (dgraphScatter) #define dgraphView SCOTCH_NAME_INTERN (dgraphView) #define dmapInit SCOTCH_NAME_INTERN (dmapInit) #define dmapExit SCOTCH_NAME_INTERN (dmapExit) #define dmapAdd SCOTCH_NAME_INTERN (dmapAdd) #define dmapTerm SCOTCH_NAME_INTERN (dmapTerm) #define dmapSave SCOTCH_NAME_INTERN (dmapSave) #define dmeshBuildAdm SCOTCH_NAME_INTERN (dmeshBuildAdm) #define dmeshDgraphDual SCOTCH_NAME_INTERN (dmeshDgraphDual) #define dmeshExit SCOTCH_NAME_INTERN (dmeshExit) #define dmeshFree SCOTCH_NAME_INTERN (dmeshFree) #define dmeshInit SCOTCH_NAME_INTERN (dmeshInit) #define dmeshLoad SCOTCH_NAME_INTERN (dmeshLoad) #define dorderCheck SCOTCH_NAME_INTERN (dorderCheck) #define dorderDispose SCOTCH_NAME_INTERN (dorderDispose) #define dorderExit SCOTCH_NAME_INTERN (dorderExit) #define dorderFree SCOTCH_NAME_INTERN (dorderFree) #define dorderFrst SCOTCH_NAME_INTERN (dorderFrst) #define dorderGather SCOTCH_NAME_INTERN (dorderGather) #define dorderGatherTree SCOTCH_NAME_INTERN (dorderGatherTree) #define dorderInit SCOTCH_NAME_INTERN (dorderInit) #define dorderNew SCOTCH_NAME_INTERN (dorderNew) #define dorderNewSequ SCOTCH_NAME_INTERN (dorderNewSequ) #define dorderNewSequIndex SCOTCH_NAME_INTERN (dorderNewSequIndex) #define dorderPerm SCOTCH_NAME_INTERN (dorderPerm) #define dorderSave SCOTCH_NAME_INTERN (dorderSave) #define dorderSaveBlock SCOTCH_NAME_INTERN (dorderSaveBlock) #define dorderSaveMap SCOTCH_NAME_INTERN (dorderSaveMap) #define dorderSaveTree SCOTCH_NAME_INTERN (dorderSaveTree) #define dorderSaveTree2 SCOTCH_NAME_INTERN (dorderSaveTree2) #define dorderCblkDist SCOTCH_NAME_INTERN (dorderCblkDist) #define dorderTreeDist SCOTCH_NAME_INTERN (dorderTreeDist) #define fiboHeapCheck SCOTCH_NAME_INTERN (fiboHeapCheck) #define fiboHeapConsolidate SCOTCH_NAME_INTERN (fiboHeapConsolidate) /* #define fiboHeapAdd SCOTCH_NAME_INTERN (fiboHeapAdd) Already a macro */ #define fiboHeapDecrease SCOTCH_NAME_INTERN (fiboHeapDecrease) #define fiboHeapDel SCOTCH_NAME_INTERN (fiboHeapDel) #define fiboHeapExit SCOTCH_NAME_INTERN (fiboHeapExit) #define fiboHeapFree SCOTCH_NAME_INTERN (fiboHeapFree) #define fiboHeapInit SCOTCH_NAME_INTERN (fiboHeapInit) /* #define fiboHeapMin SCOTCH_NAME_INTERN (fiboHeapMin) Already a macro */ #define gainTablAddLin SCOTCH_NAME_INTERN (gainTablAddLin) #define gainTablAddLog SCOTCH_NAME_INTERN (gainTablAddLog) #define gainTablCheck SCOTCH_NAME_INTERN (gainTablCheck) #ifdef SCOTCH_DEBUG_GAIN1 /* If not already redefined as accelerated macro */ #define gainTablDel SCOTCH_NAME_INTERN (gainTablDel) #endif /* SCOTCH_DEBUG_GAIN1 */ #define gainTablExit SCOTCH_NAME_INTERN (gainTablExit) #define gainTablFree SCOTCH_NAME_INTERN (gainTablFree) #define gainTablFrst SCOTCH_NAME_INTERN (gainTablFrst) #define gainTablInit SCOTCH_NAME_INTERN (gainTablInit) #define gainTablNext SCOTCH_NAME_INTERN (gainTablNext) #define gainTablMove SCOTCH_NAME_INTERN (gainTablMove) #define geomExit SCOTCH_NAME_INTERN (geomExit) #define geomInit SCOTCH_NAME_INTERN (geomInit) #define graphInit SCOTCH_NAME_INTERN (graphInit) #define graphExit SCOTCH_NAME_INTERN (graphExit) #define graphFree SCOTCH_NAME_INTERN (graphFree) #define graphLoad SCOTCH_NAME_INTERN (graphLoad) #define graphLoad2 SCOTCH_NAME_INTERN (graphLoad2) #define graphSave SCOTCH_NAME_INTERN (graphSave) #define graphBand SCOTCH_NAME_INTERN (graphBand) #define graphBase SCOTCH_NAME_INTERN (graphBase) #define graphCheck SCOTCH_NAME_INTERN (graphCheck) #define graphClone SCOTCH_NAME_INTERN (graphClone) #define graphCoarsen SCOTCH_NAME_INTERN (graphCoarsen) #define graphCoarsenBuild SCOTCH_NAME_INTERN (graphCoarsenBuild) #define graphCoarsenMatch SCOTCH_NAME_INTERN (graphCoarsenMatch) #define graphDiamPV SCOTCH_NAME_INTERN (graphDiamPV) #define graphDump SCOTCH_NAME_INTERN (graphDump) #define graphDump2 SCOTCH_NAME_INTERN (graphDump2) #define graphDumpArray SCOTCH_NAME_INTERN (graphDumpArray) #define graphDumpArrays SCOTCH_NAME_INTERN (graphDumpArrays) #define graphIelo SCOTCH_NAME_INTERN (graphIelo) #define graphInduceList SCOTCH_NAME_INTERN (graphInduceList) #define graphInducePart SCOTCH_NAME_INTERN (graphInducePart) #define graphMatch SCOTCH_NAME_INTERN (graphMatch) #define graphMatchInit SCOTCH_NAME_INTERN (graphMatchInit) #define graphMatchNone SCOTCH_NAME_INTERN (graphMatchNone) #define graphGeomLoadChac SCOTCH_NAME_INTERN (graphGeomLoadChac) #define graphGeomLoadHabo SCOTCH_NAME_INTERN (graphGeomLoadHabo) #define graphGeomLoadMmkt SCOTCH_NAME_INTERN (graphGeomLoadMmkt) #define graphGeomLoadScot SCOTCH_NAME_INTERN (graphGeomLoadScot) #define graphGeomSaveChac SCOTCH_NAME_INTERN (graphGeomSaveChac) #define graphGeomSaveScot SCOTCH_NAME_INTERN (graphGeomSaveScot) #define graphGeomSaveMmkt SCOTCH_NAME_INTERN (graphGeomSaveMmkt) #define graphPtscotch SCOTCH_NAME_INTERN (graphPtscotch) #define hallOrderHdR2Halmd SCOTCH_NAME_INTERN (hallOrderHdR2Halmd) #define hallOrderHfR3Hamdf4 SCOTCH_NAME_INTERN (hallOrderHfR3Hamdf4) #define hallOrderHxBuild SCOTCH_NAME_INTERN (hallOrderHxBuild) #define hallOrderHxTree SCOTCH_NAME_INTERN (hallOrderHxTree) #define hdgraphorderststratab SCOTCH_NAME_INTERN (hdgraphorderststratab) #define hdgraphInit SCOTCH_NAME_INTERN (hdgraphInit) #define hdgraphExit SCOTCH_NAME_INTERN (hdgraphExit) #define hdgraphCheck SCOTCH_NAME_INTERN (hdgraphCheck) #define hdgraphFold SCOTCH_NAME_INTERN (hdgraphFold) #define hdgraphFold2 SCOTCH_NAME_INTERN (hdgraphFold2) #define hdgraphGather SCOTCH_NAME_INTERN (hdgraphGather) #define hdgraphInduceList SCOTCH_NAME_INTERN (hdgraphInduceList) #define hdgraphOrderNd SCOTCH_NAME_INTERN (hdgraphOrderNd) #define hdgraphOrderNd2 SCOTCH_NAME_INTERN (hdgraphOrderNd2) #define hdgraphOrderSi SCOTCH_NAME_INTERN (hdgraphOrderSi) #define hdgraphOrderSi2 SCOTCH_NAME_INTERN (hdgraphOrderSi2) #define hdgraphOrderSq SCOTCH_NAME_INTERN (hdgraphOrderSq) #define hdgraphOrderSq2 SCOTCH_NAME_INTERN (hdgraphOrderSq2) #define hdgraphOrderSt SCOTCH_NAME_INTERN (hdgraphOrderSt) #define hgraphorderststratab SCOTCH_NAME_INTERN (hgraphorderststratab) #define hgraphInit SCOTCH_NAME_INTERN (hgraphInit) #define hgraphExit SCOTCH_NAME_INTERN (hgraphExit) #define hgraphFree SCOTCH_NAME_INTERN (hgraphFree) #define hgraphInduceList SCOTCH_NAME_INTERN (hgraphInduceList) #define hgraphCheck SCOTCH_NAME_INTERN (hgraphCheck) #define hgraphDump SCOTCH_NAME_INTERN (hgraphDump) #define hgraphOrderBl SCOTCH_NAME_INTERN (hgraphOrderBl) #define hgraphOrderCc SCOTCH_NAME_INTERN (hgraphOrderCc) #define hgraphOrderCp SCOTCH_NAME_INTERN (hgraphOrderCp) #define hgraphOrderGp SCOTCH_NAME_INTERN (hgraphOrderGp) #define hgraphOrderHd SCOTCH_NAME_INTERN (hgraphOrderHd) #define hgraphOrderHf SCOTCH_NAME_INTERN (hgraphOrderHf) #define hgraphOrderHxFill SCOTCH_NAME_INTERN (hgraphOrderHxFill) #define hgraphOrderKp SCOTCH_NAME_INTERN (hgraphOrderKp) #define hgraphOrderNd SCOTCH_NAME_INTERN (hgraphOrderNd) #define hgraphOrderSi SCOTCH_NAME_INTERN (hgraphOrderSi) #define hgraphOrderSt SCOTCH_NAME_INTERN (hgraphOrderSt) #define hgraphUnhalo SCOTCH_NAME_INTERN (hgraphUnhalo) #define hgraphUnhalo2 SCOTCH_NAME_INTERN (hgraphUnhalo2) #define hmeshorderststratab SCOTCH_NAME_INTERN (hmeshorderststratab) #define hmeshExit SCOTCH_NAME_INTERN (hmeshExit) #define hmeshBase SCOTCH_NAME_INTERN (hmeshBase) #define hmeshCheck SCOTCH_NAME_INTERN (hmeshCheck) #define hmeshInducePart SCOTCH_NAME_INTERN (hmeshInducePart) #define hmeshHgraph SCOTCH_NAME_INTERN (hmeshHgraph) #define hmeshMesh SCOTCH_NAME_INTERN (hmeshMesh) #define hmeshOrderBl SCOTCH_NAME_INTERN (hmeshOrderBl) #define hmeshOrderCp SCOTCH_NAME_INTERN (hmeshOrderCp) #define hmeshOrderGp SCOTCH_NAME_INTERN (hmeshOrderGp) #define hmeshOrderGr SCOTCH_NAME_INTERN (hmeshOrderGr) #define hmeshOrderHd SCOTCH_NAME_INTERN (hmeshOrderHd) #define hmeshOrderHf SCOTCH_NAME_INTERN (hmeshOrderHf) #define hmeshOrderHxFill SCOTCH_NAME_INTERN (hmeshOrderHxFill) #define hmeshOrderNd SCOTCH_NAME_INTERN (hmeshOrderNd) #define hmeshOrderSi SCOTCH_NAME_INTERN (hmeshOrderSi) #define hmeshOrderSt SCOTCH_NAME_INTERN (hmeshOrderSt) #define kdgraphmapststratab SCOTCH_NAME_INTERN (kdgraphmapststratab) #define kdgraphInit SCOTCH_NAME_INTERN (kdgraphInit) #define kdgraphExit SCOTCH_NAME_INTERN (kdgraphExit) #define kdgraphGather SCOTCH_NAME_INTERN (kdgraphGather) #define kdgraphMapRb SCOTCH_NAME_INTERN (kdgraphMapRb) #define kdgraphMapRbAdd2 SCOTCH_NAME_INTERN (kdgraphMapRbAdd2) #define kdgraphMapRbAddBoth SCOTCH_NAME_INTERN (kdgraphMapRbAddBoth) #define kdgraphMapRbAddOne SCOTCH_NAME_INTERN (kdgraphMapRbAddOne) #define kdgraphMapRbAddPart SCOTCH_NAME_INTERN (kdgraphMapRbAddPart) #define kdgraphMapRbMap SCOTCH_NAME_INTERN (kdgraphMapRbMap) #define kdgraphMapRbPart SCOTCH_NAME_INTERN (kdgraphMapRbPart) #define kdgraphMapSt SCOTCH_NAME_INTERN (kdgraphMapSt) #define kgraphmapststratab SCOTCH_NAME_INTERN (kgraphmapststratab) #define kgraphInit SCOTCH_NAME_INTERN (kgraphInit) #define kgraphExit SCOTCH_NAME_INTERN (kgraphExit) #define kgraphCheck SCOTCH_NAME_INTERN (kgraphCheck) #define kgraphBand SCOTCH_NAME_INTERN (kgraphBand) #define kgraphCost SCOTCH_NAME_INTERN (kgraphCost) #define kgraphFron SCOTCH_NAME_INTERN (kgraphFron) #define kgraphFrst SCOTCH_NAME_INTERN (kgraphFrst) #define kgraphMapBd SCOTCH_NAME_INTERN (kgraphMapBd) #define kgraphMapCp SCOTCH_NAME_INTERN (kgraphMapCp) #define kgraphMapDf SCOTCH_NAME_INTERN (kgraphMapDf) #define kgraphMapEx SCOTCH_NAME_INTERN (kgraphMapEx) #define kgraphMapFm SCOTCH_NAME_INTERN (kgraphMapFm) #define kgraphMapMl SCOTCH_NAME_INTERN (kgraphMapMl) #define kgraphMapRb SCOTCH_NAME_INTERN (kgraphMapRb) #define kgraphMapRbMap SCOTCH_NAME_INTERN (kgraphMapRbMap) #define kgraphMapRbBgraph SCOTCH_NAME_INTERN (kgraphMapRbBgraph) #define kgraphMapRbPart SCOTCH_NAME_INTERN (kgraphMapRbPart) #define kgraphMapRbVfloBuild SCOTCH_NAME_INTERN (kgraphMapRbVfloBuild) #define kgraphMapRbVfloMerge SCOTCH_NAME_INTERN (kgraphMapRbVfloMerge) #define kgraphMapRbVfloSplit SCOTCH_NAME_INTERN (kgraphMapRbVfloSplit) #define kgraphMapSt SCOTCH_NAME_INTERN (kgraphMapSt) #define kgraphStoreInit SCOTCH_NAME_INTERN (kgraphStoreInit) #define kgraphStoreExit SCOTCH_NAME_INTERN (kgraphStoreExit) #define kgraphStoreSave SCOTCH_NAME_INTERN (kgraphStoreSave) #define kgraphStoreUpdt SCOTCH_NAME_INTERN (kgraphStoreUpdt) #define listInit SCOTCH_NAME_INTERN (listInit) #define listExit SCOTCH_NAME_INTERN (listExit) #define listAlloc SCOTCH_NAME_INTERN (listAlloc) #define listFree SCOTCH_NAME_INTERN (listFree) #define listLoad SCOTCH_NAME_INTERN (listLoad) #define listSave SCOTCH_NAME_INTERN (listSave) #define listSort SCOTCH_NAME_INTERN (listSort) #define listCopy SCOTCH_NAME_INTERN (listCopy) #define mapInit SCOTCH_NAME_INTERN (mapInit) #define mapInit2 SCOTCH_NAME_INTERN (mapInit2) #define mapExit SCOTCH_NAME_INTERN (mapExit) #define mapAlloc SCOTCH_NAME_INTERN (mapAlloc) #define mapBuild SCOTCH_NAME_INTERN (mapBuild) #define mapCopy SCOTCH_NAME_INTERN (mapCopy) #define mapCheck SCOTCH_NAME_INTERN (mapCheck) #define mapFree SCOTCH_NAME_INTERN (mapFree) #define mapFrst SCOTCH_NAME_INTERN (mapFrst) #define mapLoad SCOTCH_NAME_INTERN (mapLoad) #define mapMerge SCOTCH_NAME_INTERN (mapMerge) #define mapResize SCOTCH_NAME_INTERN (mapResize) #define mapSave SCOTCH_NAME_INTERN (mapSave) #define mapTerm SCOTCH_NAME_INTERN (mapTerm) #define meshInit SCOTCH_NAME_INTERN (meshInit) #define meshExit SCOTCH_NAME_INTERN (meshExit) #define meshFree SCOTCH_NAME_INTERN (meshFree) #define meshLoad SCOTCH_NAME_INTERN (meshLoad) #define meshSave SCOTCH_NAME_INTERN (meshSave) #define meshBase SCOTCH_NAME_INTERN (meshBase) #define meshCheck SCOTCH_NAME_INTERN (meshCheck) #define meshCoarsen SCOTCH_NAME_INTERN (meshCoarsen) #define meshGeomLoadHabo SCOTCH_NAME_INTERN (meshGeomLoadHabo) #define meshGeomLoadScot SCOTCH_NAME_INTERN (meshGeomLoadScot) #define meshGeomSaveScot SCOTCH_NAME_INTERN (meshGeomSaveScot) #define meshGraphNodal SCOTCH_NAME_INTERN (meshGraphNodal) #define meshGraphDual SCOTCH_NAME_INTERN (meshGraphDual) #define meshInduceList SCOTCH_NAME_INTERN (meshInduceList) #define meshInducePart SCOTCH_NAME_INTERN (meshInducePart) #define meshInduceSepa SCOTCH_NAME_INTERN (meshInduceSepa) #define orderInit SCOTCH_NAME_INTERN (orderInit) #define orderExit SCOTCH_NAME_INTERN (orderExit) #define orderLoad SCOTCH_NAME_INTERN (orderLoad) #define orderSave SCOTCH_NAME_INTERN (orderSave) #define orderSaveMap SCOTCH_NAME_INTERN (orderSaveMap) #define orderSaveTree SCOTCH_NAME_INTERN (orderSaveTree) #define orderCheck SCOTCH_NAME_INTERN (orderCheck) #define orderPeri SCOTCH_NAME_INTERN (orderPeri) #define orderRang SCOTCH_NAME_INTERN (orderRang) #define orderTree SCOTCH_NAME_INTERN (orderTree) #define parserLocationUpdate SCOTCH_NAME_INTERN (parserLocationUpdate) #define stratmethtokentab SCOTCH_NAME_INTERN (stratmethtokentab) #define stratenvdat SCOTCH_NAME_INTERN (stratenvdat) #define stratdummy SCOTCH_NAME_INTERN (stratdummy) #define stratInit SCOTCH_NAME_INTERN (stratInit) #define stratExit SCOTCH_NAME_INTERN (stratExit) #define stratSave SCOTCH_NAME_INTERN (stratSave) #define stratCondEval SCOTCH_NAME_INTERN (stratCondEval) #define stratCondExit SCOTCH_NAME_INTERN (stratCondExit) #define stratCondSave SCOTCH_NAME_INTERN (stratCondSave) #define stratParserInit SCOTCH_NAME_INTERN (stratParserInit) #define stratParserInput SCOTCH_NAME_INTERN (stratParserInput) #define stratParserLex SCOTCH_NAME_INTERN (stratParserLex) #define stratParserLexBegin SCOTCH_NAME_INTERN (stratParserLexBegin) #define stratParserLexBufDelete SCOTCH_NAME_INTERN (stratParserLexBufDelete) #define stratParserLexBufDestroy SCOTCH_NAME_INTERN (stratParserLexBufDestroy) #define stratParserLexBufSwitch SCOTCH_NAME_INTERN (stratParserLexBufSwitch) #define stratParserLexDestroy SCOTCH_NAME_INTERN (stratParserLexDestroy) #define stratParserLexInit SCOTCH_NAME_INTERN (stratParserLexInit) #define stratParserLexScanString SCOTCH_NAME_INTERN (stratParserLexScanString) #define stratParserRemain SCOTCH_NAME_INTERN (stratParserRemain) #define stratParserSelect SCOTCH_NAME_INTERN (stratParserSelect) #define stratParserParse SCOTCH_NAME_INTERN (stratParserParse) #define stratParserParse2 SCOTCH_NAME_INTERN (stratParserParse2) #define stratTestEval SCOTCH_NAME_INTERN (stratTestEval) #define stratTestExit SCOTCH_NAME_INTERN (stratTestExit) #define stratTestSave SCOTCH_NAME_INTERN (stratTestSave) #define threadLaunch SCOTCH_NAME_INTERN (threadLaunch) #define threadReduce SCOTCH_NAME_INTERN (threadReduce) #define threadScan SCOTCH_NAME_INTERN (threadScan) #define vdgraphseparateststratab SCOTCH_NAME_INTERN (vdgraphseparateststratab) #define vdgraphCheck SCOTCH_NAME_INTERN (vdgraphCheck) #define vdgraphExit SCOTCH_NAME_INTERN (vdgraphExit) #define vdgraphGatherAll SCOTCH_NAME_INTERN (vdgraphGatherAll) #define vdgraphInit SCOTCH_NAME_INTERN (vdgraphInit) #define vdgraphSeparateBd SCOTCH_NAME_INTERN (vdgraphSeparateBd) #define vdgraphSeparateDf SCOTCH_NAME_INTERN (vdgraphSeparateDf) #define vdgraphSeparateMl SCOTCH_NAME_INTERN (vdgraphSeparateMl) #define vdgraphSeparateSq SCOTCH_NAME_INTERN (vdgraphSeparateSq) #define vdgraphSeparateSt SCOTCH_NAME_INTERN (vdgraphSeparateSt) #define vdgraphSeparateZr SCOTCH_NAME_INTERN (vdgraphSeparateZr) #define vdgraphStoreExit SCOTCH_NAME_INTERN (vdgraphStoreExit) #define vdgraphStoreInit SCOTCH_NAME_INTERN (vdgraphStoreInit) #define vdgraphStoreSave SCOTCH_NAME_INTERN (vdgraphStoreSave) #define vdgraphStoreUpdt SCOTCH_NAME_INTERN (vdgraphStoreUpdt) #define vdgraphZero SCOTCH_NAME_INTERN (vdgraphZero) #define vgraphseparateststratab SCOTCH_NAME_INTERN (vgraphseparateststratab) #define vgraphInit SCOTCH_NAME_INTERN (vgraphInit) #define vgraphExit SCOTCH_NAME_INTERN (vgraphExit) #define vgraphCheck SCOTCH_NAME_INTERN (vgraphCheck) #define vgraphZero SCOTCH_NAME_INTERN (vgraphZero) #define vgraphSeparateBd SCOTCH_NAME_INTERN (vgraphSeparateBd) #define vgraphSeparateDf SCOTCH_NAME_INTERN (vgraphSeparateDf) #define vgraphSeparateEs SCOTCH_NAME_INTERN (vgraphSeparateEs) #define vgraphSeparateFm SCOTCH_NAME_INTERN (vgraphSeparateFm) #define vgraphSeparateGg SCOTCH_NAME_INTERN (vgraphSeparateGg) #define vgraphSeparateGp SCOTCH_NAME_INTERN (vgraphSeparateGp) #define vgraphSeparateMl SCOTCH_NAME_INTERN (vgraphSeparateMl) #define vgraphSeparateMt SCOTCH_NAME_INTERN (vgraphSeparateMt) #define vgraphSeparateSt SCOTCH_NAME_INTERN (vgraphSeparateSt) #define vgraphSeparateTh SCOTCH_NAME_INTERN (vgraphSeparateTh) #define vgraphSeparateVw SCOTCH_NAME_INTERN (vgraphSeparateVw) #define vgraphSeparateZr SCOTCH_NAME_INTERN (vgraphSeparateZr) #define vgraphStoreInit SCOTCH_NAME_INTERN (vgraphStoreInit) #define vgraphStoreExit SCOTCH_NAME_INTERN (vgraphStoreExit) #define vgraphStoreSave SCOTCH_NAME_INTERN (vgraphStoreSave) #define vgraphStoreUpdt SCOTCH_NAME_INTERN (vgraphStoreUpdt) #define vmeshseparateststratab SCOTCH_NAME_INTERN (vmeshseparateststratab) #define vmeshExit SCOTCH_NAME_INTERN (vmeshExit) #define vmeshCheck SCOTCH_NAME_INTERN (vmeshCheck) #define vmeshZero SCOTCH_NAME_INTERN (vmeshZero) #define vmeshSeparateFm SCOTCH_NAME_INTERN (vmeshSeparateFm) #define vmeshSeparateGg SCOTCH_NAME_INTERN (vmeshSeparateGg) #define vmeshSeparateGr SCOTCH_NAME_INTERN (vmeshSeparateGr) #define vmeshSeparateMl SCOTCH_NAME_INTERN (vmeshSeparateMl) #define vmeshSeparateSt SCOTCH_NAME_INTERN (vmeshSeparateSt) #define vmeshSeparateZr SCOTCH_NAME_INTERN (vmeshSeparateZr) #define vmeshStoreInit SCOTCH_NAME_INTERN (vmeshStoreInit) #define vmeshStoreExit SCOTCH_NAME_INTERN (vmeshStoreExit) #define vmeshStoreSave SCOTCH_NAME_INTERN (vmeshStoreSave) #define vmeshStoreUpdt SCOTCH_NAME_INTERN (vmeshStoreUpdt) #define wgraphpartststratab SCOTCH_NAME_INTERN (wgraphpartststratab) #define wgraphAlloc SCOTCH_NAME_INTERN (wgraphAlloc) #define wgraphInit SCOTCH_NAME_INTERN (wgraphInit) #define wgraphExit SCOTCH_NAME_INTERN (wgraphExit) #define wgraphCheck SCOTCH_NAME_INTERN (wgraphCheck) #define wgraphCost SCOTCH_NAME_INTERN (wgraphCost) #define wgraphZero SCOTCH_NAME_INTERN (wgraphZero) #define wgraphPartEs SCOTCH_NAME_INTERN (wgraphPartEs) #define wgraphPartFm SCOTCH_NAME_INTERN (wgraphPartFm) #define wgraphPartGg SCOTCH_NAME_INTERN (wgraphPartGg) #define wgraphPartMl SCOTCH_NAME_INTERN (wgraphPartMl) #define wgraphPartRb SCOTCH_NAME_INTERN (wgraphPartRb) #define wgraphPartSt SCOTCH_NAME_INTERN (wgraphPartSt) #define wgraphPartZr SCOTCH_NAME_INTERN (wgraphPartZr) #define wgraphStoreInit SCOTCH_NAME_INTERN (wgraphStoreInit) #define wgraphStoreExit SCOTCH_NAME_INTERN (wgraphStoreExit) #define wgraphStoreSave SCOTCH_NAME_INTERN (wgraphStoreSave) #define wgraphStoreUpdt SCOTCH_NAME_INTERN (wgraphStoreUpdt) #endif /* SCOTCH_RENAME */ #ifdef SCOTCH_RENAME_PUBLIC #define SCOTCH_archAlloc SCOTCH_NAME_PUBLIC (SCOTCH_archAlloc) #define SCOTCH_archBuild SCOTCH_NAME_PUBLIC (SCOTCH_archBuild) #define SCOTCH_archBuild0 SCOTCH_NAME_PUBLIC (SCOTCH_archBuild0) #define SCOTCH_archBuild2 SCOTCH_NAME_PUBLIC (SCOTCH_archBuild2) #define SCOTCH_archCmplt SCOTCH_NAME_PUBLIC (SCOTCH_archCmplt) #define SCOTCH_archCmpltw SCOTCH_NAME_PUBLIC (SCOTCH_archCmpltw) #define SCOTCH_archDomAlloc SCOTCH_NAME_PUBLIC (SCOTCH_archDomAlloc) #define SCOTCH_archDomBipart SCOTCH_NAME_PUBLIC (SCOTCH_archDomBipart) #define SCOTCH_archDomDist SCOTCH_NAME_PUBLIC (SCOTCH_archDomDist) #define SCOTCH_archDomFrst SCOTCH_NAME_PUBLIC (SCOTCH_archDomFrst) #define SCOTCH_archDomNum SCOTCH_NAME_PUBLIC (SCOTCH_archDomNum) #define SCOTCH_archDomSizeof SCOTCH_NAME_PUBLIC (SCOTCH_archDomSizeof) #define SCOTCH_archDomSize SCOTCH_NAME_PUBLIC (SCOTCH_archDomSize) #define SCOTCH_archDomTerm SCOTCH_NAME_PUBLIC (SCOTCH_archDomTerm) #define SCOTCH_archDomWght SCOTCH_NAME_PUBLIC (SCOTCH_archDomWght) #define SCOTCH_archExit SCOTCH_NAME_PUBLIC (SCOTCH_archExit) #define SCOTCH_archHcub SCOTCH_NAME_PUBLIC (SCOTCH_archHcub) #define SCOTCH_archInit SCOTCH_NAME_PUBLIC (SCOTCH_archInit) #define SCOTCH_archLoad SCOTCH_NAME_PUBLIC (SCOTCH_archLoad) #define SCOTCH_archLtleaf SCOTCH_NAME_PUBLIC (SCOTCH_archLtleaf) #define SCOTCH_archMesh2 SCOTCH_NAME_PUBLIC (SCOTCH_archMesh2) #define SCOTCH_archMesh3 SCOTCH_NAME_PUBLIC (SCOTCH_archMesh3) #define SCOTCH_archMeshX SCOTCH_NAME_PUBLIC (SCOTCH_archMeshX) #define SCOTCH_archName SCOTCH_NAME_PUBLIC (SCOTCH_archName) #define SCOTCH_archSave SCOTCH_NAME_PUBLIC (SCOTCH_archSave) #define SCOTCH_archSize SCOTCH_NAME_PUBLIC (SCOTCH_archSize) #define SCOTCH_archSizeof SCOTCH_NAME_PUBLIC (SCOTCH_archSizeof) #define SCOTCH_archSub SCOTCH_NAME_PUBLIC (SCOTCH_archSub) #define SCOTCH_archTleaf SCOTCH_NAME_PUBLIC (SCOTCH_archTleaf) #define SCOTCH_archTorus2 SCOTCH_NAME_PUBLIC (SCOTCH_archTorus2) #define SCOTCH_archTorus3 SCOTCH_NAME_PUBLIC (SCOTCH_archTorus3) #define SCOTCH_archTorusX SCOTCH_NAME_PUBLIC (SCOTCH_archTorusX) #define SCOTCH_archVar SCOTCH_NAME_PUBLIC (SCOTCH_archVar) #define SCOTCH_archVcmplt SCOTCH_NAME_PUBLIC (SCOTCH_archVcmplt) #define SCOTCH_archVhcub SCOTCH_NAME_PUBLIC (SCOTCH_archVhcub) #define SCOTCH_contextBindDgraph SCOTCH_NAME_PUBLIC (SCOTCH_contextBindDgraph) #define SCOTCH_contextBindGraph SCOTCH_NAME_PUBLIC (SCOTCH_contextBindGraph) #define SCOTCH_contextBindMesh SCOTCH_NAME_PUBLIC (SCOTCH_contextBindMesh) #define SCOTCH_contextExit SCOTCH_NAME_PUBLIC (SCOTCH_contextExit) #define SCOTCH_contextInit SCOTCH_NAME_PUBLIC (SCOTCH_contextInit) #define SCOTCH_contextOptionGetNum SCOTCH_NAME_PUBLIC (SCOTCH_contextOptionGetNum) #define SCOTCH_contextOptionParse SCOTCH_NAME_PUBLIC (SCOTCH_contextOptionParse) #define SCOTCH_contextOptionSetNum SCOTCH_NAME_PUBLIC (SCOTCH_contextOptionSetNum) #define SCOTCH_contextRandomClone SCOTCH_NAME_PUBLIC (SCOTCH_contextRandomClone) #define SCOTCH_contextRandomReset SCOTCH_NAME_PUBLIC (SCOTCH_contextRandomReset) #define SCOTCH_contextRandomSeed SCOTCH_NAME_PUBLIC (SCOTCH_contextRandomSeed) #define SCOTCH_contextThreadImport1 SCOTCH_NAME_PUBLIC (SCOTCH_contextThreadImport1) #define SCOTCH_contextThreadImport2 SCOTCH_NAME_PUBLIC (SCOTCH_contextThreadImport2) #define SCOTCH_contextThreadSpawn SCOTCH_NAME_PUBLIC (SCOTCH_contextThreadSpawn) #define SCOTCH_contextSizeof SCOTCH_NAME_PUBLIC (SCOTCH_contextSizeof) #define SCOTCH_dgraphAlloc SCOTCH_NAME_PUBLIC (SCOTCH_dgraphAlloc) #define SCOTCH_dgraphBand SCOTCH_NAME_PUBLIC (SCOTCH_dgraphBand) #define SCOTCH_dgraphBuild SCOTCH_NAME_PUBLIC (SCOTCH_dgraphBuild) #define SCOTCH_dgraphBuildGrid3D SCOTCH_NAME_PUBLIC (SCOTCH_dgraphBuildGrid3D) #define SCOTCH_dgraphCheck SCOTCH_NAME_PUBLIC (SCOTCH_dgraphCheck) #define SCOTCH_dgraphCoarsen SCOTCH_NAME_PUBLIC (SCOTCH_dgraphCoarsen) #define SCOTCH_dgraphCoarsenVertLocMax SCOTCH_NAME_PUBLIC (SCOTCH_dgraphCoarsenVertLocMax) #define SCOTCH_dgraphCorderExit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphCorderExit) #define SCOTCH_dgraphCorderInit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphCorderInit) #define SCOTCH_dgraphData SCOTCH_NAME_PUBLIC (SCOTCH_dgraphData) #define SCOTCH_dgraphExit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphExit) #define SCOTCH_dgraphFree SCOTCH_NAME_PUBLIC (SCOTCH_dgraphFree) #define SCOTCH_dgraphGather SCOTCH_NAME_PUBLIC (SCOTCH_dgraphGather) #define SCOTCH_dgraphGhst SCOTCH_NAME_PUBLIC (SCOTCH_dgraphGhst) #define SCOTCH_dgraphGhstReplace SCOTCH_NAME_PUBLIC (SCOTCH_dgraphGhstReplace) #define SCOTCH_dgraphGrow SCOTCH_NAME_PUBLIC (SCOTCH_dgraphGrow) #define SCOTCH_dgraphHalo SCOTCH_NAME_PUBLIC (SCOTCH_dgraphHalo) #define SCOTCH_dgraphHaloReqSizeof SCOTCH_NAME_PUBLIC (SCOTCH_dgraphHaloReqSizeof) #define SCOTCH_dgraphHaloAsync SCOTCH_NAME_PUBLIC (SCOTCH_dgraphHaloAsync) #define SCOTCH_dgraphHaloReqAlloc SCOTCH_NAME_PUBLIC (SCOTCH_dgraphHaloReqAlloc) #define SCOTCH_dgraphHaloWait SCOTCH_NAME_PUBLIC (SCOTCH_dgraphHaloWait) #define SCOTCH_dgraphInducePart SCOTCH_NAME_PUBLIC (SCOTCH_dgraphInducePart) #define SCOTCH_dgraphInit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphInit) #define SCOTCH_dgraphLoad SCOTCH_NAME_PUBLIC (SCOTCH_dgraphLoad) #define SCOTCH_dgraphMap SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMap) #define SCOTCH_dgraphMapCompute SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMapCompute) #define SCOTCH_dgraphMapExit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMapExit) #define SCOTCH_dgraphMapInit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMapInit) #define SCOTCH_dgraphMapSave SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMapSave) #define SCOTCH_dgraphMapStat SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMapStat) #define SCOTCH_dgraphMapView SCOTCH_NAME_PUBLIC (SCOTCH_dgraphMapView) #define SCOTCH_dgraphOrderCblkDist SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderCblkDist) #define SCOTCH_dgraphOrderCompute SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderCompute) #define SCOTCH_dgraphOrderComputeList SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderComputeList) #define SCOTCH_dgraphOrderExit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderExit) #define SCOTCH_dgraphOrderGather SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderGather) #define SCOTCH_dgraphOrderInit SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderInit) #define SCOTCH_dgraphOrderPerm SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderPerm) #define SCOTCH_dgraphOrderSave SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderSave) #define SCOTCH_dgraphOrderSaveBlock SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderSaveBlock) #define SCOTCH_dgraphOrderSaveMap SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderSaveMap) #define SCOTCH_dgraphOrderSaveTree SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderSaveTree) #define SCOTCH_dgraphOrderTreeDist SCOTCH_NAME_PUBLIC (SCOTCH_dgraphOrderTreeDist) #define SCOTCH_dgraphPart SCOTCH_NAME_PUBLIC (SCOTCH_dgraphPart) #define SCOTCH_dgraphRedist SCOTCH_NAME_PUBLIC (SCOTCH_dgraphRedist) #define SCOTCH_dgraphSave SCOTCH_NAME_PUBLIC (SCOTCH_dgraphSave) #define SCOTCH_dgraphSizeof SCOTCH_NAME_PUBLIC (SCOTCH_dgraphSizeof) #define SCOTCH_dgraphScatter SCOTCH_NAME_PUBLIC (SCOTCH_dgraphScatter) #define SCOTCH_dgraphSize SCOTCH_NAME_PUBLIC (SCOTCH_dgraphSize) #define SCOTCH_dgraphStat SCOTCH_NAME_PUBLIC (SCOTCH_dgraphStat) #define SCOTCH_dmapAlloc SCOTCH_NAME_PUBLIC (SCOTCH_dmapAlloc) #define SCOTCH_dmapSizeof SCOTCH_NAME_PUBLIC (SCOTCH_dmapSizeof) #define SCOTCH_dmeshAlloc SCOTCH_NAME_PUBLIC (SCOTCH_dmeshAlloc) #define SCOTCH_dmeshBuildAdm SCOTCH_NAME_PUBLIC (SCOTCH_dmeshBuildAdm) #define SCOTCH_dmeshData SCOTCH_NAME_PUBLIC (SCOTCH_dmeshData) #define SCOTCH_dmeshDgraphDual SCOTCH_NAME_PUBLIC (SCOTCH_dmeshDgraphDual) #define SCOTCH_dmeshExit SCOTCH_NAME_PUBLIC (SCOTCH_dmeshExit) #define SCOTCH_dmeshFree SCOTCH_NAME_PUBLIC (SCOTCH_dmeshFree) #define SCOTCH_dmeshInit SCOTCH_NAME_PUBLIC (SCOTCH_dmeshInit) #define SCOTCH_dmeshLoad SCOTCH_NAME_PUBLIC (SCOTCH_dmeshLoad) #define SCOTCH_dmeshSize SCOTCH_NAME_PUBLIC (SCOTCH_dmeshSize) #define SCOTCH_dmeshSizeof SCOTCH_NAME_PUBLIC (SCOTCH_dmeshSizeof) #define SCOTCH_dorderAlloc SCOTCH_NAME_PUBLIC (SCOTCH_dorderAlloc) #define SCOTCH_dorderSizeof SCOTCH_NAME_PUBLIC (SCOTCH_dorderSizeof) #define SCOTCH_geomAlloc SCOTCH_NAME_PUBLIC (SCOTCH_geomAlloc) #define SCOTCH_geomData SCOTCH_NAME_PUBLIC (SCOTCH_geomData) #define SCOTCH_geomExit SCOTCH_NAME_PUBLIC (SCOTCH_geomExit) #define SCOTCH_geomInit SCOTCH_NAME_PUBLIC (SCOTCH_geomInit) #define SCOTCH_geomSizeof SCOTCH_NAME_PUBLIC (SCOTCH_geomSizeof) #define SCOTCH_graphAlloc SCOTCH_NAME_PUBLIC (SCOTCH_graphAlloc) #define SCOTCH_graphBase SCOTCH_NAME_PUBLIC (SCOTCH_graphBase) #define SCOTCH_graphBuild SCOTCH_NAME_PUBLIC (SCOTCH_graphBuild) #define SCOTCH_graphCheck SCOTCH_NAME_PUBLIC (SCOTCH_graphCheck) #define SCOTCH_graphCoarsen SCOTCH_NAME_PUBLIC (SCOTCH_graphCoarsen) #define SCOTCH_graphCoarsenBuild SCOTCH_NAME_PUBLIC (SCOTCH_graphCoarsenBuild) #define SCOTCH_graphCoarsenMatch SCOTCH_NAME_PUBLIC (SCOTCH_graphCoarsenMatch) #define SCOTCH_graphColor SCOTCH_NAME_PUBLIC (SCOTCH_graphColor) #define SCOTCH_graphData SCOTCH_NAME_PUBLIC (SCOTCH_graphData) #define SCOTCH_graphDiamPV SCOTCH_NAME_PUBLIC (SCOTCH_graphDiamPV) #define SCOTCH_graphDump SCOTCH_NAME_PUBLIC (SCOTCH_graphDump) #define SCOTCH_graphExit SCOTCH_NAME_PUBLIC (SCOTCH_graphExit) #define SCOTCH_graphFree SCOTCH_NAME_PUBLIC (SCOTCH_graphFree) #define SCOTCH_graphGeomLoadChac SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomLoadChac) #define SCOTCH_graphGeomLoadHabo SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomLoadHabo) #define SCOTCH_graphGeomLoadMmkt SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomLoadMmkt) #define SCOTCH_graphGeomLoadScot SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomLoadScot) #define SCOTCH_graphGeomSaveChac SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomSaveChac) #define SCOTCH_graphGeomSaveMmkt SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomSaveMmkt) #define SCOTCH_graphGeomSaveScot SCOTCH_NAME_PUBLIC (SCOTCH_graphGeomSaveScot) #define SCOTCH_graphInduceList SCOTCH_NAME_PUBLIC (SCOTCH_graphInduceList) #define SCOTCH_graphInducePart SCOTCH_NAME_PUBLIC (SCOTCH_graphInducePart) #define SCOTCH_graphInit SCOTCH_NAME_PUBLIC (SCOTCH_graphInit) #define SCOTCH_graphLoad SCOTCH_NAME_PUBLIC (SCOTCH_graphLoad) #define SCOTCH_graphMap SCOTCH_NAME_PUBLIC (SCOTCH_graphMap) #define SCOTCH_graphMapCompute SCOTCH_NAME_PUBLIC (SCOTCH_graphMapCompute) #define SCOTCH_graphMapExit SCOTCH_NAME_PUBLIC (SCOTCH_graphMapExit) #define SCOTCH_graphMapFixed SCOTCH_NAME_PUBLIC (SCOTCH_graphMapFixed) #define SCOTCH_graphMapFixedCompute SCOTCH_NAME_PUBLIC (SCOTCH_graphMapFixedCompute) #define SCOTCH_graphMapInit SCOTCH_NAME_PUBLIC (SCOTCH_graphMapInit) #define SCOTCH_graphMapLoad SCOTCH_NAME_PUBLIC (SCOTCH_graphMapLoad) #define SCOTCH_graphMapSave SCOTCH_NAME_PUBLIC (SCOTCH_graphMapSave) #define SCOTCH_graphMapView SCOTCH_NAME_PUBLIC (SCOTCH_graphMapView) #define SCOTCH_graphMapViewRaw SCOTCH_NAME_PUBLIC (SCOTCH_graphMapViewRaw) #define SCOTCH_graphOrder SCOTCH_NAME_PUBLIC (SCOTCH_graphOrder) #define SCOTCH_graphOrderCheck SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderCheck) #define SCOTCH_graphOrderCompute SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderCompute) #define SCOTCH_graphOrderComputeList SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderComputeList) #define SCOTCH_graphOrderExit SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderExit) #define SCOTCH_graphOrderInit SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderInit) #define SCOTCH_graphOrderList SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderList) #define SCOTCH_graphOrderLoad SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderLoad) #define SCOTCH_graphOrderSave SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderSave) #define SCOTCH_graphOrderSaveMap SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderSaveMap) #define SCOTCH_graphOrderSaveTree SCOTCH_NAME_PUBLIC (SCOTCH_graphOrderSaveTree) #define SCOTCH_graphPart SCOTCH_NAME_PUBLIC (SCOTCH_graphPart) #define SCOTCH_graphPartFixed SCOTCH_NAME_PUBLIC (SCOTCH_graphPartFixed) #define SCOTCH_graphPartOvl SCOTCH_NAME_PUBLIC (SCOTCH_graphPartOvl) #define SCOTCH_graphPartOvlView SCOTCH_NAME_PUBLIC (SCOTCH_graphPartOvlView) #define SCOTCH_graphRemap SCOTCH_NAME_PUBLIC (SCOTCH_graphRemap) #define SCOTCH_graphRemapCompute SCOTCH_NAME_PUBLIC (SCOTCH_graphRemapCompute) #define SCOTCH_graphRemapFixed SCOTCH_NAME_PUBLIC (SCOTCH_graphRemapFixed) #define SCOTCH_graphRemapFixedCompute SCOTCH_NAME_PUBLIC (SCOTCH_graphRemapFixedCompute) #define SCOTCH_graphRemapView SCOTCH_NAME_PUBLIC (SCOTCH_graphRemapView) #define SCOTCH_graphRemapViewRaw SCOTCH_NAME_PUBLIC (SCOTCH_graphRemapViewRaw) #define SCOTCH_graphRepart SCOTCH_NAME_PUBLIC (SCOTCH_graphRepart) #define SCOTCH_graphRepartFixed SCOTCH_NAME_PUBLIC (SCOTCH_graphRepartFixed) #define SCOTCH_graphSave SCOTCH_NAME_PUBLIC (SCOTCH_graphSave) #define SCOTCH_graphSize SCOTCH_NAME_PUBLIC (SCOTCH_graphSize) #define SCOTCH_graphSizeof SCOTCH_NAME_PUBLIC (SCOTCH_graphSizeof) #define SCOTCH_graphStat SCOTCH_NAME_PUBLIC (SCOTCH_graphStat) #define SCOTCH_graphTabLoad SCOTCH_NAME_PUBLIC (SCOTCH_graphTabLoad) #define SCOTCH_graphTabSave SCOTCH_NAME_PUBLIC (SCOTCH_graphTabSave) #define SCOTCH_mapAlloc SCOTCH_NAME_PUBLIC (SCOTCH_mapAlloc) #define SCOTCH_mapSizeof SCOTCH_NAME_PUBLIC (SCOTCH_mapSizeof) #define SCOTCH_memCur SCOTCH_NAME_PUBLIC (SCOTCH_memCur) #define SCOTCH_memMax SCOTCH_NAME_PUBLIC (SCOTCH_memMax) #define SCOTCH_meshAlloc SCOTCH_NAME_PUBLIC (SCOTCH_meshAlloc) #define SCOTCH_meshBuild SCOTCH_NAME_PUBLIC (SCOTCH_meshBuild) #define SCOTCH_meshCheck SCOTCH_NAME_PUBLIC (SCOTCH_meshCheck) #define SCOTCH_meshData SCOTCH_NAME_PUBLIC (SCOTCH_meshData) #define SCOTCH_meshExit SCOTCH_NAME_PUBLIC (SCOTCH_meshExit) #define SCOTCH_meshGeomLoadHabo SCOTCH_NAME_PUBLIC (SCOTCH_meshGeomLoadHabo) #define SCOTCH_meshGeomLoadScot SCOTCH_NAME_PUBLIC (SCOTCH_meshGeomLoadScot) #define SCOTCH_meshGeomSaveScot SCOTCH_NAME_PUBLIC (SCOTCH_meshGeomSaveScot) #define SCOTCH_meshGraph SCOTCH_NAME_PUBLIC (SCOTCH_meshGraph) #define SCOTCH_meshGraphDual SCOTCH_NAME_PUBLIC (SCOTCH_meshGraphDual) #define SCOTCH_meshInit SCOTCH_NAME_PUBLIC (SCOTCH_meshInit) #define SCOTCH_meshLoad SCOTCH_NAME_PUBLIC (SCOTCH_meshLoad) #define SCOTCH_meshOrder SCOTCH_NAME_PUBLIC (SCOTCH_meshOrder) #define SCOTCH_meshOrderCheck SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderCheck) #define SCOTCH_meshOrderCompute SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderCompute) #define SCOTCH_meshOrderComputeList SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderComputeList) #define SCOTCH_meshOrderExit SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderExit) #define SCOTCH_meshOrderInit SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderInit) #define SCOTCH_meshOrderList SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderList) #define SCOTCH_meshOrderSave SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderSave) #define SCOTCH_meshOrderSaveMap SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderSaveMap) #define SCOTCH_meshOrderSaveTree SCOTCH_NAME_PUBLIC (SCOTCH_meshOrderSaveTree) #define SCOTCH_meshSave SCOTCH_NAME_PUBLIC (SCOTCH_meshSave) #define SCOTCH_meshSize SCOTCH_NAME_PUBLIC (SCOTCH_meshSize) #define SCOTCH_meshSizeof SCOTCH_NAME_PUBLIC (SCOTCH_meshSizeof) #define SCOTCH_meshStat SCOTCH_NAME_PUBLIC (SCOTCH_meshStat) #define SCOTCH_numSizeof SCOTCH_NAME_PUBLIC (SCOTCH_numSizeof) #define SCOTCH_orderAlloc SCOTCH_NAME_PUBLIC (SCOTCH_orderAlloc) #define SCOTCH_orderSizeof SCOTCH_NAME_PUBLIC (SCOTCH_orderSizeof) #define SCOTCH_randomLoad SCOTCH_NAME_PUBLIC (SCOTCH_randomLoad) #define SCOTCH_randomProc SCOTCH_NAME_PUBLIC (SCOTCH_randomProc) #define SCOTCH_randomReset SCOTCH_NAME_PUBLIC (SCOTCH_randomReset) #define SCOTCH_randomSave SCOTCH_NAME_PUBLIC (SCOTCH_randomSave) #define SCOTCH_randomSeed SCOTCH_NAME_PUBLIC (SCOTCH_randomSeed) #define SCOTCH_randomVal SCOTCH_NAME_PUBLIC (SCOTCH_randomVal) #define SCOTCH_stratAlloc SCOTCH_NAME_PUBLIC (SCOTCH_stratAlloc) #define SCOTCH_stratDgraphClusterBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratDgraphClusterBuild) #define SCOTCH_stratDgraphMap SCOTCH_NAME_PUBLIC (SCOTCH_stratDgraphMap) #define SCOTCH_stratDgraphMapBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratDgraphMapBuild) #define SCOTCH_stratDgraphOrder SCOTCH_NAME_PUBLIC (SCOTCH_stratDgraphOrder) #define SCOTCH_stratDgraphOrderBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratDgraphOrderBuild) #define SCOTCH_stratExit SCOTCH_NAME_PUBLIC (SCOTCH_stratExit) #define SCOTCH_stratFree SCOTCH_NAME_PUBLIC (SCOTCH_stratFree) #define SCOTCH_stratGraphBipart SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphBipart) #define SCOTCH_stratGraphClusterBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphClusterBuild) #define SCOTCH_stratGraphMap SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphMap) #define SCOTCH_stratGraphMapBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphMapBuild) #define SCOTCH_stratGraphOrder SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphOrder) #define SCOTCH_stratGraphOrderBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphOrderBuild) #define SCOTCH_stratGraphPartOvl SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphPartOvl) #define SCOTCH_stratGraphPartOvlBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratGraphPartOvlBuild) #define SCOTCH_stratInit SCOTCH_NAME_PUBLIC (SCOTCH_stratInit) #define SCOTCH_stratMeshOrder SCOTCH_NAME_PUBLIC (SCOTCH_stratMeshOrder) #define SCOTCH_stratMeshOrderBuild SCOTCH_NAME_PUBLIC (SCOTCH_stratMeshOrderBuild) #define SCOTCH_stratSave SCOTCH_NAME_PUBLIC (SCOTCH_stratSave) #define SCOTCH_stratSizeof SCOTCH_NAME_PUBLIC (SCOTCH_stratSizeof) #define SCOTCH_version SCOTCH_NAME_PUBLIC (SCOTCH_version) #endif /* SCOTCH_RENAME_PUBLIC */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/order.c000066400000000000000000000300141514310134000251720ustar00rootroot00000000000000/* Copyright 2004,2007,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module handles generic orderings. **/ /** **/ /** DATES : # Version 3.2 : from : 19 oct 1996 **/ /** to : 27 aug 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 26 dec 2004 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 25 jul 2007 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 17 jan 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_ORDER #include "module.h" #include "common.h" #include "graph.h" #include "order.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine initializes an ordering ** with respect to a given source graph. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int orderInit ( Order * restrict const ordeptr, const Gnum baseval, const Gnum vnodnbr, Gnum * restrict const peritab) { ordeptr->flagval = ORDERNONE; ordeptr->baseval = baseval; ordeptr->vnodnbr = vnodnbr; ordeptr->treenbr = /* Initialize a simple blocking */ ordeptr->cblknbr = 1; ordeptr->rootdat.typeval = ORDERCBLKLEAF; ordeptr->rootdat.vnodnbr = vnodnbr; ordeptr->rootdat.cblknbr = 0; ordeptr->rootdat.cblktab = NULL; ordeptr->peritab = peritab; if (ordeptr->peritab == NULL) { /* Inverse permutation must be allocated */ ordeptr->flagval |= ORDERFREEPERI; /* Flag it so it will be freed */ if ((ordeptr->peritab = (Gnum *) memAlloc (vnodnbr * sizeof (Gnum))) == NULL) { errorPrint ("orderInit: out of memory"); return (1); } } #ifdef SCOTCH_PTHREAD pthread_mutex_init (&ordeptr->mutedat, NULL); /* Initialize local mutex */ #endif /* SCOTCH_PTHREAD */ #ifdef SCOTCH_DEBUG_ORDER2 memSet (ordeptr->peritab, ~0, vnodnbr * sizeof (Gnum)); #endif /* SCOTCH_DEBUG_ORDER2 */ return (0); } /* This routine frees the contents ** of the given ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ void orderExit ( Order * restrict const ordeptr) { if (ordeptr->rootdat.cblktab != NULL) /* Free column block tree */ orderExit2 (ordeptr->rootdat.cblktab, ordeptr->rootdat.cblknbr); if ((ordeptr->peritab != NULL) && ((ordeptr->flagval & ORDERFREEPERI) != 0)) /* If peritab is group leader */ memFree (ordeptr->peritab); /* Free group leader */ #ifdef SCOTCH_PTHREAD pthread_mutex_destroy (&ordeptr->mutedat); /* Destroy local mutex */ #endif /* SCOTCH_PTHREAD */ #ifdef SCOTCH_DEBUG_ORDER2 memSet (ordeptr, ~0, sizeof (Order)); #endif /* SCOTCH_DEBUG_ORDER2 */ } static void orderExit2 ( OrderCblk * restrict const cblktab, const Gnum cblknbr) { Gnum cblknum; for (cblknum = 0; cblknum < cblknbr; cblknum ++) { if (cblktab[cblknum].cblktab != NULL) orderExit2 (cblktab[cblknum].cblktab, cblktab[cblknum].cblknbr); } memFree (cblktab); } /* This routine computes the inverse permutation ** of the given permutation, according to the ** direct and inverse base values. ** It returns: ** - VOID : in all cases. */ void orderPeri ( const Gnum * restrict const permtab, /* Permutation to invert */ const Gnum permbas, /* Permutation base value */ const Gnum permnbr, /* Number of permutation indices */ Gnum * restrict const peritab, /* Array of inverse permutation */ const Gnum peribas) /* Base value of inverse permutation */ { Gnum permnum; for (permnum = 0; permnum < permnbr; permnum ++) peritab[permtab[permnum] - permbas] = permnum + peribas; } /* This routine computes the column block ** range array of the given ordering. ** It returns: ** - VOID : in all cases. */ void orderRang ( const Order * restrict const ordeptr, /* Ordering */ Gnum * restrict const rangtab) /* Column block range array [+1] */ { Gnum * rangptr; Gnum ordenum; rangptr = rangtab; /* Set beginning of range array */ ordenum = ordeptr->baseval; /* Set initial number */ orderRang2 (&rangptr, &ordenum, &ordeptr->rootdat); *rangptr = ordenum; /* Set end of range array */ } static void orderRang2 ( Gnum ** restrict const rangppt, Gnum * restrict const ordeppt, const OrderCblk * restrict const cblkptr) { Gnum cblknum; #ifdef SCOTCH_DEBUG_ORDER2 Gnum * restrict rangtmp; if (cblkptr->vnodnbr < 1) errorPrint ("orderRang2: internal error (1)"); #endif /* SCOTCH_DEBUG_ORDER2 */ if (cblkptr->cblktab == NULL) { /* If leaf of column block tree */ *(*rangppt) ++ = *ordeppt; /* Set beginning of column block */ *ordeppt += cblkptr->vnodnbr; /* Advance by column block size */ } else { #ifdef SCOTCH_DEBUG_ORDER2 rangtmp = *rangppt; #endif /* SCOTCH_DEBUG_ORDER2 */ for (cblknum = 0; cblknum < cblkptr->cblknbr; cblknum ++) orderRang2 (rangppt, ordeppt, &cblkptr->cblktab[cblknum]); #ifdef SCOTCH_DEBUG_ORDER2 if ((*ordeppt - *rangtmp) != cblkptr->vnodnbr) errorPrint ("orderRang2: internal error (2)"); #endif /* SCOTCH_DEBUG_ORDER2 */ } } /* This routine computes the separator tree ** array of the given ordering. ** It returns: ** - VOID : in all cases. */ void orderTree ( const Order * restrict const ordeptr, /* Ordering */ Gnum * restrict const treetab) /* Column block separator tree array */ { Gnum cblanum; cblanum = ordeptr->cblknbr + ordeptr->baseval - 1; /* Set number of last column block */ orderTree2 (treetab - ordeptr->baseval, &cblanum, &ordeptr->rootdat, -1); #ifdef SCOTCH_DEBUG_ORDER2 if (cblanum != ordeptr->baseval - 1) errorPrint ("orderTree: internal error"); #endif /* SCOTCH_DEBUG_ORDER2 */ } static void orderTree2 ( Gnum * restrict const treetax, /* Based access to tree table */ Gnum * restrict const cblaptr, /* Pointer to current number of last column block, in descending order */ const OrderCblk * restrict const cblkptr, /* Current column block tree node */ Gnum cbfanum) /* Current number of ancestor separator column block */ { #ifdef SCOTCH_DEBUG_ORDER2 if (cblkptr->vnodnbr < 1) errorPrint ("orderTree2: internal error (1)"); #endif /* SCOTCH_DEBUG_ORDER2 */ if (cblkptr->cblktab == NULL) { /* If leaf of column block tree */ #ifdef SCOTCH_DEBUG_ORDER2 if (cblkptr->typeval != ORDERCBLKLEAF) errorPrint ("orderTree2: invalid elimination tree (1)"); #endif /* SCOTCH_DEBUG_ORDER2 */ treetax[(*cblaptr) --] = cbfanum; /* Set its ancestor */ } else { /* Node has sub-nodes */ Gnum cblknum; /* Index of current sub-block */ Gnum cblanum; /* Number assigned to rightmost block */ cblknum = cblkptr->cblknbr - 1; /* Assume all column blocks will be scanned */ switch (cblkptr->typeval) { case ORDERCBLKNEDI : /* Node is a nested dissection node */ #ifdef SCOTCH_DEBUG_ORDER2 if ((cblknum < 1) || /* Nested dissection nodes have 2 or 3 sub-blocks */ (cblknum > 2)) errorPrint ("orderTree2: invalid elimination tree (2)"); #endif /* SCOTCH_DEBUG_ORDER2 */ if (cblknum == 2) { /* If it has a non-empty separator (cblknbr == 3) */ cblanum = *cblaptr; /* Save number of last column block of separator */ orderTree2 (treetax, cblaptr, &cblkptr->cblktab[cblknum], cbfanum); /* Scan separator apart */ cbfanum = cblanum; /* Separator becomes most recent ancestor of parts */ cblknum = 1; /* Only scan the two parts, not the separator */ } /* FALL THROUGH */ case ORDERCBLKDICO : /* Node is a set of disconnected components (or a separatorless nested dissection node) */ for ( ; cblknum >= 0; cblknum --) { orderTree2 (treetax, cblaptr, &cblkptr->cblktab[cblknum], cbfanum); /* Sub-blocks keep current father as father */ #ifdef SCOTCH_DEBUG_ORDER2 if (*cblaptr < -1) errorPrint ("orderTree2: internal error (2)"); #endif /* SCOTCH_DEBUG_ORDER2 */ } break; case ORDERCBLKSEQU : /* Node is a set of dependent sub-blocks */ for ( ; cblknum >= 0; cblknum --) { cblanum = *cblaptr; /* Save number of current last column block */ orderTree2 (treetax, cblaptr, &cblkptr->cblktab[cblknum], cbfanum); /* Scan current block */ cbfanum = cblanum; /* Current last block becomes ancestor of next block */ #ifdef SCOTCH_DEBUG_ORDER2 if (*cblaptr < -1) errorPrint ("orderTree2: internal error (3)"); #endif /* SCOTCH_DEBUG_ORDER2 */ } break; #ifdef SCOTCH_DEBUG_ORDER2 default: errorPrint ("orderTree2: invalid elimination tree (3)"); break; #endif /* SCOTCH_DEBUG_ORDER2 */ } } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/order.h000066400000000000000000000204141514310134000252020ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module contains the data **/ /** declarations for the generic ordering **/ /** structure. **/ /** **/ /** DATES : # Version 3.2 : from : 19 oct 1996 **/ /** to : 21 aug 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 28 dec 2004 **/ /** # Version 5.0 : from : 25 jul 2007 **/ /** to : 25 jul 2007 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 08 may 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 26 apr 2021 **/ /** to : 17 jan 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_ORDER_H /*+ Ordering option flags. +*/ #define ORDERNONE 0x0000 /* No options set */ #define ORDERFREEPERI 0x0001 /* Free inverse permutation array */ /*+ Column block tree cell flags. They must be the same as the distributed column block tree flags. These flags must be separate bits, so that values can be or-ed (notably with ORDERCBLKLEAF in hdgraphOrderNd(). ORDERCBLKNEDI corresponds to a nested dissection node. If the node has a separator (3 sub-blocks), the father of the leftmost two blocks is the last one; if is has no separator (2 sub-blocks), the father of the two sub-blocks is the father of the node (like ORDERCBLKDICO). ORDERCBLKDICO corresponds to a set of disconnected components; the father of the two sub-blocks is the father of the node. ORDERCBLKSEQU corresponds to a sequential node: each sub-block is the father of its left neighbor. ORDERCBLKLEAF corresponds to a leaf node in the elimination tree, i.e., the node should not have sub-nodes (save when or-ed with other flags). +*/ #define ORDERCBLKNONE 0x0000 /*+ Not yet assigned +*/ #define ORDERCBLKNEDI 0x0001 /*+ Nested dissection separator node +*/ #define ORDERCBLKDICO 0x0002 /*+ Disconnected components node +*/ #define ORDERCBLKSEQU 0x0004 /*+ Sequentially dependent node +*/ #define ORDERCBLKLEAF 0x0008 /*+ Leaf node +*/ /* ** The type and structure definitions. */ /*+ Column-block tree node. Each node defines a column block, which is either a separator or a leaf built by nested dissection, or a super-variable built by minimum-degree algorithms. Column blocks are given in ascending order within sub-arrays, for proper infix traversal. +*/ typedef struct OrderCblk_ { int typeval; /*+ Type of tree node +*/ Gnum vnodnbr; /*+ Number of node vertices in subtree +*/ Gnum cblknbr; /*+ Number of descendent column blocks +*/ struct OrderCblk_ * cblktab; /*+ Sub-array of column-blocks +*/ } OrderCblk; /*+ Ordering structure. A block ordering is defined by its inverse permutation peritab and by the tree of permuted ordering blocks, which, once flattened, defines the blocks of the ordering. For the sake of consistency between orderings that have been produced either from graphs or meshes, all ordering values are based from baseval. +*/ typedef struct Order_ { int flagval; /*+ Flag value +*/ Gnum baseval; /*+ Base value for structures +*/ Gnum vnodnbr; /*+ Number of node vertices +*/ Gnum treenbr; /*+ Number of column block tree nodes +*/ Gnum cblknbr; /*+ Number of column blocks +*/ OrderCblk rootdat; /*+ Root of column block tree +*/ Gnum * peritab; /*+ Inverse permutation array [vnodnbr] +*/ #ifdef SCOTCH_PTHREAD pthread_mutex_t mutedat; /*+ Local mutex for counter and link updates +*/ #endif /* SCOTCH_PTHREAD */ } Order; /* ** The function prototypes. */ #ifdef SCOTCH_ORDER static void orderExit2 (OrderCblk * const, const Gnum); static void orderRang2 (Gnum ** const, Gnum * const, const OrderCblk * const); static void orderTree2 (Gnum * restrict const, Gnum * restrict const, const OrderCblk * restrict const, Gnum); #endif /* SCOTCH_ORDER */ int orderInit (Order * const, const Gnum, const Gnum, Gnum * const); void orderExit (Order * const); int orderLoad (Order * restrict const, const Gnum * restrict const, FILE * restrict const); int orderSave (const Order * restrict const, const Gnum * restrict const, FILE * restrict const); int orderSaveMap (const Order * restrict const, const Gnum * restrict const, FILE * restrict const); int orderSaveTree (const Order * restrict const, const Gnum * restrict const, FILE * restrict const); void orderPeri (const Gnum * const, const Gnum, const Gnum, Gnum * const, const Gnum); void orderRang (const Order * const, Gnum * const); void orderTree (const Order * restrict const, Gnum * restrict const); int orderCheck (const Order * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/order_check.c000066400000000000000000000157061514310134000263420ustar00rootroot00000000000000/* Copyright 2004,2007,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module checks the consistency of **/ /** orderings. **/ /** **/ /** DATES : # Version 4.0 : from : 19 dec 2001 **/ /** to : 20 nov 2003 **/ /** # Version 5.0 : from : 26 jul 2007 **/ /** to : 26 jul 2007 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 19 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine checks the consistency ** of the given ordering. ** It returns: ** - 0 : if ordering data are consistent. ** - !0 : on error. */ static int orderCheck2 ( const OrderCblk * restrict const cblkptr, Gnum * const cblknbr, Gnum * const treenbr) { if (cblkptr->vnodnbr < 1) { errorPrint ("orderCheck2: invalid number of vertex nodes (1)"); return (1); } if (cblkptr->cblktab != NULL) { /* If node has sons */ Gnum vnodnbr; Gnum cblknum; if ((cblkptr->typeval != ORDERCBLKNEDI) && (cblkptr->typeval != ORDERCBLKDICO) && (cblkptr->typeval != ORDERCBLKSEQU)) { errorPrint ("orderCheck2: invalid node type (1)"); return (1); } if ((cblkptr->cblknbr <= 0) || ((cblkptr->typeval == ORDERCBLKNEDI) && ((cblkptr->cblknbr < 2) || (cblkptr->cblknbr > 3))) || ((cblkptr->typeval == ORDERCBLKDICO) && ((cblkptr->cblknbr != 2)))) { errorPrint ("orderCheck2: invalid number of column blocks (1)"); return (1); } *cblknbr += cblkptr->cblknbr - 1; *treenbr += cblkptr->cblknbr; for (cblknum = vnodnbr = 0; cblknum < cblkptr->cblknbr; cblknum ++) { vnodnbr += cblkptr->cblktab[cblknum].vnodnbr; if (orderCheck2 (&cblkptr->cblktab[cblknum], cblknbr, treenbr) != 0) return (1); } if (vnodnbr != cblkptr->vnodnbr) { errorPrint ("orderCheck2: invalid number of vertex nodes (2)"); return (1); } } else { if (cblkptr->typeval != ORDERCBLKLEAF) { errorPrint ("orderCheck2: invalid node type (2)"); return (1); } if (cblkptr->cblknbr != 0) { errorPrint ("orderCheck2: invalid number of column blocks (2)"); return (1); } } return (0); } int orderCheck ( const Order * restrict const ordeptr) { Gnum * permtab; Gnum * restrict permtax; Gnum treenbr; Gnum cblknbr; Gnum vertnum; const Gnum baseval = ordeptr->baseval; const Gnum vertnnd = ordeptr->vnodnbr + ordeptr->baseval; const Gnum * restrict const peritab = ordeptr->peritab; if (ordeptr->vnodnbr != ordeptr->rootdat.vnodnbr) { errorPrint ("orderCheck: invalid vertex count"); return (1); } if ((ordeptr->cblknbr < 0) || (ordeptr->cblknbr > ordeptr->treenbr)) { errorPrint ("orderCheck: invalid column block count (1)"); return (1); } if ((permtab = (Gnum *) memAlloc (ordeptr->vnodnbr * sizeof (Gnum))) == NULL) { errorPrint ("orderCheck: out of memory"); return (1); } memSet (permtab, ~0, ordeptr->rootdat.vnodnbr * sizeof (Gnum)); permtax = permtab - ordeptr->baseval; for (vertnum = 0; vertnum < ordeptr->vnodnbr; vertnum ++) { if ((peritab[vertnum] < baseval) || /* If index not in range */ (peritab[vertnum] >= vertnnd)) { errorPrint ("orderCheck: invalid index"); memFree (permtab); return (1); } if (permtax[peritab[vertnum]] != ~0) { /* If index already used */ errorPrint ("orderCheck: duplicate index"); memFree (permtab); return (1); } permtax[peritab[vertnum]] = vertnum; /* Set who updated index */ } for (vertnum = 0; vertnum < ordeptr->vnodnbr; vertnum ++) { if (permtab[vertnum] == ~0) { /* If index not used */ errorPrint ("orderCheck: missing index"); memFree (permtab); return (1); } } memFree (permtab); treenbr = /* Assume there is just a root node */ cblknbr = 1; if (orderCheck2 (&ordeptr->rootdat, &cblknbr, &treenbr) != 0) return (1); if (cblknbr != ordeptr->cblknbr) { errorPrint ("orderCheck: invalid number of column blocks"); return (1); } if (treenbr != ordeptr->treenbr) { errorPrint ("orderCheck: invalid number of tree nodes"); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/order_io.c000066400000000000000000000236441514310134000256740ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : order_io.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module handles generic orderings. **/ /** **/ /** DATES : # Version 3.2 : from : 19 oct 1996 **/ /** to : 27 aug 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 28 jun 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 27 feb 2008 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 29 sep 2019 **/ /** to : 29 sep 2019 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 11 jul 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "order.h" /************************************/ /* */ /* These routines handle orderings. */ /* */ /************************************/ /* This routine loads an ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int orderLoad ( Order * restrict const ordeptr, const Gnum * restrict const vlbltax, FILE * restrict const stream) { Gnum * restrict permtab; Gnum vertnum; if (vlbltax != NULL) { errorPrint ("orderLoad: vertex labels not yet supported"); return (1); } if ((permtab = memAlloc (ordeptr->vnodnbr * sizeof (Gnum))) == NULL) { errorPrint ("orderLoad: out of memory"); return (1); } if (intLoad (stream, &ordeptr->vnodnbr) != 1) { errorPrint ("orderLoad: bad input (1)"); memFree (permtab); return (1); } if (vlbltax == NULL) { /* If ordering does not have label array */ for (vertnum = 0; vertnum < ordeptr->vnodnbr; vertnum ++) { Gnum vertval; if ((intLoad (stream, &vertval) != 1) || /* Read item data */ (intLoad (stream, &permtab[vertnum]) != 1)) { errorPrint ("orderLoad: bad input (2)"); memFree (permtab); return (1); } if (vertval != (vertnum + ordeptr->baseval)) { /* Read item data */ errorPrint ("orderLoad: bad input (3)"); memFree (permtab); return (1); } } } orderPeri (permtab, ordeptr->baseval, ordeptr->vnodnbr, ordeptr->peritab, ordeptr->baseval); /* Compute inverse permutation */ memFree (permtab); return (0); } /* This routine saves an ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int orderSave ( const Order * restrict const ordeptr, const Gnum * restrict const vlbltax, FILE * restrict const stream) { Gnum * restrict permtab; Gnum vertnum; if ((permtab = memAlloc (ordeptr->vnodnbr * sizeof (Gnum))) == NULL) { errorPrint ("orderSave: out of memory"); return (1); } if (fprintf (stream, GNUMSTRING "\n", (Gnum) ordeptr->vnodnbr) == EOF) { errorPrint ("orderSave: bad output (1)"); memFree (permtab); return (1); } orderPeri (ordeptr->peritab, ordeptr->baseval, ordeptr->vnodnbr, permtab, ordeptr->baseval); /* Compute direct permutation */ if (vlbltax != NULL) { /* If ordering has label array */ for (vertnum = 0; vertnum < ordeptr->vnodnbr; vertnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) vlbltax[vertnum + ordeptr->baseval], (Gnum) vlbltax[permtab[vertnum]]) == EOF) { errorPrint ("orderSave: bad output (2)"); memFree (permtab); return (1); } } } else { for (vertnum = 0; vertnum < ordeptr->vnodnbr; vertnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) (vertnum + ordeptr->baseval), (Gnum) permtab[vertnum]) == EOF) { errorPrint ("orderSave: bad output (3)"); memFree (permtab); return (1); } } } memFree (permtab); return (0); } /* This routine saves the column block ** mapping data of the given ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int orderSaveMap ( const Order * restrict const ordeptr, const Gnum * restrict const vlbltax, FILE * restrict const stream) { const Gnum * restrict peritax; Gnum * restrict rangtab; Gnum * restrict cblktax; Gnum vnodnnd; Gnum vnodnum; Gnum cblknum; int o; if (fprintf (stream, GNUMSTRING "\n", (Gnum) ordeptr->vnodnbr) == EOF) { errorPrint ("orderSaveMap: bad output (1)"); return (1); } if (memAllocGroup ((void **) (void *) &rangtab, (size_t) ((ordeptr->vnodnbr + 1) * sizeof (Gnum)), &cblktax, (size_t) ( ordeptr->vnodnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("orderSaveMap: out of memory"); return (1); } cblktax -= ordeptr->baseval; orderRang (ordeptr, rangtab); peritax = ordeptr->peritab - ordeptr->baseval; for (vnodnum = ordeptr->baseval, vnodnnd = vnodnum + ordeptr->vnodnbr, cblknum = 0; vnodnum < vnodnnd; vnodnum ++) { if (vnodnum >= rangtab[cblknum + 1]) cblknum ++; cblktax[peritax[vnodnum]] = cblknum; } for (vnodnum = ordeptr->baseval, o = 0; vnodnum < vnodnnd; vnodnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) ((vlbltax != NULL) ? vlbltax[vnodnum] : vnodnum), (Gnum) cblktax[vnodnum]) == EOF) { errorPrint ("orderSaveMap: bad output (2)"); o = 1; break; } } memFree (rangtab); /* Free memory group leader */ return (o); } /* This routine saves the separator ** tree data of the given ordering. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int orderSaveTree ( const Order * restrict const ordeptr, const Gnum * restrict const vlbltax, FILE * restrict const stream) { const Gnum * restrict peritax; Gnum * restrict rangtab; Gnum * restrict treetab; Gnum * restrict cblktax; Gnum vnodnnd; Gnum vnodnum; Gnum cblknum; int o; if (fprintf (stream, GNUMSTRING "\n", (Gnum) ordeptr->vnodnbr) == EOF) { errorPrint ("orderSaveTree: bad output (1)"); return (1); } if (memAllocGroup ((void **) (void *) &rangtab, (size_t) ((ordeptr->vnodnbr + 1) * sizeof (Gnum)), &treetab, (size_t) ( ordeptr->vnodnbr * sizeof (Gnum)), &cblktax, (size_t) ( ordeptr->vnodnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("orderSaveTree: out of memory"); return (1); } cblktax -= ordeptr->baseval; orderRang (ordeptr, rangtab); orderTree (ordeptr, treetab); peritax = ordeptr->peritab - ordeptr->baseval; for (vnodnum = ordeptr->baseval, vnodnnd = vnodnum + ordeptr->vnodnbr, cblknum = 0; vnodnum < vnodnnd; vnodnum ++) { if (vnodnum >= rangtab[cblknum + 1]) cblknum ++; cblktax[peritax[vnodnum]] = treetab[cblknum]; } for (vnodnum = ordeptr->baseval, o = 0; vnodnum < vnodnnd; vnodnum ++) { if (fprintf (stream, GNUMSTRING "\t" GNUMSTRING "\n", (Gnum) ((vlbltax != NULL) ? vlbltax[vnodnum] : vnodnum), (Gnum) cblktax[vnodnum]) == EOF) { errorPrint ("orderSaveMap: bad output (2)"); o = 1; break; } } memFree (rangtab); /* Free memory group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/parser.c000066400000000000000000000636641514310134000253740ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2012,2014,2016,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** This module is the strategy lexical and **/ /** syntactic analyzer. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 02 may 1996 **/ /** # Version 3.2 : from : 07 oct 1996 **/ /** to : 19 oct 1996 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 10 sep 2001 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 02 feb 2004 **/ /** # Version 5.0 : from : 20 feb 2008 **/ /** to : 20 feb 2008 **/ /** # Version 5.1 : from : 22 oct 2008 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 01 jun 2012 **/ /** to : 30 dec 2016 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PARSER #include "module.h" #include "common.h" #undef INTEGER /* In case someone defined them */ #undef DOUBLE #include "parser.h" #include "parser_yy.h" #include "parser_ly.h" /* ** The static and global variables. */ static StratTab stratdummytab = { NULL, NULL, NULL }; /* Dummy strategy table for the dummy empty object */ Strat stratdummy = { &stratdummytab, STRATNODEEMPTY }; /* Dummy empty object for offset computations */ /**************************/ /* */ /* The strategy routines. */ /* */ /**************************/ /* This routine parses the given strategy ** string and builds the corresponding ** strategy tree. ** It returns: ** - !NULL : pointer to the strategy. ** - NULL : on error. */ Strat * stratInit ( const StratTab * const strattab, /*+ Pointer to strategy parsing table +*/ const char * const string) /*+ Strategy string to parse +*/ { Strat * o; #ifdef SCOTCH_DEBUG_PARSER1 if ((strattab == NULL) || (string == NULL)) { errorPrint ("stratInit: invalid parameter"); return (NULL); } #endif /* SCOTCH_DEBUG_PARSER1 */ o = stratParserParse (strattab, string); /* Parse strategy string */ return (o); } /* This routine frees a strategy structure. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int stratExit ( Strat * const straptr) { StratParamTab * paratab; /* Table of method parameters */ byte * poffptr; /* Offset of parameter within method structure */ unsigned int i; int o; if (straptr == NULL) /* If node does not exist, abort */ return (0); o = 0; /* Assume everything will be all right */ switch (straptr->typeval) { /* Recursively free sub-strategies */ case STRATNODECONCAT : o = stratExit (straptr->data.concdat.stratab[0]); o |= stratExit (straptr->data.concdat.stratab[1]); break; case STRATNODECOND : o = stratTestExit (straptr->data.conddat.testptr); o |= stratExit (straptr->data.conddat.stratab[0]); if (straptr->data.conddat.stratab[1] != NULL) o |= stratExit (straptr->data.conddat.stratab[1]); break; case STRATNODESELECT : o = stratExit (straptr->data.seledat.stratab[0]); o |= stratExit (straptr->data.seledat.stratab[1]); break; case STRATNODEEMPTY : /* Empty strategy node */ if (straptr == &stratdummy) /* If node is empty dummy node */ return (0); /* Return without freeing it */ break; case STRATNODEMETHOD : /* Method strategy node */ paratab = straptr->tablptr->paratab; /* Free the method parameters */ for (i = 0; paratab[i].nameptr != NULL; i ++) { if ((paratab[i].methnum == straptr->data.methdat.methnum) && /* For all parameters of that method */ (paratab[i].typeval == STRATPARAMSTRAT)) { /* Which are non-deprecated strategy parameters */ poffptr = (byte *) &straptr->data.methdat.datadat + /* Compute parameter offset within method */ (paratab[i].doffptr - paratab[i].dbasptr); o |= stratExit (*((Strat **) poffptr)); /* Perform recursion */ } } break; default : errorPrint ("stratExit: invalid strategy node"); o = 1; break; } memFree (straptr); /* Free strategy structure itself */ return (o); /* Return output code */ } /* This routine displays the given ** strategy structure. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int stratSave ( const Strat * const straptr, FILE * const stream) { unsigned int paraflag; /* Flag set if method has parameters */ StratParamTab * paratab; /* Pointer to method parameter table */ byte * paraofft; /* Offset of parameter within method structure */ unsigned int i; int o; o = 0; switch (straptr->typeval) { /* Recursively view sub-strategies */ case STRATNODECOND : if ((fprintf (stream, "(/(") == EOF) || (stratTestSave (straptr->data.conddat.testptr, stream) != 0) || (fprintf (stream, ")?(") == EOF) || (stratSave (straptr->data.conddat.stratab[0], stream) != 0)) o = 1; if ((o == 0) && (straptr->data.conddat.stratab[1] != NULL)) { if ((fprintf (stream, "):(") == EOF) || (stratSave (straptr->data.conddat.stratab[1], stream) != 0)) o = 1; } if (o == 0) o = (fprintf (stream, ");)") == EOF); break; case STRATNODECONCAT : if ((stratSave (straptr->data.concdat.stratab[0], stream) != 0) || (stratSave (straptr->data.concdat.stratab[1], stream) != 0)) o = 1; break; case STRATNODESELECT : if ((fprintf (stream, "(") == EOF) || (stratSave (straptr->data.seledat.stratab[0], stream) != 0) || (fprintf (stream, "|") == EOF) || (stratSave (straptr->data.seledat.stratab[1], stream) != 0) || (fprintf (stream, ")") == EOF)) o = 1; case STRATNODEEMPTY : break; case STRATNODEMETHOD : if (fprintf (stream, "%s", straptr->tablptr->methtab[straptr->data.methdat.methnum].nameptr) == EOF) { /* Print method name */ o = 1; break; } paraflag = 0; /* No method parameters seen yet */ paratab = straptr->tablptr->paratab; for (i = 0; paratab[i].nameptr != NULL; i ++) { if ((paratab[i].methnum == straptr->data.methdat.methnum) && /* For all parameters of that method */ ((paratab[i].typeval & STRATPARAMDEPRECATED) == 0)) { /* Which are not deprecated */ paraofft = (byte*) &straptr->data.methdat.datadat + /* Compute parameter offset within method */ (paratab[i].doffptr - paratab[i].dbasptr); if (fprintf (stream, "%c%s=", /* Open or continue parameter list */ ((paraflag ++ == 0) ? '{' : ','), paratab[i].nameptr) == EOF) { o = 1; break; } switch (paratab[i].typeval) { /* Print parameter value */ case STRATPARAMCASE : /* Case value */ o = (fprintf (stream, "%c", /* Print corresponding character */ ((char *) paratab[i].dselptr)[*((unsigned int *) paraofft)]) == EOF); break; case STRATPARAMINT : /* Integer value */ o = (fprintf (stream, INTSTRING, *((INT *) paraofft)) == EOF); break; case STRATPARAMDOUBLE : /* Double value */ o = (fprintf (stream, "%g", *((double *) paraofft)) == EOF); break; case STRATPARAMSTRAT : /* Strategy */ o = stratSave (*((Strat **) paraofft), stream); /* Perform recursion */ break; case STRATPARAMSTRING : /* String value */ o = (fprintf (stream, "%s", (char *) paraofft) == EOF); break; default : errorPrint ("stratSave: invalid parameter type"); return (1); } } if (o != 0) /* If an error has occured */ break; /* Abort the loop */ } if ((o == 0) && (paraflag != 0)) /* If there is a parameter list */ o |= (fprintf (stream, "}") == EOF); /* Close it */ break; default : errorPrint ("stratSave: invalid strategy node"); return (1); } if (o != 0) { errorPrint ("stratSave: bad output"); } return (o); } /*****************************************/ /* */ /* These routines handle strategy tests. */ /* */ /*****************************************/ /* This routine evaluates the ** given condition. ** It returns: ** - 0 : on success; eval updated. ** - !0 : on error. */ int stratTestEval ( const StratTest * restrict const testptr, StratTest * restrict const evalptr, /*+ Place where to return final value +*/ const void * restrict const dataptr) /*+ Pointer to data structure where to read variables from +*/ { StratTest testtab[2]; /* Temporary evaluation variables */ StratTestType sign; /* Sign of comparison */ int o; #ifdef SCOTCH_DEBUG_PARSER1 if ((testptr == NULL) || (evalptr == NULL) || (dataptr == NULL)) { errorPrint ("stratTestEval: invalid parameter"); return (1); } #endif /* SCOTCH_DEBUG_PARSER1 */ o = 0; /* Assume no error */ switch (testptr->testval) { case STRATTESTNOT : /* Not operator */ o = stratTestEval (testptr->data.testtab[0], evalptr, dataptr); #ifdef SCOTCH_DEBUG_PARSER2 if ((o == 0) && (evalptr->nodeval != STRATPARAMLOG)) { errorPrint ("stratTestEval: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_PARSER2 */ evalptr->data.val.vallog = 1 - evalptr->data.val.vallog; break; case STRATTESTAND : /* And operator */ o = stratTestEval (testptr->data.testtab[0], evalptr, dataptr); #ifdef SCOTCH_DEBUG_PARSER2 if ((o == 0) && (evalptr->nodeval != STRATPARAMLOG)) { errorPrint ("stratTestEval: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_PARSER2 */ if ((o == 0) && (evalptr->data.val.vallog == 1)) { o = stratTestEval (testptr->data.testtab[1], evalptr, dataptr); #ifdef SCOTCH_DEBUG_PARSER2 if (evalptr->nodeval != STRATPARAMLOG) { errorPrint ("stratTestEval: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_PARSER2 */ } break; case STRATTESTOR : /* Or operator */ o = stratTestEval (testptr->data.testtab[0], evalptr, dataptr); #ifdef SCOTCH_DEBUG_PARSER2 if ((o == 0) && (evalptr->nodeval != STRATPARAMLOG)) { errorPrint ("stratTestEval: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_PARSER2 */ if ((o == 0) && (evalptr->data.val.vallog == 0)) { o = stratTestEval (testptr->data.testtab[1], evalptr, dataptr); #ifdef SCOTCH_DEBUG_PARSER2 if (evalptr->nodeval != STRATPARAMLOG) { errorPrint ("stratTestEval: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_PARSER2 */ } break; case STRATTESTLT : /* Less-than operator */ case STRATTESTEQ : /* Equal-to operator */ case STRATTESTGT : /* Greater-than operator */ o = stratTestEval (testptr->data.testtab[0], &testtab[0], dataptr); o |= stratTestEval (testptr->data.testtab[1], &testtab[1], dataptr); o |= stratTestEvalCast (&testtab[0], &testtab[1]); if (o != 0) break; sign = STRATTESTNBR; /* In case of error */ switch (testtab[0].nodeval) { case STRATPARAMDOUBLE : sign = (testtab[0].data.val.valdbl < testtab[1].data.val.valdbl) ? STRATTESTLT : ((testtab[0].data.val.valdbl > testtab[1].data.val.valdbl) ? STRATTESTGT : STRATTESTEQ); break; case STRATPARAMINT : sign = (testtab[0].data.val.valint < testtab[1].data.val.valint) ? STRATTESTLT : ((testtab[0].data.val.valint > testtab[1].data.val.valint) ? STRATTESTGT : STRATTESTEQ); break; default : errorPrint ("stratTestEval: internal error (6)"); o = 1; break; } evalptr->nodeval = STRATPARAMLOG; /* Build test result */ evalptr->data.val.vallog = (sign == testptr->testval); break; case STRATTESTADD : /* Addition operator */ o = stratTestEval (testptr->data.testtab[0], &testtab[0], dataptr); o |= stratTestEval (testptr->data.testtab[1], &testtab[1], dataptr); o |= stratTestEvalCast (&testtab[0], &testtab[1]); if (o != 0) break; if (testtab[0].nodeval == STRATPARAMDOUBLE) evalptr->data.val.valdbl = testtab[0].data.val.valdbl + testtab[1].data.val.valdbl; else evalptr->data.val.valint = testtab[0].data.val.valint + testtab[1].data.val.valint; evalptr->nodeval = testtab[0].nodeval; break; case STRATTESTSUB : /* Subtraction operator */ o = stratTestEval (testptr->data.testtab[0], &testtab[0], dataptr); o |= stratTestEval (testptr->data.testtab[1], &testtab[1], dataptr); o |= stratTestEvalCast (&testtab[0], &testtab[1]); if (o != 0) break; if (testtab[0].nodeval == STRATPARAMDOUBLE) evalptr->data.val.valdbl = testtab[0].data.val.valdbl - testtab[1].data.val.valdbl; else evalptr->data.val.valint = testtab[0].data.val.valint - testtab[1].data.val.valint; evalptr->nodeval = testtab[0].nodeval; break; case STRATTESTMUL : /* Multiplication operator */ o = stratTestEval (testptr->data.testtab[0], &testtab[0], dataptr); o |= stratTestEval (testptr->data.testtab[1], &testtab[1], dataptr); o |= stratTestEvalCast (&testtab[0], &testtab[1]); if (o != 0) break; if (testtab[0].nodeval == STRATPARAMDOUBLE) evalptr->data.val.valdbl = testtab[0].data.val.valdbl * testtab[1].data.val.valdbl; else evalptr->data.val.valint = testtab[0].data.val.valint * testtab[1].data.val.valint; evalptr->nodeval = testtab[0].nodeval; break; case STRATTESTMOD : /* Modulus operator */ o = stratTestEval (testptr->data.testtab[0], &testtab[0], dataptr); o |= stratTestEval (testptr->data.testtab[1], &testtab[1], dataptr); o |= stratTestEvalCast (&testtab[0], &testtab[1]); if (o != 0) break; if (testtab[0].nodeval == STRATPARAMDOUBLE) evalptr->data.val.valdbl = fmod (testtab[0].data.val.valdbl, testtab[1].data.val.valdbl); else evalptr->data.val.valint = testtab[0].data.val.valint % testtab[1].data.val.valint; evalptr->nodeval = testtab[0].nodeval; break; case STRATTESTVAL : /* Constant value */ *evalptr = *testptr; /* Copy value */ break; case STRATTESTVAR : /* Variable */ switch (testptr->nodeval) { case STRATPARAMDOUBLE : evalptr->data.val.valdbl = *((double *) ((byte *) dataptr + testptr->data.var.dataoft)); break; case STRATPARAMINT : evalptr->data.val.valint = *((INT *) ((byte *) dataptr + testptr->data.var.dataoft)); break; default : errorPrint ("stratTestEval: internal error (7)"); o = 1; break; } evalptr->nodeval = testptr->nodeval; break; default : errorPrint ("stratTestEval: invalid condition type (%u)", testptr->testval); o = 1; break; } evalptr->testval = STRATTESTVAL; return (o); } /* This routine casts the type of one ** of the two input values so as to ** get the same type for both values. ** It returns: ** - VOID : in all cases; */ static int stratTestEvalCast ( StratTest * const tes0ptr, StratTest * const tes1ptr) { #ifdef SCOTCH_DEBUG_PARSER2 if (((tes0ptr->nodeval != STRATPARAMINT) && (tes0ptr->nodeval != STRATPARAMDOUBLE)) || ((tes1ptr->nodeval != STRATPARAMINT) && (tes1ptr->nodeval != STRATPARAMDOUBLE))) { errorPrint ("stratTestEvalCast: internal error"); return (1); } #endif /* SCOTCH_DEBUG_PARSER2 */ if (tes0ptr->nodeval != tes1ptr->nodeval) { /* If value types differ */ if (tes0ptr->nodeval == STRATPARAMDOUBLE) { tes1ptr->nodeval = STRATPARAMDOUBLE; tes1ptr->data.val.valdbl = (double) tes1ptr->data.val.valint; } else { tes0ptr->nodeval = STRATPARAMDOUBLE; tes0ptr->data.val.valdbl = (double) tes0ptr->data.val.valint; } } return (0); } /* This routine fres the given ** strategy condition. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int stratTestExit ( StratTest * const testptr) { int o; /* Output condition flag */ #ifdef SCOTCH_DEBUG_PARSER1 if (testptr == NULL) { errorPrint ("stratTestExit: invalid parameter"); return (1); } #endif /* SCOTCH_DEBUG_PARSER1 */ o = 0; switch (testptr->testval) { case STRATTESTNOT : /* Not operator */ o = stratTestExit (testptr->data.testtab[0]); /* Free the son */ break; case STRATTESTAND : /* And operator */ case STRATTESTOR : /* Or operator */ case STRATTESTLT : /* Less-than operator */ case STRATTESTEQ : /* Equal-to operator */ case STRATTESTGT : /* Greater-than operator */ case STRATTESTMOD : /* Modulus operator */ case STRATTESTMUL : /* Multiplication operator */ case STRATTESTADD : /* Addition operator */ case STRATTESTSUB : /* Subtraction operator */ o = stratTestExit (testptr->data.testtab[0]); /* Free the sons */ o |= stratTestExit (testptr->data.testtab[1]); break; case STRATTESTVAL : /* Constant value */ case STRATTESTVAR : /* Variable */ break; default : errorPrint ("stratTestExit: invalid condition type (%u)", testptr->testval); o = 1; break; } memFree (testptr); /* Free the structure */ return (o); } /* This routine displays the ** given strategy condition. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static char strattestsaveop[STRATTESTNBR] = "|&!=><+-*%##"; static char * strattestsavepa[2][2] = { { "(", ")" }, { "", "" } }; int stratTestSave ( const StratTest * const testptr, FILE * const stream) { int i; int o; #ifdef SCOTCH_DEBUG_PARSER1 if ((testptr == NULL) || (stream == NULL)) { errorPrint ("stratTestSave: invalid parameter"); return (1); } #endif /* SCOTCH_DEBUG_PARSER1 */ o = 0; /* Assume no error */ switch (testptr->testval) { case STRATTESTNOT : /* Not operator */ if ((fprintf (stream, "!(") == EOF) || (stratTestSave (testptr->data.testtab[0], stream) != 0) || (fprintf (stream, ")") == EOF)) o = 1; break; case STRATTESTAND : /* And operator */ case STRATTESTOR : /* Or operator */ case STRATTESTEQ : /* Equal-to operator */ case STRATTESTGT : /* Greater-than operator */ case STRATTESTLT : /* Less-than operator */ case STRATTESTADD : /* Addition operator */ case STRATTESTSUB : /* Subtraction operator */ case STRATTESTMUL : /* Multiplication operator */ case STRATTESTMOD : /* Modulus operator */ i = (testptr->data.testtab[0]->testval < testptr->testval) ? 1 : 0; fprintf (stream, "%s", strattestsavepa[i][0]); o = stratTestSave (testptr->data.testtab[0], stream); fprintf (stream, "%s", strattestsavepa[i][1]); if (o == 0) { fprintf (stream, "%c", strattestsaveop[testptr->testval]); i = (testptr->data.testtab[1]->testval < testptr->testval) ? 1 : 0; fprintf (stream, "%s", strattestsavepa[i][0]); stratTestSave (testptr->data.testtab[1], stream); fprintf (stream, "%s", strattestsavepa[i][1]); } break; case STRATTESTVAL : /* Constant value */ switch (testptr->nodeval) { case STRATPARAMDOUBLE : o = (fprintf (stream, "%lf", testptr->data.val.valdbl) == EOF); break; case STRATPARAMINT : o = (fprintf (stream, INTSTRING, (INT) testptr->data.val.valint) == EOF); break; default : errorPrint ("stratTestSave: invalid value type"); o = 1; } break; case STRATTESTVAR : /* Variable */ for (i = 0; testptr->data.var.datatab->condtab[i].nameptr != NULL; i ++) { if ((testptr->data.var.datatab->condtab[i].doffptr - testptr->data.var.datatab->condtab[i].dbasptr) == testptr->data.var.dataoft) break; } if (testptr->data.var.datatab->condtab[i].nameptr == NULL) { errorPrint ("stratTestSave: invalid variable displacement"); return (1); } o = (fprintf (stream, "%s", testptr->data.var.datatab->condtab[i].nameptr) == EOF); break; default : errorPrint ("stratTestSave: invalid condition type (%u)", testptr->testval); o = 1; } return (o); } /*********************************/ /* */ /* The parser location routines. */ /* */ /*********************************/ void parserLocationUpdate ( ParserLocation * const locaptr, const char * const textptr) { int textidx; locaptr->cobenum = locaptr->coennum; locaptr->libenum = locaptr->liennum; locaptr->tebeptr = locaptr->teenptr; for (textidx = 0; textptr[textidx] != '\0'; textidx ++) { if (*textptr == '\n') { locaptr->coennum = 0; locaptr->liennum ++; } else locaptr->coennum ++; } locaptr->teenptr += textidx; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/parser.h000066400000000000000000000334341514310134000253710ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the declarations for **/ /** the strategy lexical and syntactic **/ /** analyzer. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 02 may 1996 **/ /** # Version 3.2 : from : 07 oct 1996 **/ /** to : 19 oct 1996 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 11 jun 2004 **/ /** # Version 5.1 : from : 20 feb 2008 **/ /** to : 20 feb 2008 **/ /** # Version 6.0 : from : 30 sep 2014 **/ /** to : 30 sep 2014 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Strategy node types. +*/ typedef enum StratNodeType_ { STRATNODECONCAT, /*+ Concatenation node +*/ STRATNODECOND, /*+ Condition node +*/ STRATNODEEMPTY, /*+ Empty strategy +*/ STRATNODEMETHOD, /*+ Method +*/ STRATNODESELECT, /*+ Selection node +*/ STRATNODENBR /*+ Number of strategy nodes +*/ } StratNodeType; /*+ Method and graph parameter types. +*/ typedef int StratParamType; /*+ Same type as enum +*/ #define STRATPARAMCASE 0 /*+ Character; TRICK: FIRST +*/ #define STRATPARAMDOUBLE 1 /*+ Double floating-point +*/ #define STRATPARAMINT 2 /*+ Integer +*/ #define STRATPARAMLOG 3 /*+ Logical value +*/ #define STRATPARAMSTRAT 4 /*+ Strategy +*/ #define STRATPARAMSTRING 5 /*+ String of characters +*/ #define STRATPARAMDEPRECATED 8 /*+ Indicates deprecated parameter; can be merged with the above +*/ /*+ Test types, ordered by ascending priority, for proper writing of parentheses. Initial value should be zero for proper indexing. +*/ typedef enum StratTestType_ { STRATTESTOR = 0, /*+ Or operator +*/ STRATTESTAND, /*+ And operator +*/ STRATTESTNOT, /*+ Not operator +*/ STRATTESTEQ, /*+ Equal-to operator +*/ STRATTESTGT, /*+ Greater-than operator +*/ STRATTESTLT, /*+ Less-than operator +*/ STRATTESTADD, /*+ Addition operator +*/ STRATTESTSUB, /*+ Subtraction operator +*/ STRATTESTMUL, /*+ Multiplication operator +*/ STRATTESTMOD, /*+ Modulus operator +*/ STRATTESTVAL, /*+ Constant value +*/ STRATTESTVAR, /*+ Variable +*/ STRATTESTNBR /*+ Number of test nodes +*/ } StratTestType; /*+ Method characteristics. +*/ typedef int (* StratMethodFunc) (void); typedef struct StratMethodTab_ { int methnum; /*+ Method number in method table +*/ char * nameptr; /*+ Method name +*/ StratMethodFunc funcptr; /*+ Pointer to graph processing method +*/ void * dataptr; /*+ Pointer to default parameters +*/ } StratMethodTab; /*+ Method parameter characteristics. +*/ typedef struct StratParamTab_ { int methnum; /*+ Method number in method table +*/ StratParamType typeval; /*+ Parameter type +*/ char * nameptr; /*+ Parameter name +*/ byte * dbasptr; /*+ Pointer to data base in method +*/ byte * doffptr; /*+ Pointer to data offset in method +*/ void * dselptr; /*+ Pointer to data selector +*/ } StratParamTab; /*+ Strategy characteristics. +*/ typedef struct StratTab_ { StratMethodTab * methtab; /*+ Pointer to method table +*/ StratParamTab * paratab; /*+ Pointer to parameter table +*/ StratParamTab * condtab; /*+ Pointer to condition table +*/ } StratTab; /*+ Concatenation strategy node. +*/ typedef struct StratNodeConcat_ { /*+ Concatenation node +*/ struct Strat_ * stratab[2]; /*+ Pointers to the two strategies to combine +*/ } StratNodeConcat; /*+ Condition and test strategy nodes. +*/ typedef union StratTestVal_ { /*+ Constant value +*/ double valdbl; /*+ Double value +*/ INT valint; /*+ Integer value +*/ int vallog; /*+ Logical value +*/ } StratTestVal; typedef struct StratTestVar_ { /*+ Condition variable +*/ const StratTab * datatab; /*+ Pointer to data parameter table +*/ ptrdiff_t dataoft; /*+ Displacement with respect to beginning +*/ } StratTestVar; typedef struct StratTest_ { /*+ Test node +*/ StratTestType testval; /*+ Test type +*/ StratParamType nodeval; /*+ Node type +*/ union { struct StratTest_ * testtab[2]; /*+ Logical/relational branches +*/ StratTestVal val; /*+ Value +*/ StratTestVar var; /*+ Variable +*/ } data; } StratTest; typedef struct StratNodeCond_ { /*+ Test node +*/ StratTest * testptr; /*+ Test condition +*/ struct Strat_ * stratab[2]; /*+ Then/else strategies +*/ } StratNodeCond; /*+ Data structure of the empty strategy operator node. +*/ typedef struct StratNodeEmpty_ { /*+ Empty node +*/ byte dummy; /*+ Dummy data +*/ } StratNodeEmpty; /*+ Data structure of the empty strategy operator node. +*/ typedef double StratNodeMethodData[10]; /*+ Reserved padded space for method data */ typedef struct StratNodeMethod_ { /*+ Method node +*/ int methnum; /*+ Index in method table +*/ StratNodeMethodData datadat; /*+ Method data +*/ } StratNodeMethod; /*+ Data structure of the selection strategy operator node. +*/ typedef struct StratNodeSelect_ { /*+ Selection node +*/ struct Strat_ * stratab[2]; /*+ Pointers to the two strategies to test +*/ } StratNodeSelect; /*+ The strategy node data structure. +*/ typedef struct Strat_ { const StratTab * tablptr; /*+ Pointer to parsing strategy table +*/ StratNodeType typeval; /*+ Method type +*/ union { /*+ Method data +*/ double padding; /*+ Padding for double alignment +*/ StratNodeConcat concdat; /*+ Concatenation node data +*/ StratNodeCond conddat; /*+ Condition node data +*/ StratNodeEmpty emptdat; /*+ Empty node data +*/ StratNodeMethod methdat; /*+ Method node data +*/ StratNodeSelect seledat; /*+ Selection node data +*/ } data; } Strat; /*+ The parser environment structure. +*/ typedef struct ParserEnv_ { const StratTab * stratab; /*+ Pointer to parsing tables +*/ Strat * straptr; /*+ Pointer to current strategy node +*/ const StratParamTab * paraptr; /*+ Pointer to current parameter +*/ const char * textptr; /*+ Pointer to strategy string +*/ } ParserEnv; /*+ The text parsing location structure. +*/ typedef struct ParserLocation_ { int cobenum; /*+ Column of beginning of area +*/ int libenum; /*+ Line of beginning of area +*/ const char * tebeptr; /*+ Pointer to beginning of area +*/ int coennum; /*+ Column of end of area +*/ int liennum; /*+ Line of end of area +*/ const char * teenptr; /*+ Pointer to end of area +*/ } ParserLocation; #define YYLTYPE ParserLocation /* Trigger use of locations in parser */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ if (N) { \ (Current).cobenum = YYRHSLOC (Rhs, 1).cobenum; \ (Current).libenum = YYRHSLOC (Rhs, 1).libenum; \ (Current).tebeptr = YYRHSLOC (Rhs, 1).tebeptr; \ (Current).coennum = YYRHSLOC (Rhs, N).coennum; \ (Current).liennum = YYRHSLOC (Rhs, N).liennum; \ (Current).teenptr = YYRHSLOC (Rhs, N).teenptr; \ } \ else { \ (Current).cobenum = (Current).coennum = YYRHSLOC (Rhs, 0).coennum; \ (Current).libenum = (Current).liennum = YYRHSLOC (Rhs, 0).liennum; \ (Current).tebeptr = (Current).teenptr = YYRHSLOC (Rhs, 0).teenptr; \ } \ } while (0) /* ** The external declarations. */ extern Strat stratdummy; /*+ Dummy empty strategy node +*/ /* ** The function prototypes. */ #ifdef SCOTCH_PARSER static int stratTestEvalCast (StratTest * const, StratTest * const); #endif /* SCOTCH_PARSER */ Strat * stratInit (const StratTab * const , const char * const); int stratExit (Strat * const); int stratSave (const Strat * const, FILE * const); int stratTestEval (const StratTest * const, StratTest * const, const void * const); int stratTestExit (StratTest * const); int stratTestSave (const StratTest * const, FILE * const); void parserLocationUpdate (ParserLocation * const, const char * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/parser_ll.h000066400000000000000000000071161514310134000260560ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2021,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_ll.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** These lines are the declarations for **/ /** the strategy strings lexical parser. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 13 jun 1996 **/ /** # Version 3.2 : from : 03 oct 1996 **/ /** to : 19 oct 1996 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 20 dec 2001 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 08 jun 2025 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ void stratParserLexBufDelete (YY_BUFFER_STATE, yyscan_t); void stratParserLexBufSwitch (YY_BUFFER_STATE, yyscan_t); void stratParserLexBegin (yyscan_t, unsigned int); int stratParserLexDestroy (yyscan_t); int stratParserLexInit (yyscan_t *); YY_BUFFER_STATE stratParserLexScanString (const char *, yyscan_t); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/parser_ll.l000066400000000000000000000221131514310134000260540ustar00rootroot00000000000000%top{ /* Copyright 2004,2007,2018-2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_ll.l **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module is the lexical parser **/ /** which processes strategy strings. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 23 aug 1996 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 05 jun 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 11 sep 2001 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 23 dec 2001 **/ /** # Version 5.1 : from : 09 jun 2009 **/ /** to : 24 jul 2011 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 07 jun 2025 **/ /** **/ /** NOTES : # In order for flex to read its input **/ /** with getc() instead of fread, we set **/ /** YY_ALWAYS_INTERACTIVE to 1. This may **/ /** not always work with future releases. **/ /** # Following common.h, we stop unistd.h **/ /** from being included on Windows-like **/ /** platforms by setting YY_NO_UNISTD_H. **/ /** **/ /************************************************************/ #define YY_DECL int yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc, yyscan_t yyscanner) #include "common.h" /* Early inclusion to handle the inclusion of */ #if (defined COMMON_OS_WINDOWS || defined HAVE_NOT_UNISTD_H) #define YY_NO_UNISTD_H #endif /* (defined COMMON_OS_WINDOWS || defined HAVE_NOT_UNISTD_H) */ } %{ /* ** The defines and includes. */ #include "module.h" #include "common.h" #undef INTEGER /* In case someone defined them */ #undef DOUBLE #include "parser.h" #include "parser_yy.h" #include "parser_ly.h" /*+ Definitions produced by yacc +*/ #define YY_USER_ACTION parserLocationUpdate (yylloc, yytext); %} %option bison-bridge %option noinput %option nounput %option noyywrap %option reentrant IDENT [A-Za-z][0-9A-Za-z]* INTEGER [0-9]+ FLOAT [0-9]+(\.[0-9]+)?([Ee][-+]?[0-9]+)? STRING \"[^\"]*\" %s lparam %s lparamcase %s lparamdouble %s lparamint %s lparamstring %s ltest %% [0-9A-Za-z] { strncpy (PARSERYYLVAL (STRING), yytext, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (METHODNAME); } {IDENT} { strncpy (PARSERYYLVAL (STRING), yytext, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (PARAMNAME); } [0-9A-Za-z] { PARSERYYLVAL (CASEVAL) = yytext[0]; return (VALCASE); } ({FLOAT}|{INTEGER}) { PARSERYYLVAL (DOUBLE) = atof (yytext); return (VALDOUBLE); } {INTEGER} { PARSERYYLVAL (INTEGER) = (INT) atol (yytext); return (VALINT); } {FLOAT} { PARSERYYLVAL (INTEGER) = (INT) atof (yytext); /* FLOAT is put after so that INTEGER can be matched */ return (VALINT); } {STRING} { yytext[yyleng - 1] = '\0'; /* Remove the heading and trailing \" */ strncpy (PARSERYYLVAL (STRING), yytext + 1, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (VALSTRING); } {INTEGER} { PARSERYYLVAL (INTEGER) = (INT) atol (yytext); return (VALINT); } {FLOAT} { PARSERYYLVAL (DOUBLE) = atof (yytext); return (VALDOUBLE); } {IDENT} { strncpy (PARSERYYLVAL (STRING), yytext, PARSERSTRINGLEN); PARSERYYLVAL (STRING[PARSERSTRINGLEN - 1]) = '\0'; return (PARAMNAME); } [ \t\n]* { parserLocationUpdate (yylloc, yytext); /* Update position without returning */ } . return (yytext[0]); %% #include "parser_ll.h" /*******************************************/ /* */ /* These routines handle data input to the */ /* lexical analyzer. */ /* */ /*******************************************/ /* This routine selects the sub-parser ** to parse the input. ** It returns: ** - VOID : in all cases. */ void stratParserLexBegin ( yyscan_t yyscanner, unsigned int type) { struct yyguts_t * yyg = (struct yyguts_t *) yyscanner; /* Awful hack to comply with the syntax of BEGIN */ switch (type) { case VALCASE : BEGIN lparamcase; break; case VALDOUBLE : BEGIN lparamdouble; break; case VALINT : BEGIN lparamint; break; case VALSTRING : BEGIN lparamstring; break; case VALPARAM : BEGIN lparam; break; case VALSTRAT : BEGIN INITIAL; break; case VALTEST : BEGIN ltest; break; } } /* These routines are hooks for internal lexer ** routines which are called by the parser and ** cannot be properly accessed when Scotch suffixes ** are used. */ void stratParserLexBufDelete ( YY_BUFFER_STATE b, yyscan_t yyscanner) { yy_delete_buffer (b, yyscanner); } void stratParserLexBufSwitch ( YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { yy_switch_to_buffer (new_buffer, yyscanner); } int stratParserLexDestroy ( yyscan_t yyscanner) { return (yylex_destroy (yyscanner)); } int stratParserLexInit ( yyscan_t * ptr_yy_globals) { return (yylex_init (ptr_yy_globals)); } YY_BUFFER_STATE stratParserLexScanString ( const char * yystr, yyscan_t yyscanner) { return (yy_scan_string (yystr, yyscanner)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/parser_yy.h000066400000000000000000000077221514310134000261130ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2019,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_yy.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a static mapper. **/ /** These lines are the declarations for **/ /** the strategy strings syntactic parser. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 30 may 1996 **/ /** # Version 3.2 : from : 03 oct 1996 **/ /** to : 19 oct 1996 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 21 dec 2001 **/ /** # Version 5.1 : from : 09 jun 2009 **/ /** to : 07 aug 2010 **/ /** # Version 6.0 : from : 27 apr 2018 **/ /** to : 26 oct 2019 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 08 jun 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Parser token limits. */ #define PARSERSTRINGLEN 256 /*+ Length of parser strings +*/ /* Preliminary declaration. */ extern unsigned int stratmethtokentab[]; /* Backward compatibility with un-pure Flex or Bison. */ #define PARSERLLBEGIN(s) stratParserLexBegin (scanptr, s) #define PARSERYYLVAL(s) yylval_param->s /* ** The function prototypes. */ #ifdef SCOTCH_PARSER_YY static void yyerror (const ParserLocation * const, void * const, const ParserEnv * const, const char * const); #endif /* SCOTCH_PARSER_YY */ Strat * stratParserParse (const StratTab * const, const char * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/parser_yy.y000066400000000000000000000771141514310134000261360ustar00rootroot00000000000000%{ /* Copyright 2004,2007,2008,2011,2014,2018,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parser_yy.y **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the syntactic parser **/ /** which processes strategy strings. **/ /** **/ /** DATES : # Version 3.1 : from : 07 nov 1995 **/ /** to : 13 jun 1996 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 27 feb 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 20 dec 2001 **/ /** to : 11 jun 2004 **/ /** # Version 5.1 : from : 30 oct 2007 **/ /** to : 24 jul 2011 **/ /** # Version 6.0 : from : 30 sep 2014 **/ /** to : 27 apr 2018 **/ /** # Version 7.0 : from : 02 mar 2018 **/ /** to : 11 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PARSER_YY #include "module.h" #include "common.h" #include "parser.h" #include "parser_yy.h" #include "parser_ly.h" #include "parser_lh.h" #include "parser_ll.h" #ifdef SCOTCH_DEBUG_PARSER3 #define YYDEBUG 1 #endif /* SCOTCH_DEBUG_PARSER3 */ /* ** The static and global definitions. ** See also at the end of this file. */ /*+ Method token conversion array. +*/ extern unsigned int parsermethtokentab[]; /* Pre-definition */ /* ** The function prototypes. */ YY_DECL; /* Definition of yylex(); Flex and Bison interaction is crap */ %} %define api.pure full %locations %param {void * scanptr} %parse-param {ParserEnv * penvptr} %initial-action { @$.cobenum = @$.libenum = @$.coennum = @$.liennum = 1; @$.tebeptr = @$.teenptr = penvptr->textptr; } %union { char CASEVAL; /* Case value */ StratTest * TEST; /* Test type */ StratTestType TESTOP; /* Relational type */ double DOUBLE; /* Double-precision */ INT INTEGER; /* Integer */ char STRING[PARSERSTRINGLEN]; /* Character string */ struct { const StratTab * tabl; /* Current tables */ Strat * strat; /* Current method */ const StratParamTab * param; /* Current parameter */ } SAVE; /* Parameter type */ Strat * STRAT; /* Strategy tree */ } %token METHODNAME %token PARAMNAME %token VALCASE %token VALDOUBLE %token VALINT %token VALSTRING %token VALSTRAT VALPARAM VALTEST %type TEST TESTOR TESTAND TESTNOT %type TESTREL TESTEXPR1 TESTEXPR2 TESTEXPR3 %type TESTEXPR4 TESTVAL TESTVAR %type TESTRELOP TESTEXPR1OP TESTEXPR2OP TESTEXPR3OP %type VALSDOUBLE %type VALSINT %type STRATCONCAT STRATTEST STRATTESTELSE STRATEMPTY %type STRATGROUP STRATMETHOD STRATSELECT %start STRAT %% /* ** These rules define the strategy grammar. */ STRAT : STRATSELECT { penvptr->straptr = ($1); /* Save pointer to root of tree */ } ; STRATSELECT : STRATSELECT '|' STRATEMPTY { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (1)"); stratExit ($1); stratExit ($3); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODESELECT; straptr->data.seledat.stratab[0] = ($1); straptr->data.seledat.stratab[1] = ($3); ($$) = straptr; } | STRATEMPTY ; STRATEMPTY : STRATCONCAT | { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (2)"); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODEEMPTY; ($$) = straptr; } ; STRATCONCAT : STRATCONCAT STRATTEST { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (3)"); stratExit ($1); stratExit ($2); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODECONCAT; straptr->data.concdat.stratab[0] = ($1); straptr->data.concdat.stratab[1] = ($2); ($$) = straptr; } | STRATTEST ; STRATTEST : { PARSERLLBEGIN (VALTEST); /* Parse parameter tokens */ } '/' TEST { PARSERLLBEGIN (VALSTRAT); /* Parse strategy tokens */ } '?' STRATSELECT STRATTESTELSE ';' { Strat * straptr; if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (4)"); stratExit ($6); if (($7) != NULL) stratExit ($7); stratTestExit ($3); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODECOND; straptr->data.conddat.testptr = ($3); straptr->data.conddat.stratab[0] = ($6); straptr->data.conddat.stratab[1] = ($7); ($$) = straptr; } | STRATGROUP ; STRATTESTELSE : ':' STRATSELECT { ($$) = ($2); } | { ($$) = NULL; } ; STRATGROUP : '(' STRATSELECT ')' { ($$) = ($2); } | STRATMETHOD ; STRATMETHOD : METHODNAME { Strat * straptr; int methnum; size_t methlen; StratMethodTab * methtab; int i; size_t j; methnum = 0; methlen = 0; /* No method recognized yet */ methtab = penvptr->stratab->methtab; /* Point to the method table */ for (i = 0; methtab[i].nameptr != NULL; i ++) { if ((strncasecmp (($1), /* Find longest matching code name */ methtab[i].nameptr, j = strlen (methtab[i].nameptr)) == 0) && (j > methlen)) { methnum = methtab[i].methnum; methlen = j; } } if (methlen == 0) { /* If method name not known */ errorPrint ("stratParserParse: invalid method name \"%s\", line %d, column %d, at \"%s\"", ($1), (@1).libenum, (@1).cobenum, (@1).tebeptr); YYABORT; } if ((straptr = (Strat *) memAlloc (sizeof (Strat))) == NULL) { errorPrint ("stratParserParse: out of memory (5)"); YYABORT; } straptr->tablptr = penvptr->stratab; straptr->typeval = STRATNODEMETHOD; straptr->data.methdat.methnum = methnum; /* Set method type */ if (methtab[methnum].dataptr != NULL) /* If default values exist */ memcpy (&straptr->data.methdat.datadat, /* Set values to default */ methtab[methnum].dataptr, sizeof (StratNodeMethodData)); penvptr->straptr = straptr; /* Structure available for parameter processing */ } METHODPARAM { StratParamTab * paratab; int paraidx; paratab = penvptr->stratab->paratab; /* Point to the parameter table */ for (paraidx = 0; paratab[paraidx].nameptr != NULL; paraidx ++) { if ((paratab[paraidx].methnum == penvptr->straptr->data.methdat.methnum) && /* If a strategy parameter found for this method */ (paratab[paraidx].typeval == STRATPARAMSTRAT)) { if (*((Strat **) ((byte *) &penvptr->straptr->data.methdat.datadat + /* And this parameter has not been set */ (paratab[paraidx].doffptr - paratab[paraidx].dbasptr))) == NULL) errorPrintW ("stratParserParse: strategy parameter \"%s\" of method \"%s\" not set, line %d, column %d, before \"%s\"", paratab[paraidx].nameptr, penvptr->stratab->methtab[penvptr->straptr->data.methdat.methnum].nameptr, (@2).libenum, (@2).cobenum, (@2).tebeptr); } } ($$) = penvptr->straptr; /* Return current structure */ penvptr->straptr = NULL; /* No current structure */ } ; METHODPARAM : { PARSERLLBEGIN (VALPARAM); /* Parse parameter tokens */ } '{' PARAMLIST { PARSERLLBEGIN (VALSTRAT); /* Parse strategy tokens */ } '}' | /* No parameters at all */ ; PARAMLIST : PARAMLIST ',' PARAMPARAM | PARAMPARAM ; PARAMPARAM : PARAMNAME { int paraidx; size_t paralen; StratParamTab * paratab; int i; size_t j; paraidx = 0; paralen = 0; /* No parameter recognized yet */ paratab = penvptr->stratab->paratab; /* Point to the parameter table */ for (i = 0; paratab[i].nameptr != NULL; i ++) { if ((paratab[i].methnum == penvptr->straptr->data.methdat.methnum) && (strncasecmp (($1), /* Find longest matching parameter name */ paratab[i].nameptr, j = strlen (paratab[i].nameptr)) == 0) && (j > paralen)) { paraidx = i; paralen = j; } } if (paralen == 0) { errorPrint ("stratParserParse: invalid method parameter name \"%s\", line %d, column %d, before \"%s\"", ($1), (@1).libenum, (@1).cobenum, (@1).tebeptr); YYABORT; } ($$).tabl = penvptr->stratab; /* Save current strategy tables */ penvptr->paraptr = ¶tab[paraidx]; /* Save current parameter value */ PARSERLLBEGIN (stratmethtokentab[penvptr->paraptr->typeval & ~STRATPARAMDEPRECATED]); /* Get non-deprecated type */ if (penvptr->paraptr->typeval == STRATPARAMSTRAT) /* If parameter is a strategy */ penvptr->stratab = (StratTab *) penvptr->paraptr->dselptr; /* Use new strategy tables */ } '=' PARAMVAL { PARSERLLBEGIN (VALPARAM); /* Go-on reading parameters */ penvptr->stratab = ($2).tabl; /* Restore current strategy tables */ } ; PARAMVAL : VALCASE { char c; /* Character read */ char * p; /* Pointer to selector string */ int i; /* Index in selector string */ if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ c = ($1); /* First, use char as is */ for (p = (char *) penvptr->paraptr->dselptr, i = 0; (*p != '\0') && (*p != c); p ++, i ++) ; if (*p == '\0') { /* Char was not found */ c = tolower (c); /* Convert char to lower case */ for (p = (char *) penvptr->paraptr->dselptr, i = 0; (*p != '\0') && (*p != c); p ++, i ++) ; if (*p == '\0') { errorPrint ("stratParserParse: invalid method parameter switch \"%s=%c\", line %d, column %d, before \"%s\"", penvptr->paraptr->nameptr, ($1), (@1).libenum, (@1).cobenum, (@1).tebeptr); YYABORT; } } #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (int)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (1)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((int *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = i; } } | VALSDOUBLE { if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (double)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (2)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((double *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = ($1); } } | VALSINT { if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (INT)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (3)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((INT *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = (INT) ($1); } } | VALSTRING { if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + strlen ($1) + 1) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (4)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ strcpy ((char *) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr)), ($1)); } } | { ($$).strat = penvptr->straptr; ($$).param = penvptr->paraptr; penvptr->straptr = NULL; penvptr->paraptr = NULL; } STRATSELECT { penvptr->straptr = ($1).strat; /* Restore current method */ penvptr->paraptr = ($1).param; /* Restore current parameter */ if ((penvptr->paraptr->typeval & STRATPARAMDEPRECATED) == 0) { /* If parameter is not deprecated */ #ifdef SCOTCH_DEBUG_PARSER2 if (((penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr) + sizeof (Strat *)) > sizeof (StratNodeMethodData)) { errorPrint ("stratParserParse: internal error (5)"); YYABORT; } #endif /* SCOTCH_DEBUG_PARSER2 */ *((Strat **) ((byte *) &penvptr->straptr->data.methdat.datadat + (penvptr->paraptr->doffptr - penvptr->paraptr->dbasptr))) = ($2); } } | error { errorPrint ("stratParserParse: invalid value for parameter \"%s\" of method \"%s\", line %d, column %d, before \"%s\"", penvptr->paraptr->nameptr, penvptr->straptr->tablptr->methtab[penvptr->straptr->data.methdat.methnum].nameptr, (@1).libenum, (@1).cobenum, (@1).tebeptr); YYABORT; } ; TEST : TESTOR ; TESTOR : TESTOR '|' TESTAND { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (6)"); stratTestExit ($1); stratTestExit ($3); YYABORT; } testptr->testval = STRATTESTOR; testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ($1); testptr->data.testtab[1] = ($3); ($$) = testptr; } | TESTAND ; TESTAND : TESTAND '&' TESTNOT { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (7)"); stratTestExit ($1); stratTestExit ($3); YYABORT; } testptr->testval = STRATTESTAND; testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ($1); testptr->data.testtab[1] = ($3); ($$) = testptr; } | TESTNOT ; TESTNOT : '!' TESTNOT { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (8)"); stratTestExit ($2); YYABORT; } testptr->testval = STRATTESTNOT; testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ($2); ($$) = testptr; } | '(' TESTOR ')' { ($$) = ($2); } | TESTREL ; TESTREL : TESTEXPR1 TESTRELOP TESTEXPR1 { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (9)"); stratTestExit ($1); stratTestExit ($3); YYABORT; } testptr->testval = ($2); testptr->nodeval = STRATPARAMLOG; testptr->data.testtab[0] = ($1); testptr->data.testtab[1] = ($3); ($$) = testptr; } ; TESTRELOP : '<' { ($$) = STRATTESTLT; } | '=' { ($$) = STRATTESTEQ; } | '>' { ($$) = STRATTESTGT; } ; TESTEXPR1 : TESTEXPR1 TESTEXPR1OP TESTEXPR2 { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (10)"); stratTestExit ($1); stratTestExit ($3); YYABORT; } testptr->testval = ($2); testptr->data.testtab[0] = ($1); testptr->data.testtab[1] = ($3); ($$) = testptr; } | TESTEXPR2 ; TESTEXPR1OP : '+' { ($$) = STRATTESTADD; } | '-' { ($$) = STRATTESTSUB; } ; TESTEXPR2 : TESTEXPR2 TESTEXPR2OP TESTEXPR3 { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { stratTestExit ($1); stratTestExit ($3); errorPrint ("stratParserParse: out of memory (11)"); YYABORT; } testptr->testval = ($2); testptr->data.testtab[0] = ($1); testptr->data.testtab[1] = ($3); ($$) = testptr; } | TESTEXPR3 ; TESTEXPR2OP : '*' { ($$) = STRATTESTMUL; } ; TESTEXPR3 : TESTEXPR3 TESTEXPR3OP TESTEXPR4 { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (12)"); stratTestExit ($1); stratTestExit ($3); YYABORT; } testptr->testval = ($2); testptr->data.testtab[0] = ($1); testptr->data.testtab[1] = ($3); ($$) = testptr; } | TESTEXPR4 ; TESTEXPR3OP : '%' { ($$) = STRATTESTMOD; } ; TESTEXPR4 : '(' TESTEXPR1 ')' { ($$) = ($2); } | TESTVAL | TESTVAR ; TESTVAL : VALSDOUBLE { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (13)"); YYABORT; } testptr->testval = STRATTESTVAL; testptr->nodeval = STRATPARAMDOUBLE; testptr->data.val.valdbl = ($1); ($$) = testptr; } | VALSINT { StratTest * testptr; if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (14)"); YYABORT; } testptr->testval = STRATTESTVAL; testptr->nodeval = STRATPARAMINT; testptr->data.val.valint = ($1); ($$) = testptr; } ; TESTVAR : PARAMNAME { StratTest * testptr; StratParamTab * condtab; int para; size_t paralen; int i; size_t j; para = 0; paralen = 0; /* No parameter recognized yet */ condtab = penvptr->stratab->condtab; /* Point to parameter table */ for (i = 0; condtab[i].nameptr != NULL; i ++) { if ((strncasecmp (($1), /* Find longest matching parameter name */ condtab[i].nameptr, j = strlen (condtab[i].nameptr)) == 0) && (j > paralen)) { para = i; paralen = j; } } if (paralen == 0) { errorPrint ("stratParserParse: invalid graph parameter name \"%s\", line %d, column %d, before \"%s\"", ($1), (@1).libenum, (@1).cobenum, (@1).tebeptr); YYABORT; } if ((testptr = (StratTest *) memAlloc (sizeof (StratTest))) == NULL) { errorPrint ("stratParserParse: out of memory (15)"); YYABORT; } testptr->testval = STRATTESTVAR; testptr->nodeval = condtab[para].typeval; testptr->data.var.datatab = penvptr->stratab; testptr->data.var.dataoft = condtab[para].doffptr - condtab[para].dbasptr; ($$) = testptr; } ; VALSDOUBLE : TESTEXPR1OP VALDOUBLE { ($$) = (($1) == STRATTESTSUB) ? - ($2) : ($2); } | VALDOUBLE ; VALSINT : TESTEXPR1OP VALINT { ($$) = (($1) == STRATTESTSUB) ? - ($2) : ($2); } | VALINT ; %% /* ** The static and global definitions (bis). ** These are put at the end of the file because ** the token values that they use are not yet ** defined in the first section of the file. */ unsigned int stratmethtokentab[] = { /* Table for parameter/token type conversion */ VALCASE, VALDOUBLE, VALINT, -1, /* No logical parameters */ VALSTRAT, VALSTRING, -1 /* One more value to detect array overflow */ }; /************************************/ /* */ /* These routines drive the parser. */ /* */ /************************************/ /* This routine is the entry point for ** the strategy parser. ** It returns: ** - !NULL : pointer to the strategy. ** - NULL : on error. */ Strat * stratParserParse ( const StratTab * const stratab, /*+ Pointer to parsing tables +*/ const char * const textptr) /*+ Strategy string to parse +*/ { YY_BUFFER_STATE buffdat; ParserEnv penvdat; /* Parser environment */ yyscan_t scandat; /* Pointer to lex memory */ int o; penvdat.stratab = stratab; /* Point to the parsing tables */ penvdat.straptr = NULL; /* Clear up the temporary strategy pointer */ penvdat.textptr = textptr; /* Initialize the lexical parser */ if (stratParserLexInit (&scandat) != 0) { errorPrint ("stratParserParse: cannot initialize reentrant parser"); return (NULL); } buffdat = stratParserLexScanString (textptr, scandat); /* Let's hope nothing breaks; error management in flex is just crap */ stratParserLexBufSwitch (buffdat, scandat); o = yyparse (scandat, &penvdat); /* Parse the strategy string */ stratParserLexBufDelete (buffdat, scandat); stratParserLexDestroy (scandat); if (o != 0) { if (penvdat.straptr != NULL) stratExit (penvdat.straptr); return (NULL); } return (penvdat.straptr); /* Return strategy pointer */ } /* This routine displays the parser error message. ** It returns: ** - void : in all cases. */ static void yyerror ( const ParserLocation * const plocptr, /*+ Scan location +*/ void * const scanptr, /*+ Not used +*/ const ParserEnv * const penvptr, /*+ Not used +*/ const char * const mesgptr) /*+ Not used +*/ { errorPrint ("stratParserParse: invalid strategy string, line %d, column %d, at \"%s\"", plocptr->libenum, plocptr->cobenum, plocptr->tebeptr); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/pthread_win32.h000066400000000000000000000152331514310134000265430ustar00rootroot00000000000000/* Copyright 2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : pthread_win32.h **/ /** **/ /** AUTHORS : Clement BARTHELEMY **/ /** Tetsuya MISHIMA **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are an implementation of a **/ /** (very limited) subset of the pthread **/ /** API for win32. **/ /** **/ /** DATES : # Version 7.0 : from : 15 jun 2024 **/ /** to : 29 aug 2025 **/ /** **/ /** NOTES : # This file is based on earlier work **/ /** by Samuel THIBAULT for the StarPU **/ /** software. **/ /** # No effort is made to translate win32 **/ /** error codes to Posix errno's: most **/ /** functions return EINVAL on error. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ typedef HANDLE pthread_t; typedef DWORD pthread_attr_t; typedef unsigned pthread_condattr_t; typedef CONDITION_VARIABLE pthread_cond_t; typedef unsigned pthread_mutexattr_t; typedef struct { CRITICAL_SECTION lock; INIT_ONCE init; } pthread_mutex_t; #define PTHREAD_MUTEX_INITIALIZER { .lock = {0}, .init = INIT_ONCE_STATIC_INIT } /* ** The pthread compatibility routines. */ static inline int pthread_create ( pthread_t * thrdptr, const pthread_attr_t * attrptr, void * (* funcptr) (void *), void * argptr) { if ((attrptr != NULL) && (*attrptr != 0)) return (EINVAL); *thrdptr = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE) funcptr, argptr, 0, NULL); if (*thrdptr == NULL) return (EAGAIN); return (0); } static inline pthread_t pthread_self (void) { return (GetCurrentThread ()); } static inline int pthread_join ( pthread_t thrdval, void ** resuptr) { switch (WaitForSingleObject (thrdval, INFINITE)) { case WAIT_OBJECT_0 : break; case WAIT_FAILED : /* FALL THROUGH */ default : return (EINVAL); } if (resuptr != NULL) { DWORD resudat; if (GetExitCodeThread (thrdval, &resudat)) *resuptr = (void *) (DWORD_PTR) resudat; } return (0); } static inline int pthread_detach ( pthread_t thrdval) { if (! CloseHandle (thrdval)) return (EINVAL); return (0); } static inline void pthread_exit ( void * resptr) { ExitThread ((DWORD) (DWORD_PTR) resptr); } /* ** The pthread_cond routines. */ static inline int pthread_cond_init ( pthread_cond_t * condptr, const pthread_condattr_t * attrptr) { if ((attrptr != NULL) && (*attrptr != 0)) return (EINVAL); InitializeConditionVariable (condptr); return (0); } static inline int pthread_cond_wait ( pthread_cond_t * condptr, pthread_mutex_t * muteptr) { if (SleepConditionVariableCS (condptr, &muteptr->lock, INFINITE) != 0) return (EINVAL); return (0); } static inline int pthread_cond_broadcast ( pthread_cond_t * condptr) { WakeAllConditionVariable (condptr); return (0); } static inline int pthread_cond_destroy ( pthread_cond_t * condptr) /* Not used */ { return (0); } /* ** The pthread_mutex routines. */ static BOOL initCriticalSectionOnce ( INIT_ONCE * initOnce, /* Not used */ void * lockptr, void ** contptr) /* Not used */ { InitializeCriticalSection (lockptr); return (TRUE); } static inline int pthread_mutex_init ( pthread_mutex_t * muteptr, pthread_mutexattr_t * attrptr) { if ((attrptr != NULL) && (*attrptr != 0)) return (EINVAL); InitOnceInitialize (&muteptr->init); InitOnceExecuteOnce (&muteptr->init, (PINIT_ONCE_FN) initCriticalSectionOnce, &muteptr->lock, NULL); return (0); } static inline int pthread_mutex_lock ( pthread_mutex_t * muteptr) { InitOnceExecuteOnce (&muteptr->init, (PINIT_ONCE_FN) initCriticalSectionOnce, &muteptr->lock, NULL); EnterCriticalSection (&muteptr->lock); return (0); } static inline int pthread_mutex_unlock ( pthread_mutex_t * muteptr) { InitOnceExecuteOnce (&muteptr->init, (PINIT_ONCE_FN) initCriticalSectionOnce, &muteptr->lock, NULL); LeaveCriticalSection (&muteptr->lock); return (0); } static inline int pthread_mutex_destroy ( pthread_mutex_t * muteptr) { DeleteCriticalSection (&muteptr->lock); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph.c000066400000000000000000000123551514310134000255220ustar00rootroot00000000000000/* Copyright 2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** separator handling routines. **/ /** **/ /** DATES : # Version 5.0 : from : 07 feb 2006 **/ /** to : 13 mar 2006 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "vdgraph.h" /*************************************/ /* */ /* These routines handle distributed */ /* separator graphs. */ /* */ /*************************************/ /* This routine initializes a distributed ** separator graph structure. As for the Dgraph ** structure, in order to avoid collective ** communication whenever possible, the allocation ** of send and receive index arrays is not performed ** in the routine itself, but rather delegated to ** subsequent routines such as dgraphBuild. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int vdgraphInit ( Vdgraph * restrict const grafptr, /* Distributed separator graph structure */ MPI_Comm proccomm) /* Communicator to be used for all communications */ { memSet (grafptr, 0, sizeof (Vdgraph)); /* Clear public and private graph fields */ grafptr->s.proccomm = proccomm; /* Set private fields */ MPI_Comm_size (proccomm, &grafptr->s.procglbnbr); /* Get communicator data */ MPI_Comm_rank (proccomm, &grafptr->s.proclocnum); return (0); } /* This routine frees the contents ** of the given distributed active graph. ** It returns: ** - VOID : in all cases. */ void vdgraphExit ( Vdgraph * const grafptr) { if (grafptr->partgsttax != NULL) memFree (grafptr->partgsttax + grafptr->s.baseval); if (grafptr->fronloctab != NULL) memFree (grafptr->fronloctab); dgraphExit (&grafptr->s); /* Free distributed source graph and its private data (flagval may be corrupted afterwards) */ #ifdef SCOTCH_DEBUG_VDGRAPH2 memSet (grafptr, ~0, sizeof (Vdgraph)); #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } /* This routine moves all of the graph ** vertices to the first part. ** It returns: ** - VOID : in all cases. */ void vdgraphZero ( Vdgraph * const grafptr) { memSet (grafptr->partgsttax + grafptr->s.baseval, 0, grafptr->s.vertgstnbr * sizeof (GraphPart)); /* Set all local and ghost vertices to part 0 */ grafptr->compglbloaddlt = grafptr->s.veloglbsum; grafptr->compglbload[0] = grafptr->s.veloglbsum; /* No frontier vertices */ grafptr->compglbload[1] = grafptr->compglbload[2] = 0; grafptr->compglbsize[0] = grafptr->s.vertglbnbr; grafptr->compglbsize[1] = grafptr->compglbsize[2] = 0; grafptr->complocload[0] = grafptr->s.velolocsum; grafptr->complocload[1] = grafptr->complocload[2] = 0; grafptr->complocsize[0] = grafptr->s.vertlocnbr; grafptr->complocsize[1] = grafptr->complocsize[2] = 0; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph.h000066400000000000000000000134701514310134000255260ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2018,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for distributed vertex separation **/ /** routines. **/ /** **/ /** DATES : # Version 5.0 : from : 06 feb 2006 **/ /** to : 29 apr 2006 **/ /** # Version 5.1 : from : 07 nov 2007 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 27 aug 2019 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Active graph structure. +*/ typedef struct Vdgraph_ { Dgraph s; /*+ Source distributed graph +*/ GraphPart * partgsttax; /*+ Based local part array: 0,1: part; 2: separator +*/ Gnum compglbloaddlt; /*+ Load difference between both parts +*/ Gnum compglbload[3]; /*+ Global loads of both parts and of separator; TRICK: before compglbsize[] +*/ Gnum compglbsize[3]; /*+ Number of vertices in parts; compglbsize[2] is fronglbnbr, the separator +*/ Gnum complocload[3]; /*+ Local loads of both parts and of separator; TRICK: before complocsize[] +*/ Gnum complocsize[3]; /*+ Number of vertices in parts; complocsize[2] is fronlocnbr, the separator +*/ Gnum * fronloctab; /*+ Array of local frontier vertex numbers +*/ Gnum levlnum; /*+ Nested dissection or coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Vdgraph; /*+ The graph separator storing structure. +*/ typedef struct VdgraphStore_ { Gnum fronglbnbr; /*+ Number of frontier nodes +*/ Gnum compglbloaddlt; /*+ Difference from the average +*/ Gnum compglbload[2]; /*+ Load in both parts +*/ Gnum compglbsize0; /*+ Number of vertices in part 0 +*/ Gnum complocsize0; /*+ Number of vertices in parts +*/ Gnum fronlocnbr; /*+ Number of local frontier vertices +*/ byte * datatab; /*+ Variable-sized data array +*/ } VdgraphStore; /* ** The function prototypes. */ int vdgraphInit (Vdgraph * restrict const, MPI_Comm); void vdgraphExit (Vdgraph * const); void vdgraphZero (Vdgraph * const); int vdgraphCheck (const Vdgraph * const); #ifdef SCOTCH_VGRAPH_H int vdgraphGatherAll (const Vdgraph * restrict const, Vgraph * restrict); #endif /* SCOTCH_VGRAPH_H */ int vdgraphStoreInit (const Vdgraph * const, VdgraphStore * const); void vdgraphStoreExit (VdgraphStore * const); void vdgraphStoreSave (const Vdgraph * const , VdgraphStore * const); void vdgraphStoreUpdt (Vdgraph * const, const VdgraphStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_check.c000066400000000000000000000247601514310134000266620ustar00rootroot00000000000000/* Copyright 2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the distributed **/ /** separator graph consistency checking **/ /** routine. **/ /** **/ /** DATES : # Version 5.0 : from : 07 feb 2006 **/ /** to : 01 mar 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "vdgraph.h" /*************************/ /* */ /* These routines handle */ /* separator graphs. */ /* */ /*************************/ /* This routine checks the consistency ** of the given distributed separator graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int vdgraphCheck ( const Vdgraph * const grafptr) { Dgraph grafdat; /* Dummy graph for ghost edge array */ MPI_Comm proccomm; /* Graph communicator */ Gnum vertnum; /* Number of current vertex */ Gnum fronnum; /* Number of frontier vertex */ Gnum complocload[3]; Gnum complocsize[3]; Gnum commcut[3]; GraphPart * restrict partgsttax; Gnum reduloctab[11]; /* Arrays for reductions */ Gnum reduglbtab[11]; int cheklocval; /* Local consistency flag */ int chekglbval; /* Global consistency flag */ proccomm = grafptr->s.proccomm; if (MPI_Barrier (proccomm) != MPI_SUCCESS) { /* Synchronize */ errorPrint ("vdgraphCheck: communication error (1)"); return (1); } cheklocval = 0; /* Assume everything is all right */ if ((grafptr->compglbload[0] + grafptr->compglbload[1] + grafptr->compglbload[2]) != grafptr->s.veloglbsum) { errorPrint ("vdgraphCheck: invalid global load sum"); cheklocval = 1; } if (grafptr->compglbloaddlt != (grafptr->compglbload[0] - grafptr->compglbload[1])) { errorPrint ("vdgraphCheck: invalid global balance"); cheklocval |= 2; } if ((grafptr->compglbsize[0] + grafptr->compglbsize[1] + grafptr->compglbsize[2]) != grafptr->s.vertglbnbr) { errorPrint ("vdgraphCheck: invalid global size sum"); cheklocval |= 4; } if ((grafptr->complocsize[0] + grafptr->complocsize[1] + grafptr->complocsize[2]) != grafptr->s.vertlocnbr) { errorPrint ("vdgraphCheck: invalid local size sum"); cheklocval |= 8; } if ((grafptr->complocsize[2] < 0) || (grafptr->complocsize[2] > grafptr->s.vertlocnbr)) { errorPrint ("vdgraphCheck: invalid number of local frontier vertices"); cheklocval |= 16; } for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertlocnnd; vertnum ++) { if (grafptr->partgsttax[vertnum] > 2) { errorPrint ("vdgraphCheck: invalid local part array"); cheklocval |= 32; break; } } for (fronnum = 0; fronnum < grafptr->complocsize[2]; fronnum ++) { Gnum vertnum; vertnum = grafptr->fronloctab[fronnum]; if ((vertnum < grafptr->s.baseval) || (vertnum >= grafptr->s.vertlocnnd)) { errorPrint ("vdgraphCheck: invalid vertex index in frontier array"); cheklocval |= 64; break; } if (grafptr->partgsttax[vertnum] != 2) { errorPrint ("vdgraphCheck: invalid vertex in frontier array"); cheklocval |= 64; break; } } grafdat = grafptr->s; /* Copy minimal distributed graph data */ if (dgraphGhst (&grafdat) != 0) { /* Create ghost edge array if did not exist */ errorPrint ("vdgraphCheck: cannot compute ghost edge array"); cheklocval |= 128; } if ((partgsttax = memAlloc (grafdat.vertgstnbr * sizeof (byte))) == NULL) { errorPrint ("vdgraphCheck: out of memory"); cheklocval |= 256; } reduloctab[0] = grafptr->compglbload[0]; reduloctab[1] = - grafptr->compglbload[0]; reduloctab[2] = grafptr->compglbload[1]; reduloctab[3] = - grafptr->compglbload[1]; reduloctab[4] = grafptr->compglbload[2]; reduloctab[5] = - grafptr->compglbload[2]; reduloctab[6] = grafptr->compglbsize[2]; reduloctab[7] = - grafptr->compglbsize[2]; reduloctab[8] = grafptr->levlnum; reduloctab[9] = - grafptr->levlnum; reduloctab[10] = cheklocval; if (MPI_Allreduce (reduloctab, reduglbtab, 11, GNUM_MPI, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphCheck: communication error (2)"); return (1); } if (reduglbtab[10] != 0) { /* Return from previous errors */ if (partgsttax != NULL) memFree (partgsttax); return (1); } if ((reduglbtab[1] != - reduglbtab[0]) || (reduglbtab[3] != - reduglbtab[2]) || (reduglbtab[5] != - reduglbtab[4]) || (reduglbtab[7] != - reduglbtab[6]) || (reduglbtab[9] != - reduglbtab[8])) { errorPrint ("vdgraphCheck: inconsistent global graph data"); return (1); } memCpy (partgsttax, grafptr->partgsttax + grafptr->s.baseval, grafptr->s.vertlocnbr); /* Copy local part data */ dgraphHaloSync (&grafdat, partgsttax, GRAPHPART_MPI); /* Spread yet unbased halo part data across neighboring processes */ partgsttax -= grafptr->s.baseval; complocload[0] = complocload[1] = complocload[2] = 0; complocsize[0] = complocsize[1] = complocsize[2] = 0; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertlocnnd; vertnum ++) { int partnum; /* Part of current vertex */ Gnum edgenum; /* Number of current edge */ partnum = (int) partgsttax[vertnum]; complocload[partnum] += (grafptr->s.veloloctax == NULL) ? 1 : grafptr->s.veloloctax[vertnum]; complocsize[partnum] ++; commcut[0] = commcut[1] = commcut[2] = 0; for (edgenum = grafptr->s.vertloctax[vertnum]; edgenum < grafptr->s.vendloctax[vertnum]; edgenum ++) { if (grafdat.edgegsttax[edgenum] < grafptr->s.vertlocnnd) /* Check only for local ends, as ghost part might be inaccurate */ commcut[partgsttax[grafdat.edgegsttax[edgenum]]] ++; } if (partnum != 2) { if (commcut[1 - partnum] != 0) { errorPrint ("vdgraphCheck: vertex should be in separator (%ld)", (long) vertnum); cheklocval = 1; break; } } } if (grafptr->s.edgegsttax != grafdat.edgegsttax) /* If ghost edge array was allocated here, free it manually */ memFree (grafdat.edgegsttax + grafptr->s.baseval); if (grafptr->s.procsidtab != grafdat.procsidtab) /* The same for procsidtab */ memFree (grafdat.procsidtab); memFree (partgsttax + grafptr->s.baseval); if ((cheklocval == 0) && ((complocsize[0] != grafptr->complocsize[0]) || (complocsize[1] != grafptr->complocsize[1]) || (complocsize[2] != grafptr->complocsize[2]))) { errorPrint ("vgraphCheck: invalid local part sizes"); cheklocval = 1; } reduloctab[0] = complocload[0]; reduloctab[1] = complocload[1]; reduloctab[2] = complocload[2]; reduloctab[3] = complocsize[0]; reduloctab[4] = complocsize[1]; reduloctab[5] = complocsize[2]; reduloctab[6] = cheklocval; if (MPI_Allreduce (reduloctab, reduglbtab, 7, GNUM_MPI, MPI_SUM, proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphCheck: communication error (3)"); return (1); } if (reduglbtab[6] != 0) /* Return from previous errors */ return (1); if ((grafptr->compglbload[0] != reduglbtab[0]) || (grafptr->compglbload[1] != reduglbtab[1]) || (grafptr->compglbload[2] != reduglbtab[2])) { errorPrint ("vdgraphCheck: invalid global part loads"); cheklocval = 1; } if ((grafptr->compglbsize[0] != reduglbtab[3]) || (grafptr->compglbsize[1] != reduglbtab[4]) || (grafptr->compglbsize[2] != reduglbtab[5])) { errorPrint ("vgraphCheck: invalid global part sizes"); cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphCheck: communication error (4)"); return (1); } return (chekglbval); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_gather_all.c000066400000000000000000000241551514310134000277050ustar00rootroot00000000000000/* Copyright 2007-2010,2018-2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_gather_all.c **/ /** **/ /** AUTHORS : Cedric CHEVALIER (v5.0) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the routine which **/ /** builds a centralized Vgraph on all **/ /** processes by gathering the pieces of a **/ /** distributed Vdgraph. **/ /** **/ /** DATES : # Version 5.0 : from : 29 apr 2006 **/ /** to : 01 mar 2008 **/ /** # Version 5.1 : from : 18 apr 2009 **/ /** to : 30 jul 2010 **/ /** # Version 6.0 : from : 07 jun 2018 **/ /** to : 07 jun 2018 **/ /** # Version 6.1 : from : 26 nov 2021 **/ /** to : 26 nov 2021 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 20 jan 2023 **/ /** **/ /** NOTES : # The definitions of MPI_Gather and **/ /** MPI_Gatherv indicate that elements in **/ /** the receive array should not be **/ /** written more than once. Great care **/ /** should be taken to enforce this rule, **/ /** especially when the number of **/ /** vertices in the centralized graph is **/ /** smaller than the number of **/ /** processes. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "comm.h" #include "graph.h" #include "vgraph.h" #include "dgraph.h" #include "vdgraph.h" /* This function gathers on all processes ** the pieces of a distributed Vdgraph to ** build a centralized Vgraph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int vdgraphGatherAll ( const Vdgraph * restrict const dgrfptr, /* Distributed graph */ Vgraph * restrict cgrfptr) /* Centralized graph */ { int * restrict froncnttab; /* Count array for gather operations */ int * restrict frondsptab; /* Displacement array for gather operations */ int fronlocnbr; /* Also int to enforce MPI standard */ #ifdef SCOTCH_DEBUG_VDGRAPH1 int cheklocval; int chekglbval; #endif /* SCOTCH_DEBUG_VDGRAPH1 */ int procnum; #ifdef SCOTCH_DEBUG_VDGRAPH1 cheklocval = 0; if (cgrfptr == NULL) /* Centralized graphs should be provided by all */ cheklocval = 1; if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphGatherAll: communication error (1)"); return (1); } if (chekglbval != 0) { errorPrint ("vdgraphGatherAll: centralized graphs should be provided on every process"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH1 */ if (dgraphGatherAll (&dgrfptr->s, &cgrfptr->s) != 0) { errorPrint ("vdgraphGatherAll: cannot build centralized graph"); return (1); } if (memAllocGroup ((void **) (void *) &cgrfptr->parttax, (size_t) (cgrfptr->s.vertnbr * sizeof (GraphPart)), &cgrfptr->frontab, (size_t) (cgrfptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vdgraphGatherAll: out of memory (1)"); #ifndef SCOTCH_DEBUG_VDGRAPH1 vgraphExit (cgrfptr); return (1); } #else /* SCOTCH_DEBUG_VDGRAPH1 */ cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphGatherAll: communication error (2)"); return (1); } if (chekglbval != 0) { vgraphExit (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH1 */ cgrfptr->s.flagval |= VGRAPHFREEPART; /* Free group leader on output */ cgrfptr->parttax -= cgrfptr->s.baseval; cgrfptr->dwgttab[0] = /* Parts should be evenly partitioned */ cgrfptr->dwgttab[1] = 1; cgrfptr->levlnum = dgrfptr->levlnum; /* Set level of separation graph as level of halo graph */ cgrfptr->contptr = dgrfptr->contptr; if (dgrfptr->partgsttax == NULL) { /* If distributed graph does not have a part array yet */ vgraphZero (cgrfptr); return (0); } if (memAllocGroup ((void **) (void *) /* Allocate tempory arrays to gather separator vertices */ &froncnttab, (size_t) (dgrfptr->s.procglbnbr * sizeof (int)), &frondsptab, (size_t) (dgrfptr->s.procglbnbr * sizeof (int)), NULL) == NULL) { errorPrint ("vdgraphGatherAll: out of memory (2)"); #ifndef SCOTCH_DEBUG_VDGRAPH1 vgraphExit (cgrfptr); return (1); } #else /* SCOTCH_DEBUG_VDGRAPH1 */ cheklocval = 1; } if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphGatherAll: communication error (3)"); return (1); } if (chekglbval != 0) { if (froncnttab != NULL) memFree (froncnttab); vgraphExit (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH1 */ if (commAllgatherv (dgrfptr->partgsttax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GRAPHPART_MPI, /* Get parttax of distributed graph */ cgrfptr->parttax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GRAPHPART_MPI, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphGatherAll: communication error (4)"); return (1); } fronlocnbr = (int) dgrfptr->complocsize[2]; if (MPI_Allgather (&fronlocnbr, 1, MPI_INT, /* Compute how separator vertices are distributed */ froncnttab, 1, MPI_INT, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphGatherAll: communication error (5)"); return (1); } frondsptab[0] = 0; /* Offset 0 for first process */ for (procnum = 1; procnum < dgrfptr->s.procglbnbr; procnum ++) /* Adjust index sub-arrays for all processes except the first one */ frondsptab[procnum] = frondsptab[procnum - 1] + froncnttab[procnum - 1]; if (MPI_Allgatherv (dgrfptr->fronloctab, fronlocnbr, GNUM_MPI, /* Gather separator vertices */ cgrfptr->frontab, froncnttab, frondsptab, GNUM_MPI, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphGatherAll: communication error (6)"); return (1); } for (procnum = 1; procnum < dgrfptr->s.procglbnbr; procnum ++) { /* Adjust index sub-arrays for all processes except the first one */ Gnum vertnum; Gnum vertnnd; for (vertnum = (Gnum) frondsptab[procnum], vertnnd = vertnum + (Gnum) froncnttab[procnum]; vertnum < vertnnd; vertnum ++) cgrfptr->frontab[vertnum] += (Gnum) dgrfptr->s.procdsptab[procnum] - dgrfptr->s.baseval; } memFree (froncnttab); /* Free group leader */ for (procnum = 0; procnum < dgrfptr->s.proclocnum; procnum ++) /* Desynchronize random generators across processes */ contextIntRandVal (dgrfptr->contptr, 2); intPerm (cgrfptr->frontab, dgrfptr->compglbsize[2], dgrfptr->contptr); /* Compute permutation of frontier array to have different solutions on every process */ cgrfptr->compload[0] = dgrfptr->compglbload[0]; /* Update other fields */ cgrfptr->compload[1] = dgrfptr->compglbload[1]; cgrfptr->compload[2] = dgrfptr->compglbload[2]; cgrfptr->comploaddlt = dgrfptr->compglbloaddlt; cgrfptr->compsize[0] = dgrfptr->compglbsize[0]; cgrfptr->compsize[1] = dgrfptr->compglbsize[1]; cgrfptr->fronnbr = dgrfptr->compglbsize[2]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vgraphCheck (cgrfptr) != 0) { errorPrint ("vdgraphGatherAll: internal error"); vgraphExit (cgrfptr); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_bd.c000066400000000000000000000241551514310134000300540ustar00rootroot00000000000000/* Copyright 2007,2008,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_bd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This module computes a separator of the **/ /** given distributed separator graph by **/ /** creating a band graph of given witdh **/ /** around the current separator, computing **/ /** an improved separator of the band **/ /** graph, and projecting back the obtained **/ /** separator in the original graph. **/ /** **/ /** DATES : # Version 5.0 : from : 04 mar 2006 **/ /** to : 07 nov 2007 **/ /** # Version 5.1 : from : 11 nov 2007 **/ /** to : 01 mar 2008 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "dgraph.h" #include "vdgraph.h" #include "vdgraph_separate_bd.h" #include "vdgraph_separate_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a distributed band graph ** of given width around the current separator and ** applies distributed separation routines to it. ** The distributed graph is not guaranteed to be ** balanced at at all. ** It returns: ** - 0 : if the distributed band graph could be computed. ** - !0 : on error. */ int vdgraphSeparateBd ( Vdgraph * const grafptr, /*+ Distributed graph +*/ const VdgraphSeparateBdParam * const paraptr) /*+ Method parameters +*/ { Vdgraph bandgrafdat; /* Vertex separator band graph structure */ Gnum bandvertancnnd; /* End of local vertex array, without anchors */ Gnum bandvertlocnbr1; /* Number of band graph vertices in part 1 except anchor 1 */ Gnum bandvertlocnum; Gnum bandvertlocancadj; /* Flag set when anchor(s) represent unexistent vertices */ Gnum bandvertglbancadj; /* Global adjustment of anchor vertices */ Gnum complocsizeadj0; Gnum complocsizeadj1; Gnum reduloctab[3]; Gnum reduglbtab[3]; Gnum * restrict edloloctax; /* Save value for edge loads while we pretend we don't have them */ Gnum fronlocnum; if (grafptr->compglbsize[2] == 0) /* If no frontier to base on */ return (0); /* Then do nothing */ if (paraptr->distmax < 1) /* If distance is 0 (or less) */ return (0); /* Then do nothing */ edloloctax = grafptr->s.edloloctax; /* Fake no edge loads on original graph as we do not need them */ grafptr->s.edloloctax = NULL; if (dgraphBand (&grafptr->s, grafptr->complocsize[2], grafptr->fronloctab, grafptr->partgsttax, grafptr->complocload[0] + grafptr->complocload[2], grafptr->complocload[1], paraptr->distmax, &bandgrafdat.s, &bandgrafdat.fronloctab, &bandgrafdat.partgsttax, NULL, &bandvertlocnbr1, &bandvertlocancadj, grafptr->contptr) != 0) { grafptr->s.edloloctax = edloloctax; errorPrint ("vdgraphSeparateBd: cannot create band graph"); return (1); } grafptr->s.edloloctax = edloloctax; /* Restore edge loads, if any */ bandgrafdat.complocsize[0] = bandgrafdat.s.vertlocnbr - (bandvertlocnbr1 + 1) - grafptr->complocsize[2]; /* Add 1 for anchor vertex 1 */ bandgrafdat.complocsize[1] = bandvertlocnbr1 + 1; /* Add 1 for anchor vertex 1 */ complocsizeadj0 = grafptr->complocsize[0] - bandgrafdat.complocsize[0]; complocsizeadj1 = grafptr->complocsize[1] - bandgrafdat.complocsize[1]; reduloctab[0] = bandgrafdat.complocsize[0]; reduloctab[1] = bandgrafdat.complocsize[1]; reduloctab[2] = bandvertlocancadj; /* Sum increases in size and load */ if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 3, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateBd: communication error (1)"); return (1); } bandvertglbancadj = reduglbtab[2]; bandgrafdat.compglbload[0] = grafptr->compglbload[0] + bandvertglbancadj; /* All loads are kept in band graph */ bandgrafdat.compglbload[1] = grafptr->compglbload[1] + bandvertglbancadj; bandgrafdat.compglbload[2] = grafptr->compglbload[2]; bandgrafdat.compglbloaddlt = grafptr->compglbloaddlt; /* Balance is not changed by anchor vertices */ bandgrafdat.complocload[0] = grafptr->complocload[0] + bandvertlocancadj; bandgrafdat.complocload[1] = grafptr->complocload[1] + bandvertlocancadj; bandgrafdat.complocload[2] = grafptr->complocload[2]; bandgrafdat.compglbsize[0] = reduglbtab[0]; bandgrafdat.compglbsize[1] = reduglbtab[1]; bandgrafdat.compglbsize[2] = grafptr->compglbsize[2]; /* All separator vertices are kept in band graph */ bandgrafdat.complocsize[2] = grafptr->complocsize[2]; bandgrafdat.levlnum = grafptr->levlnum; bandgrafdat.contptr = grafptr->contptr; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vdgraphCheck (&bandgrafdat) != 0) { errorPrint ("vdgraphSeparateBd: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ if (vdgraphSeparateSt (&bandgrafdat, paraptr->strat) != 0) { /* Separate distributed band graph */ errorPrint ("vdgraphSeparateBd: cannot separate band graph"); vdgraphExit (&bandgrafdat); return (1); } bandvertancnnd = bandgrafdat.s.vertlocnnd - 2; reduloctab[0] = ((bandgrafdat.partgsttax[bandvertancnnd] == 0) && /* Check if anchor vertices remain in their parts */ (bandgrafdat.partgsttax[bandvertancnnd + 1] == 1)) ? 0 : 1; reduloctab[1] = bandgrafdat.complocsize[0] + complocsizeadj0; reduloctab[2] = bandgrafdat.complocsize[1] + complocsizeadj1; if (MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 3, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateBd: communication error (2)"); return (1); } if (reduglbtab[0] != 0) { /* If at least one anchor changed of part */ vdgraphExit (&bandgrafdat); /* Then keep original partition */ return (0); } grafptr->compglbload[0] = bandgrafdat.compglbload[0] - bandvertglbancadj; grafptr->compglbload[1] = bandgrafdat.compglbload[1] - bandvertglbancadj; grafptr->compglbload[2] = bandgrafdat.compglbload[2]; grafptr->compglbloaddlt = bandgrafdat.compglbloaddlt; grafptr->compglbsize[0] = reduglbtab[1]; grafptr->compglbsize[1] = reduglbtab[2]; grafptr->compglbsize[2] = bandgrafdat.compglbsize[2]; grafptr->complocload[0] = bandgrafdat.complocload[0] - bandvertlocancadj; grafptr->complocload[1] = bandgrafdat.complocload[1] - bandvertlocancadj; grafptr->complocload[2] = bandgrafdat.complocload[2]; grafptr->complocsize[0] = reduloctab[1]; grafptr->complocsize[1] = reduloctab[2]; grafptr->complocsize[2] = bandgrafdat.complocsize[2]; for (fronlocnum = 0; fronlocnum < bandgrafdat.complocsize[2]; fronlocnum ++) /* Project back separator */ grafptr->fronloctab[fronlocnum] = bandgrafdat.s.vnumloctax[bandgrafdat.fronloctab[fronlocnum]]; for (bandvertlocnum = bandgrafdat.s.baseval; bandvertlocnum < bandvertancnnd; bandvertlocnum ++) /* For all vertices except anchors */ grafptr->partgsttax[bandgrafdat.s.vnumloctax[bandvertlocnum]] = bandgrafdat.partgsttax[bandvertlocnum]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vdgraphCheck (grafptr) != 0) { errorPrint ("vdgraphSeparateBd: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ vdgraphExit (&bandgrafdat); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_bd.h000066400000000000000000000061531514310134000300570ustar00rootroot00000000000000/* Copyright 2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_bd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the band vertex separation **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.0 : from : 04 mar 2006 **/ /** to : 04 mar 2006 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VdgraphSeparateBdParam_ { INT distmax; /*+ Width of band surrounding the separator +*/ Strat * strat; /*+ Separation strategy used on the band garph +*/ } VdgraphSeparateBdParam; /* ** The function prototypes. */ int vdgraphSeparateBd (Vdgraph * const, const VdgraphSeparateBdParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_df.c000066400000000000000000000424501514310134000300560ustar00rootroot00000000000000/* Copyright 2007,2008,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_df.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a separator of the **/ /** given distributed separator graph by **/ /** applying a diffusion method to what is **/ /** assumed to be a distributed band graph. **/ /** **/ /** DATES : # Version 5.1 : from : 05 nov 2007 **/ /** to : 09 nov 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "vdgraph.h" #include "vdgraph_separate_df.h" /* ** The static variables. */ static const Gnum vdgraphseparatedfloadone = 1; /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes a distributed separator ** by diffusion across what is assumed to be a ** distributed band graph. ** It returns: ** - 0 : if the separator could be computed. ** - !0 : on error. */ int vdgraphSeparateDf ( Vdgraph * const grafptr, /*+ Distributed graph +*/ const VdgraphSeparateDfParam * const paraptr) /*+ Method parameters +*/ { float * restrict ielsloctax; /* Inverse of degree array */ float * restrict difogsttax; /* Old diffusion value array */ float * restrict difngsttax; /* New diffusion value array */ const Gnum * restrict edgegsttax; Gnum fronlocnum; float compglbavg; Gnum complocload1; Gnum complocload2; Gnum complocsize1; const Gnum * restrict velolocbax; Gnum velolocmsk; float vanclocval[2]; float valolocval[2]; /* Fraction of load to remove from anchor vertices at each step */ Gnum vanclocnnd; Gnum vertlocnum; Gnum reduloctab[4]; /* Local degree of both anchor vertices, minus edges to other anchors, and their loads */ Gnum reduglbtab[4]; Gnum passnum; float cdifval; float cremval; Gnum psepval; /* Separator part */ int ovflval; /* Overflow flag value */ if (dgraphGhst (&grafptr->s) != 0) { /* Compute ghost edge array if not already present */ errorPrint ("vdgraphSeparateDf: cannot compute ghost edge array"); return (1); } reduloctab[0] = grafptr->s.vendloctax[grafptr->s.vertlocnnd - 2] - grafptr->s.vertloctax[grafptr->s.vertlocnnd - 2] - (grafptr->s.procglbnbr - 1); reduloctab[1] = grafptr->s.vendloctax[grafptr->s.vertlocnnd - 1] - grafptr->s.vertloctax[grafptr->s.vertlocnnd - 1] - (grafptr->s.procglbnbr - 1); if (grafptr->s.veloloctax == NULL) reduloctab[2] = reduloctab[3] = 1; else { reduloctab[2] = grafptr->s.veloloctax[grafptr->s.vertlocnnd - 2]; reduloctab[3] = grafptr->s.veloloctax[grafptr->s.vertlocnnd - 1]; } if (memAllocGroup ((void **) (void *) &ielsloctax, (size_t) (grafptr->s.vertlocnbr * sizeof (float)), &difogsttax, (size_t) (grafptr->s.vertgstnbr * sizeof (float)), &difngsttax, (size_t) (grafptr->s.vertgstnbr * sizeof (float)), NULL) == NULL) { errorPrint ("vdgraphSeparateDf: out of memory"); reduloctab[0] = -1; } else { ielsloctax -= grafptr->s.baseval; difogsttax -= grafptr->s.baseval; difngsttax -= grafptr->s.baseval; } if (MPI_Allreduce (reduloctab, reduglbtab, 4, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateDf: communication error (1)"); return (1); } if (reduglbtab[0] < 0) { /* If memory error */ if (ielsloctax != NULL) memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ } if ((reduglbtab[0] == 0) || /* If graph is too small to have any usable anchors, leave partition as is */ (reduglbtab[1] == 0)) { memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ return (0); } psepval = paraptr->partval & 1; /* Coerce part in the {0,1} range */ compglbavg = (float) (grafptr->compglbload[0] + grafptr->compglbload[1]) * 0.5F; vanclocval[0] = (float) grafptr->compglbload[0]; if (vanclocval[0] < (compglbavg * (1.0F - (float) paraptr->deltval))) /* Enforce balance constraint */ vanclocval[0] = compglbavg * (1.0F - (float) paraptr->deltval); else if (vanclocval[0] > (compglbavg * (1.0F + (float) paraptr->deltval))) vanclocval[0] = compglbavg * (1.0F + (float) paraptr->deltval); vanclocval[1] = (float) (grafptr->compglbload[0] + grafptr->compglbload[1]) - vanclocval[0]; valolocval[0] = (float) reduglbtab[2]; /* Compute values to remove from anchor vertices */ valolocval[1] = (float) reduglbtab[3]; if (vanclocval[0] < valolocval[0]) /* If anchor in part 0 too large to reduce imbalance */ psepval = 1; /* Separator must be taken from part 1 to stick to anchor 0 */ else if (vanclocval[1] < valolocval[1]) /* Else if anchor in part 1 too large to reduce imbalance */ psepval = 0; /* It is from part 0 that separator must be extracted */ vanclocval[psepval] += (float) grafptr->compglbload[2]; /* Aggregate separator to proper part */ vanclocval[0] = - vanclocval[0]; /* Part 0 holds negative values */ vanclocval[1] -= VDGRAPHSEPARATEDFEPSILON; /* Slightly tilt value to add to part 1 */ for (vertlocnum = grafptr->s.baseval, vanclocnnd = grafptr->s.vertlocnnd - 2; /* Do not account for anchor vertices in diffusion computations */ vertlocnum < vanclocnnd; vertlocnum ++) { #ifdef SCOTCH_DEBUG_VDGRAPH2 if ((grafptr->s.vendloctax[vertlocnum] - grafptr->s.vertloctax[vertlocnum]) == 0) { errorPrint ("vdgraphSeparateDf: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ ielsloctax[vertlocnum] = 1.0F / (float) (grafptr->s.vendloctax[vertlocnum] - grafptr->s.vertloctax[vertlocnum]); difogsttax[vertlocnum] = 0.0F; } ielsloctax[vanclocnnd] = 1.0F / (float) reduglbtab[0]; ielsloctax[vanclocnnd + 1] = 1.0F / (float) reduglbtab[1]; difogsttax[vanclocnnd] = vanclocval[0] * ielsloctax[vanclocnnd]; /* Load anchor vertices for first pass */ difogsttax[vanclocnnd + 1] = vanclocval[1] * ielsloctax[vanclocnnd + 1]; difngsttax[vanclocnnd] = /* In case of isolated anchors, do not risk overflow because of NaN */ difngsttax[vanclocnnd + 1] = 0.0F; if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (difogsttax + grafptr->s.baseval), MPI_FLOAT) != 0) { /* Perform initial diffusion (and build communication structures) */ errorPrint ("vdgraphSeparateDf: cannot propagate diffusion data (1)"); memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ return (1); } ovflval = 0; cdifval = (float) paraptr->cdifval; cremval = (float) paraptr->cremval; edgegsttax = grafptr->s.edgegsttax; for (passnum = 0; ; ) { /* For all passes */ if (ovflval == 0) { /* If no overflow occured */ Gnum vertlocnum; float * diftgsttax; /* Temporary swap value */ float veloval; veloval = 1.0F; /* Assume no vertex loads */ for (vertlocnum = grafptr->s.baseval; vertlocnum < vanclocnnd; vertlocnum ++) { Gnum edgelocnum; Gnum edgelocnnd; float diffval; diffval = 0.0F; for (edgelocnum = grafptr->s.vertloctax[vertlocnum], edgelocnnd = grafptr->s.vendloctax[vertlocnum]; edgelocnum < edgelocnnd; edgelocnum ++) diffval += difogsttax[edgegsttax[edgelocnum]]; diffval *= cdifval; diffval += (difogsttax[vertlocnum] * cremval) / ielsloctax[vertlocnum]; if (grafptr->s.veloloctax != NULL) veloval = (float) grafptr->s.veloloctax[vertlocnum]; if (diffval >= 0.0F) { diffval = (diffval - veloval) * ielsloctax[vertlocnum]; if (diffval <= 0.0F) diffval = +VDGRAPHSEPARATEDFEPSILON; } else { diffval = (diffval + veloval) * ielsloctax[vertlocnum]; if (diffval >= 0.0F) diffval = -VDGRAPHSEPARATEDFEPSILON; } if (isnan (diffval)) { /* If overflow occured */ ovflval = 1; /* We are in state of overflow */ goto abort; /* Exit this loop without swapping arrays */ } difngsttax[vertlocnum] = diffval; } for ( ; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { /* For the two local anchor vertices */ Gnum edgelocnum; Gnum edgelocnnd; float diffval; diffval = 0.0F; edgelocnum = grafptr->s.vertloctax[vertlocnum] + grafptr->s.procglbnbr - 1; /* Skip links to other anchors */ edgelocnnd = grafptr->s.vendloctax[vertlocnum]; if (edgelocnum == edgelocnnd) /* If isolated anchor */ continue; /* Barrel is empty */ for ( ; edgelocnum < edgelocnnd; edgelocnum ++) diffval += difogsttax[edgegsttax[edgelocnum]]; diffval *= cdifval; diffval += vanclocval[vertlocnum - vanclocnnd] + (difogsttax[vertlocnum] * cremval) / ielsloctax[vertlocnum]; if (diffval >= 0.0F) { diffval = (diffval - valolocval[vertlocnum - vanclocnnd]) * ielsloctax[vertlocnum]; if (diffval <= 0.0F) diffval = +VDGRAPHSEPARATEDFEPSILON; } else { diffval = (diffval + valolocval[vertlocnum - vanclocnnd]) * ielsloctax[vertlocnum]; if (diffval >= 0.0F) diffval = -VDGRAPHSEPARATEDFEPSILON; } if (isnan (diffval)) { /* If overflow occured */ ovflval = 1; /* We are in state of overflow */ goto abort; /* Exit this loop without swapping arrays */ } difngsttax[vertlocnum] = diffval; } diftgsttax = (float *) difngsttax; /* Swap old and new diffusion arrays */ difngsttax = (float *) difogsttax; /* Casts to prevent IBM compiler from yelling */ difogsttax = (float *) diftgsttax; } abort : /* If overflow occured, resume here */ if (++ passnum >= paraptr->passnbr) /* If maximum number of passes reached */ break; /* Exit main loop */ if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (difogsttax + grafptr->s.baseval), MPI_FLOAT) != 0) { errorPrint ("vdgraphSeparateDf: cannot propagate diffusion data (2)"); memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ return (1); } } for (vertlocnum = grafptr->s.baseval; vertlocnum < vanclocnnd; vertlocnum ++) /* Pre-set parts without separator */ grafptr->partgsttax[vertlocnum] = (difogsttax[vertlocnum] <= 0.0F) ? 0 : 1; grafptr->partgsttax[vanclocnnd] = 0; /* Set up parts in case anchors are isolated */ grafptr->partgsttax[vanclocnnd + 1] = 1; if (grafptr->s.veloloctax != NULL) { velolocbax = grafptr->s.veloloctax; velolocmsk = ~((Gnum) 0); } else { velolocbax = &vdgraphseparatedfloadone; velolocmsk = 0; } memFree (ielsloctax + grafptr->s.baseval); /* Free group leader */ if (dgraphHaloSync (&grafptr->s, (byte *) (void *) (grafptr->partgsttax + grafptr->s.baseval), GRAPHPART_MPI) != 0) { errorPrint ("vdgraphSeparateDf: cannot propagate part data"); return (1); } for (vertlocnum = grafptr->s.baseval, fronlocnum = complocsize1 = complocload1 = complocload2 = 0; vertlocnum < grafptr->s.vertlocnnd; vertlocnum ++) { Gnum partval; GraphPart partend; Gnum veloval; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (grafptr->partgsttax[vertlocnum] > 1) { errorPrint ("vdgraphSeparateDf: internal error (2)"); break; /* Do not break upcoming collective communications */ } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ partend = grafptr->partgsttax[vertlocnum] ^ 1; partval = (Gnum) grafptr->partgsttax[vertlocnum]; veloval = velolocbax[vertlocnum & velolocmsk]; complocsize1 += partval; /* Here, part is 0 or 1 only */ complocload1 += partval * veloval; if (partval == psepval) { /* Only vertices of aggregated part can be in separator */ Gnum edgelocnum; for (edgelocnum = grafptr->s.vertloctax[vertlocnum]; edgelocnum < grafptr->s.vendloctax[vertlocnum]; edgelocnum ++) { #ifdef SCOTCH_DEBUG_VDGRAPH2 if (grafptr->partgsttax[edgegsttax[edgelocnum]] > 2) { errorPrint ("vdgraphSeparateDf: internal error (3)"); vertlocnum = grafptr->s.vertlocnnd; break; /* Do not break upcoming collective communications */ } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ if (grafptr->partgsttax[edgegsttax[edgelocnum]] == partend) { /* If end vertex is in other part (and not in separator) */ grafptr->fronloctab[fronlocnum ++] = vertlocnum; /* Record it as member of the separator */ grafptr->partgsttax[vertlocnum] = 2; complocload2 += veloval; break; /* No need to go further */ } } } } grafptr->complocload[0] = grafptr->s.velolocsum - complocload1; grafptr->complocload[1] = complocload1; grafptr->complocload[2] = complocload2; grafptr->complocload[psepval] -= complocload2; grafptr->complocsize[0] = grafptr->s.vertlocnbr - complocsize1; grafptr->complocsize[1] = complocsize1; grafptr->complocsize[psepval] -= fronlocnum; grafptr->complocsize[2] = fronlocnum; if (MPI_Allreduce (&grafptr->complocload[0], &grafptr->compglbload[0], 6, GNUM_MPI, MPI_SUM, grafptr->s.proccomm) != MPI_SUCCESS) { /* TRICK: all arrays */ errorPrint ("vdgraphSeparateDf: communication error (2)"); return (1); } grafptr->compglbloaddlt = grafptr->compglbload[0] - grafptr->compglbload[1]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vdgraphCheck (grafptr) != 0) { errorPrint ("vdgraphSeparateDf: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_df.h000066400000000000000000000071331514310134000300620ustar00rootroot00000000000000/* Copyright 2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_df.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the parallel diffusion separation **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.1 : from : 05 nov 2007 **/ /** to : 07 nov 2007 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Small non-zero float value. +*/ #define VDGRAPHSEPARATEDFEPSILON (1.0F / (float) (GNUMMAX)) /*+ Sign masking operator. +*/ #define VDGRAPHSEPARATEDFGNUMSGNMSK(i) ((Gnum) 0 - (((Gunum) (i)) >> (sizeof (Gnum) * 8 - 1))) /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VdgraphSeparateDfParam_ { INT partval; /*+ Part to aggregate to separator +*/ INT passnbr; /*+ Number of passes to do +*/ double cdifval; /*+ Coefficient of diffused load +*/ double cremval; /*+ Coefficient of remaining load +*/ double deltval; /*+ Maximum imbalance ratio +*/ } VdgraphSeparateDfParam; /* ** The function prototypes. */ int vdgraphSeparateDf (Vdgraph * const, const VdgraphSeparateDfParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_ml.c000066400000000000000000001052341514310134000300750ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2014,2019,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_ml.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This module contains the multi-level **/ /** separation strategy. **/ /** **/ /** DATES : # Version 5.0 : from : 07 mar 2006 **/ /** to : 01 mar 2008 **/ /** # Version 5.1 : from : 14 dec 2008 **/ /** to : 26 aug 2010 **/ /** # Version 6.0 : from : 11 sep 2012 **/ /** to : 28 sep 2014 **/ /** # Version 7.0 : from : 27 aug 2019 **/ /** to : 14 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VDGRAPH_SEPARATE_ML #include "module.h" #include "common.h" #include "parser.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "vdgraph.h" #include "vdgraph_separate_ml.h" #include "vdgraph_separate_st.h" /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser graph from the ** Dgraph that is given on input. The coarser ** Dgraphs differ at this stage from classical ** active Dgraphs as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse Dgraph has been built. ** - 1 : if threshold achieved or on error. */ static int vdgraphSeparateMlCoarsen ( Vdgraph * restrict const finegrafptr, /*+ Finer graph +*/ Vdgraph * restrict const coargrafptr, /*+ Coarser graph to build +*/ DgraphCoarsenMulti * restrict * const coarmultptr, /*+ Pointer to based multinode table to build +*/ const VdgraphSeparateMlParam * const paraptr) /*+ Method parameters +*/ { int foldval; switch (paraptr->foldval) { case 0 : foldval = DGRAPHCOARSENNONE; break; case 1 : foldval = DGRAPHCOARSENFOLD; break; case 2 : foldval = DGRAPHCOARSENFOLDDUP; break; default : errorPrint ("vdgraphSeparateMlCoarsen: invalid parameter"); return (1); } if ((finegrafptr->s.vertglbnbr / finegrafptr->s.procglbnbr) > paraptr->foldmax) /* If no need to fold */ foldval = DGRAPHCOARSENNONE; *coarmultptr = NULL; /* Let the routine create the multinode array */ dgraphInit (&coargrafptr->s, finegrafptr->s.proccomm); /* Re-use fine graph communicator */ if (dgraphCoarsen (&finegrafptr->s, &coargrafptr->s, coarmultptr, paraptr->passnbr, paraptr->coarnbr, paraptr->coarrat, foldval, finegrafptr->contptr) != 0) return (1); /* Return if coarsening failed */ coargrafptr->fronloctab = NULL; coargrafptr->partgsttax = NULL; /* Do not allocate partition data yet */ if (coargrafptr->s.procglbnbr == 0) { /* Not a owner graph */ coargrafptr->s.vertlocnbr = 0; /* Set it to zero for vrcvdattab allocation */ return (0); } coargrafptr->levlnum = finegrafptr->levlnum + 1; /* Graph level is coarsening level */ coargrafptr->contptr = finegrafptr->contptr; if (coargrafptr->s.vertlocnbr <= finegrafptr->s.vertlocnbr) /* If (folded) coarser graph is smaller */ coargrafptr->fronloctab = finegrafptr->fronloctab; /* Re-use frontier array for coarser graph */ else { /* Else allocate new private frontier array */ if ((coargrafptr->fronloctab = memAlloc (coargrafptr->s.vertlocnbr * sizeof (Gnum))) == NULL) { errorPrint ("vdgraphSeparateMlCoarsen: out of memory"); dgraphExit (&coargrafptr->s); /* Only free Dgraph since fronloctab not allocated */ memFree (*coarmultptr); /* Free un-based array */ return (1); } } *coarmultptr -= coargrafptr->s.baseval; /* Base the multinode array */ return (0); } /* This routine is the reduction-loc operator which ** returns in inout[2] the rank of the process which ** holds the best partition. ** It returns: ** - void : in all cases. */ static void vdgraphSeparateMlOpBest ( const Gnum * const in, /* First operand */ Gnum * const inout, /* Second and output operand */ const int * const len, /* Number of instances ; should be 1, not used */ const MPI_Datatype * const typedat) /* MPI datatype ; not used */ { inout[5] |= in[5]; /* Memory error flag */ if (inout[0] == 1) { /* Handle cases when at least one of them is erroneous */ if (in[0] == 1) { if (inout[1] > in[1]) { /* To enforce commutativity, always keep smallest process number */ inout[1] = in[1]; inout[2] = in[2]; } return; } inout[0] = in[0]; /* Validity flag */ inout[1] = in[1]; /* Lead process rank */ inout[2] = in[2]; /* Lead process color */ inout[3] = in[3]; /* Separator size */ inout[4] = in[4]; /* Parts imbalance */ return; } else if (in[0] == 1) return; if ((in[3] < inout[3]) || /* Select best partition */ ((in[3] == inout[3]) && ((in[4] < inout[4]) || ((in[4] == inout[4]) && (in[1] < inout[1]))))) { inout[1] = in[1]; inout[2] = in[2]; inout[3] = in[3]; inout[4] = in[4]; } } /* This routine packs the neighbor data to be sent ** to one of the neighbors by part number. ** It returns: ** - void : in all cases. */ static void vdgraphSeparateMlPack ( Gnum * restrict const dataloctab, const Gnum datalocidx, Gnum * restrict ssndcnttab) { Gnum finevertsndnbr0; Gnum finevertsndnbr1; Gnum finevertsndnbr2; Gnum datalocnbr; finevertsndnbr0 = ssndcnttab[0]; finevertsndnbr1 = ssndcnttab[1]; finevertsndnbr2 = ssndcnttab[2]; datalocnbr = finevertsndnbr0 + finevertsndnbr1 + finevertsndnbr2; if (datalocnbr <= datalocidx) { /* If arrays do not overlap */ Gnum * restrict datadsttab = dataloctab + datalocidx; const Gnum * restrict const datasrctab = dataloctab + datalocidx * 2; Gnum datasrcnum; Gnum partidxtab[3]; partidxtab[0] = 0; partidxtab[1] = finevertsndnbr0; partidxtab[2] = finevertsndnbr0 + finevertsndnbr1; for (datasrcnum = 0, datalocnbr <<= 1; datasrcnum < datalocnbr; ) { /* Work on pairs of Gnum's */ Gnum finevertglbnum; Gnum finepartval; finevertglbnum = datasrctab[datasrcnum ++]; finepartval = datasrctab[datasrcnum ++]; datadsttab[partidxtab[finepartval] ++] = finevertglbnum; } } else { /* Arrays do overlap */ Gnum datadstnum; Gnum datasrcnum; Gnum datasrcnnd; Gnum datasrcnxt; datadstnum = datalocidx; for (datasrcnum = datalocidx << 1, datasrcnnd = datasrcnum + (finevertsndnbr0 << 1), datasrcnxt = datasrcnnd; /* Work on pairs of Gnum's */ datasrcnum < datasrcnnd; ) { Gnum finevertglbnum; Gnum finepartval; finevertglbnum = dataloctab[datasrcnum ++]; finepartval = dataloctab[datasrcnum ++]; if (finepartval != 0) { Gnum finevertglbtmp; #ifdef SCOTCH_DEBUG_VDGRAPH2 if ((finepartval < 1) || (finepartval > 2)) { errorPrint ("vdgraphSeparateMlPack: internal error (1)"); return; } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ while (dataloctab[datasrcnxt + 1] != 0) { /* Find first vertex of part zero in next block */ datasrcnxt += 2; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (datasrcnxt >= ((datalocidx + datalocnbr) << 1)) { errorPrint ("vdgraphSeparateMlPack: internal error (2)"); return; } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } finevertglbtmp = dataloctab[datasrcnxt]; dataloctab[datasrcnxt ++] = finevertglbnum; dataloctab[datasrcnxt ++] = finepartval; finevertglbnum = finevertglbtmp; } dataloctab[datadstnum ++] = finevertglbnum; } for (datasrcnnd += finevertsndnbr1 << 1, datasrcnxt = datasrcnnd; /* Work on pairs of Gnum's */ datasrcnum < datasrcnnd; ) { Gnum finevertglbnum; Gnum finepartval; finevertglbnum = dataloctab[datasrcnum ++]; finepartval = dataloctab[datasrcnum ++]; if (finepartval != 1) { Gnum finevertglbtmp; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartval != 2) { errorPrint ("vdgraphSeparateMlPack: internal error (3)"); return; } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ while (dataloctab[datasrcnxt + 1] != 1) { /* Find first vertex of part one in next block */ datasrcnxt += 2; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (datasrcnxt >= ((datalocidx + datalocnbr) << 1)) { errorPrint ("vdgraphSeparateMlPack: internal error (4)"); return; } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } finevertglbtmp = dataloctab[datasrcnxt]; dataloctab[datasrcnxt ++] = finevertglbnum; dataloctab[datasrcnxt ++] = finepartval; finevertglbnum = finevertglbtmp; } dataloctab[datadstnum ++] = finevertglbnum; } for (datasrcnnd += finevertsndnbr2 << 1; datasrcnum < datasrcnnd; ) { /* Work on pairs of Gnum's */ Gnum finevertglbnum; finevertglbnum = dataloctab[datasrcnum]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (dataloctab[datasrcnum + 1] != 2) { errorPrint ("vdgraphSeparateMlPack: internal error (5)"); return; } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ datasrcnum += 2; dataloctab[datadstnum ++] = finevertglbnum; } } } /* This routine propagates the separation of the ** coarser graph back to the finer graph, according ** to the multinode table of collapsed vertices. ** After the separation is propagated, it finishes ** to compute the parameters of the finer graph that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse graph data has been propagated to the fine graph. ** - !0 : on error. */ static int vdgraphSeparateMlUncoarsen ( Vdgraph * restrict finegrafptr, /*+ Finer graph +*/ const Vdgraph * restrict const coargrafptr, /*+ Coarser graph +*/ const DgraphCoarsenMulti * restrict const coarmulttax) /*+ Based multinode array +*/ { Gnum coarvertnum; Gnum finevertlocadj; Gnum finecomplocload0; Gnum finecomplocload2; Gnum finecomplocsize1; Gnum finecomplocsize2; Gnum * restrict srcvdattab; Gnum * ssnddattab; /* TRICK: holds vrcvcnttab, vsnddsptab, vrcvdsptab */ Gnum * vrcvdattab; /* TRICK: overlaps with vsnddattab before packing [norestrict:async] */ Gnum * vsnddattab; /* [norestrict:async] */ int * vrcvcnttab; int * vsndcnttab; int * vrcvdsptab; int * vsnddsptab; int vrcvdspnum; int vsnddspnum; Gnum vrcvdatnum; MPI_Datatype besttypedat; /* Data type for finding best bipartition */ MPI_Op bestoperdat; /* Handle of MPI operator for finding best bipartition */ Gnum reduloctab[6]; Gnum reduglbtab[6]; int procnum; const Gnum * restrict fineveloglbtax; GraphPart * restrict finepartglbtax; Gnum * restrict const finefronloctab = finegrafptr->fronloctab; reduloctab[5] = 0; /* Assume everything is fine */ if (finegrafptr->partgsttax == NULL) { /* If partition array not yet allocated */ if (dgraphGhst (&finegrafptr->s) != 0) { /* Create ghost edge array and compute vertgstnbr */ errorPrint ("vdgraphSeparateMlUncoarsen: cannot compute ghost edge array"); reduloctab[5] = 1; /* Allocated data will be freed along with graph structure */ } else if ((finegrafptr->partgsttax = (GraphPart *) memAlloc (finegrafptr->s.vertgstnbr * sizeof (GraphPart))) == NULL) { errorPrint ("vdgraphSeparateMlUncoarsen: out of memory (1)"); reduloctab[5] = 1; /* Allocated data will be freed along with graph structure */ } else finegrafptr->partgsttax -= finegrafptr->s.baseval; } if (coargrafptr == NULL) { /* If coarser graph not provided */ #ifdef SCOTCH_DEBUG_BDGRAPH1 /* Communication cannot be overlapped by a useful one */ if (MPI_Allreduce (&reduloctab[5], &reduglbtab[5], 1, GNUM_MPI, MPI_SUM, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateMlUncoarsen: communication error (1)"); return (1); } #else /* SCOTCH_DEBUG_BDGRAPH1 */ reduglbtab[5] = reduloctab[5]; #endif /* SCOTCH_DEBUG_BDGRAPH1 */ if (reduglbtab[5] != 0) return (1); vdgraphZero (finegrafptr); /* Assign all vertices to part 0 */ return (0); } if (memAllocGroup ((void **) (void *) &vsndcnttab, (size_t) (finegrafptr->s.procglbnbr * sizeof (int)), /* TRICK: srcvdattab after ssnddattab, after vsndcnttab */ &ssnddattab, (size_t) (finegrafptr->s.procglbnbr * 3 * sizeof (Gnum)), /* TRICK: ssnddattab is vrcvcnttab, vsnddsptab, vrcvdsptab */ &srcvdattab, (size_t) (finegrafptr->s.procglbnbr * 3 * sizeof (Gnum)), &vsnddattab, (size_t) (coargrafptr->s.vertlocnbr * 2 * sizeof (Gnum)), /* TRICK: vsnddattab overlaps with vrcvdattab */ &vrcvdattab, (size_t) (MAX ((coargrafptr->s.vertlocnbr * 2), finegrafptr->s.vertlocnbr) * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vdgraphSeparateMlUncoarsen: out of memory (2)"); reduloctab[5] = 1; } if (coargrafptr->s.procglbnbr <= 0) { /* If unused folded coargrafptr */ reduloctab[0] = 1; /* Set it as invalid */ reduloctab[1] = 0; /* Useless rank */ reduloctab[2] = 1; /* Color is not the one of folded */ reduloctab[3] = /* Prevent Valgrind from yelling */ reduloctab[4] = 0; } else { reduloctab[0] = ((coargrafptr->compglbsize[0] == 0) || /* Empty separated parts are deemed invalid */ (coargrafptr->compglbsize[1] == 0)) ? 1 : 0; reduloctab[1] = (Gnum) finegrafptr->s.proclocnum; /* Set rank according to global order on both sub-communicators */ reduloctab[2] = (Gnum) coargrafptr->s.pkeyglbval; /* Set color key according to coarse graph sub-communicator */ reduloctab[3] = coargrafptr->compglbsize[2]; reduloctab[4] = coargrafptr->compglbloaddlt; } if ((MPI_Type_contiguous (6, GNUM_MPI, &besttypedat) != MPI_SUCCESS) || (MPI_Type_commit (&besttypedat) != MPI_SUCCESS) || (MPI_Op_create ((MPI_User_function *) vdgraphSeparateMlOpBest, 1, &bestoperdat) != MPI_SUCCESS)) { errorPrint ("vdgraphSeparateMlUncoarsen: communication error (2)"); return (1); } if (MPI_Allreduce (reduloctab, reduglbtab, 1, besttypedat, bestoperdat, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateMlUncoarsen: communication error (3)"); return (1); } if ((MPI_Op_free (&bestoperdat) != MPI_SUCCESS) || (MPI_Type_free (&besttypedat) != MPI_SUCCESS)) { errorPrint ("vdgraphSeparateMlUncoarsen: communication error (4)"); return (1); } if (reduglbtab[5] != 0) { /* If memory error, return */ if (vsndcnttab != NULL) /* Partgsttax will be freed at the above level */ memFree (vsndcnttab); return (1); } if (reduglbtab[0] == 1) { /* If all possible partitions are invalid */ #ifdef SCOTCH_DEBUG_BDGRAPH2 errorPrintW ("vdgraphSeparateMlUncoarsen: no valid partition"); #endif /* SCOTCH_DEBUG_BDGRAPH2 */ return (1); /* All invalid partitions will lead to low method be applied at upper level */ } finevertlocadj = finegrafptr->s.procvrttab[finegrafptr->s.proclocnum] - finegrafptr->s.baseval; fineveloglbtax = (finegrafptr->s.veloloctax != NULL) ? (finegrafptr->s.veloloctax - finevertlocadj) : NULL; /* Array can be indexed with global vertex numbers */ finepartglbtax = finegrafptr->partgsttax - finevertlocadj; finegrafptr->complocload[0] = finegrafptr->complocload[1] = finegrafptr->complocload[2] = finegrafptr->complocsize[0] = finegrafptr->complocsize[1] = finegrafptr->complocsize[2] = 0; #ifdef SCOTCH_DEBUG_VDGRAPH2 memSet (finegrafptr->partgsttax + finegrafptr->s.baseval, 3, finegrafptr->s.vertgstnbr * sizeof (GraphPart)); /* Mark all vertices as unvisited */ #endif /* SCOTCH_DEBUG_VDGRAPH2 */ memSet (vsndcnttab, 0, ((byte *) srcvdattab) - ((byte *) vsndcnttab)); /* TRICK: Assume process has nothing to send in vsndcnttab and ssnddattab */ if (reduglbtab[2] == (Gnum) coargrafptr->s.pkeyglbval) { /* If we belong to the group of the lead process, we must browse and send local data */ Gnum fineveloval; Gnum finevertsndnbr1; Gnum finevertsndnbr2; Gnum finevertglbmin; Gnum finevertglbmax; Gnum finevertglbnnd; Gnum vsnddatnbr; Gnum vsnddatnum; Gnum vsnddattmp; const GraphPart * restrict const coarpartgsttax = coargrafptr->partgsttax; fineveloval = 1; /* Assume no vertex loads */ finevertglbmin = finegrafptr->s.procvrttab[finegrafptr->s.proclocnum]; finevertglbmax = finegrafptr->s.procvrttab[finegrafptr->s.proclocnum + 1]; finecomplocload0 = finecomplocload2 = finecomplocsize1 = finecomplocsize2 = 0; for (coarvertnum = coargrafptr->s.baseval, vsnddatnbr = 0; coarvertnum < coargrafptr->s.vertlocnnd; coarvertnum ++) { Gnum finevertglbnum; GraphPart coarpartval; coarpartval = coarpartgsttax[coarvertnum]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if ((coarpartval < 0) || (coarpartval > 2)) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finevertglbnum = coarmulttax[coarvertnum].vertglbnum[0]; while (1) { /* Loop on both fine vertices of multinode */ Gnum finepartval; finepartval = (Gnum) coarpartval; if ((finevertglbnum >= finevertglbmin) && (finevertglbnum < finevertglbmax)) { /* Vertex is a local one */ #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartglbtax[finevertglbnum] != 3) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finepartglbtax[finevertglbnum] = coarpartval; finecomplocsize1 += finepartval & 1; /* One extra vertex created in part 1 if (coarpartval == 1) */ if (fineveloglbtax != NULL) fineveloval = fineveloglbtax[finevertglbnum]; if (coarpartval == 2) { finecomplocload2 += fineveloval; finefronloctab[finecomplocsize2 ++] = finevertglbnum - finevertlocadj; } else finecomplocload0 += fineveloval & (finepartval - 1); } else { /* Non local vertex */ vsnddattab[vsnddatnbr ++] = finevertglbnum; /* Store index and part */ vsnddattab[vsnddatnbr ++] = finepartval; } if (finevertglbnum == coarmulttax[coarvertnum].vertglbnum[1]) /* If single-vertex multinode or both vertices processed */ break; finevertglbnum = coarmulttax[coarvertnum].vertglbnum[1]; /* Process second multinode */ } } finegrafptr->complocload[0] = finecomplocload0; /* Account for local vertices already processed */ finegrafptr->complocload[2] = finecomplocload2; finegrafptr->complocsize[1] = finecomplocsize1; finegrafptr->complocsize[2] = finecomplocsize2; intSort2asc1 ((void *) vsnddattab, vsnddatnbr >> 1); /* Sort vertices to send by ascending global numbers */ finevertsndnbr1 = finevertsndnbr2 = 0; for (vsnddatnum = vsnddattmp = 0, procnum = 0, finevertglbnnd = finegrafptr->s.procvrttab[1]; vsnddatnum < vsnddatnbr; ) { Gnum finevertglbnum; Gnum finepartval; finevertglbnum = vsnddattab[vsnddatnum]; finepartval = vsnddattab[vsnddatnum + 1]; if (finevertglbnum >= finevertglbnnd) { Gnum finevertsndnbr; finevertsndnbr = (vsnddatnum - vsnddattmp) >> 1; finevertsndnbr2 >>= 1; vsndcnttab[procnum] = (int) finevertsndnbr; ssnddattab[3 * procnum] = finevertsndnbr - finevertsndnbr1 - finevertsndnbr2; ssnddattab[3 * procnum + 1] = finevertsndnbr1; ssnddattab[3 * procnum + 2] = finevertsndnbr2; vdgraphSeparateMlPack (vsnddattab, vsnddattmp >> 1, ssnddattab + (3 * procnum)); do finevertglbnnd = finegrafptr->s.procvrttab[(++ procnum) + 1]; while (finevertglbnum >= finevertglbnnd); vsnddattmp = vsnddatnum; /* Set startpoint for new neighbor */ finevertsndnbr1 = finevertsndnbr2 = 0; } vsnddatnum += 2; finevertsndnbr1 += finepartval & 1; /* Count number of vertices in part 1 */ finevertsndnbr2 += finepartval & 2; /* Count twice number of vertices in part 2 */ } finevertsndnbr2 >>= 1; /* Complete data for last receiver process */ vsndcnttab[procnum] = (int) ((vsnddatnum - vsnddattmp) >> 1); ssnddattab[3 * procnum] = ((vsnddatnum - vsnddattmp) >> 1) - finevertsndnbr1 - finevertsndnbr2; ssnddattab[3 * procnum + 1] = finevertsndnbr1; ssnddattab[3 * procnum + 2] = finevertsndnbr2; vdgraphSeparateMlPack (vsnddattab, (Gnum) vsnddattmp >> 1, ssnddattab + (3 * procnum)); #ifdef SCOTCH_DEBUG_VDGRAPH2 if ((ssnddattab[3 * finegrafptr->s.proclocnum] != 0) || /* One should never send something to itself */ (ssnddattab[3 * finegrafptr->s.proclocnum + 1] != 0) || (ssnddattab[3 * finegrafptr->s.proclocnum + 2] != 0)) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } if (MPI_Alltoall (ssnddattab, 3, GNUM_MPI, srcvdattab, 3, GNUM_MPI, finegrafptr->s.proccomm) != MPI_SUCCESS) { /* Exchange sizes */ errorPrint ("vdgraphSeparateMlUncoarsen: communication error (2)"); return (1); } vrcvcnttab = (int *) ssnddattab; /* TRICK: re-use ssnddattab */ vsnddsptab = vrcvcnttab + finegrafptr->s.procglbnbr; vrcvdsptab = vrcvcnttab + finegrafptr->s.procglbnbr * 2; for (procnum = 0, vsnddspnum = vrcvdspnum = 0; procnum < finegrafptr->s.procglbnbr; procnum ++) { /* Compute size of data to exchange */ vrcvcnttab[procnum] = (int) (srcvdattab[3 * procnum] + srcvdattab[3 * procnum + 1] + srcvdattab[3 * procnum + 2]); vrcvdsptab[procnum] = vrcvdspnum; vsnddsptab[procnum] = vsnddspnum; vrcvdspnum += vrcvcnttab[procnum]; vsnddspnum += vsndcnttab[procnum]; } if (MPI_Alltoallv (vsnddattab, vsndcnttab, vsnddsptab, GNUM_MPI, /* Exchange data */ vrcvdattab, vrcvcnttab, vrcvdsptab, GNUM_MPI, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateMlUncoarsen: communication error (3)"); return (1); } finecomplocload0 = finegrafptr->complocload[0]; finecomplocload2 = finegrafptr->complocload[2]; finecomplocsize1 = finegrafptr->complocsize[1]; finecomplocsize2 = finegrafptr->complocsize[2]; for (procnum = 0, vrcvdatnum = 0; /* Process partition data per process number */ procnum < finegrafptr->s.procglbnbr; procnum ++) { Gnum vrcvdatnnd; vrcvdatnnd = vrcvdatnum + srcvdattab[3 * procnum]; if (fineveloglbtax != NULL) { for ( ; vrcvdatnum < vrcvdatnnd; vrcvdatnum ++) { Gnum finevertglbnum; finevertglbnum = vrcvdattab[vrcvdatnum]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartglbtax[finevertglbnum] != 3) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finepartglbtax[finevertglbnum] = 0; finecomplocload0 += fineveloglbtax[finevertglbnum]; } } else { finecomplocload0 += srcvdattab[3 * procnum]; for ( ; vrcvdatnum < vrcvdatnnd; vrcvdatnum ++) { #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartglbtax[vrcvdattab[vrcvdatnum]] != 3) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finepartglbtax[vrcvdattab[vrcvdatnum]] = 0; } } finecomplocsize1 += srcvdattab[3 * procnum + 1]; vrcvdatnnd = vrcvdatnum + srcvdattab[3 * procnum + 1]; for ( ; vrcvdatnum < vrcvdatnnd; vrcvdatnum ++) { #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartglbtax[vrcvdattab[vrcvdatnum]] != 3) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finepartglbtax[vrcvdattab[vrcvdatnum]] = 1; } vrcvdatnnd = vrcvdatnum + srcvdattab[3 * procnum + 2]; if (fineveloglbtax != NULL) { for ( ; vrcvdatnum < vrcvdatnnd; vrcvdatnum ++) { Gnum finevertglbnum; finevertglbnum = vrcvdattab[vrcvdatnum]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartglbtax[finevertglbnum] != 3) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finefronloctab[finecomplocsize2 ++] = finevertglbnum - finevertlocadj; finepartglbtax[finevertglbnum] = 2; finecomplocload2 += fineveloglbtax[finevertglbnum]; } } else { finecomplocload2 += srcvdattab[3 * procnum + 2]; for ( ; vrcvdatnum < vrcvdatnnd; vrcvdatnum ++) { Gnum finevertglbnum; finevertglbnum = vrcvdattab[vrcvdatnum]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (finepartglbtax[finevertglbnum] != 3) { errorPrint ("vdgraphSeparateMlUncoarsen: internal error (9)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ finefronloctab[finecomplocsize2 ++] = finevertglbnum - finevertlocadj; finepartglbtax[finevertglbnum] = 2; } } } finegrafptr->complocload[0] = finecomplocload0; finegrafptr->complocload[1] = finegrafptr->s.velolocsum - finecomplocload0 - finecomplocload2; finegrafptr->complocload[2] = finecomplocload2; finegrafptr->complocsize[0] = finegrafptr->s.vertlocnbr - finecomplocsize1 - finecomplocsize2; finegrafptr->complocsize[1] = finecomplocsize1; finegrafptr->complocsize[2] = finecomplocsize2; memFree (vsndcnttab); /* Free group leader */ reduloctab[0] = finegrafptr->complocload[0]; reduloctab[1] = finegrafptr->complocload[1]; reduloctab[2] = finegrafptr->complocload[2]; reduloctab[3] = finegrafptr->complocsize[0]; reduloctab[4] = finegrafptr->complocsize[1]; reduloctab[5] = finegrafptr->complocsize[2]; if (MPI_Allreduce (reduloctab, reduglbtab, 6, GNUM_MPI, MPI_SUM, finegrafptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateMlUncoarsen: communication error (4)"); return (1); } finegrafptr->compglbload[0] = reduglbtab[0]; finegrafptr->compglbload[1] = reduglbtab[1]; finegrafptr->compglbload[2] = reduglbtab[2]; finegrafptr->compglbsize[0] = reduglbtab[3]; finegrafptr->compglbsize[1] = reduglbtab[4]; finegrafptr->compglbsize[2] = reduglbtab[5]; finegrafptr->compglbloaddlt = reduglbtab[0] - reduglbtab[1]; #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vdgraphCheck (finegrafptr) != 0) { errorPrint ("vdgraphSeparateMlUncoarsen: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ return (0); } /* This routine recursively performs the ** separation recursion. ** It returns: ** - 0 : if separator could be computed. ** - !0 : on error. */ static int vdgraphSeparateMl2 ( Vdgraph * restrict const grafptr, /* Vertex-separation graph */ const VdgraphSeparateMlParam * const paraptr) /* Method parameters */ { Vdgraph coargrafdat; DgraphCoarsenMulti * restrict coarmulttax; int o; if (grafptr->s.procglbnbr <= 1) { /* No need to stay parallel */ if (((o = vdgraphSeparateMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = vdgraphSeparateSt (grafptr, paraptr->stratseq)) != 0)) { #ifdef SCOTCH_DEBUG_VDGRAPH2 errorPrintW ("vdgraphSeparateMl2: cannot apply sequential strategy"); #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } return (o); } coarmulttax = NULL; /* Assume multinode array is not allocated */ if (vdgraphSeparateMlCoarsen (grafptr, &coargrafdat, &coarmulttax, paraptr) == 0) { o = (coargrafdat.s.procglbnbr == 0) ? 0 : vdgraphSeparateMl2 (&coargrafdat, paraptr); /* Apply recursion on coarsened graph if it exists */ if ((o == 0) && ((o = vdgraphSeparateMlUncoarsen (grafptr, &coargrafdat, coarmulttax)) == 0) && ((o = vdgraphSeparateSt (grafptr, paraptr->stratasc)) != 0)) { /* Apply ascending strategy if uncoarsening worked */ #ifdef SCOTCH_DEBUG_VDGRAPH2 errorPrintW ("vdgraphSeparateMl2: cannot apply ascending strategy"); #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } if (coargrafdat.fronloctab == grafptr->fronloctab) /* If coarse graph shares fronloctab with fine graph */ coargrafdat.fronloctab = NULL; /* Prevent fronloctab of fine graph from being freed */ vdgraphExit (&coargrafdat); if (coarmulttax != NULL) /* If multinode array has been allocated */ memFree (coarmulttax + grafptr->s.baseval); /* Free array */ if (o == 0) /* If multi-level failed, apply low strategy as fallback */ return (o); } if (((o = vdgraphSeparateMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = vdgraphSeparateSt (grafptr, paraptr->stratlow)) != 0)) { /* Apply low strategy */ #ifdef SCOTCH_DEBUG_VDGRAPH2 errorPrintW ("vdgraphSeparateMl2: cannot apply low strategy"); #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the muti-level separation. ** It returns: ** - 0 : if separator could be computed. ** - 1 : on error. */ int vdgraphSeparateMl ( Vdgraph * const grafptr, /*+ Vertex-separation graph +*/ const VdgraphSeparateMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for graph level */ int o; levlnum = grafptr->levlnum; /* Save graph level */ grafptr->levlnum = 0; /* Initialize coarsening level */ o = vdgraphSeparateMl2 (grafptr, paraptr); /* Perform multi-level separation */ grafptr->levlnum = levlnum; /* Restore graph level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_ml.h000066400000000000000000000113321514310134000300750ustar00rootroot00000000000000/* Copyright 2007-2009,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_ml.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the sequential vertex separation **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.0 : from : 07 feb 2006 **/ /** to : 03 aug 2007 **/ /** # Version 5.1 : from : 14 dec 2008 **/ /** to : 29 may 2009 **/ /** # Version 6.0 : from : 28 sep 2014 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VdgraphSeparateMlParam_ { INT passnbr; /*+ Number of coarsening passes to go +*/ INT foldmax; /*+ Maximum number of vertices per processor to do folding +*/ int foldval; /*+ Type of folding +*/ INT coarnbr; /*+ Minimum number of vertices +*/ double coarrat; /*+ Coarsening ratio +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ Strat * stratseq; /*+ Strategy when running on a single processor +*/ } VdgraphSeparateMlParam; /* ** The function prototypes. */ #ifdef SCOTCH_VDGRAPH_SEPARATE_ML static int vdgraphSeparateMlCoarsen (Vdgraph * const, Vdgraph * const, DgraphCoarsenMulti * restrict * const, const VdgraphSeparateMlParam * const); static int vdgraphSeparateMlUncoarsen (Vdgraph *, const Vdgraph * const, const DgraphCoarsenMulti * restrict const); static void vdgraphSeparateMlOpBest (const Gnum * const, Gnum * const, const int * const, const MPI_Datatype * const); static int vdgraphSeparateMl2 (Vdgraph * const, const VdgraphSeparateMlParam * const); #endif /* SCOTCH_VDGRAPH_SEPARATE_ML */ int vdgraphSeparateMl (Vdgraph * const, const VdgraphSeparateMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_sq.c000066400000000000000000000266261514310134000301170ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_sq.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a separator of the **/ /** given distributed separator graph by **/ /** moving all (interesting) vertices of **/ /** the given graph to every processor, **/ /** running a sequential vertex separation **/ /** computing, and projecting back the **/ /** best result obtained. **/ /** **/ /** DATES : # Version 5.1 : from : 15 feb 2006 **/ /** to : 30 jul 2010 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VDGRAPH_SEPARATE_SQ #include "module.h" #include "common.h" #include "comm.h" #include "parser.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "dgraph.h" #include "vdgraph.h" #include "vdgraph_separate_sq.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine is the reduction-loc operator which ** returns in inout[2] the rank of the process which ** holds the best partition. ** It returns: ** - void : in all cases. */ static void vdgraphSeparateSqOpBest ( const Gnum * const in, /* First operand */ Gnum * const inout, /* Second and output operand */ const int * const len, /* Number of instances; should be 1, not used */ const MPI_Datatype * const typedat) /* MPI datatype; not used */ { if (inout[3] == 1) { /* Handle cases when at least one of them is erroneous */ if (in[3] == 1) return; inout[0] = in[0]; inout[1] = in[1]; inout[2] = in[2]; inout[3] = in[3]; return; } else if (in[3] == 1) return; if ((in[0] < inout[0]) || /* Select best partition */ ((in[0] == inout[0]) && ((in[1] < inout[1]) || ((in[1] == inout[1]) && (in[2] < inout[2]))))) { inout[0] = in[0]; inout[1] = in[1]; inout[2] = in[2]; } } /* This routine computes a partition of the ** given distributed graph by gathering as many ** copies of the graph as there are processes ** sharing the distributed graph, running a ** sequential algorithm on them, and collecting ** the best solution found. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vdgraphSeparateSq ( Vdgraph * const dgrfptr, /*+ Distributed graph +*/ const VdgraphSeparateSqParam * const paraptr) /*+ Method parameters +*/ { Vgraph cgrfdat; /* Centralized vertex separator graph structure */ Gnum reduloctab[7]; /* Local array for best separator data (7 for Bcast) */ Gnum reduglbtab[4]; /* Global array for best separator data */ MPI_Datatype besttypedat; /* Data type for finding best separator */ MPI_Op bestoperdat; /* Handle of MPI operator for finding best separator */ int bestprocnum; /* Rank of process holding best partition */ Gnum * restrict vnumloctax; Gnum vertlocnum; Gnum complocsize1; Gnum complocload1; Gnum complocload2; Gnum fronlocnbr; int o; if ((MPI_Type_contiguous (4, GNUM_MPI, &besttypedat) != MPI_SUCCESS) || (MPI_Type_commit (&besttypedat) != MPI_SUCCESS) || (MPI_Op_create ((MPI_User_function *) vdgraphSeparateSqOpBest, 1, &bestoperdat) != MPI_SUCCESS)) { errorPrint ("vdgraphSeparateSq: communication error (1)"); return (1); } reduloctab[0] = /* In case of error, maximum frontier size */ reduloctab[1] = GNUMMAX; /* And maximum load imbalance */ reduloctab[2] = dgrfptr->s.proclocnum; reduloctab[3] = 0; /* Assume sequential separation went fine */ vnumloctax = dgrfptr->s.vnumloctax; /* No need for vertex number array when centralizing graph */ dgrfptr->s.vnumloctax = NULL; o = vdgraphGatherAll (dgrfptr, &cgrfdat); dgrfptr->s.vnumloctax = vnumloctax; /* Restore vertex number array */ if (o != 0) { errorPrint ("vdgraphSeparateSq: cannot build centralized graph"); return (1); } if (vgraphSeparateSt (&cgrfdat, paraptr->strat) != 0) { /* Separate centralized graph */ errorPrint ("vdgraphSeparateSq: cannot separate centralized graph"); reduloctab[3] = 1; } else { /* Fill local array with local separator data */ reduloctab[0] = ((cgrfdat.fronnbr != 0) || ((cgrfdat.compload[0] != 0) && (cgrfdat.compload[1] != 0))) ? cgrfdat.fronnbr : (cgrfdat.fronnbr + cgrfdat.s.vertnbr); /* Partitions with empty separators unwanted if they are completely unbalanced */ reduloctab[1] = cgrfdat.comploaddlt; } if (MPI_Allreduce (reduloctab, reduglbtab, 1, besttypedat, bestoperdat, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateSq: communication error (2)"); return (1); } #ifdef SCOTCH_DEBUG_VDGRAPH2 if (MPI_Allreduce (&reduglbtab[3], &reduloctab[3], 1, GNUM_MPI, MPI_SUM, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateSq: communication error (3)"); return (1); } if ((reduloctab[3] != 0) && (reduloctab[3] != dgrfptr->s.procglbnbr)) { errorPrint ("vdgraphSeparateSq: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ if ((MPI_Op_free (&bestoperdat) != MPI_SUCCESS) || (MPI_Type_free (&besttypedat) != MPI_SUCCESS)) { errorPrint ("vdgraphSeparateSq: communication error (4)"); return (1); } if (reduglbtab[3] != 0) { /* If none of the sequential methods succeeded */ vgraphExit (&cgrfdat); return (1); } bestprocnum = (int) reduglbtab[2]; if (dgrfptr->s.proclocnum == bestprocnum) { /* If process holds best partition */ reduloctab[0] = cgrfdat.compload[0]; /* Global values to share */ reduloctab[1] = cgrfdat.compload[1]; reduloctab[2] = cgrfdat.compload[2]; reduloctab[3] = cgrfdat.comploaddlt; reduloctab[4] = cgrfdat.compsize[0]; reduloctab[5] = cgrfdat.compsize[1]; reduloctab[6] = cgrfdat.fronnbr; } if (MPI_Bcast (reduloctab, 7, GNUM_MPI, bestprocnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateSq: communication error (5)"); return (1); } dgrfptr->compglbload[0] = reduloctab[0]; dgrfptr->compglbload[1] = reduloctab[1]; dgrfptr->compglbload[2] = reduloctab[2]; dgrfptr->compglbloaddlt = reduloctab[3]; dgrfptr->compglbsize[0] = reduloctab[4]; dgrfptr->compglbsize[1] = reduloctab[5]; dgrfptr->compglbsize[2] = reduloctab[6]; if (commScatterv (cgrfdat.parttax, dgrfptr->s.proccnttab, dgrfptr->s.procdsptab, GRAPHPART_MPI, /* No base for sending as procdsptab holds based values */ dgrfptr->partgsttax + dgrfptr->s.baseval, dgrfptr->s.vertlocnbr, GRAPHPART_MPI, bestprocnum, dgrfptr->s.proccomm) != MPI_SUCCESS) { errorPrint ("vdgraphSeparateSq: communication error (6)"); return (1); } complocsize1 = complocload1 = complocload2 = 0; for (vertlocnum = dgrfptr->s.baseval, fronlocnbr = 0; vertlocnum < dgrfptr->s.vertlocnnd; vertlocnum ++) { int partval; Gnum partval1; partval = dgrfptr->partgsttax[vertlocnum]; partval1 = partval & 1; complocsize1 += partval1; /* Superscalar update */ if (partval == 2) /* Build local frontier */ dgrfptr->fronloctab[fronlocnbr ++] = vertlocnum; if (dgrfptr->s.veloloctax != NULL) { Gnum partval2; Gnum veloval; veloval = dgrfptr->s.veloloctax[vertlocnum]; partval2 = (partval >> 1) & 1; complocload1 += (-partval1) & veloval; /* Superscalar update */ complocload2 += (-partval2) & veloval; /* Superscalar update */ } } dgrfptr->complocsize[0] = dgrfptr->s.vertlocnbr - fronlocnbr - complocsize1; dgrfptr->complocsize[1] = complocsize1; dgrfptr->complocsize[2] = fronlocnbr; if (dgrfptr->s.veloloctax != NULL) { dgrfptr->complocload[0] = dgrfptr->s.velolocsum - complocload1 - complocload2; dgrfptr->complocload[1] = complocload1; dgrfptr->complocload[2] = complocload2; } else { dgrfptr->complocload[0] = dgrfptr->complocsize[0]; dgrfptr->complocload[1] = dgrfptr->complocsize[1]; dgrfptr->complocload[2] = fronlocnbr; } vgraphExit (&cgrfdat); #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vdgraphCheck (dgrfptr) != 0) { errorPrint ("vdgraphSeparateSq: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_sq.h000066400000000000000000000065241514310134000301170ustar00rootroot00000000000000/* Copyright 2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_sq.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the sequential vertex separation **/ /** routine for distributed graphs. **/ /** **/ /** DATES : # Version 5.0 : from : 15 feb 2006 **/ /** to : 01 mar 2006 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VdgraphSeparateSqParam_ { Strat * strat; /*+ Sequential separation strategy used +*/ } VdgraphSeparateSqParam; /* ** The function prototypes. */ #ifdef SCOTCH_VDGRAPH_SEPARATE_SQ static void vdgraphSeparateSqOpBest (const Gnum * const, Gnum * const, const int * const, const MPI_Datatype * const); #endif /* SCOTCH_VDGRAPH_SEPARATE_SQ */ int vdgraphSeparateSq (Vdgraph * const, const VdgraphSeparateSqParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_st.c000066400000000000000000000433511514310134000301140ustar00rootroot00000000000000/* Copyright 2007-2009,2014,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This module contains the global **/ /** distributed separation strategy and **/ /** method tables. **/ /** **/ /** DATES : # Version 5.0 : from : 16 feb 2006 **/ /** to : 01 aug 2007 **/ /** # Version 5.1 : from : 05 nov 2007 **/ /** to : 26 may 2009 **/ /** # Version 6.0 : from : 01 may 2014 **/ /** to : 30 sep 2014 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "dgraph.h" #include "dgraph_coarsen.h" #include "vdgraph.h" #include "vdgraph_separate_bd.h" #include "vdgraph_separate_df.h" #include "vdgraph_separate_ml.h" #include "vdgraph_separate_sq.h" #include "vdgraph_separate_st.h" #include "vdgraph_separate_zr.h" /* ** The static and global variables. */ static Vdgraph vdgraphdummy; /* Dummy distributed separator graph for offset computations */ static union { VdgraphSeparateBdParam param; StratNodeMethodData padding; } vdgraphseparatedefaultbd = { { 3, &stratdummy } }; static union { VdgraphSeparateDfParam param; StratNodeMethodData padding; } vdgraphseparatedefaultdf = { { 0, 300, 1.0, 0.0, 0.2 } }; static union { VdgraphSeparateMlParam param; StratNodeMethodData padding; } vdgraphseparatedefaultml = { { 5, 1000, 2, 10000, 0.8L, &stratdummy, &stratdummy, &stratdummy } }; static union { VdgraphSeparateSqParam param; StratNodeMethodData padding; } vdgraphseparatedefaultsq = { { &stratdummy } }; static StratMethodTab vdgraphseparatestmethtab[] = { /* Distributed graph separation methods array */ { VDGRAPHSEPASTMETHBD, "b", (StratMethodFunc) vdgraphSeparateBd, &vdgraphseparatedefaultbd }, { VDGRAPHSEPASTMETHDF, "d", (StratMethodFunc) vdgraphSeparateDf, &vdgraphseparatedefaultdf }, { VDGRAPHSEPASTMETHML, "m", (StratMethodFunc) vdgraphSeparateMl, &vdgraphseparatedefaultml }, { VDGRAPHSEPASTMETHSQ, "q", (StratMethodFunc) vdgraphSeparateSq, &vdgraphseparatedefaultsq }, { VDGRAPHSEPASTMETHZR, "z", (StratMethodFunc) vdgraphSeparateZr, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab vdgraphseparatestparatab[] = { /* Distributed graph separation method parameter list */ { VDGRAPHSEPASTMETHBD, STRATPARAMINT, "width", (byte *) &vdgraphseparatedefaultbd.param, (byte *) &vdgraphseparatedefaultbd.param.distmax, NULL }, { VDGRAPHSEPASTMETHBD, STRATPARAMSTRAT, "strat", (byte *) &vdgraphseparatedefaultbd.param, (byte *) &vdgraphseparatedefaultbd.param.strat, (void *) &vdgraphseparateststratab }, { VDGRAPHSEPASTMETHDF, STRATPARAMINT, "part", (byte *) &vdgraphseparatedefaultdf.param, (byte *) &vdgraphseparatedefaultdf.param.partval, NULL }, { VDGRAPHSEPASTMETHDF, STRATPARAMINT, "pass", (byte *) &vdgraphseparatedefaultdf.param, (byte *) &vdgraphseparatedefaultdf.param.passnbr, NULL }, { VDGRAPHSEPASTMETHDF, STRATPARAMDOUBLE, "bal", (byte *) &vdgraphseparatedefaultdf.param, (byte *) &vdgraphseparatedefaultdf.param.deltval, NULL }, { VDGRAPHSEPASTMETHDF, STRATPARAMDOUBLE, "dif", (byte *) &vdgraphseparatedefaultdf.param, (byte *) &vdgraphseparatedefaultdf.param.cdifval, NULL }, { VDGRAPHSEPASTMETHDF, STRATPARAMDOUBLE, "rem", (byte *) &vdgraphseparatedefaultdf.param, (byte *) &vdgraphseparatedefaultdf.param.cremval, NULL }, { VDGRAPHSEPASTMETHML, STRATPARAMSTRAT, "asc", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.stratasc, (void *) &vdgraphseparateststratab }, { VDGRAPHSEPASTMETHML, STRATPARAMSTRAT, "low", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.stratlow, (void *) &vdgraphseparateststratab }, { VDGRAPHSEPASTMETHML, STRATPARAMSTRAT, "seq", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.stratseq, (void *) &vdgraphseparateststratab }, { VDGRAPHSEPASTMETHML, STRATPARAMINT, "pass", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.passnbr, NULL }, { VDGRAPHSEPASTMETHML, STRATPARAMINT, "vert", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.coarnbr, NULL }, { VDGRAPHSEPASTMETHML, STRATPARAMINT, "dvert", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.foldmax, NULL }, { VDGRAPHSEPASTMETHML, STRATPARAMCASE, "fold", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.foldval, (void *) "nfd" }, { VDGRAPHSEPASTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &vdgraphseparatedefaultml.param, (byte *) &vdgraphseparatedefaultml.param.coarrat, NULL }, { VDGRAPHSEPASTMETHML, STRATPARAMDEPRECATED | STRATPARAMINT, "dlevl", NULL, NULL, NULL }, /* Wait until MUMPS 5.0 */ { VDGRAPHSEPASTMETHML, STRATPARAMDEPRECATED | STRATPARAMINT, "proc", NULL, NULL, NULL }, { VDGRAPHSEPASTMETHSQ, STRATPARAMSTRAT, "strat", (byte *) &vdgraphseparatedefaultsq.param, (byte *) &vdgraphseparatedefaultsq.param.strat, (void *) &vgraphseparateststratab }, { VDGRAPHSEPASTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab vdgraphseparatestcondtab[] = { /* Distributed graph condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &vdgraphdummy, (byte *) &vdgraphdummy.s.edgeglbnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &vdgraphdummy, (byte *) &vdgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &vdgraphdummy, (byte *) &vdgraphdummy.s.veloglbsum, NULL }, { STRATNODECOND, STRATPARAMINT, "proc", (byte *) &vdgraphdummy, (byte *) &vdgraphdummy.s.procglbnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "rank", (byte *) &vdgraphdummy, (byte *) &vdgraphdummy.s.proclocnum, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &vdgraphdummy, (byte *) &vdgraphdummy.s.vertglbnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab vdgraphseparateststratab = { /* Strategy tables for distributed vertex separation methods */ vdgraphseparatestmethtab, vdgraphseparatestparatab, vdgraphseparatestcondtab }; /*******************************************/ /* */ /* This is the generic separation routine. */ /* */ /*******************************************/ /* This routine computes the separation of the ** given distributed graph according to the given ** strategy. ** All distributed vertex separation routines must ** be collective, that is, they must all return ** the same success or failure return value on all ** of the processors onto which they are run. Else, ** the behavior of the software is unpredictable. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int vdgraphSeparateSt ( Vdgraph * restrict const grafptr, /*+ Distributed separation graph +*/ const Strat * restrict const straptr) /*+ Separation strategy +*/ { StratTest testdat; VdgraphStore savetab[2]; /* Results of the two strategies */ Gnum compglbload2; /* Saved global separator load */ int o; #ifdef SCOTCH_DEBUG_VDGRAPH2 MPI_Comm proccommold; /* Save area for old communicator */ #endif /* SCOTCH_DEBUG_VDGRAPH2 */ #ifdef SCOTCH_DEBUG_VDGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("vdgraphSeparateSt: invalid type specification for parser variables"); return (1); } if (sizeof (VdgraphSeparateSqParam) > sizeof (StratNodeMethodData)) { errorPrint ("vdgraphSeparateSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ #ifdef SCOTCH_DEBUG_VDGRAPH1 if ((straptr->tablptr != &vdgraphseparateststratab) && (straptr != &stratdummy)) { errorPrint ("vdgraphSeparateSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_VDGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = vdgraphSeparateSt (grafptr, straptr->data.concdat.stratab[0]); /* Apply first strategy */ if (o == 0) /* If it worked all right */ o |= vdgraphSeparateSt (grafptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_VDGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("vdgraphSeparateSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_VDGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = vdgraphSeparateSt (grafptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = vdgraphSeparateSt (grafptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((vdgraphStoreInit (grafptr, &savetab[0])) != 0) || /* Allocate save areas */ ((vdgraphStoreInit (grafptr, &savetab[1])) != 0)) { errorPrint ("vdgraphSeparateSt: out of memory"); vdgraphStoreExit (&savetab[0]); return (1); } vdgraphStoreSave (grafptr, &savetab[1]); /* Save initial bipartition */ if (vdgraphSeparateSt (grafptr, straptr->data.seledat.stratab[0]) != 0) { /* If first strategy didn't work */ vdgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ vdgraphStoreSave (grafptr, &savetab[0]); /* Save it as result */ } else { /* First strategy worked */ vdgraphStoreSave (grafptr, &savetab[0]); /* Save its result */ vdgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ } if (vdgraphSeparateSt (grafptr, straptr->data.seledat.stratab[1]) != 0) /* If second strategy didn't work */ vdgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition as its result */ compglbload2 = grafptr->s.veloglbsum - savetab[0].compglbload[0] - savetab[0].compglbload[1]; /* Compute saved separator load */ if ( (compglbload2 < grafptr->compglbload[2]) || /* If first strategy is better */ ((compglbload2 == grafptr->compglbload[2]) && (abs (savetab[0].compglbloaddlt) < abs (grafptr->compglbloaddlt)))) vdgraphStoreUpdt (grafptr, &savetab[0]); /* Restore its result */ vdgraphStoreExit (&savetab[0]); /* Free both save areas */ vdgraphStoreExit (&savetab[1]); break; #ifdef SCOTCH_DEBUG_VDGRAPH1 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_VDGRAPH1 */ default : #endif /* SCOTCH_DEBUG_VDGRAPH1 */ #ifdef SCOTCH_DEBUG_VDGRAPH2 proccommold = grafptr->s.proccomm; /* Create new communicator to isolate method communications */ MPI_Comm_dup (proccommold, &grafptr->s.proccomm); #endif /* SCOTCH_DEBUG_VDGRAPH2 */ o = ((VdgraphSeparateFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, (const void * const) &straptr->data.methdat.datadat); #ifdef SCOTCH_DEBUG_VDGRAPH2 MPI_Comm_free (&grafptr->s.proccomm); /* Restore old communicator */ grafptr->s.proccomm = proccommold; #endif /* SCOTCH_DEBUG_VDGRAPH2 */ #ifdef SCOTCH_DEBUG_VDGRAPH1 break; default : errorPrint ("vdgraphSeparateSt: invalid parameter (2)"); return (1); #endif /* SCOTCH_DEBUG_VDGRAPH1 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_st.h000066400000000000000000000074321514310134000301210ustar00rootroot00000000000000/* Copyright 2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the global distributed sepa- **/ /** ration strategy and method tables. **/ /** **/ /** DATES : # Version 5.0 : from : 16 feb 2006 **/ /** to : 08 mar 2006 **/ /** # Version 5.1 : from : 05 nov 2007 **/ /** to : 05 nov 2007 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum VdgraphSeparateStMethodType_ { VDGRAPHSEPASTMETHBD = 0, /*+ Band strategy +*/ VDGRAPHSEPASTMETHDF, /*+ Diffusion method +*/ VDGRAPHSEPASTMETHML, /*+ Multilevel strategy +*/ VDGRAPHSEPASTMETHSQ, /*+ Sequential strategy +*/ VDGRAPHSEPASTMETHZR, /*+ Zero method +*/ VDGRAPHSEPASTMETHNBR /*+ Number of methods +*/ } VdgraphSeparateStMethodType; /*+ Method function pointer type. +*/ typedef int (* VdgraphSeparateFunc) (Vdgraph * restrict const, const void * const); /* ** The external declarations. */ extern StratTab vdgraphseparateststratab; /* ** The function prototypes. */ int vdgraphSeparateSt (Vdgraph * const, const Strat * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_zr.c000066400000000000000000000067171514310134000301260ustar00rootroot00000000000000/* Copyright 2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_zr.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module moves all of the vertices **/ /** of the distributed separator graph to **/ /** the first subdomain. **/ /** **/ /** DATES : # Version 5.0 : from : 07 feb 2006 **/ /** to : 07 feb 2006 **/ /** # Version 6.0 : from : 23 feb 2018 **/ /** to : 23 feb 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "vdgraph.h" #include "vdgraph_separate_zr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine moves all of the graph vertices ** to the first part of the partition. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vdgraphSeparateZr ( Vdgraph * const grafptr) /*+ Active graph +*/ { if (grafptr->compglbsize[0] != grafptr->s.vertglbnbr) /* If not all vertices already in part zero */ vdgraphZero (grafptr); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_separate_zr.h000066400000000000000000000053231514310134000301230ustar00rootroot00000000000000/* Copyright 2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_separate_zr.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** distributed separation method. **/ /** **/ /** DATES : # Version 5.0 : from : 07 feb 2006 **/ /** to : 07 feb 2006 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int vdgraphSeparateZr (Vdgraph * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vdgraph_store.c000066400000000000000000000150461514310134000267360ustar00rootroot00000000000000/* Copyright 2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vdgraph_store.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the save data **/ /** structure handling routines for **/ /** distributed separation graphs. **/ /** **/ /** DATES : # Version 4.0 : from : 08 mar 2006 **/ /** to : 01 mar 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "dgraph.h" #include "vdgraph.h" /**********************************/ /* */ /* Store graph handling routines. */ /* */ /**********************************/ /* This routine builds a save structure ** for the given active graph. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int vdgraphStoreInit ( const Vdgraph * restrict const grafptr, VdgraphStore * restrict const storptr) { Gnum savsize; savsize = grafptr->s.vertlocnbr * (sizeof (GraphPart) + sizeof (Gnum)); /* Compute size for frontier and part arrays */ if ((storptr->datatab = (byte *) memAlloc (savsize)) == NULL) { /* Allocate save structure */ errorPrint ("vdgraphStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a save structure. ** It returns: ** - VOID : in all cases. */ void vdgraphStoreExit ( VdgraphStore * const storptr) { memFree (storptr->datatab); #ifdef SCOTCH_DEBUG_VDGRAPH2 storptr->datatab = NULL; #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } /* This routine saves partition data from the ** given active graph to the given save structure. ** It returns: ** - VOID : in all cases. */ void vdgraphStoreSave ( const Vdgraph * const grafptr, VdgraphStore * const storptr) { byte * partloctab; /* Pointer to part data save area */ byte * fronloctab; /* Pointer to frontier data save area */ storptr->fronglbnbr = grafptr->compglbsize[2]; /* Save partition parameters */ storptr->compglbloaddlt = grafptr->compglbloaddlt; storptr->compglbload[0] = grafptr->compglbload[0]; storptr->compglbload[1] = grafptr->compglbload[1]; storptr->compglbsize0 = grafptr->compglbsize[0]; storptr->complocsize0 = grafptr->complocsize[0]; storptr->fronlocnbr = grafptr->complocsize[2]; fronloctab = storptr->datatab; /* Compute data offsets within save structure */ partloctab = fronloctab + grafptr->complocsize[2] * sizeof (Gnum); memCpy (fronloctab, grafptr->fronloctab, grafptr->complocsize[2] * sizeof (Gnum)); memCpy (partloctab, grafptr->partgsttax + grafptr->s.baseval, grafptr->s.vertlocnbr * sizeof (GraphPart)); } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void vdgraphStoreUpdt ( Vdgraph * const grafptr, const VdgraphStore * const storptr) { byte * fronloctab; /* Pointer to frontier data save area */ byte * partloctab; /* Pointer to part data save area */ grafptr->compglbload[0] = storptr->compglbload[0]; /* Load partition parameters */ grafptr->compglbload[1] = storptr->compglbload[1]; grafptr->compglbload[2] = grafptr->s.veloglbsum - (storptr->compglbload[0] + storptr->compglbload[1]); grafptr->compglbloaddlt = storptr->compglbloaddlt; grafptr->compglbsize[0] = storptr->compglbsize0; grafptr->compglbsize[1] = grafptr->s.vertglbnbr - (storptr->compglbsize0 + storptr->fronglbnbr); grafptr->compglbsize[2] = storptr->fronglbnbr; grafptr->complocsize[0] = storptr->complocsize0; grafptr->complocsize[1] = grafptr->s.vertlocnbr - (storptr->complocsize0 + storptr->fronlocnbr); grafptr->complocsize[2] = storptr->fronlocnbr; fronloctab = storptr->datatab; /* Compute data offsets within save structure */ partloctab = fronloctab + grafptr->complocsize[2] * sizeof (Gnum); memCpy (grafptr->fronloctab, fronloctab, grafptr->complocsize[2] * sizeof (Gnum)); memCpy (grafptr->partgsttax + grafptr->s.baseval, partloctab, grafptr->s.vertlocnbr * sizeof (GraphPart)); #ifdef SCOTCH_DEBUG_VDGRAPH2 if (vdgraphCheck (grafptr) != 0) errorPrint ("vdgraphStoreUpdt: inconsistent graph data"); #endif /* SCOTCH_DEBUG_VDGRAPH2 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph.c000066400000000000000000000104361514310134000253540ustar00rootroot00000000000000/* Copyright 2004,2007,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the separator **/ /** handling routines. **/ /** **/ /** DATES : # Version 3.2 : from : 24 aug 1996 **/ /** to : 03 nov 1997 **/ /** # Version 4.0 : from : 12 dec 2001 **/ /** to : 08 jan 2004 **/ /** # Version 6.1 : from : 21 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" /*************************/ /* */ /* These routines handle */ /* separator graphs. */ /* */ /*************************/ /* This routine frees the contents ** of the given active graph. ** It returns: ** - VOID : in all cases. */ void vgraphExit ( Vgraph * const grafptr) { if ((grafptr->frontab != NULL) && ((grafptr->s.flagval & VGRAPHFREEFRON) != 0)) memFree (grafptr->frontab); if ((grafptr->parttax != NULL) && ((grafptr->s.flagval & VGRAPHFREEPART) != 0)) memFree (grafptr->parttax + grafptr->s.baseval); graphFree (&grafptr->s); /* Free source graph */ #ifdef SCOTCH_DEBUG_VGRAPH2 memSet (grafptr, ~0, sizeof (Vgraph)); #endif /* SCOTCH_DEBUG_VGRAPH2 */ } /* This routine moves all of the graph ** vertices to the first part. ** It returns: ** - VOID : in all cases. */ void vgraphZero ( Vgraph * const grafptr) { memSet (grafptr->parttax + grafptr->s.baseval, 0, grafptr->s.vertnbr * sizeof (GraphPart)); /* Set all vertices to part 0 */ grafptr->fronnbr = 0; /* No frontier vertices */ grafptr->compsize[0] = grafptr->s.vertnbr; grafptr->compsize[1] = 0; grafptr->compload[0] = grafptr->s.velosum; grafptr->compload[1] = grafptr->compload[2] = 0; grafptr->comploaddlt = grafptr->s.velosum * grafptr->dwgttab[1]; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph.h000066400000000000000000000133001514310134000253520ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2019,2021,2023 Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for vertex separation routines. **/ /** **/ /** DATES : # Version 3.2 : from : 24 aug 1996 **/ /** to : 17 oct 1997 **/ /** # Version 3.3 : from : 13 mar 1999 **/ /** to : 13 mar 1999 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 07 jan 2002 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 01 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 05 may 2019 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ #define SCOTCH_VGRAPH_H /*+ Graph option flags. +*/ #define VGRAPHFREEFRON (GRAPHBITSNOTUSED) /* Free frontier array */ #define VGRAPHFREEPART (GRAPHBITSNOTUSED << 1) /* Free part array */ /* ** The type and structure definitions. */ /*+ Active graph structure. +*/ typedef struct Vgraph_ { Graph s; /*+ Source graph +*/ GraphPart * parttax; /*+ Based part array: 0,1: part; 2: separator +*/ Gnum * frontab; /*+ Array of frontier vertex numbers +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ Gnum compsize[2]; /*+ Number of vertices in parts (separator is fronnbr) +*/ Gnum compload[3]; /*+ Size of both parts and separator +*/ Gnum comploaddlt; /*+ Load difference between both parts +*/ Gnum dwgttab[2]; /*+ Weights of the two subdomains +*/ Gnum levlnum; /*+ Nested dissection or coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Vgraph; /*+ The graph separator storing structure. +*/ typedef struct VgraphStore_ { Gnum fronnbr; /*+ Number of frontier nodes +*/ Gnum comploaddlt; /*+ Difference from the average +*/ Gnum compload[2]; /*+ Load in both parts +*/ Gnum compsize0; /*+ Number of vertices in part 0 +*/ byte * datatab; /*+ Variable-sized data array +*/ } VgraphStore; /* ** The function prototypes. */ void vgraphExit (Vgraph * const); void vgraphZero (Vgraph * const); int vgraphCheck (const Vgraph * const); int vgraphStoreInit (const Vgraph * const, VgraphStore * const); void vgraphStoreExit (VgraphStore * const); void vgraphStoreSave (const Vgraph * const , VgraphStore * const); void vgraphStoreUpdt (Vgraph * const, const VgraphStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_check.c000066400000000000000000000156761514310134000265240ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the separator **/ /** graph consistency checking routine. **/ /** **/ /** DATES : # Version 3.2 : from : 24 aug 1996 **/ /** to : 03 nov 1997 **/ /** # Version 4.0 : from : 12 dec 2001 **/ /** to : 08 jan 2004 **/ /** # Version 5.0 : from : 16 sep 2006 **/ /** to : 16 sep 2006 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.1 : from : 21 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" /*************************/ /* */ /* These routines handle */ /* separator graphs. */ /* */ /*************************/ /* This routine checks the consistency ** of the given separator graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int vgraphCheck ( const Vgraph * const grafptr) { Gnum vertnum; /* Number of current vertex */ Gnum fronnum; /* Number of frontier vertex */ Gnum compload[3]; Gnum compsize[3]; Gnum commcut[3]; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { if (grafptr->parttax[vertnum] > 2) { errorPrint ("vgraphCheck: invalid part array"); return (1); } } if ((grafptr->fronnbr < 0) || (grafptr->fronnbr > grafptr->s.vertnbr)) { errorPrint ("vgraphCheck: invalid number of frontier vertices"); return (1); } for (fronnum = 0; fronnum < grafptr->fronnbr; fronnum ++) { Gnum vertnum; vertnum = grafptr->frontab[fronnum]; if ((vertnum < grafptr->s.baseval) || (vertnum >= grafptr->s.vertnnd)) { errorPrint ("vgraphCheck: invalid vertex index in frontier array"); return (1); } if (grafptr->parttax[vertnum] != 2) { errorPrint ("vgraphCheck: invalid vertex in frontier array"); return (1); } } compload[0] = compload[1] = compload[2] = 0; compsize[0] = compsize[1] = compsize[2] = 0; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { int partnum; /* Part of current vertex */ Gnum edgenum; /* Number of current edge */ partnum = (int) grafptr->parttax[vertnum]; compload[partnum] += (grafptr->s.velotax == NULL) ? 1 : grafptr->s.velotax[vertnum]; compsize[partnum] ++; commcut[0] = commcut[1] = commcut[2] = 0; if ((grafptr->s.verttax[vertnum] < grafptr->s.baseval) || (grafptr->s.verttax[vertnum] > grafptr->s.vendtax[vertnum])) { errorPrint ("vgraphCheck: invalid graph structure (1)"); return (1); } for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = grafptr->s.edgetax[edgenum]; if ((vertend < grafptr->s.baseval) || (vertend >= grafptr->s.vertnnd)) { errorPrint ("vgraphCheck: invalid graph structure (2)"); return (1); } commcut[grafptr->parttax[vertend]] ++; } #ifdef SCOTCH_DEBUG_VGRAPH3 if (partnum == 2) { if ((commcut[0] == 0) || (commcut[1] == 0)) errorPrintW ("vgraphCheck: no-use separator vertex%s (%ld)", /* Warning only */ ((grafptr->levlnum == 0) ? " at level 0" : ""), (long) vertnum); } else { #else if (partnum != 2) { #endif /* SCOTCH_DEBUG_VGRAPH3 */ if (commcut[1 - partnum] != 0) { errorPrint ("vgraphCheck: vertex should be in separator (%ld)", (long) vertnum); return (1); } } } if ((grafptr->compsize[0] != compsize[0]) || (grafptr->compsize[1] != compsize[1]) || (grafptr->fronnbr != compsize[2])) { errorPrint ("vgraphCheck: invalid part sizes"); return (1); } if ((grafptr->compload[0] != compload[0]) || (grafptr->compload[1] != compload[1]) || (grafptr->compload[2] != compload[2])) { errorPrint ("vgraphCheck: invalid part loads"); return (1); } if (grafptr->comploaddlt != (grafptr->compload[0] * grafptr->dwgttab[1] - grafptr->compload[1] * grafptr->dwgttab[0])) { errorPrint ("vgraphCheck: invalid balance"); return (1); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_bd.c000066400000000000000000000537421514310134000277140ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_bd.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : This module builds a band graph around **/ /** the frontier in order to decrease **/ /** problem size for the strategy to be **/ /** applied. **/ /** **/ /** DATES : # Version 5.0 : from : 18 oct 2004 **/ /** to : 12 sep 2007 **/ /** # Version 5.1 : from : 30 oct 2007 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 02 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 05 may 2019 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_bd.h" #include "vgraph_separate_st.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int vgraphSeparateBd ( Vgraph * restrict const orggrafptr, /*+ Active graph +*/ const VgraphSeparateBdParam * const paraptr) /*+ Method parameters +*/ { VgraphSeparateBdQueue queudat; /* Neighbor queue */ Gnum * restrict orgdisttax; /* Based access to distance array for original graph */ Gnum orgdistmax; /* Maximum distance allowed */ #define orgindxtax orgdisttax /* Recycle distance array as number indexing array */ Vgraph bndgrafdat; /* Band graph structure */ Gnum bndvertnbr; /* Number of regular vertices in band graph (without anchors) */ Gnum bndvertnnd; Gnum * restrict bndvnumtax; /* Band vertex number array, recycling queudat.qtab */ Gnum bndcompsize1; /* Number of regular vertices in part 1 of band graph */ Gnum bndcompload1; /* Load of regular vertices in part 1 */ Gnum bndvlvlnum; /* Index of first band graph vertex to belong to the last layer */ Gnum bndvertnum; Gnum bndvelosum; /* Load of regular vertices in band graph */ Gnum * restrict bndedgetax; Gnum bndedgenbr; /* Upper bound on the number of edges, including anchor edges */ Gnum bndeancnbr; /* Number of anchor edges */ Gnum bndedgenum; Gnum bndedgetmp; Gnum bnddegrmax; Gnum fronnum; const Gnum * restrict const orgverttax = orggrafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const orgvendtax = orggrafptr->s.vendtax; const Gnum * restrict const orgvelotax = orggrafptr->s.velotax; const Gnum * restrict const orgedgetax = orggrafptr->s.edgetax; if (orggrafptr->fronnbr == 0) /* If no separator vertices, apply strategy to full graph */ return (vgraphSeparateSt (orggrafptr, paraptr->stratorg)); orgdistmax = (Gnum) paraptr->distmax; if (orgdistmax < 1) /* To simplify algorithm, always at least one layer of vertices around separator */ orgdistmax = 1; if (memAllocGroup ((void **) (void *) &queudat.qtab, (size_t) (orggrafptr->s.vertnbr * sizeof (Gnum)), /* TRICK: no need of "+ 2" for anchor vertices (see below) */ &orgdisttax, (size_t) (orggrafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vgraphSeparateBd: out of memory (1)"); return (1); } memSet (orgdisttax, ~0, orggrafptr->s.vertnbr * sizeof (Gnum)); /* Initialize distance array */ orgdisttax -= orggrafptr->s.baseval; vgraphSeparateBdQueueFlush (&queudat); /* Flush vertex queue */ bndedgenbr = 0; /* Guess upper bound on the number of edges */ bndvelosum = 0; for (fronnum = 0; fronnum < orggrafptr->fronnbr; fronnum ++) { /* Enqueue separator vertices */ Gnum orgvertnum; orgvertnum = orggrafptr->frontab[fronnum]; #ifdef SCOTCH_DEBUG_VGRAPH2 if ((orgvertnum < orggrafptr->s.baseval) || (orgvertnum >= orggrafptr->s.vertnnd)) { errorPrint ("vgraphSeparateBd: internal error (1)"); memFree (queudat.qtab); /* Free group leader */ return (1); } if (orgdisttax[orgvertnum] != ~0) { errorPrint ("vgraphSeparateBd: internal error (2)"); memFree (queudat.qtab); /* Free group leader */ return (1); } if (orggrafptr->parttax[orgvertnum] != 2) { errorPrint ("vgraphSeparateBd: internal error (3)"); memFree (queudat.qtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ orgdisttax[orgvertnum] = 0; vgraphSeparateBdQueuePut (&queudat, orgvertnum); if (orgvelotax != NULL) bndvelosum += orgvelotax[orgvertnum]; } bndcompsize1 = 0; bndcompload1 = 0; do { /* Loop on vertices in queue */ Gnum orgvertnum; Gnum orgedgenum; Gnum orgdistval; orgvertnum = vgraphSeparateBdQueueGet (&queudat); #ifdef SCOTCH_DEBUG_VGRAPH2 if ((orgvertnum < orggrafptr->s.baseval) || (orgvertnum >= orggrafptr->s.vertnnd)) { errorPrint ("vgraphSeparateBd: internal error (4)"); memFree (queudat.qtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ bndedgenbr += orgvendtax[orgvertnum] - orgverttax[orgvertnum]; /* Exact or upper bound on number of edges, including anchor edge(s) */ orgdistval = orgdisttax[orgvertnum]; /* Get vertex distance */ if (orgdistval >= orgdistmax) { /* If we belong to the farthest layer */ bndedgenbr ++; /* One more anchor edge, for the opposite */ continue; } orgdistval ++; /* Distance of neighbors */ for (orgedgenum = orgverttax[orgvertnum]; orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum orgvertend; Gnum orgpartval1; orgvertend = orgedgetax[orgedgenum]; if (orgdisttax[orgvertend] == ~0) { /* If vertex not visited yet */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (orggrafptr->parttax[orgvertend] > 1) { errorPrint ("vgraphSeparateBd: internal error (5)"); memFree (queudat.qtab); /* Free group leader */ return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ orgpartval1 = orggrafptr->parttax[orgvertend] & 1; orgdisttax[orgvertend] = orgdistval; /* Enqueue vertex */ vgraphSeparateBdQueuePut (&queudat, orgvertend); bndcompsize1 += orgpartval1; /* Count vertices in part 1 */ if (orgvelotax != NULL) { bndvelosum += orgvelotax[orgvertend]; bndcompload1 += orgvelotax[orgvertend] * orgpartval1; } } } } while (! vgraphSeparateBdQueueEmpty (&queudat)); /* As long as queue is not empty */ bndvertnbr = (Gnum) (queudat.head - queudat.qtab); /* Number of regular band graph vertices (withour anchors) is number of enqueued vertices */ if (orgvelotax == NULL) { bndvelosum = bndvertnbr; bndcompload1 = bndcompsize1; } if ((bndcompsize1 >= orggrafptr->compsize[1]) || /* If either part has all of its vertices in band, use plain graph instead */ ((bndvertnbr - bndcompsize1 - orggrafptr->fronnbr) >= orggrafptr->compsize[0])) { memFree (queudat.qtab); /* Free group leader */ return (vgraphSeparateSt (orggrafptr, paraptr->stratorg)); } /* TRICK: since always at least one missing vertex per part, there is room for anchor vertices */ bndvertnnd = bndvertnbr + orggrafptr->s.baseval; bndvnumtax = queudat.qtab - orggrafptr->s.baseval; /* TRICK: re-use queue array as vertex number array as vertices taken in queue order */ for (bndvertnum = orggrafptr->s.baseval; bndvertnum < bndvertnnd; bndvertnum ++) { /* For vertices not belonging to last layer */ Gnum orgvertnum; orgvertnum = bndvnumtax[bndvertnum]; /* Get distance index of vertex */ if (orgindxtax[orgvertnum] >= paraptr->distmax) /* If vertex belongs to last layer */ break; orgindxtax[orgvertnum] = bndvertnum; } bndvlvlnum = bndvertnum; /* Get index of first vertex of last layer */ for ( ; bndvertnum < bndvertnnd; bndvertnum ++) /* For vertices belonging to last layer */ orgindxtax[bndvnumtax[bndvertnum]] = bndvertnum; memSet (&bndgrafdat, 0, sizeof (Vgraph)); bndgrafdat.s.flagval = GRAPHFREETABS | GRAPHVERTGROUP | GRAPHEDGEGROUP; bndgrafdat.s.baseval = orggrafptr->s.baseval; bndgrafdat.s.vertnbr = bndvertnbr + 2; /* "+ 2" for anchor vertices */ bndgrafdat.s.vertnnd = bndvertnnd + 2; if (memAllocGroup ((void **) (void *) /* Do not allocate vnumtab but keep queudat.qtab instead */ &bndgrafdat.s.verttax, (size_t) ((bndvertnbr + 3) * sizeof (Gnum)), &bndgrafdat.s.velotax, (size_t) ((bndvertnbr + 2) * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vgraphSeparateBd: out of memory (2)"); memFree (queudat.qtab); return (1); } bndgrafdat.s.verttax -= orggrafptr->s.baseval; /* Adjust base of arrays */ bndgrafdat.s.vendtax = bndgrafdat.s.verttax + 1; /* Band graph is compact */ bndgrafdat.s.velotax -= orggrafptr->s.baseval; bndgrafdat.s.vnumtax = bndvnumtax; bndgrafdat.s.velosum = orggrafptr->s.velosum; bndgrafdat.s.velotax[bndvertnnd] = orggrafptr->compload[0] - (bndvelosum - orggrafptr->compload[2] - bndcompload1); /* Set loads of anchor vertices */ bndgrafdat.s.velotax[bndvertnnd + 1] = orggrafptr->compload[1] - bndcompload1; if (((bndgrafdat.s.edgetax = (Gnum *) memAlloc (bndedgenbr * sizeof (Gnum))) == NULL) || (bndgrafdat.s.edgetax -= orggrafptr->s.baseval, ((bndgrafdat.parttax = (GraphPart *) memAlloc ((bndvertnbr + 2) * sizeof (GraphPart))) == NULL))) { errorPrint ("vgraphSeparateBd: out of memory (3)"); graphExit (&bndgrafdat.s); memFree (queudat.qtab); return (1); } bndgrafdat.parttax -= orggrafptr->s.baseval; /* From now on we should free a Vgraph and not a Graph */ bndgrafdat.s.flagval |= VGRAPHFREEPART; bndedgetax = bndgrafdat.s.edgetax; for (bndvertnum = bndedgenum = orggrafptr->s.baseval, bnddegrmax = 0; /* Fill index array for vertices not belonging to last level */ bndvertnum < bndvlvlnum; bndvertnum ++) { Gnum orgvertnum; Gnum orgedgenum; orgvertnum = bndvnumtax[bndvertnum]; bndgrafdat.s.verttax[bndvertnum] = bndedgenum; bndgrafdat.s.velotax[bndvertnum] = (orgvelotax != NULL) ? orgvelotax[orgvertnum] : 1; for (orgedgenum = orgverttax[orgvertnum]; /* All edges of first levels are kept */ orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++, bndedgenum ++) { #ifdef SCOTCH_DEBUG_VGRAPH2 if ((bndedgenum >= (bndedgenbr + orggrafptr->s.baseval)) || (orgindxtax[orgedgetax[orgedgenum]] < 0)) { errorPrint ("vgraphSeparateBd: internal error (6)"); vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ bndedgetax[bndedgenum] = orgindxtax[orgedgetax[orgedgenum]]; } bndgrafdat.parttax[bndvertnum] = orggrafptr->parttax[orgvertnum]; /* Copy part array */ if (bnddegrmax < (bndedgenum - bndgrafdat.s.verttax[bndvertnum])) bnddegrmax = (bndedgenum - bndgrafdat.s.verttax[bndvertnum]); } bndeancnbr = 0; for ( ; bndvertnum < bndvertnnd; bndvertnum ++) { /* Fill index array for vertices belonging to last level */ Gnum orgvertnum; Gnum orgedgenum; GraphPart orgpartval; Gnum bnddegrval; orgvertnum = bndvnumtax[bndvertnum]; bndgrafdat.s.verttax[bndvertnum] = bndedgenum; bndgrafdat.s.velotax[bndvertnum] = (orgvelotax != NULL) ? orgvelotax[orgvertnum] : 1; for (orgedgenum = orgverttax[orgvertnum]; /* Keep only band edges */ orgedgenum < orgvendtax[orgvertnum]; orgedgenum ++) { Gnum bndvertend; #ifdef SCOTCH_DEBUG_VGRAPH2 if (bndedgenum >= (bndedgenbr + orggrafptr->s.baseval)) { errorPrint ("vgraphSeparateBd: internal error (7)"); vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ bndvertend = orgindxtax[orgedgetax[orgedgenum]]; if (bndvertend != ~0) bndedgetax[bndedgenum ++] = bndvertend; } orgpartval = orggrafptr->parttax[orgvertnum]; bndgrafdat.parttax[bndvertnum] = orgpartval; /* Record part for vertices of last level */ bnddegrval = bndedgenum - bndgrafdat.s.verttax[bndvertnum]; if (bnddegrval < (orgvendtax[orgvertnum] - orgverttax[orgvertnum])) { /* If vertex is connected to rest of part */ bndedgetax[bndedgenum ++] = bndvertnnd + (Gnum) orgpartval; /* Add anchor edge to proper anchor vertex */ bndeancnbr ++; bnddegrval ++; /* One more (anchor) edge added to this vertex */ } if (bnddegrmax < bnddegrval) bnddegrmax = bnddegrval; } bndgrafdat.parttax[bndvertnnd] = 0; /* Set parts of anchor vertices */ bndgrafdat.parttax[bndvertnnd + 1] = 1; bndgrafdat.s.verttax[bndvertnnd] = bndedgenum; /* Mark end of regular edge array and start of first anchor edge array */ bndedgetmp = bndedgenum + bndeancnbr; #ifdef SCOTCH_DEBUG_VGRAPH2 if ((bndedgetmp - 1) >= (bndedgenbr + orggrafptr->s.baseval)) { errorPrint ("vgraphSeparateBd: internal error (8)"); vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ bndgrafdat.s.edgenbr = bndgrafdat.s.edlosum = bndedgetmp - orggrafptr->s.baseval; /* Since edge load array not kept */ bndgrafdat.s.verttax[bndvertnnd + 2] = bndedgetmp; /* Mark end of edge array with anchor vertices */ for (bndvertnum = bndvlvlnum; bndvertnum < bndvertnnd; bndvertnum ++) { /* Fill anchor edge arrays */ if (bndgrafdat.s.verttax[bndvertnum + 1] > bndgrafdat.s.verttax[bndvertnum]) { /* If vertex is not isolated */ Gnum bndvertend; bndvertend = bndedgetax[bndgrafdat.s.verttax[bndvertnum + 1] - 1]; /* Get last neighbor of its edge sub-array */ if (bndvertend >= bndvertnnd) { /* If it is an anchor */ if (bndvertend == bndvertnnd) /* Add edge from proper anchor */ bndedgetax[bndedgenum ++] = bndvertnum; else bndedgetax[-- bndedgetmp] = bndvertnum; } } } bndgrafdat.s.verttax[bndvertnnd + 1] = bndedgenum; /* Mark end of edge array of first anchor and start of second */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (bndedgenum != bndedgetmp) { errorPrint ("vgraphSeparateBd: internal error (9)"); vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (bnddegrmax < (bndgrafdat.s.verttax[bndvertnnd + 1] - bndgrafdat.s.verttax[bndvertnnd])) bnddegrmax = (bndgrafdat.s.verttax[bndvertnnd + 1] - bndgrafdat.s.verttax[bndvertnnd]); if (bnddegrmax < (bndgrafdat.s.verttax[bndvertnnd + 2] - bndgrafdat.s.verttax[bndvertnnd + 1])) bnddegrmax = (bndgrafdat.s.verttax[bndvertnnd + 2] - bndgrafdat.s.verttax[bndvertnnd + 1]); bndgrafdat.s.degrmax = bnddegrmax; bndgrafdat.s.edgetax = (Gnum *) memRealloc ((void *) (bndgrafdat.s.edgetax + orggrafptr->s.baseval), bndgrafdat.s.edgenbr * sizeof (Gnum)) - orggrafptr->s.baseval; bndgrafdat.frontab = queudat.qtab + bndgrafdat.s.vertnbr; /* Recycle end of queue array and part of index array as band frontier array */ for (fronnum = 0, bndvertnum = orggrafptr->s.baseval; /* Fill band frontier array with first vertex indices as they make the separator */ fronnum < orggrafptr->fronnbr; fronnum ++, bndvertnum ++) bndgrafdat.frontab[fronnum] = bndvertnum; bndgrafdat.fronnbr = orggrafptr->fronnbr; bndgrafdat.compsize[0] = bndvertnbr - bndcompsize1 - orggrafptr->fronnbr + 1; /* "+ 1" for anchor vertices */ bndgrafdat.compsize[1] = bndcompsize1 + 1; bndgrafdat.compload[0] = orggrafptr->compload[0]; bndgrafdat.compload[1] = orggrafptr->compload[1]; bndgrafdat.compload[2] = orggrafptr->compload[2]; bndgrafdat.comploaddlt = orggrafptr->comploaddlt; bndgrafdat.dwgttab[0] = orggrafptr->dwgttab[0]; /* Preserve respective weights */ bndgrafdat.dwgttab[1] = orggrafptr->dwgttab[1]; bndgrafdat.levlnum = orggrafptr->levlnum; bndgrafdat.contptr = orggrafptr->contptr; #ifdef SCOTCH_DEBUG_VGRAPH2 if ((graphCheck (&bndgrafdat.s) != 0) || /* Check band graph consistency */ (vgraphCheck (&bndgrafdat) != 0)) { errorPrint ("vgraphSeparateBd: inconsistent band graph data"); bndgrafdat.frontab = NULL; /* Do not free frontab as it is not allocated */ vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (vgraphSeparateSt (&bndgrafdat, paraptr->stratbnd) != 0) { /* Apply strategy to band graph */ errorPrint ("vgraphSeparateBd: cannot separate band graph"); bndgrafdat.frontab = NULL; /* Do not free frontab as it is not allocated */ vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (1); } if ((bndgrafdat.parttax[bndvertnnd] != 0) || /* If band graph was too small and anchors changed parts, apply strategy on full graph */ (bndgrafdat.parttax[bndvertnnd + 1] != 1)) { bndgrafdat.frontab = NULL; /* Do not free frontab as it is not allocated */ vgraphExit (&bndgrafdat); memFree (queudat.qtab); return (vgraphSeparateSt (orggrafptr, paraptr->stratorg)); } orggrafptr->compload[0] = bndgrafdat.compload[0]; orggrafptr->compload[1] = bndgrafdat.compload[1]; orggrafptr->compload[2] = bndgrafdat.compload[2]; orggrafptr->comploaddlt = bndgrafdat.comploaddlt; orggrafptr->compsize[0] = orggrafptr->compsize[0] - (bndvertnbr - bndcompsize1 - orggrafptr->fronnbr) + bndgrafdat.compsize[0] - 1; /* "- 1" for anchors */ orggrafptr->compsize[1] = orggrafptr->compsize[1] - bndcompsize1 + bndgrafdat.compsize[1] - 1; orggrafptr->fronnbr = bndgrafdat.fronnbr; for (bndvertnum = bndgrafdat.s.baseval; bndvertnum < bndvertnnd; bndvertnum ++) /* Update part array of full graph */ orggrafptr->parttax[bndvnumtax[bndvertnum]] = bndgrafdat.parttax[bndvertnum]; for (fronnum = 0; fronnum < bndgrafdat.fronnbr; fronnum ++) /* Update frontier array of full graph */ orggrafptr->frontab[fronnum] = bndgrafdat.s.vnumtax[bndgrafdat.frontab[fronnum]]; vgraphExit (&bndgrafdat); /* Free band graph structures */ memFree (queudat.qtab); #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (orggrafptr) != 0) { errorPrint ("vgraphSeparateBd: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_bd.h000066400000000000000000000076271514310134000277220ustar00rootroot00000000000000/* Copyright 2004,2007,2010 ENSEIRB, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_bd.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** : Cedric CHEVALIER **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the separation graph banding **/ /** module. **/ /** **/ /** DATES : Version 5.0 : from : 18 oct 2004 **/ /** to : 16 sep 2006 **/ /** Version 5.1 : from : 30 oct 2007 **/ /** to : 04 nov 2010 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VgraphSeparateBdParam_ { Gnum distmax; /*+ Maximum distance to separator +*/ Strat * stratbnd; /*+ Strategy for band graph +*/ Strat * stratorg; /*+ Strategy for original graph +*/ } VgraphSeparateBdParam; /*+ Neighbor queue. +*/ typedef struct VgraphSeparateBdQueue_ { Gnum * head; /*+ Head of distance queue +*/ Gnum * tail; /*+ Tail of distance queue +*/ Gnum * qtab; /*+ Array of queue elements +*/ } VgraphSeparateBdQueue; /* ** The function prototypes. */ int vgraphSeparateBd (Vgraph * restrict const, const VgraphSeparateBdParam * restrict const); /* ** The macro definitions. */ #define vgraphSeparateBdQueueFlush(queue) ((queue)->head = (queue)->tail = (queue)->qtab) #define vgraphSeparateBdQueueEmpty(queue) ((queue)->head <= (queue)->tail) #define vgraphSeparateBdQueuePut(queue,vnum) (* ((queue)->head ++) = (vnum)) #define vgraphSeparateBdQueueGet(queue) (* ((queue)->tail ++)) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_df.c000066400000000000000000000310111514310134000277010ustar00rootroot00000000000000/* Copyright 2007,2013,2018,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_df.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes a separator of **/ /** a separation graph by using a diffusion **/ /** scheme. **/ /** **/ /** NOTES : # This algorithm has been designed to **/ /** work on band graphs only, for which **/ /** the two anchor vertices are the two **/ /** last vertices, the before-last as **/ /** anchor of part 0, and the last as **/ /** anchor of part 1. **/ /** **/ /** DATES : # Version 5.1 : from : 29 oct 2007 **/ /** to : 24 may 2008 **/ /** # Version 6.0 : from : 24 dec 2013 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 27 nov 2021 **/ /** to : 27 nov 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_df.h" /* ** The static variables. */ static const Gnum vgraphseparatedfloadone = 1; /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the separation. ** It returns: ** - 0 : if the separator could be computed. ** - 1 : on error. */ int vgraphSeparateDf ( Vgraph * restrict const grafptr, /*+ Active graph +*/ const VgraphSeparateDfParam * const paraptr) /*+ Method parameters +*/ { float * restrict edlstax; /* Degree array */ float * restrict difotax; /* Old diffusion value array */ float * restrict difntax; /* New diffusion value array */ float * restrict difttax; /* Temporary swap value */ float cdifval; float cremval; Gnum fronnum; Gnum compload0avg; Gnum compload2; Gnum compsize1; float veloval; float vanctab[2]; INT movenum; INT passnum; const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; Gnum * restrict const frontab = grafptr->frontab; GraphPart * restrict const parttax = grafptr->parttax; if (memAllocGroup ((void **) (void *) &edlstax, (size_t) (grafptr->s.vertnbr * sizeof (float)), &difotax, (size_t) (grafptr->s.vertnbr * sizeof (float)), &difntax, (size_t) (grafptr->s.vertnbr * sizeof (float)), NULL) == NULL) { errorPrint ("vgraphSeparateDf: out of memory"); return (1); } edlstax -= grafptr->s.baseval; /* Base access to edlstax and diffusion arrays */ difotax -= grafptr->s.baseval; difntax -= grafptr->s.baseval; if (grafptr->s.edlotax == NULL) { /* If graph has no edge weights */ Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) edlstax[vertnum] = (float) (vendtax[vertnum] - verttax[vertnum]); } else { /* If graph has edge weights */ Gnum vertnum; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum edgenum; Gnum edlosum; for (edgenum = verttax[vertnum], edlosum = 0; edgenum < vendtax[vertnum]; edgenum ++) edlosum += grafptr->s.edlotax[edgenum]; edlstax[vertnum] = (float) edlosum; } } compload0avg = (grafptr->compload[0] + grafptr->compload[2] / 2); passnum = 0; do { const Gnum * restrict velobax; Gnum velomsk; Gnum compload0; Gnum compload1; int rootval; /* Root part for separator vertices */ Gnum vertnum; compload0 = compload0avg - grafptr->compload[2] / 2; compload1 = grafptr->s.velosum - compload0avg - (grafptr->compload[2] + 1) / 2; vanctab[0] = (float) (- compload0 * grafptr->dwgttab[0]); /* Values to be injected to anchor vertices at every iteration */ vanctab[1] = (float) ( compload1 * grafptr->dwgttab[1]) - VGRAPHSEPARATEDFEPSILON; /* Slightly tilt value to add to part 1 */ rootval = (paraptr->partval + passnum) & 1; /* Compute index of part which will receive separator vertices */ if (rootval == 0) /* If separator must be aggregated to part 0 */ vanctab[0] -= (float) grafptr->compload[2] * grafptr->dwgttab[0]; else vanctab[1] += (float) grafptr->compload[2] * grafptr->dwgttab[1]; #ifdef COMMON_CODING_FLOAT_NOIEEE for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd - 2; vertnum ++) difotax[vertnum] = 0.0F; #else /* COMMON_CODING_FLOAT_NOIEEE */ memSet (difotax + grafptr->s.baseval, 0, (grafptr->s.vertnbr - 2) * sizeof (float)); #endif /* COMMON_CODING_FLOAT_NOIEEE */ difotax[grafptr->s.vertnnd - 2] = vanctab[0] / edlstax[grafptr->s.vertnnd - 2]; /* Load anchor vertices for first move */ difotax[grafptr->s.vertnnd - 1] = vanctab[1] / edlstax[grafptr->s.vertnnd - 1]; veloval = 1.0F; /* Assume no vertex loads */ cdifval = (float) paraptr->cdifval; cremval = (float) paraptr->cremval; for (movenum = 0; movenum < paraptr->movenbr; movenum ++) { /* For all moves */ Gnum vertnum; Gnum vertnnd; vertnum = grafptr->s.baseval; vertnnd = grafptr->s.vertnnd - 2; while (1) { for ( ; vertnum < vertnnd; vertnum ++) { Gnum edgenum; Gnum edgennd; float diffval; edgenum = verttax[vertnum]; edgennd = vendtax[vertnum]; diffval = 0.0F; if (grafptr->s.edlotax != NULL) for ( ; edgenum < edgennd; edgenum ++) diffval += difotax[edgetax[edgenum]] * (float) grafptr->s.edlotax[edgenum]; else for ( ; edgenum < edgennd; edgenum ++) diffval += difotax[edgetax[edgenum]]; if (grafptr->s.velotax != NULL) veloval = (float) grafptr->s.velotax[vertnum]; diffval *= cdifval; diffval += difotax[vertnum] * cremval * edlstax[vertnum]; if (diffval >= 0.0F) { diffval -= veloval; if (diffval <= 0.0F) diffval = +VGRAPHSEPARATEDFEPSILON; } else { diffval += veloval; if (diffval >= 0.0F) diffval = -VGRAPHSEPARATEDFEPSILON; } if (isnan (diffval)) /* If overflow occured */ goto abort; /* Exit main loop without swapping arrays so as to keep last valid iteration */ difntax[vertnum] = diffval / edlstax[vertnum]; /* Prepare vertex for diffusion */ } if (vertnum == grafptr->s.vertnnd) /* If all vertices processed, exit intermediate infinite loop */ break; vertnnd ++; /* Prepare to go only for one more run */ } difttax = difntax; /* Swap old and new diffusion arrays */ difntax = difotax; difotax = difttax; } abort : /* If overflow occured, resume here */ for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) /* Pre-set parts without separator */ parttax[vertnum] = (difotax[vertnum] <= 0.0F) ? 0 : 1; if (grafptr->s.velotax != NULL) { velobax = grafptr->s.velotax; velomsk = ~((Gnum) 0); } else { velobax = &vgraphseparatedfloadone; velomsk = 0; } veloval = 1.0F; /* Assume no vertex loads */ for (vertnum = grafptr->s.baseval, fronnum = compsize1 = compload1 = compload2 = 0; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum partval; GraphPart partend; Gnum veloval; partend = parttax[vertnum] ^ 1; partval = (Gnum) parttax[vertnum]; veloval = velobax[vertnum & velomsk]; compsize1 += partval; /* Here, part is 0 or 1 only */ compload1 += partval * veloval; if (partval == (Gnum) rootval) { /* Only vertices of aggregated part can be in separator */ Gnum edgenum; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { if (parttax[edgetax[edgenum]] == partend) { /* If end vertex is in other part (and not in separator) */ frontab[fronnum ++] = vertnum; /* Record it */ parttax[vertnum] = 2; compload2 += veloval; break; /* No need to go further */ } } } } grafptr->compload[0] = grafptr->s.velosum - compload1; grafptr->compload[1] = compload1; grafptr->compload[2] = compload2; grafptr->compload[rootval] -= compload2; grafptr->comploaddlt = grafptr->compload[0] * grafptr->dwgttab[1] - grafptr->compload[1] * grafptr->dwgttab[0]; grafptr->compsize[0] = grafptr->s.vertnbr - compsize1; grafptr->compsize[1] = compsize1; grafptr->compsize[rootval] -= fronnum; grafptr->fronnbr = fronnum; } while (++ passnum < paraptr->passnbr); /* As long as not all passes performed */ memFree (edlstax + grafptr->s.baseval); /* Free group leader */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (grafptr) != 0) { errorPrint ("vgraphSeparateDf: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_df.h000066400000000000000000000067231514310134000277220ustar00rootroot00000000000000/* Copyright 2007,2008,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_df.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the diffusion vertex separation **/ /** method. **/ /** **/ /** DATES : # Version 5.1 : from : 29 oct 2007 **/ /** to : 24 may 2008 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /* Small non-zero float value. */ #define VGRAPHSEPARATEDFEPSILON (1.0F / (float) (GNUMMAX)) /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct VgraphSeparateDfParam_ { INT partval; /*+ Part to aggregate to separator +*/ INT movenbr; /*+ Number of moves to do +*/ INT passnbr; /*+ Number of passes to do +*/ double cdifval; /*+ Coefficient of diffused load +*/ double cremval; /*+ Coefficient of remaining load +*/ } VgraphSeparateDfParam; /* ** The function prototypes. */ int vgraphSeparateDf (Vgraph * restrict const, const VgraphSeparateDfParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_es.c000066400000000000000000001042011514310134000277210ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2013,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_es.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a matrix ordering software. **/ /** This module computes the node separator **/ /** of a graph based on the edge-separation **/ /** module of "bgraph_bipart_st.c". **/ /** **/ /** DATES : # Version 3.2 : from : 17 oct 1996 **/ /** to : 07 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 18 aug 2004 **/ /** to : 20 aug 2004 **/ /** # Version 5.0 : from : 24 jan 2007 **/ /** to : 12 sep 2007 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.1 : from : 01 nov 2021 **/ /** to : 01 nov 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /** NOTES : # This algorithm comes from: **/ /** "Computing the Block Triangular form **/ /** of a Sparse Matrix", A. Pothen and **/ /** C.-J. Fan, ACM Trans. on Mathematical **/ /** Software, 16 (4), pp 303-324, 1990. **/ /** and from: **/ /** "Implementations of $O(n^{1/2}\tau)$ **/ /** assignment algorithms", I. Duff and **/ /** T. Wieberg, ACM Trans. on Math. **/ /** Software, 4, pp 267-287, 1988. **/ /** **/ /** # The choice of the separator to take, **/ /** either HR u SC u VC or HR u SR u VC, **/ /** is made regarding the size of the **/ /** separator only, irrespective of its **/ /** balance. This choice is made because **/ /** else an imbalance ratio should be **/ /** provided for this method, and because **/ /** it is assumed that the edge biparti- **/ /** tioning method is assumed to have **/ /** reached suitable balance. When they **/ /** are equal, the choice is biased **/ /** towards SR, because the xC block is **/ /** the one which has less vertices so **/ /** removing more separator vertices from **/ /** it would mean increasing imbalance. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VGRAPH_SEPARATE_ES #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "vgraph.h" #include "vgraph_separate_es.h" /*********************************************/ /* */ /* These routines compute a vertex separator */ /* from an edge separator represented as a */ /* bipartite graph, by minimum covering. */ /* */ /*********************************************/ /* This routine computes a vertex separator ** from an edge separator represented as a ** bipartite graph, by minimum covering. ** It returns: ** - 0 : if a separator could be computed. ** - !0 : on error. */ static int vgraphSeparateEsCover ( const Graph * restrict const grafptr, /* Bipartite graph to cover */ const Gnum partnbr, /* Number of vertices in first part */ Gnum * const sepatab, /* Array of covering vertices */ Gnum * const sepaptr) /* Pointer to size of the array */ { Gnum * restrict levltax; /* Array of vertex level values */ Gnum levlmax; /* Maximum level searched */ Gnum * restrict listtab; /* List of reachable augmenting rows */ Gnum listnbr; /* Number of items in list */ Gnum * restrict matetax; /* Matching array */ Gnum * queutab; /* Queue of (free) column nodes */ Gnum * restrict queuhead; /* Head of queue */ Gnum * restrict queutail; /* Tail of queue */ VgraphSeparateEsTrav * restrict travtax; /* Array of traversal flag values */ VgraphSeparateEsType * restrict typetax; /* Vertex type in the graph */ Gnum loadcval; /* Load of subset (HR u SC u VC) */ Gnum loadrval; /* Load of subset (HR u SR u VC) */ Gnum sizecval; /* Load of subset (HR u SC u VC) */ Gnum sizerval; /* Load of subset (HR u SR u VC) */ Gnum vertnum; #ifdef SCOTCH_DEBUG_VGRAPH2 if (sizeof (VgraphSeparateEsType) > sizeof (VgraphSeparateEsTrav)) { /* Assert next trick will work */ errorPrint ("vgraphSeparateEsCover: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (memAllocGroup ((void **) (void *) &travtax, (size_t) (grafptr->vertnbr * sizeof (VgraphSeparateEsTrav)), /* TRICK: VgraphSeparateEsType should also fit */ &matetax, (size_t) (grafptr->vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vgraphSeparateEsCover: out of memory (1)"); return (1); } if (memAllocGroup ((void **) (void *) &queutab, (size_t) (partnbr * sizeof (Gnum)), &levltax, (size_t) (grafptr->vertnbr * sizeof (Gnum)), &listtab, (size_t) (grafptr->vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vgraphSeparateEsCover: out of memory (2)"); memFree (travtax); /* Not based yet */ return (1); } travtax -= grafptr->baseval; matetax -= grafptr->baseval; levltax -= grafptr->baseval; memSet (matetax + (partnbr + grafptr->baseval), ~0, (grafptr->vertnbr - partnbr) * sizeof (Gnum)); for (vertnum = grafptr->baseval; /* Compute a cheap matching */ vertnum < (partnbr + grafptr->baseval); vertnum ++) { Gnum edgenum; Gnum matenum; for (edgenum = grafptr->verttax[vertnum], matenum = ~0; /* Search a matching end vertex */ edgenum < grafptr->vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = grafptr->edgetax[edgenum]; if (matetax[vertend] == ~0) { /* If an unmatched end vertex is found */ matenum = vertend; matetax[vertend] = vertnum; break; } } matetax[vertnum] = matenum; } do { /* Matching augmentation loop */ queuhead = /* Flush the data structures */ queutail = queutab; listnbr = 0; memSet (levltax + grafptr->baseval, 0, grafptr->vertnbr * sizeof (Gnum)); memSet (travtax + grafptr->baseval, 0, grafptr->vertnbr * sizeof (VgraphSeparateEsTrav)); levlmax = ~0; for (vertnum = grafptr->baseval; /* Enqueue unmatched column nodes */ vertnum < (partnbr + grafptr->baseval); vertnum ++) { if (matetax[vertnum] == ~0) { *queuhead ++ = vertnum; levltax[vertnum] = 1; } } while (queuhead > queutail) { /* As long as there are free columns */ Gnum vertcol; vertcol = *queutail ++; /* Get the free column vertex */ if (levltax[vertcol] < levlmax) { Gnum edgenum; travtax[vertcol] = VGRAPHSEPAESTRAVUSED; /* Column has been reached */ for (edgenum = grafptr->verttax[vertcol]; /* For all neighboring rows */ edgenum < grafptr->vendtax[vertcol]; edgenum ++) { Gnum vertrow; vertrow = grafptr->edgetax[edgenum]; if (travtax[vertrow] == VGRAPHSEPAESTRAVFREE) { /* If row not yet reached yet */ travtax[vertrow] = VGRAPHSEPAESTRAVUSED; /* Now it is */ if (matetax[vertrow] == ~0) { /* If row is unmatched */ listtab[listnbr ++] = vertrow; /* Put it in list */ levlmax = levltax[vertcol]; /* Do not go any further */ } else { /* Row is matched */ *queuhead ++ = matetax[vertrow]; /* Enqueue its matching column */ levltax[matetax[vertrow]] = levltax[vertcol] + 1; } } } } } if (listnbr <= 0) /* If no free rows could be reached */ break; /* Then the matching is maximal */ while (-- listnbr >= 0) /* For all rows in list, try to augment the matching */ vgraphSeparateEsCoverAugment (levltax, levlmax, matetax, travtax, grafptr->verttax, grafptr->vendtax, grafptr->edgetax, listtab[listnbr]); } while (1); memFree (queutab); /* Free group leader of arrays no longer in use */ typetax = (VgraphSeparateEsType *) travtax; /* TRICK: re-use traversal table as type table */ for (vertnum = grafptr->baseval; vertnum < (partnbr + grafptr->baseval); vertnum ++) /* Pre-set vertex types */ typetax[vertnum] = VGRAPHSEPAESTYPESC; for ( ; vertnum < grafptr->vertnnd; vertnum ++) typetax[vertnum] = VGRAPHSEPAESTYPESR; for (vertnum = grafptr->baseval; vertnum < (partnbr + grafptr->baseval); vertnum ++) /* For all column vertices */ if (matetax[vertnum] == ~0) /* If vertex is unmatched */ vgraphSeparateEsCoverCol (matetax, typetax, grafptr->verttax, grafptr->vendtax, grafptr->edgetax, vertnum); /* Find HC and HR */ for ( ; vertnum < grafptr->vertnnd; vertnum ++) /* For all row vertices */ if (matetax[vertnum] == ~0) /* If vertex is unmatched */ vgraphSeparateEsCoverRow (matetax, typetax, grafptr->verttax, grafptr->vendtax, grafptr->edgetax, vertnum); /* Find VC and VR */ sizecval = /* Reset sizes */ sizerval = 0; if (grafptr->velotax != NULL) { /* If graph vertices are weighted */ Gnum vertnum; loadcval = /* Reset loads */ loadrval = 0; for (vertnum = 0; vertnum < grafptr->vertnbr; vertnum ++) { /* Accumulate loads */ VgraphSeparateEsType typeval; Gnum veloval; Gnum bitcval; Gnum bitrval; typeval = typetax[vertnum]; veloval = grafptr->velotax[vertnum]; bitcval = (typeval >> VGRAPHSEPAESTYPEBITC) & 1; bitrval = typeval >> VGRAPHSEPAESTYPEBITR; /* TRICK: highest bit so does not need mask */ loadcval += bitcval * veloval; /* Superscalar update */ loadrval += bitrval * veloval; sizecval += bitcval; sizerval += bitrval; } } else { /* Graph vertices are not weighted */ Gnum vertnum; for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) { /* Accumulate vertex sizes */ sizecval += (typetax[vertnum] >> VGRAPHSEPAESTYPEBITC) & 1; /* Superscalar update */ sizerval += typetax[vertnum] >> VGRAPHSEPAESTYPEBITR; /* TRICK: highest bit so does not need mask */ } loadcval = sizecval; /* Loads equal sizes */ loadrval = sizerval; } if (loadcval < loadrval) { /* If separator with SC is smaller */ Gnum vertnum; Gnum sepanum; *sepaptr = sizecval; for (vertnum = grafptr->baseval, sepanum = 0; vertnum < grafptr->vertnnd; vertnum ++) { if ((typetax[vertnum] & VGRAPHSEPAESTYPEHRSCVC) != 0) { #ifdef SCOTCH_DEBUG_VGRAPH2 if ((sepanum >= sizecval) || ((typetax[vertnum] != VGRAPHSEPAESTYPEHR) && (typetax[vertnum] != VGRAPHSEPAESTYPESC) && (typetax[vertnum] != VGRAPHSEPAESTYPEVC))) { errorPrint ("vgraphSeparateEsCover: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ sepatab[sepanum ++] = vertnum; } } #ifdef SCOTCH_DEBUG_VGRAPH2 if (sepanum != sizecval) { errorPrint ("vgraphSeparateEsCover: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ } else { /* If separator with SR is smaller */ Gnum vertnum; Gnum sepanum; *sepaptr = sizerval; for (vertnum = grafptr->baseval, sepanum = 0; vertnum < grafptr->vertnnd; vertnum ++) { if ((typetax[vertnum] & VGRAPHSEPAESTYPEHRSRVC) != 0) { #ifdef SCOTCH_DEBUG_VGRAPH2 if ((sepanum >= sizerval) || ((typetax[vertnum] != VGRAPHSEPAESTYPEHR) && (typetax[vertnum] != VGRAPHSEPAESTYPESR) && (typetax[vertnum] != VGRAPHSEPAESTYPEVC))) { errorPrint ("vgraphSeparateEsCover: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ sepatab[sepanum ++] = vertnum; } } #ifdef SCOTCH_DEBUG_VGRAPH2 if (sepanum != sizerval) { errorPrint ("vgraphSeparateEsCover: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ } memFree (travtax + grafptr->baseval); /* Free group leader of remaining arrays */ return (0); } /* This routine augments the current matching ** by performing a backtracking depth-first ** search from a free row vertex to a free ** column vertex, guided by the level values. ** It returns: ** - 0 : backtracking succeeded. ** - !0 : could not find a valid return path. */ static int vgraphSeparateEsCoverAugment ( const Gnum * restrict const levltax, const Gnum levlcur, /* Current backtracking level */ Gnum * restrict const matetax, VgraphSeparateEsTrav * restrict const travtax, const Gnum * restrict const verttax, const Gnum * restrict const vendtax, const Gnum * restrict const edgetax, const Gnum vertrow) /* Row vertex to backtrack from */ { Gnum edgenum; travtax[vertrow] = VGRAPHSEPAESTRAVDRTY; /* Never re-use this row */ for (edgenum = verttax[vertrow]; edgenum < vendtax[vertrow]; edgenum ++) { Gnum vertcol; vertcol = edgetax[edgenum]; /* Get column vertex */ if ((travtax[vertcol] == VGRAPHSEPAESTRAVUSED) && /* If this column may be a backtracking path */ (levltax[vertcol] == levlcur)) { /* At the proper distance from a free column */ travtax[vertcol] = VGRAPHSEPAESTRAVDRTY; /* Never re-use this column */ if ((levlcur == 1) || /* If we have (recursively) reached a free column vertex */ (vgraphSeparateEsCoverAugment (levltax, levlcur - 1, matetax, travtax, verttax, vendtax, edgetax, matetax[vertcol]) == 0)) { matetax[vertcol] = vertrow; /* Switch the edges of the augmenting path */ matetax[vertrow] = vertcol; return (0); /* Backtracking process is under way */ } } } return (1); /* No improvement could be done */ } /* Starting from unmatched column and row vertices, ** these routines perform depth-first traversals of ** the bipartite graph, following alternating paths. ** It is assumed that the matchings are sufficently ** large, so that the depth of the trees is small ** and the stack will not overflow. ** They return: ** - VOID : in all cases. */ static void vgraphSeparateEsCoverCol ( const Gnum * restrict const matetax, VgraphSeparateEsType * restrict const typetax, const Gnum * restrict const verttax, const Gnum * restrict const vendtax, const Gnum * restrict const edgetax, const Gnum vertcol) /* Column vertex index */ { Gnum edgenum; if (typetax[vertcol] == VGRAPHSEPAESTYPEHC) /* If vertex already traversed */ return; typetax[vertcol] = VGRAPHSEPAESTYPEHC; for (edgenum = verttax[vertcol]; edgenum < vendtax[vertcol]; edgenum ++) { Gnum vertrow; vertrow = edgetax[edgenum]; if (typetax[vertrow] == VGRAPHSEPAESTYPEHR) /* If end vertex already traversed */ continue; /* Skip to next vertex */ typetax[vertrow] = VGRAPHSEPAESTYPEHR; if (matetax[vertrow] != ~0) /* If end vertex matched */ vgraphSeparateEsCoverCol (matetax, typetax, verttax, vendtax, edgetax, matetax[vertrow]); } } static void vgraphSeparateEsCoverRow ( const Gnum * restrict const matetax, VgraphSeparateEsType * restrict const typetax, const Gnum * restrict const verttax, const Gnum * restrict const vendtax, const Gnum * restrict const edgetax, const Gnum vertrow) /* Row vertex index */ { Gnum edgenum; if (typetax[vertrow] == VGRAPHSEPAESTYPEVR) /* If vertex already traversed */ return; typetax[vertrow] = VGRAPHSEPAESTYPEVR; for (edgenum = verttax[vertrow]; edgenum < vendtax[vertrow]; edgenum ++) { Gnum vertcol; vertcol = edgetax[edgenum]; if (typetax[vertcol] == VGRAPHSEPAESTYPEVC) /* If end vertex already traversed */ continue; /* Skip to next vertex */ typetax[vertcol] = VGRAPHSEPAESTYPEVC; if (matetax[vertcol] != ~0) /* If end vertex matched */ vgraphSeparateEsCoverRow (matetax, typetax, verttax, vendtax, edgetax, matetax[vertcol]); } } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine separates the given graph by first ** computing an edge separator, according to the ** given bipartitioning strategy, and then turning ** it into a vertex separator. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int vgraphSeparateEs ( Vgraph * restrict const grafptr, /*+ Active graph +*/ const VgraphSeparateEsParam * const paraptr) /*+ Method parameters +*/ { Bgraph actgrafdat; /* Active graph structure */ Graph bipgrafdat; /* Bipartite graph structure */ actgrafdat.s = grafptr->s; /* Initialize active graph */ actgrafdat.s.flagval = grafptr->s.flagval & ~(GRAPHFREETABS | BGRAPHFREEPART | BGRAPHFREEFRON); actgrafdat.s.vnumtax = NULL; actgrafdat.s.vlbltax = NULL; actgrafdat.veextax = NULL; /* No external gains */ actgrafdat.parttax = grafptr->parttax; /* Inherit arrays from vertex separation graph */ actgrafdat.frontab = grafptr->frontab; bgraphInit2 (&actgrafdat, 1, grafptr->dwgttab[0], grafptr->dwgttab[1], 0, 0); /* Complete initialization and set all vertices to part 0 */ if (bgraphBipartSt (&actgrafdat, paraptr->strat) != 0) { /* Bipartition active subgraph */ errorPrint ("vgraphSeparateEs: cannot bipartition active graph"); return (1); } grafptr->compload[0] = actgrafdat.compload0; /* Reset vertex counts */ grafptr->compload[1] = actgrafdat.s.velosum - actgrafdat.compload0; grafptr->compsize[0] = actgrafdat.compsize0; grafptr->compsize[1] = actgrafdat.s.vertnbr - actgrafdat.compsize0; if (actgrafdat.fronnbr > 0) { /* If edge separator is not empty */ if (paraptr->widtval == VGRAPHSEPAESWIDTHTHIN) { /* If thin vertex separator wanted */ Gnum * restrict actvnumtax; Gnum actfronnum; Gnum bipvelosum; Gnum bipedgenbr; /* Number of edges in bipartite graph (i.e. arcs) */ Gnum bipedgenbr0; /* Number of edges adjacent to part 0 */ Gnum bipedgenbr1; /* Number of edges adjacent to part 1 */ Gnum bipvertnbr0; /* Number of vertices in part 0 */ Gnum bipvertnbr1; /* Number of vertices in part 1 */ Gnum bipvertnbrp; /* Number of vertices in part put in first place */ Gnum bippartval; /* Part of bipartite graph to be put in first place */ Gnum compsizep; /* Number of vertices to be removed from part p */ Gnum compload01; /* Load of vertices to be removed from both parts */ Gnum comploadp; /* Load of vertices to be removed from part p */ if ((actvnumtax = (Gnum *) memAlloc (actgrafdat.s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("vgraphSeparateEs: out of memory (1)"); return (1); } #ifdef SCOTCH_DEBUG_VGRAPH2 memSet (actvnumtax, ~0, actgrafdat.s.vertnbr * sizeof (Gnum)); #endif /* SCOTCH_DEBUG_VGRAPH2 */ actvnumtax -= actgrafdat.s.baseval; bipedgenbr = 0; /* Initialize bipartite graph counts */ bipvertnbr0 = bipvertnbr1 = 0; for (actfronnum = 0; actfronnum < actgrafdat.fronnbr; actfronnum ++) { /* For all frontier vertices */ Gnum actvertnum; int actpartval; Gnum actedgenum; actvertnum = grafptr->frontab[actfronnum]; actpartval = grafptr->parttax[actvertnum]; if (actpartval == 0) { /* Count separator edges only for nodes of one side and multply by 2 */ for (actedgenum = actgrafdat.s.verttax[actvertnum]; actedgenum < actgrafdat.s.vendtax[actvertnum]; actedgenum ++) bipedgenbr += (actpartval ^ grafptr->parttax[actgrafdat.s.edgetax[actedgenum]]); } actvnumtax[actvertnum] = actpartval * (bipvertnbr1 - bipvertnbr0) + bipvertnbr0; /* Count and number separator vertices on each side */ bipvertnbr0 += actpartval ^ 1; /* Superscalar update */ bipvertnbr1 += actpartval; } bipedgenbr *= 2; /* Count both sides of arcs */ bipgrafdat.flagval = GRAPHFREEVERT | GRAPHVERTGROUP; /* Initialize bipartite graph structure */ bipgrafdat.baseval = 0; /* Base bipartite graph from 0 */ bipgrafdat.vertnbr = bipgrafdat.vertnnd = bipvertnbr0 + bipvertnbr1; if (memAllocGroup ((void **) (void *) &bipgrafdat.verttax, (size_t) ((bipgrafdat.vertnbr + 1) * sizeof (Gnum)), &bipgrafdat.velotax, (size_t) ((actgrafdat.s.velotax != NULL) ? (bipgrafdat.vertnbr * sizeof (Gnum)) : 0), &bipgrafdat.vnumtax, (size_t) (bipgrafdat.vertnbr * sizeof (Gnum)), &bipgrafdat.edgetax, (size_t) (bipedgenbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("vgraphSeparateEs: out of memory (2)"); memFree (actvnumtax + actgrafdat.s.baseval); return (1); } bipgrafdat.vendtax = bipgrafdat.verttax + 1; if (actgrafdat.s.velotax == NULL) bipgrafdat.velotax = NULL; bipgrafdat.vlbltax = NULL; bipgrafdat.edgenbr = bipedgenbr; bipgrafdat.edlotax = NULL; bipgrafdat.edlosum = bipedgenbr; bipgrafdat.degrmax = grafptr->s.degrmax; bippartval = (bipvertnbr0 <= bipvertnbr1) ? 0 : 1; /* Select smallest part to be placed first */ if (bippartval == 0) { bipvertnbrp = bipvertnbr0; bipedgenbr0 = 0; bipedgenbr1 = bipedgenbr / 2; } else { bipvertnbrp = bipvertnbr1; bipedgenbr0 = bipedgenbr / 2; bipedgenbr1 = 0; } bipvelosum = 0; for (actfronnum = 0; actfronnum < actgrafdat.fronnbr; actfronnum ++) { /* For all frontier vertices */ Gnum actvertnum; int actpartval; Gnum bipvertnum; Gnum actedgenum; actvertnum = grafptr->frontab[actfronnum]; actpartval = grafptr->parttax[actvertnum]; bipvertnum = (actpartval ^ bippartval) * bipvertnbrp + actvnumtax[actvertnum]; if (bipgrafdat.velotax != NULL) { Gnum actveloval; actveloval = actgrafdat.s.velotax[actvertnum]; bipvelosum += actveloval; bipgrafdat.velotax[bipvertnum] = actveloval; } bipgrafdat.vnumtax[bipvertnum] = actvertnum; bipgrafdat.verttax[bipvertnum] = actpartval * (bipedgenbr1 - bipedgenbr0) + bipedgenbr0; for (actedgenum = actgrafdat.s.verttax[actvertnum]; /* Count separator edges */ actedgenum < actgrafdat.s.vendtax[actvertnum]; actedgenum ++) { Gnum actvertend; int actpartend; actvertend = actgrafdat.s.edgetax[actedgenum]; actpartend = grafptr->parttax[actvertend]; if (actpartend != actpartval) { Gnum bipedgenum; #ifdef SCOTCH_DEBUG_VGRAPH2 if (actvnumtax[actvertend] == ~0) { errorPrint ("vgraphSeparateEs: internal error (1)"); graphExit (&bipgrafdat); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ bipedgenum = actpartval * (bipedgenbr1 - bipedgenbr0) + bipedgenbr0; bipedgenbr0 += actpartval ^ 1; /* Superscalar update */ bipedgenbr1 += actpartval; bipgrafdat.edgetax[bipedgenum] = actvnumtax[actvertend] + (actpartend ^ bippartval) * bipvertnbrp; } } } bipgrafdat.verttax[bipgrafdat.vertnbr] = bipgrafdat.edgenbr; bipgrafdat.velosum = (bipgrafdat.velotax != NULL) ? bipvelosum : bipgrafdat.vertnbr; memFree (actvnumtax + actgrafdat.s.baseval); #ifdef SCOTCH_DEBUG_VGRAPH2 if (((bipedgenbr0 - bipedgenbr1) * bippartval + bipedgenbr1) != bipgrafdat.edgenbr) { errorPrint ("vgraphSeparateEs: internal error (2)"); graphExit (&bipgrafdat); return (1); } if (graphCheck (&bipgrafdat) != 0) { errorPrint ("vgraphSeparateEs: internal error (3)"); graphExit (&bipgrafdat); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (vgraphSeparateEsCover (&bipgrafdat, bipvertnbrp, grafptr->frontab, &grafptr->fronnbr) != 0) { errorPrint ("vgraphSeparateEs: cannot compute cover"); graphExit (&bipgrafdat); return (1); } compsizep = 0; if (actgrafdat.s.velotax != NULL) { /* If vertices are weighted */ Gnum fronnum; compload01 = comploadp = 0; for (fronnum = 0; fronnum < grafptr->fronnbr; fronnum ++) { Gnum bipvertnum; Gnum actvertnum; Gnum actveloval; bipvertnum = grafptr->frontab[fronnum]; actvertnum = bipgrafdat.vnumtax[bipvertnum]; actveloval = actgrafdat.s.velotax[actvertnum]; grafptr->frontab[fronnum] = actvertnum; /* Express vertices with respect to original graph */ grafptr->parttax[actvertnum] = 2; /* Write separator part for global renumbering */ compload01 += actveloval; if (bipvertnum < bipvertnbrp) { /* Update separator vertices */ compsizep ++; /* Superscalar update */ comploadp += actveloval; } } } else { /* Vertices are not weighted */ Gnum fronnum; for (fronnum = 0; fronnum < grafptr->fronnbr; fronnum ++) { Gnum bipvertnum; Gnum actvertnum; bipvertnum = grafptr->frontab[fronnum]; actvertnum = bipgrafdat.vnumtax[bipvertnum]; grafptr->frontab[fronnum] = actvertnum; /* Express vertices with respect to original graph */ grafptr->parttax[actvertnum] = 2; /* Write separator part for global renumbering */ if (bipvertnum < bipvertnbrp) /* Update separator vertices */ compsizep ++; /* Superscalar update */ } compload01 = grafptr->fronnbr; /* Loads are equivalent to sizes */ comploadp = compsizep; } grafptr->compsize[bippartval] -= compsizep; grafptr->compsize[bippartval ^ 1] -= grafptr->fronnbr - compsizep; grafptr->compload[bippartval] -= comploadp; grafptr->compload[bippartval ^ 1] -= compload01 - comploadp; graphExit (&bipgrafdat); } else { /* Fat separator wanted */ Gnum compsize1; /* Number of vertices to be removed from part 1 */ Gnum compload01; /* Load of vertices to be removed from both parts */ Gnum compload1; /* Load of vertices to be removed from part 1 */ compsize1 = 0; grafptr->fronnbr = actgrafdat.fronnbr; /* Keep separator as is */ if (actgrafdat.s.velotax != NULL) { /* If vertices are weighted */ Gnum fronnum; compload01 = compload1 = 0; for (fronnum = 0; fronnum < actgrafdat.fronnbr; fronnum ++) { Gnum vertnum; Gnum veloval; int partval; vertnum = grafptr->frontab[fronnum]; partval = grafptr->parttax[vertnum]; veloval = grafptr->s.velotax[vertnum]; compsize1 += partval; /* Superscalar update */ compload01 += veloval; compload1 += partval * veloval; grafptr->parttax[vertnum] = 2; /* Write separator part for global renumbering */ } } else { /* Vertices are not weighted */ Gnum fronnum; for (fronnum = 0; fronnum < actgrafdat.fronnbr; fronnum ++) { Gnum vertnum; int partval; vertnum = grafptr->frontab[fronnum]; partval = grafptr->parttax[vertnum]; compsize1 += partval; grafptr->parttax[vertnum] = 2; /* Write separator part for global renumbering */ } compload01 = actgrafdat.fronnbr; /* Loads are equivalent to sizes */ compload1 = compsize1; } grafptr->compsize[0] -= actgrafdat.fronnbr - compsize1; /* Update graph properties */ grafptr->compsize[1] -= compsize1; grafptr->compload[0] -= compload01 - compload1; grafptr->compload[1] -= compload1; } } grafptr->comploaddlt = grafptr->compload[0] - grafptr->compload[1]; grafptr->compload[2] = grafptr->s.velosum - grafptr->compload[0] - grafptr->compload[1]; grafptr->fronnbr = grafptr->s.vertnbr - grafptr->compsize[0] - grafptr->compsize[1]; #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (grafptr) != 0) { errorPrint ("vgraphSeparateEs: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_es.h000066400000000000000000000136311514310134000277340ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_es.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the edge-separation-based node **/ /** separation module. **/ /** **/ /** DATES : # Version 3.2 : from : 24 oct 1996 **/ /** to : 07 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 18 aug 2004 **/ /** to : 19 aug 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Separator type. +*/ typedef enum VgraphSeparateEsWidth_ { VGRAPHSEPAESWIDTHTHIN, /*+ Thin vertex separator +*/ VGRAPHSEPAESWIDTHFAT /*+ Fat vertex separator +*/ } VgraphSeparateEsWidth; /*+ This structure holds the method parameters. +*/ typedef struct VgraphSeparateEsParam_ { Strat * strat; /*+ Edge bipartitioning strategy used +*/ VgraphSeparateEsWidth widtval; /*+ Separator width +*/ } VgraphSeparateEsParam; /*+ These are the type of subgraphs vertices belong to, used to represent the Dulmage- Mendelsohn decomposition. TRICK: item numbers have been carefully chosen, so that one can easily sort out vertices that belong to (HR u SC u VC) and to (HR u SR u VC). +*/ typedef enum VgraphSeparateEsType_ { VGRAPHSEPAESTYPEHC = 0x0000, VGRAPHSEPAESTYPEVR = 0x0001, VGRAPHSEPAESTYPEHRSCVC = 0x0002, /* Bit mask for testing */ VGRAPHSEPAESTYPESC = 0x0003, VGRAPHSEPAESTYPEHRSRVC = 0x0004, /* Bit mask for testing */ VGRAPHSEPAESTYPESR = 0x0005, VGRAPHSEPAESTYPEHR = 0x0006, VGRAPHSEPAESTYPEVC = 0x0007 } VgraphSeparateEsType; #define VGRAPHSEPAESTYPEBITC 1 /* Bit index for VGRAPHSEPAESTYPEHRSCVC */ #define VGRAPHSEPAESTYPEBITR 2 /* Bit index for VGRAPHSEPAESTYPEHRSRVC */ /*+ Vertex traversal flag. +*/ typedef enum VgraphSeparateEsTrav_ { VGRAPHSEPAESTRAVFREE = 0, /*+ Vertex not traversed +*/ VGRAPHSEPAESTRAVUSED, /*+ Vertex traversed by search for free rows +*/ VGRAPHSEPAESTRAVDRTY /*+ Vertex traversed by backtracking search for free columns +*/ } VgraphSeparateEsTrav; /* ** The function prototypes. */ #ifdef SCOTCH_VGRAPH_SEPARATE_ES static int vgraphSeparateEsCover (const Graph * const, const Gnum, Gnum * const, Gnum * const); static int vgraphSeparateEsCoverAugment (const Gnum * restrict const, const Gnum, Gnum * restrict const, VgraphSeparateEsTrav * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum); static void vgraphSeparateEsCoverCol (const Gnum * restrict const, VgraphSeparateEsType * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum); static void vgraphSeparateEsCoverRow (const Gnum * restrict const, VgraphSeparateEsType * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum * restrict const, const Gnum); #endif /* SCOTCH_VGRAPH_SEPARATE_ES */ int vgraphSeparateEs (Vgraph * const, const VgraphSeparateEsParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_fm.c000066400000000000000000001351421514310134000277240ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2014,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_fm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates an active **/ /** graph using a vertex-oriented version **/ /** of our improved Fiduccia-Mattheyses **/ /** heuristics, similar in principle to **/ /** the algorithm of Ashcraft and Liu 1994. **/ /** **/ /** DATES : # Version 3.2 : from : 02 nov 1997 **/ /** to : 17 jul 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 31 dec 1998 **/ /** # Version 4.0 : from : 07 jan 2002 **/ /** to : 18 aug 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 22 may 2008 **/ /** # Version 5.1 : from : 10 nov 2008 **/ /** to : 01 jun 2010 **/ /** # Version 6.0 : from : 31 mar 2014 **/ /** to : 01 apr 2014 **/ /** # Version 6.1 : from : 27 nov 2021 **/ /** to : 01 dec 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VGRAPH_SEPARATE_FM #include "module.h" #include "common.h" #include "gain.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_gg.h" #include "vgraph_separate_fm.h" /* ** The static definitions. */ static VgraphSeparateFmVertex vexxdat; /* Dummy structure for computing offsets */ /*********************************/ /* */ /* Gain table handling routines. */ /* */ /*********************************/ /* This routine returns the vertex of best gain ** whose swap will keep the balance correct. ** It returns: ** - !NULL : pointer to the vertex gainlink. ** - NULL : if no more vertices available. */ static GainLink * vgraphSeparateFmTablGet ( GainTabl * const tablptr, /* Gain table */ const Gnum * dwgttab, /* Domain weights */ const Gnum deltcur, /* Current imbalance */ const Gnum deltmax, /* Maximum imbalance */ const int partval) /* Current preferred */ { const VgraphSeparateFmVertex * vexxptr; /* Pointer to vertex of current link */ const GainLink * linkptr; /* Pointer to current gain link */ const GainLink * linkbest; /* Pointer to best link found */ const GainEntr * tablbest; /* Gain table entry of best link */ Gnum gaincur; /* Separator gain of current link */ Gnum gainbest; /* Separator gain of best link */ linkbest = NULL; /* Assume no candidate vertex found yet */ tablbest = tablptr->tend; gainbest = GAINMAX; for (linkptr = gainTablFrst (tablptr); /* Select candidate vertices */ (linkptr != NULL) && (linkptr->tabl <= tablbest); linkptr = gainTablNext (tablptr, linkptr)) { int vertpart; /* Part of current vertex */ vertpart = 0; /* Assume we point to gainlink0 */ vexxptr = (VgraphSeparateFmVertex *) linkptr; /* TRICK: gainlink0 is at beginning */ if (vexxptr->veloval >= 0) { /* If in fact we point to gainlink1 */ vertpart = 1; /* Then point to vertex structure */ vexxptr = (VgraphSeparateFmVertex *) ((byte *) vexxptr - ((byte *) &vexxdat.gainlink1 - (byte *) &vexxdat)); } gaincur = vexxptr->compgain[vertpart]; /* Get separator gain and vertex balance */ if (gaincur == vexxptr->veloval) /* If vertex is isolated separator vertex */ return ((GainLink *) linkptr); /* Select it immediatly */ if (abs (deltcur + (1 - 2 * vertpart) * (gaincur * dwgttab[vertpart] - vexxptr->veloval * (dwgttab[0] + dwgttab[1]))) <= deltmax) { /* If vertex enforces balance; TRICK: -veloval */ if ((gaincur < gainbest) || /* And if it gives better gain */ ((gaincur == gainbest) && /* Or is in preferred part */ (partval == vertpart))) { linkbest = linkptr; /* Select it */ tablbest = linkptr->tabl; gainbest = gaincur; } } } return ((GainLink *) linkbest); /* Return best link found */ } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int vgraphSeparateFm ( Vgraph * restrict const grafptr, /*+ Active graph +*/ const VgraphSeparateFmParam * const paraptr) /*+ Method parameters +*/ { GainTabl * restrict tablptr; /* Pointer to gain tables */ INT passnbr; /* Maximum number of passes to go */ Gnum movenbr; /* Number of uneffective moves done */ int moveflag; /* Flag set if useful moves made */ Gnum savenbr; /* Position of current move */ VgraphSeparateFmSave * restrict savetab; /* Pointer to move array */ Gnum hashmax; /* Maximum number of elements in table */ Gnum hashsiz; /* Size of hash and save tables */ Gnum hashmsk; /* Mask for access to hash table */ Gnum hashnbr; /* Number of elements in hash table */ VgraphSeparateFmVertex * hashtab; /* Hash vertex table */ GainLink lockdat; /* Double linked list of locked vertices */ VgraphSeparateFmVertex * vexxptr; /* Pointer to current vertex */ VgraphSeparateFmVertex * sepaptr; /* Pointer to current vertex in table */ Gnum fronnum; /* Current index of frontier vertex */ Gnum comploaddlt; /* Current load imbalance */ Gnum comploaddltmat; /* Theoretical maximum unbalance */ Gnum comploaddltmax; /* Largest unbalance allowed */ Gnum comploaddltbst; /* Unbalance of best solution to date */ Gnum compload2; /* Current load of separator */ Gnum compload2bst; /* Separator load of best solution to date */ Gnum mswpnum; /* Number of current move sweep */ Gnum compsize1add; /* Number of vertices to add to counters */ Gnum compsize1sub; const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; GraphPart * restrict const parttax = grafptr->parttax; const Gnum dwg0val = grafptr->dwgttab[0]; /* Part weights */ const Gnum dwg1val = grafptr->dwgttab[1]; comploaddltmat = (paraptr->deltrat > 0.0L) ? MAX ((Gnum) ((grafptr->compload[0] + grafptr->compload[1]) * paraptr->deltrat), ((2 * grafptr->s.velosum) / grafptr->s.vertnbr)) * MIN (dwg0val, dwg1val) /* Always measure wrt. smallest domain weight */ : 0; if (grafptr->fronnbr == 0) { /* If no frontier defined */ if (abs (grafptr->comploaddlt) <= comploaddltmat) /* If balance is achieved */ return (0); /* This algorithm is useless */ else { /* Imbalance must be fought */ VgraphSeparateGgParam paradat; paradat.passnbr = 4; /* Use a standard algorithm */ vgraphSeparateGg (grafptr, ¶dat); if (grafptr->fronnbr == 0) /* If new partition has no frontier */ return (0); /* This algorithm is still useless */ } } hashnbr = 16 * (grafptr->fronnbr + paraptr->movenbr + grafptr->s.degrmax) + 1; #ifdef SCOTCH_DEBUG_VGRAPH2 hashnbr /= 8; /* Ensure resizing routine will be called */ #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (hashnbr > grafptr->s.vertnbr) hashnbr = grafptr->s.vertnbr; for (hashsiz = 512; hashsiz < hashnbr; hashsiz <<= 1) ; /* Get upper power of two */ hashmsk = hashsiz - 1; hashmax = hashsiz >> 2; /* Use hash table at 1/4 of its capacity */ if (((tablptr = gainTablInit (GAINMAX, VGRAPHSEPAFMGAINBITS)) == NULL) || /* Use logarithmic array only */ (memAllocGroup ((void **) (void *) &hashtab, (size_t) (hashsiz * sizeof (VgraphSeparateFmVertex)), &savetab, (size_t) (hashsiz * sizeof (VgraphSeparateFmSave)), NULL) == NULL)) { errorPrint ("vgraphSeparateFm: out of memory (1)"); if (tablptr != NULL) gainTablExit (tablptr); return (1); } memSet (hashtab, ~0, hashsiz * sizeof (VgraphSeparateFmVertex)); /* Set all vertex numbers to ~0 */ for (fronnum = 0, hashnbr = grafptr->fronnbr; /* Set initial gains */ fronnum < hashnbr; fronnum ++) { Gnum vertnum; Gnum hashnum; vertnum = grafptr->frontab[fronnum]; #ifdef SCOTCH_DEBUG_VGRAPH2 if (parttax[vertnum] != 2) { errorPrint ("vgraphSeparateFm: vertex not in separator"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ for (hashnum = (vertnum * VGRAPHSEPAFMHASHPRIME) & hashmsk; hashtab[hashnum].vertnum != ~0; hashnum = (hashnum + 1) & hashmsk) ; if (velotax != NULL) { /* If vertex loads present */ Gnum edgenum; Gnum veloval; Gnum compgain0; Gnum compgain01; for (edgenum = verttax[vertnum], compgain0 = compgain01 = 0; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum partend; Gnum veloend; vertend = edgetax[edgenum]; partend = (Gnum) parttax[vertend]; veloend = velotax[vertend]; compgain0 += (partend & 1) * veloend; compgain01 += (2 - (partend & 2)) * veloend; } veloval = velotax[vertnum]; hashtab[hashnum].veloval = - veloval; /* TRICK: -veloval: stored value is opposite of load */ hashtab[hashnum].compgain[0] = compgain0 - veloval; hashtab[hashnum].compgain[1] = (compgain01 >> 1) - compgain0 - veloval; } else { /* No vertex loads */ Gnum edgenum; Gnum compgain0; Gnum compgain2; for (edgenum = verttax[vertnum], compgain0 = compgain2 = 0; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum partend; vertend = edgetax[edgenum]; partend = (Gnum) parttax[vertend]; compgain0 += (partend & 1); compgain2 += (partend & 2); } hashtab[hashnum].veloval = -1; /* TRICK: -veloval */ hashtab[hashnum].compgain[0] = compgain0 - 1; hashtab[hashnum].compgain[1] = vendtax[vertnum] - verttax[vertnum] - (compgain2 >> 1) - compgain0 - 1; } hashtab[hashnum].partval = 2; hashtab[hashnum].vertnum = vertnum; gainTablAdd (tablptr, &hashtab[hashnum].gainlink0, hashtab[hashnum].compgain[0]); /* Link both directions of separator vertex */ gainTablAdd (tablptr, &hashtab[hashnum].gainlink1, hashtab[hashnum].compgain[1]); } comploaddltmax = MAX (comploaddltmat, abs (grafptr->comploaddlt)); /* Set current maximum distance */ comploaddltbst = grafptr->comploaddlt; compload2bst = grafptr->compload[2]; #ifdef SCOTCH_DEBUG_VGRAPH3 if (vgraphSeparateFmCheck (grafptr, hashtab, hashmsk, compload2bst, comploaddltbst) != 0) { errorPrint ("vgraphSeparateFm: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH3 */ passnbr = paraptr->passnbr; /* Set remaining number of passes */ savenbr = 0; /* For empty backtrack of first pass */ mswpnum = -1; /* Will be incremented afterwards */ lockdat.next = /* List of locked vertices is empty */ lockdat.prev = &lockdat; do { /* As long as there is improvement */ Gnum comploadabsdltbst; while (savenbr -- > 0) { /* Delete exceeding moves */ Gnum hashnum; int partval; hashnum = savetab[savenbr].hashnum; partval = savetab[savenbr].partval; hashtab[hashnum].partval = partval; /* Restore vertex data */ hashtab[hashnum].compgain[0] = savetab[savenbr].compgain[0]; hashtab[hashnum].compgain[1] = savetab[savenbr].compgain[1]; if (hashtab[hashnum].gainlink0.next >= VGRAPHSEPAFMSTATELINK) { /* If vertex is linked */ gainTablDel (tablptr, &hashtab[hashnum].gainlink0); /* Unlink it */ gainTablDel (tablptr, &hashtab[hashnum].gainlink1); hashtab[hashnum].gainlink0.next = VGRAPHSEPAFMSTATEFREE; /* Set it as free */ } if ((hashtab[hashnum].gainlink0.next == VGRAPHSEPAFMSTATEFREE) && (partval == 2)) { /* If vertex not locked and in separator */ gainTablAdd (tablptr, &hashtab[hashnum].gainlink0, hashtab[hashnum].compgain[0]); /* Re-link it */ gainTablAdd (tablptr, &hashtab[hashnum].gainlink1, hashtab[hashnum].compgain[1]); } } compload2 = compload2bst; /* Restore best separator parameters */ comploaddlt = comploaddltbst; comploadabsdltbst = abs (comploaddltbst); if (comploadabsdltbst > comploaddltmax) /* If the former state had a higher maximum imbalance ratio */ comploaddltmax = comploadabsdltbst; /* Restore this maximum imbalance ratio */ mswpnum ++; /* Forget all recorded moves */ #ifdef SCOTCH_DEBUG_VGRAPH3 if (vgraphSeparateFmCheck (grafptr, hashtab, hashmsk, compload2, comploaddlt) != 0) { errorPrint ("vgraphSeparateFm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH3 */ while (lockdat.next != &lockdat) { /* For all vertices in locked list */ VgraphSeparateFmVertex * vexxptr; vexxptr = (VgraphSeparateFmVertex *) ((byte *) lockdat.next - ((byte *) &vexxdat.gainlink1 - (byte *) &vexxdat)); lockdat.next = (GainLink *) vexxptr->gainlink1.next; /* Unlink vertex from list */ if (vexxptr->partval == 2) { /* If vertex belongs to separator */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (vexxptr->gainlink0.next != VGRAPHSEPAFMSTATEUSED) { errorPrint ("vgraphSeparateFm: linked non-used vertex"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ gainTablAdd (tablptr, &vexxptr->gainlink0, vexxptr->compgain[0]); /* Link it */ gainTablAdd (tablptr, &vexxptr->gainlink1, vexxptr->compgain[1]); } else /* Vertex does not belong to separator */ vexxptr->gainlink0.next = VGRAPHSEPAFMSTATEFREE; /* Set it as free for this run */ } lockdat.prev = &lockdat; /* Restore backward chaining */ moveflag = 0; /* No moves to date */ movenbr = /* No uneffective moves yet */ savenbr = 0; /* No recorded moves yet */ while ((movenbr < paraptr->movenbr) && /* As long as we can find effective vertices */ ((vexxptr = (VgraphSeparateFmVertex *) vgraphSeparateFmTablGet (tablptr, grafptr->dwgttab, comploaddlt, comploaddltmax, (passnbr & 1))) != NULL)) { Gnum comploadabsdlt; int partval; /* Part of current vertex */ Gnum vertnum; Gnum edgenum; partval = 0; /* Assume we point to gainlink0 */ if (vexxptr->veloval >= 0) { /* If in fact we point to gainlink1 */ partval = 1; /* Then point to vertex structure */ vexxptr = (VgraphSeparateFmVertex *) ((byte *) vexxptr - ((byte *) &vexxptr->gainlink1 - (byte *) vexxptr)); } #ifdef SCOTCH_DEBUG_VGRAPH2 if (vexxptr->partval != 2) { errorPrint ("vgraphSeparateFm: linked non-separator vertex (1)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ gainTablDel (tablptr, &vexxptr->gainlink0); /* Remove it from table */ gainTablDel (tablptr, &vexxptr->gainlink1); vexxptr->gainlink0.next = VGRAPHSEPAFMSTATESUCH; /* Mark it as used and avoid chaining */ vexxptr->gainlink1.prev = &lockdat; /* Lock it */ vexxptr->gainlink1.next = lockdat.next; lockdat.next->prev = &vexxptr->gainlink1; lockdat.next = &vexxptr->gainlink1; vertnum = vexxptr->vertnum; /* Get vertex number */ compload2 += vexxptr->compgain[partval]; comploaddlt += (1 - 2 * partval) * (vexxptr->compgain[partval] * grafptr->dwgttab[partval] - vexxptr->veloval * (dwg0val + dwg1val)); /* TRICK: -veloval */ if (vexxptr->mswpnum != mswpnum) { /* If vertex data not yet recorded */ vexxptr->mswpnum = mswpnum; savetab[savenbr].hashnum = (Gnum) (vexxptr - hashtab); savetab[savenbr].partval = 2; savetab[savenbr].compgain[0] = vexxptr->compgain[0]; savetab[savenbr].compgain[1] = vexxptr->compgain[1]; savenbr ++; /* One more move recorded */ } movenbr ++; /* One more move done */ sepaptr = NULL; /* No separator vertices to relink yet */ for (edgenum = verttax[vertnum]; /* Update neighbors */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum hashnum; vertend = edgetax[edgenum]; for (hashnum = (vertend * VGRAPHSEPAFMHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { VgraphSeparateFmVertex * vexxend; /* Pointer to neighbor of current vertex */ vexxend = hashtab + hashnum; /* Point to neighbor */ if (vexxend->vertnum == ~0) { /* If neighbor does not exist yet */ if (parttax[vertend] == partval) /* If no use to create it */ break; /* Skip to next vertex */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (parttax[vertend] != (1 - partval)) { errorPrint ("vgraphSeparateFm: undeclared separator vertex"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ vexxend->vertnum = vertend; /* Set its number (TRICK: mswpnum assumed to be always -1) */ vexxend->partval = 1 - partval; /* Vertex will be in separator */ vexxend->veloval = - ((velotax != NULL) ? velotax[vertend] : 1); vexxend->gainlink0.next = VGRAPHSEPAFMSTATEFREE; /* Vertex will be linked */ hashnbr ++; /* One more vertex in hash table */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (hashnbr > hashmsk) { errorPrint ("vgraphSeparateFm: hash table overflow"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ } if (vexxend->vertnum == vertend) { /* If end vertex has been found */ if (vexxend->partval == 2) { /* If already in separator or chained */ if (vexxend->mswpnum != mswpnum) { /* If vertex data not yet recorded */ vexxend->mswpnum = mswpnum; savetab[savenbr].hashnum = hashnum; savetab[savenbr].partval = 2; savetab[savenbr].compgain[0] = vexxend->compgain[0]; savetab[savenbr].compgain[1] = vexxend->compgain[1]; savenbr ++; /* One more move recorded */ } vexxend->compgain[1 - partval] -= vexxptr->veloval; /* TRICK: -veloval */ if (vexxend->gainlink0.next >= VGRAPHSEPAFMSTATELINK) { /* If vertex is linked */ gainTablDel (tablptr, &vexxend->gainlink0); /* Unlink it temporarily */ gainTablDel (tablptr, &vexxend->gainlink1); /* TRICK: gainlink1.next != NULL */ vexxend->gainlink0.next = VGRAPHSEPAFMSTATEFREE; /* Mark separator vertex as temporarily unlinked */ vexxend->gainlink0.prev = (GainLink *) sepaptr; /* Chain it for relinking */ sepaptr = vexxend; } else if (vexxend->gainlink0.next == VGRAPHSEPAFMSTATEUSED) { vexxend->gainlink0.next = VGRAPHSEPAFMSTATESUCH; /* Mark separator vertex as chained-used */ vexxend->gainlink0.prev = (GainLink *) sepaptr; /* Chain it for relinking */ sepaptr = vexxend; } } else if (vexxend->partval == (1 - partval)) { /* Vertex is in other part */ Gnum edgeend; Gnum compgainp; /* Gain to be added to gain of part partval */ if (vexxend->mswpnum != mswpnum) { /* If vertex data not yet recorded */ vexxend->mswpnum = mswpnum; savetab[savenbr].hashnum = hashnum; savetab[savenbr].partval = 1 - partval; savetab[savenbr].compgain[0] = /* Vertex not in separator so gains are not relevant */ savetab[savenbr].compgain[1] = 0; savenbr ++; /* One more move recorded */ } vexxend->partval = 2; /* Vertex will be in separator */ vexxend->compgain[partval] = vexxend->veloval; /* Moved vertex still in separator */ vexxend->compgain[1 - partval] = vexxend->veloval - vexxptr->veloval; /* TRICK: -veloval */ for (edgeend = verttax[vertend], compgainp = 0; edgeend < vendtax[vertend]; edgeend ++) { Gnum vertent; Gnum hashnum; vertent = edgetax[edgeend]; for (hashnum = (vertent * VGRAPHSEPAFMHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { VgraphSeparateFmVertex * vexxent; /* Pointer to neighbor of neighbor of current vertex */ vexxent = hashtab + hashnum; if (vexxent->vertnum == ~0) { /* If neighbor does not exist */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (parttax[vertent] != (1 - partval)) { errorPrint ("vgraphSeparateFm: broken separator (1)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ compgainp += (velotax != NULL) ? velotax[vertent] : 1; break; /* Skip to next vertex */ } if (vexxent->vertnum == vertent) { /* If end vertex found */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (vexxent->partval == partval) { errorPrint ("vgraphSeparateFm: broken separator (2)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (vexxent->partval == 2) { /* If vertex is in separator (or is vexxptr) */ if (vexxent->mswpnum != mswpnum) { /* If vertex data not yet recorded */ vexxent->mswpnum = mswpnum; savetab[savenbr].hashnum = hashnum; savetab[savenbr].partval = 2; savetab[savenbr].compgain[0] = vexxent->compgain[0]; savetab[savenbr].compgain[1] = vexxent->compgain[1]; savenbr ++; /* One more move recorded */ } vexxent->compgain[partval] += vexxend->veloval; /* TRICK: -veloval */ if (vexxent->gainlink0.next >= VGRAPHSEPAFMSTATELINK) { /* If not already chained */ gainTablDel (tablptr, &vexxent->gainlink0); /* Unlink it temporarily */ gainTablDel (tablptr, &vexxent->gainlink1); /* TRICK: gainlink1.next != NULL */ vexxent->gainlink0.next = VGRAPHSEPAFMSTATEFREE; /* Mark separator vertex as temporarily unlinked */ vexxent->gainlink0.prev = (GainLink *) sepaptr; /* Chain it */ sepaptr = vexxent; } else if (vexxent->gainlink0.next == VGRAPHSEPAFMSTATEUSED) { vexxent->gainlink0.next = VGRAPHSEPAFMSTATESUCH; /* Mark separator vertex as chained-used */ vexxent->gainlink0.prev = (GainLink *) sepaptr; /* Chain it for relinking */ sepaptr = vexxent; } } else /* Vertex is in same part as vexxend */ compgainp -= vexxent->veloval; /* TRICK: -veloval */ break; } } } vexxend->compgain[partval] += compgainp; if (vexxend->gainlink0.next == VGRAPHSEPAFMSTATEUSED) /* If vertex was already used */ vexxend->gainlink0.next = VGRAPHSEPAFMSTATESUCH; /* Set it as separator-used-chained */ vexxend->gainlink0.prev = (GainLink *) sepaptr; /* Chain it for relinking */ sepaptr = vexxend; } break; /* If in same part, ignore */ } } } vexxptr->gainlink0.next = VGRAPHSEPAFMSTATEUSED; /* Mark it as used and not chained */ vexxptr->partval = partval; /* Set vertex part last */ while (sepaptr != NULL) { /* For all vertices in chain list */ vexxptr = sepaptr; /* Unlink vertex from list */ sepaptr = (VgraphSeparateFmVertex *) vexxptr->gainlink0.prev; #ifdef SCOTCH_DEBUG_VGRAPH2 if (vexxptr->partval != 2) { errorPrint ("vgraphSeparateFm: linked non-separator vertex (2)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (vexxptr->gainlink0.next == VGRAPHSEPAFMSTATEFREE) { /* If vertex is not used */ gainTablAdd (tablptr, &vexxptr->gainlink0, vexxptr->compgain[0]); /* Link it */ gainTablAdd (tablptr, &vexxptr->gainlink1, vexxptr->compgain[1]); } else { vexxptr->gainlink0.next = VGRAPHSEPAFMSTATEUSED; if (vexxptr->compgain[partval] == vexxptr->veloval) { /* If immediate gain */ vexxptr->gainlink1.next->prev = vexxptr->gainlink1.prev; /* Remove vertex from lock list */ vexxptr->gainlink1.prev->next = vexxptr->gainlink1.next; gainTablAdd (tablptr, &vexxptr->gainlink0, vexxptr->compgain[0]); /* Link it */ gainTablAdd (tablptr, &vexxptr->gainlink1, vexxptr->compgain[1]); } } } #ifdef SCOTCH_DEBUG_VGRAPH3 if (vgraphSeparateFmCheck (grafptr, hashtab, hashmsk, compload2, comploaddlt) != 0) { errorPrint ("vgraphSeparateFm: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH3 */ if (hashnbr >= hashmax) { if (vgraphSeparateFmResize (&hashtab, &hashmax, &hashmsk, &savetab, savenbr, tablptr, &lockdat) != 0) { errorPrint ("vgraphSeparateFm: out of memory (2)"); return (1); } } comploadabsdltbst = abs (comploaddltbst); comploadabsdlt = abs (comploaddlt); if ((comploadabsdlt < comploaddltmat) || /* Record move only if it is within bounds */ (comploadabsdltbst > comploaddltmat)) { /* Or if we have always been out of bounds */ if (compload2 < compload2bst) { /* If move improves the cost */ compload2bst = compload2; /* This move was effective */ comploaddltbst = comploaddlt; movenbr = savenbr = 0; moveflag = 1; mswpnum ++; } else if (compload2 == compload2bst) { if (comploadabsdlt < comploadabsdltbst) { comploaddltbst = comploaddlt; /* This move was effective */ movenbr = savenbr = 0; moveflag = 1; mswpnum ++; } else if (comploadabsdlt == comploadabsdltbst) { comploaddltbst = comploaddlt; /* Might be the opposite, so record */ savenbr = 0; /* Forget backtracking */ mswpnum ++; } } } if (comploadabsdlt > comploaddltmax) /* If an isolated vertex unbalanced the partition */ comploaddltmax = comploadabsdlt; /* Record that we degraded maximum load imbalance */ else if (comploaddltmax > comploaddltmat) { /* Else if we must restrict distance bounds */ Gnum comploaddlttmp; comploaddlttmp = comploaddltmax; /* Save old working compdeltmax value */ comploaddltmax = MAX (comploaddltmat, comploadabsdlt); /* Restrict at most to the maximum */ if ((comploadabsdltbst > comploaddltmat) && /* If we have never achieved balance yet */ (comploaddltmax < comploaddlttmp)) { /* And if we have done something useful */ compload2bst = compload2; /* Then record best move done */ comploaddltbst = comploaddlt; movenbr = /* Never set moveflag so as not to create an infinite loop */ savenbr = 0; mswpnum ++; } } } } while ((moveflag != 0) && /* As long as vertices are moved */ (-- passnbr != 0)); /* And we are allowed to loop (TRICK for negative values) */ while (savenbr -- > 0) { /* Delete exceeding moves */ Gnum hashnum; int partval; hashnum = savetab[savenbr].hashnum; partval = savetab[savenbr].partval; hashtab[hashnum].partval = partval; /* Restore vertex part only for update computation */ } compload2 = compload2bst; /* Restore best separator parameters */ comploaddlt = comploaddltbst; compsize1add = /* Variables for superscalar update */ compsize1sub = 0; for (vexxptr = hashtab, fronnum = 0; /* Build new frontier */ vexxptr < hashtab + (hashmax << 2); vexxptr ++) { /* From all vertices in table */ Gnum vertnum; vertnum = vexxptr->vertnum; if (vertnum != ~0) { /* If vertex slot is used */ int partval; /* New part of current vertex */ int partold; /* Old part of current vertex */ partval = vexxptr->partval; partold = parttax[vexxptr->vertnum]; /* Get old part value from array */ if (partval != partold) { /* If vertex part changed */ parttax[vertnum] = partval; /* Set new part value */ compsize1add += (partval & 1); /* Superscalar update */ compsize1sub += (partold & 1); } if (partval == 2) /* If vertex belongs to cut */ grafptr->frontab[fronnum ++] = vertnum; /* Add vertex to frontier */ } } grafptr->compload[0] = (comploaddlt + (grafptr->s.velosum - compload2) * dwg0val) / (dwg0val + dwg1val); grafptr->compload[1] = grafptr->s.velosum - compload2 - grafptr->compload[0]; grafptr->compload[2] = compload2; grafptr->comploaddlt = comploaddlt; grafptr->compsize[1] = grafptr->compsize[1] + compsize1add - compsize1sub; grafptr->compsize[0] = grafptr->s.vertnbr - grafptr->compsize[1] - fronnum; grafptr->fronnbr = fronnum; #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (grafptr) != 0) { errorPrint ("vgraphSeparateFm: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ memFree (hashtab); /* Free group leader */ gainTablExit (tablptr); return (0); } /* This routine doubles the size all of the arrays ** involved in handling the hash table and hash ** vertex arrays. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int vgraphSeparateFmResize ( VgraphSeparateFmVertex * restrict * hashtabptr, /*+ Pointer to hash vertex table +*/ Gnum * const hashmaxptr, /*+ Pointer to maximum number of elements in table +*/ Gnum * const hashmskptr, /*+ Pointer to hash table mask +*/ VgraphSeparateFmSave * restrict * savetabptr, /*+ Pointer to move array +*/ const Gnum savenbr, /*+ Current number of active slots in move array +*/ GainTabl * const tablptr, /*+ Gain table +*/ GainLink * const lockptr) { VgraphSeparateFmVertex * restrict hashtab; /* Pointer to new hash table */ VgraphSeparateFmSave * savetab; /* Pointer to new save array */ VgraphSeparateFmSave * saveold; /* Pointer to translated old save array */ Gnum savenum; Gnum hashold; /* Size of old hash table (half of new) */ Gnum hashsiz; Gnum hashmax; Gnum hashmsk; Gnum hashbas; /* Start index of range of hash indices to move */ Gnum hashnnd; /* End index of range of hash indices to move */ Gnum hashnum; hashmax = *hashmaxptr << 1; /* Compute new sizes */ hashold = *hashmaxptr << 2; hashsiz = *hashmaxptr << 3; hashmsk = hashsiz - 1; if (memReallocGroup ((void *) *hashtabptr, &hashtab, (size_t) (hashsiz * sizeof (VgraphSeparateFmVertex)), &savetab, (size_t) (hashsiz * sizeof (VgraphSeparateFmSave)), NULL) == NULL) { errorPrint ("vgraphSeparateFmResize: out of memory"); return (1); } saveold = (VgraphSeparateFmSave *) ((byte *) hashtab + ((byte *) *savetabptr - (byte *) *hashtabptr)); for (savenum = savenbr - 1; savenum >= 0; savenum --) { /* Move save array, in reverse order */ savetab[savenum].compgain[1] = saveold[savenum].compgain[1]; savetab[savenum].compgain[0] = saveold[savenum].compgain[0]; savetab[savenum].partval = saveold[savenum].partval; savetab[savenum].hashnum = hashtab[saveold[savenum].hashnum].vertnum; /* Temporarily translate from hash index to number */ } *hashtabptr = hashtab; *hashmaxptr = hashmax; *hashmskptr = hashmsk; *savetabptr = savetab; memSet (hashtab + hashold, ~0, hashold * sizeof (VgraphSeparateFmVertex)); gainTablFree (tablptr); /* Reset gain table */ lockptr->next = /* Rebuild lock list */ lockptr->prev = lockptr; for (hashbas = hashold - 1; hashtab[hashbas].vertnum != ~0; hashbas --) ; /* Find start index of last block */ hashnnd = hashold; /* First segment to reconsider ends at the end of the old array */ while (hashnnd != hashbas) { /* For each of the two segments to consider */ for (hashnum = hashbas; hashnum < hashnnd; hashnum ++) { /* Re-compute position of vertices in new table */ Gnum vertnum; vertnum = hashtab[hashnum].vertnum; if (vertnum != ~0) { /* If hash slot used */ Gnum hashnew; for (hashnew = (vertnum * VGRAPHSEPAFMHASHPRIME) & hashmsk; ; hashnew = (hashnew + 1) & hashmsk) { if (hashnew == hashnum) /* If hash slot is the same */ break; /* There is nothing to do */ if (hashtab[hashnew].vertnum == ~0) { /* If new slot is empty */ #ifdef SCOTCH_DEBUG_VGRAPH2 if ((hashnew > hashnum) && (hashnew < hashnnd)) { /* If vertex is not moved either before its old position or after the end of the segment */ errorPrint ("vgraphSeparateFmResize: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ hashtab[hashnew] = hashtab[hashnum]; /* Copy data to new slot */ hashtab[hashnum].mswpnum = ~0; /* TRICK: not tested at creation */ hashtab[hashnum].vertnum = ~0; /* Make old slot empty */ break; } } if (hashtab[hashnew].gainlink0.next >= VGRAPHSEPAFMSTATELINK) { /* If vertex was linked, re-link it */ gainTablAdd (tablptr, &hashtab[hashnew].gainlink0, hashtab[hashnew].compgain[0]); gainTablAdd (tablptr, &hashtab[hashnew].gainlink1, hashtab[hashnew].compgain[1]); } else if (hashtab[hashnew].gainlink0.next == VGRAPHSEPAFMSTATEUSED) { /* Re-lock used vertices */ hashtab[hashnew].gainlink1.prev = lockptr; /* Lock it */ hashtab[hashnew].gainlink1.next = lockptr->next; lockptr->next->prev = &hashtab[hashnew].gainlink1; lockptr->next = &hashtab[hashnew].gainlink1; } } } hashnnd = hashbas; /* End of second segment to consider is start of first one */ hashbas = 0; /* Start of second segment is beginning of array */ } /* After second segment, hashbas = hashnnd = 0 and loop stops */ for (savenum = 0; savenum < savenbr; savenum ++) { Gnum vertnum; Gnum hashnum; vertnum = savetab[savenum].hashnum; /* Get vertex number temporarily saved */ for (hashnum = (vertnum * VGRAPHSEPAFMHASHPRIME) & hashmsk; hashtab[hashnum].vertnum != vertnum; hashnum = (hashnum + 1) & hashmsk) { #ifdef SCOTCH_DEBUG_VGRAPH2 if (hashtab[hashnum].vertnum == ~0) { errorPrint ("vgraphSeparateFmResize: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ } savetab[savenum].hashnum = hashnum; /* Set new hash table index */ } return (0); } /* This routine checks the consistency of ** the hash structures. ** It returns: ** - 0 : in case of success. ** - !0 : in case of error. */ #ifdef SCOTCH_DEBUG_VGRAPH3 static int vgraphSeparateFmCheck ( const Vgraph * restrict const grafptr, const VgraphSeparateFmVertex * restrict const hashtab, const Gnum hashmsk, const Gnum compload2, const Gnum comploaddlt) { Gnum hashnum; Gnum comploadtmp[3]; const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const GraphPart * restrict const parttax = grafptr->parttax; comploadtmp[0] = grafptr->compload[0]; comploadtmp[1] = grafptr->compload[1]; comploadtmp[2] = grafptr->compload[2]; for (hashnum = 0; hashnum <= hashmsk; hashnum ++) { /* For all vertex slots */ Gnum vertnum; int partval; vertnum = hashtab[hashnum].vertnum; if (vertnum == ~0) /* If unallocated slot */ continue; /* Skip to next slot */ if (hashtab[hashnum].veloval != - ((velotax == NULL) ? 1 : velotax[vertnum])) { errorPrint ("vgraphSeparateFmCheck: invalid vertex load (1)"); return (1); } partval = hashtab[hashnum].partval; if ((partval < 0) || (partval > 2)) { errorPrint ("vgraphSeparateFmCheck: invalid part value"); return (1); } if (partval != parttax[vertnum]) { comploadtmp[parttax[vertnum]] += hashtab[hashnum].veloval; /* TRICK: -veloval */ comploadtmp[partval] -= hashtab[hashnum].veloval; } if (partval < 2) { /* If not separator vertex */ if (hashtab[hashnum].gainlink0.next >= VGRAPHSEPAFMSTATELINK) { errorPrint ("vgraphSeparateFmCheck: linked non-separator vertex"); return (1); } } else { /* Separator vertex */ Gnum compload[3]; Gnum edgenum; if (hashtab[hashnum].gainlink0.next == VGRAPHSEPAFMSTATEFREE) { errorPrint ("vgraphSeparateFmCheck: free separator vertex"); return (1); } compload[0] = compload[1] = compload[2] = 0; for (edgenum = verttax[vertnum]; /* For all element neighbors */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum hashnum; int partend; Gnum veloend; vertend = edgetax[edgenum]; for (hashnum = (vertend * VGRAPHSEPAFMHASHPRIME) & hashmsk; ; hashnum = (hashnum + 1) & hashmsk) { if (hashtab[hashnum].vertnum == vertend) { /* If end vertex found */ partend = hashtab[hashnum].partval; veloend = hashtab[hashnum].veloval; if (veloend != - ((velotax == NULL) ? 1 : velotax[vertend])) { errorPrint ("vgraphSeparateFmCheck: invalid vertex load (2)"); return (1); } break; } if (hashtab[hashnum].vertnum == ~0) { /* If element not present */ partend = parttax[vertend]; veloend = - ((velotax == NULL) ? 1 : velotax[vertend]); break; } } compload[partend] += veloend; } if ((hashtab[hashnum].compgain[0] != (hashtab[hashnum].veloval - compload[1])) || (hashtab[hashnum].compgain[1] != (hashtab[hashnum].veloval - compload[0]))) { errorPrint ("vgraphSeparateFmCheck: invalid vertex gains"); return (1); } } } if (compload2 != comploadtmp[2]) { errorPrint ("vgraphSeparateFmCheck: invalid frontier load"); return (1); } if (comploaddlt != (comploadtmp[0] * grafptr->dwgttab[1] - comploadtmp[1] * grafptr->dwgttab[0])) { errorPrint ("vgraphSeparateFmCheck: invalid separator balance"); return (1); } return (0); } #endif /* SCOTCH_DEBUG_VGRAPH3 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_fm.h000066400000000000000000000156231514310134000277320ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_fm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the improved Fiduccia-Mattheyses **/ /** graph separation routine. **/ /** **/ /** DATES : # Version 3.2 : from : 02 nov 1997 **/ /** to : 20 nov 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 28 dec 1998 **/ /** # Version 4.0 : from : 13 dec 2001 **/ /** to : 18 aug 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 6.1 : from : 01 dec 2021 **/ /** to : 01 dec 2021 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Gain table subbits. +*/ #define VGRAPHSEPAFMGAINBITS 4 /*+ Prime number for hashing vertex numbers. +*/ #define VGRAPHSEPAFMHASHPRIME 17 /*+ Prime number for hashing +*/ /*+ Gain table vertex status. +*/ #define VGRAPHSEPAFMSTATEFREE ((GainLink *) 0) /*+ Vertex is free or separator-chained +*/ #define VGRAPHSEPAFMSTATESUCH ((GainLink *) 1) /*+ Separator vertex is used and chained +*/ #define VGRAPHSEPAFMSTATEUSED ((GainLink *) 2) /*+ Vertex already swapped once +*/ #define VGRAPHSEPAFMSTATELINK ((GainLink *) 3) /*+ Currently in gain table if higher +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VgraphSeparateFmParam_ { INT movenbr; /*+ Maximum number of uneffective moves that can be done +*/ INT passnbr; /*+ Number of passes to be performed (-1 : infinite) +*/ double deltrat; /*+ Maximum weight imbalance ratio +*/ } VgraphSeparateFmParam; /*+ The hash vertex structure. For trick reasons, one of the gain table data structures is followed by a negative integer, and the other by a positive one. Thus, one can deduce the value of the pointer to the structure from a pointer to any of the gain table data structures. Moreover, some fields have special meaning: - gainlink0.next: state of vertex (see VGRAPHSEPAFMSTATEXXXX). - gainlink0.prev: simple chaining for separator vertices, if vertex is in chained state (((vertpart == 2) && (gainlink0.next == VGRAPHSEPAFMSTATEFREE)) || (gainlink0.next == VGRAPHSEPAFMSTATESUCH)). - gainlink1: double chained list of locked vertices, if ((gainlink0.next == VGRAPHSEPAFMSTATESUCH) || (gainlink0.next == VGRAPHSEPAFMSTATEUSED)). +*/ typedef struct VgraphSeparateFmVertex_ { GainLink gainlink0; /*+ Gain link if moved to part 0; FIRST +*/ Gnum veloval; /*+ TRICK: opposite of vertex load +*/ GainLink gainlink1; /*+ Gain link if moved to part 1; TRICK: before vertpart +*/ Gnum partval; /*+ Vertex part TRICK: same type as vertload +*/ Gnum compgain[2]; /*+ Separator gain if moved to given part; TRICK: not first +*/ Gnum mswpnum; /*+ Number of move sweep when data recorded +*/ Gnum vertnum; /*+ Number of vertex in hash table +*/ } VgraphSeparateFmVertex; /*+ The move recording structure. +*/ typedef struct VgraphSeparateFmSave_ { Gnum hashnum; /*+ Number of hash slot for saved vertex +*/ int partval; /*+ Saved vertex part value +*/ Gnum compgain[2]; /*+ Saved vertex gain +*/ } VgraphSeparateFmSave; /* ** The function prototypes. */ #ifdef SCOTCH_VGRAPH_SEPARATE_FM static int vgraphSeparateFmResize (VgraphSeparateFmVertex * restrict * hashtabptr, Gnum * const, Gnum * const, VgraphSeparateFmSave * restrict *, const Gnum, GainTabl * const, GainLink * const); static GainLink * vgraphSeparateFmTablGet (GainTabl * const, const Gnum * const, const Gnum, const Gnum, const int); #ifdef SCOTCH_DEBUG_VGRAPH3 static int vgraphSeparateFmCheck (const Vgraph * const, const VgraphSeparateFmVertex * restrict const, const Gnum, const Gnum, const Gnum); #endif /* SCOTCH_DEBUG_VGRAPH3 */ #endif /* SCOTCH_VGRAPH_SEPARATE_FM */ int vgraphSeparateFm (Vgraph * const, const VgraphSeparateFmParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_gg.c000066400000000000000000000352201514310134000277130ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2012,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_gg.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates an active **/ /** graph using a vertex-oriented version **/ /** of the Greedy Graph Growing algorithm. **/ /** **/ /** DATES : # Version 3.2 : from : 10 nov 1997 **/ /** to : 15 jul 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 22 jan 2004 **/ /** # Version 5.0 : from : 02 jan 2007 **/ /** to : 24 mar 2008 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 04 feb 2012 **/ /** to : 26 feb 2018 **/ /** # Version 6.1 : from : 21 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 12 sep 2019 **/ /** to : 09 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "gain.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_gg.h" /* ** The static variables. */ static const Gnum vgraphseparateggloadone = 1; /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vgraphSeparateGg ( Vgraph * restrict const grafptr, /*+ Separation graph +*/ const VgraphSeparateGgParam * const paraptr) /*+ Method parameters +*/ { GainTabl * restrict tablptr; /* Pointer to gain table */ VgraphSeparateGgVertex * restrict vexxtax; /* Complementary vertex array */ Gnum vertnum; /* Index of current vertex */ Gnum * restrict permtab; /* Table for finding new roots */ Gnum permnum; /* Current permutation index */ Gnum fronnum; INT passnum; const Gnum * restrict velobax; /* Data for handling optional arrays */ Gnum velomsk; /* Mask for handling optional arrays */ Gnum comploaddlt; Gnum compload2; Gnum compsize1; Gnum compsize2; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; GraphPart * restrict const parttax = grafptr->parttax; Gnum * restrict const frontab = grafptr->frontab; const Gnum dwg0val = grafptr->dwgttab[0]; /* Part weights */ const Gnum dwg1val = grafptr->dwgttab[1]; if (((tablptr = gainTablInit (GAIN_LINMAX, VGRAPHSEPAGGSUBBITS)) == NULL) || /* Use logarithmic array only */ ((vexxtax = (VgraphSeparateGgVertex *) memAlloc (grafptr->s.vertnbr * sizeof (VgraphSeparateGgVertex))) == NULL)) { errorPrint ("vgraphSeparateGg: out of memory (1)"); if (tablptr != NULL) gainTablExit (tablptr); return (1); } vexxtax -= grafptr->s.baseval; /* Base access to vexxtax */ permtab = NULL; /* Do not allocate permutation array yet */ if (grafptr->s.velotax == NULL) { /* Set accesses to optional arrays */ velobax = &vgraphseparateggloadone; /* In case vertices not weighted (least often) */ velomsk = 0; } else { velobax = grafptr->s.velotax; velomsk = ~((Gnum) 0); } for (passnum = 0; passnum < paraptr->passnbr; passnum ++) { /* For all passes */ VgraphSeparateGgVertex * vexxptr; /* Pointer to current vertex to swap */ memSet (vexxtax + grafptr->s.baseval, 0, grafptr->s.vertnbr * sizeof (VgraphSeparateGgVertex)); /* All vertices to part 0 */ gainTablFree (tablptr); /* Reset gain table */ permnum = 0; /* No permutation built yet */ comploaddlt = grafptr->s.velosum * dwg1val; /* Reset separation parameters */ compload2 = 0; vexxptr = vexxtax + (grafptr->s.baseval + contextIntRandVal (grafptr->contptr, grafptr->s.vertnbr)); /* Randomly select first root vertex */ do { /* Loop on root vertices */ Gnum vertnum; /* Number of current vertex */ Gnum veloval; /* Load of selected vertex */ Gnum compgain2; vexxptr->gainlink.next = /* TRICK: allow deletion of root vertex */ vexxptr->gainlink.prev = (GainLink *) vexxptr; #ifdef SCOTCH_DEBUG_GAIN2 vexxptr->gainlink.tabl = NULL; #endif /* SCOTCH_DEBUG_GAIN2 */ vertnum = (Gnum) (vexxptr - vexxtax); /* Get root vertex based number */ if (velomsk == 0) { /* If vertices are not weighted */ veloval = 1; compgain2 = vendtax[vertnum] - verttax[vertnum] - 1; } else { /* Graph vertices are weighted */ Gnum edgenum; veloval = velobax[vertnum]; compgain2 = - veloval; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) compgain2 += velobax[edgetax[edgenum]]; } vexxptr->compgain2 = compgain2; /* Set root gain (root not in separator) */ comploaddlt -= veloval * dwg1val; /* Move vertex from part 0 to separator */ compload2 += veloval; do { /* While vertices can be retrieved */ VgraphSeparateGgVertex * sepaptr; /* List of vertices in separator */ Gnum veloval; /* Load of selected vertex */ Gnum edgenum; Gnum cmpldlt; /* Temporary delta value */ vertnum = (Gnum) (vexxptr - vexxtax); /* Get number of selected vertex */ veloval = velobax[vertnum & velomsk]; cmpldlt = comploaddlt - veloval * dwg0val; if (comploaddlt < abs (cmpldlt)) { /* If swapping would cause imbalance */ permnum = grafptr->s.vertnbr; /* Terminate swapping process */ vexxptr = NULL; break; } gainTablDel (tablptr, (GainLink *) vexxptr); /* Remove vertex from table */ vexxptr->gainlink.next = VGRAPHSEPAGGSTATEPART1; /* Put vertex in part 1 */ compload2 += vexxptr->compgain2; /* Update partition parameters */ comploaddlt = cmpldlt - (vexxptr->compgain2 + veloval) * dwg1val; sepaptr = NULL; /* No separator vertices to relink yet */ for (edgenum = verttax[vertnum]; /* (Re-)link neighbor vertices */ edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; VgraphSeparateGgVertex * vexxend; vertend = edgetax[edgenum]; /* Point to end vertex */ vexxend = vexxtax + vertend; if (vexxend->gainlink.next == VGRAPHSEPAGGSTATEPART0) { /* If end in part 0 */ Gnum veloend; Gnum edgtnum; Gnum compgain2; vexxend->gainlink.next = VGRAPHSEPAGGSTATEPART2; /* Move vertex to separator */ vexxend->gainlink.prev = (GainLink *) sepaptr; /* Chain vertex */ sepaptr = vexxend; veloend = velobax[vertend & velomsk]; compgain2 = - veloend; for (edgtnum = verttax[vertend]; edgtnum < vendtax[vertend]; edgtnum ++) { Gnum vertent; VgraphSeparateGgVertex * vexxent; vertent = edgetax[edgtnum]; /* Point to end vertex */ vexxent = vexxtax + vertent; if (vexxent->gainlink.next == VGRAPHSEPAGGSTATEPART0) compgain2 += velobax[vertent & velomsk]; else if (vexxent->gainlink.next >= VGRAPHSEPAGGSTATEPART2) { vexxent->compgain2 -= veloend; if (vexxent->gainlink.next >= VGRAPHSEPAGGSTATELINK) { gainTablDel (tablptr, (GainLink *) vexxent); /* Unlink vertex */ vexxent->gainlink.next = VGRAPHSEPAGGSTATEPART2; /* Chain vertex */ vexxent->gainlink.prev = (GainLink *) sepaptr; sepaptr = vexxent; } } } vexxend->compgain2 = compgain2; } } while (sepaptr != NULL) { /* For all vertices in chain list */ vexxptr = sepaptr; /* Unlink vertex from list */ sepaptr = (VgraphSeparateGgVertex *) vexxptr->gainlink.prev; gainTablAdd (tablptr, (GainLink *) vexxptr, vexxptr->compgain2); /* Relink it */ } } while ((vexxptr = (VgraphSeparateGgVertex *) gainTablFrst (tablptr)) != NULL); if (permnum == 0) { /* If permutation has not been built yet */ if (permtab == NULL) { /* If permutation array not allocated yet */ if ((permtab = (Gnum *) memAlloc (grafptr->s.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("vgraphSeparateGg: out of memory (2)"); memFree (vexxtax + grafptr->s.baseval); gainTablExit (tablptr); return (1); } intAscn (permtab, grafptr->s.vertnbr, grafptr->s.baseval); /* Initialize based permutation array */ } intPerm (permtab, grafptr->s.vertnbr, grafptr->contptr); /* Build random permutation */ } for ( ; permnum < grafptr->s.vertnbr; permnum ++) { /* Find next root vertex */ if (vexxtax[permtab[permnum]].gainlink.next == VGRAPHSEPAGGSTATEPART0) { vexxptr = vexxtax + permtab[permnum ++]; break; } } } while (vexxptr != NULL); if ((passnum == 0) || /* If first try */ ( (grafptr->compload[2] > compload2) || /* Or if better solution reached */ ((grafptr->compload[2] == compload2) && (abs (grafptr->comploaddlt) > abs (comploaddlt))))) { Gnum vertnum; grafptr->comploaddlt = comploaddlt; /* Set graph parameters */ grafptr->compload[2] = compload2; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) /* Copy bipartition state */ parttax[vertnum] = (vexxtax[vertnum].gainlink.next <= VGRAPHSEPAGGSTATEPART2) ? (GraphPart) (intptr_t) vexxtax[vertnum].gainlink.next : (GraphPart) 2; } } if (permtab != NULL) /* Free work arrays */ memFree (permtab); memFree (vexxtax + grafptr->s.baseval); gainTablExit (tablptr); grafptr->compload[0] = (grafptr->comploaddlt + (grafptr->s.velosum - grafptr->compload[2]) * dwg0val) / (dwg0val + dwg1val); grafptr->compload[1] = grafptr->s.velosum - grafptr->compload[2] - grafptr->compload[0]; compsize1 = compsize2 = 0; for (vertnum = grafptr->s.baseval, fronnum = 0; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum partval; partval = (Gnum) parttax[vertnum]; compsize1 += (partval & 1); /* Superscalar update */ compsize2 += (partval >> 1); if (partval == 2) /* If vertex belongs to frontier */ frontab[fronnum ++] = vertnum; /* Record it in frontier array */ } grafptr->compsize[0] = grafptr->s.vertnbr - compsize1 - compsize2; grafptr->compsize[1] = compsize1; grafptr->fronnbr = compsize2; #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (grafptr) != 0) { errorPrint ("vgraphSeparateGg: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_gg.h000066400000000000000000000101161514310134000277150ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_gg.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the greedy graph growing vertex **/ /** separation method. **/ /** **/ /** DATES : # Version 3.2 : from : 14 nov 1997 **/ /** to : 15 jul 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 09 jan 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ System-defined constants. +*/ #define VGRAPHSEPAGGSUBBITS 4 #define VGRAPHSEPAGGSTATEPART0 ((GainLink *) 0) /*+ Vertex in part 0 (initial state) +*/ #define VGRAPHSEPAGGSTATEPART1 ((GainLink *) 1) /*+ Vertex in part 1 +*/ #define VGRAPHSEPAGGSTATEPART2 ((GainLink *) 2) /*+ Vertex in part 2, chained +*/ #define VGRAPHSEPAGGSTATELINK ((GainLink *) 3) /*+ Currently in gain table if higher +*/ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct VgraphSeparateGgParam_ { INT passnbr; /*+ Number of passes to do +*/ } VgraphSeparateGgParam; /*+ The complementary vertex structure. For trick reasons, the gain table data structure must be the first field of the structure. +*/ typedef struct VgraphSeparateGgVertex_ { GainLink gainlink; /*+ Gain link: FIRST +*/ Gnum compgain2; /*+ Computation gain in separator +*/ } VgraphSeparateGgVertex; /* ** The function prototypes. */ int vgraphSeparateGg (Vgraph * restrict const, const VgraphSeparateGgParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_gp.c000066400000000000000000000266451514310134000277370ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2012,2016,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_gp.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates an active **/ /** graph using a vertex-oriented version **/ /** of the Gibbs-Poole-Stockmeyer **/ /** algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 15 may 2004 **/ /** to : 17 may 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 12 sep 2007 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 10 feb 2011 **/ /** to : 15 aug 2016 **/ /** # Version 6.1 : from : 27 nov 2021 **/ /** to : 27 nov 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_gp.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vgraphSeparateGp ( Vgraph * restrict const grafptr, /*+ Separation graph +*/ const VgraphSeparateGpParam * const paraptr) /*+ Method parameters +*/ { VgraphSeparateGpQueue queudat; /* Vertex queue */ VgraphSeparateGpVertex * restrict vexxtax; /* Complementary vertex array */ Gnum rootnum; Gnum vertnum; Gnum fronnum; Gnum compsize1; Gnum compsize2; Gnum compload2; Gnum comploaddlt; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; GraphPart * restrict const parttax = grafptr->parttax; Gnum * restrict const frontab = grafptr->frontab; const Gnum dwg0val = grafptr->dwgttab[0]; /* Part weights */ const Gnum dwg1val = grafptr->dwgttab[1]; if (grafptr->compsize[0] != grafptr->s.vertnbr) /* If not all vertices already in part 0 */ vgraphZero (grafptr); /* Move all graph vertices to part 0 */ if (memAllocGroup ((void **) (void *) &queudat.queutab, (size_t) (grafptr->s.vertnbr * sizeof (Gnum)), &vexxtax, (size_t) (grafptr->s.vertnbr * sizeof (VgraphSeparateGpVertex)), NULL) == NULL) { errorPrint ("vgraphSeparateGp: out of memory"); return (1); } memSet (vexxtax, 0, grafptr->s.vertnbr * sizeof (VgraphSeparateGpVertex)); /* Initialize pass numbers */ vexxtax -= grafptr->s.baseval; compload2 = 0; /* All vertices to part 0 */ comploaddlt = grafptr->s.velosum * dwg1val; for (rootnum = grafptr->s.baseval; /* Loop on connected components */ (rootnum < grafptr->s.vertnnd) && (comploaddlt > 0); rootnum ++) { Gnum passnum; /* Pass number */ Gnum diamnum; /* Number of current diameter vertex */ Gnum diamval; /* Current diameter value */ Gnum diamdeg; /* Degree of current diameter vertex */ int diamflag; /* Flag set if improvement in diameter between passes */ Gnum veloval; while (vexxtax[rootnum].passnum != 0) /* Find first unallocated vertex */ rootnum ++; for (diamnum = rootnum, diamval = diamdeg = 0, diamflag = 1, passnum = 1; /* Start from root */ (passnum < paraptr->passnbr) && (diamflag -- != 0); passnum ++) { /* Loop if improvements */ vgraphSeparateGpQueueFlush (&queudat); /* Flush vertex queue */ vgraphSeparateGpQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* It has been enqueued */ vexxtax[diamnum].distval = 0; do { /* Loop on vertices in queue */ Gnum vertnum; Gnum distval; Gnum edgenum; vertnum = vgraphSeparateGpQueueGet (&queudat); /* Get vertex from queue */ distval = vexxtax[vertnum].distval; /* Get vertex distance */ if ((distval > diamval) || /* If vertex increases diameter */ ((distval == diamval) && /* Or is at diameter distance */ ((vendtax[vertnum] - verttax[vertnum]) < diamdeg))) { /* With smaller degree */ diamnum = vertnum; /* Set it as new diameter vertex */ diamval = distval; diamdeg = vendtax[vertnum] - verttax[vertnum]; diamflag = 1; } distval ++; /* Set neighbor distance */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* End vertex number */ vertend = edgetax[edgenum]; if (vexxtax[vertend].passnum < passnum) { /* If vertex not yet queued */ vgraphSeparateGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; vexxtax[vertend].distval = distval; } } } while (! vgraphSeparateGpQueueEmpty (&queudat)); /* As long as queue is not empty */ } vgraphSeparateGpQueueFlush (&queudat); /* Flush vertex queue */ vgraphSeparateGpQueuePut (&queudat, diamnum); /* Start from diameter vertex */ vexxtax[diamnum].passnum = passnum; /* It has been enqueued */ vexxtax[diamnum].distval = 0; veloval = (velotax != NULL) ? velotax[diamnum] : 1; parttax[diamnum] = 2; /* Move diameter vertex to separator */ comploaddlt -= veloval * dwg1val; compload2 += veloval; do { /* Loop on vertices in queue */ Gnum vertnum; Gnum veloval; Gnum distval; Gnum edgenum; vertnum = vgraphSeparateGpQueueGet (&queudat); /* Get vertex from queue */ veloval = (velotax != NULL) ? velotax[vertnum] : 1; distval = vexxtax[vertnum].distval + 1; parttax[vertnum] = 1; /* Move selected vertex from separator to part 1 */ comploaddlt -= veloval * dwg0val; compload2 -= veloval; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; /* End vertex number */ Gnum veloval; vertend = edgetax[edgenum]; veloval = (velotax != NULL) ? velotax[vertend] : 1; if (vexxtax[vertend].passnum < passnum) { /* If vertex not yet queued */ vgraphSeparateGpQueuePut (&queudat, vertend); /* Enqueue neighbor vertex */ vexxtax[vertend].passnum = passnum; vexxtax[vertend].distval = distval; parttax[vertend] = 2; /* Move neighbor vertex to separator */ comploaddlt -= veloval * dwg1val; compload2 += veloval; } } } while ((comploaddlt > 0) && (! vgraphSeparateGpQueueEmpty (&queudat))); /* As long as balance not achieved and queue is not empty */ } grafptr->compload[0] = (comploaddlt + (grafptr->s.velosum - compload2) * dwg0val) / (dwg0val + dwg1val); grafptr->compload[1] = grafptr->s.velosum - compload2 - grafptr->compload[0]; grafptr->compload[2] = compload2; grafptr->comploaddlt = comploaddlt; memFree (queudat.queutab); /* Free group leader */ compsize1 = compsize2 = 0; for (vertnum = grafptr->s.baseval, fronnum = 0; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum partval; partval = (Gnum) parttax[vertnum]; compsize1 += (partval & 1); /* Superscalar update */ compsize2 += (partval >> 1); if (partval == 2) /* If vertex belongs to frontier */ frontab[fronnum ++] = vertnum; /* Record it in frontier array */ } grafptr->compsize[0] = grafptr->s.vertnbr - compsize1 - compsize2; grafptr->compsize[1] = compsize1; grafptr->fronnbr = compsize2; #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (grafptr) != 0) { errorPrint ("vgraphSeparateGp: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_gp.h000066400000000000000000000101431514310134000277260ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_gp.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the Gibbs, Poole, and Stockmeyer **/ /** graph separation algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 14 may 2004 **/ /** to : 17 may 2004 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct VgraphSeparateGpParam_ { INT passnbr; /*+ Number of passes to do +*/ } VgraphSeparateGpParam; /*+ Complementary vertex structure. +*/ typedef struct VgraphSeparateGpVertex_ { Gnum passnum; /*+ Number of pass when vertex selected +*/ Gnum distval; /*+ Current distance from diameter vertex +*/ } VgraphSeparateGpVertex; /*+ Neighbor queue. +*/ typedef struct VgraphSeparateGpQueue_ { Gnum headnum; /*+ Head of distance queue +*/ Gnum tailnum; /*+ Tail of distance queue +*/ Gnum * queutab; /*+ Array of queue elements +*/ } VgraphSeparateGpQueue; /* ** The function prototypes. */ int vgraphSeparateGp (Vgraph * restrict const, const VgraphSeparateGpParam * restrict const); /* ** The macro definitions. */ #define vgraphSeparateGpQueueFlush(queue) ((queue)->headnum = (queue)->tailnum = 0) #define vgraphSeparateGpQueueEmpty(queue) ((queue)->headnum <= (queue)->tailnum) #define vgraphSeparateGpQueuePut(queue,vnum) ((queue)->queutab[(queue)->headnum ++] = (vnum)) #define vgraphSeparateGpQueueGet(queue) ((queue)->queutab[(queue)->tailnum ++]) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_ml.c000066400000000000000000000271441514310134000277340ustar00rootroot00000000000000/* Copyright 2004,2007,2009,2011,2014,2015,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_ml.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module separates a separator **/ /** graph using a multi-level scheme. **/ /** **/ /** DATES : # Version 3.2 : from : 28 oct 1997 **/ /** to : 05 nov 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 13 dec 2001 **/ /** to : 20 mar 2005 **/ /** # Version 5.1 : from : 11 nov 2009 **/ /** to : 11 nov 2009 **/ /** # Version 6.0 : from : 09 mar 2011 **/ /** to : 16 aug 2015 **/ /** # Version 6.1 : from : 01 nov 2021 **/ /** to : 21 nov 2021 **/ /** # Version 7.0 : from : 03 may 2019 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VGRAPH_SEPARATE_ML #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "vgraph.h" #include "vgraph_separate_ml.h" #include "vgraph_separate_st.h" /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser graph from the ** graph that is given on input. The coarser ** graphs differ at this stage from classical ** active graphs as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse graph has been built. ** - 1 : if threshold achieved or on error. */ static int vgraphSeparateMlCoarsen ( const Vgraph * restrict const finegrafptr, /*+ Finer graph +*/ Vgraph * restrict const coargrafptr, /*+ Coarser graph to build +*/ GraphCoarsenMulti * restrict * const coarmultptr, /*+ Pointer to un-based multinode table to build +*/ const VgraphSeparateMlParam * const paraptr) /*+ Method parameters +*/ { *coarmultptr = NULL; /* Allocate coarmulttab along with coarse graph */ if (graphCoarsen (&finegrafptr->s, &coargrafptr->s, NULL, coarmultptr, paraptr->coarnbr, paraptr->coarval, GRAPHCOARSENNOCOMPACT, NULL, NULL, 0, finegrafptr->contptr) != 0) return (1); /* Return if coarsening failed */ coargrafptr->parttax = NULL; /* Do not allocate partition data yet */ coargrafptr->frontab = finegrafptr->frontab; /* Re-use frontier array for coarser graph */ coargrafptr->dwgttab[0] = finegrafptr->dwgttab[0]; /* Preserve respective weights */ coargrafptr->dwgttab[1] = finegrafptr->dwgttab[1]; coargrafptr->levlnum = finegrafptr->levlnum + 1; /* Graph level is coarsening level */ coargrafptr->contptr = finegrafptr->contptr; /* Use same execution context */ return (0); } /* This routine propagates the separation of the ** coarser graph back to the finer graph, according ** to the multinode table of collapsed vertices. ** After the separation is propagated, it finishes ** to compute the parameters of the finer graph that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse graph data has been propagated to fine graph. ** - !0 : on error. */ static int vgraphSeparateMlUncoarsen ( Vgraph * restrict const finegrafptr, /*+ Finer graph +*/ const Vgraph * restrict const coargrafptr, /*+ Coarser graph +*/ const GraphCoarsenMulti * restrict const coarmulttab) /*+ Un-based multinode array +*/ { Gnum coarvertnbr; Gnum coarvertnum; /* Number of current coarse vertex */ Gnum finefronnbr; /* Number of frontier vertices in fine graph */ if (finegrafptr->parttax == NULL) { /* If partition array not yet allocated */ if ((finegrafptr->parttax = (GraphPart *) memAlloc (finegrafptr->s.vertnbr * sizeof (GraphPart))) == NULL) { errorPrint ("vgraphSeparateMlUncoarsen: out of memory"); return (1); /* Allocated data will be freed along with graph structure */ } finegrafptr->parttax -= finegrafptr->s.baseval; finegrafptr->s.flagval |= VGRAPHFREEPART; } if (coargrafptr != NULL) { /* If coarser graph provided */ GraphPart * restrict fineparttax; Gnum finesize1; /* Number of vertices in fine part 1 */ const GraphPart * restrict const coarparttab = coargrafptr->parttax + coargrafptr->s.baseval; Gnum * restrict const finefrontab = finegrafptr->frontab; finesize1 = coargrafptr->compsize[1]; /* Pre-allocate size */ fineparttax = finegrafptr->parttax; for (coarvertnum = finefronnbr = 0, coarvertnbr = coargrafptr->s.vertnbr; coarvertnum < coarvertnbr; coarvertnum ++) { Gnum finevertnum0; /* First multinode vertex */ Gnum finevertnum1; /* Second multinode vertex */ GraphPart coarpartval; /* Value of current multinode part */ finevertnum0 = coarmulttab[coarvertnum].vertnum[0]; finevertnum1 = coarmulttab[coarvertnum].vertnum[1]; coarpartval = coarparttab[coarvertnum]; fineparttax[finevertnum0] = coarpartval; if (coarpartval != 2) { /* If vertex is not in separator */ if (finevertnum0 != finevertnum1) { fineparttax[finevertnum1] = coarpartval; finesize1 += (Gnum) coarpartval; /* One extra vertex accounted for in part 1 if (coarpartval == 1) */ } } else { /* Vertex is in separator */ finefrontab[finefronnbr ++] = finevertnum0; if (finevertnum0 != finevertnum1) { fineparttax[finevertnum1] = coarpartval; finefrontab[finefronnbr ++] = finevertnum1; /* One extra vertex in separator */ } } } finegrafptr->fronnbr = finefronnbr; finegrafptr->compload[0] = coargrafptr->compload[0]; finegrafptr->compload[1] = coargrafptr->compload[1]; finegrafptr->compload[2] = coargrafptr->compload[2]; finegrafptr->comploaddlt = coargrafptr->comploaddlt; finegrafptr->compsize[0] = finegrafptr->s.vertnbr - finefronnbr - finesize1; finegrafptr->compsize[1] = finesize1; } else /* No coarse graph provided */ vgraphZero (finegrafptr); /* Assign all vertices to part 0 */ #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (finegrafptr) != 0) { errorPrint ("vgraphSeparateMlUncoarsen: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ return (0); } /* This routine recursively performs the ** separation recursion. ** It returns: ** - 0 : if separator could be computed. ** - !0 : on error. */ static int vgraphSeparateMl2 ( Vgraph * restrict const grafptr, /* Vertex-separation graph */ const VgraphSeparateMlParam * const paraptr) /* Method parameters */ { Vgraph coargrafdat; GraphCoarsenMulti * restrict coarmulttab; int o; if (vgraphSeparateMlCoarsen (grafptr, &coargrafdat, &coarmulttab, paraptr) == 0) { if (((o = vgraphSeparateMl2 (&coargrafdat, paraptr)) == 0) && ((o = vgraphSeparateMlUncoarsen (grafptr, &coargrafdat, coarmulttab)) == 0) && ((o = vgraphSeparateSt (grafptr, paraptr->stratasc)) != 0)) /* Apply ascending strategy */ errorPrint ("vgraphSeparateMl2: cannot apply ascending strategy"); vgraphExit (&coargrafdat); } else { /* Cannot coarsen due to lack of memory or error */ if (((o = vgraphSeparateMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = vgraphSeparateSt (grafptr, paraptr->stratlow)) != 0)) /* Apply low strategy */ errorPrint ("vgraphSeparateMl2: cannot apply low strategy"); } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the muti-level separation. ** It returns: ** - 0 : if separator could be computed. ** - 1 : on error. */ int vgraphSeparateMl ( Vgraph * const grafptr, /*+ Vertex-separation graph +*/ const VgraphSeparateMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for graph level */ int o; levlnum = grafptr->levlnum; /* Save graph level */ grafptr->levlnum = 0; /* Initialize coarsening level */ o = vgraphSeparateMl2 (grafptr, paraptr); /* Perform multi-level separation */ grafptr->levlnum = levlnum; /* Restore graph level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_ml.h000066400000000000000000000102721514310134000277330ustar00rootroot00000000000000/* Copyright 2004,2007,2011,2013,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_ml.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the multi-level vertex separation **/ /** routines. **/ /** **/ /** DATES : # Version 3.2 : from : 28 oct 1997 **/ /** to : 13 sep 1998 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 01 oct 1998 **/ /** # Version 4.0 : from : 13 dec 2001 **/ /** to : 02 feb 2004 **/ /** # Version 6.0 : from : 16 apr 2011 **/ /** to : 30 apr 2018 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VgraphSeparateMlParam_ { INT coarnbr; /*+ Minimum number of vertices +*/ double coarval; /*+ Coarsening ratio +*/ GraphCoarsenType coartype; /*+ Edge matching function type +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ } VgraphSeparateMlParam; /* ** The function prototypes. */ #ifdef SCOTCH_VGRAPH_SEPARATE_ML static int vgraphSeparateMlCoarsen (const Vgraph * const, Vgraph * const, GraphCoarsenMulti * restrict * const, const VgraphSeparateMlParam * const); static int vgraphSeparateMlUncoarsen (Vgraph * const, const Vgraph * const, const GraphCoarsenMulti * restrict const); static int vgraphSeparateMl2 (Vgraph * const, const VgraphSeparateMlParam * const); #endif /* SCOTCH_VGRAPH_SEPARATE_ML */ int vgraphSeparateMl (Vgraph * const, const VgraphSeparateMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_st.c000066400000000000000000000420261514310134000277460ustar00rootroot00000000000000/* Copyright 2004,2007,2011-2014,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module contains the global **/ /** separation strategy and method tables. **/ /** **/ /** DATES : # Version 3.2 : from : 25 oct 1996 **/ /** to : 14 nov 1997 **/ /** # Version 3.3 : from : 01 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 06 jan 2002 **/ /** to : 28 mar 2006 **/ /** # Version 5.0 : from : 12 sep 2006 **/ /** to : 02 oct 2007 **/ /** # Version 5.1 : from : 30 oct 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 09 mar 2011 **/ /** to : 01 may 2014 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "gain.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "bgraph.h" #include "bgraph_bipart_st.h" #include "vgraph.h" #include "vgraph_separate_bd.h" #include "vgraph_separate_es.h" #include "vgraph_separate_fm.h" #include "vgraph_separate_gg.h" #include "vgraph_separate_gp.h" #include "vgraph_separate_ml.h" #include "vgraph_separate_th.h" #include "vgraph_separate_st.h" #include "vgraph_separate_vw.h" #include "vgraph_separate_zr.h" /* ** The static and global variables. */ static Vgraph vgraphdummy; /* Dummy separator graph for offset computations */ static union { VgraphSeparateBdParam param; StratNodeMethodData padding; } vgraphseparatedefaultbd = { { 3, &stratdummy, &stratdummy } }; static union { VgraphSeparateEsParam param; StratNodeMethodData padding; } vgraphseparatedefaultes = { { &stratdummy, VGRAPHSEPAESWIDTHTHIN } }; static union { VgraphSeparateFmParam param; StratNodeMethodData padding; } vgraphseparatedefaultfm = { { 200, 1000, 0.1L } }; static union { VgraphSeparateGgParam param; StratNodeMethodData padding; } vgraphseparatedefaultgg = { { 5 } }; static union { VgraphSeparateGpParam param; StratNodeMethodData padding; } vgraphseparatedefaultgp = { { 9 } }; static union { VgraphSeparateMlParam param; StratNodeMethodData padding; } vgraphseparatedefaultml = { { 100, 0.8L, GRAPHCOARHEM, &stratdummy, &stratdummy } }; static StratMethodTab vgraphseparatestmethtab[] = { /* Graph separation methods array */ { VGRAPHSEPASTMETHBD, "b", (StratMethodFunc) vgraphSeparateBd, &vgraphseparatedefaultbd }, { VGRAPHSEPASTMETHES, "e", (StratMethodFunc) vgraphSeparateEs, &vgraphseparatedefaultes }, { VGRAPHSEPASTMETHFM, "f", (StratMethodFunc) vgraphSeparateFm, &vgraphseparatedefaultfm }, { VGRAPHSEPASTMETHGG, "h", (StratMethodFunc) vgraphSeparateGg, &vgraphseparatedefaultgg }, { VGRAPHSEPASTMETHGP, "g", (StratMethodFunc) vgraphSeparateGp, &vgraphseparatedefaultgp }, { VGRAPHSEPASTMETHML, "m", (StratMethodFunc) vgraphSeparateMl, &vgraphseparatedefaultml }, { VGRAPHSEPASTMETHVW, "v", (StratMethodFunc) vgraphSeparateVw, NULL }, { VGRAPHSEPASTMETHZR, "z", (StratMethodFunc) vgraphSeparateZr, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab vgraphseparatestparatab[] = { /* Graph separation method parameter list */ { VGRAPHSEPASTMETHBD, STRATPARAMSTRAT, "bnd", (byte *) &vgraphseparatedefaultbd.param, (byte *) &vgraphseparatedefaultbd.param.stratbnd, (void *) &vgraphseparateststratab }, { VGRAPHSEPASTMETHBD, STRATPARAMSTRAT, "org", (byte *) &vgraphseparatedefaultbd.param, (byte *) &vgraphseparatedefaultbd.param.stratorg, (void *) &vgraphseparateststratab }, { VGRAPHSEPASTMETHBD, STRATPARAMINT, "width", (byte *) &vgraphseparatedefaultbd.param, (byte *) &vgraphseparatedefaultbd.param.distmax, NULL }, { VGRAPHSEPASTMETHES, STRATPARAMSTRAT, "strat", (byte *) &vgraphseparatedefaultes.param, (byte *) &vgraphseparatedefaultes.param.strat, (void *) &bgraphbipartststratab }, { VGRAPHSEPASTMETHES, STRATPARAMCASE, "type", (byte *) &vgraphseparatedefaultes.param, (byte *) &vgraphseparatedefaultes.param.widtval, (void *) "tf" }, { VGRAPHSEPASTMETHFM, STRATPARAMINT, "move", (byte *) &vgraphseparatedefaultfm.param, (byte *) &vgraphseparatedefaultfm.param.movenbr, NULL }, { VGRAPHSEPASTMETHFM, STRATPARAMINT, "pass", (byte *) &vgraphseparatedefaultfm.param, (byte *) &vgraphseparatedefaultfm.param.passnbr, NULL }, { VGRAPHSEPASTMETHFM, STRATPARAMDOUBLE, "bal", (byte *) &vgraphseparatedefaultfm.param, (byte *) &vgraphseparatedefaultfm.param.deltrat, NULL }, { VGRAPHSEPASTMETHGG, STRATPARAMINT, "pass", (byte *) &vgraphseparatedefaultgg.param, (byte *) &vgraphseparatedefaultgg.param.passnbr, NULL }, { VGRAPHSEPASTMETHGP, STRATPARAMINT, "pass", (byte *) &vgraphseparatedefaultgp.param, (byte *) &vgraphseparatedefaultgp.param.passnbr, NULL }, { VGRAPHSEPASTMETHML, STRATPARAMSTRAT, "asc", (byte *) &vgraphseparatedefaultml.param, (byte *) &vgraphseparatedefaultml.param.stratasc, (void *) &vgraphseparateststratab }, { VGRAPHSEPASTMETHML, STRATPARAMSTRAT, "low", (byte *) &vgraphseparatedefaultml.param, (byte *) &vgraphseparatedefaultml.param.stratlow, (void *) &vgraphseparateststratab }, { VGRAPHSEPASTMETHML, STRATPARAMCASE, "type", (byte *) &vgraphseparatedefaultml.param, (byte *) &vgraphseparatedefaultml.param.coartype, (void *) "hs" }, { VGRAPHSEPASTMETHML, STRATPARAMINT, "vert", (byte *) &vgraphseparatedefaultml.param, (byte *) &vgraphseparatedefaultml.param.coarnbr, NULL }, { VGRAPHSEPASTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &vgraphseparatedefaultml.param, (byte *) &vgraphseparatedefaultml.param.coarval, NULL }, { VGRAPHSEPASTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab vgraphseparatestcondtab[] = { /* Graph condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &vgraphdummy, (byte *) &vgraphdummy.s.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &vgraphdummy, (byte *) &vgraphdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &vgraphdummy, (byte *) &vgraphdummy.s.velosum, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &vgraphdummy, (byte *) &vgraphdummy.s.vertnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab vgraphseparateststratab = { /* Strategy tables for vertex separation methods */ vgraphseparatestmethtab, vgraphseparatestparatab, vgraphseparatestcondtab }; /*******************************************/ /* */ /* This is the generic separation routine. */ /* */ /*******************************************/ /* This routine computes the separation of ** the given graph according to the given ** strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int vgraphSeparateSt ( Vgraph * restrict const grafptr, /*+ Separation graph +*/ const Strat * restrict const straptr) /*+ Separation strategy +*/ { StratTest testdat; VgraphStore savetab[2]; /* Results of the two strategies */ Gnum compload2; /* Saved separator load */ int o; #ifdef SCOTCH_DEBUG_VGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("vgraphSeparateSt: invalid type specification for parser variables"); return (1); } if ((sizeof (VgraphSeparateFmParam) > sizeof (StratNodeMethodData)) || (sizeof (VgraphSeparateGgParam) > sizeof (StratNodeMethodData)) || (sizeof (VgraphSeparateGpParam) > sizeof (StratNodeMethodData)) || (sizeof (VgraphSeparateMlParam) > sizeof (StratNodeMethodData))) { errorPrint ("vgraphSeparateSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH2 */ #ifdef SCOTCH_DEBUG_VGRAPH1 if ((straptr->tablptr != &vgraphseparateststratab) && (straptr != &stratdummy)) { errorPrint ("vgraphSeparateSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_VGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = vgraphSeparateSt (grafptr, straptr->data.concdat.stratab[0]); /* Apply first strategy */ if (o == 0) /* If it worked all right */ o |= vgraphSeparateSt (grafptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_VGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("vgraphSeparateSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_VGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = vgraphSeparateSt (grafptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = vgraphSeparateSt (grafptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((vgraphStoreInit (grafptr, &savetab[0])) != 0) || /* Allocate save areas */ ((vgraphStoreInit (grafptr, &savetab[1])) != 0)) { errorPrint ("vgraphSeparateSt: out of memory"); vgraphStoreExit (&savetab[0]); return (1); } vgraphStoreSave (grafptr, &savetab[1]); /* Save initial bipartition */ if (vgraphSeparateSt (grafptr, straptr->data.seledat.stratab[0]) != 0) { /* If first strategy didn't work */ vgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ vgraphStoreSave (grafptr, &savetab[0]); /* Save it as result */ } else { /* First strategy worked */ vgraphStoreSave (grafptr, &savetab[0]); /* Save its result */ vgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ } if (vgraphSeparateSt (grafptr, straptr->data.seledat.stratab[1]) != 0) /* If second strategy didn't work */ vgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition as its result */ compload2 = grafptr->s.velosum - savetab[0].compload[0] - savetab[0].compload[1]; /* Compute saved separator load */ if ( (compload2 < grafptr->compload[2]) || /* If first strategy is better */ ((compload2 == grafptr->compload[2]) && (abs (savetab[0].comploaddlt) < abs (grafptr->comploaddlt)))) vgraphStoreUpdt (grafptr, &savetab[0]); /* Restore its result */ vgraphStoreExit (&savetab[0]); /* Free both save areas */ vgraphStoreExit (&savetab[1]); break; #ifdef SCOTCH_DEBUG_VGRAPH1 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_VGRAPH1 */ default : #endif /* SCOTCH_DEBUG_VGRAPH1 */ return (((VgraphSeparateFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_VGRAPH1 default : errorPrint ("vgraphSeparateSt: invalid parameter (2)"); return (1); #endif /* SCOTCH_DEBUG_VGRAPH1 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_st.h000066400000000000000000000106521514310134000277530ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the global separation **/ /** strategy and method tables. **/ /** **/ /** DATES : # Version 3.2 : from : 24 oct 1996 **/ /** to : 14 nov 1997 **/ /** # Version 3.3 : from : 31 may 1999 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 06 jan 2002 **/ /** to : 19 aug 2004 **/ /** # Version 5.0 : from : 12 sep 2006 **/ /** to : 17 feb 2007 **/ /** # Version 5.1 : from : 30 oct 2007 **/ /** to : 30 oct 2007 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum VgraphSeparateStMethodType_ { VGRAPHSEPASTMETHBD = 0, /*+ Banding strategy +*/ VGRAPHSEPASTMETHES, /*+ Edge separation strategy +*/ VGRAPHSEPASTMETHFM, /*+ Fiduccia-Mattheyses +*/ VGRAPHSEPASTMETHGG, /*+ Greedy Graph Growing +*/ VGRAPHSEPASTMETHGP, /*+ Gibbs-Poole-Stockmeyer +*/ VGRAPHSEPASTMETHML, /*+ Multi-level separation +*/ VGRAPHSEPASTMETHVW, /*+ Partition viewer +*/ VGRAPHSEPASTMETHZR, /*+ Zero method +*/ VGRAPHSEPASTMETHNBR /*+ Number of methods +*/ } VgraphSeparateStMethodType; /*+ Method function pointer type. +*/ typedef int (* VgraphSeparateFunc) (Vgraph * restrict const, const void * const); /* ** The external declarations. */ extern StratTab vgraphseparateststratab; /* ** The function prototypes. */ int vgraphSeparateSt (Vgraph * const, const Strat * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_th.c000066400000000000000000000123151514310134000277310ustar00rootroot00000000000000/* Copyright 2004,2007,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : separate_th.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module thins a vertex separator. **/ /** **/ /** DATES : # Version 3.3 : from : 17 oct 1998 **/ /** to : 17 oct 1998 **/ /** # Version 4.0 : from : 12 dec 2001 **/ /** to : 06 jan 2002 **/ /** # Version 6.1 : from : 27 nov 2021 **/ /** to : 27 nov 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_th.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vgraphSeparateTh ( Vgraph * const grafptr) { Gnum fronnbr; /* Current number of frontier vertices */ Gnum fronnum; /* Number of current frontier vertex */ Gnum commcut[3]; /* Cut count array ([3] for halo) */ const Gnum * restrict const verttax = grafptr->s.verttax; /* Fast accesses */ const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; Gnum * restrict const frontab = grafptr->frontab; GraphPart * restrict const parttax = grafptr->parttax; fronnbr = grafptr->fronnbr; /* Get current number of frontier vertices */ for (fronnum = 0; fronnum < fronnbr; ) { Gnum vertnum; Gnum edgenum; vertnum = frontab[fronnum]; /* Get vertex number */ commcut[0] = commcut[1] = commcut[2] = 0; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) commcut[parttax[edgetax[edgenum]]] ++; if (commcut[0] == 0) { parttax[vertnum] = 1; grafptr->compload[1] += (grafptr->s.velotax == NULL) ? 1 : grafptr->s.velotax[vertnum]; grafptr->compsize[1] ++; frontab[fronnum] = frontab[-- fronnbr]; /* Replace frontier vertex by another */ } else if (commcut[1] == 0) { parttax[vertnum] = 0; grafptr->compload[0] += (grafptr->s.velotax == NULL) ? 1 : grafptr->s.velotax[vertnum]; grafptr->compsize[0] ++; frontab[fronnum] = frontab[-- fronnbr]; /* Replace frontier vertex by another */ } else fronnum ++; /* Keep vertex in separator */ } grafptr->fronnbr = fronnbr; /* Set new frontier parameters */ grafptr->compload[2] = grafptr->s.velosum - (grafptr->compload[0] + grafptr->compload[1]); grafptr->comploaddlt = grafptr->compload[0] * grafptr->dwgttab[1] - grafptr->compload[1] * grafptr->dwgttab[0]; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_th.h000066400000000000000000000055251514310134000277430ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_th.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the the separator thinner **/ /** vertex separation method. **/ /** **/ /** DATES : # Version 3.3 : from : 17 oct 1998 **/ /** to : 17 oct 1998 **/ /** # Version 4.0 : from : 12 dec 2001 **/ /** to : 01 jan 2002 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int vgraphSeparateTh (Vgraph * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_vw.c000066400000000000000000000107451514310134000277570ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2013,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_vw.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module outputs the state of the **/ /** current partition on the form of a **/ /** Scotch mapping file. **/ /** **/ /** DATES : # Version 4.0 : from : 18 may 2004 **/ /** to : 18 may 2004 **/ /** # Version 5.1 : from : 11 aug 2010 **/ /** to : 11 aug 2010 **/ /** # Version 6.0 : from : 10 oct 2013 **/ /** to : 10 oct 2013 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "gain.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_vw.h" /* ** The static variables. */ static int vgraphseparatevwfilenum = 0; /* Number of file to output */ /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine outputs the mapping file. ** It returns: ** - 0 : if the file could be produced. ** - !0 : on error. */ int vgraphSeparateVw ( Vgraph * restrict const grafptr) /*+ Separation graph +*/ { char nametab[64]; /* File name */ FILE * restrict fileptr; Gnum vertnum; /* Vertex number */ sprintf (nametab, "vgraphseparatevw_output_%08d.map", vgraphseparatevwfilenum ++); if ((fileptr = fopen (nametab, "w+")) == NULL) { errorPrint ("vgraphSeparateVw: cannot open partition file"); return (1); } fprintf (fileptr, GNUMSTRING "\n", /* Output size of mapping; test if failure later, in main loop */ (Gnum) grafptr->s.vertnbr); for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { if (fprintf (fileptr, GNUMSTRING "\t%d\n", (Gnum) ((grafptr->s.vnumtax != NULL) ? grafptr->s.vnumtax[vertnum] : vertnum), (int) grafptr->parttax[vertnum]) <= 0) { errorPrint ("vgraphSeparateVw: bad output"); fclose (fileptr); return (1); } } fclose (fileptr); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_vw.h000066400000000000000000000055251514310134000277640ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_vw.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** separation method. **/ /** **/ /** DATES : # Version 3.3 : from : 31 may 1999 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 18 may 2004 **/ /** to : 18 may 2004 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int vgraphSeparateVw (Vgraph * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_zr.c000066400000000000000000000070101514310134000277450ustar00rootroot00000000000000/* Copyright 2004,2007,2016,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_zr.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module moves all of the vertices **/ /** to the first subdomain. **/ /** **/ /** DATES : # Version 3.3 : from : 31 may 1999 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 29 may 2004 **/ /** # Version 6.0 : from : 15 aug 2016 **/ /** to : 15 aug 2016 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_zr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine moves all of the graph vertices ** to the first part of the partition. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vgraphSeparateZr ( Vgraph * const grafptr) /*+ Active graph +*/ { if (grafptr->compsize[0] != grafptr->s.vertnbr) /* If not all vertices already in part zero */ vgraphZero (grafptr); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_separate_zr.h000066400000000000000000000055251514310134000277630ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_zr.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** separation method. **/ /** **/ /** DATES : # Version 3.3 : from : 31 may 1999 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 19 dec 2001 **/ /** to : 01 jan 2002 **/ /** # Version 6.0 : from : 30 apr 2018 **/ /** to : 30 apr 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int vgraphSeparateZr (Vgraph * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vgraph_store.c000066400000000000000000000145111514310134000265660ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_store.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the save data **/ /** structure handling routines for separa- **/ /** tion graphs. **/ /** **/ /** DATES : # Version 3.3 : from : 17 oct 1998 **/ /** to : 17 oct 1998 **/ /** # Version 3.4 : from : 11 dec 2001 **/ /** to : 11 dec 2001 **/ /** # Version 4.0 : from : 01 jan 2002 **/ /** to : 06 jan 2002 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "vgraph.h" /**********************************/ /* */ /* Store graph handling routines. */ /* */ /**********************************/ /* This routine builds a save structure ** for the given active graph. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int vgraphStoreInit ( const Vgraph * restrict const grafptr, VgraphStore * restrict const storptr) { Gnum savsize; savsize = grafptr->s.vertnbr * (sizeof (GraphPart) + sizeof (Gnum)); /* Compute size for frontier and part arrays */ if ((storptr->datatab = (byte *) memAlloc (savsize)) == NULL) { /* Allocate save structure */ errorPrint ("vgraphStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a save structure. ** It returns: ** - VOID : in all cases. */ void vgraphStoreExit ( VgraphStore * const storptr) { memFree (storptr->datatab); #ifdef SCOTCH_DEBUG_VGRAPH2 storptr->datatab = NULL; #endif /* SCOTCH_DEBUG_VGRAPH2 */ } /* This routine saves partition data from the ** given active graph to the given save structure. ** It returns: ** - VOID : in all cases. */ void vgraphStoreSave ( const Vgraph * const grafptr, VgraphStore * const storptr) { byte * parttab; /* Pointer to part data save area */ byte * frontab; /* Pointer to frontier data save area */ storptr->fronnbr = grafptr->fronnbr; /* Save partition parameters */ storptr->comploaddlt = grafptr->comploaddlt; storptr->compload[0] = grafptr->compload[0]; storptr->compload[1] = grafptr->compload[1]; storptr->compsize0 = grafptr->compsize[0]; frontab = storptr->datatab; /* Compute data offsets within save structure */ parttab = frontab + grafptr->fronnbr * sizeof (Gnum); memCpy (frontab, grafptr->frontab, grafptr->fronnbr * sizeof (Gnum)); memCpy (parttab, grafptr->parttax + grafptr->s.baseval, grafptr->s.vertnbr * sizeof (GraphPart)); } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void vgraphStoreUpdt ( Vgraph * const grafptr, const VgraphStore * const storptr) { byte * frontab; /* Pointer to frontier data save area */ byte * parttab; /* Pointer to part data save area */ grafptr->compload[0] = storptr->compload[0]; /* Load partition parameters */ grafptr->compload[1] = storptr->compload[1]; grafptr->compload[2] = grafptr->s.velosum - (storptr->compload[0] + storptr->compload[1]); grafptr->comploaddlt = storptr->comploaddlt; grafptr->compsize[0] = storptr->compsize0; grafptr->compsize[1] = grafptr->s.vertnbr - (storptr->compsize0 + storptr->fronnbr); grafptr->fronnbr = storptr->fronnbr; frontab = storptr->datatab; /* Compute data offsets within save structure */ parttab = frontab + grafptr->fronnbr * sizeof (Gnum); memCpy (grafptr->frontab, frontab, grafptr->fronnbr * sizeof (Gnum)); memCpy (grafptr->parttax + grafptr->s.baseval, parttab, grafptr->s.vertnbr * sizeof (GraphPart)); #ifdef SCOTCH_DEBUG_VGRAPH2 if (vgraphCheck (grafptr) != 0) errorPrint ("vgraphStoreUpdt: inconsistent graph data"); #endif /* SCOTCH_DEBUG_VGRAPH2 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh.c000066400000000000000000000100571514310134000252060ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the separator **/ /** handling routines. **/ /** **/ /** DATES : # Version 4.0 : from : 06 feb 2003 **/ /** to : 05 mar 2003 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "vmesh.h" /*************************/ /* */ /* These routines handle */ /* separator meshes. */ /* */ /*************************/ /* This routine frees the contents ** of the given active mesh. ** It returns: ** - VOID : in all cases. */ void vmeshExit ( Vmesh * const meshptr) { if (meshptr->parttax != NULL) /* Free leader of group (parttab + frontab) */ memFree (meshptr->parttax + meshptr->m.baseval); meshFree (&meshptr->m); /* Free source mesh */ #ifdef SCOTCH_DEBUG_VMESH2 memSet (meshptr, ~0, sizeof (Vmesh)); #endif /* SCOTCH_DEBUG_VMESH2 */ } /* This routine moves all of the mesh ** elements to the first part. ** It returns: ** - VOID : in all cases. */ void vmeshZero ( Vmesh * const meshptr) { memSet (meshptr->parttax + meshptr->m.baseval, 0, (meshptr->m.velmnbr + meshptr->m.vnodnbr) * sizeof (GraphPart)); meshptr->ecmpsize[0] = meshptr->m.velmnbr; meshptr->ecmpsize[1] = 0; meshptr->ncmpload[0] = meshptr->m.vnlosum; meshptr->ncmpload[1] = meshptr->ncmpload[2] = 0; meshptr->ncmploaddlt = meshptr->m.vnlosum; meshptr->ncmpsize[0] = meshptr->m.vnodnbr; meshptr->ncmpsize[1] = meshptr->fronnbr = 0; } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh.h000066400000000000000000000125111514310134000252100ustar00rootroot00000000000000/* Copyright 2004,2007,2010,2018,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for mesh vertex separation **/ /** routines. **/ /** **/ /** DATES : # Version 4.0 : from : 10 sep 2002 **/ /** to : 10 sep 2002 **/ /** # Version 5.1 : from : 04 nov 2010 **/ /** to : 04 nov 2010 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 13 sep 2019 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ Active graph structure. +*/ typedef struct Vmesh_ { Mesh m; /*+ Source mesh +*/ GraphPart * parttax; /*+ Based part array: 0,1: part; 2: separator +*/ Gnum ecmpsize[2]; /*+ Number of elements in each part (not in separator) +*/ Gnum ncmpload[3]; /*+ Loads of nodes in both parts and separator +*/ Gnum ncmploaddlt; /*+ Node load difference between both parts +*/ Gnum ncmpsize[2]; /*+ Number of nodes in parts (separator is fronnbr) +*/ Gnum fronnbr; /*+ Number of frontier nodes; TRICK: ncmpsize[2] +*/ Gnum * frontab; /*+ Array of frontier node numbers +*/ Gnum levlnum; /*+ Nested dissection or coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Vmesh; /*+ The graph separator storing structure. +*/ typedef struct VmeshStore_ { Gnum ecmpsize[2]; /*+ Number of elements in each part +*/ Gnum ncmpload[3]; /*+ Loads of nodes in both parts and separator +*/ Gnum ncmploaddlt; /*+ Node load difference between both parts +*/ Gnum ncmpsize[2]; /*+ Number of nodes in parts (separator is fronnbr) +*/ Gnum fronnbr; /*+ Number of frontier nodes; TRICK: ncmpsize[2] +*/ byte * datatab; /*+ Variable-sized data array +*/ } VmeshStore; /* ** The function prototypes. */ void vmeshExit (Vmesh * const); void vmeshZero (Vmesh * const); int vmeshCheck (const Vmesh * const); int vmeshStoreInit (const Vmesh * const, VmeshStore * const); void vmeshStoreExit (VmeshStore * const); void vmeshStoreSave (const Vmesh * const , VmeshStore * const); void vmeshStoreUpdt (Vmesh * const, const VmeshStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_check.c000066400000000000000000000204141514310134000263410ustar00rootroot00000000000000/* Copyright 2004,2007,2014,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_check.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the consistency **/ /** checker for separation meshes. **/ /** **/ /** DATES : # Version 4.0 : from : 21 mar 2003 **/ /** to : 11 may 2004 **/ /** # Version 6.0 : from : 02 jun 2014 **/ /** to : 21 may 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "vmesh.h" /*************************/ /* */ /* These routines handle */ /* separator meshes. */ /* */ /*************************/ /* This routine checks the consistency ** of the given separator mesh. ** It returns: ** - 0 : if mesh data are consistent. ** - !0 : on error. */ int vmeshCheck ( const Vmesh * const meshptr) { Gnum velmnum; /* Number of current element vertex */ Gnum vnodnum; /* Number of current node vertex */ Gnum fronnum; /* Number of current frontier vertex */ int * restrict frontax; /* Frontier flag array */ Gnum ecmpsize[2]; /* Elements never in separator */ Gnum ncmpsize[3]; Gnum ncmpload[3]; int o; if ((meshptr->ecmpsize[0] + meshptr->ecmpsize[1]) > meshptr->m.velmnbr) { errorPrint ("vmeshCheck: invalid element balance"); return (1); } if (meshptr->ncmploaddlt != (meshptr->ncmpload[0] - meshptr->ncmpload[1])) { errorPrint ("vmeshCheck: invalid node balance"); return (1); } ecmpsize[0] = ecmpsize[1] = 0; for (velmnum = meshptr->m.velmbas; velmnum < meshptr->m.velmnnd; velmnum ++) { Gnum edgecut[3]; /* Array of cut edges */ Gnum partnum; /* Part of current vertex */ Gnum eelmnum; /* Number of current edge */ partnum = meshptr->parttax[velmnum]; if ((partnum < 0) || (partnum > 1)) { errorPrint ("vmeshCheck: invalid part array (1)"); return (1); } ecmpsize[partnum] ++; if ((partnum != 0) && (meshptr->m.verttax[velmnum] == meshptr->m.vendtax[velmnum])) { errorPrint ("vmeshCheck: isolated element not in part 0"); return (1); } edgecut[0] = edgecut[1] = edgecut[2] = 0; for (eelmnum = meshptr->m.verttax[velmnum]; eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) edgecut[meshptr->parttax[meshptr->m.edgetax[eelmnum]]] ++; if (edgecut[1 - partnum] != 0) { errorPrint ("vmeshCheck: element connected to nodes in other part (%ld)", (long) velmnum); return (1); } } if ((meshptr->ecmpsize[0] != ecmpsize[0]) || (meshptr->ecmpsize[1] != ecmpsize[1])) { errorPrint ("vmeshCheck: invalid element parameters"); return (1); } ncmpload[0] = ncmpload[1] = ncmpload[2] = 0; ncmpsize[0] = ncmpsize[1] = ncmpsize[2] = 0; for (vnodnum = meshptr->m.vnodbas; vnodnum < meshptr->m.vnodnnd; vnodnum ++) { Gnum edgecut[3]; /* Array of cut edges */ Gnum partnum; /* Part of current vertex */ Gnum enodnum; /* Number of current edge */ partnum = meshptr->parttax[vnodnum]; if ((partnum < 0) || (partnum > 2)) { errorPrint ("vmeshCheck: invalid part array (2)"); return (1); } ncmpsize[partnum] ++; ncmpload[partnum] += (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; edgecut[0] = edgecut[1] = edgecut[2] = 0; for (enodnum = meshptr->m.verttax[vnodnum]; enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) edgecut[meshptr->parttax[meshptr->m.edgetax[enodnum]]] ++; #ifdef SCOTCH_DEBUG_VMESH3 if (partnum == 2) { if ((edgecut[0] == 0) || (edgecut[1] == 0)) errorPrint ("vmeshCheck: no-use separator vertex%s (%ld)", /* Warning only */ ((meshptr->levlnum == 0) ? " at level 0" : ""), (long) vnodnum); } else { #else if (partnum != 2) { #endif /* SCOTCH_DEBUG_VMESH3 */ if (edgecut[1 - partnum] != 0) { errorPrint ("vmeshCheck: node should be in separator (%ld)", (long) vnodnum); return (1); } } } if ((meshptr->ncmpload[0] != ncmpload[0]) || (meshptr->ncmpload[1] != ncmpload[1]) || (meshptr->ncmpload[2] != ncmpload[2]) || (meshptr->ncmpsize[0] != ncmpsize[0]) || (meshptr->ncmpsize[1] != ncmpsize[1]) || (meshptr->fronnbr != ncmpsize[2])) { errorPrint ("vmeshCheck: invalid node parameters"); return (1); } if ((meshptr->fronnbr < 0) || (meshptr->fronnbr > meshptr->m.vnodnbr)) { errorPrint ("vmeshCheck: invalid number of frontier vertices"); return (1); } if ((frontax = memAlloc (meshptr->m.vnodnbr * sizeof (int))) == NULL) { errorPrint ("vmeshCheck: out of memory"); return (1); } memSet (frontax, 0, meshptr->m.vnodnbr * sizeof (int)); frontax -= meshptr->m.vnodbas; o = 1; /* Assume failure when checking */ for (fronnum = 0; fronnum < meshptr->fronnbr; fronnum ++) { Gnum vnodnum; vnodnum = meshptr->frontab[fronnum]; if ((vnodnum < meshptr->m.vnodbas) || (vnodnum >= meshptr->m.vnodnnd)) { errorPrint ("vmeshCheck: invalid vertex in frontier array"); goto fail; } if (meshptr->parttax[vnodnum] != 2) { errorPrint ("vmeshCheck: invalid frontier array"); goto fail; } if (frontax[vnodnum] != 0) { errorPrint ("vmeshCheck: duplicate node in frontier array"); goto fail; } frontax[vnodnum] = 1; } o = 0; /* Everything turned well */ fail : memFree (frontax + meshptr->m.vnodbas); return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_fm.c000066400000000000000000001620311514310134000275540ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_fm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates an active **/ /** mesh using an element-oriented version **/ /** of our improved Fiduccia-Mattheyses **/ /** heuristics. **/ /** **/ /** DATES : # Version 4.0 : from : 26 feb 2003 **/ /** to : 06 may 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 22 may 2008 **/ /** # Version 5.1 : from : 12 nov 2008 **/ /** to : 12 nov 2008 **/ /** # Version 6.1 : from : 05 dec 2021 **/ /** to : 05 dec 2021 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 30 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VMESH_SEPARATE_FM /* #define SCOTCH_DEBUG_VMESH3 */ /* For intensive debugging */ #include "module.h" #include "common.h" #include "gain.h" #include "graph.h" #include "mesh.h" #include "vmesh.h" #include "vmesh_separate_gg.h" #include "vmesh_separate_fm.h" /* This routine resizes the hash arrays ** as well as the associated structures. ** In the group of allocated arrays, ** the element array must be put before ** the node array, because the element ** structure is larger than the node ** structure, such that the old and new ** node arrays can never overlap after ** the doubling in size of the element ** array. The same for the move array. ** It returns: ** - 0 : if resize succeeded. ** - !0 : in case of error. */ static int vmeshSeparateFmResize ( GainTabl * restrict const tablptr, /*+ Pointer to gain table +*/ VmeshSeparateFmElement * restrict * const helmptr, /*+ Pointer to pointer to element hash table +*/ VmeshSeparateFmNode * restrict * const hnodptr, /*+ Pointer to pointer to node hash table +*/ VmeshSeparateFmSave * restrict * const saveptr, /*+ Pointer to pointer to move array +*/ const Gnum savenbr, /*+ Current number of items in save array +*/ VmeshSeparateFmElement ** lockptr, /*+ Pointer to list of locked elements +*/ VmeshSeparateFmElement ** sepaptr, /*+ Pointer to list of separator elements, if any +*/ const Gnum hashold) /*+ Maximum number of vertices in hash structures +*/ { Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ Gnum hashmax; /* Maximum number of objects in tables */ VmeshSeparateFmSave * restrict movetab; /* Pointer to move array */ VmeshSeparateFmElement * restrict helmtab; /* Element hash table */ VmeshSeparateFmNode * hnodtab; /* Node hash table */ size_t addradj; /* Address adjustment */ Gnum helmold; VmeshSeparateFmNode * hnodtld; Gnum hnodold; VmeshSeparateFmSave * restrict savetab; Gnum savenum; hashmax = 2 * hashold; /* Set new number */ hashsiz = 4 * hashmax; /* Set new size */ hashmsk = hashsiz - 1; savetab = *saveptr; /* Point to old move array */ for (savenum = 0; savenum < savenbr; savenum ++) { /* Turn hash indices into vertex indices */ Gnum hertnum; hertnum = savetab[savenum].hertnum; savetab[savenum].hertnum = (hertnum >= 0) ? (*helmptr)[hertnum].velmnum : (-1 - (*hnodptr)[-1 - hertnum].vnodnum); } if (memReallocGroup ((void *) *helmptr, /* Get old group leader */ &helmtab, (size_t) (hashsiz * sizeof (VmeshSeparateFmElement)), &hnodtab, (size_t) (hashsiz * sizeof (VmeshSeparateFmNode)), &movetab, (size_t) (hashmax * sizeof (VmeshSeparateFmSave)), NULL) == NULL) { errorPrint ("vmeshSeparateFmResize: cannot resize arrays"); return (1); /* If cannot reallocate */ } #ifdef SCOTCH_DEBUG_VMESH2 if (((byte *) hnodtab - (byte *) helmtab) < ((byte *) (*saveptr) - (byte *) (*helmptr))) { /* If cannot simply copy node hash array */ errorPrint ("vmeshSeparateFmResize: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ memMov (movetab, ((byte *) helmtab) + ((byte *) *saveptr - (byte *) *helmptr), savenbr * sizeof (VmeshSeparateFmSave)); /* Old array may have moved but arrays cannot overlap */ memSet (hnodtab, ~0, hashsiz * sizeof (VmeshSeparateFmNode)); /* Cannot overlap */ hnodtld = (VmeshSeparateFmNode *) ((byte *) helmtab) + ((byte *) *hnodptr - (byte *) *helmptr); /* Point to old node array */ for (hnodold = 0; hnodold < (hashold * 4); hnodold ++) { /* For all old allocated nodes */ Gnum hnodnew; if (hnodtld[hnodold].vnodnum == ~0) /* If unallocated slot */ continue; /* Skip to next slot */ for (hnodnew = (hnodtld[hnodold].vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; hnodtab[hnodnew].vnodnum != ~0; hnodnew = (hnodnew + 1) & hashmsk) ; hnodtab[hnodnew] = hnodtld[hnodold]; /* Move node data to new position */ } /* TODO */ fprintf (stderr, "hertnum no longer valid !\n"); exit (1); addradj = (byte *) helmtab - (byte *) (*helmptr); /* Compute address difference */ gainTablFree (tablptr); /* Reset gain table */ memSet (helmtab + hashold, ~0, hashold * 2 * sizeof (VmeshSeparateFmElement)); for (helmold = 0; helmold < (hashold * 4); helmold ++) { /* For all old allocated elements */ Gnum helmnew; if (helmtab[helmold].velmnum == ~0) /* If unallocated slot */ continue; /* Skip to next slot */ for (helmnew = (helmtab[helmold].velmnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; helmnew = (helmnew + 1) & hashmsk) { if (helmtab[helmnew].velmnum == ~0) { helmtab[helmnew].velmnum = helmtab[helmold].velmnum; helmtab[helmnew].vertpart = helmtab[helmold].vertpart; helmtab[helmnew].ncmpcut2 = helmtab[helmold].ncmpcut2; helmtab[helmnew].ncmpgain2 = helmtab[helmold].ncmpgain2; helmtab[helmnew].ncmpgaindlt = helmtab[helmold].ncmpgaindlt; helmtab[helmnew].mswpnum = helmtab[helmold].mswpnum; helmtab[helmold].velmnum = ~0; /* Free old slot */ helmtab[helmold].mswpnum = ~0; /* Reset sweep number */ break; } if (helmtab[helmnew].velmnum != helmtab[helmold].velmnum) /* If element not found */ continue; /* Go on searching */ } if (helmtab[helmold].gainlink.next >= VMESHSEPAFMSTATELINK) /* If element was linked */ gainTablAdd (tablptr, (GainLink *) &helmtab[helmnew], helmtab[helmnew].ncmpgain2); /* Re-link it */ else { /* Element may be chained in some list */ helmtab[helmnew].gainlink.next = helmtab[helmold].gainlink.next; /* Save it */ helmtab[helmnew].gainlink.prev = (GainLink *) ((byte *) helmtab[helmold].gainlink.prev + addradj); } } if (*lockptr != NULL) *lockptr = (VmeshSeparateFmElement *) ((byte *) (*lockptr) + addradj); if (sepaptr != NULL) { if (*sepaptr != NULL) *sepaptr = (VmeshSeparateFmElement *) ((byte *) (*sepaptr) + addradj); } for (savenum = 0; savenum < savenbr; savenum ++) { /* Turn vertex indices back into hash indices */ Gnum vertnum; vertnum = movetab[savenum].hertnum; /* Read vertex index */ if (vertnum >= 0) { /* If element vertex */ Gnum helmnum; for (helmnum = (vertnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; helmnum = (helmnum + 1) & hashmsk) { #ifdef SCOTCH_DEBUG_VMESH2 if (helmtab[helmnum].velmnum == ~0) { /* We should always find the elements */ errorPrint ("vmeshSeparateFmResize: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (helmtab[helmnum].velmnum == vertnum) /* If element found */ break; } movetab[savenum].hertnum = helmnum; /* Save element hash index */ } else { /* If node vertex */ Gnum hnodnum; vertnum = -1 - vertnum; for (hnodnum = (vertnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; hnodnum = (hnodnum + 1) & hashmsk) { #ifdef SCOTCH_DEBUG_VMESH2 if (hnodtab[hnodnum].vnodnum == ~0) { /* We should always find the nodes */ errorPrint ("vmeshSeparateFmResize: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (hnodtab[hnodnum].vnodnum == vertnum) /* If element found */ break; } movetab[savenum].hertnum = -1 - hnodnum; /* Save node hash index */ } } return (0); } /* This routine returns the vertex of best gain ** whose swap will keep the balance correct. ** It returns: ** - !NULL : pointer to the vertex. ** - NULL : if no more vertices available. */ static VmeshSeparateFmElement * vmeshSeparateFmTablGet ( GainTabl * const tablptr, /*+ Gain table +*/ const Gnum deltcur, /*+ Current imbalance +*/ const Gnum deltmax) /*+ Maximum imbalance +*/ { const VmeshSeparateFmElement * velmptr; VmeshSeparateFmElement * vertbest; Gnum gainbest; const GainEntr * tablbest; Gnum deltbest; Gnum deltnew; tablbest = tablptr->tend; /* Assume no candidate vertex found yet */ gainbest = GAINMAX; vertbest = NULL; deltbest = deltmax; for (velmptr = (VmeshSeparateFmElement *) gainTablFrst (tablptr); /* Select candidate vertices */ (velmptr != NULL) && (velmptr->gainlink.tabl < tablbest); velmptr = (VmeshSeparateFmElement *) gainTablNext (tablptr, &velmptr->gainlink)) { deltnew = abs (deltcur + velmptr->ncmpgaindlt); if (deltnew <= deltmax) { /* If vertex enforces balance */ if ((velmptr->ncmpgain2 < gainbest) || /* And if it gives better gain */ ((velmptr->ncmpgain2 == gainbest) && /* Or if it gives better load */ (deltnew < deltbest))) { tablbest = velmptr->gainlink.tabl; /* Select it */ gainbest = velmptr->ncmpgain2; vertbest = (VmeshSeparateFmElement *) velmptr; deltbest = deltnew; } } } return (vertbest); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine computes the ** separation of the given mesh. ** It returns: ** - 0 : if bipartitioning could be computed. ** - !0 : on error. */ int vmeshSeparateFm ( Vmesh * restrict const meshptr, /*+ Node separation mesh +*/ const VmeshSeparateFmParam * restrict const paraptr) /*+ Method parameters +*/ { GainTabl * restrict tablptr; /* Pointer to gain table */ long passnbr; /* Maximum number of passes to go */ VmeshSeparateFmSave * restrict movetab; /* Pointer to move array */ Gnum movenbr; /* Number of uneffective moves done */ Gnum savenbr; /* Number of recorded backtrack moves */ Gnum mswpnum; /* Current number of recording sweep */ int moveflag; /* Flag set if useful moves made */ Gnum fronnum; /* Current index in frontier array */ Gnum vertnbr; Gnum hashsiz; /* Size of hash table */ Gnum hashmsk; /* Mask for access to hash table */ Gnum hashmax; /* Maximum number of objects in tables */ Gnum hashnbr; /* Estimated number of onjects in hash */ Gnum helmnbr; /* Number of elements in hash table */ Gnum helmnum; Gnum hnodnum; Gnum hnodnbr; /* Number of nodes in hash table */ VmeshSeparateFmElement * restrict helmtab; /* Element hash table */ VmeshSeparateFmNode * restrict hnodtab; /* Node hash table */ VmeshSeparateFmElement * lockptr; /* Linked list of locked elements */ VmeshSeparateFmElement * velmptr; /* Pointer to current element */ Gnum ncmploaddltmat; /* Theoretical latgest imbalance allowed */ Gnum ncmploaddltmax; /* Largest imbalance allowed */ Gnum ncmploaddlt; /* Current imbalance */ Gnum ncmpload2; /* Current size of separator */ Gnum ncmpload2bst; Gnum ncmploaddltbst; Gnum ecmpload1; Gnum ncmpload1; Gnum ncmpsize1; Gnum ncmpsize2; if (paraptr->deltrat > 0.0L) { Gnum ncmploaddlttmp; ncmploaddltmat = (Gnum) (paraptr->deltrat * meshptr->m.vnlosum) + 1; ncmploaddlttmp = (Gnum) (((float) meshptr->m.edgenbr * (float) meshptr->m.vnlosum) / ((float) meshptr->m.velmnbr * (float) meshptr->m.vnodnbr)); if (ncmploaddltmat < ncmploaddlttmp) ncmploaddltmat = ncmploaddlttmp; } else ncmploaddltmat = 0; ncmploaddltmat = (paraptr->deltrat > 0.0L) ? ((Gnum) (paraptr->deltrat * meshptr->m.vnlosum) + 1) : 0; /* printf ("FM Mbal=%ld\n", (long) ncmploaddltmat); */ if ((meshptr->fronnbr == 0) && /* If imbalance in graph with no frontier */ (abs (meshptr->ncmploaddlt) > ncmploaddltmat)) { VmeshSeparateGgParam paramdat; paramdat.passnbr = 3; vmeshSeparateGg (meshptr, ¶mdat); /* Compute a balanced initial partition */ } vertnbr = meshptr->m.velmnbr + meshptr->m.vnodnbr; hashnbr = 2 * ((meshptr->fronnbr + paraptr->movenbr) * (1 + (Gnum) ((float) meshptr->m.edgenbr / (float) vertnbr))); if (hashnbr > vertnbr) /* Set bound on hash table */ hashnbr = vertnbr; for (hashmax = 256; hashmax < hashnbr; hashmax <<= 1) ; /* Get upper power of two */ /* TODO */ hashmax *= 4; hashsiz = 4 * hashmax; hashmsk = hashsiz - 1; if (((tablptr = gainTablInit (meshptr->m.vnlosum, VMESHSEPAFMGAINBITS)) == NULL) || (memAllocGroup ((void **) (void *) &helmtab, (size_t) (hashsiz * sizeof (VmeshSeparateFmElement)), &hnodtab, (size_t) (hashsiz * sizeof (VmeshSeparateFmNode)), &movetab, (size_t) (hashmax * sizeof (VmeshSeparateFmSave)), NULL) == NULL)) { if (tablptr != NULL) { errorPrint ("vmeshSeparateFm: out of memory (1)"); gainTablExit (tablptr); } return (1); } passnbr = paraptr->passnbr; /* Set remaining number of passes */ ncmpload2 = meshptr->ncmpload[2]; /* Set current partition loads */ ncmploaddlt = meshptr->ncmploaddlt; memSet (helmtab, ~0, (byte *) &hnodtab[hashsiz] - (byte *) helmtab); /* Set all vertex numbers to ~0 */ helmnbr = hnodnbr = 0; savenbr = 0; /* No recorded moves yet */ lockptr = NULL; /* Set locked list as empty */ for (fronnum = 0; fronnum < meshptr->fronnbr; fronnum ++) { /* Set initial gains */ Gnum vnloval; Gnum vnodnum; Gnum enodnum; Gnum hnodnum; Gnum ecmpsize1; vnodnum = meshptr->frontab[fronnum]; #ifdef SCOTCH_DEBUG_VMESH2 if (meshptr->parttax[vnodnum] != 2) { errorPrint ("vmeshSeparateFm: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ vnloval = (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; for (hnodnum = (vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; hnodnum = (hnodnum + 1) & hashmsk) { if (hnodtab[hnodnum].vnodnum == ~0) /* If node slot found */ break; /* No need to go on */ #ifdef SCOTCH_DEBUG_VMESH2 if (hnodtab[hnodnum].vnodnum == vnodnum) { /* If node already present in frontier array */ errorPrint ("vmeshSeparateFm: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ } hnodnbr ++; /* One more node in hash table */ hnodtab[hnodnum].vnodnum = vnodnum; /* Insert node in hash table */ hnodtab[hnodnum].vnloval = vnloval; if ((meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]) == 0) { /* If single node */ int vnodpart; vnodpart = (ncmploaddlt > 0) ? 1 : 0; ncmpload2 -= vnloval; /* Node cannot belong to the separator */ ncmploaddlt += (1 - 2 * vnodpart) * vnloval; hnodtab[hnodnum].vertpart = vnodpart; hnodtab[hnodnum].ecmpsize0 = 0; continue; /* No need to process elements of node vertex */ } for (enodnum = meshptr->m.verttax[vnodnum], ecmpsize1 = 0; /* For all (at least one) element neighbors of node */ enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum helmnum; velmnum = meshptr->m.edgetax[enodnum]; for (helmnum = (velmnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; helmnum = (helmnum + 1) & hashmsk) { if (helmtab[helmnum].velmnum == ~0) { /* If element not yet inserted */ if (helmnbr >= hashmax) { /* If element hash table is full */ if (vmeshSeparateFmResize (tablptr, &helmtab, &hnodtab, &movetab, savenbr, &lockptr, NULL, hashmax) != 0) { errorPrint ("vmeshSeparateFm: cannot resize arrays (1)"); memFree (helmtab); /* Free group leader */ gainTablExit (tablptr); return (1); } hashmax <<= 1; hashsiz <<= 1; hashmsk = (hashmsk << 1) | 1; #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateFmCheck (meshptr, helmtab, hnodtab, hashmsk, ncmpload2, ncmploaddlt) != 0) { errorPrint ("vmeshSeparateFm: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ for (helmnum = (velmnum * VMESHSEPAFMHASHPRIME) & hashmsk; /* Re-compute position in table */ helmtab[helmnum].velmnum != ~0; helmnum = (helmnum + 1) & hashmsk) ; } helmtab[helmnum].gainlink.prev = (GainLink *) lockptr; /* Link it */ lockptr = &helmtab[helmnum]; helmtab[helmnum].velmnum = velmnum; /* Insert it */ helmtab[helmnum].vertpart = meshptr->parttax[velmnum] & 1; /* Separator elements to part 0 */ helmnbr ++; break; } if (helmtab[helmnum].velmnum == velmnum) /* If element already or newly inserted */ break; /* It will already be processed later */ } ecmpsize1 += helmtab[helmnum].vertpart; /* Account for its (possibly modified) part */ } hnodtab[hnodnum].vertpart = 2; /* Assume node is in separator */ hnodtab[hnodnum].ecmpsize0 = meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum] - ecmpsize1; if (hnodtab[hnodnum].ecmpsize0 == 0) { /* If all neighboring elements are in part 1 */ ncmpload2 -= vnloval; /* Node moves from separator to part 1 too */ ncmploaddlt -= vnloval; hnodtab[hnodnum].vertpart = 1; } else if (ecmpsize1 == 0) { /* If all neighboring elements are in part 0 */ ncmpload2 -= vnloval; /* Node moves from separator to part 0 too */ ncmploaddlt += vnloval; hnodtab[hnodnum].vertpart = 0; } } for (velmptr = lockptr; velmptr != NULL; /* Process all frontier elements */ velmptr = (VmeshSeparateFmElement *) velmptr->gainlink.prev) { Gnum velmnum; Gnum eelmnum; Gnum ncmpcut2; Gnum ncmpgain2; Gnum ncmpgaindlt; velmnum = velmptr->velmnum; ncmpcut2 = ncmpgain2 = ncmpgaindlt = 0; for (eelmnum = meshptr->m.verttax[velmnum]; /* For all neighbors of element */ eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; Gnum hnodnum; Gnum vnoddeg; vnodnum = meshptr->m.edgetax[eelmnum]; vnoddeg = meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]; for (hnodnum = (vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; hnodnum = (hnodnum + 1) & hashmsk) { if (hnodtab[hnodnum].vnodnum == vnodnum) { /* If node exists (can be in same part or separator) */ int vnodpart; Gnum vnloval; vnodpart = hnodtab[hnodnum].vertpart; vnloval = hnodtab[hnodnum].vnloval; if (vnodpart == 2) { /* If vertex is in separator */ ncmpcut2 ++; /* One more node in separator */ if ((hnodtab[hnodnum].ecmpsize0 - 1) == ((vnoddeg - 2) * velmptr->vertpart)) { /* If element is only neighbor in its part */ ncmpgain2 -= vnloval; ncmpgaindlt += vnloval * (2 * velmptr->vertpart - 1); } } else { /* Vertex not in separator */ #ifdef SCOTCH_DEBUG_VMESH2 if (vnodpart != velmptr->vertpart) { /* Node should be in same part as element */ errorPrint ("vmeshSeparateFm: internal error (4)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (vnoddeg <= 1) /* If element is node's sole neighbor */ ncmpgaindlt += (vnloval * (2 * vnodpart - 1)) * 2; else { ncmpgain2 += vnloval; ncmpgaindlt += (vnloval * (2 * vnodpart - 1)); } } break; } if (hnodtab[hnodnum].vnodnum == ~0) { /* If node does not exist */ int vnodpart; Gnum vnloval; vnodpart = velmptr->vertpart; /* Get its part */ vnloval = (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; #ifdef SCOTCH_DEBUG_VMESH2 if (vnodpart != meshptr->parttax[vnodnum]) { /* Node should be in same part as element */ errorPrint ("vmeshSeparateFm: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (vnoddeg > 1) { /* If node will move to separator */ ncmpgain2 += vnloval; /* Increase size of separator */ ncmpgaindlt += (2 * vnodpart - 1) * vnloval; /* Account for imbalance */ } else /* Node will move with element */ ncmpgaindlt += (2 * vnodpart - 1) * 2 * vnloval; /* Double imbalance */ break; } } } velmptr->ncmpcut2 = ncmpcut2; velmptr->ncmpgain2 = ncmpgain2; velmptr->ncmpgaindlt = ncmpgaindlt; } ncmploaddltmax = MAX (ncmploaddltmat, abs (ncmploaddlt)); /* Set current maximum imbalance after cleaning */ #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateFmCheck (meshptr, helmtab, hnodtab, hashmsk, ncmpload2, ncmploaddlt) != 0) { errorPrint ("vmeshSeparateFm: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ mswpnum = 0; /* First sweep */ ncmpload2bst = ncmpload2; /* Record best state */ ncmploaddltbst = ncmploaddlt; do { /* As long as there are improvements */ VmeshSeparateFmElement * velmptr; Gnum velmgain2; Gnum velmgaindlt; while (lockptr != NULL) { /* For all elements in locked list */ VmeshSeparateFmElement * velmptr; velmptr = lockptr; /* Unlink element from list */ lockptr = (VmeshSeparateFmElement *) velmptr->gainlink.prev; velmptr->gainlink.next = VMESHSEPAFMSTATEFREE;/* Set it free anyway */ if (velmptr->ncmpcut2 > 0) /* If element has nodes in separator */ gainTablAdd (tablptr, (GainLink *) velmptr, velmptr->ncmpgain2); /* Put it in table */ } /* fprintf (stderr, "LOOP %ld\t(%ld,\t%ld)\n", (long) passnbr, (long) ncmpload2bst, (long) ncmploaddltbst); */ moveflag = 0; /* No moves to date */ movenbr = 0; /* No uneffective moves yet */ while ((movenbr < paraptr->movenbr) && /* As long as we can find effective elements */ ((velmptr = vmeshSeparateFmTablGet (tablptr, ncmploaddlt, ncmploaddltmax)) != NULL)) { VmeshSeparateFmElement * sepaptr; /* Linked list of separator frontier elements */ Gnum velmnum; /* Number of current element */ Gnum velmpart; /* Old part of current element */ Gnum eelmnum; gainTablDel (tablptr, &velmptr->gainlink); /* Remove it from table */ velmptr->gainlink.next = VMESHSEPAFMSTATEUSED; /* Mark it as used */ velmptr->gainlink.prev = (GainLink *) lockptr; /* Lock it */ lockptr = velmptr; if (velmptr->mswpnum != mswpnum) { /* If element data not yet recorded */ movetab[savenbr].hertnum = (Gnum) (velmptr - helmtab); /* Record them */ movetab[savenbr].data.elem.vertpart = velmptr->vertpart; movetab[savenbr].data.elem.ncmpcut2 = velmptr->ncmpcut2; movetab[savenbr].data.elem.ncmpgain2 = velmptr->ncmpgain2; movetab[savenbr].data.elem.ncmpgaindlt = velmptr->ncmpgaindlt; velmptr->mswpnum = mswpnum; savenbr ++; /* One more move recorded */ } movenbr ++; /* One more assumed uneffective move performed */ velmgain2 = velmptr->ncmpgain2; /* Save old gains for this vertex */ velmgaindlt = velmptr->ncmpgaindlt; ncmpload2 += velmgain2; /* Account for gains */ ncmploaddlt += velmgaindlt; velmnum = velmptr->velmnum; /* Move element to other part */ velmpart = velmptr->vertpart; velmptr->vertpart = velmpart ^ 1; sepaptr = NULL; /* No frontier elements to relink yet */ for (eelmnum = meshptr->m.verttax[velmnum]; /* (Re-)link neighbors */ eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnoddeg; Gnum vnodnum; Gnum hnodnum; Gnum enodnum; Gnum vnloval; /* Load of current node */ int vnodpartold; /* Old part of current node */ int vnodpartnew; /* New part of current node */ Gnum ecmpsize0old; Gnum ecmpsize0new; vnodnum = meshptr->m.edgetax[eelmnum]; vnoddeg = meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]; for (hnodnum = (vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; hnodnum = (hnodnum + 1) & hashmsk) { if (hnodtab[hnodnum].vnodnum == vnodnum) /* If node found */ break; if (hnodtab[hnodnum].vnodnum == ~0) { /* If node not yet inserted */ #ifdef SCOTCH_DEBUG_VMESH2 if (meshptr->parttax[vnodnum] != velmpart) { errorPrint ("vmeshSeparateFm: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (hnodnbr >= hashmax) { /* If node hash table is full */ if (vmeshSeparateFmResize (tablptr, &helmtab, &hnodtab, &movetab, savenbr, &lockptr, &sepaptr, hashmax) != 0) { errorPrint ("vmeshSeparateFm: cannot resize arrays (2)"); memFree (helmtab); /* Free group leader */ gainTablExit (tablptr); return (1); } hashmax <<= 1; hashsiz <<= 1; hashmsk = (hashmsk << 1) | 1; #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateFmCheck (meshptr, helmtab, hnodtab, hashmsk, ncmpload2, ncmploaddlt) != 0) { errorPrint ("vmeshSeparateFm: internal error (8)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ for (helmnum = (velmnum * VMESHSEPAFMHASHPRIME) & hashmsk; /* Re-compute positions in tables */ helmtab[helmnum].velmnum != velmnum; helmnum = (helmnum + 1) & hashmsk) ; velmptr = helmtab + helmnum; for (hnodnum = (vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; hnodtab[hnodnum].vnodnum != ~0; hnodnum = (hnodnum + 1) & hashmsk) ; } hnodtab[hnodnum].vnodnum = vnodnum; /* Insert node in hash table */ hnodtab[hnodnum].vnloval = (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; hnodtab[hnodnum].ecmpsize0 = vnoddeg * (1 - velmpart); hnodtab[hnodnum].vertpart = velmpart; /* Node belongs to old part */ hnodnbr ++; /* One more node created */ break; } } if (hnodtab[hnodnum].mswpnum != mswpnum) { /* If node data not yet recorded */ movetab[savenbr].hertnum = -1 - hnodnum; movetab[savenbr].data.node.vertpart = hnodtab[hnodnum].vertpart; movetab[savenbr].data.node.ecmpsize0 = hnodtab[hnodnum].ecmpsize0; hnodtab[hnodnum].mswpnum = mswpnum; savenbr ++; /* One more move recorded */ } vnloval = hnodtab[hnodnum].vnloval; if (vnoddeg <= 1) { /* If node only has one neighbor */ #ifdef SCOTCH_DEBUG_VMESH2 if (hnodtab[hnodnum].vertpart != velmpart) { errorPrint ("vmeshSeparateFm: internal error (9)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ hnodtab[hnodnum].vertpart = 1 - velmpart; /* Directly move node to other part */ hnodtab[hnodnum].ecmpsize0 = velmpart; continue; /* Skip to next node */ } ecmpsize0old = hnodtab[hnodnum].ecmpsize0; ecmpsize0new = hnodtab[hnodnum].ecmpsize0 += (2 * velmpart - 1); /* One less neighbor element for this node */ #ifdef SCOTCH_DEBUG_VMESH2 if ((hnodtab[hnodnum].ecmpsize0 < 0) || (hnodtab[hnodnum].ecmpsize0 > vnoddeg)) { errorPrint ("vmeshSeparateFm: internal error (10)"); return (1); } if (hnodtab[hnodnum].vertpart == (1 - velmpart)) { errorPrint ("vmeshSeparateFm: internal error (11)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ vnodpartold = hnodtab[hnodnum].vertpart; /* Get old node part value */ vnodpartnew = 2; /* Assume new node part */ if (vnodpartold != vnodpartnew) /* If belonged to old part */ hnodtab[hnodnum].vertpart = vnodpartnew; /* Move to separator */ else if ((ecmpsize0old - 1) == (vnoddeg - 2) * velmpart) { vnodpartnew = /* Belonged to separator and last element in this part */ hnodtab[hnodnum].vertpart = 1 - velmpart; } for (enodnum = meshptr->m.verttax[vnodnum]; /* For all element neighbors of node */ enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmend; Gnum helmend; int vendpart; Gnum ncmpcut2; Gnum ncmpgain2; Gnum ncmpgaindlt; velmend = meshptr->m.edgetax[enodnum]; for (helmend = (velmend * VMESHSEPAFMHASHPRIME) & hashmsk; ; helmend = (helmend + 1) & hashmsk) { if (helmtab[helmend].velmnum == velmend) /* If element found */ break; if (helmtab[helmend].velmnum == ~0) { /* If element not yet inserted */ Gnum ncmpgain2; Gnum ncmpgaindlt; #ifdef SCOTCH_DEBUG_VMESH2 if (vnodpartold == 2) { /* Elements neighboring the frontier should exist */ errorPrint ("vmeshSeparateFm: internal error (12)"); return (1); } if (vnodpartold != meshptr->parttax[velmend]) { /* Unexisting elements should be in same part as their neighboring nodes */ errorPrint ("vmeshSeparateFm: internal error (13)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (helmnbr >= hashmax) { /* If element hash table is full */ if (vmeshSeparateFmResize (tablptr, &helmtab, &hnodtab, &movetab, savenbr, &lockptr, &sepaptr, hashmax) != 0) { errorPrint ("vmeshSeparateFm: cannot resize arrays (3)"); memFree (helmtab); /* Free group leader */ gainTablExit (tablptr); return (1); } hashmax <<= 1; hashsiz <<= 1; hashmsk = (hashmsk << 1) | 1; #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateFmCheck (meshptr, helmtab, hnodtab, hashmsk, ncmpload2, ncmploaddlt) != 0) { errorPrint ("vmeshSeparateFm: internal error (14)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ for (helmnum = (velmnum * VMESHSEPAFMHASHPRIME) & hashmsk; /* Re-compute positions in tables */ helmtab[helmnum].velmnum != velmnum; helmnum = (helmnum + 1) & hashmsk) ; velmptr = helmtab + helmnum; for (hnodnum = (vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; hnodtab[hnodnum].vnodnum != vnodnum; hnodnum = (hnodnum + 1) & hashmsk) ; for (helmend = (velmend * VMESHSEPAFMHASHPRIME) & hashmsk; helmtab[helmend].velmnum != ~0; helmend = (helmend + 1) & hashmsk) ; } helmtab[helmend].gainlink.next = VMESHSEPAFMSTATEFREE; helmtab[helmend].velmnum = velmend; helmtab[helmend].vertpart = vnodpartold; helmtab[helmend].ncmpcut2 = 0; if (meshptr->m.vnlotax == NULL) { Gnum eelmend; ncmpgain2 = meshptr->m.vendtax[velmend] - meshptr->m.verttax[velmend]; ncmpgaindlt = (2 * vnodpartold - 1) * ncmpgain2; for (eelmend = meshptr->m.verttax[velmend]; /* For all neighboring nodes */ eelmend < meshptr->m.vendtax[velmend]; eelmend ++) { Gnum vnodend; vnodend = meshptr->m.edgetax[eelmend]; if ((meshptr->m.vendtax[vnodend] - meshptr->m.verttax[vnodend]) <= 1) { /* If node linked to element only */ ncmpgain2 --; /* Node will directly move to other part */ ncmpgaindlt += (2 * velmpart - 1); } } } else { Gnum eelmend; Gnum veloend; for (eelmend = meshptr->m.verttax[velmend], ncmpgain2 = ncmpgaindlt = veloend = 0; /* For all neighboring nodes */ eelmend < meshptr->m.vendtax[velmend]; eelmend ++) { Gnum vnodend; Gnum vnloend; vnodend = meshptr->m.edgetax[eelmend]; vnloend = meshptr->m.vnlotax[vnodend]; veloend += vnloend; if ((meshptr->m.vendtax[vnodend] - meshptr->m.verttax[vnodend]) <= 1) { /* If node linked to element only */ ncmpgain2 -= vnloend; ncmpgaindlt += vnloend * (2 * velmpart - 1); } } ncmpgain2 += veloend; ncmpgaindlt += (2 * vnodpartold - 1) * veloend; } helmtab[helmend].ncmpgain2 = ncmpgain2; helmtab[helmend].ncmpgaindlt = ncmpgaindlt; helmnbr ++; break; } } if (helmtab[helmend].mswpnum != mswpnum) { /* If element data not yet recorded */ movetab[savenbr].hertnum = helmend; movetab[savenbr].data.elem.vertpart = helmtab[helmend].vertpart; movetab[savenbr].data.elem.ncmpcut2 = helmtab[helmend].ncmpcut2; movetab[savenbr].data.elem.ncmpgain2 = helmtab[helmend].ncmpgain2; movetab[savenbr].data.elem.ncmpgaindlt = helmtab[helmend].ncmpgaindlt; helmtab[helmend].mswpnum = mswpnum; savenbr ++; /* One more move recorded */ } if (helmtab[helmend].gainlink.next != VMESHSEPAFMSTATEUSED) { /* If element available */ if (helmtab[helmend].gainlink.next >= VMESHSEPAFMSTATELINK) /* If element linked */ gainTablDel (tablptr, &helmtab[helmend].gainlink); /* Unlink element */ helmtab[helmend].gainlink.next = VMESHSEPAFMSTATEUSED; /* Chain neighbor elements */ helmtab[helmend].gainlink.prev = (GainLink *) sepaptr; sepaptr = &helmtab[helmend]; } vendpart = helmtab[helmend].vertpart; ncmpcut2 = helmtab[helmend].ncmpcut2; /* Get element values */ ncmpgain2 = helmtab[helmend].ncmpgain2; ncmpgaindlt = helmtab[helmend].ncmpgaindlt; if (vnodpartold != 2) { /* If node was in same part as the element */ ncmpgain2 -= vnloval; ncmpgaindlt -= (2 * vendpart - 1) * vnloval; } else { /* If node was in separator */ ncmpcut2 --; if ((ecmpsize0old - 1) == ((vnoddeg - 2) * vendpart)) { /* If element was the only one in its part */ ncmpgain2 += vnloval; ncmpgaindlt -= (2 * vendpart - 1) * vnloval; } } if (vnodpartnew != 2) { /* If node is now in same part as the element */ ncmpgain2 += vnloval; ncmpgaindlt += (2 * vendpart - 1) * vnloval; } else { /* If node is now in separator */ ncmpcut2 ++; if ((ecmpsize0new - 1) == ((vnoddeg - 2) * vendpart)) { /* If element is the only one in its part */ ncmpgain2 -= vnloval; ncmpgaindlt += (2 * vendpart - 1) * vnloval; } } helmtab[helmend].ncmpcut2 = ncmpcut2; /* Adjust element values */ helmtab[helmend].ncmpgain2 = ncmpgain2; helmtab[helmend].ncmpgaindlt = ncmpgaindlt; } } velmptr->ncmpgain2 = - velmgain2; /* Set new gains of element */ velmptr->ncmpgaindlt = - velmgaindlt; while (sepaptr != NULL) { /* As long as there are element to re-link */ VmeshSeparateFmElement * velmptr; velmptr = sepaptr; /* Get element to re-link */ sepaptr = (VmeshSeparateFmElement *) velmptr->gainlink.prev; velmptr->gainlink.next = VMESHSEPAFMSTATEFREE; if (velmptr->ncmpcut2 != 0) /* If element belongs to frontier */ gainTablAdd (tablptr, (GainLink *) velmptr, velmptr->ncmpgain2); /* Re-link it */ } #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateFmCheck (meshptr, helmtab, hnodtab, hashmsk, ncmpload2, ncmploaddlt) != 0) { errorPrint ("vmeshSeparateFm: internal error (15)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ if (ncmpload2 < ncmpload2bst) { /* If move improves separator size */ ncmpload2bst = ncmpload2; /* This move was effective */ ncmploaddltbst = ncmploaddlt; movenbr = savenbr = 0; moveflag = 1; mswpnum ++; } else if (ncmpload2 == ncmpload2bst) { if (abs (ncmploaddlt) < abs (ncmploaddltbst)) { ncmploaddltbst = ncmploaddlt; /* This move was effective */ movenbr = savenbr = 0; moveflag = 1; mswpnum ++; } else if (abs (ncmploaddlt) == abs (ncmploaddltbst)) { ncmploaddltbst = ncmploaddlt; /* Might be the opposite, so record */ savenbr = 0; /* Forget backtracking */ mswpnum ++; } } if (ncmploaddltmax > ncmploaddltmat) { /* If must restrict distance bounds */ Gnum ncmploaddlttmp; ncmploaddlttmp = ncmploaddltmax; /* Save old working ncmpdltmax value */ ncmploaddltmax = MAX (ncmploaddltmat, /* Restrict at most to maximum */ abs (ncmploaddlt)); if (ncmploaddltmax < ncmploaddlttmp) { /* If we have done something useful */ ncmpload2bst = ncmpload2; /* Then record best move done */ ncmploaddltbst = ncmploaddlt; movenbr = savenbr = 0; mswpnum ++; } } } while (savenbr > 0) { /* Delete exceeding moves */ Gnum hertnum; hertnum = movetab[-- savenbr].hertnum; /* Get vertex hash number */ if (hertnum >= 0) { /* If vertex is element */ helmtab[hertnum].vertpart = movetab[savenbr].data.elem.vertpart; helmtab[hertnum].ncmpcut2 = movetab[savenbr].data.elem.ncmpcut2; helmtab[hertnum].ncmpgain2 = movetab[savenbr].data.elem.ncmpgain2; helmtab[hertnum].ncmpgaindlt = movetab[savenbr].data.elem.ncmpgaindlt; if (helmtab[hertnum].gainlink.next != VMESHSEPAFMSTATEUSED) { /* If element not already removed */ if (helmtab[hertnum].gainlink.next >= VMESHSEPAFMSTATELINK) /* If vertex is still linked */ gainTablDel (tablptr, &helmtab[hertnum].gainlink); /* Remove it from table */ helmtab[hertnum].gainlink.next = VMESHSEPAFMSTATEUSED; helmtab[hertnum].gainlink.prev = (GainLink *) lockptr; /* Lock it */ lockptr = &helmtab[hertnum]; } } else { /* Vertex is node */ hertnum = -1 - hertnum; /* Get hash index */ hnodtab[hertnum].vertpart = movetab[savenbr].data.node.vertpart; hnodtab[hertnum].ecmpsize0 = movetab[savenbr].data.node.ecmpsize0; } } ncmpload2 = ncmpload2bst; /* Restore best separator parameters */ ncmploaddlt = ncmploaddltbst; mswpnum ++; /* Forget all recorded moves */ #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateFmCheck (meshptr, helmtab, hnodtab, hashmsk, ncmpload2, ncmploaddlt) != 0) { errorPrint ("vmeshSeparateFm: internal error (16)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ } while ((moveflag != 0) && /* As long as vertices are moved */ (-- passnbr != 0)); /* And we are allowed to loop (TRICK for negative values) */ ecmpload1 = 0; /* Assume no change in elements */ for (helmnum = 0; helmnum < hashsiz; helmnum ++) { Gnum velmnum; velmnum = helmtab[helmnum].velmnum; if ((velmnum != ~0) && (helmtab[helmnum].vertpart != meshptr->parttax[velmnum])) { #ifdef SCOTCH_DEBUG_VMESH2 if ((helmtab[helmnum].vertpart < 0) || /* Separator elements should have been removed */ (helmtab[helmnum].vertpart > 1)) { errorPrint ("vmeshSeparateFm: internal error (17)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ ecmpload1 += helmtab[helmnum].vertpart - (meshptr->parttax[velmnum] & 1); meshptr->parttax[velmnum] = helmtab[helmnum].vertpart; } } meshptr->ecmpsize[1] += ecmpload1; /* No longer elements in separator */ meshptr->ecmpsize[0] = meshptr->m.velmnbr - meshptr->ecmpsize[1]; #ifdef SCOTCH_DEBUG_VMESH2 if ((meshptr->ecmpsize[0] + meshptr->ecmpsize[1]) != meshptr->m.velmnbr) { /* Separator elements should have been removed */ errorPrint ("vmeshSeparateFm: internal error (18)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ ncmpsize1 = ncmpsize2 = 0; ncmpload1 = ncmpload2 = 0; for (hnodnum = 0, fronnum = 0; hnodnum < hashsiz; hnodnum ++) { Gnum vnodnum; vnodnum = hnodtab[hnodnum].vnodnum; if (vnodnum != ~0) { #ifdef SCOTCH_DEBUG_VMESH2 if ((hnodtab[hnodnum].vertpart < 0) || (hnodtab[hnodnum].vertpart > 2)) { errorPrint ("vmeshSeparateFm: internal error (19)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (hnodtab[hnodnum].vertpart == 2) /* If node belongs to separator */ meshptr->frontab[fronnum ++] = vnodnum; /* Add it to separator array */ if (hnodtab[hnodnum].vertpart != meshptr->parttax[vnodnum]) { Gnum diffpart1; Gnum diffpart2; diffpart1 = (hnodtab[hnodnum].vertpart & 1) - (meshptr->parttax[vnodnum] & 1); diffpart2 = (hnodtab[hnodnum].vertpart >> 1) - (meshptr->parttax[vnodnum] >> 1); ncmpsize1 += diffpart1; ncmpsize2 += diffpart2; ncmpload1 += hnodtab[hnodnum].vnloval * diffpart1; ncmpload2 += hnodtab[hnodnum].vnloval * diffpart2; meshptr->parttax[vnodnum] = hnodtab[hnodnum].vertpart; } } } #ifdef SCOTCH_DEBUG_VMESH2 if ((meshptr->fronnbr + ncmpsize2) != fronnum) { errorPrint ("vmeshSeparateFm: internal error (20)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ meshptr->ncmpload[1] += ncmpload1; meshptr->ncmpload[2] += ncmpload2; meshptr->ncmpload[0] = meshptr->m.vnlosum - meshptr->ncmpload[1] - meshptr->ncmpload[2]; meshptr->ncmploaddlt = meshptr->ncmpload[0] - meshptr->ncmpload[1]; meshptr->fronnbr = fronnum; meshptr->ncmpsize[1] += ncmpsize1; meshptr->ncmpsize[0] = meshptr->m.vnodnbr - fronnum - meshptr->ncmpsize[1]; memFree (helmtab); /* Free group leader */ gainTablExit (tablptr); #ifdef SCOTCH_DEBUG_VMESH2 if (vmeshCheck (meshptr) != 0) { errorPrint ("vmeshSeparateFm: internal error (21)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ return (0); } /* This routine checks the consistency of ** the hash structures. ** It returns: ** - 0 : in case of success. ** - !0 : in case of error. */ #ifdef SCOTCH_DEBUG_VMESH3 static int vmeshSeparateFmCheck ( const Vmesh * const meshptr, const VmeshSeparateFmElement * restrict helmtab, const VmeshSeparateFmNode * restrict hnodtab, const Gnum hashmsk, const Gnum ncmpload2, const Gnum ncmploaddlt) { Gnum vertnbr; Gnum helmnum; Gnum hnodnum; Gnum ncmploadtmp[3]; GraphPart * restrict parttax; vertnbr = meshptr->m.velmnbr + meshptr->m.vnodnbr; if ((parttax = (GraphPart *) memAlloc (vertnbr * sizeof (GraphPart))) == NULL) { errorPrint ("vmeshSeparateFmCheck: out of memory"); return (1); } memCpy (parttax, meshptr->parttax + meshptr->m.baseval, vertnbr * sizeof (GraphPart)); parttax -= meshptr->m.baseval; ncmploadtmp[0] = meshptr->ncmpload[0]; ncmploadtmp[1] = meshptr->ncmpload[1]; ncmploadtmp[2] = meshptr->ncmpload[2]; for (hnodnum = 0; hnodnum <= hashmsk; hnodnum ++) { /* For all node slots */ Gnum vnodnum; Gnum enodnum; Gnum ecmpsize0; int vnodpart; vnodnum = hnodtab[hnodnum].vnodnum; if (vnodnum == ~0) /* If unallocated slot */ continue; /* Skip to next slot */ if (hnodtab[hnodnum].vnloval != ((meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum])) { errorPrint ("vmeshSeparateFmCheck: invalid node load"); return (1); } if ((hnodtab[hnodnum].ecmpsize0 < 0) || (hnodtab[hnodnum].ecmpsize0 > (meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]))) { errorPrint ("vmeshSeparateFmCheck: invalid node neighbors in part 0"); return (1); } vnodpart = hnodtab[hnodnum].vertpart; if (vnodpart != meshptr->parttax[vnodnum]) { ncmploadtmp[meshptr->parttax[vnodnum]] -= hnodtab[hnodnum].vnloval; ncmploadtmp[vnodpart] += hnodtab[hnodnum].vnloval; parttax[vnodnum] = vnodpart; } ecmpsize0 = 0; for (enodnum = meshptr->m.verttax[vnodnum]; /* For all element neighbors */ enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmnum; Gnum helmnum; int velmpart; velmnum = meshptr->m.edgetax[enodnum]; for (helmnum = (velmnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; helmnum = (helmnum + 1) & hashmsk) { if (helmtab[helmnum].velmnum == velmnum) { /* If element found */ velmpart = helmtab[helmnum].vertpart; parttax[velmnum] = velmpart; break; } if (helmtab[helmnum].velmnum == ~0) { /* If element not present */ velmpart = meshptr->parttax[velmnum]; break; } } if (velmpart == 0) ecmpsize0 ++; } if (ecmpsize0 != hnodtab[hnodnum].ecmpsize0) { errorPrint ("vmeshSeparateFmCheck: invalid node neighbor count"); return (1); } } if (ncmpload2 != ncmploadtmp[2]) { errorPrint ("vmeshSeparateFmCheck: invalid frontier load"); return (1); } if (ncmploaddlt != (ncmploadtmp[0] - ncmploadtmp[1])) { errorPrint ("vmeshSeparateFmCheck: invalid separator balance"); return (1); } for (helmnum = 0; helmnum <= hashmsk; helmnum ++) { /* For all element slots */ Gnum velmnum; Gnum eelmnum; Gnum ncmpgain2; Gnum ncmpgaindlt; Gnum ncmpsize[3]; int velmpart; velmnum = helmtab[helmnum].velmnum; if (velmnum == ~0) /* If unallocated slot */ continue; /* Skip to next slot */ ncmpgain2 = ncmpgaindlt = 0; ncmpsize[0] = ncmpsize[1] = ncmpsize[2] = 0; velmpart = helmtab[helmnum].vertpart; for (eelmnum = meshptr->m.verttax[velmnum]; /* For all node neighbors */ eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; Gnum hnodnum; int vnodpart; Gnum vnloval; vnodnum = meshptr->m.edgetax[eelmnum]; vnloval = (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; for (hnodnum = (vnodnum * VMESHSEPAFMHASHPRIME) & hashmsk; ; hnodnum = (hnodnum + 1) & hashmsk) { if (hnodtab[hnodnum].vnodnum == vnodnum) { /* If element found */ vnodpart = hnodtab[hnodnum].vertpart; if (vnodpart != 2) { if (vnodpart != velmpart) { errorPrint ("vmeshSeparateFmCheck: invalid separator node (1)"); return (1); } if ((meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum] - 1) == 0) ncmpgaindlt += (2 * vnodpart - 1) * 2 * vnloval; else { ncmpgain2 += vnloval; ncmpgaindlt += (2 * vnodpart - 1) * vnloval; } } else if (((hnodtab[hnodnum].ecmpsize0 == 1) && (velmpart == 0)) || ((hnodtab[hnodnum].ecmpsize0 == (meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum] - 1)) && (velmpart == 1))) { ncmpgain2 -= vnloval; ncmpgaindlt += (2 * velmpart - 1) * vnloval; } break; } if (hnodtab[hnodnum].vnodnum == ~0) { /* If element not present */ vnodpart = meshptr->parttax[vnodnum]; if (vnodpart != velmpart) { errorPrint ("vmeshSeparateFmCheck: invalid separator node (2)"); return (1); } if ((meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]) == 1) { if (vnodpart == 2) { errorPrint ("vmeshSeparateFmCheck: invalid separator node (3)"); return (1); } ncmpgaindlt += (2 * vnodpart - 1) * 2 * vnloval; } else { ncmpgain2 += vnloval; ncmpgaindlt += (2 * vnodpart - 1) * vnloval; } break; } } ncmpsize[vnodpart] ++; } if ((ncmpsize[0] != 0) && (ncmpsize[1] != 0)) { errorPrint ("vmeshSeparateFmCheck: invalid element nodes"); return (1); } if (ncmpsize[2] != helmtab[helmnum].ncmpcut2) { errorPrint ("vmeshSeparateFmCheck: invalid element separator count"); return (1); } if ((ncmpgain2 != helmtab[helmnum].ncmpgain2) || (ncmpgaindlt != helmtab[helmnum].ncmpgaindlt)) { errorPrint ("vmeshSeparateFmCheck: invalid element gains"); return (1); } } memFree (parttax + meshptr->m.baseval); return (0); } #endif /* SCOTCH_DEBUG_VMESH3 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_fm.h000066400000000000000000000165731514310134000275720ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_fm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the improved Fiduccia-Mattheyses **/ /** mesh element separation routine. **/ /** **/ /** DATES : # Version 4.0 : from : 26 feb 2003 **/ /** to : 06 may 2004 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Gain table subbits. +*/ #define VMESHSEPAFMGAINBITS 4 /*+ Prime number for hashing vertex numbers. +*/ #define VMESHSEPAFMHASHPRIME 11 /*+ Prime number for hashing +*/ /*+ Gain table vertex status. +*/ #define VMESHSEPAFMSTATEFREE ((GainLink *) 0) /*+ Element is free or separator-chained +*/ #define VMESHSEPAFMSTATEUSED ((GainLink *) 1) /*+ Element already swapped +*/ #define VMESHSEPAFMSTATELINK ((GainLink *) 2) /*+ Currently in gain table if higher +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VmeshSeparateFmParam_ { INT movenbr; /*+ Maximum number of uneffective moves that can be done +*/ INT passnbr; /*+ Number of passes to be performed (-1 : infinite) +*/ double deltrat; /*+ Maximum weight imbalance ratio +*/ } VmeshSeparateFmParam; /*+ The hash element structure. The goal of both hash arrays is to record partition data that supercedes the one contained in the calling Vmesh structure, until the newly computed partition is written back to the Vmesh. +*/ typedef struct VmeshSeparateFmElement_ { GainLink gainlink; /*+ Gain link if moved to other part; FIRST +*/ Gnum velmnum; /*+ Number of vertex in hash table +*/ int vertpart; /*+ Vertex part +*/ Gnum ncmpcut2; /*+ Number of neighbor nodes in separator +*/ Gnum ncmpgain2; /*+ Separator gain if moved to given part +*/ Gnum ncmpgaindlt; /*+ Node load imbalance if element swapped +*/ Gnum mswpnum; /*+ Number of move sweep when data recorded +*/ } VmeshSeparateFmElement; /*+ The hash node structure. +*/ typedef struct VmeshSeparateFmNode_ { Gnum vnodnum; /*+ Number of vertex in hash table +*/ Gnum vnloval; /*+ Vertex load +*/ int vertpart; /*+ Vertex part +*/ Gnum ecmpsize0; /*+ Number of element neighbors in part 0 +*/ Gnum mswpnum; /*+ Number of move sweep when data recorded +*/ } VmeshSeparateFmNode; /*+ The move recording structure. +*/ typedef struct VmeshSeparateFmSave_ { Gnum hertnum; /*+ Hash index of vertex, (helmnum) or (-1 - hnodnum) +*/ union { /*+ Stored data to recover +*/ struct { /*+ Recovery data for element +*/ int vertpart; /*+ Vertex part +*/ Gnum ncmpcut2; /*+ Number of neighbor nodes in separator +*/ Gnum ncmpgain2; /*+ Separator gain if moved to given part +*/ Gnum ncmpgaindlt; /*+ Node load imbalance if element swapped +*/ } elem; struct { /*+ Recovery data for node +*/ int vertpart; /*+ Vertex part +*/ Gnum ecmpsize0; /*+ Number of element neighbors in part 0 +*/ } node; } data; } VmeshSeparateFmSave; /* ** The function prototypes. */ #ifdef SCOTCH_VMESH_SEPARATE_FM static VmeshSeparateFmElement * vmeshSeparateFmTablGet (GainTabl * const, const Gnum, const Gnum); static int vmeshSeparateFmResize (GainTabl * restrict const, VmeshSeparateFmElement * restrict * const, VmeshSeparateFmNode * restrict * const, VmeshSeparateFmSave * restrict * const, const Gnum, VmeshSeparateFmElement **, VmeshSeparateFmElement **, const Gnum); #ifdef SCOTCH_DEBUG_VMESH3 static int vmeshSeparateFmCheck (const Vmesh * const, const VmeshSeparateFmElement * restrict, const VmeshSeparateFmNode * restrict, const Gnum, const Gnum, const Gnum); #endif /* SCOTCH_DEBUG_VMESH3 */ #endif /* SCOTCH_VMESH_SEPARATE_FM */ int vmeshSeparateFm (Vmesh * restrict const, const VmeshSeparateFmParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_gg.c000066400000000000000000000573641514310134000275630ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2019,2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_gg.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates a node separation **/ /** mesh using an element-oriented version **/ /** of the Greedy Graph Growing algorithm. **/ /** **/ /** DATES : # Version 4.0 : from : 16 sep 2002 **/ /** to : 18 aug 2004 **/ /** # Version 5.0 : from : 12 sep 2007 **/ /** to : 24 mar 2008 **/ /** # Version 5.1 : from : 09 nov 2008 **/ /** to : 09 nov 2008 **/ /** # Version 6.0 : from : 23 jan 2020 **/ /** to : 06 feb 2020 **/ /** # Version 6.1 : from : 05 dec 2021 **/ /** to : 05 dec 2021 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 09 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VMESH_SEPARATE_GG #include "module.h" #include "common.h" #include "gain.h" #include "graph.h" #include "mesh.h" #include "vmesh.h" #include "vmesh_separate_gg.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vmeshSeparateGg ( Vmesh * restrict const meshptr, /*+ Node separation mesh +*/ const VmeshSeparateGgParam * restrict const paraptr) /*+ Method parameters +*/ { GainTabl * restrict tablptr; /* Pointer to gain table */ byte * restrict vexxtab; /* Start of auxiliary arrays */ size_t vexxsiz; /* Size of auxiliary arrays to be reset every pass */ VmeshSeparateGgElem * restrict velxtax; /* Based auxiliary element array */ VmeshSeparateGgNode * restrict vnoxtax; /* Based auxiliary node array */ Gnum * restrict velitax; /* Array of sums of weights of isolated neighboring nodes of elements */ Gnum * restrict velstax; /* Array of sums of weights of neighboring nodes of elements */ Gnum velssiz; /* Size of element neighboring node load sum array */ VmeshSeparateGgElem * sepaptr; /* Head of chained list of elements to re-link */ Gnum * restrict permtab; /* Element permutation table for finding new roots */ Gnum * permptr; /* Pointer to current permutation index */ INT passnum; /* Number of current pass */ Gnum ecmpsize0; /* Number of elements in part 0 */ Gnum ncmploaddlt; /* Current imbalance of bipartition */ Gnum ncmpload2; /* Current number of nodes in separator */ Gnum vnodnum; Gnum fronnum; Gnum ncmpsize1; Gnum ncmpsize2; if (meshptr->m.velmnbr == 0) { /* If only a single node or disconnected nodes */ vmeshZero (meshptr); /* Don't bother with parts */ return (0); } velssiz = (meshptr->m.vnlotax == NULL) ? 0 : meshptr->m.velmnbr; /* Compute size of vertex load sum array */ if (((tablptr = gainTablInit (GAINMAX, VMESHSEPAGGSUBBITS)) == NULL) || /* Use logarithmic array only */ ((vexxtab = (byte *) memAllocGroup ((void **) (void *) &velxtax, (size_t) (meshptr->m.velmnbr * sizeof (VmeshSeparateGgElem)), &vnoxtax, (size_t) (meshptr->m.vnodnbr * sizeof (VmeshSeparateGgNode)), &velitax, (size_t) (meshptr->m.velmnbr * sizeof (Gnum)), &velstax, (size_t) (velssiz * sizeof (Gnum)), NULL)) == NULL)) { if (tablptr != NULL) gainTablExit (tablptr); errorPrint ("vmeshSeparateGg: out of memory (1)"); return (1); } vexxsiz = (size_t) ((byte *) velitax - vexxtab); /* Size of arrays that must be reset at each pass */ velxtax -= meshptr->m.velmbas; /* Base access to auxiliary arrays */ vnoxtax -= meshptr->m.vnodbas; velitax -= meshptr->m.velmbas; if (velssiz == 0) { /* If no vertex load array */ Gnum velmnum; for (velmnum = meshptr->m.velmbas; velmnum < meshptr->m.velmnnd; velmnum ++) { Gnum eelmnum; Gnum velisum; for (eelmnum = meshptr->m.verttax[velmnum], velisum = 0; eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; vnodnum = meshptr->m.edgetax[eelmnum]; if ((meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]) == 1) velisum --; } velitax[velmnum] = velisum; } } else { Gnum velmnum; velstax -= meshptr->m.velmbas; for (velmnum = meshptr->m.velmbas; velmnum < meshptr->m.velmnnd; velmnum ++) { Gnum eelmnum; Gnum velisum; Gnum velssum; for (eelmnum = meshptr->m.verttax[velmnum], velisum = velssum = 0; eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; Gnum vnloval; vnodnum = meshptr->m.edgetax[eelmnum]; vnloval = meshptr->m.vnlotax[vnodnum]; velssum += vnloval; if ((meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum]) == 1) velisum -= vnloval; } velitax[velmnum] = velisum; velstax[velmnum] = velssum; } } permtab = NULL; /* Do not allocate permutation array yet */ for (passnum = 0; passnum < paraptr->passnbr; passnum ++) { /* For all passes */ VmeshSeparateGgElem * velxptr; /* Pointer to selected element */ Gnum velmnum; memSet (vexxtab, 0, vexxsiz); /* All vertices to part 0 */ gainTablFree (tablptr); /* Reset gain table */ permptr = NULL; /* No permutation built yet */ ecmpsize0 = meshptr->m.velmnbr; /* All elements to part 0 */ ncmpload2 = 0; /* Reset separation parameters */ ncmploaddlt = meshptr->m.vnlosum; velmnum = meshptr->m.velmbas + contextIntRandVal (meshptr->contptr, meshptr->m.velmnbr); /* Randomly select first root element vertex */ velxptr = velxtax + velmnum; /* Set root pointer to root element */ if (meshptr->m.verttax[velmnum] == meshptr->m.vendtax[velmnum]) /* If picked an isolated element, search for another root */ goto next; do { /* Loop on root element vertices */ Gnum velmnum; /* Number of current element to process */ velxptr->gainlink.next = /* TRICK: allow deletion of root vertex */ velxptr->gainlink.prev = (GainLink *) velxptr; velmnum = (Gnum) (velxptr - velxtax); /* Get root element number */ { Gnum ncmpgain1; /* Gain (2->1) */ Gnum ncmpgain2; /* Gain (0->2) */ ncmpgain2 = (meshptr->m.vnlotax == NULL) /* Set gains */ ? meshptr->m.vendtax[velmnum] - meshptr->m.verttax[velmnum] : velstax[velmnum]; ncmpgain1 = velitax[velmnum]; velxptr->ncmpgain2 = ncmpgain1 + ncmpgain2; velxptr->ncmpgaindlt = ncmpgain1 - ncmpgain2; } do { /* While element vertices can be retrieved */ Gnum eelmnum; /* Number of current element edge */ velmnum = (Gnum) (velxptr - velxtax); /* Get based number of selected element */ if (ncmploaddlt < abs (ncmploaddlt + velxtax[velmnum].ncmpgaindlt)) { /* If swapping would cause imbalance */ permptr = permtab + meshptr->m.velmnbr; /* Terminate swapping process */ velxptr = NULL; break; } ecmpsize0 --; /* One less element in part 0 */ gainTablDel (tablptr, (GainLink *) velxptr); /* Remove element from table */ velxptr->gainlink.next = VMESHSEPAGGSTATEPART1; /* Move element to part 1 */ ncmpload2 += velxptr->ncmpgain2; /* Update partition parameters */ ncmploaddlt += velxptr->ncmpgaindlt; sepaptr = NULL; /* No frontier elements to relink yet */ for (eelmnum = meshptr->m.verttax[velmnum]; /* For all neighbor node vertices */ eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; /* Number of current node neighbor */ vnodnum = meshptr->m.edgetax[eelmnum]; /* Get number of neighbor node */ #ifdef SCOTCH_DEBUG_VMESH2 if (vnoxtax[vnodnum].partval == 1) { errorPrint ("vmeshSeparateGg: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (vnoxtax[vnodnum].partval == 0) { /* If yet untouched neighbor node */ Gnum enodnum; /* Current egde of current neighbor node */ Gnum vnloval; vnloval = (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; vnoxtax[vnodnum].partval = 2; /* Node now belongs to separator */ vnoxtax[vnodnum].commsize0 = meshptr->m.vendtax[vnodnum] - meshptr->m.verttax[vnodnum] - 1; vnoxtax[vnodnum].velmisum0 = - velmnum; for (enodnum = meshptr->m.verttax[vnodnum]; /* For all its elements */ enodnum < meshptr->m.vendtax[vnodnum]; enodnum ++) { Gnum velmend; velmend = meshptr->m.edgetax[enodnum]; /* Get neighbor element */ vnoxtax[vnodnum].velmisum0 += velmend; /* Sum-up element indices for neighbor node */ #ifdef SCOTCH_DEBUG_VMESH2 if ((velxtax[velmend].gainlink.next == VMESHSEPAGGSTATEPART1) && (velmend != velmnum)) { errorPrint ("vmeshSeparateGg: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (velxtax[velmend].gainlink.next == VMESHSEPAGGSTATEPART0) { /* If untouched element */ Gnum ncmpgain1; /* Gain (2->1) */ Gnum ncmpgain2; /* Gain (0->2) */ #ifdef SCOTCH_DEBUG_VMESH2 Gnum eelmend; #endif /* SCOTCH_DEBUG_VMESH2 */ velxtax[velmend].gainlink.next = VMESHSEPAGGSTATEPART2; /* Move element to frontier */ velxtax[velmend].gainlink.prev = (GainLink *) sepaptr; /* Chain vertex */ sepaptr = &velxtax[velmend]; ncmpgain2 = (meshptr->m.vnlotax == NULL) /* Set gains */ ? meshptr->m.vendtax[velmend] - meshptr->m.verttax[velmend] - 1 : velstax[velmend] - vnloval; ncmpgain1 = velitax[velmend]; #ifdef SCOTCH_DEBUG_VMESH2 for (eelmend = meshptr->m.verttax[velmend]; /* For all its neighboring nodes */ eelmend < meshptr->m.vendtax[velmend]; eelmend ++) { Gnum vnodend; vnodend = meshptr->m.edgetax[eelmend]; if ((vnoxtax[vnodend].partval == 1) || ((vnoxtax[vnodend].partval == 2) && (vnodend != vnodnum))) { errorPrint ("vmeshSeparateGg: internal error (3)"); return (1); } if (meshptr->m.vendtax[vnodend] - meshptr->m.verttax[vnodend] == 1) { if (vnoxtax[vnodend].partval != 0) { errorPrint ("vmeshSeparateGg: internal error (4)"); return (1); } } } #endif /* SCOTCH_DEBUG_VMESH2 */ velxtax[velmend].ncmpgain2 = ncmpgain1 + ncmpgain2; velxtax[velmend].ncmpgaindlt = ncmpgain1 - ncmpgain2; } else { /* Neighbor element belongs to frontier */ velxtax[velmend].ncmpgain2 -= vnloval; /* One less node to add to separator for element */ velxtax[velmend].ncmpgaindlt += vnloval; /* One less node to remove from part 0 */ if (velxtax[velmend].gainlink.next >= VMESHSEPAGGSTATELINK) { gainTablDel (tablptr, (GainLink *) &velxtax[velmend]); /* Unlink vertex */ velxtax[velmend].gainlink.next = VMESHSEPAGGSTATEPART2; /* Chain vertex */ velxtax[velmend].gainlink.prev = (GainLink *) sepaptr; sepaptr = &velxtax[velmend]; } } } } else { /* Neighbor node already in separator */ vnoxtax[vnodnum].commsize0 --; /* One less neighbor element in part 0 */ vnoxtax[vnodnum].velmisum0 -= velmnum; /* Subtract index of removed element */ } if (vnoxtax[vnodnum].commsize0 == 0) /* If node no longer has neighbors in part 0 */ vnoxtax[vnodnum].partval = 1; /* Node moves from separator to part 1 */ else if (vnoxtax[vnodnum].commsize0 == 1) { /* If only one neighbor element in part 0 */ Gnum velmend; /* Index of remaining element in part 0 */ Gnum vnloval; velmend = vnoxtax[vnodnum].velmisum0; /* Get neighbor element from remaining index */ #ifdef SCOTCH_DEBUG_VMESH2 if (velxtax[velmend].gainlink.next < VMESHSEPAGGSTATEPART2) { /* Element should have been declared in part 0 at this stage */ errorPrint ("vmeshSeparateGg: internal error (5)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ vnloval = (meshptr->m.vnlotax == NULL) ? 1 : meshptr->m.vnlotax[vnodnum]; velxtax[velmend].ncmpgain2 -= vnloval; velxtax[velmend].ncmpgaindlt -= vnloval; if (velxtax[velmend].gainlink.next >= VMESHSEPAGGSTATELINK) { gainTablDel (tablptr, (GainLink *) &velxtax[velmend]); /* Unlink vertex */ velxtax[velmend].gainlink.next = VMESHSEPAGGSTATEPART2; /* Chain vertex */ velxtax[velmend].gainlink.prev = (GainLink *) sepaptr; sepaptr = &velxtax[velmend]; } } } while (sepaptr != NULL) { /* For all vertices in chain list */ velxptr = sepaptr; /* Unlink vertex from list */ sepaptr = (VmeshSeparateGgElem *) velxptr->gainlink.prev; gainTablAdd (tablptr, (GainLink *) velxptr, velxptr->ncmpgain2); /* Relink it */ } #ifdef SCOTCH_DEBUG_VMESH3 if (vmeshSeparateGgCheck (meshptr, ncmpload2, ncmploaddlt, velxtax, vnoxtax) != 0) { errorPrint ("vmeshSeparateGg: internal error (6)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH3 */ } while ((velxptr = (VmeshSeparateGgElem *) gainTablFrst (tablptr)) != NULL); next: /* Select next root element systematically */ if (permptr == NULL) { /* If element permutation not yet built */ if (permtab == NULL) { /* If permutation array not yet allocated */ if ((permtab = (Gnum *) memAlloc (meshptr->m.velmnbr * sizeof (Gnum))) == NULL) { errorPrint ("vmeshSeparateGg: out of memory (2)"); memFree (vexxtab); gainTablExit (tablptr); return (1); } intAscn (permtab, meshptr->m.velmnbr, meshptr->m.velmbas); /* Initialize permutation array with based element indices */ } intPerm (permtab, meshptr->m.velmnbr, meshptr->contptr); /* Build random permutation */ permptr = permtab; /* Start at beginning of permutation */ } for ( ; permptr < permtab + meshptr->m.velmnbr; ) { /* Find next root vertex */ Gnum velmnum; velmnum = *(permptr ++); /* Pick candidate root element and skip to next one */ #ifdef SCOTCH_DEBUG_VMESH2 if (velxtax[velmnum].gainlink.next >= VMESHSEPAGGSTATEPART2) { errorPrint ("vmeshSeparateGg: internal error (7)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if ((velxtax[velmnum].gainlink.next == VMESHSEPAGGSTATEPART0) && /* If still in part 0 */ (meshptr->m.vendtax[velmnum] > meshptr->m.verttax[velmnum])) { /* And not isolated */ velxptr = velxtax + velmnum; /* Select it as next root element */ break; } } } while (velxptr != NULL); if ((passnum == 0) || /* If it is the first try */ ( (meshptr->ncmpload[2] > ncmpload2) || /* Or if better solution reached */ ((meshptr->ncmpload[2] == ncmpload2) && (abs (meshptr->ncmploaddlt) > abs (ncmploaddlt))))) { Gnum vertnum; meshptr->ecmpsize[0] = ecmpsize0; /* Set graph parameters */ meshptr->ncmpload[2] = ncmpload2; meshptr->ncmploaddlt = ncmploaddlt; for (vertnum = meshptr->m.velmbas; vertnum < meshptr->m.velmnnd; vertnum ++) /* Copy element bipartition state */ meshptr->parttax[vertnum] = (velxtax[vertnum].gainlink.next == VMESHSEPAGGSTATEPART1) ? 1 : 0; for (vertnum = meshptr->m.vnodbas; vertnum < meshptr->m.vnodnnd; vertnum ++) /* Copy node bipartition state */ meshptr->parttax[vertnum] = vnoxtax[vertnum].partval; } } meshptr->ecmpsize[1] = meshptr->m.velmnbr - meshptr->ecmpsize[0]; meshptr->ncmpload[1] = ((meshptr->m.vnlosum - meshptr->ncmpload[2]) - meshptr->ncmploaddlt) >> 1; meshptr->ncmpload[0] = (meshptr->m.vnlosum - meshptr->ncmpload[2]) - meshptr->ncmpload[1]; for (vnodnum = meshptr->m.vnodbas, fronnum = 0, ncmpsize1 = ncmpsize2 = 0; vnodnum < meshptr->m.vnodnnd; vnodnum ++) { Gnum partval; partval = meshptr->parttax[vnodnum]; ncmpsize1 += (partval & 1); /* Superscalar update */ ncmpsize2 += (partval >> 1); if (partval == 2) meshptr->frontab[fronnum ++] = vnodnum; /* Vertex belongs to frontier */ } meshptr->ncmpsize[0] = meshptr->m.vnodnbr - (ncmpsize1 + ncmpsize2); meshptr->ncmpsize[1] = ncmpsize1; meshptr->fronnbr = ncmpsize2; #ifdef SCOTCH_DEBUG_VMESH2 if (vmeshCheck (meshptr) != 0) { errorPrint ("vmeshSeparateGg: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (permtab != NULL) memFree (permtab); memFree (vexxtab); /* Free group leader */ gainTablExit (tablptr); return (0); } /* This routine checks the consistency ** of the current bipartition. ** It returns: ** - 0 : if the bipartition is consistent. ** - !0 : on error. */ #ifdef SCOTCH_DEBUG_VMESH3 static int vmeshSeparateGgCheck ( Vmesh * restrict const meshptr, const Gnum ncmpload2, const Gnum ncmploaddlt, const VmeshSeparateGgElem * restrict const velxtax, const VmeshSeparateGgNode * restrict const vnoxtax) { Gnum vnodnum; Gnum vnloval; Gnum ncmpsize1c; Gnum ncmpsize2c; Gnum ncmpload0c; Gnum ncmpload1c; Gnum ncmpload2c; ncmpsize1c = ncmpsize2c = ncmpload1c = ncmpload2c = 0; vnloval = 1; for (vnodnum = meshptr->m.vnodbas; vnodnum < meshptr->m.vnodnnd; vnodnum ++) { int partval; Gnum partval1; Gnum partval2; partval = vnoxtax[vnodnum].partval; partval1 = partval & 1; partval2 = partval >> 1; if (meshptr->m.vnlotax != NULL) vnloval = meshptr->m.vnlotax[vnodnum]; if (partval > 2) { errorPrint ("vmeshSeparateGgCheck: invalid node part value"); return (1); } ncmpsize1c += partval1; ncmpsize2c += partval2; ncmpload1c += partval1 * vnloval; ncmpload2c += partval2 * vnloval; } ncmpload0c = meshptr->m.vnlosum - ncmpload1c - ncmpload2c; if (ncmpload2c != ncmpload2) { errorPrint ("vmeshSeparateGgCheck: invalid separator load"); return (1); } if (ncmploaddlt != (ncmpload0c - ncmpload1c)) { errorPrint ("vmeshSeparateGgCheck: invalid separator balance"); return (1); } return (0); } #endif /* SCOTCH_DEBUG_VMESH3 */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_gg.h000066400000000000000000000116311514310134000275530ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_gg.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the the greedy mesh growing node **/ /** separation method. **/ /** **/ /** DATES : # Version 4.0 : from : 16 sep 2002 **/ /** to : 07 apr 2004 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ System-defined constants. +*/ #define VMESHSEPAGGSUBBITS 4 #define VMESHSEPAGGSTATEPART0 ((GainLink *) 0) /*+ Element vertex in part 0 (initial state) +*/ #define VMESHSEPAGGSTATEPART1 ((GainLink *) 1) /*+ Element vertex in part 1 +*/ #define VMESHSEPAGGSTATEPART2 ((GainLink *) 2) /*+ Element vertex in part 2, chained +*/ #define VMESHSEPAGGSTATELINK ((GainLink *) 3) /*+ Currently in gain table if higher +*/ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct VmeshSeparateGgParam_ { INT passnbr; /*+ Number of passes to perform +*/ } VmeshSeparateGgParam; /*+ The complementary element vertex structure. For trick reasons, the gain table data structure must be the first field of the structure. +*/ typedef struct VmeshSeparateGgElem_ { GainLink gainlink; /*+ Gain link: FIRST +*/ Gnum ncmpgain2; /*+ Computation gain in separator: (0->2) - (2->1) +*/ Gnum ncmpgaindlt; /*+ Overall computation delta: - (0->2) - (2->1) +*/ } VmeshSeparateGgElem; /*+ The complementary vertex structure. Only partval is always valid. Other fields are valid only when vertex belongs to separator. +*/ typedef struct VmeshSeparateGgNode_ { int partval; /*+ Part to which node vertex belongs +*/ Gnum commsize0; /*+ Number of neighbors in part 0 +*/ Gnum velmisum0; /*+ Sum of all element indices in part 0; the last one is the right one +*/ } VmeshSeparateGgNode; /* ** The function prototypes. */ #ifdef SCOTCH_VMESH_SEPARATE_GG #ifdef SCOTCH_DEBUG_VMESH3 static int vmeshSeparateGgCheck (Vmesh * restrict const, const Gnum, const Gnum, const VmeshSeparateGgElem * restrict const, const VmeshSeparateGgNode * restrict const vnoxtax); #endif /* SCOTCH_DEBUG_VMESH3 */ #endif /* SCOTCH_VMESH_SEPARATE_GG */ int vmeshSeparateGg (Vmesh * restrict const, const VmeshSeparateGgParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_gr.c000066400000000000000000000144241514310134000275640ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_gr.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates a node separation **/ /** mesh by turning the mesh into a graph **/ /** and using a graph separation strategy. **/ /** **/ /** DATES : # Version 4.0 : from : 13 oct 2003 **/ /** to : 13 oct 2003 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 30 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "mesh.h" #include "vmesh.h" #include "vmesh_separate_gr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the bipartitioning. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vmeshSeparateGr ( Vmesh * restrict const meshptr, /*+ Node separation mesh +*/ const VmeshSeparateGrParam * restrict const paraptr) /*+ Method parameters +*/ { Vgraph grafdat; Gnum fronnum; Gnum velmnum; Gnum ecmpsize1; if (meshGraphNodal (&meshptr->m, &grafdat.s) != 0) { errorPrint ("vmeshSeparateGr: cannot build graph"); return (1); } grafdat.parttax = meshptr->parttax + (meshptr->m.vnodbas - grafdat.s.baseval); /* Get node area of part array */ grafdat.compload[0] = meshptr->ncmpload[0]; grafdat.compload[1] = meshptr->ncmpload[1]; grafdat.compload[2] = meshptr->ncmpload[2]; grafdat.comploaddlt = meshptr->ncmploaddlt; grafdat.compsize[0] = meshptr->ncmpsize[0]; grafdat.compsize[1] = meshptr->ncmpsize[1]; grafdat.fronnbr = meshptr->fronnbr; grafdat.frontab = meshptr->frontab; /* Re-use frontier array */ grafdat.levlnum = meshptr->levlnum; grafdat.contptr = meshptr->contptr; for (fronnum = 0; fronnum < grafdat.fronnbr; fronnum ++) grafdat.frontab[fronnum] -= (meshptr->m.vnodbas - grafdat.s.baseval); #ifdef SCOTCH_DEBUG_VMESH2 if (vgraphCheck (&grafdat) != 0) { errorPrint ("vmeshSeparateGr: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ if (vgraphSeparateSt (&grafdat, paraptr->stratptr) != 0) { errorPrint ("vmeshSeparateGr: cannot separate graph"); return (1); } for (fronnum = 0; fronnum < grafdat.fronnbr; fronnum ++) /* Restore mesh-based frontier array */ grafdat.frontab[fronnum] += (meshptr->m.vnodbas - grafdat.s.baseval); meshptr->ncmpload[0] = grafdat.compload[0]; meshptr->ncmpload[1] = grafdat.compload[1]; meshptr->ncmpload[2] = grafdat.compload[2]; meshptr->ncmploaddlt = grafdat.comploaddlt; meshptr->ncmpsize[0] = grafdat.compsize[0]; meshptr->ncmpsize[1] = grafdat.compsize[1]; meshptr->fronnbr = grafdat.fronnbr; for (velmnum = meshptr->m.velmbas, ecmpsize1 = 0; velmnum < meshptr->m.velmnnd; velmnum ++) { /* Compute part of all elements */ Gnum eelmnum; GraphPart partval; partval = 0; /* Empty elements move to part 0 */ for (eelmnum = meshptr->m.verttax[velmnum]; eelmnum < meshptr->m.vendtax[velmnum]; eelmnum ++) { Gnum vnodnum; vnodnum = meshptr->m.edgetax[eelmnum]; partval = meshptr->parttax[vnodnum]; if (partval != 2) break; } partval &= 1; /* In case all nodes in separator */ ecmpsize1 += (Gnum) partval; /* Count elements in part 1 */ meshptr->parttax[velmnum] = partval; /* Set part of element */ } meshptr->ecmpsize[0] = meshptr->m.velmnbr - ecmpsize1; meshptr->ecmpsize[1] = ecmpsize1; #ifdef SCOTCH_DEBUG_VMESH2 if (vmeshCheck (meshptr) != 0) { errorPrint ("vmeshSeparateGr: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_gr.h000066400000000000000000000060031514310134000275630ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_gr.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the the graph separation-based node **/ /** separation method. **/ /** **/ /** DATES : # Version 4.0 : from : 11 oct 2003 **/ /** to : 11 oct 2003 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /* ** The type and structure definitions. */ /*+ Method parameters. +*/ typedef struct VmeshSeparateGrParam_ { Strat * stratptr; /*+ Graph separation strategy +*/ } VmeshSeparateGrParam; /* ** The function prototypes. */ int vmeshSeparateGr (Vmesh * restrict const, const VmeshSeparateGrParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_ml.c000066400000000000000000000265541514310134000275730ustar00rootroot00000000000000/* Copyright 2004,2007,2019,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_ml.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module separates an active **/ /** mesh using a multi-level scheme. **/ /** **/ /** DATES : # Version 4.0 : from : 19 feb 2003 **/ /** to : 31 aug 2005 **/ /** # Version 5.0 : from : 30 jan 2008 **/ /** to : 30 jan 2008 **/ /** # Version 7.0 : from : 13 sep 2019 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_VMESH_SEPARATE_ML #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "mesh.h" #include "mesh_coarsen.h" #include "vmesh.h" #include "vmesh_separate_ml.h" #include "vmesh_separate_st.h" /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser mesh from the ** mesh that is given on input. The coarser ** meshes differ at this stage from classical ** active meshes as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse mesh has been built. ** - 1 : if threshold achieved. ** - 2 : on error. */ static int vmeshSeparateMlCoarsen ( const Vmesh * restrict const finemeshptr, /*+ Finer mesh +*/ Vmesh * restrict const coarmeshptr, /*+ Coarser mesh to build +*/ Gnum * restrict * const finecoarptr, /*+ Pointer to multinode table to build +*/ const VmeshSeparateMlParam * const paraptr) /*+ Method parameters +*/ { int o; if (finemeshptr->m.vnodnbr <= (Gnum) paraptr->vnodnbr) return (1); if ((o = meshCoarsen (&finemeshptr->m, &coarmeshptr->m, finecoarptr, (Gnum) paraptr->vnodnbr, paraptr->coarrat, paraptr->coartype, finemeshptr->contptr)) != 0) return (o); /* Return if coarsening failed */ coarmeshptr->parttax = NULL; /* Do not allocate partition data yet */ coarmeshptr->frontab = finemeshptr->frontab; /* Re-use frontier array for coarser mesh */ coarmeshptr->levlnum = finemeshptr->levlnum + 1; /* Mesh level is coarsening level */ coarmeshptr->contptr = finemeshptr->contptr; return (0); } /* This routine propagates the separation of the ** coarser mesh back to the finer mesh, according ** to the multinode table of collapsed elements. ** After the separation is propagated, it finishes ** to compute the parameters of the finer mesh that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse mesh data has been propagated to fine mesh. ** - !0 : on error. */ static int vmeshSeparateMlUncoarsen ( Vmesh * restrict const finemeshptr, /*+ Finer mesh +*/ const Vmesh * restrict const coarmeshptr, /*+ Coarser mesh +*/ const Gnum * restrict const finecoartax) /*+ Multinode array +*/ { if (finemeshptr->parttax == NULL) { /* If partition array not yet allocated */ if ((finemeshptr->parttax = (GraphPart *) memAlloc ((finemeshptr->m.velmnbr + finemeshptr->m.vnodnbr) * sizeof (GraphPart))) == NULL) { errorPrint ("vmeshSeparateMlUncoarsen: out of memory"); return (1); /* Allocated data will be freed along with mesh structure */ } finemeshptr->parttax -= finemeshptr->m.baseval; } if (coarmeshptr != NULL) { /* If coarser mesh provided */ Gnum finevelmnum; Gnum fineecmpsize1; /* Number of fine elements */ Gnum fineecmpsize2; Gnum finevnodnum; Gnum finencmpsize1; /* Number of fine nodes */ Gnum finefronnbr; /* Number of frontier vertices in fine mesh */ for (finevelmnum = finemeshptr->m.velmbas, fineecmpsize1 = fineecmpsize2 = 0; finevelmnum < finemeshptr->m.velmnnd; finevelmnum ++) { Gnum partval; #ifdef SCOTCH_DEBUG_VMESH2 if ((finecoartax[finevelmnum] < coarmeshptr->m.baseval) || (finecoartax[finevelmnum] >= (coarmeshptr->m.velmnbr + coarmeshptr->m.vnodnbr + coarmeshptr->m.baseval))) { errorPrint ("vmeshSeparateMlUncoarsen: internal error (1)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ partval = (Gnum) coarmeshptr->parttax[finecoartax[finevelmnum]]; finemeshptr->parttax[finevelmnum] = partval; fineecmpsize1 += (partval & 1); /* Superscalar update of counters */ fineecmpsize2 += (partval & 2); } finemeshptr->ecmpsize[0] = finemeshptr->m.velmnbr - fineecmpsize1 - (fineecmpsize2 >> 1); finemeshptr->ecmpsize[1] = fineecmpsize1; for (finevnodnum = finemeshptr->m.vnodbas, finencmpsize1 = finefronnbr = 0; finevnodnum < finemeshptr->m.vnodnnd; finevnodnum ++) { Gnum partval; #ifdef SCOTCH_DEBUG_VMESH2 if ((finecoartax[finevnodnum] < coarmeshptr->m.vnodbas) || /* Sons of nodes are always nodes */ (finecoartax[finevnodnum] >= coarmeshptr->m.vnodnnd)) { errorPrint ("vmeshSeparateMlUncoarsen: internal error (2)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ partval = coarmeshptr->parttax[finecoartax[finevnodnum]]; finemeshptr->parttax[finevnodnum] = partval; if ((partval & 2) != 0) /* If node is in separator */ finemeshptr->frontab[finefronnbr ++] = finevnodnum; /* Add to frontier */ finencmpsize1 += (partval & 1); } finemeshptr->ncmpload[0] = coarmeshptr->ncmpload[0]; finemeshptr->ncmpload[1] = coarmeshptr->ncmpload[1]; finemeshptr->ncmpload[2] = coarmeshptr->ncmpload[2]; finemeshptr->ncmploaddlt = coarmeshptr->ncmploaddlt; finemeshptr->ncmpsize[0] = finemeshptr->m.vnodnbr - finencmpsize1 - finefronnbr; finemeshptr->ncmpsize[1] = finencmpsize1; finemeshptr->fronnbr = finefronnbr; } else /* No coarse mesh provided */ vmeshZero (finemeshptr); /* Assign all vertices to part 0 */ #ifdef SCOTCH_DEBUG_VMESH2 if (vmeshCheck (finemeshptr) != 0) { errorPrint ("vmeshSeparateMlUncoarsen: internal error (3)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ return (0); } /* This routine recursively performs the ** coarsening recursion. ** It returns: ** - 0 : if recursion proceeded well. ** - !0 : on error. */ static int vmeshSeparateMl2 ( Vmesh * restrict const finemeshptr, /* Vertex-separation mesh */ const VmeshSeparateMlParam * restrict const paraptr) /* Method parameters */ { Vmesh coarmeshdat; Gnum * restrict finecoartax; int o; o = 1; /* Assume an error if "switch...case" returns a strange value in debug mode */ switch (vmeshSeparateMlCoarsen (finemeshptr, &coarmeshdat, &finecoartax, paraptr)) { case 0 : if (((o = vmeshSeparateMl2 (&coarmeshdat, paraptr)) == 0) && ((o = vmeshSeparateMlUncoarsen (finemeshptr, &coarmeshdat, finecoartax)) == 0) && ((o = vmeshSeparateSt (finemeshptr, paraptr->stratasc)) != 0)) /* Apply ascending strategy */ errorPrint ("vmeshSeparateMl2: cannot apply ascending strategy"); coarmeshdat.frontab = NULL; /* Prevent frontab of fine mesh from being freed */ vmeshExit (&coarmeshdat); memFree (finecoartax + finemeshptr->m.baseval); /* Free finecoartab as not part of coarse mesh vertex group (unlike for graphCoarsen) */ break; #ifdef SCOTCH_DEBUG_VMESH2 case 1 : case 2 : /* Cannot coarsen due to lack of memory */ finecoartax = NULL; /* Prevent Valgrind from yelling */ #else /* SCOTCH_DEBUG_VMESH2 */ default : #endif /* SCOTCH_DEBUG_VMESH2 */ if (((o = vmeshSeparateMlUncoarsen (finemeshptr, NULL, finecoartax)) == 0) && /* Finalize mesh */ ((o = vmeshSeparateSt (finemeshptr, paraptr->stratlow)) != 0)) /* Apply low strategy */ errorPrint ("vmeshSeparateMl2: cannot apply low strategy"); break; } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int vmeshSeparateMl ( Vmesh * restrict const meshptr, /*+ Node-separation mesh +*/ const VmeshSeparateMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for mesh level */ int o; levlnum = meshptr->levlnum; /* Save mesh level */ meshptr->levlnum = 0; /* Initialize coarsening level */ o = vmeshSeparateMl2 (meshptr, paraptr); /* Perform multi-level separation */ meshptr->levlnum = levlnum; /* Restore mesh level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_ml.h000066400000000000000000000076521514310134000275760ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_ml.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the multi-level node separation **/ /** routines. **/ /** **/ /** DATES : # Version 4.0 : from : 20 feb 2003 **/ /** to : 31 aug 2005 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct VmeshSeparateMlParam_ { INT vnodnbr; /*+ Minimum number of node vertices +*/ double coarrat; /*+ Coarsening ratio +*/ MeshCoarsenType coartype; /*+ Element matching function type +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ } VmeshSeparateMlParam; /* ** The function prototypes. */ #ifdef SCOTCH_VMESH_SEPARATE_ML static int vmeshSeparateMlCoarsen (const Vmesh * restrict const, Vmesh * restrict const, Gnum * restrict * const, const VmeshSeparateMlParam * const); static int vmeshSeparateMlUncoarsen (Vmesh * const, const Vmesh * const, const Gnum * restrict const); static int vmeshSeparateMl2 (Vmesh * const, const VmeshSeparateMlParam * const); #endif /* SCOTCH_VMESH_SEPARATE_ML */ int vmeshSeparateMl (Vmesh * const, const VmeshSeparateMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_st.c000066400000000000000000000340011514310134000275730ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_st.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the global mesh **/ /** separation strategy and method tables. **/ /** **/ /** DATES : # Version 4.0 : from : 20 sep 2002 **/ /** to : 08 feb 2003 **/ /** # Version 5.0 : from : 04 aug 2007 **/ /** to : 04 aug 2007 **/ /** # Version 6.0 : from : 06 jun 2018 **/ /** to : 06 jun 2018 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "gain.h" #include "parser.h" #include "graph.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "mesh.h" #include "mesh_coarsen.h" #include "vmesh.h" #include "vmesh_separate_fm.h" #include "vmesh_separate_gg.h" #include "vmesh_separate_gr.h" #include "vmesh_separate_ml.h" #include "vmesh_separate_zr.h" #include "vmesh_separate_st.h" /* ** The static and global variables. */ static Vmesh vmeshdummy; /* Dummy separator mesh for offset computations */ static union { VmeshSeparateFmParam param; StratNodeMethodData padding; } vmeshseparatedefaultfm = { { 200, 1000, 0.1L } }; static union { VmeshSeparateGgParam param; StratNodeMethodData padding; } vmeshseparatedefaultgg = { { 5 } }; #ifdef SCOTCH_DEBUG_VMESH2 static union { VmeshSeparateGrParam param; StratNodeMethodData padding; } vmeshseparatedefaultgr = { { &stratdummy } }; #endif /* SCOTCH_DEBUG_VMESH2 */ static union { VmeshSeparateMlParam param; StratNodeMethodData padding; } vmeshseparatedefaultml = { { 1000, 0.8L, MESHCOARSENNGB, &stratdummy, &stratdummy } }; static StratMethodTab vmeshseparatestmethtab[] = { /* Mesh separation methods array */ { VMESHSEPASTMETHFM, "f", (StratMethodFunc) vmeshSeparateFm, &vmeshseparatedefaultfm }, { VMESHSEPASTMETHGG, "h", (StratMethodFunc) vmeshSeparateGg, &vmeshseparatedefaultgg }, #ifdef SCOTCH_DEBUG_VMESH2 { VMESHSEPASTMETHGR, "v", (StratMethodFunc) vmeshSeparateGr, &vmeshseparatedefaultgr }, #endif /* SCOTCH_DEBUG_VMESH2 */ { VMESHSEPASTMETHML, "m", (StratMethodFunc) vmeshSeparateMl, &vmeshseparatedefaultml }, { VMESHSEPASTMETHZR, "z", (StratMethodFunc) vmeshSeparateZr, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab vmeshseparatestparatab[] = { /* Mesh separation method parameter list */ { VMESHSEPASTMETHFM, STRATPARAMINT, "move", (byte *) &vmeshseparatedefaultfm.param, (byte *) &vmeshseparatedefaultfm.param.movenbr, NULL }, { VMESHSEPASTMETHFM, STRATPARAMINT, "pass", (byte *) &vmeshseparatedefaultfm.param, (byte *) &vmeshseparatedefaultfm.param.passnbr, NULL }, { VMESHSEPASTMETHFM, STRATPARAMDOUBLE, "bal", (byte *) &vmeshseparatedefaultfm.param, (byte *) &vmeshseparatedefaultfm.param.deltrat, NULL }, { VMESHSEPASTMETHGG, STRATPARAMINT, "pass", (byte *) &vmeshseparatedefaultgg.param, (byte *) &vmeshseparatedefaultgg.param.passnbr, NULL }, #ifdef SCOTCH_DEBUG_VMESH2 { VMESHSEPASTMETHGR, STRATPARAMSTRAT, "strat", (byte *) &vmeshseparatedefaultgr.param, (byte *) &vmeshseparatedefaultgr.param.stratptr, (void *) &vgraphseparateststratab }, #endif /* SCOTCH_DEBUG_VMESH2 */ { VMESHSEPASTMETHML, STRATPARAMSTRAT, "asc", (byte *) &vmeshseparatedefaultml.param, (byte *) &vmeshseparatedefaultml.param.stratasc, (void *) &vmeshseparateststratab }, { VMESHSEPASTMETHML, STRATPARAMSTRAT, "low", (byte *) &vmeshseparatedefaultml.param, (byte *) &vmeshseparatedefaultml.param.stratlow, (void *) &vmeshseparateststratab }, { VMESHSEPASTMETHML, STRATPARAMCASE, "type", (byte *) &vmeshseparatedefaultml.param, (byte *) &vmeshseparatedefaultml.param.coartype, (void *) "hsn" }, { VMESHSEPASTMETHML, STRATPARAMINT, "vnod", (byte *) &vmeshseparatedefaultml.param, (byte *) &vmeshseparatedefaultml.param.vnodnbr, NULL }, { VMESHSEPASTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &vmeshseparatedefaultml.param, (byte *) &vmeshseparatedefaultml.param.coarrat, NULL }, { VMESHSEPASTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab vmeshseparatestcondtab[] = { /* Mesh condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &vmeshdummy, (byte *) &vmeshdummy.m.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "levl", (byte *) &vmeshdummy, (byte *) &vmeshdummy.levlnum, NULL }, { STRATNODECOND, STRATPARAMINT, "load", (byte *) &vmeshdummy, (byte *) &vmeshdummy.m.vnlosum, NULL }, { STRATNODECOND, STRATPARAMINT, "velm", (byte *) &vmeshdummy, (byte *) &vmeshdummy.m.velmnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "vnod", (byte *) &vmeshdummy, (byte *) &vmeshdummy.m.vnodnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab vmeshseparateststratab = { /* Strategy tables for mesh separation methods */ vmeshseparatestmethtab, vmeshseparatestparatab, vmeshseparatestcondtab }; /*******************************************/ /* */ /* This is the generic separation routine. */ /* */ /*******************************************/ /* This routine computes the separation of ** the given graph according to the given ** strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int vmeshSeparateSt ( Vmesh * restrict const meshptr, /*+ Separation mesh +*/ const Strat * restrict const straptr) /*+ Separation strategy +*/ { StratTest testdat; VmeshStore savetab[2]; /* Results of the two strategies */ int o; #ifdef SCOTCH_DEBUG_VMESH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("vmeshSeparateSt: invalid type specification for parser variables"); return (1); } if ((sizeof (VmeshSeparateFmParam) > sizeof (StratNodeMethodData)) || (sizeof (VmeshSeparateGgParam) > sizeof (StratNodeMethodData)) || (sizeof (VmeshSeparateGrParam) > sizeof (StratNodeMethodData)) || (sizeof (VmeshSeparateMlParam) > sizeof (StratNodeMethodData))) { errorPrint ("vmeshSeparateSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_VMESH2 */ #ifdef SCOTCH_DEBUG_VMESH1 if (straptr->tablptr != &vmeshseparateststratab) { errorPrint ("vmeshSeparateSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_VMESH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = vmeshSeparateSt (meshptr, straptr->data.concdat.stratab[0]); /* Apply first strategy */ if (o == 0) /* If it worked all right */ o |= vmeshSeparateSt (meshptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) meshptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_VMESH2 if ((testdat.testval != STRATTESTVAL) && (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("vmeshSeparateSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_VMESH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = vmeshSeparateSt (meshptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = vmeshSeparateSt (meshptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((vmeshStoreInit (meshptr, &savetab[0])) != 0) || /* Allocate save areas */ ((vmeshStoreInit (meshptr, &savetab[1])) != 0)) { errorPrint ("vmeshSeparateSt: out of memory"); vmeshStoreExit (&savetab[0]); return (1); } vmeshStoreSave (meshptr, &savetab[1]); /* Save initial bipartition */ vmeshSeparateSt (meshptr, straptr->data.seledat.stratab[0]); /* Apply first strategy */ vmeshStoreSave (meshptr, &savetab[0]); /* Save its result */ vmeshStoreUpdt (meshptr, &savetab[1]); /* Restore initial bipartition */ vmeshSeparateSt (meshptr, straptr->data.seledat.stratab[1]); /* Apply second strategy */ if ( (savetab[0].fronnbr < meshptr->fronnbr) || /* If first strategy is better */ ((savetab[0].fronnbr == meshptr->fronnbr) && (abs (savetab[0].ncmploaddlt) < abs (meshptr->ncmploaddlt)))) vmeshStoreUpdt (meshptr, &savetab[0]); /* Restore its result */ vmeshStoreExit (&savetab[0]); /* Free both save areas */ vmeshStoreExit (&savetab[1]); break; #ifdef SCOTCH_DEBUG_VMESH1 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_VMESH1 */ default : #endif /* SCOTCH_DEBUG_VMESH1 */ return (((VmeshSeparateFunc) straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr) (meshptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_VMESH1 default : errorPrint ("vmeshSeparateSt: invalid parameter (2)"); return (1); #endif /* SCOTCH_DEBUG_VMESH1 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_st.h000066400000000000000000000073651514310134000276150ustar00rootroot00000000000000/* Copyright 2004,2007,2018,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_st.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the global mesh separation **/ /** strategy and method tables. **/ /** **/ /** DATES : # Version 4.0 : from : 20 sep 2002 **/ /** to : 31 oct 2003 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /*+ Method types. +*/ typedef enum VmeshSeparateStMethodType_ { VMESHSEPASTMETHFM = 0, /*+ Fiduccia-Mattheyses +*/ VMESHSEPASTMETHGG, /*+ Greedy Mesh Growing +*/ #ifdef SCOTCH_DEBUG_VMESH2 VMESHSEPASTMETHGR, /*+ Graph partitioning +*/ #endif /* SCOTCH_DEBUG_VMESH2 */ VMESHSEPASTMETHML, /*+ Multi-level separation +*/ VMESHSEPASTMETHZR, /*+ Zero method +*/ VMESHSEPASTMETHNBR /*+ Number of methods +*/ } VmeshSeparateStMethodType; /*+ Method function pointer type. +*/ typedef int (* VmeshSeparateFunc) (Vmesh * restrict const, const void * const); /* ** The external declarations. */ extern StratTab vmeshseparateststratab; /* ** The function prototypes. */ int vmeshSeparateSt (Vmesh * restrict const, const Strat * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_zr.c000066400000000000000000000063771514310134000276170ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vgraph_separate_zr.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module moves all of the vertices **/ /** to the first subdomain. **/ /** **/ /** DATES : # Version 4.0 : from : 10 sep 2002 **/ /** to : 29 may 2004 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "vmesh.h" #include "vmesh_separate_zr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine moves all of the mesh nodes ** and elements to the first part of the ** partition. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int vmeshSeparateZr ( Vmesh * restrict const meshptr) { if (meshptr->ncmpload[0] != meshptr->m.vnlosum) /* If not all vertices already in part zero */ vmeshZero (meshptr); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_separate_zr.h000066400000000000000000000053261514310134000276150ustar00rootroot00000000000000/* Copyright 2004,2007,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_separate_zr.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** mesh node separation method. **/ /** **/ /** DATES : # Version 4.0 : from : 10 sep 2002 **/ /** to : 10 sep 2002 **/ /** # Version 6.0 : from : 31 may 2018 **/ /** to : 31 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int vmeshSeparateZr (Vmesh * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/vmesh_store.c000066400000000000000000000143361514310134000264260ustar00rootroot00000000000000/* Copyright 2004,2007,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : vmesh_store.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the save data **/ /** structure handling routines for node **/ /** separation meshes. **/ /** **/ /** DATES : # Version 4.0 : from : 10 sep 2002 **/ /** to : 10 sep 2002 **/ /** # Version 7.0 : from : 20 jan 2023 **/ /** to : 20 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "vmesh.h" /*********************************/ /* */ /* Store mesh handling routines. */ /* */ /*********************************/ /* This routine builds a save structure ** for the given node separation mesh. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int vmeshStoreInit ( const Vmesh * const meshptr, VmeshStore * const storptr) { Gnum savsize; savsize = (meshptr->m.velmnbr + meshptr->m.vnodnbr) * (sizeof (GraphPart) + sizeof (Gnum)); /* Compute size for frontier and part arrays */ if ((storptr->datatab = (byte *) memAlloc (savsize)) == NULL) { /* Allocate save structure */ errorPrint ("vmeshStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a mesh node ** separation save structure. ** It returns: ** - VOID : in all cases. */ void vmeshStoreExit ( VmeshStore * const storptr) { memFree (storptr->datatab); #ifdef SCOTCH_DEBUG_VMESH2 storptr->datatab = NULL; #endif /* SCOTCH_DEBUG_VMESH2 */ } /* This routine saves partition data from the ** given node separation mesh to the given ** save structure. ** It returns: ** - VOID : in all cases. */ void vmeshStoreSave ( const Vmesh * const meshptr, VmeshStore * const storptr) { byte * parttab; /* Pointer to part data save area */ byte * frontab; /* Pointer to frontier data save area */ storptr->ecmpsize[0] = meshptr->ecmpsize[0]; /* Save partition parameters */ storptr->ecmpsize[1] = meshptr->ecmpsize[1]; storptr->ncmpload[0] = meshptr->ncmpload[0]; storptr->ncmpload[1] = meshptr->ncmpload[1]; storptr->ncmpload[2] = meshptr->ncmpload[2]; storptr->ncmploaddlt = meshptr->ncmploaddlt; storptr->ncmpsize[0] = meshptr->ncmpsize[0]; storptr->ncmpsize[1] = meshptr->ncmpsize[1]; storptr->fronnbr = meshptr->fronnbr; frontab = storptr->datatab; /* Compute data offsets within save structure */ parttab = frontab + meshptr->fronnbr * sizeof (Gnum); memCpy (frontab, meshptr->frontab, meshptr->fronnbr * sizeof (Gnum)); memCpy (parttab, meshptr->parttax + meshptr->m.baseval, (meshptr->m.velmnbr + meshptr->m.vnodnbr) * sizeof (GraphPart)); } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void vmeshStoreUpdt ( Vmesh * const meshptr, const VmeshStore * const storptr) { byte * frontab; /* Pointer to frontier data save area */ byte * parttab; /* Pointer to part data save area */ meshptr->ecmpsize[0] = storptr->ecmpsize[0]; /* Load partition parameters */ meshptr->ecmpsize[1] = storptr->ecmpsize[1]; meshptr->ncmpload[0] = storptr->ncmpload[0]; meshptr->ncmpload[1] = storptr->ncmpload[1]; meshptr->ncmpload[2] = storptr->ncmpload[2]; meshptr->ncmploaddlt = storptr->ncmploaddlt; meshptr->ncmpsize[0] = storptr->ncmpsize[0]; meshptr->ncmpsize[1] = storptr->ncmpsize[1]; meshptr->fronnbr = storptr->fronnbr; frontab = storptr->datatab; /* Compute data offsets within save structure */ parttab = frontab + storptr->fronnbr * sizeof (Gnum); memCpy (meshptr->frontab, frontab, storptr->fronnbr * sizeof (Gnum)); memCpy (meshptr->parttax + meshptr->m.baseval, parttab, (meshptr->m.velmnbr + meshptr->m.vnodnbr) * sizeof (GraphPart)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph.c000066400000000000000000000211761514310134000253600ustar00rootroot00000000000000/* Copyright 2007-2010,2020,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (5.1b) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data structure **/ /** handling routines for the vertex overl- **/ /** apped graph partitioning **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 28 may 2010 **/ /** to : 29 may 2010 **/ /** # Version 6.1 : from : 01 sep 2020 **/ /** to : 02 dec 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "wgraph.h" /***********************************/ /* */ /* Active graph handling routines. */ /* */ /***********************************/ /* This routine initialize the active graph ** corresponding to the source graph ** It returns: ** - VOID : in all cases. */ void wgraphInit ( Wgraph * restrict const actgrafptr, /* Active graph */ const Graph * restrict const srcgrafptr, /* Source graph */ const Anum partnbr) { actgrafptr->s = *srcgrafptr; /* Clone source graph */ actgrafptr->s.flagval &= ~GRAPHFREETABS; /* Do not free its contents */ actgrafptr->compload = NULL; /* No group leader yet */ actgrafptr->partnbr = partnbr; actgrafptr->parttax = NULL; /* No part array yet */ } /* This routine frees the contents ** of the given active graph ** It returns: ** - VOID : in all cases. */ void wgraphExit ( Wgraph * const grafptr) /* Active graph */ { if (grafptr->compload != NULL) memFree (grafptr->compload); /* Free group leader */ graphExit (&grafptr->s); /* Free source graph */ #ifdef SCOTCH_DEBUG_WGRAPH2 memSet (grafptr, ~0, sizeof (Wgraph)); #endif /* SCOTCH_DEBUG_WGRAPH2 */ } /* This routine builds the active graph ** It returns: ** - 0 : on success. ** - !0 : on error. */ int wgraphAlloc ( Wgraph * const grafptr) /* Active graph */ { Gnum partsiz; Gnum * restrict parttab; partsiz = (grafptr->parttax == NULL) ? grafptr->s.vertnbr : 0; /* Allocate part array only if not already */ if (memAllocGroup ((void **) (void *) &grafptr->compload, (size_t) (grafptr->partnbr * sizeof (Gnum)), &grafptr->compsize, (size_t) (grafptr->partnbr * sizeof (Gnum)), &parttab, (size_t) (partsiz * sizeof (Anum)), &grafptr->frontab, (size_t) (grafptr->s.vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("wgraphAlloc: out of memory (1)"); return (1); } if (grafptr->parttax == NULL) /* Part array does not need flag as will be group freed */ grafptr->parttax = parttab - grafptr->s.baseval; return (0); } /* This routine moves all of the graph ** vertices to the first part. ** It returns: ** - VOID : in all cases. */ void wgraphZero ( Wgraph * const grafptr) { memSet (grafptr->compload + 1, 0, (grafptr->partnbr - 1) * sizeof (Gnum)); memSet (grafptr->compsize + 1, 0, (grafptr->partnbr - 1) * sizeof (Gnum)); grafptr->compload[0] = grafptr->s.velosum; grafptr->compsize[0] = grafptr->s.vertnbr; grafptr->fronload = 0; grafptr->fronnbr = 0; memSet (grafptr->parttax + grafptr->s.baseval, 0, grafptr->s.vertnbr * sizeof (Anum)); /* Set all vertices to part 0 */ } /* This routine computes the cost of the ** current partition. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int wgraphCost ( Wgraph * restrict const grafptr) { Gnum * restrict flagtab; /* Flag array to avoid counting twice */ Gnum frlosum; /* Sum of loads of frontier vertices */ Gnum vertnum; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Anum * restrict const parttax = grafptr->parttax; Gnum * restrict const compload = grafptr->compload; Gnum * restrict const compsize = grafptr->compsize; memSet (compload, 0, grafptr->partnbr * sizeof (Gnum)); memSet (compsize, 0, grafptr->partnbr * sizeof (Gnum)); if ((flagtab = (Gnum *) memAlloc ((grafptr->partnbr + 1) * sizeof (Gnum))) == NULL) { /* TRICK: "+1" to create slot for a "-1" index */ errorPrint ("wgraphCost: out of memory"); return (1); } flagtab ++; /* TRICK: trim array so that flagtab[-1] is valid */ memSet (flagtab, ~0, grafptr->partnbr * sizeof (Gnum)); /* Set normal part vertex indices to ~0 */ frlosum = 0; for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Anum partval; Gnum veloval; veloval = (velotax != NULL) ? velotax[vertnum] : 1; partval = parttax[vertnum]; if (partval >= 0) { compload[partval] += veloval; compsize[partval] ++; } else { /* Vertex is in separator */ Gnum edgenum; frlosum += veloval; flagtab[-1] = vertnum; /* Separator neighbors will not be considered */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* Compute contributions */ Gnum vertend; Gnum partend; vertend = edgetax[edgenum]; partend = parttax[vertend]; if (flagtab[partend] != vertnum) { /* If part not yet considered */ flagtab[partend] = vertnum; /* Flag part as considered */ compload[partend] += veloval; /* Add load of separator vertex to part */ compsize[partend] ++; } } } } grafptr->fronload = frlosum; memFree (flagtab - 1); /* TRICK: free array using its real beginning */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph.h000066400000000000000000000131201514310134000253530ustar00rootroot00000000000000/* Copyright 2007-2010,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** Charles-Edmond BICHOT (5.1b) **/ /** **/ /** FUNCTION : This module contains the data declarat- **/ /** ions for the vertex overlapped graph **/ /** partitioning. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 23 nov 2021 **/ /** to : 02 dec 2021 **/ /** # Version 7.0 : from : 23 aug 2019 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ The graph structure. +*/ typedef struct Wgraph_ { Graph s; /*+ Source graph +*/ Anum partnbr; /*+ Current number of parts +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ Gnum fronload; /*+ load for frontier +*/ Gnum * frontab; /*+ Array of frontier vertex numbers +*/ Gnum * compload; /*+ Array of part loads +*/ Gnum * compsize; /*+ Array of part number of vertives +*/ Anum * parttax; /*+ Part array; can be allocated separately +*/ INT levlnum; /*+ Coarsening level +*/ Context * contptr; /*+ Execution context +*/ } Wgraph; /*+ The save graph structure. +*/ typedef struct WgraphStore_ { Anum partnbr; /*+ Number of parts +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ Gnum fronload; /*+ Frontier load +*/ byte * datatab; /*+ Variable-sized data array +*/ } WgraphStore; /*+ This structure stores part lists. +*/ typedef struct WgraphPartList_ { Gnum vertnum; /*+ Number of vertex of which part is neighbor +*/ Anum nextidx; /*+ Pointer to index of next recorded neighbor +*/ } WgraphPartList; /* ** The function prototypes. */ void wgraphInit (Wgraph * const, const Graph * restrict const, const Anum); void wgraphExit (Wgraph * const); int wgraphAlloc (Wgraph * const); void wgraphZero (Wgraph * const); int wgraphCheck (const Wgraph * const); int wgraphCost (Wgraph * const); int wgraphStoreInit (const Wgraph * const, WgraphStore * const); void wgraphStoreExit (WgraphStore * const); void wgraphStoreSave (const Wgraph * const, WgraphStore * const); void wgraphStoreUpdt (Wgraph * const, const WgraphStore * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_check.c000066400000000000000000000155731514310134000265210ustar00rootroot00000000000000/* Copyright 2007-2010,2018,2020,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_check.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module checks the graph consist- **/ /** ency for the vertex overlapped graph **/ /** partitioning module. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 09 aug 2020 **/ /** to : 02 dec 2021 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "wgraph.h" /*************************/ /* */ /* These routines handle */ /* separator graphs. */ /* */ /*************************/ /* This routine checks the consistency ** of the given separator graph. ** It returns: ** - 0 : if graph data are consistent. ** - !0 : on error. */ int wgraphCheck ( const Wgraph * const grafptr) { Gnum vertnum; Gnum partnum; Gnum fronnbr; Gnum fronnum; Gnum frlosum; Gnum * restrict comploadtab; Gnum * restrict compsizetab; Gnum * restrict flagtab; int o; if (memAllocGroup ((void **) (void *) &flagtab, (size_t) (grafptr->partnbr * sizeof (Gnum)), &comploadtab, (size_t) (grafptr->partnbr * sizeof (Gnum)), &compsizetab, (size_t) (grafptr->partnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("wgraphCheck: out of memory"); return (1); } o = 1; /* Assume an error */ fronnbr = frlosum = 0; memSet (comploadtab, 0, grafptr->partnbr * sizeof (Gnum)); /* Reset loads */ memSet (compsizetab, 0, grafptr->partnbr * sizeof (Gnum)); memSet (flagtab, ~0, grafptr->partnbr * sizeof (Gnum)); /* Reset flag array */ for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { /* Check part array */ Anum partnum; partnum = grafptr->parttax[vertnum]; if ((partnum >= grafptr->partnbr) || (partnum < -1)) { errorPrint ("wgraphCheck: invalid part array"); goto abort; } } if (grafptr->fronnbr < 0) { errorPrint ("wgraphCheck: invalid frontier size"); goto abort; } for (fronnum = 0; fronnum < grafptr->fronnbr; fronnum ++) { Gnum vertnum; vertnum = grafptr->frontab[fronnum]; if (grafptr->parttax[vertnum] != -1) { errorPrint ("wgraphCheck: invalid frontier array"); goto abort; } } for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Anum partnum; Gnum veloval; veloval = (grafptr->s.velotax != NULL) ? grafptr->s.velotax[vertnum] : 1; partnum = grafptr->parttax[vertnum]; if (partnum == -1) { Gnum edgenum; frlosum += veloval; fronnbr ++; for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++) { Gnum vertend; Anum partend; vertend = grafptr->s.edgetax[edgenum]; partend = grafptr->parttax[vertend]; if ((partend != -1) && (flagtab[partend] != vertnum)) { comploadtab[partend] += veloval; compsizetab[partend] ++; flagtab[partend] = vertnum; } } } else { comploadtab[partnum] += veloval; compsizetab[partnum] ++; } } for (partnum = 0; partnum < grafptr->partnbr; partnum ++) { if (grafptr->compsize[partnum] != compsizetab[partnum]) { errorPrint ("wgraphCheck: invalid part size array"); goto abort; } if (grafptr->compload[partnum] != comploadtab[partnum]) { errorPrint ("wgraphCheck: invalid part load array"); goto abort; } } if (grafptr->fronload != frlosum) { errorPrint ("wgraphCheck: invalid frontier load"); goto abort; } if (grafptr->fronnbr != fronnbr) { errorPrint ("wgraphCheck: invalid frontier size"); goto abort; } o = 0; /* Everything went all right */ abort : memFree (flagtab); /* Free group leader */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_es.c000066400000000000000000000164011514310134000270700ustar00rootroot00000000000000/* Copyright 2020,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_es.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module computes an overlap k-way **/ /** partition from a k-way edge partition. **/ /** **/ /** DATES : # Version 6.1 : from : 25 aug 2020 **/ /** to : 26 aug 2020 **/ /** # Version 7.0 : from : 28 aug 2020 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "wgraph.h" #include "wgraph_part_es.h" #include "scotch.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int wgraphPartEs ( Wgraph * restrict const grafptr, /*+ Active graph +*/ const WgraphPartEsParam * const paraptr) /*+ Method parameters +*/ { Arch archdat; /* Complete graph target architecture */ Kgraph actgrafdat; /* K-way graph structure */ Gnum * restrict comploadtab; Gnum * restrict compsizetab; Gnum * restrict npfltab; /* Neighbor part flag array */ Anum partnum; Gnum fronnum; Gnum frlosum; Gnum vertnum; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum partnbr = grafptr->partnbr; if ((npfltab = memAlloc ((partnbr + 1) * sizeof (Gnum))) == NULL) { errorPrint ("wgraphPartEs: out of memory"); return (1); } npfltab ++; /* TRICK: set slot for frontier */ SCOTCH_archCmplt ((SCOTCH_Arch *) &archdat, (SCOTCH_Num) partnbr); /* Create complete graph target architecture */ if (kgraphInit (&actgrafdat, &grafptr->s, &archdat, NULL, 0, NULL, 1, 0, 0) != 0) { errorPrint ("wgraphPartEs: cannot create mapping graph"); memFree (npfltab - 1); return (1); } actgrafdat.contptr = grafptr->contptr; if (kgraphMapSt (&actgrafdat, paraptr->strat) != 0) { /* Map active subgraph */ errorPrint ("wgraphPartEs: cannot partition active graph"); return (1); } comploadtab = grafptr->compload; compsizetab = grafptr->compsize; for (partnum = 0; partnum < partnbr; partnum ++) comploadtab[archDomNum (&archdat, &actgrafdat.m.domntab[partnum])] = actgrafdat.comploadavg[partnum] + actgrafdat.comploaddlt[partnum]; memSet (compsizetab, 0, partnbr * sizeof (Gnum)); for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Anum partnum; partnum = archDomNum (&archdat, &actgrafdat.m.domntab[actgrafdat.m.parttax[vertnum]]); /* Set part as value of terminal domain */ grafptr->parttax[vertnum] = partnum; compsizetab[partnum] ++; } memSet (npfltab - 1, ~0, (partnbr + 1) * sizeof (Gnum)); frlosum = 0; for (fronnum = 0; fronnum < actgrafdat.fronnbr; fronnum ++) { /* Update part array to set frontier vertices as such */ Gnum vertnum; Gnum veloval; Anum partnum; vertnum = actgrafdat.frontab[fronnum]; veloval = (velotax != NULL) ? velotax[vertnum] : 1; partnum = grafptr->parttax[vertnum]; /* Get old vertex part */ comploadtab[partnum] -= veloval; /* Assume vertex is no longer in said part */ compsizetab[partnum] --; grafptr->frontab[fronnum] = vertnum; grafptr->parttax[vertnum] = -1; /* Set frontier vertex */ frlosum += veloval; /* Account for vertex load */ } for (fronnum = 0; fronnum < actgrafdat.fronnbr; fronnum ++) { /* Update part array to set frontier vertices as such */ Gnum vertnum; Gnum veloval; Gnum edgenum; vertnum = grafptr->frontab[fronnum]; veloval = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Anum partend; vertend = edgetax[edgenum]; partend = grafptr->parttax[vertend]; if (partend == -1) continue; if (npfltab[partend] != vertnum) { /* If part not already considered */ comploadtab[partend] += veloval; /* Add vertex to part */ compsizetab[partend] ++; npfltab[partend] = vertnum; } } } grafptr->fronnbr = actgrafdat.fronnbr; grafptr->fronload = frlosum; kgraphExit (&actgrafdat); memFree (npfltab - 1); /* TRICK: free original array address */ #ifdef SCOTCH_DEBUG_WGRAPH2 if (wgraphCheck (grafptr) != 0) { errorPrint ("wgraphPartEs: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_es.h000066400000000000000000000055441514310134000271030ustar00rootroot00000000000000/* Copyright 2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_es.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the edge-separation-based vertex **/ /** overlapped graph partitioning module. **/ /** **/ /** DATES : # Version 6.1 : from : 25 aug 2020 **/ /** to : 25 aug 2020 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct WgraphPartEsParam_ { Strat * strat; /*+ K-way partitioning strategy +*/ } WgraphPartEsParam; /* ** The function prototypes. */ int wgraphPartEs (Wgraph * const, const WgraphPartEsParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_fm.c000066400000000000000000001732161514310134000270730ustar00rootroot00000000000000/* Copyright 2007-2013,2018,2020,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_fm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module is the improved Fiduccia- **/ /** Mattheyses refinement routine for the **/ /** vertex overlapped graph partitioning. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 30 jul 2020 **/ /** to : 18 dec 2021 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 09 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_WGRAPH_PART_FM /* #define SCOTCH_DEBUG_WGRAPH3 */ #include "module.h" #include "common.h" #include "gain.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "wgraph.h" #include "wgraph_part_fm.h" #include "wgraph_part_rb.h" /* ** The static and global variables. */ static WgraphPartFmVertex wgraphpartfmvertexdummy; /* Dummy graph vertex acting as sentinel for linked lists */ /*********************************/ /* */ /* Gain table handling routines. */ /* */ /*********************************/ /* This routine inserts the links of a given ** frontier vertex into the gain table. Each link ** corresponds to the move of the frontier vertex ** to one of the parts to which it already belongs, ** increasing the frontier by all the vertices that ** belong to other parts and are not already part ** of the frontier. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static int wgraphPartFmTablAdd ( GainTabl * restrict const tablptr, /*+ Gain table +*/ Wgraph * restrict const grafptr, /*+ Active graph +*/ WgraphPartFmVertex * restrict const hashtab, const Gnum hashmsk, WgraphPartFmLinkData * restrict const linkptr, WgraphPartFmPartList * restrict const nplstab, const Gnum cplomin, /*+ Minimum with respect to average part load +*/ const Gnum cplomax, /*+ Maximum with respect to average part load +*/ WgraphPartFmVertex * const vexxptr) { Anum npmipartnum; /* Part number of lighter part around frontier vertex */ Gnum npmiloadval; /* Weight of lighter part around frontier vertex */ Anum npmspartnum; /* Part number of second-lighter part around frontier vertex */ Anum nplsidx; /* Chained list of neighboring parts around vertex */ Anum nplsnbr; /* Number of parts around vertex */ WgraphPartFmLink * linktab; /* Array of links (may change after resizing) */ Gnum linkidx; /* Index of first link structure for vertex */ Gnum gainval; Gnum vertnum; Gnum edgenum; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; const Gnum * restrict const parttax = grafptr->parttax; const Gnum * restrict const comploadtab = grafptr->compload; vertnum = vexxptr->vertnum; npmipartnum = /* No parts of minimum load found yet */ npmspartnum = -1; npmiloadval = GNUMMAX; /* TRICK: indicates no part found */ nplsidx = -1; /* No neighboring parts found yet */ nplsnbr = 0; gainval = (velotax != NULL) ? - velotax[vertnum] : -1; /* Gain for frontier if frontier vertex leaves it */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum hashend; WgraphPartFmVertex * vexxend; Anum partend; vertend = edgetax[edgenum]; for (hashend = (vertend * WGRAPHPARTFMHASHPRIME) & hashmsk, vexxend = hashtab + hashend; ; /* Find slot of end vertex to get its part */ hashend = (hashend + 1) & hashmsk, vexxend = hashtab + hashend) { if (vexxend->vertnum == vertend) { /* If hash slot found */ partend = vexxend->partnum; /* Get current part value */ break; } if (vexxend->vertnum == ~0) { /* If vertex not found */ partend = parttax[vertend]; /* Get initial part value */ #ifdef SCOTCH_DEBUG_WGRAPH2 if (partend == -1) { /* If vertex was not found un hash table */ errorPrint ("wgraphPartFmTablAdd: vertex not in frontier array"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ break; } } if (partend != -1) { /* If end vertex part not in frontier */ Gnum veloend; if (nplstab[partend].nextidx == -2) { /* If part not yet considered */ Gnum comploadend; nplstab[partend].nextidx = nplsidx; /* Link it for further processing */ nplstab[partend].loadgainval = 0; /* No gain recorded yet */ nplsidx = partend; nplsnbr ++; comploadend = comploadtab[partend]; if (comploadend < npmiloadval) { /* TRICK: if first part, or if found lighter part */ npmspartnum = npmipartnum; npmipartnum = partend; npmiloadval = comploadend; } else /* Else record part as second choice anyway */ npmspartnum = partend; } veloend = (velotax != NULL) ? velotax[vertend] : 1; nplstab[partend].loadgainval += veloend; /* Sum gains to frontier from part if vertex goes to another part */ gainval += veloend; /* Sum overall gains to frontier if frontier vertex goes to any part */ } } while (wgraphPartFmLinkClaim (linkptr, nplsnbr)) { /* Make sure there are enough links available in array */ if (wgraphPartFmLinkResize (linkptr, tablptr) != 0) { errorPrint ("wgraphPartFmTablAdd: cannot resize link array"); return (1); } } linktab = linkptr->linktab; /* Get pointer to link array after potential resizing */ linkidx = -1; /* Assume list of links is empty */ while (nplsidx != -1) { /* For each part to which frontier vertex belongs */ Gnum linknum; Anum nplstmp; linknum = wgraphPartFmLinkGet (linkptr); /* Create new link slot */ #ifdef SCOTCH_DEBUG_WGRAPH2 if (linknum < 0) { errorPrint ("wgraphPartFmTablAdd: internal error"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ linktab[linknum].nextidx = linkidx; /* Chain slot to working list */ linkidx = linknum; linktab[linknum].partnum = nplsidx; linktab[linknum].vertnum = vertnum; linktab[linknum].gainval = gainval - nplstab[nplsidx].loadgainval; /* Gain for frontier is loads of neighbor vertices belonging to all other parts */ linktab[linknum].npmipartnum = (nplsidx != npmipartnum) ? npmipartnum : npmspartnum; if ((linktab[linknum].npmipartnum == -1) || /* If link would not cause imbalance */ ((comploadtab[nplsidx] < cplomax) && (comploadtab[linktab[linknum].npmipartnum] > cplomin))) gainTablAdd (tablptr, (GainLink *) &linktab[linknum], linktab[linknum].gainval); /* Add link to gain table */ else linktab[linknum].gainlink.tabl = NULL; /* Set link as not chained */ nplstmp = nplstab[nplsidx].nextidx; nplstab[nplsidx].nextidx = -2; nplsidx = nplstmp; } vexxptr->linkidx = linkidx; /* Link part list to frontier vertex */ return (0); } /* This routine returns the vertex of best gain ** whose swap will keep the balance correct. ** It returns: ** - !NULL : pointer to the vertex gainlink. ** - NULL : if no more vertices available. */ static WgraphPartFmLink * wgraphPartFmTablGet ( GainTabl * restrict const tablptr, /*+ Gain table +*/ const Wgraph * restrict const grafptr, /*+ Active graph +*/ const Gnum cplomin, /*+ Minimum with respect to average part load +*/ const Gnum cplomax) /*+ Maximum with respect to average part load +*/ { Gnum gainbst; /* Frontier gain of best link */ Gnum cdltbst; /* Part load imbalance of best link */ GainEntr * tablbst; /* Gain table entry of best link */ WgraphPartFmLink * linkbst; /* Pointer to best link found */ WgraphPartFmLink * linkptr; /* Pointer to current gain link */ const Gnum * restrict const comploadtab = grafptr->compload; linkbst = NULL; /* Assume no candidate vertex found yet */ tablbst = tablptr->tend; cdltbst = /* Prevent compiler from yelling */ gainbst = GAINMAX; for (linkptr = (WgraphPartFmLink *) gainTablFrst (tablptr); /* Select candidate vertices */ (linkptr != NULL) && (linkptr->gainlink.tabl <= tablbst); linkptr = (WgraphPartFmLink *) gainTablNext (tablptr, (GainLink *) linkptr)) { Anum partnum; /* Destination part of vertex */ Anum pminnum; /* Smallest impacted part */ Gnum gaincur; /* Frontier gain of current link */ partnum = linkptr->partnum; pminnum = linkptr->npmipartnum; gaincur = linkptr->gainval; /* Get frontier gain */ if (pminnum == -1) /* If frontier vertex can go to one part only */ return (linkptr); /* Return its link as it is an obvious gain */ if ((comploadtab[pminnum] <= cplomin) || /* If move would cause part imbalance, reject it */ (comploadtab[partnum] >= cplomax)) continue; if ((gaincur < gainbst) || /* If it gives better gain than gain max */ ((gaincur == gainbst) && /* Or reduces imbalance most */ ((comploadtab[partnum] - comploadtab[pminnum]) < cdltbst))) { linkbst = linkptr; /* Select it */ gainbst = gaincur; tablbst = linkptr->gainlink.tabl; cdltbst = comploadtab[partnum] - comploadtab[pminnum]; } } return (linkbst); /* Return best link found */ } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ int wgraphPartFm ( Wgraph * restrict const grafptr, /*+ Active graph +*/ const WgraphPartFmParam * const paraptr) /*+ Method parameters +*/ { int passnbr; /* Maximum number of passes to go */ int moveflag; /* Flag set if useful moves made */ Gnum partnum; Gnum frlosum; Gnum frlobst; Gnum fronnbr; Gnum fronnum; WgraphPartFmVertex * vexxptr; GainTabl * restrict tablptr; /* Pointer to gain table */ WgraphPartFmHashData hashdat; /* Hash table management data */ WgraphPartFmLinkData linkdat; /* Link array management data */ WgraphPartFmSaveData savedat; /* Save array management data */ WgraphPartFmPartList * restrict nplstab; /* Array of neighboring parts of frontier vertex */ int o; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; Gnum * restrict const parttax = grafptr->parttax; const Gnum partnbr = grafptr->partnbr; /* Work with current number of parts */ Gnum * restrict const comploadtab = grafptr->compload; Gnum * restrict const compsizetab = grafptr->compsize; if (grafptr->fronnbr == 0) { /* If no frontier defined */ WgraphPartRbParam paradat; Gnum partnum; Gnum cplosum; /* Sum of vertex loads in parts and boundaries */ Gnum cplomin; /* Minimum acceptable part load */ Gnum cplomax; /* Maximum acceptable part load */ int o; for (partnum = 0, cplosum = 0; partnum < partnbr; partnum ++) /* Compute part load sum */ cplosum += comploadtab[partnum]; cplomin = (Gnum) ((float) cplosum * (1.0F - paraptr->deltrat) / (float) partnbr); /* Adjust minimum part load */ cplomax = (Gnum) ((float) cplosum * (1.0F + paraptr->deltrat) / (float) partnbr); /* Adjust minimum part load */ for (partnum = 0, cplosum = 0; partnum < partnbr; partnum ++) { /* Test if all parts fall into boundary */ if ((comploadtab[partnum] < cplomin) || (comploadtab[partnum] > cplomax)) break; } if (partnum >= partnbr) /* If balanced achieved, no need to recompute */ return (0); if ((paradat.straptr = stratInit (&vgraphseparateststratab, "m{rat=0.7,vert=100,low=h{pass=10},asc=b{width=3,bnd=f{bal=0.05},org=(|h{pass=10})f{bal=0.05}}}")) == NULL) { errorPrint ("wgraphPartFm: cannot create fallback strategy"); return (1); } o = wgraphPartRb (grafptr, ¶dat); stratExit (paradat.straptr); if (o != 0) { errorPrint ("wgraphPartFm: cannot apply fallback strategy"); return (1); } if (grafptr->fronnbr == 0) /* If new partition has no frontier */ return (0); /* This algorithm is still useless */ } #ifdef SCOTCH_DEBUG_WGRAPH2 hashdat.hashsiz = 16; linkdat.linksiz = 2; savedat.savesiz = 2; #else /* SCOTCH_DEBUG_WGRAPH2 */ hashdat.hashnbr = 4 * (grafptr->fronnbr + grafptr->s.degrmax) + 1; /* TRICK: (degrmax + 1) so no need to resize within edge loops */ if (hashdat.hashnbr > grafptr->s.vertnbr) hashdat.hashnbr = 2 * grafptr->s.vertnbr; hashdat.hashnbr *= 2; for (hashdat.hashsiz = 512; hashdat.hashsiz < hashdat.hashnbr; hashdat.hashsiz <<= 1) ; /* Get upper power of two */ linkdat.linksiz = hashdat.hashnbr; savedat.savesiz = hashdat.hashnbr; #endif /* SCOTCH_DEBUG_WGRAPH2 */ savedat.savenbr = 0; /* No moves saved (yet) */ if (((tablptr = gainTablInit (GAINMAX, WGRAPHPARTFMGAINBITS)) == NULL) || /* Use logarithmic array only */ ((nplstab = memAlloc ((partnbr + 1) * sizeof (WgraphPartFmPartList))) == NULL) || /* TRICK: +1 for frontier */ ((hashdat.hashtab = memAlloc (hashdat.hashsiz * sizeof (WgraphPartFmVertex))) == NULL) || ((linkdat.linktab = memAlloc (linkdat.linksiz * sizeof (WgraphPartFmLink))) == NULL) || ((savedat.savetab = memAlloc (savedat.savesiz * sizeof (WgraphPartFmSave))) == NULL)) { errorPrint ("wgraphPartFm: out of memory"); if (tablptr != NULL) { if (nplstab != NULL) { if (hashdat.hashtab != NULL) { if (linkdat.linktab != NULL) memFree (linkdat.linktab); memFree (hashdat.hashtab); } memFree (nplstab); } gainTablExit (tablptr); } return (1); } nplstab ++; /* TRICK: move one slot ahead for frontier */ hashdat.hashmax = hashdat.hashsiz >> 2; /* Use hash table at 1/4 of its capacity */ hashdat.hashmsk = hashdat.hashsiz - 1; hashdat.hashnbr = 0; hashdat.lockptr = &wgraphpartfmvertexdummy; /* Initialize locked vertex list to add frontier vertices */ wgraphPartFmLinkInit (&linkdat); wgraphPartFmSaveInit (&savedat); memSet (hashdat.hashtab, ~0, hashdat.hashsiz * sizeof (WgraphPartFmVertex)); /* All vertnum's set to -1 */ for (partnum = -1; partnum < partnbr; partnum ++) /* Initialize part list array (TRICK: with frontier) */ nplstab[partnum].nextidx = -2; o = 1; /* Assume an error */ while (wgraphPartFmHashClaim (&hashdat, grafptr->fronnbr)) { /* Prepare hash table for inserting frontier vertices */ if (wgraphPartFmHashResize (&hashdat) != 0) { errorPrint ("wgraphPartFm: cannot resize hash array (1)"); goto abort; } } fronnbr = grafptr->fronnbr; for (fronnum = 0; fronnum < fronnbr; fronnum ++) { /* Allocate hash slots for frontier vertices */ Gnum hashnum; Gnum vertnum; WgraphPartFmVertex * vexxptr; vertnum = grafptr->frontab[fronnum]; for (hashnum = (vertnum * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxptr = hashdat.hashtab + hashnum; ; /* Create slot for frontier vertex */ hashnum = (hashnum + 1) & hashdat.hashmsk, vexxptr = hashdat.hashtab + hashnum) { if (vexxptr->vertnum == ~0) { /* If vertex not found, create slot in hash table */ vexxptr->vertnum = vertnum; vexxptr->partnum = -1; /* Vertex belongs to frontier */ #ifdef SCOTCH_DEBUG_WGRAPH2 vexxptr->linkidx = -1; /* No links attached to vertex */ #endif /* SCOTCH_DEBUG_WGRAPH2 */ vexxptr->nlokptr = hashdat.lockptr; /* Chain vertex to locked list */ hashdat.lockptr = vexxptr; hashdat.hashnbr ++; #ifdef SCOTCH_DEBUG_WGRAPH2 if (hashdat.hashnbr > hashdat.hashmax) { /* Table should not be filled-in to capacity */ errorPrint ("wgraphPartFm: internal error (1)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ vexxptr->nlstptr = NULL; /* Vertex not in working list */ break; } #ifdef SCOTCH_DEBUG_WGRAPH2 if (vexxptr->vertnum == vertnum) { errorPrint ("wgraphPartFm: duplicate vertex in frontier array"); continue; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ } } frlosum = frlobst = grafptr->fronload; /* Get load of frontier */ passnbr = paraptr->passnbr; do { /* As long as there is improvement */ Gnum cplosum; /* Sum of vertex loads in parts and boundaries */ Gnum cplomin; /* Minimum acceptable part load */ Gnum cplomax; /* Maximum acceptable part load */ WgraphPartFmLink * linkptr; Gnum movenbr; /* Number of uneffective moves done */ for (partnum = 0, cplosum = 0; partnum < partnbr; partnum ++) /* Set initial part load sum (after unroll) */ cplosum += comploadtab[partnum]; cplomin = (Gnum) ((float) cplosum * (1.0F - paraptr->deltrat) / (float) partnbr); cplomax = (Gnum) ((float) cplosum * (1.0F + paraptr->deltrat) / (float) partnbr); while (hashdat.lockptr != &wgraphpartfmvertexdummy) { /* Purge list of locked vertices */ WgraphPartFmVertex * vexxptr; vexxptr = hashdat.lockptr; /* Remove vertex from locked list */ hashdat.lockptr = vexxptr->nlokptr; vexxptr->nlokptr = NULL; if (vexxptr->partnum == -1) /* If vertex belongs to frontier, link it */ wgraphPartFmTablAdd (tablptr, grafptr, hashdat.hashtab, hashdat.hashmsk, &linkdat, nplstab, cplomin, cplomax, vexxptr); } #ifdef SCOTCH_DEBUG_WGRAPH2 #ifdef SCOTCH_DEBUG_WGRAPH3 grafptr->fronload = frlosum; grafptr->fronnbr = fronnbr; if (wgraphPartFmCheck (grafptr, &hashdat, &savedat, cplosum) != 0) { errorPrint ("wgraphPartFm: internal error (2)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH3 */ #endif /* SCOTCH_DEBUG_WGRAPH2 */ movenbr = 0; /* No uneffective moves yet */ moveflag = 0; /* No moves to date */ while ((movenbr < paraptr->movenbr) && /* As long as we can find effective links to vertices to move */ ((linkptr = wgraphPartFmTablGet (tablptr, grafptr, cplomin, cplomax)) != NULL)) { Gnum vertnum; Gnum gainval; /* Gain value for frontier: - velotax[vertnum] */ WgraphPartFmVertex * vexxptr; WgraphPartFmVertex * vexxend; WgraphPartFmVertex * listptr; /* List of vertices to process during a move */ Gnum savenbr; /* Number of save slots to fill */ Gnum hashnum; Anum partnum; Anum pminnum; Anum partend; Gnum edgenum; Anum nplsidx; Gnum linknum; vertnum = linkptr->vertnum; while (wgraphPartFmHashClaim (&hashdat, (vendtax[vertnum] - verttax[vertnum]))) { /* Possibly resize hash table before creating working list */ if (wgraphPartFmHashResize (&hashdat) != 0) { errorPrint ("wgraphPartFm: cannot resize hash array (2)"); goto abort; } } for (hashnum = (vertnum * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxptr = hashdat.hashtab + hashnum; /* Search for vertex in hash table */ vexxptr->vertnum != vertnum; hashnum = (hashnum + 1) & hashdat.hashmsk, vexxptr = hashdat.hashtab + hashnum) { #ifdef SCOTCH_DEBUG_WGRAPH2 if (vexxptr->vertnum == ~0) { /* If vertex not present */ errorPrint ("wgraphPartFm: internal error (3)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ } #ifdef SCOTCH_DEBUG_WGRAPH2 if ((vexxptr->nlokptr != NULL) || /* Vertex should not be already locked or in working list */ (vexxptr->nlstptr != NULL)) { errorPrint ("wgraphPartFm: internal error (4)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ partnum = linkptr->partnum; /* Get vertex target part */ pminnum = linkptr->npmipartnum; /* Get smallest impacted part */ gainval = (velotax != NULL) ? - velotax[vertnum] : -1; savenbr = 2; /* TRICK: account for move and load for vertex itself */ nplsidx = partnum; /* Initialize vertex part list: first cell is frontier */ nplstab[partnum].nextidx = -1; nplstab[partnum].loadgainval = 0; /* Vertex remains in its destination part */ nplstab[partnum].sizegainval = 0; nplstab[-1].loadgainval = gainval; /* Vertex leaves frontier */ nplstab[-1].sizegainval = -1; for (linknum = vexxptr->linkidx; linknum != -1; ) { /* For all of its former potential target parts */ Anum partend; Gnum linktmp; if (linkdat.linktab[linknum].gainlink.tabl != NULL) /* If link was chained in gain table, remove it */ gainTablDel (tablptr, (GainLink *) &linkdat.linktab[linknum].gainlink); partend = linkdat.linktab[linknum].partnum; if (partend != partnum) { #ifdef SCOTCH_DEBUG_WGRAPH2 if (nplstab[partend].nextidx != -2) { errorPrint ("wgraphPartFm: internal error (5)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ nplstab[partend].nextidx = nplsidx; nplsidx = partend; nplstab[partend].loadgainval = gainval; /* Vertex leaves this part as well */ nplstab[partend].sizegainval = -1; nplstab[partend].vechnum = /* Initialize neighbor vertex indices for this part */ nplstab[partend].vencnum = ~0; savenbr ++; /* One more slot */ } linktmp = linknum; linknum = linkdat.linktab[linknum].nextidx; /* Get next link */ wgraphPartFmLinkPut (&linkdat, linktmp); /* Free old link in table */ } vexxptr->linkidx = -1; /* No more active links for vertex */ vexxptr->nlokptr = hashdat.lockptr; /* Add vertex to locked list for this pass */ hashdat.lockptr = vexxptr; vexxptr->nlstptr = &wgraphpartfmvertexdummy; /* Flag vertex so not taken as frontier neighbor of neighbor */ listptr = &wgraphpartfmvertexdummy; /* Empty working list of end vertices */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* For all neighbor vertices */ Gnum vertend; WgraphPartFmVertex * vexxend; Gnum hashend; Anum partend; vertend = edgetax[edgenum]; for (hashend = (vertend * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxend = hashdat.hashtab + hashend; ; /* Find slot for/of end vertex to get its part */ hashend = (hashend + 1) & hashdat.hashmsk, vexxend = hashdat.hashtab + hashend) { if (vexxend->vertnum == vertend) { /* If hash slot found */ partend = vexxend->partnum; /* Get current part value */ break; } if (vexxend->vertnum == ~0) { /* If vertex not found */ partend = parttax[vertend]; /* Get initial part value */ #ifdef SCOTCH_DEBUG_WGRAPH2 if (partend == -1) { /* If vertex was not in original frontier array */ errorPrint ("wgraphPartFm: vertex not in frontier array (1)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ if (partend == partnum) /* If neighbor in same part as vertex destination */ break; /* No need to create slot in hash table */ vexxend->vertnum = vertend; /* Set vertex number */ vexxend->partnum = partend; /* Set old part, for testing neighbors of neighbors */ vexxend->linkidx = -1; /* No target parts linked to vertex yet */ vexxend->nlokptr = NULL; /* Vertex not in locked list */ vexxend->nlstptr = NULL; /* Vertex not in working list (yet) */ hashdat.hashnbr ++; #ifdef SCOTCH_DEBUG_WGRAPH2 if (hashdat.hashnbr > hashdat.hashmax) { /* Table should not be filled-in to capacity */ errorPrint ("wgraphPartFm: internal error (6)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ break; } } if (partend == partnum) /* If end vertex in destination part, nothing to do */ continue; if (partend != -1) { /* If end vertex will move to frontier */ Gnum veloend; Gnum edgeend; veloend = (velotax != NULL) ? velotax[vertend] : 1; nplstab[-1].loadgainval += veloend; /* Account for its load in frontier */ nplstab[-1].sizegainval ++; nplstab[partnum].loadgainval += veloend; /* It also moves to destination part */ nplstab[partnum].sizegainval ++; for (edgeend = verttax[vertend]; edgeend < vendtax[vertend]; edgeend ++) { /* Explore its neighbor vertices one by one */ Gnum vertent; WgraphPartFmVertex * vexxent; Gnum hashent; Anum partent; vertent = edgetax[edgeend]; /* Number of neighbor of neighbor */ for (hashent = (vertent * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxent = hashdat.hashtab + hashent; ; /* Find slot for end vertex to get its part */ hashent = (hashent + 1) & hashdat.hashmsk, vexxent = hashdat.hashtab + hashent) { if (vexxent->vertnum == vertent) { /* If hash slot found */ partent = vexxent->partnum; /* Get current part value */ break; } if (vexxent->vertnum == ~0) { /* If vertex not found */ partent = parttax[vertent]; /* Get initial part value */ #ifdef SCOTCH_DEBUG_WGRAPH2 if (partent == -1) { /* If vertex was not in original frontier array */ errorPrint ("wgraphPartFm: vertex not in frontier array (2)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ break; } } if ((partent == -1) && /* If vertex is a frontier vertex that may be removed from part of neighbor */ (vexxent->nlstptr == NULL)) { /* And not already in working list */ vexxent->nlstptr = listptr; /* Add vertex to working list */ listptr = vexxent; savenbr ++; } } } if (vexxend->nlstptr == NULL) { /* If neighbor vertex not already caught as neighbor of neighbor */ vexxend->nlstptr = listptr; /* Vertex is/will be in frontier */ listptr = vexxend; /* Link it for further processing */ savenbr ++; /* One more vertex in list */ } } vexxptr->nlstptr = NULL; /* Unlock chosen vertex */ while (wgraphPartFmSaveClaim (&savedat, savenbr + (vendtax[vertnum] - verttax[vertnum]))) { /* TRICK: vertex is already accounted for in savenbr */ if (wgraphPartFmSaveResize (&savedat) != 0) { errorPrint ("wgraphPartFm: cannot resize save array"); goto abort; } } savedat.savetab[savedat.savenbr].typeval = WGRAPHPARTFMSAVEMOVE; /* Record move from frontier */ savedat.savetab[savedat.savenbr].u.movedat.vertnum = vertnum; savedat.savetab[savedat.savenbr].u.movedat.partnum = -1; /* Vertex belonged to frontier */ savedat.savenbr ++; for (vexxend = listptr; vexxend != &wgraphpartfmvertexdummy; vexxend = vexxend->nlstptr) { /* For all neighbors and relevant neigbors-of-neighbors */ Anum partend; partend = vexxend->partnum; if (partend == -1) { /* If pre-existing frontier vertex */ Gnum vertend; Gnum veloend; Gnum edgeend; Gnum linknum; Anum partent; int flagval; /* Flag for saving part change */ vertend = vexxend->vertnum; veloend = (velotax != NULL) ? velotax[vertend] : 1; flagval = 0; for (edgeend = verttax[vertend]; edgeend < vendtax[vertend]; edgeend ++) { /* Explore its neighbor vertices one by one */ Gnum vertent; WgraphPartFmVertex * vexxent; Gnum hashent; Anum partent; vertent = edgetax[edgeend]; /* Number of neighbor of neighbor */ for (hashent = (vertent * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxent = hashdat.hashtab + hashent; ; /* Find slot for end vertex */ hashent = (hashent + 1) & hashdat.hashmsk, vexxent = hashdat.hashtab + hashent) { if (vexxent->vertnum == ~0) { partent = parttax[vertent]; #ifdef SCOTCH_DEBUG_WGRAPH2 if (partent == -1) { /* If vertex was not in original frontier array */ errorPrint ("wgraphPartFm: vertex not in frontier array (3)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ vexxent = NULL; break; } if (vexxent->vertnum == vertent) { /* If hash slot found */ partent = vexxent->partnum; /* Get (old) part */ if (vexxent == vexxptr) /* If direct neighbor */ flagval |= 1; /* Flag it as such */ break; } } if (partent == partnum) { /* If neighbor has another neighbor in destination part (TRICK: vertnum part not yet changed) */ flagval |= 2; /* Flag it as such */ continue; /* End vertices of same part have no further impact on neighbor so skip to next end vertex */ } if (nplstab[partent].nextidx == -2) /* If end vertex part is not subject to change (TRICK:) or is frontier, skip it */ continue; if ((vexxent == NULL) || /* If we have a neighbor in this part which is not changed */ (vexxent->nlstptr == NULL)) { nplstab[partent].vencnum = vertend; /* Flag that we have an end vertex in this part that will not change */ } else nplstab[partent].vechnum = vertend; /* Else flag that we have an end vertex in this part that will change */ } if (flagval == 1) { /* If direct neighbor frontier vertex not already in destination part */ nplstab[partnum].loadgainval += veloend; /* Frontier vertex moves to destination part */ nplstab[partnum].sizegainval ++; } for (partent = nplsidx; partent != partnum; partent = nplstab[partent].nextidx) { /* For all parts to be changed */ if ((nplstab[partent].vechnum == vertend) && /* If neighbor frontier vertex was in part but will no longer be */ (nplstab[partent].vencnum != vertend)) { nplstab[partent].loadgainval -= veloend; /* Frontier vertex leaves this part */ nplstab[partent].sizegainval --; } } for (linknum = vexxend->linkidx; linknum != -1; ) { /* As frontier vertex incurs change, remove its links if any */ Gnum linktmp; if (linkdat.linktab[linknum].gainlink.tabl != NULL) /* If link was chained in gain table, remove it */ gainTablDel (tablptr, (GainLink *) &linkdat.linktab[linknum].gainlink); linktmp = linknum; linknum = linkdat.linktab[linknum].nextidx; /* Get next link */ wgraphPartFmLinkPut (&linkdat, linktmp); /* Free old link in table */ } vexxend->linkidx = -1; /* No more active links for vertex */ } else { /* Vertex will enter the frontier */ Gnum vertend; Gnum edgeend; vertend = vexxend->vertnum; for (edgeend = verttax[vertend]; edgeend < vendtax[vertend]; edgeend ++) { /* Explore its neighbor vertices one by one */ Gnum vertent; WgraphPartFmVertex * vexxent; Gnum hashent; Anum partent; vertent = edgetax[edgeend]; /* Number of neighbor of neighbor */ for (hashent = (vertent * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxent = hashdat.hashtab + hashent; ; /* Find slot for end vertex */ hashent = (hashent + 1) & hashdat.hashmsk, vexxent = hashdat.hashtab + hashent) { if (vexxent->vertnum == vertent) { /* If hash slot found */ partent = vexxent->partnum; /* Get (old) part */ break; } if (vexxent->vertnum == ~0) { partent = parttax[vertent]; #ifdef SCOTCH_DEBUG_WGRAPH2 if (partent == -1) { /* If vertex was not in original frontier array */ errorPrint ("wgraphPartFm: vertex not in frontier array (3)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ vexxent = NULL; break; } } if ((partent == partend) && /* If we have a neighbor in the same part which is not changed */ ((vexxent == NULL) || (vexxent->nlstptr == NULL))) break; /* No need to process other neighbors */ } if (edgeend == vendtax[vertend]) { /* If vertex has no neighbor remaining in its old part */ Gnum veloend; veloend = (velotax != NULL) ? velotax[vertend] : 1; nplstab[partend].loadgainval -= veloend; /* Vertex will no longer belong to its old part */ nplstab[partend].sizegainval --; } } #ifdef SCOTCH_DEBUG_WGRAPH2 if (savedat.savenbr >= savedat.savesiz) { errorPrint ("wgraphPartFm: internal error (7)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ savedat.savetab[savedat.savenbr].typeval = WGRAPHPARTFMSAVEMOVE; savedat.savetab[savedat.savenbr].u.movedat.vertnum = vexxend->vertnum; savedat.savetab[savedat.savenbr].u.movedat.partnum = vexxend->partnum; savedat.savenbr ++; } partend = nplsidx; do { /* For all (possibly) updated parts including part -1 */ Anum parttmp; #ifdef SCOTCH_DEBUG_WGRAPH2 if (savedat.savenbr >= savedat.savesiz) { errorPrint ("wgraphPartFm: internal error (8)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ savedat.savetab[savedat.savenbr].typeval = WGRAPHPARTFMSAVELOAD; /* Record change in load */ savedat.savetab[savedat.savenbr].u.loaddat.partnum = partend; if (partend >= 0) { savedat.savetab[savedat.savenbr].u.loaddat.loadval = comploadtab[partend]; savedat.savetab[savedat.savenbr].u.loaddat.sizeval = compsizetab[partend]; comploadtab[partend] += nplstab[partend].loadgainval; compsizetab[partend] += nplstab[partend].sizegainval; cplosum += nplstab[partend].loadgainval; /* Update sum of part loads */ } else { if (savedat.savenbr >= savedat.savesiz) fprintf (stderr, "OUCH\n"); savedat.savetab[savedat.savenbr].u.loaddat.loadval = frlosum; savedat.savetab[savedat.savenbr].u.loaddat.sizeval = fronnbr; frlosum += nplstab[partend].loadgainval; fronnbr += nplstab[partend].sizegainval; } savedat.savenbr ++; parttmp = partend; partend = nplstab[parttmp].nextidx; nplstab[parttmp].nextidx = -2; } while (partend != -2); vexxptr->partnum = partnum; /* Move vertex to its destination part (TRICK: after neighbors scanned it) */ for (vexxend = listptr; vexxend != &wgraphpartfmvertexdummy; vexxend = vexxend->nlstptr) /* Move all linked neighbors to frontier */ vexxend->partnum = -1; for (vexxend = listptr; vexxend != &wgraphpartfmvertexdummy; ) { /* For each linked, unlocked neighbor */ WgraphPartFmVertex * vexxtmp; if ((vexxend->partnum == -1) && /* If vertex belongs to frontier */ (vexxend->nlokptr == NULL)) /* And is not locked, re-link it */ wgraphPartFmTablAdd (tablptr, grafptr, hashdat.hashtab, hashdat.hashmsk, &linkdat, nplstab, cplomin, cplomax, vexxend); vexxtmp = vexxend; /* Remove vertex from working list */ vexxend = vexxtmp->nlstptr; vexxtmp->nlstptr = NULL; } cplomin = (Gnum) ((float) cplosum * (1.0F - paraptr->deltrat) / (float) partnbr); /* Adjust minimum part load */ cplomax = (Gnum) ((float) cplosum * (1.0F + paraptr->deltrat) / (float) partnbr); /* Adjust minimum part load */ #ifdef SCOTCH_DEBUG_WGRAPH2 #ifdef SCOTCH_DEBUG_WGRAPH3 grafptr->fronload = frlosum; grafptr->fronnbr = fronnbr; if (wgraphPartFmCheck (grafptr, &hashdat, &savedat, cplosum) != 0) { errorPrint ("wgraphPartFm: internal error (9)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH3 */ #endif /* SCOTCH_DEBUG_WGRAPH2 */ movenbr ++; /* One more move dore */ if (pminnum == -1) { savedat.savenbr = 0; movenbr = 0; if (frlosum < frlobst) { moveflag = 1; frlobst = frlosum; } } else if (frlosum < frlobst) { savedat.savenbr = 0; movenbr = moveflag = 1; frlobst = frlosum; } else if ((frlosum == frlobst) && ((comploadtab[partnum] - comploadtab[pminnum]) < 0)) { savedat.savenbr = 0; movenbr = 0; moveflag = 1; } else if (comploadtab[partnum] < cplomin) { savedat.savenbr = 0; movenbr = 0; frlobst = frlosum; } } while (savedat.savenbr > 0) { /* Roll-back useless moves */ WgraphPartFmVertex * vexxptr; Gnum vertnum; Gnum hashnum; Gnum linknum; Anum partnum; savedat.savenbr --; switch (savedat.savetab[savedat.savenbr].typeval) { case WGRAPHPARTFMSAVEMOVE : /* Moved-back vertices will be placed in locked list for next pass (if any) */ vertnum = savedat.savetab[savedat.savenbr].u.movedat.vertnum; for (hashnum = (vertnum * WGRAPHPARTFMHASHPRIME) & hashdat.hashmsk, vexxptr = hashdat.hashtab + hashnum; /* Search for vertex in hash table */ vexxptr->vertnum != vertnum; hashnum = (hashnum + 1) & hashdat.hashmsk, vexxptr = hashdat.hashtab + hashnum) { #ifdef SCOTCH_DEBUG_WGRAPH2 if (vexxptr->vertnum == ~0) { /* If vertex not present */ errorPrint ("wgraphPartFm: internal error (10)"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ } for (linknum = vexxptr->linkidx; linknum != -1; ) { /* For all potential links of vertex (if frontier vertex) */ Gnum linktmp; if (linkdat.linktab[linknum].gainlink.tabl != NULL) /* If link was chained in gain table, remove it */ gainTablDel (tablptr, (GainLink *) &linkdat.linktab[linknum].gainlink); linktmp = linknum; linknum = linkdat.linktab[linknum].nextidx; wgraphPartFmLinkPut (&linkdat, linktmp); /* Release link from vertex */ } vexxptr->linkidx = -1; /* No more active links for vertex */ vexxptr->partnum = savedat.savetab[savedat.savenbr].u.movedat.partnum; /* Set old vertex part */ if ((vexxptr->nlokptr == NULL) && /* If vertex not already in locked list */ (vexxptr->partnum == -1)) { /* And may remain in frontier */ vexxptr->nlokptr = hashdat.lockptr; /* Link vertex to locked list */ hashdat.lockptr = vexxptr; } break; case WGRAPHPARTFMSAVELOAD : partnum = savedat.savetab[savedat.savenbr].u.loaddat.partnum; if (partnum != -1) { comploadtab[partnum] = savedat.savetab[savedat.savenbr].u.loaddat.loadval; compsizetab[partnum] = savedat.savetab[savedat.savenbr].u.loaddat.sizeval; } else { frlosum = savedat.savetab[savedat.savenbr].u.loaddat.loadval; fronnbr = savedat.savetab[savedat.savenbr].u.loaddat.sizeval; } break; } } } while ((moveflag != 0) && /* As long as vertices are moved */ (-- passnbr > 0)); /* And we are allowed to loop */ grafptr->fronload = frlosum; /* Write back frontier loads */ grafptr->fronnbr = fronnbr; #ifdef SCOTCH_DEBUG_WGRAPH2 frlosum = 0; /* Recompute frontier load sum */ #endif /* SCOTCH_DEBUG_WGRAPH2 */ for (vexxptr = hashdat.hashtab, fronnbr = 0; /* Write back part array and build new frontier from hash table */ vexxptr < hashdat.hashtab + hashdat.hashsiz; vexxptr ++) { Gnum vertnum; Anum partnum; vertnum = vexxptr->vertnum; if (vertnum == ~0) /* Skip empty slots */ continue; partnum = vexxptr->partnum; parttax[vertnum] = partnum; /* Set part from vertex slot */ if (partnum == -1) { #ifdef SCOTCH_DEBUG_WGRAPH2 frlosum += (velotax != NULL) ? velotax[vertnum] : 1; /* Recompute frontier load sum */ #endif /* SCOTCH_DEBUG_WGRAPH2 */ grafptr->frontab[fronnbr ++] = vertnum; } } #ifdef SCOTCH_DEBUG_WGRAPH2 if ((grafptr->fronnbr != fronnbr) || /* Compare with loads written back */ (grafptr->fronload != frlosum)) { errorPrint ("wgraphPartFm: internal error (11)"); goto abort; } if (wgraphCheck (grafptr) != 0) { errorPrint ("wgraphPartFm: inconsistent graph data"); goto abort; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ o = 0; /* Everything went well */ abort: memFree (savedat.savetab); memFree (linkdat.linktab); memFree (hashdat.hashtab); memFree (nplstab - 1); /* TRICK: array starts one cell before */ gainTablExit (tablptr); return (o); } /******************************************/ /* */ /* This routine checks the consistency of */ /* the internal data structures. */ /* */ /******************************************/ /* This routine checks the consistency of ** the hash structures. ** It returns: ** - 0 : in case of success. ** - !0 : in case of error. */ #ifdef SCOTCH_DEBUG_WGRAPH3 static int wgraphPartFmCheck ( const Wgraph * restrict const grafptr, const WgraphPartFmHashData * restrict const hashptr, const WgraphPartFmSaveData * restrict const saveptr, const Gnum cplosum) { Gnum vertnum; Gnum partnum; Gnum savenum; Gnum fronnbr; Gnum frlosum; Gnum cplotmp; Gnum * restrict comploadtab; Gnum * restrict compsizetab; Gnum * restrict flagtab; int o; if (memAllocGroup ((void **) (void *) &flagtab, (size_t) (grafptr->partnbr * sizeof (Gnum)), &comploadtab, (size_t) (grafptr->partnbr * sizeof (Gnum)), &compsizetab, (size_t) (grafptr->partnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("wgraphPartFmCheck: out of memory"); return (1); } o = 1; /* Assume an error */ fronnbr = frlosum = 0; memSet (comploadtab, 0, grafptr->partnbr * sizeof (Gnum)); /* Reset loads */ memSet (compsizetab, 0, grafptr->partnbr * sizeof (Gnum)); memSet (flagtab, ~0, grafptr->partnbr * sizeof (Gnum)); /* Reset flag array */ for (vertnum = grafptr->s.baseval; vertnum < grafptr->s.vertnnd; vertnum ++) { Gnum veloval; Gnum hashnum; Anum partnum; veloval = (grafptr->s.velotax != NULL) ? grafptr->s.velotax[vertnum] : 1; for (hashnum = (vertnum * WGRAPHPARTFMHASHPRIME) & hashptr->hashmsk; ; /* Find potential slot of vertex to get its part */ hashnum = (hashnum + 1) & hashptr->hashmsk) { if (hashptr->hashtab[hashnum].vertnum == vertnum) { /* If hash slot found */ partnum = hashptr->hashtab[hashnum].partnum; /* Get current part value */ break; } if (hashptr->hashtab[hashnum].vertnum == ~0) { /* If vertex not found */ partnum = grafptr->parttax[vertnum]; /* Get initial part value */ break; } } if (partnum == -1) { Gnum edgenum; frlosum += veloval; fronnbr ++; for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum hashend; Anum partend; vertend = grafptr->s.edgetax[edgenum]; for (hashend = (vertend * WGRAPHPARTFMHASHPRIME) & hashptr->hashmsk; ; /* Find potential slot of vertex to get its part */ hashend = (hashend + 1) & hashptr->hashmsk) { if (hashptr->hashtab[hashend].vertnum == vertend) { /* If hash slot found */ partend = hashptr->hashtab[hashend].partnum; /* Get current part value */ break; } if (hashptr->hashtab[hashend].vertnum == ~0) { /* If vertex not found */ partend = grafptr->parttax[vertend]; /* Get initial part value */ break; } } if ((partend != -1) && (flagtab[partend] != vertnum)) { comploadtab[partend] += veloval; compsizetab[partend] ++; flagtab[partend] = vertnum; } } } else { comploadtab[partnum] += veloval; compsizetab[partnum] ++; } } for (partnum = 0, cplotmp = 0; partnum < grafptr->partnbr; partnum ++) { if (grafptr->compsize[partnum] != compsizetab[partnum]) { errorPrint ("wgraphPartFmCheck: invalid part size array"); goto abort; } if (grafptr->compload[partnum] != comploadtab[partnum]) { errorPrint ("wgraphPartFmCheck: invalid part load array"); goto abort; } cplotmp += comploadtab[partnum]; } if (grafptr->fronload != frlosum) { errorPrint ("wgraphPartFmCheck: invalid frontier load"); goto abort; } if (grafptr->fronnbr != fronnbr) { errorPrint ("wgraphPartFmCheck: invalid frontier size"); goto abort; } if (cplotmp != cplosum) { errorPrint ("wgraphPartFmCheck: invalid part load sum"); goto abort; } if ((saveptr->savenbr < 0) || (saveptr->savenbr > saveptr->savesiz)) { errorPrint ("wgraphPartFmCheck: invalid save array contents"); goto abort; } for (savenum = 0; savenum < saveptr->savenbr; savenum ++) { WgraphPartFmVertex * vexxptr; Gnum vertnum; Gnum hashnum; switch (saveptr->savetab[savenum].typeval) { case WGRAPHPARTFMSAVEMOVE : vertnum = saveptr->savetab[savenum].u.movedat.vertnum; for (hashnum = (vertnum * WGRAPHPARTFMHASHPRIME) & hashptr->hashmsk, vexxptr = hashptr->hashtab + hashnum; /* Search for vertex in hash table */ vexxptr->vertnum != vertnum; hashnum = (hashnum + 1) & hashptr->hashmsk, vexxptr = hashptr->hashtab + hashnum) { if (vexxptr->vertnum == ~0) { errorPrint ("wgraphPartFmCheck: inconsistency in hash/save structure"); goto abort; } } break; case WGRAPHPARTFMSAVELOAD : partnum = saveptr->savetab[savenum].u.loaddat.partnum; if ((partnum < -1) || (partnum >= grafptr->partnbr)) { errorPrint ("wgraphPartFmCheck: invalid part value"); goto abort; } break; } } o = 0; /* Everything went all right */ abort : memFree (flagtab); /* Free group leader */ return (o); } #endif /* SCOTCH_DEBUG_WGRAPH3 */ /*****************************************/ /* */ /* These routines handle the link array. */ /* */ /*****************************************/ static void wgraphPartFmLinkInit ( WgraphPartFmLinkData * const ldatptr) { Gnum linknum; ldatptr->lfrenbr = ldatptr->linksiz; /* Set number of free link cells */ ldatptr->lfreidx = 0; /* First free cell is at beginning of array */ for (linknum = 0; linknum < (ldatptr->linksiz - 1); linknum ++) /* Initialize free list of links */ ldatptr->linktab[linknum].nextidx = linknum + 1; ldatptr->linktab[ldatptr->linksiz - 1].nextidx = -1; /* Set end of free list */ } /* This routine retrieves a free link slot from ** the link array. ** It returns: ** - >=0 : if slot available. ** - -1 : on error. */ static Gnum wgraphPartFmLinkGet ( WgraphPartFmLinkData * const ldatptr) { Gnum linkidx; #ifdef SCOTCH_DEBUG_WGRAPH2 if (ldatptr->lfrenbr <= 0) { errorPrint ("wgraphPartFmLinkGet: empty free list"); return (-1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ linkidx = ldatptr->lfreidx; ldatptr->lfreidx = ldatptr->linktab[linkidx].nextidx; ldatptr->lfrenbr --; return (linkidx); } /* This routine gives back a free slot to the link array. ** It returns: ** - void : in all cases. */ static void wgraphPartFmLinkPut ( WgraphPartFmLinkData * const ldatptr, const Gnum linkidx) { #ifdef SCOTCH_DEBUG_WGRAPH2 if (ldatptr->lfrenbr >= ldatptr->linksiz) { errorPrint ("wgraphPartFmLinkPut: full free list"); return; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ ldatptr->linktab[linkidx].nextidx = ldatptr->lfreidx; ldatptr->lfreidx = linkidx; ldatptr->lfrenbr ++; } /* This routine increases the size of the ** link array. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int wgraphPartFmLinkResize ( WgraphPartFmLinkData * const ldatptr, GainTabl * restrict const tablptr) { WgraphPartFmLink * linktab; /* Pointer to reallocated array */ Gnum linksiz; /* Size of reallocated array */ Gnum linknum; ptrdiff_t addrdlt; linksiz = ldatptr->linksiz; /* Increase array size by 25% */ linksiz += (linksiz >> 2) + 4; if ((linktab = (WgraphPartFmLink *) memRealloc (ldatptr->linktab, linksiz * sizeof (WgraphPartFmLink))) == NULL) { errorPrint ("wgraphPartFmLinkResize: out of memory"); return (1); } addrdlt = (byte *) linktab - (byte *) ldatptr->linktab; if (addrdlt != 0) /* If array changed of location */ gainTablMove (tablptr, addrdlt); /* Skew gain table pointers into link table */ for (linknum = ldatptr->linksiz; linknum < (linksiz - 1); linknum ++) /* Initialize new free list of links */ linktab[linknum].nextidx = linknum + 1; linktab[linksiz - 1].nextidx = ldatptr->lfreidx; /* Chain last free cell to preexisting free cells */ ldatptr->lfreidx = ldatptr->linksiz; ldatptr->lfrenbr += linksiz - ldatptr->linksiz; ldatptr->linksiz = linksiz; ldatptr->linktab = linktab; return (0); } /*****************************************/ /* */ /* These routines handle the save array. */ /* */ /*****************************************/ /* This routine increases the size of the save array. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int wgraphPartFmSaveResize ( WgraphPartFmSaveData * const sdatptr) { WgraphPartFmSave * savetab; /* Pointer to reallocated array */ Gnum savesiz; /* Size of reallocated array */ savesiz = sdatptr->savesiz; /* Increase array size by 25% */ savesiz += (savesiz >> 2) + 4; if ((savetab = (WgraphPartFmSave *) memRealloc (sdatptr->savetab, savesiz * sizeof (WgraphPartFmSave))) == NULL) { errorPrint ("wgraphPartFmSaveResize: out of memory"); return (1); } sdatptr->savetab = savetab; sdatptr->savesiz = savesiz; return (0); } /*****************************************/ /* */ /* These routines handle the hash array. */ /* */ /*****************************************/ /* This routine doubles the size all of the arrays ** involved in handling the hash table and hash ** vertex arrays. ** It returns: ** - 0 : if resizing succeeded. ** - !0 : if out of memory. */ static int wgraphPartFmHashResize ( WgraphPartFmHashData * restrict const hdatptr) /*+ Pointer to hash data structure +*/ { WgraphPartFmVertex * hashtab; Gnum hashsiz; Gnum hashmsk; Gnum hashnum; WgraphPartFmVertex * hasoptr; WgraphPartFmVertex * lockptr; /* Pointer to new locked list */ hashsiz = hdatptr->hashsiz * 2; /* Double hash array size compared to current one */ if ((hashtab = memAlloc (hashsiz * sizeof (WgraphPartFmVertex))) == NULL) { errorPrint ("wgraphPartFmHashResize: out of memory"); return (1); } for (hashnum = 0; hashnum < hashsiz; hashnum ++) /* Initialize new hash table */ hashtab[hashnum].vertnum = ~0; hashmsk = hashsiz - 1; /* New hash mask */ lockptr = &wgraphpartfmvertexdummy; /* No vertex in locked list yet */ for (hasoptr = hdatptr->hashtab; hasoptr < hdatptr->hashtab + hdatptr->hashsiz; hasoptr ++) { /* For all old hash slots */ WgraphPartFmVertex * hasnptr; /* Pointer to new hash slot */ Gnum vertnum; vertnum = hasoptr->vertnum; /* Get vertex number in old slot */ if (vertnum == ~0) /* If old hash slot empty, skip it */ continue; for (hashnum = (vertnum * WGRAPHPARTFMHASHPRIME) & hashmsk, hasnptr = hashtab + hashnum; /* Find a proper slot */ hasnptr->vertnum != ~0; hashnum = (hashnum + 1) & hashmsk, hasnptr = hashtab + hashnum) { #ifdef SCOTCH_DEBUG_WGRAPH2 if (hasnptr->vertnum == vertnum) { /* Item should not already be present */ errorPrint ("wgraphPartFmHashResize: duplicate hash slot"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ } hasnptr->vertnum = vertnum; /* Fill new hash slot */ hasnptr->partnum = hasoptr->partnum; hasnptr->linkidx = hasoptr->linkidx; if (hasoptr->nlokptr == NULL) /* If vertex is not locked */ hasnptr->nlokptr = NULL; else { /* Else add it to new locked list */ hasnptr->nlokptr = lockptr; lockptr = hasnptr; } hasnptr->nlstptr = NULL; /* Vertices not linked when resizing */ } memFree (hdatptr->hashtab); /* Free old hash array */ hdatptr->hashtab = hashtab; hdatptr->hashsiz = hashsiz; hdatptr->hashmax = hashsiz / 4; hdatptr->hashmsk = hashsiz - 1; hdatptr->lockptr = lockptr; return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_fm.h000066400000000000000000000227271514310134000271000ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2018,2020,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_fm.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the improved Fiduccia-Mattheyses **/ /** refinement routine for the vertex over- **/ /** lapped graph partitioning. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 30 jul 2020 **/ /** to : 04 apr 2021 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Gain table subbits. +*/ #define WGRAPHPARTFMGAINBITS 4 /*+ Prime number for hashing vertex numbers. +*/ #define WGRAPHPARTFMHASHPRIME 17 /*+ Prime number for hashing +*/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct WgraphPartFmParam_ { INT movenbr; /*+ Maximum number of uneffective moves that can be done +*/ INT passnbr; /*+ Number of passes to be performed (-1: infinite) +*/ double deltrat; /*+ Maximum weight imbalance ratio +*/ } WgraphPartFmParam; /*+ The part list structure, to record used neighboring parts. +*/ typedef struct WgraphPartFmPartList_ { Anum nextidx; /*+ Pointer to next cell in neighbor linked list +*/ Gnum loadgainval; /*+ Load gain value +*/ Gnum sizegainval; /*+ Size gain value +*/ Gnum vechnum; /*+ End vertex that will change load of this part +*/ Gnum vencnum; /*+ End vertex that will not change load of this part +*/ } WgraphPartFmPartList; /*+ The vertex hash slot. +*/ typedef struct WgraphPartFmVertex_ { Gnum vertnum; /*+ Number of vertex in hash table +*/ Anum partnum; /*+ Current vertex part +*/ Gnum linkidx; /*+ Start index of list of links to target parts +*/ struct WgraphPartFmVertex_ * nlokptr; /*+ Pointer to next vertex in locked list +*/ struct WgraphPartFmVertex_ * nlstptr; /*+ Pointer to next vertex in working list +*/ } WgraphPartFmVertex; /*+ The vertex hash management structure. +*/ typedef struct WgraphPartFmHashData_ { WgraphPartFmVertex * hashtab; /*+ Pointer to hash array +*/ Gnum hashsiz; /*+ Size of hash array +*/ Gnum hashmax; /*+ Maximum capacity of hash table +*/ Gnum hashmsk; /*+ Mask for hash accesses +*/ Gnum hashnbr; /*+ Number of used hash slots +*/ WgraphPartFmVertex * lockptr; /*+ List of locked vertices +*/ } WgraphPartFmHashData; /*+ The vertex link structure. +*/ typedef struct WgraphPartFmLink_ { GainLink gainlink; /*+ Gain link: FIRST +*/ Gnum nextidx; /*+ Index of next link for vertex +*/ Gnum partnum; /*+ Part to whick the linked vertex should move +*/ Gnum vertnum; /*+ Number of vertex to which link belongs +*/ Gnum gainval; /*+ Gain value for frontier +*/ Anum npmipartnum; /*+ Number of lightest neighboring part to be impacted +*/ } WgraphPartFmLink; /*+ The vertex link management structure. +*/ typedef struct WgraphPartFmLinkData_ { WgraphPartFmLink * restrict linktab; /*+ Pointer to link array +*/ Gnum linksiz; /*+ Size of link array +*/ Gnum lfrenbr; /*+ Current number of free links +*/ Gnum lfreidx; /*+ Index of first free cell; -1 if none +*/ } WgraphPartFmLinkData; /*+ The save type identifier. +*/ typedef enum WgraphPartFmSaveType_ { WGRAPHPARTFMSAVEMOVE, /*+ Vertex part change +*/ WGRAPHPARTFMSAVELOAD /*+ Part load change +*/ } WgraphPartFmSaveType; /*+ The save type: records either vertex moves or part loads updates. +*/ typedef struct WgraphPartFmSave_ { WgraphPartFmSaveType typeval; /*+ Type of save slot +*/ union { struct { Gnum vertnum; /*+ Vertex number +*/ Gnum partnum; /*+ Old vertex part value +*/ } movedat; struct { Gnum partnum; /*+ Part number +*/ Gnum loadval; /*+ Old load value +*/ Gnum sizeval; /*+ Old size value +*/ } loaddat; } u; } WgraphPartFmSave; /*+ The save array management structure. +*/ typedef struct WgraphPartFmSaveData_ { WgraphPartFmSave * restrict savetab; /*+ Pointer to save array +*/ Gnum savesiz; /*+ Size of save array +*/ Gnum savenbr; /*+ Current number of free cells +*/ } WgraphPartFmSaveData; /* ** The function prototypes. */ #ifdef SCOTCH_WGRAPH_PART_FM static int wgraphPartFmHashResize (WgraphPartFmHashData * const); static void wgraphPartFmLinkInit (WgraphPartFmLinkData * const); static Gnum wgraphPartFmLinkGet (WgraphPartFmLinkData * const); static void wgraphPartFmLinkPut (WgraphPartFmLinkData * const, const Gnum); static int wgraphPartFmLinkResize (WgraphPartFmLinkData * const, GainTabl * const); static int wgraphPartFmSaveResize (WgraphPartFmSaveData * const); #ifdef SCOTCH_DEBUG_WGRAPH3 static int wgraphPartFmCheck (const Wgraph * restrict const, const WgraphPartFmHashData * restrict const, const WgraphPartFmSaveData * restrict const, const Gnum); #endif /* SCOTCH_DEBUG_WGRAPH3 */ #endif /* SCOTCH_WGRAPH_PART_FM */ int wgraphPartFm (Wgraph * restrict const, const WgraphPartFmParam * restrict const); /* ** The macro definitions. */ #define wgraphPartFmHashClaim(hdatptr,vertnbr) ((hdatptr)->hashmax < ((hdatptr)->hashnbr + (vertnbr))) #define wgraphPartFmLinkClaim(ldatptr,linknbr) ((ldatptr)->lfrenbr < (linknbr)) #define wgraphPartFmSaveInit(sdatptr) (sdatptr)->savenbr = 0 #define wgraphPartFmSaveClaim(sdatptr,savvnbr) (((sdatptr)->savesiz - (sdatptr)->savenbr) < (savvnbr)) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_ml.c000066400000000000000000000324431514310134000270750ustar00rootroot00000000000000/* Copyright 2007-2011,2014,2015,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_ml.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Francois PELLEGRINI **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : This module conducts multilevel framew- **/ /** ork for the vertex overlapped graph pa- **/ /** rtitioning. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 16 aug 2015 **/ /** # Version 7.0 : from : 23 aug 2019 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_WGRAPH_PART_ML #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "wgraph.h" #include "wgraph_part_ml.h" #include "wgraph_part_st.h" /* ** The static variables. */ static const Gnum wgraphpartmlloadone = 1; /*********************************************/ /* */ /* The coarsening and uncoarsening routines. */ /* */ /*********************************************/ /* This routine builds a coarser graph from the ** graph that is given on input. The coarser ** graphs differ at this stage from classical ** active graphs as their internal gains are not ** yet computed. ** It returns: ** - 0 : if the coarse graph has been built. ** - 1 : if threshold achieved or on error. */ static int wgraphPartMlCoarsen ( const Wgraph * restrict const finegrafptr, /*+ Finer graph +*/ Wgraph * restrict const coargrafptr, /*+ Coarser graph to build +*/ GraphCoarsenMulti * restrict * const coarmultptr, /*+ Pointer to un-based multinode table to build +*/ const WgraphPartMlParam * const paraptr) /*+ Method parameters +*/ { *coarmultptr = NULL; /* Allocate coarmulttab along with coarse graph */ if (graphCoarsen (&finegrafptr->s, &coargrafptr->s, NULL, coarmultptr, (paraptr->coarnbr * finegrafptr->partnbr), paraptr->coarval, GRAPHCOARSENNONE, NULL, NULL, 0, finegrafptr->contptr) != 0) return (1); /* Return if coarsening failed */ coargrafptr->parttax = NULL; /* Do not allocate partition data yet */ coargrafptr->compload = NULL; coargrafptr->partnbr = finegrafptr->partnbr; coargrafptr->levlnum = finegrafptr->levlnum + 1; /* Graph level is coarsening level */ coargrafptr->contptr = finegrafptr->contptr; return (0); } /* This routine propagates the separation of the ** coarser graph back to the finer graph, according ** to the multinode table of collapsed vertices. ** After the separation is propagated, it finishes ** to compute the parameters of the finer graph that ** were not computed at the coarsening stage. ** It returns: ** - 0 : if coarse graph data has been propagated to fine graph. ** - !0 : on error. */ static int wgraphPartMlUncoarsen ( Wgraph * restrict const finegrafptr, /*+ Finer graph +*/ const Wgraph * restrict const coargrafptr, /*+ Coarser graph +*/ const GraphCoarsenMulti * restrict const coarmulttab) /*+ Un-based multinode array +*/ { Gnum coarvertnbr; Gnum coarvertnum; /* Number of current coarse vertex */ const Anum * restrict coarparttab; Anum * restrict fineparttax; Gnum * restrict finefrontab; Gnum finefronnbr; /* Number of frontier vertices in fine graph */ Gnum finevertnum; WgraphPartList * restrict finelisttab; Gnum finevelomsk; const Gnum * restrict finevelobax; /* Data for handling of optional arrays */ Gnum * restrict finecompload; Gnum * restrict finecompsize; const Gnum * restrict const fineverttax = finegrafptr->s.verttax; const Gnum * restrict const finevendtax = finegrafptr->s.vendtax; const Gnum * restrict const fineedgetax = finegrafptr->s.edgetax; if ((finegrafptr->levlnum > 0) && /* If partition data not yet allocated */ (wgraphAlloc (finegrafptr) != 0)) { /* Allocate tables before processing */ errorPrint ("wgraphPartMlUncoarsen: out of memory (1)"); return (1); } if (coargrafptr == NULL) { /* If no coarse graph provided */ wgraphZero (finegrafptr); return (0); } finecompload = finegrafptr->compload; finecompsize = finegrafptr->compsize; if ((finelisttab = (WgraphPartList *) memAlloc ((finegrafptr->partnbr + 1) * sizeof (WgraphPartList))) == NULL) { /* TRICK: "+1" to create slot for a "-1" index */ errorPrint ("wgraphPartMlUncoarsen: out of memory (2)"); return (1); } finelisttab ++; /* TRICK: trim array so that finelisttab[-1] is valid */ memSet (finelisttab, ~0, finegrafptr->partnbr * sizeof (WgraphPartList)); /* Set vertex indices to ~0 */ memSet (finecompload, 0, finegrafptr->partnbr * sizeof (Gnum)); /* Reset load arrays to 0 */ memSet (finecompsize, 0, finegrafptr->partnbr * sizeof (Gnum)); if (finegrafptr->s.velotax == NULL) { /* Set accesses to optional arrays */ finevelobax = &wgraphpartmlloadone; /* In case vertices not weighted */ finevelomsk = 0; } else { finevelobax = finegrafptr->s.velotax; finevelomsk = ~((Gnum) 0); } finefronnbr = 0; finefrontab = finegrafptr->frontab; fineparttax = finegrafptr->parttax; coarparttab = coargrafptr->parttax + coargrafptr->s.baseval; for (coarvertnum = 0, coarvertnbr = coargrafptr->s.vertnbr; coarvertnum < coarvertnbr; coarvertnum ++) { Anum coarpartval; /* Value of current multinode part */ Gnum finevertnum0; Gnum finevertnum1; coarpartval = coarparttab[coarvertnum]; finevertnum0 = coarmulttab[coarvertnum].vertnum[0]; finevertnum1 = coarmulttab[coarvertnum].vertnum[1]; fineparttax[finevertnum0] = coarpartval; if (coarpartval >= 0) { /* If vertex is not in separator */ if (finevertnum0 != finevertnum1) fineparttax[finevertnum1] = coarpartval; } else { /* Vertex is in separator */ finefrontab[finefronnbr ++] = finevertnum0; if (finevertnum0 != finevertnum1) { fineparttax[finevertnum1] = coarpartval; finefrontab[finefronnbr ++] = finevertnum1; /* One extra vertex in separator */ } } } finegrafptr->fronnbr = finefronnbr; finegrafptr->fronload = coargrafptr->fronload; for (finevertnum = finegrafptr->s.baseval; finevertnum < finegrafptr->s.vertnnd; finevertnum ++) { Anum finepartval; finepartval = fineparttax[finevertnum]; if (finepartval >= 0) { finecompload[finepartval] += finevelobax[finevertnum & finevelomsk]; finecompsize[finepartval] ++; } else { /* Fine vertex is in separator */ Gnum finelistidx; /* Index of first neighbor part */ Gnum fineedgenum; Gnum fineveloval; finelistidx = -1; /* No neighboring parts recorded yet */ finelisttab[-1].vertnum = finevertnum; /* Separator neighbors will not be considered */ for (fineedgenum = fineverttax[finevertnum]; fineedgenum < finevendtax[finevertnum]; fineedgenum ++) { /* Compute gain */ Gnum finevertend; Anum finepartend; finevertend = fineedgetax[fineedgenum]; finepartend = fineparttax[finevertend]; if (finelisttab[finepartend].vertnum != finevertnum) { /* If part not yet considered */ finelisttab[finepartend].vertnum = finevertnum; /* Link it in list of neighbors */ finelisttab[finepartend].nextidx = finelistidx; finelistidx = finepartend; } } fineveloval = finevelobax[finevertnum & finevelomsk]; while (finelistidx != -1) { /* For all neighboring parts found */ finecompload[finelistidx] += fineveloval; /* Add load of separator vertex to part */ finecompsize[finelistidx] ++; finelistidx = finelisttab[finelistidx].nextidx; } } } memFree (finelisttab - 1); /* TRICK: free array using its real beginning */ #ifdef SCOTCH_DEBUG_WGRAPH2 if (wgraphCheck (finegrafptr) != 0) { errorPrint ("wgraphPartMlUncoarsen: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ return (0); } /* This routine recursively performs the partitioning. ** It returns: ** - 0 : if separator could be computed. ** - !0 : on error. */ static int wgraphPartMl2 ( Wgraph * restrict const grafptr, const WgraphPartMlParam * const paraptr) { Wgraph coargrafdat; GraphCoarsenMulti * restrict coarmulttab; int o; if (wgraphPartMlCoarsen (grafptr, &coargrafdat, &coarmulttab, paraptr) == 0) { if (((o = wgraphPartMl2 (&coargrafdat, paraptr)) == 0) && ((o = wgraphPartMlUncoarsen (grafptr, &coargrafdat, coarmulttab)) == 0) && ((o = wgraphPartSt (grafptr, paraptr->stratasc)) != 0)) /* Apply ascending strategy */ errorPrint ("wgraphPartMl2: cannot apply ascending strategy"); wgraphExit (&coargrafdat); } else { /* Cannot coarsen due to lack of memory or error */ if (((o = wgraphPartMlUncoarsen (grafptr, NULL, NULL)) == 0) && /* Finalize graph */ ((o = wgraphPartSt (grafptr, paraptr->stratlow)) != 0)) /* Apply low strategy */ errorPrint ("wgraphPartMl2: cannot apply low strategy"); } return (o); } /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine performs the muti-level separation. ** It returns: ** - 0 : if separator could be computed. ** - 1 : on error. */ int wgraphPartMl ( Wgraph * const wgrafptr, /*+ Vertex-separation graph +*/ const WgraphPartMlParam * const paraptr) /*+ Method parameters +*/ { Gnum levlnum; /* Save value for graph level */ int o; levlnum = wgrafptr->levlnum; /* Save graph level */ wgrafptr->levlnum = 0; /* Initialize coarsening level */ o = wgraphPartMl2 (wgrafptr, paraptr); /* Perform multi-level separation */ wgrafptr->levlnum = levlnum; /* Restore graph level */ return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_ml.h000066400000000000000000000076271514310134000271100ustar00rootroot00000000000000/* Copyright 2007-2011,2018,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_ml.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** multilevel framework for the vertex **/ /** overlapped graph partitioning. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct WgraphPartMlParam_ { INT coarnbr; /*+ Minimum number of vertices per part +*/ double coarval; /*+ Coarsening ratio +*/ Strat * stratlow; /*+ Strategy at lowest level +*/ Strat * stratasc; /*+ Strategy at ascending levels +*/ } WgraphPartMlParam; /* ** The function prototypes. */ #ifdef SCOTCH_WGRAPH_PART_ML static int wgraphPartMlCoarsen (const Wgraph * const, Wgraph * const, GraphCoarsenMulti * restrict * const, const WgraphPartMlParam * const); static int wgraphPartMlUncoarsen (Wgraph * const, const Wgraph * const, const GraphCoarsenMulti * restrict const); static int wgraphPartMl2 (Wgraph * const, const WgraphPartMlParam * const); #endif /* SCOTCH_WGRAPH_PART_ML */ int wgraphPartMl (Wgraph * const, const WgraphPartMlParam * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_rb.c000066400000000000000000000465021514310134000270710ustar00rootroot00000000000000/* Copyright 2010,2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_rb.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : This module performs the vertex overla- **/ /** pped graph partitioning based on recur- **/ /** sive bipartitioning approach. **/ /** **/ /** DATES : # Version 6.0 : from : 16 mar 2010 **/ /** to : 26 feb 2018 **/ /** # Version 6.1 : from : 01 nov 2021 **/ /** to : 25 nov 2021 **/ /** # Version 7.0 : from : 23 aug 2019 **/ /** to : 17 jan 2023 **/ /** **/ /** NOTES : # This code originally derived from **/ /** the code of kgraph_map_rb_part.c, **/ /** which was then adapted for vertex **/ /** overlapped graph partitioning. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "vgraph_separate_zr.h" #include "wgraph.h" #include "wgraph_part_rb.h" /***********************************/ /* */ /* Recursion management routines. */ /* */ /***********************************/ /* This routine propagates the local frontier ** array to the global frontier array. ** It returns: ** - void : in all cases. */ static void wgraphPartRb3Fron ( WgraphPartRbData * restrict const dataptr, /* Top-level graph and partition data */ const Graph * restrict const orggrafptr, /* Graph to induce and bipartition */ const Gnum * restrict const orgfrontab, /* Frontier array of original graph */ const Gnum orgfronnbr) /* Part of graph to consider */ { Gnum fronnbr; Gnum fronnum; const Gnum * restrict const orgvnumtax = orggrafptr->vnumtax; Gnum * restrict const frontab = dataptr->frontab; #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&dataptr->mutedat); /* Lock frontier mutex */ #endif /* SCOTCH_PTHREAD */ fronnbr = dataptr->fronnbr; /* Get position where to insert frontier */ dataptr->fronnbr = fronnbr + orgfronnbr; /* Update current frontier end position */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&dataptr->mutedat); /* Unlock frontier mutex */ #endif /* SCOTCH_PTHREAD */ if (orgvnumtax == NULL) /* If original graph is not itself a subgraph */ memCpy (frontab + fronnbr, orgfrontab, orgfronnbr * sizeof (Gnum)); /* Directly copy array */ else { /* Original graph is a subgraph */ for (fronnum = 0; fronnum < orgfronnbr; fronnum ++, fronnbr ++) frontab[fronnbr] = orgvnumtax[orgfrontab[fronnum]]; } } /* This routine propagates the local frontier ** array to the global frontier array, and sets ** the separator part array. ** It returns: ** - void : in all cases. */ static void wgraphPartRb3SepFron ( WgraphPartRbData * restrict const dataptr, /* Top-level graph and partition data */ const Graph * restrict const orggrafptr, /* Graph to induce and bipartition */ const Gnum * restrict const orgfrontab, /* Frontier array of original graph */ const Gnum orgfronnbr) /* Part of graph to consider */ { Gnum fronnbr; Gnum fronnum; const Gnum * restrict const orgvnumtax = orggrafptr->vnumtax; Anum * restrict const parttax = dataptr->parttax; Gnum * restrict const frontab = dataptr->frontab; #ifdef SCOTCH_DEBUG_WGRAPH2 if (orgfrontab == NULL) { /* Part array must exist */ errorPrint ("wgraphPartRb3SepFron: invalid parameters"); return; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&dataptr->mutedat); /* Lock frontier mutex */ #endif /* SCOTCH_PTHREAD */ fronnbr = dataptr->fronnbr; /* Get position where to insert frontier */ dataptr->fronnbr = fronnbr + orgfronnbr; /* Update current frontier end position */ #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&dataptr->mutedat); /* Unlock frontier mutex */ #endif /* SCOTCH_PTHREAD */ if (orgvnumtax == NULL) { /* If original graph is not itself a subgraph */ for (fronnum = 0; fronnum < orgfronnbr; fronnum ++, fronnbr ++) { Gnum vertnum; vertnum = orgfrontab[fronnum]; frontab[fronnbr] = vertnum; parttax[vertnum] = -1; } } else { /* Original graph is a subgraph */ for (fronnum = 0; fronnum < orgfronnbr; fronnum ++, fronnbr ++) { Gnum vertnum; vertnum = orgvnumtax[orgfrontab[fronnum]]; frontab[fronnbr] = vertnum; parttax[vertnum] = -1; } } } /* This routine fills the global part array ** with part data from the given part and ** its separator. ** It returns: ** - void : in all cases. */ static void wgraphPartRb3One ( WgraphPartRbData * restrict const dataptr, /* Top-level graph and partition data */ const Graph * restrict const orggrafptr, /* Graph to induce and bipartition */ const GraphPart * restrict const orgparttax, /* Part array of original graph */ const int indpartval, /* Part value to consider */ const Anum inddomnnum) /* Domain onto which to map the part */ { Anum indparttmp; /* Part value to exclude */ Gnum vertnum; const Gnum * restrict const orgvnumtax = orggrafptr->vnumtax; Anum * restrict const parttax = dataptr->parttax; #ifdef SCOTCH_DEBUG_WGRAPH2 if (orgparttax == NULL) { /* Graph can never be a full graph */ errorPrint ("wgraphPartRb3One: invalid parameters"); return; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ indparttmp = 1 - indpartval; /* Part to exclude from update */ if (orgvnumtax == NULL) { /* If original graph is not itself a subgraph */ for (vertnum = orggrafptr->baseval; vertnum < orggrafptr->vertnnd; vertnum ++) { GraphPart orgpartval; orgpartval = orgparttax[vertnum]; if (orgpartval != indparttmp) /* If vertex belongs to the right part or the separator */ parttax[vertnum] = (orgpartval == indpartval) ? inddomnnum : -1; } } else { for (vertnum = orggrafptr->baseval; vertnum < orggrafptr->vertnnd; vertnum ++) { GraphPart orgpartval; orgpartval = orgparttax[vertnum]; if (orgpartval != indparttmp) /* If vertex belongs to the right part or the separator */ parttax[orgvnumtax[vertnum]] = (orgpartval == indpartval) ? inddomnnum : -1; } } } /* This routine fills the global part array ** with part data from both parts and ** their separator. ** It returns: ** - void : in all cases. */ static void wgraphPartRb3Both ( WgraphPartRbData * restrict const dataptr, /* Top-level graph and partition data */ const Graph * restrict const orggrafptr, /* Graph to induce and bipartition */ const GraphPart * restrict const orgparttax, /* Part array of original graph */ const Anum inddomnnum) /* Part of graph to consider */ { Gnum vertnum; const Gnum * restrict const orgvnumtax = orggrafptr->vnumtax; Anum * restrict const parttax = dataptr->parttax; #ifdef SCOTCH_DEBUG_WGRAPH2 if (orgparttax == NULL) { /* Part array must exist */ errorPrint ("wgraphPartRb3Both: invalid parameters"); return; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ if (orgvnumtax == NULL) { /* If original graph is not itself a subgraph */ for (vertnum = orggrafptr->baseval; vertnum < orggrafptr->vertnnd; vertnum ++) { GraphPart orgpartval; orgpartval = orgparttax[vertnum]; parttax[vertnum] = (orgpartval < 2) ? (inddomnnum + (Anum) orgpartval) : -1; } } else { for (vertnum = orggrafptr->baseval; vertnum < orggrafptr->vertnnd; vertnum ++) { GraphPart orgpartval; orgpartval = orgparttax[vertnum]; parttax[orgvnumtax[vertnum]] = (orgpartval < 2) ? (inddomnnum + (Anum) orgpartval) : -1; } } } /* This routine is the recursive vertex ** bipartitioning core routine. ** It returns: ** - 0 : on success. ** - !0 : on error. */ static void wgraphPartRb2 ( Context * restrict const contptr, /*+ (Sub-)context +*/ const int spltnum, /*+ Rank of sub-context in initial context +*/ const WgraphPartRbSplit * const spltptr) { Vgraph actgrafdat; WgraphPartRbSplit spltdat; int partval; int o; WgraphPartRbData * restrict const dataptr = spltptr->dataptr; const Graph * restrict const orggrafptr = spltptr->grafptr; /* Graph to induce and bipartition */ const Gnum * restrict const orgfrontab = spltptr->frontab; /* Graph frontier array */ const Gnum orgfronnbr = spltptr->fronnbr; /* Number of frontier vertices */ const GraphPart * restrict const orgparttax = spltptr->parttax; /* Part array of original graph to consider */ const GraphPart indpartval = (GraphPart) spltnum; /* Part of graph to consider */ const int indvertnbr = spltptr->splttab[spltnum].vertnbr; /* Number of vertices in part or graph */ const Anum inddomnnum = spltptr->splttab[spltnum].domnnum; /* Initial domain number to map */ const Anum inddomnsiz = spltptr->splttab[spltnum].domnsiz; /* Number of domains to map */ if (indpartval == 0) { /* If in small branch of the recursion; TRICK: never at first call */ if (inddomnsiz <= 1) { /* If target domain is terminal */ wgraphPartRb3Fron (dataptr, orggrafptr, orgfrontab, orgfronnbr); /* Copy previous frontier to global frontier array */ wgraphPartRb3One (dataptr, orggrafptr, orgparttax, indpartval, inddomnnum); /* Update mapping and return */ return; } wgraphPartRb3SepFron (dataptr, orggrafptr, orgfrontab, orgfronnbr); /* Copy previous frontier to global frontier array and update separator */ } if (orgparttax == NULL) { /* If working graph is original graph */ actgrafdat.s = *orggrafptr; /* Clone original graph data */ actgrafdat.s.flagval &= ~GRAPHFREETABS; /* Nothing to be freed (yet) */ actgrafdat.s.vlbltax = NULL; /* Vertex labels are no use */ } else { /* If not the case, build induced subgraph */ if (graphInducePart (orggrafptr, orgparttax, indvertnbr, indpartval, &actgrafdat.s) != 0) { errorPrint ("wgraphPartRb2: cannot induce graph"); goto abort; } } if (memAllocGroup ((void **) (void *) &actgrafdat.parttax, (size_t) (actgrafdat.s.vertnbr * sizeof (GraphPart)), &actgrafdat.frontab, (size_t) (actgrafdat.s.vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("wgraphPartRb2: out of memory"); graphExit (&actgrafdat.s); goto abort; } actgrafdat.parttax -= actgrafdat.s.baseval; actgrafdat.s.flagval |= VGRAPHFREEPART; /* Free group leader */ actgrafdat.levlnum = 0; /* Initial level */ actgrafdat.contptr = contptr; /* Use current context */ actgrafdat.dwgttab[0] = inddomnsiz / 2; /* Compute relative weights of subdomains to compute */ actgrafdat.dwgttab[1] = inddomnsiz - actgrafdat.dwgttab[0]; vgraphZero (&actgrafdat); if (vgraphSeparateSt (&actgrafdat, dataptr->straptr) != 0) { /* Perform bipartitioning */ errorPrint ("wgraphPartRb2: cannot bipartition graph"); vgraphExit (&actgrafdat); goto abort; } if (inddomnsiz <= 2) { /* If end of recursion, set both parts and separator */ wgraphPartRb3Fron (dataptr, &actgrafdat.s, actgrafdat.frontab, actgrafdat.fronnbr); wgraphPartRb3Both (dataptr, &actgrafdat.s, actgrafdat.parttax, inddomnnum); vgraphExit (&actgrafdat); return; } o = 0; /* Assume that everything will go well */ spltdat.splttab[0].domnnum = inddomnnum; spltdat.splttab[0].domnsiz = inddomnsiz / 2; /* Compute median values */ spltdat.splttab[1].domnnum = inddomnnum + spltdat.splttab[0].domnsiz; spltdat.splttab[1].domnsiz = inddomnsiz - spltdat.splttab[0].domnsiz; spltdat.dataptr = dataptr; /* Refer to global data */ spltdat.grafptr = &actgrafdat.s; spltdat.revaptr = &o; if ((partval = 1, actgrafdat.compsize[0] <= 0) || /* If a subpart is empty, run on other part (without considering separator vertices) */ (partval = 0, actgrafdat.compsize[1] <= 0)) { spltdat.splttab[1].vertnbr = actgrafdat.s.vertnbr; /* TRICK: use fake part 1 for calling */ spltdat.splttab[1].domnnum = spltdat.splttab[partval].domnnum; spltdat.splttab[1].domnsiz = spltdat.splttab[partval].domnsiz; spltdat.frontab = NULL; /* No separator vertices, even if they were some */ spltdat.fronnbr = 0; spltdat.parttax = NULL; wgraphPartRb2 (contptr, partval, &spltdat); vgraphExit (&actgrafdat); if (o != 0) goto abort; return; } spltdat.splttab[0].vertnbr = actgrafdat.compsize[0]; spltdat.splttab[1].vertnbr = actgrafdat.compsize[1]; spltdat.frontab = actgrafdat.frontab; spltdat.fronnbr = actgrafdat.fronnbr; spltdat.parttax = actgrafdat.parttax; #ifndef WGRAPHPARTRBNOTHREAD if (contextThreadLaunchSplit (contptr, (ContextSplitFunc) wgraphPartRb2, &spltdat) != 0) /* If counld not split context to run concurrently */ #endif /* WGRAPHPARTRBNOTHREAD */ { wgraphPartRb2 (contptr, 0, &spltdat); /* Run tasks in sequence */ if (o == 0) wgraphPartRb2 (contptr, 1, &spltdat); } vgraphExit (&actgrafdat); if (o == 0) /* If no error detected, return directly */ return; abort: #ifdef SCOTCH_PTHREAD pthread_mutex_lock (&dataptr->mutedat); #endif /* SCOTCH_PTHREAD */ *spltptr->revaptr = 1; #ifdef SCOTCH_PTHREAD pthread_mutex_unlock (&dataptr->mutedat); #endif /* SCOTCH_PTHREAD */ } /*********************************************/ /* */ /* This is the entry point for vertex */ /* overlapped graph partitioning based on */ /* on the recursive bipartitioning approach. */ /* */ /*********************************************/ int wgraphPartRb ( Wgraph * restrict const grafptr, const WgraphPartRbParam * restrict const paraptr) { WgraphPartRbData datadat; WgraphPartRbSplit spltdat; int o; if (grafptr->partnbr <= 1) { /* If only one part needed */ wgraphZero (grafptr); /* All vertices set to part 0 */ return (0); } datadat.grafptr = &grafptr->s; /* Start with full graph */ datadat.parttax = grafptr->parttax; /* Take part array */ datadat.frontab = grafptr->frontab; /* Take frontier array */ datadat.fronnbr = 0; /* No frontier vertices yet */ datadat.straptr = paraptr->straptr; spltdat.splttab[1].vertnbr = grafptr->s.vertnbr; /* TRICK: initial fake part is 1 */ spltdat.splttab[1].domnnum = 0; spltdat.splttab[1].domnsiz = grafptr->partnbr; spltdat.dataptr = &datadat; /* Refer to global data */ spltdat.grafptr = &grafptr->s; spltdat.frontab = NULL; spltdat.fronnbr = 0; spltdat.parttax = NULL; spltdat.revaptr = &o; o = 0; /* Assume everything will go well */ #ifdef SCOTCH_PTHREAD pthread_mutex_init (&datadat.mutedat, NULL); /* Create mutex for global frontier and return values */ #endif /* SCOTCH_PTHREAD */ wgraphPartRb2 (grafptr->contptr, 1, &spltdat); #ifdef SCOTCH_PTHREAD pthread_mutex_destroy (&datadat.mutedat); #endif /* SCOTCH_PTHREAD */ if (o != 0) { errorPrint ("wgraphPartRb: cound not perform recursion"); return (1); } grafptr->fronnbr = datadat.fronnbr; /* Set overall number of frontier vertices */ if (wgraphCost (grafptr) != 0) { errorPrint ("wgraphPartRb: could not compute partition cost"); return (1); } #ifdef SCOTCH_DEBUG_WGRAPH2 if (wgraphCheck (grafptr) != 0) { errorPrint ("wgraphPartRb: inconsistent graph data"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_rb.h000066400000000000000000000123561514310134000270760ustar00rootroot00000000000000/* Copyright 2010,2018,2019,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_rb.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Jun-Ho HER (v6.0) **/ /** **/ /** FUNCTION : These lines are the data declaration **/ /** for the vertex overlapped graph partit- **/ /** ioning based on recursive bipartitioni- **/ /** ng approach. **/ /** **/ /** DATES : # Version 6.0 : from : 16 mar 2010 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 21 nov 2021 **/ /** to : 23 nov 2021 **/ /** # Version 7.0 : from : 23 aug 2019 **/ /** to : 26 nov 2021 **/ /** **/ /** NOTES : # This code derives from the code of **/ /** kgraph_map_rb_part.h for the vertex **/ /** overlapped graph partitioning. **/ /** **/ /************************************************************/ /* ** The type and structure definitions. */ /*+ This structure holds the method parameters. +*/ typedef struct WgraphPartRbParam_ { Strat * straptr; /*+ Bipartitioning strategy used +*/ } WgraphPartRbParam; /*+ This structure holds global data. +*/ typedef struct WgraphPartRbData_ { const Graph * grafptr; /*+ Pointer to top-level graph +*/ Anum * parttax; /*+ Pointer to top-level part array +*/ Gnum * frontab; /*+ Pointer to top-level frontier array +*/ Gnum fronnbr; /*+ Current number of frontier vertices +*/ Strat * straptr; /*+ Bipartitioning strategy used +*/ #ifdef SCOTCH_PTHREAD pthread_mutex_t mutedat; /*+ Mutex for frontier updates +*/ #endif /* SCOTCH_PTHREAD */ } WgraphPartRbData; /*+ This structure holds the splitting parameters. +*/ typedef struct WgraphPartRbSplit2_ { Gnum vertnbr; /*+ Number of vertices in part +*/ Anum domnnum; /*+ Initial domain number to map +*/ Anum domnsiz; /*+ Number of domains to map +*/ } WgraphPartRbSplit2; typedef struct WgraphPartRbSplit_ { WgraphPartRbSplit2 splttab[2]; /*+ Array of induced subgraph data +*/ WgraphPartRbData * dataptr; /*+ Pointer to global data +*/ Graph * grafptr; /*+ Graph to induce and bipartition +*/ Gnum * frontab; /*+ Graph frontier array +*/ Gnum fronnbr; /*+ Number of frontier vertices +*/ GraphPart * parttax; /*+ Graph part array +*/ int * revaptr; /*+ Pointer to return value +*/ } WgraphPartRbSplit; /* ** The function prototypes. */ int wgraphPartRb (Wgraph * restrict const, const WgraphPartRbParam * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_st.c000066400000000000000000000336521514310134000271160ustar00rootroot00000000000000/* Copyright 2007-2011,2018,2020,2021,2023,2024,2026 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_st.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Sebastien FOURESTIER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** **/ /** FUNCTION : This module contains the global **/ /** vertex overlapped graph partitioning **/ /** strategy and method tables. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 26 feb 2018 **/ /** # Version 6.1 : from : 25 aug 2020 **/ /** to : 26 nov 2021 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 09 feb 2026 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "gain.h" #include "parser.h" #include "graph.h" #include "arch.h" #include "mapping.h" #include "graph_coarsen.h" #include "kgraph.h" #include "kgraph_map_st.h" #include "vgraph.h" #include "vgraph_separate_st.h" #include "wgraph.h" #include "wgraph_part_es.h" #include "wgraph_part_fm.h" #include "wgraph_part_ml.h" #include "wgraph_part_rb.h" #include "wgraph_part_st.h" #include "wgraph_part_zr.h" /* ** The static and global variables. */ static Wgraph wgraphdummy; /* Dummy overlap graph for offset computations */ static union { WgraphPartEsParam param; StratNodeMethodData padding; } wgraphpartdefaultes = { { &stratdummy } }; static union { WgraphPartFmParam param; StratNodeMethodData padding; } wgraphpartdefaultfm = { { 10, 40, 0.1L } }; static union { WgraphPartMlParam param; StratNodeMethodData padding; } wgraphpartdefaultml = { { 20, 0.8L, &stratdummy, &stratdummy } }; static union { WgraphPartRbParam param; StratNodeMethodData padding; } wgraphpartdefaultrb = { { &stratdummy } }; static StratMethodTab wgraphpartstmethtab[] = { /* Graph overlap partitioning methods array */ { WGRAPHPARTSTMETHES, "e", (StratMethodFunc) wgraphPartEs, &wgraphpartdefaultes }, { WGRAPHPARTSTMETHFM, "f", (StratMethodFunc) wgraphPartFm, &wgraphpartdefaultfm }, { WGRAPHPARTSTMETHML, "m", (StratMethodFunc) wgraphPartMl, &wgraphpartdefaultml }, { WGRAPHPARTSTMETHRB, "r", (StratMethodFunc) wgraphPartRb, &wgraphpartdefaultrb }, { WGRAPHPARTSTMETHZR, "z", (StratMethodFunc) wgraphPartZr, NULL }, { -1, NULL, (StratMethodFunc) NULL, NULL } }; static StratParamTab wgraphpartstparatab[] = { /* Method parameter list */ { WGRAPHPARTSTMETHES, STRATPARAMSTRAT, "strat", (byte *) &wgraphpartdefaultes.param, (byte *) &wgraphpartdefaultes.param.strat, (void *) &kgraphmapststratab }, { WGRAPHPARTSTMETHFM, STRATPARAMINT, "pass", (byte *) &wgraphpartdefaultfm.param, (byte *) &wgraphpartdefaultfm.param.passnbr, NULL }, { WGRAPHPARTSTMETHFM, STRATPARAMINT, "move", (byte *) &wgraphpartdefaultfm.param, (byte *) &wgraphpartdefaultfm.param.movenbr, NULL }, { WGRAPHPARTSTMETHFM, STRATPARAMDOUBLE, "bal", (byte *) &wgraphpartdefaultfm.param, (byte *) &wgraphpartdefaultfm.param.deltrat, NULL }, { WGRAPHPARTSTMETHML, STRATPARAMSTRAT, "asc", (byte *) &wgraphpartdefaultml.param, (byte *) &wgraphpartdefaultml.param.stratasc, (void *) &wgraphpartststratab }, { WGRAPHPARTSTMETHML, STRATPARAMSTRAT, "low", (byte *) &wgraphpartdefaultml.param, (byte *) &wgraphpartdefaultml.param.stratlow, (void *) &wgraphpartststratab }, { WGRAPHPARTSTMETHML, STRATPARAMINT, "vert", (byte *) &wgraphpartdefaultml.param, (byte *) &wgraphpartdefaultml.param.coarnbr, NULL }, { WGRAPHPARTSTMETHML, STRATPARAMDOUBLE, "rat", (byte *) &wgraphpartdefaultml.param, (byte *) &wgraphpartdefaultml.param.coarval, NULL }, { WGRAPHPARTSTMETHRB, STRATPARAMSTRAT, "sep", (byte *) &wgraphpartdefaultrb.param, (byte *) &wgraphpartdefaultrb.param.straptr, (void *) &vgraphseparateststratab }, { WGRAPHPARTSTMETHNBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; static StratParamTab wgraphpartstcondtab[] = { /* Overlap graph condition parameter table */ { STRATNODECOND, STRATPARAMINT, "edge", (byte *) &wgraphdummy, (byte *) &wgraphdummy.s.edgenbr, NULL }, { STRATNODECOND, STRATPARAMINT, "part", (byte *) &wgraphdummy, (byte *) &wgraphdummy.partnbr, NULL }, { STRATNODECOND, STRATPARAMINT, "vert", (byte *) &wgraphdummy, (byte *) &wgraphdummy.s.vertnbr, NULL }, { STRATNODENBR, STRATPARAMINT, NULL, NULL, NULL, NULL } }; StratTab wgraphpartststratab = { /* Strategy tables for overlap partitioning methods */ wgraphpartstmethtab, wgraphpartstparatab, wgraphpartstcondtab }; /*********************************************/ /* */ /* This is the generic partitioning routine. */ /* */ /*********************************************/ /* This routine computes the separation of ** the given graph according to the given ** strategy. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int wgraphPartSt ( Wgraph * restrict const grafptr, /*+ Overlap partitioning graph +*/ const Strat * restrict const straptr) /*+ Overlap partitioning strategy +*/ { StratTest testdat; /* Result of condition evaluation */ WgraphStore savetab[2]; /* Results of the two strategies */ int o; int o0; int o1; #ifdef SCOTCH_DEBUG_WGRAPH2 if (sizeof (Gnum) != sizeof (INT)) { errorPrint ("wgraphPartSt: invalid type specification for parser variables"); return (1); } if ((sizeof (WgraphPartFmParam) > sizeof (StratNodeMethodData)) || (sizeof (WgraphPartMlParam) > sizeof (StratNodeMethodData)) || (sizeof (WgraphPartRbParam) > sizeof (StratNodeMethodData))) { errorPrint ("wgraphPartSt: invalid type specification"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH2 */ #ifdef SCOTCH_DEBUG_WGRAPH1 if ((straptr->tablptr != &wgraphpartststratab) && (straptr != &stratdummy)) { errorPrint ("wgraphPartSt: invalid parameter (1)"); return (1); } #endif /* SCOTCH_DEBUG_WGRAPH1 */ o = 0; switch (straptr->typeval) { case STRATNODECONCAT : o = wgraphPartSt (grafptr, straptr->data.concdat.stratab[0]); /* Apply the first strategy */ if (o == 0) /* If it worked all right */ o |= wgraphPartSt (grafptr, straptr->data.concdat.stratab[1]); /* Then apply second strategy */ break; case STRATNODECOND : o = stratTestEval (straptr->data.conddat.testptr, &testdat, (void *) grafptr); /* Evaluate expression */ if (o == 0) { /* If evaluation was correct */ #ifdef SCOTCH_DEBUG_WGRAPH2 if ((testdat.testval != STRATTESTVAL) || (testdat.nodeval != STRATPARAMLOG)) { errorPrint ("wgraphPartSt: invalid test result"); o = 1; break; } #endif /* SCOTCH_DEBUG_WGRAPH2 */ if (testdat.data.val.vallog == 1) /* If expression is true */ o = wgraphPartSt (grafptr, straptr->data.conddat.stratab[0]); /* Apply first strategy */ else { /* Else if expression is false */ if (straptr->data.conddat.stratab[1] != NULL) /* And if there is an else statement */ o = wgraphPartSt (grafptr, straptr->data.conddat.stratab[1]); /* Apply second strategy */ } } break; case STRATNODEEMPTY : break; case STRATNODESELECT : if (((wgraphStoreInit (grafptr, &savetab[0])) != 0) || /* Allocate save areas */ ((wgraphStoreInit (grafptr, &savetab[1])) != 0)) { errorPrint ("wgraphPartSt: out of memory"); wgraphStoreExit (&savetab[0]); return (1); } wgraphStoreSave (grafptr, &savetab[1]); /* Save initial partition */ o0 = wgraphPartSt (grafptr, straptr->data.seledat.stratab[0]); /* Apply first strategy */ wgraphStoreSave (grafptr, &savetab[0]); /* Save its result */ wgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial partition */ o1 = wgraphPartSt (grafptr, straptr->data.seledat.stratab[1]); /* Apply second strategy */ if ((o0 | o1) != 0) { /* If at least one method failed */ if (o0 == 0) /* If first succeeded, take it */ goto take0; if (o1 != 0) { /* If none succeeded */ wgraphStoreUpdt (grafptr, &savetab[1]); /* Restore initial bipartition */ o = 1; /* Indicate error */ } goto take1; /* If second succeeded, keep it; anyway, go freeing data structures */ } if (savetab[0].fronload >= grafptr->fronload) /* If second strategy is better */ goto take1; take0: wgraphStoreUpdt (grafptr, &savetab[0]); /* Restore first partition */ take1: /* Keep second partition by default */ wgraphStoreExit (&savetab[1]); /* Free both save areas */ wgraphStoreExit (&savetab[0]); break; #ifdef SCOTCH_DEBUG_WGRAPH2 case STRATNODEMETHOD : #else /* SCOTCH_DEBUG_WGRAPH2 */ default : #endif /* SCOTCH_DEBUG_WGRAPH2 */ return (((WgraphPartFunc) (straptr->tablptr->methtab[straptr->data.methdat.methnum].funcptr)) (grafptr, (const void * const) &straptr->data.methdat.datadat)); #ifdef SCOTCH_DEBUG_WGRAPH2 default : errorPrint ("wgraphPartSt: invalid parameter (2)"); return (1); #endif /* SCOTCH_DEBUG_WGRAPH2 */ } return (o); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_st.h000066400000000000000000000075651514310134000271270ustar00rootroot00000000000000/* Copyright 2007-2010,2018,2020,2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_st.h **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for vertex overlapped graph par- **/ /** titioning strategy and method tables. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** # Version 6.1 : from : 25 aug 2020 **/ /** to : 02 dec 2021 **/ /** # Version 7.0 : from : 07 nov 2024 **/ /** to : 07 nov 2024 **/ /** **/ /************************************************************/ /* ** The type definitions. */ /** Method types. **/ typedef enum WgraphPartStMethodType_ { WGRAPHPARTSTMETHES = 0, /*+ Edge separation +*/ WGRAPHPARTSTMETHFM, /*+ Fiduccia-Mattheyses +*/ WGRAPHPARTSTMETHML, /*+ Multi-level separation +*/ WGRAPHPARTSTMETHRB, /*+ Recursive bisection +*/ WGRAPHPARTSTMETHZR, /*+ Zero method +*/ WGRAPHPARTSTMETHNBR /*+ Number of methods +*/ } WgraphPartStMethodType; /*+ Method function pointer type. +*/ typedef int (* WgraphPartFunc) (Wgraph * restrict const, const void * const); /* ** The external declarations. */ extern StratTab wgraphpartststratab; /* ** The function prototypes. */ int wgraphPartSt (Wgraph * restrict const, const Strat * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_zr.c000066400000000000000000000073231514310134000271170ustar00rootroot00000000000000/* Copyright 2007-2010,2016,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_zr.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module moves all of the vertices **/ /** to the first subdomain of the **/ /** partition. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 14 mar 2010 **/ /** # Version 6.1 : from : 02 dec 2021 **/ /** to : 02 dec 2021 **/ /** # Version 7.0 : from : 17 jan 2023 **/ /** to : 17 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "wgraph.h" #include "wgraph_part_zr.h" /*****************************/ /* */ /* This is the main routine. */ /* */ /*****************************/ /* This routine moves all of the graph vertices ** to the first part of the partition. ** It returns: ** - 0 : if the bipartitioning could be computed. ** - !0 : on error. */ int wgraphPartZr ( Wgraph * const grafptr) /*+ Active graph +*/ { if (grafptr->compsize[0] != grafptr->s.vertnbr) /* If not all vertices already in part zero */ wgraphZero (grafptr); return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_part_zr.h000066400000000000000000000053231514310134000271220ustar00rootroot00000000000000/* Copyright 2007-2010,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_part_zr.h **/ /** **/ /** AUTHOR : Charles-Edmond BICHOT (v5.1b) **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the move-all-to-first-subdomain **/ /** partitioning algorithm. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2009 **/ /** to : 31 may 2018 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int wgraphPartZr (Wgraph * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotch/wgraph_store.c000066400000000000000000000155341514310134000265750ustar00rootroot00000000000000/* Copyright 2007-2010,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : wgraph_store.c **/ /** **/ /** AUTHOR : Jun-Ho HER (v6.0) **/ /** Charles-Edmond BICHOT (v5.1b) **/ /** **/ /** FUNCTION : This module contains the data store re- **/ /** lated rountines for the vertex overlap- **/ /** ped graph partitioning. **/ /** **/ /** DATES : # Version 5.1 : from : 01 dec 2007 **/ /** to : 01 jul 2008 **/ /** # Version 6.0 : from : 05 nov 2010 **/ /** to : 30 may 2010 **/ /** # Version 7.0 : from : 16 jan 2023 **/ /** to : 16 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "wgraph.h" /**********************************/ /* */ /* Store graph handling routines. */ /* */ /**********************************/ /* This routine builds a save structure ** for the given active graph. ** It returns: ** - 0 : if allocation succeeded. ** - !0 : on error. */ int wgraphStoreInit ( const Wgraph * const grafptr, WgraphStore * const storptr) { Gnum savsize; savsize = 2 * grafptr->partnbr * sizeof (Gnum) + /* Compute size for frontier, part arrays, communication load and size */ grafptr->s.vertnbr * (sizeof (Gnum) + sizeof (Anum)); if ((storptr->datatab = (byte *) memAlloc (savsize)) == NULL) { /* Allocate save structure */ errorPrint ("wgraphStoreInit: out of memory"); return (1); } return (0); } /* This routine frees a save structure. ** It returns: ** - VOID : in all cases. */ void wgraphStoreExit ( WgraphStore * const storptr) { memFree (storptr->datatab); #ifdef SCOTCH_DEBUG_WGRAPH2 storptr->datatab = NULL; #endif /* SCOTCH_DEBUG_WGRAPH2 */ } /* This routine saves partition data from the ** given active graph to the given save structure. ** It returns: ** - VOID : in all cases. */ void wgraphStoreSave ( const Wgraph * const grafptr, WgraphStore * const storptr) { byte * compload; /* Pointer to part load data save area */ byte * compsize; /* Pointer to part size data save area */ byte * frontab; /* Pointer to frontier data save area */ byte * parttab; /* Pointer to partition data save area */ storptr->partnbr = grafptr->partnbr; /* Save partition parameters */ storptr->fronnbr = grafptr->fronnbr; storptr->fronload = grafptr->fronload; compload = storptr->datatab; /* Compute data offsets within save structure */ compsize = compload + grafptr->partnbr * sizeof (Gnum); frontab = compsize + grafptr->partnbr * sizeof (Gnum); parttab = frontab + grafptr->fronnbr * sizeof (Gnum); memCpy (compload, grafptr->compload, grafptr->partnbr * sizeof (Gnum)); memCpy (compsize, grafptr->compsize, grafptr->partnbr * sizeof (Gnum)); memCpy (frontab, grafptr->frontab, grafptr->fronnbr * sizeof (Gnum)); memCpy (parttab, grafptr->parttax + grafptr->s.baseval, grafptr->s.vertnbr * sizeof (Anum)); } /* This routine updates partition data of the ** given active graph, using the given save graph. ** It returns: ** - VOID : in all cases. */ void wgraphStoreUpdt ( Wgraph * const grafptr, const WgraphStore * const storptr) { byte * compload; /* Pointer to part load data save area */ byte * compsize; /* Pointer to part size data save area */ byte * frontab; /* Pointer to frontier data save area */ byte * parttab; /* Pointer to partition data save area */ grafptr->partnbr = storptr->partnbr; /* Load partition parameters */ grafptr->fronnbr = storptr->fronnbr; grafptr->fronload = storptr->fronload; compload = storptr->datatab; /* Compute data offsets within save structure */ compsize = compload + grafptr->partnbr * sizeof (Gnum); frontab = compsize + grafptr->partnbr * sizeof (Gnum); parttab = frontab + grafptr->fronnbr * sizeof (Gnum); memCpy (grafptr->compload, compload, grafptr->partnbr * sizeof (Gnum)); memCpy (grafptr->compsize, compsize, grafptr->partnbr * sizeof (Gnum)); memCpy (grafptr->frontab, frontab, grafptr->fronnbr * sizeof (Gnum)); memCpy (grafptr->parttax + grafptr->s.baseval, parttab, grafptr->s.vertnbr * sizeof (Anum)); #ifdef SCOTCH_DEBUG_WGRAPH2 if (wgraphCheck (grafptr) != 0) errorPrint ("wgraphStoreUpdt: inconsistent graph data"); #endif /* SCOTCH_DEBUG_WGRAPH2 */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/000077500000000000000000000000001514310134000247575ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/CMakeLists.txt000066400000000000000000000227471514310134000275330ustar00rootroot00000000000000## Copyright 2014-2016,2021-2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Cedric LACHAT ## ## Amaury JACQUES ## ## Florent PRUVOST ## ## Marc FUENTES ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 18 dec 2025 ## ## ## ############################################################ #################### # libScotchMeTiS # #################### set_source_files_properties(${GENERATED_INCLUDE_DIR}/scotch.h PROPERTIES GENERATED 1) set_source_files_properties(${GENERATED_INCLUDE_DIR}/metis.h PROPERTIES GENERATED 1) # metis.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/metis.h COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/library_metis.h ${GENERATED_INCLUDE_DIR}/metis.h DEPENDS dummysizes DEPENDS library_metis.h COMMENT "Generating metis.h") add_custom_target(metis_h DEPENDS "${GENERATED_INCLUDE_DIR}/metis.h") # metisf.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/metisf.h COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/library_metis_f.h ${GENERATED_INCLUDE_DIR}/metisf.h DEPENDS dummysizes DEPENDS library_metis_f.h COMMENT "Generating metisf.h") add_custom_target(metisf_h DEPENDS "${GENERATED_INCLUDE_DIR}/metisf.h") # libScotchMeTiS foreach(version 3 5) add_library(scotchmetisv${version} metis_graph_order.c metis_graph_order_f.c metis_graph_part.c metis_graph_part_f.c metis_graph_dual.c metis_graph_dual_f.c metis_graph_part_dual.c metis_graph_part_dual_f.c metis_options.c metis_options_f.c ${LIBSCOTCH_INCLUDE_DIR}/module.h ${LIBSCOTCH_INCLUDE_DIR}/common.h ${GENERATED_INCLUDE_DIR}/scotch.h ${GENERATED_INCLUDE_DIR}/metis.h ${GENERATED_INCLUDE_DIR}/metisf.h) add_library(SCOTCH::scotchmetisv${version} ALIAS scotchmetisv${version}) set_target_properties(scotchmetisv${version} PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_compile_definitions(scotchmetisv${version} PUBLIC SCOTCH_METIS_VERSION=${version}) if(SCOTCH_METIS_PREFIX) target_compile_definitions(scotchmetisv${version} PUBLIC SCOTCH_METIS_PREFIX) endif() target_include_directories(scotchmetisv${version} PRIVATE $ $ $ $) target_link_libraries(scotchmetisv${version} PRIVATE scotch) if(NOT "${LIBSCOTCHERR}" STREQUAL "") target_link_libraries(scotchmetisv${version} PRIVATE ${LIBSCOTCHERR}) endif() add_dependencies(scotchmetisv${version} scotch_h metisf_h) if(INSTALL_METIS_HEADERS) set_target_properties(scotchmetisv${version} PROPERTIES PUBLIC_HEADER "${GENERATED_INCLUDE_DIR}/metis.h;${GENERATED_INCLUDE_DIR}/metisf.h") endif() if(APPLE) set_target_properties(scotchmetisv${version} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif() # libScotchMeTiS targets install install(EXPORT scotchmetisTargets COMPONENT libscotch FILE scotchmetisTargets.cmake NAMESPACE SCOTCH:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) if(INSTALL_METIS_HEADERS) install(TARGETS scotchmetisv${version} COMPONENT libscotch EXPORT scotchmetisTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) else() install(TARGETS scotchmetisv${version} COMPONENT libscotch EXPORT scotchmetisTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() endforeach(version 3 5) ######################### # libPTScotchParMeTiS # ######################### if(BUILD_PTSCOTCH) set_source_files_properties(${GENERATED_INCLUDE_DIR}/ptscotch.h PROPERTIES GENERATED 1) # parmetis.h add_custom_command(OUTPUT ${GENERATED_INCLUDE_DIR}/parmetis.h COMMAND $ ${CMAKE_CURRENT_SOURCE_DIR}/library_parmetis.h ${GENERATED_INCLUDE_DIR}/parmetis.h DEPENDS dummysizes DEPENDS library_parmetis.h COMMENT "Generating parmetis.h") add_custom_target(parmetis_h DEPENDS "${GENERATED_INCLUDE_DIR}/parmetis.h") # libPTScotchParMeTiS foreach(version 3) add_library(ptscotchparmetisv${version} parmetis_dgraph_dual.c parmetis_dgraph_dual_f.c parmetis_dgraph_order.c parmetis_dgraph_order_f.c parmetis_dgraph_part.c parmetis_dgraph_part_f.c ${LIBSCOTCH_INCLUDE_DIR}/module.h ${LIBSCOTCH_INCLUDE_DIR}/common.h ${GENERATED_INCLUDE_DIR}/ptscotch.h ${GENERATED_INCLUDE_DIR}/parmetis.h) set_target_properties(ptscotchparmetisv${version} PROPERTIES VERSION ${SCOTCH_VERSION_LONG} SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) target_compile_definitions(ptscotchparmetisv${version} PUBLIC SCOTCH_PTSCOTCH SCOTCH_METIS_VERSION=${version}) if(SCOTCH_METIS_PREFIX) target_compile_definitions(ptscotchparmetisv${version} PUBLIC SCOTCH_METIS_PREFIX) endif() target_include_directories(ptscotchparmetisv${version} PRIVATE $ $ $ $) target_link_libraries(ptscotchparmetisv${version} PRIVATE scotch) target_link_libraries(ptscotchparmetisv${version} PRIVATE ptscotch) target_link_libraries(ptscotchparmetisv${version} PUBLIC MPI::MPI_C) if(NOT "${LIBPTSCOTCHERR}" STREQUAL "") target_link_libraries(ptscotchparmetisv${version} PRIVATE ${LIBPTSCOTCHERR}) endif() add_dependencies(ptscotchparmetisv${version} ptscotch_h) if(INSTALL_METIS_HEADERS) set_target_properties(ptscotchparmetisv${version} PROPERTIES PUBLIC_HEADER "${GENERATED_INCLUDE_DIR}/parmetis.h") endif() if(APPLE) set_target_properties(ptscotchparmetisv${version} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif() # libPTScotchParMeTiS targets install install(EXPORT ptscotchparmetisTargets COMPONENT libptscotch FILE ptscotchparmetisTargets.cmake NAMESPACE SCOTCH:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scotch) if(INSTALL_METIS_HEADERS) install(TARGETS ptscotchparmetisv${version} COMPONENT libptscotch EXPORT ptscotchparmetisTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) else() install(TARGETS ptscotchparmetisv${version} COMPONENT libptscotch EXPORT ptscotchparmetisTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() # adm2dgr add_executable(adm2dgr adm2dgr.c adm2dgr.h) add_dependencies(adm2dgr parmetis_h) target_link_libraries(adm2dgr PRIVATE ptscotchparmetisv${version} ptscotch scotch ptscotcherr) install(TARGETS adm2dgr COMPONENT ptscotch RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endforeach(version 3) endif() scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/Makefile000066400000000000000000000172161514310134000264260ustar00rootroot00000000000000## Copyright 2007-2010,2018,2019,2021,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## SCOTCHBINDIR ?= ../../bin SCOTCHINCLUDEDIR ?= ../../include SCOTCHLIBDIR ?= ../../lib SCOTCHSRCLIBSCOTCHDIR ?= ../libscotch V = v$(SCOTCH_METIS_VERSION) ## ## General inference rules. ## include ../Makefile.inc %_$(V)$(OBJ): %.c $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch -c $(<) -o $(@) %$(EXE) : %.c $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(<) -o $(@) -L$(SCOTCHLIBDIR) $(LDFLAGS) ## ## Project rules. ## .PHONY : ptscotch scotch ptinstall install clean realclean scotch : $(MAKE) \ CC="$(CCS)" \ SCOTCH_METIS_VERSION=3 \ metis.h \ libscotchmetisv3$(LIB) $(MAKE) \ CC="$(CCS)" \ SCOTCH_METIS_VERSION=5 \ metis.h \ metisf.h \ libscotchmetisv5$(LIB) ptscotch : $(MAKE) \ CC="$(CCP)" \ CFLAGS="$(CFLAGS) -DSCOTCH_PTSCOTCH" \ SCOTCH_METIS_VERSION=3 \ SCOTCH_PARMETIS_VERSION=3 \ parmetis.h \ libptscotchparmetisv3$(LIB) \ adm2dgr$(EXE) install : scotch -$(CP) metis.h metisf.h $(SCOTCHINCLUDEDIR) -$(CP) libscotchmetisv3$(LIB) libscotchmetisv5$(LIB) $(SCOTCHLIBDIR) ptinstall : ptscotch -$(CP) parmetis.h $(SCOTCHINCLUDEDIR) -$(CP) libptscotchparmetisv3$(LIB) $(SCOTCHLIBDIR) -$(CP) adm2dgr$(EXE) $(SCOTCHBINDIR) clean : -$(RM) *~ *$(OBJ) lib*$(LIB) metis.h metisf.h parmetis.h adm2dgr$(EXE) realclean : clean ## ## Todo list. ## metis.h : ../libscotch/dummysizes$(EXE) \ library_metis.h ../libscotch/dummysizes$(EXE) library_metis.h metis.h metisf.h : ../libscotch/dummysizes$(EXE) \ library_metis_f.h ../libscotch/dummysizes$(EXE) library_metis_f.h metisf.h metis_graph_dual_$(V)$(OBJ) : metis_graph_dual.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h \ metis_graph_dual.h metis_graph_dual_f_$(V)$(OBJ) : metis_graph_dual_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h metis_graph_order_$(V)$(OBJ) : metis_graph_order.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h metis_graph_order_f_$(V)$(OBJ) : metis_graph_order_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h metis_graph_part_$(V)$(OBJ) : metis_graph_part.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h \ metis_graph_part.h metis_graph_part_f_$(V)$(OBJ) : metis_graph_part_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h metis_graph_part_dual_$(V)$(OBJ): metis_graph_part_dual.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h \ metis_graph_dual.h \ metis_graph_part.h metis_graph_part_dual_f_$(V)$(OBJ): metis_graph_part_dual_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h metis_options_$(V)$(OBJ) : metis_options.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h metis_options_f_$(V)$(OBJ) : metis_options_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ metis.h parmetis.h : ../libscotch/dummysizes$(EXE) \ library_parmetis.h ../libscotch/dummysizes$(EXE) library_parmetis.h parmetis.h parmetis_dgraph_order_$(V)$(OBJ): parmetis_dgraph_order.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ parmetis.h parmetis_dgraph_order_f_$(V)$(OBJ): parmetis_dgraph_order_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ parmetis.h parmetis_dgraph_part_$(V)$(OBJ) : parmetis_dgraph_part.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ parmetis.h parmetis_dgraph_part_f_$(V)$(OBJ): parmetis_dgraph_part_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ parmetis.h parmetis_dgraph_dual_$(V)$(OBJ): parmetis_dgraph_dual.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ parmetis.h parmetis_dgraph_dual_f_$(V)$(OBJ): parmetis_dgraph_dual_f.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h libptscotchparmetis$(V)$(LIB) : parmetis_dgraph_order_$(V)$(OBJ) \ parmetis_dgraph_dual_$(V)$(OBJ) \ parmetis_dgraph_dual_f_$(V)$(OBJ) \ parmetis_dgraph_order_f_$(V)$(OBJ) \ parmetis_dgraph_part_$(V)$(OBJ) \ parmetis_dgraph_part_f_$(V)$(OBJ) $(AR) $(ARFLAGS) $(@) $(^) -$(RANLIB) $(@) libscotchmetis$(V)$(LIB) : metis_graph_dual_$(V)$(OBJ) \ metis_graph_dual_f_$(V)$(OBJ) \ metis_graph_order_$(V)$(OBJ) \ metis_graph_order_f_$(V)$(OBJ) \ metis_graph_part_$(V)$(OBJ) \ metis_graph_part_f_$(V)$(OBJ) \ metis_graph_part_dual_$(V)$(OBJ) \ metis_graph_part_dual_f_$(V)$(OBJ) \ metis_options_$(V)$(OBJ) \ metis_options_f_$(V)$(OBJ) $(AR) $(ARFLAGS) $(@) $(^) -$(RANLIB) $(@) adm2dgr$(EXE) : adm2dgr.c \ $(SCOTCHSRCLIBSCOTCHDIR)/module.h \ $(SCOTCHSRCLIBSCOTCHDIR)/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ parmetis.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ libptscotchparmetis$(V)$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ adm2dgr.h $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(<) -o $(@) -L. -lptscotchparmetis$(V) -L$(SCOTCHLIBDIR) -lptscotch -lscotch -lscotcherrexit $(LDFLAGS) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/adm2dgr.c000066400000000000000000000226351514310134000264530ustar00rootroot00000000000000/* Copyright 2024-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : adm2dgr.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : Converts an auxiliary distributed mesh **/ /** file into a Scotch distributed graph **/ /** file that represents the dual element **/ /** graph of the mesh. **/ /** **/ /** DATES : # Version 7.0 : from : 11 jan 2024 **/ /** to : 08 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include #include #if (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) #include #endif /* (((defined __STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined HAVE_STDINT_H)) */ #include #include #include "../libscotch/module.h" #include "../libscotch/common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ #include "adm2dgr.h" /* ** The static variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "adm2dgr ", " -c : Set the minimum number of shared nodes to define adjacency", " -h : Display this help", " -V : Print program version and copyright", NULL }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { MPI_Comm proccomm; int proclocnum; int procglbnbr; int protglbnum; SCOTCH_Dmesh meshdat; SCOTCH_Dgraph grafdat; SCOTCH_Num baseval; SCOTCH_Num noconbr; /* Number of common nodes */ SCOTCH_Num velmlocnbr; /* Local number of element vertices */ SCOTCH_Num * velmloctab; /* Array of element vertex indices [velmloctab+1] */ SCOTCH_Num * eelmloctab; /* Array of element edge neighbors */ SCOTCH_Num * prelvrttab; /* Array of element-to-process distribution */ SCOTCH_Num preldspadj; /* Adjustment value for element-to-process array */ SCOTCH_Num vertlocnbr; /* Number of local vertices in dual graph */ SCOTCH_Num * vertloctab; /* Dual graph local vertex array */ SCOTCH_Num edgelocnbr; /* Number of local edges in dual graph */ SCOTCH_Num * edgeloctab; /* Dual graph local edge array */ #ifdef SCOTCH_PTHREAD_MPI int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD */ int procnum; int i; errorProg ("adm2dgr"); #ifdef SCOTCH_PTHREAD_MPI thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD_MPI */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) SCOTCH_errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD_MPI */ proccomm = MPI_COMM_WORLD; MPI_Comm_rank (proccomm, &proclocnum); MPI_Comm_size (proccomm, &procglbnbr); protglbnum = 0; if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ noconbr = 1; for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '+') && /* If found a file name */ ((argv[i][0] != '-') || (argv[i][1] == '\0'))) { if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else SCOTCH_errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'C' : /* Number of common nodes */ case 'c' : noconbr = atoi (&argv[i][2]); if ((noconbr < 1) || (noconbr > 3)) SCOTCH_errorPrint ("main: invalid number of common nodes"); break; case 'V' : case 'v' : fprintf (stderr, "adm2dgr, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : SCOTCH_errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpenDist (C_fileTab, C_FILENBR, procglbnbr, proclocnum, protglbnum); /* Open all files */ if (SCOTCH_dmeshInit (&meshdat, proccomm) != 0) SCOTCH_errorPrint ("main: cannot initialize mesh"); if (SCOTCH_dmeshLoad (&meshdat, C_filepntradminp, -1, 0) != 0) SCOTCH_errorPrint ("main: cannot read input mesh file"); SCOTCH_dmeshData (&meshdat, &baseval, NULL, &velmlocnbr, &velmloctab, NULL, NULL, &eelmloctab, NULL, NULL); if ((prelvrttab = memAlloc ((procglbnbr + 1) * sizeof (SCOTCH_Num))) == NULL) errorPrint ("main: out of memory"); if (MPI_Allgather (&velmlocnbr, 1, SCOTCH_NUM_MPI, prelvrttab, 1, SCOTCH_NUM_MPI, proccomm) != MPI_SUCCESS) { errorPrint ("dmeshBuildAdm: communication error"); return (1); } preldspadj = baseval; /* Use the new base to build displacement array */ for (procnum = 0; procnum < procglbnbr; procnum ++) { /* Build element-to-process array */ SCOTCH_Num preldspval; preldspval = prelvrttab[procnum]; prelvrttab[procnum] = preldspadj; preldspadj += preldspval; } prelvrttab[procnum] = preldspadj; /* Set end of displacement array */ if (SCOTCH_ParMETIS_V3_Mesh2Dual (prelvrttab, velmloctab, eelmloctab, &baseval, &noconbr, &vertloctab, &edgeloctab, &proccomm) != METIS_OK) SCOTCH_errorPrint ("main: cannot compute dual graph"); vertlocnbr = velmlocnbr; edgelocnbr = vertloctab[vertlocnbr] - baseval; SCOTCH_dgraphInit (&grafdat, MPI_COMM_WORLD); if (SCOTCH_dgraphBuild (&grafdat, baseval, vertlocnbr, vertlocnbr, vertloctab, vertloctab + 1, NULL, NULL, edgelocnbr, edgelocnbr, edgeloctab, NULL, NULL) != 0) { SCOTCH_errorPrint ("main: cannot build dual graph"); } SCOTCH_dgraphCheck (&grafdat); SCOTCH_dgraphSave (&grafdat, C_filepntrdgrout); SCOTCH_dgraphExit (&grafdat); SCOTCH_dmeshExit (&meshdat); free (prelvrttab); fileBlockClose (C_fileTab, C_FILENBR); MPI_Finalize (); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/adm2dgr.h000066400000000000000000000062401514310134000264520ustar00rootroot00000000000000/* Copyright 2024-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : adm2dgr.h **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the distributed dual **/ /** element graph computing program. **/ /** **/ /** DATES : # Version 7.0 : from : 11 jan 2024 **/ /** to : 03 may 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenameadminp fileBlockName (C_fileTab, 0) /* Auxiliary distributed mesh input file name */ #define C_filenamedgrout fileBlockName (C_fileTab, 1) /* Distributed graph output file name */ #define C_filepntradminp fileBlockFile (C_fileTab, 0) /* Auxiliary distributed mesh input file */ #define C_filepntrdgrout fileBlockFile (C_fileTab, 1) /* Distributed graph output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/library_metis.h000066400000000000000000000354421514310134000300050ustar00rootroot00000000000000/********************************************************* ** ** ** WARNING: THIS IS NOT THE ORIGINAL INCLUDE FILE OF ** ** THE MeTiS SOFTWARE PACKAGE. ** ** This file is a compatibility include file provided ** ** as part of the Scotch software distribution. ** ** Preferably use the original MeTiS include file to ** ** keep definitions of routines not overloaded by ** ** the libScotchMeTiS library. ** ** ** *********************************************************/ /* Copyright 2007,2010,2012,2018,2019,2021,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_metis.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Amaury JACQUES (v6.0) **/ /** Marc FUENTES (v6.1) **/ /** **/ /** FUNCTION : Compatibility declaration file for the **/ /** MeTiS interface routines provided by **/ /** the Scotch project. **/ /** **/ /** DATES : # Version 5.0 : from : 08 sep 2006 **/ /** to : 07 jun 2007 **/ /** # Version 5.1 : from : 30 jun 2010 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 17 jun 2019 **/ /** # Version 6.1 : from : 09 feb 2021 **/ /** to : 30 dec 2021 **/ /** # Version 7.0 : from : 11 aug 2024 **/ /** to : 12 dec 2024 **/ /** **/ /************************************************************/ /* ** The defines. */ #ifdef SCOTCH_METIS_PREFIX #ifndef SCOTCH_METIS_PREFIXC /* Prefix for C language interface */ #define SCOTCH_METIS_PREFIXC SCOTCH_ #endif /* SCOTCH_METIS_PREFIXC */ #ifndef SCOTCH_METIS_PREFIXFL /* Prefix for Fortran lowercase interface */ #define SCOTCH_METIS_PREFIXFL scotchf #endif /* SCOTCH_METIS_PREFIXFL */ #ifndef SCOTCH_METIS_PREFIXFU /* Prefix for Fortran uppercase interface */ #define SCOTCH_METIS_PREFIXFU SCOTCHF #endif /* SCOTCH_METIS_PREFIXFU */ #ifndef SCOTCH_METIS_PREFIXS /* Make Scotch interface internal */ #define SCOTCH_METIS_PREFIXS _SCOTCH #define SCOTCH_METIS_PREFIXSL _scotchf #define SCOTCH_METIS_PREFIXSU _SCOTCHF #endif /* SCOTCH_METIS_PREFIXS */ #endif /* SCOTCH_METIS_PREFIX */ #ifndef SCOTCH_METIS_PREFIXC #define SCOTCH_METIS_PREFIXC #endif /* SCOTCH_METIS_PREFIXC */ #ifndef SCOTCH_METIS_PREFIXFL #define SCOTCH_METIS_PREFIXFL #endif /* SCOTCH_METIS_PREFIXFL */ #ifndef SCOTCH_METIS_PREFIXFU #define SCOTCH_METIS_PREFIXFU #endif /* SCOTCH_METIS_PREFIXFU */ #ifndef SCOTCH_METIS_PREFIXS /* Make Scotch interface external */ #define SCOTCH_METIS_PREFIXS SCOTCH_ #define SCOTCH_METIS_PREFIXSL scotchf #define SCOTCH_METIS_PREFIXSU SCOTCHF #endif /* SCOTCH_METIS_PREFIXS */ #ifndef SCOTCHMETISNAMEC #define SCOTCHMETISNAMEC(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXC),s) #define SCOTCHMETISNAMEFL(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXFL),s) #define SCOTCHMETISNAMEFU(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXFU),s) #define SCOTCHMETISNAMES(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXS),s) #define SCOTCHMETISNAMESL(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXSL),s) #define SCOTCHMETISNAMESU(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXSU),s) #define SCOTCHMETISNAME2(p,s) SCOTCHMETISNAME4(p,s) #define SCOTCHMETISNAME3(s) s #define SCOTCHMETISNAME4(p,s) p##s #endif /* SCOTCHMETISNAMEC */ #ifndef SCOTCH_METIS_OPTIONS #define SCOTCH_METIS_OPTIONS #define METIS_NOPTIONS 40 typedef enum { METIS_OPTION_PTYPE, METIS_OPTION_OBJTYPE, METIS_OPTION_CTYPE, METIS_OPTION_IPTYPE, METIS_OPTION_RTYPE, METIS_OPTION_DBGLVL, METIS_OPTION_NITER, METIS_OPTION_NCUTS, METIS_OPTION_SEED, METIS_OPTION_NO2HOP, METIS_OPTION_MINCONN, METIS_OPTION_CONTIG, METIS_OPTION_COMPRESS, METIS_OPTION_CCORDER, METIS_OPTION_PFACTOR, METIS_OPTION_NSEPS, METIS_OPTION_UFACTOR, METIS_OPTION_NUMBERING, METIS_OPTION_HELP, METIS_OPTION_TPWGTS, METIS_OPTION_NCOMMON, METIS_OPTION_NOOUTPUT, METIS_OPTION_BALANCE, METIS_OPTION_GTYPE, METIS_OPTION_UBVEC } moptions_et; #endif /* SCOTCH_METIS_OPTIONS */ #ifndef SCOTCH_METIS_OBJTYPE #define SCOTCH_METIS_OBJTYPE typedef enum { METIS_OBJTYPE_CUT, METIS_OBJTYPE_VOL, METIS_OBJTYPE_NODE } mobjtype_et; #endif /* SCOTCH_METIS_OBJTYPE */ #ifndef SCOTCH_METIS_RETURN #define SCOTCH_METIS_RETURN typedef enum { METIS_OK = 1, METIS_ERROR_INPUT = -2, METIS_ERROR_MEMORY = -3, METIS_ERROR = -4 } rstatus_et; #endif /* SCOTCH_METIS_RETURN */ /* ** The type and structure definitions. */ #ifndef LIB_SCOTCH_H /* In case "scotch.h" not included before */ typedef DUMMYINT SCOTCH_Num; #endif /* LIB_SCOTCH_H */ #ifndef SCOTCH_METIS_DATATYPES #define SCOTCH_METIS_DATATYPES typedef SCOTCH_Num idx_t; typedef double real_t; #define IDXTYPEWIDTH (sizeof (idx_t) * 8) #endif /* SCOTCH_METIS_DATATYPES */ /* ** The function prototypes. */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ int SCOTCHMETISNAMES (METIS_V3_EdgeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V3_NodeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V3_NodeWND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V5_NodeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V3_PartGraphKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V3_PartGraphRecursive) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V3_PartGraphVKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V5_PartGraphKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const double * const, const double * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_V5_PartGraphRecursive) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const double * const, const double * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_MeshToDual) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const); int SCOTCHMETISNAMES (METIS_PartMeshDual) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const double * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMES (METIS_SetDefaultOptions) (SCOTCH_Num * const); #ifndef SCOTCH_METIS_VERSION #define SCOTCH_METIS_VERSION 3 /* MeTiS API version is 3 by default */ #endif /* SCOTCH_METIS_VERSION */ #if (SCOTCH_METIS_VERSION == 3) int SCOTCHMETISNAMEC (METIS_EdgeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_NodeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_NodeWND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_PartGraphKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_PartGraphRecursive) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_PartGraphVKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); #endif /* (SCOTCH_METIS_VERSION == 3) */ #if (SCOTCH_METIS_VERSION == 5) int SCOTCHMETISNAMEC (METIS_NodeND) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_PartGraphKway) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const double * const, const double * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_PartGraphRecursive) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const double * const, const double * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); #endif /* (SCOTCH_METIS_VERSION == 5) */ int SCOTCHMETISNAMEC (METIS_MeshToDual) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const); int SCOTCHMETISNAMEC (METIS_PartMeshDual) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const double * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const); int SCOTCHMETISNAMEC (METIS_SetDefaultOptions) (SCOTCH_Num * const); #ifdef __cplusplus } #endif /* __cplusplus */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/library_metis_f.h000066400000000000000000000077731514310134000303200ustar00rootroot00000000000000!* Copyright 2021, IPB, Universite de Bordeaux, INRIA & CNRS !* !* This file is part of the Scotch software package for static mapping, !* graph partitioning and sparse matrix ordering. !* !* This software is governed by the CeCILL-C license under French law !* and abiding by the rules of distribution of free software. You can !* use, modify and/or redistribute the software under the terms of the !* CeCILL-C license as circulated by CEA, CNRS and INRIA at the following !* URL: "http://www.cecill.info". !* !* As a counterpart to the access to the source code and rights to copy, !* modify and redistribute granted by the license, users are provided !* only with a limited warranty and the software's author, the holder of !* the economic rights, and the successive licensors have only limited !* liability. !* !* In this respect, the user's attention is drawn to the risks associated !* with loading, using, modifying and/or developing or reproducing the !* software by the user in light of its specific status of free software, !* that may mean that it is complicated to manipulate, and that also !* therefore means that it is reserved for developers and experienced !* professionals having in-depth computer knowledge. Users are therefore !* encouraged to load and test the software's suitability as regards !* their requirements in conditions enabling the security of their !* systems and/or data to be ensured and, more generally, to use and !* operate it in the same conditions as regards security. !* !* The fact that you are presently reading this means that you have had !* knowledge of the CeCILL-C license and that you accept its terms. ! !*********************************************************** !* ** !* NAME : library_metis_f.h ** !* ** !* AUTHOR : Marc FUENTES ** !* ** !* FUNCTION : FORTRAN declaration file for the ** !* libmetis options vector. ** !* ** !* DATES : # Version 6.1 : from : 18 may 2021 ** !* to : 27 may 2021 ** !* ** !*********************************************************** !* Size of option vector INTEGER METIS_NOPTIONS PARAMETER (METIS_NOPTIONS = 40) !* Definition of enum OPTIONS INTEGER METIS_OPTION_PTYPE INTEGER METIS_OPTION_OBJTYPE INTEGER METIS_OPTION_CTYPE INTEGER METIS_OPTION_IPTYPE INTEGER METIS_OPTION_RTYPE INTEGER METIS_OPTION_DBGLVL INTEGER METIS_OPTION_NITER INTEGER METIS_OPTION_NCUTS INTEGER METIS_OPTION_SEED INTEGER METIS_OPTION_NO2HOP INTEGER METIS_OPTION_MINCONN INTEGER METIS_OPTION_CONTIG INTEGER METIS_OPTION_COMPRESS INTEGER METIS_OPTION_CCORDER INTEGER METIS_OPTION_PFACTOR INTEGER METIS_OPTION_NSEPS INTEGER METIS_OPTION_UFACTOR INTEGER METIS_OPTION_NUMBERING PARAMETER (METIS_OPTION_PTYPE = 1) PARAMETER (METIS_OPTION_OBJTYPE = 2) PARAMETER (METIS_OPTION_CTYPE = 3) PARAMETER (METIS_OPTION_IPTYPE = 4) PARAMETER (METIS_OPTION_RTYPE = 5) PARAMETER (METIS_OPTION_DBGLVL = 6) PARAMETER (METIS_OPTION_NITER = 7) PARAMETER (METIS_OPTION_NCUTS = 8) PARAMETER (METIS_OPTION_SEED = 9) PARAMETER (METIS_OPTION_NO2HOP = 10) PARAMETER (METIS_OPTION_MINCONN = 11) PARAMETER (METIS_OPTION_CONTIG = 12) PARAMETER (METIS_OPTION_COMPRESS = 13) PARAMETER (METIS_OPTION_CCORDER = 14) PARAMETER (METIS_OPTION_PFACTOR = 15) PARAMETER (METIS_OPTION_NSEPS = 16) PARAMETER (METIS_OPTION_UFACTOR = 17) PARAMETER (METIS_OPTION_NUMBERING = 18) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/library_parmetis.h000066400000000000000000000230341514310134000305020ustar00rootroot00000000000000/********************************************************* ** ** ** WARNING: THIS IS NOT THE ORIGINAL INCLUDE FILE OF ** ** THE ParMeTiS SOFTWARE PACKAGE. ** ** This file is a compatibility include file provided ** ** as part of the Scotch software distribution. ** ** Preferably use the original ParMeTiS include file ** ** to keep definitions of routines not overloaded by ** ** the libPTScotchMeTiS library. ** ** ** *********************************************************/ /* Copyright 2007,2008,2010,2012,2018,2019,2021,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : library_parmetis.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Compatibility declaration file for the **/ /** MeTiS interface routines provided by **/ /** the Scotch project. **/ /** **/ /** DATES : # Version 5.0 : from : 17 oct 2007 **/ /** to : 18 oct 2007 **/ /** # Version 5.1 : from : 19 jun 2008 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 6.1 : from : 09 feb 2021 **/ /** to : 09 feb 2021 **/ /** # Version 7.0 : from : 11 aug 2024 **/ /** to : 09 jan 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #ifndef __parmetis_h__ #define __parmetis_h__ #include /* Since ParMeTiS does it, do it too */ #endif /* __parmetis_h__ */ #ifdef SCOTCH_METIS_PREFIX #ifndef SCOTCH_METIS_PREFIXC /* Prefix for C language interface */ #define SCOTCH_METIS_PREFIXC SCOTCH_ #endif /* SCOTCH_METIS_PREFIXC */ #ifndef SCOTCH_METIS_PREFIXFL /* Prefix for Fortran lowercase interface */ #define SCOTCH_METIS_PREFIXFL scotchf #endif /* SCOTCH_METIS_PREFIXFL */ #ifndef SCOTCH_METIS_PREFIXFU /* Prefix for Fortran uppercase interface */ #define SCOTCH_METIS_PREFIXFU SCOTCHF #endif /* SCOTCH_METIS_PREFIXFU */ #ifndef SCOTCH_METIS_PREFIXS /* Make Scotch interface internal */ #define SCOTCH_METIS_PREFIXS _SCOTCH #define SCOTCH_METIS_PREFIXSL _scotch #define SCOTCH_METIS_PREFIXSU _SCOTCH #endif /* SCOTCH_METIS_PREFIXS */ #endif /* SCOTCH_METIS_PREFIX */ #ifndef SCOTCH_METIS_PREFIXC #define SCOTCH_METIS_PREFIXC #endif /* SCOTCH_METIS_PREFIXC */ #ifndef SCOTCH_METIS_PREFIXFL #define SCOTCH_METIS_PREFIXFL #endif /* SCOTCH_METIS_PREFIXFL */ #ifndef SCOTCH_METIS_PREFIXFU #define SCOTCH_METIS_PREFIXFU #endif /* SCOTCH_METIS_PREFIXFU */ #ifndef SCOTCH_METIS_PREFIXS /* Make Scotch interface external */ #define SCOTCH_METIS_PREFIXS SCOTCH_ #define SCOTCH_METIS_PREFIXSL scotchf #define SCOTCH_METIS_PREFIXSU SCOTCHF #endif /* SCOTCH_METIS_PREFIXS */ #ifndef SCOTCHMETISNAMEC #define SCOTCHMETISNAMEC(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXC),s) #define SCOTCHMETISNAMEFL(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXFL),s) #define SCOTCHMETISNAMEFU(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXFU),s) #define SCOTCHMETISNAMES(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXS),s) #define SCOTCHMETISNAMESL(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXSL),s) #define SCOTCHMETISNAMESU(s) SCOTCHMETISNAME2(SCOTCHMETISNAME3(SCOTCH_METIS_PREFIXSU),s) #define SCOTCHMETISNAME2(p,s) SCOTCHMETISNAME4(p,s) #define SCOTCHMETISNAME3(s) s #define SCOTCHMETISNAME4(p,s) p##s #endif /* SCOTCHMETISNAMEC */ #ifndef SCOTCH_METIS_RETURN #define SCOTCH_METIS_RETURN typedef enum { METIS_OK = 1, METIS_ERROR_INPUT = -2, METIS_ERROR_MEMORY = -3, METIS_ERROR = -4 } rstatus_et; #endif /* SCOTCH_METIS_RETURN */ /* ** The type and structure definitions. */ #ifndef LIB_SCOTCH_H /* In case "scotch.h" not included before */ typedef DUMMYINT SCOTCH_Num; #endif /* LIB_SCOTCH_H */ #ifndef SCOTCH_PARMETIS_DATATYPES #define SCOTCH_PARMETIS_DATATYPES typedef SCOTCH_Num idxtype; #endif /* SCOTCH_PARMETIS_DATATYPES */ /* ** The function prototypes. */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ int SCOTCHMETISNAMES (ParMETIS_V3_NodeND) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCHMETISNAMES (ParMETIS_V3_PartGeomKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCHMETISNAMES (ParMETIS_V3_PartKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCHMETISNAMES (ParMETIS_V3_Mesh2Dual) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, MPI_Comm * const); #ifndef SCOTCH_PARMETIS_VERSION #define SCOTCH_PARMETIS_VERSION 3 /* ParMeTiS API version is 3 by default */ #endif /* SCOTCH_PARMETIS_VERSION */ #if (SCOTCH_PARMETIS_VERSION == 3) int SCOTCHMETISNAMEC (ParMETIS_V3_NodeND) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCHMETISNAMEC (ParMETIS_V3_PartGeomKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCHMETISNAMEC (ParMETIS_V3_PartKway) (const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const float * const, const float * const, const SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, MPI_Comm * const); int SCOTCHMETISNAMEC (ParMETIS_V3_Mesh2Dual) (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, MPI_Comm * const); #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ #ifdef __cplusplus } #endif /* __cplusplus */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_dual.c000066400000000000000000000264261514310134000304440ustar00rootroot00000000000000/* Copyright 2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_dual.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the MeTiS partitioning **/ /** routines containing routines relative **/ /** to dual graphs **/ /** **/ /** DATES : # Version 6.1 : from : 01 sep 2020 **/ /** to : 28 may 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 06 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ #include "metis_graph_dual.h" /* Our "metis.h" file */ /* This routine creates a (SCOTCH_)Mesh structure ** from the partial mesh connectivity data that is ** passed to it. ** It returns: ** - METIS_OK : if the mesh has been successfully built. ** - METIS_ERROR* : on error. */ int _SCOTCH_METIS_MeshToDual2 ( SCOTCH_Mesh * const meshptr, /*+ Mesh structure to fill +*/ const SCOTCH_Num baseval, /*+ Base value +*/ const SCOTCH_Num vnodnbr, /*+ Number of nodes in mesh +*/ const SCOTCH_Num velmnbr, /*+ Number of elements in mesh +*/ const SCOTCH_Num * const verttab, /*+ Array of start indices of elements in edgetab +*/ const SCOTCH_Num * const edgetab) /*+ Array of elements +*/ { Gnum * restrict srcverttax; Gnum * restrict srcedgetax; Gnum degrmax; Gnum edgenbr; Gnum edgenum; Gnum vertnum; Mesh * const srcmeshptr = (Mesh *) meshptr; /* Use structure as source mesh */ const Gnum * restrict const verttax = verttab - baseval; const Gnum * restrict const edgetax = edgetab - baseval; const Gnum velmnnd = velmnbr + baseval; #ifdef SCOTCH_DEBUG_LIBRARY1 for (vertnum = baseval; vertnum < velmnnd; vertnum ++) { /* For all element vertices */ Gnum edgenum; Gnum edgennd; edgenum = verttax[vertnum]; edgennd = verttax[vertnum + 1]; if (edgennd < edgenum) { SCOTCH_errorPrint ("_SCOTCH_METIS_MeshToDual2: invalid input indices (1)"); return (METIS_ERROR_INPUT); } for ( ; edgenum < edgennd; edgenum ++) { if ((edgetax[edgenum] < baseval) || (edgetax[edgenum] > (baseval + vnodnbr))) { SCOTCH_errorPrint ("_SCOTCH_METIS_MeshToDual2: invalid input indices (2)"); return (METIS_ERROR_INPUT); } } } #endif /* SCOTCH_DEBUG_LIBRARY1 */ srcmeshptr->flagval = MESHFREEEDGE | MESHFREEVERT; srcmeshptr->baseval = baseval; srcmeshptr->velmbas = baseval; /* Elements are placed first */ srcmeshptr->velmnbr = velmnbr; srcmeshptr->velmnnd = velmnnd; srcmeshptr->vnodbas = velmnnd; /* Nodes are placed after */ srcmeshptr->vnodnbr = vnodnbr; srcmeshptr->vnodnnd = vnodnbr + velmnnd; srcmeshptr->velotax = NULL; /* No element loads */ srcmeshptr->velosum = velmnbr; srcmeshptr->vnlotax = NULL; /* No node loads */ srcmeshptr->vnlosum = vnodnbr; if ((srcverttax = memAlloc ((velmnbr + vnodnbr + 1) * sizeof (Gnum))) == NULL) { /* Allocate compact vertex array for mesh vertices */ SCOTCH_errorPrint ("_SCOTCH_METIS_MeshToDual2: out of memory (1)"); return (METIS_ERROR_MEMORY); } memSet (srcverttax + velmnbr, 0, vnodnbr * sizeof (Gnum)); /* Initialize node part of array as node vertex degrees */ srcverttax -= baseval; /* Array is now based */ srcmeshptr->verttax = srcverttax; srcmeshptr->vendtax = srcverttax + 1; degrmax = 0; edgenbr = 0; for (vertnum = baseval; vertnum < velmnnd; vertnum ++) { /* For all element vertices */ Gnum edgenum; Gnum edgennd; Gnum degrval; edgenum = verttax[vertnum]; edgennd = verttax[vertnum + 1]; degrval = edgennd - edgenum; if (degrval > degrmax) /* Compute vertex maximum degree for element vertices */ degrmax = degrval; edgenbr += degrval; /* Accumulate number of element-node arcs */ for ( ; edgenum < edgennd; edgenum ++) srcverttax[velmnbr + edgetax[edgenum]] ++; /* Accumulate degrees of end node vertices */ } edgenbr *= 2; /* Overall number of arcs is twice the number of element-node arcs */ srcmeshptr->edgenbr = edgenbr; if (verttax[baseval] == baseval) /* If vertex indices are aligned with graph base value */ memCpy (srcverttax + baseval, verttab, velmnbr * sizeof (Gnum)); /* Copy element adjacency list into element part of vertex array */ else { Gnum edgeadj; edgeadj = verttax[baseval] - baseval; for (vertnum = baseval; vertnum < velmnnd; vertnum ++) srcverttax[vertnum] = verttax[vertnum] + edgeadj; } for (vertnum = velmnnd, edgenum = verttax[velmnnd]; vertnum < velmnnd + vnodnbr; vertnum ++) { /* For all node vertex indices in mesh */ Gnum degrval; degrval = srcverttax[vertnum]; if (degrval > degrmax) /* Compute vertex maximum degree for node vertices */ degrmax = degrval; srcverttax[vertnum] = edgenum; /* Fill node part of vertex array */ edgenum += degrval; } srcverttax[vertnum] = edgenum; /* Mark end of vertex array */ srcmeshptr->degrmax = degrmax; if ((srcedgetax = memAlloc (edgenbr * sizeof (Gnum))) == NULL) { SCOTCH_errorPrint ("_SCOTCH_METIS_MeshToDual2: out of memory (2)"); memFree (srcverttax + baseval); return (METIS_ERROR_MEMORY); } srcedgetax -= baseval; srcmeshptr->edgetax = srcedgetax; for (edgenum = baseval; edgenum < verttax[velmnnd]; edgenum ++) /* Copy skewed edge array for element vertices */ srcedgetax[edgenum] = edgetax[edgenum] + velmnbr; for (vertnum = baseval; vertnum < velmnnd; vertnum ++) { Gnum edgenum; for (edgenum = verttax[vertnum]; edgenum < verttax[vertnum + 1]; edgenum ++) /* Build edge array for node vertices */ srcedgetax[srcverttax[edgetax[edgenum] + velmnbr] ++] = vertnum; } memMov (srcverttax + velmnnd + 1, srcverttax + velmnnd, (vnodnbr - 1) * sizeof (Gnum)); /* Re-build node part of vertex array */ srcverttax[velmnnd] = verttax[velmnnd]; return (METIS_OK); } /* ** */ int SCOTCHMETISNAMES (METIS_MeshToDual) ( const SCOTCH_Num * const ne, const SCOTCH_Num * const nn, const SCOTCH_Num * const eptr, const SCOTCH_Num * const eind, const SCOTCH_Num * const ncommon, const SCOTCH_Num * const nuimflag, SCOTCH_Num ** const xadj, SCOTCH_Num ** const adjncy) { SCOTCH_Mesh meshdat; SCOTCH_Graph grafdat; SCOTCH_Num baseval; SCOTCH_Num vertnbr; SCOTCH_Num * verttab; SCOTCH_Num * vendtab; SCOTCH_Num edgenbr; SCOTCH_Num * edgetab; int o; *xadj = NULL; /* Assume something will go wrong */ SCOTCH_meshInit (&meshdat); SCOTCH_graphInit (&grafdat); o = _SCOTCH_METIS_MeshToDual2 (&meshdat, *nuimflag, *nn, *ne, eptr, eind); if (o != METIS_OK) { SCOTCH_errorPrint ("SCOTCH_METIS_MeshToDual: cannot create mesh"); return (o); } o = SCOTCH_meshGraphDual (&meshdat, &grafdat, *ncommon); SCOTCH_meshExit (&meshdat); /* Mesh structure is no longer needed */ if (o != 0) { SCOTCH_errorPrint ("SCOTCH_METIS_MeshToDual: cannot create graph from mesh"); return (o); } SCOTCH_graphData (&grafdat, &baseval, &vertnbr, &verttab, &vendtab, NULL, NULL, &edgenbr, &edgetab, NULL); if (((*xadj = malloc ((vertnbr + 1) * sizeof (SCOTCH_Num))) == NULL) || /* Do not use libScotch memory allocation as freed by user */ ((*adjncy = malloc (edgenbr * sizeof(SCOTCH_Num))) == NULL)) { SCOTCH_errorPrint ("SCOTCH_METIS_MeshToDual: out of memory"); if (*xadj != NULL) free (*xadj); SCOTCH_graphExit (&grafdat); return (METIS_ERROR_MEMORY); } memCpy (*xadj, verttab, (vertnbr + 1) * sizeof (SCOTCH_Num)); memCpy (*adjncy, edgetab, edgenbr * sizeof (SCOTCH_Num)); SCOTCH_graphExit (&grafdat); return (METIS_OK); } /* ** */ int SCOTCHMETISNAMEC (METIS_MeshToDual) ( const SCOTCH_Num * const ne, const SCOTCH_Num * const nn, const SCOTCH_Num * const eptr, const SCOTCH_Num * const eind, const SCOTCH_Num * const ncommon, const SCOTCH_Num * const nuimflag, SCOTCH_Num ** const xadj, SCOTCH_Num ** const adjncy) { return (SCOTCHMETISNAMES (METIS_MeshToDual) (ne, nn, eptr, eind, ncommon, nuimflag, xadj, adjncy)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_dual.h000066400000000000000000000053421514310134000304430ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014-2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_dual.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the MeTiS mesh conversion **/ /** functions. **/ /** **/ /** DATES : # Version 6.1 : from : 24 may 2021 **/ /** to : 24 may 2021 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ int _SCOTCH_METIS_MeshToDual2 (SCOTCH_Mesh * const, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_dual_f.c000066400000000000000000000104601514310134000307400ustar00rootroot00000000000000/* Copyright 2020,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_dual_f.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** MeTiS dual graph processing routines. **/ /** **/ /** DATES : # Version 6.1 : from : 11 may 2021 **/ /** to : 24 may 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph dual routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_MESHTODUAL), \ SCOTCHMETISNAMESL (metis_meshtodual), ( \ const SCOTCH_Num * const ne, \ const SCOTCH_Num * const nn, \ const SCOTCH_Num * const eptr, \ const SCOTCH_Num * const eind, \ const SCOTCH_Num * const ncommon, \ const SCOTCH_Num * const nuimflag, \ SCOTCH_Num ** const xadj, \ SCOTCH_Num ** const adjncy), \ (ne, nn, eptr, eind, ncommon, nuimflag, xadj, adjncy)) { SCOTCHMETISNAMES (METIS_MeshToDual) (ne, nn, eptr, eind, ncommon, nuimflag, xadj, adjncy); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_MESHTODUAL), \ SCOTCHMETISNAMEFL (metis_meshtodual), ( \ const SCOTCH_Num * const ne, \ const SCOTCH_Num * const nn, \ const SCOTCH_Num * const eptr, \ const SCOTCH_Num * const eind, \ const SCOTCH_Num * const ncommon, \ const SCOTCH_Num * const nuimflag, \ SCOTCH_Num ** const xadj, \ SCOTCH_Num ** const adjncy), \ (ne, nn, eptr, eind, ncommon, nuimflag, xadj, adjncy)) { SCOTCHMETISNAMES (METIS_MeshToDual) (ne, nn, eptr, eind, ncommon, nuimflag, xadj, adjncy); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_order.c000066400000000000000000000210521514310134000306200ustar00rootroot00000000000000/* Copyright 2007,2008,2010,2012,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Amaury JACQUES (v6.0) **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the MeTiS ordering **/ /** routines. **/ /** **/ /** DATES : # Version 5.0 : from : 08 sep 2006 **/ /** to : 07 jun 2007 **/ /** # Version 5.1 : from : 30 jun 2010 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 6.1 : from : 20 jun 2021 **/ /** to : 20 jun 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /************************************/ /* */ /* These routines are the C API for */ /* MeTiS graph ordering routines. */ /* */ /************************************/ static int _SCOTCH_METIS_Node ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { SCOTCH_Graph grafdat; /* Scotch graph object to interface with libScotch */ SCOTCH_Ordering ordedat; /* Scotch ordering object to interface with libScotch */ SCOTCH_Strat stradat; int o; o = METIS_ERROR; /* Assume an error */ SCOTCH_graphInit (&grafdat); if (SCOTCH_graphBuild (&grafdat, *numflag, *n, xadj, xadj + 1, vwgt, NULL, xadj[*n] - *numflag, adjncy, NULL) == 0) { SCOTCH_stratInit (&stradat); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_graphCheck (&grafdat) == 0) /* TRICK: next instruction called only if graph is consistent */ #endif /* SCOTCH_DEBUG_ALL */ { if (SCOTCH_graphOrderInit (&grafdat, &ordedat, iperm, perm, /* MeTiS and Scotch have opposite definitions for (inverse) permutations */ NULL, NULL, NULL) == 0) { if (SCOTCH_graphOrderCompute (&grafdat, &ordedat, &stradat) == 0) o = METIS_OK; SCOTCH_graphOrderExit (&grafdat, &ordedat); } } SCOTCH_stratExit (&stradat); } SCOTCH_graphExit (&grafdat); return (o); } /* ** */ int SCOTCHMETISNAMES (METIS_V3_EdgeND) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (_SCOTCH_METIS_Node (n, xadj, adjncy, NULL, numflag, options, perm, iperm)); } /* ** */ int SCOTCHMETISNAMES (METIS_V3_NodeND) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (_SCOTCH_METIS_Node (n, xadj, adjncy, NULL, numflag, options, perm, iperm)); } /* ** */ int SCOTCHMETISNAMES (METIS_V3_NodeWND) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (_SCOTCH_METIS_Node (n, xadj, adjncy, vwgt, numflag, options, perm, iperm)); } /* ** */ int SCOTCHMETISNAMES (METIS_V5_NodeND) ( const SCOTCH_Num * const nvtxs, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { SCOTCH_Num baseval; baseval = ((options != NULL) && (options != xadj)) ? options[METIS_OPTION_NUMBERING] : 0; return (_SCOTCH_METIS_Node (nvtxs, xadj, adjncy, vwgt, &baseval, options, perm, iperm)); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 3) int SCOTCHMETISNAMEC (METIS_EdgeND) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (SCOTCHMETISNAMES (METIS_V3_EdgeND) (n, xadj, adjncy, numflag, options, perm, iperm)); } /* ** */ int SCOTCHMETISNAMEC (METIS_NodeND) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (SCOTCHMETISNAMES (METIS_V3_NodeND) (n, xadj, adjncy, numflag, options, perm, iperm)); } /* ** */ int SCOTCHMETISNAMEC (METIS_NodeWND) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (SCOTCHMETISNAMES (METIS_V3_NodeWND) (n, xadj, adjncy, vwgt, numflag, options, perm, iperm)); } #endif /* (SCOTCH_METIS_VERSION == 3) */ /*******************/ /* */ /* MeTiS v5 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 5) int SCOTCHMETISNAMEC (METIS_NodeND) ( const SCOTCH_Num * const nvtxs, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const options, SCOTCH_Num * const perm, SCOTCH_Num * const iperm) { return (SCOTCHMETISNAMES (METIS_V5_NodeND) (nvtxs, xadj, adjncy, vwgt, options, perm, iperm)); } #endif /* (SCOTCH_METIS_VERSION == 5) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_order_f.c000066400000000000000000000204341514310134000311300ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2015,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_order_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** MeTiS ordering routines. **/ /** **/ /** DATES : # Version 5.0 : from : 10 sep 2006 **/ /** to : 10 sep 2006 **/ /** # Version 5.1 : from : 30 jun 2010 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph ordering routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V3_EDGEND), \ SCOTCHMETISNAMESL (metis_v3_edgend), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm, \ int * const revaptr), \ (n, xadj, adjncy, numflag, options, perm, iperm, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V3_EdgeND) (n, xadj, adjncy, numflag, options, perm, iperm); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V3_NODEND), \ SCOTCHMETISNAMESL (metis_v3_nodend), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm, \ int * const revaptr), \ (n, xadj, adjncy, numflag, options, perm, iperm, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V3_NodeND) (n, xadj, adjncy, numflag, options, perm, iperm); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V3_NODEWND), \ SCOTCHMETISNAMESL (metis_v3_nodewnd), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm, \ int * const revaptr), \ (n, xadj, adjncy, vwgt, numflag, options, perm, iperm, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V3_NodeWND) (n, xadj, adjncy, vwgt, numflag, options, perm, iperm); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V5_NODEND), \ SCOTCHMETISNAMESL (metis_v5_nodend), ( \ const SCOTCH_Num * const nvtxs, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm, \ int * const revaptr), \ (nvtxs, xadj, adjncy, vwgt, options, perm, iperm, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V5_NodeND) (nvtxs, xadj, adjncy, vwgt, options, perm, iperm); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 3) FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_EDGEND), \ SCOTCHMETISNAMEFL (metis_edgend), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm), \ (n, xadj, adjncy, numflag, options, perm, iperm)) { SCOTCHMETISNAMEC (METIS_EdgeND) (n, xadj, adjncy, numflag, options, perm, iperm); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_NODEND), \ SCOTCHMETISNAMEFL (metis_nodend), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm), \ (n, xadj, adjncy, numflag, options, perm, iperm)) { SCOTCHMETISNAMEC (METIS_NodeND) (n, xadj, adjncy, numflag, options, perm, iperm); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_NODEWND), \ SCOTCHMETISNAMEFL (metis_nodewnd), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm), \ (n, xadj, adjncy, vwgt, numflag, options, perm, iperm)) { SCOTCHMETISNAMEC (METIS_NodeWND) (n, xadj, adjncy, vwgt, numflag, options, perm, iperm); } #endif /* (SCOTCH_METIS_VERSION == 3) */ /*******************/ /* */ /* MeTiS v5 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 5) FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_NODEND), \ SCOTCHMETISNAMEFL (metis_nodend), ( \ const SCOTCH_Num * const nvtxs, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const perm, \ SCOTCH_Num * const iperm), \ (nvtxs, xadj, adjncy, vwgt, options, perm, iperm)) { SCOTCHMETISNAMEC (METIS_NodeND) (nvtxs, xadj, adjncy, vwgt, options, perm, iperm); } #endif /* (SCOTCH_METIS_VERSION == 5) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_part.c000066400000000000000000000601471514310134000304630ustar00rootroot00000000000000/* Copyright 2007-2012,2018,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_part.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Amaury JACQUES (v6.0) **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the MeTiS partitioning **/ /** routines. **/ /** **/ /** DATES : # Version 5.0 : from : 08 sep 2006 **/ /** to : 07 jun 2007 **/ /** # Version 5.1 : from : 06 jun 2009 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 23 dec 2011 **/ /** to : 19 aug 2019 **/ /** # Version 6.1 : from : 20 jun 2021 **/ /** to : 30 dec 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ #include "metis_graph_part.h" /********************************/ /* */ /* These routines compute MeTiS */ /* mapping statistics. */ /* */ /********************************/ /* This routine computes the cut cost of the ** given partition. ** It returns: ** - METIS_OK : if the metrics could be computed. ** - METIS_ERROR_* : on error. */ int _SCOTCH_METIS_OutputCut ( const SCOTCH_Num baseval, const SCOTCH_Num vertnnd, const SCOTCH_Num * const verttax, const SCOTCH_Num * const edgetax, const SCOTCH_Num * const edlotax, const SCOTCH_Num * const parttax, SCOTCH_Num * const csizptr) { SCOTCH_Num csizsum; csizsum = 0; if (edlotax == NULL) { /* If graph does not have edge weights */ SCOTCH_Num vertnum; SCOTCH_Num edgenum; for (vertnum = edgenum = baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num edgennd; SCOTCH_Num partval; partval = parttax[vertnum]; for (edgennd = verttax[vertnum + 1]; edgenum < edgennd; edgenum ++) { if (parttax[edgetax[edgenum]] != partval) csizsum ++; } } } else { /* Graph has edge weights */ SCOTCH_Num vertnum; SCOTCH_Num edgenum; for (vertnum = edgenum = baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num edgennd; SCOTCH_Num partval; partval = parttax[vertnum]; for (edgennd = verttax[vertnum + 1]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; vertend = edgetax[edgenum]; if (parttax[vertend] != partval) csizsum += edlotax[edgenum]; } } } *csizptr = csizsum / 2; return (METIS_OK); } /* This routine computes the cost of the ** given partition. ** It returns: ** - METIS_OK : if the metrics could be computed. ** - METIS_ERROR_* : on error. */ int _SCOTCH_METIS_OutputVol ( const SCOTCH_Num baseval, const SCOTCH_Num vertnnd, const SCOTCH_Num * const verttax, const SCOTCH_Num * const edgetax, const SCOTCH_Num * const vsiztax, const SCOTCH_Num partnbr, const SCOTCH_Num * const parttax, SCOTCH_Num * const cvolptr) { SCOTCH_Num * restrict nghbtax; SCOTCH_Num vsizval; /* Communication volume of current vertex */ SCOTCH_Num vertnum; SCOTCH_Num edgenum; SCOTCH_Num cvolsum; if ((nghbtax = memAlloc (partnbr * sizeof (SCOTCH_Num))) == NULL) /* Part array is un-based at allocation */ return (METIS_ERROR_MEMORY); memSet (nghbtax, ~0, partnbr * sizeof (SCOTCH_Num)); nghbtax -= baseval; /* Base part array since parts are based in MeTiS */ vsizval = 1; /* Assume no vertex communication sizes */ cvolsum = 0; for (vertnum = edgenum = baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num partval; SCOTCH_Num edgennd; partval = parttax[vertnum]; nghbtax[partval] = vertnum; /* Do not count local neighbors in communication volume */ if (vsiztax != NULL) vsizval = vsiztax[vertnum]; for (edgennd = verttax[vertnum + 1]; edgenum < edgennd; edgenum ++) { /* Based traversal of edge array adjncy */ SCOTCH_Num vertend; /* Based end vertex number */ SCOTCH_Num partend; vertend = edgetax[edgenum]; partend = parttax[vertend]; if (nghbtax[partend] != vertnum) { /* If first neighbor in this part */ nghbtax[partend] = vertnum; /* Set part as accounted for */ cvolsum += vsizval; } } } *cvolptr = cvolsum; memFree (nghbtax + baseval); /* Free un-based array */ return (METIS_OK); } /************************************/ /* */ /* These routines are the C API for */ /* MeTiS graph ordering routines. */ /* */ /************************************/ /* This routine converts an array of doubles ** into an array of proportionate integers. ** It returns: ** - void : in all cases. */ #define EPSILON 1e-6 void _SCOTCH_METIS_doubleToInt ( const SCOTCH_Num valunbr, const double * const doubtab, SCOTCH_Num * const intetab) { double doubadj; SCOTCH_Num i; for (i = 0, doubadj = 1.0; i < valunbr; i ++) { double doubval; double doubtmp; doubval = doubtab[i]; doubval *= doubadj; /* See if renormalization factor works */ doubtmp = doubval - floor (doubval + EPSILON); /* Determine its possible fractional part */ if (fabs (doubtmp) >= EPSILON) { /* If a residual fractional part exists */ doubtmp = doubadj / doubtmp; /* Incorporate it in renormalization factor */ doubadj = (doubadj * doubtmp) / (double) intGcd ((int) round (doubadj), (int) round (doubtmp)); } } for (i = 0; i < valunbr; i ++) intetab[i] = (SCOTCH_Num) round (doubtab[i] * doubadj); } /* This routine is the interface between MeTiS ** and Scotch. It computes the partition of a ** weighted or unweighted graph. ** It returns: ** - 0 : if the partition could be computed. ** - !0 : on error. */ static int _SCOTCH_METIS_PartGraph2 ( const SCOTCH_Num * const n, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const double * const tpwgts, SCOTCH_Num * const part, SCOTCH_Num flagval, const double * const kbalval) { SCOTCH_Graph grafdat; /* Scotch graph object to interface with libScotch */ SCOTCH_Num * twintab; /* Integer array of target weights (if any) */ SCOTCH_Strat stradat; SCOTCH_Num baseval; SCOTCH_Num vertnbr; int o; twintab = NULL; if (tpwgts != NULL) { /* If weighted part array */ double * twdbtab; /* Double array of target weights */ SCOTCH_Num i; if ((twintab = malloc (*nparts * sizeof (SCOTCH_Num))) == NULL) return (METIS_ERROR_MEMORY); if ((twdbtab = malloc (*nparts * sizeof (double))) == NULL) { free (twintab); return (METIS_ERROR_MEMORY); } for (i = 0; i < *nparts; i ++) /* Gather first target constraint; only this one is used */ twdbtab[i] = tpwgts[i * *ncon]; _SCOTCH_METIS_doubleToInt (*nparts, twdbtab, twintab); /* Convert balance array to integers */ free (twdbtab); /* Array no longer of use */ } SCOTCH_graphInit (&grafdat); baseval = *numflag; vertnbr = *n; o = 1; /* Assume something will go wrong */ if (SCOTCH_graphBuild (&grafdat, baseval, vertnbr, xadj, xadj + 1, vwgt, NULL, xadj[vertnbr] - baseval, adjncy, adjwgt) == 0) { SCOTCH_stratInit (&stradat); SCOTCH_stratGraphMapBuild (&stradat, flagval, *nparts, *kbalval); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_graphCheck (&grafdat) == 0) /* TRICK: next instruction called only if graph is consistent */ #endif /* SCOTCH_DEBUG_ALL */ { if (tpwgts == NULL) o = SCOTCH_graphPart (&grafdat, *nparts, &stradat, part); else { SCOTCH_Arch archdat; if (SCOTCH_archInit (&archdat) == 0) { if (SCOTCH_archCmpltw (&archdat, *nparts, twintab) == 0) { o = SCOTCH_graphMap (&grafdat, &archdat, &stradat, part); } SCOTCH_archExit(&archdat); } } } SCOTCH_stratExit (&stradat); } SCOTCH_graphExit (&grafdat); if (twintab != NULL) free (twintab); if (o != 0) return (1); if (baseval != 0) { /* MeTiS part array is based, Scotch is not */ SCOTCH_Num vertnum; for (vertnum = 0; vertnum < vertnbr; vertnum ++) part[vertnum] += baseval; } return (0); } /* ** */ static int _SCOTCH_METIS_PartGraph ( const SCOTCH_Num * const n, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const double * const tpwgts, const SCOTCH_Num * const options, SCOTCH_Num * const edgecut, SCOTCH_Num * const part, SCOTCH_Num flagval, const double * const kbalval) { if (_SCOTCH_METIS_PartGraph2 (n, ncon, xadj, adjncy, vwgt, adjwgt, numflag, nparts, tpwgts, part, flagval, kbalval) != 0) { *edgecut = -1; /* Indicate error */ return (METIS_ERROR); } return (_SCOTCH_METIS_OutputCut (*numflag, *n + *numflag, xadj - *numflag, adjncy - *numflag, (adjwgt != NULL) ? (adjwgt - *numflag) : NULL, part - *numflag, edgecut)); } /* Scotch does not directly consider communication volume. ** Instead, vertex communication loads are added to the edge ** loads so as to emulate this behavior: heavily weighted ** edges, connected to heavily communicating vertices, will ** be less likely to be cut. */ static int _SCOTCH_METIS_PartGraph_Volume ( const SCOTCH_Num * const n, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const double * const tpwgts, const SCOTCH_Num * const options, SCOTCH_Num * const volume, SCOTCH_Num * const part, SCOTCH_Num flagval, const double * const kbalval) { SCOTCH_Num baseval; SCOTCH_Num vertnbr; SCOTCH_Num vertnum; SCOTCH_Num edgenum; const SCOTCH_Num * restrict edgetax; const SCOTCH_Num * restrict vsiztax; baseval = *numflag; vertnbr = *n; edgetax = adjncy - baseval; if (vsize == NULL) { /* If no communication load data provided */ if (_SCOTCH_METIS_PartGraph2 (n, ncon, xadj, adjncy, vwgt, NULL, numflag, nparts, tpwgts, part, flagval, kbalval) != 0) return (METIS_ERROR); vsiztax = NULL; } else { /* Will have to turn communication volumes into edge loads */ SCOTCH_Num edgenbr; SCOTCH_Num * restrict edlotax; int o; edgenbr = xadj[vertnbr] - baseval; if ((edlotax = memAlloc (edgenbr * sizeof (SCOTCH_Num))) == NULL) return (METIS_ERROR); edlotax -= baseval; /* Base access to edlotax */ vsiztax = vsize - baseval; for (vertnum = 0, edgenum = baseval; /* Un-based scan of vertex array xadj */ vertnum < vertnbr; vertnum ++) { SCOTCH_Num vsizval; /* Communication size of current vertex */ SCOTCH_Num edgennd; vsizval = vsize[vertnum]; for (edgennd = xadj[vertnum + 1]; edgenum < edgennd; edgenum ++) { /* Based traversal of edge array adjncy */ SCOTCH_Num vertend; /* Based end vertex number */ vertend = edgetax[edgenum]; edlotax[edgenum] = vsizval + vsiztax[vertend]; } } o = _SCOTCH_METIS_PartGraph2 (n, ncon, xadj, adjncy, vwgt, edlotax + baseval, numflag, nparts, tpwgts, part, flagval, kbalval); memFree (edlotax + baseval); if (o != 0) return (METIS_ERROR); } return (_SCOTCH_METIS_OutputVol (baseval, *n + baseval, xadj - baseval, adjncy - baseval, vsiztax, *nparts, part - baseval, volume)); } /* ** */ int SCOTCHMETISNAMES (METIS_V3_PartGraphKway) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const SCOTCH_Num * const options, SCOTCH_Num * const edgecut, SCOTCH_Num * const part) { const SCOTCH_Num * vwgt2; const SCOTCH_Num * adjwgt2; double kbalval; kbalval = 0.01; vwgt2 = ((wgtflag == NULL) || ((*wgtflag & 2) != 0)) ? vwgt : NULL; adjwgt2 = ((wgtflag == NULL) || ((*wgtflag & 1) != 0)) ? adjwgt : NULL; return (_SCOTCH_METIS_PartGraph (n, 0, xadj, adjncy, vwgt2, adjwgt2, numflag, nparts, NULL, options, edgecut, part, SCOTCH_STRATDEFAULT, &kbalval)); } /* ** */ int SCOTCHMETISNAMES (METIS_V3_PartGraphRecursive) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const SCOTCH_Num * const options, SCOTCH_Num * const edgecut, SCOTCH_Num * const part) { const SCOTCH_Num * vwgt2; const SCOTCH_Num * adjwgt2; double kbalval; kbalval = 0.01; vwgt2 = ((wgtflag == NULL) || ((*wgtflag & 2) != 0)) ? vwgt : NULL; adjwgt2 = ((wgtflag == NULL) || ((*wgtflag & 1) != 0)) ? adjwgt : NULL; return (_SCOTCH_METIS_PartGraph (n, 0, xadj, adjncy, vwgt2, adjwgt2, numflag, nparts, NULL, options, edgecut, part, SCOTCH_STRATRECURSIVE, &kbalval)); } /* ** */ int SCOTCHMETISNAMES (METIS_V3_PartGraphVKway) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const SCOTCH_Num * const options, SCOTCH_Num * const volume, SCOTCH_Num * const part) { const SCOTCH_Num * vwgt2; const SCOTCH_Num * vsize2; double kbalval; kbalval = 0.01; vsize2 = ((wgtflag == NULL) || ((*wgtflag & 1) != 0)) ? vsize : NULL; vwgt2 = ((wgtflag == NULL) || ((*wgtflag & 2) != 0)) ? vwgt : NULL; return (_SCOTCH_METIS_PartGraph_Volume (n, 0, xadj, adjncy, vwgt2, vsize2, numflag, nparts, NULL, options, volume, part, SCOTCH_STRATDEFAULT, &kbalval)); } /* ** */ int SCOTCHMETISNAMES (METIS_V5_PartGraphKway) ( const SCOTCH_Num * const nvtxs, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const nparts, const double * const tpwgts, const double * const ubvec, const SCOTCH_Num * const options, SCOTCH_Num * const objval, SCOTCH_Num * const part) { SCOTCH_Num baseval; double kbalval; kbalval = 0.01; baseval = ((options != NULL) && (options != xadj)) ? options[METIS_OPTION_NUMBERING] : 0; return ((vsize == NULL) ? _SCOTCH_METIS_PartGraph (nvtxs, ncon, xadj, adjncy, vwgt, adjwgt, &baseval, nparts, tpwgts, options, objval, part, SCOTCH_STRATDEFAULT, (ubvec != NULL) ? ubvec : &kbalval) : _SCOTCH_METIS_PartGraph_Volume (nvtxs, ncon, xadj, adjncy, vwgt, vsize, &baseval, nparts, tpwgts, options, objval, part, SCOTCH_STRATDEFAULT, (ubvec != NULL) ? ubvec : &kbalval)); } /* ** */ int SCOTCHMETISNAMES (METIS_V5_PartGraphRecursive) ( const SCOTCH_Num * const nvtxs, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const nparts, const double * const tpwgts, const double * const ubvec, const SCOTCH_Num * const options, SCOTCH_Num * const objval, SCOTCH_Num * const part) { SCOTCH_Num baseval; baseval = ((options != NULL) && (options != xadj)) ? options[METIS_OPTION_NUMBERING] : 0; return ((vsize == NULL) ? _SCOTCH_METIS_PartGraph (nvtxs, ncon, xadj, adjncy, vwgt, adjwgt, &baseval, nparts, tpwgts, options, objval, part, SCOTCH_STRATRECURSIVE, ubvec) : _SCOTCH_METIS_PartGraph_Volume (nvtxs, ncon, xadj, adjncy, vwgt, vsize, &baseval, nparts, tpwgts, options, objval, part, SCOTCH_STRATRECURSIVE, ubvec)); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 3) int SCOTCHMETISNAMEC (METIS_PartGraphKway) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const SCOTCH_Num * const options, SCOTCH_Num * const edgecut, SCOTCH_Num * const part) { return (SCOTCHMETISNAMES (METIS_V3_PartGraphKway) (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part)); } /* ** */ int SCOTCHMETISNAMEC (METIS_PartGraphRecursive) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const SCOTCH_Num * const options, SCOTCH_Num * const edgecut, SCOTCH_Num * const part) { return (SCOTCHMETISNAMES (METIS_V3_PartGraphRecursive) (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part)); } /* ** */ int SCOTCHMETISNAMEC (METIS_PartGraphVKway) ( const SCOTCH_Num * const n, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const nparts, const SCOTCH_Num * const options, SCOTCH_Num * const volume, SCOTCH_Num * const part) { return (SCOTCHMETISNAMES (METIS_V3_PartGraphVKway) (n, xadj, adjncy, vwgt, vsize, wgtflag, numflag, nparts, options, volume, part)); } #endif /* (SCOTCH_METIS_VERSION == 3) */ /*******************/ /* */ /* MeTiS v5 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 5) int SCOTCHMETISNAMEC (METIS_PartGraphKway) ( const SCOTCH_Num * const nvtxs, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const nparts, const double * const tpwgts, const double * const ubvec, const SCOTCH_Num * const options, SCOTCH_Num * const objval, SCOTCH_Num * const part) { return (SCOTCHMETISNAMES (METIS_V5_PartGraphKway) (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part)); } /* ** */ int SCOTCHMETISNAMEC (METIS_PartGraphRecursive) ( const SCOTCH_Num * const nvtxs, const SCOTCH_Num * const ncon, const SCOTCH_Num * const xadj, const SCOTCH_Num * const adjncy, const SCOTCH_Num * const vwgt, const SCOTCH_Num * const vsize, const SCOTCH_Num * const adjwgt, const SCOTCH_Num * const nparts, const double * const tpwgts, const double * const ubvec, const SCOTCH_Num * const options, SCOTCH_Num * const objval, SCOTCH_Num * const part) { return (SCOTCHMETISNAMES (METIS_V5_PartGraphRecursive) (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part)); } #endif /* (SCOTCH_METIS_VERSION == 5) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_part.h000066400000000000000000000061001514310134000304550ustar00rootroot00000000000000/* Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_part.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : These lines are the data declarations **/ /** for the MeTiS mesh graph mapping **/ /** internal routines. **/ /** **/ /** DATES : # Version 6.1 : from : 15 jun 2021 **/ /** to : 30 dec 2021 **/ /** **/ /************************************************************/ /* ** The function prototypes. */ void _SCOTCH_METIS_doubleToInt (const SCOTCH_Num, const double * const, SCOTCH_Num * const); int _SCOTCH_METIS_OutputCut (const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * const); int _SCOTCH_METIS_OutputVol (const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Num * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_part_dual.c000066400000000000000000000315351514310134000314670ustar00rootroot00000000000000/* Copyright 2020,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_part_dual.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the MeTiS partitioning **/ /** routines containing routines relative **/ /** to dual graphs **/ /** **/ /** DATES : # Version 6.1 : from : 01 sep 2020 **/ /** to : 30 dec 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 06 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "mesh.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ #include "metis_graph_dual.h" #include "metis_graph_part.h" #define EPSILON 1.0e-6 /* Rounding percision */ /* This routine computes the partition of the ** dual graph of a mesh. ** It returns: ** - METIS_OK : if the partition has been successfully computed. ** - METIS_ERROR* : on error. */ int SCOTCHMETISNAMES (METIS_PartMeshDual) ( const SCOTCH_Num * const ne, /*+ Pointer to number of elements +*/ const SCOTCH_Num * const nn, /*+ Pointer to number of nodes +*/ const SCOTCH_Num * const eptr, /*+ Element vertex array +*/ const SCOTCH_Num * const eind, /*+ Element edge array +*/ const SCOTCH_Num * const vwgt, /*+ Element vertex weight array +*/ const SCOTCH_Num * const vsize, /*+ Element communication volume array +*/ const SCOTCH_Num * const ncommon, /*+ Pointer to number of connectivity common nodes +*/ const SCOTCH_Num * const nparts, /*+ Pointer to number of parts to compute +*/ const double * const tpwgts, /*+ Pointer to part weight array +*/ const SCOTCH_Num * const options, /*+ Optional options array +*/ SCOTCH_Num * const objval, /*+ Edege cut or communication volume return value +*/ SCOTCH_Num * const epart, /*+ Element partition array to be filled +*/ SCOTCH_Num * const npart) /*+ Node partition array to be filled +*/ { SCOTCH_Graph grafdat; SCOTCH_Graph graftmp; SCOTCH_Arch archdat; SCOTCH_Strat stradat; SCOTCH_Num baseval; /* Global base value */ SCOTCH_Num velmbas; /* Base value of mesh element vertices */ SCOTCH_Num vnodbas; /* Base value of mesh node vertices */ SCOTCH_Num vnodnum; SCOTCH_Num vertnbr; SCOTCH_Num * verttab; SCOTCH_Num * vendtab; SCOTCH_Num edgenbr; SCOTCH_Num * edgetab; SCOTCH_Num * edlotab; SCOTCH_Mesh meshdat; int o; baseval = 0; /* Assume base value is 0 */ if ((options != NULL) && (options != ne)) /* For the Fortran interface, null arrays are those equal to ne */ baseval = options[METIS_OPTION_NUMBERING]; /* Get base value */ if ((tpwgts != NULL) && ((const SCOTCH_Num * const) tpwgts != ne)) { SCOTCH_Num * restrict wtgttab; /* Array of integer loads */ double wtgtsum; /* Sum of floating-point part weigts */ SCOTCH_Num partnum; for (partnum = 0, wtgtsum = 0.0; partnum < *nparts; partnum ++) wtgtsum += tpwgts[partnum]; /* Sum floating-point part weights */ if (fabs (wtgtsum - 1.0) >= EPSILON) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: invalid partition weight sum"); *objval = METIS_ERROR_INPUT; return (METIS_ERROR_INPUT); } if ((wtgttab = memAlloc (*nparts * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: out of memory (1)"); *objval = METIS_ERROR_MEMORY; return (METIS_ERROR_MEMORY); } _SCOTCH_METIS_doubleToInt (*nparts, tpwgts, wtgttab); /* Convert array of doubles to array of ints */ SCOTCH_archInit (&archdat); o = SCOTCH_archCmpltw (&archdat, *nparts, wtgttab); memFree (wtgttab); if (o != 0) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: cannot create weighted architecture"); SCOTCH_archExit (&archdat); *objval = METIS_ERROR_MEMORY; return (METIS_ERROR_MEMORY); } } else { /* Else create unweighted target architecture */ SCOTCH_archInit (&archdat); SCOTCH_archCmplt (&archdat, *nparts); } SCOTCH_meshInit (&meshdat); if ((o = _SCOTCH_METIS_MeshToDual2 (&meshdat, baseval, *nn, *ne, eptr, eind)) != METIS_OK) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: cannot build dual mesh"); SCOTCH_archExit (&archdat); *objval = o; /* Error value for the Fortran interface */ return (o); } SCOTCH_graphInit (&grafdat); o = SCOTCH_meshGraphDual (&meshdat, &grafdat, *ncommon); if (o != 0) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: cannot build dual graph"); SCOTCH_meshExit (&meshdat); SCOTCH_graphExit (&grafdat); SCOTCH_archExit (&archdat); *objval = METIS_ERROR_MEMORY; return (METIS_ERROR_MEMORY); } SCOTCH_graphData (&grafdat, NULL, &vertnbr, &verttab, &vendtab, NULL, NULL, &edgenbr, &edgetab, NULL); /* Get graph topology arrays */ if ((vsize != NULL) && (vsize != ne)) { const SCOTCH_Num * restrict vsiztax; Gnum vertnum; Gnum edgenum; SCOTCH_Num * restrict edgetax; SCOTCH_Num * restrict edlotax; if ((edlotab = memAlloc (edgenbr * sizeof (SCOTCH_Num))) == NULL) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: out of memory (2)"); SCOTCH_meshExit (&meshdat); SCOTCH_graphExit (&grafdat); SCOTCH_archExit (&archdat); *objval = METIS_ERROR_MEMORY; return (METIS_ERROR_MEMORY); } edlotax = edlotab - baseval; /* Base access to edlotax */ edgetax = edgetab - baseval; vsiztax = vsize - baseval; for (vertnum = 0, edgenum = baseval; /* Un-based scan of vertex array verttab */ vertnum < vertnbr; vertnum ++) { SCOTCH_Num vsizval; /* Communication size of current vertex */ SCOTCH_Num edgennd; vsizval = vsize[vertnum]; for (edgennd = vendtab[vertnum]; edgenum < edgennd; edgenum ++) { /* Based traversal of compact edge array */ SCOTCH_Num vertend; /* Based end vertex number */ vertend = edgetax[edgenum]; edlotax[edgenum] = vsizval + vsiztax[vertend]; } } } else /* No edge array */ edlotab = NULL; SCOTCH_graphInit (&graftmp); SCOTCH_graphBuild (&graftmp, baseval, vertnbr, verttab, vendtab, vwgt, NULL, edgenbr, edgetab, edlotab); SCOTCH_stratInit (&stradat); if (SCOTCH_graphMap (&graftmp, &archdat, &stradat, epart) == 0) { if (baseval != 0) { /* MeTiS part array is based, Scotch is not */ SCOTCH_Num vertnum; for (vertnum = 0; vertnum < vertnbr; vertnum ++) epart[vertnum] += baseval; } if (((vsize != NULL) && (vsize != ne)) || /* If computation of communication volume wanted */ ((options != NULL) && (options != ne) && (options[METIS_OPTION_OBJTYPE] == METIS_OBJTYPE_VOL))) o = _SCOTCH_METIS_OutputVol (baseval, vertnbr + baseval, verttab - baseval, edgetab - baseval, vsize - baseval, *nparts, epart - baseval, objval); else o = _SCOTCH_METIS_OutputCut (baseval, vertnbr + baseval, verttab - baseval, edgetab - baseval, (edlotab != NULL) ? (edlotab - baseval) : NULL, epart - baseval, objval); } else o = METIS_ERROR; SCOTCH_stratExit (&stradat); SCOTCH_graphExit (&graftmp); if (edlotab != NULL) memFree (edlotab); SCOTCH_archExit (&archdat); SCOTCH_graphExit (&grafdat); if (o != METIS_OK) { SCOTCH_errorPrint ("SCOTCH_METIS_PartMeshDual: could not partition graph"); SCOTCH_meshExit (&meshdat); *objval = METIS_ERROR; return (METIS_ERROR); } SCOTCH_meshData (&meshdat, &velmbas, &vnodbas, NULL, NULL, &verttab, &vendtab, NULL, NULL, NULL, NULL, &edgetab, NULL); for (vnodnum = 0; vnodnum < *nn; vnodnum ++) { /* Un-based loop on node vertices */ SCOTCH_Num edgenum; edgenum = verttab[vnodnum + (vnodbas - baseval)]; npart[vnodnum] = (edgenum != vendtab[vnodnum + (vnodbas - baseval)]) ? epart[edgetab[edgenum - baseval] - velmbas] : 0; /* If non-isolated node, get part of first neighbor element, else 0 */ } SCOTCH_meshExit (&meshdat); return (METIS_OK); } /* ** */ int SCOTCHMETISNAMEC (METIS_PartMeshDual) ( const SCOTCH_Num * const ne, /*+ Pointer to number of elements +*/ const SCOTCH_Num * const nn, /*+ Pointer to number of nodes +*/ const SCOTCH_Num * const eptr, /*+ Element vertex array +*/ const SCOTCH_Num * const eind, /*+ Element edge array +*/ const SCOTCH_Num * const vwgt, /*+ Element vertex weight array +*/ const SCOTCH_Num * const vsize, /*+ Element communication volume array +*/ const SCOTCH_Num * const ncommon, /*+ Pointer to number of connectivity common nodes +*/ const SCOTCH_Num * const nparts, /*+ Pointer to number of parts to compute +*/ const double * const tpwgts, /*+ Pointer to part weight array +*/ const SCOTCH_Num * const options, /*+ Optional options array +*/ SCOTCH_Num * const objval, /*+ Edege cut or communication volume return value +*/ SCOTCH_Num * const epart, /*+ Element partition array to be filled +*/ SCOTCH_Num * const npart) /*+ Node partition array to be filled +*/ { return (SCOTCHMETISNAMES (METIS_PartMeshDual) (ne, nn, eptr, eind, vwgt, vsize, ncommon, nparts, tpwgts, options, objval, epart, npart)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_part_dual_f.c000066400000000000000000000116731514310134000317750ustar00rootroot00000000000000/* Copyright 2020,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_part_dual_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** MeTiS dual graph processing routines. **/ /** **/ /** DATES : # Version 6.1 : from : 11 may 2021 **/ /** to : 24 may 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph dual routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_PARTMESHDUAL), \ SCOTCHMETISNAMESL (metis_partmeshdual), ( \ const SCOTCH_Num * const ne, \ const SCOTCH_Num * const nn, \ const SCOTCH_Num * const eptr, \ const SCOTCH_Num * const eind, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const ncommon, \ const SCOTCH_Num * const nparts, \ const double * const tpwgts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const objval, \ SCOTCH_Num * const epart, \ SCOTCH_Num * const npart), \ (ne, nn, eptr, eind, vwgt, vsize, ncommon, nparts, tpwgts, options, objval, epart, npart)) { SCOTCHMETISNAMES (METIS_PartMeshDual) (ne, nn, eptr, eind, vwgt, vsize, ncommon, nparts, tpwgts, options, objval, epart, npart); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_PARTMESHDUAL), \ SCOTCHMETISNAMEFL (metis_partmeshdual), ( \ const SCOTCH_Num * const ne, \ const SCOTCH_Num * const nn, \ const SCOTCH_Num * const eptr, \ const SCOTCH_Num * const eind, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const ncommon, \ const SCOTCH_Num * const nparts, \ const double * const tpwgts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const objval, \ SCOTCH_Num * const epart, \ SCOTCH_Num * const npart), \ (ne, nn, eptr, eind, vwgt, vsize, ncommon, nparts, tpwgts, options, objval, epart, npart)) { SCOTCHMETISNAMES (METIS_PartMeshDual) (ne, nn, eptr, eind, vwgt, vsize, ncommon, nparts, tpwgts, options, objval, epart, npart); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_graph_part_f.c000066400000000000000000000335621514310134000307710ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2015,2019,2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_graph_part_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Amaury JACQUES **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** MeTiS partitioning routines. **/ /** **/ /** DATES : # Version 5.0 : from : 10 sep 2006 **/ /** to : 07 jun 2007 **/ /** # Version 5.1 : from : 30 jun 2010 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 6.1 : from : 30 dec 2021 **/ /** to : 30 dec 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph ordering routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V3_PARTGRAPHKWAY), \ SCOTCHMETISNAMESL (metis_v3_partgraphkway), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const nparts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part, \ int * const revaptr), \ (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V3_PartGraphKway) (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V3_PARTGRAPHRECURSIVE), \ SCOTCHMETISNAMESL (metis_v3_partgraphrecursive), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const nparts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part, \ int * const revaptr), \ (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V3_PartGraphRecursive) (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V3_PARTGRAPHVKWAY), \ SCOTCHMETISNAMESL (metis_v3_partgraphvkway), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const nparts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const volume, \ SCOTCH_Num * const part, \ int * const revaptr), \ (n, xadj, adjncy, vwgt, vsize, wgtflag, numflag, nparts, options, volume, part, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V3_PartGraphVKway) (n, xadj, adjncy, vwgt, vsize, wgtflag, numflag, nparts, options, volume, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V5_PARTGRAPHKWAY), \ SCOTCHMETISNAMESL (metis_v5_partgraphkway), ( \ const SCOTCH_Num * const nvtxs, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const nparts, \ const double * const tpwgts, \ const double * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const objval, \ SCOTCH_Num * const part, \ int * const revaptr), \ (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V5_PartGraphKway) (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_V5_PARTGRAPHRECURSIVE), \ SCOTCHMETISNAMESL (metis_v5_partgraphrecursive), ( \ const SCOTCH_Num * const nvtxs, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const nparts, \ const double * const tpwgts, \ const double * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const objval, \ SCOTCH_Num * const part, \ int * const revaptr), \ (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part, revaptr)) { *revaptr = SCOTCHMETISNAMES (METIS_V5_PartGraphRecursive) (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 3) FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_PARTGRAPHKWAY), \ SCOTCHMETISNAMEFL (metis_partgraphkway), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const nparts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part), \ (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part)) { SCOTCHMETISNAMEC (METIS_PartGraphKway) (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_PARTGRAPHRECURSIVE), \ SCOTCHMETISNAMEFL (metis_partgraphrecursive), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const nparts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part), \ (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part)) { SCOTCHMETISNAMEC (METIS_PartGraphRecursive) (n, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, nparts, options, edgecut, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_PARTGRAPHVKWAY), \ SCOTCHMETISNAMEFL (metis_partgraphvkway), ( \ const SCOTCH_Num * const n, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const nparts, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const volume, \ SCOTCH_Num * const part), \ (n, xadj, adjncy, vwgt, vsize, wgtflag, numflag, nparts, options, volume, part)) { SCOTCHMETISNAMEC (METIS_PartGraphVKway) (n, xadj, adjncy, vwgt, vsize, wgtflag, numflag, nparts, options, volume, part); } #endif /* (SCOTCH_METIS_VERSION == 3) */ /*******************/ /* */ /* MeTiS v5 stubs. */ /* */ /*******************/ #if (SCOTCH_METIS_VERSION == 5) FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_PARTGRAPHKWAY), \ SCOTCHMETISNAMEFL (metis_partgraphkway), ( \ const SCOTCH_Num * const nvtxs, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const nparts, \ const double * const tpwgts, \ const double * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const objval, \ SCOTCH_Num * const part), \ (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part)) { SCOTCHMETISNAMEC (METIS_PartGraphKway) (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_PARTGRAPHRECURSIVE), \ SCOTCHMETISNAMEFL (metis_partgraphrecursive), ( \ const SCOTCH_Num * const nvtxs, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const xadj, \ const SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const vwgt, \ const SCOTCH_Num * const vsize, \ const SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const nparts, \ const double * const tpwgts, \ const double * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const objval, \ SCOTCH_Num * const part), \ (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part)) { SCOTCHMETISNAMEC (METIS_PartGraphRecursive) (nvtxs, ncon, xadj, adjncy, vwgt, vsize, adjwgt, nparts, tpwgts, ubvec, options, objval, part); } #endif /* (SCOTCH_METIS_VERSION == 5) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_options.c000066400000000000000000000067261514310134000300320ustar00rootroot00000000000000/* Copyright 2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_options.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the MeTiS parameter **/ /** management routines. **/ /** **/ /** DATES : # Version 6.1 : from : 20 jun 2021 **/ /** to : 20 jun 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /*************************************/ /* */ /* This routine is the C API for the */ /* MeTiS options management routine. */ /* */ /*************************************/ int SCOTCHMETISNAMES (METIS_SetDefaultOptions) ( SCOTCH_Num * const options) { memSet (options, 0, METIS_NOPTIONS * sizeof (SCOTCH_Num)); options[METIS_OPTION_OBJTYPE] = METIS_OBJTYPE_CUT; return (METIS_OK); } /* ** */ int SCOTCHMETISNAMEC (METIS_SetDefaultOptions) ( SCOTCH_Num * const options) { return (SCOTCHMETISNAMES (METIS_SetDefaultOptions) (options)); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/metis_options_f.c000066400000000000000000000071651514310134000303350ustar00rootroot00000000000000/* Copyright 2021,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : metis_options_f.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** MeTiS parameter management routines. **/ /** **/ /** DATES : # Version 6.1 : from : 20 jun 2021 **/ /** to : 20 jun 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "metis.h" /* Our "metis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the graph ordering routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (METIS_SETDEFAULTOPTIONS), \ SCOTCHMETISNAMESL (metis_setdefaultoptions), ( \ SCOTCH_Num * const options), \ (options)) { SCOTCHMETISNAMES (METIS_SetDefaultOptions) (options); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (METIS_SETDEFAULTOPTIONS), \ SCOTCHMETISNAMEFL (metis_setdefaultoptions), ( \ SCOTCH_Num * const options), \ (options)) { SCOTCHMETISNAMES (METIS_SetDefaultOptions) (options); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/parmetis_dgraph_dual.c000066400000000000000000000211011514310134000312740ustar00rootroot00000000000000/* Copyright 2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parmetis_graph_dual.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Marc FUENTES **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the ParMeTiS partitioning **/ /** routines containing routines related **/ /** to dual graphs **/ /** **/ /** DATES : # Version 7.0 : from : 01 sep 2023 **/ /** to : 08 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define LIBRARY #include #include "module.h" #include "common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ /* This routine builds a distributed dual graph ** (that is, an element graph) from the given ** distributed mesh data. An edge is built between ** any two element vertices if these two elements ** e1 and e2 have at least *nocoptr nodes in common. ** It returns: ** - METIS_OK : if the distributed graph has been successfully built. ** - !METIS_OK : on error. */ int SCOTCHMETISNAMES (ParMETIS_V3_Mesh2Dual) ( const SCOTCH_Num * const elemdsptab, const SCOTCH_Num * const velmloctab, const SCOTCH_Num * const eelmloctab, const SCOTCH_Num * const baseptr, const SCOTCH_Num * const nocoptr, SCOTCH_Num ** const vertlocptr, SCOTCH_Num ** const edgelocptr, MPI_Comm * commptr) { SCOTCH_Dgraph grafdat; /* Dual graph data structure */ SCOTCH_Dmesh meshdat; /* Mesh data structure */ SCOTCH_Num vnodlocmax; SCOTCH_Num vnodglbmax; SCOTCH_Num vnodglbnbr; SCOTCH_Num eelmlocnum; SCOTCH_Num * vertloctab; SCOTCH_Num * vertloctmp; SCOTCH_Num vertlocnbr; SCOTCH_Num * edgeloctab; SCOTCH_Num * edgeloctmp; SCOTCH_Num edgelocnbr; int proclocnum; int cheklocval; int chekglbval; int o; MPI_Comm_rank (*commptr, &proclocnum); const SCOTCH_Num velmlocbas = elemdsptab[proclocnum]; const SCOTCH_Num velmlocnnd = elemdsptab[proclocnum + 1]; const SCOTCH_Num velmlocnbr = velmlocnnd - velmlocbas; const SCOTCH_Num * restrict const velmloctax = velmloctab - velmlocbas; /* TRICK: base with respect to global indices */ const SCOTCH_Num * restrict const eelmloctax = eelmloctab - *baseptr; const SCOTCH_Num eelmlocnnd = velmloctax[velmlocnnd]; /* Because element vertex array is compact */ const SCOTCH_Num eelmlocnbr = eelmlocnnd - *baseptr; vnodlocmax = 0; for (eelmlocnum = *baseptr; eelmlocnum < eelmlocnnd; eelmlocnum ++) { /* Search for highest node vertex index */ SCOTCH_Num vnodlocend; vnodlocend = eelmloctax[eelmlocnum]; if (vnodlocmax < vnodlocend) vnodlocmax = vnodlocend; } if (MPI_Allreduce (&vnodlocmax, &vnodglbmax, 1, SCOTCH_NUM_MPI, MPI_MAX, *commptr) != MPI_SUCCESS) { SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: communication error (1)"); return (METIS_ERROR); } vnodglbnbr = vnodglbmax + 1 - *baseptr; o = METIS_OK; /* Assume everything will go well */ if (SCOTCH_dmeshInit (&meshdat, *commptr) != 0) { SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: cannot initialize mesh"); return (METIS_ERROR); } if (SCOTCH_dmeshBuildAdm (&meshdat, *baseptr, velmlocnbr, (SCOTCH_Num *) velmloctab, eelmlocnbr, (SCOTCH_Num *) eelmloctab, vnodglbnbr) != 0) { SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: cannot build mesh"); o = METIS_ERROR; goto abort2; } if (SCOTCH_dgraphInit (&grafdat, *commptr) != 0) { SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: cannot initialize dual graph"); o = METIS_ERROR; goto abort2; } if (SCOTCH_dmeshDgraphDual (&meshdat, &grafdat, *nocoptr) != 0) { SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: cannot build dual graph"); o = METIS_ERROR; goto abort1; } SCOTCH_dgraphData (&grafdat, NULL, NULL, &vertlocnbr, NULL, NULL, &vertloctmp, NULL, NULL, NULL, NULL, &edgelocnbr, NULL, &edgeloctmp, NULL, NULL, NULL); cheklocval = 0; /* Assume everything will go well */ if ((vertloctab = malloc ((vertlocnbr + 1) * sizeof (SCOTCH_Num))) == NULL) { /* Use plain malloc() because of user-managed array */ SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: out of memory (1)"); cheklocval = 1; } if ((edgeloctab = malloc (edgelocnbr * sizeof (SCOTCH_Num))) == NULL) { /* Use plain malloc() because of user-managed array */ SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: out of memory (2)"); cheklocval = 1; } #ifdef SCOTCH_DEBUG_ALL if (MPI_Allreduce (&cheklocval, &chekglbval, 1, MPI_INT, MPI_MAX, *commptr) != MPI_SUCCESS) { SCOTCH_errorPrint ("SCOTCH_ParMETIS_V3_Mesh2Dual: communication error"); return (METIS_ERROR); } #else /* SCOTCH_DEBUG_ALL */ chekglbval = cheklocval; #endif /* SCOTCH_DEBUG_ALL */ if (chekglbval != 0) { if (edgeloctab != NULL) memFree (edgeloctab); if (vertloctab != NULL) memFree (vertloctab); o = METIS_ERROR_MEMORY; goto abort1; } memCpy (vertloctab, vertloctmp, (vertlocnbr + 1) * sizeof (SCOTCH_Num)); /* Copy dual graph data to user-managed arrays */ memCpy (edgeloctab, edgeloctmp, edgelocnbr * sizeof (SCOTCH_Num)); *vertlocptr = vertloctab; *edgelocptr = edgeloctab; abort1: SCOTCH_dgraphExit (&grafdat); abort2: SCOTCH_dmeshExit (&meshdat); return (o); } /**********************/ /* */ /* ParMeTiS v3 stubs. */ /* */ /**********************/ #if (SCOTCH_PARMETIS_VERSION == 3) int SCOTCHMETISNAMEC (ParMETIS_V3_Mesh2Dual) ( const SCOTCH_Num * const elemdsptab, const SCOTCH_Num * const velmloctab, const SCOTCH_Num * const eelmloctab, const SCOTCH_Num * const baseptr, const SCOTCH_Num * const nocoptr, SCOTCH_Num ** const vertlocptr, SCOTCH_Num ** const edgelocptr, MPI_Comm * commptr) { return (SCOTCHMETISNAMES (ParMETIS_V3_Mesh2Dual) (elemdsptab, velmloctab, eelmloctab, baseptr, nocoptr, vertlocptr, edgelocptr, commptr)); } #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/parmetis_dgraph_dual_f.c000066400000000000000000000113141514310134000316060ustar00rootroot00000000000000/* Copyright 2024-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parmetis_dgraph_dual_f.c **/ /** **/ /** AUTHOR : Marc FUENTES **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** ParMeTiS dual mesh building routine. **/ /** **/ /** DATES : # Version 7.0 : from : 28 mar 2022 **/ /** to : 28 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph ordering */ /* routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (PARMETIS_V3_MESH2DUAL), \ SCOTCHMETISNAMESL (parmetis_v3_mesh2dual), ( \ const SCOTCH_Num * const elmdist, \ SCOTCH_Num * const eptr, \ SCOTCH_Num * const eind, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const ncommonnodes, \ SCOTCH_Num ** xadj, \ SCOTCH_Num ** adjncy, \ const MPI_Fint * const commptr, \ int * const revaptr), \ (elmdist, eptr, eind, numflag, ncommonnodes, xadj, adjncy, commptr, revaptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); *revaptr = SCOTCHMETISNAMES (ParMETIS_V3_Mesh2Dual) (elmdist, eptr, eind, numflag, ncommonnodes, xadj, adjncy, &commdat); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_PARMETIS_VERSION == 3) FORTRAN ( \ SCOTCHMETISNAMEFU (PARMETIS_V3_MESH2DUAL), \ SCOTCHMETISNAMEFL (parmetis_v3_mesh2dual), ( \ const SCOTCH_Num * const elmdist, \ SCOTCH_Num * const eptr, \ SCOTCH_Num * const eind, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const ncommonnodes, \ SCOTCH_Num ** xadj, \ SCOTCH_Num ** adjncy, \ const MPI_Fint * const commptr), \ (elmdist, eptr, eind, numflag, ncommonnodes, xadj, adjncy, commptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); SCOTCHMETISNAMES (ParMETIS_V3_Mesh2Dual) (elmdist, eptr, eind, numflag, ncommonnodes, xadj, adjncy, &commdat); } #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/parmetis_dgraph_order.c000066400000000000000000000251371514310134000314770ustar00rootroot00000000000000/* Copyright 2007-2010,2012,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parmetis_dgraph_order.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the ParMeTiS ordering **/ /** routines. **/ /** **/ /** DATES : # Version 5.0 : from : 17 oct 2007 **/ /** to : 07 dec 2007 **/ /** # Version 5.1 : from : 18 mar 2009 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ /************************************/ /* */ /* These routines are the C API for */ /* the ParMeTiS graph ordering */ /* routine. */ /* */ /************************************/ static void _SCOTCH_ParMETIS_V3_NodeNDTree ( SCOTCH_Num * const sizeglbtnd, SCOTCH_Num * const sizeglbtab, SCOTCH_Num * const sepaglbtab, const SCOTCH_Num levlmax, const SCOTCH_Num levlnum, const SCOTCH_Num cblknum, SCOTCH_Num cblkidx) { SCOTCH_Num sizeval; sizeval = sizeglbtab[cblknum]; /* Assume node is terminal or has no nested dissection sons */ if (levlnum < levlmax) { if ((sepaglbtab[3 * cblknum] >= 0) && /* If node has at least two sons, assume is is a nested dissection node */ (sepaglbtab[3 * cblknum + 1] >= 0)) { _SCOTCH_ParMETIS_V3_NodeNDTree (sizeglbtnd, sizeglbtab, sepaglbtab, levlmax, levlnum + 1, sepaglbtab[3 * cblknum], (cblkidx << 1) + 1); _SCOTCH_ParMETIS_V3_NodeNDTree (sizeglbtnd, sizeglbtab, sepaglbtab, levlmax, levlnum + 1, sepaglbtab[3 * cblknum + 1], (cblkidx << 1)); sizeval = (sepaglbtab[3 * cblknum + 2] < 0) ? 0 : sizeglbtab[sepaglbtab[3 * cblknum + 2]]; /* Get size of separator, if any */ } } sizeglbtnd[- cblkidx] = sizeval; /* Set size of current column block */ } /* ** */ int SCOTCHMETISNAMES (ParMETIS_V3_NodeND) ( const SCOTCH_Num * const vtxdist, SCOTCH_Num * const xadj, SCOTCH_Num * const adjncy, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, /* Not used */ SCOTCH_Num * const order, SCOTCH_Num * const sizes, /* Of size twice the number of processors ; not used */ MPI_Comm * commptr) { MPI_Comm proccomm; int procglbnbr; int proclocnum; SCOTCH_Num baseval; SCOTCH_Dgraph grafdat; /* Scotch distributed graph object to interface with libScotch */ SCOTCH_Dordering ordedat; /* Scotch distributed ordering object to interface with libScotch */ SCOTCH_Strat stradat; SCOTCH_Num vertlocnbr; SCOTCH_Num edgelocnbr; int o; o = METIS_ERROR; /* Assume something will go wrong */ proccomm = *commptr; if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) return (o); MPI_Comm_size (proccomm, &procglbnbr); MPI_Comm_rank (proccomm, &proclocnum); baseval = *numflag; vertlocnbr = vtxdist[proclocnum + 1] - vtxdist[proclocnum]; edgelocnbr = xadj[vertlocnbr] - baseval; if (sizes != NULL) memSet (sizes, ~0, (2 * procglbnbr - 1) * sizeof (SCOTCH_Num)); /* Array not used if procglbnbr is not a power of 2 or if error */ if (SCOTCH_dgraphBuild (&grafdat, baseval, vertlocnbr, vertlocnbr, xadj, xadj + 1, NULL, NULL, edgelocnbr, edgelocnbr, adjncy, NULL, NULL) == 0) { SCOTCH_stratInit (&stradat); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_dgraphCheck (&grafdat) == 0) /* TRICK: next instruction called only if graph is consistent */ #endif /* SCOTCH_DEBUG_ALL */ { if (SCOTCH_dgraphOrderInit (&grafdat, &ordedat) == 0) { SCOTCH_Num levlmax; SCOTCH_Num bitsnbr; SCOTCH_Num proctmp; SCOTCH_dgraphOrderCompute (&grafdat, &ordedat, &stradat); SCOTCH_dgraphOrderPerm (&grafdat, &ordedat, order); for (levlmax = -1, bitsnbr = 0, proctmp = procglbnbr; /* Count number of bits set to 1 in procglbnbr */ proctmp != 0; levlmax ++, proctmp >>= 1) bitsnbr += proctmp & 1; if (bitsnbr == 1) { SCOTCH_Num cblkglbnbr; if ((cblkglbnbr = SCOTCH_dgraphOrderCblkDist (&grafdat, &ordedat)) >= 0) { SCOTCH_Num * treeglbtab; SCOTCH_Num * sizeglbtab; SCOTCH_Num * sepaglbtab; if (memAllocGroup ((void **) (void *) &treeglbtab, (size_t) (cblkglbnbr * sizeof (SCOTCH_Num)), &sizeglbtab, (size_t) (cblkglbnbr * sizeof (SCOTCH_Num)), &sepaglbtab, (size_t) (cblkglbnbr * sizeof (SCOTCH_Num) * 3), NULL) != NULL) { if (SCOTCH_dgraphOrderTreeDist (&grafdat, &ordedat, treeglbtab, sizeglbtab) == 0) { SCOTCH_Num rootnum; SCOTCH_Num cblknum; memSet (sepaglbtab, ~0, cblkglbnbr * sizeof (SCOTCH_Num) * 3); for (rootnum = -1, cblknum = 0; cblknum < cblkglbnbr; cblknum ++) { SCOTCH_Num fathnum; fathnum = treeglbtab[cblknum] - baseval; /* Use un-based indices */ if (fathnum < 0) { /* If father index indicates root */ if (rootnum != -1) { /* If another root already found */ rootnum = -1; /* Indicate an error */ break; } rootnum = cblknum; /* Record index of root node */ } else { SCOTCH_Num i; for (i = 0; i < 3; i ++) { SCOTCH_Num j; j = 3 * fathnum + i; /* Slot number of prospective son */ if (sepaglbtab[j] < 0) { /* If potentially empty slot found */ if (sepaglbtab[j] == -1) /* If we don't have too many sons */ sepaglbtab[j] = cblknum; /* Add link to son in slot */ break; } } if (i == 3) { /* If no empty slot found */ sepaglbtab[3 * fathnum] = -2; /* Indicate there are too many sons */ break; } } } if ((rootnum >= 0) && (sizes != NULL)) { /* If no error above, go on processing separator tree */ memSet (sizes, 0, (2 * procglbnbr - 1) * sizeof (SCOTCH_Num)); /* Set array of sizes to 0 by default */ _SCOTCH_ParMETIS_V3_NodeNDTree (sizes + (2 * procglbnbr - 1), sizeglbtab, sepaglbtab, levlmax, 0, rootnum, 1); o = METIS_OK; } } memFree (treeglbtab); /* Free group leader */ } } } SCOTCH_dgraphOrderExit (&grafdat, &ordedat); } } SCOTCH_stratExit (&stradat); } SCOTCH_dgraphExit (&grafdat); return (o); } /**********************/ /* */ /* ParMeTiS v3 stubs. */ /* */ /**********************/ #if (SCOTCH_PARMETIS_VERSION == 3) int SCOTCHMETISNAMEC (ParMETIS_V3_NodeND) ( const SCOTCH_Num * const vtxdist, SCOTCH_Num * const xadj, SCOTCH_Num * const adjncy, const SCOTCH_Num * const numflag, const SCOTCH_Num * const options, /* Not used */ SCOTCH_Num * const order, SCOTCH_Num * const sizes, /* Of size twice the number of processors; not used */ MPI_Comm * commptr) { return (SCOTCHMETISNAMES (ParMETIS_V3_NodeND) (vtxdist, xadj, adjncy, numflag, options, order, sizes, commptr)); } #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/parmetis_dgraph_order_f.c000066400000000000000000000120101514310134000317660ustar00rootroot00000000000000/* Copyright 2007,2010,2012,2015,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parmetis_dgraph_order_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** ParMeTiS ordering routine. **/ /** **/ /** DATES : # Version 5.0 : from : 17 oct 2007 **/ /** to : 17 oct 2007 **/ /** # Version 5.1 : from : 30 jun 2010 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph ordering */ /* routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (PARMETIS_V3_NODEND), \ SCOTCHMETISNAMESL (parmetis_v3_nodend), ( \ const SCOTCH_Num * const vtxdist, \ SCOTCH_Num * const xadj, \ SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const order, \ SCOTCH_Num * const sizes, \ const MPI_Fint * const commptr, \ int * const revaptr), \ (vtxdist, xadj, adjncy, numflag, options, order, sizes, commptr, revaptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); *revaptr = SCOTCHMETISNAMES (ParMETIS_V3_NodeND) (vtxdist, xadj, adjncy, numflag, options, order, sizes, &commdat); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_PARMETIS_VERSION == 3) FORTRAN ( \ SCOTCHMETISNAMEFU (PARMETIS_V3_NODEND), \ SCOTCHMETISNAMEFL (parmetis_v3_nodend), ( \ const SCOTCH_Num * const vtxdist, \ SCOTCH_Num * const xadj, \ SCOTCH_Num * const adjncy, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const order, \ SCOTCH_Num * const sizes, \ const MPI_Fint * const commptr), \ (vtxdist, xadj, adjncy, numflag, options, order, sizes, commptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); SCOTCHMETISNAMES (ParMETIS_V3_NodeND) (vtxdist, xadj, adjncy, numflag, options, order, sizes, &commdat); } #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/parmetis_dgraph_part.c000066400000000000000000000276051514310134000313340ustar00rootroot00000000000000/* Copyright 2008-2010,2012,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parmetis_dgraph_part.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Clement BARTHELEMY **/ /** **/ /** FUNCTION : This module is the compatibility **/ /** library for the ParMeTiS ordering **/ /** routines. **/ /** **/ /** DATES : # Version 5.1 : from : 19 jun 2008 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 13 dec 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ /************************************/ /* */ /* These routines are the C API for */ /* the ParMeTiS graph ordering */ /* routine. */ /* */ /************************************/ /* This routine converts an array of doubles ** into an array of proportionate integers. ** It returns: ** - void : in all cases. */ #define EPSILON 1e-6F static void _SCOTCH_ParMETIS_floatToInt ( const SCOTCH_Num valunbr, const float * const flottab, SCOTCH_Num * const intetab) { SCOTCH_Num inteold; /* Previous value to avoid recomputing things */ float flotold; /* Previous value to avoid recomputing things */ float flotadj; SCOTCH_Num i; flotold = -1.0F; /* No previous value yet */ for (i = 0, flotadj = 1.0; i < valunbr; i ++) { float flotval; float flottmp; flotval = flottab[i]; if (flotval == flotold) /* Skip if same value */ continue; flotold = flotval; /* Remember old value */ flotval *= flotadj; /* See if renormalization factor works */ flottmp = flotval - floorf (flotval + EPSILON); /* Determine its possible fractional part */ if (fabs (flottmp) >= EPSILON) { /* If a residual fractional part exists */ flottmp = flotadj / flottmp; /* Incorporate it in renormalization factor */ flotadj = (flotadj * flottmp) / (float) intGcd ((SCOTCH_Num) round (flotadj), (SCOTCH_Num) round (flottmp)); } } flotold = -1.0F; /* No previous value yet */ inteold = 0; for (i = 0; i < valunbr; i ++) { float flotval; flotval = flottab[i]; if (flotval != flotold) { /* If not same value */ flotold = flotval; /* Remember old value */ inteold = (SCOTCH_Num) round (flotval * flotadj); } intetab[i] = inteold; } } int SCOTCHMETISNAMES (ParMETIS_V3_PartKway) ( const SCOTCH_Num * const vtxdist, SCOTCH_Num * const xadj, SCOTCH_Num * const adjncy, SCOTCH_Num * const vwgt, SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const ncon, /* Not used */ const SCOTCH_Num * const nparts, const float * const tpwgts, const float * const ubvec, /* Not used */ const SCOTCH_Num * const options, /* Not used */ SCOTCH_Num * const edgecut, SCOTCH_Num * const part, MPI_Comm * commptr) { MPI_Comm proccomm; int procglbnbr; int proclocnum; SCOTCH_Num baseval; SCOTCH_Arch archdat; SCOTCH_Dgraph grafdat; /* Scotch distributed graph object to interface with libScotch */ SCOTCH_Dmapping mappdat; /* Scotch distributed mapping object to interface with libScotch */ SCOTCH_Strat stradat; SCOTCH_Num vertlocnbr; SCOTCH_Num * veloloctab; SCOTCH_Num edgelocnbr; SCOTCH_Num * edloloctab; SCOTCH_Num * twintab; /* Integer array of target weights */ int o; if ((twintab = malloc (*nparts * sizeof (SCOTCH_Num))) == NULL) return (METIS_ERROR_MEMORY); _SCOTCH_ParMETIS_floatToInt (*nparts, tpwgts, twintab); proccomm = *commptr; if (SCOTCH_dgraphInit (&grafdat, proccomm) != 0) { free (twintab); return (METIS_ERROR); } MPI_Comm_size (proccomm, &procglbnbr); MPI_Comm_rank (proccomm, &proclocnum); baseval = *numflag; vertlocnbr = vtxdist[proclocnum + 1] - vtxdist[proclocnum]; edgelocnbr = xadj[vertlocnbr] - baseval; veloloctab = ((vwgt != NULL) && ((*wgtflag & 2) != 0)) ? vwgt : NULL; edloloctab = ((adjwgt != NULL) && ((*wgtflag & 1) != 0)) ? adjwgt : NULL; *edgecut = 0; o = METIS_ERROR; /* Assume an error */ if (SCOTCH_dgraphBuild (&grafdat, baseval, vertlocnbr, vertlocnbr, xadj, xadj + 1, veloloctab, NULL, edgelocnbr, edgelocnbr, adjncy, NULL, edloloctab) == 0) { SCOTCH_stratInit (&stradat); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_dgraphCheck (&grafdat) == 0) /* TRICK: next instruction called only if graph is consistent */ #endif /* SCOTCH_DEBUG_ALL */ { SCOTCH_archInit (&archdat); if ((SCOTCH_archCmpltw (&archdat, *nparts, twintab) == 0) && (SCOTCH_dgraphMapInit (&grafdat, &mappdat, &archdat, part) == 0)) { SCOTCH_Num cdsttab[256]; /* Communication load histogram */ if (SCOTCH_dgraphMapCompute (&grafdat, &mappdat, &stradat) == 0) { SCOTCH_dgraphMapStat (&grafdat, &mappdat, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, cdsttab, NULL, NULL, NULL); *edgecut = cdsttab[1]; /* For mapping onto complete graphs, distance 1 is the cut */ o = METIS_OK; } SCOTCH_dgraphMapExit (&grafdat, &mappdat); } SCOTCH_archExit (&archdat); } SCOTCH_stratExit (&stradat); } SCOTCH_dgraphExit (&grafdat); free (twintab); if ((baseval != 0) && /* MeTiS part array is based, unlike for Scotch */ (o == METIS_OK)) { /* If partition successfully computed */ SCOTCH_Num vertlocnum; for (vertlocnum = 0; vertlocnum < vertlocnbr; vertlocnum ++) part[vertlocnum] += baseval; } return (o); } /* ** */ int SCOTCHMETISNAMES (ParMETIS_V3_PartGeomKway) ( const SCOTCH_Num * const vtxdist, SCOTCH_Num * const xadj, SCOTCH_Num * const adjncy, SCOTCH_Num * const vwgt, SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const ndims, /* Not used */ const float * const xyz, /* Not used */ const SCOTCH_Num * const ncon, /* Not used */ const SCOTCH_Num * const nparts, const float * const tpwgts, const float * const ubvec, const SCOTCH_Num * const options, /* Not used */ SCOTCH_Num * const edgecut, SCOTCH_Num * const part, MPI_Comm * commptr) { return (SCOTCHMETISNAMES (ParMETIS_V3_PartKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr)); } /**********************/ /* */ /* ParMeTiS v3 stubs. */ /* */ /**********************/ #if (SCOTCH_PARMETIS_VERSION == 3) int SCOTCHMETISNAMEC (ParMETIS_V3_PartKway) ( const SCOTCH_Num * const vtxdist, SCOTCH_Num * const xadj, SCOTCH_Num * const adjncy, SCOTCH_Num * const vwgt, SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const ncon, /* Not used */ const SCOTCH_Num * const nparts, const float * const tpwgts, const float * const ubvec, /* Not used */ const SCOTCH_Num * const options, /* Not used */ SCOTCH_Num * const edgecut, SCOTCH_Num * const part, MPI_Comm * commptr) { return (SCOTCHMETISNAMES (ParMETIS_V3_PartKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr)); } /* ** */ int SCOTCHMETISNAMEC (ParMETIS_V3_PartGeomKway) ( const SCOTCH_Num * const vtxdist, SCOTCH_Num * const xadj, SCOTCH_Num * const adjncy, SCOTCH_Num * const vwgt, SCOTCH_Num * const adjwgt, const SCOTCH_Num * const wgtflag, const SCOTCH_Num * const numflag, const SCOTCH_Num * const ndims, /* Not used */ const float * const xyz, /* Not used */ const SCOTCH_Num * const ncon, /* Not used */ const SCOTCH_Num * const nparts, const float * const tpwgts, const float * const ubvec, const SCOTCH_Num * const options, /* Not used */ SCOTCH_Num * const edgecut, SCOTCH_Num * const part, MPI_Comm * commptr) { return (SCOTCHMETISNAMES (ParMETIS_V3_PartGeomKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ndims, xyz, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr)); } #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/libscotchmetis/parmetis_dgraph_part_f.c000066400000000000000000000214061514310134000316320ustar00rootroot00000000000000/* Copyright 2008,2010,2012,2015,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : parmetis_dgraph_part_f.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the Fortran API of **/ /** the compatibility library for the **/ /** ParMeTiS partitioning routine. **/ /** **/ /** DATES : # Version 5.1 : from : 19 jun 2008 **/ /** to : 30 jun 2010 **/ /** # Version 6.0 : from : 13 sep 2012 **/ /** to : 18 may 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 11 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "ptscotch.h" #include "parmetis.h" /* Our "parmetis.h" file */ /**************************************/ /* */ /* These routines are the Fortran API */ /* for the distributed graph ordering */ /* routines. */ /* */ /**************************************/ FORTRAN ( \ SCOTCHMETISNAMESU (PARMETIS_V3_PARTKWAY), \ SCOTCHMETISNAMESL (parmetis_v3_partkway), ( \ const SCOTCH_Num * const vtxdist, \ SCOTCH_Num * const xadj, \ SCOTCH_Num * const adjncy, \ SCOTCH_Num * const vwgt, \ SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const nparts, \ const float * const tpwgts, \ const float * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part, \ const MPI_Fint * const commptr, \ int * const revaptr), \ (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr, revaptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); *revaptr = SCOTCHMETISNAMES (ParMETIS_V3_PartKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ncon, nparts, tpwgts, ubvec, options, edgecut, part, &commdat); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMESU (PARMETIS_V3_PARTGEOMKWAY), \ SCOTCHMETISNAMESL (parmetis_v3_partgeomkway), ( \ const SCOTCH_Num * const vtxdist, \ SCOTCH_Num * const xadj, \ SCOTCH_Num * const adjncy, \ SCOTCH_Num * const vwgt, \ SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const ndims, \ const float * const xyz, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const nparts, \ const float * const tpwgts, \ const float * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part, \ const MPI_Fint * const commptr, \ int * const revaptr), \ (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ndims, xyz, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr, revaptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); *revaptr = SCOTCHMETISNAMES (ParMETIS_V3_PartGeomKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ndims, xyz, ncon, nparts, tpwgts, ubvec, options, edgecut, part, &commdat); } /*******************/ /* */ /* MeTiS v3 stubs. */ /* */ /*******************/ #if (SCOTCH_PARMETIS_VERSION == 3) FORTRAN ( \ SCOTCHMETISNAMEFU (PARMETIS_V3_PARTKWAY), \ SCOTCHMETISNAMEFL (parmetis_v3_partkway), ( \ const SCOTCH_Num * const vtxdist, \ SCOTCH_Num * const xadj, \ SCOTCH_Num * const adjncy, \ SCOTCH_Num * const vwgt, \ SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const nparts, \ const float * const tpwgts, \ const float * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part, \ const MPI_Fint * const commptr), \ (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); SCOTCHMETISNAMES (ParMETIS_V3_PartKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ncon, nparts, tpwgts, ubvec, options, edgecut, part, &commdat); } /* ** */ FORTRAN ( \ SCOTCHMETISNAMEFU (PARMETIS_V3_PARTGEOMKWAY), \ SCOTCHMETISNAMEFL (parmetis_v3_partgeomkway), ( \ const SCOTCH_Num * const vtxdist, \ SCOTCH_Num * const xadj, \ SCOTCH_Num * const adjncy, \ SCOTCH_Num * const vwgt, \ SCOTCH_Num * const adjwgt, \ const SCOTCH_Num * const wgtflag, \ const SCOTCH_Num * const numflag, \ const SCOTCH_Num * const ndims, \ const float * const xyz, \ const SCOTCH_Num * const ncon, \ const SCOTCH_Num * const nparts, \ const float * const tpwgts, \ const float * const ubvec, \ const SCOTCH_Num * const options, \ SCOTCH_Num * const edgecut, \ SCOTCH_Num * const part, \ const MPI_Fint * const commptr), \ (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ndims, xyz, ncon, nparts, tpwgts, ubvec, options, edgecut, part, commptr)) { MPI_Comm commdat; commdat = MPI_Comm_f2c (*commptr); SCOTCHMETISNAMES (ParMETIS_V3_PartGeomKway) (vtxdist, xadj, adjncy, vwgt, adjwgt, wgtflag, numflag, ndims, xyz, ncon, nparts, tpwgts, ubvec, options, edgecut, part, &commdat); } #endif /* (SCOTCH_PARMETIS_VERSION == 3) */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/misc/000077500000000000000000000000001514310134000226765ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/misc/scotch_5.1.12_openmpi.spec000066400000000000000000000150701514310134000273730ustar00rootroot00000000000000# RPM spec file for Scotch, tested on RHEL 5 & 6. # Licence: CeCILL-C # Build PT-Scotch stuff with openmpi. Probably there should be an mpich # version too, but we don't use mpich. # The mpiwrappers-openmpi-devel required on RHEL5 is in the EPEL repo. %bcond_with openmpi # fixme: Is there a better way? %define rhel5 %(fgrep -q ' 5.' /etc/redhat-release 2>/dev/null && echo 1) Name: scotch # The original tar file was called 5.1.12b, but unpacks into 5.1.12, so it # was re-named. Version: 5.1.12 Release: 1%{?dist} Summary: programs and libraries for graph, mesh and hypergraph partitioning Group: Applications/Engineering License: CeCILL-C URL: https://gforge.inria.fr/projects/scotch Source0: https://gforge.inria.fr/frs/download.php/28925/scotch_%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc, make, binutils, bison, flex %if %{with openmpi} %if 0%rhel5 BuildRequires: mpiwrappers-openmpi-devel %else BuildRequires: openmpi-devel %endif %endif # Cribbed from the Debian package %description Scotch is a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering. Its purpose is to apply graph theory, with a divide and conquer approach, to scientific computing problems such as graph and mesh partitioning, static mapping, and sparse matrix ordering, in application domains ranging from structural mechanics to operating systems or bio-chemistry. The SCOTCH distribution is a set of programs and libraries which implement the static mapping and sparse matrix reordering algorithms developed within the SCOTCH project. SCOTCH has many interesting features: o Its capabilities can be used through a set of stand-alone programs as well as through the libSCOTCH library, which offers both C and Fortran interfaces. o It provides algorithms to partition graph structures, as well as mesh structures defined as node-element bipartite graphs and which can also represent hypergraphs. o It can map any weighted source graph onto any weighted target graph. The source and target graphs may have any topology, and their vertices and edges may be weighted. Moreover, both source and target graphs may be disconnected. This feature allows for the mapping of programs onto disconnected subparts of a parallel architecture made up of heterogeneous processors and communication links. o It computes amalgamated block orderings of sparse matrices, for efficient solving using BLAS routines. o Its running time is linear in the number of edges of the source graph, and logarithmic in the number of vertices of the target graph for mapping computations. o It can handle indifferently graph and mesh data structures created within C or Fortran programs, with array indices starting from 0 or 1. o It offers extended support for adaptive graphs and meshes through the handling of disjoint edge arrays. o It is dynamically parametrizable thanks to strategy strings that are interpreted at run-time. o It uses system memory efficiently, to process large graphs and meshes without incurring out-of-memory faults; o It can be easily interfaced to other programs. The programs comprising the SCOTCH project have been designed to run in command-line mode without any interactive prompting, so that they can be called easily from other programs by means of system() or popen() calls, or piped together on a single command line. Moreover, vertex labeling capabilities allow for easy renumbering of vertices. o It provides many tools to build, check, and display graphs, meshes and matrix patterns. %package libs Summary: Shared library files for scotch. Group: Applications/Engineering %description libs Scotch is a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering. This package contains its library files. %package devel Summary: Development files for the scotch library. Group: Applications/Engineering Requires: %{name}-libs = %{version}-%{release} %description devel Scotch is a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering. This package contains development files. %if %{with openmpi} %package pt Summary: PT-Scotch (parallel programs). Group: Applications/Engineering %description pt Scotch is a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering. This package contains the MPI-based programs. %package ptlibs Summary: Shared library files for ptscotch. Group: Applications/Engineering %description ptlibs Scotch is a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering. This package contains the MPI-based libraries. %endif %prep %setup -q -n %{name}_%{version} cat >src/Makefile.inc < - 5.1.12b-1 - Initial packaging scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/000077500000000000000000000000001514310134000232265ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/CMakeLists.txt000066400000000000000000000142531514310134000257730ustar00rootroot00000000000000## Copyright 2014-2016,2021-2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## ############################################################ ## ## ## AUTHORS : Marc FUENTES ## ## Florent PRUVOST ## ## Cedric LACHAT ## ## Amaury JACQUES ## ## ## ## FUNCTION : Secondary configuration file for CMake ## ## ## ## DATES : # Version 6.0 : from : 01 sep 2014 ## ## to 01 sep 2021 ## ## # Version 7.0 : from : 01 sep 2021 ## ## to 10 jun 2025 ## ## ## ############################################################ set_source_files_properties(${GENERATED_INCLUDE_DIR}/scotch.h PROPERTIES GENERATED 1) # Macro to add quickly simple exectubles linked against the libScotch library function(add_scotch_exe) if(ARGC LESS_EQUAL 0) message(FATAL_ERROR "Macro add_scotch_exe requires arguments") endif() set(file_we ${ARGV0}) if(ARGC GREATER_EQUAL 2) set(src_exe ${ARGV}) list(REMOVE_AT src_exe 0) elseif(ARGC EQUAL 1) set(src_exe ${file_we}.c ${file_we}.h) endif() add_executable(${file_we} ${src_exe} ${LIBSCOTCH_INCLUDE_DIR}/module.h ${GENERATED_INCLUDE_DIR}/scotch.h ${LIBSCOTCH_INCLUDE_DIR}/common.h) add_dependencies(${file_we} scotch_h) target_include_directories(${file_we} PRIVATE ${GENERATED_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(${file_we} PUBLIC "SCOTCH_CODENAME=\"${SCOTCH_CODENAME}\"") if(Threads_FOUND) target_compile_definitions(${file_we} PUBLIC SCOTCH_PTHREAD COMMON_PTHREAD) target_link_libraries(${file_we} PUBLIC Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) endif(Threads_FOUND) target_link_libraries(${file_we} PUBLIC scotch scotcherrexit) endfunction(add_scotch_exe) # Scotch executables set(scotch_exe acpl amk_ccc amk_fft2 amk_grf amk_hy amk_m2 amk_p2 atst gbase gcv gdump gmap gmk_hy gmk_m2 gmk_m3 gmk_msh gmk_ub2 gmtst gord gotst gscat gtst mcv mmk_m2 mmk_m3 mord mtst) # Generic target foreach(target ${scotch_exe}) add_scotch_exe(${target}) endforeach() # Targets which need special source lists add_scotch_exe(gout gout_c.c gout_o.c) if(NOT WIN32) target_link_libraries(gout PRIVATE m) endif(NOT WIN32) # gpart is a special target (same source as gmap) add_scotch_exe(gpart gmap.c gmap.h) target_compile_definitions(gpart PRIVATE SCOTCH_COMPILE_PART) # Install all Scotch executables foreach(target ${scotch_exe} gout gpart) install(TARGETS ${target} COMPONENT scotch RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endforeach() # Executables linked against the libPTScotch library if(BUILD_PTSCOTCH) set_source_files_properties(${GENERATED_INCLUDE_DIR}/ptscotch.h PROPERTIES GENERATED 1) function(add_ptscotch_exe) if(ARGC LESS_EQUAL 0) message(FATAL_ERROR "Macro add_ptscotch_exe requires arguments") endif() set(file_we ${ARGV0}) if(ARGC GREATER_EQUAL 2) set(src_exe ${ARGV}) list(REMOVE_AT src_exe 0) elseif(ARGC EQUAL 1) set(src_exe ${file_we}.c ${file_we}.h) endif() add_executable(${file_we} ${src_exe} ${LIBSCOTCH_INCLUDE_DIR}/module.h ${LIBSCOTCH_INCLUDE_DIR}/common.h ${GENERATED_INCLUDE_DIR}/ptscotch.h) add_dependencies(${file_we} ptscotch_h) target_compile_definitions(${file_we} PUBLIC "SCOTCH_CODENAME=\"${SCOTCH_CODENAME}\"") if(Threads_FOUND) target_compile_definitions(${file_we} PUBLIC SCOTCH_PTHREAD COMMON_PTHREAD) target_link_libraries(${file_we} PUBLIC Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) endif(Threads_FOUND) target_include_directories(${file_we} PRIVATE ${GENERATED_INCLUDE_DIR}) target_link_libraries(${file_we} PUBLIC scotch ptscotch ptscotcherrexit) endfunction(add_ptscotch_exe) set(ptscotch_exe dggath dgmap dgord dgscat dgtst) # Generic PT-Scotch targets foreach(target ${ptscotch_exe}) add_ptscotch_exe(${target}) endforeach() add_ptscotch_exe(dgpart dgmap.c dgmap.h) target_compile_definitions(dgpart PRIVATE SCOTCH_COMPILE_PART) # Install all PT-Scotch executables foreach(target ${ptscotch_exe} dgpart) install(TARGETS ${target} COMPONENT ptscotch RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endforeach() endif(BUILD_PTSCOTCH) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/Makefile000066400000000000000000000317531514310134000246770ustar00rootroot00000000000000## Copyright 2004,2007-2012,2019,2024 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## SCOTCHBINDIR ?= ../../bin SCOTCHINCLUDEDIR ?= ../../include SCOTCHLIBDIR ?= ../../lib LIBPTSCOTCH = -lptscotch -lscotch -lptscotcherrexit LIBSCOTCH = -lscotch -lscotcherrexit ifeq ($(strip $(CODENAME)),) CODENAMEDEF = else CODENAMEDEF = "-DSCOTCH_CODENAME=\"$(CODENAME)\"" endif ## ## General inference rules. ## include ../Makefile.inc %$(EXE) : %$(OBJ) $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(<) -o $(@) -L$(SCOTCHLIBDIR) $(SCOTCHLIBS) $(LDFLAGS) %$(OBJ) : %.c $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(CODENAMEDEF) -c $(<) -o $(@) %$(EXE) : %.c $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(CODENAMEDEF) $(<) -o $(@) -L$(SCOTCHLIBDIR) $(SCOTCHLIBS) $(LDFLAGS) ## ## Project rules. ## .PHONY : ptscotch scotch ptinstall install clean realclean scotch : $(MAKE) CC="$(CCS)" SCOTCHLIBS="$(LIBSCOTCH)" $(BUILDSCOTCH) ptscotch : $(MAKE) CC="$(CCP)" SCOTCHLIBS="$(LIBPTSCOTCH)" $(BUILDPTSCOTCH) install : scotch -$(CP) acpl$(EXE) amk_ccc$(EXE) amk_fft2$(EXE) amk_grf$(EXE) amk_hy$(EXE) amk_m2$(EXE) amk_p2$(EXE) atst$(EXE) gbase$(EXE) gcv$(EXE) gdump$(EXE) gmap$(EXE) gmk_hy$(EXE) gmk_m2$(EXE) gmk_m3$(EXE) gmk_msh$(EXE) gmk_ub2$(EXE) gmtst$(EXE) gord$(EXE) gotst$(EXE) gout$(EXE) gpart$(EXE) *gtst$(EXE) gscat$(EXE) mcv$(EXE) mmk_m2$(EXE) mmk_m3$(EXE) mord$(EXE) mtst$(EXE) $(SCOTCHBINDIR) ptinstall : ptscotch -$(CP) dggath$(EXE) dgmap$(EXE) dgord$(EXE) dgpart$(EXE) dgscat$(EXE) dgtst$(EXE) $(SCOTCHBINDIR) clean : -$(RM) *~ *$(OBJ) acpl$(EXE) amk_ccc$(EXE) amk_fft2$(EXE) amk_grf$(EXE) amk_hy$(EXE) amk_m2$(EXE) amk_p2$(EXE) atst$(EXE) gbase$(EXE) gcv$(EXE) gdump$(EXE) *ggath$(EXE) *gmap$(EXE) gmk_hy$(EXE) gmk_m2$(EXE) gmk_m3$(EXE) gmk_msh$(EXE) gmk_ub2$(EXE) gmtst$(EXE) *gord$(EXE) gotst$(EXE) gout$(EXE) *gpart$(EXE) *gscat$(EXE) *gtst$(EXE) mcv$(EXE) mmk_m2$(EXE) mmk_m3$(EXE) mord$(EXE) mtst$(EXE) realclean : clean ## ## Binary dependencies. ## BUILDSCOTCH = acpl$(EXE) \ amk_ccc$(EXE) \ amk_fft2$(EXE) \ amk_grf$(EXE) \ amk_hy$(EXE) \ amk_m2$(EXE) \ amk_p2$(EXE) \ atst$(EXE) \ gbase$(EXE) \ gcv$(EXE) \ gdump$(EXE) \ gmap$(EXE) \ gmk_hy$(EXE) \ gmk_m2$(EXE) \ gmk_m3$(EXE) \ gmk_msh$(EXE) \ gmk_ub2$(EXE) \ gmtst$(EXE) \ gord$(EXE) \ gotst$(EXE) \ gout$(EXE) \ gpart$(EXE) \ gscat$(EXE) \ gtst$(EXE) \ mcv$(EXE) \ mmk_m2$(EXE) \ mmk_m3$(EXE) \ mord$(EXE) \ mtst$(EXE) BUILDPTSCOTCH = dggath$(EXE) \ dgmap$(EXE) \ dgord$(EXE) \ dgpart$(EXE) \ dgscat$(EXE) \ dgtst$(EXE) ## ## Todo list. ## acpl$(EXE) : acpl.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ acpl.h amk_ccc$(EXE) : amk_ccc.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ amk_ccc.h amk_fft2$(EXE) : amk_fft2.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ amk_fft2.h amk_grf$(EXE) : amk_grf.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ amk_grf.h amk_hy$(EXE) : amk_hy.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ amk_hy.h amk_m2$(EXE) : amk_m2.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ amk_m2.h amk_p2$(EXE) : amk_p2.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ amk_p2.h atst$(EXE) : atst.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ atst.h dggath$(EXE) : dggath.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ dggath.h dgmap$(EXE) : dgmap.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ dgmap.h dgord$(EXE) : dgord.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ dgord.h dgpart$(EXE) : dgmap.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ dgmap.h $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(<) -DSCOTCH_COMPILE_PART -o $(@) -L$(SCOTCHLIBDIR) -lptscotch -lscotch -lptscotcherrexit $(LDFLAGS) dgscat$(EXE) : dgscat.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ dgscat.h dgtst$(EXE) : dgtst.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/ptscotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotch$(LIB) \ $(SCOTCHLIBDIR)/libptscotcherrexit$(LIB) \ dgtst.h gbase$(EXE) : gbase.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gbase.h gcv$(EXE) : gcv.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gcv.h gdump$(EXE) : gdump.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gdump.h gmap$(EXE) : gmap.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmap.h gmk_hy$(EXE) : gmk_hy.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmk_hy.h gmk_m2$(EXE) : gmk_m2.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmk_m2.h gmk_m3$(EXE) : gmk_m3.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmk_m3.h gmk_msh$(EXE) : gmk_msh.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmk_msh.h gmk_ub2$(EXE) : gmk_ub2.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmk_ub2.h gmtst$(EXE) : gmtst.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmtst.h gord$(EXE) : gord.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gord.h gotst$(EXE) : gotst.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gotst.h gout$(EXE) : gout_c.c \ gout_o.c \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) $(CC) $(CFLAGS) -I../libscotch -I$(SCOTCHINCLUDEDIR) gout_c.c gout_o.c -o $(@) -L$(SCOTCHLIBDIR) -lscotch -lscotcherrexit $(LDFLAGS) gpart$(EXE) : gmap.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gmap.h $(CC) $(CFLAGS) -I$(SCOTCHINCLUDEDIR) -I../libscotch $(<) -DSCOTCH_COMPILE_PART -o $(@) -L$(SCOTCHLIBDIR) -lscotch -lscotcherrexit $(LDFLAGS) gscat$(EXE) : gscat.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gscat.h gtst$(EXE) : gtst.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ gtst.h mcv$(EXE) : mcv.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ mcv.h mmk_m2$(EXE) : mmk_m2.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ mmk_m2.h mmk_m3$(EXE) : mmk_m3.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ mmk_m3.h mord$(EXE) : mord.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ mord.h mtst$(EXE) : mtst.c \ ../libscotch/module.h \ ../libscotch/common.h \ $(SCOTCHINCLUDEDIR)/scotch.h \ $(SCOTCHLIBDIR)/libscotch$(LIB) \ $(SCOTCHLIBDIR)/libscotcherrexit$(LIB) \ mtst.h scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/acpl.c000066400000000000000000000150371514310134000243170ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : acpl.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module compiles target architec- **/ /** ture decomposition files for fast **/ /** loading. **/ /** **/ /** DATES : # Version 2.0 : from : 12 nov 1994 **/ /** to : 12 nov 1994 **/ /** # Version 3.0 : from : 06 jul 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 12 may 1998 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 09 feb 2004 **/ /** to : 09 feb 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "acpl.h" /* ** The static variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "acpl [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Arch arch; /* Architecture read and written */ int i; errorProg ("acpl"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "acpl, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_archInit (&arch); /* Initialize architecture structure */ SCOTCH_archLoad (&arch, C_filepntrtgtinp); /* Load architecture */ if (strcmp (SCOTCH_archName (&arch), "deco") != 0) /* If not a decomposition */ errorPrint ("main: architecture is not decomposition-defined"); SCOTCH_archSave (&arch, C_filepntrtgtout); /* Save the compiled architecture */ fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_archExit (&arch); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/acpl.h000066400000000000000000000072121514310134000243200ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : acpl.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the target archi- **/ /** tecture compilation function defini- **/ /** tions. **/ /** **/ /** DATES : # Version 2.0 : from : 12 nov 1994 **/ /** to : 12 nov 1994 **/ /** # Version 3.0 : from : 06 jul 1995 **/ /** to : 06 jul 1995 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 01 jun 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenametgtinp fileBlockName (C_fileTab, 0) /* Target architecture input file name */ #define C_filenametgtout fileBlockName (C_fileTab, 1) /* Target architecture output file name */ #define C_filepntrtgtinp fileBlockFile (C_fileTab, 0) /* Target architecture input file */ #define C_filepntrtgtout fileBlockFile (C_fileTab, 1) /* Target architecture output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_ccc.c000066400000000000000000000251411514310134000247550ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_ccc.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the distance map for CCC **/ /** graphs, to be used to build the archi- **/ /** tecture description files for these **/ /** graphs. **/ /** **/ /** DATES : # Version 1.3 : from : 24 apr 1994 **/ /** to : 24 apr 1994 **/ /** # Version 2.0 : from : 13 jul 1994 **/ /** to : 12 nov 1994 **/ /** # Version 3.0 : from : 18 sep 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.2 : from : 07 may 1997 **/ /** to : 07 may 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "amk_ccc.h" /* ** The static and global definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW } }; static C_VertDist * C_distaTab; /* Pointer to distance map table */ static C_Queue C_distaQueue; /* Distance queue */ static const char * C_usageList[] = { /* Usage list */ "amk_ccc [] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /*************************************************/ /* */ /* The main routine, which computes the distance */ /* triangular table. */ /* */ /*************************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num ccdim; /* Dimension of the graph */ SCOTCH_Num ccnbr; /* Number of vertices */ SCOTCH_Num ccbit; /* Mask variable */ SCOTCH_Num ccmax; /* Maximum terminal */ C_Vertex v, w, x; /* Vertex variables */ SCOTCH_Num d; /* Vertex distance to root */ SCOTCH_Num t; /* Vertex terminal value */ SCOTCH_Num i, j, k; errorProg ("amk_ccc"); ccdim = 2; if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ if ((ccdim = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_FILENBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "amk_ccc, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ ccnbr = ccdim * (1 << ccdim); /* Compute number of vertices */ ccbit = (1 << ccdim) - 1; /* Get maximum position number */ for (ccmax = ((1 << (ccdim + 1)) - 1), i = ccdim - 1; /* Compute biggest terminal value */ i != 0; i >>= 1) ccmax = (ccmax << 1) | (i & 1); fprintf (C_filepntrarcout, "deco\n0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", /* Print the file header */ (SCOTCH_Num) ccnbr, /* Print number of terminal domains */ (SCOTCH_Num) ccmax); /* Print biggest terminal value */ for (v.lvl = 0; v.lvl < ccdim; v.lvl ++) { /* For all levels */ for (v.pos = 0; v.pos <= ccbit; v.pos ++) { /* For all positions in these levels */ t = (1 << ccdim) | v.pos; /* Perform the hypercube cuts */ for (i = v.lvl, j = ccdim; j != 1; ) { /* Perform the cycle cuts */ t <<= 1; k = (j + 1) >> 1; if (i >= k) { /* If upper (smallest) half */ t |= 1; i -= k; j -= k; } else /* If lower (biggest) half */ j = k; } fprintf (C_filepntrarcout, SCOTCH_NUMSTRING "\t1\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) C_vertLabl (&v), /* Print terminal label */ (SCOTCH_Num) t); /* Print terminal number */ } } if ((C_queueInit (&C_distaQueue, ccmax) != 0) || /* Allocate the distance array */ ((C_distaTab = (C_VertDist *) memAlloc (ccmax * sizeof (C_VertDist))) == NULL)) errorPrint ("main: out of memory"); for (v.lvl = 0; v.lvl < ccdim; v.lvl ++) { /* For all levels */ for (v.pos = 0; v.pos <= ccbit; v.pos ++) { /* For all positions in these levels */ for (i = 0; i < ccnbr; i ++) /* Initialize vertex table */ C_distaTab[i].queued = 0; /* Vertex not queued yet */ C_distaRoot (&v); /* Set the queue with root v */ while (C_distaGet (&w, &d)) { /* As long as the queue is not empty */ C_distaTab[C_vertLabl (&w)].dist = d; /* Keep the distance information */ d ++; /* Search for neighbors at next level */ x.lvl = w.lvl; /* Add neighbors to queue */ x.pos = w.pos ^ (1 << x.lvl); C_distaPut (&x, d); x.lvl = (w.lvl == 0) ? (ccdim - 1) : (w.lvl - 1); x.pos = w.pos; C_distaPut (&x, d); x.lvl = (w.lvl == (ccdim - 1)) ? 0 : (w.lvl + 1); C_distaPut (&x, d); } if (v.lvl + v.pos > 0) { /* Print distance triangular map line */ fprintf (C_filepntrarcout, SCOTCH_NUMSTRING, (SCOTCH_Num) C_distaTab[0].dist); for (i = 1; i < C_vertLabl (&v); i ++) fprintf (C_filepntrarcout, " " SCOTCH_NUMSTRING, (SCOTCH_Num) C_distaTab[i].dist); fprintf (C_filepntrarcout, "\n"); } } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ C_queueExit (&C_distaQueue); memFree (C_distaTab); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_ccc.h000066400000000000000000000140351514310134000247620ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_ccc.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the distance map for CCC **/ /** graphs, to be used to build the **/ /** architecture description files for **/ /** these graphs. **/ /** **/ /** DATES : # Version 1.3 : from : 24 apr 1994 **/ /** to : 24 apr 1994 **/ /** # Version 2.0 : from : 13 jul 1994 **/ /** to : 18 jul 1994 **/ /** # Version 3.0 : from : 18 sep 1995 **/ /** to : 18 sep 1995 **/ /** # Version 3.2 : from : 07 may 1997 **/ /** to : 07 may 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 1 /* Number of files in list */ #define C_filenamearcout fileBlockName (C_fileTab, 0) /* Architecture output file name */ #define C_filepntrarcout fileBlockFile (C_fileTab, 0) /* Architecture output file */ /* ** The type and structure definitions. */ /*+ This structure defines a CCC vertex. +*/ typedef struct C_Vertex_ { SCOTCH_Num lvl; /*+ Vertex level +*/ SCOTCH_Num pos; /*+ Vertex position +*/ } C_Vertex; /*+ This structure defines a vertex distance information. +*/ typedef struct C_VertDist_ { int queued; /*+ Flag set if vertex queued +*/ SCOTCH_Num dist; /*+ Distance to initial vertex +*/ } C_VertDist; /*+ This is a neighbor queue element. +*/ typedef struct C_QueueElem_ { C_Vertex vert; /*+ Vertex number +*/ SCOTCH_Num dist; /*+ Distance reached +*/ } C_QueueElem; /*+ This is the distance queue. +*/ typedef struct C_Queue_ { C_QueueElem * tab; /*+ Pointer to queue data +*/ SCOTCH_Num min; /*+ Pointer to first element +*/ SCOTCH_Num max; /*+ Pointer to last element +*/ } C_Queue; /* ** The macro definitions. */ #define C_vertLabl(v) (((v)->lvl << ccdim) | (v)->pos) #define C_queueInit(q,n) ((((q)->tab = (C_QueueElem *) memAlloc ((n) * sizeof (C_QueueElem))) == NULL) ? 1 : 0) #define C_queueExit(q) memFree ((q)->tab) #define C_queueFlush(q) (q)->min = \ (q)->max = 0 #define C_queuePut(q,v,d) ((q)->tab[(q)->max].vert = *(v), \ (q)->tab[(q)->max ++].dist = (d)) #define C_queueGet(q,v,d) (((q)->min < (q)->max) ? (*(v) = (q)->tab[(q)->min].vert, \ *(d) = (q)->tab[(q)->min ++].dist, \ 1) \ : 0) #define C_distaRoot(v) (C_queueFlush (&C_distaQueue), \ C_queuePut (&C_distaQueue, (v), 0), \ C_distaTab[C_vertLabl (v)].queued = 1) #define C_distaGet(v,d) (C_queueGet (&C_distaQueue, (v), (d))) #define C_distaPut(v,d) ((C_distaTab[C_vertLabl (v)].queued == 0) \ ? C_queuePut (&C_distaQueue, (v), d), \ C_distaTab[C_vertLabl (v)].queued = 1 \ : 0) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_fft2.c000066400000000000000000000266251514310134000250760ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_fft2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the distance map for FFT **/ /** graphs, to be used to build the archi- **/ /** tecture description files for these **/ /** graphs. **/ /** **/ /** DATES : # Version 1.3 : from : 19 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.2 : from : 07 may 1997 **/ /** to : 07 may 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "amk_fft2.h" /* ** The static and global definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW } }; static C_VertDist * C_distaTab; /* Pointer to distance map table */ static C_Queue C_distaQueue; /* Distance queue */ static const char * C_usageList[] = { /* Usage list */ "amk_fft2 [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /*************************************************/ /* */ /* The main routine, which computes the distance */ /* triangular table. */ /* */ /*************************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num fdim; /* FFT dimension */ SCOTCH_Num fnbr; /* Number of FFT vertices */ SCOTCH_Num fmax; /* Maximum terminal number */ SCOTCH_Num fmsk; /* Position bit mask */ C_Vertex v; /* A FFT vertex (lvl, pos) */ SCOTCH_Num i; /* Loop counter */ SCOTCH_Num t; /* Vertex terminal value */ errorProg ("amk_fft2"); fdim = 2; if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ if ((fdim = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_FILENBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "amk_fft2, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ fnbr = (fdim + 1) * (1 << fdim); /* Compute number of vertices */ fmsk = (1 << fdim) - 1; /* Get maximum position number */ for (i = fdim, fmax = 1; i > 0; i --) /* Compute maximum terminal number */ fmax = (fmax << 2) | 2; fmax |= 1; fprintf (C_filepntrarcout, "deco\n0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", /* Print file header */ (SCOTCH_Num) fnbr, /* Print number of terminal domains */ (SCOTCH_Num) fmax); /* Print the biggest terminal value */ for (v.lvl = 0; v.lvl <= fdim; v.lvl ++) { /* For all vertices */ for (v.pos = 0; v.pos <= fmsk; v.pos ++) { SCOTCH_Num b; /* Bitmask value */ for (i = v.lvl, b = 1 << (fdim - 1), t = 1; /* Recurse through the vertical + horizontal cuts */ i <= fdim; i ++, b >>= 1) { t <<= 1; /* Vertical cut: tell if vertex is in left or... */ t |= (v.pos & b) ? 1 : 0; /* right part from the position heaviest bits */ t <<= 1; /* Vertex is still in upper part of horizontal cut */ } if (v.lvl == 0) /* If vertex is in the first level... */ t >>= 2; /* We have gone one step too far */ else { /* Else */ t |= 1; /* This time vertex is in the lower part */ t <<= (v.lvl - 1); /* Make space for the chain bipartition */ t |= v.pos & ((1 << (v.lvl - 1)) - 1); /* Bipartition the chain following the lowest bits */ } fprintf (C_filepntrarcout, SCOTCH_NUMSTRING "\t1\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) C_vertLabl (&v), /* Print terminal label */ (SCOTCH_Num) t); /* Print terminal number */ } } if ((C_queueInit (&C_distaQueue, fnbr) != 0) || /* Allocate distance array */ ((C_distaTab = (C_VertDist *) memAlloc (fnbr * sizeof (C_VertDist))) == NULL)) errorPrint ("main: out of memory"); for (v.lvl = 0; v.lvl <= fdim; v.lvl ++) { /* For all vertices */ for (v.pos = 0; v.pos <= fmsk; v.pos ++) { C_Vertex w; /* Current vertex */ SCOTCH_Num d; /* Distance value */ for (i = 0; i < fnbr; i ++) /* Initialize the vertex table */ C_distaTab[i].queued = 0; /* Vertex not queued yet */ C_distaRoot (&v); /* Set the queue with root v */ while (C_distaGet (&w, &d)) { /* As long as the queue is not empty */ C_distaTab[C_vertLabl (&w)].dist = d; /* Keep the distance information */ d ++; /* Search for neighbors at next level */ if (w.lvl > 0) { /* Add new neighbors to the queue */ C_Vertex x; /* Neighbor vertex */ x.lvl = w.lvl - 1; x.pos = w.pos; C_distaPut (&x, d); x.pos = w.pos ^ (1 << (w.lvl - 1)); C_distaPut (&x, d); } if (w.lvl < fdim) { C_Vertex x; /* Neighbor vertex */ x.lvl = w.lvl + 1; x.pos = w.pos; C_distaPut (&x, d); x.pos = w.pos ^ (1 << w.lvl); C_distaPut (&x, d); } } if (v.lvl + v.pos > 0) { /* Print the distance triangular map line */ fprintf (C_filepntrarcout, SCOTCH_NUMSTRING, (SCOTCH_Num) C_distaTab[0].dist); for (i = 1; i < (v.lvl << fdim) + v.pos; i ++) fprintf (C_filepntrarcout, " " SCOTCH_NUMSTRING, (SCOTCH_Num) C_distaTab[i].dist); fprintf (C_filepntrarcout, "\n"); } } } C_queueExit (&C_distaQueue); memFree (C_distaTab); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_fft2.h000066400000000000000000000140041514310134000250670ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_fft2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the distance map for FFT **/ /** graphs, to be used to build the archi- **/ /** tecture description files for these **/ /** graphs. **/ /** **/ /** DATES : # Version 1.3 : from : 19 apr 1994 **/ /** to : 20 apr 1994 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 04 jul 1995 **/ /** # Version 3.2 : from : 07 may 1997 **/ /** to : 07 may 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 5.0 : from : 01 jan 2008 **/ /** to : 01 jan 2008 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The type and structure definitions */ /*+ File name aliases. +*/ #define C_FILENBR 1 /* Number of files in list */ #define C_filenamearcout fileBlockName (C_fileTab, 0) /* Architecture output file name */ #define C_filepntrarcout fileBlockFile (C_fileTab, 0) /* Architecture output file */ /*+ This structure defines an FFT vertex. +*/ typedef struct C_Vertex_ { SCOTCH_Num lvl; /*+ Vertex level +*/ SCOTCH_Num pos; /*+ Vertex position +*/ } C_Vertex; /*+ This structure defines a vertex distance information. +*/ typedef struct C_VertDist_ { int queued; /*+ Flag set if vertex queued +*/ SCOTCH_Num dist; /*+ Distance to initial vertex +*/ } C_VertDist; /*+ This is a neighbor queue element. +*/ typedef struct C_QueueElem_ { C_Vertex vert; /*+ Vertex number +*/ SCOTCH_Num dist; /*+ Distance reached +*/ } C_QueueElem; /*+ This is the distance queue. +*/ typedef struct C_Queue_ { C_QueueElem * tab; /*+ Pointer to queue data +*/ SCOTCH_Num min; /*+ Pointer to first element +*/ SCOTCH_Num max; /*+ Pointer to last element +*/ } C_Queue; /* ** The macro definitions. */ #define C_vertLabl(v) (((v)->lvl << fdim) | (v)->pos) #define C_queueInit(q,n) ((((q)->tab = (C_QueueElem *) memAlloc ((n) * sizeof (C_QueueElem))) == NULL) ? 1 : 0) #define C_queueExit(q) memFree ((q)->tab) #define C_queueFlush(q) (q)->min = \ (q)->max = 0 #define C_queuePut(q,v,d) ((q)->tab[(q)->max].vert = *(v), \ (q)->tab[(q)->max ++].dist = (d)) #define C_queueGet(q,v,d) (((q)->min < (q)->max) ? (*(v) = (q)->tab[(q)->min].vert, \ *(d) = (q)->tab[(q)->min ++].dist, \ 1) \ : 0) #define C_distaRoot(v) (C_queueFlush (&C_distaQueue), \ C_queuePut (&C_distaQueue, (v), 0), \ C_distaTab[C_vertLabl (v)].queued = 1) #define C_distaGet(v,d) (C_queueGet (&C_distaQueue, (v), (d))) #define C_distaPut(v,d) ((C_distaTab[C_vertLabl (v)].queued == 0) \ ? C_queuePut (&C_distaQueue, (v), d), \ C_distaTab[C_vertLabl (v)].queued = 1 \ : 0) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_grf.c000066400000000000000000000264071514310134000250110ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_grf.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the architecture description **/ /** file for any source graph. **/ /** **/ /** DATES : # Version 3.0 : from : 06 jul 1995 **/ /** to : 02 oct 1995 **/ /** # Version 3.1 : from : 26 mar 1996 **/ /** to : 26 mar 1996 **/ /** # Version 3.2 : from : 23 apr 1997 **/ /** to : 03 jun 1998 **/ /** # Version 3.3 : from : 15 may 1999 **/ /** to : 15 may 1999 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 17 mar 2005 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 11 dec 2008 **/ /** to : 17 jul 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "amk_grf.h" /* ** The static variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW }, { FILEMODER } }; static const char * C_usageList[] = { /* Usage */ "amk_grf [ []] ", " -2 : Create a 'deco 2' instead of a 'deco 0' architecture", " -b : Apply bipartitioning strategy (for 'deco 0' architectures)", " -h : Display this help", " -l : Load vertex list from ", " -V : Print program version and copyright", "", "Default option set is : '-Bhf{move=1000}/((load0=load)|(load0=0))?x;'", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Strat bipastrat; /* Bipartitioning strategy */ SCOTCH_Arch archdat; /* Target (terminal) architecture */ SCOTCH_Graph grafdat; /* Source graph to turn into architecture */ SCOTCH_Num vertnbr; /* Number of vertices in graph */ SCOTCH_Num * vlbltab; /* Pointer to vertex label array, if present */ SCOTCH_Num listnbr; /* Size of list array */ SCOTCH_Num * listtab; /* Pointer to list array */ C_VertSort * sorttab; /* Vertex label sort area */ SCOTCH_Num baseval; int flagval; /* Process flags */ int i; errorProg ("amk_grf"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } flagval = C_FLAGNONE; SCOTCH_stratInit (&bipastrat); fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case '2' : /* Type-2 architecture */ flagval |= C_FLAGDECO2; break; case 'B' : /* Bipartitioning strategy */ case 'b' : SCOTCH_stratExit (&bipastrat); SCOTCH_stratInit (&bipastrat); if ((SCOTCH_stratGraphBipart (&bipastrat, &argv[i][2])) != 0) errorPrint ("main: invalid bipartitioning strategy"); break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'L' : /* Input vertex list */ case 'l' : flagval |= C_FLAGVRTINP; if (argv[i][2] != '\0') C_filenamevrtinp = &argv[i][2]; break; case 'V' : fprintf (stderr, "amk_grf, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); /* Create graph structure */ SCOTCH_graphLoad (&grafdat, C_filepntrgrfinp, -1, 0); /* Load source graph */ SCOTCH_graphData (&grafdat, &baseval, &vertnbr, NULL, NULL, NULL, /* Get graph data */ &vlbltab, NULL, NULL, NULL); listnbr = 0; /* Initialize vertex list */ listtab = NULL; if (flagval & C_FLAGVRTINP) { /* If list of vertices provided */ SCOTCH_Num listnum; if ((intLoad (C_filepntrvrtinp, &listnbr) != 1) || /* Read list size */ (listnbr < 0) || (listnbr > vertnbr)) errorPrint ("main: bad list input (1)"); if ((listtab = (SCOTCH_Num *) memAlloc (listnbr * sizeof (SCOTCH_Num))) == NULL) errorPrint ("main: out of memory (1)"); for (listnum = 0; listnum < listnbr; listnum ++) { /* Read list data */ if (intLoad (C_filepntrvrtinp, &listtab[listnum]) != 1) errorPrint ("main: bad list input (2)"); } intSort1asc1 (listtab, listnbr); for (listnum = 0; listnum < listnbr - 1; listnum ++) { /* Search for duplicates */ if (listtab[listnum] == listtab[listnum + 1]) errorPrint ("main: duplicate list labels"); } if (vlbltab != NULL) { /* If graph has vertex labels */ SCOTCH_Num vertnum; if ((sorttab = (C_VertSort *) memAlloc (vertnbr * sizeof (C_VertSort))) == NULL) errorPrint ("main: out of memory (2)"); for (vertnum = 0; vertnum < vertnbr; vertnum ++) { /* Initialize sort area */ sorttab[vertnum].vlblnum = vlbltab[vertnum]; sorttab[vertnum].vertnum = vertnum; } intSort2asc1 (sorttab, vertnbr); /* Sort by ascending labels */ for (listnum = 0, vertnum = 0; listnum < listnbr; listnum ++) { /* For all labels in list */ while ((vertnum < vertnbr) && (sorttab[vertnum].vlblnum < listtab[listnum])) vertnum ++; /* Search vertex graph with corresponding label */ if ((vertnum >= vertnbr) || /* If label not found */ (sorttab[vertnum].vlblnum > listtab[listnum])) errorPrint ("main: list label '" SCOTCH_NUMSTRING "' not in graph", (SCOTCH_Num) listtab[listnum]); listtab[listnum] = sorttab[vertnum ++].vertnum; /* Replace label by number */ } memFree (sorttab); /* Free sort area */ } } SCOTCH_archInit (&archdat); /* Initialize target architecture */ if ((flagval & C_FLAGDECO2) != 0) SCOTCH_archBuild2 (&archdat, &grafdat, listnbr, listtab); /* Compute type-2 architecture */ else SCOTCH_archBuild0 (&archdat, &grafdat, listnbr, listtab, &bipastrat); /* Compute type-0 architecture */ SCOTCH_archSave (&archdat, C_filepntrtgtout); /* Write target architecture */ fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end potential (un)compression tasks */ SCOTCH_graphExit (&grafdat); /* Free target graph */ SCOTCH_archExit (&archdat); /* Free target architecture */ SCOTCH_stratExit (&bipastrat); /* Free strategy string */ if (listtab != NULL) /* If vertex list provided */ memFree (listtab); /* Free it */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_grf.h000066400000000000000000000107211514310134000250060ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2014,2018 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_grf.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Decomposition architecture builder. **/ /** These lines are the data declarations **/ /** for the program routines. **/ /** **/ /** DATES : # Version 3.0 : from : 06 jul 1995 **/ /** to : 02 oct 1995 **/ /** # Version 3.1 : from : 26 mar 1996 **/ /** to : 26 mar 1996 **/ /** # Version 3.2 : from : 23 apr 1997 **/ /** to : 02 jun 1997 **/ /** # Version 3.3 : from : 15 may 1999 **/ /** to : 15 may 1999 **/ /** # Version 5.1 : from : 17 jul 2011 **/ /** to : 17 jul 2011 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 11 feb 2018 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 3 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamegrfinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenametgtout fileBlockName (C_fileTab, 1) /* Architecture output file name */ #define C_filenamevrtinp fileBlockName (C_fileTab, 2) /* Vertex list input file name */ #define C_filepntrgrfinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrtgtout fileBlockFile (C_fileTab, 1) /* Architecture output file */ #define C_filepntrvrtinp fileBlockFile (C_fileTab, 2) /* Vertex list input file */ /*+ Process flags. +*/ #define C_FLAGVRTINP 0x0001 /* Input vertex list */ #define C_FLAGDECO2 0x0002 /* Type-2 architecture */ #define C_FLAGNONE 0x0000 /* Default flags */ /* ** The type and structure definitions. */ /*+ The sort structure, used to sort graph vertices by label. +*/ typedef struct C_VertSort_ { SCOTCH_Num vlblnum; /*+ Vertex label +*/ SCOTCH_Num vertnum; /*+ Vertex number +*/ } C_VertSort; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_hy.c000066400000000000000000000176741514310134000246610ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_hy.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the distance map for hypercube **/ /** graphs, to be used to build the archi- **/ /** tecture description files for these **/ /** graphs. **/ /** **/ /** DATES : # Version 2.0 : from : 14 nov 1994 **/ /** to : 14 nov 1994 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.2 : from : 31 may 1997 **/ /** to : 02 jun 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "amk_hy.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW } }; static const char * C_usageList[] = { "amk_hy [] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /*************************************************/ /* */ /* The main routine, which computes the distance */ /* triangular table. */ /* */ /*************************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num hdim; /* Hypercube dimension */ SCOTCH_Num hnbr; /* Number of hypercube vertices */ SCOTCH_Num hmax; /* Number of domains */ SCOTCH_Num hv0, hv1; SCOTCH_Num i, j; errorProg ("amk_hy"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } hdim = 1; /* Preset hypercube dimension */ fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ if ((hdim = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "amk_hy, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ hnbr = 1 << hdim; /* Compute number of terminals */ hmax = (1 << (hdim + 1)) - 1; /* Maximum terminal value */ fprintf (C_filepntrtgtout, "deco\n0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", /* Print the file header */ (SCOTCH_Num) hnbr, /* Print number of terminal domains */ (SCOTCH_Num) hmax); /* Print the biggest terminal value */ for (i = 0; i < hnbr; i ++) /* For all vertices */ fprintf (C_filepntrtgtout, SCOTCH_NUMSTRING "\t1\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) i, /* Print terminal label */ (SCOTCH_Num) (hnbr + i)); /* Print terminal number */ for (hv0 = 1; hv0 < hnbr; hv0 ++) { /* For all vertices */ for (hv1 = 0; hv1 < hv0; hv1 ++) { for (i = hv0 ^ hv1, j = 0; i > 0; i >>=1) j += (i & 1); fprintf (C_filepntrtgtout, (hv1 == 0) ? SCOTCH_NUMSTRING : " " SCOTCH_NUMSTRING, (SCOTCH_Num) j); } fprintf (C_filepntrtgtout, "\n"); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_hy.h000066400000000000000000000073441514310134000246570ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_hy.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the target architecture file **/ /** for hypercube graphs. **/ /** Here are the data declaration for the **/ /** target machine architecture functions. **/ /** **/ /** DATES : # Version 2.0 : from : 14 nov 1994 **/ /** to : 14 nov 1994 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 07 jul 1995 **/ /** # Version 3.1 : from : 30 may 1996 **/ /** to : 30 may 1996 **/ /** # Version 3.2 : from : 31 may 1997 **/ /** to : 31 may 1997 **/ /** # Version 3.3 : from : 02 oct 1998 **/ /** to : 02 oct 1998 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 1 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenametgtout fileBlockName (C_fileTab, 0) /* Architecture output file name */ #define C_filepntrtgtout fileBlockFile (C_fileTab, 0) /* Architecture output file */ /* ** The macro definitions. */ #ifndef abs #define abs(a) (((a) >= 0) ? (a) : -(a)) #endif /* abs */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_m2.c000066400000000000000000000270051514310134000245440ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_m2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the distance map for **/ /** bidimensional mesh graphs, to be used **/ /** to build the architecture description **/ /** files for these graphs. **/ /** **/ /** DATES : # Version 1.3 : from : 21 apr 1994 **/ /** to : 21 apr 1994 **/ /** # Version 2.0 : from : 12 jul 1994 **/ /** to : 12 nov 1994 **/ /** # Version 3.0 : from : 17 jul 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.2 : from : 31 may 1997 **/ /** to : 02 jun 1997 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 09 feb 2004 **/ /** to : 09 feb 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 21 apr 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 10 sep 2024 **/ /** **/ /** NOTES : # The vertices of the (dX,dY) mesh are **/ /** numbered as terminals so that **/ /** t (0,0)=0, t (1,0) = 1, **/ /** t (dX - 1, 0) = dX - 1, **/ /** t (0,1) = dX, and **/ /** t(x,y) = (y * dX) + x. **/ /** **/ /** # The nested dissection method should **/ /** behave like the architecture built in **/ /** the mapper. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "arch.h" #include "arch_mesh.h" #include "amk_m2.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODEW } }; static const char * C_usageList[] = { "amk_m2 [ []] ", " -h : Display this help", " -m : Decomposition method", " n : Nested dissection (cut biggest dimension)", " o : One-way dissection (y, then x)", " -V : Print program version and copyright", "", "Default option set is : '-Mn'", NULL }; /*************************************************/ /* */ /* The main routine, which computes the distance */ /* triangular table. */ /* */ /*************************************************/ int main ( int argc, char * argv[]) { ArchMesh2 arch; /* Mesh dimensions */ ArchMesh2Dom dom; /* Initial domain */ C_MethType typeval; /* Bipartitioning method */ Anum termnbr; /* Number of terminal domains */ Anum termnum; Anum termmax; /* Maximum terminal number */ Anum * termtab; /* Terminal numbers table */ Anum x0, y0, x1, y1; int i; errorProg ("amk_m2"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } typeval = C_METHNESTED; arch.c[0] = /* Preset mesh dimensions */ arch.c[1] = 1; fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 2) { /* If number of parameters not reached */ if ((arch.c[C_paraNum ++] = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'M' : /* Use a built-in method */ case 'm' : switch (argv[i][2]) { case 'N' : /* Nested dissection */ case 'n' : typeval = C_METHNESTED; break; case 'O' : /* One-way dissection */ case 'o' : typeval = C_METHONEWAY; break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "amk_m2, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ dom.c[0][0] = 0; /* Set the initial domain */ dom.c[0][1] = arch.c[0] - 1; dom.c[1][0] = 0; dom.c[1][1] = arch.c[1] - 1; termnbr = arch.c[0] * arch.c[1]; /* Compute number of terminals */ termmax = 0; /* Maximum terminal value not known yet */ if ((termtab = (Anum *) memAlloc (termnbr * sizeof (Anum))) == NULL) /* Allocate terminal array */ errorPrint ("main: out of memory"); memset (termtab, -1, termnbr * sizeof (unsigned int)); /* Initilize mapping table */ C_domnBipart (&arch, &dom, 1, termtab, &termmax, /* Compute terminal numbers */ (typeval == C_METHNESTED) ? archMesh2DomBipart : archMesh2DomBipartO); fprintf (C_filepntrarcout, "deco\n0\n" ANUMSTRING "\t" ANUMSTRING "\n", /* Print file header */ termnbr, termmax); for (termnum = 0; termnum < termnbr; termnum ++) /* For all terminals */ fprintf (C_filepntrarcout, ANUMSTRING "\t1\t" ANUMSTRING "\n", /* Print terminal data */ termnum, termtab[termnum]); for (y0 = 0; y0 < arch.c[1]; y0 ++) { /* For all vertices */ for (x0 = 0; x0 < arch.c[0]; x0 ++) { for (y1 = 0; y1 <= y0; y1 ++) { /* Compute distance to smaller vertices */ for (x1 = 0; (x1 < arch.c[0]) && ((y1 < y0) || (x1 < x0)); x1 ++) fprintf (C_filepntrarcout, ((x1 == 0) && (y1 == 0)) ? ANUMSTRING : " " ANUMSTRING, C_domnDist (x0, y0, x1, y1)); } fprintf (C_filepntrarcout, "\n"); } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ memFree (termtab); /* Free terminal number array */ return (EXIT_SUCCESS); } /* This routine recursively determines the values ** of all the terminal vertices of the mesh domain, ** and puts them in table. */ void C_domnBipart ( ArchMesh2 * archptr, ArchMesh2Dom * domptr, Anum num, Anum * termtab, Anum * termmax, DomnBipartFunc funcptr) { ArchMesh2Dom dom0; ArchMesh2Dom dom1; if (funcptr (archptr, domptr, &dom0, &dom1) == 0) { /* If we can bipartition */ C_domnBipart (archptr, &dom0, num + num, termtab, termmax, funcptr); /* Bipartition recursively */ C_domnBipart (archptr, &dom1, num + num + 1, termtab, termmax, funcptr); } else { /* If we have reached the end */ termtab[domptr->c[1][0] * archptr->c[0] + /* Set the terminal number */ domptr->c[0][0]] = num; if (*termmax < num) /* If we have reached a new maximum */ *termmax = num; /* Record it */ } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_m2.h000066400000000000000000000115151514310134000245500ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2019,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_m2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the target architecture file **/ /** for bidimensional mesh graphs. **/ /** Here are the data declaration for the **/ /** target machine architecture functions. **/ /** **/ /** DATES : # Version 1.3 : from : 21 apr 1994 **/ /** to : 22 apr 1994 **/ /** # Version 2.0 : from : 12 jul 1994 **/ /** to : 13 nov 1994 **/ /** # Version 2.0 : from : 18 sep 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.1 : from : 30 may 1996 **/ /** to : 30 may 1996 **/ /** # Version 3.2 : from : 31 may 1997 **/ /** to : 02 jun 1997 **/ /** # Version 4.0 : from : 09 feb 2004 **/ /** to : 09 feb 2004 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 16 apr 2019 **/ /** # Version 7.0 : from : 10 sep 2024 **/ /** to : 29 aug 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 1 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamearcout fileBlockName (C_fileTab, 0) /* Architecture output file name */ #define C_filepntrarcout fileBlockFile (C_fileTab, 0) /* Architecture output file */ /* ** The type and structure definitions. */ /** The method type. **/ typedef enum C_MethType_ { C_METHNESTED, /*+ Nested decomposition +*/ C_METHONEWAY /*+ One-way decomposition +*/ } C_MethType; /** The bipartitioning routine type. **/ typedef int (* DomnBipartFunc) (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const); /* ** The function prototypes. */ void C_domnBipart (ArchMesh2 *, ArchMesh2Dom *, Anum, Anum *, Anum *, DomnBipartFunc); int C_domnBipartOne (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const); /* ** The macro definitions. */ #ifndef abs #define abs(a) (((a) >= 0) ? (a) : -(a)) #endif /* abs */ #define C_domnDist(x0,y0,x1,y1) (abs ((x0) - (x1)) + abs ((y0) - (y1))) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_p2.c000066400000000000000000000144141514310134000245470ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_p2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the target architecture file **/ /** for a weighted path with two vertices **/ /** used to bipartition graphs in parts of **/ /** different sizes. **/ /** **/ /** DATES : # Version 3.0 : from : 17 jul 1995 **/ /** to : 17 jul 1995 **/ /** # Version 3.2 : from : 02 jun 1997 **/ /** to : 02 jun 1997 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 5.1 : from : 16 dec 2007 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "amk_p2.h" /* ** The static variables. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODEW } }; static const char * C_usageList[] = { "amk_p2 [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /************************************/ /* */ /* The main routine, which computes */ /* the decomposition. */ /* */ /************************************/ int main ( int argc, char * argv[]) { int wght[2] = {1, 1}; /* Vertex weights */ int i; errorProg ("amk_p2"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 2) { /* If number of parameters not reached */ if ((wght[C_paraNum ++] = atoi (argv[i])) < 1) /* Get vertex weights */ errorPrint ("main: invalid weight '%s'", argv[i]); continue; /* Process remaining parameters */ } if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "amk_p2, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ fprintf (C_filepntrtgtout, "cmpltw\t2\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", /* Print target description */ (SCOTCH_Num) wght[0], (SCOTCH_Num) wght[1]); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/amk_p2.h000066400000000000000000000065521514310134000245600ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : amk_p2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the target architecture file **/ /** for a weighted path with two vertices **/ /** used to bipartition graphs in parts of **/ /** different sizes. **/ /** Here are the data declaration for the **/ /** target machine architecture functions. **/ /** **/ /** DATES : # Version 3.0 : from : 17 jul 1995 **/ /** to : 17 jul 1995 **/ /** # Version 3.2 : from : 02 jun 1997 **/ /** to : 02 jun 1997 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 1 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenametgtout fileBlockName (C_fileTab, 0) /* Architecture output file name */ #define C_filepntrtgtout fileBlockFile (C_fileTab, 0) /* Architecture output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/atst.c000066400000000000000000000225771514310134000243620ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : atst.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Target architecture graph analyzer. **/ /** **/ /** DATES : # Version 1.3 : from : 17 may 1994 **/ /** to : 17 may 1994 **/ /** # Version 2.0 : from : 11 nov 1994 **/ /** to : 11 nov 1994 **/ /** # Version 3.0 : from : 05 jul 1995 **/ /** to : 19 aug 1995 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 12 may 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 09 feb 2004 **/ /** to : 23 nov 2005 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 20 nov 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "atst.h" /* ** The static variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "atst [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Arch archdat; SCOTCH_ArchDom domndat; SCOTCH_ArchDom * restrict termtab; SCOTCH_Num termnbr; SCOTCH_Num termnum; SCOTCH_Num ter0num; SCOTCH_Num ter1num; SCOTCH_Num distmin; SCOTCH_Num distmax; SCOTCH_Num distsum; double distavg; double distdlt; int i; errorProg ("atst"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "atst, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_archInit (&archdat); /* Initialize architecture structure */ if (SCOTCH_archLoad (&archdat, C_filepntrtgtinp) != 0) /* Load architecture */ errorPrint ("main: cannot load architecture"); SCOTCH_archDomFrst (&archdat, &domndat); termnbr = SCOTCH_archDomSize (&archdat, &domndat); if ((termtab = (SCOTCH_ArchDom *) malloc (termnbr * sizeof (SCOTCH_ArchDom))) == NULL) errorPrint ("main: out of memory"); termnum = 0; if ((C_termList (&archdat, termtab, termnbr, &termnum, &domndat) != 0) || (termnum != termnbr)) errorPrint ("main: cannot enumerate terminal domains"); distmin = (SCOTCH_Num) (((unsigned long) ((SCOTCH_Num) -1)) >> 1); /* Set to maximum number in Anum */ distmax = 0; distsum = 0; for (ter0num = 0; ter0num < termnbr; ter0num ++) { /* For all pairs of terminal domains */ for (ter1num = ter0num + 1; ter1num < termnbr; ter1num ++) { SCOTCH_Num distval; distval = SCOTCH_archDomDist (&archdat, &termtab[ter0num], &termtab[ter1num]); /* Compute distance between pairs */ if (distmin > distval) distmin = distval; if (distmax < distval) distmax = distval; distsum += distval; } } distavg = (termnbr > 1) ? (double) distsum / ((double) termnbr * (double) (termnbr - 1) / 2.0) : 0.0L; distdlt = 0.0L; for (ter0num = 0; ter0num < termnbr; ter0num ++) { /* For all pairs of terminal domains */ for (ter1num = 0; ter1num < termnbr; ter1num ++) { if (ter1num == ter0num) continue; distdlt += fabs ((double) SCOTCH_archDomDist (&archdat, &termtab[ter0num], &termtab[ter1num]) - distavg); } } if (termnbr > 1) distdlt /= (double) termnbr * (double) (termnbr - 1) / 2.0; fprintf (C_filepntrlogout, "A\tTerminals\tnbr=" SCOTCH_NUMSTRING "\n", termnbr); fprintf (C_filepntrlogout, "A\tDistance\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", distmin, distmax, distavg, distdlt); free (termtab); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_archExit (&archdat); return (EXIT_SUCCESS); } /* This routine recursively enumerates all terminal ** domains of an architecture. ** It returns: ** - 0 : if architecture successfully traversed. ** - 1 : on error. */ int C_termList ( SCOTCH_Arch * restrict const archptr, SCOTCH_ArchDom * restrict const termtab, const SCOTCH_Num termnum, SCOTCH_Num * const termptr, SCOTCH_ArchDom * const domnptr) { SCOTCH_ArchDom domntab[2]; int o; if (SCOTCH_archDomSize (archptr, domnptr) == 1) { /* If domain is terminal */ if (*termptr >= termnum) /* If too many terminals */ return (1); termtab[(*termptr) ++] = *domnptr; /* Copy terminal domain to array */ return (0); } o = SCOTCH_archDomBipart (archptr, domnptr, &domntab[0], &domntab[1]); if (o != 0) return (o - 1); return (C_termList (archptr, termtab, termnum, termptr, &domntab[0]) || /* Anticipated return in case of error */ C_termList (archptr, termtab, termnum, termptr, &domntab[1])); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/atst.h000066400000000000000000000073061514310134000243600ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : atst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Target architecture graph analyzer. **/ /** **/ /** DATES : # Version 1.3 : from : 17 may 1994 **/ /** to : 17 may 1994 **/ /** # Version 2.0 : from : 11 nov 1994 **/ /** to : 11 nov 1994 **/ /** # Version 3.0 : from : 05 jul 1995 **/ /** to : 05 jul 1995 **/ /** # Version 3.2 : from : 01 jun 1997 **/ /** to : 01 jun 1997 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 28 apr 2019 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenametgtinp fileBlockName (C_fileTab, 0) /* Target graph input file name */ #define C_filenamelogout fileBlockName (C_fileTab, 1) /* Statistics output file name */ #define C_filepntrtgtinp fileBlockFile (C_fileTab, 0) /* Target graph input file */ #define C_filepntrlogout fileBlockFile (C_fileTab, 1) /* Statistics output file */ /* ** The function prototypes. */ int C_termList (SCOTCH_Arch * restrict const, SCOTCH_ArchDom * restrict const, const SCOTCH_Num, SCOTCH_Num * const, SCOTCH_ArchDom * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dggath.c000066400000000000000000000205531514310134000246350ustar00rootroot00000000000000/* Copyright 2008,2010-2012,2014,2018-2020,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dggath.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program gathers the fragments of a **/ /** distributed graph and saves it as a **/ /** centralized source graph. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 5.1 : from : 26 oct 2008 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 17 apr 2019 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 10 jun 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PTSCOTCH #include "module.h" #include "common.h" #include "ptscotch.h" #include "dggath.h" /* ** The static and global definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "dggath [ []] ", " -c : Check the input graph after loading", " -h : Display this help", " -r : Set root process for centralized files (default is 0)", " -V : Print program version and copyright", NULL }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Graph * cgrfptr; SCOTCH_Graph cgrfdat; SCOTCH_Dgraph dgrfdat; int procglbnbr; int proclocnum; int protglbnum; /* Root process */ int flagval; int i; int reduloctab[2]; int reduglbtab[2]; #ifdef SCOTCH_PTHREAD_MPI int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ errorProg ("dggath"); #ifdef SCOTCH_PTHREAD_MPI thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD_MPI */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD_MPI */ MPI_Comm_size (MPI_COMM_WORLD, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum); protglbnum = 0; /* Assume root process is process 0 */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } flagval = C_FLAGNONE; fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'C' : case 'c' : flagval |= C_FLAGCHECK; break; #ifdef SCOTCH_DEBUG_ALL case 'D' : case 'd' : flagval |= C_FLAGDEBUG; break; #endif /* SCOTCH_DEBUG_ALL */ case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'R' : /* Root process (if necessary) */ case 'r' : protglbnum = atoi (&argv[i][2]); if ((protglbnum < 0) || (protglbnum >= procglbnbr) || ((protglbnum == 0) && (argv[i][2] != '0'))) { errorPrint ("main: invalid root process number"); } break; case 'V' : case 'v' : fprintf (stderr, "dggath, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) { fprintf (stderr, "Proc %4d of %d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == protglbnum) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); if (scanf ("%c", &c) < 0) fprintf (stderr, "Invalid wait input"); } MPI_Barrier (MPI_COMM_WORLD); } #endif /* SCOTCH_DEBUG_ALL */ fileBlockOpenDist (C_fileTab, C_FILENBR, procglbnbr, proclocnum, protglbnum); /* Open all files */ if (C_filepntrsrcout == NULL) { cgrfptr = NULL; reduloctab[0] = reduloctab[1] = 0; } else { cgrfptr = &cgrfdat; reduloctab[0] = 1; reduloctab[1] = proclocnum; } if (MPI_Allreduce (reduloctab, reduglbtab, 2, MPI_INT, MPI_SUM, MPI_COMM_WORLD) != MPI_SUCCESS) errorPrint ("main: communication error"); if (reduglbtab[0] != 1) errorPrint ("main: should have only one root"); if (reduglbtab[1] != protglbnum) errorPrint ("main: root process mismatch"); SCOTCH_dgraphInit (&dgrfdat, MPI_COMM_WORLD); SCOTCH_dgraphLoad (&dgrfdat, C_filepntrsrcinp, -1, 0); if ((flagval & C_FLAGCHECK) != 0) SCOTCH_dgraphCheck (&dgrfdat); SCOTCH_graphInit (&cgrfdat); SCOTCH_dgraphGather (&dgrfdat, cgrfptr); if (cgrfptr != NULL) SCOTCH_graphSave (cgrfptr, C_filepntrsrcout); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_graphExit (&cgrfdat); SCOTCH_dgraphExit (&dgrfdat); MPI_Finalize (); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dggath.h000066400000000000000000000070131514310134000246360ustar00rootroot00000000000000/* Copyright 2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dggath.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module contains the data declara- **/ /** tions for the distributed graph file **/ /** gathering program. **/ /** **/ /** DATES : # Version 5.1 : from : 26 oct 2008 **/ /** to : 26 oct 2008 **/ /** # Version 6.0 : from : 10 nov 2014 **/ /** to : 10 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Source graph output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 1) /* Source graph output file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGCHECK 0x0001 /* Check distributed source graph */ #define C_FLAGDEBUG 0x0002 /* Enable easy debugger attachment */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgmap.c000066400000000000000000000517661514310134000245010ustar00rootroot00000000000000/* Copyright 2008-2012,2014,2018-2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgmap.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel static mapping **/ /** software. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 5.0 : from : 12 jun 2008 **/ /** to : 28 aug 2008 **/ /** # Version 5.1 : from : 26 oct 2008 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 17 apr 2019 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 07 oct 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PTSCOTCH #include "module.h" #include "common.h" #include "ptscotch.h" #include "dgmap.h" /* ** The static variables. */ static int C_partNbr = 1; /* Default number of parts / cluster load */ static int C_paraNum = 0; /* Number of parameters */ static int C_paraNbr = 0; /* No parameters for mapping */ static int C_fileNum = 0; /* Number of file in arg list */ static int C_fileNbr = 4; /* Number of files for mapping */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODER }, { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { /* Usage */ "dgmap [ [ [ []]]] ", "dgpart [] [ [ []]] ", " -b : Load imbalance tolerance (default: 0.05)", " -C : Choose execution context options according to one or several of :", " d : deterministic behavior (even across multiple threads; implies 'f')", " f : fixed random seed", " r : variable random seed", " u : undeterministic behavior (may be faster with several threads)", " Default behavior depends on compilation flags", " -c : Choose default mapping strategy according to one or several of :", " b : enforce load balance as much as possible", " q : privilege quality over speed (default)", " s : privilege speed over quality", " t : enforce safety", " x : enforce scalability", " -h : Display this help", " -m : Set parallel mapping strategy (see user's manual)", " -q : Do graph clustering instead of graph partitioning (for dgpart)", " -q : Do graph clustering instead of static mapping (for dgmap)", " -r : Set root process for centralized files (default is 0)", " -s : Force unity weights on :", " e : edges", " v : vertices", " -V : Print program version and copyright", " -v : Set verbose mode to :", " a : memory allocation information", " m : mapping information", " s : strategy information", " t : timing information", "", "See default strategy with option '-vs'", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Context contdat; /* Execution context */ SCOTCH_Dgraph cogrdat; /* Context graph binding */ SCOTCH_Dgraph grafdat; /* Source graph */ SCOTCH_Num grafflag; /* Source graph properties */ SCOTCH_Arch archdat; /* Target architecture */ SCOTCH_Dmapping mappdat; /* Mapping data */ SCOTCH_Strat stradat; /* Mapping strategy */ SCOTCH_Num straval; char * straptr; int flagval; double kbalval; /* Imbalance tolerance value */ int procglbnbr; int proclocnum; int protglbnum; /* Root process */ Clock runtime[2]; /* Timing variables */ double reduloctab[12]; /* 3 * (min, max, sum) */ double reduglbtab[12]; MPI_Datatype redutype; MPI_Op reduop; int i, j; #ifdef SCOTCH_PTHREAD_MPI int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ flagval = C_FLAGNONE; /* Default behavior */ kbalval = 0.05; /* Default imbalance */ straval = 0; /* No strategy flags */ straptr = NULL; #ifdef SCOTCH_COMPILE_PART flagval |= C_FLAGPART; C_paraNbr = 1; /* One more parameter */ C_fileNbr = 3; /* One less file to provide */ errorProg ("dgpart"); #else errorProg ("dgmap"); #endif /* SCOTCH_COMPILE_PART */ #ifdef SCOTCH_PTHREAD_MPI thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD_MPI */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD_MPI */ MPI_Comm_size (MPI_COMM_WORLD, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum); protglbnum = 0; /* Assume root process is process 0 */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } SCOTCH_randomProc (proclocnum); /* Record process number to initialize pseudo-random seed */ grafflag = 0; /* Use vertex and edge weights */ SCOTCH_contextInit (&contdat); /* Set default context */ SCOTCH_stratInit (&stradat); fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < C_paraNbr) { /* If number of parameters not reached */ if ((C_partNbr = atoi (argv[i])) < 1) /* Get the number of parts */ errorPrint ("main: invalid number of parts '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_fileNbr) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'B' : case 'b' : flagval |= C_FLAGKBALVAL; kbalval = atof (&argv[i][2]); if ((kbalval < 0.0) || (kbalval > 1.0) || ((kbalval == 0.0) && ((argv[i][2] != '0') && (argv[i][2] != '.')))) { errorPrint ("main: invalid load imbalance ratio"); } break; case 'C' : if (SCOTCH_contextOptionParse (&contdat, &argv[i][2]) != 0) errorPrint ("main: invalid context option string"); break; case 'c' : /* Strategy selection parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'B' : case 'b' : straval |= SCOTCH_STRATBALANCE; break; case 'Q' : case 'q' : straval |= SCOTCH_STRATQUALITY; break; case 'S' : case 's' : straval |= SCOTCH_STRATSPEED; break; case 'T' : case 't' : straval |= SCOTCH_STRATSAFETY; break; case 'X' : case 'x' : straval |= SCOTCH_STRATSCALABILITY; break; default : errorPrint ("main: invalid strategy selection option '%c'", argv[i][j]); } } break; #ifdef SCOTCH_DEBUG_ALL case 'D' : case 'd' : flagval |= C_FLAGDEBUG; break; #endif /* SCOTCH_DEBUG_ALL */ case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'M' : case 'm' : straptr = &argv[i][2]; SCOTCH_stratExit (&stradat); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphMap (&stradat, straptr); break; case 'Q' : case 'q' : flagval |= C_FLAGCLUSTER; if ((flagval & C_FLAGPART) != 0) { /* If partitioning program */ if (argv[i][2] != '\0') errorPrint ("main: invalid parameter '%s' after '-q' for dgpart", argv[i] + 2); } else { if (argv[i][1] == '\0') errorPrint ("main: missing parameter after '-q' for dgmap"); if ((C_partNbr = atoi (argv[i] + 2)) < 1) /* Get maximum cluster load */ errorPrint ("main: invalid cluster load '%s'", argv[i] + 2); } break; case 'R' : /* Root process (if necessary) */ case 'r' : protglbnum = atoi (&argv[i][2]); if ((protglbnum < 0) || (protglbnum >= procglbnbr) || ((protglbnum == 0) && (argv[i][2] != '0'))) errorPrint ("main: invalid root process number"); break; case 'S' : case 's' : /* Source graph parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'E' : case 'e' : grafflag |= 2; /* Do not load edge weights */ break; case 'V' : case 'v' : grafflag |= 1; /* Do not load vertex weights */ break; default : errorPrint ("main: invalid source graph option '%c'", argv[i][j]); } } break; case 'V' : fprintf (stderr, "dgmap/dgpart, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'v' : /* Output control info */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'A' : case 'a' : #ifdef COMMON_MEMORY_TRACE flagval |= C_FLAGVERBMEM; #else /* COMMON_MEMORY_TRACE */ errorPrint ("main: not compiled with COMMON_MEMORY_TRACE"); #endif /* COMMON_MEMORY_TRACE */ break; case 'M' : case 'm' : flagval |= C_FLAGVERBMAP; break; case 'S' : case 's' : flagval |= C_FLAGVERBSTR; break; case 'T' : case 't' : flagval |= C_FLAGVERBTIM; break; default : errorPrint ("main: unprocessed parameter '%c' in '%s'", argv[i][j], argv[i]); } } break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } if ((flagval & C_FLAGPART) != 0) { /* If program run as the partitioner */ fileBlockName (C_fileTab, 3) = fileBlockName (C_fileTab, 2); /* Put provided file names at their right place */ fileBlockName (C_fileTab, 2) = fileBlockName (C_fileTab, 1); fileBlockName (C_fileTab, 1) = "-"; } #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) { fprintf (stderr, "Proc %4d of %d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == protglbnum) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); if (scanf ("%c", &c) < 0) fprintf (stderr, "Invalid wait input"); } MPI_Barrier (MPI_COMM_WORLD); } #endif /* SCOTCH_DEBUG_ALL */ fileBlockOpenDist (C_fileTab, C_FILENBR, procglbnbr, proclocnum, protglbnum); /* Open all files */ clockInit (&runtime[0]); clockStart (&runtime[0]); SCOTCH_dgraphInit (&grafdat, MPI_COMM_WORLD); /* Initialize distributed source graph */ SCOTCH_dgraphLoad (&grafdat, C_filepntrsrcinp, -1, grafflag); SCOTCH_archInit (&archdat); /* Create architecture structure */ if ((flagval & C_FLAGPART) != 0) { /* If program run as the partitioner */ if ((flagval & C_FLAGCLUSTER) != 0) /* If program run as graph clustering */ SCOTCH_archVcmplt (&archdat); /* Create a variable-sized complete graph */ else /* Program is run as plain graph partitioner */ SCOTCH_archCmplt (&archdat, C_partNbr); /* Create a complete graph of proper size */ } else { if (C_filepntrtgtinp == NULL) errorPrint ("main: target architecture file not provided"); SCOTCH_archLoad (&archdat, C_filepntrtgtinp); /* Read target architecture */ if ((flagval & C_FLAGCLUSTER) == 0) /* If part size not to be preserved */ C_partNbr = SCOTCH_archSize (&archdat); else { if (SCOTCH_archVar (&archdat) == 0) errorPrint ("main: non variable-sized architecture provided while '-q' flag set"); } } if (((straval != 0) || ((flagval & C_FLAGKBALVAL) != 0)) && (straptr != NULL)) errorPrint ("main: options '-b' / '-c' and '-m' are exclusive"); if ((flagval & C_FLAGCLUSTER) != 0) /* If clustering wanted */ SCOTCH_stratDgraphClusterBuild (&stradat, straval, (SCOTCH_Num) procglbnbr, (SCOTCH_Num) C_partNbr, 1.0, kbalval); else SCOTCH_stratDgraphMapBuild (&stradat, straval, (SCOTCH_Num) procglbnbr, (SCOTCH_Num) C_partNbr, kbalval); SCOTCH_contextBindDgraph (&contdat, &grafdat, &cogrdat); clockStop (&runtime[0]); /* Get input time */ clockInit (&runtime[1]); #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) MPI_Barrier (MPI_COMM_WORLD); #endif /* SCOTCH_DEBUG_ALL */ clockStart (&runtime[1]); SCOTCH_dgraphGhst (&grafdat); /* Compute it once for good */ SCOTCH_dgraphMapInit (&grafdat, &mappdat, &archdat, NULL); SCOTCH_dgraphMapCompute (&cogrdat, &mappdat, &stradat); /* Perform mapping */ clockStop (&runtime[1]); /* Get computation time */ #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) MPI_Barrier (MPI_COMM_WORLD); #endif /* SCOTCH_DEBUG_ALL */ clockStart (&runtime[0]); SCOTCH_dgraphMapSave (&grafdat, &mappdat, (proclocnum == protglbnum) ? C_filepntrmapout : NULL); /* Write mapping */ clockStop (&runtime[0]); /* Get output time */ #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) MPI_Barrier (MPI_COMM_WORLD); #endif /* SCOTCH_DEBUG_ALL */ MPI_Type_contiguous (3, MPI_DOUBLE, &redutype); MPI_Type_commit (&redutype); MPI_Op_create ((MPI_User_function *) dgmapStatReduceOp, 1, &reduop); if ((flagval & C_FLAGVERBTIM) != 0) { reduloctab[0] = reduloctab[1] = reduloctab[2] = (double) clockVal (&runtime[1]); reduloctab[3] = reduloctab[4] = reduloctab[5] = (double) clockVal (&runtime[0]); reduloctab[6] = reduloctab[7] = reduloctab[8] = reduloctab[0] + reduloctab[3]; MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 3, redutype, reduop, MPI_COMM_WORLD); } #ifdef COMMON_MEMORY_TRACE if ((flagval & C_FLAGVERBMEM) != 0) { reduloctab[9] = reduloctab[10] = reduloctab[11] = (double) memMax (); MPI_Allreduce (&reduloctab[9], &reduglbtab[9], 1, redutype, reduop, MPI_COMM_WORLD); } #endif /* COMMON_MEMORY_TRACE */ MPI_Op_free (&reduop); MPI_Type_free (&redutype); if (C_filepntrlogout != NULL) { if ((flagval & C_FLAGVERBSTR) != 0) { fprintf (C_filepntrlogout, "S\tStrat="); SCOTCH_stratSave (&stradat, C_filepntrlogout); putc ('\n', C_filepntrlogout); } if ((flagval & C_FLAGVERBTIM) != 0) { fprintf (C_filepntrlogout, "T\tMapping\tmin=%g\tmax=%g\tavg=%g\nT\tI/O\tmin=%g\tmax=%g\tavg=%g\nT\tTotal\tmin=%g\tmax=%g\tavg=%g\n", reduglbtab[0], reduglbtab[1], reduglbtab[2] / (double) procglbnbr, reduglbtab[3], reduglbtab[4], reduglbtab[5] / (double) procglbnbr, reduglbtab[6], reduglbtab[7], reduglbtab[8] / (double) procglbnbr); } #ifdef COMMON_MEMORY_TRACE if ((flagval & C_FLAGVERBMEM) != 0) fprintf (C_filepntrlogout, "A\tMemory\tmin=%g\tmax=%g\tavg=%g\n", reduglbtab[9], reduglbtab[10], reduglbtab[11] / (double) procglbnbr); #endif /* COMMON_MEMORY_TRACE */ } if (flagval & C_FLAGVERBMAP) SCOTCH_dgraphMapView (&grafdat, &mappdat, C_filepntrlogout); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_dgraphMapExit (&grafdat, &mappdat); SCOTCH_dgraphExit (&cogrdat); /* Destroy context binding first */ SCOTCH_dgraphExit (&grafdat); SCOTCH_stratExit (&stradat); SCOTCH_archExit (&archdat); SCOTCH_contextExit (&contdat); MPI_Finalize (); return (EXIT_SUCCESS); } /* Reduction routine for statistics output. */ void dgmapStatReduceOp ( double * in, double * inout, int * len, MPI_Datatype * datatype) { int i; for (i = 0; i < *len; i ++) { inout[3 * i] = MIN (in[3 * i], inout[3 * i]); inout[3 * i + 1] = MAX (in[3 * i + 1], inout[3 * i + 1]); inout[3 * i + 2] = in[3 * i + 2] + inout[3 * i + 2]; } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgmap.h000066400000000000000000000104371514310134000244740ustar00rootroot00000000000000/* Copyright 2008,2010,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgmap.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel static mapper. **/ /** These lines are the data declaration **/ /** for the main routine. **/ /** **/ /** DATES : # Version 5.1 : from : 12 jun 2008 **/ /** to : 18 jul 2011 **/ /** # Version 6.0 : from : 10 nov 2014 **/ /** to : 10 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 4 /* Number of files in list */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenametgtinp fileBlockName (C_fileTab, 1) /* Target architecture input file name */ #define C_filenamemapout fileBlockName (C_fileTab, 2) /* Mapping result output file name */ #define C_filenamelogout fileBlockName (C_fileTab, 3) /* Log file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrtgtinp fileBlockFile (C_fileTab, 1) /* Target architecture input file */ #define C_filepntrmapout fileBlockFile (C_fileTab, 2) /* Mapping result output file */ #define C_filepntrlogout fileBlockFile (C_fileTab, 3) /* Log file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGPART 0x0001 /* Partitioning */ #define C_FLAGVERBSTR 0x0002 /* Verbose flags */ #define C_FLAGVERBTIM 0x0004 #define C_FLAGVERBMAP 0x0008 #define C_FLAGVERBMEM 0x0010 #define C_FLAGDEBUG 0x0020 /* Debugging */ #define C_FLAGKBALVAL 0x0040 /* Imbalance tolerance */ #define C_FLAGCLUSTER 0x0080 /* Clustering */ /* ** The function prototypes. */ void dgmapStatReduceOp (double *, double *, int *, MPI_Datatype *); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgord.c000066400000000000000000000417051514310134000245000ustar00rootroot00000000000000/* Copyright 2007-2012,2014,2018-2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgord.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER (v5.0) **/ /** **/ /** FUNCTION : Part of a parallel sparse matrix **/ /** ordering software. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 5.0 : from : 30 apr 2006 **/ /** to : 16 jun 2008 **/ /** # Version 5.1 : from : 26 oct 2008 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 17 apr 2019 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 10 jun 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PTSCOTCH #include "module.h" #include "common.h" #include "ptscotch.h" #include "dgord.h" /* ** The static and global definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW }, { FILEMODEW }, { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "dgord [ [ []]] ", " -b : Output block ordering data instead of plain ordering data", " -C : Choose execution context options according to one or several of :", " d : deterministic behavior (even across multiple threads; implies 'f')", " f : fixed random seed", " r : variable random seed", " u : undeterministic behavior (may be faster with several threads)", " Default behavior depends on compilation flags", " -c : Choose default ordering strategy according to one or several of :", " b : enforce load balance as much as possible", " q : privilege quality over speed (default)", " s : privilege speed over quality", " t : enforce safety", " x : enforce scalability", " -h : Display this help", " -m : Save column block mapping data to ", " -o : Set parallel ordering strategy (see user's manual)", " -r : Set root process for centralized files (default is 0)", " -t : Save partitioning tree data to ", " -V : Print program version and copyright", " -v : Set verbose mode to :", " a : memory allocation information", " s : strategy information", " t : timing information", "", "See default strategy with option '-vs'", NULL }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Context contdat; /* Execution context */ SCOTCH_Dgraph cogrdat; /* Context graph binding */ SCOTCH_Dgraph grafdat; SCOTCH_Dordering ordedat; SCOTCH_Strat stradat; SCOTCH_Num straval; char * straptr; int flagval; int procglbnbr; int proclocnum; int protglbnum; /* Root process */ Clock runtime[2]; /* Timing variables */ double reduloctab[12]; /* 3 * (min, max, sum) */ double reduglbtab[12]; MPI_Datatype redutype; MPI_Op reduop; int i, j; #ifdef SCOTCH_PTHREAD_MPI int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ errorProg ("dgord"); #ifdef SCOTCH_PTHREAD_MPI thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD_MPI */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD_MPI */ MPI_Comm_size (MPI_COMM_WORLD, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum); protglbnum = 0; /* Assume root process is process 0 */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } SCOTCH_randomProc (proclocnum); /* Record process number to initialize pseudo-random seed */ flagval = C_FLAGNONE; /* Default behavior */ straval = 0; /* No strategy flags */ straptr = NULL; SCOTCH_contextInit (&contdat); /* Set default context */ SCOTCH_stratInit (&stradat); fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'B' : case 'b' : flagval |= C_FLAGBLOCK; break; case 'C' : if (SCOTCH_contextOptionParse (&contdat, &argv[i][2]) != 0) errorPrint ("main: invalid context option string"); break; case 'c' : /* Strategy selection parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'B' : case 'b' : straval |= SCOTCH_STRATBALANCE; break; case 'Q' : case 'q' : straval |= SCOTCH_STRATQUALITY; break; case 'S' : case 's' : straval |= SCOTCH_STRATSPEED; break; case 'T' : case 't' : straval |= SCOTCH_STRATSAFETY; break; case 'X' : case 'x' : straval |= SCOTCH_STRATSCALABILITY; break; default : errorPrint ("main: invalid strategy selection option '%c'", argv[i][j]); } } break; #ifdef SCOTCH_DEBUG_ALL case 'D' : case 'd' : flagval |= C_FLAGDEBUG; break; #endif /* SCOTCH_DEBUG_ALL */ case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'M' : /* Output separator mapping */ case 'm' : flagval |= C_FLAGMAPOUT; if (argv[i][2] != '\0') C_filenamemapout = &argv[i][2]; break; case 'O' : /* Ordering strategy */ case 'o' : straptr = &argv[i][2]; SCOTCH_stratExit (&stradat); SCOTCH_stratInit (&stradat); SCOTCH_stratDgraphOrder (&stradat, straptr); break; case 'R' : /* Root process (if necessary) */ case 'r' : protglbnum = atoi (&argv[i][2]); if ((protglbnum < 0) || (protglbnum >= procglbnbr) || ((protglbnum == 0) && (argv[i][2] != '0'))) errorPrint ("main: invalid root process number"); break; case 'T' : /* Output separator tree */ case 't' : flagval |= C_FLAGTREOUT; if (argv[i][2] != '\0') C_filenametreout = &argv[i][2]; break; case 'V' : fprintf (stderr, "dgord, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'v' : /* Output control info */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'A' : case 'a' : #ifdef COMMON_MEMORY_TRACE flagval |= C_FLAGVERBMEM; #else /* COMMON_MEMORY_TRACE */ errorPrint ("main: not compiled with COMMON_MEMORY_TRACE"); #endif /* COMMON_MEMORY_TRACE */ break; case 'S' : case 's' : flagval |= C_FLAGVERBSTR; break; case 'T' : case 't' : flagval |= C_FLAGVERBTIM; break; default : errorPrint ("main: unprocessed parameter '%c' in '%s'", argv[i][j], argv[i]); } } break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) { fprintf (stderr, "Proc %4d of %d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == protglbnum) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); if (scanf ("%c", &c) < 0) fprintf (stderr, "Invalid wait input"); } MPI_Barrier (MPI_COMM_WORLD); } #endif /* SCOTCH_DEBUG_ALL */ fileBlockOpenDist (C_fileTab, C_FILENBR, procglbnbr, proclocnum, protglbnum); /* Open all files */ clockInit (&runtime[0]); clockStart (&runtime[0]); SCOTCH_dgraphInit (&grafdat, MPI_COMM_WORLD); SCOTCH_dgraphLoad (&grafdat, C_filepntrsrcinp, -1, 0); if (straval != 0) { if (straptr != NULL) errorPrint ("main: options '-c' and '-o' are exclusive"); SCOTCH_stratDgraphOrderBuild (&stradat, straval, (SCOTCH_Num) procglbnbr, 0, 0.2); } SCOTCH_contextBindDgraph (&contdat, &grafdat, &cogrdat); clockStop (&runtime[0]); /* Get input time */ clockInit (&runtime[1]); #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) MPI_Barrier (MPI_COMM_WORLD); #endif /* SCOTCH_DEBUG_ALL */ clockStart (&runtime[1]); SCOTCH_dgraphGhst (&grafdat); /* Compute it once for good */ SCOTCH_dgraphOrderInit (&grafdat, &ordedat); SCOTCH_dgraphOrderCompute (&cogrdat, &ordedat, &stradat); clockStop (&runtime[1]); /* Get ordering time */ #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) MPI_Barrier (MPI_COMM_WORLD); #endif /* SCOTCH_DEBUG_ALL */ clockStart (&runtime[0]); if (proclocnum == protglbnum) { if ((flagval & C_FLAGBLOCK) == 0) SCOTCH_dgraphOrderSave (&grafdat, &ordedat, C_filepntrordout); else SCOTCH_dgraphOrderSaveBlock (&grafdat, &ordedat, C_filepntrordout); if ((flagval & C_FLAGMAPOUT) != 0) /* If mapping wanted */ SCOTCH_dgraphOrderSaveMap (&grafdat, &ordedat, C_filepntrmapout); /* Write mapping */ if ((flagval & C_FLAGTREOUT) != 0) /* If separator tree wanted */ SCOTCH_dgraphOrderSaveTree (&grafdat, &ordedat, C_filepntrtreout); /* Write tree */ } else { if ((flagval & C_FLAGBLOCK) == 0) SCOTCH_dgraphOrderSave (&grafdat, &ordedat, NULL); else SCOTCH_dgraphOrderSaveBlock (&grafdat, &ordedat, NULL); if ((flagval & C_FLAGMAPOUT) != 0) SCOTCH_dgraphOrderSaveMap (&grafdat, &ordedat, NULL); if ((flagval & C_FLAGTREOUT) != 0) SCOTCH_dgraphOrderSaveTree (&grafdat, &ordedat, NULL); } clockStop (&runtime[0]); #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) MPI_Barrier (MPI_COMM_WORLD); #endif /* SCOTCH_DEBUG_ALL */ MPI_Type_contiguous (3, MPI_DOUBLE, &redutype); MPI_Type_commit (&redutype); MPI_Op_create ((MPI_User_function *) dgordStatReduceOp, 1, &reduop); if ((flagval & C_FLAGVERBTIM) != 0) { reduloctab[0] = reduloctab[1] = reduloctab[2] = (double) clockVal (&runtime[1]); reduloctab[3] = reduloctab[4] = reduloctab[5] = (double) clockVal (&runtime[0]); reduloctab[6] = reduloctab[7] = reduloctab[8] = reduloctab[0] + reduloctab[3]; MPI_Allreduce (&reduloctab[0], &reduglbtab[0], 3, redutype, reduop, MPI_COMM_WORLD); } #ifdef COMMON_MEMORY_TRACE if ((flagval & C_FLAGVERBMEM) != 0) { reduloctab[9] = reduloctab[10] = reduloctab[11] = (double) memMax (); MPI_Allreduce (&reduloctab[9], &reduglbtab[9], 1, redutype, reduop, MPI_COMM_WORLD); } #endif /* COMMON_MEMORY_TRACE */ MPI_Op_free (&reduop); MPI_Type_free (&redutype); if (C_filepntrlogout != NULL) { if ((flagval & C_FLAGVERBSTR) != 0) { fprintf (C_filepntrlogout, "S\tStrat="); SCOTCH_stratSave (&stradat, C_filepntrlogout); putc ('\n', C_filepntrlogout); } if ((flagval & C_FLAGVERBTIM) != 0) { fprintf (C_filepntrlogout, "T\tOrder\tmin=%g\tmax=%g\tavg=%g\nT\tI/O\tmin=%g\tmax=%g\tavg=%g\nT\tTotal\tmin=%g\tmax=%g\tavg=%g\n", reduglbtab[0], reduglbtab[1], reduglbtab[2] / (double) procglbnbr, reduglbtab[3], reduglbtab[4], reduglbtab[5] / (double) procglbnbr, reduglbtab[6], reduglbtab[7], reduglbtab[8] / (double) procglbnbr); } #ifdef COMMON_MEMORY_TRACE if ((flagval & C_FLAGVERBMEM) != 0) fprintf (C_filepntrlogout, "A\tMemory\tmin=%g\tmax=%g\tavg=%g\n", reduglbtab[9], reduglbtab[10], reduglbtab[11] / (double) procglbnbr); #endif /* COMMON_MEMORY_TRACE */ } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_dgraphOrderExit (&grafdat, &ordedat); SCOTCH_dgraphExit (&cogrdat); /* Destroy context binding first */ SCOTCH_dgraphExit (&grafdat); SCOTCH_stratExit (&stradat); SCOTCH_contextExit (&contdat); MPI_Finalize (); return (EXIT_SUCCESS); } /* Reduction routine for statistics output. */ void dgordStatReduceOp ( double * in, double * inout, int * len, MPI_Datatype * datatype) { int i; for (i = 0; i < *len; i ++) { inout[3 * i] = MIN (in[3 * i], inout[3 * i]); inout[3 * i + 1] = MAX (in[3 * i + 1], inout[3 * i + 1]); inout[3 * i + 2] = in[3 * i + 2] + inout[3 * i + 2]; } } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgord.h000066400000000000000000000115431514310134000245020ustar00rootroot00000000000000/* Copyright 2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgord.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Cedric CHEVALIER **/ /** **/ /** FUNCTION : Part of a parallel sparse matrix **/ /** ordering software. **/ /** This module contains the data declara- **/ /** tions for the main routine. **/ /** **/ /** DATES : # Version 5.0 : from : 30 apr 2006 **/ /** to : 27 may 2008 **/ /** # Version 5.1 : from : 22 nov 2008 **/ /** to : 22 nov 2008 **/ /** # Version 6.0 : from : 10 nov 2014 **/ /** to : 10 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 5 /* Number of files in list */ #define C_FILEARGNBR 3 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenameordout fileBlockName (C_fileTab, 1) /* Ordering output file name */ #define C_filenamelogout fileBlockName (C_fileTab, 2) /* Log file name */ #define C_filenamemapout fileBlockName (C_fileTab, 3) /* Separator mapping file name */ #define C_filenametreout fileBlockName (C_fileTab, 4) /* Separator tree file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrordout fileBlockFile (C_fileTab, 1) /* Ordering output file */ #define C_filepntrlogout fileBlockFile (C_fileTab, 2) /* Log file */ #define C_filepntrmapout fileBlockFile (C_fileTab, 3) /* Separator mapping file */ #define C_filepntrtreout fileBlockFile (C_fileTab, 4) /* Separator tre file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGMAPOUT 0x0001 /* Output mapping data */ #define C_FLAGTREOUT 0x0002 /* Output separator tree data */ #define C_FLAGVERBSTR 0x0004 /* Output strategy string */ #define C_FLAGVERBTIM 0x0008 /* Output timing information */ #define C_FLAGVERBMEM 0x0010 /* Output memory information */ #define C_FLAGBLOCK 0x0020 /* Output block ordering */ #define C_FLAGDEBUG 0x0040 /* Debugging */ /* ** The function prototypes. */ void dgordStatReduceOp (double *, double *, int *, MPI_Datatype *); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgscat.c000066400000000000000000000173401514310134000246440ustar00rootroot00000000000000/* Copyright 2007,2008,2010-2012,2014,2018-2020,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgscat.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program distributes a source graph **/ /** across processors and saves it as a **/ /** distributed source graph. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 5.0 : from : 17 may 2007 **/ /** to : 16 jun 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 17 apr 2019 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 10 jun 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PTSCOTCH #include "module.h" #include "common.h" #include "ptscotch.h" #include "dgscat.h" /* ** The static and global definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "dgscat [ []] ", " -c : Check the input graph after loading", " -h : Display this help", " -r : Set root process for centralized files (default is 0)", " -V : Print program version and copyright", NULL }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Dgraph grafdat; int procglbnbr; int proclocnum; int protglbnum; /* Root process */ int flagval; int i; #ifdef SCOTCH_PTHREAD_MPI int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ errorProg ("dgscat"); #ifdef SCOTCH_PTHREAD_MPI thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD_MPI */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD_MPI */ MPI_Comm_size (MPI_COMM_WORLD, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum); protglbnum = 0; /* Assume root process is process 0 */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } flagval = C_FLAGNONE; fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'C' : case 'c' : flagval |= C_FLAGCHECK; break; #ifdef SCOTCH_DEBUG_ALL case 'D' : case 'd' : flagval |= C_FLAGDEBUG; break; #endif /* SCOTCH_DEBUG_ALL */ case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'R' : /* Root process (if necessary) */ case 'r' : protglbnum = atoi (&argv[i][2]); if ((protglbnum < 0) || (protglbnum >= procglbnbr) || ((protglbnum == 0) && (argv[i][2] != '0'))) errorPrint ("main: invalid root process number"); break; case 'V' : case 'v' : fprintf (stderr, "dgscat, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) { fprintf (stderr, "Proc %4d of %d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == protglbnum) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); if (scanf ("%c", &c) < 0) fprintf (stderr, "Invalid wait input"); } MPI_Barrier (MPI_COMM_WORLD); } #endif /* SCOTCH_DEBUG_ALL */ fileBlockOpenDist (C_fileTab, C_FILENBR, procglbnbr, proclocnum, protglbnum); /* Open all files */ SCOTCH_dgraphInit (&grafdat, MPI_COMM_WORLD); SCOTCH_dgraphLoad (&grafdat, C_filepntrsrcinp, -1, 0); if ((flagval & C_FLAGCHECK) != 0) SCOTCH_dgraphCheck (&grafdat); SCOTCH_dgraphSave (&grafdat, C_filepntrsrcout); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_dgraphExit (&grafdat); MPI_Finalize (); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgscat.h000066400000000000000000000072161514310134000246520ustar00rootroot00000000000000/* Copyright 2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgscat.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel sparse matrix **/ /** ordering software. **/ /** This module contains the data declara- **/ /** tions for the graph file scattering **/ /** program. **/ /** **/ /** DATES : # Version 5.0 : from : 21 may 2007 **/ /** to : 21 may 2007 **/ /** # Version 6.0 : from : 10 nov 2014 **/ /** to : 10 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Source graph output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 1) /* Source graph output file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGCHECK 0x0001 /* Check distributed source graph */ #define C_FLAGDEBUG 0x0002 /* Enable easy debugger attachment */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgtst.c000066400000000000000000000222361514310134000245240ustar00rootroot00000000000000/* Copyright 2007,2008,2010-2012,2014,2018-2020,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgtst.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program gives statistics on **/ /** distributed source graphs. **/ /** **/ /** DATES : # Version 5.0 : from : 23 jun 2007 **/ /** to : 16 jun 2008 **/ /** # Version 5.1 : from : 26 oct 2008 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 17 apr 2019 **/ /** # Version 7.0 : from : 03 sep 2020 **/ /** to : 10 jun 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #define SCOTCH_PTSCOTCH #include "module.h" #include "common.h" #include "ptscotch.h" #include "dgtst.h" /* ** The static and global definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "dgtst [ []] ", " -h : Display this help", " -r : Set root process for centralized files (default is 0)", " -V : Print program version and copyright", NULL }; /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Dgraph grafdat; int procglbnbr; int proclocnum; int protglbnum; /* Root process */ SCOTCH_Num vertnbr; SCOTCH_Num velomin; SCOTCH_Num velomax; SCOTCH_Num velosum; double veloavg; double velodlt; SCOTCH_Num degrmin; SCOTCH_Num degrmax; double degravg; double degrdlt; SCOTCH_Num edgenbr; SCOTCH_Num edlomin; SCOTCH_Num edlomax; SCOTCH_Num edlosum; double edloavg; double edlodlt; int i; #ifdef SCOTCH_DEBUG_ALL int flagval; #endif /* SCOTCH_DEBUG_ALL */ #ifdef SCOTCH_PTHREAD_MPI int thrdreqlvl; int thrdprolvl; #endif /* SCOTCH_PTHREAD_MPI */ errorProg ("dgtst"); #ifdef SCOTCH_PTHREAD_MPI thrdreqlvl = MPI_THREAD_MULTIPLE; if (MPI_Init_thread (&argc, &argv, thrdreqlvl, &thrdprolvl) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (1)"); #else /* SCOTCH_PTHREAD_MPI */ if (MPI_Init (&argc, &argv) != MPI_SUCCESS) errorPrint ("main: Cannot initialize (2)"); #endif /* SCOTCH_PTHREAD_MPI */ MPI_Comm_size (MPI_COMM_WORLD, &procglbnbr); /* Get communicator data */ MPI_Comm_rank (MPI_COMM_WORLD, &proclocnum); protglbnum = 0; /* Assume root process is process 0 */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } #ifdef SCOTCH_DEBUG_ALL flagval = C_FLAGNONE; #endif /* SCOTCH_DEBUG_ALL */ fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '+') && /* If found a file name */ ((argv[i][0] != '-') || (argv[i][1] == '\0'))) { if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { #ifdef SCOTCH_DEBUG_ALL case 'D' : case 'd' : flagval |= C_FLAGDEBUG; break; #endif /* SCOTCH_DEBUG_ALL */ case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'R' : /* Root process (if necessary) */ case 'r' : protglbnum = atoi (&argv[i][2]); if ((protglbnum < 0) || (protglbnum >= procglbnbr) || ((protglbnum == 0) && (argv[i][2] != '0'))) errorPrint ("main: invalid root process number"); break; case 'V' : case 'v' : fprintf (stderr, "dgtst, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } #ifdef SCOTCH_DEBUG_ALL if ((flagval & C_FLAGDEBUG) != 0) { fprintf (stderr, "Proc %4d of %d, pid %d\n", proclocnum, procglbnbr, getpid ()); if (proclocnum == protglbnum) { /* Synchronize on keybord input */ char c; printf ("Waiting for key press...\n"); if (scanf ("%c", &c) < 0) fprintf (stderr, "Invalid wait input"); } MPI_Barrier (MPI_COMM_WORLD); } #endif /* SCOTCH_DEBUG_ALL */ fileBlockOpenDist (C_fileTab, C_FILENBR, procglbnbr, proclocnum, protglbnum); /* Open all files */ SCOTCH_dgraphInit (&grafdat, MPI_COMM_WORLD); SCOTCH_dgraphLoad (&grafdat, C_filepntrsrcinp, -1, 0); SCOTCH_dgraphCheck (&grafdat); SCOTCH_dgraphSize (&grafdat, &vertnbr, NULL, &edgenbr, NULL); SCOTCH_dgraphStat (&grafdat, &velomin, &velomax, &velosum, &veloavg, &velodlt, °rmin, °rmax, °ravg, °rdlt, &edlomin, &edlomax, &edlosum, &edloavg, &edlodlt); if (C_filepntrdatout != NULL) { fprintf (C_filepntrdatout, "S\tVertex\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) vertnbr); fprintf (C_filepntrdatout, "S\tVertex load\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) velomin, (SCOTCH_Num) velomax, (SCOTCH_Num) velosum, veloavg, velodlt); fprintf (C_filepntrdatout, "S\tVertex degree\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) degrmin, (SCOTCH_Num) degrmax, (SCOTCH_Num) edgenbr, degravg, degrdlt); fprintf (C_filepntrdatout, "S\tEdge\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) (edgenbr / 2)); fprintf (C_filepntrdatout, "S\tEdge load\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) edlomin, (SCOTCH_Num) edlomax, (SCOTCH_Num) edlosum, edloavg, edlodlt); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_dgraphExit (&grafdat); MPI_Finalize (); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/dgtst.h000066400000000000000000000070621514310134000245310ustar00rootroot00000000000000/* Copyright 2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : dgtst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a parallel sparse matrix **/ /** ordering software. **/ /** This module contains the data declara- **/ /** tions for the distributed source graph **/ /** analyzer. **/ /** **/ /** DATES : # Version 5.0 : from : 23 jun 2007 **/ /** to : 24 jun 2007 **/ /** # Version 6.0 : from : 10 nov 2014 **/ /** to : 10 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenamedatout fileBlockName (C_fileTab, 1) /* Statistics output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrdatout fileBlockFile (C_fileTab, 1) /* Statistics output file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGDEBUG 0x0001 /* Enable easy debugger attachment */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gbase.c000066400000000000000000000147751514310134000244710ustar00rootroot00000000000000/* Copyright 2007,2008,2010-2012,2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gbase.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program changes the base of source **/ /** graphs. **/ /** **/ /** DATES : # Version 4.0 : from : 12 may 2006 **/ /** to : 12 may 2006 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 31 may 2021 **/ /** to : 31 may 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gbase.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "gbase [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; /* Source graph */ int baseval; int i; errorProg ("gbase"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ baseval = 0; /* Assume base 0 by default */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ C_paraNum ++; /* One more parameter */ baseval = atoi (argv[i]); /* Get the base value */ if (baseval < 0) errorPrint ("main: invalid base value '%s'", argv[i]); #ifdef SCOTCH_DEBUG_ALL if (baseval > 1) errorPrintW ("main: unusual base parameter"); #endif /* SCOTCH_DEBUG_ALL */ continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "gbase, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); SCOTCH_graphLoad (&grafdat, C_filepntrsrcinp, (SCOTCH_Num) baseval, 0); SCOTCH_graphSave (&grafdat, C_filepntrsrcout); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_graphExit (&grafdat); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gbase.h000066400000000000000000000062651514310134000244710ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gbase.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the declarations **/ /** for the source graph base changer. **/ /** **/ /** DATES : # Version 4.0 : from : 12 may 2006 **/ /** to : 12 may 2006 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Source graph output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 1) /* Source graph output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gcv.c000066400000000000000000000236251514310134000241610ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023,2024 Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gcv.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Bruno MARCUSSEAU (v3.1) **/ /** **/ /** FUNCTION : Part of a graph file converter. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 0.0 : from : 02 apr 1993 **/ /** to : 02 apr 1993 **/ /** # Version 2.0 : from : 28 oct 1994 **/ /** to : 16 nov 1994 **/ /** # Version 3.0 : from : 08 sep 1995 **/ /** to : 20 sep 1995 **/ /** # Version 3.1 : from : 22 mar 1996 **/ /** to : 22 mar 1996 **/ /** # Version 3.2 : from : 04 oct 1996 **/ /** to : 26 may 1997 **/ /** # Version 3.3 : from : 06 oct 1998 **/ /** to : 21 dec 1998 **/ /** # Version 3.4 : from : 05 oct 1999 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 19 jan 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 11 jun 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gcv.h" /* ** The static and global variables. */ static int C_inpFormatType = 0; /* Input graph format */ static char * C_inpFormatData = "\0"; /* Pointer to auxiliary data */ static const C_FormatInp C_inpFormatTab[] = { /* Table of input formats */ { 'B', SCOTCH_graphGeomLoadHabo }, { 'b', SCOTCH_graphGeomLoadHabo }, { 'C', SCOTCH_graphGeomLoadChac }, { 'c', SCOTCH_graphGeomLoadChac }, { 'M', SCOTCH_graphGeomLoadMmkt }, { 'm', SCOTCH_graphGeomLoadMmkt }, { 'S', SCOTCH_graphGeomLoadScot }, { 's', SCOTCH_graphGeomLoadScot }, { '\0', NULL } }; static int C_outFormatType = 4; /* Output graph format */ static char * C_outFormatData = "\0"; /* Pointer to auxiliary data */ static C_FormatOut C_outFormatTab[] = { /* Table of output formats */ { 'C', SCOTCH_graphGeomSaveChac }, { 'c', SCOTCH_graphGeomSaveChac }, { 'M', SCOTCH_graphGeomSaveMmkt }, { 'm', SCOTCH_graphGeomSaveMmkt }, { 'S', SCOTCH_graphGeomSaveScot }, { 's', SCOTCH_graphGeomSaveScot }, { '\0', NULL } }; static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[3] = { /* File array */ { FILEMODER }, { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "gcv [ [ []]] ", " -h : Display this help", " -i : Select input file format", " b : Boeing-Harwell format (matrices)", " c : Chaco v2.0 format (adjacency)", " m : Matrix Market format (edges, symmetrized)", " s : Scotch v3.0 format (adjacency)", " -o : Select output file format", " c : Chaco v2.0 format (adjacency)", " m : Matrix Market symmetric pattern format (edges)", " s : Scotch v3.0 format (adjacency)", " -V : Print program version and copyright", "", "Default option set is : '-Ib -Os'", NULL }; /*****************************/ /* */ /* This is the main function */ /* */ /*****************************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; SCOTCH_Geom geomdat; int i, j; errorProg ("gcv"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give help */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'I' : /* Select input file type */ case 'i' : for (j = 0; C_inpFormatTab[j].code != '\0'; j ++) { /* Find proper format code */ if (C_inpFormatTab[j].code == argv[i][2]) { C_inpFormatType = j; C_inpFormatData = &argv[i][3]; break; } } if (C_inpFormatTab[j].code == '\0') errorPrint ("main: unprocessed option '%s'", argv[i]); break; case 'O' : /* Select input file type */ case 'o' : for (j = 0; C_outFormatTab[j].code != '\0'; j ++) { /* Find proper format code */ if (C_outFormatTab[j].code == argv[i][2]) { C_outFormatType = j; C_outFormatData = &argv[i][3]; break; } } if (C_inpFormatTab[j].code == '\0') errorPrint ("main: unprocessed option '%s'", argv[i]); break; case 'V' : fprintf (stderr, "gcv, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); SCOTCH_geomInit (&geomdat); C_inpFormatTab[C_inpFormatType].func (&grafdat, &geomdat, C_filepntrsrcinp, NULL, C_inpFormatData); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_graphCheck (&grafdat) != 0) errorPrint ("main: bad graph structure"); #endif /* SCOTCH_DEBUG_ALL */ C_outFormatTab[C_outFormatType].func (&grafdat, &geomdat, C_filepntrsrcout, C_filepntrgeoout, C_outFormatData); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_geomExit (&geomdat); SCOTCH_graphExit (&grafdat); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gcv.h000066400000000000000000000122331514310134000241570ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gcv.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a graph file converter. **/ /** This module contains the data declara- **/ /** tions for the main module. **/ /** **/ /** DATES : # Version 0.0 : from : 02 apr 1993 **/ /** to : 02 apr 1993 **/ /** # Version 2.0 : from : 28 oct 1994 **/ /** to : 16 nov 1994 **/ /** # Version 3.0 : from : 08 sep 1995 **/ /** to : 17 sep 1995 **/ /** # Version 3.1 : from : 22 mar 1996 **/ /** to : 22 mar 1996 **/ /** # Version 3.2 : from : 04 oct 1996 **/ /** to : 04 mar 1997 **/ /** # Version 3.3 : from : 06 oct 1998 **/ /** to : 06 oct 1998 **/ /** # Version 3.4 : from : 13 oct 1999 **/ /** to : 14 oct 1999 **/ /** # Version 4.0 : from : 29 nov 2003 **/ /** to : 29 nov 2003 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 7.0 : from : 10 sep 2024 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines */ /*+ File name aliases. +*/ #define C_FILENBR 3 /* Number of files in list */ #define C_FILEARGNBR 3 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* External graph input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Source graph output file name */ #define C_filenamegeoout fileBlockName (C_fileTab, 2) /* Source graph geometry file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* External graph input file */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 1) /* Source graph output file */ #define C_filepntrgeoout fileBlockFile (C_fileTab, 2) /* Source graph geometry file */ /* ** The type and structure definitions. */ /*+ This structure defines the method array element. +*/ typedef int (* FormatInpFunc) (SCOTCH_Graph * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); typedef struct C_FormatInp_ { char code; /* Format type code */ FormatInpFunc func; /* Function to call */ } C_FormatInp; typedef int (* FormatOutFunc) (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); typedef struct C_FormatOut_ { char code; /* Format type code */ FormatOutFunc func; /* Function to call */ } C_FormatOut; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gdump.c000066400000000000000000000137561514310134000245220ustar00rootroot00000000000000/* Copyright 2019,2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gdump.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program creates a source code **/ /** that represents a source graph. **/ /** **/ /** DATES : # Version 6.0 : from : 23 nov 2019 **/ /** to : 22 jan 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gdump.h" /* ** The static definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "gdump [ []] ", " -b : Set base value", " -h : Display this help", " -p : Use prefix name", " -s : Use suffix name", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; /* Source graph */ SCOTCH_Num baseval; /* Base value */ const char * prefptr; /* Pointer to prefix */ const char * suffptr; /* Pointer to suffix */ int i; errorProg ("gdump"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ baseval = -1; /* Use graph base by default */ prefptr = suffptr = ""; for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'P' : /* Prefix */ case 'p' : prefptr = &argv[i][2]; break; case 'S' : /* Suffix */ case 's' : suffptr = &argv[i][2]; break; case 'V' : fprintf (stderr, "gdump, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); SCOTCH_graphLoad (&grafdat, C_filepntrsrcinp, baseval, 0); SCOTCH_graphCheck (&grafdat); if (SCOTCH_graphDump (&grafdat, prefptr, suffptr, C_filepntrcodout) != 0) errorPrint ("main: cannot dump graph"); SCOTCH_graphExit (&grafdat); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (de)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gdump.h000066400000000000000000000060741514310134000245220ustar00rootroot00000000000000/* Copyright 2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gdump.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the declarations **/ /** for the source graph dumper. **/ /** **/ /** DATES : # Version 6.0 : from : 23 nov 2019 **/ /** to : 28 dec 2019 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenamecodout fileBlockName (C_fileTab, 1) /* Graph source code output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrcodout fileBlockFile (C_fileTab, 1) /* Graph source code output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmap.c000066400000000000000000000572111514310134000243240ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018-2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmap.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : Part of a graph mapping software. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 0.0 : from : 05 jan 1993 **/ /** to : 12 may 1993 **/ /** # Version 1.1 : from : 15 oct 1993 **/ /** to : 15 oct 1993 **/ /** # Version 1.3 : from : 06 apr 1994 **/ /** to : 18 may 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 17 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 18 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 02 oct 1995 **/ /** # Version 3.1 : from : 07 nov 1995 **/ /** to : 25 apr 1996 **/ /** # Version 3.2 : from : 24 sep 1996 **/ /** to : 26 may 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 30 mar 1999 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 16 jan 2004 **/ /** to : 27 dec 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 18 jun 2008 **/ /** # Version 5.1 : from : 30 jun 2010 **/ /** to : 31 aug 2011 **/ /** # Version 6.0 : from : 29 may 2010 **/ /** to : 26 aug 2020 **/ /** # Version 7.0 : from : 10 oct 2021 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmap.h" /* ** The static variables. */ static int C_partNbr = 1; /* Default number of parts / cluster size */ static int C_paraNum = 0; /* Number of parameters */ static int C_paraNbr = 0; /* No parameters for mapping */ static int C_fileNum = 0; /* Number of file in arg list */ static int C_fileNbr = 4; /* Number of files for mapping */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODER }, { FILEMODEW }, { FILEMODEW }, { FILEMODER }, { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { /* Usage */ "gmap [ [ [ []]]] ", "gpart [] [ [ []]] ", " -b : Load imbalance tolerance (default: 0.05)", " -C : Choose execution context options according to one or several of :", " d : deterministic behavior (even across multiple threads; implies 'f')", " f : fixed random seed", " r : variable random seed", " u : undeterministic behavior (may be faster with several threads)", " Default behavior depends on compilation flags", " -c : Choose default mapping strategy according to one or several of :", " b : enforce load balance as much as possible", " q : privilege quality over speed (default)", " r : use only recursive bipartitioning", " s : privilege speed over quality", " t : enforce safety", " -f : Fixed vertices input file", " -h : Display this help", " -m : Set mapping strategy (see user's manual)", " -o : Use partitioning with overlap (only for gpart)", " -q : Do graph clustering instead of graph partitioning (for gpart)", " -q : Do graph clustering instead of static mapping (for gmap)", " -ro : Old mapping input file (for remapping)", " -rr : Edge migration ratio (for remapping, default: 1)", " -rv : Vertex migration cost input file (for remapping)", " -s : Force unity weights on :", " e : edges", " v : vertices", " -V : Print program version and copyright", " -v : Set verbose mode to :", " m : mapping information", " s : strategy information", " t : timing information", "", "See default strategy with option '-vs'", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Context contdat; /* Execution context */ SCOTCH_Graph cogrdat; /* Context graph binding */ SCOTCH_Graph grafdat; /* Source graph */ SCOTCH_Num grafflag; /* Source graph properties */ SCOTCH_Arch archdat; /* Target architecture */ SCOTCH_Strat stradat; /* Mapping strategy */ char * straptr; /* Strategy string to use */ SCOTCH_Num straval; SCOTCH_Mapping mappdat; /* Mapping data */ SCOTCH_Mapping mapodat; /* Old mapping data */ SCOTCH_Num * restrict parttab; /* Partition array */ SCOTCH_Num * restrict vmlotab; /* Vertex migration cost array */ SCOTCH_Num vertnbr; /* Number of graph vertices */ Clock runtime[2]; /* Timing variables */ int flagval; double kbalval; /* Imbalance tolerance value */ double emraval; /* Edge migration ratio */ int i, j; flagval = C_FLAGNONE; /* Default behavior */ kbalval = 0.01; /* Default imbalance */ emraval = 1; /* Default edge migration ratio */ straval = 0; /* No strategy flags */ straptr = NULL; vmlotab = NULL; #ifdef SCOTCH_COMPILE_PART flagval |= C_FLAGPART; C_paraNbr = 1; /* One more parameter */ C_fileNbr = 3; /* One less file to provide */ errorProg ("gpart"); #else errorProg ("gmap"); #endif /* SCOTCH_COMPILE_PART */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } grafflag = 0; /* Use vertex and edge weights */ SCOTCH_contextInit (&contdat); /* Set default context */ SCOTCH_stratInit (&stradat); /* Set default mapping strategy */ fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < C_paraNbr) { /* If number of parameters not reached */ if ((C_partNbr = atoi (argv[i])) < 1) /* Get the number of parts */ errorPrint ("main: invalid number of parts '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_fileNbr) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'B' : case 'b' : flagval |= C_FLAGKBALVAL; kbalval = atof (&argv[i][2]); if ((kbalval < 0.0) || (kbalval > 1.0) || ((kbalval == 0.0) && ((argv[i][2] != '0') && (argv[i][2] != '.')))) errorPrint ("main: invalid load imbalance ratio"); break; case 'C' : if (SCOTCH_contextOptionParse (&contdat, &argv[i][2]) != 0) errorPrint ("main: invalid context option string"); break; case 'c' : /* Strategy selection parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'B' : case 'b' : straval |= SCOTCH_STRATBALANCE; break; case 'Q' : case 'q' : straval |= SCOTCH_STRATQUALITY; break; case 'R' : case 'r' : straval |= SCOTCH_STRATRECURSIVE; break; case 'S' : case 's' : straval |= SCOTCH_STRATSPEED; break; case 'T' : case 't' : straval |= SCOTCH_STRATSAFETY; break; default : errorPrint ("main: invalid strategy selection option '%c' after '-C'", argv[i][j]); } } break; case 'F' : case 'f' : /* Fixed vertex file */ flagval |= C_FLAGFIXED; C_filenamevfxinp = &argv[i][2]; break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'M' : case 'm' : straptr = &argv[i][2]; break; case 'O' : case 'o' : flagval |= C_FLAGPARTOVL; break; case 'Q' : case 'q' : flagval |= C_FLAGCLUSTER; if ((flagval & C_FLAGPART) != 0) { /* If partitioning program */ if (argv[i][2] != '\0') errorPrint ("main: invalid parameter '%s' after '-q' for gpart", argv[i] + 2); } else { if (argv[i][1] == '\0') errorPrint ("main: missing parameter after '-q' for gmap"); if ((C_partNbr = atoi (argv[i] + 2)) < 1) /* Get maximum cluster load */ errorPrint ("main: invalid cluster load '%s'", argv[i] + 2); } break; case 'R' : case 'r' : /* Remapping parameters */ switch (argv[i][2]) { case 'O' : case 'o' : /* Old mapping input file */ flagval |= C_FLAGRMAPOLD; C_filenamemaoinp = &argv[i][3]; break; case 'R' : case 'r' : /* Edge migration ratio */ flagval |= C_FLAGRMAPRAT; emraval = atof (&argv[i][3]); if (emraval <= 0.0) errorPrint ("main: invalid edge migration ratio"); break; case 'V' : case 'v' : /* Vertex migration cost */ flagval |= C_FLAGRMAPCST; C_filenamevmlinp = &argv[i][3]; break; default : errorPrint ("main: invalid remapping option '%c'", argv[i][2]); } break; case 'S' : case 's' : /* Source graph parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'E' : case 'e' : grafflag |= 2; /* Do not load edge weights */ break; case 'V' : case 'v' : grafflag |= 1; /* Do not load vertex weights */ break; default : errorPrint ("main: invalid source graph option '%c'", argv[i][j]); } } break; case 'V' : fprintf (stderr, "gmap/gpart, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'v' : /* Output control info */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'M' : case 'm' : flagval |= C_FLAGVERBMAP; break; case 'S' : case 's' : flagval |= C_FLAGVERBSTR; break; case 'T' : case 't' : flagval |= C_FLAGVERBTIM; break; default : errorPrint ("main: unprocessed parameter '%c' in '%s'", argv[i][j], argv[i]); } } break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } if ((flagval & C_FLAGPART) != 0) { /* If program run as the partitioner */ fileBlockName (C_fileTab, 3) = fileBlockName (C_fileTab, 2); /* Put provided file names at their right place */ fileBlockName (C_fileTab, 2) = fileBlockName (C_fileTab, 1); fileBlockName (C_fileTab, 1) = "-"; } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ clockInit (&runtime[0]); clockStart (&runtime[0]); SCOTCH_graphInit (&grafdat); /* Create graph structure */ SCOTCH_graphLoad (&grafdat, C_filepntrsrcinp, -1, grafflag); /* Read source graph */ SCOTCH_archInit (&archdat); /* Create architecture structure */ if ((flagval & C_FLAGPART) != 0) { /* If program run as the partitioner */ if ((flagval & C_FLAGCLUSTER) != 0) /* If program run as graph clustering */ SCOTCH_archVcmplt (&archdat); /* Create a variable-sized complete graph */ else /* Program is run as plain graph partitioner */ SCOTCH_archCmplt (&archdat, C_partNbr); /* Create a complete graph of proper size */ } else { SCOTCH_archLoad (&archdat, C_filepntrtgtinp); /* Read target architecture */ if ((flagval & C_FLAGCLUSTER) == 0) /* If part size not to be preserved */ C_partNbr = SCOTCH_archSize (&archdat); else { if (SCOTCH_archVar (&archdat) == 0) errorPrint ("main: non variable-sized architecture provided while '-q' flag set"); } } if (((flagval & (C_FLAGPART | C_FLAGPARTOVL)) == C_FLAGPARTOVL) && /* If the mapper was asked to compute an overlap */ (strcmp (SCOTCH_archName (&archdat), "cmplt") != 0)) /* And the given target architecture is not a complete graph */ errorPrint ("main: option '-o' only valid for graph partitioning"); if ((flagval & (C_FLAGPARTOVL | C_FLAGCLUSTER)) == (C_FLAGPARTOVL | C_FLAGCLUSTER)) errorPrint ("main: options '-o' and '-q' are exclusive"); if ((flagval & (C_FLAGPARTOVL | C_FLAGFIXED)) == (C_FLAGPARTOVL | C_FLAGFIXED)) errorPrint ("main: options '-o' and '-f' are exclusive"); if ((flagval & (C_FLAGPARTOVL | C_FLAGRMAPOLD)) == (C_FLAGPARTOVL | C_FLAGRMAPOLD)) errorPrint ("main: options '-o' and '-ro' are exclusive"); if (((flagval & C_FLAGRMAPOLD) == 0) && (((flagval & C_FLAGRMAPRAT) != 0) || ((flagval & C_FLAGRMAPCST) != 0))) errorPrint ("main: an old mapping file must be provided ('-ro' flag) when '-rr' or '-rv' flags are set"); if ((straval != 0) || ((flagval & C_FLAGKBALVAL) != 0)) { if (straptr != NULL) errorPrint ("main: options '-b' / '-c' and '-m' are exclusive"); if ((flagval & C_FLAGPARTOVL) != 0) /* If overlap partitioning wanted */ SCOTCH_stratGraphPartOvlBuild (&stradat, straval, (SCOTCH_Num) C_partNbr, kbalval); else if ((flagval & C_FLAGCLUSTER) != 0) /* If clustering wanted */ SCOTCH_stratGraphClusterBuild (&stradat, straval, (SCOTCH_Num) C_partNbr, 1.0, kbalval); else SCOTCH_stratGraphMapBuild (&stradat, straval, (SCOTCH_Num) C_partNbr, kbalval); } SCOTCH_graphSize (&grafdat, &vertnbr, NULL); if ((parttab = memAlloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) /* Allocate by hand in case of overlap partitioning */ errorPrint ("main: out of memory"); if ((flagval & C_FLAGPARTOVL) == 0) { if ((flagval & C_FLAGFIXED) != 0) SCOTCH_graphTabLoad (&grafdat, parttab, C_filepntrvfxinp); if ((flagval & C_FLAGRMAPOLD) != 0) { SCOTCH_graphMapInit (&grafdat, &mapodat, &archdat, NULL); SCOTCH_graphMapLoad (&grafdat, &mapodat, C_filepntrmaoinp); if ((flagval & C_FLAGRMAPCST) != 0) { if ((vmlotab = memAlloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) errorPrint ("main: out of memory (2)"); SCOTCH_graphTabLoad (&grafdat, vmlotab, C_filepntrvmlinp); } } } SCOTCH_contextBindGraph (&contdat, &grafdat, &cogrdat); clockStop (&runtime[0]); /* Get input time */ clockInit (&runtime[1]); clockStart (&runtime[1]); if ((flagval & C_FLAGPARTOVL) != 0) { /* If overlap partitioning wanted */ if (straptr != NULL) /* Set overlap partitioning strategy if needed */ SCOTCH_stratGraphPartOvl (&stradat, straptr); SCOTCH_graphPartOvl (&cogrdat, C_partNbr, &stradat, parttab); /* Perform overlap partitioning */ clockStop (&runtime[1]); /* Get computation time */ clockStart (&runtime[0]); SCOTCH_graphTabSave (&grafdat, parttab, C_filepntrmapout); /* Write partitioning */ } else { /* Regular partitioning / mapping / clustering wanted */ if (straptr != NULL) /* Set static mapping strategy if needed */ SCOTCH_stratGraphMap (&stradat, straptr); SCOTCH_graphMapInit (&grafdat, &mappdat, &archdat, parttab); if ((flagval & C_FLAGRMAPOLD) != 0) { if ((flagval & C_FLAGFIXED) != 0) SCOTCH_graphRemapFixedCompute (&cogrdat, &mappdat, &mapodat, emraval, vmlotab, &stradat); /* Perform remapping */ else SCOTCH_graphRemapCompute (&cogrdat, &mappdat, &mapodat, emraval, vmlotab, &stradat); } else { if ((flagval & C_FLAGFIXED) != 0) SCOTCH_graphMapFixedCompute (&cogrdat, &mappdat, &stradat); /* Perform mapping */ else SCOTCH_graphMapCompute (&cogrdat, &mappdat, &stradat); } clockStop (&runtime[1]); /* Get computation time */ clockStart (&runtime[0]); SCOTCH_graphMapSave (&grafdat, &mappdat, C_filepntrmapout); /* Write mapping */ } clockStop (&runtime[0]); /* Get output time */ if (flagval & C_FLAGVERBSTR) { fprintf (C_filepntrlogout, "S\tStrat="); SCOTCH_stratSave (&stradat, C_filepntrlogout); putc ('\n', C_filepntrlogout); } if (flagval & C_FLAGVERBTIM) { fprintf (C_filepntrlogout, "T\tMapping\t\t%g\nT\tI/O\t\t%g\nT\tTotal\t\t%g\n", (double) clockVal (&runtime[1]), (double) clockVal (&runtime[0]), (double) clockVal (&runtime[0]) + (double) clockVal (&runtime[1])); } if ((flagval & C_FLAGPARTOVL) != 0) { /* If overlap partitioning wanted */ if (flagval & C_FLAGVERBMAP) SCOTCH_graphPartOvlView (&grafdat, C_partNbr, parttab, C_filepntrlogout); } else { /* Regular partitioning / mapping wanted */ if (flagval & C_FLAGVERBMAP) { if ((flagval & C_FLAGRMAPOLD) != 0) SCOTCH_graphRemapView (&grafdat, &mappdat, &mapodat, emraval, vmlotab, C_filepntrlogout); else SCOTCH_graphMapView (&grafdat, &mappdat, C_filepntrlogout); } SCOTCH_graphMapExit (&grafdat, &mappdat); /* Free mapping structure only when used, that is, not for overlay */ if ((flagval & C_FLAGRMAPOLD) != 0) { SCOTCH_graphMapExit (&grafdat, &mapodat); if ((flagval & C_FLAGRMAPCST) != 0) memFree (vmlotab); } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_graphExit (&cogrdat); /* Destroy context binding first */ SCOTCH_graphExit (&grafdat); SCOTCH_stratExit (&stradat); SCOTCH_archExit (&archdat); SCOTCH_contextExit (&contdat); memFree (parttab); /* Free hand-made partition array */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmap.h000066400000000000000000000146511514310134000243320ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010,2011,2014,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmap.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** Sebastien FOURESTIER (v6.0) **/ /** **/ /** FUNCTION : Part of a graph static mapper. **/ /** These lines are the data declaration **/ /** for the main routine. **/ /** **/ /** DATES : # Version 0.0 : from : 05 jan 1993 **/ /** to : 12 may 1993 **/ /** # Version 1.3 : from : 09 apr 1994 **/ /** to : 30 apr 1994 **/ /** # Version 2.0 : from : 06 jun 1994 **/ /** to : 08 nov 1994 **/ /** # Version 2.1 : from : 07 apr 1995 **/ /** to : 09 jun 1995 **/ /** # Version 3.0 : from : 01 jul 1995 **/ /** to : 15 aug 1995 **/ /** # Version 3.1 : from : 07 nov 1995 **/ /** to : 10 nov 1995 **/ /** # Version 3.2 : from : 04 oct 1996 **/ /** to : 18 jul 1997 **/ /** # Version 3.3 : from : 07 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 16 jan 2004 **/ /** to : 16 jan 2004 **/ /** # Version 5.0 : from : 12 jun 2008 **/ /** to : 18 jun 2008 **/ /** # Version 5.1 : from : 28 aug 2010 **/ /** to : 18 jul 2011 **/ /** # Version 6.0 : from : 29 may 2010 **/ /** to : 24 sep 2019 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 7 /* Number of files in list */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenametgtinp fileBlockName (C_fileTab, 1) /* Target architecture input file name */ #define C_filenamemapout fileBlockName (C_fileTab, 2) /* Mapping result output file name */ #define C_filenamelogout fileBlockName (C_fileTab, 3) /* Log file name */ #define C_filenamevfxinp fileBlockName (C_fileTab, 4) /* Fixed vertex file */ #define C_filenamemaoinp fileBlockName (C_fileTab, 5) /* Old mapping file */ #define C_filenamevmlinp fileBlockName (C_fileTab, 6) /* Vertex migration load file */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrtgtinp fileBlockFile (C_fileTab, 1) /* Target architecture input file */ #define C_filepntrmapout fileBlockFile (C_fileTab, 2) /* Mapping result output file */ #define C_filepntrlogout fileBlockFile (C_fileTab, 3) /* Log file */ #define C_filepntrvfxinp fileBlockFile (C_fileTab, 4) /* Fixed vertex file */ #define C_filepntrmaoinp fileBlockFile (C_fileTab, 5) /* Old mapping file */ #define C_filepntrvmlinp fileBlockFile (C_fileTab, 6) /* Vertex migration load file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGPART 0x0001 /* Partitioning */ #define C_FLAGPARTOVL 0x0002 /* Partitioning with overlap */ #define C_FLAGVERBSTR 0x0004 /* Verbose flags */ #define C_FLAGVERBTIM 0x0008 #define C_FLAGVERBMAP 0x0010 #define C_FLAGKBALVAL 0x0020 /* Imbalance tolerance */ #define C_FLAGCLUSTER 0x0040 /* Clustering */ #define C_FLAGFIXED 0x0080 /* Fixed vertices input file */ #define C_FLAGRMAPOLD 0x0100 /* Old mapping file */ #define C_FLAGRMAPRAT 0x0200 /* Edge migration ratio */ #define C_FLAGRMAPCST 0x0400 /* Vertex migration cost file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_hy.c000066400000000000000000000167421514310134000246620ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_hy.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the source graph for hypercube **/ /** graphs. **/ /** **/ /** DATES : # Version 2.0 : from : 03 nov 1994 **/ /** to : 03 nov 1994 **/ /** # Version 3.0 : from : 11 jul 1995 **/ /** to : 11 jul 1995 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 06 oct 1998 **/ /** to : 06 oct 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 map 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmk_hy.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW } }; static const char * C_usageList[] = { "gmk_hy [] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /****************************************/ /* */ /* The main routine, which computes the */ /* source graph description. */ /* */ /****************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num hdim = 1; /* Graph dimension */ SCOTCH_Num hnbr; /* Number of vertices */ SCOTCH_Num hbit; /* Most significant bit */ SCOTCH_Num hvrt; SCOTCH_Num hngb; int i; errorProg ("gmk_hy"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ if ((hdim = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "gmk_hy, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ hnbr = 1 << hdim; /* Compute number of vertices */ hbit = 1 << (hdim - 1); /* Compute highest bit value */ fprintf (C_filepntrsrcout, "0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n0\t000\n", (SCOTCH_Num) hnbr, /* Print number of vertices */ (SCOTCH_Num) (hdim * hnbr)); /* Print number of edges (arcs) */ for (hvrt = 0; hvrt < hnbr; hvrt ++) { /* For all vertices */ fprintf (C_filepntrsrcout, "" SCOTCH_NUMSTRING "", (SCOTCH_Num) hdim); /* Output number of neighbors */ for (hngb = hbit; hngb > 0; hngb >>= 1) /* For all vertex bits */ fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, /* Write corresponding neighbor */ (SCOTCH_Num) (hvrt ^ hngb)); fprintf (C_filepntrsrcout, "\n"); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_hy.h000066400000000000000000000066511514310134000246650ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_hy.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the hypercube source graph **/ /** building program. **/ /** **/ /** DATES : # Version 2.0 : from : 03 nov 1994 **/ /** to : 03 nov 1994 **/ /** # Version 3.0 : from : 11 jul 1995 **/ /** to : 11 jul 1995 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 06 oct 1998 **/ /** to : 06 oct 1998 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 1 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamesrcout fileBlockName (C_fileTab, 0) /* Source graph output file name */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 0) /* Source graph output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_m2.c000066400000000000000000000323501514310134000245510ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_m2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the source graph for 2D mesh **/ /** graphs. **/ /** **/ /** DATES : # Version 2.0 : from : 30 oct 1994 **/ /** to : 08 nov 1994 **/ /** # Version 3.0 : from : 11 jul 1995 **/ /** to : 02 oct 1995 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 06 oct 1998 **/ /** to : 06 oct 1998 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 18 may 2004 **/ /** # Version 5.0 : from : 13 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 02 apr 2021 **/ /** to : 02 apr 2021 **/ /** # Version 7.0 : from : 02 apr 2021 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # The vertices of the (dX,dY) mesh are **/ /** numbered as terminals so that **/ /** t(0,0) = 0, t(1,0) = 1, **/ /** t(dX - 1, 0) = dX - 1, t(0,1) = dX, **/ /** and t(x,y) = (y * dX) + x. **/ /** **/ /** # The bit mask array represents the **/ /** possible neighbors of a vertex, in **/ /** the following order: **/ /** 1 2 4 **/ /** 8 (16) 32 **/ /** 64 128 256 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmk_m2.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "gmk_m2 [ []] ", " -b : Set base value for output (0 or 1)", " -e : Build a 8-neighbor grid rather than a 4-neighbor one", " -g : Output the geometry to ", " -h : Display this help", " -t : Build a torus rather than a grid", " -V : Print program version and copyright", " -y : Invert y coordinate in geometry", NULL }; /****************************************/ /* */ /* The main routine, which computes the */ /* source graph description. */ /* */ /****************************************/ int main ( int argc, char * argv[]) { int flagval; /* Process flags */ SCOTCH_Num baseval; /* Base value */ SCOTCH_Num edgenbr; /* Number of edges (arcs) */ SCOTCH_Num d[2] = { 1, 1 }; /* Mesh dimensions */ SCOTCH_Num c[2]; /* Vertex coordinates */ int cbitmsk; /* Coordinate flag mask */ int i; errorProg ("gmk_m2"); flagval = C_FLAGDEFAULT; /* Set default flags */ baseval = 0; cbitmsk = 2 + 8 + 32 + 128; /* 4-point mask */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 2) { /* If number of parameters not reached */ if ((d[C_paraNum ++] = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'B' : /* Set base value */ case 'b' : baseval = (SCOTCH_Num) atol (&argv[i][2]); if ((baseval < 0) || (baseval > 1)) { errorPrint ("main: invalid base value '" SCOTCH_NUMSTRING "'", (SCOTCH_Num) baseval); } break; case 'E' : /* Build a finite-element grid */ case 'e' : flagval |= C_FLAGELEM; cbitmsk = 1 + 2 + 4 + 8 + 32 + 64 + 128 + 256; /* 8-point mask */ break; case 'G' : /* Output the geometry */ case 'g' : flagval |= C_FLAGGEOOUT; if (argv[i][2] != '\0') C_filenamegeoout = &argv[i][2]; break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'T' : /* Build a torus */ case 't' : flagval |= C_FLAGTORUS; break; case 'V' : fprintf (stderr, "gmk_m2, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'Y' : /* Invert the y coordinate in geometry file */ case 'y' : flagval |= C_FLAGGEOINVY; break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ if ((flagval & C_FLAGTORUS) != 0) { /* Build a torus */ edgenbr = ((flagval & C_FLAGELEM) != 0) /* Compute number of edges */ ? (8 * (d[0] * d[1]) - ((d[0] < 3) ? (6 * d[1]) : 0) - ((d[1] < 3) ? (6 * d[0]) : 0)) : (4 * (d[0] * d[1]) - ((d[0] < 3) ? (2 * d[1]) : 0) - ((d[1] < 3) ? (2 * d[0]) : 0)); fprintf (C_filepntrsrcout, "0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t000\n", (SCOTCH_Num) (d[0] * d[1]), /* Print number of vertices */ (SCOTCH_Num) edgenbr, (SCOTCH_Num) baseval); for (c[1] = 0; c[1] < d[1]; c[1] ++) { /* Output neighbor list */ for (c[0] = 0; c[0] < d[0]; c[0] ++) { int cbitval; cbitval = cbitmsk; if (d[0] <= 2) { /* Remove ascending arcs if duplicates */ cbitval &= ~(4 + 32 + 256); if (d[0] <= 1) /* Remove descending arcs if no width */ cbitval &= ~(1 + 8 + 64); } if (d[1] <= 2) { cbitval &= ~(64 + 128 + 256); if (d[1] <= 1) cbitval &= ~(1 + 2 + 4); } C_edgeOutput (d, c, baseval, cbitval, C_filepntrsrcout); } } } else { /* Build a grid */ edgenbr = ((flagval & C_FLAGELEM) != 0) /* Compute number of edges */ ? (8 * (d[0] * d[1]) - 6 * (d[0] + d[1]) + 4) : (4 * (d[0] * d[1]) - 2 * (d[0] + d[1])); fprintf (C_filepntrsrcout, "0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t000\n", (SCOTCH_Num) (d[0] * d[1]), /* Print number of vertices */ (SCOTCH_Num) edgenbr, (SCOTCH_Num) baseval); for (c[1] = 0; c[1] < d[1]; c[1] ++) { /* Output neighbor list */ for (c[0] = 0; c[0] < d[0]; c[0] ++) { int cbitval; cbitval = cbitmsk; if (c[0] <= 0) cbitval &= ~(1 + 8 + 64); if (c[0] >= (d[0] - 1)) cbitval &= ~(4 + 32 + 256); if (c[1] <= 0) cbitval &= ~(1 + 2 + 4); if (c[1] >= (d[1] - 1)) cbitval &= ~(64 + 128 + 256); C_edgeOutput (d, c, baseval, cbitval, C_filepntrsrcout); } } } if (flagval & C_FLAGGEOOUT) { /* If geometry is wanted */ fprintf (C_filepntrgeoout, "2\n" SCOTCH_NUMSTRING "\n", /* Output geometry file header */ (SCOTCH_Num) (d[0] * d[1])); for (c[1] = 0; c[1] < d[1]; c[1] ++) { /* Output mesh coordinates */ for (c[0] = 0; c[0] < d[0]; c[0] ++) fprintf (C_filepntrgeoout, SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) (c[1] * d[0] + c[0] + baseval), (SCOTCH_Num) c[0], (SCOTCH_Num) (((flagval & C_FLAGGEOINVY) != 0) ? (d[1] - 1 - c[1]) : c[1])); } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } /* This routine writes the neighbors of a 2D grid vertex. ** It returns: ** - void : in all cases. */ void C_edgeOutput ( const SCOTCH_Num * const d, const SCOTCH_Num * const c, const SCOTCH_Num baseval, const int cbitval, FILE * const fileptr) { SCOTCH_Num n[2]; /* Neighbor loop indices */ int degrval; int cbitnum; for (cbitnum = 256, degrval = 0; cbitnum != 0; cbitnum >>= 1) { /* Count effective number of neighbors */ if ((cbitval & cbitnum) != 0) degrval ++; } fprintf (fileptr, "%d", degrval); /* Write number of neighbors */ for (n[1] = c[1] - 1, cbitnum = 1; n[1] <= c[1] + 1; n[1] ++) { /* Output the effective neighbors */ for (n[0] = c[0] - 1; n[0] <= c[0] + 1; n[0] ++, cbitnum <<= 1) { if ((cbitval & cbitnum) != 0) fprintf (fileptr, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((n[1] + d[1]) % d[1]) * d[0] + ((n[0] + d[0]) % d[0]) + baseval)); } } fprintf (fileptr, "\n"); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_m2.h000066400000000000000000000111011514310134000245450ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_m2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the bidimensional mesh source **/ /** graph building program. **/ /** **/ /** DATES : # Version 2.0 : from : 30 oct 1994 **/ /** to : 08 nov 1994 **/ /** # Version 3.0 : from : 11 jul 1995 **/ /** to : 11 jul 1995 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 06 oct 1998 **/ /** to : 06 oct 1998 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 6.1 : from : 02 apr 2021 **/ /** to : 02 apr 2021 **/ /** # Version 7.0 : from : 02 apr 2021 **/ /** to : 02 apr 2021 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamesrcout fileBlockName (C_fileTab, 0) /* Source graph output file name */ #define C_filenamegeoout fileBlockName (C_fileTab, 1) /* Geometry graph output file name */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 0) /* Source graph output file */ #define C_filepntrgeoout fileBlockFile (C_fileTab, 1) /* Geometry graph output file */ /*+ Process flags. +*/ #define C_FLAGGEOOUT 0x0001 /* Output the geometry graph */ #define C_FLAGGEOINVY 0x0002 /* Invert y coordinate in geometry */ #define C_FLAGTORUS 0x0004 /* Build a torus rather than a mesh */ #define C_FLAGELEM 0x0008 /* Build a 8-neighbor grid rather than a 4-neighbor one */ #define C_FLAGDEFAULT 0x0000 /* Default flags */ /* ** The function prototypes. */ void C_edgeOutput (const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num, const int, FILE * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_m3.c000066400000000000000000000314161514310134000245540ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_m3.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the source graph for **/ /** tridimensional mesh source graphs. **/ /** **/ /** DATES : # Version 4.0 : from : 11 feb 2002 **/ /** to : 18 may 2004 **/ /** # Version 5.0 : from : 13 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 02 apr 2021 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # The vertices of the (dX,dY,dZ) mesh **/ /** are numbered as terminals so that **/ /** t(0,0,0) = 0, t(1,0,0) = 1, **/ /** t(dX - 1, 0, 0) = dX - 1, t(0,1,0) = **/ /** dX, t (0, 0, 1) = dX * dY - 1, **/ /** and t(x,y,z) = (z * dY + y) * dX + x. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmk_m3.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "gmk_m3 [ [ []]] ", " -b : Set base value for output (0 or 1)", " -g : Output the geometry to ", " -h : Display this help", " -t : Build a torus rather than a grid", " -V : Print program version and copyright", " -y : Invert y coordinate in geometry", NULL }; /****************************************/ /* */ /* The main routine, which computes the */ /* source graph description. */ /* */ /****************************************/ int main ( int argc, char * argv[]) { int flagval; /* Process flags */ SCOTCH_Num baseval; /* Base value */ SCOTCH_Num d[3] = { 1, 1, 1 }; /* Mesh dimensions */ SCOTCH_Num c[3]; /* Vertex coordinates */ int i; errorProg ("gmk_m3"); flagval = C_FLAGDEFAULT; /* Set default flags */ baseval = 0; if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 3) { /* If number of parameters not reached */ if ((d[C_paraNum ++] = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'B' : /* Set base value */ case 'b' : baseval = (SCOTCH_Num) atol (&argv[i][2]); if ((baseval < 0) || (baseval > 1)) { errorPrint ("main: invalid base value '" SCOTCH_NUMSTRING "'", (SCOTCH_Num) baseval); } break; case 'G' : /* Output the geometry */ case 'g' : flagval |= C_FLAGGEOOUT; if (argv[i][2] != '\0') C_filenamegeoout = &argv[i][2]; break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'T' : /* Build a torus */ case 't' : flagval |= C_FLAGTORUS; break; case 'V' : fprintf (stderr, "gmk_m3, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'Y' : /* Invert the y coordinate in geometry file */ case 'y' : flagval |= C_FLAGGEOINVY; break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ if (flagval & C_FLAGTORUS) { /* Build a torus */ fprintf (C_filepntrsrcout, "0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t000\n", (SCOTCH_Num) (d[0] * d[1] * d[2]), /* Print number of vertices */ (SCOTCH_Num) ((6 * d[0] * d[1] * d[2]) - /* Print number of edges (arcs) */ ((d[0] < 3) ? (2 * d[1] * d[2]) : 0) - ((d[1] < 3) ? (2 * d[0] * d[2]) : 0) - ((d[2] < 3) ? (2 * d[0] * d[1]) : 0)), (SCOTCH_Num) baseval); for (c[2] = 0; c[2] < d[2]; c[2] ++) { /* Output neighbor list */ for (c[1] = 0; c[1] < d[1]; c[1] ++) { for (c[0] = 0; c[0] < d[0]; c[0] ++) { fprintf (C_filepntrsrcout, SCOTCH_NUMSTRING, (SCOTCH_Num) (((d[0] > 2) ? 3 : d[0]) + /* Output number of neighbors */ ((d[1] > 2) ? 3 : d[1]) + ((d[2] > 2) ? 3 : d[2]) - 3)); if (d[2] > 2) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, /* Output the neighbors */ (SCOTCH_Num) ((((c[2] + d[2] - 1) % d[2]) * d[1] + c[1]) * d[0] + c[0] + baseval)); if (d[1] > 2) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + ((c[1] + d[1] - 1) % d[1])) * d[0] + c[0] + baseval)); if (d[0] > 2) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] * d[1] + c[1]) * d[0] + (c[0] + d[0] - 1) % d[0])) + baseval); if (d[0] > 1) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + c[1]) * d[0] + ((c[0] + 1) % d[0]) + baseval)); if (d[1] > 1) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + ((c[1] + 1) % d[1])) * d[0] + c[0] + baseval)); if (d[2] > 1) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((((c[2] + 1) % d[2]) * d[1] + c[1]) * d[0] + c[0] + baseval)); fprintf (C_filepntrsrcout, "\n"); } } } } else { /* Build a mesh */ fprintf (C_filepntrsrcout, "0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t000\n", (SCOTCH_Num) (d[0] * d[1] * d[2]), (SCOTCH_Num) ((d[0] * d[1] * d[2] * 3 - (d[0] * d[1] + d[0] * d[2] + d[1] * d[2])) * 2), (SCOTCH_Num) baseval); for (c[2] = 0; c[2] < d[2]; c[2] ++) { /* Output neighbor list */ for (c[1] = 0; c[1] < d[1]; c[1] ++) { for (c[0] = 0; c[0] < d[0]; c[0] ++) { fprintf (C_filepntrsrcout, "%d", ((c[0] == 0) ? 0 : 1) + /* Output number of neighbors */ ((c[0] == (d[0] - 1)) ? 0 : 1) + ((c[1] == 0) ? 0 : 1) + ((c[1] == (d[1] - 1)) ? 0 : 1) + ((c[2] == 0) ? 0 : 1) + ((c[2] == (d[2] - 1)) ? 0 : 1)); if (c[2] != 0) /* Output the neighbors */ fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] - 1) * d[1] + c[1]) * d[0] + c[0] + baseval)); if (c[1] != 0) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + c[1] - 1) * d[0] + c[0] + baseval)); if (c[0] != 0) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + c[1]) * d[0] + c[0] - 1 + baseval)); if (c[0] != (d[0] - 1)) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + c[1]) * d[0] + c[0] + 1 + baseval)); if (c[1] != (d[1] - 1)) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * d[1] + c[1] + 1) * d[0] + c[0] + baseval)); if (c[2] != (d[2] - 1)) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] + 1) * d[1] + c[1]) * d[0] + c[0] + baseval)); fprintf (C_filepntrsrcout, "\n"); } } } } if (flagval & C_FLAGGEOOUT) { /* If geometry is wanted */ fprintf (C_filepntrgeoout, "3\n" SCOTCH_NUMSTRING "\n", /* Output geometry file header */ (SCOTCH_Num) (d[0] * d[1] * d[2])); for (c[2] = 0; c[2] < d[2]; c[2] ++) { /* Output mesh coordinates */ for (c[1] = 0; c[1] < d[1]; c[1] ++) { for (c[0] = 0; c[0] < d[0]; c[0] ++) fprintf (C_filepntrgeoout, SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) ((c[2] * d[1] + c[1]) * d[0] + c[0] + baseval), (SCOTCH_Num) c[0], (SCOTCH_Num) ((flagval & C_FLAGGEOINVY) ? (d[1] - 1 - c[1]) : c[1]), (SCOTCH_Num) c[2]); } } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_m3.h000066400000000000000000000073521514310134000245630ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_m3.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the tridimensional mesh **/ /** source graph building program. **/ /** **/ /** DATES : # Version 4.0 : from : 11 feb 2002 **/ /** to : 11 feb 2002 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 7.0 : from : 02 apr 2021 **/ /** to : 02 apr 2021 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamesrcout fileBlockName (C_fileTab, 0) /* Source graph output file name */ #define C_filenamegeoout fileBlockName (C_fileTab, 1) /* Geometry graph output file name */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 0) /* Source graph output file */ #define C_filepntrgeoout fileBlockFile (C_fileTab, 1) /* Geometry graph output file */ /*+ Process flags. +*/ #define C_FLAGGEOOUT 0x0001 /* Output the geometry graph */ #define C_FLAGGEOINVY 0x0002 /* Invert y coordinate in geometry */ #define C_FLAGTORUS 0x0004 /* Build a torus rather than a mesh */ #define C_FLAGDEFAULT 0x0000 /* Default flags */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_msh.c000066400000000000000000000155101514310134000250210ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_msh.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Marc FUENTES (v6.1) **/ /** **/ /** FUNCTION : Part of a mesh-to-graph converter. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 4.0 : from : 21 jan 2004 **/ /** to : 21 jan 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 17 feb 2021 **/ /** to : 28 feb 2021 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmk_msh.h" /* ** The static and global variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[2] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "gmk_msh [ []] ", " -d : Build a dual graph instead of a primal graph, based on a minimum number of common neighbors (default: 1)", " -h : Display this help", " -V : Print program version and copyright", NULL }; /*****************************/ /* */ /* This is the main function */ /* */ /*****************************/ int main ( int argc, char * argv[]) { SCOTCH_Mesh meshdat; SCOTCH_Graph grafdat; int noconbr; /* Flag greater than zero if dual graph wanted */ int i; errorProg ("gmk_msh"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ noconbr = 0; /* No dual graph by default */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'd' : /* Compute dual graph */ case 'D' : if (argv[i][2] == '\0') /* If no argument, set value to 1 */ noconbr = 1; else if ((noconbr = atoi (argv[i] + 2)) < 1) /* Get number of common points */ errorPrint ("main: invalid number of common points '%s'", argv[i] + 2); break; case 'H' : /* Give help */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "gmk_msh, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_meshInit (&meshdat); SCOTCH_graphInit (&grafdat); SCOTCH_meshLoad (&meshdat, C_filepntrmshinp, -1); SCOTCH_meshCheck (&meshdat); if (noconbr > 0) SCOTCH_meshGraphDual (&meshdat, &grafdat, noconbr); else SCOTCH_meshGraph (&meshdat, &grafdat); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_graphCheck (&grafdat) != 0) errorPrint ("main: bad graph structure"); #endif /* SCOTCH_DEBUG_ALL */ SCOTCH_graphSave (&grafdat, C_filepntrgrfout); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_graphExit (&grafdat); SCOTCH_meshExit (&meshdat); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_msh.h000066400000000000000000000070321514310134000250260ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_msh.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a mesh-to-graph converter. **/ /** This module contains the data declara- **/ /** tions for the main module. **/ /** **/ /** DATES : # Version 4.0 : from : 21 jan 2004 **/ /** to : 21 jan 2004 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamemshinp fileBlockName (C_fileTab, 0) /* External graph input file name */ #define C_filenamegrfout fileBlockName (C_fileTab, 1) /* Source graph output file name */ #define C_filepntrmshinp fileBlockFile (C_fileTab, 0) /* External graph input file */ #define C_filepntrgrfout fileBlockFile (C_fileTab, 1) /* Source graph output file */ /* ** The type and structure definitions. */ /*+ This structure defines the method array element. +*/ typedef struct C_Format_ { char code; /* Format type code */ int (* func) (); /* Function to call */ } C_Format; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_ub2.c000066400000000000000000000216211514310134000247220ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_ub2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the source graph for undirected **/ /** de Bruijn graphs, to be used to build **/ /** the architecture description files for **/ /** these graphs. **/ /** **/ /** DATES : # Version 1.2 : from : 11 feb 1994 **/ /** to : 11 feb 1994 **/ /** # Version 2.0 : from : 05 nov 1994 **/ /** to : 05 nov 1994 **/ /** # Version 3.0 : from : 11 jul 1995 **/ /** to : 12 jul 1995 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 07 jun 1999 **/ /** to : 07 jun 1999 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 5.0 : from : 22 jan 2008 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmk_ub2.h" #define ngbadd(v) do { \ int t; \ t = (v); \ if (t != vertnum) { \ int k; \ for (k = 0; k < ngbnbr; k ++) \ if (t == ngbtab[k]) \ break; \ if (k == ngbnbr) \ ngbtab[ngbnbr ++] = t; \ } \ } while (0); /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW } }; static const char * C_usageList[] = { "gmk_ub2 [] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /****************************************/ /* */ /* The main routine, which computes the */ /* source graph description. */ /* */ /****************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num ubdim = 1; /* Graph dimension */ SCOTCH_Num ubnbr; /* Number of vertices */ SCOTCH_Num ubbit; /* Most significant bit */ SCOTCH_Num ngbtab[4]; /* Array of neighbors */ int ngbnbr; /* Current number of neighbors */ SCOTCH_Num vertnum; /* Current vertex number */ int i, j; errorProg ("gmk_ub2"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ if ((ubdim = (SCOTCH_Num) atol (argv[i])) < 1) /* Get dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); C_paraNum ++; continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "gmk_ub2, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ ubnbr = 1 << ubdim; /* Compute number of vertices */ ubbit = 1 << (ubdim - 1); /* Bit to add on the left */ fprintf (C_filepntrsrcout, "0\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n0\t000\n", (SCOTCH_Num) ubnbr, /* Print number of vertices */ (SCOTCH_Num) (4 * ubnbr - 6)); /* Print number of edges (arcs) */ for (vertnum = 0; vertnum < ubnbr; vertnum ++) { /* For all vertices */ ngbnbr = 0; /* No neighbors defined yet */ ngbadd ((vertnum << 1) & (ubnbr - 1)); /* Register vertex neighbors */ ngbadd (((vertnum << 1) & (ubnbr - 1)) | 1); ngbadd ((vertnum >> 1) & (ubnbr - 1)); ngbadd (((vertnum >> 1) & (ubnbr - 1)) | ubbit); fprintf (C_filepntrsrcout, "%d", ngbnbr); /* Output number of neighbors */ for (j = 0; j < ngbnbr; j ++) fprintf (C_filepntrsrcout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ngbtab[j]); fprintf (C_filepntrsrcout, "\n"); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmk_ub2.h000066400000000000000000000066511514310134000247350ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmk_ub2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the de Bruijn source graph **/ /** building program. **/ /** **/ /** DATES : # Version 2.0 : from : 05 nov 1994 **/ /** to : 05 nov 1994 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 07 jun 1999 **/ /** to : 07 jun 1999 **/ /** # Version 3.3 : from : 07 jun 1999 **/ /** to : 07 jun 1999 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 1 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamesrcout fileBlockName (C_fileTab, 0) /* Source graph output file name */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 0) /* Source graph output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmtst.c000066400000000000000000000205201514310134000245270ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmtst.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program computes statistics on **/ /** graph mappings. **/ /** **/ /** DATES : # Version 3.1 : from : 17 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 02 jun 1997 **/ /** to : 16 jul 1997 **/ /** # Version 3.3 : from : 07 jun 1999 **/ /** to : 07 jun 1999 **/ /** # Version 4.0 : from : 12 feb 2004 **/ /** to : 16 nov 2005 **/ /** # Version 5.0 : from : 22 jan 2008 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gmtst.h" /* ** The static variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODER }, { FILEMODER }, { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { /* Usage */ "gmtst [ [ [ []]]] ", " -h : Display this help", " -o : Consider it is a partitioning with overlap (from gpart)", " -V : Print program version and copyright", "", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; /* Source graph */ SCOTCH_Num vertnbr; /* Source graph size */ SCOTCH_Num * vlbltab; /* Source graph vertex label array */ SCOTCH_Arch archdat; /* Target architecture */ SCOTCH_Mapping mappdat; /* Mapping data */ int flagval; int i; errorProg ("gmtst"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ flagval = C_FLAGNONE; /* Default behavior */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'O' : case 'o' : flagval |= C_FLAGPARTOVL; break; case 'V' : fprintf (stderr, "gmtst, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); /* Create graph structure */ SCOTCH_graphLoad (&grafdat, C_filepntrsrcinp, -1, 0); /* Read source graph */ SCOTCH_graphData (&grafdat, NULL, /* Get graph characteristics */ &vertnbr, NULL, NULL, NULL, &vlbltab, NULL, NULL, NULL); SCOTCH_archInit (&archdat); /* Create architecture structure */ SCOTCH_archLoad (&archdat, C_filepntrtgtinp); /* Read target architecture */ if (strcmp (SCOTCH_archName (&archdat), "term") == 0) /* If target architecture is variable-sized */ errorPrint ("main: variable-sized architectures cannot be mapped"); if ((flagval & C_FLAGPARTOVL) != 0) { /* If we are considering a partition with overlap */ SCOTCH_Num archsiz; SCOTCH_Num * parttab; if (strcmp (SCOTCH_archName (&archdat), "cmplt") != 0) /* If the given target architecture is not a complete graph */ errorPrint ("main: option '-o' only valid for graph partitioning"); archsiz = SCOTCH_archSize (&archdat); if ((parttab = memAlloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) errorPrint ("main: out of memory"); SCOTCH_graphTabLoad (&grafdat, parttab, C_filepntrmapinp); SCOTCH_graphPartOvlView (&grafdat, archsiz, parttab, C_filepntrdatout); /* Display mapping statistics */ memFree (parttab); } else { SCOTCH_graphMapInit (&grafdat, &mappdat, &archdat, NULL); /* Create mapping structure */ SCOTCH_graphMapLoad (&grafdat, &mappdat, C_filepntrmapinp); SCOTCH_graphMapView (&grafdat, &mappdat, C_filepntrdatout); /* Display mapping statistics */ SCOTCH_graphMapExit (&grafdat, &mappdat); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_archExit (&archdat); SCOTCH_graphExit (&grafdat); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gmtst.h000066400000000000000000000101771514310134000245430ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2019 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gmtst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program computes statistics on **/ /** graph mappings. **/ /** **/ /** DATES : # Version 3.1 : from : 17 jul 1996 **/ /** to : 23 jul 1996 **/ /** # Version 3.2 : from : 02 jun 1997 **/ /** to : 02 jun 1997 **/ /** # Version 3.3 : from : 06 jun 1999 **/ /** to : 07 jun 1999 **/ /** # Version 4.0 : from : 12 feb 2004 **/ /** to : 29 nov 2005 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 24 sep 2019 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 4 /* Number of files in list */ #define C_FILEARGNBR 4 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph file name */ #define C_filenametgtinp fileBlockName (C_fileTab, 1) /* Target architecture file name */ #define C_filenamemapinp fileBlockName (C_fileTab, 2) /* Mapping result file name */ #define C_filenamedatout fileBlockName (C_fileTab, 3) /* Statistics file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrtgtinp fileBlockFile (C_fileTab, 1) /* Target architecture file */ #define C_filepntrmapinp fileBlockFile (C_fileTab, 2) /* Mapping result input file */ #define C_filepntrdatout fileBlockFile (C_fileTab, 3) /* Statistics output file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGPARTOVL 0x0002 /* Partitioning with overlap */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gord.c000066400000000000000000000314601514310134000243310ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2021,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gord.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a sparse matrix graph ordering **/ /** software. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 3.2 : from : 24 aug 1996 **/ /** to : 21 aug 1998 **/ /** # Version 3.3 : from : 07 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 3.4 : from : 07 oct 1998 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 02 feb 2002 **/ /** to : 08 jan 2006 **/ /** # Version 5.0 : from : 26 jan 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 30 oct 2019 **/ /** to : 30 oct 2019 **/ /** # Version 7.0 : from : 23 oct 2021 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gord.h" /* ** The static and global definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW }, { FILEMODEW }, { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "gord [ [ []]] ", " -C : Choose execution context options according to one or several of :", " d : deterministic behavior (even across multiple threads; implies 'f')", " f : fixed random seed", " r : variable random seed", " u : undeterministic behavior (may be faster with several threads)", " Default behavior depends on compilation flags", " -c : Choose default ordering strategy according to one or several of :", " b : enforce load balance as much as possible", " q : privilege quality over speed (default)", " s : privilege speed over quality", " t : enforce safety", " -h : Display this help", " -m : Save column block mapping data to ", " -o : Set ordering strategy (see user's manual)", " -t : Save partitioning tree data to ", " -V : Print program version and copyright", " -v : Set verbose mode to :", " s : strategy information", " t : timing information", "", "See default strategy with option '-vs'", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Context contdat; /* Execution context */ SCOTCH_Graph cogrdat; /* Context graph binding */ SCOTCH_Num vertnbr; /* Number of vertices */ SCOTCH_Graph grafdat; /* Source graph */ SCOTCH_Ordering ordedat; /* Graph ordering */ SCOTCH_Num * permtab; /* Permutation array */ SCOTCH_Strat stradat; /* Ordering strategy */ SCOTCH_Num straval; char * straptr; int flagval; Clock runtime[2]; /* Timing variables */ int i, j; errorProg ("gord"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } flagval = C_FLAGNONE; /* Default behavior */ straval = 0; /* No strategy flags */ straptr = NULL; SCOTCH_contextInit (&contdat); /* Set default context */ SCOTCH_stratInit (&stradat); fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'C' : if (SCOTCH_contextOptionParse (&contdat, &argv[i][2]) != 0) errorPrint ("main: invalid context option string"); break; case 'c' : /* Strategy selection parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'B' : case 'b' : straval |= SCOTCH_STRATBALANCE; break; case 'Q' : case 'q' : straval |= SCOTCH_STRATQUALITY; break; case 'S' : case 's' : straval |= SCOTCH_STRATSPEED; break; case 'T' : case 't' : straval |= SCOTCH_STRATSAFETY; break; default : errorPrint ("main: invalid strategy selection option '%c'", argv[i][j]); } } break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'M' : /* Output separator mapping */ case 'm' : flagval |= C_FLAGMAPOUT; if (argv[i][2] != '\0') C_filenamemapout = &argv[i][2]; break; case 'O' : /* Ordering strategy */ case 'o' : straptr = &argv[i][2]; SCOTCH_stratExit (&stradat); SCOTCH_stratInit (&stradat); SCOTCH_stratGraphOrder (&stradat, straptr); break; case 'T' : /* Output separator tree */ case 't' : flagval |= C_FLAGTREOUT; if (argv[i][2] != '\0') C_filenametreout = &argv[i][2]; break; case 'V' : fprintf (stderr, "gord, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'v' : /* Output control info */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'S' : case 's' : flagval |= C_FLAGVERBSTR; break; case 'T' : case 't' : flagval |= C_FLAGVERBTIM; break; default : errorPrint ("main: unprocessed parameter '%c' in '%s'", argv[i][j], argv[i]); } } break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ clockInit (&runtime[0]); clockStart (&runtime[0]); SCOTCH_graphInit (&grafdat); /* Create graph structure */ SCOTCH_graphLoad (&grafdat, C_filepntrsrcinp, -1, 2); /* Read source graph with vertex weights */ SCOTCH_graphSize (&grafdat, &vertnbr, NULL); /* Get graph characteristics */ if (straval != 0) { if (straptr != NULL) errorPrint ("main: options '-c' and '-o' are exclusive"); SCOTCH_stratGraphOrderBuild (&stradat, straval, 0, 0.2); } SCOTCH_contextBindGraph (&contdat, &grafdat, &cogrdat); clockStop (&runtime[0]); /* Get input time */ clockInit (&runtime[1]); clockStart (&runtime[1]); if ((permtab = (SCOTCH_Num *) memAlloc (vertnbr * sizeof (SCOTCH_Num))) == NULL) errorPrint ("main: out of memory"); SCOTCH_graphOrderInit (&grafdat, &ordedat, permtab, NULL, NULL, NULL, NULL); /* Create ordering */ SCOTCH_graphOrderCompute (&cogrdat, &ordedat, &stradat); /* Perform ordering */ clockStop (&runtime[1]); /* Get ordering time */ #ifdef SCOTCH_DEBUG_ALL SCOTCH_graphOrderCheck (&grafdat, &ordedat); #endif /* SCOTCH_DEBUG_ALL */ clockStart (&runtime[0]); SCOTCH_graphOrderSave (&grafdat, &ordedat, C_filepntrordout); /* Write ordering */ if (flagval & C_FLAGMAPOUT) /* If mapping wanted */ SCOTCH_graphOrderSaveMap (&grafdat, &ordedat, C_filepntrmapout); /* Write mapping */ if (flagval & C_FLAGTREOUT) /* If separator tree wanted */ SCOTCH_graphOrderSaveTree (&grafdat, &ordedat, C_filepntrtreout); /* Write tree */ clockStop (&runtime[0]); /* Get output time */ if (flagval & C_FLAGVERBSTR) { fprintf (C_filepntrlogout, "S\tStrat="); SCOTCH_stratSave (&stradat, C_filepntrlogout); putc ('\n', C_filepntrlogout); } if (flagval & C_FLAGVERBTIM) { fprintf (C_filepntrlogout, "T\tOrder\t\t%g\nT\tI/O\t\t%g\nT\tTotal\t\t%g\n", (double) clockVal (&runtime[1]), (double) clockVal (&runtime[0]), (double) clockVal (&runtime[0]) + (double) clockVal (&runtime[1])); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_graphExit (&cogrdat); /* Destroy context binding first */ SCOTCH_graphOrderExit (&grafdat, &ordedat); SCOTCH_stratExit (&stradat); SCOTCH_graphExit (&grafdat); SCOTCH_contextExit (&contdat); memFree (permtab); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gord.h000066400000000000000000000110201514310134000243240ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gord.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a sparse matrix graph orderer. **/ /** This module contains the data declara- **/ /** tions for the main routine. **/ /** **/ /** DATES : # Version 3.2 : from : 24 aug 1996 **/ /** to : 20 oct 1997 **/ /** # Version 3.3 : from : 07 oct 1998 **/ /** to : 31 may 1999 **/ /** # Version 4.0 : from : 11 dec 2002 **/ /** to : 27 dec 2004 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 5 /* Number of files in list */ #define C_FILEARGNBR 3 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenameordout fileBlockName (C_fileTab, 1) /* Ordering output file name */ #define C_filenamelogout fileBlockName (C_fileTab, 2) /* Log file name */ #define C_filenamemapout fileBlockName (C_fileTab, 3) /* Separator mapping file name */ #define C_filenametreout fileBlockName (C_fileTab, 4) /* Separator tree file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrordout fileBlockFile (C_fileTab, 1) /* Ordering output file */ #define C_filepntrlogout fileBlockFile (C_fileTab, 2) /* Log file */ #define C_filepntrmapout fileBlockFile (C_fileTab, 3) /* Separator mapping file */ #define C_filepntrtreout fileBlockFile (C_fileTab, 4) /* Separator tree file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGMAPOUT 0x0001 /* Output mapping data */ #define C_FLAGTREOUT 0x0002 /* Output separator tree data */ #define C_FLAGVERBSTR 0x0004 /* Output strategy string */ #define C_FLAGVERBTIM 0x0008 /* Output timing information */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gotst.c000066400000000000000000000513661514310134000245450ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018-2020,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gotst.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** Bruno MARCUSSEAU (v3.1) **/ /** **/ /** FUNCTION : Graph symbolic factorizer. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 4.0 : from : 27 jan 2004 **/ /** to : 28 nov 2005 **/ /** # Version 5.0 : from : 25 jun 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 20 apr 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 01 jun 2020 **/ /** to : 14 jun 2020 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # The cost analysis routine leaves the **/ /** memory management to malloc and free **/ /** because it is assumed to be the most **/ /** efficient to merge free blocks and **/ /** reallocate them. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gotst.h" /* ** The static and global variables. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[3] = { /* File array */ { FILEMODER }, { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "gotst [ [ []]] ", " -h : Display this help", " -v : Do not account for vertex weights", " -V : Print program version and copyright", NULL }; /*****************************/ /* */ /* This is the main function */ /* */ /*****************************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; SCOTCH_Num vertnbr; SCOTCH_Num * verttab; SCOTCH_Num * vendtab; SCOTCH_Num * velotab; SCOTCH_Num edgenbr; SCOTCH_Num * edgetab; SCOTCH_Num baseval; SCOTCH_Ordering ordedat; SCOTCH_Num * permtab; SCOTCH_Num * peritab; int flagval; int i; flagval = C_FLAGNONE; /* Default behavior */ errorProg ("gotst"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give help */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'v' : flagval |= C_FLAGNOVERT; break; case 'V' : fprintf (stderr, "gotst, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); SCOTCH_graphLoad (&grafdat, C_filepntrgrfinp, -1, ((flagval & C_FLAGNOVERT) != 0) ? 3 : 2); /* Read source graph with or without vertex weights */ SCOTCH_graphData (&grafdat, &baseval, &vertnbr, &verttab, &vendtab, &velotab, NULL, &edgenbr, &edgetab, NULL); #ifdef SCOTCH_DEBUG_ALL if (vendtab != (verttab + 1)) errorPrint ("main: graph should be compact"); #endif /* SCOTCH_DEBUG_ALL */ if (memAllocGroup ((void **) (void *) &peritab, (size_t) (vertnbr * sizeof (SCOTCH_Num)), &permtab, (size_t) (vertnbr * sizeof (SCOTCH_Num)), NULL) == NULL) errorPrint ("main: out of memory"); SCOTCH_graphOrderInit (&grafdat, &ordedat, permtab, peritab, NULL, NULL, NULL); SCOTCH_graphOrderLoad (&grafdat, &ordedat, C_filepntrordinp); if (SCOTCH_graphOrderCheck (&grafdat, &ordedat) != 0) errorPrint ("main: invalid ordering"); factorView (baseval, vertnbr, verttab, velotab, edgenbr, edgetab, permtab, peritab, C_filepntrdatout); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ memFree (peritab); SCOTCH_graphOrderExit (&grafdat, &ordedat); SCOTCH_graphExit (&grafdat); return (EXIT_SUCCESS); } /*************************************/ /* */ /* These routines compute statistics */ /* on orderings. */ /* */ /*************************************/ static int factorView ( const SCOTCH_Num baseval, const SCOTCH_Num vertnbr, const SCOTCH_Num * const verttab, const SCOTCH_Num * const velotab, const SCOTCH_Num edgenbr, const SCOTCH_Num * const edgetab, const SCOTCH_Num * const permtab, const SCOTCH_Num * const peritab, FILE * restrict const stream) { FactorStat statdat; /* Structure holding data for performing elimination tree statistics */ SCOTCH_Num * ldadtab; /* Array of permuted indices of parent column in factored matrix */ SCOTCH_Num * lsontab; /* Array of permuted indices of first child column in factored matrix */ SCOTCH_Num * lbrotab; /* Array of permuted indices of sibling column in factored matrix */ SCOTCH_Num * fnnztab; /* Array of number of row indices, then of weighted factors, in factored matrix */ double fopcsum; /* Sum of OPC values for all independent elimination trees in factored matrix */ double heigsum; /* Sum of branch heights for all independent elimination trees in factored matrix */ SCOTCH_Num fcolnum; /* Index of permuted column in factored matrix */ int o; if (memAllocGroup ((void **) (void *) &ldadtab, (size_t) (vertnbr * sizeof (SCOTCH_Num)), &lsontab, (size_t) (vertnbr * sizeof (SCOTCH_Num)), &lbrotab, (size_t) (vertnbr * sizeof (SCOTCH_Num)), &fnnztab, (size_t) (vertnbr * sizeof (SCOTCH_Num)), NULL) == NULL) { errorPrint ("factorView: out of memory"); return (1); } statdat.velotax = (velotab != NULL) ? (velotab - baseval) : NULL; statdat.peritax = peritab - baseval; statdat.ldadtax = ldadtab - baseval; statdat.lsontax = lsontab - baseval; statdat.lbrotax = lbrotab - baseval; statdat.fnnztax = fnnztab - baseval; if (factorView2 (baseval, vertnbr, verttab - baseval, statdat.velotax, edgetab - baseval, permtab - baseval, peritab - baseval, ldadtab - baseval, lsontab - baseval, lbrotab - baseval, fnnztab - baseval) != 0) { errorPrint ("factorView: factored matrix too large"); memFree (ldadtab); /* Free group leader */ return (1); } statdat.heigmin = SCOTCH_NUMMAX; statdat.heigmax = statdat.heignbr = 0; heigsum = 0.0L; for (fcolnum = 0; fcolnum < vertnbr; fcolnum ++) { /* Get height sum */ if (ldadtab[fcolnum] == -1) /* If column is a root */ factorView3 (&statdat, 1, fcolnum + baseval, &heigsum); /* Scan subtree */ } statdat.heigavg = heigsum / (double) statdat.heignbr; statdat.heigdlt = 0.0L; statdat.fnnzsum = 0.0L; fopcsum = 0.0L; for (fcolnum = 0; fcolnum < vertnbr; fcolnum ++) { /* Get delta */ if (ldadtab[fcolnum] == -1) /* If column is a root */ factorView4 (&statdat, 1, fcolnum + baseval, &fopcsum); } statdat.heigdlt /= (double) statdat.heignbr; o = (fprintf (stream, "O\tLeaf=" SCOTCH_NUMSTRING "\nO\tHeight min=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tavg=%f\tdlt=%f (%5.2f)\n", /* Write tree height statistics */ (SCOTCH_Num) statdat.heignbr, (SCOTCH_Num) statdat.heigmin, (SCOTCH_Num) statdat.heigmax, statdat.heigavg, statdat.heigdlt, ((statdat.heigdlt / statdat.heigavg) * (double) 100.0L)) == EOF); o |= (fprintf (stream, "O\tNNZ=%e\nO\tOPC=%e\n", statdat.fnnzsum, fopcsum) == EOF); if (o != 0) errorPrint ("factorView: bad output"); memFree (ldadtab); /* Free group leader */ return (o); } /* This routine performs the symbolic factorization ** and creates the elimination tree structure. Also, ** it computes the (possibly weighted) sum of factors ** for each permuted column. */ static int factorView2 ( const SCOTCH_Num baseval, const SCOTCH_Num vertnbr, const SCOTCH_Num * const verttax, const SCOTCH_Num * const velotax, const SCOTCH_Num * const edgetax, const SCOTCH_Num * const permtax, const SCOTCH_Num * const peritax, SCOTCH_Num * restrict ldadtax, SCOTCH_Num * restrict lsontax, SCOTCH_Num * restrict lbrotax, SCOTCH_Num * restrict fnnztax) { SCOTCH_Num * restrict frowtab; /* Array for sorting permuted row indices in column being factored */ SCOTCH_Num * restrict fnxttab; /* Index array for chaining permuted row indices in frowtab */ SCOTCH_Num ** restrict facttax; /* Array of row index arrays for all factored colums to date */ SCOTCH_Num vertnnd; SCOTCH_Num pcolnum; memSet (lsontax + baseval, ~0, vertnbr * sizeof (SCOTCH_Num)); /* Assume columns have no sons at all */ if (memAllocGroup ((void **) (void *) &frowtab, (size_t) ((vertnbr + 1) * sizeof (SCOTCH_Num)), &fnxttab, (size_t) ((vertnbr + 1) * sizeof (SCOTCH_Num)), &facttax, (size_t) (vertnbr * sizeof (SCOTCH_Num *)), NULL) == NULL) { errorPrint ("factorView2: out of memory (1)"); return (1); } memSet (facttax, 0, vertnbr * sizeof (SCOTCH_Num *)); /* Set all factored column pointers to NULL */ facttax -= baseval; vertnnd = vertnbr + baseval; for (pcolnum = baseval; pcolnum < vertnnd; pcolnum ++) { /* For all columns of the permuted matrix */ SCOTCH_Num * fcoltab; SCOTCH_Num * fcolptr; SCOTCH_Num frownbr; SCOTCH_Num frowidx; SCOTCH_Num frowidd; SCOTCH_Num scolnum; SCOTCH_Num icolnum; /* Based non-permuted column index */ SCOTCH_Num edgenum; SCOTCH_Num edgennd; SCOTCH_Num dcolnum; icolnum = peritax[pcolnum]; /* Get the un-permuted index of the column */ frownbr = 1; /* Start array of factored terms for column */ frowtab[0] = pcolnum; /* Add diagonal element as unmoveable starter */ for (edgenum = verttax[icolnum], edgennd = verttax[icolnum + 1]; edgenum < edgennd; edgenum ++) { SCOTCH_Num prownum; prownum = permtax[edgetax[edgenum]]; /* Get permuted row */ if (prownum >= pcolnum) /* Include only permuted row indices of higher rank (lower triangular matrix) */ frowtab[frownbr ++] = prownum; } intSort1asc1 (frowtab + 1, frownbr - 1); /* Sort rows in ascending order */ frowtab[frownbr ++] = vertnnd; /* Add trailer */ for (frowidx = 0; frowidx < (frownbr - 1); frowidx ++) /* Create initial links */ fnxttab[frowidx] = frowidx + 1; frowidd = frowidx; /* Save index of trailer */ for (scolnum = lsontax[pcolnum]; scolnum != -1; scolnum = lbrotax[scolnum]) { /* For all son columns in elimination tree */ const SCOTCH_Num * restrict srowtab; /* Array of factored indices for son column */ SCOTCH_Num srownbr; SCOTCH_Num srowidx; SCOTCH_Num frowidx; /* Index of current factor in singly-linked list */ SCOTCH_Num foldidx; /* Index of before-current factor in singly-linked list */ SCOTCH_Num frownum; /* Value of current factor in singly-linked list */ SCOTCH_Num fnnzsum; srowtab = facttax[scolnum]; /* Point to array of factors for son column */ srownbr = fnnztax[scolnum]; /* Get size of array */ if (velotax != NULL) /* If needed, accumulate weight of first extra-diagonal factor */ fnnzsum = velotax[peritax[srowtab[0]]]; for (srowidx = 1, frowidx = 0, foldidx = -1, frownum = frowtab[frowidx]; srowidx < srownbr; srowidx ++) { SCOTCH_Num srownum; srownum = srowtab[srowidx]; if (velotax != NULL) /* If needed, accumulate loads before freeing factored son column */ fnnzsum += velotax[peritax[srownum]]; while (frownum < srownum) { /* While factor to add not in place */ foldidx = frowidx; /* Skip to next position */ frowidx = fnxttab[frowidx]; frownum = frowtab[frowidx]; } if (srownum == frownum) /* If factor already in column, skip it */ continue; frowtab[frownbr] = srownum; /* Add new slot */ fnxttab[frownbr] = frowidx; /* Link new slot */ fnxttab[foldidx] = frownbr; foldidx = frownbr ++; } if (velotax != NULL) /* If needed, accumulate sum of extra-diagonal factors in column */ fnnztax[scolnum] = fnnzsum; memFree (srowtab); /* Free now useless son factored column */ #ifdef SCOTCH_DEBUG_ALL facttax[scolnum] = NULL; #endif /* SCOTCH_DEBUG_ALL */ } frownbr -= 2; /* Remove markers from number of extra-diagonals */ fnnztax[pcolnum] = frownbr; /* Save number of extra-diagonals */ if (frownbr <= 0) { /* If factored column has no extra-diagonals */ ldadtax[pcolnum] = -1; /* Column has no father */ #ifdef SCOTCH_DEBUG_ALL lbrotax[pcolnum] = -1; #endif /* SCOTCH_DEBUG_ALL */ continue; /* Skip to next column without allocating or linking */ } if ((fcoltab = memAlloc (frownbr * sizeof (SCOTCH_Num))) == NULL) { /* Allocate array for factored column */ errorPrint ("factorView2: out of memory (2)"); return (1); } for (frowidx = fnxttab[0], fcolptr = fcoltab; frowidx != frowidd; frowidx = fnxttab[frowidx]) /* Fill factored array for column */ *fcolptr ++ = frowtab[frowidx]; dcolnum = fcoltab[0]; /* Get number of father, that it, first extra-diagonal */ ldadtax[pcolnum] = dcolnum; /* Link factored column to the separation tree */ lbrotax[pcolnum] = lsontax[dcolnum]; lsontax[dcolnum] = pcolnum; facttax[pcolnum] = fcoltab; /* Save factored array */ } memFree (frowtab); /* Free group leader */ return (0); } /* This routine traverses the elimination tree from the root(s), ** so as to compute minimum, maximum, and sum of tree branches. */ static void factorView3 ( FactorStat * restrict const statptr, SCOTCH_Num levlnum, SCOTCH_Num fcolnum, double * restrict const hsumptr) { double hsumtmp; hsumtmp = 0.0; if (statptr->lsontax[fcolnum] != -1) { /* If node has descendants */ SCOTCH_Num csonnum; for (csonnum = statptr->lsontax[fcolnum]; csonnum != -1; csonnum = statptr->lbrotax[csonnum]) factorView3 (statptr, levlnum + 1, csonnum, &hsumtmp); } else { hsumtmp = (double) levlnum; statptr->heignbr ++; if (levlnum < statptr->heigmin) statptr->heigmin = levlnum; if (levlnum > statptr->heigmax) statptr->heigmax = levlnum; } *hsumptr += hsumtmp; } /* This routine traverses the elimination tree from the root(s), ** so as to compute minimum, maximum, and sum of tree branches. */ static void factorView4 ( FactorStat * restrict const statptr, SCOTCH_Num levlnum, SCOTCH_Num fcolnum, double * restrict const fopcptr) { SCOTCH_Num veloval; SCOTCH_Num fnnztmp; double fopctmp; veloval = (statptr->velotax == NULL) ? 1 : statptr->velotax[statptr->peritax[fcolnum]]; fnnztmp = statptr->fnnztax[fcolnum] + veloval; /* Get extra-diagonals, plus diagonal */ fopctmp = (double) (fnnztmp * veloval); statptr->fnnzsum += fopctmp; fopctmp *= (double) fnnztmp; if (statptr->lsontax[fcolnum] != -1) { /* If node has descendants */ SCOTCH_Num csonnum; for (csonnum = statptr->lsontax[fcolnum]; csonnum != -1; csonnum = statptr->lbrotax[csonnum]) factorView4 (statptr, levlnum + 1, csonnum, &fopctmp); /* Accumulate OPC on local sum */ } else statptr->heigdlt += fabs ((double) levlnum - statptr->heigavg); *fopcptr += fopctmp; /* Aggregate local sum at higher level */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gotst.h000066400000000000000000000142161514310134000245430ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gotst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a graph scalar factorizer. **/ /** This module contains the data declara- **/ /** tions for the main module. **/ /** **/ /** DATES : # Version 4.0 : from : 27 jan 2004 **/ /** to : 27 jan 2004 **/ /** # Version 5.0 : from : 25 jun 2007 **/ /** to : 25 jul 2007 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 6.1 : from : 01 jun 2020 **/ /** to : 14 jun 2020 **/ /** **/ /************************************************************/ /* ** The defines */ /*+ File name aliases. +*/ #define C_FILENBR 3 /* Number of files in list */ #define C_FILEARGNBR 3 /* Number of files which can be arguments */ #define C_filenamegrfinp fileBlockName (C_fileTab, 0) /* Graph input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Ordering input file name */ #define C_filenamedatout fileBlockName (C_fileTab, 2) /* Output data file name */ #define C_filepntrgrfinp fileBlockFile (C_fileTab, 0) /* Graph input file */ #define C_filepntrordinp fileBlockFile (C_fileTab, 1) /* Ordering output file */ #define C_filepntrdatout fileBlockFile (C_fileTab, 2) /* Output data file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGNOVERT 0x0001 /* Do not account for vertex weights */ /* ** The type and structure definitions. */ /* Factorization node */ typedef struct C_FactorNode_ { struct C_FactorNode_ * linkdad; /*+ Father of node +*/ struct C_FactorNode_ * linkson; /*+ First son of node +*/ struct C_FactorNode_ * linkbro; /*+ Brother of node +*/ } C_FactorNode; /* Data structure for computing factored matrix statistics. */ typedef struct FactorStat_ { const SCOTCH_Num * velotax; /*+ Array of vertex weights (or NULL) +*/ const SCOTCH_Num * peritax; /*+ Inverse permutation array +*/ const SCOTCH_Num * ldadtax; /*+ Array of permuted indices of parent column +*/ const SCOTCH_Num * lsontax; /*+ Array of permuted indices of first child column +*/ const SCOTCH_Num * lbrotax; /*+ Array of permuted indices of sibling column +*/ SCOTCH_Num heigmin; SCOTCH_Num heigmax; SCOTCH_Num heignbr; double heigavg; double heigdlt; const SCOTCH_Num * fnnztax; /*+ Array of number of factored rows, then sum of vertex weights of factored rows +*/ double fnnzsum; } FactorStat; /* ** The function prototypes. */ static int factorView (const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, FILE * restrict const); static int factorView2 (const SCOTCH_Num, const SCOTCH_Num, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, const SCOTCH_Num * const, SCOTCH_Num * restrict, SCOTCH_Num * restrict, SCOTCH_Num * restrict, SCOTCH_Num * restrict); static void factorView3 (FactorStat * restrict const, SCOTCH_Num, SCOTCH_Num, double * restrict const); static void factorView4 (FactorStat * restrict const, SCOTCH_Num, SCOTCH_Num, double * restrict const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gout_c.c000066400000000000000000001025721514310134000246610ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2021,2023-2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gout_c.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a result viewer. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 2.0 : from : 06 oct 1994 **/ /** to : 23 dec 1994 **/ /** # Version 3.0 : from : 14 jul 1995 **/ /** to : 11 oct 1995 **/ /** # Version 3.1 : from : 27 mar 1996 **/ /** to : 03 apr 1996 **/ /** # Version 3.2 : from : 02 dec 1996 **/ /** to : 05 jun 1998 **/ /** # Version 3.3 : from : 29 may 1999 **/ /** to : 03 jun 1999 **/ /** # Version 3.4 : from : 03 feb 2000 **/ /** to : 03 feb 2000 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 08 feb 2004 **/ /** # Version 5.0 : from : 25 may 2007 **/ /** to : 25 may 2007 **/ /** # Version 5.1 : from : 25 oct 2007 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 16 oct 2010 **/ /** to : 17 apr 2019 **/ /** # Version 6.1 : from : 04 apr 2021 **/ /** to : 28 aug 2021 **/ /** # Version 7.0 : from : 31 aug 2021 **/ /** to : 13 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes */ #include "module.h" #include "common.h" #include "scotch.h" #include "gout_c.h" #include "gout_o.h" /* ** The static and global variables */ static int C_fileNum = 0; /* Number of file in arg list */ File C_fileTab[C_FILENBR] = { /* The file array; public */ { FILEMODER }, { FILEMODER }, { FILEMODER }, { FILEMODEW } }; static unsigned int C_geoFlag = C_GEOFLAGDEFAULT; /* Geometry flag */ static const char * C_usageList[] = { /* Usage */ "gout [ [ [ []]]] ", " -g : Geometry parameters :", " n : do not read geometry data (matrix display)", " p : permute Y and Z geometry dimensions", " r : rotate geometry by 90 degrees", " -h : Display this help", " -mn : Do not read mapping data", " -Oi[{}] : Open Inventor mesh file :", " c : color output", " g : gray level output", " r : remove cut edges", " v : view cut edges", " -Om[{}] : PostScript matrix file :", " e : EPSF-type output", " f : full-page output", " -Op[{}] : PostScript mesh file :", " c : color output", " g : gray level output", " e : EPSF-type output", " f : full-page output", " s : short clipping (disks excluded)", " l : large clipping (disks included)", " a : avoid displaying disks", " d : display disks", " r : remove cut edges", " v : view cut edges", " X= : maximum x clipping ratio (in [0.0;1.0])", " x= : minimum x clipping ratio", " Y= : maximum y clipping ratio", " y= : minimum y clipping ratio", " -Ot[{}] : Tulip graph file :", " b : b/w output", " c : color output", " a : avoid displaying disks", " d : display disks", " r : remove cut edges", " v : view cut edges", " -Ov[{}] : VTK mesh file :", " r : remove cut edges", " v : view cut edges", " -V : Print program version and copyright", "", "Default option set is : -Ov{v}", NULL }; /*****************************/ /* */ /* This is the main function */ /* */ /*****************************/ int main ( int argc, char * argv[]) { C_Graph grafdat; /* Source graph */ C_Geometry geo; /* Graph geometry */ C_Mapping map; /* Result mapping */ int i, j; errorProg ("gout"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'G' : /* Geometry parameters */ case 'g' : if ((j = C_geoParse (&argv[i][2])) != 0) errorPrint ("main: error in geometry option string '%d'", j); break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'M' : /* No-mapping flag */ case 'm' : if (((argv[i][2] != 'N') && (argv[i][2] != 'n')) || (argv[i][3] != '\0')) errorPrint ("main: error in mapping option string '%s'", &argv[i][2]); C_filenamemapinp = "-"; /* Default name to avoid opening */ C_filepntrmapinp = NULL; /* NULL file pointer means no file */ break; case 'O' : /* Output parameters */ case 'o' : if ((j = outDrawParse (&argv[i][2])) != 0) errorPrint ("main: error in output option string (%d)", j); break; case 'V' : fprintf (stderr, "gout, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: Unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat.grafdat); /* Create graph structure */ SCOTCH_graphLoad (&grafdat.grafdat, C_filepntrsrcinp, -1, 3); /* Read source graph */ SCOTCH_graphData (&grafdat.grafdat, &grafdat.baseval, &grafdat.vertnbr, &grafdat.verttax, &grafdat.vendtax, NULL, &grafdat.vlbltab, &grafdat.edgenbr, &grafdat.edgetax, NULL); grafdat.verttax -= grafdat.baseval; grafdat.vendtax -= grafdat.baseval; grafdat.edgetax -= grafdat.baseval; C_geoInit (&geo, &grafdat); /* Create geometry structure */ if (C_geoFlag & C_GEOFLAGUSE) /* If geometry is wanted */ C_geoLoad (&geo, C_filepntrgeoinp); /* Read graph geometry */ C_mapInit (&map, &grafdat); /* Create mapping structure */ C_mapLoad (&map, C_filepntrmapinp); /* Read result mapping */ outDraw (&grafdat, &geo, &map, C_filepntrdatout); /* Build and write the output */ fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ C_mapExit (&map); /* Free data structures */ C_geoExit (&geo); SCOTCH_graphExit (&grafdat.grafdat); return (EXIT_SUCCESS); } /***********************************/ /* */ /* These routines handle geometry. */ /* */ /***********************************/ /* This routine parses the source graph ** option string. ** It returns: ** - 0 : if string successfully scanned. ** - 1 : if invalid options ** - 2 : if invalid option arguments. ** - 3 : if syntax error in string. */ int C_geoParse ( const char * const string) { const char * charptr; for (charptr = string; ; charptr ++) { switch (*charptr) { case 'N' : /* Do not read geometry data */ case 'n' : C_geoFlag &= ~C_GEOFLAGUSE; break; case 'P' : /* Permute Y and Z */ case 'p' : C_geoFlag |= C_GEOFLAGPERMUT; break; case 'R' : /* If want to rotate */ case 'r' : C_geoFlag |= C_GEOFLAGROTATE; break; case '\0' : return (0); default : return (1); } } } /* This routine creates a geometry with ** respect to a given source graph. ** It returns: ** - VOID : in all cases. */ void C_geoInit ( C_Geometry * const geomptr, const C_Graph * const grafptr) { geomptr->grafptr = grafptr; geomptr->coortab = NULL; } /* This routine deletes a geometry. ** It returns: ** - VOID : in all cases. */ void C_geoExit ( C_Geometry * const geomptr) { if (geomptr->coortab != NULL) /* If there is a geometry array */ memFree (geomptr->coortab); /* Free it */ } /* This routine loads a mapping. ** It returns: ** - 0 : on success. ** - !0 : on error. */ /* This is the comparison function used by the quicksort algorithm, to sort by increasing labels. */ static int C_geoLoad2 ( const C_VertSort * const ver0ptr, const C_VertSort * const ver1ptr) { return ((ver0ptr->lablval > ver1ptr->lablval) ? 1 : -1); } /** This is the loading routine. **/ int C_geoLoad ( C_Geometry * const geomptr, FILE * const fileptr) { C_VertSort * restrict lablsorttab; /* Pointer to graph labels sorting array */ SCOTCH_Num lablvertnum; /* Number of current vertex in label array */ C_GeoVert * restrict geomcoortab; /* Pointer to geometric data read from file */ C_VertSort * geomsorttab; /* Pointer to geometric data sorting array */ int geomflagval; /* Flag set if geometric data sorted by label */ int geomtypeval; /* Type of geometry file */ SCOTCH_Num geomvertnbr; /* Number of geometric coordinates in file */ SCOTCH_Num geomvertnum; /* Number of current vertex in geometry array */ int o; const SCOTCH_Num baseval = geomptr->grafptr->baseval; const SCOTCH_Num vertnbr = geomptr->grafptr->vertnbr; const SCOTCH_Num * restrict const vlbltab = geomptr->grafptr->vlbltab; if ((geomptr->coortab == NULL) && /* Allocate geometry if necessary */ ((geomptr->coortab = (C_GeoVert *) memAlloc (vertnbr * sizeof (C_GeoVert))) == NULL)) { errorPrint ("C_geoLoad: out of memory (1)"); return (1); } if ((fscanf (fileptr, "%d" SCOTCH_NUMSTRING, /* Read type and number of geometry items */ &geomtypeval, &geomvertnbr) != 2) || (geomtypeval < 1) || (geomtypeval > 3) || (geomvertnbr < 1)) { errorPrint ("C_geoLoad: bad input (1)"); return (1); } if (memAllocGroup ((void **) (void *) &geomcoortab, (size_t) (geomvertnbr * sizeof (C_GeoVert)), /* Temporary array for geometry */ &geomsorttab, (size_t) (geomvertnbr * sizeof (C_VertSort)), &lablsorttab, (size_t) (vertnbr * sizeof (C_VertSort)), NULL) == NULL) { errorPrint ("C_geoLoad: out of memory (2)"); return (1); } o = 0; geomflagval = 1; /* Assume geometry data sorted */ switch (geomtypeval) { case 1 : /* Load 2D coordinates array */ for (geomvertnum = 0; (geomvertnum < geomvertnbr) && (o == 0); geomvertnum ++) { SCOTCH_Num lablval; if (fscanf (fileptr, SCOTCH_NUMSTRING "%lf", &lablval, &geomcoortab[geomvertnum].x) != 2) o = 1; geomcoortab[geomvertnum].y = /* No Y and Z coordinates */ geomcoortab[geomvertnum].z = 0.0; geomsorttab[geomvertnum].lablval = lablval; geomsorttab[geomvertnum].vertnum = geomvertnum; if (C_geoFlag & C_GEOFLAGROTATE) { /* Rotate picture if necessary */ double t; /* Temporary swap variable */ t = geomcoortab[geomvertnum].y; geomcoortab[geomvertnum].y = geomcoortab[geomvertnum].x; geomcoortab[geomvertnum].x = - t; } if ((geomvertnum > 0) && /* Check if geometry data sorted */ (geomsorttab[geomvertnum].lablval < geomsorttab[geomvertnum - 1].lablval)) geomflagval = 0; /* Geometry data not sorted */ } break; case 2 : /* Load 2D coordinates array */ for (geomvertnum = 0; (geomvertnum < geomvertnbr) && (o == 0); geomvertnum ++) { SCOTCH_Num lablval; if (fscanf (fileptr, SCOTCH_NUMSTRING "%lf%lf", &lablval, &geomcoortab[geomvertnum].x, &geomcoortab[geomvertnum].y) != 3) o = 1; geomcoortab[geomvertnum].z = 0.0; /* No Z coordinate */ geomsorttab[geomvertnum].lablval = lablval; geomsorttab[geomvertnum].vertnum = geomvertnum; if (C_geoFlag & C_GEOFLAGROTATE) { /* Rotate picture if necessary */ double t; /* Temporary swap variable */ t = geomcoortab[geomvertnum].y; geomcoortab[geomvertnum].y = geomcoortab[geomvertnum].x; geomcoortab[geomvertnum].x = - t; } if ((geomvertnum > 0) && /* Check if geometry data sorted */ (geomsorttab[geomvertnum].lablval < geomsorttab[geomvertnum - 1].lablval)) geomflagval = 0; /* Geometry data are not sorted */ } break; case 3 : /* Load 3D coordinates array */ for (geomvertnum = 0; (geomvertnum < geomvertnbr) && (o == 0); geomvertnum ++) { SCOTCH_Num lablval; if (fscanf (fileptr, SCOTCH_NUMSTRING "%lf%lf%lf", &lablval, &geomcoortab[geomvertnum].x, &geomcoortab[geomvertnum].y, &geomcoortab[geomvertnum].z) != 4) o = 1; geomsorttab[geomvertnum].lablval = lablval; geomsorttab[geomvertnum].vertnum = geomvertnum; if (C_geoFlag & C_GEOFLAGPERMUT) { /* Rotate picture if necessary */ double t; /* Temporary swap variable */ t = geomcoortab[geomvertnum].z; geomcoortab[geomvertnum].z = geomcoortab[geomvertnum].y; geomcoortab[geomvertnum].y = t; } if ((geomvertnum > 0) && /* Check if geometry data sorted */ (geomsorttab[geomvertnum].lablval < geomsorttab[geomvertnum - 1].lablval)) geomflagval = 0; /* Geometry data not sorted */ } break; default : errorPrint ("C_geoLoad: invalid geometry type (%d)", geomtypeval); memFree (geomcoortab); /* Free group leader */ return (1); } if (o != 0) { errorPrint ("C_geoLoad: bad input (2)"); memFree (geomcoortab); /* Free group leader */ return (1); } if (geomflagval != 1) /* If geometry data not sorted */ qsort ((char *) geomsorttab, geomvertnbr, /* Sort sort area by ascending labels */ sizeof (C_VertSort), (int (*) (const void *, const void *)) C_geoLoad2); for (geomvertnum = 1; geomvertnum < geomvertnbr; geomvertnum ++) { /* Check geometric data integrity */ if (geomsorttab[geomvertnum].lablval == geomsorttab[geomvertnum - 1].lablval) { errorPrint ("C_geoLoad: duplicate vertex label"); memFree (geomcoortab); /* Free group leader */ return (1); } } if (vlbltab != NULL) { /* If graph has vertex labels */ SCOTCH_Num lablvertnum; int lablflagval; /* Flag set if graph data sorted by label */ lablflagval = 1; /* Assume graph data sorted */ for (lablvertnum = 0; lablvertnum < vertnbr; lablvertnum ++) { lablsorttab[lablvertnum].lablval = vlbltab[lablvertnum]; lablsorttab[lablvertnum].vertnum = lablvertnum; /* Un-based index for matching */ if ((lablvertnum > 0) && /* Check if graph data sorted */ (lablsorttab[lablvertnum].lablval < lablsorttab[lablvertnum - 1].lablval)) lablflagval = 0; /* Graph data not sorted */ } if (lablflagval != 1) /* If graph data not sorted */ qsort ((char *) lablsorttab, vertnbr, /* Sort sort area by ascending labels */ sizeof (C_VertSort), (int (*) (const void *, const void *)) C_geoLoad2); } else { /* Graph does not have vertex labels */ for (lablvertnum = 0; lablvertnum < vertnbr; lablvertnum ++) { lablsorttab[lablvertnum].lablval = lablvertnum + baseval; lablsorttab[lablvertnum].vertnum = lablvertnum; /* Un-based index for matching */ } } for (lablvertnum = geomvertnum = 0; lablvertnum < vertnbr; lablvertnum ++) { /* For all vertices in graph */ while ((geomvertnum < geomvertnbr) && (geomsorttab[geomvertnum].lablval < lablsorttab[lablvertnum].lablval)) geomvertnum ++; /* Search geometry vertex with same label */ if ((geomvertnum >= geomvertnbr) || /* If label does not exist */ (geomsorttab[geomvertnum].lablval > lablsorttab[lablvertnum].lablval)) { errorPrint ("C_geoLoad: vertex geometry data not found for label '" SCOTCH_NUMSTRING "'", lablsorttab[lablvertnum].lablval); memFree (geomcoortab); /* Free group leader */ return (1); } geomptr->coortab[lablsorttab[lablvertnum].vertnum] = geomcoortab[geomsorttab[geomvertnum ++].vertnum]; } memFree (geomcoortab); /* Free group leader */ return (0); } /***********************************/ /* */ /* These routines handle mappings. */ /* */ /***********************************/ /* This routine creates a mapping with ** respect to a given source graph. ** It returns: ** - VOID : in all cases. */ void C_mapInit ( C_Mapping * const mappptr, const C_Graph * const grafptr) { mappptr->grafptr = grafptr; mappptr->labltab = NULL; } /* This routine deletes a mapping. ** It returns: ** - VOID : in all cases. */ void C_mapExit ( C_Mapping * const mappptr) { if (mappptr->labltab != NULL) /* If there is a domain array */ memFree (mappptr->labltab); /* Free it */ } /* This routine loads a mapping. ** It returns: ** - 0 : on success. ** - !0 : on error. */ int C_mapLoad ( C_Mapping * const mappptr, FILE * const fileptr) { C_VertSort * restrict lablsorttab; /* Pointer to graph sorting array */ SCOTCH_Num lablvertnum; /* Number of current vertex in label array */ SCOTCH_Num * restrict mappparttab; /* Pointer to mapping data read from file */ C_VertSort * restrict mappsorttab; /* Pointer to mapping data sorting array */ int mappflagval; /* Flag set if mapping data sorted by label */ SCOTCH_Num mappvertnbr; /* Number of mapping pairs in file */ SCOTCH_Num mappvertnum; /* Number of current vertex in mapping array */ const SCOTCH_Num baseval = mappptr->grafptr->baseval; const SCOTCH_Num vertnbr = mappptr->grafptr->vertnbr; const SCOTCH_Num * restrict const vlbltab = mappptr->grafptr->vlbltab; if ((mappptr->labltab == NULL) && /* Allocate array if necessary */ ((mappptr->labltab = (SCOTCH_Num *) memAlloc (vertnbr * sizeof (SCOTCH_Num))) == NULL)) { errorPrint ("C_mapLoad: out of memory (1)"); return (1); } memset (mappptr->labltab, ~0, vertnbr * sizeof (SCOTCH_Num)); /* Pre-initialize mapping */ if (fileptr == NULL) /* If stream is invalid */ return (0); if ((fscanf (fileptr, SCOTCH_NUMSTRING, /* Read number of mapping pairs */ &mappvertnbr) != 1) || (mappvertnbr < 1)) { errorPrint ("C_mapLoad: bad input (1)"); return (1); } if (memAllocGroup ((void **) (void *) &mappparttab, (size_t) (mappvertnbr * sizeof (SCOTCH_Num)), &mappsorttab, (size_t) (mappvertnbr * sizeof (C_VertSort)), &lablsorttab, (size_t) (vertnbr * sizeof (C_VertSort)), NULL) == NULL) { errorPrint ("C_mapLoad: out of memory (2)"); return (1); } mappflagval = 1; /* Assume mapping data sorted */ for (mappvertnum = 0; mappvertnum < mappvertnbr; mappvertnum ++) { if (fscanf (fileptr, SCOTCH_NUMSTRING SCOTCH_NUMSTRING, &mappsorttab[mappvertnum].lablval, &mappparttab[mappvertnum]) != 2) { errorPrint ("C_mapLoad: bad input (2)"); memFree (mappparttab); /* Free group leader */ return (1); } mappsorttab[mappvertnum].vertnum = mappvertnum; if ((mappvertnum > 0) && /* Check if mapping data sorted */ (mappsorttab[mappvertnum].lablval < mappsorttab[mappvertnum - 1].lablval)) mappflagval = 0; /* Mapping data not sorted */ } if (mappflagval != 1) /* If mapping data not sorted */ qsort ((char *) mappsorttab, mappvertnbr, /* Sort sort area by ascending labels */ sizeof (C_VertSort), (int (*) (const void *, const void *)) C_geoLoad2); for (mappvertnum = 1; mappvertnum < mappvertnbr; mappvertnum ++) { /* Check mapping data integrity */ if (mappsorttab[mappvertnum].lablval == mappsorttab[mappvertnum - 1].lablval) { errorPrint ("C_mapLoad: duplicate vertex label"); memFree (mappparttab); /* Free group leader */ return (1); } } if (vlbltab != NULL) { /* If graph has vertex labels */ int lablflagval; /* Flag set if graph data sorted by label */ lablflagval = 1; /* Assume graph data sorted */ for (lablvertnum = 0; lablvertnum < vertnbr; lablvertnum ++) { lablsorttab[lablvertnum].lablval = vlbltab[lablvertnum]; lablsorttab[lablvertnum].vertnum = lablvertnum; /* Un-based index for matching */ if ((lablvertnum > 0) && /* Check if graph data sorted */ (lablsorttab[lablvertnum].lablval < lablsorttab[lablvertnum - 1].lablval)) lablflagval = 0; /* Graph data not sorted */ } if (lablflagval != 1) /* If graph data not sorted */ qsort ((char *) lablsorttab, vertnbr, /* Sort sort area by ascending labels */ sizeof (C_VertSort), (int (*) (const void *, const void *)) C_geoLoad2); } else { /* Graph does not have vertex labels */ for (lablvertnum = 0; lablvertnum < vertnbr; lablvertnum ++) { lablsorttab[lablvertnum].lablval = lablvertnum + baseval; lablsorttab[lablvertnum].vertnum = lablvertnum; /* Un-based index for matching */ } } for (lablvertnum = mappvertnum = 0; lablvertnum < vertnbr; lablvertnum ++) { /* For all vertices in graph */ while ((mappvertnum < mappvertnbr) && (mappsorttab[mappvertnum].lablval < lablsorttab[lablvertnum].lablval)) mappvertnum ++; /* Search geometry vertex with same label */ if ((mappvertnum >= mappvertnbr) || /* If label does not exist */ (mappsorttab[mappvertnum].lablval > lablsorttab[lablvertnum].lablval)) continue; /* This vertex has no related mapping data */ mappptr->labltab[lablsorttab[lablvertnum].vertnum] = mappparttab[mappsorttab[mappvertnum ++].vertnum]; } memFree (mappparttab); /* Free group leader */ return (0); } /**************************************/ /* */ /* The option string parsing routine. */ /* */ /**************************************/ /* This routine parses an option string. ** It returns: ** - 0 : if string successfully scanned. ** - 1 : if invalid code name. ** - 2 : if invalid arguments for the code. ** - 3 : if syntax error in string. */ int C_parse ( const C_ParseCode * const codetab, /* Pointer to the code array */ const C_ParseArg * const arguptr, /* Pointer to the code argument array */ int * const codeptr, /* Pointer to the code value to set */ char * const strgptr) /* Pointer to the string to parse */ { int codeval; /* Code found */ size_t codesiz; /* Code name length */ char argubuf[128]; /* Buffer for argument scanning */ size_t argusiz; /* Length of the current argument */ char * argbptr; /* Pointer to beginning of argument */ char * argeptr; /* Pointer to end of argument */ char * argqptr; /* Position of the '=' character */ int codenum; codeval = -1; codesiz = 0; /* No code recognized yet */ for (codenum = 0; codetab[codenum].nameptr != NULL; codenum ++) { /* For all code names */ size_t codetmp; codetmp = strlen (codetab[codenum].nameptr); if ((strncasecmp (strgptr, codetab[codenum].nameptr, codetmp) == 0) && /* Find longest matching code name */ (codetmp > codesiz)) { codeval = codetab[codenum].codeval; codesiz = codetmp; } } if (codesiz == 0) /* If no code recognized */ return (1); /* Return error value */ *codeptr = codeval; /* Set code value */ argbptr = strgptr + codesiz; /* Point to the end of the code name */ if (*argbptr == '{') { /* If there are arguments */ argbptr ++; /* Point to argument beginning */ do { /* For all arguments */ int argunum; int flagval; argeptr = strpbrk (argbptr, ",}\0"); /* Search for the argument end */ if (*argeptr == '\0') /* If there is no end delimiter */ return (3); /* Return syntax error value */ argusiz = ((argeptr - argbptr) < 127) /* Get argument bounded length */ ? (argeptr - argbptr) : 127; strncpy (argubuf, argbptr, argusiz); /* Copy argument to the buffer */ argubuf[argusiz] = '\0'; /* Mark the end of the argument */ argqptr = strpbrk (argubuf, "="); /* Search for the '=' character */ if (argqptr != NULL) /* If it exists */ *argqptr ++ = '\0'; /* Turn it into a separating null */ flagval = 0; /* No argument found yet */ for (argunum = 0; arguptr[argunum].nameptr != NULL; argunum ++) { /* Scan arguments */ if ((arguptr[argunum].codeval == codeval) && /* If argument name found */ (strcmp (argubuf, arguptr[argunum].nameptr) == 0)) { flagval = 1; /* Argument found */ break; } } if (flagval != 1) /* If invalid argument */ return (2); /* Return the proper value */ if (arguptr[argunum].formptr != NULL) { /* If there is a value to read */ if (argqptr == NULL) /* If none has been given however */ return (2); /* Return the error value */ if (sscanf (argqptr, /* Try to read the argument value */ arguptr[argunum].formptr, arguptr[argunum].avalptr) != 1) return (2); /* Return if error */ } else { /* If no value needed */ if (argqptr != NULL) /* If there is one however */ return (2); /* Return the error code */ *((char *) arguptr[argunum].avalptr) = argubuf[0]; /* Copy first argument char */ } argbptr = argeptr + 1; /* Skip the processed argument */ } while (*argeptr != '}'); /* Loop as long as there are arguments */ } return ((*argbptr == '\0') ? 0 : 3); /* Check if no extraneous characters */ } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gout_c.h000066400000000000000000000206341514310134000246640ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2024,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gout_c.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a result viewer. **/ /** This module contains the data declara- **/ /** tions for the main module. **/ /** **/ /** DATES : # Version 2.0 : from : 06 oct 1994 **/ /** to : 01 nov 1994 **/ /** # Version 3.0 : from : 14 jul 1995 **/ /** to : 02 oct 1995 **/ /** # Version 3.2 : from : 02 dec 1996 **/ /** to : 05 jun 1998 **/ /** # Version 3.3 : from : 01 jun 1999 **/ /** to : 01 jun 1999 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 11 dec 2001 **/ /** # Version 5.0 : from : 13 dec 2007 **/ /** to : 15 mar 2008 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 7.0 : from : 10 sep 2024 **/ /** to : 13 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 4 /* Number of files in list */ #define C_FILEARGNBR 4 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph file name */ #define C_filenamegeoinp fileBlockName (C_fileTab, 1) /* Source graph geometry file name */ #define C_filenamemapinp fileBlockName (C_fileTab, 2) /* Mapping result file name */ #define C_filenamedatout fileBlockName (C_fileTab, 3) /* Output data file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrgeoinp fileBlockFile (C_fileTab, 1) /* Source graph geometry file */ #define C_filepntrmapinp fileBlockFile (C_fileTab, 2) /* Mapping result input file */ #define C_filepntrdatout fileBlockFile (C_fileTab, 3) /* Data output file */ #define C_filemodemapinp fileBlockMode (C_fileTab, 2) /* Mapping result mode */ /*+ Dimension definitions. +*/ #define x c[0] #define y c[1] #define z c[2] /*+ Geometry flags. +*/ #define C_GEOFLAGDEFAULT 0x0001 /* Default geometry flag */ #define C_GEOFLAGUSE 0x0001 /* Use geometry */ #define C_GEOFLAGROTATE 0x0002 /* Rotate the picture by 90 degrees */ #define C_GEOFLAGPERMUT 0x0004 /* Permute Y and Z dimensions */ /* ** The type and structure definitions. */ /*+ This structure defines a source graph. +*/ typedef struct C_Graph_ { SCOTCH_Graph grafdat; /*+ Source graph data +*/ SCOTCH_Num baseval; /*+ Base value +*/ SCOTCH_Num vertnbr; /*+ Number of vertices +*/ SCOTCH_Num * verttax; /*+ Vertex array +*/ SCOTCH_Num * vendtax; /*+ Vertex end array +*/ SCOTCH_Num * vlbltab; /*+ Vertex label array +*/ SCOTCH_Num edgenbr; /*+ Number of edges +*/ SCOTCH_Num * edgetax; /*+ Edge array +*/ } C_Graph; /*+ This structure defines a geometrical vertex. +*/ typedef struct C_GeoVert_ { double c[3]; /*+ Vertex coordinates (x,y,z) +*/ } C_GeoVert; /*+ This structure defines a geometrical mapping which contains the positions of the graph vertices. +*/ typedef struct C_Geometry_ { const C_Graph * grafptr; /*+ Pointer to source graph +*/ C_GeoVert * coortab; /*+ Pointer to coordinates array +*/ } C_Geometry; /*+ This structure defines a domain label mapping, which contains the reference to the mapping source graph. +*/ typedef struct C_Mapping_ { const C_Graph * grafptr; /*+ Pointer to source graph +*/ SCOTCH_Num * labltab; /*+ Pointer to label array +*/ } C_Mapping; /*+ The sort structure, used to sort graph vertices by label. +*/ typedef struct C_VertSort_ { SCOTCH_Num lablval; /*+ Vertex label +*/ SCOTCH_Num vertnum; /*+ Vertex number +*/ } C_VertSort; /*+ This structure is the code name array entries. +*/ typedef struct C_ParseCode_ { int codeval; /*+ Code value +*/ char * nameptr; /*+ Code name +*/ } C_ParseCode; /* This structure defines the code argument array entries. */ typedef struct C_ParseArg_ { const char * nameptr; /*+ Name of the argument +*/ int codeval; /*+ Code value +*/ const char * formptr; /*+ scanf-like format; NULL means char, no value +*/ const void * avalptr; /*+ Pointer to the argument value location +*/ } C_ParseArg; /* ** The global data declarations. */ extern File C_fileTab[C_FILENBR]; /*+ File array +*/ /* ** The function prototypes. */ int C_geoParse (const char * const); void C_geoInit (C_Geometry * const, const C_Graph * const); void C_geoExit (C_Geometry * const); int C_geoLoad (C_Geometry * const, FILE * const); void C_mapInit (C_Mapping * const, const C_Graph * const); void C_mapExit (C_Mapping * const); int C_mapLoad (C_Mapping * const, FILE * const); int C_parse (const C_ParseCode * const, const C_ParseArg * const, int * const, char * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gout_o.c000066400000000000000000001603621514310134000246760ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2011,2012,2018,2021,2023,2025 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gout_o.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a result viewer. **/ /** This module contains output routines. **/ /** **/ /** DATES : # Version 2.0 : from : 07 oct 1994 **/ /** to : 23 dec 1994 **/ /** # Version 3.0 : from : 14 jul 1995 **/ /** to : 03 oct 1995 **/ /** # Version 3.1 : from : 28 mar 1996 **/ /** to : 03 jun 1996 **/ /** # Version 3.2 : from : 02 dec 1996 **/ /** to : 05 jun 1998 **/ /** # Version 3.3 : from : 29 may 1999 **/ /** to : 03 jun 1999 **/ /** # Version 4.0 : from : 11 dec 2001 **/ /** to : 11 dec 2001 **/ /** # Version 5.0 : from : 25 may 2007 **/ /** to : 18 jun 2007 **/ /** # Version 5.1 : from : 25 oct 2007 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 21 may 2018 **/ /** # Version 6.1 : from : 04 apr 2021 **/ /** to : 28 aug 2021 **/ /** # Version 7.0 : from : 31 aug 2021 **/ /** to : 13 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines and includes */ #include "module.h" #include "common.h" #include "scotch.h" #include "gout_c.h" #include "gout_o.h" /* ** The static and global variables */ static O_OutParam O_outParam = { /* Parameter structure */ O_OUTTYPEVTKMESH, /* Default output type */ { 'c', 'v' }, /* OpenInventor mesh defaults */ { 'f' }, /* PostScript matrix defaults */ { 'f', 'g', /* PostScript mesh defaults */ 'v', 'd', 's', { { 0.0, 0.0 } }, { { 1.0, 1.0 } } }, { 'c', 'v', 'a' }, /* Tulip graph defaults */ { 'v' } }; /* VTK mesh defaults */ static C_ParseCode O_outList[] = { /* Output code list */ { O_OUTTYPEINVMESH, "i" }, { O_OUTTYPEPOSMATR, "m" }, { O_OUTTYPEPOSMESH, "p" }, { O_OUTTYPETULMESH, "t" }, { O_OUTTYPEVTKMESH, "v" }, { O_OUTTYPENBR, NULL } }; static C_ParseArg O_outArg[] = { /* Output type argument list */ { "c", O_OUTTYPEINVMESH, NULL, &O_outParam.InvMesh.coloval }, { "g", O_OUTTYPEINVMESH, NULL, &O_outParam.InvMesh.coloval }, { "r", O_OUTTYPEINVMESH, NULL, &O_outParam.InvMesh.edgeval }, { "v", O_OUTTYPEINVMESH, NULL, &O_outParam.InvMesh.edgeval }, { "e", O_OUTTYPEPOSMATR, NULL, &O_outParam.PosMatr.typeval }, { "f", O_OUTTYPEPOSMATR, NULL, &O_outParam.PosMatr.typeval }, { "c", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.coloval }, { "g", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.coloval }, { "e", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.typeval }, { "f", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.typeval }, { "l", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.clipval }, { "s", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.clipval }, { "a", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.diskval }, { "d", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.diskval }, { "r", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.edgeval }, { "v", O_OUTTYPEPOSMESH, NULL, &O_outParam.PosMesh.edgeval }, { "x", O_OUTTYPEPOSMESH, "%lf", &O_outParam.PosMesh.pminval.x }, { "X", O_OUTTYPEPOSMESH, "%lf", &O_outParam.PosMesh.pmaxval.x }, { "y", O_OUTTYPEPOSMESH, "%lf", &O_outParam.PosMesh.pminval.y }, { "Y", O_OUTTYPEPOSMESH, "%lf", &O_outParam.PosMesh.pmaxval.y }, { "b", O_OUTTYPETULMESH, NULL, &O_outParam.TulMesh.coloval }, { "c", O_OUTTYPETULMESH, NULL, &O_outParam.TulMesh.coloval }, { "r", O_OUTTYPETULMESH, NULL, &O_outParam.TulMesh.edgeval }, { "v", O_OUTTYPETULMESH, NULL, &O_outParam.TulMesh.edgeval }, { "a", O_OUTTYPETULMESH, NULL, &O_outParam.TulMesh.diskval }, { "d", O_OUTTYPETULMESH, NULL, &O_outParam.TulMesh.diskval }, { "r", O_OUTTYPEVTKMESH, NULL, &O_outParam.VtkMesh.edgeval }, { "v", O_OUTTYPEVTKMESH, NULL, &O_outParam.VtkMesh.edgeval }, { NULL, O_OUTTYPENBR, "", NULL } }; static double outcolorcoltab[16][3] = { /* Color list */ { 1.00, 0.00, 0.00 }, /* Red */ { 0.00, 1.00, 0.00 }, /* Green */ { 1.00, 1.00, 0.00 }, /* Yellow */ { 0.00, 0.00, 1.00 }, /* Blue */ { 1.00, 0.00, 1.00 }, /* Magenta */ { 0.00, 1.00, 1.00 }, /* Cyan */ { 1.00, 0.50, 0.20 }, /* Orange */ { 0.30, 0.55, 0.00 }, /* Olive */ { 0.72, 0.47, 0.47 }, /* Dark pink */ { 0.33, 0.33, 0.81 }, /* Sea blue */ { 1.00, 0.63, 0.63 }, /* Pink */ { 0.62, 0.44, 0.65 }, /* Violet */ { 0.60, 0.80, 0.70 }, /* Pale green */ { 0.47, 0.20, 0.00 }, /* Brown */ { 0.00, 0.68, 0.68 }, /* Turquoise */ { 0.81, 0.00, 0.40 } }; /* Purple */ static double outcolorblwtab[8][3] = { /* Grey list */ { 1.00, 1.00, 1.00 }, { 0.20, 0.20, 0.20 }, { 0.50, 0.50, 0.50 }, { 0.80, 0.80, 0.80 }, { 0.30, 0.30, 0.30 }, { 0.90, 0.90, 0.90 }, { 0.40, 0.40, 0.40 }, { 0.70, 0.70, 0.70 } }; /****************************************/ /* */ /* This is the color selection routine. */ /* */ /****************************************/ void outColorBlw ( const SCOTCH_Num labl, double color[]) { if (labl == (-1)) { color[0] = color[1] = color[2] = 1.0L; } else { color[0] = (double) outcolorblwtab[labl % 8][0]; color[1] = (double) outcolorblwtab[labl % 8][1]; color[2] = (double) outcolorblwtab[labl % 8][2]; } } void outColorColor ( const SCOTCH_Num labl, double color[]) { if (labl == (-1)) { color[0] = color[1] = color[2] = 1.0L; } else { color[0] = (double) outcolorcoltab[labl % 16][0]; color[1] = (double) outcolorcoltab[labl % 16][1]; color[2] = (double) outcolorcoltab[labl % 16][2]; } } /****************************/ /* */ /* The main output routine. */ /* */ /****************************/ /* This routine parses the output ** option string. ** It returns: ** - 0 : if string successfully scanned. ** - 1 : if invalid options ** - 2 : if invalid option arguments. ** - 3 : if syntax error in string. */ int outDrawParse ( char * const strgptr) { return (C_parse (O_outList, O_outArg, (int * const) (void *) &O_outParam.typeval, strgptr)); } /* This routine is the generic output call. ** It returns: ** - VOID : in all cases. */ void outDraw ( const C_Graph * const grafptr, /* Graph structure */ const C_Geometry * const geomptr, /* Graph geometry */ const C_Mapping * const mappptr, /* Result mapping */ FILE * const fileptr) /* Output stream */ { switch (O_outParam.typeval) { case O_OUTTYPEINVMESH : /* Mesh OpenInventor output type */ outDrawInvMesh (grafptr, geomptr, mappptr, fileptr); break; case O_OUTTYPEPOSMATR : /* Matrix PostScript output type */ outDrawPosMatr (grafptr, geomptr, mappptr, fileptr); break; case O_OUTTYPEPOSMESH : /* Mesh PostScript output type */ outDrawPosMesh (grafptr, geomptr, mappptr, fileptr); break; case O_OUTTYPETULMESH : /* Mesh Tulip output type */ outDrawTulMesh (grafptr, geomptr, mappptr, fileptr); break; case O_OUTTYPEVTKMESH : /* Mesh Tulip output type */ outDrawVtkMesh (grafptr, geomptr, mappptr, fileptr); break; default : errorPrint ("outDraw: invalid output method '%d'", O_outParam.typeval); } } /****************************************/ /* */ /* This is the Inventor output routine. */ /* */ /****************************************/ int outDrawInvMesh ( const C_Graph * const grafptr, /* Graph structure, sorted by vertex index */ const C_Geometry * const geomptr, /* Graph geometry, sorted by vertex label */ const C_Mapping * const mappptr, /* Result mapping, sorted by vertex label */ FILE * const fileptr) /* Output stream */ { void (* colfptr) (const SCOTCH_Num, double[]); /* Color routine */ O_InvMeshPath * restrict pathtax; /* Array of path building data */ SCOTCH_Num * restrict indxtab; /* Array of vertex indices */ SCOTCH_Num indxnbr; /* Number of indices */ SCOTCH_Num indxnum; time_t timedat; /* Creation time */ double colotab[3]; /* Vertex color */ SCOTCH_Num vertnum; const SCOTCH_Num baseval = grafptr->baseval; const SCOTCH_Num vertnnd = grafptr->vertnbr + grafptr->baseval; const SCOTCH_Num * restrict const verttax = grafptr->verttax; const SCOTCH_Num * restrict const vendtax = grafptr->vendtax; const SCOTCH_Num * restrict const edgetax = grafptr->edgetax; const C_GeoVert * restrict const coortax = geomptr->coortab - baseval; const SCOTCH_Num * restrict const parttax = mappptr->labltab - baseval; if (geomptr->coortab == NULL) { errorPrint ("outDrawInvMesh: geometry not provided"); return (1); } time (&timedat); /* Get current time */ colfptr = (O_outParam.InvMesh.coloval == 'c') ? outColorColor : outColorBlw; /* Select color output routine */ if (memAllocGroup ((void **) (void *) &indxtab, (size_t) ((grafptr->edgenbr / 2) * 3 * sizeof (SCOTCH_Num)), &pathtax, (size_t) (grafptr->vertnbr * sizeof (O_InvMeshPath)), NULL) == NULL) { errorPrint ("outDrawInvMesh: out of memory"); return (1); } pathtax -= baseval; /* Base path array */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* For all vertices */ SCOTCH_Num pathnbr; SCOTCH_Num partval; SCOTCH_Num edgennd; SCOTCH_Num edgenum; partval = parttax[vertnum]; edgenum = verttax[vertnum]; pathtax[vertnum].edgenum = edgenum; /* Record start exit index */ pathnbr = 0; /* No output path yet */ for (edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; vertend = edgetax[edgenum]; if ((vertend > vertnum) && /* If end vertex can be a next hop */ ((O_outParam.InvMesh.edgeval != 'r') || /* And this edge can be drawn */ (parttax[vertend] == partval))) pathnbr ++; /* One more path to vertices of higher indices */ } pathtax[vertnum].pathnbr = pathnbr; /* Record number of output paths */ } indxnbr = 0; /* No indices yet */ for (vertnum = baseval; vertnum < vertnnd; ) { /* For all vertices */ SCOTCH_Num verttmp; if (pathtax[vertnum].pathnbr == 0) { /* If no output path for this vertex */ vertnum ++; /* Skip to next vertex */ continue; } verttmp = vertnum; /* Begin with this vertex */ indxtab[indxnbr ++] = verttmp; /* Add it to the current path */ do { /* Build path from current vertex */ SCOTCH_Num parttmp; SCOTCH_Num vertend; SCOTCH_Num edgennd; SCOTCH_Num edgetmp; parttmp = parttax[verttmp]; edgetmp = pathtax[verttmp].edgenum; edgennd = vendtax[verttmp]; do { /* Search for first valid output vertex */ vertend = edgetax[edgetmp]; if ((vertend > verttmp) && /* If end vertex can be next hop */ ((O_outParam.InvMesh.edgeval != 'r') || /* And this edge can be drawn */ (parttax[vertend] == parttmp))) break; } while (++ edgetmp < edgennd); pathtax[verttmp].pathnbr --; /* One less output path remaining */ pathtax[verttmp].edgenum = edgetmp + 1; /* Search from the next position */ verttmp = vertend; /* Go-on from end vertex */ indxtab[indxnbr ++] = verttmp; /* Add end vertex to current path */ } while (pathtax[verttmp].pathnbr > 0); /* As long as there is an exit route */ indxtab[indxnbr ++] = -1; /* Mark end of current path */ } fprintf (fileptr, "#Inventor V2.0 ascii\n"); /* Write header */ fprintf (fileptr, "#Title: %s %s %s\n", C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp); fprintf (fileptr, "#Creator: Scotch/gout\n"); fprintf (fileptr, "#CreationDate: %s", ctime (&timedat)); if (indxnbr == 0) /* If nothing to write */ return (0); fprintf (fileptr, "Separator {\n"); fprintf (fileptr, " LightModel {\n model\t\tBASE_COLOR\n }\n"); fprintf (fileptr, " DrawStyle {\n style\t\tLINES\n }\n"); fprintf (fileptr, " MaterialBinding {\n value\t\tPER_VERTEX\n }\n"); fprintf (fileptr, " Coordinate3 {\n point [\n\t%g\t%g\t%g", /* Write vertex coordinates */ coortax[baseval].x, coortax[baseval].y, coortax[baseval].z); for (vertnum = baseval + 1; vertnum < vertnnd; vertnum ++) fprintf (fileptr, ",\n\t%g\t%g\t%g", coortax[vertnum].x, coortax[vertnum].y, coortax[vertnum].z); fprintf (fileptr, " ]\n }\n"); fprintf (fileptr, " BaseColor {\n rgb ["); /* Write color vector */ for (indxnum = 0; indxnum < indxnbr - 2; indxnum ++) { if (indxtab[indxnum] != -1) { colfptr (parttax[indxtab[indxnum]], colotab); fprintf (fileptr, "\n\t%g\t%g\t%g,", (double) colotab[0], (double) colotab[1], (double) colotab[2]); } } colfptr (parttax[indxtab[indxnbr - 2]], colotab); fprintf (fileptr, "\n\t%g\t%g\t%g ]\n }\n", (double) colotab[0], (double) colotab[1], (double) colotab[2]); fprintf (fileptr, " IndexedLineSet {\n coordIndex ["); /* Write set of lines */ for (indxnum = 0; indxnum < indxnbr - 1; indxnum ++) { if ((indxnum % 8) == 0) fprintf (fileptr, "\n"); fprintf (fileptr, "\t" SCOTCH_NUMSTRING ",", indxtab[indxnum] - baseval); /* Un-base vertex indices in paths */ } if (((indxnbr - 1) % 8) == 0) fprintf (fileptr, "\n"); fprintf (fileptr, "\t-1 ]\n }\n"); fprintf (fileptr, "}\n"); /* Write end of separator */ memFree (indxtab); /* Free group leader */ return (0); } /*************************************************/ /* */ /* This is the PostScript matrix output routine. */ /* */ /*************************************************/ int outDrawPosMatr ( const C_Graph * const grafptr, /* Graph structure, sorted by vertex index */ const C_Geometry * const geomptr, /* Graph geometry, sorted by vertex label */ const C_Mapping * const mappptr, /* Result mapping, sorted by vertex label */ FILE * const fileptr) /* Output stream */ { int * nonztab; /* Array of non-zero entries */ SCOTCH_Num nonzfrst; /* First non-zero entry of area */ SCOTCH_Num nonzlast; /* Last non-zero entry of area */ double pictcoorsiz; /* Number of distinct coordinates */ double pictdispsiz; /* Size of the matrix display (in inches) */ time_t timedat; /* Creation time */ char * timeptr; /* Pointer to string form of creation time */ SCOTCH_Num vertnum; const SCOTCH_Num baseval = grafptr->baseval; const SCOTCH_Num vertnnd = grafptr->vertnbr + grafptr->baseval; const SCOTCH_Num * restrict const verttax = grafptr->verttax; const SCOTCH_Num * restrict const vendtax = grafptr->vendtax; const SCOTCH_Num * restrict const edgetax = grafptr->edgetax; const SCOTCH_Num * restrict const labltax = mappptr->labltab - baseval; if ((nonztab = memAlloc ((grafptr->vertnbr + 1) * sizeof (int))) == NULL) { errorPrint ("outDrawPosMatr: out of memory"); return (1); } time (&timedat); /* Get current time */ timeptr = ctime (&timedat); pictcoorsiz = (double) (grafptr->vertnbr + 1); /* Get matrix size */ pictdispsiz = MIN (O_PSPICTWIDTH, O_PSPICTHEIGHT); if (O_outParam.PosMatr.typeval == 'e') { /* EPSF-type output */ fprintf (fileptr, "%%!PS-Adobe-2.0 EPSF-2.0\n"); fprintf (fileptr, "%%%%Title: %s %s %s\n", C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp); fprintf (fileptr, "%%%%Creator: Scotch/gout\n"); fprintf (fileptr, "%%%%CreationDate: %s", timeptr); fprintf (fileptr, "%%%%BoundingBox: 0 0 %d %d\n", (int) (pictdispsiz * O_PSDPI), (int) (pictdispsiz * O_PSDPI)); fprintf (fileptr, "%%%%Pages: 0\n"); fprintf (fileptr, "%%%%EndComments\n"); } else { /* Full page output */ fprintf (fileptr, "%%!PS-Adobe-2.0\n"); fprintf (fileptr, "%%%%Title: %s %s %s\n", C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp); fprintf (fileptr, "%%%%Creator: Scotch/gout\n"); fprintf (fileptr, "%%%%CreationDate: %s", timeptr); } fprintf (fileptr, "/p { pop } bind def\n"); fprintf (fileptr, "/h { 3 1 roll exch 2 copy moveto 2 copy 1 add 5 -3 roll 3 1 roll add exch 2 copy lineto 1 add lineto lineto fill } bind def\n"); fprintf (fileptr, "/v { 3 copy pop moveto 2 copy add exch pop exch 3 copy pop pop 1 add dup 3 -1 roll lineto exch dup 3 1 roll lineto lineto fill } bind def\n"); fprintf (fileptr, "/b { 3 copy v 3 copy h pop pop } bind def\n"); fprintf (fileptr, "/c { 1 3 copy v 3 copy h pop pop } bind def\n"); fprintf (fileptr, "gsave\n"); /* Save the context */ fprintf (fileptr, "0 setlinecap\n"); /* Perform miter caps */ if (O_outParam.PosMatr.typeval == 'f') /* If full page output */ fprintf (fileptr, "%d %d translate\n", /* Center the picture */ (int) (O_PSDPI * (O_PSPAGEWIDTH - pictdispsiz)) / 2, (int) (O_PSDPI * (O_PSPAGEWIDTH - pictdispsiz)) / 2); fprintf (fileptr, "%f %f scale\n", /* Print scaling factor */ (double) O_PSDPI * pictdispsiz / pictcoorsiz, (double) O_PSDPI * pictdispsiz / pictcoorsiz); fprintf (fileptr, "[ 1 0 0 -1 0 %d ] concat\n", /* Reverse Y coordinate */ (int) (grafptr->vertnbr + 1)); fprintf (fileptr, "0 setgray newpath\n"); /* Select black color */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num colunum; SCOTCH_Num edgennd; SCOTCH_Num edgenum; colunum = (labltax[vertnum] == ~0) ? vertnum : labltax[vertnum]; fprintf (fileptr, SCOTCH_NUMSTRING "\n", /* Set column value */ colunum - baseval); memset (nonztab, 0, (colunum - baseval + 2) * sizeof (int)); for (edgenum = verttax[colunum], edgennd = vendtax[colunum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num coluend; coluend = edgetax[edgenum]; if (coluend < colunum) nonztab[coluend - baseval] = 1; } nonztab[colunum - baseval] = 1; /* Diagonal is non-zero */ for (nonzfrst = 0; nonzfrst <= colunum - baseval; nonzfrst ++) { if (nonztab[nonzfrst] != 0) { /* A non-zero has been found */ for (nonzlast = nonzfrst; nonztab[nonzlast] != 0; nonzlast ++) ; if ((nonzlast - nonzfrst) > 1) /* Draw row block coefficient */ fprintf (fileptr, SCOTCH_NUMSTRING " " SCOTCH_NUMSTRING " b\n", nonzfrst, (nonzlast - nonzfrst)); else fprintf (fileptr, SCOTCH_NUMSTRING " c\n", nonzfrst); nonzfrst = nonzlast - 1; } } fprintf (fileptr, "p "); /* Close current column */ } fprintf (fileptr, "\ngrestore\n"); /* Restore context */ if (O_outParam.PosMatr.typeval == 'f') /* If full page output */ fprintf (fileptr, "showpage\n"); /* Display the page */ memFree (nonztab); return (0); } /***********************************************/ /* */ /* This is the PostScript mesh output routine. */ /* */ /***********************************************/ int outDrawPosMesh ( const C_Graph * const grafptr, /* Graph structure, sorted by vertex index */ const C_Geometry * const geomptr, /* Graph geometry, sorted by vertex label */ const C_Mapping * const mappptr, /* Result mapping, sorted by vertex label */ FILE * const fileptr) /* Output stream */ { SCOTCH_Num * indxtab; /* Array of vertex indices */ SCOTCH_Num indxnbr; /* Number of indices */ SCOTCH_Num indxnum; O_PosMeshPath * pathtax; /* Array of path building data */ O_PosMeshVertex * veextax; /* Array of extended 2D data for vertices */ O_Point pictcoormin; /* Picture minimum and maximum coordinates */ O_Point pictcoormax; O_Point pictcoordlt; double pictscalval; /* Scaling factor */ time_t timedat; /* Creation time */ char * timeptr; /* Pointer to string form of creation time */ double colotab[3]; /* Color values */ SCOTCH_Num vertnum; const SCOTCH_Num baseval = grafptr->baseval; const SCOTCH_Num vertnnd = grafptr->vertnbr + grafptr->baseval; const SCOTCH_Num * restrict const verttax = grafptr->verttax; const SCOTCH_Num * restrict const vendtax = grafptr->vendtax; const SCOTCH_Num * restrict const edgetax = grafptr->edgetax; const C_GeoVert * restrict const coortax = geomptr->coortab - baseval; const SCOTCH_Num * restrict const parttax = mappptr->labltab - baseval; if (geomptr->coortab == NULL) { errorPrint ("outDrawPosMesh: geometry not provided"); return (1); } time (&timedat); /* Get current time */ timeptr = ctime (&timedat); if (memAllocGroup ((void **) (void *) &indxtab, (size_t) ((grafptr->edgenbr / 2) * 3 * sizeof (SCOTCH_Num)), &pathtax, (size_t) (grafptr->vertnbr * sizeof (O_PosMeshPath)), &veextax, (size_t) (grafptr->vertnbr * sizeof (O_PosMeshVertex)), NULL) == NULL) { errorPrint ("outDrawPosMesh: out of memory"); return (1); } pathtax -= baseval; /* Base path and vertex arrays */ veextax -= baseval; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* For all vertices */ veextax[vertnum].coorval.x = coortax[vertnum].x + /* Project 3D coordinates into 2D ones */ coortax[vertnum].z * (O_POSMESHISOCOS * O_POSMESHISOREDUC); veextax[vertnum].coorval.y = coortax[vertnum].y + coortax[vertnum].z * (O_POSMESHISOSIN * O_POSMESHISOREDUC); } pictcoormin.x = pictcoormin.y = 1e30; /* Pre-set coordinates extrema */ pictcoormax.x = pictcoormax.y = -1e30; if (O_outParam.PosMesh.clipval == 'l') { /* If clipping encompasses disks */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { double sradmin; /* Minimum square of circle radius */ SCOTCH_Num edgennd; SCOTCH_Num edgenum; sradmin = 1e30; /* Assume a huge square of radius */ for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { double sradval; SCOTCH_Num vertend; vertend = edgetax[edgenum]; sradval = (veextax[vertnum].coorval.x - veextax[vertend].coorval.x) * (veextax[vertnum].coorval.x - veextax[vertend].coorval.x) + (veextax[vertnum].coorval.y - veextax[vertend].coorval.y) * (veextax[vertnum].coorval.y - veextax[vertend].coorval.y); if (sradval < sradmin) /* Get the smallest square of radius */ sradmin = sradval; } veextax[vertnum].dradval = sqrt (sradmin) * 0.5; /* Keep the half-distance for radius */ if ((veextax[vertnum].coorval.x - veextax[vertnum].dradval) < pictcoormin.x) /* Update extrema if necessary */ pictcoormin.x = veextax[vertnum].coorval.x - veextax[vertnum].dradval; if ((veextax[vertnum].coorval.y - veextax[vertnum].dradval) < pictcoormin.y) pictcoormin.y = veextax[vertnum].coorval.y - veextax[vertnum].dradval; if ((veextax[vertnum].coorval.x + veextax[vertnum].dradval) > pictcoormax.x) pictcoormax.x = veextax[vertnum].coorval.x + veextax[vertnum].dradval; if ((veextax[vertnum].coorval.y + veextax[vertnum].dradval) > pictcoormax.y) pictcoormax.y = veextax[vertnum].coorval.y + veextax[vertnum].dradval; } } else { /* Border clipping */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* For all vertex indices */ if (veextax[vertnum].coorval.x < pictcoormin.x) /* Update extrema if necessary */ pictcoormin.x = veextax[vertnum].coorval.x; if (veextax[vertnum].coorval.y < pictcoormin.y) pictcoormin.y = veextax[vertnum].coorval.y; if (veextax[vertnum].coorval.x > pictcoormax.x) pictcoormax.x = veextax[vertnum].coorval.x; if (veextax[vertnum].coorval.y > pictcoormax.y) pictcoormax.y = veextax[vertnum].coorval.y; } } pictcoordlt.x = pictcoormax.x - pictcoormin.x; /* Compute picture extents */ pictcoordlt.y = pictcoormax.y - pictcoormin.y; pictcoormin.x += pictcoordlt.x * O_outParam.PosMesh.pminval.x; /* Resize picture (if necessary) */ pictcoormin.y += pictcoordlt.y * O_outParam.PosMesh.pminval.y; pictcoormax.x -= pictcoordlt.x * (1.0L - O_outParam.PosMesh.pmaxval.x); pictcoormax.y -= pictcoordlt.y * (1.0L - O_outParam.PosMesh.pmaxval.y); pictcoordlt.x = pictcoormax.x - pictcoormin.x; /* Recompute picture extents */ pictcoordlt.y = pictcoormax.y - pictcoormin.y; pictscalval = (pictcoordlt.x == 0.0L) /* Compute scaling factor */ ? ((pictcoordlt.y == 0.0L) ? 1.0L : (O_PSPICTHEIGHT / pictcoordlt.y)) : ((pictcoordlt.y == 0.0L) ? (O_PSPICTWIDTH / pictcoordlt.x) : MIN (O_PSPICTWIDTH / pictcoordlt.x, O_PSPICTHEIGHT / pictcoordlt.y)); pictcoordlt.x *= pictscalval * O_POSMESHPICTRESOL; /* Rescale extents */ pictcoordlt.y *= pictscalval * O_POSMESHPICTRESOL; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { veextax[vertnum].coorval.x = (veextax[vertnum].coorval.x - pictcoormin.x) * pictscalval * O_POSMESHPICTRESOL; /* Rescale coordinates */ veextax[vertnum].coorval.y = (veextax[vertnum].coorval.y - pictcoormin.y) * pictscalval * O_POSMESHPICTRESOL; } if (O_outParam.PosMesh.diskval == 'd') { /* If disks wanted */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { double sradmin; /* Minimum square of circle radius */ SCOTCH_Num edgennd; SCOTCH_Num edgenum; sradmin = 1e30; /* Assume huge square of radius */ for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; double sradval; vertend = edgetax[edgenum]; sradval = (veextax[vertnum].coorval.x - veextax[vertend].coorval.x) * (veextax[vertnum].coorval.x - veextax[vertend].coorval.x) + (veextax[vertnum].coorval.y - veextax[vertend].coorval.y) * (veextax[vertnum].coorval.y - veextax[vertend].coorval.y); if (sradval < sradmin) /* Get smallest square of radius */ sradmin = sradval; } veextax[vertnum].dradval = sqrt (sradmin) * 0.5; /* Keep the half-distance for radius */ if (veextax[vertnum].dradval < 1.0L) /* Always get a non-zero radius */ veextax[vertnum].dradval = 1.0L; veextax[vertnum].visival = /* Compute vertex visibility */ ((veextax[vertnum].coorval.x > - veextax[vertnum].dradval) && (veextax[vertnum].coorval.x < pictcoordlt.x + veextax[vertnum].dradval) && (veextax[vertnum].coorval.y > - veextax[vertnum].dradval) && (veextax[vertnum].coorval.y < pictcoordlt.y + veextax[vertnum].dradval)) ? 1 : 0; } } else { /* If disks not wanted */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { veextax[vertnum].visival = /* Compute vertex visibility */ ((veextax[vertnum].coorval.x > 0.0L) && (veextax[vertnum].coorval.x < pictcoordlt.x) && (veextax[vertnum].coorval.y > 0.0L) && (veextax[vertnum].coorval.y < pictcoordlt.y)) ? 1 : 0; } } for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* Prepare to switch to integer coordinates */ veextax[vertnum].coorval.x += 0.5L; veextax[vertnum].coorval.y += 0.5L; } pictcoordlt.x += 0.5L; pictcoordlt.y += 0.5L; if (O_outParam.PosMesh.coloval == 'c') { /* If color output */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) /* Select color for all vertices */ veextax[vertnum].coloval = parttax[vertnum] % O_POSMESHCOLNBR; } else { /* If gray level output */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* Select color for all vertices */ int parttmp; /* Last 8 bits of mapping value */ int bitsnbr; /* Number of bits to create color index from */ int coloval; /* Resulting color index from bit reversal */ for (parttmp = (int) (parttax[vertnum] & 255), bitsnbr = 7, coloval = 0; /* Half-tone color */ bitsnbr > 0; /* As long as there are subdivision bits */ parttmp >>= 1, coloval <<= 1, bitsnbr --) /* Iterate on each bit */ coloval |= (parttmp & 1); veextax[vertnum].coloval = coloval; } } for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* For all vertices */ SCOTCH_Num pathnbr; SCOTCH_Num partval; SCOTCH_Num edgennd; SCOTCH_Num edgenum; partval = parttax[vertnum]; edgenum = verttax[vertnum]; pathtax[vertnum].edgenum = edgenum; /* Record start exit index */ pathnbr = 0; /* No output path yet */ for (edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; vertend = edgetax[edgenum]; if ((vertend > vertnum) && /* If end vertex can be a next hop */ ((veextax[vertnum].visival | veextax[vertend].visival) != 0) && /* And edge is visible */ ((O_outParam.PosMesh.edgeval != 'r') || /* And it can be drawn */ (parttax[vertend] == partval))) pathnbr ++; /* One more path to vertices of higher indices */ } pathtax[vertnum].pathnbr = pathnbr; /* Record number of output paths */ } indxnbr = 0; /* No indices yet */ for (vertnum = baseval; vertnum < vertnnd; ) { /* For all vertices */ SCOTCH_Num verttmp; if (pathtax[vertnum].pathnbr == 0) { /* If no output path for this vertex */ vertnum ++; /* Skip to next vertex */ continue; } verttmp = vertnum; /* Begin with this vertex */ indxtab[indxnbr ++] = verttmp; /* Add it to the current path */ do { /* Build path from current vertex */ SCOTCH_Num parttmp; SCOTCH_Num vertend; SCOTCH_Num edgennd; SCOTCH_Num edgetmp; parttmp = parttax[verttmp]; edgetmp = pathtax[verttmp].edgenum; edgennd = vendtax[verttmp]; do { /* Search for first valid output vertex */ vertend = edgetax[edgetmp]; if ((vertend > verttmp) && /* If end vertex can be next hop */ ((veextax[verttmp].visival | veextax[vertend].visival) != 0) && /* And edge is visible */ ((O_outParam.PosMesh.edgeval != 'r') || /* And it can be drawn */ (parttax[vertend] == parttmp))) break; } while (++ edgetmp < edgennd); pathtax[verttmp].pathnbr --; /* One less output path remaining */ pathtax[verttmp].edgenum = edgetmp + 1; /* Search from the next position */ verttmp = vertend; /* Go-on from end vertex */ indxtab[indxnbr ++] = verttmp; /* Add end vertex to current path */ } while (pathtax[verttmp].pathnbr > 0); /* As long as there is an exit route */ indxtab[indxnbr ++] = -1; /* Mark end of current path */ } if (O_outParam.PosMesh.typeval == 'e') { /* EPSF-type output */ fprintf (fileptr, "%%!PS-Adobe-2.0 EPSF-2.0\n"); fprintf (fileptr, "%%%%Title: %s %s %s\n", C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp); fprintf (fileptr, "%%%%Creator: Scotch/gout\n"); fprintf (fileptr, "%%%%CreationDate: %s", timeptr); fprintf (fileptr, "%%%%BoundingBox: 0 0 %d %d\n", (int) ((pictcoordlt.x * O_PSDPI) / O_POSMESHPICTRESOL), (int) ((pictcoordlt.y * O_PSDPI) / O_POSMESHPICTRESOL)); fprintf (fileptr, "%%%%Pages: 0\n"); fprintf (fileptr, "%%%%EndComments\n"); } else { /* Full page output */ fprintf (fileptr, "%%!PS-Adobe-2.0\n"); fprintf (fileptr, "%%%%Title: %s %s %s\n", C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp); fprintf (fileptr, "%%%%Creator: Scotch/gout\n"); fprintf (fileptr, "%%%%CreationDate: %s", timeptr); } fprintf (fileptr, "/A { 0 360 arc fill } bind def\n"); /* Macro definitions */ if (O_outParam.PosMesh.coloval == 'c') { /* If color output */ int colonum; for (colonum = 0; colonum < O_POSMESHCOLNBR; colonum ++) { /* Build color indices */ outColorColor (colonum, colotab); fprintf (fileptr, "/C%c { %g %g %g setrgbcolor } bind def\n", ('a' + colonum), colotab[0], colotab[1], colotab[2]); } } fprintf (fileptr, "/G { 255 div setgray } bind def\n"); fprintf (fileptr, "/L { lineto stroke } bind def\n"); fprintf (fileptr, "/l { lineto } bind def\n"); fprintf (fileptr, "/m { moveto } bind def\n"); fprintf (fileptr, "gsave\n"); /* Save context */ fprintf (fileptr, "1 setlinecap\n"); /* Use round caps */ if (O_outParam.PosMesh.typeval == 'f') /* If full page output */ fprintf (fileptr, "%d %d translate\n", /* Center picture */ (int) ((O_PSDPI * (O_PSPAGEWIDTH * O_POSMESHPICTRESOL - pictcoordlt.x)) / (2 * O_POSMESHPICTRESOL)), (int) ((O_PSDPI * (O_PSPAGEHEIGHT * O_POSMESHPICTRESOL - pictcoordlt.y)) / (2 * O_POSMESHPICTRESOL))); fprintf (fileptr, "%f %f scale\n", /* Print scaling factor */ (double) O_PSDPI / O_POSMESHPICTRESOL, (double) O_PSDPI / O_POSMESHPICTRESOL); fprintf (fileptr, "newpath 0 0 m %d 0 l %d %d l 0 %d l closepath clip\n", /* Clip picture */ (int) pictcoordlt.x, (int) pictcoordlt.x, (int) pictcoordlt.y, (int) pictcoordlt.y); fprintf (fileptr, "0 G\n"); /* Select black color */ for (indxnum = 0; indxnum < indxnbr; indxnum ++) { fprintf (fileptr, "%d\t%d\tm\n", /* Set initial point */ (int) veextax[indxtab[indxnum]].coorval.x, (int) veextax[indxtab[indxnum]].coorval.y); for (indxnum ++; indxtab[indxnum] != -1; indxnum ++) { /* Build path */ fprintf (fileptr, "%d\t%d\t%c\n", (int) veextax[indxtab[indxnum]].coorval.x, (int) veextax[indxtab[indxnum]].coorval.y, (indxtab[indxnum + 1] == ~0) ? 'L' : 'l'); } } if (O_outParam.PosMesh.diskval == 'd') { /* If disks wanted */ int coloval; coloval = -1; /* No assigned color yet */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* For all vertices */ if ((veextax[vertnum].visival != 0) && /* If disk is visible */ (parttax[vertnum] != -1)) { /* And is mapped */ if (veextax[vertnum].coloval != coloval) { /* If not same as previous color */ coloval = veextax[vertnum].coloval; /* Record the new current color */ if (O_outParam.PosMesh.coloval == 'c') /* Update drawing color */ fprintf (fileptr, "C%c\n", 'a' + coloval); else fprintf (fileptr, "%d G\n", coloval); } fprintf (fileptr, "%d %d %d A\n", /* Draw the disk */ (int) veextax[vertnum].coorval.x, (int) veextax[vertnum].coorval.y, (int) veextax[vertnum].dradval); } } } fprintf (fileptr, "grestore\n"); /* Restore the context */ if (O_outParam.PosMesh.typeval == 'f') /* If full page output */ fprintf (fileptr, "showpage\n"); /* Display the page */ memFree (indxtab); /* Free group leader */ return (0); } /*************************************/ /* */ /* This is the Tulip output routine. */ /* */ /*************************************/ int outDrawTulMesh ( const C_Graph * const grafptr, /* Graph structure, sorted by vertex index */ const C_Geometry * const geomptr, /* Graph geometry, sorted by vertex label */ const C_Mapping * const mappptr, /* Result mapping, sorted by vertex label */ FILE * const fileptr) /* Output stream */ { time_t timedat; /* Creation time */ char timestr[64]; double colotab[3]; /* Vertex color */ SCOTCH_Num vertnum; SCOTCH_Num edgeidx; char c; const SCOTCH_Num baseval = grafptr->baseval; const SCOTCH_Num vertnnd = grafptr->vertnbr + grafptr->baseval; const SCOTCH_Num * restrict const verttax = grafptr->verttax; const SCOTCH_Num * restrict const vendtax = grafptr->vendtax; const SCOTCH_Num * restrict const edgetax = grafptr->edgetax; const C_GeoVert * restrict const coortax = geomptr->coortab - baseval; const SCOTCH_Num * restrict const parttax = mappptr->labltab - baseval; if (coortax == NULL) { errorPrint ("outDrawTulMesh: geometry not provided"); return (1); } time (&timedat); /* Get current time */ strncpy (timestr, ctime (&timedat), 63); timestr[63] = '\0'; timestr[strlen (timestr) - 1] = '\0'; fprintf (fileptr, "(tlp \"2.0\"\n(author \"Scotch/gout\")\n(date \"%s\")\n(comment \"%s %s %s\")\n", /* Write header */ timestr, C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp); if (grafptr->vertnbr == 0) { /* If nothing to write */ fprintf (fileptr, ")\n"); return (0); } fprintf (fileptr, "(nodes\n"); /* Write node list */ for (vertnum = baseval; vertnum < (vertnnd - 1); vertnum ++) fprintf (fileptr, SCOTCH_NUMSTRING "%c", vertnum, (((vertnum - baseval) & 7) == 7) ? '\n' : '\t'); fprintf (fileptr, SCOTCH_NUMSTRING ")\n", vertnum); for (vertnum = baseval, edgeidx = 0; vertnum < vertnnd; vertnum ++) { SCOTCH_Num edgennd; SCOTCH_Num edgenum; for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; vertend = edgetax[edgenum]; if (vertend <= vertnum) continue; fprintf (fileptr, "(edge " SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING ")\n", edgeidx ++, vertnum, vertend); } } fprintf (fileptr, "(property 0 layout \"viewLayout\"\n"); /* Write node coordinates */ c = '\n'; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { if (vertnum == (vertnnd - 1)) c = ')'; fprintf (fileptr, "(node " SCOTCH_NUMSTRING "\t\"(%lf,%lf,%lf)\")%c", vertnum, (double) coortax[vertnum].x, (double) coortax[vertnum].y, (double) coortax[vertnum].z, c); } fprintf (fileptr, "\n"); if (O_outParam.TulMesh.coloval == 'c') { fprintf (fileptr, "(property 0 color \"viewColor\"\n(default \"(255,255,255,255)\" \"(0,0,0,0)\")\n"); /* Write node color values */ c = '\n'; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { if (vertnum == (vertnnd - 1)) c = ')'; outColorColor (parttax[vertnum], colotab); fprintf (fileptr, "(node " SCOTCH_NUMSTRING " \"(%d,%d,%d,255)\")%c", vertnum, (int) (colotab[0] * 255.0), (int) (colotab[1] * 255.0), (int) (colotab[2] * 255.0), c); } fprintf (fileptr, "\n"); } fprintf (fileptr, "(property 0 size \"viewSize\"\n(default \"(0,0,0)\" \"(0,0,0)\")"); /* Write default node size */ if (O_outParam.TulMesh.diskval == 'd') { /* If disks wanted */ fprintf (fileptr, "\n"); c = '\n'; for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num edgenum; SCOTCH_Num edgennd; double sradmin; /* Minimum square value of disk radius */ double dradmin; if (vertnum == (vertnnd - 1)) c = ')'; sradmin = 1e30; /* Huge distance assumed */ for (edgenum = verttax[vertnum], edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; double sradval; /* Square value of disk radius */ vertend = edgetax[edgenum]; sradval = (coortax[vertend].x - coortax[vertnum].x) * (coortax[vertend].x - coortax[vertnum].x) + (coortax[vertend].y - coortax[vertnum].y) * (coortax[vertend].y - coortax[vertnum].y) + (coortax[vertend].z - coortax[vertnum].z) * (coortax[vertend].z - coortax[vertnum].z); if (sradval < sradmin) sradmin = sradval; } dradmin = sqrt (sradmin) * (0.5 * O_TULMESHDISKRATIO); fprintf (fileptr, "(node " SCOTCH_NUMSTRING " \"(%lf,%lf,%lf)\")%c", vertnum, dradmin, dradmin, dradmin, c); } fprintf (fileptr, "\n"); } else fprintf (fileptr, ")\n"); fprintf (fileptr, ")\n"); return (0); } /*****************************************/ /* */ /* This is the VTK output routine, based */ /* on the OpenInventor routine. */ /* */ /*****************************************/ int outDrawVtkMesh ( const C_Graph * const grafptr, /* Graph structure, sorted by vertex index */ const C_Geometry * const geomptr, /* Graph geometry, sorted by vertex label */ const C_Mapping * const mappptr, /* Result mapping, sorted by vertex label */ FILE * const fileptr) /* Output stream */ { O_VtkMeshPath * restrict pathtax; /* Array of path building data */ SCOTCH_Num pathnbr; /* Number of paths created */ SCOTCH_Num pathnum; SCOTCH_Num * restrict indxtab; /* Array of indices */ SCOTCH_Num indxnbr; /* Number of indices */ SCOTCH_Num indxnum; SCOTCH_Num vertnum; time_t timedat; /* Creation time */ const SCOTCH_Num baseval = grafptr->baseval; const SCOTCH_Num vertnnd = grafptr->vertnbr + grafptr->baseval; const SCOTCH_Num * restrict const verttax = grafptr->verttax; const SCOTCH_Num * restrict const vendtax = grafptr->vendtax; const SCOTCH_Num * restrict const edgetax = grafptr->edgetax; const C_GeoVert * restrict const coortax = geomptr->coortab - baseval; const SCOTCH_Num * restrict const parttax = mappptr->labltab - baseval; if (geomptr->coortab == NULL) { errorPrint ("outDrawVtkMesh: geometry not provided"); return (1); } time (&timedat); /* Get current time */ if (memAllocGroup ((void **) (void *) &indxtab, (size_t) ((grafptr->edgenbr / 2) * 3 * sizeof (SCOTCH_Num)), &pathtax, (size_t) (grafptr->vertnbr * sizeof (O_VtkMeshPath)), NULL) == NULL) { errorPrint ("outDrawVtkMesh: out of memory"); return (1); } pathtax -= baseval; /* Base path array */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { /* For all vertices */ SCOTCH_Num pathnbr; SCOTCH_Num partval; SCOTCH_Num edgennd; SCOTCH_Num edgenum; partval = parttax[vertnum]; edgenum = verttax[vertnum]; pathtax[vertnum].edgenum = edgenum; /* Record start exit index */ pathnbr = 0; /* No output path yet */ for (edgennd = vendtax[vertnum]; edgenum < edgennd; edgenum ++) { SCOTCH_Num vertend; vertend = edgetax[edgenum]; if ((vertend > vertnum) && /* If end vertex can be a next hop */ ((O_outParam.VtkMesh.edgeval != 'r') || /* And this edge can be drawn */ (parttax[vertend] == partval))) pathnbr ++; /* One more path to vertices of higher indices */ } pathtax[vertnum].pathnbr = pathnbr; /* Record number of output paths */ } indxnbr = 0; /* No indices yet */ pathnbr = 0; /* No paths yet */ for (vertnum = baseval; vertnum < vertnnd; ) { /* For all vertices */ SCOTCH_Num indxtmp; /* Index where to place number of points */ SCOTCH_Num verttmp; if (pathtax[vertnum].pathnbr == 0) { /* If no output path for this vertex */ vertnum ++; /* Skip to next vertex */ continue; } indxtmp = indxnbr ++; /* Save space for number of points */ verttmp = vertnum; /* Begin with this vertex */ indxtab[indxnbr ++] = verttmp; /* Add it to the current path */ do { /* Build path from current vertex */ SCOTCH_Num parttmp; SCOTCH_Num vertend; SCOTCH_Num edgennd; SCOTCH_Num edgetmp; parttmp = parttax[verttmp]; edgetmp = pathtax[verttmp].edgenum; edgennd = vendtax[verttmp]; do { /* Search for first valid output vertex */ vertend = edgetax[edgetmp]; if ((vertend > verttmp) && /* If end vertex can be next hop */ ((O_outParam.VtkMesh.edgeval != 'r') || /* And this edge can be drawn */ (parttax[vertend] == parttmp))) break; } while (++ edgetmp < edgennd); pathtax[verttmp].pathnbr --; /* One less output path remaining */ pathtax[verttmp].edgenum = edgetmp + 1; /* Search from the next position */ verttmp = vertend; /* Go-on from end vertex */ indxtab[indxnbr ++] = verttmp; /* Add end vertex to current path */ } while (pathtax[verttmp].pathnbr > 0); /* As long as there is an exit route */ indxtab[indxtmp] = indxnbr - indxtmp - 1; /* Set size of created path */ pathnbr ++; /* One more path created */ } fprintf (fileptr, "# vtk DataFile Version 2.0\n"); /* Write header */ fprintf (fileptr, "%s %s %s | Created by Scotch/gout | %sASCII\n", C_filenamesrcinp, C_filenamegeoinp, C_filenamemapinp, ctime (&timedat)); if (indxnbr == 0) /* If nothing to write */ return (0); fprintf (fileptr, "\nDATASET UNSTRUCTURED_GRID\n"); fprintf (fileptr, "\nPOINTS " SCOTCH_NUMSTRING " float\n", grafptr->vertnbr); for (vertnum = baseval; vertnum < vertnnd; vertnum ++) fprintf (fileptr, "%g\t%g\t%g\n", coortax[vertnum].x, coortax[vertnum].y, coortax[vertnum].z); fprintf (fileptr, "\nCELLS " SCOTCH_NUMSTRING " " SCOTCH_NUMSTRING "\n", pathnbr, indxnbr); for (indxnum = 0; indxnum < indxnbr; ) { SCOTCH_Num pontnbr; /* Number of points in current segment */ SCOTCH_Num indxtmp; pontnbr = indxtab[indxnum]; for (indxtmp = indxnum + pontnbr; indxnum < indxtmp; ) fprintf (fileptr, SCOTCH_NUMSTRING "\t", indxtab[indxnum ++]); fprintf (fileptr, SCOTCH_NUMSTRING "\n", indxtab[indxnum ++]); } fprintf (fileptr, "\nCELL_TYPES " SCOTCH_NUMSTRING "\n", /* All cells ate poly-line paths */ pathnbr); for (pathnum = 0; pathnum < pathnbr; pathnum ++) fprintf (fileptr, "4\n"); fprintf (fileptr, "\nPOINT_DATA " SCOTCH_NUMSTRING "\nSCALARS mapValues int\nLOOKUP_TABLE default\n", grafptr->vertnbr); for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { SCOTCH_Num partval; partval = parttax[vertnum]; fprintf (fileptr, SCOTCH_NUMSTRING "\n", (partval == -1) ? 0 : (partval + 1)); /* Unmapped vertices are of VTK color 0 (white) */ } memFree (indxtab); /* Free group leader */ return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gout_o.h000066400000000000000000000224221514310134000246750ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gout_o.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a result viewer. **/ /** This module contains the data declara- **/ /** tions for the output module. **/ /** **/ /** DATES : # Version 2.0 : from : 08 oct 1994 **/ /** to : 02 nov 1994 **/ /** # Version 3.0 : from : 14 jul 1995 **/ /** to : 03 oct 1995 **/ /** # Version 3.1 : from : 05 apr 1996 **/ /** to : 05 apr 1996 **/ /** # Version 3.2 : from : 03 dec 1996 **/ /** to : 05 jun 1998 **/ /** # Version 3.3 : from : 02 jun 1999 **/ /** to : 02 jun 1999 **/ /** # Version 5.0 : from : 25 may 2007 **/ /** to : 25 may 2007 **/ /** # Version 5.1 : from : 25 oct 2007 **/ /** to : 26 oct 2007 **/ /** # Version 6.1 : from : 28 aug 2021 **/ /** to : 28 aug 2021 **/ /** # Version 7.0 : from : 13 jul 2025 **/ /** to : 13 jul 2025 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ Generic PostScript output definitions. +*/ #define O_PSDPI 72 /* PostScript dots-per-inch */ #define O_PSPAGEHEIGHT 11.6 /* PostScript page height (in inches) */ #define O_PSPAGEWIDTH 8.2 /* PostScript page witdh (in inches) */ #define O_PSPICTHEIGHT 10.0 /* PostScript picture height (in inches) */ #define O_PSPICTWIDTH 6.6 /* PostScript picture witdh (in inches) */ /*+ PostScript mesh output definitions. +*/ #define O_POSMESHPICTRESOL 10000.0 /* Picture resolution */ #define O_POSMESHISOCOS 0.866025404 /* cos(30 degrees) */ #define O_POSMESHISOSIN 0.5 /* sin(30 degrees) */ #define O_POSMESHISOREDUC 0.20 /* Z-axis reduction coefficient */ #define O_POSMESHCOLNBR 16 /* Number of colors */ /*+ Tulip graph output definitions. +*/ #define O_TULMESHDISKRATIO 0.1 /* Node disk ratio */ /* ** The type and structure definitions. */ /*+ The 2D point type. +*/ typedef struct O_Point_ { double c[2]; /*+ Page coordinates +*/ } O_Point; /*+ The output type type. +*/ typedef enum O_OutType_ { O_OUTTYPEINVMESH, /*+ Mesh SGI Open Inventor (3D) +*/ O_OUTTYPEPOSMATR, /*+ Matrix PostScript (2D) +*/ O_OUTTYPEPOSMESH, /*+ Mesh PostScript (2D) +*/ O_OUTTYPETULMESH, /*+ Mesh Tulip (3D) +*/ O_OUTTYPEVTKMESH, /*+ Mesh legacy VTK (3D) +*/ O_OUTTYPENBR /*+ Number of output types +*/ } O_OutType; /*+ The output parameter data structure. +*/ typedef struct O_OutParam_ { O_OutType typeval; /*+ Output type +*/ struct { /*+ Inventor mesh structure +*/ char coloval; /*+ 'c' : color; 'g' : gray +*/ char edgeval; /*+ 'r' : remove; 'v' : view +*/ } InvMesh; struct { /*+ PostScript matrix structure +*/ char typeval; /*+ 'f' : page; 'e' : EPSF +*/ } PosMatr; struct { /*+ PostScript mesh structure +*/ char typeval; /*+ 'f' : page; 'e' : EPSF +*/ char coloval; /*+ 'c' : color; 'g' : gray +*/ char edgeval; /*+ 'r' : remove; 'v' : view +*/ char diskval; /*+ 'd' : draw; 'a' : avoid +*/ char clipval; /*+ 'l' : large; 's' : short +*/ O_Point pminval; /*+ Clipping ratios +*/ O_Point pmaxval; } PosMesh; struct { /*+ Tulip graph structure +*/ char coloval; /*+ 'b' : b/w; 'c' : color +*/ char edgeval; /*+ 'r' : remove; 'v' : view +*/ char diskval; /*+ 'd' : draw; 'a' : avoid +*/ } TulMesh; struct { /*+ VTK mesh structure +*/ char edgeval; /*+ 'r' : remove; 'v' : view +*/ } VtkMesh; } O_OutParam; /*+ The Inventor path array element. +*/ typedef struct O_InvMeshPath_ { SCOTCH_Num pathnbr; /*+ Number of output paths +*/ SCOTCH_Num edgenum; /*+ Index from which to search +*/ } O_InvMeshPath; /*+ The PostScript path array element. +*/ typedef struct O_PosMeshPath_ { SCOTCH_Num pathnbr; /*+ Number of output paths +*/ SCOTCH_Num edgenum; /*+ Index from which to search +*/ } O_PosMeshPath; /*+ The PostScript mesh graph vertex. +*/ typedef struct O_PosMeshVertex_ { int visival; /*+ Visibility flag +*/ O_Point coorval; /*+ Point position +*/ double dradval; /*+ Disk radius +*/ int coloval; /*+ Disk color index +*/ } O_PosMeshVertex; /*+ The VTK path array element. +*/ typedef struct O_VtkMeshPath_ { SCOTCH_Num pathnbr; /*+ Number of output paths +*/ SCOTCH_Num edgenum; /*+ Index from which to search +*/ } O_VtkMeshPath; /* ** The function prototypes. */ void outColorBlw (const SCOTCH_Num, double[]); void outColorColor (const SCOTCH_Num, double[]); int outDrawParse (char * const); void outDraw (const C_Graph * const, const C_Geometry * const, const C_Mapping * const, FILE * const); int outDrawInvMesh (const C_Graph * const, const C_Geometry * const, const C_Mapping * const, FILE * const); int outDrawPosMatr (const C_Graph * const, const C_Geometry * const, const C_Mapping * const, FILE * const); int outDrawPosMesh (const C_Graph * const, const C_Geometry * const, const C_Mapping * const, FILE * const); int outDrawTulMesh (const C_Graph * const, const C_Geometry * const, const C_Mapping * const, FILE * const); int outDrawVtkMesh (const C_Graph * const, const C_Geometry * const, const C_Mapping * const, FILE * const); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gscat.c000066400000000000000000000313021514310134000244720ustar00rootroot00000000000000/* Copyright 2009-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gscat.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program writes a centralized **/ /** source graph file in the form of a **/ /** distributed source graph. **/ /** **/ /** DATES : # Version 5.1 : from : 26 apr 2009 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 04 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gscat.h" /* ** The static variables. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { /* Usage */ "gscat ", " -h : Display this help", " -i : Create an imbalanced distribution", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Num p[1] = { 1 }; /* Number of parts */ SCOTCH_Num vertlocmin; /* Value for imbalanced processes */ int i; errorProg ("gscat"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ vertlocmin = -1; /* No imbalanced vertices */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 1) { /* If number of parameters not reached */ if ((p[C_paraNum ++] = atoi (argv[i])) < 1) /* Get number of parts */ errorPrint ("main: invalid number of parts '%s'", argv[i]); continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'I' : case 'i' : if ((vertlocmin = (SCOTCH_Num) atoll (argv[i] + 2)) < 1) errorPrint ("main: invalid number of vertices in graph parts '%s'", argv[i] + 2); break; case 'V' : fprintf (stderr, "gscat, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, 1); /* Open input graph file */ C_graphScat (C_filepntrsrcinp, p[0], C_filenamesrcout, vertlocmin); fileBlockClose (C_fileTab, 1); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } static int C_graphScat ( FILE * const stream, /* Stream of input graph to scatter into files */ const SCOTCH_Num procnbr, /* Number of processes for distributed graph */ char * const nameptr, /* Name of the files containing the distributed graph */ const SCOTCH_Num vertlocmin) /* Number of vertices for all processes but the last */ { SCOTCH_Num versval; SCOTCH_Num propval; char proptab[4]; int flagtab[3]; SCOTCH_Num baseval; SCOTCH_Num vertglbnbr; SCOTCH_Num edgeglbnbr; SCOTCH_Num procnum; if (intLoad (stream, &versval) != 1) { /* Read version number */ errorPrint ("C_graphScat: bad input (1)"); return (1); } if (versval != 0) { /* If version not zero */ errorPrint ("C_graphScat: only centralized graphs supported"); return (1); } if ((intLoad (stream, &vertglbnbr) != 1) || /* Read rest of header */ (intLoad (stream, &edgeglbnbr) != 1) || (intLoad (stream, &baseval) != 1) || (intLoad (stream, &propval) != 1) || (propval < 0) || (propval > 111)) { errorPrint ("C_graphScat: bad input (2)"); return (1); } sprintf (proptab, "%3.3d", (int) propval); /* Compute file properties */ flagtab[0] = proptab[0] - '0'; /* Vertex labels flag */ flagtab[1] = proptab[1] - '0'; /* Edge weights flag */ flagtab[2] = proptab[2] - '0'; /* Vertex loads flag */ if ((vertlocmin > 0) && /* If imbalanced graph parts wanted */ ((vertlocmin * (procnbr - 1)) > vertglbnbr)) { errorPrint ("C_graphScat: too many vertices in all before last part"); return (1); } for (procnum = 0; procnum < procnbr; procnum ++) { char * naexptr; /* Expanded name */ FILE * ostream; SCOTCH_Num vertlocnbr; SCOTCH_Num vertlocnum; SCOTCH_Num edgelocnbr; ostream = NULL; naexptr = fileNameDistExpand (nameptr, procnbr, procnum); if (naexptr == nameptr) { errorPrint ("C_graphScat: not a distributed file name"); return (1); } if (naexptr == NULL) { errorPrint ("C_graphScat: cannot create distributed file name"); return (1); } ostream = fopen (naexptr, "w+"); memFree (naexptr); /* Expanded name no longer needed anyway */ if (ostream == NULL) { errorPrint ("C_graphScat: cannot open file"); return (1); } if (vertlocmin > 0) /* Imbalanced distribution; last process has almost all of the vertices */ vertlocnbr = (procnum != (procnbr - 1)) ? vertlocmin : (vertglbnbr - (vertlocmin * (procnbr - 1))); else /* Balanced distribution: distribute evenly the vertices */ vertlocnbr = DATASIZE (vertglbnbr, procnbr, procnum); if (fprintf (ostream, "2\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t%015d\n" SCOTCH_NUMSTRING "\t%3s\n", /* Write file header */ (SCOTCH_Num) procnbr, (SCOTCH_Num) procnum, (SCOTCH_Num) vertglbnbr, (SCOTCH_Num) edgeglbnbr, (SCOTCH_Num) vertlocnbr, 0, /* Number of edges not yet known */ (SCOTCH_Num) baseval, proptab) == EOF) { errorPrint ("C_graphScat: bad output (1)"); fclose (ostream); return (1); } for (vertlocnum = edgelocnbr = 0; vertlocnum < vertlocnbr; vertlocnum ++) { SCOTCH_Num degrval; if (flagtab[0] != 0) { /* If must read label */ SCOTCH_Num vlblval; /* Value where to read vertex label */ if (intLoad (stream, &vlblval) != 1) { /* Read label data */ errorPrint ("C_graphScat: bad input (3)"); fclose (ostream); return (1); } intSave (ostream, vlblval); putc ('\t', ostream); } if (flagtab[2] != 0) { /* If must read vertex load */ SCOTCH_Num veloval; /* Value where to read vertex load */ if (intLoad (stream, &veloval) != 1) { /* Read vertex load data */ errorPrint ("C_graphScat: bad input (4)"); fclose (ostream); return (1); } intSave (ostream, veloval); putc ('\t', ostream); } if (intLoad (stream, °rval) != 1) { /* Read vertex degree */ errorPrint ("C_graphScat: bad input (5)"); fclose (ostream); return (1); } intSave (ostream, degrval); edgelocnbr += degrval; for ( ; degrval > 0; degrval --) { SCOTCH_Num edgeval; /* Value where to read edge end */ if (flagtab[1] != 0) { /* If must read edge load */ SCOTCH_Num edloval; /* Value where to read edge load */ if (intLoad (stream, &edloval) != 1) { /* Read edge load data */ errorPrint ("C_graphScat: bad input (6)"); fclose (ostream); return (1); } putc ('\t', ostream); intSave (ostream, edloval); } if (intLoad (stream, &edgeval) != 1) { /* Read edge data */ errorPrint ("C_graphScat: bad input (7)"); fclose (ostream); return (1); } putc ('\t', ostream); intSave (ostream, edgeval); } putc ('\n', ostream); } rewind (ostream); if (fprintf (ostream, "2\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n" SCOTCH_NUMSTRING "\t%015lld\n" SCOTCH_NUMSTRING "\t%3s\n", /* Write file header */ (SCOTCH_Num) procnbr, (SCOTCH_Num) procnum, (SCOTCH_Num) vertglbnbr, (SCOTCH_Num) edgeglbnbr, (SCOTCH_Num) vertlocnbr, (long long) edgelocnbr, /* Now we know the exact number of edges */ (SCOTCH_Num) baseval, proptab) == EOF) { errorPrint ("C_graphScat: bad output (2)"); return (1); } fclose (ostream); } return (0); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gscat.h000066400000000000000000000070541514310134000245060ustar00rootroot00000000000000/* Copyright 2009,2014,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gscat.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the sequential graph scatter- **/ /** ing program. **/ /** **/ /** DATES : # Version 5.1 : from : 26 apr 2009 **/ /** to : 26 apr 2009 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 7.0 : from : 02 aug 2023 **/ /** to : 04 aug 2023 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Centralized source graph input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Distributed source graph output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Centralized source graph input file */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 1) /* Distributed source graph output file */ /* ** The function prototypes. */ static int C_graphScat (FILE * const, const SCOTCH_Num, char * const, const SCOTCH_Num); scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gtst.c000066400000000000000000000175701514310134000243650ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gtst.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program gives statistics on source **/ /** graphs. **/ /** **/ /** DATES : # Version 2.0 : from : 31 oct 1994 **/ /** to : 03 nov 1994 **/ /** # Version 3.0 : from : 15 sep 1995 **/ /** to : 19 sep 1995 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 25 may 1998 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 19 oct 1998 **/ /** # Version 3.4 : from : 10 oct 1999 **/ /** to : 12 oct 1999 **/ /** # Version 4.0 : from : 10 sep 2003 **/ /** to : 10 sep 2003 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "gtst.h" /* ** The static definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "gtst [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; /* Source graph */ SCOTCH_Num vertnbr; SCOTCH_Num velomin; SCOTCH_Num velomax; SCOTCH_Num velosum; double veloavg; double velodlt; SCOTCH_Num degrmin; SCOTCH_Num degrmax; double degravg; double degrdlt; SCOTCH_Num edgenbr; SCOTCH_Num edlomin; SCOTCH_Num edlomax; SCOTCH_Num edlosum; double edloavg; double edlodlt; int i; errorProg ("gtst"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "gtst, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_graphInit (&grafdat); SCOTCH_graphLoad (&grafdat, C_filepntrsrcinp, -1, 0); SCOTCH_graphCheck (&grafdat); SCOTCH_graphSize (&grafdat, &vertnbr, &edgenbr); SCOTCH_graphStat (&grafdat, &velomin, &velomax, &velosum, &veloavg, &velodlt, °rmin, °rmax, °ravg, °rdlt, &edlomin, &edlomax, &edlosum, &edloavg, &edlodlt); if (C_filepntrdatout != NULL) { fprintf (C_filepntrdatout, "S\tVertex\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) vertnbr); fprintf (C_filepntrdatout, "S\tVertex load\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) velomin, (SCOTCH_Num) velomax, (SCOTCH_Num) velosum, veloavg, velodlt); fprintf (C_filepntrdatout, "S\tVertex degree\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) degrmin, (SCOTCH_Num) degrmax, (SCOTCH_Num) edgenbr, degravg, degrdlt); fprintf (C_filepntrdatout, "S\tEdge\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) (edgenbr / 2)); fprintf (C_filepntrdatout, "S\tEdge load\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) edlomin, (SCOTCH_Num) edlomax, (SCOTCH_Num) edlosum, edloavg, edlodlt); } SCOTCH_graphExit (&grafdat); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/gtst.h000066400000000000000000000070531514310134000243650ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : gtst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the declarations **/ /** for the source graph analyzer. **/ /** **/ /** DATES : # Version 2.0 : from : 31 oct 1993 **/ /** to : 31 oct 1993 **/ /** # Version 3.2 : from : 03 jun 1997 **/ /** to : 03 jun 1997 **/ /** # Version 3.3 : from : 19 oct 1998 **/ /** to : 19 oct 1998 **/ /** # Version 4.0 : from : 10 sep 2003 **/ /** to : 10 sep 2003 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenamedatout fileBlockName (C_fileTab, 1) /* Statistics output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrdatout fileBlockFile (C_fileTab, 1) /* Statistics output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mcv.c000066400000000000000000000202461514310134000241630ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mcv.c **/ /** **/ /** AUTHORS : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a mesh file converter. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 4.0 : from : 19 jan 2004 **/ /** to : 19 jan 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "mcv.h" /* ** The static and global variables. */ static int C_inpFormatType = 0; /* Input mesh format */ static char * C_inpFormatData = "\0"; /* Pointer to auxiliary data */ static const C_FormatInp C_inpFormatTab[] = { /* Table of input formats */ { 'B', SCOTCH_meshGeomLoadHabo }, { 'b', SCOTCH_meshGeomLoadHabo }, { 'S', SCOTCH_meshGeomLoadScot }, { 's', SCOTCH_meshGeomLoadScot }, { '\0', NULL } }; static int C_outFormatType = 0; /* Output mesh format */ static char * C_outFormatData = "\0"; /* Pointer to auxiliary data */ static C_FormatOut C_outFormatTab[] = { /* Table of output formats */ { 'S', SCOTCH_meshGeomSaveScot }, { 's', SCOTCH_meshGeomSaveScot }, { '\0', NULL } }; static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[3] = { /* File array */ { FILEMODER }, { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "mcv [ [ []]] ", " -h : Display this help", " -i : Select input file format", " b : Boeing-Harwell format (elemental)", " s : Scotch format", " -o : Select output file format", " s : Scotch format", " -V : Print program version and copyright", "", "Default option set is : '-Ib -Os'", NULL }; /*****************************/ /* */ /* This is the main function */ /* */ /*****************************/ int main ( int argc, char * argv[]) { SCOTCH_Mesh meshdat; SCOTCH_Geom geomdat; int i, j; errorProg ("mcv"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give help */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'I' : /* Select input file type */ case 'i' : for (j = 0; C_inpFormatTab[j].code != '\0'; j ++) { /* Find proper format code */ if (C_inpFormatTab[j].code == argv[i][2]) { C_inpFormatType = j; C_inpFormatData = &argv[i][3]; break; } } if (C_inpFormatTab[j].code == '\0') errorPrint ("main: unprocessed option '%s'", argv[i]); break; case 'O' : /* Select input file type */ case 'o' : for (j = 0; C_outFormatTab[j].code != '\0'; j ++) { /* Find proper format code */ if (C_outFormatTab[j].code == argv[i][2]) { C_outFormatType = j; C_outFormatData = &argv[i][3]; break; } } if (C_inpFormatTab[j].code == '\0') errorPrint ("main: unprocessed option '%s'", argv[i]); break; case 'V' : fprintf (stderr, "mcv, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_meshInit (&meshdat); SCOTCH_geomInit (&geomdat); C_inpFormatTab[C_inpFormatType].func (&meshdat, &geomdat, C_filepntrsrcinp, NULL, C_inpFormatData); #ifdef SCOTCH_DEBUG_ALL if (SCOTCH_meshCheck (&meshdat) != 0) errorPrint ("main: bad graph structure"); #endif /* SCOTCH_DEBUG_ALL */ C_outFormatTab[C_outFormatType].func (&meshdat, &geomdat, C_filepntrsrcout, C_filepntrgeoout, C_outFormatData); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_geomExit (&geomdat); SCOTCH_meshExit (&meshdat); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mcv.h000066400000000000000000000104461514310134000241710ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mcv.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a mesh file converter. **/ /** This module contains the data declara- **/ /** tions for the main module. **/ /** **/ /** DATES : # Version 4.0 : from : 19 jan 2004 **/ /** to : 19 jan 2004 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** # Version 7.0 : from : 10 sep 2024 **/ /** to : 10 sep 2024 **/ /** **/ /************************************************************/ /* ** The defines */ /*+ File name aliases. +*/ #define C_FILENBR 3 /* Number of files in list */ #define C_FILEARGNBR 3 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* External mesh input file name */ #define C_filenamesrcout fileBlockName (C_fileTab, 1) /* Source mesh output file name */ #define C_filenamegeoout fileBlockName (C_fileTab, 2) /* Source mesh geometry file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* External mesh input file */ #define C_filepntrsrcout fileBlockFile (C_fileTab, 1) /* Source mesh output file */ #define C_filepntrgeoout fileBlockFile (C_fileTab, 2) /* Source mesh geometry file */ /* ** The type and structure definitions. */ /*+ This structure defines the method array element. +*/ typedef int (* FormatInpFunc) (SCOTCH_Mesh * const, SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); typedef struct C_FormatInp_ { char code; /* Format type code */ FormatInpFunc func; /* Function to call */ } C_FormatInp; typedef int (* FormatOutFunc) (const SCOTCH_Mesh * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); typedef struct C_FormatOut_ { char code; /* Format type code */ FormatOutFunc func; /* Function to call */ } C_FormatOut; scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mmk_m2.c000066400000000000000000000240051514310134000245550ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mmk_m2.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates source meshes for tridimen- **/ /** sional finite element grids. **/ /** **/ /** DATES : # Version 4.0 : from : 26 sep 2002 **/ /** to : 06 feb 2003 **/ /** # Version 5.0 : from : 13 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # The nodes and elements of the **/ /** (dX,dY) mesh are numbered so that **/ /** t(0,0) = 0, t(1,0) = 1, **/ /** t(dX - 1, 0) = dX - 1, t(0,1) = **/ /** dX, and t(x,y) = y * dX + x. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "mmk_m2.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW }, { FILEMODEW } }; static const int C_nghbTab[3] = { 4, 2, 1 }; static const char * C_usageList[] = { "mmk_m2 [ []] ", " -g : Output mesh geometry to ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /****************************************/ /* */ /* The main routine, which computes the */ /* source mesh description. */ /* */ /****************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num e[2] = { 1, 1 }; /* Mesh element dimensions */ SCOTCH_Num n[2]; /* Mesh node dimensions */ SCOTCH_Num c[2]; /* Vertex coordinates */ SCOTCH_Num velmnbr; /* First node number */ int flagval; /* Process flags */ int i; errorProg ("mmk_m2"); flagval = C_FLAGDEFAULT; /* Set default flags */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 2) { /* If number of parameters not reached */ if ((e[C_paraNum ++] = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'G' : /* Output mesh geometry */ case 'g' : flagval |= C_FLAGGEOOUT; if (argv[i][2] != '\0') C_filenamegeoout = &argv[i][2]; break; case 'H' : /* Give program usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "mmk_m2, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ n[0] = e[0] + 1; n[1] = e[1] + 1; velmnbr = e[0] * e[1]; fprintf (C_filepntrmshout, "1\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n0\t" SCOTCH_NUMSTRING "\t000\n", /* Print mesh file header */ (SCOTCH_Num) velmnbr, (SCOTCH_Num) (n[0] * n[1]), (SCOTCH_Num) (((velmnbr + n[0] * n[1]) - (e[0] + e[1] + 1)) * 4), (SCOTCH_Num) velmnbr); for (c[1] = 0; c[1] < e[1]; c[1] ++) { /* Output element neighbor list */ for (c[0] = 0; c[0] < e[0]; c[0] ++) { fprintf (C_filepntrmshout, "4\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", /* Output neighbors of element */ (SCOTCH_Num) (c[1] * n[0] + c[0]), (SCOTCH_Num) (c[1] * n[0] + c[0] + 1), (SCOTCH_Num) ((c[1] + 1) * n[0] + c[0]), (SCOTCH_Num) ((c[1] + 1) * n[0] + c[0] + 1)); } } for (c[1] = 0; c[1] < n[1]; c[1] ++) { /* Output node neighbor list */ for (c[0] = 0; c[0] < n[0]; c[0] ++) { fprintf (C_filepntrmshout, "%d", /* Output number of neighboring elements */ C_nghbTab[(((c[0] != 0) && (c[0] != e[0])) ? 0 : 1) + (((c[1] != 0) && (c[1] != e[1])) ? 0 : 1)]); if (c[1] != 0) { /* Output neighbors of nodes */ if (c[0] != 0) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[1] - 1) * e[0] + (c[0] - 1))); if (c[0] != e[0]) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[1] - 1) * e[0] + c[0])); } if (c[1] != e[1]) { if (c[0] != 0) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (c[1] * e[0] + (c[0] - 1))); if (c[0] != e[0]) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (c[1] * e[0] + c[0])); } fprintf (C_filepntrmshout, "\n"); } } if (flagval & C_FLAGGEOOUT) { /* If geometry is wanted */ fprintf (C_filepntrgeoout, "2\n" SCOTCH_NUMSTRING "\n", /* Output geometry file header */ (SCOTCH_Num) (velmnbr + n[0] * n[1])); for (c[1] = 0; c[1] < e[1]; c[1] ++) { /* Output element coordinates */ for (c[0] = 0; c[0] < e[0]; c[0] ++) fprintf (C_filepntrgeoout, SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING ".5\t" SCOTCH_NUMSTRING ".5\n", (SCOTCH_Num) (c[1] * e[0] + c[0]), (SCOTCH_Num) c[0], (SCOTCH_Num) (e[1] - 1 - c[1])); } for (c[1] = 0; c[1] < n[1]; c[1] ++) { /* Output node coordinates */ for (c[0] = 0; c[0] < n[0]; c[0] ++) fprintf (C_filepntrgeoout, SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) (velmnbr + c[1] * n[0] + c[0]), (SCOTCH_Num) c[0], (SCOTCH_Num) (e[1] - c[1])); } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mmk_m2.h000066400000000000000000000066451514310134000245740ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mmk_m2.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the bidimensional finite **/ /** element grid mesh building program. **/ /** **/ /** DATES : # Version 4.0 : from : 26 sep 2002 **/ /** to : 26 sep 2002 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamemshout fileBlockName (C_fileTab, 0) /* Source mesh output file name */ #define C_filenamegeoout fileBlockName (C_fileTab, 1) /* Geometry mesh output file name */ #define C_filepntrmshout fileBlockFile (C_fileTab, 0) /* Source mesh output file */ #define C_filepntrgeoout fileBlockFile (C_fileTab, 1) /* Geometry mesh output file */ /*+ Process flags. +*/ #define C_FLAGGEOOUT 0x0001 /* Output mesh geometry */ #define C_FLAGDEFAULT 0x0000 /* Default flags */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mmk_m3.c000066400000000000000000000302371514310134000245620ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mmk_m3.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Creates the source meshes for **/ /** tridimensional mesh source graphs. **/ /** **/ /** DATES : # Version 4.0 : from : 26 sep 2002 **/ /** to : 17 feb 2004 **/ /** # Version 5.0 : from : 13 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /** NOTES : # The nodes and elements of the **/ /** (dX,dY,dZ) mesh are numbered so that **/ /** t(0,0,0) = 0, t(1,0,0) = 1, **/ /** t(dX - 1, 0, 0) = dX - 1, t(0,1,0) = **/ /** dX, t (0, 0, 1) = dX * dY - 1, **/ /** and t(x,y,z) = (z * dY + y) * dX + x. **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "mmk_m3.h" /* ** The static definitions. */ static int C_paraNum = 0; /* Number of parameters */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODEW }, { FILEMODEW } }; static const int C_nghbTab[4] = { 8, 4, 2, 1 }; static const char * C_usageList[] = { "mmk_m3 [ [ []]] ", " -g : Output mesh geometry to ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /****************************************/ /* */ /* The main routine, which computes the */ /* source graph description. */ /* */ /****************************************/ int main ( int argc, char * argv[]) { SCOTCH_Num e[3] = { 1, 1, 1 }; /* Mesh element dimensions */ SCOTCH_Num n[3]; /* Mesh node dimensions */ SCOTCH_Num c[3]; /* Vertex coordinates */ SCOTCH_Num velmnbr; /* First node number */ int flagval; /* Process flags */ int i; errorProg ("mmk_m3"); flagval = C_FLAGDEFAULT; /* Set default flags */ if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_paraNum < 3) { /* If number of parameters not reached */ if ((e[C_paraNum ++] = atoi (argv[i])) < 1) /* Get the dimension */ errorPrint ("main: invalid dimension '%s'", argv[i]); continue; /* Process the other parameters */ } if (C_fileNum < C_FILEARGNBR) /* A file name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'G' : /* Output mesh geometry */ case 'g' : flagval |= C_FLAGGEOOUT; if (argv[i][2] != '\0') C_filenamegeoout = &argv[i][2]; break; case 'H' : /* Give program usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "mmk_m3, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ n[0] = e[0] + 1; n[1] = e[1] + 1; n[2] = e[2] + 1; velmnbr = e[0] * e[1] * e[2]; fprintf (C_filepntrmshout, "1\n" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n0\t" SCOTCH_NUMSTRING "\t000\n", /* Print mesh file header */ (SCOTCH_Num) velmnbr, (SCOTCH_Num) (n[0] * n[1] * n[2]), (SCOTCH_Num) ((velmnbr + (n[0] * n[1] * n[2]) - (n[0] * n[1] + n[0] * n[2] + n[1] * n[2]) + n[0] + n[1] + n[2] - 1) * 8), (SCOTCH_Num) velmnbr); for (c[2] = 0; c[2] < e[2]; c[2] ++) { /* Output element neighbor list */ for (c[1] = 0; c[1] < e[1]; c[1] ++) { for (c[0] = 0; c[0] < e[0]; c[0] ++) fprintf (C_filepntrmshout, "8\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", /* Output neighbors of element */ (SCOTCH_Num) ((c[2] * n[1] + c[1]) * n[0] + c[0]), (SCOTCH_Num) ((c[2] * n[1] + c[1]) * n[0] + (c[0] + 1)), (SCOTCH_Num) ((c[2] * n[1] + (c[1] + 1)) * n[0] + c[0]), (SCOTCH_Num) ((c[2] * n[1] + (c[1] + 1)) * n[0] + (c[0] + 1)), (SCOTCH_Num) (((c[2] + 1) * n[1] + c[1]) * n[0] + c[0]), (SCOTCH_Num) (((c[2] + 1) * n[1] + c[1]) * n[0] + (c[0] + 1)), (SCOTCH_Num) (((c[2] + 1) * n[1] + (c[1] + 1)) * n[0] + c[0]), (SCOTCH_Num) (((c[2] + 1) * n[1] + (c[1] + 1)) * n[0] + (c[0] + 1))); } } for (c[2] = 0; c[2] < n[2]; c[2] ++) { /* Output node neighbor list */ for (c[1] = 0; c[1] < n[1]; c[1] ++) { for (c[0] = 0; c[0] < n[0]; c[0] ++) { fprintf (C_filepntrmshout, "%d", /* Output number of neighboring elements */ C_nghbTab[(((c[0] != 0) && (c[0] != e[0])) ? 0 : 1) + (((c[1] != 0) && (c[1] != e[1])) ? 0 : 1) + (((c[2] != 0) && (c[2] != e[2])) ? 0 : 1)]); if (c[2] != 0) { /* Output neighbors of nodes */ if (c[1] != 0) { if (c[0] != 0) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] - 1) * e[1] + (c[1] - 1)) * e[0] + (c[0] - 1))); if (c[0] != e[0]) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] - 1) * e[1] + (c[1] - 1)) * e[0] + c[0])); } if (c[1] != e[1]) { if (c[0] != 0) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] - 1) * e[1] + c[1]) * e[0] + (c[0] - 1))); if (c[0] != e[0]) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) (((c[2] - 1) * e[1] + c[1]) * e[0] + c[0])); } } if (c[2] != e[2]) { if (c[1] != 0) { if (c[0] != 0) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * e[1] + (c[1] - 1)) * e[0] + (c[0] - 1))); if (c[0] != e[0]) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * e[1] + (c[1] - 1)) * e[0] + c[0])); } if (c[1] != e[1]) { if (c[0] != 0) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * e[1] + c[1]) * e[0] + (c[0] - 1))); if (c[0] != e[0]) fprintf (C_filepntrmshout, "\t" SCOTCH_NUMSTRING, (SCOTCH_Num) ((c[2] * e[1] + c[1]) * e[0] + c[0])); } } fprintf (C_filepntrmshout, "\n"); } } } if (flagval & C_FLAGGEOOUT) { /* If geometry is wanted */ fprintf (C_filepntrgeoout, "3\n" SCOTCH_NUMSTRING "\n", /* Output geometry file header */ (SCOTCH_Num) (velmnbr + n[0] * n[1] * n[2])); for (c[2] = 0; c[2] < e[2]; c[2] ++) { /* Output element coordinates */ for (c[1] = 0; c[1] < e[1]; c[1] ++) { for (c[0] = 0; c[0] < e[0]; c[0] ++) fprintf (C_filepntrgeoout, SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING ".5\t" SCOTCH_NUMSTRING ".5\t" SCOTCH_NUMSTRING ".5\n", (SCOTCH_Num) (((c[2] * e[1]) + c[1]) * e[0] + c[0]), (SCOTCH_Num) c[0], (SCOTCH_Num) (e[1] - 1 - c[1]), (SCOTCH_Num) c[2]); } } for (c[2] = 0; c[2] <= e[2]; c[2] ++) { /* Output node coordinates */ for (c[1] = 0; c[1] <= e[1]; c[1] ++) { for (c[0] = 0; c[0] <= e[0]; c[0] ++) fprintf (C_filepntrgeoout, SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\t" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) (velmnbr + ((c[2] * n[1]) + c[1]) * n[0] + c[0]), (SCOTCH_Num) c[0], (SCOTCH_Num) (e[1] - c[1]), (SCOTCH_Num) c[2]); } } } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mmk_m3.h000066400000000000000000000066451514310134000245750ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mmk_m3.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the data declara- **/ /** tions for the tridimensional finite **/ /** element grid mesh building program. **/ /** **/ /** DATES : # Version 4.0 : from : 26 sep 2002 **/ /** to : 26 sep 2002 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 1 /* Number of files which can be arguments */ #define C_filenamemshout fileBlockName (C_fileTab, 0) /* Source mesh output file name */ #define C_filenamegeoout fileBlockName (C_fileTab, 1) /* Geometry mesh output file name */ #define C_filepntrmshout fileBlockFile (C_fileTab, 0) /* Source mesh output file */ #define C_filepntrgeoout fileBlockFile (C_fileTab, 1) /* Geometry mesh output file */ /*+ Process flags. +*/ #define C_FLAGGEOOUT 0x0001 /* Output mesh geometry */ #define C_FLAGDEFAULT 0x0000 /* Default flags */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mord.c000066400000000000000000000276671514310134000243550ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023,2024 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mord.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a mesh reordering software. **/ /** This module contains the main function. **/ /** **/ /** DATES : # Version 4.0 : from : 15 nov 2002 **/ /** to : 06 jan 2006 **/ /** # Version 5.0 : from : 22 jan 2008 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 08 sep 2008 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 6.1 : from : 30 oct 2019 **/ /** to : 30 oct 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 06 aug 2024 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "mord.h" /* ** The static and global definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* File array */ { FILEMODER }, { FILEMODEW }, { FILEMODEW }, { FILEMODEW } }; static const char * C_usageList[] = { "mord [ [ []]] ", " -c : Choose default ordering strategy according to one or several of :", " b : enforce load balance as much as possible", " q : privilege quality over speed (default)", " s : privilege speed over quality", " t : enforce safety", " -h : Display this help", " -m : Save column block mapping data to ", " -o : Use mesh ordering strategy (see user's manual)", " (see default strategy with option '-vs')", " -t : Save partitioning tree data to ", " -V : Print program version and copyright", " -v : Set verbose mode to :", " s : strategy information", " t : timing information", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Num vnodnbr; /* Number of nodes */ SCOTCH_Mesh meshdat; /* Source graph */ SCOTCH_Ordering ordedat; /* Graph ordering */ SCOTCH_Num * permtab; /* Permutation array */ SCOTCH_Strat stradat; /* Ordering strategy */ SCOTCH_Num straval; char * straptr; int flagval; Clock runtime[2]; /* Timing variables */ int i, j; errorProg ("mord"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } flagval = C_FLAGNONE; /* Default behavior */ straval = 0; /* No strategy flags */ straptr = NULL; SCOTCH_stratInit (&stradat); fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'C' : case 'c' : /* Strategy selection parameters */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'B' : case 'b' : straval |= SCOTCH_STRATBALANCE; break; case 'Q' : case 'q' : straval |= SCOTCH_STRATQUALITY; break; case 'S' : case 's' : straval |= SCOTCH_STRATSPEED; break; case 'T' : case 't' : straval |= SCOTCH_STRATSAFETY; break; default : errorPrint ("main: invalid strategy selection option '%c'", argv[i][j]); } } break; case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'M' : /* Output separator mapping */ case 'm' : flagval |= C_FLAGMAPOUT; if (argv[i][2] != '\0') C_filenamemapout = &argv[i][2]; break; case 'O' : /* Ordering strategy */ case 'o' : straptr = &argv[i][2]; SCOTCH_stratExit (&stradat); SCOTCH_stratInit (&stradat); if ((SCOTCH_stratMeshOrder (&stradat, straptr)) != 0) errorPrint ("main: invalid ordering strategy"); break; case 'V' : fprintf (stderr, "mord, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); case 'v' : /* Output control info */ for (j = 2; argv[i][j] != '\0'; j ++) { switch (argv[i][j]) { case 'S' : case 's' : flagval |= C_FLAGVERBSTR; break; case 'T' : case 't' : flagval |= C_FLAGVERBTIM; break; default : errorPrint ("main: unprocessed parameter '%c' in '%s'", argv[i][j], argv[i]); } } break; default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ clockInit (&runtime[0]); clockStart (&runtime[0]); SCOTCH_meshInit (&meshdat); /* Create mesh structure */ SCOTCH_meshLoad (&meshdat, C_filepntrsrcinp, -1); /* Read source mesh with vertex weights */ SCOTCH_meshSize (&meshdat, NULL, &vnodnbr, NULL); /* Get number of nodes */ if (straval != 0) { if (straptr != NULL) errorPrint ("main: options '-c' and '-o' are exclusive"); SCOTCH_stratMeshOrderBuild (&stradat, straval, 0.1); } clockStop (&runtime[0]); /* Get input time */ clockInit (&runtime[1]); clockStart (&runtime[1]); if ((permtab = (SCOTCH_Num *) memAlloc (vnodnbr * sizeof (SCOTCH_Num))) == NULL) errorPrint ("main: out of memory"); SCOTCH_meshOrderInit (&meshdat, &ordedat, permtab, NULL, NULL, NULL, NULL); /* Create ordering */ SCOTCH_meshOrderCompute (&meshdat, &ordedat, &stradat); /* Perform ordering */ clockStop (&runtime[1]); /* Get ordering time */ #ifdef SCOTCH_DEBUG_ALL SCOTCH_meshOrderCheck (&meshdat, &ordedat); #endif /* SCOTCH_DEBUG_ALL */ clockStart (&runtime[0]); SCOTCH_meshOrderSave (&meshdat, &ordedat, C_filepntrordout); /* Write ordering */ if (flagval & C_FLAGMAPOUT) /* If mapping wanted */ SCOTCH_meshOrderSaveMap (&meshdat, &ordedat, C_filepntrmapout); /* Write mapping */ clockStop (&runtime[0]); /* Get output time */ if (flagval & C_FLAGVERBSTR) { fprintf (C_filepntrlogout, "S\tStrat="); SCOTCH_stratSave (&stradat, C_filepntrlogout); putc ('\n', C_filepntrlogout); } if (flagval & C_FLAGVERBTIM) { fprintf (C_filepntrlogout, "T\tOrder\t\t%g\nT\tI/O\t\t%g\nT\tTotal\t\t%g\n", (double) clockVal (&runtime[1]), (double) clockVal (&runtime[0]), (double) clockVal (&runtime[0]) + (double) clockVal (&runtime[1])); } fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_meshOrderExit (&meshdat, &ordedat); SCOTCH_stratExit (&stradat); SCOTCH_meshExit (&meshdat); memFree (permtab); return (EXIT_SUCCESS); } /*******************************************/ /* */ /* Stubs to avoid including target module. */ /* */ /*******************************************/ SCOTCH_Num T_domWght ( const void * const arch, const void * const dom) { errorPrint ("T_domWghtMord: internal error"); return (1); } SCOTCH_Num _SCOTCHTdomWght ( const void * const arch, const void * const dom) { errorPrint ("T_domWghtMord: internal error"); return (1); } SCOTCH_Num T_domDist ( const void * const arch, const void * const dom0, const void * const dom1) { errorPrint ("T_domDistMord: internal error"); return (1); } SCOTCH_Num _SCOTCHTdomDist ( const void * const arch, const void * const dom0, const void * const dom1) { errorPrint ("T_domDistMord: internal error"); return (1); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mord.h000066400000000000000000000077271514310134000243550ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mord.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : Part of a mesh orderer. **/ /** This module contains the data declara- **/ /** tions for the main routine. **/ /** **/ /** DATES : # Version 4.0 : from : 15 nov 2002 **/ /** to : 22 oct 2003 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /*+ File name aliases. +*/ #define C_FILENBR 4 /* Number of files in list */ #define C_FILEARGNBR 3 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source graph input file name */ #define C_filenameordout fileBlockName (C_fileTab, 1) /* Ordering output file name */ #define C_filenamelogout fileBlockName (C_fileTab, 2) /* Log file name */ #define C_filenamemapout fileBlockName (C_fileTab, 3) /* Separator mapping file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source graph input file */ #define C_filepntrordout fileBlockFile (C_fileTab, 1) /* Ordering output file */ #define C_filepntrlogout fileBlockFile (C_fileTab, 2) /* Log file */ #define C_filepntrmapout fileBlockFile (C_fileTab, 3) /* Separator mapping file */ /*+ Process flags. +*/ #define C_FLAGNONE 0x0000 /* No flags */ #define C_FLAGMAPOUT 0x0001 /* Output mapping data */ #define C_FLAGVERBSTR 0x0002 /* Output strategy string */ #define C_FLAGVERBTIM 0x0004 /* Output timing information */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mtst.c000066400000000000000000000164141514310134000243670ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2010-2012,2014,2018,2019,2023 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mtst.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This program gives statistics on source **/ /** meshes. **/ /** **/ /** DATES : # Version 4.0 : from : 25 feb 2003 **/ /** to : 27 jan 2004 **/ /** # Version 5.0 : from : 23 dec 2007 **/ /** to : 16 mar 2008 **/ /** # Version 5.1 : from : 01 jul 2010 **/ /** to : 14 feb 2011 **/ /** # Version 6.0 : from : 01 jan 2012 **/ /** to : 24 sep 2019 **/ /** # Version 7.0 : from : 21 jan 2023 **/ /** to : 21 jan 2023 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "scotch.h" #include "mtst.h" /* ** The static definitions. */ static int C_fileNum = 0; /* Number of file in arg list */ static File C_fileTab[C_FILENBR] = { /* The file array */ { FILEMODER }, { FILEMODEW } }; static const char * C_usageList[] = { "mtst [ []] ", " -h : Display this help", " -V : Print program version and copyright", NULL }; /******************************/ /* */ /* This is the main function. */ /* */ /******************************/ int main ( int argc, char * argv[]) { SCOTCH_Mesh meshdat; SCOTCH_Num velmnbr; SCOTCH_Num vnodnbr; SCOTCH_Num vnlomin; SCOTCH_Num vnlomax; SCOTCH_Num vnlosum; double vnloavg; double vnlodlt; SCOTCH_Num edegmin; SCOTCH_Num edegmax; double edegavg; double edegdlt; SCOTCH_Num ndegmin; SCOTCH_Num ndegmax; double ndegavg; double ndegdlt; SCOTCH_Num edgenbr; int i; errorProg ("mtst"); if ((argc >= 2) && (argv[1][0] == '?')) { /* If need for help */ usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); } fileBlockInit (C_fileTab, C_FILENBR); /* Set default stream pointers */ for (i = 1; i < argc; i ++) { /* Loop for all option codes */ if ((argv[i][0] != '-') || (argv[i][1] == '\0') || (argv[i][1] == '.')) { /* If found a file name */ if (C_fileNum < C_FILEARGNBR) /* File name has been given */ fileBlockName (C_fileTab, C_fileNum ++) = argv[i]; else errorPrint ("main: too many file names given"); } else { /* If found an option name */ switch (argv[i][1]) { case 'H' : /* Give the usage message */ case 'h' : usagePrint (stdout, C_usageList); return (EXIT_SUCCESS); case 'V' : fprintf (stderr, "mtst, version " SCOTCH_VERSION_STRING "\n"); fprintf (stderr, SCOTCH_COPYRIGHT_STRING "\n"); fprintf (stderr, SCOTCH_LICENSE_STRING "\n"); return (EXIT_SUCCESS); default : errorPrint ("main: unprocessed option '%s'", argv[i]); } } } fileBlockOpen (C_fileTab, C_FILENBR); /* Open all files */ SCOTCH_meshInit (&meshdat); SCOTCH_meshLoad (&meshdat, C_filepntrsrcinp, -1); SCOTCH_meshCheck (&meshdat); SCOTCH_meshSize (&meshdat, &velmnbr, &vnodnbr, &edgenbr); SCOTCH_meshStat (&meshdat, &vnlomin, &vnlomax, &vnlosum, &vnloavg, &vnlodlt, &edegmin, &edegmax, &edegavg, &edegdlt, &ndegmin, &ndegmax, &ndegavg, &ndegdlt); fprintf (C_filepntrdatout, "S\tElements\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) velmnbr); fprintf (C_filepntrdatout, "S\tNodes\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) vnodnbr); fprintf (C_filepntrdatout, "S\tNode load\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) vnlomin, (SCOTCH_Num) vnlomax, (SCOTCH_Num) vnlosum, vnloavg, vnlodlt); fprintf (C_filepntrdatout, "S\tElement degree\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) edegmin, (SCOTCH_Num) edegmax, (SCOTCH_Num) (edgenbr / 2), edegavg, edegdlt); fprintf (C_filepntrdatout, "S\tNode degree\tmin=" SCOTCH_NUMSTRING "\tmax=" SCOTCH_NUMSTRING "\tsum=" SCOTCH_NUMSTRING "\tavg=%g\tdlt=%g\n", (SCOTCH_Num) ndegmin, (SCOTCH_Num) ndegmax, (SCOTCH_Num) (edgenbr / 2), ndegavg, ndegdlt); fprintf (C_filepntrdatout, "S\tEdge\tnbr=" SCOTCH_NUMSTRING "\n", (SCOTCH_Num) (edgenbr / 2)); fileBlockClose (C_fileTab, C_FILENBR); /* Always close explicitely to end eventual (un)compression tasks */ SCOTCH_meshExit (&meshdat); return (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/src/scotch/mtst.h000066400000000000000000000062551514310134000243760ustar00rootroot00000000000000/* Copyright 2004,2007,2008,2014 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : mtst.h **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This file contains the declarations **/ /** for the source mesh analyzer. **/ /** **/ /** DATES : # Version 4.0 : from : 25 feb 2003 **/ /** to : 27 jan 2004 **/ /** # Version 6.0 : from : 12 nov 2014 **/ /** to : 12 nov 2014 **/ /** **/ /************************************************************/ /* ** The defines. */ /** File name aliases. **/ #define C_FILENBR 2 /* Number of files in list */ #define C_FILEARGNBR 2 /* Number of files which can be arguments */ #define C_filenamesrcinp fileBlockName (C_fileTab, 0) /* Source mesh input file name */ #define C_filenamedatout fileBlockName (C_fileTab, 1) /* Statistics output file name */ #define C_filepntrsrcinp fileBlockFile (C_fileTab, 0) /* Source mesh input file */ #define C_filepntrdatout fileBlockFile (C_fileTab, 1) /* Statistics output file */ scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/000077500000000000000000000000001514310134000217525ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/SP2_16.txt000066400000000000000000000000071514310134000234220ustar00rootroot00000000000000leaf 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/T3D_64.tgt000066400000000000000000000000161514310134000233720ustar00rootroot00000000000000torus3D 4 4 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h1.tgt000066400000000000000000000000071514310134000227770ustar00rootroot00000000000000hcub 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h10.tgt000066400000000000000000000000101514310134000230510ustar00rootroot00000000000000hcub 10 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h2.tgt000066400000000000000000000000071514310134000230000ustar00rootroot00000000000000hcub 2 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h3.tgt000066400000000000000000000000071514310134000230010ustar00rootroot00000000000000hcub 3 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h4.tgt000066400000000000000000000000071514310134000230020ustar00rootroot00000000000000hcub 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h5.tgt000066400000000000000000000000071514310134000230030ustar00rootroot00000000000000hcub 5 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h6.tgt000066400000000000000000000000071514310134000230040ustar00rootroot00000000000000hcub 6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h7.tgt000066400000000000000000000000071514310134000230050ustar00rootroot00000000000000hcub 7 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h8.tgt000066400000000000000000000000071514310134000230060ustar00rootroot00000000000000hcub 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/h9.tgt000066400000000000000000000000071514310134000230070ustar00rootroot00000000000000hcub 9 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k1.tgt000066400000000000000000000000101514310134000227740ustar00rootroot00000000000000cmplt 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k12.tgt000066400000000000000000000000111514310134000230570ustar00rootroot00000000000000cmplt 12 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k128.tgt000066400000000000000000000000121514310134000231500ustar00rootroot00000000000000cmplt 128 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k16.tgt000066400000000000000000000000111514310134000230630ustar00rootroot00000000000000cmplt 16 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k2.tgt000066400000000000000000000000101514310134000227750ustar00rootroot00000000000000cmplt 2 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k24.tgt000066400000000000000000000000111514310134000230620ustar00rootroot00000000000000cmplt 24 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k256.tgt000066400000000000000000000000121514310134000231520ustar00rootroot00000000000000cmplt 256 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k32.tgt000066400000000000000000000000111514310134000230610ustar00rootroot00000000000000cmplt 32 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k4.tgt000066400000000000000000000000101514310134000227770ustar00rootroot00000000000000cmplt 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k48.tgt000066400000000000000000000000111514310134000230700ustar00rootroot00000000000000cmplt 48 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k512.tgt000066400000000000000000000000121514310134000231450ustar00rootroot00000000000000cmplt 512 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k6.tgt000066400000000000000000000000101514310134000230010ustar00rootroot00000000000000cmplt 6 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k64.tgt000066400000000000000000000000111514310134000230660ustar00rootroot00000000000000cmplt 64 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k7.tgt000066400000000000000000000000101514310134000230020ustar00rootroot00000000000000cmplt 7 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k8.tgt000066400000000000000000000000101514310134000230030ustar00rootroot00000000000000cmplt 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k9.tgt000066400000000000000000000000101514310134000230040ustar00rootroot00000000000000cmplt 9 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/k96.tgt000066400000000000000000000000111514310134000230730ustar00rootroot00000000000000cmplt 96 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m10x10.tgt000066400000000000000000000000151514310134000234140ustar00rootroot00000000000000mesh2D 10 10 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m10x20.tgt000066400000000000000000000000151514310134000234150ustar00rootroot00000000000000mesh2D 10 20 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m11x13.tgt000066400000000000000000000000151514310134000234200ustar00rootroot00000000000000mesh2D 11 13 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m16x16.tgt000066400000000000000000000000151514310134000234300ustar00rootroot00000000000000mesh2D 16 16 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m16x32.tgt000066400000000000000000000000151514310134000234260ustar00rootroot00000000000000mesh2D 16 32 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m17x19.tgt000066400000000000000000000000151514310134000234340ustar00rootroot00000000000000mesh2D 17 19 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m19x21.tgt000066400000000000000000000000151514310134000234270ustar00rootroot00000000000000mesh2D 19 21 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m19x31.tgt000066400000000000000000000000151514310134000234300ustar00rootroot00000000000000mesh2D 19 31 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m21x23.tgt000066400000000000000000000000151514310134000234220ustar00rootroot00000000000000mesh2D 21 23 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m23x25.tgt000066400000000000000000000000151514310134000234260ustar00rootroot00000000000000mesh2D 23 25 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m24x24.tgt000066400000000000000000000000151514310134000234260ustar00rootroot00000000000000mesh2D 24 24 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m25x27.tgt000066400000000000000000000000151514310134000234320ustar00rootroot00000000000000mesh2D 25 27 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m27x29.tgt000066400000000000000000000000151514310134000234360ustar00rootroot00000000000000mesh2D 27 29 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m29x31.tgt000066400000000000000000000000151514310134000234310ustar00rootroot00000000000000mesh2D 29 31 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m2x2.tgt000066400000000000000000000000131514310134000232540ustar00rootroot00000000000000mesh2D 2 2 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m2x4x8.tgt000066400000000000000000000000151514310134000235400ustar00rootroot00000000000000mesh3D 2 4 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m32x32.tgt000066400000000000000000000000151514310134000234240ustar00rootroot00000000000000mesh2D 32 32 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m3x3.tgt000066400000000000000000000000131514310134000232560ustar00rootroot00000000000000mesh2D 3 3 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m4x4.tgt000066400000000000000000000000131514310134000232600ustar00rootroot00000000000000mesh2D 4 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m4x8.tgt000066400000000000000000000000131514310134000232640ustar00rootroot00000000000000mesh2D 4 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m5x5.tgt000066400000000000000000000000131514310134000232620ustar00rootroot00000000000000mesh2D 5 5 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m5x7.tgt000066400000000000000000000000131514310134000232640ustar00rootroot00000000000000mesh2D 5 7 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m64x64.tgt000066400000000000000000000000151514310134000234360ustar00rootroot00000000000000mesh2D 64 64 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m8x16.tgt000066400000000000000000000000141514310134000233500ustar00rootroot00000000000000mesh2D 8 16 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m8x8.tgt000066400000000000000000000000131514310134000232700ustar00rootroot00000000000000mesh2D 8 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m9x11.tgt000066400000000000000000000000141514310134000233440ustar00rootroot00000000000000mesh2D 9 11 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/m9x7.tgt000066400000000000000000000000131514310134000232700ustar00rootroot00000000000000mesh2D 9 7 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p128.tgt000066400000000000000000000000151514310134000231600ustar00rootroot00000000000000mesh2D 128 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p16.tgt000066400000000000000000000000141514310134000230730ustar00rootroot00000000000000mesh2D 16 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p2.tgt000066400000000000000000000000131514310134000230050ustar00rootroot00000000000000mesh2D 2 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p256.tgt000066400000000000000000000000151514310134000231620ustar00rootroot00000000000000mesh2D 256 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p32.tgt000066400000000000000000000000141514310134000230710ustar00rootroot00000000000000mesh2D 32 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p4.tgt000066400000000000000000000000131514310134000230070ustar00rootroot00000000000000mesh2D 4 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p512.tgt000066400000000000000000000000151514310134000231550ustar00rootroot00000000000000mesh2D 512 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p64.tgt000066400000000000000000000000141514310134000230760ustar00rootroot00000000000000mesh2D 64 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/p8.tgt000066400000000000000000000000131514310134000230130ustar00rootroot00000000000000mesh2D 8 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/t2x4x8.tgt000066400000000000000000000000161514310134000235500ustar00rootroot00000000000000torus3D 2 4 8 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/t4x4x4.tgt000066400000000000000000000000161514310134000235460ustar00rootroot00000000000000torus3D 4 4 4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/vcmplt.tgt000066400000000000000000000000111514310134000237670ustar00rootroot00000000000000varcmplt scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/vhcub.tgt000066400000000000000000000000101514310134000235700ustar00rootroot00000000000000varhcub scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/tgt/void.tgt000066400000000000000000000000101514310134000234220ustar00rootroot00000000000000cmplt 1 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/000077500000000000000000000000001514310134000230305ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/d2color/000077500000000000000000000000001514310134000243745ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/d2color/Makefile000066400000000000000000000055501514310134000260410ustar00rootroot00000000000000## Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## rootdir = ../.. includedir = $(rootdir)/include libdir = $(rootdir)/lib include $(rootdir)/src/Makefile.inc ## ## Project rules. ## .PHONY : clean default all default : all required : (cd ../../src; make scotch) all : required \ test_d2color_seq$(EXE) \ test_d2color_shm$(EXE) \ test_d2match_seq$(EXE) \ test_d2match_shm$(EXE) clean : -$(RM) test_d2color*$(OBJ) test_d2color_seq$(EXE) test_d2color_shm$(EXE) test_d2match_seq$(EXE) test_d2match_shm$(EXE) test_d2color_seq$(EXE) : test_d2color_seq.c $(CC) $(CFLAGS) -Wall -g $(<) $(hamfobj) -I$(includedir) -I$(rootdir)/src/libscotch -L$(libdir) -lscotch -lscotcherr -lm -pthread -o $(@) test_d2color_shm$(EXE) : test_d2color_shm.c $(CC) $(CFLAGS) -Wall -g $(<) $(hamfobj) -I$(includedir) -I$(rootdir)/src/libscotch -L$(libdir) -lscotch -lscotcherr -lm -pthread -o $(@) test_d2match_seq$(EXE) : test_d2match_seq.c $(CC) $(CFLAGS) -Wall -g $(<) $(hamfobj) -I$(includedir) -I$(rootdir)/src/libscotch -L$(libdir) -lscotch -lscotcherr -lm -pthread -o $(@) test_d2match_shm$(EXE) : test_d2match_shm.c $(CC) $(CFLAGS) -Wall -g $(<) $(hamfobj) -I$(includedir) -I$(rootdir)/src/libscotch -L$(libdir) -lscotch -lscotcherr -lm -pthread -o $(@) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/d2color/test_d2color_seq.c000066400000000000000000000274671514310134000300330ustar00rootroot00000000000000/* Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_d2color_seq.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests distance-2 graph **/ /** coloring algorithms. **/ /** **/ /** DATES : # Version 7.0 : from : 01 jun 2021 **/ /** to : 03 jun 2021 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /* ** The type and structure definitions. */ /*+ The work queue. +*/ typedef struct Queue_ { Gnum * queutab; /*+ Pointer to queue +*/ Gnum queusiz; /*+ Size of queue +*/ Gnum qhedidx; /*+ Queue head index +*/ Gnum qtalidx; /*+ Queue tail index +*/ } Queue; /* ** The function prototypes. */ /**********************/ /* */ /* The test routines. */ /* */ /**********************/ static Gnum graphD2color2 ( const Graph * restrict const grafptr, const Gnum * restrict randtax, const Gnum vertnum) { Gnum randmax; Gnum veraend; Gnum edgenum; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; veraend = vertnum; randmax = randtax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum raveval; vertend = edgetax[edgenum]; raveval = randtax[vertend]; if ((raveval > randmax) || ((raveval == randmax) && (vertend > veraend))) { randmax = raveval; veraend = vertend; } } return (veraend); } int graphD2color ( Graph * restrict const grafptr, Gnum * restrict const colotab) { IntRandContext randdat; Gnum * restrict randtax; Gnum * restrict vmaxtax; Gnum * restrict colotax; Queue queudat; Gnum colonbr; Gnum vrmnnbr; Gnum vertnum; Clock timedat; /* Timing variable */ const Gnum baseval = grafptr->baseval; const Gnum vertnbr = grafptr->vertnbr; const Gnum vertnnd = grafptr->vertnnd; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; if (vertnbr <= 0) /* Do not consider empty graphs */ return (0); if (memAllocGroup ((void **) (void *) &queudat.queutab, (size_t) (vertnbr * sizeof (Gnum)), &randtax, (size_t) (vertnbr * sizeof (Gnum)), &vmaxtax, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphD2color: out of memory"); return (-1); } colotax = colotab - baseval; randtax -= baseval; vmaxtax -= baseval; queudat.queusiz = vertnbr; /* Initialize work queue */ queudat.qhedidx = /* Work queue is empty */ queudat.qtalidx = 0; intRandProc (&randdat, 1); /* Use a fixed random seed for the sake of reproducibility */ intRandSeed (&randdat, 1); clockInit (&timedat); clockStart (&timedat); for (vertnum = baseval; vertnum < vertnnd; vertnum ++) randtax[vertnum] = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { vmaxtax[vertnum] = graphD2color2 (grafptr, randtax, vertnum); if (vmaxtax[vertnum] == vertnum) { /* If vertex is locally dominant */ queudat.queutab[queudat.qtalidx] = vertnum; /* Enqueue it for further processing */ queudat.qtalidx ++; /* No overflow possible yet */ } } for (vrmnnbr = vertnbr, colonbr = 0; ; ) { /* Outer loop on colors */ Gnum qtalidx; /* Saved tail index */ Gnum veconbr; veconbr = 0; qtalidx = queudat.qtalidx; /* Keep current tail index */ while (queudat.qhedidx != qtalidx) { /* As long as there are enqueued vertices */ Gnum vertnum; Gnum edgenum; vertnum = queudat.queutab[queudat.qhedidx]; /* Dequeue vertex to consider */ queudat.qhedidx = (queudat.qhedidx + 1) % queudat.queusiz; if (randtax[vertnum] < 0) /* If vertex already colored, skip it */ continue; if (vmaxtax[vertnum] != vertnum) /* If vertex not locally dominant, skip it */ continue; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (vmaxtax[vertend] != vertnum) break; } if (edgenum < vendtax[vertnum]) /* If vertex is not distance-2 locally dominant, skip it */ continue; colotax[vertnum] = colonbr; /* Set vertex color */ randtax[vertnum] = -1; /* Do no longer consider vertex for dominance */ veconbr ++; queudat.queutab[queudat.qtalidx] = vertnum; /* Enqueue it for further processing */ queudat.qtalidx = (queudat.qtalidx + 1) % queudat.queusiz; } printf ("Color " GNUMSTRING " : " GNUMSTRING "\n", colonbr, veconbr); colonbr ++; /* One more color used */ vrmnnbr -= veconbr; if (vrmnnbr <= 0) /* Exit outer loop if nothing more to do */ break; qtalidx = queudat.qtalidx; /* Keep current tail index */ while (queudat.qhedidx != qtalidx) { /* As long as there are enqueued vertices */ Gnum vertnum; Gnum edgenum; vertnum = queudat.queutab[queudat.qhedidx]; /* Dequeue vertex whose neighbors are to recompute */ queudat.qhedidx = (queudat.qhedidx + 1) % queudat.queusiz; vmaxtax[vertnum] = graphD2color2 (grafptr, randtax, vertnum); for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; vmaxtax[vertend] = graphD2color2 (grafptr, randtax, vertend); queudat.queutab[queudat.qtalidx] = vmaxtax[vertend]; /* Enqueue it as vertex of interest */ queudat.qtalidx = (queudat.qtalidx + 1) % queudat.queusiz; } } } clockStop (&timedat); printf ("Time: %g\n", (double) clockVal (&timedat)); memFree (queudat.queutab); /* Free group leader */ return (colonbr); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { Graph grafdat; Gnum * restrict colotab; Gnum colonbr; Gnum colonum; Gnum * restrict chektax; FILE * fileptr; Gnum vertnum; if (argc != 3) { errorPrint ("usage: %s graph mapping", argv[0]); exit (EXIT_FAILURE); } graphInit (&grafdat); if ((fileptr = fopen (argv[1], "r")) == NULL) { errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (graphLoad (&grafdat, fileptr, -1, 0) != 0) { errorPrint ("main: cannot read graph"); exit (EXIT_FAILURE); } fclose (fileptr); if ((colotab = memAlloc (grafdat.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } memSet (colotab, ~0, grafdat.vertnbr * sizeof (Gnum)); /* Test for internal errors */ colonbr = graphD2color (&grafdat, colotab); if ((fileptr = fopen (argv[2], "w")) == NULL) { errorPrint ("main: cannot open mapping file"); exit (EXIT_FAILURE); } fprintf (fileptr, GNUMSTRING "\n", grafdat.vertnbr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) fprintf (fileptr, GNUMSTRING "\n" GNUMSTRING "\n", vertnum + grafdat.baseval, colotab[vertnum]); fclose (fileptr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) { /* Un-based loop on colotab */ if ((colotab[vertnum] < 0) || (colotab[vertnum] >= colonbr)) { errorPrint ("main: invalid coloring (1)"); exit (EXIT_FAILURE); } } if ((chektax = memAlloc (grafdat.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } memSet (chektax, ~0, grafdat.vertnbr * sizeof (Gnum)); chektax -= grafdat.baseval; for (colonum = 0; colonum < colonbr; colonum ++) { Gnum vertnum; for (vertnum = grafdat.baseval; vertnum < grafdat.vertnnd; vertnum ++) { Gnum edgenum; if (colotab[vertnum - grafdat.baseval] != colonum) continue; if (chektax[vertnum] == colonum) { errorPrint ("main: invalid coloring (2)"); exit (EXIT_FAILURE); } chektax[vertnum] = colonum; for (edgenum = grafdat.verttax[vertnum]; edgenum < grafdat.vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = grafdat.edgetax[edgenum]; if (chektax[vertend] == colonum) { errorPrint ("main: invalid coloring (3)"); exit (EXIT_FAILURE); } chektax[vertend] = colonum; } } } memFree (chektax + grafdat.baseval); memFree (colotab); graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/d2color/test_d2color_shm.c000066400000000000000000000372661514310134000300300ustar00rootroot00000000000000/* Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_d2color_shm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests shared-memory **/ /** distance-2 graph coloring algorithms. **/ /** **/ /** DATES : # Version 7.0 : from : 02 jun 2021 **/ /** to : 02 jun 2021 **/ /** **/ /************************************************************/ #define CENTRALIZED_RANDOM /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_thread.h" #include "common_thread_system.h" #include "graph.h" /* ** The type and structure definitions. */ /*+ The thread-specific data block. +*/ typedef struct ColoData_ { int seedval; /*+ Random seed for all threads +*/ Gnum veconbr; /*+ Number of colored vertices +*/ } ColoData; /*+ The block data structure +*/ typedef struct ColoGroup_ { ColoData * datatab; /*+ Thread test data +*/ Graph * grafptr; /*+ Pointer to graph +*/ Gnum * randtax; /*+ Array of vertex random values +*/ Gnum * vmaxtax; /*+ Array of maximum vertices +*/ Gnum * colotax; /*+ Vertex coloring array +*/ Gnum colonbr; /*+ Number of colors +*/ int revaval; /*+ Return value for threads +*/ } ColoGroup; /*************************/ /* */ /* The threaded routine. */ /* */ /*************************/ static void graphD2colorReduce ( ColoData * restrict const vlocptr, /* Pointer to local value */ ColoData * restrict const vremptr) /* Pointer to remote value */ { vlocptr->veconbr += vremptr->veconbr; } static Gnum graphD2color2 ( const Graph * restrict const grafptr, const Gnum * restrict randtax, const Gnum vertnum) { Gnum randmax; Gnum veraend; Gnum edgenum; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; veraend = vertnum; randmax = randtax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum raveval; vertend = edgetax[edgenum]; raveval = randtax[vertend]; if ((raveval > randmax) || ((raveval == randmax) && (vertend > veraend))) { randmax = raveval; veraend = vertend; } } return (veraend); } void graphD2colorShm ( ThreadDescriptor * restrict const descptr, volatile ColoGroup * restrict grouptr) { IntRandContext randdat; Gnum * restrict vnumtab; Gnum vnumnbr; Gnum * restrict queutab; Gnum queunbr; Gnum colonbr; Gnum vrmnnbr; /*+ Global number of vertices to process +*/ Gnum vertbas; Gnum vertnnd; Gnum vertnum; const Graph * restrict const grafptr = grouptr->grafptr; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); ColoData * const dataptr = &grouptr->datatab[thrdnum]; Gnum * randtax = grouptr->randtax; Gnum * vmaxtax = grouptr->vmaxtax; Gnum * colotax = grouptr->colotax; if (grafptr->vertnbr <= 0) /* Do not consider empty graphs */ return; vertbas = grafptr->baseval + DATASCAN (grafptr->vertnbr, thrdnbr, thrdnum); vertnnd = grafptr->baseval + DATASCAN (grafptr->vertnbr, thrdnbr, thrdnum + 1); vnumnbr = vertnnd - vertbas; if (memAllocGroup ((void **) (void *) &vnumtab, (size_t) (vnumnbr * sizeof (Gnum)), &queutab, (size_t) (vnumnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphD2colorShm: out of memory"); grouptr->revaval = 1; /* No need of lock since always same value written */ } intRandProc (&randdat, 1); /* Use a fixed random seed for the sake of reproducibility */ intRandSeed (&randdat, dataptr->seedval); /* Each thread has its own seed */ #ifndef CENTRALIZED_RANDOM for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) randtax[vertnum] = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ #endif /* CENTRALIZED_RANDOM */ threadBarrier (descptr); /* Wait until all random numbers assigned */ if (grouptr->revaval != 0) /* In case of error, all threads abort */ return; for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* Compute maximum vertex of local vertices */ vmaxtax[vertnum] = graphD2color2 (grafptr, randtax, vertnum); vnumtab[vertnum - vertbas] = vertnum; /* Fill list of remaining vertices */ } threadBarrier (descptr); /* Wait until all maximum vertices computed */ for (colonbr = 0, vrmnnbr = grafptr->vertnbr; ; ) { /* Outer loop on colors */ Gnum vnumidx; Gnum vnumtmp; vnumtmp = 0; queunbr = 0; for (vnumidx = 0; vnumidx < vnumnbr; vnumidx ++) { Gnum vertnum; Gnum edgenum; vertnum = vnumtab[vnumidx]; /* Get vertex number from index array */ if (vmaxtax[vertnum] != vertnum) { /* If vertex is not locally dominant */ vnumtab[vnumtmp ++] = vertnum; /* Re-enqueue it */ continue; } for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (vmaxtax[vertend] != vertnum) break; } if (edgenum < vendtax[vertnum]) { /* If vertex is not distance-2 dominant */ vnumtab[vnumtmp ++] = vertnum; /* Re-enqueue it */ continue; } colotax[vertnum] = colonbr; randtax[vertnum] = -1; queutab[queunbr ++] = vertnum; /* Enqueue it for further processing */ } dataptr->veconbr = vnumnbr - vnumtmp; /* Number of locally colored vertices is difference in index array size */ vnumnbr = vnumtmp; /* Set new size of vertex number array */ colonbr ++; /* One more color used */ threadReduce (descptr, (void *) dataptr, sizeof (ColoData), (ThreadReduceFunc) graphD2colorReduce, 0); if (thrdnum == 0) printf ("Color " GNUMSTRING " : " GNUMSTRING "\n", colonbr, dataptr->veconbr); vrmnnbr -= grouptr->datatab[0].veconbr; /* Update global number of remaining vertices */ if (vrmnnbr <= 0) /* Exit outer loop if nothing more to do */ break; while (queunbr > 0) { Gnum vertnum; Gnum edgenum; vertnum = queutab[-- queunbr]; vmaxtax[vertnum] = graphD2color2 (grafptr, randtax, vertnum); /* Recompute maximum vertex of vertex itself */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* For all distance-1 neighbors of colored vertex */ Gnum vertend; vertend = edgetax[edgenum]; vmaxtax[vertend] = graphD2color2 (grafptr, randtax, vertend); /* Recompute maximum vertex of distance-1 neighbor */ } } threadBarrier (descptr); /* Wait until all maximum vertex updates computed */ } memFree (vnumtab); /* Free group leader */ if (thrdnum == 0) /* Set number of colors */ grouptr->colonbr = colonbr; } int graphD2color ( Graph * restrict const grafptr, Gnum * restrict const colotab, int thrdnbr) /*+ Desired nunber of threads, or -1 +*/ { ThreadContext contdat; IntRandContext randdat; ColoGroup groudat; Clock timedat; /* Timing variable */ Gnum thrdnum; #ifdef CENTRALIZED_RANDOM Gnum vertnum; #endif /* CENTRALIZED_RANDOM */ const Gnum baseval = grafptr->baseval; const Gnum vertnbr = grafptr->vertnbr; if (thrdnbr < 1) thrdnbr = threadSystemCoreNbr (); if (threadContextInit (&contdat, thrdnbr, NULL) != 0) { SCOTCH_errorPrint ("graphD2color: cannot initialize thread context"); return (1); } thrdnbr = threadContextNbr (&contdat); printf ("%d threads in context\n", thrdnbr); if (memAllocGroup ((void **) (void *) &groudat.datatab, (size_t) (thrdnbr * sizeof (ColoData)), &groudat.randtax, (size_t) (vertnbr * sizeof (Gnum)), &groudat.vmaxtax, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphD2color: out of memory"); return (1); } groudat.grafptr = grafptr; groudat.colotax = colotab - baseval; groudat.colonbr = 0; /* In case of empty graph */ groudat.randtax -= baseval; groudat.vmaxtax -= baseval; groudat.revaval = 0; /* Assume everything will go well */ intRandProc (&randdat, 1); /* Use a fixed random seed for the sake of reproducibility */ intRandSeed (&randdat, 1); #ifdef CENTRALIZED_RANDOM for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) groudat.randtax[vertnum] = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ #endif /* CENTRALIZED_RANDOM */ clockInit (&timedat); clockStart (&timedat); for (thrdnum = 0; thrdnum < thrdnbr; thrdnum ++) groudat.datatab[thrdnum].seedval = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ threadLaunch (&contdat, (ThreadFunc) graphD2colorShm, (void *) &groudat); memFree (groudat.datatab); clockStop (&timedat); printf ("time: %g\n", (double) clockVal (&timedat)); threadContextExit (&contdat); return ((groudat.revaval != 0) ? -1 : groudat.colonbr); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { Graph grafdat; Gnum * restrict colotab; Gnum colonbr; Gnum colonum; Gnum * restrict chektax; FILE * fileptr; Gnum vertnum; int thrdnbr; if ((argc < 3) || (argc > 4)) { errorPrint ("usage: %s graph mapping thrdnbr", argv[0]); exit (EXIT_FAILURE); } thrdnbr = -1; if ((argc == 4) && ((thrdnbr = atoi (argv[3])) <= 0)) { errorPrint ("main: invalid number of threads"); exit (EXIT_FAILURE); } graphInit (&grafdat); if ((fileptr = fopen (argv[1], "r")) == NULL) { errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (graphLoad (&grafdat, fileptr, -1, 0) != 0) { errorPrint ("main: cannot read graph"); exit (EXIT_FAILURE); } fclose (fileptr); if ((colotab = memAlloc (grafdat.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } memSet (colotab, ~0, grafdat.vertnbr * sizeof (Gnum)); /* Test for internal errors */ colonbr = graphD2color (&grafdat, colotab, thrdnbr); if ((fileptr = fopen (argv[2], "w")) == NULL) { errorPrint ("main: cannot open mapping file"); exit (EXIT_FAILURE); } fprintf (fileptr, GNUMSTRING "\n", grafdat.vertnbr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) fprintf (fileptr, GNUMSTRING "\n" GNUMSTRING "\n", vertnum + grafdat.baseval, colotab[vertnum]); fclose (fileptr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) { /* Un-based loop on colotab */ if ((colotab[vertnum] < 0) || (colotab[vertnum] >= colonbr)) { errorPrint ("main: invalid coloring (1)"); exit (EXIT_FAILURE); } } if ((chektax = memAlloc (grafdat.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("main: out of memory (2)"); exit (EXIT_FAILURE); } memSet (chektax, ~0, grafdat.vertnbr * sizeof (Gnum)); chektax -= grafdat.baseval; for (colonum = 0; colonum < colonbr; colonum ++) { Gnum vertnum; for (vertnum = grafdat.baseval; vertnum < grafdat.vertnnd; vertnum ++) { Gnum edgenum; if (colotab[vertnum - grafdat.baseval] != colonum) continue; if (chektax[vertnum] == colonum) { errorPrint ("main: invalid coloring (2)"); exit (EXIT_FAILURE); } chektax[vertnum] = colonum; for (edgenum = grafdat.verttax[vertnum]; edgenum < grafdat.vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = grafdat.edgetax[edgenum]; if (chektax[vertend] == colonum) { errorPrint ("main: invalid coloring (3)"); exit (EXIT_FAILURE); } chektax[vertend] = colonum; } } } memFree (chektax + grafdat.baseval); memFree (colotab); graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/d2color/test_d2match_seq.c000066400000000000000000000266221514310134000300010ustar00rootroot00000000000000/* Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_d2match_seq.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests distance-2 graph **/ /** matching algorithms. **/ /** **/ /** DATES : # Version 7.0 : from : 05 jun 2021 **/ /** to : 05 jun 2021 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" /* ** The type and structure definitions. */ /*+ The work queue. +*/ typedef struct Queue_ { Gnum * queutab; /*+ Pointer to queue +*/ Gnum queusiz; /*+ Size of queue +*/ Gnum qhedidx; /*+ Queue head index +*/ Gnum qtalidx; /*+ Queue tail index +*/ } Queue; /* ** The function prototypes. */ /**********************/ /* */ /* The test routines. */ /* */ /**********************/ static Gnum graphD2match2 ( const Graph * restrict const grafptr, const Gnum * restrict randtax, const Gnum vertnum) { Gnum randmax; Gnum veraend; Gnum edgenum; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; veraend = vertnum; randmax = randtax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum raveval; vertend = edgetax[edgenum]; raveval = randtax[vertend]; if ((raveval > randmax) || ((raveval == randmax) && (vertend > veraend))) { randmax = raveval; veraend = vertend; } } return (veraend); } int graphD2match ( Graph * restrict const grafptr, Gnum * restrict const matetab) { IntRandContext randdat; Gnum * restrict randtax; Gnum * restrict vmaxtax; Gnum * restrict matetax; Queue queudat; Gnum stepnbr; Gnum vrmnnbr; Gnum vertnum; Clock timedat; /* Timing variable */ const Gnum baseval = grafptr->baseval; const Gnum vertnbr = grafptr->vertnbr; const Gnum vertnnd = grafptr->vertnnd; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; if (vertnbr <= 0) /* Do not consider empty graphs */ return (0); if (memAllocGroup ((void **) (void *) &queudat.queutab, (size_t) (vertnbr * sizeof (Gnum)), &randtax, (size_t) (vertnbr * sizeof (Gnum)), &vmaxtax, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphD2match: out of memory"); return (-1); } matetax = matetab - baseval; randtax -= baseval; vmaxtax -= baseval; queudat.queusiz = vertnbr; /* Initialize work queue */ queudat.qhedidx = /* Work queue is empty */ queudat.qtalidx = 0; intRandProc (&randdat, 1); /* Use a fixed random seed for the sake of reproducibility */ intRandSeed (&randdat, 1); clockInit (&timedat); clockStart (&timedat); for (vertnum = baseval; vertnum < vertnnd; vertnum ++) randtax[vertnum] = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ for (vertnum = baseval; vertnum < vertnnd; vertnum ++) { vmaxtax[vertnum] = graphD2match2 (grafptr, randtax, vertnum); if (vmaxtax[vertnum] == vertnum) { /* If vertex is locally dominant */ queudat.queutab[queudat.qtalidx] = vertnum; /* Enqueue it for further processing */ queudat.qtalidx ++; /* No overflow possible yet */ } } for (vrmnnbr = vertnbr, stepnbr = 0; ; ) { /* Outer loop on steps */ Gnum qtalidx; /* Saved tail index */ Gnum vemanbr; vemanbr = 0; qtalidx = queudat.qtalidx; /* Keep current tail index */ while (queudat.qhedidx != qtalidx) { /* As long as there are enqueued vertices */ Gnum vertnum; Gnum edgenum; Gnum vertend; vertnum = queudat.queutab[queudat.qhedidx]; /* Dequeue vertex to consider */ queudat.qhedidx = (queudat.qhedidx + 1) % queudat.queusiz; if (randtax[vertnum] < 0) /* If vertex already matched, skip it */ continue; if (vmaxtax[vertnum] != vertnum) /* If vertex not locally dominant, skip it */ continue; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (vmaxtax[vertend] != vertnum) break; } if (edgenum < vendtax[vertnum]) /* If vertex is not distance-2 locally dominant, skip it */ continue; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* Select first unmated neighbor */ vertend = edgetax[edgenum]; if (randtax[vertend] >= 0) break; } if (edgenum < vendtax[vertnum]) { /* If suitable mate found */ matetax[vertend] = vertnum; /* Mate neighbor mate with vertex */ randtax[vertend] = -1; /* Do no longer consider neighbor for dominance */ vemanbr ++; queudat.queutab[queudat.qtalidx] = vertend; /* Enqueue mate for further processing */ queudat.qtalidx = (queudat.qtalidx + 1) % queudat.queusiz; } else vertend = vertnum; matetax[vertnum] = vertend; /* Mate vertex with its neighbor */ randtax[vertnum] = -1; /* Do no longer consider vertex for dominance */ vemanbr ++; queudat.queutab[queudat.qtalidx] = vertnum; /* Enqueue vertex for further processing */ queudat.qtalidx = (queudat.qtalidx + 1) % queudat.queusiz; } printf ("Step " GNUMSTRING " : " GNUMSTRING "\n", stepnbr, vemanbr); stepnbr ++; /* One more step done */ vrmnnbr -= vemanbr; if (vrmnnbr <= 0) /* Exit outer loop if nothing more to do */ break; qtalidx = queudat.qtalidx; /* Keep current tail index */ while (queudat.qhedidx != qtalidx) { /* As long as there are enqueued vertices */ Gnum vertnum; Gnum edgenum; vertnum = queudat.queutab[queudat.qhedidx]; /* Dequeue vertex whose neighbors are to recompute */ queudat.qhedidx = (queudat.qhedidx + 1) % queudat.queusiz; vmaxtax[vertnum] = graphD2match2 (grafptr, randtax, vertnum); for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; vmaxtax[vertend] = graphD2match2 (grafptr, randtax, vertend); queudat.queutab[queudat.qtalidx] = vmaxtax[vertend]; /* Enqueue it as vertex of interest */ queudat.qtalidx = (queudat.qtalidx + 1) % queudat.queusiz; } } } clockStop (&timedat); printf ("Time: %g\n", (double) clockVal (&timedat)); memFree (queudat.queutab); /* Free group leader */ return (stepnbr); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { Graph grafdat; Gnum * restrict matetab; FILE * fileptr; Gnum vertnum; if (argc != 3) { errorPrint ("usage: %s graph matching", argv[0]); exit (EXIT_FAILURE); } graphInit (&grafdat); if ((fileptr = fopen (argv[1], "r")) == NULL) { errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (graphLoad (&grafdat, fileptr, -1, 0) != 0) { errorPrint ("main: cannot read graph"); exit (EXIT_FAILURE); } fclose (fileptr); if ((matetab = memAlloc (grafdat.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } memSet (matetab, ~0, grafdat.vertnbr * sizeof (Gnum)); /* Test for internal errors */ graphD2match (&grafdat, matetab); if ((fileptr = fopen (argv[2], "w")) == NULL) { errorPrint ("main: cannot open matching file"); exit (EXIT_FAILURE); } fprintf (fileptr, GNUMSTRING "\n", grafdat.vertnbr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) fprintf (fileptr, GNUMSTRING "\n" GNUMSTRING "\n", vertnum + grafdat.baseval, matetab[vertnum]); fclose (fileptr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) { /* Un-based loop on matetab */ if ((matetab[vertnum] < 0) || (matetab[vertnum] >= grafdat.vertnbr)) { errorPrint ("main: invalid matching"); exit (EXIT_FAILURE); } } memFree (matetab); graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/d2color/test_d2match_shm.c000066400000000000000000000370271514310134000300010ustar00rootroot00000000000000/* Copyright 2021 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_d2match_shm.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests shared-memory **/ /** distance-2 graph matching algorithms. **/ /** **/ /** DATES : # Version 7.0 : from : 05 jun 2021 **/ /** to : 05 jun 2021 **/ /** **/ /************************************************************/ #define CENTRALIZED_RANDOM /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "common_thread.h" #include "common_thread_system.h" #include "graph.h" /* ** The type and structure definitions. */ /*+ The thread-specific data block. +*/ typedef struct MateData_ { int seedval; /*+ Random seed for all threads +*/ Gnum vemanbr; /*+ Number of matched vertices +*/ } MateData; /*+ The block data structure +*/ typedef struct MateGroup_ { MateData * datatab; /*+ Thread test data +*/ Graph * grafptr; /*+ Pointer to graph +*/ Gnum * randtax; /*+ Array of vertex random values +*/ Gnum * vmaxtax; /*+ Array of maximum vertex values +*/ Gnum * matetax; /*+ Vertex matching array +*/ Gnum stepnbr; /*+ Number of steps +*/ int revaval; /*+ Return value for threads +*/ } MateGroup; /*************************/ /* */ /* The threaded routine. */ /* */ /*************************/ static void graphD2matchReduce ( MateData * restrict const vlocptr, /* Pointer to local value */ MateData * restrict const vremptr) /* Pointer to remote value */ { vlocptr->vemanbr += vremptr->vemanbr; } static Gnum graphD2match2 ( const Graph * restrict const grafptr, const Gnum * restrict randtax, const Gnum vertnum) { Gnum randmax; Gnum veraend; Gnum edgenum; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; veraend = vertnum; randmax = randtax[vertnum]; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; Gnum raveval; vertend = edgetax[edgenum]; raveval = randtax[vertend]; if ((raveval > randmax) || ((raveval == randmax) && (vertend > veraend))) { randmax = raveval; veraend = vertend; } } return (veraend); } void graphD2matchShm ( ThreadDescriptor * restrict const descptr, volatile MateGroup * restrict grouptr) { IntRandContext randdat; Gnum * restrict vnumtab; Gnum vnumnbr; Gnum * restrict queutab; Gnum queunbr; Gnum stepnbr; Gnum vrmnnbr; /*+ Global number of vertices to process +*/ Gnum vertbas; Gnum vertnnd; Gnum vertnum; const Graph * restrict const grafptr = grouptr->grafptr; const Gnum * restrict const verttax = grafptr->verttax; const Gnum * restrict const vendtax = grafptr->vendtax; const Gnum * restrict const edgetax = grafptr->edgetax; const int thrdnbr = threadNbr (descptr); const int thrdnum = threadNum (descptr); MateData * const dataptr = &grouptr->datatab[thrdnum]; Gnum * randtax = grouptr->randtax; Gnum * vmaxtax = grouptr->vmaxtax; Gnum * matetax = grouptr->matetax; if (grafptr->vertnbr <= 0) /* Do not consider empty graphs */ return; vertbas = grafptr->baseval + DATASCAN (grafptr->vertnbr, thrdnbr, thrdnum); vertnnd = grafptr->baseval + DATASCAN (grafptr->vertnbr, thrdnbr, thrdnum + 1); vnumnbr = vertnnd - vertbas; if (memAllocGroup ((void **) (void *) &vnumtab, (size_t) (vnumnbr * sizeof (Gnum)), &queutab, (size_t) (vnumnbr * sizeof (Gnum) * 2), NULL) == NULL) { /* A local vertex and its non-local mate can be enqueued */ errorPrint ("graphD2matchShm: out of memory"); grouptr->revaval = 1; /* No need of lock since always same value written */ } intRandProc (&randdat, 1); /* Use a fixed random seed for the sake of reproducibility */ intRandSeed (&randdat, dataptr->seedval); /* Each thread has its own seed */ #ifndef CENTRALIZED_RANDOM for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) randtax[vertnum] = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ #endif /* CENTRALIZED_RANDOM */ threadBarrier (descptr); /* Wait until all random numbers assigned */ if (grouptr->revaval != 0) /* In case of error, all threads abort */ return; for (vertnum = vertbas; vertnum < vertnnd; vertnum ++) { /* Compute maximum vertex of local vertices */ vmaxtax[vertnum] = graphD2match2 (grafptr, randtax, vertnum); vnumtab[vertnum - vertbas] = vertnum; /* Fill list of remaining vertices */ } threadBarrier (descptr); /* Wait until all maximum vertices computed */ for (stepnbr = 0, vrmnnbr = grafptr->vertnbr; ; ) { /* Outer loop on steps */ Gnum vnumidx; Gnum vnumtmp; Gnum vemanbr; vemanbr = 0; queunbr = 0; for (vnumidx = vnumtmp = 0; vnumidx < vnumnbr; vnumidx ++) { Gnum vertnum; Gnum edgenum; Gnum vertend; vertnum = vnumtab[vnumidx]; /* Get vertex number from index array */ if (randtax[vertnum] < 0) /* If local vertex has been mated by a distant neighbor, skip it */ continue; if (vmaxtax[vertnum] != vertnum) { /* If vertex is not locally dominant */ vnumtab[vnumtmp ++] = vertnum; /* Re-enqueue it */ continue; } for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { Gnum vertend; vertend = edgetax[edgenum]; if (vmaxtax[vertend] != vertnum) break; } if (edgenum < vendtax[vertnum]) { /* If vertex is not distance-2 dominant */ vnumtab[vnumtmp ++] = vertnum; /* Re-enqueue it */ continue; } for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* Select first unmated neighbor */ vertend = edgetax[edgenum]; if (randtax[vertend] >= 0) break; } if (edgenum < vendtax[vertnum]) { /* If suitable mate found */ matetax[vertend] = vertnum; /* Mate neighbor mate with vertex */ randtax[vertend] = -1; /* Do no longer consider neighbor for dominance */ vemanbr ++; queutab[queunbr ++] = vertend; /* Enqueue mate for further processing */ } else vertend = vertnum; matetax[vertnum] = vertend; /* Mate vertex with its neighbor */ randtax[vertnum] = -1; /* Do no longer consider vertex for dominance */ vemanbr ++; queutab[queunbr ++] = vertnum; /* Enqueue vertex for further processing */ } vnumnbr = vnumtmp; /* Set new size of vertex number array */ stepnbr ++; /* One more step done */ dataptr->vemanbr = vemanbr; /* Prepare for reduction */ threadReduce (descptr, (void *) dataptr, sizeof (MateData), (ThreadReduceFunc) graphD2matchReduce, 0); if (thrdnum == 0) printf ("Mater " GNUMSTRING " : " GNUMSTRING "\n", stepnbr, dataptr->vemanbr); vrmnnbr -= grouptr->datatab[0].vemanbr; /* Update global number of remaining vertices */ if (vrmnnbr <= 0) /* Exit outer loop if nothing more to do */ break; while (queunbr > 0) { Gnum vertnum; Gnum edgenum; vertnum = queutab[-- queunbr]; vmaxtax[vertnum] = graphD2match2 (grafptr, randtax, vertnum); /* Recompute maximum vertex of vertex itself */ for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++) { /* For all distance-1 neighbors of colored vertex */ Gnum vertend; vertend = edgetax[edgenum]; vmaxtax[vertend] = graphD2match2 (grafptr, randtax, vertend); /* Recompute maximum vertex of distance-1 neighbor */ } } threadBarrier (descptr); /* Wait until all maximum vertex updates computed */ } memFree (vnumtab); /* Free group leader */ if (thrdnum == 0) /* Set number of colors */ grouptr->stepnbr = stepnbr; } int graphD2match ( Graph * restrict const grafptr, Gnum * restrict const matetab, int thrdnbr) /*+ Desired nunber of threads, or -1 +*/ { ThreadContext contdat; IntRandContext randdat; MateGroup groudat; Clock timedat; /* Timing variable */ Gnum thrdnum; #ifdef CENTRALIZED_RANDOM Gnum vertnum; #endif /* CENTRALIZED_RANDOM */ const Gnum baseval = grafptr->baseval; const Gnum vertnbr = grafptr->vertnbr; if (thrdnbr < 1) thrdnbr = threadSystemCoreNbr (); if (threadContextInit (&contdat, thrdnbr, NULL) != 0) { SCOTCH_errorPrint ("graphD2match: cannot initialize thread context"); return (1); } thrdnbr = threadContextNbr (&contdat); printf ("%d threads in context\n", thrdnbr); if (memAllocGroup ((void **) (void *) &groudat.datatab, (size_t) (thrdnbr * sizeof (MateData)), &groudat.randtax, (size_t) (vertnbr * sizeof (Gnum)), &groudat.vmaxtax, (size_t) (vertnbr * sizeof (Gnum)), NULL) == NULL) { errorPrint ("graphD2match: out of memory"); return (1); } groudat.grafptr = grafptr; groudat.matetax = matetab - baseval; groudat.randtax -= baseval; groudat.vmaxtax -= baseval; groudat.stepnbr = 0; /* In case of empty graph */ groudat.revaval = 0; /* Assume everything will go well */ intRandProc (&randdat, 1); /* Use a fixed random seed for the sake of reproducibility */ intRandSeed (&randdat, 1); #ifdef CENTRALIZED_RANDOM for (vertnum = grafptr->baseval; vertnum < grafptr->vertnnd; vertnum ++) groudat.randtax[vertnum] = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ #endif /* CENTRALIZED_RANDOM */ clockInit (&timedat); clockStart (&timedat); for (thrdnum = 0; thrdnum < thrdnbr; thrdnum ++) groudat.datatab[thrdnum].seedval = intRandVal2 (&randdat) & (((Gunum) -1) >> 1); /* Always get positive numbers */ threadLaunch (&contdat, (ThreadFunc) graphD2matchShm, (void *) &groudat); memFree (groudat.datatab); clockStop (&timedat); printf ("time: %g\n", (double) clockVal (&timedat)); threadContextExit (&contdat); return ((groudat.revaval != 0) ? -1 : groudat.stepnbr); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { Graph grafdat; Gnum * restrict matetab; FILE * fileptr; Gnum vertnum; int thrdnbr; if ((argc < 3) || (argc > 4)) { errorPrint ("usage: %s graph matching thrdnbr", argv[0]); exit (EXIT_FAILURE); } thrdnbr = -1; if ((argc == 4) && ((thrdnbr = atoi (argv[3])) <= 0)) { errorPrint ("main: invalid number of threads"); exit (EXIT_FAILURE); } graphInit (&grafdat); if ((fileptr = fopen (argv[1], "r")) == NULL) { errorPrint ("main: cannot open graph file"); exit (EXIT_FAILURE); } if (graphLoad (&grafdat, fileptr, -1, 0) != 0) { errorPrint ("main: cannot read graph"); exit (EXIT_FAILURE); } fclose (fileptr); if ((matetab = memAlloc (grafdat.vertnbr * sizeof (Gnum))) == NULL) { errorPrint ("main: out of memory (1)"); exit (EXIT_FAILURE); } memSet (matetab, ~0, grafdat.vertnbr * sizeof (Gnum)); /* Test for internal errors */ graphD2match (&grafdat, matetab, thrdnbr); if ((fileptr = fopen (argv[2], "w")) == NULL) { errorPrint ("main: cannot open matching file"); exit (EXIT_FAILURE); } fprintf (fileptr, GNUMSTRING "\n", grafdat.vertnbr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) fprintf (fileptr, GNUMSTRING "\n" GNUMSTRING "\n", vertnum + grafdat.baseval, matetab[vertnum]); fclose (fileptr); for (vertnum = 0; vertnum < grafdat.vertnbr; vertnum ++) { /* Un-based loop on matetab */ if ((matetab[vertnum] < 0) || (matetab[vertnum] >= grafdat.vertnbr)) { errorPrint ("main: invalid matching"); exit (EXIT_FAILURE); } } memFree (matetab); graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/000077500000000000000000000000001514310134000255625ustar00rootroot00000000000000scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/Makefile000066400000000000000000000053011514310134000272210ustar00rootroot00000000000000## Copyright 2019 IPB, Universite de Bordeaux, INRIA & CNRS ## ## This file is part of the Scotch software package for static mapping, ## graph partitioning and sparse matrix ordering. ## ## This software is governed by the CeCILL-C license under French law ## and abiding by the rules of distribution of free software. You can ## use, modify and/or redistribute the software under the terms of the ## CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ## URL: "http://www.cecill.info". ## ## As a counterpart to the access to the source code and rights to copy, ## modify and redistribute granted by the license, users are provided ## only with a limited warranty and the software's author, the holder of ## the economic rights, and the successive licensors have only limited ## liability. ## ## In this respect, the user's attention is drawn to the risks associated ## with loading, using, modifying and/or developing or reproducing the ## software by the user in light of its specific status of free software, ## that may mean that it is complicated to manipulate, and that also ## therefore means that it is reserved for developers and experienced ## professionals having in-depth computer knowledge. Users are therefore ## encouraged to load and test the software's suitability as regards ## their requirements in conditions enabling the security of their ## systems and/or data to be ensured and, more generally, to use and ## operate it in the same conditions as regards security. ## ## The fact that you are presently reading this means that you have had ## knowledge of the CeCILL-C license and that you accept its terms. ## rootdir = ../.. includedir = $(rootdir)/include libdir = $(rootdir)/lib include $(rootdir)/src/Makefile.inc hamfcode = hamf_20200209_fp.F hamfobj = $(patsubst %.F,%$(OBJ), $(patsubst %.f,%$(OBJ), $(hamfcode))) ## ## General inference rules. ## %$(OBJ) : %.f gfortran -c -g -cpp $(<) -DSCOTCH_DEBUG_ORDER2 -o $(@) %$(OBJ) : %.F gfortran -c -g -cpp $(<) -DSCOTCH_DEBUG_ORDER2 -o $(@) ## ## Project rules. ## .PHONY : clean default all default : all required : (cd ../../src; make scotch) all : required \ test_hamf$(EXE) \ test_hamf_graph$(EXE) clean : -$(RM) hamf*$(OBJ) test_hamf$(EXE) test_hamf_graph$(EXE) test_hamf$(EXE) : test_hamf.c \ $(hamfobj) $(CC) $(CFLAGS) -Wall -g $(<) $(hamfobj) -I$(includedir) -I$(rootdir)/src/libscotch -L$(libdir) -lgfortran -lscotch -lscotcherr -lm -pthread -o $(@) test_hamf_graph$(EXE) : test_hamf_graph.c \ $(hamfobj) $(CC) $(CFLAGS) -Wall -g $(<) $(hamfobj) -I$(includedir) -I$(rootdir)/src/libscotch -L$(libdir) -lgfortran -lscotch -lscotcherr -lm -pthread -o $(@) scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/hamf_20191029.f000066400000000000000000002020311514310134000276310ustar00rootroot00000000000000C Version generated on October 29th 2019 C C This file includes various modifications of an original C LGPL/ CeCILL-C compatible C code implementing the AMD (Approximate Minimum Degree) ordering C Patrick Amestoy, Timothy A. Davis, and Iain S. Duff, C "An approximate minimum degree ordering algorithm," C SIAM J. Matrix Analysis vol 17, pages=886--905 (1996) C MUMPS_ANA_H is based on the original AMD code: C C AMD, Copyright (c), 1996-2016, Timothy A. Davis, C Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. C Used in MUMPS under the BSD 3-clause license. C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND C CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, C BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND C FITNESS FOR A PARTICULAR PURPOSE C ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR C ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL C DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS C OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) C HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, C STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING C IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE C POSSIBILITY OF SUCH DAMAGE. C C MUMPS_HAMF4 is a major modification of AMD C since the metric used to select pivots in not anymore the C degree but an approximation of the fill-in. C In this approximation C all cliques of elements adjacent to the variable are deducted. C MUMPS_HAMF4 also enables to take into account a halo in the graph. C The graph is composed is partitioned in two types of nodes C the so called internal nodes and the so called halo nodes. C Halo nodes cannot be selected the both the initial degrees C and updated degrees of internal node should be taken C into account. C Written by Patrick Amestoy between 1999 and 2019. C and used by F. Pellegrini in SCOTCH since 2000. C C Unique version to order both graph of variables and C graphs with both elements and variables. C C Notations used: C Let us refer to as C Gv a graph with only variables C Ge a graph with both variables and elements C C Let V be the set of nodes in the graph C V = Ve + V0 + V1 C V0 = Set of variable nodes (not in halo) C V1 = Set of variable nodes (in halo) C Ve = Set of element nodes |Ve|=nbelts C C All 3 sets are disjoint, Ve and V1 can be empty C If nbelts>0 then a bipartite graph bewteen C (V0 U V1) and Ve is provided on entry. C A graph of elements and variables is a bipartite C graph between the set of variables (that may C include halo variables) and the set of elements. C Thus variables are only adjacent to elements and C in the element list we only have variables. C Elements are "considered" as already eliminated and C are provided here only to describe the adjacency between C variables. Only variables in V0 need to be eliminated. C C Comments relative to 64/32 bits integer representation: C Restrictive integer 64 bit variant : C it is assumed that IW array size can exceed 32-bit integer C and thus iwlen is INTEGER(8) and pe in an INTEGER(8) array C Graphe size n must be smaller than 2x10^9 but number of C edges is a 64-bit integer. C C SUBROUTINE MUMPS_HAMF4(NORIG, N, NBELTS, NBBUCK, & IWLEN, PE, PFREE, LEN, IW, NV, ELEN, & LAST, NCMPA, DEGREE, WF, NEXT, W, HEAD & ) IMPLICIT NONE C C Parameters C Input not modified INTEGER, INTENT(IN) :: NORIG, N, NBELTS, NBBUCK INTEGER(8), INTENT(IN) :: IWLEN C Input undefined on output INTEGER, INTENT(INOUT) :: LEN(N), IW(IWLEN) C NV also meaningful as input to encode compressed graphs INTEGER, INTENT(INOUT) :: NV(N) C C Output only INTEGER, INTENT(OUT) :: NCMPA INTEGER, INTENT(OUT) :: ELEN(N), LAST(N) C C Input/output INTEGER(8), INTENT(INOUT) :: PFREE INTEGER(8), INTENT(INOUT) :: PE(N) C C Internal Workspace only C Min fill approximation one extra array of size NBBUCK+2 C is also needed INTEGER :: NEXT(N), DEGREE(N), W(N) INTEGER :: HEAD(0:NBBUCK+1), WF(N) C C Comments on the OUTPUT: C ---------------------- C Let V= V0 U V1 the nodes of the initial graph (|V|=n). C The assembly tree corresponds to the tree C of the supernodes (or supervariables). Each node of the C assembly tree is then composed of one principal variable C and a list of secondary variables. The list of C variable of a node (principal + secondary variables) then C describes the structure of the diagonal bloc of the C supernode. C The elimination tree denotes the tree of all the variables(=node) and C is therefore of order n. C C The arrays NV(N) and PE(N) give a description of the C assembly tree. C C 1/ Description of array nv(N) (on OUTPUT) C nv(i)=0 i is a secondary variable C nv(i) >0 i is a principal variable, nv(i) holds the C the number of elements in column i of L (true degree of i) C with compressed graph (nv(1).ne.-1 on input), C nv(i) can be greater than N since degree can be as large as NORIG. C C 2/ Description of array PE(N) (on OUTPUT) C Note that on C pe(i) = -(father of variable/node i) in the elimination tree: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C 3/ Example: C Let If be a root node father of Is in the assembly tree. C If is the principal C variable of the node If and let If1, If2, If3 be the secondary variables C of node If. C Is is the principal C variable of the node Is and let Is1, Is2 be the secondary variables C of node Is. C C THEN: C NV(If1)=NV(If2)=NV(If3) = 0 (secondary variables) C NV(Is1)=NV(Is2) = 0 (secondary variables) C NV(If) > 0 ( principal variable) C NV(Is) > 0 ( principal variable) C PE(If) = 0 (root node) C PE(Is) = -If (If is the father of Is in the assembly tree) C PE(If1)=PE(If2)=PE(If3)= -If ( If is the principal variable) C PE(Is1)=PE(Is2)= -Is ( Is is the principal variable) C C C C HALOAMD_V1: (September 1997) C ********** C Initial version designed to experiment the numerical (fill-in) impact C of taking into account the halo. This code should be able C to experiment no-halo, partial halo, complete halo. C DATE: September 17th 1997 C C HALOAMD is designed to process a gragh composed of two types C of nodes, V0 and V1, extracted from a larger gragh. C V0^V1 = {}, C C We used Min. degree heuristic to order only C nodes in V0, but the adjacency to nodes C in V1 is taken into account during ordering. C Nodes in V1 are odered at last. C Adjacency between nodes of V1 need not be provided, C however |len(i)| must always corresponds to the number of C edges effectively provided in the adjacency list of i. C On input : c ******** C Nodes INODE in V1 are flagged with len(INODE) = -degree C if len(i) =0 and i \in V1 then C len(i) must be set on input to -NORIG-1 C ERROR return (negative values in ncmpa) C ************ C negative value in ncmpa indicates an error detected C by HALOAMD. C C The graph provided MUST follow the rule: C if (i,j) is an edge in the gragh then C j must be in the adjacency list of i AND C i must be in the adjacency list of j. C REMARKS C ------- C C 1/ Providing edges between nodes of V1 should not C affect the final ordering, only the amount of edges C of the halo should effectively affect the solution. C This code should work in the following cases: C 1/ halo not provided C 2/ halo partially provided C 3/ complete halo C 4/ complete halo+interconnection between nodes of V1. C C 1/ should run and provide identical results (w.r.t to current C implementation of AMD in SCOTCH). C 3/ and 4 should provide identical results. C C 2/ All modifications of the AMD initial code are indicated C with begin HALO .. end HALO C C C Given a representation of the nonzero pattern of a symmetric matrix, C A, (excluding the diagonal) perform an approximate minimum C fill-in heuristic. Aggresive absorption is C used to tighten the bound on the degree. This can result an C significant improvement in the quality of the ordering for C some matrices. C----------------------------------------------------------------------- C INPUT ARGUMENTS (unaltered): C----------------------------------------------------------------------- C n: number of nodes in the complete graph including halo C n = size of V0 U V1 C Restriction: n .ge. 1 C C norig if compressed graph (nv(1).ne-1) then C norig is the sum(nv(i)) for i \in [1:n] C and could ne larger than n C else norig = n C C nbelts number of elements (size of Ve) C =0 if Gv (graph of variables) C >0 if Ge C nbelts > 0 extends/changes the meaning of C len/elen on entry (see below) C C C iwlen: The length of iw (1..iwlen). On input, the matrix is C stored in iw (1..pfree-1). However, iw (1..iwlen) should be C slightly larger than what is required to hold the matrix, at C least iwlen .ge. pfree + n is recommended. Otherwise, C excessive compressions will take place. C *** We do not recommend running this algorithm with *** C *** iwlen .lt. pfree + n. *** C *** Better performance will be obtained if *** C *** iwlen .ge. pfree + n *** C *** or better yet *** C *** iwlen .gt. 1.2 * pfree *** C *** (where pfree is its value on input). *** C The algorithm will not run at all if iwlen .lt. pfree-1. C C Restriction: iwlen .ge. pfree-1 C----------------------------------------------------------------------- C INPUT/OUPUT ARGUMENTS: C----------------------------------------------------------------------- C pe: On input, pe (i) is the index in iw of the start of row i, or C zero if row i has no off-diagonal non-zeros. C C During execution, it is used for both supervariables and C elements: C C * Principal supervariable i: index into iw of the C description of supervariable i. A supervariable C represents one or more rows of the matrix C with identical nonzero pattern. C * Non-principal supervariable i: if i has been absorbed C into another supervariable j, then pe (i) = -j. C That is, j has the same pattern as i. C Note that j might later be absorbed into another C supervariable j2, in which case pe (i) is still -j, C and pe (j) = -j2. C * Unabsorbed element e: the index into iw of the description C of element e, if e has not yet been absorbed by a C subsequent element. Element e is created when C the supervariable of the same name is selected as C the pivot. C * Absorbed element e: if element e is absorbed into element C e2, then pe (e) = -e2. This occurs when the pattern of C e (that is, Le) is found to be a subset of the pattern C of e2 (that is, Le2). If element e is "null" (it has C no nonzeros outside its pivot block), then pe (e) = 0. C C On output, pe holds the assembly tree/forest, which implicitly C represents a pivot order with identical fill-in as the actual C order (via a depth-first search of the tree). C C On output: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C pfree: On input, the matrix is stored in iw (1..pfree-1) and C the rest of the array iw is free. C During execution, additional data is placed in iw, and pfree C is modified so that components of iw from pfree are free. C On output, pfree is set equal to the size of iw that C would have been needed for no compressions to occur. If C ncmpa is zero, then pfree (on output) is less than or equal to C iwlen, and the space iw (pfree+1 ... iwlen) was not used. C Otherwise, pfree (on output) is greater than iwlen, and all the C memory in iw was used. C C nv: On input, encoding of compressed graph: C if nv(1) = -1 then graph is not compressed otherwise C nv(I) holds the weight of node i. C During execution, abs (nv (i)) is equal to the number of rows C that are represented by the principal supervariable i. If i is C a nonprincipal variable, then nv (i) = 0. Initially, C nv (i) = 1 for all i. nv (i) .lt. 0 signifies that i is a C principal variable in the pattern Lme of the current pivot C element me. On output, nv (e) holds the true degree of element C e at the time it was created (including the diagonal part). C begin HALO C On output, nv(I) can be used to find node in set V1. C Not true anymore : ( nv(I) = N+1 characterizes nodes in V1. C instead nodes in V1 are considered as a dense root node ) C end HALO C----------------------------------------------------------------------- C INPUT/MODIFIED (undefined on output): C----------------------------------------------------------------------- C len: On input, len (i) C positive or null (>=0) : i \in V0 U Ve and C if (nbelts==0) then (graph of variables) C len(i) holds the number of entries in row i of the C matrix, excluding the diagonal. C else (graph of elements+variables) C if i\in V0 then len(i) = nb of elements adjacent to i C if i\in Ve then len(i) = nb of variables adjacent to i C endif C negative (<0) : i \in V1, and C if (nbelts==0) then (graph of variables) C -len(i) hold the number of entries in row i of the C matrix, excluding the diagonal. C len(i) = - | Adj(i) | if i \in V1 C or -N -1 if | Adj(i) | = 0 and i \in V1 C else (graph of elements+variables) C -len(i) nb of elements adjacent to i C endif C The content of len (1..n) is undefined on output. C C elen: defined on input only if nbelts>0 C if e \in Ve then elen (e) = -N-1 C if v \in V0 then elen (v) = External degree of v C that should thus be provided C on entry to initialize degree C C if v \in V1 then elen (v) = 0 C C iw: On input, iw (1..pfree-1) holds the description of each row i C in the matrix. The matrix must be symmetric, and both upper C and lower triangular parts must be present. The diagonal must C not be present. Row i is held as follows: C C len (i): the length of the row i data structure C iw (pe (i) ... pe (i) + len (i) - 1): C the list of column indices for nonzeros C in row i (simple supervariables), excluding C the diagonal. All supervariables start with C one row/column each (supervariable i is just C row i). C if len (i) is zero on input, then pe (i) is ignored C on input. C C Note that the rows need not be in any particular order, C and there may be empty space between the rows. C C During execution, the supervariable i experiences fill-in. C This is represented by placing in i a list of the elements C that cause fill-in in supervariable i: C C len (i): the length of supervariable i C iw (pe (i) ... pe (i) + elen (i) - 1): C the list of elements that contain i. This list C is kept short by removing absorbed elements. C iw (pe (i) + elen (i) ... pe (i) + len (i) - 1): C the list of supervariables in i. This list C is kept short by removing nonprincipal C variables, and any entry j that is also C contained in at least one of the elements C (j in Le) in the list for i (e in row i). C C When supervariable i is selected as pivot, we create an C element e of the same name (e=i): C C len (e): the length of element e C iw (pe (e) ... pe (e) + len (e) - 1): C the list of supervariables in element e. C C An element represents the fill-in that occurs when supervariable C i is selected as pivot (which represents the selection of row i C and all non-principal variables whose principal variable is i). C We use the term Le to denote the set of all supervariables C in element e. Absorbed supervariables and elements are pruned C from these lists when computationally convenient. C C CAUTION: THE INPUT MATRIX IS OVERWRITTEN DURING COMPUTATION. C The contents of iw are undefined on output. C C----------------------------------------------------------------------- C OUTPUT (need not be set on input): C----------------------------------------------------------------------- C elen: See the description of iw above. At the start of execution, C elen (i) is set to zero. During execution, elen (i) is the C number of elements in the list for supervariable i. When e C becomes an element, elen (e) = -nel is set, where nel is the C current step of factorization. elen (i) = 0 is done when i C becomes nonprincipal. C C For variables, elen (i) .ge. 0 holds C For elements, elen (e) .lt. 0 holds. C C last: In a degree list, last (i) is the supervariable preceding i, C or zero if i is the head of the list. In a hash bucket, C last (i) is the hash key for i. last (head (hash)) is also C used as the head of a hash bucket if head (hash) contains a C degree list (see head, below). C C ncmpa: The number of times iw was compressed. If this is C excessive, then the execution took longer than what could have C been. To reduce ncmpa, try increasing iwlen to be 10% or 20% C larger than the value of pfree on input (or at least C iwlen .ge. pfree + n). The fastest performance will be C obtained when ncmpa is returned as zero. If iwlen is set to C the value returned by pfree on *output*, then no compressions C will occur. C begin HALO C on output ncmpa <0 --> error detected during HALO_AMD: C error 1: ncmpa = -N , ordering was stopped. C end HALO C C----------------------------------------------------------------------- C LOCAL (not input or output - used only during execution): C----------------------------------------------------------------------- C degree: If i is a supervariable, then degree (i) holds the C current approximation of the external degree of row i (an upper C bound). The external degree is the number of nonzeros in row i, C minus abs (nv (i)) (the diagonal part). The bound is equal to C the external degree if elen (i) is less than or equal to two. C We also use the term "external degree" for elements e to refer C to |Le \ Lme|. If e is an element, then degree (e) holds |Le|, C which is the degree of the off-diagonal part of the element e C (not including the diagonal part). C begin HALO C degree(I) = n+1 indicates that i belongs to V1 C end HALO C C head: head is used for degree lists. head (deg) is the first C supervariable in a degree list (all supervariables i in a C degree list deg have the same approximate degree, namely, C deg = degree (i)). If the list deg is empty then C head (deg) = 0. C C During supervariable detection head (hash) also serves as a C pointer to a hash bucket. C If head (hash) .gt. 0, there is a degree list of degree hash. C The hash bucket head pointer is last (head (hash)). C If head (hash) = 0, then the degree list and hash bucket are C both empty. C If head (hash) .lt. 0, then the degree list is empty, and C -head (hash) is the head of the hash bucket. C After supervariable detection is complete, all hash buckets C are empty, and the (last (head (hash)) = 0) condition is C restored for the non-empty degree lists. C next: next (i) is the supervariable following i in a link list, or C zero if i is the last in the list. Used for two kinds of C lists: degree lists and hash buckets (a supervariable can be C in only one kind of list at a time). C w: The flag array w determines the status of elements and C variables, and the external degree of elements. C C for elements: C if w (e) = 0, then the element e is absorbed C if w (e) .ge. wflg, then w (e) - wflg is the size of C the set |Le \ Lme|, in terms of nonzeros (the C sum of abs (nv (i)) for each principal variable i that C is both in the pattern of element e and NOT in the C pattern of the current pivot element, me). C if wflg .gt. w (e) .gt. 0, then e is not absorbed and has C not yet been seen in the scan of the element lists in C the computation of |Le\Lme| in loop 150 below. C C for variables: C during supervariable detection, if w (j) .ne. wflg then j is C not in the pattern of variable i C C The w array is initialized by setting w (i) = 1 for all i, C and by setting wflg = 2. It is reinitialized if wflg becomes C too large (to ensure that wflg+n does not cause integer C overflow). C C wf : integer array used to store the already filled area of C the variables adajcent to current pivot. C wf is then used to update the score of variable i. C C----------------------------------------------------------------------- C LOCAL INTEGERS: C----------------------------------------------------------------------- INTEGER :: DEG, DEGME, DEXT, DMAX, E, ELENME, ELN, I, & ILAST, INEXT, J, JLAST, JNEXT, K, KNT1, KNT2, KNT3, & LENJ, LN, ME, MINDEG, NEL, & NLEFT, NVI, NVJ, NVPIV, SLENME, WE, WFLG, WNVI, X, & NBFLAG, NREAL, LASTD, NELME, WF3, WF4, N2, PAS INTEGER KNT1_UPDATED, KNT2_UPDATED INTEGER(8) :: MAXMEM, MEM, NEWMEM INTEGER :: MAXINT_N INTEGER(8) :: HASH, HMOD DOUBLE PRECISION RMF, RMF1 DOUBLE PRECISION dummy INTEGER idummy LOGICAL COMPRESS C deg: the degree of a variable or element C degme: size, |Lme|, of the current element, me (= degree (me)) C dext: external degree, |Le \ Lme|, of some element e C dmax: largest |Le| seen so far C e: an element C elenme: the length, elen (me), of element list of pivotal var. C eln: the length, elen (...), of an element list C hash: the computed value of the hash function C hmod: the hash function is computed modulo hmod = max (1,n-1) C i: a supervariable C ilast: the entry in a link list preceding i C inext: the entry in a link list following i C j: a supervariable C jlast: the entry in a link list preceding j C jnext: the entry in a link list, or path, following j C k: the pivot order of an element or variable C knt1: loop counter used during element construction C knt2: loop counter used during element construction C knt3: loop counter used during compression C lenj: len (j) C ln: length of a supervariable list C maxint_n: large integer to test risk of overflow on wflg C maxmem: amount of memory needed for no compressions C me: current supervariable being eliminated, and the C current element created by eliminating that C supervariable C mem: memory in use assuming no compressions have occurred C mindeg: current minimum degree C nel: number of pivots selected so far C newmem: amount of new memory needed for current pivot element C nleft: n - nel, the number of nonpivotal rows/columns remaining C nvi: the number of variables in a supervariable i (= nv (i)) C nvj: the number of variables in a supervariable j (= nv (j)) C nvpiv: number of pivots in current element C slenme: number of variables in variable list of pivotal variable C we: w (e) C wflg: used for flagging the w array. See description of iw. C wnvi: wflg - nv (i) C x: either a supervariable or an element C wf3: off diagoanl block area C wf4: diagonal block area C mf : Minimum fill C begin HALO C nbflag: number of flagged entries in the initial gragh. C nreal : number of entries on which ordering must be perfomed C (nreel = N- nbflag) C nelme number of pivots selected when reaching the root C lastd index of the last row in the list of dense rows C end HALO C----------------------------------------------------------------------- C LOCAL POINTERS: C----------------------------------------------------------------------- INTEGER(8) :: P, P1, P2, P3, PDST, PEND, PJ, PME, PME1, PME2, & PN, PSRC C Any parameter (pe (...) or pfree) or local variable C starting with "p" (for Pointer) is an index into iw, C and all indices into iw use variables starting with C "p." The only exception to this rule is the iwlen C input argument. C p: pointer into lots of things C p1: pe (i) for some variable i (start of element list) C p2: pe (i) + elen (i) - 1 for some var. i (end of el. list) C p3: index of first supervariable in clean list C pdst: destination pointer, for compression C pend: end of memory to compress C pj: pointer into an element or variable C pme: pointer into the current element (pme1...pme2) C pme1: the current element, me, is stored in iw (pme1...pme2) C pme2: the end of the current element C pn: pointer into a "clean" variable, also used to compress C psrc: source pointer, for compression C----------------------------------------------------------------------- C FUNCTIONS CALLED: C----------------------------------------------------------------------- INTRINSIC max, min, mod, huge INTEGER TOTEL C======================================================================= C INITIALIZATIONS C======================================================================= C HEAD (0:NBBUCK+1) C C idummy holds the largest integer - 1 C dummy = dble (idummy) idummy = huge(idummy) - 1 dummy = dble(idummy) C variable with degree equal to N2 are in halo C bucket NBBUCK+1 used for HALO variables N2 = -NBBUCK-1 C Distance betweeen elements of the N, ..., NBBUCK entries of HEAD C PAS = max((N/8), 1) WFLG = 2 MAXINT_N=huge(WFLG)-N NCMPA = 0 NEL = 0 TOTEL = 0 HMOD = int(max (1, NBBUCK-1),kind=8) DMAX = 0 MEM = PFREE - 1 MAXMEM = MEM MINDEG = 0 C NBFLAG = 0 LASTD = 0 HEAD(0:NBBUCK+1) = 0 DO 10 I = 1, N LAST(I) = 0 W(I) = 1 10 CONTINUE IF(NV(1) .LT. 0) THEN C uncompress graph C NV should be set to 1 DO I=1, N NV(I) = 1 ENDDO COMPRESS = .FALSE. ELSE COMPRESS = .TRUE. ENDIF IF (NBELTS.EQ.0) THEN C ========================= C Graph with only variables C ========================= DO I=1,N ELEN(I) = 0 ENDDO DO I=1,N IF (LEN(I).LT.0) THEN DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-N-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELSE LEN (I) = - LEN(I) ENDIF C end HALO V3 ELSE TOTEL = TOTEL + NV(I) IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF ENDIF ENDDO ELSE C =============================================== C Bipartite graph between variables and elements C =============================================== DO I=1,N IF (LEN(I).LT.0) THEN C i \in V1 DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-N-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELEN(I) = 0 ELSE LEN (I) = - LEN(I) C only elements adjacent to a variable ELEN (I) = LEN(I) ENDIF ELSE IF (ELEN(I).LT.0) THEN C i \in Ve NEL = NEL + NV(I) ELEN(I) = -NEL IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF DMAX = MAX(DMAX, DEGREE(I)) ELSE C i \in V0 TOTEL = TOTEL + NV(I) DEGREE(I) = ELEN(I) ELEN(I) = LEN(I) ENDIF ENDIF ENDDO ENDIF #if defined(SCOTCH_DEBUG_ORDER2) IF (NBELTS.NE.NEL) THEN WRITE(6,*) " Error 8Dec2003" ENDIF #endif C C C number of entries to be ordered. NREAL = N - NBFLAG C ---------------------------------------------------------------- C initialize degree lists and eliminate rows with no off-diag. nz. C ---------------------------------------------------------------- DO 20 I = 1, N C Skip elements IF (ELEN(I).LT.0) CYCLE DEG = DEGREE (I) IF (DEG.EQ.N2) THEN C DEG = N2 (flagged variables are stored C in the degree list of NBBUCK + 1 C (safe: because max C max value of degree is NBBUCK) C DEG = NBBUCK + 1 IF (LASTD.EQ.0) THEN C degree list is empty LASTD = I HEAD(DEG) = I NEXT(I) = 0 LAST(I) = 0 ELSE NEXT(LASTD) = I LAST(I) = LASTD LASTD = I NEXT(I) = 0 ENDIF GOTO 20 ENDIF C C IF (DEG .GT. 0) THEN CN-------------- CNstrat0 CNC DEG = int( anint ( CNC & (dble(DEG)*dble(DEG-1)) / dble(2) ) ) CNC DEG = max (DEG,1) CNstat2 WF(I) = DEG C version 1 IF (DEG.GT.N) THEN DEG = min(((DEG-N)/PAS) + N , NBBUCK) ENDIF C Note that if deg=0 then C No fill-in will occur, C but one variable is adjacent to I C ---------------------------------------------------------- C place i in the degree list corresponding to its degree C ---------------------------------------------------------- INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT HEAD (DEG) = I ELSE C ---------------------------------------------------------- C we have a variable that can be eliminated at once because C there is no off-diagonal non-zero in its row. C ---------------------------------------------------------- NEL = NEL + NV(I) ELEN (I) = -NEL PE (I) = 0_8 W (I) = 0 ENDIF C======================================================================= C 20 CONTINUE C======================================================================= C WHILE (selecting pivots) DO C======================================================================= NLEFT = TOTEL-NEL C======================================================================= C ===================================================================== 30 IF (NEL .LT. TOTEL) THEN C ===================================================================== C GET PIVOT OF MINIMUM DEGREE C======================================================================= C ------------------------------------------------------------- C find next supervariable for elimination C ------------------------------------------------------------- DO 40 DEG = MINDEG, NBBUCK ME = HEAD (DEG) IF (ME .GT. 0) GO TO 50 40 CONTINUE 50 MINDEG = DEG IF (ME.LE.0) THEN CNOCOVBEG write (*,*) ' INTERNAL ERROR in MUMPS_HAMF4 ' write(6,*) ' NEL, DEG=', NEL,DEG NCMPA = -N CNOCOVEND ENDIF IF (DEG.GT.N) THEN C ------------------------------- C Linear search to find variable C with best score in the list C ------------------------------- C While end of list list not reached C NEXT(J) = 0 J = NEXT(ME) K = WF(ME) 55 CONTINUE IF (J.GT.0) THEN IF (WF(J).LT.K) THEN ME = J K = WF(ME) ENDIF J= NEXT(J) GOTO 55 ENDIF ILAST = LAST(ME) INEXT = NEXT(ME) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C me is at the head of the degree list HEAD (DEG) = INEXT ENDIF C ELSE C ------------------------------------------------------------- C remove chosen variable from link list C ------------------------------------------------------------- INEXT = NEXT (ME) IF (INEXT .NE. 0) LAST (INEXT) = 0 HEAD (DEG) = INEXT ENDIF C ------------------------------------------------------------- C me represents the elimination of pivots nel+1 to nel+nv(me). C place me itself as the first in this set. It will be moved C to the nel+nv(me) position when the permutation vectors are C computed. C ------------------------------------------------------------- ELENME = ELEN (ME) ELEN (ME) = - (NEL + 1) NVPIV = NV (ME) NEL = NEL + NVPIV C======================================================================= C CONSTRUCT NEW ELEMENT C======================================================================= C ------------------------------------------------------------- C At this point, me is the pivotal supervariable. It will be C converted into the current element. Scan list of the C pivotal supervariable, me, setting tree pointers and C constructing new list of supervariables for the new element, C me. p is a pointer to the current position in the old list. C ------------------------------------------------------------- C flag the variable "me" as being in Lme by negating nv (me) NV (ME) = -NVPIV DEGME = 0 IF (ELENME .EQ. 0) THEN C ---------------------------------------------------------- C construct the new element in place C ---------------------------------------------------------- PME1 = PE (ME) PME2 = PME1 - 1 DO 60 P = PME1, PME1 + LEN (ME) - 1 I = IW (P) NVI = NV (I) IF (NVI .GT. 0) THEN C ---------------------------------------------------- C i is a principal variable not yet placed in Lme. C store i in new list C ---------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI PME2 = PME2 + 1 IW (PME2) = I IF (DEGREE(I).NE.N2) THEN C ---------------------------------------------------- C remove variable i from degree list. (only if i \in V0) C ---------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C i is at the head of the degree list CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.N) THEN DEG = min(((WF(I)-N)/PAS) + N , NBBUCK) ELSE DEG = WF(I) ENDIF HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 60 CONTINUE C this element takes no new memory in iw: NEWMEM = 0 ELSE C ---------------------------------------------------------- C construct the new element in empty space, iw (pfree ...) C ---------------------------------------------------------- P = PE (ME) PME1 = PFREE SLENME = LEN (ME) - ELENME KNT1_UPDATED = 0 DO 120 KNT1 = 1, ELENME + 1 KNT1_UPDATED = KNT1_UPDATED +1 IF (KNT1 .GT. ELENME) THEN C search the supervariables in me. E = ME PJ = P LN = SLENME ELSE C search the elements in me. E = IW (P) P = P + 1 PJ = PE (E) LN = LEN (E) ENDIF C ------------------------------------------------------- C search for different supervariables and add them to the C new list, compressing when necessary. this loop is C executed once for each element in the list and once for C all the supervariables in the list. C ------------------------------------------------------- KNT2_UPDATED = 0 DO 110 KNT2 = 1, LN KNT2_UPDATED = KNT2_UPDATED+1 I = IW (PJ) PJ = PJ + 1 NVI = NV (I) IF (NVI .GT. 0) THEN C ------------------------------------------------- C compress iw, if necessary C ------------------------------------------------- IF (PFREE .GT. IWLEN) THEN C prepare for compressing iw by adjusting C pointers and lengths so that the lists being C searched in the inner and outer loops contain C only the remaining entries. PE (ME) = P LEN (ME) = LEN (ME) - KNT1_UPDATED C Reset KNT1_UPDATED in case of recompress C at same iteration of the loop 120 KNT1_UPDATED = 0 C Check if anything left in supervariable ME IF (LEN (ME) .EQ. 0) PE (ME) = 0_8 PE (E) = PJ LEN (E) = LN - KNT2_UPDATED C Reset KNT2_UPDATED in case of recompress C at same iteration of the loop 110 KNT2_UPDATED = 0 C Check if anything left in element E IF (LEN (E) .EQ. 0) PE (E) = 0_8 NCMPA = NCMPA + 1 C store first item in pe C set first entry to -item DO 70 J = 1, N PN = PE (J) IF (PN .GT. 0) THEN PE (J) = int(IW (PN),8) IW (PN) = -J ENDIF 70 CONTINUE C psrc/pdst point to source/destination PDST = 1 PSRC = 1 PEND = PME1 - 1 C while loop: 80 CONTINUE IF (PSRC .LE. PEND) THEN C search for next negative entry J = -IW (PSRC) PSRC = PSRC + 1 IF (J .GT. 0) THEN IW (PDST) = int(PE (J)) PE (J) = PDST PDST = PDST + 1_8 C copy from source to destination LENJ = LEN (J) DO 90 KNT3 = 0, LENJ - 2 IW (PDST + KNT3) = IW (PSRC + KNT3) 90 CONTINUE PDST = PDST + LENJ - 1 PSRC = PSRC + LENJ - 1 ENDIF GO TO 80 ENDIF C move the new partially-constructed element P1 = PDST DO 100 PSRC = PME1, PFREE - 1 IW (PDST) = IW (PSRC) PDST = PDST + 1 100 CONTINUE PME1 = P1 PFREE = PDST PJ = PE (E) P = PE (ME) ENDIF C ------------------------------------------------- C i is a principal variable not yet placed in Lme C store i in new list C ------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI IW (PFREE) = I PFREE = PFREE + 1 IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------- C remove variable i from degree link list C (only if i in V0) C ------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.N) THEN CNold DEG = min((WF(I)/PAS) + N , NBBUCK) DEG = min(((WF(I)-N)/PAS) + N , NBBUCK) ELSE DEG = WF(I) ENDIF C i is at the head of the degree list HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 110 CONTINUE IF (E .NE. ME) THEN C set tree pointer and flag to indicate element e is C absorbed into new element me (the parent of e is me) PE (E) = int(-ME,8) W (E) = 0 ENDIF 120 CONTINUE PME2 = PFREE - 1 C this element takes newmem new memory in iw (possibly zero) NEWMEM = PFREE - PME1 MEM = MEM + NEWMEM MAXMEM = max (MAXMEM, MEM) ENDIF C ------------------------------------------------------------- C me has now been converted into an element in iw (pme1..pme2) C ------------------------------------------------------------- C degme holds the external degree of new element DEGREE (ME) = DEGME PE (ME) = PME1 LEN (ME) = int(PME2 - PME1 + 1_8) C ------------------------------------------------------------- C make sure that wflg is not too large. With the current C value of wflg, wflg+n must not cause integer overflow C ------------------------------------------------------------- IF (WFLG .GT. MAXINT_N) THEN DO 130 X = 1, N IF (W (X) .NE. 0) W (X) = 1 130 CONTINUE WFLG = 2 ENDIF C======================================================================= C COMPUTE (w (e) - wflg) = |Le\Lme| FOR ALL ELEMENTS C======================================================================= C ------------------------------------------------------------- C Scan 1: compute the external degrees of previous elements C with respect to the current element. That is: C (w (e) - wflg) = |Le \ Lme| C for each element e that appears in any supervariable in Lme. C The notation Le refers to the pattern (list of C supervariables) of a previous element e, where e is not yet C absorbed, stored in iw (pe (e) + 1 ... pe (e) + iw (pe (e))). C The notation Lme refers to the pattern of the current element C (stored in iw (pme1..pme2)). If (w (e) - wflg) becomes C zero, then the element e will be absorbed in scan 2. C ------------------------------------------------------------- DO 150 PME = PME1, PME2 I = IW (PME) ELN = ELEN (I) IF (ELN .GT. 0) THEN C note that nv (i) has been negated to denote i in Lme: NVI = -NV (I) WNVI = WFLG - NVI DO 140 P = PE (I), PE (I) + int(ELN - 1,8) E = IW (P) WE = W (E) IF (WE .GE. WFLG) THEN C unabsorbed element e has been seen in this loop WE = WE - NVI ELSE IF (WE .NE. 0) THEN C e is an unabsorbed element C this is the first we have seen e in all of Scan 1 WE = DEGREE (E) + WNVI WF(E) = 0 ENDIF W (E) = WE 140 CONTINUE ENDIF 150 CONTINUE C======================================================================= C DEGREE UPDATE AND ELEMENT ABSORPTION C======================================================================= C ------------------------------------------------------------- C Scan 2: for each i in Lme, sum up the degree of Lme (which C is degme), plus the sum of the external degrees of each Le C for the elements e appearing within i, plus the C supervariables in i. Place i in hash list. C ------------------------------------------------------------- DO 180 PME = PME1, PME2 I = IW (PME) P1 = PE (I) P2 = P1 + ELEN (I) - 1 PN = P1 HASH = 0_8 DEG = 0 WF3 = 0 WF4 = 0 NVI = -NV(I) C ---------------------------------------------------------- C scan the element list associated with supervariable i C ---------------------------------------------------------- DO 160 P = P1, P2 E = IW (P) C dext = | Le \ Lme | DEXT = W (E) - WFLG IF (DEXT .GT. 0) THEN IF ( WF(E) .EQ. 0 ) THEN C First time we meet e : compute wf(e) C which holds the surface associated to element e C it will later be deducted from fill-in C area of all variables adjacent to e WF(E) = DEXT * ( (2 * DEGREE(E)) - DEXT - 1) ENDIF WF4 = WF4 + WF(E) DEG = DEG + DEXT IW (PN) = E PN = PN + 1 HASH = HASH + int(E, kind=8) ELSE IF (DEXT .EQ. 0) THEN C aggressive absorption: e is not adjacent to me, but C the |Le \ Lme| is 0, so absorb it into me PE (E) = int(-ME,8) W (E) = 0 ENDIF 160 CONTINUE C count the number of elements in i (including me): ELEN (I) = int(PN - P1 + 1_8) C ---------------------------------------------------------- C scan the supervariables in the list associated with i C ---------------------------------------------------------- P3 = PN DO 170 P = P2 + 1_8, P1 + int(LEN (I) - 1,8) J = IW (P) NVJ = NV (J) IF (NVJ .GT. 0) THEN C j is unabsorbed, and not in Lme. C add to degree and add to new list DEG = DEG + NVJ WF3 = WF3 + NVJ IW (PN) = J PN = PN + 1 HASH = HASH + int(J,kind=8) ENDIF 170 CONTINUE C IF (DEGREE(I).EQ.N2) DEG = N2 C ---------------------------------------------------------- C update the degree and check for mass elimination C ---------------------------------------------------------- IF (DEG .EQ. 0) THEN C ------------------------------------------------------- C mass elimination C ------------------------------------------------------- C There is nothing left of this node except for an C edge to the current pivot element. elen (i) is 1, C and there are no variables adjacent to node i. C Absorb i into the current pivot element, me. PE (I) = int(-ME,8) NVI = -NV (I) DEGME = DEGME - NVI NVPIV = NVPIV + NVI NEL = NEL + NVI NV (I) = 0 ELEN (I) = 0 ELSE C ------------------------------------------------------- C update the upper-bound degree of i C ------------------------------------------------------- C the following degree does not yet include the size C of the current element, which is added later: IF (DEGREE(I).NE.N2) THEN C I does not belong to halo CNCCC DEG = min (DEG, NLEFT) IF ( DEGREE (I).LT.DEG ) THEN C Our appox degree is loose. C we keep old value. Note that in C this case we cannot substract WF(I) C for min-fill score. WF4 = 0 WF3 = 0 ELSE DEGREE(I) = DEG ENDIF ENDIF C C compute WF(I) taking into account size of block 3.0 WF(I) = WF4 + 2*NVI*WF3 C ------------------------------------------------------- C add me to the list for i C ------------------------------------------------------- C move first supervariable to end of list IW (PN) = IW (P3) C move first element to end of element part of list IW (P3) = IW (P1) C add new element to front of list. IW (P1) = ME C store the new length of the list in len (i) LEN (I) = int(PN - P1 + 1) IF (DEG.NE.N2) THEN C ------------------------------------------------------- C place in hash bucket. Save hash key of i in last (i). C ------------------------------------------------------- HASH = mod (HASH, HMOD) + 1_8 J = HEAD (HASH) IF (J .LE. 0) THEN C the degree list is empty, hash head is -j NEXT (I) = -J HEAD (HASH) = -I ELSE C degree list is not empty C use last (head (hash)) as hash head NEXT (I) = LAST (J) LAST (J) = I ENDIF LAST (I) = int(HASH,kind=kind(LAST)) ENDIF ENDIF 180 CONTINUE DEGREE (ME) = DEGME C ------------------------------------------------------------- C Clear the counter array, w (...), by incrementing wflg. C ------------------------------------------------------------- DMAX = max (DMAX, DEGME) WFLG = WFLG + DMAX C make sure that wflg+n does not cause integer overflow IF (WFLG .GT. MAXINT_N) THEN DO 190 X = 1, N IF (W (X) .NE. 0) W (X) = 1 190 CONTINUE WFLG = 2 ENDIF C at this point, w (1..n) .lt. wflg holds C======================================================================= C SUPERVARIABLE DETECTION C======================================================================= DO 250 PME = PME1, PME2 I = IW (PME) IF ( (NV (I) .LT. 0) .AND. (DEGREE(I).NE.N2) ) THEN C i is a principal variable in Lme C ------------------------------------------------------- C examine all hash buckets with 2 or more variables. We C do this by examing all unique hash keys for super- C variables in the pattern Lme of the current element, me C ------------------------------------------------------- HASH = int(LAST (I),kind=8) C let i = head of hash bucket, and empty the hash bucket J = HEAD (HASH) IF (J .EQ. 0) GO TO 250 IF (J .LT. 0) THEN C degree list is empty I = -J HEAD (HASH) = 0 ELSE C degree list is not empty, restore last () of head I = LAST (J) LAST (J) = 0 ENDIF IF (I .EQ. 0) GO TO 250 C while loop: 200 CONTINUE IF (NEXT (I) .NE. 0) THEN C ---------------------------------------------------- C this bucket has one or more variables following i. C scan all of them to see if i can absorb any entries C that follow i in hash bucket. Scatter i into w. C ---------------------------------------------------- LN = LEN (I) ELN = ELEN (I) C do not flag the first element in the list (me) DO 210 P = PE (I) + 1_8, PE (I) + int(LN - 1,8) W (IW (P)) = WFLG 210 CONTINUE C ---------------------------------------------------- C scan every other entry j following i in bucket C ---------------------------------------------------- JLAST = I J = NEXT (I) C while loop: 220 CONTINUE IF (J .NE. 0) THEN C ------------------------------------------------- C check if j and i have identical nonzero pattern C ------------------------------------------------- C jump if i and j do not have same size data structure IF (LEN (J) .NE. LN) GO TO 240 C jump if i and j do not have same number adj elts IF (ELEN (J) .NE. ELN) GO TO 240 C do not flag the first element in the list (me) DO 230 P = PE (J) + 1_8, PE (J) + int(LN - 1,8) C jump if an entry (iw(p)) is in j but not in i IF (W (IW (P)) .NE. WFLG) GO TO 240 230 CONTINUE C ------------------------------------------------- C found it! j can be absorbed into i C ------------------------------------------------- PE (J) = int(-I,8) WF(I) = max(WF(I),WF(J)) C both nv (i) and nv (j) are negated since they C are in Lme, and the absolute values of each C are the number of variables in i and j: NV (I) = NV (I) + NV (J) NV (J) = 0 ELEN (J) = 0 C delete j from hash bucket J = NEXT (J) NEXT (JLAST) = J GO TO 220 C ------------------------------------------------- 240 CONTINUE C j cannot be absorbed into i C ------------------------------------------------- JLAST = J J = NEXT (J) GO TO 220 ENDIF C ---------------------------------------------------- C no more variables can be absorbed into i C go to next i in bucket and clear flag array C ---------------------------------------------------- WFLG = WFLG + 1 I = NEXT (I) IF (I .NE. 0) GO TO 200 ENDIF ENDIF 250 CONTINUE C======================================================================= C RESTORE DEGREE LISTS AND REMOVE NONPRINCIPAL SUPERVAR. FROM ELEMENT C======================================================================= P = PME1 NLEFT = TOTEL - NEL DO 260 PME = PME1, PME2 I = IW (PME) NVI = -NV (I) IF (NVI .GT. 0) THEN C i is a principal variable in Lme C restore nv (i) to signify that i is principal NV (I) = NVI IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------------- C compute the external degree (add size of current elem) C ------------------------------------------------------- CNamdonly DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) C-------------------------- C-------------------------- DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) IF (DEGREE (I) + DEGME .GT. NLEFT ) THEN C DEG = DEGREE(I) RMF1 = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) DEGREE(I) = NLEFT - NVI DEG = DEGREE(I) RMF = dble(DEG)*dble(DEG-1) & - dble(DEGME-NVI)*dble(DEGME-NVI-1) RMF = min(RMF, RMF1) ELSE DEG = DEGREE(I) DEGREE(I) = DEGREE (I) + DEGME - NVI C All previous cliques taken into account (AMF4) RMF = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) ENDIF C RMF = RMF / dble(NVI+1) C IF (RMF.LT.dummy) THEN WF(I) = int ( anint( RMF )) ELSEIF (RMF / dble(N) .LT. dummy) THEN WF(I) = int ( anint( RMF/dble(N) )) ELSE WF(I) = idummy ENDIF WF(I) = max(1,WF(I)) CN CN CN CN CN CN DEG = WF(I) IF (DEG.GT.N) THEN DEG = min(((DEG-N)/PAS) + N , NBBUCK) ENDIF INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT LAST (I) = 0 HEAD (DEG) = I C ------------------------------------------------------- C save the new degree, and find the minimum degree C ------------------------------------------------------- MINDEG = min (MINDEG, DEG) C begin HALO ENDIF C end HALO C ------------------------------------------------------- C place the supervariable in the element pattern C ------------------------------------------------------- IW (P) = I P = P + 1 ENDIF 260 CONTINUE C======================================================================= C FINALIZE THE NEW ELEMENT C======================================================================= NV (ME) = NVPIV + DEGME C fill_est = fill_est + nvpiv * (nvpiv + 2 * degme) C nv (me) is now the degree of pivot (including diagonal part) C save the length of the list for the new element me LEN (ME) = int(P - PME1) IF (LEN (ME) .EQ. 0) THEN C there is nothing left of the current pivot element PE (ME) = 0_8 W (ME) = 0 ENDIF IF (NEWMEM .NE. 0) THEN C element was not constructed in place: deallocate part C of it (final size is less than or equal to newmem, C since newly nonprincipal variables have been removed). PFREE = P MEM = MEM - NEWMEM + int(LEN (ME),8) ENDIF C======================================================================= C END WHILE (selecting pivots) GO TO 30 ENDIF C======================================================================= C begin HALO V2 IF (NEL.LT.N) THEN C C All possible pivots (not flagged have been eliminated). C We amalgamate all flagged variables at the root and C we finish the elimination tree. C 1/ Go through all C non absorbed elements (root of the subgraph) C and absorb in ME C 2/ perform mass elimination of all dense rows DO DEG = MINDEG, NBBUCK+1 ME = HEAD (DEG) IF (ME .GT. 0) GO TO 51 ENDDO 51 MINDEG = DEG NELME = -(NEL+1) DO X=1,N IF ((PE(X).GT.0) .AND. (ELEN(X).LT.0)) THEN C X is an unabsorbed element PE(X) = int(-ME,8) C W(X) = 0 could be suppressed ?? check it ELSEIF (DEGREE(X).EQ.N2) THEN C X is a dense row, absorb it in ME (mass elimination) NEL = NEL + NV(X) PE(X) = int(-ME,8) ELEN(X) = 0 C Correct value of NV is (secondary variable) NV(X) = 0 ENDIF ENDDO C ME is the root node ELEN(ME) = NELME C Correct value of NV is (principal variable) NV(ME) = N-NREAL PE(ME) = 0_8 CN #if defined(SCOTCH_DEBUG_ORDER2) C IF (NEL.NE.N) THEN IF (NEL.NE.NORIG) THEN NCMPA = -NORIG - 1 WRITE(6,*) " Warning 30Oct2019" ENDIF #endif ENDIF C end HALO C C======================================================================= C COMPUTE THE PERMUTATION VECTORS C======================================================================= C ---------------------------------------------------------------- C The time taken by the following code is O(n). At this C point, elen (e) = -k has been done for all elements e, C and elen (i) = 0 has been done for all nonprincipal C variables i. At this point, there are no principal C supervariables left, and all elements are absorbed. C ---------------------------------------------------------------- C ---------------------------------------------------------------- C compute the ordering of unordered nonprincipal variables C ---------------------------------------------------------------- DO 290 I = 1, N IF (ELEN (I) .EQ. 0) THEN C ---------------------------------------------------------- C i is an un-ordered row. Traverse the tree from i until C reaching an element, e. The element, e, was the C principal supervariable of i and all nodes in the path C from i to when e was selected as pivot. C ---------------------------------------------------------- J = int(-PE (I)) C while (j is a variable) do: 270 CONTINUE IF (ELEN (J) .GE. 0) THEN J = int(-PE (J)) GO TO 270 ENDIF E = J C ---------------------------------------------------------- C get the current pivot ordering of e C ---------------------------------------------------------- K = -ELEN (E) C ---------------------------------------------------------- C traverse the path again from i to e, and compress the C path (all nodes point to e). Path compression allows C this code to compute in O(n) time. Order the unordered C nodes in the path, and place the element e at the end. C ---------------------------------------------------------- J = I C while (j is a variable) do: 280 CONTINUE IF (ELEN (J) .GE. 0) THEN JNEXT = int(-PE (J)) PE (J) = int(-E,8) IF (ELEN (J) .EQ. 0) THEN C j is an unordered row ELEN (J) = K K = K + 1 ENDIF J = JNEXT GO TO 280 ENDIF C leave elen (e) negative, so we know it is an element ELEN (E) = -K ENDIF 290 CONTINUE C ---------------------------------------------------------------- C reset the inverse permutation (elen (1..n)) to be positive, C and compute the pivot order (last (1..n)). C ---------------------------------------------------------------- C======================================================================= C RETURN THE MEMORY USAGE IN IW C======================================================================= C If maxmem is less than or equal to iwlen, then no compressions C occurred, and iw (maxmem+1 ... iwlen) was unused. Otherwise C compressions did occur, and iwlen would have had to have been C greater than or equal to maxmem for no compressions to occur. C Return the value of maxmem in the pfree argument. 500 PFREE = MAXMEM RETURN END SUBROUTINE MUMPS_HAMF4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/hamf_20200111.F000066400000000000000000002026471514310134000275650ustar00rootroot00000000000000C Version generated on October 29th 2019 C C This file includes various modifications of an original C LGPL/ CeCILL-C compatible C code implementing the AMD (Approximate Minimum Degree) ordering C Patrick Amestoy, Timothy A. Davis, and Iain S. Duff, C "An approximate minimum degree ordering algorithm," C SIAM J. Matrix Analysis vol 17, pages=886--905 (1996) C MUMPS_ANA_H is based on the original AMD code: C C AMD, Copyright (c), 1996-2016, Timothy A. Davis, C Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. C Used in MUMPS under the BSD 3-clause license. C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND C CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, C BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND C FITNESS FOR A PARTICULAR PURPOSE C ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR C ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL C DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS C OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) C HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, C STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING C IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE C POSSIBILITY OF SUCH DAMAGE. C C MUMPS_HAMF4 is a major modification of AMD C since the metric used to select pivots in not anymore the C degree but an approximation of the fill-in. C In this approximation C all cliques of elements adjacent to the variable are deducted. C MUMPS_HAMF4 also enables to take into account a halo in the graph. C The graph is composed is partitioned in two types of nodes C the so called internal nodes and the so called halo nodes. C Halo nodes cannot be selected the both the initial degrees C and updated degrees of internal node should be taken C into account. C Written by Patrick Amestoy between 1999 and 2019. C and used by F. Pellegrini in SCOTCH since 2000. C C Unique version to order both graph of variables and C graphs with both elements and variables. C C Notations used: C Let us refer to as C Gv a graph with only variables C Ge a graph with both variables and elements C C Let V be the set of nodes in the graph C V = Ve + V0 + V1 C V0 = Set of variable nodes (not in halo) C V1 = Set of variable nodes (in halo) C Ve = Set of element nodes |Ve|=nbelts C C All 3 sets are disjoint, Ve and V1 can be empty C If nbelts>0 then a bipartite graph bewteen C (V0 U V1) and Ve is provided on entry. C A graph of elements and variables is a bipartite C graph between the set of variables (that may C include halo variables) and the set of elements. C Thus variables are only adjacent to elements and C in the element list we only have variables. C Elements are "considered" as already eliminated and C are provided here only to describe the adjacency between C variables. Only variables in V0 need to be eliminated. C C Comments relative to 64/32 bits integer representation: C Restrictive integer 64 bit variant : C it is assumed that IW array size can exceed 32-bit integer C and thus iwlen is INTEGER(8) and pe in an INTEGER(8) array C Graphe size n must be smaller than 2x10^9 but number of C edges is a 64-bit integer. C C SUBROUTINE MUMPS_HAMF4(NORIG, N, NBELTS, NBBUCK, & IWLEN, PE, PFREE, LEN, IW, NV, ELEN, & LAST, NCMPA, DEGREE, WF, NEXT, W, HEAD & ) IMPLICIT NONE C C Parameters C Input not modified INTEGER, INTENT(IN) :: NORIG, N, NBELTS, NBBUCK INTEGER(8), INTENT(IN) :: IWLEN C Input undefined on output INTEGER, INTENT(INOUT) :: LEN(N), IW(IWLEN) C NV also meaningful as input to encode compressed graphs INTEGER, INTENT(INOUT) :: NV(N) C C Output only INTEGER, INTENT(OUT) :: NCMPA INTEGER, INTENT(OUT) :: ELEN(N), LAST(N) C C Input/output INTEGER(8), INTENT(INOUT) :: PFREE INTEGER(8), INTENT(INOUT) :: PE(N) C C Internal Workspace only C Min fill approximation one extra array of size NBBUCK+2 C is also needed INTEGER :: NEXT(N), DEGREE(N), W(N) INTEGER :: HEAD(0:NBBUCK+1), WF(N) C C Comments on the OUTPUT: C ---------------------- C Let V= V0 U V1 the nodes of the initial graph (|V|=n). C The assembly tree corresponds to the tree C of the supernodes (or supervariables). Each node of the C assembly tree is then composed of one principal variable C and a list of secondary variables. The list of C variable of a node (principal + secondary variables) then C describes the structure of the diagonal bloc of the C supernode. C The elimination tree denotes the tree of all the variables(=node) and C is therefore of order n. C C The arrays NV(N) and PE(N) give a description of the C assembly tree. C C 1/ Description of array nv(N) (on OUTPUT) C nv(i)=0 i is a secondary variable C nv(i) >0 i is a principal variable, nv(i) holds the C the number of elements in column i of L (true degree of i) C with compressed graph (nv(1).ne.-1 on input), C nv(i) can be greater than N since degree can be as large as NORIG. C C 2/ Description of array PE(N) (on OUTPUT) C Note that on C pe(i) = -(father of variable/node i) in the elimination tree: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C 3/ Example: C Let If be a root node father of Is in the assembly tree. C If is the principal C variable of the node If and let If1, If2, If3 be the secondary variables C of node If. C Is is the principal C variable of the node Is and let Is1, Is2 be the secondary variables C of node Is. C C THEN: C NV(If1)=NV(If2)=NV(If3) = 0 (secondary variables) C NV(Is1)=NV(Is2) = 0 (secondary variables) C NV(If) > 0 ( principal variable) C NV(Is) > 0 ( principal variable) C PE(If) = 0 (root node) C PE(Is) = -If (If is the father of Is in the assembly tree) C PE(If1)=PE(If2)=PE(If3)= -If ( If is the principal variable) C PE(Is1)=PE(Is2)= -Is ( Is is the principal variable) C C C C HALOAMD_V1: (September 1997) C ********** C Initial version designed to experiment the numerical (fill-in) impact C of taking into account the halo. This code should be able C to experiment no-halo, partial halo, complete halo. C DATE: September 17th 1997 C C HALOAMD is designed to process a gragh composed of two types C of nodes, V0 and V1, extracted from a larger gragh. C V0^V1 = {}, C C We used Min. degree heuristic to order only C nodes in V0, but the adjacency to nodes C in V1 is taken into account during ordering. C Nodes in V1 are odered at last. C Adjacency between nodes of V1 need not be provided, C however |len(i)| must always corresponds to the number of C edges effectively provided in the adjacency list of i. C On input : c ******** C Nodes INODE in V1 are flagged with len(INODE) = -degree C if len(i) =0 and i \in V1 then C len(i) must be set on input to -NORIG-1 C ERROR return (negative values in ncmpa) C ************ C negative value in ncmpa indicates an error detected C by HALOAMD. C C The graph provided MUST follow the rule: C if (i,j) is an edge in the gragh then C j must be in the adjacency list of i AND C i must be in the adjacency list of j. C REMARKS C ------- C C 1/ Providing edges between nodes of V1 should not C affect the final ordering, only the amount of edges C of the halo should effectively affect the solution. C This code should work in the following cases: C 1/ halo not provided C 2/ halo partially provided C 3/ complete halo C 4/ complete halo+interconnection between nodes of V1. C C 1/ should run and provide identical results (w.r.t to current C implementation of AMD in SCOTCH). C 3/ and 4 should provide identical results. C C 2/ All modifications of the AMD initial code are indicated C with begin HALO .. end HALO C C C Given a representation of the nonzero pattern of a symmetric matrix, C A, (excluding the diagonal) perform an approximate minimum C fill-in heuristic. Aggresive absorption is C used to tighten the bound on the degree. This can result an C significant improvement in the quality of the ordering for C some matrices. C----------------------------------------------------------------------- C INPUT ARGUMENTS (unaltered): C----------------------------------------------------------------------- C n: number of nodes in the complete graph including halo C n = size of V0 U V1 U Ve C Restriction: n .ge. 1 C C norig if compressed graph (nv(1).ne.-1) then C norig is the sum(nv(i)) for i \in [1:n] C and could ne larger than n C else norig = n C C nbbuck should be greater than norig C advised value is 2*norig C C nbelts number of elements (size of Ve) C =0 if Gv (graph of variables) C >0 if Ge C nbelts > 0 extends/changes the meaning of C len/elen on entry (see below) C C C iwlen: The length of iw (1..iwlen). On input, the matrix is C stored in iw (1..pfree-1). However, iw (1..iwlen) should be C slightly larger than what is required to hold the matrix, at C least iwlen .ge. pfree + n is recommended. Otherwise, C excessive compressions will take place. C *** We do not recommend running this algorithm with *** C *** iwlen .lt. pfree + n. *** C *** Better performance will be obtained if *** C *** iwlen .ge. pfree + n *** C *** or better yet *** C *** iwlen .gt. 1.2 * pfree *** C *** (where pfree is its value on input). *** C The algorithm will not run at all if iwlen .lt. pfree-1. C C Restriction: iwlen .ge. pfree-1 C----------------------------------------------------------------------- C INPUT/OUPUT ARGUMENTS: C----------------------------------------------------------------------- C pe: On input, pe (i) is the index in iw of the start of row i, or C zero if row i has no off-diagonal non-zeros. C C During execution, it is used for both supervariables and C elements: C C * Principal supervariable i: index into iw of the C description of supervariable i. A supervariable C represents one or more rows of the matrix C with identical nonzero pattern. C * Non-principal supervariable i: if i has been absorbed C into another supervariable j, then pe (i) = -j. C That is, j has the same pattern as i. C Note that j might later be absorbed into another C supervariable j2, in which case pe (i) is still -j, C and pe (j) = -j2. C * Unabsorbed element e: the index into iw of the description C of element e, if e has not yet been absorbed by a C subsequent element. Element e is created when C the supervariable of the same name is selected as C the pivot. C * Absorbed element e: if element e is absorbed into element C e2, then pe (e) = -e2. This occurs when the pattern of C e (that is, Le) is found to be a subset of the pattern C of e2 (that is, Le2). If element e is "null" (it has C no nonzeros outside its pivot block), then pe (e) = 0. C C On output, pe holds the assembly tree/forest, which implicitly C represents a pivot order with identical fill-in as the actual C order (via a depth-first search of the tree). C C On output: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C pfree: On input, the matrix is stored in iw (1..pfree-1) and C the rest of the array iw is free. C During execution, additional data is placed in iw, and pfree C is modified so that components of iw from pfree are free. C On output, pfree is set equal to the size of iw that C would have been needed for no compressions to occur. If C ncmpa is zero, then pfree (on output) is less than or equal to C iwlen, and the space iw (pfree+1 ... iwlen) was not used. C Otherwise, pfree (on output) is greater than iwlen, and all the C memory in iw was used. C C nv: On input, encoding of compressed graph: C if nv(1) = -1 then graph is not compressed otherwise C nv(I) holds the weight of node i. C During execution, abs (nv (i)) is equal to the number of rows C that are represented by the principal supervariable i. If i is C a nonprincipal variable, then nv (i) = 0. Initially, C nv (i) = 1 for all i. nv (i) .lt. 0 signifies that i is a C principal variable in the pattern Lme of the current pivot C element me. On output, nv (e) holds the true degree of element C e at the time it was created (including the diagonal part). C begin HALO C On output, nv(I) can be used to find node in set V1. C Not true anymore : ( nv(I) = N+1 characterizes nodes in V1. C instead nodes in V1 are considered as a dense root node ) C end HALO C----------------------------------------------------------------------- C INPUT/MODIFIED (undefined on output): C----------------------------------------------------------------------- C len: On input, len (i) C positive or null (>=0) : i \in V0 U Ve and C if (nbelts==0) then (graph of variables) C len(i) holds the number of entries in row i of the C matrix, excluding the diagonal. C else (graph of elements+variables) C if i\in V0 then len(i) = nb of elements adjacent to i C if i\in Ve then len(i) = nb of variables adjacent to i C endif C negative (<0) : i \in V1, and C if (nbelts==0) then (graph of variables) C -len(i) hold the number of entries in row i of the C matrix, excluding the diagonal. C len(i) = - | Adj(i) | if i \in V1 C or -N -1 if | Adj(i) | = 0 and i \in V1 C else (graph of elements+variables) C -len(i) nb of elements adjacent to i C endif C The content of len (1..n) is undefined on output. C C elen: defined on input only if nbelts>0 C if e \in Ve then elen (e) = -N-1 C if v \in V0 then elen (v) = External degree of v C that should thus be provided C on entry to initialize degree C C if v \in V1 then elen (v) = 0 C C iw: On input, iw (1..pfree-1) holds the description of each row i C in the matrix. The matrix must be symmetric, and both upper C and lower triangular parts must be present. The diagonal must C not be present. Row i is held as follows: C C len (i): the length of the row i data structure C iw (pe (i) ... pe (i) + len (i) - 1): C the list of column indices for nonzeros C in row i (simple supervariables), excluding C the diagonal. All supervariables start with C one row/column each (supervariable i is just C row i). C if len (i) is zero on input, then pe (i) is ignored C on input. C C Note that the rows need not be in any particular order, C and there may be empty space between the rows. C C During execution, the supervariable i experiences fill-in. C This is represented by placing in i a list of the elements C that cause fill-in in supervariable i: C C len (i): the length of supervariable i C iw (pe (i) ... pe (i) + elen (i) - 1): C the list of elements that contain i. This list C is kept short by removing absorbed elements. C iw (pe (i) + elen (i) ... pe (i) + len (i) - 1): C the list of supervariables in i. This list C is kept short by removing nonprincipal C variables, and any entry j that is also C contained in at least one of the elements C (j in Le) in the list for i (e in row i). C C When supervariable i is selected as pivot, we create an C element e of the same name (e=i): C C len (e): the length of element e C iw (pe (e) ... pe (e) + len (e) - 1): C the list of supervariables in element e. C C An element represents the fill-in that occurs when supervariable C i is selected as pivot (which represents the selection of row i C and all non-principal variables whose principal variable is i). C We use the term Le to denote the set of all supervariables C in element e. Absorbed supervariables and elements are pruned C from these lists when computationally convenient. C C CAUTION: THE INPUT MATRIX IS OVERWRITTEN DURING COMPUTATION. C The contents of iw are undefined on output. C C----------------------------------------------------------------------- C OUTPUT (need not be set on input): C----------------------------------------------------------------------- C elen: See the description of iw above. At the start of execution, C elen (i) is set to zero. During execution, elen (i) is the C number of elements in the list for supervariable i. When e C becomes an element, elen (e) = -nel is set, where nel is the C current step of factorization. elen (i) = 0 is done when i C becomes nonprincipal. C C For variables, elen (i) .ge. 0 holds C For elements, elen (e) .lt. 0 holds. C C last: In a degree list, last (i) is the supervariable preceding i, C or zero if i is the head of the list. In a hash bucket, C last (i) is the hash key for i. last (head (hash)) is also C used as the head of a hash bucket if head (hash) contains a C degree list (see head, below). C C ncmpa: The number of times iw was compressed. If this is C excessive, then the execution took longer than what could have C been. To reduce ncmpa, try increasing iwlen to be 10% or 20% C larger than the value of pfree on input (or at least C iwlen .ge. pfree + n). The fastest performance will be C obtained when ncmpa is returned as zero. If iwlen is set to C the value returned by pfree on *output*, then no compressions C will occur. C begin HALO C on output ncmpa <0 --> error detected during HALO_AMD: C error 1: ncmpa = -N , ordering was stopped. C end HALO C C----------------------------------------------------------------------- C LOCAL (not input or output - used only during execution): C----------------------------------------------------------------------- C degree: If i is a supervariable, then degree (i) holds the C current approximation of the external degree of row i (an upper C bound). The external degree is the number of nonzeros in row i, C minus abs (nv (i)) (the diagonal part). The bound is equal to C the external degree if elen (i) is less than or equal to two. C We also use the term "external degree" for elements e to refer C to |Le \ Lme|. If e is an element, then degree (e) holds |Le|, C which is the degree of the off-diagonal part of the element e C (not including the diagonal part). C begin HALO C degree(I) = n+1 indicates that i belongs to V1 C end HALO C C head: head is used for degree lists. head (deg) is the first C supervariable in a degree list (all supervariables i in a C degree list deg have the same approximate degree, namely, C deg = degree (i)). If the list deg is empty then C head (deg) = 0. C C During supervariable detection head (hash) also serves as a C pointer to a hash bucket. C If head (hash) .gt. 0, there is a degree list of degree hash. C The hash bucket head pointer is last (head (hash)). C If head (hash) = 0, then the degree list and hash bucket are C both empty. C If head (hash) .lt. 0, then the degree list is empty, and C -head (hash) is the head of the hash bucket. C After supervariable detection is complete, all hash buckets C are empty, and the (last (head (hash)) = 0) condition is C restored for the non-empty degree lists. C next: next (i) is the supervariable following i in a link list, or C zero if i is the last in the list. Used for two kinds of C lists: degree lists and hash buckets (a supervariable can be C in only one kind of list at a time). C w: The flag array w determines the status of elements and C variables, and the external degree of elements. C C for elements: C if w (e) = 0, then the element e is absorbed C if w (e) .ge. wflg, then w (e) - wflg is the size of C the set |Le \ Lme|, in terms of nonzeros (the C sum of abs (nv (i)) for each principal variable i that C is both in the pattern of element e and NOT in the C pattern of the current pivot element, me). C if wflg .gt. w (e) .gt. 0, then e is not absorbed and has C not yet been seen in the scan of the element lists in C the computation of |Le\Lme| in loop 150 below. C C for variables: C during supervariable detection, if w (j) .ne. wflg then j is C not in the pattern of variable i C C The w array is initialized by setting w (i) = 1 for all i, C and by setting wflg = 2. It is reinitialized if wflg becomes C too large (to ensure that wflg+n does not cause integer C overflow). C C wf : integer array used to store the already filled area of C the variables adajcent to current pivot. C wf is then used to update the score of variable i. C C----------------------------------------------------------------------- C LOCAL INTEGERS: C----------------------------------------------------------------------- INTEGER :: DEG, DEGME, DEXT, DMAX, E, ELENME, ELN, I, & ILAST, INEXT, J, JLAST, JNEXT, K, KNT1, KNT2, KNT3, & LENJ, LN, ME, MINDEG, NEL, & NLEFT, NVI, NVJ, NVPIV, SLENME, WE, WFLG, WNVI, X, & NBFLAG, NREAL, LASTD, NELME, WF3, WF4, N2, PAS INTEGER KNT1_UPDATED, KNT2_UPDATED INTEGER(8) :: MAXMEM, MEM, NEWMEM INTEGER :: MAXINT_N INTEGER(8) :: HASH, HMOD DOUBLE PRECISION RMF, RMF1 DOUBLE PRECISION dummy INTEGER idummy LOGICAL COMPRESS C deg: the degree of a variable or element C degme: size, |Lme|, of the current element, me (= degree (me)) C dext: external degree, |Le \ Lme|, of some element e C dmax: largest |Le| seen so far C e: an element C elenme: the length, elen (me), of element list of pivotal var. C eln: the length, elen (...), of an element list C hash: the computed value of the hash function C hmod: the hash function is computed modulo hmod = max (1,n-1) C i: a supervariable C ilast: the entry in a link list preceding i C inext: the entry in a link list following i C j: a supervariable C jlast: the entry in a link list preceding j C jnext: the entry in a link list, or path, following j C k: the pivot order of an element or variable C knt1: loop counter used during element construction C knt2: loop counter used during element construction C knt3: loop counter used during compression C lenj: len (j) C ln: length of a supervariable list C maxint_n: large integer to test risk of overflow on wflg C maxmem: amount of memory needed for no compressions C me: current supervariable being eliminated, and the C current element created by eliminating that C supervariable C mem: memory in use assuming no compressions have occurred C mindeg: current minimum degree C nel: number of pivots selected so far C newmem: amount of new memory needed for current pivot element C nleft: n - nel, the number of nonpivotal rows/columns remaining C nvi: the number of variables in a supervariable i (= nv (i)) C nvj: the number of variables in a supervariable j (= nv (j)) C nvpiv: number of pivots in current element C slenme: number of variables in variable list of pivotal variable C we: w (e) C wflg: used for flagging the w array. See description of iw. C wnvi: wflg - nv (i) C x: either a supervariable or an element C wf3: off diagoanl block area C wf4: diagonal block area C mf : Minimum fill C begin HALO C nbflag: number of flagged entries in the initial gragh. C nreal : number of entries on which ordering must be perfomed C (nreel = N- nbflag) C nelme number of pivots selected when reaching the root C lastd index of the last row in the list of dense rows C end HALO C----------------------------------------------------------------------- C LOCAL POINTERS: C----------------------------------------------------------------------- INTEGER(8) :: P, P1, P2, P3, PDST, PEND, PJ, PME, PME1, PME2, & PN, PSRC C Any parameter (pe (...) or pfree) or local variable C starting with "p" (for Pointer) is an index into iw, C and all indices into iw use variables starting with C "p." The only exception to this rule is the iwlen C input argument. C p: pointer into lots of things C p1: pe (i) for some variable i (start of element list) C p2: pe (i) + elen (i) - 1 for some var. i (end of el. list) C p3: index of first supervariable in clean list C pdst: destination pointer, for compression C pend: end of memory to compress C pj: pointer into an element or variable C pme: pointer into the current element (pme1...pme2) C pme1: the current element, me, is stored in iw (pme1...pme2) C pme2: the end of the current element C pn: pointer into a "clean" variable, also used to compress C psrc: source pointer, for compression C----------------------------------------------------------------------- C FUNCTIONS CALLED: C----------------------------------------------------------------------- INTRINSIC max, min, mod, huge INTEGER TOTEL C======================================================================= C INITIALIZATIONS C======================================================================= C HEAD (0:NBBUCK+1) C C idummy holds the largest integer - 1 C dummy = dble (idummy) idummy = huge(idummy) - 1 dummy = dble(idummy) C variable with degree equal to N2 are in halo C bucket NBBUCK+1 used for HALO variables N2 = -NBBUCK-1 C Distance betweeen elements of the N, ..., NBBUCK entries of HEAD C PAS = max((NORIG/8), 1) WFLG = 2 MAXINT_N=huge(WFLG)-NORIG NCMPA = 0 NEL = 0 HMOD = int(max (1, NBBUCK-1),kind=8) DMAX = 0 MEM = PFREE - 1 MAXMEM = MEM MINDEG = 0 C NBFLAG = 0 LASTD = 0 HEAD(0:NBBUCK+1) = 0 DO 10 I = 1, N LAST(I) = 0 W(I) = 1 10 CONTINUE IF(NV(1) .LT. 0) THEN C uncompress graph C NV should be set to 1 DO I=1, N NV(I) = 1 ENDDO COMPRESS = .FALSE. ELSE COMPRESS = .TRUE. ENDIF TOTEL = 0 IF (NBELTS.EQ.0) THEN C ========================= C Graph with only variables C ========================= DO I=1,N ELEN(I) = 0 ENDDO DO I=1,N IF (LEN(I).LT.0) THEN DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-N-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELSE LEN (I) = - LEN(I) ENDIF C end HALO V3 ELSE TOTEL = TOTEL + NV(I) IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF ENDIF ENDDO ELSE C =============================================== C Bipartite graph between variables and elements C =============================================== DO I=1,N IF (LEN(I).LT.0) THEN C i \in V1 DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-N-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELEN(I) = 0 ELSE LEN (I) = - LEN(I) C only elements adjacent to a variable ELEN (I) = LEN(I) ENDIF ELSE IF (ELEN(I).LT.0) THEN C i \in Ve NEL = NEL + NV(I) ELEN(I) = -NEL IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF DMAX = MAX(DMAX, DEGREE(I)) ELSE C i \in V0 TOTEL = TOTEL + NV(I) DEGREE(I) = ELEN(I) ELEN(I) = LEN(I) ENDIF ENDIF ENDDO ENDIF #if defined(SCOTCH_DEBUG_ORDER2) IF (NBELTS.NE.NEL) THEN WRITE(6,*) " Error 8Dec2003" ENDIF #endif C C C number of entries to be ordered. NREAL = N - NBFLAG C ---------------------------------------------------------------- C initialize degree lists and eliminate rows with no off-diag. nz. C ---------------------------------------------------------------- DO 20 I = 1, N C Skip elements IF (ELEN(I).LT.0) CYCLE DEG = DEGREE (I) IF (DEG.EQ.N2) THEN C V1 variables C DEG = N2 (flagged variables are stored C in the degree list of NBBUCK + 1 C (safe: because max C max value of degree is NBBUCK) C DEG = NBBUCK + 1 IF (LASTD.EQ.0) THEN C degree list is empty LASTD = I HEAD(DEG) = I NEXT(I) = 0 LAST(I) = 0 ELSE NEXT(LASTD) = I LAST(I) = LASTD LASTD = I NEXT(I) = 0 ENDIF C ELSE IF (DEG .GT. 0) THEN CN-------------- CNstrat0 CNC DEG = int( anint ( CNC & (dble(DEG)*dble(DEG-1)) / dble(2) ) ) CNC DEG = max (DEG,1) CNstat2 WF(I) = DEG C version 1 FIXME (see Patch 04/01/04) C compute an estimation of fill C DEG = ( DEG * (DEG-1) - l*(l-1))/2 C avec l largest element adjacent to I C DEG = max (DEG, 0) IF (DEG.GT.NORIG) THEN DEG = min(((DEG-NORIG)/PAS) + NORIG , NBBUCK) ENDIF C Note that if deg=0 then C No fill-in will occur, C but one variable is adjacent to I C ---------------------------------------------------------- C place i in the degree list corresponding to its degree C ---------------------------------------------------------- INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT HEAD (DEG) = I ELSE C ---------------------------------------------------------- C we have a variable that can be eliminated at once because C there is no off-diagonal non-zero in its row. C ---------------------------------------------------------- NEL = NEL + NV(I) ELEN (I) = -NEL PE (I) = 0_8 W (I) = 0 ENDIF C======================================================================= C 20 CONTINUE C======================================================================= C WHILE (selecting pivots) DO C======================================================================= C if elements provided (NBELTS>0) they are eliminated NLEFT = TOTEL-NEL C======================================================================= C ===================================================================== 30 IF (NEL .LT. TOTEL) THEN C ===================================================================== C GET PIVOT OF MINIMUM DEGREE C======================================================================= C ------------------------------------------------------------- C find next supervariable for elimination C ------------------------------------------------------------- DO 40 DEG = MINDEG, NBBUCK ME = HEAD (DEG) IF (ME .GT. 0) GO TO 50 40 CONTINUE 50 MINDEG = DEG IF (ME.LE.0) THEN CNOCOVBEG write (*,*) ' INTERNAL ERROR in MUMPS_HAMF4 ' write(6,*) ' NEL, DEG=', NEL,DEG NCMPA = -N CNOCOVEND ENDIF IF (DEG.GT.N) THEN C ------------------------------- C Linear search to find variable C with best score in the list C ------------------------------- C While end of list list not reached C NEXT(J) = 0 J = NEXT(ME) K = WF(ME) 55 CONTINUE IF (J.GT.0) THEN IF (WF(J).LT.K) THEN ME = J K = WF(ME) ENDIF J= NEXT(J) GOTO 55 ENDIF ILAST = LAST(ME) INEXT = NEXT(ME) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C me is at the head of the degree list HEAD (DEG) = INEXT ENDIF C ELSE C ------------------------------------------------------------- C remove chosen variable from link list C ------------------------------------------------------------- INEXT = NEXT (ME) IF (INEXT .NE. 0) LAST (INEXT) = 0 HEAD (DEG) = INEXT ENDIF C ------------------------------------------------------------- C me represents the elimination of pivots nel+1 to nel+nv(me). C place me itself as the first in this set. It will be moved C to the nel+nv(me) position when the permutation vectors are C computed. C ------------------------------------------------------------- ELENME = ELEN (ME) ELEN (ME) = - (NEL + 1) NVPIV = NV (ME) NEL = NEL + NVPIV C======================================================================= C CONSTRUCT NEW ELEMENT C======================================================================= C ------------------------------------------------------------- C At this point, me is the pivotal supervariable. It will be C converted into the current element. Scan list of the C pivotal supervariable, me, setting tree pointers and C constructing new list of supervariables for the new element, C me. p is a pointer to the current position in the old list. C ------------------------------------------------------------- C flag the variable "me" as being in Lme by negating nv (me) NV (ME) = -NVPIV DEGME = 0 IF (ELENME .EQ. 0) THEN C ---------------------------------------------------------- C construct the new element in place C ---------------------------------------------------------- PME1 = PE (ME) PME2 = PME1 - 1 DO 60 P = PME1, PME1 + LEN (ME) - 1 I = IW (P) NVI = NV (I) IF (NVI .GT. 0) THEN C ---------------------------------------------------- C i is a principal variable not yet placed in Lme. C store i in new list C ---------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI PME2 = PME2 + 1 IW (PME2) = I IF (DEGREE(I).NE.N2) THEN C ---------------------------------------------------- C remove variable i from degree list. (only if i \in V0) C ---------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C i is at the head of the degree list CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.N) THEN DEG = min(((WF(I)-N)/PAS) + N , NBBUCK) ELSE DEG = WF(I) ENDIF HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 60 CONTINUE C this element takes no new memory in iw: NEWMEM = 0 ELSE C ---------------------------------------------------------- C construct the new element in empty space, iw (pfree ...) C ---------------------------------------------------------- P = PE (ME) PME1 = PFREE SLENME = LEN (ME) - ELENME KNT1_UPDATED = 0 DO 120 KNT1 = 1, ELENME + 1 KNT1_UPDATED = KNT1_UPDATED +1 IF (KNT1 .GT. ELENME) THEN C search the supervariables in me. E = ME PJ = P LN = SLENME ELSE C search the elements in me. E = IW (P) P = P + 1 PJ = PE (E) LN = LEN (E) ENDIF C ------------------------------------------------------- C search for different supervariables and add them to the C new list, compressing when necessary. this loop is C executed once for each element in the list and once for C all the supervariables in the list. C ------------------------------------------------------- KNT2_UPDATED = 0 DO 110 KNT2 = 1, LN KNT2_UPDATED = KNT2_UPDATED+1 I = IW (PJ) PJ = PJ + 1 NVI = NV (I) IF (NVI .GT. 0) THEN C ------------------------------------------------- C compress iw, if necessary C ------------------------------------------------- IF (PFREE .GT. IWLEN) THEN C prepare for compressing iw by adjusting C pointers and lengths so that the lists being C searched in the inner and outer loops contain C only the remaining entries. PE (ME) = P LEN (ME) = LEN (ME) - KNT1_UPDATED C Reset KNT1_UPDATED in case of recompress C at same iteration of the loop 120 KNT1_UPDATED = 0 C Check if anything left in supervariable ME IF (LEN (ME) .EQ. 0) PE (ME) = 0_8 PE (E) = PJ LEN (E) = LN - KNT2_UPDATED C Reset KNT2_UPDATED in case of recompress C at same iteration of the loop 110 KNT2_UPDATED = 0 C Check if anything left in element E IF (LEN (E) .EQ. 0) PE (E) = 0_8 NCMPA = NCMPA + 1 C store first item in pe C set first entry to -item DO 70 J = 1, N PN = PE (J) IF (PN .GT. 0) THEN PE (J) = int(IW (PN),8) IW (PN) = -J ENDIF 70 CONTINUE C psrc/pdst point to source/destination PDST = 1 PSRC = 1 PEND = PME1 - 1 C while loop: 80 CONTINUE IF (PSRC .LE. PEND) THEN C search for next negative entry J = -IW (PSRC) PSRC = PSRC + 1 IF (J .GT. 0) THEN IW (PDST) = int(PE (J)) PE (J) = PDST PDST = PDST + 1_8 C copy from source to destination LENJ = LEN (J) DO 90 KNT3 = 0, LENJ - 2 IW (PDST + KNT3) = IW (PSRC + KNT3) 90 CONTINUE PDST = PDST + LENJ - 1 PSRC = PSRC + LENJ - 1 ENDIF GO TO 80 ENDIF C move the new partially-constructed element P1 = PDST DO 100 PSRC = PME1, PFREE - 1 IW (PDST) = IW (PSRC) PDST = PDST + 1 100 CONTINUE PME1 = P1 PFREE = PDST PJ = PE (E) P = PE (ME) ENDIF C ------------------------------------------------- C i is a principal variable not yet placed in Lme C store i in new list C ------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI IW (PFREE) = I PFREE = PFREE + 1 IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------- C remove variable i from degree link list C (only if i in V0) C ------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.N) THEN CNold DEG = min((WF(I)/PAS) + N , NBBUCK) DEG = min(((WF(I)-N)/PAS) + N , NBBUCK) ELSE DEG = WF(I) ENDIF C i is at the head of the degree list HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 110 CONTINUE IF (E .NE. ME) THEN C set tree pointer and flag to indicate element e is C absorbed into new element me (the parent of e is me) PE (E) = int(-ME,8) W (E) = 0 ENDIF 120 CONTINUE PME2 = PFREE - 1 C this element takes newmem new memory in iw (possibly zero) NEWMEM = PFREE - PME1 MEM = MEM + NEWMEM MAXMEM = max (MAXMEM, MEM) ENDIF C ------------------------------------------------------------- C me has now been converted into an element in iw (pme1..pme2) C ------------------------------------------------------------- C degme holds the external degree of new element DEGREE (ME) = DEGME PE (ME) = PME1 LEN (ME) = int(PME2 - PME1 + 1_8) C ------------------------------------------------------------- C make sure that wflg is not too large. With the current C value of wflg, wflg+n must not cause integer overflow C ------------------------------------------------------------- IF (WFLG .GT. MAXINT_N) THEN DO 130 X = 1, N IF (W (X) .NE. 0) W (X) = 1 130 CONTINUE WFLG = 2 ENDIF C======================================================================= C COMPUTE (w (e) - wflg) = |Le\Lme| FOR ALL ELEMENTS C======================================================================= C ------------------------------------------------------------- C Scan 1: compute the external degrees of previous elements C with respect to the current element. That is: C (w (e) - wflg) = |Le \ Lme| C for each element e that appears in any supervariable in Lme. C The notation Le refers to the pattern (list of C supervariables) of a previous element e, where e is not yet C absorbed, stored in iw (pe (e) + 1 ... pe (e) + iw (pe (e))). C The notation Lme refers to the pattern of the current element C (stored in iw (pme1..pme2)). If (w (e) - wflg) becomes C zero, then the element e will be absorbed in scan 2. C ------------------------------------------------------------- DO 150 PME = PME1, PME2 I = IW (PME) ELN = ELEN (I) IF (ELN .GT. 0) THEN C note that nv (i) has been negated to denote i in Lme: NVI = -NV (I) WNVI = WFLG - NVI DO 140 P = PE (I), PE (I) + int(ELN - 1,8) E = IW (P) WE = W (E) IF (WE .GE. WFLG) THEN C unabsorbed element e has been seen in this loop WE = WE - NVI ELSE IF (WE .NE. 0) THEN C e is an unabsorbed element C this is the first we have seen e in all of Scan 1 WE = DEGREE (E) + WNVI WF(E) = 0 ENDIF W (E) = WE 140 CONTINUE ENDIF 150 CONTINUE C======================================================================= C DEGREE UPDATE AND ELEMENT ABSORPTION C======================================================================= C ------------------------------------------------------------- C Scan 2: for each i in Lme, sum up the degree of Lme (which C is degme), plus the sum of the external degrees of each Le C for the elements e appearing within i, plus the C supervariables in i. Place i in hash list. C ------------------------------------------------------------- DO 180 PME = PME1, PME2 I = IW (PME) P1 = PE (I) P2 = P1 + ELEN (I) - 1 PN = P1 HASH = 0_8 DEG = 0 WF3 = 0 WF4 = 0 NVI = -NV(I) C ---------------------------------------------------------- C scan the element list associated with supervariable i C ---------------------------------------------------------- DO 160 P = P1, P2 E = IW (P) C dext = | Le \ Lme | DEXT = W (E) - WFLG IF (DEXT .GT. 0) THEN IF ( WF(E) .EQ. 0 ) THEN C First time we meet e : compute wf(e) C which holds the surface associated to element e C it will later be deducted from fill-in C area of all variables adjacent to e WF(E) = DEXT * ( (2 * DEGREE(E)) - DEXT - 1) ENDIF WF4 = WF4 + WF(E) DEG = DEG + DEXT IW (PN) = E PN = PN + 1 HASH = HASH + int(E, kind=8) ELSE IF (DEXT .EQ. 0) THEN C aggressive absorption: e is not adjacent to me, but C the |Le \ Lme| is 0, so absorb it into me PE (E) = int(-ME,8) W (E) = 0 ENDIF 160 CONTINUE C count the number of elements in i (including me): ELEN (I) = int(PN - P1 + 1_8) C ---------------------------------------------------------- C scan the supervariables in the list associated with i C ---------------------------------------------------------- P3 = PN DO 170 P = P2 + 1_8, P1 + int(LEN (I) - 1,8) J = IW (P) NVJ = NV (J) IF (NVJ .GT. 0) THEN C j is unabsorbed, and not in Lme. C add to degree and add to new list DEG = DEG + NVJ WF3 = WF3 + NVJ IW (PN) = J PN = PN + 1 HASH = HASH + int(J,kind=8) ENDIF 170 CONTINUE C IF (DEGREE(I).EQ.N2) DEG = N2 C ---------------------------------------------------------- C update the degree and check for mass elimination C ---------------------------------------------------------- IF (DEG .EQ. 0) THEN C ------------------------------------------------------- C mass elimination C ------------------------------------------------------- C There is nothing left of this node except for an C edge to the current pivot element. elen (i) is 1, C and there are no variables adjacent to node i. C Absorb i into the current pivot element, me. PE (I) = int(-ME,8) NVI = -NV (I) DEGME = DEGME - NVI NVPIV = NVPIV + NVI NEL = NEL + NVI NV (I) = 0 ELEN (I) = 0 ELSE C ------------------------------------------------------- C update the upper-bound degree of i C ------------------------------------------------------- C the following degree does not yet include the size C of the current element, which is added later: IF (DEGREE(I).NE.N2) THEN C I does not belong to halo CNCCC DEG = min (DEG, NLEFT) IF ( DEGREE (I).LT.DEG ) THEN C Our appox degree is loose. C we keep old value. Note that in C this case we cannot substract WF(I) C for min-fill score. WF4 = 0 WF3 = 0 ELSE DEGREE(I) = DEG ENDIF ENDIF C C compute WF(I) taking into account size of block 3.0 WF(I) = WF4 + 2*NVI*WF3 C ------------------------------------------------------- C add me to the list for i C ------------------------------------------------------- C move first supervariable to end of list IW (PN) = IW (P3) C move first element to end of element part of list IW (P3) = IW (P1) C add new element to front of list. IW (P1) = ME C store the new length of the list in len (i) LEN (I) = int(PN - P1 + 1) IF (DEG.NE.N2) THEN C ------------------------------------------------------- C place in hash bucket. Save hash key of i in last (i). C ------------------------------------------------------- HASH = mod (HASH, HMOD) + 1_8 J = HEAD (HASH) IF (J .LE. 0) THEN C the degree list is empty, hash head is -j NEXT (I) = -J HEAD (HASH) = -I ELSE C degree list is not empty C use last (head (hash)) as hash head NEXT (I) = LAST (J) LAST (J) = I ENDIF LAST (I) = int(HASH,kind=kind(LAST)) ENDIF ENDIF 180 CONTINUE DEGREE (ME) = DEGME C ------------------------------------------------------------- C Clear the counter array, w (...), by incrementing wflg. C ------------------------------------------------------------- DMAX = max (DMAX, DEGME) WFLG = WFLG + DMAX C make sure that wflg+n does not cause integer overflow IF (WFLG .GT. MAXINT_N) THEN DO 190 X = 1, N IF (W (X) .NE. 0) W (X) = 1 190 CONTINUE WFLG = 2 ENDIF C at this point, w (1..n) .lt. wflg holds C======================================================================= C SUPERVARIABLE DETECTION C======================================================================= DO 250 PME = PME1, PME2 I = IW (PME) IF ( (NV (I) .LT. 0) .AND. (DEGREE(I).NE.N2) ) THEN C i is a principal variable in Lme C ------------------------------------------------------- C examine all hash buckets with 2 or more variables. We C do this by examing all unique hash keys for super- C variables in the pattern Lme of the current element, me C ------------------------------------------------------- HASH = int(LAST (I),kind=8) C let i = head of hash bucket, and empty the hash bucket J = HEAD (HASH) IF (J .EQ. 0) GO TO 250 IF (J .LT. 0) THEN C degree list is empty I = -J HEAD (HASH) = 0 ELSE C degree list is not empty, restore last () of head I = LAST (J) LAST (J) = 0 ENDIF IF (I .EQ. 0) GO TO 250 C while loop: 200 CONTINUE IF (NEXT (I) .NE. 0) THEN C ---------------------------------------------------- C this bucket has one or more variables following i. C scan all of them to see if i can absorb any entries C that follow i in hash bucket. Scatter i into w. C ---------------------------------------------------- LN = LEN (I) ELN = ELEN (I) C do not flag the first element in the list (me) DO 210 P = PE (I) + 1_8, PE (I) + int(LN - 1,8) W (IW (P)) = WFLG 210 CONTINUE C ---------------------------------------------------- C scan every other entry j following i in bucket C ---------------------------------------------------- JLAST = I J = NEXT (I) C while loop: 220 CONTINUE IF (J .NE. 0) THEN C ------------------------------------------------- C check if j and i have identical nonzero pattern C ------------------------------------------------- C jump if i and j do not have same size data structure IF (LEN (J) .NE. LN) GO TO 240 C jump if i and j do not have same number adj elts IF (ELEN (J) .NE. ELN) GO TO 240 C do not flag the first element in the list (me) DO 230 P = PE (J) + 1_8, PE (J) + int(LN - 1,8) C jump if an entry (iw(p)) is in j but not in i IF (W (IW (P)) .NE. WFLG) GO TO 240 230 CONTINUE C ------------------------------------------------- C found it! j can be absorbed into i C ------------------------------------------------- PE (J) = int(-I,8) WF(I) = max(WF(I),WF(J)) C both nv (i) and nv (j) are negated since they C are in Lme, and the absolute values of each C are the number of variables in i and j: NV (I) = NV (I) + NV (J) NV (J) = 0 ELEN (J) = 0 C delete j from hash bucket J = NEXT (J) NEXT (JLAST) = J GO TO 220 C ------------------------------------------------- 240 CONTINUE C j cannot be absorbed into i C ------------------------------------------------- JLAST = J J = NEXT (J) GO TO 220 ENDIF C ---------------------------------------------------- C no more variables can be absorbed into i C go to next i in bucket and clear flag array C ---------------------------------------------------- WFLG = WFLG + 1 I = NEXT (I) IF (I .NE. 0) GO TO 200 ENDIF ENDIF 250 CONTINUE C======================================================================= C RESTORE DEGREE LISTS AND REMOVE NONPRINCIPAL SUPERVAR. FROM ELEMENT C======================================================================= P = PME1 NLEFT = TOTEL - NEL DO 260 PME = PME1, PME2 I = IW (PME) NVI = -NV (I) IF (NVI .GT. 0) THEN C i is a principal variable in Lme C restore nv (i) to signify that i is principal NV (I) = NVI IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------------- C compute the external degree (add size of current elem) C ------------------------------------------------------- CNamdonly DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) C-------------------------- C-------------------------- DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) IF (DEGREE (I) + DEGME .GT. NLEFT ) THEN C DEG = DEGREE(I) RMF1 = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) DEGREE(I) = NLEFT - NVI DEG = DEGREE(I) RMF = dble(DEG)*dble(DEG-1) & - dble(DEGME-NVI)*dble(DEGME-NVI-1) RMF = min(RMF, RMF1) ELSE DEG = DEGREE(I) DEGREE(I) = DEGREE (I) + DEGME - NVI C All previous cliques taken into account (AMF4) RMF = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) ENDIF C RMF = RMF / dble(NVI+1) C IF (RMF.LT.dummy) THEN WF(I) = int ( anint( RMF )) ELSEIF (RMF / dble(N) .LT. dummy) THEN WF(I) = int ( anint( RMF/dble(N) )) ELSE WF(I) = idummy ENDIF WF(I) = max(1,WF(I)) CN CN CN CN CN CN DEG = WF(I) IF (DEG.GT.N) THEN DEG = min(((DEG-N)/PAS) + N , NBBUCK) ENDIF INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT LAST (I) = 0 HEAD (DEG) = I C ------------------------------------------------------- C save the new degree, and find the minimum degree C ------------------------------------------------------- MINDEG = min (MINDEG, DEG) C begin HALO ENDIF C end HALO C ------------------------------------------------------- C place the supervariable in the element pattern C ------------------------------------------------------- IW (P) = I P = P + 1 ENDIF 260 CONTINUE C======================================================================= C FINALIZE THE NEW ELEMENT C======================================================================= NV (ME) = NVPIV + DEGME C fill_est = fill_est + nvpiv * (nvpiv + 2 * degme) C nv (me) is now the degree of pivot (including diagonal part) C save the length of the list for the new element me LEN (ME) = int(P - PME1) IF (LEN (ME) .EQ. 0) THEN C there is nothing left of the current pivot element PE (ME) = 0_8 W (ME) = 0 ENDIF IF (NEWMEM .NE. 0) THEN C element was not constructed in place: deallocate part C of it (final size is less than or equal to newmem, C since newly nonprincipal variables have been removed). PFREE = P MEM = MEM - NEWMEM + int(LEN (ME),8) ENDIF C======================================================================= C END WHILE (selecting pivots) GO TO 30 ENDIF C======================================================================= C begin HALO V2 C IF (NEL.LT.N+NBELTS) THEN IF (NBFLAG.GT.0) THEN C C All possible pivots (not flagged have been eliminated). C We amalgamate all flagged variables at the root and C we finish the elimination tree. C 1/ Go through all C non absorbed elements (root of the subgraph) C and absorb in ME C 2/ perform mass elimination of all dense rows DO DEG = MINDEG, NBBUCK+1 ME = HEAD (DEG) IF (ME .GT. 0) GO TO 51 ENDDO 51 MINDEG = DEG NELME = -(NEL+1) DO X=1,N IF ((PE(X).GT.0) .AND. (ELEN(X).LT.0)) THEN C X is an unabsorbed element PE(X) = int(-ME,8) C W(X) = 0 could be suppressed ?? check it ELSEIF (DEGREE(X).EQ.N2) THEN C X is a dense row, absorb it in ME (mass elimination) NEL = NEL + NV(X) PE(X) = int(-ME,8) ELEN(X) = 0 C Correct value of NV is (secondary variable) NV(X) = 0 ENDIF ENDDO C ME is the root node ELEN(ME) = NELME C Correct value of NV is (principal variable) NV(ME) = N-NREAL ! =NBFLAG PE(ME) = 0_8 CN #if defined(SCOTCH_DEBUG_ORDER2) C IF (NEL.NE.N) THEN IF (NEL.NE.NORIG) THEN NCMPA = -NORIG - 1 WRITE(6,*) " Warning 30Oct2019" ENDIF #endif ENDIF C end HALO C C======================================================================= C COMPUTE THE PERMUTATION VECTORS C======================================================================= C ---------------------------------------------------------------- C The time taken by the following code is O(n). At this C point, elen (e) = -k has been done for all elements e, C and elen (i) = 0 has been done for all nonprincipal C variables i. At this point, there are no principal C supervariables left, and all elements are absorbed. C ---------------------------------------------------------------- C ---------------------------------------------------------------- C compute the ordering of unordered nonprincipal variables C ---------------------------------------------------------------- DO 290 I = 1, N IF (ELEN (I) .EQ. 0) THEN C ---------------------------------------------------------- C i is an un-ordered row. Traverse the tree from i until C reaching an element, e. The element, e, was the C principal supervariable of i and all nodes in the path C from i to when e was selected as pivot. C ---------------------------------------------------------- J = int(-PE (I)) C while (j is a variable) do: 270 CONTINUE IF (ELEN (J) .GE. 0) THEN J = int(-PE (J)) GO TO 270 ENDIF E = J C ---------------------------------------------------------- C get the current pivot ordering of e C ---------------------------------------------------------- K = -ELEN (E) C ---------------------------------------------------------- C traverse the path again from i to e, and compress the C path (all nodes point to e). Path compression allows C this code to compute in O(n) time. Order the unordered C nodes in the path, and place the element e at the end. C ---------------------------------------------------------- J = I C while (j is a variable) do: 280 CONTINUE IF (ELEN (J) .GE. 0) THEN JNEXT = int(-PE (J)) PE (J) = int(-E,8) IF (ELEN (J) .EQ. 0) THEN C j is an unordered row ELEN (J) = K K = K + 1 ENDIF J = JNEXT GO TO 280 ENDIF C leave elen (e) negative, so we know it is an element ELEN (E) = -K ENDIF 290 CONTINUE C ---------------------------------------------------------------- C reset the inverse permutation (elen (1..n)) to be positive, C and compute the pivot order (last (1..n)). C ---------------------------------------------------------------- C======================================================================= C RETURN THE MEMORY USAGE IN IW C======================================================================= C If maxmem is less than or equal to iwlen, then no compressions C occurred, and iw (maxmem+1 ... iwlen) was unused. Otherwise C compressions did occur, and iwlen would have had to have been C greater than or equal to maxmem for no compressions to occur. C Return the value of maxmem in the pfree argument. 500 PFREE = MAXMEM RETURN END SUBROUTINE MUMPS_HAMF4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/hamf_20200209.F000066400000000000000000002026401514310134000275660ustar00rootroot00000000000000C Version generated on October 29th 2019 C C This file includes various modifications of an original C LGPL/ CeCILL-C compatible C code implementing the AMD (Approximate Minimum Degree) ordering C Patrick Amestoy, Timothy A. Davis, and Iain S. Duff, C "An approximate minimum degree ordering algorithm," C SIAM J. Matrix Analysis vol 17, pages=886--905 (1996) C MUMPS_ANA_H is based on the original AMD code: C C AMD, Copyright (c), 1996-2016, Timothy A. Davis, C Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. C Used in MUMPS under the BSD 3-clause license. C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND C CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, C BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND C FITNESS FOR A PARTICULAR PURPOSE C ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR C ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL C DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS C OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) C HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, C STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING C IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE C POSSIBILITY OF SUCH DAMAGE. C C MUMPS_HAMF4 is a major modification of AMD C since the metric used to select pivots in not anymore the C degree but an approximation of the fill-in. C In this approximation C all cliques of elements adjacent to the variable are deducted. C MUMPS_HAMF4 also enables to take into account a halo in the graph. C The graph is composed is partitioned in two types of nodes C the so called internal nodes and the so called halo nodes. C Halo nodes cannot be selected the both the initial degrees C and updated degrees of internal node should be taken C into account. C Written by Patrick Amestoy between 1999 and 2019. C and used by F. Pellegrini in SCOTCH since 2000. C C Unique version to order both graph of variables and C graphs with both elements and variables. C C Notations used: C Let us refer to as C Gv a graph with only variables C Ge a graph with both variables and elements C C Let V be the set of nodes in the graph C V = Ve + V0 + V1 C V0 = Set of variable nodes (not in halo) C V1 = Set of variable nodes (in halo) C Ve = Set of element nodes |Ve|=nbelts C C All 3 sets are disjoint, Ve and V1 can be empty C If nbelts>0 then a bipartite graph bewteen C (V0 U V1) and Ve is provided on entry. C A graph of elements and variables is a bipartite C graph between the set of variables (that may C include halo variables) and the set of elements. C Thus variables are only adjacent to elements and C in the element list we only have variables. C Elements are "considered" as already eliminated and C are provided here only to describe the adjacency between C variables. Only variables in V0 need to be eliminated. C C Comments relative to 64/32 bits integer representation: C Restrictive integer 64 bit variant : C it is assumed that IW array size can exceed 32-bit integer C and thus iwlen is INTEGER(8) and pe in an INTEGER(8) array C Graphe size n must be smaller than 2x10^9 but number of C edges is a 64-bit integer. C C SUBROUTINE MUMPS_HAMF4(NORIG, N, NBELTS, NBBUCK, & IWLEN, PE, PFREE, LEN, IW, NV, ELEN, & LAST, NCMPA, DEGREE, WF, NEXT, W, HEAD & ) IMPLICIT NONE C C Parameters C Input not modified INTEGER, INTENT(IN) :: NORIG, N, NBELTS, NBBUCK INTEGER(8), INTENT(IN) :: IWLEN C Input undefined on output INTEGER, INTENT(INOUT) :: LEN(N), IW(IWLEN) C NV also meaningful as input to encode compressed graphs INTEGER, INTENT(INOUT) :: NV(N) C C Output only INTEGER, INTENT(OUT) :: NCMPA INTEGER, INTENT(OUT) :: ELEN(N), LAST(N) C C Input/output INTEGER(8), INTENT(INOUT) :: PFREE INTEGER(8), INTENT(INOUT) :: PE(N) C C Internal Workspace only C Min fill approximation one extra array of size NBBUCK+2 C is also needed INTEGER :: NEXT(N), DEGREE(N), W(N) INTEGER :: HEAD(0:NBBUCK+1), WF(N) C C Comments on the OUTPUT: C ---------------------- C Let V= V0 U V1 the nodes of the initial graph (|V|=n). C The assembly tree corresponds to the tree C of the supernodes (or supervariables). Each node of the C assembly tree is then composed of one principal variable C and a list of secondary variables. The list of C variable of a node (principal + secondary variables) then C describes the structure of the diagonal bloc of the C supernode. C The elimination tree denotes the tree of all the variables(=node) and C is therefore of order n. C C The arrays NV(N) and PE(N) give a description of the C assembly tree. C C 1/ Description of array nv(N) (on OUTPUT) C nv(i)=0 i is a secondary variable C nv(i) >0 i is a principal variable, nv(i) holds the C the number of elements in column i of L (true degree of i) C with compressed graph (nv(1).ne.-1 on input), C nv(i) can be greater than N since degree can be as large as NORIG. C C 2/ Description of array PE(N) (on OUTPUT) C Note that on C pe(i) = -(father of variable/node i) in the elimination tree: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C 3/ Example: C Let If be a root node father of Is in the assembly tree. C If is the principal C variable of the node If and let If1, If2, If3 be the secondary variables C of node If. C Is is the principal C variable of the node Is and let Is1, Is2 be the secondary variables C of node Is. C C THEN: C NV(If1)=NV(If2)=NV(If3) = 0 (secondary variables) C NV(Is1)=NV(Is2) = 0 (secondary variables) C NV(If) > 0 ( principal variable) C NV(Is) > 0 ( principal variable) C PE(If) = 0 (root node) C PE(Is) = -If (If is the father of Is in the assembly tree) C PE(If1)=PE(If2)=PE(If3)= -If ( If is the principal variable) C PE(Is1)=PE(Is2)= -Is ( Is is the principal variable) C C C C HALOAMD_V1: (September 1997) C ********** C Initial version designed to experiment the numerical (fill-in) impact C of taking into account the halo. This code should be able C to experiment no-halo, partial halo, complete halo. C DATE: September 17th 1997 C C HALOAMD is designed to process a gragh composed of two types C of nodes, V0 and V1, extracted from a larger gragh. C V0^V1 = {}, C C We used Min. degree heuristic to order only C nodes in V0, but the adjacency to nodes C in V1 is taken into account during ordering. C Nodes in V1 are odered at last. C Adjacency between nodes of V1 need not be provided, C however |len(i)| must always corresponds to the number of C edges effectively provided in the adjacency list of i. C On input : c ******** C Nodes INODE in V1 are flagged with len(INODE) = -degree C if len(i) =0 and i \in V1 then C len(i) must be set on input to -NORIG-1 C ERROR return (negative values in ncmpa) C ************ C negative value in ncmpa indicates an error detected C by HALOAMD. C C The graph provided MUST follow the rule: C if (i,j) is an edge in the gragh then C j must be in the adjacency list of i AND C i must be in the adjacency list of j. C REMARKS C ------- C C 1/ Providing edges between nodes of V1 should not C affect the final ordering, only the amount of edges C of the halo should effectively affect the solution. C This code should work in the following cases: C 1/ halo not provided C 2/ halo partially provided C 3/ complete halo C 4/ complete halo+interconnection between nodes of V1. C C 1/ should run and provide identical results (w.r.t to current C implementation of AMD in SCOTCH). C 3/ and 4 should provide identical results. C C 2/ All modifications of the AMD initial code are indicated C with begin HALO .. end HALO C C C Given a representation of the nonzero pattern of a symmetric matrix, C A, (excluding the diagonal) perform an approximate minimum C fill-in heuristic. Aggresive absorption is C used to tighten the bound on the degree. This can result an C significant improvement in the quality of the ordering for C some matrices. C----------------------------------------------------------------------- C INPUT ARGUMENTS (unaltered): C----------------------------------------------------------------------- C n: number of nodes in the complete graph including halo C n = size of V0 U V1 U Ve C Restriction: n .ge. 1 C C norig if compressed graph (nv(1).ne.-1) then C norig is the sum(nv(i)) for i \in [1:n] C and could ne larger than n C else norig = n C C nbbuck should be greater than norig C advised value is 2*norig C C nbelts number of elements (size of Ve) C =0 if Gv (graph of variables) C >0 if Ge C nbelts > 0 extends/changes the meaning of C len/elen on entry (see below) C C C iwlen: The length of iw (1..iwlen). On input, the matrix is C stored in iw (1..pfree-1). However, iw (1..iwlen) should be C slightly larger than what is required to hold the matrix, at C least iwlen .ge. pfree + n is recommended. Otherwise, C excessive compressions will take place. C *** We do not recommend running this algorithm with *** C *** iwlen .lt. pfree + n. *** C *** Better performance will be obtained if *** C *** iwlen .ge. pfree + n *** C *** or better yet *** C *** iwlen .gt. 1.2 * pfree *** C *** (where pfree is its value on input). *** C The algorithm will not run at all if iwlen .lt. pfree-1. C C Restriction: iwlen .ge. pfree-1 C----------------------------------------------------------------------- C INPUT/OUPUT ARGUMENTS: C----------------------------------------------------------------------- C pe: On input, pe (i) is the index in iw of the start of row i, or C zero if row i has no off-diagonal non-zeros. C C During execution, it is used for both supervariables and C elements: C C * Principal supervariable i: index into iw of the C description of supervariable i. A supervariable C represents one or more rows of the matrix C with identical nonzero pattern. C * Non-principal supervariable i: if i has been absorbed C into another supervariable j, then pe (i) = -j. C That is, j has the same pattern as i. C Note that j might later be absorbed into another C supervariable j2, in which case pe (i) is still -j, C and pe (j) = -j2. C * Unabsorbed element e: the index into iw of the description C of element e, if e has not yet been absorbed by a C subsequent element. Element e is created when C the supervariable of the same name is selected as C the pivot. C * Absorbed element e: if element e is absorbed into element C e2, then pe (e) = -e2. This occurs when the pattern of C e (that is, Le) is found to be a subset of the pattern C of e2 (that is, Le2). If element e is "null" (it has C no nonzeros outside its pivot block), then pe (e) = 0. C C On output, pe holds the assembly tree/forest, which implicitly C represents a pivot order with identical fill-in as the actual C order (via a depth-first search of the tree). C C On output: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C pfree: On input, the matrix is stored in iw (1..pfree-1) and C the rest of the array iw is free. C During execution, additional data is placed in iw, and pfree C is modified so that components of iw from pfree are free. C On output, pfree is set equal to the size of iw that C would have been needed for no compressions to occur. If C ncmpa is zero, then pfree (on output) is less than or equal to C iwlen, and the space iw (pfree+1 ... iwlen) was not used. C Otherwise, pfree (on output) is greater than iwlen, and all the C memory in iw was used. C C nv: On input, encoding of compressed graph: C if nv(1) = -1 then graph is not compressed otherwise C nv(I) holds the weight of node i. C During execution, abs (nv (i)) is equal to the number of rows C that are represented by the principal supervariable i. If i is C a nonprincipal variable, then nv (i) = 0. Initially, C nv (i) = 1 for all i. nv (i) .lt. 0 signifies that i is a C principal variable in the pattern Lme of the current pivot C element me. On output, nv (e) holds the true degree of element C e at the time it was created (including the diagonal part). C begin HALO C On output, nv(I) can be used to find node in set V1. C Not true anymore : ( nv(I) = N+1 characterizes nodes in V1. C instead nodes in V1 are considered as a dense root node ) C end HALO C----------------------------------------------------------------------- C INPUT/MODIFIED (undefined on output): C----------------------------------------------------------------------- C len: On input, len (i) C positive or null (>=0) : i \in V0 U Ve and C if (nbelts==0) then (graph of variables) C len(i) holds the number of entries in row i of the C matrix, excluding the diagonal. C else (graph of elements+variables) C if i\in V0 then len(i) = nb of elements adjacent to i C if i\in Ve then len(i) = nb of variables adjacent to i C endif C negative (<0) : i \in V1, and C if (nbelts==0) then (graph of variables) C -len(i) hold the number of entries in row i of the C matrix, excluding the diagonal. C len(i) = - | Adj(i) | if i \in V1 C or -N -1 if | Adj(i) | = 0 and i \in V1 C else (graph of elements+variables) C -len(i) nb of elements adjacent to i C endif C The content of len (1..n) is undefined on output. C C elen: defined on input only if nbelts>0 C if e \in Ve then elen (e) = -N-1 C if v \in V0 then elen (v) = External degree of v C that should thus be provided C on entry to initialize degree C C if v \in V1 then elen (v) = 0 C C iw: On input, iw (1..pfree-1) holds the description of each row i C in the matrix. The matrix must be symmetric, and both upper C and lower triangular parts must be present. The diagonal must C not be present. Row i is held as follows: C C len (i): the length of the row i data structure C iw (pe (i) ... pe (i) + len (i) - 1): C the list of column indices for nonzeros C in row i (simple supervariables), excluding C the diagonal. All supervariables start with C one row/column each (supervariable i is just C row i). C if len (i) is zero on input, then pe (i) is ignored C on input. C C Note that the rows need not be in any particular order, C and there may be empty space between the rows. C C During execution, the supervariable i experiences fill-in. C This is represented by placing in i a list of the elements C that cause fill-in in supervariable i: C C len (i): the length of supervariable i C iw (pe (i) ... pe (i) + elen (i) - 1): C the list of elements that contain i. This list C is kept short by removing absorbed elements. C iw (pe (i) + elen (i) ... pe (i) + len (i) - 1): C the list of supervariables in i. This list C is kept short by removing nonprincipal C variables, and any entry j that is also C contained in at least one of the elements C (j in Le) in the list for i (e in row i). C C When supervariable i is selected as pivot, we create an C element e of the same name (e=i): C C len (e): the length of element e C iw (pe (e) ... pe (e) + len (e) - 1): C the list of supervariables in element e. C C An element represents the fill-in that occurs when supervariable C i is selected as pivot (which represents the selection of row i C and all non-principal variables whose principal variable is i). C We use the term Le to denote the set of all supervariables C in element e. Absorbed supervariables and elements are pruned C from these lists when computationally convenient. C C CAUTION: THE INPUT MATRIX IS OVERWRITTEN DURING COMPUTATION. C The contents of iw are undefined on output. C C----------------------------------------------------------------------- C OUTPUT (need not be set on input): C----------------------------------------------------------------------- C elen: See the description of iw above. At the start of execution, C elen (i) is set to zero. During execution, elen (i) is the C number of elements in the list for supervariable i. When e C becomes an element, elen (e) = -nel is set, where nel is the C current step of factorization. elen (i) = 0 is done when i C becomes nonprincipal. C C For variables, elen (i) .ge. 0 holds C For elements, elen (e) .lt. 0 holds. C C last: In a degree list, last (i) is the supervariable preceding i, C or zero if i is the head of the list. In a hash bucket, C last (i) is the hash key for i. last (head (hash)) is also C used as the head of a hash bucket if head (hash) contains a C degree list (see head, below). C C ncmpa: The number of times iw was compressed. If this is C excessive, then the execution took longer than what could have C been. To reduce ncmpa, try increasing iwlen to be 10% or 20% C larger than the value of pfree on input (or at least C iwlen .ge. pfree + n). The fastest performance will be C obtained when ncmpa is returned as zero. If iwlen is set to C the value returned by pfree on *output*, then no compressions C will occur. C begin HALO C on output ncmpa <0 --> error detected during HALO_AMD: C error 1: ncmpa = -NORIG , ordering was stopped. C end HALO C C----------------------------------------------------------------------- C LOCAL (not input or output - used only during execution): C----------------------------------------------------------------------- C degree: If i is a supervariable, then degree (i) holds the C current approximation of the external degree of row i (an upper C bound). The external degree is the number of nonzeros in row i, C minus abs (nv (i)) (the diagonal part). The bound is equal to C the external degree if elen (i) is less than or equal to two. C We also use the term "external degree" for elements e to refer C to |Le \ Lme|. If e is an element, then degree (e) holds |Le|, C which is the degree of the off-diagonal part of the element e C (not including the diagonal part). C begin HALO C degree(I) = n+1 indicates that i belongs to V1 C end HALO C C head: head is used for degree lists. head (deg) is the first C supervariable in a degree list (all supervariables i in a C degree list deg have the same approximate degree, namely, C deg = degree (i)). If the list deg is empty then C head (deg) = 0. C C During supervariable detection head (hash) also serves as a C pointer to a hash bucket. C If head (hash) .gt. 0, there is a degree list of degree hash. C The hash bucket head pointer is last (head (hash)). C If head (hash) = 0, then the degree list and hash bucket are C both empty. C If head (hash) .lt. 0, then the degree list is empty, and C -head (hash) is the head of the hash bucket. C After supervariable detection is complete, all hash buckets C are empty, and the (last (head (hash)) = 0) condition is C restored for the non-empty degree lists. C next: next (i) is the supervariable following i in a link list, or C zero if i is the last in the list. Used for two kinds of C lists: degree lists and hash buckets (a supervariable can be C in only one kind of list at a time). C w: The flag array w determines the status of elements and C variables, and the external degree of elements. C C for elements: C if w (e) = 0, then the element e is absorbed C if w (e) .ge. wflg, then w (e) - wflg is the size of C the set |Le \ Lme|, in terms of nonzeros (the C sum of abs (nv (i)) for each principal variable i that C is both in the pattern of element e and NOT in the C pattern of the current pivot element, me). C if wflg .gt. w (e) .gt. 0, then e is not absorbed and has C not yet been seen in the scan of the element lists in C the computation of |Le\Lme| in loop 150 below. C C for variables: C during supervariable detection, if w (j) .ne. wflg then j is C not in the pattern of variable i C C The w array is initialized by setting w (i) = 1 for all i, C and by setting wflg = 2. It is reinitialized if wflg becomes C too large (to ensure that wflg+n does not cause integer C overflow). C C wf : integer array used to store the already filled area of C the variables adajcent to current pivot. C wf is then used to update the score of variable i. C C----------------------------------------------------------------------- C LOCAL INTEGERS: C----------------------------------------------------------------------- INTEGER :: DEG, DEGME, DEXT, DMAX, E, ELENME, ELN, I, & ILAST, INEXT, J, JLAST, JNEXT, K, KNT1, KNT2, KNT3, & LENJ, LN, ME, MINDEG, NEL, & NLEFT, NVI, NVJ, NVPIV, SLENME, WE, WFLG, WNVI, X, & NBFLAG, NREAL, LASTD, NELME, WF3, WF4, N2, PAS INTEGER KNT1_UPDATED, KNT2_UPDATED INTEGER(8) :: MAXMEM, MEM, NEWMEM INTEGER :: MAXINT_N INTEGER(8) :: HASH, HMOD DOUBLE PRECISION RMF, RMF1 DOUBLE PRECISION dummy INTEGER idummy LOGICAL COMPRESS C deg: the degree of a variable or element C degme: size, |Lme|, of the current element, me (= degree (me)) C dext: external degree, |Le \ Lme|, of some element e C dmax: largest |Le| seen so far C e: an element C elenme: the length, elen (me), of element list of pivotal var. C eln: the length, elen (...), of an element list C hash: the computed value of the hash function C hmod: the hash function is computed modulo hmod = max (1,n-1) C i: a supervariable C ilast: the entry in a link list preceding i C inext: the entry in a link list following i C j: a supervariable C jlast: the entry in a link list preceding j C jnext: the entry in a link list, or path, following j C k: the pivot order of an element or variable C knt1: loop counter used during element construction C knt2: loop counter used during element construction C knt3: loop counter used during compression C lenj: len (j) C ln: length of a supervariable list C maxint_n: large integer to test risk of overflow on wflg C maxmem: amount of memory needed for no compressions C me: current supervariable being eliminated, and the C current element created by eliminating that C supervariable C mem: memory in use assuming no compressions have occurred C mindeg: current minimum degree C nel: number of pivots selected so far C newmem: amount of new memory needed for current pivot element C nleft: n - nel, the number of nonpivotal rows/columns remaining C nvi: the number of variables in a supervariable i (= nv (i)) C nvj: the number of variables in a supervariable j (= nv (j)) C nvpiv: number of pivots in current element C slenme: number of variables in variable list of pivotal variable C we: w (e) C wflg: used for flagging the w array. See description of iw. C wnvi: wflg - nv (i) C x: either a supervariable or an element C wf3: off diagoanl block area C wf4: diagonal block area C mf : Minimum fill C begin HALO C nbflag: number of flagged entries in the initial gragh. C nreal : number of entries on which ordering must be perfomed C (nreel = N- nbflag) C nelme number of pivots selected when reaching the root C lastd index of the last row in the list of dense rows C end HALO C----------------------------------------------------------------------- C LOCAL POINTERS: C----------------------------------------------------------------------- INTEGER(8) :: P, P1, P2, P3, PDST, PEND, PJ, PME, PME1, PME2, & PN, PSRC C Any parameter (pe (...) or pfree) or local variable C starting with "p" (for Pointer) is an index into iw, C and all indices into iw use variables starting with C "p." The only exception to this rule is the iwlen C input argument. C p: pointer into lots of things C p1: pe (i) for some variable i (start of element list) C p2: pe (i) + elen (i) - 1 for some var. i (end of el. list) C p3: index of first supervariable in clean list C pdst: destination pointer, for compression C pend: end of memory to compress C pj: pointer into an element or variable C pme: pointer into the current element (pme1...pme2) C pme1: the current element, me, is stored in iw (pme1...pme2) C pme2: the end of the current element C pn: pointer into a "clean" variable, also used to compress C psrc: source pointer, for compression C----------------------------------------------------------------------- C FUNCTIONS CALLED: C----------------------------------------------------------------------- INTRINSIC max, min, mod, huge INTEGER TOTEL C======================================================================= C INITIALIZATIONS C======================================================================= C HEAD (0:NBBUCK+1) C C idummy holds the largest integer - 1 C dummy = dble (idummy) idummy = huge(idummy) - 1 dummy = dble(idummy) C variable with degree equal to N2 are in halo C bucket NBBUCK+1 used for HALO variables N2 = -NBBUCK-1 C Distance betweeen elements of the N, ..., NBBUCK entries of HEAD C PAS = max((NORIG/8), 1) WFLG = 2 MAXINT_N=huge(WFLG)-NORIG NCMPA = 0 NEL = 0 HMOD = int(max (1, NBBUCK-1),kind=8) DMAX = 0 MEM = PFREE - 1 MAXMEM = MEM MINDEG = 0 C NBFLAG = 0 LASTD = 0 HEAD(0:NBBUCK+1) = 0 DO 10 I = 1, N LAST(I) = 0 W(I) = 1 10 CONTINUE IF(NV(1) .LT. 0) THEN C uncompress graph C NV should be set to 1 DO I=1, N NV(I) = 1 ENDDO COMPRESS = .FALSE. ELSE COMPRESS = .TRUE. ENDIF TOTEL = 0 IF (NBELTS.EQ.0) THEN C ========================= C Graph with only variables C ========================= DO I=1,N ELEN(I) = 0 ENDDO DO I=1,N IF (LEN(I).LT.0) THEN DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-NORIG-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELSE LEN (I) = - LEN(I) ENDIF C end HALO V3 ELSE TOTEL = TOTEL + NV(I) IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF ENDIF ENDDO ELSE C =============================================== C Bipartite graph between variables and elements C =============================================== DO I=1,N IF (LEN(I).LT.0) THEN C i \in V1 DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-NORIG-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELEN(I) = 0 ELSE LEN (I) = - LEN(I) C only elements adjacent to a variable ELEN (I) = LEN(I) ENDIF ELSE IF (ELEN(I).LT.0) THEN C i \in Ve NEL = NEL + NV(I) ELEN(I) = -NEL IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF DMAX = MAX(DMAX, DEGREE(I)) ELSE C i \in V0 TOTEL = TOTEL + NV(I) DEGREE(I) = ELEN(I) ELEN(I) = LEN(I) ENDIF ENDIF ENDDO ENDIF #if defined(SCOTCH_DEBUG_ORDER2) IF (NBELTS.NE.NEL) THEN WRITE(6,*) " Error 8Dec2003" ENDIF #endif C C C number of entries to be ordered. NREAL = N - NBFLAG C ---------------------------------------------------------------- C initialize degree lists and eliminate rows with no off-diag. nz. C ---------------------------------------------------------------- DO 20 I = 1, N C Skip elements IF (ELEN(I).LT.0) CYCLE DEG = DEGREE (I) IF (DEG.EQ.N2) THEN C V1 variables C DEG = N2 (flagged variables are stored C in the degree list of NBBUCK + 1 C (safe: because max C max value of degree is NBBUCK) C DEG = NBBUCK + 1 IF (LASTD.EQ.0) THEN C degree list is empty LASTD = I HEAD(DEG) = I NEXT(I) = 0 LAST(I) = 0 ELSE NEXT(LASTD) = I LAST(I) = LASTD LASTD = I NEXT(I) = 0 ENDIF C ELSE IF (DEG .GT. 0) THEN CN-------------- CNstrat0 CNC DEG = int( anint ( CNC & (dble(DEG)*dble(DEG-1)) / dble(2) ) ) CNC DEG = max (DEG,1) CNstat2 WF(I) = DEG C version 1 FIXME (see Patch 04/01/04) C compute an estimation of fill C DEG = ( DEG * (DEG-1) - l*(l-1))/2 C avec l largest element adjacent to I C DEG = max (DEG, 0) IF (DEG.GT.NORIG) THEN DEG = min(((DEG-NORIG)/PAS) + NORIG , NBBUCK) ENDIF C Note that if deg=0 then C No fill-in will occur, C but one variable is adjacent to I C ---------------------------------------------------------- C place i in the degree list corresponding to its degree C ---------------------------------------------------------- INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT HEAD (DEG) = I ELSE C ---------------------------------------------------------- C we have a variable that can be eliminated at once because C there is no off-diagonal non-zero in its row. C ---------------------------------------------------------- NEL = NEL + NV(I) ELEN (I) = -NEL PE (I) = 0_8 W (I) = 0 ENDIF C======================================================================= C 20 CONTINUE C======================================================================= C WHILE (selecting pivots) DO C======================================================================= C if elements provided (NBELTS>0) they are eliminated NLEFT = TOTEL-NEL C======================================================================= C ===================================================================== 30 IF (NEL .LT. TOTEL) THEN C ===================================================================== C GET PIVOT OF MINIMUM DEGREE C======================================================================= C ------------------------------------------------------------- C find next supervariable for elimination C ------------------------------------------------------------- DO 40 DEG = MINDEG, NBBUCK ME = HEAD (DEG) IF (ME .GT. 0) GO TO 50 40 CONTINUE 50 MINDEG = DEG IF (ME.LE.0) THEN CNOCOVBEG write (*,*) ' INTERNAL ERROR in MUMPS_HAMF4 ' write(6,*) ' NEL, DEG=', NEL,DEG NCMPA = -NORIG CNOCOVEND ENDIF IF (DEG.GT.N) THEN C ------------------------------- C Linear search to find variable C with best score in the list C ------------------------------- C While end of list list not reached C NEXT(J) = 0 J = NEXT(ME) K = WF(ME) 55 CONTINUE IF (J.GT.0) THEN IF (WF(J).LT.K) THEN ME = J K = WF(ME) ENDIF J= NEXT(J) GOTO 55 ENDIF ILAST = LAST(ME) INEXT = NEXT(ME) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C me is at the head of the degree list HEAD (DEG) = INEXT ENDIF C ELSE C ------------------------------------------------------------- C remove chosen variable from link list C ------------------------------------------------------------- INEXT = NEXT (ME) IF (INEXT .NE. 0) LAST (INEXT) = 0 HEAD (DEG) = INEXT ENDIF C ------------------------------------------------------------- C me represents the elimination of pivots nel+1 to nel+nv(me). C place me itself as the first in this set. It will be moved C to the nel+nv(me) position when the permutation vectors are C computed. C ------------------------------------------------------------- ELENME = ELEN (ME) ELEN (ME) = - (NEL + 1) NVPIV = NV (ME) NEL = NEL + NVPIV C======================================================================= C CONSTRUCT NEW ELEMENT C======================================================================= C ------------------------------------------------------------- C At this point, me is the pivotal supervariable. It will be C converted into the current element. Scan list of the C pivotal supervariable, me, setting tree pointers and C constructing new list of supervariables for the new element, C me. p is a pointer to the current position in the old list. C ------------------------------------------------------------- C flag the variable "me" as being in Lme by negating nv (me) NV (ME) = -NVPIV DEGME = 0 IF (ELENME .EQ. 0) THEN C ---------------------------------------------------------- C construct the new element in place C ---------------------------------------------------------- PME1 = PE (ME) PME2 = PME1 - 1 DO 60 P = PME1, PME1 + LEN (ME) - 1 I = IW (P) NVI = NV (I) IF (NVI .GT. 0) THEN C ---------------------------------------------------- C i is a principal variable not yet placed in Lme. C store i in new list C ---------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI PME2 = PME2 + 1 IW (PME2) = I IF (DEGREE(I).NE.N2) THEN C ---------------------------------------------------- C remove variable i from degree list. (only if i \in V0) C ---------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C i is at the head of the degree list CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.NORIG) THEN DEG = min(((WF(I)-NORIG)/PAS) + NORIG, NBBUCK) ELSE DEG = WF(I) ENDIF HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 60 CONTINUE C this element takes no new memory in iw: NEWMEM = 0 ELSE C ---------------------------------------------------------- C construct the new element in empty space, iw (pfree ...) C ---------------------------------------------------------- P = PE (ME) PME1 = PFREE SLENME = LEN (ME) - ELENME KNT1_UPDATED = 0 DO 120 KNT1 = 1, ELENME + 1 KNT1_UPDATED = KNT1_UPDATED +1 IF (KNT1 .GT. ELENME) THEN C search the supervariables in me. E = ME PJ = P LN = SLENME ELSE C search the elements in me. E = IW (P) P = P + 1 PJ = PE (E) LN = LEN (E) ENDIF C ------------------------------------------------------- C search for different supervariables and add them to the C new list, compressing when necessary. this loop is C executed once for each element in the list and once for C all the supervariables in the list. C ------------------------------------------------------- KNT2_UPDATED = 0 DO 110 KNT2 = 1, LN KNT2_UPDATED = KNT2_UPDATED+1 I = IW (PJ) PJ = PJ + 1 NVI = NV (I) IF (NVI .GT. 0) THEN C ------------------------------------------------- C compress iw, if necessary C ------------------------------------------------- IF (PFREE .GT. IWLEN) THEN C prepare for compressing iw by adjusting C pointers and lengths so that the lists being C searched in the inner and outer loops contain C only the remaining entries. PE (ME) = P LEN (ME) = LEN (ME) - KNT1_UPDATED C Reset KNT1_UPDATED in case of recompress C at same iteration of the loop 120 KNT1_UPDATED = 0 C Check if anything left in supervariable ME IF (LEN (ME) .EQ. 0) PE (ME) = 0_8 PE (E) = PJ LEN (E) = LN - KNT2_UPDATED C Reset KNT2_UPDATED in case of recompress C at same iteration of the loop 110 KNT2_UPDATED = 0 C Check if anything left in element E IF (LEN (E) .EQ. 0) PE (E) = 0_8 NCMPA = NCMPA + 1 C store first item in pe C set first entry to -item DO 70 J = 1, N PN = PE (J) IF (PN .GT. 0) THEN PE (J) = int(IW (PN),8) IW (PN) = -J ENDIF 70 CONTINUE C psrc/pdst point to source/destination PDST = 1 PSRC = 1 PEND = PME1 - 1 C while loop: 80 CONTINUE IF (PSRC .LE. PEND) THEN C search for next negative entry J = -IW (PSRC) PSRC = PSRC + 1 IF (J .GT. 0) THEN IW (PDST) = int(PE (J)) PE (J) = PDST PDST = PDST + 1_8 C copy from source to destination LENJ = LEN (J) DO 90 KNT3 = 0, LENJ - 2 IW (PDST + KNT3) = IW (PSRC + KNT3) 90 CONTINUE PDST = PDST + LENJ - 1 PSRC = PSRC + LENJ - 1 ENDIF GO TO 80 ENDIF C move the new partially-constructed element P1 = PDST DO 100 PSRC = PME1, PFREE - 1 IW (PDST) = IW (PSRC) PDST = PDST + 1 100 CONTINUE PME1 = P1 PFREE = PDST PJ = PE (E) P = PE (ME) ENDIF C ------------------------------------------------- C i is a principal variable not yet placed in Lme C store i in new list C ------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI IW (PFREE) = I PFREE = PFREE + 1 IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------- C remove variable i from degree link list C (only if i in V0) C ------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.NORIG) THEN DEG = min(((WF(I)-NORIG)/PAS) + NORIG, NBBUCK) ELSE DEG = WF(I) ENDIF C i is at the head of the degree list HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 110 CONTINUE IF (E .NE. ME) THEN C set tree pointer and flag to indicate element e is C absorbed into new element me (the parent of e is me) PE (E) = int(-ME,8) W (E) = 0 ENDIF 120 CONTINUE PME2 = PFREE - 1 C this element takes newmem new memory in iw (possibly zero) NEWMEM = PFREE - PME1 MEM = MEM + NEWMEM MAXMEM = max (MAXMEM, MEM) ENDIF C ------------------------------------------------------------- C me has now been converted into an element in iw (pme1..pme2) C ------------------------------------------------------------- C degme holds the external degree of new element DEGREE (ME) = DEGME PE (ME) = PME1 LEN (ME) = int(PME2 - PME1 + 1_8) C ------------------------------------------------------------- C make sure that wflg is not too large. With the current C value of wflg, wflg+n must not cause integer overflow C ------------------------------------------------------------- IF (WFLG .GT. MAXINT_N) THEN DO 130 X = 1, N IF (W (X) .NE. 0) W (X) = 1 130 CONTINUE WFLG = 2 ENDIF C======================================================================= C COMPUTE (w (e) - wflg) = |Le\Lme| FOR ALL ELEMENTS C======================================================================= C ------------------------------------------------------------- C Scan 1: compute the external degrees of previous elements C with respect to the current element. That is: C (w (e) - wflg) = |Le \ Lme| C for each element e that appears in any supervariable in Lme. C The notation Le refers to the pattern (list of C supervariables) of a previous element e, where e is not yet C absorbed, stored in iw (pe (e) + 1 ... pe (e) + iw (pe (e))). C The notation Lme refers to the pattern of the current element C (stored in iw (pme1..pme2)). If (w (e) - wflg) becomes C zero, then the element e will be absorbed in scan 2. C ------------------------------------------------------------- DO 150 PME = PME1, PME2 I = IW (PME) ELN = ELEN (I) IF (ELN .GT. 0) THEN C note that nv (i) has been negated to denote i in Lme: NVI = -NV (I) WNVI = WFLG - NVI DO 140 P = PE (I), PE (I) + int(ELN - 1,8) E = IW (P) WE = W (E) IF (WE .GE. WFLG) THEN C unabsorbed element e has been seen in this loop WE = WE - NVI ELSE IF (WE .NE. 0) THEN C e is an unabsorbed element C this is the first we have seen e in all of Scan 1 WE = DEGREE (E) + WNVI WF(E) = 0 ENDIF W (E) = WE 140 CONTINUE ENDIF 150 CONTINUE C======================================================================= C DEGREE UPDATE AND ELEMENT ABSORPTION C======================================================================= C ------------------------------------------------------------- C Scan 2: for each i in Lme, sum up the degree of Lme (which C is degme), plus the sum of the external degrees of each Le C for the elements e appearing within i, plus the C supervariables in i. Place i in hash list. C ------------------------------------------------------------- DO 180 PME = PME1, PME2 I = IW (PME) P1 = PE (I) P2 = P1 + ELEN (I) - 1 PN = P1 HASH = 0_8 DEG = 0 WF3 = 0 WF4 = 0 NVI = -NV(I) C ---------------------------------------------------------- C scan the element list associated with supervariable i C ---------------------------------------------------------- DO 160 P = P1, P2 E = IW (P) C dext = | Le \ Lme | DEXT = W (E) - WFLG IF (DEXT .GT. 0) THEN IF ( WF(E) .EQ. 0 ) THEN C First time we meet e : compute wf(e) C which holds the surface associated to element e C it will later be deducted from fill-in C area of all variables adjacent to e WF(E) = DEXT * ( (2 * DEGREE(E)) - DEXT - 1) ENDIF WF4 = WF4 + WF(E) DEG = DEG + DEXT IW (PN) = E PN = PN + 1 HASH = HASH + int(E, kind=8) ELSE IF (DEXT .EQ. 0) THEN C aggressive absorption: e is not adjacent to me, but C the |Le \ Lme| is 0, so absorb it into me PE (E) = int(-ME,8) W (E) = 0 ENDIF 160 CONTINUE C count the number of elements in i (including me): ELEN (I) = int(PN - P1 + 1_8) C ---------------------------------------------------------- C scan the supervariables in the list associated with i C ---------------------------------------------------------- P3 = PN DO 170 P = P2 + 1_8, P1 + int(LEN (I) - 1,8) J = IW (P) NVJ = NV (J) IF (NVJ .GT. 0) THEN C j is unabsorbed, and not in Lme. C add to degree and add to new list DEG = DEG + NVJ WF3 = WF3 + NVJ IW (PN) = J PN = PN + 1 HASH = HASH + int(J,kind=8) ENDIF 170 CONTINUE C IF (DEGREE(I).EQ.N2) DEG = N2 C ---------------------------------------------------------- C update the degree and check for mass elimination C ---------------------------------------------------------- IF (DEG .EQ. 0) THEN C ------------------------------------------------------- C mass elimination C ------------------------------------------------------- C There is nothing left of this node except for an C edge to the current pivot element. elen (i) is 1, C and there are no variables adjacent to node i. C Absorb i into the current pivot element, me. PE (I) = int(-ME,8) NVI = -NV (I) DEGME = DEGME - NVI NVPIV = NVPIV + NVI NEL = NEL + NVI NV (I) = 0 ELEN (I) = 0 ELSE C ------------------------------------------------------- C update the upper-bound degree of i C ------------------------------------------------------- C the following degree does not yet include the size C of the current element, which is added later: IF (DEGREE(I).NE.N2) THEN C I does not belong to halo CNCCC DEG = min (DEG, NLEFT) IF ( DEGREE (I).LT.DEG ) THEN C Our appox degree is loose. C we keep old value. Note that in C this case we cannot substract WF(I) C for min-fill score. WF4 = 0 WF3 = 0 ELSE DEGREE(I) = DEG ENDIF ENDIF C C compute WF(I) taking into account size of block 3.0 WF(I) = WF4 + 2*NVI*WF3 C ------------------------------------------------------- C add me to the list for i C ------------------------------------------------------- C move first supervariable to end of list IW (PN) = IW (P3) C move first element to end of element part of list IW (P3) = IW (P1) C add new element to front of list. IW (P1) = ME C store the new length of the list in len (i) LEN (I) = int(PN - P1 + 1) IF (DEG.NE.N2) THEN C ------------------------------------------------------- C place in hash bucket. Save hash key of i in last (i). C ------------------------------------------------------- HASH = mod (HASH, HMOD) + 1_8 J = HEAD (HASH) IF (J .LE. 0) THEN C the degree list is empty, hash head is -j NEXT (I) = -J HEAD (HASH) = -I ELSE C degree list is not empty C use last (head (hash)) as hash head NEXT (I) = LAST (J) LAST (J) = I ENDIF LAST (I) = int(HASH,kind=kind(LAST)) ENDIF ENDIF 180 CONTINUE DEGREE (ME) = DEGME C ------------------------------------------------------------- C Clear the counter array, w (...), by incrementing wflg. C ------------------------------------------------------------- DMAX = max (DMAX, DEGME) WFLG = WFLG + DMAX C make sure that wflg+n does not cause integer overflow IF (WFLG .GT. MAXINT_N) THEN DO 190 X = 1, N IF (W (X) .NE. 0) W (X) = 1 190 CONTINUE WFLG = 2 ENDIF C at this point, w (1..n) .lt. wflg holds C======================================================================= C SUPERVARIABLE DETECTION C======================================================================= DO 250 PME = PME1, PME2 I = IW (PME) IF ( (NV (I) .LT. 0) .AND. (DEGREE(I).NE.N2) ) THEN C i is a principal variable in Lme C ------------------------------------------------------- C examine all hash buckets with 2 or more variables. We C do this by examing all unique hash keys for super- C variables in the pattern Lme of the current element, me C ------------------------------------------------------- HASH = int(LAST (I),kind=8) C let i = head of hash bucket, and empty the hash bucket J = HEAD (HASH) IF (J .EQ. 0) GO TO 250 IF (J .LT. 0) THEN C degree list is empty I = -J HEAD (HASH) = 0 ELSE C degree list is not empty, restore last () of head I = LAST (J) LAST (J) = 0 ENDIF IF (I .EQ. 0) GO TO 250 C while loop: 200 CONTINUE IF (NEXT (I) .NE. 0) THEN C ---------------------------------------------------- C this bucket has one or more variables following i. C scan all of them to see if i can absorb any entries C that follow i in hash bucket. Scatter i into w. C ---------------------------------------------------- LN = LEN (I) ELN = ELEN (I) C do not flag the first element in the list (me) DO 210 P = PE (I) + 1_8, PE (I) + int(LN - 1,8) W (IW (P)) = WFLG 210 CONTINUE C ---------------------------------------------------- C scan every other entry j following i in bucket C ---------------------------------------------------- JLAST = I J = NEXT (I) C while loop: 220 CONTINUE IF (J .NE. 0) THEN C ------------------------------------------------- C check if j and i have identical nonzero pattern C ------------------------------------------------- C jump if i and j do not have same size data structure IF (LEN (J) .NE. LN) GO TO 240 C jump if i and j do not have same number adj elts IF (ELEN (J) .NE. ELN) GO TO 240 C do not flag the first element in the list (me) DO 230 P = PE (J) + 1_8, PE (J) + int(LN - 1,8) C jump if an entry (iw(p)) is in j but not in i IF (W (IW (P)) .NE. WFLG) GO TO 240 230 CONTINUE C ------------------------------------------------- C found it! j can be absorbed into i C ------------------------------------------------- PE (J) = int(-I,8) WF(I) = max(WF(I),WF(J)) C both nv (i) and nv (j) are negated since they C are in Lme, and the absolute values of each C are the number of variables in i and j: NV (I) = NV (I) + NV (J) NV (J) = 0 ELEN (J) = 0 C delete j from hash bucket J = NEXT (J) NEXT (JLAST) = J GO TO 220 C ------------------------------------------------- 240 CONTINUE C j cannot be absorbed into i C ------------------------------------------------- JLAST = J J = NEXT (J) GO TO 220 ENDIF C ---------------------------------------------------- C no more variables can be absorbed into i C go to next i in bucket and clear flag array C ---------------------------------------------------- WFLG = WFLG + 1 I = NEXT (I) IF (I .NE. 0) GO TO 200 ENDIF ENDIF 250 CONTINUE C======================================================================= C RESTORE DEGREE LISTS AND REMOVE NONPRINCIPAL SUPERVAR. FROM ELEMENT C======================================================================= P = PME1 NLEFT = TOTEL - NEL DO 260 PME = PME1, PME2 I = IW (PME) NVI = -NV (I) IF (NVI .GT. 0) THEN C i is a principal variable in Lme C restore nv (i) to signify that i is principal NV (I) = NVI IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------------- C compute the external degree (add size of current elem) C ------------------------------------------------------- CNamdonly DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) C-------------------------- C-------------------------- DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) IF (DEGREE (I) + DEGME .GT. NLEFT ) THEN C DEG = DEGREE(I) RMF1 = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) DEGREE(I) = NLEFT - NVI DEG = DEGREE(I) RMF = dble(DEG)*dble(DEG-1) & - dble(DEGME-NVI)*dble(DEGME-NVI-1) RMF = min(RMF, RMF1) ELSE DEG = DEGREE(I) DEGREE(I) = DEGREE (I) + DEGME - NVI C All previous cliques taken into account (AMF4) RMF = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) ENDIF C RMF = RMF / dble(NVI+1) C IF (RMF.LT.dummy) THEN WF(I) = int ( anint( RMF )) ELSEIF (RMF / dble(N) .LT. dummy) THEN WF(I) = int ( anint( RMF/dble(N) )) ELSE WF(I) = idummy ENDIF WF(I) = max(1,WF(I)) CN CN CN CN CN CN DEG = WF(I) IF (DEG.GT.NORIG) THEN DEG = min(((DEG-NORIG)/PAS) + NORIG, NBBUCK) ENDIF INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT LAST (I) = 0 HEAD (DEG) = I C ------------------------------------------------------- C save the new degree, and find the minimum degree C ------------------------------------------------------- MINDEG = min (MINDEG, DEG) C begin HALO ENDIF C end HALO C ------------------------------------------------------- C place the supervariable in the element pattern C ------------------------------------------------------- IW (P) = I P = P + 1 ENDIF 260 CONTINUE C======================================================================= C FINALIZE THE NEW ELEMENT C======================================================================= NV (ME) = NVPIV + DEGME C fill_est = fill_est + nvpiv * (nvpiv + 2 * degme) C nv (me) is now the degree of pivot (including diagonal part) C save the length of the list for the new element me LEN (ME) = int(P - PME1) IF (LEN (ME) .EQ. 0) THEN C there is nothing left of the current pivot element PE (ME) = 0_8 W (ME) = 0 ENDIF IF (NEWMEM .NE. 0) THEN C element was not constructed in place: deallocate part C of it (final size is less than or equal to newmem, C since newly nonprincipal variables have been removed). PFREE = P MEM = MEM - NEWMEM + int(LEN (ME),8) ENDIF C======================================================================= C END WHILE (selecting pivots) GO TO 30 ENDIF C======================================================================= C begin HALO V2 C IF (NEL.LT.N+NBELTS) THEN IF (NBFLAG.GT.0) THEN C C All possible pivots (not flagged have been eliminated). C We amalgamate all flagged variables at the root and C we finish the elimination tree. C 1/ Go through all C non absorbed elements (root of the subgraph) C and absorb in ME C 2/ perform mass elimination of all dense rows DO DEG = MINDEG, NBBUCK+1 ME = HEAD (DEG) IF (ME .GT. 0) GO TO 51 ENDDO 51 MINDEG = DEG NELME = -(NEL+1) DO X=1,N IF ((PE(X).GT.0) .AND. (ELEN(X).LT.0)) THEN C X is an unabsorbed element PE(X) = int(-ME,8) C W(X) = 0 could be suppressed ?? check it ELSEIF (DEGREE(X).EQ.N2) THEN C X is a dense row, absorb it in ME (mass elimination) NEL = NEL + NV(X) PE(X) = int(-ME,8) ELEN(X) = 0 C Correct value of NV is (secondary variable) NV(X) = 0 ENDIF ENDDO C ME is the root node ELEN(ME) = NELME C Correct value of NV is (principal variable) NV(ME) = N-NREAL ! =NBFLAG PE(ME) = 0_8 CN #if defined(SCOTCH_DEBUG_ORDER2) C IF (NEL.NE.N) THEN IF (NEL.NE.NORIG) THEN NCMPA = -NORIG - 1 WRITE(6,*) " Warning 30Oct2019" ENDIF #endif ENDIF C end HALO C C======================================================================= C COMPUTE THE PERMUTATION VECTORS C======================================================================= C ---------------------------------------------------------------- C The time taken by the following code is O(n). At this C point, elen (e) = -k has been done for all elements e, C and elen (i) = 0 has been done for all nonprincipal C variables i. At this point, there are no principal C supervariables left, and all elements are absorbed. C ---------------------------------------------------------------- C ---------------------------------------------------------------- C compute the ordering of unordered nonprincipal variables C ---------------------------------------------------------------- DO 290 I = 1, N IF (ELEN (I) .EQ. 0) THEN C ---------------------------------------------------------- C i is an un-ordered row. Traverse the tree from i until C reaching an element, e. The element, e, was the C principal supervariable of i and all nodes in the path C from i to when e was selected as pivot. C ---------------------------------------------------------- J = int(-PE (I)) C while (j is a variable) do: 270 CONTINUE IF (ELEN (J) .GE. 0) THEN J = int(-PE (J)) GO TO 270 ENDIF E = J C ---------------------------------------------------------- C get the current pivot ordering of e C ---------------------------------------------------------- K = -ELEN (E) C ---------------------------------------------------------- C traverse the path again from i to e, and compress the C path (all nodes point to e). Path compression allows C this code to compute in O(n) time. Order the unordered C nodes in the path, and place the element e at the end. C ---------------------------------------------------------- J = I C while (j is a variable) do: 280 CONTINUE IF (ELEN (J) .GE. 0) THEN JNEXT = int(-PE (J)) PE (J) = int(-E,8) IF (ELEN (J) .EQ. 0) THEN C j is an unordered row ELEN (J) = K K = K + 1 ENDIF J = JNEXT GO TO 280 ENDIF C leave elen (e) negative, so we know it is an element ELEN (E) = -K ENDIF 290 CONTINUE C ---------------------------------------------------------------- C reset the inverse permutation (elen (1..n)) to be positive, C and compute the pivot order (last (1..n)). C ---------------------------------------------------------------- C======================================================================= C RETURN THE MEMORY USAGE IN IW C======================================================================= C If maxmem is less than or equal to iwlen, then no compressions C occurred, and iw (maxmem+1 ... iwlen) was unused. Otherwise C compressions did occur, and iwlen would have had to have been C greater than or equal to maxmem for no compressions to occur. C Return the value of maxmem in the pfree argument. 500 PFREE = MAXMEM RETURN END SUBROUTINE MUMPS_HAMF4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/hamf_20200209_fp.F000066400000000000000000002030631514310134000302530ustar00rootroot00000000000000C Version generated on October 29th 2019 C C This file includes various modifications of an original C LGPL/ CeCILL-C compatible C code implementing the AMD (Approximate Minimum Degree) ordering C Patrick Amestoy, Timothy A. Davis, and Iain S. Duff, C "An approximate minimum degree ordering algorithm," C SIAM J. Matrix Analysis vol 17, pages=886--905 (1996) C MUMPS_ANA_H is based on the original AMD code: C C AMD, Copyright (c), 1996-2016, Timothy A. Davis, C Patrick R. Amestoy, and Iain S. Duff. All Rights Reserved. C Used in MUMPS under the BSD 3-clause license. C THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND C CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, C BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND C FITNESS FOR A PARTICULAR PURPOSE C ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR C ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL C DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS C OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) C HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, C STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING C IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE C POSSIBILITY OF SUCH DAMAGE. C C MUMPS_HAMF4 is a major modification of AMD C since the metric used to select pivots in not anymore the C degree but an approximation of the fill-in. C In this approximation C all cliques of elements adjacent to the variable are deducted. C MUMPS_HAMF4 also enables to take into account a halo in the graph. C The graph is composed is partitioned in two types of nodes C the so called internal nodes and the so called halo nodes. C Halo nodes cannot be selected the both the initial degrees C and updated degrees of internal node should be taken C into account. C Written by Patrick Amestoy between 1999 and 2019. C and used by F. Pellegrini in SCOTCH since 2000. C C Unique version to order both graph of variables and C graphs with both elements and variables. C C Notations used: C Let us refer to as C Gv a graph with only variables C Ge a graph with both variables and elements C C Let V be the set of nodes in the graph C V = Ve + V0 + V1 C V0 = Set of variable nodes (not in halo) C V1 = Set of variable nodes (in halo) C Ve = Set of element nodes |Ve|=nbelts C C All 3 sets are disjoint, Ve and V1 can be empty C If nbelts>0 then a bipartite graph bewteen C (V0 U V1) and Ve is provided on entry. C A graph of elements and variables is a bipartite C graph between the set of variables (that may C include halo variables) and the set of elements. C Thus variables are only adjacent to elements and C in the element list we only have variables. C Elements are "considered" as already eliminated and C are provided here only to describe the adjacency between C variables. Only variables in V0 need to be eliminated. C C Comments relative to 64/32 bits integer representation: C Restrictive integer 64 bit variant : C it is assumed that IW array size can exceed 32-bit integer C and thus iwlen is INTEGER(8) and pe in an INTEGER(8) array C Graphe size n must be smaller than 2x10^9 but number of C edges is a 64-bit integer. C C SUBROUTINE MUMPS_HAMF4(NORIG, N, NBELTS, NBBUCK, & IWLEN, PE, PFREE, LEN, IW, NV, ELEN, & LAST, NCMPA, DEGREE, WF, NEXT, W, HEAD & ) IMPLICIT NONE C C Parameters C Input not modified INTEGER, INTENT(IN) :: NORIG, N, NBELTS, NBBUCK INTEGER(8), INTENT(IN) :: IWLEN C Input undefined on output INTEGER, INTENT(INOUT) :: LEN(N), IW(IWLEN) C NV also meaningful as input to encode compressed graphs INTEGER, INTENT(INOUT) :: NV(N) C C Output only INTEGER, INTENT(OUT) :: NCMPA INTEGER, INTENT(OUT) :: ELEN(N), LAST(N) C C Input/output INTEGER(8), INTENT(INOUT) :: PFREE INTEGER(8), INTENT(INOUT) :: PE(N) C C Internal Workspace only C Min fill approximation one extra array of size NBBUCK+2 C is also needed INTEGER :: NEXT(N), DEGREE(N), W(N) INTEGER :: HEAD(0:NBBUCK+1), WF(N) C C Comments on the OUTPUT: C ---------------------- C Let V= V0 U V1 the nodes of the initial graph (|V|=n). C The assembly tree corresponds to the tree C of the supernodes (or supervariables). Each node of the C assembly tree is then composed of one principal variable C and a list of secondary variables. The list of C variable of a node (principal + secondary variables) then C describes the structure of the diagonal bloc of the C supernode. C The elimination tree denotes the tree of all the variables(=node) and C is therefore of order n. C C The arrays NV(N) and PE(N) give a description of the C assembly tree. C C 1/ Description of array nv(N) (on OUTPUT) C nv(i)=0 i is a secondary variable C nv(i) >0 i is a principal variable, nv(i) holds the C the number of elements in column i of L (true degree of i) C with compressed graph (nv(1).ne.-1 on input), C nv(i) can be greater than N since degree can be as large as NORIG. C C 2/ Description of array PE(N) (on OUTPUT) C Note that on C pe(i) = -(father of variable/node i) in the elimination tree: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C 3/ Example: C Let If be a root node father of Is in the assembly tree. C If is the principal C variable of the node If and let If1, If2, If3 be the secondary variables C of node If. C Is is the principal C variable of the node Is and let Is1, Is2 be the secondary variables C of node Is. C C THEN: C NV(If1)=NV(If2)=NV(If3) = 0 (secondary variables) C NV(Is1)=NV(Is2) = 0 (secondary variables) C NV(If) > 0 ( principal variable) C NV(Is) > 0 ( principal variable) C PE(If) = 0 (root node) C PE(Is) = -If (If is the father of Is in the assembly tree) C PE(If1)=PE(If2)=PE(If3)= -If ( If is the principal variable) C PE(Is1)=PE(Is2)= -Is ( Is is the principal variable) C C C C HALOAMD_V1: (September 1997) C ********** C Initial version designed to experiment the numerical (fill-in) impact C of taking into account the halo. This code should be able C to experiment no-halo, partial halo, complete halo. C DATE: September 17th 1997 C C HALOAMD is designed to process a gragh composed of two types C of nodes, V0 and V1, extracted from a larger gragh. C V0^V1 = {}, C C We used Min. degree heuristic to order only C nodes in V0, but the adjacency to nodes C in V1 is taken into account during ordering. C Nodes in V1 are odered at last. C Adjacency between nodes of V1 need not be provided, C however |len(i)| must always corresponds to the number of C edges effectively provided in the adjacency list of i. C On input : c ******** C Nodes INODE in V1 are flagged with len(INODE) = -degree C if len(i) =0 and i \in V1 then C len(i) must be set on input to -NORIG-1 C ERROR return (negative values in ncmpa) C ************ C negative value in ncmpa indicates an error detected C by HALOAMD. C C The graph provided MUST follow the rule: C if (i,j) is an edge in the gragh then C j must be in the adjacency list of i AND C i must be in the adjacency list of j. C REMARKS C ------- C C 1/ Providing edges between nodes of V1 should not C affect the final ordering, only the amount of edges C of the halo should effectively affect the solution. C This code should work in the following cases: C 1/ halo not provided C 2/ halo partially provided C 3/ complete halo C 4/ complete halo+interconnection between nodes of V1. C C 1/ should run and provide identical results (w.r.t to current C implementation of AMD in SCOTCH). C 3/ and 4 should provide identical results. C C 2/ All modifications of the AMD initial code are indicated C with begin HALO .. end HALO C C C Given a representation of the nonzero pattern of a symmetric matrix, C A, (excluding the diagonal) perform an approximate minimum C fill-in heuristic. Aggresive absorption is C used to tighten the bound on the degree. This can result an C significant improvement in the quality of the ordering for C some matrices. C----------------------------------------------------------------------- C INPUT ARGUMENTS (unaltered): C----------------------------------------------------------------------- C n: number of nodes in the complete graph including halo C n = size of V0 U V1 U Ve C Restriction: n .ge. 1 C C norig if compressed graph (nv(1).ne.-1) then C norig is the sum(nv(i)) for i \in [1:n] C and could ne larger than n C else norig = n C C nbbuck should be greater than norig C advised value is 2*norig C C nbelts number of elements (size of Ve) C =0 if Gv (graph of variables) C >0 if Ge C nbelts > 0 extends/changes the meaning of C len/elen on entry (see below) C C C iwlen: The length of iw (1..iwlen). On input, the matrix is C stored in iw (1..pfree-1). However, iw (1..iwlen) should be C slightly larger than what is required to hold the matrix, at C least iwlen .ge. pfree + n is recommended. Otherwise, C excessive compressions will take place. C *** We do not recommend running this algorithm with *** C *** iwlen .lt. pfree + n. *** C *** Better performance will be obtained if *** C *** iwlen .ge. pfree + n *** C *** or better yet *** C *** iwlen .gt. 1.2 * pfree *** C *** (where pfree is its value on input). *** C The algorithm will not run at all if iwlen .lt. pfree-1. C C Restriction: iwlen .ge. pfree-1 C----------------------------------------------------------------------- C INPUT/OUPUT ARGUMENTS: C----------------------------------------------------------------------- C pe: On input, pe (i) is the index in iw of the start of row i, or C zero if row i has no off-diagonal non-zeros. C C During execution, it is used for both supervariables and C elements: C C * Principal supervariable i: index into iw of the C description of supervariable i. A supervariable C represents one or more rows of the matrix C with identical nonzero pattern. C * Non-principal supervariable i: if i has been absorbed C into another supervariable j, then pe (i) = -j. C That is, j has the same pattern as i. C Note that j might later be absorbed into another C supervariable j2, in which case pe (i) is still -j, C and pe (j) = -j2. C * Unabsorbed element e: the index into iw of the description C of element e, if e has not yet been absorbed by a C subsequent element. Element e is created when C the supervariable of the same name is selected as C the pivot. C * Absorbed element e: if element e is absorbed into element C e2, then pe (e) = -e2. This occurs when the pattern of C e (that is, Le) is found to be a subset of the pattern C of e2 (that is, Le2). If element e is "null" (it has C no nonzeros outside its pivot block), then pe (e) = 0. C C On output, pe holds the assembly tree/forest, which implicitly C represents a pivot order with identical fill-in as the actual C order (via a depth-first search of the tree). C C On output: C If nv (i) .gt. 0, then i represents a node in the assembly tree, C and the parent of i is -pe (i), or zero if i is a root. C If nv (i) = 0, then (i,-pe (i)) represents an edge in a C subtree, the root of which is a node in the assembly tree. C C pfree: On input, the matrix is stored in iw (1..pfree-1) and C the rest of the array iw is free. C During execution, additional data is placed in iw, and pfree C is modified so that components of iw from pfree are free. C On output, pfree is set equal to the size of iw that C would have been needed for no compressions to occur. If C ncmpa is zero, then pfree (on output) is less than or equal to C iwlen, and the space iw (pfree+1 ... iwlen) was not used. C Otherwise, pfree (on output) is greater than iwlen, and all the C memory in iw was used. C C nv: On input, encoding of compressed graph: C if nv(1) = -1 then graph is not compressed otherwise C nv(I) holds the weight of node i. C During execution, abs (nv (i)) is equal to the number of rows C that are represented by the principal supervariable i. If i is C a nonprincipal variable, then nv (i) = 0. Initially, C nv (i) = 1 for all i. nv (i) .lt. 0 signifies that i is a C principal variable in the pattern Lme of the current pivot C element me. On output, nv (e) holds the true degree of element C e at the time it was created (including the diagonal part). C begin HALO C On output, nv(I) can be used to find node in set V1. C Not true anymore : ( nv(I) = N+1 characterizes nodes in V1. C instead nodes in V1 are considered as a dense root node ) C end HALO C----------------------------------------------------------------------- C INPUT/MODIFIED (undefined on output): C----------------------------------------------------------------------- C len: On input, len (i) C positive or null (>=0) : i \in V0 U Ve and C if (nbelts==0) then (graph of variables) C len(i) holds the number of entries in row i of the C matrix, excluding the diagonal. C else (graph of elements+variables) C if i\in V0 then len(i) = nb of elements adjacent to i C if i\in Ve then len(i) = nb of variables adjacent to i C endif C negative (<0) : i \in V1, and C if (nbelts==0) then (graph of variables) C -len(i) hold the number of entries in row i of the C matrix, excluding the diagonal. C len(i) = - | Adj(i) | if i \in V1 C or -N -1 if | Adj(i) | = 0 and i \in V1 C else (graph of elements+variables) C -len(i) nb of elements adjacent to i C endif C The content of len (1..n) is undefined on output. C C elen: defined on input only if nbelts>0 C if e \in Ve then elen (e) = -N-1 C if v \in V0 then elen (v) = External degree of v C that should thus be provided C on entry to initialize degree C C if v \in V1 then elen (v) = 0 C C iw: On input, iw (1..pfree-1) holds the description of each row i C in the matrix. The matrix must be symmetric, and both upper C and lower triangular parts must be present. The diagonal must C not be present. Row i is held as follows: C C len (i): the length of the row i data structure C iw (pe (i) ... pe (i) + len (i) - 1): C the list of column indices for nonzeros C in row i (simple supervariables), excluding C the diagonal. All supervariables start with C one row/column each (supervariable i is just C row i). C if len (i) is zero on input, then pe (i) is ignored C on input. C C Note that the rows need not be in any particular order, C and there may be empty space between the rows. C C During execution, the supervariable i experiences fill-in. C This is represented by placing in i a list of the elements C that cause fill-in in supervariable i: C C len (i): the length of supervariable i C iw (pe (i) ... pe (i) + elen (i) - 1): C the list of elements that contain i. This list C is kept short by removing absorbed elements. C iw (pe (i) + elen (i) ... pe (i) + len (i) - 1): C the list of supervariables in i. This list C is kept short by removing nonprincipal C variables, and any entry j that is also C contained in at least one of the elements C (j in Le) in the list for i (e in row i). C C When supervariable i is selected as pivot, we create an C element e of the same name (e=i): C C len (e): the length of element e C iw (pe (e) ... pe (e) + len (e) - 1): C the list of supervariables in element e. C C An element represents the fill-in that occurs when supervariable C i is selected as pivot (which represents the selection of row i C and all non-principal variables whose principal variable is i). C We use the term Le to denote the set of all supervariables C in element e. Absorbed supervariables and elements are pruned C from these lists when computationally convenient. C C CAUTION: THE INPUT MATRIX IS OVERWRITTEN DURING COMPUTATION. C The contents of iw are undefined on output. C C----------------------------------------------------------------------- C OUTPUT (need not be set on input): C----------------------------------------------------------------------- C elen: See the description of iw above. At the start of execution, C elen (i) is set to zero. During execution, elen (i) is the C number of elements in the list for supervariable i. When e C becomes an element, elen (e) = -nel is set, where nel is the C current step of factorization. elen (i) = 0 is done when i C becomes nonprincipal. C C For variables, elen (i) .ge. 0 holds C For elements, elen (e) .lt. 0 holds. C C last: In a degree list, last (i) is the supervariable preceding i, C or zero if i is the head of the list. In a hash bucket, C last (i) is the hash key for i. last (head (hash)) is also C used as the head of a hash bucket if head (hash) contains a C degree list (see head, below). C C ncmpa: The number of times iw was compressed. If this is C excessive, then the execution took longer than what could have C been. To reduce ncmpa, try increasing iwlen to be 10% or 20% C larger than the value of pfree on input (or at least C iwlen .ge. pfree + n). The fastest performance will be C obtained when ncmpa is returned as zero. If iwlen is set to C the value returned by pfree on *output*, then no compressions C will occur. C begin HALO C on output ncmpa <0 --> error detected during HALO_AMD: C error 1: ncmpa = -NORIG , ordering was stopped. C end HALO C C----------------------------------------------------------------------- C LOCAL (not input or output - used only during execution): C----------------------------------------------------------------------- C degree: If i is a supervariable, then degree (i) holds the C current approximation of the external degree of row i (an upper C bound). The external degree is the number of nonzeros in row i, C minus abs (nv (i)) (the diagonal part). The bound is equal to C the external degree if elen (i) is less than or equal to two. C We also use the term "external degree" for elements e to refer C to |Le \ Lme|. If e is an element, then degree (e) holds |Le|, C which is the degree of the off-diagonal part of the element e C (not including the diagonal part). C begin HALO C degree(I) = n+1 indicates that i belongs to V1 C end HALO C C head: head is used for degree lists. head (deg) is the first C supervariable in a degree list (all supervariables i in a C degree list deg have the same approximate degree, namely, C deg = degree (i)). If the list deg is empty then C head (deg) = 0. C C During supervariable detection head (hash) also serves as a C pointer to a hash bucket. C If head (hash) .gt. 0, there is a degree list of degree hash. C The hash bucket head pointer is last (head (hash)). C If head (hash) = 0, then the degree list and hash bucket are C both empty. C If head (hash) .lt. 0, then the degree list is empty, and C -head (hash) is the head of the hash bucket. C After supervariable detection is complete, all hash buckets C are empty, and the (last (head (hash)) = 0) condition is C restored for the non-empty degree lists. C next: next (i) is the supervariable following i in a link list, or C zero if i is the last in the list. Used for two kinds of C lists: degree lists and hash buckets (a supervariable can be C in only one kind of list at a time). C w: The flag array w determines the status of elements and C variables, and the external degree of elements. C C for elements: C if w (e) = 0, then the element e is absorbed C if w (e) .ge. wflg, then w (e) - wflg is the size of C the set |Le \ Lme|, in terms of nonzeros (the C sum of abs (nv (i)) for each principal variable i that C is both in the pattern of element e and NOT in the C pattern of the current pivot element, me). C if wflg .gt. w (e) .gt. 0, then e is not absorbed and has C not yet been seen in the scan of the element lists in C the computation of |Le\Lme| in loop 150 below. C C for variables: C during supervariable detection, if w (j) .ne. wflg then j is C not in the pattern of variable i C C The w array is initialized by setting w (i) = 1 for all i, C and by setting wflg = 2. It is reinitialized if wflg becomes C too large (to ensure that wflg+n does not cause integer C overflow). C C wf : integer array used to store the already filled area of C the variables adajcent to current pivot. C wf is then used to update the score of variable i. C C----------------------------------------------------------------------- C LOCAL INTEGERS: C----------------------------------------------------------------------- INTEGER :: DEG, DEGME, DEXT, DMAX, E, ELENME, ELN, I, & ILAST, INEXT, J, JLAST, JNEXT, K, KNT1, KNT2, KNT3, & LENJ, LN, ME, MINDEG, NEL, & NLEFT, NVI, NVJ, NVPIV, SLENME, WE, WFLG, WNVI, X, & NBFLAG, NREAL, LASTD, NELME, WF3, WF4, N2, PAS INTEGER KNT1_UPDATED, KNT2_UPDATED INTEGER(8) :: MAXMEM, MEM, NEWMEM INTEGER :: MAXINT_N INTEGER(8) :: HASH, HMOD DOUBLE PRECISION RMF, RMF1 DOUBLE PRECISION dummy INTEGER idummy LOGICAL COMPRESS C deg: the degree of a variable or element C degme: size, |Lme|, of the current element, me (= degree (me)) C dext: external degree, |Le \ Lme|, of some element e C dmax: largest |Le| seen so far C e: an element C elenme: the length, elen (me), of element list of pivotal var. C eln: the length, elen (...), of an element list C hash: the computed value of the hash function C hmod: the hash function is computed modulo hmod = max (1,n-1) C i: a supervariable C ilast: the entry in a link list preceding i C inext: the entry in a link list following i C j: a supervariable C jlast: the entry in a link list preceding j C jnext: the entry in a link list, or path, following j C k: the pivot order of an element or variable C knt1: loop counter used during element construction C knt2: loop counter used during element construction C knt3: loop counter used during compression C lenj: len (j) C ln: length of a supervariable list C maxint_n: large integer to test risk of overflow on wflg C maxmem: amount of memory needed for no compressions C me: current supervariable being eliminated, and the C current element created by eliminating that C supervariable C mem: memory in use assuming no compressions have occurred C mindeg: current minimum degree C nel: number of pivots selected so far C newmem: amount of new memory needed for current pivot element C nleft: n - nel, the number of nonpivotal rows/columns remaining C nvi: the number of variables in a supervariable i (= nv (i)) C nvj: the number of variables in a supervariable j (= nv (j)) C nvpiv: number of pivots in current element C slenme: number of variables in variable list of pivotal variable C we: w (e) C wflg: used for flagging the w array. See description of iw. C wnvi: wflg - nv (i) C x: either a supervariable or an element C wf3: off diagoanl block area C wf4: diagonal block area C mf : Minimum fill C begin HALO C nbflag: number of flagged entries in the initial gragh. C nreal : number of entries on which ordering must be perfomed C (nreel = N- nbflag) C nelme number of pivots selected when reaching the root C lastd index of the last row in the list of dense rows C end HALO C----------------------------------------------------------------------- C LOCAL POINTERS: C----------------------------------------------------------------------- INTEGER(8) :: P, P1, P2, P3, PDST, PEND, PJ, PME, PME1, PME2, & PN, PSRC C Any parameter (pe (...) or pfree) or local variable C starting with "p" (for Pointer) is an index into iw, C and all indices into iw use variables starting with C "p." The only exception to this rule is the iwlen C input argument. C p: pointer into lots of things C p1: pe (i) for some variable i (start of element list) C p2: pe (i) + elen (i) - 1 for some var. i (end of el. list) C p3: index of first supervariable in clean list C pdst: destination pointer, for compression C pend: end of memory to compress C pj: pointer into an element or variable C pme: pointer into the current element (pme1...pme2) C pme1: the current element, me, is stored in iw (pme1...pme2) C pme2: the end of the current element C pn: pointer into a "clean" variable, also used to compress C psrc: source pointer, for compression C----------------------------------------------------------------------- C FUNCTIONS CALLED: C----------------------------------------------------------------------- INTRINSIC max, min, mod, huge INTEGER TOTEL C======================================================================= C INITIALIZATIONS C======================================================================= C HEAD (0:NBBUCK+1) C C idummy holds the largest integer - 1 C dummy = dble (idummy) idummy = huge(idummy) - 1 dummy = dble(idummy) C variable with degree equal to N2 are in halo C bucket NBBUCK+1 used for HALO variables N2 = -NBBUCK-1 C Distance betweeen elements of the N, ..., NBBUCK entries of HEAD C PAS = max((NORIG/8), 1) WFLG = 2 MAXINT_N=huge(WFLG)-NORIG NCMPA = 0 NEL = 0 HMOD = int(max (1, NBBUCK-1),kind=8) DMAX = 0 MEM = PFREE - 1 MAXMEM = MEM MINDEG = 0 C NBFLAG = 0 LASTD = 0 HEAD(0:NBBUCK+1) = 0 DO 10 I = 1, N LAST(I) = 0 W(I) = 1 10 CONTINUE IF(NV(1) .LT. 0) THEN C uncompress graph C NV should be set to 1 DO I=1, N NV(I) = 1 ENDDO COMPRESS = .FALSE. ELSE COMPRESS = .TRUE. ENDIF TOTEL = 0 IF (NBELTS.EQ.0) THEN C ========================= C Graph with only variables C ========================= DO I=1,N ELEN(I) = 0 ENDDO DO I=1,N IF (LEN(I).LT.0) THEN DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-NORIG-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELSE LEN (I) = - LEN(I) ENDIF C end HALO V3 ELSE TOTEL = TOTEL + NV(I) IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF ENDIF ENDDO ELSE C =============================================== C Bipartite graph between variables and elements C =============================================== DO I=1,N IF (LEN(I).LT.0) THEN C i \in V1 DEGREE (I) = N2 NBFLAG = NBFLAG +1 IF (LEN(I).EQ.-NORIG-1) THEN C variable in V1 with empty adj list LEN (I) = 0 C Because of compress, we force skipping this C entry which is anyway empty PE (I) = 0_8 ELEN(I) = 0 ELSE LEN (I) = - LEN(I) C only elements adjacent to a variable ELEN (I) = LEN(I) ENDIF ELSE IF (ELEN(I).LT.0) THEN C i \in Ve NEL = NEL + NV(I) ELEN(I) = -NEL IF (.NOT.COMPRESS) THEN DEGREE(I) = LEN(I) ELSE DEGREE(I) = 0 DO P= PE(I) , PE(I)+int(LEN(I)-1,8) DEGREE(I) = DEGREE(I) + NV(IW(P)) ENDDO ENDIF DMAX = MAX(DMAX, DEGREE(I)) ELSE C i \in V0 TOTEL = TOTEL + NV(I) DEGREE(I) = ELEN(I) ELEN(I) = LEN(I) ENDIF ENDIF ENDDO ENDIF #if defined(SCOTCH_DEBUG_ORDER2) IF (NBELTS.NE.NEL) THEN WRITE(6,*) " Error 8Dec2003" ENDIF #endif C C C number of entries to be ordered. NREAL = N - NBFLAG C ---------------------------------------------------------------- C initialize degree lists and eliminate rows with no off-diag. nz. C ---------------------------------------------------------------- DO 20 I = 1, N C Skip elements IF (ELEN(I).LT.0) CYCLE DEG = DEGREE (I) IF (DEG.EQ.N2) THEN C V1 variables C DEG = N2 (flagged variables are stored C in the degree list of NBBUCK + 1 C (safe: because max C max value of degree is NBBUCK) C DEG = NBBUCK + 1 IF (LASTD.EQ.0) THEN C degree list is empty LASTD = I HEAD(DEG) = I NEXT(I) = 0 LAST(I) = 0 ELSE NEXT(LASTD) = I LAST(I) = LASTD LASTD = I NEXT(I) = 0 ENDIF C ELSE IF (DEG .GT. 0) THEN CN-------------- CNstrat0 CNC DEG = int( anint ( CNC & (dble(DEG)*dble(DEG-1)) / dble(2) ) ) CNC DEG = max (DEG,1) CNstat2 WF(I) = DEG C version 1 FIXME (see Patch 04/01/04) C compute an estimation of fill C DEG = ( DEG * (DEG-1) - l*(l-1))/2 C avec l largest element adjacent to I C DEG = max (DEG, 0) IF (DEG.GT.NORIG) THEN DEG = min(((DEG-NORIG)/PAS) + NORIG , NBBUCK) ENDIF C Note that if deg=0 then C No fill-in will occur, C but one variable is adjacent to I C ---------------------------------------------------------- C place i in the degree list corresponding to its degree C ---------------------------------------------------------- INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT HEAD (DEG) = I ELSE C ---------------------------------------------------------- C we have a variable that can be eliminated at once because C there is no off-diagonal non-zero in its row. C ---------------------------------------------------------- NEL = NEL + NV(I) ELEN (I) = -NEL PE (I) = 0_8 W (I) = 0 ENDIF C======================================================================= C 20 CONTINUE C======================================================================= C WHILE (selecting pivots) DO C======================================================================= C if elements provided (NBELTS>0) they are eliminated NLEFT = TOTEL-NEL C======================================================================= C ===================================================================== 30 IF (NEL .LT. TOTEL) THEN C ===================================================================== C GET PIVOT OF MINIMUM DEGREE C======================================================================= C ------------------------------------------------------------- C find next supervariable for elimination C ------------------------------------------------------------- DO 40 DEG = MINDEG, NBBUCK ME = HEAD (DEG) IF (ME .GT. 0) GO TO 50 40 CONTINUE 50 MINDEG = DEG IF (ME.LE.0) THEN CNOCOVBEG write (*,*) ' INTERNAL ERROR in MUMPS_HAMF4 ' write(6,*) ' NEL, DEG=', NEL,DEG NCMPA = -NORIG CNOCOVEND ENDIF C ##FP Below a remaining N was turned into a NORIG IF (DEG.GT.NORIG) THEN C ------------------------------- C Linear search to find variable C with best score in the list C ------------------------------- C While end of list list not reached C NEXT(J) = 0 J = NEXT(ME) K = WF(ME) 55 CONTINUE IF (J.GT.0) THEN IF (WF(J).LT.K) THEN ME = J K = WF(ME) ENDIF J= NEXT(J) GOTO 55 ENDIF ILAST = LAST(ME) INEXT = NEXT(ME) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C me is at the head of the degree list HEAD (DEG) = INEXT ENDIF C ELSE C ------------------------------------------------------------- C remove chosen variable from link list C ------------------------------------------------------------- INEXT = NEXT (ME) IF (INEXT .NE. 0) LAST (INEXT) = 0 HEAD (DEG) = INEXT ENDIF C ------------------------------------------------------------- C me represents the elimination of pivots nel+1 to nel+nv(me). C place me itself as the first in this set. It will be moved C to the nel+nv(me) position when the permutation vectors are C computed. C ------------------------------------------------------------- ELENME = ELEN (ME) ELEN (ME) = - (NEL + 1) NVPIV = NV (ME) NEL = NEL + NVPIV C======================================================================= C CONSTRUCT NEW ELEMENT C======================================================================= C ------------------------------------------------------------- C At this point, me is the pivotal supervariable. It will be C converted into the current element. Scan list of the C pivotal supervariable, me, setting tree pointers and C constructing new list of supervariables for the new element, C me. p is a pointer to the current position in the old list. C ------------------------------------------------------------- C flag the variable "me" as being in Lme by negating nv (me) NV (ME) = -NVPIV DEGME = 0 IF (ELENME .EQ. 0) THEN C ---------------------------------------------------------- C construct the new element in place C ---------------------------------------------------------- PME1 = PE (ME) PME2 = PME1 - 1 DO 60 P = PME1, PME1 + LEN (ME) - 1 I = IW (P) NVI = NV (I) IF (NVI .GT. 0) THEN C ---------------------------------------------------- C i is a principal variable not yet placed in Lme. C store i in new list C ---------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI PME2 = PME2 + 1 IW (PME2) = I IF (DEGREE(I).NE.N2) THEN C ---------------------------------------------------- C remove variable i from degree list. (only if i \in V0) C ---------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE C i is at the head of the degree list CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.NORIG) THEN DEG = min(((WF(I)-NORIG)/PAS) + NORIG, NBBUCK) ELSE DEG = WF(I) ENDIF HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 60 CONTINUE C this element takes no new memory in iw: NEWMEM = 0 ELSE C ---------------------------------------------------------- C construct the new element in empty space, iw (pfree ...) C ---------------------------------------------------------- P = PE (ME) PME1 = PFREE SLENME = LEN (ME) - ELENME KNT1_UPDATED = 0 DO 120 KNT1 = 1, ELENME + 1 KNT1_UPDATED = KNT1_UPDATED +1 IF (KNT1 .GT. ELENME) THEN C search the supervariables in me. E = ME PJ = P LN = SLENME ELSE C search the elements in me. E = IW (P) P = P + 1 PJ = PE (E) LN = LEN (E) ENDIF C ------------------------------------------------------- C search for different supervariables and add them to the C new list, compressing when necessary. this loop is C executed once for each element in the list and once for C all the supervariables in the list. C ------------------------------------------------------- KNT2_UPDATED = 0 DO 110 KNT2 = 1, LN KNT2_UPDATED = KNT2_UPDATED+1 I = IW (PJ) PJ = PJ + 1 NVI = NV (I) IF (NVI .GT. 0) THEN C ------------------------------------------------- C compress iw, if necessary C ------------------------------------------------- IF (PFREE .GT. IWLEN) THEN C prepare for compressing iw by adjusting C pointers and lengths so that the lists being C searched in the inner and outer loops contain C only the remaining entries. PE (ME) = P LEN (ME) = LEN (ME) - KNT1_UPDATED C Reset KNT1_UPDATED in case of recompress C at same iteration of the loop 120 KNT1_UPDATED = 0 C Check if anything left in supervariable ME IF (LEN (ME) .EQ. 0) PE (ME) = 0_8 PE (E) = PJ LEN (E) = LN - KNT2_UPDATED C Reset KNT2_UPDATED in case of recompress C at same iteration of the loop 110 KNT2_UPDATED = 0 C Check if anything left in element E IF (LEN (E) .EQ. 0) PE (E) = 0_8 NCMPA = NCMPA + 1 C store first item in pe C set first entry to -item DO 70 J = 1, N PN = PE (J) IF (PN .GT. 0) THEN PE (J) = int(IW (PN),8) IW (PN) = -J ENDIF 70 CONTINUE C psrc/pdst point to source/destination PDST = 1 PSRC = 1 PEND = PME1 - 1 C while loop: 80 CONTINUE IF (PSRC .LE. PEND) THEN C search for next negative entry J = -IW (PSRC) PSRC = PSRC + 1 IF (J .GT. 0) THEN IW (PDST) = int(PE (J)) PE (J) = PDST PDST = PDST + 1_8 C copy from source to destination LENJ = LEN (J) DO 90 KNT3 = 0, LENJ - 2 IW (PDST + KNT3) = IW (PSRC + KNT3) 90 CONTINUE PDST = PDST + LENJ - 1 PSRC = PSRC + LENJ - 1 ENDIF GO TO 80 ENDIF C move the new partially-constructed element P1 = PDST DO 100 PSRC = PME1, PFREE - 1 IW (PDST) = IW (PSRC) PDST = PDST + 1 100 CONTINUE PME1 = P1 PFREE = PDST PJ = PE (E) P = PE (ME) ENDIF C ------------------------------------------------- C i is a principal variable not yet placed in Lme C store i in new list C ------------------------------------------------- DEGME = DEGME + NVI C flag i as being in Lme by negating nv (i) NV (I) = -NVI IW (PFREE) = I PFREE = PFREE + 1 IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------- C remove variable i from degree link list C (only if i in V0) C ------------------------------------------------- ILAST = LAST (I) INEXT = NEXT (I) IF (INEXT .NE. 0) LAST (INEXT) = ILAST IF (ILAST .NE. 0) THEN NEXT (ILAST) = INEXT ELSE CNversion0 DEG = min(WF(I),NBBUCK) CNversion1 IF (WF(I).GT.NORIG) THEN DEG = min(((WF(I)-NORIG)/PAS) + NORIG, NBBUCK) ELSE DEG = WF(I) ENDIF C i is at the head of the degree list HEAD (DEG) = INEXT ENDIF ENDIF ENDIF 110 CONTINUE IF (E .NE. ME) THEN C set tree pointer and flag to indicate element e is C absorbed into new element me (the parent of e is me) PE (E) = int(-ME,8) W (E) = 0 ENDIF 120 CONTINUE PME2 = PFREE - 1 C this element takes newmem new memory in iw (possibly zero) NEWMEM = PFREE - PME1 MEM = MEM + NEWMEM MAXMEM = max (MAXMEM, MEM) ENDIF C ------------------------------------------------------------- C me has now been converted into an element in iw (pme1..pme2) C ------------------------------------------------------------- C degme holds the external degree of new element DEGREE (ME) = DEGME PE (ME) = PME1 LEN (ME) = int(PME2 - PME1 + 1_8) C ------------------------------------------------------------- C make sure that wflg is not too large. With the current C value of wflg, wflg+n must not cause integer overflow C ------------------------------------------------------------- IF (WFLG .GT. MAXINT_N) THEN DO 130 X = 1, N IF (W (X) .NE. 0) W (X) = 1 130 CONTINUE WFLG = 2 ENDIF C======================================================================= C COMPUTE (w (e) - wflg) = |Le\Lme| FOR ALL ELEMENTS C======================================================================= C ------------------------------------------------------------- C Scan 1: compute the external degrees of previous elements C with respect to the current element. That is: C (w (e) - wflg) = |Le \ Lme| C for each element e that appears in any supervariable in Lme. C The notation Le refers to the pattern (list of C supervariables) of a previous element e, where e is not yet C absorbed, stored in iw (pe (e) + 1 ... pe (e) + iw (pe (e))). C The notation Lme refers to the pattern of the current element C (stored in iw (pme1..pme2)). If (w (e) - wflg) becomes C zero, then the element e will be absorbed in scan 2. C ------------------------------------------------------------- DO 150 PME = PME1, PME2 I = IW (PME) ELN = ELEN (I) IF (ELN .GT. 0) THEN C note that nv (i) has been negated to denote i in Lme: NVI = -NV (I) WNVI = WFLG - NVI DO 140 P = PE (I), PE (I) + int(ELN - 1,8) E = IW (P) WE = W (E) IF (WE .GE. WFLG) THEN C unabsorbed element e has been seen in this loop WE = WE - NVI ELSE IF (WE .NE. 0) THEN C e is an unabsorbed element C this is the first we have seen e in all of Scan 1 WE = DEGREE (E) + WNVI WF(E) = 0 ENDIF W (E) = WE 140 CONTINUE ENDIF 150 CONTINUE C======================================================================= C DEGREE UPDATE AND ELEMENT ABSORPTION C======================================================================= C ------------------------------------------------------------- C Scan 2: for each i in Lme, sum up the degree of Lme (which C is degme), plus the sum of the external degrees of each Le C for the elements e appearing within i, plus the C supervariables in i. Place i in hash list. C ------------------------------------------------------------- DO 180 PME = PME1, PME2 I = IW (PME) P1 = PE (I) P2 = P1 + ELEN (I) - 1 PN = P1 HASH = 0_8 DEG = 0 WF3 = 0 WF4 = 0 NVI = -NV(I) C ---------------------------------------------------------- C scan the element list associated with supervariable i C ---------------------------------------------------------- DO 160 P = P1, P2 E = IW (P) C dext = | Le \ Lme | DEXT = W (E) - WFLG IF (DEXT .GT. 0) THEN IF ( WF(E) .EQ. 0 ) THEN C First time we meet e : compute wf(e) C which holds the surface associated to element e C it will later be deducted from fill-in C area of all variables adjacent to e WF(E) = DEXT * ( (2 * DEGREE(E)) - DEXT - 1) ENDIF WF4 = WF4 + WF(E) DEG = DEG + DEXT IW (PN) = E PN = PN + 1 HASH = HASH + int(E, kind=8) ELSE IF (DEXT .EQ. 0) THEN C aggressive absorption: e is not adjacent to me, but C the |Le \ Lme| is 0, so absorb it into me PE (E) = int(-ME,8) W (E) = 0 ENDIF 160 CONTINUE C count the number of elements in i (including me): ELEN (I) = int(PN - P1 + 1_8) C ---------------------------------------------------------- C scan the supervariables in the list associated with i C ---------------------------------------------------------- P3 = PN DO 170 P = P2 + 1_8, P1 + int(LEN (I) - 1,8) J = IW (P) NVJ = NV (J) IF (NVJ .GT. 0) THEN C j is unabsorbed, and not in Lme. C add to degree and add to new list DEG = DEG + NVJ WF3 = WF3 + NVJ IW (PN) = J PN = PN + 1 HASH = HASH + int(J,kind=8) ENDIF 170 CONTINUE C IF (DEGREE(I).EQ.N2) DEG = N2 C ---------------------------------------------------------- C update the degree and check for mass elimination C ---------------------------------------------------------- IF (DEG .EQ. 0) THEN C ------------------------------------------------------- C mass elimination C ------------------------------------------------------- C There is nothing left of this node except for an C edge to the current pivot element. elen (i) is 1, C and there are no variables adjacent to node i. C Absorb i into the current pivot element, me. PE (I) = int(-ME,8) NVI = -NV (I) DEGME = DEGME - NVI NVPIV = NVPIV + NVI NEL = NEL + NVI NV (I) = 0 ELEN (I) = 0 ELSE C ------------------------------------------------------- C update the upper-bound degree of i C ------------------------------------------------------- C the following degree does not yet include the size C of the current element, which is added later: IF (DEGREE(I).NE.N2) THEN C I does not belong to halo CNCCC DEG = min (DEG, NLEFT) IF ( DEGREE (I).LT.DEG ) THEN C Our appox degree is loose. C we keep old value. Note that in C this case we cannot substract WF(I) C for min-fill score. WF4 = 0 WF3 = 0 ELSE DEGREE(I) = DEG ENDIF ENDIF C C compute WF(I) taking into account size of block 3.0 WF(I) = WF4 + 2*NVI*WF3 C ------------------------------------------------------- C add me to the list for i C ------------------------------------------------------- C move first supervariable to end of list IW (PN) = IW (P3) C move first element to end of element part of list IW (P3) = IW (P1) C add new element to front of list. IW (P1) = ME C store the new length of the list in len (i) LEN (I) = int(PN - P1 + 1) IF (DEG.NE.N2) THEN C ------------------------------------------------------- C place in hash bucket. Save hash key of i in last (i). C ------------------------------------------------------- HASH = mod (HASH, HMOD) + 1_8 J = HEAD (HASH) IF (J .LE. 0) THEN C the degree list is empty, hash head is -j NEXT (I) = -J HEAD (HASH) = -I ELSE C degree list is not empty C use last (head (hash)) as hash head NEXT (I) = LAST (J) LAST (J) = I ENDIF LAST (I) = int(HASH,kind=kind(LAST)) ENDIF ENDIF 180 CONTINUE DEGREE (ME) = DEGME C ------------------------------------------------------------- C Clear the counter array, w (...), by incrementing wflg. C ------------------------------------------------------------- DMAX = max (DMAX, DEGME) WFLG = WFLG + DMAX C make sure that wflg+n does not cause integer overflow IF (WFLG .GT. MAXINT_N) THEN DO 190 X = 1, N IF (W (X) .NE. 0) W (X) = 1 190 CONTINUE WFLG = 2 ENDIF C at this point, w (1..n) .lt. wflg holds C======================================================================= C SUPERVARIABLE DETECTION C======================================================================= DO 250 PME = PME1, PME2 I = IW (PME) IF ( (NV (I) .LT. 0) .AND. (DEGREE(I).NE.N2) ) THEN C i is a principal variable in Lme C ------------------------------------------------------- C examine all hash buckets with 2 or more variables. We C do this by examing all unique hash keys for super- C variables in the pattern Lme of the current element, me C ------------------------------------------------------- HASH = int(LAST (I),kind=8) C let i = head of hash bucket, and empty the hash bucket J = HEAD (HASH) IF (J .EQ. 0) GO TO 250 IF (J .LT. 0) THEN C degree list is empty I = -J HEAD (HASH) = 0 ELSE C degree list is not empty, restore last () of head I = LAST (J) LAST (J) = 0 ENDIF IF (I .EQ. 0) GO TO 250 C while loop: 200 CONTINUE IF (NEXT (I) .NE. 0) THEN C ---------------------------------------------------- C this bucket has one or more variables following i. C scan all of them to see if i can absorb any entries C that follow i in hash bucket. Scatter i into w. C ---------------------------------------------------- LN = LEN (I) ELN = ELEN (I) C do not flag the first element in the list (me) DO 210 P = PE (I) + 1_8, PE (I) + int(LN - 1,8) W (IW (P)) = WFLG 210 CONTINUE C ---------------------------------------------------- C scan every other entry j following i in bucket C ---------------------------------------------------- JLAST = I J = NEXT (I) C while loop: 220 CONTINUE IF (J .NE. 0) THEN C ------------------------------------------------- C check if j and i have identical nonzero pattern C ------------------------------------------------- C jump if i and j do not have same size data structure IF (LEN (J) .NE. LN) GO TO 240 C jump if i and j do not have same number adj elts IF (ELEN (J) .NE. ELN) GO TO 240 C do not flag the first element in the list (me) DO 230 P = PE (J) + 1_8, PE (J) + int(LN - 1,8) C jump if an entry (iw(p)) is in j but not in i IF (W (IW (P)) .NE. WFLG) GO TO 240 230 CONTINUE C ------------------------------------------------- C found it! j can be absorbed into i C ------------------------------------------------- PE (J) = int(-I,8) WF(I) = max(WF(I),WF(J)) C both nv (i) and nv (j) are negated since they C are in Lme, and the absolute values of each C are the number of variables in i and j: NV (I) = NV (I) + NV (J) NV (J) = 0 ELEN (J) = 0 C delete j from hash bucket J = NEXT (J) NEXT (JLAST) = J GO TO 220 C ------------------------------------------------- 240 CONTINUE C j cannot be absorbed into i C ------------------------------------------------- JLAST = J J = NEXT (J) GO TO 220 ENDIF C ---------------------------------------------------- C no more variables can be absorbed into i C go to next i in bucket and clear flag array C ---------------------------------------------------- WFLG = WFLG + 1 I = NEXT (I) IF (I .NE. 0) GO TO 200 ENDIF ENDIF 250 CONTINUE C======================================================================= C RESTORE DEGREE LISTS AND REMOVE NONPRINCIPAL SUPERVAR. FROM ELEMENT C======================================================================= P = PME1 NLEFT = TOTEL - NEL DO 260 PME = PME1, PME2 I = IW (PME) NVI = -NV (I) IF (NVI .GT. 0) THEN C i is a principal variable in Lme C restore nv (i) to signify that i is principal NV (I) = NVI IF (DEGREE(I).NE.N2) THEN C ------------------------------------------------------- C compute the external degree (add size of current elem) C ------------------------------------------------------- CNamdonly DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) C-------------------------- C-------------------------- C ##FP The next line seems useless ? DEG is overwritten just after, and equal to DEGREE(I) DEG = min (DEGREE (I) + DEGME - NVI, NLEFT - NVI) IF (DEGREE (I) + DEGME .GT. NLEFT ) THEN C DEG = DEGREE(I) RMF1 = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) DEGREE(I) = NLEFT - NVI DEG = DEGREE(I) RMF = dble(DEG)*dble(DEG-1) & - dble(DEGME-NVI)*dble(DEGME-NVI-1) RMF = min(RMF, RMF1) ELSE DEG = DEGREE(I) DEGREE(I) = DEGREE (I) + DEGME - NVI C All previous cliques taken into account (AMF4) RMF = dble(DEG)*dble( (DEG-1) + 2*DEGME ) & - dble(WF(I)) ENDIF C RMF = RMF / dble(NVI+1) C IF (RMF.LT.dummy) THEN WF(I) = int ( anint( RMF )) ELSEIF (RMF / dble(N) .LT. dummy) THEN WF(I) = int ( anint( RMF/dble(N) )) ELSE WF(I) = idummy ENDIF WF(I) = max(1,WF(I)) CN CN CN CN CN CN DEG = WF(I) IF (DEG.GT.NORIG) THEN DEG = min(((DEG-NORIG)/PAS) + NORIG, NBBUCK) ENDIF INEXT = HEAD (DEG) IF (INEXT .NE. 0) LAST (INEXT) = I NEXT (I) = INEXT LAST (I) = 0 HEAD (DEG) = I C ------------------------------------------------------- C save the new degree, and find the minimum degree C ------------------------------------------------------- MINDEG = min (MINDEG, DEG) C begin HALO ENDIF C end HALO C ------------------------------------------------------- C place the supervariable in the element pattern C ------------------------------------------------------- IW (P) = I P = P + 1 ENDIF 260 CONTINUE C======================================================================= C FINALIZE THE NEW ELEMENT C======================================================================= NV (ME) = NVPIV + DEGME C fill_est = fill_est + nvpiv * (nvpiv + 2 * degme) C nv (me) is now the degree of pivot (including diagonal part) C save the length of the list for the new element me LEN (ME) = int(P - PME1) IF (LEN (ME) .EQ. 0) THEN C there is nothing left of the current pivot element PE (ME) = 0_8 W (ME) = 0 ENDIF IF (NEWMEM .NE. 0) THEN C element was not constructed in place: deallocate part C of it (final size is less than or equal to newmem, C since newly nonprincipal variables have been removed). PFREE = P MEM = MEM - NEWMEM + int(LEN (ME),8) ENDIF C======================================================================= C END WHILE (selecting pivots) GO TO 30 ENDIF C======================================================================= C begin HALO V2 C IF (NEL.LT.N+NBELTS) THEN IF (NBFLAG.GT.0) THEN C C All possible pivots (not flagged have been eliminated). C We amalgamate all flagged variables at the root and C we finish the elimination tree. C 1/ Go through all C non absorbed elements (root of the subgraph) C and absorb in ME C 2/ perform mass elimination of all dense rows DO DEG = MINDEG, NBBUCK+1 ME = HEAD (DEG) IF (ME .GT. 0) GO TO 51 ENDDO 51 MINDEG = DEG NELME = -(NEL+1) DO X=1,N IF ((PE(X).GT.0) .AND. (ELEN(X).LT.0)) THEN C X is an unabsorbed element PE(X) = int(-ME,8) C W(X) = 0 could be suppressed ?? check it ELSEIF (DEGREE(X).EQ.N2) THEN C X is a dense row, absorb it in ME (mass elimination) NEL = NEL + NV(X) PE(X) = int(-ME,8) ELEN(X) = 0 C Correct value of NV is (secondary variable) NV(X) = 0 ENDIF ENDDO C ME is the root node ELEN(ME) = NELME C Correct value of NV is (principal variable) NV(ME) = N-NREAL ! =NBFLAG PE(ME) = 0_8 CN #if defined(SCOTCH_DEBUG_ORDER2) C IF (NEL.NE.N) THEN IF (NEL.NE.NORIG) THEN NCMPA = -NORIG - 1 WRITE(6,*) " Warning 30Oct2019" ENDIF #endif ENDIF C end HALO C C======================================================================= C COMPUTE THE PERMUTATION VECTORS C======================================================================= C ---------------------------------------------------------------- C The time taken by the following code is O(n). At this C point, elen (e) = -k has been done for all elements e, C and elen (i) = 0 has been done for all nonprincipal C variables i. At this point, there are no principal C supervariables left, and all elements are absorbed. C ---------------------------------------------------------------- C ---------------------------------------------------------------- C compute the ordering of unordered nonprincipal variables C ---------------------------------------------------------------- DO 290 I = 1, N IF (ELEN (I) .EQ. 0) THEN C ---------------------------------------------------------- C i is an un-ordered row. Traverse the tree from i until C reaching an element, e. The element, e, was the C principal supervariable of i and all nodes in the path C from i to when e was selected as pivot. C ---------------------------------------------------------- J = int(-PE (I)) C while (j is a variable) do: 270 CONTINUE IF (ELEN (J) .GE. 0) THEN J = int(-PE (J)) GO TO 270 ENDIF E = J C ---------------------------------------------------------- C get the current pivot ordering of e C ---------------------------------------------------------- K = -ELEN (E) C ---------------------------------------------------------- C traverse the path again from i to e, and compress the C path (all nodes point to e). Path compression allows C this code to compute in O(n) time. Order the unordered C nodes in the path, and place the element e at the end. C ---------------------------------------------------------- J = I C while (j is a variable) do: 280 CONTINUE IF (ELEN (J) .GE. 0) THEN JNEXT = int(-PE (J)) PE (J) = int(-E,8) IF (ELEN (J) .EQ. 0) THEN C j is an unordered row ELEN (J) = K K = K + 1 ENDIF J = JNEXT GO TO 280 ENDIF C leave elen (e) negative, so we know it is an element ELEN (E) = -K ENDIF 290 CONTINUE C ---------------------------------------------------------------- C reset the inverse permutation (elen (1..n)) to be positive, C and compute the pivot order (last (1..n)). C ---------------------------------------------------------------- C======================================================================= C RETURN THE MEMORY USAGE IN IW C======================================================================= C If maxmem is less than or equal to iwlen, then no compressions C occurred, and iw (maxmem+1 ... iwlen) was unused. Otherwise C compressions did occur, and iwlen would have had to have been C greater than or equal to maxmem for no compressions to occur. C Return the value of maxmem in the pfree argument. 500 PFREE = MAXMEM RETURN END SUBROUTINE MUMPS_HAMF4 scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/test_hamf.c000066400000000000000000000245441514310134000277110ustar00rootroot00000000000000/* Copyright 2019,2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_hamf.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the original Fortran **/ /** HAMF code provided by the MUMPS team. **/ /** **/ /** DATES : # Version 6.1 : from : 24 nov 2019 **/ /** to : 10 feb 2020 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "common.h" #include "module.h" #include "graph.h" #include "arch.h" #include "bgraph.h" #include "bgraph_bipart_gp.h" #include "hgraph.h" #include "scotch.h" /* ** The function prototypes. */ void mumps_hamf4_ (int *, int *, int *, int *, int64_t *, int64_t *, int64_t *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *); /*********************/ /* */ /* The test routine. */ /* */ /*********************/ int test_hamf_graph1 ( Hgraph * grafptr) { Gnum vertnum; Gnum vertadj; Gnum vertnew; int64_t edgenew; int norig; int n; int nbelts; int nbbuck; int ncmpa; int64_t iwlen; int64_t pfree; int * degtab; int * lentab; int * iwtab; int * nvtab; int * elentab; int * headtab; int * nexttab; int * lasttab; int * wtab; int * wftab; int64_t * petab; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; n = grafptr->s.vertnbr; norig = grafptr->s.velosum; nbelts = 0; nbbuck = norig * 2; iwlen = (int64_t) ((double) grafptr->s.edgenbr * 1.2) + 32; petab = malloc (n * sizeof (int64_t)); lentab = malloc (n * sizeof (int)); nvtab = malloc (n * sizeof (int)); elentab = malloc (n * sizeof (int)); lasttab = malloc (n * sizeof (int)); degtab = malloc (n * sizeof (int)); wftab = malloc (n * sizeof (int)); nexttab = malloc (n * sizeof (int)); wtab = malloc (n * sizeof (int)); headtab = malloc ((nbbuck + 2) * sizeof (int)); iwtab = malloc (iwlen * sizeof (int)); int64_t * restrict const petax = petab - 1; /* Base HAMF arrays at base 1 */ int * restrict const iwtax = iwtab - 1; int * restrict const lentax = lentab - 1; int * restrict const nvtax = nvtab - 1; int * restrict const elentax = elentab - 1; vertadj = 1 - grafptr->s.baseval; for (vertnum = grafptr->s.baseval, vertnew = edgenew = 1; /* Process non-halo vertices */ vertnum < grafptr->vnohnnd; vertnum ++, vertnew ++) { int degrval; int edgenum; degrval = vendtax[vertnum] - verttax[vertnum]; petax[vertnew] = edgenew; lentax[vertnew] = degrval; elentax[vertnew] = 0; nvtax[vertnew] = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++, edgenew ++) iwtax[edgenew] = edgetax[edgenum] + vertadj; } for ( ; vertnum < grafptr->s.vertnnd; vertnum ++, vertnew ++) { /* Process halo vertices */ int degrval; int edgenum; degrval = grafptr->s.verttax[vertnum] - grafptr->s.vendtax[vertnum]; /* Negative degree */ petax[vertnew] = edgenew; lentax[vertnew] = (degrval != 0) ? degrval : (-1 - grafptr->s.vertnbr); elentax[vertnew] = 0; nvtax[vertnew] = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++, edgenew ++) iwtax[edgenew] = edgetax[edgenum] + vertadj; } pfree = edgenew; /* Set index to first free area */ mumps_hamf4_ (&norig, &n, &nbelts, &nbbuck, &iwlen, petab, &pfree, lentab, iwtab, nvtab, elentab, lasttab, &ncmpa, degtab, wftab, nexttab, wtab, headtab); if (ncmpa < 0) { errorPrint ("mumps_hamf4: internal error"); return (1); } memFree (iwtab); memFree (headtab); memFree (wtab); memFree (nexttab); memFree (wftab); memFree (degtab); memFree (lasttab); memFree (elentab); memFree (nvtab); memFree (lentab); memFree (petab); return (0); } int test_hamf_graph2 ( SCOTCH_Graph * grafptr) { Arch archdat; ArchDom domntab[3]; Gnum vflowgttab[2] = { 0, 0 }; Bgraph bipgrafdat; BgraphBipartGpParam bipstradat = { 3 }; Gnum bipvertnum; Gnum * indvnumtab; Gnum indvnumnbr; Hgraph halgrafdat; Hgraph indgrafdat; int o; SCOTCH_archCmplt ((SCOTCH_Arch *) &archdat, 2); archDomFrst (&archdat, &domntab[0]); archDomBipart (&archdat, &domntab[0], &domntab[1], &domntab[2]); bgraphInit (&bipgrafdat, (Graph *) grafptr, &archdat, &domntab[1], vflowgttab); if (bgraphBipartGp (&bipgrafdat, &bipstradat) != 0) { errorPrint ("test_hamf_graph2: cannot compute bipartition"); bgraphExit (&bipgrafdat); return (1); } if ((indvnumtab = memAlloc (bipgrafdat.compsize0 * sizeof (Gnum))) == NULL) { errorPrint ("test_hamf_graph2: out of memory (3)"); return (1); } for (bipvertnum = bipgrafdat.s.baseval, indvnumnbr = 0; bipvertnum < bipgrafdat.s.vertnnd; bipvertnum ++) { if (bipgrafdat.parttax[bipvertnum] == 0) indvnumtab[indvnumnbr ++] = bipvertnum; } if (indvnumnbr != bipgrafdat.compsize0) { errorPrint ("test_hamf_graph2: internal error"); return (1); } halgrafdat.s = bipgrafdat.s; /* Create cloned halo graph from initial graph */ halgrafdat.s.flagval &= ~GRAPHFREETABS; halgrafdat.vnohnbr = halgrafdat.s.vertnbr; halgrafdat.vnohnnd = halgrafdat.s.vertnnd; halgrafdat.vnhdtax = halgrafdat.s.vendtax; halgrafdat.vnlosum = halgrafdat.s.velosum; halgrafdat.enohnbr = halgrafdat.s.edgenbr; halgrafdat.enlosum = halgrafdat.s.edlosum; halgrafdat.levlnum = 0; bgraphExit (&bipgrafdat); if (hgraphInduceList (&halgrafdat, indvnumnbr, indvnumtab, halgrafdat.s.vertnbr - indvnumnbr, &indgrafdat) != 0) { memFree (indvnumtab); return (1); } memFree (indvnumtab); o = test_hamf_graph1 (&indgrafdat); hgraphExit (&indgrafdat); return (o); } int test_hamf_graph3 ( SCOTCH_Graph * grafptr) { Hgraph halgrafdat; int o; halgrafdat.s = *((Graph *) grafptr); /* Create cloned halo graph from initial graph */ halgrafdat.s.flagval &= ~GRAPHFREETABS; halgrafdat.vnohnbr = halgrafdat.s.vertnbr; halgrafdat.vnohnnd = halgrafdat.s.vertnnd; halgrafdat.vnhdtax = halgrafdat.s.vendtax; halgrafdat.vnlosum = halgrafdat.s.velosum; halgrafdat.enohnbr = halgrafdat.s.edgenbr; halgrafdat.enlosum = halgrafdat.s.edlosum; halgrafdat.levlnum = 0; o = test_hamf_graph1 (&halgrafdat); hgraphExit (&halgrafdat); return (o); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { SCOTCH_Graph grafdat; FILE * fileptr; int flagval; flagval = 0; if ((argc < 2) || (argc > 3)) { SCOTCH_errorPrint ("usage: %s [-i] graph_file", argv[0]); exit (EXIT_FAILURE); } if (strcmp (argv[1], "-i") == 0) flagval = 1; if (SCOTCH_graphInit (&grafdat) != 0) { SCOTCH_errorPrint ("main: cannot initialize graph (1)"); exit (EXIT_FAILURE); } if ((fileptr = fopen (argv[1 + flagval], "r")) == NULL) { SCOTCH_errorPrint ("main: cannot open file"); exit (EXIT_FAILURE); } if (SCOTCH_graphLoad (&grafdat, fileptr, -1, 0) != 0) { /* Read source graph */ SCOTCH_errorPrint ("main: cannot load graph"); exit (EXIT_FAILURE); } fclose (fileptr); if (flagval != 0) test_hamf_graph2 (&grafdat); else test_hamf_graph3 (&grafdat); SCOTCH_graphExit (&grafdat); exit (EXIT_SUCCESS); } scotch-v7.0.11-626b88ce70edabb993bbee463f6c28ae2899af69/workshop/halo-ordering/test_hamf_graph.c000066400000000000000000000601321514310134000310630ustar00rootroot00000000000000/* Copyright 2019,2020 IPB, Universite de Bordeaux, INRIA & CNRS ** ** This file is part of the Scotch software package for static mapping, ** graph partitioning and sparse matrix ordering. ** ** This software is governed by the CeCILL-C license under French law ** and abiding by the rules of distribution of free software. You can ** use, modify and/or redistribute the software under the terms of the ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following ** URL: "http://www.cecill.info". ** ** As a counterpart to the access to the source code and rights to copy, ** modify and redistribute granted by the license, users are provided ** only with a limited warranty and the software's author, the holder of ** the economic rights, and the successive licensors have only limited ** liability. ** ** In this respect, the user's attention is drawn to the risks associated ** with loading, using, modifying and/or developing or reproducing the ** software by the user in light of its specific status of free software, ** that may mean that it is complicated to manipulate, and that also ** therefore means that it is reserved for developers and experienced ** professionals having in-depth computer knowledge. Users are therefore ** encouraged to load and test the software's suitability as regards ** their requirements in conditions enabling the security of their ** systems and/or data to be ensured and, more generally, to use and ** operate it in the same conditions as regards security. ** ** The fact that you are presently reading this means that you have had ** knowledge of the CeCILL-C license and that you accept its terms. */ /************************************************************/ /** **/ /** NAME : test_hamf_graph.c **/ /** **/ /** AUTHOR : Francois PELLEGRINI **/ /** **/ /** FUNCTION : This module tests the original Fortran **/ /** HAMF code provided by the MUMPS team. **/ /** **/ /** DATES : # Version 6.1 : from : 24 nov 2019 **/ /** to : 10 feb 2020 **/ /** **/ /************************************************************/ /* ** The defines and includes. */ #include "module.h" #include "common.h" #include "graph.h" #include "arch.h" #include "hgraph.h" #include "hgraph_order_hx.h" #include "hall_order_hf.h" #define HGRAPHORDERHFCOMPRAT 1.2L /*+ Compression ratio +*/ /* ** The copy-pasted code. */ Gnum mfverttab[] = { 1, 26, 52, 113, 150, 200, 227, 254, 282, 329, 352, 389, 468, 477, 486, 495, 512, 533, 550, 559, 576, 589, 602, 619, 640, 657, 670, 687, 700, 717, 734, 751, 768, 781, 802, 815, 832, 845, 862, 879, 892, 905, 922, 939, 964, 981, 998, 1011, 1032, 1045, 1062, 1075, 1088, 1101, 1114, 1127, 1140, 1157, 1170, 1191, 1208, 1221, 1243, 1261, 1283, 1301, 1327, 1353, 1371, 1389, 1415, 1437, 1455, 1473, 1499, 1521, 1543, 1565, 1583, 1609, 1635, 1657, 1675, 1701, 1719, 1741, 1759, 1777, 1795, 1829, 1851, 1877, 1895, 1917, 1935, 1953, 1971, 1993, 2011, 2041, 2059, 2085, 2107, 2117, 2129, 2150, 2169, 2189, 2197, 2205, 2221, 2230, 2246, 2264, 2270, 2274, 2283, 2290, 2307, 2311, 2320, 2329, 2338, 2347, 2351, 2377, 2387, 2407, 2411, 2420, 2432, 2453, 2465, 2470, 2479, 2483, 2501, 2512, 2522, 2528, 2533, 2537, 2541, 2545, 2554, 2559, 2564, 2570, 2576, 2581, 2587, 2593, 2600, 2609, 2617, 2618, 2619, 2620, 2621, 2623, 2625, 2628, 2630, 2633, 2635, 2638, 2641, 2643, 2646, 2649, 2651, 2652, 2653 }; Gnum mfvelotab[] = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }; Gnum mfedgetab[] = { 2, 3, 4, 5, 13, 14, 17, 22, 24, 25, 26, 29, 30, 33, 34, 50, 52, 65, 67, 73, 77, 106, 105, 104, 103, 1, 4, 5, 6, 12, 14, 15, 18, 23, 25, 26, 28, 30, 36, 50, 53, 65, 71, 79, 84, 89, 90, 94, 109, 108, 107, 1, 4, 5, 9, 10, 11, 12, 13, 16, 17, 19, 22, 24, 26, 29, 33, 34, 41, 42, 43, 48, 49, 50, 52, 57, 59, 60, 61, 62, 65, 67, 68, 70, 73, 75, 77, 79, 81, 82, 86, 87, 88, 89, 93, 95, 96, 99, 100, 102, 106, 105, 104, 117, 116, 115, 114, 113, 112, 111, 103, 110, 1, 2, 3, 5, 11, 12, 14, 17, 18, 23, 24, 25, 26, 30, 48, 50, 60, 61, 65, 70, 74, 77, 78, 79, 82, 84, 86, 89, 90, 92, 93, 121, 120, 119, 118, 107, 110, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 17, 24, 25, 26, 30, 31, 32, 34, 36, 37, 39, 44, 50, 52, 53, 54, 58, 63, 65, 71, 72, 73, 76, 77, 79, 80, 81, 84, 86, 87, 89, 96, 97, 99, 126, 106, 125, 124, 123, 122, 2, 5, 7, 12, 15, 23, 27, 28, 30, 36, 37, 38, 53, 54, 71, 76, 84, 89, 90, 94, 101, 129, 109, 128, 127, 108, 107, 5, 6, 8, 12, 27, 32, 35, 37, 38, 39, 40, 51, 53, 54, 63, 64, 71, 76, 83, 89, 91, 98, 101, 132, 131, 130, 127, 5, 7, 12, 31, 32, 35, 39, 40, 54, 58, 63, 64, 72, 76, 80, 83, 89, 97, 98, 126, 132, 125, 131, 135, 134, 130, 133, 122, 3, 5, 10, 11, 12, 34, 41, 42, 44, 45, 46, 47, 55, 56, 57, 62, 66, 67, 68, 70, 73, 75, 77, 80, 81, 86, 87, 88, 89, 93, 96, 97, 99, 100, 102, 106, 105, 125, 104, 141, 140, 139, 123, 138, 113, 137, 136, 3, 9, 11, 41, 42, 43, 45, 47, 49, 57, 59, 68, 70, 75, 88, 99, 100, 116, 138, 142, 113, 137, 112, 3, 4, 9, 10, 12, 17, 19, 41, 42, 43, 46, 48, 49, 56, 57, 59, 60, 61, 66, 70, 74, 78, 79, 81, 82, 86, 88, 92, 93, 99, 112, 121, 144, 143, 118, 136, 110, 2, 3, 4, 5, 6, 7, 8, 9, 11, 17, 18, 20, 23, 25, 27, 30, 32, 36, 37, 38, 39, 42, 44, 46, 53, 54, 55, 56, 63, 64, 65, 66, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 154, 125, 153, 131, 152, 134, 151, 150, 149, 148, 129, 147, 146, 145, 120, 144, 118, 127, 136, 107, 1, 3, 22, 24, 29, 33, 67, 105, 103, 1, 2, 4, 5, 25, 26, 30, 50, 65, 2, 6, 23, 28, 36, 94, 109, 108, 107, 3, 22, 29, 59, 62, 67, 75, 95, 105, 117, 116, 115, 114, 113, 112, 111, 103, 1, 3, 4, 5, 11, 12, 24, 26, 48, 50, 60, 61, 65, 70, 77, 79, 82, 86, 89, 93, 110, 2, 4, 12, 23, 25, 60, 74, 78, 79, 84, 90, 121, 120, 119, 118, 107, 110, 3, 11, 48, 49, 59, 61, 70, 112, 110, 12, 55, 66, 69, 80, 85, 154, 125, 158, 153, 152, 157, 156, 150, 147, 155, 136, 51, 91, 165, 132, 164, 131, 163, 162, 161, 160, 130, 159, 127, 1, 3, 13, 16, 24, 29, 33, 67, 95, 105, 114, 111, 103, 2, 4, 6, 12, 15, 18, 25, 28, 36, 71, 79, 84, 90, 94, 109, 108, 107, 1, 3, 4, 5, 13, 17, 22, 26, 29, 33, 34, 50, 52, 65, 67, 73, 77, 106, 105, 104, 103, 1, 2, 4, 5, 12, 14, 18, 23, 26, 30, 50, 65, 79, 84, 89, 90, 107, 1, 2, 3, 4, 5, 14, 17, 24, 25, 30, 50, 65, 77, 6, 7, 12, 28, 37, 38, 71, 76, 90, 94, 101, 129, 109, 128, 127, 108, 107, 2, 6, 15, 23, 27, 36, 94, 129, 109, 128, 127, 108, 107, 1, 3, 13, 16, 22, 24, 33, 67, 95, 105, 169, 168, 114, 167, 166, 111, 103, 1, 2, 4, 5, 6, 12, 14, 25, 26, 36, 50, 53, 65, 71, 79, 84, 89, 5, 8, 32, 40, 58, 64, 72, 97, 126, 132, 125, 131, 135, 134, 130, 133, 122, 5, 7, 8, 12, 31, 39, 54, 58, 63, 72, 76, 80, 89, 97, 126, 125, 122, 1, 3, 13, 22, 24, 29, 52, 67, 73, 106, 105, 104, 103, 1, 3, 5, 9, 24, 44, 50, 52, 58, 73, 77, 87, 96, 97, 99, 126, 106, 125, 124, 123, 122, 7, 8, 38, 39, 40, 51, 64, 91, 98, 132, 131, 130, 127, 2, 5, 6, 12, 15, 23, 28, 30, 53, 71, 84, 89, 90, 94, 109, 108, 107, 5, 6, 7, 12, 27, 38, 53, 54, 71, 76, 89, 101, 127, 6, 7, 12, 27, 35, 37, 51, 71, 76, 83, 91, 98, 101, 132, 131, 130, 127, 5, 7, 8, 12, 32, 35, 40, 54, 63, 64, 76, 83, 89, 98, 132, 131, 130, 7, 8, 31, 35, 39, 64, 98, 126, 132, 131, 135, 130, 133, 3, 9, 10, 11, 42, 43, 49, 57, 59, 70, 88, 99, 112, 3, 9, 10, 11, 12, 41, 46, 56, 57, 66, 70, 81, 86, 88, 93, 99, 136, 3, 10, 11, 41, 47, 49, 59, 68, 70, 75, 88, 116, 138, 142, 113, 137, 112, 5, 9, 12, 34, 45, 55, 56, 66, 80, 81, 87, 89, 96, 97, 102, 106, 105, 125, 104, 141, 140, 139, 123, 137, 136, 9, 10, 44, 47, 57, 62, 68, 100, 102, 105, 125, 141, 140, 139, 138, 113, 137, 9, 11, 12, 42, 48, 56, 66, 74, 81, 92, 93, 121, 144, 143, 118, 136, 110, 9, 10, 43, 45, 57, 68, 100, 116, 138, 142, 113, 137, 112, 3, 4, 11, 17, 19, 46, 49, 59, 60, 61, 70, 78, 82, 92, 112, 121, 144, 143, 118, 136, 110, 3, 10, 11, 19, 41, 43, 48, 59, 61, 70, 88, 112, 110, 1, 2, 3, 4, 5, 14, 17, 24, 25, 26, 30, 34, 52, 65, 73, 77, 106, 7, 21, 35, 38, 91, 98, 165, 132, 131, 163, 161, 130, 127, 1, 3, 5, 24, 33, 34, 50, 67, 73, 77, 106, 105, 104, 2, 5, 6, 7, 12, 30, 36, 37, 54, 71, 76, 84, 89, 5, 6, 7, 8, 12, 32, 37, 39, 53, 63, 71, 76, 89, 9, 12, 20, 44, 56, 66, 69, 80, 81, 154, 125, 152, 136, 9, 11, 12, 42, 44, 46, 55, 66, 80, 81, 93, 125, 136, 3, 9, 10, 11, 41, 42, 45, 47, 68, 70, 75, 88, 99, 100, 138, 113, 137, 5, 8, 31, 32, 34, 72, 97, 126, 106, 125, 124, 123, 122, 3, 10, 11, 16, 19, 41, 43, 48, 49, 61, 68, 70, 75, 88, 117, 116, 115, 113, 112, 111, 110, 3, 4, 11, 17, 18, 48, 61, 70, 78, 82, 92, 121, 120, 119, 118, 107, 110, 3, 4, 11, 17, 19, 48, 49, 59, 60, 70, 82, 112, 110, 3, 9, 16, 45, 67, 75, 95, 99, 100, 102, 105, 169, 139, 171, 170, 117, 168, 138, 113, 137, 166, 111, 5, 7, 8, 12, 32, 39, 54, 64, 72, 76, 80, 83, 89, 97, 98, 125, 131, 134, 7, 8, 12, 31, 35, 39, 40, 63, 72, 76, 80, 83, 98, 126, 132, 125, 131, 135, 134, 130, 133, 122, 1, 2, 3, 4, 5, 12, 14, 17, 24, 25, 26, 30, 50, 77, 79, 84, 86, 89, 9, 11, 12, 20, 42, 44, 46, 55, 56, 69, 74, 80, 81, 85, 92, 93, 154, 125, 153, 152, 150, 147, 145, 144, 118, 136, 1, 3, 9, 13, 16, 22, 24, 29, 33, 52, 62, 73, 75, 87, 95, 99, 100, 102, 106, 105, 104, 117, 114, 113, 111, 103, 3, 9, 10, 43, 45, 47, 57, 59, 75, 88, 99, 100, 116, 138, 142, 113, 137, 112, 12, 20, 55, 66, 80, 83, 85, 154, 125, 153, 131, 152, 134, 151, 150, 149, 147, 136, 3, 4, 9, 10, 11, 12, 17, 19, 41, 42, 43, 48, 49, 57, 59, 60, 61, 79, 81, 82, 86, 88, 93, 99, 112, 110, 2, 5, 6, 7, 12, 23, 27, 30, 36, 37, 38, 53, 54, 76, 84, 89, 90, 94, 101, 129, 127, 107, 5, 8, 12, 31, 32, 58, 63, 64, 80, 83, 89, 97, 126, 125, 131, 134, 133, 122, 1, 3, 5, 9, 24, 33, 34, 50, 52, 67, 77, 87, 96, 99, 102, 106, 105, 104, 4, 11, 12, 18, 46, 66, 78, 79, 82, 85, 90, 92, 93, 101, 153, 148, 129, 147, 146, 145, 120, 144, 118, 127, 136, 107, 3, 9, 10, 16, 43, 57, 59, 62, 67, 68, 88, 95, 99, 100, 102, 105, 117, 116, 115, 113, 112, 111, 5, 6, 7, 8, 12, 27, 32, 37, 38, 39, 53, 54, 63, 64, 71, 83, 89, 91, 98, 101, 131, 127, 1, 3, 4, 5, 9, 12, 17, 24, 26, 34, 50, 52, 65, 73, 79, 81, 86, 87, 89, 96, 99, 106, 4, 11, 12, 18, 48, 60, 74, 79, 82, 90, 92, 93, 121, 120, 119, 118, 107, 110, 2, 3, 4, 5, 11, 12, 17, 18, 23, 25, 30, 65, 70, 74, 77, 78, 82, 84, 86, 89, 90, 92, 93, 120, 118, 107, 5, 8, 9, 12, 20, 32, 44, 55, 56, 63, 64, 66, 69, 72, 81, 83, 89, 96, 97, 154, 125, 131, 152, 134, 149, 136, 3, 5, 9, 11, 12, 42, 44, 46, 55, 56, 66, 70, 77, 80, 86, 89, 93, 96, 97, 99, 125, 136, 3, 4, 11, 12, 17, 48, 60, 61, 70, 74, 78, 79, 86, 92, 93, 121, 118, 110, 7, 8, 12, 38, 39, 63, 64, 69, 72, 76, 80, 85, 91, 98, 101, 154, 125, 153, 131, 152, 134, 151, 150, 149, 148, 127, 2, 4, 5, 6, 12, 18, 23, 25, 30, 36, 53, 65, 71, 79, 89, 90, 94, 107, 12, 20, 66, 69, 74, 83, 91, 101, 154, 153, 131, 151, 150, 149, 148, 147, 146, 145, 144, 118, 127, 136, 3, 4, 5, 9, 11, 12, 17, 42, 65, 70, 77, 79, 81, 82, 89, 93, 96, 99, 3, 5, 9, 34, 44, 67, 73, 77, 96, 97, 99, 102, 106, 105, 125, 104, 140, 123, 3, 9, 10, 11, 41, 42, 43, 49, 57, 59, 68, 70, 75, 99, 100, 116, 113, 112, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17, 25, 30, 32, 36, 37, 39, 44, 53, 54, 63, 65, 71, 72, 76, 77, 79, 80, 81, 84, 86, 96, 97, 99, 125, 2, 4, 6, 12, 18, 23, 25, 27, 36, 71, 74, 78, 79, 84, 94, 101, 129, 146, 120, 118, 127, 107, 7, 12, 21, 35, 38, 51, 76, 83, 85, 98, 101, 165, 132, 164, 153, 131, 163, 162, 161, 160, 151, 130, 172, 148, 159, 127, 4, 11, 12, 46, 48, 60, 66, 74, 78, 79, 82, 93, 121, 144, 143, 118, 136, 110, 3, 4, 9, 11, 12, 17, 42, 46, 56, 66, 70, 74, 78, 79, 81, 82, 86, 92, 99, 144, 118, 136, 2, 6, 12, 15, 23, 27, 28, 36, 71, 84, 90, 101, 129, 109, 128, 127, 108, 107, 3, 16, 22, 29, 62, 67, 75, 105, 169, 170, 117, 168, 114, 167, 113, 166, 111, 103, 3, 5, 9, 12, 34, 44, 73, 77, 80, 81, 86, 87, 89, 97, 99, 106, 125, 123, 5, 8, 9, 12, 31, 32, 34, 44, 58, 63, 72, 80, 81, 87, 89, 96, 126, 106, 125, 124, 123, 122, 7, 8, 12, 35, 38, 39, 40, 51, 63, 64, 76, 83, 91, 101, 132, 131, 130, 127, 3, 5, 9, 10, 11, 12, 34, 41, 42, 57, 62, 67, 68, 70, 73, 75, 77, 81, 86, 87, 88, 89, 93, 96, 100, 102, 106, 105, 104, 113, 3, 9, 10, 45, 47, 57, 62, 67, 68, 75, 88, 99, 102, 105, 139, 138, 113, 137, 6, 7, 12, 27, 37, 38, 71, 74, 76, 83, 85, 90, 91, 94, 98, 153, 131, 151, 148, 129, 146, 145, 120, 118, 127, 107, 3, 9, 44, 45, 62, 67, 73, 75, 87, 99, 100, 106, 105, 125, 104, 141, 140, 139, 123, 138, 113, 137, 1, 3, 13, 16, 22, 24, 29, 33, 67, 95, 1, 3, 9, 24, 33, 44, 52, 67, 73, 87, 99, 102, 1, 3, 9, 13, 16, 22, 24, 29, 33, 44, 45, 52, 62, 67, 73, 75, 87, 95, 99, 100, 102, 1, 3, 5, 9, 24, 33, 34, 44, 50, 52, 58, 67, 73, 77, 87, 96, 97, 99, 102, 2, 4, 6, 12, 15, 18, 23, 25, 27, 28, 36, 60, 71, 74, 78, 79, 84, 90, 94, 101, 2, 6, 15, 23, 27, 28, 36, 94, 2, 6, 15, 23, 27, 28, 36, 94, 3, 4, 11, 17, 18, 19, 46, 48, 49, 59, 60, 61, 70, 78, 82, 92, 3, 16, 22, 29, 59, 62, 67, 75, 95, 3, 10, 11, 16, 19, 41, 43, 47, 48, 49, 59, 61, 68, 70, 75, 88, 3, 9, 10, 16, 43, 45, 47, 57, 59, 62, 67, 68, 75, 88, 95, 99, 100, 102, 3, 16, 22, 29, 67, 95, 3, 16, 59, 75, 3, 10, 16, 43, 47, 59, 68, 75, 88, 3, 16, 59, 62, 67, 75, 95, 4, 11, 12, 18, 46, 48, 60, 66, 74, 78, 79, 82, 85, 90, 92, 93, 101, 4, 18, 60, 78, 4, 12, 18, 60, 74, 78, 79, 90, 101, 4, 11, 18, 46, 48, 60, 78, 82, 92, 5, 8, 31, 32, 34, 58, 64, 72, 97, 5, 9, 34, 44, 58, 87, 96, 97, 102, 5, 34, 58, 97, 5, 8, 9, 12, 20, 31, 32, 34, 44, 45, 55, 56, 58, 63, 64, 66, 69, 72, 80, 81, 83, 87, 89, 96, 97, 102, 5, 8, 31, 32, 34, 40, 58, 64, 72, 97, 6, 7, 12, 21, 27, 28, 35, 37, 38, 51, 71, 74, 76, 83, 85, 90, 91, 94, 98, 101, 6, 27, 28, 94, 6, 12, 27, 28, 71, 74, 90, 94, 101, 7, 8, 21, 31, 35, 38, 39, 40, 51, 64, 91, 98, 7, 8, 12, 21, 31, 35, 38, 39, 40, 51, 63, 64, 69, 72, 76, 80, 83, 85, 91, 98, 101, 7, 8, 21, 31, 35, 38, 39, 40, 51, 64, 91, 98, 8, 31, 40, 64, 72, 8, 12, 31, 63, 64, 69, 72, 80, 83, 8, 31, 40, 64, 9, 11, 12, 20, 42, 44, 46, 48, 55, 56, 66, 69, 74, 80, 81, 85, 92, 93, 9, 10, 43, 44, 45, 47, 57, 62, 68, 100, 102, 9, 10, 43, 45, 47, 57, 62, 68, 100, 102, 9, 44, 45, 62, 100, 102, 9, 44, 45, 87, 102, 9, 44, 45, 102, 10, 43, 47, 68, 11, 46, 48, 92, 11, 12, 46, 48, 66, 74, 85, 92, 93, 12, 66, 74, 85, 101, 12, 74, 85, 90, 101, 12, 20, 66, 69, 74, 85, 12, 74, 83, 85, 91, 101, 12, 69, 80, 83, 85, 12, 20, 66, 69, 83, 85, 12, 69, 83, 85, 91, 101, 12, 20, 55, 66, 69, 80, 83, 12, 20, 66, 69, 74, 83, 85, 91, 101, 12, 20, 55, 66, 69, 80, 83, 85, 20, 20, 20, 20, 21, 91, 21, 91, 21, 51, 91, 21, 91, 21, 51, 91, 21, 91, 21, 51, 91, 29, 62, 95, 29, 95, 29, 62, 95, 29, 62, 95, 62, 95, 62, 91 }; Gnum mfvnhdtab[] = { 22, 49, 101, 144, 194, 221, 250, 273, 317, 346, 382, 448, 475, 486, 492, 503, 532, 544, 557, 565, 578, 598, 616, 636, 656, 670, 681, 694, 709, 734, 742, 765, 777, 796, 811, 829, 844, 858, 876, 886, 904, 921, 933, 954, 973, 992, 1005, 1025, 1043, 1061, 1068, 1085, 1101, 1114, 1123, 1138, 1154, 1164, 1184, 1202, 1219, 1231, 1258, 1274, 1301, 1317, 1345, 1365, 1378, 1413, 1434, 1449, 1470, 1487, 1514, 1541, 1564, 1577, 1606, 1628, 1655, 1672, 1690, 1718, 1727, 1759, 1771, 1792, 1828, 1845, 1862, 1889, 1914, 1929, 1942, 1968, 1987, 2007, 2037, 2054, 2074, 2096 }; void mfHgraphBuild ( Hgraph * grafptr) { hgraphInit (grafptr); grafptr->s.baseval = 1; grafptr->s.vertnbr = 172; grafptr->s.vertnnd = 173; grafptr->s.verttax = mfverttab - 1; grafptr->s.vendtax = grafptr->s.verttax + 1; grafptr->s.velotax = mfvelotab - 1; grafptr->s.velosum = 516; grafptr->s.edgenbr = 2652; grafptr->s.edgetax = mfedgetab - 1; grafptr->s.edlosum = 2652; grafptr->s.degrmax = 79; grafptr->vnohnbr = 102; grafptr->vnohnnd = 103; grafptr->vnhdtax = mfvnhdtab - 1; grafptr->enohnbr = 1560; grafptr->enlosum = 1560; } /* ** The function prototypes. */ void mumps_hamf4_ (int *, int *, int *, int *, int64_t *, int64_t *, int64_t *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *); /**********************/ /* */ /* The test routines. */ /* */ /**********************/ /* Test method 0 */ int test_hamf_meth0 ( Hgraph * grafptr) /* Graph to test */ { Gnum vertnum; Gnum vertadj; Gnum vertnew; int64_t edgenew; int norig; int n; int nbelts; int nbbuck; int ncmpa; int64_t iwlen; int64_t pfree; int * degtab; int * lentab; int * iwtab; int * nvtab; int * elentab; int * headtab; int * nexttab; int * lasttab; int * wtab; int * wftab; int64_t * petab; const Gnum * restrict const verttax = grafptr->s.verttax; const Gnum * restrict const vendtax = grafptr->s.vendtax; const Gnum * restrict const velotax = grafptr->s.velotax; const Gnum * restrict const edgetax = grafptr->s.edgetax; n = grafptr->s.vertnbr; norig = grafptr->s.velosum; nbelts = 0; nbbuck = norig * 2; iwlen = (int64_t) ((double) grafptr->s.edgenbr * 1.2) + 32; petab = malloc (n * sizeof (int64_t)); lentab = malloc (n * sizeof (int)); nvtab = malloc (n * sizeof (int)); elentab = malloc (n * sizeof (int)); lasttab = malloc (n * sizeof (int)); degtab = malloc (n * sizeof (int)); wftab = malloc (n * sizeof (int)); nexttab = malloc (n * sizeof (int)); wtab = malloc (n * sizeof (int)); headtab = malloc ((nbbuck + 2) * sizeof (int)); iwtab = malloc (iwlen * sizeof (int)); int64_t * restrict const petax = petab - 1; /* Base HAMF arrays at base 1 */ int * restrict const iwtax = iwtab - 1; int * restrict const lentax = lentab - 1; int * restrict const nvtax = nvtab - 1; int * restrict const elentax = elentab - 1; vertadj = 1 - grafptr->s.baseval; for (vertnum = grafptr->s.baseval, vertnew = edgenew = 1; /* Process non-halo vertices */ vertnum < grafptr->vnohnnd; vertnum ++, vertnew ++) { int degrval; int edgenum; degrval = vendtax[vertnum] - verttax[vertnum]; petax[vertnew] = (int64_t) edgenew; lentax[vertnew] = degrval; elentax[vertnew] = 0; nvtax[vertnew] = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = verttax[vertnum]; edgenum < vendtax[vertnum]; edgenum ++, edgenew ++) iwtax[edgenew] = edgetax[edgenum] + vertadj; } for ( ; vertnum < grafptr->s.vertnnd; vertnum ++, vertnew ++) { /* Process halo vertices */ int degrval; int edgenum; degrval = grafptr->s.verttax[vertnum] - grafptr->s.vendtax[vertnum]; /* Negative degree */ petax[vertnew] = edgenew; lentax[vertnew] = (degrval != 0) ? degrval : (-1 - grafptr->s.vertnbr); elentax[vertnew] = 0; nvtax[vertnew] = (velotax != NULL) ? velotax[vertnum] : 1; for (edgenum = grafptr->s.verttax[vertnum]; edgenum < grafptr->s.vendtax[vertnum]; edgenum ++, edgenew ++) iwtax[edgenew] = edgetax[edgenum] + vertadj; } pfree = edgenew; /* Set index to first free area */ mumps_hamf4_ (&norig, &n, &nbelts, &nbbuck, &iwlen, petab, &pfree, lentab, iwtab, nvtab, elentab, lasttab, &ncmpa, degtab, wftab, nexttab, wtab, headtab); if (ncmpa < 0) { errorPrint ("test_hamf_meth0: ordering method internal error"); return (1); } memFree (iwtab); memFree (headtab); memFree (wtab); memFree (nexttab); memFree (wftab); memFree (degtab); memFree (lasttab); memFree (elentab); memFree (nvtab); memFree (lentab); memFree (petab); return (0); } /* Test method 1 */ int test_hamf_meth1 ( Hgraph * grafptr) /* Graph to test */ { Gnum n; /* Number of nodes to order (with halo or not) */ Gnum norig; /* Number of nodes in uncompressed graph */ Gnum nbbuck; Gnum * restrict petab; Gnum pfree; Gnum * restrict lentab; Gnum iwlen; Gnum * restrict iwtab; Gnum * restrict nvtab; Gnum * restrict elentab; Gnum * restrict lasttab; Gnum * restrict leaftab; Gnum * restrict secntab; /* Array of index to first secondary variable */ Gnum * restrict nexttab; /* Array of index of next principal variable */ Gnum * restrict frsttab; Gnum * restrict headtab; /* Head array : nbbuck = 2 * n */ Gnum * restrict cwgttax; /* Column weight array */ Gnum cwgtsiz; Gnum ncmpa; n = grafptr->s.vertnbr; norig = grafptr->s.velosum; nbbuck = norig * 2; iwlen = (Gnum) ((double) grafptr->s.edgenbr * HGRAPHORDERHFCOMPRAT) + 32; if (iwlen < n) /* TRICK: make sure to be able to re-use array */ iwlen = n; cwgtsiz = (grafptr->s.velotax != NULL) ? n : 0; if (memAllocGroup ((void **) (void *) &petab, (size_t) (n * sizeof (Gnum)), &lentab, (size_t) (n * sizeof (Gnum)), &nvtab, (size_t) (n * sizeof (Gnum)), &elentab, (size_t) (n * sizeof (Gnum)), &lasttab, (size_t) (n * sizeof (Gnum)), &leaftab, (size_t) (n * sizeof (Gnum)), &frsttab, (size_t) (n * sizeof (Gnum)), &secntab, (size_t) (n * sizeof (Gnum)), &nexttab, (size_t) (n * sizeof (Gnum)), &cwgttax, (size_t) (cwgtsiz * sizeof (Gnum)), /* Not based yet */ &headtab, (size_t) ((nbbuck + 2) * sizeof (Gnum)), &iwtab, (size_t) (iwlen * sizeof (Gnum)), NULL) == NULL) { errorPrint ("test_hamf_meth1: out of memory"); return (1); } hgraphOrderHxFill (grafptr, petab, lentab, iwtab, nvtab, elentab, &pfree); hallOrderHfR3Hamdf4 (norig, n, 0, nbbuck, iwlen, petab, pfree, lentab, iwtab, nvtab, elentab, lasttab, &ncmpa, leaftab, secntab, nexttab, frsttab, headtab); if (ncmpa < 0) { errorPrint ("test_hamf_meth1: ordering method internal error"); return (1); } memFree (petab); /* Free group leader */ return (0); } int test_hamf_graph ( int methval) { Hgraph halgrafdat; int o; mfHgraphBuild (&halgrafdat); hgraphCheck (&halgrafdat); switch (methval) { case 0 : o = test_hamf_meth0 (&halgrafdat); break; case 1 : o = test_hamf_meth1 (&halgrafdat); break; default : errorPrint ("test_hamf_graph: invalid test method"); return (1); } return (o); } /*********************/ /* */ /* The main routine. */ /* */ /*********************/ int main ( int argc, char * argv[]) { int methval; if (argc > 2) { errorPrint ("usage: %s [method]", argv[0]); exit (EXIT_FAILURE); } methval = 0; if (argc == 2) methval = atoi (argv[1]); test_hamf_graph (methval); exit (EXIT_SUCCESS); }